diff --git a/.autogen/check_pr.jq b/.autogen/check_pr.jq new file mode 100644 index 000000000..0adb0b503 --- /dev/null +++ b/.autogen/check_pr.jq @@ -0,0 +1,3 @@ +.[] +.head +.label diff --git a/.autogen/next_url.jq b/.autogen/next_url.jq new file mode 100644 index 000000000..b4c3b819a --- /dev/null +++ b/.autogen/next_url.jq @@ -0,0 +1,2 @@ +.links +.next diff --git a/.autogen/patreon.jq b/.autogen/patreon.jq new file mode 100644 index 000000000..c761d587b --- /dev/null +++ b/.autogen/patreon.jq @@ -0,0 +1,39 @@ +( + .data | + map( + select( + .relationships + .currently_entitled_tiers + .data[] + ) + ) | + map( + .relationships + .user + .data + .id + ) +) as $data | +.included | +map( + select( + .id as $id | + $data | + contains( + [ + $id + ] + ) + ) +) | +map( + .attributes | + [ + .full_name, + .thumb_url, + .url + ] | + @tsv +) | +.[] | +@text diff --git a/.autogen/update_readme_patreon.sh b/.autogen/update_readme_patreon.sh new file mode 100755 index 000000000..7a108c2b6 --- /dev/null +++ b/.autogen/update_readme_patreon.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash +# __MISSKEY_BEARER_TOKEN= +# __MISSKEY_CAMPAIGN_ID= +# __MISSKEY_GITHUB_TOKEN= +# __MISSKEY_HEAD=syuilo:patch-autogen +# __MISSKEY_REPO=syuilo/misskey +# __MISSKEY_BRANCH=develop +test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r -f check_pr.jq | grep $__MISSKEY_HEAD)" && exit 1 +cd "$(dirname $0)/.." && \ +touch null.cache && \ +rm *.cache && \ +git checkout $__MISSKEY_BRANCH && \ +git pull origin $__MISSKEY_BRANCH && \ +git pull upstream $__MISSKEY_BRANCH && \ +git stash && \ +git rebase -f upstream/$__MISSKEY_BRANCH && \ +git branch patch-autogen && \ +git checkout patch-autogen && \ +git reset --hard HEAD || \ +exit 1 +touch patreon.md.cache && \ +rm patreon.md.cache && \ +echo '' > patreon.md.cache && \ +url="https://www.patreon.com/api/oauth2/v2/campaigns/$__MISSKEY_CAMPAIGN_ID/members?include=currently_entitled_tiers,user&fields%5Btier%5D=title&fields%5Buser%5D=full_name,thumb_url,url,hide_pledges" +while : + do + touch patreon.raw.cache && \ + rm patreon.raw.cache && \ + curl -LSs -w '\n' -H "Authorization: Bearer $__MISSKEY_BEARER_TOKEN" -- $url > patreon.raw.cache && \ + touch patreon.cache && \ + rm patreon.cache && \ + cat patreon.raw.cache | \ + jq -r -f patreon.jq >> patreon.cache && \ + echo '' >> patreon.md.cache && \ + cat patreon.cache | \ + awk -F'\t' '{print $2,$1}' | \ + sed -e 's/ /\\" alt=\\"/' | \ + xargs -I% echo '' >> patreon.md.cache && \ + echo '' >> patreon.md.cache && \ + cat patreon.cache | \ + awk -F'\t' '{print $3,$1}' | \ + sed -e 's/ /\\">/' | \ + xargs -I% echo '
" >> patreon.md.cache && \ +touch README.md && \ +touch .autogen/README.md && \ +rm .autogen/README.md && \ +mv README.md .autogen/README.md && \ +cat .autogen/README.md | while IFS= read line; + do + if [[ -z "$ignore" ]] + then + if [[ "$line" = '' ]] + then + ignore='PATREON_INSIDE' + else + echo "$line" >> README.md + fi + else + if [[ "$LINE" = '' ]] + then + ignore= + cat patreon.md.cache >> README.md + fi + fi +done +cat patreon.md.cache +touch null.cache && \ +rm *.cache && \ +diff .autogen/README.md README.md > diff.cache +cat diff.cache && \ +test 4 -lt $(cat diff.cache | wc -l) && \ +git add README.md && \ +git commit -m 'Update README.md [AUTOGEN]' && \ +git push -f origin patch-autogen && \ +curl -LSs -w '\n' -X POST -d '{"title":"[AUTOMATED] Update README.md","body":"*This pull request was created by a tool.*","head":"'$__MISSKEY_HEAD'","base":"'$__MISSKEY_BRANCH'"}' -- "https://api.github.com/repos/$__MISSKEY_REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" +git stash +git checkout $__MISSKEY_BRANCH +git branch -D patch-autogen diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..32a05fd6f --- /dev/null +++ b/.babelrc @@ -0,0 +1,13 @@ +{ + "plugins": [ + [ + "@babel/plugin-transform-runtime", + { + "corejs": { + "version": 3, + "proposals": true + } + } + ] + ] +} diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..f021b46b8 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,49 @@ +version: 2.1 + +executors: + docker: + working_directory: /tmp/workspace + docker: + - image: docker:latest + +jobs: + docker: + parameters: + with_deploy: + type: boolean + default: false + executor: docker + steps: + - checkout + - setup_remote_docker: + version: 19.03.13 + - run: + name: Build + command: | + docker build -t misskey/misskey . + - when: + condition: <> + steps: + - run: + name: Deploy + command: | + if [ "$DOCKERHUB_USERNAME$DOCKERHUB_PASSWORD" ] + then + apk update && apk add jq + docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version) + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + docker push misskey/misskey + else + echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m' + fi + +workflows: + version: 2 + docker: + jobs: + - docker: + name: auto-build + with_deploy: true + filters: + branches: + only: master diff --git a/.circleci/misskey/default.yml b/.circleci/misskey/default.yml new file mode 100644 index 000000000..ae18a841b --- /dev/null +++ b/.circleci/misskey/default.yml @@ -0,0 +1,12 @@ +url: 'http://misskey.local' +port: 8080 +db: + host: localhost + port: 5432 + db: test-misskey + user: postgres + pass: '' +redis: + host: localhost + port: 6379 +id: aid diff --git a/.circleci/misskey/test.yml b/.circleci/misskey/test.yml new file mode 100644 index 000000000..ae18a841b --- /dev/null +++ b/.circleci/misskey/test.yml @@ -0,0 +1,12 @@ +url: 'http://misskey.local' +port: 8080 +db: + host: localhost + port: 5432 + db: test-misskey + user: postgres + pass: '' +redis: + host: localhost + port: 6379 +id: aid diff --git a/.config/example.yml b/.config/example.yml index 8b9d9b482..d5ea4ba60 100644 --- a/.config/example.yml +++ b/.config/example.yml @@ -15,7 +15,10 @@ url: https://example.tld/ #───┘ Port and TLS settings └─────────────────────────────────── # -# Misskey requires a reverse proxy to support HTTPS connections. +# Misskey supports two deployment options for public. +# + +# Option 1: With Reverse Proxy # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| @@ -23,12 +26,30 @@ url: https://example.tld/ # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # -# You need to set up a reverse proxy. (e.g. nginx) -# An encrypted connection with HTTPS is highly recommended -# because tokens may be transferred in GET requests. +# You need to setup reverse proxy. (eg. nginx) +# You do not define 'https' section. -# The port that your Misskey server should listen on. -port: 3000 +# Option 2: Standalone +# +# +- https://example.tld/ -+ +# +------+ | +---------------+ | +# | User | ---> | | Misskey (443) | | +# +------+ | +---------------+ | +# +------------------------+ +# +# You need to run Misskey as root. +# You need to set Certificate in 'https' section. + +# To use option 1, uncomment below line. +#port: 3000 # A port that your Misskey server should listen. + +# To use option 2, uncomment below lines. +#port: 443 + +#https: +# # path for certification +# key: /etc/letsencrypt/live/example.tld/privkey.pem +# cert: /etc/letsencrypt/live/example.tld/fullchain.pem # ┌──────────────────────────┐ #───┘ PostgreSQL configuration └──────────────────────────────── @@ -57,7 +78,6 @@ db: redis: host: localhost port: 6379 - #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 @@ -135,15 +155,5 @@ id: 'aid' # Media Proxy #mediaProxy: https://example.com/proxy -# Proxy remote files (default: false) -#proxyRemoteFiles: true - # Sign to ActivityPub GET request (default: false) #signToActivityPubGet: true - -#allowedPrivateNetworks: [ -# '127.0.0.1/32' -#] - -# Upload or download file size limits (bytes) -#maxFileSize: 262144000 diff --git a/.dockerignore b/.dockerignore index 9ed558a25..e16333fb2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,8 @@ .autogen +.git .github .travis .vscode -.config Dockerfile build/ built/ @@ -12,4 +12,3 @@ elasticsearch/ node_modules/ redis/ files/ -misskey-assets/ diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..3a220319e --- /dev/null +++ b/.eslintrc @@ -0,0 +1,31 @@ +{ + "parserOptions": { + "parser": "@typescript-eslint/parser" + }, + "extends": [ + "eslint:recommended", + "plugin:vue/recommended" + ], + "rules": { + "vue/require-v-for-key": 0, + "vue/max-attributes-per-line": 0, + "vue/html-indent": 0, + "vue/html-self-closing": 0, + "vue/no-unused-vars": 0, + "vue/attributes-order": 0, + "vue/require-prop-types": 0, + "vue/require-default-prop": 0, + "vue/html-closing-bracket-spacing": 0, + "vue/singleline-html-element-content-newline": 0, + "vue/no-v-html": 0, + "no-console": 0, + "no-unused-vars": 0, + "no-empty": 0 + }, + "globals": { + "ENV": true, + "VERSION": true, + "API": true, + "LANGS": true + } +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..2a41c12c7 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,38 @@ +# PATH OWNERS +/.autogen/ @acid-chicken +/.circleci/ @syuilo @acid-chicken +/.config/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki +# /.config/mongo_initdb_example.js @khws4v1 +/.github/ @syuilo @AyaMorisawa @acid-chicken +/.vscode/ @acid-chicken +/assets/ @syuilo # @tamaina +/docs/ @syuilo +/docs/*.en.md @AyaMorisawa # @skid9000 +# /docs/*.fr.md @BoFFire +# /docs/docker.*.md @khws4v1 +/locales/ @syuilo +/src/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki +# /src/crypto_key.cc @akihikodaki +# /src/crypto_key.d.ts @akihikodaki +/.dockerignore @syuilo # @khws4v1 +/.editorconfig @syuilo @AyaMorisawa +/.eslintrc @syuilo +/.gitattributes @syuilo +/.gitignore @syuilo +/.npmrc @syuilo +/.vsls.json @AyaMorisawa +/CHANGELOG.md @syuilo +/CODE_OF_CONDUCT.md @syuilo +/CONTRIBUTING.md @syuilo +/Dockerfile @syuilo @AyaMorisawa @acid-chicken # @khws4v1 +/LICENSE @syuilo +/README.md @syuilo @AyaMorisawa @acid-chicken # @nikhiljha +# /binding.gyp @akihikodaki +/crowdin.yml @syuilo +# /docker-compose.yml @khws4v1 +/gulpfile.ts @syuilo @AyaMorisawa +/jsconfig.json @syuilo @AyaMorisawa +/package.json @syuilo @AyaMorisawa +/tsconfig.json @syuilo @AyaMorisawa +/tslint.json @syuilo @AyaMorisawa +/webpack.config.ts @syuilo @AyaMorisawa diff --git a/.github/ISSUE_TEMPLATE/01_bug-report.md b/.github/ISSUE_TEMPLATE/01_bug-report.md index 0fecce2ee..be84609e9 100644 --- a/.github/ISSUE_TEMPLATE/01_bug-report.md +++ b/.github/ISSUE_TEMPLATE/01_bug-report.md @@ -7,25 +7,17 @@ assignees: '' --- - - ## 💡 Summary -## 🥰 Expected Behavior +## 🙂 Expected Behavior -## 🤬 Actual Behavior +## ☹️ Actual Behavior - + ## 📝 Steps to Reproduce @@ -36,7 +28,3 @@ Please include errors from the developer console and/or server log files if you ## 📌 Environment - -Misskey version: -Your OS: -Your browser: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 730647b08..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,7 +0,0 @@ -contact_links: - - name: 👪 Misskey Forum - url: https://forum.misskey.io/ - about: Ask questions and share knowledge - - name: 💬 Misskey official Discord - url: https://discord.gg/Wp8gVStHW3 - about: Chat freely about Misskey diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 79ca97dfa..5ae21482a 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,17 +1,13 @@ - +## Summary -# What - - - -# Why - - - -# Additional info (optional) - - + diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 2625cf75d..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,22 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: -- package-ecosystem: npm - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 0 -- package-ecosystem: npm - directory: "/packages/backend" - schedule: - interval: daily - open-pull-requests-limit: 0 -- package-ecosystem: npm - directory: "/packages/client" - schedule: - interval: daily - open-pull-requests-limit: 0 diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 98f1d2e38..000000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,12 +0,0 @@ -'⚙️Server': -- packages/backend/**/* - -'🖥️Client': -- packages/client/**/* - -'🧪Test': -- cypress/**/* -- packages/backend/test/**/* - -'‼️ wrong locales': -- any: ['locales/*.yml', '!locales/ja-JP.yml'] diff --git a/.github/misskey/test.yml b/.github/misskey/test.yml deleted file mode 100644 index cd33f8a93..000000000 --- a/.github/misskey/test.yml +++ /dev/null @@ -1,15 +0,0 @@ -url: 'http://misskey.local' - -# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ) -port: 61812 - -db: - host: localhost - port: 54312 - db: test-misskey - user: postgres - pass: '' -redis: - host: localhost - port: 56312 -id: aid diff --git a/.github/workflows/docker-develop.yml b/.github/workflows/docker-develop.yml deleted file mode 100644 index 09331edd1..000000000 --- a/.github/workflows/docker-develop.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Publish Docker image (develop) - -on: - push: - branches: - - develop - workflow_dispatch: - -jobs: - push_to_registry: - name: Push Docker image to Docker Hub - runs-on: ubuntu-latest - - steps: - - name: Check out the repo - uses: actions/checkout@v2 - - name: Docker meta - id: meta - uses: docker/metadata-action@v3 - with: - images: misskey/misskey - - name: Log in to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build and Push to Docker Hub - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: misskey/misskey:develop - labels: develop diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 1c6ad343e..3b4269932 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,32 +1,18 @@ -name: Publish Docker image - +name: Docker build on: - release: - types: [published] - workflow_dispatch: + push: + branches: + - master + - develop + pull_request: jobs: - push_to_registry: - name: Push Docker image to Docker Hub + build: runs-on: ubuntu-latest steps: - - name: Check out the repo - uses: actions/checkout@v2 - - name: Docker meta - id: meta - uses: docker/metadata-action@v3 - with: - images: misskey/misskey - - name: Log in to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build and Push to Docker Hub - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + - uses: actions/checkout@v2 + - name: Pull previous build result (for cache) + run: docker pull misskey/misskey:latest + - name: Build docker container + run: docker build --cache-from misskey/misskey:latest -t misskey/misskey . diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index fa4a58c3a..000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: "Pull Request Labeler" -on: - pull_request_target: - branches-ignore: - - 'l10n_develop' - -jobs: - triage: - permissions: - contents: read - pull-requests: write - runs-on: ubuntu-latest - steps: - - uses: actions/labeler@v4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 4e42fa931..000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Lint - -on: - push: - branches: - - master - - develop - pull_request: - -jobs: - backend: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - uses: actions/setup-node@v3 - with: - node-version: 18.x - cache: 'yarn' - cache-dependency-path: | - packages/backend/yarn.lock - - run: yarn install - - run: yarn --cwd ./packages/backend lint - - client: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - uses: actions/setup-node@v3 - with: - node-version: 18.x - cache: 'yarn' - cache-dependency-path: | - packages/client/yarn.lock - - run: yarn install - - run: yarn --cwd ./packages/client lint diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 000000000..2cbc4be79 --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,53 @@ +name: Node.js CI +on: + push: + branches: + - master + - develop + pull_request: + +jobs: + build_and_test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x, 15.x] + + services: + postgres: + image: postgres:10-alpine + ports: + - 5432:5432 + env: + POSTGRES_DB: test-misskey + POSTGRES_HOST_AUTH_METHOD: trust + redis: + image: redis:alpine + ports: + - 6379:6379 + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependencies + run: yarn install + - name: Copy Configure + run: cp .circleci/misskey/*.yml .config + - name: Build + run: yarn build + - name: Test + run: yarn test + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12.x + - run: yarn install + - run: yarn lint diff --git a/.github/workflows/ok-to-test.yml b/.github/workflows/ok-to-test.yml deleted file mode 100644 index 87af3a6ba..000000000 --- a/.github/workflows/ok-to-test.yml +++ /dev/null @@ -1,36 +0,0 @@ -# If someone with write access comments "/ok-to-test" on a pull request, emit a repository_dispatch event -name: Ok To Test - -on: - issue_comment: - types: [created] - -jobs: - ok-to-test: - runs-on: ubuntu-latest - # Only run for PRs, not issue comments - if: ${{ github.event.issue.pull_request }} - steps: - # Generate a GitHub App installation access token from an App ID and private key - # To create a new GitHub App: - # https://developer.github.com/apps/building-github-apps/creating-a-github-app/ - # See app.yml for an example app manifest - - name: Generate token - id: generate_token - uses: tibdex/github-app-token@v1 - with: - app_id: ${{ secrets.DEPLOYBOT_APP_ID }} - private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }} - - - name: Slash Command Dispatch - uses: peter-evans/slash-command-dispatch@v1 - env: - TOKEN: ${{ steps.generate_token.outputs.token }} - with: - token: ${{ env.TOKEN }} # GitHub App installation access token - # token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # PAT or OAuth token will also work - reaction-token: ${{ secrets.GITHUB_TOKEN }} - issue-type: pull-request - commands: deploy - named-args: true - permission: write diff --git a/.github/workflows/pr-preview-deploy.yml b/.github/workflows/pr-preview-deploy.yml deleted file mode 100644 index fd43bce9e..000000000 --- a/.github/workflows/pr-preview-deploy.yml +++ /dev/null @@ -1,95 +0,0 @@ -# Run secret-dependent integration tests only after /deploy approval -on: - pull_request: - types: [opened, reopened, synchronize] - repository_dispatch: - types: [deploy-command] - -name: Deploy preview environment - -jobs: - # Repo owner has commented /deploy on a (fork-based) pull request - deploy-preview-environment: - runs-on: ubuntu-latest - if: - github.event_name == 'repository_dispatch' && - github.event.client_payload.slash_command.sha != '' && - contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha) - steps: - - uses: actions/github-script@v5 - id: check-id - env: - number: ${{ github.event.client_payload.pull_request.number }} - job: ${{ github.job }} - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - result-encoding: string - script: | - const { data: pull } = await github.rest.pulls.get({ - ...context.repo, - pull_number: process.env.number - }); - const ref = pull.head.sha; - - const { data: checks } = await github.rest.checks.listForRef({ - ...context.repo, - ref - }); - - const check = checks.check_runs.filter(c => c.name === process.env.job); - - return check[0].id; - - - uses: actions/github-script@v5 - env: - check_id: ${{ steps.check-id.outputs.result }} - details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }} - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - await github.rest.checks.update({ - ...context.repo, - check_run_id: process.env.check_id, - status: 'in_progress', - details_url: process.env.details_url - }); - - # Check out merge commit - - name: Fork based /deploy checkout - uses: actions/checkout@v2 - with: - ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge' - - # - - name: Context - uses: okteto/context@latest - with: - token: ${{ secrets.OKTETO_TOKEN }} - - - name: Deploy preview environment - uses: ikuradon/deploy-preview@latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - name: pr-${{ github.event.client_payload.pull_request.number }}-syuilo - timeout: 15m - - # Update check run called "integration-fork" - - uses: actions/github-script@v5 - id: update-check-run - if: ${{ always() }} - env: - # Conveniently, job.status maps to https://developer.github.com/v3/checks/runs/#update-a-check-run - conclusion: ${{ job.status }} - check_id: ${{ steps.check-id.outputs.result }} - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const { data: result } = await github.rest.checks.update({ - ...context.repo, - check_run_id: process.env.check_id, - status: 'completed', - conclusion: process.env.conclusion - }); - - return result; diff --git a/.github/workflows/pr-preview-destroy.yml b/.github/workflows/pr-preview-destroy.yml deleted file mode 100644 index c14c3db5c..000000000 --- a/.github/workflows/pr-preview-destroy.yml +++ /dev/null @@ -1,21 +0,0 @@ -# file: .github/workflows/preview-closed.yaml -on: - pull_request: - types: - - closed - -name: Destroy preview environment - -jobs: - destroy-preview-environment: - runs-on: ubuntu-latest - steps: - - name: Context - uses: okteto/context@latest - with: - token: ${{ secrets.OKTETO_TOKEN }} - - - name: Destroy preview environment - uses: okteto/destroy-preview@latest - with: - name: pr-${{ github.event.number }}-syuilo diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index c32c82e2a..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,122 +0,0 @@ -name: Test - -on: - push: - branches: - - master - - develop - pull_request: - -jobs: - mocha: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18.x] - - services: - postgres: - image: postgres:13 - ports: - - 54312:5432 - env: - POSTGRES_DB: test-misskey - POSTGRES_HOST_AUTH_METHOD: trust - redis: - image: redis:6 - ports: - - 56312:6379 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - cache-dependency-path: | - packages/backend/yarn.lock - packages/client/yarn.lock - - name: Install dependencies - run: yarn install - - name: Check yarn.lock - run: git diff --exit-code yarn.lock - - name: Copy Configure - run: cp .github/misskey/test.yml .config - - name: Build - run: yarn build - - name: Test - run: yarn mocha - - e2e: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - node-version: [18.x] - browser: [chrome] - - services: - postgres: - image: postgres:13 - ports: - - 54312:5432 - env: - POSTGRES_DB: test-misskey - POSTGRES_HOST_AUTH_METHOD: trust - redis: - image: redis:6 - ports: - - 56312:6379 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - # https://github.com/cypress-io/cypress-docker-images/issues/150 - #- name: Install mplayer for FireFox - # run: sudo apt install mplayer -y - # if: ${{ matrix.browser == 'firefox' }} - #- uses: browser-actions/setup-firefox@latest - # if: ${{ matrix.browser == 'firefox' }} - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'yarn' - cache-dependency-path: | - packages/backend/yarn.lock - packages/client/yarn.lock - - name: Install dependencies - run: yarn install - - name: Check yarn.lock - run: git diff --exit-code yarn.lock - - name: Copy Configure - run: cp .github/misskey/test.yml .config - - name: Build - run: yarn build - # https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091 - - name: ALSA Env - run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc - - name: Cypress run - uses: cypress-io/github-action@v4 - with: - install: false - start: npm run start:test - wait-on: 'http://localhost:61812' - headless: false - browser: ${{ matrix.browser }} - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: ${{ matrix.browser }}-cypress-screenshots - path: cypress/screenshots - - uses: actions/upload-artifact@v2 - if: always() - with: - name: ${{ matrix.browser }}-cypress-videos - path: cypress/videos diff --git a/.gitignore b/.gitignore index 189f36370..0786295cf 100644 --- a/.gitignore +++ b/.gitignore @@ -6,16 +6,9 @@ /.idea # Node.js -node_modules +/node_modules report.*.json -# Cypress -cypress/screenshots -cypress/videos - -# Coverage -coverage - # config /.config/* !/.config/example.yml @@ -23,7 +16,7 @@ coverage # misskey /build -built +/built /data /.cache-loader /db diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 9246e09b8..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "misskey-assets"] - path = misskey-assets - url = https://github.com/misskey-dev/assets.git diff --git a/.imgbotconfig b/.imgbotconfig new file mode 100644 index 000000000..6a1dfe1ed --- /dev/null +++ b/.imgbotconfig @@ -0,0 +1,5 @@ +{ + "ignoredFiles": [ + "test/resources/*" + ] +} diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 000000000..867402688 --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,7 @@ +{ + "extension": ["ts","js","cjs","mjs"], + "require": "ts-node/register", + "slow": 1000, + "timeout": 30000, + "exit": true +} diff --git a/.node-version b/.node-version index 7fd023741..55d178216 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -v16.15.0 +v14.15.0 diff --git a/.okteto/okteto-pipeline.yml b/.okteto/okteto-pipeline.yml deleted file mode 100644 index e2996fbbc..000000000 --- a/.okteto/okteto-pipeline.yml +++ /dev/null @@ -1,6 +0,0 @@ -build: - misskey: - args: - - NODE_ENV=development -deploy: - - helm upgrade --install misskey chart --set image=${OKTETO_BUILD_MISSKEY_IMAGE} --set url="https://misskey-$(kubectl config view --minify -o jsonpath='{..namespace}').cloud.okteto.net" --set environment=development diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 42264548e..40b781b55 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,9 +1,12 @@ { "recommendations": [ + "ducksoupdev.vue2", "editorconfig.editorconfig", "eg2.vscode-npm-script", - "dbaeumer.vscode-eslint", - "Vue.volar", - "Vue.vscode-typescript-vue-plugin" + "hollowtree.vue-snippets", + "ms-vscode.typescript-javascript-grammar", + "ms-vscode.vscode-typescript-tslint-plugin", + "octref.vetur", + "sysoev.language-stylus" ] } diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index 788570fcd..000000000 --- a/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -network-timeout 600000 diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 5bafc0a01..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,803 +0,0 @@ - - -## 12.119.0 (2022/09/10) - -### Improvements -- Client: Add following badge to user preview popup @nvisser -- Client: mobile twitter url can be used as widget @caipira113 -- Client: Improve clock widget @syuilo - -### Bugfixes -- マイグレーションに失敗する問題を修正 -- Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo -- Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo - -## 12.118.1 (2022/08/08) - -### Bugfixes -- Client: can not show some setting pages @syuilo - -## 12.118.0 (2022/08/07) - -### Improvements -- Client: 設定のバックアップ/リストア機能 -- Client: Add vi-VN language support -- Client: Add unix time widget @syuilo - -### Bugfixes -- Server: リモートユーザーを正しくブロックできるように修正する @xianonn -- Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo -- Client: MiAuth認証ページが機能していない @syuilo -- Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa - -## 12.117.1 (2022/07/19) - -### Improvements -- Client: UIのブラッシュアップ @syuilo - -### Bugfixes -- Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken -- Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo -- Client: ユーザー情報の取得の再試行を修正 @xianonn -- Client: MFMチートシートの挙動を修正 @syuilo -- Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo - -## 12.117.0 (2022/07/18) - -### Improvements -- Client: ウィンドウを最大化できるように @syuilo -- Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo -- Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo -- Client: UIのブラッシュアップ @syuilo - -## 12.116.1 (2022/07/17) - -### Bugfixes -- Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo -- Error During Migration Run to 12.111.x - -## 12.116.0 (2022/07/16) - -### Improvements -- Client: registry editor @syuilo -- Client: UIのブラッシュアップ @syuilo - -### Bugfixes -- Error During Migration Run to 12.111.x -- Server: TypeError: Cannot convert undefined or null to object @syuilo - -## 12.115.0 (2022/07/16) - -### Improvements -- Client: Deckのプロファイル切り替えを簡単に @syuilo -- Client: UIのブラッシュアップ @syuilo - -## 12.114.0 (2022/07/15) - -### Improvements -- RSSティッカーで表示順序をシャッフルできるように @syuilo - -### Bugfixes -- クライアントが起動しなくなることがある問題を修正 @syuilo - -## 12.113.0 (2022/07/13) - -### Improvements -- Support syntax for MFM - -### Bugfixes -- Server: Fix crash at startup if TensorFlow is not supported @mei23 -- Client: URLエンコードされたルーティングを修正 - -## 12.112.3 (2022/07/09) - -### Improvements -- Make active email validation configurable - -### Bugfixes -- Server: Fix Attempts to update all notifications @mei23 - -## 12.112.2 (2022/07/08) - -### Bugfixes -- Fix Docker doesn't work @mei23 - Still not working on arm64 environment. (See 12.112.0) - -## 12.112.1 (2022/07/07) -same as 12.112.0 - -## 12.112.0 (2022/07/07) - -### Known issues -- 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 - -### Changes -- ハイライトがみつけるに統合されました -- カスタム絵文字ページはインスタンス情報ページに統合されました -- 連合ページはインスタンス情報ページに統合されました -- メンション一覧ページは通知一覧ページに統合されました -- ダイレクト投稿一覧ページは通知一覧ページに統合されました -- メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました -- メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - -### Improvements -- Server: Allow GET method for some endpoints @syuilo -- Server: Auto NSFW detection @syuilo -- Server: Add rate limit to i/notifications @tamaina -- Client: Improve control panel @syuilo -- Client: Show warning in control panel when there is an unresolved abuse report @syuilo -- Client: Statusbars @syuilo -- Client: Add instance-cloud widget @syuilo -- Client: Add rss-ticker widget @syuilo -- Client: Removing entries from a clip @futchitwo -- Client: Poll highlights in explore page @syuilo -- Client: Improve deck UI @syuilo -- Client: Word mute also checks content warnings @Johann150 -- Client: メニューからページをリロードできるように @syuilo -- Client: Improve emoji picker performance @syuilo -- Client: For notes with specified visibility, show recipients when hovering over visibility symbol. @Johann150 -- Client: Make widgets available again on a tablet @syuilo -- ユーザーにモデレーションメモを残せる機能 @syuilo -- Make possible to delete an account by admin @syuilo -- Improve player detection in URL preview @mei23 -- Add Badge Image to Push Notification #8012 @tamaina -- Server: Improve performance -- Server: Supports IPv6 on Redis transport. @mei23 - IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`. -- Server: Add possibility to log IP addresses of users @syuilo -- Add additional drive capacity change support @CyberRex0 - -### Bugfixes -- Server: Fix GenerateVideoThumbnail failed @mei23 -- Server: Ensure temp directory cleanup @Johann150 -- favicons of federated instances not showing @syuilo -- Admin: The checkbox for blocking an instance works again @Johann150 -- Client: Prevent access to user pages when not logged in @pixeldesu @Johann150 -- Client: Disable some hotkeys (e.g. for creating a post) for not logged in users @pixeldesu -- Client: Ask users that are not logged in to log in when trying to vote in a poll @Johann150 -- Instance mutes also apply in antennas etc. @Johann150 - -## 12.111.1 (2022/06/13) - -### Bugfixes -- some fixes of multiple notification read @tamaina -- some GenerateVideoThumbnail failed @Johann150 -- Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo -- Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo - -## 12.111.0 (2022/06/11) -### Note -- Node.js 16.15.0 or later is required - -### Improvements -- Supports Unicode Emoji 14.0 @mei23 -- プッシュ通知を複数アカウント対応に #7667 @tamaina -- プッシュ通知にクリックやactionを設定 #7667 @tamaina -- ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina -- Server: always remove completed tasks of job queue @Johann150 -- Client: アバターの設定で画像をクロップできるように @syuilo -- Client: make emoji stand out more on reaction button @Johann150 -- Client: display URL of QR code for TOTP registration @tamaina -- Client: render quote renote CWs as MFM @pixeldesu -- API: notifications/readは配列でも受け付けるように #7667 @tamaina -- API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @tamaina -- MFM: Allow speed changes in all animated MFMs @Johann150 -- The theme color is now better validated. @Johann150 - Your own theme color may be unset if it was in an invalid format. - Admins should check their instance settings if in doubt. -- Perform port diagnosis at startup only when Listen fails @mei23 -- Rate limiting is now also usable for non-authenticated users. @Johann150 @mei23 - Admins should make sure the reverse proxy sets the `X-Forwarded-For` header to the original address. - -### Bugfixes -- Server: keep file order of note attachement @Johann150 -- Server: fix missing foreign key for reports leading to reports page being unusable @Johann150 -- Server: fix internal in-memory caching @Johann150 -- Server: prevent crash when processing certain PNGs @syuilo -- Server: Fix unable to generate video thumbnails @mei23 -- Server: Fix `Cannot find module` issue @mei23 -- Federation: Add rel attribute to host-meta @mei23 -- Federation: add id for activitypub follows @Johann150 -- Federation: use `source` instead of `_misskey_content` @Johann150 -- Federation: ensure resolver does not fetch local resources via HTTP(S) @Johann150 -- Federation: correctly render empty note text @Johann150 -- Federation: Fix quote renotes containing no text being federated correctly @Johann150 -- Federation: remove duplicate br tag/newline @Johann150 -- Federation: add missing authorization checks @Johann150 -- Client: fix profile picture height in mentions @tamaina -- Client: fix abuse reports page to be able to show all reports @Johann150 -- Client: fix settings page @tamaina -- Client: fix profile tabs @futchitwo -- Client: fix popout URL @futchitwo -- Client: correctly handle MiAuth URLs with query string @sn0w -- Client: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn -- MFM: more animated functions support `speed` parameter @futchitwo -- MFM: limit large MFM @Johann150 - -## 12.110.1 (2022/04/23) - -### Bugfixes -- Fix GOP rendering @syuilo -- Improve performance of antenna, clip, and list @xianonn - -## 12.110.0 (2022/04/11) - -### Improvements -- Improve webhook @syuilo -- Client: Show loading icon on splash screen @syuilo - -### Bugfixes -- API: parameter validation of users/show was wrong -- Federation: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo - -## 12.109.2 (2022/04/03) - -### Bugfixes -- API: admin/update-meta was not working @syuilo -- Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina - -## 12.109.1 (2022/04/02) - -### Bugfixes -- API: Renoteが行えない問題を修正 - -## 12.109.0 (2022/04/02) - -### Improvements -- Webhooks @syuilo -- Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります -- Check that installed Node.js version fulfills version requirement @ThatOneCalculator -- Server: overall performance improvements @syuilo -- Federation: avoid duplicate activity delivery @Johann150 -- Federation: limit federation of reactions on direct notes @Johann150 -- Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @tamaina - -### Bugfixes -- email address validation was not working @ybw2016v -- API: fix endpoint endpoint @Johann150 -- API: fix admin/meta endpoint @syuilo -- API: improved validation and documentation for endpoints that accept different variants of input @Johann150 -- API: `notes/create`: The `mediaIds` property is now deprecated. @Johann150 - - Use `fileIds` instead, it has the same behaviour. -- Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina - -## 12.108.1 (2022/03/12) - -### Bugfixes -- リレーが動作しない問題を修正 @xianonn -- ulidを使用していると動作しない問題を修正 @syuilo -- 外部からOGPが正しく取得できない問題を修正 @syuilo -- instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v - -## 12.108.0 (2022/03/09) - -### NOTE -このバージョンからNode v16.14.0以降が必要です - -### Changes -- ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @syuilo -- Misskey can no longer terminate HTTPS connections. @Johann150 - - If you did not use a reverse proxy (e.g. nginx) before, you will probably need to adjust - your configuration file and set up a reverse proxy. The `https` configuration key is no - longer recognized! - -### Improvements -- インスタンスデフォルトテーマを設定できるように @syuilo -- ミュートに期限を設定できるように @syuilo -- アンケートが終了したときに通知が作成されるように @syuilo -- プロフィールの追加情報を最大16まで保存できるように @syuilo -- 連合チャートにPub&Subを追加 @syuilo -- 連合チャートにActiveを追加 @syuilo -- デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます -- Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo - -### Bugfixes -- Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo -- Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo -- Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn -- Client: register_note_view_interruptor()が動かないのを修正 @syuilo -- Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina -- Client: fix image caption on mobile @nullobsi - -## 12.107.0 (2022/02/12) - -### Improvements -- クライアント: テーマを追加 @syuilo - -### Bugfixes -- API: stats APIで内部エラーが発生する問題を修正 @syuilo -- クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina -- クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo -- クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo - -## 12.106.3 (2022/02/11) - -### Improvements -- クライアント: スマートフォンでの余白を調整 @syuilo - -### Bugfixes -- クライアント: ノートの詳細が表示されない問題を修正 @syuilo - -## 12.106.2 (2022/02/11) - -### Bugfixes -- クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo -- クライアント: リアクション数が正しくないことがある問題を修正 @syuilo -- 一部環境でマイグレーションが動作しない問題を修正 @syuilo - -## 12.106.1 (2022/02/11) - -### Bugfixes -- クライアント: ワードミュートが保存できない問題を修正 @syuilo - -## 12.106.0 (2022/02/11) - -### Improvements -- Improve federation chart @syuilo -- クライアント: リアクションピッカーのサイズを設定できるように @syuilo -- クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo -- Docker: Update to Node v16.13.2 @mei23 -- Update dependencies - -### Bugfixes -- validate regular expressions in word mutes @Johann150 - -## 12.105.0 (2022/02/09) - -### Improvements -- インスタンスのテーマカラーを設定できるように @syuilo - -### Bugfixes -- 一部環境でマイグレーションが失敗する問題を修正 @syuilo - -## 12.104.0 (2022/02/09) - -### Note -ビルドする前に`npm run clean`を実行してください。 - -このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 -マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 - -### Improvements -- チャートエンジンの強化 @syuilo - - テーブルサイズの削減 - - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - - activeUsersチャートに新しい項目を追加 - - federationチャートに新しい項目を追加 - - apRequestチャートを追加 - - networkチャート廃止 -- クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo -- クライアント: デバイスの種類を手動指定できるように @syuilo -- クライアント: UIのアイコンを更新 @syuilo -- クライアント: UIのアイコンをセルフホスティングするように @syuilo -- NodeInfo のユーザー数と投稿数の内容を見直す @xianonn - -### Bugfixes -- Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina -- Client: UIのサイズがおかしくなる問題の修正 @tamaina -- Client: Setting instance information of notes to always show breaks the timeline @Johann150 -- Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo -- Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo -- Client: アップデートお知らせダイアログが出ないのを修正 @syuilo -- Client: Follows/Followers Visibility changes won't be saved unless clicking on an other checkbox @Johann150 -- API: Fix API cast @mei23 -- add instance favicon where it's missing @solfisher -- チャートの定期resyncが動作していない問題を修正 @syuilo - -## 12.103.1 (2022/02/02) - -### Bugfixes -- クライアント: ツールチップの表示位置が正しくない問題を修正 - -## 12.103.0 (2022/02/02) - -### Improvements -- クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように - -### Bugfixes -- クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 -- クライアント: 「クリップ」ページが開かない問題を修正 -- クライアント: トレンドウィジェットが動作しないのを修正 -- クライアント: フェデレーションウィジェットが動作しないのを修正 -- クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 -- クライアント: DMページでメンションが含まれる問題を修正 -- クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 -- クライアント: サイドビューが動かないのを修正 -- クライアント: ensure that specified users does not get duplicates -- Add `img-src` and `media-src` directives to `Content-Security-Policy` for - files and media proxy - -## 12.102.1 (2022/01/27) -### Bugfixes -- チャットが表示できない問題を修正 - -## 12.102.0 (2022/01/27) - -### NOTE -アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 -⚠ 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 - -### Changes -- Room機能が削除されました - - 後日別リポジトリとして復活予定です -- リバーシ機能が削除されました - - 後日別リポジトリとして復活予定です -- Chat UIが削除されました -- ノートに添付できるファイルの数が16に増えました -- カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました - -### Improvements -- カスタム絵文字一括編集機能 -- カスタム絵文字一括インポート -- 投稿フォームで一時的に投稿するアカウントを切り替えられるように -- Unifying Misskey-specific IRIs in JSON-LD `@context` -- クライアントのパフォーマンス向上 -- セキュリティの向上 - -### Bugfixes -- アップロードエラー時の処理を修正 - -## 12.101.1 (2021/12/29) - -### Bugfixes -- SVG絵文字が表示できないのを修正 -- エクスポートした絵文字の拡張子がfalseになることがあるのを修正 - -## 12.101.0 (2021/12/29) - -### Improvements -- クライアント: ノートプレビューの精度を改善 -- クライアント: MFM sparkleエフェクトの改善 -- クライアント: デザインの調整 -- セキュリティの向上 - -### Bugfixes -- クライアント: 一部のコンポーネントが裏に隠れるのを修正 -- fix html blockquote conversion - -## 12.100.2 (2021/12/18) - -### Bugfixes -- クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 -- クライアント: 一部のコンポーネントが裏に隠れるのを修正 -- クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 - -## 12.100.1 (2021/12/17) - -### Bugfixes -- クライアント: デザインの調整 - -## 12.100.0 (2021/12/17) - -### Improvements -- クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 - -### Bugfixes -- クライアント: 一部のコンポーネントが裏に隠れるのを修正 - -## 12.99.3 (2021/12/14) -### Bugfixes -- クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 - -## 12.99.2 (2021/12/14) - -## 12.99.1 (2021/12/14) - -## 12.99.0 (2021/12/14) - -### Improvements -- Added a user-level instance mute in user settings -- フォローエクスポートでミュートしているユーザーを含めないオプションを追加 -- フォローエクスポートで使われていないアカウントを含めないオプションを追加 -- カスタム絵文字エクスポート機能 -- チャートのパフォーマンスの改善 -- グループから抜けられるように - -### Bugfixes -- クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 -- クライアント: クリップの設定を編集できない問題を修正 -- クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 - -## 12.98.0 (2021/12/03) - -### Improvements -- API: /antennas/notes API で日付による絞り込みができるように -- クライアント: アンケートに投票する際に確認ダイアログを出すように -- クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように -- クライアント: 画像ポップアップでクリックで閉じられるように -- クライアント: デザインの調整 -- フォロワーを解除できる機能 - -### Bugfixes -- クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 -- クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 -- クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 -- クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 -- クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 -- クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 -- クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 -- クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 -- API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 - -### Changes -- クライアント: ノートにモデレーターバッジを表示するのを廃止 - -## 12.97.0 (2021/11/19) - -### Improvements -- クライアント: 返信先やRenoteに対しても自動折りたたみされるように -- クライアント: 長いスレッドの表示を改善 -- クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように -- クライアント: アカウント削除に確認ダイアログを出すように - -### Bugfixes -- クライアント: ユーザー検索の「全て」が動作しない問題を修正 -- クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 - -## 12.96.1 (2021/11/13) -### Improvements -- npm scriptの互換性を向上 - -## 12.96.0 (2021/11/13) - -### Improvements -- フォロー/フォロワーを非公開にできるように -- インスタンスプロフィールレンダリング ready -- 通知のリアクションアイコンをホバーで拡大できるように -- RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように -- 返信の際にメンションを含めるように -- 通報があったときに管理者へEメールで通知されるように -- メールアドレスのバリデーションを強化 - -### Bugfixes -- アカウント削除処理があると高負荷になる問題を修正 -- クライアント: 長いメニューが画面からはみ出す問題を修正 -- クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 -- クライアント: fix missing i18n string -- fix html conversion issue with code blocks - -### Changes -- ノートにモバイルからの投稿か否かの情報を含めないように - -## 12.95.0 (2021/10/31) - -### Improvements -- スレッドミュート機能 - -### Bugfixes -- リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 -- 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 -- クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 -- クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 -- API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 - -## 12.94.1 (2021/10/25) - -### Improvements - -### Bugfixes -- クライアント: ユーザーページのナビゲーションが失敗する問題を修正 - -## 12.94.0 (2021/10/25) - -### Improvements -- クライアント: 画像ビューアを強化 -- クライアント: メンションにユーザーのアバターを表示するように -- クライアント: デザインの調整 -- クライアント: twemojiをセルフホスティングするように - -### Bugfixes -- クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 - -### NOTE -- このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 - -## 12.93.2 (2021/10/23) - -### Bugfixes -- クライアント: ウィジェットを追加できない問題を修正 - -## 12.93.1 (2021/10/23) - -### Bugfixes -- クライアント: 通知上でローカルのリアクションが表示されないのを修正 - -## 12.93.0 (2021/10/23) - -### Improvements -- クライアント: コントロールパネルのパフォーマンスを改善 -- クライアント: 自分のリアクション一覧を見れるように - - 設定により、リアクション一覧を全員に公開することも可能 -- クライアント: ユーザー検索の精度を強化 -- クライアント: 新しいライトテーマを追加 -- クライアント: 新しいダークテーマを追加 -- API: ユーザーのリアクション一覧を取得する users/reactions を追加 -- API: users/search および users/search-by-username-and-host を強化 -- ミュート及びブロックのインポートを行えるように -- クライアント: /share のクエリでリプライやファイル等の情報を渡せるように -- チャートのsyncを毎日0時に自動で行うように - -### Bugfixes -- クライアント: テーマの管理が行えない問題を修正 -- API: アプリケーション通知が取得できない問題を修正 -- クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 -- ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 - -### Changes -- 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました -- データベースにログを保存しないようになりました - - ログを永続化したい場合はsyslogを利用してください - -## 12.92.0 (2021/10/16) - -### Improvements -- アカウント登録にメールアドレスの設定を必須にするオプション -- クライアント: 全体的なUIのブラッシュアップ -- クライアント: MFM関数構文のサジェストを実装 -- クライアント: ノート本文を投稿フォーム内でプレビューできるように -- クライアント: 未読の通知のみ表示する機能 -- クライアント: 通知ページで通知の種類によるフィルタ -- クライアント: アニメーションを減らす設定の適用範囲を拡充 -- クライアント: 新しいダークテーマを追加 -- クライアント: テーマコンパイラに hue と saturate 関数を追加 -- ActivityPub: HTML -> MFMの変換を強化 -- API: グループから抜ける users/groups/leave エンドポイントを実装 -- API: i/notifications に unreadOnly オプションを追加 -- API: ap系のエンドポイントをログイン必須化+レートリミット追加 -- MFM: Add tag syntaxes of bold and strikethrough - -### Bugfixes -- Fix createDeleteAccountJob -- admin inbox queue does not show individual jobs -- クライアント: ヘッダーのタブが折り返される問題を修正 -- クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 -- クライアント: ユーザーページのタブが機能していない問題を修正 -- クライアント: ピン留めユーザーの設定項目がない問題を修正 -- クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 -- API: 管理者およびモデレーターをブロックできてしまう問題を修正 -- MFM: Mentions in the link label are parsed as text -- MFM: Add a property to the URL node indicating whether it was enclosed in <> -- MFM: Disallows < and > in hashtags - -### Changes -- 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - - 必要であれば、代わりに環境変数で設定することができます -- MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 - -## 12.91.0 (2021/09/22) - -### Improvements -- ActivityPub: リモートユーザーのDeleteアクティビティに対応 -- ActivityPub: add resolver check for blocked instance -- ActivityPub: deliverキューのメモリ使用量を削減 -- API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - - リモートユーザーの削除も可能に -- アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように -- 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように -- リスト、アンテナタイムラインを個別ページとして分割 -- UIの改善 -- MFMにsparklesエフェクトを追加 -- 非ログイン自は更新ダイアログを出さないように -- クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように - -### Bugfixes -- アカウントデータのエクスポート/インポート処理ができない問題を修正 -- アンテナの既読が付かない問題を修正 -- popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 -- "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 - -## 12.90.1 (2021/09/05) - -### Bugfixes -- Dockerfileを修正 -- ノート翻訳時に公開範囲が考慮されていない問題を修正 - -## 12.90.0 (2021/09/04) - -### Improvements -- 藍モード、および藍ウィジェット - - クライアントに藍ちゃんを召喚することができるようになりました。 -- URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - - developmentで動作している場合は、この制限は適用されません。 - - Proxy使用時には、この制限は適用されません。 - Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 -- アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 - -### Bugfixes -- 管理者が最初にサインアップするページでログインされないのを修正 -- CWを維持する設定を復活 -- クライアントの表示を修正 - -## 12.89.2 (2021/08/24) - -### Bugfixes -- カスタムCSSを有効にしているとエラーになる問題を修正 - -## 12.89.1 (2021/08/24) - -### Improvements -- クライアントのデザインの調整 - -### Bugfixes -- 翻訳でDeepLのProアカウントに対応していない問題を修正 -- インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 -- セキュリティの向上 - -## 12.89.0 (2021/08/21) - -### Improvements -- アカウント削除の安定性を向上 -- 絵文字オートコンプリートの挙動を改修 -- localStorageのaccountsはindexedDBで保持するように -- ActivityPub: ジョブキューの試行タイミングを調整 (#7635) -- API: sw/unregisterを追加 -- ワードミュートのドキュメントを追加 -- クライアントのデザインの調整 -- 依存関係の更新 - -### Bugfixes -- チャンネルを作成しているとアカウントを削除できないのを修正 -- ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 - -## 12.88.0 (2021/08/17) - -### Features -- ノートの翻訳機能を追加 - - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 -- Misskey更新時にダイアログを表示するように -- ジョブキューウィジェットに警報音を鳴らす設定を追加 - -### Improvements -- ブロックの挙動を改修 - - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 -- UIデザインの調整 -- データベースのインデックスを最適化 -- Proxy使用時にKeep-Aliveをサポート -- DNSキャッシュでネガティブキャッシュをサポート -- 依存関係の更新 - -### Bugfixes -- タッチ操作でウィンドウを閉じることができない問題を修正 -- Renoteされた時刻が投稿された時刻のように表示される問題を修正 -- コントロールパネルでファイルを削除した際の表示を修正 -- ActivityPub: 長いユーザーの名前や自己紹介の対応 - -## 12.87.0 (2021/08/12) - -### Improvements -- 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように -- 絵文字オートコンプリートのパフォーマンスを改善 -- about-misskeyページにドキュメントへのリンクを追加 -- Docker: Node.jsを16.6.2に -- 依存関係の更新 -- 翻訳の更新 - -### Bugfixes -- Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 - -## 12.86.0 (2021/08/11) - -### Improvements -- ドキュメントの更新 - - ドキュメントにchangelogを追加 -- ぼかし効果のオプションを追加 -- Vueを3.2.1に更新 -- UIの調整 - -### Bugfixes -- ハッシュタグ入力が空のときに#が付くのを修正 -- フォローリクエストのEメール通知を修正 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4547138eb..2ffe6dc2e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,92 +1,22 @@ # Contribution guide -We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project. +:v: Thanks for your contributions :v: -> **Note** -> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.** -> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\ -> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language. -> It will also allow the reader to use the translation tool of their preference if necessary. - -## Roadmap -See [ROADMAP.md](./ROADMAP.md) +## When you contribute... +- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。 + - 設計に迷った時はプロジェクトリーダーの判断を仰いでください。 +- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。 + - 温度感高めで見てほしいものは責付いてください。 ## Issues -Before creating an issue, please check the following: -- To avoid duplication, please search for similar issues before creating a new issue. -- Do not use Issues to ask questions or troubleshooting. - - Issues should only be used to feature requests, suggestions, and bug tracking. - - Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3). +Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues . -> **Warning** -> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged. +* Please search existing issues to avoid duplication. If your issue is already filed, please add your reaction or comment to the existing one. +* If you have multiple independent issues, please submit them separately. -## Before implementation -When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented. - -At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them. -PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review. - -Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask another member to assign you). By expressing your intention to work the Issue, you can prevent conflicts in the work. - -## Well-known branches -- **`master`** branch is tracking the latest release and used for production purposes. -- **`develop`** branch is where we work for the next release. - - When you create a PR, basically target it to this branch. -- **`l10n_develop`** branch is reserved for localization management. - -## Creating a PR -Thank you for your PR! Before creating a PR, please check the following: -- If possible, prefix the title with a keyword that identifies the type of this PR, as shown below. - - `fix` / `refactor` / `feat` / `enhance` / `perf` / `chore` etc - - Also, make sure that the granularity of this PR is appropriate. Please do not include more than one type of change or interest in a single PR. -- If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text. -- Please add the summary of the changes to [`CHANGELOG.md`](/CHANGELOG.md). However, this is not necessary for changes that do not affect the users, such as refactoring. -- Check if there are any documents that need to be created or updated due to this change. -- If you have added a feature or fixed a bug, please add a test case if possible. -- Please make sure that tests and Lint are passed in advance. - - You can run it with `npm run test` and `npm run lint`. [See more info](#testing) -- If this PR includes UI changes, please attach a screenshot in the text. - -Thanks for your cooperation 🤗 - -## Reviewers guide -Be willing to comment on the good points and not just the things you want fixed 💯 - -### Review perspective -- Scope - - Are the goals of the PR clear? - - Is the granularity of the PR appropriate? -- Security - - Does merging this PR create a vulnerability? -- Performance - - Will merging this PR cause unexpected performance degradation? - - Is there a more efficient way? -- Testing - - Does the test ensure the expected behavior? - - Are there any omissions or gaps? - - Does it check for anomalies? - -## Deploy -The `/deploy` command by issue comment can be used to deploy the contents of a PR to the preview environment. -``` -/deploy sha= -``` -An actual domain will be assigned so you can test the federation. - -## Merge - -## Release -### Release Instructions -1. Commit version changes in the `develop` branch ([package.json](https://github.com/misskey-dev/misskey/blob/develop/package.json)) -2. Create a release PR. - - Into `master` from `develop` branch. - - The title must be in the format `Release: x.y.z`. - - `x.y.z` is the new version you are trying to release. -3. Deploy and perform a simple QA check. Also verify that the tests passed. -4. Merge it. -5. Create a [release of GitHub](https://github.com/misskey-dev/misskey/releases) - - The target branch must be `master` - - The tag name must be the version +## Branches +* **master** branch is tracking the latest release and used for production purposes. +* **develop** branch is where we work for the next release. +* **l10n_develop** branch is reserved for localization management. ## Localization (l10n) Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management. @@ -98,84 +28,143 @@ If your language is not listed in Crowdin, please open an issue. ![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg) -## Development -During development, it is useful to use the `npm run dev` command. -This command monitors the server-side and client-side source files and automatically builds them if they are modified. -In addition, it will also automatically start the Misskey server process. +## Internationalization (i18n) +Misskey uses the Vue.js plugin [Vue I18n](https://github.com/kazupon/vue-i18n). +Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/introduction.html . -## Testing -- Test codes are located in [`/test`](/test). +## Documentation +* Documents for contributors are located in [`/docs`](/docs). +* Documents for instance admins are located in [`/docs`](/docs). +* Documents for end users are located in [`/src/docs`](/src/docs). -### Run test -Create a config file. -``` -cp test/test.yml .config/ -``` -Prepare DB/Redis for testing. -``` -docker-compose -f test/docker-compose.yml up -``` -Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`. - -Run all test. -``` -npm run test -``` - -#### Run specify test -``` -npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/foo.ts --require ts-node/register -``` - -### e2e tests -TODO +## Test +* Test codes are located in [`/test`](/test). ## Continuous integration -Misskey uses GitHub Actions for executing automated tests. -Configuration files are located in [`/.github/workflows`](/.github/workflows). +Misskey uses CircleCI for executing automated tests. +Configuration files are located in [`/.circleci`](/.circleci). -## Vue -Misskey uses Vue(v3) as its front-end framework. -- Use TypeScript. -- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.** - - Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome. +## Adding MisskeyRoom items +* Use English for material, object and texture names. +* Use meter for unit of length. +* Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing). +* Your PR must include the glTF binary files (`.glb`) of your models. +* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml). +* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5). -## nirax -niraxは、Misskeyで使用しているオリジナルのフロントエンドルーティングシステムです。 -**vue-routerから影響を多大に受けているので、まずはvue-routerについて学ぶことをお勧めします。** +If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/). +You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html). -### ルート定義 -ルート定義は、以下の形式のオブジェクトの配列です。 - -``` ts -{ - name?: string; - path: string; - component: Component; - query?: Record; - loginRequired?: boolean; - hash?: string; - globalCacheKey?: string; - children?: RouteDef[]; -} -``` - -> **Warning** -> 現状、ルートは定義された順に評価されます。 -> たとえば、`/foo/:id`ルート定義の次に`/foo/bar`ルート定義がされていた場合、後者がマッチすることはありません。 - -### 複数のルーター -vue-routerとの最大の違いは、niraxは複数のルーターが存在することを許可している点です。 -これにより、アプリ内ウィンドウでブラウザとは個別にルーティングすることなどが可能になります。 - -## Notes +## FAQ ### How to resolve conflictions occurred at yarn.lock? Just execute `yarn` to fix it. -### INSERTするときにはsaveではなくinsertを使用する -#6441 +## Glossary +### AP +Stands for _**A**ctivity**P**ub_. +### MFM +Stands for _**M**isskey **F**lavored **M**arkdown_. + +### Mk +Stands for _**M**iss**k**ey_. + +### SW +Stands for _**S**ervice**W**orker_. + +### Nyaize +Convert な(na) to にゃ(nya) + +#### Denyaize +Revert Nyaize + +## TypeScript Coding Style +### Do not omit semicolons +This is to avoid Automatic Semicolon Insertion (ASI) hazard. + +Ref: +* https://www.ecma-international.org/ecma-262/#sec-automatic-semicolon-insertion +* https://github.com/tc39/ecma262/pull/1062 + +### Do not omit curly brackets +Bad: +``` ts +if (foo) + bar; +else + baz; +``` + +Good: +``` ts +if (foo) { + bar; +} else { + baz; +} +``` + +As a special case, you can omit the curly brackets if + +* the body of the `if`-statement have only one statement and, +* the `if`-statement does not have `else`-clause. + +Good: +``` ts +if (foo) bar; +``` + +Make sure that the condition and the body statement are on the same line. + +### Do not use `==` when it can simply be replaced with `===`. +🥰 + +### Use only boolean (or null related) values in the condition of an `if`-statement. +Bad: +``` ts +if (foo.length) +``` + +Good: +``` ts +if (foo.length > 0) +``` + +### Do not use `export default` +This is because the current language support does not work well with `export default`. + +Ref: +* https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html +* https://gfx.hatenablog.com/entry/2017/11/24/135343 + +Bad: +``` ts +export default function(foo: string): string { +``` + +Good: +``` ts +export function something(foo: string): string { +``` + +## Directory structure +``` +src ... Source code + @types ... Type definitions + prelude ... Independence utils for coding JavaScript without side effects + misc ... Independence utils for Misskey without side effects + service ... Common functions with side effects + queue ... Job queues and Jobs + server ... Web Server + client ... Client + mfm ... MFM + +test ... Test code + +``` + +## Notes ### placeholder SQLをクエリビルダで組み立てる際、使用するプレースホルダは重複してはならない 例えば @@ -247,31 +236,46 @@ const users = userIds.length > 0 ? await Users.find({ SQLでは配列のインデックスは**1始まり**。 `[a, b, c]`の `a`にアクセスしたいなら`[0]`ではなく`[1]`と書く -### null IN -nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。 - ### `undefined`にご用心 MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。 MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください -### Migration作成方法 -packages/backendで: -```sh -npx typeorm migration:generate -d ormconfig.js -o +### 簡素な`undefined`チェック +データベースからレコードを取得するときに、プログラムの流れ的に(ほぼ)絶対`undefined`にはならない場合でも、`undefined`チェックしないとTypeScriptに怒られます。 +でもいちいち複数行を費やして、発生するはずのない`undefined`をチェックするのも面倒なので、`ensure`というユーティリティ関数を用意しています。 +例えば、 +``` ts +const user = await Users.findOne(userId); +// この時点で user の型は User | undefined +if (user == null) { + throw 'missing user'; +} +// この時点で user の型は User +``` +という処理を`ensure`を使うと +``` ts +const user = await Users.findOne(userId).then(ensure); +// この時点で user の型は User +``` +という風に書けます。 +もちろん`ensure`内部でエラーを握りつぶすようなことはしておらず、万が一`undefined`だった場合はPromiseがRejectされ後続の処理は実行されません。 +``` ts +const user = await Users.findOne(userId).then(ensure); +// 万が一 Users.findOne の結果が undefined だったら、ensure でエラーが発生するので +// この行に到達することは無い +// なので、.then(ensure) は +// if (user == null) { +// throw 'missing user'; +// } +// の糖衣構文のような扱いです ``` -- 生成後、ファイルをmigration下に移してください -- 作成されたスクリプトは不必要な変更を含むため除去してください +### Migration作成方法 +``` +npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前 +``` -### コネクションには`markRaw`せよ -**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。 - -### JSONのimportに気を付けよう -TypeScriptでjsonをimportすると、tscでコンパイルするときにそのjsonファイルも一緒にdistディレクトリに吐き出されてしまう。この挙動により、意図せずファイルの書き換えが発生することがあるので、jsonをimportするときは書き換えられても良いものかどうか確認すること。書き換えされて欲しくない場合は、importで読み込むのではなく、`fs.readFileSync`などの関数を使って読み込むようにすればよい。 - -### コンポーネントのスタイル定義でmarginを持たせない -コンポーネント自身がmarginを設定するのは問題の元となることはよく知られている -marginはそのコンポーネントを使う側が設定する +作成されたスクリプトは不必要な変更を含むため除去してください。 ## その他 ### HTMLのクラス名で follow という単語は使わない diff --git a/COPYING b/COPYING index afa179459..5abc3e989 100644 --- a/COPYING +++ b/COPYING @@ -1,11 +1,15 @@ Unless otherwise stated this repository is -Copyright © 2014-2022 syuilo and contributers +Copyright © 2014-2020 syuilo and contributers And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE. Misskey includes several third-party Open-Source softwares. +Unicode emoji regular expressions by Twitter, Inc. +License: MIT +https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md + Emoji keywords for Unicode 11 and below by Mu-An Chiou License: MIT https://github.com/muan/emojilib/blob/master/LICENSE @@ -13,7 +17,3 @@ https://github.com/muan/emojilib/blob/master/LICENSE RsaSignature2017 implementation by Transmute Industries Inc License: MIT https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE - -Machine learning model for sensitive images by Infinite Red, Inc. -License: MIT -https://github.com/infinitered/nsfwjs/blob/master/LICENSE diff --git a/Dockerfile b/Dockerfile index 81dc72637..f6a1253bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,41 @@ -FROM node:16.15.1-bullseye AS builder +FROM node:14.15.0-alpine AS base -ARG NODE_ENV=production +ENV NODE_ENV=production WORKDIR /misskey -COPY . ./ +FROM base AS builder -RUN apt-get update -RUN apt-get install -y build-essential -RUN git submodule update --init +RUN apk add --no-cache \ + autoconf \ + automake \ + file \ + git \ + g++ \ + gcc \ + libc-dev \ + libtool \ + make \ + nasm \ + pkgconfig \ + python \ + zlib-dev + +COPY package.json yarn.lock ./ RUN yarn install +COPY . ./ RUN yarn build -RUN rm -rf .git -FROM node:16.15.1-bullseye-slim AS runner +FROM base AS runner -WORKDIR /misskey - -RUN apt-get update -RUN apt-get install -y ffmpeg tini +RUN apk add --no-cache \ + ffmpeg \ + tini +RUN npm i -g web-push +ENTRYPOINT ["/sbin/tini", "--"] COPY --from=builder /misskey/node_modules ./node_modules COPY --from=builder /misskey/built ./built -COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules -COPY --from=builder /misskey/packages/backend/built ./packages/backend/built -COPY --from=builder /misskey/packages/client/node_modules ./packages/client/node_modules COPY . ./ -ENV NODE_ENV=production -ENTRYPOINT ["/usr/bin/tini", "--"] CMD ["npm", "run", "migrateandstart"] diff --git a/README.md b/README.md index c27327064..6fbef90d2 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,224 @@ -
- - Misskey logo - - -**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀** - + + +[![Misskey](/assets/title.png)](https://join.misskey.page/) +================================================================ + +[![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge&logo=circleci)](https://circleci.com/gh/syuilo/misskey) +[![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge&logo=npm)](https://david-dm.org/syuilo/misskey) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge&logo=github)](http://makeapullrequest.com) +[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech) + +**A forever evolving, professional microblogging platform.** + +

+Misskey is a decentralized microblogging platform born on Earth. +Since it exists within the Fediverse (a universe where various social media platforms are organized), +it is mutually linked with other social media platforms. +Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? Find an instance! +

+ +Become a Patron! + +![](https://ja.mstdn.wiki/images/e/ed/Deck.jpg) + +:sparkles: Features +---------------------------------------------------------------- + + + +

Posting

+

+Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls! +

+ --- - - find an instance + - - create an instance +

Reactions

+

+Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”. +

- - become a contributor - - - join the community - - - become a patron - --- -
+ -
+

Interface

+

+Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets. +

- +--- -## ✨ Features -- **ActivityPub support**\ -Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed! -- **Reactions**\ -You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button. -- **Drive**\ -With Misskey's built in drive, you get cloud storage right in your social media, where you can upload any files, make folders, and find media from posts you've made! -- **Rich Web UI**\ - Misskey has a rich and easy to use Web UI! - It is highly customizable, from changing the layout and adding widgets to making custom themes. - Furthermore, plugins can be created using AiScript, an original programming language. -- And much more... + -
+

Misskey Drive

+

+Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution! +

-
+--- -## Documentation +...and more! Experience Misskey with your own eyes at [misskey.io](https://misskey.io/) or join one of the [other instances](https://joinmisskey.github.io/) that are available. -Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/), some of the links and graphics above also lead to specific portions of it. +Screen shots +---------------------------------------------------------------- +### Profile page + -## Sponsors -
- RSS3 -
+### Explore users + + +:new: What's new +---------------------------------------------------------------- +Please see the [Release notes](./CHANGELOG.md). + +:package: Create your own instance +---------------------------------------------------------------- +Please see the [Setup and Installation Guide](./docs/setup.en.md). + +:wrench: Contribution +---------------------------------------------------------------- +Please see the [Contribution Guide](./CONTRIBUTING.md). + +### Collaborators + + + + + + + + + + + + + + + + + + + + + +
syuiloAyaMorisawamei23acid-chickenrinsukitamainaXelticau1-liquid
@syuilo@AyaMorisawa@mei23@acid-chicken@rinsuki@tamaina@Xeltica@u1-liquid
+ +:heart: Backers +---------------------------------------------------------------- + + + + + + + + + + + + + + + +
Roujo Oliver Maximilian Seidelweepjp kiritan みなしま Eduardo Quiros
Roujo Oliver Maximilian Seidelweepjp kiritan みなしま Eduardo Quiros
+ + + + + + + + + + + + + + + + + + + + +
NesakkoDemogrognardLiaizon Wakestmkatze kabo2468y AureoleArk osapon 見当かなみ Wataru Manji (manji0)
NesakkoDemogrognardLiaizon Wakestmkatze kabo2468y AureoleArk osapon 見当かなみ Wataru Manji (manji0)
+ + + + + + + + + + + + + + + + + + +
YuzuRyo61 mewl hayabusaS YTakumi Sugitasikyosyounin YUKIMOCHIxianontotokoro
YuzuRyo61 mewl hayabusaS YTakumi Sugitasikyosyounin YUKIMOCHIxianontotokoro
+ + + + + + + + + + + + + + + + + + + + + + + + +
sheeta.s motcha axtuki1 Satsuki Yanagitakimura aqz tamainanafuchoco Atsuko TominaganatalieEBISUMEnoellabo
sheeta.s motcha axtuki1 Satsuki Yanagitakimura aqz tamainanafuchoco Atsuko TominaganatalieEBISUMEnoellabo
+ + + + + + + + + + + + + + + + + + +
CG Hekovic uroco @99Chandler Nokotaro Takedanenohi Efertone Takashi Shibuya
CG Hekovic uroco @99Chandler Nokotaro Takedanenohi Efertone Takashi Shibuya
+ +**Last updated:** Sun, 26 Jul 2020 07:00:10 UTC + + +[backer-url]: #backers +[backer-badge]: https://opencollective.com/misskey/backers/badge.svg +[backers-image]: https://opencollective.com/misskey/backers.svg +[sponsor-url]: #sponsors +[sponsor-badge]: https://opencollective.com/misskey/sponsors/badge.svg +[sponsors-image]: https://opencollective.com/misskey/sponsors.svg +[support-url]: https://opencollective.com/misskey#support + +[syuilo-link]: https://syuilo.com +[syuilo-icon]: https://avatars2.githubusercontent.com/u/4439005?v=3&s=70 diff --git a/ROADMAP.md b/ROADMAP.md deleted file mode 100644 index b2c5c8757..000000000 --- a/ROADMAP.md +++ /dev/null @@ -1,42 +0,0 @@ -# Roadmap -The order of individual tasks is a guide only and is subject to change depending on the situation. -Also, the later tasks are more indefinite and are subject to change as development progresses. - -## (1) Improve maintainability \ -This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development. - -- Make the number of type errors zero (backend) - - Probably need to switch some libraries to others that make it difficult to reduce type errors - - e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537 -- Improve CI - - Fix tests - - mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work. - - Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986 - - Add more tests - - May need to implement a mechanism that allows for DI - - https://github.com/misskey-dev/misskey/pull/9085 - - Measure coverage - - https://github.com/misskey-dev/misskey/pull/9081 -- Improve documentation -- Refactoring - - Extract the logic of each endpoint definition into a service and just call it - -## (2) Improve functionality -Once Phase 1 is complete and an environment conducive to the development of a stable system is in place, the implementation of new functions can begin gradually. - -- Improve features for moderation -- OAuth2 support https://github.com/misskey-dev/misskey/issues/8262 -- GraphQL support? - -## (3) Improve scalability -Once the development of the feature has settled down, this may be an opportunity to make larger modifications. - -- Rewriting in Rust? - -## (4) Change the world -It is time to promote Misskey and change the world. - -- Become more major than services such as Twitter and become critical infrastructure for the world -- MiOS will be developed and integrated into various systems - What is MiOS? -- Letting Ai-chan interfere with the real world -- Make Misskey a member of GAFA; Misskey's office must be a reinforced concrete brutalist building with a courtyard. diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 2c026a5f3..000000000 --- a/SECURITY.md +++ /dev/null @@ -1,9 +0,0 @@ -# Reporting Security Issues - -If you discover a security issue in Misskey, please report it by sending an -email to [syuilotan@yahoo.co.jp](mailto:syuilotan@yahoo.co.jp). - -This will allow us to assess the risk, and make a fix available before we add a -bug report to the GitHub repository. - -Thanks for helping make Misskey safe for everyone. diff --git a/packages/backend/assets/api-doc.png b/assets/api-doc.png similarity index 100% rename from packages/backend/assets/api-doc.png rename to assets/api-doc.png diff --git a/assets/apple-touch-icon.png b/assets/apple-touch-icon.png new file mode 100644 index 000000000..1ae2bb88e Binary files /dev/null and b/assets/apple-touch-icon.png differ diff --git a/assets/banner.afdesign b/assets/banner.afdesign deleted file mode 100644 index 08b5c1b4a..000000000 Binary files a/assets/banner.afdesign and /dev/null differ diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 000000000..767004005 Binary files /dev/null and b/assets/favicon.png differ diff --git a/assets/icon.svg b/assets/icon.svg new file mode 100644 index 000000000..752a0a0bb --- /dev/null +++ b/assets/icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/192.png b/assets/icons/192.png new file mode 100644 index 000000000..3eec8311e Binary files /dev/null and b/assets/icons/192.png differ diff --git a/assets/icons/512.png b/assets/icons/512.png new file mode 100644 index 000000000..73c0d9aec Binary files /dev/null and b/assets/icons/512.png differ diff --git a/assets/mi-white.afdesign b/assets/mi-white.afdesign deleted file mode 100644 index b0a309d1c..000000000 Binary files a/assets/mi-white.afdesign and /dev/null differ diff --git a/assets/mi.afdesign b/assets/mi.afdesign deleted file mode 100644 index e7f6331c4..000000000 Binary files a/assets/mi.afdesign and /dev/null differ diff --git a/packages/backend/assets/robots.txt b/assets/robots.txt similarity index 100% rename from packages/backend/assets/robots.txt rename to assets/robots.txt diff --git a/assets/title_float.svg b/assets/title_float.svg deleted file mode 100644 index 43205ac1c..000000000 --- a/assets/title_float.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/chart/Chart.yaml b/chart/Chart.yaml deleted file mode 100644 index 8f31cf7fb..000000000 --- a/chart/Chart.yaml +++ /dev/null @@ -1,3 +0,0 @@ -apiVersion: v2 -name: misskey -version: 0.0.0 diff --git a/chart/files/default.yml b/chart/files/default.yml deleted file mode 100644 index a9ef22f42..000000000 --- a/chart/files/default.yml +++ /dev/null @@ -1,165 +0,0 @@ -#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -# Misskey configuration -#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -# ┌─────┐ -#───┘ URL └───────────────────────────────────────────────────── - -# Final accessible URL seen by a user. -# url: https://example.tld/ - -# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE -# URL SETTINGS AFTER THAT! - -# ┌───────────────────────┐ -#───┘ Port and TLS settings └─────────────────────────────────── - -# -# Misskey supports two deployment options for public. -# - -# Option 1: With Reverse Proxy -# -# +----- https://example.tld/ ------------+ -# +------+ |+-------------+ +----------------+| -# | User | ---> || Proxy (443) | ---> | Misskey (3000) || -# +------+ |+-------------+ +----------------+| -# +---------------------------------------+ -# -# You need to setup reverse proxy. (eg. nginx) -# You do not define 'https' section. - -# Option 2: Standalone -# -# +- https://example.tld/ -+ -# +------+ | +---------------+ | -# | User | ---> | | Misskey (443) | | -# +------+ | +---------------+ | -# +------------------------+ -# -# You need to run Misskey as root. -# You need to set Certificate in 'https' section. - -# To use option 1, uncomment below line. -port: 3000 # A port that your Misskey server should listen. - -# To use option 2, uncomment below lines. -#port: 443 - -#https: -# # path for certification -# key: /etc/letsencrypt/live/example.tld/privkey.pem -# cert: /etc/letsencrypt/live/example.tld/fullchain.pem - -# ┌──────────────────────────┐ -#───┘ PostgreSQL configuration └──────────────────────────────── - -db: - host: localhost - port: 5432 - - # Database name - db: misskey - - # Auth - user: example-misskey-user - pass: example-misskey-pass - - # Whether disable Caching queries - #disableCache: true - - # Extra Connection options - #extra: - # ssl: true - -# ┌─────────────────────┐ -#───┘ Redis configuration └───────────────────────────────────── - -redis: - host: localhost - port: 6379 - #pass: example-pass - #prefix: example-prefix - #db: 1 - -# ┌─────────────────────────────┐ -#───┘ Elasticsearch configuration └───────────────────────────── - -#elasticsearch: -# host: localhost -# port: 9200 -# ssl: false -# user: -# pass: - -# ┌───────────────┐ -#───┘ ID generation └─────────────────────────────────────────── - -# You can select the ID generation method. -# You don't usually need to change this setting, but you can -# change it according to your preferences. - -# Available methods: -# aid ... Short, Millisecond accuracy -# meid ... Similar to ObjectID, Millisecond accuracy -# ulid ... Millisecond accuracy -# objectid ... This is left for backward compatibility - -# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE -# ID SETTINGS AFTER THAT! - -id: "aid" -# ┌─────────────────────┐ -#───┘ Other configuration └───────────────────────────────────── - -# Whether disable HSTS -#disableHsts: true - -# Number of worker processes -#clusterLimit: 1 - -# Job concurrency per worker -# deliverJobConcurrency: 128 -# inboxJobConcurrency: 16 - -# Job rate limiter -# deliverJobPerSec: 128 -# inboxJobPerSec: 16 - -# Job attempts -# deliverJobMaxAttempts: 12 -# inboxJobMaxAttempts: 8 - -# IP address family used for outgoing request (ipv4, ipv6 or dual) -#outgoingAddressFamily: ipv4 - -# Syslog option -#syslog: -# host: localhost -# port: 514 - -# Proxy for HTTP/HTTPS -#proxy: http://127.0.0.1:3128 - -#proxyBypassHosts: [ -# 'example.com', -# '192.0.2.8' -#] - -# Proxy for SMTP/SMTPS -#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT -#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4 -#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5 - -# Media Proxy -#mediaProxy: https://example.com/proxy - -# Sign to ActivityPub GET request (default: false) -#signToActivityPubGet: true - -#allowedPrivateNetworks: [ -# '127.0.0.1/32' -#] - -# Upload or download file size limits (bytes) -#maxFileSize: 262144000 diff --git a/chart/templates/ConfigMap.yml b/chart/templates/ConfigMap.yml deleted file mode 100644 index 37c25e086..000000000 --- a/chart/templates/ConfigMap.yml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "misskey.fullname" . }}-configuration -data: - default.yml: |- - {{ .Files.Get "files/default.yml"|nindent 4 }} - url: {{ .Values.url }} diff --git a/chart/templates/Deployment.yml b/chart/templates/Deployment.yml deleted file mode 100644 index d16aece91..000000000 --- a/chart/templates/Deployment.yml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "misskey.fullname" . }} - labels: - {{- include "misskey.labels" . | nindent 4 }} -spec: - selector: - matchLabels: - {{- include "misskey.selectorLabels" . | nindent 6 }} - replicas: 1 - template: - metadata: - labels: - {{- include "misskey.selectorLabels" . | nindent 8 }} - spec: - containers: - - name: misskey - image: {{ .Values.image }} - env: - - name: NODE_ENV - value: {{ .Values.environment }} - volumeMounts: - - name: {{ include "misskey.fullname" . }}-configuration - mountPath: /misskey/.config - readOnly: true - ports: - - containerPort: 3000 - - name: postgres - image: postgres:14-alpine - env: - - name: POSTGRES_USER - value: "example-misskey-user" - - name: POSTGRES_PASSWORD - value: "example-misskey-pass" - - name: POSTGRES_DB - value: "misskey" - ports: - - containerPort: 5432 - - name: redis - image: redis:alpine - ports: - - containerPort: 6379 - volumes: - - name: {{ include "misskey.fullname" . }}-configuration - configMap: - name: {{ include "misskey.fullname" . }}-configuration diff --git a/chart/templates/Service.yml b/chart/templates/Service.yml deleted file mode 100644 index 320958129..000000000 --- a/chart/templates/Service.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "misskey.fullname" . }} - annotations: - dev.okteto.com/auto-ingress: "true" -spec: - type: ClusterIP - ports: - - port: 3000 - protocol: TCP - name: http - selector: - {{- include "misskey.selectorLabels" . | nindent 4 }} diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl deleted file mode 100644 index a5a2499f3..000000000 --- a/chart/templates/_helpers.tpl +++ /dev/null @@ -1,62 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "misskey.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "misskey.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "misskey.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "misskey.labels" -}} -helm.sh/chart: {{ include "misskey.chart" . }} -{{ include "misskey.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "misskey.selectorLabels" -}} -app.kubernetes.io/name: {{ include "misskey.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "misskey.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "misskey.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} diff --git a/chart/values.yml b/chart/values.yml deleted file mode 100644 index a7031538a..000000000 --- a/chart/values.yml +++ /dev/null @@ -1,3 +0,0 @@ -url: https://example.tld/ -image: okteto.dev/misskey -environment: production diff --git a/crowdin.yml b/crowdin.yml index 774ddc7a6..c8c3caec8 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,4 +1,3 @@ files: - source: /locales/ja-JP.yml translation: /locales/%locale%.yml - update_option: update_as_unapproved diff --git a/cypress.config.ts b/cypress.config.ts deleted file mode 100644 index e390c41a5..000000000 --- a/cypress.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from 'cypress' - -export default defineConfig({ - e2e: { - // We've imported your old cypress plugins here. - // You may want to clean this up later by importing these. - setupNodeEvents(on, config) { - return require('./cypress/plugins/index.js')(on, config) - }, - baseUrl: 'http://localhost:61812', - }, -}) diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js deleted file mode 100644 index eb5195c4b..000000000 --- a/cypress/e2e/basic.cy.js +++ /dev/null @@ -1,149 +0,0 @@ -describe('Before setup instance', () => { - beforeEach(() => { - cy.resetState(); - }); - - afterEach(() => { - // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 - // waitを入れることでそれを防止できる - cy.wait(1000); - }); - - it('successfully loads', () => { - cy.visit('/'); - }); - - it('setup instance', () => { - cy.visit('/'); - - cy.intercept('POST', '/api/admin/accounts/create').as('signup'); - - cy.get('[data-cy-admin-username] input').type('admin'); - cy.get('[data-cy-admin-password] input').type('admin1234'); - cy.get('[data-cy-admin-ok]').click(); - - // なぜか動かない - //cy.wait('@signup').should('have.property', 'response.statusCode'); - cy.wait('@signup'); - }); -}); - -describe('After setup instance', () => { - beforeEach(() => { - cy.resetState(); - - // インスタンス初期セットアップ - cy.registerUser('admin', 'pass', true); - }); - - afterEach(() => { - // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 - // waitを入れることでそれを防止できる - cy.wait(1000); - }); - - it('successfully loads', () => { - cy.visit('/'); - }); - - it('signup', () => { - cy.visit('/'); - - cy.intercept('POST', '/api/signup').as('signup'); - - cy.get('[data-cy-signup]').click(); - cy.get('[data-cy-signup-username] input').type('alice'); - cy.get('[data-cy-signup-password] input').type('alice1234'); - cy.get('[data-cy-signup-password-retype] input').type('alice1234'); - cy.get('[data-cy-signup-submit]').click(); - - cy.wait('@signup'); - }); -}); - -describe('After user signup', () => { - beforeEach(() => { - cy.resetState(); - - // インスタンス初期セットアップ - cy.registerUser('admin', 'pass', true); - - // ユーザー作成 - cy.registerUser('alice', 'alice1234'); - }); - - afterEach(() => { - // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 - // waitを入れることでそれを防止できる - cy.wait(1000); - }); - - it('successfully loads', () => { - cy.visit('/'); - }); - - it('signin', () => { - cy.visit('/'); - - cy.intercept('POST', '/api/signin').as('signin'); - - cy.get('[data-cy-signin]').click(); - cy.get('[data-cy-signin-username] input').type('alice'); - // Enterキーでサインインできるかの確認も兼ねる - cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); - - cy.wait('@signin'); - }); - - it('suspend', function() { - cy.request('POST', '/api/admin/suspend-user', { - i: this.admin.token, - userId: this.alice.id, - }); - - cy.visit('/'); - - cy.get('[data-cy-signin]').click(); - cy.get('[data-cy-signin-username] input').type('alice'); - cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); - - // TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする - cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi); - }); -}); - -describe('After user singed in', () => { - beforeEach(() => { - cy.resetState(); - - // インスタンス初期セットアップ - cy.registerUser('admin', 'pass', true); - - // ユーザー作成 - cy.registerUser('alice', 'alice1234'); - - cy.login('alice', 'alice1234'); - }); - - afterEach(() => { - // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 - // waitを入れることでそれを防止できる - cy.wait(1000); - }); - - it('successfully loads', () => { - cy.get('[data-cy-open-post-form]').should('be.visible'); - }); - - it('note', () => { - cy.get('[data-cy-open-post-form]').click(); - cy.get('[data-cy-post-form-text]').type('Hello, Misskey!'); - cy.get('[data-cy-open-post-form-submit]').click(); - - cy.contains('Hello, Misskey!'); - }); -}); - -// TODO: 投稿フォームの公開範囲指定のテスト -// TODO: 投稿フォームのファイル添付のテスト -// TODO: 投稿フォームのハッシュタグ保持フィールドのテスト diff --git a/cypress/e2e/widgets.cy.js b/cypress/e2e/widgets.cy.js deleted file mode 100644 index 56ad95ee9..000000000 --- a/cypress/e2e/widgets.cy.js +++ /dev/null @@ -1,65 +0,0 @@ -describe('After user signed in', () => { - beforeEach(() => { - cy.resetState(); - cy.viewport('macbook-16'); - - // インスタンス初期セットアップ - cy.registerUser('admin', 'pass', true); - - // ユーザー作成 - cy.registerUser('alice', 'alice1234'); - - cy.login('alice', 'alice1234'); - }); - - afterEach(() => { - // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 - // waitを入れることでそれを防止できる - cy.wait(1000); - }); - - it('widget edit toggle is visible', () => { - cy.get('.mk-widget-edit').should('be.visible'); - }); - - it('widget select should be visible in edit mode', () => { - cy.get('.mk-widget-edit').click(); - cy.get('.mk-widget-select').should('be.visible'); - }); - - it('first widget should be removed', () => { - cy.get('.mk-widget-edit').click(); - cy.get('.customize-container:first-child .remove._button').click(); - cy.get('.customize-container').should('have.length', 2); - }); - - function buildWidgetTest(widgetName) { - it(`${widgetName} widget should get added`, () => { - cy.get('.mk-widget-edit').click(); - cy.get('.mk-widget-select select').select(widgetName, { force: true }); - cy.get('.bg._modalBg.transparent').click({ multiple: true, force: true }); - cy.get('.mk-widget-add').click({ force: true }); - cy.get(`.mkw-${widgetName}`).should('exist'); - }); - } - - buildWidgetTest('memo'); - buildWidgetTest('notifications'); - buildWidgetTest('timeline'); - buildWidgetTest('calendar'); - buildWidgetTest('rss'); - buildWidgetTest('trends'); - buildWidgetTest('clock'); - buildWidgetTest('activity'); - buildWidgetTest('photos'); - buildWidgetTest('digitalClock'); - buildWidgetTest('federation'); - buildWidgetTest('postForm'); - buildWidgetTest('slideshow'); - buildWidgetTest('serverMetric'); - buildWidgetTest('onlineUsers'); - buildWidgetTest('jobQueue'); - buildWidgetTest('button'); - buildWidgetTest('aiscript'); - buildWidgetTest('aichan'); -}); diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json deleted file mode 100644 index 02e425437..000000000 --- a/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js deleted file mode 100644 index 59b2bab6e..000000000 --- a/cypress/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/// -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -/** - * @type {Cypress.PluginConfig} - */ -// eslint-disable-next-line no-unused-vars -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config -} diff --git a/cypress/support/commands.js b/cypress/support/commands.js deleted file mode 100644 index 95bfcf685..000000000 --- a/cypress/support/commands.js +++ /dev/null @@ -1,55 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add('login', (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) - -Cypress.Commands.add('resetState', () => { - cy.window(win => { - win.indexedDB.deleteDatabase('keyval-store'); - }); - cy.request('POST', '/api/reset-db').as('reset'); - cy.get('@reset').its('status').should('equal', 204); - cy.reload(true); -}); - -Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => { - const route = isAdmin ? '/api/admin/accounts/create' : '/api/signup'; - - cy.request('POST', route, { - username: username, - password: password, - }).its('body').as(username); -}); - -Cypress.Commands.add('login', (username, password) => { - cy.visit('/'); - - cy.intercept('POST', '/api/signin').as('signin'); - - cy.get('[data-cy-signin]').click(); - cy.get('[data-cy-signin-username] input').type(username); - cy.get('[data-cy-signin-password] input').type(`${password}{enter}`); - - cy.wait('@signin').as('signedIn'); -}); diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js deleted file mode 100644 index 9185be344..000000000 --- a/cypress/support/e2e.js +++ /dev/null @@ -1,32 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') - -Cypress.on('uncaught:exception', (err, runnable) => { - if ([ - // Chrome - 'ResizeObserver loop limit exceeded', - - // Firefox - 'ResizeObserver loop completed with undelivered notifications', - ].some(msg => err.message.includes(msg))) { - return false; - } -}); diff --git a/docker-compose.yml b/docker-compose.yml index 0bf17a555..df648d291 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,13 +9,12 @@ services: - redis # - es ports: - - "3000:3000" + - "127.0.0.1:3000:3000" networks: - internal_network - external_network volumes: - ./files:/misskey/files - - ./.config:/misskey/.config:ro redis: restart: always @@ -40,7 +39,6 @@ services: # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 # environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" -# - "TAKE_FILE_OWNERSHIP=111" # networks: # - internal_network # volumes: diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..87b100772 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,33 @@ +# Docs +These docs are for contributors of Misskey or admins of instance of Misskey. +Docs for users are located in `src/docs`. + +これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。 +利用者向けのドキュメントは`src/docs`にあります。 + +这些文档是为 Misskey 的贡献者,或是 Misskey 实例的管理者准备的。 +为用户准备的文档放置在 `src/docs` 文件夹中。 + +## 日本語版 + +- [Misskey構築の手引き](./setup.ja.md) +- [運営ガイド](./manage.ja.md) +- [Dockerを使ったMisskey構築方法](./docker.ja.md) + +## English Version + +- [Misskey Setup and Installation Guide](./setup.en.md) +- [Management guide](./manage.en.md) +- [Docker Guide](./docker.en.md) + +## Française Version + +- [Guide d'installation et de configuration de Misskey](./setup.fr.md) +- [Guide d'administration](./manage.fr.md) +- [Guide Docker](./docker.fr.md) + +## 简体中文版 + +- [Misskey 设置和安装指南](./setup.zh.md) +- [运营指南](./manage.zh.md) +- [Docker 部署指南](./docker.zh.md) diff --git a/docs/docker.en.md b/docs/docker.en.md new file mode 100644 index 000000000..965c89a51 --- /dev/null +++ b/docs/docker.en.md @@ -0,0 +1,96 @@ +Docker Guide +================================================================ + +This guide describes how to install and setup Misskey with Docker. + +- [Japanese version also available - 日本語版もあります](./docker.ja.md) +- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md) + +---------------------------------------------------------------- + +*1.* Download Misskey +---------------------------------------------------------------- +1. Clone Misskey repository's master branch. + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. Move to misskey directory. + + `cd misskey` + +3. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag. + + `git checkout master` + +*2.* Configure Misskey +---------------------------------------------------------------- + +Create configuration files with following: + +```bash +cd .config +cp example.yml default.yml +cp docker_example.env docker.env +``` + +### `default.yml` + +Edit this file the same as non-Docker environment. +However hostname of Postgresql, Redis and Elasticsearch are not `localhost`, they are set in `docker-compose.yml`. +The following is default hostname: + +| Service | Hostname | +|---------------|----------| +| Postgresql | `db` | +| Redis | `redis` | +| Elasticsearch | `es` | + +### `docker.env` + +Configure Postgresql in this file. +The minimum required settings are: + +| name | Description | +|---------------------|---------------| +| `POSTGRES_PASSWORD` | Password | +| `POSTGRES_USER` | Username | +| `POSTGRES_DB` | Database name | + +*3.* Configure Docker +---------------------------------------------------------------- +Edit `docker-compose.yml`. + +*4.* Build Misskey +---------------------------------------------------------------- +Build misskey with the following: + +`docker-compose build` + +*5.* Init DB +---------------------------------------------------------------- +``` shell +docker-compose run --rm web yarn run init +``` + +*6.* That is it. +---------------------------------------------------------------- +Well done! Now you have an environment to run Misskey. + +### Launch normally +Just `docker-compose up -d`. GLHF! + +### How to update your Misskey server to the latest version +1. `git stash` +2. `git checkout master` +3. `git pull` +4. `git stash pop` +5. `docker-compose build` +6. Check [ChangeLog](../CHANGELOG.md) for migration information +7. `docker-compose stop && docker-compose up -d` + +### How to execute [cli commands](manage.en.md): +`docker-compose run --rm web node built/tools/mark-admin @example` + +---------------------------------------------------------------- + +If you have any questions or trouble, feel free to contact us! diff --git a/docs/docker.fr.md b/docs/docker.fr.md new file mode 100644 index 000000000..52d42ff2e --- /dev/null +++ b/docs/docker.fr.md @@ -0,0 +1,90 @@ +Guide Docker +================================================================ + +Ce guide explique comment installer et configurer Misskey avec Docker. + +- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md) +- [Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md) +- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md) + +---------------------------------------------------------------- + +*1.* Télécharger Misskey +---------------------------------------------------------------- +1. Clone le dépôt de Misskey sur la branche master. + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. Naviguez dans le dossier du dépôt. + + `cd misskey` + +3. Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest). + + `git checkout master` + +*2.* Configuration de Misskey +---------------------------------------------------------------- +1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`. +2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copie le fichier `.config/mongo_initdb_example.js` et le renomme en `mongo_initdb.js`. +3. Editez `default.yml` et `mongo_initdb.js`. + +*3.* Configurer Docker +---------------------------------------------------------------- +Editez `docker-compose.yml`. + +*4.* Contruire Misskey +---------------------------------------------------------------- +Contruire l'image Docker avec: + +`docker-compose build` + +*5.* C'est tout ! +---------------------------------------------------------------- +Parfait, Vous avez un environnement prêt pour démarrer Misskey. + +### Lancer normalement +Utilisez la commande `docker-compose up -d`. GLHF! + +### How to update your Misskey server to the latest version +1. `git stash` +2. `git checkout master` +3. `git pull` +4. `git stash pop` +5. `docker-compose build` +6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration +7. `docker-compose stop && docker-compose up -d` + +### Comment exécuter des [commandes](manage.fr.md) +`docker-compose run --rm web node built/tools/mark-admin @example` + +### Configuration d'ElasticSearch (pour la fonction de recherche) +*1.* Préparation de l'environnement +---------------------------------------------------------------- +1. Permet de créer le dossier d'accueil de la base ElasticSearch aves les bons droits + + `mkdir elasticsearch && chown 1000:1000 elasticsearch` + +2. Augmente la valeur max du paramètre map_count du système (valeur minimum pour pouvoir lancer ES) + + `sysctl -w vm.max_map_count=262144` + +*2.* Après lancement du docker-compose, initialisation de la base ElasticSearch +---------------------------------------------------------------- +1. Connexion dans le conteneur web + + `docker-compose -it web /bin/sh` + +2. Ajout du paquet curl + + `apk add curl` + +3. Création de la base ES + + `curl -X PUT "es:9200/misskey" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'` + +4. `exit` + +---------------------------------------------------------------- + +Si vous avez des questions ou des problèmes, n'hésitez pas à nous contacter ! diff --git a/docs/docker.ja.md b/docs/docker.ja.md new file mode 100644 index 000000000..befcc9116 --- /dev/null +++ b/docs/docker.ja.md @@ -0,0 +1,97 @@ +Dockerを使ったMisskey構築方法 +================================================================ + +このガイドはDockerを使ったMisskeyセットアップ方法について解説します。 + +- [英語版もあります - English version also available](./docker.en.md) +- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md) + +---------------------------------------------------------------- + +*1.* Misskeyのダウンロード +---------------------------------------------------------------- +1. masterブランチからMisskeyレポジトリをクローン + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. misskeyディレクトリに移動 + + `cd misskey` + +3. [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 + + `git checkout master` + +*2.* 設定ファイルの作成と編集 +---------------------------------------------------------------- + +下記コマンドで設定ファイルを作成してください。 + +```bash +cd .config +cp example.yml default.yml +cp docker_example.env docker.env +``` + +### `default.yml`の編集 + +非Docker環境と同じ様に編集してください。 +ただし、Postgresql、RedisとElasticsearchのホストは`localhost`ではなく、`docker-compose.yml`で設定されたサービス名になっています。 +標準設定では次の通りです。 + +| サービス | ホスト名 | +|---------------|---------| +| Postgresql |`db` | +| Redis |`redis` | +| Elasticsearch |`es` | + +### `docker.env`の編集 + +このファイルはPostgresqlの設定を記述します。 +最低限記述する必要がある設定は次の通りです。 + +| 設定 | 内容 | +|---------------------|--------------| +| `POSTGRES_PASSWORD` | パスワード | +| `POSTGRES_USER` | ユーザー名 | +| `POSTGRES_DB` | データベース名 | + +*3.* Dockerの設定 +---------------------------------------------------------------- +`docker-compose.yml`を編集してください。 + +*4.* Misskeyのビルド +---------------------------------------------------------------- +次のコマンドでMisskeyをビルドしてください: + +`docker-compose build` + +*5.* データベースを初期化 +---------------------------------------------------------------- +``` shell +docker-compose run --rm web yarn run init +``` + +*6.* 以上です! +---------------------------------------------------------------- +お疲れ様でした。これでMisskeyを動かす準備は整いました。 + +### 通常起動 +`docker-compose up -d`するだけです。GLHF! + +### Misskeyを最新バージョンにアップデートする方法: +1. `git stash` +2. `git checkout master` +3. `git pull` +4. `git stash pop` +5. `docker-compose build` +6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する +7. `docker-compose stop && docker-compose up -d` + +### cliコマンドを実行する方法: + +`docker-compose run --rm web node built/tools/mark-admin @example` + +---------------------------------------------------------------- + +なにかお困りのことがありましたらお気軽にご連絡ください。 diff --git a/docs/docker.zh.md b/docs/docker.zh.md new file mode 100644 index 000000000..a9d050e95 --- /dev/null +++ b/docs/docker.zh.md @@ -0,0 +1,96 @@ +Docker 部署指南 +================================================================ + +这份指南描述了如何使用Docker安装并设置 Misskey 。 + +- [日本語版もあります - Japanese version also available](./docker.ja.md) +- [英語版もあります - English version also available](./docker.en.md) + +---------------------------------------------------------------- + +*1.* 下载 Misskey +---------------------------------------------------------------- +1. 克隆 Misskey 项目的 master 分支。 + + `git clone -b master git://github.com/syuilo/misskey.git` + +2. 进入 misskey 文件夹。 + + `cd misskey` + +3. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。 + + `git checkout master` + +*2.* 配置 Misskey +---------------------------------------------------------------- + +可以按照如下方式创建配置文件: + +``` bash +cd .config +cp example.yml default.yml +cp docker_example.env docker.env +``` + +### `default.yml` + +这个文件的编辑工作基本与非 Docker 环境的版本相同。 +但请注意, Postgresql、 Redis 和 Elasticsearch 的 **主机名(hostname)** 配置不应该是 `localhost` ,它们被设置在 `docker-compose.yml` 文件中。 +以下是默认的主机名: + +| 服务 | 主机名 | +|---------------|----------| +| Postgresql | `db` | +| Redis | `redis` | +| Elasticsearch | `es` | + +### `docker.env` + +在这个文件中配置 Postgresql 。 +至少需要如下这些配置: + +| 名称 | 描述 | +|---------------------|---------------| +| `POSTGRES_PASSWORD` | 数据库密码 | +| `POSTGRES_USER` | 数据库用户名 | +| `POSTGRES_DB` | 数据库名 | + +*3.* 配置 Docker +---------------------------------------------------------------- +编辑 `docker-compose.yml` 文件。 + +*4.* 构建 Misskey +---------------------------------------------------------------- +使用如下的方式构建Misskey: + +`docker-compose build` + +*5.* 初始化数据库 +---------------------------------------------------------------- +``` bash +docker-compose run --rm web yarn run init +``` + +*6.* 完成了! +---------------------------------------------------------------- +干得不错!现在您拥有了一个可以运行Misskey的环境啦。 + +### 正常启动 +只需要 `docker-compose up -d` 即可。玩得愉快! + +### 如何将您的 Misskey 服务器升级至最新版本 +1. `git stash` +2. `git checkout master` +3. `git pull` +4. `git stash pop` +5. `docker-compose build` +6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。 +7. `docker-compose stop && docker-compose up -d` + +### 如何执行 [控制台指令](manage.zh.md): +`docker-compose run --rm web node built/tools/mark-admin @example` + +---------------------------------------------------------------- + +如果您有任何疑问或是困惑,欢迎与我们联系! diff --git a/docs/examples/misskey.nginx b/docs/examples/misskey.nginx new file mode 100644 index 000000000..6ed51f020 --- /dev/null +++ b/docs/examples/misskey.nginx @@ -0,0 +1,69 @@ +# Sample nginx configuration for Misskey +# +# 1. Replace example.tld to your domain +# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/ +# or copy to /etc/nginx/conf.d/ + +# For WebSocket +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; + +server { + listen 80; + listen [::]:80; + server_name example.tld; + + # For SSL domain validation + root /var/www/html; + location /.well-known/acme-challenge/ { allow all; } + location /.well-known/pki-validation/ { allow all; } + location / { return 301 https://$server_name$request_uri; } +} + +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name example.tld; + ssl_session_cache shared:ssl_session_cache:10m; + + # To use Let's Encrypt certificate + ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; + + # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) + #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; + #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; + + # SSL protocol settings + ssl_protocols TLSv1.2; + ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA; + ssl_prefer_server_ciphers on; + + # Change to your upload limit + client_max_body_size 80m; + + # Proxy to Node + location / { + proxy_pass http://127.0.0.1:3000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_http_version 1.1; + proxy_redirect off; + + # For WebSocket + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + # Cache settings + proxy_cache cache1; + proxy_cache_lock on; + proxy_cache_use_stale updating; + add_header X-Cache $upstream_cache_status; + } +} diff --git a/docs/manage.en.md b/docs/manage.en.md new file mode 100644 index 000000000..d310e9531 --- /dev/null +++ b/docs/manage.en.md @@ -0,0 +1,14 @@ +# Management guide + +## Check the status of the job queue +coming soon + +## Mark as 'admin' user +``` shell +node built/tools/mark-admin (Username) +``` + +e.g. +``` shell +node built/tools/mark-admin @syuilo +``` diff --git a/docs/manage.fr.md b/docs/manage.fr.md new file mode 100644 index 000000000..0b2b7ffc1 --- /dev/null +++ b/docs/manage.fr.md @@ -0,0 +1,14 @@ +# Guide d'administration + +## Vérifier le status de la file d'attente des taches +coming soon + +## Marquer un utilisateur en tant que 'admin' +``` shell +node built/tools/mark-admin (nom d'utilisateur) +``` + +Exemple : +``` shell +node built/tools/mark-admin @syuilo +``` diff --git a/docs/manage.ja.md b/docs/manage.ja.md new file mode 100644 index 000000000..55596add1 --- /dev/null +++ b/docs/manage.ja.md @@ -0,0 +1,14 @@ +# 運営ガイド + +## ジョブキューの状態を調べる +coming soon + +## 管理者ユーザーを設定する +``` shell +node built/tools/mark-admin (ユーザー名) +``` + +例: +``` shell +node built/tools/mark-admin @syuilo +``` diff --git a/docs/manage.zh.md b/docs/manage.zh.md new file mode 100644 index 000000000..520d15020 --- /dev/null +++ b/docs/manage.zh.md @@ -0,0 +1,14 @@ +# 运营指南 + +## 检查任务队列的状态 +即将到来…… + +## 设置用户为管理员 +``` shell +node built/tools/mark-admin (用户名) +``` + +样例 +``` shell +node built/tools/mark-admin @syuilo +``` diff --git a/docs/setup.en.md b/docs/setup.en.md new file mode 100644 index 000000000..a68e36994 --- /dev/null +++ b/docs/setup.en.md @@ -0,0 +1,146 @@ +Misskey Setup and Installation Guide +================================================================ + +We thank you for your interest in setting up your Misskey server! +This guide describes how to install and setup Misskey. + +- [Japanese version also available - 日本語版もあります](./setup.ja.md) +- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md) + +---------------------------------------------------------------- + +*1.* Create Misskey user +---------------------------------------------------------------- +Running misskey as root is not a good idea so we create a user for that. +In debian for exemple : + +``` +adduser --disabled-password --disabled-login misskey +``` + +*2.* Install dependencies +---------------------------------------------------------------- +Please install and setup these softwares: + +#### Dependencies :package: +* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x) +* **[PostgreSQL](https://www.postgresql.org/)** (>= 10) +* **[Redis](https://redis.io/)** + +##### Optional +* [Yarn](https://yarnpkg.com/) *Optional but recommended for security reason. If you won't install it, use `npx yarn` instead of `yarn`.* +* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature +* [FFmpeg](https://www.ffmpeg.org/) + +*3.* Install Misskey +---------------------------------------------------------------- +1. Connect to misskey user. + + `su - misskey` + +2. Clone the misskey repo from master branch. + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. Navigate to misskey directory + + `cd misskey` + +4. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) + + `git checkout master` + +5. Install misskey dependencies. + + `yarn` + +*4.* Configure Misskey +---------------------------------------------------------------- +1. Copy the `.config/example.yml` and rename it to `default.yml`. + + `cp .config/example.yml .config/default.yml` + +2. Edit `default.yml` + +*5.* Build Misskey +---------------------------------------------------------------- + +Build misskey with the following: + +`NODE_ENV=production yarn build` + +If you're on Debian, you will need to install the `build-essential`, `python` package. + +If you're still encountering errors about some modules, use node-gyp: + +1. `npx node-gyp configure` +2. `npx node-gyp build` +3. `NODE_ENV=production yarn build` + +*6.* Init DB +---------------------------------------------------------------- +``` shell +yarn run init +``` + +*7.* That is it. +---------------------------------------------------------------- +Well done! Now, you have an environment that run to Misskey. + +### Launch normally +Just `NODE_ENV=production npm start`. GLHF! + +### Launch with systemd + +1. Create a systemd service here + + `/etc/systemd/system/misskey.service` + +2. Edit it, and paste this and save: + + ``` + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + ``` + +3. Reload systemd and enable the misskey service. + + `systemctl daemon-reload ; systemctl enable misskey` + +4. Start the misskey service. + + `systemctl start misskey` + +You can check if the service is running with `systemctl status misskey`. + +### How to update your Misskey server to the latest version +1. `git checkout master` +2. `git pull` +3. `yarn install` +4. `NODE_ENV=production yarn build` +5. `yarn migrate` +6. Restart your Misskey process to apply changes +7. Enjoy + +If you encounter any problems with updating, please try the following: +1. `yarn clean` or `yarn cleanall` +2. Retry update (Don't forget `yarn install` + +---------------------------------------------------------------- + +If you have any questions or troubles, feel free to contact us! diff --git a/docs/setup.fr.md b/docs/setup.fr.md new file mode 100644 index 000000000..b16447c4f --- /dev/null +++ b/docs/setup.fr.md @@ -0,0 +1,135 @@ +Guide d'installation et de configuration de Misskey +================================================================ + +Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey ! +Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey. + +- [La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md) +- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md) +- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md) + +---------------------------------------------------------------- + +*1.* Création de l'utilisateur Misskey +---------------------------------------------------------------- +Executer misskey en tant que super-utilisateur étant une mauvaise idée, nous allons créer un utilisateur dédié. +Sous Debian, par exemple : + +``` +adduser --disabled-password --disabled-login misskey +``` + +*2.* Installation des dépendances +---------------------------------------------------------------- +Installez les paquets suivants : + +#### Dépendences :package: +* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x) +* **[PostgreSQL](https://www.postgresql.org/)** (>= 10) +* **[Redis](https://redis.io/)** + +##### Optionnels +* [Yarn](https://yarnpkg.com/) - *recommander pour des raisons de sécurité. Si vous ne l'installez pas, utilisez `npx yarn` au lieu de` yarn`.* +* [Elasticsearch](https://www.elastic.co/) - *requis pour pouvoir activer la fonctionnalité de recherche.* +* [FFmpeg](https://www.ffmpeg.org/) + +*3.* Installation de Misskey +---------------------------------------------------------------- +1. Basculez vers l'utilisateur misskey. + + `su - misskey` + +2. Clonez la branche master du dépôt misskey. + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. Accédez au dossier misskey. + + `cd misskey` + +4. Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) + + `git checkout master` + +5. Installez les dépendances de misskey. + + `yarn install` + +*4.* Création du fichier de configuration +---------------------------------------------------------------- +1. Copiez le fichier `.config/example.yml` et renommez-le`default.yml`. + + `cp .config/example.yml .config/default.yml` + +2. Editez le fichier `default.yml` + +*5.* Construction de Misskey +---------------------------------------------------------------- + +Construisez Misskey comme ceci : + +`NODE_ENV=production yarn build` + +Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential` et `python`. + +Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp: + +1. `npx node-gyp configure` +2. `npx node-gyp build` +3. `NODE_ENV=production yarn build` + +*6.* C'est tout. +---------------------------------------------------------------- +Excellent ! Maintenant, vous avez un environnement prêt pour lancer Misskey + +### Lancement conventionnel +Lancez tout simplement `NODE_ENV=production yarn start`. Bonne chance et amusez-vous bien ! + +### Démarrage avec systemd + +1. Créez un service systemd sur + + `/etc/systemd/system/misskey.service` + +2. Editez-le puis copiez et coller ceci dans le fichier : + + ``` + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + ``` + +3. Redémarre systemd et active le service misskey. + + `systemctl daemon-reload ; systemctl enable misskey` + +4. Démarre le service misskey. + + `systemctl start misskey` + +Vous pouvez vérifier si le service a démarré en utilisant la commande `systemctl status misskey`. + +### Méthode de mise à jour vers la plus récente version de Misskey +1. `git checkout master` +2. `git pull` +3. `yarn install` +4. `NODE_ENV=production yarn build` +5. `yarn migrate` + +---------------------------------------------------------------- + +Si vous rencontrez des difficultés ou avez d'autres questions, n'hésitez pas à nous contacter ! diff --git a/docs/setup.ja.md b/docs/setup.ja.md new file mode 100644 index 000000000..7f4ab6999 --- /dev/null +++ b/docs/setup.ja.md @@ -0,0 +1,144 @@ +Misskey構築の手引き +================================================================ + +Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます! +このガイドではMisskeyのインストール・セットアップ方法について解説します。 + +- [英語版もあります - English version also available](./setup.en.md) +- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md) + +---------------------------------------------------------------- + +*1.* Misskeyユーザーの作成 +---------------------------------------------------------------- +Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 +Debianの例: + +``` +adduser --disabled-password --disabled-login misskey +``` + +*2.* 依存関係をインストールする +---------------------------------------------------------------- +これらのソフトウェアをインストール・設定してください: + +#### 依存関係 :package: +* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x) +* **[PostgreSQL](https://www.postgresql.org/)** (10以上) +* **[Redis](https://redis.io/)** + +##### オプション +* [Yarn](https://yarnpkg.com/) + * セキュリティの観点から推奨されます。 yarn をインストールしない方針の場合は、文章中の `yarn` を適宜 `npx yarn` と読み替えてください。 +* [Elasticsearch](https://www.elastic.co/) + * 検索機能を有効にするためにはインストールが必要です。 +* [FFmpeg](https://www.ffmpeg.org/) + +*3.* Misskeyのインストール +---------------------------------------------------------------- +1. misskeyユーザーを使用 + + `su - misskey` + +2. masterブランチからMisskeyレポジトリをクローン + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. misskeyディレクトリに移動 + + `cd misskey` + +4. [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 + + `git checkout master` + +5. Misskeyの依存パッケージをインストール + + `yarn install` + +*4.* 設定ファイルを作成する +---------------------------------------------------------------- +1. `.config/example.yml`をコピーし名前を`default.yml`にする。 + + `cp .config/example.yml .config/default.yml` + +2. `default.yml` を編集する。 + +*5.* Misskeyのビルド +---------------------------------------------------------------- + +次のコマンドでMisskeyをビルドしてください: + +`NODE_ENV=production yarn build` + +Debianをお使いであれば、`build-essential`パッケージをインストールする必要があります。 + +何らかのモジュールでエラーが発生する場合はnode-gypを使ってください: +1. `npx node-gyp configure` +2. `npx node-gyp build` +3. `NODE_ENV=production yarn build` + +*6.* データベースを初期化 +---------------------------------------------------------------- +``` shell +yarn run init +``` + +*7.* 以上です! +---------------------------------------------------------------- +お疲れ様でした。これでMisskeyを動かす準備は整いました。 + +### 通常起動 +`NODE_ENV=production yarn start`するだけです。GLHF! + +### systemdを用いた起動 +1. systemdサービスのファイルを作成 + + `/etc/systemd/system/misskey.service` + +2. エディタで開き、以下のコードを貼り付けて保存: + + ``` + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + ``` + + CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 + +3. systemdを再読み込みしmisskeyサービスを有効化 + + `systemctl daemon-reload; systemctl enable misskey` + +4. misskeyサービスの起動 + + `systemctl start misskey` + +`systemctl status misskey`と入力すると、サービスの状態を調べることができます。 + +### Misskeyを最新バージョンにアップデートする方法: +1. `git checkout master` +2. `git pull` +3. `yarn install` +4. `NODE_ENV=production yarn build` +5. `yarn migrate` + +なにか問題が発生した場合は、`yarn clean`または`yarn cleanall`すると直る場合があります。 + +---------------------------------------------------------------- + +なにかお困りのことがありましたらお気軽にご連絡ください。 diff --git a/docs/setup.zh.md b/docs/setup.zh.md new file mode 100644 index 000000000..196e8a541 --- /dev/null +++ b/docs/setup.zh.md @@ -0,0 +1,146 @@ +Misskey 设置和安装指南 +================================================================ + +非常感谢您对构建 Misskey 服务器的关注! +这份指南描述了 Misskey 的安装与设置流程。 + +- [日本語版もあります - Japanese version also available](./setup.ja.md) +- [英語版もあります - English version also available](./setup.en.md) + +---------------------------------------------------------------- + +*1.* 创建 Misskey 用户 +---------------------------------------------------------------- +直接使用 root 用户来运行 misskey 也许并不是一个好主意,因此我们有必要创建一个专用的用户。 +以 Debian 为例: + +``` bash +adduser --disabled-password --disabled-login misskey +``` + +*2.* 安装依赖 +---------------------------------------------------------------- +请安装并设置如下这些软件: + +#### Dependencies :package: +* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x) +* **[PostgreSQL](https://www.postgresql.org/)** (>= 10) +* **[Redis](https://redis.io/)** + +##### Optional +* [Yarn](https://yarnpkg.com/) *可选,但出于安全因素考虑还是推荐安装。如果您没有安装, 您需要使用 `npx yarn` 来代替 `yarn`.* +* [Elasticsearch](https://www.elastic.co/) - 为了启用搜索功能,这个搜索引擎是有必要的。 +* [FFmpeg](https://www.ffmpeg.org/) + +*3.* 安装 Misskey +---------------------------------------------------------------- +1. 连接至 misskey 用户. + + `su - misskey` + +2. 克隆 Misskey 项目的 master 分支。 + + `git clone -b master git://github.com/syuilo/misskey.git` + +3. 进入 misskey 文件夹。 + + `cd misskey` + +4. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。 + + `git checkout master` + +5. 安装 Misskey 的依赖。 + + `yarn` + +*4.* 配置 Misskey +---------------------------------------------------------------- +1. 复制 `.config/example.yml` 并重命名为 `default.yml`。 + + `cp .config/example.yml .config/default.yml` + +2. 编辑 `default.yml` + +*5.* 构建 Misskey +---------------------------------------------------------------- + +使用如下的指令构建 Misskey : + +`NODE_ENV=production yarn build` + +如果您使用的是 Debian , 您需要安装 `build-essential`, `python` 环境包。 + +如果您仍然遇到有关某些模块的错误,您可以使用 node-gyp: + +1. `npx node-gyp configure` +2. `npx node-gyp build` +3. `NODE_ENV=production yarn build` + +*6.* 初始化数据库 +---------------------------------------------------------------- +``` bash +yarn run init +``` + +*7.* 完成了! +---------------------------------------------------------------- +干得不错!现在您拥有了一个可以运行Misskey的环境啦。 + +### 正常启动 +只需要 `NODE_ENV=production npm start` 即可。玩得愉快! + +### 使用 systemd 来启动 + +1. 在此处创建一个 systemd 服务: + + `/etc/systemd/system/misskey.service` + +2. 编辑它,粘贴如下内容并保存: + + ``` + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + ``` + +3. 重启 systemd 并设置 misskey 服务自动启动: + + `systemctl daemon-reload ; systemctl enable misskey` + +4. 启动 misskey 服务: + + `systemctl start misskey` + +您可以使用 `systemctl status misskey` 来检查服务是否正在运行。 + +### 如何将您的 Misskey 服务器升级至最新版本 +1. `git checkout master` +2. `git pull` +3. `yarn install` +4. `NODE_ENV=production yarn build` +5. `yarn migrate` +6. 重启您的 Misskey 进程来应用改变。 +7. 尽情享受吧! + +如果您在更新时遇到任何问题,请尝试以下操作: +1. `yarn clean` 或是 `yarn cleanall` +2. 重试升级 (请不要忘记 `yarn install` ) + +---------------------------------------------------------------- + +如果您有任何疑问或是困惑,欢迎与我们联系! diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 90f8ebaab..000000000 --- a/gulpfile.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Gulp tasks - */ - -const fs = require('fs'); -const gulp = require('gulp'); -const replace = require('gulp-replace'); -const terser = require('gulp-terser'); -const cssnano = require('gulp-cssnano'); - -const locales = require('./locales'); -const meta = require('./package.json'); - -gulp.task('copy:backend:views', () => - gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views')) -); - -gulp.task('copy:client:fonts', () => - gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/')) -); - -gulp.task('copy:client:fontawesome', () => - gulp.src('./packages/client/node_modules/@fortawesome/fontawesome-free/**/*').pipe(gulp.dest('./built/_client_dist_/fontawesome/')) -); - -gulp.task('copy:client:locales', cb => { - fs.mkdirSync('./built/_client_dist_/locales', { recursive: true }); - - const v = { '_version_': meta.version }; - - for (const [lang, locale] of Object.entries(locales)) { - fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8'); - } - - cb(); -}); - -gulp.task('build:backend:script', () => { - return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js']) - .pipe(replace('LANGS', JSON.stringify(Object.keys(locales)))) - .pipe(terser({ - toplevel: true - })) - .pipe(gulp.dest('./packages/backend/built/server/web/')); -}); - -gulp.task('build:backend:style', () => { - return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css']) - .pipe(cssnano({ - zindex: false - })) - .pipe(gulp.dest('./packages/backend/built/server/web/')); -}); - -gulp.task('build', gulp.parallel( - 'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:fontawesome' -)); - -gulp.task('default', gulp.task('build')); - -gulp.task('watch', () => { - gulp.watch([ - './packages/*/src/**/*', - ], { ignoreInitial: false }, gulp.task('build')); -}); diff --git a/gulpfile.ts b/gulpfile.ts new file mode 100644 index 000000000..a64947441 --- /dev/null +++ b/gulpfile.ts @@ -0,0 +1,90 @@ +/** + * Gulp tasks + */ + +import * as fs from 'fs'; +import * as gulp from 'gulp'; +import * as ts from 'gulp-typescript'; +import * as rimraf from 'rimraf'; +import * as rename from 'gulp-rename'; + +const locales: { [x: string]: any } = require('./locales'); +const meta = require('./package.json'); + +gulp.task('build:ts', () => { + const tsProject = ts.createProject('./tsconfig.json'); + + return tsProject + .src() + .pipe(tsProject()) + .on('error', () => {}) + .pipe(gulp.dest('./built/')); +}); + +gulp.task('build:copy:views', () => + gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views')) +); + +gulp.task('build:copy:locales', cb => { + fs.mkdirSync('./built/client/assets/locales', { recursive: true }); + + const v = { '_version_': meta.version }; + + for (const [lang, locale] of Object.entries(locales)) { + fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8'); + } + + cb(); +}); + +gulp.task('build:copy:fonts', () => + gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/')) +); + +gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', 'build:copy:fonts', () => + gulp.src([ + './src/emojilist.json', + './src/server/web/views/**/*', + './src/**/assets/**/*', + '!./src/client/assets/**/*' + ]).pipe(gulp.dest('./built/')) +)); + +gulp.task('clean', cb => + rimraf('./built', cb) +); + +gulp.task('cleanall', gulp.parallel('clean', cb => + rimraf('./node_modules', cb) +)); + +gulp.task('copy:client', () => + gulp.src([ + './assets/**/*', + './src/client/assets/**/*', + ]) + .pipe(rename(path => { + path.dirname = path.dirname!.replace('assets', '.'); + })) + .pipe(gulp.dest('./built/client/assets/')) +); + +gulp.task('copy:docs', () => + gulp.src([ + './src/docs/**/*', + ]) + .pipe(gulp.dest('./built/client/assets/docs/')) +); + +gulp.task('build:client', gulp.parallel( + 'copy:client', + 'copy:docs' +)); + +gulp.task('build', gulp.parallel( + 'build:ts', + 'build:copy', + 'build:client', +)); + +gulp.task('default', gulp.task('build')); diff --git a/index.js b/index.js new file mode 100644 index 000000000..9b91b0a03 --- /dev/null +++ b/index.js @@ -0,0 +1,7 @@ +const fs = require('fs'); + +if (fs.existsSync('./built')) { + require('./built').default(); +} else { + console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.'); +} diff --git a/packages/backend/jsconfig.json b/jsconfig.json similarity index 100% rename from packages/backend/jsconfig.json rename to jsconfig.json diff --git a/locales/README.md b/locales/README.md index a31df4f4c..775a39a3c 100644 --- a/locales/README.md +++ b/locales/README.md @@ -1,6 +1,6 @@ # **DO NOT edit locale files** except `ja-JP.yml`. -When you add text to the ja-JP file (of misskey-dev/misskey), it will automatically be applied to other language files. +When you add text to the ja-JP file (of syuilo/misskey), it will automatically be applied to other language files. Translations added in ja-JP file should contain the original Japanese strings. Please see [Contribution guide](../CONTRIBUTING.md) for more information. diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 7fa8c23ad..69fe7b414 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -1,20 +1,17 @@ --- _lang_: "العربية" -headlineMisskey: "شبكة مرتبطة بالملاحظات" introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀" monthAndDay: "{day}/{month}" search: "البحث" notifications: "الإشعارات" username: "اسم المستخدم" password: "الكلمة السرية" -forgotPassword: "نسيتَ كلمة السر" fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…" ok: " حسناً" gotIt: "فهِمت" cancel: " إلغاء" enterUsername: "أدخِل إسم مسخدم" -renotedBy: "أعاد نشرها {user}" -noNotes: "لم يُعثر على أية ملاحظات" +noNotes: "لم يتم العثور على أية ملاحظات" noNotifications: "ليس هناك أية اشعارات" instance: "مثيل الخادم" settings: "الاعدادات" @@ -28,18 +25,15 @@ login: "لِج" loggingIn: "جارٍ تسجيل الدخول" logout: "الخروج" signup: "أنشئ حسابًا" -uploading: "يرفع..." +uploading: "عملية الإرسال جارية" save: "حفظ" users: "المستخدمون" addUser: "اضافة مستخدم" -favorite: "أضفها للمفضلة" +favorite: "إضافة إلى المفضلة" favorites: "المفضلات" unfavorite: "إزالة من المفضلة" -favorited: "أُضيف إلى المفضلة." -alreadyFavorited: "تمت إضافته بالفعل إلى المفضلة." -cantFavorite: "تعذرت الإضافة إلى المفضلة." pin: "دبّسها على الصفحة الشخصية" -unpin: "ألغ تدبيسها من ملفك الشخصي" +unpin: "ألغ تثبيتها من ملفك الشخصي" copyContent: "انسخ المحتوى" copyLink: "انسخ الرابط" delete: "حذف" @@ -51,8 +45,6 @@ copyUsername: "انسخ اسم المستخدم" searchUser: "ابحث عن مستخدمين" reply: "رد" loadMore: "عرض المزيد" -showMore: "عرض المزيد" -showLess: "اغلق" youGotNewFollower: "يتابعك" receiveFollowRequest: "تلقيت طلب متابعة" followRequestAccepted: "قُبل طلب المتابعة" @@ -66,14 +58,12 @@ files: "الملفات" download: "تنزيل" driveFileDeleteConfirm: "أمتأكد من حذف ملف {name}؟ كل الملاحظات المُرفق بها هذا الملف ستحذف." unfollowConfirm: "أمتأكد من إلغاء متابعة {name}؟" -exportRequested: "قد تستغرق عملية التصدير بعض الوقت. بمجرد الانتهاء سيضاف الملف الناتج إلى قرص التخزين." -importRequested: "يستغرق الاستيراد بعض الوقت" lists: "القوائم" noLists: "ليس لديك أية قائمة" note: "ملاحظة" notes: "الملاحظات" following: "المتابَعون" -followers: "المتابِعون" +followers: "المتابِعين" followsYou: "يتابعك" createList: "إنشاء قائمة" manageLists: "إدارة القوائم" @@ -81,12 +71,9 @@ error: "خطأ" somethingHappened: "حدث خطأ" retry: "حاول مجددًا" pageLoadError: "فشل تحميل الصفحة" -pageLoadErrorDescription: "عادة ما يكون السبب خطأ في الشبكة أو التخزين المؤقت للمتصفح. امسح التخزين المؤقت ثم أعد المحاولة لاحقًا." -serverIsDead: "الخادم لا يستجيب، حاول بعد قليل" -youShouldUpgradeClient: "حدّث الصفحة لعرضها." enterListName: "اسم القائمة" privacy: "الخصوصية" -makeFollowManuallyApprove: "قبول طلبات الإشتراك يدويا" +makeFollowManuallyApprove: "القبول يدويا طلبات الإشتراك" defaultNoteVisibility: "مدى الرؤية الافتراضي" follow: "تابِع" followRequest: "طلب اشتراك" @@ -94,25 +81,16 @@ followRequests: "طلبات الإشتراك" unfollow: "إلغاء الاشتراك" followRequestPending: "طلبات الإشتراك المعلّقة" enterEmoji: "أدخل إيموجي" -renote: "أعد النشر" unrenote: "إلغاء مشاركة الملاحظة" -renoted: "أُعيد نشره" -cantRenote: "لا يمكن إعادة نشر الملاحظة" -cantReRenote: "لا يمكنك إعادة نشر ملاحظة معاد نشرها" quote: "اقتبس" pinnedNote: "ملاحظة مدبسة" -pinned: "دبّسها على الصفحة الشخصية" you: "أنت" clickToShow: "اضغط للعرض" sensitive: "محتوى حساس" add: "إضافة" -reaction: "التفاعلات" -reactionSetting: "التفاعلات المراد عرضها في منتقي التفاعلات." -reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة." +reaction: "تفاعل" rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات" attachCancel: "أزل المرفق" -markAsSensitive: "علّمه كمحتوى حساس" -unmarkAsSensitive: "ألغ تعيينه كمحتوى حساس" enterFileName: "ادخل اسم الملف" mute: "اكتم" unmute: "إلغاء الكتم" @@ -122,50 +100,31 @@ suspend: "علِق" unsuspend: "ألغ التعليق" blockConfirm: "أمتأكد من حجب هذا الحساب؟" unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟" -suspendConfirm: "أمتأكد من تعليق الحساب؟" -unsuspendConfirm: "أمتأكد من إلغاء تعليق؟" selectList: "اختر قائمة" -selectAntenna: "اختر هوائيًا" -selectWidget: "اختر ودجة" -editWidgets: "عدّل الودجات" editWidgetsExit: "تم" customEmojis: "إيموجي مخصص" -emoji: "إيموجي" -emojis: "إيموجي" -emojiName: "اسم الإيموجي" -emojiUrl: "رابط الإيموجي" addEmoji: "إضافة إيموجي" -settingGuide: "الإعدادات المستحسنة" cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة" -flagAsBot: "علّمه كحساب آلي" -flagAsBotDescription: "فعّل هذا الخيار إذا كان هذا الحساب يُدار عبر برمجية. إذا فُعل فسيكون بمثابة علامة للمطورين الآخرين لتجنب سلاسل لا متناهية من التفاعل بين حسابات الآلية وضبط أنظمة ميسكي للتعامل مع هذا الحساب كآلي." -flagAsCat: "علّم هذا الحساب كحساب قط" -flagAsCatDescription: "فعّل هذا الخيار لوضع علامة على الحساب لتوضيح أنه حساب قط." -flagShowTimelineReplies: "أظهر التعليقات في الخيط الزمني" -flagShowTimelineRepliesDescription: "يظهر الردود في الخيط الزمني" autoAcceptFollowed: "اقبل طلبات المتابعة تلقائيا من الحسابات المتابَعة" -addAccount: "أضف حساباً" +addAcount: "إضافة حساب" loginFailed: "فشل الولوج" showOnRemote: "رؤيته على مثيل الخادم البُعدي" general: "الرئيسية" -wallpaper: "الخلفية" -setWallpaper: "عيّن خلفية" -removeWallpaper: "أزل الخلفية" +wallpaper: "خلفية الشاشة" +setWallpaper: "استخدم خلفية الشاشة" +removeWallpaper: "إزالة خلفية الشاشة" searchWith: "البحث: {q}" youHaveNoLists: "لا تمتلك أية قائمة" followConfirm: "أتريد متابعة {name}؟" proxyAccount: "حساب وكيل البروكسي" -proxyAccountDescription: "يتصرف حساب الوكيل كمتابع بعيد لمستخدمين تحت ظروف معينة. على سبيل المثال ، عندما يضيف مستخدم مستخدمًا بعيدًا إلى قائمة فإن ملاحظاته لن تُرسل إلى المثيل ما لم يُتابعه مستخدم محلي. وبالتالي فإن حساب الوكيل سوف يتابع هذا المستخدم لكي تُرسل ملاحظاته." host: "المضيف" selectUser: "حدّد مستخدمًا" recipient: "المرسَل إليه·ها" annotation: "التعليقات" federation: "الفديرالية" instances: "مثيل الخادم" -registeredAt: "مسجل منذ" latestRequestSentAt: "آخر طلب أرسِل في" latestRequestReceivedAt: "آخر طلب تُلقي في" -latestStatus: "الحالات الأخيرة" storageUsage: "مساحة التخزين المستخدمة" charts: "المنحنيات البيانية" perHour: "في الساعة" @@ -173,7 +132,7 @@ perDay: "في اليوم" stopActivityDelivery: "وقف إرسال النشاط" blockThisInstance: "احجب مثيل الخادم هذا" operations: "الإجراءات" -software: "البرمجية" +software: "البرنامج" version: "الإصدار" metadata: "البيانات الوصفية" withNFiles: "{n} ملف (ملفات)" @@ -185,14 +144,9 @@ disk: "قرص التخزين" instanceInfo: "معلومات مثيل الخادم" statistics: "الإحصائيات" clearQueue: "تفريغ قائمة الإنتظار" -clearQueueConfirmTitle: "أتريد مسح الطابور؟" -clearCachedFiles: "امسح التخزين المؤقت" -clearCachedFilesConfirm: "أتريد حذف التخزين المؤقت للملفات البعيدة؟" -blockedInstances: "المثلاء المحجوبون" -blockedInstancesDescription: "قائمة بالمثلاء التي تريد حظرها بحيث كل نطاق في سطر لوحده. بعد إدراجهم لن يتمكنوا من التفاعل مع هذا المثيل." -muteAndBlock: "المكتومون والمحجوبون" -mutedUsers: "الحسابات المكتومة" -blockedUsers: "الحسابات المحجوبة" +muteAndBlock: "تم كتمها / تم حجبها" +mutedUsers: "الحسابات التي تم كتمها" +blockedUsers: "الحسابات التي تم حظرها" noUsers: "ليس هناك مستخدمون" editProfile: "تعديل الملف التعريفي" noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟" @@ -202,62 +156,44 @@ done: "تمّ" processing: "المعالجة جارية" preview: "معاينة" default: "افتراضي" -noCustomEmojis: "ليس هناك إيموجي" -noJobs: "لا توجد مهام" +noCustomEmojis: "ليس هناك إيموجيات" federating: "الفديرالية جارية" blocked: "محجوب" suspended: "مُعلّق" all: "الكل" notResponding: "لا يستجيب" -instanceFollowing: "المثلاء المتابَعون" -instanceFollowers: "المثلاء المتابِعون" -instanceUsers: "مستخدمو المثيل" changePassword: "تغيير الكلمة السرية" security: "الأمان" -retypedNotMatch: "المدخلات لا تتطابق" -currentPassword: "كلمة المرور الحالية" -newPassword: "كلمة المرور الجديدة" -newPasswordRetype: "كرّر كلمة المرور الجديدة:" -attachFile: "أرفق ملفات" more: "المزيد!" featured: "المتداولة" usernameOrUserId: "اسم المستخدم أو معرّفه" noSuchUser: "لم يُعثَر على المستخدم" lookup: "البحث" announcements: "الإعلانات" -imageUrl: "رابط الصورة" +imageUrl: "عنوان URL للصورة" remove: "حذف" -removed: "حُذف بنجاح" +removed: "تم حذفه بنجاح" removeAreYouSure: "متأكد من أنك تريد حذف {x}؟" deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟" -resetAreYouSure: "هل تريد إعادة التعيين؟" -saved: "حُفظ" -messaging: "المحادثة" -upload: "ارفع" -keepOriginalUploading: "ابق الصورة الأصلية" -keepOriginalUploadingDescription: "يحفظ الصور المرفوعة على حالتها الأصلية، وان عطّل ستولد نسخة مخصصة من الصورة." +saved: "تم حفظه" +messaging: "الدردشة" +upload: "تحميل" fromDrive: "من المخزن" -fromUrl: "عبر رابط" -uploadFromUrl: "ارفع عبر رابط" -uploadFromUrlDescription: "رابط الملف المراد رفعه" -uploadFromUrlRequested: "الرفع مطلوب" -uploadFromUrlMayTakeTime: "سيستغرق بعض الوقت لاتمام الرفع " +fromUrl: "من عنوان URL" +uploadFromUrl: "التحميل عبر URL" explore: "استكشاف" +games: "ألعاب Misskey" messageRead: "مقروءة" -noMoreHistory: "لا يوجد المزيد من التاريخ" -startMessaging: "ابدأ محادثة" -nUsersRead: "قرأه {n}" -agreeTo: "اوافق على {0}" +startMessaging: "ابدأ الدردشة" tos: "شروط الخدمة" start: "البداية" home: "الرئيسي" -remoteUserCaution: "هذه المعلومات قد لا تكون مكتملة بما أن المستخدم من مثيل بعيد." activity: "النشاط" images: "الصور" birthday: "تاريخ الميلاد" yearsOld: "{age} سنة" -registeredDate: "انضم في" -location: "الموقع الجغرافي" +registeredDate: "انظم في" +location: "المكان" theme: "المظهر" themeForLightMode: "الحلة في الوضع الفاتح" themeForDarkMode: "الحلة في الوضع الداكن" @@ -265,7 +201,6 @@ light: "فاتح" dark: "داكن" lightThemes: "الحلة الفاتحة" darkThemes: "الحلة الداكنة" -syncDeviceDarkMode: "مطابقة الوضع المضلمومع اعدادات الجهاز" drive: "قرص التخرين" fileName: "اسم الملف" selectFile: "اختر ملفًا" @@ -282,20 +217,15 @@ emptyDrive: "قرص التخزين فارغ" emptyFolder: "هذا المجلد فارغ" unableToDelete: "لا يمكن حذفه" inputNewFileName: "ادخل الإسم الجديد للملف" -inputNewDescription: "أدخل تعليقًا توضيحيًا" inputNewFolderName: "ادخل الإسم الجديد للمجلد" -circularReferenceFolder: "المجلد المستهدف ينتمي للمجلد الذي تريد حذفه" -hasChildFilesOrFolders: "الان الملف غير فارغ. لا يمكن حذفه" -copyUrl: "انسخ الرابط" +copyUrl: "انسخ عنوان URL" rename: "إعادة التسمية" avatar: "الصورة الرمزية" banner: "الصورة الرأسية" nsfw: "محتوى حساس" -whenServerDisconnected: "عند فقدان الاتصال بالخادم" disconnectedFromServer: "قُطِع الإتصال بالخادم" reload: "انعش" doNothing: "تجاهل" -reloadConfirm: "هل ترغب في تحديث الجدول الزمني؟" watch: "راقب" unwatch: "إلغاء المراقبة" accept: "السماح" @@ -305,7 +235,7 @@ instanceName: "اسم مثيل الخادم" instanceDescription: "وصف مثيل الخادم" maintainerName: "المدير" maintainerEmail: "عنوان بريد المدير الإلكتروني" -tosUrl: "رابط صفحة شروط الخدمة" +tosUrl: "عنوان URL لشروط الخدمة" thisYear: "هذا العام" thisMonth: "هذا الشهر" today: "اليوم" @@ -313,102 +243,63 @@ dayX: "{day}" monthX: "{month}" yearX: "{year}" pages: "الصفحات" -integration: "التكامل" -connectService: "اتصل" -disconnectService: "اقطع الاتصال" +connectSerice: "أوصل" +disconnectSerice: "قطع الاتصال" enableLocalTimeline: "تفعيل الخيط المحلي" enableGlobalTimeline: "تفعيل الخيط الزمني الشامل" -disablingTimelinesInfo: "سيتمكن المديرون والمشرفون من الوصول إلى كل الخيوط الزمنية حتى وإن لم تفعّل." registration: "إنشاء حساب" enableRegistration: "تفعيل إنشاء الحسابات الجديدة" invite: "دعوة" -driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي" -driveCapacityPerRemoteAccount: "حصة التخزين لكل مستخدم بعيد" -inMb: "بالميغابايت" -iconUrl: "رابط الأيقونة" -bannerUrl: "رابط صورة اللافتة" -backgroundImageUrl: "رابط صورة الخلفية" basicInfo: "المعلومات الأساسية " -pinnedUsers: "المستخدمون المدبسون" -pinnedUsersDescription: "قائمة المستخدمين المدبسين في لسان \"استكشف\" ، اجعل كل اسم مستخدم في سطر لوحده." -pinnedPages: "الصفحات المدبسة" -pinnedPagesDescription: "أدخل مسار الصفحات التي تريد تدبيسها في أعلى هذا الموقع، اجعل كل مسار في سطر لوحده." -pinnedClipId: "معرّف المشبك المدبس" -pinnedNotes: "ملاحظة مدبسة" -hcaptcha: "hCaptcha" -enableHcaptcha: "فعّل hCaptcha" hcaptchaSiteKey: "مفتاح الموقع" hcaptchaSecretKey: "المفتاح السري" recaptcha: "reCAPTCHA" enableRecaptcha: "تمكين reCAPTCHA" recaptchaSiteKey: "مفتاح الموقع" recaptchaSecretKey: "المفتاح السري" -avoidMultiCaptchaConfirm: "يمكن أن يتسبب استخدام عدة خدمات لكلمات التحقق في حدوث تداخل. هل ترغب في إلغاء تنشيط الخدمات الأخرى؟ يمكنك ترك هذه الخدمات نشطة بالضغط على \"ألغ\"." antennas: "الهوائيات" manageAntennas: "إدارة الهوائيات" name: "الإسم" antennaSource: "مصدر الهوائي" antennaKeywords: "الكلمات المفتاحية للإستقبال" -antennaExcludeKeywords: "الكلمات المفتاحية المستثناة" -antennaKeywordsDescription: "افصل بينهم بمسافة لاستخدام معامل \"و\" أو بسطر لاستخدام معامل \"أو\"" -notifyAntenna: "نبهني بصول ملاحظات جديدة" -withFileAntenna: "ملاحظات تحوي ملفات فقط" -antennaUsersDescription: "اكتب اسم مستخدم لكل سطر" -caseSensitive: "حساسية حالة الأحرف" withReplies: "بالردود" -connectedTo: "الحسابات التالية متصلة" notesAndReplies: "الملاحظات والردود" -withFiles: "ذات مرفقات" +withFiles: "بالمرفقات" silence: "اكتم" -silenceConfirm: "أمتأكد من كتم هذا المستخدم؟" unsilence: "إلغاء الكتم" -unsilenceConfirm: "أمتأكد من إلغاء كتم هذا المستخدم؟" -popularUsers: "المستخدمون الرائدون" -recentlyUpdatedUsers: "أصحاب النشاطات الأخيرة" -recentlyRegisteredUsers: "المستخدمون المنضمون حديثًا" -recentlyDiscoveredUsers: "المستخدمون المكتشفون حديثًا" -exploreUsersCount: "يوجد {count} مستخدم(ا)" +popularUsers: "المستخدمون الشائعون" exploreFediverse: "استكشف الفديفرس" popularTags: "الوسوم الرائجة" userList: "القوائم" about: "عن" aboutMisskey: "عن Misskey" +patrons: "الداعمون" administrator: "المدير" token: "الرمز المميز" twoStepAuthentication: "الإستيثاق بعاملَيْن" moderator: "مشرِف" -nUsersMentioned: "{n} مستخدمين أُشير إليهم" +nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم" securityKey: "مفتاح الأمان" securityKeyName: "اسم المفتاح" -registerSecurityKey: "سجل مفتاح أمان" lastUsed: "آخر استخدام" unregister: "إلغاء التسجيل" passwordLessLogin: "لِج مِن دون كلمة سرية" resetPassword: "أعد تعيين كلمتك السرية" newPasswordIs: "كلمتك السرية الجديدة هي {password}" -reduceUiAnimation: "قلص تأثيرات الواجهة" share: "شارِك" notFound: "غير موجود" -notFoundDescription: "تعذر العثور على صفحة يقود إليها هذا الرابط." -uploadFolder: "المجلد الافتراضي للرفع" -cacheClear: "مسح ذاكرة التخزين المؤقت" -markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة" -markAsReadAllUnreadNotes: "علّم جميع الملاحظات كمقروءة" -markAsReadAllTalkMessages: "علّم جميع الرسائل كمقروءة" help: "المساعدة" inputMessageHere: "اكتب رسالتك هنا" close: "اغلق" group: "الفريق" groups: "الفِرَق" createGroup: "انشئ فريقًا" -ownedGroups: "فِرقي" -joinedGroups: "الفِرق المُنضم إليها" invites: "دعوة" groupName: "اسم الفريق" members: "الأعضاء" transfer: "نقل" -messagingWithUser: "تحدث مع مستخدم" -messagingWithGroup: "محادثة جماعية" +messagingWithUser: "الدردشة مع مستخدم آخر" +messagingWithGroup: "دردشة جماعية" title: "العنوان" text: "النص" enable: "تشغيل" @@ -416,18 +307,13 @@ next: "التالية" retype: "أعد الكتابة" noteOf: "ملاحظات {user}" inviteToGroup: "دعوة إلى فريق" -quoteAttached: "اِقتُبسَ" -quoteQuestion: "أتريد تضمينها كاقتباس" noMessagesYet: "ليس هناك رسائل بعد" newMessageExists: "لقد تلقيت رسالة جديدة" -onlyOneFileCanBeAttached: "يمكنك إرفاق ملف واحد بالرسالة" -signinRequired: "رجاءً لِج" invitations: "دعوة" invitationCode: "رمز الدعوة" checking: "التحقق جارٍ" available: "متوفر" unavailable: "غير متوفر" -usernameInvalidFormat: "يمكنك استخدام A-z، a-z، 0-9، _" tooShort: "قصير جدًا" tooLong: "طويل جدًا" weakPassword: "الكلمة السرية ضعيفة" @@ -436,28 +322,20 @@ strongPassword: "الكلمة السرية قوية" passwordMatched: "التطابق صحيح!" passwordNotMatched: "غير متطابقتان" signinWith: "الولوج عبر {x}" -signinFailed: "فشل الولوج، خطأ في اسم المستخدم أو كلمة المرور." -tapSecurityKey: "أنقر مفتاح الأمان" or: "أو" -language: "اللغة" uiLanguage: "لغة واجهة المستخدم" -groupInvited: "دُعيت إلى فريقٍ" aboutX: "عن {x}" -useOsNativeEmojis: "استخدم الإيموجي الخاصة بنظام التشغيل" +useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل" youHaveNoGroups: "لا تمتلك أية فِرَق" -joinOrCreateGroup: "احصل على دعوة لفريق أو أنشئ واحدًا." noHistory: "السجل فارغ" -signinHistory: "تاريخ تسجيل الدخول" doing: "انتظر لحظة" category: "الفئات" tags: "الوسوم" docSource: "مصدر هذا المستند" createAccount: "أنشئ حسابًا" -existingAccount: "الحسابات الموجودة" +existingAcount: "الحسابات الموجودة" regenerate: "أعِد التوليد" fontSize: "حجم الخط" -noFollowRequests: "ليس لديك طلبات متابعة معلقة" -openImageInNewTab: "إفتح الصورة بصفحة جديدة" dashboard: "لوحة التحكم" local: "المحلي" remote: "بُعدي" @@ -465,555 +343,75 @@ total: "المجموع" weekOverWeekChanges: "أسبوعيا" dayOverDayChanges: "يوميا" appearance: "المظهر" -clientSettings: "إعدادات العميل" accountSettings: "إعدادات الحساب" promotion: "ترقية" promote: "روِّج" numberOfDays: "عدد الأيام" hideThisNote: "إخفاء هذه الملاحظة" -showFeaturedNotesInTimeline: "أظهر الملاحظات الشائعة في الخيط الزمني" -objectStorageBaseUrl: "الرابط الأساسي" -objectStoragePrefix: "البادئة" -objectStoragePrefixDesc: "ستُحفظ الملفات في مجلدات تحوي اسماءها هذه البادئة." -objectStorageEndpoint: "نقطة النهاية" -objectStorageRegion: "المنطقة" -objectStorageUseSSL: "استخدم SSL" -objectStorageUseSSLDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر HTTPS" -objectStorageUseProxy: "اتصل عبر وكيل" -objectStorageUseProxyDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر وكيل" -serverLogs: "سجلات الخادم" deleteAll: "حذف الكل" -showFixedPostForm: "أظهر نموذج الكتابة في أعلى الصفحة" -newNoteRecived: "هناك ملاحظات جديدة" sounds: "الرنات" listen: "استمع" none: "لا شيء" -showInPage: "اعرض في الصفحة" -popout: "منبثقة" volume: "مستوى الصوت" -masterVolume: "حجم الصوت الرئيس" details: "التفاصيل" chooseEmoji: "اختر إيموجي" -unableToProcess: "يتعذر إكمال العملية" recentUsed: "المستخدمة مؤخرا" -install: "ثبّت" +install: "التثبيت" uninstall: "إلغاء التثبيت" installedApps: "التطبيقات المُخوّلة" -nothing: "لا يوجد شيء هنا" -installedDate: "تاريخ التثبيت" lastUsedDate: "آخر استخدام" state: "الحالة" sort: "ترتيب حسب" -ascendingOrder: "تصاعدي" -descendingOrder: "تنازلي" output: "الخارجة" -disablePagesScript: "عطّل AiScript في الصفحات" updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد" -deleteAllFiles: "حذف كافة الملفات" -deleteAllFilesConfirm: "أتريد حذف كل الملفات؟" -removeAllFollowing: "ألغ متابعة كل المتابَعين" -removeAllFollowingDescription: "تنفيذه سيلغي متابعة المستخدمين المتواجدين على {host}. يمكنك استخدامه إذا فُقد الخادم." -userSuspended: "عُلق هذا المستخدم." -userSilenced: "كُتم هذا المستخدم." -yourAccountSuspendedTitle: "هذا الحساب معلق" -yourAccountSuspendedDescription: "عُلق الحساب بسبب انتهاك شروط خدمة المثيل و ما شابه. إذا أردت معرفة التفصيل تواصل مع مدير المثيل. رجاءً لا تنشئ حساب جديد." -menu: "القائمة" -divider: "فاصل" +sidebar: "الشريط الجانبي" addItem: "إضافة عنصر" +rooms: "الغرفة" relays: "المُرَحلات" addRelay: "إضافة مُرحّل" -inboxUrl: "رابط صندوق الوارد" -addedRelays: "المرحلات المضافة" -serviceworkerInfo: "يجب أن يفعل لإرسال الإشعارات." +addedRelays: "المرحلات التي تم إضافتها" deletedNote: "ملاحظة محذوفة" invisibleNote: "ملاحظة مخفية" -enableInfiniteScroll: "فعّل التمرير المتواصل" -visibility: "الظهور" poll: "استطلاع رأي" -useCw: "إخفاء المحتوى" -enablePlayer: "افتح مشغل الفيديو" -disablePlayer: "أغلق مشغل الفيديو" -expandTweet: "وسّع التغريدة" themeEditor: "مصمم القوالب" -description: "الوصف" -describeFile: "أضف تعليقًا توضيحيًا" -enterFileDescription: "أدخل تعليقًا توضيحيًا" -author: "الكاتب" -leaveConfirm: "لديك تغييرات غير محفوظة. أتريد المتابعة دون حفظها؟" -manage: "إدارة " plugins: "الإضافات" -useFullReactionPicker: "استخدم الحجم الكامل لمنتقي التفاعلات" -width: "العرض" -height: "الإرتفاع" -large: "كبير" -medium: "متوسط" -small: "صغير" -generateAccessToken: "ولّد رمز الوصول" -permission: "أذونات" -enableAll: "تشغيل الكل" -disableAll: "تعطيل الكل" -tokenRequested: "منح حق الوصول إلى الحساب" -pluginTokenRequestedDescription: "ستتمكن الإضافة من استخدام هذه الأذونات." -notificationType: "أنواع الإشعارات" -edit: "التعديل" -useStarForReactionFallback: "استخدم ★ كبديل إذا كان التفاعل مجهولًا" -emailServer: "خادم البريد الإلكتروني" -emailConfigInfo: "يستخدم لتأكيد عنوان بريدك الإلكتروني ولإعادة تعيين كلمة المرور إن نسيتها." -email: "البريد الإلكتروني " -emailAddress: "عنوان البريد الالكتروني" -smtpConfig: "إعدادات خادم SMTP" +pluginInstallWarn: "يرجى تنصيب إضافات ذات مصدر موثوق منه فقط." smtpHost: "المضيف" -smtpPort: "المنفذ" smtpUser: "اسم المستخدم" smtpPass: "الكلمة السرية" -emptyToDisableSmtpAuth: "اترك اسم المستخدم وكلمة المرور فارغين لتعطيل التحقق من SMTP" -smtpSecureInfo: "عطل هذا الخيار عند استخدام STARTTLS" -wordMute: "حظر الكلمات" -regexpError: "خطأ في التعبير النمطي" -instanceMute: "المثلاء المكتومون" -userSaysSomething: "كتب {name} شيءً" -makeActive: "تفعيل" display: "المظهر" -copy: "نسخ" -metrics: "المقاييس" -overview: "ملخص عام" -logs: "السِجلّات" -delayed: "متأخر" -database: "قاعدة البيانات" -channel: "القنوات" -create: "أنشئ" -notificationSetting: "إعدادات التنبيهات" -notificationSettingDesc: "اختر نوع التنبيهات المراد عرضها" -useGlobalSetting: "استخدم الإعدادات العامة" -useGlobalSettingDesc: "اذا فعّل ستطبق إعدادات إشعارات حسابك. إذا عطّل يمكن إجراء تكوينات مخصصة." -other: "منوعات" -regenerateLoginToken: "أعد توليد الرمز" -regenerateLoginTokenDescription: "ينشئ رمز استيثاق جديد في العادة هذا ليس ضروريًا ؛ عند إنشاء رمز جديد ستُخرج جميع الأجهزة." -setMultipleBySeparatingWithSpace: "يمكنك ادخال أكثر من مدخل واحد وذلك بفصلها بمسافات." -fileIdOrUrl: "معرف الملف أو رابط" -behavior: "السلوك" -sample: "مثال" -abuseReports: "البلاغات" -reportAbuse: "أبلغ" -reportAbuseOf: "أبلغ عن {name}" -fillAbuseReportDescription: "أكتب بالتفصيل سبب البلاغ، إذا كنت تبلغ عن ملاحظة أرفق رابط لها." -abuseReported: "أُرسل البلاغ، شكرًا لك" -reporter: "المُبلّغ" -reporteeOrigin: "أصل البلاغ" -reporterOrigin: "أصل المُبلّغ" -forwardReport: "وجّه البلاغ إلى المثيل البعيد" -forwardReportIsAnonymous: "في المثيل البعيد سيظهر المبلّغ كحساب مجهول." -send: "أرسل" -abuseMarkAsResolved: "علّم البلاغ كمحلول" -openInNewTab: "افتح في لسان جديد" -defaultNavigationBehaviour: "سلوك الملاحة الافتراضي" -editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك" -instanceTicker: "معلومات المثيل الأصلي للملاحظات" -waitingFor: "في انتظار {x}" -random: "عشوائي" -system: "النظام" -switchUi: "بدّل واجهة المستخدم" -desktop: "سطح المكتب" -clip: "مِشبك" -createNew: "أنشِئ جديد" -optional: "اختياري" -createNewClip: "أنشئ مِشبكَا جديدًا" -public: "علني" -i18nInfo: "يترجم متطوعون ميسكي إلى عدة لغات، يمكنك المساعدة عبر {link}" -manageAccessTokens: "إدارة رموز الوصول" -accountInfo: "معلومات الحساب" -notesCount: "عدد الملاحظات" -repliesCount: "عدد الردود المرسلة" -renotesCount: "عدد الملاحظات المعاد نشرها (المرسلة)" -repliedCount: "عدد الردود المتلقاة" -renotedCount: "عدد الملاحظات المعاد نشرها (المتلقاة)" -followingCount: "عدد الحسابات المتابَعة" -followersCount: "عدد المتابِعين" -sentReactionsCount: "عدد الانفعالات المرسلة" -receivedReactionsCount: "عدد الانفعالات المتلقاة" -pollVotesCount: "عدد الاستطلاعات المرسلة" -pollVotedCount: "عدد الاستطلاعات المتلقاة" -yes: "نعم" -no: "لا" -driveFilesCount: "عدد الملفات في قرص التخزين" -driveUsage: "المستغل من قرص التخزين" -noCrawle: "ارفض فهرسة زاحف الويب" -noCrawleDescription: "يطلب من محركات البحث ألّا يُفهرسوا ملفك الشخصي وملاحظات وصفحاتك وما شابه." -alwaysMarkSensitive: "علّم افتراضيًا جميع ملاحظاتي كذات محتوى حساس" -loadRawImages: "حمّل الصور الأصلية بدلًا من المصغرات" -disableShowingAnimatedImages: "لا تشغّل الصور المتحركة" -verificationEmailSent: "أُرسل بريد التحقق. أنقر على الرابط المضمن لإكمال التحقق." -notSet: "لم يعيّن" -emailVerified: "تُحقّق من بريدك الإلكتروني" -noteFavoritesCount: "عدد الملاحظات المفضلة" -pageLikesCount: "عدد الصفحات التي أعجبت بها" -pageLikedCount: "عدد صفحاتك المُعجب بها" -contact: "التواصل" -useSystemFont: "استخدم الخط الافتراضية للنظام" -clips: "مشابك" -experimentalFeatures: "ميّزات اختبارية" -developer: "المطور" -makeExplorable: "أظهر الحساب في صفحة \"استكشاف\"" -makeExplorableDescription: "بتعطيل هذا الخيار لن يظهر حسابك في صفحة \"استكشاف\"" -showGapBetweenNotesInTimeline: "أظهر فجوات بين المشاركات في الخيط الزمني" -wide: "عريض" -narrow: "رفيع" -reloadToApplySetting: "سيُطبق هذا الإعداد بعد إعادة تحميل الصفحة، أتريد إعادة تحميلها الآن؟" -needReloadToApply: "سيطبق هذا بعد إعادة التحميل." -showTitlebar: "اعرض شريط العنوان" -clearCache: "امسح التخزين المؤقت" -onlineUsersCount: "{n} مستخدم متصل" -nUsers: "{n} مستخدم" -nNotes: "{n} ملاحظة" -sendErrorReports: "أرسل تقارير الأخطاء" -sendErrorReportsDescription: "إذا فعّلته ستساعد في تحسين ميسكي وذلك عبر مشاركة معلومات تفصيلية عن الخطأ.\nومما تحتويه التقارير: نسخة نظام التشغيل ونوع المتصفح وسجل نشاطك إلخ." -myTheme: "سماتي" -backgroundColor: "لون الخلفية" -accentColor: "طابع لوني" -textColor: "لون النص" -saveAs: "احفظ كـ..." -advanced: "متقدم" -value: "القيمة" -createdAt: "أُنشئ في" -updatedAt: "حُدّث في" -saveConfirm: "أتريد خفظ التغييرات؟" -deleteConfirm: "أمتأكد من الحذف؟" -invalidValue: "قيمة غير صالحة." -registry: "السجل" -closeAccount: "اختر حسبًا" -currentVersion: "الإصدار الحالي" -latestVersion: "آخر نسخة مستقرة" -youAreRunningUpToDateClient: "أنت تستخدم أحدث نسخة من العميل." -newVersionOfClientAvailable: "تتوفر نسخة أحدث للعميل" -usageAmount: "الإستخدام" -capacity: "السعة" -inUse: "مستخدم" -editCode: "حرر الشفرة" -apply: "تطبيق" -receiveAnnouncementFromInstance: "استلم إشعارات من هذا المثيل" -emailNotification: "إشعارات البريد الكتروني" -inChannelSearch: "ابحث عن قناة" -useReactionPickerForContextMenu: "افتح منتقي التفاعلات عند النقر بالزر الأيمن" -typingUsers: "{users} يكتب(ون)..." -jumpToSpecifiedDate: "انتقل إلى تاريخ محدد" -showingPastTimeline: "أنت تستعرض حاليًا خيطًا زمنيًا قديمًا" -clear: "عودة" -markAllAsRead: "علّم الكل كمقروء" -goBack: "رجوع" -unlikeConfirm: "أتريد إلغاء إعجابك؟" -fullView: "ملء الشاشة" -quitFullView: "اخرج من وضع ملء للشاشة" -addDescription: "أضف وصفًا" -userPagePinTip: "لعرض ملاحظة هنا اختر \"دبسها على الصفحة الشخصية\" من قائمة تلك الملاحظة." -notSpecifiedMentionWarning: "في الملاحظة ذكر لمستخدمين لن يستلموها." -info: "عن" -userInfo: "معلومات المستخدم" -unknown: "مجهول" -onlineStatus: "الحالة" -hideOnlineStatus: "اخف الحالة" -hideOnlineStatusDescription: "قد يؤدي جعل اخفاء حالتك إلى تعطيل أداء بعض الميزات ، مثل البحث." -online: "متصل" -active: "نشط" -offline: "غير متصل" -notRecommended: "غير مستحسن" -botProtection: "الحماية من الحسابات الآلية" -instanceBlocking: "المثيلات المحجوبة" -selectAccount: "اختر حسابًا" -switchAccount: "تغيير الحساب" -enabled: "مفعّل" -disabled: "معطّل" -quickAction: "الإجراءات السّريعة" -user: "المستخدمون" -administration: "إدارة " -accounts: "الحسابات" -switch: "بدّل" -noMaintainerInformationWarning: "لم تُضبط معلومات المدير" -noBotProtectionWarning: "لم تضبط الحماية من الحسابات الآلية" -configure: "اضبط" -postToGallery: "انشر في المعرض" -gallery: "المعرض" -recentPosts: "المشاركات الحديثة" -popularPosts: "المشاركات المتداولة" -shareWithNote: "شاركه في ملاحظة" -ads: "الإعلانات" -expiration: "ينتهي استطلاع الرأي في" -memo: "تذكير" -priority: "الأولوية" -high: "عالية" -middle: "متوسط" -low: "منخفضة" -emailNotConfiguredWarning: "لم تعيّن بريدًا إلكترونيًا" -ratio: "النسبة" -previewNoteText: "اعرض معاينة" -customCss: "CSS مخصصة" -customCssWarn: "استخدم هذه الإعداد فقط إن كان لك علم بماهيّته. إدخال قيمة غير مناسبة سيسسب ضررًا للعميل." -global: "الشامل" -squareAvatars: "اعرض شكل الصور الرمزية كمربعات" -sent: "أرسل" -received: "اُستلم" -searchResult: "نتائج البحث" -hashtags: "الوسوم" -troubleshooting: "استكشاف الأخطاء وإصلاحها" -useBlurEffect: "استخدم تأثير الطمس في الواجهة" -learnMore: "راجع المزيد" -misskeyUpdated: "حُدث ميسكي!" -whatIsNew: "اعرض التغييرات" -translate: "ترجم" -translatedFrom: "تُرجم من {x}" -accountDeletionInProgress: "حذف الحساب جارٍ" -usernameInfo: "الاسم الذي يميزك عن بافي مستخدمي هذا الخادم، يمكنك استخدام الحروف اللاتينية (a~z, A~Z) والأرقام (0~9) والشرطة السفلية (_). لا يمكنك تغييره بعد تسجيله." -keepCw: "أبقِ على تحذيرات المحتوى" -lastCommunication: "آخر تواصل" -resolved: "عولج" -unresolved: "لم يعالج" -breakFollow: "إلغاء الاشتراك" -itsOn: "مفعّل" -itsOff: "معطّل" -emailRequiredForSignup: "عنوان البريد الإلكتروني إلزامي للتسجيل" -unread: "غير مقروءة" -filter: "رشّح" -controlPanel: "لوحة التحكم" -manageAccounts: "إدارة الحسابات" -makeReactionsPublic: "اجعل سجل التفاعلات علنيًا" -makeReactionsPublicDescription: "هذا سيجعل قائمة تفاعلاتك مرئية للعلن." -classic: "تقليدي" -muteThread: "اكتم النقاش" -unmuteThread: "ارفع الكتم عن النقاش" -ffVisibility: "مرئية المتابِعين/المتابَعين" -ffVisibilityDescription: "يسمح لك بتحديد من يمكنهم رؤية متابِعيك ومتابَعيك." -deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟" -incorrectPassword: "كلمة السر خاطئة." -voteConfirm: "متيقِّن من تصويتك لـ {choice}؟" -hide: "إخفاء" -leaveGroup: "مغادرة الفريق" -leaveGroupConfirm: "متيقن من مغادرة \"{name}\"؟" -welcomeBackWithName: "مرحبًا بك مجددًا {name}" -clickToFinishEmailVerification: "انقر [{ok}] لاستيثاق بريدك الإلكتروني." -overridedDeviceKind: "نوع الجهاز" -smartphone: "هاتف ذكي" -tablet: "جهاز لوحي" -auto: "تلقائي" -themeColor: "لون السمة" -size: "الحجم" -numberOfColumn: "عدد الأعمدة" -searchByGoogle: "غوغل" -mutePeriod: "مدة الكتم" -indefinitely: "أبدًا" -tenMinutes: "10 دقائق" -oneHour: "ساعة" -oneDay: "يوم" -oneWeek: "أسبوع" -failedToFetchAccountInformation: "تعذر جلب معلومات الحساب" -file: "الملفات" -reverse: "اقلب" -colored: "ملوّن" -label: "التسمية" -localOnly: "المحلي فقط" -account: "الحسابات" -_emailUnavailable: - used: "هذا البريد الإلكتروني مستخدم" - format: "صيغة البريد الإلكتروني غير صالحة" - mx: "خادم البريد الإلكتروني غير صالح" - smtp: "خادم البريد الإلكتروتي لا يستجيب" -_ffVisibility: - public: "علني" - followers: "مرئية لمتابِعيك فقط" - private: "خاص" -_signup: - almostThere: "كدت تنتهي" - emailAddressInfo: "رجاءً أدخل بريدك الإلكتروني." - emailSent: "أرسلت رسالة تأكيد إلى بريدك الإلكتروني ({email})، أنقر على الرابط الموجود فيها لإكمال التسجيل." -_accountDelete: - accountDelete: "احذف الحساب" - mayTakeTime: "نظرًا لأن حذف الحساب يحتاج موارد كثيرة فقد يستغرق وقتًا طويلاً ليكتمل وذلك بناءً على كمية المحتوى الموجود في الحساب وعدد الملفات المرفوعة." - sendEmail: "عند إنتهاء الحذف سترسل رسالة إلى البريد الإلكتروني المرتبط بهذا الحساب." - requestAccountDelete: "أرسل طلبًا لحذف الحساب" - started: "بدأت عملية الحذف." - inProgress: "عملية الحذف جارية" -_ad: - back: "رجوع" - reduceFrequencyOfThisAd: "قلل عرض هذا الإعلان" -_forgotPassword: - enterEmail: "أدخل البريد الإلكتروني المرتبط بحسابك لكي يرسل إليك رابط لإعادة تعيين كلمة المرور." - ifNoEmail: "إذا لم تربط حسابك ببريد إلكتروني سيتوجب عليك التواصل مع مدير الموقع." - contactAdmin: "هذا المثيل لا يدعم استخدام البريد الإلكتروني، إن أردت إعادة تعيين كلمة المرور تواصل مع المدير." -_gallery: - my: "معرضي" - liked: "المشاركات المُعجب بها" - like: "أعجبني" - unlike: "أزل الإعجاب" -_email: - _follow: - title: "يتابعك" - _receiveFollowRequest: - title: "استلمت طلب متابعة" -_plugin: - install: "ثبّت إضافات" - installWarn: "رجاءً لا تثبت إضافات غير موثوقة." - manage: "إدارة الإضافات" -_registry: - scope: "الحيّز" - key: "مفتاح" - keys: "المفاتيح" - domain: "النّطاق" - createKey: "أنشئ مفتاحًا" -_aboutMisskey: - about: "ميسكي هو برمجية مفتوحة المصدر يطورها syuilo منذ 2014." - contributors: "المساهمون الرئيسيون" - allContributors: "كل المساهمين" - source: "الشفرة المصدرية" - translation: "ترجم ميسكي" - donate: "تبرع لميسكي" - morePatrons: "نحن نقدر الدعم الذي قدمه العديد من الأشخاص الذين لم نذكرهم. شكرًا لكم 🥰" - patrons: "الداعمون" -_nsfw: - respect: "اخف الوسائط ذات المحتوى الحساس" - ignore: "اعرض الوسائط ذات المحتوى الحساس" - force: "اخف كل الوسائط" +public: "للعامة" _mfm: - cheatSheet: "مرجع ملخص عن MFM" - intro: "MFM هي لغة ترميزية مخصصة يمكن استخدامها في عدّة أماكن في ميسكي. يمكنك مراجعة كل تعابيرها مع كيفية استخدامها هنا." mention: "أشر الى" - mentionDescription: "يمكنك الإشارة لمستخدم معيّن من خلال كتابة @ متبوعة باسم مستخدم." - hashtag: "الوسوم" - hashtagDescription: "يمكنك تعيين وسم من خلال كتابة # متبوعة بالنص المطلوب." - url: "الرابط" - urlDescription: "يمكن عرض الروابط" - link: "رابط" - bold: "عريض" - boldDescription: "جعل الحروف أثخن لإبرازها." - small: "صغير" - smallDescription: "يعرض المحتوى صغيرًا ورفيعًا." - center: "وسط" - centerDescription: "يمركز المحتوى في الوَسَط." quote: "اقتبس" - quoteDescription: "يعرض المحتوى كاقتباس" emoji: "إيموجي مخصص" - emojiDescription: "إحاطة اسم الإيموجي بنقطتي تفسير سيستبدله بصورة الإيموجي." search: "البحث" - searchDescription: "يعرض نصًا في صندوق البحث" - flip: "اقلب" - flipDescription: "يقلب المحتوى عموديًا أو أفقيًا" - jelly: "تأثير (هلام)" - jellyDescription: "يمنح المحتوى حركة هلامية." - tada: "تأثير (تادا)" - tadaDescription: "يمنح للمحتوى تأثير تادا" - jump: "تأثير (قفز)" - jumpDescription: "يمنح للمحتوى حركة قفز." - bounce: "تأثير (ارتداد)" - bounceDescription: "يمنح للمحتوى حركة ارتدادية" - shake: "تأثير (اهتزاز)" - shakeDescription: "يمنح المحتوى حركة اهتزازية." - spin: "تأثير (دوران)" - spinDescription: "يمنح المحتوى حركة دورانية." - x2: "كبير" - x2Description: "يُكبر المحتوى" - x3: "كبير جداً" - x3Description: "يُضخم المحتوى" - x4: "هائل" - x4Description: "يُضخم المحتوى أكثر مما سبق." - blur: "طمس" - blurDescription: "يطمس المحتوى، لكن بالتمرير فوقه سيظهر بوضوح." - font: "الخط" - fontDescription: "الخط المستخدم لعرض المحتوى." - rainbow: "قوس قزح" - rainbowDescription: "اجعل المحتوى يظهر بألوان الطيف" - rotate: "تدوير" - rotateDescription: "يُدير المحتوى بزاوية معيّنة." -_instanceTicker: - none: "لا تظهره بتاتًا" - remote: "أظهر للمستخدمين البِعاد" - always: "أظهره دائمًا" -_serverDisconnectedBehavior: - reload: "إعادة تحميل تلقائية" - dialog: "أظهر مربع حوار التحذيرات" +_reversi: + total: "المجموع" _channel: - create: "أنشئ قناة" - edit: "عدّل قناة" - setBanner: "عيّن اللافتة" - removeBanner: "أزل اللافتة" featured: "المتداوَلة" - owned: "قنواتي" - following: "متابَع" - usersCount: "{n} منتسب" - notesCount: "{n} ملاحظة" -_menuDisplay: - sideFull: "جانبي" - top: "الأعلى" +_sidebar: + full: "كامل" + icon: "الصورة الرمزية" hide: "إخفاء" -_wordMute: - muteWords: "الكلمات المحظورة" - muteWordsDescription: "افصل بينهم بمسافة لاستخدام معامل \"و\" أو بسطر لاستخدام معامل \"أو\"." - muteWordsDescription2: "احصر الكلمات المفتاحية بين بين شرطتين مائلتين لاستخدامها كتعابير نمطية" - softDescription: "اخف الملاحظات التي تستوف الشروط من الخيط الزمني." - hardDescription: "اخف الملاحظات التي تستوف الشروط من الخيط الزمني.بالإضافة إلى أن هذه الملاحظات ستبقى مخفية حتى وإن تغيرت الشروط." - soft: "لينة" - hard: "قاسية" - mutedNotes: "الملاحظات المكتومة" -_instanceMute: - instanceMuteDescription: "هذه سيحجب كل ملاحظات الخوادم المحجوبة ومشاركاتها والردود على تلك الملاحظات حتى وإن كانت من خادم غير محجوب." - instanceMuteDescription2: "مدخلة لكل سطر" - title: "يخفي ملاحظات الخوادم المسرودة." - heading: "قائمة الخوادم المحجوبة" _theme: explore: "استكشف قوالب المظهر" install: "تنصيب قالب" manage: "إدارة القوالب" code: "شيفرة القالب" - description: "الوصف" installed: "تم تنصيب {name}" - installedThemes: "السمات المثبتة" - builtinThemes: "السمات المدمجة" - alreadyInstalled: "هذه السمة مثبتة سلفًا" - invalid: "تنسيق السمة غير صالح" make: "إنشاء قالب" - addConstant: "أضف ثابتًا" - constant: "ثابت" - defaultValue: "القيمة الافتراضية" - color: "اللون" - key: "مفتاح" - func: "دوال" - funcKind: "نوع الدالة" - argument: "معامل" alpha: "الشفافية" - inputConstantName: "أدخل اسمًا للثابت" - deleteConstantConfirm: "أمتأكد من حذف الثابت {const}؟" keys: - accent: "طابع لوني" - bg: "الخلفية" - fg: "النص" - indicator: "المؤشر" - panel: "اللوحة" - shadow: "الظل" - navBg: "خلفية الشريط الجانبي" - navFg: "نص الشريط الجانبي" - navHoverFg: "نص الشريط الجانبي (عند التمرير فوقه)" - link: "رابط" - hashtag: "وسم" mention: "أشر الى" - renote: "أعد النشر" - divider: "فاصل" - scrollbarHandle: "مقبض شريط التمرير" - scrollbarHandleHover: "مقبض شريط التمرير (عند التمرير فوقه)" - infoWarnBg: "خلفية التحذير" - infoWarnFg: "نص التحذير" - toastBg: "خلفية الإشعارات" - toastFg: "نص الإشعارات" - buttonBg: "خلفية الأزرار" - buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)" - inputBorder: "حواف حقل الإدخال" - listItemHoverBg: "خلفية عناصر القائمة (عند التمرير فوقها)" - driveFolderBg: "خلفية مجلد قرص التخزين" - messageBg: "خلفية المحادثة" + messageBg: "خلفية الدردشة" _sfx: note: "الملاحظات" noteMy: "ملاحظتي" notification: "الإشعارات" - chat: "المحادثة" - chatBg: "المحادثة (الخلفية)" - antenna: "الهوائيات" - channel: "إشعارات القنات" + chat: "الدردشة" _ago: + unknown: "مجهول" future: "المستقبَل" justNow: "اللحظة" secondsAgo: "منذ {n} ثوانٍ" @@ -1031,76 +429,11 @@ _time: _tutorial: title: "كيف تستخدم Misskey" step1_1: "مرحبًا!" - step1_2: "تدعى هذه الصفحة 'الخيط الزمني' وهي تحوي ملاحظات الأشخاص الذي تتابعهم مرتبة حسب تاريخ نشرها." - step1_3: "خيطك الزمني فارغ حاليًا بما أنك لا تتابع أي شخص ولم تنشر أي ملاحظة." - step2_1: "لننهي إعداد ملفك الشخصي قبل كتابة ملاحظة أو متابعة أشخاص." - step2_2: "أعطاء معلومات عن شخصيتك يمنح من له نفس إهتماماتك فرصة متابعتك والتفاعل مع ملاحظاتك." - step3_1: "هل أنهيت إعداد حسابك؟" - step3_2: "إذا تاليًا لتنشر ملاحظة. أنقر على أيقونة القلم في أعلى الشاشة" - step3_3: "املأ النموذج وانقر الزرّ الموجود في أعلى اليمين للإرسال." - step3_4: "ليس لديك ما تقوله؟ إذا اكتب \"بدأتُ استخدم ميسكي\"." - step4_1: "هل نشرت ملاحظتك الأولى؟" - step4_2: "مرحى! يمكنك الآن رؤية ملاحظتك في الخيط الزمني." - step5_1: "والآن، لنجعل الخيط الزمني أكثر حيوية وذلك بمتابعة بعض المستخدمين." - step5_2: "تعرض صفحة {features} الملاحظات المتداولة في هذا المثيل ويتيح لك {Explore} العثور على المستخدمين الرائدين. اعثر على الأشخاص الذين يثيرون إهتمامك وتابعهم!" - step5_3: "لمتابعة مستخدمين ادخل ملفهم الشخصي بالنقر على صورتهم الشخصية ثم اضغط زر 'تابع'." - step5_4: "إذا كان لدى المستخدم رمز قفل بجوار اسمه ، وجب عليك انتظاره ليقبل طلب المتابعة يدويًا." - step6_1: "الآن ستتمكن من رؤية ملاحظات المستخدمين المتابَعين في الخيط الزمني." - step6_2: "يمكنك التفاعل بسرعة مع الملاحظات عن طريق إضافة \"تفاعل\"." - step6_3: "لإضافة تفاعل لملاحظة ، انقر فوق علامة \"+\" أسفل للملاحظة واختر الإيموجي المطلوب." - step7_1: "مبارك ! أنهيت الدورة التعليمية الأساسية لاستخدام ميسكي." - step7_2: "إذا أردت معرفة المزيد عن ميسكي زر {help}." - step7_3: "حظًا سعيدًا واستمتع بوقتك مع ميسكي! 🚀" _2fa: - alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين." - registerDevice: "سجّل جهازًا جديدًا" registerKey: "تسجيل مفتاح أمان جديد" - step1: "أولًا ثبّت تطبيق استيثاق على جهازك (مثل {a} و{b})." - step2: "امسح رمز الاستجابة السريعة الموجد على الشاشة." - step3: "أدخل الرمز الموجود في تطبيقك لإكمال التثبيت." - step4: "من هذه اللحظة أثناء ولوجك سيُطلب منك الرمز." _permissions: - "read:account": "اعرض معلومات حسابك" "write:account": "تعديل معلومات حسابك" - "read:blocks": "اعرض قائمة المستخدمين المحجوبين" - "write:blocks": "عدّل قائمة المستخدمين المحجوبين" - "read:drive": "تصفح قرص التخزين" - "write:drive": "احذف أو عدّل محتويات قرص التخزين" - "read:favorites": "اعرض المفضلة" - "write:favorites": "عدّل المفضلة" - "read:following": "اعرض معلومات متابَعيك" - "write:following": "تابع أو ألغ متابعة حسابات" - "read:messaging": "اعرض المحادثات" - "write:messaging": "اكتب أو احذف رسائل محادثة" - "read:mutes": "اعرض قائمة المستخدمين المكتومين" - "write:mutes": "عدّل قائمة المستخدمين المكتومين" - "write:notes": "أنشئ أو احذف ملاحظات" "read:notifications": "اظهر الإشعارات" - "write:notifications": "إدارة الإشعارات" - "read:reactions": "اعرض تفاعلاتك" - "write:reactions": "عدّل تفاعلاتك" - "write:votes": "صوّت" - "read:pages": "اعرض صفحاتك" - "write:pages": "عدّل أو احذف صفحاتك" - "read:page-likes": "يعرض ما أعجبك من ملاحظات في صفحات" - "read:user-groups": "اعرض فِرق المستخدمين" - "write:user-groups": "عدّل أو احذف فِرق المستخدمين" - "read:channels": "طالع قنواتك" - "write:channels": "عدّل القنوات" - "read:gallery": "اعرض المعرض" - "write:gallery": "عدّل المعرض" - "read:gallery-likes": "يعرض ما أعجبك من مشاركات المعرض" -_auth: - shareAccess: "أتريد التفويض لـ \"{name}\" بالوصول لحسابك؟" - shareAccessAsk: "هل تخول لهذا التطبيق الوصول لحسابك؟" - permissionAsk: "يطلب التطبيق الأذون التالية" - pleaseGoBack: "رجاءً عد للتطبيق" - callback: "العودة للتطبيق" - denied: "رُفض الوصول" -_antennaSources: - all: "كل الملاحظات" - homeTimeline: "ملاحظات المستخدمين المتابَعين" - users: "ملاحظات مستخدمين محددين" _weekday: sunday: "الأحد" monday: "الإثنين" @@ -1119,14 +452,7 @@ _widgets: rss: "تدفق RSS" activity: "النشاط" photos: "الصور" - digitalClock: "ساعة رقمية" federation: "الفديرالية" - postForm: "أنشئ ملاحظة" - slideshow: "عرض الشرائح" - button: "زر" - onlineUsers: "المتّصلون" - jobQueue: "قائمة الانتظار" - serverMetric: "إحصائيات الخادم" _cw: hide: "إخفاء" show: "عرض المزيد" @@ -1155,384 +481,76 @@ _poll: remainingMinutes: "{m} دقائق و {s} ثوانٍ متبقية" remainingSeconds: "{s} ثوانٍ متبقية" _visibility: - public: "علني" - publicDescription: "ستكون ملاحظتك مرئية لكل المستخدمين" + public: "للعامة" home: "الرئيسي" - homeDescription: "انشر في الخيط الزمني الرئيسي فقط" - followers: "المتابِعون" - followersDescription: "اجعلها مرئية لمتابِعيك فقط" + followers: "المتابِعين" specified: "مباشرة" - specifiedDescription: "اجعلها مرئية لمستخدمين محددين" localOnly: "المحلي فقط" - localOnlyDescription: "ليس مرئيًا للمستخدمين البِعاد" _postForm: replyPlaceholder: "رد على هذه الملاحظة…" quotePlaceholder: "اقتبس هذه الملاحظة…" - channelPlaceholder: "انشر في قناة..." - _placeholders: - a: "ما الذي تنوي فعله؟" - b: "ماذا يحدث حولك ؟" - c: "ما الذي تفكر فيه؟" - d: "ما الذي تريد قوله؟" - e: "أكتب..." - f: "بانتظارك لتكتب..." _profile: name: "الإسم" username: "اسم المستخدم" - description: "السيرة" - youCanIncludeHashtags: "يمكنك أيضًا إضافة وسوم إلى سيرتك التعريفية." - metadata: "معلومات إضافية" - metadataEdit: "عدّل المعلومات الإضافية" - metadataDescription: "يُمكنك عرض 4 حقول معلومات في ملفك الشخصي" - metadataLabel: "التسمية" - metadataContent: "المحتوى" - changeAvatar: "غيّر الصورة الرمزية" - changeBanner: "غيّر اللافتة" + youCanIncludeHashtags: "يمكنك أيضًا إضافة وسوم إلى نبذتك التعريفية." _exportOrImport: allNotes: "كل الملاحظات" followingList: "المتابَعون" - muteList: "المستخدمون المكتومون" - blockingList: "المستخدمون المحجوبون" + muteList: "اكتم" + blockingList: "احجب" userLists: "القوائم" - excludeMutingUsers: "استثن الحسابات المكتومة" - excludeInactiveUsers: "استثن المستخدمين الخاملين" _charts: - federation: "الفديرالية" - apRequest: "الطلبات" - usersIncDec: "تباين عدد المستخدمين" usersTotal: "مجموع عدد المستخدمين والمستخدمات" activeUsers: "المستخدمون النشطون" - notesIncDec: "تباين عدد الملاحظات" - localNotesIncDec: "تباين عدد الملاحظات المحلية" - remoteNotesIncDec: "تباين عدد الملاحظات البعيدة" - notesTotal: "إجمالي الملاحظات" - filesIncDec: "تباين عدد الملفات" - filesTotal: "العدد الإجمالي للملفات" -_instanceCharts: - requests: "الطلبات" - users: "تباين عدد المستخدمين" - usersTotal: "تباين عدد المستخدمين" - notes: "تباين عدد الملاحظات" - notesTotal: "تباين عدد الملاحظات" - ff: "تباين عدد حسابات المتابَعة/المتابِعة" - ffTotal: "تباين عدد حسابات المتابَعة/المتابِعة" - files: "تباين عدد الملفات" - filesTotal: "تباين عدد الملفات" _timelines: home: "الرئيسي" local: "المحلي" social: "الاجتماعي" global: "الشامل" +_rooms: + _roomType: + default: "افتراضي" + _furnitures: + monitor: "شاشة التحكم" + banknote: "أوراق نقدية" _pages: - newPage: "أنشئ صفحة جديدة" - editPage: "عدّل الصفحة" - readPage: "نُشّط عرض المصدر" - created: "نجح إنشاء الصفحة" - updated: "نجح تعديل الصفحة" - deleted: "نجح حذف الصفحة" - pageSetting: "إعدادات الصفحة" - nameAlreadyExists: "رابط الصفحة موجود مسبقًا" - invalidNameTitle: "رابط الصفحة ليس صالحًا" - invalidNameText: "تأكد أن عنوان الصفحة ليس فارغًا" - editThisPage: "عدّل هذه الصفحة" - viewSource: "اظهر المصدر" - viewPage: "اعرض صفحاتك" - like: "أعجبني" - unlike: "أزل الإعجاب" - my: "صفحاتي" - liked: "الصفحات المُعجب بها" - featured: "الأكثر شعبية" - contents: "المحتوى" - variables: "متغيّرات" - title: "العنوان" - url: "رابط الصفحة" - summary: "ملخص الصفحة" - alignCenter: "توسيط العناصر" - hideTitleWhenPinned: "اخف عنوان الصفحة عند تدبيسها في ملف الشخصي" - font: "الخط" - fontSerif: "Serif" - fontSansSerif: "Sans Serif" - eyeCatchingImageSet: "عيّن صورة مصغّرة" - eyeCatchingImageRemove: "احذف صورة مصغّرة" - chooseBlock: "إضافة كتلة" - selectType: "اختر النوع" - enterVariableName: "أدخل اسم المتغيّر" - variableNameIsAlreadyUsed: "هذا الاسم محجوز" - contentBlocks: "المحتوى" - inputBlocks: "مُدخل" - specialBlocks: "خاص" blocks: - text: "نص" - textarea: "حقل نصي" - section: "قسم" image: "الصور" - button: "زرّ" - _if: - variable: "متغيّر" - post: "أنشئ ملاحظة" - _post: - text: "المحتوى" - textInput: "مُدخل نصي" - _textInput: - name: "اسم المتغير" - text: "العنوان" - default: "القيمة الافتراضية" - textareaInput: "مدخل نصي متعدد الأسطر" - _textareaInput: - name: "اسم المتغير" - text: "العنوان" - default: "القيمة الافتراضية" - numberInput: "مُدخل رقمي" - _numberInput: - name: "اسم المتغير" - text: "العنوان" - default: "القيمة الافتراضية" - _canvas: - width: "العُرض" - height: "الإرتفاع" - note: "ملاحظة مضمّنة" - _note: - id: "معرّف الملاحظة" - idDescription: "كبديل يمكنك إدخال رابك الملاحظة هنا" - detailed: "عرض مفصّل" - switch: "بدّل" - _switch: - name: "اسم المتغير" - text: "العنوان" - default: "القيمة الافتراضية" - counter: "العداد" - _counter: - name: "اسم المتغير" - text: "العنوان" - inc: "زِد" - _button: - text: "العنوان" - colored: "ملوّن" - action: "الإجراء عند ضغط الزّر" - _action: - dialog: "أظهر مربع حوار" - _dialog: - content: "المحتوى" - resetRandom: "صفِّر البذرة" - pushEvent: "أرسل حدثًا" - _pushEvent: - event: "اسم الحدث" - message: "إظهار رسالة عند التفعيل" - variable: "أرسل المتغيّر" - no-variable: "لا شيء" - _callAiScript: - functionName: "اسم الدالة" - radioButton: "الخيار " - _radioButton: - name: "اسم المتغير" - title: "العنوان" - values: "قائمة الخيارات (كل خيار في سطر لوحده)" - default: "القيمة الافتراضية" script: categories: - logical: "عمليّة منطقيّة" - operation: "حساب" - comparison: "مقارنة" - random: "عشوائي" - value: "القيم" - fn: "دوال" - text: "إجراءات على النصوص" - convert: "تحويل" list: "القوائم" blocks: - text: "نص" - textList: "قائمة نصية" - _textList: - info: "اجعل كل مدخل في سطر لوحده" - strLen: "طول النص" - _strLen: - arg1: "نص" - strPick: "استخرج محرفًا" - _strPick: - arg1: "نص" - arg2: "موضع المحرف" - strReplace: "استبدال النّص" _strReplace: arg1: "نص" - arg2: "استُبدِل بـ" arg3: "استُبدِل بـ" - strReverse: "اقلب النص" - _strReverse: - arg1: "نص" _join: arg1: "القوائم" arg2: "فاصل" add: "إضافة" - _add: - arg1: "أ" - arg2: "ب" - subtract: "اطرح" - _subtract: - arg1: "أ" - arg2: "ب" - multiply: "اضرب" - _multiply: - arg1: "أ" - arg2: "ب" - divide: "اقسم" - _divide: - arg1: "أ" - arg2: "ب" - mod: "الباقي" - _mod: - arg1: "أ" - arg2: "ب" - round: "تقريب عدد عشري" - _round: - arg1: "رقم" - eq: "أ و ب متساويان" - _eq: - arg1: "أ" - arg2: "ب" - notEq: "أ و ب مختلفان" - _notEq: - arg1: "أ" - arg2: "ب" - and: "أ و ب" - _and: - arg1: "أ" - arg2: "ب" - or: "أ أو ب" - _or: - arg1: "أ" - arg2: "ب" - lt: "أ أصغر من ب" - _lt: - arg1: "أ" - arg2: "ب" - gt: "أ أكبر من ب" - _gt: - arg1: "أ" - arg2: "ب" - ltEq: "أ أصغر من أو يساوي ب" - _ltEq: - arg1: "أ" - arg2: "ب" - gtEq: "أ أكبر من أو يساوي ب" - _gtEq: - arg1: "أ" - arg2: "ب" - if: "فرع" - random: "عشوائي" - rannum: "رقم عشوائي" - _rannum: - arg1: "أدنى قيمة" - arg2: "أقصى قيمة" - randomPick: "اختر عشوائيًا من القائمة" _randomPick: arg1: "القوائم" - dailyRandom: "عشوائي (يتغير مرة يوميًا لكل مستخدم)" - dailyRannum: "رقم عشوائي (يتغير مرة يوميًا لكل مستخدم)" - _dailyRannum: - arg1: "أدنى قيمة" - arg2: "أقصى قيمة" - dailyRandomPick: "اختيار عشوائي من قائمة (يتغير مرة يوميًا لكل مستخدم)" _dailyRandomPick: arg1: "القوائم" - seedRandom: "عشوائي (عبر بذرة)" - _seedRandom: - arg1: "البذرة" - seedRannum: "رقم عشوائي (عبر بذرة)" - _seedRannum: - arg1: "البذرة" - arg2: "أدنى قيمة" - arg3: "أقصى قيمة" - seedRandomPick: "اختيار عشوائي من القائمة (عبر بذرة)" _seedRandomPick: - arg1: "البذرة" arg2: "القوائم" - DRPWPM: "اختيار عشوائي من قائمة الاحتمالات (تتغير مرة يوميًا لكل مستخدم)" - _DRPWPM: - arg1: "قائمة نصية" - pick: "اختر من القائمة" _pick: arg1: "القوائم" - arg2: "الموضع" - listLen: "طول القائمة" _listLen: arg1: "القوائم" - number: "رقم" - stringToNumber: "حوّل نصًا إلى رقم" - _stringToNumber: - arg1: "نص" - numberToString: "حوّل رقمًا إلى نص" - _numberToString: - arg1: "رقم" - _splitStrByLine: - arg1: "نص" - ref: "متغيّر" - aiScriptVar: "متغيّر AiScript" - fn: "دالة" - _fn: - slots: "خانات" - arg1: "المُخرج" - for: "حلقة تكرار" - _for: - arg1: "عدد مرات التكرار" - arg2: "الإجراء" - typeError: "الخانة {slot} تقبل \"{expect}\" لكن القيمة المعطاة هي \"{actual}\"!" - thereIsEmptySlot: "الخانة {slot} فارغة!" types: - string: "نص" - number: "رقم" array: "القوائم" - stringArray: "قائمة نصية" - emptySlot: "خانة فارغة" - enviromentVariables: "متغيرات البيئة" - pageVariables: "متغيرات الصفحة" - argVariables: "خانة إدخال" -_relayStatus: - requesting: "مُعلّق" - accepted: "مقبول" - rejected: "مرفوض" _notification: - fileUploaded: "نجح رفع الملف" - youGotMention: "{name} أشار إليك" - youGotReply: "ردّ عليك {name}" - youGotQuote: "اقتبس منك {name}" - youRenoted: "إعادت نشر من {name}" youGotPoll: "شارك {name} في استطلاع الرأي" youGotMessagingMessageFromUser: "لقد تلقيت رسالة مِن {name}" youGotMessagingMessageFromGroup: "لقد أرسِلَت رسالة إلى الفريق {name}" youWereFollowed: "يتابعك" - youReceivedFollowRequest: "تلقيتَ طلب متابعة" - yourFollowRequestAccepted: "قُبل طلب المتابعة" - youWereInvitedToGroup: "دُعيت إلى فريقٍ" - pollEnded: "ظهرت نتائج الاستطلاع" _types: - all: "الكل" - follow: "متابِعون جدد" - mention: "الإشارات" - reply: "الردود" - renote: "أعد النشر" - quote: "الاقتباسات" - reaction: "التفاعلات" - pollVote: "مصوِت شارك في الاستطلاع" - receiveFollowRequest: "طلبات المتابعة المتلقاة" - followRequestAccepted: "طلبات المتابعة المقبولة" - groupInvited: "دعوات الفريق" - app: "إشعارات التطبيقات المرتبطة" - _actions: - followBack: "تابعك بالمثل" - reply: "رد" - renote: "أعد النشر" + follow: "المتابَعون" + mention: "أشر الى" + quote: "اقتبس" + reaction: "تفاعل" _deck: - alwaysShowMainColumn: "أظهر العمود الرئيسي دائمًا" - columnAlign: "حاذِ الأعمدة" - addColumn: "أضف عمودًا" - swapLeft: "حرّك لليسار" - swapRight: "حرّك لليمين" - swapUp: "حرّك لأعلى" - swapDown: "حرّك لأسفل" - profile: "الملف الشخصي" _columns: - main: "الرئيسي" - widgets: "الودجات" notifications: "الإشعارات" tl: "الخيط الزمني" antenna: "الهوائيات" diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml deleted file mode 100644 index a19fc0832..000000000 --- a/locales/bn-BD.yml +++ /dev/null @@ -1,1665 +0,0 @@ ---- -_lang_: "বাংলা" -headlineMisskey: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক" -introMisskey: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n" -monthAndDay: "{day}/{month}" -search: "খুঁজুন" -notifications: "বিজ্ঞপ্তি" -username: "ব্যবহারকারীর নাম" -password: "পাসওয়ার্ড" -forgotPassword: "পাসওয়ার্ড ভুলে গেছেন" -fetchingAsApObject: "ফেডিভার্স থেকে খবর আনা হচ্ছে..." -ok: "ঠিক" -gotIt: "বুঝেছি" -cancel: "বাতিল" -enterUsername: "ইউজারনেম লিখুন" -renotedBy: "{user} রিনোট করেছেন" -noNotes: "কোন নোট নেই" -noNotifications: "কোনো বিজ্ঞপ্তি নেই" -instance: "ইন্সট্যান্স" -settings: "সেটিংস" -basicSettings: "সাধারণ সেটিংস" -otherSettings: "অন্যান্য সেটিংস" -openInWindow: "নতুন উইন্ডোতে খুলা" -profile: "প্রোফাইল" -timeline: "টাইমলাইন" -noAccountDescription: "এই ব্যাবহারকারীর কোন বায়ো নেই" -login: "প্রবেশ করুন" -loggingIn: "প্রবেশ করা হচ্ছে..." -logout: "লগআউট" -signup: "নিবন্ধন করুন" -uploading: "আপলোড হচ্ছ …" -save: "সংরক্ষণ" -users: "ব্যবহারকারীগণ" -addUser: "ব্যবহারকারী যোগ করুন" -favorite: "পছন্দ" -favorites: "পছন্দগুলি" -unfavorite: "পছন্দ না" -favorited: "পছন্দ করা হয়েছে" -alreadyFavorited: "ইতিমধ্যে পছন্দ করা হয়েছে" -cantFavorite: "পছন্দ করা যায়নি" -pin: "পিন করা" -unpin: "পিন সরান" -copyContent: "বিষয়বস্তু কপি করুন" -copyLink: "লিঙ্ক কপি করুন" -delete: "মুছুন" -deleteAndEdit: "মুছুন এবং সম্পাদনা করুন" -deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।" -addToList: "লিস্ট এ যোগ করুন" -sendMessage: "একটি বার্তা পাঠান" -copyUsername: "ব্যবহারকারীর নাম কপি করুন" -searchUser: "ব্যবহারকারী খুঁজুন..." -reply: "জবাব" -loadMore: "আরও দেখুন" -showMore: "আরও দেখুন" -showLess: "বন্ধ" -youGotNewFollower: "আপনাকে অনুসরণ করছে" -receiveFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে" -followRequestAccepted: "অনুসরণ করার অনুরোধ গৃহীত হয়েছে" -mention: "উল্লেখ" -mentions: "উল্লেখসমূহ" -directNotes: "ডাইরেক্ট নোটগুলি" -importAndExport: "আমদানি এবং রপ্তানি" -import: "আমদানি করুণ" -export: "রপ্তানি" -files: "ফাইলগুলি" -download: "ডাউনলোড" -driveFileDeleteConfirm: "আপনি কি নিশ্চিত যে আপনি \"{name}\" ডিলিট করতে চান? যে সকল নোটের সাথে এই ফাইলটি সংযুক্ত সেগুলোও ডিলিট করা হবে।" -unfollowConfirm: "{name} কে আনফলোও করার ব্যাপারে নিশ্চিত?" -exportRequested: "আপনার তথ্যসমূহ রপ্তানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। রপ্তানি সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।" -importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। " -lists: "লিস্ট" -noLists: "কোন লিস্ট নেই" -note: "নোট" -notes: "নোটগুলি" -following: "অনুসরণ করা হচ্ছে" -followers: "অনুসরণকারী" -followsYou: "আপনাকে অনুসরণ করে" -createList: "লিস্ট তৈরি করুন" -manageLists: "লিস্ট ব্যাবস্থাপনা" -error: "সমস্যা" -somethingHappened: "একটি ত্রুটি হয়েছে" -retry: "আবার চেষ্টা করুন" -pageLoadError: "পেজ লোড করা যায়নি" -pageLoadErrorDescription: "এটি সাধারনত নেটওয়ার্কের সমস্যার বা ব্রাউজার ক্যাশের কারণে ঘটে থাকে। ব্রাউজার এর ক্যাশ পরিষ্কার করুন এবং একটু পর আবার চেষ্টা করুন। " -serverIsDead: "এই সার্ভার বর্তমানে সাড়া দিচ্ছে না। একটু পরে আবার চেষ্টা করুন।" -youShouldUpgradeClient: "এই পেজ দেখার জন্য আপনার ব্রাউজার রিফ্রেশ করে ক্লায়েন্ট আপডেট করুন। " -enterListName: "লিস্টের নাম লিখুন" -privacy: "গোপনীয়তা" -makeFollowManuallyApprove: "অনুসরণ করার অনুরোধগুলি গৃহীত হওয়ার জন্য আপনার অনুমতি লাগবে" -defaultNoteVisibility: "ডিফল্ট দৃশ্যমান্যতা" -follow: "অনুসরণ" -followRequest: "অনুসরণ করার অনুরোধ" -followRequests: "অনুসরণ করার অনুরোধসমূহ" -unfollow: "অনুসরণ বাতিল" -followRequestPending: "অনুসরণ করার অনুরোধ বিচারাধীন" -enterEmoji: "ইমোজি প্রবেশ করান" -renote: "রিনোট" -unrenote: "রিনোট সরান " -renoted: "রিনোট করা হয়েছে" -cantRenote: "এই নোটটি রিনোট করা যাবে না।" -cantReRenote: "রিনোটকে রিনোট করা যাবে না।" -quote: "উদ্ধৃতি" -pinnedNote: "পিন করা নোট" -pinned: "পিন করা" -you: "আপনি" -clickToShow: "দেখার জন্য ক্লিক করুন" -sensitive: "সংবেদনশীল বিষয়বস্তু" -add: "যুক্ত করুন" -reaction: "প্রতিক্রিয়া" -reactionSetting: "রিঅ্যাকশন পিকারে যেসকল প্রতিক্রিয়া দেখানো হবে" -reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে + টিপুন।" -rememberNoteVisibility: "নোটের দৃশ্যমান্যতার সেটিংস মনে রাখুন" -attachCancel: "অ্যাটাচমেন্ট সরান " -markAsSensitive: "সংবেদনশীল হিসাবে চিহ্নিত করুন" -unmarkAsSensitive: "সংবেদনশীল চিহ্ন সরান" -enterFileName: "ফাইলের নাম লিখুন" -mute: "মিউট" -unmute: "আনমিউট" -block: "ব্লক" -unblock: "ব্লক সরান" -suspend: "স্থগিত করা" -unsuspend: "অস্থগিত করা" -blockConfirm: "ব্লক করতে চান?" -unblockConfirm: "ব্লক সরাতে চান?" -suspendConfirm: "স্থগিত করতে চান?" -unsuspendConfirm: "অস্থগিত করতে চান?" -selectList: "লিস্ট নির্বাচন করুন" -selectAntenna: "অ্যান্টেনা নির্বাচন করুন" -selectWidget: "উইজেট নির্বাচন করুন" -editWidgets: "উইজেট সম্পাদনা করুন" -editWidgetsExit: "সম্পাদনা শেষ করুন" -customEmojis: "স্বনির্ধারিত ইমোজিগুলি" -emoji: "ইমোজি" -emojis: "ইমোজিগুলি" -emojiName: "ইমোজির নাম" -emojiUrl: "ইমোজির URL" -addEmoji: "ইমোজি যুক্ত করুন" -settingGuide: "সুপারিশকৃত সেটিংস" -cacheRemoteFiles: "রিমোট ফাইলসমুহ ক্যাশ করুন" -cacheRemoteFilesDescription: "যখন এই অপশনটি বন্ধ থাকে তখন রিমোট ফাইল সমূহ সরাসরি রিমোট ইন্সট্যান্স থেকে লোড করা হয়। এই অপশনটি বন্ধ করলে স্টোরেজ এর ব্যাবহার কমবে তবে থাম্বনেইল তৈরি না করার কারণে নেটওয়ার্ক ব্যান্ডউইথ বেশী লাগবে। " -flagAsBot: "বট হিসাবে চিহ্নিত করুন" -flagAsBotDescription: "এই অ্যাকাউন্টটি যদি একটি প্রোগ্রাম দ্বারা পরিচালিত হয়, তাহলে এই অপশনটি চালু করুন। ইন্টারঅ্যাকশান চেইনিং রোধ করতে, মিস্কির সিস্টেম পরিচালনাকে বট-বান্ধব করতে এবং অন্যান্য ডেভেলপারদের সাহায্য করতে আপনার বট এ এই অপশনটি চালু করুন৷" -flagAsCat: "বিড়াল হিসাবে চিহ্নিত করুন" -flagAsCatDescription: "অ্যাকাউন্টটিকে বিড়াল হিসাবে চিহ্নিত করার জন্য অপশনটি চালু করুন।" -flagShowTimelineReplies: "টাইমলাইনে নোটগুলির রিপ্লাই দেখান" -flagShowTimelineRepliesDescription: "চালু করলে, টাইমলাইন ব্যবহারকারীর নোট ছাড়াও ব্যবহারকারীর অন্যান্য নোটের জবাবগুলো দেখায়।" -autoAcceptFollowed: "আপনি যেসব অ্যাকাউন্ট অনুসরণ করেন, স্বয়ংক্রিয়ভাবে তাদের অনুসরণের অনুরধ স্বীকার করুন" -addAccount: "অ্যাকাউন্ট যোগ করুন" -loginFailed: "প্রবেশ করা যায়নি" -showOnRemote: "রিমোট সার্ভারে দেখুন" -general: "সাধারণ" -wallpaper: "ওয়ালপেপার" -setWallpaper: "ওয়ালপেপার সেট করুন" -removeWallpaper: "ওয়ালপেপার সরান" -searchWith: "খুঁজুন: {q}" -youHaveNoLists: "আপনার কোন লিস্ট নেই" -followConfirm: "{name} কে ফলোও করার ব্যাপারে নিশ্চিত?" -proxyAccount: "প্রক্সি অ্যাকাউন্ট" -proxyAccountDescription: "একটি প্রক্সি অ্যাকাউন্ট এমন একটি অ্যাকাউন্ট যা নির্দিষ্ট শর্তে ব্যবহারকারীদের জন্য রিমোট অনুসরণকারী হিসাবে কাজ করে। উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী একটি রিমোট ব্যবহারকারীকে তালিকাভুক্ত করে, তখন ক্রিয়াকলাপের দৃষ্টান্তে বিতরণ করা হবে না যদি না কেউ তালিকাভুক্ত ব্যবহারকারীকে অনুসরণ করে, তাই প্রক্সি অ্যাকাউন্ট দ্বারা তাকে অনুসরণ করা হবে।" -host: "হোস্ট" -selectUser: "ব্যবহারকারী নির্বাচন করুন" -recipient: "প্রতি" -annotation: "মন্তব্য" -federation: "ফেডিভার্স" -instances: "ইন্সট্যান্স" -registeredAt: "যোগ দিয়েছেন" -latestRequestSentAt: "শেষ রিকুয়েস্ট পাঠানো হয়েছে" -latestRequestReceivedAt: "শেষ রিকুয়েস্ট গৃহীত হয়েছে" -latestStatus: "সর্বশেষ অবস্থা" -storageUsage: "স্টোরেজের ব্যাবহার" -charts: "চার্ট" -perHour: "ঘন্টা প্রতি" -perDay: "দৈনিক" -stopActivityDelivery: "অ্যাক্টিভিটি পাঠানো বন্ধ করুন" -blockThisInstance: "ইন্সট্যান্স ব্লক করুন" -operations: "ক্রিয়াকলাপ" -software: "সফটওয়্যার" -version: "সংস্করণ" -metadata: "মেটাডাটা" -withNFiles: "{n} টি ফাইল" -monitor: "মনিটর" -jobQueue: "জব কিউ" -cpuAndMemory: "সিপিউ এবং মেমরি" -network: "নেটওয়ার্ক" -disk: "ডিস্ক" -instanceInfo: "ইন্সট্যান্সের তথ্য" -statistics: "পরিসংখ্যান" -clearQueue: "কিউ পরিষ্কার করুন" -clearQueueConfirmTitle: "আপনি কি কিউ পরিষ্কার করার ব্যাপারে নিশ্চিত?" -clearQueueConfirmText: "বিতরণ না করা নোট আর বিতরণ করা হবে না। সাধারণত আপনার এটি করার দরকার নেই।" -clearCachedFiles: "ক্যাশ পরিষ্কার করুন" -clearCachedFilesConfirm: "আপনি কি ক্যাশ পরিষ্কার করার ব্যাপারে নিশ্চিত?" -blockedInstances: "ব্লককৃত ইন্সট্যান্সসমুহ" -blockedInstancesDescription: "আপনি যে ইন্সট্যান্সগুলি ব্লক করতে চান তার হোস্টনেমগুলি প্রত্যেকটি আলাদা লাইনে লিখুন। ব্লককৃত ইন্সট্যান্সগুলি এই ইন্সট্যান্সের সাথে যোগাযোগ করতে পারবেনা৷" -muteAndBlock: "মিউট এবং ব্লকগুলি" -mutedUsers: "নিঃশব্দকৃত ব্যবহারকারী" -blockedUsers: "যাদের ব্লক করা হয়েছে" -noUsers: "কোন ব্যাবহারকারী নেই" -editProfile: "প্রোফাইল সম্পাদনা করুন" -noteDeleteConfirm: "আপনি কি নোট ডিলিট করার ব্যাপারে নিশ্চিত?" -pinLimitExceeded: "আপনি আর কোন নোট পিন করতে পারবেন না" -intro: "Misskey এর ইন্সটলেশন সম্পন্ন হয়েছে!দয়া করে অ্যাডমিন ইউজার তৈরি করুন।" -done: "সম্পন্ন" -processing: "প্রক্রিয়াধীন..." -preview: "পূর্বরূপ দেখুন" -default: "পূর্বনির্ধারিত" -noCustomEmojis: "কোন ইমোজি নাই" -noJobs: "কোন জব নাই" -federating: "ফেডারেট করা হচ্ছে" -blocked: "ব্লক করা হয়েছে" -suspended: "স্থগিত করা হয়েছে" -all: "সবগুলো" -subscribing: "সদস্যতা নেয়া হচ্ছে" -publishing: "প্রকাশ করা হচ্ছে" -notResponding: "সাড়া নেই" -instanceFollowing: "ইন্সট্যান্স অনুসরণ করা হচ্ছে" -instanceFollowers: "ইন্সট্যান্স অনুসরণকারী" -instanceUsers: "ইন্সট্যান্স ব্যাবহারকারী" -changePassword: "পাসওয়ার্ড পরিবর্তন করুন" -security: "নিরাপত্তা" -retypedNotMatch: "ইনপুট মেলে না।" -currentPassword: "বর্তমান পাসওয়ার্ড" -newPassword: "নতুন পাসওয়ার্ড" -newPasswordRetype: "নতুন পাসওয়ার্ড (পুনরায় লিখুন)" -attachFile: "ফাইল সংযুক্ত করুন" -more: "আরও!" -featured: "হাইলাইট" -usernameOrUserId: "ব্যাবহারকারীর নাম বা ব্যাবহারকারী ID" -noSuchUser: "কোন ব্যবহারকারী খুঁজে পাওয়া যায়নি" -lookup: "খুঁজে দেখো" -announcements: "ঘোষণা" -imageUrl: "চিত্রের URL" -remove: "মুছুন" -removed: "সরানো হয়েছে" -removeAreYouSure: "আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?" -deleteAreYouSure: "আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?" -resetAreYouSure: "রিসেট করার ব্যাপারে নিশ্চিত?" -saved: "সংরক্ষিত হয়েছে" -messaging: "চ্যাট" -upload: "আপলোড" -keepOriginalUploading: "আসল ছবি রাখুন" -keepOriginalUploadingDescription: "ছবিটি আপলোড করার সময় আসল সংস্করণটি রাখুন। অপশনটি বন্ধ থাকলে, আপলোডের সময় ওয়েব প্রকাশনার জন্য ছবি ব্রাউজারে তৈরি করা হবে।" -fromDrive: "ড্রাইভ হতে" -fromUrl: "URL হতে" -uploadFromUrl: "URL হতে আপলোড" -uploadFromUrlDescription: "যে ফাইলটি আপলোড করতে চান, সেটির URL" -uploadFromUrlRequested: "আপলোড অনুরোধ করা হয়েছে" -uploadFromUrlMayTakeTime: "URL হতে আপলোড হতে কিছু সময় লাগতে পারে।" -explore: "ঘুরে দেখুন" -messageRead: "পড়া" -noMoreHistory: "আর কোন ইতিহাস নেই" -startMessaging: "চ্যাট শুরু করুন" -nUsersRead: "{n} জন পড়েছেন" -agreeTo: "{0} এর প্রতি আমি সম্মত" -tos: "পরিষেবার শর্তাদি" -start: "শুরু করুন" -home: "মূল পাতা" -remoteUserCaution: "এই ব্যাবহারকারী রিমোট ইন্সট্যান্সের, নিম্নক্ত তথ্য অসম্পূর্ণ হতে পারে।" -activity: "কার্যকলাপ" -images: "ছবি" -birthday: "জন্মদিন" -yearsOld: "{age} বছর" -registeredDate: "যোগদানের তারিখ" -location: "অবস্থান" -theme: "থিম" -themeForLightMode: "লাইট মোডের থিম" -themeForDarkMode: "ডার্ক মোডের থিম" -light: "আলোকিত" -dark: "অন্ধকার" -lightThemes: "আলোকিত থিম" -darkThemes: "অন্ধকার থিম" -syncDeviceDarkMode: "ডিভাইসের সেটিং অনুযায়ী ডার্ক মোড সেট করুন" -drive: "ড্রাইভ" -fileName: "ফাইলের নাম" -selectFile: "ফাইল নির্বাচন করুন" -selectFiles: "ফাইল নির্বাচন করুন" -selectFolder: "ফোল্ডার নির্বাচন করুন" -selectFolders: "ফোল্ডার নির্বাচন করুন" -renameFile: "ফাইল পুনঃনামকরন" -folderName: "ফোল্ডারের নাম" -createFolder: "ফোল্ডার তৈরি করুন" -renameFolder: "ফোল্ডার পুনঃনামকরন" -deleteFolder: "ফোল্ডার মুছুন" -addFile: "ফাইল যোগ করুন" -emptyDrive: "আপনার ড্রাইভ খালি" -emptyFolder: "এই ফোল্ডার খালি" -unableToDelete: "মুছে ফেলা যায়নি" -inputNewFileName: "ফাইলের নতুন নাম লিখুন" -inputNewDescription: "নতুন ক্যাপশন লিখুন" -inputNewFolderName: "ফোল্ডারের নতুন নাম লিখুন" -circularReferenceFolder: "গন্তব্য ফোল্ডারটি আপনি যে ফোল্ডারটি সরাতে চান তার একটি সাবফোল্ডার।" -hasChildFilesOrFolders: "এই ফোল্ডারটি খালি না হওয়ায় ডিলিট করা যায়নি।" -copyUrl: "URL কপি করুন" -rename: "পুনঃনামকরণ" -avatar: "প্রোফাইল ছবি" -banner: "ব্যানার" -nsfw: "সংবেদনশীল বিষয়বস্তু" -whenServerDisconnected: "সার্ভারের সাথে সংযোগ বিচ্ছিন্ন হয়ে গেলে" -disconnectedFromServer: "সার্ভার থেকে সংযোগ বিচ্ছিন্ন হয়েছে" -reload: "আবার লোড করুন" -doNothing: "কিছু করবেন না" -reloadConfirm: "আপনি কি রিলোড করতে চান?" -watch: "বিজ্ঞপ্তি পান" -unwatch: "বিজ্ঞপ্তি পাওয়া বন্ধ করুন " -accept: "অনুমোদন" -reject: "প্রত্যাখ্যান" -normal: "স্বাভাবিক" -instanceName: "ইন্সট্যান্সের নাম" -instanceDescription: "ইন্সট্যান্সের বর্ণনা" -maintainerName: "মেইনটেইনার" -maintainerEmail: "মেইনটেইনারের ইমেইল" -tosUrl: "ব্যবহারের শর্তাবলীর URL" -thisYear: "বছর" -thisMonth: "মাস" -today: "আজ" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "পৃষ্ঠা" -integration: "ইন্টিগ্রেশন" -connectService: "সংযুক্ত করুন" -disconnectService: "সংযোগ বিচ্ছিন্ন করুন" -enableLocalTimeline: "স্থানীয় টাইমলাইন চালু করুন" -enableGlobalTimeline: "গ্লোবাল টাইমলাইন চালু করুন" -disablingTimelinesInfo: "আপনি এই টাইমলাইনগুলি বন্ধ করলেও প্রশাসক এবং মডারেটররা এই টাইমলাইনগুলি ব্যাবহার করতে পারবে" -registration: "নিবন্ধন" -enableRegistration: "নতুন ব্যাবহারকারী নিবন্ধন চালু করুন" -invite: "আমন্ত্রণ" -driveCapacityPerLocalAccount: "প্রত্যেক স্থানীয় ব্যাবহারকারীর জন্য ড্রাইভের জায়গা" -driveCapacityPerRemoteAccount: "প্রত্যেক রিমোট ব্যাবহারকারীর জন্য ড্রাইভের জায়গা" -inMb: "মেগাবাইটে লিখুন" -iconUrl: "আইকনের URL (ফ্যাভিকন, ইত্যাদি)" -bannerUrl: "ব্যানার ছবির URL" -backgroundImageUrl: "পটভূমির চিত্রের URL" -basicInfo: "আপনার ব্যক্তিগত তথ্য" -pinnedUsers: "পিন করা ব্যাবহারকারীগণ" -pinnedUsersDescription: "আপনি যেসব ব্যবহারকারীদের \"ঘুরে দেখুন\" পৃষ্ঠায় পিন করতে চান তাদের বর্ণনা করুন, প্রত্যেকের বর্ণনা আলাদা লাইনে লিখুন" -pinnedPages: "পিন করা পৃষ্ঠাসুমহ" -pinnedPagesDescription: "আপনি যেসকল পৃষ্ঠাসমূহকে \"ঘুরে দেখুন\" পৃষ্ঠায় পিন করতে চান তাদের বর্ণনা করুন, প্রত্যেকের বর্ণনা আলাদা লাইনে লিখুন" -pinnedClipId: "পিনকৃত ক্লিপের ID" -pinnedNotes: "পিন করা নোট" -hcaptcha: "hCaptcha" -enableHcaptcha: "hCaptcha চালু করুন" -hcaptchaSiteKey: "সাইট কী" -hcaptchaSecretKey: "সিক্রেট কী" -recaptcha: "reCAPTCHA" -enableRecaptcha: "reCAPTCHA চালু করুন" -recaptchaSiteKey: "সাইট কী" -recaptchaSecretKey: "সিক্রেট কী" -avoidMultiCaptchaConfirm: "একাধিক Captcha ব্যবহার করলে তারা পরস্পরের কাজে বাধা দিতে পারে। আপনি কি অন্যান্য Captcha নিষ্ক্রিয় করতে চান? আপনি 'বাতিল' ক্লিক করার মাধ্যমে একাধিক Captcha চালু রাখতে পারেন।" -antennas: "অ্যান্টেনা" -manageAntennas: "অ্যান্টেনা ব্যবস্থাপনা" -name: "নাম" -antennaSource: "অ্যান্টেনার উৎস" -antennaKeywords: "যেসব কীওয়ার্ড দেখা হবে" -antennaExcludeKeywords: "যেসব কীওয়ার্ড দেখা হবে না" -antennaKeywordsDescription: "স্পেস দিয়ে আলাদা করলে AND শর্ত তৈরি হবে এবং আলাদা লাইনে লিখলে OR শর্ত তৈরি হবে।" -notifyAntenna: "নতুন নোট সম্পর্কে অবহিত করুন" -withFileAntenna: "শুধুমাত্র ফাইলযুক্ত নোট" -enableServiceworker: "ServiceWorker চালু করুন" -antennaUsersDescription: "প্রত্যেক লাইনে একজন ব্যবহারকারীর নাম লিখুন" -caseSensitive: "ছোট হাতের এবং বড় হাতের অক্ষর নির্দিষ্ট করুন" -withReplies: "জবাবসমুহ যুক্ত করুন" -connectedTo: "আপনি নিম্নলিখিত অ্যাকাউন্টের সাথে সংযুক্ত" -notesAndReplies: "নোটসমূহ এবং জবাবগুলি" -withFiles: "ফাইলগুলি যুক্ত করুন" -silence: "নীরব" -silenceConfirm: "আপনি কি এই ব্যাবহারকারীকের নীরব করতে চান?" -unsilence: "সরব" -unsilenceConfirm: "আপনি কি এই ব্যাবহারকারীকের সরব করতে চান?" -popularUsers: "জনপ্রিয় ব্যবহারকারীগন" -recentlyUpdatedUsers: "সম্প্রতি পোস্ট করা ব্যবহারকারীগন" -recentlyRegisteredUsers: "নতুন যোগ দেওয়া ব্যবহারকারীগন" -recentlyDiscoveredUsers: "নতুন খুঁজে পাওয়া ব্যবহারকারীগন" -exploreUsersCount: "{count} জন ব্যাবহারকারী" -exploreFediverse: "Fediverse ঘুরে দেখুন" -popularTags: "জনপ্রিয় ট্যাগগুলি" -userList: "লিস্ট" -about: "আপনার সম্পর্কে" -aboutMisskey: "Misskey সম্পর্কে" -administrator: "প্রশাসক" -token: "টোকেন" -twoStepAuthentication: "২-ধাপ প্রমাণীকরণ" -moderator: "মডারেটর" -nUsersMentioned: "{n} জনকে উল্লেখ করা হয়েছে" -securityKey: "সিকিউরিটি কী" -securityKeyName: "কী'র নাম" -registerSecurityKey: "সিকিউরিটি কী নিবন্ধন করুন" -lastUsed: "শেষ ব্যাবহার করা হয়েছে" -unregister: "নিবন্ধনমুক্ত হন" -passwordLessLogin: "পাসওয়ার্ড-বিহীন লগইন সেট আপ করুন" -resetPassword: "পাসওয়ার্ড রিসেট করুন" -newPasswordIs: "নতুন পাসওয়ার্ড হচ্ছে \"{password}\"" -reduceUiAnimation: "UI অ্যানিমেশন কমান" -share: "শেয়ার" -notFound: "পাওয়া যায়নি" -notFoundDescription: "এই URL-এর সাথে সম্পর্কিত কোনো পৃষ্ঠা নেই।" -uploadFolder: "আপলোডের জন্য ডিফল্ট ফোল্ডার" -cacheClear: "ক্যাশ পরিষ্কার করুন" -markAsReadAllNotifications: "সমস্ত বিজ্ঞপ্তিগুলি পঠিত হিসাবে চিহ্নিত করুন" -markAsReadAllUnreadNotes: "সমস্ত নোটগুলি পঠিত হিসাবে চিহ্নিত করুন" -markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হিসাবে চিহ্নিত করুন" -help: "সহায়তা" -inputMessageHere: "এখানে মেসেজ লিখুন" -close: "বন্ধ" -group: "গ্রুপ" -groups: "গ্রুপসমূহ" -createGroup: "গ্রুপ তৈরী করুন" -ownedGroups: "আপনার গ্রুপগুলি" -joinedGroups: "যেসব গ্রুপে আপনি আছেন" -invites: "আমন্ত্রণ" -groupName: "গ্রুপের নাম" -members: "সদস্যবৃন্দ" -transfer: "হস্তান্তর" -messagingWithUser: "প্রাইভেট চ্যাট" -messagingWithGroup: "গ্রুপ চ্যাট" -title: "শিরোনাম" -text: "পাঠ্য" -enable: "সক্রিয়" -next: "পরবর্তী" -retype: "পুনঃ প্রবেশ" -noteOf: "{user} এর নোট" -inviteToGroup: "গ্রুপে আমন্ত্রণ জানান" -quoteAttached: "উদ্ধৃত" -quoteQuestion: "উদ্ধৃতি হিসাবে সংযুক্ত করবেন?" -noMessagesYet: "কোন মেসেজ নেই" -newMessageExists: "নতুন মেসেজ পেয়েছেন" -onlyOneFileCanBeAttached: "আপনি মেসেজের সাথে সর্বোচ্চ একটি ফাইল যুক্ত করতে পারবেন" -signinRequired: "দয়া করে লগ ইন করুন" -invitations: "আমন্ত্রণ" -invitationCode: "ইনভাইট কোড" -checking: "পরীক্ষা করা হচ্ছে..." -available: "উপলব্ধ" -unavailable: "অনুপলব্ধ" -usernameInvalidFormat: "আপনি কেবলমাত্র a-z, A-Z, 0-9, _ ব্যবহার করতে পারেন" -tooShort: "খুব ছোট" -tooLong: "খুব বড়" -weakPassword: "দুর্বল পাসওয়ার্ড" -normalPassword: "সাধারণ পাসওয়ার্ড" -strongPassword: "শক্তিশালী পাসওয়ার্ড" -passwordMatched: "মিলেছে" -passwordNotMatched: "মিলেনি" -signinWith: "{x} এর সাহায্যে সাইন ইন করুন" -signinFailed: "লগ ইন করা যায়নি। আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড চেক করুন." -tapSecurityKey: "সিকিউরিটি কী স্পর্শ করুন" -or: "অথবা" -language: "ভাষা" -uiLanguage: "UI এর ভাষা" -groupInvited: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন" -aboutX: "{x} সম্পর্কে" -useOsNativeEmojis: "অপারেটিং সিস্টেমের নেটিভ ইমোজি ব্যবহার করুন" -disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না" -youHaveNoGroups: "আপনার কোন গ্রুপ নেই " -joinOrCreateGroup: "একটি বিদ্যমান গ্রুপের আমন্ত্রণ পান বা একটি নতুন গ্রুপ তৈরি করুন৷" -noHistory: "কোনো ইতিহাস নেই" -signinHistory: "প্রবেশ করার ইতিহাস" -disableAnimatedMfm: "অ্যানিমেটেড MFM অক্ষম করুন" -doing: "প্রক্রিয়া করছে..." -category: "বিভাগ" -tags: "ট‍্যাগসমূহ" -docSource: "ডকুমেন্টের উৎস" -createAccount: "অ্যাকাউন্ট তৈরি করুন" -existingAccount: "বিদ্যমান অ্যাকাউন্ট" -regenerate: "আবারও তৈরি করুন" -fontSize: "ফন্টের আকার" -noFollowRequests: "আপনার কোন ফলোও রিকুয়েস্ট নেই" -openImageInNewTab: "ছবি নতুন ট্যাবে খুলুন" -dashboard: "ড্যাশবোর্ড" -local: "স্থানীয়" -remote: "রিমোট" -total: "মোট" -weekOverWeekChanges: "গত সপ্তাহে" -dayOverDayChanges: "গতকাল" -appearance: "অবয়ব" -clientSettings: "ক্লায়েন্ট সেটিংস" -accountSettings: "অ্যাকাউন্ট সেটিংস" -promotion: "প্রমোশন" -promote: "প্রচার করুন" -numberOfDays: "দিনের সংখ্যা" -hideThisNote: "নোটটি লুকান" -showFeaturedNotesInTimeline: "টাইমলাইনে সুপারিশকৃত নোটগুলি দেখান" -objectStorage: "অবজেক্ট স্টোরেজ" -useObjectStorage: "অবজেক্ট স্টোরেজ ব্যাবহার করুন" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "রেফারেন্স হিসাবে ব্যবহৃত URL। আপনি একটি CDN বা প্রক্সি ব্যবহার করলে URL, S3: 'https://.s3.amazonaws.com', GCS: 'https://storage.googleapis.com/'।" -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "ব্যবহার করা পরিষেবার bucket এর নাম লিখুন। " -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "ফাইলসমূহ এই prefix যুক্ত ফোল্ডারের অধীনে সংরক্ষণ করা হবে।" -objectStorageEndpoint: "এন্ডপয়েন্ট" -objectStorageEndpointDesc: "S3 এর জন্য ফাঁকা রাখুন, অন্যথায় প্রতিটি পরিষেবার এন্ডপয়েন্ট নির্দিষ্ট করুন। ''বা': ' হিসেবে লিখুন।" -objectStorageRegion: "Region" -objectStorageRegionDesc: "'xx-east-1'-এর মতো একটি region নির্দিষ্ট করুন। যদি আপনার পরিষেবাতে region এর ধারণা না থাকে, তাহলে এটি খালি বা 'us-east-1' হওয়া উচিত।" -objectStorageUseSSL: "SSL ব্যাবহার করুন" -objectStorageUseSSLDesc: "API কানেকশনগুলির জন্য যদি https ব্যাবহার না করেন, তাহলে এই অপশনটি বন্ধ করুন" -objectStorageUseProxy: "Proxy ব্যাবহার করুন" -objectStorageUseProxyDesc: "আপনি API সংযোগের জন্য proxy ব্যবহার না করলে, এটি বন্ধ করুন।" -objectStorageSetPublicRead: "আপলোডের উপর ''public-read' সেট করুন" -serverLogs: "সার্ভার লগ" -deleteAll: "সব মুছুন" -showFixedPostForm: "টাইমলাইনের শীর্ষে পোস্ট করার ফর্মটি দেখান" -newNoteRecived: "নতুন নোট আছে" -sounds: "শব্দ" -listen: "শুনুন" -none: "কিছুই না" -showInPage: "পেজে দেখান" -popout: "পপ-আউট" -volume: "আওয়াজের মাত্রা" -masterVolume: "মাস্টার আওয়াজের মাত্রা" -details: "আরও জানুন" -chooseEmoji: "ইমোজি নির্বাচন করুন" -unableToProcess: "কাজটি সম্পন্ন করা যায়নি" -recentUsed: "সম্প্রতি ব্যবহৃত" -install: "ইন্সটল" -uninstall: "আনইন্সটল" -installedApps: "ইন্সটল করা অ্যাপসমূহ" -nothing: "এখানে কিছুই নাই" -installedDate: "ইন্সটল করার তারিখ" -lastUsedDate: "সর্বশেষ ব্যাবহৃত" -state: "অবস্থা" -sort: "সাজান" -ascendingOrder: "ঊর্ধ্বক্রমে" -descendingOrder: "নিম্নক্রমে" -scratchpad: "স্ক্র্যাচপ্যাড" -scratchpadDescription: "স্ক্র্যাচপ্যাড AiScript-এর জন্য একটি পরীক্ষামূলক পরিবেশ প্রদান করে। আপনি মিস্কির সাথে ইন্টারঅ্যাক্ট করে এমন কোড লিখতে, চালাতে এবং তার ফলাফল দেখতে পারেন।" -output: "আউটপুট" -script: "স্ক্রিপ্ট" -disablePagesScript: "পেজগুলোতে AiScript অক্ষম করুন" -updateRemoteUser: "রিমোট ব্যবহারকারীর তথ্য আপডেট করুন" -deleteAllFiles: "সকল ফাইল ডিলিট করুন" -deleteAllFilesConfirm: "সকল ফাইল ডিলিট করতে চান?" -removeAllFollowing: "সকল অনুসরণ বাতিল করুন" -removeAllFollowingDescription: "{host} এর সকল ব্যাবহারকারীকে আর ফলোও করবেন না । যদি ইন্সত্যান্সটির কোন সমস্যা (যেমনঃ ইন্সত্যান্সটি আর নেই) হয়ে থাকে তবে এটি ব্যাবহার করুন । " -userSuspended: "এই ব্যাবহারকারির অ্যাকাউন্ট স্থগিত করা হয়েছে" -userSilenced: "এই ব্যাবহারকারিকে মিউট করা হয়েছে" -yourAccountSuspendedTitle: "এই অ্যাকাউন্টটি স্থগিত করা হয়েছে" -yourAccountSuspendedDescription: "সার্ভারের ব্যবহারের শর্তাবলী লঙ্ঘনের মতো কারণে এই অ্যাকাউন্টটি স্থগিত করা হয়েছে৷ বিস্তারিত জানার জন্য প্রশাসকের সাথে যোগাযোগ করুন । একটি নতুন অ্যাকাউন্ট তৈরি করবেন না দয়া করে ।" -menu: "মেনু" -divider: "খন্ডক" -addItem: "আইটেম যোগ করুন" -relays: "রিলেগুলি" -addRelay: "রিলে যোগ করুন" -inboxUrl: "inbox এর URL" -addedRelays: "যোগকৃত রিলেগুলি" -serviceworkerInfo: "পুশ বিজ্ঞপ্তির জন্য চালু করা লাগবে।" -deletedNote: "ডিলিট করা নোট" -invisibleNote: "অদৃশ্য নোট" -enableInfiniteScroll: "ইনফিনিট স্ক্রল চালু করুন" -visibility: "দৃশ্যমানতা" -poll: "জরিপ" -useCw: "কন্টেন্ট লুকান" -enablePlayer: "ভিডিও প্লেয়ার খুলুন" -disablePlayer: "ভিডিও প্লেয়ার বন্ধ করুন" -expandTweet: "টুইট বিস্তারিত করুন" -themeEditor: "থিম সম্পাদক" -description: "বর্ণনা" -describeFile: "ক্যাপশন যোগ করুন" -enterFileDescription: "ক্যাপশন যোগ করুন" -author: "লেখক" -leaveConfirm: "কিছু পরিবর্তন সেভ করা হয়নি। আপনি কি চলে যেতে চান?" -manage: "পরিচালনা" -plugins: "প্লাগইনসমূহ" -deck: "ডেক" -undeck: "ডেকমুক্ত করুন" -useBlurEffectForModal: "মোডালের জন্য ব্লার ইফেক্ট ব্যবহার করুন" -useFullReactionPicker: "সম্পূর্ণ বৈশিষ্ট্যযুক্ত রিঅ্যাকশন পিকার ব্যবহার করুন" -width: "প্রস্থ" -height: "উচ্চতা" -large: "বড়" -medium: "মাঝারি" -small: "ছোট" -generateAccessToken: "অ্যাক্সেস টোকেন তৈরি করুন" -permission: "অনুমতি" -enableAll: "সবগুলি সক্রিয় করুন" -disableAll: "সবগুলি নিষ্ক্রিয় করুন" -tokenRequested: "অ্যাকাউন্টে অ্যাক্সেস প্রদান করবেন" -pluginTokenRequestedDescription: "এই প্লাগইনটি এখানে দেওয়া অনুমুতিসমূহ ব্যাবহার করবে" -notificationType: "বিজ্ঞপ্তির ধরন" -edit: "সম্পাদনা" -useStarForReactionFallback: "রিঅ্যাকশনের ইমোজি না জানলে ★ ব্যবহার করুন" -emailServer: "ইমেইল সার্ভার" -enableEmail: "ইমেইল বিতরণ চালু করুন" -emailConfigInfo: "আপনার ইমেল ঠিকানা নিশ্চিত করতে এবং আপনার পাসওয়ার্ড পুনরায় সেট করতে ব্যবহৃত হয়" -email: "ইমেইল" -emailAddress: "ইমেইল ঠিকানা" -smtpConfig: "SMTP সার্ভার কনফিগারেশন" -smtpHost: "হোস্ট" -smtpPort: "পোর্ট" -smtpUser: "ব্যবহারকারীর নাম" -smtpPass: "পাসওয়ার্ড" -emptyToDisableSmtpAuth: "আপনি ব্যবহারকারীর নাম এবং পাসওয়ার্ড ফাঁকা রেখে SMTP প্রমাণীকরণ নিষ্ক্রিয় করতে পারেন।" -smtpSecure: "SMTP সংযোগের জন্য SSL/TLS ব্যবহার করুন" -smtpSecureInfo: "STARTTLS ব্যবহার করার সময় এটি বন্ধ করুন।" -testEmail: "ইমেল বিতরণ পরীক্ষা করুন" -wordMute: "বিশেষ কোন শব্দকে মিউট করুন" -regexpError: "রেগুলার এক্সপ্রেশন ত্রুটি" -regexpErrorDescription: "{tab} ওয়ার্ড মিউটের {line} লাইনে রেগুলার এক্সপ্রেশনে একটি ত্রুটি ছিল:" -instanceMute: "মিউট করা ইন্সত্যান্সগুলি" -userSaysSomething: "{name} কিছু বলেছে" -makeActive: "সক্রিয় করা" -display: "প্রদর্শন" -copy: "অনুলিপি" -metrics: "মেট্রিক্স" -overview: "সারাংশ" -logs: "লগ" -delayed: "দেরি করুন" -database: "ডেটাবেজ" -channel: "চ্যানেলগুলি" -create: "তৈরি করুন" -notificationSetting: "বিজ্ঞপ্তির সেটিংস" -notificationSettingDesc: "কি ধরনের বিজ্ঞপ্তি পাবেন তা নির্ধারণ করুন" -useGlobalSetting: "গ্লোবাল সেটিংস ব্যাবহার করুন" -useGlobalSettingDesc: "চালু করলে, আপনার অ্যাকাউন্টের বিজ্ঞপ্তি সেটিংস ব্যবহার করা হবে। বন্ধ করলে, এটি পৃথকভাবে সেট করা যেতে পারে।" -other: "অন্যান্য" -regenerateLoginToken: "লগইন টোকেন আবার বানান" -regenerateLoginTokenDescription: "লগ ইন করার জন্য ব্যবহৃত অভ্যন্তরীণ টোকেন পুনরায় তৈরি করে। সাধারণত আপনার এটি করার দরকার নেই। এটি করলে, আপনি সমস্ত ডিভাইসে লগ আউট হয়ে যাবেন৷" -setMultipleBySeparatingWithSpace: "আপনি একটি স্পেস দিয়ে আলাদা করে একাধিক এন্ট্রি দিতে পারেন।" -fileIdOrUrl: "ফাইল ID অথবা URL" -behavior: "আচরণ" -sample: "উদাহরণ" -abuseReports: "অভিযোগ" -reportAbuse: "অভিযোগ" -reportAbuseOf: "{name} এ অভিযোগ করুন" -fillAbuseReportDescription: "রিপোর্টের কারণ বর্ণনা করুন. একটি বিশেষ নোট এর জন্য রিপোর্টটি হয়ে থাকে তবে তার URL টি অন্তর্ভুক্ত করুন। " -abuseReported: "আপনার অভিযোগটি দাখিল করা হয়েছে। আপনাকে ধন্যবাদ।" -reporter: "অভিযোগকারী" -reporteeOrigin: "অভিযোগটির উৎস" -reporterOrigin: "অভিযোগকারীর উৎস" -forwardReport: "রিমোট ইন্সত্যান্সে অভিযোগটি পাঠান" -forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন্সত্যান্সে পাঠানো হবে না এবং একটি বেনামী সিস্টেম অ্যাকাউন্ট হিসাবে প্রদর্শিত হবে।" -send: "পাঠান" -abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন" -openInNewTab: "নতুন ট্যাবে খুলুন" -openInSideView: "সাইড ভিউতে খুলুন" -defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন" -editTheseSettingsMayBreakAccount: "এসব সেটিংস সম্পাদনা করলে আপনার অ্যাকাউন্টের ক্ষতি হতে পারে। " -instanceTicker: "ইন্সত্যান্সে নোটের তথ্য" -waitingFor: "{x} এর জন্য অপেক্ষা করা হচ্ছে" -random: "র‍্যান্ডম" -system: "সিস্টেম" -switchUi: "UI পরিবর্তন করুন" -desktop: "ডেস্কটপ" -clip: "ক্লিপ" -createNew: "নতুন" -optional: "প্রয়োজনীয় নয়" -createNewClip: "নতুন ক্লিপ তৈরি করুন" -public: "সর্বজনীন" -i18nInfo: "Misskey স্বেচ্ছাসেবকদের দ্বারা বিভিন্ন ভাষায় অনুবাদ করা হচ্ছে। আপনি {link} এ গিয়ে অনুবাদে সহযোগিতা করতে পারেন।" -manageAccessTokens: "অ্যাক্সেস টোকেন পরিচালনা করুন" -accountInfo: "অ্যাকাউন্টের তথ্য" -notesCount: "নোটের সংখ্যা" -repliesCount: "জবাবের সংখ্যা" -renotesCount: "রিনোটের সংখ্যা" -repliedCount: "জবাব গ্রহন করা হয়েছে" -renotedCount: "রিনোট পেয়েছেন" -followingCount: "যাদেরকে অনুসরণ করেন, তাদের সংখ্যা" -followersCount: "অনুসরণকারীদের সংখ্যা" -sentReactionsCount: "রিঅ্যাকশন পাঠানো হয়েছে" -receivedReactionsCount: "রিঅ্যাকশন পেয়েছেন" -pollVotesCount: "পোল ভোট দিয়েছেন" -pollVotedCount: "পোল ভোট পেয়েছেন" -yes: "হ্যাঁ" -no: "না" -driveFilesCount: "ড্রাইভে ফাইল এর সংখ্যা" -driveUsage: "ড্রাইভ এর ব্যাবহার" -noCrawle: "ক্রলার ইন্ডেক্সিং বন্ধ করুন" -noCrawleDescription: "সার্চ ইঞ্জিনগুলিকে আপনার প্রোফাইল, নোট, পেজ ইত্যাদি ইনডেক্স করতে নিষেধ করুন। " -lockedAccountInfo: "এমনকি আপনি আপনার অনুসরণকারীদের বেছে বেছে অনুমোদন করলেও, যে কেউ আপনার নোটগুলি দেখতে পাবে, যতক্ষণ না আপনি আপনার নোটগুলিকে \"অনুসারীদের জন্য\" হিসাবে সেট না করেন৷" -alwaysMarkSensitive: "সর্বদা স্পর্শকাতর হিসাবে চিহ্নিত করুন" -loadRawImages: "সংযুক্ত ছবির থাম্বনেইলটি দেখানর পরিবর্তে আসল ছবি দেখান" -disableShowingAnimatedImages: "অ্যানিমেটেড চিত্র দেখানো বন্ধ করুন" -verificationEmailSent: "নিশ্চিতকরণ ইমেল পাঠানো হয়েছে। সেটআপ সম্পূর্ণ করতে ইমেল এর লিঙ্ক অনুসরণ করুন।" -notSet: "সেট করা হয়নি" -emailVerified: "ইমেইল নিশ্চিত করা হয়েছে" -noteFavoritesCount: "পছন্দ করা নোটের সংখ্যা" -pageLikesCount: "পেজ লাইক করেছেন" -pageLikedCount: "পেজ লাইক পেয়েছেন" -contact: "পরিচিতি সমূহ" -useSystemFont: "সিস্টেম ফন্ট ব্যাবহার করুন" -clips: "ক্লিপগুলি " -experimentalFeatures: "পরীক্ষামূলক বৈশিষ্ট্যগুলি" -developer: "ডেভেলপার" -makeExplorable: "অ্যাকাউন্ট \"ঘুরে দেখুন\" পৃষ্ঠায় দেখান" -makeExplorableDescription: "আপনি এটি বন্ধ করলে, আপনার অ্যাকাউন্ট \"ঘুরে দেখুন\" পৃষ্ঠায় প্রদর্শিত হবে না।" -showGapBetweenNotesInTimeline: "টাইমলাইন এবং নোটের মাঝে ফাকা জায়গা রাখুন" -duplicate: "প্রতিরূপ" -left: "বাম" -center: "মাঝখান" -wide: "চওড়া" -narrow: "সংকীর্ণ" -reloadToApplySetting: "পৃষ্ঠাটি রিলোড করার পর সেটিংসটি প্রয়োগ করা হবে। আপনি কি এখন রিলোড করতে চান?" -needReloadToApply: "পৃষ্ঠাটি রিলোড করার পর সেটিংসটি প্রয়োগ করা হবে।" -showTitlebar: "টাইটেল বার দেখান" -clearCache: "ক্যাশ পরিষ্কার করুন" -onlineUsersCount: "{n} জন ব্যাবহারকারী অনলাইন" -nUsers: "{n} জন ব্যাবহারকারী" -nNotes: "{n} টি নোট" -sendErrorReports: "ক্রুটি প্রতিবেদন পাঠান" -sendErrorReportsDescription: "চালু থাকলে, বিস্তারিত ত্রুটির তথ্য Misskey-এর সাথে শেয়ার করা হয়। যা সফ্টওয়্যারটির গুণমান উন্নত করতে সাহায্য করে। ত্রুটির তথ্যের মধ্যে রয়েছে OS সংস্করণ, ব্রাউজারের ধরন, কর্মের ইতিহাস ইত্যাদি।" -myTheme: "আমার থিম" -backgroundColor: "পটভূমির রং" -accentColor: "এক্সেন্টের রং" -textColor: "লেখার রং" -saveAs: "এইরূপে সংরক্ষণ করুন" -advanced: "উন্নত" -value: "মান" -createdAt: "তৈরি হয়েছে" -updatedAt: "শেষ হালনাগাদ হয়েছে" -saveConfirm: "পরিবর্তনগুলি সংরক্ষণ করতে চান?" -deleteConfirm: "আসলেই মুছে ফেলতে চান?" -invalidValue: "অগ্রহণযোগ্য মান" -registry: "রেজিস্ট্রি" -closeAccount: "অ্যাকাউন্ট বন্ধ করুন" -currentVersion: "বর্তমান সংস্করণ" -latestVersion: "সর্বশেষ সংস্করণ" -youAreRunningUpToDateClient: "আপনি সবচেয়ে নতুন ক্লায়েন্ট ব্যাবহার করছেন" -newVersionOfClientAvailable: "আপনার ক্লায়েন্টের একটি নতুন ভার্সন চলে এসেছে" -usageAmount: "ব্যাবহার" -capacity: "ধারণক্ষমতা" -inUse: "ব্যবহৃত" -editCode: "কোড সম্পাদনা করুন" -apply: "প্রয়োগ করুন" -receiveAnnouncementFromInstance: "এই ইন্সট্যান্স থেকে বিজ্ঞপ্তি পান" -emailNotification: "ইমেইল বিজ্ঞপ্তি" -publish: "প্রকাশ" -inChannelSearch: "চ্যানেলে খুঁজুন" -useReactionPickerForContextMenu: "রাইট ক্লিকের মাধ্যমে রিঅ্যাকশন পিকার খুলুন" -typingUsers: "{users} লেখছে" -jumpToSpecifiedDate: "একটি নির্দিষ্ট তারিখে যান" -showingPastTimeline: "অতীতের টাইমলাইন দেখানো হচ্ছে" -clear: "পরিষ্কার" -markAllAsRead: "সব পঠিত হিসেবে চিহ্নিত করুন" -goBack: "পিছনে" -unlikeConfirm: "আসলেই লাইক সরিয়ে নিবেন?" -fullView: "ফুল ভিউ" -quitFullView: "ফুল ভিউ বন্ধ করুন" -addDescription: "বর্ণনা যোগ করুন" -userPagePinTip: "আপনি প্রতিটি নোটের জন্য মেনু থেকে \"প্রোফাইলে পিন করুন\" নির্বাচন করে আপনার নোটগুলি এখানে প্রদর্শন করতে পারেন।" -notSpecifiedMentionWarning: "প্রাপক ছাড়াও এই নোটে অন্য ব্যাবহারকারীদের উল্লেখ্য করা হয়েছে" -info: "আপনার সম্পর্কে" -userInfo: "ব্যবহারকারীর তথ্য" -unknown: "অজানা" -onlineStatus: "অনলাইন স্ট্যাটাস" -hideOnlineStatus: "অনলাইন স্ট্যাটাস লুকান" -hideOnlineStatusDescription: "অনলাইন স্ট্যাটাস লুকিয়ে রাখলে সার্চের মতো কিছু ফাংশনের সুবিধা কমে যায়।" -online: "অনলাইন" -active: "অ্যাকটিভ" -offline: "অফলাইন" -notRecommended: "সুপারিশ করা হয় না" -botProtection: "বট প্রোটেকশন" -instanceBlocking: "ব্লক করা ইন্সট্যান্সগুলি" -selectAccount: "অ্যাকাউন্ট নির্বাচন" -switchAccount: "অ্যাকাউন্ট পাল্টান" -enabled: "চালু" -disabled: "বন্ধ" -quickAction: "কুইক অ্যাকশন" -user: "ব্যবহারকারীগণ" -administration: "পরিচালনা" -accounts: "অ্যাকাউন্টগুলি" -switch: "পাল্টান" -noMaintainerInformationWarning: "প্রশাসকের তথ্য সেট করা হয়নি।" -noBotProtectionWarning: "বট প্রোটেকশন সেট করা হয়নি।" -configure: "কনফিগার করুন" -postToGallery: "গ্যালারী পোস্ট তৈরি করুন" -gallery: "গ্যালারী" -recentPosts: "নতুন পোস্ট" -popularPosts: "জনপ্রিয় পোস্ট" -shareWithNote: "নোটের মাধ্যমে শেয়ার করুন" -ads: "বিজ্ঞাপন" -expiration: "নির্দিষ্ট সময়সীমা" -memo: "মেমো" -priority: "অগ্রাধিকার" -high: "উচ্চ" -middle: "মাঝারি" -low: "নিম্ন" -emailNotConfiguredWarning: "ইমেইল অ্যাড্রেস সেট করা হয়নি।" -ratio: "অনুপাত" -previewNoteText: "প্রিভিউ দেখান" -customCss: "কাস্টম CSS" -customCssWarn: "এই ব্যাপারে অভিজ্ঞতা না থাকলে এই সেটিংটি ব্যাবহার করবেন না। অনুপযুক্ত সেটিংস ক্লায়েন্টকে স্বাভাবিকভাবে ব্যবহার করতে বাধা দিতে পারে।" -global: "গ্লোবাল" -squareAvatars: "চারকোনা প্রোফাইল পিকচার দেখান " -sent: "পাঠান" -received: "প্রাপ্ত" -searchResult: "অনুসন্ধানের ফলাফল" -hashtags: "হ্যাশট্যাগ" -troubleshooting: "ট্রাবলশুটিং" -useBlurEffect: "UI তে ব্লার ইফেক্ট ব্যাবহার করুন" -learnMore: "আরও জানুন" -misskeyUpdated: "Misskey আপডেট করা হয়েছে!" -whatIsNew: "পরিবর্তনগুলি দেখান" -translate: "অনুবাদ" -translatedFrom: "{x} হতে অনুবাদ করা" -accountDeletionInProgress: "অ্যাকাউন্ট মুছে ফেলা হচ্ছে" -usernameInfo: "একটি নাম যা সার্ভারে আপনার অ্যাকাউন্টটিকে অনন্যভাবে সনাক্ত করে। আপনি বর্ণমালা (a ~ z, A ~ Z), সংখ্যা (0 ~ 9), এবং আন্ডারস্কোর (_) ব্যবহার করতে পারেন। ব্যবহারকারীর নাম পরে পরিবর্তন করা যাবে না।" -aiChanMode: "Ai মোড" -keepCw: "CW রাখুন" -pubSub: "Pub/Sub অ্যাকাউন্টগুলো" -lastCommunication: "শেষ যোগাযোগ" -resolved: "সমাধান হয়েছে" -unresolved: "সমাধান হয়নি" -breakFollow: "অনুসরণ করা বন্ধ" -itsOn: "চালু" -itsOff: "বন্ধ" -emailRequiredForSignup: "অ্যাকাউন্ট তৈরির জন্য ইমেইল এর দরকার পড়বে" -unread: "অপঠিত" -filter: "ফিল্টার" -controlPanel: "নিয়ন্ত্রন কেন্দ্র" -manageAccounts: "অ্যাকাউন্টগুলি পরিচালনা করুন" -makeReactionsPublic: "রিঅ্যাকশনের ইতিহাস উন্মুক্ত করুন" -makeReactionsPublicDescription: "আপনার পূর্ববর্তী রিঅ্যাকশনগুলির তালিকা যে কারও কাছে দৃশ্যমান হবে।" -classic: "ক্লাসিক" -muteThread: "থ্রেড মিউট করুন" -unmuteThread: "থ্রেড আনমিউট করুন" -ffVisibility: "অনুসরণ/অনুসরণকারীদের দৃশ্যমান্যতা" -ffVisibilityDescription: "আপনি কাকে অনুসরণ করেন এবং কে আপনাকে অনুসরণ করে, সেটা কারা দেখতে পাবে তা নির্ধারণ করে।" -continueThread: "আরো থ্রেড দেখুন" -deleteAccountConfirm: "আপনার অ্যাকাউন্ট মুছে ফেলা হবে। ঠিক আছে?" -incorrectPassword: "আপনার দেওয়া পাসওয়ার্ডটি ভুল।" -voteConfirm: "\"{choice}\" এ ভোট দিতে চান?" -hide: "লুকান" -leaveGroup: "গ্রুপ ছেড়ে চলে যান" -leaveGroupConfirm: "\"{name}\" গ্রুপ ছেড়ে চলে যেতে চান?" -useDrawerReactionPickerForMobile: "মোবাইলে রিঅ্যাকশন পিকারকে ড্রয়ারে প্রদর্শন করুন" -welcomeBackWithName: "আবার স্বাগতম, {name}" -clickToFinishEmailVerification: " [{ok}] ক্লিক করার মাধ্যমে আপনার ইমেল ঠিকানা নিশ্চিত করুন।" -overridedDeviceKind: "ডিভাইসের ধরন" -smartphone: "স্মার্টফোন" -tablet: "ট্যাবলেট" -auto: "স্বয়ংক্রিয়" -themeColor: "থিমের রং" -size: "আকার" -numberOfColumn: "কলামের সংখ্যা" -searchByGoogle: "গুগল" -instanceDefaultLightTheme: "ইন্সট্যান্সের ডিফল্ট লাইট থিম" -instanceDefaultDarkTheme: "ইন্সট্যান্সের ডিফল্ট ডার্ক থিম" -instanceDefaultThemeDescription: "অবজেক্ট ফরম্যাটে থিম কোড লিখুন" -mutePeriod: "মিউটের সময়কাল" -indefinitely: "অনির্দিষ্ট" -tenMinutes: "১০ মিনিট" -oneHour: "১ ঘণ্টা" -oneDay: "একদিন" -oneWeek: "এক সপ্তাহ" -reflectMayTakeTime: "এটির কাজ দেখা যেতে কিছুটা সময় লাগতে পারে।" -failedToFetchAccountInformation: "অ্যাকাউন্টের তথ্য উদ্ধার করা যায়নি" -rateLimitExceeded: "রেট লিমিট ছাড়িয়ে গেছে " -file: "ফাইলগুলি" -reverse: "উল্টান" -colored: "রঙ্গিন" -label: "লেবেল" -localOnly: "শুধুমাত্র লোকাল" -account: "অ্যাকাউন্টগুলি" -_emailUnavailable: - used: "এই ইমেইল ঠিকানাটি ইতোমধ্যে ব্যবহৃত হয়েছে" - format: "এই ইমেল ঠিকানাটি সঠিকভাবে লিখা হয়নি" - disposable: "অস্থায়ী ইমেইল ঠিকানা ব্যাবহার করা যাবে না" - mx: "ইমেইল ​​সার্ভারটি ঠিক নাই" - smtp: "ইমেইল সার্ভারটি সাড়া দিচ্ছে না" -_ffVisibility: - public: "প্রকাশ" - followers: "শুধুমাত্র অনুসরণকারীদের কাছে দৃশ্যমান" - private: "ব্যাক্তিগত" -_signup: - almostThere: "প্রায় শেষ" - emailAddressInfo: "আপনি যে ইমেল ঠিকানাটি ব্যবহার করবেন সেটি লিখুন। আপনার ইমেইল ঠিকানা প্রকাশ করা হবে না।" - emailSent: "আপনার দেওয়া ইমেল ঠিকানায় ({email}) একটি নিশ্চিতকরণ ইমেল পাঠানো হয়েছে। অ্যাকাউন্ট তৈরি সম্পূর্ণ করতে ইমেলের লিঙ্কটি অ্যাক্সেস করুন।" -_accountDelete: - accountDelete: "অ্যাকাউন্ট মুছে ফেলুন" - mayTakeTime: "একটি অ্যাকাউন্ট মুছে ফেলা একটি দীর্ঘ প্রক্রিয়া এবং আপনি যদি প্রচুর পরিমাণে সামগ্রী তৈরি করে থাকেন বা ফাইল আপলোড করেন তবে এটি সম্পূর্ণ হতে দীর্ঘ সময় নিতে পারে।" - sendEmail: "অ্যাকাউন্ট মুছে ফেলা সম্পূর্ণ হলে, নিবন্ধিত ইমেল ঠিকানায় একটি বিজ্ঞপ্তি পাঠানো হবে।" - requestAccountDelete: "অ্যাকাউন্ট মুছে ফেলার অনুরোধ করুন" - started: "মুছে ফেলার প্রক্রিয়া শুরু হয়েছে।" - inProgress: "মুছে ফেলার কাজ চলছে" -_ad: - back: "পিছনে" - reduceFrequencyOfThisAd: "এই বিজ্ঞাপনটি কম দেখান" -_forgotPassword: - enterEmail: "আপনি আপনার অ্যাকাউন্টের জন্য নিবন্ধিত ইমেল ঠিকানা লিখুন. সেই ঠিকানায় একটি পাসওয়ার্ড রিসেট লিঙ্ক পাঠানো হবে।" - ifNoEmail: "আপনি যদি নিবন্ধনের সময় ই-মেইল ঠিকানা না দিয়ে থাকেন, তাহলে অনুগ্রহ করে প্রশাসকের সাথে যোগাযোগ করুন।" - contactAdmin: "এই ইন্সট্যান্সটি ইমেইল ব্যাবহার করে না, তাই আপনার পাসওয়ার্ড পুনরায় সেট করতে প্রশাসকের সাথে যোগাযোগ করুন৷" -_gallery: - my: "আমার গ্যালারী" - liked: "পছন্দ করা পোস্ট" - like: "পছন্দ করা" - unlike: "পছন্দ সরান" -_email: - _follow: - title: "আপনাকে অনুসরণ করছে" - _receiveFollowRequest: - title: "অনুসরণ করার অনুরোধ পেয়েছেন" -_plugin: - install: "প্লাগইন ইন্সটল করুন" - installWarn: "অবিশ্বস্ত প্লাগইন ইনস্টল করবেন না।" - manage: "প্লাগইন ম্যানেজ করুন" -_registry: - scope: "স্কোপ" - key: "কী" - keys: "কী - সমূহ" - domain: "ডোমেন" - createKey: "কী বানান" -_aboutMisskey: - about: "Misskey, একটি ওপেন সোর্স সফ্টওয়্যার যা 2014 সাল থেকে syuilo তৈরি করছেন।" - contributors: "প্রধান কন্ট্রিবিউটারগণ" - allContributors: "সকল কন্ট্রিবিউটারগণ" - source: "সোর্স কোড" - translation: "Misskey অনুবাদ করুন" - donate: "Misskey তে দান করুন" - morePatrons: "আরও অনেকে আমাদের সাহায্য করছেন। তাদের সবাইকে ধন্যবাদ 🥰" - patrons: "সমর্থনকারী" -_nsfw: - respect: "স্পর্শকাতর মিডিয়া লুকান" - ignore: "স্পর্শকাতর মিডিয়া লুকাবেন না" - force: "সকল মিডিয়া লুকান" -_mfm: - cheatSheet: "MFM চিটশিট" - intro: "MFM একটি মার্কআপ ভাষা যা Misskey-এর মধ্যে বিভিন্ন জায়গায় ব্যবহার করা যেতে পারে। এখানে আপনি MFM-এর সিনট্যাক্সগুলির একটি তালিকা দেখতে পারবেন।" - dummy: "মিসকি ফেডিভার্সের বিশ্বকে প্রসারিত করে" - mention: "উল্লেখ" - mentionDescription: "@ চিহ্ন + ব্যবহারকারীর নাম একটি নির্দিষ্ট ব্যবহারকারীকে নির্দেশ করতে ব্যবহার করা যায়।" - hashtag: "হ্যাশট্যাগ" - hashtagDescription: "আপনি একটি # চিহ্ন + ট্যাগ সহ একটি হ্যাশট্যাগ নির্দেশ করতে পারেন।" - url: "URL" - urlDescription: "URL দেখানো সম্ভব।" - link: "লিংক" - linkDescription: "আপনি পাঠ্যের একটি নির্দিষ্ট অংশকে URL হিসাবে দেখাতে পারেন৷" - bold: "গাঢ়" - boldDescription: "অক্ষরগুলিকে মোটাকরে প্রদর্শন করা হবে।" - small: "ছোট" - smallDescription: "লেখা ছোট এবং পাতলা করে দেখানো হবে।" - center: "সেন্টার" - centerDescription: "লেখা মাঝ বরাবর দেখানো হবে" - inlineCode: "কোড (ইনলাইন)" - inlineCodeDescription: " প্রোগ্রামের কোডের জন্য ইনলাইন সিনট্যাক্স হাইলাইটিং করা হবে" - blockCode: "কোড (ব্লক)" - blockCodeDescription: "মাল্টি-লাইন প্রোগ্রামের কোডের জন্য সিনট্যাক্স হাইলাইট করে।" - inlineMath: "গাণিতিক সূত্র (ইনলাইন)" - inlineMathDescription: "গাণিতিক সূত্র প্রদর্শন করুন (KaTeX) ইনলাইন।" - blockMath: "গাণিতিক সূত্র (ব্লক)" - blockMathDescription: "একটি ব্লকে একাধিক লাইনের গাণিতিক সূত্র প্রদর্শন করুন (KaTeX)।" - quote: "উদ্ধৃতি" - quoteDescription: "বিষয়বস্তুকে একটি উদ্ধৃতি হিসাবে দেখানো হবে।" - emoji: "স্বনির্ধারিত ইমোজিগুলি" - emojiDescription: "আপনি একটি কাস্টম ইমোজির নাম কোলনে আবদ্ধ করে কাস্টম ইমোজিটি দেখাতে পারেন৷" - search: "খুঁজুন" - searchDescription: "পূর্ব-টাইপ করা পাঠ্য সহ একটি অনুসন্ধান বাক্স প্রদর্শন করে।" - flip: "উল্টান" - flipDescription: "বিষয়বস্তু উপরে/নীচে বা বাম/ডানে উল্টান।" - jelly: "অ্যানিমেশন (জেলি)" - jellyDescription: "জেলির মত অ্যানিমেশন দেখায়।" - tada: "অ্যানিমেশন (টাডা)" - tadaDescription: "\"টাডা!\" এর মত অ্যানিমেশন দেখায়।" - jump: "অ্যানিমেশন (লাফ)" - jumpDescription: "বিষয়বস্তুতে লাফ মারার মত অ্যানিমেশন দেখায়।" - bounce: "অ্যানিমেশন (তিড়িং বিড়িং)" - bounceDescription: "তিড়িং বিড়িং করার মত অ্যানিমেশন দেখায়।" - shake: "অ্যানিমেশন (ঝাঁকি)" - shakeDescription: "ঝাঁকির মত অ্যানিমেশন দেখায়।" - twitch: "অ্যানিমেশন (মোচড়ানো)" - twitchDescription: "মোচড়ানোর মত অ্যানিমেশন দেখায়।" - spin: "অ্যানিমেশন (ঘুরা)" - spinDescription: "ঘুরার মত অ্যানিমেশন দেখায়।" - x2: "বড়" - x2Description: "বিষয়বস্তু বড় করে দেখায়।" - x3: "অনেক বড়" - x3Description: "বিষয়বস্তু আরও বড় করে দেখায়।" - x4: "অস্বাভাবিক বড়" - x4Description: "বিষয়বস্তুকে আগের থেকেও আরও বড় করে দেখায়।" - blur: "ব্লার" - blurDescription: "বিষয়বস্তুকে ব্লার করতে পারেন। আপনি এর উপর মাউস কার্সার রাখলে, এটি পরিষ্কারভাবে দেখতে পাবেন।" - font: "ফন্ট" - fontDescription: "বিষয়বস্তুকে কোন ফন্টে দেখানো হবে তা নির্ধারণ করে।" - rainbow: "রেইনবো" - rainbowDescription: "বিষয়বস্তুকে রংধনুর রং গুলিতে প্রদর্শন করে।" - sparkle: "চিক চিক" - sparkleDescription: "বিষয়বস্তুকে একটি চিকচিকে কণা প্রভাব দেয়।" - rotate: "ঘুরান" - rotateDescription: "বিষয়বস্তুকে একটি নির্দিষ্ট কোনে ঘুরায়।" -_instanceTicker: - none: "দেখাবেন না" - remote: "রিমোট ব্যাবহারকারীদের জন্য দেখান" - always: "সর্বদা দেখান" -_serverDisconnectedBehavior: - reload: "স্বয়ংক্রিয়ভাবে রিলোড" - dialog: "সতর্কতা ডায়ালগ দেখান" - quiet: "অগচরী সতর্কতা দেখান" -_channel: - create: "চ্যানেল বানান" - edit: "চ্যানেল সম্পাদনা করুন" - setBanner: "ব্যানার সেট করুন" - removeBanner: "ব্যানার সরান" - featured: "বর্তমানে জনপ্রিয়" - owned: "নিজের" - following: "অনুসরণ করা হচ্ছে" - usersCount: "{n} জন অংশগ্রহণকারী" - notesCount: "{n} টি নোট" -_menuDisplay: - sideFull: "পাশে" - sideIcon: "পাশে (আইকন)" - top: "শীর্ষে" - hide: "লুকান" -_wordMute: - muteWords: "নিঃশব্দ করা শব্দগুলি" - muteWordsDescription: "স্পেস দিয়ে আলাদা করলে AND শর্ত তৈরি হবে এবং আলাদা লাইনে লিখলে OR শর্ত তৈরি হবে।" - muteWordsDescription2: "রেগুলার এক্সপ্রেশন ব্যবহার করতে স্ল্যাশ দিয়ে কীওয়ার্ডকে ঘিরে রাখুন।" - softDescription: "টাইমলাইন থেকে নির্দিষ্ট শর্তানুযায়ী নোট লুকিয়ে রাখে।" - hardDescription: "নির্দিষ্ট শর্তানুযায়ী নোটগুলিকে টাইমলাইন থেকে বাদ দেয়। আপনি শর্ত পরিবর্তন করলেও যে নোটগুলি যোগ করা হয়নি সেগুলি বাদ দেওয়া হবে।" - soft: "নমনীয়" - hard: "কঠোর" - mutedNotes: "মিউট করা নোটগুলি" -_instanceMute: - instanceMuteDescription: "কনফিগার করা ইন্সট্যান্সের সব নোট এবং রিনোট মিউট করুন, মিউট করা ইন্সট্যান্সের ব্যবহারকারীদের উত্তর সহ।" - instanceMuteDescription2: "প্রতিটিকে আলাদা লাইনে লিখুন" - title: "কনফিগার করা ইন্সট্যান্সের নোটগুলিকে লুকিয়ে রাখে।" - heading: "মিউট করা ইন্সত্যান্সের তালিকা" -_theme: - explore: "থিমগুলি ঘুরে দেখুন" - install: "থিম ইনস্টল করুন" - manage: "থিম ব্যাবস্থাপনা" - code: "থিম কোড" - description: "বর্ণনা" - installed: "{name} ইন্সটল করা হয়েছে" - installedThemes: "ইন্সটল করা থিমসমূহ" - builtinThemes: "বিল্ট-ইন থিমসমূহ" - alreadyInstalled: "এই থিমটি ইতিমধ্যে ইন্সটল করা হয়েছে" - invalid: "থিমটির ফরম্যাট সঠিক নয়" - make: "থিম বানান" - base: "বেস" - addConstant: "ধ্রুবক যোগ করুন" - constant: "ধ্রুবক" - defaultValue: "ডিফল্ট মান" - color: "রং" - refProp: "প্রোপার্টি রেফারেন্স করুন" - refConst: "ধ্রুবক রেফারেন্স করুন" - key: "কী" - func: "ফাংশন" - funcKind: "ফাংশনের ধরন" - argument: "আর্গুমেন্ট" - basedProp: "রেফারেন্স করা প্রোপার্টি" - alpha: "অস্বচ্ছতা" - darken: "অন্ধকার করুন" - lighten: "উজ্জ্বল করুন" - inputConstantName: "ধ্রুবকটির নাম লিখুন" - importInfo: "আপনি এখানে থিম কোড পেস্ট করতে পারেন এবং সেটিকে এডিটরে ইম্পোর্ট করতে পারেন" - deleteConstantConfirm: "আপনি কি ধ্রুবক {const} মুছে ফেলতে চান?" - keys: - accent: "অ্যাকসেন্ট" - bg: "পটভূমি" - fg: "লেখা" - focus: "ফোকাস" - indicator: "ইনডিকেটর" - panel: "প্যানেল" - shadow: "ছায়া" - header: "হেডার" - navBg: "সাইডবারের পটভূমি" - navFg: "সাইডবারের পাঠ্য" - navHoverFg: "সাইডবারের পাঠ্য (হভার)" - navActive: "সাইডবারের পাঠ্য (অ্যাকটিভ)" - navIndicator: "সাইডবারের ইনডিকেটর" - link: "লিংক" - hashtag: "হ্যাশট্যাগ" - mention: "উল্লেখ" - mentionMe: "আপনাকে উল্লেখ্য করা" - renote: "রিনোট" - modalBg: "মোডালের পটভূমি" - divider: "খন্ডক" - scrollbarHandle: "স্ক্রলবার হ্যান্ডেল" - scrollbarHandleHover: "স্ক্রলবার হ্যান্ডেল (হভার)" - dateLabelFg: "তারিখ লেবেলের পাঠ্য" - infoBg: "তথ্যের পটভূমি" - infoFg: "তথ্যের পাঠ্য" - infoWarnBg: "ওয়ার্নিং এর পটভূমি" - infoWarnFg: "ওয়ার্নিং এর পাঠ্য" - cwBg: "CW বাটনের পটভূমি" - cwFg: "CW বাটনের পাঠ্য" - cwHoverBg: "CW বাটনের পটভূমি (হভার)" - toastBg: "বিজ্ঞপ্তির পটভূমি" - toastFg: "বিজ্ঞপ্তির পাঠ্য" - buttonBg: "বাটনের পটভূমি" - buttonHoverBg: "বাটনের পটভূমি (হভার)" - inputBorder: "ইনপুট ফিল্ডের বর্ডার" - listItemHoverBg: "লিস্ট আইটেমের পটভূমি (হোভার)" - driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি" - wallpaperOverlay: "ওয়ালপেপার ওভারলে" - badge: "ব্যাজ" - messageBg: "চ্যাটের পটভূমি" - accentDarken: "অ্যাকসেন্ট (গাঢ়)" - accentLighten: "অ্যাকসেন্ট (হাল্কা)" - fgHighlighted: "হাইলাইট করা পাঠ্য" -_sfx: - note: "নোটগুলি" - noteMy: "নোট (আপনার)" - notification: "বিজ্ঞপ্তি" - chat: "চ্যাট" - chatBg: "চ্যাট (ব্যাকগ্রাউন্ড)" - antenna: "অ্যান্টেনাগুলি" - channel: "চ্যানেলের বিজ্ঞপ্তি" -_ago: - future: "ভবিষ্যৎ" - justNow: "এইমাত্র" - secondsAgo: "{n} সেকেন্ড আগে" - minutesAgo: "{n} মিনিট আগে" - hoursAgo: "{n} ঘণ্টা আগে" - daysAgo: "{n} দিন আগে" - weeksAgo: "{n} সপ্তাহ আগে" - monthsAgo: "{n} মাস আগে" - yearsAgo: "{n} বছর আগে" -_time: - second: "সেকেন্ড" - minute: "মিনিট" - hour: "ঘণ্টা" - day: "দিন" -_tutorial: - title: "Misskey কিভাবে ব্যাবহার করবেন" - step1_1: "স্বাগতম!" - step1_2: "এই স্ক্রীনটিকে \"টাইমলাইন\" বলা হয় এবং কালানুক্রমিক ক্রমে আপনার এবং আপনি যাদের \"অনুসরণ করেন\" তাদের \"নোটগুলি\" দেখায়৷" - step1_3: "আপনি আপনার টাইমলাইনে কিছু দেখতে পাবেন না কারণ আপনি এখনও কোনো নোট পোস্ট করেননি এবং আপনি কাউকে অনুসরণ করছেন না৷" - step2_1: "নোট তৈরি করার আগে বা কাউকে অনুসরণ করার আগে প্রথমে আপনার প্রোফাইলটি সম্পূর্ণ করুন।" - step2_2: "আপনি কে তা জানা অনেক লোকের জন্য আপনার নোটগুলি দেখা এবং অনুসরণ করাকে সহজ করে তোলে৷" - step3_1: "আপনি কি সফলভাবে আপনার প্রোফাইল সেট আপ করেছেন?" - step3_2: "এখন, কিছু নোট পোস্ট করার চেষ্টা করুন। পোস্ট ফর্ম খুলতে পেন্সিল চিহ্নযুক্ত বাটনে ক্লিক করুন।" - step3_3: "বিষয়বস্তু লেখার পরে, আপনি ফর্মের উপরের ডানদিকের বাটনে ক্লিক করে পোস্ট করতে পারেন।" - step3_4: "পোস্ট করার মত কিছু মনে পরছে না? \"আমি মিসকি সেট আপ করছি\" বললে কেমন হয়?" - step4_1: "পোস্ট করেছেন?" - step4_2: "সাবাশ! এখন আপনার নোট টাইমলাইনে দেখা যাবে।" - step5_1: "এখন অন্যদেরকে অনুসরণ করে আপনার টাইমলাইনকে প্রাণবন্ত করে তুলুন।" - step5_2: "আপনি {featured}-এ জনপ্রিয় নোটগুলি দেখতে পারেন, যাতে আপনি যে ব্যক্তিকে পছন্দ করেন তাকে বেছে নিতে এবং অনুসরণ করতে পারেন, অথবা {explore}-এ জনপ্রিয় ব্যবহারকারীদের দেখতে পারেন৷" - step5_3: "একজন ব্যবহারকারীকে অনুসরণ করতে, ব্যবহারকারীর আইকনে ক্লিক করুন এবং ব্যবহারকারীর পৃষ্ঠাতে \"অনুসরণ করুন\" বাটনে ক্লিক করুন।" - step5_4: "যদি ব্যবহারকারীর নামের পাশে একটি লক আইকন থাকে তাহলে আপনার অনুসরণের অনুরোধ গ্রহণ করার জন্য তারা কিছু সময় নিতে পারে।" - step6_1: "সবকিছু ঠিক থাকলে আপনি টাইমলাইনে অন্য ব্যবহারকারীদের নোট দেখতে পাবেন।" - step6_2: "আপনি সহজেই আপনার প্রতিক্রিয়া জানাতে অন্য ব্যক্তির নোটে \"রিঅ্যাকশন\" যোগ করতে পারেন।" - step6_3: "একটি রিঅ্যাকশন যোগ করতে, নোটে \"+\" চিহ্নে ক্লিক করুন এবং আপনার পছন্দের রিঅ্যাকশন নির্বাচন করুন।" - step7_1: "অভিনন্দন! আপনি এখন Misskey-র প্রাথমিক টিউটোরিয়ালটি শেষ করেছেন।" - step7_2: "আপনি যদি Misskey সম্পর্কে আরও জানতে চান, তাহলে {help} এ দেখুন।" - step7_3: "এখন Misskey উপভোগ করুন 🚀" -_2fa: - alreadyRegistered: "আপনি ইতিমধ্যে একটি 2-ফ্যাক্টর অথেনটিকেশন ডিভাইস নিবন্ধন করেছেন৷" - registerDevice: "নতুন ডিভাইস নিবন্ধন করুন" - registerKey: "সিকিউরিটি কী নিবন্ধন করুন" - step1: "প্রথমে, আপনার ডিভাইসে {a} বা {b} এর মতো একটি অথেনটিকেশন অ্যাপ ইনস্টল করুন৷" - step2: "এরপরে, অ্যাপের সাহায্যে প্রদর্শিত QR কোডটি স্ক্যান করুন।" - step2Url: "ডেস্কটপ অ্যাপে, নিম্নলিখিত URL লিখুন:" - step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।" - step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।" - securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷" -_permissions: - "read:account": "অ্যাকাউন্টের তথ্য দেখুন" - "write:account": "অ্যাকাউন্টের তথ্য সম্পাদন করুন" - "read:blocks": "ব্লক করা ব্যাবহারকারীদের তালিকা দেখুন" - "write:blocks": "ব্লক করা ব্যাবহারকারীদের তালিকা সম্পাদনা করুন" - "read:drive": "ড্রাইভের ফাইল এবং ফোল্ডারসমূহ পড়া" - "write:drive": "ড্রাইভের ফাইল এবং ফোল্ডারসমূহ সম্পাদনা করা" - "read:favorites": "পছন্দের তালিকা পড়া" - "write:favorites": "পছন্দের তালিকা সম্পাদনা করা" - "read:following": "অনুসরণ তথ্য দেখুন" - "write:following": "অনুসরণ তথ্য সম্পাদনা করা" - "read:messaging": "চ্যাটগুলি দেখুন" - "write:messaging": "চ্যাটগুলি সম্পাদনা করুন" - "read:mutes": "মিউটের লিস্ট দেখুন" - "write:mutes": "মিউটের লিস্ট সম্পাদনা করুন" - "write:notes": "নোট লিখা" - "read:notifications": "বিজ্ঞপ্তিগুলি দেখুন" - "write:notifications": "বিজ্ঞপ্তি নিয়ে কাজ করে" - "read:reactions": "রিঅ্যাকশনগুলি দেখুন" - "write:reactions": "রিঅ্যাকশনগুলি সম্পাদনা করুন" - "write:votes": "ভোট দিন" - "read:pages": "আপনার পেজগুলি দেখুন" - "write:pages": "পেজগুলি সম্পাদনা বা ডিলিট করুন" - "read:page-likes": "পৃষ্ঠায় দেয়া পছন্দগুলি দেখুন" - "write:page-likes": "পৃষ্ঠায় দেয়া পছন্দগুলি সম্পাদনা করুন" - "read:user-groups": "ব্যাবহারকারী গ্রুপগুলি দেখুন" - "write:user-groups": "ব্যাবহারকারী গ্রুপগুলি সম্পাদনা করুন" - "read:channels": "চ্যানেলগুলি দেখুন" - "write:channels": "চ্যানেলগুলি সম্পাদনা করুন" - "read:gallery": "গ্যালারী দেখুন" - "write:gallery": "গ্যালারী সম্পাদনা করুন" - "read:gallery-likes": "গ্যালারীর পছন্দগুলি দেখুন" - "write:gallery-likes": "গ্যালারীর পছন্দগুলি সম্পাদনা করুন" -_auth: - shareAccess: "\"{name}\" কে অ্যাকাউন্টের অ্যাক্সেস দিবেন?" - shareAccessAsk: "অ্যাপ্লিকেশনটিকে অ্যাকাউন্টের অ্যাক্সেস দিবেন?" - permissionAsk: "এই অ্যাপ্লিকেশনটি নিম্নলিখিত অনুমতি চাই" - pleaseGoBack: "দয়া করে অ্যাপ্লিকেশনে ফিরে যান" - callback: "অ্যাপ্লিকেশনে ফিরে যাচ্ছি" - denied: "প্রবেশ নিষেধ" -_antennaSources: - all: "সকল নোট" - homeTimeline: "আপনি অনুসরণ করছেন, এমন ব্যবহারকারীদের নোট" - users: "এক বা একাধিক নির্দিষ্ট ব্যবহারকারীর নোট" - userList: "নির্দিষ্ট তালিকায় নাম থাকা ব্যবহারকারীদের নোট" - userGroup: "নির্দিষ্ট গ্রুপে থাকা ব্যবহারকারীদের নোট" -_weekday: - sunday: "রবিবার" - monday: "সোমবার" - tuesday: "মঙ্গলবার" - wednesday: "বুধবার" - thursday: "বৃহস্পতিবার" - friday: "শুক্রবার" - saturday: "শনিবার" -_widgets: - memo: "স্টিকি নোট" - notifications: "বিজ্ঞপ্তি" - timeline: "টাইমলাইন" - calendar: "ক্যালেন্ডার" - trends: "বর্তমানে জনপ্রিয়" - clock: "ঘড়ি" - rss: "RSS রিডার" - activity: "কার্যকলাপ" - photos: "ফটোগুলি" - digitalClock: "ডিজিটাল ঘড়ি" - federation: "ফেডিভার্স" - postForm: "নোট লিখুন" - slideshow: "স্লাইডশো" - button: "বাটন" - onlineUsers: "অনলাইনে থাকা ব্যবহারকারীগণ" - jobQueue: "জব কিউ" - serverMetric: "সার্ভার মেট্রিক্স" - aiscript: "AiScript কনসোল" - aichan: "আই চান" -_cw: - hide: "লুকান" - show: "আরও দেখুন" - chars: "{count} টি অক্ষর" - files: "{count} টি ফাইল" -_poll: - noOnlyOneChoice: "সর্বনিম্ন 2 টি অপশন বেছে নিতে হবে" - choiceN: "বিকল্পগুলি {n}" - noMore: "আপনি আর কোন বিকল্প যোগ করতে পারবেন না" - canMultipleVote: "একাধিক বিকল্প বাছাই করা যাবে" - expiration: "পোলের সময়সীমা" - infinite: "অনির্দিষ্ট" - at: "শেষ হবে" - after: "শেষ হবে" - deadlineDate: "শেষ হওয়ার তারিখ" - deadlineTime: "ঘণ্টা" - duration: "ব্যাপ্তিকাল" - votesCount: "{n} টি ভোট" - totalVotes: "সর্বমোট {n} টি ভোট" - vote: "ভোট দিন" - showResult: "রেজাল্ট দেখান" - voted: "ভোট দিয়েছেন" - closed: "শেষ হয়ে গেছে" - remainingDays: "আর {d} দিন {h} ঘণ্টা বাকি আছে" - remainingHours: "আর {h} ঘণ্টা {m} মিনিট বাকি আছে" - remainingMinutes: "আর বাকি আছে {m} মিনিট {s} সেকেন্ড" - remainingSeconds: "আর বাকি আছে {s} সেকেন্ড" -_visibility: - public: "সর্বজনীন" - publicDescription: "সবাই আপনার নোটগুলি দেখতে পাবে" - home: "মূল পাতা" - homeDescription: "শুধুমাত্র হোম টাইমলাইনে আপনার নোটগুলি পোস্ট করুন" - followers: "অনুসরণকারী" - followersDescription: "শুধুমাত্র আপনার অনুসরণকারীদের নিকট পোস্ট করুন" - specified: "ডাইরেক্ট নোট" - specifiedDescription: "শুধুমাত্র নির্দিষ্ট ব্যাবহারকারীর নিকট পাঠান" - localOnly: "শুধুমাত্র লোকাল" - localOnlyDescription: "রিমোট ব্যাবহারকারীদের নিকট দৃশ্যমান নয়" -_postForm: - replyPlaceholder: "নোটটির জবাব দিন..." - quotePlaceholder: "নোটটিকে উদ্ধৃত করুন..." - channelPlaceholder: "চ্যানেলে পোস্ট করুন..." - _placeholders: - a: "আপনি এখন কি করছেন?" - b: "আপনার আশে পাশে কি হচ্ছে?" - c: "আপনি কি ভাবছেন?" - d: "আপনি কি বলতে চান?" - e: "লেখা শুরু করুন..." - f: "আপনার লেখার জন্য অপেক্ষা করছি..." -_profile: - name: "নাম" - username: "ব্যবহারকারীর নাম" - description: "আপনার সম্পর্কে" - youCanIncludeHashtags: "হ্যাশট্যাগ অন্তর্ভুক্ত করা যেতে পারে।" - metadata: "অতিরিক্ত তথ্য" - metadataEdit: "অতিরিক্ত তথ্য সম্পাদনা করুন" - metadataDescription: "আপনি আপনার প্রোফাইলে একটি টেবিল হিসাবে চারটি অতিরিক্ত তথ্য দেখাতে পারেন।" - metadataLabel: "লেবেল" - metadataContent: "বিষয়বস্তু" - changeAvatar: "অ্যাভাটার পরিবর্তন করুন" - changeBanner: "ব্যানার পরিবর্তন করুন" -_exportOrImport: - allNotes: "সকল নোট" - followingList: "অনুসরণ করা হচ্ছে" - muteList: "মিউট" - blockingList: "ব্লক" - userLists: "লিস্ট" - excludeMutingUsers: "মিউটকৃত ব্যবহারকারীদের বাদ দিন" - excludeInactiveUsers: "অব্যাবহৃত অ্যাকাউন্ট বাদ দিন" -_charts: - federation: "ফেডিভার্স" - apRequest: "অনুরোধসমূহ" - usersIncDec: "ব্যবহারকারীদের সংখ্যার পরিবর্তন" - usersTotal: "ব্যবহারকারীদের সংখ্যা" - activeUsers: "সক্রিয় ব্যাবহারকারী" - notesIncDec: "নোটের সংখ্যার পরিবর্তন" - localNotesIncDec: "লোকাল নোটের সংখ্যার পরিবর্তন" - remoteNotesIncDec: "রিমোট নোটের সংখ্যার পরিবর্তন" - notesTotal: "নোটের সংখ্যা" - filesIncDec: "ফাইলের সংখ্যার পরিবর্তন" - filesTotal: "ফাইলের সংখ্যা" - storageUsageIncDec: "স্টোরেজের ব্যাবহারের পরিবর্তন" - storageUsageTotal: "মোট স্টোরেজের ব্যাবহার" -_instanceCharts: - requests: "অনুরোধসমূহ" - users: "ব্যবহারকারীদের সংখ্যার পরিবর্তন" - usersTotal: "ক্রমবর্ধমান ব্যবহারকারীদের সংখ্যা" - notes: "নোটের সংখ্যার পরিবর্তন" - notesTotal: "ক্রমবর্ধমান নোটের সংখ্যা" - ff: "অনুসরণকারী / অনুসরণ করা ব্যাবহারকারীদের সংখ্যার পরিবর্তন" - ffTotal: "অনুসরণকারী / অনুসরণ করা ব্যাবহারকারীদের ক্রমবর্ধমান সংখ্যা" - cacheSize: "ক্যাশ সাইজের পরিবর্তন" - cacheSizeTotal: "ক্রমবর্ধমান ক্যাশ সাইজ" - files: "ফাইলের সংখ্যার পরিবর্তন" - filesTotal: "ক্রমবর্ধমান ফাইলের সংখ্যা" -_timelines: - home: "মূল পাতা" - local: "স্থানীয়" - social: "সামাজিক" - global: "গ্লোবাল" -_pages: - newPage: "নতুন পৃষ্ঠা বানান" - editPage: "পৃষ্ঠাটি সম্পাদনা করুন" - readPage: "উৎস দেখছেন" - created: "পৃষ্ঠা তৈরি করা হয়েছে" - updated: "পৃষ্ঠা সম্পাদনা করা হয়েছে" - deleted: "পৃষ্ঠা মুছে ফেলা হয়েছে" - pageSetting: "পৃষ্ঠার সেটিংস" - nameAlreadyExists: "পৃষ্ঠার URLটি ইতিমধ্যেই ব্যাবহার করা হয়েছে" - invalidNameTitle: "পৃষ্ঠার URL অবৈধ" - invalidNameText: "নিশ্চিত করুন যে এটি ফাঁকা নয়" - editThisPage: "পৃষ্ঠাটি সম্পাদনা করুন" - viewSource: "উৎস দেখুন" - viewPage: "আপনার পেজগুলি দেখুন" - like: "পছন্দ" - unlike: "পছন্দ সরান" - my: "আমার পৃষ্ঠাগুলি" - liked: "পছন্দ করা পৃষ্ঠাগুলি" - featured: "জনপ্রিয়" - inspector: "ইনিস্পেক্টর" - contents: "বিষয়বস্তু" - content: "পৃষ্ঠার ব্লক" - variables: "চলকগুলি" - title: "শিরোনাম" - url: "পৃষ্ঠার URL" - summary: "পৃষ্ঠার বর্ণনা" - alignCenter: "সেন্টার" - hideTitleWhenPinned: "পিন করা হলে টাইটেল লুকান" - font: "ফন্ট" - fontSerif: "সেরিফ" - fontSansSerif: "স্যান্স সেরিফ" - eyeCatchingImageSet: "থাম্বনেইল সেট করুন" - eyeCatchingImageRemove: "থাম্বনেইল সরান" - chooseBlock: "ব্লক যোগ করুন" - selectType: "ধরন নির্বাচন করুন" - enterVariableName: "চলকের নাম লিখুন" - variableNameIsAlreadyUsed: "চলকের নামটি ইতিপূর্বে ব্যাবহৃত হয়েছে" - contentBlocks: "বিষয়বস্তু" - inputBlocks: "ইনপুট" - specialBlocks: "বিশেষ" - blocks: - text: "লেখা" - textarea: "টেক্সট এরিয়া" - section: "বিভাগ" - image: "ছবি" - button: "বাটন" - if: "যদি" - _if: - variable: "চলকগুলি" - post: "নোট লিখুন" - _post: - text: "বিষয়বস্তু" - attachCanvasImage: "ক্যানভাস ছবিসহ পোস্ট করুন" - canvasId: "ক্যানভাস ID" - textInput: "টেক্সট ইনপুট" - _textInput: - name: "চলকের নাম" - text: "শিরোনাম" - default: "ডিফল্ট মান" - textareaInput: "একাধিক লাইনের টেক্সট ইনপুট" - _textareaInput: - name: "চলকের নাম" - text: "শিরোনাম" - default: "ডিফল্ট মান" - numberInput: "সংখ্যা ইনপুট" - _numberInput: - name: "চলকের নাম" - text: "শিরোনাম" - default: "ডিফল্ট মান" - canvas: "ক্যানভাস" - _canvas: - id: "ক্যানভাস ID" - width: "প্রস্থ" - height: "উচ্চতা" - note: "এম্বেড নোট" - _note: - id: "নোট ID" - idDescription: "আপনি এর বদলে নোটের URL পেস্ট করতে পারেন." - detailed: "বিস্তারিত দেখুন" - switch: "সুইচ" - _switch: - name: "চলকের নাম" - text: "শিরোনাম" - default: "ডিফল্ট মান" - counter: "কাউন্টার" - _counter: - name: "চলকের নাম" - text: "শিরোনাম" - inc: "এভাবে মান বাড়ান" - _button: - text: "শিরোনাম" - colored: "রঙ্গিন" - action: "বাটনে ক্লিক করলে যা হবে" - _action: - dialog: "ডায়ালগ দেখান " - _dialog: - content: "বিষয়বস্তু" - resetRandom: "র‍্যানডম সিড রিসেট করুন" - pushEvent: "ইভেন্ট পাঠান" - _pushEvent: - event: "ইভেন্টের নাম" - message: "চালু হলে প্রদর্শনের জন্য বার্তা" - variable: "পাঠানো চলক" - no-variable: "কিছুই না" - callAiScript: "AiScript চালান" - _callAiScript: - functionName: "ফাংশনের নাম" - radioButton: "বহুনির্বাচনী" - _radioButton: - name: "চলকের নাম" - title: "শিরোনাম" - values: "বিকল্পগুলিকে আলাদা লাইনে লিখুন" - default: "ডিফল্ট মান" - script: - categories: - flow: "নিয়ন্ত্রণ" - logical: "লজিক্যাল অপারেশন" - operation: "হিসাব-নিকাশ" - comparison: "তুলনা" - random: "র‍্যান্ডম" - value: "মান" - fn: "ফাংশন" - text: "টেক্সট ম্যানিপুলেশন" - convert: "রুপান্তর" - list: "লিস্ট" - blocks: - text: "লেখা" - multiLineText: "লেখা (একাধিক লাইন)" - textList: "লেখার লিস্ট" - _textList: - info: "প্রতিটি এন্ট্রিকে আলাদা লাইনে লিখুন" - strLen: "লেখার দৈর্ঘ্য" - _strLen: - arg1: "লেখা" - strPick: "অক্ষর বের করে আনুন" - _strPick: - arg1: "লেখা" - arg2: "অক্ষরের অবস্থান" - strReplace: "লেখা প্রতিস্থাপন" - _strReplace: - arg1: "লেখা" - arg2: "যে লেখা প্রতিস্থাপন করা হবে" - arg3: "যা দ্বারা প্রতিস্থাপন করা হবে" - strReverse: "লেখা উল্টান" - _strReverse: - arg1: "লেখা" - join: "লেখা যুক্ত করুন" - _join: - arg1: "লিস্ট" - arg2: "বিভাজক" - add: "যোগ" - _add: - arg1: "A" - arg2: "B" - subtract: "বিয়োগ" - _subtract: - arg1: "A" - arg2: "B" - multiply: "গুন" - _multiply: - arg1: "A" - arg2: "B" - divide: "ভাগ" - _divide: - arg1: "A" - arg2: "B" - mod: "ভাগশেষ" - _mod: - arg1: "A" - arg2: "B" - round: "দশমিক রাউন্ড করুন" - _round: - arg1: "সংখ্যা" - eq: "A ও B সমান" - _eq: - arg1: "A" - arg2: "B" - notEq: "A ও B সমান না" - _notEq: - arg1: "A" - arg2: "B" - and: "A এবং B" - _and: - arg1: "A" - arg2: "B" - or: "A অথবা B" - _or: - arg1: "A" - arg2: "B" - lt: "< A , B হতে কম" - _lt: - arg1: "A" - arg2: "B" - gt: "> A , B হতে বেশী" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A , B হতে কম বা সমান" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A , B হতে বেশী বা সমান" - _gtEq: - arg1: "A" - arg2: "B" - if: "যদি" - _if: - arg1: "যদি" - arg2: "তাহলে" - arg3: "তাছাড়া" - not: "না" - _not: - arg1: "না" - random: "র‍্যান্ডম" - _random: - arg1: "সম্ভাব্যতা" - rannum: "র‍্যানডম সংখ্যা" - _rannum: - arg1: "ন্যূনতম মান" - arg2: "সর্বোচ্চ মান" - randomPick: "তালিকা থেকে দৈবচয়ন করুন" - _randomPick: - arg1: "লিস্ট" - dailyRandom: "র‍্যান্ডম সংখ্যা (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)" - _dailyRandom: - arg1: "সম্ভাব্যতা" - dailyRannum: "র‍্যান্ডম সংখ্যা (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)" - _dailyRannum: - arg1: "ন্যূনতম মান" - arg2: "সর্বোচ্চ মান" - dailyRandomPick: "তালিকা থেকে এলোমেলোভাবে নির্বাচন করুন (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন পরিবর্তীত হয়)" - _dailyRandomPick: - arg1: "লিস্ট" - seedRandom: "র‍্যানডম (সীড দ্বারা)" - _seedRandom: - arg1: "সীড" - arg2: "সম্ভাব্যতা" - seedRannum: "র‍্যানডম সংখ্যা (সীড দ্বারা)" - _seedRannum: - arg1: "সীড" - arg2: "ন্যূনতম মান" - arg3: "সর্বোচ্চ মান" - seedRandomPick: "তালিকা থেকে দৈবচয়ন করুন (সীড দ্বারা)" - _seedRandomPick: - arg1: "সীড" - arg2: "লিস্ট" - DRPWPM: "সম্ভাব্যতা সহ একটি তালিকা থেকে এলোমেলোভাবে নির্বাচন করুন (প্রতিটি ব্যবহারকারীর জন্য প্রতিদিন)" - _DRPWPM: - arg1: "লেখার লিস্ট" - pick: "তালিকা থেকে নির্বাচন করুন" - _pick: - arg1: "লিস্ট" - arg2: "অবস্থান" - listLen: "লিস্টের দৈর্ঘ্য পান" - _listLen: - arg1: "লিস্ট" - number: "সংখ্যা" - stringToNumber: "পাঠ্য থেকে সংখ্যা" - _stringToNumber: - arg1: "লেখা" - numberToString: "সংখ্যা থেকে পাঠ্য" - _numberToString: - arg1: "সংখ্যা" - splitStrByLine: "পাঠ্যকে লাইনে বিভক্ত করুন" - _splitStrByLine: - arg1: "লেখা" - ref: "চলক" - aiScriptVar: "AiScript চলক" - fn: "ফাংশন" - _fn: - slots: "স্লটগুলি" - slots-info: "প্রতিটি স্লটকে আলাদা লাইনে লিখুন" - arg1: "আউটপুট" - for: "for-লুপ" - _for: - arg1: "কতবার চলবে" - arg2: "অ্যাকশন" - typeError: "স্লট {slot}, {expect} ধরনের মান গ্রহণ করে, কিন্তু {actual} ধরনের মান দেওয়া হয়েছে!" - thereIsEmptySlot: "স্লট {slot} খালি!" - types: - string: "লেখা" - number: "সংখ্যা" - boolean: "ফ্ল্যাগ" - array: "লিস্ট" - stringArray: "লেখার লিস্ট" - emptySlot: "খালি স্লট" - enviromentVariables: "এনভাইরনমেন্ট ভ্যারিয়েবল" - pageVariables: "পেজের চলক" - argVariables: "ইনপুটের জায়গা" -_relayStatus: - requesting: "অপেক্ষমান" - accepted: "অনুমোদিত" - rejected: "প্রত্যাখিত" -_notification: - fileUploaded: "ফাইল সফলভাবে আপলোড করা হয়েছে" - youGotMention: "{name} আপনাকে উল্লেখ্য করেছে" - youGotReply: "{name} আপনাকে জবাব দিয়েছে" - youGotQuote: "{name} আপনাকে উদ্ধৃত করেছে" - youRenoted: "{name} এর Renote" - youGotPoll: "{name} আপনার পোলে ভোট দিয়েছে" - youGotMessagingMessageFromUser: "{name} আপনাকে মেসেজ করেছে" - youGotMessagingMessageFromGroup: "{name} গ্রুপে একটি নতুন মেসেজ আছে" - youWereFollowed: "আপনাকে অনুসরণ করছে" - youReceivedFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে" - yourFollowRequestAccepted: "আপনার অনুসরণ করার অনুরোধ গৃহীত হয়েছে" - youWereInvitedToGroup: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন" - pollEnded: "পোলের ফলাফল দেখা যাবে" - emptyPushNotificationMessage: "আপডেট করা পুশ বিজ্ঞপ্তি" - _types: - all: "সকল" - follow: "অনুসরণ করা হচ্ছে" - mention: "উল্লেখ" - reply: "উত্তর দিন" - renote: "রিনোট" - quote: "উদ্ধৃতি" - reaction: "প্রতিক্রিয়া" - pollVote: "পোলে ভোট আছে" - pollEnded: "পোল শেষ" - receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ" - followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ" - groupInvited: "গ্রুপের আমন্ত্রনসমূহ" - app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি" - _actions: - followBack: "ফলো ব্যাক করেছে" - reply: "জবাব" - renote: "রিনোট" -_deck: - alwaysShowMainColumn: "সর্বদা মেইন কলাম দেখান" - columnAlign: "কলাম সাজান" - addColumn: "কলাম যুক্ত করুন" - configureColumn: "কলাম সেটিংস" - swapLeft: "বামে সরান" - swapRight: "ডানে সরান" - swapUp: "উপরে উঠান" - swapDown: "নিচে নামান" - stackLeft: "বাম কলামে সাজান" - popRight: "ডানদিকে রাখুন" - profile: "প্রোফাইল" - _columns: - main: "প্রধান" - widgets: "উইজেটগুলি" - notifications: "বিজ্ঞপ্তি" - tl: "টাইমলাইন" - antenna: "অ্যান্টেনা" - list: "লিস্ট" - mentions: "উল্লেখসমূহ" - direct: "ডাইরেক্ট নোটগুলি" diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml deleted file mode 100644 index 1c859b68f..000000000 --- a/locales/ca-ES.yml +++ /dev/null @@ -1,197 +0,0 @@ ---- -_lang_: "Català" -headlineMisskey: "Una xarxa connectada per notes" -introMisskey: "Benvingut! Misskey és un servei de microblogging descentralitzat de codi obert.\nCrea \"notes\" per compartir els teus pensaments amb tots els que t'envolten. 📡\nAmb \"reaccions\", també pots expressar ràpidament els teus sentiments sobre les notes de tothom. 👍\nExplorem un món nou! 🚀" -monthAndDay: "{day}/{month}" -search: "Cercar" -notifications: "Notificacions" -username: "Nom d'usuari" -password: "Contrasenya" -forgotPassword: "Contrasenya oblidada" -fetchingAsApObject: "Cercant en el Fediverse..." -ok: "OK" -gotIt: "Ho he entès!" -cancel: "Cancel·lar" -enterUsername: "Introdueix el teu nom d'usuari" -renotedBy: "Resignat per {usuari}" -noNotes: "Cap nota" -noNotifications: "Cap notificació" -instance: "Instàncies" -settings: "Preferències" -basicSettings: "Configuració bàsica" -otherSettings: "Configuració avançada" -openInWindow: "Obrir en una nova finestra" -profile: "Perfil" -timeline: "Línia de temps" -noAccountDescription: "Aquest usuari encara no ha escrit la seva biografia." -login: "Iniciar sessió" -loggingIn: "Identificant-se" -logout: "Tancar la sessió" -signup: "Registrar-se" -uploading: "Pujant..." -save: "Desar" -users: "Usuaris" -addUser: "Afegir un usuari" -favorite: "Afegir a preferits" -favorites: "Favorits" -unfavorite: "Eliminar dels preferits" -favorited: "Afegit als preferits." -alreadyFavorited: "Ja s'ha afegit als preferits." -cantFavorite: "No s'ha pogut afegir als preferits." -pin: "Fixar al perfil" -unpin: "Para de fixar del perfil" -copyContent: "Copiar el contingut" -copyLink: "Copiar l'enllaç" -delete: "Eliminar" -deleteAndEdit: "Esborrar i editar" -deleteAndEditConfirm: "Estàs segur que vols suprimir aquesta nota i editar-la? Perdràs totes les reaccions, notes i respostes." -addToList: "Afegir a una llista" -sendMessage: "Enviar un missatge" -copyUsername: "Copiar nom d'usuari" -searchUser: "Cercar usuaris" -reply: "Respondre" -loadMore: "Carregar més" -showMore: "Veure més" -youGotNewFollower: "t'ha seguit" -receiveFollowRequest: "Sol·licitud de seguiment rebuda" -followRequestAccepted: "Sol·licitud de seguiment acceptada" -mention: "Menció" -mentions: "Mencions" -directNotes: "Notes directes" -importAndExport: "Importar / Exportar" -import: "Importar" -export: "Exportar" -files: "Fitxers" -download: "Baixar" -driveFileDeleteConfirm: "Estàs segur que vols suprimir el fitxer \"{name}\"? Les notes associades a aquest fitxer adjunt també se suprimiran." -unfollowConfirm: "Estàs segur que vols deixar de seguir {name}?" -exportRequested: "Has sol·licitat una exportació. Això pot trigar una estona. S'afegirà a la teva unitat un cop completat." -importRequested: "Has sol·licitat una importació. Això pot trigar una estona." -lists: "Llistes" -noLists: "No tens cap llista" -note: "Nota" -notes: "Notes" -following: "Seguint" -followers: "Seguidors" -followsYou: "Et segueix" -createList: "Crear llista" -manageLists: "Gestionar les llistes" -error: "Error" -somethingHappened: "S'ha produït un error" -retry: "Torna-ho a intentar" -pageLoadError: "S'ha produït un error en carregar la pàgina" -pageLoadErrorDescription: "Això normalment es deu a errors de xarxa o a la memòria cau del navegador. Prova d'esborrar la memòria cau i torna-ho a provar després d'esperar una estona." -serverIsDead: "Aquest servidor no respon. Espera una estona i torna-ho a provar." -youShouldUpgradeClient: "Per veure aquesta pàgina, actualitzeu-la per actualitzar el vostre client." -enterListName: "Introdueix un nom per a la llista" -privacy: "Privadesa" -makeFollowManuallyApprove: "Les sol·licituds de seguiment requereixen aprovació" -defaultNoteVisibility: "Visibilitat per defecte" -follow: "Seguint" -followRequest: "Enviar la sol·licitud de seguiment" -followRequests: "Sol·licituds de seguiment" -unfollow: "Deixar de seguir" -followRequestPending: "Sol·licituds de seguiment pendents" -enterEmoji: "Introduir un emoji" -renote: "Renotar" -unrenote: "Anul·lar renota" -renoted: "Renotat." -cantRenote: "Aquesta publicació no pot ser renotada." -cantReRenote: "Impossible renotar una renota." -quote: "Citar" -pinnedNote: "Nota fixada" -pinned: "Fixar al perfil" -you: "Tu" -clickToShow: "Fes clic per mostrar" -sensitive: "NSFW" -add: "Afegir" -reaction: "Reaccions" -reactionSetting: "Reaccions a mostrar al selector de reaccions" -reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem \"+\" per afegir." -rememberNoteVisibility: "Recorda la configuració de visibilitat de les notes" -attachCancel: "Eliminar el fitxer adjunt" -markAsSensitive: "Marcar com a NSFW" -unmarkAsSensitive: "Deixar de marcar com a sensible" -enterFileName: "Defineix nom del fitxer" -mute: "Silencia" -unmute: "Deixa de silenciar" -block: "Bloqueja" -unblock: "Desbloqueja" -suspend: "Suspèn" -unsuspend: "Deixa de suspendre" -instances: "Instàncies" -remove: "Eliminar" -nsfw: "NSFW" -pinnedNotes: "Nota fixada" -userList: "Llistes" -smtpUser: "Nom d'usuari" -smtpPass: "Contrasenya" -user: "Usuaris" -searchByGoogle: "Cercar" -file: "Fitxers" -_email: - _follow: - title: "t'ha seguit" -_mfm: - mention: "Menció" - quote: "Citar" - search: "Cercar" -_theme: - keys: - mention: "Menció" - renote: "Renotar" -_sfx: - note: "Notes" - notification: "Notificacions" -_2fa: - step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:" -_widgets: - notifications: "Notificacions" - timeline: "Línia de temps" -_cw: - show: "Carregar més" -_visibility: - followers: "Seguidors" -_profile: - username: "Nom d'usuari" -_exportOrImport: - followingList: "Seguint" - muteList: "Silencia" - blockingList: "Bloqueja" - userLists: "Llistes" -_pages: - script: - categories: - list: "Llistes" - blocks: - _join: - arg1: "Llistes" - _randomPick: - arg1: "Llistes" - _dailyRandomPick: - arg1: "Llistes" - _seedRandomPick: - arg2: "Llistes" - _pick: - arg1: "Llistes" - _listLen: - arg1: "Llistes" - types: - array: "Llistes" -_notification: - youWereFollowed: "t'ha seguit" - _types: - follow: "Seguint" - mention: "Menció" - renote: "Renotar" - quote: "Citar" - reaction: "Reaccions" - _actions: - reply: "Respondre" - renote: "Renotar" -_deck: - _columns: - notifications: "Notificacions" - tl: "Línia de temps" - list: "Llistes" - mentions: "Mencions" diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index 9d54e0082..17deab942 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -1,930 +1,2 @@ --- _lang_: "Čeština" -headlineMisskey: "Síť propojená poznámkami" -introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀" -monthAndDay: "{day}. {month}." -search: "Vyhledávání" -notifications: "Oznámení" -username: "Uživatelské jméno" -password: "Heslo" -forgotPassword: "Zapomenuté heslo" -fetchingAsApObject: "Načítám data z Fediversu..." -ok: "Potvrdit" -gotIt: "Rozumím!" -cancel: "Zrušit" -enterUsername: "Zadej uživatelské jméno" -renotedBy: "{user} přeposla/a" -noNotes: "Žádné poznámky" -noNotifications: "Žádná oznámení" -instance: "Instance" -settings: "Nastavení" -basicSettings: "Obecná nastavení" -otherSettings: "Rozšířená nastavení" -openInWindow: "Otevřít v novém okně" -profile: "Váš profil" -timeline: "Časová osa" -noAccountDescription: "Tento uživatel zatím nenapsal svou biografii." -login: "Přihlásit se" -loggingIn: "Probíhá přihlašování" -logout: "Odhlásit" -signup: "Registrace" -uploading: "Nahrávám" -save: "Uložit" -users: "Uživatelé" -addUser: "Přidat uživatele" -favorite: "Oblíbené" -favorites: "Oblíbené" -unfavorite: "Odebrat z oblízených" -favorited: "Přidáno do oblíbených" -alreadyFavorited: "Už je mezi oblíbenými" -cantFavorite: "Nepodařilo se přidat mezi oblíbené." -pin: "Připnout" -unpin: "Odepnout" -copyContent: "Zkopírovat obsah" -copyLink: "Kopírovat odkaz" -delete: "Smazat" -deleteAndEdit: "Smazat a upravit" -deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni." -addToList: "Přidat do seznamu" -sendMessage: "Odeslat zprávu" -copyUsername: "Kopírovat uživatelské jméno" -searchUser: "Vyhledat uživatele" -reply: "Odpovědět" -loadMore: "Zobrazit více" -showMore: "Zobrazit více" -showLess: "Zavřít" -youGotNewFollower: "Máte nového následovníka" -receiveFollowRequest: "Žádost o sledování přijata" -followRequestAccepted: "Žádost o sledování přijata" -mention: "Zmínění" -mentions: "Zmínění" -importAndExport: "Import a export" -import: "Importovat" -export: "Exportovat" -files: "Soubor(ů)" -download: "Stáhnout" -driveFileDeleteConfirm: "Opravdu chcete smazat soubor \"{name}\"? Poznámky, ke kterým je tento soubor připojen, budou také smazány." -unfollowConfirm: "Jste si jisti že už nechcete sledovat {name}?" -exportRequested: "Požádali jste o export. To může chvíli trvat. Přidáme ho na váš Disk až bude dokončen." -importRequested: "Požádali jste o export. To může chvilku trvat." -lists: "Seznamy" -noLists: "Nemáte žádné seznamy" -note: "Poznámka" -notes: "Poznámky" -following: "Sledovaní" -followers: "Sledující" -followsYou: "Sledují vás" -createList: "Vytvořit seznam" -manageLists: "Spravovat seznam" -error: "Chyba" -somethingHappened: "Jejda. Něco se nepovedlo." -retry: "Opakovat" -pageLoadError: "Nepodařilo se načíst stránku" -serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu." -youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci klienta." -enterListName: "Jméno seznamu" -privacy: "Soukromí" -makeFollowManuallyApprove: "Žádosti o sledování vyžadují potvrzení" -defaultNoteVisibility: "Výchozí viditelnost" -follow: "Sledovaní" -followRequest: "Odeslat žádost o sledování" -followRequests: "Žádosti o sledování" -unfollow: "Přestat sledovat" -followRequestPending: "Čekající žádosti o sledování" -enterEmoji: "Vložte emoji" -renote: "Přeposlat" -unrenote: "Zrušit přeposlání" -renoted: "Přeposláno" -cantRenote: "Tento příspěvek nelze přeposlat." -cantReRenote: "Odpověď nemůže být odstraněna." -quote: "Citovat" -pinnedNote: "Připnutá poznámka" -pinned: "Připnout" -you: "Vy" -clickToShow: "Klikněte pro zobrazení" -sensitive: "NSFW" -add: "Přidat" -reaction: "Reakce" -reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání" -rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky" -attachCancel: "Odstranit přílohu" -markAsSensitive: "Označit jako NSFW" -unmarkAsSensitive: "Odznačit jako NSFW" -enterFileName: "Zadejte název souboru" -mute: "Ztlumit" -unmute: "Odmlčet" -block: "Zablokovat" -unblock: "Odblokovat" -suspend: "Zmrazit" -unsuspend: "Odmrazit" -blockConfirm: "Jste si jistí že chcete zablokovat tento účet?" -unblockConfirm: "Jste si jistí že chcete odblokovat tento účet?" -suspendConfirm: "Jste si jistí že chcete suspendovat tenhle účet?" -unsuspendConfirm: "Jste si jistí že chcete obnovit tenhle účet?" -selectList: "Vybrat seznam" -selectAntenna: "Vyberte Anténu" -selectWidget: "Zvolte widget" -editWidgets: "Upravit widget" -editWidgetsExit: "Hotovo" -customEmojis: "Vlastní emoji" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Jméno emoji" -emojiUrl: "URL obrázku" -addEmoji: "Přidat emoji" -settingGuide: "Doporučené nastavení" -cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti" -cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury." -flagAsBot: "Tento účet je bot" -flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot." -flagAsCat: "Tenhle účet je kočka" -flagAsCatDescription: "Vyberte tuto možnost aby tento účet byl označen jako kočka." -flagShowTimelineReplies: "Zobrazovat odpovědi na časové ose" -flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na poznámky jiných uživatelů na vaší časové ose." -autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete" -addAccount: "Přidat účet" -loginFailed: "Přihlášení se nezdařilo." -showOnRemote: "Více na původním profilu" -general: "Obecně" -wallpaper: "Obrázek na pozadí" -setWallpaper: "Nastavení obrázku na pozadí" -removeWallpaper: "Odstranit pozadí" -searchWith: "Hledat: {q}" -youHaveNoLists: "Nemáte žádné seznamy" -followConfirm: "Jste si jisti, že chcete sledovat {name}?" -proxyAccount: "Proxy účet" -proxyAccountDescription: "Proxy účet je účet, který za určitých podmínek sleduje uživatele na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do seznamu, pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena instanci, takže místo toho bude uživatele sledovat účet proxy." -host: "Hostitel" -selectUser: "Vyberte uživatele" -recipient: "Pro" -annotation: "Komentáře" -federation: "Federace" -instances: "Instance" -registeredAt: "Registrován" -latestRequestSentAt: "Poslední požadavek poslán" -latestRequestReceivedAt: "Poslední požadavek přijat" -latestStatus: "Poslední status" -storageUsage: "Využití úložiště" -charts: "Grafy" -perHour: "za hodinu" -perDay: "za den" -stopActivityDelivery: "Přestat zasílat aktivitu" -blockThisInstance: "Blokovat tuto instanci" -operations: "Operace" -software: "Software" -version: "Verze" -metadata: "Metadata" -withNFiles: "{n} soubor(ů)" -monitor: "Monitorovat" -jobQueue: "Fronta úloh" -cpuAndMemory: "CPU a paměť" -network: "Síť" -disk: "Disk" -instanceInfo: "Informace o instanci" -statistics: "Statistiky" -clearQueue: "Vyčistit frontu" -clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?" -clearCachedFiles: "Vyprázdnit mezipaměť" -blockedInstances: "Blokované instance" -noUsers: "Žádní uživatelé" -editProfile: "Upravit můj profil" -pinLimitExceeded: "Nemůžete připnout další poznámky." -intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina." -done: "Hotovo" -processing: "Zpracovávám" -preview: "Náhled" -default: "Výchozí" -noCustomEmojis: "Bez Emoji" -blocked: "Blokováno" -suspended: "Suspendováno" -all: "Vše" -subscribing: "Odebíráte" -publishing: "Publikuji" -notResponding: "Neodpovídá" -instanceFollowing: "Následovníci na instanci" -instanceFollowers: "Následovníci na instanci" -instanceUsers: "Uživatelé této instance" -changePassword: "Změnit heslo" -security: "Zabezpečení" -retypedNotMatch: "Zadané údaje se neshodují." -currentPassword: "Současné heslo" -newPassword: "Nové heslo" -newPasswordRetype: "Nové heslo (znovu)" -attachFile: "Přiložit soubor" -more: "Více!" -featured: "Oblíbené poznámky" -usernameOrUserId: "Uživatelské jméno nebo uživatelské id" -noSuchUser: "Uživatel nebyl nalezen" -announcements: "Oznámení" -imageUrl: "URL obrázku" -remove: "Smazat" -removed: "Smazáno" -removeAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?" -deleteAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?" -resetAreYouSure: "Opravdu resetovat?" -saved: "Uloženo" -messaging: "Zprávy" -upload: "Nahrát soubory" -fromDrive: "Z disku" -fromUrl: "Z URL" -uploadFromUrl: "Nahrát z URL adresy" -uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát" -uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání." -explore: "Objevovat" -messageRead: "Přečtené" -noMoreHistory: "To je vše" -startMessaging: "Zahájit chat" -nUsersRead: "přečteno {n} uživateli" -agreeTo: "Souhlasím s {0}" -tos: "Podmínky užívání" -start: "Začít" -home: "Domů" -remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené instance." -activity: "Aktivita" -images: "Obrázky" -birthday: "Datum narození" -yearsOld: "{age} let" -registeredDate: "Datum registrace" -location: "Lokace" -theme: "Vzhled" -themeForLightMode: "Vzhled pro použití ve světlém režimu" -themeForDarkMode: "Vzhled k použití v tmavém režimu" -light: "Světlý" -dark: "Tmavý" -lightThemes: "Světlý vzhled" -darkThemes: "Tmavý vzhled" -syncDeviceDarkMode: "Synchronizovat tmavý vzhled s nastavením Vašeho systému" -drive: "Úložiště" -fileName: "Název souboru" -selectFile: "Vybrat soubor" -selectFiles: "Vybrat soubory" -selectFolder: "Vyberte složku" -selectFolders: "Vyberte složky" -renameFile: "Přejmenovat soubor" -folderName: "Název složky" -createFolder: "Vytvořit složku" -renameFolder: "Přejmenovat složku" -deleteFolder: "Odstranit složku" -addFile: "Přidat soubor" -emptyFolder: "Tato složka je prázdná" -unableToDelete: "Nelze smazat" -inputNewFileName: "Zadejte nový název" -inputNewFolderName: "Zadejte název nové složky" -copyUrl: "Kopírovat URL" -rename: "Přejmenovat" -avatar: "Avatar" -banner: "Baner" -nsfw: "NSFW" -disconnectedFromServer: "Spojení bylo přerušeno" -reload: "Aktualizovat" -doNothing: "Ignorovat" -watch: "Sledovat" -unwatch: "Přestat sledovat" -accept: "Souhlasím" -reject: "Odmítnout" -normal: "Normální" -instanceName: "Název instance" -instanceDescription: "Popis instance" -maintainerName: "Správce" -maintainerEmail: "E-mailová adresa správce" -tosUrl: "URL pro smluvní podmínky" -thisYear: "Tento rok" -thisMonth: "Tento měsíc" -today: "Dnes" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Stránky" -integration: "Integrace" -connectService: "Připojit" -disconnectService: "Odpojit" -enableLocalTimeline: "Povolit lokální čas" -enableGlobalTimeline: "Povolit globální čas" -registration: "Registrace" -enableRegistration: "Povolit registraci novým uživatelům" -invite: "Pozvat" -inMb: "V megabajtech" -iconUrl: "Favicon URL" -bannerUrl: "Baner URL" -backgroundImageUrl: "Adresa URL obrázku pozadí" -basicInfo: "Základní informace" -pinnedUsers: "Připnutí uživatelé" -pinnedNotes: "Připnutá poznámka" -hcaptcha: "hCaptcha" -enableHcaptcha: "Aktivovat hCaptchu" -hcaptchaSiteKey: "Klíč stránky" -hcaptchaSecretKey: "Tajný Klíč (Secret Key)" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Zapnout ReCAPTCHu" -recaptchaSiteKey: "Klíč stránky" -recaptchaSecretKey: "Tajný Klíč (Secret Key)" -antennas: "Antény" -manageAntennas: "Spravovat Antény" -name: "Jméno" -antennaSource: "Zdroj Antény" -enableServiceworker: "Povolit ServiceWorker" -caseSensitive: "Rozlišuje malá a velká písmena" -connectedTo: "Následující účty jsou připojeny" -notesAndReplies: "Poznámky a odpovědi" -withFiles: "Včetně souborů" -popularUsers: "Populární uživatelé" -recentlyUpdatedUsers: "Nedávno aktívni uživatelé" -popularTags: "Populární tagy" -userList: "Seznamy" -about: "Informace" -aboutMisskey: "O Misskey" -administrator: "Administrátor" -token: "Token" -twoStepAuthentication: "Dvoufaktorová autentikace" -moderator: "Moderátor" -nUsersMentioned: "{n} uživatelů zmínilo" -securityKey: "Bezpečnostní klíč" -securityKeyName: "Název klíče" -registerSecurityKey: "Registrovat bezpečnostní klíč" -lastUsed: "Naposledy použito" -unregister: "Odstranit" -resetPassword: "Resetovat heslo" -newPasswordIs: "Nové heslo je \"{password}\"" -reduceUiAnimation: "Snížit UI animace" -share: "Sdílet" -notFound: "Nenalezeno" -notFoundDescription: "Nebyla nalezená žádná stránka korespondující se zadanou URL." -uploadFolder: "Výchozí lokace pro upload" -cacheClear: "Vymazat cache" -markAsReadAllNotifications: "Označit všechna oznámení za přečtená" -markAsReadAllUnreadNotes: "Označit všechny příspěvky za přečtené" -markAsReadAllTalkMessages: "Označit všechny zprávy za přečtené" -help: "Nápověda" -inputMessageHere: "Sem zadejte zprávu" -close: "Zavřít" -group: "Skupina" -groups: "Skupiny" -createGroup: "Vytvořit skupinu" -ownedGroups: "Vlastněné skupiny" -joinedGroups: "Členství ve skupinách" -invites: "Pozvat" -groupName: "Název skupiny" -members: "Členové" -transfer: "Převod" -title: "Titulek" -text: "Text" -enable: "Povolit" -next: "Další" -retype: "Zadejte znovu" -noteOf: "{user} poznámky" -inviteToGroup: "Pozvat do skupiny" -quoteAttached: "Citace" -quoteQuestion: "Přiložit jako citaci?" -noMessagesYet: "Zatím tu nejsou žádné zprávy" -newMessageExists: "Máte novou zprávu" -onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor" -signinRequired: "Přihlašte se, prosím" -invitations: "Pozvat" -invitationCode: "Kód pozvánky" -checking: "Ověřuji" -available: "K dispozici" -unavailable: "Není k dispozici" -usernameInvalidFormat: "Písmena, čísla a _ jsou povolená." -tooShort: "Příliš krátké" -tooLong: "Příliš dlouhé" -weakPassword: "Slabé heslo" -normalPassword: "Dobré heslo" -strongPassword: "Silné heslo" -passwordMatched: "Hesla se schodují" -passwordNotMatched: "Hesla se neschodují" -signinWith: "Přihlásit se s {x}" -signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo." -tapSecurityKey: "Ťukněte na bezpečnostní klíč" -or: "Nebo" -language: "Jazyk" -uiLanguage: "Jazyk uživatelského rozhraní" -groupInvited: "Pozvat do skupiny" -aboutX: "O {x}" -useOsNativeEmojis: "Použití nativních emoji operačního systému" -youHaveNoGroups: "Nemáte žádné skupiny" -joinOrCreateGroup: "Můžete požádat o pozvání do stávající skupiny nebo vytvořit novou." -noHistory: "Žádná historie" -signinHistory: "Historie přihlášení" -category: "Kategorie" -tags: "Štítky" -createAccount: "Vytvořit účet" -existingAccount: "Existující účet" -regenerate: "Obnovit" -fontSize: "Velikost písma" -openImageInNewTab: "Otevřít obrázek v novém panelu" -dashboard: "Přehled" -local: "Lokální" -remote: "Vzdálené" -total: "Celkem" -weekOverWeekChanges: "Týdně" -dayOverDayChanges: "Denně" -appearance: "Vzhled" -clientSettings: "Nastavení klienta" -accountSettings: "Nastavení účtu" -promotion: "Propagace" -promote: "Propagovat" -numberOfDays: "Počet dní" -objectStorageBaseUrl: "Base URL" -objectStorageBucket: "Bucket" -objectStoragePrefix: "Předpona" -objectStorageEndpoint: "Endpoint" -objectStorageRegion: "Región" -objectStorageUseSSL: "Použít SSL" -deleteAll: "Smazat vše" -showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou" -listen: "Poslouchat" -showInPage: "Zobrazit na stránce" -popout: "Pop-out" -volume: "Hlasitost" -masterVolume: "Celková hlasitost" -details: "Detaily" -chooseEmoji: "Vybrat emotikon" -unableToProcess: "Operace nebyla dokončena." -recentUsed: "Naposledy použité" -install: "Nainstalovat" -uninstall: "Odinstalovat" -installedApps: "Autorizované aplikace" -nothing: "Nic nebylo nalezeno" -lastUsedDate: "Poslední použití" -state: "Stav" -sort: "Seřadit" -ascendingOrder: "Vzestupně" -descendingOrder: "Sestupně" -scratchpad: "Zápisník" -output: "Výstup" -script: "Skript" -updateRemoteUser: "Aktualizovat informace o vzdáleném účtu" -deleteAllFiles: "Smazat všechny soubory" -deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?" -userSuspended: "Tomuto uživateli byl pozastaven účet." -menu: "Menu" -divider: "Dělící čára" -addItem: "Přidat položku" -relays: "Relay" -addRelay: "Přidat Relay" -inboxUrl: "Inbox URL" -deletedNote: "Odstraněné příspěvky" -invisibleNote: "Skryté příspěvky" -description: "Popis" -author: "Autor" -manage: "Administrace" -width: "Šířka" -height: "Výška" -large: "Velké" -medium: "Střední" -small: "Malé" -generateAccessToken: "Vygenerovat přístupový token" -permission: "Oprávnění" -enableAll: "Povolit vše" -disableAll: "Vypnout vše" -notificationType: "Typy oznámení" -edit: "Upravit" -emailServer: "Mailový server" -enableEmail: "Zapnout email dystribuci" -email: "Email" -emailAddress: "Emailová adresa" -smtpConfig: "Konfigurace SMTP serveru" -smtpHost: "Hostitel" -smtpPort: "Port" -smtpUser: "Uživatelské jméno" -smtpPass: "Heslo" -smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS" -testEmail: "Otestovat doručení emailů" -makeActive: "Aktivovat" -display: "Zobrazit" -copy: "Kopírovat" -metrics: "Metriky" -overview: "Shrnutí" -logs: "Logy" -delayed: "Prodleva" -database: "Databáze" -channel: "Kanály" -create: "Vytvořit" -notificationSetting: "Nastavení oznámení" -useGlobalSetting: "Použít globální nastavení" -other: "Ostatní" -fileIdOrUrl: "ID nebo URL souboru" -behavior: "Chování" -sample: "Ukázka" -send: "Odeslat" -openInNewTab: "Otevřít v nové kartě" -random: "Náhodně" -system: "Systém" -desktop: "Plocha" -clip: "Oříznout" -createNew: "Vytvořit nový" -optional: "Volitelné" -yes: "Ano" -no: "Ne" -notSet: "Není nastaveno" -emailVerified: "Váš e-mail byl ověřen" -contact: "Kontakt" -useSystemFont: "Použít výchozí font systému" -clips: "Oříznout" -experimentalFeatures: "Experimentální funkce" -developer: "Vývojář" -duplicate: "Duplikovat" -left: "Vlevo" -center: "Uprostřed" -wide: "Široké" -narrow: "Úzké" -clearCache: "Vyprázdnit mezipaměť" -nUsers: "{n} užívatelů" -nNotes: "{n} poznámek" -myTheme: "Moje vzhledy" -backgroundColor: "Pozadí" -accentColor: "Akcent" -textColor: "Barva textu" -saveAs: "Uložit jako…" -advanced: "Pokročilé" -value: "Hodnota" -createdAt: "Vytvořeno" -updatedAt: "Upraveno" -saveConfirm: "Uložit změny?" -deleteConfirm: "Opravdu smazat?" -invalidValue: "Neplatná hodnota." -registry: "Registr" -info: "Informace" -unknown: "Neznámý" -onlineStatus: "Online status" -hideOnlineStatus: "Skrýt Váš online status" -hideOnlineStatusDescription: "Skrytí vašeho online stavu může snížit funkcionalitu některých funkcí, například vyhledávání." -online: "Online" -active: "Aktivní" -offline: "Offline" -notRecommended: "Nedoporučuje se" -botProtection: "Bot ochrana" -instanceBlocking: "Blokované instance" -selectAccount: "Vybrat účet" -switchAccount: "Přepnout účet" -enabled: "Zapnuto" -disabled: "Vypnuto" -quickAction: "Rychlé akce" -user: "Uživatelé" -administration: "Administrace" -accounts: "Účty" -switch: "Přepnout" -configure: "Nastavit" -gallery: "Galerie" -recentPosts: "Poslední příspěvky" -ads: "Reklamy" -memo: "Memo" -priority: "Priorita" -high: "Vysoká" -middle: "Střední" -low: "Nízká" -emailNotConfiguredWarning: "E-mailová adresa není nastavena." -ratio: "Poměr" -global: "Globální" -sent: "Odeslat" -hashtags: "Hashtagy" -troubleshooting: "Poradce při potížích" -whatIsNew: "Zobrazit změny" -translate: "Přeložit" -hide: "Skrýt" -smartphone: "Telefon" -tablet: "Tablet" -auto: "Auto" -size: "Velikost" -numberOfColumn: "Počet sloupců" -searchByGoogle: "Vyhledávání" -indefinitely: "Navždy" -tenMinutes: "10 minut" -oneHour: "1 hodina" -oneDay: "1 den" -oneWeek: "1 týden" -reflectMayTakeTime: "Může trvat nějakou dobu, než se projeví změny." -cropImage: "Oříznout obrázek" -file: "Soubor(ů)" -recentNHours: "Posledních {n} hodin" -recentNDays: "Posledních {n} dnů" -recommended: "Doporučeno" -deleteAccount: "Odstranit účet" -document: "Dokumentace" -logoutConfirm: "Opravdu se chcete odhlásit?" -pleaseSelect: "Vybrat možnost" -reverse: "Otočit" -colored: "Barevné" -type: "Typ" -speed: "Rychlost" -slow: "Pomalá" -fast: "Rychlá" -account: "Účty" -_ad: - back: "Zpět" -_gallery: - my: "Moje galerie" -_email: - _follow: - title: "Máte nového následovníka" -_plugin: - install: "Instalovat plugin" - manage: "Správce pluginů" -_preferencesBackups: - list: "Vytvořit backup" - loadFile: "Načíst ze souboru" - save: "Uložit změny" -_registry: - scope: "Rozsah" - key: "Klíč" - keys: "Klíče" - domain: "Doména" - createKey: "Vytvořit klíč" -_aboutMisskey: - allContributors: "Všichni přispěvatelé" - source: "Zdrojový kód" -_mfm: - mention: "Zmínění" - hashtag: "Hashtag" - link: "Odkaz" - bold: "Tučně" - quote: "Citovat" - emoji: "Vlastní emoji" - search: "Vyhledávání" - flip: "Otočit" - tada: "Animace (tadá)" - blur: "Rozmazání" - font: "Font" - rainbow: "Duha" -_channel: - featured: "Trendy" -_menuDisplay: - top: "Nahoru" - hide: "Skrýt" -_theme: - install: "Nainstalovat vzhled" - manage: "Správa vzhledů" - code: "Kód vzhledu" - description: "Popis" - installedThemes: "Nainstalované vzhledy" - constant: "Konstanta" - defaultValue: "Výchozí hodnota" - color: "Barva" - key: "Klíč" - func: "Funkce " - keys: - shadow: "Stín" - header: "Nadpis" - link: "Odkaz" - hashtag: "Hashtag" - mention: "Zmínění" - renote: "Přeposlat" - divider: "Dělící čára" -_sfx: - note: "Poznámky" - notification: "Oznámení" - chat: "Zprávy" -_ago: - future: "Budoucí" - justNow: "Teď" -_time: - second: "Sekund" - minute: "Minut" - hour: "Hodin" -_2fa: - registerDevice: "Přidat zařízení" - registerKey: "Přidat bezpečnostní klíč" -_weekday: - sunday: "Neděle" - monday: "Pondělí" - tuesday: "Úterý" - wednesday: "Středa" - thursday: "Čtvrtek" - friday: "Pátek" - saturday: "Sobota" -_widgets: - notifications: "Oznámení" - timeline: "Časová osa" - calendar: "Kalendář" - trends: "Trendy" - clock: "Hodiny" - rss: "RSS čtečka" - activity: "Aktivita" - photos: "Fotky" - digitalClock: "Digitální hodiny" - federation: "Federace" - slideshow: "Prezentace" - button: "Tlačítko" - onlineUsers: "Online uživatelé" - jobQueue: "Fronta úloh" - aiscript: "AiScript conzole" - aichan: "Ai" -_cw: - hide: "Skrýt" - show: "Zobrazit více" -_poll: - noMore: "Více už přidat nemůžete" - infinite: "Nikdy" - deadlineDate: "Datum ukončení" - deadlineTime: "Hodin" - duration: "Trvání" -_visibility: - home: "Domů" - followers: "Sledující" -_postForm: - _placeholders: - f: "Čekám, až něco napíšete..." -_profile: - name: "Jméno" - username: "Uživatelské jméno" - description: "O mně" - youCanIncludeHashtags: "V popisku o Vás můžete použít i hastagy." - metadata: "Doplňující informace" - metadataContent: "Obsah" -_exportOrImport: - allNotes: "Všechny poznámky" - followingList: "Sledovaní" - muteList: "Ztlumit" - blockingList: "Zablokovat" - userLists: "Seznamy" -_charts: - federation: "Federace" - apRequest: "Požadavek" - usersTotal: "Celkem uživatelů" - activeUsers: "Aktivní uživatelé" - notesTotal: "Celkový počet poznámek" -_timelines: - home: "Domů" - global: "Globální" -_pages: - newPage: "Vytvořit novou stránku" - editPage: "Upravit stránku" - created: "Stránka byla úspěšně vytvořena" - updated: "Stránka byla úspěšně aktualizována" - deleted: "Stránka byla úspěšně smazána" - pageSetting: "Nastavení stránky" - invalidNameText: "Ujistěte se že jméno stránky je vyplněno" - contents: "Obsah" - fontSerif: "Serif" - fontSansSerif: "Sans Serif" - chooseBlock: "Přidat blok" - selectType: "Vyberte typ" - contentBlocks: "Obsah" - inputBlocks: "Vstup" - specialBlocks: "Speciální" - blocks: - text: "Text" - textarea: "Textové pole" - section: "Sekce" - image: "Obrázky" - button: "Tlačítko" - if: "Pokud" - _if: - variable: "Proměnná" - _post: - text: "Obsah" - canvasId: "Canvas ID" - _textInput: - name: "Jméno proměnné" - text: "Titulek" - default: "Výchozí hodnota" - _textareaInput: - name: "Jméno proměnné" - text: "Titulek" - default: "Výchozí hodnota" - _numberInput: - name: "Jméno proměnné" - text: "Titulek" - default: "Výchozí hodnota" - canvas: "Canvas" - _canvas: - id: "Canvas ID" - width: "Šířka" - height: "Výška" - _switch: - name: "Jméno proměnné" - text: "Titulek" - default: "Výchozí hodnota" - _counter: - name: "Jméno proměnné" - text: "Titulek" - inc: "Krok" - _button: - text: "Titulek" - colored: "Barevné" - _action: - _dialog: - content: "Obsah" - _radioButton: - name: "Jméno proměnné" - default: "Výchozí hodnota" - script: - categories: - list: "Seznamy" - blocks: - text: "Text" - _strLen: - arg1: "Text" - _strPick: - arg1: "Text" - _strReplace: - arg1: "Text" - _strReverse: - arg1: "Text" - _join: - arg1: "Seznamy" - _subtract: - arg1: "A" - arg2: "B" - _multiply: - arg1: "A" - arg2: "B" - _divide: - arg1: "A" - arg2: "B" - _mod: - arg1: "A" - arg2: "B" - round: "Zaokrouhlení zlomku" - _round: - arg1: "Číselná hodnota" - eq: "A a B jsou stejné" - _eq: - arg1: "A" - arg2: "B" - notEq: "A a B jsou odlišné" - _notEq: - arg1: "A" - arg2: "B" - _and: - arg1: "A" - arg2: "B" - _or: - arg1: "A" - arg2: "B" - _lt: - arg1: "A" - arg2: "B" - _gt: - arg1: "A" - arg2: "B" - _ltEq: - arg1: "A" - arg2: "B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Větev" - _if: - arg1: "Pokud" - arg2: "Potom" - arg3: "Nebo" - random: "Náhodně" - _random: - arg1: "Pravděpodobnost" - rannum: "Náhodné číslo" - _rannum: - arg1: "Minimální hodnota" - arg2: "Maximální hodnota" - _randomPick: - arg1: "Seznamy" - _dailyRandom: - arg1: "Pravděpodobnost" - _dailyRannum: - arg1: "Minimální hodnota" - arg2: "Maximální hodnota" - _dailyRandomPick: - arg1: "Seznamy" - _seedRandom: - arg2: "Pravděpodobnost" - _seedRannum: - arg2: "Minimální hodnota" - arg3: "Maximální hodnota" - _seedRandomPick: - arg2: "Seznamy" - _pick: - arg1: "Seznamy" - _listLen: - arg1: "Seznamy" - number: "Číselná hodnota" - _stringToNumber: - arg1: "Text" - _numberToString: - arg1: "Číselná hodnota" - _splitStrByLine: - arg1: "Text" - types: - string: "Text" - number: "Číselná hodnota" - array: "Seznamy" -_notification: - youWereFollowed: "Máte nového následovníka" - youWereInvitedToGroup: "Pozvat do skupiny" - _types: - all: "Vše" - follow: "Sledovaní" - mention: "Zmínění" - reply: "Odpovědi" - renote: "Přeposlat" - quote: "Citovat" - reaction: "Reakce" - _actions: - reply: "Odpovědět" - renote: "Přeposlat" -_deck: - _columns: - notifications: "Oznámení" - tl: "Časová osa" - antenna: "Antény" - list: "Seznamy" - mentions: "Zmínění" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 149899258..e77688b7c 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -1,45 +1,40 @@ --- _lang_: "Deutsch" -headlineMisskey: "Ein durch Notizen verbundenes Netzwerk" -introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microblogging-Platform.\nVerfasse „Notizen“ um mitzuteilen, was gerade passiert oder um Ereignisse mit anderen zu teilen. 📡\nMit „Reaktionen“ kannst du außerdem schnell deine Gefühle über Notizen anderer Benutzer zum Ausdruck bringen. 👍\nEine neue Welt wartet auf dich! 🚀" -monthAndDay: "{day}.{month}." +introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microblogging-Platform.\nVerfasse \"Notizen\" um mitzuteilen, was gerade passiert oder um Ereignisse mit Anderen zu teilen. 📡\nMit \"Reaktionen\" kannst du außerdem schnell deine Gefühle über Notizen anderer Benutzer zum Ausdruck bringen. 👍\nLass uns eine neue Welt erforschen! 🚀" +monthAndDay: "{day}/{month}" search: "Suchen" notifications: "Benachrichtigungen" username: "Benutzername" password: "Passwort" -forgotPassword: "Passwort vergessen" -fetchingAsApObject: "Wird aus dem Fediverse angefragt …" +fetchingAsApObject: "Wird aus dem Fediverse angefragt..." ok: "OK" gotIt: "Verstanden!" cancel: "Abbrechen" enterUsername: "Benutzername eingeben" renotedBy: "Renote von {user}" -noNotes: "Keine Notizen gefunden" -noNotifications: "Keine Benachrichtigungen gefunden" +noNotes: "Keine Notizen" +noNotifications: "Keine Benachrichtigungen" instance: "Instanz" settings: "Einstellungen" basicSettings: "Allgemeine Einstellungen" -otherSettings: "Weitere Einstellungen" -openInWindow: "In einem Fenster öffnen" +otherSettings: "Andere Einstellungen" +openInWindow: "In Fenster öffnen" profile: "Profil" timeline: "Chronik" -noAccountDescription: "Dieser Nutzer hat seine Profilbeschreibung noch nicht ausgefüllt" -login: "Anmelden" -loggingIn: "Du wirst angemeldet …" -logout: "Abmelden" +noAccountDescription: "Dieser Nutzer hat seine Profilbeschreibung noch nicht ausgefüllt." +login: "Einloggen" +loggingIn: "Du wirst eingeloggt..." +logout: "Ausloggen" signup: "Registrieren" -uploading: "Wird hochgeladen …" +uploading: "Upload läuft" save: "Speichern" users: "Benutzer" addUser: "Benutzer hinzufügen" favorite: "Zu Favoriten hinzufügen" favorites: "Favoriten" unfavorite: "Aus Favoriten entfernen" -favorited: "Zu Favoriten hinzugefügt." -alreadyFavorited: "Bereits zu den Favoriten hinzugefügt." -cantFavorite: "Hinzufügen zu Favoriten fehlgeschlagen." -pin: "An dein Profil anheften" -unpin: "Von deinem Profil lösen" +pin: "Anheften" +unpin: "Lösen" copyContent: "Inhalt kopieren" copyLink: "Link kopieren" delete: "Löschen" @@ -48,28 +43,26 @@ deleteAndEditConfirm: "Möchtest du diese Notiz wirklich löschen und bearbeiten addToList: "Zu Liste hinzufügen" sendMessage: "Nachricht senden" copyUsername: "Benutzernamen kopieren" -searchUser: "Nach einem Benutzer suchen" +searchUser: "Benutzersuche" reply: "Antworten" -loadMore: "Mehr laden" -showMore: "Mehr anzeigen" -showLess: "Schließen" -youGotNewFollower: "ist dir gefolgt" +loadMore: "Mehr anzeigen" +youGotNewFollower: "Du hast einen neuen Follower" receiveFollowRequest: "Follow-Anfrage erhalten" followRequestAccepted: "Follow-Anfrage akzeptiert" mention: "Erwähnung" mentions: "Erwähnungen" directNotes: "Direktnachrichten" -importAndExport: "Import und Export" -import: "Import" -export: "Export" +importAndExport: "Importieren und Exportieren" +import: "Importieren" +export: "Exportieren" files: "Dateien" download: "Herunterladen" -driveFileDeleteConfirm: "Möchtest du die Datei „{name}“ wirklich löschen? Notizen mit dieser Datei werden ebenso verschwinden." +driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" löschen? Die zugehörige Notiz wird ebenso verschwinden." unfollowConfirm: "Möchtest du {name} nicht mehr folgen?" exportRequested: "Du hast einen Export angefragt. Dies kann etwas Zeit in Anspruch nehmen. Sobald der Export abgeschlossen ist, wird er deiner Drive hinzugefügt." importRequested: "Du hast einen Import angefragt. Dies kann etwas Zeit in Anspruch nehmen." lists: "Listen" -noLists: "Keine Listen gefunden" +noLists: "Du hast keine Listen" note: "Notiz" notes: "Notizen" following: "Folgt" @@ -80,39 +73,33 @@ manageLists: "Listen verwalten" error: "Fehler" somethingHappened: "Ein Fehler ist aufgetreten" retry: "Wiederholen" -pageLoadError: "Die Seite konnte nicht geladen werden." -pageLoadErrorDescription: "Dieser Fehler wird meist durch Netzwerkfehler oder den Browser-Cache verursacht. Bitte leere den Cache oder versuche es nach einiger Zeit erneut." -serverIsDead: "Dieser Server antwortet nicht. Bitte warte einen Moment und versuche es dann erneut." -youShouldUpgradeClient: "Bitte aktualisiere diese Seite, um eine neuere Version deines Clients zu verwenden." +pageLoadError: "Laden der Seite fehlgeschlagen." +pageLoadErrorDescription: "Dieser Fehler wird meist durch Netzwerkfehler oder den Browser-Cache verursacht. Versuche den Browser-Cache zu leeren und es nach kurzer Zeit noch einmal zu probieren." enterListName: "Listennamen eingeben" privacy: "Privatsphäre" makeFollowManuallyApprove: "Follow-Anfragen benötigen Bestätigung" defaultNoteVisibility: "Standardsichtbarkeit" follow: "Folgen" -followRequest: "Follow-Anfrage senden" +followRequest: "Follow-Anfrage" followRequests: "Follow-Anfragen" unfollow: "Nicht mehr folgen" -followRequestPending: "Follow-Anfrage ausstehend" +followRequestPending: "Ausstehende Follow-Anfrage" enterEmoji: "Gib ein Emoji ein" renote: "Renote" unrenote: "Renote zurücknehmen" -renoted: "Renote getätigt." -cantRenote: "Renote dieses Beitrags nicht möglich." -cantReRenote: "Renote einer Renote nicht möglich." quote: "Zitieren" -pinnedNote: "Angeheftete Notiz" -pinned: "Angeheftet" +pinnedNote: "Angepinnte Notiz" you: "Du" -clickToShow: "Zum Anzeigen anklicken" +clickToShow: "Klicke, um diesen Inhalt anzusehen" sensitive: "NSFW" add: "Hinzufügen" reaction: "Reaktionen" -reactionSetting: "In der Reaktionsauswahl anzuzeigende Reaktionen" -reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen" +reactionSettingDescription: "Gib deine Lieblingsreaktionen ein, um sie der Reaktionsauswahl hinzuzufügen." +reactionSettingDescription2: "Ziehen zum Reorganisieren, Klicken zum Löschen." rememberNoteVisibility: "Notizsichtbarkeit merken" attachCancel: "Anhang entfernen" markAsSensitive: "Als NSFW markieren" -unmarkAsSensitive: "Als nicht NSFW markieren" +unmarkAsSensitive: "Markierung als NSFW zurücknehmen" enterFileName: "Dateinamen eingeben" mute: "Stummschalten" unmute: "Stummschaltung aufheben" @@ -123,51 +110,46 @@ unsuspend: "Sperrung aufheben" blockConfirm: "Möchtest du diesen Benutzer wirklich blockieren?" unblockConfirm: "Möchtest du diese Blockierung wirklich aufheben?" suspendConfirm: "Möchtest du diesen Benutzer wirklich sperren?" -unsuspendConfirm: "Möchtest du diesen Benutzer wirklich entsperren?" -selectList: "Liste auswählen" +unsuspendConfirm: "Möchtest du die Sperrung dieses Benutzers wirklich aufheben?" +selectList: "Wähle eine Liste aus" selectAntenna: "Antenne auswählen" selectWidget: "Widget auswählen" editWidgets: "Widgets bearbeiten" editWidgetsExit: "Fertig" customEmojis: "Benutzerdefinierte Emojis" emoji: "Emoji" -emojis: "Emojis" -emojiName: "Emoji-Name" +emojiName: "Emojiname" emojiUrl: "Emoji-URL" addEmoji: "Emoji hinzufügen" settingGuide: "Empfohlene Einstellung" -cacheRemoteFiles: "Dateien von fremden Instanzen im Cache speichern" -cacheRemoteFilesDescription: "Ist diese Einstellung deaktiviert, so werden Dateien fremder Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz auf diesem Server gespart, aber durch fehlende Generierung von Vorschaubildern mehr Bandbreite verwendet." +cacheRemoteFiles: "Dateien von anderen Instanzen im Cache speichern" +cacheRemoteFilesDescription: "Wenn diese Einstellung deaktiviert ist, werden Dateien anderer Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz gespart, aber mehr Bandbreite verbraucht, da keine Vorschaubilder generiert werden." flagAsBot: "Als Bot markieren" -flagAsBotDescription: "Aktiviere diese Option, falls dieses Benutzerkonto durch ein Programm gesteuert wird. Falls aktiviert, agiert es als Flag für andere Entwickler zur Verhinderung von endlosen Kettenreaktionen mit anderen Bots und lässt Misskeys interne Systeme dieses Benutzerkonto als Bot behandeln." flagAsCat: "Als Katze markieren" -flagAsCatDescription: "Aktiviere diese Option, um dieses Benutzerkonto als Katze zu markieren." -flagShowTimelineReplies: "Antworten in der Chronik anzeigen" -flagShowTimelineRepliesDescription: "Ist diese Option aktiviert, so werden Antworten von Benutzern auf die Notizen anderer Benutzer in der Chronik angezeigt." -autoAcceptFollowed: "Follow-Anfragen von Benutzern, denen du folgst, automatisch akzeptieren" -addAccount: "Benutzerkonto hinzufügen" -loginFailed: "Anmeldung fehlgeschlagen" +autoAcceptFollowed: "Follow-Anfragen automatisch akzeptieren" +addAcount: "Benutzerkonto hinzufügen" +loginFailed: "Login fehlgeschlagen" showOnRemote: "Auf Ursprungsinstanz ansehen" general: "Allgemein" wallpaper: "Hintergrund" setWallpaper: "Hintergrund festlegen" removeWallpaper: "Hintergrund entfernen" -searchWith: "Suchen: {q}" +searchWith: "Suche: {q}" youHaveNoLists: "Du hast keine Listen" followConfirm: "Möchtest du {name} wirklich folgen?" proxyAccount: "Proxy-Benutzerkonto" proxyAccountDescription: "Ein Proxy-Benutzerkonto ist ein Benutzerkonto, das sich für Nutzer unter bestimmten Konditionen wie ein Follower aus einer fremden Instanz verhält. Zum Beispiel wird die Aktivität eines Nutzers aus einer fremden Instanz nicht an diese Instanz übermittelt, falls es keinen Benutzer dieser Instanz gibt, der diesem Nutzer aus fremder Instanz folgt. In diesem Fall folgt stattdessen das Proxy-Benutzerkonto." -host: "Hostname" -selectUser: "Benutzer auswählen" +host: "Host" +selectUser: "Benutzer wählen" recipient: "Empfänger" annotation: "Anmerkung" federation: "Föderation" -instances: "Instanzen" +instances: "Instanz" registeredAt: "Registriert am" -latestRequestSentAt: "Letzte Anfrage gesendet" -latestRequestReceivedAt: "Letzte Anfrage erhalten" -latestStatus: "Neuster Status" -storageUsage: "Verbrauchter Speicherplatz" +latestRequestSentAt: "Letzte Anfrage gesendet am" +latestRequestReceivedAt: "Letzte Anfrage erhalten am" +latestStatus: "Neuester Status" +storageUsage: "Speicherplatzverbrauch" charts: "Diagramme" perHour: "Pro Stunde" perDay: "Pro Tag" @@ -187,107 +169,104 @@ instanceInfo: "Instanzinformationen" statistics: "Statistiken" clearQueue: "Warteschlange leeren" clearQueueConfirmTitle: "Möchtest du die Warteschlange wirklich leeren?" -clearQueueConfirmText: "Hierdurch werden jegliche noch nicht gesendete Notizen nicht förderiert. Normalerweise wird dies nicht benötigt." +clearQueueConfirmText: "Jegliche Notizen, die sich noch in der Warteschlange befinden, werden hierdurch nicht föderiert. Diese Aktion wird normalerweise NICHT benötigt." clearCachedFiles: "Cache leeren" clearCachedFilesConfirm: "Sollen alle im Cache gespeicherten Dateien von anderen Instanzen wirklich gelöscht werden?" blockedInstances: "Blockierte Instanzen" -blockedInstancesDescription: "Gib die Hostnamen der Instanzen, welche blockiert werden sollen, durch Zeilenumbrüche getrennt an. Blockierte Instanzen können mit dieser instanz nicht mehr kommunizieren." -muteAndBlock: "Stummschaltungen und Blockierungen" +blockedInstancesDescription: "Gib den Hostnamen der Instanz an, die blockiert werden soll. Blockierte Instanzen können nicht mehr mit dieser kommunizieren." +muteAndBlock: "Stummgeschaltet / Blockiert" mutedUsers: "Stummgeschaltete Benutzer" blockedUsers: "Blockierte Benutzer" -noUsers: "Keine Benutzer gefunden" +noUsers: "Keine Benutzer" editProfile: "Profil bearbeiten" noteDeleteConfirm: "Möchtest du diese Notiz wirklich löschen?" -pinLimitExceeded: "Du kannst nicht noch mehr Notizen anheften." -intro: "Misskey ist installiert! Lass uns nun ein Administratorkonto einrichten." +pinLimitExceeded: "Du kannst nicht noch mehr Notizen anpinnen." +intro: "Misskey Installation abgeschlossen! Lass uns nun ein Administratorkonto erstellen." done: "Fertig" -processing: "In Bearbeitung …" +processing: "In Bearbeitung" preview: "Vorschau" default: "Standard" -defaultValueIs: "Standardwert: {value}" -noCustomEmojis: "Keine benutzerdefinierten Emojis gefunden" -noJobs: "Keine Jobs vorhanden" -federating: "Wird föderiert" +noCustomEmojis: "Es existieren keine Emojis" +noJobs: "Es gibt keine Jobs" +federating: "Föderiert" blocked: "Blockiert" suspended: "Gesperrt" all: "Alles" -subscribing: "Wird abonniert" -publishing: "Wird veröffentlicht" +subscribing: "Abonnieren" +publishing: "Veröffentlichen" notResponding: "Antwortet nicht" instanceFollowing: "Gefolgt auf der Instanz" instanceFollowers: "Follower der Instanz" -instanceUsers: "Benutzer der Instanz" +instanceUsers: "Benutzer dieser Instanz" changePassword: "Passwort ändern" security: "Sicherheit" -retypedNotMatch: "Die Eingaben stimmen nicht überein." -currentPassword: "Aktuelles Passwort" +retypedNotMatch: "Eingaben stimmen nicht überein." +currentPassword: "Momentanes Passwort" newPassword: "Neues Passwort" -newPasswordRetype: "Neues Passwort bestätigen" +newPasswordRetype: "Neues Passwort (wiederholen)" attachFile: "Datei anhängen" more: "Mehr!" featured: "Beliebt" usernameOrUserId: "Benutzername oder Benutzer-ID" noSuchUser: "Benutzer nicht gefunden" -lookup: "Anfragen" +lookup: "Abfragen" announcements: "Ankündigungen" imageUrl: "Bild-URL" remove: "Löschen" removed: "Erfolgreich gelöscht" -removeAreYouSure: "Möchtest du „{x}“ wirklich entfernen?" -deleteAreYouSure: "Möchtest du „{x}“ wirklich löschen?" +removeAreYouSure: "Möchtest du \"{x}\" wirklich löschen?" +deleteAreYouSure: "Möchtest du \"{x}\" wirklich löschen?" resetAreYouSure: "Wirklich zurücksetzen?" -saved: "Erfolgreich gespeichert" +saved: "Gespeichert" messaging: "Chat" upload: "Hochladen" -keepOriginalUploading: "Originalbild speichern" -keepOriginalUploadingDescription: "Speichert das Originalbild so, wie es ist. Ist dies deaktiviert, wird eine Version zum Anzeigen im Internet generiert." fromDrive: "Aus Drive" fromUrl: "Von einer URL" uploadFromUrl: "Von einer URL hochladen" uploadFromUrlDescription: "URL der hochzuladenden Datei" uploadFromUrlRequested: "Upload angefordert" -uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis das Hochladen abgeschlossen ist." +uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis der Upload abgeschlossen ist." explore: "Erkunden" +games: "Misskey Spiele" messageRead: "Gelesen" noMoreHistory: "Kein weiterer Verlauf vorhanden" startMessaging: "Neuen Chat erstellen" -nUsersRead: "Von {n} Benutzern gelesen" +nUsersRead: "Von {n} gelesen" agreeTo: "Ich stimme {0} zu" tos: "Nutzungsbedingungen" start: "Anfangen" home: "Startseite" -remoteUserCaution: "Diese Informationen sind möglicherweise unvollständig, da der Benutzer von einer fremden Instanz stammt." +remoteUserCaution: "Diese Informationen sind möglicherweise veraltet, da der Benutzer von einer anderen Instanz stammt." activity: "Aktivität" images: "Bilder" birthday: "Geburtstag" yearsOld: "{age} Jahre alt" registeredDate: "Registrationsdatum" location: "Ort" -theme: "Farbschema" -themeForLightMode: "Helles Farbschema" -themeForDarkMode: "Dunkles Farbschema" +theme: "Farbthemen" +themeForLightMode: "Farbthema, das im Hellmodus genutzt wird" +themeForDarkMode: "Farbthema, das im Dunkelmodus genutzt wird" light: "Hell" dark: "Dunkel" -lightThemes: "Helle Farbschemata" -darkThemes: "Dunkle Farbschemata" -syncDeviceDarkMode: "Einstellung deines Geräts übernehmen" +lightThemes: "Helle Farbthemen" +darkThemes: "Dunkle Farbthemen" +syncDeviceDarkMode: "Dunkelmodus mit den Einstellungen deines Gerätes synchronisieren" drive: "Drive" fileName: "Dateiname" selectFile: "Datei auswählen" selectFiles: "Dateien auswählen" -selectFolder: "Ordner auswählen" -selectFolders: "Ordner auswählen" +selectFolder: "Wähle einen Ordner" +selectFolders: "Wähle Ordner" renameFile: "Datei umbenennen" folderName: "Ordnername" createFolder: "Ordner erstellen" renameFolder: "Ordner umbenennen" deleteFolder: "Ordner löschen" addFile: "Datei hinzufügen" -emptyDrive: "Deine Drive ist leer" -emptyFolder: "Dieser Ordner ist leer" +emptyDrive: "Drive ist leer" +emptyFolder: "Der Ordner ist leer" unableToDelete: "Nicht löschbar" inputNewFileName: "Gib einen neuen Dateinamen ein" -inputNewDescription: "Gib eine neue Beschreibung ein" inputNewFolderName: "Gib einen neuen Ordnernamen ein" circularReferenceFolder: "Der Zielordner ist ein Unterorder des Ordners, den du verschieben möchtest." hasChildFilesOrFolders: "Dieser Ordner kann nicht gelöscht werden, da er nicht leer ist." @@ -297,10 +276,10 @@ avatar: "Profilbild" banner: "Banner" nsfw: "NSFW" whenServerDisconnected: "Bei Verbindungsverlust zum Server" -disconnectedFromServer: "Die Verbindung zum Server wurde getrennt" +disconnectedFromServer: "Verbindung zum Server wurde getrennt" reload: "Aktualisieren" doNothing: "Ignorieren" -reloadConfirm: "Seite neu laden?" +reloadConfirm: "Möchtest du die Chronik aktualisieren?" watch: "Beobachten" unwatch: "Nicht mehr beobachten" accept: "Akzeptieren" @@ -311,35 +290,34 @@ instanceDescription: "Beschreibung der Instanz" maintainerName: "Betreiber" maintainerEmail: "Betreiber-Email" tosUrl: "URL der Nutzungsbedingungen" -thisYear: "Jahr" -thisMonth: "Monat" +thisYear: "Dieses Jahr" +thisMonth: "Dieser Monat" today: "Heute" dayX: "{day}" monthX: "{month}" yearX: "{year}" pages: "Seiten" integration: "Integration" -connectService: "Verbinden" -disconnectService: "Trennen" +connectSerice: "Verbinden" +disconnectSerice: "Trennen" enableLocalTimeline: "Lokale Chronik aktivieren" enableGlobalTimeline: "Globale Chronik aktivieren" disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind." registration: "Registrieren" enableRegistration: "Registration neuer Benutzer erlauben" invite: "Einladen" -driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto" -driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen" +proxyRemoteFiles: "Dateien anderer Instanzen durch Proxy leiten" +proxyRemoteFilesDescription: "Wenn diese Einstellung aktiviert ist, dann werden Dateien von anderen Instanzen, welche entweder nicht lokal gespeichert sind oder durch Überschreiten des Speicherlimits gelöscht wurden, durch einen Proxy geleitet. Hierbei wird auch ein Vorschaubild generiert. \n Dies hat keinen Effekt auf den Speicherplatz des Servers." +driveCapacityPerLocalAccount: "Drivekapazität pro lokales Benutzerkonto" +driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer anderer Instanzen" inMb: "In Megabytes" -iconUrl: "Icon-URL (favicon etc)" +iconUrl: "Icon-URL" bannerUrl: "Banner-URL" -backgroundImageUrl: "Hintergrundbild-URL" -basicInfo: "Grundlegende Informationen" -pinnedUsers: "Angeheftete Benutzer" -pinnedUsersDescription: "Gib durch Leerzeichen getrennte Benutzer an, die an die \"Erkunden\"-Seite angeheftet werden sollen." -pinnedPages: "Angeheftete Seiten" -pinnedPagesDescription: "Gib durch Leerzeilen getrennte Pfäde zu Seiten an, die an die Startseite dieser Instanz angeheftet werden sollen.\n" -pinnedClipId: "ID des anzuheftenden Clips" -pinnedNotes: "Angeheftete Notizen" +basicInfo: "Basisdaten" +pinnedUsers: "Angepinnte Benutzer" +pinnedUsersDescription: "Gib einen Benutzernamen pro Zeile ein. Diese werden im \"Erkunden\" Tab angezeigt." +pinnedPages: "Angepinnte Seiten" +pinnedPagesDescription: "Gib hier die Pfäde zu den Seiten an, die du an die Spitze dieser Instanz anheften möchtest, getrennt durch neue Zeilen." hcaptcha: "hCaptcha" enableHcaptcha: "hCaptcha aktivieren" hcaptchaSiteKey: "Site key" @@ -348,17 +326,18 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "reCAPTCHA aktivieren" recaptchaSiteKey: "Site key" recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen führen. Sollen die anderen Systeme deaktiviert werden? Durch Abbrechen können mehrere Systeme aktiviert bleiben." +avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen führen. Möchtest du die anderen Systeme deaktivieren? Du kannst mehrere aktiviert lassen, in dem du auf Abbrechen drückst." antennas: "Antennen" manageAntennas: "Antennen verwalten" name: "Name" antennaSource: "Antennenquelle" -antennaKeywords: "Zu beobachtende Schlüsselwörter" -antennaExcludeKeywords: "Zu ignorierende Schlüsselwörter" -antennaKeywordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit Leerzeichen trennen, zum Nutzen einer \"ODER\"-Verknüpfung Einträge mit einem Zeilenumbruch trennen" +antennaKeywords: "Schlüsselwörter, die beobachtet werden sollen" +antennaExcludeKeywords: "Schlüsselwörter, die ignoriert werden sollen" +antennaKeywordsDescription: "Mit Leerzeichen für eine \"UND\"-Verknüpfung trennen, durch Zeilenumbrüche für eine \"ODER\"-Verknüpfung trennen." notifyAntenna: "Über neue Notizen benachrichtigen" withFileAntenna: "Nur Notizen mit Dateien" -enableServiceworker: "Push-Benachrichtigungen im Browser aktivieren" +serviceworker: "ServiceWorker" +enableServiceworker: "ServiceWorker aktivieren" antennaUsersDescription: "Benutzernamen getrennt durch Zeilenumbrüche angeben" caseSensitive: "Groß-/Kleinschreibung unterscheiden" withReplies: "Antworten beinhalten" @@ -376,15 +355,21 @@ recentlyDiscoveredUsers: "Vor kurzem gefundene Benutzer" exploreUsersCount: "Es gibt {count} Benutzer" exploreFediverse: "Das Fediverse erkunden" popularTags: "Beliebte Schlagwörter" -userList: "Liste" +userList: "Listen" about: "Über" aboutMisskey: "Über Misskey" +aboutMisskeyText: "Misskey ist Open-Source-Software die von syuilo seit 2014 entwickelt wird." +misskeyMembers: "Misskey wird momentan von den unten aufgelisteten Mitgliedern weiterentwickelt und instand gehalten:" +misskeySource: "Der Quelltext ist hier verfügbar:" +misskeyTranslation: "Hilf dabei, Misskey zu übersetzen:" +misskeyDonate: "Spende an Misskey, um die Weiterentwicklung zu unterstützen:" +morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰" +patrons: "UnterstützerInnen" administrator: "Administrator" token: "Token" twoStepAuthentication: "Zwei-Faktor-Authentifizierung" moderator: "Moderator" -moderation: "Moderation" -nUsersMentioned: "Von {n} Benutzern erwähnt" +nUsersMentioned: "{n} Benutzer reden darüber" securityKey: "Sicherheitsschlüssel" securityKeyName: "Schlüsselname" registerSecurityKey: "Sicherheitsschlüssel registrieren" @@ -392,7 +377,7 @@ lastUsed: "Zuletzt benutzt" unregister: "Deaktivieren" passwordLessLogin: "Passwortloses Anmelden einrichten" resetPassword: "Passwort zurücksetzen" -newPasswordIs: "Das neue Passwort ist „{password}“" +newPasswordIs: "Das neue Passwort ist \"{password}\"" reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren" share: "Teilen" notFound: "Nicht gefunden" @@ -401,14 +386,14 @@ uploadFolder: "Standardordner für Uploads" cacheClear: "Cache leeren" markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren" markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren" -markAsReadAllTalkMessages: "Alle Chats als gelesen markieren" +markAsReadAllTalkMessages: "Alle Nachrichten als gelesen markieren" help: "Hilfe" inputMessageHere: "Hier Nachricht eingeben" close: "Schließen" group: "Gruppe" groups: "Gruppen" createGroup: "Gruppe erstellen" -ownedGroups: "Meine Gruppen" +ownedGroups: "Eigene Gruppen" joinedGroups: "Beigetretene Gruppen" invites: "Einladungen" groupName: "Gruppenname" @@ -416,29 +401,30 @@ members: "Mitglieder" transfer: "Übertragen" messagingWithUser: "Privatchat" messagingWithGroup: "Gruppenchat" -title: "Titel" +title: "Betreff" text: "Text" enable: "Aktivieren" next: "Weiter" retype: "Erneut eingeben" noteOf: "Notiz von {user}" inviteToGroup: "Zu Gruppe einladen" -quoteAttached: "Zitat" -quoteQuestion: "Als Zitat anhängen?" -noMessagesYet: "Noch keine Nachrichten vorhanden" +maxNoteTextLength: "Maximale Länge von Notizen" +quoteAttached: "Zitiert" +quoteQuestion: "Als Zitat anfügen?" +noMessagesYet: "Noch keine Nachrichten" newMessageExists: "Du hast eine neue Nachricht" onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden" -signinRequired: "Bitte registriere oder melde dich an, um fortzufahren" +signinRequired: "Anmeldung erforderlich" invitations: "Einladungen" invitationCode: "Einladungscode" -checking: "Wird überprüft …" +checking: "Wird überprüft..." available: "Verfügbar" unavailable: "Unverfügbar" -usernameInvalidFormat: "Du kannst Klein- und Großbuchstaben, Zahlen sowie Unterstriche verwenden" +usernameInvalidFormat: "Buchstaben, Zahlen und Unterstriche sind verwendbar." tooShort: "Zu kurz" tooLong: "Zu lang" weakPassword: "Schwaches Passwort" -normalPassword: "Durchschnittliches Passwort" +normalPassword: "Standardpasswort" strongPassword: "Starkes Passwort" passwordMatched: "Stimmt überein" passwordNotMatched: "Stimmt nicht überein" @@ -446,57 +432,54 @@ signinWith: "Mit {x} anmelden" signinFailed: "Anmeldung fehlgeschlagen. Überprüfe Benutzername und Passswort." tapSecurityKey: "Tippe deinen Sicherheitsschlüssel an" or: "Oder" -language: "Sprache" uiLanguage: "Sprache der Benutzeroberfläche" groupInvited: "Du wurdest in eine Gruppe eingeladen" aboutX: "Über {x}" useOsNativeEmojis: "Eingebaute Emojis des Betriebssystems benutzen" -disableDrawer: "Keine ausfahrbaren Menüs verwenden" youHaveNoGroups: "Keine Gruppen vorhanden" joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigene." -noHistory: "Kein Verlauf gefunden" -signinHistory: "Anmeldungsverlauf" +noHistory: "Kein Verlauf" disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren" -doing: "In Bearbeitung …" +doing: "In Bearbeitung" category: "Kategorie" tags: "Schlagwörter" -docSource: "Quellcode dieses Dokuments" +docSource: "Quelle dieses Dokuments" createAccount: "Benutzerkonto erstellen" -existingAccount: "Bestehendes Benutzerkonto" +existingAcount: "Bestehendes Benutzerkonto" regenerate: "Regenerieren" fontSize: "Schriftgröße" -noFollowRequests: "Keine ausstehenden Follow-Anfragen vorhanden" +noFollowRequests: "Du hast keine Follow-Anfragen" openImageInNewTab: "Bilder in neuem Tab öffnen" dashboard: "Dashboard" local: "Lokal" remote: "Fremd" total: "Gesamt" -weekOverWeekChanges: "Veränderung zu letzter Woche" -dayOverDayChanges: "Veränderung zu Gestern" +weekOverWeekChanges: "Wöchentlich" +dayOverDayChanges: "Täglich" appearance: "Aussehen" clientSettings: "Client-Einstellungen" accountSettings: "Benutzerkonto-Einstellungen" -promotion: "Werbung" -promote: "Werbung schalten" +promotion: "Hervorgehoben" +promote: "Hervorheben" numberOfDays: "Anzahl der Tage" hideThisNote: "Diese Notiz verstecken" -showFeaturedNotesInTimeline: "Beliebte Notizen in der Chronik anzeigen" -objectStorage: "Object Storage" -useObjectStorage: "Object Storage verwenden" +showFeaturedNotesInTimeline: "Beliebte Notizen in Chronik anzeigen" +objectStorage: "Objektspeicher" +useObjectStorage: "Objektspeicher verwenden" objectStorageBaseUrl: "Basis-URL" -objectStorageBaseUrlDesc: "Die als Referenz verwendete URL. Verwendest du einen CDN oder Proxy, gib dessen URL an. Für S3 verwende 'https://.s3.amazonaws.com'. Für GCS o.ä. verwende 'https://storage.googleapis.com/'." +objectStorageBaseUrlDesc: "URL-Prefix, der zum Konstruieren der Objekt- bzw. Mediareferenz-URL genutzt wird. Falls du ein CDN- oder einen Proxy nutzt, gib dessen URL ein. Ansonsten gib die Adresse, der dir von deinem Anbieter z.B. in dessen Servicehandbuch gegeben wurde, an. Beispielsweise 'https://.s3.amazonaws.com' für AWS S3 oder 'https://storage.googleapis.com/' für GCS." objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Bitte gib den Namen des Buckets an, der bei deinem Anbieter verwendet wird." +objectStorageBucketDesc: "Bitte gib den Bucket-Namen an, der bei deinem Anbieter verwendet wird." objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Dateien werden in Ordnern unter diesem Prefix gespeichert." +objectStoragePrefixDesc: "Dateien werden im Ordner dieses Prefixes gespeichert." objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Im Falle von S3 leerlassen, für andere Anbieter den relevanten Endpoint im Format „“ oder „:“ angeben." +objectStorageEndpointDesc: "Dieses Feld leerlassen, falls du AWS S3 verwendest. Ansonsten trage den Endpoint im Format \"\" oder \":\" an, den Angaben deines Anbieters entsprechend." objectStorageRegion: "Region" -objectStorageRegionDesc: "Gib eine Region wie z.B. „xx-east-1“ an. Falls dein Anbieter nicht zwischen Regionen unterscheidet, lass dieses Feld leer oder gib „us-east-1“ an." +objectStorageRegionDesc: "Gib eine Region (wie z.B. \"xx-east-1\") an. Falls dein Anbieter nicht zwischen Regionen unterscheidet, lass dieses Feld leer oder gib \"us-east-1\" an." objectStorageUseSSL: "SSL verwenden" -objectStorageUseSSLDesc: "Deaktiviere dies, falls du für API-Verbindungen kein HTTPS verwenden wirst" +objectStorageUseSSLDesc: "Deaktiviere dies falls du für die API-Verbindungen kein HTTPS verwenden wirst" objectStorageUseProxy: "Über Proxy verbinden" -objectStorageUseProxyDesc: "Deaktiviere dies, falls du keinen Proxy für den Objektspeicher verwenden wirst" +objectStorageUseProxyDesc: "Deaktiviere dies falls du keinen Proxy für den Objektspeicher verwenden wirst" objectStorageSetPublicRead: "Bei Upload auf \"public-read\" stellen" serverLogs: "Serverprotokolle" deleteAll: "Alle löschen" @@ -504,42 +487,40 @@ showFixedPostForm: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik an newNoteRecived: "Es gibt neue Notizen" sounds: "Töne" listen: "Anhören" -none: "Nichts" -showInPage: "In einer Seite anzeigen" +none: "Keine" +showInPage: "In Seite anzeigen" popout: "Pop-Up" volume: "Lautstärke" -masterVolume: "Gesamtlautstärke" details: "Details" -chooseEmoji: "Emoji auswählen" -unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden" +chooseEmoji: "Wähle ein Emoji" +unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden." recentUsed: "Vor kurzem verwendet" install: "Installieren" uninstall: "Uninstallieren" installedApps: "Authorisierte Anwendungen" nothing: "Hier gibt es nichts zu sehen" -installedDate: "Authorisiert am" -lastUsedDate: "Zuletzt verwendet am" +installedDate: "Authorisiert" +lastUsedDate: "Zuletzt verwendet" state: "Status" sort: "Sortieren" ascendingOrder: "Aufsteigende Reihenfolge" descendingOrder: "Absteigende Reihenfolge" scratchpad: "Testumgebung" -scratchpadDescription: "Die Testumgebung bietet einen Bereich für AiScript-Experimente. Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf Misskey überprüfen." +scratchpadDescription: "Die Testumgebung bietet eine experimentale Umgebung für AiScript. Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf Misskey überprüfen." output: "Ausgabe" script: "Skript" disablePagesScript: "AiScript auf Seiten deaktivieren" -updateRemoteUser: "Benutzerinformationen aktualisieren" +updateRemoteUser: "Informationen über den Benutzer der fremder Instanz aktualisieren" deleteAllFiles: "Alle Dateien löschen" deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?" removeAllFollowing: "Allen gefolgten Benutzern entfolgen" -removeAllFollowingDescription: "Dies entfolgt allen Benutzerkonten von {host}. Bitte führe dies durch, falls diese Instanz z.B. nicht mehr existiert." +removeAllFollowingDescription: "Allen Benutzerkonten von {host} entfolgen. Bitte führe dies durch, falls diese Instanz nicht mehr existiert." userSuspended: "Dieser Benutzer wurde gesperrt." userSilenced: "Dieser Benutzer wurde instanzweit stummgeschaltet." -yourAccountSuspendedTitle: "Dieses Benutzerkonto ist gesperrt" -yourAccountSuspendedDescription: "Dieses Benutzerkonto wurde gesperrt, da es gegen die Nutzungsbedingungen dieses Servers verstoßen hat. Trete mit dem Betreiber in Kontakt, falls du weitere Details erfahren möchtest. Bitte erstelle kein neues Benutzerkonto." -menu: "Menü" +sidebar: "Seitenleiste" divider: "Trenner" addItem: "Element hinzufügen" +rooms: "Raum" relays: "Relays" addRelay: "Relay hinzufügen" inboxUrl: "inbox-URL" @@ -547,61 +528,52 @@ addedRelays: "Hinzugefügte Relays" serviceworkerInfo: "Muss für Push-Benachrichtigungen aktiviert sein." deletedNote: "Gelöschte Notiz" invisibleNote: "Private Notiz" -enableInfiniteScroll: "Automatisch mehr laden" +enableInfiniteScroll: "Automatisch mehr Notizen laden" visibility: "Sichtbarkeit" poll: "Umfrage" -useCw: "Inhaltswarnung verwenden" +useCw: "Inhalt verstecken" enablePlayer: "Video-Player öffnen" disablePlayer: "Video-Player schließen" expandTweet: "Tweet ausklappen" -themeEditor: "Farbschema-Editor" +themeEditor: "Farbthemen-Editor" description: "Beschreibung" -describeFile: "Beschreibung hinzufügen" -enterFileDescription: "Beschreibung eingeben" author: "Autor" leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?" manage: "Verwaltung" plugins: "Plugins" -preferencesBackups: "Einstellungsbackups" +pluginInstallWarn: "Installiere nur vertrauenswürdige Plugins." deck: "Deck" undeck: "Deck verlassen" useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden" -useFullReactionPicker: "Vollständige Reaktionsauswahl verwenden" +useFullReactionPicker: "Vollständige Reaktionsauswahl nutzen" width: "Breite" height: "Höhe" -large: "Groß" -medium: "Mittel" -small: "Klein" generateAccessToken: "Zugriffstoken generieren" permission: "Berechtigungen" enableAll: "Alle aktivieren" disableAll: "Alle deaktivieren" -tokenRequested: "Zugriff zum Benutzerkonto gewähren" +tokenRequested: "Benutzerkontozugriff gewähren" pluginTokenRequestedDescription: "Dieses Plugin wird die hier konfigurierten Berechtigungen verwenden können." -notificationType: "Art der Benachrichtigung" +notificationType: "Benachrichtigungstyp" edit: "Bearbeiten" useStarForReactionFallback: "Verwende ★ falls das Reaktions-Emoji unbekannt ist" -emailServer: "Email-Server" +emailConfig: "Email-Server Konfiguration" enableEmail: "Email-Versand aktivieren" -emailConfigInfo: "Zur Email-Bestätigung bei Registrierung oder zum Zurücksetzen des Passworts verwendet" -email: "Email" -emailAddress: "Email-Adresse" +emailConfigInfo: "Zur Email-Bestätigung bei Registrierung und zum Zurücksetzen des Passworts verwendet" +email: "Email-Adresse" smtpConfig: "SMTP-Server Konfiguration" smtpHost: "Host" smtpPort: "Port" smtpUser: "Benutzername" smtpPass: "Passwort" -emptyToDisableSmtpAuth: "Benutzername und Passwort leer lassen, um SMTP-Verifizierung zu deaktivieren" +emptyToDisableSmtpAuth: "Benutzername und Passwort leer lassen um SMTP-Verifizierung zu deaktivieren" smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden" -smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest." -testEmail: "Emailversand testen" -wordMute: "Wortstummschaltung" -regexpError: "Fehler in einem regulären Ausdruck" -regexpErrorDescription: "Im regulären Ausdruck deiner {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:" -instanceMute: "Instanzstummschaltungen" -userSaysSomething: "{name} hat etwas gesagt" +smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest" +testEmail: "Email-Versand testen" +wordMute: "Wort-Stummschaltung" +userSaysSomething: "{name} hat etwas gesagt." makeActive: "Aktivieren" -display: "Anzeigeart" +display: "Anzeige" copy: "Kopieren" metrics: "Metriken" overview: "Übersicht" @@ -611,26 +583,21 @@ database: "Datenbank" channel: "Kanäle" create: "Erstellen" notificationSetting: "Benachrichtigungseinstellungen" -notificationSettingDesc: "Wähle die Art der anzuzeigenden Benachrichtigungen." +notificationSettingDesc: "Wähle die Art der anzuzeigenden Benachrichtigung" useGlobalSetting: "Globale Einstellung verwenden" -useGlobalSettingDesc: "Ist diese Option aktiviert, werden die Benachrichtigungseinstellungen deines Benutzerkontos verwendet. Durch ausschalten dieser Option können individuelle Einstellungen vorgenommen werden." -other: "Anderes" -regenerateLoginToken: "Anmeldetoken regenerieren" -regenerateLoginTokenDescription: "Den zur Anmeldung intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt." +useGlobalSettingDesc: "Wenn dies eingeschaltet ist, werden die Benachrichtigungseinstellungen deines Benutzerkontos verwendet. Wenn dies ausgeschaltet ist, können individuelle Einstellungen vorgenommen werden." +other: "Andere" +regenerateLoginToken: "Login-Token regenerieren" +regenerateLoginTokenDescription: "Den bei Logins intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt." setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren." fileIdOrUrl: "Datei-ID oder URL" -behavior: "Verhalten" +chatOpenBehavior: "Verhalten des Chatfensters bei Öffnung" sample: "Beispiel" -abuseReports: "Meldungen" +abuseReports: "Melden" reportAbuse: "Melden" reportAbuseOf: "{name} melden" -fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an." -abuseReported: "Deine Meldung wurde versendet. Vielen Dank." -reporter: "Melder" -reporteeOrigin: "Herkunft des Gemeldeten" -reporterOrigin: "Herkunft des Meldenden" -forwardReport: "Meldung an fremde Instanz weiterleiten" -forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt." +fillAbuseReportDescription: "Bitte gib Details für diese Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an." +abuseReported: "Die Meldung wurde versendet. Vielen Dank." send: "Senden" abuseMarkAsResolved: "Meldung als gelöst markieren" openInNewTab: "In neuem Tab öffnen" @@ -638,414 +605,97 @@ openInSideView: "In Seitenansicht öffnen" defaultNavigationBehaviour: "Standardnavigationsverhalten" editTheseSettingsMayBreakAccount: "Bei Bearbeitung dieser Einstellungen besteht die Gefahr, dein Benutzerkonto zu beschädigen." instanceTicker: "Instanz-Informationen von Notizen" -waitingFor: "Warte auf {x} …" +waitingFor: "Warte auf {x}" random: "Zufällig" system: "System" switchUi: "UI wechseln" desktop: "Desktop" -clip: "Clip erstellen" +clip: "Clip" createNew: "Neu erstellen" optional: "Optional" createNewClip: "Neuen Clip erstellen" -unclip: "Aus Clip entfernen" -confirmToUnclipAlreadyClippedNote: "Diese Notiz ist bereits im \"{name}\" Clip enthalten. Möchtest du sie aus diesem Clip entfernen?" public: "Öffentlich" -i18nInfo: "Misskey wird durch freiwillige Helfer in viele verschiedene Sprachen übersetzt. Auf {link} kannst du mithelfen." -manageAccessTokens: "Zugriffstokens verwalten" -accountInfo: "Benutzerkonto-Informationen" -notesCount: "Anzahl der Notizen" -repliesCount: "Anzahl gesendeter Antworten" -renotesCount: "Anzahl getätigter Renotes" -repliedCount: "Anzahl erhaltener Antworten" -renotedCount: "Anzahl erhaltener Renotes" -followingCount: "Anzahl gefolgter Benutzer" -followersCount: "Anzahl an Followern" -sentReactionsCount: "Anzahl gesendeter Reaktionen" -receivedReactionsCount: "Anzahl erhaltener Reaktionen" -pollVotesCount: "Anzahl gesendeter Antworten auf Umfragen" -pollVotedCount: "Anzahl erhaltener Antworten auf Umfragen" -yes: "Ja" -no: "Nein" -driveFilesCount: "Anzahl der Dateien in Drive" -driveUsage: "Drive-Auslastung" -noCrawle: "Crawler-Indexierung ablehnen" -noCrawleDescription: "Suchmaschinen bitten, die eigene Profilseite, Notizen, Seiten usw. nicht zu indexieren." -lockedAccountInfo: "Auch wenn du Follow-Anfragen auf manuelle Bestätigung setzt, wird jede deiner Notizen öffentlich sichtbar sein, sofern du ihre Notizsichtbarkeit nicht auf \"Nur Follower\" setzt." -alwaysMarkSensitive: "Medien standardmäßig als NSFW markieren" -loadRawImages: "Anstatt Vorschaubilder immer Originalbilder anzeigen" -disableShowingAnimatedImages: "Animierte Bilder nicht abspielen" -verificationEmailSent: "Eine Bestätigungsmail wurde an deine Email-Adresse versendet. Besuche den dort enthaltenen Link, um die Verifizierung abzuschließen." -notSet: "Nicht konfiguriert" -emailVerified: "Email-Adresse bestätigt" -noteFavoritesCount: "Anzahl an als Favorit markierter Notizen" -pageLikesCount: "Anzahl an als \"Gefällt mir\" markierter Seiten" -pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten" -contact: "Kontakt" -useSystemFont: "Standardschriftart des Systems verwenden" -clips: "Clips" -experimentalFeatures: "Experimentelle Funktionalitäten" -developer: "Entwickler" -makeExplorable: "Benutzerkonto in „Erkunden“ sichtbar machen" -makeExplorableDescription: "Wenn diese Option deaktiviert ist, ist dein Benutzerkonto nicht im „Erkunden“-Bereich sichtbar." -showGapBetweenNotesInTimeline: "Abstände zwischen Notizen auf der Chronik anzeigen" -duplicate: "Duplizieren" -left: "Links" -center: "Mittig" -wide: "Breit" -narrow: "Schmal" -reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft. Jetzt aktualisieren?" -needReloadToApply: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft." -showTitlebar: "Titelleiste anzeigen" -clearCache: "Cache leeren" -onlineUsersCount: "{n} Benutzer sind online" -nUsers: "{n} Benutzer" -nNotes: "{n} Notizen" -sendErrorReports: "Fehlerberichte senden" -sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten von Fehlern detaillierte Fehlerinformationen an Misskey weitergegeben, was zur Verbesserung der Qualität von Misskey beiträgt.\nEnthalten in diesen Informationen sind u.a. die Version deines Betriebssystems, welchen Browser du verwendest und ein Verlauf deiner Aktivitäten innerhalb Misskey." -myTheme: "Mein Farbschema" -backgroundColor: "Hintergrundfarbe" -accentColor: "Akzentfarbe" -textColor: "Textfarbe" -saveAs: "Speichern als …" -advanced: "Fortgeschritten" -value: "Wert" -createdAt: "Erstellt am" -updatedAt: "Zuletzt geändert am" -saveConfirm: "Änderungen speichern?" -deleteConfirm: "Wirklich löschen?" -invalidValue: "Dieser Wert ist ungültig." -registry: "Registry" -closeAccount: "Benutzerkonto schließen" -currentVersion: "Momentane Version" -latestVersion: "Neuste Version" -youAreRunningUpToDateClient: "Du verwendest die neuste Version deines Clients." -newVersionOfClientAvailable: "Eine neuere Version deines Clients ist verfügbar." -usageAmount: "Verwendung" -capacity: "Kapazität" -inUse: "Verwendet" -editCode: "Code bearbeiten" -apply: "Anwenden" -receiveAnnouncementFromInstance: "Benachrichtigungen von dieser Instanz empfangen" -emailNotification: "Email-Benachrichtigungen" -publish: "Veröffentlichen" -inChannelSearch: "In Kanal suchen" -useReactionPickerForContextMenu: "Reaktionsauswahl durch Rechtsklick öffnen" -typingUsers: "{users} ist/sind am schreiben …" -jumpToSpecifiedDate: "Zu bestimmtem Datum springen" -showingPastTimeline: "Es wird eine alte Chronik angezeigt" -clear: "Zurückkehren" -markAllAsRead: "Alle als gelesen markieren" -goBack: "Zurück" -unlikeConfirm: "\"Gefällt mir\" wirklich entfernen?" -fullView: "Vollansicht" -quitFullView: "Vollansicht verlassen" -addDescription: "Beschreibung hinzufügen" -userPagePinTip: "Um Notizen hier erscheinen zu lassen, drücke \"An dein Profil anheften\" im Menü individueller Notizen." -notSpecifiedMentionWarning: "Diese Notiz enthält Erwähnungen von Nutzern, die nicht als Empfänger ausgewählt sind" -info: "Über" -userInfo: "Benutzerinformation" -unknown: "Unbekannt" -onlineStatus: "Onlinestatus" -hideOnlineStatus: "Onlinestatus verbergen" -hideOnlineStatusDescription: "Das Verbergen deines Onlinestatuses reduziert die Nützlichkeit von Funktionen wie der Suche." -online: "Online" -active: "Aktiv" -offline: "Offline" -notRecommended: "Nicht empfohlen" -botProtection: "Schutz vor Bots" -instanceBlocking: "Blockierte Instanzen" -selectAccount: "Benutzerkonto auswählen" -switchAccount: "Konto wechseln" -enabled: "Aktiviert" -disabled: "Deaktiviert" -quickAction: "Schnellaktionen" -user: "Benutzer" -administration: "Verwaltung" -accounts: "Benutzerkonten" -switch: "Wechseln" -noMaintainerInformationWarning: "Betreiberinformationen sind nicht konfiguriert." -noBotProtectionWarning: "Schutz vor Bots ist nicht konfiguriert." -configure: "Konfigurieren" -postToGallery: "Neuen Galeriebeitrag erstellen" -gallery: "Galerie" -recentPosts: "Neue Beiträge" -popularPosts: "Beliebte Beiträge" -shareWithNote: "Mit Notiz teilen" -ads: "Werbung" -expiration: "Frist" -memo: "Merkzettel" -priority: "Priorität" -high: "Hoch" -middle: "Mittel" -low: "Niedrig" -emailNotConfiguredWarning: "Keine Email-Adresse hinterlegt." -ratio: "Verhältnis" -previewNoteText: "Vorschau anzeigen" -customCss: "Benutzerdefiniertes CSS" -customCssWarn: "Verwende diese Einstellung nur, wenn du weißt, was sie tut. Ungültige Eingaben können dazu führen, dass der Client nicht mehr normal funktioniert." -global: "Global" -squareAvatars: "Profilbilder quadratisch anzeigen" -sent: "Gesendet" -received: "Erhalten" -searchResult: "Suchergebnisse" -hashtags: "Hashtags" -troubleshooting: "Problembehandlung" -useBlurEffect: "Weichzeichnungseffekt in der Benutzeroberfläche verwenden" -learnMore: "Mehr erfahren" -misskeyUpdated: "Misskey wurde aktualisiert!" -whatIsNew: "Änderungen anzeigen" -translate: "Übersetzen" -translatedFrom: "Aus {x} übersetzt" -accountDeletionInProgress: "Die Löschung deines Benutzerkontos ist momentan in Bearbeitung." -usernameInfo: "Ein Name, durch den dein Benutzerkonto auf diesem Server identifiziert werden kann. Du kannst das Alphabet (a~z, A~Z), Ziffern (0~9) oder Unterstriche (_) verwenden. Benutzernamen können später nicht geändert werden." -aiChanMode: "Ai-Modus" -keepCw: "Inhaltswarnungen beibehalten" -pubSub: "Pub/Sub Benutzerkonten" -lastCommunication: "Letzte Kommunikation" -resolved: "Gelöst" -unresolved: "Ungelöst" -breakFollow: "Follower entfernen" -itsOn: "Eingeschaltet" -itsOff: "Ausgeschaltet" -emailRequiredForSignup: "Angabe einer Email-Adresse als benötigt markieren" -unread: "Ungelesen" -filter: "Filter" -controlPanel: "Systemsteuerung" -manageAccounts: "Benutzerkonten verwalten" -makeReactionsPublic: "Reaktionsverlauf veröffentlichen" -makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktionen einsehen können." -classic: "Classic" -muteThread: "Thread stummschalten" -unmuteThread: "Threadstummschaltung aufheben" -ffVisibility: "Sichtbarkeit von Gefolgten/Followern" -ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir folgt." -continueThread: "Weiteren Threadverlauf anzeigen" -deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?" -incorrectPassword: "Falsches Passwort." -voteConfirm: "Wirklich für „{choice}“ abstimmen?" -hide: "Inhalt verbergen" -leaveGroup: "Gruppe verlassen" -leaveGroupConfirm: "Möchtest du „{name}“ wirklich verlassen?" -useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen" -welcomeBackWithName: "Willkommen zurück, {name}" -clickToFinishEmailVerification: "Drücke bitte auf [{ok}], um die Email-Bestätigung abzuschließen." -overridedDeviceKind: "Gerätetyp" -smartphone: "Smartphone" -tablet: "Tablet" -auto: "Automatisch" -themeColor: "Farbe der Instanz-Information" -size: "Größe" -numberOfColumn: "Spaltenanzahl" -searchByGoogle: "Suchen" -instanceDefaultLightTheme: "Instanzweites Standardfarbschema (Hell)" -instanceDefaultDarkTheme: "Instanzweites Standardfarbschema (Dunkel)" -instanceDefaultThemeDescription: "Gib den Farbschemencode im Objektformat ein." -mutePeriod: "Stummschaltungsdauer" -indefinitely: "Dauerhaft" -tenMinutes: "10 Minuten" -oneHour: "Eine Stunde" -oneDay: "Einen Tag" -oneWeek: "Eine Woche" -reflectMayTakeTime: "Es kann etwas dauern, bis sich dies widerspiegelt." -failedToFetchAccountInformation: "Benutzerkontoinformationen konnten nicht abgefragt werden" -rateLimitExceeded: "Versuchsanzahl überschritten" -cropImage: "Bild zuschneiden" -cropImageAsk: "Möchtest du das Bild zuschneiden?" -file: "Datei" -recentNHours: "Letzten {n} Stunden" -recentNDays: "Letzten {n} Tage" -noEmailServerWarning: "Es ist kein Email-Server konfiguriert." -thereIsUnresolvedAbuseReportWarning: "Es liegen ungelöste Meldungen vor." -recommended: "Empfehlung" -check: "Check" -driveCapOverrideLabel: "Die Drive-Kapazität dieses Nutzers verändern" -driveCapOverrideCaption: "Gib einen Wert von 0 oder weniger ein, um die Kapazität auf den Standard zurückzusetzen." -requireAdminForView: "Melde dich mit einem Administratorkonto an, um dies einzusehen." -isSystemAccount: "Ein Benutzerkonto, dass durch das System erstellt und automatisch kontrolliert wird." -typeToConfirm: "Bitte gib zur Bestätigung {x} ein" -deleteAccount: "Benutzerkonto löschen" -document: "Dokumentation" -numberOfPageCache: "Seitencachegröße" -numberOfPageCacheDescription: "Das Erhöhen dieses Caches führt zu einer angenehmerern Benutzererfahrung, erhöht aber Serverlast und Arbeitsspeicherauslastung." -logoutConfirm: "Wirklich abmelden?" -lastActiveDate: "Zuletzt verwendet am" -statusbar: "Statusleiste" -pleaseSelect: "Wähle eine Option" -reverse: "Umkehren" -colored: "Farbig" -refreshInterval: "Aktualisierungsrate" -label: "Beschriftung" -type: "Art" -speed: "Geschwindigkeit" -slow: "Langsam" -fast: "Schnell" -sensitiveMediaDetection: "Erkennung von NSFW-Medien" -localOnly: "Nur Lokal" -remoteOnly: "Nur für fremde Instanzen" -failedToUpload: "Hochladen fehlgeschlagen" -cannotUploadBecauseInappropriate: "Diese Datei kann nicht hochgeladen werden, da Anteile der Datei als möglicherweise NSFW festgestellt wurden." -cannotUploadBecauseNoFreeSpace: "Die Datei konnte nicht hochgeladen werden, da dein Drive-Speicherplatz aufgebraucht ist." -beta: "Beta" -enableAutoSensitive: "NSFW-Automarkierung" -enableAutoSensitiveDescription: "Setzt soweit möglich durch Verwendung von Machine Learning automatisch NSFW-Markierungen für Medien, die NSFW-Anteile beinhalten. Auch wenn du diese Option deaktiviert hast, ist sie möglicherweise auf Instanzebene aktiviert." -activeEmailValidationDescription: "Aktivert strengere Überprüfung von E-Mail-Adressen, d.h. Testen auf Wegwerfadressen und darauf, ob mit der Adresse tatsächlich kommuniziert werden kann. Ist dies deaktiviert, so wird nur das Format der E-Mail überprüft." -navbar: "Navigationsleiste" -shuffle: "Mischen" -account: "Benutzerkonto" -move: "Verschieben" -_sensitiveMediaDetection: - description: "Ermöglicht eine Erleichterung der Servermoderation durch die automatische Erkennungen von NSFW-Medien unter Verwendung von Machine Learning. Hierdurch wird die Serverlast etwas erhöht." - sensitivity: "Erkennungssensitivität" - sensitivityDescription: "Durch das Senken der Sensitivität kann die Anzahl an Fehlerkennungen (sog. false positives) reduziert werden. Durch ein Erhöhen dieser kann die Anzahl an verpassten Erkennungen (sog. false negatives) reduziert werden." - setSensitiveFlagAutomatically: "Als NSFW markieren" - setSensitiveFlagAutomaticallyDescription: "Die Resultate der internen Erkennung werden beibehalten, auch wenn diese Option deaktiviert ist." - analyzeVideos: "Videoanalyse aktivieren" - analyzeVideosDescription: "Analysiert zusätzlich zu Bildern auch Videos. Die Last des Servers wird hierdurch etwas erhöht." -_emailUnavailable: - used: "Diese Email-Adresse wird bereits verwendet" - format: "Das Format dieser Email-Adresse ist ungültig" - disposable: "Wegwerf-Email-Adressen können nicht verwendet werden" - mx: "Dieser Email-Server ist ungültig" - smtp: "Dieser Email-Server antwortet nicht" -_ffVisibility: - public: "Öffentlich" - followers: "Nur für Follower sichtbar" - private: "Privat" -_signup: - almostThere: "Fast geschafft" - emailAddressInfo: "Bitte gib deine Email-Adresse ein. Sie wird nicht öffentlich einsehbar sein." - emailSent: "An deine Email-Adresse ({email}) wurde soeben eine Bestätigungsmail geschickt. Bitte klicke auf den enthaltenen Link, um die Erstellung deines Benutzerkontos abzuschließen." -_accountDelete: - accountDelete: "Benutzerkonto löschen" - mayTakeTime: "Da die Löschung eines Benutzerkontos ein aufwendiger Prozess ist, kann dessen Dauer davon abhängen, wie viel Inhalt von diesem erstellt wurde oder wie viele Dateien von diesem hochgeladen wurden." - sendEmail: "Sobald die Löschung abgeschlossen ist, wird an die mit ihm verknüpfte Email-Adresse eine Benachrichtigung versendet." - requestAccountDelete: "Löschung deines Benutzerkontos anfordern" - started: "Die Löschung wurde eingeleitet." - inProgress: "Löschung in Bearbeitung" -_ad: - back: "Zurück" - reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen" -_forgotPassword: - enterEmail: "Gib die Email-Adresse ein, mit der du dich registriert hast. An diese wird ein Link gesendet, mit dem du dein Passwort zurücksetzen kannst." - ifNoEmail: "Solltest du bei der Registrierung keine Email-Adresse angegeben haben, wende dich bitte an den Administrator." - contactAdmin: "Diese Instanz unterstützt die Verwendung von Email-Adressen nicht. Wende dich an den Administrator, um dein Passwort zurückzusetzen." -_gallery: - my: "Meine Galerie" - liked: "Mit \"Gefällt mir\" markierte Beiträge" - like: "Gefällt mir" - unlike: "\"Gefällt mir\" entfernen" -_email: - _follow: - title: "Du hast einen neuen Follower" - _receiveFollowRequest: - title: "Du hast eine Follow-Anfrage erhalten" -_plugin: - install: "Plugins installieren" - installWarn: "Installiere bitte nur vertrauenswürdige Plugins." - manage: "Plugins verwalten" -_preferencesBackups: - list: "Erstellte Backups" - saveNew: "Neu erstellen" - loadFile: "Von Datei laden" - apply: "Auf dieses Gerät anwenden" - save: "Speichern" - inputName: "Gib einen Namen für dieses Backup ein" - cannotSave: "Speichern fehlgeschlagen" - nameAlreadyExists: "Es existiert bereits ein Backup unter dem Namen \"{name}\". Bitte gib einen anderen Namen ein." - applyConfirm: "Wirklich das Backup \"{name}\" auf dieses Gerät anwenden? Bestehende Einstellungen darauf werden überschrieben." - saveConfirm: "Als {name} speichern?" - deleteConfirm: "Das Backup {name} löschen?" - renameConfirm: "Soll dieses Backup von \"{old}\" zu \"{new}\" umbenannt werden?" - noBackups: "Keine Backups existieren. Backups können über \"Neu erstellen\" erstelllt werden." - createdAt: "Erstellt am: {date} {time}" - updatedAt: "Aktualisiert am: {date} {time}" - cannotLoad: "Laden fehlgeschlagen" - invalidFile: "Ungültiges Dateiformat." -_registry: - scope: "Scope" - key: "Schlüssel" - keys: "Schlüssel" - domain: "Domain" - createKey: "Schlüssel erstellen" -_aboutMisskey: - about: "Misskey ist Open-Source-Software, welche von syuilo seit 2014 entwickelt wird." - contributors: "Hauptmitwirkende" - allContributors: "Alle Mitwirkenden" - source: "Quellcode" - translation: "Misskey übersetzen" - donate: "An Misskey spenden" - morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰" - patrons: "UnterstützerInnen" -_nsfw: - respect: "Als NSFW markierte Bilder verbergen" - ignore: "Als NSFW markierte Bilder nicht verbergen" - force: "Alle Medien verbergen" _mfm: cheatSheet: "MFM Spickzettel" - intro: "MFM ist eine Misskey-exklusive Markup-Sprache, die in Misskey an vielen Stellen verwendet werden kann. Hier kannst du eine Liste von verfügbarer MFM-Syntax einsehen." + intro: "MFM ist eine an vielen Stellen verwendbare und Misskey-exklusive Markup-Sprache. Hier kannst du eine Liste von verfügbarer MFM-Syntax anschauen." dummy: "Misskey erweitert die Welt des Fediverse" mention: "Erwähnung" - mentionDescription: "Mit At-Zeichen und Benutzername kann ein individueller Nutzer angegeben werden." + mentionDescription: "Mit At-Zeichen und Nutzername kann ein individueller Nutzer angegeben werden." hashtag: "Hashtag" hashtagDescription: "Mit einer Raute und Text kann ein Hashtag angegeben werden." url: "URL" - urlDescription: "Zeigt URLs an." + urlDescription: "URLs können angezeigt werden." link: "Link" - linkDescription: "Zeigt spezifische Textabschnitte als URL an." + linkDescription: "Ein spezifizierter Textabschnitt kann als URL angezeigt werden." bold: "Fett" boldDescription: "Zeichen zur Betonung dicker erscheinen lassen." small: "Klein" smallDescription: "Inhalt klein und dünn erscheinen lassen." center: "Zentrieren" - centerDescription: "Inhalt zentriert anzeigen." + centerDescription: "Inhalt zentriert anzeigen lassen." inlineCode: "Code (Eingebettet)" - inlineCodeDescription: "Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen." + inlineCodeDescription: "Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen lassen." blockCode: "Code (Block)" - blockCodeDescription: "Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen." + blockCodeDescription: "Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen lassen." inlineMath: "Mathe (Eingebettet)" inlineMathDescription: "Mathematische Formeln (KaTeX) eingebettet anzeigen." blockMath: "Mathe (Block)" blockMathDescription: "Mehrzeilige mathematische Formeln (KaTeX) als Block einbetten." quote: "Zitationen" - quoteDescription: "Inhalt als Zitat anzeigen." + quoteDescription: "Inhalt als Zitat anzeigen lassen." emoji: "Benutzerdefinierte Emojis" - emojiDescription: "Durch das Umschließen von Emoji-Namen durch Doppelpunkte können benutzerdefinierte Emojis angezeigt werden." + emojiDescription: "Emoji-Namen mit Doppelpunkten umschließen, um benutzerdefinierte Emojis anzeigen zu lassen." search: "Suche" - searchDescription: "Eine vorgefertige Suchanfragebox anzeigen." + searchDescription: "Eine vorgefertige Suchanfragebox anzeigen lassen." flip: "Spiegelung" - flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen." + flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen lassen." jelly: "Animation (Dehnen)" - jellyDescription: "Verleiht Inhalt eine sich dehnende Animation." + jellyDescription: "Verleiht eine sich dehnende Animation." tada: "Animation (Tada)" - tadaDescription: "Verleiht Inhalt eine Animation mit \"Tada!\"-Gefühl" + tadaDescription: "Verleiht eine Animation mit \"Tada!\"-Gefühl" jump: "Animation (Sprung)" - jumpDescription: "Verleiht Inhalt eine springende Animation." + jumpDescription: "Verleiht eine springende Animation." bounce: "Animation (Federn)" - bounceDescription: "Verleiht Inhalt eine federnde Animation." + bounceDescription: "Erzeugt eine federnde Animation." shake: "Animation (Zittern)" - shakeDescription: "Verleiht Inhalt eine zitternde Animation." + shakeDescription: "Verleiht eine zitternde Animation." twitch: "Animation (Zucken)" - twitchDescription: "Verleiht Inhalt eine sehr stark zuckende Animation." + twitchDescription: "Verleiht eine sehr stark zuckende Animation." spin: "Animation (Rotieren)" - spinDescription: "Verleiht Inhalt eine rotierende Animation." - x2: "Groß" - x2Description: "Inhalte größer anzeigen." - x3: "Sehr groß" - x3Description: "Inhalte noch größer anzeigen." - x4: "Unglaublich groß" - x4Description: "Lässt Inhalte noch größer als größer als groß angezeigt werden." - blur: "Weichzeichnen" - blurDescription: "Inhalte durch Weihzeichnung verschwimmen lassen. Durch das Bewegen des Mauszeigers über den Inhalt wird er klar angezeigt." - font: "Schriftart" - fontDescription: "Setzt die Schriftart des Inhaltes fest." - rainbow: "Regenbogen" - rainbowDescription: "Lässt den Inhalt in Regenbogenfarben erscheinen." - sparkle: "Glitzer" - sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt." - rotate: "Drehen" - rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel." - plain: "Schlicht" - plainDescription: "Deaktiviert jegliche MFM-Syntax, die sich innerhalb dieses MFM-Effekts befindet." + spinDescription: "Verleiht eine rotierende Animation." +_reversi: + reversi: "Reversi" + gameSettings: "Spieleinstellungen" + chooseBoard: "Spielbrett auswählen" + blackOrWhite: "Schwarz/Weiß" + blackIs: "{name} spielt Schwarz" + rules: "Regeln" + botSettings: "Optionen des Computergegners" + thisGameIsStartedSoon: "Dieses Spiel beginnt in wenigen Sekunden" + waitingForOther: "Warte auf den Zug des Gegenspielers" + waitingForMe: "Warte auf deinen Zug" + waitingBoth: "Mach dich bereit" + ready: "Bereit" + cancelReady: "Nicht bereit" + opponentTurn: "Zug deines Gegners" + myTurn: "Dein Zug" + turnOf: "Zug von {name}" + pastTurnOf: "Zug von {name}" + surrender: "Aufgeben" + surrendered: "durch Aufgabe" + drawn: "Unentschieden" + won: "{name} hat gesiegt" + black: "Schwarz" + white: "Weiß" + total: "Gesamt" + turnCount: " Zug {count}" + myGames: "Meine Runden" + allGames: "Alle Runden" + ended: "Beendet" + playing: "Laufend" + isLlotheo: "Der mit weniger Steinen gewinnt (Llotheo)" + loopedMap: "Wiederholendes Spielbrett" + canPutEverywhere: "Steine können überall platziert werden" _instanceTicker: none: "Nie anzeigen" remote: "Für Benutzer fremder Instanzen anzeigen" @@ -1060,42 +710,33 @@ _channel: setBanner: "Kanalbanner festlegen" removeBanner: "Kanalbanner entfernen" featured: "Trends" - owned: "In Besitz" + owned: "Besitzt" following: "Gefolgt" usersCount: "{n} Teilnehmer" notesCount: "{n} Notizen" -_menuDisplay: - sideFull: "Seitlich" - sideIcon: "Seitlich (Icons)" - top: "Oben" +_sidebar: + full: "Voll" + icon: "Symbol" hide: "Ausblenden" _wordMute: - muteWords: "Stummgeschaltete Wörter" - muteWordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit Leerzeichen trennen, zum Nutzen einer \"ODER\"-Verknüpfung Einträge mit einem Zeilenumbruch trennen." + muteWords: "Wort stummschalten" + muteWordsDescription: "Mit Leerzeichen für eine \"UND\"-Verknüpfung trennen, durch Zeilenumbrüche für eine \"ODER\"-Verknüpfung trennen." muteWordsDescription2: "Umgib Schlüsselworter mit Schrägstrichen, um Reguläre Ausdrücke zu verwenden." - softDescription: "Notizen, die die angegebenen Konditionen erfüllen, in der Chronik ausblenden." - hardDescription: "Verhindern, dass Notizen, die die angegebenen Konditionen erfüllen, der Chronik hinzugefügt werden. Zudem werden diese Notizen auch nicht der Chronik hinzugefügt, falls die Konditionen geändert werden." + softDescription: "Notizen, die die eingestellten Konditionen erfüllen, in der Chronik ausblenden" + hardDescription: "Verhindern, dass Notizen, die die eingestellten Konditionen erfüllen, der Chronik hinzugefügt werden. Zudem werden diese Notizen auch nicht der Chronik hinzugefügt, falls die Konditionen geändert werden." soft: "Leicht" hard: "Schwer" mutedNotes: "Stummgeschaltete Notizen" -_instanceMute: - instanceMuteDescription: "Schaltet alle Notizen/Renotes stumm, die von den gelisteten Instanzen stammen, inklusive Antworten von Benutzern an einen Benutzer einer stummgeschalteten Instanz." - instanceMuteDescription2: "Instanzen getrennt durch Zeilenumbrüchen angeben" - title: "Blendet Notizen von stummgeschalteten Instanzen aus." - heading: "Liste der stummzuschaltenden Instanzen" _theme: - explore: "Farbschemata erforschen" - install: "Farbschemata installieren" - manage: "Farbschemaverwaltung" - code: "Farbschemencode" - description: "Beschreibung" + explore: "Themen erforschen" + install: "Thema installieren" + manage: "Themaverwaltung" + code: "Themen-Code" installed: "{name} wurde installiert" - installedThemes: "Installierte Farbschemata" - builtinThemes: "Eingebaute Farbschemata" - alreadyInstalled: "Dieses Farbschema ist bereits installiert" - invalid: "Der Code dieses Farbschemas ist ungültig" - make: "Farbschema erstellen" - base: "Vorlage" + alreadyInstalled: "Dieses Thema ist bereits installiert" + invalid: "Themenformat ist ungültig" + make: "Farbthema erstellen" + base: "Basis" addConstant: "Konstante hinzufügen" constant: "Konstante" defaultValue: "Standardwert" @@ -1104,14 +745,14 @@ _theme: refConst: "Konstante referenzieren" key: "Schlüssel" func: "Funktionen" - funcKind: "Funktionsart" + funcKind: "Funktionstyp" argument: "Parameter" basedProp: "Referenzierte Eigenschaft" alpha: "Transparenz" darken: "Verdunkeln" lighten: "Erhellen" inputConstantName: "Name der Konstanten eingeben" - importInfo: "Hier kannst du Farbschemencode einfügen, um ihn in den Editor zu importieren" + importInfo: "Du kannst hier Themen-Code einfügen, um ihn in den Editor zu importieren" deleteConstantConfirm: "Die Konstante {const} wirklich löschen?" keys: accent: "Akzentfarbe" @@ -1129,10 +770,10 @@ _theme: navIndicator: "Indikator der Seitenleiste" link: "Link" hashtag: "Hashtag" - mention: "Erwähnung" - mentionMe: "Erwähnung (Ich)" + mention: "Erwähnungen" + mentionMe: "Erwähnungen (Ich)" renote: "Renote" - modalBg: "Modalhintergrund" + modalBg: "Hintergrund des Modals" divider: "Trenner" scrollbarHandle: "Griff des Scrollbalkens" scrollbarHandleHover: "Griff des Scrollbalkens (Mouseover)" @@ -1140,15 +781,15 @@ _theme: infoBg: "Hintergrund von Informationen" infoFg: "Text von Informationen" infoWarnBg: "Hintergrund von Warnungen" - infoWarnFg: "Text von Warnungen" - cwBg: "Hintergrund des Inhaltswarnungsknopfs" - cwFg: "Text des Inhaltswarnungsknopfs" - cwHoverBg: "Hintergrund des Inhaltswarnungsknopfs (Mouseover)" + infoWarnFg: "Text von Informationen" + cwBg: "Hintergrund von versteckten Inhalten" + cwFg: "Text von versteckten Inhalten" + cwHoverBg: "Hintergrund von versteckten Inhalten (Mouseover)" toastBg: "Hintergrund von Benachrichtigungen" toastFg: "Text von Benachrichtigungen" buttonBg: "Hintergrund von Schaltflächen" buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)" - inputBorder: "Rahmen von Eingabefeldern" + inputBorder: "Rahmen des Eingabefelds" listItemHoverBg: "Hintergrund von Listeneinträgen (Mouseover)" driveFolderBg: "Hintergrund von Drive-Ordnern" wallpaperOverlay: "Hintergrundbild-Overlay" @@ -1162,10 +803,11 @@ _sfx: noteMy: "Meine Notizen" notification: "Benachrichtigungen" chat: "Chat" - chatBg: "Chat (Hintergrund)" + chatBg: "Nachrichten (Hintergrund)" antenna: "Antennen" channel: "Kanalbenachrichtigung" _ago: + unknown: "Unbekannt" future: "Zukunft" justNow: "Gerade eben" secondsAgo: "vor {n} Sekunde(n)" @@ -1183,36 +825,35 @@ _time: _tutorial: title: "Wie du Misskey verwendest" step1_1: "Willkommen!" - step1_2: "Diese Seite ist die „Chronik“. Sie zeigt dir deine geschrieben „Notizen“ sowie die aller Benutzer, denen du „folgst“, in chronologischer Reihenfolge." - step1_3: "Deine Chronik sollte momentan leer sein, da du bis jetzt noch keine Notizen geschrieben hast und auch noch keinen Benutzern folgst." + step1_2: "Diese Seite ist die \"Chronik\". Sie zeigt dir deine geschrieben \"Notizen\" sowie die aller Benutzer, denen du \"folgst\" in chronologischer Reihenfolge." + step1_3: "Deine Chronik sollte momentan leer sein, da du bis jetzt nocht keine Notizen geschrieben hast und auch noch keinen Benutzern folgst." step2_1: "Lass uns zuerst dein Profil vervollständigen, bevor du Notizen schreibst oder jemandem folgst." - step2_2: "Informationen darüber, was für eine Person du bist, macht es anderen leichter zu wissen, ob sie deine Notizen sehen wollen und ob sie dir folgen möchten." + step2_2: "Informationen darüber, wer du bist, macht es anderen leichter zu wissen, ob sie deine Notizen sehen wollen und ob sie dir folgen möchten." step3_1: "Mit dem Einrichten deines Profils fertig?" - step3_2: "Dann lass uns als nächstes versuchen, eine Notiz zu schreiben. Dies kannst du tun, indem du auf den Knopf mit dem Stift-Icon auf dem Bildschirm drückst." + step3_2: "Der nächste Schritt ist das Schreiben einer Notiz. Dies kannst du tun, indem du auf das Stift-Icon auf dem Bildschirm drückst." step3_3: "Fülle das Fenster aus und drücke auf den Knopf oben rechts zum Senden." - step3_4: "Fällt dir nichts ein, das du schreiben möchtest? Versuch's mit \"Hallo Misskey!\"" + step3_4: "Gibt es nichts, das du momentan sagen möchtest? Versuch's mit \"Hallo Misskey!\"" step4_1: "Fertig mit dem Senden deiner ersten Notiz?" - step4_2: "Falls deine Notiz nun in deiner Chronik auftaucht, hast du alles richtig gemacht." + step4_2: "Falls deine Notiz nun auf deiner Chronik auftaucht, hast du alles richtig gemacht." step5_1: "Lass uns nun deiner Chronik etwas mehr Leben einhauchen, indem du einigen anderen Benutzern folgst." step5_2: "{featured} zeigt dir beliebte Notizen dieser Instanz. In {explore} kannst du beliebte Benutzer finden. Schau dort, ob du Benutzer findest, die dich interessieren." - step5_3: "Klicke zum Anzeigen des Profils eines Benutzers auf dessen Profilbild und dann auf den \"Folgen\"-Knopf, um diesem zu folgen." - step5_4: "Je nach Benutzer kann es etwas Zeit in Anspruch nehmen, bis dieser deine Follow-Anfrage bestätigt." - step6_1: "Wenn du nun auch die Notizen anderer Benutzer in deiner Chronik siehst, hast du auch diesmal alles richtig gemacht." - step6_2: "Du kannst ebenso „Reaktionen“ verwenden, um schnell auf Notizen anderer Benutzer zu reagieren." - step6_3: "Um eine Reaktion anzufügen, klicke auf das „+“-Symbol in der Notiz und wähle ein Emoji aus, mit dem du reagieren möchtest." - step7_1: "Glückwunsch! Du hast die Einführung in die Verwendung von Misskey abgeschlossen." + step5_3: "Um anderen Benutzern zu folgen, klicke auf ihr Profilbild und klicke dann auf den \"Folgen\" Knopf in ihrem Profil." + step5_4: "Wenn der Benutzer neben seinem Namen ein Schloss hat, dann muss er deine Follow-Anfrage manuell bestätigen." + step6_1: "Wenn du nun auch die Notizen anderer Benutzer auf deiner Chronik siehst, hast du alles richtig gemacht." + step6_2: "Du kannst ebenso \"Reaktionen\" verwenden, um schnell auf Notizen anderer Benutzer zu antworten." + step6_3: "Um eine \"Reaktion\" anzufügen, klicke auf das \"+\"-Symbol in der Notiz eines anderen Benutzers und wähle ein Emoji, mit dem du reagieren möchtest." + step7_1: "Glückwunsch! Du hast die Misskey-Einführung abgeschlossen." step7_2: "Wenn du mehr über Misskey lernen möchtest, schau dich im {help}-Bereich um." step7_3: "Und nun, viel Spaß mit Misskey! 🚀" _2fa: - alreadyRegistered: "Du hast bereits ein Gerät für Zwei-Faktor-Authentifizierung registriert." + alreadyRegistered: "Du hast bereits ein Gerät für Zwei-Faktor-Authentifizierung registriert" registerDevice: "Neues Gerät registrieren" registerKey: "Neuen Sicherheitsschlüssel registrieren" - step1: "Installiere zuerst eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät." + step1: "Als Erstes, installiere eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät." step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerät." - step2Url: "Nutzt du ein Desktopprogramm kannst du alternativ diese URL eingeben:" - step3: "Gib zum Abschluss den Token ein, der von deiner App angezeigt wird." - step4: "Alle folgenden Anmeldungsversuche werden ab sofort die Eingabe eines solchen Tokens benötigen." - securityKeyInfo: "Du kannst neben Fingerabdruck- oder PIN-Authentifizierung auf deinem Gerät auch Anmeldung mit Hilfe eines FIDO2-kompatiblen Hardware-Sicherheitsschlüssels einrichten." + step3: "Um die Einrichtung abzuschließen, gib den Token ein, der von deiner Authentifizierungsapp angezeigt wird." + step4: "Ab jetzt benötigen alle Loginversuche auch einen Login-Token." + securityKeyInfo: "Du kannst neben Fingerabdruck- oder PIN-Authentifizierung auf deinem Gerät auch Authentifizierung mit FIDO2-kompatiblen Hardware-Sicherheitsschlüsseln einrichten." _permissions: "read:account": "Deine Benutzerkontoinformationen lesen" "write:account": "Deine Benutzerkontoinformationen bearbeiten" @@ -1222,18 +863,18 @@ _permissions: "write:drive": "Deine Drive-Dateien und Ordner bearbeiten oder löschen" "read:favorites": "Deine Favoriten-Liste lesen" "write:favorites": "Deine Favoriten-Liste bearbeiten" - "read:following": "Die Liste der Benutzer, denen du folgst, lesen" + "read:following": "Deine Follower-Liste lesen" "write:following": "Anderen Benutzern folgen oder entfolgen" "read:messaging": "Chats lesen" - "write:messaging": "Chats bedienen" + "write:messaging": "Chatnachrichten schicken oder löschen" "read:mutes": "Stummschaltungen lesen" "write:mutes": "Stummschaltungen bearbeiten" "write:notes": "Notizen schreiben oder löschen" "read:notifications": "Benachrichtigungen lesen" - "write:notifications": "Benachrichtigungen bedienen" + "write:notifications": "Benachrichtigungen bearbeiten" "read:reactions": "Reaktionen lesen" - "write:reactions": "Reaktionen bedienen" - "write:votes": "Umfragen bedienen" + "write:reactions": "Reaktionen hinzufügen und ändern" + "write:votes": "In Umfragen abstimmen" "read:pages": "Deine Seiten lesen" "write:pages": "Deine Seiten bearbeiten oder löschen" "read:page-likes": "Liste der Seiten, die mir gefallen, lesen" @@ -1241,24 +882,20 @@ _permissions: "read:user-groups": "Benutzergruppen lesen" "write:user-groups": "Benutzergruppen bearbeiten oder löschen" "read:channels": "Kanäle lesen" - "write:channels": "Kanäle bedienen" - "read:gallery": "Beiträge deiner Galerie lesen" - "write:gallery": "Deine Galerie bearbeiten" - "read:gallery-likes": "Liste deiner mit \"Gefällt mir\" markierten Galerie-Beiträge lesen" - "write:gallery-likes": "Liste deiner mit \"Gefällt mir\" markierten Galerie-Beiträge bearbeiten" + "write:channels": "Kanäle bearbeiten" _auth: - shareAccess: "Möchtest du „{name}“ authorisieren, auf dieses Benutzerkonto zugreifen zu können?" + shareAccess: "Möchtest du \"{name}\" authorisieren, auf dieses Benuzerkonto zugreifen zu können?" shareAccessAsk: "Bist du dir sicher, dass du diese Anwendung authorisieren möchtest, auf dein Benutzerkonto zugreifen zu können?" - permissionAsk: "Diese Anwendung fordert folgende Berechtigungen" - pleaseGoBack: "Bitte kehre zur Anwendung zurück" - callback: "Es wird zur Anwendung zurückgekehrt" + permissionAsk: "Diese Anwendung erfordert folgende Berechtigungen:" + pleaseGoBack: "Bitte gehe zurück zur Anwendung" + callback: "Rückkehr zur Anwendung" denied: "Zugriff verweigert" _antennaSources: all: "Alle Notizen" homeTimeline: "Notizen von Benutzern, denen gefolgt wird" - users: "Notizen von einem oder mehreren angegebenen Benutzern" - userList: "Notizen von allen Benutzern einer Liste" - userGroup: "Notizen von allen Benutzern einer Gruppe" + users: "Notizen von konkreten Benutzern" + userList: "Notizen von allen Benutzern aus einer Liste" + userGroup: "Notizen von allen Benutzern aus einer Gruppe" _weekday: sunday: "Sonntag" monday: "Montag" @@ -1268,60 +905,50 @@ _weekday: friday: "Freitag" saturday: "Samstag" _widgets: - memo: "Merkzettel" + memo: "Memo" notifications: "Benachrichtigungen" timeline: "Chronik" calendar: "Kalender" trends: "Trends" clock: "Uhr" rss: "RSS-Reader" - rssTicker: "RSS-Ticker" activity: "Aktivität" photos: "Fotos" digitalClock: "Digitaluhr" - unixClock: "UNIX-Uhr" federation: "Föderation" - instanceCloud: "Instanzwolke" - postForm: "Notizfenster" - slideshow: "Diashow" - button: "Knopf" - onlineUsers: "Benutzer Online" - jobQueue: "Job-Warteschlange" - serverMetric: "Servermetriken" - aiscript: "AiScript-Konsole" - aichan: "Ai" + postForm: "Neue Notiz anfertigen" _cw: - hide: "Inhalt verbergen" - show: "Inhalt anzeigen" + hide: "Ausblenden" + show: "Mehr anzeigen" chars: "{count} Zeichen" - files: "{count} Datei(en)" + files: "{count} Dateien" _poll: - noOnlyOneChoice: "Es müssen mindestens zwei Antwortmöglichkeiten vorhanden sein" + noOnlyOneChoice: "Mindestens zwei Antwortmöglichkeiten werden benötigt." choiceN: "Auswahl {n}" noMore: "Du kannst keine weiteren Auswahlmöglichkeiten hinzufügen" - canMultipleVote: "Auswahl mehrerer Antworten erlauben" - expiration: "Abstimmung beenden" + canMultipleVote: "Mehrfachantworten erlauben" + expiration: "Abstimmung endet am" infinite: "Nie" - at: "Beenden am …" - after: "Beenden nach …" - deadlineDate: "Enddatum" + at: "Beenden am..." + after: "Beenden nach..." + deadlineDate: "Abstimmungsende" deadlineTime: "Zeit" - duration: "Dauer" + duration: "Laufzeit" votesCount: "{n} Stimmen" totalVotes: "Insgesamt {n} Stimmen" vote: "Abstimmen" showResult: "Ergebnis anzeigen" voted: "Abgestimmt" closed: "Beendet" - remainingDays: "{d} Tag(e) {h} Stunde(n) verbleibend" - remainingHours: "{h} Stunde(n) {m} Minute(n) verbleibend" - remainingMinutes: "{m} Minute(n) {s} Sekunde(n) verbleibend" - remainingSeconds: "{s} Sekunde(n) verbleibend" + remainingDays: "{d} Tage {h} Stunden verbleibend" + remainingHours: "{h} Stunden {m} Minuten verbleibend" + remainingMinutes: "{m} Minuten {s} Sekunden verbleibend" + remainingSeconds: "{s} Sekunden verbleibend" _visibility: public: "Öffentlich" - publicDescription: "Deine Notiz wird global für alle Benutzer sichtbar sein" + publicDescription: "Deine Notiz wird global sichtbar sein" home: "Startseite" - homeDescription: "Notiz nur in die Startseiten-Chronik schicken" + homeDescription: "Deine Notiz wird nur in der Chronik deiner Instanz angezeigt." followers: "Follower" followersDescription: "Nur für Follower sichtbar" specified: "Direkt" @@ -1329,71 +956,127 @@ _visibility: localOnly: "Nur Lokal" localOnlyDescription: "Unsichtbar für Benutzer anderer Instanzen" _postForm: - replyPlaceholder: "Dieser Notiz antworten …" - quotePlaceholder: "Diese Notiz zitieren …" + replyPlaceholder: "Dieser Notiz antworten..." + quotePlaceholder: "Diese Notiz zitieren..." channelPlaceholder: "In einen Kanal senden" _placeholders: a: "Was machst du momentan?" b: "Was ist um dich herum los?" c: "Was geht dir durch den Kopf?" d: "Was möchtest du sagen?" - e: "Fang an zu schreiben …" - f: "Ich warte darauf, dass du schreibst …" + e: "Fang an zu schreiben..." + f: "Ich warte darauf, dass du schreibst..." _profile: name: "Name" username: "Benutzername" - description: "Profilbeschreibung" - youCanIncludeHashtags: "Du kannst auch Hashtags in deiner Profilbeschreibung verwenden." - metadata: "Zusätzliche Informationen" - metadataEdit: "Zusätzliche Informationen bearbeiten" - metadataDescription: "Hierdurch kannst du auf deinem Profil zusätzliche Informationsblöcke anzeigen lassen." - metadataLabel: "Beschriftung" + description: "Über mich" + youCanIncludeHashtags: "Du kannst auch Hashtags in deiner Beschreibung verwenden." + metadata: "Andere Informationen" + metadataLabel: "Name" metadataContent: "Inhalt" - changeAvatar: "Profilbild ändern" - changeBanner: "Banner ändern" _exportOrImport: allNotes: "Alle Notizen" followingList: "Gefolgte Benutzer" muteList: "Stummschaltungen" blockingList: "Blockierungen" userLists: "Listen" - excludeMutingUsers: "Stummgeschaltete Benutzer aussortieren" - excludeInactiveUsers: "Inaktive Benutzer aussortieren" _charts: - federation: "Föderation" - apRequest: "Anfragen" + federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen" + federationInstancesTotal: "Anzahl aller föderierenden Instanzen" usersIncDec: "Unterschied in der Anzahl von Benutzern" usersTotal: "Anzahl aller Benutzer" activeUsers: "Aktive Benutzer" - notesIncDec: "Unterschied in der Anzahl an Notizen" - localNotesIncDec: "Unterschied in der Anzahl an lokalen Notizen" - remoteNotesIncDec: "Unterschied in der Anzahl an Notizen von fremden Instanzen" + notesIncDec: "Unterschied in der Anzahl von Notizen" + localNotesIncDec: "Unterschied in der Anzahl von lokalen Notizen" + remoteNotesIncDec: "Unterschied in Anzahl der Notizen von anderen Instanzen" notesTotal: "Anzahl aller Notizen" - filesIncDec: "Unterschied in der Anzahl an Dateien" + filesIncDec: "Unterschied in der Anzahl von Dateien" filesTotal: "Anzahl aller Dateien" storageUsageIncDec: "Unterschied in der Höhe der Speichernutzung" storageUsageTotal: "Gesamte Speichernutzung" _instanceCharts: requests: "Anfragen" - users: "Unterschied in der Anzahl an Benutzern" + users: "Unterschied in der Anzahl von Benutzern" usersTotal: "Gesamtanzahl an Benutzern" - notes: "Unterschied in der Anzahl an Notizen" + notes: "Unterschied in der Anzahl von Notizen" notesTotal: "Gesamtanzahl an Notizen" - ff: "Unterschied in der Anzahl an gefolgten Benutzern und Followern" - ffTotal: "Gesamtanzahl an gefolgten Benutzern und Followern" + ff: "Unterschied in der Anzahl von Followern" + ffTotal: "Gesamtanzahl an Followern" cacheSize: "Unterschied in der Größe des Caches" cacheSizeTotal: "Gesamtgröße des Caches" - files: "Unterschied in der Anzahl an Dateien" + files: "Unterschied in der Anzahl der Dateien" filesTotal: "Gesamtanzahl an Dateien" _timelines: home: "Startseite" local: "Lokal" social: "Sozial" global: "Global" +_rooms: + roomOf: "{user}'s Raum" + addFurniture: "Möbel hinzufügen" + translate: "Bewegen" + rotate: "Drehen" + exit: "Zurück" + remove: "Entfernen" + clear: "Aufräumen" + clearConfirm: "Möchtest du wirklich alle Möbel entfernen?" + leaveConfirm: "Es gibt ungespeicherte Änderungen. Möchtest du wirklich gehen?" + chooseImage: "Bild auswählen" + roomType: "Raumtyp" + carpetColor: "Teppichfarbe" + _roomType: + default: "Standard" + washitsu: "Japanischer Stil" + _furnitures: + milk: "Milchkarton" + bed: "Bett" + low-table: "Niedrigtisch" + desk: "Schreibtisch" + chair: "Stuhl" + chair2: "Stuhl 2" + fan: "Ventilator" + pc: "Computer" + plant: "Deko-Pflanze" + plant2: "Deko-Pflanze 2" + eraser: "Radiergummi" + pencil: "Bleistift" + pudding: "Pudding" + cardboard-box: "Pappkarton" + cardboard-box2: "Pappkarton 2" + cardboard-box3: "Pappkarton 3" + book: "Buch" + book2: "Buch 2" + piano: "Piano" + facial-tissue: "Taschentücher" + server: "Server" + moon: "Mond" + corkboard: "Pinnwand" + mousepad: "Mauspad" + monitor: "Monitor" + keyboard: "Tastatur" + carpet-stripe: "Gestreifter Teppich" + mat: "Matte" + color-box: "Regal" + wall-clock: "Wanduhr" + photoframe: "Bilderrahmen" + cube: "Würfel" + tv: "Fernseher" + pinguin: "Pinguin" + rubik-cube: "Zauberwürfel" + poster-h: "Poster (Horizontal)" + poster-v: "Poster (Vertikal)" + sofa: "Sofa" + spiral: "Spiraltreppe" + bin: "Papierkorb" + cup-noodle: "Instantnudeln" + holo-display: "Holographischer Bildschirm" + energy-drink: "Energy Drink" + doll-ai: "Ai-Puppe" + banknote: "Geldscheine" _pages: newPage: "Seite erstellen" - editPage: "Seite bearbeiten" - readPage: "Quelltextansicht" + editPage: "Diese Seite bearbeiten" + readPage: "Quelltext-Ansicht" created: "Seite erfolgreich erstellt" updated: "Seite erfolgreich aktualisiert" deleted: "Seite erfolgreich gelöscht" @@ -1410,22 +1093,22 @@ _pages: liked: "Seiten, die mir gefallen" featured: "Beliebt" inspector: "Inspektor" - contents: "Inhalte" - content: "Seitenblock" + contents: "Inhalt" + content: "Inhalt" variables: "Variablen" title: "Titel" url: "Seiten-URL" summary: "Zusammenfassung" - alignCenter: "Zentrieren" - hideTitleWhenPinned: "Seitentitel wenn angeheftet ausblenden" + alignCenter: "Bestandteile zentrieren" + hideTitleWhenPinned: "Seitentitel ausblenden, wenn an dein Profil angepinnt " font: "Schriftart" fontSerif: "Serif" fontSansSerif: "Sans Serif" eyeCatchingImageSet: "Vorschaubild festlegen" eyeCatchingImageRemove: "Vorschaubild entfernen" chooseBlock: "Block hinzufügen" - selectType: "Typ auswählen" - enterVariableName: "Gib einen Variablennamen ein" + selectType: "Wähle einen Typ" + enterVariableName: "Gib einen Namen für deine Variable ein" variableNameIsAlreadyUsed: "Dieser Name wird bereits von einer anderen Variable verwendet" contentBlocks: "Inhalt" inputBlocks: "Eingabe" @@ -1439,10 +1122,10 @@ _pages: if: "Falls" _if: variable: "Variable" - post: "Notizfenster" + post: "Neue Notiz anfertigen" _post: text: "Inhalt" - attachCanvasImage: "Leinwandbild anfügen" + attachCanvasImage: "Leinwand als Bild anfügen" canvasId: "Leinwand-ID" textInput: "Texteingabe" _textInput: @@ -1454,7 +1137,7 @@ _pages: name: "Variablenname" text: "Titel" default: "Standardwert" - numberInput: "Zahleneingabe" + numberInput: "Nummereingabe" _numberInput: name: "Variablenname" text: "Titel" @@ -1466,7 +1149,7 @@ _pages: height: "Höhe" note: "Eingebettete Notiz" _note: - id: "Notiz-ID" + id: "Notiz ID" idDescription: "Du kannst alternativ auch die Notiz-URL angeben." detailed: "Detailierte Ansicht" switch: "Fallunterscheidung" @@ -1478,20 +1161,20 @@ _pages: _counter: name: "Variablenname" text: "Titel" - inc: "Schrittgröße" + inc: "Erhöhen um" _button: text: "Titel" colored: "Farbig" - action: "Aktion, die bei Knopfdruck ausgeführt wird" + action: "Aktion, die beim Knopfdruck ausgeführt werden soll" _action: - dialog: "Dialogfenster anzeigen" + dialog: "Zeige ein Dialogfenster" _dialog: content: "Inhalt" - resetRandom: "Zufallswert zurücksetzen" - pushEvent: "Ein Event senden" + resetRandom: "Setze den Zufallswert zurück" + pushEvent: "Sende ein Event" _pushEvent: event: "Eventname" - message: "Nachricht, die bei Auslösung des Events angezeigt werden soll" + message: "Nachricht, die bei Aktivierung gezeigt werden soll" variable: "Variable, die gesendet werden soll" no-variable: "Keine" callAiScript: "AiScript ausführen" @@ -1501,7 +1184,7 @@ _pages: _radioButton: name: "Variablenname" title: "Titel" - values: "Durch Zeilenümbrüche getrennte Auswahlmöglichkeiten" + values: "Auswahlmöglichkeiten (getrennt durch Zeilenumbrüche)" default: "Standardwert" script: categories: @@ -1513,7 +1196,7 @@ _pages: value: "Werte" fn: "Funktionen" text: "Textoperationen" - convert: "Konvertierungen" + convert: "Konvertierung" list: "Listen" blocks: text: "Text" @@ -1524,10 +1207,10 @@ _pages: strLen: "Textlänge" _strLen: arg1: "Text" - strPick: "Text extrahieren" + strPick: "Zeichen extrahieren" _strPick: arg1: "Text" - arg2: "Textposition" + arg2: "Zeichenposition" strReplace: "Textersetzung" _strReplace: arg1: "Text" @@ -1538,7 +1221,7 @@ _pages: arg1: "Text" join: "Text zusammenfügen" _join: - arg1: "Liste" + arg1: "Listen" arg2: "Trennzeichen" add: "Addieren" _add: @@ -1560,7 +1243,7 @@ _pages: _mod: arg1: "A" arg2: "B" - round: "Rundung von Dezimalstellen" + round: "Runden" _round: arg1: "Nummer" eq: "A und B sind gleich" @@ -1612,17 +1295,17 @@ _pages: arg2: "Maximum" randomPick: "Zufallswahl aus Liste" _randomPick: - arg1: "Liste" - dailyRandom: "Zufällig (Pro Nutzer jeden Tag verschieden)" + arg1: "Listen" + dailyRandom: "Zufallswahl (Läuft für einen Tag)" _dailyRandom: arg1: "Warscheinlichkeit" - dailyRannum: "Zufallsnummer (Pro Nutzer jeden Tag verschieden)" + dailyRannum: "Zufallsnummer (Läuft für einen Tag)" _dailyRannum: arg1: "Minimum" arg2: "Maximum" - dailyRandomPick: "Zufallsauswahl aus einer Liste (Pro Nutzer jeden Tag verschieden)" + dailyRandomPick: "Zufallswahl aus Liste (Läuft für einen Tag)" _dailyRandomPick: - arg1: "Liste" + arg1: "Listen" seedRandom: "Zufällig (mit Startwert / Seed)" _seedRandom: arg1: "Startwert / Seed" @@ -1632,20 +1315,20 @@ _pages: arg1: "Startwert / Seed" arg2: "Minimum" arg3: "Maximum" - seedRandomPick: "Zufallsauswahl aus Liste (mit Startwert / Seed)" + seedRandomPick: "Zufallswahl aus Liste (mit Startwert / Seed)" _seedRandomPick: arg1: "Startwert / Seed" - arg2: "Liste" - DRPWPM: "Zufallsauswahl aus gewichteter Liste (Pro Nutzer jeden Tag verschieden)" + arg2: "Listen" + DRPWPM: "Zufallswahl aus gewichteter Liste (Läuft für einen Tag)" _DRPWPM: arg1: "Textliste" pick: "Aus einer Liste wählen" _pick: - arg1: "Liste" + arg1: "Listen" arg2: "Position" listLen: "Listenlänge abrufen" _listLen: - arg1: "Liste" + arg1: "Listen" number: "Nummer" stringToNumber: "Text zu Nummer" _stringToNumber: @@ -1656,29 +1339,29 @@ _pages: splitStrByLine: "Text nach Zeilenumbrüchen aufteilen" _splitStrByLine: arg1: "Text" - ref: "Variable" - aiScriptVar: "AiScript Variable" - fn: "Funktion" + ref: "Variablen" + aiScriptVar: "AiScript Variablen" + fn: "Funktionen" _fn: slots: "Slots" slots-info: "Trenne jeden Slot mit einem Zeilenumbruch" arg1: "Ausgabe" - for: "for-Schleife" + for: "Wiederholen" _for: - arg1: "Anzahl der Schleifendurchläufe" + arg1: "Anzahl der Wiederholungen" arg2: "Aktion" - typeError: "Slot {slot} akzeptiert Werte vom Typ „{expect}“, aber es wurde ein „{actual}“ Wert angegeben!" + typeError: "Slot {slot} akzeptiert Werte vom Typ \"{expect}\", aber es wurde ein \"{actual}\" Wert angegeben!" thereIsEmptySlot: "Slot {slot} ist leer!" types: string: "Text" number: "Nummer" - boolean: "Wahrheitswert" - array: "Liste" + boolean: "Flag" + array: "Listen" stringArray: "Textliste" emptySlot: "Leerer Slot" enviromentVariables: "Umgebungsvariable" - pageVariables: "Seitenelemente" - argVariables: "Eingabeslots" + pageVariables: "Seitenelement" + argVariables: "Eingabe-Slot" _relayStatus: requesting: "Ausstehend" accepted: "Akzeptiert" @@ -1689,15 +1372,13 @@ _notification: youGotReply: "{name} hat dir geantwortet" youGotQuote: "{name} hat dich zitiert" youRenoted: "Renote deiner Notiz von {name}" - youGotPoll: "{name} hat in deiner Umfrage abgestimmt" + youGotPoll: "{name} hat auf deiner Umfrage abgestimmt" youGotMessagingMessageFromUser: "{name} hat dir eine Chatnachricht gesendet" youGotMessagingMessageFromGroup: "In die Gruppe {name} wurde eine Chatnachricht gesendet" - youWereFollowed: "ist dir gefolgt" + youWereFollowed: "Du hast einen neuen Follower" youReceivedFollowRequest: "Du hast eine Follow-Anfrage erhalten" yourFollowRequestAccepted: "Deine Follow-Anfrage wurde akzeptiert" - youWereInvitedToGroup: "{userName} hat dich in eine Gruppe eingeladen" - pollEnded: "Umfrageergebnisse sind verfügbar" - emptyPushNotificationMessage: "Push-Benachrichtigungen wurden aktualisiert" + youWereInvitedToGroup: "Du wurdest in eine Gruppe eingeladen" _types: all: "Alle" follow: "Neue Follower" @@ -1707,38 +1388,25 @@ _notification: quote: "Zitationen" reaction: "Reaktionen" pollVote: "Antworten auf Umfragen" - pollEnded: "Ende von Umfragen" - receiveFollowRequest: "Erhaltene Follow-Anfragen" - followRequestAccepted: "Akzeptierte Follow-Anfragen" - groupInvited: "Erhaltene Gruppeneinladungen" + receiveFollowRequest: "Follow-Anfrage erhalten" + followRequestAccepted: "Follow-Anfrage akzeptiert" + groupInvited: "Gruppeneinladung erhalten" app: "Benachrichtigungen von Apps" - _actions: - followBack: "folgt dir nun auch" - reply: "Antworten" - renote: "Renote" _deck: alwaysShowMainColumn: "Hauptspalte immer zeigen" - columnAlign: "Spaltenausrichtung" + columnAlign: "Spalten ausrichten" addColumn: "Spalte hinzufügen" - configureColumn: "Spalteneinstellungen" - swapLeft: "Mit linker Spalte tauschen" - swapRight: "Mit rechter Spalte tauschen" - swapUp: "Mit oberer Spalte tauschen" - swapDown: "Mit unterer Spalte tauschen" - stackLeft: "Auf linke Spalte stapeln" + swapLeft: "Nach links verschieben" + swapRight: "Nach rechts verschieben" + swapUp: "Nach oben verschieben" + swapDown: "Nach unten verschieben" + stackLeft: "Nach links stapeln" popRight: "Nach rechts vom Stapel nehmen" - profile: "Profil" - newProfile: "Neues Profil" - deleteProfile: "Profil löschen" - introduction: "Erstelle eine auf dich zugeschneiderte Benutzeroberfläche durch das Aneinanderreihen von Spalten!" - introduction2: "Klicke auf das + rechts um wann immer du möchtest neue Spalten hinzuzufügen." - widgetsIntroduction: "Drücke bitte \"Widgets bearbeiten\" im Spaltenmenü und füge ein Widget hinzu." _columns: - main: "Hauptspalte" widgets: "Widgets" notifications: "Benachrichtigungen" tl: "Chronik" antenna: "Antennen" list: "Listen" mentions: "Erwähnungen" - direct: "Direktnachrichten" + direct: "Direkt" diff --git a/locales/en-US.yml b/locales/en-US.yml index 3b04b401d..49f4d0974 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -1,14 +1,12 @@ --- _lang_: "English" -headlineMisskey: "A network connected by notes" -introMisskey: "Welcome! Misskey is an open source, decentralized microblogging service.\nCreate \"notes\" to share your thoughts with everyone around you. 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes. 👍\nLet's explore a new world! 🚀" +introMisskey: "Welcome! Misskey is an open source, and also a decentralized microblogging service.\nCreate \"notes\" to share what is happening now, or to share it with everyone around you 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes 👍\nLet's explore a new world 🚀" monthAndDay: "{month}/{day}" search: "Search" notifications: "Notifications" username: "Username" password: "Password" -forgotPassword: "Forgot password" -fetchingAsApObject: "Fetching from the Fediverse..." +fetchingAsApObject: "Fetching from Fediverse..." ok: "OK" gotIt: "Got it!" cancel: "Cancel" @@ -28,32 +26,27 @@ login: "Sign In" loggingIn: "Signing In" logout: "Sign Out" signup: "Sign Up" -uploading: "Uploading..." +uploading: "Uploading" save: "Save" users: "Users" addUser: "Add a user" -favorite: "Add to favorites" +favorite: "Favorite" favorites: "Favorites" -unfavorite: "Remove from favorites" -favorited: "Added to favorites." -alreadyFavorited: "Already added to favorites." -cantFavorite: "Couldn't add to favorites." +unfavorite: "Unfavorite" pin: "Pin to profile" unpin: "Unpin from profile" copyContent: "Copy contents" copyLink: "Copy link" delete: "Delete" -deleteAndEdit: "Delete and edit" +deleteAndEdit: "Delete and Edit" deleteAndEditConfirm: "Are you sure you want to delete this note and edit it? You will lose all reactions, renotes and replies to it." addToList: "Add to list" sendMessage: "Send a message" copyUsername: "Copy username" -searchUser: "Search for a user" +searchUser: "User search" reply: "Reply" loadMore: "Load more" -showMore: "Show more" -showLess: "Close" -youGotNewFollower: "followed you" +youGotNewFollower: "Followed you" receiveFollowRequest: "Follow request received" followRequestAccepted: "Follow request accepted" mention: "Mention" @@ -66,11 +59,11 @@ files: "Files" download: "Download" driveFileDeleteConfirm: "Are you sure you want to delete the file \"{name}\"? Notes with this file attached will also be deleted." unfollowConfirm: "Are you sure that you want to unfollow {name}?" -exportRequested: "You've requested an export. This may take a while. It will be added to your Drive once completed." -importRequested: "You've requested an import. This may take a while." +exportRequested: "You have requested an export. This may take a while. After the export is complete, the resulting file will be added to the drive." +importRequested: "You requested an import. This may take a while." lists: "Lists" noLists: "You don't have any lists" -note: "Note" +note: "Notes" notes: "Notes" following: "Following" followers: "Followers" @@ -78,42 +71,36 @@ followsYou: "Follows you" createList: "Create list" manageLists: "Manage lists" error: "Error" -somethingHappened: "An error has occurred" +somethingHappened: "An error occurred" retry: "Retry" -pageLoadError: "An error occurred loading the page." -pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearing the cache and then try again after waiting a little while." -serverIsDead: "This server is not responding. Please wait for a while and try again." -youShouldUpgradeClient: "To view this page, please refresh to update your client." -enterListName: "Enter a name for the list" +pageLoadError: "Failed to load page" +pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearung the cache and then try again after waiting a little while." +enterListName: "List name" privacy: "Privacy" makeFollowManuallyApprove: "Follow requests require approval" defaultNoteVisibility: "Default visibility" follow: "Follow" -followRequest: "Send follow request" +followRequest: "Request follow" followRequests: "Follow requests" unfollow: "Unfollow" -followRequestPending: "Follow request pending" +followRequestPending: "Pending follow request" enterEmoji: "Enter an emoji" renote: "Renote" -unrenote: "Take back renote" -renoted: "Renoted." -cantRenote: "This post can't be renoted." -cantReRenote: "A renote can't be renoted." +unrenote: "Unrenote" quote: "Quote" pinnedNote: "Pinned note" -pinned: "Pin to profile" you: "You" clickToShow: "Click to show" sensitive: "NSFW" add: "Add" -reaction: "Reactions" -reactionSetting: "Reactions to show in the reaction picker" -reactionSettingDescription2: "Drag to reorder, click to delete, press \"+\" to add." +reaction: "Reaction" +reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker." +reactionSettingDescription2: "Drag to reorganize, click to delete." rememberNoteVisibility: "Remember note visibility settings" attachCancel: "Remove attachment" markAsSensitive: "Mark as NSFW" -unmarkAsSensitive: "Unmark as NSFW" -enterFileName: "Enter filename" +unmarkAsSensitive: "Undo NSFW" +enterFileName: "Enter file name" mute: "Mute" unmute: "Unmute" block: "Block" @@ -123,29 +110,24 @@ unsuspend: "Unsuspend" blockConfirm: "Are you sure that you want to block this account?" unblockConfirm: "Are you sure that you want to unblock this account?" suspendConfirm: "Are you sure that you want to suspend this account?" -unsuspendConfirm: "Are you sure that you want to unsuspend this account?" +unsuspendConfirm: "Are you sure you that want to unsuspend this account?" selectList: "Select a list" -selectAntenna: "Select an antenna" +selectAntenna: "Select an Antenna" selectWidget: "Select a widget" editWidgets: "Edit widgets" editWidgetsExit: "Done" customEmojis: "Custom Emoji" emoji: "Emoji" -emojis: "Emoji" emojiName: "Emoji name" emojiUrl: "Emoji URL" addEmoji: "Add an emoji" -settingGuide: "Recommended settings" +settingGuide: "Suggested Configuration" cacheRemoteFiles: "Cache remote files" -cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but increase traffic, as thumbnails will not be generated." -flagAsBot: "Mark this account as a bot" -flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot." -flagAsCat: "Mark this account as a cat" -flagAsCatDescription: "Enable this option to mark this account as a cat." -flagShowTimelineReplies: "Show replies in timeline" -flagShowTimelineRepliesDescription: "Shows replies of users to notes of other users in the timeline if turned on." +cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but will increase traffic, because thumbnails will not be generated." +flagAsBot: "This account is a bot" +flagAsCat: "This account is a cat" autoAcceptFollowed: "Automatically approve follow requests from users you're following" -addAccount: "Add account" +addAcount: "Add Account" loginFailed: "Failed to sign in" showOnRemote: "View on remote instance" general: "General" @@ -158,19 +140,19 @@ followConfirm: "Are you sure that you want to follow {name}?" proxyAccount: "Proxy account" proxyAccountDescription: "A proxy account is an account that acts as a remote follower for users under certain conditions. For example, when a user adds a remote user to the list, the remote user's activity will not be delivered to the instance if no local user is following that user, so the proxy account will follow instead." host: "Host" -selectUser: "Select a user" +selectUser: "Select user" recipient: "Recipient" annotation: "Comments" federation: "Federation" -instances: "Instances" +instances: "Instance" registeredAt: "Registered at" -latestRequestSentAt: "Last request sent" -latestRequestReceivedAt: "Last request received" +latestRequestSentAt: "Last request sent at" +latestRequestReceivedAt: "Last request received at" latestStatus: "Latest status" storageUsage: "Storage usage" charts: "Charts" -perHour: "Per Hour" -perDay: "Per Day" +perHour: "per Hour" +perDay: "per Day" stopActivityDelivery: "Stop sending activities" blockThisInstance: "Block this instance" operations: "Operations" @@ -187,25 +169,24 @@ instanceInfo: "Instance Information" statistics: "Statistics" clearQueue: "Clear queue" clearQueueConfirmTitle: "Are you sure that you want to clear the queue?" -clearQueueConfirmText: "Any undelivered notes remaining in the queue will not be federated. Usually this operation is not needed." +clearQueueConfirmText: "Any undelivered notes remaining in the queue will not be federated. Usually this operation is NOT needed." clearCachedFiles: "Clear cache" -clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?" +clearCachedFilesConfirm: "Are you sure that you want to delete all the cached remote files?" blockedInstances: "Blocked Instances" -blockedInstancesDescription: "List the hostnames of the instances that you want to block. Listed instances will no longer be able to communicate with this instance." -muteAndBlock: "Mutes and Blocks" +blockedInstancesDescription: "List the hostname of the instances that need to be blocked. Listed instances will no longer be able to communicate with this instance." +muteAndBlock: "Mute / Block" mutedUsers: "Muted users" blockedUsers: "Blocked users" noUsers: "There are no users" editProfile: "Edit profile" noteDeleteConfirm: "Are you sure you want to delete this note?" -pinLimitExceeded: "You cannot pin any more notes" +pinLimitExceeded: "You cannot pin any more notes." intro: "Installation of Misskey has been finished! Please create an admin user." done: "Done" -processing: "Processing..." +processing: "Processing" preview: "Preview" default: "Default" -defaultValueIs: "Default: {value}" -noCustomEmojis: "There are no emoji" +noCustomEmojis: "There are no emojis" noJobs: "There are no jobs" federating: "Federating" blocked: "Blocked" @@ -219,7 +200,7 @@ instanceFollowers: "Followers of instance" instanceUsers: "Users of this instance" changePassword: "Change password" security: "Security" -retypedNotMatch: "The inputs do not match." +retypedNotMatch: "The input does not match." currentPassword: "Current password" newPassword: "New password" newPasswordRetype: "Retype new password" @@ -233,14 +214,12 @@ announcements: "Announcements" imageUrl: "Image URL" remove: "Delete" removed: "Successfully deleted" -removeAreYouSure: "Are you sure that you want to remove \"{x}\"?" +removeAreYouSure: "Are you sure that you want to delete \"{x}\"?" deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?" resetAreYouSure: "Really reset?" saved: "Saved" -messaging: "Chat" +messaging: "Messaging" upload: "Upload" -keepOriginalUploading: "Keep original image" -keepOriginalUploadingDescription: "Saves the originally uploaded image as-is. If turned off, a version to display on the web will be generated on upload." fromDrive: "From Drive" fromUrl: "From URL" uploadFromUrl: "Upload from a URL" @@ -248,28 +227,29 @@ uploadFromUrlDescription: "URL of the file you want to upload" uploadFromUrlRequested: "Upload requested" uploadFromUrlMayTakeTime: "It may take some time until the upload is complete." explore: "Explore" +games: "Misskey Games" messageRead: "Read" noMoreHistory: "There is no further history" -startMessaging: "Start a new chat" +startMessaging: "Start messaging" nUsersRead: "read by {n}" agreeTo: "I agree to {0}" tos: "Terms of Service" start: "Begin" home: "Home" -remoteUserCaution: "As this user is from a remote instance, the shown information may be incomplete." +remoteUserCaution: "This information may not be up-to-date, because the user is from a remote instance." activity: "Activity" images: "Images" birthday: "Birthday" yearsOld: "{age} years old" registeredDate: "Joined on" location: "Location" -theme: "Themes" +theme: "Theme" themeForLightMode: "Theme to use in Light Mode" themeForDarkMode: "Theme to use in Dark Mode" light: "Light" dark: "Dark" -lightThemes: "Light themes" -darkThemes: "Dark themes" +lightThemes: "Light theme" +darkThemes: "Dark theme" syncDeviceDarkMode: "Sync Dark Mode with your device settings" drive: "Drive" fileName: "Filename" @@ -283,11 +263,10 @@ createFolder: "Create a folder" renameFolder: "Rename this folder" deleteFolder: "Delete this folder" addFile: "Add a file" -emptyDrive: "Your Drive is empty" +emptyDrive: "The drive is empty" emptyFolder: "This folder is empty" unableToDelete: "Unable to delete" inputNewFileName: "Enter a new filename" -inputNewDescription: "Enter new caption" inputNewFolderName: "Enter a new folder name" circularReferenceFolder: "The destination folder is a subfolder of the folder you wish to move." hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted." @@ -297,12 +276,12 @@ avatar: "Avatar" banner: "Banner" nsfw: "NSFW" whenServerDisconnected: "When losing connection to the server" -disconnectedFromServer: "Connection to server has been lost" +disconnectedFromServer: "Connection to the server was interrupted." reload: "Refresh" doNothing: "Ignore" -reloadConfirm: "Would you like to refresh the timeline?" +reloadConfirm: "Would you like to refresh timeline?" watch: "Watch" -unwatch: "Stop watching" +unwatch: "Undo Watch" accept: "Accept" reject: "Reject" normal: "Normal" @@ -316,30 +295,29 @@ thisMonth: "Month" today: "Today" dayX: "{day}" monthX: "{month}" -yearX: "{year}" +yearX: "{year} /" pages: "Pages" integration: "Integration" -connectService: "Connect" -disconnectService: "Disconnect" +connectSerice: "Connect" +disconnectSerice: "Disconnect" enableLocalTimeline: "Enable local timeline" enableGlobalTimeline: "Enable global timeline" -disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all timelines, even if they are not enabled." +disablingTimelinesInfo: "Admins and Mods will always have access to all timelines, even if they are not enabled." registration: "Register" -enableRegistration: "Enable new user registration" +enableRegistration: "Enable new user registeration" invite: "Invite" +proxyRemoteFiles: "Proxy remote files" +proxyRemoteFilesDescription: "If enabled, remote files that (1) are not stored locally or (2) got deleted from exceeding storage limit will be locally proxied (with thumbnails). This does not affect the server's storage." driveCapacityPerLocalAccount: "Drive capacity per local user" driveCapacityPerRemoteAccount: "Drive capacity per remote user" inMb: "In megabytes" iconUrl: "Icon URL" bannerUrl: "Banner image URL" -backgroundImageUrl: "Background image URL" basicInfo: "Basic info" -pinnedUsers: "Pinned users" -pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the \"Explore\" tab." -pinnedPages: "Pinned Pages" -pinnedPagesDescription: "Enter the paths of the Pages you want to pin to the top page of this instance, separated by line breaks." -pinnedClipId: "ID of the clip to pin" -pinnedNotes: "Pinned notes" +pinnedUsers: "Pinned user" +pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab." +pinnedPages: "Pinned pages" +pinnedPagesDescription: "Enter the paths of the pages you want to pin to the top page of this instance, separated by new lines." hcaptcha: "hCaptcha" enableHcaptcha: "Enable hCaptcha" hcaptchaSiteKey: "Site key" @@ -348,56 +326,63 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "Enable reCAPTCHA" recaptchaSiteKey: "Site key" recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interference between them. Would you like to disable the other Captcha systems currently active? If you would like them to stay enabled, press cancel." +avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interference. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by press cancel." antennas: "Antennas" manageAntennas: "Manage Antennas" name: "Name" antennaSource: "Antenna source" -antennaKeywords: "Keywords to listen to" +antennaKeywords: "Keywords to receive" antennaExcludeKeywords: "Keywords to exclude" -antennaKeywordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." -notifyAntenna: "Notify about new notes" -withFileAntenna: "Only notes with files" -enableServiceworker: "Enable Push-Notifications for your Browser" +antennaKeywordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR." +notifyAntenna: "Notify newer notes" +withFileAntenna: "Filter only notes with file attached" +serviceworker: "ServiceWorker" +enableServiceworker: "Enable ServiceWorker" antennaUsersDescription: "List one username per line" caseSensitive: "Case sensitive" withReplies: "Include replies" connectedTo: "Following account(s) are connected" notesAndReplies: "Notes and replies" -withFiles: "Including files" +withFiles: "Media" silence: "Silence" silenceConfirm: "Are you sure that you want to silence this user?" -unsilence: "Undo silencing" -unsilenceConfirm: "Are you sure that you want to undo the silencing of this user?" -popularUsers: "Popular users" -recentlyUpdatedUsers: "Recently active users" +unsilence: "Unsilence" +unsilenceConfirm: "Are you sure that you want to undo silence of this user?" +popularUsers: "Trending users" +recentlyUpdatedUsers: "Users with recent activity" recentlyRegisteredUsers: "Newly joined users" recentlyDiscoveredUsers: "Newly discovered users" exploreUsersCount: "There are {count} users" -exploreFediverse: "Explore the Fediverse" -popularTags: "Popular tags" +exploreFediverse: "Explore Fediverse" +popularTags: "Trending Tags" userList: "Lists" about: "About" aboutMisskey: "About Misskey" -administrator: "Administrator" +aboutMisskeyText: "Misskey is an open-source software developed by syuilo since 2014." +misskeyMembers: "It is currently developed and maintained by the members listed below:" +misskeySource: "Source code is available here:" +misskeyTranslation: "Help us with your contribution to translate Misskey:" +misskeyDonate: "Help us to keep improving the software by donating here:" +morePatrons: "We really appreciate the support of many other helpers not listed here. Thank you! 🥰" +patrons: "Backers" +administrator: "Admin" token: "Token" twoStepAuthentication: "Two-factor authentication" -moderator: "Moderator" -moderation: "Moderation" -nUsersMentioned: "Mentioned by {n} users" +moderator: "Mod" +nUsersMentioned: "{n} users mentioned" securityKey: "Security key" securityKeyName: "Key name" registerSecurityKey: "Register a security key" lastUsed: "Last used" unregister: "Unregister" -passwordLessLogin: "Password-less login" +passwordLessLogin: "Set up password-less login" resetPassword: "Reset password" newPasswordIs: "The new password is \"{password}\"" -reduceUiAnimation: "Reduce UI animations" +reduceUiAnimation: "Reduce UI animation" share: "Share" notFound: "Not found" -notFoundDescription: "No page corresponding to this URL could be found." -uploadFolder: "Default folder for uploads" +notFoundDescription: "There was no page corresponding to the specified URL." +uploadFolder: "Default Upload location" cacheClear: "Clear cache" markAsReadAllNotifications: "Mark all notifications as read" markAsReadAllUnreadNotes: "Mark all notes as read" @@ -405,141 +390,137 @@ markAsReadAllTalkMessages: "Mark all messages as read" help: "Help" inputMessageHere: "Enter message here" close: "Close" -group: "Group" +group: "Groups" groups: "Groups" createGroup: "Create a group" ownedGroups: "Owned Groups" -joinedGroups: "Joined groups" -invites: "Invites" +joinedGroups: "Membership in groups" +invites: "Invite" groupName: "Group name" members: "Members" transfer: "Transfer" -messagingWithUser: "Private chat" -messagingWithGroup: "Group chat" +messagingWithUser: "Messaging with other user" +messagingWithGroup: "Messaging within group" title: "Title" text: "Text" enable: "Enable" next: "Next" retype: "Enter again" -noteOf: "Note by {user}" +noteOf: "{user}'s notes" inviteToGroup: "Invite to group" -quoteAttached: "Quote" -quoteQuestion: "Append as quote?" +maxNoteTextLength: "Character limit of notes" +quoteAttached: "Quoted" +quoteQuestion: "Do you want to append a quote?" noMessagesYet: "No messages yet" -newMessageExists: "There are new messages" +newMessageExists: "You've got a new message" onlyOneFileCanBeAttached: "You can only attach one file to a message" -signinRequired: "Please register or sign in before continuing" -invitations: "Invites" +signinRequired: "Please sign in" +invitations: "Invitations" invitationCode: "Invitation code" -checking: "Checking..." +checking: "Checking" available: "Available" unavailable: "Not available" -usernameInvalidFormat: "You can use upper- and lowercase letters, numbers, and underscores." +usernameInvalidFormat: "letters, numbers and _ are acceptable." tooShort: "Too short" tooLong: "Too long" weakPassword: "Weak password" -normalPassword: "Average password" +normalPassword: "Good password" strongPassword: "Strong password" -passwordMatched: "Matches" -passwordNotMatched: "Does not match" +passwordMatched: "Matched" +passwordNotMatched: "Doesn't match" signinWith: "Sign in with {x}" -signinFailed: "Unable to sign in. The entered username or password is incorrect." +signinFailed: "Unable to sign in. The username or password you entered is incorrect." tapSecurityKey: "Tap your security key" or: "Or" -language: "Language" -uiLanguage: "User interface language" -groupInvited: "You've been invited to a group" +uiLanguage: "UI display language" +groupInvited: "Invited to group" aboutX: "About {x}" -useOsNativeEmojis: "Use OS native Emoji" -disableDrawer: "Don't use drawer-style menus" +useOsNativeEmojis: "Use OS native Emojis" youHaveNoGroups: "You have no groups" -joinOrCreateGroup: "Get invited to a group or create your own." -noHistory: "No history available" -signinHistory: "Login history" +joinOrCreateGroup: "Get invited to join the groups or you can create your own group." +noHistory: "No history items" disableAnimatedMfm: "Disable MFM with animation" -doing: "Processing..." +doing: "On my way" category: "Category" tags: "Tags" docSource: "Source of this document" createAccount: "Create account" -existingAccount: "Existing account" +existingAcount: "Existing accounts" regenerate: "Regenerate" fontSize: "Font size" noFollowRequests: "You don't have any pending follow requests" -openImageInNewTab: "Open images in new tab" +openImageInNewTab: "Open image in new tab" dashboard: "Dashboard" local: "Local" remote: "Remote" total: "Total" -weekOverWeekChanges: "Changes to last week" -dayOverDayChanges: "Changes to yesterday" +weekOverWeekChanges: "Weekly" +dayOverDayChanges: "Daily" appearance: "Appearance" -clientSettings: "Client Settings" +clientSettings: "Client settings" accountSettings: "Account Settings" promotion: "Promoted" promote: "Promote" -numberOfDays: "Number of days" +numberOfDays: "Amount of days" hideThisNote: "Hide this note" -showFeaturedNotesInTimeline: "Show featured notes in timelines" +showFeaturedNotesInTimeline: "Show Featured notes in Timeline" objectStorage: "Object Storage" useObjectStorage: "Use object storage" objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "The URL used as reference. Specify the URL of your CDN or Proxy if you are using either.\nFor S3 use 'https://.s3.amazonaws.com' and for GCS or equivalent services use 'https://storage.googleapis.com/', etc." +objectStorageBaseUrlDesc: "URL prefix used for construct URL to object (media) referencing. Specify its URL if you are using a CDN or Proxy, otherwise specify the address that publicly accessible according to the guide of service that you're going to use. i.g 'https://.s3.amazonaws.com' for AWS S3, and 'https://storage.googleapis.com/' for GCS." objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Please specify the bucket name used at your provider." +objectStorageBucketDesc: "Please specify the bucket name used on configured service." objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Files will be stored under directories with this prefix." +objectStoragePrefixDesc: "Files will stored under the directory of this prefix." objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify the endpoint as '' or ':', depending on the service you are using." +objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify the endpoint as '' or ':' according to the guide of service that you're going to use." objectStorageRegion: "Region" -objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does not distinguish between regions, leave this blank or enter 'us-east-1'." +objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does not have distinction about regions, leave it blank or fill with 'us-east-1'." objectStorageUseSSL: "Use SSL" -objectStorageUseSSLDesc: "Turn this off if you are not going to use HTTPS for API connections" +objectStorageUseSSLDesc: "Turn off this if you are not going to use HTTPS for API connection" objectStorageUseProxy: "Connect over Proxy" -objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for API connections" +objectStorageUseProxyDesc: "Turn off this if you are not going to use Proxy for ObjectStorage connection" objectStorageSetPublicRead: "Set \"public-read\" on upload" serverLogs: "Server logs" deleteAll: "Delete all" showFixedPostForm: "Display the posting form at the top of the timeline" -newNoteRecived: "There are new notes" +newNoteRecived: "You've got a new note" sounds: "Sounds" listen: "Listen" none: "None" showInPage: "Show in page" popout: "Pop-out" volume: "Volume" -masterVolume: "Master volume" details: "Details" -chooseEmoji: "Select an emoji" -unableToProcess: "The operation could not be completed" +chooseEmoji: "Choose an emoji" +unableToProcess: "The operation could not be completed." recentUsed: "Recently used" install: "Install" uninstall: "Uninstall" installedApps: "Authorized Applications" nothing: "There's nothing to see here" -installedDate: "Authorized at" -lastUsedDate: "Last used at" +installedDate: "Authorized" +lastUsedDate: "Last used" state: "State" sort: "Sort" ascendingOrder: "Ascending" descendingOrder: "Descending" -scratchpad: "Scratchpad" -scratchpadDescription: "The Scratchpad provides an environment for AiScript experiments. You can write, execute, and check the results of it interacting with Misskey in it." +scratchpad: "Scratch pad" +scratchpadDescription: "Scratchpad provides experimental environment for AiScript. You can write, execute, and check the results that interact with Misskey." output: "Output" script: "Script" disablePagesScript: "Disable AiScript on Pages" updateRemoteUser: "Update remote user information" -deleteAllFiles: "Delete all files" +deleteAllFiles: "Delete All Files" deleteAllFilesConfirm: "Are you sure that you want to delete all files?" -removeAllFollowing: "Unfollow all followed users" -removeAllFollowingDescription: "Executing this unfollows all accounts from {host}. Please run this if the instance e.g. no longer exists." +removeAllFollowing: "Withhold All Followings" +removeAllFollowingDescription: "Unfollow all accounts from {host}. Please run this if the instance no longer exists." userSuspended: "This user has been suspended." -userSilenced: "This user is being silenced." -yourAccountSuspendedTitle: "This account is suspended" -yourAccountSuspendedDescription: "This account has been suspended due to breaking the server's terms of services or similar. Contact the administrator if you would like to know a more detailed reason. Please do not create a new account." -menu: "Menu" +userSilenced: "This user has been silenced." +sidebar: "Sidebar" divider: "Divider" addItem: "Add Item" +rooms: "Room" relays: "Relays" addRelay: "Add Relay" inboxUrl: "Inbox URL" @@ -547,7 +528,7 @@ addedRelays: "Added Relays" serviceworkerInfo: "Must be enabled for push notifications." deletedNote: "Deleted note" invisibleNote: "Invisible note" -enableInfiniteScroll: "Automatically load more" +enableInfiniteScroll: "Enable infinite scrolling" visibility: "Visiblility" poll: "Poll" useCw: "Hide content" @@ -556,22 +537,17 @@ disablePlayer: "Close video player" expandTweet: "Expand tweet" themeEditor: "Theme editor" description: "Description" -describeFile: "Add caption" -enterFileDescription: "Enter caption" author: "Author" leaveConfirm: "There are unsaved changes. Do you want to discard them?" manage: "Management" plugins: "Plugins" -preferencesBackups: "Preference backups" +pluginInstallWarn: "Please do not install untrustworthy plugins." deck: "Deck" undeck: "Leave Deck" useBlurEffectForModal: "Use blur effect for modals" useFullReactionPicker: "Use full-size reaction picker" width: "Width" height: "Height" -large: "Big" -medium: "Medium" -small: "Small" generateAccessToken: "Generate access token" permission: "Permissions" enableAll: "Enable all" @@ -581,12 +557,11 @@ pluginTokenRequestedDescription: "This plugin will be able to use the permission notificationType: "Notification type" edit: "Edit" useStarForReactionFallback: "Use ★ as fallback if the reaction emoji is unknown" -emailServer: "Email server" +emailConfig: "Email server configuration" enableEmail: "Enable email distribution" -emailConfigInfo: "Used to confirm your email during sign-up or if you forget your password" -email: "Email" -emailAddress: "Email address" -smtpConfig: "SMTP Server Configuration" +emailConfigInfo: "Used to confirm your email during sign-up and if you forget your password" +email: "Email Address" +smtpConfig: "SMTP Server configuration" smtpHost: "Host" smtpPort: "Port" smtpUser: "Username" @@ -596,9 +571,6 @@ smtpSecure: "Use implicit SSL/TLS for SMTP connections" smtpSecureInfo: "Turn this off when using STARTTLS" testEmail: "Test email delivery" wordMute: "Word mute" -regexpError: "Regular Expression error" -regexpErrorDescription: "An error occurred in the regular expression on line {line} of your {tab} word mutes:" -instanceMute: "Instance Mutes" userSaysSomething: "{name} said something" makeActive: "Activate" display: "Display" @@ -611,26 +583,21 @@ database: "Database" channel: "Channels" create: "Create" notificationSetting: "Notification settings" -notificationSettingDesc: "Select the types of notification to display." -useGlobalSetting: "Use global settings" +notificationSettingDesc: "Select the type of notification to display" +useGlobalSetting: "Use global setting" useGlobalSettingDesc: "If turned on, your account's notification settings will be used. If turned off, individual configurations can be made." other: "Other" regenerateLoginToken: "Regenerate login token" -regenerateLoginTokenDescription: "Regenerates the token used internally during login. Normally this action is not necessary. If regenerated, all devices will be logged out." -setMultipleBySeparatingWithSpace: "Separate multiple entries with spaces." -fileIdOrUrl: "File ID or URL" -behavior: "Behavior" +regenerateLoginTokenDescription: "Regenerate the token used internally during login. Normally this action is not necessary. If regenerated, all devices will be logged out." +setMultipleBySeparatingWithSpace: "You can set multiple by separating them with spaces." +fileIdOrUrl: "File-ID or URL" +chatOpenBehavior: "Behavior of the chat window when opened" sample: "Sample" abuseReports: "Reports" reportAbuse: "Report" reportAbuseOf: "Report {name}" -fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL." +fillAbuseReportDescription: "Please fill in the report details. If it is about a specific note, please include its URL." abuseReported: "Your report has been sent. Thank you very much." -reporter: "Reporter" -reporteeOrigin: "Reportee Origin" -reporterOrigin: "Reporter Origin" -forwardReport: "Forward report to remote instance" -forwardReportIsAnonymous: "Instead of your account, an anonymous system account will be displayed as reporter at the remote instance." send: "Send" abuseMarkAsResolved: "Mark report as resolved" openInNewTab: "Open in new tab" @@ -647,367 +614,35 @@ clip: "Clip" createNew: "Create new" optional: "Optional" createNewClip: "Create new clip" -unclip: "Unclip" -confirmToUnclipAlreadyClippedNote: "This note is already part of the \"{name}\" clip. Do you want to remove it from this clip instead?" public: "Public" -i18nInfo: "Misskey is being translated into various languages by volunteers. You can help at {link}." -manageAccessTokens: "Manage access tokens" -accountInfo: "Account Info" -notesCount: "Number of notes" -repliesCount: "Number of replies sent" -renotesCount: "Number of renotes sent" -repliedCount: "Number of replies received" -renotedCount: "Number of renotes received" -followingCount: "Number of followed accounts" -followersCount: "Number of followers" -sentReactionsCount: "Number of sent reactions" -receivedReactionsCount: "Number of received reactions" -pollVotesCount: "Number of sent poll votes" -pollVotedCount: "Number of received poll votes" -yes: "Yes" -no: "No" -driveFilesCount: "Number of Drive files" -driveUsage: "Drive space usage" -noCrawle: "Reject crawler indexing" -noCrawleDescription: "Ask search engines to not index your profile page, notes, Pages, etc." -lockedAccountInfo: "Unless you set your note visiblity to \"Followers only\", your notes will be visible to anyone, even if you require followers to be manually approved." -alwaysMarkSensitive: "Mark as NSFW by default" -loadRawImages: "Load original images instead of showing thumbnails" -disableShowingAnimatedImages: "Don't play animated images" -verificationEmailSent: "A verification email has been sent. Please follow the included link to complete verification." -notSet: "Not set" -emailVerified: "Email has been verified" -noteFavoritesCount: "Number of favorite notes" -pageLikesCount: "Number of liked Pages" -pageLikedCount: "Number of received Page likes" -contact: "Contact" -useSystemFont: "Use the system's default font" -clips: "Clips" -experimentalFeatures: "Experimental features" -developer: "Developer" -makeExplorable: "Make account visible in \"Explore\"" -makeExplorableDescription: "If you turn this off, your account will not show up in the \"Explore\" section." -showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline" -duplicate: "Duplicate" -left: "Left" -center: "Center" -wide: "Wide" -narrow: "Narrow" -reloadToApplySetting: "This setting will only apply after a page reload. Reload now?" -needReloadToApply: "A reload is required for this to be reflected." -showTitlebar: "Show title bar" -clearCache: "Clear cache" -onlineUsersCount: "{n} users are online" -nUsers: "{n} Users" -nNotes: "{n} Notes" -sendErrorReports: "Send error reports" -sendErrorReportsDescription: "When turned on, detailed error information will be shared with Misskey when a problem occurs, helping to improve the quality of Misskey.\nThis will include information such the version of your OS, what browser you're using, your activity in Misskey, etc." -myTheme: "My theme" -backgroundColor: "Background color" -accentColor: "Accent color" -textColor: "Text color" -saveAs: "Save as..." -advanced: "Advanced" -value: "Value" -createdAt: "Created at" -updatedAt: "Updated at" -saveConfirm: "Save changes?" -deleteConfirm: "Really delete?" -invalidValue: "Invalid value." -registry: "Registry" -closeAccount: "Close account" -currentVersion: "Current version" -latestVersion: "Newest version" -youAreRunningUpToDateClient: "You are using the newest version of your client." -newVersionOfClientAvailable: "There is a newer version of your client available." -usageAmount: "Usage" -capacity: "Capacity" -inUse: "Used" -editCode: "Edit code" -apply: "Apply" -receiveAnnouncementFromInstance: "Receive notifications from this instance" -emailNotification: "Email notifications" -publish: "Publish" -inChannelSearch: "Search in channel" -useReactionPickerForContextMenu: "Open reaction picker on right-click" -typingUsers: "{users} is/are typing..." -jumpToSpecifiedDate: "Jump to specific date" -showingPastTimeline: "Currently displaying an old timeline" -clear: "Return" -markAllAsRead: "Mark all as read" -goBack: "Back" -unlikeConfirm: "Really remove your like?" -fullView: "Full view" -quitFullView: "Exit full view" -addDescription: "Add description" -userPagePinTip: "You can display notes here by selecting \"Pin to profile\" from the menu of individual notes." -notSpecifiedMentionWarning: "This note contains mentions of users not included as recipients" -info: "About" -userInfo: "User information" -unknown: "Unknown" -onlineStatus: "Online status" -hideOnlineStatus: "Hide online status" -hideOnlineStatusDescription: "Hiding your online status reduces the convenience of some features such as the search." -online: "Online" -active: "Active" -offline: "Offline" -notRecommended: "Not recommended" -botProtection: "Bot Protection" -instanceBlocking: "Blocked Instances" -selectAccount: "Select account" -switchAccount: "Switch account" -enabled: "Enabled" -disabled: "Disabled" -quickAction: "Quick actions" -user: "User" -administration: "Management" -accounts: "Accounts" -switch: "Switch" -noMaintainerInformationWarning: "Maintainer information is not configured." -noBotProtectionWarning: "Bot protection is not configured." -configure: "Configure" -postToGallery: "Create new gallery post" -gallery: "Gallery" -recentPosts: "Recent posts" -popularPosts: "Popular posts" -shareWithNote: "Share with note" -ads: "Advertisements" -expiration: "Deadline" -memo: "Memo" -priority: "Priority" -high: "High" -middle: "Medium" -low: "Low" -emailNotConfiguredWarning: "Email address not set." -ratio: "Ratio" -previewNoteText: "Show preview" -customCss: "Custom CSS" -customCssWarn: "This setting should only be used if you know what it does. Entering improper values may cause the client to stop functioning normally." -global: "Global" -squareAvatars: "Display squared avatars" -sent: "Sent" -received: "Received" -searchResult: "Search results" -hashtags: "Hashtags" -troubleshooting: "Troubleshooting" -useBlurEffect: "Use blur effects in the UI" -learnMore: "Learn more" -misskeyUpdated: "Misskey has been updated!" -whatIsNew: "Show changes" -translate: "Translate" -translatedFrom: "Translated from {x}" -accountDeletionInProgress: "Account deletion is currently in progress" -usernameInfo: "A name that identifies your account from others on this server. You can use the alphabet (a~z, A~Z), digits (0~9) or underscores (_). Usernames cannot be changed later." -aiChanMode: "Ai Mode" -keepCw: "Keep content warnings" -pubSub: "Pub/Sub Accounts" -lastCommunication: "Last communication" -resolved: "Resolved" -unresolved: "Unresolved" -breakFollow: "Remove follower" -itsOn: "Enabled" -itsOff: "Disabled" -emailRequiredForSignup: "Require email address for sign-up" -unread: "Unread" -filter: "Filter" -controlPanel: "Control Panel" -manageAccounts: "Manage Accounts" -makeReactionsPublic: "Set reaction history to public" -makeReactionsPublicDescription: "This will make the list of all your past reactions publicly visible." -classic: "Classic" -muteThread: "Mute thread" -unmuteThread: "Unmute thread" -ffVisibility: "Follows/Followers Visibility" -ffVisibilityDescription: "Allows you to configure who can see who you follow and who follows you." -continueThread: "View thread continuation" -deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" -incorrectPassword: "Incorrect password." -voteConfirm: "Confirm your vote for \"{choice}\"?" -hide: "Hide" -leaveGroup: "Leave group" -leaveGroupConfirm: "Are you sure you want to leave \"{name}\"?" -useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile" -welcomeBackWithName: "Welcome back, {name}" -clickToFinishEmailVerification: "Please click [{ok}] to complete email verification." -overridedDeviceKind: "Device type" -smartphone: "Smartphone" -tablet: "Tablet" -auto: "Auto" -themeColor: "Instance Ticker Color" -size: "Size" -numberOfColumn: "Number of columns" -searchByGoogle: "Search" -instanceDefaultLightTheme: "Instance-wide default light theme" -instanceDefaultDarkTheme: "Instance-wide default dark theme" -instanceDefaultThemeDescription: "Enter the theme code in object format." -mutePeriod: "Mute duration" -indefinitely: "Permanently" -tenMinutes: "10 minutes" -oneHour: "One hour" -oneDay: "One day" -oneWeek: "One week" -reflectMayTakeTime: "It may take some time for this to be reflected." -failedToFetchAccountInformation: "Could not fetch account information" -rateLimitExceeded: "Rate limit exceeded" -cropImage: "Crop image" -cropImageAsk: "Do you want to crop this image?" -file: "File" -recentNHours: "Last {n} hours" -recentNDays: "Last {n} days" -noEmailServerWarning: "Email server not configured." -thereIsUnresolvedAbuseReportWarning: "There are unsolved reports." -recommended: "Recommended" -check: "Check" -driveCapOverrideLabel: "Change the drive capacity for this user" -driveCapOverrideCaption: "Reset the capacity to default by inputting a value of 0 or lower." -requireAdminForView: "You must log in with an administrator account to view this." -isSystemAccount: "An account created and automatically operated by the system." -typeToConfirm: "Please enter {x} to confirm" -deleteAccount: "Delete account" -document: "Documentation" -numberOfPageCache: "Number of cached pages" -numberOfPageCacheDescription: "Increasing this number will improve convenience for users but cause more server load as well as more memory to be used." -logoutConfirm: "Really log out?" -lastActiveDate: "Last used at" -statusbar: "Status bar" -pleaseSelect: "Select an option" -reverse: "Reverse" -colored: "Colored" -refreshInterval: "Update interval " -label: "Label" -type: "Type" -speed: "Speed" -slow: "Slow" -fast: "Fast" -sensitiveMediaDetection: "Detection of NSFW media" -localOnly: "Local only" -remoteOnly: "Remote only" -failedToUpload: "Upload failed" -cannotUploadBecauseInappropriate: "This file could not be uploaded because parts of it have been detected as potentially NSFW." -cannotUploadBecauseNoFreeSpace: "Upload failed due to lack of Drive capacity." -beta: "Beta" -enableAutoSensitive: "Automatic NSFW-Marking" -enableAutoSensitiveDescription: "Allows automatic detection and marking of NSFW media through Machine Learning where possible. Even if this option is disabled, it may be enabled instance-wide." -activeEmailValidationDescription: "Enables stricter validation of email addresses, which includes checking for disposable addresses and by whether it can actually be communicated with. When unchecked, only the format of the email is validated." -navbar: "Navigation bar" -shuffle: "Shuffle" -account: "Account" -move: "Move" -_sensitiveMediaDetection: - description: "Reduces the effort of server moderation through automatically recognizing NSFW media via Machine Learning. This will slightly increase the load on the server." - sensitivity: "Detection sensitivity" - sensitivityDescription: "Reducing the sensitivity will lead to fewer misdetections (false positives) whereas increasing it will lead to fewer missed detections (false negatives)." - setSensitiveFlagAutomatically: "Mark as NSFW" - setSensitiveFlagAutomaticallyDescription: "The results of the internal detection will be retained even if this option is turned off." - analyzeVideos: "Enable analysis of videos" - analyzeVideosDescription: "Analyzes videos in addition to images. This will slightly increase the load on the server." -_emailUnavailable: - used: "This email address is already being used" - format: "The format of this email address is invalid" - disposable: "Disposable email addresses may not be used" - mx: "This email server is invalid" - smtp: "This email server is not responding" -_ffVisibility: - public: "Public" - followers: "Visible to followers only" - private: "Private" -_signup: - almostThere: "Almost there" - emailAddressInfo: "Please enter your email address. It will not be made public." - emailSent: "A confirmation email has been sent to your email address ({email}). Please click the included link to complete account creation." -_accountDelete: - accountDelete: "Delete account" - mayTakeTime: "As account deletion is a resource-heavy process, it may take some time to complete depending on how much content you have created and how many files you have uploaded." - sendEmail: "Once account deletion has been completed, an email will be sent to the email address registered to this account." - requestAccountDelete: "Request account deletion" - started: "Deletion has been started." - inProgress: "Deletion is currently in progress" -_ad: - back: "Back" - reduceFrequencyOfThisAd: "Show this ad less" -_forgotPassword: - enterEmail: "Enter the email address you used to register. A link with which you can reset your password will then be sent to it." - ifNoEmail: "If you did not use an email during registration, please contact the instance administrator instead." - contactAdmin: "This instance does not support using email addresses, please contact the instance administrator to reset your password instead." -_gallery: - my: "My Gallery" - liked: "Liked Posts" - like: "Like" - unlike: "Remove like" -_email: - _follow: - title: "You've got a new follower" - _receiveFollowRequest: - title: "You've received a follow request" -_plugin: - install: "Install plugins" - installWarn: "Please do not install untrustworthy plugins." - manage: "Manage plugins" -_preferencesBackups: - list: "Created backups" - saveNew: "Save new backup" - loadFile: "Load from file" - apply: "Apply to this device" - save: "Save changes" - inputName: "Please enter a name for this backup" - cannotSave: "Saving failed" - nameAlreadyExists: "A backup called \"{name}\" already exists. Please enter a different name." - applyConfirm: "Do you really want to apply the \"{name}\" backup to this device? Existing settings of this device will be overwritten." - saveConfirm: "Save backup as {name}?" - deleteConfirm: "Delete the {name} backup?" - renameConfirm: "Rename this backup from \"{old}\" to \"{new}\"?" - noBackups: "No backups exist. You may backup your client settings on this server by using \"Create new backup\"." - createdAt: "Created at: {date} {time}" - updatedAt: "Updated at: {date} {time}" - cannotLoad: "Loading failed" - invalidFile: "Invalid file format" -_registry: - scope: "Scope" - key: "Key" - keys: "Keys" - domain: "Domain" - createKey: "Create key" -_aboutMisskey: - about: "Misskey is open-source software being developed by syuilo since 2014." - contributors: "Main contributors" - allContributors: "All contributors" - source: "Source code" - translation: "Translate Misskey" - donate: "Donate to Misskey" - morePatrons: "We also appreciate the support of many other helpers not listed here. Thank you! 🥰" - patrons: "Patrons" -_nsfw: - respect: "Hide NSFW media" - ignore: "Don't hide NSFW media" - force: "Hide all media" _mfm: cheatSheet: "MFM Cheatsheet" intro: "MFM is a Misskey-exclusive markup language that can be used in many places. Here you can view a list of all available MFM syntax." dummy: "Misskey expands the world of the Fediverse" mention: "Mention" - mentionDescription: "You can specify a user by using an At-Symbol and a username." + mentionDescription: "Using an At-Symbol and a username, you can specify a specific user." hashtag: "Hashtag" - hashtagDescription: "You can specify a hashtag using a number sign and text." + hashtagDescription: "Using a number sign and text, you can specify a hashtag." url: "URL" urlDescription: "URLs can be displayed." link: "Link" - linkDescription: "Specific parts of text can be displayed as a URL." + linkDescription: "Specific parts of text can be displayed as URL." bold: "Bold" boldDescription: "Highlights letters by making them thicker." small: "Small" - smallDescription: "Displays content small and thin." + smallDescription: "Displays contents small and thinn." center: "Center" centerDescription: "Displays content centered." inlineCode: "Code (Inline)" - inlineCodeDescription: "Displays inline syntax highlighting for (program) code." + inlineCodeDescription: "Displays inline syntax highlighting for (program-)code." blockCode: "Code (Block)" - blockCodeDescription: "Displays syntax highlighting for multi-line (program) code in a block." - inlineMath: "Math (Inline)" + blockCodeDescription: "Displays syntax highlighting for multi-line (program-)code in a block." + inlineMath: "Math (In-line)" inlineMathDescription: "Display math formulas (KaTeX) in-line" blockMath: "Math (Block)" - blockMathDescription: "Display multi-line math formulas (KaTeX) in a block" + blockMathDescription: "Display multi-line Math formulas (KaTeX) in a block" quote: "Quote" - quoteDescription: "Displays content as a quote." + quoteDescription: "Displays content as quote." emoji: "Custom Emoji" emojiDescription: "By surrounding a custom emoji name with colons, custom emoji can be displayed." search: "Search" @@ -1015,37 +650,52 @@ _mfm: flip: "Flip" flipDescription: "Flips content horizontally or vertically." jelly: "Animation (Jelly)" - jellyDescription: "Gives content a jelly-like animation." + jellyDescription: "Infuses a jelly-like animation." tada: "Animation (Tada)" - tadaDescription: "Gives content a \"Tada!\"-like animation." + tadaDescription: "Infuses a \"Tada!\"-like animation." jump: "Animation (Jump)" - jumpDescription: "Gives content a jumping animation." + jumpDescription: "Infuses a jumping animation." bounce: "Animation (Bounce)" - bounceDescription: "Gives content a bouncy animation." + bounceDescription: "Causes a bouncy animation." shake: "Animation (Shake)" - shakeDescription: "Gives content a shaking animation." + shakeDescription: "Infuses a shaking animation." twitch: "Animation (Twitch)" - twitchDescription: "Gives content a strongly twitching animation." + twitchDescription: "Infuses a strongly twitching animation." spin: "Animation (Spin)" - spinDescription: "Gives content a spinning animation." - x2: "Big" - x2Description: "Displays content bigger." - x3: "Very big" - x3Description: "Displays content even bigger." - x4: "Unbelievably big" - x4Description: "Displays content even bigger than bigger than big." - blur: "Blur" - blurDescription: "Blurs content. It will be displayed clearly when hovered over." - font: "Font" - fontDescription: "Sets the font to display content in." - rainbow: "Rainbow" - rainbowDescription: "Makes the content appear in rainbow colors." - sparkle: "Sparkle" - sparkleDescription: "Gives content a sparkling particle effect." - rotate: "Rotate" - rotateDescription: "Turns content by a specified angle." - plain: "Plain" - plainDescription: "Deactivates the effects of all MFM contained within this MFM effect." + spinDescription: "Infuses a spinning animation." +_reversi: + reversi: "Reversi" + gameSettings: "Game settings" + chooseBoard: "Choose a board" + blackOrWhite: "Black/White" + blackIs: "{name} is playing Black" + rules: "Rules" + botSettings: "Bot options" + thisGameIsStartedSoon: "The game will start in a few seconds" + waitingForOther: "Waiting for the opponent's turn" + waitingForMe: "Waiting for your turn" + waitingBoth: "Get ready" + ready: "Ready" + cancelReady: "Cancel ready" + opponentTurn: "Opponent's turn" + myTurn: "Your turn" + turnOf: "{name}'s turn" + pastTurnOf: "{name}'s turn" + surrender: "Surrender" + surrendered: "By surrender" + drawn: "Draw" + won: "{name}'s win" + black: "Black" + white: "White" + total: "Total" + turnCount: "Turn {count}" + myGames: "My rounds" + allGames: "All rounds" + ended: "Ended" + playing: "Currently playing" + isLlotheo: "The one with fewer stones wins (Llotheo)" + loopedMap: "Looped map" + canPutEverywhere: "Tiles are placeable everywhere" _instanceTicker: none: "Never show" remote: "Show for remote users" @@ -1064,36 +714,27 @@ _channel: following: "Followed" usersCount: "{n} Participants" notesCount: "{n} Notes" -_menuDisplay: - sideFull: "Side" - sideIcon: "Side (Icons)" - top: "Top" +_sidebar: + full: "Full" + icon: "Avatar" hide: "Hide" _wordMute: - muteWords: "Muted words" - muteWordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." - muteWordsDescription2: "Surround keywords with slashes to use regular expressions." - softDescription: "Hide notes that fulfil the set conditions from the timeline." - hardDescription: "Prevents notes fulfilling the set conditions from being added to the timeline. In addition, these notes will not be added to the timeline even if the conditions are changed." + muteWords: "Word to mute" + muteWordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR." + muteWordsDescription2: "Surround keywords by slashes to use regular expressions." + softDescription: "Hide notes fulfilling the set conditions from the timeline." + hardDescription: "Prevent notes fulfilling the set conditions from being added to the timeline. In addition, these notes will not be added to the timeline even if the conditions are changed." soft: "Soft" hard: "Hard" mutedNotes: "Muted notes" -_instanceMute: - instanceMuteDescription: "This will mute any notes/renotes from the listed instances, including those of users replying to a user from a muted instance." - instanceMuteDescription2: "Separate with newlines" - title: "Hides notes from listed instances." - heading: "List of instances to be muted" _theme: explore: "Explore Themes" - install: "Install a theme" - manage: "Manage themes" + install: "Install theme" + manage: "Themes manager" code: "Theme code" - description: "Description" installed: "{name} has been installed" - installedThemes: "Installed themes" - builtinThemes: "Built-in themes" - alreadyInstalled: "This theme is already installed" - invalid: "The format of this theme is invalid" + alreadyInstalled: "The theme is already installed" + invalid: "Theme format is invalid" make: "Make a theme" base: "Base" addConstant: "Add constant" @@ -1110,7 +751,7 @@ _theme: alpha: "Opacity" darken: "Darken" lighten: "Lighten" - inputConstantName: "Enter a name for this constant" + inputConstantName: "Enter a name for the constant" importInfo: "If you enter theme code here, you can import it to the theme editor" deleteConstantConfirm: "Do you really want to delete the constant {const}?" keys: @@ -1136,14 +777,14 @@ _theme: divider: "Divider" scrollbarHandle: "Scrollbar handle" scrollbarHandleHover: "Scrollbar handle (Hover)" - dateLabelFg: "Date label text" + dateLabelFg: "Text of date labels" infoBg: "Information background" infoFg: "Information text" infoWarnBg: "Warning background" infoWarnFg: "Warning text" - cwBg: "CW button background" - cwFg: "CW button text" - cwHoverBg: "CW button background (Hover)" + cwBg: "CW background" + cwFg: "CW text" + cwHoverBg: "CW background (Hover)" toastBg: "Notification background" toastFg: "Notification text" buttonBg: "Button background" @@ -1159,106 +800,102 @@ _theme: fgHighlighted: "Highlighted Text" _sfx: note: "New note" - noteMy: "Own note" + noteMy: "My note" notification: "Notifications" - chat: "Chat" - chatBg: "Chat (Background)" - antenna: "Antennas" + chat: "Messaging" + chatBg: "Messaging (Background)" + antenna: "Antenna Reception" channel: "Channel notifications" _ago: + unknown: "Unknown" future: "Future" justNow: "Just now" - secondsAgo: "{n} second(s) ago" - minutesAgo: "{n} minute(s) ago" - hoursAgo: "{n} hour(s) ago" - daysAgo: "{n} day(s) ago" - weeksAgo: "{n} week(s) ago" - monthsAgo: "{n} month(s) ago" - yearsAgo: "{n} year(s) ago" + secondsAgo: "{n}s ago" + minutesAgo: "{n}m ago" + hoursAgo: "{n}h ago" + daysAgo: "{n}d ago" + weeksAgo: "{n}week(s) ago" + monthsAgo: "{n}month(s) ago" + yearsAgo: "{n}year(s) ago" _time: - second: "Second(s)" - minute: "Minute(s)" - hour: "Hour(s)" - day: "Day(s)" + second: "s" + minute: "m" + hour: "h" + day: "d" _tutorial: title: "How to use Misskey" step1_1: "Welcome!" - step1_2: "This page is called the \"timeline\". It shows chronologically ordered \"notes\" of people who you \"follow\"." + step1_2: "This page is called \"timeline\". It shows chronologically ordered \"notes\" of people who you \"follow\"." step1_3: "Your timeline is currently empty, since you have not posted any notes or followed anyone yet." step2_1: "Let's finish setting up your profile before writing a note or following anyone." - step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you." + step2_2: "Providing some information about who you are will make it easier for others to follow you back." step3_1: "Finished setting up your profile?" - step3_2: "Then let's try posting a note next. You can do so by pressing the button with a pencil icon on the screen." + step3_2: "The next step is to post a note. You can do this by pressing the pencil icon on the screen." step3_3: "Fill in the modal and press the button on the top right to post." step3_4: "Have nothing to say? Try \"just setting up my msky\"!" step4_1: "Finished posting your first note?" - step4_2: "Hurray! Now your first note should be displayed on your timeline." + step4_2: "Hurray! Now your first note is displayed on your timeline." step5_1: "Now, let's try making your timeline more lively by following other people." - step5_2: "{featured} will show you popular notes in this instance. {explore} will let you find popular users. Try finding people you'd like to follow there!" - step5_3: "To follow other users, click on their icon and press the \"Follow\" button on their profile." - step5_4: "If the other user has a lock icon next to their name, it may take some time for that user to manually approve your follow request." - step6_1: "You should be able to see other users' notes on your timeline now." - step6_2: "You can also put \"reactions\" on other people's notes to quickly respond to them." + step5_2: "{featured} will show you trending notes in this instance. {explore} will let you find trending users. Try following people you like!" + step5_3: "To follow other users, click on their icon and press \"follow\" button on their profile." + step5_4: "If the other user has a lock icon next to their name, that user will have to manually approve your follow request." + step6_1: "Now you will be able to see other users' notes on your timeline." + step6_2: "You can also put \"reactions\" on other people's notes to quickly respond." step6_3: "To attach a \"reaction\", press the \"+\" mark on another user's note and choose an emoji you'd like to react with." step7_1: "Congratulations! You have now finished Misskey's basic tutorial." step7_2: "If you would like to learn more about Misskey, try the {help} section." - step7_3: "Now then, good luck and have fun with Misskey! 🚀" + step7_3: "Good luck and have fun! 🚀" _2fa: - alreadyRegistered: "You have already registered a 2-factor authentication device." + alreadyRegistered: "You have already registered 2-factor authentication device." registerDevice: "Register a new device" - registerKey: "Register a security key" + registerKey: "Register a new Security Key" step1: "First, install an authentication app (such as {a} or {b}) on your device." - step2: "Then, scan the QR code displayed on this screen." - step2Url: "You can also enter this URL if you're using a desktop program:" + step2: "Then, scan the QR code on the screen." step3: "Enter the token provided by your app to finish setup." - step4: "From now on, any future login attempts will ask for such a login token." - securityKeyInfo: "Besides fingerprint or PIN authentication, you can also setup authentication via hardware security keys that support FIDO2 to further secure your account." + step4: "From now, any login attempt will ask for your login token." + securityKeyInfo: "You can setup WebAuthN authentication to further secure the log-in process with not only hardware security key which supports FIDO2, but also fingerprint or PIN authentication on your device." _permissions: "read:account": "View your account information" "write:account": "Edit your account information" - "read:blocks": "View your list of blocked users" - "write:blocks": "Edit your list of blocked users" - "read:drive": "Access your Drive files and folders" - "write:drive": "Edit or delete your Drive files and folders" - "read:favorites": "View your list of favorites" - "write:favorites": "Edit your list of favorites" - "read:following": "View information on who you follow" + "read:blocks": "View the list of people you blocked" + "write:blocks": "Edit the list of people you blocked" + "read:drive": "Access your drive files and folders" + "write:drive": "Edit or delete your drive files and folders" + "read:favorites": "View your favorites list" + "write:favorites": "Edit your favorites list" + "read:following": "View your following information" "write:following": "Follow or unfollow other accounts" - "read:messaging": "View your chats" - "write:messaging": "Compose or delete chat messages" - "read:mutes": "View your list of muted users" - "write:mutes": "Edit your list of muted users" - "write:notes": "Compose or delete notes" - "read:notifications": "View your notifications" - "write:notifications": "Manage your notifications" - "read:reactions": "View your reactions" - "write:reactions": "Edit your reactions" + "read:messaging": "View your messages" + "write:messaging": "Compose or Delete messages" + "read:mutes": "View the list of people you muted" + "write:mutes": "Edit the list of people you muted" + "write:notes": "Compose or Delete notes" + "read:notifications": "View notifications" + "write:notifications": "Work with notifications" + "read:reactions": "View reactions" + "write:reactions": "Edit reactions" "write:votes": "Vote on a poll" "read:pages": "View your pages" "write:pages": "Edit or delete your pages" - "read:page-likes": "View your likes on pages" - "write:page-likes": "Edit your likes on pages" - "read:user-groups": "View your user groups" - "write:user-groups": "Edit or delete your user groups" - "read:channels": "View your channels" - "write:channels": "Edit your channels" - "read:gallery": "View your gallery" - "write:gallery": "Edit your gallery" - "read:gallery-likes": "View your list of liked gallery posts" - "write:gallery-likes": "Edit your list of liked gallery posts" + "read:page-likes": "View likes on pages" + "write:page-likes": "Edit likes on pages" + "read:user-groups": "View user groups" + "write:user-groups": "Edit or delete user groups" + "read:channels": "Read channels" + "write:channels": "Modify channels" _auth: shareAccess: "Would you like to authorize \"{name}\" to access this account?" shareAccessAsk: "Are you sure you want to authorize this application to access your account?" - permissionAsk: "This application requests the following permissions" + permissionAsk: "This application requires following permissions:" pleaseGoBack: "Please go back to the application" - callback: "Returning to the application" - denied: "Access denied" + callback: "Returning back to the application" + denied: "Access Denied" _antennaSources: all: "All notes" - homeTimeline: "Notes from followed users" + homeTimeline: "Notes from following users" users: "Notes from specific users" - userList: "Notes from a specified list of users" - userGroup: "Notes from users in a specified group" + userList: "Notes from specific list" + userGroup: "Notes from users in the specified group" _weekday: sunday: "Sunday" monday: "Monday" @@ -1275,63 +912,53 @@ _widgets: trends: "Trending" clock: "Clock" rss: "RSS reader" - rssTicker: "RSS-Ticker" activity: "Activity" photos: "Photos" digitalClock: "Digital clock" - unixClock: "UNIX clock" federation: "Federation" - instanceCloud: "Instance cloud" - postForm: "Posting form" - slideshow: "Slideshow" - button: "Button" - onlineUsers: "Online users" - jobQueue: "Job Queue" - serverMetric: "Server metrics" - aiscript: "AiScript console" - aichan: "Ai" + postForm: "Compose a note" _cw: hide: "Hide" - show: "Show content" + show: "Load more" chars: "{count} characters" files: "{count} file(s)" _poll: noOnlyOneChoice: "At least two choices are needed" choiceN: "Choice {n}" noMore: "You cannot add more choices" - canMultipleVote: "Allow selecting multiple choices" - expiration: "End poll" + canMultipleVote: "Allow multiple replies" + expiration: "Poll ends on" infinite: "Never" at: "End at..." after: "End after..." deadlineDate: "End date" - deadlineTime: "Time" + deadlineTime: "h" duration: "Duration" votesCount: "{n} votes" - totalVotes: "{n} votes in total" - vote: "Vote" + totalVotes: "Total {n} votes" + vote: "Vote on a poll" showResult: "View results" voted: "Voted" closed: "Ended" - remainingDays: "{d} day(s) {h} hour(s) remaining" - remainingHours: "{h} hour(s) {m} minute(s) remaining" - remainingMinutes: "{m} minute(s) {s} second(s) remaining" - remainingSeconds: "{s} second(s) remaining" + remainingDays: "{d} days {h} hours remaining" + remainingHours: "{h} hours {m} minutes remaining" + remainingMinutes: "{m} minutes {s} seconds remaining" + remainingSeconds: "{s} seconds remaining" _visibility: public: "Public" - publicDescription: "Your note will be visible for all users" + publicDescription: "Your note will appear on global timeline" home: "Home" homeDescription: "Post to home timeline only" followers: "Followers" - followersDescription: "Make visible to your followers only" + followersDescription: "Post to followers only" specified: "Direct" - specifiedDescription: "Make visible for specified users only" + specifiedDescription: "Post to specified users only" localOnly: "Local only" localOnlyDescription: "Not visible to remote users" _postForm: replyPlaceholder: "Reply to this note..." quotePlaceholder: "Quote this note..." - channelPlaceholder: "Post to a channel..." + channelPlaceholder: "Post to channel" _placeholders: a: "What are you up to?" b: "What's happening around you?" @@ -1344,89 +971,145 @@ _profile: username: "Username" description: "Bio" youCanIncludeHashtags: "You can also include hashtags in your bio." - metadata: "Additional Information" - metadataEdit: "Edit additional Information" - metadataDescription: "Using these, you can display additional information fields in your profile." + metadata: "Other information" metadataLabel: "Label" metadataContent: "Content" - changeAvatar: "Change avatar" - changeBanner: "Change banner" _exportOrImport: allNotes: "All notes" - followingList: "Followed users" - muteList: "Muted users" - blockingList: "Blocked users" - userLists: "User lists" - excludeMutingUsers: "Exclude muted users" - excludeInactiveUsers: "Exclude inactive users" + followingList: "Following" + muteList: "Mute" + blockingList: "Block" + userLists: "Lists" _charts: - federation: "Federation" - apRequest: "Requests" - usersIncDec: "Difference in the number of users" - usersTotal: "Total number of users" + federationInstancesIncDec: "Difference in # of federating instances" + federationInstancesTotal: "Total # of federating instances" + usersIncDec: "Difference in # of users" + usersTotal: "Total # of users" activeUsers: "Active users" - notesIncDec: "Difference in the number of notes" - localNotesIncDec: "Difference in the number of local notes" - remoteNotesIncDec: "Difference in the number of remote notes" - notesTotal: "Total number of notes" - filesIncDec: "Difference in the number of files" - filesTotal: "Total number of files" - storageUsageIncDec: "Difference in storage usage" + notesIncDec: "Difference in # of notes" + localNotesIncDec: "Difference in # of local notes" + remoteNotesIncDec: "Difference in # of remote notes" + notesTotal: "Total # of notes" + filesIncDec: "Difference in # of files" + filesTotal: "Total # of files" + storageUsageIncDec: "Difference in storage use" storageUsageTotal: "Total storage usage" _instanceCharts: requests: "Requests" - users: "Difference in the number of users" - usersTotal: "Cumulative number of users" - notes: "Difference in the number of notes" - notesTotal: "Cumulative number of notes" - ff: "Difference in the number of followed users / followers " - ffTotal: "Cumulative number of followed users / followers" + users: "Difference in # of users" + usersTotal: "Cumulative total # of users" + notes: "Difference in # of notes" + notesTotal: "Cumulative total # of notes" + ff: "Difference in # of followers" + ffTotal: "Cumulative total # of followers" cacheSize: "Difference in cache size" cacheSizeTotal: "Cumulative total cache size" - files: "Difference in the number of files" - filesTotal: "Cumulative number of files" + files: "Difference in # of files" + filesTotal: "Cumulative total # of files" _timelines: home: "Home" local: "Local" social: "Social" global: "Global" +_rooms: + roomOf: "{user}'s room" + addFurniture: "Place furniture" + translate: "Move" + rotate: "Rotate" + exit: "Back" + remove: "Remove" + clear: "Remove All" + clearConfirm: "Are you sure to remove all furnitures in your room?" + leaveConfirm: "There are unsaved changes. Do you really want to leave?" + chooseImage: "Select an image" + roomType: "Room type" + carpetColor: "Color of carpet" + _roomType: + default: "Default" + washitsu: "Japanese-style" + _furnitures: + milk: "Milk carton" + bed: "Bed" + low-table: "Low Table" + desk: "Desk" + chair: "Chair" + chair2: "Chair 2" + fan: "Fan" + pc: "Computer" + plant: "Houseplant" + plant2: "Houseplant 2" + eraser: "Eraser" + pencil: "Pencil" + pudding: "Pudding" + cardboard-box: "Cardboard Box" + cardboard-box2: "Cardboard Box 2" + cardboard-box3: "Cardboard Box 3" + book: "Book" + book2: "Book 2" + piano: "Piano" + facial-tissue: "Facial tissue" + server: "Servers" + moon: "Moon" + corkboard: "Cork board" + mousepad: "Mousepad" + monitor: "Monitor" + keyboard: "Keyboard" + carpet-stripe: "Carpet (stripe)" + mat: "Mat" + color-box: "Bookshelf" + wall-clock: "Wall clock" + photoframe: "Picture frame" + cube: "Cube" + tv: "TV" + pinguin: "Penguin" + rubik-cube: "Rubik's Cube" + poster-h: "Poster (Horizontal)" + poster-v: "Poster (Vertical)" + sofa: "Sofa" + spiral: "Spiral Staircase" + bin: "Waste bin" + cup-noodle: "Cup noodle" + holo-display: "Holographic display" + energy-drink: "Energy drink" + doll-ai: "Ai doll" + banknote: "Pile of money" _pages: - newPage: "Create a new Page" - editPage: "Edit this Page" - readPage: "Viewing this Page's source" - created: "Page successfully created" - updated: "Page successfully edited" - deleted: "Page successfully deleted" + newPage: "Create a page" + editPage: "Edit this page" + readPage: "Source view activated" + created: "Successfully created a page!" + updated: "Successfully updated the page!" + deleted: "The page has been deleted" pageSetting: "Page settings" - nameAlreadyExists: "The specified Page URL already exists" - invalidNameTitle: "The specified Page URL is invalid" - invalidNameText: "Make sure the Page title is not empty" - editThisPage: "Edit this Page" + nameAlreadyExists: "The specified page URL already exists" + invalidNameTitle: "The specified page URL is invalid" + invalidNameText: "Check whether that is not a blank" + editThisPage: "Edit this page" viewSource: "View source" - viewPage: "View your Pages" + viewPage: "View your pages" like: "Like" - unlike: "Remove like" - my: "My Pages" - liked: "Liked Pages" - featured: "Popular" + unlike: "Undo like" + my: "My pages" + liked: "Liked pages" + featured: "Featured" inspector: "Inspector" - contents: "Contents" + contents: "Content" content: "Page block" variables: "Variables" title: "Title" url: "Page URL" summary: "Page summary" alignCenter: "Center elements" - hideTitleWhenPinned: "Hide Page title when pinned to profile" + hideTitleWhenPinned: "Hide page title when pinned to profile" font: "Font" fontSerif: "Serif" - fontSansSerif: "Sans Serif" - eyeCatchingImageSet: "Set thumbnail" - eyeCatchingImageRemove: "Delete thumbnail" + fontSansSerif: "Sans serif" + eyeCatchingImageSet: "Set the eye-catching image" + eyeCatchingImageRemove: "Delete the eye-catching image" chooseBlock: "Add a block" selectType: "Select a type" - enterVariableName: "Enter a variable name" - variableNameIsAlreadyUsed: "This variable name is already in use" + enterVariableName: "Please enter a name for your variable" + variableNameIsAlreadyUsed: "This name is already being used by other variable" contentBlocks: "Content" inputBlocks: "Input" specialBlocks: "Special" @@ -1439,10 +1122,10 @@ _pages: if: "If" _if: variable: "Variable" - post: "Posting form" + post: "Compose a note" _post: text: "Content" - attachCanvasImage: "Attach canvas image" + attachCanvasImage: "Post with Canvas as Image" canvasId: "Canvas ID" textInput: "Text input" _textInput: @@ -1467,7 +1150,7 @@ _pages: note: "Embedded note" _note: id: "Note ID" - idDescription: "You can alternatively paste the note URL here." + idDescription: "You can also paste the Note's URL to set it instead." detailed: "Detailed view" switch: "Switch" _switch: @@ -1478,11 +1161,11 @@ _pages: _counter: name: "Variable name" text: "Title" - inc: "Step" + inc: "Increase by" _button: text: "Title" colored: "Colored" - action: "Behavior when the button is pressed" + action: "Operation when the button is pressed" _action: dialog: "Show a dialog" _dialog: @@ -1501,7 +1184,7 @@ _pages: _radioButton: name: "Variable name" title: "Title" - values: "List of choices separated by line breaks" + values: "List of choices (separated by line breaks)" default: "Default value" script: categories: @@ -1513,7 +1196,7 @@ _pages: value: "Values" fn: "Functions" text: "Text operations" - convert: "Transformations" + convert: "Transformation" list: "Lists" blocks: text: "Text" @@ -1521,18 +1204,18 @@ _pages: textList: "Text list" _textList: info: "Separate each entry with a line break" - strLen: "Text length" + strLen: "Length of the text" _strLen: arg1: "Text" - strPick: "Extract string" + strPick: "Extract character" _strPick: arg1: "Text" - arg2: "String location" - strReplace: "Replacement string" + arg2: "Character location" + strReplace: "Text replacement" _strReplace: arg1: "Text" arg2: "Text to be replaced" - arg3: "Replace with" + arg3: "Replaced with" strReverse: "Flip text" _strReverse: arg1: "Text" @@ -1544,7 +1227,7 @@ _pages: _add: arg1: "A" arg2: "B" - subtract: "Subtract" + subtract: "Substract" _subtract: arg1: "A" arg2: "B" @@ -1560,7 +1243,7 @@ _pages: _mod: arg1: "A" arg2: "B" - round: "Decimal rounding" + round: "Round decimal" _round: arg1: "Number" eq: "A and B are equal" @@ -1591,15 +1274,15 @@ _pages: _ltEq: arg1: "A" arg2: "B" - gtEq: ">= A is greater than or equal to B" + gtEq: ">= A is more than or equal to B" _gtEq: arg1: "A" arg2: "B" if: "Branch" _if: arg1: "If" - arg2: "Then" - arg3: "Else" + arg2: "If true" + arg3: "If false" not: "NOT" _not: arg1: "NOT" @@ -1612,17 +1295,17 @@ _pages: arg2: "Maximum value" randomPick: "Randomly choose from list" _randomPick: - arg1: "List" - dailyRandom: "Random (Changes once a day for each user)" + arg1: "Lists" + dailyRandom: "Random (lasts for a day)" _dailyRandom: arg1: "Probability" - dailyRannum: "Random number (Changes once a day for each user)" + dailyRannum: "Random number (lasts for a day)" _dailyRannum: arg1: "Minimum value" arg2: "Maximum value" - dailyRandomPick: "Randomly choose from a list (Changes once a day for each user)" + dailyRandomPick: "Randomly choose from list (lasts for a day)" _dailyRandomPick: - arg1: "List" + arg1: "Lists" seedRandom: "Random (with seed)" _seedRandom: arg1: "Seed" @@ -1635,17 +1318,17 @@ _pages: seedRandomPick: "Randomly choose from list (with seed)" _seedRandomPick: arg1: "Seed" - arg2: "List" - DRPWPM: "Randomly choose from weighted list (Changes once a day for each user)" + arg2: "Lists" + DRPWPM: "Randomly choose from weighted list (lasts for a day)" _DRPWPM: arg1: "Text list" pick: "Select from list" _pick: - arg1: "List" + arg1: "Lists" arg2: "Position" listLen: "Get length of list" _listLen: - arg1: "List" + arg1: "Lists" number: "Number" stringToNumber: "Text to number" _stringToNumber: @@ -1656,29 +1339,29 @@ _pages: splitStrByLine: "Split text by line breaks" _splitStrByLine: arg1: "Text" - ref: "Variable" - aiScriptVar: "AiScript Variable" - fn: "Function" + ref: "Variables" + aiScriptVar: "Variable of AiScript" + fn: "Functions" _fn: slots: "Slots" - slots-info: "Separate each slot with a line break" + slots-info: "Separate each slots with a line break" arg1: "Output" - for: "for-Loop" + for: "Repeat" _for: arg1: "Number of times to repeat" arg2: "Action" - typeError: "Slot {slot} accepts values of type \"{expect}\", but the provided value is of type \"{actual}\"!" + typeError: "Slot {slot} accepts \"{expect}\" type, but the provided value is \"{actual}\"!" thereIsEmptySlot: "Slot {slot} is empty!" types: string: "Text" number: "Number" boolean: "Flag" - array: "List" + array: "Lists" stringArray: "Text list" emptySlot: "Empty slot" - enviromentVariables: "Environment variables" - pageVariables: "Page variables" - argVariables: "Input slots" + enviromentVariables: "Environment variable" + pageVariables: "Page element" + argVariables: "Input slot" _relayStatus: requesting: "Pending" accepted: "Accepted" @@ -1688,57 +1371,42 @@ _notification: youGotMention: "{name} mentioned you" youGotReply: "{name} replied to you" youGotQuote: "{name} quoted you" - youRenoted: "Renote from {name}" + youRenoted: "{name} renoted you" youGotPoll: "{name} voted on your poll" - youGotMessagingMessageFromUser: "{name} sent you a chat message" - youGotMessagingMessageFromGroup: "A chat message was sent to the {name} group" - youWereFollowed: "followed you" + youGotMessagingMessageFromUser: "{name} sent you a message" + youGotMessagingMessageFromGroup: "A message was sent to the {name} group" + youWereFollowed: "Followed you" youReceivedFollowRequest: "You've received a follow request" yourFollowRequestAccepted: "Your follow request was accepted" - youWereInvitedToGroup: "{userName} invited you to a group" - pollEnded: "Poll results have become available" - emptyPushNotificationMessage: "Push notifications have been updated" + youWereInvitedToGroup: "Invited to group" _types: all: "All" - follow: "New followers" + follow: "Follows" mention: "Mentions" reply: "Replies" renote: "Renotes" quote: "Quotes" reaction: "Reactions" pollVote: "Votes on polls" - pollEnded: "Polls ending" - receiveFollowRequest: "Received follow requests" - followRequestAccepted: "Accepted follow requests" - groupInvited: "Group invitations" - app: "Notifications from linked apps" - _actions: - followBack: "followed you back" - reply: "Reply" - renote: "Renote" + receiveFollowRequest: "Follow request received" + followRequestAccepted: "Follow request accepted" + groupInvited: "Invited to groups" + app: "Notifications from apps" _deck: alwaysShowMainColumn: "Always show main column" columnAlign: "Align columns" addColumn: "Add column" - configureColumn: "Column settings" - swapLeft: "Swap with the left column" - swapRight: "Swap with the right column" - swapUp: "Swap with the above column" - swapDown: "Swap with the below column" - stackLeft: "Stack with the left column" - popRight: "Pop column to the right" - profile: "Profile" - newProfile: "New profile" - deleteProfile: "Delete profile" - introduction: "Create the perfect interface for you by arranging columns freely!" - introduction2: "Click on the + on the right of the screen to add new colums whenever you want." - widgetsIntroduction: "Please select \"Edit widgets\" in the column menu and add a widget." + swapLeft: "Swap to left" + swapRight: "Swap to right" + swapUp: "Swap with above" + swapDown: "Swap with below" + stackLeft: "Stack on the left" + popRight: "Pop to the right" _columns: - main: "Main" widgets: "Widgets" notifications: "Notifications" tl: "Timeline" antenna: "Antennas" - list: "List" + list: "Lists" mentions: "Mentions" - direct: "Direct notes" + direct: "Direct" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index b74eed85d..a13781e08 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -1,16 +1,14 @@ --- _lang_: "Español" -headlineMisskey: "Red conectada por notas" -introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\n¡Exploremos juntos un nuevo mundo! 🚀" +introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀" monthAndDay: "{day}/{month}" search: "Buscar" notifications: "Notificaciones" username: "Nombre de usuario" password: "Contraseña" -forgotPassword: "Olvidé mi Contraseña" -fetchingAsApObject: "Recuperando desde el Fediverso..." +fetchingAsApObject: "Buscando en el fediverso" ok: "OK" -gotIt: "¡Lo tengo!" +gotIt: "Entendido" cancel: "Cancelar" enterUsername: "Introduce el nombre de usuario" renotedBy: "Renotado por {user}" @@ -22,37 +20,32 @@ basicSettings: "Configuración Básica" otherSettings: "Configuración avanzada" openInWindow: "Abrir en una ventana" profile: "Perfil" -timeline: "Línea de tiempo" -noAccountDescription: "Este usuario no ha escrito su biografía aún" +timeline: "Linea de tiempo" +noAccountDescription: "Este usuario no tiene una descripción" login: "Iniciar sesión" loggingIn: "Iniciando sesión" logout: "Cerrar sesión" signup: "Registrarse" -uploading: "Cargando..." +uploading: "Cargando" save: "Guardar" users: "Usuarios" addUser: "Agregar usuario" -favorite: "Añadir a favoritos" +favorite: "Favorito" favorites: "Favoritos" unfavorite: "Quitar de favoritos" -favorited: "Añadido a favoritos." -alreadyFavorited: "Ya había sido añadido a favoritos" -cantFavorite: "No se puede añadir a favoritos." -pin: "Fijar al perfil" +pin: "Fijar" unpin: "Desfijar" copyContent: "Copiar contenido" copyLink: "Copiar enlace" delete: "Borrar" deleteAndEdit: "Borrar y editar" -deleteAndEditConfirm: "¿Estás seguro de que quieres borrar esta nota y editarla? Perderás todas las reacciones, renotas y respuestas." +deleteAndEditConfirm: "¿Quieres borrar y editar este nota? Las reacciones, renotes, respuestas y todo desaparecerán." addToList: "Agregar a lista" -sendMessage: "Enviar un mensaje" +sendMessage: "Énviar mensaje" copyUsername: "Copiar nombre de usuario" -searchUser: "Buscar un usuario" +searchUser: "Búsqueda de usuarios" reply: "Responder" loadMore: "Ver más" -showMore: "Ver más" -showLess: "Cerrar" youGotNewFollower: "te ha seguido" receiveFollowRequest: "Recibiste una solicitud de seguimiento" followRequestAccepted: "La solicitud de seguimiento fue aceptada" @@ -82,33 +75,26 @@ somethingHappened: "Ocurrió un error" retry: "Reintentar" pageLoadError: "Error al leer la página" pageLoadErrorDescription: "Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde." -serverIsDead: "No hay respuesta del servidor. Espere un momento y vuelva a intentarlo." -youShouldUpgradeClient: "Para ver esta página, por favor refrezca el navegador y utiliza una versión más reciente del cliente." enterListName: "Ingrese nombre de lista" privacy: "Privacidad" makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento" defaultNoteVisibility: "Visibilidad por defecto" -follow: "Seguir" -followRequest: "Enviar solicitud de seguimiento" +follow: "Sigue" +followRequest: "Solicitud de seguimiento" followRequests: "Solicitudes de seguimiento" unfollow: "Dejar de seguir" -followRequestPending: "Solicitudes de seguimiento pendiente" +followRequestPending: "Solicitudes de seguimiento pendientes" enterEmoji: "Ingresar emojis" renote: "Renotar" unrenote: "Quitar renota" -renoted: "Renotado" -cantRenote: "No se puede renotar este post" -cantReRenote: "No se puede renotar una renota" quote: "Citar" pinnedNote: "Nota fijada" -pinned: "Fijar al perfil" you: "Tú" clickToShow: "Click para ver" sensitive: "Marcado como sensible" add: "Agregar" reaction: "Reacción" -reactionSetting: "Reacciones para mostrar en el menú de reacciones" -reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir." +reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones." rememberNoteVisibility: "Recordar visibilidad" attachCancel: "Quitar adjunto" markAsSensitive: "Marcar como sensible" @@ -131,7 +117,6 @@ editWidgets: "Editar widgets" editWidgetsExit: "Terminar edición" customEmojis: "Emojis personalizados" emoji: "Emoji" -emojis: "Emoji" emojiName: "Nombre del emoji" emojiUrl: "URL de la imágen del emoji" addEmoji: "Agregar emoji" @@ -139,13 +124,9 @@ settingGuide: "Configuración sugerida" cacheRemoteFiles: "Mantener en cache los archivos remotos" cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas." flagAsBot: "Esta cuenta es un bot" -flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, active esta opción. Al hacerlo, esta opción servirá para otros desarrolladores para evitar cadenas infinitas de reacciones, y ajustará los sistemas internos de Misskey para que trate a esta cuenta como un bot." flagAsCat: "Esta cuenta es un gato" -flagAsCatDescription: "En caso de que declare que esta cuenta es de un gato, active esta opción." -flagShowTimelineReplies: "Mostrar respuestas a las notas en la biografía" -flagShowTimelineRepliesDescription: "Cuando se marca, la línea de tiempo muestra respuestas a otras notas además de las notas del usuario" autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues" -addAccount: "Agregar Cuenta" +addAcount: "Agregar cuenta" loginFailed: "Error al iniciar sesión." showOnRemote: "Ver en una instancia remota" general: "General" @@ -204,7 +185,6 @@ done: "Terminado" processing: "Procesando" preview: "Vista previa" default: "Predeterminado" -defaultValueIs: "Predeterminado" noCustomEmojis: "No hay emojis personalizados" noJobs: "No hay trabajos" federating: "Federando" @@ -235,12 +215,9 @@ remove: "Borrar" removed: "Borrado" removeAreYouSure: "¿Desea borrar \"{x}\"?" deleteAreYouSure: "¿Desea borrar \"{x}\"?" -resetAreYouSure: "¿Desea reestablecer?" saved: "Guardado" messaging: "Chat" upload: "Subir" -keepOriginalUploading: "Mantener la imagen original" -keepOriginalUploadingDescription: "Mantener la versión original al cargar imágenes. Si está desactivado, el navegador generará imágenes para la publicación web en el momento de recargar la página" fromDrive: "Desde el drive" fromUrl: "Desde la URL" uploadFromUrl: "Subir desde una URL" @@ -248,6 +225,7 @@ uploadFromUrlDescription: "URL del fichero que quieres subir" uploadFromUrlRequested: "Subida solicitada" uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo." explore: "Explorar" +games: "Misskey Games" messageRead: "Ya leído" noMoreHistory: "El historial se ha acabado" startMessaging: "Iniciar chat" @@ -287,7 +265,6 @@ emptyDrive: "El drive está vacío" emptyFolder: "La carpeta está vacía" unableToDelete: "No se puede borrar" inputNewFileName: "Ingrese un nuevo nombre de archivo" -inputNewDescription: "Ingrese nueva descripción" inputNewFolderName: "Ingrese un nuevo nombre de la carpeta" circularReferenceFolder: "La carpeta de destino es una sub-carpeta de la carpeta que quieres mover." hasChildFilesOrFolders: "No se puede borrar esta carpeta. No está vacía." @@ -319,27 +296,24 @@ monthX: "Mes {month}" yearX: "Año {year}" pages: "Páginas" integration: "Integración" -connectService: "Conectar" -disconnectService: "Desconectar" +connectSerice: "Conectarse" +disconnectSerice: "Desconectarse" enableLocalTimeline: "Habilitar linea de tiempo local" enableGlobalTimeline: "Habilitar linea de tiempo global" disablingTimelinesInfo: "Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos" registration: "Registro" enableRegistration: "Permitir nuevos registros" invite: "Invitar" +proxyRemoteFiles: "Hacer proxy de archivos remotos" +proxyRemoteFilesDescription: "Si activa esta configuración, los archivos remotos no almacenados o borrados por exceso de capacidad serán mostrados via proxy local y generarán una miniatura. Eso no afectará el almacenamiento del servidor." driveCapacityPerLocalAccount: "Capacidad del drive por usuario local" driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto" inMb: "En megabytes" iconUrl: "URL de la imagen del avatar" bannerUrl: "URL de la imagen del banner" -backgroundImageUrl: "URL de la imagen de fondo" basicInfo: "Información básica" pinnedUsers: "Usuarios fijados" pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva" -pinnedPages: "Páginas fijadas" -pinnedPagesDescription: "Describa las rutas de las páginas que desea fijar a la página principal de la instancia, separadas por lineas nuevas" -pinnedClipId: "Id del clip fijado" -pinnedNotes: "Nota fijada" hcaptcha: "hCaptcha" enableHcaptcha: "Habilitar hCaptcha" hcaptchaSiteKey: "Clave del sitio" @@ -358,6 +332,7 @@ antennaExcludeKeywords: "Palabras clave para excluir" antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR" notifyAntenna: "Notificar nueva nota" withFileAntenna: "Sólo notas con archivos adjuntados" +serviceworker: "ServiceWorker" enableServiceworker: "Activar ServiceWorker" antennaUsersDescription: "Elegir nombres de usuarios separados por una linea nueva" caseSensitive: "Distinguir mayúsculas de minúsculas" @@ -379,11 +354,17 @@ popularTags: "Etiquetas populares" userList: "Lista" about: "Información" aboutMisskey: "Sobre Misskey" +aboutMisskeyText: "Misskey es un software de código abierto, desarrollado por syuilo desde el 2014" +misskeyMembers: "Es creado y mantenido por los miembros aquí listados:" +misskeySource: "El código fuente está disponible aquí:" +misskeyTranslation: "Ayúdanos con tu contribución para traducir Misskey:" +misskeyDonate: "Puedes contribuir al desarrollo de Misskey donando aquí:" +morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰" +patrons: "Patrocinadores" administrator: "Administrador" token: "Token" twoStepAuthentication: "Autenticación de dos factores" moderator: "Moderador" -moderation: "Moderación" nUsersMentioned: "{n} usuarios mencionados" securityKey: "Clave de seguridad" securityKeyName: "Nombre de la Clave" @@ -423,6 +404,7 @@ next: "Siguiente" retype: "Intentar de nuevo" noteOf: "Notas de {user}" inviteToGroup: "Invitar al grupo" +maxNoteTextLength: "Límite de caracteres en una nota" quoteAttached: "Cita añadida" quoteQuestion: "¿Quiere añadir una cita?" noMessagesYet: "Aún no hay chat" @@ -446,23 +428,20 @@ signinWith: "Inicie sesión con {x}" signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos." tapSecurityKey: "Toque la clave de seguridad" or: "O" -language: "Idioma" uiLanguage: "Idioma de visualización de la interfaz" groupInvited: "Invitado al grupo" aboutX: "Acerca de {x}" useOsNativeEmojis: "Usa los emojis nativos de la plataforma" -disableDrawer: "No mostrar los menús en cajones" youHaveNoGroups: "Sin grupos" joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo." noHistory: "No hay datos en el historial" -signinHistory: "Historial de ingresos" disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones" doing: "Voy en camino" category: "Categoría" tags: "Etiqueta" docSource: "Fuente de este documento" createAccount: "Crear cuenta" -existingAccount: "Cuenta existente" +existingAcount: "Cuentas existentes" regenerate: "Regenerar" fontSize: "Tamaño de la letra" noFollowRequests: "No hay solicitudes de seguimiento" @@ -508,7 +487,6 @@ none: "Ninguna" showInPage: "Mostrar en la página" popout: "Popout" volume: "Volumen" -masterVolume: "Volumen principal" details: "Detalles" chooseEmoji: "Elije un emoji" unableToProcess: "La operación no se puede llevar a cabo" @@ -535,11 +513,10 @@ removeAllFollowing: "Retener todos los siguientes" removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir" userSuspended: "Este usuario ha sido suspendido." userSilenced: "Este usuario ha sido silenciado." -yourAccountSuspendedTitle: "Esta cuenta ha sido suspendida" -yourAccountSuspendedDescription: "Esta cuenta ha sido suspendida debido a violaciones de los términos de servicio del servidor y otras razones. Para más información, póngase en contacto con el administrador. Por favor, no cree una nueva cuenta." -menu: "Menú" +sidebar: "Barra lateral" divider: "Divisor" addItem: "Agregar elemento" +rooms: "Cuartos" relays: "Relés" addRelay: "Agregar relé" inboxUrl: "Inbox URL" @@ -556,22 +533,17 @@ disablePlayer: "Cerrar reproductor" expandTweet: "Expandir tweet" themeEditor: "Editor de temas" description: "Descripción" -describeFile: "Añade una descripción" -enterFileDescription: "Introducir un título" author: "Autor" leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?" manage: "Administrar" plugins: "Plugins" -preferencesBackups: "Respaldo de preferencias" +pluginInstallWarn: "Por favor no instale plugins que no son de confianza" deck: "Deck" undeck: "Quitar deck" useBlurEffectForModal: "Usar efecto borroso en modales" useFullReactionPicker: "Reacción" width: "Ancho" height: "Altura" -large: "Grande" -medium: "Mediano" -small: "Pequeño" generateAccessToken: "Generar token de acceso" permission: "Permisos" enableAll: "Activar todo" @@ -581,11 +553,10 @@ pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos notificationType: "Tipo de notificación" edit: "Editar" useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella" -emailServer: "Servidor de correo" +emailConfig: "Configuración del servidor de correos" enableEmail: "Activar el envío de correos electrónicos" emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña" -email: "Correo" -emailAddress: "Correo electrónico" +email: "Correo electrónico" smtpConfig: "Configuración del servidor SMTP" smtpHost: "Host" smtpPort: "Puerto" @@ -596,9 +567,6 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP" smtpSecureInfo: "Apagar cuando se use STARTTLS" testEmail: "Prueba de envío" wordMute: "Silenciar palabras" -regexpError: "Error de la expresión regular" -regexpErrorDescription: "Ocurrió un error en la expresión regular en la linea {line} de las palabras muteadas {tab}" -instanceMute: "Instancias silenciadas" userSaysSomething: "{name} dijo algo" makeActive: "Activar" display: "Apariencia" @@ -619,18 +587,13 @@ regenerateLoginToken: "Regenerar token de login" regenerateLoginTokenDescription: "Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos." setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios." fileIdOrUrl: "Id del archivo o URL" -behavior: "Comportamiento" +chatOpenBehavior: "Comportamiento al abrir el chat" sample: "Muestra" abuseReports: "Reportes" reportAbuse: "Reportar" reportAbuseOf: "Reportar a {name}" fillAbuseReportDescription: "Ingrese los detalles del reporte. Si hay una nota en particular, ingrese la URL de esta." abuseReported: "Se ha enviado el reporte. Muchas gracias." -reporter: "Reportador" -reporteeOrigin: "Reportar a" -reporterOrigin: "Origen del reporte" -forwardReport: "Transferir un informe a una instancia remota" -forwardReportIsAnonymous: "No puede ver su información de la instancia remota y aparecerá como una cuenta anónima del sistema" send: "Enviar" abuseMarkAsResolved: "Marcar reporte como resuelto" openInNewTab: "Abrir en una Nueva Pestaña" @@ -643,409 +606,57 @@ random: "Aleatorio" system: "Sistema" switchUi: "Cambiar interfaz de usuario" desktop: "Escritorio" -clip: "Clip" -createNew: "Crear" -optional: "Opcional" -createNewClip: "Crear clip nuevo" -unclip: "Quitar clip" -confirmToUnclipAlreadyClippedNote: "Esta nota ya está incluida en el clip \"{name}\". ¿Quiere quitar la nota del clip?" public: "Público" -i18nInfo: "Misskey está siendo traducido a varios idiomas gracias a voluntarios. Se puede colaborar traduciendo en {link}" -manageAccessTokens: "Administrar tokens de acceso" -accountInfo: "Información de la Cuenta" -notesCount: "Cantidad de notas" -repliesCount: "Cantidad de respuestas hechas" -renotesCount: "Cantidad de renotas hechas" -repliedCount: "Cantidad de respuestas recibidas" -renotedCount: "Cantidad de renotas recibidas" -followingCount: "Cantidad de seguidos" -followersCount: "Cantidad de seguidores" -sentReactionsCount: "Cantidad de reacciones hechas" -receivedReactionsCount: "Cantidad de reacciones recibidas" -pollVotesCount: "Cantidad de votaciones hechas" -pollVotedCount: "Cantidad de votaciones recibidas" -yes: "Si" -no: "No" -driveFilesCount: "Cantidad de archivos en el drive" -driveUsage: "Uso del drive" -noCrawle: "Rechazar indexación del crawler" -noCrawleDescription: "Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc." -lockedAccountInfo: "A menos que configures la visibilidad de tus notas como \"Sólo seguidores\", tus notas serán visibles para cualquiera, incluso si requieres que los seguidores sean aprobados manualmente." -alwaysMarkSensitive: "Marcar los medios de comunicación como contenido sensible por defecto" -loadRawImages: "Cargar las imágenes originales en lugar de mostrar las miniaturas" -disableShowingAnimatedImages: "No reproducir imágenes animadas" -verificationEmailSent: "Se le ha enviado un correo electrónico de confirmación. Por favor, acceda al enlace proporcionado en el correo electrónico para completar la configuración." -notSet: "Sin especificar" -emailVerified: "Su dirección de correo electrónico ha sido verificada." -noteFavoritesCount: "Número de notas favoritas" -pageLikesCount: "Número de favoritos en la página" -pageLikedCount: "Número de favoritos de su página" -contact: "Contacto" -useSystemFont: "Utilizar la tipografía por defecto del sistema" -clips: "Clip" -experimentalFeatures: "Características experimentales" -developer: "Desarrolladores" -makeExplorable: "Hacer visible la cuenta en \"Explorar\"" -makeExplorableDescription: "Si desactiva esta opción, su cuenta no aparecerá en la sección \"Explorar\"." -showGapBetweenNotesInTimeline: "Mostrar un intervalo entre notas en la línea de tiempo" -duplicate: "Duplicar" -left: "Izquierda" -center: "Centrar" -wide: "Ancho" -narrow: "Estrecho" -reloadToApplySetting: "Esta configuración sólo se aplicará después de recargar la página. ¿Recargar ahora?" -needReloadToApply: "Se requiere un reinicio para la aplicar los cambios" -showTitlebar: "Mostrar la barra de título" -clearCache: "Limpiar caché" -onlineUsersCount: "{n} usuarios en línea" -nUsers: "{n} Usuarios" -nNotes: "{n} Notas" -sendErrorReports: "Envíar informe de errores" -sendErrorReportsDescription: "Si habilita esta opción, ayudará a mejorar la calidad de Misskey compartiendo información detallada sobre los errores cuando se produzca un problema.\nEsto incluye información como la versión de su sistema operativo, el tipo de navegador que utiliza, su historial de actividad, etc." -myTheme: "Mi Tema" -backgroundColor: "Fondo" -accentColor: "Acento" -textColor: "Texto" -saveAs: "Guardar como…" -advanced: "Avanzado" -value: "Valores" -createdAt: "Fecha de creación" -updatedAt: "Actualizado" -saveConfirm: "¿Guardar cambios?" -deleteConfirm: "¿Desea eliminarlo?" -invalidValue: "Este no es un valor válido." -registry: "Registro" -closeAccount: "Cerrar cuenta" -currentVersion: "Versión actual" -latestVersion: "Última versión" -youAreRunningUpToDateClient: "Está utilizando la versión más reciente de su cliente." -newVersionOfClientAvailable: "Hay una versión más nueva de su cliente disponible." -usageAmount: "Uso" -capacity: "Capacidad" -inUse: "Usado" -editCode: "Editar código" -apply: "Aplicar" -receiveAnnouncementFromInstance: "Recibir notificaciones de la instancia" -emailNotification: "Notificaciones por correo electrónico" -publish: "Publicar" -inChannelSearch: "Buscar en el canal" -useReactionPickerForContextMenu: "Haga clic con el botón derecho para abrir el menu de reacciones" -typingUsers: "{users} está escribiendo" -jumpToSpecifiedDate: "Saltar a una fecha específica" -showingPastTimeline: "Mostrar líneas de tiempo antiguas" -clear: "Limpiar" -markAllAsRead: "Marcar todo como leído" -goBack: "Deseleccionar" -unlikeConfirm: "¿Quitar como favorito?" -fullView: "Vista completa" -quitFullView: "quitar vista completa" -addDescription: "Agregar descripción" -userPagePinTip: "Puede mantener sus notas visibles aquí seleccionando Pin en el menú de notas individuales" -notSpecifiedMentionWarning: "Algunas menciones no están incluidas en el destino" -info: "Información" -userInfo: "Información del usuario" -unknown: "Desconocido" -onlineStatus: "En línea" -hideOnlineStatus: "mostrarse como desconectado" -hideOnlineStatusDescription: "Ocultar su estado en línea puede reducir la eficacia de algunas funciones, como la búsqueda" -online: "En línea" -active: "Activo" -offline: "Sin conexión" -notRecommended: "obsoleto" -botProtection: "Protección contra bots" -instanceBlocking: "Instancias bloqueadas" -selectAccount: "Elija una cuenta" -switchAccount: "Cambiar de cuenta" -enabled: "Activado" -disabled: "Desactivado" -quickAction: "Acciones rápidas" -user: "Usuarios" -administration: "Administrar" -accounts: "Cuentas" -switch: "Cambiar" -noMaintainerInformationWarning: "No se ha establecido la información del administrador" -noBotProtectionWarning: "La protección contra los bots no está configurada" -configure: "Configurar" -postToGallery: "Crear una nueva publicación en la galería" -gallery: "Galería" -recentPosts: "Posts recientes" -popularPosts: "Más vistos" -shareWithNote: "Compartir con una nota" -ads: "Anuncios" -expiration: "Termina el" -memo: "Notas" -priority: "Prioridad" -high: "Alta" -middle: "Mediano" -low: "Baja" -emailNotConfiguredWarning: "No se ha configurado una dirección de correo electrónico." -ratio: "Proporción" -previewNoteText: "Mostrar vista preliminar" -customCss: "CSS personalizado" -customCssWarn: "Este ajuste sólo debe utilizarse si se sabe lo que hace. Introducir valores inadecuados puede hacer que el cliente deje de funcionar con normalidad." -global: "Global" -squareAvatars: "Mostrar iconos cuadrados" -sent: "Enviar" -received: "Recibido" -searchResult: "Resultados de búsqueda" -hashtags: "Hashtag" -troubleshooting: "Solución de problemas" -useBlurEffect: "Utilizar efecto de desenfoque en la interfaz de usuario" -learnMore: "Ver más" -misskeyUpdated: "¡Misskey ha sido actualizado!" -whatIsNew: "Mostrar cambios" -translate: "Traducir" -translatedFrom: "Traducido de {x}" -accountDeletionInProgress: "La eliminación de la cuenta está en curso" -usernameInfo: "Un nombre que identifique su cuenta de otras en este servidor. Puede utilizar el alfabeto (a~z, A~Z), dígitos (0~9) o guiones bajos (_). Los nombres de usuario no se pueden cambiar posteriormente." -aiChanMode: "Modo Ai" -keepCw: "Mantener la advertencia de contenido" -pubSub: "Cuentas Pub/Sub" -lastCommunication: "Última comunicación" -resolved: "Resuelto" -unresolved: "Sin resolver" -breakFollow: "Dejar de seguir" -itsOn: "¡Está encendido!" -itsOff: "¡Está apagado!" -emailRequiredForSignup: "Se requere una dirección de correo electrónico para el registro de la cuenta" -unread: "No leído" -filter: "Filtro" -controlPanel: "Panel de control" -manageAccounts: "Administrar cuenta" -makeReactionsPublic: "Hacer el historial de reacciones público" -makeReactionsPublicDescription: "Todas las reacciones que hayas hecho serán públicamente visibles." -classic: "Clásico" -muteThread: "Ocultar hilo" -unmuteThread: "Mostrar hilo" -ffVisibility: "Visibilidad de seguidores y seguidos" -ffVisibilityDescription: "Puedes configurar quien puede ver a quienes sigues y quienes te siguen" -continueThread: "Ver la continuación del hilo" -deleteAccountConfirm: "La cuenta será borrada. ¿Está seguro?" -incorrectPassword: "La contraseña es incorrecta" -voteConfirm: "¿Confirma su voto a {choice}?" -hide: "Ocultar" -leaveGroup: "Dejar el grupo" -leaveGroupConfirm: "¿Desea salir de {name}?" -useDrawerReactionPickerForMobile: "Mostrar panel de reacciones en móviles" -welcomeBackWithName: "Bienvenido otra vez, {name}" -clickToFinishEmailVerification: "Cliquée {ok} y verifique su correo" -overridedDeviceKind: "Tipo de dispositivo" -smartphone: "Teléfono smartphone" -tablet: "Tablet" -auto: "Automático" -themeColor: "Color del tema" -size: "Tamaño" -numberOfColumn: "Cantidad de columnas" -searchByGoogle: "Buscar" -instanceDefaultLightTheme: "Tema claro por defecto de la instancia" -instanceDefaultDarkTheme: "Tema oscuro por defecto de la instancia" -instanceDefaultThemeDescription: "Ingrese el código del tema en formato objeto" -mutePeriod: "Período de silenciamiento" -indefinitely: "Sin límite de tiempo" -tenMinutes: "10 minutos" -oneHour: "1 hora" -oneDay: "1 día" -oneWeek: "1 semana" -reflectMayTakeTime: "Puede pasar un tiempo hasta que se reflejen los cambios" -failedToFetchAccountInformation: "No se pudo obtener información de la cuenta" -rateLimitExceeded: "Se excedió el límite de peticiones" -cropImage: "Recortar imágen" -cropImageAsk: "¿Desea recortar la imagen?" -file: "Archivos" -recentNHours: "Últimas {n} horas" -recentNDays: "Últimos {n} días" -noEmailServerWarning: "No se ha configurado un servidor de correo electrónico." -thereIsUnresolvedAbuseReportWarning: "Hay reportes sin resolver" -recommended: "Recomendado" -check: "Verificar" -driveCapOverrideLabel: "Cambiar la capacidad de la unidad para este usuario" -driveCapOverrideCaption: "Restablecer la capacidad a su predeterminado ingresando un valor de 0 o menos" -requireAdminForView: "Necesitas iniciar sesión como administrador para ver esto." -isSystemAccount: "Cuenta creada y operada automáticamente por el sistema" -typeToConfirm: "Ingrese {x} para confirmar" -deleteAccount: "Borrar cuenta" -document: "Documento" -numberOfPageCache: "Cantidad de páginas cacheadas" -numberOfPageCacheDescription: "Al aumentar el número mejora la conveniencia pero tambien puede aumentar la carga y la memoria a usarse" -logoutConfirm: "¿Cerrar sesión?" -lastActiveDate: "Utilizado por última vez el" -statusbar: "Barra de estado" -pleaseSelect: "Selecciona una opción" -reverse: "Echar de un capirotazo" -colored: "Color" -refreshInterval: "Intervalo de actualización" -label: "Etiqueta" -type: "Tipo" -speed: "Velocidad" -slow: "Lento" -fast: "Rápido" -sensitiveMediaDetection: "Detección de contenido NSFW" -localOnly: "Solo local" -remoteOnly: "Sólo remoto" -failedToUpload: "La subida falló" -cannotUploadBecauseInappropriate: "Este archivo no se puede subir debido a que algunas partes han sido detectadas comoNSFW." -cannotUploadBecauseNoFreeSpace: "La subida falló debido a falta de espacio libre en la unidad del usuario." -beta: "Beta" -enableAutoSensitive: "Marcar automáticamente contenido NSFW" -enableAutoSensitiveDescription: "Permite la detección y marcado automático de contenido NSFW usando 'Machine Learning' cuando sea posible. Incluso si esta opción está desactivada, puede ser activado para toda la instancia." -activeEmailValidationDescription: "Habilita la validación estricta de direcciones de correo electrónico, lo cual incluye la revisión de direcciones desechables y si se puede comunicar con éstas. Cuando está deshabilitado, sólo el formato de la dirección es validado." -navbar: "Barra de navegación" -shuffle: "Aleatorio" -account: "Cuentas" -move: "Mover" -_sensitiveMediaDetection: - description: "Reduce el esfuerzo de la moderación el el servidor a través del reconocimiento automático de contenido NSFW usando 'Machine Learning'. Esto puede incrementar ligeramente la carga en el servidor." - sensitivity: "Sensibilidad de detección" - sensitivityDescription: "Reducir la sensibilidad puede acarrear a varios falsos positivos, mientras que incrementarla puede reducir las detecciones (falsos negativos)." - setSensitiveFlagAutomatically: "Marcar como NSFW" - setSensitiveFlagAutomaticallyDescription: "Los resultados de la detección interna pueden ser retenidos incluso si la opción está desactivada." - analyzeVideos: "Habilitar el análisis de videos" - analyzeVideosDescription: "Analizar videos en adición a las imágenes. Esto puede incrementar ligeramente la carga del servidor." -_emailUnavailable: - used: "Ya fue usado" - format: "Formato no válido." - disposable: "No es un correo reutilizable" - mx: "Servidor de correo inválido" - smtp: "Servidor de correo no disponible" -_ffVisibility: - public: "Publicar" - followers: "Visible solo para seguidores" - private: "Privado" -_signup: - almostThere: "Ya falta poco" - emailAddressInfo: "Ingrese el correo electrónico que usa. Este no se hará público." - emailSent: "Se envió un correo de verificación a la dirección {email}. Acceda al link enviado en el correo para completar el ingreso." -_accountDelete: - accountDelete: "Eliminar Cuenta" - mayTakeTime: "La eliminación de la cuenta es un proceso que precisa de carga. Puede pasar un tiempo hasta que se complete si es mucho el contenido creado y los archivos subidos." - sendEmail: "Cuando se termine de borrar la cuenta, se enviará un correo a la dirección usada para el registro." - requestAccountDelete: "Pedir la eliminación de la cuenta." - started: "El proceso de eliminación ha comenzado." - inProgress: "La eliminación está en proceso." -_ad: - back: "Deseleccionar" - reduceFrequencyOfThisAd: "Mostrar menos este anuncio." -_forgotPassword: - enterEmail: "Ingrese el correo usado para registrar la cuenta. Se enviará un link para resetear la contraseña." - ifNoEmail: "Si no utilizó un correo para crear la cuenta, contáctese con el administrador." - contactAdmin: "Esta instancia no admite el uso de direcciones de correo electrónico, póngase en contacto con el administrador de la instancia para restablecer su contraseña" -_gallery: - my: "Mi galería" - liked: "Publicaciones que me gustan" - like: "¡Muy bien!" - unlike: "Quitar me gusta" -_email: - _follow: - title: "te ha seguido" - _receiveFollowRequest: - title: "Has recibido una solicitud de seguimiento" -_plugin: - install: "Instalar plugins" - installWarn: "Por favor no instale plugins que no son de confianza" - manage: "Gestionar plugins" -_preferencesBackups: - list: "Respaldos creados" - saveNew: "Guardar nuevo respaldo" - loadFile: "Cargar desde archivo" - apply: "Aplicar a este dispositivo" - save: "Guardar cambios" - inputName: "Por favor, ingresa un nombre para este respaldo" - cannotSave: "Fallo al guardar" - nameAlreadyExists: "Un respaldo llamado \"{name}\" ya existe. Por favor ingresa un nombre diferente" - applyConfirm: "¿Realmente quieres aplicar los cambios desde el archivo \"{name}\" a este dispositivo? Las configuraciones existentes serán sobreescritas. " - saveConfirm: "¿Guardar respaldo como \"{name}\"?" - deleteConfirm: "¿Borrar el respaldo \"{name}\"?" - renameConfirm: "¿Renombrar este respaldo de \"{old}\" a \"{new}\"?" - noBackups: "No existen respaldos. Deberás respaldar las configuraciones del cliente en este servidor usando \"Crear nuevo respaldo\"" - createdAt: "Creado: {date} {time}" - updatedAt: "Actualizado: {date} {time}" - cannotLoad: "La carga falló" - invalidFile: "Formato de archivo inválido" -_registry: - scope: "Alcance" - key: "Clave" - keys: "Clave" - domain: "Dominio" - createKey: "Crear una llave" -_aboutMisskey: - about: "Misskey es un software de código abierto, desarrollado por syuilo desde el 2014" - contributors: "Principales colaboradores" - allContributors: "Todos los colaboradores" - source: "Código fuente" - translation: "Traducir Misskey" - donate: "Donar a Misskey" - morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰" - patrons: "Patrocinadores" -_nsfw: - respect: "Ocultar medios NSFW" - ignore: "No esconder medios NSFW " - force: "Ocultar todos los medios" _mfm: cheatSheet: "Hoja de referencia de MFM" intro: "MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares dentro de Misskey. Aquí puede ver una lista de sintaxis disponibles en MFM." - dummy: "Misskey expande el mundo de la Fediverso" mention: "Menciones" mentionDescription: "El signo @ seguido de un nombre de usuario se puede utilizar para notificar a un usuario en particular." hashtag: "Hashtag" - hashtagDescription: "Puede especificar un hashtag con un numeral y el texto." url: "URL" - urlDescription: "Se pueden mostrar las URL" link: "Vínculo" - linkDescription: "Se pueden asociar partes de texto a la URL" bold: "Negrita" - boldDescription: "Muestra el texto con las letras más gruesas" - small: "Pequeño" - smallDescription: "Muestra el texto más pequeño y delgado" center: "Centrar" - centerDescription: "Muestra el texto centrado" - inlineCode: "Código (insertado)" - inlineCodeDescription: "Muestra el código de un programa resaltando su sintaxis" blockCode: "Código (bloque)" blockCodeDescription: "Código de resaltado de sintaxis, como programas de varias líneas con bloques." - inlineMath: "Fórmula (insertado)" - inlineMathDescription: "Muestra fórmulas (KaTeX) insertadas" - blockMath: "Fórmula (bloque)" - blockMathDescription: "Muestra fórmulas (KaTeX) de varias líneas en un bloque" quote: "Citar" - quoteDescription: "Muestra el contenido como una cita" emoji: "Emojis personalizados" - emojiDescription: "Muestra los emojis personalizados encerrados entre dos puntos." search: "Buscar" - searchDescription: "Muestra una caja de búsqueda con texto pre-escrito" flip: "Echar de un capirotazo" flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha." - jelly: "Animación (gelatina)" - jellyDescription: "Aplica un efecto de animación tipo gelatina" - tada: "Animación (tadá)" - tadaDescription: "Aplica un efecto de animación al estilo \"Tadá\"" - jump: "Animación (saltar)" - jumpDescription: "Aplica un efecto de animación tipo salto" - bounce: "Animación (rebotar)" - bounceDescription: "Aplica un efecto de animación tipo rebote" - shake: "Animación (temblor)" - shakeDescription: "Aplica un efecto de animación tipo temblor" - twitch: "Animación (sacudida)" - twitchDescription: "Aplica un efecto de animación tipo sacudida" - spin: "Animación (giro)" - spinDescription: "Aplica un efecto de animación tipo rotación" - x2: "Grande" - x2Description: "Muestra el contenido más grande" - x3: "Muy grande" - x3Description: "Muestra el contenido mucho más grande" - x4: "Totalmente grande" - x4Description: "Muestra el contenido totalmente grande" - blur: "Desenfoque" - blurDescription: "Para desenfocar el contenido. Se muestra claramente al colocar el puntero encima." - font: "Fuente" - fontDescription: "Elegir la fuente del contenido" - rainbow: "Arcoíris" - rainbowDescription: "Muestra el contenido con los colores del arcoíris" - sparkle: "Parpadeante" - sparkleDescription: "Aplica un efecto de partículas parpadeantes" - rotate: "Rotar" - rotateDescription: "Rota el contenido a un ángulo especificado." - plain: "Plano" - plainDescription: "Desactiva los efectos de todo el contenido MFM con este efecto MFM." +_reversi: + reversi: "Reversi" + gameSettings: "Configuración del juego" + chooseBoard: "Elegir tablero" + blackOrWhite: "Blancas/Negras" + blackIs: "{name} juega con fichas negras" + rules: "Reglas" + botSettings: "Opciones del bot" + thisGameIsStartedSoon: "El juego empezará en segundos" + waitingForOther: "Esperando el turno del adversario" + waitingForMe: "Esperando mi turno" + waitingBoth: "Prepárate" + ready: "Listo" + cancelReady: "No estoy listo" + opponentTurn: "Turno del adversario" + myTurn: "Mi turno" + turnOf: "Turno de {name}" + pastTurnOf: "Turno de {name}" + surrender: "Rendirse" + surrendered: "Por rendirse" + drawn: "Empate" + won: "{name} ha ganado" + black: "Negro" + white: "Blanco" + total: "Total" + turnCount: "Turno {count}" + myGames: "Mis juegos" + allGames: "Todos los juegos" + ended: "Finalizado" + playing: "Jugando" + isLlotheo: "El que tenga menos fichas gana (LLoTheO)" + loopedMap: "Mapa en bucle" + canPutEverywhere: "Puedes colocar donde quieras" _instanceTicker: none: "No mostrar" remote: "Mostrar a usuarios remotos" @@ -1064,10 +675,9 @@ _channel: following: "Siguiendo" usersCount: "{n} participantes" notesCount: "{n} notas" -_menuDisplay: - sideFull: "Horizontal" - sideIcon: "Horizontal (ícono)" - top: "Arriba" +_sidebar: + full: "Completo" + icon: "Avatar" hide: "Ocultar" _wordMute: muteWords: "Palabras que silenciar" @@ -1078,20 +688,12 @@ _wordMute: soft: "Suave" hard: "Duro" mutedNotes: "Notas silenciadas" -_instanceMute: - instanceMuteDescription: "Silencia todas las notas y reposts de la instancias seleccionadas, incluyendo respuestas a los usuarios de las mismas" - instanceMuteDescription2: "Separar por líneas" - title: "Oculta las notas de las instancias listadas." - heading: "Instancias a silenciar" _theme: explore: "Explorar temas" install: "Instalar tema" manage: "Gestor de temas" code: "Código del tema" - description: "Descripción" installed: "{name} ha sido instalado" - installedThemes: "Temas instalados" - builtinThemes: "Temas integrados" alreadyInstalled: "Este tema ya está instalado" invalid: "El formato del tema no es válido" make: "Crear tema" @@ -1166,6 +768,7 @@ _sfx: antenna: "Antena receptora" channel: "Notificaciones del canal" _ago: + unknown: "Desconocido" future: "Futuro" justNow: "Recién ahora" secondsAgo: "Hace {n} segundos" @@ -1209,7 +812,6 @@ _2fa: registerKey: "Registrar clave" step1: "Primero, instale en su dispositivo la aplicación de autenticación {a} o {b} u otra." step2: "Luego, escanee con la aplicación el código QR mostrado en pantalla." - step2Url: "En una aplicación de escritorio se puede ingresar la siguiente URL:" step3: "Para terminar, ingrese el token mostrado en la aplicación." step4: "Ahora cuando inicie sesión, ingrese el mismo token" securityKeyInfo: "Se puede configurar el inicio de sesión usando una clave de seguridad de hardware que soporte FIDO2 o con un certificado de huella digital o con un PIN" @@ -1242,10 +844,6 @@ _permissions: "write:user-groups": "Administrar grupos de usuarios" "read:channels": "Ver canal" "write:channels": "Modificar canal" - "read:gallery": "Ver galería" - "write:gallery": "Editar galería" - "read:gallery-likes": "Ver favoritos de la galería" - "write:gallery-likes": "Editar favoritos de la galería" _auth: shareAccess: "¿Desea permitir el acceso a la cuenta \"{name}\"?" shareAccessAsk: "¿Está seguro de que desea autorizar esta aplicación para acceder a su cuenta?" @@ -1275,21 +873,11 @@ _widgets: trends: "Tendencias" clock: "Reloj" rss: "Lector RSS" - rssTicker: "Ticker-RSS" activity: "Actividad" photos: "Fotos" digitalClock: "Reloj digital" - unixClock: "Reloj UNIX" federation: "Federación" - instanceCloud: "Nube de palabras de la instancia" postForm: "Formulario" - slideshow: "Diapositivas" - button: "Botón" - onlineUsers: "Usuarios en linea" - jobQueue: "Cola de trabajos" - serverMetric: "Estadísticas del servidor" - aiscript: "Consola de AiScript" - aichan: "indigo" _cw: hide: "Ocultar" show: "Ver más" @@ -1344,24 +932,18 @@ _profile: username: "Nombre de usuario" description: "Descripción" youCanIncludeHashtags: "Puedes añadir hashtags" - metadata: "información adicional" - metadataEdit: "Editar información adicional" - metadataDescription: "Muestra la información adicional en el perfil" + metadata: "Información adicional" metadataLabel: "Etiqueta" metadataContent: "Contenido" - changeAvatar: "Cambiar avatar" - changeBanner: "Cambiar banner" _exportOrImport: allNotes: "Todas las notas" followingList: "Siguiendo" muteList: "Silenciados" blockingList: "Bloqueados" userLists: "Listas" - excludeMutingUsers: "Excluir usuarios silenciados" - excludeInactiveUsers: "Excluir usuarios inactivos" _charts: - federation: "Federación" - apRequest: "Pedidos" + federationInstancesIncDec: "Variación de instancias federando" + federationInstancesTotal: "Total de instancias federando" usersIncDec: "Variación de usuarios" usersTotal: "Total de usuarios" activeUsers: "Cantidad de usuarios activos" @@ -1390,6 +972,68 @@ _timelines: local: "Local" social: "Social" global: "Global" +_rooms: + roomOf: "Cuarto de {user}" + addFurniture: "Colocar muebles" + translate: "Mover" + rotate: "Rotar" + exit: "Deseleccionar" + remove: "Quitar" + clear: "Quitar todo" + clearConfirm: "¿Quiere quitar todos los muebles?" + leaveConfirm: "Hay modificaciones sin guardar. ¿Desea irse?" + chooseImage: "Escoger una imagen" + roomType: "Estilo de cuarto" + carpetColor: "Color de piso" + _roomType: + default: "Predeterminado" + washitsu: "Estilo japonés" + _furnitures: + milk: "Cartón de leche" + bed: "Cama" + low-table: "Mesa chica" + desk: "Escritorio" + chair: "Silla" + chair2: "Silla 2" + fan: "Ventilador" + pc: "Computadora" + plant: "Planta decorativa" + plant2: "Planta decorativa 2" + eraser: "Goma de borrar" + pencil: "lápiz" + pudding: "Pudín" + cardboard-box: "Caja de cartón" + cardboard-box2: "Caja de cartón 2" + cardboard-box3: "Caja de cartón 3" + book: "Libro" + book2: "Libro 2" + piano: "Piano" + facial-tissue: "Caja de pañuelos" + server: "Servidor" + moon: "Luna" + corkboard: "Pizarra de corcho" + mousepad: "Alfombrilla de ratón" + monitor: "Monitor" + keyboard: "Teclado" + carpet-stripe: "Alfombra (a rayas)" + mat: "Tapete" + color-box: "Caja de colores" + wall-clock: "Reloj de pared" + photoframe: "Fotograma" + cube: "Cubo" + tv: "Televisor" + pinguin: "Pinguino" + rubik-cube: "Cubo rubik" + poster-h: "Poster (horizontal)" + poster-v: "Poster (vertical)" + sofa: "Sillón" + spiral: "Escalera en espiral" + bin: "Papelera" + cup-noodle: "Taza de sopa de fideos" + holo-display: "Poster holográfico" + energy-drink: "Bebida energética" + doll-ai: "Muñeca" + banknote: "Billetes" _pages: newPage: "Crear página" editPage: "Editar página" @@ -1397,7 +1041,6 @@ _pages: created: "La página fue creada" updated: "La página fue actualizada" deleted: "La página borrada" - pageSetting: "Configurar página" nameAlreadyExists: "La URL de la página especificada ya existe" invalidNameTitle: "URL inválida" invalidNameText: "Verifique que no tenga espacios en blanco" @@ -1408,7 +1051,6 @@ _pages: unlike: "Quitar me gusta" my: "Mis páginas" liked: "Páginas que me gustan" - featured: "Popular" inspector: "Inspector" contents: "Contenido" content: "Bloque de página" @@ -1464,11 +1106,6 @@ _pages: id: "Lienzo ID" width: "Ancho" height: "Altura" - note: "Nota embebida" - _note: - id: "Id de la nota" - idDescription: "Pega la URL de la nota para configurarla" - detailed: "Ver Detalles" switch: "Interruptor" _switch: name: "Nombre de variable" @@ -1696,8 +1333,6 @@ _notification: youReceivedFollowRequest: "Has mandado una solicitud de seguimiento" yourFollowRequestAccepted: "Tu solicitud de seguimiento fue aceptada" youWereInvitedToGroup: "Invitado al grupo" - pollEnded: "Estan disponibles los resultados de la encuesta" - emptyPushNotificationMessage: "Se han actualizado las notificaciones push" _types: all: "Todo" follow: "Siguiendo" @@ -1707,34 +1342,21 @@ _notification: quote: "Citar" reaction: "Reacción" pollVote: "Votado en la encuesta" - pollEnded: "La encuesta terminó" receiveFollowRequest: "Recibió una solicitud de seguimiento" followRequestAccepted: "El seguimiento fue aceptado" groupInvited: "Invitado al grupo" app: "Notificaciones desde aplicaciones" - _actions: - followBack: "Te sigue de vuelta" - reply: "Responder" - renote: "Renotar" _deck: alwaysShowMainColumn: "Siempre mostrar la columna principal" columnAlign: "Alinear columnas" addColumn: "Agregar columna" - configureColumn: "Ajustes de columna" swapLeft: "Mover a la izquierda" swapRight: "Mover a la derecha" swapUp: "Mover arriba" swapDown: "Mover abajo" stackLeft: "Apilar a la izquierda" popRight: "Sacar a la derecha" - profile: "Perfil" - newProfile: "Nuevo perfil" - deleteProfile: "Eliminar perfil" - introduction: "¡Crea la interfaz perfecta para tí organizando las columnas libremente!" - introduction2: "Presiona en la + de la derecha de la pantalla para añadir nuevas columnas donde quieras." - widgetsIntroduction: "Por favor selecciona \"Editar Widgets\" en el menú columna y agrega un widget." _columns: - main: "Principal" widgets: "Widgets" notifications: "Notificaciones" tl: "Linea de tiempo" diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index d6047b48d..81cbf0f61 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -1,13 +1,11 @@ --- _lang_: "Français" -headlineMisskey: "Réseau relié par des notes" introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à l’instant présent, autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également d’ajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀" monthAndDay: "{day}/{month}" search: "Rechercher" notifications: "Notifications" username: "Nom d’utilisateur·rice" password: "Mot de passe" -forgotPassword: "Mot de passe oublié" fetchingAsApObject: "Récupération depuis le fédiverse …" ok: "OK" gotIt: "J’ai compris !" @@ -18,8 +16,8 @@ noNotes: "Aucune note" noNotifications: "Aucune notification" instance: "Instance" settings: "Paramètres" -basicSettings: "Paramètres généraux" -otherSettings: "Paramètres avancés" +basicSettings: "Paramètres basiques" +otherSettings: "Autres paramètres" openInWindow: "Ouvrir dans une nouvelle fenêtre" profile: "Profil" timeline: "Fil" @@ -35,9 +33,6 @@ addUser: "Ajouter un·e utilisateur·rice" favorite: "Ajouter aux favoris" favorites: "Favoris" unfavorite: "Retirer des favoris" -favorited: "Ajouté à mes favoris" -alreadyFavorited: "Déjà ajouté aux favoris." -cantFavorite: "Impossible d'ajouter aux favoris." pin: "Épingler sur le profil" unpin: "Désépingler" copyContent: "Copier le contenu" @@ -51,8 +46,6 @@ copyUsername: "Copier le nom d’utilisateur·rice" searchUser: "Chercher un·e utilisateur·rice" reply: "Répondre" loadMore: "Afficher plus …" -showMore: "Afficher plus …" -showLess: "Fermer" youGotNewFollower: "Vous suit" receiveFollowRequest: "Demande d’abonnement reçue" followRequestAccepted: "La demande d’abonnement a été acceptée" @@ -64,7 +57,7 @@ import: "Importer" export: "Exporter" files: "Fichiers" download: "Télécharger" -driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\" ? Les notes liées à ce fichier seront aussi supprimées." +driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\" ? Les notes avec ce fichier joint seront aussi supprimées." unfollowConfirm: "Désirez-vous vous désabonner de {name} ?" exportRequested: "Vous avez demandé une exportation. L’opération pourrait prendre un peu de temps. Une terminée, le fichier résultant sera ajouté au Drive." importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps." @@ -81,41 +74,33 @@ error: "Erreur" somethingHappened: "Une erreur est survenue" retry: "Réessayer" pageLoadError: "Le chargement de la page a échoué" -pageLoadErrorDescription: "Cela est généralement causé par le cache du navigateur ou par un problème réseau. Veuillez vider votre cache ou attendre un peu et réessayer." -serverIsDead: "Le serveur ne répond pas. Patientez quelques instants puis essayez à nouveau." -youShouldUpgradeClient: "Si la page ne s'affiche pas correctement, rechargez-la pour mettre votre client à jour." enterListName: "Nom de la liste" privacy: "Confidentialité" makeFollowManuallyApprove: "Accepter manuellement les demandes d’abonnement" -defaultNoteVisibility: "Visibilité des notes par défaut" +defaultNoteVisibility: "Visibilité par défaut" follow: "S’abonner" followRequest: "Demande d’abonnement" followRequests: "Demandes d’abonnement" unfollow: "Se désabonner" -followRequestPending: "Demande d'abonnement en attente de confirmation" -enterEmoji: "Insérer un émoji" -renote: "Renoter" -unrenote: "Annuler la Renote" -renoted: "Renoté !" -cantRenote: "Ce message ne peut pas être renoté." -cantReRenote: "Impossible de renoter une Renote." +followRequestPending: "En attente d’approbation" +enterEmoji: "ou entrez un émoji" +renote: "Renote" +unrenote: "Annuler Renote" quote: "Citer" pinnedNote: "Note épinglée" -pinned: "Épingler sur le profil" you: "Vous" clickToShow: "Cliquer pour afficher" sensitive: "Contenu sensible" add: "Ajouter" reaction: "Réactions" -reactionSetting: "Réactions à afficher dans le sélecteur de réactions" -reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter." -rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des notes \" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication de votre note précédente." +reactionSettingDescription: "Choisissez vos réactions préférées que vous souhaitez épingler dans le sélecteur de réactions." +rememberNoteVisibility: "Se souvenir de la visibilité des notes" attachCancel: "Supprimer le fichier attaché" markAsSensitive: "Marquer comme sensible" -unmarkAsSensitive: "Supprimer le marquage comme sensible" +unmarkAsSensitive: "Enlever le marquage comme sensible" enterFileName: "Entrer le nom du fichier" -mute: "Masquer" -unmute: "Ne plus masquer" +mute: "Mettre en sourdine" +unmute: "Enlever la sourdine" block: "Bloquer" unblock: "Débloquer" suspend: "Suspendre" @@ -128,10 +113,9 @@ selectList: "Sélectionner une liste" selectAntenna: "Sélectionner une antenne" selectWidget: "Sélectionner un widget" editWidgets: "Modifier les widgets" -editWidgetsExit: "Valider les modifications" +editWidgetsExit: "Fait" customEmojis: "Émojis personnalisés" emoji: "Émoji" -emojis: "Émoji" emojiName: "Nom de l’émoji" emojiUrl: "URL de l’émoji" addEmoji: "Ajouter un émoji" @@ -139,12 +123,9 @@ settingGuide: "Configuration proposée" cacheRemoteFiles: "Mise en cache des fichiers distants" cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis l’instance distante. La désactiver diminuera certes l’utilisation de l’espace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées." flagAsBot: "Ce compte est un robot" -flagAsBotDescription: "Si ce compte est géré de manière automatisée, choisissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot." flagAsCat: "Ce compte est un chat" -flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte." -flagShowTimelineReplies: "Afficher les réponses dans le fil" autoAcceptFollowed: "Accepter automatiquement les demandes d’abonnement venant d’utilisateur·rice·s que vous suivez" -addAccount: "Ajouter un compte" +addAcount: "Ajouter un compte" loginFailed: "Échec de la connexion" showOnRemote: "Voir sur l’instance distante" general: "Général" @@ -156,9 +137,9 @@ youHaveNoLists: "Vous n’avez aucune liste" followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?" proxyAccount: "Compte proxy" proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient acheminées." -host: "Serveur distant" +host: "Hôte" selectUser: "Sélectionner un·e utilisateur·rice" -recipient: "Destinataire" +recipient: "Correspondant·e" annotation: "Commentaires" federation: "Fédération" instances: "Instance" @@ -177,7 +158,7 @@ software: "Logiciel" version: "Version" metadata: "Métadonnées" withNFiles: "{n} fichier(s)" -monitor: "Contrôle" +monitor: "Écran de contrôle" jobQueue: "File d’attente" cpuAndMemory: "Processeur et mémoire" network: "Réseau" @@ -186,9 +167,9 @@ instanceInfo: "Informations sur l’instance" statistics: "Statistiques" clearQueue: "Vider la file d’attente" clearQueueConfirmTitle: "Êtes-vous sûr·e de vouloir vider la file d’attente ?" -clearQueueConfirmText: "Les notes non distribuées ne seront pas délivrées. Normalement, vous n'avez pas besoin d'effectuer cette opération." +clearQueueConfirmText: "Les notes non distribuées ne seront pas livrées. Normalement, vous n'avez PAS besoin d'effectuer cette opération." clearCachedFiles: "Vider le cache" -clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider tout le cache de fichiers distants ?" +clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider le cache de fichiers distants ?" blockedInstances: "Instances bloquées" blockedInstancesDescription: "Listez les instances que vous désirez bloquer, une par ligne. Ces instances ne seront plus en capacité d'interagir avec votre instance." muteAndBlock: "Masqué·e·s / Bloqué·e·s" @@ -201,7 +182,7 @@ pinLimitExceeded: "Vous ne pouvez plus épingler d’autres notes." intro: "L’installation de Misskey est terminée ! Veuillez créer un compte administrateur." done: "Terminé" processing: "Traitement en cours" -preview: "Aperçu" +preview: "Prévisualisation" default: "Par défaut" noCustomEmojis: "Il n'y a pas d’émoji" noJobs: "Il n’y a aucune tâche planifiée" @@ -212,7 +193,7 @@ all: "Tous" subscribing: "Abonné" publishing: "Publié" notResponding: "Ne répond pas" -instanceFollowing: "Abonnements de l'instance" +instanceFollowing: "Abonnements une instance" instanceFollowers: "Abonné·e·s de l’instance" instanceUsers: "Utilisateur·rice·s de cette l’instance" changePassword: "Modifier votre mot de passe" @@ -225,19 +206,17 @@ attachFile: "Joindre un fichier" more: "Plus !" featured: "Tendances" usernameOrUserId: "Nom d’utilisateur·rice ou ID utilisateur" -noSuchUser: "Utilisateur·rice non trouvé·e" +noSuchUser: "Utilisateur·rice non trouvé" lookup: "Recherche" announcements: "Annonces" imageUrl: "URL de l’image" remove: "Supprimer" removed: "Supprimé" -removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?" -deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?" -resetAreYouSure: "Voulez-vous réinitialiser ?" +removeAreYouSure: "Supprimer «{x}» ?" +deleteAreYouSure: "Supprimer «{x}» ?" saved: "Enregistré" messaging: "Discuter" upload: "Téléverser" -keepOriginalUploading: "Garder l’image d’origine" fromDrive: "Depuis le Drive" fromUrl: "Depuis une URL" uploadFromUrl: "Téléverser via une URL" @@ -245,7 +224,8 @@ uploadFromUrlDescription: "URL du fichier que vous souhaitez téléverser" uploadFromUrlRequested: "Téléversement demandé" uploadFromUrlMayTakeTime: "Le téléversement de votre fichier peut prendre un certain temps." explore: "Découvrir" -messageRead: "Lu" +games: "Jeux de Misskey" +messageRead: "Lus" noMoreHistory: "Il n’y a plus d’historique" startMessaging: "Commencer à discuter" nUsersRead: "Lu par {n} personnes" @@ -265,29 +245,28 @@ themeForLightMode: "Thème à utiliser en Mode Clair" themeForDarkMode: "Thème à utiliser en Mode Sombre" light: "Clair" dark: "Sombre" -lightThemes: "Thèmes clairs" -darkThemes: "Thèmes sombres" -syncDeviceDarkMode: "Utiliser le mode sombre de votre appareil" +lightThemes: "Thème clair" +darkThemes: "Thème sombre" +syncDeviceDarkMode: "Synchronisez le mode sombre avec les paramètres de votre appareil" drive: "Drive" fileName: "Nom du fichier" selectFile: "Choisir le fichier" selectFiles: "Choisir les fichiers" selectFolder: "Sélectionnez un dossier" selectFolders: "Sélectionnez des dossiers" -renameFile: "Renommer le fichier" +renameFile: "Renommer le ficher" folderName: "Nom du dossier" createFolder: "Créer un dossier" renameFolder: "Renommer le dossier" deleteFolder: "Supprimer le dossier" -addFile: "Ajouter un fichier" +addFile: "Ajoutez un fichier" emptyDrive: "Le Drive est vide" emptyFolder: "Le dossier est vide" -unableToDelete: "Suppression impossible" +unableToDelete: "Ne peut pas être supprimé" inputNewFileName: "Entrez un nouveau nom de fichier" -inputNewDescription: "Veuillez entrer une nouvelle description" inputNewFolderName: "Entrez un nouveau nom de dossier" circularReferenceFolder: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer." -hasChildFilesOrFolders: "Impossible de supprimer ce dossier car il n'est pas vide." +hasChildFilesOrFolders: "Ce dossier n'est pas vide, il ne peut donc pas être supprimé" copyUrl: "Copier l’URL" rename: "Renommer" avatar: "Avatar" @@ -297,7 +276,7 @@ whenServerDisconnected: "Lorsque la connexion au serveur est perdue" disconnectedFromServer: "Déconnecté·e du serveur" reload: "Rafraîchir" doNothing: "Ignorer" -reloadConfirm: "Voulez-vous recharger?" +reloadConfirm: "Voulez-vous recharger le fil ?" watch: "Surveiller" unwatch: "Ne plus surveiller" accept: "Autoriser" @@ -316,27 +295,24 @@ monthX: "{month}" yearX: "{year}" pages: "Pages" integration: "Intégrations" -connectService: "Connexion" -disconnectService: "Déconnexion" +connectSerice: "Connecter" +disconnectSerice: "Déconnecter" enableLocalTimeline: "Activer le fil local" enableGlobalTimeline: "Activer le fil global" -disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur·rice·s et les modérateur·rice·s pourront toujours y accéder." +disablingTimelinesInfo: "Si vous désactivez ces fils, les administrateurs et les modérateurs pourront toujours y accéder." registration: "S’inscrire" enableRegistration: "Autoriser les nouvelles inscriptions" invite: "Inviter" +proxyRemoteFiles: "Proxy fichiers distants" +proxyRemoteFilesDescription: "Si vous activez ce paramètre, les fichiers distants non stockés ou supprimés en raison d'une capacité excédentaire seront affichés via un proxy local et généreront une miniature. Cela n'affectera pas le stockage du serveur." driveCapacityPerLocalAccount: "Volume du Drive par utilisateur local" driveCapacityPerRemoteAccount: "Volume du Drive par utilisateur distant" inMb: "en mégaoctets" -iconUrl: "URL de l'icône" +iconUrl: "URL de l’image de l’avatar" bannerUrl: "URL de l’image de la bannière" -backgroundImageUrl: "URL de l'image d'arrière-plan" basicInfo: "Informations basiques" pinnedUsers: "Utilisateur·rice épinglé·e" pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne." -pinnedPages: "Pages épinglées" -pinnedPagesDescription: "Inscrivez le chemin des pages que vous souhaitez épingler en haut de la page de l'instance. Séparez les pages d'un retour à la ligne." -pinnedClipId: "Identifiant du clip épinglé" -pinnedNotes: "Note épinglée" hcaptcha: "hCaptcha" enableHcaptcha: "Activer hCaptcha" hcaptchaSiteKey: "Clé du site" @@ -353,8 +329,9 @@ antennaSource: "Source de l’antenne" antennaKeywords: "Mots clés à recevoir" antennaExcludeKeywords: "Mots clés à exclure" antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR." -notifyAntenna: "Je souhaite recevoir les notifications des nouvelles notes" +notifyAntenna: "Me notifier pour les nouvelles notes" withFileAntenna: "Notes ayant des attachements uniquement" +serviceworker: "ServiceWorker" enableServiceworker: "Activer ServiceWorker" antennaUsersDescription: "Saisissez un seul nom d’utilisateur·rice par ligne" caseSensitive: "Sensible à la casse" @@ -364,30 +341,37 @@ notesAndReplies: "Notes et Réponses" withFiles: "Avec fichiers joints" silence: "Mettre en sourdine" silenceConfirm: "Êtes-vous sûr·e de vouloir mettre l’utilisateur·rice en sourdine ?" -unsilence: "Annuler la sourdine" -unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cet·te utilisateur·rice ?" +unsilence: "Annuler la mise en sourdine" +unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cette utilisateur·rice ?" popularUsers: "Utilisateur·rice·s populaires" recentlyUpdatedUsers: "Utilisateur·rice·s actif·ve·s récemment" recentlyRegisteredUsers: "Utilisateur·rice·s récemment inscrit·e·s" -recentlyDiscoveredUsers: "Utilisateur·rice·s récemment découvert·e·s" +recentlyDiscoveredUsers: "Utilisateur·rice·s récemment découverts" exploreUsersCount: "Il y a {count} utilisateur·rice·s" exploreFediverse: "Explorer le Fediverse" popularTags: "Mots-clés populaires" userList: "Listes" about: "Informations" aboutMisskey: "À propos de Misskey" +aboutMisskeyText: "Misskey est un logiciel libre et ouvert, développé par syuilo depuis 2014." +misskeyMembers: "Il est développé et maintenu par les membres listés ci-dessous :" +misskeySource: "Le code source est disponible ici:" +misskeyTranslation: "Aidez-nous en contribuant à traduire Misskey :" +misskeyDonate: "Vous pouvez contribuer au développement de Misskey en faisant un don ici:" +morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰" +patrons: "Supporteurs" administrator: "Administrateur" token: "Jeton" twoStepAuthentication: "Authentification à deux facteurs" -moderator: "Modérateur·rice·s" +moderator: "Modérateurs" nUsersMentioned: "{n} utilisateur·rice·s mentionné·e·s" securityKey: "Clé de sécurité" securityKeyName: "Nom de la clé" -registerSecurityKey: "Enregistrer une clé de sécurité" +registerSecurityKey: "S’inscrire la clé de sécurité" lastUsed: "Dernier utilisé" unregister: "Se désinscrire" -passwordLessLogin: "Se connecter sans mot de passe" -resetPassword: "Réinitialiser le mot de passe" +passwordLessLogin: "Connectez-vous sans mot de passe" +resetPassword: "Réinitialiser mot de passe" newPasswordIs: "Votre nouveau mot de passe est \"{password}\"" reduceUiAnimation: "Réduire les animations dans l’interface" share: "Partager" @@ -399,66 +383,65 @@ markAsReadAllNotifications: "Marquer toutes les notifications comme lues" markAsReadAllUnreadNotes: "Marquer toutes les notes comme lues" markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues" help: "Aide" -inputMessageHere: "Écrivez votre message ici" +inputMessageHere: "Tapez ici votre message" close: "Fermer" group: "Groupe" groups: "Groupes" createGroup: "Créer un groupe" -ownedGroups: "Mes groupes" -joinedGroups: "Groupes rejoints" -invites: "Invitations" +ownedGroups: "Groupe propriétaire" +joinedGroups: "Membre dans les groupes" +invites: "Inviter" groupName: "Nom du groupe" members: "Membres" transfer: "Transférer" -messagingWithUser: "Discuter avec un·e autre utilisateur·rice" -messagingWithGroup: "Discuter avec un groupe" +messagingWithUser: "Discutez avec les utilisateurs" +messagingWithGroup: "Discuter en groupe" title: "Titre" text: "Texte" enable: "Activer" next: "Suivant" -retype: "Confirmation" -noteOf: "Notes de {user}" -inviteToGroup: "Inviter dans un groupe" +retype: "Retapez" +noteOf: "{user} notes" +inviteToGroup: "Inviter au groupe" +maxNoteTextLength: "Limite de note caractères" quoteAttached: "Avec citation" -quoteQuestion: "Souhaitez-vous ajouter une citation ?" -noMessagesYet: "Pas encore de discussion" +quoteQuestion: "Souhaitez-vous ajoutez une citation ?" +noMessagesYet: "Pas encore discuté" newMessageExists: "Vous avez un nouveau message" onlyOneFileCanBeAttached: "Vous ne pouvez joindre qu’un seul fichier au message" signinRequired: "Veuillez vous connecter" -invitations: "Invitations" +invitations: "Inviter" invitationCode: "Code d’invitation" -checking: "Vérification en cours..." +checking: "Vérification" available: "Disponible" unavailable: "Non disponible" -usernameInvalidFormat: "Le nom d'utilisateur peut contenir uniquement des lettres (minuscules et/ou majuscules), des chiffres et des _" -tooShort: "Trop court" -tooLong: "Trop long" -weakPassword: "Mot de passe faible" -normalPassword: "Mot de passe acceptable" -strongPassword: "Mot de passe fort" -passwordMatched: "Les mots de passe correspondent" -passwordNotMatched: "Les mots de passe ne correspondent pas" -signinWith: "Se connecter avec {x}" +usernameInvalidFormat: "Vous pouvez utiliser des lettres, des nombres et _" +tooShort: "Est trop court" +tooLong: "Est trop long" +weakPassword: "Faible mot de passe" +normalPassword: "Bon mot de passe" +strongPassword: "Fort mot de passe" +passwordMatched: "Combinaison correcte !" +passwordNotMatched: "Ne correspond pas" +signinWith: "Connectez-vous avec {x}" signinFailed: "Échec d’authentification. Veuillez vérifier que votre nom d’utilisateur et mot de passe sont corrects." tapSecurityKey: "Appuyez sur votre clé de sécurité" or: "OU" -language: "Langue" uiLanguage: "Langue d’affichage de l’interface" groupInvited: "Invité au groupe" aboutX: "À propos de {x}" useOsNativeEmojis: "Utiliser les émojis natifs du système" youHaveNoGroups: "Vous n’avez aucun groupe" -joinOrCreateGroup: "Vous pouvez être invité·e à rejoindre des groupes existants ou créer votre propre nouveau groupe." +joinOrCreateGroup: "Soyez invité à rejoindre les groupes ou vous pouvez créer votre propre groupe." noHistory: "Pas d'historique" -signinHistory: "Historique de connexion" disableAnimatedMfm: "Désactiver MFM ayant des animations" -doing: "En cours..." -category: "Catégorie" +doing: "Attends une seconde" +category: "Catégories" tags: "Étiquettes" docSource: "Source de ce document" -createAccount: "Créer un compte" -existingAccount: "Compte existant" -regenerate: "Générer à nouveau" +createAccount: "Créer compte" +existingAcount: "Comptes existants" +regenerate: "Régénérer" fontSize: "Taille de la police" noFollowRequests: "Vous n’avez aucune demande d’abonnement en attente" openImageInNewTab: "Ouvrir les images dans un nouvel onglet" @@ -466,16 +449,16 @@ dashboard: "Tableau de bord" local: "Local" remote: "Distant" total: "Total" -weekOverWeekChanges: "Hebdomadaire" -dayOverDayChanges: "Journalier" -appearance: "Apparence" +weekOverWeekChanges: "Diff hebdo" +dayOverDayChanges: "Diff quotidien" +appearance: "Aspect" clientSettings: "Paramètres du client" accountSettings: "Paramètres du compte" promotion: "Promu" promote: "Promouvoir" numberOfDays: "Nombre de jours" hideThisNote: "Masquer cette note" -showFeaturedNotesInTimeline: "Afficher les notes des Tendances dans le fil d'actualité" +showFeaturedNotesInTimeline: "Afficher les notes en vedette dans fil d'actualité" objectStorage: "Stockage d'objets" useObjectStorage: "Utiliser le stockage d'objets" objectStorageBaseUrl: "Base URL" @@ -486,55 +469,51 @@ objectStoragePrefix: "Prefix" objectStoragePrefixDesc: "Les fichiers seront stockés sous le répertoire de ce préfixe." objectStorageEndpoint: "Endpoint" objectStorageEndpointDesc: "Laissez ce champ vide si vous utilisez AWS S3, sinon spécifiez le point de terminaison comme '' ou ': ' selon le guide de service que vous allez utiliser." -objectStorageRegion: "Région" +objectStorageRegion: "Region" objectStorageRegionDesc: "Spécifiez une région comme 'xx-east-1'. Si votre service ne fait pas de distinction entre les régions, laissez-le vide ou remplissez 'us-east-1'." objectStorageUseSSL: "Utiliser SSL" -objectStorageUseSSLDesc: "Désactivez cette option si vous n'utilisez pas HTTPS pour la connexion API" +objectStorageUseSSLDesc: "Désactivez-le si vous n'utilisez pas HTTPS pour la connexion API" objectStorageUseProxy: "Se connecter via proxy" -objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API" -objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi" -serverLogs: "Journal du serveur" +objectStorageUseProxyDesc: "Désactivez-le si vous n'utilisez pas Proxy pour la connexion de stockage d'objets" +serverLogs: "Journaux serveur" deleteAll: "Supprimer tout" -showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité" -newNoteRecived: "Voir les nouvelles notes" +showFixedPostForm: "Afficher le formulaire en haut du fil d'actualité" +newNoteRecived: "Vous avez une nouvelle note" sounds: "Sons" listen: "Écouter" none: "Rien" -showInPage: "Afficher dans la page" popout: "Fenêtre contextuelle" volume: "Volume" -masterVolume: "Volume principal" details: "Détails" chooseEmoji: "Choisissez un émoji" unableToProcess: "L’opération n’a pas pu être complétée." -recentUsed: "Utilisé récemment" +recentUsed: "Récemment utilisé" install: "Installation" uninstall: "Désinstaller" -installedApps: "Applications installées" +installedApps: "Applications Autorisées" nothing: "Il n'y a rien à voir ici" -installedDate: "Date d'installation" +installedDate: "Autorisé" lastUsedDate: "Dernière utilisation" state: "État" sort: "Trier" ascendingOrder: "Ascendant" descendingOrder: "Descendant" -scratchpad: "ScratchPad" -scratchpadDescription: "ScratchPad fournit un environnement expérimental pour AiScript. Vous pouvez vérifier la rédaction de votre code, sa bonne exécution et le résultat de son interaction avec Misskey." +scratchpad: "Scratch pad" +scratchpadDescription: "Scratchpad fournit un environnement expérimental pour AiScript. Vous pouvez écrire, exécuter et vérifier les résultats qui interagissent avec Misskey." output: "Sortie" script: "Script" disablePagesScript: "Désactiver AiScript sur les Pages" updateRemoteUser: "Mettre à jour les informations de l’utilisateur·rice distant·e" deleteAllFiles: "Supprimer tous les fichiers" -deleteAllFilesConfirm: "Êtes-vous sûr·e de vouloir supprimer tous les fichiers ?" +deleteAllFilesConfirm: "Êtes vous surs de vouloir supprimer tous les fichiers ?" removeAllFollowing: "Retenir tous les abonnements" removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action uniquement si l’instance n’existe plus." -userSuspended: "Cet·te utilisateur·rice a été suspendu·e." -userSilenced: "Cette utilisateur·trice a été mis·e en sourdine." -yourAccountSuspendedTitle: "Ce compte est suspendu" -yourAccountSuspendedDescription: "Ce compte est suspendu car vous avez enfreint les conditions d'utilisation de l'instance, ou pour un motif similaire. Si vous souhaitez connaître en détail les raisons de cette suspension, renseignez-vous auprès de l'administrateur·rice de votre instance. Merci de ne pas créer de nouveau compte." -menu: "Menu" +userSuspended: "Cette utilisateur·trice a été suspendue." +userSilenced: "Cette utilisateur·trice a été masquer." +sidebar: "Barre latérale" divider: "Séparateur" -addItem: "Ajouter un élément" +addItem: "Ajouter élément" +rooms: "Chambre" relays: "Relais" addRelay: "Ajouter un relais" inboxUrl: "Inbox URL" @@ -546,26 +525,21 @@ enableInfiniteScroll: "Activer le défilement infini" visibility: "Visibilité" poll: "Sondage" useCw: "Masquer le contenu" -enablePlayer: "Ouvrir dans le lecteur vidéo" -disablePlayer: "Fermer le lecteur vidéo" +enablePlayer: "Activer le lecteur vidéo" +disablePlayer: "Désactiver le lecteur vidéo" expandTweet: "Étendre le tweet" themeEditor: "Éditeur de thèmes" description: "Description" -describeFile: "Ajouter une description d'image" -enterFileDescription: "Saisissez une description" author: "Auteur·rice" leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer ?" manage: "Gestion" plugins: "Extensions" +pluginInstallWarn: "N’installez que des extensions provenant de sources de confiance." deck: "Deck" undeck: "Quitter le deck" useBlurEffectForModal: "Utiliser un effet de flou pour les modals" -useFullReactionPicker: "Utiliser l'intégralité du panneau de réactions" width: "Largeur" height: "Hauteur" -large: "Grand" -medium: "Moyen" -small: "Petit" generateAccessToken: "Générer un jeton d'accès" permission: "Autorisations " enableAll: "Tout activer" @@ -575,13 +549,12 @@ pluginTokenRequestedDescription: "Ce plugin pourra utiliser les autorisations d notificationType: "Type de notifications" edit: "Editer" useStarForReactionFallback: "Utiliser ★ comme alternative si l’émoji de réaction est inconnu" -emailServer: "Serveur mail" +emailConfig: "Configuration du serveur email" enableEmail: "Activer la distribution de courriel" emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation de votre mot de passe en cas d’oubli." -email: "E-mail " -emailAddress: "Adresses e-mail" +email: "Adresse de courrier électronique" smtpConfig: "Paramètres du serveur SMTP" -smtpHost: "Serveur distant" +smtpHost: "Hôte" smtpPort: "Port" smtpUser: "Nom d’utilisateur·rice" smtpPass: "Mot de passe" @@ -590,8 +563,6 @@ smtpSecure: "Utiliser SSL/TLS implicitement dans les connexions SMTP" smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé" testEmail: "Tester la distribution de courriel" wordMute: "Filtre de mots" -regexpError: "Erreur d’expression régulière" -instanceMute: "Instance en sourdine" userSaysSomething: "{name} a dit quelque chose" makeActive: "Activer" display: "Affichage" @@ -606,414 +577,46 @@ create: "Créer" notificationSetting: "Paramètres des notifications " notificationSettingDesc: "Sélectionnez le type de notification à afficher" useGlobalSetting: "Utiliser paramètre général" -useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votre compte seront utilisés. S'il est désactivé, des configurations individuelles peuvent être effectuées." other: "Autre" regenerateLoginToken: "Régénérer le jeton de connexion" -regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. " -setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant par des espaces." +setMultipleBySeparatingWithSpace: "Vous pouvez définir plus d’un, séparés par des espaces." fileIdOrUrl: "ID du fichier ou URL" -behavior: "Comportement" -sample: "Exemple" -abuseReports: "Signalements" -reportAbuse: "Signaler" -reportAbuseOf: "Signaler {name}" -fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit d'une note précise, veuillez en donner le lien." -abuseReported: "Le rapport est envoyé. Merci." -reporter: "Signalé par" -reporteeOrigin: "Origine du signalement" -reporterOrigin: "Signalé par" -forwardReport: "Transférer le signalement à l’instance distante" -send: "Envoyer" -abuseMarkAsResolved: "Marquer le signalement comme résolu" -openInNewTab: "Ouvrir dans un nouvel onglet" -openInSideView: "Ouvrir en vue latérale" -defaultNavigationBehaviour: "Navigation par défaut" -editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager votre compte." -instanceTicker: "Nom de l'instance d'origine des notes" -waitingFor: "En attente de {x}" +chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture" random: "Aléatoire" -system: "Système" -switchUi: "Modifier l'interface utilisateur" -desktop: "Bureau" -clip: "Clip" -createNew: "Créer nouveau" -optional: "Facultatif" -createNewClip: "Créer un nouveau clip" public: "Public" -i18nInfo: "Misskey est traduit dans différentes langues par des bénévoles. Vous pouvez contribuer à {link}." -manageAccessTokens: "Gérer les jetons d'accès" -accountInfo: " Informations du compte " -notesCount: "Nombre de notes" -repliesCount: "Nombre de réponses envoyées" -renotesCount: "Nombre de notes que vous avez renotées" -repliedCount: "Nombre de réponses reçues" -renotedCount: "Nombre de vos notes renotées" -followingCount: "Nombre de comptes suivis" -followersCount: "Nombre d'abonnés" -sentReactionsCount: "Nombre de réactions envoyées" -receivedReactionsCount: "Nombre de réactions reçues" -pollVotesCount: "Nombre de votes envoyés" -pollVotedCount: "Nombre de votes reçus" -yes: "Oui" -no: "Non" -driveFilesCount: "Nombre de fichiers dans le Drive" -driveUsage: "Utilisation du Drive" -noCrawle: "Refuser l'indexation par les robots" -noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page de profil, vos notes, vos pages, etc." -lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre note sur \"Abonné-e-s\", vos notes sont visibles par tous, même si vous exigez que les demandes d'abonnement soient approuvées manuellement." -alwaysMarkSensitive: "Marquer les médias comme contenu sensible par défaut" -loadRawImages: "Affichage complet des images jointes au lieu des vignettes" -disableShowingAnimatedImages: "Désactiver l'animation des images" -verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au lien pour compléter la vérification." -notSet: "Non défini" -emailVerified: "Votre adresse e-mail a été vérifiée." -noteFavoritesCount: "Nombre de notes dans les favoris" -pageLikesCount: "Nombre de pages aimées" -pageLikedCount: "Nombre de vos pages aimées" -contact: "Contact" -useSystemFont: "Utiliser la police par défaut du système" -clips: "Clips" -experimentalFeatures: "Fonctionnalités expérimentales" -developer: "Développeur" -makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"." -makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra pas sur la page \"Découvrir\"." -showGapBetweenNotesInTimeline: "Afficher un écart entre les notes sur la Timeline" -duplicate: "Duliquer" -left: "Gauche" -center: "Centrer" -wide: "Large" -narrow: "Condensé" -reloadToApplySetting: "Vos paramètres seront appliqués lorsque vous rechargerez la page. Souhaitez-vous recharger ?" -needReloadToApply: "Ce paramètre s'appliquera après un rechargement." -showTitlebar: "Afficher la barre de titre" -clearCache: "Vider le cache" -onlineUsersCount: "{n} utilisateur(s) en ligne" -nUsers: "{n} utilisateur·rice·s" -nNotes: "{n} Notes" -sendErrorReports: "Envoyer les rapports d’erreur" -sendErrorReportsDescription: "Si vous activez l'envoi des rapports d'erreur, vous contribuerez à améliorer la qualité de Misskey grâce au partage d'informations détaillées sur les erreurs lorsqu'un problème survient.\nCela inclut des informations telles que la version de votre système d'exploitation, le type de navigateur que vous utilisez, votre historique d'activité, etc." -myTheme: "Mes thèmes" -backgroundColor: "Arrière-plan" -accentColor: "Accentuation" -textColor: "Texte" -saveAs: "Enregistrer sous ..." -advanced: "Avancé" -value: "Valeur" -createdAt: "Date de création" -updatedAt: "Mis à jour le" -saveConfirm: "Voulez-vous sauvegarder les modifications?" -deleteConfirm: "Confirmez-vous la suppression?" -invalidValue: "Cette valeur est invalide." -registry: "Registre" -closeAccount: "Fermer le compte" -currentVersion: "Version actuelle" -latestVersion: "Dernière version " -youAreRunningUpToDateClient: "Votre client est à jour." -newVersionOfClientAvailable: "Une nouvelle version de votre client est disponible." -usageAmount: "Utilisation" -capacity: "Capacité " -inUse: "utilisé" -editCode: "Modifier le code" -apply: "Appliquer" -receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance" -emailNotification: "Notifications par mail" -publish: "Public" -inChannelSearch: "Chercher dans le canal" -useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions" -typingUsers: "{users} est en train d'écrire" -jumpToSpecifiedDate: "Se rendre à la date" -showingPastTimeline: "Un fil ancien est affiché" -clear: "Effacer" -markAllAsRead: "Tout marquer comme lu" -goBack: "Retour" -unlikeConfirm: "Êtes-vous sûr·e de ne plus vouloir aimer cette publication ?" -fullView: "Plein écran" -quitFullView: "Quitter le plein écran" -addDescription: "Ajouter une description" -userPagePinTip: "Vous pouvez afficher des notes ici en sélectionnant l'option « Épingler au profil » dans le menu de chaque note." -notSpecifiedMentionWarning: "Vous avez mentionné des utilisateur·rice·s qui ne font pas partie de la liste des destinataires" -info: "Informations" -userInfo: "Informations sur l'utilisateur" -unknown: "Inconnu" -onlineStatus: "Statut" -hideOnlineStatus: "Se rendre invisible" -hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances de certaines fonctionnalités, telles que la Recherche." -online: "En ligne" -active: "Actif·ve" -offline: "Hors ligne" -notRecommended: "Déconseillé" -botProtection: "Protection contre les bots" -instanceBlocking: "Instances bloquées" -selectAccount: "Sélectionner un compte" -switchAccount: "Changer de compte" -enabled: "Activé" -disabled: "Désactivé" -quickAction: "Actions rapides" -user: "Utilisateur·rice·s" -administration: "Gestion" -accounts: "Comptes" -switch: "Remplacer" -noMaintainerInformationWarning: "Informations administrateur non configurées." -noBotProtectionWarning: "La protection contre les bots n'est pas configurée." -configure: "Configurer" -postToGallery: "Publier dans la galerie" -gallery: "Galerie" -recentPosts: "Les plus récentes" -popularPosts: "Les plus consultées" -shareWithNote: "Partager dans une note" -ads: "Publicité" -expiration: "Échéance" -memo: "Pense-bête" -priority: "Priorité" -high: "Haute" -middle: "Moyen" -low: "Basse" -emailNotConfiguredWarning: "Vous n'avez pas configuré d'adresse e-mail." -ratio: "Ratio" -previewNoteText: "Voir l'aperçu" -customCss: "CSS personnalisé" -customCssWarn: "Utilisez cette fonctionnalité uniquement si vous savez exactement ce que vous faites. Une configuration inadaptée peut empêcher le client de s'exécuter normalement." -global: "Global" -squareAvatars: "Avatars carrés" -sent: "Envoyer" -received: "Reçu" -searchResult: "Résultats de la recherche" -hashtags: "Hashtags" -troubleshooting: "Résolution de problèmes" -useBlurEffect: "Utiliser des effets de flou dans l'interface" -learnMore: "Plus d'informations" -misskeyUpdated: "Misskey a été mis à jour !" -whatIsNew: "Voir les derniers changements" -translate: "Traduire" -translatedFrom: "Traduit depuis {x}" -accountDeletionInProgress: "La suppression de votre compte est en cours" -usernameInfo: "C'est un nom qui identifie votre compte sur l'instance de manière unique. Vous pouvez utiliser des lettres de l'alphabet (minuscules et majuscules), des chiffres (de 0 à 9), ou bien le tiret « _ ». Vous ne pourrez pas modifier votre nom d'utilisateur·rice par la suite." -aiChanMode: "Mode Ai" -keepCw: "Garder le CW" -pubSub: "Comptes Pub/Sub" -lastCommunication: "Dernière communication" -resolved: "Résolu" -unresolved: "En attente" -breakFollow: "Ne plus suivre" -itsOn: "Activé" -itsOff: "Désactivé" -emailRequiredForSignup: "Une adresse e-mail est nécessaire pour créer un compte" -unread: "Non lu" -filter: "Filtre" -controlPanel: "Panneau de contrôle" -manageAccounts: "Gérer les comptes" -makeReactionsPublic: "Rendre les réactions publiques" -makeReactionsPublicDescription: "Ceci rendra la liste de toutes vos réactions données publique." -classic: "Classique" -muteThread: "Masquer cette discussion" -unmuteThread: "Ne plus masquer le fil" -ffVisibility: "Visibilité des abonnés/abonnements" -ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu suis et les personnes qui te suivent." -continueThread: "Afficher la suite du fil" -deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?" -incorrectPassword: "Le mot de passe est incorrect." -voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?" -hide: "Masquer" -leaveGroup: "Quitter le groupe" -leaveGroupConfirm: "Êtes vous sûr de vouloir quitter \"{name}\" ?" -useDrawerReactionPickerForMobile: "Afficher le sélecteur de réactions en tant que panneau sur mobile" -welcomeBackWithName: "Heureux de vous revoir, {name}" -clickToFinishEmailVerification: "Veuillez cliquer sur [{ok}] afin de compléter la vérification par courriel." -overridedDeviceKind: "Type d’appareil" -smartphone: "Smartphone" -tablet: "Tablette" -auto: "Automatique" -themeColor: "Couleur du thème" -size: "Taille" -numberOfColumn: "Nombre de colonnes" -searchByGoogle: "Google" -instanceDefaultLightTheme: "Thème clair par défaut sur toute l’instance" -instanceDefaultDarkTheme: "Thème sombre par défaut sur toute l’instance" -instanceDefaultThemeDescription: "Saisissez le code du thème en format objet." -mutePeriod: "Durée de mise en sourdine" -indefinitely: "Illimité" -tenMinutes: "10 minutes" -oneHour: "1 heure" -oneDay: "1 jour" -oneWeek: "1 semaine" -rateLimitExceeded: "Limite de taux dépassée" -cropImage: "Recadrer l'image" -cropImageAsk: "Voulez-vous recadrer cette image ?" -file: "Fichiers" -reverse: "Inverser" -colored: "Coloré" -label: "Étiquette" -localOnly: "Local seulement" -account: "Comptes" -_emailUnavailable: - used: "Non disponible" - format: "Le format de cette adresse de courriel est invalide" - disposable: "Les adresses e-mail jetables ne peuvent pas être utilisées" - mx: "Ce serveur de courriels est invalide" - smtp: "Ce serveur de courriels ne répond pas" -_ffVisibility: - public: "Public" - followers: "Visible uniquement pour les abonné·e·s" - private: "Privé" -_signup: - almostThere: "Bientôt fini" - emailAddressInfo: "Insérez votre adresse e-mail." - emailSent: "Un courriel de confirmation vient d'être envoyé à l'adresse que vous avez renseignée ({email}). Cliquez sur le lien contenu dans le message pour terminer la création de votre compte." -_accountDelete: - accountDelete: "Supprimer le compte" - mayTakeTime: "La suppression de compte nécessitant beaucoup de ressources, l'exécution du processus peut prendre du temps, en fonction de la quantité de contenus que vous avez créés et du nombre de fichiers que vous avez téléversés." - sendEmail: "Une fois la suppression de votre compte effectuée, un courriel sera envoyé à l'adresse que vous aviez enregistrée." - requestAccountDelete: "Demander la suppression de votre compte" - started: "La procédure de suppression a commencé." - inProgress: "Suppression en cours" -_ad: - back: "Retour" - reduceFrequencyOfThisAd: "Voir cette publicité moins souvent" -_forgotPassword: - enterEmail: "Entrez ici l'adresse e-mail que vous avez enregistrée pour votre compte. Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette adresse." - ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice de votre instance." - contactAdmin: "Cette instance ne permettant pas l'utilisation d'adresses e-mail, prenez contact avec l'administrateur·rice pour procéder à la réinitialisation de votre mot de passe." -_gallery: - my: "Mes publications" - liked: " Publications que j'ai aimées" - like: "J'aime" - unlike: "Je n’aime pas" -_email: - _follow: - title: "Vous suit" - _receiveFollowRequest: - title: "Vous avez reçu une demande de suivi" -_plugin: - install: "Installation de plugin" - installWarn: "N’installez que des extensions provenant de sources de confiance." - manage: "Gestion des plugins" -_registry: - scope: "Portée" - key: "Clé " - keys: "Clé " - domain: "Domaine" - createKey: "Créer une clé" -_aboutMisskey: - about: "Misskey est un logiciel libre et ouvert, développé par syuilo depuis 2014." - contributors: "Principaux contributeurs" - allContributors: "Tous les contributeurs" - source: "Code source" - translation: "Traduire Misskey" - donate: "Soutenir Misskey" - morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰" - patrons: "Contributeurs" -_nsfw: - respect: "Cacher les médias marqués comme contenu sensible" - ignore: "Afficher les médias sensibles" - force: "Cacher tous les médias" _mfm: - cheatSheet: "Antisèche MFM" - intro: "MFM est un langage Markdown spécifique utilisable ici et là dans Misskey. Vous pouvez vérifier ici les structures utilisables avec MFM." - dummy: "La Fédiverse s'agrandit avec Misskey" mention: "Mentionner" - mentionDescription: "Vous pouvez afficher un utilisateur spécifique en indiquant une arobase suivie d'un nom d'utilisateur" hashtag: "Hashtags" - hashtagDescription: "Vous pouvez afficher un mot-dièse en utilisant un croisillon et du texte" - url: "URL" - urlDescription: "L'adresse web peut être affichée." link: "Lien" - linkDescription: "Une partie précise d'une phrase peut être liée à l'adresse web." - bold: "Gras" - boldDescription: "Il est possible de mettre le texte en exergue en le mettant en gras." - small: "Diminuer l'emphase" - smallDescription: "Le contenu peut être affiché en petit et fin." - center: "Centrer" - centerDescription: "Le contenu peut être centré" - inlineCode: "Code (inline)" - inlineCodeDescription: "Coloration syntaxique des lignes de code." - blockCode: "Bloc de code" - blockCodeDescription: "Coloration syntaxique des lignes de code pour les blocs multi-lignes." - inlineMath: "Formule mathématique (inline)" - inlineMathDescription: "Afficher les formules mathématiques (KaTeX)." - blockMath: "Formule mathématique (bloc)" - blockMathDescription: "Afficher les formules mathématiques (KaTeX) multi-lignes dans un bloc." + center: "Centrée" quote: "Citer" - quoteDescription: "Affiche le contenu sous forme de citation." emoji: "Émojis personnalisés" - emojiDescription: "Entourez le nom de l'émoji personnalisé de deux points pour l'afficher." search: "Rechercher" - searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi." - flip: "Inverser" - flipDescription: "Rotation verticale ou horizontale du contenu" - jelly: "Animation (Gelée)" - jellyDescription: "Donne une animation d'étirement." - tada: "Animation (Tada)" - tadaDescription: "Donne une animation qui donne une impression de \"Tada !\"" - jump: "Animation (Saut)" - jumpDescription: "Donne une animation qui saute." - bounce: "Animation (Rebond)" - bounceDescription: "Donne une animation de rebondissement." - shake: "Animation (Secousse)" - shakeDescription: "Donne une animation tremblante." - twitch: "Animation (Tremblement)" - twitchDescription: "Donne une animation de tremblement intense." - spin: "Animation (Rotation)" - spinDescription: "Donne une animation de rotation." - x2: "Grand" - x2Description: "Afficher le contenu en grand." - x3: "Très grand" - x3Description: "Afficher le contenu en très grand." - x4: "Plus grand" - x4Description: "Afficher le contenu en plus grand." - blur: "Flou" - blurDescription: "Le contenu peut être flouté ; il sera visible en le survolant avec le curseur." - font: "Police de caractères" - fontDescription: "Il est possible de choisir la police." - rainbow: "Arc-en-ciel" - rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel." - sparkle: "Paillettes" - sparkleDescription: "Ajoute un effet scintillant au contenu." - rotate: "Pivoter" -_instanceTicker: - none: "Cacher " - remote: "Montrer pour les utilisateur·ice·s distant·e·s" - always: "Toujours afficher" +_reversi: + total: "Total" _serverDisconnectedBehavior: reload: "Rechargement automatique" - dialog: "Ouvrir une boîte de dialogue pour l'avertissement" - quiet: "Afficher un avertissement discret" _channel: create: "Créer un canal" edit: "Éditer le canal" - setBanner: "Sélectionner la bannière" removeBanner: "Supprimer la bannière" featured: "Tendances" - owned: "Mes canaux" - following: "Abonné·e" - usersCount: "{n} Participant·e·s" + usersCount: "{n} Participants" notesCount: "{n} Notes" -_menuDisplay: - sideFull: "Latéral" - sideIcon: "Latéral (icônes)" - top: "Haut de page" +_sidebar: + full: "Complet" + icon: "Avatar" hide: "Masquer" _wordMute: - muteWords: "Mots à filtrer" + muteWords: "Mot à mettre en sourdine" muteWordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR." - muteWordsDescription2: "Pour utiliser des expressions régulières (regex), mettez les mots-clés entre barres obliques." - softDescription: "Masquez les notes de votre fil selon les paramètres que vous définissez." - hardDescription: "Empêchez votre fil de charger les notes selon les paramètres que vous définissez. Cette action est irréversible : si vous modifiez ces paramètres plus tard, les notes précédemment filtrées ne seront pas récupérées." - soft: "Doux" - hard: "Strict" - mutedNotes: "Notes filtrées" -_instanceMute: - instanceMuteDescription2: "Séparer avec de nouvelles lignes" - title: "Masque les notes venant des instances listées." - heading: "Instances à mettre en sourdine" + mutedNotes: "Notes mises en sourdine" _theme: explore: "Explorer les thèmes" install: "Installer un thème" manage: "Gestion des thèmes" code: "Code du thème" - description: "Description" installed: "{name} a été installé" - installedThemes: "Thèmes installés" - builtinThemes: "Thèmes intégrés" alreadyInstalled: "Ce thème est déjà installé" invalid: "Le format du thème n'est pas valide" make: "Créer un thème" @@ -1022,21 +625,13 @@ _theme: constant: "Constante" defaultValue: "Valeur par défaut" color: "Couleur" - refProp: "Appeler une propriété" - refConst: "Appeler une constante" key: "Clé " func: "Fonction" - funcKind: "Type de fonction" argument: "Argument" - basedProp: "Nom de la propriété référencée" alpha: "Transparence" - darken: "Sombre" - lighten: "Clair" - inputConstantName: "Insérez un nom de constante" + darken: "Assombrir" importInfo: "Vous pouvez importer un thème vers l’éditeur de thèmes en saisissant son code ici." - deleteConstantConfirm: "Êtes-vous sûr·e de vouloir supprimer la constante {const} ?" keys: - accent: "Accentuation" bg: "Arrière-plan" fg: "Texte" focus: "Mise au point" @@ -1046,48 +641,25 @@ _theme: header: "Entête" navBg: "Fond de la barre latérale" navFg: "Texte de la barre latérale" - navHoverFg: "Texte de la barre latérale (survolé)" - navActive: "Texte de la barre latérale (actif)" - navIndicator: "Indicateur de barre latérale" link: "Lien" hashtag: "Hashtags" mention: "Mentionner" mentionMe: "Mentions (Moi)" - renote: "Renoter" - modalBg: "Modal d'arrière-plan" + renote: "Renote" divider: "Séparateur" - scrollbarHandle: "Poignée de la barre de navigation" - scrollbarHandleHover: "Poignée de la barre de navigation (survolée)" - dateLabelFg: "Texte de l'étiquette de la date" - infoBg: "Arrière-plan pour les informations" - infoFg: "Texte d'information" - infoWarnBg: "Arrière-plan des avertissements" infoWarnFg: "Texte d’avertissement" cwBg: "Arrière-plan du CW" - cwFg: "Texte du bouton CW" - cwHoverBg: "Arrière-plan du bouton CW (survolé)" - toastBg: "Arrière-plan de la bulle de notification" - toastFg: "Texte de la bulle de notification" - buttonBg: "Arrière-plan du bouton" - buttonHoverBg: "Arrière-plan du bouton (survolé)" - inputBorder: "Cadre de la zone de texte" - listItemHoverBg: "Arrière-plan d'item de liste (survolé)" - driveFolderBg: "Arrière-plan du dossier de disque" - wallpaperOverlay: "Superposition de fond d'écran" badge: "Badge" messageBg: "Arrière plan de la discussion" - accentDarken: "Plus sombre" - accentLighten: "Plus clair" - fgHighlighted: "Texte mis en évidence" _sfx: note: "Nouvelle note" noteMy: "Ma note" notification: "Notifications" chat: "Discuter" - chatBg: "Discussion (arrière-plan)" + chatBg: "Discuter (De fond)" antenna: "Réception de l’antenne" - channel: "Notifications de canal" _ago: + unknown: "Inconnu" future: "Futur" justNow: "à l’instant" secondsAgo: "Il y a {n}s" @@ -1114,7 +686,7 @@ _tutorial: step3_3: "Remplissez le cadran et cliquez sur le bouton en haut à droite pour envoyer." step3_4: "Vous n’avez rien à dire ? Essayez d’écrire « J’ai commencé à utiliser Misskey »." step4_1: "Avez-vous publié votre première note ?" - step4_2: "Youpi ! Celle-ci est maintenant affichée sur votre fil d’actualité." + step4_2: "Youpi ! Celle-ci est maintenant affiché sur votre fil d’actualité." step5_1: "Maintenant, essayons de nous abonner à d’autres personnes afin de rendre votre fil plus vivant." step5_2: "La page {featured} affiche les notes en tendance sur la présente instance et {explore} vous permet de trouver des utilisateur·rice·s en tendance. Essayez de vous abonner aux gens que vous aimez !" step5_3: "Pour pouvoir suivre d’autres utilisateur·rice, cliquez sur leur avatar afin d’afficher la page du profil utilisateur ensuite appuyez sur le bouton « S’abonner »." @@ -1124,50 +696,45 @@ _tutorial: step6_3: "Pour ajouter une réaction à une note, cliquez sur le signe « + » de celle-ci et sélectionnez l’émoji souhaité." step7_1: "Félicitations ! Vous avez atteint la fin du tutoriel de base pour l’utilisation de Misskey." step7_2: "Si vous désirez en savoir plus sur Misskey, jetez un œil sur la section {help}." - step7_3: "Bon courage et amusez-vous bien sur Misskey ! 🚀" + step7_3: "Bon courage et amusez-vous bien sur Misskey 🚀" _2fa: - alreadyRegistered: "Configuration déjà achevée." + alreadyRegistered: "Cette étape à déjà été complétée" registerDevice: "Ajouter un nouvel appareil" - registerKey: "Enregistrer une clef" + registerKey: "S’inscrire la clé" step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil." step2: "Ensuite, scannez le code QR affiché sur l’écran." - step2Url: "Vous pouvez également saisir cette URL si vous utilisez un programme de bureau :" step3: "Entrez le jeton affiché sur votre application pour compléter la configuration." - step4: "À partir de maintenant, ce même jeton vous sera demandé à chacune de vos connexions." - securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion grâce à une clé de sécurité matérielle qui prend en charge FIDO2, ou bien en configurant l'authentification par empreinte digitale ou par code PIN sur votre appareil." + step4: "Lorsque vous vous connectez, entrez le jeton de la même manière." + securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion avec non seulement la clé de sécurité matérielle qui prend en charge FIDO2, mais également l'authentification par empreinte digitale ou PIN sur votre appareil." _permissions: "read:account": "Afficher les informations du compte" "write:account": "Mettre à jour les informations de votre compte" - "read:blocks": "Voir les comptes bloqués" - "write:blocks": "Gérer les comptes bloqués" + "read:blocks": "Voir les blocs" + "write:blocks": "Écrire des blocs" "read:drive": "Parcourir le Drive" "write:drive": "Écrire sur le Drive" "read:favorites": "Afficher les favoris" - "write:favorites": "Gérer les favoris" + "write:favorites": "Écrire des favoris" "read:following": "Voir les informations de vos abonnements" "write:following": "Abonnements/Se désabonner" - "read:messaging": "Voir vos discussions" - "write:messaging": "Gérer les discussions" - "read:mutes": "Voir les comptes masqués" - "write:mutes": "Gérer les comptes masqués" + "read:messaging": "Cherche à discuter" + "write:messaging": "Contrôler le discuter" + "read:mutes": "Voir les comptes muets" + "write:mutes": "Gérer les comptes muets" "write:notes": "Créer / supprimer des notes" "read:notifications": "Afficher les notifications" "write:notifications": "Gérer vos notifications" "read:reactions": "Lire les réactions" "write:reactions": "Gérer vos réactions" "write:votes": "Voter" - "read:pages": "Voir vos pages" - "write:pages": "Gérer les pages" - "read:page-likes": "Voir les mentions « J'aime » des pages" - "write:page-likes": "Gérer les mentions « J'aime » sur les pages" + "read:pages": "Afficher la page" + "write:pages": "Mettre à jour les Pages" + "read:page-likes": "Voir les favoris sur les Pages" + "write:page-likes": "Mettre à jour les favoris sur les Pages" "read:user-groups": "Voir les groupes d'utilisateur·rice·s" "write:user-groups": "Éditer les groupes des utilisateur·rice·s" "read:channels": "Lire les canaux" - "write:channels": "Gérer les canaux" - "read:gallery": "Voir la galerie" - "write:gallery": "Éditer la galerie" - "read:gallery-likes": "Voir les mentions « J'aime » dans la galerie" - "write:gallery-likes": "Gérer les mentions « J'aime » dans la galerie" + "write:channels": "Modifier les canaux" _auth: shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?" shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre compte?" @@ -1201,14 +768,7 @@ _widgets: photos: "Photos" digitalClock: "Horloge numérique" federation: "Fédération" - postForm: "Formulaire de publication" - slideshow: "Diaporama" - button: "Bouton" - onlineUsers: "Utilisateurs en ligne" - jobQueue: "File d’attente" - serverMetric: "Statistiques du serveur" - aiscript: "Console AiScript" - aichan: "Ai" + postForm: "Formulaire à publier" _cw: hide: "Masquer" show: "Afficher plus …" @@ -1229,7 +789,7 @@ _poll: votesCount: "{n} votes" totalVotes: "{n} votes au total" vote: "Voter" - showResult: "Voir résultats" + showResult: "Voir les résultats" voted: "Déjà voté" closed: "Terminé" remainingDays: "{d} jours, {h} heures restantes" @@ -1253,7 +813,7 @@ _postForm: channelPlaceholder: "Publier vers le canal" _placeholders: a: "Quoi de neuf ?" - b: "Il s'est passé quelque chose ?" + b: "Quoi de neuf ?" c: "Qu’avez-vous en tête ?" d: "Désirez-vous publier quelques mots ?" e: "Écrivez ici" @@ -1263,62 +823,117 @@ _profile: username: "Nom d’utilisateur·rice" description: "À propos de moi" youCanIncludeHashtags: "Vous pouvez également inclure des hashtags." - metadata: "Informations supplémentaires" - metadataEdit: "Éditer les informations supplémentaires" - metadataDescription: "Vous pouvez afficher jusqu'à quatre informations supplémentaires dans votre profil." + metadata: "Informations complémentaires" metadataLabel: "Étiquette" metadataContent: "Contenu" - changeAvatar: "Changer l'image de profil" - changeBanner: "Changer de bannière" _exportOrImport: allNotes: "Toutes les notes" followingList: "Abonnements" - muteList: "Comptes masqués" - blockingList: "Comptes bloqués" + muteList: "Mettre en sourdine" + blockingList: "Bloquer" userLists: "Listes" - excludeMutingUsers: "Exclure les utilisateur·rice·s mis en sourdine" - excludeInactiveUsers: "Exclure les utilisateur·rice·s inactifs" _charts: - federation: "Fédération" - apRequest: "Requêtes" + federationInstancesIncDec: "Variation du nombre des instances fédérées" + federationInstancesTotal: "Nombre total des instances fédérées" usersIncDec: "Variation du nombre d'utilisateur·rice·s" usersTotal: "Nombre des utilisateur·rice·s au total" - activeUsers: "Nombre d'utilisateurices actif·ve·s" + activeUsers: "Utilisateur·rice·s actif·ve·s" notesIncDec: "Variation du nombre des notes" - localNotesIncDec: "Variation du nombre de notes locales" - remoteNotesIncDec: "Variation du nombre de notes distantes" + localNotesIncDec: "Variation du nombre de notes local" + remoteNotesIncDec: "Variation du nombre d’notes distant" notesTotal: "Nombre total des notes" filesIncDec: "Variation du nombre de fichiers" - filesTotal: "Nombre total de fichiers" + filesTotal: "Nombre de fichiers au total" storageUsageIncDec: "Variation de l'utilisation du stockage" storageUsageTotal: "Utilisation totale du stockage" _instanceCharts: requests: "Requêtes" users: "Variation du nombre d'utilisateur·rice·s" - usersTotal: "Total cumulé du nombre d'utilisateur·rice·s" - notes: "Variation du nombre de notes" + usersTotal: "Nombre d'utilisateur·rice·s au total cumulé" + notes: "Variation du nombre des notes" notesTotal: "Nombre total cumulé des notes" - ff: "Variation des abonné·e·s / abonnements" - ffTotal: "Total cumulé du nombre d'abonné·e·s / abonnements" + ff: "Variation des abonné·e·s" + ffTotal: "Nombre d'abonné·e·s au total cumulé" cacheSize: "Variation de la taille du cache" - cacheSizeTotal: "Total cumulé de la taille du cache" + cacheSizeTotal: "La taille du cache au total cumulé" files: "Variation du nombre de fichiers" - filesTotal: "Total cumulé du nombre de fichiers" + filesTotal: "Nombre de fichiers au total cumulé" _timelines: home: "Principal" local: "Local" social: "Social" global: "Global" +_rooms: + roomOf: "Chambre de {user}" + addFurniture: "Placer des meubles" + translate: "Déplacer" + rotate: "Pivoter" + exit: "Retour" + remove: "Enlever" + clear: "Tout enlever" + clearConfirm: "Désirez-vous enlever tout les meubles de votre chambre ?" + leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous vraiment quitter ?" + chooseImage: "Sélectionnez une image" + roomType: "Type de chambre" + carpetColor: "Couleur du tapis" + _roomType: + default: "Par défaut" + washitsu: "Style japonnais" + _furnitures: + milk: "Lait en carton" + bed: "Lit" + low-table: "Table basse" + desk: "Bureau" + chair: "Chaise" + chair2: "Chaise 2" + fan: "Ventilateur" + pc: "Ordinateur" + plant: "Plante d’intérieur" + plant2: "Plante d’intérieur 2" + eraser: "Gomme" + pencil: "Crayon" + pudding: "Pudding" + cardboard-box: "Boîte en carton" + cardboard-box2: "Boîte en carton 2" + cardboard-box3: "Boîte en carton 3" + book: "Livre" + book2: "Livre 2" + piano: "Piano" + facial-tissue: "Mouchoirs en papier" + server: "Serveurs" + moon: "Lune" + corkboard: "Tableau en liège" + mousepad: "Tapis de souris" + monitor: "Écran de contrôle" + keyboard: "Clavier" + carpet-stripe: "Tapis (zébré)" + mat: "Tapis" + color-box: "Étagère" + wall-clock: "Horloge murale" + photoframe: "Cadre photo" + cube: "Cube" + tv: "Téléviseur" + pinguin: "Pingouin" + rubik-cube: "Cube de Rubik" + poster-h: "Affiche (horizontale)" + poster-v: "Affiche (verticale)" + sofa: "Canapé" + spiral: "Escaliers en spirale" + bin: "Corbeille" + cup-noodle: "Bol de nouilles" + holo-display: "Affichage holographique" + energy-drink: "Boisson énergétique" + doll-ai: "Poupée Ai" + banknote: "Billets de banque" _pages: newPage: "Créer une page" editPage: "Modifier une page" - readPage: "Affichage de la source en cours" + readPage: "Voir la source" created: "La page a été créée !" updated: "La page a été mise à jour !" - deleted: "La page a été supprimée" - pageSetting: "Paramètres de la Page" - nameAlreadyExists: "L'URL de page spécifiée existe déjà" - invalidNameTitle: "L'URL de page spécifiée n’est pas valide" + deleted: "La page a bien été supprimée" + nameAlreadyExists: "La URL de page spécifiée existe déjà" + invalidNameTitle: "La URL de la page spécifiée n’est pas valide" invalidNameText: "Assurez-vous qu’il n’est pas vide" editThisPage: "Éditer cette page" viewSource: "Afficher la source" @@ -1327,27 +942,26 @@ _pages: unlike: "Je n’aime pas" my: "Mes pages" liked: "Pages favorites" - featured: "Populaire" inspector: "Inspecteur" contents: "Contenu" content: "Bloc de page" variables: "Variables" title: "Titre" - url: "URL de la page" + url: "URL de page" summary: "Résumé de page" alignCenter: "Centrée" hideTitleWhenPinned: "Masquer le titre de la page lorsque celle-ci est épinglée au profil" font: "Police de caractères" fontSerif: "Serif" fontSansSerif: "Sans Serif" - eyeCatchingImageSet: "Définir une image attractive" - eyeCatchingImageRemove: "Supprimer l'image attractive" + eyeCatchingImageSet: "Définir une image attirante" + eyeCatchingImageRemove: "Supprimer une image attirante" chooseBlock: "Ajouter un bloc" selectType: "Choisir un type" enterVariableName: "Veuillez entrer un nom pour votre variable" - variableNameIsAlreadyUsed: "Ce nom de variable est déjà utilisé" + variableNameIsAlreadyUsed: "Cette variable est déjà utilisée" contentBlocks: "Contenu" - inputBlocks: "Blocs d'entrée" + inputBlocks: "Entrée" specialBlocks: "Spécial" blocks: text: "Texte" @@ -1358,17 +972,17 @@ _pages: if: "Si" _if: variable: "Variables" - post: "Formulaire de publication" + post: "Formulaire à publier" _post: text: "Contenu" attachCanvasImage: "Publier avec Toile comme image" canvasId: "Toile ID" - textInput: "Entrée textuelle" + textInput: "Entrée de textuelle" _textInput: name: "Nom de la variable" text: "Titre" default: "Valeur par défaut" - textareaInput: "Entrée textuelle multi-ligne" + textareaInput: "Entrée de textuelle multiligne" _textareaInput: name: "Nom de la variable" text: "Titre" @@ -1383,12 +997,7 @@ _pages: id: "Toile ID" width: "Largeur" height: "Hauteur" - note: "Note intégrée" - _note: - id: "Identifiant de la note" - idDescription: "Pour configurer la note, vous pouvez aussi coller ici l'URL correspondante." - detailed: "Afficher les détails" - switch: "Interrupteur" + switch: "Basculer" _switch: name: "Nom de la variable" text: "Titre" @@ -1397,16 +1006,16 @@ _pages: _counter: name: "Nom de la variable" text: "Titre" - inc: "Augmenter de" + inc: "Augmenter le chiffre" _button: text: "Titre" colored: "Coloré" - action: "Opération à effectuer lorsque le bouton est pressé" + action: "L'opération lorsque le bouton sera pressé" _action: dialog: "Afficher une fenêtre de dialogue" _dialog: content: "Contenu" - resetRandom: "Réinitialiser un nombre aléatoire" + resetRandom: "Réinitialiser le nombre aléatoire" pushEvent: "Envoyer un évènement" _pushEvent: event: "Nom de l’évènement" @@ -1420,7 +1029,7 @@ _pages: _radioButton: name: "Nom de la variable" title: "Titre" - values: "Liste des choix (un par ligne)" + values: "Choix séparés par des sauts de ligne" default: "Valeur par défaut" script: categories: @@ -1436,7 +1045,7 @@ _pages: list: "Listes" blocks: text: "Texte" - multiLineText: "Texte (multi-ligne)" + multiLineText: "Texte (Multi-lignes)" textList: "Liste de texte" _textList: info: "Veuillez séparer chaque entrée avec un saut de ligne" @@ -1479,10 +1088,10 @@ _pages: _mod: arg1: "A" arg2: "B" - round: "Arrondir les décimales" + round: "Décimal rond" _round: arg1: "Numérique" - eq: "A et B sont égaux" + eq: "A et B sont équivalents" _eq: arg1: "A" arg2: "B" @@ -1498,7 +1107,7 @@ _pages: _or: arg1: "A" arg2: "B" - lt: "A est inférieur à B" + lt: "A est plus petit que B" _lt: arg1: "A" arg2: "B" @@ -1506,7 +1115,7 @@ _pages: _gt: arg1: "A" arg2: "B" - ltEq: "A est inférieur ou égal à B" + ltEq: "A est plus petit ou égal à B" _ltEq: arg1: "A" arg2: "B" @@ -1572,7 +1181,7 @@ _pages: numberToString: "Convertir du numérique en texte" _numberToString: arg1: "Numérique" - splitStrByLine: "Séparer le texte par des sauts de lignes" + splitStrByLine: "Séparer le texte par lignes" _splitStrByLine: arg1: "Texte" ref: "Variables" @@ -1580,7 +1189,7 @@ _pages: fn: "Fonction" _fn: slots: "Slots" - slots-info: "Veuillez insérer un seul slot par ligne" + slots-info: "Veuillez délimiter chaque slot par un saut de ligne" arg1: "Sortie" for: "Répéter" _for: @@ -1614,39 +1223,25 @@ _notification: youWereFollowed: "Vous suit" youReceivedFollowRequest: "Vous avez reçu une demande d’abonnement" yourFollowRequestAccepted: "Votre demande d’abonnement a été accepté" - youWereInvitedToGroup: "Invité·e au groupe" - pollEnded: "Les résultats du sondage sont disponibles" - emptyPushNotificationMessage: "Les notifications push ont été mises à jour" + youWereInvitedToGroup: "Invité au groupe" _types: all: "Toutes" - follow: "Nouvel·le abonné·e" - mention: "Mentions" + follow: "Abonnements" + mention: "Mentionner" reply: "Réponses" - renote: "Renotes" - quote: "Citations" + renote: "Renote" + quote: "Citer" reaction: "Réactions" - pollVote: "Votes dans des sondages" - receiveFollowRequest: "Demande d'abonnement reçue" - followRequestAccepted: "Demande d'abonnement acceptée" - groupInvited: "Invitation à un groupe" + groupInvited: "Invité aux groupes" app: "Notifications provenant des apps" - _actions: - followBack: "Suivre" - reply: "Répondre" - renote: "Renoter" _deck: alwaysShowMainColumn: "Toujours afficher la colonne principale" columnAlign: "Aligner les colonnes" addColumn: "Ajouter une colonne" swapLeft: "Déplacer à gauche" swapRight: "Déplacer à droite" - swapUp: "Déplacer vers le haut" - swapDown: "Déplacer vers le bas" stackLeft: "Empiler à gauche" - popRight: "Extraire à droite" - profile: "Profil" _columns: - main: "Principale" widgets: "Widgets" notifications: "Notifications" tl: "Fil" diff --git a/locales/hr-HR.yml b/locales/hr-HR.yml deleted file mode 100644 index ed97d539c..000000000 --- a/locales/hr-HR.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/locales/ht-HT.yml b/locales/ht-HT.yml deleted file mode 100644 index ed97d539c..000000000 --- a/locales/ht-HT.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/locales/id-ID.yml b/locales/id-ID.yml deleted file mode 100644 index dc214f4ea..000000000 --- a/locales/id-ID.yml +++ /dev/null @@ -1,1668 +0,0 @@ ---- -_lang_: "Bahasa Indonesia" -headlineMisskey: "Jaringan terhubung melalui catatan" -introMisskey: "Selamat datang! Misskey adalah perangkat mikroblog tercatu bersifat sumber terbuka.\nMulailah menuliskan catatan, bagikan peristiwa terkini, serta ceritakan segala tentangmu.📡\nTunjukkan juga reaksimu pada catatan pengguna lain.👍\nMari jelajahi dunia baru🚀" -monthAndDay: "{day} {month}" -search: "Penelusuran" -notifications: "Pemberitahuan" -username: "Nama Pengguna" -password: "Kata sandi" -forgotPassword: "Lupa Kata Sandi" -fetchingAsApObject: "Mengambil data dari Fediverse..." -ok: "OK" -gotIt: "Saya mengerti" -cancel: "Batalkan" -enterUsername: "Masukkan nama pengguna" -renotedBy: "direnote oleh {user}" -noNotes: "Tidak ada catatan" -noNotifications: "Tidak ada pemberitahuan" -instance: "Instansi" -settings: "Pengaturan" -basicSettings: "Pengaturan umum" -otherSettings: "Pengaturan lainnya" -openInWindow: "Buka di jendela" -profile: "Profil" -timeline: "Linimasa" -noAccountDescription: "Pengguna ini belum menulis bio" -login: "Masuk" -loggingIn: "Sedang masuk" -logout: "Keluar" -signup: "Daftar" -uploading: "Sedang mengunggah" -save: "Simpan" -users: "Pengguna" -addUser: "Tambah pengguna" -favorite: "Favorit" -favorites: "Favorit" -unfavorite: "Hapus favorit" -favorited: "Ditambahkan ke favorit" -alreadyFavorited: "Telah ditambahkan ke favorit" -cantFavorite: "Tidak dapat menambahkan ke favorit" -pin: "Sematkan ke profil" -unpin: "Lepas sematan dari profil" -copyContent: "Salin konten" -copyLink: "Salin tautan" -delete: "Hapus" -deleteAndEdit: "Hapus dan sunting" -deleteAndEditConfirm: "Apakah kamu yakin ingin menghapus note ini dan menyuntingnya? Kamu akan kehilangan semua reaksi, renote dan balasan di note ini." -addToList: "Tambahkan ke daftar" -sendMessage: "Kirim pesan" -copyUsername: "Salin nama pengguna" -searchUser: "Cari pengguna" -reply: "Balas" -loadMore: "Selebihnya" -showMore: "Selebihnya" -showLess: "Tutup" -youGotNewFollower: "Mengikuti kamu" -receiveFollowRequest: "Ingin mengikuti kamu" -followRequestAccepted: "Permintaan mengikuti telah disetujui" -mention: "Sebut" -mentions: "Sebutan" -directNotes: "Catatan langsung" -importAndExport: "Impor & Ekspor" -import: "Impor" -export: "Ekspor" -files: "Berkas" -download: "Unduh" -driveFileDeleteConfirm: "Hapus {name}? Catatan dengan berkas terkait juga akan terhapus." -unfollowConfirm: "Berhenti mengikuti {name}?" -exportRequested: "Kamu telah meminta ekspor. Ini akan memakan waktu sesaat. Setelah ekspor selesai, berkas yang dihasilkan akan ditambahkan ke Drive" -importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat." -lists: "Daftar" -noLists: "Kamu tidak memiliki daftar apapun" -note: "Catat" -notes: "Catatan" -following: "Ikuti" -followers: "Pengikut" -followsYou: "Mengikuti kamu" -createList: "Buat daftar" -manageLists: "Sunting daftar" -error: "Galat" -somethingHappened: "Terjadi kesalahan" -retry: "Coba lagi" -pageLoadError: "Gagal memuat halaman." -pageLoadErrorDescription: "Umumnya disebabkan jaringan atau tembolok perambah. Cobalah bersihkan tembolok peramban lalu tunggu sesaat sebelum mencoba kembali." -serverIsDead: "Tidak ada respon dari peladen. Mohon tunggu dan coba beberapa saat lagi." -youShouldUpgradeClient: "Untuk melihat halaman ini, mohon muat ulang untuk memutakhirkan klienmu." -enterListName: "Masukkan nama daftar" -privacy: "Privasi" -makeFollowManuallyApprove: "Permintaan mengikuti membutuhkan persetujuan" -defaultNoteVisibility: "Privasi bawaan catatan" -follow: "Ikuti" -followRequest: "Permintaan mengikuti" -followRequests: "Permintaan mengikuti" -unfollow: "Berhenti mengikuti" -followRequestPending: "Permintaan mengikuti yang menunggu" -enterEmoji: "Masukkan emoji" -renote: "Renote" -unrenote: "Hapus renote" -renoted: "Telah direnote" -cantRenote: "Postingan ini tidak dapat direnote" -cantReRenote: "Renote tidak dapat direnote" -quote: "Kutip" -pinnedNote: "Catatan yang disematkan" -pinned: "Sematkan ke profil" -you: "Kamu" -clickToShow: "Klik untuk melihat" -sensitive: "Konten sensitif" -add: "Tambahkan" -reaction: "Reaksi" -reactionSetting: "Reaksi untuk dimunculkan di bilah reaksi" -reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan" -rememberNoteVisibility: "Ingat pengaturan visibilitas catatan" -attachCancel: "Hapus lampiran" -markAsSensitive: "Tandai sebagai konten sensitif" -unmarkAsSensitive: "Hapus tanda konten sensitif" -enterFileName: "Masukkan nama berkas" -mute: "Bisukan" -unmute: "Hapus bisukan" -block: "Blokir" -unblock: "Buka blokir" -suspend: "Bekukan" -unsuspend: "Buka pembekuan" -blockConfirm: "Apakah kamu yakin ingin memblokir akun ini?" -unblockConfirm: "Apakah kamu yakin ingin membuka blokir akun ini?" -suspendConfirm: "Apakah kamu yakin ingin membekukan akun ini?" -unsuspendConfirm: "Apakah kamu yakin ingin membuka pembekuan akun ini?" -selectList: "Pilih daftar" -selectAntenna: "Pilih Antena" -selectWidget: "Pilih gawit" -editWidgets: "Sunting gawit" -editWidgetsExit: "Selesai" -customEmojis: "Emoji kustom" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Nama emoji" -emojiUrl: "URL Emoji" -addEmoji: "Tambahkan emoji" -settingGuide: "Pengaturan rekomendasi" -cacheRemoteFiles: "Tembolokkan berkas remote" -cacheRemoteFilesDescription: "Ketika pengaturan ini dinonaktifkan, berkas luar akan dimuat langsung dari instansi luar. Menonaktifkan ini akan mengurangi penggunaan penyimpanan, namun dapat menyebabkan meningkatkan lalu lintas bandwidth, karena thumbnail tidak dihasilkan." -flagAsBot: "Atur akun ini sebagai Bot" -flagAsBotDescription: "Jika akun ini dikendalikan oleh program, tetapkanlah opsi ini. Jika diaktifkan, ini akan berfungsi sebagai tanda bagi pengembang lain untuk mencegah interaksi berantai dengan bot lain dan menyesuaikan sistem internal Misskey untuk memperlakukan akun ini sebagai bot." -flagAsCat: "Atur akun ini sebagai kucing" -flagAsCatDescription: "Nyalakan tanda ini untuk menandai akun ini sebagai kucing." -flagShowTimelineReplies: "Tampilkan balasan di linimasa" -flagShowTimelineRepliesDescription: "Menampilkan balasan pengguna dari note pengguna lain di linimasa apabila dinyalakan." -autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang kamu ikuti" -addAccount: "Tambahkan akun" -loginFailed: "Gagal untuk masuk" -showOnRemote: "Lihat profil asli" -general: "Umum" -wallpaper: "Wallpaper" -setWallpaper: "Atur wallpaper" -removeWallpaper: "Hapus wallpaper" -searchWith: "Cari: {q}" -youHaveNoLists: "Kamu tidak memiliki daftar apapun" -followConfirm: "Apakah kamu yakin ingin mengikuti {name}?" -proxyAccount: "Akun proksi" -proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebagai pengikut luar untuk pengguna dalam kondisi tertentu. Sebagai contoh, ketika pengguna menambahkan seorang pengguna luar ke dalam daftar, aktivitas dari pengguna luar tidak akan disampaikan ke instansi apabila tidak ada pengguna lokal yang mengikuti pengguna tersebut, dengan begitu akun proksilah yang akan mengikutinya." -host: "Host" -selectUser: "Pilih pengguna" -recipient: "Penerima" -annotation: "Keterangan konten" -federation: "Federasi" -instances: "Instansi" -registeredAt: "Terdaftar" -latestRequestSentAt: "Permintaan terakhir dikirim pada" -latestRequestReceivedAt: "Permintaan terakhir diterima pada" -latestStatus: "Status terakhir" -storageUsage: "Penggunaan penyimpanan" -charts: "Grafik" -perHour: "per Jam" -perDay: "per Hari" -stopActivityDelivery: "Berhenti mengirim aktivitas" -blockThisInstance: "Blokir instansi ini" -operations: "Tindakan" -software: "Perangkat lunak" -version: "Versi" -metadata: "Metadata" -withNFiles: "{n} berkas" -monitor: "Pantau" -jobQueue: "Antrian kerja" -cpuAndMemory: "CPU dan Memori" -network: "Jaringan" -disk: "Diska" -instanceInfo: "Informasi Instansi" -statistics: "Statistik" -clearQueue: "Bersihkan antrian" -clearQueueConfirmTitle: "Apakah kamu yakin ingin membersihkan antrian?" -clearQueueConfirmText: "Seluruh sisa catatan yang tidak tersampaikan di dalam antrian tidak akan difederasi. Biasanya operasi ini TIDAK dibutuhkan." -clearCachedFiles: "Hapus tembolok" -clearCachedFilesConfirm: "Apakah kamu yakin ingin menghapus seluruh tembolok berkas remote?" -blockedInstances: "Instansi terblokir" -blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini." -muteAndBlock: "Bisukan / Blokir" -mutedUsers: "Pengguna yang dibisukan" -blockedUsers: "Pengguna yang diblokir" -noUsers: "Tidak ada pengguna" -editProfile: "Sunting profil" -noteDeleteConfirm: "Apakah kamu yakin ingin menghapus catatan ini?" -pinLimitExceeded: "Kamu tidak dapat menyematkan catatan lagi" -intro: "Instalasi Misskey telah selesai! Mohon untuk membuat pengguna admin." -done: "Selesai" -processing: "Memproses" -preview: "Pratinjau" -default: "Bawaan" -noCustomEmojis: "Tidak ada emoji kustom" -noJobs: "Tidak ada kerja" -federating: "memfederasi" -blocked: "Diblokir" -suspended: "Diberhentikan" -all: "Semua" -subscribing: "Berlangganan" -publishing: "Sedang menyiarkan langsung" -notResponding: "Tidak ada respon" -instanceFollowing: "Mengikuti instance" -instanceFollowers: "Pengikut instance" -instanceUsers: "Pengguna pada instance ini" -changePassword: "Ubah kata sandi" -security: "Keamanan" -retypedNotMatch: "Input tidak sama" -currentPassword: "Kata sandi saat ini" -newPassword: "Kata sandi baru" -newPasswordRetype: "Ulangi kata sandi baru" -attachFile: "Lampirkan berkas" -more: "Lagi !" -featured: "Sorotan" -usernameOrUserId: "Nama pengguna atau User ID" -noSuchUser: "Pengguna tidak ditemukan" -lookup: "Mencari" -announcements: "Pengumuman" -imageUrl: "URL Gambar" -remove: "Hapus" -removed: "Telah dihapus" -removeAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?" -deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?" -resetAreYouSure: "Yakin mau atur ulang?" -saved: "Telah disimpan" -messaging: "Pesan" -upload: "Unggah" -keepOriginalUploading: "Simpan gambar asli" -keepOriginalUploadingDescription: "Simpan gambar yang diunggah sebagaimana gambar aslinya. Bila dimatikan, versi tampilan web akan dihasilkan pada saat diunggah." -fromDrive: "Dari Drive" -fromUrl: "Dari URL" -uploadFromUrl: "Unggah dari URL" -uploadFromUrlDescription: "URL berkas yang ingin kamu unggah" -uploadFromUrlRequested: "Pengunggahan telah diminta" -uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai" -explore: "Jelajahi" -messageRead: "Telah dibaca" -noMoreHistory: "Tidak ada sejarah lagi" -startMessaging: "Mulai mengirim pesan" -nUsersRead: "Dibaca oleh {n}" -agreeTo: "Saya setuju kepada {0}" -tos: "Syarat dan ketentuan" -start: "Mulai" -home: "Beranda" -remoteUserCaution: "Informasi ini mungkin tidak mutakhir, karena pengguna ini berasal dari instansi luar." -activity: "Aktivitas" -images: "Gambar" -birthday: "Tanggal lahir" -yearsOld: "{age} tahun" -registeredDate: "Bergabung pada" -location: "Lokasi" -theme: "Tema" -themeForLightMode: "Tema untuk Mode Terang" -themeForDarkMode: "Tema untuk Mode Gelap" -light: "Terang" -dark: "Gelap" -lightThemes: "Tema Terang" -darkThemes: "Tema gelap" -syncDeviceDarkMode: "Sinkronkan mode gelap dengan pengaturan perangkat" -drive: "Drive" -fileName: "Nama berkas" -selectFile: "Pilih berkas" -selectFiles: "Pilih berkas" -selectFolder: "Pilih folder" -selectFolders: "Pilih folder" -renameFile: "Ubah nama berkas" -folderName: "Nama folder" -createFolder: "Buat folder" -renameFolder: "Ubah nama folder" -deleteFolder: "Hapus folder" -addFile: "Tambahkan berkas" -emptyDrive: "Drive kosong" -emptyFolder: "Folder kosong" -unableToDelete: "Tidak dapat menghapus" -inputNewFileName: "Masukkan nama berkas yang baru" -inputNewDescription: "Masukkan keterangan disini" -inputNewFolderName: "Masukkan nama folder yang baru" -circularReferenceFolder: "Folder tujuan adalah subfolder dari folder yang ingin kamu pindahkan." -hasChildFilesOrFolders: "Karena folder ini tidak kosong, maka tidak dapat dihapus." -copyUrl: "Salin tautan" -rename: "Ubah nama" -avatar: "Avatar" -banner: "Banner" -nsfw: "Konten sensitif" -whenServerDisconnected: "Ketika kehilangan koneksi dengan peladen" -disconnectedFromServer: "Terputus koneksi dari peladen" -reload: "Muat ulang" -doNothing: "Abaikan" -reloadConfirm: "Apakah kamu ingin memuat ulang linimasa?" -watch: "Tonton" -unwatch: "Batal tonton" -accept: "Terima" -reject: "Tolak" -normal: "Normal" -instanceName: "Nama instance" -instanceDescription: "Tentang instance" -maintainerName: "Pengelola" -maintainerEmail: "Surel pengelola" -tosUrl: "URL Syarat dan Ketentuan" -thisYear: "Tahun ini" -thisMonth: "Bulan ini" -today: "Hari ini" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Halaman" -integration: "Integrasi" -connectService: "Sambungkan" -disconnectService: "Putuskan" -enableLocalTimeline: "Nyalakan linimasa lokal" -enableGlobalTimeline: "Nyalakan linimasa global" -disablingTimelinesInfo: "Admin dan Moderator akan selalu memiliki akses ke semua linimasa meskipun linimasa tersebut tidak diaktifkan." -registration: "Pendaftaran" -enableRegistration: "Nyalakan pendaftaran pengguna baru" -invite: "Undang" -driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal" -driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote" -inMb: "dalam Megabytes" -iconUrl: "URL Gambar ikon" -bannerUrl: "URL Banner" -backgroundImageUrl: "URL Gambar latar" -basicInfo: "Informasi Umum" -pinnedUsers: "Pengguna yang disematkan" -pinnedUsersDescription: "Tuliskan satu nama pengguna dalam satu baris. Pengguna yang dituliskan disini akan disematkan dalam bilah \"Jelajahi\"." -pinnedPages: "Halaman yang disematkan" -pinnedPagesDescription: "Masukkan tautan dari halaman yang kamu ingin sematkan ke halaman utama dari instansi ini, dipisah dengan membuat baris baru." -pinnedClipId: "ID dari klip yang disematkan" -pinnedNotes: "Catatan yang disematkan" -hcaptcha: "hCaptcha" -enableHcaptcha: "Nyalakan hCaptcha" -hcaptchaSiteKey: "Site Key" -hcaptchaSecretKey: "Secret Key" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Nyalakan reCAPTCHA" -recaptchaSiteKey: "Site key" -recaptchaSecretKey: "Secret Key" -avoidMultiCaptchaConfirm: "Menggunakan banyak Captcha dapat menyebabkan gangguan. Apakah kamu ingin untuk menonaktifkan Captcha yang lain? Kamu dapat membiarkan fitur ini tetap aktif dengan menekan tombol batal." -antennas: "Antena" -manageAntennas: "Pengelola Antena" -name: "Nama" -antennaSource: "Sumber Antenna" -antennaKeywords: "Kata kunci yang diterima" -antennaExcludeKeywords: "Kata kunci yang dikecualikan" -antennaKeywordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR." -notifyAntenna: "Beritahu untuk catatan baru" -withFileAntenna: "Hanya tampilkan catatan dengan berkas yang dilampirkan" -enableServiceworker: "Aktifkan ServiceWorker" -antennaUsersDescription: "Tuliskan satu nama pengguna per baris" -caseSensitive: "Peka huruf besar dan huruf kecil" -withReplies: "Termasuk balasan" -connectedTo: "Akun yang mengikuti telah terhubung" -notesAndReplies: "Catatan dan balasan" -withFiles: "Media" -silence: "Bungkam" -silenceConfirm: "Apakah kamu yakin ingin membungkam pengguna ini?" -unsilence: "Hapus bungkam" -unsilenceConfirm: "Apakah kamu ingin untuk batal membungkam pengguna ini?" -popularUsers: "Pengguna populer" -recentlyUpdatedUsers: "Pengguna dengan aktivitas terkini" -recentlyRegisteredUsers: "Pengguna baru saja bergabung" -recentlyDiscoveredUsers: "Pengguna baru saja dilihat" -exploreUsersCount: "Terdapat {count} pengguna" -exploreFediverse: "Jelajahi Fediverse" -popularTags: "Tag populer" -userList: "Daftar" -about: "Informasi" -aboutMisskey: "Tentang Misskey" -administrator: "Admin" -token: "Token" -twoStepAuthentication: "Otentikasi dua faktor" -moderator: "Moderator" -nUsersMentioned: "{n} pengguna disebut" -securityKey: "Kunci keamanan" -securityKeyName: "Nama kunci" -registerSecurityKey: "Daftarkan kunci keamanan" -lastUsed: "Terakhir digunakan" -unregister: "Batalkan pendaftaran" -passwordLessLogin: "Setel login tanpa kata sandi" -resetPassword: "Atur ulang kata sandi" -newPasswordIs: "Kata sandi baru adalah \"{password}\"" -reduceUiAnimation: "Kurangi animasi antarmuka" -share: "Bagikan" -notFound: "Tidak dapat ditemukan" -notFoundDescription: "Tidak ada halaman sesuai dengan URL yang ditentukan." -uploadFolder: "Lokasi unggah folder bawaan" -cacheClear: "Bersihkan tembolok" -markAsReadAllNotifications: "Tandai semua pemberitahuan telah dibaca" -markAsReadAllUnreadNotes: "Tandai semua catatan telah dibaca" -markAsReadAllTalkMessages: "Tandai semua pesan telah dibaca" -help: "Bantuan" -inputMessageHere: "Ketik pesan disini" -close: "Tutup" -group: "Grup" -groups: "Grup" -createGroup: "Buat grup" -ownedGroups: "Grup yang dimiliki" -joinedGroups: "Grup yang diikuti" -invites: "Undang" -groupName: "Nama grup" -members: "Anggota" -transfer: "Transfer" -messagingWithUser: "Obrolan dengan pengguna lain" -messagingWithGroup: "Obrolan di dalam grup" -title: "Judul" -text: "Teks" -enable: "Aktifkan" -next: "Selanjutnya" -retype: "Masukkan ulang" -noteOf: "Catatan milik {user}" -inviteToGroup: "Undang ke grup" -quoteAttached: "Dikutip" -quoteQuestion: "Apakah kamu ingin menambahkan kutipan?" -noMessagesYet: "Tidak ada pesan" -newMessageExists: "Kamu mendapatkan pesan baru" -onlyOneFileCanBeAttached: "Kamu hanya dapat melampirkan satu berkas ke dalam pesan" -signinRequired: "Silahkan login" -invitations: "Undang" -invitationCode: "Kode undangan" -checking: "Memeriksa" -available: "Tersedia" -unavailable: "Tidak tersedia" -usernameInvalidFormat: "Hanya dapat menerima karakter a-z, A-Z dan angka 0-9." -tooShort: "Terlalu pendek" -tooLong: "Terlalu panjang" -weakPassword: "Kata sandi lemah" -normalPassword: "Kata sandi baik" -strongPassword: "Kata sandi kuat" -passwordMatched: "Kata sandi sama" -passwordNotMatched: "Kata sandi tidak sama" -signinWith: "Masuk dengan {x}" -signinFailed: "Tidak dapat masuk. Nama pengguna atau kata sandi yang kamu masukkan salah." -tapSecurityKey: "Ketuk kunci keamanan kamu" -or: "atau" -language: "Bahasa" -uiLanguage: "Bahasa antarmuka pengguna" -groupInvited: "Telah diundang ke grup" -aboutX: "Tentang {x}" -useOsNativeEmojis: "Gunakan Emoji bawaan sistem operasi" -disableDrawer: "Jangan gunakan menu bergaya laci" -youHaveNoGroups: "Kamu tidak memiliki grup" -joinOrCreateGroup: "Bergabunglah dengan grup atau kamu dapat membuat grupmu sendiri." -noHistory: "Tidak ada riwayat" -signinHistory: "Riwayat masuk" -disableAnimatedMfm: "Nonaktifkan MFM dengan animasi" -doing: "Sedang berkerja..." -category: "Kategori" -tags: "Tandai" -docSource: "Sumber dari dokumen ini" -createAccount: "Buat akun" -existingAccount: "Akun yang ada" -regenerate: "Buat ulang" -fontSize: "Ukuran huruf" -noFollowRequests: "Kamu tidak memiliki permintaan mengikuti yang menunggu" -openImageInNewTab: "Buka gambar di tab baru" -dashboard: "Dasbor" -local: "Lokal" -remote: "Remote" -total: "Jumlah" -weekOverWeekChanges: "Mingguan" -dayOverDayChanges: "Harian" -appearance: "Tampilan" -clientSettings: "Pengaturan Klien" -accountSettings: "Pengaturan Akun" -promotion: "Promosi" -promote: "Promosikan" -numberOfDays: "Jumlah hari" -hideThisNote: "Sembunyikan catatan ini" -showFeaturedNotesInTimeline: "Tampilkan catatan yang diunggulkan di linimasa" -objectStorage: "Object Storage" -useObjectStorage: "Gunakan object storage" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "Prefix URL digunakan untuk mengkonstruksi URL ke object (media) referencing. Tentukan URL jika kamu menggunakan CDN atau Proxy, jika tidak tentukan alamat yang dapat diakses secara publik sesuai dengan panduan dari layanan yang akan kamu gunakan, contohnya. 'https://.s3.amazonaws.com' untuk AWS S3, dan 'https://storage.googleapis.com/' untuk GCS." -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Mohon tentukan nama bucket yang digunakan pada layanan yang telah dikonfigurasi." -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Berkas tidak akan disimpan dalam direktori dari prefix ini." -objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Kosongkan bagian ini jika kamu menggunakan AWS S3, jika tidak tentukan endpoint sebagai '' atau ':' sesuai dengan panduan dari layanan yang akan kamu gunakan." -objectStorageRegion: "Region" -objectStorageRegionDesc: "Tentukan region seperti 'xx-east-1'. Jika layanan kamu tidak memiliki perbedaan mengenai region, kosongkan saja atau isi dengan 'us-east-1'." -objectStorageUseSSL: "Gunakan SSL" -objectStorageUseSSLDesc: "Matikan ini jika kamu tidak akan menggunakan HTTPS untuk koneksi API" -objectStorageUseProxy: "Hubungkan melalui Proxy" -objectStorageUseProxyDesc: "Matikan ini jika kamu tidak akan menggunakan Proxy untuk koneksi ObjectStorage" -objectStorageSetPublicRead: "Setel \"public-read\" disaat mengunggah" -serverLogs: "Log Peladen" -deleteAll: "Hapus semua" -showFixedPostForm: "Tampilkan form posting di atas linimasa." -newNoteRecived: "Kamu mendapat catatan baru" -sounds: "Bunyi" -listen: "Dengarkan" -none: "Tidak ada" -showInPage: "Tampilkan di halaman" -popout: "Pop-out" -volume: "Volume" -masterVolume: "Master volume" -details: "Selengkapnya" -chooseEmoji: "Pilih emoji" -unableToProcess: "Operasi tersebut tidak dapat diselesaikan." -recentUsed: "Baru saja digunakan" -install: "Pasang" -uninstall: "Copot pemasangan" -installedApps: "Aplikasi yang diijinkan" -nothing: "Tidak ada sama sekali disini" -installedDate: "Diijinkan" -lastUsedDate: "Terakhir digunakan" -state: "Kondisi" -sort: "Urutkan" -ascendingOrder: "Urutkan naik" -descendingOrder: "Urutkan menurun" -scratchpad: "Scratchpad" -scratchpadDescription: "Scratchpad menyediakan lingkungan eksperimen untuk AiScript. Kamu bisa menulis, mengeksuksi, serta mengecek hasil yang berinteraksi dengan Misskey." -output: "Keluaran" -script: "Script" -disablePagesScript: "Nonaktifkan script pada halaman" -updateRemoteUser: "Perbaharui informasi pengguna luar" -deleteAllFiles: "Hapus semua berkas" -deleteAllFilesConfirm: "Apakah kamu yakin ingin menghapus semua berkas?" -removeAllFollowing: "Tahan semua mengikuti" -removeAllFollowingDescription: "Batal mengikuti semua akun dari {host}. Mohon jalankan ini ketika instansi sudah tidak ada lagi." -userSuspended: "Pengguna ini telah dibekukan." -userSilenced: "Pengguna ini telah dibungkam." -yourAccountSuspendedTitle: "Akun ini dibekukan" -yourAccountSuspendedDescription: "Akun ini dibekukan karena melanggar ketentuan penggunaan layanan peladen atau semacamnya. Hubungi admin apabila ingin tahu alasan lebih lanjut. Mohon untuk tidak membuat akun baru." -menu: "Menu" -divider: "Pembagi" -addItem: "Tambahkan item" -relays: "Relay" -addRelay: "Tambahkan relay" -inboxUrl: "URL Kotak masuk" -addedRelays: "Relay yang ditambahkan" -serviceworkerInfo: "Harus diaktifkan untuk pemberitahuan push." -deletedNote: "Catatan yang dihapus" -invisibleNote: "Catatan yang disembunyikan" -enableInfiniteScroll: "Aktifkan gulir tak terbatas" -visibility: "Visibilitas" -poll: "Angket" -useCw: "Sembunyikan konten" -enablePlayer: "Buka pemutar video" -disablePlayer: "Tutup pemutar video" -expandTweet: "Perluas utas" -themeEditor: "Penyunting tema" -description: "Deskripsi" -describeFile: "Tambahkan keterangan" -enterFileDescription: "Masukkan keterangan" -author: "Pembuat" -leaveConfirm: "Ada perubahan yang belum disimpan. Apakah kamu ingin membuangnya?" -manage: "Manajemen" -plugins: "Plugin" -deck: "Dek" -undeck: "Keluar dari dek" -useBlurEffectForModal: "Gunakan efek buram untuk modal" -useFullReactionPicker: "Gunakan pemilih reaksi ukuran penuh" -width: "Lebar" -height: "Tinggi" -large: "Besar" -medium: "Sedang" -small: "Kecil" -generateAccessToken: "Buat access token" -permission: "Izin" -enableAll: "Aktifkan semua" -disableAll: "Nonaktifkan semua" -tokenRequested: "Berikan ijin akses ke akun" -pluginTokenRequestedDescription: "Plugin ini dapat menggunakan setelan ijin disini." -notificationType: "Jenis pemberitahuan" -edit: "Sunting" -useStarForReactionFallback: "Gunakan ★ sebagai fallback jika reaksi emoji tidak diketahui" -emailServer: "Peladen surel" -enableEmail: "Nyalakan distribusi surel" -emailConfigInfo: "Digunakan untuk mengonfirmasi surel kamu disaat mendaftar dan lupa kata sandi" -email: "Surel" -emailAddress: "Alamat surel" -smtpConfig: "Konfigurasi peladen SMTP" -smtpHost: "Host" -smtpPort: "Port" -smtpUser: "Nama Pengguna" -smtpPass: "Kata sandi" -emptyToDisableSmtpAuth: "Kosongkan nama pengguna dan kata sandi untuk menonaktifkan verifikasi SMTP" -smtpSecure: "Gunakan SSL/TLS implisit untuk koneksi SMTP" -smtpSecureInfo: "Matikan ini ketika menggunakan STARTTLS" -testEmail: "Tes pengiriman surel" -wordMute: "Bisukan kata" -regexpError: "Kesalahan ekspresi reguler" -regexpErrorDescription: "Galat terjadi pada baris {line} ekspresi reguler dari {tab} kata yang dibisukan:" -instanceMute: "Bisuka instansi" -userSaysSomething: "{name} mengatakan sesuatu" -makeActive: "Aktifkan" -display: "Tampilkan" -copy: "Salin" -metrics: "Metrik" -overview: "Ikhtisar" -logs: "Log" -delayed: "Terlambat" -database: "Basis data" -channel: "Kanal" -create: "Buat" -notificationSetting: "Pengaturan Pemberitahuan" -notificationSettingDesc: "Pilih tipe pemberitahuan untuk ditampilkan" -useGlobalSetting: "Gunakan setelan global" -useGlobalSettingDesc: "Jika dinyalakan, setelan pemberitahuan akun kamu akan digunakan. Jika dimatikan, konfigurasi secara individu dapat dibuat." -other: "Lainnya" -regenerateLoginToken: "Perbarui token login" -regenerateLoginTokenDescription: "Perbarui token yang digunakan secara internal saat login. Normalnya aksi ini tidak diperlukan. Jika diperbarui, semua perangkat akan dilogout." -setMultipleBySeparatingWithSpace: "Kamu dapat menyetel banyak dengan memisahkannya menggunakan spasi." -fileIdOrUrl: "File-ID atau URL" -behavior: "Perilaku" -sample: "Contoh" -abuseReports: "Laporkan" -reportAbuse: "Laporkan" -reportAbuseOf: "Laporkan {name}" -fillAbuseReportDescription: "Mohon isi rincian laporan. Jika laporan ini mengenai catatan yang spesifik, mohon lampirkan serta URL catatan tersebut." -abuseReported: "Laporan kamu telah dikirimkan. Terima kasih." -reporter: "Pelapor" -reporteeOrigin: "Yang dilaporkan" -reporterOrigin: "Pelapor" -forwardReport: "Teruskan laporan ke instansi luar" -forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari sistem akan digunakan sebagai pelapor pada instansi luar." -send: "Kirim" -abuseMarkAsResolved: "Tandai laporan sebagai selesai" -openInNewTab: "Buka di tab baru" -openInSideView: "Buka di tampilan samping" -defaultNavigationBehaviour: "Navigasi bawaan" -editTheseSettingsMayBreakAccount: "Menyunting pengaturan ini memiliki kemungkinan untuk merusak akun kamu." -instanceTicker: "Informasi pengguna pada instansi" -waitingFor: "Menunggu untuk {x}" -random: "Acak" -system: "Sistem" -switchUi: "Ubah UI" -desktop: "Desktop" -clip: "Klip" -createNew: "Buat baru" -optional: "Opsional" -createNewClip: "Buat klip baru" -unclip: "Batalkan klip" -confirmToUnclipAlreadyClippedNote: "Catatan ini sudah disertakan di klip \"{name}\". Yakin ingin membatalkan catatan dari klip ini?" -public: "Publik" -i18nInfo: "Misskey diterjemahkan ke dalam banyak bahasa oleh sukarelawan. Kamu dapat ikut membantu di {link}." -manageAccessTokens: "Kelola access token" -accountInfo: "Informasi akun" -notesCount: "Jumlah catatan" -repliesCount: "Jumlah balasan terkirim" -renotesCount: "Jumlah renote terkirim" -repliedCount: "Jumlah balasan diterima" -renotedCount: "Jumlah renote diterima" -followingCount: "Jumlah akun yang diikuti" -followersCount: "Jumlah pengikut" -sentReactionsCount: "Jumlah reaksi yang terkirim" -receivedReactionsCount: "Jumlah reaksi yang diterima" -pollVotesCount: "Jumlah suara yang terkirim" -pollVotedCount: "Jumlah suara yang diterima dalam angket" -yes: "Iya" -no: "Tidak" -driveFilesCount: "Jumlah berkas drive" -driveUsage: "Penggunaan ruang penyimpanan drive" -noCrawle: "Tolak pengindeksan crawler" -noCrawleDescription: "Meminta mesin pencari untuk tidak mengindeks halaman profil kamu, catatan, Halaman, dll." -lockedAccountInfo: "Kecuali kamu menyetel visibilitas catatan milikmu ke \"Hanya pengikut\", catatan milikmu akan dapat dilihat oleh siapa saja, bahkan jika kamu memerlukan pengikut untuk disetujui secara manual." -alwaysMarkSensitive: "Tandai media dalam catatan sebagai media sensitif" -loadRawImages: "Tampilkan lampiran gambar secara penuh daripada thumbnail" -disableShowingAnimatedImages: "Jangan mainkan gambar bergerak" -verificationEmailSent: "Surel verifikasi telah dikirimkan. Mohon akses tautan yang telah disertakan untuk menyelesaikan verifikasi." -notSet: "Tidak disetel" -emailVerified: "Surel telah diverifikasi" -noteFavoritesCount: "Jumlah catatan yang difavoritkan" -pageLikesCount: "Jumlah suka yang diterima Halaman" -pageLikedCount: "Jumlah Halaman yang disukai" -contact: "Kontak" -useSystemFont: "Gunakan font bawaan sistem operasi" -clips: "Klip" -experimentalFeatures: "Fitur eksperimental" -developer: "Pengembang" -makeExplorable: "Buat akun tampil di \"Jelajahi\"" -makeExplorableDescription: "Jika kamu mematikan ini, akun kamu tidak akan muncul di bagian \"Jelajahi:" -showGapBetweenNotesInTimeline: "Tampilkan jarak diantara catatan pada linimasa" -duplicate: "Duplikat" -left: "Kiri" -center: "Tengah" -wide: "Lebar" -narrow: "Sempit" -reloadToApplySetting: "Pengaturan ini akan diterapkan saat memuat halaman kembali. Apakah kamu ingin memuat halaman kembali sekarang?" -needReloadToApply: "Pengaturan ini hanya akan diterapkan setelah memuat ulang halaman." -showTitlebar: "Tampilkan bilah judul" -clearCache: "Hapus tembolok" -onlineUsersCount: "{n} orang sedang daring" -nUsers: "{n} Pengguna" -nNotes: "{n} Catatan" -sendErrorReports: "Kirim laporan kesalahan" -sendErrorReportsDescription: "Ketika dinyalakan, informasi kesalahan rinci akan dibagikan dengan Misskey ketika masalah terjadi, hal ini untuk membantu kualitas Misskey. Fitur ini memungkinkan memuat informasi seperti sistem operasi yang kamu gunakan dan versinya, aplikasi peramban yang kamu gunakan, riwayat aktivitas kamu, dll." -myTheme: "Tema saya" -backgroundColor: "Latar Belakang" -accentColor: "Aksen" -textColor: "Teks" -saveAs: "Simpan sebagai…" -advanced: "Tingkat lanjut" -value: "Nilai" -createdAt: "Dibuat pada" -updatedAt: "Diperbarui pada" -saveConfirm: "Simpan perubahan?" -deleteConfirm: "Yakin hapus?" -invalidValue: "Nilai tidak valid." -registry: "Registri" -closeAccount: "Tutup akun" -currentVersion: "Versi saat ini" -latestVersion: "Versi terkini" -youAreRunningUpToDateClient: "Kamu menggunakan versi terkini dari klienmu." -newVersionOfClientAvailable: "Versi terbaru dari klien kamu telah tersedia." -usageAmount: "Penggunaan" -capacity: "Kapasitas" -inUse: "Digunakan" -editCode: "Sunting kode" -apply: "Terapkan" -receiveAnnouncementFromInstance: "Terima pemberitahuan surel dari instansi ini" -emailNotification: "Pemberitahuan surel" -publish: "Terbitkan" -inChannelSearch: "Cari di kanal" -useReactionPickerForContextMenu: "Buka pemilih reaksi dengan klik-kanan" -typingUsers: "{users} sedang mengetik..." -jumpToSpecifiedDate: "Loncat ke tanggal spesifik" -showingPastTimeline: "Sedang menampilkan linimasa lama" -clear: "Bersihkan" -markAllAsRead: "Tandai semua telah dibaca" -goBack: "Kembali" -unlikeConfirm: "Yakin ingin hapus sukamu?" -fullView: "Tampilan penuh" -quitFullView: "Keluar tampilan penuh" -addDescription: "Tambahkan deskripsi" -userPagePinTip: "Kamu dapat membuat catatan untuk ditampilkan disini dengan memilih \"Sematkan ke profil\" dari menu pada catatan individu." -notSpecifiedMentionWarning: "Catatan ini mengandung sebutan dari pengguna yang tidak dimuat sebagai penerima" -info: "Informasi" -userInfo: "Informasi pengguna" -unknown: "Tidak diketahui" -onlineStatus: "Status daring" -hideOnlineStatus: "Sembunyikan status daring" -hideOnlineStatusDescription: "Menyembunyikan status daring kamu umengurangi kenyamanan untuk beberapa fungsi seperti contohnya pencarian." -online: "Daring" -active: "Aktif" -offline: "Luring" -notRecommended: "Tidak disarankan" -botProtection: "Perlindungan Bot" -instanceBlocking: "Instansi yang diblokir" -selectAccount: "Pilih akun" -switchAccount: "Ganti akun" -enabled: "Aktif" -disabled: "Nonaktif" -quickAction: "Aksi cepat" -user: "Pengguna" -administration: "Manajemen" -accounts: "Akun" -switch: "Beralih" -noMaintainerInformationWarning: "Informasi pengelola belum disetel." -noBotProtectionWarning: "Proteksi bot belum disetel." -configure: "Setel" -postToGallery: "Posting ke galeri" -gallery: "Galeri" -recentPosts: "Postingan terbaru" -popularPosts: "Postingan populer" -shareWithNote: "Bagikan dengan catatan" -ads: "Iklan" -expiration: "Batas akhir" -memo: "Memo" -priority: "Prioritas" -high: "Tinggi" -middle: "Sedang" -low: "Rendah" -emailNotConfiguredWarning: "Alamat surel tidak disetel." -ratio: "Rasio" -previewNoteText: "Tampilkan pratinjau" -customCss: "Custom CSS" -customCssWarn: "Pengaturan ini seharusnya digunakan jika kamu tahu cara kerjanya. Memasukkan nilai yang tidak tepat dapat menyebabkan klien tidak berfungsi semestinya." -global: "Global" -squareAvatars: "Tampilkan avatar sebagai persegi" -sent: "Kirim" -received: "Diterima" -searchResult: "Hasil Penelusuran" -hashtags: "Tagar" -troubleshooting: "Penyelesaian Masalah" -useBlurEffect: "Gunakan efek blur pada antarmuka" -learnMore: "Pelajari lebih lanjut" -misskeyUpdated: "Misskey telah dimutakhirkan!" -whatIsNew: "Lihat perubahan pemutakhiran" -translate: "Terjemahkan" -translatedFrom: "Terjemahkan dari {x}" -accountDeletionInProgress: "Penghapusan akun sedang dalam proses" -usernameInfo: "Nama yang mengidentifikasikan akun kamu dari yang lain pada peladen ini. Kamu dapat menggunakan alfabet (a~z, A~Z), digit (0~9) atau garis bawah (_). Username tidak dapat diubah setelahnya." -aiChanMode: "Mode Ai" -keepCw: "Biarkan Peringatan Konten" -pubSub: "Akun Pub/Sub" -lastCommunication: "Komunikasi terakhir" -resolved: "Selesai" -unresolved: "Belum selesai" -breakFollow: "Batalkan mengikuti" -itsOn: "Aktif" -itsOff: "Nonaktif" -emailRequiredForSignup: "Membutuhkan alamat surel untuk mendaftar" -unread: "Belum dibaca" -filter: "Saring" -controlPanel: "Panel kendali" -manageAccounts: "Kelola Akun" -makeReactionsPublic: "Tampilkan riwayat reaksi ke publik" -makeReactionsPublicDescription: "Pengaturan ini akan membuat daftar dari semua reaksi masa lalu kamu ditampilkan secara publik." -classic: "Klasik" -muteThread: "Bisukan thread" -unmuteThread: "Suarakan thread" -ffVisibility: "Visibilitas Mengikuti/Pengikut" -ffVisibilityDescription: "Mengatur siapa yang dapat melihat pengikutmu dan yang kamu ikuti." -continueThread: "Lihat lanjutan thread" -deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?" -incorrectPassword: "Kata sandi salah." -voteConfirm: "Konfirmasi suara kamu untuk ({choice})?" -hide: "Sembunyikan" -leaveGroup: "Keluar grup" -leaveGroupConfirm: "Apakah kamu yakin untuk keluar dari \"{name}\"?" -useDrawerReactionPickerForMobile: "Tampilkan bilah reaksi sebagai laci di ponsel" -welcomeBackWithName: "Selamat datang kembali, {name}." -clickToFinishEmailVerification: "Mohon klik [{ok}] untuk menyelesaikan verifikasi email." -overridedDeviceKind: "Tipe perangkat" -smartphone: "Ponsel" -tablet: "Tablet" -auto: "Otomatis" -themeColor: "Warna Tema" -size: "Ukuran" -numberOfColumn: "Jumlah per kolom" -searchByGoogle: "Penelusuran" -instanceDefaultLightTheme: "Bawaan instan tema terang" -instanceDefaultDarkTheme: "Bawaan instan tema gelap" -instanceDefaultThemeDescription: "Masukkan kode tema di format obyek." -mutePeriod: "Batas waktu bisu" -indefinitely: "Selamanya" -tenMinutes: "10 Menit" -oneHour: "1 Jam" -oneDay: "1 Hari" -oneWeek: "1 Bulan" -reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan." -failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun" -rateLimitExceeded: "Batas sudah terlampaui" -cropImage: "potong gambar" -cropImageAsk: "Ingin memotong gambar?" -file: "Berkas" -reverse: "Balik" -colored: "Diwarnai" -label: "Label" -localOnly: "Hanya lokal" -account: "Akun" -_emailUnavailable: - used: "Alamat surel ini telah digunakan" - format: "Format tidak valid." - disposable: "Alamat surel temporer tidak dapat digunakan" - mx: "Peladen alamat surel ini tidak valid" - smtp: "Peladen alamat surel ini tidak merespon" -_ffVisibility: - public: "Terbitkan" - followers: "Tampil untuk pengikut saja" - private: "Tersembunyi" -_signup: - almostThere: "Hampir selesai" - emailAddressInfo: "Mohon masukkan alamat surel kamu." - emailSent: "Konfirmasi surel telah dikirimkan ke alamat surel kamu ({email}). Mohon klik tautan yang tercantum di dalamnya untuk menyelesaikan pembuatan akun." -_accountDelete: - accountDelete: "Hapus akun" - mayTakeTime: "Karena penghapusan akun merupakan proses yang berat dan intensif, kemungkinan dapat membutuhkan waktu untuk menyelesaikan tergantung daripada berapa banyak konten yang kamu buat dan berapa banyak berkas yang telah kamu unggah." - sendEmail: "Setelah penghapusan akun selesai, pemberitahuan akan dikirimkan ke alamat surel yang terdaftarkan pada akun ini." - requestAccountDelete: "Minta penghapusan akun" - started: "Penghapusan telah dimulai" - inProgress: "Penghapusan sedang dalam proses" -_ad: - back: "Kembali" - reduceFrequencyOfThisAd: "Tampilkan iklan ini lebih sedikit" -_forgotPassword: - enterEmail: "Masukkan alamat surel yang kamu gunakan pada saat mendaftar. Sebuah tautan untuk mengatur ulang kata sandi kamu akan dikirimkan ke alamat surel tersebut." - ifNoEmail: "Apabila kamu tidak menggunakan surel pada saat pendaftaran, mohon hubungi admin segera." - contactAdmin: "Instansi ini tidak mendukung menggunakan alamat surel, mohon kontak admin untuk mengatur ulang password kamu." -_gallery: - my: "Postingan saya" - liked: "Postingan yang disukai" - like: "Suka" - unlike: "Hapus suka" -_email: - _follow: - title: "Mengikuti kamu" - _receiveFollowRequest: - title: "Kamu menerima permintaan mengikuti" -_plugin: - install: "Memasang plugin" - installWarn: "Mohon jangan memasang plugin yang tidak dapat dipercayai." - manage: "Manajemen plugin" -_registry: - scope: "Lingkup" - key: "Kunci" - keys: "Kunci" - domain: "Domain" - createKey: "Buat kunci" -_aboutMisskey: - about: "Misskey adalah perangkat lunak sumber terbuka yang sedang dikembangkan oleh syuilo sejak 2014." - contributors: "Kontributor utama" - allContributors: "Seluruh kontributor" - source: "Sumber kode" - translation: "Terjemahkan Misskey" - donate: "Donasi ke Misskey" - morePatrons: "Kami sangat mengapresiasi dukungan dari banyak penolong lain yang tidak tercantum disini. Terima kasih! 🥰" - patrons: "Pendukung" -_nsfw: - respect: "Sembunyikan media NSFW" - ignore: "Jangan sembunyikan media NSFW" - force: "Sembunyikan semua media" -_mfm: - cheatSheet: "Contekan MFM" - intro: "MFM adalah Misskey-exclusive Markup Language yang dapat digunakan di banyak tempat. Berikut kamu bisa melihat daftar dari syntax MFM yang ada." - dummy: "Misskey membentangkan dunia Fediverse" - mention: "Sebut" - mentionDescription: "Kamu dapat menentukan pengguna tertentu dengan menggunakan simbol-At dan nama engguna mereka." - hashtag: "Tagar" - hashtagDescription: "Kamu dapat menentukan tagar dengan menggunakan angka dan teks." - url: "URL" - urlDescription: "URL dapat ditampilkan." - link: "Tautan" - linkDescription: "Bagian tertentu dari teks dapat ditampilka sebagai URL." - bold: "Tebal" - boldDescription: "Sorot tulisan dengan membuatnya tebal." - small: "Kecil" - smallDescription: "Tampilkan konten kecil dan tipis." - center: "Tengah" - centerDescription: "Tampilkan konten di tengah." - inlineCode: "Kode (Dalam baris)" - inlineCodeDescription: "Menampilkan sorotan sintaks dalam baris untuk kode(program-)." - blockCode: "Kode (Blok)" - blockCodeDescription: "Menampilkan sorotan sintaks untuk kode(program-) multi baris dalam sebuah blok." - inlineMath: "Matematika (Dalam baris)" - inlineMathDescription: "Menampilkan formula matematika (KaTeX) dalam baris." - blockMath: "Matematika (Blok)" - blockMathDescription: "Menampilkan formula matematika (KaTeX) multibaris dalam sebuah blok." - quote: "Kutip" - quoteDescription: "Menampilkan konten sebagai kutipan." - emoji: "Emoji kustom" - emojiDescription: "Emoji kustom dapat ditampilkan dengan mengurung nama emoji kustom menggunakan tanda titik dua." - search: "Penelusuran" - searchDescription: "Menampilkan kotak pencarian dengan teks yang sudah dimasukkan." - flip: "Balik" - flipDescription: "Balikkan konten secara horizontal atau vertikal." - jelly: "Animasi (Jelly)" - jellyDescription: "Menerapkan animasi seperti jelly" - tada: "Animasi (Tada)" - tadaDescription: "Menerapkan animasi seperti \"Kejutan!\"." - jump: "Animasi (Loncat)" - jumpDescription: "Menerapkan animasi melompat." - bounce: "Animasi (Melambung)" - bounceDescription: "Menerapkan animasi melambung." - shake: "Animasi (Goyang)" - shakeDescription: "Menerapkan animasi bergoyang." - twitch: "Animasi (Cubit)" - twitchDescription: "Terapkan animasi cubit yang kuat." - spin: "Animasi (Putar)" - spinDescription: "Terapkan animasi putar." - x2: "Besar" - x2Description: "Tampilkan konten menjadi besar." - x3: "Lebih besar" - x3Description: "Tampilkan konten menjadi lebih besar." - x4: "Sangat besar" - x4Description: "Tampilka konten menjadi sangat besar." - blur: "Buram" - blurDescription: "Konten dapat diburamkan dengan efek ini. Konten dapat ditampilkan dengan jelas dengan melayangkan kursor tetikus di atasnya." - font: "Font" - fontDescription: "Setel font yang ditampilkan untuk konten." - rainbow: "Pelangi" - rainbowDescription: "Membuat konten muncul dalam warna pelangi." - sparkle: "Kelap-kelip" - sparkleDescription: "Memberikan konten efek partikel kelap-kelip." - rotate: "Putar" - rotateDescription: "Putar konten sesuai sudut yang ditentukan." -_instanceTicker: - none: "Jangan tampilkan" - remote: "Tampilkan untuk pengguna luar" - always: "Selalu tampilkan" -_serverDisconnectedBehavior: - reload: "Muat ulang otomatis" - dialog: "Tampilkan dialog peringatan" - quiet: "Tampilkan peringatan tidak mengganggu" -_channel: - create: "Buat saluran" - edit: "Sunting saluran" - setBanner: "Setel banner" - removeBanner: "Hapus banner" - featured: "Tren" - owned: "Dimiliki" - following: "Mengikuti" - usersCount: "{n} Partisipan" - notesCount: "terdapat {n} catatan" -_menuDisplay: - sideFull: "Horisontal" - sideIcon: "Horisontal (Ikon)" - top: "Atas" - hide: "Sembunyikan" -_wordMute: - muteWords: "Kata yang dibisukan" - muteWordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR." - muteWordsDescription2: "Kurung kata kunci dengan garis miring untuk menggunakan regular expressions." - softDescription: "Sembunyikan catatan yang memenuhi aturan kondisi dari linimasa." - hardDescription: "Cegah catatan memenuhi aturan kondisi dari ditambahkan ke linimasa. Dengan tambahan, catatan berikut tidak akan ditambahkan ke linimasa meskipun jika kondisi tersebut diubah." - soft: "Lembut" - hard: "Keras" - mutedNotes: "Catatan yang dibisukan" -_instanceMute: - instanceMuteDescription: "Pengaturan ini akan membisukan note/renote apa saja dari instansi yang terdaftar, termasuk pengguna yang membalas pengguna lain dalam instansi yang dibisukan." - instanceMuteDescription2: "Pisah dengan baris baru" - title: "Sembunyikan note dari instansi terdaftar." - heading: "Daftar instansi yang akan dibisukan" -_theme: - explore: "Jelajahi tema" - install: "Pasang tema" - manage: "Manajer tema" - code: "Kode tema" - description: "Deskripsi" - installed: "{name} telah dipasang" - installedThemes: "Tema yang dipasang" - builtinThemes: "Tema bawaan" - alreadyInstalled: "Tema telah dipasang" - invalid: "Format tema tidak valid" - make: "Buat tema" - base: "Dasar" - addConstant: "Tambah konstanta" - constant: "Konstanta" - defaultValue: "Nilai bawaan" - color: "Warna" - refProp: "Referensikan properti" - refConst: "Referensikan konstanta" - key: "Kunci" - func: "Fungsi" - funcKind: "Tipe fungsi" - argument: "Argumen" - basedProp: "Mereferensikan properti" - alpha: "Opasitas" - darken: "Mengelamkan" - lighten: "Menerangkan" - inputConstantName: "Masukkan nama untuk konstanta" - importInfo: "Jika kamu memasukkan kode tema disini, kamu dapat mengimpornya ke penyunting tema" - deleteConstantConfirm: "apakah kamu ingin menghapus konstanta {const}?" - keys: - accent: "Aksen" - bg: "Latar belakang" - fg: "Teks" - focus: "Fokus" - indicator: "Indikator" - panel: "Panel" - shadow: "Bayangan" - header: "Header" - navBg: "Latar belakang bilah samping" - navFg: "Teks bilah samping" - navHoverFg: "Teks bilah samping (Mengambang)" - navActive: "Teks bilah samping (Aktif)" - navIndicator: "Indikator bilah samping" - link: "Tautan" - hashtag: "Tagar" - mention: "Sebut" - mentionMe: "Sebutan (saya)" - renote: "Renote" - modalBg: "Latar belakang modal" - divider: "Pembagi" - scrollbarHandle: "Pegangan bilah gulir" - scrollbarHandleHover: "Pegangan bilah gulir (Mengambang)" - dateLabelFg: "Teks label tanggal" - infoBg: "Latar belakang informasi" - infoFg: "Teks informasi" - infoWarnBg: "Latar belakang peringatan" - infoWarnFg: "Teks peringatan" - cwBg: "Latar belakang tombol Sembunyikan Konten" - cwFg: "Teks tombol Sembunyikan Konten" - cwHoverBg: "Latar belakang tombol Sembunyikan Konten (Mengambang)" - toastBg: "Latar belakang pemberitahuan" - toastFg: "Teks pemberitahuan" - buttonBg: "Latar belakang tombol" - buttonHoverBg: "Latar belakang tombol (Mengambang)" - inputBorder: "Batas bidang masukan" - listItemHoverBg: "Latar belakang daftar item (Mengambang)" - driveFolderBg: "Latar belakang folder drive" - wallpaperOverlay: "Lapisan wallpaper" - badge: "Lencana" - messageBg: "Latar belakang obrolan" - accentDarken: "Aksen (Gelap)" - accentLighten: "Aksen (Terang)" - fgHighlighted: "Teks yang disorot" -_sfx: - note: "Catatan" - noteMy: "Catatan (Saya)" - notification: "Pemberitahuan" - chat: "Pesan" - chatBg: "Obrolan (Latar Belakang)" - antenna: "Penerimaan Antenna" - channel: "Pemberitahuan saluran" -_ago: - future: "Masa depan" - justNow: "Baru saja" - secondsAgo: "{n} detik lalu" - minutesAgo: "{n} menit lalu" - hoursAgo: "{n} jam lalu" - daysAgo: "{n} hari lalu" - weeksAgo: "{n} minggu lalu" - monthsAgo: "{n} bulan lalu" - yearsAgo: "{n} tahun lalu" -_time: - second: "detik" - minute: "menit" - hour: "jam" - day: "hari" -_tutorial: - title: "Cara menggunakan Misskey" - step1_1: "Selamat datang!" - step1_2: "Halaman ini disebut \"linimasa\". Halaman ini menampilkan \"catatan\" yang diurutkan secara kronologis dari orang-orang yang kamu \"ikuti\"." - step1_3: "Linimasa kamu kosong, karena kamu belum mencatat catatan apapun atau mengikuti siapapun." - step2_1: "Selesaikan menyetel profilmu sebelum menulis sebuah catatan atau mengikuti seseorang." - step2_2: "Menyediakan beberapa informasi tentang siapa kamu akan membuat orang lain mudah untuk mengikutimu kembali." - step3_1: "Selesai menyetel profil kamu?" - step3_2: "Langkah selanjutnya adalah membuat catatan. Kamu bisa lakukan ini dengan mengklik ikon pensil pada layar kamu." - step3_3: "Isilah di dalam modal dan tekan tombol pada atas kanan untuk memcatat catatan kamu." - step3_4: "Bingung tidak berpikiran untuk mengatakan sesuatu? Coba saja \"baru aja ikutan bikin akun misskey punyaku\"!" - step4_1: "Selesai mencatat catatan pertamamu?" - step4_2: "Horee! Sekarang catatan pertamamu sudah ditampilkan di linimasa milikmu." - step5_1: "Sekarang, mari mencoba untuk membuat linimasamu lebih hidup dengan mengikuti orang lain." - step5_2: "{featured} akan memperlihatkan catatan yang sedang tren saat ini untuk kamu. {explore} akan membantumu untuk mencari pengguna yang sedang tren juga saat ini. Coba ikuti seseorang yang kamu suka!" - step5_3: "Untuk mengikuti pengguna lain, klik pada ikon mereka dan tekan tombol follow pada profil mereka." - step5_4: "Jika pengguna lain memiliki ikon gembok di sebelah nama mereka, maka pengguna rersebut harus menyetujui permintaan mengikuti dari kamu secara manual." - step6_1: "Sekarang kamu dapat melihat catatan pengguna lain pada linimasamu." - step6_2: "Kamu juga bisa memberikan \"reaksi\" ke catatan orang lain untuk merespon dengan cepat." - step6_3: "Untuk memberikan \"reaksi\", tekan tanda \"+\" pada catatan pengguna lain dan pilih emoji yang kamu suka untuk memberikan reaksimu kepada mereka." - step7_1: "Yay, Selamat! Kamu sudah menyelesaikan tutorial dasar Misskey." - step7_2: "Jika kamu ingin mempelajari lebih lanjut tentang Misskey, cobalah berkunjung ke bagian {help}." - step7_3: "Semoga berhasil dan bersenang-senanglah! 🚀" -_2fa: - alreadyRegistered: "Kamu telah mendaftarkan perangkat otentikasi dua faktor." - registerDevice: "Daftarkan perangkat baru" - registerKey: "Daftarkan kunci keamanan baru" - step1: "Pertama, pasang aplikasi otentikasi (seperti {a} atau {b}) di perangkat kamu." - step2: "Lalu, pindai kode QR yang ada di layar." - step2Url: "Di aplikasi desktop, masukkan URL berikut:" - step3: "Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan." - step4: "Mulai sekarang, upaya login apapun akan meminta token login dari aplikasi otentikasi kamu." - securityKeyInfo: "Kamu dapat memasang otentikasi WebAuthN untuk mengamankan proses login lebih lanjut dengan tidak hanya perangkat keras kunci keamanan yang mendukung FIDO2, namun juga sidik jari atau otentikasi PIN pada perangkatmu." -_permissions: - "read:account": "Lihat informasi akun" - "write:account": "Sunting informasi akun" - "read:blocks": "Lihat daftar orang yang diblokir" - "write:blocks": "Sunting daftar orang yang diblokir" - "read:drive": "Akses berkas dan folder drive" - "write:drive": "Sunting atau hapus berkas dan folder drive" - "read:favorites": "Lihat daftar favorit" - "write:favorites": "Sunting daftar favorit" - "read:following": "Lihat informasi mengikuti" - "write:following": "Ikuti atau Stop Ikuti akun lain" - "read:messaging": "Lihat obrolan" - "write:messaging": "Buat atau hapus obrolan" - "read:mutes": "Lihat daftar orang yang dibisukan" - "write:mutes": "Sunting daftar orang yang dibisukan" - "write:notes": "Buat atau hapus catatan" - "read:notifications": "Lihat pemberitahuan" - "write:notifications": "Sunting pemberitahuan" - "read:reactions": "Lihat reaksi" - "write:reactions": "Sunting reaksi" - "write:votes": "Beri suara" - "read:pages": "Lihat halaman" - "write:pages": "Sunting atau hapus halaman" - "read:page-likes": "Lihat suka pada halaman" - "write:page-likes": "Sunting suka pada Halaman" - "read:user-groups": "Lihat grup pengguna" - "write:user-groups": "Sunting atau hapus grup pengguna" - "read:channels": "Lihat saluran" - "write:channels": "Sunting saluran" - "read:gallery": "Lihat galeri" - "write:gallery": "Sunting galeri" - "read:gallery-likes": "Lihat daftar postingan galeri yang disukai" - "write:gallery-likes": "Sunting daftar postingan galeri yang disukai" -_auth: - shareAccess: "Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?" - shareAccessAsk: "Apakah kamu ingin mengijinkan aplikasi ini untuk mengakses akun kamu?" - permissionAsk: "Aplikasi ini membutuhkan beberapa ijin, yaitu:" - pleaseGoBack: "Mohon kembali ke aplikasi kamu" - callback: "Mengembalikan kamu ke aplikasi" - denied: "Akses ditolak" -_antennaSources: - all: "Semua catatan" - homeTimeline: "Catatan dari pengguna yang diikuti" - users: "Catatan dari pengguna tertentu" - userList: "Catatan dari daftar tertentu" - userGroup: "Catatan dari pengguna dalam grup yang ditentukan" -_weekday: - sunday: "Minggu" - monday: "Senin" - tuesday: "Selasa" - wednesday: "Rabu" - thursday: "Kamis" - friday: "Jumat" - saturday: "Sabtu" -_widgets: - memo: "Catatan memo" - notifications: "Pemberitahuan" - timeline: "Linimasa" - calendar: "Kalender" - trends: "Tren" - clock: "Jam" - rss: "Pembaca RSS" - activity: "Aktivitas" - photos: "Foto" - digitalClock: "Jam digital" - federation: "Federasi" - postForm: "Buat catatan" - slideshow: "Slideshow" - button: "Tombol" - onlineUsers: "Pengguna online" - jobQueue: "Antrian kerja" - serverMetric: "Statistik peladen" - aiscript: "Konsol AiScript" - aichan: "Ai" -_cw: - hide: "Sembunyikan" - show: "Lihat konten" - chars: "{count} karakter" - files: "{count} berkas" -_poll: - noOnlyOneChoice: "Dibutuhkan sedikitnya dua pilihan" - choiceN: "Pilihan {n}" - noMore: "Kamu tidak dapat menambahkan pilihan lagi" - canMultipleVote: "Bolehkan memilih banyak" - expiration: "Batas akhir" - infinite: "Selamanya" - at: "Berakhir pada..." - after: "Berakhir setelah..." - deadlineDate: "Tanggal batas akhir" - deadlineTime: "jam" - duration: "Durasi" - votesCount: "{n} suara" - totalVotes: "Total {n} suara" - vote: "Beri suara" - showResult: "Lihat hasil" - voted: "Telah memilih" - closed: "Telah berakhir" - remainingDays: "Berakhir dalam {d} hari {h} jam" - remainingHours: "Berakhir dalam {h} jam {m} menit" - remainingMinutes: "Berakhir dalam {m} menit {s} detik" - remainingSeconds: "Berakhir dalam {s} detik" -_visibility: - public: "Publik" - publicDescription: "Catat ke linimasa global" - home: "Beranda" - homeDescription: "Catat ke linimasa beranda saja" - followers: "Pengikut" - followersDescription: "Catat ke pengikut saja" - specified: "Langsung" - specifiedDescription: "Catat ke pengguna yang ditentukan saja" - localOnly: "Hanya lokal" - localOnlyDescription: "Hanya dapat dilihat di instansi lokal" -_postForm: - replyPlaceholder: "Balas ke catatan ini..." - quotePlaceholder: "Kutip catatan ini..." - channelPlaceholder: "Posting ke kanal" - _placeholders: - a: "Sedang apa kamu saat ini?" - b: "Apa yang terjadi di sekitarmu?" - c: "Apa yang sedang kamu pikirkan?" - d: "Yang ingin kamu sampaikan?" - e: "Tuliskan yang kamu ingin sampaikan..." - f: "Menunggu kamu untuk menulis...." -_profile: - name: "Nama" - username: "Nama Pengguna" - description: "Bio" - youCanIncludeHashtags: "Kamu juga dapat menambahkan tagar ke dalam bio." - metadata: "Informasi tambahan" - metadataEdit: "Sunting informasi tambahan" - metadataDescription: "Kamu dapat menampilkan hingga 4 bagian informasi tambahan ke dalam profilmu." - metadataLabel: "Label" - metadataContent: "Isi" - changeAvatar: "Ubah avatar" - changeBanner: "Ubah header" -_exportOrImport: - allNotes: "Semua catatan" - followingList: "Ikuti" - muteList: "Bisukan" - blockingList: "Blokir" - userLists: "Daftar" - excludeMutingUsers: "Kecualikan pengguna yang dibisukan" - excludeInactiveUsers: "Kecualikan pengguna tidak aktif" -_charts: - federation: "Federasi" - apRequest: "Permintaan" - usersIncDec: "Perbedaan dalam # pengguna" - usersTotal: "Jumlah # pengguna" - activeUsers: "Pengguna aktif" - notesIncDec: "Perbedaan # dalam catatan" - localNotesIncDec: "Perbedaan # dalam catatan lokal" - remoteNotesIncDec: "Perbedaan # dalam catatan luar" - notesTotal: "Total # catatan" - filesIncDec: "Perbedaan # dalam berkas" - filesTotal: "Jumlah # berkas" - storageUsageIncDec: "Perbedaan dalam penggunaan penyimpanan" - storageUsageTotal: "Jumlah penggunaan penyimpanan" -_instanceCharts: - requests: "Permintaan" - users: "Perbedaan dalam # pengguna" - usersTotal: "Jumlah # pengguna kumulatif" - notes: "Perbedaan # dalam catatan" - notesTotal: "Jumlah # catatan kumulatif" - ff: "Perbedaan jumlah # dalam pengikut" - ffTotal: "Jumlah # pengikut kumulatif" - cacheSize: "Perbedaan dalam ukuran tembolok" - cacheSizeTotal: "Total ukuran tembolok kumulatif" - files: "Perbedaan dalam # berkas" - filesTotal: "Jumlah # berkas kumulatif" -_timelines: - home: "Beranda" - local: "Lokal" - social: "Sosial" - global: "Global" -_pages: - newPage: "Buat halaman baru" - editPage: "Sunting halaman" - readPage: "Lihat sumber kode aktif" - created: "Halaman berhasil dibuat" - updated: "Halaman berhasil diperbaharui!" - deleted: "Halaman telah dihapus" - pageSetting: "Pengaturan Halaman" - nameAlreadyExists: "URL Halaman yang ditentukan sudah ada" - invalidNameTitle: "URL Halaman yang ditentukan tidak valid" - invalidNameText: "Cek apabila Halaman tidak kosong" - editThisPage: "Sunting Halaman ini" - viewSource: "Lihat sumber" - viewPage: "Lihat Halaman" - like: "Suka" - unlike: "Hapus suka" - my: "Halaman saya" - liked: "Halaman yang disukai" - featured: "Populer" - inspector: "Inspektor" - contents: "Konten" - content: "Blokir Halaman" - variables: "Variabel" - title: "Judul" - url: "URL Halaman" - summary: "Ringkasan Halaman" - alignCenter: "Tengah" - hideTitleWhenPinned: "Sembunyikan judul halaman saat disematkan ke profil" - font: "Font" - fontSerif: "Serif" - fontSansSerif: "Sans-serif" - eyeCatchingImageSet: "Setel gambar yang menarik" - eyeCatchingImageRemove: "Hapus gambar yang menarik" - chooseBlock: "Tambahkan blokir" - selectType: "Pilih jenis" - enterVariableName: "Mohon masukkan nama untuk variabel kamu" - variableNameIsAlreadyUsed: "Nama ini sudah digunakan oleh variabel lain" - contentBlocks: "Konten" - inputBlocks: "Masukan" - specialBlocks: "Khusus" - blocks: - text: "Teks" - textarea: "Area teks" - section: "Bagian" - image: "Gambar" - button: "Tombol" - if: "Jika" - _if: - variable: "Variabel" - post: "Buat catatan" - _post: - text: "Isi" - attachCanvasImage: "Posting dengan kanvas sebagai gambar" - canvasId: "ID Kanvas" - textInput: "Masukan teks" - _textInput: - name: "Nama variabel" - text: "Judul" - default: "Nilai bawaan" - textareaInput: "Masukan teks multibaris" - _textareaInput: - name: "Nama variabel" - text: "Judul" - default: "Nilai bawaan" - numberInput: "Masukan angka" - _numberInput: - name: "Nama variabel" - text: "Judul" - default: "Nilai bawaan" - canvas: "Kanvas" - _canvas: - id: "ID Kanvas" - width: "Lebar" - height: "Tinggi" - note: "Catatan yang ditanam" - _note: - id: "ID Catatan" - idDescription: "Kamu dapat menyetel ini dengan menempelkan tautan URL Catatan." - detailed: "Tampilan rincian" - switch: "Beralih" - _switch: - name: "Nama variabel" - text: "Judul" - default: "Nilai bawaan" - counter: "Penghitung" - _counter: - name: "Nama variabel" - text: "Judul" - inc: "Meningkat dengan" - _button: - text: "Judul" - colored: "Diwarnai" - action: "Operasi akan dimulai ketika tombol ditekan" - _action: - dialog: "Tampilkan dialog" - _dialog: - content: "Isi" - resetRandom: "Atur ulang benih acak" - pushEvent: "Kirim event" - _pushEvent: - event: "Nama event" - message: "Pesan yang tampil ketika diaktifkan" - variable: "Variable untuk kirim" - no-variable: "Tidak ada" - callAiScript: "Panggil AiScript" - _callAiScript: - functionName: "Nama fungsi" - radioButton: "Pilihan" - _radioButton: - name: "Nama variabel" - title: "Judul" - values: "Daftar pilihan (dipisahkan dengan garis baru)" - default: "Nilai bawaan" - script: - categories: - flow: "Arus kendali" - logical: "Operasi logis" - operation: "Menghitung" - comparison: "Membandingkan" - random: "Acak" - value: "Nilai" - fn: "Fungsi" - text: "Operasi teks" - convert: "Mengubah" - list: "Daftar" - blocks: - text: "Teks" - multiLineText: "Teks (multibaris)" - textList: "Daftar teks" - _textList: - info: "Pisahkan setiap entri dengan baris baru" - strLen: "Panjang teks" - _strLen: - arg1: "Teks" - strPick: "Ekstrak karakter" - _strPick: - arg1: "Teks" - arg2: "Lokasi karakter" - strReplace: "Penggantian teks" - _strReplace: - arg1: "Teks" - arg2: "Teks yang akan diganti" - arg3: "Diganti dengan" - strReverse: "Balikkan teks" - _strReverse: - arg1: "Teks" - join: "Rangkaian teks" - _join: - arg1: "Daftar" - arg2: "Pemisah" - add: "Tambah" - _add: - arg1: "A" - arg2: "B" - subtract: "Kurangi" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Kali" - _multiply: - arg1: "A" - arg2: "B" - divide: "Bagi" - _divide: - arg1: "A" - arg2: "B" - mod: "Sisa" - _mod: - arg1: "A" - arg2: "B" - round: "Bulat desimal" - _round: - arg1: "Angka" - eq: "A dan B adalah sama" - _eq: - arg1: "A" - arg2: "B" - notEq: "A dan B adalah berbeda" - _notEq: - arg1: "A" - arg2: "B" - and: "A DAN B" - _and: - arg1: "A" - arg2: "B" - or: "A ATAU B" - _or: - arg1: "A" - arg2: "B" - lt: "< A ikurang dari B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A lebih dari B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A kurang dari sama dengan B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A lebih dari sama dengan B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Cabang" - _if: - arg1: "Jika" - arg2: "Jika benar" - arg3: "Jika salah" - not: "BUKAN" - _not: - arg1: "NOT" - random: "Acak" - _random: - arg1: "Probabilitas" - rannum: "Angka acak" - _rannum: - arg1: "Nilai minimum" - arg2: "Nilai maksimum" - randomPick: "Pilih secara acak dari daftar" - _randomPick: - arg1: "Daftar" - dailyRandom: "Acak (bertahan sehari)" - _dailyRandom: - arg1: "Probabilitas" - dailyRannum: "Angka acak (bertahan sehari)" - _dailyRannum: - arg1: "Nilai minimum" - arg2: "Nilai maksimum" - dailyRandomPick: "Pilih secara acak dari daftar (bertahan sehari)" - _dailyRandomPick: - arg1: "Daftar" - seedRandom: "Acak (dengan seed)" - _seedRandom: - arg1: "Seed" - arg2: "Probabilitas" - seedRannum: "Angka acak (dengan seed)" - _seedRannum: - arg1: "Seed" - arg2: "Nilai minimum" - arg3: "Nilai maksimum" - seedRandomPick: "Pilih secara acak dari daftar (dengan seed)" - _seedRandomPick: - arg1: "Seed" - arg2: "Daftar" - DRPWPM: "Pilih secara acak dari daftar berbobot (bertahan sehari)" - _DRPWPM: - arg1: "Daftar teks" - pick: "Pilih dari daftar" - _pick: - arg1: "Daftar" - arg2: "Posisi" - listLen: "Dapatkan panjangnya dari daftar" - _listLen: - arg1: "Daftar" - number: "Angka" - stringToNumber: "Teks ke angka" - _stringToNumber: - arg1: "Teks" - numberToString: "Angka ke teks" - _numberToString: - arg1: "Angka" - splitStrByLine: "Pisahkan teks dengan baris baru" - _splitStrByLine: - arg1: "Teks" - ref: "Variabel" - aiScriptVar: "Variabel AiScript" - fn: "Fungsi" - _fn: - slots: "Slot" - slots-info: "Pisahkan setiap slot dengan baris baru" - arg1: "Keluaran" - for: "Ulangi" - _for: - arg1: "Jumlah angka untuk diulangi" - arg2: "Aksi" - typeError: "Slot {slot} menerima tipe \"{expect}\", sayangnya nilai yang disediakan adalah \"{actual}\"!" - thereIsEmptySlot: "Slot {slot} kosong!" - types: - string: "Teks" - number: "Angka" - boolean: "Markah" - array: "Daftar" - stringArray: "Daftar teks" - emptySlot: "Slot kosong" - enviromentVariables: "Variabel Lingkungan" - pageVariables: "Elemen halaman" - argVariables: "Masukan slot" -_relayStatus: - requesting: "Menunggu" - accepted: "Disetujui" - rejected: "Ditolak" -_notification: - fileUploaded: "Berkas telah berhasil diunggah" - youGotMention: "{name} meyebut kamu" - youGotReply: "{name} membalas kamu" - youGotQuote: "{name} mengutip kamu" - youRenoted: "{name} me-renote kamu" - youGotPoll: "{name} memilih di angket kamu" - youGotMessagingMessageFromUser: "{name} mengirimi kamu pesan" - youGotMessagingMessageFromGroup: "Sebuah pesan telah dikirim ke grup {name}" - youWereFollowed: "Mengikuti kamu" - youReceivedFollowRequest: "Kamu menerima permintaan mengikuti" - yourFollowRequestAccepted: "Permintaan mengikuti kamu telah diterima" - youWereInvitedToGroup: "Telah diundang ke grup" - pollEnded: "Hasil Kuesioner telah keluar" - emptyPushNotificationMessage: "Pembaruan notifikasi dorong" - _types: - all: "Semua" - follow: "Ikuti" - mention: "Sebut" - reply: "Balasan" - renote: "Renote" - quote: "Kutip" - reaction: "Reaksi" - pollVote: "Memilih di angket" - pollEnded: "Jajak pendapat berakhir" - receiveFollowRequest: "Permintaan mengikuti diterima" - followRequestAccepted: "Permintaan mengikuti disetujui" - groupInvited: "Diundang ke grup" - app: "Pemberitahuan dari aplikasi" - _actions: - followBack: "Ikuti Kembali" - reply: "Balas" - renote: "Renote" -_deck: - alwaysShowMainColumn: "Selalu tampilkan kolom utama" - columnAlign: "Luruskan kolom" - addColumn: "Tambahkan kolom" - swapLeft: "Pindah ke kiri" - swapRight: "Pindah ke kanan" - swapUp: "Pindah ke atas" - swapDown: "Pindah ke bawah" - stackLeft: "Tumpukkan di kolom kiri" - popRight: "Keluarkan di kanan" - profile: "Profil" - _columns: - main: "Utama" - widgets: "Widget" - notifications: "Pemberitahuan" - tl: "Linimasa" - antenna: "Antena" - list: "Daftar" - mentions: "Sebutan" - direct: "Langsung" diff --git a/locales/index.js b/locales/index.js index 92cd9b467..b76fa1dea 100644 --- a/locales/index.js +++ b/locales/index.js @@ -21,8 +21,6 @@ const languages = [ 'en-US', 'es-ES', 'fr-FR', - 'id-ID', - 'it-IT', 'ja-JP', 'ja-KS', 'kab-KAB', @@ -33,10 +31,8 @@ const languages = [ 'pl-PL', 'pt-PT', 'ru-RU', - 'sk-SK', 'ug-CN', 'uk-UA', - 'vi-VN', 'zh-CN', 'zh-TW', ]; @@ -47,10 +43,7 @@ const primaries = { 'zh': 'CN', }; -// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く -const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), ''); - -const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8'))) || {}, a), {}); +const locales = languages.reduce((a, c) => (a[c] = yaml.safeLoad(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8')) || {}, a), {}); module.exports = Object.entries(locales) .reduce((a, [k ,v]) => (a[k] = (() => { diff --git a/locales/it-IT.yml b/locales/it-IT.yml deleted file mode 100644 index 410928bc5..000000000 --- a/locales/it-IT.yml +++ /dev/null @@ -1,1469 +0,0 @@ ---- -_lang_: "Italiano" -headlineMisskey: "Rete collegata tramite note" -introMisskey: "Benvenut@! Misskey è un servizio di microblogging decentralizzato, libero e aperto. \nScrivi \"note\" per condividere ciò che sta succedendo adesso o per dire a tutti qualcosa di te. 📡\nGrazie alla funzione \"reazioni\" puoi anche mandare reazioni rapide alle note delle altre persone del Fediverso. 👍\nEsplora un nuovo mondo! 🚀" -monthAndDay: "{day}/{month}" -search: "Cerca" -notifications: "Notifiche" -username: "Nome utente" -password: "Password" -forgotPassword: "Hai dimenticato la tua password?" -fetchingAsApObject: "Recuperando dal Fediverso..." -ok: "OK" -gotIt: "Ho capito" -cancel: "Annulla" -enterUsername: "Inserisci un nome utente" -renotedBy: "Rinotato da {user}" -noNotes: "Nessuna nota!" -noNotifications: "Nessuna notifica" -instance: "Istanza" -settings: "Impostazioni" -basicSettings: "Impostazioni generali" -otherSettings: "Altre impostazioni" -openInWindow: "Apri in una finestra" -profile: "Profilo" -timeline: "Timeline" -noAccountDescription: "L'utente non ha ancora scritto niente nella biografia di profilo." -login: "Accedi" -loggingIn: "Accesso in corso..." -logout: "Esci" -signup: "Iscriviti" -uploading: "Caricamento..." -save: "Salva" -users: "Utente" -addUser: "Aggiungi utente" -favorite: "Preferiti" -favorites: "Preferiti" -unfavorite: "Rimuovi nota dai preferiti" -favorited: "Aggiunta ai tuoi preferiti." -alreadyFavorited: "Già tra i tuoi preferiti." -cantFavorite: "Impossibile aggiungere la nota ai preferiti." -pin: "Fissa sul profilo" -unpin: "Non fissare sul profilo" -copyContent: "Copia il contenuto" -copyLink: "Copia il link" -delete: "Elimina" -deleteAndEdit: "Elimina e modifica" -deleteAndEditConfirm: "Vuoi davvero cancellare questa nota e scriverla di nuovo? Verrano eliminate anche tutte le reazioni, Rinote e risposte collegate." -addToList: "Aggiungi alla lista" -sendMessage: "Invia messaggio" -copyUsername: "Copia nome utente" -searchUser: "Cerca utente" -reply: "Rispondi" -loadMore: "Mostra di più" -showMore: "Mostra di più" -showLess: "Chiudi" -youGotNewFollower: "Ha iniziato a seguirti" -receiveFollowRequest: "Hai ricevuto una richiesta di follow." -followRequestAccepted: "Richiesta di follow accettata" -mention: "Menzioni" -mentions: "Menzioni" -directNotes: "Note dirette" -importAndExport: "Importa ed esporta" -import: "Importa" -export: "Esporta" -files: "Allegati" -download: "Scarica" -driveFileDeleteConfirm: "Vuoi davvero eliminare il file「{name}? Anche gli allegati verranno eliminati." -unfollowConfirm: "Vuoi davvero smettere di seguire {name}?" -exportRequested: "Hai richiesto un'esportazione, e potrebbe volerci tempo. Quando sarà compiuta, il file verrà aggiunto direttamente al Drive." -importRequested: "Hai richiesto un'importazione. Può volerci tempo. " -lists: "Liste" -noLists: "Nessuna lista" -note: "Nota" -notes: "Note" -following: "Follows" -followers: "Followers" -followsYou: "Ti segue" -createList: "Aggiungi una nuova lista" -manageLists: "Gestisci liste" -error: "Errore" -somethingHappened: "Si è verificato un problema" -retry: "Riprova" -pageLoadError: "Caricamento pagina non riuscito. " -pageLoadErrorDescription: "Questo viene normalmente causato dalla rete o dalla cache del browser. Si prega di pulire la cache, o di attendere e riprovare più tardi." -serverIsDead: "Il server non risponde. Si prega di attendere e riprovare più tardi." -youShouldUpgradeClient: "Per visualizzare la pagina è necessario aggiornare il client alla nuova versione e ricaricare." -enterListName: "Nome della lista" -privacy: "Privacy" -makeFollowManuallyApprove: "Richiedi di approvare i follower manualmente" -defaultNoteVisibility: "Privacy predefinita delle note" -follow: "Segui" -followRequest: "Richiesta di follow" -followRequests: "Richieste di follow" -unfollow: "Smetti di seguire" -followRequestPending: "La richiesta di follow deve essere approvata" -enterEmoji: "Inserisci emoji" -renote: "Rinota" -unrenote: "Annulla rinota" -renoted: "Rinotato!" -cantRenote: "È impossibile rinotare questa nota." -cantReRenote: "È impossibile rinotare una Rinota." -quote: "Cita" -pinnedNote: "Nota fissata" -pinned: "Fissa sul profilo" -you: "Tu" -clickToShow: "Clicca per visualizzare" -sensitive: "Contenuto sensibile" -add: "Aggiungi" -reaction: "Reazione" -reactionSetting: "Reazioni visualizzate sul pannello" -reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa il pulsante \"+\" per aggiungere." -rememberNoteVisibility: "Ricordare le impostazioni di visibilità delle note" -attachCancel: "Rimuovi allegato" -markAsSensitive: "Segna come sensibile" -unmarkAsSensitive: "Segna come non sensibile" -enterFileName: "Nome del file" -mute: "Silenzia" -unmute: "Riattiva" -block: "Blocca" -unblock: "Sblocca" -suspend: "Sospendi" -unsuspend: "Annulla la sospensione dell'account" -blockConfirm: "Vuoi davvero bloccare l'account?" -unblockConfirm: "Vuoi davvero sbloccare l'account?" -suspendConfirm: "Vuoi davvero sospendere questo account?" -unsuspendConfirm: "Vuoi annullare la sospensione dell'account?" -selectList: "Seleziona una lista" -selectAntenna: "Scegli un'antenna" -selectWidget: "Seleziona widget" -editWidgets: "Modifica i widget" -editWidgetsExit: "Modifica fine" -customEmojis: "Emoji personalizzati" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Nome dell'emoji" -emojiUrl: "URL dell'emoji" -addEmoji: "Aggiungi un emoji" -settingGuide: "Configurazione suggerita" -cacheRemoteFiles: "Memorizzazione nella cache dei file remoti" -cacheRemoteFilesDescription: "Disabilitando questa opzione, i file remoti verranno linkati direttamente senza essere memorizzati nella cache. Sarà possibile risparmiare spazio di archiviazione sul server, ma il traffico aumenterà in quanto non verranno generate anteprime." -flagAsBot: "Io sono un robot" -flagAsBotDescription: "Se l'account esegue principalmente operazioni automatiche, attiva quest'opzione. Quando attivata, opera come un segnalatore per gli altri sviluppatori allo scopo di prevenire catene d’interazione senza fine con altri bot, e di adeguare i sistemi interni di Misskey perché trattino questo account come un bot." -flagAsCat: "Io sono un gatto" -flagAsCatDescription: "Abilita l'opzione \"Io sono un gatto\" per l'account." -autoAcceptFollowed: "Accetta automaticamente le richieste di follow da utenti che già segui" -addAccount: "Aggiungi account" -loginFailed: "Accesso non riuscito" -showOnRemote: "Sfoglia sull'istanza remota" -general: "Generali" -wallpaper: "Sfondo" -setWallpaper: "Imposta sfondo" -removeWallpaper: "Elimina lo sfondo" -searchWith: "Cerca: {q}" -youHaveNoLists: "Non hai ancora creato nessuna lista" -followConfirm: "Sei sicur@ di voler seguire {name}?" -proxyAccount: "Account proxy" -proxyAccountDescription: "Un account proxy è un account che funziona da follower remoto per gli utenti sotto certe condizioni. Ad esempio, quando un utente aggiunge un utente remoto alla lista, dato che se nessun utente locale segue quell'utente le sue attività non verranno distribuite, al suo posto lo seguirà un account proxy." -host: "Server remoto" -selectUser: "Seleziona utente" -recipient: "Destinatario" -annotation: "Descrizione" -federation: "Federazione" -instances: "Istanza" -registeredAt: "Registrato presso" -latestRequestSentAt: "Ultima richiesta inviata" -latestRequestReceivedAt: "Ultima richiesta ricevuta" -latestStatus: "Ultimo stato" -storageUsage: "Volume di dischi" -charts: "Grafici" -perHour: "All'ora" -perDay: "al giorno" -stopActivityDelivery: "Interrompi la distribuzione di attività" -blockThisInstance: "Blocca l'istanza" -operations: "Operazioni" -software: "Software" -version: "Versione" -metadata: "Metadato" -withNFiles: "{n} file in allegato" -monitor: "Monitorare" -jobQueue: "Coda di lavoro" -cpuAndMemory: "CPU e Memoria" -network: "Rete" -disk: "Disco" -instanceInfo: "Informazioni sull'istanza" -statistics: "Statistiche" -clearQueue: "Svuota coda" -clearQueueConfirmTitle: "Vuoi davvero svuotare la coda?" -clearQueueConfirmText: "Le note ancora non distribuite non verranno rilasciate. Solitamente, non è necessario eseguire questa operazione." -clearCachedFiles: "Svuota cache" -clearCachedFilesConfirm: "Vuoi davvero svuotare la cache da tutti i file remoti?" -blockedInstances: "Istanze bloccate" -blockedInstancesDescription: "Elenca le istanze che vuoi bloccare, una per riga. Esse non potranno più interagire con la tua istanza." -muteAndBlock: "Silenziati / Bloccati" -mutedUsers: "Account silenziati" -blockedUsers: "Account bloccati" -noUsers: "Nessun utente trovato" -editProfile: "Modifica profilo" -noteDeleteConfirm: "Eliminare questo Nota?" -pinLimitExceeded: "Non puoi fissare altre note " -intro: "L'installazione di Misskey è finita! Si prega di creare un account amministratore." -done: "Fine" -processing: "In elaborazione" -preview: "Anteprima" -default: "Predefinito" -noCustomEmojis: "Nessun emoji" -noJobs: "Nessun lavoro" -federating: "Federando" -blocked: "Bloccato" -suspended: "Sospes@" -all: "Tutti" -subscribing: "Iscrivendo" -publishing: "Pubblicando" -notResponding: "Nessuna risposta" -instanceFollowing: "Seguiti dall'istanza" -instanceFollowers: "Followers dell'istanza" -instanceUsers: "Utenti dell'istanza" -changePassword: "Aggiorna Password" -security: "Sicurezza" -retypedNotMatch: "Le password non corrispondono." -currentPassword: "Password attuale" -newPassword: "Nuova Password" -newPasswordRetype: "Conferma password" -attachFile: "Allega file" -more: "Altri!" -featured: "Tendenze" -usernameOrUserId: "Nome utente o ID utente" -noSuchUser: "Nessun utente trovato" -lookup: "Cercare" -announcements: "Annunci" -imageUrl: "URL dell'immagine" -remove: "Elimina" -removed: "Il tuo Tweet è stato eliminato" -removeAreYouSure: "Eliminare \"{x}\"?" -deleteAreYouSure: "Eliminare \"{x}\"?" -resetAreYouSure: "Reimposta" -saved: "Salvato" -messaging: "Messaggi" -upload: "Carica" -fromDrive: "Dal Drive" -fromUrl: "Dall'URL" -uploadFromUrl: "Incolla URL immagine" -uploadFromUrlDescription: "URL del file che vuoi caricare" -uploadFromUrlRequested: "Caricamento richiesto" -uploadFromUrlMayTakeTime: "Il caricamento del file può richiedere tempo." -explore: "Esplora" -messageRead: "Visualizzato" -noMoreHistory: "Non c'è più cronologia da visualizzare" -startMessaging: "Nuovo messaggio" -nUsersRead: "Letto da {n} persone" -agreeTo: "Sono d'accordo con {0}" -tos: "Termini di servizio" -start: "Inizia!" -home: "Home" -remoteUserCaution: "Può darsi che le informazioni siano incomplete perché questo è un utente remoto." -activity: "Attività" -images: "Immagini" -birthday: "Compleanno" -yearsOld: "{age}Anni" -registeredDate: "Iscrizione a.." -location: "Posizione" -theme: "Tema" -themeForLightMode: "Tema da utilizzare per il modo chiaro" -themeForDarkMode: "Tema da utilizzare per il modo scuro" -light: "Chiaro" -dark: "Scuro" -lightThemes: "Tema Chiaro" -darkThemes: "Tema Scuro" -syncDeviceDarkMode: "Sincronizza il tema scuro con le impostazioni del dispositivo" -drive: "Drive" -fileName: "Nome dell'allegato" -selectFile: "Scelta allegato" -selectFiles: "Scelta allegato" -selectFolder: "Seleziona cartella" -selectFolders: "Seleziona cartella" -renameFile: "Rinomina file" -folderName: "Nome della cartella" -createFolder: "Nuova cartella" -renameFolder: "Rinominare cartella" -deleteFolder: "Elimina cartella" -addFile: "Allega" -emptyDrive: "Il Drive è vuoto" -emptyFolder: "La cartella è vuota" -unableToDelete: "Eliminazione impossibile" -inputNewFileName: "Inserisci nome del nuovo file" -inputNewDescription: "Inserisci una nuova descrizione" -inputNewFolderName: "Inserisci nome della nuova cartella" -circularReferenceFolder: "La cartella di destinazione è una sottocartella della cartella che vuoi spostare." -hasChildFilesOrFolders: "Impossibile eliminare la cartella perché non è vuota" -copyUrl: "Copia URL" -rename: "Modifica nome" -avatar: "Foto del profilo" -banner: "Intestazione" -nsfw: "Contenuti sensibili" -whenServerDisconnected: "Quando la connessione col server è persa" -disconnectedFromServer: "Disconness@ dal server" -reload: "Ricarica" -doNothing: "Nessun'azione" -reloadConfirm: "Vuoi ricaricare?" -watch: "Osserva" -unwatch: "Smetti di Osserva" -accept: "Accetta" -reject: "Rifiuta" -normal: "Normale" -instanceName: "Nome dell'istanza" -instanceDescription: "Descrizione dell'istanza" -maintainerName: "Nome dell'Amministratore" -maintainerEmail: "Indirizzo e-mail dell'Amministratore" -tosUrl: "Termini di servizio URL" -thisYear: "Anno" -thisMonth: "Mese" -today: "Oggi" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Pagine" -integration: "App collegate" -connectService: "Connessione" -disconnectService: "Disconnessione " -enableLocalTimeline: "Abilita Timeline locale" -enableGlobalTimeline: "Abilita Timeline federata" -disablingTimelinesInfo: "Anche se disabiliti queste timeline, gli amministratori e i moderatori potranno sempre accederci." -registration: "Iscriviti" -enableRegistration: "Permettere nuove registrazioni" -invite: "Invita" -driveCapacityPerLocalAccount: "Volume del Drive per utente locale" -driveCapacityPerRemoteAccount: "Volume del Drive per utente remoto" -inMb: "in Megabytes" -iconUrl: "URL di icona (favicon, ecc.)" -bannerUrl: "URL dell'immagine d'intestazione" -backgroundImageUrl: "URL dello sfondo" -basicInfo: "Informazioni fondamentali" -pinnedUsers: "Utenti in evidenza" -pinnedUsersDescription: "Elenca gli/le utenti che vuoi fissare in cima alla pagina \"Esplora\", un@ per riga." -pinnedPages: "Pagine in evidenza" -pinnedPagesDescription: "Specifica il percorso delle pagine che vuoi fissare in cima alla pagina dell'istanza. Una pagina per riga." -pinnedClipId: "ID della clip in evidenza" -pinnedNotes: "Nota fissata" -hcaptcha: "hCaptcha" -enableHcaptcha: "Abilita hCaptcha" -hcaptchaSiteKey: "Chiave del sito" -hcaptchaSecretKey: "Chiave segreta" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Abilita reCAPTCHA" -recaptchaSiteKey: "Chiave del sito" -recaptchaSecretKey: "Chiave segreta" -avoidMultiCaptchaConfirm: "Utilizzare diversi Captcha può causare interferenze. Vuoi disattivare l'altro Captcha? Puoi lasciare diversi Captcha attivi premendo \"Cancella\"." -antennas: "Antenne" -manageAntennas: "Gestore delle antenne" -name: "Nome" -antennaSource: "Fonte dell'antenna" -antennaKeywords: "Parole chiavi da ricevere" -antennaExcludeKeywords: "Parole chiavi da escludere" -antennaKeywordsDescription: "Separare con uno spazio indica la condizione \"E\". Separare con un'interruzzione riga indica la condizione \"O\"." -notifyAntenna: "Invia notifiche delle nuove note" -withFileAntenna: "Solo note con file in allegato" -enableServiceworker: "Abilita ServiceWorker" -antennaUsersDescription: "Inserisci solo un nome utente per riga" -caseSensitive: "Sensibile alla distinzione tra maiuscole e minuscole" -withReplies: "Includere le risposte" -connectedTo: "Sei conness@ agli account qui sotto:" -notesAndReplies: "Note e risposte" -withFiles: "Con file in allegato" -silence: "Silenzia" -silenceConfirm: "Vuoi davvero silenziare l'utente?" -unsilence: "Riattiva" -unsilenceConfirm: "Vuoi davvero riattivare l'utente?" -popularUsers: "Utenti popolari" -recentlyUpdatedUsers: "Utenti attivi di recente" -recentlyRegisteredUsers: "Utenti registrati di recente" -recentlyDiscoveredUsers: "Utenti scoperti di recente" -exploreUsersCount: "Ci sono {count} utenti" -exploreFediverse: "Esplora il Fediverso" -popularTags: "Tag di tendenza" -userList: "Liste" -about: "Informazioni" -aboutMisskey: "Informazioni di Misskey" -administrator: "Amministratore" -token: "Token" -twoStepAuthentication: "Autenticazione a due fattori" -moderator: "Moderatore" -nUsersMentioned: "{n} utenti menzionatə" -securityKey: "Chiave di sicurezza" -securityKeyName: "Nome della chiave" -registerSecurityKey: "Registra una chiave di sicurezza" -lastUsed: "Ultima attività" -unregister: "Annulla l'iscrizione" -passwordLessLogin: "Accedi senza password" -resetPassword: "Reimposta password" -newPasswordIs: "La tua nuova password è「{password}」" -reduceUiAnimation: "Ridurre le animazioni dell'interfaccia" -share: "Condividi" -notFound: "Non trovato" -notFoundDescription: "Nessuna pagina corrisponde all'URL indicata." -uploadFolder: "Destinazione caricamento predefinita" -cacheClear: "Svuota cache" -markAsReadAllNotifications: "Segna tutte le notifiche come lette" -markAsReadAllUnreadNotes: "Segna tutte le note come lette" -markAsReadAllTalkMessages: "Segna tutte le chat come lette" -help: "Guida" -inputMessageHere: "Scrivi messaggio qui" -close: "Chiudi" -group: "Gruppo" -groups: "Gruppi" -createGroup: "Nuovo gruppo" -ownedGroups: "I miei gruppi" -joinedGroups: "Gruppi a cui mi sono unit@" -invites: "Inviti" -groupName: "Nome del gruppo" -members: "Membri" -transfer: "Trasferisci" -messagingWithUser: "Iniziare una chat con un altr@ utente" -messagingWithGroup: "Chattare in gruppo" -title: "Titolo" -text: "Testo" -enable: "Abilita" -next: "Avanti" -retype: "Conferma" -noteOf: "Note di {user}" -inviteToGroup: "Invitare al gruppo" -quoteAttached: "Citazione allegata" -quoteQuestion: "Vuoi aggiungere una citazione?" -noMessagesYet: "Ancora nessuna chat" -newMessageExists: "Hai ricevuto un nuovo messaggio" -onlyOneFileCanBeAttached: "È possibile allegare al messaggio soltanto uno file" -signinRequired: "Devi essere registrat@ nel tuo account" -invitations: "Invita" -invitationCode: "Codice di invito" -checking: "Confermando" -available: "Consigliati" -unavailable: "Il nome utente è già in uso" -usernameInvalidFormat: "Il nome utente può contenere solo lettere, numeri e '_'" -tooShort: "Troppo breve" -tooLong: "Troppo lungo" -weakPassword: "Password debole" -normalPassword: "Password buona" -strongPassword: "Password forte" -passwordMatched: "Corretta" -passwordNotMatched: "Le password non corrispondono." -signinWith: "Accedi con {x}" -signinFailed: "Autenticazione non riuscita. Controlla la tua password e nome utente." -tapSecurityKey: "Premi la chiave di sicurezza" -or: "oppure" -language: "Lingua" -uiLanguage: "Lingua di visualizzazione dell'interfaccia" -groupInvited: "Invitat@ al gruppo" -aboutX: "Informazioni su {x}" -useOsNativeEmojis: "Usare le emoji native del sistema operativo" -disableDrawer: "Non mostrare il menù sul drawer" -youHaveNoGroups: "Nessun gruppo" -joinOrCreateGroup: "Puoi creare il tuo gruppo o essere invitat@ a gruppi che già esistono." -noHistory: "Nessuna cronologia" -signinHistory: "Cronologia di accesso all'account" -disableAnimatedMfm: "Disabilità i MFM animati" -doing: "In corso..." -category: "Categoria" -tags: "Tag" -docSource: "Sorgente della scheda" -createAccount: "Crea il tuo account" -existingAccount: "Account esistente" -regenerate: "Generare di nuovo" -fontSize: "Dimensione carattere" -noFollowRequests: "Non hai alcuna richiesta di follow" -openImageInNewTab: "Aprire immagini in una nuova scheda" -dashboard: "Pannello di controllo" -local: "Locale" -remote: "Remoto" -total: "Totale" -weekOverWeekChanges: "Settimanale" -dayOverDayChanges: "Giornaliero" -appearance: "Aspetto" -clientSettings: "Impostazioni client" -accountSettings: "Impostazioni account" -promotion: "Promossa" -promote: "Pubblicizza" -numberOfDays: "Numero di giorni" -hideThisNote: "Nasconda la nota" -showFeaturedNotesInTimeline: "Mostrare le note di tendenza nella tua timeline" -objectStorage: "Stoccaggio oggetti" -useObjectStorage: "Utilizza stoccaggio oggetti" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "URL di riferimento. In caso di utilizzo di proxy o CDN l'URL è 'https://.s3.amazonaws.com' per S3, 'https://storage.googleapis.com/' per GCS eccetera. " -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Specificare il nome del bucket utilizzato dal provider." -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "I file saranno conservati sotto la directory di questo prefisso." -objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Lasciare vuoto se si sta utilizzando S3. In caso contrario si prega di specificare l'endpoint come '' oppure ':' a seconda del servizio utilizzato." -objectStorageRegion: "Region" -objectStorageRegionDesc: "Specificate una regione, quale 'xx-east-1'. Se il servizio in utilizzo non distingue tra regioni, lasciate vuoto o inserite 'us-east-1'." -objectStorageUseSSL: "Usare SSL" -objectStorageUseSSLDesc: "Disabilita quest'opzione se non utilizzi HTTPS per le connessioni API." -objectStorageUseProxy: "Usa proxy" -objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione API." -objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare" -serverLogs: "Log del server" -deleteAll: "Cancella cronologia" -showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline" -newNoteRecived: "Vedi le nuove note" -sounds: "Impostazioni suoni" -listen: "Ascolta" -none: "Niente" -showInPage: "Visualizza in pagina" -popout: "Finestra pop-out" -volume: "Volume" -masterVolume: "Volume principale" -details: "Dettagli" -chooseEmoji: "Scegli emoji" -unableToProcess: "Impossibile compiere l'operazione" -recentUsed: "Usato di recente" -install: "Installa" -uninstall: "Disinstalla" -installedApps: "Applicazioni installate" -nothing: "Niente da visualizzare" -installedDate: "Data installazione" -lastUsedDate: "Data di ultimo uso" -state: "Stato" -sort: "Ordina per" -ascendingOrder: "Ascendente" -descendingOrder: "Discendente" -scratchpad: "ScratchPad" -scratchpadDescription: "Lo Scratchpad offre un ambiente per esperimenti di AiScript. È possibile scrivere, eseguire e confermare i risultati dell'interazione del codice con Misskey." -output: "Uscita" -script: "Script" -disablePagesScript: "Disabilita AiScript nelle pagine" -updateRemoteUser: "Aggiornare le informazioni di utente remot@" -deleteAllFiles: "Elimina tutti i file" -deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?" -removeAllFollowing: "Cancella tutti i follows" -removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più." -userSuspended: "L'utente è sospes@." -userSilenced: "L'utente è silenziat@." -yourAccountSuspendedTitle: "Questo account è sospeso." -yourAccountSuspendedDescription: "Questo account è stato sospeso a causa di una violazione dei termini di servizio del server. Contattare l'amministrazione per i dettagli. Si prega di non creare un nuovo account." -menu: "Menù" -divider: "Linea di separazione" -addItem: "Aggiungi elemento" -relays: "Ripetitori" -addRelay: "Aggiungi ripetitore" -inboxUrl: "Inbox URL" -addedRelays: "Ripetitori configurati" -serviceworkerInfo: "Deve essere abilitato per le notifiche push. " -deletedNote: "Nota eliminata" -invisibleNote: "Nota invisibile" -enableInfiniteScroll: "Abilita scorrimento infinito" -visibility: "Visibilità" -poll: "Sondaggio" -useCw: "Nascondere media" -enablePlayer: "Apri in lettore video" -disablePlayer: "Chiudi lettore video" -expandTweet: "Espandi tweet" -themeEditor: "Editor di temi" -description: "Descrizione" -describeFile: "Aggiungi una descrizione d'immagine" -enterFileDescription: "Inserisci descrizione" -author: "Autore" -leaveConfirm: "Ci sono delle modifiche ancora non salvate. Vuoi cancellarle?" -manage: "Gestione" -plugins: "Estensioni" -deck: "Deck" -undeck: "Esci dal deck" -useBlurEffectForModal: "Utilizza effetto sfocatura per i modali" -useFullReactionPicker: "Usa la totalità del pannello di reazioni" -width: "Larghezza" -height: "Altezza" -large: "Grande" -medium: "Predefinito" -small: "Piccolo" -generateAccessToken: "Genera token di accesso" -permission: "Autorizzazioni " -enableAll: "Abilita tutto" -disableAll: "Disabilita tutto" -tokenRequested: "Autorizza accesso all'account" -pluginTokenRequestedDescription: "Il plugin potrà utilizzare le autorizzazioni impostate qui." -notificationType: "Tipo di notifiche" -edit: "Modifica" -useStarForReactionFallback: "Se è sconosciuto l'emoji di reazione, usare la ★ come alternativa." -emailServer: "Server email" -enableEmail: "Abilita consegna email" -emailConfigInfo: "Utilizzato per verificare il tuo indirizzo di posta elettronica e per reimpostare la tua password" -email: "Email" -emailAddress: "Indirizzo di posta elettronica" -smtpConfig: "Impostazioni del server SMTP" -smtpHost: "Server remoto" -smtpPort: "Porta" -smtpUser: "Nome utente" -smtpPass: "Password" -emptyToDisableSmtpAuth: "Lasciare il nome utente e la password vuoti per disabilitare la verifica SMTP" -smtpSecure: "Usare la porta SSL/TLS implicito per le connessioni SMTP" -smtpSecureInfo: "Disabilitare quando è attivo STARTTLS." -testEmail: "Testare la consegna di posta elettronica" -wordMute: "Filtri parole" -instanceMute: "Silenzia l'istanza" -userSaysSomething: "{name} ha detto qualcosa" -makeActive: "Attiva" -display: "Visualizza" -copy: "Copia" -metrics: "Statistiche" -overview: "Anteprima" -logs: "Log" -delayed: "Ritardo" -database: "Base di dati" -channel: "Canale" -create: "Crea" -notificationSetting: "Impostazioni notifiche" -notificationSettingDesc: "Seleziona il tipo di notifiche da visualizzare." -useGlobalSetting: "Usa impostazioni generali" -useGlobalSettingDesc: "Se abilitato, le impostazioni notifiche dell'account verranno utilizzate. Se disabilitato, si possono definire diverse singole impostazioni." -other: "Avanzate" -regenerateLoginToken: "Genera di nuovo un token di connessione" -regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi." -setMultipleBySeparatingWithSpace: "È possibile creare multiple voci separate da spazi." -fileIdOrUrl: "ID o URL del file" -behavior: "Comportamento" -sample: "Esempio" -abuseReports: "Segnalazioni" -reportAbuse: "Segnalazioni" -reportAbuseOf: "Segnala {name}" -fillAbuseReportDescription: "Si prega di spiegare il motivo della segnalazione. Se riguarda una nota precisa, si prega di collegare anche l'URL della nota." -abuseReported: "La segnalazione è stata inviata. Grazie." -reporter: "il corrispondente" -reporteeOrigin: "Origine del segnalato" -reporterOrigin: "Origine del segnalatore" -send: "Inviare" -abuseMarkAsResolved: "Contrassegna la segnalazione come risolta" -openInNewTab: "Apri in una nuova scheda" -openInSideView: "Apri in vista laterale" -defaultNavigationBehaviour: "Navigazione preimpostata" -editTheseSettingsMayBreakAccount: "Modificare queste impostazioni può danneggiare l'account." -instanceTicker: "Informazioni sull'istanza da cui vengono le note" -waitingFor: "Aspettando {x}" -random: "Casuale" -system: "Sistema" -switchUi: "Cambiare interfaccia utente" -desktop: "Desktop" -clip: "Clip" -createNew: "Crea nuov@" -optional: "Opzionale" -createNewClip: "Nuova clip" -public: "Pubblica" -i18nInfo: "Misskey è tradotto in diverse lingue da volontari. Anche tu puoi contribuire su {link}." -manageAccessTokens: "Gestisci token di accesso" -accountInfo: "Informazioni account" -notesCount: "Conteggio note" -repliesCount: "Numero di risposte inviate" -renotesCount: "Numero di note che hai ricondiviso" -repliedCount: "Numero di risposte ricevute" -renotedCount: "Numero delle tue note ricondivise" -followingCount: "Numero di account seguiti" -followersCount: "Numero di account che ti seguono" -sentReactionsCount: "Numero di reazioni inviate" -receivedReactionsCount: "Numero di reazioni ricevute" -pollVotesCount: "Numero di voti inviati" -pollVotedCount: "Numero di voti ricevuti" -yes: "Sì" -no: "No" -driveFilesCount: "Numero di file nel Drive" -driveUsage: "Utilizzazione del Drive" -noCrawle: "Rifiuta l'indicizzazione dai robot." -noCrawleDescription: "Richiedi che i motori di ricerca non indicizzino la tua pagina di profilo, le tue note, pagine, ecc." -lockedAccountInfo: "A meno che non imposti la visibilità delle tue note su \"Solo ai follower\", le tue note sono visibili da tutti, anche se hai configurato l'account per confermare manualmente le richieste di follow." -alwaysMarkSensitive: "Segnare i media come sensibili per impostazione predefinita" -loadRawImages: "Visualizza le intere immagini allegate invece delle miniature." -disableShowingAnimatedImages: "Disabilita le immagini animate" -verificationEmailSent: "Una mail di verifica è stata inviata. Si prega di accedere al collegamento per compiere la verifica." -notSet: "Non impostato" -emailVerified: "Il tuo indirizzo email è stato verificato" -noteFavoritesCount: "Conteggio note tra i preferiti" -pageLikesCount: "Numero di pagine che ti piacciono" -pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\"" -contact: "Contatti" -useSystemFont: "Usa il carattere predefinito del sistema" -clips: "Clip" -experimentalFeatures: "Funzioni sperimentali" -developer: "Sviluppatore" -makeExplorable: "Account visibile sulla pagina \"Esplora\"" -makeExplorableDescription: "Se disabiliti l'opzione, il tuo account non verrà visualizzato sulla pagina \"Esplora\"." -showGapBetweenNotesInTimeline: "Mostrare un intervallo tra le note sulla timeline" -duplicate: "Duplica" -left: "Sinistra" -center: "Centro" -wide: "Largo" -reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento della pagina. Vuoi ricaricare adesso?" -needReloadToApply: "È necessario riavviare per rendere effettive le modifiche." -showTitlebar: "Visualizza la barra del titolo" -clearCache: "Svuota cache" -onlineUsersCount: "{n} utenti online" -nUsers: "{n} utenti" -nNotes: "{n}Note" -sendErrorReports: "Invia segnalazioni di errori" -sendErrorReportsDescription: "Quando abilitato, se si verifica un problema, informazioni dettagliate sugli errori verranno condivise con Misskey in modo da aiutare a migliorare la qualità del software.\nCiò include informazioni come la versione del sistema operativo, il tipo di navigatore web che usi, la cronologia delle attività, ecc." -myTheme: "I miei temi" -backgroundColor: "Sfondo" -textColor: "Testo" -saveAs: "Salva con nome" -value: "Valore" -createdAt: "Data di creazione" -updatedAt: "Aggiornato il" -saveConfirm: "Vuoi salvare le modifiche?" -deleteConfirm: "Rimuovere?" -invalidValue: "Questo non è un valore valido." -registry: "Registro" -closeAccount: "Disattiva account" -currentVersion: "Versione attuale" -latestVersion: "Ultima versione" -youAreRunningUpToDateClient: "Stai usando la versione più recente del client." -newVersionOfClientAvailable: "Una nuova versione del tuo client è disponibile." -usageAmount: "In utilizzo" -capacity: "Capacità" -inUse: "In utilizzo" -editCode: "Modifica codice" -apply: "Applica" -receiveAnnouncementFromInstance: "Ricevi i messaggi informativi dall'istanza" -emailNotification: "Eventi per notifiche via mail" -publish: "Pubblico" -inChannelSearch: "Cerca in canale" -useReactionPickerForContextMenu: "Cliccare sul tasto destro per aprire il pannello di reazioni" -typingUsers: "{users} sta(nno) scrivendo" -jumpToSpecifiedDate: "Vai alla data " -showingPastTimeline: "Stai visualizzando una vecchia timeline" -clear: "Cancella" -markAllAsRead: "Segna tutti come già letti" -goBack: "Indietro" -unlikeConfirm: "Non ti piace più?" -fullView: "Schermo intero" -quitFullView: "Esci dalla modalità a schermo intero" -addDescription: "Aggiungi descrizione" -userPagePinTip: "Qui puoi appuntare note, premendo \"Fissa sul profilo\" nel menù delle singole note." -notSpecifiedMentionWarning: "Sono menzionati account che non vengono inclusi fra i destinatari" -info: "Informazioni" -userInfo: "Informazioni utente" -unknown: "Sconosciuto" -onlineStatus: "Stato di connessione" -hideOnlineStatus: "Stato invisibile" -hideOnlineStatusDescription: "Abilitare l'opzione di stato invisibile può guastare la praticità di singole funzioni, come la ricerca." -online: "Online" -active: "Attiv@" -offline: "Offline" -notRecommended: "Sconsigliato" -botProtection: "Protezione contro i bot" -instanceBlocking: "Istanze bloccate" -selectAccount: "Scegli account" -enabled: "Attivo" -disabled: "Inattivo" -quickAction: "Azioni rapide" -user: "Utente" -administration: "Gestione" -accounts: "Account" -switch: "Sostituisci" -noMaintainerInformationWarning: "Le informazioni amministratore non sono impostate." -noBotProtectionWarning: "Nessuna protezione impostata contro i bot." -configure: "Imposta" -postToGallery: "Pubblicare nella galleria" -gallery: "Galleria" -recentPosts: "Le più recenti" -popularPosts: "Le più visualizzate" -shareWithNote: "Condividere in nota" -ads: "Pubblicità" -expiration: "Scadenza" -memo: "Promemoria" -priority: "Priorità" -high: "Alta" -middle: "Media" -low: "Bassa" -emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail." -ratio: "Rapporto" -previewNoteText: "Anteprima del testo" -customCss: "CSS personalizzato" -global: "Federata" -squareAvatars: "Mostra l'immagine del profilo come quadrato" -sent: "Inviare" -received: "Ricevuto" -searchResult: "Risultati della Ricerca" -hashtags: "Hashtag" -troubleshooting: "Risoluzione problemi" -useBlurEffect: "Utilizza effetto sfocatura per l'interfaccia utente" -learnMore: "Più dettagli" -misskeyUpdated: "Misskey è stato aggiornato!" -whatIsNew: "Visualizza le informazioni sull'aggiornamento" -translate: "Traduzione" -translatedFrom: "Tradotto da {x}" -accountDeletionInProgress: "La cancellazione dell'account è in corso" -usernameInfo: "Un nome per identificare univocamente il tuo account sul server. È possibile utilizzare caratteri alfanumerici (a~z, A~Z, 0~9) e il trattino basso (_). Non sarà possibile cambiare il nome utente in seguito." -aiChanMode: "Modalità Ai" -keepCw: "Mantieni il CW" -resolved: "Risolto" -unresolved: "Non risolto" -breakFollow: "Smetti di seguire" -itsOn: "Abilitato" -itsOff: "Disabilitato" -emailRequiredForSignup: "È necessario un indirizzo mail per registrare un account" -unread: "Non letto" -filter: "Filtri" -controlPanel: "Pannello di controllo" -manageAccounts: "Gestisci account" -classic: "Classico" -muteThread: "Silenzia la discussione" -unmuteThread: "Riattiva la discussione" -deleteAccountConfirm: "L'account verrà cancellato. Procedere?" -incorrectPassword: "La password è errata." -voteConfirm: "Votare per「{choice}」?" -hide: "Nascondere" -leaveGroup: "Esci dal gruppo" -leaveGroupConfirm: "Uscire da「{name}」?" -useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile" -welcomeBackWithName: "Bentornato/a, {name}" -clickToFinishEmailVerification: "Fai click su [{ok}] per completare la verifica dell'indirizzo email." -searchByGoogle: "Cerca" -indefinitely: "Non scade" -tenMinutes: "10 minuti" -oneHour: "1 ora" -oneDay: "1 giorno" -oneWeek: "1 settimana" -file: "Allegati" -reverse: "Inverti" -colored: "Colorato" -label: "Etichetta" -localOnly: "Soltanto locale" -account: "Account" -_emailUnavailable: - used: "Email già in uso" - format: "Formato email non valido" - disposable: "Email non riutilizzabile" - mx: "Server email non corretto" - smtp: "Il server email non risponde" -_ffVisibility: - public: "Pubblico" - followers: "Mostra solo ai follower" - private: "Invisibile" -_signup: - almostThere: "Quasi completo" - emailAddressInfo: "Inserisci il tuo indirizzo email. Non verrà reso pubblico." -_accountDelete: - accountDelete: "Cancellazione account" - sendEmail: "Al termine della cancellazione dell'account, verrà inviata una mail all'indirizzo a cui era registrato." - requestAccountDelete: "Richiesta di cancellazione account" - started: "Il processo di cancellazione è iniziato." - inProgress: "Cancellazione in corso" -_ad: - back: "Indietro" - reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso" -_forgotPassword: - enterEmail: "Inserisci l'indirizzo di posta elettronica che hai registrato nel tuo profilo. Il collegamento necessario per ripristinare la password verrà inviato a questo indirizzo." - ifNoEmail: "Se nessun indirizzo e-mail è stato registrato, si prega di contattare l'amministratore·trice dell'istanza." - contactAdmin: "Poiché questa istanza non permette l'utilizzo di una mail, si prega di contattare l'amministratore·trice dell'istanza per poter ripristinare la password." -_gallery: - my: "Le mie pubblicazioni" - liked: "Pubblicazioni che mi piacciono" - like: "Mi piace!" - unlike: "Non mi piace più" -_email: - _follow: - title: "Ha iniziato a seguirti" - _receiveFollowRequest: - title: "Hai ricevuto una richiesta di follow" -_plugin: - install: "Installa estensioni" - installWarn: "Si prega di installare soltanto estensioni che provengono da fonti affidabili." - manage: "Gestisci estensioni" -_registry: - key: "Dati" - keys: "Dati" - domain: "Dominio" - createKey: "Crea chiave" -_aboutMisskey: - about: "Misskey è un software libero e open source, sviluppato da syuilo dal 2014." - contributors: "Principali sostenitori" - allContributors: "Tutti i sostenitori" - source: "Codice sorgente" - translation: "Tradurre Misskey" - donate: "Sostieni Misskey" - morePatrons: "Apprezziamo sinceramente il supporto di tante altre persone. Grazie mille! 🥰" - patrons: "Sostenitori" -_nsfw: - respect: "Nascondere i media segnati come sensibli" - ignore: "Visualizzare i media segnati come sensibili" - force: "Nascondere tutti i media" -_mfm: - cheatSheet: "Bigliettino MFM" - intro: "MFM è un linguaggio Markdown particolare che si può usare in diverse parti di Misskey. Qui puoi visualizzare a colpo d'occhio tutta la sintassi MFM utile." - dummy: "Il Fediverso si espande con Misskey" - mention: "Menzioni" - mentionDescription: "Si può menzionare un utente specifico digitando il suo nome utente subito dopo il segno @." - hashtag: "Hashtag" - url: "URL" - link: "Link" - bold: "Grassetto" - blockCode: "Codice (blocco)" - inlineMath: "Espressione matematica(Immersione)" - blockMath: "Formula matematica (blocco)" - quote: "Cita il nota" - emoji: "Emoji personalizzati" - search: "Cerca" - flip: "Inverti" - jump: "Animazione(salto)" - jumpDescription: "Da un animazione che salta su e giù." - bounce: "Animazione(rimbalzo)" - bounceDescription: "Rende il testo rimbalzante" - shake: "rimbalzante" - shakeDescription: "Rende il testo traballante" - twitch: "testo" - twitchDescription: "Fa tremare il testo" - x2: "Più grande" - x2Description: "Mostra il contenuto ingrandito." - x3: "Molto più grande" - x3Description: "Mostra il contenuto molto più ingrandito." - x4: "Estremamente più grande" - x4Description: "Mostra il contenuto estremamente più ingrandito." - blur: "Sfocatura" - blurDescription: "È possibile rendere sfocato il contenuto. Spostando il cursore su di esso tornerà visibile chiaramente." - font: "Tipo di carattere" - fontDescription: "Puoi scegliere il tipo di carattere per il contenuto." - rainbow: "Arcobaleno" - rotate: "Ruota" -_instanceTicker: - none: "Nascondi" - remote: "Mostra solo per gli/le utenti remotə" - always: "Mostra sempre" -_serverDisconnectedBehavior: - reload: "Ricarica automaticamente" - dialog: "Apri avviso in finestra" - quiet: "Visualizza avviso in modo discreto" -_channel: - create: "Nuovo canale" - edit: "Gerisci canale" - setBanner: "Scegli intestazione" - removeBanner: "Rimuovi intestazione" - featured: "Tendenze" - owned: "I miei canali" - following: "Seguiti" - usersCount: "{n} partecipanti" - notesCount: "{n} note" -_menuDisplay: - hide: "Nascondere" -_wordMute: - muteWords: "Parole da filtrare" - muteWordsDescription: "Separare con uno spazio indica la condizione \"E\". Separare con un'interruzzione riga indica la condizione \"O\"." - muteWordsDescription2: "Metti le parole chiavi tra slash per usare espressioni regolari (regexp)." - softDescription: "Nascondi della timeline note che rispondono alle condizioni impostate qui." - hardDescription: "Impedisci alla timeline di caricare le note che rispondono alle condizioni impostate qui. Inoltre, le note scompariranno in modo irreversibile, anche se le condizioni verranno successivamente rimosse." - soft: "Moderato" - hard: "Severo" - mutedNotes: "Note silenziate" -_theme: - explore: "Esplora temi" - install: "Installa un tema" - manage: "Gerisci temi" - code: "Codice tema" - description: "Descrizione" - installed: "{name} è installato" - installedThemes: "Temi installati" - builtinThemes: "Temi integrati" - alreadyInstalled: "Questo tema è già installato" - invalid: "Il formato tema non è valido" - make: "Crea un tema" - base: "Base" - addConstant: "Aggiungi costante" - constant: "Costante" - defaultValue: "Valore predefinito" - color: "Colore" - refConst: "Chiama costante" - key: "Chiave" - func: "Funzione" - funcKind: "Tipo di funzione" - argument: "Argomento" - alpha: "Opacità" - darken: "Scuro" - lighten: "Chiaro" - inputConstantName: "Inserisci un nome per la costante" - deleteConstantConfirm: "Vuoi davvero eliminare la costante {const}?" - keys: - bg: "Sfondo" - fg: "Testo" - focus: "Focalizzazione" - indicator: "Indicatore" - panel: "Pannello" - shadow: "Ombra" - header: "Intestazione" - navBg: "Sfondo della barra laterale" - navFg: "Testo della barra laterale" - navHoverFg: "Testo della barra laterale (al passaggio del mouse)" - navActive: "Testo della barra laterale (attivo)" - navIndicator: "Indicatore di barra laterale" - link: "Link" - hashtag: "Hashtag" - mention: "Menzioni" - mentionMe: "Menzioni (di me)" - renote: "Rinota" - divider: "Interruzione di linea" - infoBg: "Sfondo informazioni" - infoFg: "Testo di informazioni" - infoWarnBg: "Sfondo degli avvisi" - infoWarnFg: "Testo di avviso" - cwBg: "Sfondo del CW" - cwFg: "Testo del pulsante CW" - cwHoverBg: "Sfondo del pulsante CW (sorvolato)" - toastBg: "Sfondo di notifica a comparsa" - toastFg: "Testo di notifica a comparsa" - buttonBg: "Sfondo del pulsante" - buttonHoverBg: "Sfondo del pulsante (sorvolato)" - inputBorder: "Inquadra casella di testo" - listItemHoverBg: "Sfondo della voce di elenco (sorvolato)" - driveFolderBg: "Sfondo della cartella di disco" - badge: "Distintivo" - messageBg: "Sfondo della chat" -_sfx: - note: "Nota" - noteMy: "Mia nota" - notification: "Notifiche" - chat: "Messaggi" - chatBg: "Chat (sfondo)" - antenna: "Ricezione dell'antenna" - channel: "Notifiche di canale" -_ago: - future: "Futuro" - justNow: "Ora" - secondsAgo: "{n}s fa" - minutesAgo: "{n}min fa" - hoursAgo: "{n}h fa" - daysAgo: "{1} giorni fa" - weeksAgo: "{n} settimane fa" - monthsAgo: "{n} mesi fa" - yearsAgo: "{n} anni fa" -_time: - second: "s" - minute: "min" - hour: "ore" - day: "giorni" -_tutorial: - title: "Come usare Misskey" - step1_1: "Benvenuto/a!" - step1_2: "Questa pagina si chiama una \" Timeline \". Mostra in ordine cronologico le \" note \" delle persone che segui." - step1_3: "Attualmente la tua Timeline è vuota perché non segui alcun account e non hai pubblicato alcuna nota ancora." - step2_1: "Prima di scrivere una nota o di seguire un account, imposta il tuo profilo!" - step2_2: "Aggiungere qualche informazione su di te aumenterà le tue possibilità di essere seguit@ da altre persone. " - step3_1: "Hai finito di impostare il tuo profilo?" - step3_2: "Ora, puoi pubblicare una nota. Facciamo una prova! Premi il pulsante a forma di penna in cima allo schermo per aprire una finestra di dialogo. " - step3_3: "Scritto il testo della nota, puoi pubblicarla premendo il pulsante nella parte superiore destra della finestra di dialogo." - step3_4: "Non ti viene niente in mente? Perché non scrivi semplicemente \"Ho appena cominciato a usare Misskey\"?" - step4_1: "Hai pubblicato qualcosa?" - step4_2: "Se puoi visualizzare la tua nota sulla timeline, ce l'hai fatta!" - step5_1: "Adesso, cerca di seguire altre persone per vivacizzare la tua timeline. " - step5_2: "La pagina {featured} mostra le note di tendenza su questa istanza, e magari ti aiuterà a trovare account che ti piacciono e che vorrai seguire. Oppure, potrai trovare utenti popolari usando {explore}." - step5_3: "Per seguire altrə utenti, clicca sul loro avatar per aprire la pagina di profilo dove puoi premere il pulsante \"Seguire\". " - step5_4: "Alcunə utenti scelgono di confermare manualmente le richieste di follow che ricevono, quindi a seconda delle persone potrebbe volerci un pò prima che la tua richiesta sia accolta." - step6_1: "Ora, se puoi visualizzare le note di altrə utenti sulla tua timeline, ce l'hai fatta!" - step6_2: "Puoi inviare una risposta rapida alle note di altrə utenti mandando loro \"reazioni\"." - step6_3: "Per inviare una reazione, premi l'icona + della nota e scegli l'emoji che vuoi mandare." - step7_1: "Complimenti! Sei arrivat@ alla fine dell'esercitazione di base su come usare Misskey. " - step7_2: "Se vuoi saperne di più su Misskey, puoi dare un'occhiata alla sezione {help}." - step7_3: "Da ultimo, buon divertimento su Misskey! 🚀" -_2fa: - registerDevice: "Aggiungi dispositivo" -_permissions: - "read:account": "Visualizzare le informazioni dell'account" - "write:account": "Modificare le informazioni dell'account" - "read:blocks": "Visualizza gli account bloccati" - "write:blocks": "Gestisci gli account bloccati" - "read:drive": "Aprire il Drive" - "write:drive": "Gestire il Drive" - "read:favorites": "Visualizza i tuoi preferiti" - "write:favorites": "Gestisci i tuoi preferiti" - "read:following": "Vedi le informazioni di follow" - "write:following": "Seguiti/ Smetti di seguire" - "read:messaging": "Visualizzare la chat" - "write:messaging": "Gestire la chat" - "read:mutes": "Vedi account silenziati" - "write:mutes": "Gerisci account silenziati" - "write:notes": "Creare / Eliminare note" - "read:notifications": "Visualizza notifiche" - "write:notifications": "Gerisci notifiche" - "read:reactions": "Vedi reazioni" - "write:reactions": "Gerisci reazioni" - "write:votes": "Votare" - "read:pages": "Visualizzare pagine" - "write:pages": "Gestire pagine" - "read:page-likes": "Visualizzare i \"Mi piace\" di pagine" - "write:page-likes": "Gestire i \"Mi piace\" di pagine" - "read:user-groups": "Vedi gruppi di utenti" - "write:user-groups": "Gestisci gruppi di utenti" - "read:channels": "Visualizza canali" - "write:channels": "Gerisci canali" -_auth: - shareAccess: "Autorizzare「{name}」ad accedere al tuo account?" - shareAccessAsk: "Vuoi davvero consentire l'accesso al tuo account a questa app'?" - permissionAsk: "Questa app richiede le seguenti autorizzazioni:" - pleaseGoBack: "Si prega di ritornare sulla app" - callback: "Ritornando sulla app" - denied: "Accesso negato" -_antennaSources: - all: "Tutte le note" - homeTimeline: "Note dagli utenti che segui" - users: "Note dagli utenti selezionati" - userList: "Note dagli utenti della lista selezionata" - userGroup: "Note dagli utenti del gruppo selezionato" -_weekday: - sunday: "Domenica" - monday: "Lunedì" - tuesday: "Martedì" - wednesday: "Mercoledì" - thursday: "Giovedì" - friday: "Venerdì" - saturday: "Sabato" -_widgets: - memo: "Memo" - notifications: "Notifiche" - timeline: "Timeline" - calendar: "Calendario" - trends: "Tendenze" - clock: "Orologio" - rss: "Aggregatore rss" - activity: "Attività" - photos: "Foto" - digitalClock: "Orologio digitale" - federation: "Federazione" - postForm: "Finestra di pubblicazione" - slideshow: "Diapositive" - button: "Pulsante" - onlineUsers: "Utenti online" - jobQueue: "Coda di lavoro" - serverMetric: "Statistiche server" - aiscript: "Console AiScript" -_cw: - hide: "Nascondere" - show: "Mostra di più" - chars: "{count} caratteri" - files: "{count} file" -_poll: - noOnlyOneChoice: "Sono necessarie almeno 2 risposte" - choiceN: "Opzione {n}" - noMore: "Hai aggiunto il numero massimo di opzioni." - canMultipleVote: "Possibilità di risposte multiple" - expiration: "Scadenza" - infinite: "Non scade" - at: "Seleziona data" - after: "Seleziona durata" - deadlineDate: "Data di scadenza" - deadlineTime: "Ora di scadenza" - duration: "Durata" - votesCount: "{n} voti" - totalVotes: "Totale di {n} voti" - vote: "Vota" - showResult: "Visualizza risultati" - voted: "Hai votato" - closed: "Terminato" - remainingDays: "Rimangono {d} giorni e {h} ore" - remainingHours: "Rimangono {h} ore e {m} minuti" - remainingMinutes: "Rimangono {m} minuti e {s} secondi" - remainingSeconds: "Rimangono {s} secondi" -_visibility: - public: "Pubblica" - publicDescription: "Visibile per tutti sul Fediverso" - home: "Home" - homeDescription: "Visibile solo sulla timeline \"Home\"" - followers: "Followers" - followersDescription: "Visibile solo per i tuoi followers" - specified: "Diretta" - specifiedDescription: "Visibile solo per gli/le utenti menzionatə" - localOnly: "Soltanto locale" - localOnlyDescription: "Nascosta per gli/le utenti remotə" -_postForm: - replyPlaceholder: "Nota la tua risposta.." - quotePlaceholder: "Cita Nota..." - channelPlaceholder: "Pubblica in canale" - _placeholders: - a: "Che succede?" - b: "È successo qualcosa?" - c: "Che cos'hai in mente?" - d: "Vuoi dire qualcosa?" - e: "Scrivi qualcosa qui" - f: "Aspettando che scriva..." -_profile: - name: "Nome" - username: "Nome utente" - description: "Bio" - youCanIncludeHashtags: "Puoi anche includere hashtag." - metadata: "Informazioni aggiuntive" - metadataEdit: "Modifica informazioni aggiuntive" - metadataDescription: "Puoi pubblicare fino a quattro informazioni aggiuntive sul profilo." - metadataLabel: "Etichetta" - metadataContent: "Contenuto" - changeAvatar: "Modifica immagine profilo" - changeBanner: "Cambia intestazione" -_exportOrImport: - allNotes: "Tutte le note" - followingList: "Follows" - muteList: "Account silenziati" - blockingList: "Account bloccati" - userLists: "Liste" -_charts: - federation: "Federazione" - apRequest: "Richieste" - usersIncDec: "Variazione del numero di utenti" - usersTotal: "Numero totale di utenti" - activeUsers: "Numero di utenti attivi" - notesIncDec: "Variazione del numero di note" - localNotesIncDec: "Variazione del numero di note locali" - remoteNotesIncDec: "Variazione del numero di note distanti" - notesTotal: "Conteggio totale di note" - filesIncDec: "Variazione del numero dei file" - filesTotal: "Numero totale di file" - storageUsageIncDec: "Variazione dell'utilizzo dell'immagazzinamento" - storageUsageTotal: "Utilizzo totale dell'immagazzinamento" -_instanceCharts: - requests: "Richieste" - users: "Variazione del numero di utenti" - usersTotal: "Totale cumulativo di utenti" - notes: "Variazione del numero di note" - notesTotal: "Totale cumulato di note" - ff: "Variazione dei follow/ follower" - ffTotal: "Totale cumulato dei follow/ follower" - cacheSize: "Variazione dello spazio occupato dalla cache" - cacheSizeTotal: "Totale cumulato dello spazio occupato dalla cache" - files: "Variazione del numero di file" - filesTotal: "Totale cumulato del numero di file" -_timelines: - home: "Home" - local: "Locale" - social: "Sociale" - global: "Federata" -_pages: - newPage: "Crea pagina" - editPage: "Modifica pagina" - readPage: "Visualizzando fonte " - created: "Pagina creata!" - updated: "Pagina aggiornata con successo!" - deleted: "Pagina eliminata" - pageSetting: "Impostazioni pagina" - nameAlreadyExists: "Esiste già una pagina con lo stesso URL." - invalidNameTitle: "L'URL di pagina definito non è valido" - invalidNameText: "Verifica che il campo non è vuoto" - editThisPage: "Modifica questa pagina" - viewSource: "Visualizza sorgente" - viewPage: "Visualizza pagina" - like: "Mi piace" - unlike: "Togli Mi piace" - my: "Le mie pagine" - liked: "Pagine che mi piacciono" - featured: "Popolari" - contents: "Contenuto" - content: "Blocco di pagina" - variables: "Variabili" - title: "Titolo" - url: "URL della pagina" - summary: "Riassunto di pagina" - hideTitleWhenPinned: "Nascondere il titolo pagina quando è fissata in cima al profilo." - font: "Tipo di carattere" - fontSerif: "Serif" - fontSansSerif: "Sans serif" - eyeCatchingImageSet: "Imposta un'immagine attrattiva" - eyeCatchingImageRemove: "Elimina l'immagine attrattiva" - chooseBlock: "Aggiungi blocco" - selectType: "Seleziona tipo" - enterVariableName: "Digita un nome di variabile" - variableNameIsAlreadyUsed: "Esiste già una variabile con lo stesso nome" - contentBlocks: "Contenuto" - inputBlocks: "Blocchi di input" - specialBlocks: "Speciale" - blocks: - text: "Testo" - textarea: "Area di testo" - section: "Sezione" - image: "Immagini" - button: "Pulsante" - if: "Se" - _if: - variable: "Variabili" - post: "Finestra di pubblicazione" - _post: - text: "Contenuto" - textInput: "Immissione testo" - _textInput: - name: "Nome della variabile" - text: "Titolo" - default: "Valore predefinito" - textareaInput: "Immissione testo a più righe" - _textareaInput: - name: "Nome della variabile" - text: "Titolo" - default: "Valore predefinito" - numberInput: "Immissione numerica" - _numberInput: - name: "Nome della variabile" - text: "Titolo" - default: "Valore predefinito" - _canvas: - width: "Larghezza" - height: "Altezza" - note: "Nota integrata" - _note: - id: "ID nota" - idDescription: "Qui puoi anche incollare l'URL della nota che vuoi impostare." - detailed: "Visualizzazione dettagliata" - switch: "Interruttore" - _switch: - name: "Nome della variabile" - text: "Titolo" - default: "Valore predefinito" - counter: "Contatore" - _counter: - name: "Nome della variabile" - text: "Titolo" - inc: "Valore da aggiungere" - _button: - text: "Titolo" - colored: "Colorato" - action: "Operazione da eseguire quando viene premuto il pulsante" - _action: - dialog: "Visualizzare una finestra di dialogo" - _dialog: - content: "Contenuto" - resetRandom: "Ripristinare un numero aleatorio" - pushEvent: "Inviare evento" - _pushEvent: - event: "Nome evento" - message: "Messaggio da visualizzare quando abilitato" - variable: "Variabile da inviare" - no-variable: "Nessun contenuto" - callAiScript: "Chiamare AiScript" - _callAiScript: - functionName: "Nome della funzione" - radioButton: "Opzioni" - _radioButton: - name: "Nome della variabile" - title: "Titolo" - default: "Valore predefinito" - script: - categories: - comparison: "Metodo comparativo" - random: "Aleatorietà" - value: "Valore" - fn: "Funzione" - list: "Liste" - blocks: - text: "Testo" - multiLineText: "Testo (a più righe)" - textList: "Lista di testo" - _strLen: - arg1: "Testo" - _strPick: - arg1: "Testo" - _strReplace: - arg1: "Testo" - _strReverse: - arg1: "Testo" - _join: - arg1: "Liste" - _add: - arg1: "A" - arg2: "B" - _subtract: - arg1: "A" - arg2: "B" - _multiply: - arg1: "A" - arg2: "B" - _divide: - arg1: "A" - arg2: "B" - _mod: - arg1: "A" - arg2: "B" - _eq: - arg1: "A" - arg2: "B" - notEq: "A e B sono differenti" - _notEq: - arg1: "A" - arg2: "B" - and: "A e B" - _and: - arg1: "A" - arg2: "B" - or: "A o B" - _or: - arg1: "A" - arg2: "B" - _lt: - arg1: "A" - arg2: "B" - _gt: - arg1: "A" - arg2: "B" - _ltEq: - arg1: "A" - arg2: "B" - _gtEq: - arg1: "A" - arg2: "B" - _if: - arg1: "Se" - arg2: "Se" - random: "Aleatorietà" - _randomPick: - arg1: "Liste" - _dailyRandomPick: - arg1: "Liste" - _seedRandom: - arg2: "Probabilità" - _seedRandomPick: - arg2: "Liste" - _DRPWPM: - arg1: "Lista di testo" - _pick: - arg1: "Liste" - _listLen: - arg1: "Liste" - _stringToNumber: - arg1: "Testo" - _splitStrByLine: - arg1: "Testo" - ref: "Variabili" - fn: "Funzione" - types: - string: "Testo" - array: "Liste" - stringArray: "Lista di testo" -_relayStatus: - requesting: "In attesa di approvazione" - accepted: "Approvato" - rejected: "Respinto" -_notification: - fileUploaded: "File caricato correttamente" - youGotMention: "{name} ti ha menzionato" - youGotReply: "{name} ti ha risposto" - youGotQuote: "{name} ha citato il tuo Nota e ha detto" - youRenoted: "{name} ha rinotato" - youGotPoll: "{name} ha votato" - youGotMessagingMessageFromUser: "{name} ti ha mandato un messaggio" - youGotMessagingMessageFromGroup: "{name} ti ha mandato un messaggio nella chat" - youWereFollowed: "Ha iniziato a seguirti" - youReceivedFollowRequest: "Hai ricevuto una richiesta di follow" - yourFollowRequestAccepted: "La tua richiesta di follow è stata accettata" - youWereInvitedToGroup: "Invitat@ al gruppo" - _types: - all: "Tutto" - follow: "Nuovə follower" - mention: "Menzioni" - reply: "Risposte" - renote: "Rinota" - quote: "Cita" - reaction: "Reazioni" - pollVote: "Voti ricevuti" - receiveFollowRequest: "Richiesta di follow ricevuta" - followRequestAccepted: "Richiesta di follow accettata" - groupInvited: "Invito a un gruppo" - app: "Notifiche da applicazioni" - _actions: - reply: "Rispondi" - renote: "Rinota" -_deck: - alwaysShowMainColumn: "Mostra sempre la colonna principale" - columnAlign: "Allineare colonne" - addColumn: "Aggiungi colonna" - swapLeft: "Sposta a sinistra" - swapRight: "Sposta a destra" - swapUp: "Sposta in alto" - swapDown: "Sposta in basso" - stackLeft: "Impila a sinistra" - popRight: "Estrai a destra" - profile: "Profilo" - _columns: - main: "Principale" - widgets: "Widget" - notifications: "Notifiche" - tl: "Timeline" - antenna: "Antenne" - list: "Liste" - mentions: "Menzioni" - direct: "Diretta" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index b10cce923..8a4d346bc 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1,13 +1,11 @@ _lang_: "日本語" -headlineMisskey: "ノートでつながるネットワーク" introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスです。\n「ノート」を作成して、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「リアクション」機能で、皆のノートに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀" monthAndDay: "{month}月 {day}日" search: "検索" notifications: "通知" username: "ユーザー名" password: "パスワード" -forgotPassword: "パスワードを忘れた" fetchingAsApObject: "連合に照会中" ok: "OK" gotIt: "わかった" @@ -35,9 +33,6 @@ addUser: "ユーザーを追加" favorite: "お気に入り" favorites: "お気に入り" unfavorite: "お気に入り解除" -favorited: "お気に入りに登録しました。" -alreadyFavorited: "既にお気に入りに登録されています。" -cantFavorite: "お気に入りに登録できませんでした。" pin: "ピン留め" unpin: "ピン留め解除" copyContent: "内容をコピー" @@ -51,8 +46,6 @@ copyUsername: "ユーザー名をコピー" searchUser: "ユーザーを検索" reply: "返信" loadMore: "もっと見る" -showMore: "もっと見る" -showLess: "閉じる" youGotNewFollower: "フォローされました" receiveFollowRequest: "フォローリクエストされました" followRequestAccepted: "フォローが承認されました" @@ -82,8 +75,6 @@ somethingHappened: "問題が発生しました" retry: "再試行" pageLoadError: "ページの読み込みに失敗しました。" pageLoadErrorDescription: "これは通常、ネットワークまたはブラウザキャッシュが原因です。キャッシュをクリアするか、しばらく待ってから再度試してください。" -serverIsDead: "サーバーの応答がありません。しばらく待ってから再度試してください。" -youShouldUpgradeClient: "このページを表示するためには、リロードして新しいバージョンのクライアントをご利用ください。" enterListName: "リスト名を入力" privacy: "プライバシー" makeFollowManuallyApprove: "フォローを承認制にする" @@ -96,19 +87,15 @@ followRequestPending: "フォロー許可待ち" enterEmoji: "絵文字を入力" renote: "Renote" unrenote: "Renote解除" -renoted: "Renoteしました。" -cantRenote: "この投稿はRenoteできません。" -cantReRenote: "RenoteをRenoteすることはできません。" quote: "引用" pinnedNote: "ピン留めされたノート" -pinned: "ピン留め" you: "あなた" clickToShow: "クリックして表示" sensitive: "閲覧注意" add: "追加" reaction: "リアクション" -reactionSetting: "ピッカーに表示するリアクション" -reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。" +reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。" +reactionSettingDescription2: "ドラッグして並び替えます。クリックして削除します。" rememberNoteVisibility: "公開範囲を記憶する" attachCancel: "添付取り消し" markAsSensitive: "閲覧注意にする" @@ -131,7 +118,6 @@ editWidgets: "ウィジェットを編集" editWidgetsExit: "編集を終了" customEmojis: "カスタム絵文字" emoji: "絵文字" -emojis: "絵文字" emojiName: "絵文字名" emojiUrl: "絵文字画像URL" addEmoji: "絵文字を追加" @@ -141,11 +127,8 @@ cacheRemoteFilesDescription: "この設定を無効にすると、リモート flagAsBot: "Botとして設定" flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。" flagAsCat: "Catとして設定" -flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。" -flagShowTimelineReplies: "タイムラインにノートへの返信を表示する" -flagShowTimelineRepliesDescription: "オンにすると、タイムラインにユーザーのノート以外にもそのユーザーの他のノートへの返信を表示します。" autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認" -addAccount: "アカウントを追加" +addAcount: "アカウント追加" loginFailed: "ログインに失敗しました" showOnRemote: "リモートで表示" general: "全般" @@ -190,7 +173,7 @@ clearQueueConfirmTitle: "キューをクリアしますか?" clearQueueConfirmText: "未配達の投稿は配送されなくなります。通常この操作を行う必要はありません。" clearCachedFiles: "キャッシュをクリア" clearCachedFilesConfirm: "キャッシュされたリモートファイルをすべて削除しますか?" -blockedInstances: "ブロックしたインスタンス" +blockedInstances: "インスタンスブロック" blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定します。ブロックされたインスタンスは、このインスタンスとやり取りできなくなります。" muteAndBlock: "ミュートとブロック" mutedUsers: "ミュートしたユーザー" @@ -204,7 +187,6 @@ done: "完了" processing: "処理中" preview: "プレビュー" default: "デフォルト" -defaultValueIs: "デフォルト: {value}" noCustomEmojis: "絵文字はありません" noJobs: "ジョブはありません" federating: "連合中" @@ -239,8 +221,6 @@ resetAreYouSure: "リセットしますか?" saved: "保存しました" messaging: "チャット" upload: "アップロード" -keepOriginalUploading: "オリジナル画像を保持" -keepOriginalUploadingDescription: "画像をアップロードする時にオリジナル版を保持します。オフにするとアップロード時にブラウザでWeb公開用画像を生成します。" fromDrive: "ドライブから" fromUrl: "URLから" uploadFromUrl: "URLアップロード" @@ -248,6 +228,7 @@ uploadFromUrlDescription: "アップロードしたいファイルのURL" uploadFromUrlRequested: "アップロードをリクエストしました" uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。" explore: "みつける" +games: "Misskey Games" messageRead: "既読" noMoreHistory: "これより過去の履歴はありません" startMessaging: "チャットを開始" @@ -287,7 +268,6 @@ emptyDrive: "ドライブは空です" emptyFolder: "フォルダーは空です" unableToDelete: "削除できません" inputNewFileName: "新しいファイル名を入力してください" -inputNewDescription: "新しいキャプションを入力してください" inputNewFolderName: "新しいフォルダ名を入力してください" circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" hasChildFilesOrFolders: "このフォルダは空でないため、削除できません。" @@ -319,27 +299,26 @@ monthX: "{month}月" yearX: "{year}年" pages: "ページ" integration: "連携" -connectService: "接続する" -disconnectService: "切断する" +connectSerice: "接続する" +disconnectSerice: "切断する" enableLocalTimeline: "ローカルタイムラインを有効にする" enableGlobalTimeline: "グローバルタイムラインを有効にする" disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。" registration: "登録" enableRegistration: "誰でも新規登録できるようにする" invite: "招待" +proxyRemoteFiles: "リモートのファイルをプロキシする" +proxyRemoteFilesDescription: "この設定を有効にすると、未保存または保存容量超過で削除されたリモートファイルをローカルでプロキシし、サムネイルも生成するようになります。サーバーのストレージには影響しません、" driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量" driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量" inMb: "メガバイト単位" -iconUrl: "アイコン画像のURL (faviconなど)" +iconUrl: "アイコン画像のURL" bannerUrl: "バナー画像のURL" -backgroundImageUrl: "背景画像のURL" basicInfo: "基本情報" pinnedUsers: "ピン留めユーザー" pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。" pinnedPages: "ピン留めページ" pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述します。" -pinnedClipId: "ピン留めするクリップのID" -pinnedNotes: "ピン留めされたノート" hcaptcha: "hCaptcha" enableHcaptcha: "hCaptchaを有効にする" hcaptchaSiteKey: "サイトキー" @@ -358,7 +337,8 @@ antennaExcludeKeywords: "除外キーワード" antennaKeywordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります" notifyAntenna: "新しいノートを通知する" withFileAntenna: "ファイルが添付されたノートのみ" -enableServiceworker: "ブラウザへのプッシュ通知を有効にする" +serviceworker: "ServiceWorker" +enableServiceworker: "ServiceWorkerを有効にする" antennaUsersDescription: "ユーザー名を改行で区切って指定します" caseSensitive: "大文字小文字を区別する" withReplies: "返信を含む" @@ -379,11 +359,17 @@ popularTags: "人気のタグ" userList: "リスト" about: "情報" aboutMisskey: "Misskeyについて" +aboutMisskeyText: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。" +misskeyMembers: "現在以下のメンバーによって開発・メンテナンスされています:" +misskeySource: "ソースコードはここで公開されています:" +misskeyTranslation: "Misskeyの翻訳にご協力をお願いします:" +misskeyDonate: "Misskeyに寄付をして開発をサポートできます:" +morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰" +patrons: "支援者" administrator: "管理者" token: "トークン" twoStepAuthentication: "二段階認証" moderator: "モデレーター" -moderation: "モデレーション" nUsersMentioned: "{n}人が投稿" securityKey: "セキュリティキー" securityKeyName: "キーの名前" @@ -423,12 +409,13 @@ next: "次" retype: "再入力" noteOf: "{user}のノート" inviteToGroup: "グループに招待" +maxNoteTextLength: "ノートの文字数制限" quoteAttached: "引用付き" quoteQuestion: "引用として添付しますか?" noMessagesYet: "まだチャットはありません" newMessageExists: "新しいメッセージがあります" onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです" -signinRequired: "続行する前に、サインアップまたはサインインが必要です" +signinRequired: "ログインしてください" invitations: "招待" invitationCode: "招待コード" checking: "確認しています" @@ -446,23 +433,20 @@ signinWith: "{x}でログイン" signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。" tapSecurityKey: "セキュリティキーにタッチ" or: "もしくは" -language: "言語" uiLanguage: "UIの表示言語" groupInvited: "グループに招待されました" aboutX: "{x}について" useOsNativeEmojis: "OSネイティブの絵文字を使用" -disableDrawer: "メニューをドロワーで表示しない" youHaveNoGroups: "グループがありません" joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。" noHistory: "履歴はありません" -signinHistory: "ログイン履歴" disableAnimatedMfm: "動きのあるMFMを無効にする" doing: "やっています" category: "カテゴリ" tags: "タグ" docSource: "このドキュメントのソース" createAccount: "アカウントを作成" -existingAccount: "既存のアカウント" +existingAcount: "既存のアカウント" regenerate: "再生成" fontSize: "フォントサイズ" noFollowRequests: "フォロー申請はありません" @@ -508,7 +492,6 @@ none: "なし" showInPage: "ページで表示" popout: "ポップアウト" volume: "音量" -masterVolume: "マスター音量" details: "詳細" chooseEmoji: "絵文字を選択" unableToProcess: "操作を完了できません" @@ -535,16 +518,15 @@ removeAllFollowing: "フォローを全解除" removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。" userSuspended: "このユーザーは凍結されています。" userSilenced: "このユーザーはサイレンスされています。" -yourAccountSuspendedTitle: "アカウントが凍結されています" -yourAccountSuspendedDescription: "このアカウントは、サーバーの利用規約に違反したなどの理由により、凍結されています。詳細については管理者までお問い合わせください。新しいアカウントを作らないでください。" -menu: "メニュー" +sidebar: "サイドバー" divider: "分割線" addItem: "項目を追加" +rooms: "ルーム" relays: "リレー" addRelay: "リレーの追加" inboxUrl: "inboxのURL" addedRelays: "追加済みのリレー" -serviceworkerInfo: "プッシュ通知を行うには有効にする必要があります。" +serviceworkerInfo: "プッシュ通知を行うには有効する必要があります。" deletedNote: "削除された投稿" invisibleNote: "非公開の投稿" enableInfiniteScroll: "自動でもっと見る" @@ -556,13 +538,11 @@ disablePlayer: "プレイヤーを閉じる" expandTweet: "ツイートを展開する" themeEditor: "テーマエディター" description: "説明" -describeFile: "キャプションを付ける" -enterFileDescription: "キャプションを入力" author: "作者" leaveConfirm: "未保存の変更があります。破棄しますか?" manage: "管理" plugins: "プラグイン" -preferencesBackups: "設定のバックアップ" +pluginInstallWarn: "信頼できないプラグインはインストールしないでください。" deck: "デッキ" undeck: "デッキ解除" useBlurEffectForModal: "モーダルにぼかし効果を使用" @@ -581,11 +561,10 @@ pluginTokenRequestedDescription: "このプラグインはここで設定した notificationType: "通知の種類" edit: "編集" useStarForReactionFallback: "リアクション絵文字が不明な場合、代わりに★を使う" -emailServer: "メールサーバー" +emailConfig: "メールサーバー設定" enableEmail: "メール配信機能を有効化する" emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います" -email: "メール" -emailAddress: "メールアドレス" +email: "メールアドレス" smtpConfig: "SMTP サーバーの設定" smtpHost: "ホスト" smtpPort: "ポート" @@ -596,9 +575,6 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する" smtpSecureInfo: "STARTTLS使用時はオフにします。" testEmail: "配信テスト" wordMute: "ワードミュート" -regexpError: "正規表現エラー" -regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが発生しました:" -instanceMute: "インスタンスミュート" userSaysSomething: "{name}が何かを言いました" makeActive: "アクティブにする" display: "表示" @@ -619,18 +595,13 @@ regenerateLoginToken: "ログイントークンを再生成" regenerateLoginTokenDescription: "ログインに使用される内部トークンを再生成します。通常この操作を行う必要はありません。再生成すると、全てのデバイスでログアウトされます。" setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。" fileIdOrUrl: "ファイルIDまたはURL" -behavior: "動作" +chatOpenBehavior: "チャットを開くときの動作" sample: "サンプル" abuseReports: "通報" reportAbuse: "通報" reportAbuseOf: "{name}を通報する" fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。" abuseReported: "内容が送信されました。ご報告ありがとうございました。" -reporter: "通報者" -reporteeOrigin: "通報先" -reporterOrigin: "通報元" -forwardReport: "リモートインスタンスに通報を転送する" -forwardReportIsAnonymous: "リモートインスタンスからはあなたの情報は見れず、匿名のシステムアカウントとして表示されます。" send: "送信" abuseMarkAsResolved: "対応済みにする" openInNewTab: "新しいタブで開く" @@ -647,353 +618,7 @@ clip: "クリップ" createNew: "新規作成" optional: "任意" createNewClip: "新しいクリップを作成" -unclip: "クリップ解除" -confirmToUnclipAlreadyClippedNote: "このノートはすでにクリップ「{name}」に含まれています。ノートをこのクリップから除外しますか?" public: "パブリック" -i18nInfo: "Misskeyは有志によって様々な言語に翻訳されています。{link}で翻訳に協力できます。" -manageAccessTokens: "アクセストークンの管理" -accountInfo: "アカウント情報" -notesCount: "ノートの数" -repliesCount: "返信した数" -renotesCount: "Renoteした数" -repliedCount: "返信された数" -renotedCount: "Renoteされた数" -followingCount: "フォロー数" -followersCount: "フォロワー数" -sentReactionsCount: "リアクションした数" -receivedReactionsCount: "リアクションされた数" -pollVotesCount: "アンケートに投票した数" -pollVotedCount: "アンケートに投票された数" -yes: "はい" -no: "いいえ" -driveFilesCount: "ドライブのファイル数" -driveUsage: "ドライブ使用量" -noCrawle: "クローラーによるインデックスを拒否" -noCrawleDescription: "検索エンジンにあなたのユーザーページ、ノート、Pagesなどのコンテンツを登録(インデックス)しないよう要請します。" -lockedAccountInfo: "フォローを承認制にしても、ノートの公開範囲を「フォロワー」にしない限り、誰でもあなたのノートを見ることができます。" -alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にする" -loadRawImages: "添付画像のサムネイルをオリジナル画質にする" -disableShowingAnimatedImages: "アニメーション画像を再生しない" -verificationEmailSent: "確認のメールを送信しました。メールに記載されたリンクにアクセスして、設定を完了してください。" -notSet: "未設定" -emailVerified: "メールアドレスが確認されました" -noteFavoritesCount: "お気に入りノートの数" -pageLikesCount: "Pageにいいねした数" -pageLikedCount: "Pageにいいねされた数" -contact: "連絡先" -useSystemFont: "システムのデフォルトのフォントを使う" -clips: "クリップ" -experimentalFeatures: "実験的機能" -developer: "開発者" -makeExplorable: "アカウントを見つけやすくする" -makeExplorableDescription: "オフにすると、「みつける」にアカウントが載らなくなります。" -showGapBetweenNotesInTimeline: "タイムラインのノートを離して表示" -duplicate: "複製" -left: "左" -center: "中央" -wide: "広い" -narrow: "狭い" -reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?" -needReloadToApply: "反映には再起動が必要です。" -showTitlebar: "タイトルバーを表示する" -clearCache: "キャッシュをクリア" -onlineUsersCount: "{n}人がオンライン" -nUsers: "{n}ユーザー" -nNotes: "{n}ノート" -sendErrorReports: "エラーリポートを送信" -sendErrorReportsDescription: "オンにすると、問題が発生したときにエラーの詳細情報がMisskeyに共有され、ソフトウェアの品質向上に役立てることができます。エラー情報には、OSのバージョン、ブラウザの種類、行動履歴などが含まれます。" -myTheme: "マイテーマ" -backgroundColor: "背景" -accentColor: "アクセント" -textColor: "文字" -saveAs: "名前を付けて保存" -advanced: "高度" -value: "値" -createdAt: "作成日時" -updatedAt: "更新日時" -saveConfirm: "保存しますか?" -deleteConfirm: "削除しますか?" -invalidValue: "有効な値ではありません。" -registry: "レジストリ" -closeAccount: "アカウントを閉鎖する" -currentVersion: "現在のバージョン" -latestVersion: "最新のバージョン" -youAreRunningUpToDateClient: "お使いのクライアントは最新です。" -newVersionOfClientAvailable: "新しいバージョンのクライアントが利用可能です。" -usageAmount: "使用量" -capacity: "容量" -inUse: "使用中" -editCode: "コードを編集" -apply: "適用" -receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る" -emailNotification: "メール通知" -publish: "公開" -inChannelSearch: "チャンネル内検索" -useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開く" -typingUsers: "{users}が入力中" -jumpToSpecifiedDate: "特定の日付にジャンプ" -showingPastTimeline: "過去のタイムラインを表示しています" -clear: "クリア" -markAllAsRead: "全て既読にする" -goBack: "戻る" -unlikeConfirm: "いいね解除しますか?" -fullView: "フルビュー" -quitFullView: "フルビュー解除" -addDescription: "説明を追加" -userPagePinTip: "個々のノートのメニューから「ピン留め」を選択することで、ここにノートを表示しておくことができます。" -notSpecifiedMentionWarning: "宛先に含まれていないメンションがあります" -info: "情報" -userInfo: "ユーザー情報" -unknown: "不明" -onlineStatus: "オンライン状態" -hideOnlineStatus: "オンライン状態を隠す" -hideOnlineStatusDescription: "オンライン状態を隠すと、検索などの一部機能において利便性が低下することがあります。" -online: "オンライン" -active: "アクティブ" -offline: "オフライン" -notRecommended: "非推奨" -botProtection: "Botプロテクション" -instanceBlocking: "インスタンスブロック" -selectAccount: "アカウントを選択" -switchAccount: "アカウントを切り替え" -enabled: "有効" -disabled: "無効" -quickAction: "クイックアクション" -user: "ユーザー" -administration: "管理" -accounts: "アカウント" -switch: "切り替え" -noMaintainerInformationWarning: "管理者情報が設定されていません。" -noBotProtectionWarning: "Botプロテクションが設定されていません。" -configure: "設定する" -postToGallery: "ギャラリーへ投稿" -gallery: "ギャラリー" -recentPosts: "最近の投稿" -popularPosts: "人気の投稿" -shareWithNote: "ノートで共有" -ads: "広告" -expiration: "期限" -memo: "メモ" -priority: "優先度" -high: "高" -middle: "中" -low: "低" -emailNotConfiguredWarning: "メールアドレスの設定がされていません。" -ratio: "比率" -previewNoteText: "本文をプレビュー" -customCss: "カスタムCSS" -customCssWarn: "この設定は必ず知識のある方が行ってください。不適切な設定を行うとクライアントが正常に使用できなくなる恐れがあります。" -global: "グローバル" -squareAvatars: "アイコンを四角形で表示" -sent: "送信" -received: "受信" -searchResult: "検索結果" -hashtags: "ハッシュタグ" -troubleshooting: "トラブルシューティング" -useBlurEffect: "UIにぼかし効果を使用" -learnMore: "詳しく" -misskeyUpdated: "Misskeyが更新されました!" -whatIsNew: "更新情報を見る" -translate: "翻訳" -translatedFrom: "{x}から翻訳" -accountDeletionInProgress: "アカウントの削除が進行中です" -usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更することは出来ません。" -aiChanMode: "藍モード" -keepCw: "CWを維持する" -pubSub: "Pub/Subのアカウント" -lastCommunication: "直近の通信" -resolved: "解決済み" -unresolved: "未解決" -breakFollow: "フォロワーを解除" -itsOn: "オンになっています" -itsOff: "オフになっています" -emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする" -unread: "未読" -filter: "フィルタ" -controlPanel: "コントロールパネル" -manageAccounts: "アカウントを管理" -makeReactionsPublic: "リアクション一覧を公開する" -makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。" -classic: "クラシック" -muteThread: "スレッドをミュート" -unmuteThread: "スレッドのミュートを解除" -ffVisibility: "つながりの公開範囲" -ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。" -continueThread: "さらにスレッドを見る" -deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" -incorrectPassword: "パスワードが間違っています。" -voteConfirm: "「{choice}」に投票しますか?" -hide: "隠す" -leaveGroup: "グループから抜ける" -leaveGroupConfirm: "「{name}」から抜けますか?" -useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示" -welcomeBackWithName: "おかえりなさい、{name}さん" -clickToFinishEmailVerification: "[{ok}]を押して、メールアドレスの確認を完了してください。" -overridedDeviceKind: "デバイスタイプ" -smartphone: "スマートフォン" -tablet: "タブレット" -auto: "自動" -themeColor: "テーマカラー" -size: "サイズ" -numberOfColumn: "列の数" -searchByGoogle: "検索" -instanceDefaultLightTheme: "インスタンスデフォルトのライトテーマ" -instanceDefaultDarkTheme: "インスタンスデフォルトのダークテーマ" -instanceDefaultThemeDescription: "オブジェクト形式のテーマコードを記入します。" -mutePeriod: "ミュートする期限" -indefinitely: "無期限" -tenMinutes: "10分" -oneHour: "1時間" -oneDay: "1日" -oneWeek: "1週間" -reflectMayTakeTime: "反映されるまで時間がかかる場合があります。" -failedToFetchAccountInformation: "アカウント情報の取得に失敗しました" -rateLimitExceeded: "レート制限を超えました" -cropImage: "画像のクロップ" -cropImageAsk: "画像をクロップしますか?" -file: "ファイル" -recentNHours: "直近{n}時間" -recentNDays: "直近{n}日" -noEmailServerWarning: "メールサーバーの設定がされていません。" -thereIsUnresolvedAbuseReportWarning: "未対応の通報があります。" -recommended: "推奨" -check: "チェック" -driveCapOverrideLabel: "このユーザーのドライブ容量上限を変更" -driveCapOverrideCaption: "0以下を指定すると解除されます。" -requireAdminForView: "閲覧するには管理者アカウントでログインしている必要があります。" -isSystemAccount: "システムにより自動で作成・管理されているアカウントです。" -typeToConfirm: "この操作を行うには {x} と入力してください" -deleteAccount: "アカウント削除" -document: "ドキュメント" -numberOfPageCache: "ページキャッシュ数" -numberOfPageCacheDescription: "多くすると利便性が向上しますが、負荷とメモリ使用量が増えます。" -logoutConfirm: "ログアウトしますか?" -lastActiveDate: "最終利用日時" -statusbar: "ステータスバー" -pleaseSelect: "選択してください" -reverse: "反転" -colored: "色付き" -refreshInterval: "更新間隔" -label: "ラベル" -type: "タイプ" -speed: "速度" -slow: "遅い" -fast: "速い" -sensitiveMediaDetection: "センシティブなメディアの検出" -localOnly: "ローカルのみ" -remoteOnly: "リモートのみ" -failedToUpload: "アップロード失敗" -cannotUploadBecauseInappropriate: "不適切な内容を含む可能性があると判定されたためアップロードできません。" -cannotUploadBecauseNoFreeSpace: "ドライブの空き容量が無いためアップロードできません。" -beta: "ベータ" -enableAutoSensitive: "自動NSFW判定" -enableAutoSensitiveDescription: "利用可能な場合は、機械学習を利用して自動でメディアにNSFWフラグを設定します。この機能をオフにしても、インスタンスによっては自動で設定されることがあります。" -activeEmailValidationDescription: "ユーザーのメールアドレスのバリデーションを、捨てアドかどうかや実際に通信可能かどうかなどを判定しより積極的に行います。オフにすると単に文字列として正しいかどうかのみチェックされます。" -navbar: "ナビゲーションバー" -shuffle: "シャッフル" -account: "アカウント" -move: "移動" - -_sensitiveMediaDetection: - description: "機械学習を使って自動でセンシティブなメディアを検出し、モデレーションに役立てることができます。サーバーの負荷が少し増えます。" - sensitivity: "検出感度" - sensitivityDescription: "感度を低くすると、誤検知(偽陽性)が減ります。感度を高くすると、検知漏れ(偽陰性)が減ります。" - setSensitiveFlagAutomatically: "NSFWフラグを設定する" - setSensitiveFlagAutomaticallyDescription: "この設定をオフにしても内部的に判定結果は保持されます。" - analyzeVideos: "動画の解析を有効化" - analyzeVideosDescription: "静止画に加えて動画も解析するようにします。サーバーの負荷が少し増えます。" - -_emailUnavailable: - used: "既に使用されています" - format: "形式が正しくありません" - disposable: "恒久的に使用可能なアドレスではありません" - mx: "正しいメールサーバーではありません" - smtp: "メールサーバーが応答しません" - -_ffVisibility: - public: "公開" - followers: "フォロワーだけに公開" - private: "非公開" - -_signup: - almostThere: "ほとんど完了です" - emailAddressInfo: "あなたが使っているメールアドレスを入力してください。メールアドレスが公開されることはありません。" - emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。" - -_accountDelete: - accountDelete: "アカウントの削除" - mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあります。" - sendEmail: "アカウントの削除が完了する際は、登録してあったメールアドレス宛に通知を送信します。" - requestAccountDelete: "アカウント削除をリクエスト" - started: "削除処理が開始されました。" - inProgress: "削除が進行中" - -_ad: - back: "戻る" - reduceFrequencyOfThisAd: "この広告の表示頻度を下げる" - -_forgotPassword: - enterEmail: "アカウントに登録したメールアドレスを入力してください。そのアドレス宛てに、パスワードリセット用のリンクが送信されます。" - ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。" - contactAdmin: "このインスタンスではメールがサポートされていないため、パスワードリセットを行う場合は管理者までお問い合わせください。" - -_gallery: - my: "自分の投稿" - liked: "いいねした投稿" - like: "いいね!" - unlike: "いいね解除" - -_email: - _follow: - title: "フォローされました" - _receiveFollowRequest: - title: "フォローリクエストを受け取りました" - -_plugin: - install: "プラグインのインストール" - installWarn: "信頼できないプラグインはインストールしないでください。" - manage: "プラグインの管理" - -_preferencesBackups: - list: "作成したバックアップ" - saveNew: "新規保存" - loadFile: "ファイルを読み込み" - apply: "このデバイスに適用" - save: "上書き保存" - inputName: "バックアップ名を入力" - cannotSave: "保存できません" - nameAlreadyExists: "バックアップ名「{name}」は既に存在します。違う名前を指定してください。" - applyConfirm: "バックアップ「{name}」を現在のデバイスに適用しますか?現在のデバイス設定は失われます。" - saveConfirm: "{name}に上書き保存しますか?" - deleteConfirm: "{name}を削除しますか?" - renameConfirm: "「{old}」を「{new}」に変更しますか?" - noBackups: "バックアップはありません。「新規保存」で現在のクライアント設定をサーバーに保存できます。" - createdAt: "作成日時: {date} {time}" - updatedAt: "更新日時: {date} {time}" - cannotLoad: "読み込みできません" - invalidFile: "ファイル形式が違います。" - -_registry: - scope: "スコープ" - key: "キー" - keys: "キー" - domain: "ドメイン" - createKey: "キーを作成" - -_aboutMisskey: - about: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。" - contributors: "主なコントリビューター" - allContributors: "全てのコントリビューター" - source: "ソースコード" - translation: "Misskeyを翻訳" - donate: "Misskeyに寄付" - morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰" - patrons: "支援者" - -_nsfw: - respect: "閲覧注意のメディアは隠す" - ignore: "閲覧注意のメディアを隠さない" - force: "常にメディアを隠す" _mfm: cheatSheet: "MFMチートシート" @@ -1038,29 +663,45 @@ _mfm: bounce: "アニメーション(バウンド)" bounceDescription: "ぽよんぽよん弾むようなアニメーションを与えます。" shake: "アニメーション(ぶるぶる)" - shakeDescription: "ぶるぶる震えるアニメーションを与えます。" + shakeDescription: "ぶるぶるするアニメーションを与えます。" twitch: "アニメーション(ブレ)" twitchDescription: "激しくブレるアニメーションを与えます。" spin: "アニメーション(回転)" spinDescription: "回転するアニメーションを与えます。" - x2: "大きく" - x2Description: "内容を大きく表示します。" - x3: "とても大きく" - x3Description: "内容をとても大きく表示します。" - x4: "究極に大きく" - x4Description: "内容を究極に大きく表示します。" - blur: "ぼかし" - blurDescription: "内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。" - font: "フォント" - fontDescription: "内容のフォントを指定することができます。" - rainbow: "レインボー" - rainbowDescription: "内容をレインボーにします。" - sparkle: "キラキラ" - sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。" - rotate: "回転" - rotateDescription: "指定した角度で回転させます。" - plain: "プレーン" - plainDescription: "内側の構文を全て無効にします。" + +_reversi: + reversi: "リバーシ" + gameSettings: "対局の設定" + chooseBoard: "ボードを選択" + blackOrWhite: "先行/後攻" + blackIs: "{name}が黒(先行)" + rules: "ルール" + botSettings: "Botのオプション" + thisGameIsStartedSoon: "対局は数秒後に開始されます" + waitingForOther: "相手の準備が完了するのを待っています" + waitingForMe: "あなたの準備が完了するのを待っています" + waitingBoth: "準備してください" + ready: "準備完了" + cancelReady: "準備を再開" + opponentTurn: "相手のターンです" + myTurn: "あなたのターンです" + turnOf: "{name}のターンです" + pastTurnOf: "{name}のターン" + surrender: "投了" + surrendered: "投了により" + drawn: "引き分け" + won: "{name}の勝ち" + black: "黒" + white: "白" + total: "合計" + turnCount: "{count}ターン目" + myGames: "自分の対局" + allGames: "みんなの対局" + ended: "終了" + playing: "対局中" + isLlotheo: "石の少ない方が勝ち(ロセオ)" + loopedMap: "ループマップ" + canPutEverywhere: "どこでも置けるモード" _instanceTicker: none: "表示しない" @@ -1083,10 +724,9 @@ _channel: usersCount: "{n}人が参加中" notesCount: "{n}投稿があります" -_menuDisplay: - sideFull: "横" - sideIcon: "横(アイコン)" - top: "上部" +_sidebar: + full: "フル" + icon: "アイコン" hide: "隠す" _wordMute: @@ -1099,21 +739,12 @@ _wordMute: hard: "ハード" mutedNotes: "ミュートされたノート" -_instanceMute: - instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのノートとRenoteをミュートします。" - instanceMuteDescription2: "改行で区切って設定します" - title: "設定したインスタンスのノートを隠します。" - heading: "ミュートするインスタンス" - _theme: explore: "テーマを探す" install: "テーマのインストール" manage: "テーマの管理" code: "テーマコード" - description: "説明" installed: "{name}をインストールしました" - installedThemes: "インストールされたテーマ" - builtinThemes: "標準のテーマ" alreadyInstalled: "そのテーマは既にインストールされています" invalid: "テーマの形式が間違っています" make: "テーマを作る" @@ -1191,6 +822,7 @@ _sfx: channel: "チャンネル通知" _ago: + unknown: "謎" future: "未来" justNow: "たった今" secondsAgo: "{n}秒前" @@ -1237,7 +869,6 @@ _2fa: registerKey: "キーを登録" step1: "まず、{a}や{b}などの認証アプリをお使いのデバイスにインストールします。" step2: "次に、表示されているQRコードをアプリでスキャンします。" - step2Url: "デスクトップアプリでは次のURLを入力します:" step3: "アプリに表示されているトークンを入力して完了です。" step4: "これからログインするときも、同じようにトークンを入力します。" securityKeyInfo: "FIDO2をサポートするハードウェアセキュリティキーもしくは端末の指紋認証やPINを使用してログインするように設定できます。" @@ -1271,10 +902,6 @@ _permissions: "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" - "read:gallery": "ギャラリーを見る" - "write:gallery": "ギャラリーを操作する" - "read:gallery-likes": "ギャラリーのいいねを見る" - "write:gallery-likes": "ギャラリーのいいねを操作する" _auth: shareAccess: "「{name}」がアカウントにアクセスすることを許可しますか?" @@ -1308,21 +935,11 @@ _widgets: trends: "トレンド" clock: "時計" rss: "RSSリーダー" - rssTicker: "RSSティッカー" activity: "アクティビティ" photos: "フォト" digitalClock: "デジタル時計" - unixClock: "UNIX時計" federation: "連合" - instanceCloud: "インスタンスクラウド" postForm: "投稿フォーム" - slideshow: "スライドショー" - button: "ボタン" - onlineUsers: "オンラインユーザー" - jobQueue: "ジョブキュー" - serverMetric: "サーバーメトリクス" - aiscript: "AiScriptコンソール" - aichan: "藍" _cw: hide: "隠す" @@ -1382,13 +999,9 @@ _profile: username: "ユーザー名" description: "自己紹介" youCanIncludeHashtags: "ハッシュタグを含めることができます。" - metadata: "追加情報" - metadataEdit: "追加情報を編集" - metadataDescription: "プロフィールに表として追加情報を表示することができます。" + metadata: "補足情報" metadataLabel: "ラベル" metadataContent: "内容" - changeAvatar: "アバター画像を変更" - changeBanner: "バナー画像を変更" _exportOrImport: allNotes: "全てのノート" @@ -1396,12 +1009,10 @@ _exportOrImport: muteList: "ミュート" blockingList: "ブロック" userLists: "リスト" - excludeMutingUsers: "ミュートしているユーザーを除外" - excludeInactiveUsers: "使われていないアカウントを除外" _charts: - federation: "連合" - apRequest: "リクエスト" + federationInstancesIncDec: "連合の増減" + federationInstancesTotal: "連合の合計" usersIncDec: "ユーザーの増減" usersTotal: "ユーザーの合計" activeUsers: "アクティブユーザー数" @@ -1433,6 +1044,69 @@ _timelines: social: "ソーシャル" global: "グローバル" +_rooms: + roomOf: "{user}のルーム" + addFurniture: "家具を置く" + translate: "移動" + rotate: "回転" + exit: "戻る" + remove: "しまう" + clear: "片付け" + clearConfirm: "全ての家具をしまいますか?" + leaveConfirm: "未保存の変更があります、移動しますか?" + chooseImage: "画像を選択" + roomType: "部屋のタイプ" + carpetColor: "床の色" + _roomType: + default: "デフォルト" + washitsu: "和室" + _furnitures: + milk: "牛乳パック" + bed: "ベッド" + low-table: "ローテーブル" + desk: "デスク" + chair: "チェア" + chair2: "チェア2" + fan: "換気扇" + pc: "パソコン" + plant: "観葉植物" + plant2: "観葉植物2" + eraser: "消しゴム" + pencil: "鉛筆" + pudding: "プリン" + cardboard-box: "段ボール箱" + cardboard-box2: "段ボール箱2" + cardboard-box3: "段ボール箱3" + book: "本" + book2: "本2" + piano: "ピアノ" + facial-tissue: "ティッシュボックス" + server: "サーバー" + moon: "月" + corkboard: "コルクボード" + mousepad: "マウスパッド" + monitor: "モニター" + keyboard: "キーボード" + carpet-stripe: "カーペット(縞)" + mat: "マット" + color-box: "カラーボックス" + wall-clock: "壁掛け時計" + photoframe: "額縁" + cube: "キューブ" + tv: "テレビ" + pinguin: "ピンギン" + rubik-cube: "ルービックキューブ" + poster-h: "ポスター(横長)" + poster-v: "ポスター(縦長)" + sofa: "ソファ" + spiral: "螺旋階段" + bin: "ゴミ箱" + cup-noodle: "カップ麺" + holo-display: "ホログラフィックディスプレイ" + energy-drink: "エナジードリンク" + doll-ai: "藍ちゃん人形" + banknote: "札束" + _pages: newPage: "ページの作成" editPage: "ページの編集" @@ -1752,9 +1426,7 @@ _notification: youWereFollowed: "フォローされました" youReceivedFollowRequest: "フォローリクエストが来ました" yourFollowRequestAccepted: "フォローリクエストが承認されました" - youWereInvitedToGroup: "{userName}があなたをグループに招待しました" - pollEnded: "アンケートの結果が出ました" - emptyPushNotificationMessage: "プッシュ通知の更新をしました" + youWereInvitedToGroup: "グループに招待されました" _types: all: "すべて" @@ -1765,37 +1437,23 @@ _notification: quote: "引用" reaction: "リアクション" pollVote: "アンケートに投票された" - pollEnded: "アンケートが終了" receiveFollowRequest: "フォロー申請を受け取った" followRequestAccepted: "フォローが受理された" groupInvited: "グループに招待された" app: "連携アプリからの通知" - _actions: - followBack: "フォローバック" - reply: "返信" - renote: "Renote" - _deck: alwaysShowMainColumn: "常にメインカラムを表示" columnAlign: "カラムの寄せ" addColumn: "カラムを追加" - configureColumn: "カラムの設定" swapLeft: "左に移動" swapRight: "右に移動" swapUp: "上に移動" swapDown: "下に移動" stackLeft: "左に重ねる" popRight: "右に出す" - profile: "プロファイル" - newProfile: "新規プロファイル" - deleteProfile: "プロファイルを削除" - introduction: "カラムを組み合わせて自分だけのインターフェイスを作りましょう!" - introduction2: "画面の右にある + を押して、いつでもカラムを追加できます。" - widgetsIntroduction: "カラムのメニューから、「ウィジェットの編集」を選択してウィジェットを追加してください" _columns: - main: "メイン" widgets: "ウィジェット" notifications: "通知" tl: "タイムライン" diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 7d93fd83e..a52ee9559 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -1,17 +1,15 @@ --- _lang_: "日本語 (関西弁)" -headlineMisskey: "ノートでつながるネットワーク" -introMisskey: "ようお越し!Misskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ノート」を作って、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のノートに素早く反応を追加したりもできるで✌\nほな新しい世界を探検しよか🚀" +introMisskey: "ようこそ!Misskeyってのは、オープンソースの分散型マイクロブログサービスやねん。\n「ノート」を作成し、いま起こっとることを共有したり、あんたんこととか皆に伝えていこう📡\n「リアクション」機能で、皆のノートに素はよ反応を追加することもできるんやで✌\n新しい世界を探検してみらん?🚀" monthAndDay: "{month}月 {day}日" search: "探す" notifications: "通知" username: "ユーザー名" password: "パスワード" -forgotPassword: "パスワード忘れてん" fetchingAsApObject: "今ちと連合に照会しとるで" -ok: "OKや" +ok: "おっけー" gotIt: "ほい" -cancel: "やめとく" +cancel: "やめとくわ" enterUsername: "ユーザー名を入れてや" renotedBy: "{user}がRenote" noNotes: "ノートはあらへん" @@ -20,44 +18,39 @@ instance: "インスタンス" settings: "設定" basicSettings: "基本設定" otherSettings: "その他の設定" -openInWindow: "ウィンドウで開くで" +openInWindow: "ウィンドウで開いてや" profile: "プロフィール" timeline: "タイムライン" -noAccountDescription: "自己紹介食ってもた" +noAccountDescription: "自己紹介はあらへん" login: "ログイン" loggingIn: "ログインしよるで" logout: "ログアウト" signup: "新規登録" -uploading: "アップロードしとるで" -save: "保存" +uploading: "アップロードしよるで" +save: "とっとく" users: "ユーザー" addUser: "ユーザーを追加や" favorite: "お気に入り" favorites: "お気に入り" unfavorite: "やっぱ気に入らん" -favorited: "お気に入りに登録したで" -alreadyFavorited: "もうお気に入りに入れとるがな。" -cantFavorite: "アカン、お気に入り登録できへんかったで。" pin: "ピン留めしとく" unpin: "やっぱピン留めせん" copyContent: "内容をコピー" copyLink: "リンクをコピー" delete: "ほかす" deleteAndEdit: "ほかして直す" -deleteAndEditConfirm: "このノートをほかして書き直すんか?このノートへのリアクション、Renote、返信も全部消えてまうで。" +deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Renote、返信も全部消えるんやけどそれでもええん?" addToList: "リストに入れたる" sendMessage: "メッセージを送る" copyUsername: "ユーザー名をコピー" searchUser: "ユーザーを検索" -reply: "返事" -loadMore: "まだまだあるで!" -showMore: "まだまだあるで!" -showLess: "閉じる" +reply: "返す" +loadMore: "もっとあるやろ!" youGotNewFollower: "フォローされたで" receiveFollowRequest: "フォローリクエストされたで" followRequestAccepted: "フォローが承認されたで" mention: "メンション" -mentions: "うち宛て" +mentions: "あんた宛て" directNotes: "ダイレクト投稿" importAndExport: "インポートとエクスポート" import: "インポート" @@ -82,35 +75,28 @@ somethingHappened: "なんかアカンことが起こったで" retry: "もっぺんやる?" pageLoadError: "ページの読み込みに失敗してしもうたで…" pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?" -serverIsDead: "The server is not responding. Please wait for a while before trying again." -youShouldUpgradeClient: "To display this page, please reload and use a new version client. " enterListName: "リスト名を入れてや" -privacy: "プライバシー" -makeFollowManuallyApprove: "自分が認めた人だけがこのアカウントをフォローできるようにする" +privacy: "プライバシーってなんぞや?" +makeFollowManuallyApprove: "他人からのフォローは自分が決める" defaultNoteVisibility: "もとからの公開範囲" follow: "フォロー" followRequest: "フォローを頼む" -followRequests: "フォロー申請" +followRequests: "フォローを頼む" unfollow: "フォローやめる" followRequestPending: "フォロー許してくれるん待っとる" enterEmoji: "絵文字を入れてや" renote: "Renote" unrenote: "Renoteやめる" -renoted: "Renoteしたで。" -cantRenote: "この投稿はRenoteできへんらしい。" -cantReRenote: "Renote自体はRenoteできへんで。" quote: "引用" pinnedNote: "ピン留めされとるノート" -pinned: "ピン留めしとく" you: "あんた" -clickToShow: "押したら見えるで" +clickToShow: "押したら見えるようになるで" sensitive: "ちょっとアカンやつやで" add: "増やす" reaction: "リアクション" -reactionSetting: "Reaction that will be displayed in Picker. " -reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。" +reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。" rememberNoteVisibility: "公開範囲覚えといて" -attachCancel: "のっけるのやめる" +attachCancel: "やっぱ添付やめてくれん?" markAsSensitive: "ちょっとこれはアカン" unmarkAsSensitive: "そこまでアカンことないやろ" enterFileName: "ファイル名を入れてや" @@ -131,21 +117,16 @@ editWidgets: "ウィジェットをいじる" editWidgetsExit: "編集終ったで" customEmojis: "カスタム絵文字" emoji: "絵文字" -emojis: "絵文字" emojiName: "絵文字名" emojiUrl: "絵文字画像URL" addEmoji: "絵文字を追加" settingGuide: "ええ感じの設定" cacheRemoteFiles: "リモートのファイルをキャッシュする" -cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになるで。サーバーの容量は節約できるけど、サムネイルが作られんくなるから通信量が増えるで。" +cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになってしまうんやで? サーバーのストレージは節約できるんやけど、かわりにサムネイルが作られんくなるから通信量が増えるで?" flagAsBot: "Botやで" -flagAsBotDescription: "もしこのアカウントがプログラムによって運用されるんやったら、このフラグをオンにしてたのむで。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったもんになるんやで。" flagAsCat: "Catやで" -flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?" -flagShowTimelineReplies: "It will display the reply to the note in the timeline. " -flagShowTimelineRepliesDescription: "It will display the reply to notes other than the user notes in the timeline when you turn it on. " -autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストを勝手に許可しとく" -addAccount: "アカウントを追加" +autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストには勝手に許可しとくで。" +addAcount: "アカウント追加" loginFailed: "ログインに失敗してしもうた…" showOnRemote: "リモートで見る" general: "全般" @@ -189,7 +170,7 @@ clearQueue: "キューにさいなら" clearQueueConfirmTitle: "キューをクリアしまっか?" clearQueueConfirmText: "未配達の投稿は配送されなくなるで。通常この操作を行う必要はあらへんや。" clearCachedFiles: "キャッシュにさいなら" -clearCachedFilesConfirm: "キャッシュされとるリモートファイルをみんなほかしてええか?" +clearCachedFilesConfirm: "キャッシュされとるリモートファイルを全部削除しまっか?" blockedInstances: "インスタンスブロック" blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定してな。ブロックされてもうたインスタンスとはもう金輪際やり取りできひんくなるで。" muteAndBlock: "ミュートとブロック" @@ -204,13 +185,12 @@ done: "でけた" processing: "処理しとる" preview: "プレビュー" default: "デフォルト" -defaultValueIs: "デフォルト" noCustomEmojis: "絵文字はあらへん" noJobs: "ジョブはあらへん" federating: "連合しとる" blocked: "ブロックしとる" suspended: "配信せぇへん" -all: "みんな" +all: "みな" subscribing: "購読しとる" publishing: "配信しとる" notResponding: "応答してへんで" @@ -223,24 +203,21 @@ retypedNotMatch: "そやないねん。" currentPassword: "今のパスワード" newPassword: "今度のパスワード" newPasswordRetype: "今度のパスワード(もっぺん入れて)" -attachFile: "ファイルのっける" -more: "他のやつ!" +attachFile: "ファイルくっつけて" +more: "他ないんか!" featured: "ハイライト" usernameOrUserId: "ユーザー名かユーザーID" noSuchUser: "ユーザーが見つからへんで" lookup: "見てきて" -announcements: "お知らせ" +announcements: "これ知っといてな" imageUrl: "画像URL" remove: "ほかす" removed: "削除したで!" -removeAreYouSure: "「{x}」はほかしてええか?" -deleteAreYouSure: "「{x}」はほかしてええか?" -resetAreYouSure: "リセットしてええん?" +removeAreYouSure: "「{x}」はなおしてしもてええか?" +deleteAreYouSure: "「{x}」はなおしてしもてええか?" saved: "保存したで!" messaging: "チャット" upload: "アップロード" -keepOriginalUploading: "Retain the original image. " -keepOriginalUploadingDescription: "When uploading the clip, the original version will be retained. Turning it of then uploading will produce images for public use. " fromDrive: "ドライブから" fromUrl: "URLから" uploadFromUrl: "URLアップロード" @@ -248,15 +225,16 @@ uploadFromUrlDescription: "このURLのファイルをアップロードした uploadFromUrlRequested: "アップロードしたい言うといたで" uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。" explore: "みつける" +games: "Misskey Games" messageRead: "もう読んだ" noMoreHistory: "これより過去の履歴はあらへんで" startMessaging: "チャットやるで" nUsersRead: "{n}人が読んでもうた" -agreeTo: "{0}に同意したで" +agreeTo: "{0}はええで" tos: "利用規約" start: "始める" home: "ホーム" -remoteUserCaution: "リモートユーザーやから、足りひん情報あるかもしれへん。" +remoteUserCaution: "リモートユーザーやから、ちゃんとした情報とちゃうで。" activity: "アクティビティ" images: "画像" birthday: "生まれた日" @@ -270,7 +248,7 @@ light: "ライト" dark: "ダーク" lightThemes: "デイゲーム" darkThemes: "ナイトゲーム" -syncDeviceDarkMode: "デバイスのダークモードと一緒にする" +syncDeviceDarkMode: "試合開始時間はデバイスのダークモードと一緒や" drive: "ドライブ" fileName: "ファイル名" selectFile: "ファイル選んでや" @@ -287,7 +265,6 @@ emptyDrive: "ドライブにはなんも残っとらん" emptyFolder: "ふぉろだーにはなんも残っとらん" unableToDelete: "消そうおもってんけどな、あかんかったわ" inputNewFileName: "今度のファイル名は何にするん?" -inputNewDescription: "新しいキャプションを入力しましょ" inputNewFolderName: "今度のフォルダ名は何にするん?" circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーや。" hasChildFilesOrFolders: "このフォルダ、まだなんか入っとるから消されへん" @@ -295,9 +272,9 @@ copyUrl: "URLをコピー" rename: "名前を変えるで" avatar: "アイコン" banner: "バナー" -nsfw: "閲覧注意" -whenServerDisconnected: "サーバーとの接続が切れたとき" -disconnectedFromServer: "サーバーとの通信が切れたで" +nsfw: "ちょっとアカンやつやで" +whenServerDisconnected: "サーバーとの接続が失くなってしもうたとき" +disconnectedFromServer: "サーバーが機嫌悪いねん" reload: "リロード" doNothing: "何もせんとく" reloadConfirm: "リロードしてええか?" @@ -318,28 +295,25 @@ dayX: "{day}日" monthX: "{month}月" yearX: "{year}年" pages: "ページ" -integration: "連携" -connectService: "つなげるで" -disconnectService: "切るで" +integration: "つないで" +connectSerice: "つなげる" +disconnectSerice: "切ってまう" enableLocalTimeline: "ローカルタイムラインを使えるようにする" enableGlobalTimeline: "グローバルタイムラインを使えるようにする" disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。" registration: "登録" enableRegistration: "一見さんでも誰でもいらっしゃ~い" invite: "来てや" +proxyRemoteFiles: "リモートのファイルをプロキシする" +proxyRemoteFilesDescription: "この設定を入れると、保存しとらんかったり、お腹いっぱいになってしもたせいで保存できんかったリモートファイルをローカルでプロキシして、サムネイル作ってもらうことができるで。サーバーの腹具合には影響せんけどな。" driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量" driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量" inMb: "メガバイト単位" iconUrl: "アイコン画像のURL" bannerUrl: "バナー画像のURL" -backgroundImageUrl: "背景画像のURL" basicInfo: "基本情報" pinnedUsers: "ピン留めしたユーザー" pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。" -pinnedPages: "ピン留めページ" -pinnedPagesDescription: "インスタンスのいっちゃん上にピン留めしたいページのパスを改行で区切って記述してな" -pinnedClipId: "ピン留めするクリップのID" -pinnedNotes: "ピン留めされとるノート" hcaptcha: "hCaptcha(キャプチャ)" enableHcaptcha: "hCaptcha(キャプチャ)をつけとく" hcaptchaSiteKey: "サイトキー" @@ -356,8 +330,9 @@ antennaSource: "受信ソース(このソースは食われへん)" antennaKeywords: "受信キーワード" antennaExcludeKeywords: "除外キーワード" antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や" -notifyAntenna: "新しいノートを通知すんで" +notifyAntenna: "新しいノートを追加すんで" withFileAntenna: "なんか添付されたノートだけ" +serviceworker: "ServiceWorker" enableServiceworker: "ServiceWorkerをつこて" antennaUsersDescription: "ユーザー名を改行で区切ったってな" caseSensitive: "大文字と小文字は別もんや" @@ -379,11 +354,17 @@ popularTags: "人気のタグ" userList: "リスト" about: "情報" aboutMisskey: "Misskeyってなんや?" +aboutMisskeyText: "Misskeyはsyuiloいう人が2014年からずっと作ってはる、オープンソースなソフトウェアや。" +misskeyMembers: "今んとここんだけのメンバーが作って、メンテナンスしてはる:" +misskeySource: "ソースコードはこっから見てな:" +misskeyTranslation: "Misskeyの翻訳手伝うてくれへん?:" +misskeyDonate: "Misskeyにお金あげたら開発のサポートになるで:" +morePatrons: "他にもぎょうさんの人からサポートしてもろてんねん。ほんまおおきに🥰" +patrons: "支援者" administrator: "管理者" token: "トークン" twoStepAuthentication: "二段階認証" moderator: "モデレーター" -moderation: "モデレーション" nUsersMentioned: "{n}人が投稿" securityKey: "セキュリティキー" securityKeyName: "キーの名前" @@ -393,18 +374,18 @@ unregister: "登録やめる" passwordLessLogin: "パスワード無くてもログインできるようにする" resetPassword: "パスワードをリセット" newPasswordIs: "今度のパスワードは「{password}」や" -reduceUiAnimation: "UIの動きやアニメーションを減らす" +reduceUiAnimation: "UIの動きやアニメーションを減らしてくれや。" share: "わけわけ" notFound: "見つからへんね" notFoundDescription: "指定されたURLに該当するページはあらへんやった。" -uploadFolder: "とりあえずアップロードしたやつ置いとく所" +uploadFolder: "とりあえずここへアップロード" cacheClear: "キャッシュをほかす" markAsReadAllNotifications: "通知はもう全て読んだわっ" markAsReadAllUnreadNotes: "投稿は全て読んだわっ" markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ" help: "ヘルプ" inputMessageHere: "ここにメッセージ書いてや" -close: "閉じる" +close: "さいなら" group: "グループ" groups: "グループ" createGroup: "グループを作るで" @@ -423,575 +404,35 @@ next: "次" retype: "もっかい入力" noteOf: "{user}のノート" inviteToGroup: "グループに招く" +maxNoteTextLength: "ノートの文字数制限" quoteAttached: "引用付いとるで" quoteQuestion: "引用として添付してもええか?" noMessagesYet: "まだチャットはあらへんで" newMessageExists: "新しいメッセージがきたで" onlyOneFileCanBeAttached: "すまん、メッセージに添付できるファイルはひとつだけなんや。" -signinRequired: "ログインしてくれへん?" invitations: "来てや" invitationCode: "招待コード" checking: "確認しとるで" -available: "利用できる\n" -unavailable: "利用できん" -usernameInvalidFormat: "a~z、A~Z、0~9、_が使えるで" -tooShort: "短すぎやろ!" -tooLong: "長すぎやろ!" -weakPassword: "へぼいパスワード" -normalPassword: "普通のパスワード" -strongPassword: "ええ感じのパスワード" -passwordMatched: "よし!一致や!" -passwordNotMatched: "一致しとらんで?" -signinWith: "{x}でログイン" -signinFailed: "ログインできんかったで。もっかいユーザー名とパスワードを確認してみてな。" -tapSecurityKey: "セキュリティキーにタッチしてな" -or: "それか" -language: "言語" -uiLanguage: "UIの表示言語" -groupInvited: "グループに招待されとるで" -aboutX: "{x}について" -useOsNativeEmojis: "OSネイティブの絵文字を使う" -disableDrawer: "メニューをドロワーで表示せぇへん" -youHaveNoGroups: "グループがあらへんねぇ。" -joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループ作ってからやってな" -noHistory: "履歴はあらへんねぇ。" -signinHistory: "ログイン履歴" -disableAnimatedMfm: "動きがやかましいMFMを止める" -doing: "やっとるがな" -category: "カテゴリ" -tags: "タグ" -docSource: "このドキュメントのソース" -createAccount: "アカウントを作成" -existingAccount: "既存のアカウント" -regenerate: "再生成" -fontSize: "フォントサイズ" -noFollowRequests: "フォロー申請はあらへんで" -openImageInNewTab: "画像を新しいタブで開く" -dashboard: "ダッシュボード" -local: "ローカル" -remote: "リモート" -total: "合計" -weekOverWeekChanges: "前週比" -dayOverDayChanges: "前日比" -appearance: "見た目" -clientSettings: "クライアントの設定" -accountSettings: "アカウントの設定" -promotion: "宣伝" -promote: "宣伝" -numberOfDays: "日数" -hideThisNote: "このノートは表示せんでいい" -showFeaturedNotesInTimeline: "タイムラインにおすすめのノートを表示してや" -objectStorage: "オブジェクトストレージ" -useObjectStorage: "オブジェクトストレージを使う" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "参照に使うにURLやで。CDNやProxyを使用してるんならそのURL、S3: 'https://.s3.amazonaws.com'、GCSとかなら: 'https://storage.googleapis.com/'。" -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "使ってるサービスのbucket名を選んでな" -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "このprefixのディレクトリ下に格納されるで" -objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "S3のときは空、それ以外は各サービスのendpointを指定してなー。''ってやるか':'みたいに指定するんやで。" -objectStorageRegion: "Region" -objectStorageRegionDesc: "'xx-east-1'みたいなregionを指定したってやー。使ってるサービスにregionの概念がないときは、空か'us-east-1'にするんやで。" -objectStorageUseSSL: "SSLを使う" -objectStorageUseSSLDesc: "API接続にhttpsを使わん場合はオフにするんやで" -objectStorageUseProxy: "Proxyを使う" -objectStorageUseProxyDesc: "API接続にproxy使わんのやったら切ってくれへん?" -objectStorageSetPublicRead: "アップロードした時に'public-read'を設定してや" -serverLogs: "サーバーログ" -deleteAll: "全て削除してや" -showFixedPostForm: "タイムラインの上の方で投稿できるようにやってくれへん?" -newNoteRecived: "新しいノートがあるで" -sounds: "サウンド" -listen: "聴く" -none: "なし" -showInPage: "ページで表示" -popout: "ポップアウト" -volume: "音量" -masterVolume: "全体の音量" -details: "もっと" -chooseEmoji: "絵文字を選ぶ" -unableToProcess: "なんか作業が止まってしまったようやね" -recentUsed: "最近使ったやつ" -install: "インストール" -uninstall: "アンインストール" -installedApps: "インストールされとるアプリ" -nothing: "あらへん" -installedDate: "インストールした日時" -lastUsedDate: "最後に使った日時" -state: "状態" -sort: "仕分ける" -ascendingOrder: "小さい順" -descendingOrder: "大きい順" -scratchpad: "スクラッチパッド" -scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。Misskeyに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。" -output: "出力" -script: "スクリプト" -disablePagesScript: "Pagesのスクリプトを無効にしてや" -updateRemoteUser: "リモートユーザー情報の更新してくれん?" -deleteAllFiles: "すべてのファイルを削除" -deleteAllFilesConfirm: "ホンマにすべてのファイルを削除するん?消したもんはもう戻ってこんのやで?" -removeAllFollowing: "フォローを全解除" -removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。" -userSuspended: "このユーザーは...凍結されとる。" -userSilenced: "このユーザーは...サイレンスされとる。" -yourAccountSuspendedTitle: "あんたのアカウント凍結されとるで" -yourAccountSuspendedDescription: "あんたのアカウントは、サーバーの利用規約に違反したとかの理由で、凍結されとるで。細かいことは管理者までお問い合わせたってなー。絶対に新しいアカウント作ったらあかんで。絶対やで。" -menu: "メニュー" -divider: "分割線" -addItem: "項目を追加" -relays: "リレー" -addRelay: "リレーの追加" -inboxUrl: "inboxのURL" -addedRelays: "追加済みのリレー" -serviceworkerInfo: "プッシュ通知をするんなら有効にせなあかんで。" -deletedNote: "消された投稿" -invisibleNote: "非公開の投稿" -enableInfiniteScroll: "自動でもっと見る" -visibility: "公開範囲" -poll: "アンケート" -useCw: "内容を隠す" -enablePlayer: "プレイヤーを開く" -disablePlayer: "プレイヤーを閉じる" -expandTweet: "ツイートを展開する" -themeEditor: "テーマエディター" -description: "説明" -describeFile: "キャプションを付ける" -enterFileDescription: "キャプションを入力" -author: "作者" -leaveConfirm: "未保存の変更があるで!ほかしてええか?" -manage: "管理" -plugins: "プラグイン" -deck: "デッキ" -undeck: "デッキ解除" -useBlurEffectForModal: "モーダルにぼかし効果を使用" -useFullReactionPicker: "フル機能にリアクションピッカーを使用" -width: "幅" -height: "高さ" -large: "大" -medium: "中" -small: "小" -generateAccessToken: "アクセストークンの発行" -permission: "権限" -enableAll: "全部使えるようにする" -disableAll: "全部使えへんようにする" -tokenRequested: "アカウントへのアクセス許可" -pluginTokenRequestedDescription: "このプラグインはここで設定した権限を使えるようになるで。" -notificationType: "通知の種類" -edit: "編集" -useStarForReactionFallback: "リアクションがようわからん場合、★を使う" -emailServer: "メールサーバー" -enableEmail: "メール配信を受け取る" -emailConfigInfo: "メールアドレスの確認とかパスワードリセットの時に使うで" -email: "メール" -emailAddress: "メールアドレス" -smtpConfig: "SMTP サーバーの設定" smtpHost: "ホスト" -smtpPort: "ポート" smtpUser: "ユーザー名" smtpPass: "パスワード" -emptyToDisableSmtpAuth: "ユーザー名とパスワードになんも入れんかったら、SMTP認証を無効化するで" -smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する" -smtpSecureInfo: "STARTTLS使っとる時はオフにするで。" -testEmail: "配信テスト" -wordMute: "ワードミュート" -regexpError: "正規表現エラー" -regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが出てきたで:" -instanceMute: "インスタンスミュート" -userSaysSomething: "{name}が何か言ったようやで" -makeActive: "使うで" -display: "表示" -copy: "コピー" -metrics: "メトリクス" -overview: "概要" -logs: "ログ" -delayed: "遅延" -database: "データベース" -channel: "チャンネル" -create: "作成" -notificationSetting: "通知設定" -notificationSettingDesc: "表示する通知の種類えらんでや。" -useGlobalSetting: "グローバル設定を使ってや" -useGlobalSettingDesc: "オンにすると、アカウントの通知設定が使われるで。オフにすると、別々に設定できるようになるで。" -other: "その他" -regenerateLoginToken: "ログイントークンを再生成" -regenerateLoginTokenDescription: "ログインに使われる内部トークンをもっかい作るで。いつもならこれをやる必要はないで。もっかい作ると、全部のデバイスでログアウトされるで気ぃつけてなー。" -setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できるで。" -fileIdOrUrl: "ファイルIDかURL" -behavior: "動作" -sample: "サンプル" -abuseReports: "通報" -reportAbuse: "通報" -reportAbuseOf: "{name}を通報する" -fillAbuseReportDescription: "細かい通報理由を書いてなー。対象ノートがある時はそのURLも書いといてなー。" -abuseReported: "無事内容が送信されたみたいやで。おおきに〜。" -reporter: "通報者" -reporteeOrigin: "通報先" -reporterOrigin: "通報元" -forwardReport: "リモートインスタンスに通報を転送するで" -forwardReportIsAnonymous: "リモートインスタンスからはあんたの情報は見れへんくって、匿名のシステムアカウントとして表示されるで。" -send: "送信" -abuseMarkAsResolved: "対応したで" -openInNewTab: "新しいタブで開く" -openInSideView: "サイドビューで開く" -defaultNavigationBehaviour: "デフォルトのナビゲーション" -editTheseSettingsMayBreakAccount: "このへんの設定をようわからんままイジるとアカウントが壊れて使えんくなるかも知れへんで?" -instanceTicker: "ノートのインスタンス情報" -waitingFor: "{x}を待っとるで" -random: "ランダム" -system: "システム" -switchUi: "UI切り替え" -desktop: "デスクトップ" -clip: "クリップ" -createNew: "新しく作るで" -optional: "任意" -createNewClip: "新しいクリップを作るで" -unclip: "クリップ解除するで" -confirmToUnclipAlreadyClippedNote: "このノートはすでにクリップ「{name}」に含まれとるで。ノートをこのクリップから除外したる?" -public: "パブリック" -i18nInfo: "Misskeyは有志によっていろんな言語に翻訳されとるで。{link}で翻訳に協力したってやー。" -manageAccessTokens: "アクセストークンの管理" -accountInfo: "アカウント情報" -notesCount: "ノートの数やで" -repliesCount: "返信した数やで" -renotesCount: "Renoteした数やで" -repliedCount: "返信された数やで" -renotedCount: "Renoteされた数やで" -followingCount: "フォロー数やで" -followersCount: "フォロワー数やで" -sentReactionsCount: "リアクションした数やで" -receivedReactionsCount: "リアクションされた数" -pollVotesCount: "アンケートに投票した数" -pollVotedCount: "アンケートに投票された数" -yes: "はい" -no: "いいえ" -driveFilesCount: "ドライブのファイル数" -driveUsage: "ドライブ使用量やで" -noCrawle: "クローラーによるインデックスを拒否するで" -noCrawleDescription: "検索エンジンにあんたのユーザーページ、ノート、Pagesとかのコンテンツを登録(インデックス)せぇへんように頼むで。" -lockedAccountInfo: "フォローを承認制にしとっても、ノートの公開範囲を「フォロワー」にせぇへん限り、誰でもあんたのノートを見れるで。" -alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にするで" -loadRawImages: "添付画像のサムネイルをオリジナル画質にするで" -disableShowingAnimatedImages: "アニメーション画像を再生しやへんで" -verificationEmailSent: "無事確認のメールを送れたで。メールに書いてあるリンクにアクセスして、設定を完了してなー。" -notSet: "未設定" -emailVerified: "メールアドレスは確認されたで" -noteFavoritesCount: "お気に入りノートの数やで" -pageLikesCount: "Pageにええやんと思った数" -pageLikedCount: "Pageにええやんと思ってくれた数" -contact: "連絡先" -useSystemFont: "システムのデフォルトのフォントを使うで" -clips: "クリップ" -experimentalFeatures: "実験的機能やで" -developer: "開発者やで" -makeExplorable: "アカウントを見つけやすくするで" -makeExplorableDescription: "オフにすると、「みつける」にアカウントが載らんくなるで。" -showGapBetweenNotesInTimeline: "タイムラインのノートを放して表示するで" -duplicate: "複製" -left: "左" -center: "中央" -wide: "広い" -narrow: "狭い" -reloadToApplySetting: "設定はページリロード後に反映されるで。今リロードしとくか?" -needReloadToApply: "反映には再起動せなあかんで" -showTitlebar: "タイトルバーを見せる" -clearCache: "キャッシュをほかす" -onlineUsersCount: "{n}人が起きとるで" -nUsers: "{n}ユーザー" -nNotes: "{n}ノート" -sendErrorReports: "エラーリポートを送る" -sendErrorReportsDescription: "オンにしたら、なんか変なことが起きたときにエラーの詳細がMisskeyに共有されて、ソフトウェアの品質向上に役立てられるんや。エラー情報には、OSのバージョン、ブラウザの種類、行動履歴などが含まれるで。" -myTheme: "マイテーマ" -backgroundColor: "背景" -accentColor: "アクセント" -textColor: "文字" -saveAs: "名前を付けて保存" -advanced: "高度" -value: "値" -createdAt: "作成した日" -updatedAt: "更新日時" -saveConfirm: "保存するで?" -deleteConfirm: "ホンマに削除するで?" -invalidValue: "有効な値じゃないみたいやで。" -registry: "レジストリ" -closeAccount: "アカウントを閉鎖する" -currentVersion: "現在のバージョン" -latestVersion: "最新のバージョン" -youAreRunningUpToDateClient: "今使ってるクライアントが最新やで!" -newVersionOfClientAvailable: "新しいバージョンのクライアントが使えるで。" -usageAmount: "使用量" -capacity: "容量" -inUse: "使用中" -editCode: "コードを編集" -apply: "適用" -receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る" -emailNotification: "メール通知" -publish: "公開" -inChannelSearch: "チャンネル内検索" -useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開くようにする" -typingUsers: "{users}が今書きよるで" -jumpToSpecifiedDate: "特定の日付にジャンプ" -showingPastTimeline: "過去のタイムラインを表示してるで" -clear: "クリア" -markAllAsRead: "もうみな読んでもうたわ" -goBack: "戻る" -unlikeConfirm: "いいね解除するんか?" -fullView: "フルビュー" -quitFullView: "フルビュー解除" -addDescription: "説明を追加するで" -userPagePinTip: "個々のノートのメニューから「ピン留め」を選んどくと、ここにノートを表示しておけるで。" -notSpecifiedMentionWarning: "宛先に含まれてへんメンションがあるで" -info: "情報" -userInfo: "ユーザー情報やで" -unknown: "不明" -onlineStatus: "オンライン状態" -hideOnlineStatus: "オンライン状態を隠すで" -hideOnlineStatusDescription: "オンライン状態を隠すと、検索とかの一部の機能で使いにくくなるかもしれんよ。" -online: "オンライン" -active: "アクティブ" -offline: "オフライン" -notRecommended: "あんま推奨しやんで" -botProtection: "Botプロテクション" -instanceBlocking: "インスタンスブロック" -selectAccount: "アカウントを選んでなー" -switchAccount: "アカウントを変えるで" -enabled: "有効" -disabled: "無効" -quickAction: "クイックアクション" -user: "ユーザー" -administration: "管理" -accounts: "アカウント" -switch: "切り替え" -noMaintainerInformationWarning: "管理者情報が設定されてへんで" -noBotProtectionWarning: "Botプロテクションが設定されてへんで。" -configure: "設定する" -postToGallery: "ギャラリーへ投稿" -gallery: "ギャラリー" -recentPosts: "最近の投稿" -popularPosts: "人気の投稿" -shareWithNote: "ノートで共有" -ads: "広告" -expiration: "期限" -memo: "メモ" -priority: "優先度" -high: "高い" -middle: "中" -low: "低い" -emailNotConfiguredWarning: "メアドの設定がされてへんで。" -ratio: "比率" -previewNoteText: "本文を下見するで" -customCss: "カスタムCSS" -customCssWarn: "この設定は必ず知識のある人がやらなあかんで。あんま良くない設定をしたるとクライアントがちゃんと使えへんくなってくで。" -global: "グローバル" -squareAvatars: "アイコンを四角形で表示するで" -sent: "送信" -received: "受信" -searchResult: "検索結果やで" -hashtags: "ハッシュタグ" -troubleshooting: "トラブルシューティング" -useBlurEffect: "UIにぼかし効果を使うで" -learnMore: "詳しく" -misskeyUpdated: "Misskeyが更新されたで!\nモデレーターの人らに感謝せなあかんで" -whatIsNew: "更新情報を見るで" -translate: "翻訳" -translatedFrom: "{x}から翻訳するで" -accountDeletionInProgress: "アカウント削除しとるで待っとってなー" -usernameInfo: "サーバー上であんたのアカウントをあんたやと分かるようにするための名前やで。アルファベット(a~z, A~Z)、数字(0~9)、それとアンダーバー(_)が使って考えてな。この名前は後から変更することはできへんからちゃんと考えるんやで。" -aiChanMode: "藍モードやで" -keepCw: "CWを維持するで" -pubSub: "Pub/Subのアカウント" -lastCommunication: "直近の通信" -resolved: "解決したで" -unresolved: "まだ解決してないで" -breakFollow: "フォロワーを解除するで" -itsOn: "オンになっとるよ" -hide: "隠す" -searchByGoogle: "探す" -indefinitely: "無期限" -file: "ファイル" -requireAdminForView: "これを見るには管理者アカウントでログインしとらなあかんで。" -isSystemAccount: "システムが自動で作成・管理しとるアカウントやで。" -typeToConfirm: "この操作をやるんなら {x} と入力してなー" -deleteAccount: "アカウント削除するで" -document: "ドキュメント" -numberOfPageCache: "ページキャッシュ数やで" -numberOfPageCacheDescription: "増やすと使いやすくなる、負荷とメモリ使用量が増えてくで。一長一短やな。" -logoutConfirm: "ログアウトしまっか?" -lastActiveDate: "最後に使った日時" -statusbar: "ステータスバー" -pleaseSelect: "選択したってやー" -reverse: "反転" -colored: "色付き" -refreshInterval: "更新間隔" -label: "ラベル" -type: "タイプ" -speed: "速度" -slow: "遅い" -fast: "速い" -sensitiveMediaDetection: "センシティブなメディアの検出" -localOnly: "ローカルのみ" -remoteOnly: "リモートのみ" -failedToUpload: "アップロードに失敗したで" -cannotUploadBecauseInappropriate: "不適切な内容を含むかもしれへんって判定されたでアップロードできまへん。" -cannotUploadBecauseNoFreeSpace: "ドライブの空き容量が無いでアップロードできまへん。" -beta: "ベータ" -enableAutoSensitive: "自動NSFW判定" -enableAutoSensitiveDescription: "使える時は、機械学習を使って自動でメディアにNSFWフラグを設定するで。この機能をオフにしても、インスタンスによっては自動で設定されることがあるで。" -activeEmailValidationDescription: "ユーザーのメールアドレスのバリデーションを、捨てアドかどうかや実際に通信可能かどうかとかを判定して積極的に行うで。オフにすると単に文字列として正しいかどうかだけチェックするで。" -navbar: "ナビゲーションバー" -shuffle: "シャッフルするで" -account: "アカウント" -move: "移動するで" -_sensitiveMediaDetection: - description: "機械学習を使って自動でセンシティブなメディアを検出して、モデレーションに役立てることができるで。サーバーの負荷が少し増えてまうなあ。" - sensitivity: "検出感度やで" - sensitivityDescription: "感度を低くすると、誤検知(偽陽性)が減るで。感度を高くすると、検知漏れ(偽陰性)が減るで。" - setSensitiveFlagAutomatically: "NSFWフラグを設定するで" - setSensitiveFlagAutomaticallyDescription: "この設定をオフにしても内部的に判定結果は保持されるで。" -_ffVisibility: - public: "公開" -_ad: - back: "戻る" -_gallery: - unlike: "良くないわ" -_email: - _follow: - title: "フォローされたで" - _receiveFollowRequest: - title: "フォローリクエストを受け取ったで" -_plugin: - install: "プラグインのインストール" - installWarn: "信頼できへんプラグインはインストールせんとってな" - manage: "プラグインの管理" -_registry: - scope: "スコープ" - key: "キー" - keys: "キー" - domain: "ドメイン" - createKey: "キーを作る" -_aboutMisskey: - about: "Misskeyはsyuiloが2014年からずっと作ってはる、オープンソースなソフトウェアや。" - contributors: "主な貢献者" - allContributors: "全ての貢献者" - source: "ソースコード" - translation: "Misskeyを翻訳" - donate: "Misskeyに寄付" - morePatrons: "他にもぎょうさんの人からサポートしてもろてんねん。ほんまおおきに🥰" - patrons: "支援者" _mfm: - cheatSheet: "MFMチートシート" mention: "メンション" - hashtag: "ハッシュタグ" - url: "URL" - link: "リンク" - bold: "太字" - center: "中央寄せ" - inlineCode: "コード(インライン)" - blockCode: "コード(ブロック)" - inlineMath: "数式(インライン)" quote: "引用" emoji: "カスタム絵文字" search: "探す" - shake: "アニメーション(ぶるぶる)" - twitch: "アニメーション(ブレ)" - spin: "アニメーション(回転)" - blur: "ぼかし" - font: "フォント" - rotate: "回転" -_instanceTicker: - none: "表示せん" - remote: "リモートユーザーに表示" - always: "常に表示" -_serverDisconnectedBehavior: - reload: "自動でリロード" - dialog: "ダイアログで警告" -_channel: - create: "チャンネルを作る" - edit: "チャンネルを編集" - setBanner: "バナーを設定" - removeBanner: "バナーを削除" - featured: "トレンド" - notesCount: "{n}こ投稿があるで" -_menuDisplay: - hide: "隠す" -_wordMute: - soft: "ソフト" - hard: "ハード" +_sidebar: + icon: "アイコン" _theme: - explore: "テーマを探す" - install: "テーマのインストール" - manage: "テーマの管理" - code: "テーマコード" - description: "説明" - installed: "{name}をインストールしたで。" - installedThemes: "インストールされとるテーマ" - builtinThemes: "標準のテーマ" - alreadyInstalled: "そのテーマはもうインストールされとるで?" - make: "テーマを作る" - base: "ベース" - addConstant: "定数を追加" - defaultValue: "デフォルト値" - color: "色" - refProp: "プロパティを参照" - refConst: "定数を参照" - key: "キー" - func: "関数" - funcKind: "関数の種類" - argument: "引数" - basedProp: "元にするプロパティの名前" - alpha: "不透明度" - darken: "暗さ" - lighten: "明るさ" keys: - accent: "アクセント" - bg: "背景" - fg: "文字" - focus: "フォーカス" - indicator: "インジケーター" - panel: "パネル" - shadow: "影" - header: "ヘッダー" - navBg: "サイドバーの背景" - navFg: "サイドバーの文字" - navHoverFg: "サイドバー文字(ホバー)" - navActive: "サイドバー文字(アクティブ)" - navIndicator: "サイドバーのインジケーター" - link: "リンク" - hashtag: "ハッシュタグ" mention: "メンション" - mentionMe: "うち宛てのメンション" renote: "Renote" - modalBg: "モーダルの背景" - divider: "分割線" - scrollbarHandle: "スクロールバーの取っ手" - scrollbarHandleHover: "スクロールバーの取っ手(ホバー)" - dateLabelFg: "日付ラベルの文字" - infoBg: "情報の背景" - infoFg: "情報の文字" - infoWarnBg: "警告の背景" - infoWarnFg: "警告の文字" - cwBg: "CW ボタンの背景" - cwFg: "CW ボタンの文字" - cwHoverBg: "CW ボタンの背景 (ホバー)" - toastBg: "通知トーストの背景" - toastFg: "通知トーストの文字" - buttonBg: "ボタンの背景" - buttonHoverBg: "ボタンの背景 (ホバー)" - inputBorder: "入力ボックスの縁取り" - listItemHoverBg: "リスト項目の背景 (ホバー)" - driveFolderBg: "ドライブフォルダーの背景" - wallpaperOverlay: "壁紙のオーバーレイ" - badge: "バッジ" - messageBg: "チャットの背景" - accentDarken: "アクセント (暗め)" - accentLighten: "アクセント (明るめ)" - fgHighlighted: "強調されとる文字" _sfx: note: "ノート" - noteMy: "ノート(自分)" notification: "通知" chat: "チャット" _ago: + unknown: "謎" future: "未来" justNow: "たった今" secondsAgo: "{n}秒前" @@ -1006,70 +447,25 @@ _time: minute: "分" hour: "時間" day: "日" -_tutorial: - step3_1: "プロフィール設定はええ感じにできたか?" _2fa: - alreadyRegistered: "もう設定終わっとるわ。" -_permissions: - "read:reactions": "リアクションを見る" - "write:votes": "投票する" - "read:pages": "ページを見る" - "read:page-likes": "ページのええやんを見る" - "write:page-likes": "ページのええやんを操作する" - "read:user-groups": "ユーザーグループを見る" - "read:channels": "チャンネルを見る" + alreadyRegistered: "もう設定終わっとるわ" _auth: permissionAsk: "このアプリは次の権限を要求しとるで" _antennaSources: - all: "みんなのノート" + all: "みなのノート" homeTimeline: "フォローしとるユーザーのノート" -_weekday: - sunday: "日曜日" - monday: "月曜日" - tuesday: "火曜日" - wednesday: "水曜日" - thursday: "木曜日" - friday: "金曜日" - saturday: "土曜日" _widgets: - memo: "付箋" notifications: "通知" timeline: "タイムライン" - calendar: "カレンダー" - trends: "トレンド" - clock: "時計" - rss: "RSSリーダー" activity: "アクティビティ" - photos: "フォト" - digitalClock: "デジタル時計" federation: "連合" - postForm: "投稿フォーム" - slideshow: "スライドショー" - button: "ボタン" - onlineUsers: "オンラインユーザー" - jobQueue: "ジョブキュー" - serverMetric: "サーバーメトリクス" - aiscript: "AiScriptコンソール" _cw: - hide: "隠す" - show: "続き見して!" - chars: "{count}文字" - files: "{count}ファイル" + show: "もっとあるやろ!" _poll: - choiceN: "選択肢{n}" noMore: "これ以上追加でけへん" - canMultipleVote: "複数回答可" - expiration: "期限" - infinite: "無期限" - at: "日時指定" - after: "経過指定" - deadlineDate: "期日" deadlineTime: "時間" - duration: "期間" - votesCount: "{n}票" - vote: "投票する" _visibility: - publicDescription: "みんなに公開" + publicDescription: "みなのユーザーに公開" home: "ホーム" followers: "フォロワー" _profile: @@ -1081,339 +477,46 @@ _exportOrImport: muteList: "ミュート" blockingList: "ブロック" userLists: "リスト" -_charts: - federation: "連合" - apRequest: "リクエスト" - usersTotal: "ユーザーの合計" - activeUsers: "アクティブユーザー数" - notesIncDec: "ノートの増減" - localNotesIncDec: "ローカルのノートの増減" - remoteNotesIncDec: "リモートのノートの増減" - notesTotal: "ノートの合計" - filesIncDec: "ファイルの増減" - filesTotal: "ファイルの合計" - storageUsageIncDec: "ストレージ使用量の増減" - storageUsageTotal: "ストレージ使用量の合計" -_instanceCharts: - requests: "リクエスト" - users: "ユーザーの増減" - usersTotal: "ユーザーの累積" - notes: "ノートの増減" - notesTotal: "ノートの累積" - ff: "フォロー/フォロワーの増減" - ffTotal: "フォロー/フォロワーの累積" - cacheSize: "キャッシュサイズの増減" - cacheSizeTotal: "キャッシュサイズの累積" - files: "ファイル数の増減" - filesTotal: "ファイル数の累積" _timelines: home: "ホーム" - local: "ローカル" - social: "ソーシャル" - global: "グローバル" +_rooms: + _roomType: + default: "デフォルト" + _furnitures: + monitor: "モニター" _pages: - newPage: "ページを作る" - editPage: "ページの編集" - readPage: "ソースを表示中" - created: "ページを作成したで" - updated: "ページを更新したで" - deleted: "ページを削除したで" - pageSetting: "ページ設定" - viewPage: "ページを見る" - like: "ええやん" - unlike: "良くないわ" - liked: "ええと思ったページ" - contents: "コンテンツ" - summary: "ページの要約" - alignCenter: "中央寄せ" - font: "フォント" - fontSerif: "セリフ" - fontSansSerif: "サンセリフ" - eyeCatchingImageSet: "アイキャッチ画像を設定" - eyeCatchingImageRemove: "アイキャッチ画像を削除" - chooseBlock: "ブロックを追加" - selectType: "種類を選択" - contentBlocks: "コンテンツ" - inputBlocks: "入力" - specialBlocks: "特殊" blocks: - text: "テキスト" - textarea: "テキストエリア" - section: "セクション" image: "画像" - button: "ボタン" - if: "もし" - _if: - variable: "変数" - post: "投稿フォーム" - _post: - text: "内容" - canvasId: "キャンバスID" - textInput: "テキスト入力" - _textInput: - name: "変数名" - text: "タイトル" - default: "デフォルト値" - textareaInput: "複数行テキスト入力" - _textareaInput: - name: "変数名" - text: "タイトル" - default: "デフォルト値" - numberInput: "数値入力" - _numberInput: - name: "変数名" - text: "タイトル" - default: "デフォルト値" - canvas: "キャンバス" - _canvas: - id: "キャンバスID" - width: "幅" - height: "高さ" - note: "ノート埋め込み" - _note: - id: "ノートID" - detailed: "詳細な表示" - switch: "スイッチ" - _switch: - name: "変数名" - text: "タイトル" - default: "デフォルト値" - counter: "カウンター" - _counter: - name: "変数名" - text: "タイトル" - inc: "増加値" - _button: - text: "タイトル" - colored: "色付き" - action: "ボタンを押したときの動作" - _action: - dialog: "ダイアログを表示する" - _dialog: - content: "内容" - resetRandom: "乱数をリセット" - pushEvent: "イベントを送信させる" - _pushEvent: - event: "イベント名" - no-variable: "なし" - callAiScript: "AiScript呼び出し" - _callAiScript: - functionName: "関数名" - radioButton: "選択肢" - _radioButton: - name: "変数名" - title: "タイトル" - values: "改行で区切った選択肢" - default: "デフォルト値" script: categories: - flow: "制御" - logical: "論理演算" - operation: "計算" - comparison: "比較" - random: "ランダム" - value: "値" - fn: "関数" - text: "関数" - convert: "変換" list: "リスト" blocks: - text: "テキスト" - multiLineText: "テキスト(複数行)" - textList: "テキストのリスト" - strLen: "テキストの長さ" - _strLen: - arg1: "テキスト" - strPick: "文字取り出し" - _strPick: - arg1: "テキスト" - arg2: "文字の位置" - strReplace: "テキスト置き換え" - _strReplace: - arg1: "テキスト" - arg2: "置き換え前" - arg3: "置き換え後" - strReverse: "テキストを反転" - _strReverse: - arg1: "テキスト" - join: "テキストを連結" _join: arg1: "リスト" - arg2: "区切り" - add: "足す" - _add: - arg1: "A" - arg2: "B" - subtract: "引く" - _subtract: - arg1: "A" - arg2: "A" - multiply: "掛ける" - _multiply: - arg1: "A" - arg2: "B" - divide: "割る" - _divide: - arg1: "A" - arg2: "B" - mod: "割った余り" - _mod: - arg1: "A" - arg2: "B" - round: "小数を丸める" - _round: - arg1: "数値" - eq: "AとBが同じ" - _eq: - arg1: "A" - arg2: "B" - notEq: "AとBが異なる" - _notEq: - arg1: "A" - arg2: "B" - and: "AかつB" - _and: - arg1: "A" - arg2: "B" - or: "AまたはB" - _or: - arg1: "A" - arg2: "B" - lt: "< AがBより小さい" - _lt: - arg1: "A" - arg2: "B" - gt: "> AがBより大きい" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= AがBと同じか小さい" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= AがBと同じか大きい" - _gtEq: - arg1: "A" - arg2: "B" - if: "分岐" - _if: - arg1: "もし" - arg2: "なら" - arg3: "そうでなければ" - not: "否定" - _not: - arg1: "否定" - random: "ランダム" - _random: - arg1: "確率" - rannum: "乱数" - _rannum: - arg1: "最小" - arg2: "最大" - randomPick: "リストからランダムに選ぶ" _randomPick: arg1: "リスト" - dailyRandom: "ランダム (ユーザーごとに日替わり)" - _dailyRandom: - arg1: "確率" - dailyRannum: "乱数 (ユーザーごとに日替わり)" - _dailyRannum: - arg1: "最小" - arg2: "最大" - dailyRandomPick: "リストからランダムに選ぶ (ユーザーごとに日替わり)" _dailyRandomPick: arg1: "リスト" - seedRandom: "ランダム (シード)" - _seedRandom: - arg1: "シード" - arg2: "確率" - seedRannum: "乱数 (シード)" - _seedRannum: - arg1: "シード" - arg2: "最小" - arg3: "最大" - seedRandomPick: "リストからランダムに選択 (シード)" _seedRandomPick: - arg1: "シード" arg2: "リスト" - DRPWPM: "確率付きリストからランダムに選ぶ (ユーザーごとに日替わり)" - _DRPWPM: - arg1: "テキストのリスト" - pick: "リストから選ぶ" _pick: arg1: "リスト" - arg2: "位置" - listLen: "リストの長さを取得" _listLen: arg1: "リスト" - number: "数値" - stringToNumber: "テキストを数値に" - _stringToNumber: - arg1: "テキスト" - numberToString: "数値をテキストに" - _numberToString: - arg1: "数値" - splitStrByLine: "テキストを行で分割" - _splitStrByLine: - arg1: "テキスト" - ref: "変数" - aiScriptVar: "AiScript変数" - fn: "関数" - _fn: - slots: "スロット" - arg1: "出力" - for: "繰り返し" - _for: - arg1: "回数" - arg2: "処理" - thereIsEmptySlot: "スロット{slot}が空っぽやで!" types: - string: "テキスト" - number: "数値" - boolean: "フラグ" array: "リスト" - stringArray: "テキストのリスト" - emptySlot: "空のスロット" - enviromentVariables: "環境変数" - pageVariables: "ページ要素" - argVariables: "入力スロット" _notification: - fileUploaded: "ファイルが無事アップロードされたで。" - youGotMention: "{name}からのメンション" - youGotReply: "{name}からのリプライ" youWereFollowed: "フォローされたで" - youReceivedFollowRequest: "フォロー許可してほしいみたいやな" - yourFollowRequestAccepted: "フォローさせてもろたで" - youWereInvitedToGroup: "グループに招待されとるで" _types: - all: "すべて" follow: "フォロー" mention: "メンション" renote: "Renote" quote: "引用" reaction: "リアクション" - receiveFollowRequest: "フォロー許可してほしいみたいやで" - followRequestAccepted: "フォローが受理されたで" - _actions: - reply: "返事" - renote: "Renote" _deck: - alwaysShowMainColumn: "いつもメインカラムを表示" - columnAlign: "カラムの寄せ" - addColumn: "カラムを追加" - swapLeft: "左に移動" - swapRight: "右に移動" - swapUp: "上に移動" - swapDown: "下に移動" - stackLeft: "左に重ねる" - popRight: "右に出す" - profile: "プロファイル" _columns: - main: "メイン" - widgets: "ウィジェット" notifications: "通知" tl: "タイムライン" antenna: "アンテナ" list: "リスト" mentions: "あんた宛て" - direct: "ダイレクト" diff --git a/locales/jbo-EN.yml b/locales/jbo-EN.yml deleted file mode 100644 index ed97d539c..000000000 --- a/locales/jbo-EN.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/locales/kab-KAB.yml b/locales/kab-KAB.yml index 29eca64c7..4ca30b0f0 100644 --- a/locales/kab-KAB.yml +++ b/locales/kab-KAB.yml @@ -7,15 +7,12 @@ username: "Isem n umseqdac" password: "Awal uffir" ok: "IH" settings: "Iɣewwaṛen" -otherSettings: "Iɣewwaren nniḍen" profile: "Amaɣnu" -signup: "Jerred" save: "Sekles" delete: "Kkes" addToList: "Rnu ɣer tebdart" reply: "Err" loadMore: "Wali ugar" -showMore: "Wali ugar" youGotNewFollower: "Yeṭṭafaṛ-ik·em-id" mention: "Bder" import: "Kter" @@ -29,49 +26,23 @@ followers: "Imeḍfaṛen" followsYou: "Yeṭṭafaṛ-ik·em-id" createList: "Snulfu-d tabdart" enterListName: "Isem n tebdart" -privacy: "Tabaḍnit" follow: "Ḍfeṛ" you: "Kečči·mmi" selectList: "Fren tabdart" youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart" -security: "Taɣellist" remove: "Kkes" -connectService: "Qqen" userList: "Tibdarin" -securityKey: "Tasarutt n tɣellist" -securityKeyName: "Isem n tsarutt" -signinRequired: "Ttxil jerred" -signinWith: "Tuqqna s {x}" -tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist" uiLanguage: "Tutlayt n wegrudem" -accountSettings: "Iɣewwaṛen n umiḍan" -plugins: "Izegrar" -email: "Imayl" -emailAddress: "Tansa imayl" smtpUser: "Isem n umseqdac" smtpPass: "Awal uffir" -other: "Wiyyaḍ" -accountInfo: "Talɣut n umiḍan" -emailNotification: "Ilɣa imayl" -selectAccount: "Fren amiḍan" -accounts: "Imiḍan" -searchByGoogle: "Nadi" -file: "Ifuyla" -account: "Imiḍan" -_email: - _follow: - title: "Yeṭṭafaṛ-ik·em-id" _mfm: mention: "Bder" search: "Nadi" - font: "Tasefsit" _theme: keys: mention: "Bder" _sfx: notification: "Ilɣuyen" -_permissions: - "write:account": "Ẓreg talɣut n umiḍan-ik·im" _widgets: notifications: "Ilɣuyen" _cw: @@ -118,8 +89,6 @@ _notification: _types: follow: "Ig ṭṭafaṛ" mention: "Bder" - _actions: - reply: "Err" _deck: _columns: notifications: "Ilɣuyen" diff --git a/locales/kn-IN.yml b/locales/kn-IN.yml index a38d9267b..371dc4dea 100644 --- a/locales/kn-IN.yml +++ b/locales/kn-IN.yml @@ -40,7 +40,6 @@ sendMessage: "ಸಂದೇಶ ಕಳುಹಿಸು" copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು" reply: "ಉತ್ತರಿಸು" loadMore: "ಇನ್ನಷ್ಟು ನೋಡು" -showMore: "ಇನ್ನಷ್ಟು ನೋಡು" youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು" receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ" followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು" @@ -53,17 +52,10 @@ files: "ಕಡತಗಳು" download: "ಜಾಲದಿಂದಿಳಿಸು" driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ." unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?" -pinned: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು" instances: "ನಿದರ್ಶನ" remove: "ಅಳಿಸು" smtpUser: "ಬಳಕೆಹೆಸರು" smtpPass: "ಗುಪ್ತಪದ" -user: "ಬಳಕೆದಾರ" -searchByGoogle: "ಹುಡುಕು" -file: "ಕಡತಗಳು" -_email: - _follow: - title: "ಹಿಂಬಾಲಿಸಿದರು" _mfm: search: "ಹುಡುಕು" _sfx: @@ -77,8 +69,6 @@ _profile: username: "ಬಳಕೆಹೆಸರು" _notification: youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು" - _actions: - reply: "ಉತ್ತರಿಸು" _deck: _columns: notifications: "ಅಧಿಸೂಚನೆಗಳು" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index d77f7e920..c91b7da3b 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -1,13 +1,11 @@ --- _lang_: "한국어" -headlineMisskey: "노트로 연결되는 네트워크" introMisskey: "환영합니다! Misskey 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고 있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n새로운 세계를 탐험해 보세요🚀" monthAndDay: "{month}월 {day}일" search: "검색" notifications: "알림" username: "유저명" password: "비밀번호" -forgotPassword: "비밀번호 재설정" fetchingAsApObject: "연합에서 조회 중" ok: "OK" gotIt: "알겠어요" @@ -18,9 +16,6 @@ noNotes: "노트가 없습니다" noNotifications: "표시할 알림이 없습니다" instance: "인스턴스" settings: "설정" -basicSettings: "기본 설정" -otherSettings: "기타 설정" -openInWindow: "창으로 열기" profile: "프로필" timeline: "타임라인" noAccountDescription: "자기소개가 없습니다" @@ -35,9 +30,6 @@ addUser: "유저 추가" favorite: "즐겨찾기" favorites: "즐겨찾기" unfavorite: "즐겨찾기에서 제거" -favorited: "즐겨찾기에 등록했습니다" -alreadyFavorited: "이미 즐겨찾기에 등록되어 있습니다" -cantFavorite: "즐겨찾기에 등록하지 못했습니다" pin: "프로필에 고정" unpin: "프로필에서 고정 해제" copyContent: "내용 복사" @@ -48,11 +40,8 @@ deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니 addToList: "리스트에 추가" sendMessage: "메시지 보내기" copyUsername: "유저명 복사" -searchUser: "사용자 검색" reply: "답글" loadMore: "더 보기" -showMore: "더 보기" -showLess: "닫기" youGotNewFollower: "새로운 팔로워가 있습니다" receiveFollowRequest: "새로운 팔로우 요청이 있습니다" followRequestAccepted: "팔로우가 수락되었습니다" @@ -77,13 +66,7 @@ followers: "팔로워" followsYou: "당신을 팔로우합니다" createList: "리스트 만들기" manageLists: "리스트 관리" -error: "오류" -somethingHappened: "오류가 발생했습니다" retry: "다시 시도" -pageLoadError: "페이지를 불러오지 못했습니다." -pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요." -serverIsDead: "서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요." -youShouldUpgradeClient: "이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오." enterListName: "리스트 이름을 입력" privacy: "프라이버시" makeFollowManuallyApprove: "팔로우를 수동으로 승인" @@ -96,19 +79,14 @@ followRequestPending: "팔로우 허가 대기중" enterEmoji: "이모지 입력" renote: "Renote" unrenote: "Renote 취소" -renoted: "Renote 하였습니다" -cantRenote: "이 게시물은 Renote할 수 없습니다." -cantReRenote: "Renote를 Renote할 수 없습니다." quote: "인용" pinnedNote: "고정해놓은 노트" -pinned: "프로필에 고정" you: "당신" clickToShow: "클릭하여 보기" sensitive: "열람주의" add: "추가" reaction: "리액션" -reactionSetting: "선택기에 표시할 리액션" -reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다." +reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다." rememberNoteVisibility: "공개 범위를 기억하기" attachCancel: "첨부 취소" markAsSensitive: "열람주의로 설정" @@ -127,11 +105,8 @@ unsuspendConfirm: "이 계정의 정지를 해제하시겠습니까?" selectList: "리스트 선택" selectAntenna: "안테나 선택" selectWidget: "위젯 선택" -editWidgets: "위젯 편집" -editWidgetsExit: "편집 종료" customEmojis: "커스텀 이모지" emoji: "이모지" -emojis: "이모지" emojiName: "이모지 이름" emojiUrl: "이모지 URL" addEmoji: "이모지 추가" @@ -139,13 +114,9 @@ settingGuide: "추천 설정" cacheRemoteFiles: "리모트 파일을 캐시" cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다." flagAsBot: "나는 봇입니다" -flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다." flagAsCat: "나는 고양이다냥" -flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요." -flagShowTimelineReplies: "타임라인에 노트의 답글을 표시하기" -flagShowTimelineRepliesDescription: "이 설정을 활성화하면 타임라인에 다른 유저 간의 답글을 표시합니다." autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락" -addAccount: "계정 추가" +addAcount: "계정 추가" loginFailed: "로그인에 실패했습니다" showOnRemote: "리모트에서 보기" general: "일반" @@ -204,7 +175,6 @@ done: "완료" processing: "처리중" preview: "미리보기" default: "기본값" -defaultValueIs: "기본값: {value}" noCustomEmojis: "이모지가 없습니다" noJobs: "작업이 없습니다" federating: "연합 중" @@ -235,12 +205,9 @@ remove: "삭제" removed: "삭제하였습니다" removeAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?" deleteAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?" -resetAreYouSure: "초기화 하시겠습니까?" saved: "저장하였습니다" messaging: "대화" upload: "업로드" -keepOriginalUploading: "원본 이미지를 유지" -keepOriginalUploadingDescription: "이미지를 업로드할 때에 원본을 그대로 유지합니다. 비활성화하면 업로드할 때 브라우저에서 웹 공개용 이미지를 생성합니다." fromDrive: "드라이브에서" fromUrl: "URL로부터" uploadFromUrl: "URL 업로드" @@ -248,6 +215,7 @@ uploadFromUrlDescription: "업로드하려는 파일의 URL" uploadFromUrlRequested: "업로드를 요청했습니다" uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다." explore: "발견하기" +games: "Misskey Games" messageRead: "읽음" noMoreHistory: "이것보다 과거의 기록이 없습니다" startMessaging: "대화 시작하기" @@ -287,7 +255,6 @@ emptyDrive: "드라이브가 비어 있습니다" emptyFolder: "폴더가 비어 있습니다" unableToDelete: "삭제할 수 없습니다" inputNewFileName: "바꿀 파일명을 입력해 주세요" -inputNewDescription: "새 캡션을 입력해 주세요" inputNewFolderName: "바꿀 폴더명을 입력해 주세요" circularReferenceFolder: "지정한 폴더가 이동할 폴더의 하위 폴더입니다." hasChildFilesOrFolders: "이 폴더는 비어있지 않기 때문에 삭제할 수 없습니다." @@ -296,7 +263,6 @@ rename: "이름 변경" avatar: "아바타" banner: "배너" nsfw: "열람주의" -whenServerDisconnected: "서버와의 접속이 끊겼을 때" disconnectedFromServer: "서버와의 연결이 끊어졌습니다" reload: "새로고침" doNothing: "무시하기" @@ -319,27 +285,24 @@ monthX: "{month}월" yearX: "{year}년" pages: "페이지" integration: "연동" -connectService: "계정 연동" -disconnectService: "계정 연동 해제" +connectSerice: "접속" +disconnectSerice: "연결 끊기" enableLocalTimeline: "로컬 타임라인 활성화" enableGlobalTimeline: "글로벌 타임라인 활성화" disablingTimelinesInfo: "특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다." registration: "등록" enableRegistration: "신규 회원가입을 활성화" invite: "초대" +proxyRemoteFiles: "리모트 파일 프록시" +proxyRemoteFilesDescription: "이 설정을 활성화할 경우, 저장되지 않았거나 저장용량 초과로 삭제된 리모트 파일을 로컬에서 프록시하여 썸네일을 생성하게 됩니다. 서버의 스토리지에는 영향을 주지 않습니다." driveCapacityPerLocalAccount: "로컬 유저 한 명당 드라이브 용량" driveCapacityPerRemoteAccount: "리모트 유저 한 명당 드라이브 용량" inMb: "메가바이트 단위" iconUrl: "아이콘 URL" bannerUrl: "배너 이미지 URL" -backgroundImageUrl: "배경 이미지 URL" basicInfo: "기본 정보" pinnedUsers: "고정된 유저" pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다." -pinnedPages: "고정한 페이지" -pinnedPagesDescription: "인스턴스의 대문에 고정하고 싶은 페이지의 경로를 한 줄에 하나씩 적습니다." -pinnedClipId: "고정할 클립의 ID" -pinnedNotes: "고정해놓은 노트" hcaptcha: "hCaptcha" enableHcaptcha: "hCaptcha 활성화" hcaptchaSiteKey: "사이트 키" @@ -358,6 +321,7 @@ antennaExcludeKeywords: "제외할 키워드" antennaKeywordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다" notifyAntenna: "새로운 노트를 알림" withFileAntenna: "파일이 첨부된 노트만" +serviceworker: "ServiceWorker" enableServiceworker: "ServiceWorker 사용" antennaUsersDescription: "유저명을 한 줄에 한 명씩 적습니다" caseSensitive: "대소문자를 구분" @@ -379,11 +343,17 @@ popularTags: "인기 태그" userList: "리스트" about: "정보" aboutMisskey: "Misskey에 대하여" +aboutMisskeyText: "Misskey는 syuilo에 의해서 2014년부터 개발되어 온 오픈소스 소프트웨어 입니다." +misskeyMembers: "현재는 아래 멤버들에 의해 개발 및 유지보수 되고 있습니다:" +misskeySource: "소스코드는 여기에 공개되어 있습니다:" +misskeyTranslation: "Misskey의 번역을 함께해 주시길 부탁드립니다:" +misskeyDonate: "Misskey에 기부하심으로써 개발에 도움을 주실 수 있습니다:" +morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰" +patrons: "후원자들" administrator: "관리자" token: "토큰" twoStepAuthentication: "2단계 인증" moderator: "모더레이터" -moderation: "모더레이션" nUsersMentioned: "{n}명이 언급함" securityKey: "보안 키" securityKeyName: "키 이름" @@ -423,6 +393,7 @@ next: "다음" retype: "다시 입력" noteOf: "{user}의 노트" inviteToGroup: "그룹에 초대하기" +maxNoteTextLength: "노트의 문자 수 제한" quoteAttached: "인용함" quoteQuestion: "인용해서 작성하시겠습니까?" noMessagesYet: "아직 대화가 없습니다" @@ -446,23 +417,20 @@ signinWith: "{x}로 로그인" signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오." tapSecurityKey: "보안 키를 터치" or: "혹은" -language: "언어" uiLanguage: "UI 표시 언어" groupInvited: "그룹에 초대되었습니다" aboutX: "{x}에 대하여" useOsNativeEmojis: "OS 기본 이모지를 사용" -disableDrawer: "드로어 메뉴를 사용하지 않기" youHaveNoGroups: "그룹이 없습니다" joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요." noHistory: "기록이 없습니다" -signinHistory: "로그인 기록" disableAnimatedMfm: "움직임이 있는 MFM을 비활성화" doing: "잠시만요" category: "카테고리" tags: "태그" docSource: "이 문서의 소스" createAccount: "계정 만들기" -existingAccount: "기존 계정" +existingAcount: "기존 계정" regenerate: "재생성" fontSize: "글자 크기" noFollowRequests: "처리되지 않은 팔로우 요청이 없습니다" @@ -473,8 +441,6 @@ remote: "리모트" total: "합계" weekOverWeekChanges: "지난주보다" dayOverDayChanges: "어제보다" -appearance: "모양" -clientSettings: "클라이언트 설정" accountSettings: "계정 설정" promotion: "프로모션" promote: "프로모션하기" @@ -497,7 +463,6 @@ objectStorageUseSSL: "SSL 사용" objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요" objectStorageUseProxy: "연결에 프록시를 사용" objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출시 프록시를 사용하지 않는 경우 OFF 로 설정해 주세요" -objectStorageSetPublicRead: "업로드할 때 'public-read'를 설정하기" serverLogs: "서버 로그" deleteAll: "모두 삭제" showFixedPostForm: "타임라인 상단에 글 작성란을 표시" @@ -505,10 +470,7 @@ newNoteRecived: "새 노트가 있습니다" sounds: "소리" listen: "듣기" none: "없음" -showInPage: "페이지로 보기" -popout: "새 창으로 열기" volume: "음량" -masterVolume: "마스터 볼륨" details: "자세히" chooseEmoji: "이모지 선택" unableToProcess: "작업을 완료할 수 없습니다" @@ -535,11 +497,10 @@ removeAllFollowing: "모든 팔로잉 해제" removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요." userSuspended: "이 계정은 정지된 상태입니다." userSilenced: "이 계정은 사일런스된 상태입니다." -yourAccountSuspendedTitle: "계정이 정지되었습니다" -yourAccountSuspendedDescription: "이 계정은 서버의 이용 약관을 위반하거나, 기타 다른 이유로 인해 정지되었습니다. 자세한 사항은 관리자에게 문의해 주십시오. 계정을 새로 생성하지 마십시오." -menu: "메뉴" +sidebar: "사이드바" divider: "구분선" addItem: "항목 추가" +rooms: "방" relays: "릴레이" addRelay: "릴레이 추가" inboxUrl: "Inbox 주소" @@ -556,36 +517,25 @@ disablePlayer: "플레이어 닫기" expandTweet: "트윗 확장하기" themeEditor: "테마 에디터" description: "설명" -describeFile: "캡션 추가" -enterFileDescription: "캡션 입력" author: "작성자" leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?" manage: "관리" plugins: "플러그인" -preferencesBackups: "환경설정 백업" +pluginInstallWarn: "신뢰할 수 없는 플러그인은 설치하지 마십시오." deck: "덱" undeck: "덱 해제" -useBlurEffectForModal: "모달에 흐림 효과 사용" -useFullReactionPicker: "모든 기능이 포함된 리액션 선택기 사용" width: "폭" height: "높이" -large: "크게" -medium: "보통" -small: "작게" generateAccessToken: "액세스 토큰 생성" permission: "권한" enableAll: "전체 선택" disableAll: "전체 해제" tokenRequested: "계정 접근 허용" -pluginTokenRequestedDescription: "이 플러그인은 여기서 설정한 권한을 사용할 수 있게 됩니다." -notificationType: "알림 유형" edit: "편집" useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용" -emailServer: "메일 서버" -enableEmail: "이메일 송신 기능 활성화" +emailConfig: "메일 서버 설정" emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다." -email: "이메일" -emailAddress: "메일 주소" +email: "메일 주소" smtpConfig: "SMTP 서버 설정" smtpHost: "호스트" smtpPort: "포트" @@ -594,503 +544,44 @@ smtpPass: "비밀번호" emptyToDisableSmtpAuth: "SMTP 인증을 사용하지 않으려면 공란으로 비워둡니다." smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용" smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다." -testEmail: "이메일 전송 테스트" wordMute: "단어 뮤트" -regexpError: "정규 표현식 오류" -regexpErrorDescription: "{tab}단어 뮤트 {line}행의 정규 표현식에 오류가 발생했습니다:" -instanceMute: "인스턴스 뮤트" -userSaysSomething: "{name}님이 무언가를 말했습니다" makeActive: "활성화" -display: "표시" copy: "복사" -metrics: "통계" -overview: "요약" logs: "로그" -delayed: "지연" database: "데이터베이스" channel: "채널" -create: "생성" -notificationSetting: "알림 설정" -notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요." -useGlobalSetting: "글로벌 설정을 사용하기" -useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용됩니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다." -other: "기타" -regenerateLoginToken: "로그인 토큰을 재생성" -regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다." -setMultipleBySeparatingWithSpace: "공백으로 구분하여 여러 개 설정할 수 있습니다." -fileIdOrUrl: "파일 ID 또는 URL" -behavior: "동작" -sample: "예시" -abuseReports: "신고" -reportAbuse: "신고" -reportAbuseOf: "{name}을 신고하기" -fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요." -abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다." -reporter: "신고자" -reporteeOrigin: "피신고자" -reporterOrigin: "신고자" -forwardReport: "리모트 인스턴스에도 신고 내용 보내기" -forwardReportIsAnonymous: "리모트 인스턴스에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다." -send: "전송" -abuseMarkAsResolved: "해결됨으로 표시" -openInNewTab: "새 탭에서 열기" -openInSideView: "사이드뷰로 열기" -defaultNavigationBehaviour: "기본 탐색 동작" -editTheseSettingsMayBreakAccount: "이 설정을 변경하면 계정이 손상될 수 있습니다." -instanceTicker: "노트의 인스턴스 정보" -waitingFor: "{x}을(를) 기다리고 있습니다" random: "랜덤" -system: "시스템" -switchUi: "UI 전환" -desktop: "데스크탑" -clip: "클립" -createNew: "새로 만들기" -optional: "옵션" -createNewClip: "새 클립 만들기" -unclip: "클립 해제" -confirmToUnclipAlreadyClippedNote: "이 노트는 이미 \"{name}\" 클립에 포함되어 있습니다. 클립을 해제하시겠습니까?" public: "공개" -i18nInfo: "Misskey는 자원봉사자들에 의해 다양한 언어로 번역되고 있습니다. {link}에서 번역에 참가할 수 있습니다." -manageAccessTokens: "액세스 토큰 관리" -accountInfo: "계정 정보" -notesCount: "노트 수" -repliesCount: "답글 수" -renotesCount: "Renote 수" -repliedCount: "받은 답글 수" -renotedCount: "받은 Renote 수" -followingCount: "팔로우 수" -followersCount: "팔로워 수" -sentReactionsCount: "보낸 리액션 수" -receivedReactionsCount: "받은 리액션 수" -pollVotesCount: "투표한 횟수" -pollVotedCount: "투표받은 횟수" -yes: "예" -no: "아니오" -driveFilesCount: "드라이브 파일 개수" -driveUsage: "드라이브 사용량" -noCrawle: "검색엔진의 인덱싱 거부" -noCrawleDescription: "검색엔진에 사용자 페이지, 노트, 페이지 등의 콘텐츠를 인덱싱되지 않게 합니다." -lockedAccountInfo: "팔로우를 승인으로 승인받더라도 노트의 공개 범위를 '팔로워'로 하지 않는 한 누구나 당신의 노트를 볼 수 있습니다." -alwaysMarkSensitive: "미디어를 항상 열람 주의로 설정" -loadRawImages: "첨부한 이미지의 썸네일을 원본화질로 표시" -disableShowingAnimatedImages: "움직이는 이미지를 자동으로 재생하지 않음" -verificationEmailSent: "확인 메일을 발송하였습니다. 설정을 완료하려면 메일에 첨부된 링크를 확인해 주세요." -notSet: "설정되지 않음" -emailVerified: "메일 주소가 확인되었습니다." -noteFavoritesCount: "즐겨찾기한 노트 수" -pageLikesCount: "좋아요 한 Page 수" -pageLikedCount: "Page에 받은 좋아요 수" -contact: "연락처" -useSystemFont: "시스템 기본 글꼴을 사용" -clips: "클립" -experimentalFeatures: "실험실" -developer: "개발자" -makeExplorable: "\"발견하기\"에 내 계정 보이기" -makeExplorableDescription: "비활성화하면 \"발견하기\"에 나의 계정을 표시하지 않습니다." -showGapBetweenNotesInTimeline: "타임라인의 노트 사이를 띄워서 표시" -duplicate: "복제" -left: "왼쪽" -center: "가운데" -wide: "넓게" -narrow: "좁게" -reloadToApplySetting: "이 설정을 적용하려면 페이지를 새로고침해야 합니다. 바로 새로고침하시겠습니까?" -needReloadToApply: "변경 사항은 새로고침하면 적용됩니다." -showTitlebar: "타이틀 바를 표시하기" -clearCache: "캐시 비우기" -onlineUsersCount: "{n}명이 접속 중" -nUsers: "{n} 유저" -nNotes: "{n} 노트" -sendErrorReports: "오류 보고서 보내기" -sendErrorReportsDescription: "이 설정을 활성화하면, 문제가 발생했을 때 오류에 대한 상세 정보를 Misskey에 보내어 더 나은 소프트웨어를 만드는 데에 도움을 줄 수 있습니다." -myTheme: "내 테마" -backgroundColor: "배경 색" -accentColor: "강조 색상" -textColor: "문자 색" -saveAs: "다른 이름으로 저장" -advanced: "고급" -value: "값" -createdAt: "생성된 날짜" -updatedAt: "수정한 날짜" -saveConfirm: "저장하시겠습니까?" -deleteConfirm: "삭제하시겠습니까?" -invalidValue: "올바른 값이 아닙니다." -registry: "레지스트리" -closeAccount: "계정 폐쇄" -currentVersion: "현재 버전" -latestVersion: "최신 버전" -youAreRunningUpToDateClient: "사용 중인 클라이언트는 최신입니다." -newVersionOfClientAvailable: "새로운 버전의 클라이언트를 이용할 수 있습니다." -usageAmount: "사용량" -capacity: "용량" -inUse: "사용중" -editCode: "코드 수정" -apply: "적용" -receiveAnnouncementFromInstance: "이 인스턴스의 알림을 이메일로 수신할게요" -emailNotification: "메일 알림" -publish: "게시" -inChannelSearch: "채널에서 검색" -useReactionPickerForContextMenu: "우클릭하여 리액션 선택기 열기" -typingUsers: "{users} 님이 입력하고 있어요.." -jumpToSpecifiedDate: "특정 날짜로 이동" -showingPastTimeline: "과거의 타임라인을 표시하고 있어요" -clear: "지우기" -markAllAsRead: "모두 읽은 상태로 표시" -goBack: "뒤로" -unlikeConfirm: "좋아요를 취소할까요?" -fullView: "전체 화면" -quitFullView: "전체 화면 해제" -addDescription: "설명 추가" -userPagePinTip: "각 노트의 메뉴에서 「프로필에 고정」을 선택하는 것으로, 여기에 노트를 표시해 둘 수 있어요." -notSpecifiedMentionWarning: "수신자가 선택되지 않은 멘션이 있어요" -info: "정보" -userInfo: "유저 정보" -unknown: "알 수 없음" -onlineStatus: "온라인 상태" -hideOnlineStatus: "온라인 상태 숨기기" -hideOnlineStatusDescription: "온라인 상태를 숨기면, 검색과 같은 일부 기능에 영향을 미칠 수 있습니다." -online: "온라인" -active: "최근에 활동함" -offline: "오프라인" -notRecommended: "추천하지 않음" -botProtection: "Bot 방어" -instanceBlocking: "인스턴스 차단" -selectAccount: "계정 선택" -switchAccount: "계정 바꾸기" -enabled: "활성화" -disabled: "비활성화" -quickAction: "빠른 동작" -user: "유저" -administration: "관리" -accounts: "계정" -switch: "전환" -noMaintainerInformationWarning: "관리자 정보가 설정되어 있지 않습니다." -noBotProtectionWarning: "Bot 방어가 설정되어 있지 않습니다." -configure: "설정하기" -postToGallery: "갤러리에 업로드" -gallery: "갤러리" -recentPosts: "최근 포스트" -popularPosts: "인기 포스트" -shareWithNote: "노트로 공유" -ads: "광고" -expiration: "기한" -memo: "메모" -priority: "우선순위" -high: "높음" -middle: "보통" -low: "낮음" -emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다." -ratio: "비율" -previewNoteText: "본문 미리보기" -customCss: "CSS 사용자화" -customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다." -global: "글로벌" -squareAvatars: "프로필 아이콘을 사각형으로 표시" -sent: "전송" -received: "수신" -searchResult: "검색 결과" -hashtags: "해시태그" -troubleshooting: "문제 해결" -useBlurEffect: "UI에 흐림 효과 사용" -learnMore: "자세히" -misskeyUpdated: "Misskey가 업데이트 되었습니다!" -whatIsNew: "패치 정보 보기" -translate: "번역" -translatedFrom: "{x}에서 번역" -accountDeletionInProgress: "계정 삭제 작업을 진행하고 있습니다" -usernameInfo: "서버상에서 계정을 식별하기 위한 이름. 알파벳(a~z, A~Z), 숫자(0~9) 및 언더바(_)를 사용할 수 있습니다. 사용자명은 나중에 변경할 수 없습니다." -aiChanMode: "아이 모드" -keepCw: "CW 유지하기" -pubSub: "Pub/Sub 계정" -lastCommunication: "마지막 통신" -resolved: "해결됨" -unresolved: "해결되지 않음" -breakFollow: "팔로워 해제" -itsOn: "켜짐" -itsOff: "꺼짐" -emailRequiredForSignup: "가입할 때 이메일 주소 입력을 필수로 하기" -unread: "읽지 않음" -filter: "필터" -controlPanel: "제어판" -manageAccounts: "계정 관리" -makeReactionsPublic: "리액션 목록을 공개하기" -makeReactionsPublicDescription: "나의 리액션을 누구나 볼 수 있게 합니다." -classic: "클래식" -muteThread: "이 글타래를 뮤트" -unmuteThread: "글타래 뮤트 해제" -ffVisibility: "내 인맥의 공개 범위" -ffVisibilityDescription: "나의 팔로우와 팔로워 정보에 대한 공개 범위를 설정할 수 있습니다." -continueThread: "이 글타래 이어서 보기" -deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? " -incorrectPassword: "비밀번호가 올바르지 않습니다." -voteConfirm: "\"{choice}\"에 투표하시겠습니까?" -hide: "숨기기" -leaveGroup: "그룹 나가기" -leaveGroupConfirm: "\"{name}\"에서 나갈까요?" -useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시" -welcomeBackWithName: "환영합니다, {name}님" -clickToFinishEmailVerification: "[{ok}]를 눌러 이메일 인증을 완료하세요." -overridedDeviceKind: "장치 유형" -smartphone: "스마트폰" -tablet: "태블릿" -auto: "자동" -themeColor: "테마 컬러" -size: "크기" -numberOfColumn: "한 줄에 보일 리액션의 수" -searchByGoogle: "검색" -instanceDefaultLightTheme: "인스턴스 기본 라이트 테마" -instanceDefaultDarkTheme: "인스턴스 기본 다크 테마" -instanceDefaultThemeDescription: "객체 형식의 테마 코드를 입력해 주세요." -mutePeriod: "뮤트할 기간" -indefinitely: "무기한" -tenMinutes: "10분" -oneHour: "1시간" -oneDay: "1일" -oneWeek: "일주일" -reflectMayTakeTime: "반영되기까지 시간이 걸릴 수 있습니다." -failedToFetchAccountInformation: "계정 정보를 가져오지 못했습니다" -rateLimitExceeded: "요청 제한 횟수를 초과하였습니다" -cropImage: "이미지 자르기" -cropImageAsk: "이미지를 자르시겠습니까?" -file: "파일" -recentNHours: "최근 {n}시간" -recentNDays: "최근 {n}일" -noEmailServerWarning: "메일 서버가 설정되어 있지 않습니다." -thereIsUnresolvedAbuseReportWarning: "해결되지 않은 신고가 있습니다." -recommended: "추천" -check: "체크" -driveCapOverrideLabel: "이 유저의 드라이브 용량을 변경" -driveCapOverrideCaption: "0 이하를 지정하면 해제됩니다." -requireAdminForView: "열람하려면 관리자 계정으로 로그인해야 합니다." -isSystemAccount: "시스템에 의해 자동으로 생성되어 관리되는 계정입니다." -typeToConfirm: "계속하시려면 {x} 을 입력하세요" -deleteAccount: "계정 삭제" -document: "문서" -numberOfPageCache: "페이지 캐시 수" -numberOfPageCacheDescription: "숫자가 클 수록 편리성이 높아지지만, 시스템 자원과 메모리를 더 많이 사용합니다." -logoutConfirm: "로그아웃 하시겠습니까?" -lastActiveDate: "마지막 이용" -pleaseSelect: "선택해 주세요" -reverse: "플립" -colored: "색 입히기" -refreshInterval: "업데이트 주기" -label: "라벨" -type: "종류" -speed: "속도" -slow: "느리게" -fast: "빠르게" -sensitiveMediaDetection: "민감한 미디어 탐지" -localOnly: "로컬에만" -remoteOnly: "리모트만" -failedToUpload: "업로드 실패" -cannotUploadBecauseInappropriate: "이 파일은 부적절한 내용을 포함한다고 판단되어 업로드할 수 없습니다." -cannotUploadBecauseNoFreeSpace: "드라이브 용량이 부족하여 업로드할 수 없습니다." -beta: "베타" -enableAutoSensitive: "자동 NSFW 탐지" -enableAutoSensitiveDescription: "이용 가능할 경우 기계학습을 통해 자동으로 미디어 NSFW를 설정합니다. 이 기능을 해제하더라도, 인스턴스 정책에 따라 자동으로 설정될 수 있습니다." -activeEmailValidationDescription: "유저가 입력한 메일 주소가 일회용 메일인지, 실제로 통신할 수 있는 지 엄격하게 검사합니다. 해제할 경우 이메일 형식에 대해서만 검사합니다." -navbar: "네비게이션 바" -shuffle: "셔플" -account: "계정" -move: "이동" -_sensitiveMediaDetection: - description: "기계학습을 통해 자동으로 민감한 미디어를 탐지하여, 모더레이션에 참고할 수 있도록 합니다. 서버의 부하를 약간 증가시킵니다." - sensitivity: "탐지 민감도" - sensitivityDescription: "민감도가 낮을수록 안전한 미디어가 잘못 탐지될 확률이 줄어들며, 높을수록 민감한 미디어가 탐지되지 않을 확률이 줄어듭니다." - setSensitiveFlagAutomatically: "자동으로 NSFW로 설정하기" - setSensitiveFlagAutomaticallyDescription: "이 설정을 해제해도 탐지 결과는 유지됩니다." - analyzeVideos: "동영상도 같이 확인하기" - analyzeVideosDescription: "사진 뿐만 아니라 동영상의 NSFW 여부도 탐지합니다. 서버의 부하를 약간 증가시킵니다." -_emailUnavailable: - used: "이 메일 주소는 사용중입니다" - format: "형식이 올바르지 않습니다" - disposable: "임시 이메일 주소는 사용할 수 없습니다" - mx: "메일 서버가 올바르지 않습니다" - smtp: "메일 서버가 응답하지 않습니다" -_ffVisibility: - public: "공개" - followers: "팔로워에게만 공개" - private: "비공개" -_signup: - almostThere: "거의 다 끝났습니다" - emailAddressInfo: "당신이 사용하고 있는 이메일 주소를 입력해 주세요. 이메일 주소는 다른 유저에게 공개되지 않습니다." - emailSent: "입력하신 메일 주소({email})로 확인 메일을 보내드렸습니다. 가입을 완료하시려면 보내드린 메일에 있는 링크로 접속해 주세요." -_accountDelete: - accountDelete: "계정 삭제" - mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다." - sendEmail: "계정 삭제가 완료되면 등록된 이메일 주소로 알림을 보냅니다." - requestAccountDelete: "계정 삭제 요청" - started: "삭제 작업이 시작되었습니다." - inProgress: "삭제 진행 중" -_ad: - back: "뒤로" - reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기" -_forgotPassword: - enterEmail: "여기에 계정에 등록한 메일 주소를 입력해 주세요. 입력한 메일 주소로 비밀번호 재설정 링크를 발송합니다." - ifNoEmail: "메일 주소를 등록하지 않은 경우, 관리자에 문의해 주십시오." - contactAdmin: "이 인스턴스에서는 메일 기능이 지원되지 않습니다. 비밀번호를 재설정하려면 관리자에게 문의해 주십시오." -_gallery: - my: "내 갤러리" - liked: "좋아요 한 갤러리" - like: "좋아요!" - unlike: "좋아요 취소" -_email: - _follow: - title: "새로운 팔로워가 있습니다" - _receiveFollowRequest: - title: "팔로우 요청을 받았습니다" -_plugin: - install: "플러그인 설치" - installWarn: "신뢰할 수 없는 플러그인은 설치하지 않는 것이 좋습니다." - manage: "플러그인 관리" -_preferencesBackups: - list: "생성한 백업" - saveNew: "새 백업 만들기" - loadFile: "파일 가져오기" - apply: "이 기기에 적용" - save: "현재 설정으로 덮어쓰기" - inputName: "백업 이름을 입력하세요" - cannotSave: "저장하지 못했습니다" - nameAlreadyExists: "\"{name}\" 백업이 이미 존재합니다. 다른 이름을 설정하여 주십시오." - applyConfirm: "\"{name}\" 백업을 현재 기기에 적용하시겠습니까? 현재 설정은 덮어 씌워집니다." - saveConfirm: "{name} 을 덮어쓰시겠습니까?" - deleteConfirm: "{name} 을(를) 삭제하시겠습니까?" - renameConfirm: "\"{old}\" 백업을 \"{new}\"(으)로 바꾸시겠습니까?" - noBackups: "저장된 백업이 없습니다. \"새 백업 만들기\"를 눌러 현재 클라이언트 설정을 서버에 백업할 수 있습니다." - createdAt: "생성 날짜: {date} {time}" - updatedAt: "갱신 날짜: {date} {time}" - cannotLoad: "가져오기에 실패했습니다" - invalidFile: "파일 형식이 올바르지 않습니다." -_registry: - scope: "범위" - key: "키" - keys: "키" - domain: "도메인" - createKey: "키 생성" -_aboutMisskey: - about: "Misskey는 syuilo에 의해서 2014년부터 개발되어 온 오픈소스 소프트웨어 입니다." - contributors: "주요 기여자" - allContributors: "모든 기여자" - source: "소스 코드" - translation: "Misskey를 번역하기" - donate: "Misskey에 기부하기" - morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰" - patrons: "후원자" -_nsfw: - respect: "열람주의로 설정된 미디어 숨기기" - ignore: "열람 주의 미디어 항상 표시" - force: "미디어 항상 숨기기" _mfm: - cheatSheet: "MFM 도움말" - intro: "MFM는 Misskey의 다양한 곳에서 사용할 수 있는 전용 마크업 언어입니다. 여기에서는 MFM에서 사용할 수 있는 구문을 확인할 수 있습니다." - dummy: "Misskey로 연합우주의 세계가 펼쳐집니다" mention: "멘션" - mentionDescription: "골뱅이표(@) 뒤에 사용자명을 넣어 특정 유저를 나타낼 수 있습니다." hashtag: "해시태그" - hashtagDescription: "샵 또는 우물정자(#)를 앞에 붙여서 해시태그를 나타낼 수 있습니다." - url: "URL" - urlDescription: "URL을 나타낼 수 있습니다." link: "링크" - linkDescription: "문장의 특정 범위를 URL로 표시합니다." - bold: "굵음/볼드체" - boldDescription: "문자를 굵게 강조합니다." - small: "눈에 띄지 않음" - smallDescription: "내용을 작고 연하게 보이게 합니다." center: "가운데 정렬" - centerDescription: "내용을 가운데 정렬로 보이게 합니다." - inlineCode: "코드(인라인)" - inlineCodeDescription: "여러 행의 코드를 문법 강조를 적용하여 인라인으로 표시합니다." - blockCode: "코드(블록)" - blockCodeDescription: "여러 행의 코드를 문법 강조를 적용하여 블록으로 표시합니다." - inlineMath: "수식(인라인)" - inlineMathDescription: "수식(KaTeX)를 인라인으로 보이게 합니다." - blockMath: "수식(블록)" - blockMathDescription: "여러 줄의 수식(KaTeX)를 블록으로 보이게 합니다." quote: "인용" - quoteDescription: "내용을 인용문으로 표시합니다." emoji: "커스텀 이모지" - emojiDescription: "커스텀 이모지의 이름을 쌍점(:)으로 감싸서 커스텀 이모지를 사용합니다." search: "검색" - searchDescription: "주어진 키워드가 입력된 검색창을 보이게 합니다." - flip: "플립" - flipDescription: "내용을 상하 또는 좌우로 반전시킵니다." - jelly: "애니메이션 (젤리)" - jellyDescription: "젤리처럼 탱글탱글한 느낌의 효과를 줍니다." - tada: "애니메이션 (짠!)" - tadaDescription: "짠! 하는 느낌의 효과를 줍니다." - jump: "애니메이션(점프)" - jumpDescription: "펄쩍 뛸 듯한 느낌의 효과를 줍니다." - bounce: "애니메이션 (바운스)" - bounceDescription: "통통 튀는 느낌의 효과를 줍니다." - shake: "애니메이션 (부들부들)" - shakeDescription: "부들부들 떠는 느낌의 효과를 줍니다." - twitch: "애니메이션 (경련)" - twitchDescription: "격하게 흔들리는 느낌의 효과를 줍니다." - spin: "애니메이션 (회전)" - spinDescription: "회전 효과를 줍니다." - x2: "크게" - x2Description: "내용을 크게 표시합니다." - x3: "더 크게" - x3Description: "내용을 더 크게 표시합니다." - x4: "매우 크게" - x4Description: "내용을 매우 크게 표시합니다." - blur: "흐림" - blurDescription: "내용이 흐리게 보입니다. 마우스를 위에 올려두면 내용이 보입니다." - font: "폰트" - fontDescription: "내용의 글꼴을 지정할 수 있습니다." - rainbow: "무지개" - rainbowDescription: "내용을 무지개로 표시합니다." - sparkle: "반짝반짝" - sparkleDescription: "반짝이는 파티클 효과를 추가합니다." - rotate: "회전" - rotateDescription: "지정한 각도로 회전시킵니다." - plain: "평문" - plainDescription: "안에 있는 MFM 구문을 모두 무시하고 평문으로 표시합니다." -_instanceTicker: - none: "보이지 않음" - remote: "리모트 유저에게만 보이기" - always: "항상 보이기" -_serverDisconnectedBehavior: - reload: "자동으로 새로고침" - dialog: "경고창 표시" - quiet: "조용히 경고" +_reversi: + total: "합계" _channel: create: "채널 생성" - edit: "채널 편집" setBanner: "배너 설정" removeBanner: "배너 삭제" featured: "트렌드" - owned: "관리중" following: "팔로잉" usersCount: "{n}명 참여 중" notesCount: "{n}노트" -_menuDisplay: - sideFull: "가로" - sideIcon: "가로(아이콘)" - top: "상단" +_sidebar: + icon: "아바타" hide: "숨기기" _wordMute: muteWords: "뮤트할 단어" - muteWordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다。" - muteWordsDescription2: "정규 표현식을 사용하려면 키워드를 빗금표(/)로 감싸 주세요." - softDescription: "지정한 조건의 노트를 타임라인에서 숨깁니다." - hardDescription: "지정한 조건의 노트를 타임라인에 추가하지 않습니다. 타임라인에 추가되지 않은 노트는 조건을 변경해도 표시되지 않습니다." - soft: "보통" - hard: "보다 높은 수준" mutedNotes: "뮤트된 노트" -_instanceMute: - instanceMuteDescription: "뮤트한 인스턴스에서 오는 답글을 포함한 모든 노트와 Renote를 뮤트합니다." - instanceMuteDescription2: "한 줄에 하나씩 입력해 주세요" - title: "지정한 인스턴스의 노트를 숨깁니다." - heading: "뮤트할 인스턴스" _theme: explore: "테마 찾아보기" install: "테마 설치" manage: "테마 관리" code: "테마 코드" - description: "설명" installed: "{name} 테마가 설치되었습니다" - installedThemes: "설치된 테마" - builtinThemes: "표준 테마" alreadyInstalled: "이미 설치된 테마입니다" invalid: "테마 형식이 올바르지 않습니다" make: "테마 만들기" @@ -1105,57 +596,13 @@ _theme: func: "함수" funcKind: "함수 종류" argument: "매개변수" - basedProp: "기준으로 할 속성 이름" - alpha: "불투명도" - darken: "어두움" - lighten: "밝음" - inputConstantName: "상수 이름을 입력하세요" importInfo: "여기에 테마 코드를 붙여 넣어 에디터로 불러올 수 있습니다." - deleteConstantConfirm: "상수 {const}를 삭제하시겠습니까?" keys: - accent: "강조 색상" - bg: "배경" - fg: "텍스트" - focus: "포커스" - indicator: "인디케이터" - panel: "패널" - shadow: "그림자" - header: "헤더" - navBg: "사이드바 배경" - navFg: "사이드바 텍스트" - navHoverFg: "사이드바 텍스트 (호버)" - navActive: "사이드바 텍스트 (활성)" - navIndicator: "사이드바 인디케이터" link: "링크" hashtag: "해시태그" mention: "멘션" - mentionMe: "나에게 보낸 멘션" renote: "Renote" - modalBg: "모달 배경" divider: "구분선" - scrollbarHandle: "스크롤바 핸들" - scrollbarHandleHover: "스크롤바 핸들 (호버)" - dateLabelFg: "날짜 레이블 텍스트" - infoBg: "정보창 배경" - infoFg: "정보창 텍스트" - infoWarnBg: "경고창 배경" - infoWarnFg: "경고창 텍스트" - cwBg: "CW 버튼 배경" - cwFg: "CW 버튼 텍스트" - cwHoverBg: "CW 버튼 배경 (호버)" - toastBg: "알림창 배경" - toastFg: "알림창 텍스트" - buttonBg: "버튼 배경" - buttonHoverBg: "버튼 배경 (호버)" - inputBorder: "입력 필드 테두리" - listItemHoverBg: "리스트 항목 배경 (호버)" - driveFolderBg: "드라이브 폴더 배경" - wallpaperOverlay: "배경화면 오버레이" - badge: "배지" - messageBg: "채팅 배경" - accentDarken: "강조 색상 (어두움)" - accentLighten: "강조 색상 (밝음)" - fgHighlighted: "강조된 텍스트" _sfx: note: "새 노트" noteMy: "내 노트" @@ -1163,8 +610,8 @@ _sfx: chat: "대화" chatBg: "대화 (백그라운드)" antenna: "안테나 수신" - channel: "채널 알림" _ago: + unknown: "알 수 없음" future: "미래" justNow: "방금 전" secondsAgo: "{n}초 전" @@ -1208,7 +655,6 @@ _2fa: registerKey: "키를 등록" step1: "먼저, {a}나 {b}등의 인증 앱을 사용 중인 디바이스에 설치합니다." step2: "그 후, 표시되어 있는 QR코드를 앱으로 스캔합니다." - step2Url: "데스크톱 앱에서는 다음 URL을 입력하세요:" step3: "앱에 표시된 토큰을 입력하시면 완료됩니다." step4: "다음 로그인부터는 토큰을 입력해야 합니다." securityKeyInfo: "FIDO2를 지원하는 하드웨어 보안 키 혹은 디바이스의 지문인식이나 화면잠금 PIN을 이용해서 로그인하도록 설정할 수 있습니다." @@ -1236,15 +682,9 @@ _permissions: "read:pages": "페이지를 봅니다" "write:pages": "페이지를 수정합니다" "read:page-likes": "페이지의 좋아요를 확인합니다" - "write:page-likes": "페이지에 좋아요를 추가하거나 취소합니다" + "write:page-likes": "페이지의 좋아요를 추가하거나 삭제합니다" "read:user-groups": "유저 그룹을 조회합니다" "write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다" - "read:channels": "채널을 보기" - "write:channels": "채널을 추가하거나 삭제합니다" - "read:gallery": "갤러리를 봅니다" - "write:gallery": "갤러리를 추가하거나 삭제합니다" - "read:gallery-likes": "갤러리의 좋아요를 확인합니다" - "write:gallery-likes": "갤러리에 좋아요를 추가하거나 취소합니다" _auth: shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?" shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?" @@ -1277,17 +717,8 @@ _widgets: activity: "활동" photos: "사진" digitalClock: "디지털 시계" - unixClock: "UNIX 시계" federation: "연합" - instanceCloud: "인스턴스 구름" postForm: "글 입력란" - slideshow: "슬라이드 쇼" - button: "버튼" - onlineUsers: "온라인 유저" - jobQueue: "작업 대기열" - serverMetric: "서버 통계" - aiscript: "AiScript 콘솔" - aichan: "아이" _cw: hide: "숨기기" show: "더 보기" @@ -1329,7 +760,6 @@ _visibility: _postForm: replyPlaceholder: "이 노트에 답글..." quotePlaceholder: "이 노트를 인용..." - channelPlaceholder: "채널에 게시하기..." _placeholders: a: "지금 무엇을 하고 있나요?" b: "무슨 일이 일어나고 있나요?" @@ -1343,23 +773,17 @@ _profile: description: "자기소개" youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다." metadata: "추가 정보" - metadataEdit: "추가 정보 편집" - metadataDescription: "프로필에 추가 정보를 표시할 수 있어요" metadataLabel: "라벨" metadataContent: "내용" - changeAvatar: "아바타 이미지 변경" - changeBanner: "배너 이미지 변경" _exportOrImport: allNotes: "모든 노트" followingList: "팔로잉" muteList: "뮤트" blockingList: "차단" userLists: "리스트" - excludeMutingUsers: "뮤트한 유저 제외하기" - excludeInactiveUsers: "휴면 중인 계정 제외하기" _charts: - federation: "연합" - apRequest: "요청" + federationInstancesIncDec: "연합 인스턴스 수 증감" + federationInstancesTotal: "연합 인스턴스 수 합계" usersIncDec: "유저 수 증감" usersTotal: "유저 수 합계" activeUsers: "활성 유저 수" @@ -1388,6 +812,68 @@ _timelines: local: "로컬" social: "소셜" global: "글로벌" +_rooms: + roomOf: "{user}의 방" + addFurniture: "가구를 배치" + translate: "이동" + rotate: "회전" + exit: "뒤로" + remove: "치우기" + clear: "모두 치우기" + clearConfirm: "정말 방 안의 모든 가구를 치우시겠습니까?" + leaveConfirm: "저장되지 않은 변경 사항이 있습니다. 정말 나가시겠습니까?" + chooseImage: "이미지 선택" + roomType: "방 스타일" + carpetColor: "바닥 색상" + _roomType: + default: "기본값" + washitsu: "일본식" + _furnitures: + milk: "우유 팩" + bed: "침대" + low-table: "낮은 테이블" + desk: "책상" + chair: "의자" + chair2: "의자 2" + fan: "환기구" + pc: "컴퓨터" + plant: "관엽식물" + plant2: "관엽식물 2" + eraser: "지우개" + pencil: "연필" + pudding: "푸딩" + cardboard-box: "골판지 상자" + cardboard-box2: "골판지 상자 2" + cardboard-box3: "골판지 상자 3" + book: "책" + book2: "책 2" + piano: "피아노" + facial-tissue: "휴지 상자" + server: "서버" + moon: "달" + corkboard: "게시판" + mousepad: "마우스 패드" + monitor: "모니터" + keyboard: "키보드" + carpet-stripe: "카페트 (줄무늬)" + mat: "매트" + color-box: "책장" + wall-clock: "벽걸이 시계" + photoframe: "액자" + cube: "큐브" + tv: "TV" + pinguin: "펭귄" + rubik-cube: "루빅스 큐브" + poster-h: "포스터 (가로)" + poster-v: "포스터 (세로)" + sofa: "소파" + spiral: "나선형 계단" + bin: "휴지통" + cup-noodle: "컵라면" + holo-display: "홀로그램" + energy-drink: "에너지 드링크" + doll-ai: "아이쨩 인형" + banknote: "지폐뭉치" _pages: newPage: "페이지 만들기" editPage: "페이지 수정" @@ -1395,7 +881,6 @@ _pages: created: "페이지를 만들었습니다" updated: "페이지를 수정했습니다" deleted: "페이지가 삭제되었습니다" - pageSetting: "페이지 설정" nameAlreadyExists: "지정한 페이지 URL이 이미 존재합니다" invalidNameTitle: "유효하지 않은 페이지 URL입니다" invalidNameText: "비어있지 않은지 확인해주세요" @@ -1406,7 +891,6 @@ _pages: unlike: "좋아요 해제" my: "내 페이지" liked: "좋아요한 페이지" - featured: "인기" inspector: "인스펙터" contents: "콘텐츠" content: "페이지 블록" @@ -1462,11 +946,6 @@ _pages: id: "캔버스 ID" width: "폭" height: "높이" - note: "노트필기" - _note: - id: "노트 ID" - idDescription: "노트 URL을 붙여넣어 설정할 수도 있습니다." - detailed: "세부 정보 보기" switch: "스위치" _switch: name: "변수명" @@ -1688,51 +1167,27 @@ _notification: youGotQuote: "{name}님이 인용함" youRenoted: "{name}님이 Renote" youGotPoll: "{name}님이 투표함" - youGotMessagingMessageFromUser: "{name} 님이 보낸 채팅이 있어요" - youGotMessagingMessageFromGroup: "{name}에서 보낸 채팅이 있어요" youWereFollowed: "새로운 팔로워가 있습니다" youReceivedFollowRequest: "새로운 팔로우 요청이 있습니다" yourFollowRequestAccepted: "팔로우 요청이 수락되었습니다" youWereInvitedToGroup: "그룹에 초대되었습니다" - pollEnded: "투표 결과가 발표되었습니다" - emptyPushNotificationMessage: "푸시 알림이 갱신되었습니다" _types: - all: "전부" follow: "팔로잉" mention: "멘션" - reply: "답글" renote: "Renote" quote: "인용" reaction: "리액션" - pollVote: "투표 참여" - pollEnded: "투표가 종료됨" - receiveFollowRequest: "팔로우 요청을 받았을 때" - followRequestAccepted: "팔로우 요청이 승인되었을 때" - groupInvited: "그룹에 초대되었을 때" - app: "연동된 앱을 통한 알림" - _actions: - followBack: "팔로우" - reply: "답글" - renote: "Renote" _deck: alwaysShowMainColumn: "메인 칼럼 항상 표시" columnAlign: "칼럼 정렬" addColumn: "칼럼 추가" - configureColumn: "칼럼 설정" swapLeft: "왼쪽으로 이동" swapRight: "오른쪽으로 이동" swapUp: "위로 이동" swapDown: "아래로 이동" stackLeft: "왼쪽에 쌓기" popRight: "오른쪽으로 빼기" - profile: "프로파일" - newProfile: "새 프로파일" - deleteProfile: "프로파일 삭제" - introduction: "칼럼을 조합해서 나만의 인터페이스를 구성해 보아요!" - introduction2: "나중에라도 화면 우측의 + 버튼을 눌러 새 칼럼을 추가할 수 있습니다." - widgetsIntroduction: "칼럼 메뉴의 \"위젯 편집\"에서 위젯을 추가해 주세요" _columns: - main: "메인" widgets: "위젯" notifications: "알림" tl: "타임라인" diff --git a/locales/nl-NL.yml b/locales/nl-NL.yml index 7a0580f2d..14946f0a7 100644 --- a/locales/nl-NL.yml +++ b/locales/nl-NL.yml @@ -1,385 +1,2 @@ --- _lang_: "Nederlands" -headlineMisskey: "Netwerk verbonden door notities" -introMisskey: "Welkom! Misskey is een open source, gedecentraliseerde microblogdienst.\nMaak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\" kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe wereld verkennen! 🚀" -monthAndDay: "{day} {month}" -search: "Zoeken" -notifications: "Meldingen" -username: "Gebruikersnaam" -password: "Wachtwoord" -forgotPassword: "Wachtwoord vergeten" -fetchingAsApObject: "Ophalen vanuit de Fediverse" -ok: "Ok" -gotIt: "Begrepen" -cancel: "Annuleren" -enterUsername: "Voer een gebruikersnaam in" -renotedBy: "Hergedeeld door {user}" -noNotes: "Geen notities" -noNotifications: "Geen meldingen" -instance: "Server" -settings: "Instellingen" -basicSettings: "Basisinstellingen" -otherSettings: "Overige instellingen" -openInWindow: "In een venster openen" -profile: "Profiel" -timeline: "Tijdlijn" -noAccountDescription: "Deze gebruiker heeft nog geen bio geschreven" -login: "Inloggen" -loggingIn: "Aan het inloggen" -logout: "Afmelden" -signup: "Registreren" -uploading: "Bezig met uploaden" -save: "Opslaan" -users: "Gebruikers" -addUser: "Toevoegen gebruiker" -favorite: "Favorieten" -favorites: "Toevoegen aan favorieten" -unfavorite: "Verwijderen uit favorieten" -favorited: "Toegevoegd aan favorieten." -alreadyFavorited: "Al toegevoegd aan favorieten" -cantFavorite: "Kon niet toevoegen aan favorieten" -pin: "Vastmaken aan profielpagina" -unpin: "Losmaken van profielpagina" -copyContent: "Kopiëren inhoud" -copyLink: "Kopiëren link" -delete: "Verwijderen" -deleteAndEdit: "Verwijderen en bewerken" -deleteAndEditConfirm: "Weet je zeker dat je deze notitie wilt verwijderen en dan bewerken? Je verliest alle reacties, herdelingen en antwoorden erop." -addToList: "Aan lijst toevoegen" -sendMessage: "Verstuur bericht" -copyUsername: "Kopiëren gebruikersnaam " -searchUser: "Zoeken een gebruiker" -reply: "Antwoord" -loadMore: "Laad meer" -showMore: "Toon meer" -youGotNewFollower: "volgde jou" -receiveFollowRequest: "Volgverzoek ontvangen" -followRequestAccepted: "Volgverzoek geaccepteerd" -mention: "Vermelding" -mentions: "Vermeldingen" -directNotes: "Directe notities" -importAndExport: "Import / export" -import: "Import" -export: "Export" -files: "Bestanden" -download: "Downloaden" -driveFileDeleteConfirm: "Weet je zeker dat je het bestand \"{name}\" wilt verwijderen? Notities met dit bestand als bijlage worden ook verwijderd." -unfollowConfirm: "Weet je zeker dat je {name} wilt ontvolgen?" -exportRequested: "Je hebt een export aangevraagd. Dit kan een tijdje duren. Het wordt toegevoegd aan je Drive zodra het is voltooid." -importRequested: "Je hebt een import aangevraagd. Dit kan even duren." -lists: "Lijsten" -noLists: "Je hebt geen lijsten" -note: "Notitie" -notes: "Notities" -following: "Volgend" -followers: "Volgers" -followsYou: "Volgt jou" -createList: "Creëer lijst" -manageLists: "Beheren lijsten" -error: "Fout" -somethingHappened: "Er is iets misgegaan." -retry: "Probeer opnieuw" -pageLoadError: "Pagina laden mislukt" -pageLoadErrorDescription: "Dit wordt normaal gesproken veroorzaakt door netwerkfouten of door de cache van de browser. Probeer de cache te wissen en probeer het na een tijdje wachten opnieuw." -serverIsDead: "De server reageert niet. Wacht even en probeer het opnieuw." -youShouldUpgradeClient: "Werk je client bij om deze pagina te zien." -enterListName: "Voer de naam van de lijst in" -privacy: "Privacy" -makeFollowManuallyApprove: "Volgverzoeken vergen een goedkeuring" -defaultNoteVisibility: "Standaard zichtbaarheid" -follow: "Volgen" -followRequest: "Verzoek om te mogen volgen" -followRequests: "Volgverzoeken" -unfollow: "Ontvolgen" -followRequestPending: "Wachten op goedkeuring volgverzoek" -enterEmoji: "Voer een emoji in" -renote: "Herdelen" -unrenote: "Stop herdelen" -renoted: "Herdeeld" -cantRenote: "Dit bericht kan niet worden herdeeld" -cantReRenote: "Een herdeling kan niet worden herdeeld" -quote: "Quote" -pinnedNote: "Vastgemaakte notitie" -pinned: "Vastmaken aan profielpagina" -you: "Jij" -clickToShow: "Klik om te bekijken" -sensitive: "NSFW" -add: "Toevoegen" -reaction: "Reacties" -reactionSettingDescription2: "Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen" -rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen" -attachCancel: "Verwijder bijlage" -markAsSensitive: "Markeren als NSFW" -unmarkAsSensitive: "Geen NSFW" -enterFileName: "Invoeren bestandsnaam" -mute: "Dempen" -unmute: "Stop dempen" -block: "Blokkeren" -unblock: "Deblokkeren" -suspend: "Opschorten" -unsuspend: "Heractiveren" -blockConfirm: "Weet je zeker dat je dit account wil blokkeren?" -unblockConfirm: "Ben je zeker dat je deze account wil blokkeren?" -suspendConfirm: "Ben je zeker dat je deze account wil suspenderen?" -unsuspendConfirm: "Ben je zeker dat je deze account wil opnieuw aanstellen?" -flagAsBot: "Markeer dit account als een robot." -flagAsBotDescription: "Als dit account van een programma wordt beheerd, zet deze vlag aan. Het aanzetten helpt andere ontwikkelaars om bijvoorbeeld onbedoelde feedback loops te doorbreken of om Misskey meer geschikt te maken." -flagAsCat: "Markeer dit account als een kat." -flagAsCatDescription: "Zet deze vlag aan als je wilt aangeven dat dit account een kat is." -flagShowTimelineReplies: "Toon antwoorden op de tijdlijn." -flagShowTimelineRepliesDescription: "Als je dit vlag aanzet, toont de tijdlijn ook antwoorden op andere en niet alleen jouw eigen notities." -autoAcceptFollowed: "Accepteer verzoeken om jezelf te volgen vanzelf als je de verzoeker al volgt." -addAccount: "Account toevoegen" -loginFailed: "Aanmelding mislukt." -showOnRemote: "Toon op de externe instantie." -general: "Algemeen" -wallpaper: "Achtergrond" -setWallpaper: "Achtergrond instellen" -removeWallpaper: "Achtergrond verwijderen" -searchWith: "Zoeken: {q}" -youHaveNoLists: "Je hebt geen lijsten" -followConfirm: "Weet je zeker dat je {name} wilt volgen?" -proxyAccount: "Proxy account" -proxyAccountDescription: "Een proxy-account is een account dat onder bepaalde voorwaarden fungeert als externe volger voor gebruikers. Als een gebruiker bijvoorbeeld een externe gebruiker aan de lijst toevoegt, wordt de activiteit van de externe gebruiker niet aan de server geleverd als geen lokale gebruiker die gebruiker volgt, dus het proxy-account volgt in plaats daarvan." -host: "Server" -selectUser: "Kies een gebruiker" -recipient: "Ontvanger" -annotation: "Reacties" -federation: "Federatie" -instances: "Server" -registeredAt: "Geregistreerd op" -latestRequestSentAt: "Laatste aanvraag verstuurd" -latestRequestReceivedAt: "Laatste aanvraag ontvangen" -latestStatus: "Laatste status" -storageUsage: "Gebruikte opslagruimte" -charts: "Grafieken" -perHour: "Per uur" -perDay: "Per dag" -stopActivityDelivery: "Stop met versturen activiteiten" -blockThisInstance: "Blokkeer deze server" -operations: "Verwerkingen" -software: "Software" -version: "Versie" -metadata: "Metadata" -withNFiles: "{n} bestand(en)" -monitor: "Monitor" -jobQueue: "Job Queue" -cpuAndMemory: "CPU en geheugen" -network: "Netwerk" -disk: "Schijfruimte" -instanceInfo: "Serverinformatie" -statistics: "Statistieken" -clearQueue: "Wachtrij wissen" -clearQueueConfirmTitle: "Weet je zeker dat je de wachtrji leeg wil maken?" -clearQueueConfirmText: "Niet-bezorgde biljetten die nog in de wachtrij staan, worden niet gefedereerd. Meestal is deze operatie niet nodig." -clearCachedFiles: "Cache opschonen" -clearCachedFilesConfirm: "Weet je zeker dat je alle externe bestanden in de cache wilt verwijderen?" -blockedInstances: "Geblokkeerde servers" -blockedInstancesDescription: "Maak een lijst van de servers die moeten worden geblokkeerd, gescheiden door regeleinden. Geblokkeerde servers kunnen niet meer communiceren met deze server." -muteAndBlock: "Gedempt en geblokkeerd" -mutedUsers: "Gedempte gebruikers" -blockedUsers: "Geblokkeerde gebruikers" -noUsers: "Er zijn geen gebruikers." -editProfile: "Bewerk Profiel" -noteDeleteConfirm: "Ben je zeker dat je dit bericht wil verwijderen?" -pinLimitExceeded: "Je kunt geen berichten meer vastprikken" -intro: "Installatie van Misskey geëindigd! Maak nu een beheerder aan." -done: "Klaar" -processing: "Bezig met verwerken" -preview: "Voorbeeld" -default: "Standaard" -noCustomEmojis: "Er zijn geen emojis" -noJobs: "Er zijn geen taken" -federating: "Federeren" -blocked: "Geblokkeerd" -suspended: "Opgeschort" -all: "Alle" -subscribing: "Abonneren" -publishing: "Publiceren" -notResponding: "Reageert niet" -instanceFollowing: "Volgend op server" -instanceFollowers: "Volgers op server" -instanceUsers: "Gebruikers van deze server" -changePassword: "Wachtwoord wijzigen" -security: "Beveiliging" -retypedNotMatch: "Invoer komt niet overeen" -currentPassword: "Huidig wachtwoord" -newPassword: "Nieuwe wachtwoord" -newPasswordRetype: "Nieuw wachtwoord (herhalen)" -attachFile: "Bestanden toevoegen" -more: "Meer!" -featured: "Uitgelicht" -usernameOrUserId: "Gebruikersnaam of id" -noSuchUser: "Gebruiker niet gevonden" -lookup: "Opzoeken" -announcements: "Aankondigingen" -imageUrl: "AfbeeldingsURL" -remove: "Verwijderen" -removed: "Succesvol verwijderd" -removeAreYouSure: "Weet je zeker dat je \"{x}\" wil verwijderen?" -deleteAreYouSure: "Weet je zeker dat je \"{x}\" wil verwijderen?" -resetAreYouSure: "Resetten?" -saved: "Opgeslagen" -messaging: "Chat" -upload: "Uploaden" -keepOriginalUploading: "Origineel beeld behouden." -keepOriginalUploadingDescription: "Bewaar de originele versie bij het uploaden van afbeeldingen. Indien uitgeschakeld, wordt bij het uploaden een alternatieve versie voor webpublicatie genereert." -fromDrive: "Van schijf" -fromUrl: "Van URL" -uploadFromUrl: "Uploaden vanaf een URL" -uploadFromUrlDescription: "URL van het bestand dat je wil uploaden" -uploadFromUrlRequested: "Uploadverzoek" -uploadFromUrlMayTakeTime: "Het kan even duren voordat het uploaden voltooid is." -explore: "Verkennen" -messageRead: "Lezen" -noMoreHistory: "Er is geen verdere geschiedenis" -startMessaging: "Start een gesprek" -nUsersRead: "gelezen door {n}" -agreeTo: "Ik stem in met {0}" -tos: "Gebruiksvoorwaarden" -start: "Aan de slag" -home: "Startpagina" -remoteUserCaution: "Aangezien deze gebruiker van een externe server afkomstig is, kan de weergegeven informatie onvolledig zijn." -activity: "Activiteit" -images: "Afbeeldingen" -birthday: "Geboortedatum" -yearsOld: "{age} jaar" -registeredDate: "Inschrijvingsdatum" -location: "Locatie" -theme: "Thema's" -themeForLightMode: "Thema voor gebruik in de lichte modus" -themeForDarkMode: "Thema voor gebruik in de donkere modus" -light: "Licht" -dark: "Donker" -lightThemes: "Licht thema's" -darkThemes: "Donkere thema's" -syncDeviceDarkMode: "Synchroniseer donkere modus met je apparaatinstellingen" -drive: "Schijf" -fileName: "Bestandsnaam" -selectFile: "Kies een bestand" -selectFiles: "Selecteer bestanden" -selectFolder: "Kies een map" -selectFolders: "Kies mappen" -renameFile: "Wijzig bestandsnaam" -folderName: "Mapnaam" -createFolder: "Map aanmaken" -renameFolder: "Map hernoemen" -deleteFolder: "Map verwijderen" -addFile: "Bestand toevoegen" -emptyDrive: "Jouw Drive is leeg." -emptyFolder: "Deze map is leeg" -unableToDelete: "Kan niet worden verwijderd" -inputNewFileName: "Voer een nieuwe naam in" -copyUrl: "URL kopiëren" -rename: "Hernoemen" -avatar: "Avatar" -banner: "Banner" -nsfw: "NSFW" -whenServerDisconnected: "Wanneer de verbinding met de server wordt onderbroken" -disconnectedFromServer: "Verbinding met de server onderbroken." -inMb: "in megabytes" -pinnedNotes: "Vastgemaakte notitie" -userList: "Lijsten" -aboutMisskey: "Over Misskey" -administrator: "Beheerder" -token: "Token" -securityKeyName: "Sleutelnaam" -registerSecurityKey: "Zekerheids-Sleutel registreren" -lastUsed: "Laatst gebruikt" -unregister: "Uitschrijven" -passwordLessLogin: "Inloggen zonder wachtwoord" -resetPassword: "Wachtwoord terugzetten" -newPasswordIs: "Het nieuwe wachtwoord is „{password}”." -reduceUiAnimation: "Verminder beweging in de UI" -share: "Delen" -notFound: "Niet gevonden" -cacheClear: "Cache verwijderen" -smtpHost: "Server" -smtpUser: "Gebruikersnaam" -smtpPass: "Wachtwoord" -clearCache: "Cache opschonen" -user: "Gebruikers" -muteThread: "Discussies dempen " -unmuteThread: "Dempen van discussie ongedaan maken" -hide: "Verbergen" -searchByGoogle: "Zoeken" -cropImage: "Afbeelding bijsnijden" -cropImageAsk: "Bijsnijdengevraagd" -file: "Bestanden" -_email: - _follow: - title: "volgde jou" -_mfm: - mention: "Vermelding" - quote: "Quote" - search: "Zoeken" -_theme: - keys: - mention: "Vermelding" - renote: "Herdelen" -_sfx: - note: "Notities" - notification: "Meldingen" - chat: "Chat" -_widgets: - notifications: "Meldingen" - timeline: "Tijdlijn" - activity: "Activiteit" - federation: "Federatie" - jobQueue: "Job Queue" -_cw: - show: "Laad meer" -_visibility: - home: "Startpagina" - followers: "Volgers" -_profile: - username: "Gebruikersnaam" -_exportOrImport: - followingList: "Volgend" - muteList: "Dempen" - blockingList: "Blokkeren" - userLists: "Lijsten" - excludeMutingUsers: "Negeer gedempte gebruikers" - excludeInactiveUsers: "Negeer inactieve gebruikers" -_charts: - federation: "Federatie" -_timelines: - home: "Startpagina" -_pages: - blocks: - image: "Afbeeldingen" - script: - categories: - list: "Lijsten" - blocks: - _join: - arg1: "Lijsten" - _randomPick: - arg1: "Lijsten" - _dailyRandomPick: - arg1: "Lijsten" - _seedRandomPick: - arg2: "Lijsten" - _pick: - arg1: "Lijsten" - _listLen: - arg1: "Lijsten" - types: - array: "Lijsten" -_notification: - youWereFollowed: "volgde jou" - _types: - follow: "Volgend" - mention: "Vermelding" - renote: "Herdelen" - quote: "Quote" - reaction: "Reacties" - _actions: - reply: "Antwoord" - renote: "Herdelen" -_deck: - _columns: - notifications: "Meldingen" - tl: "Tijdlijn" - list: "Lijsten" - mentions: "Vermeldingen" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index 933b722c5..0a97ce102 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -1,1615 +1,23 @@ --- -_lang_: "Polski" -headlineMisskey: "Sieć połączona wpisami" -introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!" -monthAndDay: "{month}-{day}" +_lang_: "język polski" search: "Szukaj" notifications: "Powiadomienia" username: "Nazwa użytkownika" password: "Hasło" -forgotPassword: "Nie pamiętam hasła" -fetchingAsApObject: "Pobieranie z Fediwersum…" ok: "OK" gotIt: "Rozumiem!" cancel: "Anuluj" enterUsername: "Wprowadź nazwę użytkownika" -renotedBy: "Udostępniono przez {user}" -noNotes: "Brak wpisów" -noNotifications: "Brak powiadomień" -instance: "Instancja" -settings: "Ustawienia" -basicSettings: "Podstawowe ustawienia" -otherSettings: "Pozostałe ustawienia" -openInWindow: "Otwórz w oknie" -profile: "Profil" -timeline: "Oś czasu" -noAccountDescription: "Ten użytkownik nie napisał jeszcze swojej biografii." -login: "Zaloguj się" -loggingIn: "Logowanie" -logout: "Wyloguj się" -signup: "Zarejestruj się" -uploading: "Wysyłanie" -save: "Zapisz" -users: "Użytkownicy" -addUser: "Dodaj użytkownika" -favorite: "Dodaj do ulubionych" -favorites: "Ulubione" -unfavorite: "Usuń z ulubionych" -favorited: "Dodano do ulubionych." -alreadyFavorited: "Już jest w ulubionych." -cantFavorite: "Nie można dodać do ulubionych." -pin: "Przypnij do profilu" -unpin: "Odepnij z profilu" -copyContent: "Skopiuj zawartość" -copyLink: "Skopiuj odnośnik" -delete: "Usuń" -deleteAndEdit: "Usuń i edytuj" -deleteAndEditConfirm: "Czy na pewno chcesz usunąć ten wpis i zedytować go? Utracisz wszystkie reakcje, udostępnienia i odpowiedzi do tego wpisu." -addToList: "Dodaj do listy" -sendMessage: "Wyślij wiadomość" -copyUsername: "Kopiuj nazwę użytkownika" -searchUser: "Wyszukiwanie użytkowników" -reply: "Odpowiedz" -loadMore: "Załaduj więcej" -showMore: "Załaduj więcej" -showLess: "Zamknij" -youGotNewFollower: "Zaobserwował(a) Cię" -receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji" -followRequestAccepted: "Zaakceptowano prośbę o możliwość obserwacji" -mention: "Wspomnij" -mentions: "Wspomnienia" -directNotes: "Bezpośrednie wpisy" -importAndExport: "Import i eksport" -import: "Importuj" -export: "Eksportuj" -files: "Pliki" -download: "Pobierz" -driveFileDeleteConfirm: "Czy chcesz usunąć plik \"{name}\"? Zniknie również notatka, do której dołączony jest ten plik." -unfollowConfirm: "Czy na pewno chcesz przestać obserwować {name}?" -exportRequested: "Zażądałeś eksportu. Może to zająć trochę czasu. Po zakończeniu eksportu zostanie on dodany do Twoich \"dysków\"." -importRequested: "Zażądano importu. Może to zająć chwilę." -lists: "Listy" -noLists: "Nie masz żadnych list" -note: "Utwórz wpis" -notes: "Wpisy" -following: "Obserwowani" -followers: "Obserwujący" -followsYou: "Obserwuje Cię" -createList: "Utwórz listę" -manageLists: "Zarządzaj listami" -error: "Błąd" -somethingHappened: "Coś poszło nie tak" -retry: "Spróbuj ponownie" -pageLoadError: "Nie udało się załadować strony" -pageLoadErrorDescription: "Zwykle jest to spowodowane problemem z siecią lub cache przeglądarki. Spróbuj wyczyścić cache i sprawdź jeszcze raz za chwilę." -serverIsDead: "Serwer nie odpowiada. Zaczekaj chwilę i spróbuj ponownie." -youShouldUpgradeClient: "Odśwież stronę, by zaaktualizować klienta." -enterListName: "Nazwa listy" -privacy: "Prywatność" -makeFollowManuallyApprove: "Prośby o możliwość obserwacji wymagają zatwierdzenia" -defaultNoteVisibility: "Domyślna widoczność" -follow: "Obserwuj" -followRequest: "Poproś o możliwość obserwacji" -followRequests: "Prośby o możliwość obserwacji" -unfollow: "Przestań obserwować" -followRequestPending: "Oczekująca prośba o możliwość obserwacji" -enterEmoji: "Wprowadź emoji" -renote: "Udostępnij" -unrenote: "Cofnij udostępnienie" -renoted: "Udostępniono." -cantRenote: "Ten wpis nie może zostać udostępniony." -cantReRenote: "Udostępnienie nie może zostać udostępnione." -quote: "Cytuj" -pinnedNote: "Przypięty wpis" -pinned: "Przypnij do profilu" -you: "Ty" -clickToShow: "Kliknij, aby wyświetlić" -sensitive: "NSFW" -add: "Dodaj" -reaction: "Reakcja" -reactionSetting: "Reakcje do pokazania w wyborniku reakcji" -reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać" -rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu" -attachCancel: "Usuń załącznik" -markAsSensitive: "Oznacz jako NSFW" -unmarkAsSensitive: "Cofnij NSFW" -enterFileName: "Wprowadź nazwę pliku" -mute: "Wycisz" -unmute: "Cofnij wyciszenie" -block: "Zablokuj" -unblock: "Odblokuj" -suspend: "Zawieś" -unsuspend: "Cofnij zawieszenie" -blockConfirm: "Czy na pewno chcesz zablokować to konto?" -unblockConfirm: "Czy na pewno chcesz odblokować to konto?" -suspendConfirm: "Czy na pewno chcesz zawiesić to konto?" -unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?" -selectList: "Wybierz listę" -selectAntenna: "Wybierz Antennę" -selectWidget: "Wybierz widżet" -editWidgets: "Edytuj widżety" -editWidgetsExit: "Gotowe" -customEmojis: "Niestandardowe emoji" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Nazwa emoji" -emojiUrl: "Adres URL emoji" -addEmoji: "Dodaj emoji" -settingGuide: "Proponowana konfiguracja" -cacheRemoteFiles: "Przechowuj zdalne pliki w pamięci podręcznej" -cacheRemoteFilesDescription: "Gdy ta opcja jest wyłączona, zdalne pliki są ładowane bezpośrednio ze zdalnych instancji. Wyłączenie the opcji zmniejszy użycie powierzchni dyskowej, ale zwiększy transfer, ponieważ miniaturki nie będą generowane." -flagAsBot: "To konto jest botem" -flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota." -flagAsCat: "To konto jest kotem" -flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot." -flagShowTimelineReplies: "Pokazuj odpowiedzi na osi czasu" -autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz" -addAccount: "Dodaj konto" -loginFailed: "Nie udało się zalogować" -showOnRemote: "Zobacz na zdalnej instancji" -general: "Ogólne" -wallpaper: "Tapeta" -setWallpaper: "Ustaw tapetę" -removeWallpaper: "Usuń tapetę" -searchWith: "Szukaj: {q}" -youHaveNoLists: "Nie masz żadnej listy" -followConfirm: "Czy na pewno chcesz zaobserwować {name}?" -proxyAccount: "Konto proxy" -host: "Host" -selectUser: "Wybierz użytkownika" -recipient: "Odbiorca" -annotation: "Komentarze" -federation: "Federacja" -instances: "Instancja" -registeredAt: "Zarejestrowano" -latestRequestSentAt: "Ostatnie żądanie wysłano o" -latestRequestReceivedAt: "Ostatnie żądanie otrzymano o" -latestStatus: "Najnowszy status" -storageUsage: "Użycie pamięci" -charts: "Wykresy" -perHour: "co godzinę" -perDay: "co dzień" -stopActivityDelivery: "Przestań przesyłać aktywności" -blockThisInstance: "Zablokuj tę instancję" -operations: "Działania" -software: "Oprogramowanie" -version: "Wersja" -metadata: "Metadane" -withNFiles: "{n} plik(i)" -monitor: "Monitor" -jobQueue: "Kolejka zadań" -cpuAndMemory: "CPU i pamięć" -network: "Sieć" -disk: "Dysk" -instanceInfo: "Informacje o instancji" -statistics: "Statystyki" -clearQueue: "Wyczyść kolejkę" -clearQueueConfirmTitle: "Czy na pewno chcesz wyczyścić kolejkę?" -clearQueueConfirmText: "Wszystkie niewysłane wpisy z kolejki nie zostaną wysłane. Zwykle to nie jest konieczne." -clearCachedFiles: "Wyczyść pamięć podręczną" -clearCachedFilesConfirm: "Czy na pewno chcesz usunąć wszystkie zdalne pliki z pamięci podręcznej?" -blockedInstances: "Zablokowane instancje" -blockedInstancesDescription: "Wypisz nazwy hostów instancji, które powinny zostać zablokowane. Wypisane instancje nie będą mogły dłużej komunikować się z tą instancją." -muteAndBlock: "Wycisz / Zablokuj" -mutedUsers: "Wyciszeni użytkownicy" -blockedUsers: "Zablokowani użytkownicy" -noUsers: "Brak użytkowników" -editProfile: "Edytuj profil" -noteDeleteConfirm: "Czy na pewno chcesz usunąć ten wpis?" -pinLimitExceeded: "Nie możesz przypiąć więcej wpisów." -intro: "Zakończono instalację Misskey! Utwórz konto administratora." -done: "Gotowe" -processing: "Przetwarzanie" -preview: "Podgląd" -default: "Domyślne" -defaultValueIs: "Domyślne: {value}" -noCustomEmojis: "Brak emoji" -noJobs: "Brak zadań" -federating: "Federowanie" -blocked: "Zablokowano" -suspended: "Zawieszono" -all: "Wszystkie" -subscribing: "Subskrybowanie" -publishing: "Publikowanie" -notResponding: "Nie odpowiada" -instanceFollowing: "Obserwowani na instancji" -instanceFollowers: "Obserwujący na instancji" -instanceUsers: "Użytkownicy tej instancji" -changePassword: "Zmień hasło" -security: "Bezpieczeństwo" -retypedNotMatch: "Wejście nie zgadza się." -currentPassword: "Obecne hasło" -newPassword: "Nowe hasło" -newPasswordRetype: "Powtórz nowe hasło" -attachFile: "Załącz pliki" -more: "Więcej!" -featured: "Wyróżnione" -usernameOrUserId: "Nazwa lub id użytkownika" -noSuchUser: "Nie znaleziono użytkownika" -lookup: "Zapytania" -announcements: "Ogłoszenia" -imageUrl: "Adres URL obrazka" -remove: "Usuń" -removed: "Pomyślnie usunięto" -removeAreYouSure: "Czy na pewno chcesz usunąć „{x}”?" -deleteAreYouSure: "Czy na pewno chcesz usunąć „{x}”?" -resetAreYouSure: "Czy na pewno chcesz zresetować?" -saved: "Zapisano" -messaging: "Wiadomości" -upload: "Wyślij" -keepOriginalUploading: "Zachowaj oryginalny obraz" -fromDrive: "Z dysku" -fromUrl: "Z adresu URL" -uploadFromUrl: "Wyślij z adresu URL" -uploadFromUrlDescription: "Adres URL pliku, który chcesz wysłać" -uploadFromUrlRequested: "Zażądano wysłania" -uploadFromUrlMayTakeTime: "Wysyłanie może chwilę potrwać." -explore: "Eksploruj" -messageRead: "Przeczytano" -noMoreHistory: "Nie ma dalszej historii" -startMessaging: "Rozpocznij czat" -nUsersRead: "przeczytano przez {n}" -agreeTo: "Wyrażam zgodę na {0}" -tos: "Regulamin" -start: "Rozpocznij" -home: "Strona główna" -remoteUserCaution: "Te informacje mogą nie być aktualne, ponieważ użytkownik pochodzi ze zdalnej instancji." -activity: "Aktywność" -images: "Zdjęcia" -birthday: "Data urodzenia" -yearsOld: "{age} lat" -registeredDate: "Zarejestrowano" -location: "Lokalizacja" -theme: "Motywy" -themeForLightMode: "Motyw używany w trybie jasnym" -themeForDarkMode: "Motyw używany w trybie ciemnym" -light: "Jasny" -dark: "Ciemny" -lightThemes: "Jasny motyw" -darkThemes: "Ciemny motyw" -syncDeviceDarkMode: "Synchronizuj ciemny motyw z ustawieniami urządzenia" -drive: "Dysk" -fileName: "Nazwa pliku" -selectFile: "Wybierz plik" -selectFiles: "Wybierz pliki" -selectFolder: "Wybierz folder" -selectFolders: "Wybierz foldery" -renameFile: "Zmień nazwę pliku" -folderName: "Nazwa katalogu" -createFolder: "Utwórz katalog" -renameFolder: "Zmień nazwę katalogu" -deleteFolder: "Usuń ten katalog" -addFile: "Dodaj plik" -emptyDrive: "Dysk jest pusty" -emptyFolder: "Ten katalog jest pusty" -unableToDelete: "Nie można usunąć" -inputNewFileName: "Wprowadź nową nazwę pliku" -inputNewDescription: "Proszę wpisać nowy napis" -inputNewFolderName: "Wprowadź nową nazwę katalogu" -circularReferenceFolder: "Katalog docelowy jest podkatalogiem katalogu, który chcesz przenieść." -hasChildFilesOrFolders: "Ponieważ ten katalog nie jest pusty, nie może być usunięty." -copyUrl: "Skopiuj adres URL" -rename: "Zmień nazwę" -avatar: "Awatar" -banner: "Baner" -nsfw: "NSFW" -whenServerDisconnected: "Po utracie połączenia z serwerem" -disconnectedFromServer: "Utracono połączenie z serwerem." -reload: "Odśwież" -doNothing: "Ignoruj" -reloadConfirm: "Czy chcesz odświeżyć oś czasu?" -watch: "Śledź" -unwatch: "Przestań śledzić" -accept: "Akceptuj" -reject: "Odrzuć" -normal: "Normalny" -instanceName: "Nazwa instancji" -instanceDescription: "Opis instancji" -maintainerName: "Administrator" -maintainerEmail: "E-mail administratora" -tosUrl: "Adres URL regulaminu" -thisYear: "Rok" -thisMonth: "Miesiąc" -today: "Dziś" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Strony" -integration: "Integracja" -connectService: "Połącz" -disconnectService: "Rozłącz" -enableLocalTimeline: "Włącz lokalną oś czasu" -enableGlobalTimeline: "Włącz globalną oś czasu" -disablingTimelinesInfo: "Administratorzy i moderatorzy będą zawsze mieć dostęp do wszystkich osi czasu, nawet gdy są one wyłączone." -registration: "Zarejestruj się" -enableRegistration: "Włącz rejestrację nowych użytkowników" -invite: "Zaproś" -driveCapacityPerLocalAccount: "Powierzchnia dyskowa na lokalnego użytkownika" -driveCapacityPerRemoteAccount: "Powierzchnia dyskowa na zdalnego użytkownika" -inMb: "W megabajtach" -iconUrl: "Adres URL ikony" -bannerUrl: "Adres URL banera" -backgroundImageUrl: "Adres URL tła" -basicInfo: "Podstawowe informacje" -pinnedUsers: "Przypięty użytkownik" -pinnedUsersDescription: "Wypisz po jednej nazwie użytkownika w wierszu. Podani użytkownicy zostaną przypięci pod kartą „Eksploruj”." -pinnedPages: "Przypięte strony" -pinnedPagesDescription: "Wprowadź ścieżki stron które chcesz przypiąć na głównej stronie instancji, oddzielone znakiem nowego wiersza." -pinnedClipId: "ID przypiętego klipu" -pinnedNotes: "Przypięty wpis" -hcaptcha: "hCaptcha" -enableHcaptcha: "Włącz hCaptcha" -hcaptchaSiteKey: "Klucz strony" -hcaptchaSecretKey: "Tajny klucz" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Włącz reCAPTCHA" -recaptchaSiteKey: "Klucz strony" -recaptchaSecretKey: "Tajny klucz" -avoidMultiCaptchaConfirm: "Używanie wielu Captchy może spowodować zakłócenia. Czy chcesz wyłączyć inną Captchę? Możesz zostawić wiele jednocześnie, klikając Anuluj." -antennas: "Anteny" -manageAntennas: "Zarządzaj Antenami" -name: "Nazwa" -antennaSource: "Źródło Anteny" -antennaKeywords: "Słowa kluczowe do obserwacji" -antennaExcludeKeywords: "Wykluczone słowa kluczowe" -antennaKeywordsDescription: "Oddziel spacjami dla warunku AND, albo wymuś koniec linii dla warunku OR" -notifyAntenna: "Powiadamiaj o nowych wpisach" -withFileAntenna: "Filtruj tylko wpisy z załączonym plikiem" -enableServiceworker: "Włącz ServiceWorker" -antennaUsersDescription: "Wypisz po jednej nazwie użytkownika w linii" -caseSensitive: "Wielkość liter ma znaczenie" -withReplies: "Uwzględnij odpowiedzi" -connectedTo: "Następujące konta są połączone" -notesAndReplies: "Wpisy i odpowiedzi" -withFiles: "Media" -silence: "Wycisz" -silenceConfirm: "Czy na pewno chcesz wyciszyć tego użytkownika?" -unsilence: "Cofnij wyciszenie" -unsilenceConfirm: "Czy na pewno chcesz cofnąć wyciszenie tego użytkownika?" -popularUsers: "Popularni użytkownicy" -recentlyUpdatedUsers: "Ostatnio aktywni użytkownicy" -recentlyRegisteredUsers: "Ostatnio zarejestrowani użytkownicy" -recentlyDiscoveredUsers: "Ostatnio odkryci użytkownicy" -exploreUsersCount: "Jest {count} użytkowników" -exploreFediverse: "Eksploruj Fediwersum" -popularTags: "Tagi na czasie" -userList: "Listy" -about: "Informacje" -aboutMisskey: "O Misskey" -administrator: "Admin" -token: "Token" -twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe" -moderator: "Moderator" -moderation: "Moderacja" -nUsersMentioned: "{n} wspomnianych użytkowników" -securityKey: "Klucz bezpieczeństwa" -securityKeyName: "Nazwa klucza" -registerSecurityKey: "Zarejestruj klucz bezpieczeństwa" -lastUsed: "Ostatnio używane" -unregister: "Cofnij rejestrację" -passwordLessLogin: "Skonfiguruj logowanie bez użycia hasła" -resetPassword: "Zresetuj hasło" -newPasswordIs: "Nowe hasło to „{password}”" -reduceUiAnimation: "Ogranicz animacje w UI" -share: "Udostępnij" -notFound: "Nie znaleziono" -notFoundDescription: "Nie ma strony odpowiadającej określonemu adresowi URL." -uploadFolder: "Domyślne położenie wysłanych" -cacheClear: "Wyczyść pamięć podręczną" -markAsReadAllNotifications: "Oznacz wszystkie powiadomienia jako przeczytane" -markAsReadAllUnreadNotes: "Oznacz wszystkie wpisy jako przeczytane" -markAsReadAllTalkMessages: "Oznacz wszystkie wiadomości jako przeczytane" -help: "Pomoc" -inputMessageHere: "Wprowadź wiadomość tutaj" -close: "Zamknij" -group: "Grupy" -groups: "Grupy" -createGroup: "Utwórz grupę" -ownedGroups: "Posiadane grupy" -joinedGroups: "Członkostwa w grupach" -invites: "Zaproś" -groupName: "Nazwa grupy" -members: "Członkowie" -transfer: "Transfer" -messagingWithUser: "Rozmowy z innym użytkownikiem" -messagingWithGroup: "Rozmowy wewnątrz grupy" -title: "Tytuł" -text: "Tekst" -enable: "Włącz" -next: "Dalej" -retype: "Wprowadź ponownie" -noteOf: "Wpisy {user}" -inviteToGroup: "Zaproś do grupy" -quoteAttached: "Zacytowano" -quoteQuestion: "Czy na pewno chcesz umieścić cytat?" -noMessagesYet: "Nie napisano jeszcze wiadomości" -newMessageExists: "Masz nową wiadomość" -onlyOneFileCanBeAttached: "Możesz załączyć tylko jeden plik do wiadomości" -signinRequired: "Proszę się zalogować" -invitations: "Zaproś" -invitationCode: "Kod zaproszenia" -checking: "Sprawdzam" -available: "Dostępna" -unavailable: "Niedostępna" -usernameInvalidFormat: "może zawierać litery, cyfry i podkreślniki." -tooShort: "Zbyt krótka" -tooLong: "Zbyt długa" -weakPassword: "Słabe hasło" -normalPassword: "Dobre hasło" -strongPassword: "Silne hasło" -passwordMatched: "Pasuje" -passwordNotMatched: "Hasła nie pasują do siebie" -signinWith: "Zaloguj się z {x}" -signinFailed: "Nie udało się zalogować. Wprowadzona nazwa użytkownika lub hasło są nieprawidłowe." -tapSecurityKey: "Wybierz swój klucz bezpieczeństwa" -or: "Lub" -language: "Język" -uiLanguage: "Język wyświetlania UI" -groupInvited: "Zaproszony(-a) do grupy" -aboutX: "O {x}" -useOsNativeEmojis: "Używaj natywnych Emoji systemu" -disableDrawer: "Nie używaj menu w stylu szuflady" -youHaveNoGroups: "Nie masz żadnych grup" -joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę." -noHistory: "Brak historii" -signinHistory: "Historia logowania" -disableAnimatedMfm: "Wyłącz MFM z animacją" -doing: "Przetwarzanie..." -category: "Kategoria" -tags: "Tagi" -docSource: "Źródło tego dokumentu" -createAccount: "Utwórz konto" -existingAccount: "Istniejące konto" -regenerate: "Wygeneruj ponownie" -fontSize: "Rozmiar czcionki" -noFollowRequests: "Nie masz żadnych oczekujących próśb o możliwość obserwacji" -openImageInNewTab: "Otwórz obraz w nowej karcie" -dashboard: "Kokpit" -local: "Lokalne" -remote: "Zdalny" -total: "Łącznie" -weekOverWeekChanges: "Cotygodniowo" -dayOverDayChanges: "Codziennie" -appearance: "Wygląd" -clientSettings: "Ustawienia klienta" -accountSettings: "Ustawienia konta" -promotion: "Promowane" -promote: "Promuj" -numberOfDays: "Liczba dni" -hideThisNote: "Ukryj ten wpis" -showFeaturedNotesInTimeline: "Pokazuj wyróżnione wpisy w osi czasu" -objectStorage: "Pamięć obiektowa" -useObjectStorage: "Używaj pamięci obiektowej" -objectStorageBaseUrl: "Podstawowy URL" -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Podaj nazwę „wiadra” używaną przez konfigurowaną usługę." -objectStoragePrefix: "Prefiks" -objectStoragePrefixDesc: "Pliki będą przechowywane w katalogu z tym prefiksem." -objectStorageEndpoint: "Punkt końcowy" -objectStorageEndpointDesc: "Pozostaw puste jeżeli używasz AWS S3, w innym wypadku określ punkt końcowy jako '' lub ':' zgodnie z instrukcjami usługi, której używasz." -objectStorageRegion: "Region" -objectStorageRegionDesc: "Określ region, np. 'xx-east-1'. Jeżeli usługa której używasz nie zawiera rozróżnienia regionów, pozostaw to pustym lub wprowadź 'us-east-1'." -objectStorageUseSSL: "Użyj SSL" -objectStorageUseSSLDesc: "Wyłącz, jeżeli nie zamierzasz używać HTTPS dla połączenia z API" -objectStorageUseProxy: "Połącz przez proxy" -objectStorageUseProxyDesc: "Wyłącz, jeżeli nie zamierzasz używać proxy dla połączenia z pamięcią blokową" -serverLogs: "Dziennik zdarzeń" -deleteAll: "Usuń wszystkie" -showFixedPostForm: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu" -newNoteRecived: "Masz nowy wpis" -sounds: "Dźwięk" -listen: "Słuchaj" -none: "Brak" -showInPage: "Pokaż na stronie" -popout: "Popout" -volume: "Głośność" -masterVolume: "Głośność główna" -details: "Szczegóły" -chooseEmoji: "Wybierz emoji" -unableToProcess: "Nie udało się dokończyć działania." -recentUsed: "Ostatnio używane" -install: "Zainstaluj" -uninstall: "Odinstaluj" -installedApps: "Autoryzowane aplikacje" -nothing: "Nie ma tu niczego" -installedDate: "Autoryzowano" -lastUsedDate: "Ostatnie użycie" -state: "Stan" -sort: "Sortuj" -ascendingOrder: "Rosnąco" -descendingOrder: "Malejąco" -scratchpad: "Brudnopis" -scratchpadDescription: "Brudnopis zawiera eksperymentalne środowisko dla AiScript. Możesz pisać, wykonywać i sprawdzać wyniki w interakcji z Misskey." -output: "Wyjście" -script: "Skrypt" -disablePagesScript: "Wyłącz AiScript na Stronach" -updateRemoteUser: "Aktualizuj zdalne dane o użytkowniku" -deleteAllFiles: "Usuń wszystkie pliki" -deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?" -removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje." -userSuspended: "To konto zostało zawieszone." -userSilenced: "Ten użytkownik został wyciszony." -yourAccountSuspendedTitle: "To konto jest zawieszone" -yourAccountSuspendedDescription: "To konto zostało zawieszone z powodu złamania regulaminu serwera lub innych podobnych. Skontaktuj się z administratorem, jeśli chciałbyś poznać bardziej szczegółowy powód. Proszę nie zakładać nowego konta." -menu: "Menu" -divider: "Rozdzielacz" -addItem: "Dodaj element" -relays: "Przekaźniki" -addRelay: "Dodaj przekaźnik" -inboxUrl: "Adres URL skrzynki nadawczej" -addedRelays: "Dodane przekaźniki" -serviceworkerInfo: "Musi być włączone dla powiadomień push." -deletedNote: "Usunięty wpis" -invisibleNote: "Niewidzialny wpis" -enableInfiniteScroll: "Włącz nieskończone przewijanie" -visibility: "Widoczność" -poll: "Ankieta" -useCw: "Ukryj zawartość" -enablePlayer: "Otwórz odtwarzacz wideo" -disablePlayer: "Zamknij odtwarzacz wideo" -expandTweet: "Rozwiń tweet" -themeEditor: "Edytor motywu" -description: "Opis" -describeFile: "Dodaj podpis" -enterFileDescription: "Wprowadź napis" -author: "Autor" -leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?" -manage: "Zarządzanie" -plugins: "Wtyczki" -deck: "Tablica" -useBlurEffectForModal: "Używaj efektu rozmycia w modalach" -useFullReactionPicker: "Używaj pełnowymiarowego wybornika reakcji" -width: "Szerokość" -height: "Wysokość" -large: "Duże" -medium: "Średnie" -small: "Małe" -generateAccessToken: "Generuj token dostępu" -permission: "Uprawnienia" -enableAll: "Włącz wszystko" -disableAll: "Wyłącz wszystko" -tokenRequested: "Przydziel dostęp do konta" -pluginTokenRequestedDescription: "Ta wtyczka będzie mogła korzystać z ustawionych tu uprawnień." -notificationType: "Rodzaj powiadomień" -edit: "Edytuj" -useStarForReactionFallback: "Użyj ★ jako zapasowego emoji, gdy emoji reakcji jest nieznane" -emailServer: "Serwer poczty e-mail" -enableEmail: "Włącz dostarczanie wiadomości e-mail" -emailConfigInfo: "Wykorzystywany do potwierdzenia adresu e-mail w trakcie rejestracji, lub gdy zapomnisz hasła" -email: "Adres e-mail" -emailAddress: "Adres e-mail" -smtpConfig: "Konfiguracja serwera SMTP" -smtpHost: "Host" -smtpPort: "Port" smtpUser: "Nazwa użytkownika" smtpPass: "Hasło" -emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć weryfikację SMTP" -smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS" -testEmail: "Przetestuj dostarczanie wiadomości e-mail" -wordMute: "Wyciszenie słowa" -instanceMute: "Wyciszone instancje" -userSaysSomething: "{name} powiedział(-a) coś" -makeActive: "Aktywuj" -display: "Wyświetlanie" -copy: "Kopiuj" -metrics: "Pomiary" -overview: "Przegląd" -logs: "Dzienniki" -delayed: "Opóźnione" -database: "Baza danych" -channel: "Kanały" -create: "Utwórz" -notificationSetting: "Ustawienia powiadomień" -notificationSettingDesc: "Wybierz rodzaj powiadomień do wyświetlania" -useGlobalSetting: "Użyj globalnych ustawień" -useGlobalSettingDesc: "Jeżeli włączone, zostaną wykorzystane ustawienia powiadomień Twojego konta. Jeżeli wyłączone, mogą zostać wykonane oddzielne konfiguracje." -other: "Inne" -regenerateLoginToken: "Generuj token logowania ponownie" -regenerateLoginTokenDescription: "Regeneruje token używany wewnętrznie podczas logowania. Zazwyczaj nie jest to konieczne. Po regeneracji wszystkie urządzenia zostaną wylogowane." -setMultipleBySeparatingWithSpace: "Możesz ustawić wiele, oddzielając je spacjami." -fileIdOrUrl: "ID pliku albo URL" -behavior: "Zachowanie" -sample: "Przykład" -abuseReports: "Zgłoszenia" -reportAbuse: "Zgłoś" -reportAbuseOf: "Zgłoś {name}" -fillAbuseReportDescription: "Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy ono określonego wpisu, uwzględnij jego adres URL." -abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy." -reporteeOrigin: "Pochodzenie zgłoszonego" -reporterOrigin: "Pochodzenie zgłaszającego" -forwardReport: "Przekaż zgłoszenie do innej instancji" -send: "Wyślij" -abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane" -openInNewTab: "Otwórz w nowej karcie" -openInSideView: "Otwórz w bocznym widoku" -defaultNavigationBehaviour: "Domyślne zachowanie nawigacji" -editTheseSettingsMayBreakAccount: "Edycja tych ustawień może uszkodzić Twoje konto." -instanceTicker: "Informacje o wpisach instancji" -waitingFor: "Oczekiwanie na {x}" -random: "Losowe" -system: "System" -switchUi: "Przełącz interfejs użytkownika" -desktop: "Pulpit" -clip: "Klip" -createNew: "Utwórz nowy" -optional: "Nieobowiązkowe" -createNewClip: "Utwórz nowy klip" -unclip: "Odczep" -confirmToUnclipAlreadyClippedNote: "Ten wpis jest już częścią klipu \"{name}\". Czy chcesz ją usunąć z tego klipu?" -public: "Publiczny" -i18nInfo: "Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}." -manageAccessTokens: "Zarządzaj tokenami dostępu" -accountInfo: "Informacje o koncie" -notesCount: "Liczba wpisów" -repliesCount: "Liczba wysłanych odpowiedzi" -renotesCount: "Liczba wysłanych udostępnień" -repliedCount: "Liczba otrzymanych odpowiedzi" -renotedCount: "Liczba otrzymanych udostępnień" -followingCount: "Liczba obserwowanych kont" -followersCount: "Liczba obserwujących" -sentReactionsCount: "Liczba wysłanych reakcji" -receivedReactionsCount: "Liczba otrzymanych reakcji" -pollVotesCount: "Liczba wysłanych głosów w ankietach" -pollVotedCount: "Liczba otrzymanych głosów w ankietach" -yes: "Tak" -no: "Nie" -driveFilesCount: "Liczba plików na dysku" -driveUsage: "Użycie przestrzeni dyskowej" -noCrawle: "Odrzuć indeksowanie przez crawlery" -noCrawleDescription: "Proś wyszukiwarki internetowe, aby nie indeksowały Twojego profilu, wpisów, stron itd." -lockedAccountInfo: "Dopóki nie ustawisz widoczności wpisu na \"Obserwujący\", twoje wpisy będą mogli widzieć wszyscy, nawet jeśli ustawisz manualne zatwierdzanie obserwujących." -alwaysMarkSensitive: "Oznacz domyślnie jako NSFW" -loadRawImages: "Wyświetlaj zdjęcia w załącznikach w całości zamiast miniatur" -disableShowingAnimatedImages: "Nie odtwarzaj animowanych obrazów" -verificationEmailSent: "Wiadomość weryfikacyjna została wysłana. Odwiedź uwzględniony odnośnik, aby ukończyć weryfikację." -notSet: "Nie ustawiono" -emailVerified: "Adres e-mail został potwierdzony" -noteFavoritesCount: "Liczba polubionych wpisów" -pageLikesCount: "Liczba otrzymanych polubień stron" -pageLikedCount: "Liczba polubionych stron" -contact: "Kontakt" -useSystemFont: "Używaj domyślnej czcionki systemu" -clips: "Klipy" -experimentalFeatures: "Eksperymentalne funkcje" -developer: "Programista" -makeExplorable: "Pokazuj konto na stronie „Eksploruj”" -makeExplorableDescription: "Jeżeli wyłączysz tę opcję, Twoje konto nie będzie wyświetlać się w sekcji „Eksploruj”." -showGapBetweenNotesInTimeline: "Pokazuj odstęp między wpisami na osi czasu." -duplicate: "Duplikuj" -left: "Lewo" -center: "Wyśsrodkuj" -wide: "Szerokie" -narrow: "Wąskie" -reloadToApplySetting: "To ustawienie zostanie zastosowane po odświeżeniu strony. Chcesz odświeżyć?" -needReloadToApply: "To ustawienie zostanie zastosowane po odświeżeniu strony" -showTitlebar: "Pokazuj pasek tytułowy" -clearCache: "Wyczyść pamięć podręczną" -onlineUsersCount: "{n} osób jest online" -nUsers: "{n} użytkowników" -nNotes: "{n} wpisów" -sendErrorReports: "Wyślij raporty o błędach" -myTheme: "Mój motyw" -backgroundColor: "Tło" -accentColor: "Akcent" -textColor: "Tekst" -saveAs: "Zapisz jako…" -advanced: "Zaawansowane" -value: "Wartość" -createdAt: "Utworzono" -updatedAt: "Zaktualizowano" -saveConfirm: "Zapisać zmiany?" -deleteConfirm: "Na pewno usunąć?" -invalidValue: "Nieprawidłowa wartość." -registry: "Rejestr" -closeAccount: "Zamknij konto" -currentVersion: "Bieżąca wersja" -latestVersion: "Najnowsza wersja" -youAreRunningUpToDateClient: "Korzystasz z najnowszej wersji klienta." -newVersionOfClientAvailable: "Nowsza wersja klienta jest dostępna." -usageAmount: "Użycie" -capacity: "Pojemność" -inUse: "Użyto" -editCode: "Edytuj kod" -apply: "Zastosuj" -receiveAnnouncementFromInstance: "Otrzymuj powiadomienia e-mail z tej instancji" -emailNotification: "Powiadomienia e-mail" -publish: "Publikuj" -inChannelSearch: "Szukaj na kanale" -useReactionPickerForContextMenu: "Otwórz wybornik reakcji prawym kliknięciem" -typingUsers: "{users} pisze(-ą)..." -jumpToSpecifiedDate: "Przejdź do określonej daty" -showingPastTimeline: "Obecnie wyświetla starą oś czasu" -clear: "Wróć" -markAllAsRead: "Oznacz wszystkie jako przeczytane" -goBack: "Wróć" -unlikeConfirm: "Na pewno chcesz usunąć polubienie?" -fullView: "Pełny widok" -quitFullView: "Opuść pełny widok" -addDescription: "Dodaj opis" -userPagePinTip: "Możesz wyświetlać wpisy w tym miejscu po wybraniu \"Przypnij do profilu\" z menu pojedyńczego wpisu" -notSpecifiedMentionWarning: "Ten wpis zawiera wzmianki o użytkownikach niezawartych jako odbiorcy" -info: "Informacje" -userInfo: "Informacje o użykowniku" -unknown: "Nieznane" -onlineStatus: "Status online" -hideOnlineStatus: "Ukryj status online" -hideOnlineStatusDescription: "Ukrywanie statusu online ogranicza wygody niektórych funkcji, tj. wyszukiwanie" -online: "Online" -active: "Aktywny" -offline: "Offline" -notRecommended: "Nie zalecane" -botProtection: "Zabezpieczenie przed botami" -instanceBlocking: "Zablokowane instancje" -selectAccount: "Wybierz konto" -switchAccount: "Przełącz konto" -enabled: "Właczono" -disabled: "Wyłączono" -quickAction: "Szybkie działania" -user: "Użytkownicy" -administration: "Zarządzanie" -accounts: "Konta" -switch: "Przełącz" -noMaintainerInformationWarning: "Informacje o administratorze nie są skonfigurowane." -noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane." -configure: "Skonfiguruj" -postToGallery: "Opublikuj w galerii" -gallery: "Galeria" -recentPosts: "Ostatnie wpisy" -popularPosts: "Popularne wpisy" -shareWithNote: "Udostępnij z wpisem" -ads: "Reklamy" -expiration: "Ankieta kończy się" -memo: "Notatki" -priority: "Priorytet" -high: "Wysoki" -middle: "Średnie" -low: "Niski" -emailNotConfiguredWarning: "Nie podano adresu e-mail" -ratio: "Stosunek" -previewNoteText: "Pokaż podgląd" -customCss: "Własny CSS" -customCssWarn: "Używaj tego ustawienia tylko wtedy, gdy wiesz co ono robi. Nieprawidłowe wpisy mogą spowodować, że klient przestanie działać poprawnie." -global: "Globalna" -squareAvatars: "Wyświetlaj kwadratowe awatary" -sent: "Wyślij" -received: "Otrzymane" -searchResult: "Wyniki wyszukiwania" -hashtags: "Hashtag" -troubleshooting: "Rozwiązywanie problemów" -useBlurEffect: "Użyj efektów rozmycia w UI" -learnMore: "Dowiedz się więcej" -misskeyUpdated: "Misskey zostało zaktualizowane!" -whatIsNew: "Pokaż zmiany" -translate: "Przetłumacz" -translatedFrom: "Przetłumaczone z {x}" -accountDeletionInProgress: "Trwa usuwanie konta" -usernameInfo: "Nazwa, która identyfikuje Twoje konto spośród innych na tym serwerze. Możesz użyć alfabetu (a~z, A~Z), cyfr (0~9) lub podkreślników (_). Nazwy użytkownika nie mogą być później zmieniane." -aiChanMode: "Tryb Ai" -keepCw: "Zostaw ostrzeżenia o zawartości" -pubSub: "Konta Pub/Sub" -resolved: "Rozwiązane" -unresolved: "Nierozwiązane" -breakFollow: "Usuń obserwującego" -itsOn: "Włączone" -itsOff: "Wyłączone" -unread: "Nieodczytane" -filter: "Filtr" -controlPanel: "Panel sterowania" -manageAccounts: "Zarządzaj kontami" -makeReactionsPublic: "Ustawić historię reakcji jako publiczną" -makeReactionsPublicDescription: "To spowoduje, że lista wszystkich Twoich dotychczasowych reakcji będzie publicznie widoczna." -classic: "Klasyczny" -muteThread: "Wycisz wątek" -unmuteThread: "Wyłącz wyciszenie wątku" -ffVisibility: "Widoczność obserwowanych/obserwujących" -ffVisibilityDescription: "Pozwala skonfigurować, kto może zobaczyć, kogo obserwujesz i kto Cię obserwuje." -continueThread: "Pokaż kontynuację wątku" -deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?" -incorrectPassword: "Nieprawidłowe hasło." -voteConfirm: "Potwierdzić swój głos na \"{choice}\"?" -hide: "Ukryj" -leaveGroup: "Opuść grupę" -leaveGroupConfirm: "Czy na pewno chcesz opuścić \"{name}\"?" -useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych" -welcomeBackWithName: "Witaj z powrotem, {name}" -clickToFinishEmailVerification: "Kliknij [{ok}], aby zakończyć weryfikację e-mail." -overridedDeviceKind: "Typ urządzenia" -smartphone: "Smartfon" -tablet: "Tablet" -auto: "Automatycznie" -size: "Rozmiar" -numberOfColumn: "Liczba kolumn" -searchByGoogle: "Szukaj" -indefinitely: "Nigdy" -file: "Pliki" -logoutConfirm: "Czy na pewno chcesz się wylogować?" -lastActiveDate: "Ostatnio użyte w" -statusbar: "Pasek stanu" -pleaseSelect: "Wybierz opcję" -reverse: "Odwróć" -colored: "Kolorowe" -label: "Etykieta" -type: "Typ" -speed: "Prędkość" -localOnly: "Lokalne tylko" -failedToUpload: "Przesyłanie nie powiodło się" -cannotUploadBecauseInappropriate: "Nie można przesłać tego pliku, ponieważ jego części zostały wykryte jako potencjalnie nieodpowiednie." -cannotUploadBecauseNoFreeSpace: "Przesyłanie nie powiodło się z powodu braku miejsca na dysku." -beta: "Beta" -enableAutoSensitive: "Automatyczne oznaczanie NSFW" -enableAutoSensitiveDescription: "Umożliwia automatyczne wykrywanie i oznaczanie zawartości NSFW za pomocą uczenia maszynowego. Nawet jeśli ta opcja jest wyłączona, może być włączona w całej instancji." -navbar: "Pasek nawigacyjny" -account: "Konta" -move: "Przenieś" -_sensitiveMediaDetection: - description: "Zmniejsza wysiłek związany z moderacją serwera dzięki automatycznemu rozpoznawaniu zawartości NSFW za pomocą uczenia maszynowego. To nieznacznie zwiększy obciążenie serwera." - setSensitiveFlagAutomatically: "Oznacz jako NSFW" -_emailUnavailable: - used: "Ten adres e-mail jest już używany" - format: "Format tego adresu e-mail jest nieprawidłowy" - disposable: "Nie można używać jednorazowych adresów e-mail" - mx: "Ten serwer e-mail jest nieprawidłowy" - smtp: "Ten serwer e-mail nie odpowiada" -_ffVisibility: - public: "Publiczne" - followers: "Widoczne tylko dla obserwujących" - private: "Prywatne" -_signup: - almostThere: "Prawie na miejscu" - emailAddressInfo: "Podaj swój adres e-mail. Nie zostanie on upubliczniony." - emailSent: "E-mail z potwierdzeniem został wysłany na Twój adres e-mail ({email}). Kliknij dołączony link, aby dokończyć tworzenie konta." -_accountDelete: - accountDelete: "Usuń konto" - mayTakeTime: "Ponieważ usuwanie konta jest procesem wymagającym dużej ilości zasobów, jego ukończenie może zająć trochę czasu, w zależności od ilości utworzonej zawartości i liczby przesłanych plików." - sendEmail: "Po zakończeniu usuwania konta na adres e-mail zarejestrowany na tym koncie zostanie wysłana wiadomość e-mail." - requestAccountDelete: "Poproś o usunięcie konta" - started: "Usuwanie się rozpoczęło." - inProgress: "Usuwanie jest obecnie w toku" -_ad: - back: "Wróć" - reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej" -_forgotPassword: - enterEmail: "Wpisz adres e-mail użyty do rejestracji. Zostanie do niego wysłany link, za pomocą którego możesz zresetować hasło." - ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego." - contactAdmin: "Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło." -_gallery: - my: "Moja galeria" - liked: "Polubione wpisy" - like: "Polub" - unlike: "Cofnij polubienie" -_email: - _follow: - title: "Zaobserwował(a) Cię" - _receiveFollowRequest: - title: "Otrzymano prośbę o możliwość obserwacji" -_plugin: - install: "Zainstaluj wtyczki" - installWarn: "Nie instaluj niezaufanych wtyczek." - manage: "Zarządzanie wtyczkami" -_preferencesBackups: - list: "Utworzone kopie zapasowe" - saveNew: "Zapisz nową kopię zapasową" - loadFile: "Załaduj z pliku" - apply: "Zastosuj do tego urządzenia" - save: "Zapisz zmiany" - inputName: "Proszę podać nazwę dla tej kopii zapasowej" - cannotSave: "Zapisanie nie powiodło się" - nameAlreadyExists: "Kopia zapasowa o nazwie \"{name}\" już istnieje. Proszę podać inną nazwę." - applyConfirm: "Czy na pewno chcesz zastosować kopię zapasową \"{name}\" na tym urządzeniu? Istniejące ustawienia tego urządzenia zostaną nadpisane." - saveConfirm: "Zapisać kopię zapasową jako {name}?" - deleteConfirm: "Usunąć kopię zapasową {name}?" - renameConfirm: "Zmienić nazwę kopii zapasowej z \"{old}\" na \"{new}\"?" - createdAt: "Utworzony w: {date} {time}" - updatedAt: "Zaktualizowano w: {date} {time}" - cannotLoad: "Ładowanie nie powiodło się" - invalidFile: "Nieprawidłowy format pliku" -_registry: - scope: "Zakres" - key: "Klucz" - keys: "Klucz" - domain: "Domena" - createKey: "Utwórz klucz" -_aboutMisskey: - about: "Misskey jest oprogramowanie open source rozwijanym przez syuilo od 2014." - contributors: "Główni twórcy" - allContributors: "Wszyscy twórcy" - source: "Kod źródłowy" - translation: "Tłumacz Misskey" - donate: "Przekaż darowiznę na Misskey" - morePatrons: "Naprawdę doceniam wsparcie ze strony wielu niewymienionych tu osób. Dziękuję! 🥰" - patrons: "Wspierający" -_nsfw: - respect: "Ukrywaj media NSFW" - ignore: "Nie ukrywaj mediów NSFW" - force: "Ukrywaj wszystkie media" _mfm: - cheatSheet: "Ściąga MFM" - intro: "MFM to język składniowy wyjątkowy dla Misskey, który może być użyty w wielu miejscach. Tu znajdziesz listę wszystkich możliwych elementów składni MFM." - dummy: "Misskey rozszerza świat Fediwersum" - mention: "Wspomnij" - mentionDescription: "Używając znaku @ i nazwy użytkownika, możesz określić danego użytkownika." - hashtag: "Hashtag" - hashtagDescription: "Używając kratki i tekstu, możesz określić hashtag." - url: "Adres URL" - urlDescription: "Adresy URL mogą być wyświetlane" - link: "Odnośnik" - linkDescription: "Określone części tekstu mogą być wyświetlane jako adres URL." - bold: "Pogrubienie" - boldDescription: "Wyróżnia litery pogrubiając je." - small: "Małe" - smallDescription: "Wyświetla treść jako małą i cienką." - center: "Wyśrodkowanie" - centerDescription: "Wyśrodkowuje zawartość." - inlineCode: "Kod (w wierszu)" - blockCode: "Kod (blok)" - blockCodeDescription: "Wyświetla kod z podświetlaną składnią składający się z wielu linii." - blockMath: "Matematyka (Blok)" - quote: "Cytuj" - quoteDescription: "Wyświetla treść jako cytat." - emoji: "Niestandardowe emoji" - emojiDescription: "Otaczając nazwę niestandardowego emoji dwukropkami, możesz użyć niestandardowego emoji." search: "Szukaj" - searchDescription: "Wyświetla pole wyszukiwania z wcześniej wpisanym tekstem." - flip: "Odwróć" - flipDescription: "Przerzuca treść poziomo lub pionowo." - jelly: "Animacja (Galaretka)" - jellyDescription: "Nadaje treści galaretowatą animację." - tada: "Animation (Tada)" - tadaDescription: "Nadaje treści animację podobną do \"Tada!\"." - jump: "Animacja (Skok)" - jumpDescription: "Nadaje treści animację skakania." - bounce: "Animacja (Odbijanie)" - bounceDescription: "Nadaje treści animację odbijania się." - shake: "Animacja (Wstrząsanie)" - shakeDescription: "Nadaje treści animację wstrząsania." - twitch: "Animacja (Drganie)" - twitchDescription: "Nadaje treści mocno drgającą animację." - spin: "Animacja (Obrót)" - spinDescription: "Nadaje treści animację obracania." - x2: "Duże" - x2Description: "Czyni treść większą." - x3: "Bardzo duże" - x3Description: "Czyni treść jeszcze większą." - x4: "Ogromne" - x4Description: "Czyni treść jeszcze większą niż jeszcze większa." - blur: "Rozmycie" - blurDescription: "Rozmywa treść. Zostanie wyraźnie wyświetlona po najechaniu." - font: "Czcionka" - fontDescription: "Wybiera czcionkę do wyświetlania treści." - rainbow: "Tęcza" - rainbowDescription: "Sprawia, że zawartość pojawia się w kolorach tęczy." - sparkle: "Blask" - sparkleDescription: "Nadaje zawartości efekt lśniącego brokatu." - rotate: "Obróć" - rotateDescription: "Obraca zawartość o określony kąt." - plain: "Zwyczajny" - plainDescription: "Wyłącza efekty wszystkich MFM zawartych w tym efekcie MFM." -_instanceTicker: - none: "Nigdy nie pokazuj" - remote: "Pokaż dla zdalnych użytkowników" - always: "Zawsze pokazuj" -_serverDisconnectedBehavior: - reload: "Automatycznie odśwież" - dialog: "Pokazuj okno ostrzeżenia" - quiet: "Pokazuj nieirytujące ostrzeżenia" -_channel: - create: "Utwórz kanał" - edit: "Edytuj kanał" - setBanner: "Ustaw baner" - removeBanner: "Usuń baner" - featured: "Na czasie" - owned: "Własny" - following: "Śledzeni" - usersCount: "{n} uczestnicy" - notesCount: "{n} wpisy" -_menuDisplay: - top: "Góra" - hide: "Ukryj" -_wordMute: - muteWords: "Słowo do wyciszenia" - muteWordsDescription2: "Otocz słowa kluczowe ukośnikami, aby używać wyrażeń regularnych." - soft: "Łagodny" - hard: "Twardy" - mutedNotes: "Wyciszone wpisy" -_instanceMute: - title: "Ukrywa wpisy z wymienionych instancji." - heading: "Lista instancji do wyciszenia" -_theme: - explore: "Przeglądaj motywy" - install: "Zainstaluj motyw" - manage: "Zarządzanie motywami" - code: "Kod motywu" - description: "Opis" - installed: "Zainstalowano {name}" - installedThemes: "Zainstalowane motywy" - builtinThemes: "Wbudowane motywy" - alreadyInstalled: "Motyw jest już zainstalowany" - invalid: "Format motywu jest nieprawidłowy." - make: "Utwórz motyw" - base: "Podstawowy" - addConstant: "Dodaj stałą" - constant: "Stała" - defaultValue: "Domyślna wartość" - color: "Kolor" - refProp: "Nawiąż do właściwości" - refConst: "Nawiąż do stałej" - key: "Klucz" - func: "Funkcje" - funcKind: "Rodzaj funkcji" - argument: "Argument" - basedProp: "Nawiązana właściwość" - alpha: "Przezroczystość" - darken: "Ściemnij" - lighten: "Rozjaśnij" - inputConstantName: "Wprowadź nazwę stałej" - importInfo: "Jeżeli wprowadzisz tu kod motywu, możesz zaimportować go w edytorze motywu" - deleteConstantConfirm: "Czy na pewno chcesz usunąć stała {const}?" - keys: - accent: "Akcent" - bg: "Tło" - fg: "Tekst" - focus: "Skupienie" - indicator: "Wskaźnik" - panel: "Panel" - shadow: "Cień" - header: "Nagłówek" - navBg: "Tło paska bocznego" - navFg: "Tekst paska bocznego" - navHoverFg: "Tekst paska bocznego (zbliżenie)" - navActive: "Tekst paska bocznego (aktywny)" - navIndicator: "Wskaźnik paska bocznego" - link: "Odnośnik" - hashtag: "Hashtag" - mention: "Wspomnij" - mentionMe: "Wspomnienia (ja)" - renote: "Udostępnij" - modalBg: "Tło modalu" - divider: "Rozdzielacz" - scrollbarHandle: "Uchwyt paska przewijania" - scrollbarHandleHover: "Uchwyt paska przewijania (po najechaniu)" - dateLabelFg: "Tekst z datą" - infoBg: "Tło informacji" - infoFg: "Tekst informacji" - infoWarnBg: "Tło ostrzeżenia" - infoWarnFg: "Tekst ostrzeżenia" - cwBg: "Tło CW" - cwFg: "Tekst CW" - cwHoverBg: "Tło CW (po najechaniu)" - toastBg: "Tło powiadomień" - toastFg: "Tekst powiadomień" - buttonBg: "Tło przycisku" - buttonHoverBg: "Tło przycisku (po najechaniu)" - inputBorder: "Obramowanie pola wejścia" - listItemHoverBg: "Tło elementu listy (po najechaniu)" - driveFolderBg: "Tło folderu na dysku" - wallpaperOverlay: "Nakładka tapety" - badge: "Odznaka" - messageBg: "Tło czatu" - accentDarken: "Akcent (ciemniejszy)" - accentLighten: "Akcent (jaśniejszy)" - fgHighlighted: "Wyróżniony tekst" _sfx: - note: "Wpisy" - noteMy: "Mój wpis" notification: "Powiadomienia" - chat: "Wiadomości" - chatBg: "Rozmowy (tło)" - antenna: "Anteny" - channel: "Powiadomienia kanału" -_ago: - future: "W przyszłości" - justNow: "Przed chwilą" - secondsAgo: "{n} sek. temu" - minutesAgo: "{n} min. temu" - hoursAgo: "{n} godz. temu" - daysAgo: "{n} dni temu" - weeksAgo: "{n} tyg. temu" - monthsAgo: "{n} mies. temu" - yearsAgo: "{n} lat temu" -_time: - second: "sekunda" - minute: "minuta" - hour: "godz." - day: "dzień" -_tutorial: - title: "Jak korzystać z Misskey" - step1_1: "Witaj!" - step1_2: "Ta strona nazywa się „oś czasu”. Pokazuje chronologicznie uporządkowane wpisy osób, które „śledzisz”." - step1_3: "Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo." - step2_1: "Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować." - step2_2: "Podanie pewnych informacji o tym, kim jesteś, ułatwi innym określenie, czy chcą widzieć Twoje wpisy lub Cię obserwować." - step3_1: "Zakończyłeś(-aś) konfigurację profilu?" - step3_2: "Następnie spróbujmy opublikować wpis. Możesz to zrobić, naciskając przycisk z ikoną ołówka na ekranie." - step3_3: "Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post." - step3_4: "Nie masz nic do powiedzenia? Spróbuj \"ustawiam swój misskey\"!" - step4_1: "Zakończyłeś publikowanie pierwszego wpisu?" - step4_2: "Hurra! Teraz Twój pierwszy wpis powinien być wyświetlany na Twojej osi czasu." - step5_1: "Teraz spróbujmy ożywić Twoją oś czasu, przez zaobserwowanie innych ludzi." - step5_2: "{featured} pokaże Ci popularne wpisy na tej instancji. {explore} pozwoli Ci znaleźć popularnych użytkowników. Spróbuj znaleźć tam osoby, które chcesz obserwować!" - step5_3: "Aby obserwować innych użytkowników, kliknij ich ikonę i naciśnij przycisk \"Obserwuj\" na ich profilu." - step5_4: "Jeśli inny użytkownik ma ikonę kłódki obok swojej nazwy, może minąć trochę czasu, zanim ten użytkownik ręcznie zatwierdzi Twoją prośbę o obserwowanie." - step6_1: "Powinieneś teraz widzieć wpisy innych użytkowników na swojej osi czasu." - step6_2: "Możesz także umieścić „reakcje” na wpisach innych osób, aby szybko na nie odpowiedzieć." - step6_3: "Aby dodać \"reakcję\", naciśnij znak \"+\" na wpisie innego użytkownika i wybierz emotikonę, którą chcesz zareagować." - step7_1: "Gratulacje! Ukończyłeś podstawowy samouczek Misskey." - step7_2: "Jeśli chcesz dowiedzieć się więcej o Misskey, wypróbuj sekcję {help}." - step7_3: "A teraz powodzenia i baw się dobrze z Misskey! 🚀" -_2fa: - alreadyRegistered: "Zarejestrowałeś już urządzenie do uwierzytelniania dwuskładnikowego." - registerDevice: "Zarejestruj nowe urządzenie" - registerKey: "Zarejestruj klucz bezpieczeństwa" - step1: "Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu." - step2: "Następnie, zeskanuje kod QR z ekranu." - step3: "Wprowadź token podany w aplikacji, aby ukończyć konfigurację." - step4: "Od teraz, przy każdej próbie logowania otrzymasz prośbę o token logowania." -_permissions: - "read:account": "Wyświetl informacje o swoim koncie" - "write:account": "Edytuj swoje informacje o koncie" - "read:blocks": "Zobacz listę osób, które zablokowałeś(-aś)" - "write:blocks": "Edytuj listę osób, które zablokowałeś(-aś)" - "read:drive": "Dostęp do plików i katalogów ze Twojego dysku" - "write:drive": "Edycja i usuwanie plików i katalogów z Twojego dysku." - "read:favorites": "Wyświetlanie Twojej listy ulubionych." - "write:favorites": "Edycja Twojej listy ulubionych." - "read:following": "Wyświetlanie informacji o obserwowanych" - "write:following": "Obserwowanie lub cofanie obserwacji innych kont" - "read:messaging": "Zobacz swoje czaty" - "read:mutes": "Wyświetlanie listy osób, które wyciszyłeś(-aś)" - "write:mutes": "Edycja listy osób, które wyciszyłeś(-aś)" - "read:notifications": "Wyświetlanie powiadomień" - "write:notifications": "Działanie na powiadomieniach" - "read:reactions": "Wyświetlanie reakcji" - "write:reactions": "Edycja reakcji" - "write:votes": "Głosowanie w ankiecie" - "read:pages": "Wyświetlanie Twoich stron" - "write:pages": "Edycja lub usuwanie Twoich stron" - "read:page-likes": "Wyświetlanie polubień na stronach" - "write:page-likes": "Edycja polubień na stronach" - "read:user-groups": "Wyświetlanie grup użytkownika" - "write:user-groups": "Edycja lub usuwanie grup użytkownika" - "read:channels": "Zobacz swoje kanały" - "write:channels": "Edytuj swoje kanały" - "read:gallery": "Zobacz swoją galerię" - "write:gallery": "Edytuj swoją galerię" -_auth: - shareAccess: "Czy chcesz autoryzować „{name}” do dostępu do tego konta?" - permissionAsk: "Ta aplikacja wymaga następujących uprawnień:" -_weekday: - sunday: "Niedziela" - monday: "Poniedziałek" - tuesday: "Wtorek" - wednesday: "Środa" - thursday: "Czwartek" - friday: "Piątek" - saturday: "Sobota" _widgets: - memo: "Przypięte notatki" notifications: "Powiadomienia" - timeline: "Oś czasu" - calendar: "Kalendarz" - trends: "Na czasie" - clock: "Zegar" - rss: "Czytnik RSS" - activity: "Aktywność" - photos: "Zdjęcia" - digitalClock: "Zegar cyfrowy" - unixClock: "Zegar UNIX" - federation: "Federacja" - instanceCloud: "Chmura instancji" - postForm: "Formularz tworzenia wpisu" - slideshow: "Pokaz slajdów" - button: "Przycisk" - onlineUsers: "Użytkownicy online" - jobQueue: "Kolejka zadań" - serverMetric: "Metryka serwera" - aiscript: "Konsola AiScript" - aichan: "Ai" -_cw: - hide: "Ukryj" - show: "Załaduj więcej" - chars: "{count} znaków" - files: "{count} plików" -_poll: - noOnlyOneChoice: "Wymagane są przynajmniej dwie opcje" - choiceN: "Opcja {n}" - noMore: "Nie możesz dodać więcej opcji" - canMultipleVote: "Pozwól na wiele odpowiedzi" - expiration: "Ankieta kończy się" - infinite: "Nigdy" - at: "Zakończ o…" - after: "Zakończ po…" - deadlineDate: "Data zakończenia" - deadlineTime: "godz." - duration: "Czas trwania" - votesCount: "{n} głosów" - totalVotes: "Łącznie {n} głosów" - vote: "Głosowanie w ankiecie" - showResult: "Pokaż wyniki" - voted: "Zagłosowano" - closed: "Zakończono" - remainingDays: "Pozostało {d} dni i {h} godzin" - remainingHours: "Pozostali {h} godzin i {m} minut" - remainingMinutes: "Pozostało {m} minut i {s} sekund" - remainingSeconds: "Pozostało {s} sekund" -_visibility: - public: "Publiczny" - publicDescription: "Twój wpis pojawi się w publicznych osiach czasu" - home: "Strona główna" - followers: "Obserwujący" - specified: "Bezpośredni" - specifiedDescription: "Napisz tylko określonym użytkownikom" -_postForm: - _placeholders: - a: "Co się dzieje?" - b: "Co się wydarzyło?" - c: "Co Ci chodzi po głowie?" - d: "Czy masz coś do powiedzenia?" - e: "Zacznij coś pisać…" - f: "Czekamy, aż coś napiszesz." _profile: - name: "Nazwa" username: "Nazwa użytkownika" - description: "Opis" - youCanIncludeHashtags: "Możesz umieścić hashtagi w swoim opisie." - metadata: "Dodatkowe informacje" - metadataEdit: "Edytuj dodatkowe informacje" - metadataDescription: "Możesz wyświetlać do czterech sekcji dodatkowych informacji na swoim profilu." - metadataLabel: "Etykieta" - metadataContent: "Treść" - changeAvatar: "Zmień awatar" - changeBanner: "Zmień baner" -_exportOrImport: - allNotes: "Wszystkie wpisy" - followingList: "Obserwowani" - muteList: "Wycisz" - blockingList: "Zablokuj" - userLists: "Listy" -_charts: - federation: "Federacja" - apRequest: "Żądania" - usersTotal: "Łącznie # użytkowników" - activeUsers: "Aktywni użytkownicy" -_instanceCharts: - requests: "Żądania" - notesTotal: "Łącznie # wpisów" - ff: "Różnica w # obserwujących" - ffTotal: "Łączna liczba # obserwujących" - cacheSize: "Różnica w rozmiarze pamięci podręcznej" - cacheSizeTotal: "Łączny rozmiar pamięci podręcznej" - files: "Różnica # plików" - filesTotal: "Łącznie # plików" -_timelines: - home: "Strona główna" - local: "Lokalne" - social: "Społeczność" - global: "Globalna" -_pages: - newPage: "Utwórz stronę" - editPage: "Edytuj tę stronę" - readPage: "Aktywowano widok źródła" - created: "Pomyślnie utworzono stronę!" - updated: "Pomyślnie zaktualizowano stronę!" - deleted: "Strona została usunięta" - pageSetting: "Ustawienia strony" - nameAlreadyExists: "Określony adres URL strony już istnieje" - invalidNameTitle: "Podany adres URL strony jest nieprawidłowy" - invalidNameText: "Sprawdź, czy nie jest puste" - editThisPage: "Edytuj tę stronę" - viewSource: "Zobacz źródło" - viewPage: "Wyświetlanie Twoich stron" - like: "Lubię" - unlike: "Cofnij polubienie" - my: "Moje strony" - liked: "Polubione strony" - featured: "Wyróżnione" - inspector: "Inspektor" - contents: "Zawartość" - content: "Blokada strony" - variables: "Zmienne" - title: "Tytuł" - url: "URL strony" - summary: "Podsumowanie strony" - alignCenter: "Wyśrodkuj elementy" - hideTitleWhenPinned: "Ukryj tytuł strony, gdy przypięta do profilu" - font: "Czcionka" - fontSerif: "Szeryfowa" - fontSansSerif: "Bezszeryfowa" - eyeCatchingImageSet: "Ustaw przyciągające wzrok zdjęcie" - eyeCatchingImageRemove: "Usuń przyciągające wzrok zdjęcie" - chooseBlock: "Dodaj blok" - selectType: "Wybierz typ" - enterVariableName: "Wprowadź nazwę dla swojej zmiennej" - variableNameIsAlreadyUsed: "Ta nazwa jest już używana przez inną zmienną" - contentBlocks: "Zawartość" - inputBlocks: "Wejście" - specialBlocks: "Specjalne" - blocks: - text: "Tekst" - textarea: "Pole tekstowe" - section: "Sekcja" - image: "Zdjęcia" - button: "Przycisk" - if: "Jeżeli" - _if: - variable: "Zmienna" - post: "Utwórz wpis" - _post: - text: "Treść" - textInput: "Pole tekstowe" - _textInput: - name: "Nazwa zmiennej" - text: "Tytuł" - default: "Domyślna wartość" - textareaInput: "Pole tekstowe na wiele wierszy" - _textareaInput: - name: "Nazwa zmiennej" - text: "Tytuł" - default: "Domyślna wartość" - numberInput: "Pole na liczbę" - _numberInput: - name: "Nazwa zmiennej" - text: "Tytuł" - default: "Domyślna wartość" - _canvas: - width: "Szerokość" - height: "Wysokość" - note: "Osadzony wpis" - _note: - id: "ID wpisu" - idDescription: "Możesz też wkleić adres URL wpisu, aby go ustawić." - detailed: "Szczegółowy widok" - switch: "Przełącznik" - _switch: - name: "Nazwa zmiennej" - text: "Tytuł" - default: "Domyślna wartość" - counter: "Licznik" - _counter: - name: "Nazwa zmiennej" - text: "Tytuł" - inc: "Zwiększ o" - _button: - text: "Tytuł" - colored: "Kolorowe" - action: "Działanie wykonywane przy naciśnięciu przycisku" - _action: - dialog: "Pokazuj okno dialogowe" - _dialog: - content: "Treść" - resetRandom: "Resetuj losowe ziarno" - pushEvent: "Wyślij zdarzenie" - _pushEvent: - event: "Nazwa zdarzenia" - message: "Wiadomość do wyświetlenia po aktywowaniu" - variable: "Zmienna do wysłania" - no-variable: "Brak" - callAiScript: "Wywołaj AiScript" - _callAiScript: - functionName: "Nazwa funkcji" - radioButton: "Wybór" - _radioButton: - name: "Nazwa zmiennej" - title: "Tytuł" - values: "Lista wyborów (oddzielonych znakiem nowego wiersza)" - default: "Domyślna wartość" - script: - categories: - flow: "Kontrola przepływu" - logical: "Operacje logiczne" - operation: "Obliczanie" - comparison: "Porównanie" - random: "Losowe" - value: "Wartość" - fn: "Funkcje" - text: "Działania na tekście" - convert: "Transformacja" - list: "Listy" - blocks: - text: "Tekst" - multiLineText: "Tekst (w wielu wierszach)" - _textList: - info: "Oddziel każdy wpis znakiem nowego wiersza" - strLen: "Długość tekstu" - _strLen: - arg1: "Tekst" - _strPick: - arg1: "Tekst" - arg2: "Położenie znaku" - strReplace: "Zamiana tekstu" - _strReplace: - arg1: "Tekst" - arg2: "Tekst do zamiany" - arg3: "Zamieniono z" - _strReverse: - arg1: "Tekst" - _join: - arg1: "Listy" - arg2: "Odstęp" - add: "Dodaj" - _add: - arg1: "A" - arg2: "B" - subtract: "Odejmij" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Pomnóż" - _multiply: - arg1: "A" - arg2: "B" - divide: "Podziel" - _divide: - arg1: "A" - arg2: "B" - mod: "Reszta" - _mod: - arg1: "A" - arg2: "B" - _round: - arg1: "Liczba" - eq: "A i B są sobie równe" - _eq: - arg1: "A" - arg2: "B" - notEq: "A i B różnią się" - _notEq: - arg1: "A" - arg2: "B" - and: "A I B" - _and: - arg1: "A" - arg2: "B" - or: "A LUB B" - _or: - arg1: "A" - arg2: "B" - lt: "< A jest mniejsze niż B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A jest większe od B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A jest mniejsze lub równe B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A jest większe lub równe B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Warunek" - _if: - arg1: "Jeżeli" - arg2: "Jeżeli prawda" - not: "NIE" - _not: - arg1: "NIE" - random: "Losowe" - _random: - arg1: "Prawdopodobieństwo" - rannum: "Losowa liczba" - _rannum: - arg1: "Minimalna wartość" - arg2: "Maksymalna wartość" - randomPick: "Wybierz losowo z listy" - _randomPick: - arg1: "Listy" - dailyRandom: "Losowo (zostaje na dzień)" - _dailyRandom: - arg1: "Prawdopodobieństwo" - dailyRannum: "Losowa liczba (zostaje na dzień)" - _dailyRannum: - arg1: "Minimalna wartość" - arg2: "Maksymalna wartość" - dailyRandomPick: "Wybierz losowo z listy (zostaje na dzień)" - _dailyRandomPick: - arg1: "Listy" - seedRandom: "Losowo (z ziarnem)" - _seedRandom: - arg1: "Ziarno" - arg2: "Prawdopodobieństwo" - seedRannum: "Losowa liczba (z ziarnem)" - _seedRannum: - arg1: "Ziarno" - arg2: "Minimalna wartość" - arg3: "Maksymalna wartość" - seedRandomPick: "Wybierz losowo z listy (z ziarnem)" - _seedRandomPick: - arg1: "Ziarno" - arg2: "Listy" - DRPWPM: "Wybierz losowo z ważonej listy (zostaje na dzień)" - pick: "Wybierz z listy" - _pick: - arg1: "Listy" - arg2: "Położenie" - listLen: "Uzyskaj długość listy" - _listLen: - arg1: "Listy" - number: "Liczba" - stringToNumber: "Tekst na liczbę" - _stringToNumber: - arg1: "Tekst" - numberToString: "Liczba na tekst" - _numberToString: - arg1: "Liczba" - splitStrByLine: "Rozdziel tekst znakami nowej linii" - _splitStrByLine: - arg1: "Tekst" - ref: "Zmienne" - aiScriptVar: "Zmienna AiScript" - fn: "Funkcje" - _fn: - arg1: "Wyjście" - for: "Powtórzenie" - _for: - arg1: "Liczba powtórzeń" - arg2: "Działanie" - types: - string: "Tekst" - number: "Liczba" - boolean: "Flaguj" - array: "Listy" - enviromentVariables: "Zmienna środowiskowa" - pageVariables: "Element strony" -_relayStatus: - requesting: "Oczekujące" - accepted: "Zaakceptowano" - rejected: "Odrzucono" -_notification: - fileUploaded: "Pomyślnie wysłano plik" - youGotMention: "{name} wspomniał(a) o Tobie" - youGotReply: "{name} odpowiedział(a) Tobie" - youGotQuote: "{name} zacytował(a) Ciebie" - youRenoted: "{name} udostępnił(a) Twój wpis" - youGotPoll: "{name} zagłosował(a) w Twojej ankiecie" - youGotMessagingMessageFromUser: "{name} wysłał(a) Ci wiadomość" - youGotMessagingMessageFromGroup: "Została wysłana wiadomość do grupy {name}" - youWereFollowed: "Zaobserwował(a) Cię" - youReceivedFollowRequest: "Otrzymałeś(-aś) prośbę o możliwość obserwacji" - yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta" - youWereInvitedToGroup: "Zaproszony(-a) do grupy" - pollEnded: "Wyniki ankiety stały się dostępne" - emptyPushNotificationMessage: "Powiadomienia push zostały zaktualizowane" - _types: - all: "Wszystkie" - follow: "Nowi obserwujący" - mention: "Wspomnij" - reply: "Odpowiedzi" - renote: "Udostępnij" - quote: "Cytuj" - reaction: "Reakcja" - pollVote: "Głosy w ankietach" - receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji" - followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji" - groupInvited: "Zaproszono do grup" - app: "Powiadomienia z aplikacji" - _actions: - followBack: "zaobserwował cię z powrotem" - reply: "Odpowiedz" - renote: "Udostępnij" _deck: - alwaysShowMainColumn: "Zawsze pokazuj główną kolumnę" - columnAlign: "Wyrównaj kolumny" - addColumn: "Dodaj kolumnę" - configureColumn: "Ustawienia kolumny" - swapLeft: "Przesuń w lewo" - swapRight: "Przesuń w prawo" - swapUp: "Zamień z powyższym" - swapDown: "Zamień z poniższym" - stackLeft: "Przypnij do lewej" - popRight: "Odepnij w prawo" - profile: "Profil" - newProfile: "Nowy profil" - deleteProfile: "Usuń profil" - widgetsIntroduction: "Wybierz \"Edytuj widżety\" w menu kolumny i dodaj widżet." _columns: - main: "Główna" - widgets: "Widżety" notifications: "Powiadomienia" - tl: "Oś czasu" - antenna: "Anteny" - list: "Listy" - mentions: "Wspomnienia" - direct: "Bezpośredni" diff --git a/locales/pt-PT.yml b/locales/pt-PT.yml index 054e845b7..3ee459462 100644 --- a/locales/pt-PT.yml +++ b/locales/pt-PT.yml @@ -1,733 +1,2 @@ --- _lang_: "Português" -headlineMisskey: "Uma rede ligada por notas" -introMisskey: "Bem-vindo! Misskey é um serviço de microblogue descentralizado de código aberto.\nCria \"notas\" e partilha o que te ocorre com todos à tua volta. 📡\nCom \"reações\" podes também expressar logo o que sentes às notas de todos. 👍\nExploremos um novo mundo! 🚀" -monthAndDay: "{day}/{month}" -search: "Buscar" -notifications: "Notificações" -username: "Nome de usuário" -password: "Senha" -forgotPassword: "Esqueci a senha" -fetchingAsApObject: "Buscando no Fediverso" -ok: "OK" -gotIt: "Entendi" -cancel: "Cancelar" -enterUsername: "Digite o nome de usuário" -renotedBy: "Repostado por {user}" -noNotes: "Sem posts" -noNotifications: "Sem notificações" -instance: "Instância" -settings: "Configurações" -basicSettings: "Configurações básicas" -otherSettings: "Outras configurações" -openInWindow: "Abrir numa janela" -profile: "Perfil" -timeline: "Timeline" -noAccountDescription: "Este usuário não tem uma descrição." -login: "Iniciar sessão" -loggingIn: "Iniciando sessão…" -logout: "Sair" -signup: "Registrar-se" -uploading: "Enviando…" -save: "Guardar" -users: "Usuários" -addUser: "Adicionar usuário" -favorite: "Favoritar" -favorites: "Favoritar" -unfavorite: "Remover dos favoritos" -favorited: "Adicionado aos favoritos." -alreadyFavorited: "Já adicionado aos favoritos." -cantFavorite: "Não foi possível adicionar aos favoritos." -pin: "Afixar no perfil" -unpin: "Desafixar do perfil" -copyContent: "Copiar conteúdos" -copyLink: "Copiar hiperligação" -delete: "Eliminar" -deleteAndEdit: "Eliminar e editar" -deleteAndEditConfirm: "Tens a certeza que pretendes eliminar esta nota e editá-la? Irás perder todas as suas reações, renotas e respostas." -addToList: "Adicionar a lista" -sendMessage: "Enviar uma mensagem" -copyUsername: "Copiar nome de utilizador" -searchUser: "Pesquisar utilizador" -reply: "Responder" -loadMore: "Carregar mais" -showMore: "Ver mais" -showLess: "Fechar" -youGotNewFollower: "Você tem um novo seguidor" -receiveFollowRequest: "Pedido de seguimento recebido" -followRequestAccepted: "Pedido de seguir aceito" -mention: "Menção" -mentions: "Menções" -directNotes: "Notas diretas" -importAndExport: "Importar/Exportar" -import: "Importar" -export: "Exportar" -files: "Ficheiros" -download: "Descarregar" -driveFileDeleteConfirm: "Tens a certeza que pretendes apagar o ficheiro \"{name}\"? As notas que tenham este ficheiro anexado serão também apagadas." -unfollowConfirm: "Tens a certeza que queres deixar de seguir {name}?" -exportRequested: "Pediste uma exportação. Este processo pode demorar algum tempo. Será adicionado à tua Drive após a conclusão do processo." -importRequested: "Pediste uma importação. Este processo pode demorar algum tempo." -lists: "Listas" -noLists: "Não tens nenhuma lista" -note: "Post" -notes: "Posts" -following: "Seguindo" -followers: "Seguidores" -followsYou: "Segue-te" -createList: "Criar lista" -manageLists: "Gerir listas" -error: "Erro" -somethingHappened: "Ocorreu um erro" -retry: "Tentar novamente" -pageLoadError: "Ocorreu um erro ao carregar a página." -pageLoadErrorDescription: "Isto é normalmente causado por erros de rede ou pela cache do browser. Experimenta limpar a cache e tenta novamente após algum tempo." -serverIsDead: "O servidor não está respondendo. Por favor espere um pouco e tente novamente." -youShouldUpgradeClient: "Para visualizar essa página, por favor recarregue-a para atualizar seu cliente." -enterListName: "Insira um nome para a lista" -privacy: "Privacidade" -makeFollowManuallyApprove: "Pedidos de seguimento precisam ser aprovados" -defaultNoteVisibility: "Visibilidade padrão" -follow: "Seguindo" -followRequest: "Mandar pedido de seguimento" -followRequests: "Pedidos de seguimento" -unfollow: "Deixar de seguir" -followRequestPending: "Pedido de seguimento pendente" -enterEmoji: "Inserir emoji" -renote: "Repostar" -unrenote: "Desmarcar" -renoted: "Repostado" -cantRenote: "Não pode repostar" -cantReRenote: "Não pode repostar este repost" -quote: "Citar" -pinnedNote: "Post fixado" -pinned: "Afixar no perfil" -you: "Você" -clickToShow: "Clique para ver" -sensitive: "Conteúdo sensível" -add: "Adicionar" -reaction: "Reações" -reactionSetting: "Quais reações a mostrar no selecionador de reações" -reactionSettingDescription2: "Arraste para reordenar, clique para excluir, pressione + para adicionar." -rememberNoteVisibility: "Lembrar das configurações de visibilidade de notas" -attachCancel: "Remover anexo" -markAsSensitive: "Marcar como sensível" -unmarkAsSensitive: "Desmarcar como sensível" -enterFileName: "Digite o nome do ficheiro" -mute: "Silenciar" -unmute: "Dessilenciar" -block: "Bloquear" -unblock: "Desbloquear" -suspend: "Suspender" -unsuspend: "Cancelar suspensão" -blockConfirm: "Tem certeza que gostaria de bloquear essa conta?" -unblockConfirm: "Tem certeza que gostaria de desbloquear essa conta?" -suspendConfirm: "Tem certeza que gostaria de suspender essa conta?" -unsuspendConfirm: "Tem certeza que gostaria de cancelar a suspensão dessa conta?" -selectList: "Escolhe uma lista" -selectAntenna: "Escolhe uma antena" -selectWidget: "Escolhe um widget" -editWidgets: "Editar widgets" -editWidgetsExit: "Pronto" -customEmojis: "Emoji personalizado" -emoji: "Emoji" -emojis: "Emojis" -emojiName: "Nome do Emoji" -emojiUrl: "URL do Emoji" -addEmoji: "Adicionar um Emoji" -settingGuide: "Guia de configuração" -cacheRemoteFiles: "Memória transitória de arquivos remotos" -cacheRemoteFilesDescription: "Se você desabilitar essa configuração, os arquivos remotos não serão armazenados em memória transitória e serão vinculados diretamente. Economiza o armazenamento do servidor, mas não gera miniaturas, o que aumenta o tráfego." -flagAsBot: "Marcar conta como robô" -flagAsBotDescription: "Se esta conta for operada por um programa, ative este sinalizador. Quando ativado, serve como um sinalizador para evitar o encadeamento de reações para outros programadores, e o manuseio do sistema do Misskey é adequado para ‘bots’." -flagAsCat: "Marcar conta como gato" -flagAsCatDescription: "Ative essa opção para marcar essa conta como gato." -flagShowTimelineReplies: "Mostrar respostas na linha de tempo" -flagShowTimelineRepliesDescription: "Quando ativado, a linha do tempo mostra as respostas às outras notas do utilizador, além da nota do utilizador." -autoAcceptFollowed: "Aprove automaticamente os seguidores dos seguintes utilizadores" -addAccount: "Adicionar Conta" -loginFailed: "Não consegui logar" -showOnRemote: "Exibir remotamente" -general: "Geral" -wallpaper: "Papel de parede" -setWallpaper: "Definir papel de parede" -removeWallpaper: "Remover papel de parede" -searchWith: "Buscar: {q}" -youHaveNoLists: "Não tem nenhuma lista" -followConfirm: "Tem certeza que quer deixar de seguir {name}?" -proxyAccount: "Conta proxy" -proxyAccountDescription: "Uma conta proxy é uma conta que atua como seguidora remota para utilizadores sob determinadas condições. Por exemplo, quando um utilizador lista um utilizador remoto, a atividade não será entregue à instância, a menos que alguém esteja seguindo o utilizador listado, portanto, a conta proxy deve seguir." -host: "hospedeiro" -selectUser: "Selecionar utilizador" -recipient: "Morada" -annotation: "Anotação" -federation: "União" -instances: "Instância" -registeredAt: "Registrado em" -latestRequestSentAt: "Enviar a solicitação mais recente" -latestRequestReceivedAt: "Recebeu a última solicitação" -latestStatus: "Status mais recente" -storageUsage: "Uso de armazenamento" -charts: "gráfico" -perHour: "por hora" -perDay: "por dia" -stopActivityDelivery: "Parar a entrega de atividades" -blockThisInstance: "Bloquear esta instância" -operations: "operar" -software: "Programas" -version: "versão" -metadata: "Metadados" -withNFiles: "{n} Um arquivo" -monitor: "monitor" -jobQueue: "Fila de trabalhos" -cpuAndMemory: "CPU e memória" -network: "rede" -disk: "disco" -instanceInfo: "Informações da instância" -statistics: "Estatisticas" -clearQueue: "Limpar a fila" -clearQueueConfirmTitle: "Quer limpar a fila?" -clearQueueConfirmText: "Postagens não entregues não serão mais entregues. Normalmente você não precisa fazer isso." -clearCachedFiles: "Limpar memória transitória" -clearCachedFilesConfirm: "Tem certeza de que deseja excluir todos os arquivos remotos armazenados em memória transitória?" -blockedInstances: "Instância bloqueada" -blockedInstancesDescription: "Defina os anfitriões das instâncias que deseja bloquear, separados por quebras de linha. Uma instância bloqueada não poderá interagir com esta instância." -muteAndBlock: "Silenciar e bloquear" -mutedUsers: "Silenciar utilizador" -blockedUsers: "Utilizadores bloqueados" -noUsers: "Sem usuários" -editProfile: "Editar Perfil" -noteDeleteConfirm: "Deseja excluir esta nota?" -pinLimitExceeded: "Não consigo mais fixar" -intro: "A instalação do Misskey está completa! Crie uma conta de administrador." -done: "Concluído" -processing: "Em Progresso" -preview: "Pré-visualizar" -default: "Padrão" -noCustomEmojis: "Não há emojis" -noJobs: "Sem trabalho" -federating: "federar" -blocked: "Bloqueado" -suspended: "Cancelar subscrição" -all: "Todos" -subscribing: "Subscrito" -publishing: "Executando" -notResponding: "Sem resposta" -instanceFollowing: "Seguir a instância" -instanceFollowers: "Seguidores da instância" -instanceUsers: "Utilizador da instância" -changePassword: "Mudar senha" -security: "Segurança" -retypedNotMatch: "As entradas não coincidem." -currentPassword: "Palavra-passe atual" -newPassword: "Nova palavra-passe" -newPasswordRetype: "Nova senha (redigite)" -attachFile: "Anexar arquivo" -more: "Mais!" -featured: "Destaques" -usernameOrUserId: "Nome de utilizador ou ID de utilizador" -noSuchUser: "Utilizador não encontrado" -lookup: "Buscando" -announcements: "Notícia" -imageUrl: "URL da imagem" -remove: "Eliminar" -removed: "Foi deletado" -removeAreYouSure: "Deseja excluir \"{x}\"?" -deleteAreYouSure: "Deseja excluir \"{x}\"?" -resetAreYouSure: "Redefinir agora?" -saved: "Salvo" -messaging: "Chat" -upload: "Enviando" -keepOriginalUploading: "Manter a imagem original" -keepOriginalUploadingDescription: "Mantenha a versão original ao carregar a imagem. Quando desligado, a imagem para publicação na web será gerada no navegador no momento do upload." -fromDrive: "\nDa unidade" -fromUrl: "Da URL" -uploadFromUrl: "Carregamento de URL" -uploadFromUrlDescription: "URL do arquivo que você deseja enviar" -uploadFromUrlRequested: "Upload solicitado" -uploadFromUrlMayTakeTime: "Pode levar algum tempo para que o upload seja concluído." -explore: "Explorar" -messageRead: "Lida" -noMoreHistory: "Sem mais história" -startMessaging: "Iniciar conversação" -nUsersRead: "{n} Pessoas leem" -agreeTo: "Eu concordo com {0}" -tos: "Termos de serviço" -start: "começar" -home: "casa" -remoteUserCaution: "As informações estão incompletas porque é um utilizador remoto." -activity: "atividade" -images: "imagem" -birthday: "aniversário" -yearsOld: "{age} anos" -registeredDate: "Data de registro" -location: "Lugar, colocar" -theme: "tema" -themeForLightMode: "Temas usados ​​no modo de luz" -themeForDarkMode: "Temas usados ​​no modo escuro" -light: "Claro" -dark: "Escuro" -lightThemes: "Tema claro" -darkThemes: "Tema escuro" -syncDeviceDarkMode: "Sincronize com o modo escuro do dispositivo" -drive: "Unidades" -fileName: "Nome do Ficheiro" -selectFile: "Selecione os arquivos" -selectFiles: "Selecione os arquivos" -selectFolder: "Selecionar uma pasta" -selectFolders: "Selecionar uma pasta" -renameFile: "Renomear ficheiro" -folderName: "Nome da pasta" -createFolder: "Criar pasta" -renameFolder: "Renomear Pasta" -deleteFolder: "Eliminar Pasta" -addFile: "Adicionar arquivo" -emptyDrive: "A unidade está vazia" -emptyFolder: "A pasta está vazia" -unableToDelete: "Não é possível eliminar" -inputNewFileName: "Por favor, digite um novo nome para a pasta!" -inputNewDescription: "Insira uma nova legenda" -inputNewFolderName: "Por favor, digite um novo nome para a pasta!" -circularReferenceFolder: "A pasta de destino é uma subpasta da pasta que você deseja mover." -hasChildFilesOrFolders: "Esta pasta não está vazia e não pode ser excluída." -copyUrl: "Copiar URL" -rename: "Renomear" -avatar: "Avatar" -banner: "Capa" -nsfw: "Conteúdo sensível" -whenServerDisconnected: "Quando a conexão com o servidor é perdida" -disconnectedFromServer: "Desconectado do servidor" -reload: "Recarregar" -doNothing: "Nenhuma ação adicional" -reloadConfirm: "Quer recarregar?" -watch: "ver" -unwatch: "Não observar" -accept: "Aceitar" -reject: "Rejeitar" -normal: "Normal" -instanceName: "Nome da instância" -instanceDescription: "Descrição da instância" -maintainerName: "Nome do administrador" -maintainerEmail: "E-mail do Administrador:" -tosUrl: "URL dos Termos de Uso" -thisYear: "Este ano" -thisMonth: "Este mês" -today: "Hoje" -dayX: " Dia {day}" -monthX: "mês de {month}" -yearX: "Ano {year}" -pages: "Páginas" -integration: "Integração" -connectService: "Conectar" -disconnectService: "Desconectar" -enableLocalTimeline: "Ativar linha do tempo local" -enableGlobalTimeline: "Ativar linha do tempo global" -disablingTimelinesInfo: "Se você desabilitar essas linhas do tempo, administradores e moderadores ainda poderão usá-las por conveniência." -registration: "Registar" -enableRegistration: "Permitir que qualquer pessoa se registre" -invite: "Convidar" -driveCapacityPerLocalAccount: "Capacidade da unidade por utilizador local" -driveCapacityPerRemoteAccount: "Capacidade da unidade por utilizador remoto" -inMb: "Em ‘megabytes’" -iconUrl: "URL da imagem do ícone (favicon, etc.)" -bannerUrl: "URL da imagem do ‘banner’" -backgroundImageUrl: "URL da imagem de fundo" -basicInfo: "Informações básicas" -pinnedUsers: "Utilizador fixado" -pinnedUsersDescription: "Descreva os utilizadores que você deseja fixar na página \"Localizar\", etc., separados por quebras de linha." -pinnedPages: "Página fixada" -pinnedPagesDescription: "Descreva o caminho da página que você deseja fixar na página superior da instância, separada por quebras de linha." -pinnedClipId: "ID do clipe a ser fixado" -pinnedNotes: "Post fixado" -hcaptcha: "hCaptcha" -enableHcaptcha: "Ativar hCaptcha" -hcaptchaSiteKey: "Chave do sítio ‘web’" -hcaptchaSecretKey: "Chave secreta" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Habilitar reCAPTCHA" -recaptchaSiteKey: "Chave do sítio ‘web’" -recaptchaSecretKey: "Chave secreta" -avoidMultiCaptchaConfirm: "O uso de vários captchas pode causar interferência. Deseja desativar outros captchas? Você também pode cancelar e deixar vários captchas ativados." -antennas: "Antenas" -manageAntennas: "Gestão de antena" -name: "Nome" -antennaSource: "Origem de entrada" -antennaKeywords: "Palavras-chave recebidas" -antennaExcludeKeywords: "Palavras-chave negativas" -antennaKeywordsDescription: "Se você separá-lo com um espaço, será uma especificação AND, e se você separá-lo com uma quebra de linha, será uma especificação OR." -notifyAntenna: "Notificar novas notas" -withFileAntenna: "Apenas notas com arquivos anexados" -enableServiceworker: "Ative as notificações push para o seu navegador" -antennaUsersDescription: "Especificar nomes de utilizador separados por quebras de linha" -caseSensitive: "Maiúsculas e minúsculas" -withReplies: "Incluindo resposta" -connectedTo: "Você está conectado à seguinte conta" -notesAndReplies: "Publicações e respostas" -withFiles: "Com arquivo" -silence: "Silenciado" -silenceConfirm: "Quer silenciar?" -unsilence: "Liberar silenciar" -unsilenceConfirm: "Quer liberar o silêncio?" -popularUsers: "Utilizadores populares" -recentlyUpdatedUsers: "Utilizadores postados recentemente" -recentlyRegisteredUsers: "Utilizadores registrados recentemente" -recentlyDiscoveredUsers: "Utilizadores descobertos recentemente" -exploreUsersCount: "Há um utilizador de {count}" -exploreFediverse: "Explorar Fediverse" -popularTags: "Tags populares" -userList: "Listas" -about: "Informações" -aboutMisskey: "Sobre Misskey" -administrator: "Administrador" -token: "Símbolo" -twoStepAuthentication: "Verificação em duas etapas" -moderator: "Moderador" -nUsersMentioned: "Postado por {n} pessoas" -securityKey: "Chave de segurança" -securityKeyName: "Nome chave" -registerSecurityKey: "Registre a chave de segurança" -lastUsed: "Último uso" -unregister: "Cancelar registro" -passwordLessLogin: "Entrar sem senha" -resetPassword: "Redefinir senha" -newPasswordIs: "A nova senha é \"{password}\"" -reduceUiAnimation: "Reduzir a animação da ‘interface’ do utilizador" -share: "Compartilhar" -notFound: "Não encontrado" -notFoundDescription: "Não havia página correspondente ao URL especificado." -uploadFolder: "Destino de ‘upload’ padrão" -cacheClear: "Excluir memória transitória" -markAsReadAllNotifications: "Marcar todas as notificações como lidas" -markAsReadAllUnreadNotes: "Marcar todas as postagens como lidas" -markAsReadAllTalkMessages: "Marcar todas as conversas como lidas" -help: "Ajuda" -inputMessageHere: "Escrever mensagem aqui" -close: "Fechar" -group: "Grupos" -groups: "Grupos" -createGroup: "Criar grupo" -ownedGroups: "Grupo próprio" -invites: "Convidar" -invitations: "Convidar" -tags: "Etiquetas" -docSource: "Fonte deste documento" -createAccount: "Criar conta" -existingAccount: "Contas existentes" -regenerate: "Gerar novamente" -fontSize: "Tamanho do texto" -noFollowRequests: "Não há aplicação de acompanhamento" -openImageInNewTab: "Abrir a imagem numa nova aba" -dashboard: "Painel de controle" -local: "Local" -remote: "Remoto" -total: "Total" -weekOverWeekChanges: "Em comparação com a semana anterior" -dayOverDayChanges: "Dia anterior" -appearance: "Aparência" -clientSettings: "Configurações do cliente" -accountSettings: "Configurações da conta" -promotion: "Promoção" -promote: "Promover" -numberOfDays: "Dias" -hideThisNote: "Ocultar esta nota" -showFeaturedNotesInTimeline: "Mostrar notas recomendadas na linha do tempo" -objectStorage: "Armazenamento de objetos" -useObjectStorage: "Usar armazenamento de objetos" -objectStorageBaseUrl: "URL base" -objectStorageBaseUrlDesc: "O URL usado para referência. Se você estiver usando um CDN ou Proxy, seu URL, S3:'https: // .s3.amazonaws.com', GCS, etc .:'https://storage.googleapis.com/ ' ." -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Especifique o nome do bucket do serviço a ser usado." -objectStoragePrefix: "Prefixo" -objectStoragePrefixDesc: "Ele é armazenado neste diretório de prefixo." -objectStorageEndpoint: "Ponto final" -objectStorageEndpointDesc: "Especifique vazio para S3, caso contrário, especifique o ponto final para cada serviço. Especifique como''ou': '." -objectStorageRegion: "Região" -objectStorageRegionDesc: "Especifique uma região como 'xx-east-1'. Caso seu serviço não tenha o conceito de região, ele deve estar vazio ou 'us-east-1'." -objectStorageUseSSL: "Usar SSL" -objectStorageUseSSLDesc: "Desative-o se não quiser usar https para conexões de API" -objectStorageUseProxy: "Usar proxy" -objectStorageUseProxyDesc: "Se você não usa proxy para conexão de API, desative-o." -objectStorageSetPublicRead: "Definir 'public-read' ao fazer o upload" -serverLogs: "Registro do servidor" -deleteAll: "Apagar Tudo" -showFixedPostForm: "Exibir o formulário de postagem na parte superior da linha do tempo" -newNoteRecived: "Nova nota recebida" -sounds: "Sons" -listen: "Ouvir" -none: "Nenhum" -showInPage: "Ver na página" -popout: "Sair" -volume: "Volume" -masterVolume: "volume principal" -details: "Detalhes" -output: "Resultado" -smtpHost: "hospedeiro" -smtpUser: "Nome de usuário" -smtpPass: "Senha" -clearCache: "Limpar memória transitória" -info: "Informações" -user: "Usuários" -searchByGoogle: "Buscar" -file: "Ficheiros" -_email: - _follow: - title: "Você tem um novo seguidor" -_mfm: - mention: "Menção" - quote: "Citar" - emoji: "Emoji personalizado" - search: "Buscar" -_theme: - keys: - mention: "Menção" - renote: "Repostar" -_sfx: - note: "Posts" - notification: "Notificações" - chat: "Chat" -_widgets: - notifications: "Notificações" - timeline: "Timeline" - activity: "atividade" - federation: "União" - jobQueue: "Fila de trabalhos" -_cw: - show: "Carregar mais" -_visibility: - home: "casa" - followers: "Seguidores" -_profile: - name: "Nome" - username: "Nome de usuário" -_exportOrImport: - followingList: "Seguindo" - muteList: "Silenciar" - blockingList: "Bloquear" - userLists: "Listas" -_charts: - federation: "União" -_timelines: - home: "casa" -_pages: - blocks: - image: "imagem" - _button: - _action: - _pushEvent: - event: "Nome do evento" - message: "Mostrar mensagem quando ativado" - variable: "Variável a mandar" - no-variable: "Nenhum" - callAiScript: "Invocar AiScript" - _callAiScript: - functionName: "Nome da função" - radioButton: "Escolha" - _radioButton: - values: "Lista de escolhas separadas por quebras de texto" - script: - categories: - logical: "Operação lógica" - operation: "Cálculos" - comparison: "Comparação" - list: "Listas" - blocks: - _strReplace: - arg2: "Texto que irá ser substituído" - arg3: "Substituir com" - strReverse: "Virar texto" - join: "Sequência de texto" - _join: - arg1: "Listas" - arg2: "Separador" - add: "Somar" - _add: - arg1: "A" - arg2: "B" - subtract: "Subtrair" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Multiplicar" - _multiply: - arg1: "A" - arg2: "B" - divide: "Dividir" - _divide: - arg1: "A" - arg2: "B" - mod: "O resto de" - _mod: - arg1: "A" - arg2: "B" - round: "Arredondar decimal" - _round: - arg1: "Numérico" - eq: "A e B são iguais" - _eq: - arg1: "A" - arg2: "B" - notEq: "A e B são diferentes" - _notEq: - arg1: "A" - arg2: "B" - and: "A e B" - _and: - arg1: "A" - arg2: "B" - or: "A OU B" - _or: - arg1: "A" - arg2: "B" - lt: "< A é menor do que B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A é maior do que B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A é maior ou igual a B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A é maior ou igual a B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Galho" - _if: - arg1: "Se" - arg2: "Então" - arg3: "Se não" - not: "NÃO" - _not: - arg1: "NÃO" - random: "Aleatório" - _random: - arg1: "Probabilidade" - rannum: "Numeral aleatório" - _rannum: - arg1: "Valor mínimo" - arg2: "Valor máximo" - randomPick: "Escolher aleatoriamente de uma lista" - _randomPick: - arg1: "Listas" - dailyRandom: "Aleatório (Muda uma vez por dia para cada usuário)" - _dailyRandom: - arg1: "Probabilidade" - dailyRannum: "Numeral aleatório (Muda uma vez por dia para cada usuário)" - _dailyRannum: - arg1: "Valor mínimo" - arg2: "Valor máximo" - dailyRandomPick: "Escolher aleatoriamente de uma lista (Muda uma vez por dia para cada usuário)" - _dailyRandomPick: - arg1: "Listas" - seedRandom: "Aleatório (com semente)" - _seedRandom: - arg1: "Semente" - arg2: "Probabilidade" - seedRannum: "Número aleatório (com semente)" - _seedRannum: - arg1: "Semente" - arg2: "Valor mínimo" - arg3: "Valor máximo" - seedRandomPick: "Escolher aleatoriamente de uma lista (com uma semente)" - _seedRandomPick: - arg1: "Semente" - arg2: "Listas" - DRPWPM: "Escolher aleatoriamente de uma lista ponderada (Muda uma vez por dia para cada usuário)" - _DRPWPM: - arg1: "Lista de texto" - pick: "Escolhe a partir da lista" - _pick: - arg1: "Listas" - arg2: "Posição" - listLen: "Pegar comprimento da lista" - _listLen: - arg1: "Listas" - number: "Numérico" - stringToNumber: "Texto para numérico" - _stringToNumber: - arg1: "Texto" - numberToString: "Numérico para texto" - _numberToString: - arg1: "Numérico" - splitStrByLine: "Dividir texto por quebras" - _splitStrByLine: - arg1: "Texto" - ref: "Variável" - aiScriptVar: "Variável AiScript" - fn: "Função" - _fn: - slots: "Espaços" - slots-info: "Separar cada espaço com uma quebra de texto" - arg1: "Resultado" - for: "Repetição 'for'" - _for: - arg1: "Número de repetições" - arg2: "Ação" - typeError: "Espaço {slot} aceita valores de tipo \"{expect}\", mas o valor dado é do tipo \"{actual}\"!" - thereIsEmptySlot: "O espaço {slot} está vazio!" - types: - string: "Texto" - number: "Numérico" - array: "Listas" - stringArray: "Lista de texto" - emptySlot: "Espaço vazio" - enviromentVariables: "Variáveis de ambiente" - pageVariables: "Variáveis de página" -_relayStatus: - requesting: "Pendente" - accepted: "Aprovado" - rejected: "Recusado" -_notification: - fileUploaded: "Carregamento de arquivo efetuado com sucesso" - youGotMention: "{name} te mencionou" - youGotReply: "{name} te respondeu" - youGotQuote: "{name} te citou" - youGotPoll: "{name} votou em sua enquete" - youGotMessagingMessageFromUser: "{name} te mandou uma mensagem de bate-papo" - youGotMessagingMessageFromGroup: "Uma mensagem foi mandada para o grupo {name}" - youWereFollowed: "Você tem um novo seguidor" - youReceivedFollowRequest: "Você recebeu um pedido de seguimento" - yourFollowRequestAccepted: "Seu pedido de seguimento foi aceito" - youWereInvitedToGroup: "{userName} te convidou para um grupo" - pollEnded: "Os resultados da enquete agora estão disponíveis" - emptyPushNotificationMessage: "As notificações de alerta foram atualizadas" - _types: - all: "Todos" - follow: "Seguindo" - mention: "Menção" - reply: "Respostas" - renote: "Repostar" - quote: "Citar" - reaction: "Reações" - pollVote: "Votações em enquetes" - pollEnded: "Enquetes terminando" - receiveFollowRequest: "Recebeu pedidos de seguimento" - followRequestAccepted: "Aceitou pedidos de seguimento" - groupInvited: "Convites de grupo" - app: "Notificações de aplicativos conectados" - _actions: - followBack: "te seguiu de volta" - reply: "Responder" - renote: "Repostar" -_deck: - alwaysShowMainColumn: "Sempre mostrar a coluna principal" - columnAlign: "Alinhar colunas" - addColumn: "Adicionar coluna" - swapLeft: "Trocar de posição com a coluna à esquerda" - swapRight: "Trocar de posição com a coluna à direita" - swapUp: "Trocar de posição com a coluna acima" - swapDown: "Trocar de posição com a coluna abaixo" - popRight: "Acoplar coluna à direita" - profile: "Perfil" - _columns: - main: "Principal" - widgets: "Widgets" - notifications: "Notificações" - tl: "Timeline" - antenna: "Antenas" - list: "Listas" - mentions: "Menções" - direct: "Notas diretas" diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml deleted file mode 100644 index 8254994b2..000000000 --- a/locales/ro-RO.yml +++ /dev/null @@ -1,729 +0,0 @@ ---- -_lang_: "Română" -headlineMisskey: "O rețea conectată prin note" -introMisskey: "Bine ai venit! Misskey este un serviciu de microblogging open source și decentralizat.\nCreează \"note\" cu care să îți poți împărți gândurile cu oricine din jurul tău. 📡\nCu \"reacții\" îți poți expirma rapid părerea despre notele oricui. 👍\nHai să explorăm o lume nouă! 🚀" -monthAndDay: "{day}/{month}" -search: "Caută" -notifications: "Notificări" -username: "Nume de utilizator" -password: "Parolă" -forgotPassword: "Am uitat parola" -fetchingAsApObject: "Se aduce din Fediverse..." -ok: "OK" -gotIt: "Am înțeles!" -cancel: "Anulează" -enterUsername: "Introdu numele de utilizator" -renotedBy: "Re-notat de {user}" -noNotes: "Nicio notă" -noNotifications: "Nicio notificare" -instance: "Instanță" -settings: "Setări" -basicSettings: "Setări generale" -otherSettings: "Alte Setări" -openInWindow: "Deschide într-o fereastră" -profile: "Profil" -timeline: "Cronologie" -noAccountDescription: "Acest utilizator încă nu a scris un bio." -login: "Autentifică-te" -loggingIn: "Se autentifică" -logout: "Deconectează-te" -signup: "Înregistrează-te" -uploading: "Se încarcă" -save: "Salvează" -users: "Utilizatori" -addUser: "Adăugă utilizator" -favorite: "Adaugă la favorite" -favorites: "Favorite" -unfavorite: "Elimină din favorite" -favorited: "Adăugat la favorite." -alreadyFavorited: "Deja adăugat la favorite." -cantFavorite: "Nu se poate adăuga la favorite." -pin: "Fixează pe profil" -unpin: "Anulati fixare" -copyContent: "Copiază conținutul" -copyLink: "Copiază link-ul" -delete: "Şterge" -deleteAndEdit: "Șterge și editează" -deleteAndEditConfirm: "Ești sigur că vrei să ștergi această notă și să o editezi? Vei pierde reacțiile, re-notele și răspunsurile acesteia." -addToList: "Adaugă în listă" -sendMessage: "Trimite un mesaj" -copyUsername: "Copiază numele de utilizator" -searchUser: "Caută un utilizator" -reply: "Răspunde" -loadMore: "Incarcă mai mult" -showMore: "Arată mai mult" -showLess: "Închide" -youGotNewFollower: "te-a urmărit" -receiveFollowRequest: "Cerere de urmărire primită" -followRequestAccepted: "Cerere de urmărire acceptată" -mention: "Mențiune" -mentions: "Mențiuni" -directNotes: "Note directe" -importAndExport: "Importă / Exportă" -import: "Importă" -export: "Exportă" -files: "Fișiere" -download: "Descarcă" -driveFileDeleteConfirm: "Ești sigur ca vrei să ștergi fișierul \"{name}\"? Notele atașate fișierului vor fi șterse și ele." -unfollowConfirm: "Ești sigur ca vrei să nu mai urmărești pe {name}?" -exportRequested: "Ai cerut un export. S-ar putea să ia un pic. Va fi adăugat in Drive-ul tău odată completat." -importRequested: "Ai cerut un import. S-ar putea să ia un pic." -lists: "Liste" -noLists: "Nu ai nici o listă" -note: "Notă" -notes: "Note" -following: "Urmărești" -followers: "Urmăritori" -followsYou: "Te urmărește" -createList: "Creează listă" -manageLists: "Gestionează listele" -error: "Eroare" -somethingHappened: "A survenit o eroare" -retry: "Reîncearcă" -pageLoadError: "A apărut o eroare la încărcarea paginii." -pageLoadErrorDescription: "De obicei asta este cauzat de o eroare de rețea sau cache-ul browser-ului. Încearcă să cureți cache-ul și apoi să încerci din nou puțin mai târziu." -serverIsDead: "Serverul nu răspunde. Te rugăm să aștepți o perioadă și să încerci din nou." -youShouldUpgradeClient: "Pentru a vedea această pagină, te rugăm să îți actualizezi clientul." -enterListName: "Introdu un nume pentru listă" -privacy: "Confidenţialitate" -makeFollowManuallyApprove: "Fă cererile de urmărire să necesite aprobare" -defaultNoteVisibility: "Vizibilitate implicită" -follow: "Urmărești" -followRequest: "Trimite cerere de urmărire" -followRequests: "Cereri de urmărire" -unfollow: "Nu mai urmări" -followRequestPending: "Cerere de urmărire în așteptare" -enterEmoji: "Introdu un emoji" -renote: "Re-notează" -unrenote: "Ia înapoi re-nota" -renoted: "Re-notat." -cantRenote: "Această postare nu poate fi re-notată." -cantReRenote: "O re-notă nu poate fi re-notată." -quote: "Citează" -pinnedNote: "Notă fixată" -pinned: "Fixat pe profil" -you: "Tu" -clickToShow: "Click pentru a afișa" -sensitive: "NSFW" -add: "Adaugă" -reaction: "Reacție" -reactionSetting: "Reacții care să apară in selectorul de reacții" -reactionSettingDescription2: "Trage pentru a rearanja, apasă pe \"+\" pentru a adăuga." -rememberNoteVisibility: "Amintește setarea de vizibilitate a notelor" -attachCancel: "Înlătură atașament" -markAsSensitive: "Marchează ca NSFW" -unmarkAsSensitive: "Demarchează ca NSFW" -enterFileName: "Introduceţi numele fişierului" -mute: "Amuțește" -unmute: "Înlătură amuțirea" -block: "Blochează" -unblock: "Deblochează" -suspend: "Suspendă" -unsuspend: "Anulează suspendare" -blockConfirm: "Ești sigur că vrei să blochezi acest cont?" -unblockConfirm: "Ești sigur ca vrei să deblochezi acest cont?" -suspendConfirm: "Ești sigur ca vrei să suspendezi acest cont?" -unsuspendConfirm: "Ești sigur ca vrei să nu mai suspendezi acest cont?" -selectList: "Selectează o listă" -selectAntenna: "Selectează o antenă" -selectWidget: "Selectați un widget" -editWidgets: "Editează widget-urile" -editWidgetsExit: "Terminat" -customEmojis: "Emoji personalizat" -emoji: "Emoji" -emojis: "Emoji-uri" -emojiName: "Numele emoji-ului" -emojiUrl: "URL-ul emoji-ului" -addEmoji: "Adaugă un emoji" -settingGuide: "Setări recomandate" -cacheRemoteFiles: "Ține fișierele externe in cache" -cacheRemoteFilesDescription: "Când această setare este dezactivată, fișierele externe sunt încărcate direct din instanța externă. Dezactivarea va scădea utilizarea spațiului de stocare, dar va crește traficul, deoarece thumbnail-urile nu vor fi generate." -flagAsBot: "Marchează acest cont ca bot" -flagAsBotDescription: "Activează această opțiune dacă acest cont este controlat de un program. Daca e activată, aceasta va juca rolul unui indicator pentru dezvoltatori pentru a preveni interacțiunea în lanțuri infinite cu ceilalți boți și ajustează sistemele interne al Misskey pentru a trata acest cont drept un bot." -flagAsCat: "Marchează acest cont ca pisică" -flagAsCatDescription: "Activează această opțiune dacă acest cont este o pisică." -flagShowTimelineReplies: "Arată răspunsurile în cronologie" -flagShowTimelineRepliesDescription: "Dacă e activată vor fi arătate în cronologie răspunsurile utilizatorilor către alte notele altor utilizatori." -autoAcceptFollowed: "Aprobă automat cererile de urmărire de la utilizatorii pe care îi urmărești" -addAccount: "Adaugă un cont" -loginFailed: "Autentificare eșuată" -showOnRemote: "Vezi mai multe pe instanța externă" -general: "General" -wallpaper: "Imagine de fundal" -setWallpaper: "Setați imaginea de fundal" -removeWallpaper: "Șterge imagine de fundal" -searchWith: "Caută: {q}" -youHaveNoLists: "Nu ai nici o listă" -followConfirm: "Ești sigur ca vrei să urmărești pe {name}?" -proxyAccount: "Cont proxy" -proxyAccountDescription: "Un cont proxy este un cont care se comportă ca un urmăritor extern pentru utilizatorii puși sub anumite condiții. De exemplu, când un cineva adaugă un utilizator extern intr-o listă, activitatea utilizatorului extern nu va fi adusă în instanță daca nici un utilizator local nu urmărește acel utilizator, așa că în schimb contul proxy îl va urmări." -host: "Gazdă" -selectUser: "Selectează un utilizator" -recipient: "Destinatar" -annotation: "Adnotări" -federation: "Federație" -instances: "Instanțe" -registeredAt: "Înregistrat în" -latestRequestSentAt: "Ultima cerere trimisă" -latestRequestReceivedAt: "Ultima cerere primită" -latestStatus: "Ultimul status" -storageUsage: "Utilizare stocare" -charts: "Diagrame" -perHour: "Pe oră" -perDay: "Pe zi" -stopActivityDelivery: "Nu mai trimite activități" -blockThisInstance: "Blochează această instanță" -operations: "Operațiuni" -software: "Software" -version: "Versiune" -metadata: "Metadata" -withNFiles: "{n} fișier(e)" -monitor: "Monitor" -jobQueue: "coada de job-uri" -cpuAndMemory: "CPU și memorie" -network: "Rețea" -disk: "Disk" -instanceInfo: "Informații despre instanță" -statistics: "Statistici" -clearQueue: "Șterge coada" -clearQueueConfirmTitle: "Ești sigur că vrei să cureți coada?" -clearQueueConfirmText: "Orice notă rămasă în coadă nu va fi federată. De obicei această operație nu este necesară." -clearCachedFiles: "Golește cache-ul" -clearCachedFilesConfirm: "Ești sigur că vrei să ștergi toate fișierele externe din cache?" -blockedInstances: "Instanțe blocate" -blockedInstancesDescription: "Scrie hostname-urile instanțelor pe care dorești să le blochezi. Instanțele listate nu vor mai putea să comunice cu această instanță." -muteAndBlock: "Amuțiri și Blocări" -mutedUsers: "Utilizatori amuțiți" -blockedUsers: "Utilizatori blocați" -noUsers: "Niciun utilizator" -editProfile: "Editează profilul" -noteDeleteConfirm: "Ești sigur că vrei să ștergi această notă?" -pinLimitExceeded: "Nu poți mai fixa mai multe note" -intro: "Misskey s-a instalat! Te rog crează un utilizator admin." -done: "Gata" -processing: "Se procesează" -preview: "Previzualizare" -default: "Prestabilit" -noCustomEmojis: "Nu e niciun emoji" -noJobs: "Nu e niciun job" -federating: "Federație" -blocked: "Blocat" -suspended: "Suspendat" -all: "Tot" -subscribing: "Abonare" -publishing: "Publicare" -notResponding: "Nu răspunde" -instanceFollowing: "Urmărind în instanță" -instanceFollowers: "Urmăritori ai instanței" -instanceUsers: "Utilizatori ai acestei instanțe" -changePassword: "Schimbă parolă" -security: "Securitate" -retypedNotMatch: "Intrările nu corespund" -currentPassword: "Parola curentă" -newPassword: "Parola nouă" -newPasswordRetype: "Rescrie parola nouă" -attachFile: "Atașează fișiere" -more: "Mai mult!" -featured: "Evidențiat" -usernameOrUserId: "Nume sau ID de utilizator" -noSuchUser: "Utilizatorul nu a fost găsit" -lookup: "Privire" -announcements: "Anunțuri" -imageUrl: "URL-ul imaginii" -remove: "Şterge" -removed: "Șterș cu succes" -removeAreYouSure: "Ești sigur că vrei să înlături {x}?" -deleteAreYouSure: "Ești sigur că vrei să ștergi {x}?" -resetAreYouSure: "Sigur vrei să resetezi?" -saved: "Salvat" -messaging: "Chat" -upload: "Încarcă" -keepOriginalUploading: "Păstrează imaginea originală" -keepOriginalUploadingDescription: "Salvează imaginea originala încărcată fără modificări. Dacă e oprită, o versiune pentru afișarea pe web va fi generată la încărcare." -fromDrive: "Din Drive" -fromUrl: "Din URL" -uploadFromUrl: "Încarcă dintr-un URL" -uploadFromUrlDescription: "URL-ul fișierului pe care dorești să îl încarci" -uploadFromUrlRequested: "Încărcare solicitată" -uploadFromUrlMayTakeTime: "S-ar putea să ia puțin până se finalizează încărcarea." -explore: "Explorează" -messageRead: "Citit" -noMoreHistory: "Nu există mai mult istoric" -startMessaging: "Începe un chat nou" -nUsersRead: "citit de {n}" -agreeTo: "Sunt de acord cu {0}" -tos: "Termenii de utilizare" -start: "Să începem" -home: "Acasă" -remoteUserCaution: "Deoarece acest utilizator este dintr-o instanță externă, informația afișată poate fi incompletă." -activity: "Activitate" -images: "Imagini" -birthday: "Zi de naștere" -yearsOld: "{age} ani" -registeredDate: "Data înregistrării" -location: "Locație" -theme: "Teme" -themeForLightMode: "Temă folosită pentru Modul Luminat" -themeForDarkMode: "Temă folosită pentru Modul Întunecat" -light: "Luminos" -dark: "Întunecat" -lightThemes: "Teme luminoase" -darkThemes: "Teme întunecate" -syncDeviceDarkMode: "Sincronizează Modul Întunecat cu setările dispozitivului" -drive: "Drive" -fileName: "Nume fișier" -selectFile: "Alege un fisier" -selectFiles: "Alege fișiere" -selectFolder: "Selectează un folder" -selectFolders: "Selectează folderele" -renameFile: "Redenumește fișier" -folderName: "Nume folder" -createFolder: "Crează folder" -renameFolder: "Redenumește acest folder" -deleteFolder: "Șterge acest folder" -addFile: "Adăugați un fișier" -emptyDrive: "Drive-ul tău e gol" -emptyFolder: "Folder-ul acesta este gol" -unableToDelete: "Nu se poate șterge" -inputNewFileName: "Introdu un nou nume de fișier" -inputNewDescription: "Introdu o descriere nouă" -inputNewFolderName: "Introdu un nume de folder nou" -circularReferenceFolder: "Destinația folderului este un subfolder al folderului pe care dorești să îl muți." -hasChildFilesOrFolders: "Acest folder nu este gol, așa că nu poate fi șters." -copyUrl: "Copiază URL" -rename: "Redenumește" -avatar: "Avatar" -banner: "Banner" -nsfw: "NSFW" -whenServerDisconnected: "Când pierzi conexiunea cu serverul" -disconnectedFromServer: "Conecțiunea cu serverul a fost pierdută" -reload: "Reîncarcă" -doNothing: "Ignoră" -reloadConfirm: "Ai dori să reîmprospătezi cronologia?" -watch: "Vezi" -unwatch: "Oprește-te din văzut" -accept: "Acceptă" -reject: "Respinge" -normal: "Normal" -instanceName: "Numele instanței" -instanceDescription: "Descrierea instanței" -maintainerName: "Administrator" -maintainerEmail: "Email-ul administratorului" -tosUrl: "URL-ul Termenilor de utilizare" -thisYear: "An" -thisMonth: "Lună" -today: "Azi" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Pagini" -integration: "Integrare" -connectService: "Conectează" -disconnectService: "Deconectează" -enableLocalTimeline: "Activează cronologia locală" -enableGlobalTimeline: "Activeaza cronologia globală" -disablingTimelinesInfo: "Administratorii și Moderatorii vor avea mereu access la toate cronologiile, chiar dacă nu sunt activate." -registration: "Inregistrare" -enableRegistration: "Activează înregistrările pentru utilizatori noi" -invite: "Invită" -driveCapacityPerLocalAccount: "Capacitatea Drive-ului per utilizator local" -driveCapacityPerRemoteAccount: "Capacitatea Drive-ului per utilizator extern" -inMb: "În megabytes" -iconUrl: "URL-ul iconiței" -bannerUrl: "URL-ul imaginii de banner" -backgroundImageUrl: "URL-ul imaginii de fundal" -basicInfo: "Informații de bază" -pinnedUsers: "Utilizatori fixați" -pinnedUsersDescription: "Scrie utilizatorii, separați prin pauză de rând, care vor fi fixați pe pagina \"Explorează\"." -pinnedPages: "Pagini fixate" -pinnedPagesDescription: "Introdu linkurile Paginilor pe care le vrei fixate in vâruful paginii acestei instanțe, separate de pauze de rând." -pinnedClipId: "ID-ul clip-ului pe care să îl fixezi" -pinnedNotes: "Notă fixată" -hcaptcha: "hCaptcha" -enableHcaptcha: "Activează hCaptcha" -hcaptchaSiteKey: "Site key" -hcaptchaSecretKey: "Secret key" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Activează reCAPTCHA" -recaptchaSiteKey: "Site key" -recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Folosirea mai multor sisteme Captcha poate cauza interferență între acestea. Ai dori să dezactivezi alte sisteme Captcha acum active? Dacă preferi să rămână activate, apasă Anulare." -antennas: "Antene" -manageAntennas: "Gestionează Antenele" -name: "Nume" -antennaSource: "Sursa antenei" -antennaKeywords: "Cuvinte cheie ascultate" -antennaExcludeKeywords: "Cuvinte cheie excluse" -antennaKeywordsDescription: "Separă cu spații pentru o condiție ȘI sau cu o întrerupere de rând pentru o condiție SAU." -notifyAntenna: "Notifică-mă pentru note noi" -withFileAntenna: "Doar note cu fișiere" -enableServiceworker: "Activează ServiceWorker" -antennaUsersDescription: "Scrie un nume de utilizator per linie" -caseSensitive: "Sensibil la majuscule și minuscule" -withReplies: "Include răspunsuri" -connectedTo: "Următoarele conturi sunt conectate" -notesAndReplies: "Note și răspunsuri" -withFiles: "Incluzând fișiere" -silence: "Amuțește" -silenceConfirm: "Ești sigur că vrei să amuțești acest utilizator?" -unsilence: "Anulează amuțirea" -unsilenceConfirm: "Ești sigur că vrei să anulezi amuțirea acestui utilizator?" -popularUsers: "Utilizatori populari" -recentlyUpdatedUsers: "Utilizatori activi recent" -recentlyRegisteredUsers: "Utilizatori ce s-au alăturat recent" -recentlyDiscoveredUsers: "Utilizatori descoperiți recent" -exploreUsersCount: "Aici sunt {count} utilizatori" -exploreFediverse: "Explorează Fediverse-ul" -popularTags: "Taguri populare" -userList: "Liste" -about: "Despre" -aboutMisskey: "Despre Misskey" -administrator: "Administrator" -token: "Token" -twoStepAuthentication: "Autentificare în doi pași" -moderator: "Moderator" -nUsersMentioned: "Menționat de {n} utilizatori" -securityKey: "Cheie de securitate" -securityKeyName: "Numele cheii" -registerSecurityKey: "Înregistrează o cheie de securitate" -lastUsed: "Ultima utilizată" -unregister: "Dezînregistrează" -passwordLessLogin: "Autentificare fără parolă" -resetPassword: "Resetează parola" -newPasswordIs: "Noua parolă este \"{password}\"" -reduceUiAnimation: "Redu animațiile interfeței" -share: "Distribuie" -notFound: "Nu a fost găsit" -notFoundDescription: "N-a fost găsită nicio pagină cu acest URL." -uploadFolder: "Folder implicit pentru încărcări" -cacheClear: "Golește cache-ul" -markAsReadAllNotifications: "Marchează toate notificările drept citit" -markAsReadAllUnreadNotes: "Marchează toate notele drept citit" -markAsReadAllTalkMessages: "Marchează toate mesajele drept citit" -help: "Ajutor" -inputMessageHere: "Introdu un mesaj aici" -close: "Închide" -group: "Grup" -groups: "Grupuri" -createGroup: "Crează un grup" -ownedGroups: "Grupuri deținute" -joinedGroups: "Grupuri alăturate" -invites: "Invită" -groupName: "Numele grupului" -members: "Membri" -transfer: "Transferă" -messagingWithUser: "Chat privat" -messagingWithGroup: "Chat de grup" -title: "Titlu" -text: "Text" -enable: "Activează" -next: "Următorul" -retype: "Introdu din nou" -noteOf: "Notă de {user}" -inviteToGroup: "Invită în grup" -quoteAttached: "Citat" -quoteQuestion: "Vrei să adaugi ca citat?" -noMessagesYet: "Niciun mesaj încă" -newMessageExists: "Ai mesaje noi" -onlyOneFileCanBeAttached: "Poți atașa un singur fișier la un mesaj" -signinRequired: "Te rog autentifică-te" -invitations: "Invită" -invitationCode: "Cod de invitație" -checking: "Se verifică..." -available: "Disponibil" -unavailable: "Indisponibil" -usernameInvalidFormat: "Poți folosi litere mari și mici, numere și underscore-uri." -tooShort: "Prea scurt" -tooLong: "Prea lung" -weakPassword: "Parolă slabă" -normalPassword: "Parolă medie" -strongPassword: "Parolă puternică" -passwordMatched: "Se potrivește!" -passwordNotMatched: "Nu se potrivește" -signinWith: "Autentifică-te cu {x}" -signinFailed: "Nu se poate autentifica. Numele de utilizator sau parola introduse sunt incorecte." -tapSecurityKey: "Apasă pe cheia ta de securitate." -or: "Sau" -language: "Limbă" -uiLanguage: "Limba interfeței" -groupInvited: "Ai fost invitat într-un grup" -aboutX: "Despre {x}" -useOsNativeEmojis: "Folosește emojiuri native OS-ului" -disableDrawer: "Nu folosi meniuri în stil sertar" -youHaveNoGroups: "Nu ai niciun grup" -joinOrCreateGroup: "Primește o invitație într-un grup sau creează unul nou." -noHistory: "Nu există istoric" -signinHistory: "Istoric autentificări" -disableAnimatedMfm: "Dezactivează MFM cu animații" -doing: "Se procesează..." -category: "Categorie" -tags: "Etichete" -docSource: "Sursa acestui document" -createAccount: "Creează un cont" -existingAccount: "Cont existent" -regenerate: "Regenerează" -fontSize: "Mărimea fontului" -noFollowRequests: "Nu ai nicio cerere de urmărire în așteptare" -openImageInNewTab: "Deschide imaginile în taburi noi" -dashboard: "Panou de control" -local: "Local" -remote: "Extern" -total: "Total" -weekOverWeekChanges: "Schimbări până săptămâna trecută" -dayOverDayChanges: "Schimbări până ieri" -appearance: "Aspect" -clientSettings: "Setări client" -accountSettings: "Setări cont" -promotion: "Promovat" -promote: "Promovează" -numberOfDays: "Numărul zilelor" -hideThisNote: "Ascunde această notă" -showFeaturedNotesInTimeline: "Arată notele recomandate în cronologii" -objectStorage: "Object Storage" -useObjectStorage: "Folosește Object Storage" -objectStorageBaseUrl: "URL de bază" -objectStorageBaseUrlDesc: "URL-ul este folosit pentru referință. Specifică URL-ul CDN-ului sau Proxy-ului tău dacă folosești unul. Pentru S3 folosește 'https://.s3.amazonaws.com' și pentru GCS sau servicii echivalente folosește 'https://storage.googleapis.com/', etc." -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Te rog specifică numele bucket-ului furnizorului tău." -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Fișierele vor fi stocate sub directoare cu acest prefix." -objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Lasă acest câmp gol dacă folosești AWS S3, dacă nu specifică endpoint-ul ca '' sau ':', depinzând de ce serviciu folosești." -objectStorageRegion: "Regiune" -objectStorageRegionDesc: "Specifică o regiune precum 'xx-east-1'. Dacă serviciul tău nu face distincția între regiuni lasă acest câmp gol sau introdu 'us-east-1'." -objectStorageUseSSL: "Folosește SSl" -objectStorageUseSSLDesc: "Oprește această opțiune dacă nu vei folosi HTTPS pentru conexiunile API-ului" -objectStorageUseProxy: "Conectează-te prin Proxy" -objectStorageUseProxyDesc: "Oprește această opțiune dacă vei nu folosi un Proxy pentru conexiunile API-ului" -objectStorageSetPublicRead: "Setează \"public-read\" pentru încărcare" -serverLogs: "Loguri server" -deleteAll: "Șterge tot" -showFixedPostForm: "Arată caseta de postare în vârful cronologie" -newNoteRecived: "Sunt note noi" -sounds: "Sunete" -listen: "Ascultă" -none: "Nimic" -showInPage: "Arată în pagină" -popout: "Scoate în afară" -volume: "Volum" -masterVolume: "Volumul principal" -details: "Detalii" -chooseEmoji: "Alege un emoji" -unableToProcess: "Această operație nu poate fi completată" -recentUsed: "Folosit recent" -install: "Instalează" -uninstall: "Dezinstalează" -installedApps: "Aplicații autorizate" -nothing: "Nu e nimic de văzut aici" -installedDate: "Autorizat la data de" -lastUsedDate: "Folosit ultima oara la" -state: "Stare" -sort: "Sortează" -ascendingOrder: "Crescător" -descendingOrder: "Descrescător" -scratchpad: "Scratchpad" -scratchpadDescription: "Scratchpad-ul oferă un mediu de experimentare în AiScript. Poți scrie, executa și verifica rezultatele acestuia interacționând cu Misskey în el." -output: "Ieșire" -script: "Script" -disablePagesScript: "Dezactivează AiScript în Pagini" -updateRemoteUser: "Actualizează informațiile utilizatorului extern" -deleteAllFiles: "Șterge toate fișierele" -deleteAllFilesConfirm: "Ești sigur că vrei să ștergi toate fișierele?" -removeAllFollowing: "Dezurmărește toți utilizatorii urmăriți" -removeAllFollowingDescription: "Asta va dez-urmări toate conturile din {host}. Te rog execută asta numai dacă instanța, de ex., nu mai există." -userSuspended: "Acest utilizator a fost suspendat." -userSilenced: "Acest utilizator a fost setat silențios." -yourAccountSuspendedTitle: "Acest cont a fost suspendat" -yourAccountSuspendedDescription: "Acest cont a fost suspendat din cauza încălcării termenilor de serviciu al serverului sau ceva similar. Contactează administratorul dacă ai dori să afli un motiv mai detaliat. Te rog nu crea un cont nou." -menu: "Meniu" -divider: "Separator" -addItem: "Adaugă element" -relays: "Relee" -addRelay: "Adaugă Releu" -inboxUrl: "URL-ul inbox-ului" -addedRelays: "Relee adăugate" -serviceworkerInfo: "Trebuie să fie activat pentru notificări push." -deletedNote: "Notă ștearsă" -invisibleNote: "Note ascunse" -enableInfiniteScroll: "Încarcă mai mult automat" -visibility: "Vizibilitate" -poll: "Sondaj" -useCw: "Ascunde conținutul" -enablePlayer: "Deschide player-ul video" -disablePlayer: "Închide player-ul video" -expandTweet: "Expandează tweet" -themeEditor: "Editor de teme" -description: "Descriere" -describeFile: "Adaugă titrări" -enterFileDescription: "Introdu titrările" -author: "Autor" -leaveConfirm: "Ai schimbări nesalvate. Vrei să renunți la ele?" -manage: "Gestionare" -plugins: "Pluginuri" -deck: "Deck" -undeck: "Părăsește Deck" -useBlurEffectForModal: "Folosește efect de blur pentru modale" -width: "Lăţime" -height: "Înălţime" -large: "Mare" -medium: "Mediu" -small: "Mic" -generateAccessToken: "Generează token de acces" -permission: "Permisiuni" -enableAll: "Actevează tot" -disableAll: "Dezactivează tot" -tokenRequested: "Acordă acces la cont" -pluginTokenRequestedDescription: "Acest plugin va putea să folosească permisiunile setate aici." -notificationType: "Tipul notificării" -edit: "Editează" -useStarForReactionFallback: "Folosește ★ ca fallback dacă emoji-ul este necunoscut" -emailServer: "Server email" -enableEmail: "Activează distribuția de emailuri" -emailConfigInfo: "Folosit pentru a confirma emailul tău în timpul logări dacă îți uiți parola" -email: "Email" -emailAddress: "Adresă de email" -smtpConfig: "Configurare Server SMTP" -smtpHost: "Gazdă" -smtpPort: "Port" -smtpUser: "Nume de utilizator" -smtpPass: "Parolă" -emptyToDisableSmtpAuth: "Lasă username-ul și parola necompletate pentru a dezactiva verificarea SMTP" -smtpSecure: "Folosește SSL/TLS implicit pentru conecțiunile SMTP" -smtpSecureInfo: "Oprește opțiunea asta dacă STARTTLS este folosit" -testEmail: "Testează livrarea emailurilor" -wordMute: "Cuvinte pe mut" -regexpError: "Eroare de Expresie Regulată" -regexpErrorDescription: "A apărut o eroare în expresia regulată pe linia {line} al cuvintelor {tab} setate pe mut:" -instanceMute: "Instanțe pe mut" -userSaysSomething: "{name} a spus ceva" -makeActive: "Activează" -display: "Arată" -copy: "Copiază" -metrics: "Metrici" -overview: "Privire de ansamblu" -logs: "Log-uri" -delayed: "Întârziate" -database: "Baza de date" -channel: "Canale" -create: "Crează" -notificationSetting: "Setări notificări" -notificationSettingDesc: "Selectează tipurile de notificări care să fie arătate" -useGlobalSetting: "Folosește setările globale" -useGlobalSettingDesc: "Dacă opțiunea e pornită, notificările contului tău vor fi folosite. Dacă e oprită, configurația va fi individuală." -other: "Altele" -regenerateLoginToken: "Regenerează token de login" -regenerateLoginTokenDescription: "Regenerează token-ul folosit intern în timpul logări. În mod normal asta nu este necesar. Odată regenerat, toate dispozitivele vor fi delogate." -setMultipleBySeparatingWithSpace: "Separă mai multe intrări cu spații." -fileIdOrUrl: "Introdu ID sau URL" -behavior: "Comportament" -sample: "exemplu" -abuseReports: "Rapoarte" -reportAbuse: "Raportează" -reportAbuseOf: "Raportează {name}" -fillAbuseReportDescription: "Te rog scrie detaliile legate de acest raport. Dacă este despre o notă specifică, te rog introdu URL-ul ei." -abuseReported: "Raportul tău a fost trimis. Mulțumim." -reporter: "Raportorul" -reporteeOrigin: "Originea raportatului" -reporterOrigin: "Originea raportorului" -forwardReport: "Redirecționează raportul către instanța externă" -forwardReportIsAnonymous: "În locul contului tău, va fi afișat un cont anonim, de sistem, ca raportor către instanța externă." -send: "Trimite" -abuseMarkAsResolved: "Marchează raportul ca rezolvat" -openInNewTab: "Deschide în tab nou" -openInSideView: "Deschide în vedere laterală" -defaultNavigationBehaviour: "Comportament de navigare implicit" -editTheseSettingsMayBreakAccount: "Editarea acestor setări îți pot defecta contul." -waitingFor: "Așteptând pentru {x}" -random: "Aleator" -system: "Sistem" -switchUi: "Schimbă UI" -desktop: "Desktop" -clearCache: "Golește cache-ul" -info: "Despre" -user: "Utilizatori" -administration: "Gestionare" -middle: "Mediu" -sent: "Trimite" -searchByGoogle: "Caută" -file: "Fișiere" -_email: - _follow: - title: "te-a urmărit" -_mfm: - mention: "Mențiune" - quote: "Citează" - emoji: "Emoji personalizat" - search: "Caută" -_theme: - description: "Descriere" - keys: - mention: "Mențiune" - renote: "Re-notează" - divider: "Separator" -_sfx: - note: "Note" - notification: "Notificări" - chat: "Chat" -_widgets: - notifications: "Notificări" - timeline: "Cronologie" - activity: "Activitate" - federation: "Federație" - jobQueue: "coada de job-uri" -_cw: - show: "Incarcă mai mult" -_visibility: - home: "Acasă" - followers: "Urmăritori" -_profile: - name: "Nume" - username: "Nume de utilizator" -_exportOrImport: - followingList: "Urmărești" - muteList: "Amuțește" - blockingList: "Blochează" - userLists: "Liste" -_charts: - federation: "Federație" -_timelines: - home: "Acasă" -_pages: - blocks: - image: "Imagini" - script: - categories: - list: "Liste" - blocks: - _join: - arg1: "Liste" - _randomPick: - arg1: "Liste" - _dailyRandomPick: - arg1: "Liste" - _seedRandomPick: - arg2: "Liste" - _pick: - arg1: "Liste" - _listLen: - arg1: "Liste" - types: - array: "Liste" -_notification: - youWereFollowed: "te-a urmărit" - youWereInvitedToGroup: "Ai fost invitat într-un grup" - _types: - follow: "Urmărești" - mention: "Mențiune" - renote: "Re-notează" - quote: "Citează" - reaction: "Reacție" - _actions: - reply: "Răspunde" - renote: "Re-notează" -_deck: - _columns: - notifications: "Notificări" - tl: "Cronologie" - antenna: "Antene" - list: "Liste" - mentions: "Mențiuni" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index afce5ec02..4b40e638e 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -1,13 +1,11 @@ --- _lang_: "Русский" -headlineMisskey: "Сеть, сплетённая из заметок" introMisskey: "Добро пожаловать! Misskey — это децентрализованный сервис микроблогов с открытым исходным кодом.\nПишите «заметки» — делитесь со всеми происходящим вокруг или рассказывайте о себе 📡\nСтавьте «реакции» — выражайте свои чувства и эмоции от заметок других 👍\nОткройте для себя новый мир 🚀" monthAndDay: "{day}.{month}" search: "Поиск" notifications: "Уведомления" username: "Имя пользователя" password: "Пароль" -forgotPassword: "Пароль забыт" fetchingAsApObject: "Приём с других сайтов" ok: "Окей" gotIt: "Ясно!" @@ -35,9 +33,6 @@ addUser: "Добавить пользователя" favorite: "В избранное" favorites: "Избранное" unfavorite: "Убрать из избранного" -favorited: "Добавлено в избранное." -alreadyFavorited: "Уже есть в избранном." -cantFavorite: "Не удалось добавить в избранное." pin: "Закрепить в профиле" unpin: "Открепить от профиля" copyContent: "Скопировать содержимое" @@ -51,8 +46,6 @@ copyUsername: "Скопировать имя пользователя" searchUser: "Поиск людей" reply: "Ответить" loadMore: "Показать еще" -showMore: "Показать еще" -showLess: "Закрыть" youGotNewFollower: "Новый подписчик" receiveFollowRequest: "Получен запрос на подписку" followRequestAccepted: "Запрос на подписку принят" @@ -82,8 +75,6 @@ somethingHappened: "Что-то пошло не так" retry: "Повторить попытку" pageLoadError: "Не удалось загрузить страницу" pageLoadErrorDescription: "Обычно это случается из-за сбоев в сети или кэша браузера. Попробуйте очистить кэш, или подождать пару минут, а потом попытаться загрузить страницу снова." -serverIsDead: "Ответа от сервера нет. Пожалуйста, подождите немного и повторите попытку." -youShouldUpgradeClient: "Чтобы просмотреть эту страницу, пожалуйста, обновите ее." enterListName: "Название списка" privacy: "Конфиденциальность" makeFollowManuallyApprove: "Принимать подписчиков вручную" @@ -96,19 +87,15 @@ followRequestPending: "Нерассмотренный запрос на подп enterEmoji: "Введите эмодзи" renote: "Репост" unrenote: "Отмена репоста" -renoted: "Репост совершён." -cantRenote: "Это нельзя репостить." -cantReRenote: "Невозможно репостить репост." quote: "Цитата" pinnedNote: "Закреплённая заметка" -pinned: "Закрепить в профиле" you: "Вы" clickToShow: "Нажмите для просмотра" sensitive: "Содержимое не для всех" add: "Добавить" reaction: "Реакции" -reactionSetting: "Реакции, отображаемые в палитре" -reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте кнопкой «+»." +reactionSettingDescription: "Подберите, что будет у вас в палитре реакций" +reactionSettingDescription2: "Меняйте порядок перетаскиванием. Удаляйте нажатием." rememberNoteVisibility: "Запоминать видимость заметок" attachCancel: "Удалить вложение" markAsSensitive: "Отметить как «не для всех»" @@ -129,9 +116,8 @@ selectAntenna: "Выберите антенну" selectWidget: "Выберите виджет" editWidgets: "Редактировать виджеты" editWidgetsExit: "Готово" -customEmojis: "Собственные эмодзи" +customEmojis: "Эмодзи пользователя" emoji: "Эмодзи" -emojis: "Эмодзи" emojiName: "Название эмодзи" emojiUrl: "URL эмодзи" addEmoji: "Добавить эмодзи" @@ -139,13 +125,9 @@ settingGuide: "Рекомендуемые настройки" cacheRemoteFiles: "Кешировать внешние файлы" cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы." flagAsBot: "Аккаунт бота" -flagAsBotDescription: "Включите, если этот аккаунт управляется программой. Это позволит системе Misskey учитывать это, а также поможет разработчикам других ботов предотвратить бесконечные циклы взаимодействия." flagAsCat: "Аккаунт кота" -flagAsCatDescription: "Включите, и этот аккаунт будет помечен как кошачий." -flagShowTimelineReplies: "Показывать ответы на заметки в ленте" -flagShowTimelineRepliesDescription: "Если этот параметр включен, то в ленте, в дополнение к заметкам пользователя, отображаются ответы на другие заметки пользователя." autoAcceptFollowed: "Принимать подписчиков автоматически" -addAccount: "Добавить учётную запись" +addAcount: "Добавить аккаунт" loginFailed: "Неудачная попытка входа" showOnRemote: "Перейти к оригиналу на сайт" general: "Общее" @@ -204,8 +186,7 @@ done: "Готово" processing: "Обработка" preview: "Предпросмотр" default: "По умолчанию" -defaultValueIs: "По умолчанию: {value}" -noCustomEmojis: "Собственные эмодзи отсутствуют" +noCustomEmojis: "Эмодзи пользователя отсутствуют" noJobs: "Нет заданий" federating: "Федерируется" blocked: "Заблокировано" @@ -225,7 +206,7 @@ newPassword: "Новый пароль" newPasswordRetype: "Новый пароль (ещё раз)" attachFile: "Прикрепить файлы" more: "Ещё!" -featured: "Горячее" +featured: "Подборка" usernameOrUserId: "Имя или идентификатор пользователя" noSuchUser: "Таких пользователей не найдено" lookup: "Запрос" @@ -239,8 +220,6 @@ resetAreYouSure: "На самом деле сбросить?" saved: "Сохранено" messaging: "Сообщения" upload: "Загрузить" -keepOriginalUploading: "Сохранить исходное изображение" -keepOriginalUploadingDescription: "Сохраняет исходную версию при загрузке изображений. Если выключить, то при загрузке браузер генерирует изображение для публикации." fromDrive: "С «диска»" fromUrl: "По ссылке" uploadFromUrl: "Загрузить по ссылке" @@ -248,9 +227,10 @@ uploadFromUrlDescription: "Ссылка на файл, который хотит uploadFromUrlRequested: "Загрузка выбранного" uploadFromUrlMayTakeTime: "Загрузка может занять некоторое время." explore: "Обзор" +games: "Игры Misskey" messageRead: "Прочитали" noMoreHistory: "История закончилась" -startMessaging: "Начать общение" +startMessaging: "Отправить сообщение" nUsersRead: "Прочитали {n}" agreeTo: "Я соглашаюсь с {0}" tos: "Пользовательское соглашение" @@ -287,7 +267,6 @@ emptyDrive: "Диск пуст" emptyFolder: "Папка пуста" unableToDelete: "Удаление невозможно" inputNewFileName: "Введите имя нового файла" -inputNewDescription: "Введите новую подпись" inputNewFolderName: "Пожалуйста, введите новое имя папки!" circularReferenceFolder: "Вы пытаетесь переместить папку внутрь себя." hasChildFilesOrFolders: "Эта папка не пуста и не может быть удалена." @@ -319,27 +298,26 @@ monthX: "{month} месяц" yearX: "{year} год" pages: "Страницы" integration: "Интеграция" -connectService: "Подключиться" -disconnectService: "Отключиться" +connectSerice: "Соединение" +disconnectSerice: "Отключение" enableLocalTimeline: "Включить локальную ленту" enableGlobalTimeline: "Включить глобальную ленту" disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены." registration: "Регистрация" enableRegistration: "Разрешить регистрацию" invite: "Пригласить" +proxyRemoteFiles: "Файлы с других сайтов пускать через прокси" +proxyRemoteFilesDescription: "Когда эта настройка включена, файлы с других серверов, которые не сохранены или удалены для освобождения места, будут проксироваться локально, а так же для них будут создаваться миниатюры. Эта настройка не затрагивает хранение на сервере." driveCapacityPerLocalAccount: "Объём диска на одного локального пользователя" driveCapacityPerRemoteAccount: "Объём диска на одного пользователя с другого сайта" inMb: "В мегабайтах" iconUrl: "Ссылка на аватар" bannerUrl: "Ссылка на изображение в шапке" -backgroundImageUrl: "Ссылка на фоновое изображение" basicInfo: "Общая информация" pinnedUsers: "Прикреплённый пользователь" pinnedUsersDescription: "Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"." pinnedPages: "Закрепленные страницы" pinnedPagesDescription: "Если хотите закрепить страницы на главной сайта, сюда можно добавить пути к ним, каждый в отдельной строке." -pinnedClipId: "Идентификатор закреплённой подборки" -pinnedNotes: "Закреплённая заметка" hcaptcha: "hCaptcha" enableHcaptcha: "Включить hCaptcha" hcaptchaSiteKey: "Ключ сайта" @@ -358,6 +336,7 @@ antennaExcludeKeywords: "Исключения" antennaKeywordsDescription: "Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них." notifyAntenna: "Уведомлять о новых заметках" withFileAntenna: "Только заметки с вложениями" +serviceworker: "ServiceWorker" enableServiceworker: "Включить ServiceWorker" antennaUsersDescription: "Пишите каждое название аккаута на отдельной строке" caseSensitive: "С учётом регистра" @@ -379,11 +358,17 @@ popularTags: "Популярные теги" userList: "Списки" about: "Описание" aboutMisskey: "О Misskey" +aboutMisskeyText: "Misskey - это программное обеспечение с открытым исходным кодом, разрабатываемое syuilo с 2014 года." +misskeyMembers: "В настоящее время он разрабатывается и поддерживается следующими участниками:" +misskeySource: "Исходный код доступен здесь:" +misskeyTranslation: "Помогите нам перевести Misskey:" +misskeyDonate: "Вы можете поддержать развитие, пожертвовав Misskey:" +morePatrons: "Есть много других, кто поддержал нас. Спасибо 🥰." +patrons: "Поддержавшие" administrator: "Администратор" token: "Токен" twoStepAuthentication: "Двухфакторная аутентификация" moderator: "Модератор" -moderation: "Модерация" nUsersMentioned: "Упомянуло пользователей: {n}" securityKey: "Ключ безопасности" securityKeyName: "Имя ключа" @@ -414,8 +399,8 @@ invites: "Приглашения" groupName: "Название группы" members: "Участники" transfer: "Отдать" -messagingWithUser: "Общение с другим пользователем" -messagingWithGroup: "Общение в группе" +messagingWithUser: "Сообщения пользователей" +messagingWithGroup: "Чат в группе" title: "Заголовок" text: "Текст" enable: "Включить" @@ -423,6 +408,7 @@ next: "Дальше" retype: "Введите ещё раз" noteOf: "Что пишет {user}" inviteToGroup: "Пригласить в группу" +maxNoteTextLength: "Максимальная длина текста" quoteAttached: "Цитата" quoteQuestion: "Хотите добавить цитату?" noMessagesYet: "Пока ни одного сообщения" @@ -446,23 +432,20 @@ signinWith: "Использовать {x} для входа" signinFailed: "Невозможно войти в систему. Введенное вами имя пользователя или пароль неверны." tapSecurityKey: "Нажмите на свой электронный ключ" or: "или" -language: "Язык" uiLanguage: "Язык интерфейса" groupInvited: "Приглашение в группу" aboutX: "Описание {x}" useOsNativeEmojis: "Использовать эмодзи операционной системы" -disableDrawer: "Не использовать выдвижные меню" youHaveNoGroups: "У вас нет ни одной группы" joinOrCreateGroup: "Получайте приглашения в группы или создавайте свои собственные" noHistory: "История пока пуста" -signinHistory: "Журнал посещений" disableAnimatedMfm: "Отключение анимированной разметки MFM" doing: "В процессе" category: "Категория" tags: "Метки" docSource: "Источник документа" -createAccount: "Новая учётная запись" -existingAccount: "Существующая учётная запись" +createAccount: "Новый аккаунт" +existingAcount: "Уже существующий" regenerate: "Создать повторно" fontSize: "Размер шрифта" noFollowRequests: "Нерассмотренные запросы на подписку отсутствуют" @@ -480,7 +463,7 @@ promotion: "Продвинуто" promote: "Продвинуть" numberOfDays: "Количество дней" hideThisNote: "Спрятать эту запись" -showFeaturedNotesInTimeline: "Показывать в ленте заметки из «Горячего»" +showFeaturedNotesInTimeline: "Показывать в ленте заметки из подборки сайта" objectStorage: "Хранилище" useObjectStorage: "Занято в хранилище" objectStorageBaseUrl: "Базовый адрес" @@ -508,7 +491,6 @@ none: "Ничего" showInPage: "Показать страницу" popout: "Развернуть" volume: "Громкость" -masterVolume: "Основная регулировка громкости" details: "Подробнее" chooseEmoji: "Выберите эмодзи" unableToProcess: "Не удаётся завершить операцию" @@ -533,13 +515,12 @@ deleteAllFiles: "Удалить все файлы" deleteAllFilesConfirm: "Вы хотите удалить все файлы?" removeAllFollowing: "Удалить всех подписчиков" removeAllFollowingDescription: "Отменить все подписки с домена {host}? Пожалуйста, применяйте это действие, если инстанс больше не существует." -userSuspended: "Эта учётная запись заморожена" +userSuspended: "Этот пользователь был заморожен" userSilenced: "Этот пользователь был заглушен" -yourAccountSuspendedTitle: "Эта учетная запись заблокирована" -yourAccountSuspendedDescription: "Эта учетная запись была заблокирована из-за нарушения условий предоставления услуг сервера. Свяжитесь с администратором, если вы хотите узнать более подробную причину. Пожалуйста, не создавайте новую учетную запись." -menu: "Меню" +sidebar: "Боковая панель" divider: "Линия-разделитель" addItem: "Добавить элемент" +rooms: "Комната" relays: "Ретрансляторы" addRelay: "Добавить ретранслятор" inboxUrl: "URL ящика входящих сообщений" @@ -556,36 +537,30 @@ disablePlayer: "Выключить проигрыватель" expandTweet: "Развернуть твит" themeEditor: "Редактор темы оформления" description: "Описание" -describeFile: "Добавить подпись" -enterFileDescription: "Введите подпись" author: "Автор" leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?" manage: "Управление" plugins: "Расширения" -preferencesBackups: "Резервная копия" +pluginInstallWarn: "Пожалуста, не устанавливайте расширения, которым не доверяете" deck: "Пульт" undeck: "Покинуть пульт" useBlurEffectForModal: "Размывка под формой поверх всего" useFullReactionPicker: "Полнофункциональный выбор реакций" width: "Ширина" height: "Высота" -large: "Крупно" -medium: "Средне" -small: "Мелко" generateAccessToken: "Создать токен доступа" permission: "Разрешения" enableAll: "Включить все" disableAll: "Выключить всё" tokenRequested: "Открыть доступ к учётной записи" -pluginTokenRequestedDescription: "Это расширение сможет пользоваться разрешениями, установленными здесь." +pluginTokenRequestedDescription: "Этот плагин сможет пользоваться разрешениями, установленными здесь." notificationType: "Тип уведомления" edit: "Изменить" useStarForReactionFallback: "Ставить ★ в качестве реакции вместо неизвестного эмодзи" -emailServer: "Сервер электронной почты" +emailConfig: "Настройки почтового сервера" enableEmail: "Включить обмен электронной почтой" emailConfigInfo: "Используется для подтверждения адреса электронной почты и сброса пароля." -email: "Электронная почта" -emailAddress: "Адрес электронной почты" +email: "Адрес электронной почты" smtpConfig: "Конфигурация SMTP-сервера" smtpHost: "Хост" smtpPort: "Порт" @@ -596,8 +571,6 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений" smtpSecureInfo: "Выключите при использовании STARTTLS." testEmail: "Проверка доставки электронной почты" wordMute: "Скрытие слов" -regexpError: "Ошибка в регулярном выражении" -instanceMute: "Глушение инстансов" userSaysSomething: "{name} что-то сообщает" makeActive: "Активировать" display: "Отображение" @@ -618,17 +591,13 @@ regenerateLoginToken: "Создать новый токен для входа" regenerateLoginTokenDescription: "Создаёт новый токен, используемый внутри программы во время входа. Обычно в этом нет необходимости. При создании все устройства будут отключены." setMultipleBySeparatingWithSpace: "Можно написать несколько через пробел" fileIdOrUrl: "Идентификатор файла или ссылка" -behavior: "Поведение" +chatOpenBehavior: "Поведение окна чата при открытии" sample: "Пример" abuseReports: "Жалобы" reportAbuse: "Жалоба" reportAbuseOf: "Пожаловаться на пользователя {name}" fillAbuseReportDescription: "Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё." abuseReported: "Жалоба отправлена. Большое спасибо за информацию." -reporteeOrigin: "О ком сообщено" -reporterOrigin: "Кто сообщил" -forwardReport: "Перенаправление отчета на инстант." -forwardReportIsAnonymous: "Удаленный инстант не сможет увидеть вашу информацию и будет отображаться как анонимная системная учетная запись." send: "Отправить" abuseMarkAsResolved: "Отметить жалобу как решённую" openInNewTab: "Открыть в новой вкладке" @@ -640,281 +609,15 @@ waitingFor: "Ждём, когда {x} ответит" random: "Случайные" system: "Система" switchUi: "Выбор вида" -desktop: "Компьютер" -clip: "Подборка" +desktop: "Стол" +clip: "Памятки" createNew: "Новый документ" optional: "Необязательно" -createNewClip: "Новая подборка" +createNewClip: "Новая памятка" public: "Общедоступно" -i18nInfo: "Misskey переводят на разные языки добровольцы со всего света. Ваша помощь тоже пригодится здесь: {link}." -manageAccessTokens: "Управление токенами доступа" -accountInfo: "Сведения об учётной записи" -notesCount: "Количество заметок" -repliesCount: "Сколько раз пользователь кому-то ответил" -renotesCount: "Сколько раз пользователь делился заметками" -repliedCount: "Сколько раз ответили пользователю" -renotedCount: "Сколько раз делились заметками пользователя" -followingCount: "Количество подписок" -followersCount: "Количество подписавшихся" -sentReactionsCount: "Количество реакций пользователя" -receivedReactionsCount: "Количество реакций на заметки пользователя" -pollVotesCount: "Сколько раз пользователь участвовал в опросах" -pollVotedCount: "Сколько раз участвовали в опросах пользователя" -yes: "Да" -no: "Нет" -driveFilesCount: "Количество файлов на диске" -driveUsage: "Занято места на диске" -noCrawle: "Запретить паукам индексировать сайт" -noCrawleDescription: "Просьба поисковым системам не ходить по вашему профилю, по заметкам, страницам и не индексировать их." -lockedAccountInfo: "Даже если вы вручную подтверждаете подписки, кто угодно может читать ваши заметки, если вы не отмечаете их «для подписчиков»." -alwaysMarkSensitive: "Отмечать файлы как «содержимое не для всех» по умолчанию" -loadRawImages: "Сразу показывать изображения в полном размере" -disableShowingAnimatedImages: "Не проигрывать анимацию" -verificationEmailSent: "Вам отправлено письмо для подтверждения. Пройдите, пожалуйста, по ссылке из письма, чтобы завершить проверку." -notSet: "Не настроено" -emailVerified: "Адрес электронной почты подтверждён." -noteFavoritesCount: "Количество добавленного в избранное" -pageLikesCount: "Количество понравившихся страниц" -pageLikedCount: "Количество страниц, понравившихся другим" -contact: "Как связаться" -useSystemFont: "Использовать шрифт, предлагаемый системой" -clips: "Подборки" -experimentalFeatures: "Экспериментальные функции" -developer: "Разработчик" -makeExplorable: "Опубликовать профиль в «Обзоре»." -makeExplorableDescription: "Если выключить, ваш профиль не будет показан в разделе «Обзор»." -showGapBetweenNotesInTimeline: "Показывать разделитель между заметками в ленте" -duplicate: "Дубликат" -left: "Влево" -center: "По центру" -wide: "Толстый" -narrow: "Тонкий" -reloadToApplySetting: "Это настройка вступает в силу при загрузке страницы. Перезагрузить сейчас?" -needReloadToApply: "Изменения вступят в силу после перезагрузки страницы." -showTitlebar: "Показать заголовок" -clearCache: "Очистить кэш" -onlineUsersCount: "Пользователей сейчас в сети: {n}" -nUsers: "Пользователей: {n}" -nNotes: "Заметок: {n}" -sendErrorReports: "Посылать отчёты о сбоях" -sendErrorReportsDescription: "Если включено, когда возникнет какая-нибудь техническая проблема, подробные сведения об этом будут отправлены разработчикам Misskey. Это очень помогает делать программу лучше. В отчёты попадают тип и версия ОС, браузера, журнал действий (что привело к сбою) и тому подобное." -myTheme: "Личная тема" -backgroundColor: "Фон" -accentColor: "Акцент" -textColor: "Текст" -saveAs: "Сохранить под названием…" -advanced: "Для продвинутых" -value: "Значения" -createdAt: "Создано" -updatedAt: "Обновлено" -saveConfirm: "Сохранить изменения?" -deleteConfirm: "Удалить?" -invalidValue: "Недопустимое значение." -registry: "Реестр" -closeAccount: "Закрыть учётную запись" -currentVersion: "Используемая версия" -latestVersion: "Самая свежая версия" -youAreRunningUpToDateClient: "У вас самая свежая версия клиента." -newVersionOfClientAvailable: "Доступна более свежая версия клиента." -usageAmount: "Использовано" -capacity: "Ёмкость" -inUse: "Занято" -editCode: "Редактировать исходный текст" -apply: "Применить" -receiveAnnouncementFromInstance: "Получать оповещения с инстанса" -emailNotification: "Уведомления по электронной почте" -publish: "Опубликовать" -inChannelSearch: "Поиск по каналу" -useReactionPickerForContextMenu: "Открывать палитру реакций правой кнопкой" -typingUsers: "Стук клавиш. Это {users}…" -jumpToSpecifiedDate: "Перейти к заданной дате" -showingPastTimeline: "Отображается старая лента" -clear: "Очистить" -markAllAsRead: "Отметить всё как прочитанное" -goBack: "Выход" -unlikeConfirm: "В самом деле отменить «нравится»?" -fullView: "Полный вид" -quitFullView: "Закрыть полный вид" -addDescription: "Добавить описание" -userPagePinTip: "Можно добавить сюда заметки, выбрав нужную, и включив в её меню пункт «Закрепить в профиле»." -notSpecifiedMentionWarning: "В этой заметке есть упоминание тех, кто не включён в адресаты" -info: "Описание" -userInfo: "Сведения о пользователе" -unknown: "Неизвестно" -onlineStatus: "Присутствие в сети" -hideOnlineStatus: "Скрыть присутствие" -hideOnlineStatusDescription: "Сокрытие присутствия делает некоторые функции, такие как поиск, менее удобными." -online: "В сети" -active: "Действует" -offline: "Не в сети" -notRecommended: "Не рекомендуется" -botProtection: "Ботозащита" -instanceBlocking: "Блокировка инстансов" -selectAccount: "Выберите учётную запись" -switchAccount: "Сменить учётную запись" -enabled: "Вкл." -disabled: "Откл." -quickAction: "Быстрое действие" -user: "Пользователи" -administration: "Управление" -accounts: "Учётные записи" -switch: "Переключение" -noMaintainerInformationWarning: "Не заполнены сведения об администраторах" -noBotProtectionWarning: "Ботозащита не настроена" -configure: "Настроить" -postToGallery: "Опубликовать в галерею" -gallery: "Галерея" -recentPosts: "Недавние публикации" -popularPosts: "Популярные публикации" -shareWithNote: "Поделиться заметкой" -ads: "Реклама" -expiration: "Опрос длится" -memo: "Памятка" -priority: "Приоритет" -high: "Высокий" -middle: "Средне" -low: "Низкий" -emailNotConfiguredWarning: "Не указан адрес электронной почты" -ratio: "Соотношение" -previewNoteText: "Предварительный просмотр" -customCss: "Индивидуальный CSS" -customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас." -global: "Всеобщая" -squareAvatars: "Квадратные аватарки" -sent: "Отправить" -received: "Получено" -searchResult: "Результаты поиска" -hashtags: "Хэштег" -troubleshooting: "Разрешение проблем" -useBlurEffect: "Размытие в интерфейсе" -learnMore: "Подробнее" -misskeyUpdated: "Misskey обновился!" -whatIsNew: "Что новенького?" -translate: "Перевод" -translatedFrom: "Перевод. Язык оригинала — {x}" -accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи" -usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже." -aiChanMode: "ИИ режим" -keepCw: "Сохраняйте Предупреждения о содержимом" -pubSub: "Учётные записи Pub/Sub" -lastCommunication: "Последнее сообщение" -resolved: "Решено" -unresolved: "Без решения" -breakFollow: "Отписка" -itsOn: "Включено" -itsOff: "Выключено" -emailRequiredForSignup: "Для регистрации учётной записи нужен адрес электронной почты" -unread: "Непрочитанное" -filter: "Фильтры" -controlPanel: "Панель управления" -manageAccounts: "Управление аккаунтом" -makeReactionsPublic: "Опубликовать список реакций" -makeReactionsPublicDescription: "Список сделанных вами реакций доступен для просмотра всем желающим." -classic: "Классика" -muteThread: "Заглушить цепочку" -unmuteThread: "Отменить глушение цепочки" -ffVisibility: "Видимость подписок и подписчиков" -ffVisibilityDescription: "Здесь можно настроить, кто будет видеть ваши подписки и подписчиков." -continueThread: "Показать следующие ответы" -deleteAccountConfirm: "Учётная запись будет безвозвратно удалена. Подтверждаете?" -incorrectPassword: "Пароль неверен." -voteConfirm: "Отдать голос за «{choice}»?" -hide: "Спрятать" -leaveGroup: "Покинуть группу" -leaveGroupConfirm: "Покинуть группу «{name}»?" -useDrawerReactionPickerForMobile: "Выдвижная палитра на мобильном устройстве" -welcomeBackWithName: "С возвращением, {name}!" -clickToFinishEmailVerification: "Пожалуйста, нажмите [{ok}], чтобы завершить подтверждение адреса электронной почты." -overridedDeviceKind: "Тип устройства" -smartphone: "Смартфон" -tablet: "Планшет" -auto: "Автоматически" -themeColor: "Цвет темы" -size: "Размер" -numberOfColumn: "Количество столбцов" -searchByGoogle: "Поиск" -instanceDefaultLightTheme: "Светлая тема по умолчанию" -instanceDefaultDarkTheme: "Темная тема по умолчанию" -indefinitely: "вечно" -file: "Файлы" -recommended: "Рекомендуем" -check: "Проверить" -driveCapOverrideLabel: "Изменение лимита дискового пространства для этого пользователя" -reverse: "Переворот" -colored: "Выделена цветом" -label: "Метка" -localOnly: "Локально" -beta: "Бета" -enableAutoSensitive: "Автоматическое определение NSFW" -enableAutoSensitiveDescription: "Если доступно, используйте машинное обучение для автоматической установки флага NSFW на носителе. Даже если эта функция отключена, она может быть установлена ​​автоматически в зависимости от инстанта." -account: "Учётные записи" -_sensitiveMediaDetection: - description: "Машинное обучение может быть использовано для автоматического обнаружения чувствительных медиа для модерации. Нагрузка на сервер увеличивается незначительно." - setSensitiveFlagAutomatically: "Установить флаг NSFW" -_emailUnavailable: - used: "Уже используется" - format: "Неверный формат" - disposable: "Временный адрес электронной почты не принимается" - mx: "Неверный почтовый сервер" - smtp: "Почтовый сервер не отвечает" -_ffVisibility: - public: "Общедоступны" - followers: "Показываются только подписчикам" - private: "Показываются только вам" -_signup: - almostThere: "Почти готово!" - emailAddressInfo: "Введите ваш адрес электронной почты." - emailSent: "На указанный вами адрес электронной почты ({email}) отправлено письмо. Перейдите по ссылке в письме, чтобы завершить регистрацию." -_accountDelete: - accountDelete: "Удалить свою учётную запись" - mayTakeTime: "Удаление учётной записи — ресурсозатратный процесс. Он может занять много времени, если вы много писали и загружали файлов." - sendEmail: "Когда ваша учетная запись будет удалена, мы сообщим на указанную вами электронную почту." - requestAccountDelete: "Запросить удаление вашей учетной записи" - started: "Процесс удаления начался." - inProgress: "Удаление в процессе" -_ad: - back: "Выход" - reduceFrequencyOfThisAd: "Реже показывать эту рекламу" -_forgotPassword: - enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На неё будет выслана ссылка для смены пароля." - ifNoEmail: "Если вы не ввели свой адрес электронной почты, свяжитесь с администратором ресурса, чтобы сменить пароль." - contactAdmin: "Здесь не используются адреса электронной почты, так что свяжитесь с администратором, чтобы поменять пароль." -_gallery: - my: "Личная" - liked: "Понравившееся" - like: "Нравится!" - unlike: "Отменить «нравится»" -_email: - _follow: - title: "Новый подписчик" - _receiveFollowRequest: - title: "Новый запрос на подписку." -_plugin: - install: "Установка расширений" - installWarn: "Пожалуйста, не устанавливайте расширения, которым не доверяете." - manage: "Управление расширениями" -_registry: - scope: "Область" - key: "Ключ" - keys: "Ключ" - domain: "Домен" - createKey: "Новый ключ" -_aboutMisskey: - about: "Misskey — программа с открытым исходным кодом, которую разрабатывает syuilo с 2014 года." - contributors: "Основные соавторы" - allContributors: "Все соавторы" - source: "Исходный код" - translation: "Перевод Misskey" - donate: "Пожертвование на Misskey" - morePatrons: "Большое спасибо и многим другим, кто принял участие в этом проекте! 🥰" - patrons: "Материальная поддержка" -_nsfw: - respect: "Скрывать содержимое не для всех" - ignore: "Показывать содержимое не для всех" - force: "Скрывать вообще все файлы" _mfm: cheatSheet: "Подсказка по разметке MFM" - intro: "MFM — язык оформления текста, который придуман специально для Misskey и готов для применения во многих местах. На этой странице собраны и кратко изложены способы его использовать." + intro: "MFM — язык оформления текста, придуманный специально для Misskey, который здесь можно много где использовать. На этой странице собраны и кратко изложены способы его применения." dummy: "Misskey расширяет границы Федиверса." mention: "Упоминание" mentionDescription: "При помощи знака «собака» перед именем можно упомянуть какого-нибудь пользователя." @@ -940,7 +643,7 @@ _mfm: blockMathDescription: "Оформляет математическое выражение (KaTeX) на отдельной строке." quote: "Цитата" quoteDescription: "Так можно процитировать чей-то текст." - emoji: "Собственные эмодзи" + emoji: "Эмодзи пользователя" emojiDescription: "Можно вставить эмодзи в текст, окружив название двоеточиями." search: "Поиск" searchDescription: "Можно добавить форму для поиска, сразу задав, что искать." @@ -960,22 +663,39 @@ _mfm: twitchDescription: "Заставляет трястись как одержимого" spin: "Вращение" spinDescription: "Так можно крутить содержимое в разных направлениях." - x2: "Крупный шрифт" - x2Description: "Увеличивает содержимое." - x3: "Ещё крупнее" - x3Description: "Сильнее увеличивает содержимое." - x4: "Совсем крупно" - x4Description: "Увеличивает содержимое совсем сильно." - blur: "Размытие" - blurDescription: "Размывает текст до нечитаемости, будто его поместили за матовое стекло. Наведение указателя мыши на размытый текст возвращает чёткость." - font: "Шрифт" - fontDescription: "Так можно писать произвольным шрифтом." - rainbow: "Радуга" - rainbowDescription: "Заставлять содержимое отображаться в цветах радуги." - sparkle: "Искры" - sparkleDescription: "Добавляет эффект искрящихся частиц." - rotate: "Повернуть" - rotateDescription: "Поворачивает на заданный угол." +_reversi: + reversi: "Реверси" + gameSettings: "Настройки игры" + chooseBoard: "Выберите доску" + blackOrWhite: "Черные/Белые" + blackIs: "{name} за чёрных" + rules: "Правила" + botSettings: "Настройки бота" + thisGameIsStartedSoon: "Игра скоро начнётся." + waitingForOther: "Ожидание соперника..." + waitingForMe: "В ожидании, когда будете готовы." + waitingBoth: "Приготовьтесь." + ready: "Готово" + cancelReady: "Возврат к подготовке" + opponentTurn: "Ход соперника" + myTurn: "Ваш ход" + turnOf: "Ходит {name}." + pastTurnOf: "Ходит {name}." + surrender: "Сдаться" + surrendered: "Противник сдался" + drawn: "Ничья" + won: "Победитель — {name}" + black: "Чёрные" + white: "Белые" + total: "Всего" + turnCount: "Ход {count}" + myGames: "Сыгранное вами" + allGames: "Все игры" + ended: "Завершена" + playing: "Идёт игра" + isLlotheo: "Выигрывает меньшее число камней (LLoTheO)" + loopedMap: "Замкнутая в кольцо доска" + canPutEverywhere: "Камни можно ставить везде" _instanceTicker: none: "Не показывать" remote: "Только для других сайтов" @@ -989,15 +709,14 @@ _channel: edit: "Редактировать канал" setBanner: "Установить баннер" removeBanner: "Удалить баннер" - featured: "Актуальные" - owned: "Собственные" - following: "Подписки" + featured: "Из подборки" + owned: "Владелец" + following: "Читаю" usersCount: "Участников: {n}" notesCount: "Заметок: {n}" -_menuDisplay: - sideFull: "Сторона" - sideIcon: "Сторона (иконки)" - top: "Вверх" +_sidebar: + full: "Полностью" + icon: "Только значки" hide: "Спрятать" _wordMute: muteWords: "Скрыть слово" @@ -1008,17 +727,12 @@ _wordMute: soft: "Мягкий" hard: "Жёсткий" mutedNotes: "Скрытые заметки" -_instanceMute: - heading: "Список заглушенных инстансов" _theme: explore: "Обзор" install: "Установить тему" manage: "Менеджер тем" code: "Код темы" - description: "Описание" installed: "Тема «{name}» установлена." - installedThemes: "Установленные темы" - builtinThemes: "Встроенные темы" alreadyInstalled: "Тема уже установлена." invalid: "Формат темы некорректный." make: "Создать тему" @@ -1093,6 +807,7 @@ _sfx: antenna: "Антенна" channel: "Канал" _ago: + unknown: "Когда-то" future: "Из будущего" justNow: "Только что" secondsAgo: "{n} с назад" @@ -1131,7 +846,7 @@ _tutorial: step7_2: "Хотите изучить Misskey глубже — добро пожаловать в раздел «{help}»." step7_3: "Приятно вам провести время с Misskey🚀" _2fa: - alreadyRegistered: "Двухфакторная аутентификация уже настроена." + alreadyRegistered: "Настройка завершена" registerDevice: "Зарегистрируйте ваше устройство" registerKey: "Зарегистрировать ключ" step1: "Прежде всего, установите на устройство приложение для аутентификации, например, {a} или {b}." @@ -1168,10 +883,6 @@ _permissions: "write:user-groups": "Изменять и удалять группы пользователей" "read:channels": "Смотреть каналы" "write:channels": "Изменять каналы" - "read:gallery": "Просмотр галереи" - "write:gallery": "Редактирование галереи" - "read:gallery-likes": "Просмотр списка понравившегося в галерее" - "write:gallery-likes": "Изменение списка понравившегося в галерее" _auth: shareAccess: "Дать доступ для «{name}» к вашей учётной записи?" shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?" @@ -1206,13 +917,6 @@ _widgets: digitalClock: "Цифровые часы" federation: "Федерация" postForm: "Форма отправки" - slideshow: "Показ слайдов" - button: "Кнопка" - onlineUsers: "Пользователи сейчас с сети" - jobQueue: "Очередь заданий" - serverMetric: "Показатели сервера" - aiscript: "Консоль AiScript" - aichan: "Ай" _cw: hide: "Спрятать" show: "Показать еще" @@ -1244,13 +948,13 @@ _visibility: public: "Общедоступно" publicDescription: "Открыто для всех" home: "Домашняя" - homeDescription: "Не для общих лент" + homeDescription: "Не появится в общих лентах (локальной и глобальной)" followers: "Для подписчиков" - followersDescription: "Только вашим подписчикам" + followersDescription: "Увидят только ваши подписчики" specified: "Личное" - specifiedDescription: "Тем, кого укажете" + specifiedDescription: "Только для тех, кого укажете" localOnly: "Локально" - localOnlyDescription: "Только для этого сайта" + localOnlyDescription: "Увидят только пользователи этого сайта" _postForm: replyPlaceholder: "Ответ на заметку..." quotePlaceholder: "Пояснение к цитате..." @@ -1267,24 +971,18 @@ _profile: username: "Имя пользователя" description: "О себе" youCanIncludeHashtags: "Можете использовать здесь хэштеги" - metadata: "Дополнительные сведения" - metadataEdit: "Редактировать дополнительные сведения" - metadataDescription: "Можно добавить до четырёх дополнительных граф в профиль." + metadata: "Всякое" metadataLabel: "Метка" metadataContent: "Содержимое" - changeAvatar: "Поменять аватар" - changeBanner: "Поменять изображение в шапке" _exportOrImport: allNotes: "Все записи\n" followingList: "Подписки" muteList: "Скрытые" blockingList: "Заблокированные" userLists: "Списки" - excludeMutingUsers: "За исключением заглушенных пользователей" - excludeInactiveUsers: "Без неактивных учётных записей" _charts: - federation: "Федерация" - apRequest: "Запросы" + federationInstancesIncDec: "Изменение внешних связей" + federationInstancesTotal: "Количество внешних связей" usersIncDec: "Изменение числа пользователей" usersTotal: "Количество пользователей" activeUsers: "Активные пользователи" @@ -1313,6 +1011,68 @@ _timelines: local: "Местная" social: "Социальная" global: "Всеобщая" +_rooms: + roomOf: "Комната {user}" + addFurniture: "Добавить обстановку" + translate: "Передвинуть" + rotate: "Повернуть" + exit: "Выход" + remove: "Выбросить" + clear: "Очистить" + clearConfirm: "Уверены что стоит убрать всю обстановку из вашей комнаты?" + leaveConfirm: "Изменения не сохранены, правда хотите покинуть комнату?" + chooseImage: "Выберите изображение" + roomType: "Стиль комнаты" + carpetColor: "Цвет ковра" + _roomType: + default: "По умолчанию" + washitsu: "Японская" + _furnitures: + milk: "Пакет молока" + bed: "Кровать" + low-table: "Журнальный стол" + desk: "Письменный стол" + chair: "Стул" + chair2: "Стул 2" + fan: "Вентилятор" + pc: "Системный блок" + plant: "Растение в горшке" + plant2: "Растение в горшке 2" + eraser: "Ластик" + pencil: "Карандаш" + pudding: "Пудинг" + cardboard-box: "Картонная коробка" + cardboard-box2: "Картонная коробка 2" + cardboard-box3: "Картонная коробка 3" + book: "Книга" + book2: "Книга про Misskey" + piano: "Пианино" + facial-tissue: "Салфетки" + server: "Сервер" + moon: "Луна" + corkboard: "Пробковая доска" + mousepad: "Коврик для мыши" + monitor: "Монитор" + keyboard: "Клавиатура" + carpet-stripe: "Полосатый ковёр" + mat: "Мат" + color-box: "Книжная полка" + wall-clock: "Настенные часы" + photoframe: "Картина в раме" + cube: "Куб" + tv: "Телевизор" + pinguin: "Пингвин" + rubik-cube: "Кубик Рубика" + poster-h: "Плакат (альбомная ориентация)" + poster-v: "Плакат (портретная ориентация)" + sofa: "Диван" + spiral: "Спиральная лестница" + bin: "Мусорное ведро" + cup-noodle: "Стакан лапши" + holo-display: "Голографический проектор" + energy-drink: "Банка энергетического напитка" + doll-ai: "Кукла Ай-тян" + banknote: "Пачка денег" _pages: newPage: "Создать страницу" editPage: "Править страницу" @@ -1333,7 +1093,7 @@ _pages: liked: "Понравившиеся страницы" featured: "Популярные" inspector: "Инспектор" - contents: "Содержимое" + contents: "Содержательные" content: "Содержимое" variables: "Переменные" title: "Заголовок" @@ -1632,23 +1392,17 @@ _notification: followRequestAccepted: "Запрос на подписку одобрен" groupInvited: "Приглашение в группы" app: "Уведомления из приложений" - _actions: - reply: "Ответить" - renote: "Репост" _deck: alwaysShowMainColumn: "Всегда показывать главную колонку" columnAlign: "Выравнивание колонок" addColumn: "Добавить колонку" - configureColumn: "Настройки колонок" swapLeft: "Переставить левее" swapRight: "Переставить правее" swapUp: "Переставить выше" swapDown: "Переставить ниже" stackLeft: "В столбик влево" popRight: "Из столбика вправо" - profile: "Профиль" _columns: - main: "Основная" widgets: "Виджеты" notifications: "Уведомления" tl: "Лента" diff --git a/locales/si-LK.yml b/locales/si-LK.yml deleted file mode 100644 index ed97d539c..000000000 --- a/locales/si-LK.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml deleted file mode 100644 index 43129edcf..000000000 --- a/locales/sk-SK.yml +++ /dev/null @@ -1,1739 +0,0 @@ ---- -_lang_: "Slovenčina" -headlineMisskey: "Sieť prepojená poznámkami" -introMisskey: "Vitajte! Misskey je otvorená a decentralizovaná mikroblogovacia služba.\n\"Poznámkami\" môžete zdieľať svoje myšlienky so všetkými okolo. 📡\nPomocou \"reakcií\" môžete rýchlo vyjadri svoje pocity o každého poznámkach. 👍\nPoďte objavovať svet! 🚀" -monthAndDay: "{day}. {month}." -search: "Hľadať" -notifications: "Oznámenia" -username: "Meno používateľa" -password: "Heslo" -forgotPassword: "Zabudnuté heslo" -fetchingAsApObject: "Načítam údaje z Fediverzu" -ok: "OK" -gotIt: "Rozumiem!" -cancel: "Zrušiť" -enterUsername: "Zadajte meno používateľa" -renotedBy: "{user} preposlal/a" -noNotes: "Žiadne poznámky" -noNotifications: "Žiadne oznámenia" -instance: "Inštancia" -settings: "Nastavenia" -basicSettings: "Všeobecné nastavenia" -otherSettings: "Rozšírené nastavenia" -openInWindow: "Otvoriť v novom okne" -profile: "Profil" -timeline: "Časová os" -noAccountDescription: "Tento používateľ zatiaľ nenapísal o sebe." -login: "Prihlásiť sa" -loggingIn: "Prebieha prihlasovanie" -logout: "Odhlásiť" -signup: "Registrovať" -uploading: "Nahrávanie..." -save: "Uložiť" -users: "Používatelia" -addUser: "Pridať používateľa" -favorite: "Páči sa mi" -favorites: "Obľúbené" -unfavorite: "Nepáči sa mi" -favorited: "Pridané do obľúbených" -alreadyFavorited: "Už je medzi obľúbenými" -cantFavorite: "Nepodarilo sa pridať medzi obľúbené." -pin: "Pripnúť" -unpin: "Odopnúť" -copyContent: "Kopírovať obsah" -copyLink: "Kopírovať odkaz" -delete: "Odstrániť" -deleteAndEdit: "Odstrániť a upraviť" -deleteAndEditConfirm: "Naozaj chcete odstrániť túto poznámku a upraviť ju? Stratíte tým všetky reakcie a odpovede na ňu." -addToList: "Pridať do zoznamu" -sendMessage: "Odoslať správu" -copyUsername: "Kopírovať meno používateľa" -searchUser: "Hľadať používateľov" -reply: "Odpovedať" -loadMore: "Zobraziť viac" -showMore: "Zobraziť viac" -showLess: "Zavrieť" -youGotNewFollower: "Máte nového sledujúceho" -receiveFollowRequest: "Žiadosť o sledovanie prijatá" -followRequestAccepted: "Žiadosť o sledovanie akceptovaná" -mention: "Zmienka" -mentions: "Zmienky" -directNotes: "Priame poznámky" -importAndExport: "Import a export" -import: "Importovať" -export: "Exportovať" -files: "Súbor/y" -download: "Stiahnuť" -driveFileDeleteConfirm: "Naozaj chcete odstrániť súbor \"{name}\"? Poznámky s týmto súborom sa odstránia tiež." -unfollowConfirm: "Naozaj už nechcete sledovať {name}?" -exportRequested: "Vyžiadali ste export. Môže to chvíľu trvať. Po skončení pribudne na vašom disku." -importRequested: "Požiadali ste o export. Môže to chvíľu trvať." -lists: "Zoznamy" -noLists: "Nemáte žiadne zoznamy" -note: "Poznámka" -notes: "Poznámky" -following: "Sledujete" -followers: "Sledujúci" -followsYou: "Sledujú vás" -createList: "Vytvoriť zoznam" -manageLists: "Spravovať zoznamy" -error: "Chyba" -somethingHappened: "Ups. Niečo sa nepodarilo." -retry: "Opakovať" -pageLoadError: "Nepodarilo sa načítať stránku" -pageLoadErrorDescription: "Toto môže byť spôsobené problémami so sieťou alebo cachou prehliadača. Skúste vyčistiť cache a potom skúsiť znova po chvíli." -serverIsDead: "Tento server nereaguje. Prosím chvíľu počkajte a skúste znova." -youShouldUpgradeClient: "Na pozretie tejto stránky prosím obnovte svojho klienta." -enterListName: "Zadajte názov zoznamu" -privacy: "Súkromie" -makeFollowManuallyApprove: "Žiadosti o sledovanie treba schváliť" -defaultNoteVisibility: "Predvolená viditeľnosť" -follow: "Sledovať" -followRequest: "Požiadať o sledovanie" -followRequests: "Žiadosti o sledovanie" -unfollow: "Nesledovať" -followRequestPending: "Žiadosť o sledovanie čaká" -enterEmoji: "Zadajte emoji" -renote: "Preposlať" -unrenote: "Vrátiť preposlanie" -renoted: "Preposlané." -cantRenote: "Tento príspevok sa nedá preposlať." -cantReRenote: "Odpoveď nemôže byť odstránená." -quote: "Citovať" -pinnedNote: "Pripnuté poznámky" -pinned: "Pripnúť" -you: "Vy" -clickToShow: "Kliknutím zobrazíte" -sensitive: "NSFW" -add: "Pridať" -reaction: "Reakcie" -reactionSetting: "Reakcie zobrazené vo výbere reakcií" -reactionSettingDescription2: "Ťahaním preusporiadate, kliknutím odstránite, Stlačením \"+\" pridáte" -rememberNoteVisibility: "Zapamätať nastavenia viditeľnosti poznámky" -attachCancel: "Odstrániť prílohu" -markAsSensitive: "Označiť ako NSFW" -unmarkAsSensitive: "Odznačiť NSFW" -enterFileName: "Zadajte názov súboru" -mute: "Vypnúť zvuk" -unmute: "Zapnúť zvuk" -block: "Zablokovať" -unblock: "Odblokovať" -suspend: "Zmraziť" -unsuspend: "Odmraziť" -blockConfirm: "Naozaj chcete zablokovať tento účet?" -unblockConfirm: "Naozaj chcete odblokovať tento účet?" -suspendConfirm: "Naozaj chcete zmraziť tento účet?" -unsuspendConfirm: "Naozaj chcete odmraziť tento účet?" -selectList: "Vyberte zoznam" -selectAntenna: "Vyberte anténu" -selectWidget: "Vyberte widget" -editWidgets: "Upraviť widget" -editWidgetsExit: "Hotovo" -customEmojis: "Vlastné emoji" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Názov emoji" -emojiUrl: "URL obrázku" -addEmoji: "Pridať emoji" -settingGuide: "Odporúčané nastavenia" -cacheRemoteFiles: "Cachovanie vzdialených súborov" -cacheRemoteFilesDescription: "Zakázanie tohoto nastavenia spôsobí, že vzdialené súbory budú odkazované priamo, namiesto ukladania do cache. Ušetrí sa tak miesto na serveri, ale zvýši sa dátový tok, pretože sa negenerujú miniatúry." -flagAsBot: "Tento účet je bot" -flagAsBotDescription: "Ak je tento účet ovládaný programom, zaškrtnite túto voľbu. Ostatní uvidia, že je to bot a zabráni nekonečným interakciám s ďalšími botmi a upraví interné systémy Misskey, aby ho považoval za bota." -flagAsCat: "Tento účet je mačka" -flagAsCatDescription: "Zvoľte túto voľbu, aby bol tento účet označený ako mačka." -flagShowTimelineReplies: "Zobraziť odpovede na poznámky v časovej osi" -flagShowTimelineRepliesDescription: "Keď je zapnuté, na časovej osi sa zobrazia odpovede k poznámkam používateľov okrem samotných poznámok." -autoAcceptFollowed: "Automaticky prijať sledovanie od účtov, ktoré sledujete" -addAccount: "Pridať účet" -loginFailed: "Prihlásenie sa nepodarilo." -showOnRemote: "Zobraziť na vzdialenom serveri" -general: "Všeobecné" -wallpaper: "Tapeta" -setWallpaper: "Nastaviť tapetu" -removeWallpaper: "Odstrániť tapetu" -searchWith: "Hľadať: {q}" -youHaveNoLists: "Nemáte žiadne zoznamy" -followConfirm: "Naozaj chcete sledovať {name}?" -proxyAccount: "Proxy účet" -proxyAccountDescription: "Proxy účet je účet, ktorý za určitých podmienok sleduje používateľov na diaľku vaším menom. Napríklad keď používateľ zaradí vzdialeného používateľa do zoznamu, pokiaľ nikto nesleduje používateľa na zozname, aktivita nebude doručená na server, takže namiesto toho bude používateľa sledova proxy účet." -host: "Host" -selectUser: "Vyberte používateľa" -recipient: "Prijímateľ" -annotation: "Komentáre" -federation: "Federácia" -instances: "Inštancia" -registeredAt: "Registrácia" -latestRequestSentAt: "Posledná odoslaná požiadavka" -latestRequestReceivedAt: "Posledná prijatá požiadavka" -latestStatus: "Posledný status" -storageUsage: "Využité úložisko" -charts: "Grafy" -perHour: "za hodinu" -perDay: "za deň" -stopActivityDelivery: "Zastaviť posielanie aktivít" -blockThisInstance: "Blokovať tento server" -operations: "Operácie" -software: "Softvér" -version: "Verzia" -metadata: "Metadáta" -withNFiles: "{n} súbor(ov)" -monitor: "Monitor" -jobQueue: "Fronta úloh" -cpuAndMemory: "CPU a pamäť" -network: "Sieť" -disk: "Disk" -instanceInfo: "Informácie o serveri" -statistics: "Štatistiky" -clearQueue: "Vyčistiť frontu" -clearQueueConfirmTitle: "Naozaj chcete zrušiť všetky úlohy vo fronte?" -clearQueueConfirmText: "Všetky nedoručené poznámky čakajúce vo fronte nebudú federované. Zvyčajne táto operácia nie je potrebná." -clearCachedFiles: "Vyprázdniť cache" -clearCachedFilesConfirm: "Naozaj chcete odstrániť všetky nacachované vzdialené súbory?" -blockedInstances: "Blokované servery" -blockedInstancesDescription: "Zoznam blokovaných serverov na riadkoch. Blokované servery nebudú môcť komunikovať s týmto serverom." -muteAndBlock: "Umlčania a blokácie" -mutedUsers: "Umlčaní používatelia" -blockedUsers: "Blokovaní používatelia" -noUsers: "Žiadni používatelia" -editProfile: "Upraviť profil" -noteDeleteConfirm: "Naozaj chcete odstrániť túto poznámku?" -pinLimitExceeded: "Ďalšie poznámky už nemôžete pripnúť." -intro: "Inštalácia Misskey je dokončená! Prosím vytvorte administrátora." -done: "Hotovo" -processing: "Pracujem..." -preview: "Náhľad" -default: "Predvolené" -defaultValueIs: "Predvolené: {value}" -noCustomEmojis: "Žiadne emoji" -noJobs: "Žiadne úlohy" -federating: "Federácia" -blocked: "Blokované" -suspended: "Zmrazené" -all: "Všetko" -subscribing: "Odoberanie" -publishing: "Zverejňovanie" -notResponding: "Neodpovedá" -instanceFollowing: "Sledujem na serveri" -instanceFollowers: "Sledujúci zo servera" -instanceUsers: "Používatelia servera" -changePassword: "Zmeniť heslo" -security: "Zabezpečenie" -retypedNotMatch: "Zadané vstupy nesúhlasia" -currentPassword: "Aktuálne heslo" -newPassword: "Nové heslo" -newPasswordRetype: "Nové heslo (znovu)" -attachFile: "Priložiť súbor" -more: "Viac!" -featured: "Obľúbené poznámky" -usernameOrUserId: "Meno používateľa alebo ID používateľa" -noSuchUser: "Používateľ sa nenašiel" -lookup: "Vyhľadať" -announcements: "Oznamy" -imageUrl: "URL obrázku" -remove: "Odstrániť" -removed: "Odstránené" -removeAreYouSure: "Naozaj chcete odstrániť \"{x}\"?" -deleteAreYouSure: "Naozaj chcete odstrániť \"{x}\"?" -resetAreYouSure: "Naozaj resetovať?" -saved: "Uložené" -messaging: "Chat" -upload: "Nahrať súbor" -keepOriginalUploading: "Zachovať pôvodný obrázok" -keepOriginalUploadingDescription: "Uloží pôvodný obrázok ako je. Ak je vypnuté, verzia pre web sa vygeneruje pri nahratí." -fromDrive: "Z disku" -fromUrl: "Z URL" -uploadFromUrl: "Nahrať z URL adresy" -uploadFromUrlDescription: "URL adresa nahrávaného súboru" -uploadFromUrlRequested: "Upload vyžiadaný" -uploadFromUrlMayTakeTime: "Nahrávanie môže nejaký čas trvať." -explore: "Objavovať" -messageRead: "Prečítané" -noMoreHistory: "To je všetko" -startMessaging: "Začať chat" -nUsersRead: "prečítané {n} používateľmi" -agreeTo: "Súhlasím s {0}" -tos: "Podmienky používania" -start: "Začať" -home: "Domov" -remoteUserCaution: "Tieto informácie nemusia byť aktuálne, keďže používateľ je na vzdialenom serveri." -activity: "Aktivita" -images: "Obrázky" -birthday: "Dátum narodenia" -yearsOld: "{age} rokov" -registeredDate: "Dátum registrácie" -location: "Lokalita" -theme: "Téma" -themeForLightMode: "Téma pri svetlom režime" -themeForDarkMode: "Téma pri tmavom režime" -light: "Svetlá" -dark: "Tmavá" -lightThemes: "Svetlá téma" -darkThemes: "Tmavá téma" -syncDeviceDarkMode: "Synchronizovať tmavú tému s nastavení vášho systému" -drive: "Disk" -fileName: "Názov súboru" -selectFile: "Vyberte súbor" -selectFiles: "Vyberte súbory" -selectFolder: "Vyberte priečinok" -selectFolders: "Vyberte priečinky" -renameFile: "Premenovať súbor" -folderName: "Názov priečinka" -createFolder: "Vytvoriť priečinok" -renameFolder: "Premenovať priečinok" -deleteFolder: "Odstrániť priečinok" -addFile: "Pridať súbor" -emptyDrive: "Váš disk je prázdny" -emptyFolder: "Tento priečinok je prázdny" -unableToDelete: "Nedá sa odstrániť" -inputNewFileName: "Zadajte nový názov" -inputNewDescription: "Zadajte nový popis" -inputNewFolderName: "Zadajte nový názov priečinka" -circularReferenceFolder: "Cieľový priečinok je podpriečinkom priečinka, ktorý chcete presunúť." -hasChildFilesOrFolders: "Nemôžete odstrániť priečinok sú súbormi." -copyUrl: "Kopírovať URL" -rename: "Premenovať" -avatar: "Avatar" -banner: "BAnner" -nsfw: "NSFW" -whenServerDisconnected: "Keď sa stratí spojenie so serverom" -disconnectedFromServer: "Spojenie so serverom bolo prerušené" -reload: "Obnoviť" -doNothing: "Ignorovať" -reloadConfirm: "Chcete obnoviť časovú os?" -watch: "Sledovať" -unwatch: "Nesledovať" -accept: "Súhlasím" -reject: "Nesúhlasím" -normal: "Normálne" -instanceName: "Názov servera" -instanceDescription: "Popis servera" -maintainerName: "Správca" -maintainerEmail: "E-mailová adresa správcu" -tosUrl: "URL zmluvných podmienok" -thisYear: "Rok" -thisMonth: "Mesiac" -today: "Dnes" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Stránky" -integration: "Integrácia" -connectService: "Pripojiť" -disconnectService: "Odpojiť" -enableLocalTimeline: "Povoliť lokálnu časovú os" -enableGlobalTimeline: "Povoliť globálnu časovú os" -disablingTimelinesInfo: "Administrátori a moderátori majú vždy prístup ku všetkým časovým osiam, aj keď sú vypnuté." -registration: "Registrácia" -enableRegistration: "Povoliť registráciu nových používateľov" -invite: "Pozvať" -driveCapacityPerLocalAccount: "Kapacita disku pre používateľa" -driveCapacityPerRemoteAccount: "Kapacita disku pre vzdialeného používateľa" -inMb: "V megabajtoch" -iconUrl: "Favicon URL" -bannerUrl: "URL obrázku bannera" -backgroundImageUrl: "URL obrázku pozadia" -basicInfo: "Základné informácie" -pinnedUsers: "Pripnutí používatelia" -pinnedUsersDescription: "Zoznam mien používateľov oddelených riadkami, ktorý budú pripnutí v záložke \"Objavovať\"." -pinnedPages: "Pripnuté stránky" -pinnedPagesDescription: "Na každý riadok zadajte cesty stránok, ktoré chcete pripnúť na vrch stránky tohoto servera." -pinnedClipId: "ID pripnutého klipu" -pinnedNotes: "Pripnuté poznámky" -hcaptcha: "hCaptcha" -enableHcaptcha: "Zapnúť hCaptchu" -hcaptchaSiteKey: "Site key" -hcaptchaSecretKey: "Secret key" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Zapnúť ReCAPTCHA" -recaptchaSiteKey: "Site key" -recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Použitie viacerých Captcha systémov môže sposobiť problémy. Chcete radšej vypnúť ostatné Captcha systémy? Môžete ich povoliť viaceré stlačení Zrušiť." -antennas: "Antény" -manageAntennas: "Spravovať antény" -name: "Názov" -antennaSource: "Zdroj antény" -antennaKeywords: "Počúvané kľúčové slová" -antennaExcludeKeywords: "Vylúčené kľúčové slová" -antennaKeywordsDescription: "Oddeľte medzerami pre podmienku AND alebo novými riadkami pre podmienku OR." -notifyAntenna: "Upozorniť na nové poznámky" -withFileAntenna: "Len poznámky so súbormi" -enableServiceworker: "Povoliť Service Worker" -antennaUsersDescription: "Zoznam používateľov jeden na riadok" -caseSensitive: "Rozlišuje malé a veľké písmená" -withReplies: "Vrátane odpovedí" -connectedTo: "Nasledujúce účty sú pripojené" -notesAndReplies: "Poznámky a odpovede" -withFiles: "Vrátane súborov" -silence: "Ticho" -silenceConfirm: "Naozaj chcete utíšiť tohoto používateľa?" -unsilence: "Vrátiť utíšenie" -unsilenceConfirm: "Naozaj chcete vrátiť utíšenie tohoto používateľa?" -popularUsers: "Populárni používatelia" -recentlyUpdatedUsers: "Používatelia s najnovšou aktivitou" -recentlyRegisteredUsers: "Najnovší používatelia" -recentlyDiscoveredUsers: "Naposledy objavení používatelia" -exploreUsersCount: "Existuje {count} používateľov" -exploreFediverse: "Objavovať Fediverzum" -popularTags: "Populárne značky" -userList: "Zoznamy" -about: "Informácie" -aboutMisskey: "O Misskey" -administrator: "Administrátor" -token: "Token" -twoStepAuthentication: "Dvojfaktorová autentifikácia" -moderator: "Moderátor" -moderation: "Moderovanie" -nUsersMentioned: "{n} používateľov spomenulo" -securityKey: "Bezpečnostný kľúč" -securityKeyName: "Názov kľúča" -registerSecurityKey: "Registrovať bezpečnostný kľúč" -lastUsed: "Naposledy použité" -unregister: "Odregistrovať" -passwordLessLogin: "Nastaviť bezheslové prihlásenie" -resetPassword: "Resetovať heslo" -newPasswordIs: "Nové heslo je \"{password}\"" -reduceUiAnimation: "Menej UI animácií" -share: "Zdieľať" -notFound: "Nenájdené" -notFoundDescription: "Nenašla sa žiadna stránka na zadanej URL." -uploadFolder: "Predvolený priečinok pre nahrávanie" -cacheClear: "Vyčistiť cache" -markAsReadAllNotifications: "Označiť všetky oznámenia ako prečítané" -markAsReadAllUnreadNotes: "Označiť všetky poznámky ako prečítané" -markAsReadAllTalkMessages: "Označiť všetky správy ako prečítané" -help: "Pomoc" -inputMessageHere: "Sem napíšte správu" -close: "Zavrieť" -group: "Skupina" -groups: "Skupiny" -createGroup: "Vytvoriť skupinu" -ownedGroups: "Vlastnené skupiny" -joinedGroups: "Členstvo v skupinách" -invites: "Pozvať" -groupName: "Názov skupiny" -members: "Členovia" -transfer: "Presun" -messagingWithUser: "Súkromný chat" -messagingWithGroup: "Skupinový chat" -title: "Nadpis" -text: "Text" -enable: "Povoliť" -next: "Ďalší" -retype: "Zadajte znovu" -noteOf: "Poznámky používateľa {user}" -inviteToGroup: "Pozvať do skupiny" -quoteAttached: "Citované" -quoteQuestion: "Pripojiť ako citát?" -noMessagesYet: "Zatiaľ žiadne správy" -newMessageExists: "Máte novú správu" -onlyOneFileCanBeAttached: "Ku správe môžete priložiť len jeden súbor" -signinRequired: "Prihláste sa, prosím!" -invitations: "Pozvať" -invitationCode: "Kód pozvánky" -checking: "Overujem..." -available: "Dostupné" -unavailable: "Nedostupné" -usernameInvalidFormat: "Povolené sú písmená, čísla a _." -tooShort: "Príliš krátke" -tooLong: "Príliš dlhé" -weakPassword: "Slabé heslo" -normalPassword: "Dobré heslo" -strongPassword: "Silné heslo" -passwordMatched: "Heslá sú rovnaké" -passwordNotMatched: "Heslá nie sú rovnaké" -signinWith: "Prihlásiť sa použitím {x}" -signinFailed: "Nedá sa prihlásiť. Skontrolujte prosím meno používateľa a heslo." -tapSecurityKey: "Ťuknite na bezpečnostný kľúč" -or: "Alebo" -language: "Jazyk" -uiLanguage: "Jazyk používateľského prostredia" -groupInvited: "Pozvať do skupiny" -aboutX: "O {x}" -useOsNativeEmojis: "Používať natívne emoji z OS" -disableDrawer: "Nepoužívať šuflíkové menu" -youHaveNoGroups: "Nemáte žiadne skupiny" -joinOrCreateGroup: "Požiadajte o pozvanie do existujúcej skupiny alebo vytvorte novú." -noHistory: "Žiadna história" -signinHistory: "História prihlásení" -disableAnimatedMfm: "Vypnúť MFM s animáciou" -doing: "Pracujem..." -category: "Kategórie" -tags: "Značky" -docSource: "Zdroj tohoto dokumentu" -createAccount: "Vytvoriť účet" -existingAccount: "Existujúci účet" -regenerate: "Pregenerovať" -fontSize: "Veľkosť písma" -noFollowRequests: "Nemáte nijaké čakajúce žiadosti o sledovanie" -openImageInNewTab: "Otvoriť obrázok v novom tabe" -dashboard: "Prehľad" -local: "Lokálne" -remote: "Vzdialené" -total: "Celkom" -weekOverWeekChanges: "Medzitýždňové zmeny" -dayOverDayChanges: "Medzidenné zmeny" -appearance: "Vzhľad" -clientSettings: "Nastavenia klienta" -accountSettings: "Nastavenia účtu" -promotion: "Propagácia" -promote: "Propagovať" -numberOfDays: "Počet dní" -hideThisNote: "Skryť túto poznámku" -showFeaturedNotesInTimeline: "Zobraziť významné poznámky v časovej osi" -objectStorage: "Objektové úložisko" -useObjectStorage: "Použiť objektové úložisko" -objectStorageBaseUrl: "Základná URL" -objectStorageBaseUrlDesc: "URL použitá ako referencia. Zadajte URL svojho CDN alebo Proxy ak niektoré používate. S3: 'https://.s3.amazonaws.com', GCS: 'https://storage.googleapis.com/' atď." -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Prosím zadajte názov bucketu od svojho poskytovateľa." -objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Súbory budú ukladané do priečinkov pod týmto prefixom." -objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Nechajte prázdne ak používate AWS S3, inak zadajte endpoint ako \"\" alebo \":\". Záleží to od služby, ktorú používate." -objectStorageRegion: "Región" -objectStorageRegionDesc: "Zadajte región ako 'xx-east-1'. Ak vaša služba nerozlišuje regióny, nechajte prázdne alebo zadajte 'us-east-1'." -objectStorageUseSSL: "Použiť SSL" -objectStorageUseSSLDesc: "Vypnite to ak nechcete použiť HTTPS na API spojenia." -objectStorageUseProxy: "Pripájať cez Proxy" -objectStorageUseProxyDesc: "Vypnite ak nechcete, aby spojenia na API išli cez Proxy" -objectStorageSetPublicRead: "Pri nahratí nastaviť \"public-read\"" -serverLogs: "Logy servera" -deleteAll: "Odstrániť všetko" -showFixedPostForm: "Zobraziť formulár na nové príspevky nad časovou osou" -newNoteRecived: "Sú nové poznámky" -sounds: "Zvuky" -listen: "Počúvať" -none: "Žiadne" -showInPage: "Zobraziť v stránke" -popout: "Pop-out" -volume: "Hlasitosť" -masterVolume: "Celková hlasitosť" -details: "Detaily" -chooseEmoji: "Vybrať emoji" -unableToProcess: "Operáciu sa nepodarilo dokončiť." -recentUsed: "Neposledy použité" -install: "Nainštalovať" -uninstall: "Odinštalovať" -installedApps: "Autorizované aplikácie" -nothing: "Nič tu nie je" -installedDate: "Dátum autorizácie" -lastUsedDate: "Naposledy použité" -state: "Status" -sort: "Zoradiť" -ascendingOrder: "Vzostupne" -descendingOrder: "Zostupne" -scratchpad: "Zápisník" -scratchpadDescription: "Zápisník poskytuje prostredia pre experimenty s AiScriptom. Môžete písať, spúšťať a skúšať vysledky pri interakcii s Misskey." -output: "Výstup" -script: "Skript" -disablePagesScript: "Vypnúť AiScript na stránkach" -updateRemoteUser: "Aktualizovať informácie o vzdialenom účte" -deleteAllFiles: "Odstrániť všetky súbory" -deleteAllFilesConfirm: "Naozaj chcete odstrániť všetky súbory" -removeAllFollowing: "Zrušiť sledovani všetkých používateľov" -removeAllFollowingDescription: "Týmto zrušíte sledovanie všetkých používateľov z {host}. Spustite to prosím, keď server napríklad už neexistuje." -userSuspended: "Tento používateľ je zmrazený." -userSilenced: "Tento používateľ je umlčaný." -yourAccountSuspendedTitle: "Tento účet je zmrazený" -yourAccountSuspendedDescription: "Tento účet bol zmrazený, lebo porušoval zmluvné podmienky. Kontaktujte administrátora ak chcete viac podrobností. Prosím nevytvárajte nový účet." -menu: "Menu" -divider: "Oddeľovač" -addItem: "Pridať položku" -relays: "Prenos" -addRelay: "Pridať prenos" -inboxUrl: "Inbox URL" -addedRelays: "Pridané prenosy" -serviceworkerInfo: "Musí byť zapnuté pre push notifikácie." -deletedNote: "Odstránené príspevky" -invisibleNote: "Skryté príspevky" -enableInfiniteScroll: "Zapnúť nekonečné skrolovanie" -visibility: "Viditeľnosť" -poll: "Hlasovanie" -useCw: "Skryť obsah" -enablePlayer: "Otvoriť video prehrávač" -disablePlayer: "Zavrieť video prehrávač" -expandTweet: "Rozšíriť tweet" -themeEditor: "Editor tém" -description: "Popis" -describeFile: "Pridať nadpis" -enterFileDescription: "Zadajte nadpis" -author: "Autor" -leaveConfirm: "Máte neuložené zmeny. Chcete ich zahodiť?" -manage: "Administrácia" -plugins: "Pluginy" -preferencesBackups: "Zálohy nastavení" -deck: "Deck" -useBlurEffectForModal: "Použiť efekt rozmazania na okná" -useFullReactionPicker: "Použiť plnú veľkosť výberu reakcií" -width: "Šírka" -height: "Výška" -large: "Veľké" -medium: "Stredné" -small: "Malé" -generateAccessToken: "Vygenerovať prístupový token" -permission: "Oprávnenia" -enableAll: "Povoliť všetko" -disableAll: "Vypnúť všetko" -tokenRequested: "Povoliť prístup k účtu" -pluginTokenRequestedDescription: "Tento plugin bude môcť používať oprávnenia nastavené tu." -notificationType: "Typ oznámenia" -edit: "Upraviť" -useStarForReactionFallback: "Použiť ★ keď emoji reakcie nie je známe" -emailServer: "Email server" -enableEmail: "Zapnúť email" -emailConfigInfo: "Používa sa na overenie emaily pri registrácii alebo pri zabudnutí hesla" -email: "Email" -emailAddress: "Emailová adresa" -smtpConfig: "Nastavenia SMTP servera" -smtpHost: "Host" -smtpPort: "Port" -smtpUser: "Meno používateľa" -smtpPass: "Heslo" -emptyToDisableSmtpAuth: "Vynechaním mena hesla vypnete SMTP verifikáciu" -smtpSecure: "Použiť implicitné SSL/TLS pre SMTP spojenia" -smtpSecureInfo: "Toto vypnite keď používate STARTTLS" -testEmail: "Doručenie testovacieho emailu" -wordMute: "Stíšenie slova" -regexpError: "Chyba v regulárnom výraze" -regexpErrorDescription: "Na riadku {line} sa vyskytla chyba v stíšenom slove {tab}." -instanceMute: "Stíšené servery" -userSaysSomething: "{name} niečo povedal/a" -makeActive: "Aktivovať" -display: "Zobraziť" -copy: "Kopírovať" -metrics: "Metriky" -overview: "Prehľad" -logs: "Logy" -delayed: "Oneskorené" -database: "Databáza" -channel: "Kanály" -create: "Vytvoriť" -notificationSetting: "Nastavenia oznámení" -notificationSettingDesc: "Vyberte typ oznámení na zobrazenie" -useGlobalSetting: "Použiť globálne nastavenie" -useGlobalSettingDesc: "Ak je zapnuté, použijú sa oznámenia vášho účtu. Ak je vypnuté, použijú sa jednotlivé nastavenia." -other: "Ostatní" -regenerateLoginToken: "Pregenerovať prihlasovací token" -regenerateLoginTokenDescription: "Pregeneruje token interne používaný počas prihlásenia. Normálne toto netreba robiť. Ak sa pregeneruje, všetky zariadenia sa odhlásia." -setMultipleBySeparatingWithSpace: "Viaceré položky oddeľte medzerami." -fileIdOrUrl: "ID alebo URL súboru" -behavior: "Správanie" -sample: "Ukážka" -abuseReports: "Nahlásenia" -reportAbuse: "Nahlásiť" -reportAbuseOf: "Nahlásiť {name}" -fillAbuseReportDescription: "Prosím vyplňte podrobnosti nahlásenia. Ak sa týka konkrétnej poznámky, prosím napíšte jej URL." -abuseReported: "Vaše nahlásenie je odoslané. Veľmi pekne ďakujeme." -reporter: "Nahlásil" -reporteeOrigin: "Pôvod nahláseného" -reporterOrigin: "Pôvod nahlasovača" -forwardReport: "Preposlať nahlásenie na server" -forwardReportIsAnonymous: "Namiesto vášho účtu bude zobrazený anonymný systémový účet na vzdialenom serveri ako autor nahlásenia." -send: "Poslať" -abuseMarkAsResolved: "Označiť nahlásenia ako vyriešené" -openInNewTab: "Otvoriť v novom tabe" -openInSideView: "Otvoriť v bočnom paneli" -defaultNavigationBehaviour: "Predvolené správanie navigácie" -editTheseSettingsMayBreakAccount: "Úpravou týchto nastavení si môžete pokaziť účet." -instanceTicker: "Informácie servera o poznámkach" -waitingFor: "Čaká sa na {x}" -random: "Náhodné" -system: "Systém" -switchUi: "Prepnúť UI" -desktop: "Desktop" -clip: "Klip" -createNew: "Vytvoriť nový" -optional: "Voliteľné" -createNewClip: "Vytvoriť nový klip" -unclip: "Odopnúť" -confirmToUnclipAlreadyClippedNote: "Táto poznámka je už pripnutá ako \"{name}\". Naozaj ju chcete odopnúť?" -public: "Verejné" -i18nInfo: "Misskey je prekladaný do rôznych jazykov dobrovoľníkmi. Pomôcť môžete na {link}." -manageAccessTokens: "Spravovať prístupové tokeny" -accountInfo: "Informácie o účte" -notesCount: "Počet poznámok" -repliesCount: "Počet odoslaných odpovedí" -renotesCount: "Počet preposlaných poznámok" -repliedCount: "Počet odpovedí prijatých" -renotedCount: "Počet preposlaní prijatých" -followingCount: "Počet sledovaných účtov" -followersCount: "Počet sledujúcich" -sentReactionsCount: "Počet poslaných reakcií" -receivedReactionsCount: "Počet prijatých reakcií" -pollVotesCount: "Počet odoslaných hlasov" -pollVotedCount: "Počet prijatých hlasov" -yes: "Áno" -no: "Nie" -driveFilesCount: "Počet súborov na disku" -driveUsage: "Využité miesto na disku" -noCrawle: "Odmietať indexovanie crawlerov" -noCrawleDescription: "Požiadať vyhľadávače, aby neindexovali váš profil, poznámky, stránky, atď." -lockedAccountInfo: "Pokým nenastavíte viditeľnosť poznámok na \"Len pre sledujúcich\", vaše príspevky bude vidieť hocikto, aj keď vyžadujete manuálne potvrdenie sledovania." -alwaysMarkSensitive: "Predvolene označovať ako NSFW" -loadRawImages: "Načítať originálne obrázky namiesto miniatúr" -disableShowingAnimatedImages: "Neprehrávať animované obrázky" -verificationEmailSent: "Odoslali sme overovací email. Overenie dokončíte kliknutím na odkaz v emaili." -notSet: "Nenastavené" -emailVerified: "Email overený" -noteFavoritesCount: "Počet obľúbených poznámok" -pageLikesCount: "Počet obľúbených stránok" -pageLikedCount: "Počet prijatých \"páči sa mi\"" -contact: "Kontakt" -useSystemFont: "Použiť predvolené systémové písmo" -clips: "Klip" -experimentalFeatures: "Experimentálne funkcie" -developer: "Vývojár" -makeExplorable: "Spraviť účet viditeľný v \"Objavovať\"" -makeExplorableDescription: "Ak toto vypnete, váš účet sa nezobrazí v sekcii \"Objavovat\"." -showGapBetweenNotesInTimeline: "Zobraziť medzeru medzi príspevkami časovej osi." -duplicate: "Duplikovať" -left: "Naľavo" -center: "Stred" -wide: "Široko" -narrow: "Úzko" -reloadToApplySetting: "Toto nastavenia sa prejaví až po obnovení stránky. Obnoviť teraz?" -needReloadToApply: "Toto nastavenie sa prejaví až po obnovení stránky." -showTitlebar: "Zobraziť riadok s nadpisom" -clearCache: "Vyprázdniť cache" -onlineUsersCount: "{n} používateľov je online" -nUsers: "{n} používateľov" -nNotes: "{n} poznámok" -sendErrorReports: "Poslať nahlásenie chyby" -sendErrorReportsDescription: "Keď je zapnuté, v prípade problému sa odošlú podrobné informácie o chybe do Misskey. Pomôžete tak zvýšiť kvalitu Misskey.\nTieto informácie zahŕňajú verziu vášho OS, použitý prehliadač, históriu aktivít, atď." -myTheme: "Moja téma" -backgroundColor: "Pozadie" -accentColor: "Akcent" -textColor: "Text" -saveAs: "Uložiť ako..." -advanced: "Rozšírené" -value: "Hodnoty" -createdAt: "Vytvorené" -updatedAt: "Upravené" -saveConfirm: "Uložiť zmeny?" -deleteConfirm: "Naozaj odstrániť?" -invalidValue: "Nesprávna hodnota." -registry: "Register" -closeAccount: "Zavrieť účet" -currentVersion: "Aktuálna verzia" -latestVersion: "Najnovšia verzia" -youAreRunningUpToDateClient: "Používate najnovšiu verziu vášho klienta." -newVersionOfClientAvailable: "Je dostupná novšia verzia vášho klienta." -usageAmount: "Využitie" -capacity: "Kapacita" -inUse: "Použité" -editCode: "Upraviť kód" -apply: "Použiť" -receiveAnnouncementFromInstance: "Prijať notifikácie z tohoto servera" -emailNotification: "Emailové upozornenia" -publish: "Zverejniť" -inChannelSearch: "Hľadať v kanáli" -useReactionPickerForContextMenu: "Otvoriť výber reakcií na pravý klik" -typingUsers: "{users} píše/u" -jumpToSpecifiedDate: "Skočiť na konkrétny dátum" -showingPastTimeline: "Práve vidíte starú časovú os" -clear: "Vrátiť" -markAllAsRead: "Označiť všetko ako prečítané" -goBack: "Späť" -unlikeConfirm: "Naozaj odstrániť váš like?" -fullView: "Plný pohľad" -quitFullView: "Zavrieť plný pohľad" -addDescription: "Pridať popis" -userPagePinTip: "Tu môžete zobraziť poznámky zvolením \"Pripnúť na profil\" z menu jednotlivých poznámok." -notSpecifiedMentionWarning: "Táto poznámka obsahuje spomenutých používateľov, ktorí nie sú medzi adresátmi." -info: "Informácie" -userInfo: "Informácie o používateľovi" -unknown: "Neznáme" -onlineStatus: "Online status" -hideOnlineStatus: "Skryť online status" -hideOnlineStatusDescription: "Skrytie vášho online statusu zníži pohodlnosť niektorých funkcií ako napríklad vyhľadávanie." -online: "Online" -active: "Aktívny" -offline: "Offline" -notRecommended: "Neodporúčané" -botProtection: "Bot ochrana" -instanceBlocking: "Blokované servery" -selectAccount: "Vyberte účet" -switchAccount: "Prepnút účet" -enabled: "Zapnuté" -disabled: "Vypnuté" -quickAction: "Rýchle akcie" -user: "Používatelia" -administration: "Spravovanie" -accounts: "Účty" -switch: "Prepnúť" -noMaintainerInformationWarning: "Informácie správcu nie sú nastavené." -noBotProtectionWarning: "Ochrana proti botom nie je nastavená." -configure: "Konfigurovať" -postToGallery: "Vytvoriť nový príspevok v galérii" -gallery: "Galéria" -recentPosts: "Najnovšie príspevky" -popularPosts: "Populárne príspevky" -shareWithNote: "Zdieľať s poznámkou" -ads: "Reklamy" -expiration: "Ukončiť hlasovanie" -memo: "Memo" -priority: "Priorita" -high: "Vysoká" -middle: "Stredné" -low: "Málo" -emailNotConfiguredWarning: "Nie je nastavená emailová adresa." -ratio: "Pomer" -previewNoteText: "Zobraziť náhľad" -customCss: "Vlastné CSS" -customCssWarn: "Toto nastavenie by sa malo používať iba ak viete čo robíte. Zadanie nesprávnych hodnôt môže spôsobiť nenormálne správanie klienta." -global: "Globálne" -squareAvatars: "Zobrazovať štvorcové avatary" -sent: "Poslať" -received: "Prijaté" -searchResult: "Výsledky hľadania" -hashtags: "Hashtagy" -troubleshooting: "Riešenie problémov" -useBlurEffect: "Používať efekty rozmazania v UI" -learnMore: "Zistiť viac" -misskeyUpdated: "Misskey sa aktualizoval!" -whatIsNew: "Čo je nové?" -translate: "Preložiť" -translatedFrom: "Preložené z {x}" -accountDeletionInProgress: "Odstraňovanie účtu prebieha" -usernameInfo: "Meno, ktoré odlišuje váš účet od ostatných na tomto serveri. Môžete použiť abecedu (a~z, A~Z), čísla (0~9) alebo podtržník (_). Používateľské mená sa nedajú neskôr zmeniť." -aiChanMode: "Ai režim" -keepCw: "Nechať varovania obsahu" -pubSub: "Pub/Sub účty" -lastCommunication: "Posledná komunikácia" -resolved: "Vyriešené" -unresolved: "Nevyriešené" -breakFollow: "Nesledovať" -itsOn: "Zapnuté" -itsOff: "Vypnuté" -emailRequiredForSignup: "Registrácia vyžaduje emailovú adresu" -unread: "Neprečítané" -filter: "Filter" -controlPanel: "Ovládací panel" -manageAccounts: "Správa účtov" -makeReactionsPublic: "Reakcie sú verejné" -makeReactionsPublicDescription: "Toto spraví všetky vaše minulé reakcie viditeľné verejnosti." -classic: "Klasika" -muteThread: "Ztíšiť vlákno" -unmuteThread: "Zrušiť stíšenie vlákna" -ffVisibility: "Viditeľnosť sledujúcich/sledovaných" -ffVisibilityDescription: "Umožňuje nastaviť kto vidí koho sledujete a kto vás sleduje." -continueThread: "Zobraziť pokračovanie vlákna" -deleteAccountConfirm: "Toto nezvrátiteľne vymaže váš účet. Pokračovať?" -incorrectPassword: "Nesprávne heslo." -voteConfirm: "Potvrdzujete svoj hlas za \"{choice}\"?" -hide: "Skryť" -leaveGroup: "Opustiť skupiny" -leaveGroupConfirm: "Naozaj chcete opustiť \"{name}\"?" -useDrawerReactionPickerForMobile: "Zobraziť výber reakcií ako šuflík na mobile" -welcomeBackWithName: "Vitajte späť, {name}" -clickToFinishEmailVerification: "Kliknutím na [{ok}] dokončíte overeniu emailu." -overridedDeviceKind: "Typ zariadenia" -smartphone: "Smartfón" -tablet: "Tablet" -auto: "Automaticky" -themeColor: "Farba témy" -size: "Veľkosť" -numberOfColumn: "Počet stĺpcov" -searchByGoogle: "Hľadať cez Google" -instanceDefaultLightTheme: "Predvolená svetlá téma" -instanceDefaultDarkTheme: "Predvolená tmavá téma" -instanceDefaultThemeDescription: "Vložte kód témy v objektovom formáte" -mutePeriod: "Trvanie stíšenia" -indefinitely: "Navždy" -tenMinutes: "10 minút" -oneHour: "1 hodina" -oneDay: "1 deň" -oneWeek: "1 týždeň" -reflectMayTakeTime: "Zmeny môžu chvíľu trvať kým sa prejavia." -failedToFetchAccountInformation: "Nepodarilo sa načítať informácie o účte." -rateLimitExceeded: "Prekročený limit rýchlosti" -cropImage: "Orezanie obrázku" -cropImageAsk: "Chcete orezať obrázok?" -file: "Súbor/y" -recentNHours: "Posledných {n} hodín" -recentNDays: "Posledných {n} dní" -noEmailServerWarning: "Nie je nastavený emailový server." -thereIsUnresolvedAbuseReportWarning: "Existuje nevyriešené nahlásenie zneužitia." -recommended: "Odporúčané" -driveCapOverrideLabel: "Zmena limitu úložiska pre tohoto používateľa" -driveCapOverrideCaption: "Ak je zadaná hodnota menšia alebo rovná 0, zruší sa." -isSystemAccount: "Tieto účty automaticky vytvoril a spravuje systém." -typeToConfirm: "Ak chcete vykonať túto operáciu, napíšte {x}" -deleteAccount: "Vymazať účet" -document: "Dokument" -numberOfPageCache: "Počet cachí pre stránky" -numberOfPageCacheDescription: "Zvýši rýchlosť ale tiež nároky na pamäť." -logoutConfirm: "Naozaj sa chcete odhlásiť?" -statusbar: "Stavový riadok" -pleaseSelect: "Prosím vyberte" -reverse: "Preklopiť" -colored: "Farebné" -refreshInterval: "Interval obnovenia" -label: "Popisok" -type: "Typ" -speed: "Rýchlosť" -slow: "Pomaly" -fast: "Rýchlo" -sensitiveMediaDetection: "Detekcia citlivých médií." -localOnly: "Iba lokálne" -remoteOnly: "Len vzdialené" -failedToUpload: "Nahrávanie zlyhalo" -cannotUploadBecauseInappropriate: "Nemožno nahrať, pretože pravdepodobne obsahuje nevhodný obsah." -cannotUploadBecauseNoFreeSpace: "Nemožno nahrať kvôli nedostatku voľného úložiska." -beta: "Beta" -enableAutoSensitive: "Automatická detekcia NSFW" -enableAutoSensitiveDescription: "Ak je zapnuté, príznak NSFW sa na médiách automaticky nastaví pomocou strojového učenia. Aj keď je táto funkcia vypnutá, v niektorých prípadoch sa môže nastaviť automaticky." -activeEmailValidationDescription: "Dôkladnejšie overí e-mailovú adresu používateľa tým, že zistí, či ide o vyradenú e-mailovú adresu a či sa s ňou dá skutočne komunikovať. Ak nie je začiarknuté, e-mailová adresa sa kontroluje len ako text." -navbar: "Navigačný panel" -account: "Účty" -move: "Pohyb" -_sensitiveMediaDetection: - description: "Strojové učenie sa použije na automatickú detekciu citlivých médií na účely ich moderovania. Mierne sa zvýši zaťaženie servera." - sensitivity: "Citlivosť detekcie" - sensitivityDescription: "Nižšia citlivosť znižuje počet falošne pozitívnych výsledkov (false positives). Vyššia citlivosť znižuje počet falošne negatívnych výsledkov (false negatives)." - setSensitiveFlagAutomatically: "Nastaviť príznak NSFW" - setSensitiveFlagAutomaticallyDescription: "Aj keď je toto nastavenie vypnuté, výsledok rozhodnutia je interne uložený." - analyzeVideos: "Zapnúť analýzu videa" - analyzeVideosDescription: "Okrem obrázkov zapne detekciu aj pre videá. Zaťaženie servera sa mierne zvýši." -_emailUnavailable: - used: "Táto emailová adresa sa už používa" - format: "Formát emailovej adresy je nesprávny" - disposable: "Jednorázové emailové adresy sa nemôžu používať." - mx: "Tento emailový server nefunguje." - smtp: "Tento emailový server neodpovedá." -_ffVisibility: - public: "Zverejniť" - followers: "Len viditeľní sledujúci" - private: "Súkromné" -_signup: - almostThere: "Skoro na konci" - emailAddressInfo: "Prosím zadajte svoju emailovú adresu!" - emailSent: "Na vašu emailovú adresu ({email}) sme odoslali email. Vytvorenie účtu dokončíte kliknutím na odkaz v emaili." -_accountDelete: - accountDelete: "Odstrániť účet" - mayTakeTime: "Keďže odstránenie účtu je náročný proces, môže to nejaký čas trvať. Záleží koľko obsahu ste vytvorili a koľko súborov ste nahrali." - sendEmail: "Po odstránení účtu vám pošleme email na emailovú adresu zadanú pri registrácii tohoto účtu." - requestAccountDelete: "Požiadať o zmazanie účtu" - started: "Odstraňovanie začalo." - inProgress: "Odstraňovanie prebieha" -_ad: - back: "Späť" - reduceFrequencyOfThisAd: "Túto reklamu zobrazovať menej" -_forgotPassword: - enterEmail: "Zadajte emailovú adresu, ktorú ste použili pri registrácii. Pošleme vám na ňu odkaz, cez ktorý si môžete obnoviť heslo." - ifNoEmail: "Ak ste pri registrácii nepoužili email, prosím kontaktujte administrátora." - contactAdmin: "Tento server nepodporuje používanie emailových adries, prosím kontaktuje administrátor, ktorý vám resetuje heslo." -_gallery: - my: "Moja galéria" - liked: "Obľúbené príspevky" - like: "Páči sa mi" - unlike: "Nepáči sa mi" -_email: - _follow: - title: "Máte nového sledujúceho" - _receiveFollowRequest: - title: "Dostali ste žiadosť o sledovanie" -_plugin: - install: "Inštalova pluginy" - installWarn: "Prosím neinštalujte nedôveryhodné pluginy." - manage: "Spravovanie pluginov" -_preferencesBackups: - list: "Vytvorené zálohy" - saveNew: "Uložiť novú" - loadFile: "Nahrať súbor" - apply: "Použiť na toto zariadenie" - save: "Uložiť" - inputName: "Názov zálohy" - cannotSave: "Nedá sa uložiť" - nameAlreadyExists: "Záloha s názvom \"{name}\" už existuje. Zadajte iný názov." - applyConfirm: "Chcete použiť zálohu '{name}' na aktuálne zariadenie? Aktuálne nastavenia zariadenia sa stratia." - saveConfirm: "Chcete prepísať {name}?" - deleteConfirm: "Naozaj chcete odstrániť \"{name}\"?" - renameConfirm: "Chcete zmeniť \"{old}\" na \"{new}\"?" - noBackups: "Nie je k dispozícii žiadna záloha. \"Uložiť novú\" umožňuje uložiť aktuálnu konfiguráciu zariadenia na server." - createdAt: "Dátum vytvorenia: {date} {time}" - updatedAt: "Dátum úpravy: {date} {time}" - cannotLoad: "Nedá sa nahrať" - invalidFile: "Neplatný formát súboru" -_registry: - scope: "Oblasť" - key: "Kľúč" - keys: "Kľúče" - domain: "Doména" - createKey: "Vytvoriť kľúč" -_aboutMisskey: - about: "Misskey je open-source softvér, ktorý vyvíja syuilo od 2014." - contributors: "Hlavní prispievatelia" - allContributors: "Všetci prispievatelia" - source: "Zdrojový kód" - translation: "Preložiť Misskey" - donate: "Podporiť Misskey" - morePatrons: "Takisto oceňujeme podporu mnoých ďalších, ktorí tu nie sú uvedení. Ďakujeme! 🥰" - patrons: "Prispievatelia" -_nsfw: - respect: "Skryť NSFW médiá" - ignore: "Neskrývať NSFW médiá" - force: "Skryť všetky médiá" -_mfm: - cheatSheet: "MFM Cheatsheet" - intro: "MFM je Misskey exkluzívny značkovací jazyk, ktorý sa dá používať na viacerých miestach. Tu môžete vidieť zoznam všetkej dostupnej MFM syntaxe." - dummy: "Misskey rozširuje svet Fediverza" - mention: "Zmienka" - mentionDescription: "Používateľa spomeniete použítím zavináča a mena používateľa" - hashtag: "Hashtag" - hashtagDescription: "Môžete zadať hashtag použitím mriežky a textu" - url: "URL" - urlDescription: "URL sa dajú zobraziť." - link: "Odkaz" - linkDescription: "Jednotlivé časti texty sa dajú zobraziť ako URL." - bold: "Tučné" - boldDescription: "Zvýrazní písmená tým, že budú tučnejšie." - small: "Malé" - smallDescription: "Zobrazí obsah malý a tenký." - center: "Vystrediť prvky" - centerDescription: "Zobrazí obsah v strede" - inlineCode: "Kód (inline)" - inlineCodeDescription: "Zobrazí kód so zvýraznením syntaxe." - blockCode: "Kód (blok)" - blockCodeDescription: "Zobrazí viacriadkový kód so zvýraznením syntaxe v bloku." - inlineMath: "Vzorec (inline)" - inlineMathDescription: "Zobrazí matematický vzorec (KaTeX) v riadku." - blockMath: "Vzorec (blok)" - blockMathDescription: "Zobrazí viacriadkový matematický vzorec (KaTeX) v bloku" - quote: "Citovať" - quoteDescription: "Zobrazí obsah ako citát." - emoji: "Vlastné emoji" - emojiDescription: "Pridaním dvojbodiek pred a za názov vlastnej emoji, sa dá zobraziť vlastná emoji." - search: "Hľadať" - searchDescription: "Zobrazí vyhľadávacie pole so zadaným textom." - flip: "Preklopiť" - flipDescription: "Preklopí obsah horizontálne alebo vertikálne" - jelly: "Animácia (želé)" - jellyDescription: "Obsah sa bude hýbať ako želé." - tada: "Animácia (tadá)" - tadaDescription: "Obsah sa bude hýbať ako Tada!" - jump: "Animácia (skok)" - jumpDescription: "Obsah skočí." - bounce: "Animácia (odraz)" - bounceDescription: "Obsah sa bude odrážať." - shake: "Animácia (trasenie)" - shakeDescription: "Obsah sa bude triasť." - twitch: "Animácia (myknutie)" - twitchDescription: "Obsahu dá animáciu silného trasenia." - spin: "Animácia (rotácia)" - spinDescription: "Obsahu pridá otáčajúcu animáciu." - x2: "Veľký" - x2Description: "Zobrazí obsah väčší." - x3: "Veľmi veľký" - x3Description: "Zobrazí obsah ešte väčší." - x4: "Neuveriteľne veľký" - x4Description: "Zobrazí obsah ešte viac veľký než veľmi veľký." - blur: "Rozmazanie" - blurDescription: "Týmto efektom môže byť obsah rozmazaný. Zaostrí sa keď ned neho príde kurzor." - font: "Písmo" - fontDescription: "Nastaví písmo, ktorým sa zobrazí text." - rainbow: "Dúha" - rainbowDescription: "Zobrazí obsah vo farbách dúhy." - sparkle: "Trblietky" - sparkleDescription: "Obsahu dodá trblietajúci efekt." - rotate: "Otáčať" - rotateDescription: "Otočí obsah o určitý uhol." - plain: "Obyčajné" - plainDescription: "Bez akejkoľvej syntaxe" -_instanceTicker: - none: "Nikdy nezobrazovať" - remote: "Zobraziť pre vzdialených používateľov" - always: "Zobraziť vždy" -_serverDisconnectedBehavior: - reload: "Automaticky obnoviť" - dialog: "Zobraziť okno s varovaním" - quiet: "Zobraziť nerušivé varovanie" -_channel: - create: "Vytvoriť kanál" - edit: "Upraviť kanál" - setBanner: "Nastaviť banner" - removeBanner: "Odstrániť banner" - featured: "Trendy" - owned: "Vlastnené" - following: "Sledované" - usersCount: "{n} účastníkov" - notesCount: "{n} poznámok" -_menuDisplay: - sideFull: "Strana" - sideIcon: "Strana (Ikony)" - top: "Hore" - hide: "Skryť" -_wordMute: - muteWords: "Umlčané slová" - muteWordsDescription: "Medzerami oddeľte pre podmienku AND a novými riadkami pre podmienku OR." - muteWordsDescription2: "Regulárne výrazy sa použijú keď použijete okolo lomítka." - softDescription: "Skryje poznámky z časovej osi, ktoré spĺňajú podmienky." - hardDescription: "Zabráni poznámky spĺňajúce množinu podmienok, aby boli pridané do časovej osi. Navyše tieto poznámky nepribudnú v časovej osi ani keď sa podmienky zmenia." - soft: "Mäkké" - hard: "Tvrdé" - mutedNotes: "Umlčané poznámky" -_instanceMute: - instanceMuteDescription: "Toto umlčí všetky poznámky/preposlania zo zoznamu serverov, vrátane tých, na ktoré používatelia odpovedajú z umlčaného servera." - instanceMuteDescription2: "Oddeľte novými riadkami" - title: "Skryje poznámky z uvedených serverov." - heading: "Zoznam umlčaných inštancií" -_theme: - explore: "Objavovať témy" - install: "Nainštalovať tému" - manage: "Spravovať témy" - code: "Kód témy" - description: "Popis" - installed: "{name} je nainštalovaná" - installedThemes: "Nainštalované témy" - builtinThemes: "Vstavané témy" - alreadyInstalled: "Táto téma je už nainštalovaná" - invalid: "Formát tejto témy je nesprávny" - make: "Vytvoriť tému" - base: "Základ" - addConstant: "Pridať konštantu" - constant: "Konštanta" - defaultValue: "Predvolená hodnota" - color: "Farba" - refProp: "Odkaz na vlastnosť" - refConst: "Odkaz na konštantu" - key: "Kľúč" - func: "Funkcie" - funcKind: "Typ funkcie" - argument: "Argument" - basedProp: "Odkazovaná vlastnosť" - alpha: "Priehľadnosť" - darken: "Stmaviť" - lighten: "Zosvetliť" - inputConstantName: "Zadajte názov tejto konštanty" - importInfo: "Ak sem zadáte kód témy, môžete ju importovať do editora tém." - deleteConstantConfirm: "Naozaj chcete odstrániť konštantu {const}?" - keys: - accent: "Akcent" - bg: "Pozadie" - fg: "Text" - focus: "Fokus" - indicator: "Indikátor" - panel: "Panel" - shadow: "Tieň" - header: "Hlavička" - navBg: "Pozadie bočného panela" - navFg: "Text bočného panela" - navHoverFg: "Text bočného panela (pod kurzorom)" - navActive: "Text bočného panela (aktívny)" - navIndicator: "Indikátor bočného panela" - link: "Odkaz" - hashtag: "Hashtag" - mention: "Zmienka" - mentionMe: "Zmienky (mňa)" - renote: "Preposlať" - modalBg: "Pozadie modálu" - divider: "Oddeľovač" - scrollbarHandle: "Rúčka scrollbaru" - scrollbarHandleHover: "Rúčka scrollbaru (pod kurzorom)" - dateLabelFg: "Text dátového popisku" - infoBg: "Pozadie informácií" - infoFg: "Informačný text" - infoWarnBg: "Pozadie varovania" - infoWarnFg: "Text varovania" - cwBg: "CW pozadie tlačidla" - cwFg: "CW text tlačidla" - cwHoverBg: "CW pozadie tlačidla (pod kurzorom)" - toastBg: "Pozadie upozornenia" - toastFg: "Text upozornenia" - buttonBg: "Pozadie tlačidla" - buttonHoverBg: "Pozadie tlačidla (pod kurzorom)" - inputBorder: "Okraj vstupného poľa" - listItemHoverBg: "Pozadie položky zoznamu (pod kurzorom)" - driveFolderBg: "Pozadie priečinu disku" - wallpaperOverlay: "Vrstvenie pozadia" - badge: "Odznak" - messageBg: "Pozadie chatu" - accentDarken: "Akcent (stmavené)" - accentLighten: "Akcent (zosvetlené)" - fgHighlighted: "Zvýraznený text" -_sfx: - note: "Poznámky" - noteMy: "Vlastná poznámka" - notification: "Oznámenia" - chat: "Chat" - chatBg: "Chat (pozadie)" - antenna: "Antény" - channel: "Upozornenia kanála" -_ago: - future: "Budúcnosť" - justNow: "Teraz" - secondsAgo: "pred {n} sekundami" - minutesAgo: "pred {n} minútami" - hoursAgo: "pred {n} hodinami" - daysAgo: "pred {n} dňami" - weeksAgo: "pred {n} týždňami" - monthsAgo: "pred {n} mesiacmi" - yearsAgo: "pred {n} rokmi" -_time: - second: "s" - minute: "min" - hour: "hod" - day: "dní" -_tutorial: - title: "Ako používať Misskey" - step1_1: "Vitajte!" - step1_2: "Táto stránka sa volá \"časová os\". Zobrazuje chronologicky zoradené \"poznámky\" od ľudí, ktorých sledujete." - step1_3: "Vaša časová os je teraz prázdna pretože ste nepridali žiadne poznámky ani nikoho zatiaľ nesledujete." - step2_1: "Podˇme dokončiť nastavenia vášho profilu pred napísaním poznámky alebo sledovaním niekoho." - step2_2: "Poskytnutím informácií o vás uľahčíte ostatným, či chcú vidieť alebo sledovať vaše poznámky." - step3_1: "Dokončili ste nastavovanie svojho profilu?" - step3_2: "Poďme vyskúšať napísať poznámku. Môžete to spraviť stlačením ikony ceruzky na vrchu obrazovky." - step3_3: "Vyplňte polia a stlačte tlačítko vpravo hore." - step3_4: "Nemáte čo povedať? Skúste \"len si nastavujem môj msky\"!" - step4_1: "Napísali ste svoju prvú poznámku?" - step4_2: "Hurá! Teraz by vaša prvá poznámka mala byť na vašej časovej osi." - step5_1: "Teraz skúsme oživiť časovú os sledovaním nejakých ľudí." - step5_2: "{featured} zobrazí populárne poznámku na tomto serveri. {explore} môžete objavovať populárnych používateľov. Skúste tam nájsť ľudí, ktorých by ste radi sledovali!" - step5_3: "Ak chcete sledovať ďalších používateľov, kliknite na ich ikonu a stlačte tlačidlo \"Sledovať\" na ich profile." - step5_4: "Ak má niektorý používateľ ikonu zámku vedľa svojho mena, znamená to, že môže trvať určitý čas, kým daný používateľ schváli vašu žiadosť o sledovanie." - step6_1: "Teraz by ste mali vidieť poznámky ďalších používateľov na svojej časovej osi." - step6_2: "Môžete dať \"reakcie\" na poznámky ďalších ľudí ako rýchlu odpoveď." - step6_3: "Reakciu pridáte kliknutím na \"+\" niekoho poznámke a vybratím emoji, ktorou chcete reagovať." - step7_1: "Gralujeme! Dokončili ste základného sprievodcu Misskey." - step7_2: "Ak sa chcete naučiť viac o Misskey, skúste sekciu {help}." - step7_3: "A teraz, veľa šťastia, bavte sa s Misskey! 🚀" -_2fa: - alreadyRegistered: "Už ste zaregistrovali 2-faktorové autentifikačné zariadenie." - registerDevice: "Registrovať nové zariadenie" - registerKey: "Registrovať bezpečnostný kľúč" - step1: "Najprv si nainštalujte autentifikačnú aplikáciu (napríklad {a} alebo {b}) na svoje zariadenie." - step2: "Potom, naskenujte QR kód zobrazený na obrazovke." - step2Url: "Do aplikácie zadajte nasledujúcu URL adresu:" - step3: "Nastavenie dokončíte zadaním tokenu z vašej aplikácie." - step4: "Od teraz, všetky ďalšie prihlásenia budú vyžadovať prihlasovací token." - securityKeyInfo: "Okrem odtlačku prsta alebo PIN autentifikácie si môžete nastaviť autentifikáciu cez hardvérový bezpečnostný kľúč podporujúci FIDO2 a tak ešte viac zabezpečiť svoj účet." -_permissions: - "read:account": "Vidieť informácie o vašom účte" - "write:account": "Upraviť informácie o vašom účte" - "read:blocks": "Vidieť zoznam blokovaných používateľov" - "write:blocks": "Upraviť zoznam blokovaných používateľov" - "read:drive": "Prístup k súborom a priečinkom na disku" - "write:drive": "Upraviť alebo odstrániť súbory a priečinky na disku" - "read:favorites": "Vidieť váš zoznam obľúbených" - "write:favorites": "Upraviť váš zoznam obľúbených" - "read:following": "Vidieť koho sledujete" - "write:following": "Sledovať alebo nesledovať ďalšie účty" - "read:messaging": "Vidieť vaše chaty" - "write:messaging": "Písať alebo odstraňovať správy v chate" - "read:mutes": "Vidieť váš zoznam stíšených používateľov" - "write:mutes": "Upravovať zoznam stíšených používateľov" - "write:notes": "Písať alebo odstrániť poznámky" - "read:notifications": "Vidieť vaše oznámenia" - "write:notifications": "Pracovať s vašimi notifikáciami" - "read:reactions": "Vidieť vaše reakcie" - "write:reactions": "Upravovať vaše reakcie" - "write:votes": "Hlasovať v hlasovaniach" - "read:pages": "Vidieť vaše stránky" - "write:pages": "Upraviť alebo odstrániť vaše stránky" - "read:page-likes": "Vidieť vaše páčiky na stránkach" - "write:page-likes": "Upraviť páčiky na stránkach" - "read:user-groups": "Vidieť vaše skupiny" - "write:user-groups": "Upraviť alebo odstrániť vaše skupiny" - "read:channels": "Čítať vaše kanály" - "write:channels": "Upravovať vaše kanály" - "read:gallery": "Vidieť vašu galériu" - "write:gallery": "Upravovať vašu galériu" - "read:gallery-likes": "Vidieť zoznam obľúbených príspevkov z galérie" - "write:gallery-likes": "Upraviť zoznam obľúbených príspevov z galérie" -_auth: - shareAccess: "Prajete si povoliť \"{name}\", aby mal prístup k tomuto účtu?" - shareAccessAsk: "Naozaj chcete povoliť tejto aplikácii prístup k tomuto účtu?" - permissionAsk: "Táto aplikácia vyžaduje nasledujúce nastavenia" - pleaseGoBack: "Prosím prejdite späť na aplikáciu" - callback: "Vraciam sa späť na aplikáciu" - denied: "Prístup zamietnutý" -_antennaSources: - all: "Všetky poznámky" - homeTimeline: "Poznámky od sledovaného používateľa" - users: "Poznámky od konkrétneho používateľa" - userList: "Poznámky od používateľov v zozname" - userGroup: "Poznámky od používateľov z konkrétnej skupiny." -_weekday: - sunday: "Nedeľa" - monday: "Pondelok" - tuesday: "Utorok" - wednesday: "Streda" - thursday: "Štvrtok" - friday: "Piatok" - saturday: "Sobota" -_widgets: - memo: "Prilepené poznámky" - notifications: "Oznámenia" - timeline: "Časová os" - calendar: "Kalendár" - trends: "Trendy" - clock: "Hodiny" - rss: "RSS čítačka" - rssTicker: "RSS Ticker" - activity: "Aktivita" - photos: "Fotky" - digitalClock: "Digitálne hodiny" - unixClock: "UNIX čas" - federation: "Federácia" - instanceCloud: "Cloud serverov" - postForm: "Napísať poznámku" - slideshow: "Prezentácia" - button: "Tlačidlo" - onlineUsers: "Online používatelia" - jobQueue: "Fronta úloh" - serverMetric: "Metriky servera" - aiscript: "Konzola AiScript" - aichan: "Ai" -_cw: - hide: "Skryť" - show: "Zobraziť viac" - chars: "{count} znakov" - files: "{count} súbor/ov" -_poll: - noOnlyOneChoice: "Treba aspoň dve voľby" - choiceN: "Voľba {n}" - noMore: "Nemôžete pridať viac volieb" - canMultipleVote: "Povoliť hlasovať za viac volieb." - expiration: "Ukončiť hlasovanie" - infinite: "Nikdy" - at: "Konkrétny dátum..." - after: "Ukončiť po..." - deadlineDate: "Dátum ukončenia" - deadlineTime: "hod" - duration: "Trvanie" - votesCount: "{n} hlasov" - totalVotes: "{n} hlasov celkom" - vote: "Hlasovať" - showResult: "Vidieť výsledky hlasovania" - voted: "Zahlasované" - closed: "Skončilo" - remainingDays: "zostáva {d} dní {h} hodín" - remainingHours: "zostáva {h} hodín {m} minút" - remainingMinutes: "zostáva {m} minút {s} sekúnd" - remainingSeconds: "zostáva {s} sekúnd" -_visibility: - public: "Verejné" - publicDescription: "Vaša poznámku bude viditeľná všetkým používateľom" - home: "Domov" - homeDescription: "Pridať iba na domácu časovú os" - followers: "Sledujúci" - followersDescription: "Viditeľné iba tým, ktorí vás sledujú" - specified: "Priame" - specifiedDescription: "Viditeľné iba pre konkrétnych používateľov" - localOnly: "Iba lokálne" - localOnlyDescription: "Vzdialený používatelia nebudú vidieť" -_postForm: - replyPlaceholder: "Odpoveď na túto poznámku..." - quotePlaceholder: "Citovanie tejto poznámky..." - channelPlaceholder: "Poslať do kanála..." - _placeholders: - a: "Čo máte v pláne?" - b: "Čo sa deje?" - c: "O čom rozmýšľaš?" - d: "Čo chcete povedať?" - e: "Začnite písať..." - f: "Čaká sa na písanie..." -_profile: - name: "Názov" - username: "Meno používateľa" - description: "Bio" - youCanIncludeHashtags: "Vo svojom bio môžete mať aj hashtagy." - metadata: "Dodatočné informácie" - metadataEdit: "Upraviť dodatočné informácie" - metadataDescription: "Vo svojom profile môžete uviesť až štyri dodatočné informačné polia." - metadataLabel: "Popisok" - metadataContent: "Obsah" - changeAvatar: "Zmeniť avatara" - changeBanner: "Zmeniť banner" -_exportOrImport: - allNotes: "Všetky poznámky" - followingList: "Sledujete" - muteList: "Vypnúť zvuk" - blockingList: "Zablokovať" - userLists: "Zoznamy" - excludeMutingUsers: "Vylúčiť stíšených používateľov" - excludeInactiveUsers: "Vylúčiť neaktívnych používateľov" -_charts: - federation: "Federácia" - apRequest: "Žiadosti" - usersIncDec: "Rozdiel v počte používateľov" - usersTotal: "Celkový počet používateľov" - activeUsers: "Aktívni používatelia" - notesIncDec: "Rozdiel v počte poznámok" - localNotesIncDec: "Rozdiel v počte lokálnych poznámok" - remoteNotesIncDec: "Rozdiel v počte vzdialených poznámok" - notesTotal: "Celkový počet poznámok" - filesIncDec: "Rozdiel v počte súborov" - filesTotal: "Celkový počet súborov" - storageUsageIncDec: "Rozdiel využitého úložiska" - storageUsageTotal: "Celkové využité úložisko" -_instanceCharts: - requests: "Žiadosti" - users: "Rozdiel v počte používateľov" - usersTotal: "Celkom spolu počet používateľov" - notes: "Rozdiel v počte poznámok" - notesTotal: "Celkom spolu počet poznámok" - ff: "Rozdiel v počte sledovaných/sledujúcich" - ffTotal: "Celkom spolu počet sledovaných / sledujúcich" - cacheSize: "Rozdiel vo veľkosti cache" - cacheSizeTotal: "Celkom spolu veľkosť cache" - files: "Rozdiel v počte súborov" - filesTotal: "Celkom spolu počet súborov" -_timelines: - home: "Domov" - local: "Lokálne" - social: "Sociálne" - global: "Globálne" -_pages: - newPage: "Vytvoriť novú stránku" - editPage: "Upraviť túto stránku" - readPage: "Zobrazenie zdroja aktívne" - created: "Stránka úspešne vytvorená" - updated: "Stránka úspešne upravená" - deleted: "Stránka úspešne odstránená" - pageSetting: "Nastavenia stránky" - nameAlreadyExists: "Zadaná URL stránku už existuje" - invalidNameTitle: "Zadaná URL stránku je nesprávna" - invalidNameText: "Uistite sa, že nadpis stránky nie je prázdny" - editThisPage: "Upraviť túto stránku" - viewSource: "Ukázať zdroj" - viewPage: "Ukázať vaše stránky" - like: "Páči sa mi" - unlike: "Nepáči sa mi" - my: "Moje stránky" - liked: "Obľúbené stránky" - featured: "Význačné" - inspector: "Inšpektor" - contents: "Obsah" - content: "Blok stránky" - variables: "Premenné" - title: "Nadpis" - url: "URL stránky" - summary: "Zhrnutie stránky" - alignCenter: "Vystrediť prvky" - hideTitleWhenPinned: "Skryť nadpis stránky keď je pripnutá na profil" - font: "Písmo" - fontSerif: "Pätkové" - fontSansSerif: "Bezpätkové" - eyeCatchingImageSet: "Nastaviť miniatúru" - eyeCatchingImageRemove: "Odstrániť miniatúru" - chooseBlock: "Pridať blok" - selectType: "Vyberte typ" - enterVariableName: "Zadajte meno premennej" - variableNameIsAlreadyUsed: "Meno premennej s už používa" - contentBlocks: "Obsah" - inputBlocks: "Vstup" - specialBlocks: "Špeciálne" - blocks: - text: "Text" - textarea: "Textové pole" - section: "Sekcia" - image: "Obrázky" - button: "Tlačidlo" - if: "Ak" - _if: - variable: "Premenné" - post: "Napísať poznámku" - _post: - text: "Obsah" - attachCanvasImage: "Príspevok s obrázkom na plátne" - canvasId: "ID plátna" - textInput: "Textový vstup" - _textInput: - name: "Meno premennej" - text: "Nadpis" - default: "Predvolená hodnota" - textareaInput: "Viacriadkový textový vstup" - _textareaInput: - name: "Meno premennej" - text: "Nadpis" - default: "Predvolená hodnota" - numberInput: "Číselný vstup" - _numberInput: - name: "Meno premennej" - text: "Nadpis" - default: "Predvolená hodnota" - canvas: "Plátno" - _canvas: - id: "ID plátna" - width: "Šírka" - height: "Výška" - note: "Vložená poznámka" - _note: - id: "ID poznámky" - idDescription: "Alebo môžete vložiť URL poznámky sem" - detailed: "Podrobný pohľad" - switch: "Prepnúť" - _switch: - name: "Meno premennej" - text: "Nadpis" - default: "Predvolená hodnota" - counter: "Počítadlo" - _counter: - name: "Meno premennej" - text: "Nadpis" - inc: "Pripočítať" - _button: - text: "Nadpis" - colored: "Farebné" - action: "Operácia po stlačení tlačidla" - _action: - dialog: "Zobraziť dialóg" - _dialog: - content: "Obsah" - resetRandom: "Resetovať zdroj náhodnosti" - pushEvent: "Poslať udalosť" - _pushEvent: - event: "Názov udalosti" - message: "Zobrazená správa po aktivácii" - variable: "Odoslaná premenná" - no-variable: "Žiadne" - callAiScript: "Spustiť AiScript" - _callAiScript: - functionName: "Názov funkcie" - radioButton: "Možnosť" - _radioButton: - name: "Meno premennej" - title: "Nadpis" - values: "Zoznam možností oddelené novými riadkami" - default: "Predvolená hodnota" - script: - categories: - flow: "Riadenie behu" - logical: "Logická operácia" - operation: "Výpočet" - comparison: "Porovnanie" - random: "Náhodné" - value: "Hodnoty" - fn: "Funkcie" - text: "Textové operácie" - convert: "Transformácie" - list: "Zoznamy" - blocks: - text: "Text" - multiLineText: "Text (viacriadkový)" - textList: "Zoznam textov" - _textList: - info: "Oddeľte každú položku novým riadkom" - strLen: "Dĺžka textu" - _strLen: - arg1: "Text" - strPick: "Vybrať znak" - _strPick: - arg1: "Text" - arg2: "Pozícia znaku" - strReplace: "Náhradný text" - _strReplace: - arg1: "Text" - arg2: "Nahradený text" - arg3: "Nahradiť s" - strReverse: "Otočiť text" - _strReverse: - arg1: "Text" - join: "Spojiť texty" - _join: - arg1: "Zoznamy" - arg2: "Oddeľovač" - add: "Pridať" - _add: - arg1: "A" - arg2: "B" - subtract: "Odčítať" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Násobiť" - _multiply: - arg1: "A" - arg2: "B" - divide: "Deliť" - _divide: - arg1: "A" - arg2: "B" - mod: "Zvyšok po delení" - _mod: - arg1: "A" - arg2: "B" - round: "Zaokrúhliť" - _round: - arg1: "Číslo" - eq: "A a B sa rovnajú" - _eq: - arg1: "A" - arg2: "B" - notEq: "A a B sa nerovnajú" - _notEq: - arg1: "A" - arg2: "B" - and: "A a zároveň B" - _and: - arg1: "A" - arg2: "B" - or: "A alebo B" - _or: - arg1: "A" - arg2: "B" - lt: "< A je menšie ako B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A je väčšie ako B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A je menšie alebo rovné B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A je väčšie alebo rovné B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Vetva" - _if: - arg1: "Ak" - arg2: "Potom" - arg3: "Inak" - not: "Opak" - _not: - arg1: "Opak" - random: "Náhodné" - _random: - arg1: "Pravdepodobnosť" - rannum: "Náhodné číslo" - _rannum: - arg1: "Minimálna hodnota" - arg2: "Maximálna hodnota" - randomPick: "Náhodný výber zo zoznamu" - _randomPick: - arg1: "Zoznam" - dailyRandom: "Náhodne (zmení sa raz denne pre každého používateľa)" - _dailyRandom: - arg1: "Pravdepodobnosť" - dailyRannum: "Náhodné číslo (Mení sa denne pre každého používateľa)" - _dailyRannum: - arg1: "Minimálna hodnota" - arg2: "Maximálna hodnota" - dailyRandomPick: "Náhodný výber zo zoznamu (Mení sa denne pre každého používateľa)" - _dailyRandomPick: - arg1: "Zoznam" - seedRandom: "Náhodne (so seedom)" - _seedRandom: - arg1: "Seed" - arg2: "Pravdepodobnosť" - seedRannum: "Náhodné číslo (so seedom)" - _seedRannum: - arg1: "Seed" - arg2: "Minimálna hodnota" - arg3: "Maximálna hodnota" - seedRandomPick: "Náhodný výber zo zoznamu (so seedom)" - _seedRandomPick: - arg1: "Seed" - arg2: "Zoznam" - DRPWPM: "Náhodný výber z váženého zoznamu (Mení sa denne pre každého používateľa)" - _DRPWPM: - arg1: "Zoznam textov" - pick: "Vybrať zo zoznamu" - _pick: - arg1: "Zoznam" - arg2: "Pozícia" - listLen: "Získať dĺžku zoznamu" - _listLen: - arg1: "Zoznam" - number: "Číslo" - stringToNumber: "Text na číslo" - _stringToNumber: - arg1: "Text" - numberToString: "Číslo na text" - _numberToString: - arg1: "Číslo" - splitStrByLine: "Rozdelí text po riadkoch" - _splitStrByLine: - arg1: "Text" - ref: "Premenné" - aiScriptVar: "AiScript premenná" - fn: "Funkcie" - _fn: - slots: "Sloty" - slots-info: "Oddeľte každý slot novým riadkom" - arg1: "Výstup" - for: "For cyklus" - _for: - arg1: "Počet opakovaní" - arg2: "Akcia" - typeError: "Slot {slot} akceptuje hodnoty typu \"{expect}\", ale dodaná hodnota je typu \"{actual}\"!" - thereIsEmptySlot: "Slot {slot} je prázdny!" - types: - string: "Text" - number: "Číslo" - boolean: "Boolean" - array: "Zoznamy" - stringArray: "Zoznam textov" - emptySlot: "Prázdny slot" - enviromentVariables: "Premenné prostredia" - pageVariables: "Premenné stránky" - argVariables: "Vstupné sloty" -_relayStatus: - requesting: "Čaká sa" - accepted: "Akceptované" - rejected: "Odmietnuté" -_notification: - fileUploaded: "Súbor sa úspešne nahral" - youGotMention: "{name} vás spomenul/a" - youGotReply: "{name} vám odpovedal/a" - youGotQuote: "{name} vás citoval/a" - youRenoted: "{name} preposlal/a vašu poznámku" - youGotPoll: "{name} hlasoval/a" - youGotMessagingMessageFromUser: "{name} vám poslal/a správu" - youGotMessagingMessageFromGroup: "Prišla správa do skupiny {name}" - youWereFollowed: "Máte nového sledujúceho" - youReceivedFollowRequest: "Dostali ste žiadosť o sledovanie" - yourFollowRequestAccepted: "Vaša žiadosť o sledovanie bola prijatá" - youWereInvitedToGroup: "Pozvať do skupiny" - pollEnded: "Výsledky hlasovania sú k dispozícii." - emptyPushNotificationMessage: "Push notifikácie aktualizované" - _types: - all: "Všetky" - follow: "Sledujete" - mention: "Zmienka" - reply: "Odpovede" - renote: "Preposlať" - quote: "Citovať" - reaction: "Reakcie" - pollVote: "Hlasy v hlasovaniach" - pollEnded: "Hlasovanie skončilo" - receiveFollowRequest: "Doručené žiadosti o sledovanie" - followRequestAccepted: "Schválené žiadosti o sledovanie" - groupInvited: "Pozvánky do skupín" - app: "Oznámenia z prepojených aplikácií" - _actions: - followBack: "Sledovať späť\n" - reply: "Odpovedať" - renote: "Preposlať" -_deck: - alwaysShowMainColumn: "Vždy zobraziť v hlavnom stĺpci" - columnAlign: "Zarovnať stĺpce" - addColumn: "Pridať stĺpec" - configureColumn: "Nastavenie stĺpcov" - swapLeft: "Vymeniť vľavo" - swapRight: "Vymeniť vpravo" - swapUp: "Vymeniť hore" - swapDown: "Vymeniť s nasledujúcim" - stackLeft: "Priložiť do ľavého stĺpca" - popRight: "Vybrať napravo" - profile: "Profil" - newProfile: "Nový profil" - deleteProfile: "Odstrániť profil" - introduction: "Kombinujte stĺpce a vytvorte si svoje vlastné rozhranie!" - introduction2: "Stlačením tlačidla + v pravej časti obrazovky môžete kedykoľvek pridať stĺpce." - widgetsIntroduction: "V ponuke stĺpca vyberte možnosť \"Upraviť widget\" a pridajte widget" - _columns: - main: "Hlavný" - widgets: "Widgety" - notifications: "Oznámenia" - tl: "Časová os" - antenna: "Antény" - list: "Zoznam" - mentions: "Zmienky" - direct: "Priame poznámky" diff --git a/locales/sv-SE.yml b/locales/sv-SE.yml deleted file mode 100644 index 3f68d3641..000000000 --- a/locales/sv-SE.yml +++ /dev/null @@ -1,321 +0,0 @@ ---- -_lang_: "Svenska" -headlineMisskey: "Ett nätverk kopplat av noter" -introMisskey: "Välkommen! Misskey är en öppen och decentraliserad mikrobloggningstjänst.\nSkapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\" kan du snabbt uttrycka dina känslor kring andras noter.👍\nLåt oss utforska en nya värld!🚀" -monthAndDay: "{day}/{month}" -search: "Sök" -notifications: "Notifikationer" -username: "Användarnamn" -password: "Lösenord" -forgotPassword: "Glömt lösenord" -fetchingAsApObject: "Hämtar från Fediversum..." -ok: "OK" -gotIt: "Uppfattat!" -cancel: "Avbryt" -enterUsername: "Ange användarnamn" -renotedBy: "Omnoterad av {user}" -noNotes: "Inga noteringar" -noNotifications: "Inga aviseringar" -instance: "Instanser" -settings: "Inställningar" -basicSettings: "Basinställningar" -otherSettings: "Andra inställningar" -openInWindow: "Öppna i ett fönster" -profile: "Profil" -timeline: "Tidslinje" -noAccountDescription: "Användaren har inte skrivit en biografi än." -login: "Logga in" -loggingIn: "Loggar in" -logout: "Logga ut" -signup: "Registrera" -uploading: "Uppladdning sker..." -save: "Spara" -users: "Användare" -addUser: "Lägg till användare" -favorite: "Lägg till i favoriter" -favorites: "Favoriter" -unfavorite: "Avfavorisera" -favorited: "Tillagd i favoriter." -alreadyFavorited: "Redan tillagd i favoriter." -cantFavorite: "Gick inte att lägga till i favoriter." -pin: "Fäst till profil" -unpin: "Lossa från profil" -copyContent: "Kopiera innehåll" -copyLink: "Kopiera länk" -delete: "Radera" -deleteAndEdit: "Radera och ändra" -deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den? Du kommer förlora alla reaktioner, omnoteringar och svar till den." -addToList: "Lägg till i lista" -sendMessage: "Skicka ett meddelande" -copyUsername: "Kopiera användarnamn" -searchUser: "Sök användare" -reply: "Svara" -loadMore: "Ladda mer" -showMore: "Visa mer" -youGotNewFollower: "följde dig" -receiveFollowRequest: "Följarförfrågan mottagen" -followRequestAccepted: "Följarförfrågan accepterad" -mention: "Nämn" -mentions: "Omnämningar" -directNotes: "Direktnoter" -importAndExport: "Importera / Exportera" -import: "Importera" -export: "Exportera" -files: "Filer" -download: "Nedladdning" -driveFileDeleteConfirm: "Är du säker att du vill radera filen \"{name}\"? Noter med denna fil bifogad kommer också raderas." -unfollowConfirm: "Är du säker att du vill avfölja {name}?" -exportRequested: "Du har begärt en export. Detta kan ta lite tid. Den kommer läggas till i din Drive när den blir klar." -importRequested: "Du har begärt en import. Detta kan ta lite tid." -lists: "Listor" -noLists: "Du har inga listor" -note: "Not" -notes: "Noter" -following: "Följer" -followers: "Följare" -followsYou: "Följer dig" -createList: "Skapa lista" -manageLists: "Hantera lista" -error: "Fel!" -somethingHappened: "Ett fel har uppstått" -retry: "Försök igen" -pageLoadError: "Det gick inte att ladda sidan." -pageLoadErrorDescription: "Detta händer oftast p.g.a. nätverksfel eller din webbläsarcache. Försök tömma din cache och testa sedan igen efter en liten stund." -serverIsDead: "Servern svarar inte. Vänta ett litet tag och försök igen." -youShouldUpgradeClient: "För att kunna se denna sida, vänligen ladda om sidan för att uppdatera din klient." -enterListName: "Skriv ett namn till listan" -privacy: "Integritet" -makeFollowManuallyApprove: "Följarförfrågningar kräver manuellt godkännande" -defaultNoteVisibility: "Standardsynlighet" -follow: "Följ" -followRequest: "Skicka följarförfrågan" -followRequests: "Följarförfrågningar" -unfollow: "Avfölj" -followRequestPending: "Följarförfrågning avvaktar för svar" -enterEmoji: "Skriv en emoji" -renote: "Omnotera" -unrenote: "Ta tillbaka omnotering" -renoted: "Omnoterad." -cantRenote: "Inlägget kunde inte bli omnoterat." -cantReRenote: "En omnotering kan inte bli omnoterad." -quote: "Citat" -pinnedNote: "Fästad not" -pinned: "Fäst till profil" -you: "Du" -clickToShow: "Klicka för att visa" -sensitive: "Känsligt innehåll" -add: "Lägg till" -reaction: "Reaktioner" -reactionSetting: "Reaktioner som ska visas i reaktionsväljaren" -reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"+\" för att lägga till." -rememberNoteVisibility: "Komihåg notvisningsinställningar" -attachCancel: "Ta bort bilaga" -markAsSensitive: "Markera som känsligt innehåll" -unmarkAsSensitive: "Avmarkera som känsligt innehåll" -enterFileName: "Ange filnamn" -mute: "Tysta" -unmute: "Avtysta" -block: "Blockera" -unblock: "Avblockera" -suspend: "Suspendera" -unsuspend: "Ta bort suspenderingen" -blockConfirm: "Är du säker att du vill blockera kontot?" -unblockConfirm: "Är du säkert att du vill avblockera kontot?" -suspendConfirm: "Är du säker att du vill suspendera detta konto?" -unsuspendConfirm: "Är du säker att du vill avsuspendera detta konto?" -selectList: "Välj lista" -selectAntenna: "Välj en antenn" -selectWidget: "Välj en widget" -editWidgets: "Redigera widgets" -editWidgetsExit: "Avsluta redigering" -customEmojis: "Anpassa emoji" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Emoji namn" -emojiUrl: "Emoji länk" -addEmoji: "Lägg till emoji" -settingGuide: "Rekommenderade inställningar" -cacheRemoteFiles: "Spara externa filer till cachen" -cacheRemoteFilesDescription: "När denna inställning är avstängd kommer externa filer laddas direkt från den externa instansen. Genom att stänga av detta kommer lagringsutrymme minska i användning men kommer öka datatrafiken eftersom miniatyrer inte kommer genereras." -flagAsBot: "Markera konto som bot" -flagAsBotDescription: "Aktivera det här alternativet om kontot är kontrollerat av ett program. Om aktiverat kommer den fungera som en flagga för andra utvecklare för att hindra ändlösa kedjor med andra bottar. Det kommer också få Misskeys interna system att hantera kontot som en bot." -flagAsCat: "Markera konto som katt" -flagAsCatDescription: "Aktivera denna inställning för att markera kontot som en katt." -flagShowTimelineReplies: "Visa svar i tidslinje" -flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter i tidslinjen om påslagen." -autoAcceptFollowed: "Godkänn följarförfrågningar från användare du följer automatiskt" -addAccount: "Lägg till konto" -loginFailed: "Inloggningen misslyckades" -showOnRemote: "Se på extern instans" -general: "Allmänt" -wallpaper: "Bakgrundsbild" -setWallpaper: "Välj bakgrund" -removeWallpaper: "Ta bort bakgrund" -searchWith: "Sök: {q}" -youHaveNoLists: "Du har inga listor" -followConfirm: "Är du säker att du vill följa {name}?" -proxyAccount: "Proxykonto" -proxyAccountDescription: "Ett proxykonto är ett konto som agerar som en extern följare för användare under vissa villkor. Till exempel, när en användare lägger till en extern användare till en lista så kommer den externa användarens aktivitet inte levireras till instansen om ingen lokal användare följer det kontot, så proxykontot används istället." -host: "Värd" -selectUser: "Välj användare" -recipient: "Mottagare" -annotation: "Kommentarer" -federation: "Federation" -instances: "Instanser" -registeredAt: "Registrerad på" -latestRequestSentAt: "Senaste förfrågan skickad" -latestRequestReceivedAt: "Senaste begäran mottagen" -latestStatus: "Senaste status" -storageUsage: "Använt lagringsutrymme" -charts: "Diagram" -perHour: "Per timme" -perDay: "Per dag" -stopActivityDelivery: "Sluta skicka aktiviteter" -blockThisInstance: "Blockera instans" -operations: "Operationer" -software: "Mjukvara" -version: "Version" -metadata: "Metadata" -withNFiles: "{n} fil(er)" -monitor: "Övervakning" -jobQueue: "Jobbkö" -cpuAndMemory: "CPU och minne" -network: "Nätverk" -disk: "Disk" -instanceInfo: "Instansinformation" -statistics: "Statistik" -clearQueue: "Rensa kö" -clearQueueConfirmTitle: "Är du säker att du vill rensa kön?" -clearQueueConfirmText: "Om någon not är olevererad i kön kommer den inte federeras. Vanligtvis behövs inte denna handling." -clearCachedFiles: "Rensa cache" -clearCachedFilesConfirm: "Är du säker att du vill radera alla cachade externa filer?" -blockedInstances: "Blockerade instanser" -blockedInstancesDescription: "Lista adressnamn av instanser som du vill blockera. Listade instanser kommer inte längre kommunicera med denna instans." -muteAndBlock: "Tystningar och blockeringar" -mutedUsers: "Tystade användare" -blockedUsers: "Blockerade användare" -noUsers: "Det finns inga användare" -editProfile: "Redigera profil" -noteDeleteConfirm: "Är du säker på att du vill ta bort denna not?" -pinLimitExceeded: "Du kan inte fästa fler noter" -intro: "Misskey har installerats! Vänligen skapa en adminanvändare." -done: "Klar" -processing: "Bearbetar..." -preview: "Förhandsvisning" -default: "Standard" -defaultValueIs: "Standard: {value}" -noCustomEmojis: "Det finns ingen emoji" -noJobs: "Det finns inga jobb" -federating: "Federerar" -blocked: "Blockerad" -suspended: "Suspenderad" -all: "Allt" -subscribing: "Prenumererar" -publishing: "Publiceras" -notResponding: "Svarar inte" -instanceFollowing: "Följer på instans" -instanceFollowers: "Följare av instans" -instanceUsers: "Användare av denna instans" -changePassword: "Ändra lösenord" -security: "Säkerhet" -retypedNotMatch: "Inmatningen matchar inte" -currentPassword: "Nuvarande lösenord" -newPassword: "Nytt lösenord" -newPasswordRetype: "Bekräfta lösenord" -attachFile: "Bifoga filer" -more: "Mer!" -featured: "Utvalda" -usernameOrUserId: "Användarnamn eller användar-id" -noSuchUser: "Kan inte hitta användaren" -lookup: "Sökning" -announcements: "Nyheter" -imageUrl: "Bild-URL" -remove: "Radera" -removed: "Borttaget" -removeAreYouSure: "Är du säker att du vill radera \"{x}\"?" -deleteAreYouSure: "Är du säker att du vill radera \"{x}\"?" -resetAreYouSure: "Vill du återställa?" -saved: "Sparad" -messaging: "Chatt" -upload: "Ladda upp" -keepOriginalUploading: "Behåll originalbild" -nsfw: "Känsligt innehåll" -pinnedNotes: "Fästad not" -userList: "Listor" -smtpHost: "Värd" -smtpUser: "Användarnamn" -smtpPass: "Lösenord" -clearCache: "Rensa cache" -user: "Användare" -searchByGoogle: "Sök" -file: "Filer" -_email: - _follow: - title: "följde dig" -_mfm: - mention: "Nämn" - quote: "Citat" - emoji: "Anpassa emoji" - search: "Sök" -_theme: - keys: - mention: "Nämn" - renote: "Omnotera" -_sfx: - note: "Noter" - notification: "Notifikationer" - chat: "Chatt" -_widgets: - notifications: "Notifikationer" - timeline: "Tidslinje" - federation: "Federation" - jobQueue: "Jobbkö" -_cw: - show: "Ladda mer" -_visibility: - followers: "Följare" -_profile: - username: "Användarnamn" -_exportOrImport: - followingList: "Följer" - muteList: "Tysta" - blockingList: "Blockera" - userLists: "Listor" -_charts: - federation: "Federation" -_pages: - script: - categories: - list: "Listor" - blocks: - _join: - arg1: "Listor" - _randomPick: - arg1: "Listor" - _dailyRandomPick: - arg1: "Listor" - _seedRandomPick: - arg2: "Listor" - _pick: - arg1: "Listor" - _listLen: - arg1: "Listor" - types: - array: "Listor" -_notification: - youWereFollowed: "följde dig" - _types: - follow: "Följer" - mention: "Nämn" - renote: "Omnotera" - quote: "Citat" - reaction: "Reaktioner" - _actions: - reply: "Svara" - renote: "Omnotera" -_deck: - _columns: - notifications: "Notifikationer" - tl: "Tidslinje" - list: "Listor" - mentions: "Omnämningar" diff --git a/locales/th-TH.yml b/locales/th-TH.yml deleted file mode 100644 index 6f794a7c7..000000000 --- a/locales/th-TH.yml +++ /dev/null @@ -1,1195 +0,0 @@ ---- -_lang_: "ภาษาไทย" -headlineMisskey: "เชื่อมต่อเครือข่ายโดยโน้ต" -introMisskey: "ยินดีต้อนรับจ้าาา! Misskey เป็นบริการไมโครบล็อกโอเพ่นซอร์ส แบบการกระจายอำนาจ\nสร้าง \"โน้ต\" เพื่อแบ่งปันความคิดของคุณกับทุกคนรอบตัวคุณกันเถอะ 📡\nด้วยการ \"รีแอคชั่นผู้คน\" คุณยังสามารถแสดงความรู้สึกของคุณเกี่ยวกับบันทึกของทุกคนได้อย่างรวดเร็ว 👍\n\nแล้วมาท่องสำรวจโลกใบใหม่กันเถอะ! 🚀" -monthAndDay: "{เดือน}/{วัน}" -search: "ค้นหา" -notifications: "การเเจ้งเตือน" -username: "ชื่อผู้ใช้" -password: "รหัสผ่าน" -forgotPassword: "ลืมรหัสผ่าน?" -fetchingAsApObject: "กำลังดึงข้อมูล จาก เฟดิเวิร์ส..." -ok: "ตกลง" -gotIt: "เข้าใจแล้ว !" -cancel: "ยกเลิก" -enterUsername: "ใส่ชื่อผู้ใช้" -renotedBy: "รีโน้ตโดย {ผู้ใช้}" -noNotes: "ไม่มีโน้ต" -noNotifications: "ไม่มีการแจ้งเตือน" -instance: "ตัวอย่าง" -settings: "การตั้งค่า" -basicSettings: "การตั้งค่าพื้นฐาน" -otherSettings: "การตั้งค่าอื่นๆ" -openInWindow: "เปิดในหน้าต่าง" -profile: "โปรไฟล์" -timeline: "ไทม์ไลน์" -noAccountDescription: "ผู้ใช้รายนี้ยังไม่ได้เขียนลงประวัติของพวกเขา" -login: "เข้าสู่ระบบ" -loggingIn: "กำลังเข้าสู่ระบบ" -logout: "ออกจากระบบ" -signup: "สร้างบัญชีผู้ใช้" -uploading: "กำลังอัพโหลด..." -save: "บันทึก" -users: "ผู้ใช้งาน" -addUser: "เพิ่มผู้ใช้" -favorite: "รายการโปรด" -favorites: "รายการโปรด" -unfavorite: "ลบออกจากรายการโปรด" -favorited: "เพิ่มแล้วในรายการโปรด" -alreadyFavorited: "เพิ่มในรายการโปรดอยู่แล้ว" -cantFavorite: "ไม่สามารถเพิ่มในรายการโปรดได้" -pin: "ปักหมุดไปยังโปรไฟล์" -unpin: "เลิกปักหมุดจากโปรไฟล์" -copyContent: "คัดลอกเนื้อหา" -copyLink: "คัดลอกลิงก์" -delete: "ลบ" -deleteAndEdit: "ลบและแก้ไข" -deleteAndEditConfirm: "นายแน่ใจแล้วเหรอ? ว่าต้องการลบโน้ตนี้และแก้ไข คุณอาจจะสูญเสียการโต้ตอบ, โน้ต, และการตอบกลับทั้งหมดได้นะ" -addToList: "เพิ่มในลิสต์" -sendMessage: "ส่งข้อความ" -copyUsername: "คัดลอกชื่อผู้ใช้" -searchUser: "ค้นหาผู้ใช้งาน" -reply: "ตอบกลับ" -loadMore: "โหลดเพิ่มเติม" -showMore: "แสดงเพิ่มเติม" -showLess: "ปิด" -youGotNewFollower: "ได้ติดตามคุณ" -receiveFollowRequest: "คำขอผู้ติดตามที่ได้รับ" -followRequestAccepted: "ผู้ติดตามได้ตอบรับคำขอร้องของคุณแล้ว" -mention: "กล่าวถึง" -mentions: "พูดถึง" -directNotes: "ไดเร็คโน้ต" -importAndExport: "นำเข้า / ส่งออก" -import: "การนำเข้า" -export: "การนำออก" -files: "ไฟล์" -download: "ดาวน์โหลด" -driveFileDeleteConfirm: "นายแน่ใจแล้วหรอ? ว่าต้องการลบไฟล์ \"{name}\" โน้ตย่อที่แนบมากับไฟล์นี้ก็จะถูกลบด้วยนะ" -unfollowConfirm: "นายแน่ใจแล้วหรอว่าต้องการเลิกติดตาม {name}?" -exportRequested: "เมื่อคุณได้ร้องขอการส่งออก อาจจะต้องใช้เวลาสักครู่ และจะถูกเพิ่มในไดรฟ์ของคุณเมื่อเสร็จสิ้นแล้ว" -importRequested: "เมื่อคุณได้ร้องขอการนำเข้า อาจจะต้องใช้เวลาสักครู่นะ" -lists: "รายการ" -noLists: "คุณไม่มีลิสต์ใดๆนะ" -note: "ตัวโน้ต" -notes: "หมายเหตุ" -following: "กำลังติดตาม" -followers: "ผู้ติดตาม" -followsYou: "ติดตามคุณ" -createList: "สร้างลิสต์" -manageLists: "จัดการลิสต์" -error: "ผิดพลาด!" -somethingHappened: "อุ๊ย ! มีอะไรบางอย่างผิดพลาด" -retry: "ลองใหม่อีกครั้ง" -pageLoadError: "เกิดข้อผิดพลาดในการโหลดหน้านี้" -pageLoadErrorDescription: "โดยปกติแล้วมักจะเกิดจากข้อผิดพลาดของเครือข่ายหรือแคชของเบราว์เซอร์ ลองล้างแคชแล้วลองใหม่อีกครั้งหลังจากรอสักครู่ " -serverIsDead: "เซิร์ฟเวอร์นี้ไม่มีการตอบสนอง ได้โปรดกรุณารอสักครู่แล้วลองใหม่อีกครั้งนะ" -youShouldUpgradeClient: "หากต้องการดูหน้านี้ได้โปรดกรุณา รีเซ็ตเพื่ออัปเดตไคลเอ็นต์ของคุณนะ" -enterListName: "ใส่ชื่อสำหรับรายการลิสต์" -privacy: "ความเป็นส่วนตัว" -makeFollowManuallyApprove: "ติดตามคำขอที่ต้องได้รับการอนุมัติ" -defaultNoteVisibility: "การมองเห็นที่เป็นค่าเริ่มต้น" -follow: "กำลังติดตาม" -followRequest: "ส่งคำขอติดตาม" -followRequests: "ติดตามการร้องขอ" -unfollow: "เลิกติดตาม" -followRequestPending: "กำลังรอดำเนินการร้องขอติดตาม" -enterEmoji: "ใส่อีโมจิ" -renote: "รีโน้ต" -unrenote: "เลิกรีโน้ต" -renoted: "รีโน้ตเอาไว้" -cantRenote: "โพสต์นี้ไม่สามารถรีโน้ตไว้ใหม่ได้นะ" -cantReRenote: "ไม่สามารถรีโน้ตเอาไว้ใหม่ได้นะ" -quote: "อ้างคำพูด" -pinnedNote: "โน้ตที่ปักหมุดเอาไว้" -pinned: "ปักหมุดไปยังโปรไฟล์" -you: "ตัวเอง" -clickToShow: "คลิกเพื่อแสดง" -sensitive: "เนื้อหาที่ละเอียดอ่อน NSFW" -add: "เพิ่ม" -reaction: "รีแอคชั่น" -reactionSetting: "รีแอคชั่นไปยังแสดงผลในตัวเลือกการรีแอคชั่น" -reactionSettingDescription2: "กดลากเพื่อจัดลำดับใหม่ กดคลิกเพื่อลบ กด \"+\" เพื่อเพิ่ม" -rememberNoteVisibility: "จดจำการตั้งค่าการมองเห็นตัวโน้ต" -attachCancel: "ลบไฟล์ออกที่แนบมา" -markAsSensitive: "ทำเครื่องหมายว่าละเอียดอ่อน" -unmarkAsSensitive: "ยกเลิกทำเครื่องหมายเป็น NSFW" -enterFileName: "พิมพ์ชื่อไฟล์" -mute: "ปิดเสียง" -unmute: "ไม่ปิดเสียง" -block: "บล็อค" -unblock: "เลิกปิดกั้น" -suspend: "ถูกระงับ" -unsuspend: "ยกเลิกระงับ" -blockConfirm: "คุณแน่ใจแล้วเหรอ? ว่าต้องการบล็อกบัญชีนี้" -unblockConfirm: "คุณแน่ใจแล้วเหรอ? ว่าต้องการปลดบล็อคบัญชีนี้" -suspendConfirm: "นายแน่ใจแล้วเหรอว่าต้องการระงับบัญชีนี้อ่ะ?" -unsuspendConfirm: "นายแน่ใจแล้วหรอ? ว่าต้องการยกเลิกการระงับบัญชีนี้" -selectList: "เลือกรายการ (Automatic Translation)" -selectAntenna: "เลือกเสาอากาศ" -selectWidget: "เลือกวิดเจ็ต" -editWidgets: "แก้ไขวิดเจ็ต" -editWidgetsExit: "เรียบร้อย" -customEmojis: "กำหนดอีโมจิเอง" -emoji: "อีโมจิ" -emojis: "อีโมจิ" -emojiName: "ชื่ออิโมจิ" -emojiUrl: "อิโมจิ URL" -addEmoji: "แทรกอีโมจิ" -settingGuide: "การตั้งค่าที่แนะนำ" -cacheRemoteFiles: "แคชไฟล์ระยะไกล" -cacheRemoteFilesDescription: "เมื่อปิดใช้งานการตั้งค่านี้ ไฟล์ระยะไกลนั้นจะถูกโหลดโดยตรงจากอินสแตนซ์ระยะไกล แต่กรณีการปิดใช้งานนี้จะช่วยลดปริมาณการใช้พื้นที่จัดเก็บข้อมูล แต่เพิ่มปริมาณการใช้งาน เพราะเนื่องจากจะไม่มีการสร้างภาพขนาดย่อ" -flagAsBot: "ทำเครื่องหมายบอกว่าบัญชีนี้เป็นบอท" -flagAsBotDescription: "การเปิดใช้งานตัวเลือกนี้หากบัญชีนี้ถูกควบคุมโดยนักเขียนโปรแกรม หรือ ถ้าหากเปิดใช้งาน มันจะทำหน้าที่เป็นแฟล็กสำหรับนักพัฒนารายอื่นๆ และเพื่อป้องกันการโต้ตอบแบบไม่มีที่สิ้นสุดกับบอทตัวอื่นๆ และยังสามารถปรับเปลี่ยนระบบภายในของ Misskey เพื่อปฏิบัติต่อบัญชีนี้เป็นบอท" -flagAsCat: "ทำเครื่องหมายบอกว่าบัญชีนี้เป็นแมว" -flagAsCatDescription: "การเปิดใช้งานตัวเลือกนี้เพื่อทำเครื่องหมายบอกว่าบัญชีนี้เป็นแมว" -flagShowTimelineReplies: "แสดงตอบกลับ ในไทม์ไลน์" -flagShowTimelineRepliesDescription: "แสดงการตอบกลับของผู้ใช้งานไปยังโน้ตของผู้ใช้งานรายอื่นๆในไทม์ไลน์หากได้เปิดเอาไว้" -autoAcceptFollowed: "อนุมัติคำขอติดตามโดยอัตโนมัติทันที จากผู้ใช้งานที่คุณกำลังติดตาม" -addAccount: "เพิ่มบัญชี" -loginFailed: "การเข้าสู่ระบบไม่สำเร็จ" -showOnRemote: "ดูบนอินสแตนซ์ระยะไกล" -general: "ทั่วไป" -wallpaper: "วอลล์เปเปอร์" -setWallpaper: "ตั้งวอลเปเปอร์" -removeWallpaper: "นำวอลเปเปอร์ออก" -searchWith: "ค้นหา: {q}" -youHaveNoLists: "รายการนี้ว่างเปล่า" -followConfirm: "คุณแน่ใจแล้วหรอว่าต้องการที่จะติดตาม {name}?" -proxyAccount: "บัญชี พร็อกซี่" -proxyAccountDescription: "บัญชีพร็อกซี่ คือ บัญชีที่จะทำหน้าที่เป็นผู้ติดตามระยะไกลสำหรับผู้ใช้งานที่อยู่ภายใต้ด้วยเงื่อนไขบางอย่าง ยกตัวอย่าง เช่น เมื่อมีผู้ใช้งานนั้นได้เพิ่มผู้ใช้งานจากระยะไกลลงในรายการ แต่กิจกรรมของผู้ใช้ในระยะไกลนั้นจะไม่ถูกส่งไปยังอินสแตนซ์หากไม่มีผู้ใช้งานในพื้นที่ติดตามผู้ใช้รายนั้น ดังนั้นบัญชีพร็อกซีนี้จะติดตามแทน" -host: "โฮสต์" -selectUser: "เลือกผู้ใช้งาน" -recipient: "ผู้รับ" -annotation: "ความคิดเห็น" -federation: "สหพันธ์" -instances: "ตัวอย่าง" -registeredAt: "จดทะเบียนที่" -latestRequestSentAt: "ส่งคำขอล่าสุดไปแล้ว" -latestRequestReceivedAt: "ได้รับคำขอล่าสุดไปแล้ว" -latestStatus: "สถานะล่าสุด" -storageUsage: "พื้นที่จัดเก็บข้อมูลที่ใช้ไป" -charts: "โดดเด่น" -perHour: "ทุกชั่วโมง" -perDay: "ต่อวัน" -stopActivityDelivery: "หยุดส่งกิจกรรม" -blockThisInstance: "บล็อกอินสแตนซ์นี้" -operations: "ดำเนินการ" -software: "ซอฟต์แวร์" -version: "เวอร์ชั่น" -metadata: "ข้อมูลเมตา" -withNFiles: "{n} ไฟล์(s)" -monitor: "มอนิเตอร์" -jobQueue: "คิวงาน" -cpuAndMemory: "ซีพียู และ หน่วยความจำ" -network: "เน็ตเวิร์ก" -disk: "ดิสก์" -instanceInfo: "ข้อมูล อินสแตนซ์" -statistics: "สถิติการใช้งาน" -clearQueue: "ล้างคิว" -clearQueueConfirmTitle: "คุณแน่ใจแล้วหรอว่าต้องการที่จะล้างคิว?" -clearQueueConfirmText: "บันทึกย่อที่ยังไม่ได้ส่งที่เหลืออยู่ในคิวนั้นมักจะ ไม่ถูกรวมเข้าด้วยกัน โดยปกติแล้วไม่จำเป็นต้องดำเนินการนี้" -clearCachedFiles: "ล้างแคช" -clearCachedFilesConfirm: "นายแน่ใจแล้วหรอว่าต้องการที่จะลบไฟล์ระยะไกลที่แคชไว้ทั้งหมด?" -blockedInstances: "อินสแตนซ์ที่ ถูกบล็อก" -blockedInstancesDescription: "ระบุชื่อโฮสต์ของอินสแตนซ์ที่คุณต้องการบล็อก อินสแตนซ์ที่อยู่ในรายการนั้นจะไม่สามารถพูดคุยกับอินสแตนซ์นี้ได้อีกต่อไป" -muteAndBlock: "ปิดเสียงและบล็อก" -mutedUsers: "ผู้ใช้ที่ถูกปิดเสียง" -blockedUsers: "ผู้ใช้ที่ถูกบล็อก" -noUsers: "ไม่พบผู้ใช้งาน" -editProfile: "แก้ไขโปรไฟล์" -noteDeleteConfirm: "นายแน่ใจแล้วหรอว่าต้องการลบโน้ตนี้นะ?" -pinLimitExceeded: "คุณไม่สามารถปักหมุดโน้ตเพิ่มเติมใดๆได้อีก" -intro: "การติดตั้ง Misskey เสร็จสิ้นแล้วนะ! โปรดสร้างผู้ใช้งานที่เป็นผู้ดูแลระบบ" -done: "เสร็จสิ้น" -processing: "กำลังประมวลผล..." -preview: "แสดงตัวอย่าง" -default: "ค่าตั้งต้น" -defaultValueIs: "ค่าเริ่มต้น: {value}" -noCustomEmojis: "ไม่มีอีโมจิ" -noJobs: "ไม่มีชิ้นงาน" -federating: "สหพันธ์" -blocked: "ถูกบล็อก" -suspended: "ถูกระงับ" -all: "ทั้งหมด" -subscribing: "สมัครแล้ว" -publishing: "กำลังเผยแพร่" -notResponding: "ไม่มีการตอบสนอง" -instanceFollowing: "กำลังติดตาม บน อินสแตนซ์" -instanceFollowers: "ผู้ติดตามของอินสแตนซ์" -instanceUsers: "ผู้ใช้งานของอินสแตนซ์นี้" -changePassword: "เปลี่ยนรหัสผ่าน" -security: "ความปลอดภัย" -retypedNotMatch: "อินพุตไม่ตรงกันนะ" -currentPassword: "รหัสผ่านปัจจุบัน" -newPassword: "รหัสผ่านใหม่" -newPasswordRetype: "ใส่รหัสผ่านใหม่อีกครั้ง" -attachFile: "แนบไฟล์" -more: "เพิ่มเติม!" -featured: "เป็นจุดเด่น" -usernameOrUserId: "ชื่อผู้ใช้หรือรหัสผู้ใช้งาน" -noSuchUser: "ไม่มีผู้ใช้นี้อยู่ในระบบ" -lookup: "ค้นหา" -announcements: "ประกาศ" -imageUrl: "url รูปภาพ" -remove: "ลบ" -removed: "ถูกลบไปแล้ว" -removeAreYouSure: "นายแน่ใจจริงหรอว่าต้องการที่จะลบออก \"{x}\"" -deleteAreYouSure: "นายแน่ใจจริงหรอว่าต้องการที่จะลบออก \"{x}\"" -resetAreYouSure: "รีเซ็ตเลยไหม" -saved: "บันทึกแล้ว" -messaging: "แชท" -upload: "อัพโหลด" -keepOriginalUploading: "เก็บภาพต้นฉบับ" -keepOriginalUploadingDescription: "บันทึกรูปภาพที่อัพโหลดต้นฉบับตามที่เป็นอยู่ ถ้าหากปิดอยู่ ระบบจะสร้างเวอร์ชั่นที่จะแสดงบนเว็บเมื่ออัพโหลดนะ" -fromDrive: "จากไดรฟ์" -fromUrl: "จาก URL" -uploadFromUrl: "อัพโหลดจาก URL" -uploadFromUrlDescription: "URL ของไฟล์ที่คุณต้องการอัปโหลด" -uploadFromUrlRequested: "อัพโหลดที่ร้องขอ" -uploadFromUrlMayTakeTime: "มันอาจจะต้องใช้เวลาสักครู่จนกว่าการอัพโหลดจะเสร็จสมบูรณ์นะ" -explore: "สำรวจ" -messageRead: "อ่านแล้ว" -noMoreHistory: "ในนั้นไม่มีประวัติอีกต่อไปแล้วนะ" -startMessaging: "เริ่มการสนทนา" -nUsersRead: "อ่านโดย {n}" -agreeTo: "ฉันยอมรับที่จะ {0}" -tos: "ข้อกำหนดและเงื่อนไข" -start: "เริ่มต้น​ใช้งาน​" -home: "หน้าแรก" -remoteUserCaution: "เนื่องจากผู้ใช้งานรายนี้นั้น มาจากอินสแตนซ์ระยะไกล ข้อมูลที่แสดงดังกล่าวนั้นอาจจะไม่สมบูรณ์ก็ได้นะ" -activity: "กิจกรรม" -images: "รูปภาพ" -birthday: "วันเกิด" -yearsOld: "{อายุ} ปี" -registeredDate: "วันที่สมัครสมาชิก" -location: "ตำแหน่งที่ตั้ง" -theme: "ธีม" -themeForLightMode: "ธีมที่จะใช้ในโหมดแสง" -themeForDarkMode: "ธีมที่จะใช้ในโหมดมืด" -light: "สว่าง" -dark: "มืด" -lightThemes: "ธีมสีสว่าง" -darkThemes: "ธีมมืด" -syncDeviceDarkMode: "ซิงค์โหมดมืดด้วยการตั้งค่ากับอุปกรณ์" -drive: "ไดรฟ์" -fileName: "ชื่อไฟล์" -selectFile: "เลือกไฟล์" -selectFiles: "เลือกไฟล์" -selectFolder: "เลือกโฟลเดอร์" -selectFolders: "เลือกโฟลเดอร์" -renameFile: "เปลี่ยนชื่อไฟล์" -folderName: "ชื่อแฟ้ม" -createFolder: "สร้างโฟลเดอร์" -renameFolder: "เปลี่ยนชื่อโฟลเดอร์" -deleteFolder: "ลบโฟลเดอร์" -addFile: "เพิ่มไฟล์" -emptyDrive: "ไดรฟ์ของคุณว่างเปล่านะ" -emptyFolder: "โฟลเดอร์นี้น่าจะว่างเปล่านะ" -unableToDelete: "ไม่สามารถลบออกได้นะ" -inputNewFileName: "ป้อนชื่อไฟล์ใหม่นะ" -inputNewDescription: "กรุณาใส่แคปชั่นใหม่" -inputNewFolderName: "กรุณาใส่ชื่อโฟลเดอร์ใหม่นะ\n" -circularReferenceFolder: "โฟลเดอร์ปลายทาง คือ โฟลเดอร์ย่อยของโฟลเดอร์ที่คุณต้องการที่จะย้ายล่ะนะ" -hasChildFilesOrFolders: "เนื่องจากโฟลเดอร์นี้ไม่ว่างเปล่า จึงไม่สามารถลบได้นะ" -copyUrl: "คัดลอก URL" -rename: "เปลี่ยนชื่อ" -avatar: "ไอคอน" -banner: "แบนเนอร์" -nsfw: "เนื้อหาที่ละเอียดอ่อน NSFW" -whenServerDisconnected: "สูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์" -disconnectedFromServer: "ถูกตัดการเชื่อมต่อออกจากเซิร์ฟเวอร์" -reload: "รีโหลด" -doNothing: "เมิน" -reloadConfirm: "นายต้องการรีเฟรชไทม์ไลน์หรือป่าว?" -watch: "ดู" -unwatch: "หยุดดู" -accept: "ยอมรับ" -reject: "ปฏิเสธ" -normal: "โหมดปกติ" -instanceName: "ชื่อ อินสแตนซ์" -instanceDescription: "คำอธิบายอินสแตนซ์" -maintainerName: "ผู้ดูแล" -maintainerEmail: "อีเมล์แอดมิน" -tosUrl: "เงื่อนไขการให้บริการ URL" -thisYear: "ปีนี้" -thisMonth: "เดือนนี้" -today: "วันนี้" -dayX: "{วัน}" -monthX: "{เดือน}" -yearX: "{ปี}" -pages: "หน้า" -integration: "รวบรวม" -connectService: "เชื่อมต่อ" -disconnectService: "ตัดการเชื่อมต่อ" -enableLocalTimeline: "เปิดใช้งานไทม์ไลน์ในพื้นที่" -enableGlobalTimeline: "เปิดใช้งานไทม์ไลน์ทั่วโลก" -disablingTimelinesInfo: "ผู้ดูแลระบบและผู้ควบคุมจะสามารถเข้าถึงไทม์ไลน์ทั้งหมด ถึงแม้ว่าจะไม่ได้เปิดใช้งานก็ตาม" -registration: "ลงทะเบียน" -enableRegistration: "เปิดใช้งานการลงทะเบียนผู้ใช้ใหม่" -invite: "เชิญชวน" -driveCapacityPerLocalAccount: "ความจุของไดรฟ์ต่อผู้ใช้ภายในเครื่อง" -driveCapacityPerRemoteAccount: "ความจุของไดรฟ์ต่อผู้ใช้ระยะไกล" -inMb: "เป็นเมกะไบต์" -iconUrl: "ไอคอน URL" -bannerUrl: "URL รูปภาพแบนเนอร์" -backgroundImageUrl: "URL ภาพพื้นหลัง" -basicInfo: "ข้อมูลเบื้องต้น" -pinnedUsers: "ผู้ใช้งานที่ได้รับการปักหมุด" -pinnedUsersDescription: "ลิสต์ชื่อผู้ใช้โดยคั่นด้วยการขึ้นบรรทัดใหม่เพื่อปักหมุดในแท็บ \"สำรวจ\"" -pinnedPages: "หน้าที่ปักหมุด" -pinnedPagesDescription: "ป้อนเส้นทางของหน้าที่คุณต้องการตรึงไว้ที่หน้าแรกของอินสแตนซ์นี้ โดยคั่นด้วยตัวแบ่งบรรทัด" -pinnedClipId: "ID ของคลิปที่จะปักหมุด" -pinnedNotes: "โน้ตที่ปักหมุดเอาไว้" -hcaptcha: "hCaptcha" -enableHcaptcha: "เปิดใช้ hCaptcha" -hcaptchaSiteKey: "คีย์ไซต์" -hcaptchaSecretKey: "คีย์ลับ" -recaptcha: "reCAPTCHA" -enableRecaptcha: "เปิดใช้ reCAPTCHA" -recaptchaSiteKey: "คีย์ไซต์" -recaptchaSecretKey: "คีย์ลับ" -avoidMultiCaptchaConfirm: "การใช้ระบบ Captcha หลายระบบอาจทำให้เกิดการรบกวนหรืออาจจะเกิดข้อผิดพลาดได้ หากต้องการที่จะปิดการใช้งานระบบ Captcha อื่น ๆ แนะนำให้ปิดตัวอื่นๆก่อน ถ้าหากคุณต้องการให้เปิดใช้งานต่อไป ให้ กด ยกเลิก" -antennas: "เสาอากาศ" -manageAntennas: "จัดการเสาอากาศ" -name: "ชื่อ" -antennaSource: "แหล่งเสาอากาศ" -antennaKeywords: "คีย์เวิร์ดที่ควรฟัง" -antennaExcludeKeywords: "คีย์เวิร์ดที่จะยกเว้น" -antennaKeywordsDescription: "คั่นด้วยช่องว่างสำหรับเงื่อนไข AND หรือด้วยการขึ้นบรรทัดใหม่สำหรับเงื่อนไข OR นะ" -notifyAntenna: "แจ้งเตือนเกี่ยวกับโน้ตใหม่" -withFileAntenna: "เฉพาะโน้ตที่มีไฟล์" -enableServiceworker: "เปิดใช้งาน การแจ้งเตือนแบบพุชสำหรับเบราว์เซอร์ของคุณ" -antennaUsersDescription: "ระบุหนึ่งชื่อผู้ใช้ต่อบรรทัด" -caseSensitive: "กรณีที่สำคัญ" -withReplies: "รวมตอบกลับ" -connectedTo: "บัญชีดังต่อไปนี้มีการเชื่อมต่อกัน" -notesAndReplies: "โพสต์และการตอบกลับ" -withFiles: "รวบรวมไฟล์" -silence: "ถูกปิดปาก" -silenceConfirm: "นายแน่ใจแล้วหรอว่าต้องการที่จะ ปิดปาก ผู้ใช้งานรายนี้?" -unsilence: "ยกเลิกการปิดปาก" -unsilenceConfirm: "นายแน่ใจแล้วหรอว่าต้องการที่จะยกเลิกปิดปากผู้ใช้งานรายนี้?" -popularUsers: "ผู้ใช้ที่เป็นที่นิยม" -recentlyUpdatedUsers: "ผู้ใช้ที่เพิ่งใช้งานล่าสุด" -recentlyRegisteredUsers: "ผู้ใช้ที่เข้าร่วมใหม่" -recentlyDiscoveredUsers: "ผู้ใช้ที่เพิ่งค้นพบใหม่" -exploreUsersCount: "มีผู้ใช้ {จำนวน} ราย" -exploreFediverse: "สำรวจเฟดดิเวิร์ส" -popularTags: "แท็กยอดนิยม" -userList: "รายการ" -about: "เกี่ยวกับ" -aboutMisskey: "เกี่ยวกับ Misskey" -administrator: "ผู้ดูแลระบบ" -token: "โทเค็น" -twoStepAuthentication: "ยืนยันตัวตน 2 ชั้น" -moderator: "ผู้ควบคุม" -moderation: "การกลั่นกรอง" -nUsersMentioned: "กล่าวถึงโดยผู้ใช้ {n} รายนี้" -securityKey: "กุญแจความปลอดภัย" -securityKeyName: "ชื่อคีย์" -registerSecurityKey: "ลงทะเบียนรหัสความปลอดภัยคีย์" -lastUsed: "ใช้ล่าสุด" -unregister: "เลิกติดตาม" -passwordLessLogin: "เข้าสู่ระบบแบบไม่ใช้รหัสผ่าน" -resetPassword: "รีเซ็ตรหัสผ่าน" -newPasswordIs: "รหัสผ่านใหม่คือ \"{password}\"" -reduceUiAnimation: "ลดภาพเคลื่อนไหว UI" -share: "แชร์" -notFound: "ไม่พบหน้าที่ต้องการ" -notFoundDescription: "ไม่พบหน้าที่สอดคล้องตรงกันกับ URL นี้นะ" -uploadFolder: "โฟลเดอร์เริ่มต้นสำหรับอัพโหลด" -cacheClear: "ล้างแคช" -markAsReadAllNotifications: "ทำเครื่องหมายการแจ้งเตือนทั้งหมดว่าอ่านแล้ว" -markAsReadAllUnreadNotes: "ทำเครื่องหมายโน้ตทั้งหมดว่าอ่านแล้ว" -markAsReadAllTalkMessages: "ทำเครื่องหมายข้อความทั้งหมดว่าอ่านแล้ว" -help: "ช่วยเหลือ" -inputMessageHere: "พิมพ์ข้อความที่นี่" -close: "ปิด" -group: "กลุ่ม" -groups: "กลุ่ม" -createGroup: "สร้างกลุ่ม" -ownedGroups: "กลุ่มที่เป็นเจ้าของ" -joinedGroups: "เข้าร่วมกลุ่ม" -invites: "เชิญชวน" -groupName: "ชื่อกลุ่ม" -members: "สมาชิก" -transfer: "ถ่ายโอน" -messagingWithUser: "แชทส่วนตัว" -messagingWithGroup: "แชทกลุ่ม" -title: "หัวข้อ" -text: "ข้อความ" -enable: "เปิดใช้งาน" -next: "ถัด​ไป" -retype: "พิมพ์รหัสอีกครั้ง" -noteOf: "โน้ต โดย {ผู้ใช้งาน}" -inviteToGroup: "ชวนเข้ากลุ่ม" -quoteAttached: "อ้างอิง" -quoteQuestion: "นายต้องการที่จะอ้างอิงหรอ?" -noMessagesYet: "ยังไม่มีข้อความนะ" -newMessageExists: "คุณมีข้อความใหม่" -onlyOneFileCanBeAttached: "คุณสามารถแนบไฟล์กับข้อความได้เพียงไฟล์เดียวเท่านั้นนะ" -signinRequired: "กรุณาลงทะเบียนหรือลงชื่อเข้าใช้ก่อนดำเนินการต่อนะ" -invitations: "เชิญชวน" -invitationCode: "รหัสคำเชิญ" -checking: "Checking" -available: "พร้อมใช้งาน" -unavailable: "ไม่พร้อมใช้" -usernameInvalidFormat: "คุณสามารถใช้อักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ตัวเลข และขีดล่างได้นะ ( a-z , A-Z , 0-9 , รวมไปถึงอักษรพิเศษเช่น + * / , . - อื่นๆเป็นต้น )" -tooShort: "สั้นเกินไปนะ" -tooLong: "ยาวเกินไปนะ" -weakPassword: "รหัสผ่าน แย่มาก" -normalPassword: "รหัสผ่านปกติ" -strongPassword: "รหัสผ่านรัดกุมมาก" -passwordMatched: "ถูกต้อง!" -passwordNotMatched: "ไม่ถูกต้อง" -signinWith: "ลงชื่อเข้าใช้ด้วย {x}" -signinFailed: "ไม่สามารถลงชื่อผู้เข้าใช้ได้ เนื่องจาก ชื่อผู้ใช้หรือรหัสผ่านที่คุณป้อนนั้นไม่ถูกต้องนะ" -tapSecurityKey: "แตะคีย์ความปลอดภัย" -or: "หรือ" -language: "ภาษา" -uiLanguage: "ภาษาอินเทอร์เฟซผู้ใช้งาน" -groupInvited: "คุณได้รับเชิญให้เข้าร่วมกลุ่ม" -aboutX: "เกี่ยวกับ {x}" -useOsNativeEmojis: "ใช้อีโมจิ OS แบบดั้งเดิม" -disableDrawer: "อย่าใช้ลิ้นชักสไตล์เมนู" -youHaveNoGroups: "คุณยังไม่มีกลุ่ม" -joinOrCreateGroup: "รับเชิญเข้าร่วมกลุ่มหรือสร้างกลุ่มของคุณเองเลยนะ" -noHistory: "ไม่มีรายการ" -signinHistory: "ประวัติการเข้าสู่ระบบ" -disableAnimatedMfm: "ปิดการใช้งาน MFM ด้วยแอนิเมชั่น" -doing: "กำลังประมวลผล......" -category: "หมวดหมู่" -tags: "แท็ก" -docSource: "ที่มาของเอกสารนี้" -createAccount: "สร้างบัญชี" -existingAccount: "บัญชีที่มีอยู่" -regenerate: "สร้างอีกครั้ง" -fontSize: "ขนาดตัวอักษร" -noFollowRequests: "คุณไม่มีคำขอติดตามที่รอดำเนินการ" -openImageInNewTab: "เปิดรูปภาพในแท็บใหม่" -dashboard: "หน้ากระดานหลัก" -local: "ในพื้นที่" -remote: "ระยะไกล" -total: "รวมทั้งหมด" -weekOverWeekChanges: "เปลี่ยนแปลงไปเมื่อสัปดาห์ที่แล้ว" -dayOverDayChanges: "เปลี่ยนแปลงไปเมื่อวานนี้" -appearance: "ภาพลักษณ์" -clientSettings: "การตั้งค่าไคลเอนต์" -accountSettings: "ตั้งค่าบัญชี" -promotion: "โฆษณา" -promote: "โปรโมท" -numberOfDays: "จำนวนวัน" -hideThisNote: "ซ่อนโน้ตนี้" -showFeaturedNotesInTimeline: "แสดงโน้ตเด่นในไทม์ไลน์" -objectStorage: "อ็อบเจ็กต์ ที่จัดเก็บ" -useObjectStorage: "ใช้ อ็อบเจ็กต์ ที่จัดเก็บ" -objectStorageBaseUrl: "URL ฐาน" -objectStorageBaseUrlDesc: "URL ที่ใช้เป็นข้อมูลอ้างอิง ระบุ URL ของ CDN หรือ Proxy ถ้าหากคุณใช้อย่างใดอย่างหนึ่ง\n สำหรับการใช้งาน S3 'https://.s3.amazonaws.com' และสำหรับ GCS หรือบริการที่เทียบเท่าใช้ 'https://storage.googleapis.com/', เป็นต้น" -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "โปรดระบุชื่อที่เก็บข้อมูลที่ใช้กับผู้ให้บริการของคุณ" -objectStoragePrefix: "คำนำหน้า" -objectStoragePrefixDesc: "ไฟล์ทั้งหมดจะถูกเก็บไว้ภายใต้ไดเร็กทอรีที่มีคำนำหน้านี้นะ" -objectStorageEndpoint: "ปลายทาง" -objectStorageEndpointDesc: "เว้นว่างไว้หากคุณใช้ AWS S3 หรือระบุปลายทางเป็น '' หรือ ':' ทั้งนี้ขึ้นอยู่กับผู้ให้บริการที่คุณใช้อยู่ด้วย" -objectStorageRegion: "ภูมิภาค" -objectStorageRegionDesc: "ระบุภูมิภาค เช่น 'xx-east-1' ถ้าหากบริการของคุณไม่ได้แยกความแตกต่างระหว่างภูมิภาคก็ให้ เว้นว่างไว้หรือป้อน 'us-east-1'" -objectStorageUseSSL: "ใช้ SSL" -objectStorageUseSSLDesc: "ปิดการทำงานนี้ไว้ ถ้าหากคุณจะไม่ใช้ HTTPS สำหรับการเชื่อมต่อ API" -objectStorageUseProxy: "เชื่อมต่อผ่านพร็อกซี" -objectStorageUseProxyDesc: "ปิดสิ่งนี้ไว้ถ้าหากคุณจะไม่ใช้ Proxy สำหรับการเชื่อมต่อ API" -objectStorageSetPublicRead: "ตั้งค่า \"public-read\" ในการอัปโหลด" -serverLogs: "บันทึกของเซิร์ฟเวอร์" -deleteAll: "ลบทั้งหมด" -showFixedPostForm: "แสดงแบบฟอร์มการโพสต์ที่ด้านบนสุดของไทม์ไลน์" -newNoteRecived: "มีโน้ตใหม่" -sounds: "เสียง" -listen: "ฟัง" -none: "ไม่มี" -showInPage: "แสดงในเพจ" -popout: "ป๊อปเอาต์" -volume: "ความดัง" -masterVolume: "มาสเตอร์วอลุ่ม" -details: "รายละเอียด" -chooseEmoji: "เลือกโมจิของเธอ" -unableToProcess: "ไม่สามารถดำเนินการให้เสร็จสิ้นได้" -recentUsed: "ใช้ล่าสุด" -install: "ติดตั้ง" -uninstall: "ถอนการติดตั้ง" -installedApps: "แอปที่ติดตั้งแล้ว" -nothing: "ไม่พบผลลัพธ์" -installedDate: "วันที่ติดตั้ง" -lastUsedDate: "ใช้งานครั้งล่าสุด" -state: "สถานะ" -sort: "เรียงลำดับ" -ascendingOrder: "เรียงจากน้อยไปมาก" -descendingOrder: "เรียงจากมากไปน้อย" -scratchpad: "กระดานทดลอง" -scratchpadDescription: "Scratchpad เป็นการจัดเตรียมสภาพแวดล้อมสำหรับการทดลอง AiScript แต่คุณสามารถเขียน ดำเนินการ และตรวจสอบผลลัพธ์ของการโต้ตอบกับ Misskey มันได้ด้วยนะ" -output: "เอาท์พุต" -script: "สคริปต์" -disablePagesScript: "ปิดการใช้งาน AiScript บนเพจ" -updateRemoteUser: "อัปเดตข้อมูลผู้ใช้งานระยะไกล" -deleteAllFiles: "ลบไฟล์ทั้งหมด" -deleteAllFilesConfirm: "นายแน่ใจแล้วหรอว่าต้องการที่จะลบไฟล์ทั้งหมด?" -removeAllFollowing: "เลิกติดตามผู้ใช้ที่ติดตามทั้งหมด" -removeAllFollowingDescription: "การที่คุณดำเนินการนี้จะเลิกติดตามบัญชีทั้งหมดจาก {host} โปรดเรียกใช้คำสั่งสิ่งนี้หากต้องการยกเลิกอินสแตนซ์ เช่น ไม่มีอยู่แล้ว" -userSuspended: "ผู้ใช้รายนี้ถูกระงับการใช้งาน" -userSilenced: "ผู้ใช้รายนี้กำลังถูกปิดกั้น" -yourAccountSuspendedTitle: "บัญชีนี้นั้นถูกระงับ" -yourAccountSuspendedDescription: "บัญชีนี้ถูกระงับ เนื่องจากละเมิดข้อกำหนดในการให้บริการของเซิร์ฟเวอร์หรืออาจจะละเมิดหลักเกณฑ์ชุมชน หรือ อาจจะโดนร้องเรียนเรื่องการละเมิดลิขสิทธิ์และอื่นๆอย่างต่อเนื่องซ้ำๆ หากคุณคิดว่าไม่ได้ทำผิดจริงๆหรือตัดสินผิดพลาด ได้โปรดกรุณาติดต่อผู้ดูแลระบบหากคุณต้องการทราบเหตุผลโดยละเอียดเพิ่มเติม และขอความกรุณาอย่าสร้างบัญชีใหม่" -menu: "เมนู" -divider: "ตัวแบ่ง" -addItem: "เพิ่มรายการ" -relays: "รีเลย์" -addRelay: "เพิ่มรีเลย์" -inboxUrl: "อินบ็อกซ์ URL" -addedRelays: "เพิ่มรีเลย์แล้ว" -serviceworkerInfo: "ต้องเปิดใช้งานสำหรับการแจ้งเตือนแบบพุช" -deletedNote: "โน้ตที่ถูกลบ" -invisibleNote: "โน้ตที่มองไม่เห็น" -enableInfiniteScroll: "โหลดเพิ่มเติมโดยอัตโนมัติ" -visibility: "การมองเห็น" -poll: "โพล" -useCw: "ซ่อนเนื้อหา" -enablePlayer: "เปิดเครื่องเล่นวิดีโอ" -disablePlayer: "ปิดเครื่องเล่นวิดีโอ" -expandTweet: "ขยายทวีต" -themeEditor: "ตัวแก้ไขธีม" -description: "รายละเอียด" -describeFile: "เพิ่มแคปชั่น" -enterFileDescription: "ใส่แคปชั่น" -author: "ผู้เขียน" -leaveConfirm: "คุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึกนะ นายต้องการทิ้งการเปลี่ยนแปลงเหล่านั้นหรอ?" -manage: "การจัดการ" -plugins: "ปลั๊กอิน" -preferencesBackups: "ตั้งค่าการสำรองข้อมูล" -deck: "เด็ค" -undeck: "ออกจากเด็ค" -useBlurEffectForModal: "ใช้เอฟเฟกต์เบลอสำหรับโมดอล" -useFullReactionPicker: "ใช้เครื่องมือเลือกปฏิกิริยาขนาดเต็ม" -width: "ความกว้าง" -height: "ความสูง" -large: "ใหญ่" -medium: "ปานกลาง" -small: "เล็ก" -generateAccessToken: "สร้างการเข้าถึงโทเค็น" -permission: "การอนุญาต" -enableAll: "เปิดใช้งานทั้งหมด" -disableAll: "ปิดการใช้งานทั้งหมด" -tokenRequested: "ให้สิทธิ์การเข้าถึงบัญชี" -pluginTokenRequestedDescription: "ปลั๊กอินนี้จะสามารถใช้การอนุญาตที่ตั้งค่าไว้ที่นี่นะ" -notificationType: "ประเภทการแจ้งเตือน" -edit: "แก้ไข" -useStarForReactionFallback: "ใช้ ★ เป็นทางเลือกแทนถ้าหากไม่ทราบอิโมจิ" -emailServer: "อีเมล์เซิร์ฟเวอร์" -enableEmail: "เปิดใช้งานการกระจายอีเมล" -emailConfigInfo: "ใช้เพื่อยืนยันอีเมลของคุณระหว่างการสมัครหรือถ้าหากคุณลืมรหัสผ่าน" -email: "อีเมล์" -emailAddress: "ที่อยู่อีเมล์" -smtpConfig: "กำหนดค่าเซิร์ฟเวอร์ SMTP" -smtpHost: "โฮสต์" -smtpPort: "พอร์ต" -smtpUser: "ชื่อผู้ใช้" -smtpPass: "รหัสผ่าน" -emptyToDisableSmtpAuth: "ปล่อยชื่อผู้ใช้และรหัสผ่านว่างไว้เพื่อปิดใช้งานการยืนยัน SMTP" -smtpSecure: "ใช้โดยนัย SSL/TLS สำหรับการเชื่อมต่อ SMTP" -smtpSecureInfo: "ปิดสิ่งนี้เมื่อใช้ STARTTLS" -testEmail: "ทดสอบการส่งอีเมล" -wordMute: "ปิดเสียงคำ" -regexpError: "ข้อผิดพลาดของนิพจน์ทั่วไป" -regexpErrorDescription: "เกิดข้อผิดพลาดในนิพจน์ทั่วไปในบรรทัดที่ {line} ของการปิดเสียงคำ {tab} ของคุณ:" -instanceMute: "ปิดเสียง อินสแตนซ์" -userSaysSomething: "{name} พูดอะไรบางอย่าง" -makeActive: "เปิดใช้งาน" -display: "แสดงผล" -copy: "คัดลอก" -metrics: "เมตริก" -overview: "ภาพรวม" -logs: "บันทึกข้อมูลระบบ" -delayed: "ดีเลย์" -database: "ฐานข้อมูล" -channel: "แชนแนล" -create: "สร้าง" -notificationSetting: "ตั้งค่าการแจ้งเตือน" -notificationSettingDesc: "เลือกประเภทการแจ้งเตือนที่ต้องการจะแสดง" -useGlobalSetting: "ใช้การตั้งค่าส่วนกลาง" -useGlobalSettingDesc: "หากเปิดไว้ ระบบจะใช้การตั้งค่าการแจ้งเตือนของบัญชีของคุณ หากปิดอยู่ สามารถทำการกำหนดค่าแต่ละรายการได้นะ" -other: "อื่น ๆ" -regenerateLoginToken: "สร้างโทเค็นการเข้าสู่ระบบอีกครั้ง" -regenerateLoginTokenDescription: "สร้างโทเค็นใหม่ที่ใช้ภายในระหว่างการเข้าสู่ระบบ โดยตามหลักปกติแล้วการดำเนินการนี้ไม่จำเป็น หากสร้างใหม่ อุปกรณ์ทั้งหมดจะถูกออกจากระบบนะ" -setMultipleBySeparatingWithSpace: "คั่นหลายรายการด้วยช่องว่าง" -fileIdOrUrl: "ไฟล์ ID หรือ URL" -behavior: "พฤติกรรม" -sample: "ตัวอย่าง" -abuseReports: "รายงาน" -reportAbuse: "รายงาน" -reportAbuseOf: "รายงาน {ชื่อ}" -fillAbuseReportDescription: "กรุณากรอกรายละเอียดเกี่ยวกับรายงานนี้ หากเป็นเรื่องเกี่ยวกับโน้ตโดยเฉพาะ ได้โปรดระบุ URL" -abuseReported: "เราได้ส่งรายงานของคุณไปแล้ว ขอบคุณมากๆนะ" -reporter: "นักข่าว" -reporteeOrigin: "รายงานต้นทาง" -reporterOrigin: "นักข่าวต้นทาง" -forwardReport: "ส่งต่อรายงานไปยังอินสแตนซ์ระยะไกล" -forwardReportIsAnonymous: "แทนที่จะเป็นบัญชีของคุณ บัญชีระบบที่ไม่ระบุตัวตนจะแสดงเป็นนักข่าวที่อินสแตนซ์ระยะไกล" -send: "ส่ง" -abuseMarkAsResolved: "ทำเครื่องหมายรายงานว่าแก้ไขแล้ว" -openInNewTab: "เปิดในแท็บใหม่" -openInSideView: "เปิดในมุมมองด้านข้าง" -defaultNavigationBehaviour: "พฤติกรรมการนำทางที่เป็นค่าเริ่มต้น" -editTheseSettingsMayBreakAccount: "การแก้ไขการตั้งค่าเหล่านี้อาจทำให้บัญชีของคุณเสียหายนะ" -instanceTicker: "ข้อมูลอินสแตนซ์ของบันทึกย่อ" -waitingFor: "กำลังรอคอย {x}" -random: "สุ่มค่า" -system: "ระบบ" -switchUi: "สลับ UI" -desktop: "เดสก์ท็อป" -clip: "คลิป" -createNew: "สร้างใหม่" -optional: "ไม่บังคับ" -createNewClip: "สร้างคลิปใหม่" -unclip: "ลบคลิป" -confirmToUnclipAlreadyClippedNote: "โน้ตนี้เป็นส่วนหนึ่งของคลิป \"{name}\" แล้ว คุณต้องการลบออกจากคลิปนี้แทนอย่างงั้นหรอ?" -public: "สาธารณะ" -i18nInfo: "Misskey กำลังได้รับการแปลเป็นภาษาต่างๆ โดยอาสาสมัคร คุณสามารถช่วยเหลือได้ที่ {link}" -manageAccessTokens: "การจัดการโทเค็นการเข้าถึง" -accountInfo: "ข้อมูลบัญชี" -notesCount: "จำนวนของโน้ต" -repliesCount: "จำนวนการตอบกลับที่ส่ง" -renotesCount: "จำนวนรีโน้ตที่ส่ง" -repliedCount: "จำนวนของการตอบกลับที่ได้รับ" -renotedCount: "จำนวนรีโน้ตที่ได้รับ" -followingCount: "จำนวนบัญชีที่ติดตาม" -followersCount: "จำนวนผู้ติดตาม" -sentReactionsCount: "จำนวนปฏิกิริยาที่ส่ง" -receivedReactionsCount: "จำนวนปฏิกิริยาที่ได้รับ" -pollVotesCount: "จำนวนโหวตที่ส่งไป" -pollVotedCount: "จำนวนโหวตที่ได้รับ" -yes: "ใช่" -no: "ไม่" -driveFilesCount: "จำนวนไฟล์ไดรฟ์" -driveUsage: "การใช้พื้นที่ไดรฟ์" -noCrawle: "ปฏิเสธการจัดทำดัชนีของโปรแกรมรวบรวมข้อมูล" -noCrawleDescription: "ขอให้เครื่องมือค้นหาไม่จัดทำดัชนีหน้าโปรไฟล์ บันทึกย่อ หน้า ฯลฯ" -lockedAccountInfo: "เว้นแต่ว่าคุณจะต้องตั้งค่าการเปิดเผยโน้ตเป็น \"ผู้ติดตามเท่านั้น\" โน้ตย่อของคุณจะปรากฏแก่ทุกคน ถึงแม้ว่าคุณจะเป็นกำหนดให้ผู้ติดตามต้องได้รับการอนุมัติด้วยตนเองก็ตาม" -alwaysMarkSensitive: "ทำเครื่องหมายเป็น NSFW เป็นค่าเริ่มต้น" -loadRawImages: "โหลดภาพต้นฉบับแทนการแสดงภาพขนาดย่อ" -disableShowingAnimatedImages: "ไม่ต้องเล่นภาพเคลื่อนไหว" -verificationEmailSent: "ส่งอีเมลยืนยันแล้วนะ ได้โปรดกรุณาไปที่ลิงก์ที่รวมไว้เพื่อทำการตรวจสอบให้เสร็จสิ้น" -notSet: "ไม่ได้ตั้งค่า" -emailVerified: "อีเมลได้รับการยืนยันแล้ว" -noteFavoritesCount: "จำนวนโน้ตที่ชื่นชอบ" -pageLikesCount: "จำนวนเพจที่ชอบ" -pageLikedCount: "จำนวนการกดถูกใจเพจที่ได้รับแล้ว" -contact: "ติดต่อ" -useSystemFont: "ใช้ฟอนต์เริ่มต้นของระบบ" -clips: "คลิป" -experimentalFeatures: "ฟังก์ชั่นทดสอบ" -developer: "สำหรับนักพัฒนา" -makeExplorable: "ทำให้บัญชีมองเห็นใน \"สำรวจ\"" -makeExplorableDescription: "ถ้าหากคุณปิดการทำงานนี้ บัญชีของคุณนั้นจะไม่แสดงในส่วน \"สำรวจ\" นะ" -showGapBetweenNotesInTimeline: "แสดงช่องว่างระหว่างโพสต์บนไทม์ไลน์" -duplicate: "ทำซ้ำ" -left: "ซ้าย" -center: "ศูนย์กลาง" -wide: "กว้าง" -narrow: "ชิด" -reloadToApplySetting: "การตั้งค่านี้จะมีผลหลังจากโหลดหน้าซ้ำเท่านั้น ต้องการที่จะโหลดใหม่เลยมั้ย" -needReloadToApply: "จำเป็นต้องโหลดซ้ำถึงจะมีผลนะ" -showTitlebar: "แสดงแถบชื่อ" -clearCache: "ล้างแคช" -onlineUsersCount: "{n} ผู้ใช้คนนี้กำลังออนไลน์" -nUsers: "{n} ผู้ใช้งาน" -nNotes: "{n} โน้ต" -sendErrorReports: "ส่งรายงานว่าข้อผิดพลาด" -sendErrorReportsDescription: "เมื่อเปิดใช้งาน ข้อมูลข้อผิดพลาดโดยรายละเอียดนั้นจะถูกแชร์ให้กับ Misskey เมื่อเกิดปัญหา ซึ่งช่วยปรับปรุงคุณภาพของ Misskey\nซึ่งจะรวมถึงข้อมูล เช่น เวอร์ชั่นของระบบปฏิบัติการ เบราว์เซอร์ที่คุณใช้ กิจกรรมของคุณใน Misskey เป็นต้น" -myTheme: "ธีมของฉัน" -backgroundColor: "ภาพพื้นหลัง" -accentColor: "รูปแบบสี" -textColor: "สีข้อความ" -saveAs: "บันทึกเป็น..." -advanced: "ขั้นสูง" -value: "ค่า" -createdAt: "สร้างเมื่อ" -updatedAt: "อัพเดทล่าสุด" -saveConfirm: "บันทึกเปลี่ยนแปลงมั้ย?" -deleteConfirm: "ลบจริงๆเหรอ?" -invalidValue: "ค่านี้ไม่ถูกต้อง" -registry: "ทะเบียน" -closeAccount: "ปิด บัญชี" -currentVersion: "เวอร์ชั่นปัจจุบัน" -latestVersion: "รุ่นปัจจุบัน" -youAreRunningUpToDateClient: "คุณกำลังใช้ไคลเอ็นต์เวอร์ชันใหม่ล่าสุดนะ" -newVersionOfClientAvailable: "มีไคลเอ็นต์เวอร์ชันใหม่กว่าของคุณพร้อมใช้งานนะ" -usageAmount: "การใช้งาน" -capacity: "ความจุ" -inUse: "ใช้แล้ว" -editCode: "แก้ไขโค้ด" -apply: "ตกลง" -receiveAnnouncementFromInstance: "รับการแจ้งเตือนจากอินสแตนซ์นี้" -emailNotification: "การแจ้งเตือนทางอีเมล์" -publish: "เผยแพร่" -inChannelSearch: "ค้นหาในช่อง" -useReactionPickerForContextMenu: "เปิดตัวเลือกปฏิกิริยาเมื่อคลิกขวา" -typingUsers: "{users} กำลัง/กำลังพิมพ์..." -jumpToSpecifiedDate: "ข้ามไปยังวันที่เฉพาะเจาะจง" -showingPastTimeline: "กำลังแสดงผลไทม์ไลน์เก่า" -clear: "ล้าง" -markAllAsRead: "ทำเครื่องหมายทั้งหมดว่าอ่านแล้ว" -goBack: "ย้อนกลับ" -unlikeConfirm: "ลบไลค์ของคุณออกจริงๆหรอ" -fullView: "มุมมองแบบเต็ม" -quitFullView: "ออกจากมุมมองแบบเต็ม" -addDescription: "เพิ่มคำอธิบาย" -userPagePinTip: "คุณสามารถแสดงผลโน้ตย่อได้ที่นี่โดยเลือก \"ปักหมุดที่โปรไฟล์\" จากเมนูของโน้ตย่อแต่ละรายการนะ" -notSpecifiedMentionWarning: "โน้ตนี้มีการกล่าวถึงผู้ใช้งานที่ไม่รวมอยู่ในผู้รับ" -info: "เกี่ยวกับ" -userInfo: "ข้อมูลผู้ใช้" -unknown: "ไม่ทราบสถานะ" -onlineStatus: "สถานะออนไลน์" -hideOnlineStatus: "ซ่อนสถานะออนไลน์" -hideOnlineStatusDescription: "การซ่อนสถานะออนไลน์ของคุณช่วยลดความสะดวกของคุณสมบัติบางอย่าง เช่น การค้นหา อ่ะนะ" -online: "ออนไลน์" -active: "ใช้งานอยู่" -offline: "ออฟไลน์" -notRecommended: "ไม่ใช้งาน" -botProtection: "การป้องกัน Bot (or AI)" -instanceBlocking: "อินสแตนซ์ที่ถูกบล็อก" -selectAccount: "เลือกบัญชี" -switchAccount: "สลับบัญชีผู้ใช้" -enabled: "เปิดใช้งาน" -disabled: "ปิดการใช้งาน" -quickAction: "ปุ่มลัด" -user: "ผู้ใช้งาน" -administration: "การจัดการ" -accounts: "บัญชีผู้ใช้" -switch: "สลับ" -noMaintainerInformationWarning: "ข้อมูลผู้ดูแลไม่ได้รับการกำหนดค่านะ" -noBotProtectionWarning: "ไม่ได้กำหนดค่าการป้องกันบอทนะ" -configure: "กำหนดค่า" -postToGallery: "สร้างโพสต์แกลเลอรี่ใหม่" -gallery: "แกลเลอรี่" -recentPosts: "โพสต์ล่าสุด" -popularPosts: "โพสต์ติดอันดับ" -shareWithNote: "แบ่งปันด้วยโน้ต" -ads: "โฆษณา" -expiration: "กำหนดเวลา" -memo: "ข้อควรจำ" -priority: "ลำดับความสำคัญ" -high: "สูง" -middle: "ปานกลาง" -low: "ต่ำ" -emailNotConfiguredWarning: "ไม่ได้ตั้งค่าที่อยู่อีเมลนะ" -ratio: "อัตราส่วน" -previewNoteText: "แสดงตัวอย่าง" -customCss: "CSS ที่กำหนดเอง" -customCssWarn: "ควรใช้การตั้งค่านี้เฉพาะต่อเมื่อคุณรู้ว่าการตั้งค่านี้ใช้ทำอะไร การป้อนค่าที่ไม่เหมาะสมอาจทำให้ไคลเอ็นต์หยุดทำงานตามปกติได้นะ" -global: "ทั่วโลก" -squareAvatars: "แสดงผลอวตารสี่เหลี่ยม" -sent: "ส่ง" -received: "ได้รับแล้ว" -searchResult: "ผลการค้นหา" -hashtags: "แฮชแท็ก" -troubleshooting: "แก้ปัญหา" -useBlurEffect: "ใช้เอฟเฟกต์เบลอใน UI" -learnMore: "แสดงให้ดูหน่อย" -misskeyUpdated: "Misskey ได้รับการอัปเดตแล้ว!" -whatIsNew: "แสดงการเปลี่ยนแปลง" -translate: "แปลภาษา" -translatedFrom: "แปลมาจาก {x}" -accountDeletionInProgress: "กำลังดำเนินการลบบัญชีอยู่" -usernameInfo: "ชื่อที่ระบุบัญชีของคุณจากผู้อื่นในเซิร์ฟเวอร์นี้ คุณสามารถใช้ตัวอักษร (a~z, A~Z), ตัวเลข (0~9) หรือขีดล่าง (_) ชื่อผู้ใช้ไม่สามารถเปลี่ยนแปลงได้ในภายหลัง" -aiChanMode: "โหมด Ai " -keepCw: "เก็บคำเตือนเนื้อหา" -pubSub: "บัญชีผับ/ย่อย" -lastCommunication: "การสื่อสารครั้งสุดท้ายล่าสุด" -resolved: "คลี่คลายแล้ว" -unresolved: "รอการเฉลย" -breakFollow: "ลบผู้ติดตาม" -itsOn: "เปิดใช้งาน" -itsOff: "ปิดใช้งาน" -emailRequiredForSignup: "จำเป็นต้องการใช้ที่อยู่อีเมลสำหรับการสมัคร" -unread: "ไม่ได้อ่าน" -filter: "กรอง" -controlPanel: "แผงควบคุม" -manageAccounts: "จัดการบัญชี" -makeReactionsPublic: "ตั้งค่าประวัติปฏิกิริยาต่อสาธารณะ" -makeReactionsPublicDescription: "การทำเช่นนี้จะทำให้รายการปฏิกิริยาที่ผ่านมาของคุณจะปรากฏต่อสาธารณะนะ" -classic: "คลาสสิค" -muteThread: "ปิดเสียงเธรด" -unmuteThread: "เปิดเสียงเธรด" -ffVisibility: "การมองเห็นผู้ติดตาม/ผู้ติดตาม" -ffVisibilityDescription: "ช่วยให้คุณสามารถกำหนดค่าได้ว่าใครสามารถดูได้ว่าคุณติดตามใครและใครติดตามคุณบ้าง" -continueThread: "ดูความต่อเนื่องเธรด" -deleteAccountConfirm: "การดำเนินการนี้จะลบบัญชีของคุณอย่างถาวรเลยนะ แน่ใจหรอดำเนินการ?" -incorrectPassword: "รหัสผ่านไม่ถูกต้อง" -voteConfirm: "ยืนยันการโหวต \"{choice}\" มั้ย?" -hide: "ซ่อน" -leaveGroup: "ออกจากกลุ่ม" -leaveGroupConfirm: "คุณแน่ใจหรอว่าต้องการออกจาก \"{name}\"" -useDrawerReactionPickerForMobile: "แสดงผล ตัวเลือกปฏิกิริยาเป็นลิ้นชักบนมือถือ" -welcomeBackWithName: "ยินดีต้อนรับการกลับมานะค่ะ, {name}" -clickToFinishEmailVerification: "กรุณาคลิก [{ok}] เพื่อดำเนินการยืนยันอีเมลให้เสร็จสมบูรณ์นะ" -overridedDeviceKind: "ประเภทอุปกรณ์" -smartphone: "สมาร์ทโฟน" -tablet: "แท็บเล็ต" -auto: "อัตโนมัติ" -themeColor: "อินสแตนซ์ Ticker Color" -size: "ขนาด" -numberOfColumn: "จำนวนคอลัมน์" -searchByGoogle: "ค้นหา" -instanceDefaultLightTheme: "ธีมสว่างค่าเริ่มต้นสำหรับอินสแตนซ์" -instanceDefaultDarkTheme: "ธีมมืดค่าเริ่มต้นอินสแตนซ์" -instanceDefaultThemeDescription: "ป้อนรหัสธีมในรูปแบบออบเจ็กต์" -mutePeriod: "ระยะเวลาปิดเสียง" -indefinitely: "ตลอดไป" -tenMinutes: "10 นาที" -oneHour: "1 ชั่วโมง" -oneDay: "1 วัน" -oneWeek: "1 สัปดาห์" -reflectMayTakeTime: "อาจจำเป็นต้องใช้เวลาสักระยะหนึ่งจึงจะเห็นแสดงผลได้นะ" -failedToFetchAccountInformation: "ไม่สามารถเรียกดึงข้อมูลบัญชีได้" -rateLimitExceeded: "เกินขีดจำกัดอัตรา" -cropImage: "ครอบตัดรูปภาพ" -cropImageAsk: "คุณต้องการครอบตัดรูปภาพนี้อย่างงั้นหรือ?" -file: "ไฟล์" -recentNHours: "ล่าสุด {n} ชั่วโมงที่แล้ว" -recentNDays: "ล่าสุด {n} วันที่แล้ว" -noEmailServerWarning: "ไม่ได้กำหนดค่าเซิร์ฟเวอร์อีเมลนี้" -thereIsUnresolvedAbuseReportWarning: "มีรายงานที่ยังไม่ได้แก้ไข" -recommended: "แนะนำ" -check: "ตรวจสอบ" -driveCapOverrideLabel: "เปลี่ยนความจุของไดรฟ์สำหรับผู้ใช้รายนี้" -driveCapOverrideCaption: "รีเซ็ตความจุเป็นค่าเริ่มต้นโดยการป้อนค่าเป็น 0 หรือ ต่ำกว่า" -requireAdminForView: "คุณจำเป็นต้องเข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบเพื่อเข้าดูสิ่งนี้" -isSystemAccount: "บัญชีที่ถูกสร้างมานั้น และถูกดำเนินการโดยอัตโนมัติด้วยระบบ" -typeToConfirm: "โปรดป้อน {x} เพื่อยืนยัน" -deleteAccount: "ลบบัญชี" -document: "เอกสาร" -numberOfPageCache: "จำนวนหน้าเพจที่แคช" -numberOfPageCacheDescription: "การเพิ่มจำนวนนี้จะช่วยเพิ่มความสะดวกให้กับผู้ใช้งาน แต่จะทำให้เซิร์ฟเวอร์โหลดมากขึ้นและต้องใช้หน่วยความจำมากขึ้นอีกด้วย" -logoutConfirm: "คุณแน่ใจว่าต้องการออกจากระบบ?" -lastActiveDate: "ใช้งานล่าสุดที่" -statusbar: "ไอคอนบนแถบสถานะ" -pleaseSelect: "ตัวเลือก" -reverse: "ย้อนกลับ" -colored: "สี" -refreshInterval: "รอบการอัพเดต" -label: "ป้ายชื่อ" -type: "รูปแบบ" -speed: "ความเร็ว" -slow: "ช้า" -fast: "เร็ว" -sensitiveMediaDetection: "การตรวจจับของสื่อ NSFW" -localOnly: "เฉพาะท้องถิ่น" -remoteOnly: "รีโมทเท่านั้น" -failedToUpload: "การอัปโหลดล้มเหลว" -cannotUploadBecauseInappropriate: "ไม่สามารถอัปโหลดไฟล์นี้ได้เนื่องจากระบบตรวจพบบางส่วนของไฟล์ว่านี้อาจจะเป็น NSFW" -cannotUploadBecauseNoFreeSpace: "การอัปโหลดนั้นล้มเหลวเนื่องจากไม่มีความจุของไดรฟ์" -beta: "เบต้า" -enableAutoSensitive: "ทำเครื่องหมาย NSFW อัตโนมัติ" -enableAutoSensitiveDescription: "อนุญาตให้ตรวจหาและทำเครื่องหมายสื่อ NSFW โดยอัตโนมัติผ่านการเรียนรู้ของเครื่องหากเป็นไปได้ แม้ว่าตัวเลือกนี้จะถูกปิดใช้งาน แต่ก็สามารถเปิดใช้งานได้ทั้งอินสแตนซ์นี้" -activeEmailValidationDescription: "เปิดใช้งานการตรวจสอบที่อยู่อีเมลให้มีความเข้มงวดยิ่งขึ้น ซึ่งอาจจะรวมไปถึงการตรวจสอบที่อยู่อีเมล์ที่ใช้แล้วทิ้งและโดยให้พิจารณาว่าสามารถสื่อสารด้วยได้หรือไม่ เมื่อไม่เลือกระบบจะตรวจสอบเฉพาะรูปแบบของอีเมลเท่านั้น" -navbar: "แถบนำทาง" -shuffle: "สลับ" -account: "บัญชีผู้ใช้" -move: "ย้าย" -_sensitiveMediaDetection: - description: "ลดความพยายามในการดูแลเซิร์ฟเวอร์ผ่านการจดจำสื่อ NSFW โดยอัตโนมัติผ่านการเรียนรู้ของเครื่อง การทำสิ่งนี้อาจจะเพิ่มภาระบนเซิร์ฟเวอร์เล็กน้อย" - sensitivity: "การตรวจจับความไว" - sensitivityDescription: "การลดความไวนั้นจะนำไปสู่การตรวจจับที่ผิดพลาดน้อยลง (ผลบวกที่ผิดพลาด) แต่ในขณะที่การเพิ่มนั้นจะนำไปสู่การตรวจหาที่พลาดน้อยลง (ผลลบเท็จ)" - setSensitiveFlagAutomatically: "ทำเครื่องหมายว่าเป็น NSFW" - setSensitiveFlagAutomaticallyDescription: "ผลลัพธ์ของการตรวจจับภายในนั้นจะยังคงอยู่ ถึงแม้ว่าจะปิดตัวเลือกนี้" - analyzeVideos: "เปิดใช้งานวิเคราะห์ของวิดีโอ" - analyzeVideosDescription: "การวิเคราะห์วิดีโอนอกเหนือจากรูปภาพนั้น การทำสิ่งนี้จะทำให้เพิ่มภาระบนเซิร์ฟเวอร์เล็กน้อย" -_emailUnavailable: - used: "ที่อยู่อีเมลนี้ได้ถูกใช้ไปแล้ว" - format: "รูปแบบของที่อยู่อีเมลนี้ไม่ถูกต้อง" - disposable: "ที่อยู่อีเมลที่ใช้แล้วทิ้งนั้นไม่สามารถใช้ได้" - mx: "เซิร์ฟเวอร์อีเมลนี้ไม่ถูกต้อง" - smtp: "เซิร์ฟเวอร์อีเมลนี้ไม่มีการตอบสนอง" -_ffVisibility: - public: "เผยแพร่" - followers: "ปรากฏให้แก่ผู้ติดตามเท่านั้น" - private: "ส่วนตัว" -_signup: - almostThere: "เกือบจะมี" - emailAddressInfo: "โปรดกรอกอีเมลของคุณ มันจะไม่เปิดเผยต่อสาธารณะ" - emailSent: "เราได้ส่งอีเมลยืนยันไปยังที่อยู่อีเมลของคุณแล้วนะ ({email}) โปรดคลิกลิงก์ที่รวมไว้เพื่อสร้างบัญชีให้เสร็จสิ้น" -_accountDelete: - accountDelete: "ลบบัญชีผู้ใช้" - mayTakeTime: "เนื่องจากการลบบัญชีนี้จะเป็นกระบวนการที่ต้องใช้ทรัพยากรมาก จึงอาจจะต้องใช้เวลาสักครู่ถึงจะเสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับจำนวนเนื้อหาที่คุณสร้างและจำนวนไฟล์ที่คุณอัปโหลดนะ" - sendEmail: "เมื่อการลบบัญชีนี้เสร็จสิ้น เราอาจจะส่งอีเมลไปยังที่อยู่อีเมลของคุณที่เคยลงทะเบียนไว้กับบัญชีนี้นะ" - requestAccountDelete: "ร้องขอให้ลบบัญชี" - started: "การลบได้เริ่มต้นขึ้น" - inProgress: "ปัจจุบันกำลังดำเนินการลบอยู่" -_ad: - back: "ย้อนกลับ" - reduceFrequencyOfThisAd: "แสดงโฆษณานี้ให้น้อยลง" -_forgotPassword: - enterEmail: "ป้อนที่อยู่อีเมลที่คุณเคยใช้ในการลงทะเบียนไว้ ลิงก์ที่คุณสามารถรีเซ็ตรหัสผ่านได้นั้นจะถูกส่งไปนะ" - ifNoEmail: "ถ้าหากคุณไม่ได้ใช้อีเมลระหว่างการลงทะเบียน กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์แทนนะ" - contactAdmin: "อินสแตนซ์นี้ไม่รองรับการใช้งานที่อยู่อีเมลนี้ กรุณาติดต่อผู้ดูแลระบบอินสแตนซ์เพื่อรีเซ็ตรหัสผ่านของคุณแทน" -_gallery: - my: "แกลลอรี่ของฉัน" - liked: "โพสต์ที่ถูกใจ" - like: "ชื่นชอบ" - unlike: "ลบไลค์" -_email: - _follow: - title: "ได้ติดตามคุณ" - _receiveFollowRequest: - title: "คุณได้รับคำขอติดตาม" -_plugin: - install: "ติดตั้งปลั๊กอิน" - installWarn: "กรุณาอย่าติดตั้งปลั๊กอินที่ไม่น่าเชื่อถือนะคะ" - manage: "จัดการปลั๊กอิน" -_preferencesBackups: - list: "สร้างการสำรองข้อมูล" - saveNew: "บันทึกใหม่" - loadFile: "โหลดจากไฟล์" - apply: "นำไปใช้กับอุปกรณ์นี้" - save: "บันทึก" - inputName: "กรุณาป้อนชื่อสำหรับข้อมูลสำรองนี้" - cannotSave: "การบันทึกล้มเหลว" - nameAlreadyExists: "มีข้อมูลสำรองชื่อ \"{name}\" นี้อยู่แล้ว กรุณาป้อนชื่ออื่นนะ" - applyConfirm: "คุณต้องการใช้ข้อมูลสำรอง \"{name}\" กับอุปกรณ์นี้อย่างงั้นจริงหรอ การตั้งค่าที่มีอยู่ของอุปกรณ์นี้จะถูกเขียนทับนะ" - saveConfirm: "บันทึกข้อมูลสำรองเป็น {name} มั้ย?" - deleteConfirm: "ลบข้อมูลสำรอง {name} มั้ย?" - renameConfirm: "เปลี่ยนชื่อข้อมูลสำรองนี้จาก \"{old}\" เป็น \"{new}\" หรือป่าว" - noBackups: "ไม่มีข้อมูลสำรองนะ คุณสามารถสำรองข้อมูลการตั้งค่าไคลเอนต์ของคุณบนเซิร์ฟเวอร์นี้โดยใช้ \"สร้างการสำรองข้อมูลใหม่\"ได้นะ" - createdAt: "สร้างเมื่อ: {date} {time}" - updatedAt: "อัปเดตเมื่อ: {date} {time}" - cannotLoad: "การโหลดล้มเหลว" - invalidFile: "รูปแบบไฟล์ไม่ถูกต้องนะ" -_registry: - scope: "สโคป" - key: "คีย์" - keys: "คีย์" - domain: "โดเมน" - createKey: "สร้างคีย์" -_aboutMisskey: - about: "Misskey เป็นซอฟต์แวร์โอเพ่นซอร์สที่ถูกพัฒนาโดย Syuilo ตั้งแต่ปี 2014" - contributors: "ผู้สนับสนุนหลัก" - allContributors: "ผู้มีส่วนร่วมทั้งหมด" - source: "ซอร์สโค้ด" - translation: "รับแปลภาษา Misskey" - donate: "บริจาคให้กับ Misskey" - morePatrons: "เราขอขอบคุณสำหรับความช่วยเหลือจากผู้ช่วยอื่นๆ ที่ไม่ได้ระบุไว้ที่นี่นะ ขอขอบคุณ! 🥰" - patrons: "สมาชิกพันธมิตร" -_nsfw: - respect: "ซ่อนสื่อ NSFW" - ignore: "อย่าซ่อนสื่อ NSFW" - force: "ซ่อนสื่อทั้งหมด" -_mfm: - cheatSheet: "โค้ด MFM Cheat Sheet" - intro: "MFM เป็นภาษามาร์กอัปพิเศษเฉพาะของ Misskey ที่สามารถใช้ได้ในหลายที่ คุณยังสามารถดูรายการไวยากรณ์ MFM ที่มีอยู่ทั้งหมดได้ที่นี่นะ" - dummy: "Misskey ขยายโลกของ Fediverse" - mention: "กล่าวถึง" - mentionDescription: "คุณสามารถระบุผู้ใช้โดยใช้ At-Symbol และชื่อผู้ใช้ได้นะ" - hashtag: "แฮชแท็ก" - hashtagDescription: "คุณสามารถระบุชื่อแฮชแท็กได้โดยใช้เครื่องหมายตัวเลขและข้อความได้นะ" - url: "URL" - urlDescription: "สามารถแสดง URL ได้นะ" - link: "ลิงก์" - linkDescription: "เจาะจงเฉพาะ ส่วนของข้อความที่สามารถแสดงเป็น URL ได้" - bold: "ตัวหนา" - boldDescription: "ไฮไลท์ตัวอักษรโดยทำให้หนาขึ้น" - small: "ขนาดเล็ก" - smallDescription: "แสดงผลเนื้อหาขนาดเล็กและบาง" - center: "เซ็นเตอร์" - centerDescription: "แสดงผลเนื้อหาเป็นศูนย์กลาง" - inlineCode: "โค้ด (อินไลน์)" - inlineCodeDescription: "แสดงผลการเน้นไวยากรณ์แบบอินไลน์สำหรับโค้ด (โปรแกรม)" - blockCode: "โค้ด (บล็อก)" - blockCodeDescription: "แสดงผลการเน้นไวยากรณ์สำหรับโค้ดหลายบรรทัด (โปรแกรม) ในบล็อก" - inlineMath: "คณิต (อินไลน์)" - inlineMathDescription: "แสดงผลสูตรคณิต (KaTeX) ในบรรทัด" - blockMath: "คณิต (บล็อก)" - blockMathDescription: "แสดงผลสูตรคณิตหลายบรรทัด (KaTeX) ในบล็อก" - quote: "อ้างคำพูด" - quoteDescription: "แสดงผลเนื้อหาเป็นใบเสนอราคา" - emoji: "กำหนดอีโมจิเอง" - emojiDescription: "โดยล้อมรอบชื่ออีโมจิที่กำหนดเองด้วยเครื่องหมายทวิภาค จะสามารถแสดงผลอีโมจิที่กำหนดเองได้" - search: "ค้นหา" - searchDescription: "แสดงผลกล่องค้นหาพร้อมกับข้อความที่ป้อนไว้ล่วงหน้า" - flip: "พลิก" - flipDescription: "พลิกเนื้อหาในแนวนอนหรือแนวตั้ง" - jelly: "แอนิเมชั่น (เยลลี่)" - jellyDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือนเยลลี่" - tada: "แอนิเมชั่น (ธาดา)" - tadaDescription: "ให้เนื้อหาเป็นแอนิเมชั่นเหมือน \"ทาด้า!\"" - jump: "อนิเมชั่น (กระโดด)" - jumpDescription: "ให้เนื้อหามีภาพเคลื่อนไหวแบบกระโดด" - bounce: "อนิเมชั่น (เด้ง)" - bounceDescription: "ให้เนื้อหามีอนิเมชั่นเด้ง" - shake: "อนิเมชั่น (เขย่า)" - shakeDescription: "ให้เนื้อหามีภาพเคลื่อนไหวสั่น" - twitch: "แอนิเมชั่น (Twitch)" - twitchDescription: "ให้เนื้อหามีแอนิเมชั่นกระตุกอย่างแรง" - spin: "แอนิเมชั่น (สปิน)" - spinDescription: "ให้เนื้อหาเป็นภาพเคลื่อนไหวแบบหมุน" - x2: "ขนาดใหญ่" - x2Description: "แสดงเนื้อหาที่ใหญ่ขึ้น" - x3: "ใหญ่มาก" - x3Description: "แสดงเนื้อหาอีเว้นท์ที่ใหญ่ขึ้น" - x4: "ใหญ่อย่างไม่น่าเชื่อ" - x4Description: "แสดงผลเนื้อหาที่ใหญ่กว่าใหญ่กว่าขนาดใหญ่" - blur: "เบลอ" - blurDescription: "เบลอเนื้อหา จะแสดงผลอย่างชัดเจนต่อเมื่อวางเมาส์เหนือ" - font: "ตัวอักษร" - fontDescription: "ตั้งค่าตัวอักษรเพื่อแสดงเนื้อหาใน" - rainbow: "สายรุ้ง" - rainbowDescription: "ทำให้เนื้อหานั้นปรากฏเป็นสีรุ้ง" - sparkle: "กลิตเตอร์" - sparkleDescription: "ให้เนื้อหานั้นมีเอฟเฟกต์แบบอนุภาคประกาย" - rotate: "หมุนหน้าจอ" - rotateDescription: "เปลี่ยนเนื้อหาตามด้วยมุมที่ระบุไว้" - plain: "เรียบง่าย" - plainDescription: "ปิดการใช้งานเอฟเฟกต์ของ MFM ทั้งหมดที่มีอยู่ในเอฟเฟกต์ MFM นี้" -_instanceTicker: - none: "ไม่ต้องแสดง" - remote: "แสดงสำหรับผู้ใช้ระยะไกล" - always: "แสดงเสมอ" -_serverDisconnectedBehavior: - reload: "โหลดใหม่โดยอัตโนมัติ" - dialog: "แสดงกล่องโต้ตอบคำเตือน" - quiet: "แสดงคำเตือนที่ไม่เป็นการรบกวน" -_channel: - create: "สร้างแชนแนลใหม่" - edit: "แก้ไขแชนแนล" - setBanner: "เซตแบนเนอร์" - removeBanner: "ลบแบนเนอร์" - featured: "เทรนด์" - owned: "เจ้าของ" - following: "ติดตามแล้ว" - usersCount: "{n} ผู้เข้าร่วม" - notesCount: "{n} โน้ต" -_menuDisplay: - sideFull: "ด้านข้าง" - sideIcon: "ด้านข้าง (ไอคอน)" - top: "ท็อป" - hide: "ซ่อน" -_wordMute: - muteWords: "ปิดเสียงคำ" - muteWordsDescription: "คั่นด้วยช่องว่างสำหรับเงื่อนไข AND หรือด้วยการขึ้นบรรทัดใหม่สำหรับเงื่อนไข OR นะ" - muteWordsDescription2: "ล้อมรอบคีย์เวิร์ดด้วยเครื่องหมายทับเพื่อใช้นิพจน์ทั่วไป" - softDescription: "ซ่อนโน้ตให้ตรงตามเงื่อนไขที่ตั้งไว้จากไทม์ไลน์" - hardDescription: "ป้องกันไม่ให้โน้ตย่อที่ตรงตามเงื่อนไขที่ตั้งไว้ไม่ให้ถูกเพิ่มลงในไทม์ไลน์ นอกจากนี้ โน้ตเหล่านี้จะไม่ถูกเพิ่มลงในไทม์ไลน์แม้ว่าจะมีการเปลี่ยนแปลงเงื่อนไขยังไงก็ตาม" - soft: "ซอฟ" - hard: "ยาก" - mutedNotes: "ปิดเสียงโน้ต" -_instanceMute: - instanceMuteDescription: "การดำเนินการนี้จะปิดเสียง\"โน้ต/รีโน้ต\"จากอินสแตนซ์ที่อยู่ในรายการ รวมถึงบันทึกของผู้ใช้ที่ตอบกลับผู้ใช้จากอินสแตนซ์ที่ปิดเสียง" - instanceMuteDescription2: "คั่นด้วยการขึ้นบรรทัดใหม่" - title: "ซ่อนโน้ตจากอินสแตนซ์ที่มีอยู่ในรายการ" - heading: "รายชื่ออินสแตนซ์ที่ถูกปิดเสียง" -_theme: - explore: "สำรวจธีม" - install: "ติดตั้งธีม" - manage: "จัดการธีม" - code: "โค้ดธีม" - description: "รายละเอียด" - installed: "{name} ได้รับการติดตั้ง" - installedThemes: "ธีมที่ติดตั้ง" - builtinThemes: "ธีมในตัว" - alreadyInstalled: "ธีมนี้ได้รับการติดตั้งแล้ว" - invalid: "รูปแบบของธีมนี้ไม่ถูกต้องนะ" - make: "ทำธีม" - base: "ฐาน" - addConstant: "เพิ่มค่าคงที่" - constant: "ตัวแปร" - defaultValue: "ค่าเริ่มต้น" - color: "สี" - refProp: "อ้างอิงคุณสมบัติ" - refConst: "อ้างอิงค่าคงที่" - key: "คีย์" - func: "ฟังก์ชัน" - funcKind: "ประเภทฟังก์ชัน" - argument: "อากิวเม้นต์" - basedProp: "ทรัพย์สินอ้างอิง" - alpha: "ความทึบแสง" - darken: "มืดลง" - lighten: "สว่าง" - inputConstantName: "ป้อนชื่อสำหรับค่าคงที่นี้" - importInfo: "ถ้าหากต้องการป้อนโค้ดที่นี่ คุณยังสามารถนำเข้าไปยังโปรแกรมแก้ไขธีมได้" - deleteConstantConfirm: "คุณต้องการลบค่าคงที่ {const} หรือป่าว?" - keys: - accent: "เน้น" - bg: "ภาพพื้นหลัง" - fg: "ข้อความ" - focus: "โฟกัส" - indicator: "ตัวบ่งชี้" - panel: "แผงควบคุม" - shadow: "เงา" - header: "ส่วนหัว" - navBg: "พื้นหลังแถบด้านข้าง" - navFg: "ข้อความแถบด้านข้าง" - mention: "กล่าวถึง" - renote: "รีโน้ต" - divider: "ตัวแบ่ง" -_sfx: - note: "หมายเหตุ" - notification: "การเเจ้งเตือน" - chat: "แชท" -_widgets: - notifications: "การเเจ้งเตือน" - timeline: "ไทม์ไลน์" - activity: "กิจกรรม" - federation: "สหพันธ์" - jobQueue: "คิวงาน" -_cw: - show: "โหลดเพิ่มเติม" -_visibility: - home: "หน้าแรก" - followers: "ผู้ติดตาม" -_profile: - name: "ชื่อ" - username: "ชื่อผู้ใช้" -_exportOrImport: - followingList: "กำลังติดตาม" - muteList: "ปิดเสียง" - blockingList: "บล็อค" - userLists: "รายการ" -_charts: - federation: "สหพันธ์" -_timelines: - home: "หน้าแรก" -_pages: - blocks: - image: "รูปภาพ" - script: - categories: - list: "รายการ" - blocks: - _join: - arg1: "รายการ" - _randomPick: - arg1: "รายการ" - _dailyRandomPick: - arg1: "รายการ" - _seedRandomPick: - arg2: "รายการ" - _pick: - arg1: "รายการ" - _listLen: - arg1: "รายการ" - types: - array: "รายการ" -_notification: - youWereFollowed: "ได้ติดตามคุณ" - _types: - follow: "กำลังติดตาม" - mention: "กล่าวถึง" - renote: "รีโน้ต" - quote: "อ้างคำพูด" - reaction: "รีแอคชั่น" - _actions: - reply: "ตอบกลับ" - renote: "รีโน้ต" -_deck: - _columns: - notifications: "การเเจ้งเตือน" - tl: "ไทม์ไลน์" - antenna: "เสาอากาศ" - list: "รายการ" - mentions: "พูดถึง" diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml deleted file mode 100644 index aecb413de..000000000 --- a/locales/tr-TR.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -_lang_: "Türkçe" -introMisskey: "Açık kaynaklı bir dağıtılmış mikroblog hizmeti olan Misskey'e hoş geldiniz.\nMisskey, neler olup bittiğini paylaşmak ve herkese sizden bahsetmek için \"notlar\" oluşturmanıza olanak tanıyan, açık kaynaklı, dağıtılmış bir mikroblog hizmetidir.\nHerkesin notlarına kendi tepkilerinizi hızlıca eklemek için \"Tepkiler\" özelliğini de kullanabilirsiniz👍.\nYeni bir dünyayı keşfedin🚀." -monthAndDay: "{month}Ay {day}Gün" -search: "Arama" -notifications: "Bildirim" -username: "Kullanıcı Adı" -password: "Şifre" -forgotPassword: "şifremi unuttum" -ok: "TAMAM" -gotIt: "Anladım" -cancel: "İptal" -enterUsername: "Kullanıcı adınızı giriniz" -noNotes: "Notlar mevcut değil." -noNotifications: "Bildirim bulunmuyor" -settings: "Ayarlar" -basicSettings: "Temel Ayarlar" -otherSettings: "Diğer Ayarlar" -openInWindow: "Bir pencere ile aç" -profile: "Profil" -timeline: "Zaman çizelgesi" -noAccountDescription: "Bu kullanıcı henüz biyografisini yazmadı" -login: "Giriş Yap " -logout: "Çıkış Yap" -signup: "Kayıt Ol" -uploading: "Yükleniyor" -users: "Kullanıcı" -addUser: "Kullanıcı Ekle" -favorite: "Favoriler" -favorites: "Favoriler" -unfavorite: "Favorilerden Kaldır" -favorited: "Favorilerime eklendi." -alreadyFavorited: "Zaten favorilerinizde kayıtlı." -pin: "Sabitlenmiş" -unpin: "Sabitlemeyi kaldır" -copyContent: "İçeriği kopyala" -copyLink: "Bağlantıyı Kopyala" -delete: "Sil" -deleteAndEdit: "Sil ve yeniden düzenle" -deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek istiyor musunuz? Bu nota ilişkin tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir." -addToList: "Listeye ekle" -sendMessage: "Mesaj Gönder" -copyUsername: "Kullanıcı Adını Kopyala" -searchUser: "Kullanıcıları ara" -pinned: "Sabitlenmiş" -remove: "Sil" -smtpUser: "Kullanıcı Adı" -smtpPass: "Şifre" -user: "Kullanıcı" -searchByGoogle: "Arama" -_mfm: - search: "Arama" -_sfx: - notification: "Bildirim" -_widgets: - notifications: "Bildirim" - timeline: "Zaman çizelgesi" -_profile: - username: "Kullanıcı Adı" -_deck: - _columns: - notifications: "Bildirim" - tl: "Zaman çizelgesi" diff --git a/locales/ug-CN.yml b/locales/ug-CN.yml index a7504542d..cfdecfbd4 100644 --- a/locales/ug-CN.yml +++ b/locales/ug-CN.yml @@ -1,6 +1,5 @@ --- _lang_: "ياپونچە" search: "ئىزدەش" -searchByGoogle: "ئىزدەش" _mfm: search: "ئىزدەش" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index b696a58b9..d4a6776a9 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -1,20 +1,17 @@ --- _lang_: "Українська" -headlineMisskey: "Мережа об'єднана записами" -introMisskey: "Ласкаво просимо! Misskey - децентралізована служба мікроблогів з відкритим кодом.\nСтворюйте \"нотатки\", щоб поділитися тим, що відбувається, і розповісти всім про себе 📡\nЗа допомогою \"реакцій\" ви також можете швидко висловити свої почуття щодо нотаток інших 👍\nДосліджуймо новий світ! 🚀" monthAndDay: "{month}/{day}" search: "Пошук" notifications: "Сповіщення" username: "Ім'я користувача" password: "Пароль" -forgotPassword: "Я забув пароль" fetchingAsApObject: "Отримуємо з федіверсу..." ok: "OK" gotIt: "Зрозуміло!" cancel: "Скасувати" enterUsername: "Введіть ім'я користувача" renotedBy: "Поширено {user}" -noNotes: "Немає нотаток" +noNotes: "Немає дописів" noNotifications: "Немає сповіщень" instance: "Інстанс" settings: "Налаштування" @@ -35,27 +32,21 @@ addUser: "Додати користувача" favorite: "Обране" favorites: "Обране" unfavorite: "Видалити з обраного" -favorited: "Додано до вподобаних." -alreadyFavorited: "Вже додано до вподобаних." -cantFavorite: "Неможливо вподобати." pin: "Закріпити" unpin: "Відкріпити" copyContent: "Скопіювати контент" copyLink: "Скопіювати посилання" delete: "Видалити" deleteAndEdit: "Видалити й редагувати" -deleteAndEditConfirm: "Ви впевнені, що хочете видалити цю нотатку та відредагувати її? Ви втратите всі реакції, поширення та відповіді на неї." addToList: "Додати до списку" sendMessage: "Надіслати повідомлення" copyUsername: "Скопіювати ім’я користувача" searchUser: "Пошук користувачів" reply: "Відповісти" loadMore: "Показати більше" -showMore: "Показати більше" -showLess: "Закрити" -youGotNewFollower: "Новий підписник" +youGotNewFollower: "У вас новий підписник" receiveFollowRequest: "Отримано запит на підписку" -followRequestAccepted: "Підписка прийнята" +followRequestAccepted: "Запит на підписку прийнято" mention: "Згадка" mentions: "Згадки" directNotes: "Прямі повідомлення" @@ -64,14 +55,11 @@ import: "Імпорт" export: "Експорт" files: "Файли" download: "Завантажити" -driveFileDeleteConfirm: "Ви впевнені, що хочете видалити файл {name}? Нотатки із цим файлом також буде видалено." unfollowConfirm: "Ви впевнені, що хочете відписатися від {name}?" -exportRequested: "Експортування розпочато. Це може зайняти деякий час. Після завершення експорту отриманий файл буде додано на диск." -importRequested: "Імпортування розпочато. Це може зайняти деякий час." lists: "Списки" noLists: "Немає списків" -note: "Запис" -notes: "Записи" +note: "Дописи" +notes: "Дописи" following: "Підписки" followers: "Підписники" followsYou: "Підписаний(-а) на вас" @@ -81,35 +69,26 @@ error: "Помилка" somethingHappened: "Щось пішло не так" retry: "Спробувати знову" pageLoadError: "Помилка при завантаженні сторінки" -pageLoadErrorDescription: "Зазвичай це пов’язано з помилками мережі або кешем браузера. Очистіть кеш або почекайте трохи й спробуйте ще раз." -serverIsDead: "Відповіді від сервера немає. Зачекайте деякий час і повторіть спробу." -youShouldUpgradeClient: "Перезавантажте та використовуйте нову версію клієнта, щоб переглянути цю сторінку." enterListName: "Введіть назву списку" -privacy: "Конфіденційність" +privacy: "Приватність" makeFollowManuallyApprove: "Підтверджувати підписників уручну" -defaultNoteVisibility: "Видимість за замовчуванням" -follow: "Підписатись" +defaultNoteVisibility: "Видимість допису за замовчуванням" +follow: "Підписка" followRequest: "Запит на підписку" followRequests: "Запити на підписку" -unfollow: "Відписатись" +unfollow: "Відписатися" followRequestPending: "Очікуючі запити на підписку" enterEmoji: "Введіть емодзі" renote: "Поширити" unrenote: "Відміна поширення" -renoted: "Поширити запис." -cantRenote: "Неможливо поширити." -cantReRenote: "Поширення не можливо поширити." quote: "Цитата" -pinnedNote: "Закріплений запис" -pinned: "Закріпити" +pinnedNote: "Закріплений допис" you: "Ви" clickToShow: "Натисніть для перегляду" sensitive: "NSFW" add: "Додати" reaction: "Реакції" -reactionSetting: "Налаштування реакцій" -reactionSettingDescription2: "Перемістити щоб змінити порядок, Клацнути мишою щоб видалити, Натиснути \"+\" щоб додати." -rememberNoteVisibility: "Пам’ятати параметри видимісті" +rememberNoteVisibility: "Пам’ятати видимість дописів" attachCancel: "Видалити вкладення" markAsSensitive: "Позначити як NSFW" unmarkAsSensitive: "Зняти позначку NSFW" @@ -131,43 +110,36 @@ editWidgets: "Редагувати віджети" editWidgetsExit: "Готово" customEmojis: "Кастомні емоджі" emoji: "Емоджі" -emojis: "Емоджі" emojiName: "Назва емоджі" emojiUrl: "URL емодзі" addEmoji: "Додати емодзі" settingGuide: "Рекомендована конфігурація" cacheRemoteFiles: "Кешувати дані з інших інстансів" -cacheRemoteFilesDescription: "Якщо кешування вимкнено, віддалені файли завантажуються безпосередньо з віддаленого інстансу. Це зменшує використання сховища, але збільшує трафік, оскільки не генеруются ескізи." flagAsBot: "Акаунт бота" -flagAsBotDescription: "Ввімкніть якщо цей обліковий запис використовується ботом. Ця опція позначить обліковий запис як бота. Це потрібно щоб виключити безкінечну інтеракцію між ботами а також відповідного підлаштування Misskey." flagAsCat: "Акаунт кота" -flagAsCatDescription: "Ввімкніть, щоб позначити, що обліковий запис є котиком." -flagShowTimelineReplies: "Показувати відповіді на нотатки на часовій шкалі" -flagShowTimelineRepliesDescription: "Показує відповіді користувачів на нотатки інших користувачів на часовій шкалі." autoAcceptFollowed: "Автоматично приймати запити на підписку від користувачів, на яких ви підписані" -addAccount: "Додати акаунт" +addAcount: "Додати акаунт" loginFailed: "Не вдалося увійти" showOnRemote: "Переглянути в оригіналі" general: "Загальне" wallpaper: "Шпалери" setWallpaper: "Встановити шпалери" removeWallpaper: "Прибрати шпалери" -searchWith: "Пошук: {q}" +searchWith: "Шукати з {q}" youHaveNoLists: "У вас немає списків" followConfirm: "Підписатися на {name}?" proxyAccount: "Проксі-акаунт" -proxyAccountDescription: "Обліковий запис проксі – це обліковий запис, який діє як віддалений підписник для користувачів за певних умов. Наприклад, коли користувач додає віддаленого користувача до списку, активність віддаленого користувача не буде доставлена на сервер, якщо жоден локальний користувач не стежить за цим користувачем, то замість нього буде використовуватися обліковий запис проксі-сервера." host: "Хост" selectUser: "Виберіть користувача" -recipient: "Отримувач" -annotation: "Коментарі" +recipient: "Кому" +annotation: "Коментар" federation: "Федіверс" instances: "Інстанс" -registeredAt: "Приєднався(лась)" +registeredAt: "Приєднався(-лась)" latestRequestSentAt: "Останній запит надіслано" latestRequestReceivedAt: "Останній запит прийнято" latestStatus: "Останній статус" -storageUsage: "Використання простору" +storageUsage: "Використання простіру" charts: "Графіки" perHour: "Щогодинно" perDay: "Щоденно" @@ -187,80 +159,56 @@ instanceInfo: "Про цей інстанс" statistics: "Статистика" clearQueue: "Очистити чергу" clearQueueConfirmTitle: "Ви впевнені, що хочете очистити чергу?" -clearQueueConfirmText: "Будь-які невідправлені нотатки, що залишилися в черзі, не будуть передані. Зазвичай ця операція НЕ потрібна." clearCachedFiles: "Очистити кеш" clearCachedFilesConfirm: "Ви впевнені, що хочете видалити всі кешовані файли?" blockedInstances: "Заблоковані інстанси" -blockedInstancesDescription: "Вкажіть інстанси, які потрібно заблокувати. Перелічені інстанси більше не зможуть спілкуватися з цим інстансом." -muteAndBlock: "Заглушення і блокування" -mutedUsers: "Заглушені користувачі" +muteAndBlock: "Ігнор і блокування" +mutedUsers: "Ігноровані користувачі" blockedUsers: "Заблоковані користувачі" noUsers: "Немає користувачів" -editProfile: "Редагувати обліковий запис" -noteDeleteConfirm: "Ви дійсно хочете видалити цей запис?" -pinLimitExceeded: "Більше записів не можна закріпити" -intro: "Встановлення Misskey завершено! Будь ласка, створіть обліковий запис адміністратора." +editProfile: "Редагувати профіль" +noteDeleteConfirm: "Ви дійсно хочете видалити цей допис?" +pinLimitExceeded: "Більше дописів не можна закріпити" done: "Готово" processing: "Обробка" -preview: "Попередній перегляд" +preview: "Передогляд" default: "За умовчанням" -noCustomEmojis: "Немає нетипових емоджі" +noCustomEmojis: "Немає кастомних емоджі" noJobs: "Немає завдань" federating: "Федерується" blocked: "Заблоковано" suspended: "Призупинено" -all: "Всі" -subscribing: "Підписка" -publishing: "Публікація" notResponding: "Не відповідає" -instanceFollowing: "Підписка на інстанс" -instanceFollowers: "Підписники інстансу" -instanceUsers: "Користувачі цього інстансу" changePassword: "Змінити пароль" security: "Безпека" -retypedNotMatch: "Введені дані не збігаються." currentPassword: "Поточний пароль" newPassword: "Новий пароль" newPasswordRetype: "Новий пароль (повторно)" -attachFile: "Прикріпити файл" +attachFile: "Вкласти файл" more: "Бiльше!" -featured: "Популярні" -usernameOrUserId: "Ім'я або ID користувача" +featured: "Виділено" noSuchUser: "Користувача не знайдено" lookup: "Пошук" announcements: "Оголошення" -imageUrl: "Посилання на зображення" +imageUrl: "URL зображення" remove: "Видалити" removed: "Видалено" -removeAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?" -deleteAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?" -resetAreYouSure: "Справді скинути?" saved: "Збережено" messaging: "Чати" upload: "Завантажити" -keepOriginalUploading: "Зберегти оригінальне зображення" -keepOriginalUploadingDescription: "Зберігає початково завантажене зображення як є. Якщо вимкнено, версія для відображення в Інтернеті буде створена під час завантаження." fromDrive: "З диска" -fromUrl: "З посилання" -uploadFromUrl: "Завантажити з посилання" -uploadFromUrlDescription: "Посилання на файл для завантаження" -uploadFromUrlRequested: "Завантаження розпочалось" -uploadFromUrlMayTakeTime: "Завантаження може зайняти деякий час." +fromUrl: "З URL" +uploadFromUrl: "Завантажити з URL" explore: "Огляд" -messageRead: "Прочитано" +games: "Ігри Misskey" noMoreHistory: "Подальшої історії немає" -startMessaging: "Розпочати діалог" -nUsersRead: "Прочитали {n}" -agreeTo: "Я погоджуюсь з {0}" -tos: "Умови використання" start: "Розпочати" home: "Домівка" -remoteUserCaution: "Інформація може бути неповною, оскільки це віддалений користувач." activity: "Активність" images: "Зображення" birthday: "День народження" yearsOld: "{age} років" -registeredDate: "Приєднався(лась)" +registeredDate: "Приєднався(-лась)" location: "Локація" theme: "Тема" themeForLightMode: "Світла тема" @@ -269,7 +217,6 @@ light: "Світла" dark: "Темна" lightThemes: "Світлі теми" darkThemes: "Темні теми" -syncDeviceDarkMode: "Синхронізувати темний режим із налаштуваннями вашого пристрою" drive: "Диск" fileName: "Ім'я файлу" selectFile: "Вибрати файл" @@ -286,17 +233,14 @@ emptyDrive: "Диск порожній" emptyFolder: "Тека порожня" unableToDelete: "Видалення неможливе" inputNewFileName: "Введіть ім'я нового файлу" -inputNewDescription: "Введіть новий заголовок" inputNewFolderName: "Введіть ім'я нової теки" -circularReferenceFolder: "Ви намагаєтесь перемістити папку в її підпапку." hasChildFilesOrFolders: "Ця тека не порожня і не може бути видалена" copyUrl: "Копіювати URL" rename: "Перейменувати" avatar: "Аватар" banner: "Банер" nsfw: "NSFW" -whenServerDisconnected: "Коли зв’язок із сервером втрачено" -disconnectedFromServer: "Зв’язок із сервером було перервано" +disconnectedFromServer: "Підключення до сервера було перервано" reload: "Оновити" doNothing: "Нічого не робити" reloadConfirm: "Перезавантажити стрічку?" @@ -304,7 +248,6 @@ watch: "Стежити" unwatch: "Не стежити" accept: "Прийняти" reject: "Відхилити" -normal: "Нормальний" instanceName: "Назва інстансу" instanceDescription: "Описання інстансу" maintainerName: "Ім'я адміністратора" @@ -318,27 +261,18 @@ monthX: "{month}" yearX: "{year}" pages: "Сторінки" integration: "Інтеграція" -connectService: "Під’єднати" -disconnectService: "Відключитися" +connectSerice: "Під’єднати" +disconnectSerice: "Відключитися" enableLocalTimeline: "Увімкнути локальну стрічку" enableGlobalTimeline: "Увімкнути глобальну стрічку" -disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх стрічок, навіть якщо вони вимкнуті." registration: "Реєстрація" enableRegistration: "Дозволити реєстрацію" -invite: "Запросити" -driveCapacityPerLocalAccount: "Об'єм диска на одного локального користувача" -driveCapacityPerRemoteAccount: "Об'єм диска на одного віддаленого користувача" -inMb: "В мегабайтах" +invite: "Запрошення" +proxyRemoteFiles: "Проксувати файли з інших інстансів" iconUrl: "URL аватара" bannerUrl: "URL банера" -backgroundImageUrl: "URL-адреса фонового зображення" basicInfo: "Основна інформація" pinnedUsers: "Закріплені користувачі" -pinnedUsersDescription: "Впишіть в список користувачів, яких хочете закріпити на сторінці \"Знайти\", ім'я в стовпчик." -pinnedPages: "Закріплені сторінки" -pinnedPagesDescription: "Введіть шляхи сторінок, які ви бажаєте закріпити на головній сторінці цього інстанса, розділені новими рядками." -pinnedClipId: "Ідентифікатор закріпленої замітки." -pinnedNotes: "Закріплена нотатка" hcaptcha: "hCaptcha" enableHcaptcha: "Увімкнути hCaptcha" hcaptchaSiteKey: "Ключ сайту" @@ -347,27 +281,16 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "Увімкнути reCAPTCHA" recaptchaSiteKey: "Ключ сайту" recaptchaSecretKey: "Секретний ключ" -avoidMultiCaptchaConfirm: "Використання кількох систем Captcha може спричинити перешкоди між ними. Бажаєте вимкнути інші активні системи Captcha? Якщо ви хочете, щоб вони залишалися ввімкненими, натисніть «Скасувати»." antennas: "Антени" manageAntennas: "Налаштування антен" name: "Ім'я" antennaSource: "Джерело антени" antennaKeywords: "Ключові слова антени" antennaExcludeKeywords: "Винятки" -antennaKeywordsDescription: "Розділення ключових слів пробілами для \"І\" або з нової лінійки для \"АБО\"" -notifyAntenna: "Сповіщати про нові нотатки" -withFileAntenna: "Тільки нотатки з вкладеними файлами" +serviceworker: "ServiceWorker" enableServiceworker: "Ввімкнути ServiceWorker" -antennaUsersDescription: "Список імя користувачів в стопчик" caseSensitive: "З урахуванням регістру" -withReplies: "Включаючи відповіді" -connectedTo: "Наступні акаунти під'єднані" -notesAndReplies: "Нотатки та відповіді" -withFiles: "Файли" -silence: "Заглушити" -silenceConfirm: "Ви впевнені, що хочете заглушити цього користувача?" -unsilence: "Не глушити" -unsilenceConfirm: "Ви впевнені, що хочете скасувати глушіння цього користувача?" +notesAndReplies: "Дописи та відповіді" popularUsers: "Популярні користувачі" recentlyUpdatedUsers: "Нещодавно активні користувачі" recentlyRegisteredUsers: "Нещодавно зареєстровані користувачі" @@ -382,7 +305,6 @@ administrator: "Адмін" token: "Токен" twoStepAuthentication: "Двохфакторна аутентифікація" moderator: "Модератор" -nUsersMentioned: "Згадали: {n}" securityKey: "Ключ захисту" securityKeyName: "Назва ключа" registerSecurityKey: "Зареєструвати ключ захисту" @@ -391,15 +313,9 @@ unregister: "Скасувати реєстрацію" passwordLessLogin: "Налаштувати вхід без пароля" resetPassword: "Скинути пароль" newPasswordIs: "Новий пароль: {password}" -reduceUiAnimation: "Зменшити анімацію інтерфейсу" share: "Поділитись" notFound: "Не знайдено" -notFoundDescription: "Сторінка за вказаною адресою не знайдена." -uploadFolder: "Місце для завантаження за замовчуванням" cacheClear: "Очистити кеш" -markAsReadAllNotifications: "Позначити всі сповіщення як прочитані" -markAsReadAllUnreadNotes: "Позначити всі нотатки як прочитані" -markAsReadAllTalkMessages: "Позначити всі повідомлення як прочитані" help: "Допомога" inputMessageHere: "Введіть повідомлення тут" close: "Закрити" @@ -407,20 +323,18 @@ group: "Група" groups: "Групи" createGroup: "Створити групу" ownedGroups: "Власні групи" -joinedGroups: "Членство в групах" -invites: "Запросити" +invites: "Запрошення" groupName: "Назва групи" -members: "Учасники" transfer: "Передача" messagingWithUser: "Чат з користувачами" messagingWithGroup: "Чат з групою" title: "Тема" text: "Текст" -enable: "Увімкнути" next: "Далі" retype: "Введіть ще раз" -noteOf: "Нотатка {user}" +noteOf: "Допис {user}" inviteToGroup: "Запрошення до групи" +maxNoteTextLength: "Максимальна довжина допису" quoteAttached: "Цитата" quoteQuestion: "Ви хочете додати цитату?" noMessagesYet: "Ще немає повідомлень" @@ -436,80 +350,56 @@ usernameInvalidFormat: "літери, цифри та _ є прийнятним tooShort: "Занадто короткий" tooLong: "Занадто довгий" weakPassword: "Слабкий пароль" -normalPassword: "Достатній пароль" strongPassword: "Міцний пароль" passwordMatched: "Все вірно" passwordNotMatched: "Паролі не співпадають" signinWith: "Увійти за допомогою {x}" -signinFailed: "Не вдалося увійти. Введені ім’я користувача або пароль неправильнi." -tapSecurityKey: "Торкніться ключа безпеки" -or: "або" -language: "Мова" uiLanguage: "Мова інтерфейсу" -groupInvited: "Запрошення до групи" aboutX: "Про {x}" useOsNativeEmojis: "Використовувати емодзі ОС" -disableDrawer: "Не використовувати висувні меню" youHaveNoGroups: "Немає груп" -joinOrCreateGroup: "Отримуйте запрошення до груп або створюйте свої власні групи." noHistory: "Історія порожня" -signinHistory: "Історія входів" disableAnimatedMfm: "Відключити анімації MFM" doing: "Виконується" category: "Категорія" tags: "Теги" docSource: "Джерело цього документа" createAccount: "Створити акаунт" -existingAccount: "Існуючий обліковий запис" +existingAcount: "Існуючий акаунт" regenerate: "Оновити" fontSize: "Розмір шрифту" noFollowRequests: "Немає запитів на підписку" -openImageInNewTab: "Відкрити зображення в новій вкладці" dashboard: "Панель приладів" local: "Локальні" remote: "Віддалені" total: "Всього" -weekOverWeekChanges: "Тиждень" -dayOverDayChanges: "Доба" +weekOverWeekChanges: "За тиждень" +dayOverDayChanges: "За добу" appearance: "Вигляд" clientSettings: "Налаштування клієнта" accountSettings: "Налаштування акаунта" -promotion: "Виділене" -promote: "Виділити" +promotion: "Просування" +promote: "Просунути" numberOfDays: "Кількість днів" -hideThisNote: "Сховати цю нотатку" -showFeaturedNotesInTimeline: "Показувати популярні нотатки у стрічці" -objectStorage: "Object Storage" -useObjectStorage: "Використовувати object storage" +hideThisNote: "Сховати цей допис" +showFeaturedNotesInTimeline: "Показувати рекомендовані дописи у стрічці" objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "Це початкова частина адреси, що використовується CDN або проксі, наприклад для S3: https://.s3.amazonaws.com, або GCS: 'https://storage.googleapis.com/'" objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Будь ласка вкажіть назву відра в налаштованому сервісі." objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Файли будуть зберігатись у розташуванні з цим префіксом." objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Залиште пустим при використанні AWS S3. Інакше введіть кінцевий пункт як '' або ':' слідуючи інструкціям сервісу, який використовується." objectStorageRegion: "Region" -objectStorageRegionDesc: "Введіть регіон у формі 'xx-east-1'. Залиште пустим, якщо ваш сервіс не різниться відповідно до регіонів, або введіть 'us-east-1'." objectStorageUseSSL: "Використовувати SSL" -objectStorageUseSSLDesc: "Вимкніть коли не використовується HTTPS для з'єднання API" objectStorageUseProxy: "Використовувати Proxy" -objectStorageUseProxyDesc: "Вимкніть коли проксі не використовується для з'єднання ObjectStorage" -objectStorageSetPublicRead: "Встановіть 'публічне читання' при завантаженні" -serverLogs: "Журнал сервера" deleteAll: "Видалити все" -showFixedPostForm: "Показати форму запису над стрічкою новин." -newNoteRecived: "Є нові нотатки" +newNoteRecived: "Є нові дописи" sounds: "Звуки" listen: "Слухати" none: "Відсутній" showInPage: "Показати на сторінці" -popout: "Від'єднати" +popout: "Розгорнути" volume: "Гучність" -masterVolume: "Загальна гучність" details: "Детальніше" chooseEmoji: "Виберіть емодзі" -unableToProcess: "Не вдається завершити операцію" recentUsed: "Нещодавні" install: "Встановити" uninstall: "Видалити" @@ -522,938 +412,135 @@ sort: "Сортування" ascendingOrder: "За зростанням" descendingOrder: "За спаданням" scratchpad: "Чернетка" -scratchpadDescription: "Scratchpad надає середовище для експериментів з AiScript. Ви можете писати, виконувати його і тестувати взаємодію з Misskey." output: "Вихід" script: "Скрипт" -disablePagesScript: "Вимкнути AiScript на Сторінках" -updateRemoteUser: "Оновити інформацію про віддаленого користувача" deleteAllFiles: "Видалити всі файли" deleteAllFilesConfirm: "Ви дійсно хочете видалити всі файли?" removeAllFollowing: "Скасувати всі підписки" -removeAllFollowingDescription: "Скасувати підписку на всі акаунти з {host}. Будь ласка, робіть це, якщо інстанс більше не існує." -userSuspended: "Обліковий запис заблокований." -userSilenced: "Обліковий запис приглушений." -yourAccountSuspendedTitle: "Цей обліковий запис заблоковано" -yourAccountSuspendedDescription: "Цей обліковий запис було заблоковано через порушення умов надання послуг сервера. Зв'яжіться з адміністратором, якщо ви хочете дізнатися докладнішу причину. Будь ласка, не створюйте новий обліковий запис." -menu: "Меню" -divider: "Розділювач" +sidebar: "Бокова панель" addItem: "Додати елемент" +rooms: "Кімнати" relays: "Ретранслятори" addRelay: "Додати ретранслятор" -inboxUrl: "Inbox URL" addedRelays: "Додані ретранслятори" -serviceworkerInfo: "Повинен бути ввімкнений для push-сповіщень." -deletedNote: "Видалена нотатка" -invisibleNote: "Приховані записи" -enableInfiniteScroll: "Увімкнути нескінченну прокрутку" +deletedNote: "Допис видалено" visibility: "Видимість" poll: "Опитування" -useCw: "Приховати вміст" -enablePlayer: "Відкрити відеоплеєр" -disablePlayer: "Закрити відеоплеєр" expandTweet: "Розгорнути твіт" themeEditor: "Редактор тем" description: "Опис" -describeFile: "Додати підпис" -enterFileDescription: "Введіть підпис" author: "Автор" -leaveConfirm: "Зміни не збережені. Ви дійсно хочете скасувати зміни?" manage: "Управління" plugins: "Плагіни" -deck: "Дек" -undeck: "Залишити Дек" -useBlurEffectForModal: "Ефект розмиття під модальними діалогами" -useFullReactionPicker: "Повнорозмірний селектор реакцій" -width: "Ширина" -height: "Висота" -large: "Крупний" -medium: "Середній" -small: "Маленький" generateAccessToken: "Згенерувати токен доступу" permission: "Права" -enableAll: "Увімкнути все" +enableAll: "Ввімкути все" disableAll: "Вимкнути все" tokenRequested: "Надати доступ до акаунту" -pluginTokenRequestedDescription: "Цей плагін зможе використовувати дозволи які тут вказані." notificationType: "Тип сповіщення" edit: "Редагувати" useStarForReactionFallback: "Використовувати ★ як запасний варіант, якщо емодзі реакції невідомий" -emailServer: "Сервер електронної пошти" -enableEmail: "Увімкнути функцію доставки пошти" -emailConfigInfo: "Використовується для підтвердження електронної пошти підчас реєстрації, а також для відновлення паролю." -email: "E-mail" -emailAddress: "E-mail адреса" -smtpConfig: "Налаштування сервера SMTP" +emailConfig: "Налаштування email сервера" +email: "E-mail адреса" smtpHost: "Хост" smtpPort: "Порт" smtpUser: "Ім'я користувача" smtpPass: "Пароль" -emptyToDisableSmtpAuth: "Залиште назву користувача і пароль пустими для вимкнення підтвердження SMTP" -smtpSecure: "Використовувати безумовне шифрування SSL/TLS для з'єднань SMTP" -smtpSecureInfo: "Вимкніть при використанні STARTTLS " testEmail: "Тестовий email" -wordMute: "Блокування слів" -regexpError: "Помилка регулярного виразу" -regexpErrorDescription: "Сталася помилка в регулярному виразі в рядку {line} вашого слова {tab} слова що ігноруються:" -instanceMute: "Приглушення інстансів" -userSaysSomething: "{name} щось сказав(ла)" -makeActive: "Активувати" -display: "Відображення" +wordMute: "Ігнор слів" copy: "Скопіювати" metrics: "Показники" -overview: "Огляд" -logs: "Журнал" -delayed: "Затримка" database: "База даних" -channel: "Канали" -create: "Створити" -notificationSetting: "Параметри сповіщень" -notificationSettingDesc: "Виберіть типи сповіщень для відображення" -useGlobalSetting: "Застосувати глобальнi параметри" -useGlobalSettingDesc: "Якщо увімкнено, то будуть використовуватись налаштування повідомлень облікового запису, інакше можливо налаштувати індивідуально." -other: "Інше" +channel: "Канал" regenerateLoginToken: "Оновити Login Token" -regenerateLoginTokenDescription: "Регенерувати внутрішній ключ використовуваний під час входу. Зазвичай цього не потрібно робити. При регенерації всі пристрої вийдуть з системи." -setMultipleBySeparatingWithSpace: "Можна вказати кілька значень, відділивши їх пробілом." -fileIdOrUrl: "Ідентифікатор файлу або посилання" -behavior: "Поведінка" -sample: "Приклад" -abuseReports: "Скарги" -reportAbuse: "Поскаржитись" -reportAbuseOf: "Поскаржитись на {name}" -fillAbuseReportDescription: "Будь ласка вкажіть подробиці скарги. Якщо скарга стосується запису, вкажіть посилання на нього." -abuseReported: "Дякуємо, вашу скаргу було відправлено. " -reporter: "Репортер" -reporteeOrigin: "Про кого повідомлено" -reporterOrigin: "Хто повідомив" -forwardReport: "Переслати звіт на віддалений інстанс" -forwardReportIsAnonymous: "Замість вашого облікового запису анонімний системний обліковий запис буде відображатися як доповідач на віддаленому інстансі" -send: "Відправити" -abuseMarkAsResolved: "Позначити скаргу як вирішену" -openInNewTab: "Відкрити в новій вкладці" -openInSideView: "Відкрити збоку" -defaultNavigationBehaviour: "Поведінка навігації за замовчуванням" -editTheseSettingsMayBreakAccount: "Зміна цих параметрів може призвести до пошкодження вашого акаунта." -instanceTicker: "Мітка з назвою інстанса в нотатках" -waitingFor: "Чекаємо на {x}" -random: "Випадковий" -system: "Система" -switchUi: "Інтерфейс" -desktop: "Десктоп" -clip: "Добірка" -createNew: "Створити новий" -optional: "Необов'язково" -createNewClip: "Створити нотатку" -public: "Публічний" -i18nInfo: "Misskey перекладається на різні мови волонтерами. Ви можете допомогти: {link}" -manageAccessTokens: "Керування токенами доступу" -accountInfo: "Інформація про акаунт" -notesCount: "Кількість нотаток" -repliesCount: "Кількість надісланих відповідей" -renotesCount: "Кількість поширень" -repliedCount: "Кількість отриманих відповідей" -renotedCount: "Кількість отриманих поширень" -followingCount: "Кількість підписок" -followersCount: "Кількість підписників" -sentReactionsCount: "Кількість надісланих реакцій" -receivedReactionsCount: "Кількість отриманих реакцій" -pollVotesCount: "Кількість надісланих голосів" -pollVotedCount: "Кількість отриманих голосів" -yes: "Так" -no: "Ні" -driveFilesCount: "Кількість файлів на диску" -driveUsage: "Використання місця на диску" -noCrawle: "Заборонити індексацію" -noCrawleDescription: "Просити пошукові системи не індексувати ваш профіль, нотатки, сторінки тощо." -lockedAccountInfo: "Якщо видимість вашого запису не встановлена як \"Тільки підписники\", то кожен зможе побачити ваш запис, навіть якщо ви вимагаєте підтвердження підписок вручну." -alwaysMarkSensitive: "Позначати NSFW за замовчуванням" -loadRawImages: "Відображати вкладені зображення повністю замість ескізів" -disableShowingAnimatedImages: "Не програвати анімовані зображення" -verificationEmailSent: "Електронний лист з підтвердженням відісланий. Будь ласка перейдіть по посиланню в листі для підтвердження." -notSet: "Не налаштовано" -emailVerified: "Електронну пошту підтверджено." -noteFavoritesCount: "Кількість улюблених нотаток" -pageLikesCount: "Кількість отриманих вподобань сторінки" -pageLikedCount: "Кількість вподобаних сторінок" -contact: "Контакт" -useSystemFont: "Використовувати стандартний шрифт системи" -clips: "Добірка" -experimentalFeatures: "Експериментальні функції" -developer: "Розробник" -makeExplorable: "Зробіть обліковий запис видимим у розділі \"Огляд\"" -makeExplorableDescription: "Вимкніть, щоб обліковий запис не показувався у розділі \"Огляд\"." -showGapBetweenNotesInTimeline: "Показувати розрив між записами у стрічці новин" -duplicate: "Дублікат" -left: "Лівий" -center: "Центр" -wide: "Широкий" -narrow: "Вузький" -reloadToApplySetting: "Налаштування ввійде в дію при перезавантаженні. Перезавантажити?" -needReloadToApply: "Зміни набудуть чинності після перезавантаження сторінки." -showTitlebar: "Показати титульний рядок" -clearCache: "Очистити кеш" -onlineUsersCount: "{n} користувачів онлайн" -nUsers: "{n} Користувачів" -nNotes: "{n} Записів" -sendErrorReports: "Надіслати звіт про помилки" -sendErrorReportsDescription: "При увімкненні детальна інформація про помилки буде надана Misskey у разі виникнення проблем, що дасть можливість покращити Misskey." -myTheme: "Моя тема" -backgroundColor: "Фон" -accentColor: "Акцент" -textColor: "Текст" -saveAs: "Зберегти як…" -advanced: "Розширені" -value: "Значення" -createdAt: "Створено" -updatedAt: "Останнє оновлення" -saveConfirm: "Зберегти зміни?" -deleteConfirm: "Ви дійсно бажаєте це видалити?" -invalidValue: "Некоректне значення." -registry: "Реєстр" -closeAccount: "Закрити обліковий запис" -currentVersion: "Версія, що використовується" -latestVersion: "Сама свіжа версія" -youAreRunningUpToDateClient: "У вас найсвіжіша версія клієнта." -newVersionOfClientAvailable: "Доступніша свіжа версія клієнта." -usageAmount: "Використане" -capacity: "Ємність" -inUse: "Зайнято" -editCode: "Редагувати вихідний текст" -apply: "Застосувати" -receiveAnnouncementFromInstance: "Отримувати оповіщення з інстансу" -emailNotification: "Сповіщення електронною поштою" -publish: "Опублікувати" -inChannelSearch: "Пошук за каналом" -useReactionPickerForContextMenu: "Відкривати палітру реакцій правою кнопкою" -typingUsers: "Стук клавіш. Це {users}…" -goBack: "Назад" -info: "Інформація" -user: "Користувачі" -administration: "Управління" -expiration: "Опитування закінчується" -middle: "Середній" -global: "Глобальна" -sent: "Відправити" -hashtags: "Хештеґ" -hide: "Сховати" -searchByGoogle: "Пошук" -indefinitely: "Ніколи" -file: "Файли" -reverse: "Перевернути" -colored: "Кольоровий" -label: "Назва" -localOnly: "Локально" -_ffVisibility: - public: "Опублікувати" -_ad: - back: "Назад" -_gallery: - unlike: "Не вподобати" -_email: - _follow: - title: "Новий підписник" -_registry: - key: "Ключ" - keys: "Ключі" - domain: "Домен" - createKey: "Створити ключ" -_aboutMisskey: - about: "Misskey - це програмне забезпечення з відкритим кодом, яке розробляє syuilo з 2014 року." - contributors: "Головні помічники" - allContributors: "Всі помічники" - source: "Вихідний код" - translation: "Перекладати Misskey" - donate: "Пожертвувати Misskey" - morePatrons: "Ми дуже цінуємо підтримку багатьох інших помічників, не перелічених тут. Дякуємо! 🥰" - patrons: "Підтримали" -_nsfw: - respect: "Приховувати NSFW медіа" - ignore: "Не приховувати NSFW медіа" - force: "Приховувати всі медіа файли" _mfm: cheatSheet: " Довідка MFM" - intro: "MFM це ексклюзивна мова розмітки тексту в Misskey, яку можна використовувати в багатьох місцях. Тут ви можете переглянути приклади її синтаксису." - dummy: "Misskey розширює світ Федіверсу" mention: "Згадка" - mentionDescription: "За допомогою знака \"@\" перед ім'ям можна згадати конкретного користувача." - hashtag: "Хештеґ" - hashtagDescription: "За допомогою знака \"решітка\" перед словом задається хештег." - url: "URL" - urlDescription: "Відображаються URL-адреси." - link: "Посилання" - linkDescription: "Окремі частини тексту можуть містити посилання" - bold: "Жирний шрифт" - boldDescription: "Виділяє літери, роблячи їх товще" - small: "Дрібний шрифт" - smallDescription: "Робить текст маленьким і тонким" - center: "По центру" - centerDescription: "Показує вміст у центрі" - inlineCode: "Код (у рядку)" - inlineCodeDescription: "Показує фрагмент тексту у рядку як програмний код" - blockCode: "Код (блок)" - blockCodeDescription: "Показує кілька рядків тексту як блок програмного кода" - inlineMath: "Формула (у рядку)" - inlineMathDescription: "Відображення математичних формул (KaTeX) у рядку" - blockMath: "Формули (блок)" - blockMathDescription: "Відображати багаторядкові формули (KaTeX) блоками" quote: "Цитата" - quoteDescription: "Відображає зміст як цитату." emoji: "Кастомні емоджі" - emojiDescription: "Щоб показати нетиповий емоджі, потрібно ввести його назву в двокрапках." search: "Пошук" - searchDescription: "Відображає вікно пошуку з попередньо введеним текстом" - flip: "Перевернути" - flipDescription: "Віддзеркалює вміст по горизонталі або вертикалі" - jelly: "Анімація (желе)" - jellyDescription: "Створює желеподібну анімацію" - tada: "Анімація (Тада!)" - tadaDescription: "Створює анімацію з відчуттям \"Тада!\"" - jump: "Анімація (стрибки)" - jumpDescription: "Показує стрибаючу анімацію" - bounce: "Анімація (пружина)" - shake: "Анімація (Shake)" - twitch: "Анімація (Twitch)" - spin: "Анімація (Spin)" - x2: "Великий" - x2Description: "Показує контент збільшеним." - x3: "Дуже великий" - x3Description: "Показує контент ще більшим." - x4: "Надзвичайно великий" - x4Description: "Показує контент надзвичайно великим." - blur: "Розмиття" - blurDescription: "Цей ефект зробить контент розмитим. Контент можна зробити чітким, якщо навести на нього вказівник миші." - font: "Шрифт" - fontDescription: "Встановлює шрифт для контенту." - rotate: "Обертати" -_instanceTicker: - none: "Не відображати" - remote: "Відображати для віддалених користувачів" - always: "Відображати завжди" -_serverDisconnectedBehavior: - reload: "Автоматично перезавантажити" - dialog: "Показати діалогове вікно" - quiet: "Показати ненав’язливе попередження" -_channel: - create: "Створити канал" - edit: "Редагувати канал" - setBanner: "Встановити банер" - removeBanner: "Видалити банер" - featured: "Тренди" - following: "Підписки" - usersCount: "{n} учасників" - notesCount: "{n} дописів" -_menuDisplay: - hide: "Сховати" -_wordMute: - muteWords: "Заглушені слова" - muteWordsDescription: "Розділення ключових слів пробілами для \"І\" або з нової лінійки для \"АБО\"" - muteWordsDescription2: "Для використання RegEx, ключові слова потрібно вписати поміж слешів \"/\"." - softDescription: "Приховати записи які відповідають критеріям зі стрічки подій." - hardDescription: "Приховати записи які відповідають критеріям зі стрічки подій. Також приховані записи не будуть додані до стрічки подій навіть якщо критерії буде змінено." - soft: "М'яко" - hard: "Жорстко" - mutedNotes: "Заблоковані нотатки" +_reversi: + total: "Всього" +_sidebar: + icon: "Аватар" _theme: - explore: "Оглянути теми" - install: "Встановити тему" - manage: "Керування темами" - code: "Код теми" - description: "Опис" - installed: "Тему {name} встановлено" - installedThemes: "Встановлені теми" - builtinThemes: "Вбудоваі теми" - alreadyInstalled: "Тему вже встановлено" - invalid: "Неправильний формат теми" - make: "Створити тему" - base: "Основа" - defaultValue: "Значення за замовчуванням" - func: "Функції" - lighten: "Яскравість" - inputConstantName: "Введіть назву константи" - importInfo: "Вставляючи сюди код теми, ви можете добавити її до редактору тем" - deleteConstantConfirm: "Ви дійсно бажаєте видалити константу \"{const}\"?" keys: - accent: "Акцент" - bg: "Фон" - fg: "Текст" - focus: "Фокус" - indicator: "Індикатор" - panel: "Панель" - shadow: "Тінь" - header: "Заголовок" - navBg: "Фон бокової панелі" - navFg: "Текст бокової панелі" - navHoverFg: "Текст бокової панелі (під курсором)" - navActive: "Текст бокової панелі (активне)" - navIndicator: "Індикатор бокової панелі" - link: "Посилання" - hashtag: "Хештеґ" mention: "Згадка" - mentionMe: "Згадки (мене)" renote: "Поширити" - modalBg: "Модальний фон" - divider: "Розділювач" - scrollbarHandle: "Ручка смуги прокрутки" - scrollbarHandleHover: "Ручка смуги прокрутки (при наведенні)" - dateLabelFg: "Текст позначок дати" - infoBg: "Фон інформації" - infoFg: "Текст інформації" - infoWarnBg: "Фон попередження" - infoWarnFg: "Текст попередження" - cwBg: "Фон чутливого змісту" - cwFg: "Текст чутливого змісту" - cwHoverBg: "Фон чутливого змісту (при наведенні)" - toastBg: "Фон повідомлення" - toastFg: "Текст повідомлення" - buttonBg: "Фон кнопки" - buttonHoverBg: "Фон кнопки (при наведенні)" - inputBorder: "Край поля вводу" - listItemHoverBg: "Фон елементу в списку (при наведенні)" - driveFolderBg: "Фон папки на диску" - wallpaperOverlay: "Накладання шпалер" - badge: "Значок" - messageBg: "Фон переписки" - accentDarken: "Акцент (Затемлений)" - accentLighten: "Акцент (Освітлений)" - fgHighlighted: "Виділений текст" _sfx: - note: "Нотатки" - noteMy: "Мої нотатки" + note: "Дописи" notification: "Сповіщення" chat: "Чати" - chatBg: "Чати (фон)" - antenna: "Прийом антени" - channel: "Повідомлення каналу" -_ago: - future: "Майбутнє" - justNow: "Щойно" - secondsAgo: "{n}с тому" - minutesAgo: "{n}х тому" - hoursAgo: "{n}г тому" - daysAgo: "{n}д тому" - weeksAgo: "{n} тиж. тому" - monthsAgo: "{n} міс. тому" - yearsAgo: "{n} р. тому" -_time: - second: "с" - minute: "х" - hour: "г" - day: "д" -_tutorial: - title: "Як користуватись Misskey" - step1_1: "Ласкаво просимо!" - step1_2: "Ця сторінка має назву \"стрічка подій\". На ній з'являються записи користувачів на яких ви підписані." - step1_3: "Наразі ваша стрічка порожня, оскільки ви ще не написали жодної нотатки і не підписані на інших." - step2_1: "Перш ніж зробити запис або підписатись на когось, спочатку заповніть свій обліковий запис." - step2_2: "Надання деякої інформації про себе дозволить іншим користувачам підписатись на вас." - step3_1: "Ви успішно налаштували свій обліковий запис?" - step3_2: "Наступним кроком є написання нотатки. Це можна зробити, натиснувши зображення олівця на екрані." - step3_3: "Після написання вмісту ви можете опублікувати його, натиснувши кнопку у верхньому правому куті форми." - step3_4: "Не знаєте що написати? Спробуйте \"налаштовую свій msky\"!" - step4_1: "Ви розмістили свій перший запис?" - step4_2: "Ура! Ваш перший запис відображається на вашій стрічці подій." - step5_1: "Настав час оживити вашу стрічку подій підписавшись на інших користувачів." - step5_2: "{featured} показує популярні записи , а {explore} популярних користувачів з цього інстансу. Спробуйте підписатись на користувача, який вам сподобався!" - step5_3: "Щоб підписатись на інших користувачів, нажміть на їхнє зображення, а потім на кнопку \"підписатись\"." - step5_4: "Якщо користувач має замок при імені, то йому потрібно буде вручну підтвердити вашу заявку на підписку." - step6_1: "Тепер ви повинні бачити записи інших користувачів на вашій стрічці подій." - step6_2: "Також ви можете швидко відповісти, або \"відреагувати\" на записи інших користувачів." - step6_3: "Щоб \"відреагувати\", нажміть на знак плюс \"+\" на записі і виберіть емоджі яким ви хочете \"відреагувати\"." - step7_1: "Вітаю! Ви пройшли ознайомлення з Misskey." - step7_2: "Якщо ви хочете більше дізнатись про Misskey, зайдіть в розділ {help}." - step7_3: "Насолоджуйтесь Misskey! 🚀" -_2fa: - registerKey: "Зареєструвати новий ключ безпеки" -_permissions: - "read:account": "Переглядати дані профілю" - "write:account": "Змінити дані акаунту" - "read:blocks": "Переглянути список заблокованих" - "write:blocks": "Редагувати список заблокованих" - "read:drive": "Переглянути вміст Диска" - "write:drive": "Змінювати вміст Диска" - "read:favorites": "Переглядати обране" - "write:favorites": "Змінювати обране" - "read:following": "Переглядати підписки" - "write:following": "Змінювати підписки" - "read:messaging": "Переглядати повідомлення" - "write:messaging": "Створювати та видаляти повідомлення" - "read:mutes": "Переглядати список ігнорованих" - "write:mutes": "Змінювати список ігнорованих" - "write:notes": "Писати і видаляти нотатки" - "read:notifications": "Переглядати сповіщення" - "read:reactions": "Переглядати реакції" - "write:reactions": "Змінювати реакції" - "write:votes": "Голосувати в опитуваннях" - "read:pages": "Переглядати сторінки" - "write:pages": "Змінювати і видаляти сторінки" - "read:page-likes": "Переглядати вподобання сторінок" - "write:page-likes": "Змінювати вподобання сторінок" - "read:user-groups": "Переглядати групи користувача" - "write:user-groups": "Змінювати групи користувача" - "read:channels": "Переглядати канали" - "write:channels": "Змінювати канали" -_auth: - shareAccess: "Ви хочете надати \"{name}\" доступ до цього акаунту?" - shareAccessAsk: "Ви впевнені, що хочете надати цій програмі доступ до вашого акаунту?" - denied: "У доступі відмовлено" _antennaSources: - all: "Всі нотатки" - homeTimeline: "Нотатки тих, на кого ви підписані" -_weekday: - sunday: "Неділя" - monday: "Понеділок" - tuesday: "Вівторок" - wednesday: "Середа" - thursday: "Четвер" - friday: "П'ятниця" - saturday: "Субота" + homeTimeline: "Дописи тих, на кого ви підписані" _widgets: - memo: "Нагадування" notifications: "Сповіщення" timeline: "Стрічка" - calendar: "Календар" - trends: "Тенденції" - clock: "Годинник" - rss: "RSS-читач" activity: "Активність" - photos: "Фото" - digitalClock: "Цифровий годинник" federation: "Федіверс" - postForm: "Створення нотатки" - slideshow: "Слайд-шоу" - button: "Кнопка" - onlineUsers: "Користувачі онлайн" - jobQueue: "Черга завдань" - serverMetric: "Показники сервера " - aiscript: "Консоль AiScript" _cw: - hide: "Сховати" show: "Показати більше" - chars: "{count} символів" - files: "{count} файлів" -_poll: - noOnlyOneChoice: "Потрібні принаймні два варіанти." - choiceN: "Варіант {n}" - noMore: "Більше варіантів додати не можна" - canMultipleVote: "Можна вибрати кілька варіантів" - expiration: "Опитування закінчується" - infinite: "Ніколи" - at: "На даті..." - after: "Через..." - deadlineDate: "Дата закінчення" - deadlineTime: "г" - duration: "Тривалість" - votesCount: "{n} голосів" - totalVotes: "Всього {n} голосів" - vote: "Голосувати" - showResult: "Переглянути результати" - voted: "Проголосовано" - closed: "Завершено" - remainingDays: "Залишилось {d} днів {h} годин" - remainingHours: "Залишилось {h} годин {m} хвилин" - remainingMinutes: "Залишилось {m} хвилин {s} секунд" - remainingSeconds: "Залишилось {s} секунд" _visibility: - public: "Публічний" - publicDescription: "Для всіх користувачів" home: "Домівка" - homeDescription: "Лише на домашній стрічці" followers: "Підписники" - followersDescription: "Тільки для підписників" - specified: "Особисто" - specifiedDescription: "Лише для певних користувачів" - localOnly: "Локально" - localOnlyDescription: "Приховано для віддалених користувачів" + localOnly: "Лише локально" _postForm: - replyPlaceholder: "Відповідь на цю нотатку..." - quotePlaceholder: "Прокоментуйте цю нотатку..." - channelPlaceholder: "Опублікувати в каналі" - _placeholders: - a: "Чим займаєтесь?" - b: "Що відбувається навколо вас?" - c: "Що у вас на думці?" - d: "Що ви хочете висловити?" - e: "Напишіть тут, будь ласка..." - f: "Чекаю коли ви напишете..." + replyPlaceholder: "Відповідь на допис..." _profile: name: "Ім'я" username: "Ім'я користувача" - description: "Про себе" - youCanIncludeHashtags: "Ви також можете включити хештеги у свій опис." - metadata: "Додаткова інформація" - metadataEdit: "Редагувати додаткову інформацію" - metadataDescription: "Ви можете вказати до чотирьох пунктів додаткової інформації у своєму профілі." - metadataLabel: "Назва" - metadataContent: "Вміст" - changeAvatar: "Змінити аватар" - changeBanner: "Змінити банер" _exportOrImport: - allNotes: "Всі нотатки" followingList: "Підписки" muteList: "Ігнорувати" blockingList: "Заблокувати" userLists: "Списки" -_charts: - federation: "Федіверс" - apRequest: "Запити" - usersTotal: "Загальна кількість користувачів" - activeUsers: "Активні користувачі" - notesTotal: "Загальна кількість нотаток" - filesIncDec: "Зміни кількості файлів" - filesTotal: "Загальна кількість файлів" -_instanceCharts: - requests: "Запити" - usersTotal: "Сумарна кількість користувачів" - notes: "Різниця кількості зроблених записів" - notesTotal: "Сумарна кількість нотаток" - ff: "Різниця кількості підписників" - ffTotal: "Кількість підписників" - cacheSizeTotal: "Сумарний розмір кешу" - files: "Різниця в кількості файлів" - filesTotal: "Сумарна кількість файлів" _timelines: home: "Домівка" - local: "Локальна" - social: "Соціальна" - global: "Глобальна" +_rooms: + _roomType: + default: "За умовчанням" + _furnitures: + monitor: "Монітор" _pages: - newPage: "Створити сторінку" - editPage: "Редагувати сторінку" - readPage: "Перегляд вихідного коду" - created: "Сторінка успішно створена." - updated: "Сторінка успішно оновлена." - deleted: "Сторінку видалено" - pageSetting: "Налаштування сторінки" - nameAlreadyExists: "Вказана адреса сторінки вже існує." - invalidNameTitle: "Вказана адреса сторінки неприпустима." - invalidNameText: "Переконайтеся, що не залишили порожнім." - editThisPage: "Редагувати цю сторінку" - viewSource: "Переглянути вихідний код" - viewPage: "Переглянути свої сторінки" - like: "Вподобати" - unlike: "Не вподобати" - my: "Мої сторінки" - liked: "Вподобані сторінки" - featured: "Популярні" - inspector: "Інспектор" - contents: "Вміст" - content: "Блок сторінки" - variables: "Змінні" - title: "Заголовок" - url: "URL сторінки" - summary: "Короткий зміст" - alignCenter: "Рівняти елементи по центру" - hideTitleWhenPinned: "Приховати заголовок сторінки при закріпленні в профілі" - font: "Шрифт" - fontSerif: "Serif" - fontSansSerif: "Sans serif" - eyeCatchingImageSet: "Встановити привабливе зображення" - eyeCatchingImageRemove: "Видалити привабливе зображення" - chooseBlock: "Додати блок" - selectType: "Виберіть тип" - enterVariableName: "Введіть назву для змінної" - variableNameIsAlreadyUsed: "Ця назва вже використовується іншою змінною" - contentBlocks: "Контент" - inputBlocks: "Ввід" - specialBlocks: "Особливе" blocks: - text: "Текст" - textarea: "Текстова область" - section: "Розділ" image: "Зображення" - button: "Кнопка" - if: "Якщо" - _if: - variable: "Змінні" - post: "Створення нотатки" - _post: - text: "Вміст" - canvasId: "Ідентифікатор полотна" - textInput: "Введення тексту" - _textInput: - name: "Ім'я змінної" - text: "Назва" - default: "Значення за замовчуванням" - textareaInput: "Багаторядкове введення тексту" - _textareaInput: - name: "Ім'я змінної" - text: "Назва" - default: "Значення за замовчуванням" - numberInput: "Числове введення" - _numberInput: - name: "Ім'я змінної" - text: "Назва" - default: "Значення за замовчуванням" - canvas: "Полотно" - _canvas: - id: "Ідентифікатор полотна" - width: "Ширина" - height: "Висота" - note: "Вбудована нотатка" - _note: - id: "Ідентифікатор нотатки" - idDescription: "Також можна вказати посилання на нотатку" - detailed: "Детальний вигляд" - switch: "Перемикач" - _switch: - name: "Ім'я змінної" - text: "Назва" - default: "Значення за замовчуванням" - counter: "Лічильник" - _counter: - name: "Ім'я змінної" - text: "Назва" - inc: "Збільшити на" - _button: - text: "Напис" - colored: "Кольоровий" - action: "Дія кнопки" - _action: - dialog: "Показати повідомлення" - _dialog: - content: "Вміст" - resetRandom: "Скидання генератора випадковості" - pushEvent: "Надіслати подію" - _pushEvent: - event: "Назві події" - message: "Повідомлення для відображення при активації" - variable: "Змінна для надсилання" - no-variable: "Відсутньо" - callAiScript: "Виклик AiScript" - _callAiScript: - functionName: "Ім'я функції" - radioButton: "Вибір" - _radioButton: - name: "Ім'я змінної" - title: "Напис" - values: "Варіанти, розділені розривами рядків" - default: "Значення за замовчуванням" script: categories: - flow: "Керування потоком" - logical: "Логічні операції" - operation: "Обчислення" - comparison: "Порівняння" - random: "Випадковість" - value: "Значення" - fn: "Функції" - text: "Дії з текстом" - convert: "Перетворення" list: "Списки" blocks: - text: "Текст" - multiLineText: "Текст (багаторядковий)" - textList: "Текстовий список" - _textList: - info: "Використовувати новий рядок як роздільник для вводу" - strLen: "Довжина тексту" - _strLen: - arg1: "Текст" - strPick: "Вибрати символ" - _strPick: - arg1: "Текст" - arg2: "Розташування символу" - strReplace: "Заміна тексту" - _strReplace: - arg1: "Текст" - arg2: "Текст, який потрібно замінити" - arg3: "Заміняти на" - strReverse: "Перевернути текст" - _strReverse: - arg1: "Текст" - join: "Конкатенація тексту" _join: arg1: "Списки" - arg2: "Розділювач" - add: "Додати" - _add: - arg1: "A" - arg2: "B" - subtract: "Відняти" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Помножити" - _multiply: - arg1: "A" - arg2: "B" - divide: "Поділити" - _divide: - arg1: "A" - arg2: "B" - mod: "Остача" - _mod: - arg1: "A" - arg2: "B" - round: "Десяткове округлення" - _round: - arg1: "Число" - eq: "A дорівнює B" - _eq: - arg1: "A" - arg2: "B" - notEq: "A не дорівнює B" - _notEq: - arg1: "A" - arg2: "B" - and: "А І Б" - _and: - arg1: "A" - arg2: "B" - or: "A АБО B" - _or: - arg1: "A" - arg2: "B" - lt: "< A менше, ніж B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A більше, ніж B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A менше або дорівнює B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A більше або дорівнює B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Умова" - _if: - arg1: "Якщо" - arg2: "Якщо так" - arg3: "Якщо ні" - not: "НЕ" - _not: - arg1: "НЕ" - random: "Випадково" - _random: - arg1: "Імовірність" - rannum: "Випадкове число" - _rannum: - arg1: "Мінімальне значення" - arg2: "Максимальне значення" - randomPick: "Випадковий вибір зі списку" _randomPick: arg1: "Списки" - dailyRandom: "Випадково (триває добу)" - _dailyRandom: - arg1: "Імовірність" - dailyRannum: "Випадкове число (триває добу)" - _dailyRannum: - arg1: "Мінімальне значення" - arg2: "Максимальне значення" - dailyRandomPick: "Випадково вибрати зі списку (триває добу)" _dailyRandomPick: arg1: "Списки" - seedRandom: "Випадковість (з насінням)" - _seedRandom: - arg1: "Насіння" - arg2: "Імовірність" - seedRannum: "Випадкове число (з насінням)" - _seedRannum: - arg1: "Насіння" - arg2: "Мінімальне значення" - arg3: "Максимальне значення" - seedRandomPick: "Випадково вибрати зі списку (з насінням)" _seedRandomPick: - arg1: "Насіння" arg2: "Списки" - DRPWPM: "Випадково вибрати зі зваженого списку (триває добу)" - _DRPWPM: - arg1: "Текстовий список" - pick: "Вибір зі списку" _pick: arg1: "Списки" - arg2: "Позиція" - listLen: "Отримати довжину списку" _listLen: arg1: "Списки" - number: "Число" - stringToNumber: "Текст на число" - _stringToNumber: - arg1: "Текст" - numberToString: "Число на текст" - _numberToString: - arg1: "Число" - splitStrByLine: "Розбиття тексту на рядки" - _splitStrByLine: - arg1: "Текст" - ref: "Змінні" - aiScriptVar: "Змінна AiScript" - fn: "Функції" _fn: - slots: "Паз" - slots-info: "Використовувати нову лінію як роздільник пазів" - arg1: "Вивід" - for: "Повторення" - _for: - arg1: "Кількість повторень" - arg2: "Дія" - typeError: "Паз {slot} приймає \"{expect}\" тип, але надана змінна має тип \"{actual}\"!" - thereIsEmptySlot: "Паз {slot} пустий!" + arg1: "Вихід" types: - string: "Текст" - number: "Число" - boolean: "Прапорець" array: "Списки" - stringArray: "Текстовий список" - emptySlot: "Пустий паз" - enviromentVariables: "Змінні середовища" - pageVariables: "Елемент сторінки" - argVariables: "Стрічка вводу" _relayStatus: requesting: "Очікує затвердження" accepted: "Затверджено" rejected: "Відхилено" _notification: - fileUploaded: "Файл успішно завантажено" - youGotMention: "{name} згадує вас" - youGotReply: "{name} відповідає" - youGotQuote: "{name} цитує вас" - youRenoted: "{name} поширює" - youGotPoll: "{name} бере участь в опитуванні" - youGotMessagingMessageFromUser: "Повідомлення від {name}" - youGotMessagingMessageFromGroup: "Нове повідомлення в групі {name}" + youRenoted: "{name} поширив(ла) ваш допис" youWereFollowed: "Новий підписник" - youReceivedFollowRequest: "Ви отримали запит на підписку" - yourFollowRequestAccepted: "Запит на підписку прийнято" - youWereInvitedToGroup: "Запрошення до групи" _types: - all: "Все" follow: "Підписки" mention: "Згадка" - reply: "Відповіді" - renote: "Поширення" - quote: "Цитування" - reaction: "Реакції" - pollVote: "Опитування" - receiveFollowRequest: "Запити на підписку" - followRequestAccepted: "Прийняті підписки" - groupInvited: "Запрошення до груп" - app: "Сповіщення від додатків" - _actions: - reply: "Відповісти" renote: "Поширити" + quote: "Цитата" + reaction: "Реакції" _deck: - alwaysShowMainColumn: "Завжди показувати головну колонку" - columnAlign: "Вирівняти стовпці" - addColumn: "Додати стовпець" - swapLeft: "Пересунути ліворуч" - swapRight: "Пересунути праворуч" - swapUp: "Пересунути вгору" - swapDown: "Пересунути вниз" - stackLeft: "У стовпчик вліво" - popRight: "Витягнути вправо" - profile: "Обліковий запис" _columns: - main: "Головна" - widgets: "Віджети" notifications: "Сповіщення" tl: "Стрічка" antenna: "Антени" list: "Списки" mentions: "Згадки" - direct: "Особисте" diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml deleted file mode 100644 index 3cac0585a..000000000 --- a/locales/vi-VN.yml +++ /dev/null @@ -1,1744 +0,0 @@ ---- -_lang_: "Tiếng Việt" -headlineMisskey: "Mạng xã hội liên hợp" -introMisskey: "Xin chào! Misskey là một nền tảng tiểu blog phi tập trung mã nguồn mở.\nViết \"tút\" để chia sẻ những suy nghĩ của bạn 📡\nBằng \"biểu cảm\", bạn có thể bày tỏ nhanh chóng cảm xúc của bạn với các tút 👍\nHãy khám phá một thế giới mới! 🚀" -monthAndDay: "{day} tháng {month}" -search: "Tìm kiếm" -notifications: "Thông báo" -username: "Tên người dùng" -password: "Mật khẩu" -forgotPassword: "Quên mật khẩu" -fetchingAsApObject: "Đang nạp dữ liệu từ Fediverse..." -ok: "Đồng ý" -gotIt: "Đã hiểu!" -cancel: "Hủy" -enterUsername: "Nhập tên người dùng" -renotedBy: "Chia sẻ bởi {user}" -noNotes: "Chưa có tút nào." -noNotifications: "Không có thông báo" -instance: "Máy chủ" -settings: "Cài đặt" -basicSettings: "Thiết lập chung" -otherSettings: "Thiết lập khác" -openInWindow: "Mở trong cửa sổ mới" -profile: "Trang cá nhân" -timeline: "Bảng tin" -noAccountDescription: "Người này chưa viết mô tả." -login: "Đăng nhập" -loggingIn: "Đang đăng nhập..." -logout: "Đăng xuất" -signup: "Đăng ký" -uploading: "Đang tải lên…" -save: "Lưu" -users: "Người dùng" -addUser: "Thêm người dùng" -favorite: "Thêm vào yêu thích" -favorites: "Lượt thích" -unfavorite: "Bỏ thích" -favorited: "Đã thêm vào yêu thích." -alreadyFavorited: "Đã thêm vào yêu thích rồi." -cantFavorite: "Không thể thêm vào yêu thích." -pin: "Ghim" -unpin: "Bỏ ghim" -copyContent: "Chép nội dung" -copyLink: "Chép liên kết" -delete: "Xóa" -deleteAndEdit: "Sửa" -deleteAndEditConfirm: "Bạn có chắc muốn sửa tút này? Những biểu cảm, lượt trả lời và đăng lại sẽ bị mất." -addToList: "Thêm vào danh sách" -sendMessage: "Gửi tin nhắn" -copyUsername: "Chép tên người dùng" -searchUser: "Tìm kiếm người dùng" -reply: "Trả lời" -loadMore: "Tải thêm" -showMore: "Xem thêm" -showLess: "Đóng" -youGotNewFollower: "đã theo dõi bạn" -receiveFollowRequest: "Đã yêu cầu theo dõi" -followRequestAccepted: "Đã chấp nhận yêu cầu theo dõi" -mention: "Nhắc đến" -mentions: "Lượt nhắc" -directNotes: "Nhắn riêng" -importAndExport: "Nhập và xuất dữ liệu" -import: "Nhập dữ liệu" -export: "Xuất dữ liệu" -files: "Tập tin" -download: "Tải xuống" -driveFileDeleteConfirm: "Bạn có chắc muốn xóa tập tin \"{name}\"? Tút liên quan cũng sẽ bị xóa theo." -unfollowConfirm: "Bạn có chắc muốn ngưng theo dõi {name}?" -exportRequested: "Đang chuẩn bị xuất tập tin. Quá trình này có thể mất ít phút. Nó sẽ được tự động thêm vào Drive sau khi hoàn thành." -importRequested: "Bạn vừa yêu cầu nhập dữ liệu. Quá trình này có thể mất ít phút." -lists: "Danh sách" -noLists: "Bạn chưa có danh sách nào" -note: "Tút" -notes: "Tút" -following: "Đang theo dõi" -followers: "Người theo dõi" -followsYou: "Theo dõi bạn" -createList: "Tạo danh sách" -manageLists: "Quản lý danh sách" -error: "Lỗi" -somethingHappened: "Xảy ra lỗi" -retry: "Thử lại" -pageLoadError: "Xảy ra lỗi khi tải trang." -pageLoadErrorDescription: "Có thể là do bộ nhớ đệm của trình duyệt. Hãy thử xóa bộ nhớ đệm và thử lại sau ít phút." -serverIsDead: "Máy chủ không phản hồi. Vui lòng thử lại sau giây lát." -youShouldUpgradeClient: "Để xem trang này, hãy làm tươi để cập nhật ứng dụng." -enterListName: "Đặt tên cho danh sách" -privacy: "Bảo mật" -makeFollowManuallyApprove: "Yêu cầu theo dõi cần được duyệt" -defaultNoteVisibility: "Kiểu tút mặc định" -follow: "Đang theo dõi" -followRequest: "Gửi yêu cầu theo dõi" -followRequests: "Yêu cầu theo dõi" -unfollow: "Ngưng theo dõi" -followRequestPending: "Yêu cầu theo dõi đang chờ" -enterEmoji: "Chèn emoji" -renote: "Đăng lại" -unrenote: "Hủy đăng lại" -renoted: "Đã đăng lại." -cantRenote: "Không thể đăng lại tút này." -cantReRenote: "Không thể đăng lại một tút đăng lại." -quote: "Trích dẫn" -pinnedNote: "Tút ghim" -pinned: "Ghim" -you: "Bạn" -clickToShow: "Nhấn để xem" -sensitive: "Nhạy cảm" -add: "Thêm" -reaction: "Biểu cảm" -reactionSetting: "Chọn những biểu cảm hiển thị" -reactionSettingDescription2: "Kéo để sắp xếp, nhấn để xóa, nhấn \"+\" để thêm." -rememberNoteVisibility: "Lưu kiểu tút mặc định" -attachCancel: "Gỡ tập tin đính kèm" -markAsSensitive: "Đánh dấu là nhạy cảm" -unmarkAsSensitive: "Bỏ đánh dấu nhạy cảm" -enterFileName: "Nhập tên tập tin" -mute: "Ẩn" -unmute: "Bỏ ẩn" -block: "Chặn" -unblock: "Bỏ chặn" -suspend: "Vô hiệu hóa" -unsuspend: "Bỏ vô hiệu hóa" -blockConfirm: "Bạn có chắc muốn chặn người này?" -unblockConfirm: "Bạn có chắc muốn bỏ chặn người này?" -suspendConfirm: "Bạn có chắc muốn vô hiệu hóa người này?" -unsuspendConfirm: "Bạn có chắc muốn bỏ vô hiệu hóa người này?" -selectList: "Chọn danh sách" -selectAntenna: "Chọn một antenna" -selectWidget: "Chọn tiện ích" -editWidgets: "Sửa tiện ích" -editWidgetsExit: "Xong" -customEmojis: "Tùy chỉnh emoji" -emoji: "Emoji" -emojis: "Emoji" -emojiName: "Tên emoji" -emojiUrl: "URL Emoji" -addEmoji: "Thêm emoji" -settingGuide: "Cài đặt đề xuất" -cacheRemoteFiles: "Tập tin cache từ xa" -cacheRemoteFilesDescription: "Khi tùy chọn này bị tắt, các tập tin từ xa sẽ được tải trực tiếp từ máy chủ khác. Điều này sẽ giúp giảm dung lượng lưu trữ nhưng lại tăng lưu lượng truy cập, vì hình thu nhỏ sẽ không được tạo." -flagAsBot: "Đánh dấu đây là tài khoản bot" -flagAsBotDescription: "Bật tùy chọn này nếu tài khoản này được kiểm soát bởi một chương trình. Nếu được bật, nó sẽ được đánh dấu để các nhà phát triển khác ngăn chặn chuỗi tương tác vô tận với các bot khác và điều chỉnh hệ thống nội bộ của Misskey để coi tài khoản này như một bot." -flagAsCat: "Tài khoản này là mèo" -flagAsCatDescription: "Bật tùy chọn này để đánh dấu tài khoản là một con mèo." -flagShowTimelineReplies: "Hiện lượt trả lời trong bảng tin" -flagShowTimelineRepliesDescription: "Hiện lượt trả lời của người bạn theo dõi trên tút của những người khác." -autoAcceptFollowed: "Tự động phê duyệt theo dõi từ những người mà bạn đang theo dõi" -addAccount: "Thêm tài khoản" -loginFailed: "Đăng nhập không thành công" -showOnRemote: "Truy cập trang của người này" -general: "Tổng quan" -wallpaper: "Ảnh bìa" -setWallpaper: "Đặt ảnh bìa" -removeWallpaper: "Xóa ảnh bìa" -searchWith: "Tìm kiếm: {q}" -youHaveNoLists: "Bạn chưa có danh sách nào" -followConfirm: "Bạn có chắc muốn theo dõi {name}?" -proxyAccount: "Tài khoản proxy" -proxyAccountDescription: "Tài khoản proxy là tài khoản hoạt động như một người theo dõi từ xa cho người dùng trong những điều kiện nhất định. Ví dụ: khi người dùng thêm người dùng từ xa vào danh sách, hoạt động của người dùng từ xa sẽ không được chuyển đến phiên bản nếu không có người dùng cục bộ nào theo dõi người dùng đó, vì vậy tài khoản proxy sẽ theo dõi." -host: "Host" -selectUser: "Chọn người dùng" -recipient: "Người nhận" -annotation: "Bình luận" -federation: "Liên hợp" -instances: "Máy chủ" -registeredAt: "Đăng ký vào" -latestRequestSentAt: "Yêu cầu cuối gửi lúc" -latestRequestReceivedAt: "Yêu cầu cuối nhận lúc" -latestStatus: "Trạng thái cuối cùng" -storageUsage: "Dung lượng lưu trữ" -charts: "Đồ thị" -perHour: "Mỗi Giờ" -perDay: "Mỗi Ngày" -stopActivityDelivery: "Ngưng gửi hoạt động" -blockThisInstance: "Chặn máy chủ này" -operations: "Vận hành" -software: "Phần mềm" -version: "Phiên bản" -metadata: "Metadata" -withNFiles: "{n} tập tin" -monitor: "Giám sát" -jobQueue: "Công việc chờ xử lý" -cpuAndMemory: "CPU và Dung lượng" -network: "Mạng" -disk: "Ổ đĩa" -instanceInfo: "Thông tin máy chủ" -statistics: "Thống kê" -clearQueue: "Xóa hàng đợi" -clearQueueConfirmTitle: "Bạn có chắc muốn xóa hàng đợi?" -clearQueueConfirmText: "Mọi tút chưa được gửi còn lại trong hàng đợi sẽ không được liên hợp. Thông thường thao tác này không cần thiết." -clearCachedFiles: "Xóa bộ nhớ đệm" -clearCachedFilesConfirm: "Bạn có chắc muốn xóa sạch bộ nhớ đệm?" -blockedInstances: "Máy chủ đã chặn" -blockedInstancesDescription: "Danh sách những máy chủ bạn muốn chặn. Chúng sẽ không thể giao tiếp với máy chủy này nữa." -muteAndBlock: "Ẩn và Chặn" -mutedUsers: "Người đã ẩn" -blockedUsers: "Người đã chặn" -noUsers: "Chưa có ai" -editProfile: "Sửa hồ sơ" -noteDeleteConfirm: "Bạn có chắc muốn xóa tút này?" -pinLimitExceeded: "Bạn đã đạt giới hạn số lượng tút có thể ghim" -intro: "Đã cài đặt Misskey! Xin hãy tạo tài khoản admin." -done: "Xong" -processing: "Đang xử lý" -preview: "Xem trước" -default: "Mặc định" -defaultValueIs: "Mặc định: {value}" -noCustomEmojis: "Không có emoji" -noJobs: "Không có công việc" -federating: "Đang liên hợp" -blocked: "Đã chặn" -suspended: "Đã vô hiệu hóa" -all: "Tất cả" -subscribing: "Đang đăng ký" -publishing: "Đang đăng" -notResponding: "Không có phản hồi" -instanceFollowing: "Đang theo dõi máy chủ" -instanceFollowers: "Người theo dõi của máy chủ" -instanceUsers: "Người dùng trên máy chủ này" -changePassword: "Đổi mật khẩu" -security: "Bảo mật" -retypedNotMatch: "Mật khẩu không trùng khớp." -currentPassword: "Mật khẩu hiện tại" -newPassword: "Mật khẩu mới" -newPasswordRetype: "Nhập lại mật khẩu mới" -attachFile: "Đính kèm tập tin" -more: "Thêm nữa!" -featured: "Nổi bật" -usernameOrUserId: "Tên người dùng hoặc ID" -noSuchUser: "Không tìm thấy người dùng" -lookup: "Tìm kiếm" -announcements: "Thông báo" -imageUrl: "URL ảnh" -remove: "Xóa" -removed: "Đã xóa" -removeAreYouSure: "Bạn có chắc muốn gỡ \"{x}\"?" -deleteAreYouSure: "Bạn có chắc muốn xóa \"{x}\"?" -resetAreYouSure: "Bạn có chắc muốn đặt lại?" -saved: "Đã lưu" -messaging: "Trò chuyện" -upload: "Tải lên" -keepOriginalUploading: "Giữ hình ảnh gốc" -keepOriginalUploadingDescription: "Giữ nguyên như hình ảnh được tải lên ban đầu. Nếu tắt, một phiên bản để hiển thị trên web sẽ được tạo khi tải lên." -fromDrive: "Từ ổ đĩa" -fromUrl: "Từ URL" -uploadFromUrl: "Tải lên bằng một URL" -uploadFromUrlDescription: "URL của tập tin bạn muốn tải lên" -uploadFromUrlRequested: "Đã yêu cầu tải lên" -uploadFromUrlMayTakeTime: "Sẽ mất một khoảng thời gian để tải lên xong." -explore: "Khám phá" -messageRead: "Đã đọc" -noMoreHistory: "Không còn gì để đọc" -startMessaging: "Bắt đầu trò chuyện" -nUsersRead: "đọc bởi {n}" -agreeTo: "Tôi đồng ý {0}" -tos: "Điều khoản dịch vụ" -start: "Bắt đầu" -home: "Trang chính" -remoteUserCaution: "Vì người dùng này ở máy chủ khác, thông tin hiển thị có thể không đầy đủ." -activity: "Hoạt động" -images: "Hình ảnh" -birthday: "Sinh nhật" -yearsOld: "{age} tuổi" -registeredDate: "Tham gia" -location: "Đến từ" -theme: "Chủ đề" -themeForLightMode: "Chủ đề dùng trong trong chế độ Sáng" -themeForDarkMode: "Chủ đề dùng trong chế độ Tối" -light: "Sáng" -dark: "Tối" -lightThemes: "Những chủ đề sáng" -darkThemes: "Những chủ đề tối" -syncDeviceDarkMode: "Đồng bộ với thiết bị" -drive: "Ổ đĩa" -fileName: "Tên tập tin" -selectFile: "Chọn tập tin" -selectFiles: "Chọn nhiều tập tin" -selectFolder: "Chọn thư mục" -selectFolders: "Chọn nhiều thư mục" -renameFile: "Đổi tên tập tin" -folderName: "Tên thư mục" -createFolder: "Tạo thư mục" -renameFolder: "Đổi tên thư mục" -deleteFolder: "Xóa thư mục" -addFile: "Thêm tập tin" -emptyDrive: "Ổ đĩa của bạn trống trơn" -emptyFolder: "Thư mục trống" -unableToDelete: "Không thể xóa" -inputNewFileName: "Nhập tên mới cho tập tin" -inputNewDescription: "Nhập mô tả mới" -inputNewFolderName: "Nhập tên mới cho thư mục" -circularReferenceFolder: "Thư mục đích là một thư mục con của thư mục bạn muốn di chuyển." -hasChildFilesOrFolders: "Không thể xóa cho đến khi không còn gì trong thư mục." -copyUrl: "Sao chép URL" -rename: "Đổi tên" -avatar: "Ảnh đại diện" -banner: "Ảnh bìa" -nsfw: "Nhạy cảm" -whenServerDisconnected: "Khi mất kết nối tới máy chủ" -disconnectedFromServer: "Mất kết nối tới máy chủ" -reload: "Tải lại" -doNothing: "Bỏ qua" -reloadConfirm: "Bạn có muốn thử tải lại bảng tin?" -watch: "Xem" -unwatch: "Ngừng xem" -accept: "Đồng ý" -reject: "Từ chối" -normal: "Bình thường" -instanceName: "Tên máy chủ" -instanceDescription: "Mô tả máy chủ" -maintainerName: "Đội ngũ vận hành" -maintainerEmail: "Email đội ngũ" -tosUrl: "URL Điều khoản dịch vụ" -thisYear: "Năm" -thisMonth: "Tháng" -today: "Hôm nay" -dayX: "{day}" -monthX: "{month}" -yearX: "{year}" -pages: "Trang" -integration: "Tương tác" -connectService: "Kết nối" -disconnectService: "Ngắt kết nối" -enableLocalTimeline: "Bật bảng tin máy chủ" -enableGlobalTimeline: "Bật bảng tin liên hợp" -disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi bảng tin, kể cả khi chúng không được bật." -registration: "Đăng ký" -enableRegistration: "Cho phép đăng ký mới" -invite: "Mời" -driveCapacityPerLocalAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng" -driveCapacityPerRemoteAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng từ xa" -inMb: "Tính bằng MB" -iconUrl: "URL Icon" -bannerUrl: "URL Ảnh bìa" -backgroundImageUrl: "URL Ảnh nền" -basicInfo: "Thông tin cơ bản" -pinnedUsers: "Những người thú vị" -pinnedUsersDescription: "Liệt kê mỗi hàng một tên người dùng xuống dòng để ghim trên tab \"Khám phá\"." -pinnedPages: "Trang đã ghim" -pinnedPagesDescription: "Liệt kê các trang thú vị để ghim trên máy chủ." -pinnedClipId: "ID của clip muốn ghim" -pinnedNotes: "Tút ghim" -hcaptcha: "hCaptcha" -enableHcaptcha: "Bật hCaptcha" -hcaptchaSiteKey: "Khóa của trang" -hcaptchaSecretKey: "Khóa bí mật" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Bật reCAPTCHA" -recaptchaSiteKey: "Khóa của trang" -recaptchaSecretKey: "Khóa bí mật" -avoidMultiCaptchaConfirm: "Dùng nhiều hệ thống Captcha có thể gây nhiễu giữa chúng. Bạn có muốn tắt các hệ thống Captcha khác hiện đang hoạt động không? Nếu bạn muốn chúng tiếp tục được bật, hãy nhấn hủy." -antennas: "Trạm phát sóng" -manageAntennas: "Quản lý trạm phát sóng" -name: "Tên" -antennaSource: "Nguồn trạm phát sóng" -antennaKeywords: "Từ khóa để nghe" -antennaExcludeKeywords: "Từ khóa để lọc ra" -antennaKeywordsDescription: "Phân cách bằng dấu cách cho điều kiện AND hoặc bằng xuống dòng cho điều kiện OR." -notifyAntenna: "Thông báo có tút mới" -withFileAntenna: "Chỉ những tút có media" -enableServiceworker: "Bật ServiceWorker" -antennaUsersDescription: "Liệt kê mỗi hàng một tên người dùng" -caseSensitive: "Trường hợp nhạy cảm" -withReplies: "Bao gồm lượt trả lời" -connectedTo: "Những tài khoản sau đã kết nối" -notesAndReplies: "Tút kèm trả lời" -withFiles: "Media" -silence: "Ẩn" -silenceConfirm: "Bạn có chắc muốn ẩn người này?" -unsilence: "Bỏ ẩn" -unsilenceConfirm: "Bạn có chắc muốn bỏ ẩn người này?" -popularUsers: "Những người nổi tiếng" -recentlyUpdatedUsers: "Hoạt động gần đây" -recentlyRegisteredUsers: "Mới tham gia" -recentlyDiscoveredUsers: "Mới khám phá" -exploreUsersCount: "Có {count} người" -exploreFediverse: "Khám phá Fediverse" -popularTags: "Hashtag thông dụng" -userList: "Danh sách" -about: "Giới thiệu" -aboutMisskey: "Về Misskey" -administrator: "Quản trị viên" -token: "Token" -twoStepAuthentication: "Xác minh 2 bước" -moderator: "Kiểm duyệt viên" -moderation: "Kiểm duyệt" -nUsersMentioned: "Dùng bởi {n} người" -securityKey: "Khóa bảo mật" -securityKeyName: "Tên khoá" -registerSecurityKey: "Đăng ký khóa bảo mật" -lastUsed: "Dùng lần cuối" -unregister: "Hủy đăng ký" -passwordLessLogin: "Đăng nhập không mật khẩu" -resetPassword: "Đặt lại mật khẩu" -newPasswordIs: "Mật khẩu mới là \"{password}\"" -reduceUiAnimation: "Giảm chuyển động UI" -share: "Chia sẻ" -notFound: "Không tìm thấy" -notFoundDescription: "Không tìm thấy trang nào tương ứng với URL này." -uploadFolder: "Thư mục tải lên mặc định" -cacheClear: "Xóa bộ nhớ đệm" -markAsReadAllNotifications: "Đánh dấu tất cả các thông báo là đã đọc" -markAsReadAllUnreadNotes: "Đánh dấu tất cả các tút là đã đọc" -markAsReadAllTalkMessages: "Đánh dấu tất cả các tin nhắn là đã đọc" -help: "Trợ giúp" -inputMessageHere: "Nhập nội dung tin nhắn" -close: "Đóng" -group: "Nhóm" -groups: "Các nhóm" -createGroup: "Tạo nhóm" -ownedGroups: "Nhóm tôi quản lý" -joinedGroups: "Nhóm tôi tham gia" -invites: "Mời" -groupName: "Tên nhóm" -members: "Thành viên" -transfer: "Chuyển giao" -messagingWithUser: "Nhắn riêng" -messagingWithGroup: "Chat nhóm" -title: "Tựa đề" -text: "Nội dung" -enable: "Bật" -next: "Kế tiếp" -retype: "Nhập lại" -noteOf: "Tút của {user}" -inviteToGroup: "Mời vào nhóm" -quoteAttached: "Trích dẫn" -quoteQuestion: "Trích dẫn lại?" -noMessagesYet: "Chưa có tin nhắn" -newMessageExists: "Bạn có tin nhắn mới" -onlyOneFileCanBeAttached: "Bạn chỉ có thể đính kèm một tập tin" -signinRequired: "Vui lòng đăng nhập" -invitations: "Mời" -invitationCode: "Mã mời" -checking: "Đang kiểm tra..." -available: "Khả dụng" -unavailable: "Không khả dụng" -usernameInvalidFormat: "Bạn có thể dùng viết hoa/viết thường, chữ số, và dấu gạch dưới." -tooShort: "Quá ngắn" -tooLong: "Quá dài" -weakPassword: "Mật khẩu yếu" -normalPassword: "Mật khẩu tạm được" -strongPassword: "Mật khẩu mạnh" -passwordMatched: "Trùng khớp" -passwordNotMatched: "Không trùng khớp" -signinWith: "Đăng nhập bằng {x}" -signinFailed: "Không thể đăng nhập. Vui lòng kiểm tra tên người dùng và mật khẩu của bạn." -tapSecurityKey: "Nhấn mã bảo mật của bạn" -or: "Hoặc" -language: "Ngôn ngữ" -uiLanguage: "Ngôn ngữ giao diện" -groupInvited: "Bạn đã được mời tham gia nhóm" -aboutX: "Giới thiệu {x}" -useOsNativeEmojis: "Dùng emoji hệ thống" -disableDrawer: "Không dùng menu thanh bên" -youHaveNoGroups: "Không có nhóm nào" -joinOrCreateGroup: "Tham gia hoặc tạo một nhóm mới." -noHistory: "Không có dữ liệu" -signinHistory: "Lịch sử đăng nhập" -disableAnimatedMfm: "Tắt MFM với chuyển động" -doing: "Đang xử lý..." -category: "Phân loại" -tags: "Thẻ" -docSource: "Nguồn tài liệu" -createAccount: "Tạo tài khoản" -existingAccount: "Tài khoản hiện có" -regenerate: "Tạo lại" -fontSize: "Cỡ chữ" -noFollowRequests: "Bạn không có yêu cầu theo dõi nào" -openImageInNewTab: "Mở ảnh trong tab mới" -dashboard: "Trang chính" -local: "Máy chủ này" -remote: "Máy chủ khác" -total: "Tổng cộng" -weekOverWeekChanges: "Thay đổi tuần rồi" -dayOverDayChanges: "Thay đổi hôm qua" -appearance: "Giao diện" -clientSettings: "Cài đặt Client" -accountSettings: "Cài đặt tài khoản" -promotion: "Quảng cáo" -promote: "Quảng cáo" -numberOfDays: "Số ngày" -hideThisNote: "Ẩn tút này" -showFeaturedNotesInTimeline: "Hiện tút nổi bật trong bảng tin" -objectStorage: "Đối tượng lưu trữ" -useObjectStorage: "Dùng đối tượng lưu trữ" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "URL được sử dụng làm tham khảo. Chỉ định URL của CDN hoặc Proxy của bạn nếu bạn đang sử dụng. Với S3 dùng 'https://.s3.amazonaws.com', còn GCS hoặc dịch vụ tương tự dùng 'https://storage.googleapis.com/', etc." -objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Nhập tên bucket dùng ở nhà cung cấp của bạn." -objectStoragePrefix: "Tiền tố" -objectStoragePrefixDesc: "Các tập tin sẽ được lưu trữ trong các thư mục có tiền tố này." -objectStorageEndpoint: "Đầu cuối" -objectStorageEndpointDesc: "Để trống nếu bạn đang dùng AWS S3, nếu không thì chỉ định đầu cuối là '' hoặc ':', tùy thuộc vào nhà cung cấp dịch vụ." -objectStorageRegion: "Khu vực" -objectStorageRegionDesc: "Nhập một khu vực cụ thể như 'xx-east-1'. Nếu nhà cung cấp dịch vụ của bạn không phân biệt giữa các khu vực, hãy để trống hoặc nhập 'us-east-1'." -objectStorageUseSSL: "Dùng SSL" -objectStorageUseSSLDesc: "Tắt nếu bạn không dùng HTTPS để kết nối API" -objectStorageUseProxy: "Kết nối thông qua Proxy" -objectStorageUseProxyDesc: "Tắt nếu bạn không dùng Proxy để kết nối API" -objectStorageSetPublicRead: "Đặt \"public-read\" khi tải lên" -serverLogs: "Nhật ký máy chủ" -deleteAll: "Xóa tất cả" -showFixedPostForm: "Hiện khung soạn tút ở phía trên bảng tin" -newNoteRecived: "Đã nhận tút mới" -sounds: "Âm thanh" -listen: "Nghe" -none: "Không" -showInPage: "Hiện trong trang" -popout: "Pop-out" -volume: "Âm lượng" -masterVolume: "Âm thanh chung" -details: "Chi tiết" -chooseEmoji: "Chọn emoji" -unableToProcess: "Không thể hoàn tất hành động" -recentUsed: "Sử dụng gần đây" -install: "Cài đặt" -uninstall: "Gỡ bỏ" -installedApps: "Ứng dụng đã cài đặt" -nothing: "Không có gì ở đây" -installedDate: "Cho phép vào" -lastUsedDate: "Dùng gần nhất" -state: "Trạng thái" -sort: "Sắp xếp" -ascendingOrder: "Tăng dần" -descendingOrder: "Giảm dần" -scratchpad: "Scratchpad" -scratchpadDescription: "Scratchpad cung cấp môi trường cho các thử nghiệm AiScript. Bạn có thể viết, thực thi và kiểm tra kết quả tương tác với Misskey trong đó." -output: "Nguồn ra" -script: "Kịch bản" -disablePagesScript: "Tắt AiScript trên Trang" -updateRemoteUser: "Cập nhật thông tin người dùng ở máy chủ khác" -deleteAllFiles: "Xóa toàn bộ tập tin" -deleteAllFilesConfirm: "Bạn có chắc xóa toàn bộ tập tin?" -removeAllFollowing: "Ngưng theo dõi tất cả mọi người" -removeAllFollowingDescription: "Thực hiện điều này sẽ ngưng theo dõi tất cả các tài khoản khỏi {host}. Chỉ thực hiện điều này nếu máy chủ không còn tồn tại." -userSuspended: "Người này đã bị vô hiệu hóa." -userSilenced: "Người này đã bị ẩn" -yourAccountSuspendedTitle: "Tài khoản bị vô hiệu hóa" -yourAccountSuspendedDescription: "Tài khoản này đã bị vô hiệu hóa do vi phạm quy tắc máy chủ hoặc điều tương tự. Liên hệ với quản trị viên nếu bạn muốn biết lý do chi tiết hơn. Vui lòng không tạo tài khoản mới." -menu: "Menu" -divider: "Phân chia" -addItem: "Thêm mục" -relays: "Chuyển tiếp" -addRelay: "Thêm chuyển tiếp" -inboxUrl: "URL Hộp thư đến" -addedRelays: "Đã thêm các chuyển tiếp" -serviceworkerInfo: "Phải được bật cho thông báo đẩy." -deletedNote: "Tút đã bị xóa" -invisibleNote: "Tút ẩn" -enableInfiniteScroll: "Tự động tải tút mới" -visibility: "Hiển thị" -poll: "Bình chọn" -useCw: "Ẩn nội dung" -enablePlayer: "Mở trình phát video" -disablePlayer: "Đóng trình phát video" -expandTweet: "Mở rộng tweet" -themeEditor: "Công cụ thiết kế theme" -description: "Mô tả" -describeFile: "Thêm mô tả" -enterFileDescription: "Nhập mô tả" -author: "Tác giả" -leaveConfirm: "Có những thay đổi chưa được lưu. Bạn có muốn bỏ chúng không?" -manage: "Quản lý" -plugins: "Plugin" -preferencesBackups: "Sao lưu thiết lập" -deck: "Deck" -undeck: "Bỏ Deck" -useBlurEffectForModal: "Sử dụng hiệu ứng mờ cho các hộp thoại" -useFullReactionPicker: "Dùng bộ chọn biểu cảm cỡ lớn" -width: "Chiều rộng" -height: "Chiều cao" -large: "Lớn" -medium: "Vừa" -small: "Nhỏ" -generateAccessToken: "Tạo mã truy cập" -permission: "Cho phép " -enableAll: "Bật toàn bộ" -disableAll: "Tắt toàn bộ" -tokenRequested: "Cấp quyền truy cập vào tài khoản" -pluginTokenRequestedDescription: "Plugin này sẽ có thể sử dụng các quyền được đặt ở đây." -notificationType: "Loại thông báo" -edit: "Sửa" -useStarForReactionFallback: "Dùng ★ nếu emoji biểu cảm không có" -emailServer: "Email máy chủ" -enableEmail: "Bật phân phối email" -emailConfigInfo: "Được dùng để xác minh email của bạn lúc đăng ký hoặc nếu bạn quên mật khẩu của mình" -email: "Email" -emailAddress: "Địa chỉ email" -smtpConfig: "Cấu hình máy chủ SMTP" -smtpHost: "Host" -smtpPort: "Cổng" -smtpUser: "Tên người dùng" -smtpPass: "Mật khẩu" -emptyToDisableSmtpAuth: "Để trống tên người dùng và mật khẩu để tắt xác thực SMTP" -smtpSecure: "Dùng SSL/TLS ngầm định cho các kết nối SMTP" -smtpSecureInfo: "Tắt cái này nếu dùng STARTTLS" -testEmail: "Kiểm tra vận chuyển email" -wordMute: "Ẩn chữ" -regexpError: "Lỗi biểu thức" -regexpErrorDescription: "Xảy ra lỗi biểu thức ở dòng {line} của {tab} chữ ẩn:" -instanceMute: "Những máy chủ ẩn" -userSaysSomething: "{name} nói gì đó" -makeActive: "Kích hoạt" -display: "Hiển thị" -copy: "Sao chép" -metrics: "Số liệu" -overview: "Tổng quan" -logs: "Nhật ký" -delayed: "Độ trễ" -database: "Cơ sở dữ liệu" -channel: "Kênh" -create: "Tạo" -notificationSetting: "Cài đặt thông báo" -notificationSettingDesc: "Chọn loại thông báo bạn muốn hiển thị." -useGlobalSetting: "Dùng thiết lập chung" -useGlobalSettingDesc: "Nếu được bật, cài đặt thông báo của bạn sẽ được áp dụng. Nếu bị tắt, có thể thực hiện các thiết lập riêng lẻ." -other: "Khác" -regenerateLoginToken: "Tạo lại mã đăng nhập" -regenerateLoginTokenDescription: "Tạo lại mã nội bộ có thể dùng để đăng nhập. Thông thường hành động này là không cần thiết. Nếu được tạo lại, tất cả các thiết bị sẽ bị đăng xuất." -setMultipleBySeparatingWithSpace: "Tách nhiều mục nhập bằng dấu cách." -fileIdOrUrl: "ID tập tin hoặc URL" -behavior: "Thao tác" -sample: "Ví dụ" -abuseReports: "Lượt báo cáo" -reportAbuse: "Báo cáo" -reportAbuseOf: "Báo cáo {name}" -fillAbuseReportDescription: "Vui lòng điền thông tin chi tiết về báo cáo này. Nếu đó là về một tút cụ thể, hãy kèm theo URL của tút." -abuseReported: "Báo cáo đã được gửi. Cảm ơn bạn nhiều." -reporter: "Người báo cáo" -reporteeOrigin: "Bị báo cáo" -reporterOrigin: "Máy chủ người báo cáo" -forwardReport: "Chuyển tiếp báo cáo cho máy chủ từ xa" -forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản hệ thống ẩn danh sẽ được hiển thị dưới dạng người báo cáo ở máy chủ từ xa." -send: "Gửi" -abuseMarkAsResolved: "Đánh dấu đã xử lý" -openInNewTab: "Mở trong tab mới" -openInSideView: "Mở trong thanh bên" -defaultNavigationBehaviour: "Thao tác điều hướng mặc định" -editTheseSettingsMayBreakAccount: "Việc chỉnh sửa các cài đặt này có thể làm hỏng tài khoản của bạn." -instanceTicker: "Thông tin máy chủ của tút" -waitingFor: "Đang đợi {x}" -random: "Ngẫu nhiên" -system: "Hệ thống" -switchUi: "Chuyển đổi giao diện người dùng" -desktop: "Desktop" -clip: "Ghim" -createNew: "Tạo mới" -optional: "Không bắt buộc" -createNewClip: "Tạo một ghim mới" -unclip: "Bỏ ghim" -confirmToUnclipAlreadyClippedNote: "Bài đăng này là một phần của \"{name}\" ghim. Bạn có muốn bỏ khỏi ghim?" -public: "Công khai" -i18nInfo: "Misskey đang được các tình nguyện viên dịch sang nhiều thứ tiếng khác nhau. Bạn có thể hỗ trợ tại {link}." -manageAccessTokens: "Tạo mã truy cập" -accountInfo: "Thông tin tài khoản" -notesCount: "Số lượng tút" -repliesCount: "Số lượt trả lời đã gửi" -renotesCount: "Số lượt đăng lại đã gửi" -repliedCount: "Số lượt trả lời đã nhận" -renotedCount: "Lượt chia sẻ" -followingCount: "Số lượng người tôi theo dõi" -followersCount: "Số lượng người theo dõi tôi" -sentReactionsCount: "Số lượng biểu cảm đã gửi" -receivedReactionsCount: "Số lượng biểu cảm đã nhận" -pollVotesCount: "Số lượng bình chọn đã gửi" -pollVotedCount: "Số lượng bình chọn đã nhận" -yes: "Đồng ý" -no: "Từ chối" -driveFilesCount: "Số tập tin trong Ổ đĩa" -driveUsage: "Dung lượng ổ đĩa" -noCrawle: "Từ chối lập chỉ mục" -noCrawleDescription: "Không cho công cụ tìm kiếm lập chỉ mục trang hồ sơ, tút, Trang, etc." -lockedAccountInfo: "Ghi chú của bạn sẽ hiển thị với bất kỳ ai, trừ khi bạn đặt chế độ hiển thị tút của mình thành \"Chỉ người theo dõi\"." -alwaysMarkSensitive: "Luôn đánh dấu NSFW" -loadRawImages: "Tải ảnh gốc thay vì ảnh thu nhỏ" -disableShowingAnimatedImages: "Không phát ảnh động" -verificationEmailSent: "Một email xác minh đã được gửi. Vui lòng nhấn vào liên kết đính kèm để hoàn tất xác minh." -notSet: "Chưa đặt" -emailVerified: "Email đã được xác minh" -noteFavoritesCount: "Số lượng tút yêu thích" -pageLikesCount: "Số lượng trang đã thích" -pageLikedCount: "Số lượng thích trang đã nhận" -contact: "Liên hệ" -useSystemFont: "Dùng phông chữ mặc định của hệ thống" -clips: "Ghim" -experimentalFeatures: "Tính năng thử nghiệm" -developer: "Nhà phát triển" -makeExplorable: "Không hiện tôi trong \"Khám phá\"" -makeExplorableDescription: "Nếu bạn tắt, tài khoản của bạn sẽ không hiện trong mục \"Khám phá\"." -showGapBetweenNotesInTimeline: "Hiện dải phân cách giữa các tút trên bảng tin" -duplicate: "Tạo bản sao" -left: "Bên trái" -center: "Giữa" -wide: "Rộng" -narrow: "Thu hẹp" -reloadToApplySetting: "Cài đặt này sẽ chỉ áp dụng sau khi tải lại trang. Tải lại ngay bây giờ?" -needReloadToApply: "Cần tải lại để điều này được áp dụng." -showTitlebar: "Hiện thanh tựa đề" -clearCache: "Xóa bộ nhớ đệm" -onlineUsersCount: "{n} người đang online" -nUsers: "{n} Người" -nNotes: "{n} Tút" -sendErrorReports: "Báo lỗi" -sendErrorReportsDescription: "Khi được bật, thông tin chi tiết về lỗi sẽ được chia sẻ với Misskey khi xảy ra sự cố, giúp nâng cao chất lượng của Misskey.\nBao gồm thông tin như phiên bản hệ điều hành của bạn, trình duyệt bạn đang sử dụng, hoạt động của bạn trong Misskey, v.v." -myTheme: "Theme của tôi" -backgroundColor: "Màu nền" -accentColor: "Màu phụ" -textColor: "Màu chữ" -saveAs: "Lưu thành" -advanced: "Nâng cao" -value: "Giá trị" -createdAt: "Ngày tạo" -updatedAt: "Cập nhật lúc" -saveConfirm: "Lưu thay đổi?" -deleteConfirm: "Bạn có muốn xóa không?" -invalidValue: "Giá trị không hợp lệ." -registry: "Registry" -closeAccount: "Đóng tài khoản" -currentVersion: "Phiên bản hiện tại" -latestVersion: "Phiên bản mới nhất" -youAreRunningUpToDateClient: "Bạn đang sử dụng phiên bản mới nhất." -newVersionOfClientAvailable: "Có phiên bản mới cho bạn cập nhật." -usageAmount: "Sử dụng" -capacity: "Sức chứa" -inUse: "Đã dùng" -editCode: "Chỉnh sửa mã" -apply: "Áp dụng" -receiveAnnouncementFromInstance: "Nhận thông báo từ máy chủ này" -emailNotification: "Thông báo email" -publish: "Đăng" -inChannelSearch: "Tìm trong kênh" -useReactionPickerForContextMenu: "Nhấn chuột phải để mở bộ chọn biểu cảm" -typingUsers: "{users} đang nhập…" -jumpToSpecifiedDate: "Đến một ngày cụ thể" -showingPastTimeline: "Hiện đang hiển thị dòng thời gian cũ" -clear: "Hoàn lại" -markAllAsRead: "Đánh dấu tất cả đã đọc" -goBack: "Quay lại" -unlikeConfirm: "Bạn có chắc muốn bỏ thích ?" -fullView: "Kích thước đầy đủ" -quitFullView: "Thoát toàn màn hình" -addDescription: "Thêm mô tả" -userPagePinTip: "Bạn có thể hiển thị các tút ở đây bằng cách chọn \"Ghim vào hồ sơ\" từ menu của mỗi tút." -notSpecifiedMentionWarning: "Tút này có đề cập đến những người không mong muốn" -info: "Giới thiệu" -userInfo: "Thông tin người dùng" -unknown: "Chưa biết" -onlineStatus: "Trạng thái" -hideOnlineStatus: "Ẩn trạng thái online" -hideOnlineStatusDescription: "Ẩn trạng thái online của bạn làm giảm sự tiện lợi của một số tính năng như tìm kiếm." -online: "Online" -active: "Hoạt động" -offline: "Offline" -notRecommended: "Không đề xuất" -botProtection: "Bảo vệ Bot" -instanceBlocking: "Máy chủ đã chặn" -selectAccount: "Chọn một tài khoản" -switchAccount: "Chuyển tài khoản" -enabled: "Đã bật" -disabled: "Đã tắt" -quickAction: "Thao tác nhanh" -user: "Người dùng" -administration: "Quản lý" -accounts: "Tài khoản của bạn" -switch: "Chuyển đổi" -noMaintainerInformationWarning: "Chưa thiết lập thông tin vận hành." -noBotProtectionWarning: "Bảo vệ Bot chưa thiết lập." -configure: "Thiết lập" -postToGallery: "Tạo tút có ảnh" -gallery: "Thư viện ảnh" -recentPosts: "Tút gần đây" -popularPosts: "Tút được xem nhiều nhất" -shareWithNote: "Chia sẻ kèm với tút" -ads: "Quảng cáo" -expiration: "Thời hạn" -memo: "Lưu ý" -priority: "Ưu tiên" -high: "Cao" -middle: "Vừa" -low: "Thấp" -emailNotConfiguredWarning: "Chưa đặt địa chỉ email." -ratio: "Tỷ lệ" -previewNoteText: "Hiện xem trước" -customCss: "Tùy chỉnh CSS" -customCssWarn: "Chỉ sử dụng những cài đặt này nếu bạn biết rõ về nó. Việc nhập các giá trị không đúng có thể khiến máy chủ hoạt động không bình thường." -global: "Toàn cầu" -squareAvatars: "Ảnh đại diện vuông" -sent: "Gửi" -received: "Đã nhận" -searchResult: "Kết quả tìm kiếm" -hashtags: "Hashtag" -troubleshooting: "Khắc phục sự cố" -useBlurEffect: "Dùng hiệu ứng làm mờ trong giao diện" -learnMore: "Tìm hiểu thêm" -misskeyUpdated: "Misskey vừa được cập nhật!" -whatIsNew: "Hiện những thay đổi" -translate: "Dịch" -translatedFrom: "Dịch từ {x}" -accountDeletionInProgress: "Đang xử lý việc xóa tài khoản" -usernameInfo: "Bạn có thể sử dụng chữ cái (a ~ z, A ~ Z), chữ số (0 ~ 9) hoặc dấu gạch dưới (_). Tên người dùng không thể thay đổi sau này." -aiChanMode: "Chế độ Ai" -keepCw: "Giữ cảnh báo nội dung" -pubSub: "Tài khoản Chính/Phụ" -lastCommunication: "Lần giao tiếp cuối" -resolved: "Đã xử lý" -unresolved: "Chờ xử lý" -breakFollow: "Xóa người theo dõi" -itsOn: "Đã bật" -itsOff: "Đã tắt" -emailRequiredForSignup: "Yêu cầu địa chỉ email khi đăng ký" -unread: "Chưa đọc" -filter: "Bộ lọc" -controlPanel: "Bảng điều khiển" -manageAccounts: "Quản lý tài khoản" -makeReactionsPublic: "Đặt lịch sử biểu cảm công khai" -makeReactionsPublicDescription: "Điều này sẽ hiển thị công khai danh sách tất cả các biểu cảm trước đây của bạn." -classic: "Cổ điển" -muteThread: "Không quan tâm nữa" -unmuteThread: "Quan tâm tút này" -ffVisibility: "Hiển thị Theo dõi/Người theo dõi" -ffVisibilityDescription: "Quyết định ai có thể xem những người bạn theo dõi và những người theo dõi bạn." -continueThread: "Tiếp tục xem chuỗi tút" -deleteAccountConfirm: "Điều này sẽ khiến tài khoản bị xóa vĩnh viễn. Vẫn tiếp tục?" -incorrectPassword: "Sai mật khẩu." -voteConfirm: "Xác nhận bình chọn \"{choice}\"?" -hide: "Ẩn" -leaveGroup: "Rời khỏi nhóm" -leaveGroupConfirm: "Bạn có chắc muốn rời khỏi nhóm \"{name}\"?" -useDrawerReactionPickerForMobile: "Hiện bộ chọn biểu cảm dạng xổ ra trên điện thoại" -welcomeBackWithName: "Chào mừng trở lại, {name}" -clickToFinishEmailVerification: "Vui lòng nhấn [{ok}] để hoàn tất việc đăng ký." -overridedDeviceKind: "Loại thiết bị" -smartphone: "Điện thoại" -tablet: "Máy tính bảng" -auto: "Tự động" -themeColor: "Màu theme" -size: "Kích thước" -numberOfColumn: "Số lượng cột" -searchByGoogle: "Google" -instanceDefaultLightTheme: "Theme máy chủ Sáng-Rộng" -instanceDefaultDarkTheme: "Theme máy chủ Tối-Rộng" -instanceDefaultThemeDescription: "Nhập mã theme trong định dạng đối tượng." -mutePeriod: "Thời hạn ẩn" -indefinitely: "Vĩnh viễn" -tenMinutes: "10 phút" -oneHour: "1 giờ" -oneDay: "1 ngày" -oneWeek: "1 tuần" -reflectMayTakeTime: "Có thể mất một thời gian để điều này được áp dụng." -failedToFetchAccountInformation: "Không thể lấy thông tin tài khoản" -rateLimitExceeded: "Giới hạn quá mức" -cropImage: "Cắt hình ảnh" -cropImageAsk: "Bạn có muốn cắt ảnh này?" -file: "Tập tin" -recentNHours: "{n}h trước" -recentNDays: "{n} ngày trước" -noEmailServerWarning: "Chưa đặt máy chủ email." -thereIsUnresolvedAbuseReportWarning: "Có báo cáo chưa xử lí." -recommended: "Được đề xuất" -check: "Kiểm tra" -driveCapOverrideLabel: "Thay đổi dung lượng drive cho người này" -driveCapOverrideCaption: "Đặt dung lượng drive về mặc định bằng cách nhập 0 hoặc số âm." -requireAdminForView: "Bạn phải đăng nhập như là quản trị viên mới xem được." -isSystemAccount: "Đã tạo một tài khoản và tự động vận hành bởi hệ thống." -typeToConfirm: "Nhấn {x} để xác nhận" -deleteAccount: "Xóa tài khoản" -document: "Tài liệu" -numberOfPageCache: "Số lượng trang bộ nhớ đệm" -numberOfPageCacheDescription: "Việc tăng con số này sẽ cải thiện sự thuận tiện cho người dùng nhưng gây ra nhiều áp lực hơn cho máy chủ cũng như sử dụng nhiều bộ nhớ hơn." -logoutConfirm: "Bạn có chắc muốn đăng xuất?" -lastActiveDate: "Lần cuối vào" -statusbar: "Thanh trạng thái" -pleaseSelect: "Chọn một lựa chọn" -reverse: "Lật" -colored: "Với màu" -refreshInterval: "Cập nhật nội bộ" -label: "Nhãn" -type: "Loại" -speed: "Tốc độ" -slow: "Chậm" -fast: "Nhanh" -sensitiveMediaDetection: "Tự động phát hiện NSFW" -localOnly: "Chỉ trên máy chủ" -remoteOnly: "Chỉ máy chủ từ xa" -failedToUpload: "Tải lên thất bại" -cannotUploadBecauseInappropriate: "Không thể tải lên tập tin này vì các phần của tập tin đã được phát hiện có khả năng là NSFW." -cannotUploadBecauseNoFreeSpace: "Tải lên không thành công do thiếu dung lượng Drive." -beta: "Beta" -enableAutoSensitive: "Tự động đánh dấu NSFW" -enableAutoSensitiveDescription: "Cho phép tự động phát hiện và đánh dấu media NSFW thông qua học máy, nếu có thể. Ngay cả khi tùy chọn này bị tắt, nó vẫn có thể được bật trên toàn máy chủ." -activeEmailValidationDescription: "Cho phép xác minh địa chỉ email chặt chẽ hơn, bao gồm việc kiểm tra các địa chỉ dùng một lần và xem nó có thực sự được giao tiếp hay không. Khi bỏ chọn, chỉ định dạng của email được xác minh." -navbar: "Thanh điều hướng" -shuffle: "Xáo trộn" -account: "Tài khoản của bạn" -move: "Di chuyển" -_sensitiveMediaDetection: - description: "Giảm nỗ lực kiểm duyệt máy chủ thông qua việc tự động nhận dạng media NSFW thông qua học máy. Điều này sẽ làm tăng một chút áp lực trên máy chủ." - sensitivity: "Phát hiện nhạy cảm" - sensitivityDescription: "Giảm độ nhạy sẽ dẫn đến ít phát hiện sai hơn (dương tính giả), tăng nó sẽ dẫn đến ít phát hiện sai hơn (âm tính giả)." - setSensitiveFlagAutomatically: "Đánh dấu là NSFW" - setSensitiveFlagAutomaticallyDescription: "Kết quả của phát hiện nội bộ sẽ được giữ lại ngay cả khi tùy chọn này bị tắt." - analyzeVideos: "Bật chuẩn đoán video" - analyzeVideosDescription: "Phân tích video bên cạnh hình ảnh. Điều này sẽ làm tăng một chút áp lực trên máy chủ." -_emailUnavailable: - used: "Địa chỉ email đã được sử dụng" - format: "Địa chỉ email không hợp lệ" - disposable: "Cấm sử dụng địa chỉ email dùng một lần" - mx: "Máy chủ email không hợp lệ" - smtp: "Máy chủ email không phản hồi" -_ffVisibility: - public: "Đăng" - followers: "Chỉ người theo dõi mới xem được" - private: "Riêng tư" -_signup: - almostThere: "Gần xong rồi" - emailAddressInfo: "Hãy điền địa chỉ email của bạn. Nó sẽ không được công khai." - emailSent: "Một email xác minh đã được gửi đến địa chỉ email ({email}) của bạn. Vui lòng nhấn vào liên kết trong đó để hoàn tất việc tạo tài khoản." -_accountDelete: - accountDelete: "Xóa tài khoản" - mayTakeTime: "Vì xóa tài khoản là một quá trình tốn nhiều tài nguyên nên có thể mất một khoảng thời gian để hoàn thành, tùy thuộc vào lượng nội dung bạn đã tạo và số lượng tập tin bạn đã tải lên." - sendEmail: "Sau khi hoàn tất việc xóa tài khoản, một email sẽ được gửi đến địa chỉ email đã đăng ký tài khoản này." - requestAccountDelete: "Yêu cầu xóa tài khoản" - started: "Đang bắt đầu xóa tài khoản." - inProgress: "Đang xóa dần tài khoản." -_ad: - back: "Quay lại" - reduceFrequencyOfThisAd: "Hiện ít lại" -_forgotPassword: - enterEmail: "Nhập địa chỉ email bạn đã sử dụng để đăng ký. Một liên kết mà bạn có thể đặt lại mật khẩu của mình sau đó sẽ được gửi đến nó." - ifNoEmail: "Nếu bạn không sử dụng email lúc đăng ký, vui lòng liên hệ với quản trị viên." - contactAdmin: "Máy chủ này không hỗ trợ sử dụng địa chỉ email, vui lòng liên hệ với quản trị viên để đặt lại mật khẩu của bạn." -_gallery: - my: "Kho Ảnh" - liked: "Tút Đã Thích" - like: "Thích" - unlike: "Bỏ thích" -_email: - _follow: - title: "đã theo dõi bạn" - _receiveFollowRequest: - title: "Chấp nhận yêu cầu theo dõi" -_plugin: - install: "Cài đặt tiện ích" - installWarn: "Vui lòng không cài đặt những tiện ích đáng ngờ." - manage: "Quản lý plugin" -_preferencesBackups: - list: "Tạo sao lưu" - saveNew: "Lưu bản sao lưu" - loadFile: "Nhập tập tin" - apply: "Áp dụng lên thiết bị này" - save: "Lưu thay đổi" - inputName: "Nhập tên bản sao lưu" - cannotSave: "Không thể lưu" - nameAlreadyExists: "Bản sao lưu \"{name}\" đã tồn tại. Xin nhập tên khác." - applyConfirm: "Bạn có chắc muốn áp dụng bản sao lưu \"{name}\" cho thiết bị này? Thiết lập hiện tại sẽ bị ghi đè." - saveConfirm: "Lưu bản sao lưu {name}?" - deleteConfirm: "Xóa bản sao lưu {name}?" - renameConfirm: "Đổi tên bản sao lưu \"{old}\" thành \"{new}\"?" - noBackups: "Chưa có bản sao lưu. Bạn có thể sao lưu thiết lập trên máy chủ này bằng cách sử dụng \"Tạo sao lưu\"." - createdAt: "Tạo vào: {time} {date}" - updatedAt: "Cập nhật: {time} {date}" - cannotLoad: "Tải thất bại" - invalidFile: "Sai định dạng tập tin" -_registry: - scope: "Phạm vi" - key: "Mã" - keys: "Các mã" - domain: "Tên miền" - createKey: "Tạo mã" -_aboutMisskey: - about: "Misskey là phần mềm mã nguồn mở được phát triển bởi syuilo từ năm 2014." - contributors: "Những người đóng góp nổi bật" - allContributors: "Toàn bộ người đóng góp" - source: "Mã nguồn" - translation: "Dịch Misskey" - donate: "Ủng hộ Misskey" - morePatrons: "Chúng tôi cũng trân trọng sự hỗ trợ của nhiều người đóng góp khác không được liệt kê ở đây. Cảm ơn! 🥰" - patrons: "Người ủng hộ" -_nsfw: - respect: "Ẩn nội dung NSFW" - ignore: "Hiện nội dung NSFW" - force: "Ẩn mọi media" -_mfm: - cheatSheet: "MFM Cheatsheet" - intro: "MFM là ngôn ngữ phát triển độc quyền của Misskey có thể được sử dụng ở nhiều nơi. Tại đây bạn có thể xem danh sách tất cả các cú pháp MFM có sẵn." - dummy: "Misskey mở rộng thế giới Fediverse" - mention: "Nhắc đến" - mentionDescription: "Bạn có thể nhắc đến ai đó bằng cách sử dụng @tên người dùng." - hashtag: "Hashtag" - hashtagDescription: "Bạn có thể tạo một hashtag bằng #chữ hoặc #số." - url: "URL" - urlDescription: "Những URL có thể hiển thị." - link: "Đường dẫn" - linkDescription: "Các phần cụ thể của văn bản có thể được hiển thị dưới dạng URL." - bold: "In đậm" - boldDescription: "Nổi bật các chữ cái bằng cách làm chúng dày hơn." - small: "Nhỏ" - smallDescription: "Hiển thị nội dung nhỏ và mỏng." - center: "Giữa" - centerDescription: "Hiển thị nội dung căn giữa." - inlineCode: "Mã (Trong dòng)" - inlineCodeDescription: "Hiển thị tô sáng cú pháp trong dòng cho mã (chương trình)." - blockCode: "Mã (Khối)" - blockCodeDescription: "Hiển thị tô sáng cú pháp cho mã nhiều dòng (chương trình) trong một khối." - inlineMath: "Toán học (Trong dòng)" - inlineMathDescription: "Hiển thị công thức toán (KaTeX) trong dòng" - blockMath: "Toán học (Khối)" - blockMathDescription: "Hiển thị công thức toán học nhiều dòng (KaTeX) trong một khối" - quote: "Trích dẫn" - quoteDescription: "Hiển thị nội dung dạng lời trích dạng." - emoji: "Tùy chỉnh emoji" - emojiDescription: "Hiển thị emoji với cú pháp :tên emoji:" - search: "Tìm kiếm" - searchDescription: "Hiển thị hộp tìm kiếm với văn bản được nhập trước." - flip: "Lật" - flipDescription: "Lật nội dung theo chiều ngang hoặc chiều dọc." - jelly: "Chuyển động (Thạch rau câu)" - jellyDescription: "Cho phép nội dung chuyển động giống như thạch rau câu." - tada: "Chuyển động (Tada)" - tadaDescription: "Cho phép nội dung chuyển động kiểu \"Tada!\"." - jump: "Chuyển động (Nhảy múa)" - jumpDescription: "Cho phép nội dung chuyển động nhảy nhót." - bounce: "Chuyển động (Cà tưng)" - bounceDescription: "Cho phép nội dung chuyển động cà tưng." - shake: "Chuyển động (Rung)" - shakeDescription: "Cho phép nội dung chuyển động rung lắc." - twitch: "Chuyển động (Co rút)" - twitchDescription: "Cho phép nội dung chuyển động co rút." - spin: "Chuyển động (Xoay tít)" - spinDescription: "Cho phép nội dung chuyển động xoay tít." - x2: "Lớn" - x2Description: "Hiển thị nội dung cỡ lớn hơn." - x3: "Rất lớn" - x3Description: "Hiển thị nội dung cỡ lớn hơn nữa." - x4: "Khổng lồ" - x4Description: "Hiển thị nội dung cỡ khổng lồ." - blur: "Làm mờ" - blurDescription: "Làm mờ nội dung. Nó sẽ được hiển thị rõ ràng khi di chuột qua." - font: "Phông chữ" - fontDescription: "Chọn phông chữ để hiển thị nội dung." - rainbow: "Cầu vồng" - rainbowDescription: "Làm cho nội dung hiển thị với màu sắc cầu vồng." - sparkle: "Lấp lánh" - sparkleDescription: "Làm cho nội dung hiệu ứng hạt lấp lánh." - rotate: "Xoay" - rotateDescription: "Xoay nội dung theo một góc cụ thể." - plain: "Đơn giản" - plainDescription: "Vô hiệu hóa mọi hiệu ứng MFM chứa trong hiệu ứng MFM này." -_instanceTicker: - none: "Không hiển thị" - remote: "Hiện cho người dùng từ máy chủ khác" - always: "Luôn hiện" -_serverDisconnectedBehavior: - reload: "Tự động tải lại" - dialog: "Hiện hộp thoại cảnh báo" - quiet: "Hiển thị cảnh báo không phô trương" -_channel: - create: "Tạo kênh" - edit: "Chỉnh sửa kênh" - setBanner: "Đặt ảnh bìa" - removeBanner: "Xóa ảnh bìa" - featured: "Xu hướng" - owned: "Do tôi quản lý" - following: "Đang theo dõi" - usersCount: "{n} Thành viên" - notesCount: "{n} Tút" -_menuDisplay: - sideFull: "Thanh bên" - sideIcon: "Thanh bên (Biểu tượng)" - top: "Trên cùng" - hide: "Ẩn" -_wordMute: - muteWords: "Ẩn từ ngữ" - muteWordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." - muteWordsDescription2: "Bao quanh các từ khóa bằng dấu gạch chéo để sử dụng cụm từ thông dụng." - softDescription: "Ẩn các tút phù hợp điều kiện đã đặt khỏi bảng tin." - hardDescription: "Ngăn các tút đáp ứng các điều kiện đã đặt xuất hiện trên bảng tin. Lưu ý, những tút này sẽ không được thêm vào bảng tin ngay cả khi các điều kiện được thay đổi." - soft: "Yếu" - hard: "Mạnh" - mutedNotes: "Những tút đã ẩn" -_instanceMute: - instanceMuteDescription: "Thao tác này sẽ ẩn mọi tút/lượt đăng lại từ các máy chủ được liệt kê, bao gồm cả những tút dạng trả lời từ máy chủ bị ẩn." - instanceMuteDescription2: "Tách bằng cách xuống dòng" - title: "Ẩn tút từ những máy chủ đã liệt kê." - heading: "Danh sách những máy chủ bị ẩn" -_theme: - explore: "Khám phá theme" - install: "Cài đặt theme" - manage: "Quản lý theme" - code: "Mã theme" - description: "Mô tả" - installed: "{name} đã được cài đặt" - installedThemes: "Theme đã cài đặt" - builtinThemes: "Theme tích hợp sẵn" - alreadyInstalled: "Theme này đã được cài đặt" - invalid: "Định dạng của theme này không hợp lệ" - make: "Tạo theme" - base: "Dựa trên có sẵn" - addConstant: "Thêm hằng số" - constant: "Hằng số" - defaultValue: "Giá trị mặc định" - color: "Màu sắc" - refProp: "Tham chiếu một thuộc tính" - refConst: "Tham chiếu một hằng số" - key: "Khóa" - func: "Hàm" - funcKind: "Loại hàm" - argument: "Tham số" - basedProp: "Thuộc tính tham chiếu" - alpha: "Độ trong suốt" - darken: "Độ tối" - lighten: "Độ sáng" - inputConstantName: "Nhập tên cho hằng số này" - importInfo: "Nếu bạn nhập mã theme ở đây, bạn có thể nhập mã đó vào trình chỉnh sửa theme" - deleteConstantConfirm: "Bạn có chắc muốn xóa hằng số {const} không?" - keys: - accent: "Màu phụ" - bg: "Màu nền" - fg: "Màu chữ" - focus: "Trọng tâm" - indicator: "Chỉ báo" - panel: "Thanh bên" - shadow: "Bóng mờ" - header: "Ảnh bìa" - navBg: "Nền thanh bên" - navFg: "Chữ thanh bên" - navHoverFg: "Chữ thanh bên (Khi chạm)" - navActive: "Chữ thanh bên (Khi chọn)" - navIndicator: "Chỉ báo thanh bên" - link: "Đường dẫn" - hashtag: "Hashtag" - mention: "Nhắc đến" - mentionMe: "Lượt nhắc (Tôi)" - renote: "Đăng lại" - modalBg: "Nền phương thức" - divider: "Phân chia" - scrollbarHandle: "Thanh cuộn khi giữ" - scrollbarHandleHover: "Thanh cuộn khi chạm" - dateLabelFg: "Màu ngày tháng năm" - infoBg: "Nền thông tin" - infoFg: "Chữ thông tin" - infoWarnBg: "Nền cảnh báo" - infoWarnFg: "Chữ cảnh báo" - cwBg: "Nền nút nội dung ẩn" - cwFg: "Chữ nút nội dung ẩn" - cwHoverBg: "Nền nút nội dung ẩn (Chạm)" - toastBg: "Nền thông báo" - toastFg: "Chữ thông báo" - buttonBg: "Nền nút" - buttonHoverBg: "Nền nút (Chạm)" - inputBorder: "Đường viền khung soạn thảo" - listItemHoverBg: "Nền mục liệt kê (Chạm)" - driveFolderBg: "Nền thư mục Ổ đĩa" - wallpaperOverlay: "Lớp phủ hình nền" - badge: "Huy hiệu" - messageBg: "Nền chat" - accentDarken: "Màu phụ (Tối)" - accentLighten: "Màu phụ (Sáng)" - fgHighlighted: "Chữ nổi bật" -_sfx: - note: "Tút" - noteMy: "Tút của tôi" - notification: "Thông báo" - chat: "Trò chuyện" - chatBg: "Chat (Nền)" - antenna: "Trạm phát sóng" - channel: "Kênh" -_ago: - future: "Tương lai" - justNow: "Vừa xong" - secondsAgo: "{n}s trước" - minutesAgo: "{n} phút trước" - hoursAgo: "{n} giờ trước" - daysAgo: "{n} ngày trước" - weeksAgo: "{n} tuần trước" - monthsAgo: "{n} tháng trước" - yearsAgo: "{n} năm trước" -_time: - second: "s" - minute: "phút" - hour: "giờ" - day: "ngày" -_tutorial: - title: "Cách dùng Misskey" - step1_1: "Xin chào!" - step1_2: "Trang này gọi là \"bảng tin\". Nó hiện \"tút\" từ những người mà bạn \"theo dõi\" theo thứ tự thời gian." - step1_3: "Bảng tin của bạn đang trống, bởi vì bạn chưa đăng tút nào hoặc chưa theo dõi ai." - step2_1: "Hãy hoàn thành việc thiết lập hồ sơ của bạn trước khi viết tút hoặc theo dõi bất kỳ ai." - step2_2: "Cung cấp một số thông tin giới thiệu bạn là ai sẽ giúp người khác dễ dàng biết được họ muốn đọc tút hay theo dõi bạn." - step3_1: "Hoàn thành thiết lập hồ sơ của bạn?" - step3_2: "Sau đó, hãy thử đăng một tút tiếp theo. Bạn có thể làm như vậy bằng cách nhấn vào nút có biểu tượng bút chì trên màn hình." - step3_3: "Nhập nội dung vào khung soạn thảo và nhấn nút đăng ở góc trên." - step3_4: "Chưa biết nói gì? Thử \"Tôi mới tham gia Misskey\"!" - step4_1: "Đăng xong tút đầu tiên của bạn?" - step4_2: "De! Tút đầu tiên của bạn đã hiện trên bảng tin." - step5_1: "Bây giờ, hãy thử làm cho bảng tin của bạn sinh động hơn bằng cách theo dõi những người khác." - step5_2: "{feature} sẽ hiển thị cho bạn các tút nổi bật trên máy chủ này. {explore} sẽ cho phép bạn tìm thấy những người dùng thú vị. Hãy thử tìm những người bạn muốn theo dõi ở đó!" - step5_3: "Để theo dõi những người dùng khác, hãy nhấn vào ảnh đại diện của họ và nhấn nút \"Theo dõi\" trên hồ sơ của họ." - step5_4: "Nếu người dùng khác có biểu tượng ổ khóa bên cạnh tên của họ, có thể mất một khoảng thời gian để người dùng đó phê duyệt yêu cầu theo dõi của bạn theo cách thủ công." - step6_1: "Bạn sẽ có thể xem tút của những người dùng khác trên bảng tin của mình ngay bây giờ." - step6_2: "Bạn cũng có thể đặt \"biểu cảm\" trên tút của người khác để phản hồi nhanh chúng." - step6_3: "Để đính kèm \"biểu cảm\", hãy nhấn vào dấu \"+\" trên tút của người dùng khác rồi chọn biểu tượng cảm xúc mà bạn muốn dùng." - step7_1: "Xin chúc mừng! Bây giờ bạn đã hoàn thành phần hướng dẫn cơ bản của Misskey." - step7_2: "Nếu bạn muốn tìm hiểu thêm về Misskey, hãy thử phần {help}." - step7_3: "Bây giờ, chúc may mắn và vui vẻ với Misskey! 🚀" -_2fa: - alreadyRegistered: "Bạn đã đăng ký thiết bị xác minh 2 bước." - registerDevice: "Đăng ký một thiết bị" - registerKey: "Đăng ký một mã bảo vệ" - step1: "Trước tiên, hãy cài đặt một ứng dụng xác minh (chẳng hạn như {a} hoặc {b}) trên thiết bị của bạn." - step2: "Sau đó, quét mã QR hiển thị trên màn hình này." - step2Url: "Bạn cũng có thể nhập URL này nếu sử dụng một chương trình máy tính:" - step3: "Nhập mã token do ứng dụng của bạn cung cấp để hoàn tất thiết lập." - step4: "Kể từ bây giờ, những lần đăng nhập trong tương lai sẽ yêu cầu mã token đăng nhập đó." - securityKeyInfo: "Bên cạnh xác minh bằng vân tay hoặc mã PIN, bạn cũng có thể thiết lập xác minh thông qua khóa bảo mật phần cứng hỗ trợ FIDO2 để bảo mật hơn nữa cho tài khoản của mình." -_permissions: - "read:account": "Xem thông tin tài khoản của bạn" - "write:account": "Sửa thông tin tài khoản của bạn" - "read:blocks": "Xem danh sách người bạn chặn" - "write:blocks": "Sửa danh sách người bạn chặn" - "read:drive": "Truy cập tập tin, thư mục trong Ổ đĩa" - "write:drive": "Sửa và xóa tập tin, thư mục trong Ổ đĩa" - "read:favorites": "Xem lượt thích của tôi" - "write:favorites": "Sửa lượt thích của tôi" - "read:following": "Xem những người bạn theo dõi" - "write:following": "Theo dõi hoặc ngưng theo dõi ai đó" - "read:messaging": "Xem lịch sử chat" - "write:messaging": "Soạn hoặc xóa tin nhắn" - "read:mutes": "Xem những người bạn ẩn" - "write:mutes": "Sửa những người bạn ẩn" - "write:notes": "Soạn hoặc xóa tút" - "read:notifications": "Xem thông báo của tôi" - "write:notifications": "Quản lý thông báo của tôi" - "read:reactions": "Xem lượt biểu cảm của tôi" - "write:reactions": "Sửa lượt biểu cảm của tôi" - "write:votes": "Bình chọn" - "read:pages": "Xem trang của tôi" - "write:pages": "Sửa hoặc xóa trang của tôi" - "read:page-likes": "Xem lượt thích trên trang của tôi" - "write:page-likes": "Sửa lượt thích của tôi trên trang" - "read:user-groups": "Xem nhóm của tôi" - "write:user-groups": "Sửa hoặc xóa nhóm của tôi" - "read:channels": "Xem kênh của tôi" - "write:channels": "Sửa kênh của tôi" - "read:gallery": "Xem kho ảnh của tôi" - "write:gallery": "Sửa kho ảnh của tôi" - "read:gallery-likes": "Xem danh sách các tút đã thích trong thư viện của tôi" - "write:gallery-likes": "Sửa danh sách các tút đã thích trong thư viện của tôi" -_auth: - shareAccess: "Bạn có muốn cho phép \"{name}\" truy cập vào tài khoản này không?" - shareAccessAsk: "Bạn có chắc muốn cho phép ứng dụng này truy cập vào tài khoản của mình không?" - permissionAsk: "Ứng dụng này yêu cầu các quyền sau" - pleaseGoBack: "Vui lòng quay lại ứng dụng" - callback: "Quay lại ứng dụng" - denied: "Truy cập bị từ chối" -_antennaSources: - all: "Toàn bộ tút" - homeTimeline: "Tút từ những người đã theo dõi" - users: "Tút từ những người cụ thể" - userList: "Tút từ danh sách người dùng cụ thể" - userGroup: "Tút từ người dùng trong một nhóm cụ thể" -_weekday: - sunday: "Chủ Nhật" - monday: "Thứ Hai" - tuesday: "Thứ Ba" - wednesday: "Thứ Tư" - thursday: "Thứ Năm" - friday: "Thứ Sáu" - saturday: "Thứ Bảy" -_widgets: - memo: "Tút đã ghim" - notifications: "Thông báo" - timeline: "Bảng tin" - calendar: "Lịch" - trends: "Xu hướng" - clock: "Đồng hồ" - rss: "Trình đọc RSS" - rssTicker: "RSS-Ticker" - activity: "Hoạt động" - photos: "Kho ảnh" - digitalClock: "Đồng hồ số" - unixClock: "Đồng hồ UNIX" - federation: "Liên hợp" - instanceCloud: "Instance cloud" - postForm: "Mẫu đăng" - slideshow: "Trình chiếu" - button: "Nút" - onlineUsers: "Ai đang online" - jobQueue: "Công việc chờ xử lý" - serverMetric: "Thống kê máy chủ" - aiscript: "AiScript console" - aichan: "Ai" -_cw: - hide: "Ẩn" - show: "Tải thêm" - chars: "{count} ký tự" - files: "{count} tập tin" -_poll: - noOnlyOneChoice: "Cần ít nhất hai lựa chọn." - choiceN: "Lựa chọn {n}" - noMore: "Bạn không thể thêm lựa chọn" - canMultipleVote: "Cho phép chọn nhiều lựa chọn" - expiration: "Thời hạn" - infinite: "Vĩnh viễn" - at: "Kết thúc vào..." - after: "Kết thúc sau..." - deadlineDate: "Ngày kết thúc" - deadlineTime: "giờ" - duration: "Thời hạn" - votesCount: "{n} bình chọn" - totalVotes: "{n} tổng bình chọn" - vote: "Bình chọn" - showResult: "Xem kết quả" - voted: "Đã bình chọn" - closed: "Đã kết thúc" - remainingDays: "{d} ngày {h} giờ còn lại" - remainingHours: "{h} giờ {m} phút còn lại" - remainingMinutes: "{m} phút {s}s còn lại" - remainingSeconds: "{s}s còn lại" -_visibility: - public: "Công khai" - publicDescription: "Mọi người đều có thể đọc tút của bạn" - home: "Trang chính" - homeDescription: "Chỉ đăng lên bảng tin nhà" - followers: "Người theo dõi" - followersDescription: "Dành riêng cho người theo dõi" - specified: "Nhắn riêng" - specifiedDescription: "Chỉ người được nhắc đến mới thấy" - localOnly: "Chỉ trên máy chủ" - localOnlyDescription: "Không hiển thị với người ở máy chủ khác" -_postForm: - replyPlaceholder: "Trả lời tút này" - quotePlaceholder: "Trích dẫn tút này" - channelPlaceholder: "Đăng lên một kênh" - _placeholders: - a: "Bạn đang định làm gì?" - b: "Hôm nay bạn có gì vui?" - c: "Bạn đang nghĩ gì?" - d: "Bạn muốn nói gì?" - e: "Bắt đầu viết..." - f: "Đang chờ bạn viết..." -_profile: - name: "Tên" - username: "Tên người dùng" - description: "Tiểu sử" - youCanIncludeHashtags: "Bạn có thể dùng hashtag trong tiểu sử." - metadata: "Thông tin bổ sung" - metadataEdit: "Sửa thông tin bổ sung" - metadataDescription: "Sử dụng phần này, bạn có thể hiển thị các mục thông tin bổ sung trong hồ sơ của mình." - metadataLabel: "Nhãn" - metadataContent: "Nội dung" - changeAvatar: "Đổi ảnh đại diện" - changeBanner: "Đổi ảnh bìa" -_exportOrImport: - allNotes: "Toàn bộ tút" - followingList: "Đang theo dõi" - muteList: "Ẩn" - blockingList: "Chặn" - userLists: "Danh sách" - excludeMutingUsers: "Loại trừ những người dùng bị ẩn" - excludeInactiveUsers: "Loại trừ những người dùng không hoạt động" -_charts: - federation: "Liên hợp" - apRequest: "Yêu cầu" - usersIncDec: "Sự khác biệt về số lượng người dùng" - usersTotal: "Tổng số người dùng" - activeUsers: "Số người đang hoạt động" - notesIncDec: "Sự khác biệt về số lượng tút" - localNotesIncDec: "Sự khác biệt về số lượng tút máy chủ này" - remoteNotesIncDec: "Sự khác biệt về số lượng tút từ máy chủ khác" - notesTotal: "Tổng số sút" - filesIncDec: "Sự khác biệt về số lượng tập tin" - filesTotal: "Tổng số tập tin" - storageUsageIncDec: "Sự khác biệt về dung lượng lưu trữ" - storageUsageTotal: "Tổng dung lượng lưu trữ" -_instanceCharts: - requests: "Lượt yêu cầu" - users: "Sự khác biệt về số lượng người dùng" - usersTotal: "Số lượng người dùng tích lũy" - notes: "Sự khác biệt về số lượng tút" - notesTotal: "Số lượng tút tích lũy" - ff: "Sự khác biệt về số lượng người dùng được theo dõi/người theo dõi" - ffTotal: "Số lượng người dùng được theo dõi/người theo dõi tích lũy" - cacheSize: "Sự khác biệt về dung lượng bộ nhớ đệm" - cacheSizeTotal: "Dung lượng bộ nhớ đệm tích lũy" - files: "Sự khác biệt về số lượng tập tin" - filesTotal: "Số lượng tập tin tích lũy" -_timelines: - home: "Trang chính" - local: "Máy chủ này" - social: "Xã hội" - global: "Liên hợp" -_pages: - newPage: "Tạo Trang mới" - editPage: "Sửa Trang này" - readPage: "Xem mã nguồn Trang này" - created: "Trang đã được tạo thành công" - updated: "Trang đã được cập nhật thành công" - deleted: "Trang đã được xóa thành công" - pageSetting: "Cài đặt trang" - nameAlreadyExists: "URL Trang đã tồn tại" - invalidNameTitle: "URL Trang không hợp lệ" - invalidNameText: "Không được để trống tựa đề Trang" - editThisPage: "Sửa Trang này" - viewSource: "Xem mã nguồn" - viewPage: "Xem trang của tôi" - like: "Thích" - unlike: "Bỏ thích" - my: "Trang của tôi" - liked: "Trang đã thích" - featured: "Nổi tiếng" - inspector: "Thanh tra" - contents: "Nội dung" - content: "Chặn Trang" - variables: "Biến thể" - title: "Tựa đề" - url: "URL Trang" - summary: "Mô tả Trang" - alignCenter: "Căn giữa" - hideTitleWhenPinned: "Ẩn tựa đề Trang khi ghim lên hồ sơ" - font: "Phông chữ" - fontSerif: "Serif" - fontSansSerif: "Sans Serif" - eyeCatchingImageSet: "Đặt ảnh thu nhỏ" - eyeCatchingImageRemove: "Xóa ảnh thu nhỏ" - chooseBlock: "Thêm khối" - selectType: "Chọn kiểu" - enterVariableName: "Nhập tên một biến thể" - variableNameIsAlreadyUsed: "Tên biến thể này đã được sử dụng" - contentBlocks: "Nội dung" - inputBlocks: "Nhập" - specialBlocks: "Đặc biệt" - blocks: - text: "Văn bản" - textarea: "Khu vực văn bản" - section: "Mục " - image: "Hình ảnh" - button: "Nút" - if: "Nếu" - _if: - variable: "Biến thể" - post: "Mẫu đăng" - _post: - text: "Nội dung" - attachCanvasImage: "Đính kèm hình canva" - canvasId: "ID Canva" - textInput: "Văn bản đầu vào" - _textInput: - name: "Tên biến thể" - text: "Tựa đề" - default: "Giá trị mặc định" - textareaInput: "Văn bản nhiều dòng đầu vào" - _textareaInput: - name: "Tên biến thể" - text: "Tựa đề" - default: "Giá trị mặc định" - numberInput: "Đầu vào số" - _numberInput: - name: "Tên biến thể" - text: "Tựa đề" - default: "Giá trị mặc định" - canvas: "Canva" - _canvas: - id: "ID Canva" - width: "Chiều rộng" - height: "Chiều cao" - note: "Tút đã nhúng" - _note: - id: "ID tút" - idDescription: "Ngoài ra, bạn có thể dán URL tút vào đây." - detailed: "Xem chi tiết" - switch: "Chuyển đổi" - _switch: - name: "Tên biến thể" - text: "Tựa đề" - default: "Giá trị mặc định" - counter: "Bộ đếm" - _counter: - name: "Tên biến thể" - text: "Tựa đề" - inc: "Bước" - _button: - text: "Tựa đề" - colored: "Với màu" - action: "Thao tác khi nhấn nút" - _action: - dialog: "Hiện hộp thoại" - _dialog: - content: "Nội dung" - resetRandom: "Đặt lại seed ngẫu nhiên" - pushEvent: "Gửi một sự kiện" - _pushEvent: - event: "Tên sự kiện" - message: "Tin nhắn hiển thị khi kích hoạt" - variable: "Biển thể để gửi" - no-variable: "Không" - callAiScript: "Gọi AiScript" - _callAiScript: - functionName: "Tên tính năng" - radioButton: "Lựa chọn" - _radioButton: - name: "Tên biến thể" - title: "Tựa đề" - values: "Phân tách các mục bằng cách xuống dòng" - default: "Giá trị mặc định" - script: - categories: - flow: "Điều khiển" - logical: "Hoạt động logic" - operation: "Tính toán" - comparison: "So sánh" - random: "Ngẫu nhiên" - value: "Giá trị" - fn: "Tính năng" - text: "Tác vụ văn bản" - convert: "Chuyển đổi" - list: "Danh sách" - blocks: - text: "Văn bản" - multiLineText: "Văn bản (nhiều dòng)" - textList: "Văn bản liệt kê" - _textList: - info: "Phân tách mục bằng cách xuống dòng" - strLen: "Độ dài văn bản" - _strLen: - arg1: "Văn bản" - strPick: "Trích xuất chuỗi" - _strPick: - arg1: "Văn bản" - arg2: "Vị trí chuỗi" - strReplace: "Thay thế chuỗi" - _strReplace: - arg1: "Nội dung" - arg2: "Văn bản thay thế" - arg3: "Thay thế bằng" - strReverse: "Lật văn bản" - _strReverse: - arg1: "Văn bản" - join: "Nối văn bản" - _join: - arg1: "Danh sách" - arg2: "Phân cách" - add: "Cộng" - _add: - arg1: "A" - arg2: "B" - subtract: "Trừ" - _subtract: - arg1: "A" - arg2: "B" - multiply: "Nhân" - _multiply: - arg1: "A" - arg2: "B" - divide: "Chia" - _divide: - arg1: "A" - arg2: "B" - mod: "Phần còn lại" - _mod: - arg1: "A" - arg2: "B" - round: "Làm tròn thập phân" - _round: - arg1: "Số" - eq: "A và B bằng nhau" - _eq: - arg1: "A" - arg2: "B" - notEq: "A và B khác nhau" - _notEq: - arg1: "A" - arg2: "B" - and: "A VÀ B" - _and: - arg1: "A" - arg2: "B" - or: "A HOẶC B" - _or: - arg1: "A" - arg2: "B" - lt: "< A nhỏ hơn B" - _lt: - arg1: "A" - arg2: "B" - gt: "> A lớn hơn B" - _gt: - arg1: "A" - arg2: "B" - ltEq: "<= A nhỏ hơn hoặc bằng B" - _ltEq: - arg1: "A" - arg2: "B" - gtEq: ">= A lớn hơn hoặc bằng B" - _gtEq: - arg1: "A" - arg2: "B" - if: "Nhánh" - _if: - arg1: "Nếu" - arg2: "Sau đó" - arg3: "Khác" - not: "KHÔNG" - _not: - arg1: "KHÔNG" - random: "Ngẫu nhiên" - _random: - arg1: "Xác suất" - rannum: "Số ngẫu nhiên" - _rannum: - arg1: "Giá trị tối thiểu" - arg2: "Giá trị tối đa" - randomPick: "Chọn ngẫu nhiên từ danh sách" - _randomPick: - arg1: "Danh sách" - dailyRandom: "Ngẫu nhiên (Đổi mỗi người một lần mỗi ngày)" - _dailyRandom: - arg1: "Xác suất" - dailyRannum: "Số ngẫu nhiên (Đổi mỗi người một lần mỗi ngày)" - _dailyRannum: - arg1: "Giá trị tối thiểu" - arg2: "Giá trị tối đa" - dailyRandomPick: "Chọn ngẫu nhiên từ một danh sách (Đổi mỗi người một lần mỗi ngày)" - _dailyRandomPick: - arg1: "Danh sách" - seedRandom: "Ngẫu nhiên (với seed)" - _seedRandom: - arg1: "Seed" - arg2: "Xác suất" - seedRannum: "Số ngẫu nhiên (với seed)" - _seedRannum: - arg1: "Seed" - arg2: "Giá trị tối thiểu" - arg3: "Giá trị tối đa" - seedRandomPick: "Chọn ngẫu nhiên từ danh sách (với seed)" - _seedRandomPick: - arg1: "Seed" - arg2: "Danh sách" - DRPWPM: "Chọn ngẫu nhiên từ danh sách nặng (Đổi mỗi người một lần mỗi ngày)" - _DRPWPM: - arg1: "Văn bản liệt kê" - pick: "Chọn từ danh sách" - _pick: - arg1: "Danh sách" - arg2: "Vị trí" - listLen: "Lấy độ dài danh sách" - _listLen: - arg1: "Danh sách" - number: "Số" - stringToNumber: "Chữ thành số" - _stringToNumber: - arg1: "Văn bản" - numberToString: "Số thành chữ" - _numberToString: - arg1: "Số" - splitStrByLine: "Phân cách văn bản bằng cách xuống dòng" - _splitStrByLine: - arg1: "Văn bản" - ref: "Biến thể" - aiScriptVar: "Biển thể AiScript" - fn: "Tính năng" - _fn: - slots: "Chỗ" - slots-info: "Phân cách chỗ bằng cách xuống dòng" - arg1: "Đầu ra" - for: "để-Lặp lại" - _for: - arg1: "Số lần lặp lại" - arg2: "Hành động" - typeError: "Chỗ {slot} chấp nhận các giá trị thuộc loại \"{expect}\", nhưng giá trị được cung cấp thuộc loại \"{actual}\"!" - thereIsEmptySlot: "Chỗ {slot} đang trống!" - types: - string: "Văn bản" - number: "Số" - boolean: "Cờ" - array: "Danh sách" - stringArray: "Văn bản liệt kê" - emptySlot: "Chỗ trống" - enviromentVariables: "Biến môi trường" - pageVariables: "Biến trang" - argVariables: "Đầu vào chỗ" -_relayStatus: - requesting: "Đang chờ" - accepted: "Đã duyệt" - rejected: "Đã từ chối" -_notification: - fileUploaded: "Đã tải lên tập tin" - youGotMention: "{name} nhắc đến bạn" - youGotReply: "{name} trả lời bạn" - youGotQuote: "{name} trích dẫn tút của bạn" - youRenoted: "{name} đăng lại tút của bạn" - youGotPoll: "{name} bình chọn tút của bạn" - youGotMessagingMessageFromUser: "{name} nhắn tin cho bạn" - youGotMessagingMessageFromGroup: "Một tin nhắn trong nhóm {name}" - youWereFollowed: "đã theo dõi bạn" - youReceivedFollowRequest: "Bạn vừa có một yêu cầu theo dõi" - yourFollowRequestAccepted: "Yêu cầu theo dõi của bạn đã được chấp nhận" - youWereInvitedToGroup: "Bạn đã được mời tham gia nhóm" - pollEnded: "Cuộc bình chọn đã kết thúc" - emptyPushNotificationMessage: "Đã cập nhật thông báo đẩy" - _types: - all: "Toàn bộ" - follow: "Đang theo dõi" - mention: "Nhắc đến" - reply: "Lượt trả lời" - renote: "Đăng lại" - quote: "Trích dẫn" - reaction: "Biểu cảm" - pollVote: "Lượt bình chọn" - pollEnded: "Bình chọn kết thúc" - receiveFollowRequest: "Yêu cầu theo dõi" - followRequestAccepted: "Yêu cầu theo dõi được chấp nhận" - groupInvited: "Mời vào nhóm" - app: "Từ app liên kết" - _actions: - followBack: "đã theo dõi lại bạn" - reply: "Trả lời" - renote: "Đăng lại" -_deck: - alwaysShowMainColumn: "Luôn hiện cột chính" - columnAlign: "Căn cột" - addColumn: "Thêm cột" - configureColumn: "Cài đặt cột" - swapLeft: "Hoán đổi với cột bên trái" - swapRight: "Hoán đổi với cột bên phải" - swapUp: "Hoán đổi với cột trên" - swapDown: "Hoán đổi với cột dưới" - stackLeft: "Xếp chồng với cột bên trái" - popRight: "Xếp chồng với cột bên trái" - profile: "Hồ sơ" - newProfile: "Hồ sơ mới" - deleteProfile: "Xóa hồ sơ" - introduction: "Kết hợp các cột để tạo giao diện của riêng bạn!" - introduction2: "Bạn có thể thêm cột bất kỳ lúc nào bằng cách nhấn + ở bên phải màn hình." - widgetsIntroduction: "Chọn \"Sửa widget\" trong menu cột và thêm một widget." - _columns: - main: "Chính" - widgets: "Tiện ích" - notifications: "Thông báo" - tl: "Bảng tin" - antenna: "Trạm phát sóng" - list: "Danh sách" - mentions: "Lượt nhắc" - direct: "Nhắn riêng" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 1b6f29667..fce49faf5 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -1,19 +1,17 @@ --- _lang_: "中文(简体)" -headlineMisskey: "通过帖子连接在一起的网络" introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧!🚀" monthAndDay: "{month}月 {day}日" search: "搜索" notifications: "通知" username: "用户名" password: "密码" -forgotPassword: "忘记密码" -fetchingAsApObject: "正在联邦宇宙查询中..." +fetchingAsApObject: "联合查询中" ok: "OK" gotIt: "我明白了" cancel: "取消" enterUsername: "输入用户名" -renotedBy: "由 {user} 转贴" +renotedBy: "{user} 转贴了" noNotes: "没有帖文" noNotifications: "无通知" instance: "实例" @@ -35,9 +33,6 @@ addUser: "添加用户" favorite: "收藏" favorites: "收藏" unfavorite: "取消收藏" -favorited: "已加入收藏夹。" -alreadyFavorited: "收藏夹中已存在。" -cantFavorite: "无法添加到收藏夹。" pin: "置顶" unpin: "取消置顶" copyContent: "复制内容" @@ -51,8 +46,6 @@ copyUsername: "复制用户名" searchUser: "搜索用户" reply: "回复" loadMore: "查看更多" -showMore: "查看更多" -showLess: "关闭" youGotNewFollower: "你有新的关注者" receiveFollowRequest: "您收到了关注请求" followRequestAccepted: "您的关注请求被通过了" @@ -64,88 +57,77 @@ import: "导入" export: "导出" files: "文件" download: "下载" -driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会被删除。" +driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会消失。" unfollowConfirm: "要取消对{name}的关注吗?" -exportRequested: "导出请求已提交,这可能需要花一些时间,导出的文件将保存到网盘中。" -importRequested: "导入请求已提交,这可能需要花一点时间。" +exportRequested: "导出请求已提交。可能需要花一些时间。导出的文件将保存到网盘中。" +importRequested: "导入请求已提交。这可能需要花一点时间。" lists: "列表" noLists: "列表为空" note: "帖子" notes: "帖子" following: "关注中" followers: "关注者" -followsYou: "正在关注你" +followsYou: "关注了你" createList: "创建列表" manageLists: "管理列表" error: "错误" -somethingHappened: "出现了一些问题!" +somethingHappened: "出现了问题" retry: "重试" pageLoadError: "页面加载失败。" pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。" -serverIsDead: "服务器没有响应。 请稍等片刻,然后重试。" -youShouldUpgradeClient: "请重新加载并使用新版本的客户端查看此页面。" enterListName: "输入列表名称" privacy: "隐私" -makeFollowManuallyApprove: "关注请求需要批准" +makeFollowManuallyApprove: "关注者请求需要批准" defaultNoteVisibility: "默认可见性" follow: "关注" followRequest: "关注申请" followRequests: "关注申请" unfollow: "取消关注" -followRequestPending: "发送关注请求" +followRequestPending: "发送关注申请" enterEmoji: "输入表情符号" renote: "转发" unrenote: "取消转发" -renoted: "已转发。" -cantRenote: "该帖无法转发。" -cantReRenote: "转发无法被再次转发。" quote: "引用" pinnedNote: "已置顶的帖子" -pinned: "置顶" you: "您" clickToShow: "点击以显示" -sensitive: "敏感内容" +sensitive: "阅读注意" add: "添加" reaction: "回应" -reactionSetting: "在选择器中显示的回应" -reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。" -rememberNoteVisibility: "保存上次设置的可见性" +reactionSettingDescription: "选择您想要置顶的回应。" +reactionSettingDescription2: "通过拖动来重新排列。单击即可删除。" +rememberNoteVisibility: "记录公开范围" attachCancel: "删除附件" -markAsSensitive: "标记为敏感内容" +markAsSensitive: "阅读注意" unmarkAsSensitive: "取消标记为敏感内容" enterFileName: "请输入文件名" mute: "屏蔽" unmute: "解除屏蔽" -block: "拉黑" -unblock: "取消拉黑" +block: "屏蔽" +unblock: "取消屏蔽" suspend: "冻结" unsuspend: "解除冻结" -blockConfirm: "确定要拉黑吗?" -unblockConfirm: "确定要解除拉黑吗?" +blockConfirm: "确定要屏蔽吗?" +unblockConfirm: "确定要解除屏蔽吗?" suspendConfirm: "要冻结吗?" unsuspendConfirm: "要解除冻结吗?" selectList: "选择列表" -selectAntenna: "选择天线" +selectAntenna: "天线选择" selectWidget: "选择小工具" -editWidgets: "编辑部件" +editWidgets: "编辑小工具" editWidgetsExit: "完成编辑" -customEmojis: "自定义表情符号" +customEmojis: "自定义Emoji" emoji: "表情符号" -emojis: "表情符号" emojiName: "表情符号名称" emojiUrl: "表情符号地址" addEmoji: "添加表情符号" settingGuide: "推荐配置" cacheRemoteFiles: "远程文件缓存" cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。" -flagAsBot: "这是一个机器人账号" -flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。" -flagAsCat: "将这个账户设定为一只猫" -flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。" -flagShowTimelineReplies: "在时间线上显示帖子的回复" -flagShowTimelineRepliesDescription: "启用时,时间线除了显示用户的帖子外,还会显示其他用户对帖子的回复。" -autoAcceptFollowed: "自动允许关注者的关注" -addAccount: "添加账户" +flagAsBot: "这个账户是Bot" +flagAsCat: "这个账户是Cat" +autoAcceptFollowed: "自动允许关注" +addAcount: "添加账户" loginFailed: "登录失败" showOnRemote: "转到所在实例显示" general: "常规设置" @@ -156,14 +138,14 @@ searchWith: "搜索:{q}" youHaveNoLists: "列表为空" followConfirm: "你确定要关注{name}吗?" proxyAccount: "代理账户" -proxyAccountDescription: "代理账户是在某些情况下充当用户的远程关注者的账户。 例如,当一个用户列出一个远程用户时,如果没有人跟随该列出的用户,则该活动将不会传递到该实例,因此将代之以代理账户。" +proxyAccountDescription: "代理帐户是在某些情况下充当用户的远程关注者的帐户。 例如,当一个用户列出一个远程用户时,如果没有人跟随该列出的用户,则该活动将不会传递到该实例,因此将代之以代理帐户。" host: "主机名" selectUser: "选择用户" recipient: "收件人" annotation: "注解" federation: "联合" instances: "实例" -registeredAt: "初次观测" +registeredAt: "初次观察" latestRequestSentAt: "上次发送的请求" latestRequestReceivedAt: "上次收到的请求" latestStatus: "最后状态" @@ -172,15 +154,15 @@ charts: "图表" perHour: "每小时" perDay: "每天" stopActivityDelivery: "停止发送活动" -blockThisInstance: "阻止此实例向本实例推流" +blockThisInstance: "阻止此实例" operations: "操作" software: "软件" version: "版本" metadata: "元数据" withNFiles: "{n}个文件" -monitor: "服务器状态" +monitor: "监视器" jobQueue: "作业队列" -cpuAndMemory: "CPU和内存" +cpuAndMemory: "CPU使用量" network: "网络" disk: "存储" instanceInfo: "实例信息" @@ -193,22 +175,21 @@ clearCachedFilesConfirm: "确定要清除缓存文件?" blockedInstances: "被阻拦的实例" blockedInstancesDescription: "设定要阻拦的实例,以换行来进行分割。被阻拦的实例将无法与本实例进行交换通讯。" muteAndBlock: "屏蔽/拉黑" -mutedUsers: "已屏蔽用户" -blockedUsers: "被拉黑的用户" +mutedUsers: "禁言用户" +blockedUsers: "已屏蔽用户" noUsers: "无用户" editProfile: "编辑资料" noteDeleteConfirm: "要删除该帖子吗?" pinLimitExceeded: "无法置顶更多了" intro: "Misskey的部署结束啦!填写管理员账号吧!" done: "完成" -processing: "正在处理" +processing: "处理中" preview: "预览" default: "默认" -defaultValueIs: "默认值: {value}" noCustomEmojis: "没有自定义表情符号" noJobs: "没有任务" federating: "联合中" -blocked: "已拉黑" +blocked: "已拦截" suspended: "停止推流" all: "全部" subscribing: "已订阅" @@ -218,7 +199,7 @@ instanceFollowing: "关注实例" instanceFollowers: "关注实例" instanceUsers: "实例用户" changePassword: "修改密码" -security: "安全" +security: "安全性" retypedNotMatch: "两次输入不一致!" currentPassword: "现在的密码" newPassword: "新密码" @@ -238,25 +219,24 @@ deleteAreYouSure: "要删掉「{x}」吗?" resetAreYouSure: "恢复默认设置?" saved: "已保存" messaging: "聊天" -upload: "本地上传" -keepOriginalUploading: "保留原图" -keepOriginalUploadingDescription: "上传图片时保留原始图片。关闭时,浏览器会在上传时生成一张用于web发布的图片。" +upload: "上传" fromDrive: "从网盘中" fromUrl: "从 URL" uploadFromUrl: "从网址上传" -uploadFromUrlDescription: "输入文件的URL" +uploadFromUrlDescription: "要上传的文件的URL" uploadFromUrlRequested: "请求上传" uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。" explore: "发现" +games: "Misskey游戏" messageRead: "已读" noMoreHistory: "没有更多的历史记录" -startMessaging: "添加聊天" +startMessaging: "开始聊天" nUsersRead: "{n}人已读" -agreeTo: "勾选则表示已阅读并同意{0}" +agreeTo: "{0}人同意" tos: "服务条款" start: "开始" home: "首页" -remoteUserCaution: "由于此用户来自其它实例,显示的信息可能不完整。" +remoteUserCaution: "由于是远程用户,信息不完整。" activity: "活动" images: "图片" birthday: "生日" @@ -268,8 +248,8 @@ themeForLightMode: "在浅色模式下使用的主题" themeForDarkMode: "在深色模式下使用的主题" light: "浅色" dark: "深色" -lightThemes: "浅色主题" -darkThemes: "深色主题" +lightThemes: "亮色主题" +darkThemes: "暗色主题" syncDeviceDarkMode: "将深色模式与设备设置同步" drive: "网盘" fileName: "文件名称" @@ -283,24 +263,23 @@ createFolder: "创建文件夹" renameFolder: "重命名文件夹" deleteFolder: "删除文件夹" addFile: "添加文件" -emptyDrive: "网盘中无文件" -emptyFolder: "此文件夹中无文件" +emptyDrive: "驱动器为空" +emptyFolder: "空文件夹" unableToDelete: "无法删除" inputNewFileName: "请输入新文件名" -inputNewDescription: "请输入新标题" -inputNewFolderName: "请输入新文件夹名" +inputNewFolderName: "请输入新文件名" circularReferenceFolder: "目标文件夹是您要移动的文件夹的子文件夹。" -hasChildFilesOrFolders: "此文件夹中有文件,无法删除。" +hasChildFilesOrFolders: "此文件夹不为空,无法删除。" copyUrl: "复制链接" rename: "重命名" avatar: "头像" -banner: "横幅" -nsfw: "敏感内容" +banner: "Banner" +nsfw: "阅读注意" whenServerDisconnected: "与服务器连接中断时" -disconnectedFromServer: "已和服务器断开连接" +disconnectedFromServer: "已从服务器断开连接" reload: "重新加载" -doNothing: "关闭弹窗" -reloadConfirm: "确定要重新加载吗?" +doNothing: "什么都不做" +reloadConfirm: "确定要重新加载吗" watch: "关注" unwatch: "取消关注" accept: "允许" @@ -319,27 +298,26 @@ monthX: "{month}月" yearX: "{year}年" pages: "页面" integration: "关联" -connectService: "连接" -disconnectService: "断开连接" +connectSerice: "已连接" +disconnectSerice: "断开连接" enableLocalTimeline: "启用本地时间线功能" enableGlobalTimeline: "启用全局时间线" -disablingTimelinesInfo: "即使时间线功能被禁用,出于方便,管理员和数据图表也可以继续使用。" +disablingTimelinesInfo: "即使时间线功能被禁用,出于便利性的原因,管理员和数据图表也可以继续使用。" registration: "注册" enableRegistration: "允许新用户注册" invite: "邀请" +proxyRemoteFiles: "代理远程文件" +proxyRemoteFilesDescription: "启用此设置后,由于超出存储容量而导致未保存被删除的远程文件将被本地代理,并且会生成缩略图。不会影响服务器的存储。" driveCapacityPerLocalAccount: "每个用户的网盘空间" driveCapacityPerRemoteAccount: "每个远程用户的网盘容量" -inMb: "以兆字节(MegaByte)为单位" +inMb: "以兆字节(Mbps)为单位" iconUrl: "图标URL" -bannerUrl: "横幅URL" -backgroundImageUrl: "背景图URL" +bannerUrl: "Banner URL" basicInfo: "基本信息" pinnedUsers: "置顶用户" pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。" pinnedPages: "固定页面" pinnedPagesDescription: "输入您要固定到实例首页的页面路径,以换行符分隔。" -pinnedClipId: "置顶的便签ID" -pinnedNotes: "已置顶的帖子" hcaptcha: "hCaptcha" enableHcaptcha: "启用 hCaptcha" hcaptchaSiteKey: "网站密钥" @@ -356,13 +334,14 @@ antennaSource: "接收来源" antennaKeywords: "包含关键字" antennaExcludeKeywords: "排除关键字" antennaKeywordsDescription: "使用空格分隔会产生AND规范,并且使用换行符分隔会产生OR规范" -notifyAntenna: "开启通知" +notifyAntenna: "通知新帖子" withFileAntenna: "仅带有附件的帖子" +serviceworker: "ServiceWorker" enableServiceworker: "启用ServiceWorker" antennaUsersDescription: "指定用户名,用换行符分隔" caseSensitive: "区分大小写" withReplies: "包括回复" -connectedTo: "您的账号已连到接以下第三方账号" +connectedTo: "您的账号已连到接以下社交账号" notesAndReplies: "帖子与回复" withFiles: "附件" silence: "禁言" @@ -370,20 +349,26 @@ silenceConfirm: "确认要禁言吗?" unsilence: "解除禁言" unsilenceConfirm: "要解除禁言吗?" popularUsers: "热门用户" -recentlyUpdatedUsers: "最近投稿的用户" -recentlyRegisteredUsers: "最近登录的用户" +recentlyUpdatedUsers: "最近投稿用户" +recentlyRegisteredUsers: "最近登录用户" recentlyDiscoveredUsers: "最近发现的用户" exploreUsersCount: "有{count}个用户" -exploreFediverse: "探索联邦宇宙" +exploreFediverse: "探索Fediverse" popularTags: "热门标签" userList: "列表" about: "关于" aboutMisskey: "关于 Misskey" +aboutMisskeyText: "Misskey是由syuilo于2014年开发的开源软件。" +misskeyMembers: "现在由以下成员进行开发和维护:" +misskeySource: "源代码在这里公开:" +misskeyTranslation: "与我们一同进行Misskey的翻译工作:" +misskeyDonate: "可以向 Misskey 进行捐款以支持开发:" +morePatrons: "还有很多其他的人也在支持我们,非常感谢🥰" +patrons: "支持者" administrator: "管理员" -token: "Token (令牌)" +token: "令牌" twoStepAuthentication: "两步验证" -moderator: "监察员" -moderation: "管理" +moderator: "版主" nUsersMentioned: "{n} 被提到" securityKey: "安全密钥" securityKeyName: "密钥名称" @@ -423,8 +408,9 @@ next: "下一个" retype: "重新输入" noteOf: "{user}的帖子" inviteToGroup: "群组邀请" +maxNoteTextLength: "帖子的字数限制" quoteAttached: "已引用" -quoteQuestion: "是否引用此链接内容?" +quoteQuestion: "是否将其作为引用附上?" noMessagesYet: "现在没有新的聊天" newMessageExists: "新信息" onlyOneFileCanBeAttached: "只能添加一个附件" @@ -443,31 +429,28 @@ strongPassword: "密码强度:强" passwordMatched: "密码一致" passwordNotMatched: "密码不一致" signinWith: "以{x}登录" -signinFailed: "无法登录,请检查您的用户名和密码是否正确。" +signinFailed: "无法登录,请检查您的用户名和密码。" tapSecurityKey: "轻触硬件安全密钥" or: "或者" -language: "语言" uiLanguage: "显示语言" -groupInvited: "您有新的群组邀请" +groupInvited: "群组招待" aboutX: "关于 {x}" -useOsNativeEmojis: "使用系统的原生表情符号" -disableDrawer: "不显示抽屉菜单" +useOsNativeEmojis: "使用OS原生表情符号" youHaveNoGroups: "没有群组" joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。" noHistory: "没有历史记录" -signinHistory: "登录历史" disableAnimatedMfm: "禁用MFM动画" doing: "正在进行" category: "类别" tags: "标签" docSource: "文件来源" createAccount: "注册账户" -existingAccount: "现有的账户" +existingAcount: "现有的帐户" regenerate: "重新生成" fontSize: "字体大小" noFollowRequests: "没有关注申请" openImageInNewTab: "在新标签页中打开图片" -dashboard: "管理面板" +dashboard: "Dashboard" local: "本地" remote: "远程" total: "总计" @@ -483,14 +466,14 @@ hideThisNote: "隐藏这条帖子" showFeaturedNotesInTimeline: "在时间线上显示热门推荐" objectStorage: "对象存储" useObjectStorage: "使用对象存储" -objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "用于引用的URL。如果您正在使用CDN或反向代理,请指定其URL,例如S3:“https://.s3.amazonaws.com”,GCS:“https://storage.googleapis.com/”" +objectStorageBaseUrl: "基本网址" +objectStorageBaseUrlDesc: "URL前缀,用于构造URL到对象(媒体)的引用,如果您使用的是CDN或反向代理,请指定其URL,否则请根据您使用的服务指定可公开访问的地址。例如“https://.s3.amazonaws.com”用于AWS S3,“https://storage.googleapis.com/”用于GCS" objectStorageBucket: "存储桶" objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。" objectStoragePrefix: "前缀" objectStoragePrefixDesc: "文件将存储在此前缀的目录下。" objectStorageEndpoint: "端点" -objectStorageEndpointDesc: "如果你使用AWS S3请留空。否则请根据你使用的服务商的说明来进行设置,指定端点形式为“”或“:”。" +objectStorageEndpointDesc: "如果你希望使用AWS S3请留空。否则请根据你使用的服务来进行设置,指定端点形式为“”或“:”。" objectStorageRegion: "可用区" objectStorageRegionDesc: "指定一个可用区,例如“xx-east-1”。 如果您的对象存储服务没有可用区概念,请将其留空或填写“us-east-1”。" objectStorageUseSSL: "使用SSL" @@ -499,16 +482,15 @@ objectStorageUseProxy: "使用代理" objectStorageUseProxyDesc: "如果您不使用代理进行API连接,请将其关闭。" objectStorageSetPublicRead: "上传时设置为public-read" serverLogs: "服务器日志" -deleteAll: "全部删除" -showFixedPostForm: "在时间线顶部显示发帖框" +deleteAll: "删除全部" +showFixedPostForm: "在时间线顶部显示帖子表单" newNoteRecived: "有新的帖子" -sounds: "提示音" -listen: "试听" -none: "无" +sounds: "声音" +listen: "听" +none: "空" showInPage: "在页面中显示" popout: "弹窗" volume: "音量" -masterVolume: "主音量" details: "详情" chooseEmoji: "选择表情符号" unableToProcess: "操作无法完成" @@ -516,15 +498,15 @@ recentUsed: "最近使用" install: "安装" uninstall: "卸载" installedApps: "已授权的应用" -nothing: "没有" +nothing: "没什么" installedDate: "授权日期" lastUsedDate: "最近使用" state: "状态" sort: "排序" ascendingOrder: "升序" descendingOrder: "降序" -scratchpad: "AiScript控制台" -scratchpadDescription: "AiScript控制台为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。" +scratchpad: "便签本" +scratchpadDescription: "便签本为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。" output: "输出" script: "脚本" disablePagesScript: "禁用页面脚本" @@ -535,11 +517,10 @@ removeAllFollowing: "取消所有关注" removeAllFollowingDescription: "取消{host}的所有关注者。当实例不存在时执行。" userSuspended: "该用户已被冻结。" userSilenced: "该用户已被禁言。" -yourAccountSuspendedTitle: "账户已被冻结" -yourAccountSuspendedDescription: "由于违反了服务器的服务条款或其他原因,该账户已被冻结。 您可以与管理员联系以了解更多信息。 请不要创建一个新的账户。" -menu: "菜单" +sidebar: "侧边栏" divider: "分割线" -addItem: "添加项目" +addItem: "添加项" +rooms: "房间" relays: "中继" addRelay: "添加中继" inboxUrl: "Inbox URL" @@ -553,25 +534,20 @@ poll: "调查问卷" useCw: "隐藏内容" enablePlayer: "打开播放器" disablePlayer: "关闭播放器" -expandTweet: "展开帖子" +expandTweet: "展开推文" themeEditor: "主题编辑器" description: "描述" -describeFile: "添加标题" -enterFileDescription: "输入标题" author: "作者" leaveConfirm: "存在未保存的更改。要放弃更改吗?" manage: "管理" plugins: "插件" -preferencesBackups: "备份设置" +pluginInstallWarn: "请不要安装不明来源的插件" deck: "Deck" undeck: "取消Deck" -useBlurEffectForModal: "对话框使用模糊效果" +useBlurEffectForModal: "模态框使用模糊效果" useFullReactionPicker: "使用全功能的回应工具栏" width: "宽度" height: "高度" -large: "大" -medium: "中" -small: "小" generateAccessToken: "生成访问令牌" permission: "权限" enableAll: "启用全部" @@ -581,11 +557,10 @@ pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限" notificationType: "通知类型" edit: "编辑" useStarForReactionFallback: "如果回应的是未知表情符号,则使用★作为代替" -emailServer: "邮件服务器" +emailConfig: "邮件服务器设置" enableEmail: "启用发送邮件功能" emailConfigInfo: "用于确认电子邮件和密码重置" -email: "邮箱" -emailAddress: "电子邮件地址" +email: "邮件地址" smtpConfig: "SMTP服务器设置" smtpHost: "主机名" smtpPort: "端口" @@ -596,41 +571,33 @@ smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS" smtpSecureInfo: "使用STARTTLS时关闭。" testEmail: "邮件发送测试" wordMute: "文字屏蔽" -regexpError: "正则表达式错误" -regexpErrorDescription: "{tab} 屏蔽文字的第 {line} 行的正则表达式有错误:" -instanceMute: "实例的屏蔽" userSaysSomething: "{name}说了什么" -makeActive: "启用" +makeActive: "激活" display: "显示" copy: "复制" -metrics: "服务器监控" -overview: "服务器概况" +metrics: "指标" +overview: "概述" logs: "日志" -delayed: "滞后" +delayed: "延迟" database: "数据库" channel: "频道" create: "创建" notificationSetting: "通知设置" notificationSettingDesc: "选择要显示的通知类型。" useGlobalSetting: "使用全局设置" -useGlobalSettingDesc: "启用时,将使用账户通知设置。关闭时,则可以单独设置。" +useGlobalSettingDesc: "启用时,将使用帐户通知设置。关闭时,则可以单独设置。" other: "其他" regenerateLoginToken: "重新生成登录令牌" regenerateLoginTokenDescription: "重新生成用于登录的内部令牌。通常您不需要这样做。重新生成后,您将在所有设备上登出。" setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。" fileIdOrUrl: "文件ID或者URL" -behavior: "行为" +chatOpenBehavior: "聊天窗口打开时的行为" sample: "示例" abuseReports: "举报" reportAbuse: "举报" reportAbuseOf: "举报{name}" fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子,请同时填写URL地址。" -abuseReported: "内容已发送。感谢您提交信息。" -reporter: "举报者" -reporteeOrigin: "举报来源" -reporterOrigin: "举报者来源" -forwardReport: "将该举报信息转发给远程实例" -forwardReportIsAnonymous: "勾选则在远程实例上显示的举报者是匿名的系统账号,而不是您的账号。" +abuseReported: "内容已发送。感谢您的报告。" send: "发送" abuseMarkAsResolved: "处理完毕" openInNewTab: "在新标签页中打开" @@ -643,347 +610,15 @@ random: "随机" system: "系统" switchUi: "切换界面" desktop: "桌面" -clip: "便签" +clip: "片段" createNew: "新建" optional: "可选" -createNewClip: "新建便签" -unclip: "移除便签" -confirmToUnclipAlreadyClippedNote: "本帖已包含在便签\"{name}\"里。您想要将本帖从该便签中移除吗?" +createNewClip: "新建片段" public: "公开" -i18nInfo: "Misskey已经被志愿者们翻译成了各种语言。如果你也有兴趣,可以通过{link}帮助翻译。" -manageAccessTokens: "管理 Access Tokens" -accountInfo: "账户信息" -notesCount: "帖子数量" -repliesCount: "回复数量" -renotesCount: "转帖数量" -repliedCount: "回复数" -renotedCount: "转发数" -followingCount: "正在关注数量" -followersCount: "关注者数量" -sentReactionsCount: "发送回应数" -receivedReactionsCount: "收到回应数" -pollVotesCount: "问卷调查的投票数" -pollVotedCount: "问卷调查的被投票数" -yes: "是" -no: "否" -driveFilesCount: "网盘的文件数" -driveUsage: "网盘的空间用量" -noCrawle: "要求搜索引擎不索引该用户" -noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。" -lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。" -alwaysMarkSensitive: "默认将媒体文件标记为敏感内容" -loadRawImages: "添加附件图像的缩略图时使用原始图像质量" -disableShowingAnimatedImages: "不播放动画" -verificationEmailSent: "已发送确认电子邮件。请访问电子邮件中的链接以完成设置。" -notSet: "未设置" -emailVerified: "电子邮件地址已验证" -noteFavoritesCount: "收藏的帖子数" -pageLikesCount: "页面点赞次数" -pageLikedCount: "页面被点赞次数" -contact: "联系人" -useSystemFont: "使用系统默认字体" -clips: "便签" -experimentalFeatures: "实验性功能" -developer: "开发者" -makeExplorable: "使账号可见。" -makeExplorableDescription: "关闭时,账号不会显示在\"发现\"中。" -showGapBetweenNotesInTimeline: "时间线上的帖子分开显示。" -duplicate: "复制" -left: "左" -center: "中央" -wide: "宽" -narrow: "窄" -reloadToApplySetting: "页面刷新后设置才会生效。是否现在刷新页面?" -needReloadToApply: "重启后应用才会生效。" -showTitlebar: "显示标题栏" -clearCache: "清除缓存" -onlineUsersCount: "{n}人在线" -nUsers: "{n}用户" -nNotes: "{n}帖子" -sendErrorReports: "发送错误报告" -sendErrorReportsDescription: "启用后,如果出现问题,可以与Misskey共享详细的错误信息,从而帮助提高软件的质量。" -myTheme: "我的主题" -backgroundColor: "背景" -accentColor: "强调色" -textColor: "文本" -saveAs: "另存为" -advanced: "高级" -value: "值" -createdAt: "创建日期" -updatedAt: "更新时间" -saveConfirm: "确定保存?" -deleteConfirm: "确定删除?" -invalidValue: "无效值。" -registry: "注册表" -closeAccount: "永久注销账户" -currentVersion: "当前版本" -latestVersion: "最新版本" -youAreRunningUpToDateClient: "您所使用的客户端已经是最新的。" -newVersionOfClientAvailable: "新版本的客户端可用。" -usageAmount: "使用量" -capacity: "容量" -inUse: "已使用" -editCode: "编辑代码" -apply: "应用" -receiveAnnouncementFromInstance: "从实例接收通知" -emailNotification: "邮件通知" -publish: "发布" -inChannelSearch: "频道内搜索" -useReactionPickerForContextMenu: "单击右键打开回应工具栏" -typingUsers: "{users}正在输入" -jumpToSpecifiedDate: "跳转到特定日期" -showingPastTimeline: "显示过去的时间线" -clear: "清除" -markAllAsRead: "全部标记为已读" -goBack: "返回" -unlikeConfirm: "取消赞?" -fullView: "全屏" -quitFullView: "退出全屏" -addDescription: "添加描述" -userPagePinTip: "在帖子的菜单中选择“置顶”,即可显示该条帖子。" -notSpecifiedMentionWarning: "有未指定的提及" -info: "关于" -userInfo: "用户信息" -unknown: "未知" -onlineStatus: "在线状态" -hideOnlineStatus: "隐藏在线状态" -hideOnlineStatusDescription: "隐藏在线状态后,可能会降低搜索等功能的便利性。" -online: "在线" -active: "活动" -offline: "离线" -notRecommended: "不推荐" -botProtection: "Bot防御" -instanceBlocking: "被阻拦的实例" -selectAccount: "选择账户" -switchAccount: "切换账户" -enabled: "已启用" -disabled: "已禁用 " -quickAction: "快捷操作" -user: "用户" -administration: "管理" -accounts: "账户" -switch: "切换" -noMaintainerInformationWarning: "管理人员信息未设置。" -noBotProtectionWarning: "Bot保护未设置。" -configure: "设置" -postToGallery: "发送到图库" -gallery: "图库" -recentPosts: "最新发布" -popularPosts: "热门投稿" -shareWithNote: "在帖子中分享" -ads: "广告" -expiration: "截止时间" -memo: "便笺" -priority: "优先级" -high: "高" -middle: "中" -low: "低" -emailNotConfiguredWarning: "电子邮件地址未设置。" -ratio: "比率" -previewNoteText: "预览文本" -customCss: "自定义 CSS" -customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用!" -global: "全局" -squareAvatars: "显示方形头像图标" -sent: "发送" -received: "收取" -searchResult: "搜索结果" -hashtags: "话题标签" -troubleshooting: "故障排除" -useBlurEffect: "在UI上使用模糊效果" -learnMore: "更多信息" -misskeyUpdated: "Misskey更新完成!" -whatIsNew: "显示更新信息" -translate: "翻译" -translatedFrom: "从 {x} 翻译" -accountDeletionInProgress: "正在删除账户" -usernameInfo: "在服务器上唯一标识您的帐户的名称。您可以使用字母 (a ~ z, A ~ Z)、数字 (0 ~ 9) 和下划线 (_)。用户名以后不能更改。" -aiChanMode: "小蓝模式" -keepCw: "保留CW" -pubSub: "Pub/Sub账户" -lastCommunication: "最近通信" -resolved: "已解决" -unresolved: "未解决" -breakFollow: "移除关注者" -itsOn: "已开启" -itsOff: "已关闭" -emailRequiredForSignup: "注册账户需要电子邮件地址" -unread: "未读" -filter: "筛选" -controlPanel: "控制面板" -manageAccounts: "管理账户" -makeReactionsPublic: "将回应设置为公开" -makeReactionsPublicDescription: "将您发表过的回应设置成公开可见。" -classic: "经典" -muteThread: "屏蔽帖子列表" -unmuteThread: "取消屏蔽帖子列表" -ffVisibility: "连接的可见范围" -ffVisibilityDescription: "您可以设置您的关注/关注者信息的公开范围" -continueThread: "查看更多帖子" -deleteAccountConfirm: "将要删除账户。是否确认?" -incorrectPassword: "密码错误" -voteConfirm: "确定投给“{choice}” ?" -hide: "隐藏" -leaveGroup: "离开群组" -leaveGroupConfirm: "确定离开「{name}」?" -useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示" -welcomeBackWithName: "欢迎回来,{name}" -clickToFinishEmailVerification: "点击 [{ok}] 完成电子邮件地址认证。" -overridedDeviceKind: "设备类型" -smartphone: "智能手机" -tablet: "平板" -auto: "自动" -themeColor: "主题颜色" -size: "大小" -numberOfColumn: "列数" -searchByGoogle: "Google" -instanceDefaultLightTheme: "实例默认浅色主题" -instanceDefaultDarkTheme: "实例默认深色主题" -instanceDefaultThemeDescription: "以对象格式键入主题代码" -mutePeriod: "屏蔽期限" -indefinitely: "永久" -tenMinutes: "10分钟" -oneHour: "1小时" -oneDay: "1天" -oneWeek: "1周" -reflectMayTakeTime: "可能需要一些时间才能体现出效果。" -failedToFetchAccountInformation: "获取账户信息失败" -rateLimitExceeded: "已超過速率限制" -cropImage: "剪裁图像" -cropImageAsk: "是否要裁剪图像?" -file: "文件" -recentNHours: "最近{n}小时" -recentNDays: "最近{n}天" -noEmailServerWarning: "电子邮件服务器未设置。" -thereIsUnresolvedAbuseReportWarning: "有未解决的报告" -recommended: "推荐" -check: "检查" -driveCapOverrideLabel: "變更此用戶的雲端硬碟容量上限" -driveCapOverrideCaption: "设定为 0 以下则会解除此限制。" -requireAdminForView: "需要使用管理员账户登录才能查看。" -isSystemAccount: "该账号由系统自动创建和管理。" -typeToConfirm: "输入 {x} 以确认操作。" -deleteAccount: "删除账户" -document: "文档" -numberOfPageCache: "缓存页数" -numberOfPageCacheDescription: "设置较高的值会更方便用户,但设备的负载和内存使用量会增加。" -logoutConfirm: "是否确认登出?" -lastActiveDate: "最后活跃时间" -statusbar: "状态栏" -pleaseSelect: "请选择" -reverse: "翻转" -colored: "彩色" -refreshInterval: "刷新间隔" -label: "标签" -type: "类型" -speed: "速度" -slow: "慢" -fast: "快" -sensitiveMediaDetection: "检测到敏感媒体" -localOnly: "仅限本地" -remoteOnly: "仅远程" -failedToUpload: "上传失败" -cannotUploadBecauseInappropriate: "因为可能含有不适宜的内容,无法上传。" -cannotUploadBecauseNoFreeSpace: "因为已无可用空间,无法上传。" -beta: "测试" -enableAutoSensitive: "自动 NSFW 识别" -enableAutoSensitiveDescription: "如果可用,请使用机器学习在媒体上自动设置 NSFW 标志。即使关闭此功能,也可能会根据实例自动设置。" -activeEmailValidationDescription: "积极地验证用户的电子邮件地址,判断它是一次性的电子邮件地址,还是可以实际通信的地址。关闭时,则只检查字符串是否正确。" -navbar: "导航栏" -shuffle: "随机" -account: "账户" -move: "移动" -_sensitiveMediaDetection: - description: "可以使用机器学习技术自动检测敏感媒体,以便进行审核。服务器负载将略微增加。" - sensitivity: "检测敏感度" - sensitivityDescription: "敏感度较低,则误检(假阳性)会减少;敏感度较高,则漏检(假阴性)会减少。" - setSensitiveFlagAutomatically: "自动设置 NSFW 标签" - setSensitiveFlagAutomaticallyDescription: "即使关闭此配置,识别结果也会在内部保存。" - analyzeVideos: "启用对视频的检测" - analyzeVideosDescription: "除了静止图像之外,还对视频进行分析。服务器负载会略微增加。" -_emailUnavailable: - used: "已经被使用过" - format: "无效的格式" - disposable: "不是永久可用的地址" - mx: "邮件服务器不正确" - smtp: "邮件服务器没有响应" -_ffVisibility: - public: "发布" - followers: "只有关注你的用户能看到" - private: "私密" -_signup: - almostThere: "即将完成" - emailAddressInfo: "请输入您所使用的电子邮件地址" - emailSent: "已将确认邮件发送至您输入的电子邮件地址 ({email})。请访问电子邮件中的链接以完成帐户创建。" -_accountDelete: - accountDelete: "删除帐户" - mayTakeTime: "删除账号是一个性能损耗较大的处理,如果账号持有的内容数量和上传的文件数量较多的话,完成需要花费一段时间。" - sendEmail: "账户删除完成后,将向注册的电子邮件地址发送通知。" - requestAccountDelete: "请求删除账户" - started: "账户删除过程已开始。" - inProgress: "正在删除" -_ad: - back: "返回" - reduceFrequencyOfThisAd: "减少此广告的频率" -_forgotPassword: - enterEmail: "请输入您验证账号时用的电子邮箱地址,密码重置链接将发送至该邮箱上。" - ifNoEmail: "如果您没有使用电子邮件地址进行验证,请联系管理员。" - contactAdmin: "该实例不支持发送电子邮件。如果您想重设密码,请联系管理员。" -_gallery: - my: "我的图库" - liked: "喜欢的图片" - like: "喜欢" - unlike: "取消喜欢" -_email: - _follow: - title: "你有新的关注者" - _receiveFollowRequest: - title: "收到了关注请求" -_plugin: - install: "安装插件" - installWarn: "请不要安装不可信的插件。" - manage: "管理插件..." -_preferencesBackups: - list: "已创建的备份" - saveNew: "另存为" - loadFile: "导入文件" - apply: "应用于本设备" - save: "覆盖存档" - inputName: "请输入备份的名称" - cannotSave: "无法保存" - nameAlreadyExists: "备份名称\"{name}\"已经存在,请指定其他名称。" - applyConfirm: "您是否要将备份\"{name}\"应用到当前设备上?当前设备现有配置将被丢弃。" - saveConfirm: "您确定要覆盖保存 {name} 吗?" - deleteConfirm: "您确定要删除 {name} 吗?" - renameConfirm: "您确定要把“{old}”改为“{new}”吗?" - noBackups: "当前没有备份,“另存为”允许您在服务器上保存当前客户端的配置。" - createdAt: "创建日期:{date} {time}" - updatedAt: "更新日期:{date} {time}" - cannotLoad: "无法加载" - invalidFile: "无效的的文件格式。" -_registry: - scope: "范围" - key: "主要" - keys: "主要" - domain: "域" - createKey: "创建键" -_aboutMisskey: - about: "Misskey是由syuilo于2014年开发的开源软件。" - contributors: "主要贡献者" - allContributors: "全体贡献者" - source: "源代码" - translation: "翻译Misskey" - donate: "赞助Misskey" - morePatrons: "还有很多其他的人也在支持我们,非常感谢🥰" - patrons: "支持者" -_nsfw: - respect: "隐藏敏感内容" - ignore: "不隐藏敏感内容" - force: "总是隐藏内容" _mfm: cheatSheet: "MFM代码速查表" intro: "MFM是一种在Misskey中的各个位置使用的专用标记语言。在这里您可以看到MFM中可用的语法列表。" - dummy: "通过Misskey扩展联邦宇宙的世界" + dummy: "通过Misskey扩展Fediverse的世界" mention: "提及" mentionDescription: "可以使用 @+用户名 来指示特定用户" hashtag: "话题标签" @@ -1028,27 +663,42 @@ _mfm: twitchDescription: "显示强烈颤抖的动画效果。" spin: "动画(回转)" spinDescription: "显示回转的动画效果。" - x2: "大" - x2Description: "以大尺寸显示内容。" - x3: "非常大" - x3Description: "以更大尺寸显示内容。" - x4: "最大" - x4Description: "以最大尺寸显示内容。" - blur: "模糊" - blurDescription: "产生模糊效果。将鼠标指针放在上面即可将内容显示出来。" - font: "字体" - fontDescription: "可以设置内容所使用的字体。" - rainbow: "彩虹" - rainbowDescription: "用彩虹色来显示内容。" - sparkle: "闪光" - sparkleDescription: "添加发光粒子效果。" - rotate: "旋转" - rotateDescription: "旋转指定的角度。" - plain: "简洁" - plainDescription: "禁用所有内部语法。" +_reversi: + reversi: "黑白棋" + gameSettings: "对局设置" + chooseBoard: "棋盘选择" + blackOrWhite: "先手/后手" + blackIs: "{name}执黑(先走)" + rules: "规则" + botSettings: "机器人设置" + thisGameIsStartedSoon: "对局在几秒后开始" + waitingForOther: "等待对手准备" + waitingForMe: "等待您的准备" + waitingBoth: "请准备" + ready: "准备就绪" + cancelReady: "重新准备" + opponentTurn: "对手的会合" + myTurn: "您的回合" + turnOf: "{name}的回合" + pastTurnOf: "{name}的回合" + surrender: "认输 " + surrendered: "对手认输" + drawn: "平局" + won: "{name}获胜" + black: "黑" + white: "白" + total: "总计" + turnCount: "{count}回合" + myGames: "我的对局" + allGames: "所有对局" + ended: "结束" + playing: "对局中" + isLlotheo: "棋子较少一方获胜(LLoTheO规则)" + loopedMap: "循环棋盘" + canPutEverywhere: "可以下在任意位置" _instanceTicker: none: "不显示" - remote: "仅远程用户" + remote: "显示给远程用户" always: "始终显示" _serverDisconnectedBehavior: reload: "自动重载" @@ -1064,34 +714,25 @@ _channel: following: "正在关注" usersCount: "有{n}人参与" notesCount: "有{n}个帖子" -_menuDisplay: - sideFull: "横向" - sideIcon: "横向(图标)" - top: "顶部" +_sidebar: + full: "全部" + icon: "图标" hide: "隐藏" _wordMute: muteWords: "禁用词" muteWordsDescription: "使用空格分隔表示AND逻辑,使用换行符分隔表示OR逻辑。" muteWordsDescription2: "将关键字用斜线括起来表示正则表达式。" - softDescription: "隐藏时间线中指定条件的帖子。" - hardDescription: "防止将具有指定条件的帖子添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。" + softDescription: "隐藏时间轴中指定条件的帖文。" + hardDescription: "防止将具有指定条件的帖文添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。" soft: "软屏蔽" hard: "硬屏蔽" - mutedNotes: "被屏蔽的帖子" -_instanceMute: - instanceMuteDescription: "屏蔽配置实例中的所有帖子和转帖,包括实例的用户回复。" - instanceMuteDescription2: "设置时用换行符来分隔" - title: "隐藏实例已设置的帖子。" - heading: "屏蔽实例" + mutedNotes: "被屏蔽的帖文" _theme: explore: "寻找主题" install: "安装主题" manage: "主题管理" code: "主题代码" - description: "描述" installed: "{name} 已安装" - installedThemes: "已安装的主题" - builtinThemes: "标准主题" alreadyInstalled: "此主题已经安装" invalid: "主题格式错误" make: "制作主题" @@ -1108,8 +749,8 @@ _theme: argument: "参数" basedProp: "基于的属性名称" alpha: "不透明度" - darken: "深色" - lighten: "浅色" + darken: "暗色" + lighten: "亮色" inputConstantName: "请输入常量名称" importInfo: "您可以在此处粘贴主题代码,将其导入到编辑器中" deleteConstantConfirm: "确定要删除常量{const}吗?" @@ -1132,7 +773,7 @@ _theme: mention: "提及" mentionMe: "提及" renote: "转发" - modalBg: "对话框背景" + modalBg: "模态框背景" divider: "分割线" scrollbarHandle: "滚动条" scrollbarHandleHover: "滚动条(悬停)" @@ -1144,18 +785,18 @@ _theme: cwBg: "CW 按钮背景" cwFg: "CW 按钮文本" cwHoverBg: "CW 按钮背景(悬停)" - toastBg: "Toast通知背景" - toastFg: "Toast通知文本" + toastBg: "吐司提示背景" + toastFg: "吐司提示文本" buttonBg: "按钮背景" buttonHoverBg: "按钮背景(悬停)" inputBorder: "输入框边框" listItemHoverBg: "下拉列表项目背景(悬停)" - driveFolderBg: "网盘的文件夹背景" + driveFolderBg: "驱动器文件夹背景" wallpaperOverlay: "壁纸叠加层" badge: "徽章" messageBg: "聊天背景" - accentDarken: "强调色(深)" - accentLighten: "强调色(浅)" + accentDarken: "强调色(暗)" + accentLighten: "强调色(亮)" fgHighlighted: "高亮显示文本" _sfx: note: "帖子" @@ -1166,6 +807,7 @@ _sfx: antenna: "天线接收" channel: "频道通知" _ago: + unknown: "未知" future: "未来" justNow: "最近" secondsAgo: "{n}秒前" @@ -1207,9 +849,8 @@ _2fa: alreadyRegistered: "此设备已被注册" registerDevice: "注册设备" registerKey: "注册密钥" - step1: "首先,在您的设备上安装验证应用,例如{a}或{b}。" + step1: "首先,在您的设备上安装二步验证应用程序,例如{a}或{b}。" step2: "然后,扫描屏幕上显示的二维码。" - step2Url: "在桌面应用程序中输入以下URL:" step3: "输入您的应用提供的动态口令以完成设置。" step4: "从现在开始,任何登录操作都将要求您提供动态口令。" securityKeyInfo: "您可以设置使用支持FIDO2的硬件安全密钥、设备上的指纹或PIN来保护您的登录过程。" @@ -1242,10 +883,6 @@ _permissions: "write:user-groups": "操作用户组" "read:channels": "查看频道" "write:channels": "管理频道" - "read:gallery": "浏览图库" - "write:gallery": "操作图库" - "read:gallery-likes": "读取喜欢的图片" - "write:gallery-likes": "操作喜欢的图片" _auth: shareAccess: "您要授权允许“{name}”访问您的帐户吗?" shareAccessAsk: "您确定要授权此应用程序访问您的帐户吗?" @@ -1256,9 +893,9 @@ _auth: _antennaSources: all: "所有帖子" homeTimeline: "已关注用户的帖子" - users: "来自指定用户的帖子" - userList: "来自指定列表中的帖子" - userGroup: "来自指定群组中用户的帖子" + users: "来自特定用户的帖子" + userList: "来自特定清单中的帖子" + userGroup: "来自特定组中用户的帖子" _weekday: sunday: "星期日" monday: "星期一" @@ -1275,21 +912,11 @@ _widgets: trends: "趋势" clock: "时钟" rss: "RSS阅读器" - rssTicker: "RSS Ticker" activity: "活动" photos: "照片" digitalClock: "数字时钟" - unixClock: "UNIX时钟" federation: "联邦宇宙" - instanceCloud: "实例云" postForm: "投稿窗口" - slideshow: "幻灯片展示" - button: "按钮" - onlineUsers: "在线用户" - jobQueue: "作业队列" - serverMetric: "服务器监控" - aiscript: "AiScript控制台" - aichan: "小蓝" _cw: hide: "隐藏" show: "查看更多" @@ -1301,7 +928,7 @@ _poll: noMore: "无法再添加更多了" canMultipleVote: "允许多个投票" expiration: "截止时间" - infinite: "永久" + infinite: "无限期" at: "指定日期" after: "指定时间" deadlineDate: "截止日期" @@ -1322,7 +949,7 @@ _visibility: publicDescription: "您的帖子将出现在全局时间线上" home: "首页" homeDescription: "仅发送至首页的时间线" - followers: "仅关注者" + followers: "关注者" followersDescription: "仅发送至关注者" specified: "指定用户" specifiedDescription: "仅发送至指定用户" @@ -1340,28 +967,22 @@ _postForm: e: "请写下来吧" f: "等待您的发布..." _profile: - name: "昵称" + name: "名称" username: "用户名" description: "个人简介" youCanIncludeHashtags: "您可以包含一个哈希标签。" - metadata: "附加信息" - metadataEdit: "附加信息编辑" - metadataDescription: "最多可以在个人资料中以表格形式显示四条其他信息。" + metadata: "额外信息" metadataLabel: "标签" metadataContent: "内容" - changeAvatar: "修改头像" - changeBanner: "修改横幅" _exportOrImport: allNotes: "所有帖子" followingList: "关注中" muteList: "屏蔽" - blockingList: "拉黑" + blockingList: "屏蔽" userLists: "列表" - excludeMutingUsers: "排除屏蔽用户" - excludeInactiveUsers: "排除不活跃用户" _charts: - federation: "联合" - apRequest: "请求" + federationInstancesIncDec: "联合:增加/减少" + federationInstancesTotal: "联合总数" usersIncDec: "用户数量:增加/减少" usersTotal: "用户总数" activeUsers: "活跃用户数" @@ -1390,10 +1011,72 @@ _timelines: local: "本地" social: "社交" global: "全局" +_rooms: + roomOf: "{user}的房间" + addFurniture: "放置家具" + translate: "移动" + rotate: "旋转" + exit: "返回" + remove: "移除" + clear: "清理" + clearConfirm: "是否清除所有家具?" + leaveConfirm: "有尚未保存的修改。是否离开?" + chooseImage: "选择图片" + roomType: "房间类型" + carpetColor: "地板颜色" + _roomType: + default: "默认" + washitsu: "和式房间" + _furnitures: + milk: "牛奶纸箱" + bed: "床" + low-table: "矮桌" + desk: "书桌" + chair: "椅子" + chair2: "椅子2" + fan: "换气扇" + pc: "电脑" + plant: "观叶植物" + plant2: "观叶植物2" + eraser: "橡皮擦" + pencil: "铅笔" + pudding: "布丁" + cardboard-box: "纸箱" + cardboard-box2: "纸箱2" + cardboard-box3: "纸箱3" + book: "书" + book2: "书2" + piano: "钢琴" + facial-tissue: "纸巾盒" + server: "服务器" + moon: "月亮" + corkboard: "软木板" + mousepad: "鼠标垫" + monitor: "显示器" + keyboard: "键盘" + carpet-stripe: "地毯(条纹)" + mat: "垫子" + color-box: "收纳柜" + wall-clock: "挂钟" + photoframe: "相框" + cube: "立方体" + tv: "电视" + pinguin: "企鹅君" + rubik-cube: "魔方" + poster-h: "海报(横向)" + poster-v: "海报(纵向)" + sofa: "沙发" + spiral: "螺旋楼梯" + bin: "垃圾箱" + cup-noodle: "杯面" + holo-display: "全息显示器" + energy-drink: "能量饮料" + doll-ai: "小蓝的玩偶" + banknote: "钞票" _pages: newPage: "创建页面" editPage: "编辑页面" - readPage: "查看页面" + readPage: "查看源" created: "页面已创建" updated: "页面已更新" deleted: "该页面已被删除" @@ -1405,7 +1088,7 @@ _pages: viewSource: "查看源代码" viewPage: "查看页面" like: "赞" - unlike: "取消喜欢" + unlike: "取消赞" my: "我的页面" liked: "喜欢的页面" featured: "热门" @@ -1696,8 +1379,6 @@ _notification: youReceivedFollowRequest: "您有新的关注请求" yourFollowRequestAccepted: "您的关注请求已通过" youWereInvitedToGroup: "您有新的群组邀请" - pollEnded: "问卷调查结果已生成。" - emptyPushNotificationMessage: "推送通知已更新" _types: all: "全部" follow: "关注中" @@ -1706,35 +1387,22 @@ _notification: renote: "转发" quote: "引用" reaction: "回应" - pollVote: "问卷调查被投票" - pollEnded: "问卷调查结束" + pollVote: "问卷调查已投票" receiveFollowRequest: "收到关注请求" - followRequestAccepted: "关注请求已通过" + followRequestAccepted: "关注请求已接受" groupInvited: "加入群组邀请" app: "关联应用的通知" - _actions: - followBack: "回关" - reply: "回复" - renote: "转发" _deck: alwaysShowMainColumn: "总是显示主列" columnAlign: "列对齐" addColumn: "添加列" - configureColumn: "列设置" swapLeft: "向左移动" swapRight: "向右移动" swapUp: "向上移动" swapDown: "向下移动" stackLeft: "向左折叠" popRight: "向右弹出" - profile: "配置文件" - newProfile: "新建配置文件" - deleteProfile: "删除配置文件" - introduction: "将各列进行组合以创建您自己的界面!" - introduction2: "您可以随时通过屏幕右侧的 + 来添加列" - widgetsIntroduction: "从列菜单中,选择“小工具编辑”来添加小工具" _columns: - main: "主列" widgets: "小工具" notifications: "通知" tl: "时间线" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 3449da99a..2749fe397 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -1,20 +1,18 @@ --- _lang_: "繁體中文" -headlineMisskey: "貼文連繫網路" -introMisskey: "歡迎! Misskey是一個開放原始碼且去中心化的社群網路。\n透過「貼文」分享周邊新鮮事,並告訴其他人您的想法!📡\n透過「反應」功能,對大家的貼文表達情感!👍\n一起來探索這個新的世界吧!🚀" +introMisskey: "歡迎! Misskey是一個開源的去中心化的社群網站。\n通過「貼文」來分享現在發生的事情吧! 📡\n「反應」功能,可以讓你快速的對大家的「帖子」來表達感情👍\n一起來探索新的世界吧! 🚀" monthAndDay: "{month}月 {day}日" search: "搜尋" notifications: "通知" username: "使用者名稱" password: "密碼" -forgotPassword: "忘記密碼" -fetchingAsApObject: "從聯邦宇宙取得中..." +fetchingAsApObject: "從 Fediverse 查詢中..." ok: "OK" gotIt: "知道了" cancel: "取消" enterUsername: "輸入使用者名稱" -renotedBy: "{user} 轉傳了" -noNotes: "無貼文。" +renotedBy: "{user} 轉發了" +noNotes: "貼文不可用。" noNotifications: "沒有通知" instance: "實例" settings: "設定" @@ -32,46 +30,41 @@ uploading: "上傳中" save: "儲存" users: "使用者" addUser: "新增使用者" -favorite: "我的最愛" -favorites: "我的最愛" -unfavorite: "從我的最愛中移除" -favorited: "已添加至我的最愛" -alreadyFavorited: "我的最愛中已存在。" -cantFavorite: "無法加入至我的最愛。" +favorite: "收藏" +favorites: "已加星號" +unfavorite: "取消收藏" pin: "置頂" unpin: "取消置頂" copyContent: "複製內容" copyLink: "複製連結" delete: "刪除" deleteAndEdit: "刪除並編輯" -deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有情感、轉發和回覆也將會消失。" -addToList: "加入至清單" +deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有反應,轉發和回覆也將會消失。" +addToList: "添加至清單" sendMessage: "發送訊息" -copyUsername: "複製使用者名稱" -searchUser: "搜尋使用者" +copyUsername: "複製用戶名" +searchUser: "搜尋用戶" reply: "回覆" -loadMore: "載入更多" -showMore: "載入更多" -showLess: "關閉" +loadMore: "瀏覽更多" youGotNewFollower: "您有新的追隨者" -receiveFollowRequest: "您有新的追隨請求" +receiveFollowRequest: "收到追隨請求" followRequestAccepted: "追隨請求已接受" mention: "提及" mentions: "提及" -directNotes: "私訊" -importAndExport: "匯入與匯出" +directNotes: "私信" +importAndExport: "匯入 / 匯出" import: "匯入" export: "匯出" files: "檔案" download: "下載" -driveFileDeleteConfirm: "確定要刪除檔案「{name}」嗎?使用此附件的貼文也會跟著消失。\n" -unfollowConfirm: "確定要取消追隨{name}嗎?" +driveFileDeleteConfirm: "確定要刪除檔案「{name}」嗎?使用此附件的貼文也會跟著消失。" +unfollowConfirm: "確定要取消對{name}的追隨嗎?" exportRequested: "已請求匯出。這可能會花一點時間。結束後檔案將會被放到雲端裡。" importRequested: "已請求匯入。這可能會花一點時間" lists: "清單" -noLists: "你沒有任何清單" +noLists: "沒有清單" note: "貼文" -notes: "貼文" +notes: "筆記" following: "追隨中" followers: "追隨者" followsYou: "追隨你的人" @@ -81,35 +74,27 @@ error: "錯誤" somethingHappened: "發生錯誤" retry: "重試" pageLoadError: "載入頁面失敗" -pageLoadErrorDescription: "這通常是因為網路錯誤或是瀏覽器快取殘留的原因。請先清除瀏覽器快取,稍後再重試" -serverIsDead: "伺服器沒有回應。請稍等片刻,然後重試。" -youShouldUpgradeClient: "請重新載入以使用新版本的客戶端顯示此頁面" enterListName: "輸入清單名稱" privacy: "隱私" makeFollowManuallyApprove: "手動審核追隨請求" -defaultNoteVisibility: "預設可見性" +defaultNoteVisibility: "預設的筆記隱私權" follow: "追隨" followRequest: "追隨請求" followRequests: "追隨請求" unfollow: "取消追隨" followRequestPending: "追隨許可批准中" enterEmoji: "輸入表情符號" -renote: "轉發" -unrenote: "取消轉發" -renoted: "轉傳成功" -cantRenote: "無法轉發此貼文。" -cantReRenote: "無法轉傳之前已經轉傳過的內容。" +renote: "轉發貼文" +unrenote: "取消轉發貼文" quote: "引用" pinnedNote: "已置頂的貼文" -pinned: "置頂" you: "您" clickToShow: "按一下以顯示" sensitive: "敏感內容" add: "新增" -reaction: "情感" -reactionSetting: "在選擇器中顯示反應" -reactionSettingDescription2: "拖動以重新列序,點擊以刪除,按下 + 添加。" -rememberNoteVisibility: "記住貼文可見性" +reaction: "反應" +reactionSettingDescription: "置頂「反應」表情符號\n" +rememberNoteVisibility: "記住筆記隱私設定" attachCancel: "移除附件" markAsSensitive: "標記為敏感內容" unmarkAsSensitive: "取消標記為敏感內容" @@ -119,7 +104,7 @@ unmute: "解除靜音" block: "封鎖" unblock: "解除封鎖" suspend: "凍結" -unsuspend: "解除凍結" +unsuspend: "解凍" blockConfirm: "確定要封鎖此用戶?" unblockConfirm: "確定解除封鎖此用戶?" suspendConfirm: "確定凍結此帳號?" @@ -128,24 +113,19 @@ selectList: "選擇清單" selectAntenna: "選擇天線" selectWidget: "選擇小工具" editWidgets: "編輯小工具" -editWidgetsExit: "完成" +editWidgetsExit: "停止編輯" customEmojis: "自訂表情符號" emoji: "表情符號" -emojis: "表情符號" emojiName: "表情符號名稱" emojiUrl: "表情符號URL" -addEmoji: "加入表情符號" +addEmoji: "新增表情符號" settingGuide: "推薦設定" -cacheRemoteFiles: "快取遠端檔案" -cacheRemoteFilesDescription: "禁用此設定會停止遠端檔案的緩存,從而節省儲存空間,但資料會因直接連線從而產生額外連接數據。" +cacheRemoteFiles: "緩存非遠程檔案" +cacheRemoteFilesDescription: "禁用此設定會停止遠端檔案的緩存,從而節省儲存空間。但資料會因直接連線從而產生額外連接數據。" flagAsBot: "此使用者是機器人" -flagAsBotDescription: "如果本帳戶是由程式控制,請啟用此選項。啟用後,會作為標示幫助其他開發者防止機器人之間產生無限互動的行為,並會調整Misskey內部系統將本帳戶識別為機器人" flagAsCat: "此使用者是貓" -flagAsCatDescription: "如果想將本帳戶標示為一隻貓,請開啟此標示" -flagShowTimelineReplies: "在時間軸上顯示貼文的回覆" -flagShowTimelineRepliesDescription: "啟用時,時間線除了顯示用戶的貼文以外,還會顯示用戶對其他貼文的回覆。" -autoAcceptFollowed: "自動追隨中使用者的追隨請求" -addAccount: "添加帳戶" +autoAcceptFollowed: "自動許可追隨" +addAcount: "新增帳號" loginFailed: "登入失敗" showOnRemote: "轉到所在實例顯示" general: "一般" @@ -153,15 +133,15 @@ wallpaper: "桌布" setWallpaper: "設定桌布" removeWallpaper: "移除桌布" searchWith: "搜尋: {q}" -youHaveNoLists: "你沒有任何清單" -followConfirm: "你真的要追隨{name}嗎?" -proxyAccount: "代理帳戶" -proxyAccountDescription: "代理帳戶是在某些情況下充當其他伺服器用戶的帳戶。例如,當使用者將一個來自其他伺服器的帳戶放在列表中時,由於沒有其他使用者追蹤該帳戶,該指令不會傳送到該伺服器上,因此會由代理帳戶追蹤。" +youHaveNoLists: "沒有任何清單" +followConfirm: "你真的要關注{name}嗎?" +proxyAccount: "代理帳號" +proxyAccountDescription: "代理帳號是在某些情況下充當其他服務器用戶的帳號。例如,當用戶將一個來自其他服務器的帳號放在列表中時,由於沒有其他用戶關注該帳號,該指令不會傳送到該服務器上,因此會由代理帳戶關注。" host: "主機" selectUser: "選取使用者" -recipient: "收件人" +recipient: "發送至" annotation: "註解" -federation: "站台聯邦" +federation: "聯邦宇宙" instances: "實例" registeredAt: "初次觀測" latestRequestSentAt: "上次發送的請求" @@ -171,12 +151,11 @@ storageUsage: "已使用容量" charts: "圖表" perHour: "每小時" perDay: "每日" -stopActivityDelivery: "停止發送活動" blockThisInstance: "封鎖此實例" operations: "操作" software: "軟體" version: "版本" -metadata: "元資料" +metadata: "元資料(Metadata)" withNFiles: "{n}個檔案" monitor: "監視器" jobQueue: "佇列" @@ -187,67 +166,64 @@ instanceInfo: "實例資訊" statistics: "統計" clearQueue: "清除佇列" clearQueueConfirmTitle: "確定要清除佇列嗎?" -clearQueueConfirmText: "未發佈的貼文將不會發佈。您通常不需要確認。" +clearQueueConfirmText: "未發佈的帖子將不會發佈。您通常不需要確認。" clearCachedFiles: "清除快取資料" -clearCachedFilesConfirm: "確定要清除所有遠端暫存資料嗎?" +clearCachedFilesConfirm: "確定要清除緩存資料嗎?" blockedInstances: "已封鎖的實例" blockedInstancesDescription: "請逐行輸入需要封鎖的實例。已封鎖的實例將無法與本實例進行通訊。" -muteAndBlock: "靜音和封鎖" +muteAndBlock: "靜音/封鎖" mutedUsers: "已靜音用戶" blockedUsers: "已封鎖用戶" -noUsers: "沒有任何使用者" +noUsers: "無用戶" editProfile: "編輯個人檔案" noteDeleteConfirm: "確定刪除此貼文嗎?" -pinLimitExceeded: "不能置頂更多貼文了" -intro: "Misskey 部署完成!請建立管理員帳戶。" +pinLimitExceeded: "不能再置頂更多的貼文了" +intro: "Misskey 部署完成!請開設管理員帳號!" done: "完成" processing: "處理中" preview: "預覽" default: "預設" -defaultValueIs: "預設值:{value}" -noCustomEmojis: "沒有自訂的表情符號" +noCustomEmojis: "沒有表情符號" noJobs: "沒有任務" federating: "整合搜索中" blocked: "已封鎖" suspended: "已凍結" all: "全部" subscribing: "訂閱中" -publishing: "直播中" +publishing: "現正直播" notResponding: "沒有回應" instanceFollowing: "追蹤實例" instanceFollowers: "追蹤實例" instanceUsers: "用戶" changePassword: "修改密碼" security: "安全性" -retypedNotMatch: "兩次輸入不一致。" -currentPassword: "目前密碼" -newPassword: "新密碼" -newPasswordRetype: "確認密碼" -attachFile: "上傳附件" +retypedNotMatch: "不相符的輸入內容" +currentPassword: "現在的密碼" +newPassword: "新的密碼" +newPasswordRetype: "新的密碼(再輸入一次)" +attachFile: "添加附件" more: "更多!" featured: "精選" -usernameOrUserId: "使用者名稱或使用者ID" +usernameOrUserId: "使用者名稱或使用者 ID" noSuchUser: "使用者不存在" lookup: "查詢" announcements: "公告" imageUrl: "圖片URL" remove: "刪除" -removed: "已刪除" +removed: "成功移除" removeAreYouSure: "確定要刪掉「{x}」嗎?" deleteAreYouSure: "確定要刪掉「{x}」嗎?" -resetAreYouSure: "確定要重設嗎?" -saved: "已儲存" +saved: "已保存" messaging: "傳送訊息" upload: "上傳" -keepOriginalUploading: "保留原圖" -keepOriginalUploadingDescription: "上傳圖片時保留原始圖片。關閉時,瀏覽器會在上傳時生成一張用於web發布的圖片。" -fromDrive: "從雲端空間" +fromDrive: "從雲端" fromUrl: "從URL" uploadFromUrl: "從網址上傳" uploadFromUrlDescription: "您要上傳的文件的URL" uploadFromUrlRequested: "已請求上傳" uploadFromUrlMayTakeTime: "還需要一些時間才能完成上傳。" explore: "探索" +games: "Misskey 遊戲" messageRead: "已讀" noMoreHistory: "沒有更多歷史紀錄" startMessaging: "開始傳送訊息" @@ -256,7 +232,7 @@ agreeTo: "我同意{0}" tos: "使用條款" start: "開始" home: "首頁" -remoteUserCaution: "由於該使用者來自遠端實例,因此資訊可能非即時的。" +remoteUserCaution: "由於該用戶來自遠端實例,因此資料用戶並未即時更新。" activity: "動態" images: "圖片" birthday: "生日" @@ -265,12 +241,12 @@ registeredDate: "註冊日期" location: "位置" theme: "外觀主題" themeForLightMode: "在淺色模式下使用的主題" -themeForDarkMode: "在黑暗模式下使用的主題" +themeForDarkMode: "在深色模式下使用的主題" light: "淺色" -dark: "黑暗" +dark: "灰暗" lightThemes: "明亮主題" -darkThemes: "黑暗主題" -syncDeviceDarkMode: "將黑暗模式與設備設置同步" +darkThemes: "灰暗主題" +syncDeviceDarkMode: "將深色模式與設備設置同步" drive: "雲端硬碟" fileName: "檔案名稱" selectFile: "選擇檔案" @@ -282,64 +258,60 @@ folderName: "資料夾名稱" createFolder: "新增資料夾" renameFolder: "重新命名資料夾" deleteFolder: "刪除資料夾" -addFile: "加入附件" +addFile: "添加檔案" emptyDrive: "雲端硬碟為空" -emptyFolder: "資料夾為空" +emptyFolder: "空的資料夾" unableToDelete: "無法刪除" inputNewFileName: "輸入檔案名稱" -inputNewDescription: "請輸入新標題 " inputNewFolderName: "輸入新資料夾的名稱" circularReferenceFolder: "目標文件夾是您要移動的文件夾的子文件夾。" hasChildFilesOrFolders: "此文件夾不是空的,無法刪除。" copyUrl: "複製URL" rename: "重新命名" -avatar: "大頭貼" +avatar: "頭像" banner: "橫幅" nsfw: "敏感內容" -whenServerDisconnected: "與伺服器的連接中斷時" +whenServerDisconnected: "與服務器的連接中斷時" disconnectedFromServer: "與伺服器中斷連線" -reload: "重新整理" +reload: "重新載入" doNothing: "無視" -reloadConfirm: "確定要重新整理嗎?" +reloadConfirm: "確定要重新嘗試嗎?" watch: "關注" unwatch: "取消追隨" accept: "接受" reject: "拒絕" normal: "正常" instanceName: "實例名稱" -instanceDescription: "實例說明" +instanceDescription: "實例描述" maintainerName: "管理員名稱" -maintainerEmail: "管理員郵箱" +maintainerEmail: "管理員信箱" tosUrl: "服務條款URL" -thisYear: "本年" +thisYear: "今年" thisMonth: "本月" today: "本日" -dayX: "{day}日" +dayX: "{day}天" monthX: "{month}月" yearX: "{year}年" pages: "頁面" integration: "整合" -connectService: "己連結" -disconnectService: "己斷開 " +connectSerice: "連線" +disconnectSerice: "中斷連線" enableLocalTimeline: "開啟本地時間軸" -enableGlobalTimeline: "啟用公開時間軸" -disablingTimelinesInfo: "即使您關閉了時間線功能,管理員和協調人仍可以繼續使用,以方便您。" +enableGlobalTimeline: "開啟全球時間軸" +disablingTimelinesInfo: "即使您禁用了時間線功能,管理員和協調人仍可以繼續使用,以方便您。" registration: "註冊" -enableRegistration: "開啟新使用者註冊" +enableRegistration: "開啟新用戶註冊" invite: "邀請" -driveCapacityPerLocalAccount: "每個本地用戶的雲端空間大小" +proxyRemoteFiles: "遠端代理檔案" +proxyRemoteFilesDescription: "啟用此設置後,由於超出存儲容量而未保存或刪除的遠程文件將被本地代理,並且將生成預覽圖。這不影響服務器的存儲。" +driveCapacityPerLocalAccount: "每個本地用戶的雲端容量" driveCapacityPerRemoteAccount: "每個非本地用戶的雲端容量" inMb: "以Mbps為單位" iconUrl: "圖像URL" -bannerUrl: "橫幅圖像URL" -backgroundImageUrl: "背景圖片的來源網址 " +bannerUrl: "橫幅圖片URL" basicInfo: "基本資訊" pinnedUsers: "置頂用戶" -pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的使用者。" -pinnedPages: "釘選頁面" -pinnedPagesDescription: "輸入要固定至實例首頁的頁面路徑,以換行符分隔。" -pinnedClipId: "置頂的摘錄ID" -pinnedNotes: "已置頂的貼文" +pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的用戶。" hcaptcha: "hCaptcha" enableHcaptcha: "啟用 hCaptcha" hcaptchaSiteKey: "網站金鑰" @@ -348,7 +320,7 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "啟用 reCAPTCHA" recaptchaSiteKey: "網站金鑰" recaptchaSecretKey: "金鑰" -avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要關閉其他驗證方式嗎?您可以按“取消”保留多種驗證方式。" +avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要禁用其他驗證方式嗎?您可以按“取消”保留多種驗證方式。" antennas: "天線" manageAntennas: "管理天線" name: "名稱" @@ -356,40 +328,46 @@ antennaSource: "接收來源" antennaKeywords: "包含關鍵字" antennaExcludeKeywords: "排除關鍵字" antennaKeywordsDescription: "用空格分隔指定AND、用換行符分隔指定OR" -notifyAntenna: "通知有新貼文" -withFileAntenna: "僅帶有附件的貼文" +notifyAntenna: "通知我有新的貼文" +serviceworker: "ServiceWorker" enableServiceworker: "開啟 ServiceWorker" antennaUsersDescription: "指定用換行符分隔的用戶名" caseSensitive: "區分大小寫" withReplies: "包含回覆" -connectedTo: "您的帳戶已連接到以下社交帳戶" +connectedTo: "您的帳號已連接到以下社交帳號" notesAndReplies: "貼文與回覆" withFiles: "附件" silence: "禁言" silenceConfirm: "確定要禁言此用戶嗎?" unsilence: "解除禁言" unsilenceConfirm: "確定要解除禁言嗎?" -popularUsers: "熱門使用者" -recentlyUpdatedUsers: "最近發文的使用者" -recentlyRegisteredUsers: "新加入使用者" -recentlyDiscoveredUsers: "最近發現的使用者" -exploreUsersCount: "有{count}個使用者" +popularUsers: "熱門用戶" +recentlyUpdatedUsers: "最近發文的用戶" +recentlyRegisteredUsers: "新加入用戶" +recentlyDiscoveredUsers: "最近發現的用戶" +exploreUsersCount: "有{count}個用戶" exploreFediverse: "探索聯邦世界" popularTags: "熱門標籤" userList: "清單" about: "資訊" aboutMisskey: "關於 Misskey" +aboutMisskeyText: "Misskey是由syuilo於2014年開發的開放源代碼軟件。" +misskeyMembers: "現在由以下成員開發及維護:" +misskeySource: "源代碼在這裡公開:" +misskeyTranslation: "幫助我們為Misskey的翻譯工作出一分力:" +misskeyDonate: "向Misskey捐款以支援我們開發工作:" +morePatrons: "感激你們的支持、 幫助。 🥰" +patrons: "贊助者" administrator: "管理員" -token: "權杖" -twoStepAuthentication: "兩階段驗證" +token: "令牌" +twoStepAuthentication: "雙重身份驗證" moderator: "板主" -moderation: "言論調節" nUsersMentioned: "提到了{n}" securityKey: "安全金鑰" securityKeyName: "金鑰名稱" registerSecurityKey: "註冊安全金鑰" -lastUsed: "上次使用" -unregister: "註銷帳號" +lastUsed: "最後活躍時間" +unregister: "刪除賬戶" passwordLessLogin: "設置無密碼登入" resetPassword: "重置密碼" newPasswordIs: "新密碼為「{password}」" @@ -414,7 +392,7 @@ invites: "邀請" groupName: "群組名稱" members: "成員" transfer: "轉讓" -messagingWithUser: "傳送訊息給其他使用者" +messagingWithUser: "傳送訊息給其他用戶" messagingWithGroup: "發送訊息至群組" title: "標題" text: "文字" @@ -423,11 +401,12 @@ next: "下一步" retype: "重新輸入" noteOf: "{user}的貼文" inviteToGroup: "邀請至群組" +maxNoteTextLength: "貼文的字數限制" quoteAttached: "引用" quoteQuestion: "是否要引用?" noMessagesYet: "沒有訊息" newMessageExists: "有新的訊息" -onlyOneFileCanBeAttached: "只能加入一個附件" +onlyOneFileCanBeAttached: "只能添加一個附件" signinRequired: "請先登入" invitations: "邀請" invitationCode: "邀請碼" @@ -439,35 +418,30 @@ tooShort: "過短" tooLong: "過長" weakPassword: "密碼強度過弱" normalPassword: "密碼強度普通" -strongPassword: "密碼強度高" +strongPassword: "密碼強度堅強" passwordMatched: "密碼一致" passwordNotMatched: "密碼不一致" signinWith: "以{x}登錄" -signinFailed: "登入失敗。 請檢查使用者名稱和密碼。" +signinFailed: "登入失敗。 請檢查用戶名和密碼。" tapSecurityKey: "點擊安全密鑰" or: "或者" -language: "語言" uiLanguage: "介面語言" groupInvited: "您有新的群組邀請" aboutX: "關於{x}" useOsNativeEmojis: "使用OS原生表情符號" -disableDrawer: "不顯示下拉式選單" youHaveNoGroups: "找不到群組" joinOrCreateGroup: "請加入現有群組,或創建新群組。" noHistory: "沒有歷史紀錄" -signinHistory: "登入歷史" disableAnimatedMfm: "禁用MFM動畫" doing: "正在進行" category: "類別" tags: "標籤" docSource: "文件來源" createAccount: "建立帳戶" -existingAccount: "現有帳戶" +existingAcount: "現有帳戶" regenerate: "再生" fontSize: "字體大小" -noFollowRequests: "沒有要求跟隨您的申請" openImageInNewTab: "於新分頁中開啟圖片" -dashboard: "儀表板" local: "本地" remote: "遠端" total: "合計" @@ -475,42 +449,28 @@ weekOverWeekChanges: "與上週相比" dayOverDayChanges: "與前一日相比" appearance: "外觀" clientSettings: "用戶端設定" -accountSettings: "帳戶設定" -promotion: "推廣" +accountSettings: "帳號設定" +promotion: "推廣貼文" promote: "推廣" numberOfDays: "有效天數" hideThisNote: "隱藏此貼文" showFeaturedNotesInTimeline: "在時間軸上顯示熱門推薦" -objectStorage: "Object Storage (物件儲存)" -useObjectStorage: "使用Object Storage" objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "引用時的URL。如果您使用的是CDN或反向代理,请指定其URL,例如S3:“https://.s3.amazonaws.com”,GCS:“https://storage.googleapis.com/”" objectStorageBucket: "儲存空間(Bucket)" -objectStorageBucketDesc: "請指定您正在使用的服務的存儲桶名稱。 " objectStoragePrefix: "前綴" -objectStoragePrefixDesc: "它存儲在此前綴目錄下。" -objectStorageEndpoint: "端點(Endpoint)" -objectStorageEndpointDesc: "如要使用AWS S3,請留空。否則請依照你使用的服務商的說明書進行設定,以''或 ':'的形式設定端點(Endpoint)。" +objectStorageEndpoint: "訪問網域名稱(Endpoint)" +objectStorageEndpointDesc: "如要使用AWS S3,請留空。否則請根據伺服器要求以''或 ':'的形式設定訪問網域名稱(Endpoint)。" objectStorageRegion: "地域(Region)" -objectStorageRegionDesc: "指定一個分區,例如“xx-east-1”。 如果您使用的服務沒有分區的概念,請留空或填寫“us-east-1”。" objectStorageUseSSL: "使用SSL" -objectStorageUseSSLDesc: "如果不使用https進行API連接,請關閉" objectStorageUseProxy: "使用網路代理" -objectStorageUseProxyDesc: "如果不使用代理進行API連接,請關閉" -objectStorageSetPublicRead: "上傳時設定為\"public-read\"" serverLogs: "伺服器日誌" deleteAll: "刪除所有記錄" -showFixedPostForm: "於時間軸頁頂顯示「發送貼文」方框" -newNoteRecived: "發現新的貼文" sounds: "音效" -listen: "聆聽" none: "無" showInPage: "在頁面中顯示" -popout: "彈出型窗口" volume: "音量" -masterVolume: "主音量" details: "詳細資訊" -chooseEmoji: "選擇您的表情符號" +chooseEmoji: "選擇您的表情符號\n" unableToProcess: "操作無法完成" recentUsed: "最近使用" install: "安裝" @@ -524,31 +484,27 @@ sort: "排序" ascendingOrder: "昇冪" descendingOrder: "降冪" scratchpad: "暫存記憶體" -scratchpadDescription: "AiScript控制台為AiScript提供了實驗環境。您可以在此編寫、執行和確認代碼與Misskey互動的结果。" output: "輸出" script: "腳本" -disablePagesScript: "停用頁面的AiScript腳本" -updateRemoteUser: "更新遠端使用者資訊" +updateRemoteUser: "更新非本地用戶資料" deleteAllFiles: "刪除所有檔案" -deleteAllFilesConfirm: "要删除所有檔案嗎?" -removeAllFollowing: "解除所有追蹤" -removeAllFollowingDescription: "解除{host}所有的追蹤。在實例不再存在時執行。" -userSuspended: "該使用者已被停用" +deleteAllFilesConfirm: "要删除所有檔案吗?" +removeAllFollowing: "解除所有追隨" +userSuspended: "該用戶已被凍結" userSilenced: "該用戶已被禁言。" -yourAccountSuspendedTitle: "帳戶已被凍結" -yourAccountSuspendedDescription: "由於違反了伺服器的服務條款或其他原因,該帳戶已被凍結。 您可以與管理員連繫以了解更多訊息。 請不要創建一個新的帳戶。" -menu: "選單" +sidebar: "側邊列" divider: "分割線" addItem: "新增項目" +rooms: "房間" relays: "中繼" -addRelay: "新增中繼" -inboxUrl: "收件夾URL" -addedRelays: "已加入的中繼" +addRelay: "添加中繼" +inboxUrl: "私信URL" +addedRelays: "已添加的中繼" serviceworkerInfo: "您需要啟用推送通知" deletedNote: "已删除的貼文" -invisibleNote: "隱藏的貼文" +invisibleNote: "隱藏的帖子" enableInfiniteScroll: "啟用自動滾動頁面模式" -visibility: "可見性" +visibility: "公開範圍" poll: "投票" useCw: "隱藏內容" enablePlayer: "打開播放器" @@ -556,51 +512,34 @@ disablePlayer: "關閉播放器" expandTweet: "展開推文" themeEditor: "主題編輯器" description: "描述" -describeFile: "添加標題 " -enterFileDescription: "輸入標題 " author: "作者" leaveConfirm: "有未保存的更改。要放棄嗎?" manage: "管理" -plugins: "外掛" -preferencesBackups: "備份設定檔" +plugins: "插件" +pluginInstallWarn: "請不要安裝來源不明的插件。" deck: "多欄模式" undeck: "取消多欄模式" -useBlurEffectForModal: "在模態框使用模糊效果" -useFullReactionPicker: "使用全尺寸的反應選擇器" width: "寬度" height: "高度" -large: "大" -medium: "中" -small: "小" -generateAccessToken: "發行存取權杖" permission: "權限" enableAll: "啟用全部" disableAll: "停用全部" -tokenRequested: "允許存取帳戶" -pluginTokenRequestedDescription: "此外掛將擁有在此設定的權限。" +tokenRequested: "允許訪問帳號" notificationType: "通知形式" edit: "編輯" useStarForReactionFallback: "以★代替未知的表情符號" -emailServer: "電郵伺服器" +emailConfig: "電子郵件伺服器設定" enableEmail: "啟用發送電郵功能" emailConfigInfo: "用於確認電郵地址及密碼重置" -email: "電子郵件" -emailAddress: "電郵地址" +email: "電郵地址" smtpConfig: "SMTP伺服器設定" smtpHost: "主機" -smtpPort: "埠" +smtpPort: "端口" smtpUser: "使用者名稱" smtpPass: "密碼" -emptyToDisableSmtpAuth: "留空使用者名稱和密碼以關閉SMTP驗證。" -smtpSecure: "在 SMTP 連接中使用隱式 SSL/TLS" -smtpSecureInfo: "使用STARTTLS時關閉。" -testEmail: "測試郵件發送" -wordMute: "被靜音的文字" -regexpError: "正規表達式錯誤" -regexpErrorDescription: "{tab} 靜音文字的第 {line} 行的正規表達式有錯誤:" -instanceMute: "實例的靜音" -userSaysSomething: "{name}說了什麼" -makeActive: "啟用" +emptyToDisableSmtpAuth: "留空使用者名稱和密碼以禁用SMTP驗證。" +testEmail: "郵件測試發送" +wordMute: "靜音文字" display: "檢視" copy: "複製" metrics: "指標" @@ -611,561 +550,93 @@ database: "資料庫" channel: "頻道" create: "新增" notificationSetting: "通知設定" -notificationSettingDesc: "選擇顯示通知的類型" -useGlobalSetting: "使用全域設定" -useGlobalSettingDesc: "啟用時,將使用帳戶通知設定。停用時,則可以單獨設定。" other: "其他" -regenerateLoginToken: "重新產生登入權杖" -regenerateLoginTokenDescription: "重新產生用於登入的內部權杖。一般情況下是不需要這樣做的。一旦重產,所有裝置將會被登出。" -setMultipleBySeparatingWithSpace: "您可以使用空格分隔多個項目。" -fileIdOrUrl: "檔案ID或URL" -behavior: "行為" -sample: "範例" +regenerateLoginTokenDescription: "再生用於登入的內部權杖。一般情況下是不需要這樣做的。一旦再生,所有裝置將會被登出。" +sample: "範例 " abuseReports: "檢舉" reportAbuse: "檢舉" reportAbuseOf: "檢舉{name}" -fillAbuseReportDescription: "請填寫檢舉的詳細理由。可以的話,請附上針對的URL網址。" -abuseReported: "回報已送出。感謝您的報告。" -reporter: "檢舉者" -reporteeOrigin: "檢舉來源" -reporterOrigin: "檢舉者來源" -forwardReport: "將報告轉送給遠端實例" -forwardReportIsAnonymous: "在遠端實例上看不到您的資訊,顯示的報告者是匿名的系统帳戶。" send: "發送" -abuseMarkAsResolved: "處理完畢" openInNewTab: "在新分頁中開啟" -openInSideView: "在側欄中開啟" -defaultNavigationBehaviour: "默認導航" -editTheseSettingsMayBreakAccount: "修改這些設定可能會毀損您的帳戶" -instanceTicker: "貼文的實例來源" -waitingFor: "等待{x}" random: "隨機" system: "系統" -switchUi: "切換界面" -desktop: "桌面" -clip: "摘錄" -createNew: "新建" -optional: "可選" -createNewClip: "建立新摘錄" -unclip: "解除摘錄" -confirmToUnclipAlreadyClippedNote: "此貼文已包含在摘錄「{name}」中。 你想將貼文從這個摘錄中排除嗎?" public: "公開" -i18nInfo: "Misskey已經被志願者們翻譯成各種語言版本,如果想要幫忙的話,可以進入{link}幫助翻譯。" -manageAccessTokens: "管理存取權杖" -accountInfo: "帳戶資訊" -notesCount: "貼文數量" -repliesCount: "回覆數量" -renotesCount: "轉發數量" -repliedCount: "回覆數量" -renotedCount: "轉發次數" -followingCount: "正在跟隨的用戶數量" -followersCount: "跟隨者數量" -sentReactionsCount: "情感發送次數" -receivedReactionsCount: "情感收到次數" -pollVotesCount: "已統計的投票數" -pollVotedCount: "已投票數" -yes: "確定" -no: "取消" -driveFilesCount: "雲端硬碟檔案數量" -driveUsage: "雲端硬碟使用量" -noCrawle: "拒絕搜尋引擎索引" -noCrawleDescription: "要求網路搜尋引擎不要索引你的個人資料頁、貼文及頁面等。" -lockedAccountInfo: "即使你通過了追隨者請求,除非你將貼文的可見性設定為 「追隨者」,否則任何人都能看見你的貼文。" -alwaysMarkSensitive: "默認將圖像/影像標記為敏感內容" -loadRawImages: "以原始圖檔顯示附件圖檔的縮圖" -disableShowingAnimatedImages: "不播放動態圖檔" -verificationEmailSent: "已發送驗證電子郵件。請點擊進入電子郵件中的鏈接完成驗證。" -notSet: "未設定" -emailVerified: "已成功驗證您的電郵" -noteFavoritesCount: "我的最愛貼文的數目" -pageLikesCount: "頁面被按讚次數" -pageLikedCount: "頁面被按讚次數" -contact: "聯絡人" -useSystemFont: "使用系統預設的字型" -clips: "摘錄" -experimentalFeatures: "實驗中的功能" -developer: "開發者" -makeExplorable: "使自己的帳戶能夠在“探索”頁面中顯示" -makeExplorableDescription: "如果關閉,帳戶將不會被顯示在\"探索\"頁面中。" -showGapBetweenNotesInTimeline: "分開顯示時間線上的貼文。" -duplicate: "複製" -left: "左" -center: "置中" -wide: "寬" -narrow: "窄" -reloadToApplySetting: "設定將會在頁面重新載入之後生效。要現在就重載頁面嗎?" -needReloadToApply: "必須重新載入才會生效。" -showTitlebar: "顯示標題列" -clearCache: "清除快取資料" -onlineUsersCount: "{n}人正在線上" -nUsers: "{n}用戶" -nNotes: "{n}貼文" -sendErrorReports: "傳送錯誤報告" -sendErrorReportsDescription: "啟用後,問題報告將傳送至開發者以提升軟體品質。問題報告可能包括OS版本,瀏覽器類型,行為歷史記錄等。" -myTheme: "我的佈景主題" -backgroundColor: "背景" -accentColor: "重點色彩" -textColor: "文字" -saveAs: "另存為..." -advanced: "進階" -value: "數值" -createdAt: "建立於" -updatedAt: "最後更新" -saveConfirm: "您要儲存變更嗎?" -deleteConfirm: "你確定要刪除嗎?" -invalidValue: "輸入值無效。" -registry: "登錄表" -closeAccount: "停用帳戶" -currentVersion: "目前版本" -latestVersion: "最新版本" -youAreRunningUpToDateClient: "您所使用的用戶端已經是最新的。" -newVersionOfClientAvailable: "新版本的用戶端可用。" -usageAmount: "使用量" -capacity: "容量" -inUse: "已使用" -editCode: "編輯代碼" -apply: "套用" -receiveAnnouncementFromInstance: "接收由本實例發出的電郵通知" -emailNotification: "郵件通知" -publish: "發佈" -inChannelSearch: "頻道内搜尋" -useReactionPickerForContextMenu: "點擊右鍵開啟反應工具欄" -typingUsers: "{users}輸入中..." -jumpToSpecifiedDate: "跳轉到特定日期" -showingPastTimeline: "顯示過往的時間線" -clear: "清除" -markAllAsRead: "全部標示為已讀" -goBack: "返回" -unlikeConfirm: "要取消按讚嗎?" -fullView: "全熒幕顯示" -quitFullView: "退出全熒幕顯示" -addDescription: "添加描述" -userPagePinTip: "在貼文的選單中選擇\"置頂\",即可置頂該貼文至您的個人檔案頁面。" -notSpecifiedMentionWarning: "此貼文有未指定的提及" -info: "資訊" -userInfo: "用戶資料" -unknown: "未知" -onlineStatus: "在線狀態" -hideOnlineStatus: "隱藏在線狀態" -hideOnlineStatusDescription: "隱藏在線狀態後,可能會降低檢索等功能的便利性。" -online: "線上" -active: "最近活躍" -offline: "離線" -notRecommended: "不推薦" -botProtection: "Bot防護" -instanceBlocking: "已封鎖的實例" -selectAccount: "選擇帳戶" -switchAccount: "切換帳戶" -enabled: "已啟用" -disabled: "已停用" -quickAction: "快捷操作" -user: "使用者" -administration: "管理" -accounts: "帳戶" -switch: "切換" -noMaintainerInformationWarning: "尚未設定管理員信息。" -noBotProtectionWarning: "尚未設定Bot防護。" -configure: "設定" -postToGallery: "發佈到相簿" -gallery: "相簿" -recentPosts: "最新貼文" -popularPosts: "熱門的貼文" -shareWithNote: "在貼文中分享" -ads: "廣告" -expiration: "期限" -memo: "備忘錄" -priority: "優先級" -high: "高" -middle: "中" -low: "低" -emailNotConfiguredWarning: "沒有設定電子郵件地址" -ratio: "%" -previewNoteText: "預覽文本" -customCss: "自定義 CSS" -customCssWarn: "這個設定必須由具備相關知識的人員操作,不當的設定可能导致客戶端無法正常使用。" -global: "公開" -squareAvatars: "頭像以方形顯示" -sent: "發送" -received: "收取" -searchResult: "搜尋結果" -hashtags: "#tag" -troubleshooting: "故障排除" -useBlurEffect: "在 UI 上使用模糊效果" -learnMore: "更多資訊" -misskeyUpdated: "Misskey 更新完成!" -whatIsNew: "顯示更新資訊" -translate: "翻譯" -translatedFrom: "從 {x} 翻譯" -accountDeletionInProgress: "正在刪除帳戶" -usernameInfo: "在伺服器上您的帳戶是唯一的識別名稱。您可以使用字母 (a ~ z, A ~ Z)、數字 (0 ~ 9) 和下底線 (_)。之後帳戶名是不能更改的。" -aiChanMode: "小藍模式" -keepCw: "保持CW" -pubSub: "Pub/Sub 帳戶" -lastCommunication: "最近的通信" -resolved: "已解決" -unresolved: "未解決" -breakFollow: "移除追蹤者" -itsOn: "已開啟" -itsOff: "已關閉" -emailRequiredForSignup: "註冊帳戶需要電子郵件地址" -unread: "未讀" -filter: "篩選" -controlPanel: "控制台" -manageAccounts: "管理帳戶" -makeReactionsPublic: "將反應設為公開" -makeReactionsPublicDescription: "將您做過的反應設為公開可見。" -classic: "經典" -muteThread: "將貼文串設為靜音" -unmuteThread: "將貼文串的靜音解除" -ffVisibility: "連接的公開範圍" -ffVisibilityDescription: "您可以設定您的關注/關注者資訊的公開範圍" -continueThread: "查看更多貼文" -deleteAccountConfirm: "將要刪除帳戶。是否確定?" -incorrectPassword: "密碼錯誤。" -voteConfirm: "確定投給「{choice}」?" -hide: "隱藏" -leaveGroup: "離開群組" -leaveGroupConfirm: "確定離開「{name}」?" -useDrawerReactionPickerForMobile: "在移動設備上使用抽屜顯示" -welcomeBackWithName: "歡迎回來,{name}" -clickToFinishEmailVerification: "點擊 [{ok}] 完成電子郵件地址認證。" -overridedDeviceKind: "裝置類型" -smartphone: "智慧型手機" -tablet: "平板" -auto: "自動" -themeColor: "主題顏色" -size: "大小" -numberOfColumn: "列數" -searchByGoogle: "搜尋" -instanceDefaultLightTheme: "實例預設的淺色主題" -instanceDefaultDarkTheme: "實例預設的深色主題" -instanceDefaultThemeDescription: "輸入物件形式的主题代碼" -mutePeriod: "靜音的期限" -indefinitely: "無期限" -tenMinutes: "10分鐘" -oneHour: "1小時" -oneDay: "1天" -oneWeek: "1週" -reflectMayTakeTime: "可能需要一些時間才會出現效果。" -failedToFetchAccountInformation: "取得帳戶資訊失敗" -rateLimitExceeded: "已超過速率限制" -cropImage: "圖片裁剪" -cropImageAsk: "要剪裁圖片嗎?" -file: "檔案" -recentNHours: "過去{n}小時" -recentNDays: "過去{n}天" -noEmailServerWarning: "尚未設定電子郵件伺服器。" -thereIsUnresolvedAbuseReportWarning: "有尚未處理的檢舉。" -recommended: "推薦" -check: "檢查" -driveCapOverrideLabel: "更改這個使用者的雲端硬碟容量上限" -driveCapOverrideCaption: "如果指定0以下的值,就會被取消。" -requireAdminForView: "必須以管理者帳號登入才可以檢視。" -isSystemAccount: "由系統自動建立與管理的帳號。" -typeToConfirm: "要執行這項操作,請輸入 {x} " -deleteAccount: "刪除帳號" -document: "文件" -numberOfPageCache: "快取頁面數" -numberOfPageCacheDescription: "增加數量會提高便利性,但也會增加負荷與記憶體使用量。" -logoutConfirm: "確定要登出嗎?" -lastActiveDate: "上次使用日期及時間" -statusbar: "狀態列" -pleaseSelect: "請選擇" -reverse: "翻轉" -colored: "彩色" -refreshInterval: "更新間隔" -label: "標籤" -type: "類型" -speed: "速度" -slow: "慢" -fast: "快" -sensitiveMediaDetection: "敏感性媒體的檢測" -localOnly: "僅限本地" -remoteOnly: "僅限遠端" -failedToUpload: "上傳失敗" -cannotUploadBecauseInappropriate: "由於判定可能包含不適當的內容,因此無法上傳。" -cannotUploadBecauseNoFreeSpace: "由於雲端硬碟沒有可用空間,因此無法上傳。" -beta: "Beta" -enableAutoSensitive: "自動NSFW判定" -enableAutoSensitiveDescription: "如果可用,請利用機器學習在媒體上自動設置 NSFW 旗標。 即使關閉此功能,依實例而定也可能會自動設置。" -activeEmailValidationDescription: "積極地驗證用戶的電子郵件地址,判斷它是否為免洗地址,或者它是否可以通信。 若關閉,則只會檢查字元是否正確。" -navbar: "導覽列" -shuffle: "隨機" -account: "帳戶" -move: "移動 " -_sensitiveMediaDetection: - description: "您可以使用機器學習自動檢測敏感媒體並將其用於審核。 伺服器的負荷會稍微增加。" - sensitivity: "檢測敏感度" - sensitivityDescription: "敏感度低時,誤檢測(偽陽性)會減少。敏感度高時,漏檢(偽陰性)會減少。" - setSensitiveFlagAutomatically: "設定 NSFW 旗標" - setSensitiveFlagAutomaticallyDescription: "即使將此設定關閉,判定結果也會保留在內部。" - analyzeVideos: "啟用影片分析" - analyzeVideosDescription: "除了靜止影像以外,也分析影片。伺服器的負荷會稍微增加。" -_emailUnavailable: - used: "已經在使用中" - format: "格式無效" - disposable: "不是永久可用的地址" - mx: "郵件伺服器不正確" - smtp: "郵件伺服器沒有應答" -_ffVisibility: - public: "發佈" - followers: "只有關注你的用戶能看到" - private: "私密" -_signup: - almostThere: "即將完成" - emailAddressInfo: "請輸入您所使用的電子郵件地址。電子郵件地址不會被公開。" - emailSent: "已將確認郵件發送至您輸入的電子郵件地址 ({email})。請開啟電子郵件中的連結以完成帳戶創建。" -_accountDelete: - accountDelete: "刪除帳戶" - mayTakeTime: "刪除帳戶的處理負荷較大,如果帳戶產生的內容數量上傳的檔案數量較多的話,就需要花费一段時間才能完成。" - sendEmail: "帳戶删除完成後,將向註冊地電子郵件地址發送通知。" - requestAccountDelete: "刪除帳戶請求" - started: "已開始刪除作業。" - inProgress: "正在刪除" -_ad: - back: "返回" - reduceFrequencyOfThisAd: "降低此廣告的頻率 " -_forgotPassword: - enterEmail: "請輸入您的帳戶註冊的電子郵件地址。 密碼重置連結將被發送到該電子郵件地址。" - ifNoEmail: "如果您還沒有註冊您的電子郵件地址,請聯繫管理員。 " - contactAdmin: "此實例不支持電子郵件,請聯繫您的管理員重置您的密碼。 " -_gallery: - my: "我的貼文" - liked: "喜歡的貼文" - like: "讚" - unlike: "收回喜歡" -_email: - _follow: - title: "您有新的追隨者" - _receiveFollowRequest: - title: "收到追隨請求" -_plugin: - install: "安裝外掛組件" - installWarn: "請不要安裝來源不明的外掛組件。" - manage: "管理外掛" -_preferencesBackups: - list: "已備份的設定檔" - saveNew: "另存新檔" - loadFile: "讀取檔案" - apply: "套用在此裝置" - save: "覆蓋存檔" - inputName: "輸入備份檔名稱" - cannotSave: "無法儲存" - nameAlreadyExists: "備份檔名稱「{name}」已經存在。請指定不同的名稱。" - applyConfirm: "將備份檔「{name}」套用在現在的裝置嗎?現在的裝置設定將會消失。" - saveConfirm: "要覆蓋存檔{name}嗎?" - deleteConfirm: "要刪除{name}嗎?" - renameConfirm: "要將「{old}」變更為「{new}」嗎?" - noBackups: "沒有備份檔。您可以用「另存新檔」將現在的客戶端設定儲存在伺服器上。" - createdAt: "建立日期:{date} {time}" - updatedAt: "更新日期:{date} {time}" - cannotLoad: "無法讀取" - invalidFile: "檔案形式錯誤。" -_registry: - scope: "範圍" - key: "機碼" - keys: "機碼" - domain: "域" - createKey: "新增機碼" -_aboutMisskey: - about: "Misskey是由syuilo自2014年起開發的開源軟體。" - contributors: "主要貢獻者" - allContributors: "全體貢獻人員" - source: "原始碼" - translation: "翻譯Misskey" - donate: "贊助Misskey" - morePatrons: "還有許許多多幫助我們的其他人,非常感謝你們。 🥰" - patrons: "贊助者" -_nsfw: - respect: "隱藏敏感內容" - ignore: "不隱藏敏感內容" - force: "隱藏所有內容" _mfm: - cheatSheet: "MFM代碼小抄" - intro: "MFM是Misskey專用的標記語言,可以在Misskey中的各個位置使用。 您可以這裏看到MFM可用語法列表。" - dummy: "Misskey拓展了Fediverse的世界" mention: "提及" - mentionDescription: "透過 @+用戶名 來標示特定使用者。" hashtag: "#tag" - hashtagDescription: "可以使用\"#\"符號後加文字表示話題標籤。" - url: "URL" - urlDescription: "可以展示URL位址。" link: "鏈接" - linkDescription: "您可以將特定範圍的文章與 URL 相關聯。 " - bold: "粗體" - boldDescription: "可以將文字顯示为粗體来強調。" - small: "縮小" - smallDescription: "可以使內容文字變小、變淡。" - center: "置中" - centerDescription: "可以將內容置中顯示。" - inlineCode: "程式碼(内嵌)" - inlineCodeDescription: "在行內用高亮度顯示,例如程式碼語法。" - blockCode: "程式碼(區塊)" - blockCodeDescription: "在區塊中用高亮度顯示,例如複數行的程式碼語法。" - inlineMath: "數學公式(內嵌)" - inlineMathDescription: "顯示內嵌的KaTex數學公式。" - blockMath: "數學公式(方塊)" - blockMathDescription: "以區塊顯示複數行的KaTex數學式。" quote: "引用" - quoteDescription: "可以用來表示引用的内容。" emoji: "自訂表情符號" - emojiDescription: "您可以通過將自定義表情符號名稱括在冒號中來顯示自定義表情符號。 " search: "搜尋" - searchDescription: "您可以顯示所輸入的搜索框。" - flip: "翻轉" - flipDescription: "將內容上下或左右翻轉。" - jelly: "動畫(果凍)" - jellyDescription: "顯示果凍一樣的動畫效果。" - tada: "動畫(鏘~)" - tadaDescription: "顯示「鏘~!」這種感覺的動畫效果。" - jump: "動畫(跳動)" - jumpDescription: "顯示跳動的動畫效果。" - bounce: "動畫(反彈)" - bounceDescription: "顯示有彈性的動畫效果。" - shake: "動畫(搖晃)" - shakeDescription: "顯示顫抖的動畫效果。" - twitch: "動畫(顫抖)" - twitchDescription: "顯示強烈顫抖的動畫效果。" - spin: "動畫(旋轉)" - spinDescription: "顯示旋轉的動畫效果。" - x2: "大" - x2Description: "放大顯示內容。" - x3: "較大" - x3Description: "放大顯示內容。" - x4: "最大" - x4Description: "將顯示內容放至最大。" - blur: "模糊" - blurDescription: "產生模糊效果。将游標放在上面即可將内容顯示出來。" - font: "字型" - fontDescription: "您可以設定顯示內容的字型" - rainbow: "彩虹" - rainbowDescription: "用彩虹色來顯示內容。" - sparkle: "閃閃發光" - sparkleDescription: "添加閃閃發光的粒子效果。" - rotate: "旋轉" - rotateDescription: "以指定的角度旋轉。" - plain: "簡潔" - plainDescription: "停用全部的內部語法。" +_reversi: + reversi: "黑白棋" + gameSettings: "對弈設定" + chooseBoard: "選擇棋盤" + rules: "規則" + botSettings: "機器人設定" + opponentTurn: "對手回合" + myTurn: "你的回合" + turnOf: "{name}的回合" + pastTurnOf: "{name}的回合" + surrender: "認輸" + black: "黑" + white: "白" + total: "合計" + ended: "已結束" + playing: "正在對弈" _instanceTicker: - none: "隱藏" - remote: "向遠端使用者顯示" always: "總是顯示" _serverDisconnectedBehavior: reload: "自動重載" - dialog: "彈出式警告" - quiet: "非侵入式警告" + dialog: "以對話框警告" + quiet: "適當地警告" _channel: create: "建立頻道" edit: "編輯頻道" - setBanner: "設定橫幅圖像" - removeBanner: "移除橫幅圖像" - featured: "熱門貼文" + setBanner: "設定橫幅" + removeBanner: "移除封面圖" + featured: "流行" owned: "管理中" following: "關注中" usersCount: "有{n}人參與" - notesCount: "有{n}個貼文" -_menuDisplay: - sideFull: "側向" - sideIcon: "側向(圖示)" - top: "頂部" + notesCount: "有{n}個帖子" +_sidebar: + icon: "頭像" hide: "隱藏" _wordMute: muteWords: "加入靜音文字" - muteWordsDescription: "用空格分隔指定AND,用換行分隔指定OR。" - muteWordsDescription2: "將關鍵字用斜線括起來表示正規表達式。" - softDescription: "隱藏時間軸中指定條件的貼文。" - hardDescription: "具有指定條件的貼文將不添加到時間軸。 即使您更改條件,未被添加的貼文也會被排除在外。" - soft: "軟性靜音" - hard: "硬性靜音" mutedNotes: "已靜音的貼文" -_instanceMute: - instanceMuteDescription: "包括對被靜音實例上的用戶的回覆,被設定的實例上所有貼文及轉發都會被靜音。" - instanceMuteDescription2: "設定時以換行進行分隔" - title: "被設定的實例,貼文將被隱藏。" - heading: "將實例靜音" _theme: - explore: "取得佈景主題" - install: "安裝佈景主題" - manage: "佈景主題管理員" - code: "主題代碼" - description: "描述" - installed: "{name}已安裝" - installedThemes: "已經安裝的主題" - builtinThemes: "標準主題" - alreadyInstalled: "此主題已經安裝" - invalid: "主題格式錯誤" - make: "製作主題" - base: "基於" - addConstant: "添加常數" constant: "常數" defaultValue: "預設值" color: "顏色" - refProp: "查看屬性 " - refConst: "查看常數" - key: "按鍵" func: "函数" - funcKind: "功能類型" - argument: "參數" - basedProp: "要基於的屬性的名稱 " + argument: "引數" alpha: "透明度" darken: "暗度" lighten: "亮度" - inputConstantName: "請輸入常數的名稱" - importInfo: "您可以在此貼上主題代碼,將其匯入編輯器中" - deleteConstantConfirm: "確定要删除常數{const}嗎?" keys: - accent: "重點色彩" bg: "背景" fg: "文本" - focus: "聚焦" - indicator: "指標" - panel: "面板" shadow: "陰影" - header: "標題" - navBg: "側邊欄的背景 " - navFg: "側邊欄的文字" - navHoverFg: "側邊欄文字(懸停) " - navActive: "側邊欄文本 (活動)" - navIndicator: "側邊欄指示符" link: "鏈接" hashtag: "#tag" - mention: "提到" - mentionMe: "提到了我" + mention: "提及" + mentionMe: "提及我" renote: "轉發貼文" - modalBg: "對話框背景" divider: "分割線" - scrollbarHandle: "捲動條" - scrollbarHandleHover: "捲動條 (漂浮)" - dateLabelFg: "日期標籤文字" infoBg: "資訊背景" infoFg: "資訊內容" infoWarnBg: "警告背景" infoWarnFg: "警告字元" - cwBg: "CW 按鈕背景" - cwFg: "CW 按鈕文本" - cwHoverBg: "CW 按鈕背景 (漂浮)" - toastBg: "通知背景" - toastFg: "通知文本" - buttonBg: "按鈕背景" - buttonHoverBg: "按鈕背景 (漂浮)" - inputBorder: "輸入框邊框" - listItemHoverBg: "列表物品背景 (漂浮)" - driveFolderBg: "雲端硬碟文件夾背景" - wallpaperOverlay: "壁紙覆蓋層" - badge: "獎章" - messageBg: "私訊背景" - accentDarken: "強調色(偏暗)" - accentLighten: "強調色(明亮)" - fgHighlighted: "高亮顯示文本" _sfx: note: "貼文" noteMy: "我的貼文" notification: "通知" chat: "傳送訊息" - chatBg: "聊天背景" - antenna: "天線接收" channel: "頻道通知" _ago: + unknown: "未知" future: "未來" justNow: "剛剛" secondsAgo: "{n}秒前" @@ -1179,50 +650,38 @@ _time: second: "秒" minute: "分鐘" hour: "小時" - day: "日" + day: "天" _tutorial: title: "Misskey使用方法" step1_1: "歡迎!" - step1_2: "此為「時間軸」頁面,它會按照時間順序顯示你「追隨」的人發出的「貼文」" - step1_3: "由於你沒有發佈任何貼文,也沒有追隨任何人,所以你的時間軸目前是空的。" + step1_2: "此為「時間軸」頁面,它會按照時間順序顯示你「追隨」的人的「貼文」" + step1_3: "由於你沒有發布任何筆記,也沒有追隨任何人,所以你的時間軸目前是空的。" step2_1: "在發文或追隨其他人之前先讓我們設定一下個人資料吧。" step2_2: "提供一些關於自己的資訊來讓其他人更有追隨你的意願。" - step3_1: "個人資料都設定好了嗎?" - step3_2: "接下來,讓我們來試試看發個文,按一下畫面上的鉛筆圖示來開始" + step3_1: "個人資料都打理好了嗎?" + step3_2: "下一步讓我們來試試看發個文,按一下畫面上的鉛筆圖示來開始" step3_3: "輸入完內容後,按視窗右上角的按鈕來發文" step3_4: "不知道該寫什麼內容嗎?試試看「開始使用Misskey了」如何。" - step4_1: "貼文發出去了嗎?" - step4_2: "如果你的貼文出現在時間軸上,就代表發文成功。" + step4_1: "筆記發出去了嗎?" + step4_2: "如果你的貼文有顯示在時間軸上,就代表已經發文成功。" step5_1: "現在試試看追隨其他人來讓你的時間軸變得更生動吧。" - step5_2: "你會在{featured}上看到受歡迎的貼文,你也可以從列表中追隨你喜歡的人,或者在{explore}上找到熱門使用者。" - step5_3: "想要追隨其他人,只要點擊他們的大頭貼並按「追隨」即可。" + step5_2: "你可以在{featured}上看到受歡迎的貼文,你也可以選擇從列表中追隨你喜歡的人,或者在{explore}上找到熱門使用者。" + step5_3: "想要追隨其他人,只要點擊他們的頭像並按「追隨」即可。" step5_4: "如果使用者的名字旁有鎖頭的圖示,代表他們需要手動核准你的追隨請求。" - step6_1: "現在你可以在時間軸上看到其他用戶的貼文。" - step6_2: "你也可以對別人的貼文作出「情感」,作出簡單的回覆。" - step6_3: "在他人的貼文按下\"+\"圖標,即可選擇喜好的表情符號進行回應。" + step6_1: "現在你可以在時間軸上看到其他用戶的貼文" + step6_2: "你也可以在其他人的貼文上進行「反應」來表達簡單的回覆。" + step6_3: "在他人的貼文按下「+」的圖示即可選擇想要的表情符號來進行「反應」。" step7_1: "以上為Misskey的基本操作說明,教學在此告一段落。辛苦了。" step7_2: "歡迎到{help}來瞭解更多Misskey相關介紹。" - step7_3: "那麼,祝您在Misskey玩的開心~ 🚀" _2fa: - alreadyRegistered: "此設備已經被註冊過了" registerDevice: "註冊裝置" - registerKey: "註冊鍵" - step1: "首先,在您的設備上安裝二步驗證程式,例如{a}或{b}。" - step2: "然後,掃描螢幕上的QR code。" - step2Url: "在桌面版應用中,請輸入以下的URL:" - step3: "輸入您的App提供的權杖以完成設定。" - step4: "從現在開始,任何登入操作都將要求您提供權杖。" - securityKeyInfo: "您可以設定使用支援FIDO2的硬體安全鎖、終端設備的指纹認證或者PIN碼來登入。" _permissions: - "read:account": "查看我的帳戶資訊" - "write:account": "更改我的帳戶資訊" "read:blocks": "已封鎖用戶名單" "write:blocks": "編輯已封鎖用戶名單" - "read:drive": "存取雲端硬碟" + "read:drive": "存取雲端硬碟\n" "write:drive": "編輯雲端硬碟的檔案" - "read:favorites": "瀏覽我的最愛" - "write:favorites": "編輯我的最愛列表" - "read:following": "查看追隨中的用戶資訊" + "read:favorites": "瀏覽已收藏" + "write:favorites": "編輯收藏清單" "write:following": "追隨/解除追隨" "read:messaging": "顯示訊息" "write:messaging": "撰寫或刪除私人訊息" @@ -1231,28 +690,19 @@ _permissions: "write:notes": "撰寫或刪除貼文" "read:notifications": "查看通知" "write:notifications": "編輯通知" - "read:reactions": "查看情感" - "write:reactions": "編輯情感" + "read:reactions": "查看反應" + "write:reactions": "編輯反應" "write:votes": "投票" "read:pages": "顯示頁面" "write:pages": "編輯頁面" - "read:page-likes": "顯示已按讚的頁面" + "read:page-likes": "顯示頁面的已喜歡" "write:page-likes": "編輯頁面上喜歡" "read:user-groups": "顯示使用者群組" "write:user-groups": "編輯使用者群組" "read:channels": "已查看的頻道" "write:channels": "編輯頻道" - "read:gallery": "瀏覽圖庫" - "write:gallery": "操作圖庫" - "read:gallery-likes": "讀取喜歡的圖片" - "write:gallery-likes": "操作喜歡的圖片" _auth: shareAccess: "要授權「“{name}”」存取您的帳戶嗎?" - shareAccessAsk: "您確定要授權這個應用程式使用您的帳戶嗎?" - permissionAsk: "此應用程式需要以下權限" - pleaseGoBack: "請返回至應用程式" - callback: "回到應用程式" - denied: "拒絕訪問" _antennaSources: all: "全部貼文" homeTimeline: "來自已追隨使用者的貼文" @@ -1275,21 +725,10 @@ _widgets: trends: "發燒貼文" clock: "時鐘" rss: "RSS閱讀器" - rssTicker: "RSS跑馬燈" activity: "動態" photos: "照片" digitalClock: "電子時鐘" - unixClock: "UNIX時間" federation: "聯邦宇宙" - instanceCloud: "實例雲" - postForm: "發佈窗口" - slideshow: "幻燈片" - button: "按鈕" - onlineUsers: "線上的用戶" - jobQueue: "佇列" - serverMetric: "服務器指標 " - aiscript: "AiScript控制台" - aichan: "小藍" _cw: hide: "隱藏" show: "瀏覽更多" @@ -1297,13 +736,9 @@ _cw: files: "{count} 個檔案" _poll: noOnlyOneChoice: "至少需要兩個選項。" - choiceN: "選擇{n}" - noMore: "沒辦法再添加選項了" - canMultipleVote: "可以多次投票" expiration: "期限" infinite: "無期限" at: "結束時間" - after: "進度指定 " deadlineDate: "截止日期" deadlineTime: "小時" duration: "時長" @@ -1314,16 +749,10 @@ _poll: voted: "已投票" closed: "已結束" remainingDays: "{d}天{h}小時後結束" - remainingHours: "{h}小時{m}分後結束" - remainingMinutes: "{m}分{s}秒後結束" - remainingSeconds: "{s}秒後截止" _visibility: public: "公開" - publicDescription: "發布給所有用戶 " home: "首頁" - homeDescription: "僅發送至首頁的時間軸" followers: "追隨者" - followersDescription: "僅發送至關注者" specified: "指定使用者" specifiedDescription: "僅發送至指定使用者" localOnly: "僅限本地" @@ -1344,30 +773,22 @@ _profile: username: "使用者名稱" description: "關於我" youCanIncludeHashtags: "你也可以在「關於我」中加上 #tag" - metadata: "進階資訊" - metadataEdit: "編輯進階資訊" - metadataDescription: "可以在個人資料中以表格形式顯示其他資訊。" + metadata: "更多資訊" metadataLabel: "標籤" metadataContent: "内容" - changeAvatar: "更換大頭貼" - changeBanner: "變更橫幅圖像" _exportOrImport: - allNotes: "所有貼文" + allNotes: "全部貼文" followingList: "追隨中" muteList: "靜音" blockingList: "封鎖" userLists: "清單" - excludeMutingUsers: "排除被靜音的用戶" - excludeInactiveUsers: "排除不活躍帳戶" _charts: - federation: "站台聯邦" - apRequest: "請求" usersIncDec: "使用者増減" usersTotal: "使用者合共" activeUsers: "活躍使用者" notesIncDec: "貼文増減" localNotesIncDec: "本地貼文増減" - remoteNotesIncDec: "遠端貼文數目增减" + remoteNotesIncDec: "非本地貼文的數目增减" notesTotal: "貼文合共" filesIncDec: "檔案増減" filesTotal: "累計檔案" @@ -1389,18 +810,61 @@ _timelines: home: "首頁" local: "本地" social: "社群" - global: "公開" + global: "全域" +_rooms: + roomOf: "{user}的房間" + addFurniture: "擺放家具" + translate: "移動 " + rotate: "旋轉" + exit: "返回" + remove: "移除" + clear: "全部移除" + clearConfirm: "確定要移除全部家具嗎?" + leaveConfirm: "修改未儲存,是否要離開?" + chooseImage: "選擇圖像" + roomType: "房間種類" + carpetColor: "地板顏色" + _roomType: + default: "預設" + washitsu: "和室" + _furnitures: + milk: "牛奶盒" + bed: "床" + low-table: "咖啡桌" + desk: "書桌" + chair: "椅子" + chair2: "椅子2" + fan: "通風機" + pc: "電腦" + plant: "觀葉植物" + plant2: "觀葉植物2" + eraser: "橡皮擦" + pencil: "鉛筆" + pudding: "布丁" + cardboard-box: "紙板箱" + cardboard-box2: "紙板箱2" + cardboard-box3: "紙板箱3" + book: "讀物" + book2: "讀物2" + piano: "鋼琴" + moon: "月亮" + corkboard: "木栓板" + mousepad: "滑鼠墊" + monitor: "監視器" + keyboard: "鍵盤" + carpet-stripe: "條紋地毯" + bin: "垃圾箱" + cup-noodle: "杯面" + holo-display: "投影機" + energy-drink: "能量飲料" + doll-ai: "小藍的人偶公仔" + banknote: "大疊鈔票" _pages: newPage: "建立頁面" editPage: "編輯頁面" - readPage: "正檢視原始碼" created: "頁面已建立" updated: "頁面已更新" deleted: "頁面已被刪除" - pageSetting: "頁面設定" - nameAlreadyExists: "指定的頁面URL已經存在" - invalidNameTitle: "指定的頁面URL無效" - invalidNameText: "請確定是否為非空白" editThisPage: "編輯此頁面" viewSource: "檢視原始碼" viewPage: "顯示頁面" @@ -1408,43 +872,27 @@ _pages: unlike: "收回喜歡" my: "我的頁面" liked: "已喜歡的頁面" - featured: "人氣" inspector: "面板檢查" - contents: "內容" - content: "頁面方塊" variables: "變數" title: "標題" url: "頁面網址" - summary: "頁面摘要" - alignCenter: "置中" - hideTitleWhenPinned: "被置頂於個人資料時隱藏頁面標題" font: "字型" fontSerif: "襯線體" fontSansSerif: "無襯線體" - eyeCatchingImageSet: "設定封面影像" - eyeCatchingImageRemove: "刪除封面影像" - chooseBlock: "新增方塊" - selectType: "選擇類型" - enterVariableName: "請輸入變數名稱" - variableNameIsAlreadyUsed: "變數名稱已被佔用" - contentBlocks: "內容" inputBlocks: "輸入" - specialBlocks: "特殊" blocks: - text: "字串" - textarea: "字串區域" + text: "文本" + textarea: "文字區域" section: "區段" image: "圖片" button: "按鈕" if: "如果" _if: variable: "變數" - post: "發佈窗口" _post: text: "内容" - attachCanvasImage: "附加相簿圖像 " canvasId: "畫布ID" - textInput: "插入字串" + textInput: "插入文字" _textInput: name: "變數名稱" text: "標題" @@ -1464,11 +912,6 @@ _pages: id: "畫布ID" width: "寬度" height: "高度" - note: "嵌式貼文" - _note: - id: "貼文ID" - idDescription: "您也可以粘貼筆記 URL 並進行設置。 " - detailed: "顯示詳細內容" switch: "開關" _switch: name: "變數名稱" @@ -1484,15 +927,12 @@ _pages: colored: "彩色" action: "按下按鈕後發生的行為" _action: - dialog: "顯示對話框 " _dialog: content: "内容" resetRandom: "重設亂數" pushEvent: "發送事件" _pushEvent: event: "事件名稱" - message: "按下時顯示的消息 " - variable: "要發送的變數" no-variable: "沒有" callAiScript: "調用AiScript" _callAiScript: @@ -1501,11 +941,9 @@ _pages: _radioButton: name: "變數名稱" title: "標題" - values: "由換行符分隔的選項" default: "預設值" script: categories: - flow: "控制" logical: "邏輯運算" operation: "計算" comparison: "對比" @@ -1516,30 +954,20 @@ _pages: convert: "轉換" list: "清單" blocks: - text: "字串" - multiLineText: "字串(多行)" - textList: "字串串列" - _textList: - info: "請分開每個換行符 " - strLen: "字串長度" + text: "文本" + multiLineText: "文本 (多行)" + textList: "文本列表" _strLen: - arg1: "字串" - strPick: "提取字元" + arg1: "文本" _strPick: - arg1: "字串" + arg1: "文本" arg2: "字元位置" - strReplace: "替換字串" _strReplace: - arg1: "字串" - arg2: "替換前" - arg3: "替換後" - strReverse: "倒轉字串" + arg1: "文本" _strReverse: - arg1: "字串" - join: "合併字串" + arg1: "本文" _join: arg1: "清單" - arg2: "分隔字元" add: "加" _add: arg1: "A" @@ -1556,7 +984,6 @@ _pages: _divide: arg1: "A" arg2: "B" - mod: "餘數" _mod: arg1: "A" arg2: "B" @@ -1599,7 +1026,6 @@ _pages: _if: arg1: "如果" arg2: "如果" - arg3: "除此以外 " not: "否" _not: arg1: "否" @@ -1610,17 +1036,13 @@ _pages: _rannum: arg1: "下限" arg2: "上限" - randomPick: "從列表中隨機選擇 " _randomPick: arg1: "清單" - dailyRandom: "隨機(使用者每日變化 )" _dailyRandom: arg1: "機率" - dailyRannum: "亂數(使用者每日變化)" _dailyRannum: arg1: "下限" arg2: "上限" - dailyRandomPick: "從列表中隨機選擇(使用者每日變化 ) " _dailyRandomPick: arg1: "清單" seedRandom: "隨機抽選種子碼" @@ -1636,9 +1058,8 @@ _pages: _seedRandomPick: arg1: "種子" arg2: "清單" - DRPWPM: "从機率列表中隨機選擇(每個用户每天)" _DRPWPM: - arg1: "字串串列" + arg1: "文本列表" pick: "從清單中選取" _pick: arg1: "清單" @@ -1647,57 +1068,38 @@ _pages: _listLen: arg1: "清單" number: "數值" - stringToNumber: "將字串轉換至數値" _stringToNumber: - arg1: "字串" - numberToString: "將數値轉換至字串" + arg1: "文字" _numberToString: arg1: "數值" - splitStrByLine: "於換行時分割字串" _splitStrByLine: - arg1: "字串" + arg1: "文本" ref: "變數" aiScriptVar: "AiScript的變數" fn: "函数" _fn: slots: "欄位" - slots-info: "用換行符分隔每個欄位" arg1: "輸出" - for: "重複 " _for: arg1: "重複次數" arg2: "處理" - typeError: "槽參數{slot}需要傳入“{expect}”,但是實際傳入為“{actual}”!" - thereIsEmptySlot: "參數{slot}是空的!" types: - string: "字串" + string: "文字" number: "数值" - boolean: "標記" array: "清單" - stringArray: "字串列表" - emptySlot: "空欄位" + stringArray: "文本列表" enviromentVariables: "環境變數" pageVariables: "頁面元素" - argVariables: "輸入欄位" _relayStatus: requesting: "等待核准" accepted: "已通過核准" rejected: "已拒絕" _notification: - fileUploaded: "上傳檔案成功。" - youGotMention: "{name}提及到您" - youGotReply: "{name}回覆了您" - youGotQuote: "{name}引用了您" youRenoted: "{name} 轉發了你的貼文" youGotPoll: "{name}已投票" - youGotMessagingMessageFromUser: "{name}發送給您的訊息" - youGotMessagingMessageFromGroup: "{name}發送給您的訊息" youWereFollowed: "您有新的追隨者" - youReceivedFollowRequest: "您有新的追隨請求" yourFollowRequestAccepted: "您的追隨請求已通過" youWereInvitedToGroup: "您有新的群組邀請" - pollEnded: "問卷調查已產生結果" - emptyPushNotificationMessage: "推送通知已更新" _types: all: "全部 " follow: "追隨中" @@ -1706,35 +1108,20 @@ _notification: renote: "轉發貼文" quote: "引用" reaction: "反應" - pollVote: "統計已投票數" - pollEnded: "問卷調查結束" receiveFollowRequest: "已收到追隨請求" followRequestAccepted: "追隨請求已接受" - groupInvited: "加入社群邀請" app: "應用程式通知" - _actions: - followBack: "回關" - reply: "回覆" - renote: "轉發" _deck: alwaysShowMainColumn: "總是顯示主欄" columnAlign: "對齊欄位" addColumn: "新增欄位" - configureColumn: "欄位的設定" swapLeft: "向左移動" swapRight: "向右移動" swapUp: "往上移動" swapDown: "往下移動" stackLeft: "向左折疊" popRight: "向右彈出" - profile: "個人檔案" - newProfile: "新建個人檔案" - deleteProfile: "刪除個人檔案" - introduction: "組合欄位來製作屬於自己的介面吧!" - introduction2: "您可以隨時透過按畫面右方的 + 來添加欄位。" - widgetsIntroduction: "請從欄位的選單中,選擇「編輯小工具」來添加小工具" _columns: - main: "主列" widgets: "小工具" notifications: "通知" tl: "時間軸" diff --git a/migration/1000000000000-Init.ts b/migration/1000000000000-Init.ts new file mode 100644 index 000000000..ce54d8a7e --- /dev/null +++ b/migration/1000000000000-Init.ts @@ -0,0 +1,485 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class Init1000000000000 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`); + await queryRunner.query(`CREATE TABLE "log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "domain" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "level" "log_level_enum" NOT NULL, "worker" character varying(8) NOT NULL, "machine" character varying(128) NOT NULL, "message" character varying(1024) NOT NULL, "data" jsonb NOT NULL DEFAULT '{}', CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_8e4eb51a35d81b64dda28eed0a" ON "log" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_8cb40cfc8f3c28261e6f887b03" ON "log" ("domain") `); + await queryRunner.query(`CREATE INDEX "IDX_584b536b49e53ac81beb39a177" ON "log" ("level") `); + await queryRunner.query(`CREATE TABLE "drive_folder" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(128) NOT NULL, "userId" character varying(32), "parentId" character varying(32), CONSTRAINT "PK_7a0c089191f5ebdc214e0af808a" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_02878d441ceae15ce060b73daf" ON "drive_folder" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_f4fc06e49c0171c85f1c48060d" ON "drive_folder" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_00ceffb0cdc238b3233294f08f" ON "drive_folder" ("parentId") `); + await queryRunner.query(`CREATE TABLE "drive_file" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "userHost" character varying(128), "md5" character varying(32) NOT NULL, "name" character varying(256) NOT NULL, "type" character varying(128) NOT NULL, "size" integer NOT NULL, "comment" character varying(512), "properties" jsonb NOT NULL DEFAULT '{}', "storedInternal" boolean NOT NULL, "url" character varying(512) NOT NULL, "thumbnailUrl" character varying(512), "webpublicUrl" character varying(512), "accessKey" character varying(256), "thumbnailAccessKey" character varying(256), "webpublicAccessKey" character varying(256), "uri" character varying(512), "src" character varying(512), "folderId" character varying(32), "isSensitive" boolean NOT NULL DEFAULT false, "isLink" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_43ddaaaf18c9e68029b7cbb032e" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON "drive_file" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_92779627994ac79277f070c91e" ON "drive_file" ("userHost") `); + await queryRunner.query(`CREATE INDEX "IDX_37bb9a1b4585f8a3beb24c62d6" ON "drive_file" ("md5") `); + await queryRunner.query(`CREATE INDEX "IDX_a40b8df8c989d7db937ea27cf6" ON "drive_file" ("type") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d85a184c2540d2deba33daf642" ON "drive_file" ("accessKey") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e74022ce9a074b3866f70e0d27" ON "drive_file" ("thumbnailAccessKey") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_c55b2b7c284d9fef98026fc88e" ON "drive_file" ("webpublicAccessKey") `); + await queryRunner.query(`CREATE INDEX "IDX_e5848eac4940934e23dbc17581" ON "drive_file" ("uri") `); + await queryRunner.query(`CREATE INDEX "IDX_bb90d1956dafc4068c28aa7560" ON "drive_file" ("folderId") `); + await queryRunner.query(`CREATE TABLE "user" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "lastFetchedAt" TIMESTAMP WITH TIME ZONE, "username" character varying(128) NOT NULL, "usernameLower" character varying(128) NOT NULL, "name" character varying(128), "followersCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "avatarId" character varying(32), "bannerId" character varying(32), "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "avatarUrl" character varying(512), "bannerUrl" character varying(512), "avatarColor" character varying(32), "bannerColor" character varying(32), "isSuspended" boolean NOT NULL DEFAULT false, "isSilenced" boolean NOT NULL DEFAULT false, "isLocked" boolean NOT NULL DEFAULT false, "isBot" boolean NOT NULL DEFAULT false, "isCat" boolean NOT NULL DEFAULT false, "isAdmin" boolean NOT NULL DEFAULT false, "isModerator" boolean NOT NULL DEFAULT false, "isVerified" boolean NOT NULL DEFAULT false, "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "host" character varying(128), "inbox" character varying(512), "sharedInbox" character varying(512), "featured" character varying(512), "uri" character varying(512), "token" character(16), CONSTRAINT "UQ_a854e557b1b14814750c7c7b0c9" UNIQUE ("token"), CONSTRAINT "REL_58f5c71eaab331645112cf8cfa" UNIQUE ("avatarId"), CONSTRAINT "REL_afc64b53f8db3707ceb34eb28e" UNIQUE ("bannerId"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_e11e649824a45d8ed01d597fd9" ON "user" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4" ON "user" ("updatedAt") `); + await queryRunner.query(`CREATE INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8" ON "user" ("usernameLower") `); + await queryRunner.query(`CREATE INDEX "IDX_fa99d777623947a5b05f394cae" ON "user" ("tags") `); + await queryRunner.query(`CREATE INDEX "IDX_3252a5df8d5bbd16b281f7799e" ON "user" ("host") `); + await queryRunner.query(`CREATE INDEX "IDX_be623adaa4c566baf5d29ce0c8" ON "user" ("uri") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a854e557b1b14814750c7c7b0c" ON "user" ("token") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5deb01ae162d1d70b80d064c27" ON "user" ("usernameLower", "host") `); + await queryRunner.query(`CREATE TABLE "app" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "secret" character varying(64) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(512) NOT NULL, "permission" character varying(64) array NOT NULL, "callbackUrl" character varying(512), CONSTRAINT "PK_9478629fc093d229df09e560aea" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_048a757923ed8b157e9895da53" ON "app" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_3f5b0899ef90527a3462d7c2cb" ON "app" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_f49922d511d666848f250663c4" ON "app" ("secret") `); + await queryRunner.query(`CREATE TABLE "access_token" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "hash" character varying(128) NOT NULL, "userId" character varying(32) NOT NULL, "appId" character varying(32) NOT NULL, CONSTRAINT "PK_f20f028607b2603deabd8182d12" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_70ba8f6af34bc924fc9e12adb8" ON "access_token" ("token") `); + await queryRunner.query(`CREATE INDEX "IDX_64c327441248bae40f7d92f34f" ON "access_token" ("hash") `); + await queryRunner.query(`CREATE INDEX "IDX_9949557d0e1b2c19e5344c171e" ON "access_token" ("userId") `); + await queryRunner.query(`CREATE TYPE "note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`); + await queryRunner.query(`CREATE TABLE "note" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "replyId" character varying(32), "renoteId" character varying(32), "text" text, "name" character varying(256), "cw" character varying(512), "appId" character varying(32), "userId" character varying(32) NOT NULL, "viaMobile" boolean NOT NULL DEFAULT false, "localOnly" boolean NOT NULL DEFAULT false, "renoteCount" smallint NOT NULL DEFAULT 0, "repliesCount" smallint NOT NULL DEFAULT 0, "reactions" jsonb NOT NULL DEFAULT '{}', "visibility" "note_visibility_enum" NOT NULL, "uri" character varying(512), "score" integer NOT NULL DEFAULT 0, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "attachedFileTypes" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentions" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentionedRemoteUsers" text NOT NULL DEFAULT '[]', "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "hasPoll" boolean NOT NULL DEFAULT false, "geo" jsonb DEFAULT null, "userHost" character varying(128), "replyUserId" character varying(32), "replyUserHost" character varying(128), "renoteUserId" character varying(32), "renoteUserHost" character varying(128), CONSTRAINT "PK_96d0c172a4fba276b1bbed43058" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_e7c0567f5261063592f022e9b5" ON "note" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_17cb3553c700a4985dff5a30ff" ON "note" ("replyId") `); + await queryRunner.query(`CREATE INDEX "IDX_52ccc804d7c69037d558bac4c9" ON "note" ("renoteId") `); + await queryRunner.query(`CREATE INDEX "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_153536c67d05e9adb24e99fc2b" ON "note" ("uri") `); + await queryRunner.query(`CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON "note" ("fileIds") `); + await queryRunner.query(`CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON "note" ("attachedFileTypes") `); + await queryRunner.query(`CREATE INDEX "IDX_796a8c03959361f97dc2be1d5c" ON "note" ("visibleUserIds") `); + await queryRunner.query(`CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON "note" ("mentions") `); + await queryRunner.query(`CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON "note" ("tags") `); + await queryRunner.query(`CREATE INDEX "IDX_7125a826ab192eb27e11d358a5" ON "note" ("userHost") `); + await queryRunner.query(`CREATE TABLE "poll_vote" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "choice" integer NOT NULL, CONSTRAINT "PK_fd002d371201c472490ba89c6a0" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_0fb627e1c2f753262a74f0562d" ON "poll_vote" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_66d2bd2ee31d14bcc23069a89f" ON "poll_vote" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_aecfbd5ef60374918e63ee95fa" ON "poll_vote" ("noteId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_50bd7164c5b78f1f4a42c4d21f" ON "poll_vote" ("userId", "noteId", "choice") `); + await queryRunner.query(`CREATE TABLE "note_reaction" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "reaction" character varying(128) NOT NULL, CONSTRAINT "PK_767ec729b108799b587a3fcc9cf" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON "note_reaction" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_13761f64257f40c5636d0ff95e" ON "note_reaction" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_45145e4953780f3cd5656f0ea6" ON "note_reaction" ("noteId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ad0c221b25672daf2df320a817" ON "note_reaction" ("userId", "noteId") `); + await queryRunner.query(`CREATE TABLE "note_watching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, CONSTRAINT "PK_49286fdb23725945a74aa27d757" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_318cdf42a9cfc11f479bd802bb" ON "note_watching" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_b0134ec406e8d09a540f818288" ON "note_watching" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_03e7028ab8388a3f5e3ce2a861" ON "note_watching" ("noteId") `); + await queryRunner.query(`CREATE INDEX "IDX_44499765eec6b5489d72c4253b" ON "note_watching" ("noteUserId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a42c93c69989ce1d09959df4cf" ON "note_watching" ("userId", "noteId") `); + await queryRunner.query(`CREATE TABLE "note_unread" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, "isSpecified" boolean NOT NULL, CONSTRAINT "PK_1904eda61a784f57e6e51fa9c1f" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_56b0166d34ddae49d8ef7610bb" ON "note_unread" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_e637cba4dc4410218c4251260e" ON "note_unread" ("noteId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d908433a4953cc13216cd9c274" ON "note_unread" ("userId", "noteId") `); + await queryRunner.query(`CREATE TABLE "notification" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "notifieeId" character varying(32) NOT NULL, "notifierId" character varying(32) NOT NULL, "type" character varying(32) NOT NULL, "isRead" boolean NOT NULL DEFAULT false, "noteId" character varying(32), "reaction" character varying(128), "choice" integer, CONSTRAINT "PK_705b6c7cdf9b2c2ff7ac7872cb7" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON "notification" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_3c601b70a1066d2c8b517094cb" ON "notification" ("notifieeId") `); + await queryRunner.query(`CREATE TABLE "meta" ("id" character varying(32) NOT NULL, "name" character varying(128), "description" character varying(1024), "maintainerName" character varying(128), "maintainerEmail" character varying(128), "announcements" jsonb NOT NULL DEFAULT '[]', "disableRegistration" boolean NOT NULL DEFAULT false, "disableLocalTimeline" boolean NOT NULL DEFAULT false, "disableGlobalTimeline" boolean NOT NULL DEFAULT false, "enableEmojiReaction" boolean NOT NULL DEFAULT true, "useStarForReactionFallback" boolean NOT NULL DEFAULT false, "langs" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "hiddenTags" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "blockedHosts" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "mascotImageUrl" character varying(512) DEFAULT '/assets/ai.png', "bannerUrl" character varying(512), "errorImageUrl" character varying(512) DEFAULT 'https://xn--931a.moe/aiart/yubitun.png', "iconUrl" character varying(512), "cacheRemoteFiles" boolean NOT NULL DEFAULT true, "proxyAccount" character varying(128), "enableRecaptcha" boolean NOT NULL DEFAULT false, "recaptchaSiteKey" character varying(64), "recaptchaSecretKey" character varying(64), "localDriveCapacityMb" integer NOT NULL DEFAULT 1024, "remoteDriveCapacityMb" integer NOT NULL DEFAULT 32, "maxNoteTextLength" integer NOT NULL DEFAULT 500, "summalyProxy" character varying(128), "enableEmail" boolean NOT NULL DEFAULT false, "email" character varying(128), "smtpSecure" boolean NOT NULL DEFAULT false, "smtpHost" character varying(128), "smtpPort" integer, "smtpUser" character varying(128), "smtpPass" character varying(128), "enableServiceWorker" boolean NOT NULL DEFAULT false, "swPublicKey" character varying(128), "swPrivateKey" character varying(128), "enableTwitterIntegration" boolean NOT NULL DEFAULT false, "twitterConsumerKey" character varying(128), "twitterConsumerSecret" character varying(128), "enableGithubIntegration" boolean NOT NULL DEFAULT false, "githubClientId" character varying(128), "githubClientSecret" character varying(128), "enableDiscordIntegration" boolean NOT NULL DEFAULT false, "discordClientId" character varying(128), "discordClientSecret" character varying(128), CONSTRAINT "PK_c4c17a6c2bd7651338b60fc590b" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TABLE "following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_c76c6e044bdf76ecf8bfb82a645" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_582f8fab771a9040a12961f3e7" ON "following" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_24e0042143a18157b234df186c" ON "following" ("followeeId") `); + await queryRunner.query(`CREATE INDEX "IDX_6516c5a6f3c015b4eed39978be" ON "following" ("followerId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_307be5f1d1252e0388662acb96" ON "following" ("followerId", "followeeId") `); + await queryRunner.query(`CREATE TABLE "instance" ("id" character varying(32) NOT NULL, "caughtAt" TIMESTAMP WITH TIME ZONE NOT NULL, "host" character varying(128) NOT NULL, "system" character varying(64), "usersCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "followersCount" integer NOT NULL DEFAULT 0, "driveUsage" integer NOT NULL DEFAULT 0, "driveFiles" integer NOT NULL DEFAULT 0, "latestRequestSentAt" TIMESTAMP WITH TIME ZONE, "latestStatus" integer, "latestRequestReceivedAt" TIMESTAMP WITH TIME ZONE, "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "isNotResponding" boolean NOT NULL DEFAULT false, "isMarkedAsClosed" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_eaf60e4a0c399c9935413e06474" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_2cd3b2a6b4cf0b910b260afe08" ON "instance" ("caughtAt") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8d5afc98982185799b160e10eb" ON "instance" ("host") `); + await queryRunner.query(`CREATE TABLE "muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "muteeId" character varying(32) NOT NULL, "muterId" character varying(32) NOT NULL, CONSTRAINT "PK_2e92d06c8b5c602eeb27ca9ba48" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_f86d57fbca33c7a4e6897490cc" ON "muting" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_ec96b4fed9dae517e0dbbe0675" ON "muting" ("muteeId") `); + await queryRunner.query(`CREATE INDEX "IDX_93060675b4a79a577f31d260c6" ON "muting" ("muterId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_1eb9d9824a630321a29fd3b290" ON "muting" ("muterId", "muteeId") `); + await queryRunner.query(`CREATE TABLE "sw_subscription" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "endpoint" character varying(512) NOT NULL, "auth" character varying(256) NOT NULL, "publickey" character varying(128) NOT NULL, CONSTRAINT "PK_e8f763631530051b95eb6279b91" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_97754ca6f2baff9b4abb7f853d" ON "sw_subscription" ("userId") `); + await queryRunner.query(`CREATE TABLE "blocking" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "blockeeId" character varying(32) NOT NULL, "blockerId" character varying(32) NOT NULL, CONSTRAINT "PK_e5d9a541cc1965ee7e048ea09dd" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b9a354f7941c1e779f3b33aea6" ON "blocking" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_2cd4a2743a99671308f5417759" ON "blocking" ("blockeeId") `); + await queryRunner.query(`CREATE INDEX "IDX_0627125f1a8a42c9a1929edb55" ON "blocking" ("blockerId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_98a1bc5cb30dfd159de056549f" ON "blocking" ("blockerId", "blockeeId") `); + await queryRunner.query(`CREATE TABLE "user_list" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, CONSTRAINT "PK_87bab75775fd9b1ff822b656402" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b7fcefbdd1c18dce86687531f9" ON "user_list" ("userId") `); + await queryRunner.query(`CREATE TABLE "user_list_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userListId" character varying(32) NOT NULL, CONSTRAINT "PK_11abb3768da1c5f8de101c9df45" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_d844bfc6f3f523a05189076efa" ON "user_list_joining" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_605472305f26818cc93d1baaa7" ON "user_list_joining" ("userListId") `); + await queryRunner.query(`CREATE TABLE "hashtag" ("id" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "mentionedUserIds" character varying(32) array NOT NULL, "mentionedUsersCount" integer NOT NULL DEFAULT 0, "mentionedLocalUserIds" character varying(32) array NOT NULL, "mentionedLocalUsersCount" integer NOT NULL DEFAULT 0, "mentionedRemoteUserIds" character varying(32) array NOT NULL, "mentionedRemoteUsersCount" integer NOT NULL DEFAULT 0, "attachedUserIds" character varying(32) array NOT NULL, "attachedUsersCount" integer NOT NULL DEFAULT 0, "attachedLocalUserIds" character varying(32) array NOT NULL, "attachedLocalUsersCount" integer NOT NULL DEFAULT 0, "attachedRemoteUserIds" character varying(32) array NOT NULL, "attachedRemoteUsersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_cb36eb8af8412bfa978f1165d78" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_347fec870eafea7b26c8a73bac" ON "hashtag" ("name") `); + await queryRunner.query(`CREATE INDEX "IDX_2710a55f826ee236ea1a62698f" ON "hashtag" ("mentionedUsersCount") `); + await queryRunner.query(`CREATE INDEX "IDX_0e206cec573f1edff4a3062923" ON "hashtag" ("mentionedLocalUsersCount") `); + await queryRunner.query(`CREATE INDEX "IDX_4c02d38a976c3ae132228c6fce" ON "hashtag" ("mentionedRemoteUsersCount") `); + await queryRunner.query(`CREATE INDEX "IDX_d57f9030cd3af7f63ffb1c267c" ON "hashtag" ("attachedUsersCount") `); + await queryRunner.query(`CREATE INDEX "IDX_0c44bf4f680964145f2a68a341" ON "hashtag" ("attachedLocalUsersCount") `); + await queryRunner.query(`CREATE INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2" ON "hashtag" ("attachedRemoteUsersCount") `); + await queryRunner.query(`CREATE TABLE "note_favorite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_af0da35a60b9fa4463a62082b36" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_47f4b1892f5d6ba8efb3057d81" ON "note_favorite" ("userId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0f4fb9ad355f3effff221ef245" ON "note_favorite" ("userId", "noteId") `); + await queryRunner.query(`CREATE TABLE "abuse_user_report" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "reporterId" character varying(32) NOT NULL, "comment" character varying(512) NOT NULL, CONSTRAINT "PK_87873f5f5cc5c321a1306b2d18c" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_db2098070b2b5a523c58181f74" ON "abuse_user_report" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_04cc96756f89d0b7f9473e8cdf" ON "abuse_user_report" ("reporterId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `); + await queryRunner.query(`CREATE TABLE "registration_ticket" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(64) NOT NULL, CONSTRAINT "PK_f11696b6fafcf3662d4292734f8" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59" ON "registration_ticket" ("code") `); + await queryRunner.query(`CREATE TABLE "messaging_message" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "recipientId" character varying(32) NOT NULL, "text" character varying(4096), "isRead" boolean NOT NULL DEFAULT false, "fileId" character varying(32), CONSTRAINT "PK_db398fd79dc95d0eb8c30456eaa" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_e21cd3646e52ef9c94aaf17c2e" ON "messaging_message" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_5377c307783fce2b6d352e1203" ON "messaging_message" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_cac14a4e3944454a5ce7daa514" ON "messaging_message" ("recipientId") `); + await queryRunner.query(`CREATE TABLE "signin" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "ip" character varying(128) NOT NULL, "headers" jsonb NOT NULL, "success" boolean NOT NULL, CONSTRAINT "PK_9e96ddc025712616fc492b3b588" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_2c308dbdc50d94dc625670055f" ON "signin" ("userId") `); + await queryRunner.query(`CREATE TABLE "auth_session" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "userId" character varying(32), "appId" character varying(32) NOT NULL, CONSTRAINT "PK_19354ed146424a728c1112a8cbf" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_62cb09e1129f6ec024ef66e183" ON "auth_session" ("token") `); + await queryRunner.query(`CREATE TABLE "follow_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "requestId" character varying(128), "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_53a9aa3725f7a3deb150b39dbfc" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_12c01c0d1a79f77d9f6c15fadd" ON "follow_request" ("followeeId") `); + await queryRunner.query(`CREATE INDEX "IDX_a7fd92dd6dc519e6fb435dd108" ON "follow_request" ("followerId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d54a512b822fac7ed52800f6b4" ON "follow_request" ("followerId", "followeeId") `); + await queryRunner.query(`CREATE TABLE "emoji" ("id" character varying(32) NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "name" character varying(128) NOT NULL, "host" character varying(128), "url" character varying(512) NOT NULL, "uri" character varying(512), "type" character varying(64), "aliases" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_df74ce05e24999ee01ea0bc50a3" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b37dafc86e9af007e3295c2781" ON "emoji" ("name") `); + await queryRunner.query(`CREATE INDEX "IDX_5900e907bb46516ddf2871327c" ON "emoji" ("host") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4f4d35e1256c84ae3d1f0eab10" ON "emoji" ("name", "host") `); + await queryRunner.query(`CREATE TABLE "reversi_game" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "startedAt" TIMESTAMP WITH TIME ZONE, "user1Id" character varying(32) NOT NULL, "user2Id" character varying(32) NOT NULL, "user1Accepted" boolean NOT NULL DEFAULT false, "user2Accepted" boolean NOT NULL DEFAULT false, "black" integer, "isStarted" boolean NOT NULL DEFAULT false, "isEnded" boolean NOT NULL DEFAULT false, "winnerId" character varying(32), "surrendered" character varying(32), "logs" jsonb NOT NULL DEFAULT '[]', "map" character varying(64) array NOT NULL, "bw" character varying(32) NOT NULL, "isLlotheo" boolean NOT NULL DEFAULT false, "canPutEverywhere" boolean NOT NULL DEFAULT false, "loopedBoard" boolean NOT NULL DEFAULT false, "form1" jsonb DEFAULT null, "form2" jsonb DEFAULT null, "crc32" character varying(32), CONSTRAINT "PK_76b30eeba71b1193ad7c5311c3f" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b46ec40746efceac604142be1c" ON "reversi_game" ("createdAt") `); + await queryRunner.query(`CREATE TABLE "reversi_matching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "parentId" character varying(32) NOT NULL, "childId" character varying(32) NOT NULL, CONSTRAINT "PK_880bd0afbab232f21c8b9d146cf" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_b604d92d6c7aec38627f6eaf16" ON "reversi_matching" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_3b25402709dd9882048c2bbade" ON "reversi_matching" ("parentId") `); + await queryRunner.query(`CREATE INDEX "IDX_e247b23a3c9b45f89ec1299d06" ON "reversi_matching" ("childId") `); + await queryRunner.query(`CREATE TABLE "user_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_a6a2dad4ae000abce2ea9d9b103" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_bfbc6f79ba4007b4ce5097f08d" ON "user_note_pining" ("userId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_410cd649884b501c02d6e72738" ON "user_note_pining" ("userId", "noteId") `); + await queryRunner.query(`CREATE TYPE "poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`); + await queryRunner.query(`CREATE TABLE "poll" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE, "multiple" boolean NOT NULL, "choices" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "votes" integer array NOT NULL, "noteVisibility" "poll_notevisibility_enum" NOT NULL, "userId" character varying(32) NOT NULL, "userHost" character varying(128), CONSTRAINT "REL_da851e06d0dfe2ef397d8b1bf1" UNIQUE ("noteId"), CONSTRAINT "PK_da851e06d0dfe2ef397d8b1bf1b" PRIMARY KEY ("noteId"))`); + await queryRunner.query(`CREATE INDEX "IDX_0610ebcfcfb4a18441a9bcdab2" ON "poll" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_7fa20a12319c7f6dc3aed98c0a" ON "poll" ("userHost") `); + await queryRunner.query(`CREATE TABLE "user_keypair" ("userId" character varying(32) NOT NULL, "publicKey" character varying(4096) NOT NULL, "privateKey" character varying(4096) NOT NULL, CONSTRAINT "REL_f4853eb41ab722fe05f81cedeb" UNIQUE ("userId"), CONSTRAINT "PK_f4853eb41ab722fe05f81cedeb6" PRIMARY KEY ("userId"))`); + await queryRunner.query(`CREATE TABLE "user_publickey" ("userId" character varying(32) NOT NULL, "keyId" character varying(256) NOT NULL, "keyPem" character varying(4096) NOT NULL, CONSTRAINT "REL_10c146e4b39b443ede016f6736" UNIQUE ("userId"), CONSTRAINT "PK_10c146e4b39b443ede016f6736d" PRIMARY KEY ("userId"))`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_171e64971c780ebd23fae140bb" ON "user_publickey" ("keyId") `); + await queryRunner.query(`CREATE TABLE "user_profile" ("userId" character varying(32) NOT NULL, "location" character varying(128), "birthday" character(10), "description" character varying(1024), "fields" jsonb NOT NULL DEFAULT '[]', "url" character varying(512), "email" character varying(128), "emailVerifyCode" character varying(128), "emailVerified" boolean NOT NULL DEFAULT false, "twoFactorTempSecret" character varying(128), "twoFactorSecret" character varying(128), "twoFactorEnabled" boolean NOT NULL DEFAULT false, "password" character varying(128), "clientData" jsonb NOT NULL DEFAULT '{}', "autoWatch" boolean NOT NULL DEFAULT false, "autoAcceptFollowed" boolean NOT NULL DEFAULT false, "alwaysMarkNsfw" boolean NOT NULL DEFAULT false, "carefulBot" boolean NOT NULL DEFAULT false, "twitter" boolean NOT NULL DEFAULT false, "twitterAccessToken" character varying(64) DEFAULT null, "twitterAccessTokenSecret" character varying(64) DEFAULT null, "twitterUserId" character varying(64) DEFAULT null, "twitterScreenName" character varying(64) DEFAULT null, "github" boolean NOT NULL DEFAULT false, "githubAccessToken" character varying(64) DEFAULT null, "githubId" integer DEFAULT null, "githubLogin" character varying(64) DEFAULT null, "discord" boolean NOT NULL DEFAULT false, "discordAccessToken" character varying(64) DEFAULT null, "discordRefreshToken" character varying(64) DEFAULT null, "discordExpiresDate" integer DEFAULT null, "discordId" character varying(64) DEFAULT null, "discordUsername" character varying(64) DEFAULT null, "discordDiscriminator" character varying(64) DEFAULT null, "userHost" character varying(128), CONSTRAINT "REL_51cb79b5555effaf7d69ba1cff" UNIQUE ("userId"), CONSTRAINT "PK_51cb79b5555effaf7d69ba1cff9" PRIMARY KEY ("userId"))`); + await queryRunner.query(`CREATE INDEX "IDX_dce530b98e454793dac5ec2f5a" ON "user_profile" ("userHost") `); + await queryRunner.query(`CREATE TYPE "__chart__active_users_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__active_users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_317237a9f733b970604a11e314f" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__drive_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "PK_f96bc548a765cd4b3b354221ce7" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__federation_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__federation_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "PK_b39dcd31a0fe1a7757e348e85fd" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__hashtag_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__hashtag_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_c32f1ea2b44a5d2f7881e37f8f9" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__instance_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__instance_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "PK_1267c67c7c2d47b4903975f2c00" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__network_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__network_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "PK_bc4290c2e27fad14ef0c1ca93f3" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__notes_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "PK_0aec823fa85c7f901bdb3863b14" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "PK_d0ef23d24d666e1a44a0cd3d208" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_following_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "PK_85bb1b540363a29c2fec83bd907" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "PK_334acf6e915af2f29edc11b8e50" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_reaction_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_984f54dae441e65b633e8d27a7f" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__test_grouped" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_grouped_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_f4a2b175d308695af30d4293272" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__test_unique_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__test_unique" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_unique_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo" bigint NOT NULL, CONSTRAINT "PK_409bac9c97cc612d8500012319d" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__test_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__test" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_b4bc31dffbd1b785276a3ecfc1e" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE TYPE "__chart__users_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`CREATE TABLE "__chart__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "PK_4dfcf2c78d03524b9eb2c99d328" PRIMARY KEY ("id"))`); + await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2" FOREIGN KEY ("parentId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a" FOREIGN KEY ("folderId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5" FOREIGN KEY ("avatarId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "app" ADD CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5" FOREIGN KEY ("replyId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_52ccc804d7c69037d558bac4c96" FOREIGN KEY ("renoteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_13761f64257f40c5636d0ff95ee" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_b0134ec406e8d09a540f8182888" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_e637cba4dc4410218c4251260e4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9" FOREIGN KEY ("notifieeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_24e0042143a18157b234df186c3" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c" FOREIGN KEY ("muteeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_93060675b4a79a577f31d260c67" FOREIGN KEY ("muterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "sw_subscription" ADD CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_2cd4a2743a99671308f5417759e" FOREIGN KEY ("blockeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_0627125f1a8a42c9a1929edb552" FOREIGN KEY ("blockerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_list" ADD CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_d844bfc6f3f523a05189076efaa" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_605472305f26818cc93d1baaa74" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_0e00498f180193423c992bc4370" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_5377c307783fce2b6d352e1203b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142" FOREIGN KEY ("recipientId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_535def119223ac05ad3fa9ef64b" FOREIGN KEY ("fileId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "signin" ADD CONSTRAINT "FK_2c308dbdc50d94dc625670055f7" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_c072b729d71697f959bde66ade0" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_f7467510c60a45ce5aca6292743" FOREIGN KEY ("user1Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6" FOREIGN KEY ("user2Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_3b25402709dd9882048c2bbade0" FOREIGN KEY ("parentId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066" FOREIGN KEY ("childId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_68881008f7c3588ad7ecae471cf" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "poll" ADD CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_keypair" ADD CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "FK_10c146e4b39b443ede016f6736d" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`); + await queryRunner.query(`ALTER TABLE "user_publickey" DROP CONSTRAINT "FK_10c146e4b39b443ede016f6736d"`); + await queryRunner.query(`ALTER TABLE "user_keypair" DROP CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6"`); + await queryRunner.query(`ALTER TABLE "poll" DROP CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b"`); + await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_68881008f7c3588ad7ecae471cf"`); + await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6"`); + await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066"`); + await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_3b25402709dd9882048c2bbade0"`); + await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6"`); + await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_f7467510c60a45ce5aca6292743"`); + await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f"`); + await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2"`); + await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee"`); + await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_c072b729d71697f959bde66ade0"`); + await queryRunner.query(`ALTER TABLE "signin" DROP CONSTRAINT "FK_2c308dbdc50d94dc625670055f7"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_535def119223ac05ad3fa9ef64b"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_5377c307783fce2b6d352e1203b"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`); + await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_0e00498f180193423c992bc4370"`); + await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a"`); + await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_605472305f26818cc93d1baaa74"`); + await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_d844bfc6f3f523a05189076efaa"`); + await queryRunner.query(`ALTER TABLE "user_list" DROP CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99"`); + await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_0627125f1a8a42c9a1929edb552"`); + await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_2cd4a2743a99671308f5417759e"`); + await queryRunner.query(`ALTER TABLE "sw_subscription" DROP CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd"`); + await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_93060675b4a79a577f31d260c67"`); + await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c"`); + await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5"`); + await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_24e0042143a18157b234df186c3"`); + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453"`); + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`); + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9"`); + await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_e637cba4dc4410218c4251260e4"`); + await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9"`); + await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619"`); + await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_b0134ec406e8d09a540f8182888"`); + await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a"`); + await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_13761f64257f40c5636d0ff95ee"`); + await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7"`); + await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8"`); + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b"`); + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`); + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_52ccc804d7c69037d558bac4c96"`); + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5"`); + await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`); + await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9"`); + await queryRunner.query(`ALTER TABLE "app" DROP CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3"`); + await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2"`); + await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5"`); + await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a"`); + await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e"`); + await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2"`); + await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2"`); + await queryRunner.query(`DROP TABLE "__chart__users"`); + await queryRunner.query(`DROP TYPE "__chart__users_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__test"`); + await queryRunner.query(`DROP TYPE "__chart__test_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__test_unique"`); + await queryRunner.query(`DROP TYPE "__chart__test_unique_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__test_grouped"`); + await queryRunner.query(`DROP TYPE "__chart__test_grouped_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__per_user_reaction"`); + await queryRunner.query(`DROP TYPE "__chart__per_user_reaction_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__per_user_notes"`); + await queryRunner.query(`DROP TYPE "__chart__per_user_notes_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__per_user_following"`); + await queryRunner.query(`DROP TYPE "__chart__per_user_following_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__per_user_drive"`); + await queryRunner.query(`DROP TYPE "__chart__per_user_drive_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__notes"`); + await queryRunner.query(`DROP TYPE "__chart__notes_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__network"`); + await queryRunner.query(`DROP TYPE "__chart__network_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__instance"`); + await queryRunner.query(`DROP TYPE "__chart__instance_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__hashtag"`); + await queryRunner.query(`DROP TYPE "__chart__hashtag_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__federation"`); + await queryRunner.query(`DROP TYPE "__chart__federation_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__drive"`); + await queryRunner.query(`DROP TYPE "__chart__drive_span_enum"`); + await queryRunner.query(`DROP TABLE "__chart__active_users"`); + await queryRunner.query(`DROP TYPE "__chart__active_users_span_enum"`); + await queryRunner.query(`DROP INDEX "IDX_dce530b98e454793dac5ec2f5a"`); + await queryRunner.query(`DROP TABLE "user_profile"`); + await queryRunner.query(`DROP INDEX "IDX_171e64971c780ebd23fae140bb"`); + await queryRunner.query(`DROP TABLE "user_publickey"`); + await queryRunner.query(`DROP TABLE "user_keypair"`); + await queryRunner.query(`DROP INDEX "IDX_7fa20a12319c7f6dc3aed98c0a"`); + await queryRunner.query(`DROP INDEX "IDX_0610ebcfcfb4a18441a9bcdab2"`); + await queryRunner.query(`DROP TABLE "poll"`); + await queryRunner.query(`DROP TYPE "poll_notevisibility_enum"`); + await queryRunner.query(`DROP INDEX "IDX_410cd649884b501c02d6e72738"`); + await queryRunner.query(`DROP INDEX "IDX_bfbc6f79ba4007b4ce5097f08d"`); + await queryRunner.query(`DROP TABLE "user_note_pining"`); + await queryRunner.query(`DROP INDEX "IDX_e247b23a3c9b45f89ec1299d06"`); + await queryRunner.query(`DROP INDEX "IDX_3b25402709dd9882048c2bbade"`); + await queryRunner.query(`DROP INDEX "IDX_b604d92d6c7aec38627f6eaf16"`); + await queryRunner.query(`DROP TABLE "reversi_matching"`); + await queryRunner.query(`DROP INDEX "IDX_b46ec40746efceac604142be1c"`); + await queryRunner.query(`DROP TABLE "reversi_game"`); + await queryRunner.query(`DROP INDEX "IDX_4f4d35e1256c84ae3d1f0eab10"`); + await queryRunner.query(`DROP INDEX "IDX_5900e907bb46516ddf2871327c"`); + await queryRunner.query(`DROP INDEX "IDX_b37dafc86e9af007e3295c2781"`); + await queryRunner.query(`DROP TABLE "emoji"`); + await queryRunner.query(`DROP INDEX "IDX_d54a512b822fac7ed52800f6b4"`); + await queryRunner.query(`DROP INDEX "IDX_a7fd92dd6dc519e6fb435dd108"`); + await queryRunner.query(`DROP INDEX "IDX_12c01c0d1a79f77d9f6c15fadd"`); + await queryRunner.query(`DROP TABLE "follow_request"`); + await queryRunner.query(`DROP INDEX "IDX_62cb09e1129f6ec024ef66e183"`); + await queryRunner.query(`DROP TABLE "auth_session"`); + await queryRunner.query(`DROP INDEX "IDX_2c308dbdc50d94dc625670055f"`); + await queryRunner.query(`DROP TABLE "signin"`); + await queryRunner.query(`DROP INDEX "IDX_cac14a4e3944454a5ce7daa514"`); + await queryRunner.query(`DROP INDEX "IDX_5377c307783fce2b6d352e1203"`); + await queryRunner.query(`DROP INDEX "IDX_e21cd3646e52ef9c94aaf17c2e"`); + await queryRunner.query(`DROP TABLE "messaging_message"`); + await queryRunner.query(`DROP INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59"`); + await queryRunner.query(`DROP TABLE "registration_ticket"`); + await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`); + await queryRunner.query(`DROP INDEX "IDX_04cc96756f89d0b7f9473e8cdf"`); + await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`); + await queryRunner.query(`DROP INDEX "IDX_db2098070b2b5a523c58181f74"`); + await queryRunner.query(`DROP TABLE "abuse_user_report"`); + await queryRunner.query(`DROP INDEX "IDX_0f4fb9ad355f3effff221ef245"`); + await queryRunner.query(`DROP INDEX "IDX_47f4b1892f5d6ba8efb3057d81"`); + await queryRunner.query(`DROP TABLE "note_favorite"`); + await queryRunner.query(`DROP INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2"`); + await queryRunner.query(`DROP INDEX "IDX_0c44bf4f680964145f2a68a341"`); + await queryRunner.query(`DROP INDEX "IDX_d57f9030cd3af7f63ffb1c267c"`); + await queryRunner.query(`DROP INDEX "IDX_4c02d38a976c3ae132228c6fce"`); + await queryRunner.query(`DROP INDEX "IDX_0e206cec573f1edff4a3062923"`); + await queryRunner.query(`DROP INDEX "IDX_2710a55f826ee236ea1a62698f"`); + await queryRunner.query(`DROP INDEX "IDX_347fec870eafea7b26c8a73bac"`); + await queryRunner.query(`DROP TABLE "hashtag"`); + await queryRunner.query(`DROP INDEX "IDX_605472305f26818cc93d1baaa7"`); + await queryRunner.query(`DROP INDEX "IDX_d844bfc6f3f523a05189076efa"`); + await queryRunner.query(`DROP TABLE "user_list_joining"`); + await queryRunner.query(`DROP INDEX "IDX_b7fcefbdd1c18dce86687531f9"`); + await queryRunner.query(`DROP TABLE "user_list"`); + await queryRunner.query(`DROP INDEX "IDX_98a1bc5cb30dfd159de056549f"`); + await queryRunner.query(`DROP INDEX "IDX_0627125f1a8a42c9a1929edb55"`); + await queryRunner.query(`DROP INDEX "IDX_2cd4a2743a99671308f5417759"`); + await queryRunner.query(`DROP INDEX "IDX_b9a354f7941c1e779f3b33aea6"`); + await queryRunner.query(`DROP TABLE "blocking"`); + await queryRunner.query(`DROP INDEX "IDX_97754ca6f2baff9b4abb7f853d"`); + await queryRunner.query(`DROP TABLE "sw_subscription"`); + await queryRunner.query(`DROP INDEX "IDX_1eb9d9824a630321a29fd3b290"`); + await queryRunner.query(`DROP INDEX "IDX_93060675b4a79a577f31d260c6"`); + await queryRunner.query(`DROP INDEX "IDX_ec96b4fed9dae517e0dbbe0675"`); + await queryRunner.query(`DROP INDEX "IDX_f86d57fbca33c7a4e6897490cc"`); + await queryRunner.query(`DROP TABLE "muting"`); + await queryRunner.query(`DROP INDEX "IDX_8d5afc98982185799b160e10eb"`); + await queryRunner.query(`DROP INDEX "IDX_2cd3b2a6b4cf0b910b260afe08"`); + await queryRunner.query(`DROP TABLE "instance"`); + await queryRunner.query(`DROP INDEX "IDX_307be5f1d1252e0388662acb96"`); + await queryRunner.query(`DROP INDEX "IDX_6516c5a6f3c015b4eed39978be"`); + await queryRunner.query(`DROP INDEX "IDX_24e0042143a18157b234df186c"`); + await queryRunner.query(`DROP INDEX "IDX_582f8fab771a9040a12961f3e7"`); + await queryRunner.query(`DROP TABLE "following"`); + await queryRunner.query(`DROP TABLE "meta"`); + await queryRunner.query(`DROP INDEX "IDX_3c601b70a1066d2c8b517094cb"`); + await queryRunner.query(`DROP INDEX "IDX_b11a5e627c41d4dc3170f1d370"`); + await queryRunner.query(`DROP TABLE "notification"`); + await queryRunner.query(`DROP INDEX "IDX_d908433a4953cc13216cd9c274"`); + await queryRunner.query(`DROP INDEX "IDX_e637cba4dc4410218c4251260e"`); + await queryRunner.query(`DROP INDEX "IDX_56b0166d34ddae49d8ef7610bb"`); + await queryRunner.query(`DROP TABLE "note_unread"`); + await queryRunner.query(`DROP INDEX "IDX_a42c93c69989ce1d09959df4cf"`); + await queryRunner.query(`DROP INDEX "IDX_44499765eec6b5489d72c4253b"`); + await queryRunner.query(`DROP INDEX "IDX_03e7028ab8388a3f5e3ce2a861"`); + await queryRunner.query(`DROP INDEX "IDX_b0134ec406e8d09a540f818288"`); + await queryRunner.query(`DROP INDEX "IDX_318cdf42a9cfc11f479bd802bb"`); + await queryRunner.query(`DROP TABLE "note_watching"`); + await queryRunner.query(`DROP INDEX "IDX_ad0c221b25672daf2df320a817"`); + await queryRunner.query(`DROP INDEX "IDX_45145e4953780f3cd5656f0ea6"`); + await queryRunner.query(`DROP INDEX "IDX_13761f64257f40c5636d0ff95e"`); + await queryRunner.query(`DROP INDEX "IDX_01f4581f114e0ebd2bbb876f0b"`); + await queryRunner.query(`DROP TABLE "note_reaction"`); + await queryRunner.query(`DROP INDEX "IDX_50bd7164c5b78f1f4a42c4d21f"`); + await queryRunner.query(`DROP INDEX "IDX_aecfbd5ef60374918e63ee95fa"`); + await queryRunner.query(`DROP INDEX "IDX_66d2bd2ee31d14bcc23069a89f"`); + await queryRunner.query(`DROP INDEX "IDX_0fb627e1c2f753262a74f0562d"`); + await queryRunner.query(`DROP TABLE "poll_vote"`); + await queryRunner.query(`DROP INDEX "IDX_7125a826ab192eb27e11d358a5"`); + await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`); + await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`); + await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`); + await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`); + await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`); + await queryRunner.query(`DROP INDEX "IDX_153536c67d05e9adb24e99fc2b"`); + await queryRunner.query(`DROP INDEX "IDX_5b87d9d19127bd5d92026017a7"`); + await queryRunner.query(`DROP INDEX "IDX_52ccc804d7c69037d558bac4c9"`); + await queryRunner.query(`DROP INDEX "IDX_17cb3553c700a4985dff5a30ff"`); + await queryRunner.query(`DROP INDEX "IDX_e7c0567f5261063592f022e9b5"`); + await queryRunner.query(`DROP TABLE "note"`); + await queryRunner.query(`DROP TYPE "note_visibility_enum"`); + await queryRunner.query(`DROP INDEX "IDX_9949557d0e1b2c19e5344c171e"`); + await queryRunner.query(`DROP INDEX "IDX_64c327441248bae40f7d92f34f"`); + await queryRunner.query(`DROP INDEX "IDX_70ba8f6af34bc924fc9e12adb8"`); + await queryRunner.query(`DROP TABLE "access_token"`); + await queryRunner.query(`DROP INDEX "IDX_f49922d511d666848f250663c4"`); + await queryRunner.query(`DROP INDEX "IDX_3f5b0899ef90527a3462d7c2cb"`); + await queryRunner.query(`DROP INDEX "IDX_048a757923ed8b157e9895da53"`); + await queryRunner.query(`DROP TABLE "app"`); + await queryRunner.query(`DROP INDEX "IDX_5deb01ae162d1d70b80d064c27"`); + await queryRunner.query(`DROP INDEX "IDX_a854e557b1b14814750c7c7b0c"`); + await queryRunner.query(`DROP INDEX "IDX_be623adaa4c566baf5d29ce0c8"`); + await queryRunner.query(`DROP INDEX "IDX_3252a5df8d5bbd16b281f7799e"`); + await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`); + await queryRunner.query(`DROP INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8"`); + await queryRunner.query(`DROP INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4"`); + await queryRunner.query(`DROP INDEX "IDX_e11e649824a45d8ed01d597fd9"`); + await queryRunner.query(`DROP TABLE "user"`); + await queryRunner.query(`DROP INDEX "IDX_bb90d1956dafc4068c28aa7560"`); + await queryRunner.query(`DROP INDEX "IDX_e5848eac4940934e23dbc17581"`); + await queryRunner.query(`DROP INDEX "IDX_c55b2b7c284d9fef98026fc88e"`); + await queryRunner.query(`DROP INDEX "IDX_e74022ce9a074b3866f70e0d27"`); + await queryRunner.query(`DROP INDEX "IDX_d85a184c2540d2deba33daf642"`); + await queryRunner.query(`DROP INDEX "IDX_a40b8df8c989d7db937ea27cf6"`); + await queryRunner.query(`DROP INDEX "IDX_37bb9a1b4585f8a3beb24c62d6"`); + await queryRunner.query(`DROP INDEX "IDX_92779627994ac79277f070c91e"`); + await queryRunner.query(`DROP INDEX "IDX_860fa6f6c7df5bb887249fba22"`); + await queryRunner.query(`DROP INDEX "IDX_c8dfad3b72196dd1d6b5db168a"`); + await queryRunner.query(`DROP TABLE "drive_file"`); + await queryRunner.query(`DROP INDEX "IDX_00ceffb0cdc238b3233294f08f"`); + await queryRunner.query(`DROP INDEX "IDX_f4fc06e49c0171c85f1c48060d"`); + await queryRunner.query(`DROP INDEX "IDX_02878d441ceae15ce060b73daf"`); + await queryRunner.query(`DROP TABLE "drive_folder"`); + await queryRunner.query(`DROP INDEX "IDX_584b536b49e53ac81beb39a177"`); + await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); + await queryRunner.query(`DROP INDEX "IDX_8e4eb51a35d81b64dda28eed0a"`); + await queryRunner.query(`DROP TABLE "log"`); + await queryRunner.query(`DROP TYPE "log_level_enum"`); + } + +} diff --git a/migration/1556348509290-Pages.ts b/migration/1556348509290-Pages.ts new file mode 100644 index 000000000..c44b4b1f7 --- /dev/null +++ b/migration/1556348509290-Pages.ts @@ -0,0 +1,31 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class Pages1556348509290 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`); + await queryRunner.query(`CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_af639b066dfbca78b01a920f8a" ON "page" ("updatedAt") `); + await queryRunner.query(`CREATE INDEX "IDX_b82c19c08afb292de4600d99e4" ON "page" ("name") `); + await queryRunner.query(`CREATE INDEX "IDX_ae1d917992dd0c9d9bbdad06c4" ON "page" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_90148bbc2bf0854428786bfc15" ON "page" ("visibleUserIds") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2133ef8317e4bdb839c0dcbf13" ON "page" ("userId", "name") `); + await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`); + await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a"`); + await queryRunner.query(`DROP INDEX "IDX_2133ef8317e4bdb839c0dcbf13"`); + await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); + await queryRunner.query(`DROP INDEX "IDX_ae1d917992dd0c9d9bbdad06c4"`); + await queryRunner.query(`DROP INDEX "IDX_b82c19c08afb292de4600d99e4"`); + await queryRunner.query(`DROP INDEX "IDX_af639b066dfbca78b01a920f8a"`); + await queryRunner.query(`DROP INDEX "IDX_fbb4297c927a9b85e9cefa2eb1"`); + await queryRunner.query(`DROP TABLE "page"`); + await queryRunner.query(`DROP TYPE "page_visibility_enum"`); + } + +} diff --git a/migration/1556746559567-UserProfile.ts b/migration/1556746559567-UserProfile.ts new file mode 100644 index 000000000..2dc7349cc --- /dev/null +++ b/migration/1556746559567-UserProfile.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class UserProfile1556746559567 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`); + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`UPDATE "user_profile" SET github = FALSE, discord = FALSE`); + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`); + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`); + } + +} diff --git a/migration/1557476068003-PinnedUsers.ts b/migration/1557476068003-PinnedUsers.ts new file mode 100644 index 000000000..4e7222aaf --- /dev/null +++ b/migration/1557476068003-PinnedUsers.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class PinnedUsers1557476068003 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`); + } + +} diff --git a/migration/1557761316509-AddSomeUrls.ts b/migration/1557761316509-AddSomeUrls.ts new file mode 100644 index 000000000..a0a2c7970 --- /dev/null +++ b/migration/1557761316509-AddSomeUrls.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class AddSomeUrls1557761316509 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/syuilo/misskey'`); + await queryRunner.query(`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/syuilo/misskey/issues/new'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`); + } +} diff --git a/migration/1557932705754-ObjectStorageSetting.ts b/migration/1557932705754-ObjectStorageSetting.ts new file mode 100644 index 000000000..dde6aa65f --- /dev/null +++ b/migration/1557932705754-ObjectStorageSetting.ts @@ -0,0 +1,31 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ObjectStorageSetting1557932705754 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBaseUrl" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageEndpoint" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageRegion" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageAccessKey" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSecretKey" character varying(512)`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePort" integer`); + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageAccessKey"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageRegion"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageEndpoint"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBaseUrl"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePrefix"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`); + } + +} diff --git a/migration/1558072954435-PageLike.ts b/migration/1558072954435-PageLike.ts new file mode 100644 index 000000000..93cdb8afe --- /dev/null +++ b/migration/1558072954435-PageLike.ts @@ -0,0 +1,23 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class PageLike1558072954435 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `); + await queryRunner.query(`ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`); + await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`); + await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`); + await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`); + await queryRunner.query(`DROP INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa"`); + await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`); + await queryRunner.query(`DROP TABLE "page_like"`); + } + +} diff --git a/migration/1558103093633-UserGroup.ts b/migration/1558103093633-UserGroup.ts new file mode 100644 index 000000000..04783b8df --- /dev/null +++ b/migration/1558103093633-UserGroup.ts @@ -0,0 +1,41 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class UserGroup1558103093633 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `); + await queryRunner.query(`CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`); + await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`); + await queryRunner.query(`CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `); + await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`); + await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`); + await queryRunner.query(`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_2c4be03b446884f9e9c502135be"`); + await queryRunner.query(`DROP INDEX "IDX_2c4be03b446884f9e9c502135b"`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS ''`); + await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" SET NOT NULL`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "reads"`); + await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "groupId"`); + await queryRunner.query(`DROP INDEX "IDX_67dc758bc0566985d1b3d39986"`); + await queryRunner.query(`DROP INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23"`); + await queryRunner.query(`DROP TABLE "user_group_joining"`); + await queryRunner.query(`DROP INDEX "IDX_3d6b372788ab01be58853003c9"`); + await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`); + await queryRunner.query(`DROP TABLE "user_group"`); + } + +} diff --git a/migration/1558257926829-UserGroupInvite.ts b/migration/1558257926829-UserGroupInvite.ts new file mode 100644 index 000000000..a78e47922 --- /dev/null +++ b/migration/1558257926829-UserGroupInvite.ts @@ -0,0 +1,25 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class UserGroupInvite1558257926829 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `); + await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`); + await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`); + await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`); + await queryRunner.query(`DROP INDEX "IDX_78787741f9010886796f2320a4"`); + await queryRunner.query(`DROP INDEX "IDX_e10924607d058004304611a436"`); + await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`); + await queryRunner.query(`DROP TABLE "user_group_invite"`); + } + +} diff --git a/migration/1558266512381-UserListJoining.ts b/migration/1558266512381-UserListJoining.ts new file mode 100644 index 000000000..f4a917045 --- /dev/null +++ b/migration/1558266512381-UserListJoining.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class UserListJoining1558266512381 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`); + } + +} diff --git a/migration/1561706992953-webauthn.ts b/migration/1561706992953-webauthn.ts new file mode 100644 index 000000000..fc1f0c042 --- /dev/null +++ b/migration/1561706992953-webauthn.ts @@ -0,0 +1,29 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class webauthn1561706992953 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`); + await queryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `); + await queryRunner.query(`CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`); + await queryRunner.query(`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`); + await queryRunner.query(`DROP INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7"`); + await queryRunner.query(`DROP INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44"`); + await queryRunner.query(`DROP TABLE "user_security_key"`); + await queryRunner.query(`DROP INDEX "IDX_47efb914aed1f72dd39a306c7b"`); + await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`); + await queryRunner.query(`DROP TABLE "attestation_challenge"`); + } + +} diff --git a/migration/1561873850023-ChartIndexes.ts b/migration/1561873850023-ChartIndexes.ts new file mode 100644 index 000000000..b870ad3b7 --- /dev/null +++ b/migration/1561873850023-ChartIndexes.ts @@ -0,0 +1,201 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ChartIndexes1561873850023 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("span", "date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `); + await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `); + await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("span", "date") `); + await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); + await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); + await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); + await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); + await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`); + await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); + await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`); + await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); + await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`); + await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); + await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`); + await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); + await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`); + await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); + await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`); + await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); + await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`); + await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); + await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`); + await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); + await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`); + await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); + await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`); + await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); + await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`); + await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); + await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`); + await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); + await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`); + await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); + await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`); + await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); + await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`); + await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); + await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`); + await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); + await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`); + await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); + await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`); + await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); + await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`); + await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); + await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`); + await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); + await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`); + await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); + await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`); + await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); + await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`); + await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); + await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`); + await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); + await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`); + await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); + await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`); + await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); + await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`); + await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); + await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`); + await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); + await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`); + await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); + await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`); + await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); + await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`); + await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); + await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`); + await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); + await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`); + await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); + await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`); + await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); + await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`); + await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); + await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`); + await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); + await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`); + await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); + await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`); + await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); + await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`); + await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); + await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`); + await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); + await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`); + await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); + await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`); + await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); + await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`); + await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); + await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`); + await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); + await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`); + await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`); + await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`); + await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`); + await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`); + await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`); + await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`); + await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`); + await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); + } + +} diff --git a/migration/1562422242907-PasswordLessLogin.ts b/migration/1562422242907-PasswordLessLogin.ts new file mode 100644 index 000000000..e789a3433 --- /dev/null +++ b/migration/1562422242907-PasswordLessLogin.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class PasswordLessLogin1562422242907 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`); + } + +} diff --git a/migration/1562444565093-PinnedPage.ts b/migration/1562444565093-PinnedPage.ts new file mode 100644 index 000000000..4bdee2274 --- /dev/null +++ b/migration/1562444565093-PinnedPage.ts @@ -0,0 +1,17 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class PinnedPage1562444565093 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`); + await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`); + } + +} diff --git a/migration/1562448332510-PageTitleHideOption.ts b/migration/1562448332510-PageTitleHideOption.ts new file mode 100644 index 000000000..acc9b7e26 --- /dev/null +++ b/migration/1562448332510-PageTitleHideOption.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class PageTitleHideOption1562448332510 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`); + } + +} diff --git a/migration/1562869971568-ModerationLog.ts b/migration/1562869971568-ModerationLog.ts new file mode 100644 index 000000000..b37f38ee5 --- /dev/null +++ b/migration/1562869971568-ModerationLog.ts @@ -0,0 +1,17 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ModerationLog1562869971568 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `); + await queryRunner.query(`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`); + await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`); + await queryRunner.query(`DROP TABLE "moderation_log"`); + } + +} diff --git a/migration/1563757595828-UsedUsername.ts b/migration/1563757595828-UsedUsername.ts new file mode 100644 index 000000000..a076fcc0c --- /dev/null +++ b/migration/1563757595828-UsedUsername.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class UsedUsername1563757595828 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP TABLE "used_username"`); + } + +} diff --git a/migration/1565634203341-room.ts b/migration/1565634203341-room.ts new file mode 100644 index 000000000..783b375ff --- /dev/null +++ b/migration/1565634203341-room.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class room1565634203341 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`); + } + +} diff --git a/migration/1571220798684-CustomEmojiCategory.ts b/migration/1571220798684-CustomEmojiCategory.ts new file mode 100644 index 000000000..37f63fa3d --- /dev/null +++ b/migration/1571220798684-CustomEmojiCategory.ts @@ -0,0 +1,13 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class CustomEmojiCategory1571220798684 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined); + } + +} diff --git a/migration/1572760203493-nodeinfo.ts b/migration/1572760203493-nodeinfo.ts new file mode 100644 index 000000000..88d8df723 --- /dev/null +++ b/migration/1572760203493-nodeinfo.ts @@ -0,0 +1,29 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class nodeinfo1572760203493 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "system"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "openRegistrations" boolean DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "name" character varying(256) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "description" character varying(4096) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerName" character varying(128) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerName"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "description"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "name"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "openRegistrations"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareVersion"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareName"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "system" character varying(64)`, undefined); + } + +} diff --git a/migration/1576269851876-TalkFederationId.ts b/migration/1576269851876-TalkFederationId.ts new file mode 100644 index 000000000..57e86c8b0 --- /dev/null +++ b/migration/1576269851876-TalkFederationId.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class TalkFederationId1576269851876 implements MigrationInterface { + name = 'TalkFederationId1576269851876' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined); + } + +} diff --git a/migration/1576869585998-ProxyRemoteFiles.ts b/migration/1576869585998-ProxyRemoteFiles.ts new file mode 100644 index 000000000..1d15370bb --- /dev/null +++ b/migration/1576869585998-ProxyRemoteFiles.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ProxyRemoteFiles1576869585998 implements MigrationInterface { + name = 'ProxyRemoteFiles1576869585998' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined); + } + +} diff --git a/migration/1579267006611-v12.ts b/migration/1579267006611-v12.ts new file mode 100644 index 000000000..2c15283fa --- /dev/null +++ b/migration/1579267006611-v12.ts @@ -0,0 +1,34 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v121579267006611 implements MigrationInterface { + name = 'v121579267006611' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `, undefined); + await queryRunner.query(`CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_8288151386172b8109f7239ab2" ON "announcement_read" ("userId") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf" ON "announcement_read" ("announcementId") `, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_924fa71815cfa3941d003702a0" ON "announcement_read" ("userId", "announcementId") `, undefined); + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isVerified"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "announcements"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableEmojiReaction"`, undefined); + await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, undefined); + await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "announcements" jsonb NOT NULL DEFAULT '[]'`, undefined); + await queryRunner.query(`ALTER TABLE "user" ADD "isVerified" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`DROP INDEX "IDX_924fa71815cfa3941d003702a0"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_8288151386172b8109f7239ab2"`, undefined); + await queryRunner.query(`DROP TABLE "announcement_read"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_118ec703e596086fc4515acb39"`, undefined); + await queryRunner.query(`DROP TABLE "announcement"`, undefined); + } + +} diff --git a/migration/1579270193251-v12-2.ts b/migration/1579270193251-v12-2.ts new file mode 100644 index 000000000..efad0cd56 --- /dev/null +++ b/migration/1579270193251-v12-2.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1221579270193251 implements MigrationInterface { + name = 'v1221579270193251' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined); + } + +} diff --git a/migration/1579282808087-v12-3.ts b/migration/1579282808087-v12-3.ts new file mode 100644 index 000000000..a330caa97 --- /dev/null +++ b/migration/1579282808087-v12-3.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1231579282808087 implements MigrationInterface { + name = 'v1231579282808087' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined); + } + +} diff --git a/migration/1579544426412-v12-4.ts b/migration/1579544426412-v12-4.ts new file mode 100644 index 000000000..d35b25d04 --- /dev/null +++ b/migration/1579544426412-v12-4.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1241579544426412 implements MigrationInterface { + name = 'v1241579544426412' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES "follow_request"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "followRequestId"`, undefined); + } + +} diff --git a/migration/1579977526288-v12-5.ts b/migration/1579977526288-v12-5.ts new file mode 100644 index 000000000..5f824a676 --- /dev/null +++ b/migration/1579977526288-v12-5.ts @@ -0,0 +1,54 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1251579977526288 implements MigrationInterface { + name = 'v1251579977526288' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_2b5ec6c574d6802c94c80313fb" ON "clip" ("userId") `, undefined); + await queryRunner.query(`CREATE TABLE "clip_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "clipId" character varying(32) NOT NULL, CONSTRAINT "PK_e94cda2f40a99b57e032a1a738b" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_a012eaf5c87c65da1deb5fdbfa" ON "clip_note" ("noteId") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_ebe99317bbbe9968a0c6f579ad" ON "clip_note" ("clipId") `, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_6fc0ec357d55a18646262fdfff" ON "clip_note" ("noteId", "clipId") `, undefined); + await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'list')`, undefined); + await queryRunner.query(`CREATE TABLE "antenna" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "src" "antenna_src_enum" NOT NULL, "userListId" character varying(32), "keywords" jsonb NOT NULL DEFAULT '[]', "withFile" boolean NOT NULL, "expression" character varying(2048), "notify" boolean NOT NULL, "hasNewNote" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_c170b99775e1dccca947c9f2d5f" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_6446c571a0e8d0f05f01c78909" ON "antenna" ("userId") `, undefined); + await queryRunner.query(`CREATE TABLE "antenna_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "antennaId" character varying(32) NOT NULL, CONSTRAINT "PK_fb28d94d0989a3872df19fd6ef8" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_bd0397be22147e17210940e125" ON "antenna_note" ("noteId") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_0d775946662d2575dfd2068a5f" ON "antenna_note" ("antennaId") `, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_335a0bf3f904406f9ef3dd51c2" ON "antenna_note" ("noteId", "antennaId") `, undefined); + await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "geo"`, undefined); + await queryRunner.query(`ALTER TABLE "clip" ADD CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf" FOREIGN KEY ("clipId") REFERENCES "clip"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_6446c571a0e8d0f05f01c789096" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_bd0397be22147e17210940e125b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_0d775946662d2575dfd2068a5f5" FOREIGN KEY ("antennaId") REFERENCES "antenna"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_bd0397be22147e17210940e125b"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_6446c571a0e8d0f05f01c789096"`, undefined); + await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf"`, undefined); + await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3"`, undefined); + await queryRunner.query(`ALTER TABLE "clip" DROP CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2"`, undefined); + await queryRunner.query(`ALTER TABLE "note" ADD "geo" jsonb`, undefined); + await queryRunner.query(`DROP INDEX "IDX_335a0bf3f904406f9ef3dd51c2"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_0d775946662d2575dfd2068a5f"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_bd0397be22147e17210940e125"`, undefined); + await queryRunner.query(`DROP TABLE "antenna_note"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_6446c571a0e8d0f05f01c78909"`, undefined); + await queryRunner.query(`DROP TABLE "antenna"`, undefined); + await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_6fc0ec357d55a18646262fdfff"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ebe99317bbbe9968a0c6f579ad"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a012eaf5c87c65da1deb5fdbfa"`, undefined); + await queryRunner.query(`DROP TABLE "clip_note"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_2b5ec6c574d6802c94c80313fb"`, undefined); + await queryRunner.query(`DROP TABLE "clip"`, undefined); + } + +} diff --git a/migration/1579993013959-v12-6.ts b/migration/1579993013959-v12-6.ts new file mode 100644 index 000000000..4fa4623c3 --- /dev/null +++ b/migration/1579993013959-v12-6.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1261579993013959 implements MigrationInterface { + name = 'v1261579993013959' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna_note" ADD "read" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_9937ea48d7ae97ffb4f3f063a4" ON "antenna_note" ("read") `, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna_note" DROP COLUMN "read"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD "hasNewNote" boolean NOT NULL DEFAULT false`, undefined); + } + +} diff --git a/migration/1580069531114-v12-7.ts b/migration/1580069531114-v12-7.ts new file mode 100644 index 000000000..227e7cceb --- /dev/null +++ b/migration/1580069531114-v12-7.ts @@ -0,0 +1,24 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1271580069531114 implements MigrationInterface { + name = 'v1271580069531114' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD "caseSensitive" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); + await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list')`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); + await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); + await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); + await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "caseSensitive"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); + } + +} diff --git a/migration/1580148575182-v12-8.ts b/migration/1580148575182-v12-8.ts new file mode 100644 index 000000000..c63bdb4eb --- /dev/null +++ b/migration/1580148575182-v12-8.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1281580148575182 implements MigrationInterface { + name = 'v1281580148575182' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`, undefined); + await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "appId"`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note" ADD "appId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); + } + +} diff --git a/migration/1580154400017-v12-9.ts b/migration/1580154400017-v12-9.ts new file mode 100644 index 000000000..de06d26e4 --- /dev/null +++ b/migration/1580154400017-v12-9.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v1291580154400017 implements MigrationInterface { + name = 'v1291580154400017' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined); + } + +} diff --git a/migration/1580276619901-v12-10.ts b/migration/1580276619901-v12-10.ts new file mode 100644 index 000000000..f48f42b4a --- /dev/null +++ b/migration/1580276619901-v12-10.ts @@ -0,0 +1,19 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v12101580276619901 implements MigrationInterface { + name = 'v12101580276619901' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); + await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "type" "notification_type_enum" NOT NULL`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); + await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "type" character varying(32) NOT NULL`, undefined); + } + +} diff --git a/migration/1580331224276-v12-11.ts b/migration/1580331224276-v12-11.ts new file mode 100644 index 000000000..30794b80e --- /dev/null +++ b/migration/1580331224276-v12-11.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v12111580331224276 implements MigrationInterface { + name = 'v12111580331224276' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isMarkedAsClosed"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "isSuspended" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_34500da2e38ac393f7bb6b299c" ON "instance" ("isSuspended") `, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_34500da2e38ac393f7bb6b299c"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isSuspended"`, undefined); + await queryRunner.query(`ALTER TABLE "instance" ADD "isMarkedAsClosed" boolean NOT NULL DEFAULT false`, undefined); + } + +} diff --git a/migration/1580508795118-v12-12.ts b/migration/1580508795118-v12-12.ts new file mode 100644 index 000000000..99791b051 --- /dev/null +++ b/migration/1580508795118-v12-12.ts @@ -0,0 +1,46 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v12121580508795118 implements MigrationInterface { + name = 'v12121580508795118' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitter"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessToken"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessTokenSecret"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterUserId"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterScreenName"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "github"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubAccessToken"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubId"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubLogin"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discord"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordAccessToken"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordRefreshToken"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordExpiresDate"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordId"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordUsername"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordDiscriminator"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "integrations"`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordDiscriminator" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordUsername" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordId" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordExpiresDate" character varying(64)`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordRefreshToken" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordAccessToken" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "discord" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubLogin" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubId" character varying(64)`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubAccessToken" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "github" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterScreenName" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterUserId" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessTokenSecret" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessToken" character varying(64) DEFAULT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitter" boolean NOT NULL DEFAULT false`, undefined); + } + +} diff --git a/migration/1580543501339-v12-13.ts b/migration/1580543501339-v12-13.ts new file mode 100644 index 000000000..7f5d8b803 --- /dev/null +++ b/migration/1580543501339-v12-13.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v12131580543501339 implements MigrationInterface { + name = 'v12131580543501339' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined); + } + +} diff --git a/migration/1580864313253-v12-14.ts b/migration/1580864313253-v12-14.ts new file mode 100644 index 000000000..7bf38e5c6 --- /dev/null +++ b/migration/1580864313253-v12-14.ts @@ -0,0 +1,20 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class v12141580864313253 implements MigrationInterface { + name = 'v12141580864313253' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccount" TO "proxyAccountId"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad" FOREIGN KEY ("proxyAccountId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(128)`, undefined); + await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccountId" TO "proxyAccount"`, undefined); + } + +} diff --git a/migration/1581526429287-user-group-invitation.ts b/migration/1581526429287-user-group-invitation.ts new file mode 100644 index 000000000..26ea54e0b --- /dev/null +++ b/migration/1581526429287-user-group-invitation.ts @@ -0,0 +1,38 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class userGroupInvitation1581526429287 implements MigrationInterface { + name = 'userGroupInvitation1581526429287' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "user_group_invitation" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e9793f65f504e5a31fbaedbf2f" ON "user_group_invitation" ("userId", "userGroupId") `, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "userGroupInvitationId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined); + await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined); + await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined); + await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_bfbc6305547539369fe73eb144a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`, undefined); + await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`, undefined); + await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined); + await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined); + await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); + await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "userGroupInvitationId"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_e9793f65f504e5a31fbaedbf2f"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_5cc8c468090e129857e9fecce5"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`, undefined); + await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined); + } + +} diff --git a/migration/1581695816408-user-group-antenna.ts b/migration/1581695816408-user-group-antenna.ts new file mode 100644 index 000000000..15eb2fe11 --- /dev/null +++ b/migration/1581695816408-user-group-antenna.ts @@ -0,0 +1,28 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class userGroupAntenna1581695816408 implements MigrationInterface { + name = 'userGroupAntenna1581695816408' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); + await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); + await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`, undefined); + await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'users', 'list')`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); + await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); + await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`, undefined); + } + +} diff --git a/migration/1581708415836-drive-user-folder-id-index.ts b/migration/1581708415836-drive-user-folder-id-index.ts new file mode 100644 index 000000000..e7a7628ff --- /dev/null +++ b/migration/1581708415836-drive-user-folder-id-index.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class driveUserFolderIdIndex1581708415836 implements MigrationInterface { + name = 'driveUserFolderIdIndex1581708415836' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined); + } + +} diff --git a/migration/1581979837262-promo.ts b/migration/1581979837262-promo.ts new file mode 100644 index 000000000..2c4f25c4d --- /dev/null +++ b/migration/1581979837262-promo.ts @@ -0,0 +1,28 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class promo1581979837262 implements MigrationInterface { + name = 'promo1581979837262' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `, undefined); + await queryRunner.query(`CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_9657d55550c3d37bfafaf7d4b0" ON "promo_read" ("userId") `, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2882b8a1a07c7d281a98b6db16" ON "promo_read" ("userId", "noteId") `, undefined); + await queryRunner.query(`ALTER TABLE "promo_note" ADD CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`, undefined); + await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`, undefined); + await queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_2882b8a1a07c7d281a98b6db16"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_9657d55550c3d37bfafaf7d4b0"`, undefined); + await queryRunner.query(`DROP TABLE "promo_read"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`, undefined); + await queryRunner.query(`DROP TABLE "promo_note"`, undefined); + } + +} diff --git a/migration/1582019042083-featured-injecttion.ts b/migration/1582019042083-featured-injecttion.ts new file mode 100644 index 000000000..9c8498997 --- /dev/null +++ b/migration/1582019042083-featured-injecttion.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class featuredInjecttion1582019042083 implements MigrationInterface { + name = 'featuredInjecttion1582019042083' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined); + } + +} diff --git a/migration/1582210532752-antenna-exclude.ts b/migration/1582210532752-antenna-exclude.ts new file mode 100644 index 000000000..bff47a3ec --- /dev/null +++ b/migration/1582210532752-antenna-exclude.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class antennaExclude1582210532752 implements MigrationInterface { + name = 'antennaExclude1582210532752' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined); + } + +} diff --git a/migration/1582875306439-note-reaction-length.ts b/migration/1582875306439-note-reaction-length.ts new file mode 100644 index 000000000..b9af61eb0 --- /dev/null +++ b/migration/1582875306439-note-reaction-length.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class noteReactionLength1582875306439 implements MigrationInterface { + name = 'noteReactionLength1582875306439' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined); + } + +} diff --git a/migration/1585361548360-miauth.ts b/migration/1585361548360-miauth.ts new file mode 100644 index 000000000..22d6c207f --- /dev/null +++ b/migration/1585361548360-miauth.ts @@ -0,0 +1,36 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class miauth1585361548360 implements MigrationInterface { + name = 'miauth1585361548360' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "description" character varying(512) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "iconUrl" character varying(512) DEFAULT null`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "permission" character varying(64) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD "fetched" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP NOT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET DEFAULT null`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET NOT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "fetched"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "permission"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "iconUrl"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "description"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "name"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined); + await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined); + } + +} diff --git a/migration/1585385921215-custom-notification.ts b/migration/1585385921215-custom-notification.ts new file mode 100644 index 000000000..24c29d53e --- /dev/null +++ b/migration/1585385921215-custom-notification.ts @@ -0,0 +1,48 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class customNotification1585385921215 implements MigrationInterface { + name = 'customNotification1585385921215' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`, undefined); + await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined); + await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined); + await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `, undefined); + await queryRunner.query(`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined); + await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined); + await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); + await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined); + await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS ''`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`, undefined); + await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customIcon"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined); + await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined); + } + +} diff --git a/migration/1585772678853-ap-url.ts b/migration/1585772678853-ap-url.ts new file mode 100644 index 000000000..622d09727 --- /dev/null +++ b/migration/1585772678853-ap-url.ts @@ -0,0 +1,15 @@ +/* tslint:disable:quotemark class-name indent */ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class apUrl1585772678853 implements MigrationInterface { + name = 'apUrl1585772678853' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined); + } + +} diff --git a/migration/1586624197029-AddObjectStorageUseProxy.ts b/migration/1586624197029-AddObjectStorageUseProxy.ts new file mode 100644 index 000000000..deadf9483 --- /dev/null +++ b/migration/1586624197029-AddObjectStorageUseProxy.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from 'typeorm'; + +export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface { + name = 'AddObjectStorageUseProxy1586624197029' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined); + } + +} diff --git a/migration/1586641139527-remote-reaction.ts b/migration/1586641139527-remote-reaction.ts new file mode 100644 index 000000000..5a7fb36e3 --- /dev/null +++ b/migration/1586641139527-remote-reaction.ts @@ -0,0 +1,12 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class remoteReaction1586641139527 implements MigrationInterface { + name = 'remoteReaction1586641139527' + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); + } +} diff --git a/migration/1586708940386-pageAiScript.ts b/migration/1586708940386-pageAiScript.ts new file mode 100644 index 000000000..fdd6e76b9 --- /dev/null +++ b/migration/1586708940386-pageAiScript.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class pageAiScript1586708940386 implements MigrationInterface { + name = 'pageAiScript1586708940386' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined); + } + +} diff --git a/migration/1588044505511-hCaptcha.ts b/migration/1588044505511-hCaptcha.ts new file mode 100644 index 000000000..a3f4e9367 --- /dev/null +++ b/migration/1588044505511-hCaptcha.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class hCaptcha1588044505511 implements MigrationInterface { + name = 'hCaptcha1588044505511' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined); + await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined); + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined); + } + +} diff --git a/migration/1589023282116-pubRelay.ts b/migration/1589023282116-pubRelay.ts new file mode 100644 index 000000000..3b9d35991 --- /dev/null +++ b/migration/1589023282116-pubRelay.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class pubRelay1589023282116 implements MigrationInterface { + name = 'pubRelay1589023282116' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined); + await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined); + await queryRunner.query(`DROP TABLE "relay"`, undefined); + await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined); + } + +} diff --git a/migration/1595075960584-blurhash.ts b/migration/1595075960584-blurhash.ts new file mode 100644 index 000000000..7c716ae17 --- /dev/null +++ b/migration/1595075960584-blurhash.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class blurhash1595075960584 implements MigrationInterface { + name = 'blurhash1595075960584' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`); + } + +} diff --git a/migration/1595077605646-blurhash-for-avatar-banner.ts b/migration/1595077605646-blurhash-for-avatar-banner.ts new file mode 100644 index 000000000..fcf161c35 --- /dev/null +++ b/migration/1595077605646-blurhash-for-avatar-banner.ts @@ -0,0 +1,20 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class blurhashForAvatarBanner1595077605646 implements MigrationInterface { + name = 'blurhashForAvatarBanner1595077605646' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarColor"`); + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerColor"`); + await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`); + await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`); + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`); + await queryRunner.query(`ALTER TABLE "user" ADD "bannerColor" character varying(32)`); + await queryRunner.query(`ALTER TABLE "user" ADD "avatarColor" character varying(32)`); + } + +} diff --git a/migration/1595676934834-instance-icon-url.ts b/migration/1595676934834-instance-icon-url.ts new file mode 100644 index 000000000..c75370f17 --- /dev/null +++ b/migration/1595676934834-instance-icon-url.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class instanceIconUrl1595676934834 implements MigrationInterface { + name = 'instanceIconUrl1595676934834' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`); + } + +} diff --git a/migration/1595771249699-word-mute.ts b/migration/1595771249699-word-mute.ts new file mode 100644 index 000000000..1a9114d92 --- /dev/null +++ b/migration/1595771249699-word-mute.ts @@ -0,0 +1,30 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class wordMute1595771249699 implements MigrationInterface { + name = 'wordMute1595771249699' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "muted_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_897e2eff1c0b9b64e55ca1418a4" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_70ab9786313d78e4201d81cdb8" ON "muted_note" ("noteId") `); + await queryRunner.query(`CREATE INDEX "IDX_d8e07aa18c2d64e86201601aec" ON "muted_note" ("userId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a8c6bfd637d3f1d67a27c48e27" ON "muted_note" ("noteId", "userId") `); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "enableWordMute" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedWords" jsonb NOT NULL DEFAULT '[]'`); + await queryRunner.query(`CREATE INDEX "IDX_3befe6f999c86aff06eb0257b4" ON "user_profile" ("enableWordMute") `); + await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_70ab9786313d78e4201d81cdb89" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1"`); + await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_70ab9786313d78e4201d81cdb89"`); + await queryRunner.query(`DROP INDEX "IDX_3befe6f999c86aff06eb0257b4"`); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedWords"`); + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "enableWordMute"`); + await queryRunner.query(`DROP INDEX "IDX_a8c6bfd637d3f1d67a27c48e27"`); + await queryRunner.query(`DROP INDEX "IDX_d8e07aa18c2d64e86201601aec"`); + await queryRunner.query(`DROP INDEX "IDX_70ab9786313d78e4201d81cdb8"`); + await queryRunner.query(`DROP TABLE "muted_note"`); + } + +} diff --git a/migration/1595782306083-word-mute2.ts b/migration/1595782306083-word-mute2.ts new file mode 100644 index 000000000..d68c12740 --- /dev/null +++ b/migration/1595782306083-word-mute2.ts @@ -0,0 +1,18 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class wordMute21595782306083 implements MigrationInterface { + name = 'wordMute21595782306083' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "muted_note_reason_enum" AS ENUM('word', 'manual', 'spam', 'other')`); + await queryRunner.query(`ALTER TABLE "muted_note" ADD "reason" "muted_note_reason_enum" NOT NULL`); + await queryRunner.query(`CREATE INDEX "IDX_636e977ff90b23676fb5624b25" ON "muted_note" ("reason") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_636e977ff90b23676fb5624b25"`); + await queryRunner.query(`ALTER TABLE "muted_note" DROP COLUMN "reason"`); + await queryRunner.query(`DROP TYPE "muted_note_reason_enum"`); + } + +} diff --git a/migration/1596548170836-channel.ts b/migration/1596548170836-channel.ts new file mode 100644 index 000000000..4e3ebb330 --- /dev/null +++ b/migration/1596548170836-channel.ts @@ -0,0 +1,58 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class channel1596548170836 implements MigrationInterface { + name = 'channel1596548170836' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "channel" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "lastNotedAt" TIMESTAMP WITH TIME ZONE, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(2048), "bannerId" character varying(32), "notesCount" integer NOT NULL DEFAULT 0, "usersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_590f33ee6ee7d76437acf362e39" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON "channel" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_29ef80c6f13bcea998447fce43" ON "channel" ("lastNotedAt") `); + await queryRunner.query(`CREATE INDEX "IDX_823bae55bd81b3be6e05cff438" ON "channel" ("userId") `); + await queryRunner.query(`CREATE INDEX "IDX_0f58c11241e649d2a638a8de94" ON "channel" ("notesCount") `); + await queryRunner.query(`CREATE INDEX "IDX_094b86cd36bb805d1aa1e8cc9a" ON "channel" ("usersCount") `); + await queryRunner.query(`CREATE TABLE "channel_following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, CONSTRAINT "PK_8b104be7f7415113f2a02cd5bdd" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_11e71f2511589dcc8a4d3214f9" ON "channel_following" ("createdAt") `); + await queryRunner.query(`CREATE INDEX "IDX_0e43068c3f92cab197c3d3cd86" ON "channel_following" ("followeeId") `); + await queryRunner.query(`CREATE INDEX "IDX_6d8084ec9496e7334a4602707e" ON "channel_following" ("followerId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2e230dd45a10e671d781d99f3e" ON "channel_following" ("followerId", "followeeId") `); + await queryRunner.query(`CREATE TABLE "channel_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "channelId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_44f7474496bcf2e4b741681146d" PRIMARY KEY ("id"))`); + await queryRunner.query(`CREATE INDEX "IDX_8125f950afd3093acb10d2db8a" ON "channel_note_pining" ("channelId") `); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f36fed37d6d4cdcc68c803cd9c" ON "channel_note_pining" ("channelId", "noteId") `); + await queryRunner.query(`ALTER TABLE "note" ADD "channelId" character varying(32) DEFAULT null`); + await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); + await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_823bae55bd81b3be6e05cff4383" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_f22169eb10657bded6d875ac8f9" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e" FOREIGN KEY ("followeeId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_6d8084ec9496e7334a4602707e1" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_8125f950afd3093acb10d2db8a8" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_10b19ef67d297ea9de325cd4502" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_10b19ef67d297ea9de325cd4502"`); + await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_8125f950afd3093acb10d2db8a8"`); + await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_6d8084ec9496e7334a4602707e1"`); + await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e"`); + await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_f22169eb10657bded6d875ac8f9"`); + await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19"`); + await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_823bae55bd81b3be6e05cff4383"`); + await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); + await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "channelId"`); + await queryRunner.query(`DROP INDEX "IDX_f36fed37d6d4cdcc68c803cd9c"`); + await queryRunner.query(`DROP INDEX "IDX_8125f950afd3093acb10d2db8a"`); + await queryRunner.query(`DROP TABLE "channel_note_pining"`); + await queryRunner.query(`DROP INDEX "IDX_2e230dd45a10e671d781d99f3e"`); + await queryRunner.query(`DROP INDEX "IDX_6d8084ec9496e7334a4602707e"`); + await queryRunner.query(`DROP INDEX "IDX_0e43068c3f92cab197c3d3cd86"`); + await queryRunner.query(`DROP INDEX "IDX_11e71f2511589dcc8a4d3214f9"`); + await queryRunner.query(`DROP TABLE "channel_following"`); + await queryRunner.query(`DROP INDEX "IDX_094b86cd36bb805d1aa1e8cc9a"`); + await queryRunner.query(`DROP INDEX "IDX_0f58c11241e649d2a638a8de94"`); + await queryRunner.query(`DROP INDEX "IDX_823bae55bd81b3be6e05cff438"`); + await queryRunner.query(`DROP INDEX "IDX_29ef80c6f13bcea998447fce43"`); + await queryRunner.query(`DROP INDEX "IDX_71cb7b435b7c0d4843317e7e16"`); + await queryRunner.query(`DROP TABLE "channel"`); + } + +} diff --git a/migration/1596786425167-channel2.ts b/migration/1596786425167-channel2.ts new file mode 100644 index 000000000..0233f7ab0 --- /dev/null +++ b/migration/1596786425167-channel2.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class channel21596786425167 implements MigrationInterface { + name = 'channel21596786425167' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); + } + +} diff --git a/migration/1597230137744-objectStorageSetPublicRead.ts b/migration/1597230137744-objectStorageSetPublicRead.ts new file mode 100644 index 000000000..f040f2afd --- /dev/null +++ b/migration/1597230137744-objectStorageSetPublicRead.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class objectStorageSetPublicRead1597230137744 implements MigrationInterface { + name = 'objectStorageSetPublicRead1597230137744' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`); + } + +} diff --git a/migration/1597236229720-IncludingNotificationTypes.ts b/migration/1597236229720-IncludingNotificationTypes.ts new file mode 100644 index 000000000..be57824c0 --- /dev/null +++ b/migration/1597236229720-IncludingNotificationTypes.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class IncludingNotificationTypes1597236229720 implements MigrationInterface { + name = 'IncludingNotificationTypes1597236229720' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TYPE "user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); + await queryRunner.query(`DROP TYPE "user_profile_includingnotificationtypes_enum"`); + } + +} diff --git a/migration/1597385880794-add-sensitive-index.ts b/migration/1597385880794-add-sensitive-index.ts new file mode 100644 index 000000000..ff6251ac0 --- /dev/null +++ b/migration/1597385880794-add-sensitive-index.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class addSensitiveIndex1597385880794 implements MigrationInterface { + name = 'addSensitiveIndex1597385880794' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`); + } + +} diff --git a/migration/1597459042300-channel-unread.ts b/migration/1597459042300-channel-unread.ts new file mode 100644 index 000000000..a0f862114 --- /dev/null +++ b/migration/1597459042300-channel-unread.ts @@ -0,0 +1,27 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class channelUnread1597459042300 implements MigrationInterface { + name = 'channelUnread1597459042300' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined); + await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); + await queryRunner.query(`ALTER TABLE "note_unread" ADD "isMentioned" boolean NOT NULL`); + await queryRunner.query(`ALTER TABLE "note_unread" ADD "noteChannelId" character varying(32)`); + await queryRunner.query(`CREATE INDEX "IDX_25b1dd384bec391b07b74b861c" ON "note_unread" ("isMentioned") `); + await queryRunner.query(`CREATE INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30" ON "note_unread" ("isSpecified") `); + await queryRunner.query(`CREATE INDEX "IDX_29e8c1d579af54d4232939f994" ON "note_unread" ("noteUserId") `); + await queryRunner.query(`CREATE INDEX "IDX_6a57f051d82c6d4036c141e107" ON "note_unread" ("noteChannelId") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_6a57f051d82c6d4036c141e107"`); + await queryRunner.query(`DROP INDEX "IDX_29e8c1d579af54d4232939f994"`); + await queryRunner.query(`DROP INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30"`); + await queryRunner.query(`DROP INDEX "IDX_25b1dd384bec391b07b74b861c"`); + await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "noteChannelId"`); + await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "isMentioned"`); + await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); + } + +} diff --git a/migration/1597893996136-ChannelNoteIdDescIndex.ts b/migration/1597893996136-ChannelNoteIdDescIndex.ts new file mode 100644 index 000000000..6cbd865fc --- /dev/null +++ b/migration/1597893996136-ChannelNoteIdDescIndex.ts @@ -0,0 +1,16 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class ChannelNoteIdDescIndex1597893996136 implements MigrationInterface { + name = 'ChannelNoteIdDescIndex1597893996136' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); + await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`); + await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); + } + +} diff --git a/migration/1600353287890-mutingNotificationTypes.ts b/migration/1600353287890-mutingNotificationTypes.ts new file mode 100644 index 000000000..914bad8e3 --- /dev/null +++ b/migration/1600353287890-mutingNotificationTypes.ts @@ -0,0 +1,20 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class mutingNotificationTypes1600353287890 implements MigrationInterface { + name = 'mutingNotificationTypes1600353287890' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); + await queryRunner.query(`DROP TYPE "public"."user_profile_includingnotificationtypes_enum"`); + await queryRunner.query(`CREATE TYPE "user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutingNotificationTypes" "user_profile_mutingnotificationtypes_enum" array NOT NULL DEFAULT '{}'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutingNotificationTypes"`); + await queryRunner.query(`DROP TYPE "user_profile_mutingnotificationtypes_enum"`); + await queryRunner.query(`CREATE TYPE "public"."user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); + await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); + } + +} diff --git a/migration/1603094348345-refine-abuse-user-report.ts b/migration/1603094348345-refine-abuse-user-report.ts new file mode 100644 index 000000000..ce74a88d4 --- /dev/null +++ b/migration/1603094348345-refine-abuse-user-report.ts @@ -0,0 +1,32 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class refineAbuseUserReport1603094348345 implements MigrationInterface { + name = 'refineAbuseUserReport1603094348345' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`); + await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`); + await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "userId" TO "targetUserId"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "assigneeId" character varying(32)`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "resolved" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(2048) NOT NULL DEFAULT '{}'::varchar[]`); + await queryRunner.query(`CREATE INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a" ON "abuse_user_report" ("resolved") `); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de"`); + await queryRunner.query(`DROP INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(512) NOT NULL DEFAULT '{}'::varchar[]`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "resolved"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "assigneeId"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "targetUserId" TO "userId"`); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `); + await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); + } + +} diff --git a/migration/1603095701770-refine-abuse-user-report2.ts b/migration/1603095701770-refine-abuse-user-report2.ts new file mode 100644 index 000000000..18e0c05ac --- /dev/null +++ b/migration/1603095701770-refine-abuse-user-report2.ts @@ -0,0 +1,20 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class refineAbuseUserReport21603095701770 implements MigrationInterface { + name = 'refineAbuseUserReport21603095701770' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "targetUserHost" character varying(128)`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "reporterHost" character varying(128)`); + await queryRunner.query(`CREATE INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd" ON "abuse_user_report" ("targetUserHost") `); + await queryRunner.query(`CREATE INDEX "IDX_f8d8b93740ad12c4ce8213a199" ON "abuse_user_report" ("reporterHost") `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_f8d8b93740ad12c4ce8213a199"`); + await queryRunner.query(`DROP INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "reporterHost"`); + await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "targetUserHost"`); + } + +} diff --git a/migration/1603776877564-instance-theme-color.ts b/migration/1603776877564-instance-theme-color.ts new file mode 100644 index 000000000..80c9d516f --- /dev/null +++ b/migration/1603776877564-instance-theme-color.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class instanceThemeColor1603776877564 implements MigrationInterface { + name = 'instanceThemeColor1603776877564' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`); + } + +} diff --git a/migration/1603781553011-instance-favicon.ts b/migration/1603781553011-instance-favicon.ts new file mode 100644 index 000000000..d748c43f5 --- /dev/null +++ b/migration/1603781553011-instance-favicon.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class instanceFavicon1603781553011 implements MigrationInterface { + name = 'instanceFavicon1603781553011' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`); + } + +} diff --git a/migration/1604821689616-delete-auto-watch.ts b/migration/1604821689616-delete-auto-watch.ts new file mode 100644 index 000000000..e47a4cf1d --- /dev/null +++ b/migration/1604821689616-delete-auto-watch.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class deleteAutoWatch1604821689616 implements MigrationInterface { + name = 'deleteAutoWatch1604821689616' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`); + } + +} diff --git a/migration/1605408848373-clip-description.ts b/migration/1605408848373-clip-description.ts new file mode 100644 index 000000000..b352173e4 --- /dev/null +++ b/migration/1605408848373-clip-description.ts @@ -0,0 +1,15 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class clipDescription1605408848373 implements MigrationInterface { + name = 'clipDescription1605408848373' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`); + } + + public async down(queryRunner: QueryRunner): Promise { + + await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`); + } + +} diff --git a/migration/1605408971051-comments.ts b/migration/1605408971051-comments.ts new file mode 100644 index 000000000..c69ae29a9 --- /dev/null +++ b/migration/1605408971051-comments.ts @@ -0,0 +1,434 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class comments1605408971051 implements MigrationInterface { + name = 'comments1605408971051' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS 'The parent folder ID. If null, it means the DriveFolder is located in root.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS 'The created date of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS 'The host of owner. It will be null if the user in local.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS 'The MD5 hash of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS 'The file name of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS 'The content type (MIME) of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS 'The file size (bytes) of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS 'The comment of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS 'The BlurHash string.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS 'The any properties of the DriveFile. For example, it includes image width/height.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS 'The URL of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS 'The URL of the thumbnail of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS 'The URL of the webpublic of the DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS 'The URI of the DriveFile. it will be null when the DriveFile is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS 'The parent folder ID. If null, it means the DriveFile is located in root.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS 'Whether the DriveFile is NSFW.'`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS 'Whether the DriveFile is direct link to remote server.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS 'The updated date of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS 'The username of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS 'The username (lowercased) of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS 'The name of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS 'The count of followers.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS 'The count of following.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS 'The count of notes.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS 'The ID of avatar DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS 'The ID of banner DriveFile.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS 'Whether the User is suspended.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS 'Whether the User is locked.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS 'Whether the User is a bot.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS 'Whether the User is a cat.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS 'Whether the User is the admin.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS 'Whether the User is a moderator.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS 'The host of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS 'The inbox URL of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS 'The sharedInbox URL of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS 'The featured URL of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS 'The URI of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS 'The native access token of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS 'The created date of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS 'The secret key of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS 'The name of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS 'The description of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS 'The callbackUrl of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS 'The created date of the AccessToken.'`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS 'The created date of the Channel.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS 'The name of the Channel.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS 'The description of the Channel.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS 'The ID of banner Channel.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS 'The count of notes.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS 'The count of users.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS 'The created date of the Note.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS 'The ID of reply target.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS 'The ID of renote target.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS 'The ID of author.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS 'The URI of a note. it will be null when the note is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS 'The human readable url of a note. it will be null when the note is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS 'The ID of source channel.'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS 'The created date of the PollVote.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS 'The created date of the NoteReaction.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS 'The created date of the NoteWatching.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS 'The watcher ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS 'The target Note ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS 'The created date of the FollowRequest.'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS 'The followee user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS 'The follower user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS 'id of Follow Activity.'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS 'The created date of the UserGroup.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS 'The ID of owner.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS 'The created date of the UserGroupInvitation.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS 'The user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS 'The group ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS 'The created date of the Notification.'`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS 'The ID of recipient user of the Notification.'`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS 'Whether the Notification is read.'`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS 'Drive capacity of a local user (MB)'`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS 'Drive capacity of a remote user (MB)'`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS 'Max allowed note text length in characters'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS 'The created date of the Following.'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS 'The followee user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS 'The follower user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS 'The caught date of the Instance.'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS 'The host of the Instance.'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS 'The count of the users of the Instance.'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS 'The count of the notes of the Instance.'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS 'The software of the Instance.'`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS 'The created date of the Muting.'`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS 'The mutee user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS 'The muter user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS 'The created date of the Blocking.'`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS 'The blockee user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS 'The blocker user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS 'The created date of the UserList.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS 'The name of the UserList.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS 'The created date of the UserListJoining.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS 'The user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS 'The list ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS 'The created date of the UserGroupJoining.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS 'The user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS 'The group ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS 'The created date of the NoteFavorite.'`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS 'The created date of the AbuseUserReport.'`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS 'The created date of the MessagingMessage.'`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS 'The sender user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS 'The recipient group ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS 'The created date of the Signin.'`); + await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS 'The created date of the AuthSession.'`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS 'The created date of the ReversiGame.'`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS 'The started date of the ReversiGame.'`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS 'The created date of the ReversiMatching.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS 'The created date of the UserNotePinings.'`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS 'The created date of the Page.'`); + await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS 'The updated date of the Page.'`); + await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS 'The ID of author.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS 'The location of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS 'The birthday (YYYY-MM-DD) of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS 'Remote URL of the user.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS 'The email address of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS 'The password hash of the User. It will be null if the origin of the user is local.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS 'Variable-length id given to navigator.credentials.get()'`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS 'Variable-length public key used to verify attestations (hex-encoded).'`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS 'The date of the last time the UserSecurityKey was successfully validated.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS 'User-defined name for this key'`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS 'Hex-encoded sha256 hash of the challenge.'`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS 'The date challenge was created for expiry purposes.'`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.'`); + await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS 'The created date of the ModerationLog.'`); + await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS 'The created date of the Announcement.'`); + await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS 'The updated date of the Announcement.'`); + await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS 'The created date of the AnnouncementRead.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS 'The created date of the Clip.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS 'The name of the Clip.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS 'The description of the Clip.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS 'The note ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS 'The clip ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS 'The created date of the Antenna.'`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS 'The owner ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS 'The name of the Antenna.'`); + await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS 'The note ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS 'The antenna ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS '[Denormalized]'`); + await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS 'The created date of the PromoRead.'`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS 'The note ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS 'The user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS 'The reason of the MutedNote.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS 'The created date of the ChannelFollowing.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS 'The followee channel ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`); + await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`); + await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`); + await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`); + } + +} diff --git a/migration/1605585339718-instance-pinned-pages.ts b/migration/1605585339718-instance-pinned-pages.ts new file mode 100644 index 000000000..2f0ebab23 --- /dev/null +++ b/migration/1605585339718-instance-pinned-pages.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class instancePinnedPages1605585339718 implements MigrationInterface { + name = 'instancePinnedPages1605585339718' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/announcements", "/featured", "/channels", "/pages", "/explore", "/games/reversi", "/about-misskey"}'::varchar[]`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`); + } + +} diff --git a/misskey-assets b/misskey-assets deleted file mode 160000 index 0179793ec..000000000 --- a/misskey-assets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0179793ec891856d6f37a3be16ba4c22f67a81b5 diff --git a/ormconfig.js b/ormconfig.js new file mode 100644 index 000000000..8a0196947 --- /dev/null +++ b/ormconfig.js @@ -0,0 +1,17 @@ +const config = require('./built/config').default; +const entities = require('./built/db/postgre').entities; + +module.exports = { + type: 'postgres', + host: config.db.host, + port: config.db.port, + username: config.db.user, + password: config.db.pass, + database: config.db.db, + extra: config.db.extra, + entities: entities, + migrations: ['migration/*.ts'], + cli: { + migrationsDir: 'migration' + } +}; diff --git a/package.json b/package.json index 37f0762f5..6bc4a8254 100644 --- a/package.json +++ b/package.json @@ -1,50 +1,267 @@ { "name": "misskey", - "version": "12.119.0", + "author": "syuilo ", + "version": "12.59.0", "codename": "indigo", "repository": { "type": "git", - "url": "https://github.com/misskey-dev/misskey.git" + "url": "https://github.com/syuilo/misskey.git" }, + "main": "./index.js", "private": true, "scripts": { - "postinstall": "node ./scripts/install-packages.js", - "build": "node ./scripts/build.js", - "start": "cd packages/backend && node --experimental-json-modules ./built/index.js", - "start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./built/index.js", + "start": "node ./index.js", + "start-product": "cross-env NODE_ENV=production node ./index.js", "init": "npm run migrate", - "migrate": "cd packages/backend && npx typeorm migration:run -d ormconfig.js", + "ormconfig": "node ./built/ormconfig.js", + "migrate": "ts-node ./node_modules/typeorm/cli.js migration:run", "migrateandstart": "npm run migrate && npm run start", + "build": "webpack && gulp build", + "build-product": "cross-env NODE_ENV=production webpack && gulp build", + "webpack": "webpack", + "watch": "webpack --watch", "gulp": "gulp build", - "watch": "npm run dev", - "dev": "node ./scripts/dev.js", - "lint": "node ./scripts/lint.js", - "cy:open": "cypress open --browser --e2e --config-file=cypress.config.ts", - "cy:run": "cypress run", - "e2e": "start-server-and-test start:test http://localhost:61812 cy:run", - "mocha": "cd packages/backend && cross-env NODE_ENV=test TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" npx mocha", - "test": "npm run mocha", - "format": "gulp format", - "clean": "node ./scripts/clean.js", - "clean-all": "node ./scripts/clean-all.js", - "cleanall": "npm run clean-all" + "clean": "gulp clean", + "cleanall": "gulp cleanall", + "lint": "tslint 'src/**/*.ts'", + "test": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_COMPILER_OPTIONS=\"{\\\"target\\\":\\\"es2017\\\",\\\"module\\\":\\\"commonjs\\\",\\\"typeRoots\\\":[\\\"node_modules/@types\\\",\\\"src/@types\\\"]}\" mocha", + "format": "gulp format" + }, + "resolutions": { + "chokidar": "^3.3.1", + "constantinople": "^4.0.1", + "gulp/gulp-cli/yargs/yargs-parser": "5.0.0-security.0", + "jsonld/rdf-canonize/node-forge": "0.10.0", + "lodash": "^4.17.20" }, "dependencies": { - "execa": "5.1.1", + "@babel/plugin-transform-runtime": "7.11.0", + "@elastic/elasticsearch": "7.8.0", + "@fortawesome/fontawesome-svg-core": "1.2.32", + "@fortawesome/free-brands-svg-icons": "5.15.1", + "@fortawesome/free-regular-svg-icons": "5.15.1", + "@fortawesome/free-solid-svg-icons": "5.15.1", + "@fortawesome/vue-fontawesome": "3.0.0-2", + "@koa/cors": "3.1.0", + "@koa/multer": "3.0.0", + "@koa/router": "9.0.1", + "@sinonjs/fake-timers": "6.0.1", + "@syuilo/aiscript": "0.11.1", + "@types/bcryptjs": "2.4.2", + "@types/bull": "3.14.0", + "@types/cbor": "5.0.1", + "@types/dateformat": "3.0.1", + "@types/double-ended-queue": "2.1.1", + "@types/escape-regexp": "0.0.0", + "@types/glob": "7.1.3", + "@types/gulp": "4.0.6", + "@types/gulp-rename": "0.0.33", + "@types/gulp-replace": "0.0.31", + "@types/is-url": "1.2.28", + "@types/js-yaml": "3.12.5", + "@types/jsdom": "16.2.3", + "@types/jsonld": "1.5.1", + "@types/katex": "0.11.0", + "@types/koa": "2.11.3", + "@types/koa-bodyparser": "4.3.0", + "@types/koa-cors": "0.0.0", + "@types/koa-favicon": "2.0.19", + "@types/koa-logger": "3.1.1", + "@types/koa-mount": "4.0.0", + "@types/koa-send": "4.1.2", + "@types/koa-views": "2.0.4", + "@types/koa__cors": "3.0.1", + "@types/koa__multer": "2.0.1", + "@types/koa__router": "8.0.2", + "@types/markdown-it": "10.0.1", + "@types/mocha": "7.0.2", + "@types/node": "14.0.22", + "@types/node-fetch": "2.5.7", + "@types/nodemailer": "6.4.0", + "@types/nprogress": "0.2.0", + "@types/oauth": "0.9.1", + "@types/parse5": "5.0.3", + "@types/parsimmon": "1.10.2", + "@types/portscanner": "2.1.0", + "@types/pug": "2.0.4", + "@types/qrcode": "1.3.4", + "@types/random-seed": "0.3.3", + "@types/ratelimiter": "2.1.28", + "@types/redis": "2.8.25", + "@types/rename": "1.0.1", + "@types/request-stats": "3.0.0", + "@types/rimraf": "3.0.0", + "@types/seedrandom": "2.4.28", + "@types/sharp": "0.26.0", + "@types/sinonjs__fake-timers": "6.0.1", + "@types/speakeasy": "2.0.5", + "@types/tinycolor2": "1.4.2", + "@types/tmp": "0.2.0", + "@types/uuid": "8.3.0", + "@types/web-push": "3.3.0", + "@types/webpack": "4.41.24", + "@types/webpack-stream": "3.2.11", + "@types/websocket": "1.0.1", + "@types/ws": "7.2.7", + "@typescript-eslint/parser": "4.6.1", + "@vue/compiler-sfc": "3.0.2", + "abort-controller": "3.0.0", + "apexcharts": "3.22.1", + "autobind-decorator": "2.4.0", + "autosize": "4.0.2", + "autwh": "0.1.0", + "aws-sdk": "2.787.0", + "bcryptjs": "2.4.3", + "blurhash": "1.1.3", + "bull": "3.18.1", + "cafy": "15.2.1", + "cbor": "5.1.0", + "chalk": "4.1.0", + "chart.js": "2.9.4", + "cli-highlight": "2.1.4", + "commander": "4.1.1", + "content-disposition": "0.5.3", + "core-js": "3.7.0", + "crc-32": "1.2.0", + "css-loader": "5.0.1", + "cssnano": "4.1.10", + "dateformat": "3.0.3", + "deep-entries": "3.1.0", + "diskusage": "1.1.3", + "double-ended-queue": "2.1.0-0", + "escape-regexp": "0.0.1", + "eslint": "7.12.1", + "eslint-plugin-vue": "7.1.0", + "eventemitter3": "4.0.7", + "feed": "4.2.1", + "fibers": "5.0.0", + "file-type": "16.0.1", + "fluent-ffmpeg": "2.1.2", + "glob": "7.1.6", + "got": "11.8.0", "gulp": "4.0.2", - "gulp-cssnano": "2.1.3", "gulp-rename": "2.0.0", - "gulp-replace": "1.1.3", - "gulp-terser": "2.1.0", - "js-yaml": "4.1.0" + "gulp-replace": "1.0.0", + "gulp-sourcemaps": "2.6.5", + "gulp-tslint": "8.1.4", + "gulp-typescript": "6.0.0-alpha.1", + "hard-source-webpack-plugin": "0.13.1", + "hcaptcha": "0.0.2", + "html-minifier": "4.0.0", + "http-proxy-agent": "4.0.1", + "http-signature": "1.3.5", + "https-proxy-agent": "5.0.0", + "idb-keyval": "3.2.0", + "insert-text-at-cursor": "0.3.0", + "is-root": "2.1.0", + "is-svg": "4.2.1", + "js-yaml": "3.14.0", + "jsdom": "16.4.0", + "json5": "2.1.3", + "json5-loader": "4.0.1", + "jsonld": "3.2.0", + "jsrsasign": "8.0.20", + "katex": "0.12.0", + "koa": "2.13.0", + "koa-bodyparser": "4.3.0", + "koa-favicon": "2.1.0", + "koa-json-body": "5.3.0", + "koa-logger": "3.2.1", + "koa-mount": "4.0.0", + "koa-send": "5.0.1", + "koa-slow": "2.1.0", + "koa-views": "6.3.1", + "langmap": "0.0.16", + "lookup-dns-cache": "2.1.0", + "markdown-it": "11.0.1", + "markdown-it-anchor": "6.0.0", + "mocha": "8.2.1", + "moji": "0.5.1", + "ms": "2.1.2", + "multer": "1.4.2", + "nested-property": "4.0.0", + "node-fetch": "2.6.1", + "nodemailer": "6.4.15", + "object-assign-deep": "0.4.0", + "os-utils": "0.0.14", + "p-cancelable": "2.0.0", + "parse5": "6.0.1", + "parsimmon": "1.16.0", + "pg": "8.4.2", + "portscanner": "2.2.0", + "postcss": "8.1.6", + "postcss-loader": "4.0.4", + "prismjs": "1.22.0", + "probe-image-size": "6.0.0", + "promise-limit": "2.7.0", + "promise-sequential": "1.1.1", + "pug": "2.0.4", + "punycode": "2.1.1", + "pureimage": "0.2.5", + "qrcode": "1.4.4", + "random-seed": "0.3.0", + "ratelimiter": "3.4.1", + "re2": "1.15.8", + "recaptcha-promise": "1.0.0", + "reconnecting-websocket": "4.4.0", + "redis": "3.0.2", + "redis-lock": "0.1.4", + "reflect-metadata": "0.1.13", + "regenerator-runtime": "0.13.7", + "rename": "1.0.4", + "request-stats": "3.0.0", + "require-all": "3.0.0", + "rimraf": "3.0.2", + "rndstr": "1.0.0", + "s-age": "1.1.2", + "sass": "1.29.0", + "sass-loader": "10.0.5", + "seedrandom": "3.0.5", + "sharp": "0.26.2", + "speakeasy": "2.0.0", + "stringz": "2.1.0", + "style-loader": "2.0.0", + "summaly": "2.4.0", + "syslog-pro": "1.0.0", + "systeminformation": "4.28.1", + "syuilo-password-strength": "0.0.1", + "textarea-caret": "3.1.0", + "three": "0.117.1", + "tinycolor2": "1.4.2", + "tmp": "0.2.1", + "ts-loader": "8.0.9", + "ts-node": "9.0.0", + "tslint": "6.1.3", + "tslint-sonarts": "1.9.0", + "typeorm": "0.2.29", + "typescript": "4.0.5", + "ulid": "2.3.0", + "url-loader": "4.1.1", + "uuid": "8.3.1", + "v-debounce": "0.1.2", + "vue": "3.0.2", + "vue-color": "2.7.1", + "vue-draggable-next": "1.0.8", + "vue-i18n": "9.0.0-beta.7", + "vue-json-pretty": "1.7.1", + "vue-loader": "16.0.0-beta.8", + "vue-prism-editor": "1.2.2", + "vue-router": "4.0.0-rc.2", + "vue-style-loader": "4.1.2", + "vue-template-compiler": "2.6.12", + "vuex": "4.0.0-rc.1", + "vuex-persistedstate": "3.1.0", + "web-push": "3.4.4", + "webpack": "5.6.0", + "webpack-cli": "4.2.0", + "websocket": "1.0.32", + "ws": "7.3.1", + "xev": "2.0.1" }, "devDependencies": { - "@types/gulp": "4.0.9", - "@types/gulp-rename": "2.0.1", - "@typescript-eslint/parser": "5.36.2", - "cross-env": "7.0.3", - "cypress": "10.7.0", - "start-server-and-test": "1.14.0", - "typescript": "4.8.3" + "@types/chai": "4.2.11", + "@types/fluent-ffmpeg": "2.1.14", + "chai": "4.2.0", + "cross-env": "7.0.2" } } diff --git a/packages/backend/.eslintignore b/packages/backend/.eslintignore deleted file mode 100644 index 790eb9014..000000000 --- a/packages/backend/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -/built -/.eslintrc.js -/@types/**/* diff --git a/packages/backend/.eslintrc.cjs b/packages/backend/.eslintrc.cjs deleted file mode 100644 index 5a06889dc..000000000 --- a/packages/backend/.eslintrc.cjs +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = { - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - }, - extends: [ - '../shared/.eslintrc.js', - ], - rules: { - 'import/order': ['warn', { - 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - 'pathGroups': [ - { - 'pattern': '@/**', - 'group': 'external', - 'position': 'after' - } - ], - }], - 'no-restricted-globals': [ - 'error', - { - 'name': '__dirname', - 'message': 'Not in ESModule. Use `import.meta.url` instead.' - }, - { - 'name': '__filename', - 'message': 'Not in ESModule. Use `import.meta.url` instead.' - } - ] - }, -}; diff --git a/packages/backend/.mocharc.json b/packages/backend/.mocharc.json deleted file mode 100644 index f836f9e90..000000000 --- a/packages/backend/.mocharc.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extension": ["ts","js","cjs","mjs"], - "node-option": [ - "experimental-specifier-resolution=node", - "loader=./test/loader.js" - ], - "slow": 1000, - "timeout": 30000, - "exit": true -} diff --git a/packages/backend/.npmrc b/packages/backend/.npmrc deleted file mode 100644 index 6b5f38e89..000000000 --- a/packages/backend/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -save-exact = true -package-lock = false diff --git a/packages/backend/.vscode/settings.json b/packages/backend/.vscode/settings.json deleted file mode 100644 index 9fb3b29d4..000000000 --- a/packages/backend/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "typescript.tsdk": "node_modules\\typescript\\lib", - "path-intellisense.mappings": { - "@": "${workspaceRoot}/packages/backend/src/" - }, - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.fixAll": true - } -} diff --git a/packages/backend/.yarnrc b/packages/backend/.yarnrc deleted file mode 100644 index 788570fcd..000000000 --- a/packages/backend/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -network-timeout 600000 diff --git a/packages/backend/assets/apple-touch-icon.png b/packages/backend/assets/apple-touch-icon.png deleted file mode 100644 index 947c513bb..000000000 Binary files a/packages/backend/assets/apple-touch-icon.png and /dev/null differ diff --git a/packages/backend/assets/favicon.ico b/packages/backend/assets/favicon.ico deleted file mode 100644 index 9be1ff629..000000000 Binary files a/packages/backend/assets/favicon.ico and /dev/null differ diff --git a/packages/backend/assets/favicon.png b/packages/backend/assets/favicon.png deleted file mode 100644 index b4eb18a5c..000000000 Binary files a/packages/backend/assets/favicon.png and /dev/null differ diff --git a/packages/backend/assets/icons/192.png b/packages/backend/assets/icons/192.png deleted file mode 100644 index 606b46d87..000000000 Binary files a/packages/backend/assets/icons/192.png and /dev/null differ diff --git a/packages/backend/assets/icons/512.png b/packages/backend/assets/icons/512.png deleted file mode 100644 index ba5154642..000000000 Binary files a/packages/backend/assets/icons/512.png and /dev/null differ diff --git a/packages/backend/assets/mi-white.png b/packages/backend/assets/mi-white.png deleted file mode 100644 index 1e57da6b3..000000000 Binary files a/packages/backend/assets/mi-white.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/LICENSE b/packages/backend/assets/notification-badges/LICENSE deleted file mode 100644 index 841c4c682..000000000 --- a/packages/backend/assets/notification-badges/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Font Awesome Icons -------------------------- - -Ⓒ Font Awesome -CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) diff --git a/packages/backend/assets/notification-badges/at.png b/packages/backend/assets/notification-badges/at.png deleted file mode 100644 index d1492856d..000000000 Binary files a/packages/backend/assets/notification-badges/at.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/check.png b/packages/backend/assets/notification-badges/check.png deleted file mode 100644 index baeb76bab..000000000 Binary files a/packages/backend/assets/notification-badges/check.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/clipboard-check-solid.png b/packages/backend/assets/notification-badges/clipboard-check-solid.png deleted file mode 100644 index d8cdfa9da..000000000 Binary files a/packages/backend/assets/notification-badges/clipboard-check-solid.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/clock.png b/packages/backend/assets/notification-badges/clock.png deleted file mode 100644 index 9323f8f30..000000000 Binary files a/packages/backend/assets/notification-badges/clock.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/comments.png b/packages/backend/assets/notification-badges/comments.png deleted file mode 100644 index bc8a1c35b..000000000 Binary files a/packages/backend/assets/notification-badges/comments.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/id-card-alt.png b/packages/backend/assets/notification-badges/id-card-alt.png deleted file mode 100644 index 67e1410e3..000000000 Binary files a/packages/backend/assets/notification-badges/id-card-alt.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/null.png b/packages/backend/assets/notification-badges/null.png deleted file mode 100644 index be1384df1..000000000 Binary files a/packages/backend/assets/notification-badges/null.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/plus.png b/packages/backend/assets/notification-badges/plus.png deleted file mode 100644 index 05362c122..000000000 Binary files a/packages/backend/assets/notification-badges/plus.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/poll-h.png b/packages/backend/assets/notification-badges/poll-h.png deleted file mode 100644 index 3b7ded665..000000000 Binary files a/packages/backend/assets/notification-badges/poll-h.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/quote-right.png b/packages/backend/assets/notification-badges/quote-right.png deleted file mode 100644 index 0fa483765..000000000 Binary files a/packages/backend/assets/notification-badges/quote-right.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/reply.png b/packages/backend/assets/notification-badges/reply.png deleted file mode 100644 index 77021f71a..000000000 Binary files a/packages/backend/assets/notification-badges/reply.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/retweet.png b/packages/backend/assets/notification-badges/retweet.png deleted file mode 100644 index dc6106048..000000000 Binary files a/packages/backend/assets/notification-badges/retweet.png and /dev/null differ diff --git a/packages/backend/assets/notification-badges/user-plus.png b/packages/backend/assets/notification-badges/user-plus.png deleted file mode 100644 index 9d376d04d..000000000 Binary files a/packages/backend/assets/notification-badges/user-plus.png and /dev/null differ diff --git a/packages/backend/assets/redoc.html b/packages/backend/assets/redoc.html deleted file mode 100644 index 9ee5a95c0..000000000 --- a/packages/backend/assets/redoc.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Misskey API - - - - - - - - - - - - - diff --git a/packages/backend/assets/splash.png b/packages/backend/assets/splash.png deleted file mode 100644 index 3430e6efe..000000000 Binary files a/packages/backend/assets/splash.png and /dev/null differ diff --git a/packages/backend/assets/user-unknown.png b/packages/backend/assets/user-unknown.png deleted file mode 100644 index ab29bef2b..000000000 Binary files a/packages/backend/assets/user-unknown.png and /dev/null differ diff --git a/packages/backend/migration/1000000000000-Init.js b/packages/backend/migration/1000000000000-Init.js deleted file mode 100644 index 1140be7e8..000000000 --- a/packages/backend/migration/1000000000000-Init.js +++ /dev/null @@ -1,482 +0,0 @@ - - -export class Init1000000000000 { - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`); - await queryRunner.query(`CREATE TABLE "log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "domain" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "level" "log_level_enum" NOT NULL, "worker" character varying(8) NOT NULL, "machine" character varying(128) NOT NULL, "message" character varying(1024) NOT NULL, "data" jsonb NOT NULL DEFAULT '{}', CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_8e4eb51a35d81b64dda28eed0a" ON "log" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_8cb40cfc8f3c28261e6f887b03" ON "log" ("domain") `); - await queryRunner.query(`CREATE INDEX "IDX_584b536b49e53ac81beb39a177" ON "log" ("level") `); - await queryRunner.query(`CREATE TABLE "drive_folder" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(128) NOT NULL, "userId" character varying(32), "parentId" character varying(32), CONSTRAINT "PK_7a0c089191f5ebdc214e0af808a" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_02878d441ceae15ce060b73daf" ON "drive_folder" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_f4fc06e49c0171c85f1c48060d" ON "drive_folder" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_00ceffb0cdc238b3233294f08f" ON "drive_folder" ("parentId") `); - await queryRunner.query(`CREATE TABLE "drive_file" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "userHost" character varying(128), "md5" character varying(32) NOT NULL, "name" character varying(256) NOT NULL, "type" character varying(128) NOT NULL, "size" integer NOT NULL, "comment" character varying(512), "properties" jsonb NOT NULL DEFAULT '{}', "storedInternal" boolean NOT NULL, "url" character varying(512) NOT NULL, "thumbnailUrl" character varying(512), "webpublicUrl" character varying(512), "accessKey" character varying(256), "thumbnailAccessKey" character varying(256), "webpublicAccessKey" character varying(256), "uri" character varying(512), "src" character varying(512), "folderId" character varying(32), "isSensitive" boolean NOT NULL DEFAULT false, "isLink" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_43ddaaaf18c9e68029b7cbb032e" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON "drive_file" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_92779627994ac79277f070c91e" ON "drive_file" ("userHost") `); - await queryRunner.query(`CREATE INDEX "IDX_37bb9a1b4585f8a3beb24c62d6" ON "drive_file" ("md5") `); - await queryRunner.query(`CREATE INDEX "IDX_a40b8df8c989d7db937ea27cf6" ON "drive_file" ("type") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d85a184c2540d2deba33daf642" ON "drive_file" ("accessKey") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e74022ce9a074b3866f70e0d27" ON "drive_file" ("thumbnailAccessKey") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_c55b2b7c284d9fef98026fc88e" ON "drive_file" ("webpublicAccessKey") `); - await queryRunner.query(`CREATE INDEX "IDX_e5848eac4940934e23dbc17581" ON "drive_file" ("uri") `); - await queryRunner.query(`CREATE INDEX "IDX_bb90d1956dafc4068c28aa7560" ON "drive_file" ("folderId") `); - await queryRunner.query(`CREATE TABLE "user" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "lastFetchedAt" TIMESTAMP WITH TIME ZONE, "username" character varying(128) NOT NULL, "usernameLower" character varying(128) NOT NULL, "name" character varying(128), "followersCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "avatarId" character varying(32), "bannerId" character varying(32), "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "avatarUrl" character varying(512), "bannerUrl" character varying(512), "avatarColor" character varying(32), "bannerColor" character varying(32), "isSuspended" boolean NOT NULL DEFAULT false, "isSilenced" boolean NOT NULL DEFAULT false, "isLocked" boolean NOT NULL DEFAULT false, "isBot" boolean NOT NULL DEFAULT false, "isCat" boolean NOT NULL DEFAULT false, "isAdmin" boolean NOT NULL DEFAULT false, "isModerator" boolean NOT NULL DEFAULT false, "isVerified" boolean NOT NULL DEFAULT false, "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "host" character varying(128), "inbox" character varying(512), "sharedInbox" character varying(512), "featured" character varying(512), "uri" character varying(512), "token" character(16), CONSTRAINT "UQ_a854e557b1b14814750c7c7b0c9" UNIQUE ("token"), CONSTRAINT "REL_58f5c71eaab331645112cf8cfa" UNIQUE ("avatarId"), CONSTRAINT "REL_afc64b53f8db3707ceb34eb28e" UNIQUE ("bannerId"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_e11e649824a45d8ed01d597fd9" ON "user" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4" ON "user" ("updatedAt") `); - await queryRunner.query(`CREATE INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8" ON "user" ("usernameLower") `); - await queryRunner.query(`CREATE INDEX "IDX_fa99d777623947a5b05f394cae" ON "user" ("tags") `); - await queryRunner.query(`CREATE INDEX "IDX_3252a5df8d5bbd16b281f7799e" ON "user" ("host") `); - await queryRunner.query(`CREATE INDEX "IDX_be623adaa4c566baf5d29ce0c8" ON "user" ("uri") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a854e557b1b14814750c7c7b0c" ON "user" ("token") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5deb01ae162d1d70b80d064c27" ON "user" ("usernameLower", "host") `); - await queryRunner.query(`CREATE TABLE "app" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "secret" character varying(64) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(512) NOT NULL, "permission" character varying(64) array NOT NULL, "callbackUrl" character varying(512), CONSTRAINT "PK_9478629fc093d229df09e560aea" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_048a757923ed8b157e9895da53" ON "app" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_3f5b0899ef90527a3462d7c2cb" ON "app" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_f49922d511d666848f250663c4" ON "app" ("secret") `); - await queryRunner.query(`CREATE TABLE "access_token" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "hash" character varying(128) NOT NULL, "userId" character varying(32) NOT NULL, "appId" character varying(32) NOT NULL, CONSTRAINT "PK_f20f028607b2603deabd8182d12" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_70ba8f6af34bc924fc9e12adb8" ON "access_token" ("token") `); - await queryRunner.query(`CREATE INDEX "IDX_64c327441248bae40f7d92f34f" ON "access_token" ("hash") `); - await queryRunner.query(`CREATE INDEX "IDX_9949557d0e1b2c19e5344c171e" ON "access_token" ("userId") `); - await queryRunner.query(`CREATE TYPE "note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`); - await queryRunner.query(`CREATE TABLE "note" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "replyId" character varying(32), "renoteId" character varying(32), "text" text, "name" character varying(256), "cw" character varying(512), "appId" character varying(32), "userId" character varying(32) NOT NULL, "viaMobile" boolean NOT NULL DEFAULT false, "localOnly" boolean NOT NULL DEFAULT false, "renoteCount" smallint NOT NULL DEFAULT 0, "repliesCount" smallint NOT NULL DEFAULT 0, "reactions" jsonb NOT NULL DEFAULT '{}', "visibility" "note_visibility_enum" NOT NULL, "uri" character varying(512), "score" integer NOT NULL DEFAULT 0, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "attachedFileTypes" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentions" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentionedRemoteUsers" text NOT NULL DEFAULT '[]', "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "hasPoll" boolean NOT NULL DEFAULT false, "geo" jsonb DEFAULT null, "userHost" character varying(128), "replyUserId" character varying(32), "replyUserHost" character varying(128), "renoteUserId" character varying(32), "renoteUserHost" character varying(128), CONSTRAINT "PK_96d0c172a4fba276b1bbed43058" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_e7c0567f5261063592f022e9b5" ON "note" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_17cb3553c700a4985dff5a30ff" ON "note" ("replyId") `); - await queryRunner.query(`CREATE INDEX "IDX_52ccc804d7c69037d558bac4c9" ON "note" ("renoteId") `); - await queryRunner.query(`CREATE INDEX "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_153536c67d05e9adb24e99fc2b" ON "note" ("uri") `); - await queryRunner.query(`CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON "note" ("fileIds") `); - await queryRunner.query(`CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON "note" ("attachedFileTypes") `); - await queryRunner.query(`CREATE INDEX "IDX_796a8c03959361f97dc2be1d5c" ON "note" ("visibleUserIds") `); - await queryRunner.query(`CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON "note" ("mentions") `); - await queryRunner.query(`CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON "note" ("tags") `); - await queryRunner.query(`CREATE INDEX "IDX_7125a826ab192eb27e11d358a5" ON "note" ("userHost") `); - await queryRunner.query(`CREATE TABLE "poll_vote" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "choice" integer NOT NULL, CONSTRAINT "PK_fd002d371201c472490ba89c6a0" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_0fb627e1c2f753262a74f0562d" ON "poll_vote" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_66d2bd2ee31d14bcc23069a89f" ON "poll_vote" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_aecfbd5ef60374918e63ee95fa" ON "poll_vote" ("noteId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_50bd7164c5b78f1f4a42c4d21f" ON "poll_vote" ("userId", "noteId", "choice") `); - await queryRunner.query(`CREATE TABLE "note_reaction" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "reaction" character varying(128) NOT NULL, CONSTRAINT "PK_767ec729b108799b587a3fcc9cf" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON "note_reaction" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_13761f64257f40c5636d0ff95e" ON "note_reaction" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_45145e4953780f3cd5656f0ea6" ON "note_reaction" ("noteId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ad0c221b25672daf2df320a817" ON "note_reaction" ("userId", "noteId") `); - await queryRunner.query(`CREATE TABLE "note_watching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, CONSTRAINT "PK_49286fdb23725945a74aa27d757" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_318cdf42a9cfc11f479bd802bb" ON "note_watching" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_b0134ec406e8d09a540f818288" ON "note_watching" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_03e7028ab8388a3f5e3ce2a861" ON "note_watching" ("noteId") `); - await queryRunner.query(`CREATE INDEX "IDX_44499765eec6b5489d72c4253b" ON "note_watching" ("noteUserId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a42c93c69989ce1d09959df4cf" ON "note_watching" ("userId", "noteId") `); - await queryRunner.query(`CREATE TABLE "note_unread" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, "isSpecified" boolean NOT NULL, CONSTRAINT "PK_1904eda61a784f57e6e51fa9c1f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_56b0166d34ddae49d8ef7610bb" ON "note_unread" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_e637cba4dc4410218c4251260e" ON "note_unread" ("noteId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d908433a4953cc13216cd9c274" ON "note_unread" ("userId", "noteId") `); - await queryRunner.query(`CREATE TABLE "notification" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "notifieeId" character varying(32) NOT NULL, "notifierId" character varying(32) NOT NULL, "type" character varying(32) NOT NULL, "isRead" boolean NOT NULL DEFAULT false, "noteId" character varying(32), "reaction" character varying(128), "choice" integer, CONSTRAINT "PK_705b6c7cdf9b2c2ff7ac7872cb7" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON "notification" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_3c601b70a1066d2c8b517094cb" ON "notification" ("notifieeId") `); - await queryRunner.query(`CREATE TABLE "meta" ("id" character varying(32) NOT NULL, "name" character varying(128), "description" character varying(1024), "maintainerName" character varying(128), "maintainerEmail" character varying(128), "announcements" jsonb NOT NULL DEFAULT '[]', "disableRegistration" boolean NOT NULL DEFAULT false, "disableLocalTimeline" boolean NOT NULL DEFAULT false, "disableGlobalTimeline" boolean NOT NULL DEFAULT false, "enableEmojiReaction" boolean NOT NULL DEFAULT true, "useStarForReactionFallback" boolean NOT NULL DEFAULT false, "langs" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "hiddenTags" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "blockedHosts" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "mascotImageUrl" character varying(512) DEFAULT '/assets/ai.png', "bannerUrl" character varying(512), "errorImageUrl" character varying(512) DEFAULT 'https://xn--931a.moe/aiart/yubitun.png', "iconUrl" character varying(512), "cacheRemoteFiles" boolean NOT NULL DEFAULT true, "proxyAccount" character varying(128), "enableRecaptcha" boolean NOT NULL DEFAULT false, "recaptchaSiteKey" character varying(64), "recaptchaSecretKey" character varying(64), "localDriveCapacityMb" integer NOT NULL DEFAULT 1024, "remoteDriveCapacityMb" integer NOT NULL DEFAULT 32, "maxNoteTextLength" integer NOT NULL DEFAULT 500, "summalyProxy" character varying(128), "enableEmail" boolean NOT NULL DEFAULT false, "email" character varying(128), "smtpSecure" boolean NOT NULL DEFAULT false, "smtpHost" character varying(128), "smtpPort" integer, "smtpUser" character varying(128), "smtpPass" character varying(128), "enableServiceWorker" boolean NOT NULL DEFAULT false, "swPublicKey" character varying(128), "swPrivateKey" character varying(128), "enableTwitterIntegration" boolean NOT NULL DEFAULT false, "twitterConsumerKey" character varying(128), "twitterConsumerSecret" character varying(128), "enableGithubIntegration" boolean NOT NULL DEFAULT false, "githubClientId" character varying(128), "githubClientSecret" character varying(128), "enableDiscordIntegration" boolean NOT NULL DEFAULT false, "discordClientId" character varying(128), "discordClientSecret" character varying(128), CONSTRAINT "PK_c4c17a6c2bd7651338b60fc590b" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TABLE "following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_c76c6e044bdf76ecf8bfb82a645" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_582f8fab771a9040a12961f3e7" ON "following" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_24e0042143a18157b234df186c" ON "following" ("followeeId") `); - await queryRunner.query(`CREATE INDEX "IDX_6516c5a6f3c015b4eed39978be" ON "following" ("followerId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_307be5f1d1252e0388662acb96" ON "following" ("followerId", "followeeId") `); - await queryRunner.query(`CREATE TABLE "instance" ("id" character varying(32) NOT NULL, "caughtAt" TIMESTAMP WITH TIME ZONE NOT NULL, "host" character varying(128) NOT NULL, "system" character varying(64), "usersCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "followersCount" integer NOT NULL DEFAULT 0, "driveUsage" integer NOT NULL DEFAULT 0, "driveFiles" integer NOT NULL DEFAULT 0, "latestRequestSentAt" TIMESTAMP WITH TIME ZONE, "latestStatus" integer, "latestRequestReceivedAt" TIMESTAMP WITH TIME ZONE, "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "isNotResponding" boolean NOT NULL DEFAULT false, "isMarkedAsClosed" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_eaf60e4a0c399c9935413e06474" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_2cd3b2a6b4cf0b910b260afe08" ON "instance" ("caughtAt") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8d5afc98982185799b160e10eb" ON "instance" ("host") `); - await queryRunner.query(`CREATE TABLE "muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "muteeId" character varying(32) NOT NULL, "muterId" character varying(32) NOT NULL, CONSTRAINT "PK_2e92d06c8b5c602eeb27ca9ba48" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_f86d57fbca33c7a4e6897490cc" ON "muting" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_ec96b4fed9dae517e0dbbe0675" ON "muting" ("muteeId") `); - await queryRunner.query(`CREATE INDEX "IDX_93060675b4a79a577f31d260c6" ON "muting" ("muterId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_1eb9d9824a630321a29fd3b290" ON "muting" ("muterId", "muteeId") `); - await queryRunner.query(`CREATE TABLE "sw_subscription" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "endpoint" character varying(512) NOT NULL, "auth" character varying(256) NOT NULL, "publickey" character varying(128) NOT NULL, CONSTRAINT "PK_e8f763631530051b95eb6279b91" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_97754ca6f2baff9b4abb7f853d" ON "sw_subscription" ("userId") `); - await queryRunner.query(`CREATE TABLE "blocking" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "blockeeId" character varying(32) NOT NULL, "blockerId" character varying(32) NOT NULL, CONSTRAINT "PK_e5d9a541cc1965ee7e048ea09dd" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b9a354f7941c1e779f3b33aea6" ON "blocking" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_2cd4a2743a99671308f5417759" ON "blocking" ("blockeeId") `); - await queryRunner.query(`CREATE INDEX "IDX_0627125f1a8a42c9a1929edb55" ON "blocking" ("blockerId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_98a1bc5cb30dfd159de056549f" ON "blocking" ("blockerId", "blockeeId") `); - await queryRunner.query(`CREATE TABLE "user_list" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, CONSTRAINT "PK_87bab75775fd9b1ff822b656402" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b7fcefbdd1c18dce86687531f9" ON "user_list" ("userId") `); - await queryRunner.query(`CREATE TABLE "user_list_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userListId" character varying(32) NOT NULL, CONSTRAINT "PK_11abb3768da1c5f8de101c9df45" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_d844bfc6f3f523a05189076efa" ON "user_list_joining" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_605472305f26818cc93d1baaa7" ON "user_list_joining" ("userListId") `); - await queryRunner.query(`CREATE TABLE "hashtag" ("id" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "mentionedUserIds" character varying(32) array NOT NULL, "mentionedUsersCount" integer NOT NULL DEFAULT 0, "mentionedLocalUserIds" character varying(32) array NOT NULL, "mentionedLocalUsersCount" integer NOT NULL DEFAULT 0, "mentionedRemoteUserIds" character varying(32) array NOT NULL, "mentionedRemoteUsersCount" integer NOT NULL DEFAULT 0, "attachedUserIds" character varying(32) array NOT NULL, "attachedUsersCount" integer NOT NULL DEFAULT 0, "attachedLocalUserIds" character varying(32) array NOT NULL, "attachedLocalUsersCount" integer NOT NULL DEFAULT 0, "attachedRemoteUserIds" character varying(32) array NOT NULL, "attachedRemoteUsersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_cb36eb8af8412bfa978f1165d78" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_347fec870eafea7b26c8a73bac" ON "hashtag" ("name") `); - await queryRunner.query(`CREATE INDEX "IDX_2710a55f826ee236ea1a62698f" ON "hashtag" ("mentionedUsersCount") `); - await queryRunner.query(`CREATE INDEX "IDX_0e206cec573f1edff4a3062923" ON "hashtag" ("mentionedLocalUsersCount") `); - await queryRunner.query(`CREATE INDEX "IDX_4c02d38a976c3ae132228c6fce" ON "hashtag" ("mentionedRemoteUsersCount") `); - await queryRunner.query(`CREATE INDEX "IDX_d57f9030cd3af7f63ffb1c267c" ON "hashtag" ("attachedUsersCount") `); - await queryRunner.query(`CREATE INDEX "IDX_0c44bf4f680964145f2a68a341" ON "hashtag" ("attachedLocalUsersCount") `); - await queryRunner.query(`CREATE INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2" ON "hashtag" ("attachedRemoteUsersCount") `); - await queryRunner.query(`CREATE TABLE "note_favorite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_af0da35a60b9fa4463a62082b36" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_47f4b1892f5d6ba8efb3057d81" ON "note_favorite" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0f4fb9ad355f3effff221ef245" ON "note_favorite" ("userId", "noteId") `); - await queryRunner.query(`CREATE TABLE "abuse_user_report" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "reporterId" character varying(32) NOT NULL, "comment" character varying(512) NOT NULL, CONSTRAINT "PK_87873f5f5cc5c321a1306b2d18c" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_db2098070b2b5a523c58181f74" ON "abuse_user_report" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_04cc96756f89d0b7f9473e8cdf" ON "abuse_user_report" ("reporterId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `); - await queryRunner.query(`CREATE TABLE "registration_ticket" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(64) NOT NULL, CONSTRAINT "PK_f11696b6fafcf3662d4292734f8" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59" ON "registration_ticket" ("code") `); - await queryRunner.query(`CREATE TABLE "messaging_message" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "recipientId" character varying(32) NOT NULL, "text" character varying(4096), "isRead" boolean NOT NULL DEFAULT false, "fileId" character varying(32), CONSTRAINT "PK_db398fd79dc95d0eb8c30456eaa" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_e21cd3646e52ef9c94aaf17c2e" ON "messaging_message" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_5377c307783fce2b6d352e1203" ON "messaging_message" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_cac14a4e3944454a5ce7daa514" ON "messaging_message" ("recipientId") `); - await queryRunner.query(`CREATE TABLE "signin" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "ip" character varying(128) NOT NULL, "headers" jsonb NOT NULL, "success" boolean NOT NULL, CONSTRAINT "PK_9e96ddc025712616fc492b3b588" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_2c308dbdc50d94dc625670055f" ON "signin" ("userId") `); - await queryRunner.query(`CREATE TABLE "auth_session" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "userId" character varying(32), "appId" character varying(32) NOT NULL, CONSTRAINT "PK_19354ed146424a728c1112a8cbf" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_62cb09e1129f6ec024ef66e183" ON "auth_session" ("token") `); - await queryRunner.query(`CREATE TABLE "follow_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "requestId" character varying(128), "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_53a9aa3725f7a3deb150b39dbfc" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_12c01c0d1a79f77d9f6c15fadd" ON "follow_request" ("followeeId") `); - await queryRunner.query(`CREATE INDEX "IDX_a7fd92dd6dc519e6fb435dd108" ON "follow_request" ("followerId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d54a512b822fac7ed52800f6b4" ON "follow_request" ("followerId", "followeeId") `); - await queryRunner.query(`CREATE TABLE "emoji" ("id" character varying(32) NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "name" character varying(128) NOT NULL, "host" character varying(128), "url" character varying(512) NOT NULL, "uri" character varying(512), "type" character varying(64), "aliases" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_df74ce05e24999ee01ea0bc50a3" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b37dafc86e9af007e3295c2781" ON "emoji" ("name") `); - await queryRunner.query(`CREATE INDEX "IDX_5900e907bb46516ddf2871327c" ON "emoji" ("host") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4f4d35e1256c84ae3d1f0eab10" ON "emoji" ("name", "host") `); - await queryRunner.query(`CREATE TABLE "reversi_game" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "startedAt" TIMESTAMP WITH TIME ZONE, "user1Id" character varying(32) NOT NULL, "user2Id" character varying(32) NOT NULL, "user1Accepted" boolean NOT NULL DEFAULT false, "user2Accepted" boolean NOT NULL DEFAULT false, "black" integer, "isStarted" boolean NOT NULL DEFAULT false, "isEnded" boolean NOT NULL DEFAULT false, "winnerId" character varying(32), "surrendered" character varying(32), "logs" jsonb NOT NULL DEFAULT '[]', "map" character varying(64) array NOT NULL, "bw" character varying(32) NOT NULL, "isLlotheo" boolean NOT NULL DEFAULT false, "canPutEverywhere" boolean NOT NULL DEFAULT false, "loopedBoard" boolean NOT NULL DEFAULT false, "form1" jsonb DEFAULT null, "form2" jsonb DEFAULT null, "crc32" character varying(32), CONSTRAINT "PK_76b30eeba71b1193ad7c5311c3f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b46ec40746efceac604142be1c" ON "reversi_game" ("createdAt") `); - await queryRunner.query(`CREATE TABLE "reversi_matching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "parentId" character varying(32) NOT NULL, "childId" character varying(32) NOT NULL, CONSTRAINT "PK_880bd0afbab232f21c8b9d146cf" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_b604d92d6c7aec38627f6eaf16" ON "reversi_matching" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_3b25402709dd9882048c2bbade" ON "reversi_matching" ("parentId") `); - await queryRunner.query(`CREATE INDEX "IDX_e247b23a3c9b45f89ec1299d06" ON "reversi_matching" ("childId") `); - await queryRunner.query(`CREATE TABLE "user_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_a6a2dad4ae000abce2ea9d9b103" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_bfbc6f79ba4007b4ce5097f08d" ON "user_note_pining" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_410cd649884b501c02d6e72738" ON "user_note_pining" ("userId", "noteId") `); - await queryRunner.query(`CREATE TYPE "poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`); - await queryRunner.query(`CREATE TABLE "poll" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE, "multiple" boolean NOT NULL, "choices" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "votes" integer array NOT NULL, "noteVisibility" "poll_notevisibility_enum" NOT NULL, "userId" character varying(32) NOT NULL, "userHost" character varying(128), CONSTRAINT "REL_da851e06d0dfe2ef397d8b1bf1" UNIQUE ("noteId"), CONSTRAINT "PK_da851e06d0dfe2ef397d8b1bf1b" PRIMARY KEY ("noteId"))`); - await queryRunner.query(`CREATE INDEX "IDX_0610ebcfcfb4a18441a9bcdab2" ON "poll" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_7fa20a12319c7f6dc3aed98c0a" ON "poll" ("userHost") `); - await queryRunner.query(`CREATE TABLE "user_keypair" ("userId" character varying(32) NOT NULL, "publicKey" character varying(4096) NOT NULL, "privateKey" character varying(4096) NOT NULL, CONSTRAINT "REL_f4853eb41ab722fe05f81cedeb" UNIQUE ("userId"), CONSTRAINT "PK_f4853eb41ab722fe05f81cedeb6" PRIMARY KEY ("userId"))`); - await queryRunner.query(`CREATE TABLE "user_publickey" ("userId" character varying(32) NOT NULL, "keyId" character varying(256) NOT NULL, "keyPem" character varying(4096) NOT NULL, CONSTRAINT "REL_10c146e4b39b443ede016f6736" UNIQUE ("userId"), CONSTRAINT "PK_10c146e4b39b443ede016f6736d" PRIMARY KEY ("userId"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_171e64971c780ebd23fae140bb" ON "user_publickey" ("keyId") `); - await queryRunner.query(`CREATE TABLE "user_profile" ("userId" character varying(32) NOT NULL, "location" character varying(128), "birthday" character(10), "description" character varying(1024), "fields" jsonb NOT NULL DEFAULT '[]', "url" character varying(512), "email" character varying(128), "emailVerifyCode" character varying(128), "emailVerified" boolean NOT NULL DEFAULT false, "twoFactorTempSecret" character varying(128), "twoFactorSecret" character varying(128), "twoFactorEnabled" boolean NOT NULL DEFAULT false, "password" character varying(128), "clientData" jsonb NOT NULL DEFAULT '{}', "autoWatch" boolean NOT NULL DEFAULT false, "autoAcceptFollowed" boolean NOT NULL DEFAULT false, "alwaysMarkNsfw" boolean NOT NULL DEFAULT false, "carefulBot" boolean NOT NULL DEFAULT false, "twitter" boolean NOT NULL DEFAULT false, "twitterAccessToken" character varying(64) DEFAULT null, "twitterAccessTokenSecret" character varying(64) DEFAULT null, "twitterUserId" character varying(64) DEFAULT null, "twitterScreenName" character varying(64) DEFAULT null, "github" boolean NOT NULL DEFAULT false, "githubAccessToken" character varying(64) DEFAULT null, "githubId" integer DEFAULT null, "githubLogin" character varying(64) DEFAULT null, "discord" boolean NOT NULL DEFAULT false, "discordAccessToken" character varying(64) DEFAULT null, "discordRefreshToken" character varying(64) DEFAULT null, "discordExpiresDate" integer DEFAULT null, "discordId" character varying(64) DEFAULT null, "discordUsername" character varying(64) DEFAULT null, "discordDiscriminator" character varying(64) DEFAULT null, "userHost" character varying(128), CONSTRAINT "REL_51cb79b5555effaf7d69ba1cff" UNIQUE ("userId"), CONSTRAINT "PK_51cb79b5555effaf7d69ba1cff9" PRIMARY KEY ("userId"))`); - await queryRunner.query(`CREATE INDEX "IDX_dce530b98e454793dac5ec2f5a" ON "user_profile" ("userHost") `); - await queryRunner.query(`CREATE TYPE "__chart__active_users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__active_users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_317237a9f733b970604a11e314f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "PK_f96bc548a765cd4b3b354221ce7" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__federation_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__federation_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "PK_b39dcd31a0fe1a7757e348e85fd" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__hashtag_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__hashtag_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_c32f1ea2b44a5d2f7881e37f8f9" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__instance_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__instance_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "PK_1267c67c7c2d47b4903975f2c00" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__network_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__network_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "PK_bc4290c2e27fad14ef0c1ca93f3" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "PK_0aec823fa85c7f901bdb3863b14" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "PK_d0ef23d24d666e1a44a0cd3d208" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_following_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "PK_85bb1b540363a29c2fec83bd907" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "PK_334acf6e915af2f29edc11b8e50" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_reaction_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_984f54dae441e65b633e8d27a7f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__test_grouped" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_grouped_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_f4a2b175d308695af30d4293272" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__test_unique_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__test_unique" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_unique_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo" bigint NOT NULL, CONSTRAINT "PK_409bac9c97cc612d8500012319d" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__test_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__test" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_b4bc31dffbd1b785276a3ecfc1e" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE TYPE "__chart__users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`CREATE TABLE "__chart__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "PK_4dfcf2c78d03524b9eb2c99d328" PRIMARY KEY ("id"))`); - await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2" FOREIGN KEY ("parentId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a" FOREIGN KEY ("folderId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5" FOREIGN KEY ("avatarId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "app" ADD CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5" FOREIGN KEY ("replyId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_52ccc804d7c69037d558bac4c96" FOREIGN KEY ("renoteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_13761f64257f40c5636d0ff95ee" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_b0134ec406e8d09a540f8182888" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_e637cba4dc4410218c4251260e4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9" FOREIGN KEY ("notifieeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_24e0042143a18157b234df186c3" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c" FOREIGN KEY ("muteeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_93060675b4a79a577f31d260c67" FOREIGN KEY ("muterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "sw_subscription" ADD CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_2cd4a2743a99671308f5417759e" FOREIGN KEY ("blockeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_0627125f1a8a42c9a1929edb552" FOREIGN KEY ("blockerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_list" ADD CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_d844bfc6f3f523a05189076efaa" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_605472305f26818cc93d1baaa74" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_0e00498f180193423c992bc4370" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_5377c307783fce2b6d352e1203b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142" FOREIGN KEY ("recipientId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_535def119223ac05ad3fa9ef64b" FOREIGN KEY ("fileId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "signin" ADD CONSTRAINT "FK_2c308dbdc50d94dc625670055f7" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_c072b729d71697f959bde66ade0" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_f7467510c60a45ce5aca6292743" FOREIGN KEY ("user1Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6" FOREIGN KEY ("user2Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_3b25402709dd9882048c2bbade0" FOREIGN KEY ("parentId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066" FOREIGN KEY ("childId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_68881008f7c3588ad7ecae471cf" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "poll" ADD CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_keypair" ADD CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "FK_10c146e4b39b443ede016f6736d" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`); - await queryRunner.query(`ALTER TABLE "user_publickey" DROP CONSTRAINT "FK_10c146e4b39b443ede016f6736d"`); - await queryRunner.query(`ALTER TABLE "user_keypair" DROP CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6"`); - await queryRunner.query(`ALTER TABLE "poll" DROP CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b"`); - await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_68881008f7c3588ad7ecae471cf"`); - await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6"`); - await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066"`); - await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_3b25402709dd9882048c2bbade0"`); - await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6"`); - await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_f7467510c60a45ce5aca6292743"`); - await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f"`); - await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2"`); - await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee"`); - await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_c072b729d71697f959bde66ade0"`); - await queryRunner.query(`ALTER TABLE "signin" DROP CONSTRAINT "FK_2c308dbdc50d94dc625670055f7"`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_535def119223ac05ad3fa9ef64b"`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142"`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_5377c307783fce2b6d352e1203b"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`); - await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_0e00498f180193423c992bc4370"`); - await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a"`); - await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_605472305f26818cc93d1baaa74"`); - await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_d844bfc6f3f523a05189076efaa"`); - await queryRunner.query(`ALTER TABLE "user_list" DROP CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99"`); - await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_0627125f1a8a42c9a1929edb552"`); - await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_2cd4a2743a99671308f5417759e"`); - await queryRunner.query(`ALTER TABLE "sw_subscription" DROP CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd"`); - await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_93060675b4a79a577f31d260c67"`); - await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c"`); - await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5"`); - await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_24e0042143a18157b234df186c3"`); - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453"`); - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`); - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9"`); - await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_e637cba4dc4410218c4251260e4"`); - await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9"`); - await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619"`); - await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_b0134ec406e8d09a540f8182888"`); - await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a"`); - await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_13761f64257f40c5636d0ff95ee"`); - await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7"`); - await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8"`); - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b"`); - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`); - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_52ccc804d7c69037d558bac4c96"`); - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5"`); - await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`); - await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9"`); - await queryRunner.query(`ALTER TABLE "app" DROP CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3"`); - await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2"`); - await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e"`); - await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2"`); - await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2"`); - await queryRunner.query(`DROP TABLE "__chart__users"`); - await queryRunner.query(`DROP TYPE "__chart__users_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__test"`); - await queryRunner.query(`DROP TYPE "__chart__test_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__test_unique"`); - await queryRunner.query(`DROP TYPE "__chart__test_unique_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__test_grouped"`); - await queryRunner.query(`DROP TYPE "__chart__test_grouped_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__per_user_reaction"`); - await queryRunner.query(`DROP TYPE "__chart__per_user_reaction_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__per_user_notes"`); - await queryRunner.query(`DROP TYPE "__chart__per_user_notes_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__per_user_following"`); - await queryRunner.query(`DROP TYPE "__chart__per_user_following_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__per_user_drive"`); - await queryRunner.query(`DROP TYPE "__chart__per_user_drive_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__notes"`); - await queryRunner.query(`DROP TYPE "__chart__notes_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__network"`); - await queryRunner.query(`DROP TYPE "__chart__network_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__instance"`); - await queryRunner.query(`DROP TYPE "__chart__instance_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__hashtag"`); - await queryRunner.query(`DROP TYPE "__chart__hashtag_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__federation"`); - await queryRunner.query(`DROP TYPE "__chart__federation_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__drive"`); - await queryRunner.query(`DROP TYPE "__chart__drive_span_enum"`); - await queryRunner.query(`DROP TABLE "__chart__active_users"`); - await queryRunner.query(`DROP TYPE "__chart__active_users_span_enum"`); - await queryRunner.query(`DROP INDEX "IDX_dce530b98e454793dac5ec2f5a"`); - await queryRunner.query(`DROP TABLE "user_profile"`); - await queryRunner.query(`DROP INDEX "IDX_171e64971c780ebd23fae140bb"`); - await queryRunner.query(`DROP TABLE "user_publickey"`); - await queryRunner.query(`DROP TABLE "user_keypair"`); - await queryRunner.query(`DROP INDEX "IDX_7fa20a12319c7f6dc3aed98c0a"`); - await queryRunner.query(`DROP INDEX "IDX_0610ebcfcfb4a18441a9bcdab2"`); - await queryRunner.query(`DROP TABLE "poll"`); - await queryRunner.query(`DROP TYPE "poll_notevisibility_enum"`); - await queryRunner.query(`DROP INDEX "IDX_410cd649884b501c02d6e72738"`); - await queryRunner.query(`DROP INDEX "IDX_bfbc6f79ba4007b4ce5097f08d"`); - await queryRunner.query(`DROP TABLE "user_note_pining"`); - await queryRunner.query(`DROP INDEX "IDX_e247b23a3c9b45f89ec1299d06"`); - await queryRunner.query(`DROP INDEX "IDX_3b25402709dd9882048c2bbade"`); - await queryRunner.query(`DROP INDEX "IDX_b604d92d6c7aec38627f6eaf16"`); - await queryRunner.query(`DROP TABLE "reversi_matching"`); - await queryRunner.query(`DROP INDEX "IDX_b46ec40746efceac604142be1c"`); - await queryRunner.query(`DROP TABLE "reversi_game"`); - await queryRunner.query(`DROP INDEX "IDX_4f4d35e1256c84ae3d1f0eab10"`); - await queryRunner.query(`DROP INDEX "IDX_5900e907bb46516ddf2871327c"`); - await queryRunner.query(`DROP INDEX "IDX_b37dafc86e9af007e3295c2781"`); - await queryRunner.query(`DROP TABLE "emoji"`); - await queryRunner.query(`DROP INDEX "IDX_d54a512b822fac7ed52800f6b4"`); - await queryRunner.query(`DROP INDEX "IDX_a7fd92dd6dc519e6fb435dd108"`); - await queryRunner.query(`DROP INDEX "IDX_12c01c0d1a79f77d9f6c15fadd"`); - await queryRunner.query(`DROP TABLE "follow_request"`); - await queryRunner.query(`DROP INDEX "IDX_62cb09e1129f6ec024ef66e183"`); - await queryRunner.query(`DROP TABLE "auth_session"`); - await queryRunner.query(`DROP INDEX "IDX_2c308dbdc50d94dc625670055f"`); - await queryRunner.query(`DROP TABLE "signin"`); - await queryRunner.query(`DROP INDEX "IDX_cac14a4e3944454a5ce7daa514"`); - await queryRunner.query(`DROP INDEX "IDX_5377c307783fce2b6d352e1203"`); - await queryRunner.query(`DROP INDEX "IDX_e21cd3646e52ef9c94aaf17c2e"`); - await queryRunner.query(`DROP TABLE "messaging_message"`); - await queryRunner.query(`DROP INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59"`); - await queryRunner.query(`DROP TABLE "registration_ticket"`); - await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`); - await queryRunner.query(`DROP INDEX "IDX_04cc96756f89d0b7f9473e8cdf"`); - await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`); - await queryRunner.query(`DROP INDEX "IDX_db2098070b2b5a523c58181f74"`); - await queryRunner.query(`DROP TABLE "abuse_user_report"`); - await queryRunner.query(`DROP INDEX "IDX_0f4fb9ad355f3effff221ef245"`); - await queryRunner.query(`DROP INDEX "IDX_47f4b1892f5d6ba8efb3057d81"`); - await queryRunner.query(`DROP TABLE "note_favorite"`); - await queryRunner.query(`DROP INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2"`); - await queryRunner.query(`DROP INDEX "IDX_0c44bf4f680964145f2a68a341"`); - await queryRunner.query(`DROP INDEX "IDX_d57f9030cd3af7f63ffb1c267c"`); - await queryRunner.query(`DROP INDEX "IDX_4c02d38a976c3ae132228c6fce"`); - await queryRunner.query(`DROP INDEX "IDX_0e206cec573f1edff4a3062923"`); - await queryRunner.query(`DROP INDEX "IDX_2710a55f826ee236ea1a62698f"`); - await queryRunner.query(`DROP INDEX "IDX_347fec870eafea7b26c8a73bac"`); - await queryRunner.query(`DROP TABLE "hashtag"`); - await queryRunner.query(`DROP INDEX "IDX_605472305f26818cc93d1baaa7"`); - await queryRunner.query(`DROP INDEX "IDX_d844bfc6f3f523a05189076efa"`); - await queryRunner.query(`DROP TABLE "user_list_joining"`); - await queryRunner.query(`DROP INDEX "IDX_b7fcefbdd1c18dce86687531f9"`); - await queryRunner.query(`DROP TABLE "user_list"`); - await queryRunner.query(`DROP INDEX "IDX_98a1bc5cb30dfd159de056549f"`); - await queryRunner.query(`DROP INDEX "IDX_0627125f1a8a42c9a1929edb55"`); - await queryRunner.query(`DROP INDEX "IDX_2cd4a2743a99671308f5417759"`); - await queryRunner.query(`DROP INDEX "IDX_b9a354f7941c1e779f3b33aea6"`); - await queryRunner.query(`DROP TABLE "blocking"`); - await queryRunner.query(`DROP INDEX "IDX_97754ca6f2baff9b4abb7f853d"`); - await queryRunner.query(`DROP TABLE "sw_subscription"`); - await queryRunner.query(`DROP INDEX "IDX_1eb9d9824a630321a29fd3b290"`); - await queryRunner.query(`DROP INDEX "IDX_93060675b4a79a577f31d260c6"`); - await queryRunner.query(`DROP INDEX "IDX_ec96b4fed9dae517e0dbbe0675"`); - await queryRunner.query(`DROP INDEX "IDX_f86d57fbca33c7a4e6897490cc"`); - await queryRunner.query(`DROP TABLE "muting"`); - await queryRunner.query(`DROP INDEX "IDX_8d5afc98982185799b160e10eb"`); - await queryRunner.query(`DROP INDEX "IDX_2cd3b2a6b4cf0b910b260afe08"`); - await queryRunner.query(`DROP TABLE "instance"`); - await queryRunner.query(`DROP INDEX "IDX_307be5f1d1252e0388662acb96"`); - await queryRunner.query(`DROP INDEX "IDX_6516c5a6f3c015b4eed39978be"`); - await queryRunner.query(`DROP INDEX "IDX_24e0042143a18157b234df186c"`); - await queryRunner.query(`DROP INDEX "IDX_582f8fab771a9040a12961f3e7"`); - await queryRunner.query(`DROP TABLE "following"`); - await queryRunner.query(`DROP TABLE "meta"`); - await queryRunner.query(`DROP INDEX "IDX_3c601b70a1066d2c8b517094cb"`); - await queryRunner.query(`DROP INDEX "IDX_b11a5e627c41d4dc3170f1d370"`); - await queryRunner.query(`DROP TABLE "notification"`); - await queryRunner.query(`DROP INDEX "IDX_d908433a4953cc13216cd9c274"`); - await queryRunner.query(`DROP INDEX "IDX_e637cba4dc4410218c4251260e"`); - await queryRunner.query(`DROP INDEX "IDX_56b0166d34ddae49d8ef7610bb"`); - await queryRunner.query(`DROP TABLE "note_unread"`); - await queryRunner.query(`DROP INDEX "IDX_a42c93c69989ce1d09959df4cf"`); - await queryRunner.query(`DROP INDEX "IDX_44499765eec6b5489d72c4253b"`); - await queryRunner.query(`DROP INDEX "IDX_03e7028ab8388a3f5e3ce2a861"`); - await queryRunner.query(`DROP INDEX "IDX_b0134ec406e8d09a540f818288"`); - await queryRunner.query(`DROP INDEX "IDX_318cdf42a9cfc11f479bd802bb"`); - await queryRunner.query(`DROP TABLE "note_watching"`); - await queryRunner.query(`DROP INDEX "IDX_ad0c221b25672daf2df320a817"`); - await queryRunner.query(`DROP INDEX "IDX_45145e4953780f3cd5656f0ea6"`); - await queryRunner.query(`DROP INDEX "IDX_13761f64257f40c5636d0ff95e"`); - await queryRunner.query(`DROP INDEX "IDX_01f4581f114e0ebd2bbb876f0b"`); - await queryRunner.query(`DROP TABLE "note_reaction"`); - await queryRunner.query(`DROP INDEX "IDX_50bd7164c5b78f1f4a42c4d21f"`); - await queryRunner.query(`DROP INDEX "IDX_aecfbd5ef60374918e63ee95fa"`); - await queryRunner.query(`DROP INDEX "IDX_66d2bd2ee31d14bcc23069a89f"`); - await queryRunner.query(`DROP INDEX "IDX_0fb627e1c2f753262a74f0562d"`); - await queryRunner.query(`DROP TABLE "poll_vote"`); - await queryRunner.query(`DROP INDEX "IDX_7125a826ab192eb27e11d358a5"`); - await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`); - await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`); - await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`); - await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`); - await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`); - await queryRunner.query(`DROP INDEX "IDX_153536c67d05e9adb24e99fc2b"`); - await queryRunner.query(`DROP INDEX "IDX_5b87d9d19127bd5d92026017a7"`); - await queryRunner.query(`DROP INDEX "IDX_52ccc804d7c69037d558bac4c9"`); - await queryRunner.query(`DROP INDEX "IDX_17cb3553c700a4985dff5a30ff"`); - await queryRunner.query(`DROP INDEX "IDX_e7c0567f5261063592f022e9b5"`); - await queryRunner.query(`DROP TABLE "note"`); - await queryRunner.query(`DROP TYPE "note_visibility_enum"`); - await queryRunner.query(`DROP INDEX "IDX_9949557d0e1b2c19e5344c171e"`); - await queryRunner.query(`DROP INDEX "IDX_64c327441248bae40f7d92f34f"`); - await queryRunner.query(`DROP INDEX "IDX_70ba8f6af34bc924fc9e12adb8"`); - await queryRunner.query(`DROP TABLE "access_token"`); - await queryRunner.query(`DROP INDEX "IDX_f49922d511d666848f250663c4"`); - await queryRunner.query(`DROP INDEX "IDX_3f5b0899ef90527a3462d7c2cb"`); - await queryRunner.query(`DROP INDEX "IDX_048a757923ed8b157e9895da53"`); - await queryRunner.query(`DROP TABLE "app"`); - await queryRunner.query(`DROP INDEX "IDX_5deb01ae162d1d70b80d064c27"`); - await queryRunner.query(`DROP INDEX "IDX_a854e557b1b14814750c7c7b0c"`); - await queryRunner.query(`DROP INDEX "IDX_be623adaa4c566baf5d29ce0c8"`); - await queryRunner.query(`DROP INDEX "IDX_3252a5df8d5bbd16b281f7799e"`); - await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`); - await queryRunner.query(`DROP INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8"`); - await queryRunner.query(`DROP INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4"`); - await queryRunner.query(`DROP INDEX "IDX_e11e649824a45d8ed01d597fd9"`); - await queryRunner.query(`DROP TABLE "user"`); - await queryRunner.query(`DROP INDEX "IDX_bb90d1956dafc4068c28aa7560"`); - await queryRunner.query(`DROP INDEX "IDX_e5848eac4940934e23dbc17581"`); - await queryRunner.query(`DROP INDEX "IDX_c55b2b7c284d9fef98026fc88e"`); - await queryRunner.query(`DROP INDEX "IDX_e74022ce9a074b3866f70e0d27"`); - await queryRunner.query(`DROP INDEX "IDX_d85a184c2540d2deba33daf642"`); - await queryRunner.query(`DROP INDEX "IDX_a40b8df8c989d7db937ea27cf6"`); - await queryRunner.query(`DROP INDEX "IDX_37bb9a1b4585f8a3beb24c62d6"`); - await queryRunner.query(`DROP INDEX "IDX_92779627994ac79277f070c91e"`); - await queryRunner.query(`DROP INDEX "IDX_860fa6f6c7df5bb887249fba22"`); - await queryRunner.query(`DROP INDEX "IDX_c8dfad3b72196dd1d6b5db168a"`); - await queryRunner.query(`DROP TABLE "drive_file"`); - await queryRunner.query(`DROP INDEX "IDX_00ceffb0cdc238b3233294f08f"`); - await queryRunner.query(`DROP INDEX "IDX_f4fc06e49c0171c85f1c48060d"`); - await queryRunner.query(`DROP INDEX "IDX_02878d441ceae15ce060b73daf"`); - await queryRunner.query(`DROP TABLE "drive_folder"`); - await queryRunner.query(`DROP INDEX "IDX_584b536b49e53ac81beb39a177"`); - await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); - await queryRunner.query(`DROP INDEX "IDX_8e4eb51a35d81b64dda28eed0a"`); - await queryRunner.query(`DROP TABLE "log"`); - await queryRunner.query(`DROP TYPE "log_level_enum"`); - } -} diff --git a/packages/backend/migration/1556348509290-Pages.js b/packages/backend/migration/1556348509290-Pages.js deleted file mode 100644 index 50caa2ce9..000000000 --- a/packages/backend/migration/1556348509290-Pages.js +++ /dev/null @@ -1,28 +0,0 @@ - - -export class Pages1556348509290 { - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`); - await queryRunner.query(`CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_af639b066dfbca78b01a920f8a" ON "page" ("updatedAt") `); - await queryRunner.query(`CREATE INDEX "IDX_b82c19c08afb292de4600d99e4" ON "page" ("name") `); - await queryRunner.query(`CREATE INDEX "IDX_ae1d917992dd0c9d9bbdad06c4" ON "page" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_90148bbc2bf0854428786bfc15" ON "page" ("visibleUserIds") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2133ef8317e4bdb839c0dcbf13" ON "page" ("userId", "name") `); - await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`); - await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a"`); - await queryRunner.query(`DROP INDEX "IDX_2133ef8317e4bdb839c0dcbf13"`); - await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); - await queryRunner.query(`DROP INDEX "IDX_ae1d917992dd0c9d9bbdad06c4"`); - await queryRunner.query(`DROP INDEX "IDX_b82c19c08afb292de4600d99e4"`); - await queryRunner.query(`DROP INDEX "IDX_af639b066dfbca78b01a920f8a"`); - await queryRunner.query(`DROP INDEX "IDX_fbb4297c927a9b85e9cefa2eb1"`); - await queryRunner.query(`DROP TABLE "page"`); - await queryRunner.query(`DROP TYPE "page_visibility_enum"`); - } -} diff --git a/packages/backend/migration/1556746559567-UserProfile.js b/packages/backend/migration/1556746559567-UserProfile.js deleted file mode 100644 index 50a9d1a8b..000000000 --- a/packages/backend/migration/1556746559567-UserProfile.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class UserProfile1556746559567 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`); - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`); - } - async down(queryRunner) { - await queryRunner.query(`UPDATE "user_profile" SET github = FALSE, discord = FALSE`); - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`); - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`); - } -} diff --git a/packages/backend/migration/1557476068003-PinnedUsers.js b/packages/backend/migration/1557476068003-PinnedUsers.js deleted file mode 100644 index d9cce2543..000000000 --- a/packages/backend/migration/1557476068003-PinnedUsers.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class PinnedUsers1557476068003 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`); - } -} diff --git a/packages/backend/migration/1557761316509-AddSomeUrls.js b/packages/backend/migration/1557761316509-AddSomeUrls.js deleted file mode 100644 index ab8736f7c..000000000 --- a/packages/backend/migration/1557761316509-AddSomeUrls.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class AddSomeUrls1557761316509 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/misskey-dev/misskey'`); - await queryRunner.query(`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/misskey-dev/misskey/issues/new'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`); - } -} diff --git a/packages/backend/migration/1557932705754-ObjectStorageSetting.js b/packages/backend/migration/1557932705754-ObjectStorageSetting.js deleted file mode 100644 index 19a0b9d5c..000000000 --- a/packages/backend/migration/1557932705754-ObjectStorageSetting.js +++ /dev/null @@ -1,28 +0,0 @@ - - -export class ObjectStorageSetting1557932705754 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBaseUrl" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageEndpoint" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageRegion" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageAccessKey" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSecretKey" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePort" integer`); - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageAccessKey"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageRegion"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageEndpoint"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBaseUrl"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePrefix"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`); - } -} diff --git a/packages/backend/migration/1558072954435-PageLike.js b/packages/backend/migration/1558072954435-PageLike.js deleted file mode 100644 index 31b08418a..000000000 --- a/packages/backend/migration/1558072954435-PageLike.js +++ /dev/null @@ -1,20 +0,0 @@ - - -export class PageLike1558072954435 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `); - await queryRunner.query(`ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`); - await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`); - await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`); - await queryRunner.query(`DROP INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa"`); - await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`); - await queryRunner.query(`DROP TABLE "page_like"`); - } -} diff --git a/packages/backend/migration/1558103093633-UserGroup.js b/packages/backend/migration/1558103093633-UserGroup.js deleted file mode 100644 index b670b31c3..000000000 --- a/packages/backend/migration/1558103093633-UserGroup.js +++ /dev/null @@ -1,38 +0,0 @@ - - -export class UserGroup1558103093633 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `); - await queryRunner.query(`CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`); - await queryRunner.query(`CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `); - await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`); - await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`); - await queryRunner.query(`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_2c4be03b446884f9e9c502135be"`); - await queryRunner.query(`DROP INDEX "IDX_2c4be03b446884f9e9c502135b"`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS ''`); - await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" SET NOT NULL`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "reads"`); - await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "groupId"`); - await queryRunner.query(`DROP INDEX "IDX_67dc758bc0566985d1b3d39986"`); - await queryRunner.query(`DROP INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23"`); - await queryRunner.query(`DROP TABLE "user_group_joining"`); - await queryRunner.query(`DROP INDEX "IDX_3d6b372788ab01be58853003c9"`); - await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`); - await queryRunner.query(`DROP TABLE "user_group"`); - } -} diff --git a/packages/backend/migration/1558257926829-UserGroupInvite.js b/packages/backend/migration/1558257926829-UserGroupInvite.js deleted file mode 100644 index e48bd3a7f..000000000 --- a/packages/backend/migration/1558257926829-UserGroupInvite.js +++ /dev/null @@ -1,22 +0,0 @@ - - -export class UserGroupInvite1558257926829 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `); - await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`); - await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`); - await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`); - await queryRunner.query(`DROP INDEX "IDX_78787741f9010886796f2320a4"`); - await queryRunner.query(`DROP INDEX "IDX_e10924607d058004304611a436"`); - await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`); - await queryRunner.query(`DROP TABLE "user_group_invite"`); - } -} diff --git a/packages/backend/migration/1558266512381-UserListJoining.js b/packages/backend/migration/1558266512381-UserListJoining.js deleted file mode 100644 index 3398aed13..000000000 --- a/packages/backend/migration/1558266512381-UserListJoining.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class UserListJoining1558266512381 { - async up(queryRunner) { - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`); - } -} diff --git a/packages/backend/migration/1561706992953-webauthn.js b/packages/backend/migration/1561706992953-webauthn.js deleted file mode 100644 index b007ffef1..000000000 --- a/packages/backend/migration/1561706992953-webauthn.js +++ /dev/null @@ -1,26 +0,0 @@ - - -export class webauthn1561706992953 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`); - await queryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `); - await queryRunner.query(`CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`); - await queryRunner.query(`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`); - await queryRunner.query(`DROP INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7"`); - await queryRunner.query(`DROP INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44"`); - await queryRunner.query(`DROP TABLE "user_security_key"`); - await queryRunner.query(`DROP INDEX "IDX_47efb914aed1f72dd39a306c7b"`); - await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`); - await queryRunner.query(`DROP TABLE "attestation_challenge"`); - } -} diff --git a/packages/backend/migration/1561873850023-ChartIndexes.js b/packages/backend/migration/1561873850023-ChartIndexes.js deleted file mode 100644 index 3ce53567f..000000000 --- a/packages/backend/migration/1561873850023-ChartIndexes.js +++ /dev/null @@ -1,198 +0,0 @@ - - -export class ChartIndexes1561873850023 { - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("span", "date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("span", "date") `); - await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); - await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); - await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); - await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`); - await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); - await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`); - await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); - await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`); - await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); - await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`); - await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); - await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`); - await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); - await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`); - await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); - await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`); - await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); - await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`); - await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); - await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`); - await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); - await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`); - await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); - await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`); - await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); - await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`); - await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); - await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`); - await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); - await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`); - await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); - await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`); - await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); - await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`); - await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); - await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`); - await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); - await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`); - await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); - await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`); - await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); - await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`); - await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); - await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`); - await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); - await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`); - await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); - await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`); - await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); - await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`); - await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); - await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`); - await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); - await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`); - await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); - await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`); - await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); - await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`); - await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); - await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`); - await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); - await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`); - await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); - await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`); - await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); - await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`); - await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); - await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`); - await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); - await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`); - await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); - await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`); - await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); - await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`); - await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); - await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`); - await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); - await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`); - await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); - await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`); - await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); - await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`); - await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); - await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`); - await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); - await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`); - await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); - await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`); - await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); - await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`); - await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); - await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`); - await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`); - await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`); - await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`); - await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`); - await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`); - await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`); - await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`); - await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); - } -} diff --git a/packages/backend/migration/1562422242907-PasswordLessLogin.js b/packages/backend/migration/1562422242907-PasswordLessLogin.js deleted file mode 100644 index b73c7db4d..000000000 --- a/packages/backend/migration/1562422242907-PasswordLessLogin.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class PasswordLessLogin1562422242907 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`); - } -} diff --git a/packages/backend/migration/1562444565093-PinnedPage.js b/packages/backend/migration/1562444565093-PinnedPage.js deleted file mode 100644 index 9a999a915..000000000 --- a/packages/backend/migration/1562444565093-PinnedPage.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class PinnedPage1562444565093 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`); - } -} diff --git a/packages/backend/migration/1562448332510-PageTitleHideOption.js b/packages/backend/migration/1562448332510-PageTitleHideOption.js deleted file mode 100644 index 8fc78d202..000000000 --- a/packages/backend/migration/1562448332510-PageTitleHideOption.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class PageTitleHideOption1562448332510 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`); - } -} diff --git a/packages/backend/migration/1562869971568-ModerationLog.js b/packages/backend/migration/1562869971568-ModerationLog.js deleted file mode 100644 index dd66d16ee..000000000 --- a/packages/backend/migration/1562869971568-ModerationLog.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class ModerationLog1562869971568 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `); - await queryRunner.query(`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`); - await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`); - await queryRunner.query(`DROP TABLE "moderation_log"`); - } -} diff --git a/packages/backend/migration/1563757595828-UsedUsername.js b/packages/backend/migration/1563757595828-UsedUsername.js deleted file mode 100644 index 8972df297..000000000 --- a/packages/backend/migration/1563757595828-UsedUsername.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class UsedUsername1563757595828 { - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`); - } - async down(queryRunner) { - await queryRunner.query(`DROP TABLE "used_username"`); - } -} diff --git a/packages/backend/migration/1565634203341-room.js b/packages/backend/migration/1565634203341-room.js deleted file mode 100644 index 679940f24..000000000 --- a/packages/backend/migration/1565634203341-room.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class room1565634203341 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`); - } -} diff --git a/packages/backend/migration/1571220798684-CustomEmojiCategory.js b/packages/backend/migration/1571220798684-CustomEmojiCategory.js deleted file mode 100644 index 37c07366e..000000000 --- a/packages/backend/migration/1571220798684-CustomEmojiCategory.js +++ /dev/null @@ -1,10 +0,0 @@ - - -export class CustomEmojiCategory1571220798684 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined); - } -} diff --git a/packages/backend/migration/1572760203493-nodeinfo.js b/packages/backend/migration/1572760203493-nodeinfo.js deleted file mode 100644 index 54d5f914a..000000000 --- a/packages/backend/migration/1572760203493-nodeinfo.js +++ /dev/null @@ -1,26 +0,0 @@ - - -export class nodeinfo1572760203493 { - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "system"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "openRegistrations" boolean DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "name" character varying(256) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "description" character varying(4096) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerName" character varying(128) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerName"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "description"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "name"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "openRegistrations"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareVersion"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareName"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "system" character varying(64)`, undefined); - } -} diff --git a/packages/backend/migration/1576269851876-TalkFederationId.js b/packages/backend/migration/1576269851876-TalkFederationId.js deleted file mode 100644 index 35861d571..000000000 --- a/packages/backend/migration/1576269851876-TalkFederationId.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class TalkFederationId1576269851876 { - constructor() { - this.name = 'TalkFederationId1576269851876'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined); - } -} diff --git a/packages/backend/migration/1576869585998-ProxyRemoteFiles.js b/packages/backend/migration/1576869585998-ProxyRemoteFiles.js deleted file mode 100644 index d6d134be4..000000000 --- a/packages/backend/migration/1576869585998-ProxyRemoteFiles.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class ProxyRemoteFiles1576869585998 { - constructor() { - this.name = 'ProxyRemoteFiles1576869585998'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined); - } -} diff --git a/packages/backend/migration/1579267006611-v12.js b/packages/backend/migration/1579267006611-v12.js deleted file mode 100644 index 7f6318a19..000000000 --- a/packages/backend/migration/1579267006611-v12.js +++ /dev/null @@ -1,33 +0,0 @@ - - -export class v121579267006611 { - constructor() { - this.name = 'v121579267006611'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `, undefined); - await queryRunner.query(`CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_8288151386172b8109f7239ab2" ON "announcement_read" ("userId") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf" ON "announcement_read" ("announcementId") `, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_924fa71815cfa3941d003702a0" ON "announcement_read" ("userId", "announcementId") `, undefined); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isVerified"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "announcements"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableEmojiReaction"`, undefined); - await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, undefined); - await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "announcements" jsonb NOT NULL DEFAULT '[]'`, undefined); - await queryRunner.query(`ALTER TABLE "user" ADD "isVerified" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`DROP INDEX "IDX_924fa71815cfa3941d003702a0"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_8288151386172b8109f7239ab2"`, undefined); - await queryRunner.query(`DROP TABLE "announcement_read"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_118ec703e596086fc4515acb39"`, undefined); - await queryRunner.query(`DROP TABLE "announcement"`, undefined); - } -} diff --git a/packages/backend/migration/1579270193251-v12-2.js b/packages/backend/migration/1579270193251-v12-2.js deleted file mode 100644 index c51ce6306..000000000 --- a/packages/backend/migration/1579270193251-v12-2.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class v1221579270193251 { - constructor() { - this.name = 'v1221579270193251'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined); - } -} diff --git a/packages/backend/migration/1579282808087-v12-3.js b/packages/backend/migration/1579282808087-v12-3.js deleted file mode 100644 index aeb4f5a87..000000000 --- a/packages/backend/migration/1579282808087-v12-3.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class v1231579282808087 { - constructor() { - this.name = 'v1231579282808087'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined); - } -} diff --git a/packages/backend/migration/1579544426412-v12-4.js b/packages/backend/migration/1579544426412-v12-4.js deleted file mode 100644 index f1e093413..000000000 --- a/packages/backend/migration/1579544426412-v12-4.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class v1241579544426412 { - constructor() { - this.name = 'v1241579544426412'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES "follow_request"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "followRequestId"`, undefined); - } -} diff --git a/packages/backend/migration/1579977526288-v12-5.js b/packages/backend/migration/1579977526288-v12-5.js deleted file mode 100644 index 6d2b5c584..000000000 --- a/packages/backend/migration/1579977526288-v12-5.js +++ /dev/null @@ -1,53 +0,0 @@ - - -export class v1251579977526288 { - constructor() { - this.name = 'v1251579977526288'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_2b5ec6c574d6802c94c80313fb" ON "clip" ("userId") `, undefined); - await queryRunner.query(`CREATE TABLE "clip_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "clipId" character varying(32) NOT NULL, CONSTRAINT "PK_e94cda2f40a99b57e032a1a738b" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_a012eaf5c87c65da1deb5fdbfa" ON "clip_note" ("noteId") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_ebe99317bbbe9968a0c6f579ad" ON "clip_note" ("clipId") `, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_6fc0ec357d55a18646262fdfff" ON "clip_note" ("noteId", "clipId") `, undefined); - await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'list')`, undefined); - await queryRunner.query(`CREATE TABLE "antenna" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "src" "antenna_src_enum" NOT NULL, "userListId" character varying(32), "keywords" jsonb NOT NULL DEFAULT '[]', "withFile" boolean NOT NULL, "expression" character varying(2048), "notify" boolean NOT NULL, "hasNewNote" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_c170b99775e1dccca947c9f2d5f" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_6446c571a0e8d0f05f01c78909" ON "antenna" ("userId") `, undefined); - await queryRunner.query(`CREATE TABLE "antenna_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "antennaId" character varying(32) NOT NULL, CONSTRAINT "PK_fb28d94d0989a3872df19fd6ef8" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_bd0397be22147e17210940e125" ON "antenna_note" ("noteId") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_0d775946662d2575dfd2068a5f" ON "antenna_note" ("antennaId") `, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_335a0bf3f904406f9ef3dd51c2" ON "antenna_note" ("noteId", "antennaId") `, undefined); - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "geo"`, undefined); - await queryRunner.query(`ALTER TABLE "clip" ADD CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf" FOREIGN KEY ("clipId") REFERENCES "clip"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_6446c571a0e8d0f05f01c789096" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_bd0397be22147e17210940e125b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_0d775946662d2575dfd2068a5f5" FOREIGN KEY ("antennaId") REFERENCES "antenna"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_bd0397be22147e17210940e125b"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_6446c571a0e8d0f05f01c789096"`, undefined); - await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf"`, undefined); - await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3"`, undefined); - await queryRunner.query(`ALTER TABLE "clip" DROP CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2"`, undefined); - await queryRunner.query(`ALTER TABLE "note" ADD "geo" jsonb`, undefined); - await queryRunner.query(`DROP INDEX "IDX_335a0bf3f904406f9ef3dd51c2"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_0d775946662d2575dfd2068a5f"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_bd0397be22147e17210940e125"`, undefined); - await queryRunner.query(`DROP TABLE "antenna_note"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_6446c571a0e8d0f05f01c78909"`, undefined); - await queryRunner.query(`DROP TABLE "antenna"`, undefined); - await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_6fc0ec357d55a18646262fdfff"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_ebe99317bbbe9968a0c6f579ad"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_a012eaf5c87c65da1deb5fdbfa"`, undefined); - await queryRunner.query(`DROP TABLE "clip_note"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_2b5ec6c574d6802c94c80313fb"`, undefined); - await queryRunner.query(`DROP TABLE "clip"`, undefined); - } -} diff --git a/packages/backend/migration/1579993013959-v12-6.js b/packages/backend/migration/1579993013959-v12-6.js deleted file mode 100644 index 3941c1391..000000000 --- a/packages/backend/migration/1579993013959-v12-6.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class v1261579993013959 { - constructor() { - this.name = 'v1261579993013959'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna_note" ADD "read" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_9937ea48d7ae97ffb4f3f063a4" ON "antenna_note" ("read") `, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna_note" DROP COLUMN "read"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD "hasNewNote" boolean NOT NULL DEFAULT false`, undefined); - } -} diff --git a/packages/backend/migration/1580069531114-v12-7.js b/packages/backend/migration/1580069531114-v12-7.js deleted file mode 100644 index 4b4790cb7..000000000 --- a/packages/backend/migration/1580069531114-v12-7.js +++ /dev/null @@ -1,23 +0,0 @@ - - -export class v1271580069531114 { - constructor() { - this.name = 'v1271580069531114'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD "caseSensitive" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); - await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list')`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); - await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); - await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); - await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "caseSensitive"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); - } -} diff --git a/packages/backend/migration/1580148575182-v12-8.js b/packages/backend/migration/1580148575182-v12-8.js deleted file mode 100644 index cc30200c1..000000000 --- a/packages/backend/migration/1580148575182-v12-8.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class v1281580148575182 { - constructor() { - this.name = 'v1281580148575182'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`, undefined); - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "appId"`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" ADD "appId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); - } -} diff --git a/packages/backend/migration/1580154400017-v12-9.js b/packages/backend/migration/1580154400017-v12-9.js deleted file mode 100644 index 3715798f1..000000000 --- a/packages/backend/migration/1580154400017-v12-9.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class v1291580154400017 { - constructor() { - this.name = 'v1291580154400017'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined); - } -} diff --git a/packages/backend/migration/1580276619901-v12-10.js b/packages/backend/migration/1580276619901-v12-10.js deleted file mode 100644 index d5decb882..000000000 --- a/packages/backend/migration/1580276619901-v12-10.js +++ /dev/null @@ -1,18 +0,0 @@ - - -export class v12101580276619901 { - constructor() { - this.name = 'v12101580276619901'; - } - async up(queryRunner) { - await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); - await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "type" "notification_type_enum" NOT NULL`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); - await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "type" character varying(32) NOT NULL`, undefined); - } -} diff --git a/packages/backend/migration/1580331224276-v12-11.js b/packages/backend/migration/1580331224276-v12-11.js deleted file mode 100644 index 129720adb..000000000 --- a/packages/backend/migration/1580331224276-v12-11.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class v12111580331224276 { - constructor() { - this.name = 'v12111580331224276'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isMarkedAsClosed"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "isSuspended" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_34500da2e38ac393f7bb6b299c" ON "instance" ("isSuspended") `, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_34500da2e38ac393f7bb6b299c"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isSuspended"`, undefined); - await queryRunner.query(`ALTER TABLE "instance" ADD "isMarkedAsClosed" boolean NOT NULL DEFAULT false`, undefined); - } -} diff --git a/packages/backend/migration/1580508795118-v12-12.js b/packages/backend/migration/1580508795118-v12-12.js deleted file mode 100644 index c5cec23a3..000000000 --- a/packages/backend/migration/1580508795118-v12-12.js +++ /dev/null @@ -1,45 +0,0 @@ - - -export class v12121580508795118 { - constructor() { - this.name = 'v12121580508795118'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitter"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessToken"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessTokenSecret"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterUserId"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterScreenName"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "github"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubAccessToken"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubId"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubLogin"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discord"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordAccessToken"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordRefreshToken"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordExpiresDate"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordId"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordUsername"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordDiscriminator"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "integrations"`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordDiscriminator" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordUsername" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordId" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordExpiresDate" character varying(64)`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordRefreshToken" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordAccessToken" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "discord" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubLogin" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubId" character varying(64)`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubAccessToken" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "github" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterScreenName" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterUserId" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessTokenSecret" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessToken" character varying(64) DEFAULT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitter" boolean NOT NULL DEFAULT false`, undefined); - } -} diff --git a/packages/backend/migration/1580543501339-v12-13.js b/packages/backend/migration/1580543501339-v12-13.js deleted file mode 100644 index 2fa490392..000000000 --- a/packages/backend/migration/1580543501339-v12-13.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class v12131580543501339 { - constructor() { - this.name = 'v12131580543501339'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined); - } -} diff --git a/packages/backend/migration/1580864313253-v12-14.js b/packages/backend/migration/1580864313253-v12-14.js deleted file mode 100644 index a3756ad02..000000000 --- a/packages/backend/migration/1580864313253-v12-14.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class v12141580864313253 { - constructor() { - this.name = 'v12141580864313253'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccount" TO "proxyAccountId"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad" FOREIGN KEY ("proxyAccountId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(128)`, undefined); - await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccountId" TO "proxyAccount"`, undefined); - } -} diff --git a/packages/backend/migration/1581526429287-user-group-invitation.js b/packages/backend/migration/1581526429287-user-group-invitation.js deleted file mode 100644 index 181b0aba8..000000000 --- a/packages/backend/migration/1581526429287-user-group-invitation.js +++ /dev/null @@ -1,37 +0,0 @@ - - -export class userGroupInvitation1581526429287 { - constructor() { - this.name = 'userGroupInvitation1581526429287'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "user_group_invitation" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e9793f65f504e5a31fbaedbf2f" ON "user_group_invitation" ("userId", "userGroupId") `, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "userGroupInvitationId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined); - await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined); - await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined); - await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_bfbc6305547539369fe73eb144a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`, undefined); - await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`, undefined); - await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined); - await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined); - await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); - await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "userGroupInvitationId"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_e9793f65f504e5a31fbaedbf2f"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_5cc8c468090e129857e9fecce5"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`, undefined); - await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined); - } -} diff --git a/packages/backend/migration/1581695816408-user-group-antenna.js b/packages/backend/migration/1581695816408-user-group-antenna.js deleted file mode 100644 index 267b58cd9..000000000 --- a/packages/backend/migration/1581695816408-user-group-antenna.js +++ /dev/null @@ -1,27 +0,0 @@ - - -export class userGroupAntenna1581695816408 { - constructor() { - this.name = 'userGroupAntenna1581695816408'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); - await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); - await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`, undefined); - await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'users', 'list')`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); - await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); - await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`, undefined); - } -} diff --git a/packages/backend/migration/1581708415836-drive-user-folder-id-index.js b/packages/backend/migration/1581708415836-drive-user-folder-id-index.js deleted file mode 100644 index 43c2ce6ce..000000000 --- a/packages/backend/migration/1581708415836-drive-user-folder-id-index.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class driveUserFolderIdIndex1581708415836 { - constructor() { - this.name = 'driveUserFolderIdIndex1581708415836'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined); - } -} diff --git a/packages/backend/migration/1581979837262-promo.js b/packages/backend/migration/1581979837262-promo.js deleted file mode 100644 index 4813a5f48..000000000 --- a/packages/backend/migration/1581979837262-promo.js +++ /dev/null @@ -1,27 +0,0 @@ - - -export class promo1581979837262 { - constructor() { - this.name = 'promo1581979837262'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `, undefined); - await queryRunner.query(`CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_9657d55550c3d37bfafaf7d4b0" ON "promo_read" ("userId") `, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2882b8a1a07c7d281a98b6db16" ON "promo_read" ("userId", "noteId") `, undefined); - await queryRunner.query(`ALTER TABLE "promo_note" ADD CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`, undefined); - await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`, undefined); - await queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_2882b8a1a07c7d281a98b6db16"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_9657d55550c3d37bfafaf7d4b0"`, undefined); - await queryRunner.query(`DROP TABLE "promo_read"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`, undefined); - await queryRunner.query(`DROP TABLE "promo_note"`, undefined); - } -} diff --git a/packages/backend/migration/1582019042083-featured-injecttion.js b/packages/backend/migration/1582019042083-featured-injecttion.js deleted file mode 100644 index 7f8790b01..000000000 --- a/packages/backend/migration/1582019042083-featured-injecttion.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class featuredInjecttion1582019042083 { - constructor() { - this.name = 'featuredInjecttion1582019042083'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined); - } -} diff --git a/packages/backend/migration/1582210532752-antenna-exclude.js b/packages/backend/migration/1582210532752-antenna-exclude.js deleted file mode 100644 index ff8d7b80d..000000000 --- a/packages/backend/migration/1582210532752-antenna-exclude.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class antennaExclude1582210532752 { - constructor() { - this.name = 'antennaExclude1582210532752'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined); - } -} diff --git a/packages/backend/migration/1582875306439-note-reaction-length.js b/packages/backend/migration/1582875306439-note-reaction-length.js deleted file mode 100644 index e99501f01..000000000 --- a/packages/backend/migration/1582875306439-note-reaction-length.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class noteReactionLength1582875306439 { - constructor() { - this.name = 'noteReactionLength1582875306439'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined); - } -} diff --git a/packages/backend/migration/1585361548360-miauth.js b/packages/backend/migration/1585361548360-miauth.js deleted file mode 100644 index e59aa3b6e..000000000 --- a/packages/backend/migration/1585361548360-miauth.js +++ /dev/null @@ -1,35 +0,0 @@ - - -export class miauth1585361548360 { - constructor() { - this.name = 'miauth1585361548360'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "description" character varying(512) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "iconUrl" character varying(512) DEFAULT null`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "permission" character varying(64) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD "fetched" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP NOT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET DEFAULT null`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET NOT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "fetched"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "permission"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "iconUrl"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "description"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "name"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined); - await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined); - } -} diff --git a/packages/backend/migration/1585385921215-custom-notification.js b/packages/backend/migration/1585385921215-custom-notification.js deleted file mode 100644 index c3ddb2be1..000000000 --- a/packages/backend/migration/1585385921215-custom-notification.js +++ /dev/null @@ -1,47 +0,0 @@ - - -export class customNotification1585385921215 { - constructor() { - this.name = 'customNotification1585385921215'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`, undefined); - await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined); - await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined); - await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `, undefined); - await queryRunner.query(`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined); - await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined); - await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); - await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined); - await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS ''`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`, undefined); - await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customIcon"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined); - await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined); - } -} diff --git a/packages/backend/migration/1585772678853-ap-url.js b/packages/backend/migration/1585772678853-ap-url.js deleted file mode 100644 index 5fb809ff5..000000000 --- a/packages/backend/migration/1585772678853-ap-url.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class apUrl1585772678853 { - constructor() { - this.name = 'apUrl1585772678853'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined); - } -} diff --git a/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js b/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js deleted file mode 100644 index e13bb217e..000000000 --- a/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class AddObjectStorageUseProxy1586624197029 { - constructor() { - this.name = 'AddObjectStorageUseProxy1586624197029'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined); - } -} diff --git a/packages/backend/migration/1586641139527-remote-reaction.js b/packages/backend/migration/1586641139527-remote-reaction.js deleted file mode 100644 index 5b23103a1..000000000 --- a/packages/backend/migration/1586641139527-remote-reaction.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class remoteReaction1586641139527 { - constructor() { - this.name = 'remoteReaction1586641139527'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); - } -} diff --git a/packages/backend/migration/1586708940386-pageAiScript.js b/packages/backend/migration/1586708940386-pageAiScript.js deleted file mode 100644 index eed616c11..000000000 --- a/packages/backend/migration/1586708940386-pageAiScript.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class pageAiScript1586708940386 { - constructor() { - this.name = 'pageAiScript1586708940386'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined); - } -} diff --git a/packages/backend/migration/1588044505511-hCaptcha.js b/packages/backend/migration/1588044505511-hCaptcha.js deleted file mode 100644 index a33dbd713..000000000 --- a/packages/backend/migration/1588044505511-hCaptcha.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class hCaptcha1588044505511 { - constructor() { - this.name = 'hCaptcha1588044505511'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined); - await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined); - } -} diff --git a/packages/backend/migration/1589023282116-pubRelay.js b/packages/backend/migration/1589023282116-pubRelay.js deleted file mode 100644 index 48a1028d3..000000000 --- a/packages/backend/migration/1589023282116-pubRelay.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class pubRelay1589023282116 { - constructor() { - this.name = 'pubRelay1589023282116'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined); - await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined); - await queryRunner.query(`DROP TABLE "relay"`, undefined); - await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined); - } -} diff --git a/packages/backend/migration/1595075960584-blurhash.js b/packages/backend/migration/1595075960584-blurhash.js deleted file mode 100644 index f24d3722c..000000000 --- a/packages/backend/migration/1595075960584-blurhash.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class blurhash1595075960584 { - constructor() { - this.name = 'blurhash1595075960584'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`); - } -} diff --git a/packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js b/packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js deleted file mode 100644 index f18f6f972..000000000 --- a/packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class blurhashForAvatarBanner1595077605646 { - constructor() { - this.name = 'blurhashForAvatarBanner1595077605646'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarColor"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerColor"`); - await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`); - await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`); - await queryRunner.query(`ALTER TABLE "user" ADD "bannerColor" character varying(32)`); - await queryRunner.query(`ALTER TABLE "user" ADD "avatarColor" character varying(32)`); - } -} diff --git a/packages/backend/migration/1595676934834-instance-icon-url.js b/packages/backend/migration/1595676934834-instance-icon-url.js deleted file mode 100644 index df9d8199b..000000000 --- a/packages/backend/migration/1595676934834-instance-icon-url.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instanceIconUrl1595676934834 { - constructor() { - this.name = 'instanceIconUrl1595676934834'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`); - } -} diff --git a/packages/backend/migration/1595771249699-word-mute.js b/packages/backend/migration/1595771249699-word-mute.js deleted file mode 100644 index e8e4ac838..000000000 --- a/packages/backend/migration/1595771249699-word-mute.js +++ /dev/null @@ -1,29 +0,0 @@ - - -export class wordMute1595771249699 { - constructor() { - this.name = 'wordMute1595771249699'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "muted_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_897e2eff1c0b9b64e55ca1418a4" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_70ab9786313d78e4201d81cdb8" ON "muted_note" ("noteId") `); - await queryRunner.query(`CREATE INDEX "IDX_d8e07aa18c2d64e86201601aec" ON "muted_note" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a8c6bfd637d3f1d67a27c48e27" ON "muted_note" ("noteId", "userId") `); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "enableWordMute" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedWords" jsonb NOT NULL DEFAULT '[]'`); - await queryRunner.query(`CREATE INDEX "IDX_3befe6f999c86aff06eb0257b4" ON "user_profile" ("enableWordMute") `); - await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_70ab9786313d78e4201d81cdb89" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1"`); - await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_70ab9786313d78e4201d81cdb89"`); - await queryRunner.query(`DROP INDEX "IDX_3befe6f999c86aff06eb0257b4"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedWords"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "enableWordMute"`); - await queryRunner.query(`DROP INDEX "IDX_a8c6bfd637d3f1d67a27c48e27"`); - await queryRunner.query(`DROP INDEX "IDX_d8e07aa18c2d64e86201601aec"`); - await queryRunner.query(`DROP INDEX "IDX_70ab9786313d78e4201d81cdb8"`); - await queryRunner.query(`DROP TABLE "muted_note"`); - } -} diff --git a/packages/backend/migration/1595782306083-word-mute2.js b/packages/backend/migration/1595782306083-word-mute2.js deleted file mode 100644 index ab1e40a04..000000000 --- a/packages/backend/migration/1595782306083-word-mute2.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class wordMute21595782306083 { - constructor() { - this.name = 'wordMute21595782306083'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "muted_note_reason_enum" AS ENUM('word', 'manual', 'spam', 'other')`); - await queryRunner.query(`ALTER TABLE "muted_note" ADD "reason" "muted_note_reason_enum" NOT NULL`); - await queryRunner.query(`CREATE INDEX "IDX_636e977ff90b23676fb5624b25" ON "muted_note" ("reason") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_636e977ff90b23676fb5624b25"`); - await queryRunner.query(`ALTER TABLE "muted_note" DROP COLUMN "reason"`); - await queryRunner.query(`DROP TYPE "muted_note_reason_enum"`); - } -} diff --git a/packages/backend/migration/1596548170836-channel.js b/packages/backend/migration/1596548170836-channel.js deleted file mode 100644 index 242db7d45..000000000 --- a/packages/backend/migration/1596548170836-channel.js +++ /dev/null @@ -1,57 +0,0 @@ - - -export class channel1596548170836 { - constructor() { - this.name = 'channel1596548170836'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "channel" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "lastNotedAt" TIMESTAMP WITH TIME ZONE, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(2048), "bannerId" character varying(32), "notesCount" integer NOT NULL DEFAULT 0, "usersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_590f33ee6ee7d76437acf362e39" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON "channel" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_29ef80c6f13bcea998447fce43" ON "channel" ("lastNotedAt") `); - await queryRunner.query(`CREATE INDEX "IDX_823bae55bd81b3be6e05cff438" ON "channel" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_0f58c11241e649d2a638a8de94" ON "channel" ("notesCount") `); - await queryRunner.query(`CREATE INDEX "IDX_094b86cd36bb805d1aa1e8cc9a" ON "channel" ("usersCount") `); - await queryRunner.query(`CREATE TABLE "channel_following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, CONSTRAINT "PK_8b104be7f7415113f2a02cd5bdd" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_11e71f2511589dcc8a4d3214f9" ON "channel_following" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_0e43068c3f92cab197c3d3cd86" ON "channel_following" ("followeeId") `); - await queryRunner.query(`CREATE INDEX "IDX_6d8084ec9496e7334a4602707e" ON "channel_following" ("followerId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2e230dd45a10e671d781d99f3e" ON "channel_following" ("followerId", "followeeId") `); - await queryRunner.query(`CREATE TABLE "channel_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "channelId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_44f7474496bcf2e4b741681146d" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_8125f950afd3093acb10d2db8a" ON "channel_note_pining" ("channelId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f36fed37d6d4cdcc68c803cd9c" ON "channel_note_pining" ("channelId", "noteId") `); - await queryRunner.query(`ALTER TABLE "note" ADD "channelId" character varying(32) DEFAULT null`); - await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); - await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_823bae55bd81b3be6e05cff4383" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_f22169eb10657bded6d875ac8f9" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e" FOREIGN KEY ("followeeId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_6d8084ec9496e7334a4602707e1" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_8125f950afd3093acb10d2db8a8" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_10b19ef67d297ea9de325cd4502" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_10b19ef67d297ea9de325cd4502"`); - await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_8125f950afd3093acb10d2db8a8"`); - await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_6d8084ec9496e7334a4602707e1"`); - await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e"`); - await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_f22169eb10657bded6d875ac8f9"`); - await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19"`); - await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_823bae55bd81b3be6e05cff4383"`); - await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "channelId"`); - await queryRunner.query(`DROP INDEX "IDX_f36fed37d6d4cdcc68c803cd9c"`); - await queryRunner.query(`DROP INDEX "IDX_8125f950afd3093acb10d2db8a"`); - await queryRunner.query(`DROP TABLE "channel_note_pining"`); - await queryRunner.query(`DROP INDEX "IDX_2e230dd45a10e671d781d99f3e"`); - await queryRunner.query(`DROP INDEX "IDX_6d8084ec9496e7334a4602707e"`); - await queryRunner.query(`DROP INDEX "IDX_0e43068c3f92cab197c3d3cd86"`); - await queryRunner.query(`DROP INDEX "IDX_11e71f2511589dcc8a4d3214f9"`); - await queryRunner.query(`DROP TABLE "channel_following"`); - await queryRunner.query(`DROP INDEX "IDX_094b86cd36bb805d1aa1e8cc9a"`); - await queryRunner.query(`DROP INDEX "IDX_0f58c11241e649d2a638a8de94"`); - await queryRunner.query(`DROP INDEX "IDX_823bae55bd81b3be6e05cff438"`); - await queryRunner.query(`DROP INDEX "IDX_29ef80c6f13bcea998447fce43"`); - await queryRunner.query(`DROP INDEX "IDX_71cb7b435b7c0d4843317e7e16"`); - await queryRunner.query(`DROP TABLE "channel"`); - } -} diff --git a/packages/backend/migration/1596786425167-channel2.js b/packages/backend/migration/1596786425167-channel2.js deleted file mode 100644 index 4b17048fe..000000000 --- a/packages/backend/migration/1596786425167-channel2.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class channel21596786425167 { - constructor() { - this.name = 'channel21596786425167'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); - } -} diff --git a/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js b/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js deleted file mode 100644 index 07283e31d..000000000 --- a/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class objectStorageSetPublicRead1597230137744 { - constructor() { - this.name = 'objectStorageSetPublicRead1597230137744'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`); - } -} diff --git a/packages/backend/migration/1597236229720-IncludingNotificationTypes.js b/packages/backend/migration/1597236229720-IncludingNotificationTypes.js deleted file mode 100644 index f498fa7d9..000000000 --- a/packages/backend/migration/1597236229720-IncludingNotificationTypes.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class IncludingNotificationTypes1597236229720 { - constructor() { - this.name = 'IncludingNotificationTypes1597236229720'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); - await queryRunner.query(`DROP TYPE "user_profile_includingnotificationtypes_enum"`); - } -} diff --git a/packages/backend/migration/1597385880794-add-sensitive-index.js b/packages/backend/migration/1597385880794-add-sensitive-index.js deleted file mode 100644 index 8c5c040ba..000000000 --- a/packages/backend/migration/1597385880794-add-sensitive-index.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class addSensitiveIndex1597385880794 { - constructor() { - this.name = 'addSensitiveIndex1597385880794'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`); - } -} diff --git a/packages/backend/migration/1597459042300-channel-unread.js b/packages/backend/migration/1597459042300-channel-unread.js deleted file mode 100644 index 3157ab779..000000000 --- a/packages/backend/migration/1597459042300-channel-unread.js +++ /dev/null @@ -1,26 +0,0 @@ - - -export class channelUnread1597459042300 { - constructor() { - this.name = 'channelUnread1597459042300'; - } - async up(queryRunner) { - await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined); - await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); - await queryRunner.query(`ALTER TABLE "note_unread" ADD "isMentioned" boolean NOT NULL`); - await queryRunner.query(`ALTER TABLE "note_unread" ADD "noteChannelId" character varying(32)`); - await queryRunner.query(`CREATE INDEX "IDX_25b1dd384bec391b07b74b861c" ON "note_unread" ("isMentioned") `); - await queryRunner.query(`CREATE INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30" ON "note_unread" ("isSpecified") `); - await queryRunner.query(`CREATE INDEX "IDX_29e8c1d579af54d4232939f994" ON "note_unread" ("noteUserId") `); - await queryRunner.query(`CREATE INDEX "IDX_6a57f051d82c6d4036c141e107" ON "note_unread" ("noteChannelId") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_6a57f051d82c6d4036c141e107"`); - await queryRunner.query(`DROP INDEX "IDX_29e8c1d579af54d4232939f994"`); - await queryRunner.query(`DROP INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30"`); - await queryRunner.query(`DROP INDEX "IDX_25b1dd384bec391b07b74b861c"`); - await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "noteChannelId"`); - await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "isMentioned"`); - await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); - } -} diff --git a/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js b/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js deleted file mode 100644 index 2bd8aee35..000000000 --- a/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class ChannelNoteIdDescIndex1597893996136 { - constructor() { - this.name = 'ChannelNoteIdDescIndex1597893996136'; - } - async up(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); - await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`); - await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); - } -} diff --git a/packages/backend/migration/1600353287890-mutingNotificationTypes.js b/packages/backend/migration/1600353287890-mutingNotificationTypes.js deleted file mode 100644 index ed3eb7d14..000000000 --- a/packages/backend/migration/1600353287890-mutingNotificationTypes.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class mutingNotificationTypes1600353287890 { - constructor() { - this.name = 'mutingNotificationTypes1600353287890'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); - await queryRunner.query(`DROP TYPE "public"."user_profile_includingnotificationtypes_enum"`); - await queryRunner.query(`CREATE TYPE "user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutingNotificationTypes" "user_profile_mutingnotificationtypes_enum" array NOT NULL DEFAULT '{}'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutingNotificationTypes"`); - await queryRunner.query(`DROP TYPE "user_profile_mutingnotificationtypes_enum"`); - await queryRunner.query(`CREATE TYPE "public"."user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); - } -} diff --git a/packages/backend/migration/1603094348345-refine-abuse-user-report.js b/packages/backend/migration/1603094348345-refine-abuse-user-report.js deleted file mode 100644 index 4918032a2..000000000 --- a/packages/backend/migration/1603094348345-refine-abuse-user-report.js +++ /dev/null @@ -1,31 +0,0 @@ - - -export class refineAbuseUserReport1603094348345 { - constructor() { - this.name = 'refineAbuseUserReport1603094348345'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`); - await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`); - await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "userId" TO "targetUserId"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "assigneeId" character varying(32)`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "resolved" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(2048) NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`CREATE INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a" ON "abuse_user_report" ("resolved") `); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de"`); - await queryRunner.query(`DROP INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(512) NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "resolved"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "assigneeId"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "targetUserId" TO "userId"`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `); - await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } -} diff --git a/packages/backend/migration/1603095701770-refine-abuse-user-report2.js b/packages/backend/migration/1603095701770-refine-abuse-user-report2.js deleted file mode 100644 index 64e92672f..000000000 --- a/packages/backend/migration/1603095701770-refine-abuse-user-report2.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class refineAbuseUserReport21603095701770 { - constructor() { - this.name = 'refineAbuseUserReport21603095701770'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "targetUserHost" character varying(128)`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "reporterHost" character varying(128)`); - await queryRunner.query(`CREATE INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd" ON "abuse_user_report" ("targetUserHost") `); - await queryRunner.query(`CREATE INDEX "IDX_f8d8b93740ad12c4ce8213a199" ON "abuse_user_report" ("reporterHost") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_f8d8b93740ad12c4ce8213a199"`); - await queryRunner.query(`DROP INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "reporterHost"`); - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "targetUserHost"`); - } -} diff --git a/packages/backend/migration/1603776877564-instance-theme-color.js b/packages/backend/migration/1603776877564-instance-theme-color.js deleted file mode 100644 index 92440d3f6..000000000 --- a/packages/backend/migration/1603776877564-instance-theme-color.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instanceThemeColor1603776877564 { - constructor() { - this.name = 'instanceThemeColor1603776877564'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`); - } -} diff --git a/packages/backend/migration/1603781553011-instance-favicon.js b/packages/backend/migration/1603781553011-instance-favicon.js deleted file mode 100644 index f607c49ff..000000000 --- a/packages/backend/migration/1603781553011-instance-favicon.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instanceFavicon1603781553011 { - constructor() { - this.name = 'instanceFavicon1603781553011'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`); - } -} diff --git a/packages/backend/migration/1604821689616-delete-auto-watch.js b/packages/backend/migration/1604821689616-delete-auto-watch.js deleted file mode 100644 index 4706e8bae..000000000 --- a/packages/backend/migration/1604821689616-delete-auto-watch.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class deleteAutoWatch1604821689616 { - constructor() { - this.name = 'deleteAutoWatch1604821689616'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`); - } -} diff --git a/packages/backend/migration/1605408848373-clip-description.js b/packages/backend/migration/1605408848373-clip-description.js deleted file mode 100644 index edd5505b3..000000000 --- a/packages/backend/migration/1605408848373-clip-description.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class clipDescription1605408848373 { - constructor() { - this.name = 'clipDescription1605408848373'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`); - } -} diff --git a/packages/backend/migration/1605408971051-comments.js b/packages/backend/migration/1605408971051-comments.js deleted file mode 100644 index 400efd5e7..000000000 --- a/packages/backend/migration/1605408971051-comments.js +++ /dev/null @@ -1,433 +0,0 @@ - - -export class comments1605408971051 { - constructor() { - this.name = 'comments1605408971051'; - } - async up(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS 'The parent folder ID. If null, it means the DriveFolder is located in root.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS 'The created date of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS 'The host of owner. It will be null if the user in local.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS 'The MD5 hash of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS 'The file name of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS 'The content type (MIME) of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS 'The file size (bytes) of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS 'The comment of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS 'The BlurHash string.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS 'The any properties of the DriveFile. For example, it includes image width/height.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS 'The URL of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS 'The URL of the thumbnail of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS 'The URL of the webpublic of the DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS 'The URI of the DriveFile. it will be null when the DriveFile is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS 'The parent folder ID. If null, it means the DriveFile is located in root.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS 'Whether the DriveFile is NSFW.'`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS 'Whether the DriveFile is direct link to remote server.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS 'The updated date of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS 'The username of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS 'The username (lowercased) of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS 'The name of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS 'The count of followers.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS 'The count of following.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS 'The count of notes.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS 'The ID of avatar DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS 'The ID of banner DriveFile.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS 'Whether the User is suspended.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS 'Whether the User is locked.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS 'Whether the User is a bot.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS 'Whether the User is a cat.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS 'Whether the User is the admin.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS 'Whether the User is a moderator.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS 'The host of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS 'The inbox URL of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS 'The sharedInbox URL of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS 'The featured URL of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS 'The URI of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS 'The native access token of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS 'The created date of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS 'The secret key of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS 'The name of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS 'The description of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS 'The callbackUrl of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS 'The created date of the AccessToken.'`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS 'The created date of the Channel.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS 'The name of the Channel.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS 'The description of the Channel.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS 'The ID of banner Channel.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS 'The count of notes.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS 'The count of users.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS 'The created date of the Note.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS 'The ID of reply target.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS 'The ID of renote target.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS 'The ID of author.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS 'The URI of a note. it will be null when the note is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS 'The human readable url of a note. it will be null when the note is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS 'The ID of source channel.'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS 'The created date of the PollVote.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS 'The created date of the NoteReaction.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS 'The created date of the NoteWatching.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS 'The watcher ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS 'The target Note ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS 'The created date of the FollowRequest.'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS 'The followee user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS 'The follower user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS 'id of Follow Activity.'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS 'The created date of the UserGroup.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS 'The ID of owner.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS 'The created date of the UserGroupInvitation.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS 'The user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS 'The group ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS 'The created date of the Notification.'`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS 'The ID of recipient user of the Notification.'`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS 'Whether the Notification is read.'`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS 'Drive capacity of a local user (MB)'`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS 'Drive capacity of a remote user (MB)'`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS 'Max allowed note text length in characters'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS 'The created date of the Following.'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS 'The followee user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS 'The follower user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS 'The caught date of the Instance.'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS 'The host of the Instance.'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS 'The count of the users of the Instance.'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS 'The count of the notes of the Instance.'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS 'The software of the Instance.'`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS 'The created date of the Muting.'`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS 'The mutee user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS 'The muter user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS 'The created date of the Blocking.'`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS 'The blockee user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS 'The blocker user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS 'The created date of the UserList.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS 'The name of the UserList.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS 'The created date of the UserListJoining.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS 'The user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS 'The list ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS 'The created date of the UserGroupJoining.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS 'The user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS 'The group ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS 'The created date of the NoteFavorite.'`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS 'The created date of the AbuseUserReport.'`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS 'The created date of the MessagingMessage.'`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS 'The sender user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS 'The recipient group ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS 'The created date of the Signin.'`); - await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS 'The created date of the AuthSession.'`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS 'The created date of the ReversiGame.'`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS 'The started date of the ReversiGame.'`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS 'The created date of the ReversiMatching.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS 'The created date of the UserNotePinings.'`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS 'The created date of the Page.'`); - await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS 'The updated date of the Page.'`); - await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS 'The ID of author.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS 'The location of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS 'The birthday (YYYY-MM-DD) of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS 'Remote URL of the user.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS 'The email address of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS 'The password hash of the User. It will be null if the origin of the user is local.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS 'Variable-length id given to navigator.credentials.get()'`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS 'Variable-length public key used to verify attestations (hex-encoded).'`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS 'The date of the last time the UserSecurityKey was successfully validated.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS 'User-defined name for this key'`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS 'Hex-encoded sha256 hash of the challenge.'`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS 'The date challenge was created for expiry purposes.'`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.'`); - await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS 'The created date of the ModerationLog.'`); - await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS 'The created date of the Announcement.'`); - await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS 'The updated date of the Announcement.'`); - await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS 'The created date of the AnnouncementRead.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS 'The created date of the Clip.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS 'The name of the Clip.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS 'The description of the Clip.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS 'The note ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS 'The clip ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS 'The created date of the Antenna.'`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS 'The owner ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS 'The name of the Antenna.'`); - await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS 'The note ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS 'The antenna ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS '[Denormalized]'`); - await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS 'The created date of the PromoRead.'`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS 'The note ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS 'The user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS 'The reason of the MutedNote.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS 'The created date of the ChannelFollowing.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS 'The followee channel ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`); - await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`); - } - async down(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`); - await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`); - await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`); - } -} diff --git a/packages/backend/migration/1605585339718-instance-pinned-pages.js b/packages/backend/migration/1605585339718-instance-pinned-pages.js deleted file mode 100644 index 56ccd44c8..000000000 --- a/packages/backend/migration/1605585339718-instance-pinned-pages.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instancePinnedPages1605585339718 { - constructor() { - this.name = 'instancePinnedPages1605585339718'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`); - } -} diff --git a/packages/backend/migration/1605965516823-instance-images.js b/packages/backend/migration/1605965516823-instance-images.js deleted file mode 100644 index 710c75981..000000000 --- a/packages/backend/migration/1605965516823-instance-images.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class instanceImages1605965516823 { - constructor() { - this.name = 'instanceImages1605965516823'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "backgroundImageUrl" character varying(512)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "logoImageUrl" character varying(512)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "logoImageUrl"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "backgroundImageUrl"`); - } -} diff --git a/packages/backend/migration/1606191203881-no-crawle.js b/packages/backend/migration/1606191203881-no-crawle.js deleted file mode 100644 index b9ada4354..000000000 --- a/packages/backend/migration/1606191203881-no-crawle.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class noCrawle1606191203881 { - constructor() { - this.name = 'noCrawle1606191203881'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "noCrawle" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`); - } - async down(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "noCrawle"`); - } -} diff --git a/packages/backend/migration/1607151207216-instance-pinned-clip.js b/packages/backend/migration/1607151207216-instance-pinned-clip.js deleted file mode 100644 index 9a4195e74..000000000 --- a/packages/backend/migration/1607151207216-instance-pinned-clip.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instancePinnedClip1607151207216 { - constructor() { - this.name = 'instancePinnedClip1607151207216'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`); - } -} diff --git a/packages/backend/migration/1607353487793-isExplorable.js b/packages/backend/migration/1607353487793-isExplorable.js deleted file mode 100644 index d9f1ff4c6..000000000 --- a/packages/backend/migration/1607353487793-isExplorable.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class isExplorable1607353487793 { - constructor() { - this.name = 'isExplorable1607353487793'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "isExplorable" boolean NOT NULL DEFAULT true`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`); - await queryRunner.query(`CREATE INDEX "IDX_d5a1b83c7cab66f167e6888188" ON "user" ("isExplorable") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_d5a1b83c7cab66f167e6888188"`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isExplorable"`); - } -} diff --git a/packages/backend/migration/1610277136869-registry.js b/packages/backend/migration/1610277136869-registry.js deleted file mode 100644 index 184c062dd..000000000 --- a/packages/backend/migration/1610277136869-registry.js +++ /dev/null @@ -1,21 +0,0 @@ - - -export class registry1610277136869 { - constructor() { - this.name = 'registry1610277136869'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "registry_item" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "key" character varying(1024) NOT NULL, "scope" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[], "domain" character varying(512), CONSTRAINT "PK_64b3f7e6008b4d89b826cd3af95" PRIMARY KEY ("id")); COMMENT ON COLUMN "registry_item"."createdAt" IS 'The created date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."updatedAt" IS 'The updated date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."userId" IS 'The owner ID.'; COMMENT ON COLUMN "registry_item"."key" IS 'The key of the RegistryItem.'`); - await queryRunner.query(`CREATE INDEX "IDX_fb9d21ba0abb83223263df6bcb" ON "registry_item" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_22baca135bb8a3ea1a83d13df3" ON "registry_item" ("scope") `); - await queryRunner.query(`CREATE INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad" ON "registry_item" ("domain") `); - await queryRunner.query(`ALTER TABLE "registry_item" ADD CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "registry_item" DROP CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3"`); - await queryRunner.query(`DROP INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad"`); - await queryRunner.query(`DROP INDEX "IDX_22baca135bb8a3ea1a83d13df3"`); - await queryRunner.query(`DROP INDEX "IDX_fb9d21ba0abb83223263df6bcb"`); - await queryRunner.query(`DROP TABLE "registry_item"`); - } -} diff --git a/packages/backend/migration/1610277585759-registry2.js b/packages/backend/migration/1610277585759-registry2.js deleted file mode 100644 index 591bafae3..000000000 --- a/packages/backend/migration/1610277585759-registry2.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class registry21610277585759 { - constructor() { - this.name = 'registry21610277585759'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "registry_item" ADD "value" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`); - } - async down(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`); - await queryRunner.query(`ALTER TABLE "registry_item" DROP COLUMN "value"`); - } -} diff --git a/packages/backend/migration/1610283021566-registry3.js b/packages/backend/migration/1610283021566-registry3.js deleted file mode 100644 index e0289f17e..000000000 --- a/packages/backend/migration/1610283021566-registry3.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class registry31610283021566 { - constructor() { - this.name = 'registry31610283021566'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" DROP NOT NULL`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" SET NOT NULL`); - } -} diff --git a/packages/backend/migration/1611354329133-followersUri.js b/packages/backend/migration/1611354329133-followersUri.js deleted file mode 100644 index 669ddb480..000000000 --- a/packages/backend/migration/1611354329133-followersUri.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class followersUri1611354329133 { - constructor() { - this.name = 'followersUri1611354329133'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "followersUri" varchar(512) DEFAULT NULL`); - await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`); - } - async down(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "followersUri"`); - } -} diff --git a/packages/backend/migration/1611397665007-gallery.js b/packages/backend/migration/1611397665007-gallery.js deleted file mode 100644 index f49b2df46..000000000 --- a/packages/backend/migration/1611397665007-gallery.js +++ /dev/null @@ -1,39 +0,0 @@ - - -export class gallery1611397665007 { - constructor() { - this.name = 'gallery1611397665007'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "gallery_post" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "description" character varying(2048), "userId" character varying(32) NOT NULL, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "isSensitive" boolean NOT NULL DEFAULT false, "likedCount" integer NOT NULL DEFAULT '0', "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_8e90d7b6015f2c4518881b14753" PRIMARY KEY ("id")); COMMENT ON COLUMN "gallery_post"."createdAt" IS 'The created date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."updatedAt" IS 'The updated date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."userId" IS 'The ID of author.'; COMMENT ON COLUMN "gallery_post"."isSensitive" IS 'Whether the post is sensitive.'`); - await queryRunner.query(`CREATE INDEX "IDX_8f1a239bd077c8864a20c62c2c" ON "gallery_post" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_f631d37835adb04792e361807c" ON "gallery_post" ("updatedAt") `); - await queryRunner.query(`CREATE INDEX "IDX_985b836dddd8615e432d7043dd" ON "gallery_post" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_3ca50563facd913c425e7a89ee" ON "gallery_post" ("fileIds") `); - await queryRunner.query(`CREATE INDEX "IDX_f2d744d9a14d0dfb8b96cb7fc5" ON "gallery_post" ("isSensitive") `); - await queryRunner.query(`CREATE INDEX "IDX_1a165c68a49d08f11caffbd206" ON "gallery_post" ("likedCount") `); - await queryRunner.query(`CREATE INDEX "IDX_05cca34b985d1b8edc1d1e28df" ON "gallery_post" ("tags") `); - await queryRunner.query(`CREATE TABLE "gallery_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "postId" character varying(32) NOT NULL, CONSTRAINT "PK_853ab02be39b8de45cd720cc15f" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_8fd5215095473061855ceb948c" ON "gallery_like" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_df1b5f4099e99fb0bc5eae53b6" ON "gallery_like" ("userId", "postId") `); - await queryRunner.query(`ALTER TABLE "gallery_post" ADD CONSTRAINT "FK_985b836dddd8615e432d7043ddb" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_8fd5215095473061855ceb948cf" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8" FOREIGN KEY ("postId") REFERENCES "gallery_post"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8"`); - await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_8fd5215095473061855ceb948cf"`); - await queryRunner.query(`ALTER TABLE "gallery_post" DROP CONSTRAINT "FK_985b836dddd8615e432d7043ddb"`); - await queryRunner.query(`DROP INDEX "IDX_df1b5f4099e99fb0bc5eae53b6"`); - await queryRunner.query(`DROP INDEX "IDX_8fd5215095473061855ceb948c"`); - await queryRunner.query(`DROP TABLE "gallery_like"`); - await queryRunner.query(`DROP INDEX "IDX_05cca34b985d1b8edc1d1e28df"`); - await queryRunner.query(`DROP INDEX "IDX_1a165c68a49d08f11caffbd206"`); - await queryRunner.query(`DROP INDEX "IDX_f2d744d9a14d0dfb8b96cb7fc5"`); - await queryRunner.query(`DROP INDEX "IDX_3ca50563facd913c425e7a89ee"`); - await queryRunner.query(`DROP INDEX "IDX_985b836dddd8615e432d7043dd"`); - await queryRunner.query(`DROP INDEX "IDX_f631d37835adb04792e361807c"`); - await queryRunner.query(`DROP INDEX "IDX_8f1a239bd077c8864a20c62c2c"`); - await queryRunner.query(`DROP TABLE "gallery_post"`); - } -} diff --git a/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js b/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js deleted file mode 100644 index e4d3c0e8e..000000000 --- a/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class objectStorageS3ForcePathStyle1611547387175 { - constructor() { - this.name = 'objectStorageS3ForcePathStyle1611547387175'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageS3ForcePathStyle" boolean NOT NULL DEFAULT true`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageS3ForcePathStyle"`); - } -} diff --git a/packages/backend/migration/1612619156584-announcement-email.js b/packages/backend/migration/1612619156584-announcement-email.js deleted file mode 100644 index bcc718d1c..000000000 --- a/packages/backend/migration/1612619156584-announcement-email.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class announcementEmail1612619156584 { - constructor() { - this.name = 'announcementEmail1612619156584'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`); - } -} diff --git a/packages/backend/migration/1613155914446-emailNotificationTypes.js b/packages/backend/migration/1613155914446-emailNotificationTypes.js deleted file mode 100644 index cd49924d2..000000000 --- a/packages/backend/migration/1613155914446-emailNotificationTypes.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class emailNotificationTypes1613155914446 { - constructor() { - this.name = 'emailNotificationTypes1613155914446'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "emailNotificationTypes" jsonb NOT NULL DEFAULT '["follow","receiveFollowRequest","groupInvited"]'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "emailNotificationTypes"`); - } -} diff --git a/packages/backend/migration/1613181457597-user-lang.js b/packages/backend/migration/1613181457597-user-lang.js deleted file mode 100644 index d2cd06848..000000000 --- a/packages/backend/migration/1613181457597-user-lang.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class userLang1613181457597 { - constructor() { - this.name = 'userLang1613181457597'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "lang" character varying(32)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`); - } -} diff --git a/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js b/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js deleted file mode 100644 index f2e2c5d35..000000000 --- a/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class useBigintForDriveUsage1613503367223 { - constructor() { - this.name = 'useBigintForDriveUsage1613503367223'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "driveUsage" TYPE bigint`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveUsage"`); - await queryRunner.query(`ALTER TABLE "instance" ADD "driveUsage" integer NOT NULL DEFAULT 0`); - } -} diff --git a/packages/backend/migration/1615965918224-chart-v2.js b/packages/backend/migration/1615965918224-chart-v2.js deleted file mode 100644 index 86fa5b0c0..000000000 --- a/packages/backend/migration/1615965918224-chart-v2.js +++ /dev/null @@ -1,216 +0,0 @@ - - -export class chartV21615965918224 { - constructor() { - this.name = 'chartV21615965918224'; - } - async up(queryRunner) { - await queryRunner.query(`DELETE FROM "__chart__active_users" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__drive" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__federation" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__hashtag" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__instance" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__network" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__notes" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_following" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_notes" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test_grouped" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test_unique" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__users" WHERE "span" = 'day'`); - await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); - await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); - await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); - await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); - await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); - await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); - await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); - await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); - await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); - await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); - await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); - await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); - await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); - await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); - await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); - await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); - await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); - await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); - await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); - await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); - await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); - await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); - await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); - await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); - await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); - await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); - await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); - await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); - await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); - await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); - await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); - await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); - await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); - await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); - await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); - await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); - await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); - await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); - await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); - await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); - await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); - await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); - await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); - await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); - await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__active_users_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_count"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_count"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__drive_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__federation_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__hashtag_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_count"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_count"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__instance_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__network_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__notes_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_drive_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_following_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_notes_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_reaction_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_grouped_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_unique_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`); - await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__users_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "unique"`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__users" ADD "span" "__chart__users_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test" ADD "span" "__chart__test_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_unique_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "span" "__chart__test_unique_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "span" "__chart__test_grouped_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "span" "__chart__per_user_reaction_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "span" "__chart__per_user_notes_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "span" "__chart__per_user_following_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "span" "__chart__per_user_drive_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "span" "__chart__notes_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__network_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD "span" "__chart__network_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__instance_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "span" "__chart__instance_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__hashtag_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "span" "__chart__hashtag_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__federation_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "span" "__chart__federation_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "span" "__chart__drive_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__active_users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "span" "__chart__active_users_span_enum" NOT NULL`); - await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); - } -} diff --git a/packages/backend/migration/1615966519402-chart-v2-2.js b/packages/backend/migration/1615966519402-chart-v2-2.js deleted file mode 100644 index c62f1b875..000000000 --- a/packages/backend/migration/1615966519402-chart-v2-2.js +++ /dev/null @@ -1,21 +0,0 @@ - - -export class chartV221615966519402 { - constructor() { - this.name = 'chartV221615966519402'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" character varying array NOT NULL DEFAULT '{}'::varchar[]`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`); - } -} diff --git a/packages/backend/migration/1618637372000-user-last-active-date.js b/packages/backend/migration/1618637372000-user-last-active-date.js deleted file mode 100644 index 6c77ace46..000000000 --- a/packages/backend/migration/1618637372000-user-last-active-date.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class userLastActiveDate1618637372000 { - constructor() { - this.name = 'userLastActiveDate1618637372000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "lastActiveDate" TIMESTAMP WITH TIME ZONE DEFAULT NULL`); - await queryRunner.query(`CREATE INDEX "IDX_seoignmeoprigmkpodgrjmkpormg" ON "user" ("lastActiveDate") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_seoignmeoprigmkpodgrjmkpormg"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "lastActiveDate"`); - } -} diff --git a/packages/backend/migration/1618639857000-user-hide-online-status.js b/packages/backend/migration/1618639857000-user-hide-online-status.js deleted file mode 100644 index e63c8ae11..000000000 --- a/packages/backend/migration/1618639857000-user-hide-online-status.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class userHideOnlineStatus1618639857000 { - constructor() { - this.name = 'userHideOnlineStatus1618639857000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "hideOnlineStatus" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "hideOnlineStatus"`); - } -} diff --git a/packages/backend/migration/1619942102890-password-reset.js b/packages/backend/migration/1619942102890-password-reset.js deleted file mode 100644 index 922d225dc..000000000 --- a/packages/backend/migration/1619942102890-password-reset.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class passwordReset1619942102890 { - constructor() { - this.name = 'passwordReset1619942102890'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "password_reset_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_fcf4b02eae1403a2edaf87fd074" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b575fa9a4cfe638a925949285" ON "password_reset_request" ("token") `); - await queryRunner.query(`CREATE INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac" ON "password_reset_request" ("userId") `); - await queryRunner.query(`ALTER TABLE "password_reset_request" ADD CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "password_reset_request" DROP CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8"`); - await queryRunner.query(`DROP INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac"`); - await queryRunner.query(`DROP INDEX "IDX_0b575fa9a4cfe638a925949285"`); - await queryRunner.query(`DROP TABLE "password_reset_request"`); - } -} diff --git a/packages/backend/migration/1620019354680-ad.js b/packages/backend/migration/1620019354680-ad.js deleted file mode 100644 index c96d2bfb3..000000000 --- a/packages/backend/migration/1620019354680-ad.js +++ /dev/null @@ -1,17 +0,0 @@ - - -export class ad1620019354680 { - constructor() { - this.name = 'ad1620019354680'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "ad" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "place" character varying(32) NOT NULL, "priority" character varying(32) NOT NULL, "url" character varying(1024) NOT NULL, "imageUrl" character varying(1024) NOT NULL, "memo" character varying(8192) NOT NULL, CONSTRAINT "PK_0193d5ef09746e88e9ea92c634d" PRIMARY KEY ("id")); COMMENT ON COLUMN "ad"."createdAt" IS 'The created date of the Ad.'; COMMENT ON COLUMN "ad"."expiresAt" IS 'The expired date of the Ad.'`); - await queryRunner.query(`CREATE INDEX "IDX_1129c2ef687fc272df040bafaa" ON "ad" ("createdAt") `); - await queryRunner.query(`CREATE INDEX "IDX_2da24ce20ad209f1d9dc032457" ON "ad" ("expiresAt") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_2da24ce20ad209f1d9dc032457"`); - await queryRunner.query(`DROP INDEX "IDX_1129c2ef687fc272df040bafaa"`); - await queryRunner.query(`DROP TABLE "ad"`); - } -} diff --git a/packages/backend/migration/1620364649428-ad2.js b/packages/backend/migration/1620364649428-ad2.js deleted file mode 100644 index db1c3e1de..000000000 --- a/packages/backend/migration/1620364649428-ad2.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class ad21620364649428 { - constructor() { - this.name = 'ad21620364649428'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`); - } -} diff --git a/packages/backend/migration/1621479946000-add-note-indexes.js b/packages/backend/migration/1621479946000-add-note-indexes.js deleted file mode 100644 index dcf97fa4d..000000000 --- a/packages/backend/migration/1621479946000-add-note-indexes.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class addNoteIndexes1621479946000 { - constructor() { - this.name = 'addNoteIndexes1621479946000'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_NOTE_MENTIONS" ON "note" USING gin ("mentions")`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_NOTE_VISIBLE_USER_IDS" ON "note" USING gin ("visibleUserIds")`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_NOTE_MENTIONS"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_NOTE_VISIBLE_USER_IDS"`, undefined); - } -} diff --git a/packages/backend/migration/1622679304522-user-profile-description-length.js b/packages/backend/migration/1622679304522-user-profile-description-length.js deleted file mode 100644 index 22f6c1c5d..000000000 --- a/packages/backend/migration/1622679304522-user-profile-description-length.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class userProfileDescriptionLength1622679304522 { - constructor() { - this.name = 'userProfileDescriptionLength1622679304522'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(2048)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(1024)`, undefined); - } -} diff --git a/packages/backend/migration/1622681548499-log-message-length.js b/packages/backend/migration/1622681548499-log-message-length.js deleted file mode 100644 index ac16c0e1b..000000000 --- a/packages/backend/migration/1622681548499-log-message-length.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class logMessageLength1622681548499 { - constructor() { - this.name = 'logMessageLength1622681548499'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(2048)`, undefined); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(1024)`, undefined); - } -} diff --git a/packages/backend/migration/1626509500668-fix-remote-file-proxy.js b/packages/backend/migration/1626509500668-fix-remote-file-proxy.js deleted file mode 100644 index 30c562007..000000000 --- a/packages/backend/migration/1626509500668-fix-remote-file-proxy.js +++ /dev/null @@ -1,22 +0,0 @@ - - -export class fixRemoteFileProxy1626509500668 { - constructor() { - this.name = 'fixRemoteFileProxy1626509500668'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarUrl"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerUrl"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`); - await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`); - await queryRunner.query(`ALTER TABLE "user" ADD "bannerUrl" character varying(512)`); - await queryRunner.query(`ALTER TABLE "user" ADD "avatarUrl" character varying(512)`); - } -} - diff --git a/packages/backend/migration/1629004542760-chart-reindex.js b/packages/backend/migration/1629004542760-chart-reindex.js deleted file mode 100644 index a7d459276..000000000 --- a/packages/backend/migration/1629004542760-chart-reindex.js +++ /dev/null @@ -1,181 +0,0 @@ - - -export class chartReindex1629004542760 { - constructor() { - this.name = 'chartReindex1629004542760'; - } - async up(queryRunner) { - await queryRunner.query(`DELETE FROM "__chart__active_users" a USING "__chart__active_users" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__drive" a USING "__chart__drive" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__federation" a USING "__chart__federation" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__hashtag" a USING "__chart__hashtag" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__instance" a USING "__chart__instance" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__network" a USING "__chart__network" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__notes" a USING "__chart__notes" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__per_user_drive" a USING "__chart__per_user_drive" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__per_user_following" a USING "__chart__per_user_following" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__per_user_notes" a USING "__chart__per_user_notes" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" a USING "__chart__per_user_reaction" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__test_grouped" a USING "__chart__test_grouped" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__test_unique" a USING "__chart__test_unique" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DELETE FROM "__chart__users" a USING "__chart__users" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); - await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`); - await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`); - await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`); - await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`); - await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`); - await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`); - await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`); - await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`); - await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`); - await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`); - await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`); - await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`); - await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`); - await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`); - await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`); - await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`); - await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`); - await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`); - await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`); - await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`); - await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`); - await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`); - await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`); - await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`); - await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`); - await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`); - await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`); - await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`); - await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`); - await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`); - await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`); - await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`); - await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`); - await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`); - await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`); - await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`); - await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`); - await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`); - await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`); - await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`); - await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`); - await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`); - await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`); - await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`); - await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_60c5c6e7e538c09aa274ecd1cf" ON "__chart__active_users" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d" ON "__chart__drive" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_eddfed8fb40305a04c6f941050" ON "__chart__federation" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_53a3604b939e2b479eb2cfaac8" ON "__chart__hashtag" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8111b817b9818c04d7eb8475b1" ON "__chart__instance" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2082327b2699ce924fa654afc5" ON "__chart__network" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e60c358aaced5aab8900a4af31" ON "__chart__notes" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a9a806d466b314f253a1a611c4" ON "__chart__per_user_drive" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dabbb38a51ab86ee3cab291326" ON "__chart__per_user_following" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_583a157ed0cf0ed1b5ec2a833f" ON "__chart__per_user_notes" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3b7697a96f522d0478972e6d6f" ON "__chart__per_user_reaction" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_da522b4008a9f5d7743b87ad55" ON "__chart__test_grouped" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_16effb2e888f6763673b579f80" ON "__chart__test_unique" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dab383a36f3c9db4a0c9b02cf3" ON "__chart__test" ("date") WHERE "group" IS NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_66feba81e1795d176d06c0b1e6" ON "__chart__users" ("date") WHERE "group" IS NULL`); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_66feba81e1795d176d06c0b1e6"`); - await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); - await queryRunner.query(`DROP INDEX "IDX_dab383a36f3c9db4a0c9b02cf3"`); - await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`); - await queryRunner.query(`DROP INDEX "IDX_16effb2e888f6763673b579f80"`); - await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`); - await queryRunner.query(`DROP INDEX "IDX_da522b4008a9f5d7743b87ad55"`); - await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`); - await queryRunner.query(`DROP INDEX "IDX_3b7697a96f522d0478972e6d6f"`); - await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`); - await queryRunner.query(`DROP INDEX "IDX_583a157ed0cf0ed1b5ec2a833f"`); - await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`); - await queryRunner.query(`DROP INDEX "IDX_dabbb38a51ab86ee3cab291326"`); - await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`); - await queryRunner.query(`DROP INDEX "IDX_a9a806d466b314f253a1a611c4"`); - await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`); - await queryRunner.query(`DROP INDEX "IDX_e60c358aaced5aab8900a4af31"`); - await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`); - await queryRunner.query(`DROP INDEX "IDX_2082327b2699ce924fa654afc5"`); - await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`); - await queryRunner.query(`DROP INDEX "IDX_8111b817b9818c04d7eb8475b1"`); - await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`); - await queryRunner.query(`DROP INDEX "IDX_53a3604b939e2b479eb2cfaac8"`); - await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`); - await queryRunner.query(`DROP INDEX "IDX_eddfed8fb40305a04c6f941050"`); - await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`); - await queryRunner.query(`DROP INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d"`); - await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`); - await queryRunner.query(`DROP INDEX "IDX_60c5c6e7e538c09aa274ecd1cf"`); - await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`); - await queryRunner.query(`DROP INDEX "IDX_a9021cc2e1feb5f72d3db6e9f5"`); - await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); - await queryRunner.query(`DROP INDEX "IDX_c8cc87bd0f2f4487d17c651fbf"`); - await queryRunner.query(`DROP INDEX "IDX_754499f9b2642336433769518d"`); - await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`); - await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`); - await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `); - await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); - await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); - await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); - } -} diff --git a/packages/backend/migration/1629024377804-deepl-integration.js b/packages/backend/migration/1629024377804-deepl-integration.js deleted file mode 100644 index 19c49ffcd..000000000 --- a/packages/backend/migration/1629024377804-deepl-integration.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class deeplIntegration1629024377804 { - constructor() { - this.name = 'deeplIntegration1629024377804'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`); - } -} diff --git a/packages/backend/migration/1629288472000-fix-channel-userId.js b/packages/backend/migration/1629288472000-fix-channel-userId.js deleted file mode 100644 index 02a1199b0..000000000 --- a/packages/backend/migration/1629288472000-fix-channel-userId.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class fixChannelUserId1629288472000 { - constructor() { - this.name = 'fixChannelUserId1629288472000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`); - } -} diff --git a/packages/backend/migration/1629512953000-user-is-deleted.js b/packages/backend/migration/1629512953000-user-is-deleted.js deleted file mode 100644 index a7848d569..000000000 --- a/packages/backend/migration/1629512953000-user-is-deleted.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class isUserDeleted1629512953000 { - constructor() { - this.name = 'isUserDeleted1629512953000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`); - } -} diff --git a/packages/backend/migration/1629778475000-deepl-integration2.js b/packages/backend/migration/1629778475000-deepl-integration2.js deleted file mode 100644 index 699f06c76..000000000 --- a/packages/backend/migration/1629778475000-deepl-integration2.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class deeplIntegration21629778475000 { - constructor() { - this.name = 'deeplIntegration21629778475000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`); - } -} diff --git a/packages/backend/migration/1629833361000-AddShowTLReplies.js b/packages/backend/migration/1629833361000-AddShowTLReplies.js deleted file mode 100644 index 5d4c938a7..000000000 --- a/packages/backend/migration/1629833361000-AddShowTLReplies.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class addShowTLReplies1629833361000 { - constructor() { - this.name = 'addShowTLReplies1629833361000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "showTimelineReplies" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "user"."showTimelineReplies" IS 'Whether to show users replying to other users in the timeline.'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "showTimelineReplies"`); - } -} diff --git a/packages/backend/migration/1629968054000_userInstanceBlocks.js b/packages/backend/migration/1629968054000_userInstanceBlocks.js deleted file mode 100644 index 1f202d9f6..000000000 --- a/packages/backend/migration/1629968054000_userInstanceBlocks.js +++ /dev/null @@ -1,14 +0,0 @@ - - -export class userInstanceBlocks1629968054000 { - constructor() { - this.name = 'userInstanceBlocks1629968054000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedInstances" jsonb NOT NULL DEFAULT '[]'`); - await queryRunner.query(`COMMENT ON COLUMN "user_profile"."mutedInstances" IS 'List of instances muted by the user.'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedInstances"`); - } -} diff --git a/packages/backend/migration/1633068642000-email-required-for-signup.js b/packages/backend/migration/1633068642000-email-required-for-signup.js deleted file mode 100644 index d592f3ca2..000000000 --- a/packages/backend/migration/1633068642000-email-required-for-signup.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class emailRequiredForSignup1633068642000 { - constructor() { - this.name = 'emailRequiredForSignup1633068642000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`); - } -} diff --git a/packages/backend/migration/1633071909016-user-pending.js b/packages/backend/migration/1633071909016-user-pending.js deleted file mode 100644 index 17cf5c11b..000000000 --- a/packages/backend/migration/1633071909016-user-pending.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class userPending1633071909016 { - constructor() { - this.name = 'userPending1633071909016'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "user_pending" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(128) NOT NULL, "username" character varying(128) NOT NULL, "email" character varying(128) NOT NULL, "password" character varying(128) NOT NULL, CONSTRAINT "PK_d4c84e013c98ec02d19b8fbbafa" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4e5c4c99175638ec0761714ab0" ON "user_pending" ("code") `); - } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_4e5c4c99175638ec0761714ab0"`); - await queryRunner.query(`DROP TABLE "user_pending"`); - } -} diff --git a/packages/backend/migration/1634486652000-user-public-reactions.js b/packages/backend/migration/1634486652000-user-public-reactions.js deleted file mode 100644 index e74112249..000000000 --- a/packages/backend/migration/1634486652000-user-public-reactions.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class userPublicReactions1634486652000 { - constructor() { - this.name = 'userPublicReactions1634486652000'; - } - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`); - } -} diff --git a/packages/backend/migration/1634902659689-delete-log.js b/packages/backend/migration/1634902659689-delete-log.js deleted file mode 100644 index 555a0020c..000000000 --- a/packages/backend/migration/1634902659689-delete-log.js +++ /dev/null @@ -1,12 +0,0 @@ - - -export class deleteLog1634902659689 { - constructor() { - this.name = 'deleteLog1634902659689'; - } - async up(queryRunner) { - await queryRunner.query(`DROP TABLE "log"`); - } - async down(queryRunner) { - } -} diff --git a/packages/backend/migration/1635500777168-note-thread-mute.js b/packages/backend/migration/1635500777168-note-thread-mute.js deleted file mode 100644 index a790cace3..000000000 --- a/packages/backend/migration/1635500777168-note-thread-mute.js +++ /dev/null @@ -1,25 +0,0 @@ - - -export class noteThreadMute1635500777168 { - constructor() { - this.name = 'noteThreadMute1635500777168'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "note_thread_muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "threadId" character varying(256) NOT NULL, CONSTRAINT "PK_ec5936d94d1a0369646d12a3a47" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_29c11c7deb06615076f8c95b80" ON "note_thread_muting" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_c426394644267453e76f036926" ON "note_thread_muting" ("threadId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ae7aab18a2641d3e5f25e0c4ea" ON "note_thread_muting" ("userId", "threadId") `); - await queryRunner.query(`ALTER TABLE "note" ADD "threadId" character varying(256)`); - await queryRunner.query(`CREATE INDEX "IDX_d4ebdef929896d6dc4a3c5bb48" ON "note" ("threadId") `); - await queryRunner.query(`ALTER TABLE "note_thread_muting" ADD CONSTRAINT "FK_29c11c7deb06615076f8c95b80a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note_thread_muting" DROP CONSTRAINT "FK_29c11c7deb06615076f8c95b80a"`); - await queryRunner.query(`DROP INDEX "public"."IDX_d4ebdef929896d6dc4a3c5bb48"`); - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "threadId"`); - await queryRunner.query(`DROP INDEX "public"."IDX_ae7aab18a2641d3e5f25e0c4ea"`); - await queryRunner.query(`DROP INDEX "public"."IDX_c426394644267453e76f036926"`); - await queryRunner.query(`DROP INDEX "public"."IDX_29c11c7deb06615076f8c95b80"`); - await queryRunner.query(`DROP TABLE "note_thread_muting"`); - } -} diff --git a/packages/backend/migration/1636197624383-ff-visibility.js b/packages/backend/migration/1636197624383-ff-visibility.js deleted file mode 100644 index 89028f3c2..000000000 --- a/packages/backend/migration/1636197624383-ff-visibility.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class ffVisibility1636197624383 { - constructor() { - this.name = 'ffVisibility1636197624383'; - } - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "public"."user_profile_ffvisibility_enum" AS ENUM('public', 'followers', 'private')`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "ffVisibility" "public"."user_profile_ffvisibility_enum" NOT NULL DEFAULT 'public'`); - } - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "ffVisibility"`); - await queryRunner.query(`DROP TYPE "public"."user_profile_ffvisibility_enum"`); - } -} diff --git a/packages/backend/migration/1636697408073-remove-via-mobile.js b/packages/backend/migration/1636697408073-remove-via-mobile.js deleted file mode 100644 index 36e96fd21..000000000 --- a/packages/backend/migration/1636697408073-remove-via-mobile.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class removeViaMobile1636697408073 { - name = 'removeViaMobile1636697408073' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "viaMobile"`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "note" ADD "viaMobile" boolean NOT NULL DEFAULT false`); - } -} diff --git a/packages/backend/migration/1637320813000-forwarded-report.js b/packages/backend/migration/1637320813000-forwarded-report.js deleted file mode 100644 index 1e39bd5c3..000000000 --- a/packages/backend/migration/1637320813000-forwarded-report.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class forwardedReport1637320813000 { - name = 'forwardedReport1637320813000'; - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "forwarded" boolean NOT NULL DEFAULT false`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "forwarded"`); - } -}; diff --git a/packages/backend/migration/1639325650583-chart-v3.js b/packages/backend/migration/1639325650583-chart-v3.js deleted file mode 100644 index e2a4e920c..000000000 --- a/packages/backend/migration/1639325650583-chart-v3.js +++ /dev/null @@ -1,189 +0,0 @@ - - -export class chartV31639325650583 { - name = 'chartV31639325650583' - - async up(queryRunner) { - await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "group" IS NULL`); - - await queryRunner.query(`DROP INDEX "public"."IDX_dd907becf76104e4b656659e6b"`); - await queryRunner.query(`DROP INDEX "public"."IDX_eddfed8fb40305a04c6f941050"`); - await queryRunner.query(`DROP INDEX "public"."IDX_f09d543e3acb16c5976bdb31fa"`); - await queryRunner.query(`DROP INDEX "public"."IDX_e60c358aaced5aab8900a4af31"`); - await queryRunner.query(`DROP INDEX "public"."IDX_337e9599f278bd7537fe30876f"`); - await queryRunner.query(`DROP INDEX "public"."IDX_66feba81e1795d176d06c0b1e6"`); - await queryRunner.query(`DROP INDEX "public"."IDX_0a905b992fecd2b5c3fb98759e"`); - await queryRunner.query(`DROP INDEX "public"."IDX_2082327b2699ce924fa654afc5"`); - await queryRunner.query(`DROP INDEX "public"."IDX_9a3ed15a30ab7e3a37702e6e08"`); - await queryRunner.query(`DROP INDEX "public"."IDX_60c5c6e7e538c09aa274ecd1cf"`); - await queryRunner.query(`DROP INDEX "public"."IDX_8111b817b9818c04d7eb8475b1"`); - await queryRunner.query(`DROP INDEX "public"."IDX_583a157ed0cf0ed1b5ec2a833f"`); - await queryRunner.query(`DROP INDEX "public"."IDX_3313d7288855ec105b5bbf6c21"`); - await queryRunner.query(`DROP INDEX "public"."IDX_ceab80a6729f8e2e6f5b8a1a3d"`); - await queryRunner.query(`DROP INDEX "public"."IDX_3b7697a96f522d0478972e6d6f"`); - await queryRunner.query(`DROP INDEX "public"."IDX_53a3604b939e2b479eb2cfaac8"`); - await queryRunner.query(`DROP INDEX "public"."IDX_dabbb38a51ab86ee3cab291326"`); - await queryRunner.query(`DROP INDEX "public"."IDX_a9a806d466b314f253a1a611c4"`); - await queryRunner.query(`CREATE TABLE "__chart_day__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "UQ_617a8fe225a6e701d89e02d2c74" UNIQUE ("date"), CONSTRAINT "PK_7ca721c769f31698e0e1331e8e6" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_617a8fe225a6e701d89e02d2c7" ON "__chart_day__federation" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "UQ_1a527b423ad0858a1af5a056d43" UNIQUE ("date"), CONSTRAINT "PK_1fa4139e1f338272b758d05e090" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_1a527b423ad0858a1af5a056d4" ON "__chart_day__notes" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "UQ_cad6e07c20037f31cdba8a350c3" UNIQUE ("date"), CONSTRAINT "PK_d7f7185abb9851f70c4726c54bd" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_cad6e07c20037f31cdba8a350c" ON "__chart_day__users" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "UQ_8bfa548c2b31f9e07db113773ee" UNIQUE ("date"), CONSTRAINT "PK_cac499d6f471042dfed1e7e0132" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8bfa548c2b31f9e07db113773e" ON "__chart_day__network" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_users" character varying array NOT NULL, "___remote_users" character varying array NOT NULL, CONSTRAINT "UQ_d5954f3df5e5e3bdfc3c03f3906" UNIQUE ("date"), CONSTRAINT "PK_b1790489b14f005ae8f404f5795" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d5954f3df5e5e3bdfc3c03f390" ON "__chart_day__active_users" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "UQ_fea7c0278325a1a2492f2d6acbf" UNIQUE ("date", "group"), CONSTRAINT "PK_479a8ff9d959274981087043023" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_fea7c0278325a1a2492f2d6acb" ON "__chart_day__instance" ("date", "group") `); - await queryRunner.query(`CREATE TABLE "__chart_day__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "UQ_c5545d4b31cdc684034e33b81c3" UNIQUE ("date", "group"), CONSTRAINT "PK_58bab6b6d3ad9310cbc7460fd28" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_c5545d4b31cdc684034e33b81c" ON "__chart_day__per_user_notes" ("date", "group") `); - await queryRunner.query(`CREATE TABLE "__chart_day__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "UQ_0b60ebb3aa0065f10b0616c1171" UNIQUE ("date"), CONSTRAINT "PK_e7ec0de057c77c40fc8d8b62151" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b60ebb3aa0065f10b0616c117" ON "__chart_day__drive" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "UQ_d54b653660d808b118e36c184c0" UNIQUE ("date", "group"), CONSTRAINT "PK_8af24e2d51ff781a354fe595eda" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d54b653660d808b118e36c184c" ON "__chart_day__per_user_reaction" ("date", "group") `); - await queryRunner.query(`CREATE TABLE "__chart_day__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_users" character varying array NOT NULL, "___remote_users" character varying array NOT NULL, CONSTRAINT "UQ_8f589cf056ff51f09d6096f6450" UNIQUE ("date", "group"), CONSTRAINT "PK_13d5a3b089344e5557f8e0980b4" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8f589cf056ff51f09d6096f645" ON "__chart_day__hashtag" ("date", "group") `); - await queryRunner.query(`CREATE TABLE "__chart_day__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "UQ_e4849a3231f38281280ea4c0eee" UNIQUE ("date", "group"), CONSTRAINT "PK_68ce6b67da57166da66fc8fb27e" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e4849a3231f38281280ea4c0ee" ON "__chart_day__per_user_following" ("date", "group") `); - await queryRunner.query(`CREATE TABLE "__chart_day__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "UQ_62aa5047b5aec92524f24c701d7" UNIQUE ("date", "group"), CONSTRAINT "PK_1ae135254c137011645da7f4045" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_62aa5047b5aec92524f24c701d" ON "__chart_day__per_user_drive" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "group"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD CONSTRAINT "UQ_36cb699c49580d4e6c2e6159f97" UNIQUE ("date")`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD CONSTRAINT "UQ_42eb716a37d381cdf566192b2be" UNIQUE ("date")`); - await queryRunner.query(`ALTER TABLE "__chart__users" ADD CONSTRAINT "UQ_845254b3eaf708ae8a6cac30265" UNIQUE ("date")`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD CONSTRAINT "UQ_a1efd3e0048a5f2793a47360dc6" UNIQUE ("date")`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD CONSTRAINT "UQ_0ad37b7ef50f4ddc84363d7ccca" UNIQUE ("date")`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" DROP DEFAULT`); - await queryRunner.query(`DROP INDEX "public"."IDX_39ee857ab2f23493037c6b6631"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`DROP INDEX "public"."IDX_5048e9daccbbbc6d567bb142d3"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD CONSTRAINT "UQ_13565815f618a1ff53886c5b28a" UNIQUE ("date")`); - await queryRunner.query(`DROP INDEX "public"."IDX_229a41ad465f9205f1f5703291"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`DROP INDEX "public"."IDX_25a97c02003338124b2b75fdbc"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" DROP DEFAULT`); - await queryRunner.query(`DROP INDEX "public"."IDX_b77d4dd9562c3a899d9a286fcd"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`DROP INDEX "public"."IDX_30bf67687f483ace115c5ca642"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "group" SET NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD CONSTRAINT "UQ_39ee857ab2f23493037c6b66311" UNIQUE ("date", "group")`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD CONSTRAINT "UQ_5048e9daccbbbc6d567bb142d34" UNIQUE ("date", "group")`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD CONSTRAINT "UQ_229a41ad465f9205f1f57032910" UNIQUE ("date", "group")`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD CONSTRAINT "UQ_25a97c02003338124b2b75fdbc8" UNIQUE ("date", "group")`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD CONSTRAINT "UQ_b77d4dd9562c3a899d9a286fcd7" UNIQUE ("date", "group")`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD CONSTRAINT "UQ_30bf67687f483ace115c5ca6429" UNIQUE ("date", "group")`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP CONSTRAINT "UQ_30bf67687f483ace115c5ca6429"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP CONSTRAINT "UQ_b77d4dd9562c3a899d9a286fcd7"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP CONSTRAINT "UQ_25a97c02003338124b2b75fdbc8"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP CONSTRAINT "UQ_229a41ad465f9205f1f57032910"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP CONSTRAINT "UQ_5048e9daccbbbc6d567bb142d34"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP CONSTRAINT "UQ_39ee857ab2f23493037c6b66311"`); - await queryRunner.query(`DROP INDEX "public"."IDX_30bf67687f483ace115c5ca642"`); - await queryRunner.query(`DROP INDEX "public"."IDX_b77d4dd9562c3a899d9a286fcd"`); - await queryRunner.query(`DROP INDEX "public"."IDX_25a97c02003338124b2b75fdbc"`); - await queryRunner.query(`DROP INDEX "public"."IDX_229a41ad465f9205f1f5703291"`); - await queryRunner.query(`DROP INDEX "public"."IDX_13565815f618a1ff53886c5b28"`); - await queryRunner.query(`DROP INDEX "public"."IDX_5048e9daccbbbc6d567bb142d3"`); - await queryRunner.query(`DROP INDEX "public"."IDX_39ee857ab2f23493037c6b6631"`); - await queryRunner.query(`DROP INDEX "public"."IDX_0ad37b7ef50f4ddc84363d7ccc"`); - await queryRunner.query(`DROP INDEX "public"."IDX_a1efd3e0048a5f2793a47360dc"`); - await queryRunner.query(`DROP INDEX "public"."IDX_845254b3eaf708ae8a6cac3026"`); - await queryRunner.query(`DROP INDEX "public"."IDX_42eb716a37d381cdf566192b2b"`); - await queryRunner.query(`DROP INDEX "public"."IDX_36cb699c49580d4e6c2e6159f9"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" SET DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" SET DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP CONSTRAINT "UQ_13565815f618a1ff53886c5b28a"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "group" DROP NOT NULL`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" SET DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" SET DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP CONSTRAINT "UQ_0ad37b7ef50f4ddc84363d7ccca"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP CONSTRAINT "UQ_a1efd3e0048a5f2793a47360dc6"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP CONSTRAINT "UQ_845254b3eaf708ae8a6cac30265"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP CONSTRAINT "UQ_42eb716a37d381cdf566192b2be"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP CONSTRAINT "UQ_36cb699c49580d4e6c2e6159f97"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "group" character varying(128)`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "group" character varying(128)`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD "group" character varying(128)`); - await queryRunner.query(`ALTER TABLE "__chart__users" ADD "group" character varying(128)`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "group" character varying(128)`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "group" character varying(128)`); - await queryRunner.query(`DROP INDEX "public"."IDX_62aa5047b5aec92524f24c701d"`); - await queryRunner.query(`DROP TABLE "__chart_day__per_user_drive"`); - await queryRunner.query(`DROP INDEX "public"."IDX_e4849a3231f38281280ea4c0ee"`); - await queryRunner.query(`DROP TABLE "__chart_day__per_user_following"`); - await queryRunner.query(`DROP INDEX "public"."IDX_8f589cf056ff51f09d6096f645"`); - await queryRunner.query(`DROP TABLE "__chart_day__hashtag"`); - await queryRunner.query(`DROP INDEX "public"."IDX_d54b653660d808b118e36c184c"`); - await queryRunner.query(`DROP TABLE "__chart_day__per_user_reaction"`); - await queryRunner.query(`DROP INDEX "public"."IDX_0b60ebb3aa0065f10b0616c117"`); - await queryRunner.query(`DROP TABLE "__chart_day__drive"`); - await queryRunner.query(`DROP INDEX "public"."IDX_c5545d4b31cdc684034e33b81c"`); - await queryRunner.query(`DROP TABLE "__chart_day__per_user_notes"`); - await queryRunner.query(`DROP INDEX "public"."IDX_fea7c0278325a1a2492f2d6acb"`); - await queryRunner.query(`DROP TABLE "__chart_day__instance"`); - await queryRunner.query(`DROP INDEX "public"."IDX_d5954f3df5e5e3bdfc3c03f390"`); - await queryRunner.query(`DROP TABLE "__chart_day__active_users"`); - await queryRunner.query(`DROP INDEX "public"."IDX_8bfa548c2b31f9e07db113773e"`); - await queryRunner.query(`DROP TABLE "__chart_day__network"`); - await queryRunner.query(`DROP INDEX "public"."IDX_cad6e07c20037f31cdba8a350c"`); - await queryRunner.query(`DROP TABLE "__chart_day__users"`); - await queryRunner.query(`DROP INDEX "public"."IDX_1a527b423ad0858a1af5a056d4"`); - await queryRunner.query(`DROP TABLE "__chart_day__notes"`); - await queryRunner.query(`DROP INDEX "public"."IDX_617a8fe225a6e701d89e02d2c7"`); - await queryRunner.query(`DROP TABLE "__chart_day__federation"`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a9a806d466b314f253a1a611c4" ON "__chart__per_user_drive" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dabbb38a51ab86ee3cab291326" ON "__chart__per_user_following" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_53a3604b939e2b479eb2cfaac8" ON "__chart__hashtag" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3b7697a96f522d0478972e6d6f" ON "__chart__per_user_reaction" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d" ON "__chart__drive" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_583a157ed0cf0ed1b5ec2a833f" ON "__chart__per_user_notes" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8111b817b9818c04d7eb8475b1" ON "__chart__instance" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_60c5c6e7e538c09aa274ecd1cf" ON "__chart__active_users" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2082327b2699ce924fa654afc5" ON "__chart__network" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_66feba81e1795d176d06c0b1e6" ON "__chart__users" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e60c358aaced5aab8900a4af31" ON "__chart__notes" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_eddfed8fb40305a04c6f941050" ON "__chart__federation" ("date") WHERE ("group" IS NULL)`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); - } -} diff --git a/packages/backend/migration/1642611822809-emoji-url.js b/packages/backend/migration/1642611822809-emoji-url.js deleted file mode 100644 index d38f8cc08..000000000 --- a/packages/backend/migration/1642611822809-emoji-url.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class emojiUrl1642611822809 { - name = 'emojiUrl1642611822809' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "emoji" RENAME COLUMN "url" TO "originalUrl"`); - await queryRunner.query(`ALTER TABLE "emoji" ADD "publicUrl" character varying(512) NOT NULL DEFAULT ''`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "publicUrl"`); - await queryRunner.query(`ALTER TABLE "emoji" RENAME COLUMN "originalUrl" TO "url"`); - } -} diff --git a/packages/backend/migration/1642613870898-drive-file-webpublic-type.js b/packages/backend/migration/1642613870898-drive-file-webpublic-type.js deleted file mode 100644 index 15434f7d0..000000000 --- a/packages/backend/migration/1642613870898-drive-file-webpublic-type.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class driveFileWebpublicType1642613870898 { - name = 'driveFileWebpublicType1642613870898' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" ADD "webpublicType" character varying(128)`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "webpublicType"`); - } -} diff --git a/packages/backend/migration/1643963705770-chart-v4.js b/packages/backend/migration/1643963705770-chart-v4.js deleted file mode 100644 index 8b320c2b4..000000000 --- a/packages/backend/migration/1643963705770-chart-v4.js +++ /dev/null @@ -1,63 +0,0 @@ - - -export class chartV41643963705770 { - name = 'chartV41643963705770' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "___drive_totalUsage"`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" DROP COLUMN "___drive_totalUsage"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___local_totalCount"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___local_totalSize"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___remote_totalCount"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___remote_totalSize"`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___local_totalCount"`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___local_totalSize"`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___remote_totalCount"`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___remote_totalSize"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___local_users" bigint NOT NULL DEFAULT 0`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___remote_users" bigint NOT NULL DEFAULT 0`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___remote_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___local_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" character varying array NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___remote_totalSize" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___remote_totalCount" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___local_totalSize" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___local_totalCount" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___remote_totalSize" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___remote_totalCount" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___local_totalSize" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___local_totalCount" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ADD "___drive_totalUsage" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "___drive_totalUsage" bigint NOT NULL`); - } -} diff --git a/packages/backend/migration/1643966656277-chart-v5.js b/packages/backend/migration/1643966656277-chart-v5.js deleted file mode 100644 index df84002f7..000000000 --- a/packages/backend/migration/1643966656277-chart-v5.js +++ /dev/null @@ -1,27 +0,0 @@ - - -export class chartV51643966656277 { - name = 'chartV51643966656277' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "unique_temp___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique_temp___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___local_users"`); - } -} diff --git a/packages/backend/migration/1643967331284-chart-v6.js b/packages/backend/migration/1643967331284-chart-v6.js deleted file mode 100644 index 119198f4a..000000000 --- a/packages/backend/migration/1643967331284-chart-v6.js +++ /dev/null @@ -1,343 +0,0 @@ - - -export class chartV61643967331284 { - name = 'chartV61643967331284' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" SET DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" SET DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" DROP DEFAULT`); - } -} diff --git a/packages/backend/migration/1644010796173-convert-hard-mutes.js b/packages/backend/migration/1644010796173-convert-hard-mutes.js deleted file mode 100644 index 207a759b8..000000000 --- a/packages/backend/migration/1644010796173-convert-hard-mutes.js +++ /dev/null @@ -1,65 +0,0 @@ -import RE2 from 're2'; - - -export class convertHardMutes1644010796173 { - name = 'convertHardMutes1644010796173' - - async up(queryRunner) { - let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile" WHERE "userHost" IS NULL`); - for(let i = 0; i < entries.length; i++) { - let words = entries[i].mutedWords - .map(line => { - if (typeof line === 'string') return []; - const regexp = line.join(" ").match(/^\/(.+)\/(.*)$/); - if (regexp) { - // convert regexp's - try { - new RE2(regexp[1], regexp[2]); - return `/${regexp[1]}/${regexp[2]}`; - } catch (err) { - // invalid regex, ignore it - return []; - } - } else { - // remove empty segments - return line.filter(x => x !== ''); - } - }) - // remove empty lines - .filter(x => !(Array.isArray(x) && x.length === 0)); - - await queryRunner.connection.createQueryBuilder() - .update('user_profile') - .set({ - mutedWords: words - }) - .where('userId = :id', { id: entries[i].userId }) - .execute(); - } - } - - async down(queryRunner) { - let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile"`); - for(let i = 0; i < entries.length; i++) { - let words = entries[i].mutedWords - .map(line => { - if (Array.isArray(line)) { - return line; - } else { - // do not split regex at spaces again - return [line]; - } - }) - // remove empty lines - .filter(x => !(Array.isArray(x) && x.length === 0)); - - await queryRunner.connection.createQueryBuilder() - .update('user_profile') - .set({ - mutedWords: words - }) - .where('userId = :id', { id: entries[i].userId }) - .execute(); - } - } -} diff --git a/packages/backend/migration/1644058404077-chart-v7.js b/packages/backend/migration/1644058404077-chart-v7.js deleted file mode 100644 index f05ad003d..000000000 --- a/packages/backend/migration/1644058404077-chart-v7.js +++ /dev/null @@ -1,501 +0,0 @@ - - -export class chartV71644058404077 { - name = 'chartV71644058404077' - - async up(queryRunner) { - await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_total"=2147483647 WHERE "___instance_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_inc"=32767 WHERE "___instance_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_dec"=32767 WHERE "___instance_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_total"=2147483647 WHERE "___instance_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_inc"=32767 WHERE "___instance_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_dec"=32767 WHERE "___instance_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_inc"=2147483647 WHERE "___local_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_dec"=2147483647 WHERE "___local_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_normal"=2147483647 WHERE "___local_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_reply"=2147483647 WHERE "___local_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_renote"=2147483647 WHERE "___local_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_inc"=2147483647 WHERE "___remote_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_dec"=2147483647 WHERE "___remote_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_normal"=2147483647 WHERE "___remote_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_reply"=2147483647 WHERE "___remote_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_renote"=2147483647 WHERE "___remote_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_inc"=2147483647 WHERE "___local_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_dec"=2147483647 WHERE "___local_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_normal"=2147483647 WHERE "___local_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_reply"=2147483647 WHERE "___local_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_renote"=2147483647 WHERE "___local_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_inc"=2147483647 WHERE "___remote_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_dec"=2147483647 WHERE "___remote_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_normal"=2147483647 WHERE "___remote_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_reply"=2147483647 WHERE "___remote_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_renote"=2147483647 WHERE "___remote_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__users" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__users" SET "___local_inc"=32767 WHERE "___local_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__users" SET "___local_dec"=32767 WHERE "___local_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__users" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__users" SET "___remote_inc"=32767 WHERE "___remote_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__users" SET "___remote_dec"=32767 WHERE "___remote_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_inc"=32767 WHERE "___local_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_dec"=32767 WHERE "___local_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_inc"=32767 WHERE "___remote_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_dec"=32767 WHERE "___remote_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__network" SET "___incomingRequests"=2147483647 WHERE "___incomingRequests" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__network" SET "___outgoingRequests"=2147483647 WHERE "___outgoingRequests" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__network" SET "___totalTime"=2147483647 WHERE "___totalTime" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__network" SET "___incomingBytes"=2147483647 WHERE "___incomingBytes" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__network" SET "___outgoingBytes"=2147483647 WHERE "___outgoingBytes" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__network" SET "___incomingRequests"=2147483647 WHERE "___incomingRequests" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__network" SET "___outgoingRequests"=2147483647 WHERE "___outgoingRequests" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__network" SET "___totalTime"=2147483647 WHERE "___totalTime" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__network" SET "___incomingBytes"=2147483647 WHERE "___incomingBytes" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__network" SET "___outgoingBytes"=2147483647 WHERE "___outgoingBytes" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_failed"=32767 WHERE "___requests_failed" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_succeeded"=32767 WHERE "___requests_succeeded" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_received"=32767 WHERE "___requests_received" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_total"=2147483647 WHERE "___notes_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_inc"=2147483647 WHERE "___notes_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_dec"=2147483647 WHERE "___notes_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_normal"=2147483647 WHERE "___notes_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_reply"=2147483647 WHERE "___notes_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_renote"=2147483647 WHERE "___notes_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___users_total"=2147483647 WHERE "___users_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___users_inc"=32767 WHERE "___users_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___users_dec"=32767 WHERE "___users_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___following_total"=2147483647 WHERE "___following_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___following_inc"=32767 WHERE "___following_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___following_dec"=32767 WHERE "___following_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_total"=2147483647 WHERE "___followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_inc"=32767 WHERE "___followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_dec"=32767 WHERE "___followers_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_totalFiles"=2147483647 WHERE "___drive_totalFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_incFiles"=2147483647 WHERE "___drive_incFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_decFiles"=2147483647 WHERE "___drive_decFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_incUsage"=2147483647 WHERE "___drive_incUsage" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_decUsage"=2147483647 WHERE "___drive_decUsage" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_failed"=32767 WHERE "___requests_failed" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_succeeded"=32767 WHERE "___requests_succeeded" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_received"=32767 WHERE "___requests_received" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_total"=2147483647 WHERE "___notes_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_inc"=2147483647 WHERE "___notes_inc" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_dec"=2147483647 WHERE "___notes_dec" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_normal"=2147483647 WHERE "___notes_diffs_normal" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_reply"=2147483647 WHERE "___notes_diffs_reply" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_renote"=2147483647 WHERE "___notes_diffs_renote" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_total"=2147483647 WHERE "___users_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_inc"=32767 WHERE "___users_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_dec"=32767 WHERE "___users_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_total"=2147483647 WHERE "___following_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_inc"=32767 WHERE "___following_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_dec"=32767 WHERE "___following_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_total"=2147483647 WHERE "___followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_inc"=32767 WHERE "___followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_dec"=32767 WHERE "___followers_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_totalFiles"=2147483647 WHERE "___drive_totalFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_incFiles"=2147483647 WHERE "___drive_incFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_decFiles"=2147483647 WHERE "___drive_decFiles" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_incUsage"=2147483647 WHERE "___drive_incUsage" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_decUsage"=2147483647 WHERE "___drive_decUsage" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___total"=2147483647 WHERE "___total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___inc"=32767 WHERE "___inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___dec"=32767 WHERE "___dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_normal"=32767 WHERE "___diffs_normal" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_reply"=32767 WHERE "___diffs_reply" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_renote"=32767 WHERE "___diffs_renote" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___total"=2147483647 WHERE "___total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___inc"=32767 WHERE "___inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___dec"=32767 WHERE "___dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_normal"=32767 WHERE "___diffs_normal" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_reply"=32767 WHERE "___diffs_reply" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_renote"=32767 WHERE "___diffs_renote" > 32767`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___local_incCount"=2147483647 WHERE "___local_incCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___local_incSize"=2147483647 WHERE "___local_incSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___local_decCount"=2147483647 WHERE "___local_decCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___local_decSize"=2147483647 WHERE "___local_decSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_incCount"=2147483647 WHERE "___remote_incCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_incSize"=2147483647 WHERE "___remote_incSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_decCount"=2147483647 WHERE "___remote_decCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_decSize"=2147483647 WHERE "___remote_decSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_incCount"=2147483647 WHERE "___local_incCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_incSize"=2147483647 WHERE "___local_incSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_decCount"=2147483647 WHERE "___local_decCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_decSize"=2147483647 WHERE "___local_decSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_incCount"=2147483647 WHERE "___remote_incCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_incSize"=2147483647 WHERE "___remote_incSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_decCount"=2147483647 WHERE "___remote_decCount" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_decSize"=2147483647 WHERE "___remote_decSize" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_reaction" SET "___local_count"=32767 WHERE "___local_count" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_reaction" SET "___remote_count"=32767 WHERE "___remote_count" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_reaction" SET "___local_count"=32767 WHERE "___local_count" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_reaction" SET "___remote_count"=32767 WHERE "___remote_count" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_total"=2147483647 WHERE "___local_followings_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_inc"=32767 WHERE "___local_followings_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_dec"=32767 WHERE "___local_followings_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_total"=2147483647 WHERE "___local_followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_inc"=32767 WHERE "___local_followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_dec"=32767 WHERE "___local_followers_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_total"=2147483647 WHERE "___remote_followings_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_inc"=32767 WHERE "___remote_followings_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_dec"=32767 WHERE "___remote_followings_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_total"=2147483647 WHERE "___remote_followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_inc"=32767 WHERE "___remote_followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_dec"=32767 WHERE "___remote_followers_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_total"=2147483647 WHERE "___local_followings_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_inc"=32767 WHERE "___local_followings_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_dec"=32767 WHERE "___local_followings_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_total"=2147483647 WHERE "___local_followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_inc"=32767 WHERE "___local_followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_dec"=32767 WHERE "___local_followers_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_total"=2147483647 WHERE "___remote_followings_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_inc"=32767 WHERE "___remote_followings_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_dec"=32767 WHERE "___remote_followings_dec" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_total"=2147483647 WHERE "___remote_followers_total" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_inc"=32767 WHERE "___remote_followers_inc" > 32767`); - await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_dec"=32767 WHERE "___remote_followers_dec" > 32767`); - await queryRunner.query(`TRUNCATE TABLE "__chart__per_user_drive"`); - await queryRunner.query(`TRUNCATE TABLE "__chart_day__per_user_drive"`); - - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" TYPE integer USING "___instance_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" TYPE smallint USING "___instance_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" TYPE smallint USING "___instance_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" TYPE integer USING "___instance_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" TYPE smallint USING "___instance_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" TYPE smallint USING "___instance_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" TYPE integer USING "___local_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" TYPE integer USING "___local_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" TYPE integer USING "___local_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" TYPE integer USING "___local_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" TYPE integer USING "___local_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" TYPE integer USING "___remote_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" TYPE integer USING "___remote_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" TYPE integer USING "___remote_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" TYPE integer USING "___remote_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" TYPE integer USING "___remote_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" TYPE integer USING "___local_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" TYPE integer USING "___local_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" TYPE integer USING "___local_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" TYPE integer USING "___local_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" TYPE integer USING "___local_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" TYPE integer USING "___remote_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" TYPE integer USING "___remote_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" TYPE integer USING "___remote_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" TYPE integer USING "___remote_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" TYPE integer USING "___remote_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" TYPE smallint USING "___local_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" TYPE smallint USING "___local_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" TYPE smallint USING "___remote_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" TYPE smallint USING "___remote_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" TYPE smallint USING "___local_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" TYPE smallint USING "___local_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" TYPE smallint USING "___remote_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" TYPE smallint USING "___remote_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" TYPE integer USING "___incomingRequests"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" TYPE integer USING "___outgoingRequests"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" TYPE integer USING "___totalTime"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" TYPE integer USING "___incomingBytes"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" TYPE integer USING "___outgoingBytes"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" TYPE integer USING "___incomingRequests"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" TYPE integer USING "___outgoingRequests"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" TYPE integer USING "___totalTime"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" TYPE integer USING "___incomingBytes"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" TYPE integer USING "___outgoingBytes"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" TYPE smallint USING "___requests_failed"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" TYPE smallint USING "___requests_succeeded"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" TYPE smallint USING "___requests_received"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" TYPE integer USING "___notes_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" TYPE integer USING "___notes_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" TYPE integer USING "___notes_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" TYPE integer USING "___notes_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" TYPE integer USING "___notes_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" TYPE integer USING "___notes_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" TYPE integer USING "___users_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" TYPE smallint USING "___users_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" TYPE smallint USING "___users_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" TYPE integer USING "___following_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" TYPE smallint USING "___following_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" TYPE smallint USING "___following_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" TYPE integer USING "___followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" TYPE smallint USING "___followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" TYPE smallint USING "___followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" TYPE integer USING "___drive_totalFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" TYPE integer USING "___drive_incFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" TYPE integer USING "___drive_decFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" TYPE integer USING "___drive_incUsage"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" TYPE integer USING "___drive_decUsage"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" TYPE smallint USING "___requests_failed"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" TYPE smallint USING "___requests_succeeded"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" TYPE smallint USING "___requests_received"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" TYPE integer USING "___notes_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" TYPE integer USING "___notes_inc"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" TYPE integer USING "___notes_dec"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" TYPE integer USING "___notes_diffs_normal"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" TYPE integer USING "___notes_diffs_reply"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" TYPE integer USING "___notes_diffs_renote"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" TYPE integer USING "___users_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" TYPE smallint USING "___users_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" TYPE smallint USING "___users_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" TYPE integer USING "___following_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" TYPE smallint USING "___following_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" TYPE smallint USING "___following_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" TYPE integer USING "___followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" TYPE smallint USING "___followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" TYPE smallint USING "___followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" TYPE integer USING "___drive_totalFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" TYPE integer USING "___drive_incFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" TYPE integer USING "___drive_decFiles"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" TYPE integer USING "___drive_incUsage"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" TYPE integer USING "___drive_decUsage"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" TYPE integer USING "___total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" TYPE smallint USING "___inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" TYPE smallint USING "___dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE smallint USING "___diffs_normal"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE smallint USING "___diffs_reply"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE smallint USING "___diffs_renote"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" TYPE integer USING "___total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" TYPE smallint USING "___inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" TYPE smallint USING "___dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE smallint USING "___diffs_normal"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE smallint USING "___diffs_reply"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE smallint USING "___diffs_renote"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" TYPE integer USING "___local_incCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" TYPE integer USING "___local_incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" TYPE integer USING "___local_decCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" TYPE integer USING "___local_decSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" TYPE integer USING "___remote_incCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" TYPE integer USING "___remote_incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" TYPE integer USING "___remote_decCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" TYPE integer USING "___remote_decSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" TYPE integer USING "___local_incCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" TYPE integer USING "___local_incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" TYPE integer USING "___local_decCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" TYPE integer USING "___local_decSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" TYPE integer USING "___remote_incCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" TYPE integer USING "___remote_incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" TYPE integer USING "___remote_decCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" TYPE integer USING "___remote_decSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" TYPE smallint USING "___local_count"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" TYPE smallint USING "___remote_count"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" TYPE smallint USING "___local_count"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" TYPE smallint USING "___remote_count"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" TYPE integer USING "___local_followings_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE smallint USING "___local_followings_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE smallint USING "___local_followings_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" TYPE integer USING "___local_followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE smallint USING "___local_followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE smallint USING "___local_followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE integer USING "___remote_followings_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE smallint USING "___remote_followings_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE smallint USING "___remote_followings_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE integer USING "___remote_followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE smallint USING "___remote_followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE smallint USING "___remote_followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" TYPE integer USING "___local_followings_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE smallint USING "___local_followings_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE smallint USING "___local_followings_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" TYPE integer USING "___local_followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE smallint USING "___local_followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE smallint USING "___local_followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE integer USING "___remote_followings_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE smallint USING "___remote_followings_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE smallint USING "___remote_followings_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE integer USING "___remote_followers_total"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE smallint USING "___remote_followers_inc"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE smallint USING "___remote_followers_dec"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" TYPE integer USING "___totalCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" TYPE integer USING "___totalSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" TYPE smallint USING "___incCount"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" TYPE integer USING "___incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" TYPE smallint USING "___decCount"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" TYPE integer USING "___decSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" TYPE integer USING "___totalCount"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" TYPE integer USING "___totalSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" TYPE smallint USING "___incCount"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" TYPE integer USING "___incSize"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" TYPE smallint USING "___decCount"::smallint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" TYPE integer USING "___decSize"::integer`); - } - - async down(queryRunner) { - - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" TYPE bigint USING "___instance_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" TYPE bigint USING "___instance_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" TYPE bigint USING "___instance_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" TYPE bigint USING "___instance_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" TYPE bigint USING "___instance_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" TYPE bigint USING "___instance_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" TYPE bigint USING "___local_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" TYPE bigint USING "___local_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" TYPE bigint USING "___local_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" TYPE bigint USING "___remote_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" TYPE bigint USING "___remote_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" TYPE bigint USING "___remote_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" TYPE bigint USING "___local_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" TYPE bigint USING "___local_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" TYPE bigint USING "___local_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" TYPE bigint USING "___remote_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" TYPE bigint USING "___remote_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" TYPE bigint USING "___remote_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" TYPE bigint USING "___incomingRequests"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" TYPE bigint USING "___outgoingRequests"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" TYPE bigint USING "___totalTime"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" TYPE bigint USING "___incomingBytes"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" TYPE bigint USING "___outgoingBytes"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" TYPE bigint USING "___incomingRequests"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" TYPE bigint USING "___outgoingRequests"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" TYPE bigint USING "___totalTime"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" TYPE bigint USING "___incomingBytes"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" TYPE bigint USING "___outgoingBytes"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" TYPE bigint USING "___requests_failed"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" TYPE bigint USING "___requests_succeeded"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" TYPE bigint USING "___requests_received"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" TYPE bigint USING "___notes_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" TYPE bigint USING "___notes_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" TYPE bigint USING "___notes_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" TYPE bigint USING "___notes_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" TYPE bigint USING "___notes_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" TYPE bigint USING "___notes_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" TYPE bigint USING "___users_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" TYPE bigint USING "___users_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" TYPE bigint USING "___users_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" TYPE bigint USING "___following_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" TYPE bigint USING "___following_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" TYPE bigint USING "___following_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" TYPE bigint USING "___followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" TYPE bigint USING "___followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" TYPE bigint USING "___followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" TYPE bigint USING "___drive_totalFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" TYPE bigint USING "___drive_incFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" TYPE bigint USING "___drive_decFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" TYPE bigint USING "___drive_incUsage"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" TYPE bigint USING "___drive_decUsage"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" TYPE bigint USING "___requests_failed"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" TYPE bigint USING "___requests_succeeded"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" TYPE bigint USING "___requests_received"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" TYPE bigint USING "___notes_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" TYPE bigint USING "___notes_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" TYPE bigint USING "___notes_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" TYPE bigint USING "___notes_diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" TYPE bigint USING "___notes_diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" TYPE bigint USING "___notes_diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" TYPE bigint USING "___users_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" TYPE bigint USING "___users_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" TYPE bigint USING "___users_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" TYPE bigint USING "___following_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" TYPE bigint USING "___following_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" TYPE bigint USING "___following_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" TYPE bigint USING "___followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" TYPE bigint USING "___followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" TYPE bigint USING "___followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" TYPE bigint USING "___drive_totalFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" TYPE bigint USING "___drive_incFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" TYPE bigint USING "___drive_decFiles"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" TYPE bigint USING "___drive_incUsage"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" TYPE bigint USING "___drive_decUsage"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" TYPE bigint USING "___total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" TYPE bigint USING "___inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" TYPE bigint USING "___dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE bigint USING "___diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE bigint USING "___diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE bigint USING "___diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" TYPE bigint USING "___total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" TYPE bigint USING "___inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" TYPE bigint USING "___dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE bigint USING "___diffs_normal"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE bigint USING "___diffs_reply"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE bigint USING "___diffs_renote"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" TYPE bigint USING "___local_incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" TYPE bigint USING "___local_incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" TYPE bigint USING "___local_decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" TYPE bigint USING "___local_decSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" TYPE bigint USING "___remote_incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" TYPE bigint USING "___remote_incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" TYPE bigint USING "___remote_decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" TYPE bigint USING "___remote_decSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" TYPE bigint USING "___local_incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" TYPE bigint USING "___local_incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" TYPE bigint USING "___local_decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" TYPE bigint USING "___local_decSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" TYPE bigint USING "___remote_incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" TYPE bigint USING "___remote_incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" TYPE bigint USING "___remote_decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" TYPE bigint USING "___remote_decSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" TYPE bigint USING "___local_count"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" TYPE bigint USING "___remote_count"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" TYPE bigint USING "___local_count"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" TYPE bigint USING "___remote_count"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" TYPE bigint USING "___local_followings_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE bigint USING "___local_followings_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE bigint USING "___local_followings_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" TYPE bigint USING "___local_followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE bigint USING "___local_followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE bigint USING "___local_followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE bigint USING "___remote_followings_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE bigint USING "___remote_followings_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE bigint USING "___remote_followings_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE bigint USING "___remote_followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE bigint USING "___remote_followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE bigint USING "___remote_followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" TYPE bigint USING "___local_followings_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE bigint USING "___local_followings_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE bigint USING "___local_followings_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" TYPE bigint USING "___local_followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE bigint USING "___local_followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE bigint USING "___local_followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE bigint USING "___remote_followings_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE bigint USING "___remote_followings_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE bigint USING "___remote_followings_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE bigint USING "___remote_followers_total"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE bigint USING "___remote_followers_inc"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE bigint USING "___remote_followers_dec"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" TYPE bigint USING "___totalCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" TYPE bigint USING "___totalSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" TYPE bigint USING "___incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" TYPE bigint USING "___incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" TYPE bigint USING "___decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" TYPE bigint USING "___decSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" TYPE bigint USING "___totalCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" TYPE bigint USING "___totalSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" TYPE bigint USING "___incCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" TYPE bigint USING "___incSize"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" TYPE bigint USING "___decCount"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" TYPE bigint USING "___decSize"::bigint`); - } -} diff --git a/packages/backend/migration/1644059847460-chart-v8.js b/packages/backend/migration/1644059847460-chart-v8.js deleted file mode 100644 index a5339c0eb..000000000 --- a/packages/backend/migration/1644059847460-chart-v8.js +++ /dev/null @@ -1,25 +0,0 @@ - - -export class chartV81644059847460 { - name = 'chartV81644059847460' - - async up(queryRunner) { - await queryRunner.query(`UPDATE "__chart__active_users" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__active_users" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__active_users" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__active_users" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`); - - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`); - } - - async down(queryRunner) { - - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`); - } -} diff --git a/packages/backend/migration/1644060125705-chart-v9.js b/packages/backend/migration/1644060125705-chart-v9.js deleted file mode 100644 index da35d4231..000000000 --- a/packages/backend/migration/1644060125705-chart-v9.js +++ /dev/null @@ -1,25 +0,0 @@ - - -export class chartV91644060125705 { - name = 'chartV91644060125705' - - async up(queryRunner) { - await queryRunner.query(`UPDATE "__chart__hashtag" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart__hashtag" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__hashtag" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`); - await queryRunner.query(`UPDATE "__chart_day__hashtag" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`); - - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`); - } - - async down(queryRunner) { - - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`); - await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`); - } -} diff --git a/packages/backend/migration/1644073149413-chart-v10.js b/packages/backend/migration/1644073149413-chart-v10.js deleted file mode 100644 index 7260bbeca..000000000 --- a/packages/backend/migration/1644073149413-chart-v10.js +++ /dev/null @@ -1,35 +0,0 @@ - - -export class chartV101644073149413 { - name = 'chartV101644073149413' - - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "__chart__ap_request" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___deliverFailed" integer NOT NULL DEFAULT '0', "___deliverSucceeded" integer NOT NULL DEFAULT '0', "___inboxReceived" integer NOT NULL DEFAULT '0', CONSTRAINT "UQ_e56f4beac5746d44bc3e19c80d0" UNIQUE ("date"), CONSTRAINT "PK_56a25cd447c7ee08876b3baf8d8" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e56f4beac5746d44bc3e19c80d" ON "__chart__ap_request" ("date") `); - await queryRunner.query(`CREATE TABLE "__chart_day__ap_request" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___deliverFailed" integer NOT NULL DEFAULT '0', "___deliverSucceeded" integer NOT NULL DEFAULT '0', "___inboxReceived" integer NOT NULL DEFAULT '0', CONSTRAINT "UQ_a848f66d6cec11980a5dd595822" UNIQUE ("date"), CONSTRAINT "PK_9318b49daee320194e23f712e69" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a848f66d6cec11980a5dd59582" ON "__chart_day__ap_request" ("date") `); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___deliveredInstances" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___deliveredInstances" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___inboxInstances" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___inboxInstances" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___deliveredInstances" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___deliveredInstances" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___inboxInstances" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___inboxInstances" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___inboxInstances"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___inboxInstances"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___deliveredInstances"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___deliveredInstances"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___inboxInstances"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___inboxInstances"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___deliveredInstances"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___deliveredInstances"`); - await queryRunner.query(`DROP INDEX "public"."IDX_a848f66d6cec11980a5dd59582"`); - await queryRunner.query(`DROP TABLE "__chart_day__ap_request"`); - await queryRunner.query(`DROP INDEX "public"."IDX_e56f4beac5746d44bc3e19c80d"`); - await queryRunner.query(`DROP TABLE "__chart__ap_request"`); - } -} diff --git a/packages/backend/migration/1644095659741-chart-v11.js b/packages/backend/migration/1644095659741-chart-v11.js deleted file mode 100644 index 309fff1d9..000000000 --- a/packages/backend/migration/1644095659741-chart-v11.js +++ /dev/null @@ -1,91 +0,0 @@ - - -export class chartV111644095659741 { - name = 'chartV111644095659741' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___local_users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___remote_users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinWeek" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinWeek" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinMonth" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinMonth" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinYear" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinYear" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideWeek" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideWeek" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideMonth" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideMonth" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideYear" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideYear" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinWeek" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinWeek" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinMonth" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinMonth" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinYear" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinYear" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideWeek" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideWeek" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideMonth" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideMonth" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideYear" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideYear" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideYear"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideYear"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideMonth"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideMonth"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideWeek"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideWeek"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinYear"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinYear"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinMonth"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinMonth"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinWeek"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinWeek"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideYear"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideYear"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideMonth"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideMonth"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideWeek"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideWeek"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinYear"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinYear"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinMonth"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinMonth"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinWeek"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinWeek"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" integer NOT NULL DEFAULT '0'`); - } -} diff --git a/packages/backend/migration/1644328606241-chart-v12.js b/packages/backend/migration/1644328606241-chart-v12.js deleted file mode 100644 index c3c7e44f9..000000000 --- a/packages/backend/migration/1644328606241-chart-v12.js +++ /dev/null @@ -1,27 +0,0 @@ - - -export class chartV121644328606241 { - name = 'chartV121644328606241' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "___local_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "___remote_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ADD "___local_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" ADD "___remote_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "___notes_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" ADD "___notes_diffs_withFile" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "___diffs_withFile" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ADD "___diffs_withFile" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" DROP COLUMN "___diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "___diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart_day__instance" DROP COLUMN "___notes_diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "___notes_diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" DROP COLUMN "___remote_diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart_day__notes" DROP COLUMN "___local_diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "___remote_diffs_withFile"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "___local_diffs_withFile"`); - } -} diff --git a/packages/backend/migration/1644331238153-chart-v13.js b/packages/backend/migration/1644331238153-chart-v13.js deleted file mode 100644 index 639f7b4e2..000000000 --- a/packages/backend/migration/1644331238153-chart-v13.js +++ /dev/null @@ -1,19 +0,0 @@ - - -export class chartV131644331238153 { - name = 'chartV131644331238153' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___stalled"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___stalled"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___stalled"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___stalled"`); - } -} diff --git a/packages/backend/migration/1644344266289-chart-v14.js b/packages/backend/migration/1644344266289-chart-v14.js deleted file mode 100644 index a0d9cfc38..000000000 --- a/packages/backend/migration/1644344266289-chart-v14.js +++ /dev/null @@ -1,47 +0,0 @@ - - -export class chartV141644344266289 { - name = 'chartV141644344266289' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___users"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___users"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___notedUsers"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___readWrite" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___read" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___read" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___write" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___write" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___readWrite" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___read" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___read" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___write" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___write" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___write"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___write"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___read"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___read"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___readWrite"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___write"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___write"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___read"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___read"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___readWrite"`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`); - } -} diff --git a/packages/backend/migration/1644395759931-instance-theme-color.js b/packages/backend/migration/1644395759931-instance-theme-color.js deleted file mode 100644 index 8f335ad21..000000000 --- a/packages/backend/migration/1644395759931-instance-theme-color.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class instanceThemeColor1644395759931 { - name = 'instanceThemeColor1644395759931' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "themeColor" character varying(512)`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "themeColor"`); - } -} diff --git a/packages/backend/migration/1644481657998-chart-v15.js b/packages/backend/migration/1644481657998-chart-v15.js deleted file mode 100644 index b50ca87c4..000000000 --- a/packages/backend/migration/1644481657998-chart-v15.js +++ /dev/null @@ -1,31 +0,0 @@ - - -export class chartV151644481657998 { - name = 'chartV151644481657998' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_total"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_inc"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_dec"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_total"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_inc"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_dec"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___sub" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___pub" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___sub" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___pub" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___pub"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___sub"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___pub"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___sub"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_dec" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_inc" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_total" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_dec" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_inc" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_total" integer NOT NULL DEFAULT '0'`); - } -} diff --git a/packages/backend/migration/1644551208096-following-indexes.js b/packages/backend/migration/1644551208096-following-indexes.js deleted file mode 100644 index 276473ff6..000000000 --- a/packages/backend/migration/1644551208096-following-indexes.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class followingIndexes1644551208096 { - name = 'followingIndexes1644551208096' - - async up(queryRunner) { - await queryRunner.query(`CREATE INDEX "IDX_4ccd2239268ebbd1b35e318754" ON "following" ("followerHost") `); - await queryRunner.query(`CREATE INDEX "IDX_fcdafee716dfe9c3b5fde90f30" ON "following" ("followeeHost") `); - } - - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_fcdafee716dfe9c3b5fde90f30"`); - await queryRunner.query(`DROP INDEX "public"."IDX_4ccd2239268ebbd1b35e318754"`); - } -} diff --git a/packages/backend/migration/1645340161439-remove-max-note-text-length.js b/packages/backend/migration/1645340161439-remove-max-note-text-length.js deleted file mode 100644 index c88cb70bf..000000000 --- a/packages/backend/migration/1645340161439-remove-max-note-text-length.js +++ /dev/null @@ -1,13 +0,0 @@ - - -export class removeMaxNoteTextLength1645340161439 { - name = 'removeMaxNoteTextLength1645340161439' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "maxNoteTextLength"`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "maxNoteTextLength" integer NOT NULL DEFAULT '500'`); - } -} diff --git a/packages/backend/migration/1645599900873-federation-chart-pubsub.js b/packages/backend/migration/1645599900873-federation-chart-pubsub.js deleted file mode 100644 index fd7cb6d5a..000000000 --- a/packages/backend/migration/1645599900873-federation-chart-pubsub.js +++ /dev/null @@ -1,15 +0,0 @@ - - -export class federationChartPubsub1645599900873 { - name = 'federationChartPubsub1645599900873' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___pubsub" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___pubsub" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___pubsub"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___pubsub"`); - } -} diff --git a/packages/backend/migration/1646143552768-instance-default-theme.js b/packages/backend/migration/1646143552768-instance-default-theme.js deleted file mode 100644 index 029354fd9..000000000 --- a/packages/backend/migration/1646143552768-instance-default-theme.js +++ /dev/null @@ -1,13 +0,0 @@ -export class instanceDefaultTheme1646143552768 { - name = 'instanceDefaultTheme1646143552768' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "defaultLightTheme" character varying(8192)`); - await queryRunner.query(`ALTER TABLE "meta" ADD "defaultDarkTheme" character varying(8192)`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "defaultDarkTheme"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "defaultLightTheme"`); - } -} diff --git a/packages/backend/migration/1646387162108-mute-expires-at.js b/packages/backend/migration/1646387162108-mute-expires-at.js deleted file mode 100644 index c8be8f3c5..000000000 --- a/packages/backend/migration/1646387162108-mute-expires-at.js +++ /dev/null @@ -1,13 +0,0 @@ -export class muteExpiresAt1646387162108 { - name = 'muteExpiresAt1646387162108' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "muting" ADD "expiresAt" TIMESTAMP WITH TIME ZONE`); - await queryRunner.query(`CREATE INDEX "IDX_c1fd1c3dfb0627aa36c253fd14" ON "muting" ("expiresAt") `); - } - - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_c1fd1c3dfb0627aa36c253fd14"`); - await queryRunner.query(`ALTER TABLE "muting" DROP COLUMN "expiresAt"`); - } -} diff --git a/packages/backend/migration/1646549089451-poll-ended-notification.js b/packages/backend/migration/1646549089451-poll-ended-notification.js deleted file mode 100644 index 38a38ce64..000000000 --- a/packages/backend/migration/1646549089451-poll-ended-notification.js +++ /dev/null @@ -1,18 +0,0 @@ - -export class pollEndedNotification1646549089451 { - name = 'pollEndedNotification1646549089451' - - async up(queryRunner) { - await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`); - await queryRunner.query(`CREATE TYPE "public"."notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "public"."notification_type_enum" USING "type"::"text"::"public"."notification_type_enum"`); - await queryRunner.query(`DROP TYPE "public"."notification_type_enum_old"`); - } - - async down(queryRunner) { - await queryRunner.query(`CREATE TYPE "public"."notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); - await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "public"."notification_type_enum_old" USING "type"::"text"::"public"."notification_type_enum_old"`); - await queryRunner.query(`DROP TYPE "public"."notification_type_enum"`); - await queryRunner.query(`ALTER TYPE "public"."notification_type_enum_old" RENAME TO "notification_type_enum"`); - } -} diff --git a/packages/backend/migration/1646633030285-chart-federation-active.js b/packages/backend/migration/1646633030285-chart-federation-active.js deleted file mode 100644 index 952289c8f..000000000 --- a/packages/backend/migration/1646633030285-chart-federation-active.js +++ /dev/null @@ -1,13 +0,0 @@ -export class chartFederationActive1646633030285 { - name = 'chartFederationActive1646633030285' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___active" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___active" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___active"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___active"`); - } -} diff --git a/packages/backend/migration/1646655454495-remove-instance-drive-columns.js b/packages/backend/migration/1646655454495-remove-instance-drive-columns.js deleted file mode 100644 index a0ee1b2c4..000000000 --- a/packages/backend/migration/1646655454495-remove-instance-drive-columns.js +++ /dev/null @@ -1,13 +0,0 @@ -export class removeInstanceDriveColumns1646655454495 { - name = 'removeInstanceDriveColumns1646655454495' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveUsage"`); - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveFiles"`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "instance" ADD "driveFiles" integer NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "instance" ADD "driveUsage" bigint NOT NULL DEFAULT '0'`); - } -} diff --git a/packages/backend/migration/1646732390560-chart-federation-active-sub-pub.js b/packages/backend/migration/1646732390560-chart-federation-active-sub-pub.js deleted file mode 100644 index c9a847cbc..000000000 --- a/packages/backend/migration/1646732390560-chart-federation-active-sub-pub.js +++ /dev/null @@ -1,21 +0,0 @@ -export class chartFederationActiveSubPub1646732390560 { - name = 'chartFederationActiveSubPub1646732390560' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___active"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___active"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___subActive" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___pubActive" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___subActive" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___pubActive" smallint NOT NULL DEFAULT '0'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___pubActive"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___subActive"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___pubActive"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___subActive"`); - await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___active" smallint NOT NULL DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___active" smallint NOT NULL DEFAULT '0'`); - } -} diff --git a/packages/backend/migration/1648548247382-webhook.js b/packages/backend/migration/1648548247382-webhook.js deleted file mode 100644 index aea369a5c..000000000 --- a/packages/backend/migration/1648548247382-webhook.js +++ /dev/null @@ -1,19 +0,0 @@ -export class webhook1648548247382 { - name = 'webhook1648548247382' - - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "webhook" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "on" character varying(128) array NOT NULL DEFAULT '{}', "url" character varying(1024) NOT NULL, "secret" character varying(1024) NOT NULL, "active" boolean NOT NULL DEFAULT true, CONSTRAINT "PK_e6765510c2d078db49632b59020" PRIMARY KEY ("id")); COMMENT ON COLUMN "webhook"."createdAt" IS 'The created date of the Antenna.'; COMMENT ON COLUMN "webhook"."userId" IS 'The owner ID.'; COMMENT ON COLUMN "webhook"."name" IS 'The name of the Antenna.'`); - await queryRunner.query(`CREATE INDEX "IDX_f272c8c8805969e6a6449c77b3" ON "webhook" ("userId") `); - await queryRunner.query(`CREATE INDEX "IDX_8063a0586ed1dfbe86e982d961" ON "webhook" ("on") `); - await queryRunner.query(`CREATE INDEX "IDX_5a056076f76b2efe08216ba655" ON "webhook" ("active") `); - await queryRunner.query(`ALTER TABLE "webhook" ADD CONSTRAINT "FK_f272c8c8805969e6a6449c77b3c" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "webhook" DROP CONSTRAINT "FK_f272c8c8805969e6a6449c77b3c"`); - await queryRunner.query(`DROP INDEX "public"."IDX_5a056076f76b2efe08216ba655"`); - await queryRunner.query(`DROP INDEX "public"."IDX_8063a0586ed1dfbe86e982d961"`); - await queryRunner.query(`DROP INDEX "public"."IDX_f272c8c8805969e6a6449c77b3"`); - await queryRunner.query(`DROP TABLE "webhook"`); - } -} diff --git a/packages/backend/migration/1648816172177-webhook-2.js b/packages/backend/migration/1648816172177-webhook-2.js deleted file mode 100644 index 2feb68d61..000000000 --- a/packages/backend/migration/1648816172177-webhook-2.js +++ /dev/null @@ -1,14 +0,0 @@ - -export class webhook21648816172177 { - name = 'webhook21648816172177' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "webhook" ADD "latestSentAt" TIMESTAMP WITH TIME ZONE`); - await queryRunner.query(`ALTER TABLE "webhook" ADD "latestStatus" integer`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "webhook" DROP COLUMN "latestStatus"`); - await queryRunner.query(`ALTER TABLE "webhook" DROP COLUMN "latestSentAt"`); - } -} diff --git a/packages/backend/migration/1651224615271-foreign-key.js b/packages/backend/migration/1651224615271-foreign-key.js deleted file mode 100644 index 535d21731..000000000 --- a/packages/backend/migration/1651224615271-foreign-key.js +++ /dev/null @@ -1,89 +0,0 @@ -export class foreignKeyReports1651224615271 { - name = 'foreignKeyReports1651224615271' - - async up(queryRunner) { - await Promise.all([ - queryRunner.query(`ALTER INDEX "public"."IDX_seoignmeoprigmkpodgrjmkpormg" RENAME TO "IDX_c8cc87bd0f2f4487d17c651fbf"`), - queryRunner.query(`DROP INDEX "public"."IDX_note_on_channelId_and_id_desc"`), - - // remove unnecessary default null, see also down - queryRunner.query(`ALTER TABLE "user" ALTER COLUMN "followersUri" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "session" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "name" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "description" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "iconUrl" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "softwareName" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "softwareVersion" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "name" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "description" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "maintainerName" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "maintainerEmail" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "iconUrl" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "faviconUrl" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "themeColor" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "clip" ALTER COLUMN "description" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "note" ALTER COLUMN "channelId" DROP DEFAULT`), - queryRunner.query(`ALTER TABLE "abuse_user_report" ALTER COLUMN "comment" DROP DEFAULT`), - - queryRunner.query(`CREATE INDEX "IDX_315c779174fe8247ab324f036e" ON "drive_file" ("isLink")`), - queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId")`), - //queryRunner.query(`CREATE INDEX "IDX_a9021cc2e1feb5f72d3db6e9f5" ON "abuse_user_report" ("targetUserId")`), - - //queryRunner.query(`DELETE FROM "abuse_user_report" WHERE "targetUserId" NOT IN (SELECT "id" FROM "user")`).then(() => { - // queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_a9021cc2e1feb5f72d3db6e9f5f" FOREIGN KEY ("targetUserId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); - //}), - - queryRunner.query(`ALTER TABLE "poll" ADD CONSTRAINT "UQ_da851e06d0dfe2ef397d8b1bf1b" UNIQUE ("noteId")`), - queryRunner.query(`ALTER TABLE "user_keypair" ADD CONSTRAINT "UQ_f4853eb41ab722fe05f81cedeb6" UNIQUE ("userId")`), - queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_51cb79b5555effaf7d69ba1cff9" UNIQUE ("userId")`), - queryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "UQ_10c146e4b39b443ede016f6736d" UNIQUE ("userId")`), - queryRunner.query(`ALTER TABLE "promo_note" ADD CONSTRAINT "UQ_e263909ca4fe5d57f8d4230dd5c" UNIQUE ("noteId")`), - - queryRunner.query(`ALTER TABLE "page" RENAME CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" TO "FK_a9ca79ad939bf06066b81c9d3aa"`), - - queryRunner.query(`ALTER TYPE "public"."user_profile_mutingnotificationtypes_enum" ADD VALUE 'pollEnded' AFTER 'pollVote'`), - ]); - } - - async down(queryRunner) { - await Promise.all([ - // There is no ALTER TYPE REMOVE VALUE query, so the reverse operation is a bit more complex - queryRunner.query(`UPDATE "user_profile" SET "mutingNotificationTypes" = array_remove("mutingNotificationTypes", 'pollEnded')`) - .then(() => - queryRunner.query(`CREATE TYPE "public"."user_profile_mutingnotificationtypes_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`) - ).then(() => - queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" DROP DEFAULT`) - ).then(() => - queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" TYPE "public"."user_profile_mutingnotificationtypes_enum_old"[] USING "mutingNotificationTypes"::"text"::"public"."user_profile_mutingnotificationtypes_enum_old"[]`) - ).then(() => - queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" SET DEFAULT '{}'`) - ).then(() => - queryRunner.query(`DROP TYPE "public"."user_profile_mutingnotificationtypes_enum"`) - ).then(() => - queryRunner.query(`ALTER TYPE "public"."user_profile_mutingnotificationtypes_enum_old" RENAME TO "user_profile_mutingnotificationtypes_enum"`) - ), - - queryRunner.query(`ALTER TABLE "page" RENAME CONSTRAINT "FK_a9ca79ad939bf06066b81c9d3aa" TO "FK_3126dd7c502c9e4d7597ef7ef10"`), - - queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "UQ_e263909ca4fe5d57f8d4230dd5c"`), - queryRunner.query(`ALTER TABLE "user_publickey" DROP CONSTRAINT "UQ_10c146e4b39b443ede016f6736d"`), - queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_51cb79b5555effaf7d69ba1cff9"`), - queryRunner.query(`ALTER TABLE "user_keypair" DROP CONSTRAINT "UQ_f4853eb41ab722fe05f81cedeb6"`), - queryRunner.query(`ALTER TABLE "poll" DROP CONSTRAINT "UQ_da851e06d0dfe2ef397d8b1bf1b"`), - - queryRunner.query(`ALTER TABLE "abuse_user_report" ALTER COLUMN "comment" SET DEFAULT '{}'`), - queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_a9021cc2e1feb5f72d3db6e9f5f"`), - - queryRunner.query(`DROP INDEX "public"."IDX_a9021cc2e1feb5f72d3db6e9f5"`), - queryRunner.query(`DROP INDEX "public"."IDX_f22169eb10657bded6d875ac8f"`), - queryRunner.query(`DROP INDEX "public"."IDX_315c779174fe8247ab324f036e"`), - - /* DEFAULT's are not set again because if the column can be NULL, then DEFAULT NULL is not necessary. - see also https://github.com/typeorm/typeorm/issues/7579#issuecomment-835423615 */ - - queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("id", "channelId") `), - queryRunner.query(`ALTER INDEX "public"."IDX_c8cc87bd0f2f4487d17c651fbf" RENAME TO "IDX_seoignmeoprigmkpodgrjmkpormg"`), - ]); - } -} diff --git a/packages/backend/migration/1652859567549-uniform-themecolor.js b/packages/backend/migration/1652859567549-uniform-themecolor.js deleted file mode 100644 index 8da1fd7fb..000000000 --- a/packages/backend/migration/1652859567549-uniform-themecolor.js +++ /dev/null @@ -1,36 +0,0 @@ -import tinycolor from 'tinycolor2'; - -export class uniformThemecolor1652859567549 { - name = 'uniformThemecolor1652859567549' - - async up(queryRunner) { - const formatColor = (color) => { - let tc = new tinycolor(color); - if (tc.isValid()) { - return tc.toHexString(); - } else { - return null; - } - }; - - await queryRunner.query('SELECT "id", "themeColor" FROM "instance" WHERE "themeColor" IS NOT NULL') - .then(instances => Promise.all(instances.map(instance => { - // update theme color to uniform format, e.g. #00ff00 - // invalid theme colors get set to null - return queryRunner.query('UPDATE "instance" SET "themeColor" = $1 WHERE "id" = $2', [formatColor(instance.themeColor), instance.id]); - }))); - - // also fix own theme color - await queryRunner.query('SELECT "themeColor" FROM "meta" WHERE "themeColor" IS NOT NULL LIMIT 1') - .then(metas => { - if (metas.length > 0) { - return queryRunner.query('UPDATE "meta" SET "themeColor" = $1', [formatColor(metas[0].themeColor)]); - } - }); - } - - async down(queryRunner) { - // The original representation is not stored, so migrating back is not possible. - // The new format also works in older versions so this is not a problem. - } -} diff --git a/packages/backend/migration/1655368940105-nsfw-detection.js b/packages/backend/migration/1655368940105-nsfw-detection.js deleted file mode 100644 index 9268f4340..000000000 --- a/packages/backend/migration/1655368940105-nsfw-detection.js +++ /dev/null @@ -1,23 +0,0 @@ -export class nsfwDetection1655368940105 { - name = 'nsfwDetection1655368940105' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" ADD "forceIsSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "predictedIsSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."predictedIsSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetection_enum" AS ENUM('none', 'all', 'local', 'remote')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveImageDetection" "public"."meta_sensitiveimagedetection_enum" NOT NULL DEFAULT 'none'`); - await queryRunner.query(`ALTER TABLE "meta" ADD "forceIsSensitiveWhenPredicted" boolean NOT NULL DEFAULT true`); - await queryRunner.query(`CREATE INDEX "IDX_fc2d74a6d7d8b11292a851d8f8" ON "drive_file" ("predictedIsSensitive") `); - } - - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_fc2d74a6d7d8b11292a851d8f8"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "forceIsSensitiveWhenPredicted"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveImageDetection"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetection_enum"`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."predictedIsSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "predictedIsSensitive"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "forceIsSensitive"`); - } -} diff --git a/packages/backend/migration/1655371960534-nsfw-detection-2.js b/packages/backend/migration/1655371960534-nsfw-detection-2.js deleted file mode 100644 index aac6f37da..000000000 --- a/packages/backend/migration/1655371960534-nsfw-detection-2.js +++ /dev/null @@ -1,15 +0,0 @@ -export class nsfwDetection21655371960534 { - name = 'nsfwDetection21655371960534' - - async up(queryRunner) { - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum" AS ENUM('medium', 'low', 'high')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveImageDetectionSensitivity" "public"."meta_sensitiveimagedetectionsensitivity_enum" NOT NULL DEFAULT 'medium'`); - await queryRunner.query(`ALTER TABLE "meta" ADD "disallowUploadWhenPredictedAsPorn" boolean NOT NULL DEFAULT false`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "disallowUploadWhenPredictedAsPorn"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveImageDetectionSensitivity"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum"`); - } -} diff --git a/packages/backend/migration/1655388169582-nsfw-detection-3.js b/packages/backend/migration/1655388169582-nsfw-detection-3.js deleted file mode 100644 index a5c80cf96..000000000 --- a/packages/backend/migration/1655388169582-nsfw-detection-3.js +++ /dev/null @@ -1,21 +0,0 @@ -export class nsfwDetection31655388169582 { - name = 'nsfwDetection31655388169582' - - async up(queryRunner) { - await queryRunner.query(`ALTER TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum" RENAME TO "meta_sensitiveimagedetectionsensitivity_enum_old"`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum" AS ENUM('medium', 'low', 'high', 'veryLow', 'veryHigh')`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum" USING "sensitiveImageDetectionSensitivity"::"text"::"public"."meta_sensitiveimagedetectionsensitivity_enum"`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" SET DEFAULT 'medium'`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum_old"`); - } - - async down(queryRunner) { - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum_old" AS ENUM('medium', 'low', 'high')`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" DROP DEFAULT`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum_old" USING "sensitiveImageDetectionSensitivity"::"text"::"public"."meta_sensitiveimagedetectionsensitivity_enum_old"`); - await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "sensitiveImageDetectionSensitivity" SET DEFAULT 'medium'`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum"`); - await queryRunner.query(`ALTER TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum_old" RENAME TO "meta_sensitiveimagedetectionsensitivity_enum"`); - } -} diff --git a/packages/backend/migration/1655393015659-nsfw-detection-4.js b/packages/backend/migration/1655393015659-nsfw-detection-4.js deleted file mode 100644 index e78073262..000000000 --- a/packages/backend/migration/1655393015659-nsfw-detection-4.js +++ /dev/null @@ -1,25 +0,0 @@ -export class nsfwDetection41655393015659 { - name = 'nsfwDetection41655393015659' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveImageDetection"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetection_enum"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveImageDetectionSensitivity"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum"`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitivemediadetection_enum" AS ENUM('none', 'all', 'local', 'remote')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveMediaDetection" "public"."meta_sensitivemediadetection_enum" NOT NULL DEFAULT 'none'`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitivemediadetectionsensitivity_enum" AS ENUM('medium', 'low', 'high', 'veryLow', 'veryHigh')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveMediaDetectionSensitivity" "public"."meta_sensitivemediadetectionsensitivity_enum" NOT NULL DEFAULT 'medium'`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveMediaDetectionSensitivity"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitivemediadetectionsensitivity_enum"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "sensitiveMediaDetection"`); - await queryRunner.query(`DROP TYPE "public"."meta_sensitivemediadetection_enum"`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetectionsensitivity_enum" AS ENUM('medium', 'low', 'high', 'veryLow', 'veryHigh')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveImageDetectionSensitivity" "public"."meta_sensitiveimagedetectionsensitivity_enum" NOT NULL DEFAULT 'medium'`); - await queryRunner.query(`CREATE TYPE "public"."meta_sensitiveimagedetection_enum" AS ENUM('none', 'all', 'local', 'remote')`); - await queryRunner.query(`ALTER TABLE "meta" ADD "sensitiveImageDetection" "public"."meta_sensitiveimagedetection_enum" NOT NULL DEFAULT 'none'`); - } -} diff --git a/packages/backend/migration/1655813815729-driveCapacityOverrideMb.js b/packages/backend/migration/1655813815729-driveCapacityOverrideMb.js deleted file mode 100644 index f257cd112..000000000 --- a/packages/backend/migration/1655813815729-driveCapacityOverrideMb.js +++ /dev/null @@ -1,13 +0,0 @@ -export class driveCapacityOverrideMb1655813815729 { - name = 'driveCapacityOverrideMb1655813815729' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user" ADD "driveCapacityOverrideMb" integer`); - await queryRunner.query(`COMMENT ON COLUMN "user"."driveCapacityOverrideMb" IS 'Overrides user drive capacity limit'`); - } - - async down(queryRunner) { - await queryRunner.query(`COMMENT ON COLUMN "user"."driveCapacityOverrideMb" IS 'Overrides user drive capacity limit'`); - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "driveCapacityOverrideMb"`); - } -} diff --git a/packages/backend/migration/1655918165614-user-ip.js b/packages/backend/migration/1655918165614-user-ip.js deleted file mode 100644 index 2294fbaf1..000000000 --- a/packages/backend/migration/1655918165614-user-ip.js +++ /dev/null @@ -1,17 +0,0 @@ -export class userIp1655918165614 { - name = 'userIp1655918165614' - - async up(queryRunner) { - await queryRunner.query(`CREATE TABLE "user_ip" ("id" SERIAL NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "ip" character varying(128) NOT NULL, CONSTRAINT "PK_2c44ddfbf7c0464d028dcef325e" PRIMARY KEY ("id"))`); - await queryRunner.query(`CREATE INDEX "IDX_7f7f1c66f48e9a8e18a33bc515" ON "user_ip" ("userId") `); - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_361b500e06721013c124b7b6c5" ON "user_ip" ("userId", "ip") `); - await queryRunner.query(`ALTER TABLE "user_ip" ADD CONSTRAINT "FK_7f7f1c66f48e9a8e18a33bc5150" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_ip" DROP CONSTRAINT "FK_7f7f1c66f48e9a8e18a33bc5150"`); - await queryRunner.query(`DROP INDEX "public"."IDX_361b500e06721013c124b7b6c5"`); - await queryRunner.query(`DROP INDEX "public"."IDX_7f7f1c66f48e9a8e18a33bc515"`); - await queryRunner.query(`DROP TABLE "user_ip"`); - } -} diff --git a/packages/backend/migration/1656122560740-file-ip.js b/packages/backend/migration/1656122560740-file-ip.js deleted file mode 100644 index b59e7a911..000000000 --- a/packages/backend/migration/1656122560740-file-ip.js +++ /dev/null @@ -1,13 +0,0 @@ -export class fileIp1656122560740 { - name = 'fileIp1656122560740' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" ADD "requestHeaders" jsonb DEFAULT '{}'`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "requestIp" character varying(128)`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "requestIp"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "requestHeaders"`); - } -} diff --git a/packages/backend/migration/1656251734807-nsfw-detection-5.js b/packages/backend/migration/1656251734807-nsfw-detection-5.js deleted file mode 100644 index 6f0c53690..000000000 --- a/packages/backend/migration/1656251734807-nsfw-detection-5.js +++ /dev/null @@ -1,33 +0,0 @@ -export class nsfwDetection51656251734807 { - name = 'nsfwDetection51656251734807' - - async up(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_fc2d74a6d7d8b11292a851d8f8"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "forceIsSensitive"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "predictedIsSensitive"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "forceIsSensitiveWhenPredicted"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "disallowUploadWhenPredictedAsPorn"`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "maybeSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."maybeSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "maybePorn" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "meta" ADD "setSensitiveFlagAutomatically" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`CREATE INDEX "IDX_3b33dff77bb64b23c88151d23e" ON "drive_file" ("maybeSensitive") `); - await queryRunner.query(`CREATE INDEX "IDX_8bdcd3dd2bddb78014999a16ce" ON "drive_file" ("maybePorn") `); - } - - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "public"."IDX_8bdcd3dd2bddb78014999a16ce"`); - await queryRunner.query(`DROP INDEX "public"."IDX_3b33dff77bb64b23c88151d23e"`); - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoSensitive"`); - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "setSensitiveFlagAutomatically"`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "maybePorn"`); - await queryRunner.query(`COMMENT ON COLUMN "drive_file"."maybeSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`); - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "maybeSensitive"`); - await queryRunner.query(`ALTER TABLE "meta" ADD "disallowUploadWhenPredictedAsPorn" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "meta" ADD "forceIsSensitiveWhenPredicted" boolean NOT NULL DEFAULT true`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "predictedIsSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`ALTER TABLE "drive_file" ADD "forceIsSensitive" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`CREATE INDEX "IDX_fc2d74a6d7d8b11292a851d8f8" ON "drive_file" ("predictedIsSensitive") `); - } -} diff --git a/packages/backend/migration/1656328812281-ip-2.js b/packages/backend/migration/1656328812281-ip-2.js deleted file mode 100644 index b0ee1ebfc..000000000 --- a/packages/backend/migration/1656328812281-ip-2.js +++ /dev/null @@ -1,13 +0,0 @@ -export class ip21656328812281 { - name = 'ip21656328812281' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_ip" DROP CONSTRAINT "FK_7f7f1c66f48e9a8e18a33bc5150"`); - await queryRunner.query(`ALTER TABLE "meta" ADD "enableIpLogging" boolean NOT NULL DEFAULT false`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableIpLogging"`); - await queryRunner.query(`ALTER TABLE "user_ip" ADD CONSTRAINT "FK_7f7f1c66f48e9a8e18a33bc5150" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); - } -} diff --git a/packages/backend/migration/1656408772602-nsfw-detection-6.js b/packages/backend/migration/1656408772602-nsfw-detection-6.js deleted file mode 100644 index 7ef223a4c..000000000 --- a/packages/backend/migration/1656408772602-nsfw-detection-6.js +++ /dev/null @@ -1,11 +0,0 @@ -export class nsfwDetection61656408772602 { - name = 'nsfwDetection61656408772602' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "enableSensitiveMediaDetectionForVideos" boolean NOT NULL DEFAULT false`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableSensitiveMediaDetectionForVideos"`); - } -} diff --git a/packages/backend/migration/1656772790599-user-moderation-note.js b/packages/backend/migration/1656772790599-user-moderation-note.js deleted file mode 100644 index 133bcffe1..000000000 --- a/packages/backend/migration/1656772790599-user-moderation-note.js +++ /dev/null @@ -1,11 +0,0 @@ -export class userModerationNote1656772790599 { - name = 'userModerationNote1656772790599' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "moderationNote" character varying(8192) NOT NULL DEFAULT ''`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "moderationNote"`); - } -} diff --git a/packages/backend/migration/1657346559800-active-email-validation.js b/packages/backend/migration/1657346559800-active-email-validation.js deleted file mode 100644 index f8e03eeb0..000000000 --- a/packages/backend/migration/1657346559800-active-email-validation.js +++ /dev/null @@ -1,11 +0,0 @@ -export class activeEmailValidation1657346559800 { - name = 'activeEmailValidation1657346559800' - - async up(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" ADD "enableActiveEmailValidation" boolean NOT NULL DEFAULT true`); - } - - async down(queryRunner) { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableActiveEmailValidation"`); - } -} diff --git a/packages/backend/nsfw-model/group1-shard1of6 b/packages/backend/nsfw-model/group1-shard1of6 deleted file mode 100644 index b91a8fad3..000000000 Binary files a/packages/backend/nsfw-model/group1-shard1of6 and /dev/null differ diff --git a/packages/backend/nsfw-model/group1-shard2of6 b/packages/backend/nsfw-model/group1-shard2of6 deleted file mode 100644 index 357cc2167..000000000 --- a/packages/backend/nsfw-model/group1-shard2of6 +++ /dev/null @@ -1,2 +0,0 @@ -yswvmxwqxewuyyvppqrn}npom}sTmurtqujwnkrzvstslqprmuxkx}mnvu}wvusuvuvxqvroxp|vvhvyxspvrwwkpufzswpt|tr{mm}rlntuoxxurxqprquzskvlvpryzuvoor\kwr{sv|uyspuyfvxsqaqx}qxontsonvrqpoxxwv{y{yjqqfv~t{{otlxoxslqunrsomsys^vnsrqunsyupiqiyjnt{xt}zwnpryuthwpqlyiossmwz^trqvuvqmNgfvqnpz{y{rqxrnw}qwby}onwwvx}qwlwwwxsssys^tvtqzsxpiyknvk|qwvvww~uykxyxoyoxnmwzkt{vs|vovusr{pojuupvw~muryuz|to{}}at_tcs|rw{tzxqf`hrylk|~xqjtztrt}jpxrv|{|zws}{~sv|mxe]z}xovsrxuoppi}}lyd|vzvsztsuyx}u}hmlvupr~sz{vuuvtxxvvp{su{}}oiwvtqt{vt{xuzspztppp|sxruzytxvwrtslx}|swv~mwrwwuvujvmt~wvzzsrpsrqwyqutpwppu|q|tsuuqt|jlxvx{xwuxrgv{vqx~{oruss{ixvnwqrjrtpxwupxrnqtpopqornzt~xuylqtrt{qqwvzyvquukhxtoq|t}ptmvtv|r~}vvzplpsspvqtjpt{~qmxuttr{|s}vvoq{ytvthxvxqtsoxtkoqqzutwtwtn{lvj}zsskvmnxryuvglitqvvmsvyxvvvvqujunvptkwqwrqmmwzwmxuy|rq|}tyrpuvvhktztxroyi|tywuryrpoprwpfvy~wxkxvyxz~gshttv{ptxwuuvhokpspwomrtrsurvqtu}uy~rlztoq|sxurhvp~rspjrxxojzztlhtmeznswxzz}zrt{jtuowyvrqnx|wvu|tpnylsu}pv}qouxtsqxszk}nojspks{izuqlqyjvrzqupvot|tycprusnxrmypwestx}hnuwmzwrxymryswtwlsovninr|tturuypnuoo~nootysbqtqt\oqowzsnmy}}xiw{rsrsvzlpppz|tupz{wrwspqztxrwztszpzvxuuz{s}nt}}qrqwzytspowko||r}w|pq|royzxut}lyysts}}s{xqpxnswt|qt|yuxtkymur~pmzzektwtvxxuq~ztqxtt|tsuizz~vqrvoyrynsvxqrzmvsuhrozy{x|wwvvrzm{lrcttwuwsxyyprrzv}{yrultturgtsjnosrxthvn|zwotxt||vpoiue|`qytvqloorstuyujvjry|phunpxohynxvw`_{x|tzqovxtrru{sgukntkrqu}swh{{}x~wQx~xfsmqzxry{x~Hro~jsr{srrivx~lryqlzppq|grt[x~us{mp{wuqw~ozsysopkwuonzwuzxrqts}pqupuvvxvotwz|pn~wqwo{wszxxttmzxlupmpn}tryvndvk`UowrcqymescsqjqweYtdlovPtnaiyune]nceihYq^hrc^nodeq]jirhgpb}ienmm\lhpl]h[rpuejtdZmlepipekttnenlfWj`jren]`tkrpfuhhvrmmog{nwjzkju_ihaingmalkgiekejtXgamcjcpqwrifvj\jLfYdgnnbgejlceosnnosqjnYkjj`rqpeijpkefom|f{ji`vnpzzn_qqj]hdgagzZmjrronq_nbkctgiiiqcnikkbtblmzscezqiqklfsoakhldccjjl^flgncc_qqdiwmjppqdgmii^d_pdjbgjiijeeq`zqjiqpjdrriciekm_epgvqw^]efojwaeV_ndnu_rnij_doj]q~bcof`pdf\e^pstg_hnpdkmjghtqphljgsnbojhrekjrlsmRccgmdiackafolxaucm^b_d_thvmlnkihdqedr`_bgjjndcncdei_R^mdkmpkfreo`ildbxjmedpumbkoocolln^krkfj_ev[egqi`fl`{halfrdqqr{zd^hgliw`bercd_oo^mpqkwcivhbinfjqclbuqqmeippf[cqacald^afegioyngncjriwhmlsmhpill^[n\cpisxkdmsgoqfpu}tg]qvgujjfnl_W\dtnumjhfjkatoe_qalu}mimckcstibrfhbwqhpkhkhyonaz|plkkcmpn`nmqdfmomgmpfuudjcpjcamohfejZ~hjj\_gti]nsbtqgbevKiqok_nc{doZplandcdhmjoo`qggwheXk^fda_cqi`jn\drmnk]wagdobcwexmdgbqgdmlavv^b^`ejakcmniehdrhrosnffy_mk^vtywfdnanbrhnlrpvdmazphmicshasikmbl`ikntfd`fgjtpbolldxgmmq_hYrrtfewgkgogl|egunlcc_`_cv_v^ndhznqgjmnwXmlm^lgpX`bbSjelkcnmirji]idgizupvZ]`kl`jkehogrrt`jyrnlndareuyfni^wjldvfejpglammvoaeolmdfphk_oelhscnllyfnm^lcskief^qceckYgpdsojfiknc_qkffkgtj|unnkefduafqkmfluybqiq|kqfubblkhmnfcnlhoojqlrikptnbltlq_mpnappioyfkghir_pgdkdoncasqjinpffikkpciodJjll_tgf`ohomivhhrrhZhkhgikqmnohw{ulnfkollmikktfuawbicsgteuqhdfbpkrsfa}rj[ngjjkljjpqim`okqfjifgjpnme^ikpsmnckecngCjhrXjCbkkoelr}phfafqwqdmjenqphxjjfoKptextofkgbinYfohynrq\fg|kihti~Uhrwzohcrlqdo^k]Tg]mwipjnjlnZnf^kqekqupbffNf`bmehafmfhpco}khiUU\luafsrudlmnq~imrjytapgci~liri_pkylj~`wl[vhqdhYiamgokjd_ufgadahjr|qfulqo`f`q`gylfknpsimmerhmruz`lfbhqiiebpXfltaeiah~majqhgffdmjckuuol~foaccnkrkunm}mniqsopb`gjximqjqmlvfwl`ggjskspjhheaci\eofrwlmek`dpcgdds`apolgkraedrp~ha{hoaclnsokhTmsondnh`hjnmZ[vx_lw]Zi^l[tgkqk`xpj~bhUeadkollnlrYbwjofigYfgocxsmjijh[ihkenpliXn_^klmmklspagulcojttrr_joacgkpjgnkcdllh_othhbjmhvpasaampoghciaphhjjmg}lej]mdifqgfdneojkqqnmllmfimkmq]iikhognenjjpj^fflWfcm_ibikimneijmhsiszdqrjjkmatdomkfkkoshgothse{`msoichmqnbsm\lmrjrsnlnhpoj{e|nvg{}{tgglajg`skcphqgvdqcbhkpohhkbsdbxnoeepmktjjqafinlendfkw^k__emihufwpkpX`uepfebmknisimkggwbgkdrenipwenfimt_qj{lj`vseopjhvolZa_{gjjppamkgipslkldn`jufljfgfjlntfmhocskjorkcnfoepkxfpvsrofmehhkfkntenqpjikokpmnibglolbswpmvqmgmjrzgemiotfepphkd_gfeiteqicculfhjhkimeppj}nnjkfqfqdockoffkmip`nwemeldfkffullklhhmpkkckywisrtoactznzenzumnmfvmlidyco|matokixjikmel]malsrwuh{jnmfokkheklfeahek^lwhuvf^gecyoolmhIpchejdnefj^qt{[mmj`orc_cgogkvlpjikma[oesqdckjhoeccsktbo{ggmkjhdalggjgfg]mene[givjjhdgeyhehdhqnkiqhegnokqnocxgyorihcrsbpuqnmbjlhqjhifjofksrllijotpdrsimj^otblhetdm[lpjkdjkjhilleirpjrhrwdqlnnhj]rgidinoifkjqnhfrkkejjlrogfnbhegghikphjjsnilkg`gctihgjfhvkkkpnqdlknaerV`rm\blkm`hrlcesfkaorkllrdjfjhijncirjmmoingdctubilt_klg`flp`_ptkgqnqjigffddoijji_meblugqbijkn`yli`jujkhagxcbbjikkdfrdrfnvrpml_ocqipt_ktsiggSwmmYuZbsfd~pqzptbr{jeoezfodi`vpYljvf=kgqvhhihuxmuafsmltliek]Zzyopuhqoptnnqlq^lrtlmlglsrslmgYgmtjjt^^eqckb^ml\rpjpe^gennlijnjgninNlkncvcmoZoomnkw^wl|`dghkxgenpysjdkeZfcbdqlppjnuolxheokfkcgrko`anplfajbribgpelaflotilfkeycefomhbqdmmgmjflcfelanvalofljagrmhp[p^umyd{k]lfzibXvnimiimljikhgxgnfiee\enncentpm[n`uidtk]r_u_gnvkpVpVc}lXhjaslR~_gkIZlnpztqbvaaxxdfpEkK}hhn]dfeaUidn]QbfeleqodWqfjneUOUfpmcbhrqzhhk`tpYhcnXwsigailm^bq^af_Pa\T/]p[xlbll_nmi]_mnfhelelcwbnam|_h]cnujhijiWvclmXrntgkc|VruktPsonlfshjnkmpmbuhllxl|`_cd|mfocgophihmjrethmyo{sobsfoajstrnkobwm_cnhrgkmujZ`wlc_woigvoppu_\brec|qedupoehtiongrq[qyrUxezf`gmivkecphosnyujqelaopmjjuqemelmfhugts}snhsmt`lqkj_klivyzvoRjxiksfqj\jkrmojnekr`_hjxmogbhimxadgxmvmqiojmeeyafostjxgoovjdfm{afhsjkmmsrpwh\ggjiobjlophg[dikglllipsnqk\gk_Zinrkemjn_hmdfsrlo]ilfcgjXymgmjskphfdhbpxtlhejnpd_hiRgsqevhg_hegghikcpdtlecqncjgouklljjsnmh{kqkqufnkeyeciln_heciiooklirtjlfs]ojqhgimdjjfmfnXfomgZpcbmbmomrdhtmrfgrfhjfhlu`prvcfwngblmh^nhmipittympkmgmikkfsbnmgesgfaqbngkdrngrssefstsuedufbu~qkjoueqebvk`gdkrmkgiliynxd{r`njmvmpjsqihibZkkwocgjfpjoomejikiothkqewchohjpo]mhzkglekxukgudkhghimscsdrskoscmtk_qdeThdqkn[}dtf^|nfxmjWfrv`_dcgkbgp`csiZpmjoshiobmtagkohsha^f[`\syrhkq^Pgck_fim`kji{upmio{csdjp_gmbikkfoknnthqkbi_kpm`|mgjx_j_idom\cnf}ihd`kpmpkrg}djenoixm^okgkk_mhgo`d`o^gnjkwflbkhjgpjgohl_smfggxnjiutruwlczqeicpbdpmyn`pvdlhhdnwkdkroghojbo{gpihn`jecqlyhlsgnnkunndcilldgff^mgvejcojirh_jopkmmrhrgompjlkb{flpvlgrqnmxjhurh`aknnhWkhnb}}mlpjvslf_hjf`a`gningarihmhtwouRhjmmmlplydcqfoVdlniwsnhmosmtoghhgdgmq_jqfj^huigkiugcdhfWnodllibtcifvqZymuithldnncW^\dqpapi^waebph^cskidnp~rvniakeoodXstOj^xtT\dq^sqlukmk\lspskf_vtc_dumqveZ^laojr\i]gpelkfljapltdXmtpbhkanoofe]fYrhukuMoidneiWl^^qrhbpoej\j{ivllsjfhelY`vd\vsunckmindYmhhdfofjftoqsndncolfvmkzhlidergxebnkhgpe{k\ciifpklhk`jmmmgfpjokdlkjwjepllleqkjjwpkruxommknindk_flhftgpsikkjathmt`iminikkqgodgbkalldrbokdhmmjklgjjtohehloTexpkomikj|]ctkhhrouoXmp[jmqoakmrddqei^okfkijfpdmkjifh`sbriq]dgkjgYhlpohlvviubmdwoddgkZdvlnobi`[srypdf]YxoiakhSgdhceqiqfgiiddbeirc_bcdmmedpjknf{}xhk[m\sTknewygoXmsdimjcske|kkpvtZt\_jnh^fqrumgefkiwpnddrmhpluj^lldirmoljd\elqssqojmwjYynnaedhb]i`UZqkiexcrmgagijqvfgop~hgh]qb\hf|oit]h|wft~fkwrif[mkdcgmk]pwh{nhdvtgKfjsgimdiijiajookkmcggrnhmvffxqkhmi]q_jlvZndkovbmihieigikypooscjeowglr]mikjnhjqqd`]kgurjgfanoqhjombiojfhusxthblrnigmhiimkkaakararhv_em^inbogfjilnoekeoinhx_qoedvhnnnmkfyandkaSjbm}tivfqhrgeslsizrrjn`{v~p]bojqhkdmgltlsieeohvklnhahl^stxgcjrx][dZdkmfekjsn[^gguxodhjevoZxdpfm^e^zg`oi`genm`fongqlarmafkhommiqeweoJcdngomoylmngutmnkjgtckhjrqa_svllbknlkfldqggjlnevhyiare_vfjr^kkbroo`fo_v]fhwxolhlvqcrkqavfgnhhinZirfrjkj_uhhpqehmrslmlyxsfmhgbmnk]rkcgietewjlltnkrmihsgfsjihnrksrleimhrpidhgfvlejlrkphcgg^hxmkqntrql_kjjlspsstf~flrirrdpg|ilpgbibidfkpvni~opmelkavmpiainkinnqltkmmnnoofsnaflsmkifdohfmjlngnekjghfepclgrljptfvsaphn]jngjjocpdnjb^vhmkmkkljmqrsmjpghofoimppd]qmdfomgitmmjn_nrflbrxmnrlfhkpmjeikudpni[dmiqzofhf|oiimgmgmmh[^swkfhkrjxdkbcqusjlk`eh~gpelmmhf~`rug\gnrm`flmssfwjjiwdbljhonjhuddelmvjknm{ukhfgmvickilhfol_pojgsfrlmkk`hapizpbdxka{pwsglh]ko^dkjchctpj_vio{kmjnokcgphukilsj}hq^ujixpfnrmpr`zeqolglhmp`rqxleijrgaumtbxlcgdrmfrkm]bmpi_kfoefsqg`emQsjkhjwfv`hfcfLh`izvjmdeymtb}knncel}qkpaCluNxgps@k_asc^gomnotcgqgneewt`]{lwesnm~nlkhlkcnpUrnwto`zk]kfncqfUxtm_kxjemqbebgwekwpleqwgapmikrlyWkqsHmnnwo]pv^i\hmu_ppknnqdkkfmjdscja{hnujim[lbijkiooiobyd]teutigpalesnixiikutgkmpcmiihh~r|tjxiicidsg]ghlq[kluvuyplmiftmif}tilemkfqebjl]hdsej_lrclgvjbongyjncnhsf\emhjggsecssgirfgyciqmj~kkhpifcqflxaygkmlmrdskfaqieq|umjrhvioklligmjnmhpakgumgqbmohgkcelruwdflngkrjfsrs]Qffmf^cnf_glklovodippija]rkoiizfffnitcgrvmjvrfeqtdhiedgknrmyhejdothgkhdPnos_checfkmhtheme^gscgkdjhlrjmojhklqijkijiemuibiojpxfbtfhfmhhdnefvhkejktffoh`qgfsvbil^ojfmo{rnksrojgji{hkchrlllnnjmfjafkiujrpnnjodvjfoolufddmegkmkaepipmqpr`li~hsohsglnzkmrdcqinUhrWkgptbvgctgf]hmjSmtty^noiplmkjntknijjvlinndccglbhwn|fqvgobpdh]^khf`^sqxpqbhqilqvdbljxyqghicadohi{pk}bi_[hjhqgutjbojrd^pq\_icmfqwbfgbiycscjdkltxdl^`iexlhcenoqhmkcmbmsmgadublfjwmrkenkhniocogqjhcflX_ldjiosld|fptngfovkcondpwcgnnl[lhknxtcgmin^ehlmquq]mrdlcwd`qtnjhmoqroofrpqn\opk\mlionpmn`kigivdrckmulomqhp`qphril~Ywqgmikjeshhjfbhklhod^lhikcnooqmhRidccgddcgkmjmebxrscjeylafkpqggZ}gmcmngfnihliicm\`hkdgzggulgmullgck_lfhwqrUjnlolnfgrgiwjiirekvibikpqRketzhn{^ssfgjpgkemvjgjpsmqelrjdhonekkfkmocjhlfjrolwuihtshlisnjeinhj}ljheimywmocm{ndrppll{lop`amohkffipsnakowcdldpenhojijk{`xgneqinlfkafkhfemtemlspqlhodkpo_isdnuhkfmjtomhlq_ogcj\nerkekqpqpeu{whfimqfxkf}flpgkhczk]ljqohthneigdktnh\n\bjpynikdye`eashidjgdddfg`}hgi{[bNpd^sdoigttdumoyhrnrYjsnj_mk[ihhTvrpykilYvYapkgmWnyhnhg|Wpkhamwl]kqd^v^mjndpmmeqla`k\icmymlhghlpakbhk^kkkffurbgpf_hvdrtjfdjdp|olzfehrwmbrrzfinwynqkW`morrphuub^hmh\ll_oeumphhtrskrzjnpmtfkaotogro[ucrrkkmm`lqzml{bqoei^mkskrckkjjbckmcnhk^u\uhjgxkz{sulijR^alpegibkti[^in|jepcrcolxmlnmvk{gmoiurfxfztegmisio\nufrdgchjomlrnwshsqprjplpsuh\wdlesiyzmhkpp~iki|ijnm[ncnuckjoiug^fz_hgtd{tescgmilpnjmqlsn`jmdiglfdjkflqeihrflmqxukiknimgiglgtmjjiirmilkmjnalwqcbrjgekoglciwldimjiirqsdlgsifnpdirifbi`flf`lgirpjmqn_ilslkrkebckqgokjcjflljnkdcvptpnpo{`nhl|fm`pcxlpfkrearbajguDchi}idIevmlofajlmg{|qpdjlj`nmci_fhivsfreocnKY~lrirXsixwlmomp]pmardmmjok[dmF`olftlhfvhoocbjinv|cmrbmknp^axs^lhpiilp_kko`kmtfetkRgWTo~one~honvpqxoio_ijighnhpmnuslmjllgbmhljbkkicsblieokewnylolhifdnhekiqqhmgsgjvkjpinitkndaafjjfikrklmmrvepflmhmmlhikkijlqkmhf`kjhfmbe_gfjkfmlndskmhmkknickfdromp`sjpmierpzoelilbnnpuofiroeafjxbglainordowfj^dpnrxcfWjzqj`lpgfcpuehwkaqmRopjjblpjidlirdnqd`ivjperikhasdnt`fitvkomnunjujcwqtyqnirlhq_kopjesqcxjslgflgj_irfofnnkejh~bmjnfkjcbkrroqmfbfkyv[elgsmibnx_oqo`hniboxdblpNoggmfhhfigfin`ljcRchjajbtxidukg}lu{pfglfhpnqhcgrpmolieoepgpnelpkli_zfuaefnoenhfl_cxfmfdzmnkhthsflzgrplmNczvisvhjl{cimgodjmVjrlkhsgqhnalhnoejf]nnasragqmmggcisiZpwkolfgnq^`emsfpg~lexv`bkihhknhrthh[hoipnlomethoiqlbhphhmsjjnibfirsk`ojor^Zdhoghhnegcifhiqyj[pmirn|sdyumvpknokcuuugjrmfvie}kvljczehjjfnjdecfcitjn_klm_t^ifhkco]rhqklbhfii`^^nlhsdpldhthdfubwlkwWccbkxtm]jm|oqnsxdjmeqvfc_pifWhtohqnrnhmtnlnofgjmYclw_`hikw`kpmawn`fpoeebmlbpppeo[f^kUsjlsinggisk}hndjnbgjaqtjwnqpeojhrgYprfjbibkckhnimmicomemY|jnncjylnoikf]ccpsfdfvlpisn^fshyakilfkhwnjrckllcdihs]Ruukeefslomzhsetlrlwrdrjm|dgtmgmurtqvkaiijchkfphcnrnmqeaZ_cepglcwtratg``ckfgtmujbZmlgnwgcsqdirhslrgehqthmphcsjrrgbmfffko}|ewgy[llpcqjeqdknk}lgkjffdrkjngcpjfpnpzeikkyrikkkm|_jl`phftkiqbreqvgwekmngkehep^xdklcdcusblomtbmalcoqfafkwfmgfc{gkzjwgkc_`i|njphhovnywmjtjgshbf]gjdmaslmobnjqbeNw`yji_lije^axvmooqlohlivllibe`_kqchiaelxm[qwuojlih`cWfjinzilrnYfXkcsnvj`mofketbdflcqqkchbfmi_q`et^`nnkukohq]nqkhXosnnfojphd`xmhloi_vnpdfoedm`_hcefeckplik\pojd_pc^yi}chjlksvzjiq`Vpql^wsfgdoblwe]jppof\]{peeheUpjqkxitzczpgjbqmbxnhirlillpacdn^cpgbribjvkloadg`sfhfbooeqorqekpgmyeipkgiiwkmdthshkoleodilras[bhenibfhght{bodllqmfrqlmjmfowneqi_lidoghnsjnfvp_nomdkgfdjmjkijmeij]rpso`jgingrbgglbcoouqhn_`ldhkhjchleijfqudakifdZatarmtlsfqrheynekZwifdveghhiqjiljinumnifsijsqbhsiroh^lmcmnvq^ghqfkrmhgkkfakqfnp_pffhjno`vfod_ppfofhm`whc|kgrgflshfnaihixstmk[ihmmgnlkaichqko\ctmnkih_mokjqnk\qsiminwgomdcsiojmiZp`arkdokmpjejolhifjmork}ocymqfx|Yom[gi]xgHfnehoihd]ilmkuk]djkmfo{ehwSebrhqhr]jemkhlkmhig[hpjimmdlrfhhbqNkfrrgmgldgruw{tdnddd{cljjgprrlgbnvvjifpt{oloknbgorgxliiplflntkmhnkrjknmpjebgkmfkojonkgi{ncbnejmnuqmgithblamskodvmeojfkfdjjlorvrb_joiselmtmkmljjmthmjohomn]qiri_okhdtob[joZreqmo^hs_mqfneeq_ojjueyelxlpqhjb``dnl_{lxncjmlqsb[hgn`bdugknjkchjnkdlXzemp_bmpticwjdrcgUehojspekoqabihklhjjfeilmvcqslgZknsb]lqd[hidmknmwf{f^ebjigcojprlcpbmfp{nmansiijjSdsjqjdbapqj_jhlhphocljpibqit_rbpjYjfkqfirh`iofljnlpjiv{dcghplehpiiqqbpjiasWlckjscug_jmjjpVfo`bulqetp_gdljshlroqcfdbordom_sbijebhjrswgmu`nlg{uokxiurwmfxaggjahngwfikd~xjfgxeoenatrhdeq`opagetmctggjg]hjufhg_cmUj_gjemhcnshjtelx^^fimcp`pipo_ymWislniem_ch|rl[WQgliald^aaqndepupcwhrfhu`oibjTiinuolhob{bbdiaEewc`\j[phjc\ohgnithfmtssVpkcqfijaiqrZbipxXoajgYhlkgdollcmrimfxmdeqqurdrgdy|laex_ogtpe[ievuotqw`splb]ytk]elin{a_sgaeYejt|n|`hmp[uikmqdcd\rr^fjpxZciojnq`nhsl`sjslqpv[jgd{`nmnpl`eemeb_uaiijfomlotkjbgeiohmunfhqjgaigmfgnilxmskhleflvwnj_owejpyokesqb^btw{{mm~ftgjcnptmenmrkprqkl_adkofnsk\ihbjetkgwncpngxeghqhgghhiin_^kjtq{esigxoklskkxNsingbqt_h^gqu~sihg^leh{mntcjkeqo^lt,ldnfjmXkhranupfcioipdXokfypfq^xpujgmjnotdopc|skkcob{djofjo_`dlh\m][}e?1Vh\usmta_``nodjeodnngegj/des}dppemlkplphlhinrfjiewlhojfaXyl^YnqsmplrzplmbevbdmzhlgablgmtrxqsnpcbP]fmfvna{bdrfiqu]dh^cuk}l\hc\pDymgl]hi\yrkvh`tghbwrr\ibhdeijhgnilifqxprkhhsmpbnwj`jjYxoiujrlhoh{knftpzfmljtdfp_jgp_ej]ity[tYj_ojjepfibeqqqkeegrungblllUkjflhl`nmtn`nikkkeih]`ccdgofkqduhdmdegra_dhgbvsqdjc|ijamthfgrinzohcalemcnr_lgkgflhlr_fjnxlgmm`Wgcmphejomunlxtrhgkkhdohmoamjekhthpkirokwmxhihbpjii{fkdoetfpojhpjlmpvrheije{joj`fqonceifmbfhoedojlcjgimdtgljinncrfmigllfmgsymlrlfnghjchsipprnfdh{d^h^ujolo\rgemkngmviyVkpelgjjdwftqe}e[mrbhbZilgb]hhfi`hflpoewemfllmdehripVy^gq}jgkjvsild[gtk\oc^qeuwafrjdq[tukhg{^bjul^c`uqgcokc\lkfqkh_bruZ^kzkwyotY_oXpopv[ewkgi{uf_nh`wjhav_pdcfninrnihcoqjvwd{m^popjqfg\mljnbeRglphcapefmgotkqXtjoejcltpejngcpjZkgfrkYqdruvyinqqurpaUlvrghqhulgYhphjjjeyhrolhlptmbxidwfsejmai^cpif`mwelzlprtq^]qnpahVhbikg]pihckxoqqkq_azqpd|pmgspbpqdfbfrpfiiog}mcpozmqofgeekliifmlhzgdomsolioiplmkYhsjqgfkikjvfrhgheemlq_ormerkqodojeanhmugolpzgdnjmmrkjlaennb`dg_jrkkun`spknqfssqgkhlkhaojiqcipmgjh`qegrotnloapkpbeldfmhmgpjdrndpjoehpjj_tsnnipmhekmbngmbopwlnmn|l\jr[shxkkVjqxp]dihtjzldcpsmojwpqtdnUidgcdlpfgfudmclo\ycmlpnlqdfjqboaqb^gkjnyWvqfiflkfhnnigjgickmrgj^^enmbglkfitjinrms^pfmrXjmt`fjhanpamljmielqEhjhndmfdofqenqnkihnbmvmeugbhdyjhqmggilkfjtgohlnqpkkugjk{qwqfjfbif_rjgjifrlkkglonjntob]ilDklpjkUlekbniqklt~emxuaqmmtrzslqlno\z}fiktj][gpOfrxg{uudmorylpfqxc]^mekumdzroqtc`yirli_dghpilliellerommx`etmesbj\ekt_mirgutnphjqnjoeen_ntoengbj^|qdikpKwk`pmsfcmqdmlfXlflj_ugqkldnsucchgkfp}sneofkkrkhrojmshnphvhuokrqihrisgbipnbnnqijhijppphfhpolmmzlguprkiqiqwoofojhn|qkndkbwmigbpjbutlomohgrklikgcqkgdddmtbrioockklwjvdlimjltfcjifnompqodgjbelopbiwqrkmkiffdgkgsmixbd^hhwsojkigklhbjpbpnpsllcikkrqr|hrhb`fofdYjsnuxtah[iknecdagjh[mkvfoqfcnkggb[j]hgsugklkndZjhkogbsxepjlu[odcpgi{r{alnmalzqjnmhwfli{arhnmVbogpqcohiqrdfj_qj|kijuhdjmsbfrajebjfcl^f]^mfhuoi]yqhmrmZ`bjbhljmquyxjulkomnntmZahtupqbgqgaacjefnuupfywydvtikfffufou\ftp~nfkrdk_uikj[[{_mjdmv`pfxo[{ojgkjrcmmkpjpgsrmgpmmukxeqgtgiisnxk^gllchsa{cgjecen^gtdeksltn`phsaij^oskkfelilbphknjZnpqlliorossmlhfdqmlcbletqbqulejqiiYetncfnlvlan[egmtekovnmnkn^riglqbnhmnq|imjmr_mgnn`gbnqgjjkcidxkxedlcckzqpkhnmboi}fdbelfvojhihajfqnsf{ggsnfb|litiojh^mtcgkujhwdnhiggdtnqosehworhotjdfmrbgjinhlYqdhvkjullafoheamkinlelksqfjujeoniaashdqrqdj~Utujdlymp`srqeekhmphllkgogmeudlhytsaydlhpenljusietrdsfk_nfbk`{nil`Ktr^`blbtmo\bpoddllpoYddTjdgjtd^cgsSgYgdqc[njihhihcgni\{bhiYnibiureqhiotrno`rek~xh]glpusphpb[giewxYgrksrifewonjmbmqo[iwy`gdEahaf^gmhplthjlnjgq,lnbomniouoncjtfghejcgwgll\ifskq]apahpfdoyulisNqykTq|oljdgfcjp_nkzziepqvk]sqddbup{\nfTlurcpxjgqu|jkgfjdhmsqypjp~nqigojhwg}kcjkkeufbgvlfkfayckbgjokics^clqlmjclliol`bonpbbikfokuackfmnkhdlghktmihhpkmssqleliiXivmMjfbiklfnqxoivfnfl]nsmjrdlmujqpekiolljdl[lggeqgjcpmjcmghb`plhfzZhgpkknjomobgjea]aophdnckovgaiojqsughmwijpnqnmgnefktp^kisvdklWzfmgpmq_mfdmjdooyiz]mlgsmd]j{`egnvgtpk|hhXqhli_gfkjieaifr^oisbioijlackrghkle_abtgjhstr_bo}avj~n^qrpb{pxlf^rw[@mkumcxhvrou[knliddYvtnu~`dtownWmyrZgoqnsabjcsj\Llsptro|rgkglnijLeegl]`f_qgqNjnlv`egi]kqcLqabcinwpj~omrUzcWrkb^;Vjf^qnnkshorjdollsklfilmhn[lgWnrklbkimgighdvraehgpn^gcasr[goopgsmenic]Qdrejaiplighnr\yjamgknloohfgmkehdlgjmrqtjtukcpunmqnmecpqhhgcntmeiemvpdfkmlxfcfnhkhh``dfTmhmhdjenoeqoos]qgpaTqnj_t^{pbp[`jinslefWck_forqojwdnwnYcomaago\nods_^mcnarlmhTquz|mfSklilsikimwjkjblq{xhlbndyfamf]jvkfm_in{x`rowbi`qfmc_cwuboisoonpdktndwou{sldhlffinehn`mgzboxkepfyktp_oiulkwdjmchjjdsmemjk\gmeenfjilndlfifjfgonsmljbnieup`ukilmg~e}_e`olykogsfrZrmtqojpflphrthguqgugjtmjphnonehhhhyw]qgighdeaw]kxgngqyhifd[r^lihroyqrnsahijqcfctacmmrmpjoj_pg\oajqv^fVjmiseohmjpiqgl`hqpmjjpoujgk_i`pvghqmksqooUhrhagahklwgljwemjrpfbmjwgjfo^mXygajpjbeh_hqjsasrlkllpgfgmaohtpwemibsnwevshgohtu]dpwhjf^xularnaTm_kntat^fktfjl[sjcpho]ld_Cimwvnfgnghdgekgjl^edxkojpoib{fnq`gruhkyfjimheutpi[lnmjoo`mlrbrmdbggiiiqmVdobXpevnWvhbmlks^zkljjhfyUZ_lmreea`hsjsnchejkjud`yhaerdhqmuqgrstpqcnnckxeiYii^evgbepqyusnrgdijpmbhhuu{ocvqnbn]rhgofqh}glamnjtdbiljtolrijklsel{^limioqm]khwknrh^ikkrggmjipgqgcmrpfogtn_lmkdxieRve]usnqpfjpcnnrme`hihntjacIesUaaekjjakqecfb]lgiyeodenk[cjcbbm\]T_hgvOdoruriVm`S_pViRaenwbhpknacno|gkjnojkce]eZjctgw~imnfryigmj^jgSgr|oefclyZkfmnrmTujo_gebyfao{\sdnkpgv\tYhz~dmg[RutuxBekdpcn\eopkkrsgigdiiiselfo_flykffqnY[eqhSkejeteWmkdhhigujnilvinqw^qdaaxksyg[yefnlfe{[MigiYg}Wa_imnrqejm^l\gfnhwksqkd`igdvad_Vmgtminj\Ycigdqu`btddfumDawo`\tp[plocklvgmXvtkja`mgdtjh{vic_mrmw_moqcbdodl\kpegopqdgnqc|fjfjhlVycnaolavqf^bqs\Wqjkabxgve{qc`k{xtvfnajskfXuqexa]jdw^cvi``bqhpkob_f_egjmfhjkfuo`glip}plk|dmigmksig[mmg]f^vetkg`wfqzhdmmkiqovlqkpfpbdhpmcmlskktfjxya`lMritgf[mnxj^cgbgfpjilqgcwsmkeo_kSsqjq`epjlngbl`hbjuqokq`ihdpdcgnllye^pppv_zlmghmnhihbfnmignpkvwmhmmekgoeodlngeihchjqkmplghlmikekkovkflhkblqno|k`mqiqtjglojegmo{nngmeffgiaalllnpliso|nllpirihknqgjkkmbgcgoijqnghguhkrjqmljkti|llnhfmzmviohrulepu_`wgjig`MvnnnUqh_bg_mrktvivfdXlkx^_jkqU]_gi`f_jsf`Znmx\vnpfglpqewhdUmb]wPoklwjkwfnojX`svfhhqggmgNkdxkeadl~\gmnfliivjhswuOonjfwuaqnoypnl^e]ogKnTxfUkogvohthbrchdaw\akhlex]aodkfgd`cgbmboogo`kremplbjlighpdkgkVZ^hjgtpr\hrpvkemaehfdn^_kewrtv\dhb`cu|jhpinmxlleiebalodzpww}hbmk^skkgqnW_hozelkt}Vbixfvohbaofjilbiknqghclg{s``zdaqhjufhklpllpWhadglvrvj}fxjkklyen?mhifce^h{bdcfgfftkrfuqthefuntilmi`llzs_gffxyknlYu^`opffncaabksUbjv_io_jsm[flYhsjtinuor]pdqtehojdtim`nb]]zye`frghmdk`Zfind|h\prf}kct\jlhinufljchisymPphykjhabknhjilcnvqnjjxgxgg^lanefn^sllxnXbj\ddlvjp^kbtWvdvu[xjsniqhmijodghfjehk]nepj^}wjhbkkjwjshbhjtZhuwgxjl`_bhjqfjiqmsjrffonn}fnidrknnekjuoh[_oqfyspsyrtkiupmklmz]khpfcxl_moaju`k~vlraokmektlesvhvhki^umnelileelh]c`gi^iofgkcXbkj_goxgiqkipi_okpg\eqvfWtknnberjZdtknksfbzouhcm]m[oj_vs_nextlrhoqtfhhoicqoihgdjk{_kxnojk|_kqkirljmnglljqomlnjprtkdueoemgegalikmlrhbfhW`igaigdufpijcgrrupnmenncrglcgmegpsfopjhqiTqbx_gmmk_kojjpdcghsijrYK^hhplehsmqjZe\|p`shc^ng_o]Jn`iXublgqcfwkgkibmalnuldofxp`tQoonflmfglvmfqargqglnkcppyvhciscuwta}s`dfoiisblfedqc_^toa[^ZnyilkefgqolfsdrfjhZ]sdgZpkpvdwndsgVccpwlrfh_rqqnotikpcigprrecjxphhohoxqfskkbjdifecjdvwinn~j{eisilkovllkgnpjj^cehrfmjqnhqopmlrfrellab`mjjhpjlmssoijgtmjqhofkarqotjlhlqfokigohzkolmleqjqdjjbjkoe{oklvln^oqrgo|dbcb]eecfhjooddnjj~ogpejmYlgmlehsumri^nnmgglw`oobcejd`miokzn|genszkbqpme^jkg^_izwhnb_hyonfghpundmho]ujgnzZr[^htbqkefgpcb_joXYcdhufsxkph`scwduecn`c[_i``thpuougfs|mvg_ggoghnfxqjji}tgjnmnpinfkdqyockprikhmkmlodisb`bkfwmjjgfsltdasnoddjuclnjghtns`lqkhezs[upiefdageddc\hgjqnhwsh_fehol_fm]mliwmqnjeonkofrsdcgf_Yufiilqoryqkhvdhgkn]yfplfpeui`kmokgh}etqyqhoptflhtvk`qmobhakxcfmsxpfnmbrlcllji]njpkogonc_ilairhkgnmbjmgjmpkfgrmsoqispemhgkctcintpwk`xphalickuhjncchkei{nyvcgeYkldczqfp]psbkwcfuzwp~`eqqyhg~crvf`S{oahg^dk^Zyqaigj|hgqfdm`dekcX\hcpcrc{uijbyqd]{coeqay_heht@irhhicYshkfpeeo^fg_nppeaniOlv{npr`agmabhip}xV|bdk^jfgc[omufp~]}lxkchjkgcikfxkmkTcnwnh`lr_rpoctieipneponnelitiwrlqGmm|lnhvXywmgphlgckp_kecovheprlirgijjlzplffblrwmbntvfotpqlkejlggqln`h^lel^_lnkqjZpdkowpYffnigvgqenjjphedmqhmlkpjn{frtaicnn`keggidswnyjgnqhgixhpgssgdu\qc\gkficughs_roboqfpokfdyX|ibdigvjrpgnhw]k]nm\pisdmlv[eedksgbmTr_~rpwaemh_hrsirdjmii`lgtdu`\^cjhmfqoihpsaihtm^mriqelstslecfekpmjnx^l|qem[vkzmmtjnplwkurlkfzrgopxwbaunmmzighgolusneogetfp^guZhgwmvmdjcjogji^im^yhdfihkeqlnmejieeohogsolgc`_bf`nvlpdfhvhao`qgkiigflr~lkfjmbvvudhnrgmm_nWfcq\ld`monrbkguf^qtmuy{fmrulhna|onwspixfonkiuog[mWmYimkhfeoueollpkvun_Xlri[kdagwiullhrgiflpgfgqflhrbfrgilhdpbcpUjjkkuhqfz]lpdkskg^amkf`jrjyrgg^orfodkc`hfusgw[lOrdlccWebihjlhjc\|fcemjhnkolmi|vkhskg_Ymz}qbzccsig\ihgrblprsdbnfhkks`bkghqiXhlQblWfhabifkbyov|kbikwfxedvcsj`naaiuiripsgarhduuij`gnq_{jovhmqnYelisoohgnjyjgq}lfrcrgfjgibo`gkmwXpps`cahugms`kengVcrdaj|hlgbqjehf}pinnqadqiedqgmchmpj_ied`zhqjtsp|jzhpeajkoegth_jroujlknqkbizfeqmpmYkiofqrmtklomgqd]isgp]klp_nnlogkfhfiuc\r\oYjpj``mtkb_c__krkBksyyaQ*nfgbeiwfsfxqvcq^N`jRd@RhUqfVkcaPnDa\mjoWs^vfYaZhm^qY~Qjc]]ilM_e]p`gjh`_znkwqXmoei|`t^hdtamORewgyrik_q^~hptnguZc|o5WJL~karg_tkftlmepftklkfkqfeu}kklgngkcojrhipkkgsmrdlmkklmil`jlcijqniqcgidnjpvdmlrkogjokdgdukn]kjiakcjshkpeo`qondlfhqviljhkiciiilhjpnolhjlmqhkncnmhopolgn_moujnrdlwhmrkplkoinoaarsimddhfipeir^_bhn^cxooedm{qopW{Wpdofhjlskkhlnfvejhjaqgnhehqgmhnnfgmdlegaiejf`qxgkipcpgskoschqennxjhlqoifbl{qsiddspec|qsceef[iepigwcrgdjobssmsikilgwgjk{dfaeZjakhgmsgkjrmpiispjmjjp_nyusicilcihhqgce[fbasegqqeljrncdncqkgrwscjdjrcrhk[csqvwfikknsgnjfblfoakiqjetUbqhh]vo}pucajmdlympqWhsjh_josdipinccmqgnjuqy`ag]qznmlnnnhulfngg^homtlefj_amfevhdfqhio^rpfglcqkcqefetjqn^keqggkqmejpndgsmsinngealcmkoikqpiel~`legwshwvmbggsjpi[jdlebnz_]hrjliislajccbidjhhkzcenbhbqlfggr_mecl^ihhXxrkm|^siotfqodd]_vjvoms{flqjjeaa_mhfrU_mjlqQynilsqki}scmhzr6lmjjaj^plwvnkn{y{kltnaUopjsskcZpmwurngWib^tpemr_nZui_`pbpvhbkYbpfiY^gpfchhpj`fxh{VmlNbvpZ^__smpquvnctjnmwm\ngn^sgVghnjmfqvmmki\h`g}gW`uhfyxondls]kglmie{l`izxcsmnlgxlglhotavvmb]jc`dkuh\vgrhjrhlchdrc^mcu]ocgcegrktqmephxige_`mkun___fjvp}vqqupgspnqrn\inkskiefpuhgsjqmdid`rpmjhhivqpkndsp`meirmp}vghbh}cmngflkjoilsiocnmjzgimhuppwghylqurmpqdonrsk\{oskjvehahyokmtqdimsrl]xlsokptgpmmgohigokbjcobmk_thlgfsshlsfnb{igjmg^njt]juxcdtl|pZdqhsv`khrri]c^Xjlsnkfpjpwvneeolflo^if^jqk_kdbdoxUugnlaq^mufpinnyg\|niwmox\iigqdij`gfkyrkdhhngeln`sZrdhfrpsznZmndnh^sqjgnhclmiljkwu_nhmjbf[kbSkjdmbsb_ggrXXgTdihfjwfh`m`dhnouzhkqZnndmY[u_ndfqhZeigkgccjw]nkfejs`j~h`lafmmmiaqgnnxcxfjismddmhig{wjbhrovjm`imVv]yrofqkafrmubfomfcbgbyaloidvokytmzpYctfhhg{n`njlkmmhnoawceegjobmdhkgkgnlndcgi[hbhuh\hgdp`gmkn}imkjik_]echteujqmronjrkksaack_l`vnksmshvqhdsimbdgplmvngkkWeyhejwkhroklqjoih_oapqiis__isxfihunpjlkjlaepoihqldf_^fhpl\sateqypcgn`vg\pclweb`xmlj_pnn`mpzdgbe[kr`ngfkkhksfhdepdpuqSfdlvpmiutlcirrooqslZ}e[fgiqUlkfbiidlveqqy~mdckqjj^pudc_tfbj~fpgdbhggqaosm\qjmnopmyguuikjtfnfqrriolmlpijlklyeMlzoyhfhaafmmpwc|gvlq^hqoocgwjfbjoshlhgeldfnak`kjajiqtTXpio`Wksq|nijZhgahjcg_flzbtdmkc`gffpemfgpwfjji`cwql`eklcdbebhkiojwnmhjvbegyjbtf`eprjeqlltoklqs\xcniggpr{qmafjkVjlpcneg[jan\akhtehhrnyjdjevguqkgdugnsozqeuhkkqprmkjkokjjh|fhaf]o]pmkecgbmpjcijioc]qmtan^hxnwl]fgpf_bolmfxiohhqblpmrgidnljnoerkmeybiomdellki[frkkqlhlkielpmhipqdhsbkcrpe`ciliicoxkkjjqdiqhfbmijenmgodkdokfeudpc`knjl`lsmokgdrivlkjhiaue}fnxhnhmadcsip[kdjhqlwlmgpmiphsejmqdiUqlilhreezbjtofmbheoffbndhmmkqeqlkZikrnidgrgilp\oejqumi_ggjlrijnjrgvelocntkqhktovirkpgklugdokiokkjqmkjyghguc{lpzx_mkopjskogifqlprdcrhlalzqepnlglkhlndjfmkdopmnodllihvjpdclydlmiobtiskweelel{ibkKrefmjngck\mafoot]T}ajurgpoo[odhm`fkmafmeaakWxbdihdjrXeb^kbi^]jY`gqkkjedqd`niocr~iabch_g{uprcebdrczpi_Znmkilsnkeyi^cqgtge{rlqk\iSqkvrlmffcsoejZilimqsmeklmsoiznj}epgblpylsfjglel}cbmcxnqqh{s_Xgoorlkjnqlilairnl{sosvdelimdanjmwopmjbwnngadcjeiZbrnmgsettndmnkawng^bnfhkfqrfmhchliml`om|fiam_lrmkmjnfgmjrXjij^efmr|inj}ylkfcbWgYp`oguokpxki~_tdefijkkrfbfpmliuortqfv[eewpngcn\wrslbvqsXrozvfgdghjthigidsfmq[hjnpd~alten_dmvgamjgasjbsmz`mqldpyhjdgxrn[srxn_zd{amZr^txfgaasrjd`hvd\rbqmizmfjoeafiregldldtcklgothfvnrkir[legljbRommjgj}gioT{|mYhmd|]n]fimkVKg~himcbnebkcdw\]cvblNoZoagEapfldp`pcrdqQ{^cctUZn^fhkf\ggd`gno@vUkjg}cvMiblc\]aqqosZjn[eLl`ar^`clrn^^pvrnunkNitie@eewmedesioqtqdlYin[g\hhciirktkacrphj`jgxpghlkavhrlqjcyqskvsemicW_Rm~guqo^hvfdyav}ajXg]krabysi_hpoggriQclwwukt}hksnbqknloXftugphtchkdigjjmtumipbdumfculwkedfdhdtbiaofffhgfpdefjhoe][{fwon_skvsectkld_h]dosdknnicphmvhmmxamypos_d]iehiag_wmhrjc[kishijjlkjpgqeladdodqlkeiiipipis`nmkgrRrmh_ojlwohanun^Wgiililhahrhesg_jplorilt]evghjkjwworqspi[j`jglixYkidjriffmnhmhdpjhktloh^ips_gmhpqfhgeXodpgjng~i`mlmcummiukqphxo`enlqhejhfdrdgmnkv_z`whheueniqmvmlfbbefjie}iwvqmsamjmpgqhrnblmehjboosnkmaabgj^jaglelsipnktgvmmfhhaepjcmlkfhemiecqc`glldibmkyjjrfhmiinmhd_lbcjqvrne^qgmfnh_nhlegrpkhkohigmsmhlqppliutfml~lfghlltiinbnakokvoknsytm[hbdhffkcoaefsnbmpwgdl`jkniewhnmeqrhiiigiephkeorphiokecwosjlafzcgn`jjkvhc_jiulkalhmuc_n]qtnwlmglbejijjmkmdaeh`eslrsepgbllxrprqcvbgeyridsunei|nigmg`oimjibggjqqjkljuhfmg{jo^lavljoerymlnrijskphddpojmhtV]fojkjeljomlhinjphkj_num]ymaaqpbnngmq\lmkjkggdh\ghhaepflsnrtnhmUnm^bgmxzms^ntqkslbjoee]gjWgjkahjl}]szqjkgqktdjrjmmuzfbqohjjgpbdn\smefqwt^klpflxibhijdodgkhh\pjtpopnoljemqills_ndrknijijnmimmrnlcot`mssmimrrcdh[nlktt_{iqeflpiqilgdhh^ogijqfskirmpegbkm^iZefmnc[lx]oeojkdhhkhilmlumsdjidgnjcjpgjfnkn|wefjtpbfjlftaqmhdnhsqpbaockkmkuljmeqpkgaklovdrfihjfknxolndfsjejqgmpkjvlklcbkl\ehguigejtifsnfekalhpxsrmokkenqnpijnkntk`lpdbmc\k]kv^ddkhsgmh[SVjjshpnpjPhsbpfafy_]lcivjjisqsll`r`hgd{QdRhwWjicv`a`^lSgYhm^qfy]{ef^w]k_vr^ebjohnFl}rkstaoq~de\sl`{n^tiade`Yhoeo_\QWlxaHxqgndglto_Qnjla`j`grclnmwM^inkbkqp\emvrplZrixakmoktkehcqkkqgkhdzlluiijlf^kpjdbjpctyjmielnkhhtdemijkpgoooeaeiligtol]`glomslnnemfcsmgcvpdVqgepf~omohkijvj^jnfknmn]|aigsivgg_pfphiakffgeigqbkgtqihlq{knlh`ogcohfgrghpjvtgelinqchbdpfpfndahjliegxgndgsk]ajmgnnabhgqgjnrt_eqkcdfmlmkkheZrlktbgsaeyeilnjphcefnh\dpmji[hwpmymhmhjvmstugicimzgdasjkludbmaeklhjbbngdoqedgpprifjigdi^idclhuhynkpdrfeatndrblgu]od]h_^obqre`dfcu_tj`^lphjbmfiheblmmmcknlnr}cdpeliklh^nvoo`hletaq^jhejpggcqp{pe`bbawcklbgmcmplqidjnhakjkjU`aknoc`tl]gpZtdikecntjtmsoikfoggjirjqoohnWekamlhfidmsxyjUgyqv`ksXmmhujffjpcouwhglmfqtehtlbi_qnkfor_geknbiml^glmogrrk]bh_qhiguphgelgrolfokhneqhhqhmbpkobtndyllthg`fdqclg{lj_jijt|vigmqjjfk]uloltlwihpfhnoqmvxibd`kqlsl`lhiopqcjbxiejctmllfjivinijivqqfsofpeimgglin_bbnpkh`sppdeojdjxmufohdkdecccjrdjlnhgqjiml{iskibjlom`jlcckgjjiejhkimoseg_cqcdeopswgagp`j{sn_]mpirncmnqni]qddglpdcgmlplekvw^ftjqqpfjqa^jskrhkhinfi_anddmkdjo`gskgijqoqjtrmkggvklcnllpamjaagkymnnbpeldukexfudsgfqSniokjhbllkhndnuhpmfkffnn]mlflhmibihpkkfjskhrqjjjfcmllxegggnrfmbehigmoomglthltcefhegocommfkhkimnllvpldkhiynmfeeijiiikntbloumijtlhlpcogjlmfishkjkojllgxlhrwqphqusZe`mkh`tl[c^k~qefd`sb\oSdpkfjrgtpemckik\mjldipi^g`b`gb`p|rnms]lhskj|mhthlbijrdyukm|bilVeojdeer[bgfkhkdexepm_hfbfoo{sjaUedlfnkquqewo}blisd^j`nnbhjngimj|clmsqommxouym`nqomhhdrlgrp__kfmjeqflljajel^hhhibrujinsklefpvckcceehgvcuhjdfqsnnphlhdunimmehxojjpnlwnkqntshl`n]bjpcgdexbrljbmkhZbwfewmlihtk^^edfgakvkonqeshe``gghoe}mnnl|Ranq`dlny\hbpnaaxuvX^f[x[bmsimRazojh^iteg^uijqpWrihhqXlsyvlfpjPk{reh__tdbuPkb`^enjci^t}nbqq^tp\~pcj|evrY}~emm_ka[kf^abiu~l]vbJXen[kigphemaefkjtdnzlbejmmajjhgjbljjbhn]refkhejroomm`skrqeijgdelfrmicfkilknpbrrkjjglnegcghhmbfokpwljgjyddalihygiomlntfolndphj|kmhvovmhhghngmfkfqkompfrgokcglijfthlstshickxetvpbelphhcdfhe{ngjfbqnuaaubhllllknknnifcunnjjetzinhiaegq`krqindfdqhshj\rankpkghkuikWdgoohtjzdlZuerpg]ngkmrfilglhjpamc`sunlogetldufssmniofooopqhfhfmm_pimhrnmpekg^tbthwphriueimgihjgkmscpmfrnof[m{imhomhuonim^affbkpngonfkhedrmhtkfdfhnoskbmqfgfcjl`mwi^iiuk_qstntjdi_fehkfdqglgnmdfrhvc`_jina_lg`tnnhrmkhqfi`kdnhj_rghgkmgwelmhmbigvjerafpfhlkcpkpnqnmbmpo_lferoqr_\htbrpqrmjhlhvldleck^lmcgkf[olgi^bonllhSjnjh_ifgeq\bl^iitawldkmsilkhlnsekjjolikcckrzfhnRn_kidmphnmkgrib`dnmdogtaq`tqltgl^rlkkd_mkxjsjnr]h^hfjgkbcmfWqmhqu[qljhpghuqbmjmclhjmdlYou\fVx^_vncjiegsnmjyehTkcavei_bpfrrineelmjmmjyfulbkyfhrhfncpUg_kjmkefsWhohblelpwljiwaYifcaglmnhkfhiikhk_ohomleligboxnckmrhgffjsaspm`tftv~o`inl\kgiiesbmmskmsqgrjfpbtgnijt]mjmj`ufgkvsnfpomloukjpm`miiabcjkpahnijib\kqbhwonmhsg]oivh^achggfdghhdkeii|uhnmqgbuifdf_js`itbosscXalql}cbX_mlfs]uqcg^Uuge|_`rp]w^d]adeqmmcbhknlogbm`qpnznirhjplhldfhlskiSaklmcf^fm`lkhiimmhbd]`gphtjkahnhipd`l__gghvgddjmiigjYbn[pvsffwhiagq`grpddgrsm_ejufpvegeopblsgnzUbmneaxrlx^bpynTnlzzddgfvjihhjrciioxjnrplpdnyidnlbblb{jlxnyieqem_gp^a\mWc`ncdhjloZgimmopomgslqofhm^jmfnmdqstaimgnsbo|~vh\qyaxajgiifR_`|rvkcefhmhnql\w_g{okdkdxeowoakdndoofpalslnmmdklkeo^knn_lqlkkpcnbin[n}dfqlojpkkiafdatjgb_bpol]fzf{lo`gh\rjukekdpkualpZmqccioggnbjndu`cbnbjgcedngftqbarurr]pdldfhewigh^bfrefllpmrm``fksff{foph^eblihlhdgbtaqjbnhwolqnleylnihysgmiilmophpidveoodrbsfqpkddoglohcoiiYxbketcdkmpz]doqhfjfikqkwljc_f`adwdzbjkiomhpqow]posdkip`hdgQp_mbemnihe}mcjegmp|nq\^[mgihkfjjgqswfhuqgjoecn]lsfpmbretdlhgelgo`kgrwUhnglefmmjbgeijmhqlktmml`phtelje]mjgemXktbshiagimkdyrijdolnnlnoohggeqe_pepickrvftitwnmpme_gmhno~i_bkojleiiokjlps``qmqcmnnelpmnteieplr[eijkh|pncgnwjlprilhnhncjqh_o}rghsfhqfmmmvlimldeilifijnjmzperrtniilrimkojpsdncuekcqgyiplhcdllnplgisbXhghlijjltnwo`jmqf`lejilppi[jl{wnqijhdnlendq^fImkhfa_qmup^ctx{juilepngcxhoo`g\xobnXqs}dkdpfjnknq_opcrdnorodsj~Vrh_smigmkjlrchecthfinmplkmfl_mphecgjht[gfg`^mjjhkakwtjjpy{lmpp`\kuj_rfpccwsfzh]g_il_mdrghoacsmslhw`ur]sjlda_jXiktkfkfo\ialkhh_uqnpktv`ebtblpijonsijnniwohooq_gehnimeiiuQddqidlgifodnkminbhkcgmttnvzjg`ffoosjsuf}gleuqjugahjsnjndppgrmyiageoqn~shjjdaik_gphunonigZcinjnkmefjplkmokdfnt{kftkofehgoonfSnprlien^dmqsa`rnfmn^\s_m_ucnnjbppjrmn[gchfgfhphq[evenbjm^eflbqsrigloZnaij`kpgYpfYoqjopmjrgksqdgkvosrdjd`jdijghipeohmj\ooejkknluqkhe^fjrgmggdm_jflqdvconfbdvggfbdemmpemrieilledcpjqr]ijdcvbpaibkkr`ejiYfhs_eieifvigmhklukxriisbbslgnaophmmigi`fo}imfsijnmmmsiqqkwu_hrpfiquehkjpcvmuipinvwrfcvhlbbtshqooknYpclniprgkobtkiqen_bjjmpjpudhdjgpk`ekqam]hklhhpe~clt_aqgpffjgfejdpmcgkwahhnnotafnkljoqtbik{eicnvlrjnjrsm]ag|mnctpi[mhjkkqoqephmompg`ehjkmufqimirlgfvmhoklegnv^chlnjk}uakljiilxgkpnngkkhkmnekpcnoorrqnookimmn}bimnermgmollfaikbopivobgkihilgpeigxgluoqnmgoithofjpkoingqds|ipekhijjijijmmkfktgoinsxurhqnejmrkrcortmlkix|onegtbnqneongjojlkejh_iaflnqujocniikopgtjhdgebghafphuvf`fddmmvqfd{Wr_ghjbfnjhbqqu_oogaoolagjnboqntliipciskppehkjfkkbdqpk]krkhoningbgbikn`m`nckgWhstjkm_hhifgcpulmeohlmmfhvmtlwfqksdg^qpfqgppmrknbqrhhihtfolkmlfll{pntqhmchjv^lnjlgndmmfpimokhekkfjskkwdotirjnignclf`egimjkrfjlfgwosdiljjo_kmbgemcjylqkggq`nhif]]ktkhhcneqinjptmjmlmajmXZtqafohq\krwfhoehglrlbnqlifoilpkfeqotkthqhiermbtgbrabmb[hrnhkooihntijeidlhfhehdidm^kknluakigmhsfhbjsiobjcn`_fgfjgkwsfjmkpppmojqcvjsh\eihlikhvor`p^ckdk|isonupv{tebhmvvcrjhgwhbklvehsrzhicejmthmlltvjomiam\x}]tqmrwit_nsilyjlmgeokhtknxqqmpqk\jkyqmhe`ddcrh]lpegqjlfahfhsoiomlkpisYilgepknldsxnkvimimnsam_`guhemqqqfho^eieghlkputlhtlvmgokkoiitlmbhbrfhkivlkmdbpipcipgqkjkhj~nectlmgpc{mrloofheigihnm^gmkppijmgjl_p`koyf{ogjgtpcdroiqefojhekmgwhjlieaakrnlbmofighqvxehrzVo_i`fllhb]ql`uhbpcgqigxq\jdliaai`hshhahacrsgkoOk\snbj\effj]ffhmViUcfebjjkaodhoi[`[nejhcfllwhm`]po^neg`qtsedhpdgajh^fgfcb\Phobmgcfrczjddjdmm_jhjjjbrdwfrjal`hfsollnhf^sikp_uptihhqbuoonSjmijevmakihkidoiik{kl_mmampiifojpehkhblbowbluoxrhfrijbfwlmrhkemldfkbkfooll^]smlgwnilhiqdwaWexhjylj_xpinlqbnfhjj^iwo[mhsg^cmkpugceojltplnjueibvhrmkiidifnpeaqapqlsefurpekwnkafqewmrroPnylleorlmmjsrqfnbpkaiijglicdjcmgb_phjolnhahojdxfejknjscsioiflhyejhgngkoutupf\igmnldnllqjhehccmmmlkookppYjsh[lropmdgm`jo`jqlhkZhjegglUxteninjlihenbovtgnejppgcgiXftrhwfhskcegijlaqbtkeenq`kijmhgmlgooiimnurzhpgdrgdkimcggejgmmjthsomlnn[hhnlfilbkgimuq]fsnfYnecmflnnhjk}wqkfufgmhmkoeqjmpmjkeckjjgmhlhroikhrdrgqfhifhjrgmloj^fiamfleojkujqiqgfjmofchgkflvmc`e|kughidafegprhjkelycqdyjalfpnologrhke\dqkvbfcjfe^lnnesfojimlfpcrjinnkrnUtlwoijkktrdch`lmfnhkpesjrknjkjrrh\iik\jihdnkrekabpmw`jpqagfpgdjajldgiieri_lrlslqfnjfajihioplkd`fbe`vkprggcSleqdjnoklkmvioiknpgpkjtmgmbjljheodnpejsieeomgdsjhdqjlalflqqbgslsnd\flqmnrmjxlgizmpesmelmikisdoclpdablZihmmsgo`fmlpljogmhgto]hoikjcurpqvjhzldmhsbknjyr_{vbcmjhzpgbjqnsobilfdpaif[dgejgviloiwbkmbl_ijdloekcbihvhhlgqnkealorpuppqlhkkilsmaxrohvlpmkpivijzpm`fkkik_rh`haw{qq`eusgfjepibcblmmniikomhjnwqqPjknllqlnrgimbg[ikhfznl~epptuimfY[fgfpneiklbgepniifxmfjhjXmpaklhduefkrl\|hfc{hiktibae\ejdbqn_pfhalb_bdiojkp~ozbedpgiee^up\ebsnc_co`okemkxpielomnld`pqfp]quqrb[\ihhimbcfghdde`inippmiilvpoohcf_icb`l`wapjhZlnlckl]nd`vsc`lueY^akhgokksgkh`_h`hVntkrvgdojlhh[q_hagkmjjnmnoldp_fkkudikamghnpfre^ljnjndwk\hhncngokn_kljng`mmmf[i`itjahkkmhkhipsmitryjollfij`l[gelcjgjofbmnesfjkghklkiflffigiZn[mndtelijfotmpikjirjgdlmg_iynhifhnw{aaul`gcnuw\fqciqh|gpjimbr_ibilbifkfl`ijjpjbdqgejmdheeedbgjpfcpzXjnkjonkhnod]fnlrpdkcmrxxxhlZ_mrijfibh`emhppigfhgiabkimibgd`[ngdtilehjxo]dcj`nhukkrvfpblmdkjxkcmmdynknkv^pcq_blifigvgsegjiguddigdjnjgnvfeql^jxgtojgahinnrmnedlb`ollghi}qc\p]aZkmjb{itmffl}fljzjbokxhdeaqk\hessim]imw^h|dmjqgl]qkggmnjfklgqminfimiRaimvhkmgoiij^iouqlozcegluipwclwileilegcjim_pagtpeoljm`paggwxfro`jipyqrofmmgnjlpwd_aqmznhigampvkjryhlmrfjqkpigiqrnffobggplkc_edm`jeybfr`efgoeagdhrnhl`upuhlygomde{eqnjr|qgq`lxfkbjdj|vp^pitojhmplnjxkkfpipisradpol~lrjskhvlolnfhaq}jmhepneshkhfpkrp[^ecdmokdqisn`hkgprqdhlfnkay~eogai`dep_pi_jghndorilkscsvakqapoleolvahUldlijdlrlhoiqpltjhcpckkklnb^slgeihiiqmlbngihnl]pntfhbfdpemhwaf^ermmgiobj`fhsqukigoibpxvisk]lkcnk]no_rnjndnrinrgfpxmmnknsjgklgiqkfbrgenh[kd{openniukmmoidmpeiggjkwhchkoqsijbfhpjgidhjmcfmm]f{kajotmzkggnfp|jipngvcmrjjqesjsgouidfdogirktcfvmokgjfetlnffbmxhfgfmjsmsmqkmmhlk[egifhkdckcjmfmfkqjnmfeedsflhlkeqtixngnjj[lljjjnevbniciafnfphheofocrrkikidqltmrpma[uobipljjrclnkdsherfavpgoffjlnodnnfuctmd^bknmsyjglpxmerbjkois__mkmacvohkmgketmxdknkefvjicpgrhewcsug`bklpZenjsgxo]gl^gfkgqvn{grdlklsri^pkyupljhdpklhkklijwhdjkmjsslipnfn_fnjzdg}eungpgzmpllclwuafohdo_qmn_pjp|kkllprfnjejnmhjn~oifuofqn`fsoskerdrqnmncjoYrjnldkkjf_vnrdqmfgjnjgkoe_nimk\lmmehkvhehdUrgidmvmqiroheUnbntmnedpromev{rnhjcgulqjf]gjbuhmmffookdiWhiklkg^qppadlok`nofknjopokltdpjlkmimqckvbtlifakkrh^ulaozohdfnknZiphqlnneqphe^oipioxfomt]maogp`mpacdiekdqncrxhuhjhkmhogrbmbxgkokkqaf`hhoqmgknfdygbshstseqgjdqlnrnhlppipnq\ihifjyjzuhzkfekbup`jpqlaholswunosjdnllanarajljjbfhjedaxdmhknhdjqgcoqi{jobsipffhlhzminqefurfgsh]hlnmdkhjqjkgniov_sfmmjqyemfbdqmeqzmelpfqjljcknnimiismdiirknnhjsgjldnmyuvlhkkmcvgkvqn\Zfhkdedjbbhlionuqihjqjx^]qkgdwhx`egojoehhrlhrofgnpkhffhikpmktgnigqnkirii]gklacebcegilrfgpl^hrbol^eioqigiiinpsthniekajmjgkmoukiekcnlhodenidrglciiorgclk^tcguubdn_pkgptsqnhpnnlpfiuckirqpmgcfjojpafefriljnojjeqfjpgmqkmdmfblkaehnfikjiliefwirlipjqslililcwimUnwahkjjjqniikvggjhdSlsouaqtalvlkqlosoinksodjicdghkfgtjzmunimiqYmidypiz^comptojilmriormbmjnitomgm\hamhdxripafe^^pfiolqddqmmxmbupfhlfpdooipjhbjqq^n`hfovce^hd`thgjilmnjiobvbsokkdWtjvimqjqhflrnkbrgpctehdifd^gknervdsviglncntuobgr`molomks_hkorsldkj`meemajp|eegjghbxcbqklclhlktipdmty|_qdhekgdaqqtgjnajkghnkdignhvwezp_oresmorZ|mjmblrgtingfhipvjukermif^j|pqmkh`gfujimhdfmknnhhgssqffeorjdeimhmdujdamkbdmjkjjnmmb]lhkgpgemrhfvsmgXlcnibshx^liif`vnjkjgphgjohgspdtmnm]ogp}iim`pjkkmpfgikqpkllxmojmpmcjhgjktiogl_nwdpjhqnkuohjltrqgombefmnmvjjofpnosoj`lzeaqkijfwhip_^foijjklmkkcforbfxdtdmojgghpw_jhlchlkphjckhomjg{cjskrs{hpekms^klferdjknjkmiohigpdmqxfrlqkkj~ohqadlqngclkvbzlfnflqenijmkhejhlpilljhliivwqlhobdhmrpltf|kjcakllhsh\jWreicfjqhq^mgpc^s_nlesmhklnpjgmp[gtpgdmi]lnifvuo{nga\h\bkimg[rqgtgl}ikghdrrqepr`hoWphjmsloetjkdeacaisqfifllmfgjjexkolchozcbnhfisitjobcimkrijptaerotghwotgdntmltlr]goolnohoukfiog]xjk]efxgkjioonmmplmmrvh^emknmones[gjjkomcvuzkqlqikmljengqgkdkbj`geemcgme]oamd`oblrqdqpssbibuzhic`lvogrbgvcdkPlhqgircqkqrhpqfdnlhnhb`efshqksgjieheejk`fgfrjskhik{kkogetkhahfoegf~x`mcqjqhkimgopp^mjdpighxbtj`emnfdd`h{p`thhninlhicsgrlgmvgeflW\knilppqdfknksqskgmke`amijepilpjmmginnvin]krxcbmfeqf_gmbmqdbjgbefpvt`olpdkiigljgjdjaijeikkfkjrlll^jlosgtnj\diolkjogqipnhnng]snpniptgYmeowkfm`okpgkdktjhweffkklTaicslhVhxihhhkeimhm^pkbmlh\mmagilmfwqekfmff\m{mplo`|dpkobmljcfr{nm_jjjlmbhldfsmktjkkxhsq]ddbgrnerpepklsifmpktimgijjncglo^hnujflmbiirkhsrkdpgekrsowkmj_jnhfhrjmfhhnqnkqn`[qhmrirkkhohscejlmulticmlloiongoitojrfldiudhigfjofpfbamaljhorlmjjnwbrennjjhgifqinnoneqidfmhhch`h]garhohlr^smliiokniiicgkoolbbikngnklpqdglmgoonrvokxl[chjpjjihknkufksilecum}ioginkttqtakpec`ppegvkgsnhomjhenikkfhjpiejgblnmkkleijdoessfglpkkkwpnwtinigxutjnookmljpafloukiqeb~jtbjcemhdhnmwfkhkihohlggcre^olqrnnibehgqr`jojmklicxbpwlodklgfokndhln[qnhlfwmeqodlofiifbfheficvtkepecxgroodjikclnkjhjsmnmkcgo_hmqeihngqgbslpel_johjlbgdcvbmfdurppkqirjineolrl\pvxnvukmoieihjrellWanoggsapgjkmbrcmihgiobmoafonrckbgokbovbjai`nu]]gmnfqlvkhxnddoeekjkjitnl\oreqrppidthqmqkfdxljolhgrjdjcmki^lhhih[dhpijchcieloifpog]mjgoitfaoqmpjpilpohqjnfmfvdxgasopjfdxcohphddegpl^mwkncdjggncijeiltlnengmekihlZeenofljsmh^jjgklfqabsb{cn`^{nf`ioroplfrikokigbfijci`hknhrmgmdnjrkmolgaoi`aptgajnfqbitu_tsgdqmebgpe\rirfnbk]kYjklpknghfjgvnjjig_eedvpbtqrndlikkqe`jjlodlekbmaijlnhfrmhic{~jsqdczenqtgg_linrlkbvikhhk[qtfrieggZgouojpdinicjmhq^Sqhjmkhwhdgxkr^vmkfmphujjvcjdool|wimrmqo]qtiaqmc|kbdoumkfhcd`demafllk\gtbjdjjgtopji\cZk^mdbpt_goilmrjmhmulqsgdalishqijijjgepqbfkr`lksblmegwekimwijojfahughhiiqneiioklhmnqmpfjlhrofn_svlhphridabsrkmadqlkxnccjeynfnmfglrojkilpfpahehehjfntjonhgqirmeijbffejwqgrgdhteqihgreqkjn_bdmml_`hhofieiieTrcrki]mjbjhg~rjthlnkeph}omjlcccqjhgnnckmlcanuflfnefhl`mkmmvgenmdecy`rgwd[`pfrereelklkjlamiejeXockpbdhidrilmlbkomlaihpherlsedaphkiohgolid`eefoh\ido^hfswehrYlohidsb_ckx^dihmpvqjdiiXknnfvsbe`gklklacqoxnh`hrojdieWlnkmqlovezsnlipeasofhnitlto`ddpcihg\hjbnqljneeh\rgiiekmaihemfgsegm`cmjhhktnjaq_zgpckhqZhit_ncajcnh`eigfusckdppqjirvjgjmiotacfrcncjmhbptnhbkkajrfbf_bimjkgidlfihVqqst^mkfqhnefakegkizpmqcborclbjckmdgmcuucblgek[_mbnplpudnnffwjglfqhecugfcklmjhahhrworjkjekmp^fljntl^kfaoogqcafljkplglikjdlmiieZhhgwfgmcmueldbrkolhdlinmbgmufmovhqkjeii{uohjc{jnitjzhjhhe\qnr_gerinmigumrmhieknndqhkkbehkcqdptqjalnaheffjkonkkjgn\iimgpispfknvgi\kcefi\{bQjfbcmbhkeijfjtr__pnodkngguZmdtndjs^gijokldmgpbhimheno[rmfiffkYgi}peh~]aZinv}oskobicsfrnniqpphobkqynnkrtqjdiqqfnlohunknojeiqjuojrkpoiiisgfhojiefhiomjljvjfepflnirnkgdng^lgmphjfvihqnlgnkhjiltzrhahqhnaoipllnoijivjqoplxmm\rjkk_mgp[sjmccncwenkl[bqZhpjmkinepenu_qfmseipitf]hahmljjhmhilercmwf]fgpZd`ukhpdcfeiolhoYnksqacglqg`nkhqfkXdmohojdlntd_ljnofikabinfrjnlki`lmg_fin`Skfckonovekl]bgggegldjhdikdgiqqmjfkpiilg\kmopg_kdsjhgkk}jepmkhgmjdhlmiajdjhgeinmiuifhglhqipeiihvuijw`gqjcffeg{peggmao`lgmljdthdhokjjUiigjlcidptckhohnkogoobfdhkmjqlbogjjfkjmmlxejubmjlsskkfonsmslruoimdjojncp}hhvskohsfnmnfkfhejpunbanhjjv}jkfiamoknddger^gdihhnbi{liklipnlVgogime]qagl_nobkpngeaktfhjvpe`k]d_tjmb`_hltc^iophtjubnqnihcmeaekmrinps{gjfrkahiprfd[g]qhpbhoolmmtadmq{lbjhiohmifdlmaeoohcofolmiikgjiehfruhngps\ctqpqgnjiiyigdnathjnidufpomhuftbgcibeuflbmgee||njpoihV]kl{qko_dkk_mmdm`bhcerjegmuoehinlmiejcgocfjwgkmpcomgj|jrghmkfedke_bw]cbehrmqjskjd]jnnafo`]nqfjdehkgckhkkjomhpggojxkddouhfqxrkkuscdjwywrposhkgiik{midmjrugcjjncgdkijgpzl_mddihqlchvjpnkkgedmgmedhkckajpf{owcnbhpnlntgmobmu`pbghrWi^mlz_qlmpbfbf{txggegkhp`ltrWkhghhoSjkl_jkocihxdtxiZlqhlpuljkk}nkkiknpnzdpnetveefoenficikmYikjedjffdnd\@ejalorni`oi`ethnXnfpdgmgeLlcligvwltgfXbqsdq`iffihWlrtlbnggghjjVnloadfgqgoikcugiee_gjnbmsnfhgffam``nU{semf`ishjdccjogfoan~knlm{eg^elivfsmkmeo`tjrcfkoknmixo{lkehgmcldkjpolrkkqjji`hiekhnjgnwqmufjv`ysokfkhrkkgbklzlikfckjvehmYhggidlkgrpj_hzmcmhbqqnpqndjttallzjqigbsntehSqhilvochnrjmQidpnmup}afVuaxufYomkntdhihofheiocZitrrvghvmezfjsjljkkrgnpjdm`arhemkuokmormlkcpj_lylgwkrbmjggij\qnhhkopuspieo{adhlgmvmjqmklfh^lgjlluq|ki^npsjfd`emoramp|jYikhgpnjrhm{oQxutgtpjqlffmlj_eeafphm_vgqg`]vqmeko``osuhmkcaujh^oenjkap`cihng{fejmz_oktgcllgcfmkcfuidnnrldjmhejpjngxaf^mlboykbpnmqkzu`lomltmlnnkhbiggjc_qmmhrVhmnsciki`tddidknldmggmqskhlfikodhg_gnjulihnnjjm]olwhklqjupodhmm`alknelhfp\smjmgm^qthhgiharpmslvcj_lepcafhjtZjiebbdergvdes{gshfigengcV~ongSZgzqi[sjj_mjulrfwibcmtreajpplhkt`u}qlwz\smrdcsh]ykgs^nblfajpokdk_rgbeegkqxhdfd\c`eagmjmaiejfsfhuelev\mlxj_qspaaplfgphl`bsnydw^plsj\kwpghggo]{ggluwgsl\qodpbllqkhoZlumeZsbcjfqzhhjcgsncicnapiph]bjex]gpcmlbcojenrwomktjZno~ajdgdhcg_hjjcl`mjnuhkmkffwmdbc^ftegxdjurji[mqlthg`_y_`mbontml[reo{cinpZiaa^Sagihyg\msykgjbh_skewukyghfodhahniuk{iabofd^ajggvhcmgpk_hfad_uhwjjhmkrje\clY]pjeqbdfiofmgjY\_dmnmb]{goaim\fsoccWmgf`gmo]qvm[fglrpuqpxndomclgmo|`iq]iomhgooa[~diaqwlmpyg\lkiawqfddelqlilmkgpdthntsmcik^qbkmiafshh_zj]ghYochlpkjqmcaNtwzpbhLUtqzjhpm]clozg_|mvhWkyki`bnhhpT]fini[gh]hfsrn^hqboqc_jomlowbfakacjrgkapeZhqicteXngpn^klk]pvgokjpgjqiwelcqqwojbfmXemXrkd]kjomlbpukfbtedkVuqf]mjavjt]ezefmcqnhe_j]iscj`_`riflrdboeanr[iibwgcckkceakzzcj]idoeempipmrcifgoi[_ckhhbdbrilbkfjlkiqiZwiqjirrnviohpeklfohefojkmgijjhhioXngtwodngfnikbufje~pofohbumogniullkiemirgzqcaRrblmqa~\slhjmdnmnq^ompbhjq_fdkLlqokahtsfjzkcgdgcklfsXYbqjoplbgjlmmxcfwpjaohinanwagpf}dl_dcjkjgl^mhzy]ckmih_qnhjhdclqcsolmpj`eweweghdhosgjuXhofpeidkuiohwxnqiqieqmhqidnedie^mgljdtvsf}mmkkhnakaijfltja^nojjmljecmkvq^goliglohepojo|ckglmqWalkte~sq`deslnosmjfekmhlsijsur_lpkjqndpnksnimrcvmikpilogj}n`owsrfqnpmnmthqspngyfokrmpmqkjhhijomeenmbX`eejkhihoipj\fonlbngmkjnlkUfiovgojffesounfkXbokifslirq^Z`smYqchobkukdfiljhhiejnjadpejilqf^ammufgxXpqwqlmd_fxauWVpajasor_nmicdpk`iwnpiok]cjrhXga[dts]clc]jqciifjggl^ogZq`jjk[Ed`arrve_qnomfImXillhiimbhp^Zrkqsdl]onbxnckY]oZiktafgf_iWk}rj`igplc~nbgbmiitdbhlxsnmkpto\qkpgeacqcpicX}_dmmeWgohyo\olgknffibjcd|spwmj]hijfperdr|eyijndvgekhnm`eeekenjzkkaem`nsljre`cph_meqejsnaQenjegggchlrqionjh_nhodcmd`VdldjehmHnhmadon`bxpp_Sxv]psZ`rip^thgrnltwpmgiXa_iepshmml[lvdpgmnXdaxfkn}mnhkYodbm`sjgYqkZfpnqwplkeirqpjjjnmgjiaebhun]hhsfdhll]nhiohcihumiuj^juyjhcalhegjghbr^scbcjndchgiherdnmbrdoj^gdkobg`kxaiv`uffaqefddsmhcdvfk|cjmtlcpdjhje}]gnshcwgxnfvtjhkcoodZjxvrdingqlqpc_qldueutnnoxa_ljnwskemikz{ojebr`hhcmlflhsqhfodisdmohmkdukpnai[domkhkntZfm`irebWjga\dthfuqn|jxpbjsmpdgapcdkekmgkddnnbmqsX`]oigktnTglzhtakymiewjdmgqrkhhmhpsi^qpoanofiekpjqmh`if_dnlktphdjgkdjkiqhg]`kqfnirimiyn]iphhl~lujojhluhfkgf`pfmlohxlwlmhbnvlfqfjtijyhol`ccidkinpoZijhedijmfektkbvklqreolvgsgejdoko_ifrylohgjhnfjcpik_tctkmjhcxjmbno`gmukw`ggctkoprzinrdp[exoagkdk[itaeej\j`oecsnkukccbkhrhn`ffj`^fbYelnqm\gagqgyyjax`if`kibmkjf]mkjcrrj^hrjgjmnbfpsxknlhfgmikmavmeghhgkxmm_gvdejhjqfeemjnncqefbqj^eopdinYacuhiklhvxe]rjllgughxj~_nqm|kXpp]qbkqrmnq`okjehiymifglqgmknhhvrdjykouhhvcmYkcofomnnngjifdcljhi{eeukjlmcaq`mngojnhdmoh`shgpdfifixflgjbbenaewlpigeldjnof`XwfhogcndlgsiqtpnlwbdopkjnqelkWlZmnxejylefkpecjykedgighjigyroxpgni_dnrabem\eklYeurcewk^ezjjj]fbjkagqjkoskhijllqcrskngkpl[nkdsfhihfqhhkejhxvaknpbljeqjqfnfu`gj_poiepgun`liiiikjnnsxvqyosfhiswsnoiih}lfhp{^mmvpmlgdlkxhsksmw_tqc\odoi`ssffnjvZmrbnyrmplYguisgntjwfkob[hwwekbr[cegymdjk_dtrla]momqlm_comonkPjs`kngnjgsvnjop_ufkucpXcmcgjpsgjyhoaekngdmhutrlgnnqiebjjpcglfp^i_kp_mkokqfhdmclglvlrkhkjnwocakjffpeymnjvwgwabjqejnY]alsmeeoimkblbep~bxnkkivojgpqiwjeljiiflgwfmoidgbevjbfnrqildhwrscpnqZkheclopniXknivnckifkpamigckoiffeaku`hctcnrrqhxu[ietjiebndbagkfulUgshfkjsnjeikuqg]kZjiejhillvpo`cje]mmfbkypaa`deiinfgbhtjc`jbdh\icnbohvjf`lfnpfijhmnhouoYqy\godkjuqknokaodnodqbkqelukoiptWnolknjsdepjlfdtfhnrovdfrbdtkhbncfjhrgbo\gedxzenxhonqh[kqoa|ia^pgjcjkqlmllcMWrhvd|pbkjgnjwka\qfpojm}vojnjcgccya`jyokmf|j[ingxli`kelrulhvtheobrhqqjicgi`qvbakentwtfejnf[pojnaapbxijhlhnZligscg_oelnqdncqt]zihucofkmdkfd_jtgngohamomatlgkfknr_pogh]hmpdio]ixiblkjliSeZnhfnjbfldeamf\smrpkhnpnuRcp]chmztojmi`ls]lngiiXhkieepSushmeohmhbhralr~glfhskfbkmahu{osjhbnbehojlapcz|gantmhpmpkell~krqomntsw~fogduhfkno_s^jjkkljpirjlfljVhgnlejm`micmjmXerniUodekihqpleotuhhksgioifhiixhgpmlffcjh\amidletmqjjisbng^lfmlldljtpti_amgmYnckkjqlj^qiz_gl`lpgrssh_b~cmfhncf_chfpdqigjpbxhyo_u_jhokfhv`oh[aulrd_ifafZfs~modgemloihZtl_ynnpp[qe~mminipuf\c^kdmnkkpkrppoiesaihm\ig`bclkfymjgbmacgdphmpl`ggla^ebemdeehl|hajpkpqskmremrajhngdod\magbrnrjnkrRi_d`cmeejfnynolquldlnml^khcyhdfdp^mhfnsfbjomkemmibrlg^hivqp^qvmhgd`cpemkoentmhgykpjvlhithp`wjmcejialeTqalmrmqhdelllpmfgkaxfe`krmhgtxm{xckxeokmapghywjl|dkjdauj_cjpuigc`qh}cofoj^`lkt`x^l|fyjuikchgWuyeZaaxmjxinhamr~ha^slt{qlpehlp_fiqbpefevpollwkurkonde^hmtesdcf_trpfpdimghs_o_dadsfmoimijjXuhqqYclojnxutlpdc`f_djoizllqagkupvnbl_hberthiphbdkeWjgto_j[ei]hhniZargnlld^nhjmugjadno[oZcriate_ljlapckd[oomjkneacoffefZbbidqc`acyreelckccohwqoegngklcgkbjn]uranad`poijjmeiu]mod`djlYmqichj~xfk_nk^rbjc`Xznkgc^lnjdqpXqcZ`nf[rte^sT}^fmjhzenh``lctmasnalpegjhhej]oad]kc`feovhhchs`hqhu`mggn]]hslnhNijirg]olUhjjecdjkrcmikenTmbrcaheirghcsjngdheohlolskjikfgrZ\Rdmlaidrlbepjdnhc_bbqikjcgejhiWn[nlbrjgimgbubjk_ffdggagskqhtho^png}xw`eqaq`nfodkpcorpnbomembjagbnjnthjhpcjdctjaljbghv_hflmj_dju_gmj`gljlgtl[xgd_eiq|ndnhptoumld_hgnoima`ekmyesnhehpcn[`^jaoelf`YmemuljrlhrkehknWjqnnoivkbfkkhifcndflhulfzlq^myetcaichrmrgdbmoxcdfhlronknkefni_exoxtZi_eehnoolmoi_ZrhgcjivlYRl^lcjeha~gjlfclsdhkkfa}jsqjraclajevhlwafzqtaejtfs\dhkcvcfjnhnrlj^\lgY_elnghohqdpf^iblbsfi`cdojjhookoshelebeg`jkqVlosngngiWphlkpu]m}ffktovtogcdei{uwvneKbldgfli^jzxeneufpsj^fny`kihoid`pnhnimed]cjfr_jjlddt_jpi\{Yfbhwvwt_vmnpkxlmjat}kjpettinq^uwgf_ocdwtyhlkgcgiarpjq{lgdmgfmyqofcmljmuhmjhocplke`gdrnzi[nmkuhdggod|mdiX`tfslgkflfXaiodnvdebvlkam}gquffdmop]mhYignucuorkule}|`htapmcgpmmcnSg]qmcahrtejhqhklnkn`jikek]\lqolfpggffbggalblvflmndwfdagbngsaiabr|idjj^n\ilphnhjnmo]rk~htmX{faqaepobrljp]mjckv{finnihsq}rrrjimoeX[naggyjwctgn`oofcchqcghcjhnenznehnfgrowmbdfsgkhg]ag`norYf|gajnxtvid^fekpgp|dgrjkebdmjjhmcemh]`qp_fl^pmXymioapdlvjpde`ik^tdmfgwldlif\ki[_isfbihYiljlaqljlimse_`gs_opuiijwgkteidodgscfom`sjjkcg_crdq^mf]cqfmqmbqfXheai\nt]afobbynnb{dlgY_rtdgi_rnkpdoaohhZno_zjvem`pgkbhxolenspkiflsnjdc}l\gwgkmfndcudldrp_g\\jomoejpwhvqeY^bij^_hjtgzrcmp`fajfy}lqf}fijpsurnllxkjf`fvonqhfmhvsfbxgnpnrjmi_qg[tmrgjuagoghmtqgin^qkshhmjdhcwrlcxhorjhulsrlpb`se|mthq`hoknqdlvgk`_mdjkanedqsWojrmujklm_ulteoinigldkiktVrnri]qjpcipxphhfTmillnwmqnruffSqlljnkkgimqhchuoonheiokjoho_jhlopktjmmlehpkkjjqbrnskjlhsfhsihvr`pjnklj_tjhhibiogqkcmmhigkjxfbtvjryuggbopobeuhhsgpdjkqafmgndurctuyUpeqcofdndnmlcdogikultbcghiksildnevabqpfsbogdafxfgelj`sjhqnonka{flkjkmniinshjlon[f^mhjzouqkrnlcietj]jpnr\flprq}prllVjh`_zpcj_jrfnmrkhjfa|jifoemcezhfkkgvnbgvkumblol{hpctkqvrffklf[qoqc~ebjtinflntwZkfcgcqw_ebfdtxan{pjfkfscjhgnnpgjoeredefojjrrdqjiodnlxhqlkmok_qbszujb_`jlmbbkcemvfnmqjihqps[bfriayiv\iilap]\lokiskd^bmjijphjjhktdijkmxikhhhgbhibcf]ijdkjtaijk]fl_pjaikynbgiogris^jkdfXipd_mmppigioekcamjqpibu_m_el{nfVhjamebks_uj`qg^jmmq|mpw~hkfcn]pewh]lrYgsoplbgwkygjqkkgq_nhmgigqhr_djakj_kcokhkhkmhs_rmstfl^jkgrlpyljfk_ekbjjqvilrgvrujghjZWlmttVlfizqkafsmqomjjoloor_ggddcgiltv{pis_qdinfufdy\adsxpmwdfkrsjqk{_icpaqmrindkcehxkjbcbbabngink}n\qipqoiqkhkocpcwmmpggcdygqYkTkdkrdb]alewkfblfmsggsqcrajwujbllfhtgpmirjjpreiibxap`tfeqgjwmmdvnhgognlnnhf}h[bnlhret~__`dglunpre\laa\pplqehgfgbeuh`nop]mn`mknjkcmu_hngcckc`qsxqkioyfakgrXajfn|mxljehrbhqlpaikkkiqnoskuggkjr{[nilsjd`ffgjlmkcpdhkiljoiiomiw`j~oxklj`qimmkjkkigtkjdap\hijrhfommc\`hglkderpnlrnbhnoksjdgeuZikmefsnfjmsqigfegcpockcks]msshclwbjfljstbglfsuokenqujuqh\kimmmurkej\jgbnZchwlmiahymjmghddjibl^yfcl[konnqldlxcgmgckd`|i[hhmikjqljuddhinfg{kxfblfemsjj]mlcbjjeuml_knniftrajycurskibjsnbndkekhci`pnipjmjpnb~vhpqhjovnwnns`godsjhchmayric`eujjhmp_Ydkjikkjenjj^of|pjecjftquowhvlkxcjlmejlu{mbirfdnoWnepi^zn}gd_h\smdajkje]`uum]niVoosmkofnskg]\y[cflqjhnrmlcilpdiignlprygkq`mnmjpmha`ka~paef`uk`jjjyoepdk[mnbekamf^vcnlrklgkfekpkk\mbrglsoopcskrchoqs^fqjcpgmkpjjyqdhpgddf`[Yoygyqdbonfmelojfp]d`gmomfq^gnsgblsffqpvjdpboXsfeini~Xchemgda^kcNcmfcfflZdda`st_w_ml`\itumoi^jxS_nigjcjidwiidql_pkwhann_feobfbg`g`kongjOgdgjeghicpaZoctt[gmo^os]soih~dfhuau{z]m_nb~ifYcle{hcqbimlkptagio_cn]cRulikjreqotiekljueohmiqbdnl\|mxilojjaihdittahjgZdarlgehmiklihhmktvehcZmu^iccse`j_mms^hc^[gkuknjqhbgbjqpjacgb`i]ikrmglm\mrXfesninsijsaoopfpdvbqo|aqmZnplfnic]Tk_uzmeb[kijeecfrjusf_ag_kanuaqhjYlijgh^h[fmighmeikjj]ksbeekkenk`cgeff^ltgnlkhqcwpt^qoidbemgapviuhctlnm[nZxftohtmx[\b_glvlskcphktc_nqnpomjglqqelqnalovjlrinfoguonogjkbgnn}ruiop^bdakgkglje`mnnuqm[aokhkm~oeclksVmodjmoweeoifmvxk_rgtm^phpepvibgcegfmmubZscgikosiS}jnrhsgrpwjZlcwlnkjpkmiancfs^k]ccgj}gmejiZopgheqgo_mePmgkkqeY^ikfwunnmdjohinlmtrokvm[hqmtonpdmljvdliggcbsw|moisemuprqafqjocnl`_whemxmjqimjfplgdhcwiillaxpmunnjjkfkbsqeigwjlokpnt~ehkkvmohjjtjjofjdctrlhpkdekg`kh\rccmpjssgpeildm{gmkabik^drsmiqfl`mnoyjlgmspcd`tdnepl[heu_`ejcclhTnohkfnqamlcfraio`lggjbphyvodogoqnnqtsjelbolricjpjjesdhxdjqngyal^nh_lkiciecmfmgtdXjq^gffyqznoslnejgkpmnjMmtsorsgooamdrkpiiiY\np\mw`l_dntdy]jiof\qkqnZinfqbqcckifsx^dSgdsvF]edtblmwihukkecjfifjmmodhWib]klmkj`erdkffalkavkgkpfgfarocclkaV`[gbmilnutccml^eiqcYjg`lpoihfhpraedmrbbxa]gmjtmlkiumhghfxbkddinlmhleclpkjlf]leommosfss]qdoihjikqjaefonh{qknl_ghYemd|_arZ}_c_nvokdllnmgoeoe`kkik[`ko[hhbhlr{ihhjkqvpnpok`sjbaim^cjlhpdozuc|lhmkuigedk_laffi|dibbmjgjhohkarh{odvoeeldbvofhjmk[ndka^dTeegubkfg_hnllotg\ooojduwrtphguhvzyhhlobeonr^{ltgdi\qpjwj_hpXbhmvgvejnepdkmmYMsokfh`ntipqqo`ymffkqdvneoffcmpbudounldsbyiuaogblnhckmjkddegdeipdilmh\rd\ije_lmntdegdqm_ib^mhaeug[onnafk~qbypkjqdpgsebocib`ipqf_kbiivdbmhjhkcogh_mheskifojhwnccjzw_ihsqnncmjkxwoiawulithyuhncft_r[aquotmbfj`zoklhgqpopjlijpld]kdchjsbnwpjrrl|nlqi_khejdmvmknnhen`ummj{jljfgdlhkowWkfmejkocjaTshlrgdmofmkgnnfi\lhgikbxplglbidvejhpo_llgbegnggkmeffc`uhlmwodieiicohenxfccprxakiekmlh`kjkkfhhaobhp_bgkcrbcgnf`mmhbkbwjgtdldkcwnjhqfjsjl_a`dctl[k`secpkvggwbjgqeev^hmimbgnonrvmwg{eZ_tqlzgg[gnggh``o{krjeflgwhkjiRiojjoh{|htsmhekaVfkpmoV{msl^bdlcicpV_jcwffalfefeohge^`j\eefkajddbdd\icnslrlp[mkogjfhUhJdclcn`aZ_mk^hga[kqji\kqmbnkoefphfeqca\r`f^`lkhusi`cdmdql_TmS_]fddhrwjakfPpjns[g|arbohgZiebebupmhfjnqfo]jhgkldqfrsbbtcisblldnihio]mdlcnjisllkgaoif]lklcdcqgiqjsng`eslmffvnloiiqmdnmcqacnohjtoirldk\endjf\ihnjmcs_mqfge^sszokbmlrjedrlhknwh{q^hflvxolug|dnqjh|d`pfb[pkYk_hitje_ddflia_nimjcnn`ingZosroajnmnyiigifemvkciffZjgqnlgqjeopkemubvf_du_p`MkmdgioreYujUc{sZ`meR]egj^e_ifqvbmihcmnpse\fio{ligj`silmlckeim`e_nhobtVhgty{lkr]hj{dumwggnlmscjrxnjjwtvnaztojtniixskklgjjnhpikndrpoabxmeduqhdbgesplfk~mievcpkmrrobghibmojjepfutjliomhudohjz~rhedwel_hskkkvoioetooerltpeZohhm_ngm^qmjdcji{_mghaepSifnikefjpcos_kbgohjthrh_j[jificijcjadcfrtiWjgsO_cmm`sb`j]lnnfo^kmorcgeprefmnelmdWbhpfk]nlwogZnbjl\n`a`hicqglspeevc^`_ljdMg`fmniklZml^chgk\kqcke]hnaffnmphmtjrmmkYjnrpi_ndnhdcjixg\mmmmjojbeglfbkgjcnnjjmiqqiichemqrlkdhitjkufcmgg`gfhlyj_io`j\jogrs_mlecnkke|^npdtqninknlngrpifkakfhddjkimnldneqi^iintltditbgemrihumalpmrinjviuujkmkndlgfdsxlxbpevrolyhljglmqiVfkreklmm[dnrpdm`egdogbhgb_x^e`nhkhgfooafmciul\tkXa\ik]fillmiot^jjngaYnXiZstyfhfckufWlf|fwepgigpkjhr__tcxqopj|odfoomVpOqsgm]hkqgwlojlhwkpecinmig_oeginmgmmtddhpr`mjpfmforlfluiipn`jkdoTpmkirlphfh|hses[njepjfpitggvnk`my[aawgoanoncwrhqqlk_^repndiaaiqZrmcwx`gcipjdf~tkkkijhfcmvcoqj_nn`pgsi\hikvqjmfchg_flZ^f\gejiltmrpfml_ddfbeqaesihii]bnd`mixrnohpebnofnchhmgmhhyonupbiop{msppgkcegkbpjg_nmssw`tjtke]fqjo}vi_p]cpemg`qnrgs`jpg`cpind\ksejblveqfq_iZgkbpoqaiqcded[kleeobmlvkogdmphZe{oodhjnofmpjtmVnidiigXmhcffkidexrhbuvk[_kgujreklqrgdpelmiqr]fohlnnh^nie`gikcobo\jzVcjdbjf[G_drctohc^gh`ermpRlhi``kjhNbhedbojkekeijmjqrekmoflwjcn`uhjsrctpegrgpeolalohmhhnhsmninigo`ipmgnigpnhvehsklckhmkpkwcjlhglqZuzqdvpemfaejtcunsnjukajgkvddgggfnowrclhfdrgghhopkojrb|pdmainnshjmlihomhksbctbm]map_pssnk|nrghobtccggqk`amheojinTpbnigk^_jgsomelvaoivhf_el^_omjkggee|qaltidhmoga_a[ihcsgeueejmmguimh]vq`lpnojfvjpkmnklnmlrtoojpoeYwyhlixgsocggfckij\eleVllkpljpllhpinmplmhladrgmpkh~hgnnrce{iijrmuhrjfukgfngldoujlzdgnjki]mvijjjovmthfbjiYkdgiZknljamkrejjkhlqjhlamfjfijkflhlchmfum}crjkn^fcnmpitlbxwemefwlkhcjYwnmcmhqjg\XypnghddflqskwgcakdabZ^bjaj^ieaqeyQhlses[oiucnpleo^hlWseks}lieg~edni_qoo_k\eshnybhnpdwfop_bn|Qmoco]e^|fiqn_^q_qdlmbnilWigqiobradoakvtu^cwlirpfeVkdfxonpl``cdihpgkr_hbomsxYgos{tmc|bnfsljr[{VrjoVpfekhkqfnjqyuwmlaiehslfkmOjdmcqrbpbbbbzr|lsdhpxfbD[rphjqenfxqtdulbhesoemkshibhmxvbukbtdknrndhiskkhqny[enhpfVkbqpliefmlokonurxloegf~krewoaj`l^nnegeliwfciopnoeip\qggdd^jfdlmiwjfhmlmnou]lifjjjj^jugdglegml_ijajdmmnenltss]yYymX~r_cjinvfmomhcdfgtgjjomghxfcw`]eaqlpiejUu^fsprfp~hejjpmfqehngftnfeg^rlfmgeigbiofe^bjffjmfjjtmmo\qqjfejdocmktugelfnxn[hjmdjatpstrvoUcicvg{klGlhth\fygjdol_hxqrrhzuqjine__gYhgagglcmmfgiesfecpondzj^qaoaf`opmaqpZoonjrmrsciidmoihkmnqddahmlejctfnpfchmjodkmqukimerneojwjisiocoigfjllrh^oddligretopmplyugkzjbhfrqbpcjwjkeilwmoxhncnhohkppcplopshll][jioihilndoolbknskolwkkwskclowlooebjhpsjmnnnjlrv]qmmpujmtqp_qfsolpocmlivpjqnetgmiupptpnnrhnkmmirpcneomjhooitjfsfqq|gkbbfptpjhljmkljrtyjsuipjgnlhijmkwbch`pjjgfknkpjofsdrlk`ifahktnjjqejnbmdjlkgchjcildfomlgfk_hYh_ima]hi`oftkjnnkjd^j_yhjokkfngioesqprk^ojkjokmhtviogiglnmchloqboeughsnmoiuvrxofq_[kecxladpcopqkdaeiljorge`g[hhms[nXftpgjfbedgkcnjjkftiimcpk^bemngmnjifebiiidmigXgktauqjhnfabeh{g`dfg[tkppcgjgenmgWilXfojof^ijetsoquhighZereg[goi|ygjjLfgkgb\`cckao]cpplnewik_emf_`drtdkjfrnjoocsjiZ{bmuiqllklpqhefujgkockkphm{npjdf}^oqpslVp{hqpdkmmjyhllb|ipd]piliqmkiosccieqjrl_hleegvu{ejo\wr`htk`^\jrgbvqgmnzgiirdolpj`Wcmipsfgegiinkkictsjo\}tqgxkfdiabmbpg]jqhytmipcqfw`hjcamarkd^k`ket`{kfhe`o]hhehrmazgijpcpobngodpmsnhpWpjqgajhfl^inzehkem{kzmosqvgqhy[bnfqhkpcnickfodpsphifpghm}`kigjengkZkojkeoojikpljkt[NgefhcvntnXm[cabtZenshilijYmd`kiihkfnnuoqehnjhefohhe~xm|gfmm_rjlemeid`{cm^^jegdoia\ejbnntddsd`shmwepahrqmnmYwjemffm^enllqhko`oikghui|jldiejxpjhq{dbfhnbdraqhnUijtlhihoi`mmh[mif^lfdrvfacqgdgom^iupgfi{kowefeiejntqnkeerkj]cqdivormlkrkre_ksrbwloihsidgqegpnmkyvimidjrfshyiicbvq^nmgdikmecotfcxislafd\hfjlifecrt_hfjkiebohkb_kefeos^dmgsblg]b`opnmkhxmbmuYngelmgefcofblfokhlgnho\fbgfhleiqfbsgjkrfhieiljlsfojlnfehviriegeimnfkohoghpro_hjmj`mjomfkpjcbzkmrhfdxi_f\qjislhgqnipqfmlmifnn`oimhcbrcnimgnhhkelgvdZkmlfhqsrfe`trsadfagmtfgqcfamlhxliksnhktokkrisighdsgpkuenprfihpjqQlbldln]gsdugiofhljjuosglqlmfd]l`jmnhckermtelvjejllpetijqprrkgjgkdiijZh^hvjmmjuopfykrnhcmo_bo`efrmpobohjgmqnsmlkehleqgkenjilhfbqtgfn`ldlqmmmjwvcgiggccqmmjjakgpegisjxklagjtedlnnoiqrakjwlbljjsgjl_ynrfmpkfjajtbaulsgrnliotfciovfgfdxkwjiwodaohjdjoijrhn^jikbfgifgmjeqhitvuiojjpnecaamrhlbdpimaejpiy\mdbqietv{e^vxcjigqqgfg`vjrfTjZqU[^fjpcnitrapb\htljqyqjngLXpeXUgWnkThqr\bojso`{`cTw\pmpj[bakmqrin\iVb\qbebsqdyPitxllfXd[sffZd\Ls_aVmygkilfgjbiotjfletikhkwyOrhho`kgnkpnibloaqtiqk_mcbuja`nghbqjinicl\ijfejhmlkcdsjcrgjfefdjkralliderejde_fnpwungfljjjhhpqarqhcf_gahnhijmgfefqovoefglkngahfpfokihhmghtixawkbqoqepmcuvhYaptkemYWj_hmXe{fcjk_ubilgi]b|rokolpbstejl}odbtjvWomof_qswxkdrlqphrgmjmjklldhoxwg\ih}skrgslbmqjmlc]qpsqhuhpbk`gbrhck_hPjkjhixrmenqkguifpnpgtoiknjggofjrrdzwog\gkymrg`joidghfeihegumucek_kjykogjoirnoiq`npglljf^fhthjjr_onlpn}{_tcdqqnzcsipfl_mjwdrf`jgl`jkdsjflxfpulgmqfilspjkjmtdlmS]qaef`kczgmm|r\picdv_nejolpcminlycqifeasff`ckoklq^vnoihemogeddoqtaelnuknqhkficjdesofdn^c]c^rpkmjgruspo_wlfldclnkrhgtl_fjtgvmpbyfimmtszlspdo^ybWnonptahjh^ikidaa`dmqhq\gkcfrp^hlifyk]b\hqlcfp[xfkYlm[~_qYZwq`wndr`|`qZbngcbmcef`iKali_w\dtvjjghmgim[`nilkcgfmvgknmda[ksef{jlliYfknk^_dbalduddoo^ec}_ulodbhntYbdbdlhtmVdlccxghawmklkjeuhW^bj`wcmk_sisr^fgfh`pdebignr`ppmylhdylilVlhlltqghqllpqieg`sxemplodwrlmejgkjehwvkikhw_hs_yl~`gnXkdnqggkoyobipdcftmrkk_clkhirjc`njhxo_qnnmfhjkhqkrhji{eolble[jmmhhndqYdeuyfhnliifgafnjgd_lcxaknekjenV[rxmtrll_cd^fcdseqpadmjmmkbfhW]e\d`gh|nbmndlcjrgb[agcndrwjmnq[oflnydleoiejqku\f_ccj_rgknnimkyjmimvgskdjk\g_q]ei^bjgwkherraXslbtlicuqcxpe_zmglhm]okooblkcdanhwxSeuijsZhekjqqdhncecel}f7rd_mpuVwhrgsibrgchWxmYi|jmlofV`lct_pjjnlgoidlgzfjjgieisplfejidfjmg|g^clweouWpnujfmufqaxj^kqakoedljuu_j_dgcysjjcepmgvsbephbcdjicnlhk^lXcvrdha_ybnfpwaq`umnibfnlqdqcitiegnVXW_kozcmnpkhcn_l`i|gfswfdarkdmgo]VupZvll_gaanvarcmffSfhgcflpnhtpjipptuqhnchojflpoarh^mgqbhkjkckkmfrp[^^jikmlahlnio|gqmmimmmrcqXsiaiqkgiitlmeqcm^cho`nfnficiejdykqpkjhhhijlfvikiwaviqkdunagkZpnfbfblkrkegegpcwfbkm\gjnzkmkglfhrps`kikfwajqchdtibzqn]lchfjeeikdll`zgqfdmtnkdlhphmkdhkkYhyto~epmggejig_`fi|rXahjrixsgegglgeYdnjvwuu^drjgmzmonn_faeqsobsphdbdmfjijhhqielafnnkiojjufgslt^ngklmsgrgshlc_hmdalofpqwde|rmdkonrlhrov_i]szijxtpZl_Tprgrvp{gmOMuqq]ddu^wdnVWuxh^xgbU^kfn[frea[bjumhmcifrTjlqWqlphmqkp|viwjlk~iZXkSipchenXcMNvqjabsgtnsophfmidljqXhpkfkot~b`e|ldgrogricjoqkjbfgXnqqoflMq_Qdy]hpukef^cohng``fjou{kfnh{fif\_k_jpnkhmpwjawlfjakk_fojkwg_]\pgpyfh[cknjlbncopgeial^lgjYauU[habcpno_n_jnwrlbmsm_vefpnnw{f_mkg~mmf_f\`kw{ivtivhiethgm^eksjrhgjgklojobrkoqegq`irkiilglhjgxjWhemuickrkm||smc|mgrdmuqeah_pgkf_nt`fzslrwsjjjje~tmlz_`niSgclkoivnwndqf[obm`ebtddawjcfnsvnviXkVlng^mZfjhdmsmflmbqplllgYwsgfghdXbbinTdkighdlXirocujdtmp}dbm`hlhmktpielmngesn^mbeojyhadpeedciejqlcbpmikqpfoffrffjxaqkivrY`emsejsgn`jdhhgfrhdyhlmglinkirtok`vc`e_hetraokjldmfvsonobonTaetscmlhifepiqplreyihpwYuoecrd{Yjp^jfy|xwpjbfmkpcxcjqh``cmWs\ddQktdbxsuppnox^mOjrZhtrVZafddSwNWu{skqligse^jmYXdosil_wcvezhbvu}fPilkukeoqvfjSvfpbndtgnhZuns\vql[xl'dgclvF~wnlpsknknwuhhmdriol^poqb{xjilqkda\jsyjJbtoZnaerknijihgeauqgzwujmpd^brgepifsoijqinVzXZepvhpr_lg}oesgmtrksk^zt_jtafWu]jiqjfuobsf`ptnjTlpgXlgljtfljOrxmoSb\doigktdpoui}nrxafakudYenqjI2s?in`Zrqws1hbh~a{uitxv|QQppvjpSmqnPvtdahix_dppbfqg1une[rlxvYoduljnf_mpvcounk~jjcbarYQ\Yh}bXba`XeivjdafKiee\ceakUgrleipekZrcTrzFp\dV\`eloqrmkgmaidolmfgmtilifqhnmngndlhii`k^djnwokhokqiekjooqxinnlklcieicigejnfpfmnsmhnjimahbhiuhihfkuksnmiljsh|kmligjctiqinimhpjehnfkaqltiojdnlecikjgmujyinkuxrmnoilkfefYh\afmjdknwkmlawhazntxmtl[_mmqo_drntpkmnuhemjipgoi{rfyLamihjoebkokh^kugaklg]cVndlrk_mqmbjifl^huriinpq_o[qa{yeokulk^micjTpSgfZomjk}jx_qos]dzorsiodkg_odgdsjhkqgnsnqpe[ifjfmzjrnjhjv`lgepoimwngbinngdjpbgiompikkgndiZijurjsqhYkgr`nosqgrusnngbeiulifhsneddls`xmnum`pffeeh[hlkgehtrd_qfjlp_cfflkxurvedimmmljgcabbgd`dtjkhmokajdw`kcijZsfsnVnniZellnmf]ywjkn_kepe]mocwfdbhm^]idmttnvpkcolhklbdxhgbj_qjfeeldmqpXjtZdikdncggjojadrsbbnttiiukhn_s[jUsi}_in_ckknefr^jd\cckfiv~jnd^hlutobg_sjin`m\ithjyj|ujwkmby_}imbmpPZsvhn]ejlgkkdYjnbztja^jiNglc[X_iin^kstpis`jtn\ubydesa~fjidj^fck]vkf^k~gkjxakglmboae]eocuqmjVb{o\ZpfjztgaVi[dj]knd^lnomqhepnnufsqr`gksoklj\flzmhrihfrjoblb`b^pmqjwlhpaqnvodnYpflueo`r_jmfthmhiogbuteedjgsr]imejhj^lnjifhnjojnfupbtudqlrdqgigshjk`jkfaWpyibemmmtcwprbjmjphiavmfsoeaconqq{npdonqdrh\nnfc`glj_lYxrga^oncfmblsrb]bejYbvckhkpqofmibifkogdm^cpcgintrxgej\qfjxtmypMnjpjlipWoku\tgrmus[gZyqRid~f_q`e[gsolbnXmxm[n{`lc`nakZq^rj^ntwzhtmimpYjzjdjossdptibntioie^quokoeknpflkdqmdffweknnq`ddnspdiy{hjnmhdqjfchxhfjcjjafvgowijpvjomdnbpg]ncaepgwhhelierrxgklvpdkfigcqjpkhlkgi\nedspajisbphoiweipgungkhmdkcnt|jhuiieh`phoccShnajwtefoqteiehekijkh\nraqptiqtrongielotbpdgr=u_dtaZebv}lfqhtnvgocdikdVoamltk`njau^hgskfmfuplmnbedZ`vhbroVerkwcnlTkqb]ih[bfb`Zgbwfc]wexmcfjohikZ\Vjhhup\s^fpmcl\lsiwnamlpbf{]pXPiaipk\iquk[icd_lhlplljo]h_kjhiXakofefhjcep]omarmlVhZkpii_k{tsPdlj[i^acjtqktwmuc|jaos\Mtw^kgqh`fg`djioMegfiUzbdXogfrpuqnp]vlfRjxmYvoiuminyqdkjfdk]jnflgnqkXfjnnklqcjhakU^mferqirloi|mhohglwp]sip`knhjdruglldljlthiohvwplmiib]qotv_gpshdmqnnbgsqjohbgmg_jtigdsok{kjuhemvpjiehhkohmoifaihlkfcoinmq`rbjW]]v]_ihgmmjd`TSqX`XhdZQJmksfWP`^yRooT^dnsn^;idIoO\bnoRlbdGseaujrectXqjpm\{\]Yhmpd]Yr9neJerpG_y`Zz[aC[kazsfenxlchBbgpxgcjg`Ttg]mssdQqfpNSmfgXcfqkwdwggvmigmpeoglSomghqdfffooj[ktiumyg~e~hbrkjhhigdcaezwhxeibejnpqejdzljcgpqmjan{dahuv`fenjjku\mZmtchcpelokd^vZqardhzbol_niiq|hlgfum`ubdsjheratpqelpkX`gmkwymkgwanhpphglezhefe_z_hcpjdepxomjkmfikydnhpsjllflieibfee]uhf_oaednoiimqtiqklasycddlaimggvghlkalamhgpfekdhokhjesikgjjxtunbfsmplqte`ifVqu|eg{e~fmjmlrnirtcnkdnxrqdksZbPkcikadp``qogfdkllkkiknZegjsljojfefhlwfdobkq|ghlue|gdtmgsrimivu{dtepkxkj[VtmkumtjgqpmpeoedhasQijkfhnibhipbohnsgchimh{rlrrhkn_mkmqrmpkq`\bgkg_sxk_lgjrmpmpnkldma`mdh`cllunglr\lhic}q]efhh`h\sqkqwff`qid\unnlkgwibmkllko^ramrl^kwhlXlQpqihfngkcpq]bdxrspledemheksvoZemc{juvngnftsy^gchlajlapldrguehxhqiok^ld{nuuojffi[omohm_{londgi_n^aoVpcflrjKpqfpdncdmprt_VtlhDdfe~qbOyeikuiitflv\ndblgcdbnm`nintpirxqmjgnlsfomePcyoohtighxcvhhih_fdk`ijp`c`aicnii_h^y`mbepnpfkhd]qkgMf^i_mql[drmcgmel^flkuqjp\aih`mmYchswddTY`odrd`bikvhcepdfjele`kohibifad{iljmt`hkibYqpgksbmyiushZQracsk`ba{mhs`ulpipr~o[oiu[qkgcbktjjtokzjauiedkssitHsYd[seire{kkqgeYlhYfgt`kijqjeapmmsoem]slorlikwmfiodmnrgcjqslgkihiktlsnoglakxkqtdidpkhthiijsntsjknepyqkqnlqkpuy^tkrjeeilgjztrhjpWdftitlmhmlijhlqnehkhmkipflclpvg\tiifokvhhgopgfsrhmjcp^ef|addfpencddfqaboojqkkercY`nzqjjXkWib^itoesraifgllskvjv`^spadrunghollshjmoojQjwnumkx]ggevhd_cj]liiq]iUimw^lkmV]fojowgSkq^chflne_kgnlkhhiimrknmjfm[`iridemkkj]rddmbshUeblieVuzhbdk]ihgvskegx]pfei_djjqfens_mgfglse_onYkmngoqlmqdbpcgtjgjnqbfbwpl_ixdr{naxbx_~relnmqcnnjljdijq|faki[inpfcpgm_keemeiouiu[lxitqlblkeilg`rxhqklkutdknhskohaldgby^hlmrkjj{\dnjVrccwngidlra`prhijwsgnogS^edlcrdnlkeukceaf_aek`rq^uapktvg}ddcs]j^fmmeewdjcaVcmjomiojm~cklhlnn^uokmdiokh~j{snihgo_lrmu`p`gjan\bimhddejim_~mqstq^rgiduol[UhdY_wdf^YYuj[lgfagkmo]qo\hrfg`^t_mjdjjpvk[xeiujoqiq\gud`qpnfhnccgla^vhdpmlr\|`ljcsmi]en`jJfmjd]sWd{gjzh]_k`il]qfqt\mjfgguczhtjqf_htjtsqjkhllfidskctpcgnddkpfhgjt_okmseyns\ggnmoalncflkg^mz`]pld^kjkhegdohjlX]mjo]^`nxreznrfrksov_oYanfdyowildrghmnq|nkp`qm_^^|Zlcilhbfo_jrliy_{wmvkhpihj_lcpfqcgfymjhlsovmirdntfhhkulmcglkU`qpe}mkXyZhc_h`igprskqghdrkrocmd`ojtihupjpinmlitlekggmgg\vohchfmdrfqg^bessppjgdmqbdolekcmpkrkheqeim`khpbp`oinj[tphlbjlihijuch\jlpa_ektgjlfh^dcZhjf\tld}ofogkhrlsrqVnhhsfc[fcondkZhojbplripsi^d{itflg]pfapaanabaok`mufraapnj`s]ymefgfjftabekxlrjhkdjyog]i[gfg[oukltnZjgds^jjmSmp^oftkeqtgXnjdd]dlxm`fh`gppplhogrWkjqihlgmpz`pdkbwkiuzzhndekcplimjuevhhi[jrqoiwqjkhqgklh_xdbotcxvmmog`lrhhbgd~gopzcpoonmpkf_hi}nifbqegRi~pkw_gdggiqmoj_kjl_di\kdijhdkhfa_ipzlheubmqg}rijjkjnjehoafiggnmmmkaiocjbjji^tiii_eekrtXienhelhkjeqgigl}kkj^nmhihblgikmwhhk\Z_htnkcoljmjp|kprglc[jvlrsrmqkkr``mjlkfXqciohvhqnfwkhdukngysbpqehViplgipgqm]bbb[pjcrqxoanjosninj^ohokfhqrnjghfojfvgf^_htjphlr__gkjsmcandt]kmgi{rk|hooqfl_eie_vgmsqimjdyouZgcmjhi^\onm_thozqegjmkgeaYjk[{idjnkcqb]jkfmiqrthd[qhehhrdafqhiwtzohjjahphnontlsodhgry[ekcnjoj{hloadew`jlefbp[fjbdnoamftwh`vhl\bkZxgkgrehhitilje[vnstvfdgejrbj^hjoxsmnifogq``b_dqfjbfm`cjmerecheyrerhobpqdkeocnt\vmyldnnk}pgZbdoigza]m``WomedXslkq`pettpceWlbeznflim\kzcodqm{niknjend\oRU\^mp`ift[kpWrlknjqr\ciHafb]XiijoScmh\Xflf`goceYiscgseg\[bogmplbsYbDek]ekkhyZ\a``h_b`fcgpoWiVWpgafiugrfsugkeomcnQgmYdattigKehelkm]lfgejgh]lomjec_n`[hlegqqhjtgb_g^\rL_anris[aiw[Zakvn]ewbcfjnpmgfbtoficetii`o\zjjend\\tjjrlmauihngvuhhkvT[pdcngf\_kyp]f^Vtrsvcegiwmkvz\}bret?qrhnkNmgcrzxidlopcRgffdcXc{cuRmxXs_\yobjihldvl]rmgpfcji^GY]gq^]`}miv}jk[jidjtqivi]khsl}aiacysnwp[has^p^m]A~`pzpCiegplirg}nqqn=mjfnskktlkkh_smsp}sqmKa{zlfk^~lO|ughzYPg`pRhjpl^ibWhilNcgkU\one_hmt]fpXX[kYVss\bgU}leHug{hhjYbw}jgek^~okh_rwg@mlo[jYkchi`lophOjmjecxjiUsZlkqjc|pfngTftTQb}cepr|dVnn_WW>qnjjaaa[nolj\_`Yefhbjman\jgilYknn^{hamcb_kxprdkhMf^j^ljbmercrkkalil`jdaXgfhi`nbcrkLnhggcdjjd_hg_jhissgkhjnpkQjaYa`pjnTjbWywljkmX_k[^s\aYbaa}m_nj>jdhbd]^i^jv]frklucqokbmshXb^uqkojhncnlofsop|xfnpnqnhl]oled_qgpknd`lh`nlqkr__qrloGkkikpvkyaipmrnphskdunmplmyklr_cibnmox[km^_qq{dseeskiijkaahbsv]omv^tkllhri|j[^ng{uoulddszijwgivqpnJj`e{v^Vifgojw_dhkq|ujkkehqePm^_iktlqdhq_deuQ^dfZRcYhelld`jwoipmhgqacso]qwkg?gljjsdhakbh{olm_lkvucavetjfVoiSwlwaonndpednhcofwcjps_`esmroQuokofrrVqYm`owRYa_okpzji[^hXh`biZXmzlbdm_lo`hq]jh_fsfygdhhobgpggluf[gak;`yjjipZYXexcl\dj\ipejeRgpbkq{g_ah[|dit\gVc~kkawZglbaojiQghdtk]q`roielpnmflng`xdqmyj]gdeUaakcg_ajrlvz`]glvhdVqg[iaqbncjlk`fgbkefwnglmmxvjjffikrtptdgaujiS_hoqfp}nifphp^\uruhwsr_fqjg`l^inlpmtnjdZe|jf]fieZkqebphcke][cpoacznvlaguZhfmm|fjbq}\iocpanchiofUbke\pdgorjldhkWbYfeaojclhpn\mgnhpfehgocepjosj|dgZl[jlfdZl\laaakefkvafw`fn_uzdphevbfgalplaccjglclsepjqpzjcZii_ahemffkekd`{_kv]id{d_e[uzdjmg\apintikvjh]i]_kihj[^mlidjjidkpcb{hWphphjn]rnfwhsgpaahcivvrinWeaqhrm\l~ntngwuhag`gkensbpof_ohlpanc~`tciiqp]ktarwjhkcillh|rgayjmeiUeachcfjavlofkskcco{mcdnXvinihhioe_licO\Whncpbumjestck[l_fdyjpk}ugpdfdiigqohfckmdudljsgfgigbsjhoh[jep^hhjgtu]_cfj`nzbrgmTjjk^congtgjSjheahmil^psmhfyidugfvpbgd~txhrhldkemvcennw^xufijxbbxjzc\cZyhpjtkc`mln[qrobpgh[tgm_pkiennk]pqgr}epnmhgh}erh[`ZngmsRgeBrN{YmcWuyk@rdVPazocrzrKm]{hkq/nMTXM[`oEkxmU[zhS\qlXlkyqccHvcvUm&limXoqP\ldkse{lXul{iWkjwjvgoacMeX}VciPouRqlUygioQLPogV~phjaYbadfdaalr|hemgs\ocnkeKsklt\h\jhhqmcuoiiuilfkhWfmleVjed^kcppg_naldbcejjel\^kb`gjcumb\kooYcllhaq]^dmZ_thqpb_lishdqbwrM~li\cea`qopiuT]pgisgzdchhujWkbujilajcqhb~oOfnhecoc|lPuvmmm\Ri^c_oS^fdcek]alqggpuniQicmuvldlpmktr`mo_hlipWf_kbmcQ{y`bmYhkd\heimndxcjAahuKdRgeg_vhm~bah~osbtwmojq[mcmZacngawlglegdwjnd}gsjxvpiZnpapbTkle]iqjafjfishhehmgnfreyoQehkaiwdZebmgXq\pitem`mkhrzfjVggjjOojcgbucpvPryfnnaw|h`}tmicqfhl`nix^ekSh^k]refmgfYditppcbqnmrmfmo`qubkX]ZpcalSpQzfjy~khgl]adctglgt\bZm{ftibbyjcb`pqbjoRpovh`kvnXe_p`Wpdqm_pvjuorYm]d}x[\id[Zt`iegh\mpfcPxpge`hkUpmmghUlkw`Viobem~z}g{ipjRt\UXagyj}dfih`iuiZ^[]mo`mghhcvskr`jmcu`aYZjuNg]SkiZcdo[pkhbpknc^wgaOlclaifvX]bfx__ZfhbXVipoql]f]kZWeanih`geedeocsk\Yrvont_nfXgmXblURfbkvdgSa]ciri|\]pn[cYx~bMm`cwffaVs_jcnjk`wnnjgl_ztPentSljaiXdcnmpa^rhjeubbYlcliXgukl_^dviki^iloWoy]Z}jrlmlgckXjsppZdk^jZfoi[efotjildkozUzkc_kvYbkpkdVl}c`eknbuyns_mYbkghwjeXrlos_wshahbfamhz\hqyv{l_cdXlv`{iibwbukqgftt]xbj`^hjeegpopawkakWsfZlvwspiVbrZjZVqcvrVjr_oog_gqWVkYk[`rhcjuYwVbj`qce_by_u^njVuc\q_q`e^[dli\LlZlUtdasiseqjmcir_twnjia[`ojuue^npdQlzgdVbqZZsglxpb\xsqkodbmgbwadc]}`pjdnidnd[j9xrzozZglkZnueuamfbhqtd`kpZkm[wnrctnijVP[ypTetdmgqiIak[rf}tryohsiWkbusafeofhffybeihtbgjirsXb`i{a\bpd_gckRbX{lhce]^[bpgeuV]gzb^kgkrksmasmtjbmkg^thxgSgc^x[_jcLisgaqkx[YshlbYiul}ifgfkTkV\bckopknnmj^ic_gZ~flznosYrpiphr]Nxr_lrhQdYWimsjylhWsegakcknpmlytheshvlfm]nclww^roZollZbqioqlfzqvlY]bm`hymZjcqjw{ffngsnmcdslgk[dpjoggdtmpfg\navsxZpusdrffju_udobqflgdcmgfvu`t~hnlgrulmjPoncghZrgpi[dshxju^^ol`cjh}mlliehjyiudllmatwrqgibojl`gnVm]pdq\kpksshoujxslowncmhhjp[ccfjchrh}gocfcsmgX^]\llm]aeqiiv`jglb`fb_kkzfZkcjdl~ujqlafYasTkfeqU^eo{Ye_nkfsl_]XglnlXmaj~]hgeu\unrkj{egUr]bnkaTa|biebd_qgthdtmkfmbctghjfoRt\^sD|rixB[ciVxfWNVo#HoibynfISnXeprho[jnngleicPjmnKnwklt|fhWYwx@ktgWznfbhc\mqIcGpq__ompupjmCghtrqEfnrHqh||dVN_wneuDUphhyGk^Z]Vkpemld^=mtXgp^puZoedoaandbikunhenmeWg`bkkrsbjhwijuog\_aapqikmtkVYvijpakccer_dslZhik_bdagjlyRXpRUeZovonj\imrjzfnZukouvggvjkslZ]laprhgY`bns|jmxvviiXxhWj]iokcueceSrt_paz_|nbyc`vuCjLbnYmjjr]uclacodAk|~vfsfq;b^usQxopW_l>XfwdhoS]{Qgj~oxjfl^~xry|^RNjzhk1t}ghyhMm}huJhNv~nkrnmuf}jXkMs`oYvju[dpB}naijnrywg^SafYW]pm|hpqoldil^vGlqbil`lhva`gbmipnoobfXohjmaqvdXic`\r~_egqdh\iqaq|nkbnmekbhf|n`unkeivugjUfjig_}in`ibekmnroj``jphljmgkjjo\td^aQ`]gesoj\jf}lomo[vz]bj}rcigk_bim_mg`|bibgjv^gZ_MqibNnU[rqg{rqbfh`rwg`inwWoi\emPflbqKj_uvwaZ[_jVzxdxgk_hkX[Er{eXUHgda{kh_sasyRcudJhfum]uqJSluohechQ|`|quuovHavPUtVijhwirVXnV^RFaQgfaWviqml]nottglj`sJ[gXc{p_\kefM}j`gRl[qr]`qk`_dlhdnas`gV[zcc|tsuvwfn[dvjZficwlOUoJuXr^Wcqhlhrphwiai~img~hYkekedihTppbohQVqgdpax`frxjFfo[dk|k`oooEm~rURe^jmmwhr~bsuvz^fgdpn^I}u{UC[rqXsvlf~_Yqx\FkgyxlPrykroq~gw`gdFie`T^poWkzCTnzhje_tUby`/fuSzN8qs[`dp]nW~at}ngjDxwcnhm^]EF1usjxwdIzeZrYtqhnvfitjkgoYh[bmmsmq\hkfeewjunycicmmgYcXgngicgmcnhlklxsxlfmuegj^gligkblmnkfeiswm[juag`cZfchjniorfnpj\_xi|ufoeggc|csetkpjuogbm^d^lhx`oglvla`gms_pvij~tj`lmqajfeahTXn[hflmYygw\otxXJv\{|iN[gfcrZRb~pkbvjdijwbhjhjrcwiVUR`\UmdlaQ]sqnIjh`rqR[psopts]heVocrnkv^Tfjprwj\y_nMnJyaaorebZAxH^c^msTfbbkdhpz]t.`tpoXgkpqiZV{ctJ`zmsl2vNfzqwhm^okgyhfukshgglcqSkYxm`scYla.mviuq?nci_mM^f[jZ`kov\Wnc`dpz>oqi]xclZYeiam{dfgiozpderzQebezSae`lkpmnopmkdhppjfuiptnpmetminnalekqod_o]flhwapfpioilhit`tqkiocjpehhgdkjmjrmmbpmtkiffjeaf_flrhjnrlsfokteji{igjjkmikoukkfkfjiujigikncokodojoihieljiiokp}klqqlfmlocmkbhd^df_asle^kzemerwrgjrb`xmntY]mgij]olmsjpcokj}fkaihpogs^ahnp}kkddwdbzbckmfuhb~[hyuuifsosskjehckbiwkhnz]pqkcybt}lprpod^sejmSoYenbhhibxvchlmkb`lncwno`rrvfah`gnkktjlubgmbWgehdcvhspggln^sebnngfrrhjniop`lvazhnmghikwthkuijrkdebpVhldggiiikutgiuo`kgwji`drqjgbcrc{lgwm`qskjjhVlilsfiysgeqgrmo`dqtdfupn_kodcrgip`sb^kblkdthhonnomeoeYjiqd[abrkfomdnn{Zbhlxld^xdgytfleaplfh_fckfdlzntc_rnarm{qlacykiunllijdtibcto^gy]akykcjlhljll`nmgbvq_mvgljip^lwYnQtgMcjm^r}logjmbok``hqbbbZphcdhrkm_ebmnpmmcg`lzlhp`}nd`i`drimfhsnTXsmi_mhngYzgdh^rue`pkpepmk_iae^ubfmYjq{jjuVaug_zeqn{cqm]dombij\`qLfzn`hagmigirijhijgjmbrklqinqkjmsdijhisorbf]_de`rw}psbmwjn^dnr{dnlbheuimjrY_qwjkficlinp_jjgubminqoojp`ihrqhliopyimahuoklwsihlqcc`akiekkngjdmofdqd_tblmeelerefhnxbsnkqnhjpjdjrfkm{emg`Zqrchjimktlqhh_qaj_hlaqmjlkqbetlgh]mphrqojveXmkfW`bkp_jdus`w}sdugd`bu`fjibn]^xftmhfnxgksi`e]lflsed_rffwmllfnglnallkyjPqc{jgejmeliwoXhplsoqd`rq]Vf_d}iafZkiomdp]oyp`ltfrk]vilejujo[omssd_qmhkZmsmbjh]f^vufgrojnvjaiqnpa`fkhknupjunla}dqggwdd`wrkajxnkhniihqr]hsfhrfoufjYgnoilhjghkfjpqlVaqeclfsgmfiflmszbmjzldjvklnelwhdpjmm\mhe~jalbosqblhulqklrmcglvni`hm~pxoeiindxgeibRmi`_stfqlgmbvdegkshehcqyhcxqetggpaaoZgs~fhgfAjppr^hdbkopyd\nxhaly`aQUo_ad`t^omhrbmhlkp`ktaoxlfef^ojeihr\kgd|ebnZjm^m^^YkngVedm``jdasmbepppdjd^Ph_qSt[lbaxmjlakwhYk\iwp|irt`UwwpvdkUjska_sVgjjmhxjdvhmbXoolfn[o|iXjbr{moegnjgmu}dgnikousbk|h]pdblhbdb^llpljcnu^{gmhcozQrdfqgigio]hdWhasfyueg^rjjjgnaeounbeukfPth]UmVbrkundotrffafcqallsvmi^_mfy|aidgailoj\^jf`qnemcopznde|eo`q|enca\okqpamwitlpkugqhkqjfnfrnifeknlxhjepmf]nhblagcprhpdhgimferefrfldmhxjojundllqmiidmmigfjehkb`lpddt^bnjTf^sPh_fhngpbgbdmxcqhkX\jckUPw\Rgt|`YjowzrlMmfm_j[n}fil`_[wMtltnfbsUf^pittOKfsq]j_ifZqbebprj}`TZJdJtehRkTTcqeofdcevfVcbgbeX{hf_motLThweJy0eZ^cQIznnrGcv[qn[Rjljfocrln_bsn`il|i`oVlp`giprkd^mhlphhbloufvkwlfi`rilrYncicqr^slrbvbqpkgak{m|nranWlgnqmqhejhnjqjrrplnoUnapspmkjectfaqldkQlkepfnzmoxtlqjodvij~afhcpflqwggfosppgxjjlz[sympjina`lntkhcbelg~`knnhrrdnnkgplfhlmkdphfqjimiedreetiphvkh`fopnkokpm~aqofdtWoq\gkonhrcpakepkdkfgmdnprhijfiejpjgjp_nhhzfmmu`knjfkldt{tfin[maiwbg[`recwakthemjetmldnpalgLi9^n`odkafmqimjgrkdzhslf{ohzln_fgizfb_fVatdmbkkjqpfiagm|d}o|lmnlfkxhk^t|prbjlrhkn_fYiZcmrmcdimoqf`grsXqkvt\yguslmppqb]anVnlbekxbockmcntgg{grqk]bj]konkcuqpLo%kk_enaYvkhexjlpd_eiqpnmjsbhcaslcubouiocqldrhx[nBjjotamfqxyojdkclnlbogky|tni|ksqr|d]_il^stshks{i^f}hecbryfjinmijxZj}wjtlhs{m~kgfpmyeeiruoer_pfgm^ojf}ofneghlpo}el`ilksepkslZoefltoukkWzekymhkktpneqhkqThxlmhepdn`b{`jumsflcfmpm^xh[lmfwivoftn\fgrdnnl}ocrgj|k|ifhbbgink_naUnildaZuobgdkkqs`ipkiqnsjaqog\yjymfnqlvdtpxvn_hkxoffjhfjigeohffvuifcjZltcpglmijgpmihihwqmetiolpkrs}fiieenlfdnstshevqpvahvj^aklrieegyllrkderqklrzsqnphbqrlupkzjlx``ehg`N\m_wlnhdbaculffynaZZpq^u]onustx\op~s|masma]ldp^vm_agovo|o}lvmKgjleqr|hofpbfcmt^lshTqHdamlhgolefaflckfmos_\tqpzo`mccqkuq=lhmrti_pipnWdsn\bbkfOl`iufthhjaL^ghbniZhj\ovnsZjwi`e~plSfm~ptlnxVjdimnovdm[kudnjnhqg{crjl_ij\csdimSoqdoukhfpwmongskfblk_m[qkki\dpmrg~ppc[hmovwduinsckhhkynkUkegnbwuqjbmfihbvpcsfp|d\p\arngwhi`^grimctfudr|kihmpahphlesejsmftsbiiensejhm|oijop`veb`mpmoeYn`jini]gamqmnph]pmqnmpfglekkdgr`earlj[rjphtgjgXuljamot^rxfggrepjm}eol\ffljr^knzmjdtlijthcwjcem_luthjznegj[\kojtnej_onmhkgklfnwnkjaprojhYlj`ybdbwqfmxrlfdhijeke`nyiZbnf`gfhq]kdb[nalfibpqhnbvvih^`ezgnjgrkrkcicpinbahq`tvuk_kfjynzqpikddidifewrmg^fi|eqebetlitqgetili]mlwiKop{ige_np^]kdociddohshekpchkgmqfiiutjhc}defpokgigkikmgTpcgholxXlbnrfhsjjljvokhjpkinihwjes_mspblffig`h{trpOh{zdguqimp_bllg^`bnwkqlzklnjikoqmoUpabijmodphfjkxs`ledqhluage`nnpatxyri`ljrlhikoohljjlbjpplekegyqkgielvgll_fgpjgnmfe}qhkcprjkflhtnnitlvulkpjekioplnmhnjjkisii`skohbhneowjugnelkklqknjfjkghcgrjkimlmkjmlkijcimeagogicfc`l`qne`Zjra{ghimeioobhfqe^dlalm[umtkrsnbhtga{fwkjfspgzk]fogljmzrnskbiapqsjqnzpxr^bfihcpcvmjim_qqawkriyqrfrvmmiik~rbcupgfjfsyckf_alWRbVlkf{xgme\pmorfirhwhoglmdkoxfmksoekoueokpdpiwjnkfgkhzlnmggjmjgxm^iifhemechngplheomheiugjehdfghnopmlqlnfpcljlmdnikklgkehfqplftsqbphmffdnonkhblqgjsjknekjnhhvjgjllpgjmhijkqou_dp[mozhapVtfsiuc_pdusdXldiyguecThkmZaqjgn_[naclhcrijgkhjrdj{nizvjpdhrijwsfsoeull\]itf}crcanghjggehijmftihape[jriWrrvVhepdd^eml{ge]fgwjq_hmkfhY{dlgrfcqaozqn|vdtwqmcbtspjsoo]\hbhgdgvn\cbhco}ncljedfxksbjqjnl~_qWhdqqmnqubzldqkgkp\r}qiejoiknqshepihjkrrlfnt|^rco_hpdcX`eekol^xn{`[jqpiqun~_\kbhhhsnnimamgujjqkdqjgniivowlsio_pJlnhhcdhem]fNhli]fnsjotGmgpef|ctmnlfcc`lh`jXd^urltlvhlhoud{f~boghegV|gsihkjdh^cpeac]bkmuwmptZUY^^ijincW_[dTsadlohjz\os`qfbkscol_`mdkeYomefie[dgiaglbmpmiv\jalos`cnlrl|qt}vg`lbkegjth[ff`sfddlglsupmikhalm`gqoslbnmvqik]_yih_lqllfjfjni{cvmnamlhqslf~honkh`gngjjljnruollpdjh_^{gdotmnosqiicmqgvnnjelxniidiocxpmjdanntjbeUWqfjqghik}m^fbli`uaoqfcq]jepY_gxjmeikgrjmbk\omlomlfenq\m^gfjofwfa`\rkngdWiafosopgdkxmpcedfpjnkjbjer^zdusoodonensvklesajeZmdrgikoof]eSjppiyqlwjnferfikjkrelboZfguos^s{^jbpjanfnuthhin_mfgpuksofcjuihllabknbmvuwhkrlghprehq\ah[usRrjwpmrkklodi`hksheliclejc[dbvorXnlk\rpq`rmi[uo_[pnh]hzrpbpp`ioo`fpf`_rjmc}VgqsZloqg~T`naqll_TYqjcbQpqzqNbdohhfcmmmsgs[opdPxvgl}rhc_rllxcXwM_eoeeqx\dZoonq^nfzgdqok`}_hnm|]mir_umoyvlb`afpn[noZ]YU6]nZxki^Zbg_]pfngljcimdrp_abfp~t`5[Xgbyjljmjenlqenh\q\ofbpdahkghgj{dajf{dqfflb_dlnwe\}e]opo^`ijcgxdgmbkhcqwdmr^xkrqj`fivoi{iqlnowi]shlgdxpeonm\`knnkgifp]iydjdahquqilpojfqk\aqjj^liihqbcfijfv~ld`jbjpsriejllehohkjetlsaphiidomngnbig{fa`]n_s}aseclro`yjrldxikfdozols|fdndjjaixhnfjnk`lgfkgjpmWcik`xjenmbtsmktmlcokz}bfdsb`gcgjluiijaeelhknoshuk^gicpig^gllpmkh`mkcf_e_jloqhnkhjkipajufdlikghmu_g[ikei^kppfmWicghobdmjhvrqcdjsllemhtpsg]eeig|ei_nre^YjemddgcXpmolekp^acvjjp`h`dhok^hqrj^kv][`ahk^efxdpthgebYoig`loidhhmeknolkdhfWgiixeknec]ocphlogphn]tnqrf|umcz`gdrjnbtwljfvkfltmtibjiqnbocprknciiam[ilnYvkkehjgaf`zhjkemsmvgjfsokqiei]`d]\kisuodkd`aqjqvtn\Wlhjrj\gmhXkbloqlejbfjghbb[tbuajgcjekcpoegrpjtooiqgqf_hoqjcqYpskknjyllcqkZkmi`dlax[fggklmjrlnmeous`ij}pjldjm__faifcdJ[nplVr`xeqVlcdhbd`jthqm`fabqhqWhrc^d|_rtlotXnogmnn_wektj_`ilcphbkfjpegsjakbignld_tmobhjijimphtf~itp\i|jglsqcsihsolnxtc[p}hecyjnjdorjpbdjgnopccgqklmm\tg\guoekogscsjqferkghl\bml[vkmn^jddfrj|_pepymsonqwsakopboek{hggK^bskemitoamjlorfqebukZYaknkhs`molm{uclsldspfig]ivlngrlipxgooiurncbf}lahfedeikoeipcbfrcxkndjdnbjkqknb`hrie]]\eobshi}jjnkgvjibghmuqzkrmdfhkonfljckcnmwekimxge_pjfnsndghfkoadenidjccjgs`lddojmoqcnsgl~lhgmnja`jjmihkiasmkfhl^nghnmimpgHs`mj]hmo|odrlpukknkcmlkskonnm{pfgvcphijshrpijsgllctolfpmpdoslfjdpwq`hzrh[niiilmrlvgpr\moqicnhmkolki\gedybekeeyjgdj]e|brjrl|7qreaM\zvu~bgrjsgnid{qSqir_gsplsogychmneskqsmtfolkbekjono|inqtndouZujcbeeOlgVmaoirmk_Xyf`mzdjlepfgbf|etqngyxenpphagYgXiol]eordgmghRirj~`[dw{klsbkljbglkmgu_{nyx{gjfpkkfkojqZigeffjes\kg|czk_cinqejggffnhbisijdn{ps`jeegbgdtec]b`uibkuhqpanfgebcid`epiptvfvbfesidrojqwb\dmpsjibhdufjgqqkkudpgekfqjrqsvfmbbh^jkjsvkjml^ashendd^oniohfmg^ilengxidjekc_llqeKnornpnh`nslmb^z{zjd]`luujvjixm`qtcscgNeeemjjjextg_rjhdmg]gdhiripjilgauegj_steXibglmiuplkmiasui`iypldfZpc_l\udevlegoqn_irme^h\oyrmmi]kmgapliltdk{nupxndmc^drg|eoiijthehqkjpfukofqg]d[qthnbkldkhfailjnh[keudjggrkpljiag`qjqmxps`lnjnrhlgcfairqqgptliapqmiwdacmknf|mhqlyZlpnbjkqqtflUotkyvorjegkfehqgqpxp{]mmvoqt_gdcdsjlr`rdirsiolqkbpcmggmcn^t[nanlcigdq\iwkcfwnppf`mdpddTkmfvpjekbjllofqgobmhlasp}dbYsmkfmf^ovo_hs{iqg_nilgbjwpjdhwspktgf_phfukfhgkjkimkrnpshpxjdhegknzwnfr~k^]fpqlkycjfjafironmniaihil_omojuitjkmtvmkuihjidguqln^dprrsgan]fwidtlgjlrk|iehmslcmnnpftoio`fnjqk`rsfugkjgxjuoijkmkeofmoyo}iqnkrohktwn{kp|hjghhrtmicZcovn``knmrpbceZkodtfijskohnr_pronjjqllgmXptrntbdndoieswngjKlfgflfliTf^mmt_\iobpmgfghkciviolphi`tlftuhjeklpdd~sip^`tcfmihmdhdfqo}gdldjgb\nnqrgkfgn`enlhdthvko`hmkphstlysdprkoecoqptciroiln`vj`jhimfqmipdfnogojolq^kodp_ogejaeceqfiemjkgelkicqrqlgruifkpnmiengdklulmjlhjigcxjgilnrljikhenfhdermohfgrgplki[ibqikhmdhkibirfljvokibc`pqfbdvno`dhqmhqpd_legfhlfndjmerigppeql]nockcdjjlsjpfpijeimjefj|rszyjicshiqmcnldfnngunbkbmjqmjxcl[nmimeggofpYhmkqrfilvdmxmf_gehlpibdrpgueejyphXlxl`echkp_hxvrFvnhpjdBeldmthg\okqupzqogyVinjjewmwmljmljc_LYsyrqlkoekkomopamkopsqojyjsokjlUiWpfsohnqgr^gcWpmsmpqmZhfiwkirpkjjcyymoilifq]j{yh`nttp_mknrhofdqmt_ishfhfgtomjkovkru`ioogkhmiiojjfh[akf`iuvrnhemif^infucjkg`|ibdtkjhlgmlitnhfmfdkgoY`gl]ljtiwnln_lf`Yri`flbngkqrgnhdiljfkds{ejdtwdijoldhnifp`hg\pdsqvpf_fmnj`rn}azgd]f]_mZjgrs^yswyrddkPg`j]llveja_jqY_lposfdpi`bkppktlykvorpmwqeegjXep`q]irtjeghfcVfmiWsijbiusbupgib|Jgm}oy|ldoclvoxfkvrap`ghjlfnfqoklowrxdo{feqnof`lblr[wdqn`f\unmkTqiilkpkitqqhpjstknrnaznizodidihufbnnhxa\Toprfsebniqjrnhopopfnidtlgrdfedp\_vkdcoflkwktjrqXyihysgqtfidfkmijevprqjwUlippchixmj^lkk]xvpxk`jpevpssnpjjpdhig_rlwflmgrgr[krmfdckgvqkjiNmcjijcpwqkbqgnildrpsumssjbgoghgo__qunjnoilcxjimgedic`|kiukdbphwdfnwkus`huqzg`jebjqedgpl_l^cofknminqomlo^gmZlkiunokplmhwggomhf\henirkXencjhrfkp`fhagns^hedpjhucjVhhn^ljlujhgpkhucjevzjcqnthofrjmil[hdoil{hmipxgmqhjgcsifdggjooqpcjhqqcom_khopdjmcjopmmqZhdniYngdkgikxokgsghjpanygnoqghlvitrm`bqvdeclpbm}rvblppohoksoj[sdgngizjlqn`geekrtltiylindc}funlwbfpjowfofgxepYgfq\nhhgsvlykxmVolpolovonlfn^biqshckehgoroliqffbinip^xhbodiqh\mmkpknbovquo]aomqnhfdqslupleh`sbodhinupflognez\medWfrfqmv[gm~fobcleprmflvran{nrm^ldktce|rsfehYhZfWvpskvqmTmcbkdfecshgayhrjq^ghql^cm_djgbkrhisfdideddoplklcsae[hfhemefpbvili^mmkkkvjukxlwglmgcbknaal|bfjes]h_ojmjijvfrtehpfbknhyoildjmmamkeyuu{dhnyvckjirgml{{brohqgrlwsmhvlohfltilpcgggj\thawfyhnqgskhvjh_oghdmikndo|jlhkbrpgswerseqrgompconktmlkwnnnYkmeuoermojeygdccscjhmp{hcgovjlff``hkl[hhrrd{jar}nrhpxnxZigmnhknksgfncjPmdhlhnpnhsmunpo]dlmielobktr_mfxkigkc]g_mjfclikzhlhmimc[c`}mdieqilf\]ucqvfohbwcjvjkniiUjbwo_f`t\dlZfljjls\ZjkmanxrkYxkpxlwd_lvup~siq|kc@|ktfoXft\_m`pnbdsnualfleOlZw\ycovltnle~]_ggbZultbntukmfhgpebkkd^`pipeigalmiqoingmdsVcjX~tfpqllwiljmkphjqqfTnsnkkngten`pnkkehrebcoemo_meonhivl]smkhriigddrjrmijmfhhphkmtlh`fmpoikeotnlqtoummggnkbf_ignhtbkvdmjse{knsaiieoilmkholt`ykhh`tdjlhkgefgkfiigmderkfjgxphplb|opctWjmymhplin[oqtodvoqp_ph`_miglfjatbnkhligitdohU]`f]lpWiplkinsvqt`dkgneeik]belnkah^rrr~sdfZa`blbno[ikc`heehhdngabbhmke]mh`xobcllmjeyn{Zfck]]u`aetlqdsiuhbisnpimntipknac{iXsvem]gsklelaketlffeoki|cnmewnikpnpd_VrgehrmrfK{i_pmll[qob]gbTPions|egsbjmrqjlgyhqmlpdjViebcctlmvnivsijmejmxwyo`uadgnnpt`gZjsqj^wjHrjuqjrollcgk\fjjqkzyniaierebbfrxntisurbviieZglpwifesbskkj{nlfrdbk\mhnvcbkkfkgmryifvntuzkjklmjonnnicijrlhssgmhslhoffl^nfqplcgdplhael`lnbmhmspkigmzmcerurmnmnbofh^kigjreeu`hcpbhqaV|[prraihsqdljdpgiqclapy|qefYklmlopgrsiig]jhnoillhccf_~lifljp`XqYjlpQbtl`m]eglxormeveqmb|iisvlfpuh\pndn]ijkcykomktbaklgfonkhklrijKfkgonqz~hhshsptljscpndjonlh[ikeophrgjirgfgtbgh_rlbbflkcuczfowmj`uoeblpasrkqqwjoaikfjlmsrrqhploho\kmdprptwmqlipfcmcphoqkxpkiqj\jhgZmgsoh]obyfogtlomiqkrgishi_olmn^d`hokw]ggeenwqjkgqgjmbm^^ezmphloss^fejpmfctpqi|mollsnzqh}nphihjfflfrltpkbglmgoekfnlpahi{ngmhtrvfspiokkigmfhgqhgbpsokgkgonejjil`feknhkfnnjtqkw{ilhibmiopinc}hdjakfnahlihnbiltjnmguZf`hjkjl~enficZggwcpljkyorsiigfnixmwmlotcjaouprlkpgrfk`innr]pdamckieaff`olp^ektkpftqcttubsi]khejkrmqwlh}nnok]Zelmreqrnibvljkirqclinmowdxnmpqojamemxufm`bfdwmjljlpknhYcoaeggijsfhud\pfqpcxanrbbjqoghpahn`uhqeekqppc{eydkjembsgaeophqdwfxglYpjipmgnjimdxcpmkaicmmfslomikvnuc{rmdrsablmosljmZtihnaiqljjosp]aiUlhmdpunoghckOgrokyouhlnhz}uWkxmiknJbqqe{buVzlomktfla}ur`ghKvxqkbbjm|fZVZpwwqnfnoooekktkwg|nsvz\~mgjplj^caqlsfowrnnpaf^qebyzTudurnUrvgiipa[iqsvthmtr_jvXmkkhugkfscljopvo`nvctmh_tghzkie[xf^picng^idwmhpfuowrxptrssixpekut^klwdh]hjkrt]jovlgkcieo^mlki\pnrwrssp~lao_ikirgnfodkzfbfs_n`{rlilolbktfZucmtqfvomvipngrimmr`hivikp`uioarhguouapnm_hclu`riihqj}gikh^fgjo~kl|desfqxmlmlofhktscjjuqbmeejijdd^lupfneniauem^qqo`Xhmhkk`jdmfmkiqlRcggooec^pk_lhwhkdyspggr{gjhmginlpegmdwovjpsffe^mnhecjdghqj^agghdkkeomhkj_clglcggrnkflmpognopcjkhzehppgjelstdtkalfhboaofcmnhghmfckejklqwlnrbhnfshmqn{plkvqqjrlkdleintotlomgejffpinrgmkknpbukdrhm_focjrnkmibgtfknflngigmkjdkqejuYgnps^kkeWfp[gnhxtwismlcg_oggVaujj`rhqtvfjfv~ofqfppiameefkmlishmhwyma`hZf_guqmpZupxiq~j{mgerbpdaemxtjtkkp]fmkvskgg`hfWmesnhqqleqjmfjilXdl^seqnth_eudpacmghjgyclcbkiemi]]ifdmpmnhfhopnfe^rlidpur~odocgtvoecvrhghlb_gjkvktiwfdqpqoommmerhdqmsfsrs[ohvnyl~bm_k^hfroplrxmvceavlgxifkopkind`uzlxdhljrnkpoqunkb`dse_ohifq`ktg[gnp\onbhnb]clinfmdnghfeb{m}qmleafrgkerpifkekjcrildeegolmfjkuZhhbjhhmphlucilpil`d|cinefinl_ntchlpiucnkoecprtclkvtbhpbqZlimlfc_hlfir\pkgnqjgteleYnkvjucU`xldamgjimkglpknqoojrq_gmdgodon{pnhtierlhkjiiiijtsrnesllrhkilwmfhjupnpjibmnklkpjer|hmy_elkjdfniqnomo_hbjrbminmskrfj{ggh}ikirrepgklhgkg|cnottmgsrfpkk]ggompipgaejokpgolodaq{rprjmvXqo]]e\^`iwlqnsfzf`hqg`dnpga`ch^hdppiuro_rthloqqlvukhel{smijorlqndg_^bgeRkgmoikefjhogjhlikiuunknxVgkst^ly~ckoYaUpjxerzc__cpkhvxmWnfhfZuVsg`rhtrpqj\wenpigikvetgl``ufXfpj`gllt\hj`mgmvpnpmeZnbanhjglpvmibxiljoll}tiymiio_py{gdovqgqsXonupprhgqdfkof_{tybqhnhkpiuofinrsulsydimipimnrsenveknlbpoti^ltljhrlfxhldpbihjhkimphrnhrrg|vrl{wnbaworovhtkphdgYfpfatr[f[jlfskbmggmya]vlqk`kepo~kd_vaaiivgqf{ahgik[t`vqfjekpgg`mviosiopiogpfotq__or}jjrzhfvsqjwqvlflpo_v~gjsocxUdxwvxgjnkkoklhumltbjldnm^fijngiqophgigmrzqiiokhieqolgnkkgllonohkdhp^dpiigqfdepukrakcpcmkplospsekmhofymkkffjkliplkbtjjqitpwn`gfhkotinbickoniukhklrlolc`nqsmkpidpfiitinR_sevphcxgksrbp\liuuufghjgxmqZljbmildNk\]bdrYmlxbumjdnxrlgkciy|]mdkgkVnllggotjf|eapcqUimgg[j`ikvr`lleJod_iwmhlSanmfe`hnt^xhdeksier=hrarn_mugd\jk^Sjfmnmcbikounpqhjg`gjfingohilrookishmcllrb\snldnkfihmkokmsmkkgolhikhijsklglkdnfeiejnn{fpaodogmhjkXotpjpodohtlnjllnpmliijpepsfiiidhmge]ianhynjuagkjkmqpkjhf_tpopldkocolkgkllgejjqlznmpmmsmfliiuqkor~hkpfzs`chmkzmjleWmOvjsnmtdlclkedofkkeluen{hpxc`disvjkiljohobjjll}te|t_gq|sjqrqnkrvwgoymd]ulodonpkaoos`hgntmjnhjkjjjimjegijnqalggdjekgfleelppssogldlexzjhllocopiehwsjiknd`llhcnRKtfbmqbhin{fi[tlqqibhdxjbum]jkjhklztmbigo{qtit[sikollglgmejugciskr\el]egkpmfehhbn|dhliZcorgwjsmpljoqinLrznqnncjosgfjjhdfdNjroetlhv`bmuhnfkhchpYmdk_nyppmpmkrnniv`af`lsp^eivlpminaiwqjbgrbhkoljfioetrpouivoh}hnmfmelclhmpk|ijdaftjlgsxklaYeiooijsqngiffh]hr]ilbqkgqsypkjocv\ssmmn[gbirflfkunjldmjipmff\l`mij[n~kiieinnipinkmprsj{ojelpml]ofjsjxnhik`ogdnZhqo`ycw\hfwrfa{pxmjnrc`phtocfgfjelVfzolglbkgmsurgmjigjohlqcemge|ekusckrhniqiwaiY`qkica]cfiWmjqtiu\bli~kdpgjlqeqsekjoubngpdd]`lnlloirZthngknlksogogs_qjl|hbvnmmojm`fskfhcyhjgqjxbv}zXgejjfmuphvbigmb__lt_Oozo\lhqfooijncxhelhvcvhnwdbfhvo{bulhmwg\f]dcnlfiggfsnfvlxaddhwglsegj_{jlhhojhhwrnhkvfmtciflakfpqidid_i_^ttelrklgnfonigbippuylu_qjmbkglbxjhbryhmhcdwnhpkrjkpedfcf~dilmvtgvgol~jn_ordgterik}prpmct\nrnmlcgv^ymgmdporkftnbuojphzjophhjqlhfceiibnlbfhomettlknkqtjgsdjynn[keb^diYtenhmknhardgRucwVjbeSgfsg{rZnilsfcjciqin\hbqiqellghqti^onrhjigfad\pkgmxgl`mhiQjmnf{ktumlnavdh^hlvvm^qjolwdpdiut_bwlzmqfpvngdu^jZtnkqdqjehzgikpraronflpd]gebmiloefpwrhw]kkcibtfeze`rerwmpmfq^[gjgexfjginnwpg\k}onfkd^wlbhi`Rtfcs{mv|jtkgm]hfe`jiotookohd^ilbmjodnsjpra{feoeopcknnl`jvejckisjc{eqjphhwojfmjjfmjobfbgkhe]a\o_qqklgikuehZcjmlnfsnkonjnqmjhrj^qfipplgngigonljtiYoelbdjijsmehoh]ihwpbegirktbqgxagtkqkkloikmklnhbmljgqcdxeolkbmXuqiogporemlr{qrho^fpagvcufhnmgjmklrsbr_jrmh`xdnzys`mprkalmrkaapmeevqgpej^fnomke`oljbghkha{gqduxtdlodggclabnefmjv{gktcehqvhnle|njgmdj_gpodsoln[dplohgi`kueifkll|omygdqailrarnzolhuoekumfmkekkfmjkjlfngnlj_fmvvme|ThqkdeojzzLeo`lodlkbkuekrw_cgkl]un{erVr]mgibvknhfhkonfrjhbrngjihdmlidnp\fcpxfm~mcrbrvghxrpafjxlfgqehlsgkj^vlged~ywiltmplbpklljqflfflqhnglqnflkomolgmogopflpomqensmcdmgqhfiumpfrddglooko^wostkijjpknqikvmifjqgs_jqqnovmkpjpjjhjpspo[mfjj_olnbcldfmlxqjsilcir`wpoli`ogwkfrjgdqliltinyiecjjtc{keoe[jnkmssZfemappcittkchxotinYqhktqjf|{gfuq_nglX`ntXplikvojcpkkjeciangjkjhpomkWhkeZmma\jdimnhhvhrj`caiffkrgrchcjU^gh[liojj}emlQjmnsght]mvhbyfabuxdkiXlwl\aciZsrlhwswhrj`qk`inqleslljdj}oecelnstoqmklpgnjgch\mpsprh{maokkcn[iodbuuovotai_sslpuppfnkldptcujjq_kngfjtsyhku`nhmptlskm[krhh|eboddroZbgZhic]ditSggbkmoqacaghXgeizn|rhjctafhsfj`mji]^wayfkazWnsfljcr^lVcnmxkvfpbzcykgkokbgHn^]_xfmW{ejkYvbs]ruebcbvh^rprdvfzi_hrxmjfqhonkjZn[Rkdjpef]cf`^holaijmm_np_ivquns`Zn`ehdW]lh\`paVuojjsc~hgd_ofefomgnznTqpjnh[il_typodm[gdkthkqhmmjyqtlyko[uXlZoppgy}nzsgadX^lnqq^|WkfpWyo`vjm`buetoaaovVgeqicdmlcqclersrt_sY`hdcrnplonmwjgiif{vypgunrdpeslepvwkikqmjiqnvg|unmlhbmcsptlkginm_bbhhgocfmilgkwo^mi{mrtlqbllgdtukbxmpjrgZkm^ripkktphlXf`kgjvhbsfghhojdskhrnnkjhvelglfiok`gu_ct{hlp`orSeg`nikb`jgocc}rnwdkc_kvalqeaoxmlfm~ofproqthsattoohwFllcblnfirhqgvkphgzesmeVsfv}}`lhsawcrqnfrbjfnafdnci`?:Ypbooj^lgle\rhmmfjeeggcnf4b`oflfohlehznpehjns}eijittkrmjp_qkrz{ui{itrsm\jTiypcbgZ]ifni}mnsmpdpZsvgfb]jlvqfhicpijw\apb_aqk[nejgrxkmshjcjmgh`hqinankoy[o`ohqnnjtlYehmfr`lkhbcrdovoYl|mnE|d{ixedpjhipkyqljgohzhtitbmykj^frlkjrnbghVoasjath`k\dmuoojneopqpjlYm_wcgleacktadctmjdndmgchefipUghnqrcrhkinhfehjecnxl_givijcisilqnbovneqplgle_ghlkmebokbulqnn}gifld]lkmkmeprrfsmxllrkp`ojjuhjkgrirskvfd`hvqgwjhfjhitrmj}oqqdkrpgidqnlfp``pj\fekqhoh`jivjbdoljefokjcikt\jbnklhlhmlhbqmvkjwrknduukpdkalkhodpshlfjshdpve]jg|gkindkmkpklilcix[gsfojdhgobvqjtqj[enodfdmkbx`jkjnnYcglicqiieillhipxqVooefihmfqerh^fokr_gcjlmbjjmgmcxwefgzSfg`qac_lsfcllnZdfbmstihsl[bk|jnq\ybdpbonmw]kltmype`rb_~kgwo[jbbgnlhnt^dZvviteIljpob\nplgfjooqjjjvbskydtjhdfeioiobmop}hXnnVlqknilWbsldhgjvllspwgnlulyqt]kkqgfuivodgpmghijfd_os\hnvlodlg^mnm`fu]kpmlpfevtefopzh^l^rrtbk]lkjyeldemcjjlxhyphkt]fdolgyefnsweepmnegzkidhwklwhnvmpqfijgk]ozlxkf_jkkohpwakgqiot_stovjlkhehmghkkmjdnmjisvihljvp`xx^osnmtbkimtf`qiiojingyrep_gac\lolihigdil^lempmanfjoeimohrpa{ajg[ayorqmlbktil\qngj`km^cgmgembekomdmkfi_oqpgfknjilg`ojtipq{goklviZgf`ohzeiWmoni^gnhkm{llfenkk[{ujullkjcdbhlqdj]opmdqh]snnrlnnoheri]lgi_cjtfnmglqihrieeqmij^djbho[ckhskitkppehlggjjteojgnlqPj6i{\hoq]gjcjoncisnpjkjnthrnmhaiqf~^kifp`tl{bucwob[hmpfdbnitujdiiuqmtalxtksnvzgjhhkndbbsle^qujrnhfbjgrnngmwlnnnlfjk_m`fqm`ik_eojne_iZhllhlsXiili{nZhnmqotqsSjIlrdlv\i|rtssfqqhecuviijtgzfnhhkgjY_rruieb_mpkmhmdRhmuoqlqytrrmiegieyxldqjtorscoxomajp{lno\ooblamyzh^nonpuoty_johphjmougmqxl]sqojmnphonilmztmnu{hfpmnlimnsikljqepeipnh]pjklkcfikmnulfuklmoqimfpumjlpogtmxknqhuhjkelenjipgboevjjo`kmgyrppejhlpnbkmlcupgaadnpcjmk`cnmnmlfnjkoninfbhmgjoomolfdrfb{gepnwihg_lphcjauisinqqodkcoqjkl_dhjg_dtgplugnWnlpmqdlb^kcjhgi`i]nlrr}okh[glfgQmfcgejqkgmnrfgprfchil\bfto{nmgkhkjlpxglrpiudju]`jnnjvkatjok`hrnklofudd\|dlyjkd_nzbmcldmwel`jelclhrtnworvg|dwekig]dsqa`f[hhisraqs\ru_{ij[]hqkknhrr{y{girrfdibiaeiosivlogsdkepfiutduewrye{rhnkljjgnywansllou_vfufifbcoocrdgjcgiws[lnkkepfo}nqwmjmioiewphikljrgdnnyhfioogplipp|rgqi\kkeh{apulmmo_mgeieobwqjjzegoqgpwfljfhnxjhljvggumhibcjinmbmlhreuorgoske^filjcumrgen\d_dqbietnldh_kihoqbbgdhq{~fjgoncgjhqblk|kjhjkvjbtnkakjjhjwdimnnjvkfcawiiemngehgienjngmd]njcmg`|mirombiikqgehohjngnfljqbsjqlobjwnrhlspaZkkgeqghkj]jhvthosficjoif^hfenokasoekjcjaqjn~fqlek`shnbyrjinkqwmmskqnombjgywiknghkc{kkpwl\}dioqqqko|hpnsjh_rm]efaqmbnqm^aBbw\`YgatZqX_beg|lmws]dp^`dmg}gaapjes]epe]tqgfigb~bhr[ggmkck_fhhklqykjihmi[ucuyvhahjsflpmlncigyb^umnv^iyvimceearjdjpdlnbUd7eijip^knjvslct__bphem|lglZuihcdghgobgl`bjfep}c_afsnknamniemjrampzlTixkfnlqqrddqgnnlarnbekljnwm^qhhqizoupefqlsfmokmrvqgsjbiinlexrhisgsnplfnipl]jqhjjdendishdmenrkgejnghps_ftipkmdodjprdiuhtbo_nivbp`ai`kltaljmefonnlbtklxnxiicnnhfvgPmql`jqi_otmgykxfgcirfhweqiwhtnepZfnslcmhmgcjphlemnoehfnl_dempw\agjfki[ipabi`fgdqnpbcq`hqvebegrnkifik|h_hjlrlirjdlmlen_tqgfp]wgn_llpfo`_lgggkxhuelphqjh^lw`jdfvhvrjsji^skhdroi|fio\mho[nim`iehggcdeslesineabYdJdjamquZdSmd^VtU\sajqgTqhHpmbVyjlmuippdloa|neeulvlfbd_seng[hyRingjs]e}sfldrmUOjpujqq/w_btcfcfj}folx[hnlup|mmkq^_tretln`]dfthhlawxmp_Zormqe_{dYkgcuieqidnklnjmzemlcgm\lkncTlhrb`lic^k`hgtqgkghlr`sd_hrfugdqdoneie]nhuoiijldbedkohkv_gmhjrjjedkjdgr^etgl`oonkhqkbhrldj[gejqgcdd^npjjkmqlrl[nolxd`cmcqfm\fljmimSfgthkdtrjtmuem]h{oZdcw_xjnjeiwycrpkmprangfqftodnhknu^moqm^cnrxlwr`cftobnnkezgj{r`_Loohepkhjklid\jsyqijdk]Yehfv[jdjahwgquxbo_ngbgfocej]eko_iuqgte`rpuiteeemp`lmkosnqfiplf|gfmphmmlubte^mnvbg{lnjrkopbqwkhcmckjweshphdqdred`u_pndoipmezjefm^pghnjestkjghmik_rrm^mhnphjlicgkmhqq|aalnmjkxhpkphhdhlztnufdbfg_fjmkqekerjn\ia_pcmtmrmlvihp]fgrnylcnjljlxish^fhlizfpfpliejdrj{_kjjegbekeiikilhhojlimhfhnpeokohruelbYnmffihfids}hn~cskhrmhnapdnbrXnktpijsggjj`kqfqhivrmelbmhdf^dhtejbwfciipbkfhhogqbbelsjidayvlf{ip^mvt^g]bqin{krsknkkok]ek`dvnxkohbiipg`klggv_Kmgooapu_qfiojUonozmpenmjfj_luxPlgufhy`\Ynukc`kkkljioaRh`l[v_ocrqqekoyetzmk`pmjgj[_pxh^x@_esdkuqfegijfdh^imkgeblqopaielf\~islph^fljlrzt|iemgdtzqnbfwimdjfxrpps_jwlldpofkcsdknxoeqdqdoehilonvdRoogaq`gxmsjuioqhmewakmm`_mssjmimmphinrooujkjoj[kk{jnlfulmvwrnfpOilzhyku^afkeinlpjjupc_ZakvVggkdVpq^kfxzao]tbpiiadkioeecZr_pjwpheyrtjmrVoQk]holYuo|fcypehdtc_l_U~fkV|fe]bd{bk`c`qpcht^grj^lncgdptJnok}_dffndkkt`k[l_dobadb`lZp\lfeWdTdnsmjbdjsntiDkrrjdq]o|jj`og`pocbgcwmojkfolxpqcyqa]cpbPhQdrjce[jio[wzumwqlnn`lwlvridmqgpkcwognlomi^sajXhyjasiimkaetw`amfcrgiomkcnmvd{bqpaZonlqdjl^Nlngcpoael^hhrkThviloosmb\fmghkjtOakkqnipfvfaobh|va_mranyfWegjkcib_pnkffphoiisrg|ao^dm`Juck[qjcsufn`mq]lqph_q|}zl{lca}twzwaaerhiQms^sg^j`fdZsmdcik|]pw[_gwjeikdhmsfvqimimp^imuuudhbqyesZh^oslWj[kjoncabeqqhbligkmqooirmi`rmchomrotbltc`zkg`oRmkkPf^mcninjjjmctktgmddxeprrqpnqjukxcgtbinflj`la`eokobkminicdkcgrffnyzwpqktrhahnnow`dqrenmn{oofdohgrtnnmpdq|ehhfleeqkmpvhfplfneivwpnllkchihjtm_dfmqmhlqpj\tnqktkiljhaiphjarjorjpitasothhvhnkjwjkmkhgjoloqhcmbljownsfrfnllpoxln{pccndkiohdsTimnqaF\LjkkbjhgqpLceqftnrrqpbkZabuqgtpfivhZbdiikbvtianydp[m{jqeeshubKh`eqpf{{dmjxof}blbinrKfkdoacfhroalrafchv\gZfcoii^aoaowlzhjibLXhjtpptngdtqfwirht^d^dhffqjqf`bkgeb`dbqbku}scpljino_\idcgypp]inash~fofbpwrkgclTWjiljklochoxp[io[ehegwelhloxnh_}enhnrZhinh{kvitdn_ecnmpbxdvi[jbconigjed]irvSdqix[ekylehi_klgvfurgpYqfvesjzmzg_d[brgihigdehlhtwqrbkgmkj`titbdbwqg{wihlnij|suherkajspU]jhm`ercsk|jtt\hnrksfj^uunnq{`a^_ptiej^vfZo_`kYpgmgbnkkeeeijnknclhobmf_rgfvn`cm_Wf[smbBedhflsp_f`Ykqn\}eciknx_]oan|qfgtyejjkekmkchYdclrqhc_cjgjlhjrsphdjohzatalguhaj`ufimYdp]gmonigijbshrpynb}puiaiiibqmpjncvpgsak^mhapif]kikz\eziponbjhvVrhh]Zfq]lijqchqruefjpboplsrlwjbcpjobputqciUozvmojqjnlpqmmjakdoujxlfkdcbr\p~aeonje_roifdv{jygernmiva~jmdaosk[hrv`ykrjqh\npeZ\uiuhlqinrqhp]vnd_sicg_atwdiumWmojrrsn[lfglbokpknleqinl`kzhuldluRf^pocnlg|qjkfd\wlktahhiudibdjohhzdshphlsfsho~hheqrehjffnkom]ykf^h_fkihkncgmj\jcggmqroh|nmaigikdlbgrqgnmfZkmo]omlrkeghammjgsjbdhhg]rUj_mpulrfgpsqhP[eg`z^plmjigp]qvtljibk`grkphjblZtbjoc~vt][^mcjhmcnUgroekohx`wsc_hshgsaodl`lnhkvwbwky_]noccisjl}y_dcbpZaidmgrfofYmljrj~cQ^hRlkTbdln\dohSazypDhrrpgjojjoxqo~efsqhgkatxrpoionkbgokejv|hnleimhuign_lscfr`rakvhetfmnf_skhiqomnowkjjqmjggnofkdgvneithdpknoonfmfihlhkofntxdmejglltfdljlkmqmibkeukomfhkbhrjionisgfvorjlpmhjc^bZcnaddjdpaikk{Zbmjuk|oaklgafhzpinhgqnpuqmqjqr]thjilitgoekziepyYhxXceibjnj|Xsmrehbgfgsesk[t|nrngk^neko{oocjjyllk`ggmsf^gc]sWclj_nokvxnikfnlgnvheitmbaea_iqphivekakZfojbjg{lkksge|tihohhh`hh{d]xsosh~jlegekjsncsimmymaealcml_akfejforflsmfjfsjrch}okldRp`qtgglewyghfpYjnlwjq}klfhgtnk\fhbfluiihfbjpdiaenv\sf_wh|bgpjqrhmgfu]ffkqd`gq_tliqwdqlspjmvgprlpzqplfjd[q}mlmggjhzapifqmqciniyhlbfnanulioegmkwegiqekjorgjmohm_inrj`ewjpqsbqqhhwklouqhkjomWgjlxtdgibomerphcikfkdq{ufdb_uml`vihzdks^gxhkomagqrgZd_zYeiqyZ_RxYc`\ccuXlro_sixxklcgdqnikclVsqdinlnegrafkqcu[jomxse``joVrcidZfq}[ekm^Zw]xY3Yv^opkvq~fiKx\G%x^J`mUGgtnmngmlesflpqil`nZ`dtujwprqqhrfjsukkozij`oqmigmqlfrhggjthemkehchinujmfdjhjgmj`cktijelnh\jhlmpkokoawlefmkxisvgqhpfmjefghmhinolkonjhlqdrpliqookbonngujkhaqekokonnpuosi_dkhelickhlojhkXmdtemqxvqkdphpkhlPnmrcpmfcsjemqdhkwgho_erb_iepuojmfbklp`hpdmcktkacqveqhjcmprgpedinimotuhhjolcmtvoqmjcv_odynmwfjn_x]crmtljm^ce]qipmhloogzohgkhd\gTuhlininqcvzkhiXjqljlh~]iekwiiishq_wrm_rcaal|plsvlijmwieh`\kks~umXoiihgsrvt_sggqhwmplwgmffcgin\ofvkqlZssef`ztnqr]clmmu|lwfZjncfemn{qk~sffcggwjkgfua_a_Yrgjkmmkimpqh\jlqgqtznlope\lofynzkwlkmkkjpbjgtgjmdknneengidifkhhhV`_kgnhdabwgid`gkhsqfloljnlvaecdbuholkii`qdpq\kdih}mqfZ\emdigpqi`hblrrlbmjkdarafemwepgopqmpkknff[uwolnnstjqowoa[MufsjkkiievojQnz^imig_[gqmsNydQfleofmpneuqfdwXwdumkhj`xtrod]_yegtghWoqg]lqEgwrkypnk^fkyabqh}w_f_zjk`mk[lrgivtpmXcrfqhlglnUr^epgtmu_yL^gw~ookqqf]egnqilqckr_dtesqcaqnupprTpilngnctnhrjsgoigeqnilhhZnmk^xqqjno^ejihoro^Yk{kdhjgbZhqkf_fchhrnafjjmk^embfqrglodp[{pofbiznki}b`szwebdjgedpscopxi~kcftkVmilfkhifmjnutmkmot{^inpplopcbtqgednhmkjpoqmi`jbnloipdeodamhmcknegnptkmkkponqpnnhofpjggqlkmvt\umhdekkkdelqimkfc|mdomsyvlujpqfosdhmfmlphf`|ugnbvkifgoivjigivmjobnrlp]foaql`ckommk]~eeqvxjRlbem{ig`nqohm^lryqcagivnmoiollttmlhknghtzm_pha`gf`icmnkog~jpktok}mhgj_jm`bp]k{ekdnhpictn_c]qe|gungruylm_e]tshdpdwecyljko|gapjqi[nurlhSeXelihoe_ijlaRjal_mWrrajcmjgcgrvuhsqmWmbgamqYvla^nru`ljejndiclpcpkhshntllglhcmj]k~nplelri~ffkkhzvokjrhfll_gs^pc{Xmmerg^kpekcihp\dnbkfmjdayjktevxwtbgauq[`cithlmmmcmmnuhle`kjmjl]eemekffg^hlnahfkppckfeocgsmg`pbeqofVgbleerhnivjmhfrim_c]ob}n_mzikn|guohewhkbjiipipklflZl|ill}lclrlnolslefpeekkmqhfqfygjdlgpciklh_ckjhcmfahj^aiomtrsutitgx_`wsevlhpb[ynmkjvYdzdd`hdhaeiofijojomaijj_nsepjtVjff|jmmqnqldtnqurpbh`bejgrimq`nqaq^_cmhdqmdlgbkXi~xfncrfhkagjkntoqa~gtpgwpp^dmhm^kb|jumfohiqfkoqfoqhttcwogqu`adejpfhahbfqhmiuftclfjoorhdshpojhshsjnl|pitwjhihhmZ]ioV[tloqYqhwvnzvj_ibZkycibbnyftecji\limgnefmlsqiqlththkbtpiee_hafjpmgznfjkthjelpk^beaeuimroiuipjnvlzirpjlqcpon\dmpWjo[jqgc[cdtcgokpieyordivdxmxljlh}hboiymdijlcgolplfalcoiegelYybtmrbbfmhphzjlieoh]sgpioaiokzr^gesfgmofliuukdkq_kjjkhhesgppgaj^tqf}gldmrgf}oihojRehk~ihtdepnademvpoiuekfjxiceemkevlofirlsfgvidmuhlZjhapkrnWkjjiobs]iiosq_crfmdirfhqyjidiirhkhfrjdcfk^fqio\jcofkppnlqjjomlmnnnngfSkfck\ugk|ehoililfirmgkfmimlrjqkvdp`fjfiqshhifanhlvoehpsqr~liijnkgukveWnfr\kjmyhjr_fpsjlokpljetnhvfdhlnkmtglesfkoq`ubndnwhsnyjojjfkkiuroramzpbmtljkmkkiffwmrngolkdnjwajhxilmm{dufgN`qixowdmhfgqejfP`lwhci`rpkbhcfmjVrdcgb_hisWjenpujefjrjofhpw\dRigf\phgeibztf}geUgelbledloajkomjjue^bjf`lutqxcjn_n[uxkb\npionwjhaokkfritecqpihcgTkilhknok`mqkiboemxvhkfplssuhathycejhpoyqZpijjbkmbnjaqlimjntakmmu`rmotg^rkqpg{ohexlihggicwmlppgfjivoucrf^cjhabtfoivbmoinmklj|tkWjpndfdlohehmltllmcnhura`p`nkmimmifoohr{lilZ`zo}yh{i`volebap^r~s^lxuuev}ez[tgmgnnlkegedrhlprpokeih^bi]nhkkpllufksseqdpocbfllrljxe}}xdmicqbnmvgqanlfidkkYk^zkla^mbr|vQ^kogeplfehlomenhhgezmqpordglolggb^yaih_j\k^dieb`fcSvbrcygdgmq[Uamoqujophimrqmnolgascijn[sn`otnfph^jOigckkZpoj`dfjTaenpa|h6tjerkhbkllena|\hnoZjv]p`mkqutgp^kucoflx`d^oiloeOs}_lpgxbkemfvepyd_jm\f_cyljUrWkd]rXcsgsb`tsmesa}mrfqSrg^jhjjqjlkff{qrjrc^ojj[hO\YXRQncbS]BadRZ\U\YZ`wZacdNSd`_j^[]_Zy[`e]cfaRWU]WbhYvmgW\^_Wcsb]gUcURu`LUb\e\ZY`bbYf`]_UT[[UeiRfi]XYX[agX\]l\fYdcZcY[TddZWgi]JcYnXTbYn[[^Y[_g`[_e[YW_qWIO]]]`beXda`X_Ugdg]Se_]Y__bWds]dU\b_^geVi`WeQ_dfhYjdRpXQf`MZf\Y]dae[bUZWa]ej`[WjR[`]jac]`^`aZ^WVa]dcXbQ]p[c`db\W[Ve[`\Udc_^Uj`dj`i^ec`RZ]Zd`ag[[Qhdx`ZdZ`dgTaYZ_WbZb_\b]\]aZXc]Xaa^a``YY[bZa][]_]af[^gi\\\XbSc_ec^g\d[[\]WYZg\V[dae]Z`eYh_`bWX]X\S_a\[cbdWhgiYU^h_nXj[`_[pMifWPXYa\_aa[P|bzgeU`sZr`\ZiUoPSraY\MlP_HfaTkS[NLge\\babQ[_dlYnb_V[fkrWbadOb]]]WePZU[\d[gbhl[[G\j`Wa`^]P`UQecabWj`_T]x\ce]XtKkNlZV[gQ_YS`tijo[ecKad\XgHbVf`ja^eQVX^]_c_\XamWia[]Z\xXb]Zcpo[J_d^lSks`Q``ZOf[fYebcbeUTfXXb]hT]_\P`RZ_[XdX`bchg^fh_d^ehQTgUqWW`]ZT]eab`eTW]UiHfZVTccYa^baa_M^`YqWWkdafdi_jTUVgc^VUad_^a^JjWHYfwKQZ]cXd[Ic`8ApYT[T\ToZXdldfU^T[pbE[jneLdmZ^mdZTdQl]Y]`dnT\Y\_a`[lIa_C[fSXll_U\ZWdYLTy,ZZgZT[VrYfUI[ga^^X[LJhybaMYZ]bOaPcT]bVbVbUrZYcalkI^TU^ZiUU`jWSd\]cUj[WaOaR\m^^bQ]gTUX_T\d^ZTXcXUh\b\cbYWuR[Y]dbLUia\V[KWc\`hXW]B\k`YTWQUeqm_jNmZjghORW\SXc_ebYm[`YwiEeM_SRV^`VhZd[TRddY^XcPW^`^^YZ`aljblfa_RfVbiibTfSc\j_^Xab`fYnaUB^`WafWSra^hXWghdeXVeY{\YX[]cQ\eU|[^jZaSah`dX`Yih`YVUbZgEY\Y_iZR[T]Tc\FlV\beY\ZaWd]dfdqee_aTd`WX\gUV]\\b\i^YOliaN^V^daQXj\Z^^abW_]ZYWb1`za`Ya^fh_]fbD[fdeeb_leZ`c^d]f_d]d]^^oYfi_K_c_[TiX_`ai^\\gU^_\gei_b\_fbXpYqjYXZb`Z[ba\^U\danX^\JL`TYadRj\R]lj_X\`in\_^aV^\Ye\mdad^qd\G_fWj_dca[_SZUXeXY\_b`bjP\_ZZV]`[h`B[d]acV\b]XVYLfQVV`bdie^hYffbWnkn^_N^P_^_eiWTqKUGb_^[ap_d`_ab]`cXf\YY\c``ca`jYUe^eb][Zhff9ceb]Udbdi]M[\bYYWZ\PYZadfZdem;\jXw^^KZY`g`WLVf\ZUXZ\rab`U^]VPiIap`\bXPjX^`g]X`kYo[Z^We\c^`ebu[aggbVaRcUfW`_Wai^\deYQ^^_a_M^U\ddZdb^ZZ`_aVa]cccYZ`mRd`Wh_YV\jbk^_s`[O^a\jhdXXddX]jkbXeZUoe]_]cg_PYr\ZYbU[l\UX[]VfXY\cj\hh_iYUh^Yeaf\i^V\abeYZY`_W]V_ZbP__W`cS`YbW[SP[e\]i^^Z[q`[]X]Ta_]V[UZXhbc`s\dad`Wf`k[d\W]`X^egabeOYWZkZf[d`UW^_]e\`R[[Wa^]Lg`\fKkaU]]\aWeaPc\XjdWfZ_e_[ehibkYd]QeSc\bi[]f`YeO]cagd[RWJfSQ`haZa]T^gaRYfPkZedfeh~axW[Lfk_egYnmTR^QjVWi[cTkX^]aPbTTfjd]^X`\HR[hpmPTYdgZW``;a[YbVKfliB^mecIZleNZz_\TW]bWbdaeZh]j^dXPWYW`VZlOgTvij\a:]``WefkbR^XN[c\X]Wdco_fX^c_XZ`g^d`T]qflXXBacSdW\[[]ngaff``x]bjqTmZR]`[U[_kbWc]^f\STcfh_Yjb_b[^_alWZL_kah\j`GfY[abCdVi_c]RQfc\dS`jah_^`fSNL_~Yemu\_bXcgV_dZgi~XT_`ac[TfcJ\Dd\^Ya\\Y^\bmi][[lYad]\c]bZPraV_`_cobbg_]Z]`db^[X]c\Ucb``\_^ag^__b~aW^dg\YWQY]eeb`[a`dj]b^Z`^YaYi`d]`ba_^e^adbZ_[bbYi^]b^fb]]_cYe`e_^[_c^eb]_Wi``_[_aeab]b]Q[R\o`_bfkc^__`e`XOgca]\iZXge^Wfib]d^\eep[aagele`_SfdXbWW__Zd`b^^oVi[bR`XYWc[cffX_FYbbt[\Tc^aaYc[Ya\ae]Xdd\[]ji^^]gdZeWc\UWWTa_cbX^Xe^agZZ]i]ZYYUW[`[^Z[[`_W`^p`aaWZ][kYWtlZaaZ]ZXd]`cXeaWPhU`SUf[SfciZausdrc_dd]kdjV__dgY\cc\b]hfbYg[j_Oa]`fa`c]cd`]d`ed^aQTV]dUXa\_fa]aa[b`_H]RWNX\YYaaa]^fbbg][`_eXgcTb]d`d`][K_b]\U]Y\Zf`i\`_Q[faTj^bdW`[Xfc\V\g_VaZe^S^d]bZf[b^cbNX[[[peWU_`WeTjbUcbUd`]lc`\^XWiiX][irblkcXa_ahbY\`odmXjd`cu_]_dhYc_Uh[g]\ZkeWbZ[[]fOXhbj`X`R^Y^ad_a[``ebjke_`V]U\a_b]Ur^ed]ei_Z_]c]`c[XgUK[cL`ZXWcY[_^mZXe\`_`cTY]bbXka\gWc\`ofWNS_gaeWd`\dmHje[_Z_[aSYf^W`_]Wfagc\_cgW`W\tZcbWbZ]bVlSYdg_V\q[P[bf`Oh`jcm\_kZY`^cVcNdd[h\`abXMdk`^]]aL`iioTKVOWUdW^_Wbbdh^aVUhaUb^X]bd_][bk\dfd]X`^efdTYoaP`pYb^c]_eg]]h[bZXY[c]_`ZUca^cbRccm^Se_Xf[^ZV]a[ceWeamad\Zn[_]`YgtbVS][h^RfVdg\\Y]ZkYWb`f_\mQdQd[a_kZ_]]\^d^[[\h\ZcZ_ea[bQ[abgTYX^XYc\fdQd\_a\h^d`Z`_^C_bbbc`b^^_ZqiV]M`]Ri`cqegadU_i]gbv[faWeV^\W]P@`j`_N[^d^[WqUdefh\X]h`Xc[`[ccc[^h_g]U\[]e]_afVw\kpb`^[\e^TY[dhbVY[YeTb]]`cb^kbbk_]i_bXcYcVgeZfii`XXf`^]]^eh^k^\g`j[c_Xeg^`TXYVe[aa^\\[]ZQedd^ba_gaY[[e_gaae_XXJch`W[aUaX^]RMZXW]\Zcc^a`]_[hSnc\_fhU]`fnW]_\^ajZ_abkY]bdXT[VZcaVkb``[]aYZdX_bfXYW_ic[iRZ][_[_[gVh^bkUY_Q\hjdV[[]\h[`J\bfX[e^\bT]^^e\T_]cFSd^s[jUVakndXVUcVcZZ]erV_iac[_da`VeR]VT`kjZjQ[\gggOa^YbnXcgdcT`ZRhUfcW^_aa\iY]eWeee`f[RcZbXoJ]`QfdZ\V\^Vac\`ZY`Up_[aR\U^\`ja`[b]]a[de_cbY]gYfcd\]_eQa`\^g[WV`[^[UTW^VnXf[]_[[[sVg^]cct[\`e`bZaT^^aks_QX^Teb\`^U`\UW`RUadTcUmd^WYS^]d^Tcd[^d]dUZU`W^aYg[T[\bd]_\\`jQ]RYbXdYYc_Z^ZYGaTm^g[^`hfda]X^\d_b[XdTLZ^ZaQh[PV_[caUgl]Xbnh[PlaXW_RZ_bd\^kTWaZTRg``Qnaa`Y\Wk^][X^bg_`R[]ZRzZ_[`Z^WPof[[S]eqi`p\[\]WbXSkUacW]ZgteU\Z]ji^XXacefVbefTXk[`VHVZSmcffWe[Rc[ZneUQbeTTBgp^a^`Qb\YegdXTZap^^`dfXfa^Xa_cX[YSZbYfWRS\WxU^Qd_[ZY^`yd`RmnWhUZ[V]bSX^^X[i\`ZcK`Zbd[]Z[e_]bl`P]bcV_Vah[]mZiRib^VbXbalX\YbtQYZY`\dVY\c_cZU_]c_ZdVYa^]b^UTkBQDH\^_ZQld^aZr\_^Z]Zb`oY}ega_^VZ\[c[\]df\`^^Oc]zbT^]`_KaS^YZ^ucZ`XdZ`fZd_\[IcrQm_abNbZ^\]`kgaac[e^U[sdbTcBf`\Y_ZeTW`\`ij\a\TbYVbUZZR[i]Z^UZZ^Xca]V]\Sc`_bZ__]W^\Ve`ZY]ef`d]dlbXg`^RPag]V^]k`c_\aVd\[gfV][[Z]OOchR\Xa\^h[ck^`Yi``^W`S\WVZ^nSjVcgeH`\a]uY``egb]\`[S\b[aS\ZbYX\bYVac]bV]SgZ_X^lZeq_`aOek]dkYXZhhecdbhfjYcKfelZa^_]d`aVxWbWmQYUgcl_Ogb\\SUa\kcBdZhk\gTaZ\Z[K]mRVcfX][dZaNYRMRf`^_UaW]h`_LdcbTcdYcl_QoegqQYtYR_LUlZcjYf\Kh]pbTggh]X^]ZPoXXeE^L_eRS]O]^i[e`[\[gq[fXa\[kVU`gfYg[]TiXga\XW]ZU^c]tTWf^PW_`eZiw]nUfZT\lYM_\Ykd]`\h_[d[LjLabb\\X`_a^RU\XaYU\heXa_QicPf`Qfp\O_c[X_][U_e\YbdQPW[jrc[f]YlZ^[eibX`Uq^`X_aYW`jZ`TXa^]cQh`ibT^mNibZ_XS_f_\Z]cfZkZ^`RpdSVblIZc[`Mma`ZoYaeKe\am[tWrbga\f]VdmfR`RbOpJXqaYhhf[O\u]h_VXa^O[nU]^hcaXQuYVfZ}VfZaB_[^^fa`cegWVk_h\KN\erXQ\oaYV[][VBo`bUZ]WYc]WZ]\]fc__^bW]fWT`j`aca][KfWW_aWYmXe]a\X_Y_TVbbaQfL_]\eb[bKd\Z\^YkX_]J`[^ReaT[TWccfbP^RiU]QYVYO\\Vafck[aja\eqb`_bf[gv_i[c^\Yc]dmVRc_]hf[^bo]TXUbbV]X^hd[T_aHaZg[f\eP_bgcW\c[XSP`YbckYa]V^`]`Z`[[UgZ]\SZ^^Xhn^]\[]^]\f]jYaYc`_cXT^[VgYZcUUiadcYfh\TkVeWdUWg]affb_a_[dPW[\\__hVT]cbqX^aXefYUa]d_XlccpX`Y^I`ga`fgV[bXPb\gLelYX]V^b]^`bR]da\N^ccahV_db]c]W^Sh_W]k[Zg_]\\aVbad]mOP[ag_cf\WWbacWg^c\Y[bcc]i]b^X]bXP_[bYae`Wk\Y[QO`cZn[NlcZ`Zbfd]Z^gbWp^eca]f^_[][i[Yap\Tgbc]gLiXXgKaldWZ`[g\W^ThfaSZ\Y]^YkVWg[]`fdZimedha\e[\gV]c^`ac[ac_c\`dfa]a`YbjeYhN_\c]d_^W]X^Yc\e\j_j[jcVYV\bdSp^fcglZ`jcN_WZWYYaiQggZVdfZTdaba]bf`hd_]afdVZXfW]Z\bXmeZa][\UZ]bZbo[a[h`b^Xe_b_]a_lXgd_^\bYXi`dbQagfb`^SYb\ae]h]\_\`dQ^]aZ^Xhgc_g^mX\bf]^]VSe^a]bV`[^j]aX[[`p`Xf`dS]U`a]afUU\Va\\iSibR`eXZT_aY^cmZV\]]_dcX\gcaW`_pYWgXf[afUZb[Z[bcahbgfe\]Y`WZR_cbLcgUn`Xgc\^NacTbZSbd\aPcZ`Y\_Z`ZkWkRTaXiPz]e__q\bQ_^Xc^_fV[h[jcfZlTkb_ZTYhlMeb`^`csLs\VosbSabWe_ig]bhIWWhiWbaW]W[]_ZbX^m^\ZT]be]chjZUagSmdSa[[feZb[bP^dbNl^_c^_bX_Y[_`c^lc\\[habUZeTWdVna[eY\`lYk[k]a`^`f^Te]Rx`Y[lVR]f`Ka]\bo^`U`aPZaWiNXcT``oVbZ\_kZR[^WpihI___aia^qf`Te^\bdNbQVV`X_VehYYWbg|]Z[WlefU`buXakcmXXZWaUZ]e`_Ob`_aXe^]kEOd_fen]]iZbY`e]\X`Y`dX_Rdce__db_ZYcXh_aWRN[jVg`iWc\[^ljSK[d]uYfqUN`]C\h^TRVchXBfWSgYj\aVp`XcxfaSfUjVl_bI[ejgngsX`S`fpddg``iTDz_^x`YbZc]PX[dZbhacRcX\e`_Z\d^eZelbqeg_e]fZgbdX]d_Y\aT`gYd_KaU_dej^`][Y^gdaZWgc\_kScf_cU]c\]feheZTMVeVYZ[g]]WVXYUVf]a[[f_]a][^^fY^i_b_YjVjdeXX]Vd[bjjiaVafiU_k[R]N\ed_Vbaa[]h[`l^[Y`fefgOZ_OZYY]^Z^QKP[^bHS^\d\WcUiPaUgfhbmzU`cBismPqXimmcd`]\b`sSL^X^n\T@[ecDgScXYdcrVepifTkfYJ_YPRFLiVg^op][bPRdXMPYiF_Zfcg\Sf\_[^UZRgUYlrfVNypb[uZdeogccZbccY]gipV`ofghP]WdfZX_bWitaVb_e^b_Zr=`jOoaNiSU^Y_YbWTlSfZbM\Q\aR]ZfbMmc]fcY_\SeZZVHL\V]aY\\b[bTceg`VgmZ]jRin_]NR_mZ\bU_^c]VZZY``aVg[]Yi^ZZKX[\\[_MgaZ_ZLZdahd_ZYja\c]beg`abf``\]YZeZ^Y`]emYZelfSa^XeS^f`afX`V]VZjV]eZaZeU^`ZX]bY`fW[WicV^jc[``dcaaUh^a_][_ZUV\[icbbQ[W__c__q`^Z_\mcam_\[hfSg_[^]`UaRb_^j[]e[b\bZ\[a`cb^M_d^\]M`^PZXp_\Zgc^QkWV[YZ_bSZ\bVfXflfKn\NUAT6]Y]oiZl\PmWXa~c]sObfg`bQadZMhd\`ZWdjU][g[lWZZ\hipiUQ`fQ^jWaa`YbV`kYhmWi[R]^iWeVbOh]aX_ne^Sl[]KV|_rVaa_?V`mTXZ\aSWTXcbbb`OcqU^`_;h^ZXTN]WaUWM]QPYXd[ZXfMcZ^b]edVqgk[W[faZjXWZUWb`cQipT^XfetfagXfL__P^\ZU[_Uhbvp_cS``j`X_]Zbb_di\a_YbX\YYnc[[c_^aU^fXXbZV[Ycc]aVc`l\[`^cdf[]i^ok^U^d\\e_gZ`__d`[_x]XYVdR^]Yb^bWg]aOb`i`Vebb_=XWa`[filc``fh^cUEYb^pejhMh[XV_ngXucYm^^ciXfbhcaaYY[XfX\ZRYYV[XWX[[^^Zfe^lcZZ]`^`WWeRSV[WQ[a[f^Zhh[[`]PcZabX]c9jikQ\mait]\bZR]d`V\fhOmaU\mX^fWM____`ikQ`f`]j_mbXUYX`X^dkh_aWW_QeT[afSQ]`Ze\SL^Zh[dUOdObe__aeeXVbV_Zm`Y^bU[]fdYd``^d`bs`Zaa_Xdm_tdUSe^jecQ\fJdTh]]Pj[XYi^]UeQVfiehYZc_aZQ^a`[_N]oV`ZXa[\Uk`gb^dXZee`cZaZ\[`^VgY]`Sjh_\O\g`dVVT]\`[WY__^X^hXdfff\XYYi^Ym^Zdob_k}ZdiVcciTTcck[^bSY]jSbT`Z\[YZrcdElwpSc\S`1\ihvfP^c\W\leZDaYYZYYlkMNShQe`_rZnQHW^Wca\Zd^]hXDlWJdaTTgg^\cQnYmcVJf^dL[\e_RhI[cbXtVT^U`YiWja]VWVfTLbs[UPb[gb[j[Sbfh^Q]Va\eWSdfN_ebZo^k]V_T^Za][^]fQ]i\YVWNnkUh]Zb_jlZTeW[QWUXjfWPbhY`gVeWcaR\[d`cWdaXRJZc\^ue_`]Id\\_dbTdX_[U\ZeabXfcb_eg\^eU]VWSWiXc]TYfaa]gffWX[a`KGcocjSY__Y\JZe^\Tb`ffSgl\Y_Pe[caa_V\`XZa\`eUX[`^gf_cYSZYV[XgchgZbWZkaeUfda_Tdb`Ze^S^\Ta\`\h`a^ar\Va[b_aY`aaWQT`[^c^[h[hVkd`\h`f]c]Vda`YidTc[cf\Qa\_ieY`a\f]_biQcgo]XhY[d`Za^a^_[bSh^XZ]ci``][Ohi_Y]]Z[\]eaifYV\QX[RgeXimiOefQeca]X^Wehh\jb^UY]\`rjSaYcZ]fDZ]WWZmZ_`^`T_Y`d[__j_i]f[ZW^^W]a_]gcfeY^]\Z^a_]P[i]Sec]ojO_k[`^e]d\[]]`_g[bajb]\]_``[Z^a]_dlcXdg]Xb\\fgg_m`^]cdW`_jiU`xWh^Xc]Oai\WWkhYhl[\kcaGfelW^XY\cq_dhgfYLgdeeUSWRN_mhGb^`d\\Z^kQWZWhjjnQW[Y[Y_d`iZ^[T[^_ebdi]agch^\SWXleUUdY[ne]c`f]_SOV``ab_[Z[Zb]f]d]el\f\m^c^cJWqcraSKaXXctdM[NY`lK[Va`nqUbid^^\Xf\STfgdi]_[^gUGZkZXj\ZcV_W__ZP[M^SHgT^fehZnWhWdT]`X^dP\i`Si`o[X_cW[ZeLY`Ydb{F\^`TW_WZ][QUV[QhT^OeaWT[f^awdq`jbdQFgZ\t_ZgaWhe]|WjTeaihUO^g^`d[BYU_kI_niUaZVToYx~j[ekOaYjRWk^o\yd]R_^BWb`X`_ggfRc]a`CXEfqWJmMkMdNgMfgq_^XTabgZ\\nUScVbknAjw@f^__c]]PWQYDYU_aiYbafceSVF^eea\Zcc`]kj^fWV\]a_Z`[ZTZc\\f\^XdY\]nXV^_eWXZcbN``Ua[bdVaeg[aZYn\`^]^]_[ccaY^jX[cfbbadfU^^_Xiiceh]oVlia_SgZd^dUg[PVnZYcX^]SUb]m^TR_eW]VZbbb``cr[^QbXfidZbP^]Udb[ehddk^gWhi^a_ZcX`[iYcYa^\cR_Z_Pd[W`cedUGW[_T^fdhMiWVW^X]dabZTTYldcUhfabq`c]SaWf`eWg^^fbgVUR[`_Dicjude_lddfZ]dW`Wi[_ePZe_TWOiRY^`dRWeQYX]c_a]JU[QTYXVsodfbYm\MbU`^\ad^\_[bn\cY_cWW][ca[d[]YbeYc]_`Th_X]ld[X\abcec_aj]icgW\eh]N^_]`_][ZZ^YZ`dabkrZ]a^c]ZVfjfX_a][^dTfZ\b`W\c^b_`W`d`bcb^bcc_YXU_Z[ZZfb\^Yc`[b[Sfc]`[fb]n^lkd_[a`b[Wca^X\_VN`b\mhVq]X\]^S`gZ]U]aWaeahcR]n`b`hZ`XMSR\eYsdegkWg^^Zn\`bT]if`]SY^ak^b[aZQcbh`QmSa[Re^WXXaTZ]WdjWj`i_IifanQYmcXi`aYXeW\]XV_ChXZbj[Y`Y[U^kXT]X[^YUCU`[ig]aYV`m_Wdgc[ZjcVaXYh_a`fhQ\Z_\P[aZXVd]bf\^ZXIs]X[]jMct``OaPY`gX_fIcWUdiaij\UWWbYaTRP]Yn]VJZ_YXbjl]Yj[SUVdUY_WkUTWUYpZ^XYkVbeXr^TS[\Fc[abKlmbbWRbhnYN[cpbhn\e`I`Zaj^]c\hfaZ`ecTVeTZh]XKe[^]nW[gcaZ`]ZufhNOm_kokbWicWaX\oZjXgX`e_aP[jXeVe`e\bc_\]cbrb[Mak{cV`\_Q\p\i[v^c^acl`gjfW\bP^W^aSXT`fTXnc|bd[c_[a]_WX\n[cikbZST\[OY]UnSX[]d^XcScQ`ZYdcj^PW_acY_`W_h]Xa[W\^DHf^^wRP^PJ]Vgd\g\YaV_YeVdg\W^pne`c_lWi\bYUcs[eWZPaQorTW^X_Y`Z]bQPXR`kVgNY_{VR`_WtSiXY`V`e_kgFUWb`WOce\^g]iZ\H\URW^d`Shc\bZOcV]U\cf^\gjZRTb`c\g[V[_c`b`_\cfYhq[Zk_]SWl\c][im^VU\X`cfYbcgbeY^V\_`fc\nPb\``Rgafe_Z^`f`UdmX]_ZY\]_eW[iUe]bZba`hYh]hf^[VmXb[[d[d[cl`e`b[^pah_cbQcYea]lQemRcoSh`c^TZTZbXehad^UabdV`Y`[\bWb_N^Q]cdhse`j_c]i[a_cc[nUee\W`R`V\W\acbo^e`kcdbcMecb^SYdPgdecbW_^`^ZkfQQYYb`R]jV\YZlW\bihQdoc`Q_aOfT`j`a^ajVPcf`Yd\Wcm\^ca`j\W\]\_U]TY]Te[_IaeiVbe_]^j`_Vaad`b[KWVm[ab^v`Za]djgbffc\]`vbffZW[RcSj_]TjefVd]Z_bXa_[Vf]cabdZ^e`gre^N`jn`QeZfRXdhm]feba]mhebfY^ZS[j\gdX[NabS`afhi`[g_[X\kZ]a_d`edc]`b_fUjXW~WZkhXdf\]ba`cL^^TUic[Zl[_eb\Yi`]ciaW`\hTccYdcVgYO_a^UZcYa[bu`a\[XZYWSgb`]\_f`[\a^^r[a__eUWdZZaaOd\XcZTaSa^^\pfhVd]h[d`keebja^^^dd]`_[gfVck]acZ]jc`_X\eR^k_hesVZf\Ye_UdY_e[XZ_h\_Z[dYc``VQb_ZbN[c[e^bZe\gaaWKnWcXl`a]lX[eYm\YcVWU_\d[][hVf[__sf`biYZ`akUdYZbkhQubaU`jUtZj`aaPe]lfVbPdYUh^\je^WY]UZc^f[]^RY[Ri\SRk^Q`M^eYh_MT_[f`yY\ThZa_c`Zcab]_edd_aZ[aaX^Z^bXd`c\f\a\WXUf]\dbj]X]_]c\][e_c^fhWR`^g`XZYemaedYdX^^ka[Udbd_fa][\e^_Va[^aYedc`_d^^[ccgd\aY_]b^a`fhfWQ^\dYbXacbYXc`V_]`\]cbah[ZjUeY[d_\VZb\SdR^]c[XoZWja\MeeS^YUg[Ub_ak[fedMVkwWt[iXTd`fQRdhWQbSnXO`a]WX\UXhbZK_ViQbkjjPg^uc^VgY`gho\nMPTW[dfYi^emb]idmnoHiSq[dxh^csXNZV[POfVnn_a_hhX\|vcjW]iGX\efWy^]R\gd^]jX\`T_T_h]Qibca\dabc]_^f_bgc^\[Z__MdV\giZ__VZ[_WX[^XScU\]\[eRb]WW^wdWecb_YfYcV]hTZX\f^^]bR^YdXae`\`^_ZLaTg_aV]XvX`cWWkfY\g^_Y`UZcZia]Z[]b^Z_X\X[P[`jUS_SV_d\\b_[`_YacaXXcTfYhgX[a]i\c`ZaM`fa^][]^aZXa[]_bg[XbgbZTgXb^^\Yc]bafebSg_ZX`SmgXZ^^`Z_[d^X]W```Y^di`ea_]\W[dO`_`[]^\aa`fHab][Xb_[_edh]`I[`Wa__`U][WacYbdc`X]csasd`cfh^cZaZV`i`\Ni_aa^XU_ecY]Zg^hb^eoWXihTpb``c\gcfbokP\`]WM\\dc^`^_V]FQ\b[OUjgR_W]a_i_e]el\aV]qYPb_]ofSUL^ZQZ\Xb[j[YQddR_TUVN`eXmdeUk\k^VRX`_f\^iiYWYbYPW\^]Xb[aafcaV^]\aX`m]W[\bheUlb^\_^\^bfe`faQTpiY^emVbbaZLdapcV[RhUgZa]ZWd\UgX[iWX[Hda^S_fXeTbm]dfVc[T_cghZaT_`c_Ve^Sclg]bd^Zj^ceYYTdgd`agRRbvRJbj_ad[S__RVc]^]hcd`V`aPUWQn^aPf__TkZVZUg]craef\e\l__`Tcdb^``W`fbXQZhZhieQ^bT[L__\ZOm]`OQ|XMTpTahXccc_nS\bRmcYj\a[Dbm`cg`LZXaf]M`_UZa_dX_LqZgZciQba`K]bcVmaO]bWj[a_[WPZS]``Wa`U_`UcaYS]a[eYahD^`dbVclboeh\VeQm`dVV[[]\WiYWURaZkf`dcnee[^__Okh_gbXTja]fYb\\YVUi]cabXbjef[fa`h^b\jXZ^a_e[`aamZdkT`f]iaV]e\\mW]PT[n_ViiR[Ybh]dce[b[hW][ZVXlV`]d^_daicdbYX^^ZfZNY`dd__^e`\cX^cZ[X\U_]f[\YZ\cVe`Xaca]ad`[bfYcS]_cm`h]cR_^^aofb[`inZX_he__Zh``^[m^UZ]tj[`ofgb^fjZMZac]Yd]_^dPhcj\\cbjQeS[lW]dbi_ea`geW]mVk]`Yi^V`X`gi`hc_\mXbaZU^aXktVXkq[U]cmTuTkR`f\[cb]LIea`S]aUUcMUz[gJio_6WlWiU`s[CZf[[_nhbhfXyh[___]UfYHgkMl`N`doE`QUQbRVgJbXdaLiSIyGUX^\[QZbJLlRabiVePh[~ALwm_\[YZbbUZdaVoi`]LKNlSYQ`hclZVVX\if\aYntd^rZUfc_[]RdkdYXi`b[eV`klee[]`Zb^]eVb_efM^^bS^eS^^Na`Y\ZTea]T^aTd[abhcNSMYhYX]Zdi[]ZSfX[WgebbeQ]e_^]hX^Vck\b_ibUphXcdcXaZC_lgcaadTdL[T_ZXaU`^ex\Pf\`_fd\pnco^fab_hyr]RfhV\WZbvSgaQZ_Q^Usp\s)__idocWc<[Z=^3Nac^g_j\_GGT\h_ST^[kY^ZUngY}fa?akegpVgeC[js_jyN`wQz^dUlZ``SgpvkgoMZ^^]jHyn9@Gg\Thj@_cJi^MaD`r\`YWWSLe;Qip\ebPh]c`VTYqf^W`V`Ztghk_Ya4dQ^\kZ]XQh\J[]^NkO[Z0p vLbsO_TQ[QghuMbpGi_Z\\Gl]P^eRq_T]exHbi]Vg@XboiZW]fsYXvSXck_]^gVZ`j^Vd^^hhff^WOeW^fimRAVRXmS]]hNYV\FV{d_daphWb[i7nqSr]bje_lJgHYjFnjpT\NbQY`aaZrh^Vrfp]jgiS^]zR\f\[[dqZXtnh`_W}[l%eaTiVel^TaV_dWXcnOmRUSVZbbXf}Y^2hrRo[Tr`d_F^b=bh]YYVVa\m5kaiT_c_j^aZ_[]`il_b\cb``]`V]`k\f_XcW`bb]__ceeec^ZeaX[XdXb`e^a``e_d^_VZWn[__agcaZ`cf^a\a_XOhe\]cS_QUVX[[_]ZZbYiZWcj_^e\[Te_e^\fXi\[_[a^aZfa^b^ZcbTUe\YhZW`Y\hn`Uc]U]U\bXu`XY_\f[d]ecW`[\qY`f[_ZVicXcXl\]kY\nZT`Rylh`]ciUgebPYVel[`_h]yM`bbxg]NdZdcc^gb[Sasq^WWcUc\b`d]bZZeY_la\ga__^`]UamR__\abZc]t^R^cib][kegf\Rdk`f\cX]diZsO_Wi]]aUQ\gfKXjd9K[d]Z`VbcZaab[WY]`\hejVnZdaIHIqc^qTkeZWNfe`O[lx]eifZ\b^a^WZpcn\[RYVd^HkPYTf_jdm\Q`>R\Q`\Xhd[XSdIUKIqkUhvZWQ\Xb`q[Pe\qYa_dqeabkfMbc\aOd][UN=XZVeQegl\TT\`bYbh``\IaXiQfXhXUhj`]JUEbZ\^hcdVY]kUWXYcgOh[hbHf]SsDY_[\`]ZXe^fl\\WEaYZ^Wee\^Z^e\[a`_^afO_[[Tcpdcn\X\]lXW`_YWVbgR\`lRVY`cc[cqbaaTZ\F^b^_c_`T][^\bX`X\TWZGq_Yc^O^aYke\^ah]g_c|[rce`Sm^Y^jdc_^JZW_gffh]^Zmb]_M^hc`ZYaXZ``Q[evYd[jZ^bW^ia]o^T`QX`cee^`\Qb_W_YO\cc^a\XqabaiV^b\ghT^beXe^mY\ZiY^c`_Pb`\\oXW\gV_V[f\dY`adVbRW_kbX\^dSabcXhecVba^gXZ_PZ^d^^a\]Z\`XepbcbiYaa_k[gYfjc^dS^V\`XZ\cc`[cX[`^]]^bQ[`a^_c\bm]_Y^^iZgf]hiVi^\^fba`^YY^bemfdc[m\bY\[^XX[geddaWhdb[YeQo`h\[de]adea[Y^fU_^b[W[a]]g]cY\_g]\pe\XZY_Y`][kaUY^.hPGZfatqchi\Zg__caY^d^\WG[abZ_aeVaZUgescN]^^Q_Wp[d]ac\r^_[la_W^f][hfVhibY[jYgad_[bX^hVicdidQa^`hgbfq]CUdN\`aan\gZ]\Zd``c^Z[\^PkcH[eeZiUR\`VfeSc^bW^Q\\_ef[[``b`eWZ[Ve:fTc[dJc^XUXUT\aZgV`aXiagX`WmZ[rYZY_Zt]^UT^_f^`][^dhVQ^U[ih^^Z^`VjYf\bbVESXW\gTX_Mdb\q`c_\kWKlNK`h[j\^jb[Ni[aKZY_]i^kjtPReZZM^\d`_ZghfbVPb_N_NkW]Z{e^Z[d[[h[VZ^kJQa[^^QOQ[Oi^XY`]TdVYwUaJ[LVlfnSYboddd`dfhYw_\jZfQur;SQUvjjLgTX`aSbbXiS@XciNZbZrPUdjX`]`fj]ZXb]]qWbcPXlga\]k]MMeYjj^cjZfbHckeYZbb`b\f\bXbhV]Wpe^d`\f]^TQ[YaW^W`W_V\h^Y_`lZ]^Xg_`^Xcce^cjXO[Z_`]aXaVcgkUc^\`nccRfedVqa__^`ahVcf^agXcc^ah]Wde[WkV]hk]aX^[]b`THm][[cYccdabcaT^adaYc]jh_\jWc`ZaW]P^[_XR\Z`_[Z`bXZ^iTdcfcX_V]bXa\[ZRd\\XfZW[\odsZQa\b^]R`UaZ]_jguV_Yf_VrYtUebU`g^\ZU\aTYhP^`OrkaYSUh`a_b`FUUORWQQg[caRz`^iVc`Y[bH_bT[VcjUac^R^]c[cQ\cmfV`jX`Z^c`V^]feadbf`deSbV^a`Y^afS\`a`d`_\X^b_Wa_P[^S]bXh^Pj_]_T`^eqdbW\]\Uc\fU_[[V[WbcWXb\eob^QWY]Tjf`bg_dOcciS`XffZ]w[ZVbgZX`g_\m`^_d^WUYJk`[egK`ZYdg[Z\\`_T`^_ezb[\_`\K`WZ]^\_^[b[_\]_^a\fbZca^``Y`X_bb___WcjXbbb]_[d`Ydfc^]^Zedi]YdSY\b`[eU^[Qf^`h]TT\`dcY]]aZ_diV]Yga_WV[X``f`]e_b]W[UZ[fjYbWcS[cc^[ha`__ceP]i`V\Vgc]a\e`gf\[]]]UcSidY\^Vnai`g^^f^\ahde_bkb`f^_r\[f]^]_d]mcb]SVYY^`c]ZVLh^]Xc_ee]Xa\fY\XX^bcY]\hk]X\[O`a\]Vq]V^`eZcU\[Zn^Ya[Xcb\[l^W\a\eeUfbceg^dVbz[ZVf`Q^eXUc`^`afm_]cXW^V[f]_`]e\]]UddaZeXadZ^jbb`^fYc\ab[Yao^X\aU\lg[TZkYi^^^Z\\bI\_p^Y\cUUWgJV_\][[]`Xb^^fcdag^f[medV[\T]ZWX_gTje\e`gTaebe]\f]a_Tog]\\VeSdk_\\MYVLWPYYWYZgX`^WY_Y`UccXZ]{aXkL`cU^]Yhdeu^U`]]\]`_^d__n[`cS_^\^eg^aZT_`gbSXaY`pjV]i^W\_[a^]b_\U[_T^fRk`Y\\_lYag_gUbfk_]dbY`^c_\\a`a[c^\d]UYg]jWTidNfZ]nVdq\ci[faXjc]\`Za^i]`RY`a`b\`VfXcfZUf^a[]_]bf`O\Va\aXZf_b\a^ebd_ZgjY]R\d]eZX^`cZ^Ze`\b\\ZYgd]\\]_ci[Qed`[de\[]Ve`m[^ad[d[Y[M`\eZYiX]P_[ccc]YfUOZf`[Xhhde`bXbZ`\\TU\^Yg]b^e^XWYg\_]dcd_\T_Qai]chZa_^_^WXdYcS_\cbdcQg^VXZWcUUkV^c_ZXcd`__]GXdhW[cY``X[pcJVW[_lhY_aX`WhWcX_OPo|b]\hbhX]bVU^`g_^Xi\SZc[[\a]aa}b`UUN^iY[`\][TVbd]Wd`YdaRTbSZbWa_Zd\afeN]e[aO]X[_hXZW^_[cY^]VbZZX`ri_ao_ZXgao[c[^`_eMaX_d]d\aaW^Tf\b]i]\^S\]i]c]bbPd[Wbe]ZbWYYZaahb`U][IBcbfdQbISbOWef]]id^W^a_bbjfaWYZhWZ^^d]Yac\]_`geg[_]ZabSRgZedb\e^aa`YgO_hgWV[]`cXWfigT`XkfXYYd]_a~X]^_ih[Sf`o[W\`]d\bXacZdWYhWXh_XZeac`aae[^_XWfnfd^`dZ\h^\]ZVR\]g`W\ch[c\^e[fkh\eg\\Udah_\[g^`W]j[^Xn[Zfcag_bpk___[^ga[jc_fY]Z_]d`d]XSeVZbbafg[[eY_fl]ZmY\\^_Xh^a]Yg`\YZdcabd][e[cXb__U]g^d`Z_bT[]a^Z]b\^dVgTa`b^_b^bgb^`YZZbe_]b[YpXb_\^Vl][]ke`j^`ZX`Q[ecfYb\[f`^cd`^eff\cd\Y_\cb^eZU[dWQ_WbiboS`^adpb\QgWh`figS\cWZ^\`e]XWKhad\V^Td_OX`o\a\Zbho^RfWp^Mo\g_b|NaX[dg]bjPWXf_d\md_e^VRUgd\NZLaVR\Zn^Wo^_][j_^Pa]VaT^LgJ[dhPXg[hd[YgWtbX]fkd^fdZiYNZbbb]hYP\TVl_SfY_ZYNf_b[`eYebcn\clUbkUqf_hfQcRZ\TZT_`]YVR`U]V`X^bV`]_d`deh[TcZa[bek[^YcXIYGXpne]ZS_gjgbZ^PkZSXh^[\PfW^a[RWdR_j[uSb]jVYpc^Vj_b_gW]Y]^O\i_^WVYhadSW^XYddY__]XRl`c\g]gWjm[[dlg_^]nVpagYXVe\jk^X\ZbjXb^`gV][jU]\XYW]^e^fYa]ab_YbVba]hWb_]\MX[aaa]aae\\^]]aVZVf][]Z\ac[_ob^YY\egXZabThaVdYfb`[ZcUY]\d_Yheg^[^fT_[dhWmZ_a^`VY\ih^gY_gbc^Z\Ub^`b`cZa_]`_X`VmZbd`_bdhQabcWbRaebX_\Za\bTaa]VRWa_`Y[ThX[YiZbY\e_XW`XS`i`adaKhlfRea``WVQ`fZ\b_[gY_\O`T[]]]dRg``U^a\`[cc[n^]`^_]bYSW`d`X]df]a\W_S^W`g]bUV\gXaY\Z``b^^fX^]`a`_cQ\]_eb_e`edbdahacb_^hbzTbbYh][\\bbZfXUddfdUnhYbWeYc\jW\n``]]dZVcK]i^\`ZSbTX^bYXZ__iXLbdmNVT`iS]_g[d_a]h^c[abKWYXZa`p]d_k^iW]]]fdSSd\_Z\bb[Z[d^XYakPbf_^[^^\_dOSah]f^Z_d\fgVW``a`idjV_bK_Z[]X`\]aWhYbcW]if]X[`[hcfZi\Racb^YiZ^VYc`__hc_Z[`X\c_\[MaaZkVS[bW[lf^Z_\[YO]\ZfZV`iYaZ^bYYY^f\`m_^\`\`_fX\Ya_hgje_ja[`gNNkh[Xffbeb\ba^J]i[a]RegZ\Wb]_cbgbVc]_cX^hZ^\a\ajVa^\TZ_`^ebga[_a[\ddcffn^V`db[YbbZ`d]gd_]d]bc\_]]\dhP^_acWdc\`RYYdZc^`][hYZZ`[\V]]nY`]b`__]RaW_]_Zac```b[d[g]]]^caSccYf^U]`^W]`\_b_^a_^U[^SVdfeW^bh_MYVU[V`[]eQ`bYcd_WZefZWbi\hcVdZaaT_VTWhfaY\_[ZU]XhbbZbe^RSbUh`g]SibZdRTehT]ZhlYeafYRfX\`[[__aMWhYZ]^QdWXibYn\^aXS[koVXhWe\ffbb\S^[XefW[_\^]be^_W]`Y_Y^ZmdW[a_XyZb[``VXVc\WaiWUaj[\be`b`aZmfcXXZ[enKZXIe`Sfa]bceaWZffXdqUd[UXQV^_hRf^]YY\blN^]`\[ZY^^VU`Wb\b^VWeQY[ddQ]Y[V_]aZhe]cT[aY\U_aZ[gea\Vkbf[\P^Y`X^`ZWZ`d`Rbcb[\\WXa`\XbZg^\aZ\Z[``][iYZbU]m_^jpPVUSnd`aWV[h`U\amZg`aQcWa[Z\]\]j_f_^\ZZXf`aiWiiZ^ejTahp`facmY\aX[d`eXT\Uf[YWOV`Xbe_W[lWb[cTchg_c\RaX__\_XYcbai\RVYQX_bal]_fa_`i`WVbeRidbca^Y[cfe`c_g_f\`]\`cbUVX[Ra\^a`d^\c\W_]ea`n`^WbWe]h]^ZYaaiXaajce]\]Z[`\e]]gWZ]UZ[bcbW[_eag`^\[XggZ`Xh[X^hXdia[]^__XX]mY_eg^Y\de_\iR]ZW\d]_^_h\YeU^`cX\\cZUWM]\ehS\cb`gm\[^__U`Z[cjVa\`^^_Usa^\ddM]XP`_Z`a]Zfgk_k^VR`^^\jecU^hbW_X^a\X^dZ]jbi^[Wa`^^][]^Xel^cf[[]`jbaZ_j^`q^]__fTd^_XeP^\\sgX[f_]Wg]h[X[WZ`feZaifbc``]bb\h`n]\]^`\[\agY`[__]iWaX\gbT^d[ZT[eiagachU_aWU_ZV`UO\^fc[f[WW\^]bb`^acU\Y\RbhbXPcg^afe]a`X\Z^^dZca\^\[U\edb]ciWY_^R`__eabagd[]\cc]bcU`X^Yc\bcU[]^[fY]diZ\]dZaWX\a\[f]n`Bbgee^UYXfdV^Ta_O[e_[\b`eXbWRVf^^hegZciXS]f^cR^\rVceUR[a_^_dcc^Ub`nk`ex^]\Xi\PaW]_g\`ccg\Z_\V\mYe\[^ccn`V\YZaZcUi]`gW^qh[c_XT]cWeejReWgfbejaef\eR_id_dWVa[XWg^Z`[^`aabb[[f`_amY^`[]_i\[Xbq[Fef^S\eVe]fb_\g][XVZ[]U^cX[`d[pd[lSPV`WW`[]]c`_NTfY^\WWhggfhYbf_e]dXb_\fX\fhgWZd`jaY_\fj\W^edZg`Se\\SfdfS`bd`Z^i[]c^[aa^^g]`b^acVnbb``c_ibd^aaUe`ck_c^cXd^b^\ca[YZ__a\^[\bVb]`\]^ehaafb\`XY^ZUidYaXlVXX\f^ZV_\ei\fZ_fb_g]_gdY^_W_\c_`^ce_ab```]\Vah[gbfTb[bb_^b^`]_ajd\YfebWaWbS_]f^e_fdbZ_]`i`ZX[Sca_g[dPfcda^]c^\YYW]Y]P^fUVgbU`faeZ`_`XjV\_bX`a_V]`eg_bV[XWbaO\bce[]bg__h_hdVZi[[^S\Y\a\b`^XQ^Z]^_gac_cf\gXaaYb\XY\Zeg\bbT[[bd]Sb[bbW]_Z_aW^XXYaf]WUWZn]b`bZUTbbdg\`X^WQYjVU^_[XeidmMd`U_Y^bZbTbkc_g^Xg``g_naV\]^^^YYiQY^\pi]cWpfnbXfd]cXj_aU\\RaZfb`R_O`_]Y_OWan[^dZZdQjaZX^ZhV^ZbZ][aV`aeZ\h^_]]aeZY_X[Oa`h\\`\Wm^VWbbhUfQU[XdSZVZbQ^c_[ac^WTZh]RdXc_XYKqm^aO^j^OeXQclcd]dgU`XUe]^Xd_[bZibfZ_ZN[VnbdkfurY^LZlX]a?`decZV]gX_Od]faSgS^ictV^ibYQUbZ_n^]Ye_YZcXY\fF\ZbY_cij]brg]^dV^]XYp^[b\\`b\eY`fMZnhcc_W[W__fXeZeVWVfXZXeZbUd^XVSSaftfVZ\fhh]W]Ya\[ckZT\_codca_]fSZ[Oc\egb[W^eV^ZYZRcW`Ug^bcah]Zji]]]gu\``^b__^`bWWQXaYUf\[iZ``eaa]\\aWfd\VaTZdhi\Rc\g\fd]ba]Z[ljX_^YZ``iiYXXTc[gae]_^gOY^^mch^kZcp]_P]W_T_TXYWh[]kPTUZdcY\`Uf`eX_WkXXYXa`h\`bbZWWd[bgaSO`adOW`[\[ckKabW^jUa`ag\X_[hW`bacd]b_g]W^^gW^[SZ_Zi_ccT_`bS\_g`[ZZ^fU`\_cg[ZcZ]\``_hSh^^YdV_ZU][l_YWYnf_dV`Y[fY`baYed`VbY__^]cZRaO]fYg^YW^^We[`ec]\X\Zd]Ym]W_^`_h\Ud]]eSTRfbWXV^_V^_Zh[^\^djYXZYZ__``dO\fcameZjg`Y]Z]V_VcXNY^b[`g_ag^Z[TXcV_bd_b_U^]_\[\aaaOb^]\|c\]`ccdaTbWebiWaXWcaWX^]]WYc]_^YZk^RbbR__[[Y_^ZbU_hc]j^^bZMa]`[dO]gU]_[Sgde[][`Y^cZ\Z\^T^`e[b`Wd]d]X`]_`Yd_x\UY^Z[]ZbgghYMg\[^hWenjdbW_oX_aea`bdVdk\eWa]\\\hWb^\][a]bnbnoh_bZhZaVfSa[iZgdp[\c^\b^bb_[[R_ceb`[Z\Snh`\OZUa`i]ZZ]\eUiY`a]he[]aaRe[bb\diSZeieW_`gglfa^b_Z`[`fb][VbZWSdb^gWf[aWb`_ab^\ia__dWhlgZ\b_Y_Xblae_\T^_ebYY^cd`]_aZW`\hh]\d_Y]da\_b[__i\^ab_dSacdW^^^]fd]c\f]d]V_^`][_^VeYdb\cY\Yc[^kYce``S_][e^[b`bjX[h_o[gWW^WhfZUbc^a]\db\Uce][hYaW]W`d\W^`Zd`Zb]V\]YVaZVd]\Q][U`c`^HYgWdah__mifZjiadafib\gS^gRX`^\Wiah`\_PX_XdZYbb_]fbWXTg\^`V\^^fXZd][SbVWi^[]^_WdYYgVW]Z_^c_U`T]]^a`e^Zba`g]_ciWQabhnf^ega]R_`Z^aZafc^_Ub\MfhSoiibbSY`\Xa`eYhdbeWb[UX\RT`wa^nTkj^RcX`^nwV\eVma\jpZ[`^WVeXhbaW:eeX\kKYYeYc\SY^aQg`aZ[cqgbdmYlhsYX\VjRm^oSTec_\XYZ\K[kPYgdVd__o`TaXm`\h|^_UZYSWdYhT[XZ]^bgU`[^YXd_P[_ZWr^bZe\\^_dVagacXh_P[mkZ[bad^_Ta]]c[]YZR_UW\]Z^\Z_YafVO_U\X]RnaZaffd`Y`ZPQghim]a_i]T`^a^kclaZjpbYb^_`RdQbX[`Xc\a[VgR^\RIbYgU^]\a`emW`WZ[`Q[Z_Uag^bX\Zg^_b^YmWZ_c^b`d]cd]Z\Y^c`i^d]c[c`[`Qfio^dap^`hdcg[T^X]cli^]Z`VOZjX[eU_`ZcPUd]Zm\^adea[kad_X]XYeU`fdae`[Yb_P_b_`d_]QcXT]coaYW__\`j\baiTWbZd\`q^dQ]^_[bbZV`\^WpaUZPa^[hP`e^V^]bgb``Pcad`aadY[b[bTc`]aXVZbgJc`d\a^WbXuea_XYb_]Ua^XYeZ[\]OWbY_W^Xaajc_XXc_VW]Z_\`]k]]_\QZ\Z\e[`RcZ\ZSee`cWS`R`W`eYpbcV_j`^lg`cd]bVXf\P`cak]W[habWh`YgYSf\Sbb[gm\[YX`al_ZYd_kVgP[g\eW\e^WhgYQ`YfR_k[f][UX_^aY`^a`ZWfg[TWWgbbVa`hd\[]WlbeiWkc\[g]f`bp^`][_aeh^Xbaa`X^c`mbdcXh`[ba]]b_WZb]jaeV_^aZbfajUdNbafi`n^[`baXbZWa[deV`L[f\bd_dcX]X^]i]SbcY\Vgc``afefb`\UVV^]b^Y^Qcdo]ZWZYd`P`S`]Vb\^h^_`_`cXb`b]_d\c\bbXc]X____]`\abZef^^_X\]^]caYb[eiZ\]VW[bYXYbdZ\^]_]a]_aZU^W\\d_\[a]WJ`keh\_i\jak^XV_mSqoVX]L_Y`he]PdbddaY`gbfkpXj^p`JoTceXl^i`ee]q[dNUgdUagYZT[fhh]^T_TTligV^abebXjfZaRMV^Z_Zcd\heSZWl^[m_b_H`Yi^doh^eiiWgr[d[\ZjYl_`d\]iWdaWUlha`ZehR[cf[kO_[jdsT[h_Wo[\]]c[U^fWqd[gaQq[g`deytXNZb[xXap\Mb^`_`\a]jdW^hUT_Ynf``T]\]Q_QZfWU^b]kaff\lcZh^YeTQi^rQYbU\\^aa_^c\ZTU]U\`d_a\\`af_YTLh]duWdbcakjqedVQWX\Y\9c`[^\YXb_eR\fhPdc\VdcOc[|]D^P]]bZ^h^YlddfoLcO[\]^Zd^`Xc_^RaV\hXQaQZbZhZC`[`Yf'[_cV^[OdbX`dcWbcY^jU[PvCTUZfOV_e\[_Laae]\R[[WXoq\[O[\i[TeR\Xbfbe[Tbe^^c\qds_ZbT^fZeX\ffMWj\`]Sk[\^WaH]ee^b\\o[XOlRVbaZUYXYU`]jP`jaPy^X_`dcN]s]Y^ZUWXYfkV]dU_Z`]TfQNgoo[`TdU`jiG]\YT]`[\_^fYW]qYRVP`ZWWXYY][T]ZPdrTgdaPa_gi_\`O^f]]k`pTGeYb_`e_gUgbga\[a`cm`]eRG`eZ[]Z^i]_j]\fbfZb]Yg[e_a[\X^S\Y]jece]bN]m]cY]Y\g`[W]_\[RF\Vcd]WbS\Xc[SkY\eZT]Y^Zb[egdoTca_]R[[]ddYZhb[_[_iZVjgdS^j_]_hZ`ia__^\T[__]][`AXoVY\f]a_gYcbN]eac_^aca]`g^_\jc^YZZZ^f`adaV`fbZSb]Yg`d^\Z`a[Y]ejmaeXdc_]j_dYSd[^dYZbb\fV``hjU[\UP^]Z]g]c[[ci`\[c`jf\]`a]YcY^[ib`__hgZRaaYb[h]^ZbZ^[]d``]a[ebaR^babY]_]g]Rc_]gdQdf`ZJ^TZP`XXlnjZmXafb_MpVgf`T_]Zfc__Z_\A[Tn^YZ_kX[cWg_bRkb`UabYcfZm]aabeck_ef[hbod\Bfg^_Ye_anaV_g]YZSX]Lifchf]_dmK_k_nf`NeedqehY]Y[iSZ[^mcd]Q`fZgahdo[[\cWda`[VZ[`i^k]\[Zbaa]bd]r[ch\hZjYaX_S`]\fgV]adRPhe]\`R_aY_`]\Y`YXU`_Y_Mcb]^\]i^\bZ__bY\k^_V_i_dQeb`hfeUX[WbalmZ[eeUacZZa_c^VYoZY[cS`b\\Y`ZTfee^ae\iecf^UkW]g]`Ta\T^``bXaS_bW_Z]VcSW\Xa_Ub_cXVRQZh\ZY]YXXk^]`U_OZXaSXU]Zb\f_sZ`_Zg]\_`[iZ[^a_\[d`b_ZTR]k^^dbe^Ub_\`ZbTZ_Z\b_L[abaRg[UYa]_^`_VaZ]__`^abb_Xdff]l`bXSgP_ZYeZ[bbW`M_`cbjZR[WdW``c_[bdZaa^U[hJdba[bZ[fhcSdQh^bZg[aeSS\ae^UhbcWfvWZ_hXZKZZi\aZZdUN[c_i`aTTle]Z_eR]ZVXaQ_gZL]]rZN`kWW]kkZPW_h_d_`m[^agja\SU^[aY`mI\di`ga\Lb\bZZff\_`]X]^h]X]cYZ[[[_[e^]ad]b^Y\mYg]\Ob^`d`]d}^Y\ahd`]Ub`_el[gZXabYVW\d`^d\^_``_[bc\TYl^_Vf`X]Z`VcbZaX]cM`^Z\`Q\db[X]V[c`Z]^cbedZZ[YWTS]k^_bk`Z^YeeVacYhehXUa_caYpYbjY_GeYagbY[]```ch`\[bZ_h^Pb^^YL_vW]]baaa_dgZ]]b^ca^Y\h_Ue\]ha__cg`_a_`g[fe_^XL\]mea^[e]ih\bY\`_ZjUk\eX^bf`\dgd`fYd[ef]gfZf_fa``\d[agdb`q_b_dd_btj_^]WWcbfeeebI_FXl`g`aff^_h`g^ZWhacYZdb\cb`Z^h[\e\acc^Yf\_gcbcYTYd\g_[`bcjf^T[sVk]^TbRX[]S]ah\\H`all_[Uc[cdY`ab_c_b_`acR^`dg`Zhc_`[^`V[Z\W^daa[a\g]icSbhiZWWbW\f\_e]Y]X`TVci\f]]\\clQTw]\Zci^^_a^_bYeXWOcX_eakSX_[fdb\ejhcfof^aji^Zs_Zt[][ZbOp`i``T^[^_Z]d`^a\Z`YWaXWe]`S]eXkX`_^Ud_YgedbagMeTaX]YbbY^Z[]eYehfZgsd\caTe^\[dYcXNVXVaZZn`^fcg\WfPYbW]_b_]Uc\Z^c\_^k^W^[ahVY^`_Z_\a^b^\Ub_bfZcTf_[fUWcWh`\eVYhS_`a[[hbg`\ce`caX_aXck`\^ccZgaih]clX[d]hbfaSeZf_b_Zd\b\_\[\SVh]he\o\Zd\]cb\ZY^cYcj][cW[[^de`m\iTcfcjieYaa[fUa\^cZTQZN`Tba_PT\\deS`\Tb[eWXbVbZdkV]V``Yn`\DZjXdaiRkVecKc\^W[]X\ZVd``]XbY`]bmbe\yXn`[cgfeWeWfga_OX\qeY\hYW``VkVb^c`_b_jRag_U^^Tecbh[_kkcXgjcYX^RJd]]j\_]bU\fX[d]a\_e[dY^o]Q`\\`a]]]^_hWdad\[g]dbeQXe^X_c\^W`]^\jZ]dW\`[X[^_ecXXb]^\`Zgdd[UaX\dba\N]Z^a]Wc^h`bZ]o^`]cXar`XWU]h\P_^dacY^UZnYZc^a_ahScR_Zffe\eYWX_dbeWZ[eY^X_dXZcM`[hfPSZYNWn\haWaeba]iX\^YcX^N]_aZ^_hVbd_dj_XN^YZea\k[gT\WceZian`aYU]XdZZTUNYpe[\ifd[\Xc`a]j`UR`Zk[c]a^a`u`bcilSV_ZV^bZW`Kk[Zwiab[[g`Qe^ei_SV[XcUkNaVu[^Yi^ha\]d[mYd\dWeaZcck`aYdZ___b`e^j`]`\gQ^]\d``aW\[Xb_\\c_`YW[RaecadW^f`__]``ee\g_Y[Ldf`XYca^]Z]WY_]Xb__a^acd]b\^^ig_`cbU[eddZ_c[[`b__f`[\\d`WW^Xa[]\caag^_bY[cX^fgWZ_a^U__[U[^f^^b[[c\gcaQX[[^ibiVWaacVvUkc`ZcdZcf]Z`VWV_ebbPQaOpcYZQ_]t``XY]SWWVX^mTacVfaiZhWTgP\Z^ffo\a`T_`b^ObQ]TgW]i]bSZ]b]Ya_`Z]_\TeVYeYaeY^]YYY`eb^]X\iaf][_Z^T[^_c[Z_UodcYQ\\a^`fa_\dc]`Y]j_\`WaX\d`cZ^Va_bcfbiaV`\YYZ\[[eXdVf^]e_YZnWg^X`^h`^\Zd]aVS`^]cpZ^[[Zaa]fZUYaXY_ZVa`Xh^nedTWT`[d]Tec]^]afXZS`_c`_g^V_^af^cZ_akV^UZ[Q`]Q]_Z^X^SWOgWf_\b^bgb\X^bo`We]Yc_`d^]^Sn^[R]_]l]R]W`[]dZZah`bXWYWibj^]lW`bfh`bc_Xgb_^Z]ZiZ`fT`]e\fXb_^Thcd^^daN[fl^W]ckihah^Y`[^cW`f[^`Xb]snaY\ZYh_Y_XYeeiZmeldZag[nWX_\Xii_]ZY^PcXej^\\[g\VR^rZj`cW\[[ac^agRcfXVYbYb`gfZac_]U]VYZScUK^bah[[[cY[Y\bbdl[Ymff]a[[X^aVW^[c\dWb][T_[^Sd[^[fcc`cbZSjmWY_^f^adWfUfaW[^Y[bi]`\fhXUeWbZcX`\`\\ZS^]ai^`Si\a^TbdbRmETMUU[Y`Nbb]Y]c^h\Y\[ZU_Yqcj\abSV][d_U]Ydb\Sf]_VfU_aaX^Rd]\\d]`]^]T_abcV\[`^W]gXg\``[^Vad`bibb]]dY\Yde_lX^Sbgc_U]`Wah]`ahY`Z[^YZTrc^_RWdaWfX_cZ[hX\]\a^`]_\d_\dX][R_^ZURc`^`]_hfTm]\VW_d]Yaff__^^c\``\ec\]_X^^VU\cVX`a\]h]^g^dXbfYb[VO`K\\]eXe\d_`KaZZ_c^Ze^h]d`aYVP]`aN]ecZ_`aWUda`bV^ObZaZ`nZeq`dcXilZg]d``b]fb^cich^]RieoXb`febi\at^^X[V^Ud]f^ZZ[ZMWTdYvcLXMj_Q[VhU]WURdfUfgaZ`_[b^Z[ZQZX{[dRgcZjcaQjdjK`edb][[hlVgX]pkZ^VQhYicVgZI`q^\Z]]c]Uf`[UiZ_bMnLeRQa^T][o]bS[Mh_eaea]EcjaceagZfb[a_UfT[dWf[Yb\[tQST[XWf`haerZWXgRaaghaigY]^`cZtUebpXg\jpgZY`_dZUX[^U^]\Ud`]acZbaVUYbae`YffgYalTX`iYX_`QS]_^ubjg_ajaZ^uebPbTkZYZ\pca[jSppX__`efK\Z_\G\iMxde]cW_\``Yi_`VebRaQaeXSYlPZ]_iTk`]Xbk\]Qi[uoTwbxcnf[W[W`]`\sW\GfLVz`Ugd]]QZ[_pg`dRXKfeZb]ggafYU\Z_Pe^\F]\ecW`Y^Zo]YnbdbCOZbndP[_bZZ`dZWAy_bW^[\_c`[\]_Yjc`\laXcbZ\cf\b_dZ_Pa_[`dP[J[e^]YY]b]UW`]d`gZ[_X`bPeSY_^^_ZaUa]X`aYY\_`YYV_caaW^VcU`U]^[S[[^c`kja`daWaj`c_^e_bg\iX_`U[`aejZR`j\df[YcaW[_`^cX^`]fb_Sd\_[Zif^``Ucf\cZ^dbYaT]Wdbj[g\U_`\_T]\`[h^`b^\]f\eb`_]ZY\aa_ZcZc^b`d\S[]\T^`]bY`cek_\h_T\vTdUeXZgWafbc[]_[hV\Z`_Ycg]W_gec_cbYeaUZ_X^^Wf]gf]bU^M[l^]aeV_`YSddeS_e\][^_h`_Y`Sbae`Mce_`aWa_ff^\[aY_Y^\a_^aZX]^baabaYcVU]aeda__W\g_a[h^ca]Y_b`\d^d_Xa^_[``a]^h^ZjbUbZVbh\eZRghb_Yaga^`_abZk`d]_Yeba[[]i^U`i]Vdb`bbQnUa`M_gc[Z_\ccVb]fg`\]Z[]f_cY]g`^^e^\ij``h^X_]^e[Z^[\]dWb^]lYc```c^Y_]be`d[Z^f_hdW^^Za]f\fZf_h_l_X]^dgbXe``b_h`^gbT\]]_[\bhZbgU]_f_Zf`]^c[bca`a\_dW^\^aXaa`^Uh][ha^bU_baXch[W\fd[cXgg_aY`djTp\``db]U`dm`T[bb^`cX\`ZbhWe^d_\^h_\c]]f]\a``acjY\_f`XXV[e\]a^W\`^eac^]\aj^Xc`cSZPZ_`h]`W_aXaYnWc^Uag[aXbfY_brdX_][aa_W_cabX[\^YUk]a[_dXZfY`dY_dr_`diY`\\[YXc\aWe`Qf_\hneVX^XW[ZSee]fS\^XWYcVbf]\dPXdakRk`bTZe^bZ[fbaV]ZT_g[e^f^j[d\]^WcfbSjZW\dcdRd\WqmgY_bZg_c[\a]TZWacT^ZZ`\__cdaY^ib]dR`iX]SefVYb`Sq[U[_`\cY`Z\P^ZbTk[\cSZcSd[Z_Y_[X`^gie]aZ`jP]bUp[\gWe\cY`_c\d[]XaaWg_[ubW^a[`[hgU`baVegbUbZWae]f^ah\\bb\kY[\b^Zbbgi`fN^aW_c^[jlS]m]`]c]_SW\\ZbWhiZbV_fzk\`Zp^d_herdX^W_TYVTkY^_eUuh\^fb]kdc[cFK`_ybqc_VWo]bf^_SgU]`[aJXc^jX;gm^]^`Xe[\Z]Vc\i[]VTognf_YaVficY^OXa`CHmd\_[a]QIMYZSH_VinVTc`YVddq_h`OYX`Zh^_[`~jiYg^R]ZeT`XAbaPtVac]cTVW[[Z_gf\]\eO`W\]cgZY[^ddf[[\bY^e\cdua[XYba]`XcjcWY[ZchZc][NY^[W^\X_h_YZ[a\\]bYg`]`lefSY_Rh`d^^b\UYlUj_\Qgdokd_]c^ccafg_pP`_R`dhab[rNcW[c_`]a[ea`gYVe^hc`X`bi\fgbX`[T`dTji\Z[WaWU^[hY[`d_h^\V]_c^YX]^^Y`ja]R^eU]dYlRa[b`[aXjcdc^]R_[[_Y^]]Y^[a\`^a\abc\Y^ehb_]da\]bc^ZbXg_\giNZecXe[h]\je^eXXohTc_]^Xd_Z_a`fTa^efd_YgVYc\^Wedd]e^]e`dYQ[`Zb[fb]_\X]i[Nb[d_^aeaTe`W[b_Zhi\bccNUPcegMTLP\_V`a[dXVV\]bdZejXZ][^I\h_\[aa`f\l\[bgU]Xq\^aagpnZ`ZZXc_[wWT]fK_mlUd\icUU]Y[ang[]^aYWm]faahI__dY`Qcj^_`[q`X\`_mjoba_a^YoQanbV]_bZXXbjZfd__\dKTcWaX`dZdXlp^j\_X]\ccbZcZ]c[Wb`SacYe\P_Xeg^jY`Y_YYihVaTb`^^kWfaYbTZf]Yb[fd[XS_gZ[][fZX]R]YXV_`YW_`cYc][XVd\fcidaZhY\a][[]ZdhblggaY]ih]\e[UYW^d\aVdd\Y_^T\g^_D^fd`gT`[a\`YS^`\WSS`cbQWafb_Ta\eVbh^d^_spOep`em`UjXligcd]e[V]miSaa[^ZUMeV\RY^h\\_ba`YfpaSbeUPkPVQJTPa``adZY]bZ]][\gaQ`]ibmYTea_clUbYbVbgbjeXW_e^fZicjabV]e][a_`gjY[hdkaTa]\h]\\aY]u\UeZk[ed]pN`aPh]LaT[b``ZSb`b\aZ[V\e`__V`g\KjgX^d[UWUff][SXa]a^]``e_^[ah[e``k_bd]lmb\Z_[hY^aSe[X`[Y`^aYgXbXea`_]aM]g[_cfUdacg\WYa]e[ZU`d_c^adfe^]`de]W`YZf]Z`Y`ic_Y]g^Ucd^d[UbY`cXbX_`\gXWe]``i\`aYU^Z\ZaVV^kcV\haWe_d`bbWgWc\^_^\Z^W[e`fcTZU^_^\]m[`aa]hcea]XYgbUhZ\XRbXbT_^_n^[`Zb[ZYdaca^e[Vjd[V^X\^VUN_d]TZc\Sh]YZ^cYeKY_mUXbaacac]e\L_J_X\g[^m``b^^Xrhek\\b\d^X]ab[]e_^]_`i\cUj_fX[]LU\eUZsafgc_niZec`WcVYUQ]`gY\W`han`kVhWe^RiWi^cUal[Zc\iaX\KvYdiY]Y_Z]pdSZ[lW_WVe_X^`_^]SabViU`[\aP\cZeXe][\_^W]^`h__^^WffbVWZ_`Zj_`]_VW]gafbh\bj_WacZZUQgbeZ^[ec\T_^[_^XV^j^WbY]^d\S_fb^Xc[[ZZW\bW__YbaZQbb^_]_`hed^_deY_X^ci^d_eXcaW[UnigdVMXBSeatl]faaMjmXd^bT\Vik_ggUc[PZcpdZ\lS\]_P]kUbQleZLO}ap_aadFZbiVUU`acLYUdjcUlTO_V_TaEbbjRPO^W\OaVaNaa[h[ZYjSY]a_cuYUU][XRUlc]oUXYX`aYiXpbQ\Peji_c]XaL]`VY^`K_gOa_thY]Y[af^X_\[[\YhcXa\UdX]VWca[]b\[WY[dZYYXN`Ze_^kUX`dU[[[d^^YZa^nf]MX\ZZ``cTZe_ic\_w[YUT\XZ\]Y^ea`ZYW]^aY]cZc[=XT`b`ieiaYai`[Y]HW\Xq\neRi[VUliyU`b[fgZc]f[ac[_][YZ\j[d]ZbWV][WY^]Xc[^b]o`__S``YUY]SSZc_[hY_a__gg]T``Oc^[Z\bhN`jfV[fUic^eZW`][`gafbN^^bUk^Ya[Xae^]aicSc__^_[c`WWYUb[ce_ahk^_[[fQcaaXUYc`c^XNa\lXiPZcX\`agbgjLdhUhSfiAgtK\l\g]c|Wh]`kZYdfg``ReWhSUOcc]eR\[Y}^PZdjudZ]r_\b_kafr]sbk[dbpn[g]eg]_Qd\Y]_ggt\e]\gX[dcYngbda\e\bP^h`Nakf`^a[NZ]`v]U`b]YmLdjubhaZfYabVbfwaha`mXgifdpb\m_ZWaa[`T^`daSm_\]cScXd]^_bdVR`fYPi]Z^ZXl^gg]cZbUhgfWPhWY\_`rf[SLeU[T[lceRLZWPagh]eZonSI]X[\_]O`ecSdFoV`cXW`X^ObcfeWdSUgc]Xaja_^eXkPR\W^bYVdlbUfb]jbYi^Wgsc_Z[U_XlZVdeSjcb[fZe]Z]UXad_ZV_aVYcYW`SZee]_hQa[_n^YhTXRXNPd]SNdf][^W`_fVYgU`]b]VeSXIZZ_\nbYbeQf\ZadiURY`gPb[eb[[`^ncib[Vb[^Z\XW`S_^ZPd_`U_^iTTYg]SVid_`U`]h]cU^d``^a_`]P`d]`[Ra`bd^]X__aZ``XbV[_c^c_]abZ]\S[a^dicdYWWfdb]df`bY_d\`d]X`YT^]hge\`\drdV\[d^cW]_jXYR\\ce^Z`UeYge]^h`bbcbXed`U`cY`[ic`Vb^fk`[_Zb```fcVjdnfUaYY[aW`[\]fYeV`b[a]_lY^f^Ohhb\a]^]eXbehe\\aXW_Zh]]ck_U_bYg]^_\\V\ke_d`YR^aXcddZb]eYZ_P``[XZd`e\^W[_]`nX^aigeVf^Y^[Z[^]]`dg]j[_r_`]`\aaUZ`cXec^haN\i\a[`_c\_^]c]n_\bha_W__b\Yee`]^\mdSf]ic`_\_fb]ib`Zc`We`Y_S_oWd[V\_be^cZae\[\cLVmfhMa`kX^X`e]ic_hiXWZceh\VWVO\_feOfb_Ya\_\dRTa\ff`gW\YZ^ZWabiYfYWeeb`gcfbbc`hWZU^PjeZTg\^eccj\cY`\Z^cddg^XZ[VcXb[bb]la[dfXj[^MalcrTOSaU_bZV\__YbdNYXidhj`ViXa^dTbbZ]_bag^i\Z^`O]bZVmaXhRbZYaST^Q\VSb]akcb[hbg\a\X]\YZM[fbVfbf_XYed\]`JafhggqK[]b\]_cb\bZV\bKcW]PbfU_\Z]pk_hijbcaUeYZk[Yaa_fd]iW___Xcc_ZZ`_b\_a]_`\PZj]fc`Zce\fjgV]a`cfdP\haaXmd][^\b][YZ_i`dfX_`\mX^Y]bXWbYc`\S]Y_[mbb`Y_XbbbXca_md`cnj]bt[id^aad[^]UVTY^][Z^_]a``bX\[aeah]b`^\ba^cXT\[`\ZZY]V^iY[fWd\bb\`f[ZZda[]Tc_O^Y\d\d`\^iaUfYYeW_c]`acadbZ[_bW`^__gdcjSa\dY[gd`d^b[cid`Wc\ccfWeZTWm[]cZ\^S_^XibVZl^U_\V`c[^efe]dSb^flZdWV\]X_^]hddYfa^Yde\bR`a``ecX`[g`^bWXX_Y]X[Y_dg\WWXa_cfhdUb]Y\UWakc_TYSYg_[TeehamcdcX`^k]^Z]__YVlYZUWj_Nj\elb^Zf`f_]Y]Z\^`[^]T`eg[\N^QXa][V\^Y`X\e`gVQ]^Y]YY]fid_hjg\V^^`]]\a[a_U^vbk`^b_]d^^fZa\`c^dYaX]TQbcT[g_Z]`_deg`]]dZdacXbYeaL`__h[_\]bY\\`mfWes\Y^_eV_ZbmgYY`_ZbZ`eYacfWddacYa[[]bdf_^gbb_aXT\Y`V_^_W`[c^`bd[cadc]bdch`]``_^_\eY[c\[_]cXYgY]eX^fZXYaYW^bYY[^_X^aca^W[fc^]^ZaZXOXZWWrhdkcTe_f[dYbgPZX^aYY`kcfZZ[\US\\fa\dV_YSpc[]XeVZ[[_c^\W_]O^_aiPZok[ic[ZY^`c^SY]Od]]ac_Zf[VZ`fUUUW]][ZC[bYd]\^gWbaf\]zdcck\aeY\_cRacdVlZ[VUb]biiQe]ec\Z]ZsWVVQhe]fQecQYdigPYbZic@V_jpeijWIa^hXWN[fcbbdd_Vjof[VfhcbNF[ZigSm]Yc[TfYhY\`]YfQdbNbbaRnbZc_b_W|^bUfjYSX`vYg\[eafa^al]Y\bf^^Zbdb^\eW^a[[R\Ua`dS\c\bX^^l_dbcXVaahfjf`Y\^Wac]l]q\d_`c[]TW^YgY`]g\aXUZ`^`i[\Rpbn`TY]bU[h^h^m_\]_lbb_ac^[gU^Tcb\]^bfbXg`n``]e_^_\`[[b`^_kc`\[`WZ]W]YeV]W_UbLa[[XbaW`i__IWbXe^ubYb`ZX]^Zc_RN]ZihWNYOJZ_^d`\^OaR`JfRjfY_\gm_ccglY_XbWWdld]NUQMYpn]V`_^c_[XpZXUQaSQkL^au^VWgVqHbTd]]`hX]a[Oct\_Uaf`[a_eR[O\QYX\acS]dcdbY]][Q^]f]]giW[^eed[j\XZ`^^_^a_e`T`i`_d_P[YlbfY^ddb^S^ZcdbZ^\fgeZ_[X`eh_UfS_UeZWo[aaf[^fg[\ciZ``[Z\d]dXd]\a_a\_]^e]f`phcXWc[`]``Wb^cjYad^X^o`mYeeU`\b]]eSahX_rYgfe[WWW\[Qdkf_bX`ahZdW`ZZ_Yf_ZbY`aceka^i_Y\cY[e\`YeTffW_YTb\aS[_^Ye]b_nf^g_Qm`[_R[`Wdah\^S_dY[YhgVVT]baVd`XY^^hY[[hcUdee_Q[bUcW\i\[adhUUY_g]_`[bp_Zc\cd[TWaYZTb]Q[XiXaSd]fWah\^`g_g]cggkbULX[e^bc[[gY_\k^Sibeg[Z`lZeXWX`]d^h\^Zka`cf]Wf_\]caUf_ed`UXff]gkg][cgigTd]hcSbck[``ieVjpd[i\dZ\Xibei]YSae]_^hfk_\cca^bmcY_cba`_aZ]V]darZ]|S_dhZ_ec`]\aYL^cXWg]a`l^[\a_^b[]`d`TbX]Rf^Te\X`^UWX`Y]aXe_bib\Y]\]^\[`d]ZW]]YXab\WmZYcea^\Z_\fYR\aR^\T_[b^Z`ibe\i__^`epdd^cbb][c`XbVQdeQ]kZ\`]blX^a[^bN\i_^`kXZfaZa_X\VafX_\\b\`][iabd^ZVaa]dPXc`Z`abX[b[YZU[X]X\b]]d][aga_[bWU^``\`c\c_bad^fiY_fXW`]]\h_YdacUh[d]SdU\_c[]cXb\mbY\X]b\cb_dg\_a]c]a\Y[e\WY^S^_X[jbOYXTeac\S\_]bbf^\WiZ^i^`\b]faae_d[f[_a^Z_Z`b\ga_Wdac[^ZV^a^c^``Ta`[_`Y[gZ_YigXTaZab[\^aj]ga[c\[X_hYUddebfc^W_e[_V^XdbZale__`[[\dhabWdYebcaa^hh\ZQ`]^\[V`\dU[]d__`^[\\a^f\^dV_Z__`[UVg`S`S[_ZZWcU][dbPaZWaV[eS[X]afZifhNNdoUWYdSLj^_VXcf[U]\aMV]]YL_b\H\d_T]\q_Q__aT`gke``\ZblZgc]AQWRbd`Nf^ffcXdgdplLdUlX\e`bT^VP]VO_[eZ[k^g^ocbh{fV^\geES[`c_k\]M[dfZafVX_T_Sci_Xh]a\\e^cc^_]c]jfbY]VZ_YUbW^]j^[ab^[TR^[_YQaWV\]]_W_f\WaiaTgdha]g^fVXYU^Ye`_][\XZdiZc_]gh[fWO_Sib`Y\WtZ^gZZb^WY]\^Z`WZc\abaXTX]X[_a\Y^\b[lY[ZQX\c\]c^[_]W\abWZeXhXeb_``]e`^b[`Nbd^]]T\^b_[[Z[_`a_Zbf_ZRgX][]]`c[``f^cRd^\Y^Ro``Y_\_Ya\da\\Xg\^Z][dabhb``Y_bN_aaW__^adadKac^YZ^_X_khj[dL__X^`ZXM]\[__\_ab`Waeuaye_`e][^d`Z\ch[`X`[\d\X_^^fa\]\fg^Z_eQc`d[cgceZZ_^cg]bX``Z\]VY^eZ^e`T\Y\[g\X]ic[hZa]`Rca\`e]^RYfY[a_YjdU\N^^QS`\[Wd^\TcaZeZY`Vh``h_fUb_e^cZa_d`\[giZZ\^UURbg__\`]_edb`\cXbVcaWQa\\e][jie^[Z_aYeRbbd\UiO\behWW]fUVc]ha\dXkYic``Q`aXSi\[cRW_Ye_XUYeY^Z_mcfdXa__e]]b^c[_[d^fdaV\b\[babZed`c[TZgiccZeTVe_ZN[e_\_Z]_dV_e^X\ddbbaadVUT^\_`V][c\iRXZ_b]gta_c]f^n\cfW`b\gd`[_d\]QViNdg\S]dbcHVboXVe`cRYoR\]pW[fZ_\Rgb\^aQfeZn\X[N\q^cdTM\Yca_Vcd\S``YZ^Akb`af_V`^aX__nVaZ`V`O_Tch`TYWWV^WRaf[aZ[[]WZhc[eXa`Rc^[a]\]bni^[ZcVha^[T]WXc[\T\[WaUhnZ]iiad_VeeZcjib^XVikZa\\_cV[Yh`gbe^]a\b[^_`i]a[^^W]`c``Zceh]^gW`[_b\XXg^ZkUVQP`bdWddWYX[ma]ci\a_e]a]WW`k^`hd]\bZgcdiZ_\WYe\S_b`cYf_cd^e]a]^a\cXf^a\]Uc]Y]Wf[`ja\_^][ah]bSXgfj^kf_aa[ZdjebgehcVWigf_Y`eak]WhbXW]m`aamfla\ef^_WYg\XcZacYTifje]babXhUYl\caaeacbdcfXai_hhb`cV^j`\hgYeb]bi^fa\Ze^]c`U[em[Wc[iZd_c[c^Z_ga_ESd__a[bWYZ[ej\rWfidKNeVnXchOqLYd]]YskiiZ[niU[anX[caXXbbSgVXPefEjT\a[XY_P_hdZXQYLgUXT]bcX`f[`a[dcfXaPm[cLXoaa_WdXd[K\`[Znhe^VYH`XW^[cafZ^W_^bkZ_YembbfeUc]YV]^Y]kZ^]b_[`^b_i`e_df[Y[kYUbPdpSbZgRZh_]]R__SVYZ^[b\ad\[[`Y]XVSQ]`a\Y[ah]][]Z[cZe`gceTZcXTZjV[\agUj_i`\fe\edaTf_F\l]W`VdVbU]Zi]W_VjbmrVQhXndbdhchUZg`a[hiigT_dd__QOZmVc_cMcWdYg\QZpDcbijpiVdI\ULm^l^SS_`G`\TN=VTf_VL}_X[cFYQgFhfjeLl\Ze]gW`c[_h]ad[]e[h`WYiZWdNihef]iU_VcViJo[?IM[b^[ejYg`VhY^_ZVg[POVbSZnaXVs]zWRb\af`\YffcZUrVZofacfieiPmafb_T!`[^fd4a]fZiSd\Kk9hV^dQVOW]TjfiM\kUi\b\XYTb^Yc]w\__[fLhdf[]WZbgbZ^]hhmWs[b]a[^XgT_ihd`[^bRaf^acXPlhWhYZn_XIafgZ\]j\dW\f\Yeqdoc`X^]_W\Y\WZmVXO`b`[^V`o^Ya]ag^`\iT^][T][O_`_bj]cQOa[mrVYSbiY^YmY_Ua]QY`d]h]]b_Wc`TYbQW`^W[jd]`ZcT][`^VfdSe[VtT\YPUckg^c[\^\WdcaXe]ga[Sde\dtcPehZ_gTLZc_WWZZkabneVZggO[`WWUbb_e[Scg_Vb`Z]SmX`fZYab^_U]Z\bfl\fcd\_aX`_YXc^^V[]^_WcXZabWY[cZYb^_Xb]]\eT\\h_b^cQje`Y^b[^bf[\a^ddVZb^iZYla]T\^^YZa\`bhV\d[lTWVb\WZ^_`^Ybc_g^ch_]X_O^L^bgf_ck]j[gU_ea^b^eW\ZY]jaaW`Z`_^]]]_mb]c_RbTYhbkWdZbXXTed^PbYeg][V^SeUdf[]^g^cgY`dbidiWfZqXWRcYY\`W_affV_[mcdXdlWfT\^a[_][^[[jalZ`Za^``V^bMY]eh]]Y\aZ`^^dc`f\YNbZc^]YpZb_^^`ZThac^]Ndg[\\Xd`_bfZ`geaU^gbUg_hZ^Y\[\[]W\[g[a^ZX]acaWfg\b^\ac^``X[W_\e]hbZZbaW[YbQ`Y_^``VZ[Qc]T_]`cPeic`_`_]Yb`Ze^^W__d\V[]`i\`]_`cY``b]^Tc_[c^\bjcVcZ_gZWk\e_[]OebZb]c\\Z`Y[g^_^[]fYl`k_XcecWZeT]NZ\bc^l\jX[\^[[bW^c]fIUaibc\kdVRY`^Zbnes]\Z]XP[cXSVnZe[eRZ[V`f_fddhU[`UhU_Xc[c^ej\[e^dbe^b[a[^`Zf_fWQY_Kh[\Z_c\fi^^Y\bc`iUcaUh^_]ahaXYc]_^lWb`[]mc_]a_X^a^UQVYg``YabY[fnWkfdQ\`ac_j_^]Xi_]]YbpV_c_WbdS`YX_S`]c]`hQgb`c[cibhcea[`ddU\b_Uf\YY\a\W\`_ed_`Xh_^ci_[^fb_\c`h]UT`fWaZ[Z^V]_Y]]a]VbecSeV[\[S]_dddZV]ZW\UU\ThU`]ZYefi]fY_[V]]Zf^^eecWe[hfa\k_X`S]a\]_YS`aW`]aW_gZX[\PTWkdaWW]UeX]d_e_Y[Ym\RY\g`[`d^Y[bY\hj^ZY`\_gVc_\YaeXeY]a\]Zf_^ia]_ZXZY]`[YYXacY\fTf]\eihZ]ebd``Vah`a`eOT`^YY]^Zdj`]\^afZ`]dd^XRa`[`W_aYi_dadaaj`Y]jb]Xcgc]__]cc[caXlaaf]_[cWac```[a]_`hc_egg_^c][Rab]iW]Rug`T^fh\Z\^]]Yg]Z`h\g\W[X]g\^R`^UfZZcRhf[]a\[h`e]_^c]b]]Uadd\WS[]W[h[eoZ`^[\WeWca[e\W_[b]]h^]Yd]ZSWaWcX^`eZ\m\]Uje]^^Z`bbhd_c\iUUWgc^X][^[faXjj^[e]__]i`_^\aYea^`Vd_gd\[jb]Zaba\Yak]TefebdYc[dbac``c`_\bbS`nYaa`SacdZW_^J_YhaZadhf]VZd`d[a`ZhcZd_dibl`sf\\`bedYjjU\UTYa^]_`Wd_acb\k^`c`dZk_[`[kga_^ag_fXYWc^cjhi]ae[a`^cg`\\XZX`[bnwa_a_c_]]Yc_f`ghZRaNZgaY\\i]`_bjc\WkSrd^gc^]b\`_ZW[YW\^TXZ[jW[cb`hU_c[U`\c`f[beZ]__d]`[\`mce^gXm`fhVZ^W[U^dXa`e^^^e^XWV_cX`_aa^iWffhYd]bdgc]Yb^cbXXdZbaTi[Z[b`dibbe`]Z]]Zgc^Z^\cV]aj[_a^^Os[jQUhY[[]_a]b`c~haVU\_URg_[_eKcYZWa]_kLVefacdRNjb]^cXbTT\\PmgTjjfb]`m^W]kj]Y\bikrYaQhbc`VS^jd_^]jog`^Y[]`k[ZMojc[`\ebZfbV]ZZbRQ[\[_X]hQfXVETSgghNf\c[a]cPo`_a]Yb\fZf[W\efhf_[^e]d\g`_clYdf[YaYMY[UVUcbeb]ZYSb[ha_bhmVVXfZc_V][^`bgihbVN_`f[e\\hd`XR`a`f`cb^`bRf\eZhYe[bXf_TU[eg[a\cce_\]][fd\[eMc]Xbaa\\XU`[WQ^Yf``Y^hi]iebbb`[i\Z_e`_]X_de]_RcZ\_^]iT`Zhd]j[d][dd]\b[beYe[\l\UbcZ]^cX_`kceWY^XZdc\c][X[bN_b[_cgcX[`[X\d_]Z]]]\g]Ud`]Y`]^g\ik_e]^R]c[RZZ^g_^\ba^d^TWM^W`aS[fXa\[]Z[WU_d[ZgYhW`[^YS]ZZ_`c[cZ]`Shch_\adnW\cV^ba\_b_f`^^^[Y]S]cIXZdW\`\hY^c`^^da]ZeX_ZiUg`Z^Z]X_d^`_^c[`\U^^ej]^_YZ\W][VZQW[e``gZVi^eeb\bZbaT`]^^VaWd[U]^]]iZaq`\[_d_ddia_c`S]V^X[\Xjc`YV`e\][]\e^\h_[aaYdY_e\Z^YcZ\dbec_]a__\hU[XaYceXcZ^he`\d^_c^W]^W[\Z[cfZX\_X]eee^\g_[[c`[]a_^]ViU^a[hV[`b^\`[c]Ob\m^bf\Z]`f_cW_`mS\b\`[`f]`ZXe\`kg[bgd`ZX\\bj\arVXXdxc[^\a`aUgcUX[`RZceWddfeS]__ib\faZeb``^^h^O^`VlbbXc\aZckaT`T_aSZTpYZ^bbf]Rog_bXXSWeTa]b][QgZUXaUm\_abXmI]Qm]VSca^^gad]Wd^g]bY_b]\W[XifW\lWZbX^]VhJbbnWVW^Zgb^beT\Z[Yb`^V[agW_Ya_U__]`QVdUeaXVd\eVT^_[T_ja^]^S\UT`]hN]eak_hV`hXabTdZjWXZ`Zaa\[_Tm`\`ab^[_]W[[[befZ[`[UZ^c[Wcc^\YZbYhcZgeZZ[aYbcZ\`]ZTdXa_[dZ_[nY_d_ZZbX[cnp\Z^^[\lVhbXZeOX^ZI_e^`]cd`dZNfdX]Sd[Okg[egVW_W]Xi]ObfSP_\xpcYdcRebWXh__XgfohWXfSTgW\ZRd^TXgTcafJ]c_W\anY^\]gPSaS[_X`ZM`bYfa^Zgad]QZn_cOX[efT]]dOaIcLY\`[^XGc^X\X[\]i`YsZWaZb[]Qb]a\c\gXbZ^^_YdHaie[X]bZd^]dabbYaeiZW^cV[c\c[gbVZS]]V]`]]]VcY[\fZ][a]j`e]g]c[S`kdb]SVaRgWfadie]^XYZh[b^rWl\[ch_\hdXeQa]h[T\^_cXI^h_]_]eI`[YhXZYTafVTP[[b_\X[_[]`q^U]^hX[l]dZhV_`WZ\Z`_aYbfsUOg]iRSWXj^\a^eeeSZhgjTUZd^W[^_a[\S`[abi^bg\W_[SbYZSe[aWo]^NJ^Zc`dcZ`^`[WVda\^`Qbb\WbW`]\eeiWeV]ha_`\]^YV_U\aYXYS`X`\ZReb^dYiee^^aYW_^]X]]Ya`h]\^]a^cVb[chb]ZeejWchXaWY\XZ[][Z\grhYcg`g`_fbfV_g\eebPaf]hY_R[Xc]g\WbXiS[^h]e^fbXWr``W]Yj^_`UXcRhZ_i^^f_^cd\e`e]]^S``VXJfX`_a]j]`]\e^]`hTWihbb\\\a^aX^bY^^ccc_`WR]^_[Xf__]U\ZW]\bd[d[[[b]VNWZc[UX__a^]Sjgbb]hW`_Vb`aVZ]le_acY^hWgY\`i\[^^j]_^^a`e\^TWeg\ae][_][X[[`\cW[cVbUb\YXfni`_^Yb\g^XRdcUX`_f]X`l^Zg`nYYi_ek]][XYja[_V[]X^eX^[c]Y]\`h^Y`\ecW_Y_ll_eOb^`W_\_fm``[]^b]bb\Xd^aX`ccaaZWl[^[dYdXb`ZYTddbXc]\ZmkWZ_`]^Ta^Y[]aS`aUb_a^eb`]]cZei[\]^l]X[\i\gcgdWa\[]S]gX`eZ`ZdiWZX`UW`a^YYa``S[eade_bbfX\\]`YaeYd_`mR_\__jgcRQ[e`_]c^Zb[dPbdbbWdZU`Zd^^Taic]ede\YZ[[Zcf_``fT\[\Uaaec\^`c_[]__aae^[ci\]]WaYm[_^\YZ\bY`XaZb[^YUVZ`T^`][bvUORg[^fV_ueeQNd[_cbde[^jVVdUmUZW`_i`h=[WT`igdd\mE[b]`^Ynd\Wjve\bbX[b`_OfH[dZh`eV]eZ^_`af`_SRe\^]\jZa{T`bdVZ]]fP\b`oZaZcaQ`kXyd[YjgfdZmagL`^fZcaV_Nd^[]\Ra}`[V``]f\\`ZZ`[cbd^[a`^]\^Zabc\X\TaPfeYZ^[kabdcbXacXZYac_Wc`^Yfe\`[bYZ_s`^^Yib^^T]ba^__Y\Qde^XdS_TWUZ`Y\[U\_Vg_Z`k[]dc[Tgca^\`Y]X`\ab_f\g]`[Z]fa[Zbb\d[^^\Xai`_b[W]Va][qeZ\_`g[edgaWcYXrZZ`\bWU`eW][n_]mc`l[Y`Yllf^]`hWhfaW`^cglc\hdlS_eas\^W_YZ_e^kd]TcnjeXVc^`\n]c^lU^_]`g_`n`b[``[ZdfV^bXb[\_Yp^Vdaeaa\dabjZPbjgeabX_`gZw_^ThVb]W[Xa]Uem`DW_j`Y`UYb^c_^cZ_db_gcdXacg]Q\S`e_j_abf]S^ecR[^p`WsYY[nWcYYWcZc_e`\PgeLhW[XS]d]m_XhUY]_OX`]cTYTeZ[JL`_beqW_dg`W`e][`aaWhdbf``gl`O[mY[Mc^hWRKLWZ]cfcmi\X[\_QZmc`_L`^jViegaIdgbYGcM^aW^ded[\N`]b`aagSe_cnTb`LxHZ`dYXcd`df_g^f[KWW`TW`X^iYf]Y^XdRg[_[`[R`Wp^YhbY`^m`W`c[SXc`VV^jPY]``]Y_iZagfY_N\a[a_^]V^Za[`^aU`Se_Mpa``cX^\UZ^[_bb\bbcd[h`jdVi^U^dbX\WP[ZYa_]f\`\ebcbVdkbiU[`\c[^QVcj\lcg[]a\Zk]bn[][Y[ac\`[_]Y_][Y^Tb_ei^b]n^bXdYcX]_iTa\\b_Yl[_^cWbYa`Ug][`f_]bdX][Tg[c_\^c\gP\]fa__]_\_Zb`a^]Wbjag_^bT[]\\][V`[`cVZh^bdgV\`\m^\]abcb`YXZY`^^Xdhebf\_Zb]`]^[bW[Y_iW`e\^VYa^^pi_ejZc\aYj`b_`bW`bic^fm[bb`YU\^]X]dib`a\ef]`c^RiaaYZog]^g`]Z]`dO]fadadhc`g[a\f`cb]lfZw^_Vf{X`ZY^ka\`@U^PYafiO^cfb_g__f\Y]ga^WZdc_cf__Wa\\_`j`W_ccVaSfWb`^bWoYcamd\rUa_NZgeUfdbY_g_kd`^dbW_e`jda^^Y__^gbahldLZb^`hd`k\]R]\`a_Yba]]dbQrdTeccZf`VVa^bfac^WY`V]Ya\eZ^h`_`U\YbQcFSPd`dOd^Y^YYWa[ZmY]`RYcb[dXh\Xo^X`dTe[`XXblea[\XafdWZ^^^dgZ^YZdZbZfZ^j]OTUPZe[WXUYd^`a_\agVOoUZ^jakX^cjha`V`Qc[aVdYhhf]Qk[ZY\Z]Rbdica]ZWaiT]gk_g\le`]_aZ[^[YY[oTU_a_dTQWXVlf[]`a\gbZ\hZYQ[QVeec[[`e]]a\gc\^gjZa[cZk_LU\Xl`daiU[_\WWi`WbQYedX[aU`^^Vf`\]cdYadZbcc`aibRdl_aV_g^SY]^h_h_db\`ZdjdYT_c`af]X\^]gRY\i__da[]^dWT]a^`Y[d^cWYb[\d]g`da]b_]\abecafe[S_Xai`[\[SbegWef[anfcRb`g^pb_aj_baYk``]bceXYbdaYihXWg[bhd_`_`[V\bNSkZ\^`Y^ceUa`hT\Zdc]`]eg[VjY_gZ_ZYRYT\^Q_]fd\[ZeX^VfW`ab`XcZ^[\bWXWU_ZZWe^Y`ce]oXRbW_c^J^\aZ\]klt]`Va`UlYaZ^aYab^Z\V]e[^dU^bUdd[bYOd^Ua_]GY[V[UVSg[`aZf``cZa^W`aS\WaZPlcXa_[Ua`Y^eU_]cbXcn[dUah^TYUe][c^m\cbW_[fYe]_ajSZ[da]cbW[Z_d[bbNY[c[`ThYW\YY[Raalidd_SZ^V^TkV``_^[\aa^[Wecl_TTe__dio_fYWa_ael[bXk\a[o[cR[jcZ_iaafZ`b^^TX_Ng[XieMf\Sbj]X[][a_d[`gs_^XgcaOb\W`ZacXceZa_]a^]X`_ZaaY[aU[ZY\ef[cUfg_^bfY[Xe_Wk`a\cc[j^b`beV\d`^_kXeZOe\Zh^WQcZdd]aXh]]goYjYjbeVS^[^_e]]mac][VUX_gm[[Ub]X\_[UeYc\bahQ_d__XSkbZ_\dbciZ^\\ZZfWkgZg\Yradbibdja\W`ecV^gdbbc`k`c_]_`]_Yfaj]W[U_]jbcbZPbd`VZ\\deY][hWa]Q`b_Yb^ck`]\XR\Y[b[mbW[\bYd[__`jcg`]_[X]a__OY[YacOj_bmb`a^mi\[Zb_`\]aXcX`]]ccb\ecb]\\\[\a_b[_b]_`^Zd]da\Zh[cbWhVgb]aZX^n]Z`cV`jh\Tke^i[^V[YdbJ`[eY`_`YSZ`PP\Yb[^Zg^]a_cdcbi_`]fa^TZdQ^P[[ddTj\^c[dV^cZ]YZ_a]_Lia_^W]bSej_Qb\^]QYS[`]b\d\b\Wj_b^R__U^[s]`_IdfWddZa`egdM_aQ_a__d``Tc_aeb_[ZZn_cacM_a_eJWWVfnmZp`V_VQX_PZhe_NX[U[ebcXZZ[_XY[ZYcT^eoQYWaOfhj]_[VjjUa[^ib]`_arXVj_FfWYmJjn_cn`bkWeb_`Xg_Vm]\PU\\VM[YWoVa_\Ue_vo^ZW]dbP[X^Zd_a[hh_`[cgd]\d^ZYQ\a]j\TfX^bX[``[j\Y]PhgXW^ZZ`_\UcXbX`]b\fI_da\aXa\gbaXMf^Y^_aVb[`^bcg`Wm^PZeX\Rje^dfgZgZ\]\YWf]Yb\Z_dW\cXmjZ`m_fbXXaMW``]bad`_YaW[]WfYY_d_a^SgYYW[VbTQpVYVcYX^Zb_a^AYdg\V[Z`a\[gdF`V]aih[\[[]\eW`_NUT}wka[e^j_Zd[OS_ea^Ya`U[_`]\b_adyc^VUG[b``^[bYSTgd_X`Y]hWVUcTXhSma\m_`ggJ`f[cF`[U[gV]]Y^[`_XZUfYVV`qg]]ga`S[]k^bagcV`l_H^g]b_]e[Z^mWbadhe`^_Ri]iai`Jc`WbZa^^Y]_Ybcba^[XaSFk[[aSUBUbEW_ieYj__Xh\ac_hU^[T]eY^Ved[Wcb\[U^m^d\Zh[c^RZ`SlRfe^d\^aUbKfmW\Q_Zf]OUa[`J^\^p_cXcacaw[]a^ff[[i_g``Za`i`a_kc[f[YhUUgg[`a_bn`\fk`\]S`jgdce]c^[f_\b]X]fahZ[Z]f^sa]`ZcmfY_h[Z[cbgeaYn`[Zamb^Yk\Yjcdi`bhnde`[```_ic_g^`Z`ahd`[[Ub[ab\_hcW]aWehi^WqV\a`^[i^`_Wjc`lZjf^[k^ceYd_\]g]^`YfaZgbZXY_b]^_aZcVmVga]gaebh[`_\Vacjc^ee]^sX^c]^WiY^]p`bia`SVgP^f[c]gZYdVbch`Ybaa]ohcXY`_jXlYY]Z[X\XgdfmT_\Y\z[aOdYacpciR_cX^aakicV^Cpaa`VaTbbh[csXj`V^Xb^[\[g^ehQgce\QY^^_YcdeNiSd]^ZmaXe_`LOp_[PULYM[__v]VnVWaYaVZ[dWVcU[\fK\jfPV[Wee`\b]fcSVe`_^_c`e[U^V^_Wf[Td_M_TZa`bX`eg^^aiW]]YZsT^bWbcSYabjaYm[P`MXR`ZQW]Q]cZTiW^g]V]Z^efdfVY[bVbh^XUbR[[R]Ljo[f\WW\cr^gZa[e^VVee`^Oa[bdbTU^agd^_R[`gWVveZ[_\`_pZaUdbQal`[Yc[e]i]V`K\hb`P^\]]g`eVgVj^ioe`jde_[_iPxhvZ]RkafdbZ`biaUa`ZkhWQqY\aP]Z^^`^e^b^Yc_h\ecbajY]X^dRWZj^^_Yf^Y^cZZcYYZcYaTXYcg\eeTcUZbae[Ya[T^hTbWic`h]]WXR`^X[gdd`XVaQ\[]s\l\cb[aYda_ib_XacYcZ^X_X]]ad`[\^bZ``]Xn\eT_b_jnNZb^[VReiaY[_[Zhg[_`YX[\[[aQSTib][`gj__ac[ScZLbhe\a[RmkeXebZaUTL_d^[ccgf^kVXZZ]]X\[QdcaS_`]ZW]e[h^eXXaaRVcV]d_bZid][[]^[aTW_cd^U`fYd\aXofe`hd\Xdeg\ckSbbca`Zk`lXmYeb`\UcQ_UsU_eTr_]Z[^ZVcbZcf^i\leRhUma__ncesaZ`[lTLlGYe^XaXY^ORchRYcd`p[EX_tSOe`hQZXjgd]bXiVa^ZjQQeXQb^jdfdsadaPXYjpHaaVeZ\\_\R\a\\XdYamaVX`VfWmNVb^[\]X\m[caUT]ThX[lqYX`>b``e[be\[Qc`gfZ\hdfZbbRfaf]hbG^_c\WaTYY_^`a]fe__U][^\[\YZf]d`VXf^\h^[]iaM]LY^bm]R\\\Uc`cXfb\g^bsYfZ_\j^\Z[_\cdkga_aYcZaKOgYYScccecV^W[H^iSb^CagYaM\b_mde`Tg[bgXeiX[V_YajUhX^U]SfYm_c`]W]^bgggihz`S]f[Z_Rb]]e[fk``gb`aZ]bQZb]Z_baeO`XT\OYUd[`^q_\fZXUXZd`^iv\V^d_Y`ZF]V^TbS\ZZ\^c`aadXNm]Y^YeiW]][Pa[_Oi\e_deab`S^VW[^llX`_g`YZW`YhT]fZ]`\^Thb[X`g\^deaac`bb^f\_jial\_YgYV\XZccjegfkb\aYYaeWaOim[iX\\]YSX[nUhcS_Z]Y\VX]Ygdb^XaUj`RcW`jfYf]N\b][en^UcX]Rbab_\`^kW^^V[T^\^fc]lg_Y_U]\UmXVa[eZqVb[ajJ[PYfUYp[V^jP^\dZji`cedaYc`FahFeeMgaUgXachl]XVj\abf[\ZXTSV^RdVhb\V^[`cQUTTVYX\][]McY`RXdaY[UbYg^YU[VW[X\]ba[WR\Y_ZYacPZ`_Tc]eejU_L`WgQ^XH\UckVZUeZVSXVJY]^g`accThYWU^XaZdd`^d\\pXepmXZ_Vfffa]W[{QWh^fZU`cV[[UWYhZkeaoeZgc^SVeeh\V`jN^ZhS\hse^`]d`[fSY_]\XU_Ki\X_TXe_fg_TXc_od`UUWhX]VHidbh`TY[`_bgXWXXVP`eac\beag^gaQU`fTiXag`WXVgceZdd`^m^f]^hc_]T\ZRa`gdXe\_faY^\_c]i][OfXb\]a\Z[^^lQh`lhVc\VcUa\gZRiMdcO[]hff[U\md]__da\l_ZaVjZV^l\dh\VWQ^\Z``hX]dae]TZc_\\W^\XXeWdeeoSWdKaW`Z^[fcZZO\\QvPbTYefj]^_a`Uh]\`iPXccdYaeuf_Zf^ScYX^^X[ZbUoeeclfaT[\XcbecWSWjZeYbgZYY[Y_f\chbMbbZ]YU]WZ`fa`g^\ZXihaVdj]gda^[[[WdXj\aQ`\Zls]YdO^Wlcgc[aZYbwp[b_di_^`^da`vbiZ]`\k_YS`}\^]aa]dS^e][cGbcdXV]ajam^egO\`WXbXYZZR\Xgf_hbUX[_dYbcYUVXX\[Wd_aXG[d^cbia`\TX_[_gSme^`]SXXWZb\[W_^]eK`^g_^j__kYZZbZ\byZ[[]Yb`cYWS_Z]dbXh`\_e`\`RQZa[U_Zhb{ldg_XXZ[WaYZZedbTeW]\mccWUY[bYi`fcSaXWXg[gZ`WJcUd^YVZU_W^\bb[WD[W^^aiXePiahVX^X\XkX`a[^d^ca``QYZ_X]ZYpQ^bc^`cZied^aZVaX_d`_ZeR`X`ZW]^cX[_V`_`capRc[f\V^WN[sXc]dX^X_`W^_`^\`kS^^d_`eb[b_p^Ab\a][g]`Zse][gcfXJ]U][YdS[ajWo][eXTQ_`XbYcfk]^KXlYUb[V_]jfe]_dgda`YZfV[WYfXi]\_]iY\i`]d\ZabbQa[V]TXOpadQb\abWVcUV][^eem\d___`\aUqeimYc[b]dX^gU\\avdZdjRj^`]bcb^^_de_YU^_Y_Yb`Za\kr_Yaa[__V`XRlcT_VlYXgUfUTc[c`qaf`heWalM\dabYf[\cc`]ZmeZk`cUQe\NasVSf^R^__a\^`W`ca]i_a[f[g\u]jS`h]]dbb^c^aY_aZ`QZF_Zga[aIelka[\d`W[YdZYgKdc]ZdYR`_dk\e\_YmZ]afh_aX_[]kcd^\c_d[cSVp`^`gs`[`mcn`S\jWYZW`]S`^b^WWQ]Z[Wkg]_`fb^da]]Tk\ZZX^^iYdhT[VgbQUZamgZRVU`QUZY]K[dXWcQZkYf_d\[Sddba\YW]ZUXqYZ__\^clijS[dcafab\cSag^]g_Ws[^b\n]X\e]b][\fW]_Zce[WXaej\XeaadXfU^X\^Ya[h^eSdR^d_\]S\gk_[fSZcMd[cX\\cYZZdZ`ZdW\\k]]j_c[Vc]\\`Z^T]]^a[[a\h^YSge_FdZR[Vf_WjZ]PLee\gZ\Z\_WWqe_^`W\_px]W[WkhekiJdnNW_doXLIW\\j[mYQ\q`^l\W_\PTW_Zgtgq`][Sc\T^Q]Zbw`\Yjaeb[\[VT^fTZmTs\Xda][Wb]azc__YTTW\[SOgAUU^Td`gmRXkWUc[^edR`qiVqZ`WdUcg`cTUdg_VkVXWh^aZ]\d_TUrbeZacgU]W]QT`Taxd\Y`VpakYY_dXHUfUPV`SifSf`pj[ZAKevteQk`kuZf[YKN^[bWva`WTi?Ulfh]a^xib^^b]][ah_UNJ`Q\W]ZcW_qra]\fXei\kPlWS]_jheXd[fQ`fY\jXY`fg]Y\cXh^of`\WU_Xjih[Z\bUW]Ya^gmtX[jdfZ\\ZWQX]VbfWfhRZWTca`b]]ea`__[oUfYYP]fb_]h^ab`^iedTP``h^V][``^jMaaZ^n^\aU`^\`SeW[`\fYbeidW[YebY[^S`fZp_ccZdacY_do`Z[^_ePh[_[jZ][][`^^_fVb^[LgV[]da[gdXYedm\]XbUZpWc`[Zcb^V]Uc_cZSWX[JbbQcb[W_V[aae_[[YRWdcZ[fQYc_[^jYUhjRbXPYn_XUOXdXUYWc\XUcff[Z]PZbY`[h=albdbiObae`a`ZUd`dZT_\`a^]]`jfYZUW^^c`g_\ZT^^_^]_cbdU\[^gvc]\\ade`Vg\aadT]UZkeZVYYc\Ye_ce][^bc^eXe^T`bd_Y_Wbh]^jf_b_P_]ad`O^e[[Z`\aZeZ_`b_[gY_\[T__afU_b_\]c^Y_Z[cZb`hbYYY[`]_`l^c[SRWO`fY`kqe`gbpfcckY][`YakabZg^WQWghX_]hX]]_x^rbl]YOeag^YCeXaZfgw^cc\Sna`j_U`Qcdjb[PgZYeqTVEWV`pf[]Z\Z^XhlX[hdZ]`\Z\Q_]bi_YZhlb[Gaje`ZZb`ZWk[a]bWZ^e]UNaU`_Y\WaY`c`^fX_ge]cg\hhhaXfcX[^aodh`[Ldcfbe[`bf_\`YcQ_algaVem_\hb[\aU]bfbaddc\Ve``Z]`_Z`a[e[c]f^U\hb[_\gSf^bd_a\abaYWsXhf^[UWh\`\XXa^i[ZhcyXf[[aSg^SWg]d]b_\gb]kd\[icdSV[TagXWe[Z_S^`a``b^dZZ[[USaY_\^Z[YS`X\b_[[a`_\]ief_SrbZdPSdNR\^[Wb_h^YjSdhYeZOccUV[lR_W]`]^XQ__p\[`[b[gWYffVVWlaf[M]^[]`Ycbi\\W[V[[`Zcc\bYlXaa_UVbbdYd]bTjdTbe[^ZWjx_VebfRKfYac\df[fZ[bUc[YXY_\h`Xdcc?QZYlhkhPlaeX]idb\tcj\[kej\g\fb^VXm]YW_VV^rkUmu]^^T]ba\I``X^e`Z[fe]Ng]c^cUelO^U^dcWX_dd]SD`bH^^NbdVR\gXmcXb6baaa{_kMWa`Q]aebZeWY\]fTa\aZSkXL][c`]]`]fX^acX\dh[_[fZJ_Xkd^ch^afiUWlnX_PUY]PbTXZagWjQg^TX\WcW_Wmab]]aY[Xb[SYabuo]`^ua[`a`]mfme]fjkW`Y[_\h`fXSe]_ic_agXUTWRnbkT`[_cVcaWa^WV\R`Y^G`p^l[U]ra]kZ]nX^\aX`gNZs`a[^W`YmmhZaYmcd[jTYeu\XZm\d^qicUP^\^Xu[^T\fPQ`ZYbbLf`IYZQdXas^]hfd\YT^^TXW]S^TYbmqkTY^]fL^d]fdcQfd`PUZV_XW^\]`bXcf`V^XYiegnRcR[aTV]\`WbYX\g_U]X_cdfV^a_P]`]g]ceTdc\\_pY^[YWj`mdfZ[S\dkObic`_g_mUuf^bU^\]W][\aWXTd_TPUk[\XSUcg^aScTc]V_[^eZZYd]_ZOV`\[`c_`Lg\bVSfiea[XZU^XafXcXccc_`\tn_dccYO\dmVc`ie^c\df^]\iZgXWb[\]`\bl`^^Z`ZgWgZ[[bZdc\d[e]\\\YlcV[]]cZb__h_c[^d\f[`\`ca]`nZ]\Vg`gY_Vo^`W^Ypdfg`bXZ]iWm_ck]i[Y__ee_Z`[]XV^eagba[cqb_^daef][]eb`^][_a_T[bdmYhM]_bmcqZ`ebbX[^`]_hdZ`O\rbf]aZ]Y_Zmcc_Q``i]Zbg\\f_ficc\XYVbXb[^dU]cv^d_^Zc`Q_VbVS\Y^e_`[`^ZZ_h^]bo]aZ`d[dZ[aae[^^Z[\Wdiaa]X_Zb^e_[aZdi]^`OR]d\YYagQ\b^e\bY\[]WbW_Yd`^X`RVBYacba[enteclZ[_dRfcaVbb\dXd_]adc]lT]]]iaicage]UIhbe]Ob\ha`d__cTWalk_Z_eH`dgf^cBhRaqofY\Y]fbYa[^Z^>T]hSch[]bY^R^[_g_```fbfe`YaT\i`^ed[jbWciOm_oaeSWHcW_\k]eVVeo`Uli\cKe[[cr\Zb_V~ej]jh^ZZo[ianibJ_b^_ziy^A^bQYxPcaS_iY`Q^WfgkcJ\h^__Mljfn[]NTP]RX\ZX[ebdabiWfWe\RRbSL^I@Y`XhXV\a^ifUjbaTeW_Z`Yh]R]aVX7bchjXdTdZeOjg^aPVZWYZ[eUfZJhpIn[`qs_S`AYUZ`ot^]_]aP]`aU\cZUT\V_pRXYST`f\hi__[oX]mc][baaWPa`\cYZYWN`[NYbT]R\^eUWuVbReVeh\`Q`fKX[bva_WZ^MQZ]ZomOVeVayb`aOb]bUgdZaM][FUlT_e\w`iY[_ljZ^kD`Z[[Mi\[u_aW^[``vmXYOVqenupTaMTXW\Z_h[_^fc\[_Za]fq`Kc`][`er^YbeS^`ZnZ^QafW[UhmWc``R]a^_YZ[a[\]`X_\e]ca_Z[ZZb`\`UdV[cYWYbYlT[ocUW_e[k]iaYa`[l[\gmQ`fZYY\h_`ebbVZ]be[^ndZYc\^Qhcl`^dZ^]`[Tf`Z][jY^_`adu_[^[fT^bc_TT`^fhaPajYVf\aTOddaP`RIYUVc`OQYKLcaXj_bQYcpQRYRm_V\cVWWSnZ[VVLUKnT_jWl_Vac]ab[brZfkaW[peTXaIYEW_e]S]a_[ihXXp_YYeiNUK^bjJece]b_c[H^\dXilk]]`eVbRegdZYd^YSUkcZe]^cX`JVbZ^Z^d_\hnd_nY_b`cbbaWnRk\TV^WU__cm\M[OghYg^YX_XcgbU_ZdXgUfU^d_`X[dVZ]^ed[[]Xa_\[\[X_bWaZWY^Y`U`^g^q\YV[dZjae^]\hWW_WW^YJ_c_ib`cYTg]V[bUZ\Pgd]WT``V^[VdSf\\Uj`jc[QVb\]\^j]iYWLbcdmU\i_YY`]`aNU[e`_dfKMghJ_ecZ_[kafhuZUciWbXX^XXa^\Vf^YLH\ecq]bd]ad|Y\`]\G_XKQRS`[^fUZ]Scecq_TPb__aW_ap^P\`\\g\febNbfld\]Z`Z`dVYf\f`[_e^^ad`hlY\l_ge_`^XeaeS^YdigXZXqRiZ`kO[_WjTSa^Wfen[L`ee[k[\RU_ZS``ef_[elU`d`[^RflZ^XXfkbc_a^^^[UZWiR\gkcfa[^oc`]\cg^ehVbd`TW`g_ZddWi^a_`W]]a`cU^Y_TY[YeeVNcca[gRYWb_R`ced_aaba]__U_`^^c[]efeZXajVff`b\UkQ^_YaUZ\bmTWa[_Zu^^V\GUV_SOTWjmcM^eZW_]o``i[rYgGb]\_V`VZf[aUUZTcdb_]j_`eZcuZ^hWWWh\Wj_[WTf]gN`\bf`_c^dZXVa]``]mWTN_T[`X[\YRRhbT]UX\L\cRc[Z\_gVaa\R_g_mfjj[]WhMdDXfW[ec_]LaanY`m]XU\Z^UWn_Rdf\SXaUwX`ti_`^^[KW]d^JadifQRfgV^X[\gYY[PZ[^SXVg^UadnblV\^Shbg[`[a`ZTY\b]iXPtYc[ZYN[XZhWRZ`hZVW]h^^W[cf\\Yc[_Wca[`aZgV^TbWY`icY^]_s`gU_X]gkW_TPdbgZ\XdUY\h\^`qWZpce_ZV][Med_UZYb[Y^dZf[_ZXgc`VgY[ddWP^b_\_]]ZZYU]hV`c^g[XTfaVaTagen^[^qb]hWT_e^_[c\ecYbQv`^McPXEJf^qi_`^]Xch[]]\\aage\he^_ZTYXtci^eWZcddUdbkY\wJJSn`m_ThbVWYeVUZ]\hjTbYd\\xeGVLcYkG`Y|WWNWV[bcUpUefTceg[sQJVahbnX[ZeB^]b_d`n]U`Wc\n\V`MQ\X`ulQ_d[eHT`\[b_V\bUdbdhWV[Ube`^ZZcbaZ`dY^]^f\WY[gd[gbYVVj]``ZX^[cWV_VY^`fW^\^f[SVbY^ceWZcQd]^]dPVcbadcko]YaWZX`]ZZaaZdYYNb]aZ\^^kYM_V]]a]a`hhcbb\X\QZYbk_efQeVdVlj\qbclfY_^[_Z^S]`Y[[bd\eQ[[^UdZV__[`]c`c`s]ZbS`_Pc^_ST`cTZgWWbaYb^Z^h\OfVaVZ^`Y^ldRafUf`XcbZ\p]hY`ddI`]W]eR]^]`ebgZda]Tic^]_bd^\PRUbaZkem__ZWXTaYhWa`ZW_YaZUVZ_q__J`aUWh^`PaSWnN^NvdxcaTTjdSeh[\]pVuOb\`Vj|fmdXdV]cfJnkT\DVN_mdRfV[Vo]`nVWVVcdhXfh\avPa_WMV`aaeNZ\WgT~R\[Z_X`^efU]^`cSUlZeQ`\Zjn^k]zlYZQJmVL\_T]PdiTW_V`]h]YZYUgUZiCgR|dgZ\b[]Q]goSf`j\]fQg_Q[cQ[\b^PZpvgYf]VV_VaTWqsd]Qhd^jmIbbQ]SSeb_`ZRddSP\WoVddGYTZO\dVe[dUMRSbeIYQPcc`^dqW]]g`aU^Jieab\T[[e^[d\Xn]\Ri_cOt\a]MZTedT^NW[XJ^LabVgdWQ`\ec]cY^a[TQjSZxcShhf\V\Y_JU_]^IgiW^W_`[Y[`g\_^Z^NW^X]YZ^WTYaUc^`[mQaWSg^WV\WX\SRh]Zch_WchX\s]aaUc_U^X\ZaXX`V_dbb`^\_a_clZ]hclYXb\e_VRUgm`m[i`]jbOoXbxUX]T^Ylf\Zb^Yb\X\T\[\ke^^[obZZ^X`caX^Xba]gjYqeXVhV_^g\ZX_d\hSb`dVU]WfZedab]ffN]Zg]bdZ^[^bb[]kcTUhWX_\`Eb_Zd\ZX^XR^[Wj^aXba^Z\a_\`^ch`\VWZ]]]^WemZ_c[]]_^a]aX\NVYXhY\eUX[^^V^r`\hxe][h]k\c][aZZgakU^iXieb_YQb[]]iiY^Zb_h[`aaSj]l`Wo_^bhca[^_jQ^tc`\lee`gbc`e^a][d`Wm][ZaoYf]Y_g_WeCtSOZ_bff[hdbcd\Xae\]c_j^Y]c_egdX]cW]\_fb[]`dUaLaZW`]``l]`Ze^VmWcbYd[dZfcc^^\]iWb[g_W[]a`d]`[Za[_]b\_bgYb_Xd_g]ebbh\`aa`V[`^aZ_Xdcaf`g\mcRU_``agai\a_TV[cc`X`b[`[m[[_[\UfUUbbSge^UVWaWYXi`YVXamYcdXp[`e^O]kV`Xc[_elb]\Yc]b]`XYb\dd_[]VnW_kZQUgaVWXMXY]ZQ^UoZ_`b]_cSUh]cbjZiZ\dda^\Z]Nc``W\Wf`dT[de\UaXTi\hl^b\W]`iZ^Zl[c_ifacY]_\jWUb\fP]ZgZ`WQWObltWa`iZ[cUZlW`\aOZhe`Wf\e[X[S]dg^^_\ddX^bgW]XTr^b`da\`ZUTg\adJUcf]YbR[a][\Z^Xc`Ucfcckbe[h^T[n\[W^h\Z]_XbheajY]`\fmeWNak[de_SMf]YS\Yd_cmfaei`R^``dh^[eajWWY\Ybcjaga_[_]a^dZjid_VY[Wcl^\\aG\\gROi]fsePUfbb[um[gfgjbddh[Zh^nZ]`^`TldUYc^\tb^^h[\YS`NQcZaZfXXa\U]^aIbWfl[`\`iWRt[`]^eVZT^U[]Pkabi_Z`e]\\[^fbX]\][b^df[TYUa`dY]cWdu\gjL_SQaebKeT]ZYTgfeW\[`YRYSbYURT`]^YQW_`V[hNb\Qik]^^P`XU_]_OZdVYYQN^Z`Z]fbfe_bh[Z`MfZ]WMi\W_WRR\N^^e]ZYYbY_eUcI_scZUSaWZbbpaeaT`[d]XY_^S[]k]_fg\\Z]`PeiO`_bWbTeP[]TUUUZ^haXr]SXd^_lc___^YXraXV[bn^jT\UwYc]nc_f{Pa[W_n[d\pT^Wd]QWWYb\_fa`j[Yida_]_Tf^_`_Ve`QYd^ab^]`Zd\a_k[]MufaYe___Z\ZYhlZbeXY]XUTrYjYV[ab]\Tf`_]fXmae^_]d]ZfW]dWZUabZ`fia_lZ^leaZgUcTK`^YrrNGrh][[i]ecYgzaeQm^jMSXT^neX_e]L][dRWk`][ZUdTb[\Z]cb]bXnX^`PeTYp[\[P`lciW`[[ZMpOybYvYdu]dcfb`iaXY\a^X^db^\hZcccb]Ya[\]ebd`X\Z_ahacc\W\f^`a[[`c\_`c[`bW\\aXa^ae[[\\W][be]qkYZ[_Zg_`abf`l_[d^a]cZ]aVYW`_Ne]eq^d`\m^a]Xf_i\_fYbY^aZ`_b]ebf]]c_`XWZ_^Yb^]d]Xdab`Y_kacmVbOga[ZUXZc][daWabdW[ba]k^bRZX\_RaNXTebd]_YZb\\\m^iVghTdU]l`gg`]ZcX]T[^Z[afg`XYmY\_[ZV`ZXXXWbg]aOj^gZSb\V_\ZMcd^e]]X]ianXZh_W_pbd_NaTX^W_ZhQJjfUcf\Ubl`bA^|\MTY\lRmSliiU_eYZZb^[YgbXaGL`Wf`wWvtFdXfQaMYfiUnO`9Z_fvU_Z\cIdXOdb_i`~RXfkL\bjg\NXcc^Ni[omUXTarR\b^+lYTfGatjai`NYWaH[Ra[ncfZU]SapG^ZW`Q\f]Lhzyt_YU\h`SWc]aed`alkcYZha`X]c[_YR[Y^_dVf^fNYZXd]d]\XSehWUdYZd^W][UWX`Z^[qWd[cd`R]eabViPibXa__Z]\\\leciUqc][cW^SdddZphW[[\`_a\b]XhV[b]YZ^\qcTXn^h^c\jYTcbYdcch^ToRhVX`XYYc\fiZcWYbYchZPlXQ_bQYSWaRY\GS_^^TWY]Zb[dqWdP`Vqp^^V_]aZ^]hQVN||gYYgbb[Z\^OYlg\]aS_RYb\h`a`_]wlc_R@Y_U^Vh_ZNZuc`T\`]lQTTa@ZqRleXc]ZddOjbYg@_^Yfg]ZQS^YbeY_YZ]WYhveV`gaeQ_Yi[Xlft[\`U[g_k`dSj^_kGhmqYX]fXJgZs]a_:Zp`f^hlbb[`U_fgabbZafAw^^{[97dp5cVtaf}`[a_TXfR]bYoO_eU\\m[UV\i^hS`WZ\^Sq]f^Ma\ng=l]rn\[^YcV~dQWGa\p^K[]fY)^_aidZV^dfYq[Y]g_b\Spbdc^X^cxnnjp]Zv`[qQSjm]_bdeg][`y[d]\Wgbcaf`^^bd^Xmh^Scenh]Y[g_f[aaameWdgbc`\jge`Tncb^`sad]bcWkddl]ejs]gd^dd^^h]bca]XahgfdVd\`]\d_]ieTfW\dkr[YOXjc_Wd[[X[}k`Und^PiX\dY[]_SxS[\NcsZef^\Xeh`bfXTd]s_gZfx[tmgbk_cYt^ffpjh\VDO^mjY^jV[cU_`hbQP~6VhJo]fUS^cbfY\amY_^~Z`WQ\e\m]V^V`V\axcihS`[Z[gB_V^X]wh`a\tYgX[deb_cSrWb`Zg]]XU]To_k_\]]`X`X]^YVfMb^hhZ^\X^[UjTR\CjbUY]ZY\a`MKl\eYIV[Q][^p`d]Y_XZeVXcgPS`aY`iPfj\WYZ\dbSW`WllHTTd^Xc_ai]W[Y_ZZ\\TdbV]T]ec]_cf^b\gfUZX[YaOgkZbeaRedjc`le]WOdMkUfT`V\i`Y\ibnZX]Vf`dYZaWaea_Y]ZSUXV[TXS`b\abYed`iKm^e\aa^^Wk\X_]b^T[VW`hYVZUb\a_OLiZojW\g_][`[vZWbYaUYiY[]_ad\MdUgbcZ[\SkakZZ`p\^XeXmleZWcTQ^xbR[\ba_d`ag^h`SrcUm_^Ti\[iMUic`fchagWEfZsUbbfbl][a]^JZa}aZd]`ZW`cVafXe]hTbYR\daccRNjaHa]tcX_YUYdX^a[^fo__URHVZZ]\b_^RY]Y^]Xo`{]j\Z\Wm`Io_cMc[QW^b[iJ]`bY]Xba][]`]go__L]i`ila]fYjNZafj^Ybbe`]ddRZb^]fZfXRRgcg`a\a`^^Z\dbaMZcg\`[^k_iaf`ZmVXZcl_X_X^ikgSW]U[VMcQWeU^ZQcT[`alaYbkVW]QF_cZZ_ib_\bhPbd[d_W[abk\WZjiWPcc\bb\w`^TQbTXWcg[a`]ibdVk[[U`Y\KS^3RYPNZ]Oh_YdaNeSboWU^XjXr_b~bxdQ_k}J_TTcT]OxhLscXP]\`\dgR\Ka^xBET\wW[ag`PVYNgTXWfc\WaXgTV\?W]fhPeajZRZNmNWNk]]Lf>bZbwKZaYb_aaOZ^Ijd^nDTedUdVa_X^Z\Q^UbEZgq`N_,fqgg]bjd`Of^[b`RtQh[m[LgXhccYVQgV\{ab\O`k\`\`zV\anepSQVY4^s_]J\beg`_\N`Vb[cSe`aan^e[`]\hWUabfUc^cgWa]rgead^jab`[bPfWagbWj^eY`VUZfWhQckT`a^^iXd^VHXI`cc_]gkaX^SVMYeQXaYXa\c]e^cU^^be[hb^_[XgfU^bQalN^_CVWZ]cZ^\cVX\]n\^PZa_lgS^`[a[V_QQ\jXh[VV[cQ|addboR]Q[ob\UWZdlIX`[Xdg]`k\cRbdD^a9ej^^jZ\QldgcXRZRTa^`|TSZSgQc\d[i_V^`[enYKJ[[PP[SX]Hr\ZHU`X`X\tdb\_A_\UMSZaV_g\Z_Tgj^bZX_PcajTl_ePlC_hcP_G=`Kdze`VnSQWS[GgkZQUj_gSbjW]Y^hTYj[Xp\[rDhxb]ZfVY`SY_[LZ_XcTbjWm`Z[ZRUX`_cfof_Obi\`3acsaSYcOd]gU]UmggNN[emioKUW`Q[TjNT]Q\wb]Zcd`R[]ldS^\Qj[JQWf_csa__YRbWWqcR_KSi^ac]adjXa[LX\lRgRecVYeMk_dUc`i`k_bP[r]\_ed_Y\[k[Sg_flYZX_V`\g[`UhXc^d\dhY[klIZ]^`fVXf_c`f^NgcwjS[fehfdQW{eb^dqbknbO]\d\RjldibZ]_O`c_bUaSXm`h\\b[bYcQ_ULZbZd_bC__C_V]bZ]dsbXK_SAOk]_safW^d_cMd]a\iBN\[fUYjze`]bb\_dieXVSI[Vld_g{reaY^zn[d^W8;ioaKhaYciSW__]_nbEfdheYZVRkdi_foc]WZfd^^qfccPT[YYXYaRiW`^aY[PWda<`Rb\ieS_[]^keWccp`\\a`d]be[XWTZfUdZZ\Yr\\OV`^Fg6dXhZW[Xk_zapcB[iYYRUXUUJWU_e\jl[Y]ilTc]Y[@TddEa\a[ZPUq^fUmZVVRfkVdh[cbed^Lc[QjUWU[dofb?^ZkZWZThT]pYVaLZf]JWa]^Y\I^NYe^Oa`\ara\bR`U_XN`bgcCoiv_jUZXVaX_ZelP\\e^qcQ[_h`SU^TYe^_Wphcgg^gY\_Uu\p^QOTZdc[c_k]\`Umgaehdccb[jVR_d[p]]`]^[Zfb``lN`[h_\`c_U]_\d]\S_\l]dhz`dbc^\XjVcedWdY_T_[abWojhUead^daZUVE\b`b_cT]c^aXi]f[dbYZZ^\\m^iTfb]hBZ^t_lkUW^^a[`ew_H\d_FRSica`bUebX]feK]iK^Qncar^fctVB^uSePUesSpce\e[ZbaYZVUcMdtX]ToTviaY_VebqT[Ug^Y\Za[`SkffS\\_Z7`[aeheXa_\][jaVnhPn_^TkUckT`^ag]]``Bi_Y_`h``mZfgbKPvcV`dfhWRh}__ff\]g][b}L|`Ia>iSevN]jR[[^`enX`vxE[vDab]]S__]dUX`Xk_VeecM?dfD_|RLiQ]Vj`dUk]Qahc]^PghbNej_ddVrWfebchda_bbbS]TU;kVkQYa9glmg]Ya]`pYX^\jEn[b_dbO^_keaaVSReY``d\V`pdOpW|\T]NyRdNOiYa\[rga|ah`dUJ[QX]NSYdcPPe\_d`rcw\gX\Tbh[V[pYWU[`[lRkqLnBm@ZSeuhU[EUe3]_Y_bjWj\J\a[b`f\^UYqacTbb\VNWdaWaY]]ciagR\hbae_iWgUbd^]gdU{]W][z`X``]`Za[jYd`[lb]XXciii^g_^jT^\``c[XbekceKida_^[^Q`Yra_bT\dRecacj]jZY^fZgUe[W^mcdf_^`]^cYababS_\][W_t\h\TXgX\UfIW\I~JXhTciA_OfPwYr__\Reced`nb^lI[ZJJqW]-[zSXKQTY4d[U]XZu`]b?SQfTN:apzmX]WxdwNijB[ml^MfZb`VahZ?nUH=kRjxX^hR`^jSXu]`UdaNZ`__SZYhdc`Y\|gkX7\X]YQr\]o{ZfWPUU7al_\dBe``cQ\eVdhYgY``t_p`bu[a_S^h[YZbccoYS:hrm_j\[Xhf`b\dD`\pa\Tk]]fma_bQ`h]d^m]daSg[`Rh_UZscUdZcdf\Q\bXQVWlPgNi`bZa_ghY[hhX\RSXoV_abX]ga\`SgwW_QfdUd[GKeY`Um{[rhc`[c\cdcM^e\aZU^q`\\ZdVi\[]Y`Oae^`ZYXa_Zbcaad^W_Y[][fUidq[qn[oXV[QCpYWhYaQahd^VnSbaRid]k`]W]c_`U`YXXoOgbL]aXdX[jS]HYj`qcYn^SI_[^ddddZZYrbT}`cfffa_kdTXf_[b]]dbS^NVx\Sc[nV_efQUOmsjVN^\d[QRZWf[|dXbfZV`c^\\Ueei>XdWarnZ]^^[cVwdMSKqIX[FaZm`[]]abgOLE]gc]MbFOqc\Qec`X^_d5`o]Q`ZaTpEad[CSZkQKIXZd_fYb]gV_hzXpeleW`hiK8^XY\k\jcQ[WmyX_Z_tZxeV_ZXR_P_```Vh`B`SlXa`sYfl[`_]]lfZfkT]ETZb[g^RY_d`UagwbEu]YTAgZ`[bWSf\WcXk\\Mcg\g[i\XeVdaJPT^_plhg`siVYdh\ZgikgY\`fdaVm^Ppie[IjVMda[[e`P^Z`i`e\ibdgXf`k\TXY\WZ]^dgs]sXN_iYt^fcV`^TmWWaaM]e`b^TeNfec_\W_ba[ZSdo[Y[l`kT{kfV_lY_]fVaOY`YX``^`ZKdTaLc[ihZeb\[Z`\US\iSX_t_bUVUydfYV]dfLUz``daVg\CZ_Eb[c`aieZTZeaPZMU^mbl\WT^XSgYheacThnRVmWW\VaXed_SWYP^YakU^aaaU~RY]`Pkbp_h]^RXdlldegRPrbZUbejf[_Xcp]cVme?T\nEX^i_`aOUIjf_Bn?^\xX\^ZMP_cc\YX[aU_[\gbOe]sP]dU]TaP^^]ZmmYNJfiRPcc]lZjo]bZ=wTX`]q`hbb^ZZVjf}^ZY[ZY`ZacX]YYi]`W_^b[dOadVkap[\SYWdb]aY[\^bh[d^b`SkYndjc]]ga\ge_j\f^\cW]`cfX\{hhj^fl]bkWr^\o[a_ej`qnX[ZgVY_[kbZ__cep_d\_e^kbZYo`caa[Zcd\YYeZ^gK_^dpahY`ga\^^[[YZUxWZP\ebb\UeZ`Ubd[bA]^e^\`qeYl__e_cYaUZaQZZfcSc``a\[\^lDaShX;lnbSae]`cX_Zi_dlrYp^_bZcdVgim[Y[bdYYkl_ckYTe^]eX``Z\gWeaIUNg_ZYadG]]VhY^L^\c^bYf[a[]UbMQT[bSFZfe^FklTmVWW[Lh`_W^`e\]`_neZ_bXdYX_UbThV_Qb[cfYLNO`m`dT^[koarekfX_[<`aQ^kBhaxBnm]EbV^zcX[U^G^Gva^aV{had\rHdZ^Z^LuiMTpe:cDQf`_\VeebekL^gg_rQdZddZ`gWgUu_ZaNZnSW@^DapW][imO\db`aR_edlR[rcoUKYZR_wjhNVjjOcTUo^mrQaX`[SYUi_Yae`YW2hfd\_qY_WdNa\`]\aVZ^LlhtRe^VchTgTPpSVe\bVYbW]abWShMWlUTaS]`tTY^T_?aVc]c]PfZ\:Qn``T_Z]_\E^]a\QTl_YiV`Me9RcYZh`jZe^Gw`\cQX`ThcW`UkQ^V_\I`[kl[WYXkn]b_^bcZWXYQZikathacg_S]^im[UCYZUS@e]XXY`ddU\iPY]jj\aRYe`bVfhf]WT`Kg^_W_bWXfccK^WEPdi]kY]jf\Wb]T9eJ_^d]]`S\`WKUnZ_R_cmbV``Xai^bX`rWkX^gjLan][bZYkgVbXbsrZ`bcSZnd^\Yd]cdYaq^ZYfmgOdXc]N_aUKY_YL]]m_NZcUfg\WZUX^Ua\KZn[YM]jXdcgmV^WYNZ``Vje]Y[j^_vd[]|dVRVW\^el`aP]nVefma[i_R[^fiRf^fRCU][_uYbW\fwbbk[m_^\aWVc\WlbWOfRglm_LabYeo_cX__SXaV_[W\c;iXsaka\`^aTaW6]__MUYW_b@[Q^R_`pV^dVveXd[b]<_mc_dU]WRx^`Z\nb_`^UWctj_aZ_P\Yab]h[B]dcgb]_j\pVceX[k^hogmjxS^emeYZe[ROWXy^[bjZ^beWXkXT[fh_e]f]eR]Z\h^^U`_YknS{`P_^\`SXeY`f[YZh`c\_PSTTqqX^W^kaffiY`Y_xX_`cUVZ^cVa`f^afa[O^dVg\bp^T_V][aVb\R\h_XnJd_ZhV_\clFbi`sUTbE_W_jifUV_k_>Wi[]jcu\HkWYXIKZZm^y^^RgekSccYXQpap`_V[lf_ecKzg[onXdk_a[nnb^MfPpQf`qVdcf`fXVXfVcxWV_[UVqJb\^i[SU][ThmfNKnb\bc\bobjksch]jJVgUXU]ma]ajb``ec\YR\X_Y_]h[hZU_]`dVZc`cwc`wh^YVg[Zc`bP_P`yN_^]RhV`VVb]c[am^_U^ZV]tc`Rbxkjab^]^`c[bQ]\c_aqUYbZhUfccZdYQdlYNV_chUl`_a[jUjccWYUscZXnY\iU`YcXWc_e`U]ZQ\WysZwVYkWcWd[PVcbw_[~WpRhc^MwWTa[S\Pfc`@[j[`fbJWkXel[RHHi^`PXkhMV`K[bk[mP^hTbFlXiWLNWRje^ZXdaV[ZQ^XNv=TZ?K^bY[U\N[aXQ[kNehWi?bXZH_dZf_l8W_RY]hTRhlWV[JfdaLTqY]S_`jW_WkfEn^XT^`W`I\hb`iXheVbc_a_b_a\[Zkcae^`hg\X^VXachZWWaWOeWZ\oiSoOq`W[WiX]K_\e]`g\`NT^oddb_SiVVYaKbieRf_fVd^YRd\[gqVM\V]`lX`X^\^U^anbcYUX[`[g_Tdceqbb[hYj`XiQ]UUYc\XeVXa\aea\Z\Zba[Wab_]cbc]`^]]dc]`ae`c[^f`ard]cX_dm]Za_]_^_bXZbjY\\Xhcac]chdV_jich\ce__ci\bbb_eecnkcdlVcec]\[Y`db]aOc\\]i]ic^fY]]W\_]Zc]afbX_\bc^Xc]accfZ\S_[Z`k]he\cUc]ed^_][bgfWbedafU_f^xb``aOhW^]ab_gb^c[cXh\dd^Wiv]Yg_Xj`caecdaeactckihdZAt^zeg\[g]ccY`Wcg^VvUj_eR]ddd[`xibjWoYbjZdcXj\f]]b\c\YbSj^zf]X__ddrc^\Y[b_ifdbbCcDVw``jhX|\^ReoPjde[R]EXabamXTf\Y]oNv[bZdiZ^Z_chN]a`c]be\|Y]\\j[jwcQdYfYjGbSTfGndgia_\azS`ZU9|ZiodYkaZ[ai^]ltbiib\e_nXXVicgVVcdkg^Dd^ZMcS^V`gua[aF[X8Zqd}g=_dabPbaJhWnXP^t[QZXnl[[lI`aI|U]d[VgaXaigi]a^X_^Zpwif[VWX]VWuKMOrUagnwWb]edVoitoX[Kad^tdDmPcaWcaCnWUvhT\fcPRalV[h`^ZifhMuO^^SbeDTmsf`UYg`dSWX_gc[WcQRS[bwkfAfee_R^]X\W]W[c^]\aea[]tYNd\_fha[YgQ\Zhqd\MSa_XclY_T_VbnkWcc^bUWeqQi`_Rj_n\[sinhW]Ic[`gUYpU\Z_\Zkac`[T\Q_ZTmVl\adF\xX[YWWdVh^ddaVVZ\NaVZ]ic^bJZbbUZ`aZP^^i^SnTUX`a_bb\aY__Yi]YcRTZF^U|Yb}VfUYiZ]L[_iY\SVd^fYauj\[_M}hUgV\Uk_nYjYyfgQY^g^ibY^U)^ksMF`]Yd]ecDlX\U[ddZe_^WUZjmk]_VeYI]qdrXUNn`Wx^XW]`YVzkLf]gapVdYVcROlTaLblQRcVdgkm_hcW^XWYUmdjnQ`fB^Kgacdje[}d[[Sf^xcd_[_JPZqaxf9U]XXTdf{T_`U_]Ty`Xc_XaY_]`On^aaClcZ_d`\tgZW^l_UdWahSZqk^_a`VYceoahW5Wgie_ejZX_`\^i^^Yd\]ahQbPrL=fuyVeY`b`r`ZjXI[W^flTrXEoa_`lRXoabZgiZ][fWke^^Ve[pXX_iWW[^oXm_{`BTE^e]]F_XecCd`[nfXY__[Z]cWZue_e_Pe\gggdTV]TcO_Z_WT[Z_\\e]o[`Yc]Rg\|dX_e\cdbehX]Tdm_[\kP{cZn{d@ag]Z^Ra[^chi^``n[[hgU`YV][X`aYd]bilY^_Y^TgiRdc^h]jbV`e]TepOwaXt\gc]aVf^m`^XXe[bdWhgfeZ^Z[PcTWdci[]btXcgd__ob_uZ__^ea`c^YdcJXff`geRfd\e[_[dO\d[g=XZw[dcbUK\TV\RPjS_V_j`bVcogT`ulM[@qWdjQelgFTlcC]R^VRmf[`]]Tnb_h[]crVS_aUYbMdPXo`ZblCbdZsV\oli[\Zfk]ecYqVdcpaRSbX\]_Wk\\ad]^_a^`XbZb^bKX_`]YpBd\duRqhijM]\kfU^R`c]Gd^cdnpZORTdWgO_Xc`bL_\M[n^Wm^^c^gL^a_i]^cVUZd[[eZ\[c\UZhipbTXRYfW]`VT]ai\Z]^N\XS[S\WWVhb]mJ[`_RcWo`ie^i\QZmfbfh]Z]pWbY\k[cfUZ\rO^j_Ua\^hUc]mc]qf`YZZ^rbtRf\ZTUcXX\`cba[eeok]c]j_bjR]^Wbdjnc\b\i^[]c\\ZfU[XUebbX]Y`]`^ZV[j[_\gpppYfdZU_YiYpre\^\[YXYblaiddhb`Y_gkbdfU[cNZjKbRZa]dbm\Z[ac]__ddZ]V^dSTVTYZ]hdjM\UY[`bbWOh|\Sko_Z^Zb_[pUrzXV}lWIn_q]V^Zb\cy\YVKc_^}UaXd_^X[qRPdIDOS^aMgbgc_nPf\klicf^aT{]Wx`Vg[cTYnfon)]]]FlbcV[f__ihcoWKgZZXm]cYjVk`hVXv_a`VZbYbVWhsa]bRWY\YreO^T[_`\npR[Pcc_p__AgZRQXSh^[y\gQUea`hNfXfjtubgWd^]`OGM`aDf4FJ`Z[lfUbhR^[ryN^q7]XaaZg^nfb^ZbicbeWaSbYSkbuwRaMXa_W\gdU^RerN\hOm]qxhK`be]b][UddrTXS^bkQd_SYY[fbb^JaYfcUUbabWkb_Rcbb^{fxX^fIcMg\Vb`Y[bSa[ogOGHB^Yyf}Om[`]aYv]\fxT`cbPNYWR]^`YYfa]jk]~qdT_VbY_[rv^\]]Rd[]\iXQMtext_]q^[iesg_bfW[ZLPWZeEj\Ui]VaNWX_SQTVPfZKZY_M@cLI\fddlR=OqUcYU\bwS^dQVJOUXAUWNhWPXekZU-lW_|o^vBVZbnM7`Vn4c?_HBa^b[Gbd_UkbCg2[ORXkbiXUUYSanTazvXgUWPdcFHRhXayfbMEbZaddhPY]ixkCRoUXSVjKgjYXmglpEiKgXakp][`Ycia`bLiiVY_Pf]A`UcM_g^_]cXb^Yhb\mWJaTf[\]cT`d]WX`_eXX`^KThobYih[U\pbfZYY]`aTR`Un[eo{\`Y[VqUYeV[Sc[\eSgY`iVXV`\ddxa\`gVcTY]_[`ZZeZ[\VU_Zj[XeXK_\YP_Vm^dq`YhXZQU[WgbWat`mYhY]en_`f`a`haaae\a[bUd[dX_hW\efV`eaYa^Sb[kp\fZgV\fJYbcc]b[WXbeVaYgY[[bXVE\YZ_][TYYi^Vold`m_[b_[idW^gdwEp\[`jW_ib`X]i[aXeNqpac^esaYOORpTY]izi]a\OT]_p\^dUW\XdV^biZ`\]IWfT]|aWhIrH]zTcLdvLofadlgnXZLgTitX[b[di^GcWTERSgegq[bR`^Lib{_]knlgWhPea`x`y`yjlLwjn{XXt\a;VmW_idl]M[UeNNoRVhaf^_YkZdZMiOXppg\`l`M``YtlD\dYhW?x|z^_SeRT_Yr^ftekXb_Sma`WQ`NfPspXWVgQn]ZlZTakcT_dYcibJYbXRbHW^UOb=SJsSm^co{Cpcm;AJY_hdXbRXpatkZd@`XUTcbaZ@`pK"UGqlhTUbnqkatmZ_hoc^VnvHjp]T^l\STpO.SLbST^v\]XcbaT]YFXnilZ>]iviOVc]Xc[Nbm]_RVYhW]WackXK]_[_^XeiV_baYW[VX^W`rg`fTk`a`XUXaTaTN\RaeWOWfUZcVc\W`[eYe[cYVcZZVLaaaiif]cSf\ZZN_U\ZbPOP\e\OY\d_a`_Yn`cVKYhZ\XjadYYadIZggGZZbbd`YS]iV_[c`bb^ddfYbY`\Dqla_^Amg|U^fR]gfUfVAcZd`^cld^Y_ub^GBi[geagadV_XdgekTnZdfget\TZW[aaXj]leY[^UUr;YbVSaSRV_e\^^Z`[gel_`ZTfjlTc]Zb_dDg[e^`q[_enhVoCrdbS\lDb\fZ1dnHb]PhccgXMWJiiP]iN`WdWV;ptXWj[WrT[ZVgzQbfYTZmw`c]Y]O]gdc[dcRkLgc]io[h_V_Zf{XFLdijQgV\`iRfkXb^]bHYcoZc\Vu^hiig^]Xjgd`cgYge]feU]M`SZYka_[QZU\b_F``\Mk`aUW`sQfbifa]__f\UQ_]g\VdlUe^^aihRV]b^[i^_`lTaebhUU_SkZMcaYIgjljU[TZ{Ic^UVYg[eKdMYhTrcg``YHXk\X]bQ\HScjdG_ZgoORZaYTObSbvgjUeeWaZYxipldTQTi`[g^Bb\X[cKjJ_nbh[Q[i[b]hS]iMc`\WY]^^dcSdSaegj^Cvw]Vl^Zb[XW_cGrV\OUV\aO_YfVd\[_hUeWvUWUfdPRYo]YLba^j^nH}XXEGMhcRfdYN\Z_RdWLnHPWWRd]hQS[R`VlZU\xShaeA``wNPc__UXdK`Th`[-dc[X[`fhUZPepdifP_Ed`Pdxg^[S^_]aWda]baa_g`]_\[a\_`__eScjX]a[aY_X[cZ^^QaZ[`k[hblbZdb[Yg`b^\[[Xb]\h]rcX^[V_T]Sc__WYRbY[`dfYUiX__[X][^hb]XfkeYn[d_a^]]aZ^e`gYUZe]`b^^X\^g`VH\`Xdj_cXbVaaW\TZb``\^ggYY_egHZN`=UP_h`_Sb[S`h[k_`J\i_UZa^\^acg__]\`X__[Kfqn]cXU^_`V^_RSY4b_gxbb\c]c^_beXhto_b_F]]dce]\cfR]chZMaN`OgddWh_d\`bL\\]mml]ZZ\_cf`RghYoX`o\U]_lS_bTi[e^bedWgaR`bnacX_jf^`][TjW[^P_Z^^ZZnXdR[b]Yead\VQ_WptZ^\]tbgQVaVYYX_X]d_[u]bg^UWljUV^f_aY\f_RGq`TOQ\]gagiaVZQPYPXU^cZiP_YddX^saUQ\[T``g`\`aZ`UlZbSgX[XcZcZb__bM\X`]Z]YZ\iZ^ogb]d`Gdai`_^dZ`\b_A`c]g\U[\NZd_^XW`iN[bV_x_\cUilEZ^x^g^__p[QRE{fo}\aY\_YabnjZUg,Y]7pXb\Me^QuFZfcRQZxX^@MS_WSUa`cN^`g~n[PRae\WfBa^[ZTr`U\cehoWmcl`W_VaXo\]^PPk_zW^TMEc]\]dheG\a[J]SV_d^h`sed`YVPd_\YZj_\WWlV`iM^hfcQ]]T`\WY9Vg^uPV`^`Z_YFl_a{ePa]UU]YQTdRhaVgQfWK^`gVU[^Zoge_T[B]Uca^Qe_aOg[Y]_Z`fZ]Y}ZNXNr^^ZZ]ka_cb[en\clGua/wRTT_^SM``\`^e`V^]^ATbQub_ok]K4`b_bRcOYDjm^XfrUJ[_fxo^Zs-4c[2cY^]kF_2rL`}r9\i\adaUPas]Y[i=dUV[cb+[bScc_RJjXmkZAeigiaUlRh\XgX`b{`fSw[e^Yaul[aXjaY`[fZh`Xb`ZXh`^O]X^\_\_gSc]^Wl`tmY]L[[eekZZWcehX^j`bwYb^f]^[UZf[]\cab_eg^Zd_ihcXXZjZ^Za]d[^ac_`cTXf\h`[_`]YWb]XSeZV_d_Xa\f^dhea__b\]`]_]cZemhYfZ[Z`VkW^eW]YbP`VfdPap]^[bdbVg^pYdA[jnX[`S]Yc]rUfp^^^hZJMs]3Tg\VO\lvCTLWnetJ[beQaNgTwgO[X^_]j``lPR7[\]JfP`gA]VUdigYNT\VpIMjdZ`URfq\c`_nVWW_4YRWebgie\Xx_RXbjcPN~a]^hf`G`Q\\RceX`l^acfRrbe^Z^gc^\_cbehWiTbSi_gb`^jq\l]aZ]\P\`ZfX_Qcfrd\_[]^c`f`9\Ld[8jrrd\lca^^bgf^^w\VdKgV`^Ta`mVUgh[akffgN_YiPh^^\`^_aniYRtckS^g)^WajZqQZ[`lr]tbcaaQ]Mhf]pWfUZdWhcpW@fPXTOXnXYlOeYXae{c[_b[b[Ye^jULYJb`^o\fuQYO`y`mR^Z]clOgg3^d=wf_gm[ccVO_nJP\SbTVmQNg]`XjYbWuRn`aiXYcau^^YSZX`r]IWPWEXW^dbwcSaNZWHdufXWUWY]hIj^eedUZn_ahhgP_ijldX\QdfY`b^nf]^UXjTsYa_XZYdaw`iZyjd_b][W_iiY_cjmaR^cp^a[^v\xepgajclY_ZifrRqktjRfer[e]ccZVk[ff\XkfjXejZZRa^Za^lasXeh`dWXa_edbc_ga`Y_Ma_Yr\`O_omb`\\fZlTTNYfJ[WKVWy_b_^_UfZdeYfU[_a[bZ`[_hiQ^QhYf_j`XXVxXkjVmXjeX_Q[GXP[ROXcPVabcd}^S{b_cj[n0F_[UYT^K^QXZqnL_i]`MfiYUcrvcaN\]d~VZrvBbc`g]XWYWaT_S[\9QSbarh`__Ybi[ed\{]aNWZg]dZMY^TZkO\[dkaQ\XZ`b_e]WRXXeaXY[\Vid^iUe\IZfZQ]Wb\ecYcins^cTUZPYdT\cM[[dVuk`T\D[gWbW[Q[d]_gXQOr]]h\\`Ub][caUdaYYZ]O^\XaSVZq`_OTU]X[hVejVa_n\aR\_Y^^b`b]simdcuWYba`fYb`_cY^hcGdc[ZfW\`eV^Yj[HUjVibr[gVeinZbMZ`o[S\gYZW\Aq[fqX[^P^ob]`xUV[cNWYMkfaO\h`\dA^hXGhZZ_YRRjoh^YhR[eX]`\bZ`_YVyXj_Ganb_[bt^NbmpW]WW_nceVaRU_\nRXm]G_[ha]G]\\\jWQV^ba`kSbflYX\sSU]]NbjagW[TS`M[nsegPsUgXWdX^XfGXM]jopsX`]gZPYEYPigddiNNcdaZePTTK\RTZ_Xlb]RSedRsaVcNWN^RsdU}e]ZQlnc]`onbig^XVdkq_]c\vXeYvSU]P\eO]W_YaYgi]sRa]o]cY]`d]\`WdZe\XPVfX\[ePSU^[WdVa]bJGWPZjB\_g_[Wd}[ZZc`J[[`^Sb`XU\geXrLS][bdcabeYZ]\T[[]]emXYXcQa^TYfb\PSge^^ML_Sac[ZbybPcSW^V_[a[om[^^`^pZfdWY_]QYbkVSeWjYj``c^fkc[VSfB^`aV]af[ddZ[[Y`__`W^iV^QdOZ\]\baY^a`VcIja`P_[srXY]^c[[`cUb[adZ_^]caefkld]Va_FZ^e\bcY_af[SZcbU]Y[X]lieReAZ`X[]]\=[[_b\X[^a`Zf]}\uya^UaZ``aZY^m_M]YXZdbYJ\[bbc][_c`^b\Yecw\plbYY_an`aShXXgXUqheeh`dYdZfDSb^bXab_]cWZa\X]^U^ieZ^ddSbY9V]bSHXX_\PiQV\caP[deVX\WaTRc\qb[Ye[h^SV`[aZc_f\][TjT_]dr`Z_She]UedjahuObVZQRV]UcXdiXk_]WUX]csdSXW]Yb`g^Wh^`_Whwb]d_k[vYf_^T`YXi`apXLa[lfG?id_R]af`m_Tea]_ciihgRd[_UkeeX[qlm\H_Z_UfpdQ_dhjkVgQ_rkVNfwXciY_cXdV]Q^\eaYg\nkUU^blgaScac_Y\JVZPXtwYg]Ya]fZ]\\6i`a]]X_ZhPN\lagdZQ\s_[RZoam=~vGTUdn[g[eX[^]Y[OVcXUlUbleVVdWXvb_iEW[Ofue_af\eZiRdRwUXd`cYYc_HcieuWNQedc`Xbqe]IV`Xx[WkWU\bqZXESaT``UhiibhqRXoc\bhY\V__TegcM`ZM^Ws[]\b`N\_de]cV^```ifgfobgk\[ikLd]nW[ZhaVjglIPTbi@hajadegl]_dgjZT_bc[`btpRbd[YbWe`[AX^]_uRS_bZWPWaDVwediQ`]bJF]^k`lOZ[\Yc[bh`SLdUpg6a`Y]O_d_fj[]fXbhageh]YdZ]]fcd^ndZji^XWk[c_Y`SVsd``fhXo`SY^bacbZmPaUdlk]]t`]iWUch\_]cZ\gjfbvZ_Zo_W]Y[]aZfeaj^Z]dbXcah\XgbcSkn^`mhYY[dkfglc[jTVn]Ubc[rf^`ipd`[XiVq[L_C[T`di`Ze^_`bX]^c[b_MSWbbef\^_^\Y_TjedYpZKifpeb\PkKji_RaysgfUmSggjliS\d\e_beFl_k@[r[\aeTgcXel^XfW^][KlUddYtaUaf\Y_TfanZmSb\e]agSYacfNiVbQ^fWbZe_VgQmL^j_hojMaM^Z[`TZhZaOawV_aW[WhYlS_]`lX_`UiSbyZMcj__Ylbn^V^f]WWb]>YYnQCaUy`X\[XVacXvhLfahVe_SuWcc^^SelYUR7VUaiKY]\Qf[g\SWdjYTZ`Z\h`hY\m`gTua`[ca_ITfisTd`g]aba^grWdi[HaljReXYj_XakRZ`wkvZ_^[}]YcMcC[eac^]lkd`[aT\`Zh^R[fF`\]YVqW_^gR][wUQdafERed\]eX`_P]W\^aNbMX^9`[\ifZfOX[]ijTRleaS]Jjc^\^UUj`RZ^R\`TVju^^QZX_]:lacS\S[]l]_ZecbhcSV`[l]Vdc\Spe_VbvmiL]U\|eSdLVMCRkaW_b[dbX_`_bPd[ZfOm]_WPp]qbf_Xb^_b[\hbLn^>]msT`{XN]_Zbd^i\\bYR]YfK[_^cY`^gkYP__ac_`WW`^`^\a]`sg\jaY^^Vb^]g^d[`bbVfhssYabX_rXf\[WaYY^]b^WWQXNkdZWU[YXT\Yi]\^Q`NT[grgcNc^gR]ZTQYd_^^_egbTb_gtcleVj]`]q]cY[jVXbUVV_gmRW^^^cbTdSaSY[_aa\_clOZ_YVceUUWrY`X`YWe^]ePfQZlf]^\Z\SO\f[^U_kTeSOiRT^YZ_YNTpW\Laf[^Wa\]RTRiglTd`cdXfWhZZoef\_[a^_^U`WeXcOseaWT]^ciYjaVRWkee]R^^eYfcW^_bg_i\VgU`{c_a`RedP[bihYQ`YS\aK]ZWSaxWh[]K^PWT[hZ[[^PcU^`^_[eKaacbXba`]ai\_WcTUk\c[][gY\dZRUe\W\jWN[]o]Rb\a_]k`[[M^]VTa[b`QFdTXS`fVt_ebSTZT[]ZLXKVg_caShjb[P\\^\ibUb^WMZ[iYEo_a`YV\[a\dSbe`ZTcWUgy`\]bbhW^djZKV\UyV\nJ_gYaadXYbd\_X]]\f^f`n^W]_hI]Zm]_jkfYbmTbns^kcgObg^d\e\TX\O_ko[]as^c[mLplH[_d[dW\ZIRMbe`__XX\fcRY_ewoYg[aO`dY\ahR_Tbbeqr`ZPNbxl^QOaVc\WdZf,`fc=bUf_X[Pha\LWG[X^fqbdWf_\VVUX]S_Yce`]sbdTT^Y`cQ__lQgNZW`][/`Occ^wauuVXZXaaVtXTbfXIli[[]`L\_W\a]_HfYZ_\eUm]XTQ_PK[YX\U]gae^geZXPlUP]YOLOicTY^`bjQ_YV[k^b^[m]W\m`d[[Z\k[\tZaCb`[eZb]\_giQS`[fgfeYfYd[aYnaXcR`\e^V\aS[Z]bYVhdR_Rb[TZgX:bZXQ`UbgXc^eVVbboYbZbdf`gSULhc[obSRaeVY\ab`X`h\mb]Wl\md]ZXkeNmq_QbMMZWc]XL_eRQ_Q\e^`efsVUm`PdQZdgedbmOJzjc\`^h`hclX[\\a_[eYdY:fR_Ycj\]\S[caaXVZr_X\debYH^`adXfhi_gbPr[ccuiNaYL\Ywa_bf^Ul\_dgYsp]aqRnR[k`\]UfwhVP`fZikbab^U`WaZTgT^hZhSNQafbSnj`cgbP[[`V9VhdW]Yl]aicckK^VXX^bfnRmdL]\PXa\bd_Z\RjJidV`S_wY\faoTXU]TgXkehdbTf[_ZfZ`cbV``sds@ib?`Rs]hQb[aLn\Q9S_V~_YeY^uSWaj`Wi}]YuYaz@g_w[WR\LLx_BhMLYc^PZb\[ZbIV]S^vOXNp]haOl[d]_]se^Ka_agb`^CXUTO]^\\Z~eb_jcimW_[bf]]`dhtVHdEVWv]dszF`L`cYk^e`cT]abgOciFc[`r_X`adQbiSH^Rhp_\dOMWhb]V_dhXdzR_YsqYVq`Qc^bb`bgE`i\IJpbddaZl^YV`UcL]aiE[[``N[d]hOW]`ack_^XXdQ\daaUakbSWcPkP^_g`ci_^^pfZ\[\c[cl]QS\eb`^g[q`fcbrpZbeeWf`\e^ff[^nf]W_a[`MW\PdbZ`]Sa^\[UWf^V\dSglao`Zaba_fQW\M^\abTfXgW\ba\lcgVfgW^[a\RlSbfdWWrihZVbgak_Wh[[fanv`Rp^\_WV[bhZZ[IbTo_^ZiZpa[a`dT[abdaffxd\f[ankeh^^VkVjVjWk{jWW_^kdVbdYZncUaYFX[XfUYG\Ub^^Us\W`xfYXfVVdtX^Y]PY[P^]^n[NedaiZ[emZfW[[bVcgnZ_elTaTWibbcpjk]X]fk]VglvWgURp]y[_VrpXcYombh_`hYaYjvyh__lw^d[dILawhpZlmZkQXmd][ZsPcurle\mh_iZ\_\Ut^b]_mUdXe]d\i{QjcdahlUiVZpVg`V]`obRXYmfZ_hefmo^imieidNbrmS^X`Y[RYdiTfb^QGkm6bR=_n\d_`Tqkdsf[NoumedSdW[XTZE]^cRqz[Y]ZX]f8iabfhr\VUYhT\hjXV9Bjl YLlVaLLeoJecVJ3]]}tZ^aak]^Tj_OSnzclO^cFYcK^pYNRFn[`NLS^a_iKZiTx\QgU[YJ\sROXefikRU`RecSnVQV5qJC]MVMeBdnVVIZU_dStardTRg^WkWZY^fpfbGV]b`H_\h_le`\`^Q]]d\*>LaUBnksra^aU^Y_WhcvlVql^3cS`cPbdcJ_Va6Pi\\khRQ_Sb\YUQd`YrXS=__KZU\gYASYPhieknUTGSc]kRc[\WgTmeXpmfT_f^]Wg\Vc\T_ZWTdUXdSi`\\a_XbdZ^qUOZdVcefkaD_Zad]k]eadbbGVLcWYdLYYfha\aabadRSJ]ZYqc`d\z[bgbUglen`Hd^aq|co_XWoYaoa`]P[cSqNd^aR^fV[[f]d\[mb^RXt_aiRd`Z]XV\jMPqTGgP\@bn_hR^b^_P^b^eaVM`d`kcbhZciTjqZV]_d_^NPzdYh[_\^[_evoR\KSH=jtZ\\hW_cMg]]Vaic`kar[eXUl_fiQn^]ZXembbmFWWU\jeW]^lieaYS^J]aZ`Q_ca`b[Mad]_bjPsdj\b`fee]^bg^dWZ]WbmW_^`jlc_f=cWH_g^c^ag]bb`]bdo_]ofi`[Zc_]gd[X`T^b`q]]d_oUbTfmYc^aaecd`e][[aeamXd]mve]`e`]dg\]hZT]bhj\q^\]\Y[_ced`Qk_Umbd\ugd[Vb[^aXab_`c_Tgb[gkb^jh`R\kdgf\c\\o]d\g`\jWXY]_Yg^_W_aa]VbfW_jlX`Y^ci`efUTZaj^bwWxJ`g[J\gXkZfe[Uena]PZ_b\FPRa\\n[r_JjXg`SOTRk`[WJUjfcQOch`^`c[__QXc[Ye\Zd`\\b\e`acRlbWW]V[Wm^VjRc\f\XkdrphXZ[XaSYZZheZ]hjseb_c`Yh]njb^_ho`q]WR^ZrygsddXdeUZ\OaZ~P`[aoh^`bYfQ`mej^sddaX\[cdY``ijpe^_R`]`[Y`Xj]NOobWjn_ga^[`aYX`bZZatb\XeXggZXj_afahV`R`Ygna]wLdaR_aeaT[dXbmgUAm\VZW[_agq]`if\R`bbhed]\^aSOYdZcge^h_o_f[i]dTelb]iQY_jXYYZn>WMc?9fh~s[`Oao_cqwUgNjvp_FdacsUddcdJXgbWMIp`[x_OYmVTUW\JNb\l]^XfOKbh[>cNZbYbX_Mcky\aX^kPeaYVR[N^`bZZUl\g^d_z`XkNVOb\agX`\Vf^_UZ^Sb_cuaubY|aYjhdS_^g^bVg^odUOXac^\]]cdkcvjaTjefLZYa\iiWWINbZc[hTWTU[fbvg[ecJUP^aPj^albcUg^d]fabgaXkbtkYhtMUVTn[cZNca\aT]ZcabXaTbebfUsabebTbY^Z]]Y^KJd_ZN[SS^a^XX_bZk^lbOZdgZ\`h\d^Ucc`eX^]`^WUS^L\`I`Z_RadY_\Xaa[YPP\Z]XcZcg`\`eVPhacaTQdweZSPX^SXhYd\U]_eebc\RWfZe]e/al\blg`[U\afb]S\d\Ri\]ac\dZ_p]T_aT_V_Zka]a[_Y[[b][gZUY]dci`[`gj]saZ`][[\UdYZcdYVXZ_f`c^\]`V]_n]Y`ae[hkc^e_Xki\flhf\YUdQ_b]bY`Z`afTc`_Yb^b`\h[\[WTaZbeU[h\d^\_]`QWdYd^j\^_^V_jc\lUg`[ic`aiR]wba]a__jeh`Y]_^]]S\]\]N^_\b_[h_X_`X\edeOiRZd`d_d`ThVc[efUehb\NVV`gS[`URZGf`jbaFg`UTZYW``b[hMaViVha^QYdWSW`eX[g^`ff__]hi]`dan^`ZXb`[dj[dSZRZddb\a_T]]^]\ajYa^]_^aav_mb]m^d`Zad[bZeW`nbYBgib^a_`Xhb]_[bP_Ym]]civb`ikacdV_iV_`d_[[Xba`_a][\d^Ued`bh[V\ahYUXf^fXl_e[]efeX_v\cZ[O][iY^b`Y]eb[^cem`dVa[cd^TVfacZip]jfeX^`X`gbS]h[WRW`a`a]_W[`a]\TeU[[\fa]Zd]adbUocZV]f]aYcWYat_ieYhT[W\DY_]_]fOWZ^XY]TdWTh[W^WlX_T^\{\c_gbS``[U^NiZwtO]JZydfiYbZX`RaZa\Y]Y\Z\`Sl_\a`ak[]WQY_\U_YWfcY]Ugl\Yb``Xgf]BTS`eUhPZPWbY[T[cdje^c^^_a`cYVa]ajYWOYejpk\gQdk^UYRiYY_^ZUhYnK]_X^diNU^`ad^fM`SVKcQn`^c[nq`jUTY^XOm^UsFdkYNc\_T_fTX_\WWh[Wh`X]oZa`a[g]\`]Cbc`nc\\i[`ckd`^TdhSgb^i]Y]bPWf^dZkbQaYhX_\dX[]]^_eX]hXYha`SWbn[`amaf^lh\[c^Pz`Y[Ma_n\adW`dY]a_WYTlf\\cd_]Zaf]TW[\ctddkchVKUbb[[dj_l[R_W`d]d_T_cdQY^YYbe`]eVZe^ho_b_med^VS\\dQZWX[_]X|eZ_iaR^bRieYbW\d\h_^c]Y^YZ[`_dcehccZ]wY]dYS\dTcc[b_UFXf^[cfZ^nS]\`]`dXd^][]XeXaVSWbjYs`^\hb]Y^igRYcQhX][XSe_ZYsbkSU~\ila^qbVTZca`f[fbV]aVYZ]Zgc_c``_cVf]VV_b_k^cS]haV`YWb_aW]abT_UWYXdcOU][[nbVTf_Ge^nUe][WY_iwbXaSZcc>^Jkih_YfbgVZRaaP`\W^Wfla_p]Ue`p_]kP^^`NWZ^SXkdaUamZlY]a]e_UZ_SYf^[[XXXh]dahl[j]_dYXc`HX^j][mvJ^l_Ziafc`]a\[VUdig^`i][V^\]baYc^ee_ae`g[cXblTkVd^bU^^_cdXY]a^]`[b[\jWcbbik[f`d^co[hc\^fVe\bR[fbW^ne^]_ada]hYi\]fZc^fcYmkW[V_^WS_^b\aZ^ag^b`a_^b^\Yaeg`]`V^fh[ada`[XZb^h\df]``XZ^XV\\fkVYXamcbbdba]aXmcZ`Oc\jb]^ga^f`ceebYeU]dZ\^_]T_hx^^\`_aaM^U`^QcY]^`fY]aXefd^_jn[k^`b`aZVehZZ[ZgZ]]ei^c\]WY`XiZeaTY_^f^P`SmaR]]^Y\_Tc[cV[ej_\[\YVa_WcgTl^kRQb]idSjdYYXc^Yg^n```VpXW]^kY^ephh`ZU_TXnSSOVp[u_ibbZQ]^abL[W\^]``g\U_V`X^JWj[fZ^zbd[l][ZahS_VbU`d^eSOg^gXco__^a`kce`cnSgdX^XW\ab_b_f]fWbkZ_cmT]SiegZVaaa_Zx^P]KggY\HiSdqdVclpVul]\^aZ_crbiqYaWC]PV_td\bX[dbbKSYWfhW\Yd`Yj\\aa`mpVXEd_fnVsldaTP\dUYag\ZVR[VqU]\__dSaW_[XY_Za][jT_aZXkc`WbYVW__e^aW]YiCeUjis\i[YZKYo^_Ic_baYe`]UiVYg]Te\cGZJb[S^aV]S\EJkad]VNaaOh^Tgeh]rdZYTe'[jaVT\coUReegS\O\\Va`icR[fa`X]\kfa^MZg^`Sm]dY_`g_YVdT`fdd_b[`\^nfesb]]ihYTo_X_Z]XXfmOW[NfbubXOni\Tlqc\:gLba]UPgUbYXWToW\cfbk[\`a[_cXXabkXcU][aa[eYXa]\m^\^_`NgSh]VQ`W]ZX_ab__[]eXX\ge\Rg]ZeWPaa`W[_Va_pgSV_\eg^YZeb`\dMQYkXY``^Za\^hW^RnOXe^[fiY`[Z[XjhVR{`SRfXPHni_^^cpSfke^ae_W\`]_pa``XS^`Z]`beTS|o}\\\aaxT[YdZR_``^ad`dWdNjbWWdW]gZ\ZccS`TR^]Y\QKKVXajce]\]_\_GZUZ\O][XaW]_h\[bYWfcVa^Sebf_R]h[bcXY_XnWSf^pb_^X\`^jb]`bW]Ya]\\`^;]a^[dR^ice`^cSXkefc_ehkS]]ak^Z]eZ[X^_n[[`e_^eaZbg\_\aa`e_^YqYga^m`e^acaai\_^WYe_ba_cZb^cbXbcZ``[S\YegT[[^^]fb^YWY_h_^`YWXa]cYbZe]\c^dObb]j]fil[ZV]Zea`]`[g_[kV\_^aX^]gZ^bj\^b`c]haada[dS^Z]_Yecbl_]V^TdgIe\YWq_XNXcgU_d`e^cabkf]d][c]Saa^YUa_\`][a`UW_Q\d^bcVcXd`c\_c\We\YYbfg_Y_Ve\Wf[iWb\bX^]`fcr_KWdfZd\[b_bc_ifXkcY_]VOZ]^`daaZd\^gX][W^b\RVjkZZa[gXca^^cb`jeWeob\fi[`c[f[_c_e]mhfU\X^Z[_Wcdbc[_hh[a`ehY\gmdabdhm^f`aaW`bYb`eVYYcTQgY`bdd]^k_U^`^i[_^Wb^\Wfbd]TUfWb_aZdd\_UmaX`jiX[e[gi\ggZsOTjX]_^UXY^bm`XfXjXji]ScYU_Z\RI_\eL^YVa]ZPXkV``SZNMY_jUL_VU[dKbbh\kXSb_bIc]g\bVW[S]Z`YcOV]\N[^P^O[ZWN_WY[VaRZk[Y\kOjcShHiU`Lce`_]f@T\V\^bYT_iVV]Me\bV_i\[Z^dd\YXadH^^TSbhT^QWqbbX`lfadd`cQ^`hbfY`a[echXV\b^cSc]eM[_eZVe_ggfmYwJgWYVWgWcfg_ae\[^_cc`rg\b]MaU_][WgkaYVl_]a^pRiRZhn_:f_bgTib^c\bR_ha`^\\d]\\e]U`^ilwb`mZc^bYEY\ZfaY^[]^]Xcc]^YU\ge\]c`^[\Ye`W_`bhe[cbagh]Zc\``a`b^ffgX`b___X[_T[_bZ[ZWcg_c`akbX`gfaY`ckX`k_^db_c[ccodh^cXhda`[WY[f_`aR`\`[d`abafY\Z[\fW^eYeh`YbXd`bU_aZkfc\_X^Y`iX]fV]aQe^_fcZ][`cbj___]eVac_Wb[]^WjaZ`d_[f^e^c^c[_``i[W]a[_ca_dc_]fe_be\n^X_dhd]PNYghb`_^_aaa_f[^d]ZaXh[f]bcad_cZ\cbVbXYc^g`Xd_e`Zd^_]febh__\aY^`a``gaa_^a__^_cc\NeR\i]kdZ_sbYVagOl]\\]YOY_Xae[cfdU\[iVfXc^qe`gZ_UcVhY_WWtb[enfja_j\ij^Xj^^XKMixHcYG\UQeZcYeal^R_Qg[^co[lW^Mfa`_aL[_be`^`hRdWagf\WZeb_cYbd[V\VdabRc]]fVV]L^h]phJ][Yc]WZ_nqta\Zj\Oie]_^c^aS^b^hYYV_V_[_hdkRjbX`_]_rYgmVXY\pd_SWjWbT\gna[T\j[cM`cbUkeUN`RU]jUWHPcX^iZd[Sd``XbQb\gHeXd\WZr[eKL\`V^ZY^[_FggoackjjX[j\ha\h`PaWPlO_A\hb\S[j]uafKRb`Y`mpb\^q\V[aa\X_\ca`Z]]p]^i_NoMdlUbPRTRPsZ\^dVcsebRViUVYKOeXW_ffn`Pfa[hQZnTaWg\pdYa]Q_W_PV[IhYcjXQgh\u[V__gbZ`a^Ub`bYdjV[^VjS[Z_^YYga`[L[WcYez`TX[jj_^R_mceZj]fbYOYgI]hV^aT^c\fcZ\X^gbjU`\d[L[meW]VVlf[gwYWd_e_lFbYdXenX`dXa[_gbZ__T[V[dManrVqhdbbq`ch`V]c\VK]aYd\T_Y^j\k_UYdfamZPUTBaf_bf^cock\aNeaXDB[`Y_ay\iYiVihSw^WebaU]ZYebffVcgJ]Ti``hc`ceb[_N`fgXfUfdN\_c_af^bYO\beal]_dbe[U\ql_e[Xf`dUUTXak^kViaYkXXMVXYa[R\\cceV_bFaa`Y`^`cUE^WVU\afg``eZdl[[Y^e^QcXZg_ni`\ae_]UaSP^LOh`PXT^XQXfXjZXXeWb`egV][cb`[[]V]Y^bc`jh`S_p\X[a\dYu_I[[U_c^aVfG^Ygj\ehad^X_^^^_Se[XS`GbtZ][r_Xe^^_f_X``_h^gUb^gmZeae__YXo`h`ddT`\\ganYb_`Sdj\e]\b`XaaYkaSVjj[X]M_TT]W`]VZZ`_`_b_[h`_]dcZS\UVd``_xhcc]^piZfd^^\u`k\kWH\Web]_^_hYcTRecg]af`UU[SaniVgaOYfZna`T[Q`aW]R]XW\ZWdeYRP`Z\S[XYch]Z^_dbew^]\Z\Wo_^_dj]\g^X`Y`[`XXo`\egW[^d]]^d]V\adYlZY\T\UYW[_\P^aa]Wvca]___]`c]ZcVSSgVfVa_\\_iY[ffU^Ym_gikIbYW\Y_daZ_fO_c_VYibmWTWh_dkad]Vea_gUUUba[X~^ilai]c_Z\M_YTi[a^\b`i\W\Yeml\e\[W]YS`ddS^^ZOhhkZg\Z[Z`aTfd_Z^eY^Rc]ZSXe]a`^e\`\W^W[bcgbZ_NgfW^[_Xb^_\Ph]WZ_ad\]]b]^_]U_`bS_dUjW^\SgdX^bWTY\_W_bX]bRc^^dSU[eZiZXR\_XX`Xda]]_^e_c]VZ]^kYXbe^aa`dTRZWY]a`gbVg_YSXVX`^Z]b`k`ZaY_^^ld[b_a_WW_^\dd[c]dgfdm^^\^Z_\`hbcb[e]hb\PT`T``jjeUX[]iV[Wgheea_a[Y\\eZdicRTjWg`aS_]Yd`_`fZ^i]`YZc`Va_[Vfab]bhgkWZgadbYXiX_dd\]fgXc^g`[_]_``^cia_a`[NZgf`c`Xj^fan]OYSZ\ha]g`WMoV]`baRRf\X^^skWjbga`]g^YaXgYhiekYVYjcw`Qm`]Vd[XYURXWV^PjQ]RTVWdi]pTs^UkfdZgY_fjfdRb]Th^O]WTQdhf\ZW]^`^]]dbV]\^\ckbcT`SX`\`^]XXYY]ZbabXZ[KUcf[`_]\^]U`]W^od[VS``Y^Tcja_jLjF@[`\Yl[da``V_`YW_cUi]]K]eS[dU`\]fW_e[Z^^cb\dbgDX^]^`o[\cg]crhadbJfaY_YcbaUc[Pc^TaUZ_be^Zx^_bbba__jaTQU^O]_]Z[b^^f^\\[Y_```e_cUZVY_cdZ`XY^^j^acZ\[Uc__`[_Ta]ha\bU]aZdZ[[MhS[bV`idX]e\[SWbZX^bcWZZbUbc]_V]WZ\RfaZe\calW]cf^`a\Yhac][kaS[d^][W`TYbQ]jTeUY__ah_\Yd^V\c_[]edb\[eg\Tac\dahZ`W\[WZb[cabbnl[[m_^V[P[YZiVX`]YVgf`abfY_b^eViN`bicadmW[rR[g]YOUY]fOmlNQWofcb^Y\xfZeI]YYjLZXTa]V\dTchMZbyMfh`[dTYX[^feUShUam_f^WVMjbXWw]n_]mV`e]VaaakZb]Pe[Jiec^jboTZre`VWZc\gfRWScjnYbW]gVi\[_`p^bgZea_^[f`LchWmYYfO_UTWSd`fbbqU`f[YkWcdbgfWlhjk[\]V`a_YWjd_f]SaVq]aYa\[T[aaibbZ\e^[_XV\n]\h_ZWW\Xaf[gZg`[clXY[`gi]fgm[b^k`daZf\]P`^]\`ZcKaY[aSdVT`_[MR[eekOUank[eY]b[aW]_]a]`SggWWM__d`mVeaZ^`W`TeeVj_`MRWc]_^Z[`^\Z`diT`gNeZUdSXYgfdZVjcWblfghYPi_jX\dUPe`[^_krQhnW_eZk^^XZO]]\f`WdkTXF_]kXe[fhRZf{hYXbf_[cll]\]c`b\[^rY`[o\aa``cY``W^kW_Zh\]ZYj_hlaS^ZZZdd_T]Qa]^_X[gZbaaecY\[_caffb^Yah]cRbZ`Wc[]faY[VZZQ_W^\]n]`cb\b\b`Z\X\a[]d[d^ei`T^_`\_[aec]k\a`T^WYgcZbZf^\[bo_gd^jYcaSR]Y^Sh[^bbYO[R\rnafabV^YgeZYcVgX]bIo[]cZcbbaR_ZbYh]YWb_tf\adX[nae`UdZ]_`_X\X_W\{XfWQYf`Q`cgnaU\WabV^d^VddheX`^dOScYdqZd^de`Z[`\Qf\Vfgb[YY[[V\]TZPK\Zak]``[X^^Z_dYgadbHkkZ`aT_icY]hccUd]\`W]oe^caa\Zc`negWCX^he\Z`X]ab`^hWb]gdY^gY]XiSNabl\^]acYp[_cWRUS_[d`s_Kig`[\Y^ke^Zc^YX\]t_af\]Wb^caYdfP[f`g]quh]LYMdc\aN_^daWa_bi^]Y_\^Za\YZhW`YeZ_Uk\i_`Z\[TZPbdZ\Wa\^^ZdZf_e[`VRd`n^^X`YecZnf^__db^b[h_k^[ilYT_`_WcWhXX\Zj^c]bX_]]a`\Za^^]]]_Y_eaW_[Vb^f[^^d[iV]_VakfWZgTa_]cP]bZaac`_adicbZZbYbb``k`WXTr]aafje]b`r\a_fWdda]q]]ag^dg\`]`bJ_hgUX`W^`[^Q^]n]_dSbZZ^dU`cfY[_]\]ZW]fa]aZeVX_c^[YeiiS^ae]ceWq[]f[Wv`U]WbPZdXcea]Z_e]na]]Y`sVU`_dW_[e_Yfda]]dYagWhUa`d_XZ_eqYe_XmWaac_SWWYZ[b[`ffe[^ZY[\cZ]_[b_I[b[dZe\^X^g[mgbaWg\hZXe__k^T\faZ\g[X^P^SbWU[obYS[\Kj^hXkf\`baXX_`i_[d\^Zad^fVe_\a\Tqdj_Z[\ae[b[T[\cZU^ZbR\VXZ]\d]W\`ZaP^_dRZ_pagcWn]dhkM`\gh_[a`aZ_[adeU_]olWgUNbb_fYXc`iZ`]bhVa`o_oUg]P_N`b]ace`^YUZdX[d^hZ_`RZ_TU`Uc_`b]o\\jW^_fQZY^cZb_UgXb_i`c\[_Z`cZ]bgYcjcYZ[`abej]__VN[[[uUaW\WW_Z[VeXhiY_fWedUig^UceYe_]^Ykd[cil\YgYap_[MfbUk]hacLZl\^QXQhebWibija^]\ad^^W^dbhl^Un\R}fZ]RZfhdgWje\_[dcOZm\^g^Y^ReTSbWabPf`i_^ebXXb^d_edH\kZYe^^cphPeyZXtT_]`Bdfc^_^dge[psOS]gjdW\eU^ab`daV_h^_eoae^X\__]b`X]cTafsWWToc\fc_V]\VsYed]ifZWa]_pVXce[jTSdQZ?^\[eYjbTlbd_]\R\e[hZ:RTanWYYMleVb^ifRaZ4faT_`PfsD]]b`i]``QmX`]_q_PUZhMX^dXhcQSd]ag[Xekp_kueVhai^^`R]\g[S[hWX\^YXhZYRKfbcaXhY[c[]ba_]cb^YdgbbnYg[X`YfXY]S\aVVZX`dngVSqVRZ]ma`[f[ll_daYYfeW^_c[\^aXagWY]b_]`gbrheVfUe\Rbkg\^e\_`VlZbX[[cf_e[a]Sgc\ii]cke`\KbTakQU^UnbZZeTUPX\ki]QTM]cZwR^Lh\gXMcXN[lFQeK[[]bc]eU`^\]Q\RFa[Sq[_M]RhZ[dkldZc^OZQdTmYY]FXyhWXZYced^^^jhfl]e`_\_fZPk[d`d^XVW_j`bu[id\hO]]d]YS[UW[\X`]OVXf\hda]mO`X][Vd\c\bdjfWdj\ecZ[_c^XnegVQf]fUQcog^]\S[e^haji^[`bUa]`fX\]hoXbmX`_]RaR_bX\XZ[UZVS]T\ZdTj`Sdc^^aSgXZo_[T`ZM^UfWYYa]XaYVXlWfWdca\f\\^\Q^pN[XOj]^nVYj[Xa^f[fUb`m[mZVXWh_c^YdabcZZZe_[a_nSZ[d^NY\f[f^gVg]X\HTdfaoTa\f]_t[Sb`NVZbUdfha``ckb__Z^gcVY`XdeVZ][a[U`XTV\_h`hg[WbU[c\c_V]f]^eYbbN`cqe`WQW]aZKh_nk[[jd[gLb[[Xf[W]iZ`diZ]j[bldfeadWd_b\IX]gpev__fRlZh\NYR^gTa[_`]eWS\eedfNiZWZW]Qdg_kTh`^eda\[Z][c[WRWc`Yj_YXYkm^f\`ra_c^ac_[mUe\[[\ac_\_`i`\jV^^\]]_]_U]]_ggak`kaU^c_ab[_hc[hdhRVZj]W_^\b^`ae[Y`ahca`]ZYZi_dfZ`kU^^g\Q`STf`a_XYJgXW\a]d^Hb`T[LXZ]VUTTnn]dic]Y^^neXrYk\dQWZ\^Sea]f__g`gUbb^Z\cYY``axZ_gW__c\^h_X]Md\ZY]]Xd]\kcl_XWaXaUYnZ`T[qfmR^a[WOfcLU^[^QeV[^dmOefR__ZWb]SfnrfXY^bTgU_UVdYd\cZ\UTae]]\]^`]S\f_X\_]M\\OfmZaYde`[ZPS^f^Vbjj`Uhj\e\Tgbf_]bX^_a[[Na_Z\YjZj]_SXhZ`]`e`YZ`UNlcbcNUS[Vbc\ZZdYXbdid^X]bY]gRPgd^dbhe\Qpld_c[e[bZi_YZae[Z^hnk^j\tR_Z]aT^McQ_XYglf[fffZr\]maf_\c`^VYdhMYd\f]``X^cVUf]eiadN]dmUU_hfeXd[gSY]iePXgWiZV`[gVc\ZhfjbYl_^b_dWb`W__]a[\_ZZ`XRL\eNi[[adb_g`ahbWd\^\f[n^p_[v^\Ya`VX[^HPW[fhQXVmexhUaIi9ZSJZZccZ^]gWblZ^iuTbQVA^`XOXc\Tsc``aZ_d^lXSVbXb^LZdV^S`iP`XVWYjakTcLN^WagUUZY]d^Zi\plUa^]L_V_WXQ`bXeWb]^iXf[\eUYVVY`d_d\\d`\XcXf^YgcPQd\aZgc[Wacbq[YU_Z\YUc[_U_cvY`^Vcu[TaU_T]WYj\gS}aa^]_c\Zaya[^cT]S[[^_`[Udg[S[\_\\W]]`J_[aR]\lWdpfaf[]ZXZb_\b^_]m]fVVUahc[eacgZVbc`Y_dY^\]lZ]R^_dYYX\W`bT^iad_t`dd\Z]OXedl\b\Z^e\`RU`^a[][[M_X__^]^_bs]bie]Vnd]ch_hadU`adKi^fe`Y^l`bL^`Z]_Y\mkaaZihb[YWWa]a__n_Z^YZOb`hebeWVc`X`aYf\V]]S^fY`m\ch^bRaf[ZXe`wb][iYfo[aj`e^d`_U`]bXgyX_eUZSb^^bbeXdOWL]_ec`XT_iaYf]\`]h[`\i_U^fMefc`WmbgjkS][W`Wo^_[hf^c^`fVX``XTX_bf\a[^bh_aaaj_aPW_YU^k\bS^i[]^\gfb_`_edla_fS_Vop``Qf^b[Peb[]bZc^ddYZ^aZ^V`a_`ZRqSi^s`VY[\NjQvMe=eTebrUr^NVK`gf\YdOZUdYadZ\eQETdc[pWzUbXPfXHbse[O_FVcb\Y0^jUaeg]R`b^idYNj`MsdWT\Ul[YVke^[c\aarVVa[QRvmFX^ehaVUYZbaX^geWYZfab[bc`bSW_X__bb[j[Va`O]Z\[Jf_n`hcQ_^^cSb[V]]S[biYd^IZcUVi\p_f_bVMe__VQfe]RLTYZ_ScZ]Oh]ZcB^^b]UTNIQ]URWY``a`becP`\KacR_b[bd_U^ZWdibQVY^Y_bXTWd_cV\Z_^^]`f[][_gQghae\PiclbYfXagU__UL]^^][_lb]]dg^aNQ^bcdTg__^g_enccTcWhckYy_X]cd_`cn\`ceTt_UX\\]cH\^l``QUZg\X]mZf^ecd_Tb_f_hS^_Z__YQcc_cca_Z`qdUjUfZkbbhV^_W`QebV\_XX`a`WSUVheZ^aWd\Z\XGof[Z^]YaZTXbhtXff`Z_in_abbhS\ccfWeZ[`R_d]jgab`caeZ`e[qS_\YoRf_`]cf`hU_f]c^]b`ub`[cbZ`_be_V]]b]`bdcdg^i^\bWaW[bhZ^X\d]nXWX_[f]k^g^Wf]Z[_ckf[_WerY`VikmXN^\H\Z[]ifVa\Sk\]YWckXaa]eeW\_c[UjF[fff{_^e[YmolX]I^`ceL^kZfZ\h`_ZgsOnl]ZtVT;X_lcde_YORd]_\`T[QZk_ah_`XWXKcdjVb[^SeWcgam]bg]nZ^_avleciMjTUXdcWL]m\_XeVcZjdPXYcbXVaahm[Wg`\b^]R\TXgi`RTX]epZRcY^[^oYY\VeSWhal_Yf`kZVUZf\UV`YhU^U[mXO^^lY]Y\ZY\]_W]UX\RZib]SphTY\ViY`gfU`e^Lh_jUPbae^]^Hc[_a_yG]WhWccZb^ZTYZb]XWkV[`_UmXe[b_dYe^b_\ac_Vb[dW\Yd^We_abZaiaZ\Pb`\Yc]`]UWd^ddcZj[e_Zl_\[deaeb`[c_^bVciebReW]TYQk]`ZY^`]_abjXYb\]_Uc_W`h\^`^hb\jd_bac^`Y[c]]c\f[h]`]]aj]\gbVRYh]`d^c_d[\i]_T[e^]d^ee^]`^cY]ZcMXW[dX^__ZUae\^_bSccZ`W^`acf[e`gW]bW]YYLekgc`[`{e]`_adXT[OY\bn_^ikZ\]`YW[_apXaa\dc`]\gX^YJXrh_S]Ui\aXb[\]dV[bSaUXjij[[Z`aYichbd\d^`h^cca`Ta_Za[c`f_fYgaTZXh]i_Yfa^aS[^]V\dRf\a^XWWZ\Q^e\jn_^c^dZ[bid`_cicl\Y\Z_d^`[[c_bZ\b`a^agb^VYjpf\ig^VR^aTXZ]dZ^]f]c[XYT[WT^h`cNh[Z^ZWkd_\ZT^_dgh]`aXeVc`_YeZ_^_VYbbYa]ReZc^h_X_W\W]l`}bdc_Tgg_e\a]]WffZcO^c``Z^ZZQ\`aSX_eY[afLep[XgS`eW`_dM`^b_fa]TcrbXfi^nW_\Wd`\gZYXIaWVa[Y_Xm^Wef_s`e[_oQcPQUdc`Z[`]SOe[UiaUV]Yi\\bS^[d]`jkZjcm^dg`cZeXdeOW\\e[[XSbaf[^aSU`Z[\]e[NW_\YgY[^dbT\`_\Y`WRPa`i`XY`_Y]G^fOVTR`^b`Z[Q[cW\c\aXMrXX[_[Xab^jR\dVXPYV[]g^efbbgcWX\]aWafR]baZh__N_`[QaQ[Z[fjZ\\d\aVS[Ze]iaW\Uec\^cgej\VwZ]fcegSeST^Yc\bfdXX]Zb`cYagh]QiceaYh^__YVj[_`^ZVVq_b0cL`]Q^bYazbeWbokbWGMR`TcUtnHtVS[_WfgfedcW^ba{h^`dmaea^Y^[\Ub_X`m\[VgWTbcVSW\b\bk]<_`PR]h`U_z|ZV^hb`a_c\^U`_[^Za_aa\aaZUe\`Z[dfe_ZYaW^\[]b_`jW^SSYfaa^W\a`aYjg_crW^\b^^ZVYo_[]f\gUaf\Yf]ge^[W^l[Z]\X^[]e\\^]][f_jYX\^cZ]a_XX`[^_gb^_^f`_le[b`b]a^]c[aY_jeUdWVWa[c[X__]\_u_bfdZ^\Za_heaaZZkShWbmeSc`^]RjWk[ifwbb]fWTjTPT_Zb]X`gwTk`El]_PK`\O\OXeVc_ObWVYRogqc`@Y\V\Xa\Y_T`dSe\]ZeVVVbLT^`]WIX`gVed_kdfU\M_Na^afhbY\b]Lcke[\_oTma`]fI]b_dX]UX_{k[jcb[h[`_aWie[^^^\\dXf]Z]d\]a\^ab]mZca[VSfeXbZaUc\fc^^\bSa]g\NZQ[[RcZdiZpa^[^^mh]ash_We[cdfYYdaq]_[fXZ_as\`\N[]i[l__``bt^ahgfXhffa\]Fb[deZlUZ_cclfe`dbbQa\ehjkac[TaZge^YR]WVZ\`j`la[WW\^gk\Y_iYe``aXc\[MP]^igYZWd\Z]lbgSR^d]ZPQ^tb<^ZKiZTgff`_He_ccZ[W^m[UhOUUaUae^S[_VmbcfSbibc\ac^]d[lcX``XSoV^XddecW\[Z\V_h`gX\ZXXaW`eYfSajd]^mdao]g]\YVcX[W[\`d\i[_^WZZ\`e^`YY_Phaca\__Wabd^WUge[__\gZZc_`a_`cc\[ehV`kdZh`ifdaZdga`\b_d[jc]`[\f]`jb[[e`f[[ZU_]`\Zi`ecma^c]d\ZR`\_ZYYi_c`\V\XVea[u][^ad`R[^XgY]PWdWa_QWZlg^a`b_e]_cXcYZ`i]]\]^\\hNSNZYa[[aZVagR]h]ca[i`_ebUaW_WRX[lT^ya_Phb`W`Wc[XXcO]bUUZd[U``hhm^WgY]^baaZjaed^a^T`c]ahZ[hfTaW`d^YaWXcVa^b]SqW\[XbcacbTZf`\]]eaWPVW\]a`S^^`UdKc^bfZ[Pb`ZX^cTR\T[feO[[^[mkcdWZc]L]Yf\T_f_acaa]s__`_`W[iV]_J[[cYnlbP_Rjh_hS[`W^_U`]`U`cZi\_a[ieYeZOY^ZY]fV`]QcUXYi^W\_\WdY\]abU^ccddQ\mWT_\__]jfbges^Xc`YbX`ZaVP`c`Kbd^^aZ^X[Y_[e^N_X\cgd^_W[d\icS^bgRUbcYyZX_YnWZcdW_W][bb[r\WW`Z`X[_d`S_eZYaPae_[[Z]a`Y\ema^\dZ\_`_]`e_Xc_[jWiYPad]e^ddW`kcg]]ZXbg_b_Ua_ad_YXc`]iRde]Q]bSa_Z]\[dXXiZ\qa[aQcK]ekZ[f^cQRUVbT\nTZm[eY[UW_db\hJdPZeKibSf]kM^[_YT^`jac\]b__`YbU^P_i[UKfYd^V^X_bgmcXjP\K[V`bQ]edQ]gi\]`ehrae`Sc\a^s^agbe\bZwWRaSa[V^VV[a_iddn\d[\\_\e^b`X`W^]c]`[_f^\XbZUZ^bUYZgag\UWVZgKXXf^b[Zx[g`d`Z^RVb]YbWd\gd_nRWeTU]eZ]c_X``WQZb^en^^XcSa]YVbca[V]gc`[YhXaaY\VrdW\XR_a`YbckbX`_`ck[be_W^\W]_`T^aZf_d]]aW`b`\ZYaKdabYbgc_b^^]]_WbaeZ`gX\ScV`a]ch^ZZd_`^Ri^_W[Vfa_Z[b^Z^]d[V]Uf[[Wi`cacge`eT]gP`_gXadZaf`]N]`d[^[ZV`jfbW`J]Z[b\a^O^^^``\_\d^^_cx]isbdYcc^^g[\ad_S`YX]_b]TYVdheb^]dd]f_Yjcd^mc[\a`[cccQ^a\g`U]fZ^a^ZT[Z_G[a^jaj[]WdT\^WYe\QofiWZ]gX^YGVe_VWcZg]Y]WSlgZPjgeYZ\`]Uag[gld\]]__Y]Y\`M_`cY\cXgS\V[g_a`\^W\Xdbb^f_RcV[Vgn]Wg^df`[a`XkY^c\fiPa\]V\\b`c_]Z`WapeUV]l_kWaVe^]XTci\l[b^dbiTQQ]_PdYmRcU``dZ\X[f_cZ[\d[ef^\be`j\Yb\]Xgc`X]^f^k__Vda\YXei]d_YZb`d[`Wabm\dfb_`Y[]_g`^fdWbSfZW_Z[U[lbbdai]wU``b][`d\\]gk\d?agZ`lUWWQY[hYXbXN[o6DbeRiYPfgVXW[T[P_c[^lN_c_\_hQidag^T^_ObiW\]JtZeZ_W`Y[_pc^L`X_SbV}`]cMfdfa^co_R[b`YU^]aZ[[[kN\IYgYabY`dYagYX^`_lkXjQae]^faTdaUc^cUb_WSZ_`d[^]`a\Y^aZiZl`]v\ab_\`\iWQZgcVebbQX^c^M^R[gdYW_iYfdkdTUd\~Z`bbb^VZXUS^Z^YXS_[a_^\X[[]\X^fV\fdh_W]fUTN_]icaW]Ua^fc^YU\Xa_Z[J_\_cQb`]dcbe`h`gdgZ^dWZUcacdak\f]ekZi]__Za\d``i`a]biVh`XcZZY[_`iNc]Ud\^cs`XeZ[S[bfaf_alidqYfV][fg[_dZamYfW`\ac_bhUdXdaWac_\doaYXb_Z_XsYdd`\`b[cXebealbibhh\cYVjZi[DMW]]bjoU`]Wj_`\^bd]aURjeX]eX]VxKWq]cd`Pia[_iagYQZg`\O^h[e[IcP]ThdV^dkL_UY[X\ka`jdVQTnW_X_Sa_`ba[oX]V[RKd_gIb[XPc^rdfwd\f^eiVf[S\iQXXcW^_d]_QnjUW]a``\^]aZZ_YQT_]\g^Xha^bd]OYSXqTWNVZ`fV]]eZaY_r^[b`]X\m^c\Ybf]VVW^i_T[b]b[YRWf^YbXn]`[\[[X`_S]ZYe^[f^`V`]VS_Z`\_c_XefYOdel]TW]a\`YHc^chbrT_Uc]f]h`\aTXTdYXVbSddUeeZ]X]ac[ja^gTbUa\___c_Y\^[eX[]a`d]]bQ]dY^iSa\V[a[`]\[cXadZb_Z]^dX_hb[d^\cXh^cd\_\UZ]K^aa^]ghbbg_[dce_]]c]_Wa_\bebcdZ^b\bec]`W_eU`d^fSed`]^fgcXj]Va^gT^c_cXfa]cbbZ]_Xdd]^^X\_X_a^\b[b^^dT]]_]S^`\]\`[cd[\U_ba`o\]^^]acVZ[YNe^^iaVa`iYbaa]V[^]ZXX]Y_lf\X_[YN\ZadUeckjcabXkY]TW[jfbYaYnd_Y_bb[dVa^[bZU`oVV^c^`Qeebi]`d_bb`ohdXW`^\^X_^fc`Wb`YZQ_[___ee]cS]Zn\]dQ`Sb]XZ_XgPY`Zik\^_dfX\epVZabao`dVb^bhbce\Zc`\^e`_[^g\]XfbgbTfc\\\]_YW^ac]^[`[a\SY\fSW\ieYL_b^\\V`]Xa]\fdcYf[]\TdXegdO][^^hcZ^c\c[\V^_bmgZaW\[bh\geYdZ]laaaW_baY[fZ_Z]ae\[aa[X`Z\Z]ep[Wcg[_c^Vd\cfddY]Q[^Zaa]i^]pfZ]i^c]j^^gZ\^`^Z[e[c_[fa`aaYalV]UoZ^hX^YQb``a\aXXVP_\Ub[^[bXda`bY\fiX`bcWrb_Zebc^YcWm`Rb[ZdYX_Y`^^__cV\cZXXd\]Ndc[Z_Yaa]]]g]_VadXSLgb\^`[al`V^b_UXQU]`^Qcd[Z`\_hYd[R][[[fWc]T]bPdc\_S]Z`a][_cgcibUdX\[d_hSSh__`]_]d\VP`Wc^Znl\^dda]W\dZ]ahU``H_i^hec`W^[\_lb]ndaiHagXZe_Pk^Z]`ecT[gabhc_[a^fa[cmne[^[`ZWXUsRRVbQ^VPafaaLR`\gghnTR[ffW_Xcw[sHc_c^nalhPfX[_Md__ad`gkWhb__Wad_T]b]a\nZ[c`bscXXV\e]Kc`[Md^YZkcyYT]bge_b\S[W]_Y][^[dbZb]ZQcbdWW_`\``_bZ]cbXY[]c[ZVX`fdefU[_`eYekfeoW]ce[[]ZZq\]`e`jQ`eYVg`ch^YW_r^Y^eV]^WhY`]\`]f^iWZ`c[\^[aWVaY]`o`^_^i`eok\e\a^a]\ZTbZgjiXo]U]j^i\Xdd`]bnemeYY\ZR[bhbadNdi]ch]aeQ^^\[Wi[[YbXj\`X_Y[^TkUYdd]YTcc`gjJkWX_Tf_X`SX_Ve\\g`Y]X]^j\cGXY\TV]a^[]V\^]d_WbP`]^ZN\d_a?k^^_U_dXb[^U\[aUXbaf]bY^J^FddYS`d[ZjlV_eQabUm\_V]^nhX`\b``Y^[`X\ea^_]^_\]`eV^b]Ycb\baZaXacW\_dc[aY^YbYbeX]ZcV^`]bVZVT[\e[`k^jccY`ekg]bqb\]a[]_`Y^baZ][YgXW]bm_h\Q[_b[ggba`bk[Zce`Zlapkb]TbZcf`hY`db_idecab[Y`hfckgg^aX]Zbd]`c\_^^b]eanV^\_i]h[_a`hVe^b]X_Y_QX\^h^S_Tb\`Uga\aWb_[]VYffTBa[TfYYdbh]^SkXjha][_c\Ud[]^a^c^Z[V\SkahlQaga`\fj[]kepfW`dTa`\[Vg_^_ZYd^\SbXX]\`Y\XcX_pXb_^i\`_if]]^k]_kYb[WZXXib[Wj^\[hTPa^[a[Zc[cb\_]ef_caeb_dae`e]X`]Ubc`]i^bd[Z_oWeha[^`\ceeYehbmXc^k_h]]\Xakbfe^`ahba_\^c_Z__Zacg\hc]`f`W^Uh`Ya_`f_e[]Xgdbma_qTYZ_^\YZ[^]^cR[gZ\^]]]hd`\[_idc_dZ^TUaac^_bh\[eNYZZZcYZcbU\g\\f^b`Zjd\ci]bT_[[\VgbUt^_Qbce[a]aUT]^S^`T]_b`WajgafbbfYc\fX__bhcf\c`Xe_[]b^]j\X]\bl[Xj][cY[hc\VpW^f__f`WdWUeXT^Vb[d_a]Z`]aSY]gXgKd`^f^\XeX^SZXOZaOXbiQ[X_YcfhfY[c`V\^dfaaq]`re\Tlacbd`V_iZ[hS]]c[o\_XWYede_]afVc_^fa[Q\l^c_Xb^ae]eZM_ZXZXYT^`VbW[Qs[ZdZcXf_YdNY\ac`[eU]h\Z^Vaa`cbhfdj[`a]\aU\VeYXb^dTa_^baY[[^X[[f]TaU_aa]\_[W^XcdU_^aT]^daiUZbZkZYagZXYaVbg`hZ[[^]dZa^bdZ\eXZa^_]a`[[bd_dVcfa\ddZY`_]^_]bYccZb\eZR_bY\aaeWgi_a`^`[dc`g^R`\Vj\`Ld^baL[_dS^d\[[Z[cWbZXf]ag`d_TiN[^idOmbiXVTZaQSjXZt^\WPW_]^f[dKW_`eLkoQY]mKgcYWSb`Z\`f^[bg]Xa`dRch`M`^\ToeXS[R^o`dYQ`NWURaUUfpXchl\a`e_ka[aG]heejV]keeW_\rUXbW]b_cW`_b`ia`m\d[_a\fda`b]\WY[a[\Z\b_RabZ`[b_TXZnaT_Xd\^eObY_`dW[p\j_ad]_WZc]SaXjcce`daZcUZ`c[_`X]g^WX_b^fh]YchT][ZVaehf\[e`cZd_Ye^T[[hgX`aRa]dYc`^cY]_]_kVZkbZ\[Y\_eYZ_Ya^c^]_X]g^_`XaNge`\a]ca``Z`\a]d[f\_o]ZTeY`c]`f`Z[]`Y`Sg__ZcVjea^\_`Z^^b[\^XhXbXhababicacUagNb^d\ac\afc]Ndaa[]\^WajdnYbFa[Y]^_]MZc`a^c_]ba\`by[vj^__deZ`iZXbib`]a_hdb`\\Sdac\cYfe]hdV[jhdmXW^[bdbbbTa`^a^X]cVc_a\M]]`H\ghn]g\]T_W`XXYdc]pceZX`bTa]WTi`W[e`_]UdYVhe]VoccZ\T`^YYrYejid]]d\\\_Z_Sn_dX]^UcZ\U^gX^YR^Y[Xa]fa^bUfd]^^gcVfdjg^^Zb`h^g]V`eS`]Ta`Xc_d[\ZV`\j_^X`ieeZf]X^]YW`k^fYg_`df[Z[e^VaXfZaU`ggea[YmdY\`[bhca\`k]hjccaX``k`f\a_j`d_aSaZVbS`k]\Z`[]biVi_e\e]cZcQ`Zb\ifa_[\O[QdZ^dWV\_eZe^difl^]][j`ca`^YciZgJ^WS\mTcUYWdp\\ZRg[cWMiWO]bQa_d\[i]c]fZZYcVi\eW]Y_b\`O]h[\W^]\]Zbc_c[f_\XfcbSa[bNd^^XmS_dPcbXXWWe_V`_\dRZ^_[\[R[]eVff]bjZ^]raebYZe\bme`\Qed\ff\Za__eb^\\cWQTb]_Y^\cbbY`XXdViWdnbde]^[`cSNYheUbaiW]ejbZ\_\hd^]`][bc`bYX_cmVioh[W`\SZX`c[][T\Zi^_a^YQ]R]`dZYagmbdZcOSX^cg]c^hZ]_caZS]_[f`[[S\`[\aZ_[bc^_`_bc^icf`V[Vhdda]Vog\bf\Yb_aXbWb`kiaad]Ya}b[\[`eZX_iY``UegYbg]^a^[Y`d_[XiZdc`j`eZ[Wee][fXcdb^[_gc^Zbd]dcjbZga\Z`j[cZi[Z_[keeah`kcTdXhd^^edabgffhW\\ThZYQEMTaVV[ehjfdia[\VVV`qdf^hLcYmYneFhXc]]biGkTVkZkH[jt^mYFMncg^Mj^VbV`bqc\X]P_VRgbZ=UydWc^^iRgnN^RW^_eemOfecgT\UbieVkW]g\_lcYkRr[NNQVlYYmSbZbYaoWV]SO]Yk_g\ddk][Cd`[dXd]n`S_cX_XW`ff_`be\]VbW]Ym_UaWT]cLb_]cT`\^ZWR[\j``b^^jf]_gelYfXa`V`WSb\]W[hXcU_cX]W[][JdU\c_V_Yk`dZid[hafY^`[eLbaehYc]fYkcUY_]H]_Qih[Z\S]]TZWOX`STf^fid^W_^Venscdeb`e_hV^abWc\ZZZMU]V`gO_OaG\[XfX^abbWdYS_]\kQS`h]gY`g]___ZPXV[[bZigcZZdcRXoeTNMc]V]^[\Xd^di^UYeVfPW_QT`Z_dhUcc__a]aZbdzN^h]faXdabVY[_W_ae\`_ePkTeYTb_V^]gdid^U`\[thaP_dOb^\eZ`PRef]gRin\ah[ag_Obhr_abd[Yjdgmc_^V\^\Y[_YYd|SURliYfge\hbtN]d[ac[^]`j[`qidgUp\c\]]Xjjl^_g`r^bd\hlg\dY\ecZ^hf^[c`h]Z[]_WZae\mn_UiU\TacecVdd`YYRddcSaW\T]X`RUdZ[`\]Y]hXdbRZWbaX]e^^YebWYk\Jdae`RefcabeU_g`_\_NaR`]a\Zkd_bmfSP_cP[`_eY`ei`Zh[]aaZdc\ca[g_[ZX[ZYdYp^m`fY`_XlXVaRUX`Rc^^gfdaeOglb^[VUZacmYacY[\\\^`ZhT_d]XW^```ZWfb_\[^_d[k_^`cccb[caZ^X]eh[bee^\d][ZYai^_Tda^\]Wf\_]W^\gXV`^dX]jZ\`SbfbeeahVb`[d\fY^d`Z`^ac\X^_ZRX\gX]Y\_^U_\\^cZ[_gcdXZd`aO\]e^^[\bY_W_i]cXZW[jP_^ndVZ_`Tbg`gikhikO_Yabg^cXmYg\kSc]Z^``^[ZSW_\g[Q__lSmgbf`cWbUza^da[dlcfZaXVTa^hUPR^ZcZ][\aZLbY[]W[f^`TaZUb`\^aaYi[XbX]^]m]]S[XN_fP_d]b]]abch^\\ZX`bgR^d`]W]OqU[[[]ZWsVmd[\_T\f___`T`]`[ZZde]]_T_ce\afadXm[i`_\e_Xf`YaZa`W\V[UhU]`flX]^ala_apea[\babd[^]a_gZ_XV`V]_eWT^]\jfLXcec[hqaa[bS[]``^d_b\Xj^]XWf_`ddaX`\]gfeZhVYa]\decWpZ]mfTX`^Z]ho\DfYi_bafy^\^UZ_YZapY]n[`bkbZcqQMY[[Td^`bqSlQqm_[VegVUe]Yi\XedRMVNTQdWYbJcT[SG^]WzL_jWY]aXUk[cWUe_\ZbchSmu^T_j`bW``\Q_aXc^k[`TM`\jRY_gRmb^pX]X`_\_iZa]]UbkcdN_aPgd_[e\b[]fa]_bX][YWbcZi`bR`aXlNS_cdab[\US[sexanTf_aa`_Z_aYa__[d\iajd]epYWQTZa\e\bhidR`deP]Xaeiat\c^a_O^bbT]UYYXZRW[^abe^T]`vW\seV\c]^ibd^[WX_e\`^\]_YZ`[Sj`bW^`_ZX[aS`_]`cXb[OZ[XVXV_bf\ace\a[eYY[Zi_`\ZdZ[^_]Xd\c`^aZXa\YYeX_XYQjdZ\`YcW\[^\`\X`da^\Z_\YRShY`_NY[j_dT[XYc_dZ`Z]`\_`aZ[a\^iab^Y`^^_b^[]\`cre`f``]Zh`\c^Z\UW^aYZdV[Z]abi]Y_`fe\Zai_bU_P]^bg\`Y^gl^^W^a\^`i]_`]`Z_]]fd_^n`Ygjegebce\Y`]^b\ee^^hafd\\`fYhh_]]TZrb]e]\^[`i[_Yda]^b^dTb_^a\dPme`a[ZbSYcdZ]eacdc]XaY^`_]YV]hmVUgZ\hQgcY_eb\a^^][_\[Yba\[_hlabU]^[YceWfaYcXX[daYZ[o]lYuXWhY\``^_VY[`bS]bh[Tf\Z``d]_ae^bc`_ZdYgYSYf^_QW[Yb_e[[ZgfW`^Y\Vee`_bY[maZgS`acZWga`^_gTf]_UZ_Y\`e_]bX[^ccd_^a\\d_``h\bb_Qb\a_S\`L\\d\Y_b`bX[\bdiabYhjY_cabcjl`^h_`\ZehZeiW[YXa]^``_Yb^g]_aq^bfbiYbaba\gcf_a`c``XW[deee[j_^dZ`[bdhgc^^]Y``cTt_^f`e]\]T`_b`fhYRfNVdaeY\o]a_]ci^_edTd[cgWk_ack^d]\ed_U\a`hiYdXXX^^W[XgW_\[^_\c]b^wb\Wjaec_[`]]^\XY^R\[V[UXlacYYd\`dV]eeVa_d]Z^bW_ZbY`_]g[gV`]Zb__fg^_hdZ`]Zd`b]Y[``cYfZcZU^\bj[gge[WWeiW^bh[YcfadhUUX\[\Vb^]g[]YW__[]bV[fbaYi_aQreES^fZcMbXPUYW^c]Se\i]ZK[[Z[U_[NcU]Y^qcljkabkaYSVlVTc\WeBv_cfm`eWYfaT^[bT\f[Q]_icQghp`Tg`ZbncQP\`XVX]fddijahT\Zl`a\h[e[eY^[b[V[mb\]U]U^^cYk`]\a]ic`S\[RT`^]ad`aa^f^V`[X\_chba\`c[^XhU\g[cdgn]KLX[]V_]Y[gZ\XbY_Y]`Za^`Wc\_\[`aY^^`P_WW[eYeUdZjg[`_ZbR\URPbfXbc`[^W_]^][\cba`bbU^`^fd\X_ie]YVd\]Z[be__aH_][^e^bR]da__b_VXbiWaa^b\bZ_[]O\lbc[`cY[]ckdi`d_^^e]SiYVTXWSZ`^a^j]_]iZT`[YZZ[]__bYdb\b_\Yam`bW]c[c]nd]V^Yip_[_c\d]XZVf\S[YPc]^Y\a^]aRbVi`a^ZSaX^d^YY_Y_``YgadgW]ad\XaX_ba`Xbae_Zb]_i``bVZabXaaZXiZTadY\Wh^b]SaZe]S[]ff`_\[[[Ya_^\_\gX_`\`][fg`Y[[_c[]l[\\p[Z_XeVgf_Y`\dUd]\W]W`\_aZbQ^Z^cg^Xi[[fcmZ[]b]^_bVdcd\^^Vdb_\Z_bfcWYclZb^_^]h[d]cae\bbh_U`ab^^`_Y[\aZZ`cUYoZ[V]lfd[Va]`\V\aa`]Y\ZeW`b\baZj`cYg__\`_iZ]X[`dd\ccV[^Zj_X`[`a^Q^c`[eg[W^T[\_\Z_lg\U]]]Z^\_Ugd_`\e]_f^\_`ZlUXUir]_^aaYWfbWefa`_Pdb^`bfdPc^geb_^ggiP_\^`\f]^\\ZZ[S_fVa^\Uab\be\aQ[hX[_\Z^_ao\]ZqWXeW`]Y_]_b_^\h_^e`b`_ifi`kdJb]gZ`ccX^^dZmcZ`^^`QTYa\i\T]_f]]a[Z_U[V_WZ[Wi^j[dYa`\cdZZ^aT`bY`^W]Y[b^ZY_ffZQ`\UQ[`[bZS]W`_[_]\V^XddT[ceb[Y^][`\`\_hV_\W__LcLgXZb^_]XPldXaTnbZ\a^gYZ\efZ[[Vil\hZ\_Xdc^\b]YXT`cT[\[[]Y\]p`Za^iaacf^hXhYYdX_]^ba]a\bdW]eYcX_[kb]Z_[_Yb[Xia^YX_^\[f[[cYd`eW_SVefaYW^\ZST]^_gZdP`dT\\_dgc]`]Yb\[a]]^[bbcaYXagh_j]c\]A[`Ta_MUR_alaa\Y\]cb[ZOf_V`bcaq^b[WaYd^V`bVUacR\YhVb[]iX]dbf_T_gL]gyHGh_pUKX]Z]o\VgbfR^a\^aWYJ`chVKfW[emdN``WRfdfSjoVSfnjaeJi\X]tki_GO^dH>OkVT^`VISb\\TM_Wms]_[Shbj`_]\bKggfUYh]Rbvdk][dY^[g`aT]bnQsi[^L^_xVf[[\Z_c_d]I_UZdg^X\\\XRPc[pVaWYX`]cdVQbXfa_ec_aa[`QRX^ab\g]d`cZ\V_USQ_W[^UlXfdYaYbafXZ[bcdX^aRWg^^]^Xbj`^a_dZWg__Xha\KgSfYYfQ_`^ff`]aXUY\f]]`XYcZ`d_^fX\cY\Z_[lY``eX[ZV_^cgVaZqgbk^ZW_^\b`Z]`adaXNZ[ZX`aZ]\]`XYW^\YWV\Zg[aT`[Ka`eafTXeZfb_Yc[iV[\fa`chcaabWfc\a_\_lX[fc^[X`^YhTdb_eRcff_b\]ZWfdReM``m`[ZYb_Ug[[_\`VYccfafWbWcdTVX`aXiVYX^_`Y^Zj_^fbgSQi`d^ZYZ^c_a[[X_``[j]]UWZ]b^]\]\cOb[c`W\_Za^`]ff^[\ZWfSYUda]VOdfcabg\_[V`Wc_`Z\aW\^d_f^hd_amZbSegb^^Z`Zi[X_g]f\`b[]ZgXVgWb[`YacS\VYe_]jjT__\fb[T`\Wee[Yac^n[^rjchfjdaa^c[be\ZcY]dce^]U\^a^Qb`lZ`^eaUVkhfU]bagY[^KdYf`]^]jUe[V_cc`hYXa\\gY[faacbS]YbYecb^Xea]^`YfUd`fd_ba]eaeVTf^_W\gVXg\c`lce^]ZcYadfWdddnaa\Zr`]\Uc\_\_\fq[[]`_iWe`Y_V\\]Z_g]\^^``[c\eoWahYaYceSWd[^Zd\YUV^j[ZmfY`XX^`_]Y_eVaX]]beP^`WWXO`[d]UjiZfiY^W^^ZbbX]adYcVZSad]cYe`efa\Z^hdg\c\c_g_[[Rk_V\[YaZ\__X\T]TZdWVe`]^]\eWj\Hd\^a[j[S`dUbfbbZ]bXMX]SgDhdbg]gTbZgfY`][^jg^of?bbejbVbkgZOntR[Ug^j[ZqeU^XXfXfSka\^ZNiR^eu]^d`ibf[^VuG\_Zem\dMbcYT_dc^\ZVW]c_U]K_^[iX\vlafnhbkXnfSn]efWseZ[Xb_ic_[bU[^`a^ZV^f^^`_`e^`cZVXbXdbZ_]ZibWfSaZc^_a_\`dc\gV[ZdY^^[`^ZjPa`S^ic`a`Yce^]_`\ce[d^Sa]SXY]^UUaac\bbX[bXcTh\Z^e^c[e]]\^^_\dfXhf^bcXY_X`c_dd\gdaWdlbb_\]^b]alqeZZ[be[b^\e\eXYrVUqeb\Tai[\_hea^fYe`\_vkkcZb]j^adgT_`eYa`XdYfM\fc\_bYa[[afc^c^f^TjdWVeYf\lg_]g_`^a]e^\c`b\^cdefkc]iXc\^Z_d_Zeafab\hc\hc\jj^fbaXbba_qX`XaU^\aVgl`__eZL^as]hcTZcV[xX\fa\i`h\^Xk^YYM`Vd`deda[d`j\`JOSgf]]PeSYfbN]\ZeLpZ^Y`Q[kiYZdkd_rbTb`kR`c^M\\`iQbReU_T^`[frJ`WYd`ZW_^`gZrWS^[cXk`W]p^X_aXLi`PYgU[Xi_\nkdXY__clRjh]^RfZa`[^c`R^meYL[aZ]VccVc`^[`Zad_Xadb[eXRTiu]A\f`cbU__\iOMZ^aSQ`Z[Y`\^k\\hc[^a`[_ZZb]aSSk\bibQ[WaVUgWcJ[`afPfUVWU^`a]b``jbecbQ]Yc`_c[V[^]V``dWY\\^Wi_X`VjmZ`^bNWeba\bcY`mdZ_^`^X_Vf\aZR]][]d^a]Y]a`c`X]\`\`idb[`[^^Yf\pgWaa\_ZY\\hU\]SehTbcff_Tf\S`][]]dgad]n_YXk[cX^cYS`cWUdec_\Yce]ba[\e[\VfW\S^\l\ZZcd\b_[\QcY[aXbf`bi^\TY_gcZ^kajYUXQ^eaicaach]hZem\d^cb[dag_[[ddk\[Uc^a]ecZcc`e[_[bbebYcWW\eSV\]ak[e`d[f\n_c^g]f^hajed\XYbW]ddeah\h\``YW]T_ddjdd^``]acZ_MfYag`YgdZWj__\ihmceccTic`^`abcb^[Z^e_blYaadz][cZTadccAZ^NWc`^UcfXfacaedfVZgZ_hi^__`e[ZZjY[a\g\[_bdT_Rf_gc[_gbb^]ha_v\baWd_fajdah^necd]_a_aYbded]ga]\YeYaafoaNb_T]dg_o`WRZd^d^fc_ZZ]^ShdU^dX\e_\_Za_aa[^\_g]_ZaeWY\]\\Z\]]_]Yk_T\aiZ[cc\eTc^bXY\WP[d`a\tXv`SV]^]g\h]`a\`jfa_X`b[TIPUc_im[i]MW]]_fWZ\``^cQQd`a\Uf]^c^a\[WTPa^QiXTaYc`N]aa_eTcZ[^ZW]VpgX_WTZlc]qhdbc`_habqT_YkcmbefZ_bg\]^\[ck`gXTkadZ^S`cZfceX```_\_gYag`WZ^aeZeZY^`]gfXYelX_b^XfYfYbW_khb`aNdf\g]_SX^Sci`Pc]d]W^f\ZX\Zhc]_cYiXeYhgZ]\XiZZlU`Z`bZlcbk]``X\dOam\_^WcaW]cZi[]Zlba\_Z`\ebY`]eaXZ[adYTZ`a[b]dfaNb\[`[cYacYkiKa^_QT[a\Z^afX[cYfo^_XbYcai_Tb\babZl]``bdcYTW^[cZbYU_`^dX]a]`dT]^S_e_f[lVcYZSXgdQ`[V`abaRdfZqai_VgV]bg[ZaPda[mWZ`gf_]acef`Zbb]dS]d^c^L_[\YaWX\cX[jR\ZeWX_O`^cUbfhjj[S^`b[bVdZXOT[S^faYb`\djV`ZIig\]XNTZX^i\EV^\\_PJbYYdWhVg^Ya\d`gT^`TWXf_Z_Ycac_[Xd\]e\WS`dZcQ_e[SZec\_^begbaV\\ddd\Y^mUX_bagbjXZ`V`as`hTd^WZXXeR\b]iX^[ej[cZ[\a[Z[_gai_Y^l^k^SWc_X[^]ZY^Tf^\a^_^[\[`ZjYp^fen]T^Vk``me^c[VZiZg\ZWL`\R``Q^a`X_^a`__dR[Y\_~[bPc[mO]UWibe]b_hXr`^gY[e`l\maZ[e_]^_TicU_]ca`be`YXXgW`^ida__]^dc_d_^ihX``\\abVf__lrSNcd]`c_a[c^dfa]IcR]WW_[[dZ^cl`WS]bc[^m[bQVZ__Yd`U`d^cg[`\Yg_Z]ap_SW[j[]]^^XdZO]Wf^Uf\f`c[{`[^djXa_]dSXd[_ocZ^fWZ^_bV_\fSWYdSb_khoc__Pga^dUU`^^`kcaYalGcPca^ZTcYQZaac_Yeqf`HmiY\\e_ZYY_{\a`__XlMVaMhb`pJ`^R~e\lh\[p_\\X~_al[`dbufcMX[]yfeWx]^bj_g[UsZUxccZ`e`X_edaobaaad_^dRgabXX]V^`^Xd\][a^P`a^^XT^\b[_cgf]\k__g\h^`qmaZbccX`^b^Yb_\dQbXY_IcV[^cg_S\aYTYR[_^\f^Ye[ba\gdbe]\`^[adLcYeQba[[`]O\VcebciYWX^\Wf_cVXa`Qgeb]]hP`\ea^YZ[g[r\el\[ZfYYi\Z\ZdPZcc`[hWWn\[b[M^g_h]`V]cYoYKXiwc]cT`^`\Igb`^ej_Mxd`ql`Reic\Yidc`UnbdWVdU_]TebM^K]^bFShe^?XWbd\bi]aSUXbUVXInZRg^\Z\dWY[QOQI_\_e^d^dSn^H_Xa]n{Vfl`^^`Yd`][ZV_e^ZbXi`JZNdijh[d[[hiV`[`[ZqchZTc_aIc[Ud`bgceW\^fcXMbhiaZbbaReYcg^iqY}_Y`rNd]VeRe~ggOR\adQnZa_db^^`h\a\ag_PfZc`h`cclhgXbh^eUebW^i^^ca\aH`Z`TrZi^fjXZ__Wff_lYY[a]cS\Z_^kVMW_e[W_WXVNke`WYlZcc]maVeMaQpIje^[W][ae\eidUd\f_S^^Ae]be_\Tq`U^bb^\g\a[\ZaTa6]dibeef\W^XT[WdWPacL\b[aZ[[Q^YW]cUP`][aU`tv3_[Y_leS]eg_N`c`Zd^MbdSNa`aYa`dcZcZ^_f`diVacV_YaZdf`\Waf]\dgfg_VP__ad_bab`^Ca^[_W[MX[Xi__Yal]fXc_Y^`\ce]b`ZafeQ_]b`cVic]<\nZT^Z][_Y`K]SjhZ[lkdZci_[^YTWagm^hd]jN\`[f[W\ZgnXq[]bcfa_dj_ZcXXXYc_nsedZoV\qYYVlh`efagh[mgV^b_Pdehm[cb`Zfc^banPZ_fkSW`a[n]X\eamZRcs^`ZZ^e_\Z`keZ_ccaWq[c]m`adZ[eai]e^g_\jcaga\^fc^\f[lY]VVbi]hgWeggdng^Zs\]e[^fVZa`WnaYfbdcZfgcddg`XaQbV`XLa`Zabc[UX\a[Yda]Xg`b^c]Zg\X^f^a`dS^c_RbWajVbUY]T[f]ibi`aacYWb]^dXe`\]\`b_]\Ya^cafd[^SXZmm]c\`m`VJW]caeqXd_beYZYZ\e`Zt`glcaU]hS^b\feMZb_cQeXOYkZ[rePWZcWaVb\aHblXJWQcPdM\_lcyD\UTb^Z[R_U^nQbaPVX|d>N_eekWbh`Wghe]aa:f^PFp^f\m[eIiSj_Wbi[bc1`cZ\Xeffekh[q[bWSaL_OqhGYXd]]W]d[cJPa`PX_lZ^Zq_^Dz0`mha]ijfUW\F^WjfVpchcYaYZ[U_QTP_he`Zwh[\k[bh]q[m\kYkSYQiQ]eVmXcZf[uFZdTefi^Ki^S_[vdfb]iQMYSd`SGrc_gGbk^[YhWfYYdaO_Z]o[[Ted_L`ZHOfYpFNqQd\]bZaRQWaTaZ\eUlaYrNXVaOdlVY]ibj_Ua_\_a[\^Z^_cacc\\]j`[ZZTakb^bc_nUi^cYRf`^b`XYhcab`\]cV\Z^k^Y\[be\ad\`YV^a]^Xa]Zf_XlV^Y`]e`NYQXe\blf][enaY]\]gTZdnaX\eYT`nf^QZWdY`a\]^]Zab[b`]^d_W]\r^iX_`_m^X[R^a@]Zj\UeYdgcU`kWXaTcj[gaaI[Wk\XH_d[hhk]^]\vQWUgcj\Z^uu[Xa_`d\p\e]fWbYLB`]VfT\^S_\W]gHcbfSejiQWVTU[TY^`O\Yd\[RM[ieaVdfSbPeu{_U^ci[_af_wVeZgg\WgZ^ll^lajkabXZ\h`hejkVaW]YbS\dRgad^d^^Z]e^V^_b_^lccW`j`iPqhkU]^S]j[WeOUZ^^^ae[d\\[Z`Yc\nSU[[]U_RX]Vab[TnXZadjeaUdk\Tcn\]s_b_Y^h^]]Taj\bm_g`be`Y^Z\cU`fT^`_\dg]^d[Y^O\b]`a\^SY]g[P`c]W_^e]ZXMXWb\UbXdaKaYcf^bh[ha_ZSecefaWWdfd_\cL]WZ]bWfh__bh\hecXZ]U_b]_Pfbf^bm\`[\fa[P[chfbRZg]]]`aa^aVr^aC[\[_[e\bX]\fgadbcdbW[]bhLZZ`Q\hhjir_^dJadYeXR]VZ`b|a^_Yh_d^Xfd^cdO^Za`fZTf[`YTaae]TmYj^`]_sYYWd_]aadY`Y^`[SdXePb\]`_a^eZ^]abYZR_aZc^P[T][X`^Yja]]Yb_[\Y^ZcZW]`ff_[[w^f`af[]aZ]Wd\_Yj^[cl^hN]]_cgZZdk]ddY`^_d\^akUa\^`fVUpuYphf_g\cOY_qbfOdgZW]yTepYVs`]ZeaE}Cf\boqnNdhdlLdMeLgxf_gG[j_^^fajkX\^ceI`dZ`FSWL\__Kv\eXo=u_]ZlhgesLKbfhWDU^eXfizY/W_ErdXbgcVFSIqc>VUc\XUY[\`HV`a\ck]no[UM]]l[SfVbUZ[cdVdTT_^nf\aabgJ^\VahQeVUVMAP_nmZXqg^[Sd[UaPIcYrPP]caLZfMc\VaYZ`]\k\[\hS\Xbn^ZXcb[`bTOUd\[ebioQUicbXcYi^VfZecelVUjT\ScVb`c[XSbZOZ\]TZZ_`YhetW^RX\Y_W_g]^ZieZVeZ\[cYbY\eh`g]_pZ[bna`bX`ZK^e_X]Pl[e\zjgbccccc`iWla^`n[Wb^[U\a]_bf_`fpi_mR\ZQQWOJeaYb`hZ]ZcZc]W^^_edd[]W\grekg`ZUUqcZUc[]TbWVXgQXfeX_Z]^VfM{_c\f`ei]SXfbU\[d_\WbXead^m``Xg^Z\egaU]XVXSed`^dia[a`Y\`aaZse`]b_^_eX^ca\]aSa_kXaY_a]\e[]a[c_a_T^`Y_`dg]^^e_`g__hdR`ShUUd]^^iYXfVb[TWcmabjcffZ\`^[g`Z[Qc`c^`[oTdcSa\X[^]j]\^Tb\`xQ`W_cd^T]]]dRW[\gfUadcdV[\o]\\q`EabpY]a^]jUb_TRzZb\g]ebbRRUcbYZg_m\Mehp]_o]p[XTd\[]]V[bYT`dYjccN_cWRZecV[u]dXcmWed]XcWeY^nrnXXd^MZfdY^lZmejUTcmd`]XU[caaqadT\aYdXYVd~^c^abdZTVYfa^MeYh\Z^Uf`i`ceXce]U_bQgYTX[ae`e^`j_dac^VV_YW]Whebce`PYy\dbh`_bU]`^Zf`cU[f\TX\iZcXTTSYm_O[__Zkdef`VXei`\`ij_[_^ZaeY^UcgZ`WVbf`Zl^]eQlOeiqc^]_ZVWifKeM[f]erYoCmpRRfceW_aNVaV]OyqeVbB`dRVXbdgiRYhSRZ[`hS_Xyi]gnia`b&iOl}eh\e`q@aeejPvae_k0_E`dL`dcqiRgxNPS`eMlibk8cl`wZR[dW]?mTRTgky\Z^Ifj1lcf_b]bSVXdcab_Vbdd`Y_^abd^^efb]RcibS[_maX^cad[Ob]bV[mTim^\c_b\U`bma`kV^fccfbV]a`l^dgaXZP[q]^^`Wgcd\][c`U]Tpeb__fTY\O^Xod__efaai[cWaY`bk[[bk[eXfYohccdaeSdZ\_XTaa\U\W]QicSomZejcb[eec]d_`\bV]\``K`]]`]lb]Y_^^^_SU^nfW^g]k]da`^]`X_`n[l]qgXVXgW`eV[dX\[[_sbaa]`V]fZebYU[dj^`fch_[hX\\\[[\g]ei^bmgVX\eZ\hb[\j\daQ]^_`_^`ebp`h_ee^k``e\[a_`YPX^jVgmZ_U^``aS]^_ZS^`]ckSWPYjbbVcjdaQZcZ`]\ld`\b]XV]ah\bei[cX\aYYkah[Wl]gja`g]Sch`dTPbgQ[c][`^a_Xhe`cd^]]ZPg`c\Xhfba`b\j^^gSeQ^_aeY]ncYj\e_gfgUZM^_]edW\Y]m^VdT_cpa`]db]KW[j]a_TfVgmZaFe[W[UYYH`YrkWco`]vYiX\WfRPSdeX]`cMl_bZdNUUkfpXVd`[ee^\fiX`MadmbcaZr_dadD__bV[_XVqJeiVbkQmba]mLVTcl]_oe^`eZTd]ejKWrzfm]Z`[VXhpKRjO_aZG^X^^NekY_]U[`^_d\]f\ia]bVf\eRfZj`b`e`jMlwaoULfbij_dc\Vc`TefoXjP`a__VVSEcPqauKZcchSXWeuNhUcVf_YffhgT[pW`b^TWT]iVck\Q[d`ldk`RVXdYd\O]bbabP^efag_imR[Oqf\UaU`JYSXbUbicg[bdAZ]Z_hZXd\^eaZk_d^V`ZWeZk`h_bgiZTkZeIog`lYPkZ^nTR\jl`XcbYXYgW__adi[eW[eZZOaZ\Y^fZTX[UOkYcWbRcabZbmY^uS_\mj^aZVZVYd^Jc_tOb[KdZaeRc[d_V_STbiYe^dkbh^Zc]WNZbZXlXTWiZad`be[sZYXj\Vm[``ZaXdbqTaj_hliXlodVteUteadZhchJa[c^VdSqwMbi^b]9_nk`X\gTrZ]b_j[^T[\oK[`[dWhS`]fTV]g/[VR[XlqYllf]`n]h_dY[w\dYYj`Ut\VZ[ds`b_idc_W_XicXVaXXcbeS_^\ja\_aV^eaa^OQhZWSU[^`X][[[^`[[k_]XYba[_dcc]UbfVjVbX]`]W\_Th[X][aX_eVU^\kZ]aXVZ`\\ldi_Z[`Z`SfXZaVdcl^]ZP`bgaa\af^U\Vlbe[fehZ]__Teb`alpYQ`^en\[Zg\aWcY`Y][wX]gbP^_W_TZXc^\`]]W`d_`_ceWW``dRf[ds_XebeOb_R_]a]a^j^W`[dfV^dWMYY`aL\[cR_bmaV^g^Yejalc]fX_[cUZaWrOlWXgbTXg^[nU`Zca[a]_XY]mWab\daaXeYZS]Wah[lWWX\[X_RZh]^b\ajecr\ggda^XZbhbkg__b`\`V[a\]PV^SY][hXX\dT\dcbU]Y_i`WO]\[f`d_aeZagZc^\g_`aa^Yb^]bg\Z\Yc\b^ZR\a\`cYX_X^Xm\``Xd\Y_\iUd^^]]fedY_eXSlfj\``_[Y\ib`_f]X`aeQ[YS[^db`[bmT^_dcX^claj`Te_fZ\Xde`agZ^ja[Lbjk_]d]`dc]_ZbO]_a\YfhkXWcf[jbYeeY_^^`Z^]\`a]\f\add[a]eYhZV^Y[]V\d^\]b]_[[aci_^k\\\]O[bh_XZd\cfdZ^f^pgi[`Yfe]WUbcdZdj^gfe^ZcW`b^Xa]e[H]UsagWR\SWeUXPqd`c_q\b`Y_`eYJc_Z`bG]nRSMuWb_cUZdWgahL`hgRYiSRZ\XciIsjZaiPkWfhnWT^|\hWh{UelVlhNShdbN`JTU]cLWa\zbParUwb]Tl[U_ZgVn]]a^^W]eoUyZN[ndg\YWbbg^\YejaZYQ_Wibb\Ld^ZcX\d`Zg_^\]ch]^^ZY\jY]eWVTVZ\Pqfg[b``\ZWj_ZVYfadgaaQaafZV[Zj^_]WgRaVZ__Urfa]^a_[XcViRiSc]bqNXh`f[Z]PYkcY`SNcXjhiVV]iXdh_ee\Z_^PUUhaYh_lbal[a\[P]^Zpc[deQk]PVl\d]YgNabeLf\i\g]VY[hYama]jee`^fd`dVa`VZ^fZYhTQZT`^V^KdpYfXDjif[abTThuS_^^W\Jbhg``n[dn`gcSiXZY\lf[bZcq^VUWkg[V^Tg[Z_Oocb[VnTm_Z`MZfXV^sYXj]bN^WYRXNbgjUm]^aZ]\\hZh\R]XT`Z[`]age[\a[b`]W`fd]P\n[Y_OgicXZ\[]Z]WcZWZg`[[cU]`]^f^Z`VU\XcbUUd\ceeVp_]ScZ]^eehU[^\ba[`b\Y^`\lX^^SjfamZcXeXR^Ym_fZ`[XfW\[U__i_k]Z^jap[d]^a^\\jUQ[Qy`RXOcjj~V^YgV_cT[`_]J\[ZfqmfXbcTaYh\^IaKVbfmQfbZ`iWcTLey]`NbWfYe_XX^[Y]VFhbR\cSdZlbd\lSSfSaZVXV][d_RcX^Pce`Z`]cURrYeadlg_ScY\PfjQnnZ`[]`RPgfXjhcg`dV\VdkgVW]Z`T\bc\r[R_PVYYW^jY_e_c\_Pcbo\bU]^]_OYaid`baX]Pd]WiW[_RY`fP\c`]j\bUbW`yVMR\a^^ZeO_c^W]\y]\q[^pWdQeaacf^]_i[gqdYYf[TV\c_fb`hSqbaZ^Y]m]W_cad[_`Y\u^``W^NaNRnYp_\aWadb`_YU`Zdp\XU\gcd__\``^]c`ig[e]bjYWhe^Z[`a`_ZcQcd_`k^TPbj]dRjY^iM\Q[UQf\kd\`]Zd[eiecflk]hZ\_c[\Y]b\Y[Z`^ZZcb`bd]UKdXgX_jYOfZa\RbRsbXbaaXYZXgdg[\^ib_U_[XhZ\]cf_dVjQ`iXch_\Z`]e[dfU[Tj^XaXZ^_Dc`dp}gO\]dQnncOXJ~[lg]`\YPZnYlVThjvrpo`L_\kiN`Zldbbgg[\_jf`M`gRb_Ee]j`[XnwfaWY{e\_^YcY`^]f_PZcBXcSSn``SgW`SauM^CiI\beaj[_P_iZWvaUSG^Y[bGWSXcWSb]V`gZdY^TcYbbbhb^[^H_VaZd]ogZd^f`S]cle^\[e[i[ecXd]]i`O`TXh]^Nd`XcSSf`^ZfRVa^`mbrca`lU]OXla\Zad]ZXj^W`[`W]u^dQ`a]Vg\b^gUXb`S\eZ_iXZ[]aec][VWc^_[Z^_VgZUJUacXcNQRVcVa^LXW\;=p}OcYSSZYb^`h_P_^^e^gRXaYJ_]mbZ_dpLdOXi^`U`pJeVfc^aTuSW[GeSXWPq[gNiRYcUae?[]Waa]chKT_[]h\bauaFPb`}kdJU]ZfL\Jf]Rale`nfh_Q\dSfAl\V__aRTbbeY]VYeSlgVdU`b_Z^X`__`\Z]`e`HhadbkhQbabqdOqZf\VO[bW^\_UcXcW\^Pd`da_VRceh]]YW[PT_cbYkq\YsS`^`b\f\]\XTX[aMUkSc`_cdZPfW]YNoY\afYWhbWei^Wd{^gbijd[m_gUZSfQlVob^b^Y^]kcoXffW>YgY`g]bS]aZY^ha^ZYgbcbjWaRcdJYe\MZ_Y`WX``adRXh^YeYV]X_WEQ]`d_`tcabO`ZCfR[\R[]W[P\dfYVij]ffVcaZc]`cU`^bbch^_Yh]\X]|\\g[Q[g\[_eiZa_[`Wc\-_nX^`[]kma^^]MOi^e`ecbaM[`\dZ^`fZe_Ybpf_`gfXZX^hiR_c[b_hbeXk_geb[a^gk`_ZkYeb[\_`aY_ecV^bgZ`p\a]VN\X`bOUg][]if[[_YekZbb`R_fYgWb]cYdne_S`jVhYcfmb\H]Ydf[X`chl_hS``]cV__aUVaea_`dgegaadcac\^]hZWeba`e\P\[\_B``ZZt`YW_Ye[ckap^acp_hc\\]aaTeU]bWZ^bmY[ib]W`F^fcY\ViWep[iYWUW^^Y_^bek]_]ZaXhZcV_]m]`]ddanaT`bc[k[_j`abcifWgeb`d]Z`\^b\_^V\YbgR][`_daVXfrY[dVddlbb[\YawaY_we\f[\b_d^[X\a[[mcgOXeaV\iZch[f\YXfXZbdZ[``d_bg_e`Tcbd`\bU]cc]WTZc_YbU_\eg`[a\T[XebYeQYWdj^cZe^NVm\Y_^[de`mabaUak[c[``i]ebe\lTgc_c]_]XaZhd[\Y[e\bbeW]W`\YbO`bV_T_ZQ_abU]\^b[LmT]Z\eUUcF\Y^UbeibnbT^`^UcYlYe`X[ec[ga`VZn\W[fYfW[hZ\ZaYcZ_O]`[\[UNf`YbEj[^dcc`\a]FUYZbaa`]aaTZb__\jggbXZUi`fc`]eaPbn_hXhYb`[|maTbj_ccU\j^aPWk`T_bPgWZnXbaivQgUvWPXZ\N_tm_h`PsYmFWVcqI^afTaU`[]Tdpn``Sk]^S^f`X^]ncTYkZd^]`ObZhlhg[efcDX_s[WXRZb\cbbugVZ^VVX_\kn\c\pRe\`RWZ_TMdTZj_X]TdT\UYUfY\bh`bWe_cVY\\Yddca\Mie[[gaaWcWajZYWhddaYW_sZQbZ]dYUVeha]j\ac[Rd^bbdd]mmlUW]\_`R``Y\[TbVlad`^WThjV[dea]ZYQSZgRdZ^_dYbY_S^Z][Wf`]`[Za`hc`c]Z_eZ`\cddaY\UbabWaZ^Y`]fh]``[i\a]^ea[`[VfhW`d_\l`_ba\a_``fc]W`b][e^^`aa^dea`b]`[c\lb]VP]be`]_^_]ia`b^^c_Y_Ze^i\eaac^ad[caWg]]fZd\\e[ab][]`Zi^cc_d]`Z\_^Zbgad`\]e_baad`QaP]qa\acihb^Wdf[\Y^[\YYaaZ`c`Xd`Z`b[Wab_`lg_b]b[[[g^XaSf_a\da__kfZc]Ucef^W\kerR^YX_]^i]dZb]b]\][fVW]ga^]fVja]]^cc_\[cefd[^Z[dbe\V`cg_h`_\a]]^[`\\_X_[\_\bm]fW\YXZe_ZdZdboYYd\eS`Vf[aXZe[fU^j_]Wg\Y`]gV^UV[Tf_ZZa_lZZXjYISdd_^_X^QqZ^`QY\^i\R[h]ch_P[`dWW\OeWk_gi\bcWbi^Z[ciefT[kX]Y]i_ohM_QaZZ[_pZYd`k\^^^dZc\Z`^\c_\eWcdbi`cpYbZdh`mn`JbS]Zekf^WblWW]]afb^c`_]^_dfaWh`Wmb^YZ_^dVTV]\\`V]_bkg^feLXVmVT^V`^cmg_VZ`]]_pQ_ogWcqX_h[WUWYRZTdRjU``i[zakj`_^U^X_b[a^SZv\dfX]TbQVc`i\ZWaXW[RY^\_miccWcd^cTVa^[`^ba`f[K]jXbTZ_aSVR]^bif^Wcan_\jcWXWTXZWGg[eHc_W^`\n[c[nZ_LU{TQ_^]ccig_cgVUdZWfZh[c_`sY\oadSduefij`a\ca[UcVc_ZdncZ_]hU[Za^\Z\]UYqO_d\mJbQ[aVSbljfgWbcX[gPUZV`U_jWeQY[alf_U]bbR]]i_`ae_i]^Zfa[a][gPjdRVe\k`eW^\M\i^fd_b\\`QV^kf\`VWgd\cWXiad`kYnb[\N\EQWZddVadccm]aoV\Xa\]]ZXSUa[bXi^bbbbbWb_V\`_cT[eV[rbaf`hka_XZ\dT\Uajecc^ZUj[lig[]U`dc\p`IXab]Ud]c`aWXbcd\d`Haja_Mc\`QmhTb\ZWr\^j`JjPas\b`bx\[f^d]^\a_VZYV\ak[Rm\\d^Y[\_^^j`^_qXh^Wl[\fTe^[Zc]jbeeRV^^p`bhZXVa`dWZ`iYa^[`gn^XYlZR`UKb_TVZ_eWVSfkYdWXYfcWaea[V_dZa_^dnh_adXle`^`\[`laah_PSd_fZc]][^aV_Y`cg]`_[W]VXc`Xcg_PUqe^_a`\Z`\]aW[[_RYZTfZdYY[^_aZckn]]]Ufc^sb_^W`ck]XZajYfceUjXaaY^Zh_Z_g]b]b_Y\g_S`eb]`n[WQ_AS]_]\gWk_[Ne`[aaZ]Sf^^[yOaT^_O]bXGbjhISW^_aWgmdI]D^`OVSf\Z`b_cVaTVDdbU^Wa_awkoYScQZgSnYI`hWs^pQa[[m`\a5wW`ga\Oabfm[fadSq`dg[X[_ZOP`TMf_\WY[ZUg`]\RZgec^baW[_Xr[aXI_\gV_if_\gd[`bbc`X^Q_e`c[hX[\]O]``X[ZUn\]bd`[r_UhShWXdW\]rYZ\YbieaUbZ_]]\YXZPpgVXS`\e^]g`U^TXcgW^`cp[ZiWfWVY_`e[MY^[W_TaZ]QWYhpZ\sJXOYPW[adeeR^T]c]`UYGUbkXtkWfcXcbX[Wcb_enRi_heV]\NRwTe^f^^aVWbD[]ZSdndhYC`YgViUkgca`bbTOO\gWnomTNnId\ZhS_`^lsg[kS}j\jZhUXUcU_^LfTUexj[\Yned]Rdc[gsJX}bUc]ccbtNwKZ_f[g[ZXi]XSrJli`f`[Ta\U``[n[d`dacSsR]_Y`[YjUUFXtX]hg\`VSl[[af\]og_]behff^WYf`TR\aW`Z`_[R`cpR\WWT[gTRjeZbPijYe`^fg_ed[`^X[gZeVZF^rihcXb[\aca\cQ]aaa`g\X_[QS^Zim]N^`fP_bVcZnEQ_Zca[va`]\WZcf[n^c[P}_g_Yg`_mcESAI_VV[R_aifbb`eWQddidhbGe\d[bXda^dRWf[Wa\`_F_ajT[[^[`da^Pabvc^X\ae[[Wd\[aP_`Pb_biR]`efUMl]kd`YpURad^PT\Ja_eeUXmWf[_gfZg_aa]]\YXP_`i[\bco`e[S_bT[Zf_c[]`SfcX_Sae^_U_V_aI\YqaWgofW^]dYNFf^VPef]f^dGf_b\\OTrTCQ^S\\i\kVZdn`\hfkk]jkbhW`bhU\\^Y\UMekIaePcWapb^VqfM`amcc[Sh\Yen`UegXcnV````[cYfink[qZO`tcfHcKUeZo\aX_ZPhe`^`^Y]e]eTf_dYl`\dkYoseL]`_ZU\r_Pm]TH^lheYSk\nb`qZ[\TZYcLBWUbT^N\^F`cdB^[f^]HgGVilbXW`V_gaa_NT`_^aS{kd`[ZX`mXM\g_Y_ffQXSH`i[PadofXck^SV[X]i[ce_`]V{uOacacjh[aT\uXleAsmNX_Nftfdj[1V]nXj]]eNNUBRdCJ`[]OmSgUfeb|p]bYRjS`dIogYWnbxXCOXckWa`kYc]GNg_NL_XdW_aWRFU.^ZW_V\`\__VET^_icJYdaheVW`^^acYcfXceZbaacSdZa`m_Z``aYV\SabcdU[ObeUXfc`def]\[dc^cZV^Og`Ob[a^fSUZeWja^kf_]Mb`XXdVKadhZUbsU`jT[`[[^gR`X[^dd[Vn`b_R]QkSgP]hY\h{cY\`ee`i]ra^^_]W]b`fTb_hm[cYcb_^gW_eY\\c`dR\dakag_\d[Ug]^pUQc`b]ZZ\Z`\Y_i^[X_Z]Z_\a`V[`f_g\cZYi]j`U]Vi`\cZd\Zd_^l\d^de[a`a[ZXRdbacbr][]dci\\[[abc^bbVU[_i^]b`[^VX\^~g`_a^ZaN[jeVNZdhZYQ^W`adbdh^Z`^ccVW`ViSb_@mTicfca]]\\c`f]^rY^]qb]b[T]h[ekSZWS\bfTZe[Y_mcrQ]blgJd^bl\ZbT\faYcbS`maa\TelUafV^n[YfZ``Wbc`WbjNhjcUSU^gRS[SbeWaRijZ_aR`]]_c`Sa`]^Hfb^`[Xf`\\ca`_beS^Ye[\f]_b_^_e[aggSO\ee\`]YYadbg^^Wff_m_ae[_PcR[\ZaU[`ab[j_bf`^UWL^a^h^Hec```Xdj]`XbfVO][__ck`_b\cfjX[c\Zgfg\aineQ_Hfnb[\Zb]`S]\cjdZ[`Y[_[dYUl_W]^d[^gXh\l^[\VZTWh\Y_`Nde_cZ]\m\nd`Sejq[WfY`_go[_STafd]Zb]~ZYaqTJ\^U`gQ_bgUSk`fRnO\dgOqYY\fV_`Qboe`iZ_`X^Zehlib]Y]_]R[h^U_cXew\d`c_T^f_af`bh_mZaT^V\]T]eUaTn]\_\gbRfbjc^eb]^a^`a^Z_a^iaY[hffZa`_]V[hb_dba[Wc^d`UebXge`[d]Z\[\Z]e]YcqcfYj^XcZae]ghjR[Y[`[hX`[]Wd]jYhc[bYV^]d^\Ra`ZWdbbZY\cb[g]_hVXZ_[f[[_^bcaa^dUZ]\`]gbo]^`Vq_U`bQU[\Q_Zd[\[ddWfc`]]ZV^hLea6ajek[{W\R[e]ca^`dcmbrJbqYZ\U^qecaqX[^Sc_XZbUidlHYV[jdeRggZ`cfW[\\aXVZ_OSagXZYcch^VTq_eaYkOejIceQ_jcURf_jQa[aV_XZ[emhXiOj_jOU_uZ^`\b]dqbdcVdZi_g[efZD]qWN\Lk}oeZ_ie^_iEW\^\HVtgRbf_bbRaTV\NViqVm_QZeOhpWUaTJdjZTeP]U_WgIg`cpVXi^`R`mo[Se[bsIrTPdz[j]ULZkbgiLNLVd^o_a]_EaqZeRYG\fR~_`Ik2Y]fWecVV_PjfZSgOegMcae_edda]bcZ]Zj`^OX\ZWY[bXR`\kXab^W][]QPechg``grTd]X^Zm_[_aV`ijdg_as^LTkl^b\gbdgh[grc_aVSldeu]VbIV\LhgYc]efcapaW^_WabeJa\S_g^Pe]bc[soghAjc[`J`XJ]azidb`^OKYWdhUYa_[Zf\XW__X_^hhbfi\ldn^e`YYaZmd`Vbb\aQrUwcTe]_^L_``^[Qb\cfa\T[\XYh\V_Pj\e`_Yb`j`_afgZ\^]faZejibVYTKW\WVW[mXk]cbd]g^Qfb_Qe]VQcUXjjUccTP\]^[W\O^^Y[ba^cae`Zg[deTei\ca\k_lbZ_YZ[Y`e[Vb]][]ZZSJm\[WXdS_Xie_Zb\g^b]hf^Y_bba^]ica^ga]k^bYacajn[^oZVP]f[sWo]Uo_e_]YcfUZfgg`ga`\]c_Y`b]\eYn`aSbi_WVca_[_bbQ^\dbbZ^RnY^]]^_LHU^RdgbjkeWHjPdkc\]Xbbf\O^Ra_w\fpe_o]ScpXTXacoKjgfZkd`lYEXiItX]UWmjKPY]KuaVX^]_`Wy]QddXS_^PbSVK]eaQ`ghkIVhXmNMmNW_e\`ZsdTga?VSlibOgc^W`S_edbQjhik^_dZM=ZZQO^efcaZRfd\h_c[c`]b`d\YX]fZgY`_`n_nZ``bf\^jj_[de_aT__baV_YZ\c]ja`lZ[\_bf^Ve]U_blabd^Y]ZTNWbcg[WWZT^[`\_a[lVadY`ddV_IoRUgT\^]a`\`dU\\[\aeZc^daa\hjg_`W]bZ_]iUT`U^`a`UY`QYWmh\Z\xjfkdcX`i[hSTTggiWNXPO^dYei\QUgH_adJd]gTcihaWMsagwNRWdWeSbYdcRgXp^Ue]`nVa[cU\Xh[N`ZYMpkR`[ZU]_\Q_YnbiV`dbZ_Zi[XpkIpRgc]WdfXdepWgeP[cWU[\YhbXWyjl]NYXkZccV`c`[]]_`o[Xai_`[_Z_Wh_\QWbeed_bYVd`n]KfX_Uem_W^cbe[]]ZfVZbahmP\V[_]l`ZkTa`]a_XMt``_IP_`cl[ZVYbYWhY]sbn]^`]d\hQd]X^``YdfV[be[aX^`_KZ[bm^gVN[[fOb^WdR_d`c^iQd^`c]Y^fabeW]`f\h^j]_^f]Yg__`VjhdUc_Z`\ge`_QcZa]aYbXba``Vc[]aXPn]d`X][^ZbYa[eY_[gY\ZcdZ]bTd\`c_YWbWb^Xce^iZeYba][_^^bab`cUbg[[^]`Xjaba[]][XZa[[[bca\_]a]_d^acal]Utlc_fdN^YpfWigb_Qb^_Y[_a`_V_URkh`]\jkaV_`/Ze]O\xdaRhKYPN\\dSc`aVZ5^hTHnaX[\`ViegWIKgY^kF]\hUdFVcXKnhuij^YaokV_hT}]V\O`rY`^wVeRaO`eOf\Z[ff_^VbeX`fYYYbXO`Ueb`_VkadlXS_ZT]X`dV[h\`qZMdifYX[b]k`d]\_`\SX[[bYZZ`ViQZ[[fhde_Yk^fV`[UX[cpz\kg`g]Yc^cb]_`QZv^dTdVM[mRQa\tdf[MS`lhbid^SNsWZTPaet\_a__@^e`]UmY^Va^^OmeZ]ciefbTYbWSbYUQ\eUVTcK\gc_^baZ]g_`W`a_YZ__j_egiwd^gZS_aOYPdMb```iSjZfcX_PdSnYNalchdUY`P\mackl_aLLRUhV\Yef\`ZigZ\Sacw\\a\[bcYi`TUURmQfYUdUaYeO_ULaTjb[YW`Y[R_UlddX_jaZe[r\]W`fbTPe]VaXh[lq[ZIW^ccY^\aZcY^qUb`^eYRWS`X^efdZf[ge]YdZfea][SVV`^nQSlZ_jYZQd\dfVRd`m]o`^`idZ`^_aoXa[SUSXg^kb\Uml_SZ^ZYXa[^d9]LgVZckggeeam\\ZG\acj_a[YdbpZhXb[cVj^`cW[^WbXf[[RUYlX\_V^`V\Za_^c_^^fjTmiY^\d`VY`elY^b`WadaXO]dcYY`ZKfW_Y\YaFoegX\i`]k``g_e]XVZ[eiRg_Wo\``eRZYa`VaVb`hkhjQfc`SR[]^XXZdk^YVeYQrVadkdU\dfXQaL^UX_cJVdR`jZ\X`]QYfY]^_]aXeUVY\oUaeeQaZgWW_W\^_nXbcWWNbhXf_hVaN]I`We`V[daada`fSc_eYaZ^[Ye]^_gf\\]f]WmPVc[XQda_^be\f]]gVYj[XWYe]^[`[d]b__YWaafZZ^\Z_ZWj][fVZddaeYc\hf_i_[X[]Vjmg]uYol[gqnUTr[fX`da[bcjLTjacaQ\WLb][UlWZW[eEcOoAiac_^eKaeo;aW\[O\dCbVcUW_Sol\VNsiXbU\\`\VoVChjW_`[_dZ\cdZXgcRwTSbidecZWj_bkdIhU^jY]Xl]gflXW]gXLeSXg_iI_`\zkZb`[h\f\[`U\Vc[cdZ`_UR`aYa^]_dl^WbZ]fXdaNo[k][abaZcfTrXUkPa_VhZW]Y\a]XfSmXdac_RZ[Z[ZZiqVeNjb^SdbZf_[YtO[[^OUSTPTX[TO^Z]b^b]lUXU]\ZVZbScX^W\cf```P]WY^OXWRdY]\^_Y``^\[WU^]eeU[cUacQe\d_\a]dX\\`^`WZ_]_lddYi_]ddQ[^abaW^]XZgZ^_Y_Vfdddf]e_V_Z_\ajeVli_^maTa^ekWQXkmbgOZdgfZXj]ccdjaVOY`[^gRadb]\[Te^ighe`_\a]VfX^_whd`V`j^ZJic`[Z[bb\dYZ\_eUb[\^j`R\aMc`X^b__UZV[\bi[ehcVd_e_SfofFebd``___a\[d^^j`ae[\cckZVc^_bZaRc_Yfer]aZccRb``cdl\^[taVb^Sec[Ycb^P[Zd[^}ZY[eeccV]^a^e_ah`qX\a]Q]ma^_fbegaYd\vZ]XQYWTL[eaeeRcPEZc_dkhZda[d]mWYY^[[HOk_c\oeY[qINpemcdQ]dcgr_`[STbcnXbdbbSClN[\Zb`dfsC]Ybd\Zc_jYdQV^uNVa\^eZZe[^m[ZVaJP\^jG`^TSchya`zdb\Zo^[hWUcjJWadW\\ZcdUzeU_TcXWZ_\d[We\\YjW]o`bfg[bb^VZUUs][EOY^bj]^cPTPahiSa_iUaobkXL[_][GR\]VPXZYfdSMXkW`]Rlc_bbZUR]XQXXOa`bbZjZiZTPcUX[dko]gf]R]msZPW\X^bgF\[Yic|O__e^cZYcY_UVd\`V^bNk`Rdf[cX]YfX]`YpScTZbcY__a\c[[`W]Y_h`eUfQY`VSjYh[]YSV]ca^\V_lVPcXdS`a`_wVXaYW\b\d[Yh``VdObd]a_hi`di_QcW|\_a^e\b\c_Yah_`]adWf_X\]]XbZgi\|OdmbZj_pe[iZUZmp^bl\aSVb\^_j\VkU\eW\XY\dRXV]W^U[_]lRcYi^R^bbabeQiaXeYhZl^sUoV^dYRV[[VJia_mRY_deO\_bfRO`ZUX_qX`bl^Y[V^GZWfi^e_fjcl`\y_^PLYc]bSfZolbQgae`dV_[SZP]_dWXbe\`Vjababb^^g`^pjYY[_QXX`]akc_]]aX[W^][[^cefgWSXa`gdT`Wb^_^OSZMT_T_pXTVmpZWgoX`bgai^f_d]]qidhY[b_X`d`e_VfafVedf`Teq_YiUaaWfi\]o`c[c_P__jWW[efcEfcXXYXf[\^b\ljc^c[_XTgUemdO`\e\cccbTY^c_[e^f_h]fYeWfiUhaUbXbbgdcW_eeXWiUc_S^^[Yba]W_X[WacjZU`d[`haXe`hd\aY_TZYV^Wbk_[e`]^l^a[ledd]ceZT^]^Z\b[db^gXY`qXh\iZjcXZWW^^aYc_Z[bT]ZW_l\]b^i_]_W^eeZa_^Unah_b\____[hcVfT\bWT[YXip[`[^XS`T[_Z[Pc`_^`WfaT`bf_^XcbWTPe^`^iadeg[ebZNiRZ[j]ajf^W]R[c]`Z\VPfT_YU_Uc_Tab_eY]YXY[\f^gfdeQb\YZ^XjSUq`^^ajXbUUNhNg_Ycqcfe\`]^df\Zb]_`eDXcdoebbbbZ[[jZgyc[iE\`ZSiUZh]]Za`Y[V`_^VpeUhcnYe`le`_ci`Z\PapPVW^U]VYdde[YWceil`dZXbpe`clefLaD`Yj]xejmNkb\[i__XZfehiOd^qb[Zt]Sfc`goiVXckRd^ZeZV[`Yi`ZUgaSldXiYQ\aZJcjUT[ZX_]]ZcYjfW^`aR`b_YUc[VdcXkWYZ^YT`b_YZUY_bbdaZ_bfj^]ne]fYbcc^]a\Um]`af^eZb_WSbfd_YSaXta\WaT\aXcYb[aZedX__bef`Y`\`VVf[]^h[b^^rdgml^b_ebc\]WQfUbgiVj^TcdZjYWj]eZdu[g^]^PcJQb`caaQahf]h_ZeU_Sa`\d^SXl[]VeQ_Xe\Od[\efYgOZbWenVm^[dMhZKbUTi\d]N\^Zc[[`YW]N`X`V_\`_`Z`N`Wgd[eR^adUNee`WAjaaYVXh]h`FVaV^RUbhV^\O^]Y=bfTO`bWjhcT^]KTZTr[`Wacfj^YYb[d`^\YX[^b^b^dd]_dmUcl_Wf]W\^\`Ue]T[`gb[g[_^aTaf[Z`\T^\YhP_YXUVkYchaiei^_acgb^pZYZ_]__[b\b`b]]YdW^faj\`ZSW]^Zde^fa[rVagk_Wsbnd^]QaXeh`hT]gaeiTbaacPZ[jdiso`aZU__Z_d_c[]`Ze_ddk_]`]eXec^_cdP^[d][cVcUWb`g]PS\[[_Ua`\`P`bY]Panc[BaYSg^`bga\_Sj[gh^UZ^b_Y\\_b]Zl]PaX`NbfWkN`j_b\do\`i_q`_ebSa[]`Xad\]X^g[ZYd\Z[Z\XaQf\`uX`]ae[]Zcd^bYe`baabV]_ZXi^Z`^[^XcV\Zd^][]aRbe__Yb\[_dicX_a_`c_X_[Re[X]d[agZ\caY^bcX`j]jq_Wa]\`Sa[hZka\`\ke[ea`_a_bh\Z``]W\_Z]icbdc`_`X^_U\\Z^WVibebb]bhaeZYv[[bZ]YYR[]\`aL]d\`aZ\^hbc_[afd^be_dRY`akYa_hebeNMYX\^X[e]Rcl^c\XV[\ndbfd\kOdQT^Z`gQhZ[X_cTab`ZZQ\fZ_dQ\^iXWYskhli^f\^SmWYdfdf^]e^Sf]ebhYcm`b^Ycg_YuY\fT]j`[[nZYm[[l_Ze[]`\V\_dQ`V^`X]`bMZ`dciP_db^][MgVWS\^MhXQ\naZSP[QfikaVQ`b`^]pbY^rS`jbeVf_`i\^UddgYeKXjaR}abUSZhpbfg^dSd`YfdaM_s]bP\b^g`WiWS[[`[]_Q`[Y[WZTn`YYPb\ZUc_QW_c\o]aU]d\]aV_aah]bd`gX`[\]`W^UgZQdaeWdbX^\[bZZU]Zfc\[S\_`c^d`]^\aeU[]aS[YceiVabXb\\ehUZWg]cdfd\][``aY^c`f[XdY[`\]eb[_]ib`eTfefYbbX`][[[b]fXchZa]gbN`b[Y__dYid`k`ca`d`bmXV_bYYa^Xc^kgMWcZW`{W[O^``_gVNi``pXphX^`\a]Geaj[JUT]NVkmUp^_XLaWRbh^e9a[eaQgnK\[wMcOW\M__c[`^dYilYVfcdJklnXi\gbz[_LaTfk^X`^HT[YVIVal`dbn_gYfenlYW@ekeic]`qqaP]WqYSe[ZbeiXW``blfehVb\`cZ]\\]ZaaX[a[bXQXYbQfbYbXca^[\bdY_XcZ_`Q`_dde\[m[`fag_bYYg^X\\eW_hbeeZdX`^cYe^`ZjVVYY`Yeg]ZdnSaXW\\bca[Zbc\Sc^_]^K^\hb^_]R^_dMca^gZX]^aiW`ocY\[X^]dW_]]g]h^Zb[^eac]Y`Qde_[aaa\f_[d\a_dbj_dl[_WbY_]_ea\\Y[a^^Re_[[\Yjc___`b[`]fZ]]ZcY^Zi`c^_j^]bV^cQ_chZbd]e__\Nc_a^_]^Wbhdj\_Ga\Yda\ZQW```b^^[d`Z[b{Yvg`e^ba`bi_QihfKZ`\caddPX^cb^[]WfeUdfZ`bggrTW_Vedf\fQXajccVMYRhUkWO]f_QYbfoPbieUfV\Y`Nchfqa^\XcgXh[PUidS[oV_U__^Nbo[`nci]bY^T[^eUdikfZZpWXZ_W^Kn_eF\Z^pgXVZjWWYM^[bSbcf_[\Pld\fabb_eZik[_]e^jYqe_]eMd[Xia_b]f`YZVdbgbZ]Ti`gc`daZ^[T_n]cYeaaf`VTV`\[gXj_]bWpd[[c\hhXZ]\b^c`e`u^kihaZ\bbh]d]^`l^ajaPcYZdWZtW`bf[\]wUk]d]dYf_[UgZ^Xmhc__`NQVdb`bX]c[dUlbdg`a^daWead_VZ^ifXiLY\R[fLgW_XagZYZUb]^TReXW^aMa_ffUgb]\_\[bjQg_bU[acm^`Y_aXZ[U\Z\[Y[ao[cf`[gd_M^\_E[Z]YhX^jTaY[\c]a_U[WbbTY]g][]_`_`[eh_^a]Z\r`h\_[i\dlgdVJha`behTae_cce\aZRQT``^Ya[^]a\_NUfSgU`kbge^[b[jQP]f]\__bUVad_YgcZeb_db^U`c]bQ^^^wPakfaU\`TVWccYZ`VT\k_]^`^J\O]a\^TbelZgZ`KT[[^cX^\h\]]kW_Sc[^gbacM]^bc^^_^`^[`d`chWeTd_TXXoa]`Wka\`dn\}mU_NWX\`hgc_\cWhcdX_[ccYX`k^dhUg`Xml[`a]`W^lcYdtVgjfn]bb]]L_^\eZci\_X_[Vc]f^]eVda^afT\\kfjYh^SY[n\g]h]\`QPVekc[akb`l\YgPVVZg[`SX=V`gWQ^\fnV`mXZ\Mg`pmtaWP`VY_`hwUt^cVh@c`Yi\g4akc^c<__gfZRndUbX`}wbg`YSbQ[jcKJTv_aXqmPqfMd=`YmOZuGuhQiZ^b_sefpZdrU[p\flU|^.@SKpRWnTZ``JpjA^ZTKYPgSZ^UfI`eDd\_g\e`qaOhiS^[^__^TZfi[^_X]Z[gVXTVY_fJctacNRNY`ZVXgl\\c`V`aYVcge\[\bpPhaNZQeO^`XbW^cYiVcX[F_X^`]V_V^fnOklYfalTX_XpK_^djbg\gcfiKYagGdbVojb]YUcdOcTYQbZTfhdin^Ybe[kkzia\_]f`uHXmWm^ed[[P___lJ\VO_L`EJx]OU~fxXmMY\R\rb?Wg\mQeXT^WdEV[WiW\h`T`JUfqMasK=R\TQGaY`fXesqaMi^QrDSjMRQWa^oNiuWcg`]XkPxEX{Uhd^kcbU]\T`Xdg[bbnRjMdUZgT]JodV`gWdTUtc_oWeXa`cgS^\TcdbiaefSZg_Za_X^adU`_\WWd[jZkZXbU\PZ\TVlQUXbb^ib\]Q^uWbiDdfchba`S]kbhhVk[`eZaTi|]]bc^h_Yi[ke[U_Zccl]Wf]_^b^d^[[Y]]Vc_[nbaX_X]`V]b`OsZZ_`\U|\T_`]K`]bVF]X\]f[bWf[^eY`^bZYWThXbflf_e]F]i^^Ncg^\ilP\j_b[cVcJ^hgmRncRW^cTFf\\XWef\Uec^RaYY]dTi[Z^cZi[d_R^XZlOeWjXtgb^X\\`N_VaGqYZlmi_fXeycgZJIh^fZfb`iVTa[^\dS]^[VZf]\dYWgbbZ`a^cVn\d]Xadb]cd[[Z^eaSb`d\Tb[[^`aeT[Xcja`YVk]^\U\ffcQc[bW_e^[YWfkj`ffaYbaYd`^Wha\ZYfca^[dj\N]UgY\[W_fX]cVbcTW]jacYO\dZNY_ac^Vdad]^Whab[bSbhY]Ymj[V]`Sc`Ygbd\kdLX[dffcllkY\WzX^e[Wab`_XKHbS\SM`amVv_bnPkWePmfZgbQx^QT[TMX]fnfYQeTe^\gN\V>[]XN]Ws^gTaRVbn`Z\iYb___Q[]]dccNbP:^cOb_WU[[^`]_kdWTa_WiScf]fQbJjTe``[a[lThdafbZ]ha]afTa[bWXVfgd_`Qhd^]hegb\oWkVcb_`YccNd`^WYWb[ZnS_afm\Q``bh\`nf^TZdba[b_f`Z[]b[Q_WYdcXUWX\]cNUacgQqd`aaeZXa[c_`_d[Zd\^\[b_`bb]_V]^kfdZcWM`Zkbh`Vtjb]lbehdVoo]aTfTncZfbWVVcS]^aQ\`WbsZY_f_XkbVSP`_hdbY_eKrXaaSZUdj`XbV[e^Wg_\QUFRXnc\aIkXeOR_\XxLqfcdM^NNhe_TZ]c`Yj^dXjfaPZfYdahprY_`Yhll_[RQ\`]be[dKVh[][Y\_Qh\rZd\kRdebeL`]Qaa[\\[c_\g^a`a]^ZXTl__c_cXZ\]jSN^aaXc_a^M`m^tdeOheii[Y_Ym]baZ\]Zk[dha\m\VW[`bQ`^\cb^NceXU`cfa]Yscbc]YU`b^V\T`_^^]]Va\hhaUX^nW\e_UZlZ\feaZbYQ^__^\^`ZX[aaVme`Z]\c[\YbYeZ`^_Yd]WZ[^UWV`_g\c_cdZ\i[[^aig\`[e^[YY`[aad^_]]\a[XTe]a\d[ke[^_]iV^aa^[\Wcea`Zaa\[YUa`\\PZYd]`XYaYh_aY^_[Z`\b^bY^Uan`[]Y^[`fcb\\^g`o]`fd]\[h`YdXZ`TV_bV[i\YZY`_i__^_daRc\bfdSca_Y``[g\_etXd[fZ^b_b]d`]bY`_aabW]t^Y^dkag]^ef^\\dfZ_aZb_h^b]`\d^egc`[XZuf[_TX\U_hYaZka_]c_`Te^b\[iMphid[_dQWe\c``aede[RcR^Z]]Z^VhlWQi[ZmVnl]]f]Z]aZ`Z][\T`bVYegrbjY[mbaafZ_`XaQ[ZrdY]Xq^l[~WUaO[d^Z[V[_]`KlddXNdcYZ]^]^_ebaa``_oZaTU[f_i\YbZcafQXXjc[e`[dTei_jmNXp^]jS[b_]Re`c`[mPkW`WSZT`\c`\a[`Zaba]Z^^ab`cUK_d]^c`X`\Xj_R[\a_c`dbaYT`afkaaUeY]Yd_`Xej``f^`ZWcjU`mSU[\aUVab_[a`i]_b]_\[^VZb_b__c`_a`^_^]WZ^bc]^Xh`_a]]S^edm^eY_[`dfUb__lZb^b\]da_acd[PeYXjd[ZXfh_]ccd[eg_Vbbfk[bahfi]ZTZ_obO]T_dh_bdZT][W^ZiUY\[Za[d]_]kb[bj_cd\]ZShZ\[eVY^[]_W_sfff[___dO[bbZ^\eaVbkfd\_^``WjaaS\Y^dXpfe_]YeUe[Zj`Z^Zc`_[TbSe]Y^cbZVabh^YN]aO]j]R[WpaslZ__bY^VRX^pUaZScd\XuBTkNKPfa[GuMK;^t^]dhXUC_VTh_YWP\LNFofTUh\KYW^ZXg`jhqdlkjFVMpNNlBVlDabclq]d_hs[?feoL\bXW`ejtXnf^dKqZUmiiIOVZEI]PafqZUcWMT^cb_\dXeV_[]`caZV^XVbSXW[Zd_lda]`ek]eOXZaMa]Ubcb^acg[Q^YT^Y`gc`^^]Z`ZeT]`Si^hmbLLUa[_a]]aj]_Oia[^hbTeYc_ddd]]\]WScgL_YT\n\iP_UeiZ\[Sc^YZ[Ndd\]abVbS_^_\fWbc^`YeS\b\ga^][hia\Zd[b]^^bbdaJ_aXa[`aVYd_a^gZVV\f]_aaa\cVbWdRYdhe_\Z[^ZZi]hac]_]d^Ukd[SV^VW^c^[j`J_h_\WbZ``\]dYf[^[Zdhda^a]bWYh]kZdca^f\flcX\aZhc[Y^ec]d^Sa[e\[^X]^MZQ`bad[YcXa`aXZ\SZdc[g_ai[][`bW^Wh`d_Rgfc^Xc\ZkYdcO^_k\\d]ZiYV_^Z^Yi`b^Rj`__U^baf^[]Z_\]he]^g]k]bf__\]a^`VZ^[c^Xl\Z[g\]`UaPbg][cZiWg[VZaTa[a`]ZM\]_Z`X\ic^fdf]aRd\_XdUdfbZebYe`\]Y\`b_YZ_g\[\c[]_^ceaecagakcW`ga`^`dZf[b_Z`iV`gW\UZicd]Th_`bMa__`ZX]\g\^ea`Zbkhb]oae[a_^YZY\`be^i_YXaWg`X`W[k[N_bibjkRabW`Z\]b]kh\[[W\We`_Yeb_eTc^c[Y^cd`sNBZcnbcW_c_^c_`b`tRaP^[ZUdj^R`XgblYRmcmMaQffamVhZgFO[[`j]XaR\^Tm[ooYE`ULfa_gPZVh]P\m]L]ZhWZjgd}wZSl^Yd:di_ldldq\?VVl]hhV[YfgHk^ThXhfWSgXghYdh]hcWZd^rf][]TbW\]kY[Z[c[i]XbP^Zie[dXX\]Z_]VY`ckWQ``SWZ[V`XNVZbZ^daU^g^_jU_dWWUciZ^dXh[[eag^]]\O\V`]WmXdg\Knc_]Sl`\YhWa\\eaaZ__Wgg`jX^aYdZ[\[`W]P^`^^^SSXVVYm^[_Yj`Ye`]hTiZRh\c]SelXf_adZa_YgV\^ac^]_S_Xa\]qdfYQ^[gRYbUQYWeaV_\SaZnZYXeRVSgWTcUhMYcZaT[]gbgd\]l[Wai``\\c^aZYi^a[qe_a^MU`iRW^YTg_ia`[]_^^c`ZBc]Y[`gasYd[U`Si_Xb^T]\`[WLaNdUaiXdeYj`V\`W\fkPIg]m`NV\X]nR\Mg_Qb^\c\TMJ_`]]HuT]nmfXcYTRZ[[^dgYeW|h[n`c`]YpZXaPWeb8DIcZS]i^gYe__\Mf^kR`\dUY`]UbafeI]a`_RcVQXuadJ_gYcU[\`SUa^]p\TQIcScbjZRV[XexlgaQc\Xhb^UM[WZRTaZgZ`ZUYZ\d\[RdZf\eei\b\b[RKX`^b_cZbadZa`]WMVcVYY\k`jcQ[\d`lWUXacaZfdWXg^^XZ``jdf^ce_Pdh[Wj_dMkOeXY_Ia[Vbm[X\XVXa`c^XTZh`]eZ]`WYbZ[^_ZraefjT]TW^Y_cTdXocfgb]NgbWb]]_V`_XSQ`U][bcX^]bb]VPgcIXSV^a^oblPM^Zla_WNdVe_\M`^tNNY^hdU^ba_iUm_cRe`ehUR^^YU[_\Xr[no`fZ[ghSeXSTWdkXbT\_mf`\WfXVjLeqb\VWddlZj_d[[^V]]aZMdYgX`ZjWYVoeXg_jYLibdbUUWee`dXa^^_g[n\]YQVd^_^_a]_PfZh_XZ^V][[_dhYSW^\\TZ[cb\TP]idcWgUa_SaVg`\YR]V_^cbm^i_\hmWgS``d_\Z`an]VZfbkZ``]]da`WbS^^`\cbZXVYbaXkoW`[_o^\XXSSa`U\ob`_g`jich_ec[[\_[]abYkRcgf[g_X\ZecTg\dU_ahbWSkiaU[a\Y\__TaZb`h^afNb[Z[eZddZ[]\^\[]ghadbYS`e^_n\Y\jh]``b^\cZ`XWcZXb]]aRa[_Y\ea[dTe`\c\^`]mZU_dV`gamb_ZYrYiXVb^^_]^]lWf`jbjW\eP_`X[_Z_d``_\^dZ`ZdqVaaUZZdbSVi\`[[ZXVSXr_VolTlXWah^_Vd`YgR^[geNcXUX^Ua]cXRlhYh_Z^X_`ZccTYa]\iX]]cWYg[i^gid\a^ecjde_g^iaY[Hfa_W^bc[_^]X`SZOZe^RY[^f]\h_SL^gSbSn`\]j[VtagMdrYS\]tKJi^Sej7mNq[_uYNiK_m]]vaYZtibRQbgh^I]XbO`ed^Ka_?JSYo`IcmmcUSmLRWW_cPjdX^ZKT`hbc[SiLP[X;Pb]ge_NcTXYQ]_YVcSYi|VfrsZaNmeP_X`|N[CZZbejjc]c^_]`]Y\[\e[\^badeb_eU[_[d^d^_\c]W_U^[^]VaWZ`ce[iRZ^a]]ZTZXZvK]gY`ea^T^ZjeW^`ZZ_`X_aWZUPTbZZUW]^`[_f[chW^ThcX[bc^^`X^cW]\]aiXZo]`_Z^gUbeX`cTaebW`ja]e]Yae]afm`ZYX]a]\[TgZZX\rT]jh_ZTj]ZZ^boeZaYj`^]flk^bVe\gbaS]]c\]a]dV`J[`a]_[JaY`d\f[\_f^Qh`PLhUdZa]\^c\`d]]mVT_[[Z``afejd]eag`\Z[hUZedd`^[kebcgYabch_b]gb`[~S_ZaZ`\aRkbiRdbY6P`oZ^eVXfVZla`dZShdcf][g]aUE]rp}lw}kV]hqoEtCmznrikpimbxZlm~s\ro{mtz{iwvvwvikVuw^lysr{xtc|ri|wsurmikbk|uerjsuomlnjiql{wwqexvUzvqblsrcmgynqx[xdv]^xtyeatl|rmhuvowoizitjy~vqlmpovJgxfslhnonioOwuxvj{u~nwtx|mpxq~pu|tuqywn{iouswwkwxurqyvrvnszxmrryvrvssulwqyup~vlst{pompuusswtprqz~{{opwtsnvpupvvwoqpvyz|tvx~wnyuy}{|tqw}dtvn|slskyqnwuqrw{pswrzsrtwxupzrvtux|t|w}xmx}qxrtgkuqvusvytuu~sr}nnvsxtu~skmtn|ilmx~n]p|vdirjhywzsmommpgzwunfmxfsxsp~lru|ynbsorqk~zmjpnxrm~kuprpekw\ve|ysqcs~wskkzvrpypejvtrrhsnmrmwuitzhv~kqz{nno|zqnsrbup|jipyrgso~v|fvqx{rxosnkynndquz|vjx}rvdphmvUmtcxstpmqghoaIcs{uywq_qj^x`oQox}xrn^vi`owhbisZcemwyfmwvcjss`rrfitvnyzjmvysyy|wlmq{vlzrwyudydz~|b}vypuitumySuxel~zqr|mX}ipxm{vpsx^|snsnkymiqmxymhioxtppuxezmvizyoy_swquylulqgzijwgkvWubosmwtjeilwlc|td~iqlezyworwujw|yqhmowhfWsiyoxmi~r|losvmYpcw}l{vqd~jznp{tk[ytxrmvuYuwqtpspetYsnxdyc{{yprstq}u{ypxwzytytqkUyps}{bwqto_oqrpw_yruorqnumswtnszoq~kvsunzy{j|wo~{v|jzoqwtwtosrsozr|qytu}oopiq{pzqswpwxuvpr{|y{awouswtmr~stwtwpqqyx{ruqdyqtqwxtxyuxougrrwluwsqxtusnoksv~sh}zompx~cvtpksuvsrspyosuqxssuzmk{rpupsu{sp}trqvyfxpmqtxmnvpsvtvxinn{z{qpyipsn|d{vh{gsvtvuzrpfpomhtqwkktnhitvhhu}knhfo~cglsuunnwppuyyixx{yrvxwv{ns|otopYrwsytkzlmttt|lmsnuqnirqi|jtu{}h{ypvsrrwzrxmzuspupinmttnr{kfyvtuht{zyxsypq~x|t{wqs{xrvrrm~ntwouwqpsnxuqwrntovtz}ommxvpusiuprpsvuqlqoow|tvtkvtmtsunvxpusvrtv|txrlouw{wzrtmws}lzzp}wpq{{luqyrquwztrqzvlonvwyrirgxu{tnonrvwuyxqyzvrmjyurroupx}dsnomwtrsvwpqkqxr}tzltpvmmolqqltnrqqqpvmtsypsrqwx}usmi|sl{znxtsvofqvolpv|sxnpuppukeq{ypopu{~mtwwnwqoxqmpyoztltssopvjvnqlymz{lsvjwowe|wskvusuor~wvmrul}wqrzsotpntouqrisudrvsqpmmrxwufsuvirnjp`dyqzissxwohzurznrg{wtwr|qhttsqtsojxd|v{rYvqruphzgturrpsimu|qrtlvywcm{rusqpj[qngx~svdqrsmki|esppuiozo|vqoyxs|lwuiipq|ksxavjnxoyiviky}otpwpp~yv|sopzynirwfmyophoo}]l}s{xmcy~gdyslzyw}tg{qvwqmoroptyKgYxnztrhxzhoaqywurnh]jarqnqzkxt}omxyrcqngwouxp|pqwny{~yj{sopxr^bqrn{zsjqos{Xqjszifrvxmytu{}os{rvduxnrx{Yxponuwr{vueoq|pqzimdsxtuopm}y|kqwxo||{suwnyxxqwtr}ts|ryv~iwryzoyvuxuutttuotruxquxsuqlxuypvpsvnss}ntrxtnnptyzruptrvi}qptupwtxyjnxzmxpz|omwnzxto{mq{zrmsxxsw||zntovjruzvxyouvjvyvvr|rtpyo{uyvw}s{zosmvqjrsj{|mpw}|svwr{qziytutrvxkmxlnl|tnnyutnyytoo{gjqupqjjzlioxpvzwxgvyltmovzejtlsrql}zotusphkupkjXk}wxvploxwusovkvvovzujnwpxkvzumktrpynsoa~\{rrnvrtsmscyshvtstpxklpsujhnxzzuzwvl|{wfsrvpww{mnqoc~nyth|u~dpbqvbbljum{ntjruappvhrhseysoeZsitwlplwxpt}kltppovrqtsnspyrvtplqtqon}x}r~nyootryhxr}zwvnxpnnw{lxrtnk}gwqpex{ky|~~eustnyxytuvlqp|tVzYvjwsutuotyplqykstoykuuywsqwoqptltsyfm|qvtosuxvhnj}vrrtmttpvxpwuxnem|un{unleqo|wnwavsptvsztdv{zwtw|zpwvslaq~hkhggqtonltpsfx~t~quysvoirrzmjfxpklsjsewqrmhzvkxvriumlktxrqruxnwnqorjpntotrttxuhtfrtif{ypsx~qv|snwuuszphvnkqvorx}yqw}}ksurr|qrrgkqhV{pswoyqsgutvqznwmt^omy|yxuw}rtguvptimtrw{prstzxyloo|yotwzvp{xv{fszwxnxodsjynvntksvpsu~ptZ}tyznlj|xr}v{vunxnvlomnrsozq^wuςppswkwvxypzu}nxmurwyuwq{~rspqirnpvultugnzf}ryqt{tmuzqtl|wwhczsptesroxqo_okpknhlnw|tmpruwosvqusqjkznsm{nzscwxpnrvzrqgwnnqussutpsvpqmsjcqlqgznosqgnnkznitkiswixrpzoftzmtrypsmzrkrtssixoart~Munwhzvwsptpsowstvzsmlm{{}pks{tyrryt{pqxronmq{|zmlyvSyvymwv~gpgn~{sxswqtxjejuqixcozw|qpmutummlz`usfLgwr~rsnwwrxouynyv}uyvznnoqs||lvwzsplowmjy|yrlvxlrmw}sx}prw{}myqlnky{tuoxnxmrvs~xwusposnh{gtfpqwpqp}kvvouoknlkuijzr~wxlukxqsrifw|nxwxluzpujyp^wysurnywxnttkixpvqtl|xmxxws}osp|rrnvyz|vptcpuqw}tkzpytaz{wroukovrqvuslrpxmtrzoYrlkqnwqijplk|zwmrkuspukkmvxmwkqtomus{opwitzytwsxwqqoyv|uoyitq~rtqo|oxyy|ktrwmyqrtyw{pvyuswjznqxpzuxqsmqt{w|r{zryuoqt|rswuursqv{tsyvuywrkqutvurwwsuvqxjogszvktwkmornymqpvuswus}xuvpyqr|jugzbuy|sk{}u~uiuyzToxwvljtpkusv{spd{uqnpoquxfxvmqy}jy|ttrtqxYtw{twstwtn}qgomtl~ufuzvtizy{krslsvtt|rmuxmtxnkrtvu{prtuw}sxppqqvxpymqpurmzrqumokyvstnwqlnutvmqsvxlrzuwrwztulppuloloigxwpsgummryvcfqtnn{qv{wymntsxyqxwsvy?vkl~ntvugvurjsnsvmhormptnu{~zrr|vxkp}puruppn|o}quxwtoxtlroppq{o{wamqorsxsvs~rvovivzotoxmzxw|puvwvxqlu{xkit?jtqlrv}trmqvtpvxlzoxlowo}wtqr_s|~rttrxwgvlxnvxmdqmpxzxzpszjsqpnoukkYrtct}rot~q}jqwrrquv{htzsqvvkqutnuotq{sqy||nwv}lmoruyskxrrmzpnvquugxvvt|ivl|rssziwxoxruumyezunsrypxrqtKtr|jhvl~qnk}vsok{vqn~xhg|qsnppvv{r{nkqjzpe}xdsz}wvopv_moylyhorqymjdep}quonu~ytxsjpa}ndmnixqrYrttqyj{mg{nq||f|mmsyqynt|brxr|zjsxxj~w{sftzvyfjwgikvvu{n{yln|uYngsygljsxtgixhrflwsfuwynqjq{zkpe|nuttzWzpb|gsrhwoqsccswkijkoo|lj{onncgvgy:kVvuvrus]jllstvdte\mhpruvgdbws_iyeh{`u{tovynrdsr{x{trvox}mxlcxuqrvcpzld}qa~w^p|v{tvuwnuqvg{vMz{ruisyo}_wVnwWqpmtwgxukvtymynruzhprvggzrsyqwnjpmusqqgvxqsvxvwm{vstvwrmusyustlysmrspjylpulxv|{ohsrmwrwuvlmop~vkorqwxv{q{yijsppspsoomrnuzosvkwd|rw}uptfxwtokqhjzmxsyuxpyr_|nirmnusumryqyy|ksss}d|os~kmnnrmosku}|tzr~wuxxtpevwysswt|vnswuutptyqvnlvorxwux}pluxnqptxuyuyxqpnvv{yzpstxvns|~rxxwtvtwnmwyvxsrmvksqxrywpjqot}qs{~lrntwu{tj{}~p{sk|nywvtsvztzjzvqyk}xswzx}uunpvxlzuynrlmqwqvvls}joxtyrvlpluxvjsz|vnuhoryguxqptqouxnpusqpivxsmnrdunxymtwqtmoywiqtfo{|k_}po}jj~}~vklh|jdrfgnsgmriuppjmv~ozklnuzynOg}qclsvxuuthkjyujjztj~tobvsdvortzwjsxl~e}llq}}U~[w}ikrTlpsknyst~qqlrqipkpoovzrwnypmtdnqoksgqjxqso{lypepkwlmunqfylqlozygyt{}wqsvkjxhomomrvnrrmww|osrntpxtqvwrhrrqwxvuunzxnvkxst{vww{ztrpz~qnvroqtuwnwpvro~twnqzxxpoopwqrqztkqu}qpnyvquwvtvvsx\rszturooqmre}brqtOlllnwyimNbrrfys^pwpullsppwwpkzjtqiYzj{}yjizqxcvwnsmhmsnbu|mmoob]yqrjzjzsmxwrh{qzrdonzolp>huls{uxmlqvTojwtpvor^|xj{p{v^svnqsisyrwomyvtdqlwqrqtltnnYvowtWwjgwr|Zu_uklqfupnpguhkrbnqfp{jrsspismlm}ens|lirsxpyu|xnfrwpt{qowgrzoj\syqrovmnovtuxqyzsjy|ls}\x{ihml~pwksvtuoks}wzjvxyqruq\nuvxnnucxmptoos}qztuuxp{rpwzrqqmuhwhkpro|xrokvkbvorxr{vmqtth|Lwmtoxoilnzlzvrtyojkpus~vgenofuys~pqc^pozypv}ujghhemMfqsqgqopfothdt`amn{ltm}jp\rlmpvsvv}lkf~mcsvnttquvnrvrmrwftyismhsmtx{zr|wow[wipelosngwotszm]xvpxmyovsutyqvvsvgorq|`xziu~qra{xxlkplfbdqwpusznty_|{rwukukympy|lwtwrrglvxshumwvhurlvtvtw|nsymlv{tzivurwymffvyn~u|utsyusosd]gvtixhhgz~ksupuyhzp}nrvnufqmqs~|mmwwxj{ostospv{ssqsjw|y|vpgzvxv{uqqtm{tuiqouopvtozooyrugqvqvmstrt[nwtrv{wqmusitepyppw{qsy{inxrismmfwln}nrrysxrkltlgxkvt{lsmxq~po~jqfbcf{wtrqhrxpdz~q}m|nhw}hmturkuxspttu~{jpmpwzntgxlvmyxtxyrqzpwojdttkg~{hew{psxYocsftsbkzpwx|{rppvv}}n{}td}k}hcjqg|{_yqruex^|{y~q^xrqlomsogxzosldk~eemZwwrjalxkgv^|]b|wu|eeouvimkqui~wfoqu{jomtpbgjw`zrl7}ynyzbr}u~rpf`vvhutlewzzvkisztz{vpjy|lqyruqnjkhfb}vv}ityzw{mummxwwvrn~zpslt{ourttxvylulwtsso~xqsqrwrrw|oqrqouuznpvwu~lwngwnsovxtuitrxqulquotvqtz}plxuzohrnvuriuozolwuvuxqkr|y}vkv{{turtnnwozxsysxisustun|wuqskzqesrxyjouvspufutykqxrpytkjgrxsyvqskqrovm{kzqlvvsulngmdwo~koywsp{rxywvwoozoxiqvdvptqppxjnkptv_fwrpq}{g|ontpmrvkpmmuntpu{luntvvittw{vxrq{px|g~~vgopuosrtuerjttmsnvqfrj[sw|sulu~przvnqsoyjwyzyhkzvd~jxhenr|qpvq|sucawjn{kxi~r~vnvbjrlyOgz]tlws_t~}ymxtvqwzaeoxomvxq^`o`kizkrpimwa.kywo~ijwxxnwr~xqknpYq{x]qyocx|rrm`paatptlzloruywsyteoVyr{pWyk~lnu{bhtwkh~tqvytgpxxtsS~wStumchok|~otoo{hpuwrqxsutw{xz{xtrkuimvrsw~tmxwsnjrpwsztspgepswqovvqu|ptimoywkutkti`fzsuzosuqmr{xnqyqtzxwnl{{rrmjpymqwxgztnvpzoku|rrumuswvhlsvZrusw}owuttnox|muozuoms}w~pwgpzyqlueityvwtnzsthZsztyyxsvrvpwsmlzs|lqxxnvs{sdrwydont}wrowr_wkk~gvuexvtv}s{zinu{pjgosyQ|u|mpv||osxuuussvrrl|nozjvsduucrznqquuvoduzwq|xsfnopmq{r}qown{yotmmsv_mxueoswu~btouzqqkn{mv}}yxzkww_osxik{ivzfspqnavmjvrurofxcqo|wafosjtnouyuqsi|~vvswwvtysrpsfsqlsvkwhponunmredpxu{wgn}wzrsuwqzihu|ooq|]ghuxttsj|mgk{mqszrmrustqrolgxr~m{lkxuzymlkluoyRoyqstuvtncmnq|Z|a~rxsvtuypistzzpzznnvzu}vqy}xtpuz{tpnspqhurvxmsu~ywwzu{}{pxstrzhqszpr{tt{vhmy~rsytyzsqszsqsy~v|qmqkry|vstuhprjkpqwzoa|tyz{qyssq}upxn|}qsvv|uwey|ytqx}vtmq}vy}wrinwtiqsnsfow}qwooupzi{luwgvve|{xlxsttx{kspynwuptpxv|~ytu{mxnkppqxslc~iqzjys{ewpsvirsb}ulnmvnsqsvzqzjvrxj{v{utpqsixpv}{xyrtxxq}wokt{uzs{rultpuuwnhjittnqqynwunqwvvptvurpntwvwzh{quvnw|tmmpnpxwvuwmqqykrztwrn|qzlpfnrjsjkzvuv}`qwom[pwzspnruxtxiytzfoqttkv|e]vvsct~utzxt~ppufoq~xrzmmfyu{turtur~upt{jntt}ssqxrtukmsyyI|twtqrwvvwt{w}ppYznyuwuwwruXw~Wurvvkypvqpv]uqpqvst}rxowntslpnm}pvtszs|rpwxtzwunlvsjx{ro{mnrvtnoswnczvru`tbum|sxthpo{t{yftrlrtiwfojtqspvouljyozap`mvjupqvzzjju{qmswni~nxy|mDemmlqrrvtoxyojvtuvsnfwgjsmzmsyuyfvvx~h{gzqurwezy]uqndpQknswqvyww|pfsrxsz~u{pup_rtxlvwjt|uvnvmmtzt}uuSttov}rxsvq{mykwsq}hvmovtowin{uxvvp{rssrxzwuwopoxsul~yywy}psq|v{wvztpsqmttusttujxuxvwmtypusrnvovptt}oru}pqz|J~xxsosmypayutj}x}tp}~|xyyqryvywpysxp}~wy|vy{psvxc{rptmrwmvlrsnhtnvievjmkyzlr{rt|sr}{urnnv{ouot|zmtj|lmpwmmuq|nujjxouyszpmorsqrwu~qwsuxj~xbxhugvtvkrmypk}||{{rogs|u}{pq~vjtsntzkqjisyn|pt~{olzzyelrowrqrvuivqmq{r{{qwu~|{wkxrsk{|lbs}rkyxuvgzltsmomsutXjWpqysut}vmayrjqxlxlftep{nwslx~pcpkultmnfxm~koqdyvqtsoymt{siqptxbwmuauslgl{uyWroqltimssnvhrktmzzsua~}lwtlo}Sslqzquzuphtq|wkpvegoy~|w~kwntn|~tugwibuiVy0{bqvvmibdRmoy{yuxdpneklVQ{low{le}`uln|}oFupftnjtoFqt|njnwigo`abmlmaplpt_xy{tct\qwylwune`t{utwlwhxkpt|ekpdvnsukn~ltlzv~{ctvwlpvfykntp{cmnR||x{vpj[z{uvgpmltoasrbrptih^uo}upmplmtyliugjkmwmi_wtipjssbtuklpp|ru{s^rn{ulwvcnqpghsilcnkklqi\oksohghyZorxqlpunuzlgixlmf>jtcoloh}jmunhsikjihkokoyfydrnwfrjxljXxntqh}ngvoejllqnZqrkdui[nnokdwonqlkjjhnsqnmkbmjnogl|nb_goolprrjrqnplnhqamrdjHJcpptropfqhp]qhhzrippfu|oflsqrrmnfjmdvpsjewxlxzpzmhsltfuppbhtqps|wo}glplsnnpculojlhl_qgmif_dpurzztzklltnkm}jilpuelkooqqommhplkiayuknj|jk~ialarklltrmluoqpruhxjqplytxwtd|llnxloinprrpsmkzmjjmuvtYiqos{aUktyvnhmqivnlsZngptoekvhsmiuklgftnjzrqwnjgknzknjnrwqtoshltnrgpjnptzntphuxarjnhrnxevnqwoppknpsfWmuiosnjmtolklskkgnznsghtnonmdsikolq|qiprmpvpnwtvmo{sttxltunxpypdkxokijquz|mtrpgmosnqyjngevruvqplonnnrqrqxhlumtopqvqmhljknlotrpplpnrmspmlzsotpoorrmmm?rmrpo^poljljmulkmsbgoikkdpsolpnrmomoomspormroqUqhmwqmmxsotZlolnjkolqmnn}k~ukqmwfqEsgrooksFTmrlmjnmblluqgknnlhnxiuoipqfhqnoppjjnornkhplkrpnmqsromipjnqnvuqtjmmjnosnorkmrxvlymmajlgvvmjrop}\nuhokgginelk{vlizjrupneoopoolooehdhkpouoenf^leneou{fpktfejmqpziptknntomfoortxobpomtnohqijoj^otwmnnbrlpvaghgpiuqhszgnotrtcrkmpklzojplorgylkdtlzp`jrpqstfyutglqbnlqnj^oplmdmnsolmnqpkmoongXgkcqqojnpalttlgntpptoliszjsmsusfmkthlpokmirfipsvowoqonpskikb|xltj{mfqmmmlksjpnpnruli|elmrjxmljjtqnslpmvpsuiromprmrm~qunnogooomilojonglnmgbp]qqmmkthxkqqprmqeovkinltksskbk[zwnmkpljzysnvnmqtksokgfinldjn}|fncsoxho]nerfgmqfnesmsecirlkxlptkqsjpyeopyqtkv\oovorlvmlgnlewkynwnkqrqonqumoronjllmngxhofmhsjn}j^lmtoobtkqlvllkudfmthtxtpvrcnkvslb^rlw|jfgglobqjodc`rul{oqqnnjiuhnechje`fcycsopn{oRqruhrmbRtkdcmljwnZaugyhupdnplvtdkhbg~xg`wgwinj_yhok{ug`nrcrbxjwxnshq\tngjZhthnpngpkki_nngZmljnonnljlXjmqjhidgg]kwyni]itirnnRrjppakwr`fkngiwvzjcnlingyywtmmlgxqspjxmojzxcpnq}qsmuhrmmpniiwxviqrwokkkmsqopuhixpopcwanigtpxkmgogkjtnhdtpkepqlhlomnhn`ylcooj}pmputmaciomjljtusklnoslxqsummlnopfpuqvq{moojpji|ap^rhketgnlkjgdnqyqnkqpnlmmpnrynuomnostmpnflvbomchiqn|neqrgrqpntlxzptuupvfrlkoinpuqykngkrtsnoipsfknovwbk`trojnxldvqpjofljdkmmiduqosngvk~icqvilnrsjqwjjt_jtlmruspmmhvxpqu{pnslthojimollotrqroqmocsaugmmvslntepsmktsmqpvlvrtjmfjhoj}phpsgmupqleho_`nmruqltpoi~nlkpfr}cf[w^olrpmlrtmhnvfdnpnzxll{jozs_rrq|knuwpylrrfmi~nqpcds`nokkxvkrii}imhpmofr]vlntmngpsgmnqoxun`uldvu{t_ozxmumknrmtjxgoqipyqbpsxgbqtkumelnhu``rn~qe_h]~pp~gtkuwmjwkqvnodohn`hhltgon~pqf|gmonmhfkjelmlsmhop~pioeskcshhssikhvumcmjXrrfm~xnmqfnmjpfkmfqnltkuirj_wjphnsnPik_riuumolglhmgejnfmjkkhtoqmcwljklkfnjiinqmjnoloibolkmmbmirflhioffhlfsgmulk_opnktkqxqkjgklgjenfqmhpelnsulmfmjktuhmpooqqnaqlngtlpnommyopyvasdmlq|usontnrPqzloqqjutpnienphlpsmldmnsmexprrqntssnkhmtlgsmjmljhlxfnurqkkpkbkolqluohqqqmlpprjn}redjpip}llnnnlkhvqlwhklrgqkmllll``lfsqzoijnijukqqjkhphihnooqqjtiwsunoq{dfwkqiph`{rshrlmelcvraorcnlmbnmYk`fowcnhvgltgk~r|[uoqi{ydqwploiojwbor^ipseuhuysntcjeypertsk~mlvkpgvuXwwnmmrxtjinreqnaqjgqknsrkbkqpyfoufkpwpfegrlkppkkpaortulmixhzhpee\tkmmgng{jlzyqaumtjmrfpnriyohUrpmhltnp|fkt|jmdksxktnpaeovklikrkYxiompjihnpyohqdb}{mztrlvjnjhrgkneofobvmlmnjlwiormemlcidmoom{sftmkbspplkmmxjtnoeoyiiqiymok^hopknpghhfvxftnbinojmtumn[gjkuiakorkwfnjpwsrnxmgsilocwleh^qq|jyzyjvyv{yun\jj{arl_wsl{rhqnvwltb}qzoqbvn~fgwnvymrn{msi}mswdy{pwtkjszitsprjuuiyquxo}sw|lktrvpong{foux|wwpw~rsooyykn}ko}sr[pvwrnowtrhtyqzqqwssx~sunotvkyv|qpvrjubgspxiqfs|tjotlup{tvkfbrqwgknsyronlhpupprygqqqq{rxtqohqboivwqnnpnjdthokpluope|l[shfcnstosq`plnolzmmpxhwnplruqprdnmynmlp{lesmrdisklnouvjpqqorlqqtowY{hgoqpktpvmj[mpmrndpgistmpplezgpontslmoqyqzrnfislqqnotifxkq`Wstudhitnnimsiqoo}lmsijrqmrdb{wiqrnowl`{rnkqpnkkmflmovmbsuwtlgh_hwqqkpyolqsog|iph}lspntmpnnzlsp~mexbommbpwofjmpclmptygqkn|s{uupjZrjzmqmldormsjpsrfptnnsppkllqjq{lqimfohkykiq~iqkhoivrorpi}ssqh{kqljdlwktwr|`jmllympsrithol^dosyrvgfkcjmrnqlmuntlnspgljxqf{nqlsrkusfsknkoivonmvlq^errmurrd_{kqlqkuunwxjjhddevmonkoluvwonofsy{twdvtlsmgkmcjqooiiqt|nwqmooqdiv_orptmls}{uvxnqxrmkrgn}rtqslwmtqogrvb_ssmovnakosnlipaoos|uiXko|kryujklldpnqlkpjnmeswehwfjljjmtsdqymuhmsuqtzvnrlpdluim|phltssrrrkibqjwtsfl\saljqplp{nmqsylmpvuop~mxniloqtllza_qZokpl^wpnvsxkossqqsoYcqijqgrv}p]li|aYKrweAfli[~s^rnhzuk\inl^|lztgae}\ju\l`ignxzf}kqhvaon`nys^[bhflq{ltrpsuxj{lymrqp_ulkroerlnfrh_gfxjybWhgsbkqeq{v`tvauVkikpjiap``tkU`[nll`jsrrd}vyolcwndwdgohime]jekszsdpbkfpgh{mib~cq^temihru]rvdazYbe_syoekopaqftquke]ajrgqghbhkgjhzpqkkjisftmbhngnvv|vl^kkghhl_ugraikvkob[jo_luojrqd_lddepm^ns|t^lqgoouncudy^kqlsq[Xtpxxugmbjmtkodov`im^popj_mfypfnw}iYfn|rjpfruuvklqmjqugujqoous{Uojshpjermjjmrcokrkhlinamqoqmnrynnapnnr{ojscjhopjn~o}mqor|hjrjohusktqtlomplzgkuilpmvoqlwkphlpxijojkv\jsopiptdlmkmgltkgjmvmsgnvjllmtgkphpuor|vrvt{\jtoh`r{wijqmjlnhw_iwhhsjkhtvrqqlrmlqlplmopnyspzourngpukifmnfZwpmrpnnprpnnsvkossjmbhggkkpqxpapqimcholvpfonfmzpsqpmknqmi~oojgtlfomjololjkggck{boirvspmvvmo{cnpppnkslkumbpmwpjgsxvhwrrmvpujenniq[ndorrkfrollk}vwneprvpjuhkmjjo|fn[hnmr{v~p\skfolUjikem`gnixqn`nhplob|nqe{TTkyy\eoluouvoweiqqtskgvnnr\}pnyvmjrhu{kfjnthqppthmpnozvkrnlmkpvkuznh\n{uzxmZs_|jznp]qbrr{pkjqvokjsochrgenkf\gfqyj~fhlqpwekwrnrpritvrszkrvojzpdlnpaigjuwqprsbyeeoy_msgjlgm_zqm^wjisn|sanmjtnbhalimjloxxjufqjmvlmsovtgtrqklezxunnsgpoykj^ftlpqq|sqgyqmjnfmronir_kuhexTjritrmuqljqgtktmogjstmh[kw|l}ht{dodldfqrl_nequewspxmkhmu|plkcgweimoqkv{mlnophnskblroqhrdnj}mwrfjwrlnhpzjgqomfivnhuorpkxskmvmmgnjlnqpfxozjl_l`ipmthgiotkiqinhlrruwpkmmllicrlgwjpiimnprqnifphmxorxxmpolehqknnnuvlrlhorunmrormploxemkri`lnmtptltukhaXugqu]noehojrtnphsk{hrnjuefgqpvpijjphgilxnmpraolvlmkiojrujotnljppodjqrriqlgtoqjjndalfoxmmmqtnpmmffrcsnnplpkblwhzqmzqkvnzo|iymfngropjjgohojpmxjqqpgqiqbqgjrpowotlgoolfmwkwlqqsvsmemfmmhooc|empttjsmt_qsuxumojpkbmthkYmghmiizhlaocasnhryqprjplftuojdlicvqjs_dxoqlowuyiglkchlhou^tqejtnjbuxslnkedmnml~kxx~ovjqglghoprg[slpkmwwmopliylnjmkljclpvpmzly`oqncvvymvdb\ocqpzelq|jhpiozvjpZmwgvkuytgrrriclmocqphdrsjrnokorofumpqkqqtwmnlorvb|ltopkelhslsktmnmpkfunikjpmptivvugkneqplkkeeqiotqetwoxsclinnuiimnRpqnj{mRtumkilnojltrksvtqkpkiamnrqrqqlklhmpkkuitoxmrsss~gzosmskqhumog[ojkfmjqjnohjorvcrjeshnnzkkkmpnzptwsxttkmdljjoirp{mpuqpkespsevufo~tilps`jkuirft{lqm]gul_wroxzyfjou^ksnnntvwglknlmwsnofmrlrqmnpqhmpjhn~irqcpuqlrmizmqttxpemqjnhcslmoi_upk~jsnq}jnqymtsylknfru}ljmx`jjlqkmlhplyqlmrqeoqntmifkktiqvtknjmlnrskpmosphvivsshiofqlgjwguf}vehtqnepepfhmufmhplmmrpbnffmremohsn}knhfsmhrrvepmskkoghjqetrkocmfmsbmlqnwxnojjhxikpkrvnvlslhhngncomjwnlxnssjpjmjjlmmpqspdorodmrfohopgrjpbfjlfdinwjph_yiipir`qPonyrqsng`suwfZwtjrqrmykornizhpwjkosjbguho`jnlsqspittneotrnvs{poiravlncwrhpjj]fohmqvqm}onxnmmvoglquwyvprikthmfrwtwtk~oduut|jswrtsttqXpmatdsjsmgLsuslqN}lisuikuztuesimdXueruoiqobo{yqfosojbhspowixkonvqsmnkurqlrannjsijoebuu_hqgj{jlhpngrppg`fl^bolnqkiwnn}inf~ntwrxnmbllmy|unypmrxhptexlon`torwropmokhry`nnhmolhgkooukrhnnvm`ynowudxmqxtmmugzpvhthikrjimgplwcquumokhytoiivogvdutklrlnlosviojhjqtup}sehfamjcrejlhernilgulgmtmnhmaouhht^kerxqtktwmmfullm[umYssoolxkersqsmv~i[jpjjpmllhoporgnfhqjncrrnkjsn~pplcjnrtp\kohjqqp`lgjatgjrpisalosheqqvjglm]odlsexkojpkynpygjulqnvqn{dockevhmoiuo{yvsTbi]hYnplLbmY\u\pve^wufdohptdc`XgkQRjwztyqu^qxp~oqVyhqdqysxn{rkqgdszlomsUivbtklms^Tpsv|srmlV\pfVfzvz|bjuZvucqjmej{`^kut`kSyyieuqipdxqffrsYu|`mdq`Qaxoifjuskemqqmnknnieup|igrkskfrhisvsnhoxuvomqMtmhlomszithnhftwitmrrrsn{sokowpxkdsqsmtwlUqousn{oppo{>nVeqmqhf{pmoq}wfQUgspsvnptsomxwhx|tj}rs]muqawuhsjNrokewvrttupwxqzclsvs{q[vppH}m~{Qokmtpgpmrkopmssmvplunmyprnrtmtirnllzpxm~qrl\sgu{llmmqeukqoktnszimnoimupsmcznjglid\xlngorhxqoejgnkbqsouhocnlrvirvyzgowxwqosnrolibn[sjwvm^glq{jdpmprts{ofnknlkoyicYmvs{jgvmoqkj`nprhZudrlpowoisvgnotfkvomojkqfnslsbmprlkikpwidcoldllognrtelnmdptrgivhmnrmvkmPplgslgeletqnpfgrnrlqlhqloTqcinpvganlmoopkznmps_iSpUnvmqrqnpgdhnfhphvhukgnjspelpoh_njqtedgmix^oppvlofnmgnqsnomnyxpadnppxdofoiktnelmdkrqqofkfjous_mupgbt~vxhx{oxpyipwhltpg}vdkfq_|lZn]klitxzafvVm_vgpgk_tjmc~mmqtymhudq_r`qrwqixnleu_t\htnks}lpspmng}ywjmqkZlohginxhqup{rxnjlQottxsetuwlpmjnmQhomaohld^ctpkk~migw}ejamsf`nkruic{nlhzsr`ypsrzxhxoalzpolkqkotipidmrqikwoomnppgk`{mlujssmoemhtotfeXlgfNdjg}ttyowoj``rf[glvvmnbkkoft}pjmqiluxilqmryve\p[lujvfmgisigjfmrqjnmvnmalqdrwqehj_mm{oe_hmmgeempjojpuoqll~sqlnqwmpomvcfnkqjhhl|i|mjf^pkersprmvnjthovtrbiq{tYl\qqfnidygi_oqmopmlppfgntvgysjonltnlrqtipnlvpmgrQounpmutgtz7epctujjebmVclhbKqmldiXubxljixjupujqptViogh^ukplmjtkk}k[wlj\Kdsqhoprqvgorjjuqmsphmo~ijnp`wredhqpmxejkhupnrlmlkdynsnop[oajmnenoikmvlronki{noipxmYlolsnijporsjnkjqtylmkgrqlnmkpsqzamqatmllomfdkzsqbTmnqgkjhflrwnkoqnQrithmlgqepmhootcvqtmelejrnhpNpdxnhmullskcosqssfhphebkmqq[kkkwhvnlknibm[jrortk{koj~b]fl{g`ztkprnlldnixgroayaxplpcsi_rekunxlkjoobcloliYXkfjaed{ojis[am^cfptmrmkml]pp{mnmngtpolypqyqbgtljilqaoguenxfdfqpfmnndw`betmojngpbmoujl^akiansjmsisirvrnhsoklmovjfndmrsssdlgv`mkuypplipkdljqinnmtmlkluof`hvecohmtmpknilfotl`urbkimjvliwjiYrklcimnslzknipri|plovobzdjovxjxggfwjmwqwvZhWnrorrkttpr`hok|fhuoxjmllkngqpnogtim|o]ojeisrfx`rk{npksnlpshgxqiclompkviiNhxiglKshhnsnvgikrclolpppqkppaiptse^cgvmoakkv|nhfjptnqrhqhtimkkfkpmmunorofrtmhkjkkjiqooomuhyPpnnkhltktsnpitgq]yskugtomqhkdikmpomiRqappjkr_ymylgxpmllvjsnkwjpjqnhlmnrokpkkitjmmpowtM|phqhurmsqqomliigk|unmskvstihcXijfiOps{l}kk~uftxejb_sk`]lvgsRyvTjucv^jqz`yhtd}Zkotle__?KjteosnRxttSe^uf^o\nn}qYldjLokrfte]eu[zrlJqjvdmhktqK^v\\e^ecewgRoer_Znq`vUhmVurm\kXqcjXz{tiwv{~\{lyroZpfoe_vnagwpWqmtkx{qZpoqitkpveiiimk_lophoepscldl]ok_nwn}gjmeknsjgw^ksstilq|_oj{ikdeoqzndnyX[jnrsmvukoqpcsieppbpvlmZfmfshqowfxfjtjojwkkoUmvpmlpolngtwguujk{ilvghldoqqvnnfiqwkmo{ytVtmnoalgrivsrmrpeppojtmgdicihjpzjsnkllorxvzhsxncomlsnjiiygngsnqs_kXlq^ivsmlwpYptenntxoqapdlnpxkjdrsjnoxvlzyInjrknvgoko^hHkkcqghgcqkoul~xXlltnuipkloenfvbojnlv_nyxFzmqhJnlpwclqsqqsopo`fnblt~mwmoo^ktpxEikrkpuyupdoopvkhldrpolncpvkGmomypqrvmknxljioeqptjlnqrnnopp]qqnmnrklrnfofmkmmtnknjojgbjsjv_htotroknrezqicoolakgnbudnhjltfmtmnmvmnjjtqetntojkmekwjapnnoolslomolfglmcngpirhylku{sjuzgqvutfcakqejnkjlmpnepeuwozbhor}ftkwtjmsvpsmTst{qlf^qpmomllw}icindnmqxivlkjlaevptmt`hqiiolfeklkqjbjqpmhauttaofehfsjfpoqpyssssnmmvwfiziokrlcnogxnxYknowcZgjiqrrgrfhppqlsfsv^nn|qiegwknkgji~kr_nvvabgeekiikhndmhqs|uoy~svejqvmrdqk}`fnwlxieynb~eopom^hyjjio\zolg`qsinnqowoktuolxpPTljjlpkrrerthc^jjk}o\f{nz{|jjpjj^r_iqtplgl_jtgjUpwhtl|avdqtmRpkql^dopmom0vlmqu}r~vfgipkpwjgnpgpmnsk]gezqqmkn_nqjq_opnn7pjo`tsnl`slw|vuumhokcofpznbqiv_yqqzoqt]quinnoYsqmshktwdsa}rmutdkznarvmswqohiqlgnPhet}pynjsiifioxqozzpxxnvqevnhesbljlmjjkUalqjlrxwotjgkntwnksoxooshkil_piqmsjlgeldml^ruidkswgpgcksldsxrvmkpoov~ongxoimfepcpufoirrhdkpOnqTlxsaoplihnmspfnqg~plpdrxvbnfij{qnemqjj\ugj{turomqnzzkucmgqojosoj~nkupdyllpranrqutpvnpvoltifoppyrdp^lpfrqzdihk[l_nmmlrrgkmlmimh}vpnqjmnwpzpvadwjsqp^oenmsmoaojqdnpmuujnesfnporlplqnmtkrqfinxokk[oxglsrmmoftnutmckktvqisojutqzmmlnnjbkmorqnmokommqor~oklrvhtmqj{mnelEfkljysiorqnvqqurnjm^wv~zppks[pwknlkqrrthoYhtotpwvuvj{bpeskkvmlmomhpiofojkrrtfrqyhojbdsbtqputrnsonjbqm^qizsyo\bcVopqaWealkkdhhooyqmprwqomYfkiQjlcqg^\g_`mriptkv{cuvebzgy~qeq~ptd{^oplerqtehv}{pipnqjxarpoqvrowp]psbopzmivvop{wwgbmtjrfi^v\xnouVooiurgoplujo}mlwlca{htixuumwmqpjxbkzlfsllXvpv_oggboeylivpmhvvijk^sy[nprkqvplfonimdqhb}orojkk|hljklutfipwkrfpjmmkwn{iogjnnehlfxxgooopkwljgmjfeuppkjqjxktqjosnhsionnjlreobozkvlykkghaljpkhmvnwkfjpllqerpnvqphuarqo_kbnh{crlsqqn[kprks_dijjrei\qfqf[o}ghjg]{piqqotrllgrgjkroi_xuinxcbY{mrjxdqqop{qqzjdh|oppirttpoycv`o\wjuqdqtrknZq^yituossrgsunnbtvtlmfiemloxlskrdpcl`tujvxnjpZdtm`rmgjl\oeuvipwutpvskno|gienYedpojcxm|mnynotwijup]qcxu_raviTrczldq|sm{fblikg[omryjkyyqnrfnlflxl`hjplhnlZkYdjshqonknnfllggusvmsn`v]ldty^vkxcefs_kkojdmheslfnjsaud{ktfssnoiSlqg^mmjvnlmoerzgfix{drl^VjqXrjjnmnitltgskeuw}RoojiYmhtnmiphfeptfhx`eknrtmytpnsNoqzl{liomoxonPmuarnKcknnkslhjpezy\shqYvlom_lfnwokilgmo]xboeomhllNdfmkhlm{sUmvim}zstkbry}q|onnppidkgzwaxielmvhetxt^orqrfjnvojkgbapWtqm{ldxounqmirgodxwk|riZ{lm`zjpirlxqldv\qomwsj}nqdlioqbs}m}zoZqthoqtmqyhqnmlXllcgfhwncfoozmjy{lhf|oqodmimfariz{rpfelskgkh|mvpciZYsg{wYksiqrinroqlomxdcrpinjphfhojj{rbqmpnk_thkphnqXggqkkftihrnw|itposjqlil`ls}_lsxjcueugdlnkrzjkjkjlkrps_ewkqrduqrglbg\flsgellyp`otVpcqhrfdaxdjqqboqensmnukvqifoerogrjpokob|hkumq_upj}juovehcmwhwciluqtoimso_rnjqhlsqwgqjnrphokqkxoomavil`xgfmb[hl^bkgogclb~yre}ssbwphgomrroq~riyrej`ezf\otpotpconeph~YlspptlnnfssxsrrfmoejqrWeobmop]yopxljmihfmtipngp\timoetuhyn}oh|puhsdxvwuqnsmmctjykslrh]kgslgnvijxwyjwklpjjrtnnv|kovsfrpckr~cpgxe`pmsiszrsqjagritvmhgifrqm_invslwfprhvn[eploplRpso~nrtal_lfxqp}spsng|pgglvm|htl`gljfqtarkzhmgyultonppmus`rmZeidqjltpijifbdqhjcoptowxtlmitjw^blmip}kytbkarrk^qyqry|usuvmkpqho[oyoksvrhjrfiiyfptnzg|ktjslvdpo]jqruksnikkp}n\bqdl`porfvofwljmXwnksmprojijijhvkhtyqxhdmk}qmwd_jmirrklirjnkxp[oghfmh`hmfmreblfsxlgr|hkqliqkyZiirukgflsl\ilkcwpgwlpp|oq`so|qp`emuyglunqguwhsepphrommaqoklremjyjlomrf_oel~pknj^mlzbjmim`nrmvpcvktovlnilkpiphtubphqcc]~l]fsplofm{hote`~pttptxMfksjbV^fienbKebg|kisxscjjyhgqay\enarpkglF[mU`\}h{puyvdm_o{bhzjgf]w9mexvm`sjowyqyarjr[bqq[ytgnvduyymnoeyyr|sde]wtDbtltobl\ycphpjo~lutye^actZg\lp`jk|flxmRliv{WkSaipprnkptbahmumzywrrhu~[nlqfhvqmmdelndjifmonvnfjnmqful|rrgehpic\gVhmqlcmjgmurfwxgkazux`ktqheitwekkhhojpXmmkoecgentdtgllrgioqnh`goftrpkmorufrfrdmhsiZmmpzlkiqenoqnwjpshahqfnkpO_wl_ijkgoubs`pm`\qlr}fk|}qdotetg`l~ml{kwvtwpppovrrrvsoxsku}~vpkq|sxrqwopz~lfnjijxoz|taoqyxyxgx|jgs{ojutooptqppxuuxcbxo~trgh]kkqxzmzq}givqly|{}xnvyoyt|wy|vckz|s]cwwfuh\qpkzvrxmgiv~nqoyuzgnvmmfhrohjkdo`b_mrj{lo`pudcewfojV~gpnjle^hsi_gliougpi}iejyg{arkq}|bdjgrjtoixnohmfchbwlxnlnnoeviqtlmkathmsng_juhosnbnbkakngwiiqofpc`xopsb|gufr_inluldvrrkrimoZlkva[mpylmdsrksmp|jqlwShrykpsuyhlrvlmdkqjcvqtabswjighol{~vlzf~nnqoogiiungfiptnXieolskzhdln^opldjmkgopbroolrns|_mbmivbrwnsxpwnejltpxholrd|ipulwloqpn~qr^wqjx~lovw]vq_ojqzron`hnqfkwnlkx|ldmj|pglgkk_vjopqjltno{inhpx]l^mkoqpfmvmpgmm}cmrhkPpjk^]jpmrujgqXqpikcpqlqjjlqzpuokneglceinlnlhe`_zrpupmrlb]l_pprn_qn]yujsiodp|vlgnhtqg_]nirWodqopsksbhklsbrwmw{ujkp{^mbskmZklunjZjmtgevplvfuujs]pofqspnhzhvqoomtpvkhrtlansyqejrl~jfqbu{eatlgmntqmcvsbkjmcti_ppdjv^tismroptspktijqioamteXlqgsqpndghryqolxowlzblufng}hbusvout[psenoq{^shhugslqmkgm~fpnppfoajnj|eumXvjq^`upueqjlrqusolkwjohmjujwkxlhmq}PlsmwgmqlhnfdhzkpxZtvrknomynmpqmlgqrmw}jhhmrkpdqqkpjplilewkknjhtrvkomusirwoqenpjnmotmrosrepp^wqemsommommhhpo|iirgmrooqobohvtg{jfm}mgm~mg}kng~lomloloujkrDvpnfntkoolanitYmrtljojrmhqzkhgsjqo{i|jvknnujkrre{weuvosdcl^linz[d{ihmgvhmdxnheeinmjhtnljnnkllykgceknlx`dkrslkcgbmp{pmwpfpuk~skmowj[almqf{tqnsffrqvijwrswglxqgowprihhkotlsnkq_dnmsklmvmsqpqintrljulh]nsYrkqqqqsmtzbfkjiud]jsephtajqnwuousf_ypp}nnishvmjtpvevlXlvyqcmffsitpoCuierloe_lj}brrxknjxeSvgdiqn~mnfisulnw}kowwUknwqqawk`p^ktinfuscnnql{ckudmusqerlr`golpl|qqzhhoksailphpjnxkiwooxrhj^kxeiuxu{njorkihiiekqjkqhqfgp{nlat[wlj}lupPugqfum_vfpncoaileklqlmu`mgp`yepkVtnhowlplf_ghrownytjpfbgbdpzljk]qmpifttmjhpfnwjiphkwgo{pnmvmimnqerbwvnmmtwncqljqphmvhfkqpxismsl_ppakhrmmmymrdnxj`ngxkugolfolojm}luqrfszpkOlnmnqlkbmpkystpsqugldoianlwaqi}yokmmc]itjihnjnj`djijm~trrd~cmgqdqqm}souoYoflxuioan|hfg{bfpvSnmuju`bpix[hqom`ofrwrdypk{ydmYnkpjn{n^filjmxkbqpnlj~cylqjdv`kou_dnh|ddfgpmgl[nqgaqXaovhqgpiqfytnevhwdzicpdnlblmhallgqirqtlghknhnomlokiusrlfyclcmvhiQupkotinjnknzhkjntnnonqsjoapjvrnkngjekmlkgmgrnoojors{ljhrlimgteflqmoZ`kisqomj\lkqkrsmkqmjwfvqkrhlninorxgkolpwkikjpznqlwhqll}]mrnkhslmqqdnlRsdjw}wncmllresqoekqigdo}rouoiplowqnjld|inilhfivfp\Yrlkqnloynjjjrrbkl]mwqhig}ipkvelsynpvspmslqpnql}msa\irimrpralboj}ntziazsqorpnnlnkqmphtjnvmlgoxksummefmberjkoowtvc_hsjjria`wtjmklonlsopJvmmmi{qqiapfdftnohlkoiickhqmjydfijrhnjatfqjfodm{tmYkrzsfronnkql{figqmjnnzmcppfnllsewtoqspkjtgovkjfrplrmoLfwqgijpmvzjmijrkmhbjSgooeMntvgk{tm{mj{v4vjnsk]kuzjqee`yfkohhtpjrlwjnOmhsqcjiprrfqlKlpjupdfmsulmspsu_xpndnuliunnlsjk`foqmnintk}tnmsmcmiqgt`ejkkonexmwmugrr}okvutbotnlyv__layh{slg|slhfuggRyrwoinlriqnanhlpellsolngmpluqp}kmy{odcmqhnoijererodlakikmYmklYmasqrlms^vqpsF`goi]geprnpnpnqtiYrkilggrglfennmnnqmbzbxxsrcroixnuoilpgdqrph^iqymyuiosqfqftjiqclmpmquq\m[k`wewldoop^er{pfivrjpwseqbfns{okfewljc^zpnsp~okumnn_koterhukstnsmghrrfpjsl}p\ojoomkksopqlqjfUhnsewomgpnnjiiouldkth\kqlsehx~kikpr^npnql{nlqudkZhjjqmomginjmyusyjplsh_hrmmptfmsphxlshixtenqnuqfdhhosjqargaqg|Esvjponn`mqknnlrgnnbqnw^wylkpmqvuplm}okrik`tmkmqpllqmoxnkYrunhswnomqtpjglwjxlrhjbpljpm}mmoonlonnjitdvlkseuviomomoqpempohqsorvimsmjhhiknmsrltqs|pkemokFmjnnislnlkmhqlpmihuhojmoqaqmknpjghihplwqmrrmitlnkkrsmkpuqqmrmlroqnfrpmpqnjtvnmsjstrqlnnqsbXqmlojpajikrpqpmntmmmnwhretioo^penjlptqrmlgvuogkmtovntjnWjkivqplxchlquijkvtuppkxminovggpghoilzfak|kpnrmdscwrnk^wlan`twptnhowggqdogimdejkmbovowsnlltipan`ksvs_orjrzrhjukkstfnwlwujhbiinopgpt_ilaXqpskjnijopYeccwnmndsicvqpph_vwsseknnohmim_~smrqtfvnwqrhqhbpojpingoorjpfhninsjomojecqjnyqurjLpmlfnpognjoulngoqnnvltjnwhnolniupq|gkpqqojrlkbknqkpnjmjulnl`yjftmsjhhmvnjhmgsilomothxgoiijpegkplknojcmqqrtkqrklroelim{spooninpomgfmlmfrhiknanlhocjrtqkinwpqghtk_mjhmblym`shzzsnVqkpslsvmipe{kemuifoxjzp`s{tnqgonlalZfymndsnjits]flwppqmimnshrwgomxpkktlepspks}omoxlhjidnouup|yjvloplkuohrjnnokjlo]tgoomnlumcfYkoss~bshljnrlqjncXohnkkviisqkobrmnhqn[[lhkZkdpqhjvgtuxrjcipvlkqnnr]dehmymyj[vdkwHc_enwiiqfeijl`jorj`^tRfkxfntco{cg|dfnwhhi`~Ubvm_qf^duaqcqf{grsidtXnoYihbkjkqnkktVifk}cacmcin[nloaqmdqmtfagongb`c}lljPrrnk^ksaqfum\ywli}ujuppdrpqmlmlpmhadopkccltluxnfxfqbxlpgjvrs`ptroipiqjhnpu\v{mnrenaklosklrhjamkpunbnohhsmgxpqmmhlXrvTolr|jqlwkyaejgnmohr|osrpljrpjoinhpdvpjvojsgptojr\lvqklharsdpkbjkkuilprnpkoinrnqqvtqmqjqojsqjwenjdonqnpq\stmsjronvxnjrqshsUsctjwhnsasprnetrmepmqsVxnlpw_o]jptlhqkqpvhhffhphknllgfkwgtntbwahyvlhjpuprzmrkXkswlgmtqontvvlkpvsrtqiaiminnnmbfsfpxlpr\lkfhmVqjprfhnn_pwitsknvnlingsnpgsshkjok}loffh[fjpxtrjtqmlqioiffowac]wo|duqhmflptohmnpmoehpqwmxouv[kifuvrfxrknwto|xfas]qopa}qedmj}ijdem[p[x~|tt`qbkoopqtpppbvgg~jyuXlwvppimcrneuak_nwl{nmaqnzimjlt[qrcjkewlqumth`jefnhlunvkwniiyngulkgmdyeffgshwgudsinmjrm_cmhipisnipfylhgdkqerjfcmkndnrpjkkXmntmxuujpilijjguvgfqlokzjmrZmipekqlEmkspgqmmeghhhudh|mcqnegpjrosfpnlidtiihigonhgllkmlahjjqpcijmtjhbohjlfanoolfhZlkrksjbwqnkldihmlhelojmnk^rhpe_kdorkefnroesk[oplhwjleloeuhoslrpmimznwrmkogtmnvmhosiwuntropsqklunmdrnmmhlyhjtomilpmojohiskqtllphodrwnrouplatopscrtgqlulqkminmvujyZk}koonldmjlkllpntcgtphpqiglvj_Zhls^ltlqlnnsnrsmdhoplmfmjp`rmlqjoppfvwwdyaxkwvgqog\nvhzpjkrtdpfkq~xqodgsmvpiwjommnlh~ffdfsqox[|srjcugxynmq`Wdhnmvgorxoqecxdnkrrgfuhqnpkisrhkkjzegkrmpfslpweovkppxohl[sptnlkoavnpoemyflklvtoweqdironhqus]htzwhgpgueuol`pmtohsomcjlnQjnmuhbuwcgpcrjllfmQrem]`r`ltkcnqucdnijaxlokkcdfplvcih`imgp|ykpSyXtjwdggurwjRpuoofanbnnln~nnfmprpsytjuiqc_nigqtoprqnlnmsoJntrovuqwk{cukxiufkpqi]eoi_qunipa{hnm_uclyootvkpiukxmqjjpojqfsfezyzixysi`dpnvuqpjk_jo{uwqlikypkpplzpalnpuwwplrefybmt}jxtood~kpgx~stszwbwv}pZoxpsjoj~st|hserqqvjmdmxwlctpqxliprw|xrscrqvtkzqugp}sqswz{glzpfswvkjjm{qopz}devxxV_t{czvf|tjswervrptsun}ognovsdopgpiohrQdiksgrlpumss`kjnldoklqokkinhnk~nwynii{msvuhsjnlns{pjignpekrspdnmwsmodnhpmoonlnnbpkqln~qnrznwpooq}wpnYlmclmicrlnkusglw^nqnreronsisqrpiqqKlnnliksjoltoRlnmlqopujmsolijox^mllsqnistgclvjfzokspwtgjptks^hhmpWtmvmrdji}pmpjxojuqsokuea`ttzmq]it}PospjnoqenoZpnujmrp\vrssjclkqvhqwrjlrhh_ndU]kilmemrfkpotlmkxmboyltm{`skjrbjlkrqqxmqkp~torhrYkqglfdkolquvrhijmfsmppikqnjosqtnhamlkocasnqh]xjnv~ltmcrnqpqjrmeWxujpjvk}oxqokzfgqhkohomjchhxmnkp{}makmrcp}aporrnhmdepiulmoskqwkppohmm{rgkngfjignosspyZpgwqnghnwybmecsypljnmplj}nmqlonswxtvhrkgxoSrlhnok`yjux~k{siosppaot_ikutrxry~lpygqkniikirnssumdququl\hqp\ytrjpyfdwzkiieicgnkspngijocjtxr~ojhpwgjxZfj}vulty]gdpqctmlnvwopmgjqwfeoixmugjxnhrrjuwoxhex`mjrnxojnr]nmojsovkvqqzhkorpwnvgzpjpkqumgctfpbokvoettukodzvorwgg[m``gom[jXnppcue|qoscxasfgfioaplrxxqsggodtiuac~p}kab^niRjV^unn`sny|~tDrXyjRlwcjxkm|hpoalg`nsinUQt[Oqketgjlvf]Xarprgnk\rskX~okyixijkZhlm^jchZookxhbtk|loip}OsutpoOY{n^yn_og~qz4osnn|oioipm}bi{tnydthguazgfrdfuu}kbvlcymlnsn`mrlcVftxrun`jdVcotofkljmwnm\qokdgkejr^lvosUrndnpjmmTsfkhif^m_ltcqhlnto\qklxgjik]bpusftjvatjsgtngnmmn_TylwqhZxgomxtlioZpem\mnlg_ipljkmwhwagrqpnl|tsmltohtmclqfppoW[wrqm|rnmpnimpltlaqFihn`hitklwmbWtryxrmohwdzvtqnrmpk{Lkikruusgnmcl{jvsmdqoohsxpmirhqeow}ntsphim{ovq^kanmilohomssmr`khnlnlnmkqrrikqhqfkmmnvhrsrumncvs_onojYvjnfnmsmonnvdrojfwjnfitvxqcrnkrnwyt`uoarjhYsmetimsmjinpkoolpsovkry}pwjpihohklsuqhleqtkpdr|p{kvkrfipaxqmkhmijpqsorihqofskhtl{oloihmgh^qkilqmkkoknmtmirlkfptijvutdzmowsnbqtjqsmnschufinpbqkhlqow|jpkhjgnp~fupihngtkp^olkrwofj|tvoxkrsyooaontkXweljeuof}sslsml`hlqmy{novfWoqj^nXxjvoluykTmiwo_{qYzvYcuuwwnpgtypqk{qy|pqnbmhir~nmxyWyhqlfskejnmftbqqttslxjetpsjopxnuznfklqlxhci~knaydtnocmt^idnglcuaut]yiswrpjwv``wpYwqrotgsojz|{kqqOkkbcmil{txlfwxpknpfkkkujooonafclgnpsoihupdnsfpui}gxdkvliq{apwopmpgm]iioyjfznmitlapi[imlxihhozlflTgphwtezllgplojsmuqirlgahuejbglt}lhosuqldmafsrkgsodkiqgswshiic`gonmlmqhnkptnujvptqqsmVkfkYutaqinjlzbm~\wmkkkislwrqrvogqsmoyjjrtgkxi`ynlam_uhonyhtinqfxrplurrloopxjshp~tvjhmkzgijuphzkfisoljejotlkq`hokromgvjcnixzohmrfpykpvuherrjer_ypsikk|xhtkkqupopgmlnqnurrrktqziieoocgmjlo|jogcmwfoc{xeolpoxneuijqkomjurnevmijpljo_enrpogrmjnlomjnmmcnuiopemkmpssnngrkcmxivolsinnpdmjiphjkkjqnlimhmiormtppeohrorjhushpino[lsfsdohiosniklqj^mpmrg|ql{bpvommlddass|oshvktb^hsikYhwod[q_emjjlixe_k`mli__ueqhqeukcmkvkekujn~w}oegjqlminuqgsshksrrYn~pXjfdfqwevz|mg~tjnlmghkphboyeciesv{kltklk`peokdhxnvpqgrgWp_dmcnpijan}dlwt{kfr]jstllglrwidwogvp{ufjessinnkbwjhoUwsnshrjnhf|krnimoipmnhglnv}klpnpmjthluewjlfdmnrimontkkugphomfphnriqknkomlRrigtflurrcqsmvurkkjXjspmtluqjfplneqroie|n}}welrmZnmmjpqemlsmvndqykpsuiploy\pllnlqpnmqunebpnrhphvnujpqfqplvatxkmwhjmmonlqfxvtjcrp^h|ksdi~twqjnninnsryipovxiunt[h}kmbvcmrsglfp[p`ouxnk|kdmmQlophow~sgufqtrrwejRg|mywosmoloibaqvbtwdnvslerNaioqlrscndm{omxltwwiKpnnfbmp|lpkvqmjlkjitz`lpmhjuonqtpntpqxrwonskbqbyrdbkotkkxsjmmegijnqpjfchpqimpilmgrkgjvfooWsfllofon`odjetdepmnpopjtjrdmribig^gglkkmx_mo{xqgusfdqnuhrjkfmpkj\ponmokmvjwekos`flnpqgqnjkrrqcegnfmykjrntbtlfkmevnqjxngbkxmdncrjorunpdjfkgl_kksuks_ag`iedtfv_q^|vpthkbuxe~cfvdulunmpop_q^k|_rprpd`yvmunrmxuonvrtmmfctf|hxlnlrlcj[u~tpqqb^uetxlusjuklxpii|}jlqtelqwmoluczlnalnrfvsqznd\qfmxqsrlRlgouedpvkdpplnoj\wrd[ee{no`klutizp]`anzwilpjtqrlfjtnibowtvtjqikqqmsrkrmuptkpqqoboolpapvljtgkkriehmhjdrbsi[cjujyqkhonufnlrnVlrlrfprnpokwoptyiqdmquo`ggeprrmoqo[oowXmf`n}crmg]ipglmkpurilm{ytlfl~qmdohlpmevfohsmekk`lujsnrrmlkumoouo}mt^lmgjiipjijioqoaivikjxvn`ffesihk[otofixhnvue{uxhqWypsrupqrib]vltdz]pjmj_nuO~rk{fypjwqbyjqsVisinlkmmimetngk\mem]rkjjwxWmqk{nnqkllpen[nplnnh]plonljnnvmculstrpusomhvgp^rirozmkshlbs]}m|onitzdyg[f\g{h[}diLtbtw|peuyxk|ggfo]lcpt[Tnlipusup{M{Wjiloala[JxP{mgrpmbzwao\YVrvjah{vZoof9fniftjk\bylYk[\kritnedxulizoYodsd__ohhvaifnkpqqqQpn{Ypcow^[ncy}sPsh{liElynU}\lgbT|v=_hdiaoijpltljnjrwlofps~qftiskhltxomkmzhlofq8lseiokvixs^mzfrjpymtbnlnisonjmjrp^iopqott`mlqnkhogpUlYrUdpdwceodtoosu2gsnnmsnruholhhtohnonqZguvtvmxw\Tonfkqrotkpigxmqongfvsys]vrnFfphoVjhmlisolptrljsigokqnvmgewnmt~jjkpl_Tkleprnjtr]vhpvochnsjpkoct{ikol_lpmujm~tjrhjo_}ko{tqmvhsmudto`gwlrppqqvhqfutk|disfnoqloprkhkjdopsmeg_mnroetjrnmuypksioymqumapqplkjhsnktjiulkjpmlorfromvkro_iyvchrhqifmenssmmenlpnpqlphhooromleqhopnmmoodmpvjkq}ritmmoucjolefplpmjpuhljqomhptkmtuYtmhjlromqmrnpqm}qksswg^s_pzkpsxsmhhlffmktumnvtrnxojlous_fpokjkolqhqfsRzfznqnslnookpivnorsxmvivgugkhodkwtpmpkjkokkotedxvxpgpomtyrr\vztxn`pstporwjfsmvfu^{stdmwnqwjjcutnkqiukhuzrjohveknornlpqtkpnrvbtgpcntwnpvttwotgzvawptvjkqhmpcsvzunpvlkps{jrqcYn}yvrvuqt}olixgnukcigtwsusoe__sdsjbnqTzm}crfotiuqztiYzlwptuk{qnbulrsouqkfortpjprfjxrpnosxhzjqojqftmpknuchstclpqnho_olsmpkvnpk`oilfvp_nnmoyzkth}glsopmoujjnpvluoogZmzenosijolfnwjbosn}zvgucyldmwycoliktspskljqhlvlkfnawqsskpsvnpdmorpfnokqsovohopnojolnigxmvmttxlkrnuuvx{buljdolrsspdbjilijqmrtbkpm\fcjcsrfgrtoqq}voywmklzlkjswqhxosrnvi8pnhgp~q{xjenOrYdqjtsk`fuuodrpXjporfmvtmtgqcoileiwmcotn]rrtuensjpiyoplyuix}pkqhoi]kqsdpolink|Llsplmjognhnqvuhunapqnqrpitoomnlq[hmjtmwlkninntqnmz^plsttbussonltogtwpswsntqfgkrsqrmcusibeonslkikr~u][qsiphdsqjoqmmjopPsirehlslinxirkncwivsmqjgtoowOtjuvpmvlfsmhvmrorrtgyisigtpiokgupinwqpqcjboqnhn|xsph|dg_qp_r|qpZelrurrjtiyod}fusoc\|jZwcp|jnqerlmxf~ng[blnqecnuqntpUcp{iklfvqpksltpl~wddrjvqrqmssxsfahfplfshrhvjoaqklmpsizsl{|\extYwejmdlloqm\kchx_lkk]}jfjsv|ojfovkvpoxnRohrmvpkgkizltlslfsmeupqngjkromnooo[nosqttmkkmsqwxsioqnmnlwnyonmrevfvwt]eligtowqumpkjjqbxkghtnQpjqnntioeimk}qxqswdWsZpw_pongYgrs`w]wjtpnmpvhfmoj{Yjhisjhpopwopuu^iqoipjgrskq`Shwf}kjkuokdkiv`fmXzTnpjmqkktmcpsjkhknkpm^f}inq`hjjin[ceptnimjlplmlnuilxjhmgrok|kwkqqsgloeqnslqmknpnqxtlhfnlmijenuunipmlhf_judskxtmillkkhjotjSmaxniiwbumsftwnislsmspmrinfkuitqnimbiiljvnjntpoctljilltnqqqpnhhtriuyololooq{Zuretesnm_w}nmqvYwldQnvit}Qbhljrfx[qqgghj`Ukbdpvgtwdgpluorgajxoppgpkhggb`_\ZbcmxyqjzRyoipylorld{ncp^s~ckizqRbpuyugImcw\vivaYdt]fyqlrVs_lkdruetxhc}Wyktkp{iUnw|jfpiksujwkjbhucxszqrq|sl[kxqrrpnyfmhudkmrmq{matonmvnbmsXe`noh`tyjrmyqpghveropvpiwq{kp]jpntirhjnjeedoflorrk{qrqkrmsvyhosWfgjrkrlvowslpoyhomurxmtwohui}gpqvmpwor{smnoljftlt^rjqmnpplnr}v\flwudYntjrvveu}osmkkqjizcpxgxrppqolorpsqwymyilpptutlaoljmlkviuoqrQrg_nookugfamqhq|{vkpsmslxjnopusylaoqvmmsoinmumqqpvkrEncgsmos`swrohw{M[nkrlvqpstorknmnmtmqrnassxmxsnq|oRmopomlrxtpuwjlhlheos|ofxsqV{mzQosopvinvnlgtusoipivnip}vnhkWisfouhvnpr{uojirbrpompssqjmtreotmhrpnkjontjlnhjqkllpnlmm_holbbkqukpqilhnqrqnupjcq^i]qlkrnunaplnjminmqmuleskyueitlooifqkirltzoqisjpxvhdlmqrnrvqflkoqvxcnnrpgellmohejjrkygiplbyhqiolqumrqioqlpmnlrnpp_kkd_xogtnmkvvjimgpotnrm{hpiudghowguZinqsrtqkmqujofmysuoirjntqsmhilmfjpmrrtqkvlrtmrhpv_tfsljmmmqpqkmnljo`gsa~ocpzmcoqhmokuvxpkturvp}imilfpnjtngtnloi]dgruswoqomnlssmevigoooevmugbksmr{temirmmfkyypmmnjjklnknhtqge}qezijfqkpkzs_jool`irlodqpip{gcntlhjoniuhqanp^whqunmdugownwXqmpjp_hxippjOioosnvrkh_Tsunoqutmliespogogrmspln}lpgfy\uZmosqheup\rldsjxoNmjw\Xoysamkoplt\wvpxjdgnihm^nto`syhptjttbpoolmqkh~fkr`qnsqipkgvvtqonkpowjkqmpvtomowmheseujqmoptpjninrnuqql|oniwgmrlrtpoT]mmjpjvmoqsxhxvlrlwfsnyxqjkjssqsmnnl|tgitrbvqhi\wllglr}gjg|njqhnmtjginrioXnloh{ompnskqpqtgjsrtytqlixsspnknjjnonrqbsmlogr|rvmvrg`\oitgjovttxumsgromtutqkklitpyoefewtvjq]rmiqloxgstlaocsqokvrajortm`jkppqvlvnntqb`rigeplsfjo`~vknq|rnullrigokkqgdmqksme_lknujkxqsprsroscprcmfqqqshpmulsnrqtti|ijqoipxdmv{mqqpqqvtrfshrpgpswn|tsusrontXmqmpqmonnjttntprmkhmqygkjrkmjt7gqpj^qyxwjqppauuuo[wqtvgkrdkvbhkjp|unkqmlozfdmwpwJl]mwnoiropjkynmofksmkittcysm{ttjwnpsyjhhXrjokiifmgsi}ogb[mmxn|~kxmppkmkgpjffvuhrlhwf`n`koaqjwrfb]lttfjmuctxdmvpxepti~shrvl{mopfpxhqkf^jpspirstqppjxnm]lxvngir_`fkkjr|tklxosmltmwa`a|tnhicquv`oclswdojpkqihvxxkkhnytmeqykmljjlpmtfmy~vdwkrjmjmnwtgoqq\astkkjcpvmovepmlorikndnqnljoqirppnklofokmjndkoppunpoposmolhdjteor|lpdo|rrxrqinkwemdqmoomrvosffoonlnrngclollqjnjxi[iomt{lkmjpiqxvwimglmqmktehokmfkmmotn]qhjtkoknsnbonsnorkoiemxp`Mnj|kWc{prii`qehozptsbtkocn^xz]e|xfd}[ihxjrpraXiturvevgn|qqtp}rzqvlidr|jpq{whnonjmlvVvksrqmodo{em]wz{rqfkgnnrtpqmivgtsndsgogqaiku~{asiomp_tdzupfzvl||pbm~mVerrlZxjxfvpvzpon{mkjwthqkqol`mlmisaqtwlvlmfrouklph|mjpjfYlwpflplblho}gtlokqksm~oxtfjjrvjulluyjpgzusoorloovupplagd_qevsjunmkemnrjpgrlogosvonfmonshpgmsajlhcmuosrrhj`bqspggovnjYtqhuoqsyqxuomhiqltfaqg|pnpfulginmktqllilsp^vetllsrlXtlslxqohibwqn{qfgstfnnmjnpkkumqxpilpjthzrpuqr[kddngq^mjnirpuiiqrnlZpvv|kjjuwtsZizssmqcjvqkdmrssn^thna`whqiUomfino{styvwmkninpfnvkedrkvqixvrul{r{mm]cktjrsoewxihmyiwnvlsxwjpwoxoqplb|pioikofccwt}ufn}pqmhup\umnrqskhw^sqsmkpllwcnrlrsmfcoblu~tonbkqd]iixororvjpmpmmZqilrffpvx\oeosxmsxnher|pekrhruqrbmhrqknn{uppgiuvoo\gyo|lrpoppfots{Rbqsloiqupnemohcnj_cuqmbiipqmy~irrblrnhlnm_}rvXg`}sxlfkf]weomjuzwjpas~q^irtq[l{ajhvttzebpmprcYerowjfhwqwvtxopeypjnhoun}r\kzpgg_ekoorpytumihilamurq_ixbkzjkonlqmyss{jvktqwpqYulqkocryljoblpofmjusu`{umqt~kpths[ns{[zjuhsbrrZxpnpomrpopplpcmeuookcqvwqytdfjegwrxwpfjq`h{onzpimzmksuhjvlpeotefiig\jxnloouwworsmwrvtnfjpn|qrktowqntkjkkkflwwlpilplkh}orvcmswkgjnihtirqutdznofpzueztoXf{mphnntpolnqivp~jfqpgnfuozlfeetn^ltr|mosnumgchyqp{pvqognfjndplxcpml`jcpnjvoulyfjvneowp|tidlpmdjlrkonuiiflqyrcw`porfkkzlomsqw]lumivspzt}hquna`wyuwpvmqkrpouoxi_rw\byunehubh{yamrlyswfhjvhgsrtWkytjlsonoxqg}qj[d`qqmyrpmmsmY{tnlsmmvnfeoemulvkjtlry`bj|qpn^jle~njvlqvlmghloqensmkmfmcwknpclhlqksj]wnh~qmlquqkwjmj_mniooqrnsyedtstlnolfnkcgonorjslhklovsgjr`domjppkjkmnlirssmokm[lknstqffi{renirdhsmgq`vcgrlpooosokpjm{`mjrdj_uqrdwkvfkrlplhnjkxRlV\ruVqgwbuu|Rl]sfktgxh~hro`~trpnipgbvmasqoqp_xCvtefs`hyYonn^hde]smi`bgxpen}{|tXz|wm^apnpnpmddb`gm[jqdsyd[stcdsnilkph`xxxuVpjc^hLkrunnfhj[gputtwnarqr^mziww~`mznp_qbkyvePg`ccqxcdvxlgvvznepsgrxxlji~ppkltrildfseopkuhgdnkhmjghpgcooosqrkrco^gox`mqsisqouppoemijgsnsrvyd|ipf_kilimkpslkjffjmmnftpsajpkfq_tfppfneoqq\gfiykoqjgozijbiojhjvnmkempnqllpevojk\wkojalnrsptgtqrrngnkdjkrlXx\ojp|nuqwhznlzsrsjolwuqpjq}||t}sl}^{oe|x~wyvithhlw|lprptuj`{ispsfqwnlkntsnzyrwusrrsgmkmvugo~jtkrx|o}nqsooxm~t|Zzjwuomszqnnswrlj|txjjklmnoripqlgb`^]blqhlhipnmdt^ubofn|oljhpe`xco`kggfld{mvdjxftqjihihqmuluyvjjhnottnefjnrldjkoavavupppdlnvtuifmsen|sm}sg}_jukhhknly`ql}nmtsXxiplqfhriqidhykogjsglpteeijklgjgtvmdqkpkkltgjlkuuhvqbhsycleldp]q_Ygkwssoqisxfo{mhnns^oumjpspnmohtgpfnvu|kvtojw_xlnnjhum}ntuttwquwmz|nldpwlplspqukqtp{qhkrekj}ysznqwuk|psrwt{t~thshZt\mfuuonp^|vqirujoozchkkumlnkcnilokokqrpqodtinzmwhciksnjyofingdysbWyominihrn_le^|rlzfymqac_sr~{jlont}gtixpzpthlsmlkuirpr{jfuszgwphmukxonopzqrjjkjjfuq{jxsiltfrvmnhjmqmofehtol}rj||tvsiqkewgplVgpntn^rlmii]glm{ipvanwqjpe_ujo|mm_qmilsnxhmqvhpgx~{rfikwmpmfotcxqlimdyjkkbq|oskxyqfwsnmzkprmlSqtpje\kqlsij`ovlvfqmqhdrognilnlhsYrhltip|kljjmnysxfor_ilxpjoqZibmxeqrqnmnotpulbriwxxckkkynjvsq[fvqskosmeppotvpjkgofvjsnupmercqvenwon\tosinnmnqokyyrbxnixjsrikpknno{jthqoqpmrlilrtburmllhjqkmmqpsrpsnruxmkhpkmgqopfklofqisqghsppilohmvyGjltksdnljlvuxipsgqxqvlHsfomnphJpmnqjSppstqqmotFmtlsnrntonnmkflmznrrdnjonsl|zpkiuzkrmonk~lpimkrfrjkppqoie]ngnx[iurpnmqqjgakomkulputldholbphoepdi}tulnovhgmpsiynmnhrlqlqnsnjqqiuzouvi|kukmjsokirvajwoqjpmpmotsqmqp~rsfkfsolspmrqchrnmqtbsnrtsnnnoqstmfnmifmmrqshpllq{qlkkqcpqrfmlmewmntyjmofbslosqjhihjwgbyvlvs^krmnxrRlhldvnvuontnkvgiriihkgkgmijrimnnn~upfirZVuaxwooixlhmlmhrkqgqdthnmpw}ofikv{iildqmgoimqpenjjnrpjqyvmcrnbexgtrwwwilfxplprkumjisimrrkiooiqllukmay}Xupqgltm|eoftkojppiswillhpn}kx\jkqmdjhwnt|_`ogtvslovxzksiuqjtbohlYujw}uxkmpjoXmrpjlnijsfh~nlfknnunkwnmnuqsvmkrvvnkmyhrfo}rnnnrgzlnxrgumvhhhtkxn}hno]hfcmutjnlta|fpz{jenibouhnelbnkbjwdsm|jodpurmxtgmionpmokohtnttpgrhflmyqu~toxnddUlq}sdqx]uorvfsqgsrlskklwqh|nd`imqub|iutkhcg[mahnlondxokqnb]jqnzxujoucmqokjdwwu]w{rjhnojorqpbhhdqqnwinthpm]pkelttsyqos`qmh^cngjpiju_jasptq_ljj^hvot`zpdroggo]fxc_uewxsqtgkqjoxnotqgjjmwqrniwolpqlonwxprmnkqWcqqnrrnnlhpqooojnmjovnmfgrppomqnho]pqqqkminimwgmqnookigkl~khhllrrSglonqlmreoriotmktqomsimrlrhlqjrsmniokqrookmq{qwgfltsqZnfrqoqiomppticopkkunnjooommnlxrimrikkvsolnmfpvojklhytwfko`hnnpniqwrtbonnurnplotkmmlp|neifkrwgwbpkxlkpuoeipzvlttn}rlemnnknlqnsoojn~pksohqshnsuprmohsonmmmk|mpknhnwippskytlxfispvq{i[jrplsjik]mipproslrmvVlmuplhstkcigaevrwvhlprjflkxti|oxliqolepn}jsmirtwt`ltkdelcoqpmuenhn`pqrqolq|vgalcgcmji{olsrnyhpuzmnlnloqStuiymmnrtngmhhltdsegljqnb@rrrkaTwy|glxanktrnjnugmohsZqxvjihpsn}kequtjKWompewnmpwskiJrnglvk^iuwfdsbkpi~raqxqloismwsq[jkunixjyuwjijpyzdnmpkofory`vtgpqstkirrkisqZqpjowkhlb|an|nqj|hmsyjwbjohnpmnjhqpgoojwctrppph\plnvrmlmzckboousknixfhqhww}jZsbptXv{`ml}quqhhiinqvbxnjunjups_qgrmhohjwqlsorsmonguenukpitpdeuldqis}hl{nghvlj_skkyp`w|ld|pwntoijgolv~rsultlyjalfyrvihvnq\oloulqsqpmuqplhrsz{nlnvl~hgyqrmmylsgmsqcznrvtcvpsrrlo^jqpmrnqtvtqhmpjYsnekrsxrnmspggugsnkpwlpnki|xle]sesgl`vWjkhhlmq[gomnl~ooyqnwtbelmsrquil}o|lwrwsvkpedkwprnsioEoj~u{rjurgsjaxn|rlnlptjngqdopwuvuojomopltkxpjnjqofpmu_nppmidupmkn}jqllq_rkhoqpmnqfcskmivgzkstsknjkwlilqszpnkbliphnnmjru|ogxrjjikn_uiajosjtqggnnhskjsojnn{lnmnnomnogmnsjqjytqbkrqsnr8nmloqyptpolkomkppTrfjinolb|qlnskronmrmhohoqnoypshoosomommnmkiilosooyksnlimqwsngmupkpnprk}Vsoolqqgqlhkioqompnrrgql7ipnttfnhqslompqoliffmorwslimpovQpmmslnotVkunwhmea|{mnovxo]ltgtnjrlYoslsibqktgmjulntnkfjpjurkjxovkioiololafglgsiqmpkirhimhkswgjkmfjnnupjxnjkqomvrm{novjnlsqvsupnrpmfqld`ksrthokmkmsclfbknrmnmyptsopuazkqnnmgrjmpmp}rcllnmusrjqbimqmmrrrqkclsnhskunph|fpsqpdhnnhwmtmSlhnln[pmnownsonqronzdpwstmlsubstngipkqmrqptwlmhrjeqrkumhnrhiijflvnjjpnoklrzpmuiomwhqsksmgssimjtjnhqltrrpqninqlmpokmcq|nkqfpqroskhkkoiltsotpqkjtoppmvlipmrrmpiuitilon]kundpr[xmPngdrikvmgqhibWpmlopicnpmjtolkljkpgXqkomduwgwmUjmjloltdhieheslvitqnjpoqfrmxytxrqpifxh\teups}ukqorlbomjsnmwspmfirlprukipi`omrtjlri^ndtopmvntpuhfhobpmremnllnkjgpjyRiwotg]nalsqolkxstlklophwonr{cicktsy~rlrke[sptnpiVqdnhwtcnick`d}_wnmgwkfmozhlmYqmruwn}|tmisjdgptpchulke\dhloj_]hfollXgmnolkoumlkfkqnfg[lmejmdcqVcjoml}spilhgrrhUefsqmjSfinlfmkpdlojzghnnqjugaojWgpgomerlotliupkhxrjrjjvsqlhwjo]}jnesnjflnnurkommgmqomju}niskmehntrl}ixftextmqyepsekuuhisuhmmkZptenlnlqgsuxvjmclkoluvxlqompo|tmwjqjnhuhtpdzrnxiippjw^otqqlkgzxdnghgkjwrnulipnsnqnjas~thuqnoopr{jwhniopvtpnn`oumuoojmkunkkvvsremcnhsluntoopqjmppwslpfhrljixppacutojsgqqeqywurvgvsqjmljmqwelhwekqzpkr|pslhkos`ooujorrrpmveopaqvpuqkktkpnmqopqbtgoupps]qtmxflkokzodqkldzwqrtfttontnknnvmfoqhllqpsgrmclonslpmukluklnidjhcplhcdnvtmilquhmeulposvinnngkrnrs|n}z]mn{lstsfnkhokhnptg`s`pmgkiotippznkmoyjqvepwvwirxcaroruqnpnimqjitv~rjnvkqrpjhpmdrl}fmehsufcll~omsw}Zowgkndqsmwmuttqgrbm^ltmoljpgmxpgnjkpnovpiumhhmgwunqpnokcnq\iphipqrhowpoilplrkioeimsgnnk|msip\mohouunlpatpgehemgjjikkvmtmmrlohoqkPhmtqkibonlphqlboqjilsgihmnqonisnghghcodiikpksrpkibfhmlrpjhjvkfkqiikhkofmfbncopmfkloxmmllilrmikinmmjnhcqpin_d^iplimtooopk]qqg{imhkrti|rpvefphkjokwskitltmttnnvpuykrrpdslttqnj_}islbujt|m|onpppihmvojmqmolswmn`ntssjsno[mlxxlrtnrnplmxplrlmv~xemidrdbtlwnmfntfrsklmnstqgktibullp~pejmqhorqto^ogqklnnnpskfsomnmlphxdrporyklnpeonqohqlstm^nkjynnljltnnpwwpfn]iylqmRcvurxugkwswfvrocmnlfiqoopefuhmikqtdnmi{skwlplrroosvqgqw`lqnkmiosnmrqxssoonqrltlorsrlqoutikilolovkammoikmmjrgppmlomyaxvowlra|ojfolrghzphqnqksnipnnnri\ptpeedmggaajp|miop`nhnnvpam\lau{uplcriufihuwevlg|ingqikugrlnxjqqdernrmmuknvqfify{icmdokioujnlekdlttclydjnnpruaiopy{tszru~iofmqepa]dmttaUclitlggqqrdriboykhrtljcp`venpstcgizrmikueluk^qrb~twmusvyy|grvtw~sq~v}ups{mmvrh}ss{lwktyn~uzrnrpelp{~lsvhrbxk~mrvnhroq}gq{vwsproo}xpmspvwqyu|nvpxQlr~y}yzxkr}cr{wnvnw}|}st\}\ymokTuylwmmqpyzvssltisnlk|pephoo|jfgfkiorjjkpsphr{slwzdlppymojmtpoimlnqnf|hllskrsvpuqrkharrpyscjinpciqqssoqmt~}oavgjpkqlqsqcvlxhouxnutqxnqntwsrqqqtwnvnjunqkyrgjo^pnswrmqmukvktpjqjWYpolkrtglnkr^kprnnpstxoukvoqqvvstiajqzpogakpuc_nqknpktustinZ{qopjtpnGkkmprjskxokYsls|niwjpl{oplkmntrmfvogqjomqmpdqlpiyjmskbiutkqlshxkkjgklNtioophjpkrftogfxjugooqrttitoegplpyqkmjmnwnrriioXikukoflhqptmyjnskYjkr{qxmtkofvuqneomgtcawwvwdc|fhlokrmgotummuow_nflqvw~krvmylhkpq`vpp{djgpumdonuqhntvkmyoommoomulfpxtjpptwvvxlkvmpqxonqqojdsjpyrpnvWqfxwzknsx{]odgzxvshlervk|qmfkkyp}pwpwthl{litomsrg`{nuzsixpeksesclvkmir{tkurugvxdjbmflxaa\oouvtm|n|goklgd~oqsvb`zqmnidq_soiumbujiu^lqrhhmtblvtjnoemnp{qqroqu~s|Srkeqvlqkoipwyocrhptioxhnuldvpotztshn~drmuxskprs]tfjmquz}hrsjorwrnij^jxmvmmtvuecprfpotnrpljqtbxvslpkrWjytwipnxgzfbrufZnktLxtnoM_nqio}z{nvo_`ThhyTipT{jax[{klewsxvnf]lhzqUoaoe^\gbhd_q]ju{rurgvnnpwkrqrijgsmfxhjfhiLfmun|^Vy_|mzi}TRozxyupqh_k]khifodtrpktZnckiwyuUqxvqdv[tniykhevj{OTojquegnmctjreco~^Qktkhvccmj}cfekiy{pkjpdksojchmsnwh^bohtdf~Rko_jeuggkpworcksjjkjn{vvr|ythjlgiskmp_ldsmsk|`pdck{jn[pnmns|rsfdvsZXspmrqbrteloiesj{ctq{otrviiylfljhoelotmukkf{uo{sggngqlyxldq]pvtlsovurovnuzqkokhgorzkmpuqropoxnqhpxowmajmfklds^krswsh`nqignnibrynnpromrqsfXjqoqfrpcftxlmmuurunofzvolofgipufykvkhlh`rlf\lstlsqkgruohnlnlropnphh_cpnkwsmdmpljeontrhuvkkuscponzohuvqmplrhnwxsqhkqqnikmtqmfqmaepmsytppwptgxrgnutnvrljmpuiomnpinhgpafraspaljanjmnmjeikuqqjpnstkvtyrt{kxpekimnnkvvtojoundtymwmexqqngnisbmlsqmoknlb[lmnqkienzmtrtvz^ixsywsktionpligdjupujgqtquxmurklurnufvvhlsurrgkqpgnxvh{n\twliodnosmjllfemtuk~yoZiwugfkji|lnfmlzooizvXpnfukvripgvgqpudmgrhhimflqzq\isqvzjsprnrqksvrvkqtqolnp|plz|hz_obcexbonplwclotswaylljunxsltohikkyhgdviolkfjbwqyqdcdsnikls\jrrtkpsZ]rsujmgstnellydvpsglssees{mpl~jlhdnmmzozjnnisshrvjnnpjcogorZsgqlenbwufusirslv]krwopdllkxm}cjerqqlvspktnrquarelioq`ypeholw{lrkhlt`ige~r|qwplqwphovvvmpkmjyorhcufmimhujvnsoskthnnqudxsxmnymvznjwaxxU`mmnyqorrrtrnnt~rjrhrynbvplx`jookq|on{^ccmnnmVmesmkqfqsyoqnoprvqkgsolnxmp^kukophnkanfn_oxgmygqh`oskwinostllpppggprozkpnujobkeilsjrjmkpqjlvtibsxkkfdujrvppooqhjjw~Y|fkmoq{wm^ht|rsmrfmlihnrko{oimvoqahlkmocnmkinqupfjinqqbkqrsspfpelpvtgpuuodkldicurldoelmphphjfpumisqlpzqgpmhrsjnkpwkgsqjfrolkqpxklplqnemnkmgfslhllmyqgupqvpyslsdivhiqmrlgpqtmpfqgornlrukrqquijbpyg{pjupnmqnphv]urwjngmuprUqjrqbhwtmgovtomplu[xzbrwnio`djkbtvfprrozwkfRrhm[`|nghgutmxohuzopjtymqkocjslegspkmr}rcnzpvpqmflpsesqhmxovxthrqedhifuipnrtwmgkOnqqw|hjxg}twovrke[iqtwsflimsmhkVlyvio|arsvnoekynhwg_osjsumolrxgrmgsnumkowkvsllmknprsmmqsrlpijtlnkmcqqlrtqsmosppososlenmnlnnlocoompgomojonnonqWkqpkkinLmopo_svumgpoqSojpmrqo~}mkgmjamqkuokfmospfqnqxkmjYkrkiXm\nsnqoopoqozwlpmaxfonnoplpn|ktatokownmknfwmliwosm`qnbi~ejlr{sylorquhsiooovqq{qqxkwopeo~kiyqel~rxwckjpgnk_psqfrtn_imomfgtsusqrlxxylhaovnqllpluiokeofmvts{etwpnvwr|sqgstf^ltntq}qlowodRnns}wpnnuisksskrciuoolnqutgk~posilxmmnryuliylhppqsqfhhqtndrrkjkjnehjpnnrjgtqspmnmptjujnioiixg{lrrldlrhhjmuheetejpnekmnkitshbjipmfiqrrsskx|upkhqahjqlhlnlqnmmli`peqjunjtk]enfm_mmuupk_mqktxmfbltljgmorep\xpopmjmrmlolojtkuflepjnh{uqykmjuq`ontxhoyjjMigssdplq[rskmwjspdjvgsbt[rwcrmmcrv`l^xhuqZdevjsxesjkqqsqrrtyhurkqnpqmqpu|v]grmplmm[~lstpvm_miplugov|owtsrsqmqknyptrilppmjjjodxvlpuqtnmttprPlrmplaqnknonvnojVqnlm[ute^jkrs~sgpkkwuhgjjkhxafkogtioygvsfmmmjlmvjmnnvqzktmivbqvkzkpmkwtjclmulhcljovtemsacpmlfsmeumsenq|pl\jlm{svkpzdlqqpsnxqoivtrlqugioqppprk\nod\im^ksfwpfkntirlsrtrlyimxvxqmf}jyoqk`pqimjlmnnghhkjultnquopnwsnnrnomoe^olchk{acrtoix^n{pkiqoetiZl[cghlrfv~dmmqlpkl{kmlscdtuojwxhlqguhdznnumomiXnn^ltovldrtgrxxslxp\kugoorgmipssquivcjgkcsjhlvnhrpbec{fppkqmnqlmwph`flkvlronulhehtembmuqmlsmoiunjojplnrgiqsjguqtqykblp]evhmtXkX`n]XxjzPmxnv_hkpcuhi}rijfbv_t_fswlsqkhzlswZnkajZswm|smc[ade]dhffv~o{Zurj{ahyznkutVn~ibt{nouzjpaahplydtbQ{yYtwsn~Kq]pttfjgromqsgsjs`vcekVrn~j^khnnm|xbfvqw_^fwasunmguiqitpkqv|rlpxmgihnvrlkpjjljpsmrrmlAtl_qjkdssdtorekmzvntpkhnxmqhmOqsdhntpnqpekmrlsjopmk[iucptkxlest{viww;}olpqjckujqnmjhuxtlhlnts}ttrtqkmnkWonfpprmpqoeVolhjrj]nnsmVucjZtbwpgstkornnprrmnoollqxps}gowjolpsmswpttppstsuhqppdgmpikmqgvlglhtctkpgdrphgoninqtojq`vnluypqmonpngog]iyqunpnofjqmuehuhiyqpoqjlllvmziomjqrin[sisnololkos{mrjvihmnmh}srmtl`}jokknsyh~kowvkiojqsklwllrugkjyfwirckmvphxmkjjlimijddojsthpvmnmlnqmofrxwlhniinfqnkxQnqouqjkmltunlklopiu`lk`jgIsegrpaqcqnslqklxipquvngrLoejqqcsn^qmufiqgfnenconlliqmkipjjhoulpllPuilrtk_tqimopwnpthcqjienjkgpqezoul^ngflhlkqspl^yoeofjefntj~cjilolu`glwxeiiolm`a^oiesj{pxiynqxcXpnv{pcigervgtdhogplzxsqwutxocvjrchrkz{umYxikkifakrccxh^knlmnrclpjlmycnlugcgoomumvia\qjnqlxnqvm\}woxrvjff~frnqwZbsr]_rspeyfqjljymlsifuhrp[sjqtkla_pfsalqpommcokmmmnkpumwtllroueq_okwmyppwdnivmnojrbshlg_tdoxnejkig}foqernrwrleeeqf{pbnyqrtsdmvmpqtajb_ozmintjipfnwmolefedkskunkggkton_hgylmamlrrdcjprg~uqosjqgmpgrsoimpltlmqikklksvpihpkquuno~qgruis`sge}kougleq}ltioghkvncjipnkjs>vr}kiqfddfufkjupxerqlpukomr{r7qxmxpmlpeovdskswltjelckqbYpwqi`aq_}mn{vj|nrswughm\i{is_oLpl|oinmrngqeza\klorudrkfsckq[nojmnm~kmvu~ppozniqphxjsigtmpjfkxpkwqrggrfnmhs_ohukmolpkuqlnolnmtohjijUmpohrpionrtpmflotqfjolisdjulsojkmdejpqptpexfld^klxoopiajhpmgprjNmlvgnrjgnimcojqk~vtgrqindioo?koonrgyonqrojhmgmhnhsipogjgi[okljrqftpgsaljlmpkpus_kee_ocjzheqnlcxorsv}omes^qncoqpetbwfw\inpogrdrhnwerwtcpzmpgjitetmkudnjhmmskpc\jtYxerijmnrisrhnkgq_^hkrkpkgsmglod]obcmsesc}mlflesesqr|alpuqvvmsis{rm{]ggypibughqbbgowmvgs|qomlkhu~hriqdtsipifbtlhmjnpqogYoixvvulqmlnsnlklgoumhnbtieogsljqywqy|upjomqqrlmsmq}cfWgsrIwmpwt`g\husgnthgprsqonprlbos]qt[ppvrjeggnadjsmanhomsuxoxbnjnnsv\npnnvhYinqtkjxomne]mob]hlemmkpnnmXcn\|Whkomvyeiqkppgskkirhrengng}ddomlq_mbyqklmnltqopkgll`jilfqpsoshsmrgopggoinqnfrjmptrqnWqdjlfsmrlfqiokyl}lpjlkonlqlpjuqfoxoMnlhuiqtbyhirbqlilimpmtspnnggunloubnpmnmtoskplnrtsnptplinpslkcrogoxvorlplkoqqo^o{_atf\ylP}|vYle\ldi{hcmvCmiokx{c}jl[kw_`UaVemc~otF{gaxwk\f}xt{~lkyUcWQxse\jRojh_qofitiOepP~keNs{_jtlgl\VphqrbuXmpstKmVfoglgseYroj]ijczgnj7q[{Sl^[rcaXketniymlU`wn{vsSdcyoefpgmfuarrnflrkddvjktwulpndp^b_evmt\trnirwpojifspjnqiyklyeookhlbjwohoujmrjv^dqqqwqjjqkrjn][lvhoiqkcbnrrmjcpiklmvajt{mrskqr{jvcnhtnjcmqmozosvqikssvyllknrwbpxl\u[jvnsdzcnsktllwomplbggefgvmsldnkoosos\oil^rrjc^r`mpfpgo_lhbnmslezriyd\ri``jgghhsu}nnoforjkjruo~ysrwksxnejo]ixurokrmfkimjz^jFJpNs{fmeefinkrtpngnmterl|txqdYokunfrmntls\njqszrwmptd]pbpk\kl|xlsbhrgmmag`plporousk[sj`qet~xjglzjn`Wpmlcwobvkrksahdtglrlm`mwsiohnx~obdm`rqhljjwrlffiflmlksjqvmopicllshxkj[ovrjitirom]wtptklskomcekchapjnnsfk\ntZTqe{xboblnomzt_ddk`manqojisw`yku[{sjlxgk^wkgojnwlIrurlp{jpUrluqgqdh_zttgbc]micc\ldckqctrYriqxwqwcmgw]nhfjafvgoawjovglr[jtjF\lurjoflknxvmtmfreN_kmjer_p^zmkbmKv]Z{Vmqmuyqnpbrn`sfmnjikqo\^fkh!vrluY}ooiurkekmllgkiejcuulom^qKl|lxosmzljsoagrp_xuvkeplmWloriawb]nrmnns^uehnrtQfsfkpmodgjzlktlejvsplmmtcspsqtokleo`cgqporhnaisarvUfngpihmlelqjjsuirswkmdlhtdZsVl{i^elfrkj`pqojejztlnjwidhkduih^fotWYpkniklrorbYpjpkomsfnznjlnjsyllSminidms`Xikkujpmmjxiks_fsqfmhkmekmlylmmosobmph`wdlnqhgpmficlcoh`vTngphuo~qodpiitbljdndhpmnrxhzjql\mjnqpWkomkjcXppdpjkjiogknrksylte_mjkdgerslrl^`nkPsrR{]Somjthlglroh_bxO\gnsakraquiwqqdos?qh_hpsd}kmoq][jfiZljwoQqr[pcpn}igp_lwo]hwwwnhynqxkgps^ycop4svjnWiq\sh'snopqnkr{t]qupqlfrrogmklptu[jey|muqoh^XUgqscZ[n*rki^lvvh_hpnqmudude^hqqw}hixip|\ssnkwu]ku]itloo{mxcp~i|kpcripbmqrtgzhrkrmkimvlet}masnkvv`[otb]spln]kutmswdwwe^qjganelsgWcyclqmvdhmih]hre]mrumng]ddifowXrromrmlhlc`lssrlumuu_vrqmbkujwtlt[_tpixppleclnkrqirqejnjnqkjiSutPjuqxmnswaotgelpphwmllioqgFpfsidhpnTpknX}\n~ultmqm|mddnkenuilsdughunhyfieidfvijkwnklhporf_nlokzbtchitmpT`bkzzl`uqrhiqie|U_itjwsyoqbkytlhowgfjipnfSncoo}qokskkmnnrmlwkmumlkslosmnpjdlhorfiiqmdl1ltiiwlqmhgskltkeca}}tktmmWjo^mp_lqqgnpnpmqopolfQjjhhgnhdgptogjrljevzfrkvvhgepuijfxjphkpn{ohwrnTm``jkge`g{jll^j]hnu}pm{g[hhejmbtlnlkjhfb~jopgmjwhjgxfmuvgp{[wromkltpxkjigivbmlourhx|nzqiZfYtkynjpkszolkkxltVoddftifXbm^m^a{uJqrp{qfmxfezZvklhuYngjtbsjqpsjuxeptu{kjoeqiutjklKnczpSpqgsphant}smjs`d`otfxl{hh[|olrpeqrmwcqnd{Xhpnks^Utiuha|unnjXqrxymuppdop\Tlhkilrrslswl|gn||oahklt{ckjXqsvquqieatvaq|oldnluokoiimckiecoltmmdxqo`ckklhoslnkhkwmZuiokislnguqhjrnacnmqfwqlghdpkdhmloqkkep_l^fkqqWqhhfkrpquhqcgniofklnjisnygmAWkbmrmdposlik~noknxuoumd}gajxukmbuuSn^tbwookmpqkuuciy{itireqjunfmgwowopjwfoqggrukZSqolbhqfhblcdSnjZiq|mgkhvnq\]fvkmqkf}cdqWklpw}{rpckjmpiknng`pgnejuU\nvlhicemcghsYkjbkjnwohnuidosnllhkynommnh|hbanbRsrqkhqerdgngq_\rhaY]qq`e[gjzmsemltrfb]ksr{rNo|`pmncnu{jemgnfiljsPlnXai|pkx~sdxnnagjp~Y~slubuo_r^aak|n`ktaknmil~hohnhiejwhXupfns_nmemqscnrdlkmemci_ilssfj[\lw^vpnklfkqh}kq^`\r{Ojxkf`SUbljzhk`irbksilsnwfotrksoifek\zxfqqo_ks]s^7`opmlnpufhV|Rrvs[zj{c`tkpbvxl`gbpSkmu\unu\kg\blhovgVf}fb}dz{u{fnyg|qsolpdb`sifXnq|hcyoWdwxraiyQ~mojdlhsjoeiifonjirck~tidcezmtlXtlxYtxbitcpoifsvltuqlljhovkugjXvmngnifd[biVrlwnumvurpjslqlvfcchh_pxvjo~oykomkig_tq_uoekfofeikwhvl_pt^e|jmbXclhwprninim{rpqpd^hVq{llfhhulzp`YdtacklnfsgVjgWgnofmjhWoopyeqiknlfiiooixqyotjgkljpvkrbXlbmgipcvZrygiu}dwrhtgnmr_e[ef{irjcooeopPn{{wojwh{egrlnillkloqkp{ygbbfhjmqkCchmY{kfr`kcmpkoomhdkewogrbhroplol}hWlYpptkqmtfkrjrpksomphfenpifjToxsijmh_cjci}flclhhvsooqnieon_bkikzpluony]nZkl`\cmngns_qddrekdpqhyrnekjmnpjngg~jhuq`ihcgffgyljipjmoht_pj}jii`tiqc\tknio}lKojudvhnx}oqnnol_zglnoh`yk\juubuxjmq{iwakifiktipnihmugeqqrcwmhkohRnmufqrunsjlnhijtjeseaigjdqrsqWs]okfoi^dokkmmJnqopyvsqjv^]dtprkuqspo~mbejtinvibo{lgvrjphvi\gltosp|qkowY\np[cifmljlbmgiuounThkqomzvkjiisjuj_jksosua{j`kfkbkvepyyrsgjpjnipwammpmeorcr\kZmlg}OlinfqqwjoipgjoupvhnoemgkbmlggRogtmwnQsnkp\nsfrgp[owjmilaymqisnqijdcxwjce`qgcp{kflkgktw_Trxt\ntphli_ohqrmosjmoZnderwccir|xi`moqqpmg]hwjtlrrfs~RvpmimeywmhxjeZqfpokqicfqauqkelrwljUoknmv_dtfbpfmie_kljppg]gorirmjefkri~ruc|uxipYcdah`fvikanmcjqonvbhqko`nl{enyo^]httX7lZUlYxhrt|dyvthtdQjdrdDxkfc]p'alpiffgh]}iar\NjMJUgZ~hxs_Ukt\_wi\in~jxxQt;xjwrz+e}zxxdxqmkf{vlnu~\Yip|nfnieihjuLirojmeiolpafxUqnj`orrunqokpzmnkhtkuteopcfftirfthuoxggak{rlxglpfzgmhj~el`up{wljo~[meomodZcbnn[`qc%cvmhktmhtodwpsitqedYzq\lere`mmilprfheSvkqdoektx`j_sn~ig`jqmo|p{mhlnpwtpjlmx{mpzqbospvBfmkjq_ltagcjtqlkkWdoqcqosjcn]rdnjdjilgaoinstthrimpxqvjhmkmdpfll_lsguqcjzRvlqnrpkmdzjmeiiejpllep}ciemn_po]ngtrnddknx`airnos`o|umoXhkc|ononpakjolqmmnrb`ojqfdWpsjjqfhkepomciowkoxmhsorkmrgehaslemajrmtgdjphumdriljcpPrqhglqluwjrtokuf~rvppdtmut|`mhvv\gjqmmozmkysdllxqjmlqhxdokpiihoNllsuq~jmjqpiqtVmkvyompYpk^k{kpnvgq}lqmeclpidfojpnoeqgnhmhdXppmkePomoigrvksmxmlbqszsqrtsfjksqipgmeynfqeolsq]`vsuhpeozp|grkhuzofnoa[xQFlxh[Nlea[`lrtpedjownxup]]gmmrjokgpplbu:sljtshqklnpqzovpipihmilupoip{timdrh{nvhhnkhPfcl}Plruusntjjkro|jhhjbhkjpnfZkfmxfthslhgnlpjmonjskbmilVmuqrqpguoqjlrpqjzelnqlomdeemsqqjikpajspkcnvpxyqZXoranspgckrhki`rlMylnkjnogsitdmlspvuqkrmhhmnns:hmsjwkuilol^ooqppsoqbhwlktrrrmlislheuvpv^lckvnijtu}ofdTmty~kg}nfnmrnpaelm}meqk|]kuqw]alvhyfuhaptmin`ln|nboadrqajv{olzi|brujqnhiqcxeujxtwggortskplhtswte}iumpglcvqltk]QrZ_oolz`ten`hudzekrm`hro^dbn}jxho`jcnlhfmv]lobeeyslipyygtommjptpnobn^nljxn{rijnistkkhhlm`vvpuzostolpjlhrjqhjpdmzhrpqimntmnernojkopmdnkjqo^ekVpppJlrqlfxjmprujq|mirftr|pinmskjrqRkmrmifwgjdgpmqdktsrpndikpqmrvjz|pngw_shXvmpqimdont~itkqrlutunp`kloRgnUs_dnktpnlrohnsiuggiqplemppujdejrhnbdtpsnjmmmporpmlqiglhmhtsnlqkrnnnxqhzprpllmpnqitoojWugxknlqkwihlhripdspdpfjomllmoimlglroQngnjllucwnln`phqpiqlpkupkkeftmpqwnqkxljjnunlrujwQulsonlsotnsoljerrlulnqlmppztFis}\l\Bi|p}dn\eYnaddalUhuh|dqkjo{sp_xrvohI^jf`Wgq^]adyJmZn[zuval]t|eVKNi9vfpnVulipml\lpnS[Vokdvhdgrh^t_cn^tetwk]dlpg9d|ojanl`rpskjrkvUn]orohp|lkiq{wTijhjWqPojh\us^omxwp{xidyralrnpqnoinkxf|wloX}ropomZtnvpvuZ]oixlsmun~~dsplmpwjeuk]sjwjtmjer\tuipuf~_rweulnpat|}qlnvtqq_lnuknnpuqhnpommjhgtotQelkisnzsvqojokjasvsguumr{qgvpk}mpom\xgzfevvpgv`Seg|pjamhhoqkfsswolqotho~pdnjhovstejrhotztuqrfgjtkrjnmd{thsneriwaxswounlceizmhhgils_lor^]nihxmimijlkrfvohhlwhlnmverognqono_km^ic`w|nr{ecisxqm_timOxpl~ikkzpg^gkcgfqepgopiprkuqfhlnsapkgnoljllmmp^qvZmbxgfosavntbxjonclWtmmkR|{on`hcehamhoejtZhphnqi{giqxpmnogl|tlc}lhjbsglhlj~shqjqmthazq`omv{^tsdjtemixc~rotmneujk|e`qjujoprmpdogpgjroptmq\rnrksd`usyqufj_xooslxokcseqbjiqflnpguqqlpvqntjlktmhqpunusprjp{roosojjpsspsurol|kokkekjgo^ltlkig]kwfwzsgisbjyvtrcrpioikl]ehokpkmj^ileolnoqips_zosmupgsmiowl{tk|rnqmwgrhskultsjmroYpc\Mlqnoinzdjnujxfwxmo|eeidryrkkmpsiqskylhkwk`snskqslpushrmh[snkljpmvnrldjnwjpnmlxbmnlmqdrmplhljonjprqphjfxlskuXamjwoilpqoeoiiqnqmnncqoqmmqklqmnkoqsmkhRjrfootomloonrqpqgpsfjrknnftpmjopnkqmslopppistjsoinmrqnmcrjbhsiumnkinmfluknt|npvllsnipqqun]VnsoqqmnljnqhosjJYtnlltknljqpompcf~vZux^scjj^i}V]m~jbxdlznpnnMphHyvxpnq\Zeskopdwpigxi^fkojmfI]aldoFvopnigtlsQqlnsxlolxoaoVqv}\srnkzlp_mjlf~gddtjsjbkglhxmjn_aestgpeqdo^qsoc_rdiximgremruhmskipqbp`udro_jskbmi^pjpdi~\fjdgmp[japo[ibmbknnmd`ovtm[||summjvbuY}io[rdjiuu~[qvbmizmdxxvll|ny`spmrnoqllPgc|umpsmhpqohnshzlqqppvphp`}~jhl\smjjmbntkukimWobrkqgwimulfcrgwkltjaeopswywnmorWqzjlqhotnjtoflkvnbqpskrvrgnofhtoubokrmkqmfevnYqdmzjmhsktp\jp`ndj`qjsovsmonqjmfluihrsqmwnqqmjqtckuql}pmp|ejrtmovm_rtlvlrm\h[zcrihiksosnq]{p^hrtummnpjhnognwosmfltslbyinjnOjpgkqhlctnlgnel{sxvssn\slfmowikwytnjokfrknnjcmoomtVcoo\mnoianf{crkknimpp~g^sirxshsltflhoogkqqrkpogwpvmdqobpnvhmmfxxjrnmlttrkkhkbtamqeniprUonY~hnmpiqKkd_vm~kkxjgYxonj~iimpopv}pmqVrle}hfhnou}UlydxZt]h~pqi_yvjykxhxshphtjimtswrjdpthll{mo^ptgrslmrnurZzgmci`mkqidrfzgug~~oiirrsro^tuazm]qtqem|pmnjugbic^uomqnombfnjqgqm}lndig|ehlryhgl{pqesbu~nj^sikekfophori\dosdshlldpmpmnsqvX}pemrkqklxwk`znni|quqisw]mwxrd^b|nrvspkadlcuiexhzhekohqsllapofu\rbm{nxh|iypwoxqrnwromkmvoevroupqtrz|mq_i`tqpeeionu]sgmk^imuugmukUl[xpefivqfnfusksmiywjYmxrwl]auw~oh|qihhskdpipmvoklgxmlqegzolpstwjneppjnwi_xkilp}l_mimiqmplqq|jjoqrlbysmzql}ggXncqqliokvs`knmndimlom_nrnumjokbtkmVdodpXulmnnYnjjgggsp^i|itpqumpjmfcunvquq{qkluqgsrksnnlvmflnwtjqzsyjomrcylcqycurkvclbmrvgmrhvrctgihjoymsxemjgvqhp`xfkpfjhlelijuvcqoo^slqsmhgpnl`l[sullp`lndnrjoeifsilvmpkurmhgtwmmjemkrgasgxopmmiitstnooirsmlhsnmjluqpojosiqmuyjntslzmlqu]gsqiimlrymnjcj|jeYlslkm]nrlxs_sjqsnk`bpjms{iagcjllhf}hsp^ewghkfghlcbsdzkwfgrosxzwnvp{cphoruzv{wtldotfqhjlwnjihfhtgsxssbnsb^wcpnynrpyzWkus}ibmb]eoqbneqlkoZql\hvqlzs^cl^vvkriiqphbfslsnlemmjzirpqpoiikmjtlrdhmlnoklhpsekqpt}hsnokpnpopivwijmmogmfsglnrmswmfpjqkkijgoqrmdrFrji}wjlrhvoommtqphqXmsilmznbnqjjpulgvslpoikitgSntkjlrkqncffrfkwnpmgemu|jqjfqvnrlnpopgzvqokiljmkkk[nskfsxbwitmtkofpmoqoixnsaftue[txrozupZndqrykjopcnwjqlpttrhv_bens]req|ttx{olr\frsnrpghnKoqpglqvfpluom`r[suYjxmjxs{qkmjmkpcnztrgblvspyn`biqmkq~tlsp~mrZrues}Okjhmdmqtspcgttfphnwipndpl|rsksmrhohhpoioljplf[lgonrlqqnqhquegepqhogokjltvoxks`oiseflljjzgpqctjnlcngn`mjixmjjbhlkhiiioulojeZvhif|jljnlwft{tkimvhkpgqkwsoomkg{nqsdmnlthylhornjfmjnqphlknhhlqemfkhrxnmumnojeiokjlqrjtlovjqnhigsimilhtvjrgukZakgynhjavmopuogXnsesmlnsy_glorjviduyyvfpjjtj`lnionwjnlknkmmyqovxnhyj_hpsynpvkorunh}u`x^suiqwktkxokvjhojtukv\hjitnpptkofnsZvpoitrilpsflyqjqjhmtjtomRipx_bsamqamfmmcgjhiugvkoog`qiinj}xrnkotbqmvrujmkfckjktcktwrnjbmvmngvgksqangtvqunntwqsihxccensgmmplnmpoqcwgnmpyvkglsdejvrmqjtpmijmlh_xnkwoqukjohnqonqyppowlonle`ln\ikn_lfzokikfskxepvljolpnxbyfm]qq~knmutkotjvloioprlrgrljgbzptrneqg`j`wzjni]lhmooktvixn_nmkindknifjtmms{l|cgnxii|wgrfil^umgrqyqlXzupeydcnfxsepfRmo|zvgmqonngoxwxOjqkhsopnjllkkkp_olq_vlipmnamtovu`rthrfhllmlmpnVuminjmmtfmnlpnsmv]gronbqkgjei~rkknaepioo}ojlmX}cekbpusnk{gnZ`xnXTK_rd_ztahagyvOenorb]lipo|qVwliXPqwhyie_UjjtZyandx[^z~vgUwFt]ZhyhSlkgds{jrio|jdyxsWgohkfq`mwpnkshxwkdrndggXtuwmsxigjyjaqmg}irhem[gfg}mu\Y`feekqzbmoojboh{t_ykfglnrpmuussniiqcjknmwvmasaulmolgjljiphqnkminppmluqobjoqwoisakgpklpkqifnnZorsnmplxsd1offsrhgkenjppdPqrbloswoqln}klmiof|sr_ogppgpcsjrnlbotlkqmloNEmysiyxopqqrkrplso{mnhrofnXldjqrnvYsujkugqnrtnshcifnikon]ukbkns|pdjqjlkjrjnnionXvjmsqfn|tl}ekgbo]ykmr}igmmsrtrgllht~}sp[wkjkrtpaqgl\nzkvnxennpnjsw{dalkomkrpmopufokemnqsjnapothfgpqmpbxnjokhqomgtcqiripicppuip{ikooutumhilgjojmiclmjg|mgkkonoosavsurmfupjlsrompsdqqlokvlqonpkfthusfmngkfsunpijrpykiwkmsfojqupnmctsYjprStfkodpl\pphtsrp{jjfujn}uZpqtrswrnagqhr{mgqppnnmpppqkmmoqmwmvtokqqofuhjo\qoinonjqkmkcrottimnwvngknktkovmpliilhe]da{enpjohnmrrsjefkmmfpn\sbwnfogrk`kqsxj_slhhn`qoz`ssrro{nvp|jfv{oobmk|rsymdonvkqns_n[pevqtjetml`mqomjohlnkmdjnpikwtlzmhdolj{]fymvsjqfrjonppkv^tfYrqppyahkqqjRgk{_mjnugpokgcfqtfclnrgdrbrawthc{rnqrtvkupphkjenlzrmpt{`rgvgxt[nzqxpuntnquwlpugsoyukfk~nhne~omrlbommwdkmphxowvlrhInkwkpophqkhush}fjogh{phomjpyi^}uqpmyqovfcgnstftv~pqpoeqqslourYsa~nVkngrnkgmwnzlmwqyqobkmsmejvqsiobvnqju|pudozumypljokknigsmvmstoqdgqoqrmo|lupwvqwQxjoitmmtouemljqxj{mwrqwj|hplmsvfemlioiszktlwiprsplqz9iU\rotgibqcpgu|eKQknvn{osqxpnqnmypqsktqjqrxtpzgpJrmo`qmvxugnh{iliqtzstimvsoHlc|Zpjo{quwkujr{tkmmqmndolnqtevqmvfqqqqinkzuoizqmltcookaomtzpnvlnqpkkrpgbhxrlpofiws|krfgoxdnnuijltotpt[XsrmsjirlhqonpnnkRwhhrsqnhsmrolgqfxpplqnnkmrqqNkowoondjqljsrottsrozirljchnxomdsvsktliqgeolsnkssebhjphk|twqu_obrvxrlqchnitlenexmgxswggnw^mpsklsuhjkjdjqljw~qlibonmrkokzgv^lqs{nnjmlmmuiWopirqunkpommikrkkzxlqoloyptulm~qtmriqqpXvhphptqzvrohbjoxpfckidssfshxr`ufmWikdlfbrhsnktpuugetoipj{ull`sqblor}s`wlymlmpmorygqmojs|ohhtibnkoplxsoo`tskpmsnnqzcjbujt{qjrlqilkgv[lrEiulIutpjpvmbqtlnun{tjsbmyxsktpomqvSfswvmXbnjolzlrenhnrkontiqznjmmrspm~iXu]kopkqmounlraklgxdqhvwlgrikneiVtqskpqilormlorjnrlpocbionuoklnsblgjmmlmglpngkjojnrjkmjsdkov{rnmnnjosmgtktpkkdqmsmrmmfmntlqiwtumviipih`foa~k_xmprplhpdjqqmLhzxhhiwgvmpsyoqixfkainipokdqpmqqstmyhuoklnhpymyvkmpjjelopuo`mkgnlr~v}rrtqmmoxq}Xun`rrt^mf|jZ_njc{Yx]hZehob]ximuczgqsjehzu{frns`Vw^hji{Uyyjxmgqtspgm\tb]lI_r{quqmvu|pak|ofj|_rkhUrmjmqlbw[c`nkqv@_{i\kkYdOkdw{[|j{eskgpLqnrqirtpbli\pjl_^tvcmogx}pekhwiyWkav|~idhzvYrsquauhjstekvuasrnnekOewtt\cppcwvr|xozSmurinvk{djknzknqYypqsxjzgskmpouskmTtnzrqtqucrpwogvswqqrpnhvs{jpnitjivtkq}j`p`{{ptvotfptypxtrztgxtursDnlzq|lgonjZ_lvuwodldkhTupstiluptqmrwmvjjvmeomipibnincdnwdopsogirlqdvjylpqpdvtDrozrusmsyrgllklojglpsmwn}lsunXywfqnjmkqrquhmapsyrrzrQi^dtmnhqhjfpnrw`Bxkqohxapmludsrmxzoxjzlmmskzrql|nfnujq_shtswec:rmfhpurqjxvmozcfrsjfrpfs`oolqwlpnokdjksifqwsl[qtdorljjrzakuirkvrzimtfvusmkllpjofjjmnmkmonitqjnnnrgmnqWsqodugiccppkpmnqsqpxilzpgilmjgqsluinjmvqpsmplpo]cqjondntkre_hjinptnprjtdshrquvifopybpjgjomhct`mduimrupkofhrqkpjtrj\dmjpwt\fqnslljfplsqodwZpu{ywjlfkbgs|dpfpjtmlexdikx}n_esnfvexibqnstnkul~oldmqijvxjoazoikllqmlynfiswpoclbruvtgqeomn{ztojoniitxhocznuv~gwnnmpipsu\kpoooxtiqngcmgnor[lxwmhckxiihvzlwpinofqkgoeseqkqsujnlhju{j^hl}qweoudul`yq^fomokztmikqjhsdknktwlh_jqotfUntntptqqhrkwmy]mn[kwhjeelxerirn|_penejpeakrud`rkqmkkicermRdkqfpoqosl^Ndtrslhpwkrllnoktnrfnsq]mqengrqfygnjusnou{iicsusOonlcbfboutnRsmds|inkjpnvhctpqp[m}PlwkQryknjwqmxnjgjhzv{mlSol~nkmvuamxe}ijjrw~neyrl_rrxwhelartxlvjo\y{jj\[joqjvfkvhqntp`sropcizoughuujrooxixwqimqfcosiurjsjxwsmtoijYtvnkrforn{~`etxwvwtn|xrbkiovtzsrahotrncwgmks~kjljggsmpq{nmpuoqkepqikmuzqswhjf{cxkgpox\orqsdslhqilypqjknkeqtjikzoqmqcqrlotnqqpwaiunvsriprpqnqvqffmdmqv`siknnptthmdoiokehm~podkwolukknhcoasdtmnlq{iqploktthuvnmodjgtflvvqknltpirkjqhfsipnflzijgfmkntnefmnvpqloorniksqlrirlno}qpqmoeS~sslxtpgmqvpnokotuxpotmrtopct+dqvj|p\lrrmsmuvrhlscvpskomr`lt}imulvsdqmjfkqvhYoryks~lvsmojknktkmpklqmbrhskoqriqouYkjhkkknkspkUpk`mlelwlkm~xfrz`qdksnhyql^ipsonrmjln`rldqijltmkdsqn`gixxpqdle|]jfkXppnan_hysqjuqnqambyhvuoek^fsqnzvslrkgcsmrouhnropsqcofmxcodfhshluptbjainxqpnivvspnpgonmigolqotlppsjrutylqeqifktultwwvhljsqbkepkjfuy{smxlpspkmiokszlq{fiivvikelomnrrkqtcdjmqojrpmvnjqv}[jbnfsjopuomhmovmprwlrjqkeXsotkplmhmtrhlomosvumtminmpstskkojinqhnuqjmkdmkcpnsotpnsumhnonrqdkinokhndqwmq|sctqe|sbpomljirurvnwnnlkhjkvvnpqrqhkqhrgotorjspmqm}llpmq}mplmc{wvhbumpqsg`fizskjgwsmthsormqo`rkpmldoceiletkympqmzx}mjpqkuopmqqkrquvhanjlrptxfzknq_opfrchpuxzsjhq[W}itqinpq_ti~mv{iwcjrttfigezpnmrk~toitorrjpnsrjutiorrumbxYipfowpn]dmqxoohsosuxume_okpomjXnko_oubokq[kinkoomnqgobmsvpukgklyuwfrnwskjmnznUpvwyvuoclupjlhqpsqylnktkirqmqprvujjojkmrurthnpnucgkfilp|virhqqrptnnlopnqpots{jmzpnjlki{fbuniwmfsof_xvpiorsqllqhuaholygbtrqimprnmmpjajtdqrlmyymfu`pnf`dwsgr~ndg}h`qmryq~Qsoi{f}\cbtkp{ilfmhwstejqvnejomlwoqloobaiidmvfgtm{dn`zroqjbmlyrpmrojxgwanuw|qiozbsjna{pdgwfqmcpplzpVkk}_pitpus]p{olwsftntelqldklQsedsjrirrirzkpomgnqn`cot}sipqkonginlerefkkzmzesuo\msouqphratdk\pm|qkscluhjfipqs_kmdllo~kw\fdnuql|nqxslelvwiiw|srdqmndiqjbvqy}kujasv}zjbjhcgsnqhsmnnssjdt]nyjojjnkobhvig\lmo{l]cpklnnmmeqqh_momzfurrnfuuwmxfkducunrshtsrknzqmrduhs~ghuytosokfsnmnnlltqjfp{rronhkm_aq`qijeikm_mcpuljnptuoulkloslrmliimj{lknwmtylvjtxujvoolhnoniespsonsscm\ftkoimmvojunqjnkski]plgxeouopm{opyftsmxekmnhoeprke{std\|Zhj{nrluikloiqgl||ikpknhspz{|mphclg`jhmirdflnxqtcphwzjictu{koijngo{nrlmsorkylYpkiivwjzlrvlorkenkkjorlkixvsmjvqps|umvtuqghdmmqpzllqtuoqkn{hlmregjurnuxicuuzhsin^qmlohbruh}iqsng]mpqx^yrdtrWhhqqmhnxwtvsvrqqvnomsytwkyuxsvoYprUujmohtkslmbg{wvootphr{we~dmqwksplpx{lkwvpXzRmnoqqifcp|ythsmirwwvrlqau}sqprwofpxrotvx{nhtrfsrzoop|utnk{xplsvriofn[~pmdm^ubwpnshovw}endupovyruonqqvk\km_jt}qcdwooneooqrnjghisslxlqnbo^pYosjuvdvnroopgfinjuooebuptolourxmizxvpp`rpiiodi}papel~ioiplwnpzrglgjsn`ijomlsvvWxvijqlnbqjpuornvfgkmtewfploneiqsxrpkknj`rmur[nmrwmvnrfe}fcqifhmmlyojdsljvbgvdnul[gnsjqpniluow^uoel\mk_qdvp|ut{yKhqsevqcx_qnlbjfjLle`ywrofwShYiah]vjgh_lfunxmbtV}MkubjitpmnqhigybindikmkSqpj[r{jorine`awaukumvfeqgexeljhhqcR_req{w_`j;n`zttt_\jvkey^\prjXfeda{]kjcqrppdgr`oik]hljqzkoso|vmgslxl[fosnupiglio_mgogsuprcbjrlonqmndrtoskrskpplkqvfWy^wlzyljtvkohiirrljrqdqnirwxfuljikhkmhjifhj`sqoobpsnndknsgmqhmcukiginjpojlnsoqrsdscmj_xlgtijltron_nruihkitomgouc{}xh\lrtsqlteuwo{\uhxn|lkosrtvkui~s~f{{szk|lwufqtk|oz{r}dl{js~utwwwk{{rnzsrnvvsylpugwuxujnilrxvng{u}tmgpqvtws{tlkwrpn|h{zxxbpum{|tot{|wsqcsv{wts}jhowdaqugoqyr{gpt{upxipjvslnqoixsxRgo}moeg`lck]jiprnmcl`wgutp`auknigWpmllrMxvikklodoprqomkhlskwgrpq{nrojcptskxgokfuzoqmgxvcrln{o{|rq^njhppqok~jmd~cgsnq`lfmtrllstmpicpuuXnlpulylmxvfi~}dnqugjjrlfjwfpr}htkfswwdqoymvqnr~hyltaovvlnnklmldxruifjfdpyyusm]qd`jobebqqutp`mopom_vaohdukrdsupzlwvoaopulpg~stimrznnpwipvqrcqlw_uhsonrntoqqkxwilwhzjsjw]nk{_kcnlrtpkqvr_gwtlqmigmoepssocrXajbqibtrcitxpvgvkpdjjjyldgpmqsqtl{jdmwq^uro]prrjmelndZgdrrspsoumrjsnoowhoXhvm\hssiw}kvqrwsidjjkmxqojnqrgubtnwgojomwqnsrnnmtitoqiflmaqstxkqod_moov\qorlgcrgtolotpcjogtmflpjtkqmnnftssrm|qqvtpgmuhy|tdp}jnjsprquprrvnk~rtuc}`lbowhcoomwksuqjykjuqlnlmvkyrz`kWhpqpmfrtjyv\qycru|msrt|\toxuvklpbijpioj}{jjwpmxzpimq]^jmfqmywrjnnvtmXc|twfqojrrru|pgpmjwkSmujseo{ivtdfegyfocrkjj^owtemzowt_fmhimtujqslpnoknrpwlvoklmhqsouokjqollpppmploJppexkmnqkjkknmoojopjlonjiobhoguslpsprnnlnrvrlpqolnhpmozs~rpful?sttospvislv_Kqo[pnltpnsnomougpgwmmhrlhnioopytnhsoosfjjkweogimonxkmkxnqb}ZonrhmqmnvmbppnrTfprusntnswmtw`tiqhtwi{\vlfatxhnaqshmjo`kgpqmijhlpuolqyupshokrxirfdivs_uuobjkosq}rmljrrkgtrrmxrdnirlwomstnlnnumdprwtnsdlvjpjs}tmsoqpfltfpidjkpjhhmkjosgpwnbfnqwtkjmjqnrnu~qoszjqojgnylgmpxqqhitflntrrmjgmaiunrptujjet]xriYsu^bjpinvtjh}kq{i\hff_ilodnsmitmnuo{moivpevne_hfhrz}l]mak{gj`pmhefq`pqpyjqjqvkmsfcaeskwgoqbntwnhgwluerfkrmdoimllggvfgltthpokniwmioyeleqprmnqmpqmhkWmWbqvnhq^upopk_qqsdoqqlwjmv^ruljkmshhkms~scxim}mesujeulow_lmste{mofhlslliqogkr[purjsjofpoomnlqlwvpjinnmnmqkwrnlqqqlprup}lshkrmdrswxtoj}u\otrnmqwfstnxmijqqpqssjgtmhwjr|oiuqtrupqtkuonqtmpqfonkulllos_\insuqyfo}rdjmv{qepqmrqgsnilZofptqjlmt`{kijrsutlujlbz^nhnskommojkshrVelunwi}maccfxqt`foqh{kpmxmkmkjsur^joevr}gzoplsltngpbnvjtbquqnqfnrqroqnodhinpSnvoqagogqon]gqnmggurjqqsmtpvi{xfqlahovltvotlqtsjoqlqweoqmltsttqsbrlmpgoelnsproplpnrjrqfuppjnsmksoompmjgsoronnijkmx|oqjurwmsmmlhprlnknOdnqnrn`m_mnqpqimpuprtu~xhomnpontuljpmvrklmmku}mwjgmtmh|tgmopjjmpqqopnhdkokmhpwqpkykrpqikotpnqvrmnpxrhlvxktlijpklqp}zjqyUpxmmhorlvnmmqlpfjnl|klifknpvr`oiwomjuonfjlpjrphvs^gjlkgugcrnqmpoqptmpcnlisolnmmqpllyjhmxkqpjqotohijrmtsfljuh|h{jqqlrqhnilkrotjmjoujRcprimduqorko^nusqpiqw{mimptt|[swvnhksuqosvmhlgkrqbpcvmnpjYphomjpossjmrlpnguqlwbijmvtptnkqopmwnutjpmknhv|}qhrtkkquuDjohgngpwhjqmwmrbSvrsoikkgplrogYdpjqomqqnnpko{Ucnimmszutgss{nbcj`oqxrmrpq}dwtfmkqk{owhnlpsk]if}{5snjsjpjsoelusrohagkktmaku\omxtowrijklpbjsi`qho~z}7vjt}~~|u|`ypwX:~x{sywyv}|wxtw^bqy|mr~|bkqxtu{hl}zg|v{{zW{uysiry{|r}p~{sv`}}pyw}ovuy{zvyoqt}tsxs|bd}~zxoY}sw|rzz|{g~l{~ryfvptwyv{v~ysznoow{w||nkvzwx|x{~wzoyuxhsrxu{nwzxo{jv~qszm{oukzy{u}||kwpy~wit~m}zjws{z~owxjxoyou}vsksmzsvwctzyhmxo~u|rmyxu_zv{n||{||}}xvzw}rqlhzpxzi~rxqwxvdzpzsu{}~wx~z~qvwv~t~~yvp|s|w{|q}w|u}i~wxsz{{ox}qyzg|x~swg}mmuvso{||qz}~ntz{x~sluvq~zy}z|xr~~xqt{t|||xr~}~mw~tx{}m{~|~yz~uy}{oycr{|xxvzv}}u|tr|{}}p{k|{swxrwg~jujr}}p_m~qwhwwzyba|jz~~eqjzomyzx|}}z~|ay{xh{z{}~yt}~y{x{}zysnw{}~j|bq{ovwqzz}||vy`z~}~qtynkr~}yvy|vtx~~hn|}{~kwxsu}wo~t|v_yrvj{uy}w}xp^uhu~lwimtu{lzymvyx}z{~tytz~xv}|~uzgotn|zpirf||vtv~}i~|q|qxtv~yry{pzrxwpxux~xzrxuxqqoxqrrv}z~~{|rxxvyuwvqvx}}||zty}~ya|}xkt~Qf~}osv|swy~tvirsel}}|}ws|qzzvum}z|}uzxromn}|uzotv}mumu|tuqlwyzSy|n~{sysptxj|Sujquxztwros|stp}xt~Wwmrxowzwxmmprye^n`vgv}tnmw~~y|xvzj{upl}nwv~w~r}sufp~{vlwxzro|rlxtzv|lz}x|{xn}wyu|qitxuzqjtm}oruyxsxllqtq|mrzvtlj]v|uyu}twj}wy}isvxwxhmwmmlxnn}sispzuqc}nft||rzsvxpx{ytytleuye{rlyP}p|tut}vxsyy}|~v}t|vwzz}mnrk{re}~h{||szulxz|f}qb}vix~{R|o|y|qppsrqwo{[q|wSzz}zle|gw5yoxn|atx}vrr~pmig|{}~ms|qq~qujvvvto_eq}}sn}sqx}yz~{{Qx}rq|munzt~ky~xv|ʈ^|ytrztwj_t{3unnzrk}z}Gx{yu|vtz|yzw}~{Lntzuxt~{y~z{tzzwnqm{|t|o{u}]f|pnqw}~|nyxyqoi}vw~uvw~nwhvyvqj}~voqiunnyktyqy{a}^qym}}}~~l}hu|ytw~xwu|y}fqf}tqvrspty|uy|}nu}p{~k|vz{qsw~}l}~rwv|}s}{zouw~y{zun}y}ncnv{yzypxuyvwprjx}u}xxqstwhxsxt~z|zx~vzum~y|}}yuu|zzx{zr~wysrz~p|}|}so|v{}{{ysy}x{zrdqylrw~~mj|yno{xw{ro}szlty}}slwmwxyv{~{uzxzx|lur|he~~y~}v~|wt{wwrvrzpxi{g{|~~r|v{a\vl{u~~}^xi~rwqzm|~ji{|pz|l{tjy9}z|s~wyv}wz}mxۋz|xxtuxx{{d@z||sxi~p~t{lw{|ux}~{y}uttyn}{}?}kqqwy|{}x~p~zpus~wz}nyxl}zwxrx{}~y{~lyi|yyxv}u~|}~zsyw~yy~w}ekgst|}q|`gz|szso}~nxs~|n~{zSxuluqzywjwqvz`{kxw~y}oo|v~~|wuou|tgpl|t~ww{xz{~nu{~hzosf}|}t}k{smwzr|z~\qvvm}yv~|}i|ok{xbgk{t|p}}}vod}mn||v{x}~{}ww|uqf|~vvmq{}w|~xrn{vcvt{|tx{y{{uz|zq}~|y|sxf~qz}zz~s||u~mwyu~~}}uv|~{~wv|[h~tzr|wuwwlw{ny{f~luh{ptvwowrzwoxnpz|~Zywokrz~y|~yt}ny~|qxxzl}tzz|pk}~z}rvuxi|x}z|w}wnz{|yupx}Vkwvuzvyo|rwp~qz{qwq~rxuo|somouxt}x{zwv}sosq}rt~q}onxz}gopsu~{]|~Vtyo|r~ynwwvo~yxu}vwuvuzxeztt|v}}lse||~vy{{x|uz}}zrv_y}{uyw}~y{qt~kyq{ytoyt|~[qltvvl~}x~xv}ymn.{z~{~zwfqp}tm{p{uhwzvuy|yd|yx8}r~j}jsxpm|sw{ysso}zk}pmyusyql|h}hyz|w}sigvr{mq~qxy~|sqjjrqr||~tuwlpzy|uey~fmgu{wq~q~{w||}tx~b}~v}wrq}ao~t||~~\i}qtx~qp}~v|y~wxei|~aw~|twumh{^x]hsq|mrt}emrtmvgzubmtfzmqx{jux~l}vxmm|ww{]ruk{{t}|t~oysqlrnp{s{gs}x{{}nir{fsyugi}vu\zu|{|{~eq|`zyf[zuv|nvrpv|yx~d~qwvw|xtsxv{w{~ue~u|xsxtelyzzszrgqzzuw~qvl|gytmzy{yy}qspvjuzkuztt}rs|tpm}yx|{k~rhxu|qv{|~t}{zxyv|bz~x{zvtzzxn~w~jx|tmw}z|q}gw}|xmsx|~~tu}x~oyyxjw|uulz{yns{z|~||ywqwstsz~mtexrqx|oq~y|zzu|zvi}Q}}vvmzz~xowze{~otm{v}qz}po{pX{{rk~x}}bszxpzyx}q{rsy{}s~m{r|}vuz}pz~yxwguytzyny}{y~ztzvtw{|}xr}zuzzzytytpiq~}{_~~{~|y~r|}~uw||{|Yxru|~ys|}yxgv|uzwxqsh~z}{h{wcuz}v|q~r{m}t}v|}ptupv|zrsyu}~~zzs{vxz{tttt~~}zvxoz|}|y}|~{~{p|wts~xqz}wzxzy}{q~qyqE}{v5p~[|a}~xLctx}yw~os}zwse{vyyrz~wwsoztrt~~p}uuxyyuvx{{x}agyx~{|sxxx{zsrequwvfq}z}|ugy~zsf|}}~}}zv~y~}zk}~wppyp~zvzmsvyobv{z}tzzt~xw~u}utmztz}trzze}~yo~qzr|y|ytiqv~zpryvL|y~}xEnwEw{|}{zxquzq{jxx}pxgoprx}|~y{ww{zeyos|v{k}}y~du{xtp|x{sztx~r}y~wzyzrt~~uuyy{n|r}ytqz~onw~v|wzlw{mutyvpmx}qq{xv{z~~{wqymxrwpwrz}}|{ntougx{z}p~|~n|ixxv}vxp~yvums{hr{eq~~e~`v~fxzn}}onjmivsnwbrph{~st|huzzx{}yzupowyz~sx/|sxunhfn`n}w}~zrwmtv{v}{||{ptyoetxdoq|[y0cl|[sutywwmvzuurvont{A|}{}w|zyvyR|dwmivu|9|tvyjzoum_|~yxzyx~~qsxtmuq~rwzs{uTyv|~|zz}}~}v}st~||}~z|}|t{ws|zppso{}uc~|skrxor{y|iws{|~~l}|~~xly|yww}{ugy{~{~|yvx|~s|{t{w~zxts|o}zpwyqukyz{m~ryzv~}}|w}~|{wpsxywurw|q}}sxv]~{sbxzn{kyw}s~siwcpf~|wgsslr\o{~nk{vu|~vyyvvq}tyqgyyc{rqs{kowwsz}sxo{Qzqt{ow{̀tqS~y~}{}~v~v|{~`y~|uwv|owsl|vzpv{ox|}}w~xtt}pzvryuyxq~wwyyyz}qvg~u{y|u|~|~w{x~yy{vswtn}oyw}t~|d~~}vxxpss~w}p~y|||~xxjwy{j}i}|_~~qrzpb}}u{ur}sx~}||a}ioxz~hp|gfox~i|{yuwwp}|retykfmngmsdxh{{vvxwuhzq}r{scrvtw{gk{u~wkw{zioiy|z|qoscc}}j|wy|tsurqZ~z}nv|iwxbovruwpwzn~t`{~wxxgznlpgpnjfrkrdz{squ|z|nu~}mu{}vy~zrqv}n|tw{xqxxvk|p~}{|wssszt|olz|v{kmwuknxq}tttr{{oi}sD{{{zz|ts}~|u||{o{on}zy{{|vszyk|x~xisy|rztqk}yxx}rg{mtxuxowsuupurpsj|ebw~y|}pbq|h}oz{m|qw}}rz~|q}otqnz{xdwxxksj}xt}||qjztxzyrmjqq}xus|vp}v}pvupql~myzer^r|ikswo|}vrve|wnuu{zH||y|ywz~{v~~}z{Ows|mzw}zQvvmz}utz{}t}x{}vw|}xrmrzw`}|xxzuy~~|xzjqzmnhwo}n|~hcxoun~}ynrv}ussel}tr{}yZkt~zwqov{ocwt~qmvyx||{w}w}|wtzosqtz|}ll{yo{s}v{rkx|p}{xw~~wzq|wt{z{~oy~wz||tpovjqzri|sz{{kxo}w}t{ps}|ty{j}s{lumwxh{vvyovz{lvpn{}|po{vuszmjyxbyp}tmn~{s|~~w~{{yv`kyowykc|w|k]y~mvx|tx~}yt}yi|i{j{t{qs}ziwh{vynyk;}tmy|k}y{}Nuzxxx|xzv|zz~zxxu|yzs|`yxyr~qktg}||vy~qxv{|ue|~q~y}{~~kwvvy{wnrC|tzyVo{}|sx}~~zn|zxvxwsup^|y|~yy}s|v{w~w~y~r~sxzvfx{t}qayyvfmzv|||||n}zvzv~y|wtxtp}v~swx~txo|ow~}|{xx}~x{ty|yzrszw}|yysl~p~~xq}}vops}t~s~qy~|{}}{~|~|vy}|zz{{~z}|v~t~z}~}{|{z~|}}z~yyzw{}x}~w|{u~o}~{q~pq~viv~s}{sq|vtz|zyt~po{t}ux|kvwn|tt}tzoyz{||vs{{uxqy~y}}{|u{{v|zsz~||{zy}~y~ytw~z|~tywxy~z~~~{}pkuxy{~lz{xx{}||zx|sz~}x~~v|zu|xywzy~zz||uwl~zuzop}~zyno{x~q{sunhx~wz{~|{myx{}|ww}|}}wu{t~oz{|vztxy{sowyyryyy~w}vvuqq~rzy~}}o{uxzzs|}kmyqyzz~yz{y}}t{yz{{zqz|z~|xu{{s}y{`}p~z~vw{}||uywuxsvw|zoqzz}~wq|vwzyx{k~~r|}}lqxwo{uvy}~zyow{yzsz}|}typyzs~uus~xx}yyyyyl~{}}zx~wz}{ry{s|v~ymyx}~x}{{zr{~x||xuzx|zs}nv{z{|}wv{~zsy}~|{zw~yy~ysy|}nh}xw~zi|w{~~ox|~xyt~tq~u|}z}~ls|z}|q~z|y}~z{w~~xyzxt}yqz~~t}upo}~}j{y|xy{s{s~}wvv}{t~o}}~wxry{~z{~|sxqzr~qwzy~{zz~v{}||t|woz|zx{x~x{vy|~yz{}tpyx|rwtv}}yz}{u}~x}yxzxudt}t{}koĉzgypewhz|~ob{t~~t~{}~sjezxmmyqz|vx~wvjws|uoy~~try}ssurtsuzzvkzptsyfoiwq|suze{w}mul~zz|}~n{}}tpt{}}uz~u|x{ys|}vtsti{s~~{rrx~~yvzyv~n~}p~i~wx}u|wqqw{vs~~}uxt||}|zznxz}wvy~w~t|}yxy}~~px}}{|~ty}qu{|zuyz}~|z|yz}{zyv~}~ywyy~{~y}~}xy{|xvuvy~~|rs{n|~q}z}p}{~`|nywz|}||nuw{}xy~{}~}vz{zzuvb|zp|{u||y{~yw~}w|yxqq~}|v{x{yxy|}rxyvzimp{ayoz}uqs~wv{{z{{|}}v}u}y{zywwww||w{uyyz}~~}z~~|y{u}ky}}{{~z~zw}r}~u}}|w{}~vw|x~}~z~w|{~wuxw{xw{w~pwqu|}x}ug|ywx{|~}{u}~}{ww}|rs~z~yuw{u~ytu~~wvq}~{z{rsyp{rxy||x{y~{mz{s{{x|x~e}}|ywyzztz}u|~ytu}|}wwx~}z|sv~z|x}t}{}xyv~}wvy}~~}|wzy~zmyz~}~{{|{{ys}}xw~~{|x}z}}z{|vvxx~~r|}|}xzvwxtzn{~x~~s{{{xvzw|qvx|~u~|u||u|z~yzxy{tsuv||x|ws{sz{}pxw|tyrzxyw}|}|wrp|}~|}|~xt}}}xw~~strps~}w~zzihpr}}x|spx}{{~vyy|wt}{~~{v{~nrozw}{|}t}{~xu|zz{}{v}~syw{yzsyr|xyy{uwz}x~m||t|uu~y|{y|{tv{|~~w~zy~r~y}{xv}{y~tzwz}lz}u|{ux~x}{yz}|q|{{{~}~x~}m~tux|vvzx}xs}~wr~{}s}rqv{u}{xv|~w{uuz{wki{zsw~jzf~r}{~{rw~xzwyo}|}svxpmyr}}u}yw}szv~zx{{{{~}w}}yw}}nrwx~t}}~}|y~~wmx||}m}~{zt{rs~~{w|tyu|{z|u~|{z{|z|{wztw{yy|q~z~{zuz~z~~r{wz{qp}|qs{y{{sy~~~vtry}|m~xx{~rnw~~{p~~ty}{{|z~t}~}{w~tzvy~~v{tvosnxw}~u}zr{wwzr}yz}x|{yxx|uxwu|}v{{~z~zwwm~|z|z|u~v~|tt~w|yzxr|{|~}|w~s|~~}~y|ty{z}|{}{|syqzuw|v~z}||{vs~~z~}vsm|}wvvxywr~ys}xwv}t~}v|}v~{oktzys}}}zzqwqt|q~|x|vz{rvptx~wt|r}z}vywy~y{yuwx|rzqvyv{ztyzq~~yum}x}}w~r}~|z{}w}xzy~vwssxy{||}}|p{xyyw~z~z~{v}u{v{wwsvxzyxvr||u{pxv~~qpsyx{v||{|}ywuxz|jyv||x}kw~}vt~p|ssrxxuztzui}uyu}uv}{{xv}y~v{p|y~v}|xtwv{xw}v{v{yrvpv|q|~z~xuxx}y}}oyr{|}||sv~|xzw}~zszu|uz~{x|{r{}n}}t|y}}{|zx~z~}z}~~~v~~{{}}}x|xz}|}{|{}{||}~|||z}tmwvw{qx{|{z{wy}o}jzvz~{}}}u~zu{lvypribw{rxxy~xw|j|}zs|w{{zz|s~tpyn~|}{vy{~s}|pwu~w~}lwpqzvuu}yzw{nrv~yxxts~xut~yy|yu|pmskw~}{{{fv}qx{x|z{~~|x}}}y||~z}~wt|z~}wy}|}x~zzzyyuvry|~uyz{z}{x{i~~z{zzwnv~~wlz~x}~~xz}zv}y|uz{~{y}~vu{}||xrzu}v{zu{|z~xzvv}}tnw}~}nhyzz{}muu}|~z~vm}z|xz{sw{|{}yws~ztvlz~zyoxxnx|}|}~~~}}xrzw}}}{tz|u}z{}|}~vwxz~~x{t|pz~|{}|wyl~{~tx|zz~y|}so|{zvu~tvuwzrz~|{s|zzzzwz{z{wxw~~~}yqz}}|}uz}~|v{z}||~~{}qxqy~y~w|yvx|xyzyv|xxv|{|}|v~xq{~vzt|||}}wwyow||ws{{vl~|y~~yw~z|~uyzzxyvw|w|ozv}{}v~{|}vv{~||tr{ow|}z|}yw{~pywt}f{|~~|~~}|pvw[x|m}y{grh~|zysu|vwl{|lf~zzvkp~xnuv{}{teytc|{~|v}~~x~y}zq~t||}{|s|v|~q||{r~|v}~|}|~uz|uky{vrr}r~uxx}svi}{x|u~x~yzo~}~vsp|~y}|wv~z}|xtwwuzzyyv~r~~z|y}zw{tvyqu}kyzn~v{~z}y}|{~uu}}{yyw{x||wyvwx~tw}}rty~syxzm|}zv{}o~v~us~w}yy}|}}wkxu}wwp~xtvvy{~nnt~z{u}u|wyxyp{ut}uwzm~v{x{wzp||}twxv{u||hwzw{|||sn{xqy}{|~rz|yprzry|h{zwz|pxwovvlow}gs}ly}q{z}yuuuz~m}t{|{~st{tt}~|y~s|}{tx{qz|}rpyxxp{ysuyxyu{~{luyzxzppx~{zytx|pnyv{z|z}x~x}nzyr}~{w~{~g}}}yz{~qv~v}nst{wy{qvp{|xjku~wxv~}~x|~ir|x}|z}y~v||~~n}|w}}|zvny}vvysqx|{|t{|{vwysxw}wr}|~}|zpz~xysrryxy|~w|fv|{x|wgln{~~|~~|x~xxhzwww{yv|~~{yy~~|Z}~untujezw~~s}ztsv}zhl{z|zzyzr~~~r}~zwsz~ruwv~||ygyz|q~uyx}xxz~swlt{wr|wurusyy}rx|{ryuyzz~~{~ry{|}wvw}}w{{ptxtz}~s~|~|~|{t~{}{||x{}x~wwo|}z}iw~||~zz}~vyx{wpq~tzt|~wu|rxn|{{|~y}}}~yyy{z~~~{~~w~~}~u~{|||xu}yz~zy|yz~~|yoxy}yy~x|}xt}{s}w|qzwt~~z|t~~uv~z{{y|y|zu|uzu{{uzv~}z|n{rt{|w{vwv}z{r~h~{}y~v}|xtyu~wvvxv{uqzy|}vru}wy~ty}x~{}y{utv|vvzkt~yi|rxp|y{zx{x|{{vruX`k~xysx{{~whhqwwv|~x|wz}vqtwvo}j~yyx{tveuswy{t}y~oyvtyy{yy|{|xy~m~v|{rzs~|ttyx}}|x|~re|x|uzx{upv}}||w~~vu}v|~}||r|s~|}ytqzz||}u|ww}}|r~v~|tw}zx{uy|nu|puz{}tzz{{y|wkm{x~x{~{qw~uzzz}zzx|r}otx|y~wwysypw{xjxy{|o~u{uyytw~||}z~x{u}xlu~{z}{}|t~xx}}r|{o~|z|qxz~~~tx~x|wkxz}|{wxyu{{|v|yyrvv}~|wwtj{v{zz{w}}yu}oxz{rp}v}}~{{}twqjyz|wt|}y]w}xsrw}px~ynl{zvu}ar|{p}vx}wss}t{~}}rsxoz{uzwss{mxzm}v}xsf{{w}u~zqsy}zoxy{y}zrtkv~}z{|q|yxx~|yv~}u}z}yy|zv|bs}j|v|z{v|z}|y{z}uryz}{z}y|p}t~}~zl|}zp~ks}t}~|{}~w|yyyx}vytsnuw|~zv~uz~}v|lnwk|s}z}xrwx|zmz{~wu{ym{vyxsxsq~r}~s}q~vzufy{~xs{uyy}u~|{~|ou|}{{r}y~vtz|p|}m~{{x~xow}~}tz|uoxjw}~v{yzwzsywoxxzu{}|}~z}v|xyxkx|~rxz|jwyok}zzvyjw{~x~}}~nxyzo}s}|tyvox||v|}ur{|yuuus|sypz}}|ynwup||{z~k}s}qp|}z}~wyu{{~wpht|r~~}zu{u|tpyvvutywvhyjx|~wrm{usyt{N~z~y||T]kwydwtqw}kqytxx~uz{y}p|~p~~~v{~|}{oz~r}}||j~{xxjz}{|p{~svwy||zx|xypzxo{vy|~y{txz|cypzqp|z{z{{w{zqq{yz~~{t||qywuuws}z}~qpx|k|}y}y|{y}zsuz}y}~~m}z~~~~{uzl~{z||~y{{opTuwyfz{s|s~z}x~~|j}gxsgsvy~{wxsp|}iw}n~zzx}m~t{v|wy{tzqq~|ux}u|{musnt}v{n|{z~xuw{vxx|ux{|w}|px~usw~v}{vvvpuuywttwt}d|vv{r{{{u~ztx~npwusqi|y{|y}|xx~~x}w|z~ezlxp}}|zu~~z}qxt}{}y{q|y}}|}|rpx~}yurz}z}xzxs}r}{vywww~yyz{v{~{xvy~zyu~y}|pv|ysy~{w}~oozy}vscuzrrx~z{pt|}}|~qwwmqwym}{qrtq~|yfp}t~n{l}ypr|wz~ssrhz|}xyw|{}mvoxrwzjyywn{s~{p~}ty{yp{~{~|{x||}v~|y~|}my|}}~~vz}z~~|{~}}{~t|y}~}}z{yxyxyoryzyvh~|}rs}zzrnvr}t}u~u{}x|~w|{w}}vqvy|p~yu{u}z}}nMyth{ywyxw~~|}}~}u{|}|xy~||}w{z|y~y}}||~xyxy|stqt|u|x~~rwvuf}}yoj}quh~}|itnj}{}qyqw}u~}{|~|ww~|tturyzg|}yp~txzpy{|~~yivs}utwz{smu~t|y}pxx}}wtvwyrv}~~y}ykwqp|~{y~{sz{uv|~||}~wyxyqkq}k{vf}~s{z~y~mv~v~{z{yz}~yoyy~~w|y~|tww~{}{z}u{yw|ytyqzqux{|y{yw}v}|z~|~|{{z|w{}~}|~sy~y{u~~z~}w}xx~~yz~y{||}}{y{~{s{yr}~{q}{x}m}vyr~~r{ouxtyoxymtrzw~|zmry}uu}|ztmpxwiw{wzzz~|{|zy~}{|~x}~~~}|}~~~k}}}}{|ziuuw|{zz|}uz{y{uz}}~|{~|gtvx{yxq~|}h}oy|~}u~o{xz{}xy}w}x}{|{uorwz}{n~xsuw}rqxv{~ts|z{w|~|vunp|{y}t||tu}z}~x{zy|~zs{u~~~xx{{{{r}{{{}zzz}|y}~~z~{u}y{vz~x|~lwsyx{}y|x{|~~{}{y|u{}{zzu~yw{yy|n~~z}zyv}r||x~xrx}zyz~j|vw~sz}zx~{tl{~y~t}u}zxzux~z|~}z}}|w~~{y}|rvzzwsurwwq}yr{yz}z}}ws~~vywq~y~y~vszz}k|ju|~uwu~}v|uxx{zwmz}{{~~{zu{|q~{{yt|zx||||~|rv|q~}sx||x|v||q}{|wy~x~~~{n}mmy}n~xk}z}q}u}|~~x}us|yx~w}~z~{{v|~|uzx~||~~zxxz~|x}zy}w}u|~z}ts|xzvz}r~{yyn{xvvx|x~~|qx{yqv~sy~sx~yx|x|~|zsuox|w{v}xo{wux~}~~{|u{ygw|yzuv|y{~||r{s~y}{r{wzzyzwptv}vx~z~}|}utwyy}}}o|qy}tuuy{t|yx}zs{x|wzwzz~~~}~{~{n|twpy{{lu{pzs{x{~||w|lx~m{w~sw}xzyswxzw{}t}}|s}{uwz{O|}y~z~|yswkbyx~wz}{|d}x|xzvv\kr}x}}t|w{gwx|ep+r}Csx|xz}}}{{{s~{{m|||xy||xy~|}{zrz~yr~z}~y||{|{~~z{vt|w{u~ys}t}umwyxvwxv}v~}z{|ju}z{x~v|ky}}r|y~tyj~z~uy}{{u~z}{|{{|~}{w|w}uyw}}tkxut}|q|}xzxx}qtsutwytm}~}}x~}}oz~}zrt~t~w{|z{x}|eq{n}yyu}yrspzsxz~|{ro|{|{{mszqxtz~}nuy{rz|ys||yu|xt{}vx}vlx|{y~w~|}{vvvw}wy|pt|u~mzwpjwyj|uu~y|tyynp~||zqxw|~}{|{zw|~z{yx|~zz~u|}}x{~x}|z~y|w}y{yk}uxw}}tz}n|uv~y}v|zs~~uy{usouyzvs}}mx}}vv|v{~us||~x~ymx|z~q|~|kvtm}|xvyw{w}tv~~w|z{x|zvxq}}v{|x|rwxmlx}{y}u}v}ww~r~xquu{}luszz|zst{ys{z~t~yt~sytxsvvws|wzzqity{~xssx}vi}wrt{ttt~x}}u{o|s|r{|{o|t}w{twyyxv|y}}i}z}y~w}}wuz~{uzmw}}}wzw{}{mzxp|vx}~}z{y{r}xxuv|{yv{zy{w{~qz{~z}~twtr{~{z}rpyzs|{ww{yzqus}{~u}u~u||yrd~oz||y~xuvu~rzxzwfp"y^ygorwmgyoibz}_wvtqt{~}wt||tiiozxww}wq~w}zzs~w~~|v{}~}|}yxzyzv~|x~y}~ust~xx~zxrtit{zx}h}}}vz|{z{lz}z|||}~}{z{|}|y~oz|{}}}~|yy|||~vz|~~{x|~qzz{z{|~|t}t}{wwvvr}}|t|{~~x~y~pz{y{px}{~|}xx~|zvvv||towvvzyxy~~}wyv{kzw~lzzw{|yskyzkxpuvyrjzvzy~yzy|v|wpx{y}}~}~|}z}}y|}}zw~v{u}~x~sy~v||ry~xt}xuj~wx~y~}}s}xx{w|}uy|||v|~~{|z{}{|~|}{|y~w~|~xu~}zwyyxu|xwyz|}yvwzz{yxu}|ytxlx~v~vx{r{~{}q||yyty{vx}x||}x}{{q~~vx}y}wy~|{pzx|z{}~w}||z|~}}{~z|v}{~y~z}{wtu{u}|v{||}mhkzzxzv|xuvy}w|vszpz|z|st{{{yrs{u|vu~}~|{wkxfxp~}}{vztzt~}~~vz|}z}~zz~{~}yz}}wz~zx}}z|~}{xzy|p|v~xy}yv~x{r}y{~~~ztulwuz}xu}|k{eyrywrdzs~vx||vsqqlpzz}vx{uxpx{wwwytwv~~rn}zzxy}yy|~~}~|{stwsz}}~xkzuqwuv|~x|~r|uzry|wq~tyu||~v|}{l}}x{}}x|}tzn{yvyr{vyzy|}{y}yn}z{~{rtyxj~uwumv~}}}|~y{}yw|l|v~z}yvoktzqx|wrtnzxkvze~w}mr}uv~uywv}z|y~|wtzwxty~|~z|qcow~~}t}y}|}z|y}ko{sqs~xrtrw|wu{|xy|~wxyv{|st}u~qw{|~quzo|v~~}uxuz}xxx}zy}z}sp~tzX~}|u}zux{l~plzzvwxykz|x|wwztx~ywjs}{|~s~}l{{{nys>|p^x~~rvyu|rq~tv}p}x|{x}w~z{{}~wxvysv~{xir{ux{z}wxu~tqr}vvk|w{wgyu~so|yw{y}yxzvxzz~~v~{~{zxxtys|vw{|xtwxzuz~yuxz{|r}u~zy|o~u~}{~v~|x|~x|yxq}~{zxzp|{sxr{gww|}tz}pzv{ryqqv}~|z{tv~qxz|zyvs~}xyn|zv{utw~||zz|p|u{{uw{tpzqzu}yttz}pvx}u}|rzt}yyz~}mxz|zxu{v}{|x{os{{t{tz~z{zunviry~}w|y|{{w}t|{}}yyox{ou}z|~}y}yzzvywsp|~}z|uzxtu~}v~y~}v}}xy{w{}|}{}upz~{|~{~|w|y|~}v~x~~|{~~{}|}|{~z}{}|}}}}j~}~s}}x|}yvvws~zw~~~t~}ovrxx{ytwx~|{}|{||t}x|}z{~~~{pk|u~zv|w{{uvvrvymzzxyxt~}vyq}}{x~vvs}}|{}}ryu{qz||}qoy~y~|ws{nqsttmyq~v|vn{vm}pyytriyd}ryy~r~{zpvk~x||}aystisx{w{y{y}|{st}vxrv|x~zt~{vqx|uxz|wxwzt{oqq{}v|y}~yu}{t~w}tzywt}}~~r~v|uvrys|{pz~l~{z}w|z~~srq}||rtzsx{}~|w~uy|}qty~|yx|t}}{zwvrw|z~r{|xtst~}v~}}v}{}{zqwr}x~w|~z|xzv~{uwzr}p}~|~{}s}|{{}~x~~{}z~|q~|xuztz}}z{}{zx~{w}xy~x}w{~ww~{{}vs}}x~{{~s~{zq~}x}}w}~}u|}~|}|x|{~xvw|{~}vz}}x~r}z|psz}wy}z}x~~}vs~|v}vz~~zqyw~|sp||z|~}wvww~~x}xx~u~s{wuuz}~o||wwz|wy{i{z}vr~}}}j}|}uu{||z}y|w{}{wzr{{yvv}zy{}}}qy{{x~wvw~pzu~u|{w~lqj~zrrzwj||yvwrotrs~z||~ry{k}t|~|y~rqyz}x[}|iy}yy|z{zs}}u~vttx~}xw~w}~xtyt~{{u|vqw~{}zxzy}{zxq~~}~~x~}|yx{x}{r~x{z{q|zzyxwzu}~vtkq~|{yr~}t|{wvizz|{{||yvuq}y~}s{t{{{|x{{tm|~txg}tTymx||}wt~|vzs~xvz~dwvzzj|tz}}}~~vy~sezvxxyx|x}s~{{zquqpE`}~z}}}{zz|z{||x~|w~yy{w~vtv|vx~}y~ayzz{~}zux~|wzxzrxrz|{|||||xxx~u}wz}|}~y}k~z~vzy~{yx}w~z~u|}y~z~z{~w~u|usvwm}|{vyzp|quu}zu~}}z}z}sv}t{{|x{|w}~{u||j~usr|~w{~v~i{}}x{zu~vz{{~|u~~}}ut~}~{sz||~w~tvy}{{~{}z|z{{yztu~}s|ukwt}uvv|||y~wzx{n}yrzz|~~x|ltw{}}y{zr}yz}{|`xr}{}{x|w~u~}~q{zwwyx~wwyxu{|xxvxw||{{{}t{~~x~}yzu|uyxp{uo~|qxzsxuzsxu}z||}{s{}zzp{~txzzq}}y|yp}u{u~w~t~}~vyk~ry}yxt~|v~rr{z~|~|~~~ry|xzr{s}{r}}~{v}t~{yx~~~}|~ts~}s{yx|tw~k|]x~~t}}vpwvz||{~|{}vx~~u{v{zzzjs}{x{z~wv|x^y|xw|}tw~kxyz}||~|y|sur~|z~xzs}{v~z}ov|}z}~}gvrz~~t~ryxz{v~~l~w}zx}s~w|}zrsxyozt|{zz{}pwsq}j~rstyvkv}|uusms~|~psfzyyxum~dv||{y{vyy{wu|vtxwzz}y}{v{|wy~||{{|t}|y{ypyy~~stvu{uw{~s|{~v~|f}w}z~o~zp~xu{zy|{{zwsn~{ztt|{p|izwoy|}tz~pyxtty{sws{w{nwu~|zx}tvy}ys|vaxxzz||~z||}qn~|{|z}{~zwzxy}}y}{zv~~|}yyzz|}{u~u{y}|xwv|umtqs}yx||o{uz}||wy~~}rurtyy|t{}i~rwz}y}~{u~z|vz|j{{ytvqt}}tk~ywq{ttr{dn{ru{zvmr~|~n~wwqw}isz~e}xwz}z~{~y~v~rxw~{|yuy{{z}w{}~no{s~~~yxv~}ww~~uwyv|z{~|yvv}zv~w}suy~xz~y}putx{^owxtzyr|vy{psw|}rsyuvdzp`v{rxw{rq|{up|gr~pf}ozuxt~prx|}}{{z}~y}|wvuw{myv|u}}zw~}oryw{zqz{p}mw||~i{{o~}|{{x~}q{|y|~{vz}x{{mo}q|u{}~m|z}~y|~|{~}y}{~x}~}|y}~u{}{~}|z}x{~ulsu}}}z||}vq}{|}~}wxt||{{|x{m~x}mvzut||{zymsle~~w~|z{xz|sg}wyy}wuy|m}~ts`y~wk~wkxrzssw|fvx~zm|s[xmxywtvprkhnz|ritwkzx|qzrsspw}{~syygYrzywp|{wvur~xrpyx|`r{unwrz~pyx|qzz}{}~rxzxyys{yk{y}ovzvytys|||~yy{|v~xw|}ssov}}sg}yzxvuvx}{}wz}wm~~|zw{}sovyz{yv||{|vu{yy|nqzsxy||yvy|}{w}}~y{|n~t|zz{~yy|}vv|rys}v}z||~xmx}}s|w~~|||vz|{mozwtu|pt~|wu{t{|uzzzexuxzj{tydw{x{cxywyuxuwws|{~{~|vm}uzx~|zv~yy{o~{ys~~}~|}}}zz~{}~v~z~~{s{wy~{|z~{}}z||zw}z|{yyzwtu~v~t|v{x|zuyozy}|xysyr}~zyxy{x}||{z}x~~yo{zy|x~u{}|s~}u{|zv{qz|wlyvwyxvy~culstvxrr}jzt~y~}|u}|uty|nf{~szivxxzxyz|wz}rwm~{{|{[z{q}owrwyin|}s}zxxvvowt~|~y}uxkv|zxzs{o}z}}qgVydz~||wi{zx|yv|uz~xwx~xsrzv|}yzpyxsn|vy~w}uysvzx|x~z}v|st}}{{}|x~w}{v}ytxrt}w{{|vot}znw~}xr}~youupoo{u~nw{}ypw~rszq|}wp|~x~{zs~w~s~|zuksyw}}gzv~}u}}uxwl{sq}x|t{muwv}yuvzxqtru|~t{z{x~~}o}|ymz~{u{pzkxuvv~zu{hxtxrqt~~{|tly{w||xwzv}wqpxp}u{uxkru}py~xv|ws}}oo}qr~ywvzzwunz}}z{|y}rr|}fz}y~}ssm~{|dwwywzvo{{ql}s{{z}{|w{tvy{{{z|{nz~y|slvy{|hl|kmy]}~uz|u|zz}|qvwxstx|yapymzf}zq~~~u~q{vp{wwv|~ritqx}vw}|~z}vwy`l~zyt~}ty{wp}jx}b{}{zu|qpwy~sxpr~vvv{~|tt|~syvv}~vwnx~w~pqvtx{p|x{~yvy\ks]xqhx~~qsuxkzn|ouk|ja|x}ko|vQihow~v_~u}ylqpl~tsjwr{fvvnnz|l~~knkzvzzpqq|zz|o~wyy}qyryt{~um{~kq}w~zw}y|s{|~|{xx~{|txx}uxxuz}p~vpxqy{z|zzhtsntz|w}p{}yssxz}vny~o}wtx{oyy|qsux~vtw}}o~xzzzv{mqrr}xzw}zyulvt~z}vz~gywxrw|}~}o|w~twv}}kx{z}zw~}~yyr{w~yqy~}u}ypst}z~xyuyopzusi{yfz~n{~sluzw}rtxy{zx}xa{^p}vbyzqwtxv|quv}{}|dtntvq~qxquwz||rtl|}}{vq}myeulmwsv|xytut{{f|}uu|tmsxxyo{onu~opyz~t~~{xz}vo~{uiqr|vvtp|y|{}mu{tw{vsz{{w{vn~kwn}}xq}|tu~{rj~|yqr}xwzov{ot~zyy~~}y{z~{twuxw}~p}ovtuyz}u}wuq~wy}wk~}nyzf~~xxzz|xmxxm~x}ozpryu~why||}||~|{xxypoxqwp|t|o|n|vjvv{r{zj}ohxxst|swdw{~}q~gsytprzq~o|u}uw}}ux|nzoywrr|~yq{||wt~o||n{~s~z{zwtohutwrrw~oxwxrzjvt{qoyuxjxvsy{osy}m~putuyb~yqlwxut}pvtqzt{utvvq|zs{{wuuxsxuy{krrttr~f{uun}pp}t|~q~z}|x|}}u~v}zz{xj~~|}t|omxzxytpnt}|vh}mttu~zv}||wny{zs~wuww{|y|w~}uz|yw~~qzxszqsw}wo~xo}zu|}|[w|~~~x}{|z~{rwsqys{v}rgxzolz~r|ty|r{z|y|y|}zs{x}wry~~xjytvzvkww{}vzxldw}qv|s|~xivvwp}wywx}qx}}}xsoyt|x{xp~{js}x}pvyjsy|pmgwyurzz||uqovvgp~pl|yoy{yvku{xozyszm|q~{}xv{l{~y{y~xnnoyrzwnsvtnyp~~zzzzr{xr}~qnxyw{}{|t}wy{z~uwm}wryvu{h~xtw{xyxywywmv}uztyqvy}vzp\r}rl{{}~xlzpwx{~~}vq{v}zw~|z}{rrttxy{w}uuiuz~oxqny}g|xuxl{ti|yqx~xv|n{w}y~||q{~zy{xz|twfgvnxSxy~zvnxo{xv|}vq{xyq|sz{u{uu~o}{jyn|ujvvt~j~jv\zxqo{mlw{tv~}bu}xg{yx|~wph~w}|~k|{yp{hq|xoyrvmy}}|zpu~z{ofb}ssmwy|s~{vg}{vune}oxwz}~ux}fs{phxiyw~szpuz|sm}{z~tkupxr~y~znirf}wt}|slyz|k{wwttpwtn{w|{wzlv{q~zkw}ns|kytvv|tyc}ssxi|vyywwiyum}~}}{~wimx{y}~lq{ztsko}huym|jujgoq~z{no{hojlmpnx~|pu|o}tq|~zhy{eiuluqwxfus}mv|wz|}euuwgxxq{{yyvlw}sxq~rtvvpvt~yx{~}ztlwr|ytv|tt}ckz{}}x~}z|}pr}{}|wyu~r~xz|v{{~s}yu|zuzxy|qu~st{nvyj{|cyyw|zwyzw}y|yy~u~}}b{vzp|wsqzupztt}}x_}yz{w}sy~vxrvw~szxqqq}yq~zw|q~|zy|o}vwz{mv}v}{|uzxvy}~rpyyr~ts~uyw}{yipp}no}ovz|}{xvv}q{~xs}z~x~~tzy~}zzz}}kpp|v|wztr~zi{ywm}mn|kwy}yrs|rxxy}~xyyfsu~u{|u}vwi}}m~{~nzxnusy|nx~xvop}|vn~yrvryvrqk|t{p}|{~{|vzsz|zy{y}{xplzv~oyt~|ytyzue{qpz}uw|hou~{}{vy~vzu}}u~~orjr|~yko{{nwnnzs{|xyzwx~tz}r}yowsujuv]zt~w|vvnstxzq~y~h~h~kxzt~utqsu}op|my~ypwxqk|s}|u{wzw~uqu|ztw}z{}xwwyy~wyv|q{|zxpy~mtwp}qvuax}tp}qyhok}lq~uphq~ztsz|zw{nv}qr{x{wxvo}x|w}l{u}yal|lys_juvvyzswy|u}q}hxotyuqw}v{}u~nyp}{}~ohrx~}|zkr|qyzzy{u}}yvxuv}vvr~vlw}wz|z~v{jwzs{xyuw|{tmgrlp{xytzn|h{qttv~st{u{qxt|xp~tzmyuptta|{{|}gc{z}zzjujt_puyvwvqsv}x||mu}xsykomVu{q||~q|{s|vivt}nt~~xu}|c}|w~}zxo~zz{}~xwzr{}ntzm|~px~qx|}zp}pjx~}k}vo~zjuuuzr}z{utxr}v}p||kp~{}|rspsyzl||w{qvq}uzm~{p{{nq~~~yz~}yyupr{jyx|~xup{{|vpxyzuwz|tul}~o}w|sv|lw~tt~p|}}{lps{~~x{wxa|~i~|{k|tsw~uh|t{~|ynottu|yxjwxyyxvwx}~ttyul{u{}w{s{v~~zouw~uwqwm~~~xu{w~{~vz|{z|zwwzszwy{~tx}oprzx~y}|s~mqykrx{|}||y{vsih}sw|ymxw~vx}zqyxwz}s|yvozzwsq|}xvunf|wz~w{~t}}quzvqt{vyiqpq}t}v{}yss|zmxyzxzspu}oq{z~|zrno{wzrtz~{zt|xyts|vv~rspuut~lyxi~p{}~|trtxq~~{yqqyqqwwtzxy{{n{~v|||sz~rycx~_pw~w{s~|lyv~{{}~]~utv{|~mlx{{vql}y~y||wx|~{e|z~zm|n{w}|{uv|_x}ktwYvssoznrxj|utu{auzw}{|zl}ryqkr{}lmt~{xzz`wqz{vv~yuo|}mizy{{yssxzcq{xwuht|~zvt|xn}~zyw~~n~}~}w|v|jy}znw~w{xzqql}}kuu}rrsulr|x~t~svylpis~|wri~zk{~}wtr}z|v{t}{wtw}suvpx|xlx~szv~v~}k~yx|wsxyrpwvyvt{y{y}vo}q|vxpzy~z~uzxnu|x{imqyrw~un~~}v]qzz}|~{uwWqt{x`{~suurxokpy~uzs}{|{fwkx~|{yhv~zv~zv~hvpz}|{{q||ky}{z}}zyxyx}yx{~yxxyxyk{tuw}z~pzyqt||{y~|yt|xypzsxtzq|ts{uzwwtsv{o}~{ytvxuwvzwyd~v|uuwxh}wwtlx{{v}~qtw}z|gif}l~tzop}}|tnzv~y{nsys}{t}sw{w|nux{wxprg{j}}{xxx~t}}q{qsz~|xv|||zgu|tq~pv{u|ovxmrv}{ru~}{s~yq{w|vt}t|z}q|uv}vuhz~rp}tn}kz}ygu|zyyt{ypy}}{|pyxxsw|x}~ws{v{u}yyy|ov~ly{w~~|xxukqzos|uwvz~z~wtuv~|v~{pii|{~xms{u~fwg}vsv~|}{qxqrr{{im~oy|rky|ytorwxn}}y}y}twxls{n~y}}x{v|tx{|u~~s}x~v{tyy{|lxr~z|szvuvzzw}rpvzqyyxnz}txssv|sy||{{~ysx{rx{w}~}xtyvw}}s~~iyt|o~|}}t}~{ptxuy~kwzu{~yxs{o~~v}{yz||rxz|wutu}t||vztxy`iz~~qswzwxvv|{y~{}}utp|eutyu~{wtk}zyx}tx~z}~vtgzvpv|qx{tq{}wvv~~e{uwr`trumszUvyn}y~wzxywvs|xvwrlnyqnz}|~jqvlnsvktugprs{sin}|qrrxsrkgq{unhtvlz|vm}xxxmn~wyx}xlx|ttzwst|}r|iurys|~yxxy|wqis{ux|qyvzpmyu~~yrrr~|jsszzo^y{}v|uymxrrplwxxitjyf}mpwnzkqp~rl~{s|yttynr|wqxuuwzvx}w}vyqy~v~yvvs{xnvupnfpw{ymw}mn~lt}{lksp{{}{|~y{pur}ss|xn}zy||~|}{y}x}|qpu|tut}f|}s~}zpyotzx~ry~r{~stqj{{||y|zqwosvmx}ys|s{vyrwvl|gvlq{q|xz{sqlwiut~nur}pzz{xxn}|qxyuzu~mhq|yyoz{|r}tn{y|xwm{_wu`j|rmu~vupeumuyk{~l|jxrutzxqqlxzxyyuqr~yz~wjuys}h~wx~zvrkzzsz|zxxrzzv|tvt~|tnoupvrqt{j}zv|vs}rdq|tzr}Zjutsy~tuyo}xu~~{ypvy~w~r{w|upoox}j|xs~ryy|||uktbqz|w|uu|ut|}j~{}vsr~~w~|~zszzjkvwwqvyyks|xvwx||xniz|xuw}s||~~}|xyouzylqmy{pwz{r|s}{~rxnq{~~s~{}y}{zzwz}of~us~xxg~uwvn~xzz~mg~zs|zz~||unzvw~{yxwzt~uqtqzp~x|zr|u{q{}jhytoq|~vxx}y}ut}oy|uzqwwns{x|q}p~lzo||zw{uuez{nvtxr|~suz~j}~n{frx~{w}~quwiq}wxxxyxsh{{xzxq|sqwm~|tps|uwyp~}ow~~|r}zyurzl~uuwzyxv|wwuxxu~u}qq}|yq~|zv}~z|s|yy|tny{}wywqv|x{wxz{q~kp}|{yw}{w}|}q|ns|y~|`r{uy~xz~k{{w}v{zqtv}}}|j{{~~zyxkzhtrm~|r}w~zw}}ez|x~z}}y|xo{yrn~r}u}svn{{ytkztqn}|ms}}||q}|v{kp|uyz~yug|zqznyb}~v{w}yun{x\zwlpxusxsytvtixz|zytqsk|xun~vz|||z}|z|nu|r{~p{~~w|turwxw}tu}yjey|z{}yl~xtwziusty|ww~qw|}]{so|yto|wyzx|vrwpckrozpuz~w}|}~zo|owh~z|}xt|zxwx}u~vvu~}zt||z{~~{we}qvzzzyx}{s{x}}{~wvx|u|wq~|zvy|v~{xpxo}wzzt|vmirw{pzunwh{yyqvxw}uz|y|{ztx{yq}oql||{~}o}{|ztf}ywip|xj|lvptzb~xupt}w}lh|kx}~vpnvvnpswz~zqbwxv~yo{x}tuzoyzx}kuyuyzwxyt|rysi|m~||}k}qzw|mv~t|ys}|ybxpuv~t{m~qi}dz~}y||plyj}yd}zw~}w~ynjx|u{xv|vzjxrypxwxwn{lr{}ww}yx|ysqphsys}~ywps~x}z|y{twrmh~}p{lv}xvtxvp|rrp~y}~{xyqp|umqjkg}~{wsosy{}zxzort|jztojumw{v}qyqunxzsy~~z~~}vxyp{ux~jz{sz}z|}qrz{w}~}qztzyny{~znyx{tuy}xuzzz|zsurwt~{pn|{{z{vi}wspw|expxzx~r~v~u~~x~||y|}}x|xyzy{u|w{rgyrgv{q}}w{y{tnev{|wzvr|wu}yyz{qyuy~~t}vux|z}vp~qj{ot|{xuy{kd|{~p{|{tvqzwn{v}vyy|xv{}os}v|z|uxuqvs{w|xz|~y{y~{r{y|yzt}kz}yxsrt}qp}{z~zs}ww~v|z{}ovv}{ovoxszv~{oyy~oluwejtp}lrz~yxh~gl~soquxt}vnn{y|sp~}qeuco}upuq}tw|{{rvx}m~knn{w}n{y|p|ztmh~uzhzytqy~ywzq}}|~}}xzx~q|xrg|}}{|uxovz|r|z|ur{{j~|zzzyq{zxxt|}xqwnpsnzYyiw|q~wt|w~z}p|yh}~z|ysz{amrm|totf|vr}{{wrsle~Mro|wz|u~t~g~}x`p~x{}kswlo|v~|wuvrqv|}wwg~qyh~}y~x{q~pr}yw|vpv|v~y~|s{zo|sh|y~w}s|yu}}tw~s}}jw}y|{|~v~|~vnwgrp~~|zr{cj}||o{{~u{{s}{n{i}}zy|yxv~qrx}t}}|}w}zz|nxytt{{x}uh~wz|y}zs}{{qz{yyy~yuz}xxxp~}t}{u|vrsykzz~xy{pyr~|~|}|vut|vuwvr}{~o}rrxw|{w}xzywxzwxsw}xpzy{uvxw}|wzxsz}~wz{z}znz{z}ws~~rzwuz}{yuz~k{zy{ypivu|g|vuv~j{}zvz|o~x|nsw~yvvot~zp|~xz~{yxjvoqry}rzpt}~zunl}uy|r~uxxxtx}~tzvy}rpou{{ptsqzr|\~ygzqpnrufxu{|u~m~|sjy~yzvz~zntuzs{miup|q|hym{s}nwftt~u|{un}u{qvx|wv\uw~~w~dr_|yxit~xxf{jvo|x}}wzyyv{{{n}t}nup~xkvu{y|{tyw{znyxxnw}udgsvvyg~{|a}qlz{uzquyzu{~{zmuo}~{myw|{{~j}{st|zzvz~m}o}pxry}tyuur}t~ts~y{u|}}}suu|lvi{}yqxy|}mk}|ity~|vosyts{uy|}~r~kzxwsxpzoxzs}zwty|~}ru{r~}~v~~{jrxx{ny}rzpzz}py{}q{~}|}|n|~|y|yx|txzpwxtnzts~vpvx}yyos{}|wv|y}oy~m~rpv{tu{}x|lnn|yzv|~wlp|xp}{|rytn{~yuylv}yv}ot|x~z}|}{suwxzzw{{my~sxy~}vy}|y|f|}sz~v{v}x~}r|pz{|ww~{x{xyz}~}uv{w^|d|so|uo{nyzq}}ry}x~wz|ngnoxur}puu}orxqpv{}iyw{vx~|z~}{{u~{}}t}zu|qqu|z|x~{mz|}|}~vd~|zoz{{zz~svxy~~yrpkutv|nvzq{z}qzxy~t|wxvzy~ynfrvqstww{iqiswz|owwe{q}}tvu|p|ikqtv}u}uzzxp{qy}}|zvsys}|{m{tsyvssr}yod}zuz|ktw{owm|w}p{wm{lsswl~|q|z`p~uzovtsttvvmu|ub~xxxvqx}njzux|xsjmt}wyw{z{~}qwhj|{yu|]xz}zz}}qzyzt{mqm~wxv~nw{nqzq~i~u}b}qly|cfvmf}ywyixpy|~~nsX|qzl{zvt{zuo~|{{u|vxn{~py|~{g{p|onqzx{zxryow}mxu|zwt|yuw|jpmrjwza~ustopr|p{qxymrqz{rwx{pxu|iwj|mzyc{Yw}u~~h}|ovwv}gw{o{uq~munt~}zo}kouxq~vtur{qtc|zwulzughz{zx|~nv~{jyyos}l~{n|qyx}sq~|yw|oro|{|~}y|j{kyw}~zitm{xqdu{|oufwvzwo}w|n{u{{rszx`{iyz}t}sisw~~~m|w{drt~xr~}ugtyrt|{}otz{u~o{yq||q}~dy||u~}|k{|yq}s{fsuolzzuz[y|tktrkqxyvsz}y}xvevovzq{p{y}tct}}|{y|{rw|wp~w~y~sz~}zxvyt~xmpo|t}sxqowr{~|xz|~zwtv~|owxxsi{}u~n~trx~ypyv~{zjpz}wtx~s~p|wwsw|}or}vzszjjsrn{}yjwzxtr~hvvo~px}t||vvwy}{{zywyv{wxxzo~xy}xz|{t{yz~v{}yr~xngtw~t}x}yf||wt~y|zz}xgw~yw}qx~ms||ytx~|wihg{{~yztjz~p{q}v~x~}twivjzt~z{sun|x}ubx}wplzyy}{r~xrpwu~vf}xr~fq~rvx{~{w}zjz{z{{tz{w}nq|~uo|nry|~~ryu~x}vg|jxy~y{~rwm|zuzx~|w|}w{~tty|mtukwxw~wxozv~v}||xz}xu}~e{|tzdvrw}~p~vowy}rvty}}w}ryt{{w}zu}}{{wqz{w}qwys||}r||r~y~}q~y|u{pz}e~y}}mz~|zu|~|nx{{{}vv{|yvx~}vn}v|tz}x|}{wsv{uy|sssxzvxq~~ur|wuyxyztnk}t~srg}|gnzxlzxy}}vx~z~{sy}q{so{{|g}qvqp|roxtt}pzzyyux{~sx~|ywwz~mt|vyzp{}vltxx~qv{py}}mpu~y{xswvwmt{kZynn}{}nw|yx}l~m{qumj}ynul~~x|szw{{myv{pm~|tzuun~urxq}{~zxt~wtv}tz}uxq|szut~zwo}xu}~u~i{y|o{{~~s|xzwwvzy~ivoq~l}sw{|rkyj}xuzy~uswbznt{szwz}p{w{w|h}x{z`qos~zty~xy{q[o}pyt{xawfoy}u}t}s~|`novp|zz}n|}}jgrrs}zl}s|qavts}wzy{{qx{rpsj{{~}{|{xrtz~~w{zzs{n~qu|pz|z|wrsp}}||~~y|yzyy~zuy~ztu}{{zp~rjWn|ugtn~w|wnwm{|pzxqjzpo|}y~vooq}mygotj}juy{~~~|{yu}]w|oxb~t}bntz}uz{kyw{ek|s|rs}}yzypzvuvyklxz{|{e|}vs}r}fkzxs}jvr~yb~|yvtxho}woul~{|}~srlw{nsxu}zpvz|xzzzzju~syusx{w~|wstuxvj{xwwzw{x{zvupo{ssz~hpy}wouziqrsx}yxsy{ytiuxn}e}~zrxyt}dwuy}gx{v||{wy|~}iojo}yt{ww|u}yzx{||op~sz|w~qy{|}|t|}m~rv}x|yt~}ywwtvttwwo~lvwqp{wy{vysy~zmz{u{||||fxwtzvznsnkzzxujwtx~mmqz{u{vzztus}{kzxqz}p{zqo|wzrnq}|zxyvz~}|z|~}u|u|~{{}y~|gwxzzyw}|~rxpuwvmzv`juapjpzjvo{zkxw}rwmu{w~vv}uz~zymzquvvpzpzous|vx}z{~x{up}~tpsvyu}ss|zxz{uazq}~xw~s{v~vooxztys|~|quxx{|y}~y|}v~|}yz{|uqyntzx|v}pzw|~qptryryy~{s~puu}}lozksx}xi{xuwu}xthsvZpxwt}}oos|}ww|}tu~zzw~~|xzll}~yft{o~jkuzxt~o}xqw{w{z}}xZvlztro}{m|~p{kq{w{zn~vdzp|aoy{ww{wy|yt}y}}qlu}{t}znZwv{q~guz}jwusysq}}yzm~vw{yj}zvt|nw~o{y~j{sfwi~gzmuyyxy{|rut`jl{vz~rm~ty}~}gvx|wy~}xusgr~{fwvv{{tx|suzzuvy}uwlu~|~tn}s}m}ztt~ymrzx}ztv|zsgvo}v~qt~zw_vps{|my}q|z{nzxtxu{wvxjk}}~y~s{jws|{ymof~nri}xdt_}zuuqzq}}}us{diz~n|y|}|g}wvwtyx{~s|urz\~}ks|{xky{p{zy{rzr~vkwx{~~tu}}xy}|zx}}~|}|}|{w~s|~zz~t}~wxy|yt}}uv{}{u|z{~wwx{{qzszzrx|r^vwxnpyu{y~n~{~\pvu}xvy{zq|imnx{{vw|wsze||sr~d|tz}uyhywjvxmsyz{{n|vz|i{}wsyw}j~{{}}{}}yyo~~~~zyxyq{x~x{}p{|{y}~|v{}ws{yzu~y~yx}~{l~p}|vo}uzu{yyuy_n}tyx}ptxyvo}rs~uung|}|dtyoqsu{|slosmo}wx~{r{qzz}sxpxv{tulbx}kdqsrs{wvxwe~}~s|xwzxzissrxy~vyo}vz}}uwqov|w|}x{}ovwy~vx~zwl}zovtbrh{~y}q~|~yow~|er|~u|ywst{{|xxrt{up~}}sku{}~yj}~u{qqbnrz~xmh~txxyv|yoxztrv{tu}}~q}~h~l||jtxyuyptr|vzuw|i|pypkppzuwz~zwu|x~~l|y||tvz}|~{q}|y~|wt|}{xzs|s{ox}|x}{wq{rttz~q{|nzpu|u~~vq|{}y|tYszwnx{}xoqwyxtutxzpywy|tk}xy|ozuox~}}|xpuvy|qji}yhw{}Zrrvx{jw|yg}v}xqy~z~}}{kwsw|sx~wy|}ufyut{|v~zk}t|y~~}~kn|}rtxz~~~{kvx{}}qmtyvszukwnu~wv}sup}}qpugw|nwt{~rnyr}{}~ptxx~siyurb{xluvwqynxvlrxi~vrywvx~uwz}grr{~z{w~n{~x}|yv{s}~zmwzxs}nmz}z|ywuuxxl}}zky|xuqu}~zmur~w}{|o|w|u~}}ry{q}|p~x|{jwnrsmuvq}{|{qjny{uz|z~|f~}psuz|nmxt{y}h{gywxm}}pz}{{nyp}~~ov|{zov||}lol{znrxwi|wwn~zq}|}w}|on~{xp~}}gm|uz~og{xt~wys}gsmwlg}wqdrzwksv|xz{z|fv}l{s{vi|{vp{wzktylvu}~vxnn~}pszz|ox}|u{or{}uxwzwx~wpzx}r|snw{y}wzym}xtuuxvl~~zv|uovuy}sqv{~~~|zpzxz{qyysqt|x{wzyxz||xx{u}yvp}{|dwoy}yu~~}uy~f{}yp}rtw}pt~w|~y~wxzrzhz}rs}yytjoo|qzxx}|x~tv}}qyusxxrnl|u|ott||wyxuyyv~y|tlu}{}qvx|jv|~pt|u~{qp|{xyzryzz~~}yzw|w{nohywr[q}xytqmue~y~|~~t~u{z~{|xq|v}rzw|mxppp~|^oynuzsvzyvh{vf|h{{}jo}}yksplik}h~xz[xuytoe{y}~w~yZxfpy~xwt}{rvrq{yzq|ozl]vz|{v{yh{x}e{yph~thxz~w|}wzuuvxyrx~|}zs~twy}yrqz|z~w{fvywv]{nfkvq}oxzu~pxslqSr|xuwz|ryxx{x{xy{{{w}{}}zrm}|yyu~i~y}s}{wyxxi}pws~u{{w|x}|Y~vwpv~rz|w~}s~yuf{spymqz|iht~~usv{un}t{dqxup|y|tzpsrxw}vy~tsx~ytW}oq}|q~g|qlv~wo~~~hrzyic~{uwruz~uyx{}u~t~|tz~|nv~|z{jtlw~kv|ywcvj|}}}y{}|q|m||~vxt{v~{~xv~{~mv{~}t}|y{qzqr|~yp~i}zs~}w~vxk~}y|lwrtv{}spf{{qu|~{xyy|{zgw}zsq{tv~zroz|}tlp~xwt}]i|mwx{~zw|~|~r{{{|ztzw{yf{zu|vxyrwzqs~x}yyg|wxwrz~y}tzuvztl~}w|z~o|yvxx~|~w~yur{|wxsm{wzj{wrvsv{w|h~yrz|y~zv~u~um{ytw~ww~rvlusx~|kux|zuk{uso}||zuzy{~v|{y~}{xr}twttr{~{wps|w}wen~wy~~~|}}q{{x|~z{x}|f|wrw~~sv{|~wtt~ovwzyuv~sr}s{yqksxr~~x{psn~{rp}}}~y}|w~|xz}r{xjm{i~{~yncz}|u~s~zv~umts|zstioh|y{u~|sqwwn{siyxwljix}|lq~nvrvrsz{xhvi|pt|pvguz|v~|vxrosrvsq}ytpqw}~|t{q{tnyirpv||}zshtwqxovvsquorv|gflmvb~xrrizxtty|vpzsv|qbgzywy}vlosyuzoqyjwwx{uxuxz}frl~{}r|pt{zmryns{tk{|tz|kwwp}t{~z{znxvz{|y|xw~z|l|tvspysk~yyzqqvt{}{}pwx{|{tvq}}y~zr{v~w}|tw}w~vplw~x{zrxp{|ywzz{}h|rnq\zw||}}{n{~|vntxwysq|vrz}m}vq~|}swvp{zsrt{x}~x~yw{{m~}|~wy{y~sgp~|g}~}ow}}x}wcj~lz{w{m}yxtz~{skw~v~~trw}}guwwyz~ux|}zx}smz{vp{fvmw{y{wz~upwu~ktz~xt~n}p|uhw{nlsspv}ut}{v|zlqypo~}}w{{~}s}y~zot|z{~|}||zpz}m{~w~}osrtqvpt|zu|w{{z}wsyyl|yvpett|y~x|x{}xu{zutz{}z~}ziwo|oy||lt{wvrsYh{u||~qp{{~|}x{bwhz{}}ju{wlzm{qrw|sy~svuy{yrzzyknjro~rxzbp|rqz{cqpwu||u}~uzx{zsxvizrkwyq{{vn||~rz}v{siyj}}qzxqpvxzzx|u|v}|yryr{w}lk}rvo}xvy}}{tyz~}nnx{u~{t}t~{zz|xzuyqx}s}vsz}}{|y{xosknyk~r|yqovnvywowrszuy{z{w}tv|r{vo~rwz{uwu~}~z~Tlu|x}n{omw^r{uxszztw~qy~btw|ny~tt|pruy|x{}y}uw{rvxt{{zxx{x~{~|zx~w~zo~{~q}{ix|p~|wv{}qklp~~{~wtwozk~zht~szv~w|vv}{}x}vzykuyiuzt}|{quz}}ilw}p{yp}xks}ynuxq}vs{zqmz{zz|{wwqauyxkstyinzwqrgimv]smzlnhyomzoloazpwnskwok|oxbuussho\ysp|svqrpzy`hxkvot}wykrduv{ni}yqjrvmrptkuhpsymvq~ggtsn~n{dyvztonnmvqnlxltriwyqldcpwmupgjexxsp|fk{zqlrusdpnwyrhv{|yujrr}ssshlqnwzvnmgirr|xibmiricvwwssttorwxnmtqpfgblpxvtmrdwm|fuettop[ynt]]usuulwbqwsmcoquhky|}uofkwyosmyso}wolvx{n|exsyp}nnolltovmzwsxm[snwwnkogypx{phtows{jljlosvvufyukwojmvyrsrnostz{o|qwoyponyqzltnys\sv|bifvynvosowvr|tarrgRlyk{ftuivutp|jo}rrx\tqqgowspqxptsznutrvtnmwtr{|~rpwnssvuwjmtwvuvuxtxnpzirjqrc|mokzkzsokxquo|~sosh|qupjon{~gclu}dqllyy_ukjjz|opworjzsxrit{nplntewvrwzqj~mvnz`t}hsqqooqrsgirvzykqlunqqql~gs}gvtm|upylnjrulrrwksly}desnvyteployzzeYh]wqh|~zkjzgl`{qvdohlmkqpvn{|fzogqkkvvlxfunv|t{rtnj~lrq\ml_vyd~txsso|ii~xwoulcotbofarexylupv}vojoitvhnpttdnxcpknyrumhnypelqvpodgppkfhpm}kmx^znouzljcc|p}uwvgqjruoit~nrwv{`~xnvwkw{ufuhhtqp{|pz}qswwlzxbszymyyu{ik{_|nlxqkdl{z~onkjc|vn~kxuorynuzwwqjpvicpknorjuxour~ukxnvpp~ugjgsswpiwsjssswol~pewv~rlqxwpmuu|vgtuhcyywxrlxskxttht`vgp|mkoqyp{stolqruu~wyvno{mxnihnwzzpu~lscpihpzmuqkxqptrmnwnzhmmw}v^{vuvxawpvlktjvlpwngtw}ypyjkutsdnnoqkjsgvrmuzkrmutvvlulwnrpzvzwuwrytwitjplzjtwwutuqkijuopnhwzujunyrfluyrrmfwkk}unyz|uww{tqsjoorrsihquinqmlxlu\fuuuronpmz{wrxip}jyikhsu}ppuwuuuu|gwrsrrzzkwwvmqyuqsuonpkepliejotrwsf|qzusp|luz~ebqjv~|oirsopdmnsipimoovb]m{otupso~}brlqojcyp]pxqph{zynyxgwjh~l|jyz]}g`r|wygjxv{rtytoplzqrztsvqkzyrjoslpnuyp~hq{qwpkzqgsltys~qstptln~r}rvvjwjytsbuyyktuxzixiivq`tysklymptyv~xlkovzv{vuonyi{juzpnourvnolylp|}urqukeon}upjv{susr~pvt~tvzsvwgntyormhqj|gkw~ulw|wtroalpspwrxqqkzdxrmyvxrjor|jtuttxjusjlslj{}lcuqqp|yypuypqnqvmylsrztliaqpl}os}znxwyqqrsrvqnqqdttvlvjnojvuvysnsoqqtp{xlwqsz}xu{wulmqsqvuqqmsxnluvqe~nkgp|kkvhwoqq{ohpk{q~otnrxtztmnpltxvyngi{gkswdmkylihqjtmpk~olono|tltmryfu{uqxqpjbieqpnn|vqlnxorohtl_lno|n}w|apmywlqfowxvkshqqnlutyzlmuiyqcwykkg~dhwxwlto{rhvpktxgrp|quyxovqpiymsp{ptwyxryuwsthoqpkrnjm{^o{yx|zjlvysnqwn~so}yeuhi~jetp{yry}mwrtmnwu~wxlwlgqqsuvqvxllsqowmsulxsstluswsm~|t}omeutonm|rnuquote|sj}oxjxfbrwruoqxsqppvkm|sg`gwefy{utirnkvqni{gvhlbvebhroq~x|pvwerrjsrx|u~l{zs|li_pujsxbpvmv_siuj|hgzqrtivkljrjzeewvhfvrkmrplbcvxnwssz|zsxuruozwvqsydgp{lrgjlszsgmksuxkiwlqkjtrrwdsnwsmnwwypuytfteszp`tqjjkxqulopoiuq|po~rdngpvxuhnqwynio~ongp|ljvlqnwnuirhnpzwxopjoesxtuknqxtsq}tu~gsukymvxemwnlm}p|pr}xxhkxgZmnsnxrmmizrrpcirfuwnppjqpppnsw|wuju]d{s{rhn{ngqhfgu{ay^rxkz~Kwphcmjgqotkvojzlfwk{xrhhsnfgmvrqydh|~phtjftkhlmnU~yhanuermllmyrfjohqo~ov]omkneqx{tqlkxjhqgstmwululwflptrrktpr{wquiwr}tucotqtnrpl_ntinurxzo{s}wpdywuyhylyazkuy[hlpnnwpyxsvtestkrgq}twi{vx}jivyjl{jnseshqtqkvbvk|m}ztyw|ljrzssrtvpvqdzsuhp~zrlznup|tkqrsvymvvrunfoxzehxmrzrtk}svonlqopowv~lhornvtqpqoir~nsy[rzrcrjytwqxikxvkxqvwxynkxzk{n`thqgntfnx{utqnsvbxzwrw{{syspzzzjhxkruxlwrv|rtsbt}ykkqaejnvyopn`pvv|igngozjqxsm}kikywVtvu]mmsurrpnkhvnxusgzquhmtphiujzlrliquxlpem~jpgqpkpwkmqxwgmoxerqyxhkmus{dmrvplqnlrrqtxsukojqlljtycbdqwnjyyyypttwpzswwoopnnnsp{pksyqqqrwgyvenqis|tmwlkxst|nrooksv~srs{tqsgjqpprvzuzklyjmyq}nuoqwxqpm{owujxucttjvjlrszti}wwmqynqojpmrmzupmwqxkyrupkpzvtwq|skuxowjewl}jsrrngrrioeljmhxnumu|f}yjylbtxvt^otrfqrqfqtvpmtnowtusv~rnwqpvqtvxeajsokneiX|yeg~woposwkopzwjt^o]dvnknfppumy~w|wv|qunqh~teys{vjmlftnfvrffnoh}lhru~ottkpspwigo~twry}je}tm}kk}gwmvesry{yt~oj|msvrsj{rllmmjoy|lrwjt{gtpvnrzkwixfnzln}hnvisykgqhqqtokjmvxmrlqzvtpscpmtprzqu]pr}ytnoxpq~vrus{snvaotzrnjvkxmkc`kps{z|ybl|mjjiupvwsur~nwwvuvy|piiop}glkdrqcnlqfnp}|osog{ughzirjgxqplgy{gujumvqwwsvrsoruwatvnwxrqkr|vym}ylonynrrtpkoqorjpZwrtkqy{s{}gqgzlomxtwrrenqksojv}jtPsnzxrpqiuotiwow~q{mne~yko{qvyqrol|jbmoepoyjpewnnotlrvnntugyvp}nvyprxhplfxqwhhjqwoqxspmqfo|pss{pFoptwpYytervmaxokrtnqoixtdsvxuxpnlwpej}kuprpUklhjumo|wnj|nljjiu|kpu{jjrluwn{vtpszjviolconlrlsqztkkytpktpxXqmrp}wcmsnskpromxovxzzktqt|zryw|srpyvmkwvtuqhwouuxeupu|utzovisqrtqiiipsg|_u}omjjjupbfpfyjitrd|{nlzox~|}{prztqjwvtxntmgtmxgsvsmjqukjypm|htfwxwrhmoydkwdvy}uypgseg~zmrjvqh|kpqpiyomosmvz}nhrqmmqprsaloreotqspyamtkwztysjrywzrwwdqgzlvoovo{pilvuzphurlu~mznlgsqyousk|nspxznwmhnyqxzzsipv|twx}}urrvgvpotfwvtnqk}xjlszgtzwyo|nvkep{r]oxokyqc|qwsrrwwnlxrxknpmotomjiuhgxswtrzrusohvwmtmmyjuznrhyfksqw_mmu|{krozwwjo~pelgmlsplrnjtlylwpvrfpmqmqnrqukxmyuiporiwhuhsxze^pttxnlnwvopbymsolwnk~x{fwzpoj{{po{q~}n|lmpo|kptomovnsdypdtkozkqgw}}witrfvwombkrvey~wnkpmthvxiqtdhrmxu|lshrppqono`nkjrrm{ptxmnmop|uqo|lvgwrlawtrwotskqdw|zzskvwu|crqfoqki~Arrqamprpi}sfrcrvdhqsnlp~z{zjoqlprqcrqfyfqqlhp|bysm|pmsreg{r|rr~swedqzg|ktvrzm`escvt|szstqkjripmbpnrykhjwfjhjh{nm}xpgxoxjrrxhwhzpp\u|spo|llklnuhrpijolsxnw{kul~zixihjnkouqvkgkhypzw~wb{x|q{on{oqzwvgr|ivgl{zrenrxpsolrxnzpy{ep}qrcrek}{pv{wnxv{trxqtis{uszqu{usvzw}rvrqwulvsoxvrostozwkcipgvcrkooqfxlqslhfojr[zwrnqtv{}mpy|zso{vpntulrflwmrthiotnzl~dwztlzvntsutskto~uwusloktpvqtqkx{xwqwrsnjryzfkuwlxrpksszgnzqwj{cqgssytlmqsllvoqrsvpwufwvnkstzv{g{v}l}uwptnxn}{txscvtnvqjyvvokswmrqudrhry|{^mnhsrtnjdsxxrpwpmksqtmruvovrvottstcxosqsg|{kxhtvxrvhtywnxmxfoqwptnlqovns}l|sjunqnsfqwwlpnvhqnsmzqzvtqtljpwesotj|przdlurxosxlezrkprm|ttrvysp|gqtwrpwsmsxonqsunnqoguizbrrmuqhollpqwswm{sazsxovsqtnrqpqzuwtv_vysqrllmzewpzkqos}w|^rolllvsi{vwpspytpoms`wvsrvxwsphsszi{wumiq{sqmptzqcumuv}kyrzgwsrkuixpm}rvvuhy{mol{{uylv{uyswjunnmmsxsvwkuqwstnkslwyvlorg^wlproqmmtptzqrmmlsqvuqyrtmqxqzsrqlr|zxsgsqtwqtufwyttsvngwliomkiuxwutzuy|thurvxfvt|wlflolupsmouomkrumpzs~vksmtpnhj{ogyepsx}nncshyqsrvtxylmownpwzznyn~rlpl~rqvproonxoyvmuuov~nisxw}tthqtrm}|xu{pouskpoxwktn{rtnwentnyhtouqUvhoyrrqrpxpuvtrnqtirluiqolqzzrwwiovxqpswmstmstjnujynboutzs}uvwyttnr{thrnwgnvtxstnysqvtoviroukrspyvp}nrtxo|yoozrrroulteqmlxnszvx{tq{irtsdt{fjql{xs~zs~|r~kwunttvpv{zkmumk{osudospvxynznvopgut}joqh|gpnvtrktl|qhmjsltvkvdvjxpsvoox_suwitnvrxvk{nrqrulujntx~gvbprlqwhlu}hwizkmrqvfkvirtiyp|yoqsoukqypcoltuumrobrrrxgpktvjipnqxupmns|sqxrkijmxztrjxmttmwgkuvqg{fjwswjtxnlurr}zzouwlpuvhtpyplqjm}~syksqtqtpnnzxqrzilyms{\pu}zips{ptrwxptcp~tlqkp}oovyzr{_nypxukklapymsykq|umswrtttsnvtfrorvilohtktuwpykmxxyoznvrynuzk{u{um^tsp{ozuwizoesuzqzxhqzrlyw{mmjf{v|ilkrq{umriovvioppvqkmlxkxxin|s{iteqwuolpvsjyql{qv~ppqssgsrdyypsoirvljsxzkzmrrzrnp}xtlkuvtmzsoxhoqkv{p{}umxsulrjxovrlmzwknuq{~w}lq|uwkowhh{pwogbnwhsutpplvr|qjy~`nwzt\l~mprsstnrnvqqtptxy`szshwxxwe|xqqu|zqrmtlqjtmrr{}xtt{|nvjsm}tqzxlmroqppgxwztsyeoqq|xrxhrgs{vqvvxorvkfmkrhwopogqxu{jmc~prsmhmphzrs~nnxefiksnmvyhqx|st~|ozmtlf{tpq^zumxo{pmrokjsgknz{mswbvweu|okfw|}vsnwwfvhpsgpy}qk{uppkuoljplylvnnynnftl|znhulndto{ghotdmpxhj}glk{p~ubrrzvuuprodupvrxqhsuvkxqrxczqvrucwi}rx}pswrxpzqdl}owyvunwllrvwr{{`ndkgmruidnkxpqEpwpkrpuzplvk}ll}{fptjtnSpqswlkwzqypp}uuvkyxq}cpkmqs{drjtnjxrm|rmiwqix{qenytu{rwxevosusnwmwwnskq_pauxwnnxrp{rry{q}ootpph|wz{m}sjgTo{lmkzow{sgqm}itk~yhwrf`gapvozy|quc~v}ooigsuv}uxhq~i|ply`wwth{yk|l{rsttMrgvswdzt}lyutqiws{p~yv{xvviqlnynnqivp}qquufqtqjlhpsfqpu}qwqmfshortnqlvw[pontnzxoojutxwgpykpvuvpxzkqtyoqvkwztuookqjojxvqrtwgk{mrnvxduopouwdrl{tovg|cfkgkj~{upiwqxvrrlhhqvvsnqliuqpnmpeizxyvuutkwrtsrzzkd{vujp]}txh|midnzpqqqujwrudvbjnejrt}kpe_hqfljsm}otYozmhron{vwvtttp\oth^{spuusnohtWwuno|rrrquxvpowlixql}wuqvlysfwj|s{vdzopmmup{hxvxnqvtnyovwoqlrxwkwovznx|}n|pqrsnqjt~ppqguoukqmuvxwnuguyujp|inqocsrvwlrlrswponlrqos{qtqmhouuyuqxzlodltqdvqvgee|nymqpeqwqypt}xm}opsy}yuqolksryovimusr}rqv|zrrixusvvqtqx{nr|pproxzvtihrmqowvnwnwqwyqktzromprttvnrjqsqouqz}lptuxjpqkyzuqustnwnktvwrv{mtxntxujpsp{uup{vhnikmmkuimooyslqrjkurrovrxzmrmdwrwsuetmtiwpygohippkspqwzrtvpuuvutnoozhutstvytlinwo}omq~vhsxmlvlt|mszjpnxsitv|zqowuuux~wvmwpwt{uybsqwqu}rh~nxnxvrxjrurrssuqpjlqputonkpxpv~srutypqsgnozuon`zsj_xvtqxkkpdzhlovdrnpegrftowyxkxpwjZptoushwmquo{uelrwjwup{wq{pvqufov~uunrmlnqoqvowhrnomrnyqhrrxwtmftlhfuyykuqvkqntr{rz{hmjnxquupuwp}zn{xqun}vdjvv{prut}fjup{nlwxtyutruylvhtnvnlznqisqmnkpponuwtzmmtxrzuqooszulrrfylnknlptytshpmyo}vvmfkimtnyo~ptwitnwsrttrpipjtwvpxsysstsnspspryqronwwt|ssrtizlqn_rrpxqxkwqwtqwmreqrjf~lkm~pitxvws|tzlysqhvnvwtzix{onvtnroykrm|qg}jlxpu|rrvqriotvtw{xorpssppfwpjwpmunrktuxrptitqwgl|rroosirjtnxuprortnu{|uqrqpolrjtnhqvnv[|sonsooqigbtvxtqdqiqxpzvuwsmovvtujz~vmsqzlrtryeqjexuxujifopuwevosvond}r|tx|fhrpcrsjkmxtplpjqqzspfutuqqsrtp{svvtm{avpqufnvjxnqu|hqluy}pwtplzrvsyzms}rynouxwxrizworlilgssvxrxnxi|twmi{}p|m{pkugfndptkvonwpwlrinujeuvlcwzikrwsrryrumtsygx~rrxixorrp`ovtzkrndnpmuepohhtxvrjcht}{trknrqwzou{yq{qnvvojcqyylzs{nnpipirsutmzh~nkruqwvzvolmjrylrmwsiml}syjpsrvmnuw}zrslrpkmnzmku~nqmnimzum|sokgjrutmnwyceur~equxozixlvwtssrxorwzoosrntdxsuzwrmtkmsr{lwluxpttkvqssnom|ifuvmkopqrkviyevlwnhes}uemwiutphzyvwxuvknt|m|nrqquvups{wzrljthswequzwh|rrxtsuovq}{knxwjghqwu~zrru{myezhrus|xuzxqwm|kiwxieilvquoktor|slueozygqrhqnmoxplz{kzqq}voklwvvpnqux~osork{hrtwmnusdwod{j|z|qvxnwqsvvtuuxmnukxtzou{rjqnpuutlyizxqo{mzly~wvytxy|ty~q~ko~npir}tu|vgxwwku~qrkttqx{ox|ikqm}ksks}uo}twnq^ozicpdoxwypkispygu{evsUvyzptjkr|oswj||l{}wvhjhp`xipr{yly{wigtlrsojksvrcrti}m~glkkhfsqxzremj{vqiekr}pws]ovrkmmpnxru}ohnewd}onjnqwtz{txq^rbwkipdwqnkzg}bvduwoxf~rnvr}ppvrtl|qmp|ituogmyt|tvshvsplot{mzylouiwudx}l|wduustrgv{jllko{ymn[jfh{lmyhunmujnzyvehipn~wlnhx~vsrhotty\qijydzutrhyxqwrfmokufqoiielqcnrq}cyttros}qpevmhmv~eqjsqyuanisr{hnosuw{gtvyzjlwpvtcw~sw^jarytwanmvosnexzmohsw}esydsjr}Xuumqqprpswqpy{ldpm{mytqknf~worvtpphllsumsqorthq{qsy|swhmuvsh{usxqnfmksutznjorvvkwvurmslxptqrvonxryouxo|jtlylgkhttirvlvo}xytsooxtmoiv|qrnoxlykpmomlvulemlnsmob}llpisuvunnyszqunmpmtufupnwxqkp~vuqz}rqvfvt{lvnhuuvvv}hwtkwq}txk}jmxw_tvj{uss{oufpqnpquuq}lmrxnxxlgggz|txirrrh^}{muzqnkmisy}qnxsu{kuvhtnlmliusvirqmx}gkkrstvto~kliy~vwysgl}rzo{zjfopnuwbtskwugfqmse]lntxx{{qpicxqvqzpqtzivns}qjho}sensimgnovko~qqbhtyrwqlqx}hgjpukuov|sqswnronvipljomqnomiurhmosx~|vmhYw]vljjnoowdgosprswykevmty|oknm}{l{tdppyjuw~q|scjqmuicivqj}tqqvuilnstmvnnqnqr{wtjnwluov}ohqqpqjpzootuumqylkpzovzorh}btrznlqoxptw|noxqwnyqnpxixmqpwroxnrnqwtyvlopo~}unuyttgosil}eiltsquvsuwsnqlrylowwxvw{uoxvuywnyb{popzlxio}qys}vohpszikj{ptyxxhwnughmww}nsp|jlqtszoyltmhjqv}ufitny}zqvlt{supsqseituk{iutkrkm}l|sxfqiupxskxnswp{zrtkxwsvsr|mrbvgzykywouk}vqqlljplp{pulfwufrsvryhpplluosmqvmkitslwoq{jopsqxret{uwixvx{rtgfq{lwnm{yromgzqthv{twqnt{nym}nvmopprtgmvivfqqntgqqwtldqjjhusj||puzo{spuswrnxxfl}nprxugzvwuyywlhkpjwktppvnrvpqvlpjrzjsutiypqkuwoourn}owqsujrxrororovrtuknqsqolv}nygrxoqpsswosproukrnimozqpntlkntlyvttkqonwltolrputhx|yqpsnqtypilmlmrupqxpkyyjwuqwie~rntpzg}oiig}mlq~onxt^pjrqvsutf}xyvzrunwoipqntrroxnofqxzqljkw}wpwjomsl}cpjognqmr{}uksxndlijgvyhklukukutoizryrmakm}xswrukpxyrvzyh{rqspopwnsptuxsm~krczzt|lk|yqn{rqsjib~r{tylis}iew|rlnjausigm}xoqrk|p|cuuq}~p{pkdkxn~xpsrosswen{yml\mxpxkitpqvuupuykmbfhoiytp_x}nvks||nzypjmk~nurq{uuoxkmlzsmulyjnkapolwks[iunlnublmkipqkt}c`cswhwpdtyvkuspvuuohyvpoq{d{rssu~wcobnmptmjsnoZorqp{sxwhplpupt{qsyu{qxjhglsyrultrl}r{tkhqs{hkrnrrq{tptutqrpgmtoxxhzsswsnrhlplzsuetdnwyprfxqmyvxk}qfmfxbx|urwzscZsr{~mfzkvh{~jheqwjrj{ld|yodrtretl}sqgsuynvzqwjxgtyl{uts_kuomzpoxrkkzvvxspjsryigbxencowudgxzuqxxmkq|dkti]qvr|iuaulhx|k}pfrvumt{pomtypnt{kjstuzuwwl}{su~sokqsv}tvjpu{rnn{zsxxvlsszzxvjws|znjoxqpsttsowt~rujippwsnonnsuqkpmstnirr}uwuimpqpztvppqfstls~tvtv}ssptmtywjj{onrv|nnwy~tldykvlMiukqgfwqstnrgnyu|ulrtgyt{_upmhftxssvs|tOtzoclrmqujjfvxalkocrurgfysqrytmjzuziyzrwtxz~k{qojontsv{~wvphvwluslsmwlvynpkwkissshzlyho{m~wnwqutnfuwdrrwpfvyp}arnskcokruiyqhngjxnjyomrumurwwvqx~pqmqsppxrrnv}ylk{ts{duwlgyskculwtyotshkplmw|ss|~qmynehuovmxot~pvxjwhuyipqqiv|jyqqjnxpuuvommtpon}lnu{m|ptuqob}qurmZyroowytdolRzwfjiuwu|jrtrspqsrnjpmsi|nqinpwhlqgpqvlhqfrjwnuvqymxwxxjzsuxqoigksn~xppktmojrx^musvwqvktvsqlmgtbnmswccxkVw{lvst{omtczu{iqrktsosn|omnszysuvhxmiqqurrrpyuklavovjmvrujo^flqvgjkruhjxo{krvloiezrqustkmsstsoqvuihlwmtsyusrhutugrlopkghov[ppnmzbitmttp{ozsrmwuri|vqurpwsqbsppqvnjpnrbw`|wo|famsomumuk}qg~wntjktuprxjqgllnt{won|o~o`qtwie^ssoshumpt}gpwuzyoslg~kyvxouusl{tovltuoqooejnn~qkiumlxs{ppsvprhnphswqtoxw{wtrmsgvxwvzjfuhjkvzsmxyrq{uw{hs{wpgph_smqlotjwmlrotywmlrqtrooyyoqwykl~k}oxtcd~wmrstykxrmp|rYqzvlvnmwnlmllhqlkejk}sszrzhvgxjjlplqkpwtmrnnrrlwepz|xlojmpwmwnzzoowqusx~fnzerpzmtlipoott{ouuajjoskmxukrp~nvu}ep|jsnk}xsmyomzvuyurvjuubvslrjsyuntcwvszxlnguu~zxrblvqoxqipkzwygnrqsyxv|umvlpmsrw]qyrnpoqsxqrqgntksutnvlkfsvq}xqorrvnwmr|sqo{pnpowqxizuqryytvrnnmoowhtonztpunxrswozsqouwspwisrxn{npqwurqojpjkursqvvtxorwurtzqtpxltjqtlvvsmptnjouzmywon|xtotxvzumwtrwrswxkwvyjnpnjquxrvzt~m{pvozswrptruqtmr~rspksvnss{|vwutsutho|wv{tvy~immsm|ssnwuuyopvxp}ounytwqszlyxmoptnlvhqthsnwxxr||zzuot{tuvkm{n|sm}rrntuubpronpnvjuirrvqrw|xusshpnptp|vluosqtt}vorrwgus{so{mzxyoivctnshtyuan}{qwtu|qmyhlqxuysojtxkqouzwounrktquvyqlzjgpjjxodmuwst~nvlllruyohdhzsrmluwqxyvjkkwmuwkpt^voqzkdkmvpvnqmxyqerxmzlrpqxzmtesqxxprzybxoxsfvizr{|pmyropzotipuswfpoujtsuksquq|nfl}yzvxfxptq|qupuimvusfspvottlnospmuvpuow}pmndjvtzo{usuwgrwri{opwiwwjqntxqcsxuoyxozkkwosstnaor{uptzg}qoryg}nq{nmvg~uomuqkivtqpl{kuuvogy|ytmulnspltvrin|lsk{qn|uo}srq~ynspsgktq}rkwunmmzrqjxoou{yjzlomrknmtlqivtiogpvrynsvonuippmnptwrojxkmqtj|rymqtjumqik|rwjtuqrvxkl{}ypvwhf{lxuxuyt{fjstljluluqunonlgvqdRuo|fvmsYokhohrylrq|npppskspvu}zvs|{ofsf{rqyp|pxowprtwxunpptoioosuwznpohhzqtushanvt|tzhrqitvpmotgqprvknxrotuq{rq|sj|hpz\{gyeusqll{{|yuskwpwxuxgkcvupqthtzlzrwvooiosmkwz}tqwpprxpynu}uxpruspqsrm_doxk{hmmsnziprcqirmuvrtlBmxOqqnyi~w{orfipjyxlgntvhl}v~fkqnispqwugrpqqtppr|hhsjqrv}qyxns{{yppxqzwxsoryinxxsp{tjzuvlutmpkruwfog{to~l{sguk|loxfnnuopj~nxrutpuwkzuostp}pnwtwyxztvpyg{ioskyzksmqsvu{tutpxtzsokyvwo|vul{tvvytgp{ius{zso{tqrsujwyvolwqrvspinow{}lxnrlzozlnzwqhuswtqwsunvwsj|qghrjtuzuphzt||thsxsy{vflpyzihmprlosqxx|ytj{qrub|nftwpcv}rylt{xppxjuxhjp|vzwvnlovvkj{lq|br{jkqtrrspmfqrhgunzsshm{vqknl{vl}{optonkuipnqqyntqfxitsyupqsxownyiruuzrf{rrhe{rpoqgzmrhjozmflxx{w}usyesyxtnsr`x`itowy~|zm]ugl}oiignnshttwv}jq{{fxprkofofvsvzozwrwnsinpn~qswtvhtumzjysvqptsnu}gqwvqzworypjv}hmwxnswkwfpshpqgjqr|vrzxv}||pwquxswrjmltompqxvnpbvjiqic^gcs{tsnmrykzqotqjtmgns~grurnp~fjr{rpn~ovjwvwritwssqj^vlsunhngnpmothttjnhcr{xwqrfito}ujnyxpuvvzt}xgtugsrql{xvpzzqtnznrzm}haoyzmbvlirpupekuqspuxj|uplwrx{eufo{wphsrr{ux~xjjoiuzuquyoglnsmzwvont~xhrooo`kys{~}ymiet{ny~jkjwhnvsxvpXrmqpng|px|ulxp{simwotennkjoes{tlvvomle|phqsohmsdmgof{hcfngsuknvrxnszbvnrmxpusylzwtsxvgq{xwnmwoupymztrxxtsrmymdp{yjp\ilxtus|wyn|roywek|tyyvkw{itppvri~rlpzqsxvstnmurtqwvnoryqsqrvrpmyooympzw{ummoojuuqoynqsvxmkhkwjvwvnol~huq|olxgwwvmqlyvpyqj}rriwzbpstqvn~wrqpqvtmtnqruipotns{pzwsgis{tiktzrhojm{kp|wqzinjufvolt{v{ewqqzeptrosj{{kmvwzq|wkl{thg}mluulvlqumlzyvxpttpupsr}ug|{zmtoqpnxqlxpsevoutltj|svirlsyv}jmyojiortulpx}rg]}{xwotxoqottvpmesso}lokmrusztzmjkyuppjy{rrpout|yvutm~oupejxxvomkxqvdqjhq}r|thmev}ohwuw{ubvmtrxterloo}pmsowhkiwq|d`kqtvwqlou~stl{suwwzs}ukrjqvjzs{tvmpuuornuql{xnvxryghowoysx|koqozunqrvoppnurfor~stnyttuyrzlpsowprwozujurwstmnljsry|wwlszououwtrqtsvu~us{ynj|xqqmuptoqppnpytmqwvpxgufmozfusuwo|ptwsxrkuvovoozvt|tozsrkomfrxu}wovujru{x|pphrrknljzpkzuquqhksjjvqrfemomuvosjfqrnorvvmxppyqltvijsuml{vrx{rrlqroshkqpzpuwznptvsvmohvpwuwmtoqtrv]orlqru}fprjgt{oxzss}posklpqzvpqmtof`o{uwmkztspq{w{gal|jpzkjjlv~x\ex}ugptpyf|tyafmpnmsnynoqyvknu~wiscutzvwxonzyllpls`ywlkmurtrrpsn{yhosxdx\spd|pvs~vpgmsntSyeqlowioklxx\ssokips|upxjnmyrxoorjjjoktk~lguexqrkpp`wqsolssfq{l|otvepyoqwqm|sm}puoqq|wlokrxquwxmrwhvl}tyvt~pnnhxlwdmutmv|ltszrvmtpoxtowvyvupjlghjsyrmz}t}zurvup}~lvxswrumqqotorsvrt{nsst}t~ppsqpuuzlllu{lxlk|kmwxu|m~qmymojgmqmptyoup`uuzxpsxkw}{xkt{wlos}d{xkjflftuttz|toxlz~nuhvwgrNmsnzkvhznvjxpovnnkwqwkt|rvrvnzejwuhqymkv}m|kyutsyvj{zvytwnfyx}hr`{yqlu{~eotuqtnv{ozwp|qpklr}jzwtvxup|tnuwksv{sslouommtpsntx{tsioxrqj|r|sswnnnstqxoop|vldnhowsopmzktxxqx|qvsymnwstqqvxxovyrissmqpxnrtpswnouus|r|ppsnqupusyqljrmlz}tpzoZmmqj|olsqgsquymqt~kpyukiw`zfto_ls|wwzlloTsws`ueqtxvxtjnrnutx`wqqroyn|lrqmtzsv}urwnove}votcfqywxhxwx|qtmqitl{plhmy{tzqkuvyvlzrvpilqsrwuu{r}wym_mfupjtp|hzntoqqkltueuowtmls}mpvr|lmrpjorwjpgsrbktqr|oomjsqunixulwtqvrnysisqz|nk|psxrnnuroommtedg|khmron{~vvswozhozfyrtistpjukrzrqnqvjsrvrmovikizfulrquroyfjwromxpu|jy|popwgon}r{ntn|pvlpwzrsxnqtksilourmrwnlwwszsqbulyeqrig|rsskprups{shdmqsflhkyu}v~vuuyztxlawxwiqws{{nowyntltuyelzozhqplvtwor~xprwzqtsiwiouefjxtqsmxzshr}oqe}zgfwmwstusszvtp|q~rl\msvlqgvjmzsohppoqqy{snsk{njqyqwquvhtsqtuoujlqrrfWvzppjpqtmovrntkevxpprurtrtrzgxunjhmejqwu~mresnwrjwookymtqf}lrm|tltfizrqilsvn|txswmhry{qqysxtrsrhojsqx|t{xqrfewqpmh~{x{lrzhsyxwzfsl|m{up|xm}morwhsvpknocg~}ysnkqn~zygqsmirljnpqnj~|uprlt~~xrxpzdshmwjzxqr}tuwoq}t{egvwsoz{ntjjgjlqwnutpxnqqkmahrzydygxtvnnwlzyk}otsnpsplmwnookqqd{nbtzmhzcrvtxqsroq|ipwun}r}spooshuvtuudxpoxpqxlqmlua{ropzqtiyzoxynolozgpsoxkstvknquznqww}mwsnsqgjuyotfcvuqrsrk{qnx{zntwsTarnt}jyxk]oqsn{jyrvpte_r~xu|{vlxt_iniz~jejishpb{zyxqh^tw{y{utkltrk^w_qku{mkrntsmsmzp{qktbqkmsansn~|qufcn`wtdhxpzqjrc|vqsxtu~euvhvxwhq~iyqt|rkkomp~qwqnntgtwxtk}xyq{~rnplelnyqx}itkuiprvu{dvvswqr{ikqq}civqswmxuylwsnuuxvs{htxurqpdpt{sprlqqovxtooe{t{kmwmspyzrqo}pwsqtmpv~yxoixmo{rnqszsryozur}uphr~rvsmqluvnqxqzwmlu{qpsrt{ujooliu||ponspyn}om~psrqprttwluqxrwgngmzsoykyowlfw|yoq{tmvlovtvqzkyu}ltpgwsnppt|lnovnq}nswmpkl{rzn|nwx|qdxvorwz{ikstwxuqluy|qr}yo{s~oqlimzdqdmtnyqrxnocjs{mmsuy~ksmjn|oyiujzx~ltzmhzurt{loo{ukuomzsg|xftrwpt{twfngjnvpypmrp{euns|teslpp{zmpn{qrymq|ujpkryt|zp~lqqypnqsvttumszttnwnsvkirvkoxqqqvsszy~zklxwqmuqqqwkw|ot|qxip|om{suzqquwomrrpvl|~pu|proux{iztvuorv{zujyxvxrmqnsnql{~jy{srp{vmkpvt{}tqvpukoru|wlskjquvtwpqrruslwdkowontqz~rtwi}nvqqjowpourjxv{dsplszpokushhnpynqtqrstpozoqkpstrxspplsjsvrtrrpssljlulpnltkxnhmrltr{zxltivivmnptriztqsykrpckopqpms_jzt{`poufkunbuyivgbjgvm}plxrkjtntglmomtpshqltaoqxztptot{|kuxwwy|wnlqh{vzzuxg|nvwmnmvqm}{rjryr}vphuhrtowvofpshozmznolzpfnyqrzywsuswwfpms}yXuhiypsr{voukpn|nw{{utiqt~qwwpwlwh~x{{srvstq{wqub~prshilep|whw}xys}l{ocoszoyvrqnmu{bqs}ttvtlqzjtztvtsl}nytuzsnjrqxqhpmttzvqxl}lkjktqvvxvwvszpnxroenmmrrlhqpmpmowqtxtitz_tdtkndrtqtlyur{p|n{pf|wqwt}rqbpaxtv}huhbxyoohxqnpkqwprn{s{~pxyvwln{|liqtz~to{oqqywxjs`nluwsw|rpvvikjoulxlovarwkwsmr{ospowrwkqvvqavihzhpllpuhq|{hsejnkoinw{vjsslqjhymxsgujnkm~m{ux{~~yqviusumnzx{pw{skozvewt^pxp|tjtmuspgy{qwsnesommtwvtyz~wekkx}ilnfm~uwx{xurfsqrsojmwrqtoxkcxk{usrqxzjkwrklrroxpu{trsvlwlqswurvsrqqonvsvytsonwttrnwusvkntuwxtwrwrznyrtsntoqmutprqpxtssqsjorwtz}vvzstp|llqlympmzrutzyzovurxnroqustxvptlvgszttqopuq|ps}ojqxmlov|irq{so|nrqsvqulmnjotporvo_wmnprumhrcjpvtpysoohuglwqtuovwnslngrxvchinueoiqkn}sotvnuyuhrpussnhrb{tsnext}rlvoitzuvvm~orpk}mrrsupspu|trnrjnooktsw|zwp|vwvppwtlpxrxkuvtmyw}xiuqhfzltnzd~xgqmryktdvpusrs}otjlsomgpmogvqsjjxvnprtxyu~wm~}wlrhrzjvljqpzucvrpsjwpton{jxxsqoq|{voj{|bftmmvmxo}}yngmwukoim|~kvmvnrutvxxyqydwq}vtj|zumopptztsfrvtehuooosxvtspttstyrrfjlrvklzmwmqyxzyvjljlpgxsw{|otxtknhnpvswtovqwrrl|lxnbzom|wpsvrzyuq{|tykjw~wuwnrjvvtuputo}iqonpqnshrnvoyjmvmlzitlzozenuxrovlkvomkwtmov~muny{jitroo~aiqwrq_yokrqpu{htijropxmqsjthx|lsstkrnqtiqrwliqthw~l~sluxomsp|tvr~xkppyyhneipvwvoqeq{lttylwqovw~ut~uuo~rwtjuxpqyphnvx{y}mijvvup}qyykvw|hyftssmiqvupp_psvqhutowtipqrot|owsmgisyyrlnors~ixmmopvqrzwmsrwxizyj{vtztnrumtodlluts|yssl|mp{xzfepzgtomlsnyumxgoxxi{sotuvnonoppjst|y}s~wtrrysny{|hw{t~unsvzrnoxvrjynlkuvomnrw{rsroqmqvvilgmtlot|qsltgojzjzqourqrlmsr|tqnruplv~mxmvnrrosrnm`h|wruqoo{kmunskyuqirv~twsusrxwnr{smqnsmrshrfqtvywwyswtsrfqzngxrvvmlinspnqwr|{v{}|oxtswhm~penrtnwcertqprzvytpdihquvinlmmolkhulnijnzsrpmvivv|ootpu|qy}umqkvhmiryylynhoggxusl|tysgyulmy~h}oxxiornuxvkwoh}rwtvjwk}{splx{pb}iq{len|tvvpvzornxvrn{tqlqhkn}omvsgxoq|lhnlpuduooo{lnnwn~inttnptw{dtlnhxisnpsorequuulxvspuymqqwmwotuqlorpstsls_s{hn}ymoshlmsovlpmpmxnhettisgirlsxuxtuxsnwviotmo|wrmrotlzqtxvjtorpvqxu{uxiswqqwt}oknsmrrpqpwxxvnsvmztjlswtvyjsprl{pqlzosl|uxqwownro|uyyrtx~nosvnqmsmrzvs|zxruz{kpvivvqnsssvttxu|yovsxqjwqkonouitptsoxyg}ztopxzuprowjprtyofrwqg|umxjtvzzpsrdsxp}mwpqmsqvkthtjsppmpwp|m~zr{wjbsulup|wqtnwyouejql{oyq~hpuxjrswnmsd}pnvnttfmsiwtvxjqsqdnrkv|sivuojqvuu~sn|qtnmyuxhvlnijxzg~foiwvrtwessylvn{pisrwnurjtron~l{{lxz|qustpyopvzskxtsrymrllttxoppppsgwhppufubwtkfkkt|xgkn{dopvtjokzpqthmqppvypx{u{wzw~kppfksunyhdvnpuowsmsmtuptvupuuktyunxxnoynqskkxp_pgu{p}~phyqvpgzvsutvtijjpsmnzwsjxqluus{obptnrrsqopmto}kvbmeogqseixthtrtuiu|vpqkilpyqywkqqqpottwpjwuqstmslq{xqmrnufx}ovryrqztmqsukrwru~owtesovegwsrptovsop|nmpwnvupsnusztniurpso[zz{wsurrfulsws{dlvzstn}kuwusnksxl|sxqiwlh}pmrkltrkqtqkxqqrglqnoWcnOarz`sdkwwuevmsth}upomyvjhxrius{rvnxvosus{npzzq}tflgfzqdszlitrtkspmhzqxqvwro_khxixmtaq|pymxo{ykgo|s{s]lukvbvurxp}phtq{hvp`ppu{sitpmxlwtqsvv{nyisvtfioodoall]rtnvvovjndt`jzp{sqrs|lrstougvymefgxzstqpr~yvwjhnsilxvo{m|kzstwhistrpzsworhspvuryrimjwuulowlnmwsfmjqwmqttzonsvtqvkmrvwqptqhsnnbgoew{pkorqqltt~unlqouqgksqjcjrupqwvtwokmrwumxrp}ww{wrtuuxsochmugxjtgkzufnpqwmustu{g}zqyvrpui]n}tqjrf~czuxmxktfzulztuxgpklq}sunsdojzzsjwjjuossvtz{m|}wzo{rylsuupjqxqknuqszwtrmvyzumxnzuwyqukhjsxjz{nwkpspyyrmpxroorsi{unsmxjysgtmxpoutomoqyrjvok~zxt{nt}nzjsqlrj{ek}sucdz}uomnjvqrvsprnospyynslrrqpldqr{{sepdksqqlnitomq|ar~nztizisyrvrrgurj~stppieorjvzlh{won}vlsgwhnh|rkwvvufsmmwsmiofuwxxmuqlzyvowow~m~pitxv|pneiyxlkykrfmdwn}wvufloiw{fpyjtspl{\on}rqhjppxuzzim|wnevqzhskqlrfi}wldsskzxnlrlpqfzljvpwsspjyohweto{ok|y[y}klu}jpqosblnysuknwk\vsmj_rsztqjthuotujyjy}ysimxoossxqls]i|mjlrs}opvxq|wgrteovog~}s{{nl{sra{ynxmw{vmru~i^n{lqpjtypkhszvit|rm^pmh~qgsvpmslge`tmwmsp`plkrjsthv}smo|tqqhuikpbtwczk~prjquswxysnztmyrqltmjvwzplxpqrooovcro{kznuvn~iourrhrjyornuxuxorgsqtynutqfznbjp{vuxmmqqrwzlythpv|slymhxus_qthqqwt|smrszntzjznuutn}unh~|qrqpvooojonnwftmtghesostpoukyokkrtjwo|ygqocxl{twstrrqxpuo`n|pptsnszpzstorpsso}qjugvunqvo~uwldxsuv{ktvimalnpwuutyysptpsp}znt~sopwt{lppvkvfqzjtwjvyntrwptw|rrj{twngmv~ksy{xsrlsd~prfvzgsolnvxhhxhvpuhsbutzvolxzowxsnlyrsn{sn|jqstm{mknunt~w|ujjvqlxtrqszumzrnuxuoshhz|k|unpxsxsfwrqlwyirhshzxqmm}{xtjj{tqylilvmptcqijjzfhpxywqvnnnySvfuhwkeu{npxrtwipdnsnt}leyp^cgowovn~lpprjreYuhbxdpvsoqrsjkusuy{fkuys^or{}tuvqdv~sy]o~jptpy{ovwthqpxquqjupkiuyohpryvo_hstehvkzbuxowbh_mqplnukxmq{qtrhje{sfvds^qx{jnpsvbsjzp\zpb^jmlptyurn}spntiqzcoqmfsukwkyepkxljpvw|sv~|rsstm|yhlqtinguzonjttrojvzghtt}msn~lj}buprmwyyswj|nnjuqwcrqwzjbpisw{urpumnN}zpdmme}q}yyxeut|zsjmknvmfuotenqrivwpoqktuqultrqbsp}yhmvvlmrqatposmpqwyrv{itx`uqrclqL}fjrd|rntobzzpdktnykvqirxsohudvymhvmnmzq|ih~ppvjnmwpdrxeqvdqpbpn{t|{|jkusdslqxxnrmi|qn|umouwo}vmqyokqnomvtozrwrnxjyiqwoppzrquzxwerlqovjomosnvmtnmpvppkj}yktynvmsvolwsumtgsmmisr^murutt~rqoqoolgtvruwtqorpptg|wrb~|poxkruoqz~ipxus{|afzkrwptkdmmuesjw{rovsnn_oxt{zpyfhk{unwhjy|bxcsmlht_tpkrwpugv}k|lnjlgaqwuovvuysskxtohlfmpovs{xysjqqjp|qpjpresxlqlkrj[tjqmphfqvtj}rw|r|dbllpaqurlt}vuxz\rut{vkzf}jnyvo}pqryqrpsdzobrz{^eztjtk~xioqm{myxg{fUnutr{mlepoksbpoygrxutqvggsfq~xvzykoqrgrw}ovrxtj{knsqj~shohkr|mh^sfvvknjppktixiewrepktxl|kjtmrvzphklgnievqrxlsmwnpr~ghqvqjjfk~sntnj|rqsizgrwtpwi}kptyorzqwntrlohlvnpoysq~sym|jfozzpvou~yq||keuolmbusklkromtu|kxsnpztmufolxstzhstyzlsl|rzpjrhmyiflt}l~nqhmtxxomlxtmuwosq{zk}vklplyr|vupqtwrjfiulvmqnoqssonxnixrolx{iovqlvrxlfepyrnxghu|tjrwtfuftxqsuvrajx|r~tt{l}mlr}yqwtnrspxwqnnefnayexvblypummj~rufj{nusumzcwflusrws|s}~iw~rtjs}wvypwr~gtqw{uq}ot{gnjusrxzxzq{xrpkmszhu~i~qvfutwnsi_qsr}{yxmttu}spugo|neqne~{prqkjriqlrzinwpcyjhpruszsxh|mgmupq[koixl}qwoe{lpvlubronp{kz{gtm|m}|in_{x{rrlvu~qqwsarrtrppbolsinw|_t}iwk{swzpsoy|kwupsmmo|{unsg{lxvslfvjrchs|pqhjnmqwmtjqvmsuyhgifr~~|~nuntoit}x{skrxekxr~vttuttzmrykxttugzobwsnt|uotv{{jpo}zpmp_srgm|z{s~|rrqrx}~qjvkxn|mmi{hmpfzojlwoqeqmdjiymuwprpslqwnjxrwmp}skjwvepsutvjs~j{prusoioyzumtjyu{}}hwzqrtkoywxovpwz~`btrhvxzw{nhxkqjjl{wogpzcl{qotnv}ppcyn}{q~{ortjtfqnprjmv_nqnlrv{{}yurpk{uqi{lnyrm}~~vnkt}lolmpugtuhspjoulsnylmp~keuwwbynw~}wfkwuf{hlozmxlqrghwowo{vuugzyi|tktlousncylvwgouohnonwtrhy~t|o{|ofvuwoiouunncgzpejmvwutnxins~yboptow{fsjttwwklmsq}pjp|hsjoqcmsoisndponrpu{dkvmmrstts^utmnrsjlpqazm}hfqoewovlXquTxp{nn{zzh{~~xw}`vwds|ornurojntmzjglnbotnpmjgqswmrster~qpyzpv}}usauxk|rlvntlngxmw\oqpzuozuumtntslhtlkwueypdby{gkqukuydgupp}rpwh}~ksrjtk{tuvt_kttynrdmtqoopdlhomnzywj{poortqzqfmqqyprnr{mh}xnpsupktllj|mnmsxkrr|tmtmtpwrpymwgnwsrxoyqfpoqssnttsroiyjpukrwgppujztroqqxmrplipupwuqks{otmmspsbrqogsokxtxuuvssnlttnmoovnggxwgwn{p|}vrq]u}ltq{ujvfz~pmeehqogpyntxuis~yi{{sqwy|uwrutojzqorzucnc|vpjnyrzvn|ypquusnipxrvqotyqyvv{omtwtstxmsvhpvvzr}[gorq~nt{txoivt}js|sbkzkpswwrpkzh~katqoigdjumynzynhviewtgzqpgkzrwswnuttwnyuobqkhj}rt{vrtuurcuun}qxtt`khossvoxss{mzptlhqqqnwkpxqovwtvrtvuqsuu{pfvswrtvunitwuyvxwk}rqrqlsql}wi{ztodttwrurrf\uwsulflsboazzzu~oqvwlp|so^xuunjutcrojzuubph}Esydn`hnsk|gopxuowth~kskkydlm}yel|rk{mzzmsiqw{tnvxq}nuudfl~huyntpghuuyrqfonokoyirwmrtgkri~sosyryhxfupwme{mlsulamnw|zpypvnxhtlw|ssylotwmngrknkyjqhprqvk{vtpo|unzowwxmtuyp{qkhcwoprp}qg_skvomjpoxl}{vnphzqq}p~psokmvqrpnponqx|rltujrwpkkxlwoovkcuqkgsqpodurqvtfolrquu|psxervjqykutssht{|z|ypqewuq~{l|ivnxplmtmqsp~sxnyvw|fquzuptojy}ql|vqyipvswiyqmcq{pm}qxmisux_yf{rhj{svgs{nyttfpxwqkxrssgpkshxmqgpwvfqo`ws`qngtzsz~ngxqvhlsiyqsxkuqt}hzv{ggyn{onwwvnt~mwnzopxkowtnsmtofjkrqsgxqjmjvmykrgwr|wzsmurst}so|nmmutpo{htirnkktpbfnxll{dqv~uiqztglr~qmtwupyhtp{s~vfwoixvvijogruyxnkqsulfo|sysnpqqtq{rksssamjjsnluwvpkuwvnrhvftdnsbbcnuswnwm}jwyegznhjfqt{mnrrstsrqmyrnznimhrsjsztmo}ttsspwwypooypptVlyusxjqrktruynnuqvwsrolksk{uxmrlrlsocftwqviopt{ylxo|jw~qnkuvzwqrmxv`qynij|h|xqrsmvrws{wzeogjljuqkfvqnr{qssr}ukwdonkjnvmnmwqqssqsvrukxpun|pxwsqtugqztsspsipowrspwx|os{nlqnhymuixliniuotnxwmsmpvr|itlyrhllptjni~sxt}bxgfnvykkywrlxuslkytnjgnqqtpulpogxqluzgttkipwpkzwmrgsvrzqrnnt}olrzqnzizmkuwu|rjoqtv|qrnu{oubl}xv{ygypvy~~ozikj|xv|~otrnupmsfklm|vpoiunxwlqs{vi~kkrujuoloymynq{jvvrxkr~eusfurhnzuvivzlpxrn~xxslyxokpvnmldohtqyxnyvrlsiwvpnoln{rswmoktsnkx{fmnvqhuovstjk`otwlljmvip|mvnoyxpjjfruluqomtpfxxo}zrnuyyg}gmtxogn{gxpeuzq{qo||kv{{_tritmpj{zwyyx^hqdzuzfo}irg~vv{luwvqcv}he}oyvm{tvvjptoum}ojqupsuusym|wyf~xpgxmrlbrvi~kugqxqxmamoip|qeaxsskor}uqmmyqjyqokoqgtshsrx}tyvimfxpzmdrys~rlm{nnjvyrs|xkitjfrloj|tr}srzwqgtpmttvxuk}kny~uo~ottzlfwtqtkl{qpvkl{eknxnurktxokyyvwvukovnslzrmumtlj{apup|rotqvzptdonnpvyr{rsvspxrkxxmultmxxxwyuoknmuulskxwxrxnqhnxlnzmrmlk{uprpo|lzruw|yyqstpsuxrtmjqovnfpumyfknisrriujwtvpuh}|txpikrmwvj~vv{zstlyxqwrznwttwsvvkvpslj|rogkupqrdklustvp|n~tpovsyxoqohuxokqmptmfnrprjqtpqhrg{kowxknkxwyrf{ufkimbhkcj~pk{xtuu~so|ooyj|t{{[yh^p~vuertrylxrolp{w}urtiwu{sjvvriqq~tveqqxptiwklqql{xqlhtqymzto{hlpsozttslwlrqiuuw_to|qwmqppvluymixuovgyk{yxsimtxmuvmv{myloonsmk}uxpmqku{rnunskzqpkrjyswyx{rpsn{}xnt{ppor{xknpmuvtptm{kruu{stswwtuiknnv{o~pnymwlvnpwsyysmtvqovwmwvrvkkngjyysdsjrtx~nfzysnuqypr{iu~xpdtd|vxvxuywuwyyosvx|zplpp}fqvskskpwqzuyxrsnmtlynyuluntrtotyxsngnvo{xruumhwzmjihlkw{rqqzulv]vporut^zzi{r}osssyr{xlnmvouy{yuroiwwkmunypiqlp~olnplrvgpos{ttwnos~m}ws{xopkhvpwmmsypttlvvvpjlgvblvts|hno}qhylmrnzksorosimn|sozmqwx{nzxrqvdqqlpvts|nwoxtskfu{hswmlzwzvqsp|pf{xg|wpqypotqs~zudwpdzpmdqunnkjmuywlxuluuirwftds~qow~kp{knuoyqmxss~owvsnkywcyuf{~p}|kjisimtynyoplsiwztu~{i~psjslslq{bqqqzzku`zxj|tqkuidl{wzknytzunispnsulfdgyoinvvyfqenprlvyiyhogpehv~qx{xunuxiqnsh}yt{vt~nvnuln|ztkcsvsqfmezo}pztozsqjvnmiuf}nrlgz|~klvmrfcuvnqvlutvp~rmwtrzlnrjyznwxoohyxcyuzkrkquzts}otjmr}swx[skuthywz|jzyumujqqtz_lrggjtumxomimwxxtmvvoolqn}rxoo~vomzz}ltpstkuonjsm{iop|mpy~tflt~`rymtrmn|vqt|jg}tfr{zwghs}lmmqfvqfzsuW~wpdbsoswetxunahqiq^l||}j|iowstmunykussvvo{^}eytk~vpogpl_o{hevfqpbrfwslytb|ipjsqfnuytauum~{l_hftywcgjmahpuwskyrso|tmekiYtnicorpjr{ich|cvokmhtybkswvi{xszbstzlfts}oyvlbyjtt{xwpn|kpqvvqougsydmruvts|dtnyoseotkumpmrlisns{tznl}qwqxn|pw~omiwgtvxdlrzrrhzsuw~pevrus|rqtwnznv}fsrspczpqudlvjqwlxcuwhtowzwh|xwrgo|zjmrvuji}kxup{q{njwpts}u{uqqtoewl{vskwowkiyrx}toxupqrtqwrjxoyprwmi{qrkswev{ttr\nvosukyptvuopmogsqpr}wiu{rr`nisomrlvtyqv~worjtws~v~|pplqrwvnkh{frqvr|rvutub{uwtmpnoilsyojpboqpzfnhlw}kkpus{mjfqtWjqpcqyrpwqztomotntsfry~km{tsoml~kqonumpmjeqyrupoozqpnmnnzsipvypjusrtdnnvvszclomyknviurozrvmcihqkukv}eakmvsftszusxnsrtyvwksomnkso|sc~rl{swtnxvrolltrpp|ko|trvqsyrnx{swntxkdlrtn~r}ynq|pbwoxjvpsvunmq|puvjstgnnhspmo{ynzgwzrpoolr~ijwmzl|tqwmupxtopmtrosoqljdperylngovxnwxqsdqxktgpmmo{wovdxqlxp\rqwmnlyyoliwi}bozsvvxrhkuo{lqzun{epxq~txe`spoklpi]vqxr}ogisxhrosm{vyaeYax}ofmkxqpu|xtzdstl|ppupkxo}j}esevxnpoxhxlfts}lnlmvso|qoyqv{monemsr|nzlrfzmpu}tsszspjnxtqyqt{q_lmintjxuvyrghvs|s~qn}vssuixdd|x}}q~h{tgm}r~j{r{p|rmwkwulqnt}jpqpvwxnpnwn}fjslkesfqybvyxoqnstxrtf}smvmozhix{wxrv{fm}gndrursvysmyjp}pu|wxvggfqotilrflpiolv{svm~mpmkyygkyunnhxrmpnxwvmsjnlxpyzlupozu|sdqxrs|rllsuym~zqjqswvksmfrwoopmzYurwpqu~{y{fzvgzzul|vvnywmoqo{t3xxjmyiwLslvtmsvznipmyn~rfxqkj{tk~kw}xrlurglhqciyzotjmzpqrrsrksw{svinpgr~s~mq|lxuef}oxnekenqlhpsoq{jkvs~voqpR`lwriXrvkonvaprrrtmsysspbpovrnrjkmuiszoulsrYl}oissj||otwrnunnvpknunrhgwvqtuwwvrtnpzitnkmrqpwptttknurnosqs]mwqgu|xomtjmvspmssusvxziwsrs}twwxuvoovwpqmsvlqnulszukq|v}srxvxpyxnotflgpobtytxjsln{hrmwtorpwbt~rux{{rwzwoorzppx|~hqlmqv|pqqppowmvmspsy]oel~qetkrx[lu^v{|uu}wvdiem{pp~whzzhzjpfhauqrrgqlqtorswmsh{hsr]ntzfvto_{u}^kymopwgyqumzzstjx{{qfjaxhsprwqssqprsthzqj}|gpltlpouxrpsrwk|xstmesxsuttrfxrowrpxpunnppirrwqsyrxpo{mkx{hfpxxxjrjgqxgpzqe}sppmtttzx{n{m~qqrvypsukqqqocosmtsuwmvvhbmrqpzktktylqrzdptbpholvw{tzoputhtwmb{tcgqtpnzsszwdul{vvogmi}rumullewpv|moo{otqpwtvynbdiy|y~wmhqqrwgvhsnktnoypvps|{r|m|jnj|wzoog{krq{nr~pyjsngtlrspw[c}yym~wyp~hpijythspknnskqttkqpfitiuxkusuwpertvzwklnpuxswpntxo{xuoivk|et}pp}{tquoxn}mqzzxtjxu~`lnqtpnaySx}mjlkxxkxmkenlmslvipicysxsvvmhqdsnu`qtvvfjxpoqvl}qjutium\nql|r|rrgeorntrfrtvtn_uhosmpr{qukr_{pltkewromziqp{sfnlke~qqn{trq||snxorudbqn{iy`lqtiyoogonpmpwkmrvq~yxpqmtnz|peknjot~pts}zohu|gzuzptuqtpmlywmtjyrqqkwqsu{mdqyymrorf{kq{{zskpxttauplrrptytt|sumpuqphxu{sv{uwonsxovnjy|ywgujs}mqgqnmprerlkynukokgss|m}xc`mvqyc}tukmtxnnoxpyzuuwnoqyowbnqjYtvjtrziu}ju{tk{lquvzxnyvtkpfuq~msosmmqm|morsrx}vojyqxsegwuyhsknqpjwdnuqomwrirwkljtttxjqlreqmhrmursmmrqtomptovpxvjuz|ijtukyrpqjfuuoyclupypkuty~wkkmoouuusoimiznvnjq|s}prqsfplvpxqtqtmuiwrpqqwqswtosmwwrvmxwnlxyt{t}mxovlwqyqmyusupovzsyruxnmujsk}sqpsqjrqkuuxvvwzfusjk{iqmul~p}oouhfxpooy|jjyslvmfvwwrr|nlziuqvxmyoqrhrotyhwgrlqm{pqipgeltgt|lgsuoryxhmrz{ysmnzjlhwqjoynytuvyqkhsvjxr}zo|z}trdpijiuwummytwo}prqrretkpthtqtr_zwvxkz{wm|ouvfmzmrvgnmw{~l~vxrprrqwrqol|stuqo{xurpsyxqu{utztizlmnlu}qzykmovoslmkrxwqvgwifaselnzstnuzsvupxjumpllvt{qwhnuottprlvyyztmnrs|mwsf}wslotnmtqpnuyopvlmvytuxqnsqxskxsq~rzkgpmpnlotqkmposjqptytjljt|rhpywiultrqwzqt\wfqrxt|r}xhqrtpss|wo~q|~psgwqvrtprukrm{zovvqqzmrrluvvhpvpivqzx|nputiytvrixjwpnkvjnnmqmwvvr_srn|uorsssvqsttntrouzoniqomnsyrtdtuyxxynqqi{nuoqqws`lphxvuvsmv}|wzsuxcktfuwmuoyqmzjvtnvvmunw|woqg|xrivuvowj|ssjxmekupjgyqtrtysvnwn{~{|wYqjgktkvzxvxrrwuxa{xkqwxfnvwkfrho|imy_kgymnnnsqwntvos\j|jkvlxuufstqrqpmvrorwxjtmwq}qxgdssukyjtwuumwsqttmteju|vdlg{ptvqsttvkopzr|murljlpqlpttks|ispojmwupiruqmyzmnidqwhs`jrupolofqxzpumwkvkr|vmnllsquqorironxqepuuw}lv`ptqwtqvmhvszqyzn{{wmmrergtphqmuxwvznoqszoxipswurvkmvutsYllyk{rsoxo}wxleqtolocmuzotvtmtepylwuxmungt{qlrf}tmipvrzlsorqpnxusmirxshssxnyupxwlssutvfjoowpuqbwxrnb|kwixriuyiuwvfkv|}z~kpofqpvbttzo}~|dyplqufyrputgzwzjytjozu{rtos{s{{ivpqvrtsoqowshm~osvvlyvepokpxxzvz{urvniq|pzxyizsynxyzxrt|{tzn^wftptunvhrrzsnsns~tnsrnwqsvluhwvsnukrvwwkohi}osnvdf}sf~stgctvogbpvdm}xuzkuls{kwqq|ncp{rlnssh|hp}rouzysxsqlnool}jinpyy{zu{kpjrjylrvxvl|qr{yjrklyppy{mrmxytuzthtxpxquwpuvzptkqingr{nuevsp~upquwtmponogtnmsxzmywsnlsvfo{xkhxnvkzln|wmo_{jymwg}onsjztesqhmmjnttyuntnsokrvlrt}zrquvpf|`ktrkusns~}po}ndfvuxjtq|wpknruuyvxs|np`sc{nmrteol{ks}nmlunwmlm{zrposnrlpuysy{ssovm|tssturpnnnvjttr|qosoinw|ssvjxsxunporjsqunoxhullrkmwklki*y|t]nsrjhxtzv|easuknxwmrukgnQlrryrwxsvvjtv{nmzduxopeoiqowoteor{}uzkwrrt~kmpowmttpgrippkvsqqoqrulisnplynwutos`x{zzph}wpunp{qqzpmqtsrxutxlrmnelzp{xxr|tumpkohrp}nloqdh|zljqqr}xuxoei}w|skonurpyspgr{itoqydvqtmwvulliqrw[qqlwszj~~pn{|wk{f}m}nqvuuwq^tuqnkrplnxsmqjrtqifnihxgsmz~o|tpngwhuswptntzf{xmytjuyvujowqtrkrrjmxjsvsnznnmtmp{lzsnpipontapwvtrrbnxnqqtverss{ssirhxyxznsvumzvujpo}x}gzsqwruquvglqmuuvlnznpopurmfx}uyr{intn~wn{xhwureqwj|vq^ophcpyuxnnwrjqtpfwgogjnugm{mkfjqxdd}qnlslfzpmwjmnq~xmxo}rfysqkbzppqmttupva|xqizzpxjvwto}sgrvpv}qjruu{poouw]}pwp}{pmvqivslor|z{c{xm|lwttwjsywouqlu|nzxzj~irmmoosurxwpuopuzriuvruv~hpxyksrpjotcm}lwlm~tos|rojmsgyozopxbsqqorrr{lvzntrwxnomrhtmyqsngxymwnzl}uwooxtwzmqylonrt~mtkjurl{jsuyiphs}trprvpnzgstmfoqmkpjiktljqqwjvvtxxsnumuutpnmny~qs}ntoorowquxsumqlpsvwitgmmsmkxoutrvroqnszthpmovmr|tpjrklrrqlbounouvnjzrtwp~|tutpmqcuorvvhtjy~yvmlrhsvxgnqvutn~tjrxvrwvvn{jvwqruyxomryqjupj}recu~yzpwsp{pxumsrvtiwuq{rttsroprwxsjzmio}x~hsposwrjynitwvkq{qurskrxmrpjqxsjujkwsuysxr|prtnqqlu`ky}oiviwsrdpotrlougmhinl`ovtfkqhmg~utsu{kmmjvin{vohvp|sd~rjxi{zozwzpuqjevrgxi|rxxhvmpd~qmxwgqkskxhx|rhsnpqvkrrnkksmunhwmgseolopilifz~pruqjhy|uzojuxwvfkttyvptssujvvrmmyqzsx|x|qqktqupz{qplyrpjoppmpttvwuvoumkzlmns{uivwfsnzts}yoxqqmwk|tv{roknjluc{vixunttrmquvqfpvuvvstywwvvpjozv}r{zumrptsv~mqkuk}wtwlbtkhsqyprrxjuxomlqbqsydouqdzqypvvuxr}olvuopzzwv{o|{isrtnwwvdlkx{nlkqq|{ntspqmttkx~xutkqrltvqmurnunn|sl}_sqp{fpzjxsylifxvgohn}qltvxmupsvsrxnlo{rnntilj}mmryryfztnvn|oslwmtpqowgngrolrputsjtqxlr{ufwmxovwqpjkmerm{trnooeqkx_pouzlsbqvznwthcqllrtlqlzlqpqp}sppwsreorxlpvwrr{sqoqsmirmzmbugzntpks|eypqu|r}sptzpspoqpnvnljoiypwqo|zthxqpl~qt|unptgxlpmr|xrwfxkqykzybw}ipvkqtu{kvwotfjvwolmtstror}uzy}xzyiwwtszslk}iopdus|unmsphvmol|rmnnkewvy}por{trpqsjxumvl{nqmnptslgmnwok{w|hpkqsgymsywllvrqrwvwssmnmmlxrjvoyqoogxrwntxsymjrnz}nvsntomntlpr|kpppnvzqjsxnilospnowwpgzfso~mjuxk}nyogpzpqp|yoovnnuvipg}qu{orowklxqymsvpvkjqoysmtowynyrthpslrrxpotgsskgzuzkl~u}egdsiropqr|ymzqyke{~lyilpjistk|qpuwrliligzgzms|qvnsqyuyyqp|qwtsnieox|tsnw{nwdrpo}rosvvkwj|nqs{hejqunmwkymxztktbn||aqogtpiznjr~esgd{qowyw|iydn}uypw{fzmtx|szpxnhskafoiso}t~xnvqyxjgnykrtxdnmylqgs}ofpy{srss|jzxxnwyvsqv{vr~wuuy|qfrzwmxw|{zlu{gwsz|owk}wvnwss~snest{yjsyqve{qftvhlzchmmoxrpypsmnxxsuart]t{prumnrkvmxsuw}xruq}enotbshi~y|qzsuvrnwlstqil{vxbppp}uvolsehjoosynlzn{ssmppw~ooxbhvurrjnrhtuu{~lhnuzusnnnpozzxqtt{lxXpmsthikq|spvmus]xmqrhwg{yvtrhizstoz{hhxpsonitomvyqs{g}wfrjwqtujwsnlivz}ms{mu{v]rsn{prjruekbtoyxnppfw_zhqu{rhkopsyoagscwrt~}a`k|yqppvwmrjotzjnlau|ii_ksu{~]ospqfs~jcooikmywzulvqiqy|loqywkjoxwswprqrpldl~nop_rzypwmesxjntwu}ktj|rwhpbwz~xtn{hxiiysuxoqjnwyh|y|wz{iibkwdtpmhtv{|tzs~splms|rfjtposgpw}ftdhwuwm}pntxgmnvsvzwregqot{yruysggoqpzu{oeplrxisopskrm{spwitshutrxystoxhzpmnhxtruqmms~}|rvvsyuuvcvtmlon~ozqvtzocnwlepkmttsqrynowltososjw|onzpsrktrlzstvqmou{yk{g}xjo|sysvnoupnmymzm~w|{tqlxjqdillzgwxtvlshjeuwwmoqplr}wopynqlniyujzzvfqxxqxumiljvrpisozyottp}}jh}q]ymnplpj}rlw|nypqoonlwtum~jnvyqkykqbb}mqwppuYvvnhqjlkXhpptr~trlnkrrpx|qrnvnyi||zmns{uquoknurrvlmustommqlsmrnwyhrynqtvst{syqwshyplsxvospyhdnlmqomnsmnqknoxuzmvmyj|srnqqnh{rpckymlxxu{rjkm}iunrpswvj{xs_{qwmunkx}urrnsvmtidktpjzsqx{yvqmsywtwfkrpvv}vnzknvgsh|qrk~nnrrrwvorsusutsqnvsuunuf|fttupnsvnpzvnoyryse|qorktnqmqqspqxmorvturssvsouupxwrwon{knwirnnwqyywy|movpn|nquups~|urytrww{oud}ivxvn~rn~quzzrsrtxt{otrvwvqv|rurptrhrorviwmxrgtg|swofqimos|qvetskutqpsvy|tqrhzwvhrtmznvwnitqvwz~wdwztoovjturxsp{wysvotqqwovagmzvrvlp~pzxvwhl|msrvtypypjpmvmpzpmqpq}qpkukotfqo|unpwqpouttultzvvps{vut}ilr{q}tkpwsrlrgvw|iwtryxnm}nnh|kvttookynhtotqi{rhojrkpwqqrsnpspv{xrvwu{oypsvqmsqqmyr|rwzhltqs~qsjiujjqnorusurrhoeivktubhthkoolxuwmpsuokm{txp~puwkkuqprxlquptkqsxowhrpukjuqylrsrmqvlulnmprmjpfoozluwhljq}qujorjruollu}urrttrlwpdlroloxp{usk|llxxlmmryjmfooqzxjmnzjvsuio~smfolyumypfwoxwvuvqrkoifrrlfpuosktytqqr|uqpudlspl{dik|jopbrpzprl{ozmqhhkpvojmlvln~enurqsgeinmrpulqfonqsu{wrptmigspotknqnypktpoerl{giwvmn|hwsjgq}voooeuwuqqvoalnqoxmkipypvjpyqm~mlpv}xyzqimpwt{ziuumpnylsrvxtshwplynlngmqxmnu}}nujmgmuqopwub~txlqrmnzc~ukkrnyo|oxw}npinnuoopsyrmhnhrrkrfq^mqokr~bbpioortoviyl{hmkgwlgryhopjztkjxgwnzgttmkltqyx|tfquagnqsonppjizmxomxwt}kilfolnlumovtvtupjgbtsupisznyqtmmdustifumvjntvvxwwsopmtqu`tu`uqkywmoelwpvpqbvjopurq~kiwo{rqvygqltxn{ymu}pdozmfpspjwpqkwwkj`fw}pwtqtouvtpnyupknputvn}ozlzmxejimrnq|nxqxpfqntxsrojtlssssyppnp|shhuvy{splxljn}tlnpunvudovtfpts}sukvnpirokvqr|xtthrp{nhnrruo|pnt{}twr{gzky}sfnuux{ttwvnzmqt{{||uvvtwpjxe}yxysqwtvuuotuhvsnymqxhxqktrtttrjmlluomsn{xotuovrgvuwnlqmw}spvw}p|pphkpnpoohsitnxdxss~wolrskv^kptqfonghot`j{{rx|kxtjvjnurmiyngwuq|zWoytiki|psrniu|copt_viuoms~uvnmpqmx~wpvr}tspul|xuuqooqp}fvxrvlrvtwcyovmi~njgmrruorhljxvm{tsvlwqiqntsh|fqmoqzxydqkuw`ljryjnonwjqq|hh~ssmvx~lnrsmkypznipojltxrvrtnlxzowclxtfusrhnjtmtyyyqrilpyv~~r~uwsv~uikmptyzrnpvyk{jqtgvkkxytytknro{ktw~mfpqpnltstrtslnnofu}zutbzlmqpvn|dskfyxuzkxovusxovsstzntxrqq`lpsm{fwxsjrkelissvqtnmqjxspuwq}roqrzzgvvv~xouhm~irptuvixqotpigpojmo}swptlszoqyqsktgqsokefvnqdwwtxtxzmptqzm}gpunwpnpn{pyzs{iswtsmkmtwymjwrkqpgrepvqvtnsocgnwwvibnwtwltpmuypxoozoqluznrtph{}uxxh_mssvmyqipmt}qlspusrrZmrgurvjtskonvu}fnvgnglyqswounrusmtms`murpnji~tvtaixxo~rmivpvurul{ohxrsxnoqwsuwb{dvnqp{woxgsmnyu~ojk}vnonokor{knth|tqtjfqhsuwrvpnrsksukovdjpmtqottq}siironzny{qxwws{qimkmrxunuq|o{tqpf|}l{tlexolfpu|ozwljsssekquqvfqhdtpnuoqtpxolsop}wqxmjugkvsrboyfqzhysttctvrtrmxvlvwot{t^w}ptstijhlqnzpkvsmglvdvtsuowgvn{sohlkopnqssssjzummvvsrdnopuqlrzowmxqsrvlrtiymqtrmumqiypxu{obdhtqrtrkpuyqqtqhpvnpnuwyqhnsjvjpxtsukssorvjusp~pqnktryyrhjkqs~rqxjo{{mwqsijmoynucsrpuqquzmytfkqrorhnsqhnorxyvtqhnplxntiqmnhrzozwxluxmtxpvyqprzurltnj~~luo{i}ruqplilljywuroqtnyowortirjilwuqfrhroymumjruw{qklnvnotqtutmr}yxospzvl}tuoxotg|lluu|sqom|nvlulvvqvxwqrw{yyvxyktpnyryvvqvm}dqslrxsuux}p{k}nsqujsmrywtt{rmuswujpvowzty{wrvzsrnupzyzyphnuulwuvkpsr{q{xtrwrukzrvqujwxnowpklqturlqkxqpxi{xxkmqwy}|jqvk{nn~q}nwysdqyswqoxoyoqyuuqwnxnqtqtppvqyqpqnrpomysrwswmxuisuuwwqqsivv}sqotvj|mvl|yn}sxrqqx_pvwqqxtsdrzwnxpqorgvonov|rzrlhjnkuklf}|ty{isnqnsivlp_ttkusrrrmv}wpwlkoovrpr}Zyussvnetkoooumtooqen{qskzqtuwcmpjm|sivvthutlruutsvti}qg{xjuliomtnuw|sjzhkgplrpiuunaojs{tvatpyyplduitupgj||suwwum{oqr{}lnoptiww_k}v}frtlxfopghpltspjprjivjwwwtotrvotlwlq{kwxmrqzmyvlxolnfonbywrhtd|vsq{inttflto}qxs}pxoszwyspurvngkp{tks}vupjyxisovpqwss{pxuvlvfoutn}xqikwmvrk}uumxmqbrqqqwyfhfrympqmstyx}tnwtuvvqrsuggmutsrxyqismn|wvsp|kwvymnnsmq|jjwst`ostqqrpeoumwyuz|rmrrpgiy|spwpryxispimpbsozqrlr]mfncs{x|tlryopnsrtinoq}wyvsznuqe~u{toybvo|vzqps|jqmxwpp~wnmhw}}wtwqfjuytkhlxrywue|vuosuj|riohqmrxvqswwu{wyyrphtbWzlpfkvjdnqo|zoyrtquprmloiwpit{htorqkowlr||jvqsztuon}stqymrvnzolmrywqtlplkkrmrinetl|nqvcnezlln}tqpRnwTpuptpww|~oeq_txmswkqisrbm{ywmqqpjonu{pqzkwlxxlrzsxvqtu{~wptns||toytlvw|tpvttrpxvixn}stvyp}qsn|~xcmhzwtvewiqlmsptcjkvqkjznvzwnpt|qysr{wquxslpyu{{wx{|uzwqzfukpugsmjnrtuusrx{v}pxpyrxtylwpouttvpngmrzvqztzxqrtonzzkplrymurk_zoxr{l~hwhmwuptukk|ho{nyxuphvh}u{msypfypxnzrrduc~mwpqye{qxnoosptp{kekk{uhsovxnwzqnbnsgwqtvsx`msuqzotzrzhnhuxgn~rumszmjornuntvxvltV~mtwrjrnvnqtprquryxtit}flmt~xlymuuqovnqxnqsovmxszeigtn|ppprpovypwjtr{ovsuhtk|tugpltsmjts{~oerut{{sjxlnksuoug|qlouvfg{tqlu{|vXmlmvqcjkpqsqfw{|st~hmuxhuorjtowjqplytz|m{vrmsm{swtp|nxgzptvjxq{ssiumowjhtuspy|qqtv|zqqpvut}ui{dlvjoilfyo{przwpsszy|txpvzptpgrkyxmklzxnscwnmtge_cguxxpslr~lwv{snir}kmmvhtqimtxfllquoyqxjvvzvixnouqonpzuzpwpfhlmpvygtsjuoiyvomsxjvrox}nkwxt}zqqiwjsqlxvvrrmupxtvtshrvpwzliqvniwmiytuuqwltm|qu|q~p{ssqopyvsro{zymjslxg}ytj|hxlurgqiujtunhyr}olp{xelr{nguvtrzw}nhokyoswhsonbuutwtoz[lostroxt|{tyxi|ujmuhpappnepho|pjv{qsqmnszqptmhlpivovm{ia~lwjsvctxuvduwn}putvoupxofvlirymaqrpnpspvzxstjxjpwwsrtrppe{vurpjpm}rpvc|{zm|oj|woh{j{p~neu~omkmnrfwjs|pnuur|lipuwq{sxoqu|pyekyursr|qh}~xrwhssdlvmvrqotsmeifungvtmilwm}j{xtvmnrymzhtxpxrxioshtqe_ypmouuurstwpkwpkpqvinnvtyq|xmlnqqlpnyqhlqswhtkr{ujwqwlthoosv{niqry|lzs~umonxzsps{zwoyzkwswnmvqoxoqoojqkqwy{xq{q|xmwurmnvwjqkpqswtkwtrpsoxnhrrvzklthrxwwzqetsfyosrsnon{{wilyvptymnpwsyyoqmumqrpuboiruv|yxmkljsoymxqlvvpyv{qun~gsotksqqw{mwnqrujjhczwygocntqixtiueljoyito}lqr{mgxrlinrlvmfvtth{lmjtwurpwnxptwqopymeslpwnpqjlomdtskwmntsrlsq}opssxqpqstlpnswulqvysqnpunlotrjjstyzvrrmmtgvnwyxvymuppqqhsnw|toptvnpmvtkmonustysq{}pi}qsr|yqutxtrtntpppoylqnrbltsmxstqjwolvvxpmytkxtqyoprwivrkrqpbywu}usyylrv{|lwauszmhk~un|wlumklorp}ttiljqekxj}tumlmkyuumsmyiujfoukvmkywqvrwpuwprrsoglstuqxrznsl}yoymnnvzqfkuwoq\vmrh{w_tvhotzjvsuqilhexwojmkttwtgdozyrpkvyyppuxxzetpuvpootzoetvudpwmsf|tyghnppmifvtupnqjp{wrjsgxxzqykvrwotkgmmf{{hnnvxvruotuq|ruptroydmofvyttuwskkxq}}{]vntgttrrqsysqlsoim|snqtvhuguzhrpuiptfwnnoppwimmlzgemrrorgjjzulrjzrdusknoturrpo|qv^unrmvo}zslsont{synrojpllzguuyhusstgleu|~utppvvkprk|oroztqpu|yp}mrjwiqwumsdw{rvvuxzptqytuprmcwlxluipnsuquvrrvl{lgul}oyttlfzuyjvmqyxow{|k}pryqnndlymjjzlwspxwttqsvpwywoqw{qimmuluxjjkogwsswovoysu{xjtonsuv`|zthsynuymsshwrsnnopzls{u}xowi{vsvnkslmssmxrms{yx~squqyx~wqfxxypndtpprvvgprs|kpoytwxrxxpgno}o{so|uw|nnvvgnyqmrqjzutjnzwnzqyzon}spuztsqnvorqvsrzphsmkomltrvom{nqxssmrtnsnqwvuqrwtps{xnorstmqxnys}x{onrsuppysrrrjmmor|nns|mfqtptyaxrv\wpptkrymwpksvrqvtrloocwkzpgor}nxyiftVvtu\stnzt|xnwtmwwjpntuuqqwtx}}igxpvsyxsw}tgzqjypvmlqr~u{sgrsqqzpnmymumyykjimwuszqqrtqsr|qnyeiqustkqwmpuwllmmsqkortvqsuwnoqphnptrmqzvot}twyvqnmrlycjpu}msmjw{nismumxnvuso{tu{sjrlwoz~jktqmrstxtmrhvlvlfwnuopttxowmt|uwzettjprqgmsnnopuduosud{uqqksnli}oh|oqldwosrqmllqyxlxor{oxoqnrgmfzlwrxklqittxoplmpmq|pmslvxgnqp~yu{xwrwtiopkixoywv{m|uhrsolevsinpluvvuywppyyrsh}yikmtowknkovnynjqwrrwhwnh|unsgqz~xlj|zsruqydlwmoiv}|k|uqzwkh{{piloumllxmouzu~rprxytbomlx|iti{qfsnshnosmsx|rt~qyvtpupwrnofqjtsmkpgjsusiaizplisqnnrryjjoqvnllttxufxxumxwnohndjmtxo|gic{xurtiynvkrqnvmkxylrlrgjq{phpsohvqyqmsm~~xgst{lhhtssqhmlxv}wiyimvmpqnyq}ztmxlsxpnsjrj~ktoypyo{zjonknxmiewxnxmjoskkgxrrjtspkphkyoulm|~jnpfvv|wswm}zjmfkujx|uivr~utu{h~vrunwuxqprwnlkim{mrtswsorrk_inzsg}nxwvvi}j{~nvmyvrjrstuwtptxxnqmyohstnkvc|s}vwuwosqkqusmxksrporooqrsyrmuyozsqmqglocxsjkwxtlwnzumtntydxkpslorwkqvoxljvwnrtlt~uou~z_ggxtyi}hxvyuuwwlfxiavpvp_liuw}{nozpoojyhixqwuwkxuouqymtwpnmpfwioVztzwqnwoqsuwwprsylnn{vrTteyxdqfgdqwv]ysxrznxrqsmosr{qto{|hoxgoP|tpxi{_ztkkmzvttwmwfoxjri{}{r}f}~suvjsqhvv~{trjoits}pmrxxvuq}zsgsznunpnpr|ksgnmqosunutlieopepm{jtqf|lyspp|oxkpzysxpovwnmyvyqtt_wvsryoqpmui~y{psa}rsmmmlzw}qlhn|umtnnx{mqvohtniqrotpprssoxx{nnvywiqrqsrqlqqfs|ozxfeltowyspt|lpohiu|rqroswnjeqtylpqopn{qmn{qrgpevxvw{~mwxtlgwokqttivgquxx{w|mysykopjvrksun{thssrowntqikdovwcrcj{skem}ktrr}fr{}rsxmrqsxz{kutxsx|l{rgqucmysqzh|~rtvmvrqt~qpcoor|h|rmiwhvfvnw~fy}wqznwrwoon|xlvmerp~tttt~uxsyxpmjugoo{}pmrs{crtvu~r~nsfrsqppswuoyrpnmzkrqt{tyxoustnurinyruspf|ypprjnwpkkvijtxqqznl~qytuow}riookskwfxqrtxvvnktntyov|pzrnjlnpzl|ttrhvmwtzthrp~vtvsuyjwqstqppkysrrqprtow{tprztpzgowswqqyuqaunoqlspplnsrwtruyyunmtogpvk~{ttr{xtp|^rro{wqr~wvuuosqyuweryjpyluptsohnuskptrtsxmxqsow}qstdmrgymyrsszptlsopijwlsupnotvllplxmvz|pzitmyqtuqskwrurywrmjngportzhn{skkklhsnqVytrqjdisxozovjoalkrq~sjtihvpruslwlvcsxn{syyqsnppiwpqwovgimwutuynuymjq{ydaslqqqqmlr~trvlgtmqn}mxs`vn{prxnsnryslrvjrxskupxstwsb{nvnslbu|osobjq{zzwto~wlousvt|kvn|nvu|z|t|vrtnyrzzyipxpskkvde~{jo{ol{iwujxsuixtrmsnqkyx}ruzarrdm}lpotlopsmiuultstrrouppt{}sxuyhmjqlswrlx{ttouqvnjnkprwtlnijwkk~kruuiqv\rpfoknskqewou}^rrfjvh~rhu{vhpwo]sqn~owjrgttpussisxhgk|vunxl|f\q~}mivj~|vowre}zoo|yjohdn}wnh|sjloZvjul}i|jgmuwrxuvvwvkivjmd{nqbrvqrztf|qompnpgsnkhvdnkn|wkduzrttjtsjxukjnuubjolwr{vux{q]|mysqjn|xtnko~soqxyqwmquki{rxzly|qsqyftrnqvso{n{wptslgjwpnlpjoyxvv~s~khounnxkxjlzrtol]oeuxrssw{oolmqmtqvpt}zyo{umwosvwooxrouomps|wssnrwpwwqumvtqppuvprwtnwynoqmvqpwpuvrzsngwysqtpnksvtvzvrrtvspkormylnltuuzxtqrxlwutkmkxvxtjr|upn}smuiwnt|qpvxqkpzppqu{jirttzj}qsptnpwuhwwwwlvi_xukumgwnmyhkrx|vs|q^pprbuwssmpoxqos{ouznwooowmjktuhunzv|ltlwmtonqnpmji{wutjuqnsw}pnrllqp{mqsmuxsrsmtrztrrnonovnunuqo}xtstuqqyqurupuzemqw|sxk~lqpmvkpvl|tuhtqwhigtuqvoqymlplzjqorymvowmptmvuowqqrkqvbj~{svmuhsyivsoppyilxslop{klkpuulunqpmvxylykqqngts{lutpvp}uwiemyupu{fs}sp|gwwkl}qwqnritllp}}oeyuyqvpztpwmomklrlpjpuzoqrjptvryslnshjvmzspsysxz~tqostdouksxpvllqtjsiqllwvqlujw|qf~om|lbzsfsyeotu{{ulwvzr|mmztpryjqsnrurq|qwwfiqswwozmo|otxwoof}siqqmgqqgprqj|voqxqzquvw`tssxq|{lktntstciosvuhrqsmvupvqstnnmx}votmpj~khxrmvmokkoiyqhsslpqx{lpqvvfklwrupozqygn~gustrpnlllqouttrz|yqqur~torsxzjrtqoyrvfts}vu{nors|xloorlxkzxyjrmqqmyuourattrtorqkso|{mpwhl{ruoqkjsvpm{oswzm{qrororm{sotrotm{pi~mswtktrmtl`ijrop~tqzl{wxgvwrjaqwmwsohln{usqnpwtmztgwzvncurhnnsm{}~tx|vtlusuxpqtxqyruusyvspyrrktfhjprwpqqvltxsuplzyuk{gqvoryu|pllxdueviw{ltwypqjzzzqgnrqkpvxomymrvspxppdd{upvnmrmyrrrmzqrin{rxswpsstkmqqmwrsnwpntltsvtzsprqtqnjp}tnxuywtkossuoozkxuxvxsoum|upsspzjpmwfhrimmt{piqjtap|xskopewkjdsqlmlozpqmyqgxxrsosysrxz|ypwltmlseystkkqlbn{uhkorqg|npv|{riumu|txsluoxvrws|t{c{q|dolpeavorn|eutwtn{omqm}njtlciuomo}wopwkstnynpilheplpmtmngrrylrozywesq~dpooztwqplpsigpuzwdvxwu|{notptpqmulhimnnvnxouctxro~yqondytniwhmpnuol~vxgt{jqgnskvxustxquuotumnonn|s}tyrslym{hpppsptouxtwwinsqtxxqvkrqyhqvsxpywvwttzrzwouspprzlgnuuyvoqzxmk|uplujstskztkxtvwlqrsrlvlw{pwruwxttyxmojk~psjpyqyrutywqmyqrftrksqulmvoxts{lvurkq{oqsltmsvswpoxuonv}u}ovrwvpuug|o~j~lrmqqppqnzpkioojutssvlsr}sthzxkrytqoioyxjrhioxwqwnooottnyrtwotrf~klvgxqeusnmtuoppymontkv|txrrhoosw~o{ot|wx{imtsxksvlzno{zbqqqkvhomhwp}krp|jn{sourtmstn|lly~lxtvrvxpuugv}iurvgnsp{torxntywxkwkoukz{mxe}zkm~mrr}olpqrmw~rswfrhtusujmqklzktwwsms}wqoouqrsojlvmllovuxrpwrsv}xlfojxtrlsqisuotsglrrklottpyylk|iotglunkvsv|ongnjvsvwxtsnmovlvxnhurtjoorvhqnp|ruiil|~hnyjqmqvpsivis}onnmkfsnrwxmszjxuvr~zslovqxztynrsxspjvgvrtnnziowojs~gnvnujzuqvdoylqqbvoyvbrq}gwvmrtrowtkqo~xzriptwwv_}utsrox}opq`l{wn{rlu|wyy|uvzttitruqzttom{ln|ptlmjqmox{pjkmr{jnflvOhvalskrcposv`llo|ks}pwwsnvrmhqjmsttqklqvnwutsx{voinkhzotd}wntxow~mv{{fqrk~vxu|w~hlu]zmtqyuygq~koorryxmlu~~mzplqzpyt~xp|fqkkqxs{owwbml}mwunkmntkf|qnox|qzot~{hst|quamje{qqmxtsktmqjkvlzsqpjvk{tkrltpxkp}whhn}~zqzytnk]jkugqwoxj{lts|qiuktlzpjmlutmqnrqoxatyrldqtxptvpjk~eplfm{w|fjrojnzqk{}t}vtumqwjmuhapjqrnujnxr}nmxiwsrhqtmzsahoxlojgqrpo{ssrmyvxnnuyqspm{psxhhsufxg~oitk^lspyhwun|{n}qs{nyudjitwxtrodziymuptvqeykyovsq{tmtfsruqqvdvevzzmxk~v}nj|zpturqrszqwtsvupp|oenzrrt{tow~|v{kpzsnxnoiysjzukj~wzyvqrz|irn`yyr}ryowvcxn|}nrrpskn}wjpgm}s{pzzv|j}l|qmpqvioqylhbuxsleqqnntztsonpmmxsnwnxjoqsg|qxqw^wjswjzlhrqnks|lmzlt}hxiiwv|smozqmtpugsmkimq{{qp{uqktpovjuinu}vrnvwuhyktyulnrfvwtjnwpy|qp|jtxq{qgtxxspjduyuioujxkmiwzx{ptsmmjjsiq~rmxqp~dnm|vsnsmq{uops}hqvmlsyqxirio|lukn}ttmepswpsrnooguinroxp}o|ot|sfzotixnpzijsrsnmynwlrnrj|rtvoikqxuffxo}ilcn}~ltcxhwgszouhtqu_uvgwupzvtp|Z{`owmms_vmoyxyvplzylpltmvn||~oj{{joyzn{sytlrvunjm{toqilvrjcwxrz}sfewu[{wqlxtvqspkhsjnlurixbgpnqlpvmk|p}mquplinkjyhr{euu{vywkrqls{vvzis|pxnylmwrorwuunkxxlrppwoysqruxnyirnhssrmsqtsyqxu{vhptskvqwkmoyggoq{wvqqpqwxsuyoqjqt~urufl~ouar~sl~xw{ppslwuowpymyl{nsv~wiwlmwhvlz}nkplzfxfzwqnklymrkol|k}nuirmiqsyynsnltkrfuqwnhnovsbw|mnpxwlprwpsvzlqtpostoroxnsoxxqsytqksyzybpjjioixdntlpx{vr~sntpurhu|tpqyxvdou~oyjhzhsrqok{xw{j~pnlskrdnstfjtwurxnpkwtvbru}ft}sunjon}pulpmtqlq{qv{pxuknrl{rylznmyulwwqlrqri{svr}ywvwhuvolqtw}s||o}qeprtqlo^lxs{n~vvix}twefnoverxjoqwe|uofoqolkqktpbgtvqxlkirsyZmrwyrrycqpcztgqftjl|y{qqgoy{{[uzpsdegxvz]]ryxuyqpsspnvlazhg{ljuiqtny|ol~jrzgppz{budo|wvsvkog}rwdypns}crosuzqgrh~ulssspkjlrpxt|t{luiqsqqqvl{iprkm`haitlxnpusmt{kqjq~r{nkscigm{m}ndsxukpdyrfvlgsqkkywnyynr{rvoktzrpppqvksk}vhrpttnsonxu}tr|pxwottyks|xlwuuhso{noft{oqksmztbrsqzy|vu{huoxmuuwsnrshussmjjtgbrnsymkouxidryaatyopyzvuivzyjgpkpryssp}unmmxu~posemwttruksm~]{rrrn{suqprnsyjtqh}kwposmkvuslmrkq}yvpw^nms\}vjmoh{tx_iqkruk{sjuutxtsrnrklatlmnumsswu}pfznmquqhmuk{~qrlfon}twrxrprrhqum|qtvgyo{tot~rnzyxv|rrssmlqosxx}rosonjqyztrykxvsureuwopumqsi|wtkrxvxshnofzpg{xlyprtolyysw~lsdudohpn^ssqotuxtuqpxqvtqowzrvpoposjnxvq\xpz{qshsv}nuy{ensposoibwninooksmgjtdysykrsqlphpngwxqywi}fqjykrttfukmmvzw~gpynqmqypdlwr~o{piqadysusvsy|gwfrwmntmhomsyjxnosltwrw~qrnltekqtmoksr`rsnorcbhpumpkgt}qloqkrhowuptumjttmmt|^qvorshqsrkilfsvsw}iwp^htwgyltgmksdgs{hohzriybvh`pqysyrliqn_vbquuoimxqq~bmmaq{tlvertrksx{_}rlmxqutmcukeplkbwk{mavxfnulmfpsjrtmlxunhpsnlfvro|mqtvttggtgnfg{hqvmmlyourspiuxukzkgjxoopqqoqmrdvlvquo}|jmwlotmitsoswknknmpnmoqwtut|usl}ijrxxnyuuvz{wunvexpjrmuu|kwjspilupqtrqotqnsokprhvxlqwty~mpisr{njnuoklovlupjhuy|{~ymsusrltmyrz~vo{~mnpj|m}uqqsp{sjlsgmqq_vuwpsmhumyivqkswrltq}{srncjjruzthkf|vkssltpzppvt~oefktrrqvpo~nmvsp|pp}wmquonmltlwfpkfo{s|mrmypqlprprplztwioeyuprtsypyyfz|ppZq~fvut~mxhylxuyqsqmluijtxksxevtjz}nifl{lukoiosoxnwqogspu{twr{si{prsirvnhskottopeo\rgrj{romm}lwqktozu{ujowqgvvrsmqwtrizmmewkvzarxsuupwstumvttn{pwq}llix}nnvhv}okqqlhwfohklkqnjksYux}{h~kvsmxpxiruo}{prvxmsn~j{lpvrqufssiie}qmuqnqsbntnptcqkgpy~wfeeoi{xwhtittjjx|yitsuhek}unvtwjw~coqpkdivkn{yvx~zquvrimssvzvsgphqttvyvoy~pgolouzpueeylzsulogikoxnsqqqyrfkhbulzqsxqusvn^hzqwkoxprqjiyqosvtrmosoyjkwomfxzr|yj}yxqmqpifqmpvxqm~qorxl|tewofovvzknxjzrtktqvialbk}{r{tcoyj}{s|s~q}ii~w`thepjsvvxojwhdmrzsqs}vsmf}mmvrswvpdvjkvpvtxuaakujhluwrkl{qtmgmnrobqqzWlqs}u|{`teo|sfndjg}qusmuktroynzqwspj~lzugrlzirqgwpxpimitsroxmqtwqrtopvrtrmyyuvjn{urzhm|pkktqsttzulmy|qgwvzjyysxpu|qvonmvqrff}omunmkmousluqpvtnsnlymxrmwlov~p|mlouqrohqqiuoa|ulim|hrs{qj~pl{r}t|mspo~hosluqnk|ztbopszprn}lpuiknsgxipjtqxlot|{slott{ulowmvqvvyra{q}f{upkrtrpwfzpk\ypsqqpuivvpx|optshuysxil}rozybkik}hcwyplnns~n~}hwqoxoqwtpz}jrttwqpgmxrtpqddjrjlutodzsqonry|rrgqvuproxns~rnrptkutstuhjrxmxxuwfmr}xmqlstxjv|}xkpjo}wvwv|ngqfssquusqqqjumrs}ipsmmwwhvxyptrorttnygvqw}qlkpzp{giuyolnsqetrkrwyswnrson|tptmp~um|n}zjuu~kvxpu`vvunukujsnyrrqmakyoinvqsuulv{yls|rsw{~|ntxrtmwowm~uiq`{vxqhhxpmui|ysqosuqloqxovwloxv|tsyrpxzs{ttsrujpqrvvwjjo{uspwwoyjiywypnsnrvnzpourht|qwnh|upmrhlsvttlmzlm}kpvwmuos`n{otvxtnwsbqp|w||gsjdltvyvtxx{omtvlxsrkniomvwstqu|lx|utxvstmqvqutmznnnyuqzsyq{rrqswqgrsvyrvqqgmwzuzoj|kmvmlxrfurmw}}skrwp|t|msrdqoiyptyyfpezryvxsrmtuo{wn^pusnkerhuosutvkpxuPwprn_ohohvo|rsmr{mxfvdnohzj~gmpsowusqup_son{vouqmot{adr{rv~evtsj|jymxiiluqjovboqu{mqomutqmukxl|sswqq^if{}jjqltu}krppntexhzwopunowrzwrmdtlwnlt~zwyv}ttqsvqqxtlwkizpktvstrthuxyrnzk\vowjgkoptsozwtrpumrqwmot^essp|kmmhnrxzhsnjzwmgkwvw{qsrefrxgrvrespsopkgiydtzrexpgyosexzuptyxmzofp|tqptmruoztyztzsuouo{usorm{qvr{wqq}qtyuhqyw{sroje}uqtzoq|hqspuojqohqorj{jlrmunybtnsmpm{jhp}mwbvqjzzzvr|q}nmgqinru]ojimflfkzrcpsmxxmnlk{iyntjrz~}lqmvsuoqwfe{ksqh|{ythmybr|srjx{tqspwnnnjlgeiopte|utUaopmkrpu}pfsrwe{yynxktnmlveimljtrskfp|lretY~vks^ulpnlm{iqquirqfisjmqru_j}yhsyrjiotvpueg{ntdgprhopwuwirgtrpkvjklhupojmvekoj}jlqo]h\woneg]bnxqg~wotkiuo^gskdtoksyki\qZtlsoj~t]omoozipunlkzvlifxjmowiignrpspnhrcqrprvrssqnpwunmmqsznqzssubwnzurs|xwmxhcmutllmhfyzptpi}suqhqqo||imqjbztWufqmnvruv~vizcqZpri}tjbymnprnwxtuiyr{oc}kuupwmus{rtk|ftkwvrvjqjxro{mgo|rhub{j]opu{peorkj~hpywffsope}zvfslqolyqrozupn{zmvlqmj^mg}n_gc}wknfogcnoxookxthgtwjmvjibdxtzlplhoevju{kgt\kx{sl}wrrilkwnziewkfzthnxkr~ohynttud}xsttnnysrpr`jnnmrott{{}qvnnju|wzprrsxoozjeuuyzxesyupqsmytdzlluydgj{}vmvrtqkqltpno{dzviq{kvmrezjfrqqbxrrupsknrsrwjq|\vnrmjpxlm{itkdje{vqshsgn|bur~ojnnss_wghr|skdnjvwxkirr]otiejfzwrbhtcsg|wifmeox{fnjxsxbj_kpspdtyeyhjkmq}yk|gi}kbjk^poxkxt~hopfhjk}srhvwtrlposmxty`rl|qukmtf~}br{}fruhlxtmiuoqpqwimqnotgxnokwotkcvwuvosyrovnfwxqnknuxhursypgjwrrlztnzwrohmbfvuoo{xznm~s~lkwwpbid~yt{ppkgrgbmx}qmiumc`lbmqsmxt{n}|f{uwt|isvtr{qpzk}qqnxogbv~yukd|vvsitvi~oz}iqzwlvyvnpoorvpzttvr{ovrdqktdunoyxpsotyjqpwooxxzvumpptqupilsnunoi~u}w{mmcqmejrvxwwrqjl~lgzrooiu}jwqpni|p{pzwtswsssmywskiktnuynyukplcvquqzpxmptrgs\w|~uuiirlsuqowktw{s|xqvotuuvf|wioqibnqgkkrg}_ktonsknywqrxs{gyognxygwwjovpwzpl~lsomw}wonpjwvuqunwwwujozzxkgwyekikZwkeuppyzpqs{ctsoyhxsiomqfu{jkgq~nlwp|ghgqv|oslxzyrveu|xlpq{Zhelp}{{zgipi{rs{httxndozwmsnumtoqs_rhexijfhss}ki{i}utggy}zqqtoroag~qvrvnr~pzttgcxi}euztwopj}xiqrpq{ij`rqpoqpunxqsop{l}z}zo|lxpjwkv{xsqnhzmtuqxowrws{qhek|s~xsxxnxprssfjsvpjxtnppmknpw}onrckyl_vd|z~ssbqxjpqqyvf{u{~vm|nttoosjxrs|pyltuzgklmwfjnniuihxqs{|rgzot{gjouun{zuwvhvsvimisa}mjf^`ufkpinlp_pqwsmripiomru}dylrmpndzy}ylemnkzymuqiwoqy{jmqtfnjrqhn|ognpcwfiglgss~qoq}gonztoixpymtnmznrbnqiuafty}gxqmlwniwqqoypimspkcoe_jdk{gogrr~r^jkjivpulirs|hlmlcvwa~~crvdt~im_jwugsydrxog`uwyf[onrciolftl{hknxasyfmkrni}|oq~x|ffzi|fu]gysgylsxwhnmdzd~|Uprw~vhuqptwlj{e{mmr|uqwo{mpqo~|sfo`hxWsxzosuyqsem|ountklh~qxwotx{zscgxnjpwonlrsgeouwzbqttysixujpqhpkqvtr|s|xoxpftqv_ntsqwmi}nqw}wzw{nnswofdnts}pxttt|pxoisoj^qowohy}qtirfylfupmk~o|vkm\ijbvjqok`zvpnhguqgnrczgozmxsdvolnso}rlt{Z^z{tlaucx}u{snpofrshebwaejsyu`siofcyvg{~wtljtfurzvp~ysk{~|kqlewnmio_t}drpm}luhxnzWxruqisx|uglrlpxxnkentrkolpriuwm\tsjsx}i|vrsdtwkqpemtfynq_jg}~y{kneqxmovnuykdcku|ed]vmzaz~rna`f\hvctnipqbo]ynvxxwskl`cjbkzk{Z~drvme^f}laueqdkzwc{mz|spxvmu|`\rwfrnvVpl{Ybdt}`wjy|jfmoqdgmhj~n}yyprtlrbvpirmgsvokovuth}ds}atowxlmnsvmqbgq{bqm_wo^nob}tosysz|cbnhsvmqjkvjlssqyqjvqxfukpfeo|cnqilZzppos}{jZzoyj}svwktotrg{uswdpuymqupolcrern{rqvpbr{zosmvibwg|q{mrwsprmpwvt~qjrsjnqrwxppospemhkwoztxxfCezgxjsqkhhwzyneh}wonmwpl]|}tpMqircgntkvpzppq|grrn{swssxtmpp{mtpkopbloeo}qmwgerrlpzrZoxqqngoj}_onojmxjknwvoxiirn_hramf}psowzznddwvrxloxyz~ep|qsujnxwtinosplkir~kphvnutksenwiumnrxzhmrqzrk{mj~twljxjluouoskkmnj^qomx{ntnibtoyrmxruvlsevwyzqlwrwtjumprtcoxgwro}tsxnms~rnlght~qqpktknu~w~}osvqikrtpli}{gpqksmqyvzspwnywwvnnsz[xifhvllykskrnwtnqwoksxnnwls|rxuzsosonklsqwqlfkoknwckvrvyqzolwk\{_hql`ony|owaoqrrm[vljpmvuzxUxrw]ehr{rjjrashiul}sZpxxszothx|d{znJqzvkyts\hp~hf~ugnjh\`Us}swVpoxxuptwp|syspzqst_gqasq|iyg}svpe}jwv{pnwpv|syWzjqwjwpvxdl}gel}}jlsbe|msuntlssqhijuyzueYbetrtuj}srj~wjoxjxgookprpuuygkpxzoh{{{zuloy}jrfmtstti~klrmszzov~dfoeruvpxd~vnjkvtmxnjsurcwxi|hxlnpsz~owthkusygmqxytlqxxl{v~urrjhqgkofkhblldknuszq~}puppzqdsrwrnhtniwmz{glofim|v~|mzero{xric~npxiju|{|qnootzvur}spmv{nkuh\jp|trzkrw|}psqtxwsnwrrpnurmqk-zwc_yqy4dutfm{kyhzt~fonhopno}iabyurq|hpqbejvxqlluoqibysjzyoskmcgz}jyzowtpnnd|pjqgffiuhyjqmqwmmryyuktojl|tmeimuiwzwwmlrzr|xqm|jnUilrqdphpjnmu~ujs|k`m}rkpujxmqrvnrzeqoxweunqpllxilkuvuuwir~kvntlvse{ntnqspurfunkhbrxrej{nokwbrznlx{xxoqqsntmvouxv{r|rzth{qsnsikkvissr{ojlyu~uppn{xrwhhy`udvkullmt^pjdrjymuniknpgm{zyo}xy}mnltjwjxywhorrnkoq{uhypyzvrrpwmxasklrxkdTnum}uxrnnripoznv}stlhyZwjlQwvwkdop{lsZxzsqg~rmsx|zoWmct`w|`fuhr]lbj~dpxrtyszkdap|pm{ijmihfchoxhtioqzsmjdqnr|~oqbxsvsuoqje{sybpgcl|aehymvmtctiyiqxolqptoo~orpvprv~mqc]mw`v}lv~ck_||lstszjvzprzhukwnomyomlpzqwv}upp[rttkzjuu|tztonuZrapkhzr{kizunwqvkv~riowev}twtfennuytebapmtfpavkiqqjhcrluwnbmir~v}{tdnzpqjtdxdl|jn}f{mmgzv}kv|ivygwvkolhwlwjiqpwwxppsgnooyt}rwvpx|}|psvnyjvikxmdinkxdpsj[qygri{|{itjvvdgnllrvhwigfklfq|scbmtrgpscka|tmn}ewtjlg|pkwpieq^vVaXnvehcptgsgsjkkmp\scmjyykvrlfgswgxoz{zzkbrmrkq{tmtflpqtmZ|gthh{xmrvhtyjrkmeijtlhmffedpkskhyZ}gusaygfxfrxmgfjdxjxkjvxqhwlelp`fozxttakpwjvbu|{`prsrzsgsuw|ljrw~ozj{}ttkiunqqtlco{nrqyuizypyrqq|{okiprzqpssyxvroqgopumtlugnrqpvg{lixhrexkznqjltfwwnhrnpmrjx~r|ntptpzdmvtijmin}qqpopi}gtkkwhn{^eespkzoqug]ojdhfpmvsssnxyxx|o}llnsdzflmrjsystxnkmyitn|vv{{sz}wmnsqo~j{tqfnwvjfqtkionduqitgglnvpxqe~uyestrkulinyqhnqsrrljlkszlmqmqznidi~snllogtwojz~glux`gmnme^qqpzkgpklglx|uuqhorpqquksofignznlnpzimsborj{lpstyjktwoonivuh|pumvotvnyuslq|{owyv~oniqvs{qo|jqmznznsujizqkjwy}r}jehudvytvz|xbu}qjvplot|ps{lcksusvspporphziez}s|smunlvzgjl}psviiwtvgt|xwtt}privijrjm|j|{lnt|g|plvpqypruclsspzhytv{t}rgiqooltypxifrvnsks{lzdnsvtdzmktkv|{u}Qzwspj}vvas~junqlmsgtczopggu|nxipklnmutjkqvvrlxwynjwthuorthjtgszwnlinvnijjn}muupdmn]telr~yzsyrl~prentnjursqx{r}jlpswyhisnuodsyYxl{phm{utmmtckuzbunrvtbezjpzqlvs]gntdho~wtyoqxci|qvkmmeagmukstpo{r|fbrvkstzsy`ojloswu~lwqlhy{vjzyx}{rmsqstwxndsfwyt|yhvxskupqon}cpynuunizkqrojjkwo|ilm|gtjpqjysowqtqqtz{lkrstohvpotmqhpl[krpps~whqwygmsosqtrsvvr{sburktur~vi|l{}qtqnzrqympjigqswavnrhpyf{}wduuoyys{nxxnmpsnm^ipgxnbtnuzmtfkkpzwystdienz}xyx|wno{twskgm|Twstj|siqnhqs_xg`qturjsktr{lyqajotnmx|zn`oqtph~r|sqqmvj{itrqxn}bkz~ppfxgus{llcpmtulvtt`zgruuwqotnmuzxptmvshiiloorknmjwguskpjxvhuvxmv~lolgsnpxfut{pvksomrxpwlx}xamrprinrovsy|ipnqtgfn|kt]ymlmdhgmhmi{xmxpuzjxm|sqwVnbnyqlt}xvv{pr{nksshprlvt{zhnrt|Aojuoczxwvqquswlgszyipovu{atnnnfjyvrowoytintwrnutjvffn}l~uowxvmrjtzrnosnpxnpgwmpwmygeswqothnszpc~vquyjstnq`xworp{quwfnvmyyVkybkncnW|utwrt}fu}qnmvkoywk~s|~llzumutk{yvqsoymmgkeutp|ntjqntjvr|uhmn|p{u~~{pnlf}vrwsy~lrn{vup|npnototkkmt}ulnekmpjanzzhuouq|toxzvhgtk|sjr}exwnvuxpojunpjytiwth~kyoxjon|h`_o|jklftksj^|yxnhpkgeqrff}jfrpyvtqxgoygf{rin~iagryvpsodoszo~rldirjts[sngv^|jvmhh~ztlvlssvwmmlvjsxjkhuclhxinvlxn{|elpzuymgj`gzkjnq~goepx~zbgjs~wwuowgjsytx[kxyxcyqsywlxsxch`pklwolsrsrthojsmtyvpunzugldmoywxizhxzmdlotnvox{}eszxrxuiqhZ_msxdaxavpokmptmnxyrzgmnsiusttv}|oqeroxmjgzlmbbmpsj~xdpnprgtrso{ks{wq}m{xpxkpolzlpop~rhskvpv'vzkgjtjXl{vjvydanwzpm|{plzekqMlt|vok{y_kkixpgrypqsv|zvsnwmskrvtpxp~}dz}wutoeqmzpqnspu^wr}jhwpj{ytpdremvo|n{uvsufyqxpm~mlxonuqoutoxwwrtxv{jlorapwrduuyqwxrmmprplnngjx|m]tkvs{ryvdumyulpi~tot}vith}uowkst{sv{{nq{nkm[xpkscsj|r~rqlrjprus{tnxvscs{vwmqnph{vhhtupgnqkkjqirnuxzv}vtsiztuxwuxmopl{kliuntvrujsod|tqutskqq_munugqnweitjwirm`p}rrtkrvsst[mwrkmtnpnmxrjlqbtrqn{sqp`lr~qu{gy|wenjrou_upyorvopgppjxxuul}llfkxwrgrx|timgzslipz{oyqgZotrsx|}pd}js~j\mkuko^mjsx|jkhbknbbs{}kzrlfkgpoplvwonuuow|dmr]|`}veqn{}nwVsk{wuyonudomtlqgpxpoopnkwm{ixgcrk}uq~uigrihyuho~xonkoifnuxdktuyqmzwwivukx}zwhzeclvow}qpnynihvcsmoojptktuqnspdcxgoriwrprq}hxoqmtnvygngontam~muwo|ynswu~dsn}eoh~cxwkwtrso~y|jursth{z~jtvkljwrinnywjkpvttirvrsyhphunyviobqvwwwhqgkjiokhu|tow}notoslttpmto{s{durnfrxzt}~jgqkixioqogtqzishhvynmyttpxtonmo|yliwnvhrrubnpwywumtnrwunkj{vsdvpmrfpnhutn}wxvx}voreuqrievvjjjzwclzwo~zmrgtuxzxnworuuoqiphle_iqzht|ozpnwqnrnswetxcz\p]gprxktwrj{yaumoo|uxkvojvprjux{|yo}waljns_[fkt|tbtklp}s{_spgwvnewrpUlfsetjhp|nqzmqrvsq{y`uznnakic||uy}_hhxeqvxrdxkxn|nqvnnysl{wjvcmmyrgetkqqhoqjkphvl|`ievjwvumtfqwli{v{h}flxzvkhbrfmhmtjlloWgvhvn|y]qruoewrtrllqussswprrumuwlnj|svl~svnt}lwqo|fsqwtlmhxsmlwowyk}tuot|koynvolmtsx|zxgxrtwrvrwxsvnx|qnnnurtxy}}ijznls|vupjtpgxnx|vorzuxztprtqq|ryqkmtss~xrulnwjzmpfvjmhh}k}ztqnuv|yizstp_kvsportsksxxcgt~q|ovsdhuhmxmntqrpvippnqlylnopons|z`nttlzxvqvogpmqwpzfxvqtnw}ckpwqzaiinmqszlnjw|`vifrzx|ihnu|pttvflf~nygv][l|bnsmyvlvfnhvog|tjzh`zykomhshqjrnsmlkwquxymyqupp_irf`hiyhiugsoif{^buyxi_n^ukt{iaoksnttrlrVqjpw~gkboxq[inujptvxqsqt`wsqoatnimlZoognzxjqjmtjpjrrsxosazrwozonqrjnluwiyrloqfnfntv~wss~n|kmryu{xp^trtr}yli{hpjzhxkxonujjpqpm}xqmmiqppzux~}q~p|~umlze|qrym{q{mwqlou|jbzqsgo}wpr|rerzoxddq{ne}xfcgk|boun_iopwxz}{hwdpjglpnv|gnnrrtwtxsfemupo}mmrrqqqxqupuvp{yxrkjjtg}op{tisnnq~znm|hrm}~uen}ohpenkruvnnrkpnmcrsktqspn{snvzsgmtdl{nfri{l~pwxpxozvlosouqcmlskph|mwrpcypgsi{mxulsyh}zdltpq]nnqqdbrmdr}|gjm~vduugket}kx~govlpcxiikdjqq{juxf~}~jomzluzpmvl~`s}ixesuhymmwiuplhrSr~ongl^pne`ljk]opup^ufeyjnyldyg`vmpiz|grz}tp{qrz{_utmnsb{}|lrjhfn}nt}fbyvvuzw~xtoopnw{{_kjxkigopfjnywlsfzmhgvxu~seyrnxtsz}pvxvwno{ptk}uttxmqhu~uykugtkqtru{esmizyetvt|vktqcqjikjrvooqocqh{vu]jq]q{dopndwut{ziq|tuzkprvsniikyugwsupr}ks|isttvsgspsfobmrdjrrcrsizowdsjyvyrqlcc{sszntpptrvuykxkrr{qsmkl|mmnipkqap|gscyjbpltqwjarznuqprlwryzuoclthqu~n\ilnlmw`mlyzsarkt}lz\sgq`opxu_kYnvss}m{Xzum{lyriraonrumy{o`i~hiotkniwmc^rlzkz|qbnq~rqktennjwjkf[`efe{mchwlqkgpbjipjmp|jpthvp}qomyxormspwwnrposkw|gjevj}~qnvcwzsxvfo~mhmuguomtpyzrYlq{ql{gluavj}frkqolfsqbodss`jwoewt|n]nu{npmurjqiftbtrhowtm|pfrqptzq~l{uvurphdshxwyduotryqvhvpersyuxlrskykq{\qfklzvun}ojnyuuzsnqnzwhvoqty}rrqzv{qxw|vwlrunloovqn}pxxrmqqypbewh`odsswrfs{mhonnpnrlnvzuulzlqjwbvnrqyqzlpukqjqypp{x|ikyo}ij{q`mtpwvvjvzolikudjP|ivpwmgPbeuslihm|oysku~n`knkutnzqklkwwx~{qosjprjfqstjw}owrhosl]kmpvpunprqx|~ukllmiz}qzhwov{pcchx[ykgpeyW{ydk_\qg]npulq~{rk{irwi~wrwvynrkwzrnso}_opmwsuowrqmvlurolgjmitqv}l|rvt{rvjyw|ytmfqxpq{}knc|oookjnmgsritmkkqruvs}dxlyqmlteqvyl{Znxemvvxepprou|wsowutlqpvjf}nxgupitupopimqtotlrphlqs~wpvumozqtx^jpsnv}uldprowpetjpu|jvs{tu~tsiuzvnoq|s}xiukujvyspgsxywqzuop{mtdprmtmqhmomqqpnjxr|z~xwut}y{rvxwxtwcttqldwxrwx|xipt|quzrwogsrrrhznvx{m{cgrv~c{mjtzujyxwqosw|pmrnppr}lyt|qbsshtsrivilrezyvyxuznkq|lo{jlspgrwpr{vz|orhozyjuxnzpsrhcrrrpttlhxiqruldwlstuizkmuldf{txeghe~vhsrlsosun{c{rgh{mkwprub|k{wt~myqhmz{votonsvplmumjv{k~l~sut}nuwlsjpns|qlnhmmuikvpjvpi{xxfvowovnt|qkixh}sotjubnvwwosutdksl{rllnwijkvxaqy{xwvtpgltnkmrzln{jvovioxhsijjmholgkvpmiiljbkmsvpocuykxlwuwpoqvramptl{ktvqlohruzuslwn|vskuklhxqjnugltcfprwmsztmplmrm~rusjkljqilrhdmsfdzmyh|ltspiuxdntpynujuprvuoe{wmpwtjhpbintukhpmkrprlpxoueitpydkyfzwvksm~shrksnoompljuno{}nrloqmsxnlnsxqxfwbrpprh_xoflrqqpnrnkftrphiplnlibixukqfbpnrpeteqtrqxnoy}neujidopvqicll{vjqie]}}lvrou{refycwppohzp|ntznrtutlobpp|lyvr{hvr|usiyrny~kpv~zvpsncomrurv~~qqny{posyysrhstrpygkp}ryvn}tnqodru{wqsx\zjxkpvksjktpuf{jvxpqq|kqnmef{qukvhqdxrhqitihvtvaor\fwqriiqpeid}koyXocdmx}jdpmruub{wdksgpr`jfopyktsols]iftmlbtpxj}|jwoicom`k_jmqmhvxvhshn\r^ojflqnnrdldbtokbmkvftdw^qv|sm~mmwo_mjerwixsnvofpehngwi_svmwm{rigxnw~qszvqfvgmopqifsojrmkgtzkgrmeiscy~qvylijqovovftcjzthrwpiphloltxd{mkzojztwjromz{xkyytf|knhpwinbvwpssyiuad{xtunuwvpgoj{s|qqtw\w{nvogtforq{iddrmt~jnorgl}vglsrgxzlfzlsoreojq{usqmlwksv{}hxmvjnltxzootfttkmvitggibtu|psnzqi^bktrnxxnpvkjlodzho}trpsqivph|okimotktjlmugqhyhwoxvkqtukrux`omnplrtisyttinpwtouqtblov^cvqpjpvrqyqvh[zwvmmunrrhlqixykp|qdiqmnq~iwkhloosm|rxun{w|h{xyrpyuopivzd|rumnrzwyqZxvnk|jmepspqrxujmx}m}vtvszskqnhgn~k}rms|ypijkthasurzglp`nx{fxqf{hqmlbn|{j}}|pqwirlofvk~xsliiv{euonvuyrmueinqlpwqeywk{l{orgqmnyqevsnpqs^utnfplmjyvqogjvlvzoqqrnux|frxzwlxt^yuupwvvl~ui|emopyqdwyhjv{nsr{jkytn~u`j`dvpnmtzihsl|tmnijnovysixtpyhoozqnqz~xuynouoilpw{mgvimsmnmnnoj}orlwdrvvsvozqkxmjep~eavkk~q|ovzntrvulqwpkzhv`ss}lwlwwqclhdvw~wn|llphppgx}q~nndrtyxrrjxu|}tfa{ustmrpirl|{hpugvvsjo}nszmiihmkbyfdnnqljuxxfv~Wkqkwpziinvzljrsmlrybnr_nnkmzmlpnpgntymnlpem}fudyap}lyqmvqptvqrg|{l`usn}qnspsr{||_rkh{twx~sf~ym}wztkpr{}oxquYux`tym{ywli|kubnvqhcwrkqmgpvcxqyrsvqrweknunr~ws|pwzsmlajius~psvi~hiko]t}strxkuomjqlrzfutfswsiaxuxvucrkiq}{mxmtrgqwiivpurso}qlptlsjfosdxhop{iixoqm`oumo}utr{{]w~zwrovovhsvjnsmmpgcr_hqjpjoxm{wfqsoc{yqrwvghi|oihmqnynrwqitqzpxg{gdqvprqknfjnryykhspiigv\bkqtip{yigxpqsvtfmwlqwurwuhpikkjmln|romqzvmoqworsotvkvsuraijqnovww^c}wr{r~vpqtplawsxqswkxq}uchvqnq\su|pnlxpsrkukfpp~nyhijjipztnxtkl~r{tqmzd|qvvmirgwpwrvkvxusngemsouwksuitpjuriremfvxggkgq}orpiouuulomepomuuisltj}|pvvnwv{novsowns{lqw}pnwpxjrwpkrrs~q{xptz~opwr|ilhsqzwortxuqmpyjmppwxyz~nltizz{vjpxltqolsqssw_smyuvuup{|tyrsmpy}unkmvwnytsropovmx{mqvssl|rwj{vqp|qpwiqxjlzmuspw}yvqmv{xrvulrshlxivns}qghuywvmskuxpxyznrvjpojxsjrmspugqzwqtzmrnwuw}k}oZ}uzqut}tg{ujiz{vjtgr}psr~osru|hrvpsz}jqantynzqrnzhwtuzlrzjkotosrbzvhuqnemfjmvlubnvgiuuqq}|pscgpjlmuvyxZxxqqkpjarkigthroajagymqo{ntrpfw~si|r`}zynp\qugyzrlkmus|s|oq_onswjpausptenk}ydodwiewxpjkt{kVycfwfixlsuonbjzwnlonmisnsesxbcnrrznok{otrjoil{nhupmuzu|rur}a}shqzfvyxrmin~mjutqs}bungogsknmvyjri|uuttkuqprtprdtiq|qcm|mtttzmlnknpmwel|oj|nwwyxir}nsns~|lvfupihplexiWjurup}opwnvouzlyowu{d_qorfr}tv~wvyja{nqqs|wyipmx}~njrmosok~qjt{vmvr~~lkqmuyu^xqbjr~lwptagmph{tkwowlninnzrwjjmdyrjtm|oass{z`yszXvfh^qyspsksunvartqoyrmpyoyrvqe|nxyrm`zmzw|vlotjmtmlsuwqzpqq{|i}tgjnswitp\tuqwjv{jvsqniwfr|krfuol|ktn||toh}jkarnrvqv`Uymsqktjrvimksmqvpq\unalwwrgmuqsyahwztv|ljqqrxqtqi{ioxs~ppmfttwrkohkxyrjobsb}spsldfrsxymtznQ`qMthmvpfr{zpp{]rmuyh|^wqiuqkvgosnlzfwzuww^vq{xjrjqsk}qqvwsupsy{qur{~uxs~uyhsv~rr|vl~pxttymjkz}wgtk{stuqtshodzojvuabuvvs`wqvvvry{suoryqqqr{erttxpxusyyzlpbrokqeqofgtmx{qpntesiywvyxqxzyspnyrsqepszzuljkgtuq{vjasi|~dho~hstgxlvw]{xb~rk}rxttinusrjy|uiu|tmjp{emob|grxqoxi}pvtXslmvzsmlquqj}jptkuyjxek^ygnrty]r~q`rrwuplqzn~}sq|opemh\vrqemlwt^Ox|ksijoulkrtyvltjzserxgtlp|zi|s_{jrqufqxytqnnxru{pkryfyhuhkxl{cn]xnxm{solwsksmohwnrsurkloluyjziq|uvodnnsnhnnrhlsnkvviasglgidngqu{r\rqsyqxon}|koolhtmtllviqw}orrxqq~ekwmvylwfszwtnvklmlxv`prezmiluymqtysxxwqnukzkqnhjqjp}nqm}ktsryznxzujyips{srolxtmqixsgmhnf[mprpnxgipw}tsunliqspqnumkqioxqnooru|nwqrg{v|unsmpmihexqerqpipqjjolqt`vrxginjymv{tojztr{rtwrhx{uv{kyop{}qxqw~lwttlosvltrtkp}gsqwhuoocxmt|txkowrruwovzwyggqvxblpr{mwmk{t{ue|~hkxpzxfgtkwqsirudjrsmqtty}j{yvajs{klrdnxlitgomz}~\rprs{}ot}ttwdwkigrcaemk[ckah|qcvyuvg^yj|lmpiutoelsi}anelutdujywazjpk|rsbsu\t|s`xdrkvpdusd{mwwsvfzqpvjrooqktespvqurjukqxutpulepxkh|h{wyjemizeteqsqonaufznhtwenvowmnromqmaiagbrkuzspvhdou_rsqzfiijlmtgsczacWrky~romluigskqgrswepjtl}xawhhnw|fnjrdfspbonsiuvqx|vonf|mmyylo~}uikpuqiokndsajsqiyqvkocrmptwvndr{{qqrrqqli{ppvv~}qtyfsxstfpptszlxtrhru}knruzx{ytvxns{naulprg{pmpxrykonk]yroxrpjmtxqipselkkmplmnrupli|xviyqrqmmt~iysjzzseimnfthxru|vvjujeinjqiprel|jgrlj{zmrxlnvuyskputm}jvyg}jqhvekxyrkw}gpwbhsvoim|symv{fynrq^mjqfvwou]zpnl{wosrrsbv{nqrlpupnqykkhckrlWatn|nn}lkxquayxsqszxk{sxjgphqwbyvupfwvtsowopp{fpzvwoxg|hpksw|mmtsnvrluulsxinkz{eurphkrlnq|wthuvwhvykysk~yuhrkvxnuvpejrblrytjwkn_rvqupotkptstsjqvmpwnqmnuzwy}jkptzlpzjmawyrlbetzuhgot`dpnivoqgliqplyp{rolrvsqjl|w]lpz{lj~tvr{pyjlqokfutrqpwptoijvnjiuvt{}rrwurpc|hclv_tmmqqvYqbucxnjtvntx{texyvqoghrkknhsznzmprb{vg}mgoyrslvq|w{mq{qpozzuw~lfqpljh[iumpkpmxwlrxnevzvommrp{srsepuiq}qunk}}yyxpx|wvnjyqrndjj|ovssqqtjpqtt_tttyxzw{tosggluslkztzipzjtm|vovrxmpvhyvqqvuyvosttkkwmkhl^|juxoxosjkpzosx{xyrzjsuyflkna{rtvdmyhtvjwfofmwmj~pnykblsxeaxp|wlmm}tlv{mlnsqltnrwrqtrrv}pgi|gppprvnpuxu~rzlmmyjhrr{ue|nzgim|otmmwjvwjlukfsntggtjjfmnoowqr}ouvzzyoqnguvcjtqfvqnonsrrxuqxxyotsjwskqtn~sxlpnrulfsjzqrzn|{qqqxtxjbklm{mvvprtip{ot~surg_unswnul}lmftjtwpsuxtulqxrhnvz{rluptqolqi{~suqmuruvswgnrqkujury}m~vljunuhmjsvsuiiou_hmkfoulvleqsukslusxjpngqroqsqonwlzxobqunnjrqhmyqyou{ntme}syvksprlrwjwruppllgsznwqsj~unmloenkwptbf~kipt~rmrq|h|u_jqnUypslktkqdoaonwjrytuqt{ld{kv^omdol}kvnfdr[qvvapku{tjgqwmwms`s{{s~nzsxobSost~vrzjmyrlqvupivbouldysrz~imqllpxvgpkpzzssjtjtvvrqq{pkomvo{no~qsyvljlilng`|ltmsjuxwqoqdnt^uxzqqxxsvwztswvhtnxru\qkz{ujeqnplxprmsvoluh}nppsomhxivufqqyzxvvpcvomxqnlatrqwktejmnjphwoyhqvgxirynqiuhvplsmhojmolqiongmsqaxaoplqsktlwqitwmunkhwvntr{bpri]xpxutmhep{ykelyivotuyxzheui~nui{jprqnilyguruqrh~a}qlvcgrssgk~vqxxkp|sdhmrkorm~pn|djr}oqqdsptuaqngjwhlnplxzjckrhuuwhoknypyzqpwq|qertecgttytlvivkl|uwtjtwxvybbmnqtuxuotwneprvprwvlz}i|pokquoloskwh{uoew`j|sqxokytkmjknqsstnluzoxrlnumtujvxwauxllqxecvuwtpv~lrjosmupmwjtmwsknpvy\ksqht|ktychmhjvt~rmiywqyvnnpqlpjst~x}ytl{yqzuuvl|xjdrxzuyiuhmgnkvqci}hlkmjtomsqnp~etot]ri}mmi|hxfxfkxoxyyr{vwkiyuwsobpv|vwpmi~~q{l|snmqsmdpxnohhni_qvsoozeZfkqsdpq}nnrmxvhxqttvpytyxtoks{uppupshphsa}pyvvzxpodpmtjo~irpupnmzuuxopwx|ouki`ok`w{litnlvwnyixmyctjoomrjqksqihtepqmqv{sa_fwz|_He|tpaswtiujmsnqjvv]enpdok}~]`chgujnnglYyjmptz|frv~sayq|qrl]nj^nr\snsmx{o{csfteacv`g||Kgdu_t]wcqev_Zb}pvmenrq|sfj}mrnwm`y}tQwatxjp~rhxqphbhmwwjs{jr{sknhnzqsrvzsuun{a{tu{tvxpviznmolklrlx|qypjmorwjqmiruiqqrp~pd~kqkdrfto}wqfulrpss~tnpx~}olqt~dqsh~xspmncv}{y}s|lujfytwp]ylho|qlvlx{qhq|vwvq~}ivroppxypnytjuxrfzssntxweetx|lpls{nrvsyrq_pxup~tymwkytel{lutqt|loiqt}nnoqntygnpqtsjznovsyxswqfw{khtkzpqm}{xn}qulrwqwqoqwnxtnvuuvptkwkkjrkfursljkzo|j`ybkhpxd{womkgrtvw~dixtnr{hu{ptgjvwqxslp}j}uwkwkYeqxsohwl|cnoqmthpulgwwhcpuuyrluusmhznpvllu|uo||jyodhhkhsfzsxtYjisv|lqsubk}iz|tijntt~hqxtsqv|u}yfhyotwuji{^otepptjk}mm|voiurqyptyfnrzezvwgs{vjsnjw}uvixtqspmyvsus|knqojsjp|ounx}zexi{rtqxw{srxttp{opxyrcvhqhtsqkuy~phssvp~jqqqvn~vww^nuwnexgso~xrutquy~fckpssxvqsrngt|vlrbnnpxlomtkkyspnuiqrqrpnwoipqcstwir{nrkcmymunznquj|v]ul}toqztzv^hg^rx|usjyrtnjuwnummgl}~vnjskdommxynxlokkuulwtry|gk\grwepkspktrv{ulvos~hiOl~pzrvwXjsnxwkkkjrqvyd|`ztyypsquohsy_k|]hzyttu|k{zjShxxpwtqvn}pvhjljturxgcmpptd}tvwhjwwrppzkzu|by\lnsowpzq_nhqkurzxo^vsnj|zrskzvkkxsrwh{x~vt{ks}yvlulk~zk}qunnzveaymg{ensomtgu{ofjwng{lbtxtloujozjroyk}gr}jkftzbukussnztinwxg}{mwa{fqororypxs}c}oilonnmgkuffpktseysg{lmvholr{nbodldfousiaq]`qmVspqqfbqknqjnzur`uiwhbqrrdiwzjhi}zflhU{{tfhuj~eppsyczout}vxuppxstfhe}qmnsqmqvzQvh{npr|pygf~xgcqmhfgih[}nvgusyz\|roswqfl[h[dpqnkwyfvp]qrsujhvzezvdujb|gorumssrgXtuu|jvukl{ruu{toywofyt~nixuoskh[jkruq{|yjjn}rgrxqilhlgjb}vrwvtrwjvv}trpvvchli{vot]wfqn|zhsrcpw~kmqjfpxto}imvqumqrro|omorzprwkwrnyur~pzrynsuso{{qkwmkuvsxlxtpq{prfl{xprtlrjuttrlwjmqrxxrv{i{ztqxmszymrxhu|rjmtzvzln{pmnwkomlmlqxpqop{mopxvpolqsrj}vrxrm{}|{jhwreasjtk~fmrxo]kij{oefglupstwwnomxruvpvwxrm{uoxzfkozu_lnxoqvuvfxuhtni\nkpyrpujnnoerjomtdnor{nsqpqsuilms}tqlwoljpxbwolpszrtvmvsrqj~aszitm~olsv{wxrnryqowjlufyrto{ond~ool{y`iq|ojhvny{j|kqvotunwklonlpsweev}ysn|kx~uq{xizyburtpjpvn|oouzhsl~qltnsqyjxilj{ulqzjzq{yhmj{j|pwmo{o~}oz|rlmjlnbtutx~wvmtuyl{tmtzs{x}wtfuwjmjskooppmqvwyrbijleojfiqpk{uzsnsfp}pey}h~rjsiojimvqkxrfyu~irsighrmhqphrwxry|qysjywooilrwil{kqx}vswgqwpswk~lnugjosvkxrt}ohgxgzulbsjiesrh{quklplmswyngp{pqffnjvp\vn|k~przoqvhuu|zpynsryriymivnwmoi_swovggp~uyrhehqSqiunsqgtkook|g|mrjxbhelqjdw{nw~ksdtozvzdu|zsvhsojrvwhr|qstq}yzrwp{jtntcsronypyvgnoo]|rs}ohjlsju{gtolvrrpnokugges|vjwxr|twm^wmg|nnqsonqqhiuouqhtrvgmtN~eqqxtnotxm~zvaxuytglnxvtguhdhtyswwss{otvvhztrfdtmfhxuo~~zty~vaw`}tqip_{xznvxiprltpkwhnlimqtrtkkulmtzqrnup|fgnvvowyrknwdq`wztytuskwozsxlgmupmnwvhnpvlk~qeynn_c{}jtlruswt{uwxvtjswvntvzmjouxusjwwqjzrnwlrlyzupmqrzylep~yn~ouzupmtulbsjw\kl}sw{ubpvraptfinscfyk`unm`nz|twscqqdru^vlikfmzirpx~jeoyqhzmmmy|nauwkf^wepmnrpmyrpzfcgiwkupxrnplskg}l{}stfllkf{npqxgtqsrpsmpj`zrtnzhhqyrlzqlrhzuxjpalpojhnptpgkntyglxinw~nrmpstjfttemnxk|pst~irlnsqq~wjykenqm|lYw{qpyumqnmqxgfoop{swxguqyowj~mhn]uwkiddl{wips|rkrhxtpwxbstrrqo|}voorqp~vqmwhztvqyinohjtpp|proxo|zzmpp|plm}wqvtuvmq}jvyhnrqteuojmt|mknjyqmlhirmtggwjnzruns}qswtwinjnymmiqe}tmng`ngdkrokppnx}lfrtrctsssomiqpm}utzkqoqlmski~lopcyimqdwnxviayrzyutk|op{g}rgqjmvyhthkwgnhnsoqumumgjqf|mxslnsvpgkpjuzrestmzx}zutoosup{uko}h}out_wld|k~nj}rquvhonseljsmt`mrstovjqtyrxinnr}|z|muky|msztkxwirtzudsl|r|qu}luoyxnpuluylymlnir{wkzozntsmazvb`zpooxcnwjnrkshvhzvxog{d[mfossjygrnjz~nzuf|heowkknrs~qtxl{swiijntnunkvkbqjxl|oqz~uxj}}hsgwoesmkdpyirmduqtswrg}ft{wntlutmkmecqln}mljpoww{rujzltjrysvisgqsiljqud|olpuwknpxxslvcktqrcqpreupizhrewqgpomuw|wtznzqjkkqwwojqn|}xgtq|jk|tqurefxwhhfnxhlggzxwfnrg}owronxp}kcpqqjt}nqnfkoouxuvsTnwvjjsv}olknsqjtlsrvumsvetlpsnsrztsnunwpwq{kozoytyesjlkvwngnn}zetdhyUfydrnll\rrwqYgxqol~jroiwxsp|qnty|xqjmmiz{gmupwqrtSojoe~gjoksvrorwvisgattskjssxhikiyvojcwatzpvjuytuhmuvpynek{wh}onoswj[txmn{ntillxfpztpgjoorhoowk}aewuujszt_dvs_qrpvmuvv{jvdk}tnpltd}phtgyezmgvcgfmxvp}t|sy_Xl{nihyi~y}wfoopwzrvuovshktgqakn~yjruhajx|vm|{kepivojp}zx_ftjjjjznwsyrx|ixmusn\uqngs_pwy}oowjpqujo{ltsueptsmyaksrz|hroh}iytztzfhsywhttio`vZjomlvidkm~|[|npu~m~plnpuf~fyuwishawdkpqwk{ugpkqpqpgnjh|dm}rnpusgllsqnkvlsxuopxpmp|uxtlygltryz~rkxwbqp{nlgs~jwww{svlpxuwu~b|oppnhptaystmswwpwke|ushfy|iohrtkmnow\qspwflyswqquuu|qpusrvlgx{c]g}}olodujlhxmjytdui{mpzvicuplnzoqvjzhltnujkduqyjvwp|uxvogutltzx]oetqz|tofhslpgyi}rtqqjjt}iqk`uwpjjhxhf~to{torht__zzihgpzwysvmrysu{jtuvtfvilxiqt{momneytzhjlzlmlvmt{~tfrwqya{v}}xyl{ktvcpywjnqhsipuozjnltfpxzzqsknqrt^vomiiejli|sqqvjnityhyvghqoo|vp^}ktgnmrtt|mmptpafij{cmqjnkmomstweis{nqjpwxtf|zznwstfzzrqpgi[i\|lm}rnljq}orifvjt~mdsgut}}ysmfnvrq~svmphs{kvve^ipzuxcp|nsbykliuyg}ro~j~}wxuqzprkpjrnxrkyh}gzlgkg|]qtlomr~onoefussnq{jzr{vssttuq}}arkw{uznphhytvtmxhjzuqwumqrzvoquqzeztupyurlkjhxqstxnwuos{q{nlzsmpqsxyitn}rjxqwhp{rclntv{dprjsdts{nwvsksuqpzhtsukkvoW~rz~vsnofxiwxiqjniflysqzojwimjkik{xnevmeqiqvmiprx}lsytgkbpnllmmrsxpforqmozlxqsovl}nl{ojwpsrysp{vvwtv|}bnkmorqrjpjmxvtvxlkmozvwl|rj`vmxpwiansplnn~{nfoudemvqkpg{j]tkw|ruuoigxmpeqszcr|sqvikfwkxmmufrhttxvrcrhfohqmrnsvikucvqyslrrvpi|x{qmxpqvv~v`lxplq|yax{itzsrkhfvqwy}lvavhwvn{fgghteunrmwy~gk|{lcyXsjomrminsvqjUUtrs\rmnqg{{^xsctqj^tlp}|qorfvc~tWsqvph_mudlabu{pn|\rkjsqg^cdm|kkeyzsx{dp{iylrsf{vhr[ln~zogopiq}orQnqm_lluw{ntsjghyfw\wv\oqiyvpno`ykuk[gqfoybv`^c_shfsqczgds~unrq~rknmgikl|eokvzfxbegxrttnqqwxponulrsppeviqudxvpodwxuptoiklnln|ny{nxiqwut~{tjnunumqmphiv_xtnjirpkzjl}xveqtqzusutemvikunseemuvnqqjngqodyzgx~mp_unqsl}uybzvamxrk}cyl{qzmrtt}rujenvfyluoppsUrtorqzilj}htwpk_gywwqfpujqyupgjualnxsrlgpxhq}pkpgyh|jw~no{lpswhyypvoo~|ksomns~md}m{thrknzhtq|h{u~tipimnskzqpqgmtnvyprzi|}kzqpivtzvpwrtv|roqtohmjmmvtvuotkxtxptjuqqmom{insups{}qglvmzfvlzljlqivyto}mnavirvrh^oryni{ovlvlrknugsqulslmvmtxm}kgbrlnfnviix}|ou{cq{vpfsrlpmh{qlhrqsfs_trfotseuaogvwsdxshwmsowk}twfybdnmqyY|lsvlmmxkzzuqmrmnejh}|kvr`pglofnsi|unsvuqnpnfy|lxlxjr{fotvqiqa]jvzodykxrvrz|i}jygwmmwtolv}zrsriltpjzh_sjqzklsgfqpnulsziwlnowtkidtc]eq`{qxhtmuhjqX|d]oipjvoqyyly^koookqvqfovwztyogz{fssyLvprttz{oaz~mjpc|upqv[mzi`~xniso`fq~fiimkqrstao~op{oro~u{adzjoj~u_owyivjszrqqhrqukfjhj}lqvjsppuahs{sppioq{qhunq}vpz}qwgwkpckpyzwqsrinzilopteuswozvrhfbxwmuwpleyjosegzvqmnq|nhujulkpypmyg~omzguifptgkqjvykntwfprkvtp~lotk|mkot~oq~olzrqquluz{ozsrx{gfpplmrdnmnnzgpotwc|mhuruopno~|xrj]wdknuwlqmyktpouy~irlvkvxdtopqrxxmit|islfntyzywxumxxevXpmtrvypujf`vrljjyuhi}x~jp~kypoomvwnoo`~vyjqnxjp}orbnkrnfjotwmi`xwalphkvfyw`Zgerzhnprygsjmtldhiwuz|vub|wmjdj~ctikq~ylgb`aijrs}yoourt|lri}pvrwofjm|erkrjzou{gursj_upo|qlqjxuiofp~~tkjizuiuk{pmoxix_peivgkrhnu]uk{~gkputyvwxmhuo{zvwpyjzrh|lxmhwjvmmimqujuso{ug|focs{bf{k~wpxxzect~nwreyv}se~qwof{hplur|wukwp~vjvgomij{sn{nrxebjvumlwm{ri_|xvktprmj~{zsjhrz}qrwuwpvruvtfgt~ynkzxeem]haskztyytrtjwni{orysjtlzmepjpzpzvuqssx~xqzziub}m|yv{km]|xobzn{lyvnupcd{potdoepdpxqfv_nnpo{{sa`kw~p|~bdnq~vmlqhuh{g_o]sd[tfhflhy}apfsp|qxzqlfiulpmyqdn{znlp~yimkzixigpjrmwvrfnktiyVi|blz{i`k`pnjmad_lrzeszwplxvwqxswqxovlqpomffsjwkxqnlpxplrxpuq|optyu}tsfww|skjttmhm^wtovqwz{qt{{sgr~wlqs{w|vzwlvmsmqmdsqgimvcnp|sivpuiqrnnkf|tfidugrkrnrzjtl~wkzqYnlkrokkmy`s{q}k{nrct}uyvpsboplxouydsrcjnoiwxonprenlm_mjiuqfloqx~|kmyoltrlxrlwuudkpqjukqxtykkybvkXtswt{mxsgzx^gpzqg|s}otgyk{ylmnn^ltvhpttpqylvvqypiuwqxiuvsvrpbywsrkxegmpji~voj}tslugp}orl|svyllyor}mqoopxym|}mms|rsq|qljs||gxjrvyuxuyvqmqvwrouslqhhqmustvnrvlotqhjepdsojqrwxk{|u{vorkyxtjvpl}``staispwwwpvzw|nxspzooyponpnwmjhoztmmt}h}r~y~knuxzqsprujywnpguiviklpxr{yopuvnmxptm}yrsyrwp~uqjwujw\{wrl`fspuwi~uvzftsknkwlkyvwvwsyvwv{mnv|zruyqlr{utzvzqjszunfysqznhnyqsvxsmpwoqmpqk`rhrrruqotihxlttcouormijkzouvtrmsylvjwjqnaiwrytie~fdxqsuyqmywziqqfopqsmhwvq{hrnpuusujsrqsasuulpyxh|rtwwyqqlhbmlhttvwrlosnqt~svriw{frmk`n{mp}~itsgsjrhitrktkvwqs|jyxyympmkizmsdgplxrpljqkkkrylnqy{.lnrickokmre|y}ci{~udejWwvrryryhfmi|spmlwv{fdhov~lg|rkstnjpdojgnmnl|jhs^nhmrpqmlgnp}~viowm|}^|toskpimpllwhz_konl`ikwe}f`tjfmeuzqphhjqsqvvmgljsvmtrxyzvyipnll}mkpsbk}kyvhosus{f}h}lvj`hrpalbbrbjk{vs__wevznnhseabsnm`uxpkbqzw}nz|hhlrlt|wokeminomnqooaphnhwgt|{fhmg~winoniogmxqv~clqwtvekhs{u}|mljxluhrbtyrpp}ewmz}qnuhsznxvghkctswiuparlp{kjapowerhekm~fwdupxfoYzprhuzutcvqliu[wqndx}r\nqnw}neqrwh`h}hk}qqsqh{mn]ofrgz\{{|x}hrwltmqq{hvuwq{wnsfxiUrdrxs}amz\hif~kw{jiuyxf^yeuvqhzkuZoutdxeeybzhtqxthoptyyprutflrwotzeqzehwphnpycp`qzall_tr`m}dlgozd{jkh|pqth.dlk\iM^rhm{h\jsviiimgeo]kknbeomrkbdpefmhy[rcjh_Wmcdzu|msVXpgnplYo\omz`XiVnb}h_ioqjmpf]vqNk{ztQ{y}fql_\pmnn^kgxuaor{pshuttvwmypnoqfuyksXlmjvvsywzvozp^hvvrouwxj]|r|tuasnrlluotyzipqhjvRognbdhznrsv{dnfsitxsymitwniilxu|tfrjqnmsj{mzos{oyxx|wks\nseyo{horrwsqkpgcvblatxtkZ`qqmooknijioe|dZvimenhqkkxtpkgphyom_peoXQmz~jhbmdekp}ggrstcfx|pqujnj^q}qrll}jilrxofo{gb]}}imnyqlmcshmi[_t|bpdnkpc[[pxmqs|pnmbdkystwfjqnslritlhltuieutuwqppkbmnzdqqhlc^symql||kteot~mv}sqin{ykthqkggyv|oypqtnmwtjurmsabpoeedvwyxqonngotzsjouqhomefvgpqgsm{be}swnepkpatixxblv{i{q_^Tvtwf~rtp`ibrtc]hchm`TtnsaiuiuisSylxn}nJwqs~c_sltouk|xhyybvj[ktwbletlnsvzsf`natpmtfzpukd_rqvdwuvgr]of|gwt]g|frwjkpgls{qnyiwwrpc~Zhn|urwvrsjYragzflhqnzyne=oo~g|gQmcZ{uoty]vfxhxxoji[sitvxchbiokdejz~rjn|md{jihwaifn|ioiigpj}znrx|pbkvuns}k~Xsorp~zabglvtctlpn~ldypdn|xxuuwvkaizw~{ltymurvrr`p|uentnjowoxn|jyolwmkukylyp~goolgnipl~u}yuzmhrkkll{qlzwxocpnpvlnkwcitmmsmrugpqlzwqvsznnv^kispwozpthe}vrp~smkwwdl^hrfTvnzysvohrfod{uUm~q[x_xohPoauml`kj`hvingvl}eiynxeIo~eWoyglstqm~zppc}{njjrXxvwvzkoqpmmxs{iovb_|jIcorkmysytuherhrohf}Tas~|pfZr\qTurpiYbrxvwtjmk}zpidxbgzpmwljgvjktzssggzt^vktb{x\}rxzdfetz}zh}vwkppkw\}zmphlrtqkzu|{srvnddtlaxnYe|on`wivogVmmh`ptcytlqnmltnwsjse}p}|shkxgnlqitxur|[n_ttdut|uulom~gmgq~hyhyjjiohq{q_rccwye_h{tluTUujukiwla{~sswn~xwtyokt}upogutwYnlqfdxrl|d`znhxuch~lvrf[uuuouv~sruqdqev{fegzi\oyv[zp~zltVjeUnpcoy[ihuhl_Ni]}joflubds_vor[lko{^j~h}{~zln}ozklmgpmXlsvkqE]RW^gdZqmpqbtocpjtinkhwh_|Uimcnge}ti{gmy``zlicpw|qWrpXgihkgcZ[pbQqkd~b_{IjlecuSnpdno{Qx\rc`jn{{jZ{hqba\nljro^}qT^OnioywhtfRnhhid~lo|hzzxveoxntpj~lnsuqimuomtpXt^rjSdevob~XUpkpuHpsdpvtemvh}yzqTrjeimpbdnd`unXfWn{sr{mznm}htenle}]xftrkqtynkuqqmxhyjxm|{tip{ifzvhkr]xmoopeqylffkun~onjjn~_nzxh|w~o{rjpuegguvkpUjqnqwwo^esyurvmlaqpbkdoqmzrkf_nzp_unoWq_dXRh_mu`aj_Xpvuy}tLqomuhqupmvnmy|]boWzrshwthtwvt_mOwfd_bqjqp~rd_vjyfdimeulqiWoquvoqcjwwy}yrncjwlsey_Xrkmck_U|`cyuoohpqmjsn]{kjjhcwv|dxwnxjsx~rnmdklxvrntpepzBqz{iw~|ei\n~m{ipqqstho}tjjghYxyi_ld{rtmnjh{jok}sdjwnhxxpht}ouqelevigtpsZi{~uj`sq{lxYzlhlhfs_`hlvuXfhtyvszwlgguQmhtf?ulfqk]kpqrxseimorl[hkiguVumju_rxyhZ`x`]gtbpj_uhhp{uvdqmmezxeogs|~oqnshz[su^skdRqrmcngpyvpomnnxtrrxqd}sypgdskumuwqnfrwvplvr_ihhgicxpkY|VVw~_sson|Z\pb}xpZmKrqma`ltwwyo`tcmlflonnrsevoqwwkotvsmwfoysspq{ihvxcr{}rhiwr]nozvmw}jqxwjnwjnjum}oq~pnpZygqoyrycyyhlhqset}vukxsswznuo^t{ojygln|mxro~rvqvqgqthjjrcazb[h`nipexZzsz~g}kxskv{y\qtl\mozk_{zrzcqZ|eno`q\x{tk}YhTXfqvX|ligeumjfmpvle^pijzeZyipwvkapglvqntfQnl{g|oyhki4hlfXil\`ik[gj[fdhSQexjrZEkV^oe[oEvy{oynwnfSUS|yszrczupfnh`wPjad|ir\~exerqqqXe`vu}jdavhohsav{whgi]}|Ug|}nuysyypurtqb{oqzmnx]orpXorsnbdkck`gtQysDni~ttgrlkqNxXunqygnqLqRjnmUkU{svKcznhMspjclku}uisoj{rivnivekjxvwcrm_ljhjxh|A{Umx[ekyUkwwnjqRz{ytsՑz|l]fyswi|vc{lf[|hprbkuobwdrafyc\}OuYunW`mjfhjbrfi`apwcrw~rwrl^lsvh\\uceo]fmqf_uns}ufyoti]Dir`ww}ixh}thsyaqajgph~~dxzpxbeifom`e`duppcqwqs}zo}Eop`xgux{m[pUhi^ggT}njjnsi~]sqv|hqgg[auxm~bltbs{xsst\ekm[odcctqly_qT{qckVxzxujjqmQulyoeg|jg[uY|Wlfm]a_~rn^mkspbl_RhacnfDYmngee}|Xzaulcbbrqu^@wdq{vgzpyzZn[~[~vU|Xk]}ite|buzgpuf{jlylxvuolVo[Yniu~~gUxtjsj\iy]|kty~sjnqrk|uvmle~jgjxjhoig}yzg`~{~^evini]vvlcbr{_wgxldvzsgnus{rshowzXkkhwnvgbwllzjorlipYi}lhgyn_qx{~y__t_hfsxWsfFqirc_^gavsdj~pm_Ic}hqO~whq\f~~tjhqe|{]}sxrZ`gUmtm[tRkvlo{styxxqs]|nxr{9brydtkd}zv~~dq`nhQdijX`qpq}sgxDmemztw{c}trxsvsquyesvzyoYk{wx|mwnjszhnpptowktewnolfvuqrsmkuujlatuvkoriqymvnttYlrskjqgvhrhqpxksz^orkecnvyhrpvfwchshvulpjqdgr|vqfvkt_sryyppirqqmpZsmlzldtjsqvmf^xqzuyvwolwows`nppfmmuk`vsygrdk^qxcjnftotxm_oqrqlnytimrju}qjswqzvprywzkggdtbqnhqknntlqod{ou{soxlbpvvt{wjq]zpx`xuzd}~err{r{wthnvp]ur|{pk|nmpqlhiuion|\ntit{wmyudj}hciqpmtnrpz_n~gbcpgwjtm\l_|}xgnwvfjwfnynwjyuniouknllmstvxmtpmmjruninxlt_hgkkflnwxop~Tmfdpn\etvoh_l]y{sramswpWnjy|sj}lmvjoopiteoxkqrvlso{j{pcwzu]g~wsu|vfogxpwqmkvzjn_kxgsvhsioo{l_hqrtilso^v{|xoxxsp|nqezehyqrprtpfkaiuxX}vz}pvkblsrvtk}ooomtihijjojqhlqjW_zpnpeftaktqdmk_nnpljt}mmdmprcsgqgxvwUnmcgzmxpuvqxuymgxfdnxvkeomtuGbuimrsmll|wvtymvryptl{ltdXpi]cnrt]pskqvvhlrvutljyqwfq^xtorjq}ikoZgmhtrgrh^pgn{prnlBdr]ih_omp`hvczprvgzuXwjmqkxwgkug\xmen|nnoljr\~ivqYkujpmWg`]jsokuhalj_lhqaekgkprrTeqcnknZlluexXumirxmnUhoj^qghdoqyz\Tmhmycvu`^~jqrgmopk{ofvw~l~xtqwqqqm|znqwm}~z|wpjuovlzsrezo}p~dvvvtmnzpjkrtstv}j|qp{io{~phrkuzsygtqw~xyysr}rtq}j{stligeyjkjklkflzqtjvuxhwpy{r|mjnsypnuqpo}punhxvWjq_ug^booOrzvi`jZ{khpcglhkkehvmqmxemkvcoa}~_t`urep~rndnvzgl^w~Y}grYpshihYkWgdhiey~vmvjywicpi_rfuxm\vUV|soc]grgvSx9uyuamloucjhltcvze~ugvgXogrzy~rd}p|xmxZursnnslIakkkjo]wr|ldtlqcvhdo^wr^ngf{fp[bax~txinpqvzqyxkyespp^pulgslvvtntxjgiefk]kjgplkhy^sacufzefoxiWmhuqkwihtkgrq|bvoqvgVvpfnZlqzztoixnfnuuamai_Zn^t[estzuigivwqa}ur~w`thtknzxankrxnvwonjqaUZyW`rsusfoybwfwp{xjfhmmqjegtvb^wlipZbpiih~{zhhlbzftnofyhbujs|{jp{lrto{qnyvuoltjikiustnulhposvzvnjipnrlgexyrq{jiejiqovrxui~ui~nooiqspjutevyqnyjkxoqhsxwjstqnqvsYhjYqv|ipnrtqmcgitnpaok~udkrpszoqpsqhzqszxuw}ktsnq_uc}~m_myXimcejwZo~hs`sd{foxqklnm||npoypbcbulwujs~p|xunijjnvyt{gnyefizvwgyr|nnxh[ypdthrmqobjzshkksyksi]eqa}~swu^qfblxhVp]rghkmxio}itxmsotqtqriwvvlqq~ixxrirtqlnwtyrzxzincXvnmwrrjhxsu|}jtumtoy}rjuvpweng~si||w{rkx{qylgzywgqogksnsxmqkstl{uhiqpm|dhs}ooqft|oj|f{mrqy|dhtjzonkrku{hypn~\DqMZax|wUno\}~sob}gmmhllyxnpYqlt}|g]yui}nlcrmvwcxinZppbzqochmsfnfRRklpxSgjinooqpqMwfmZgezynxkdffr\wuZzfpcgvWqfjpemmo\isvxttYo{Qygte`Ceoo~jhqpgzosdm]hf|wxeU[lwvwg{ms^cqvvnWlm}nqtdmoilrzzw_zxSx~v}fjhmnfq{b{Uzdcibrplnwtynllzz^p{kpfzspyxesSsjuhigu_v\ZUqygtmrylucph|lfwWhvxvck`o|rwosUhquzdymjrktwehzjxrlglw`iqj]pkblmm}aqt{g`Zvhns{vvyTxq|xln}ygls\yexnll^oj]{gseeuz{vivwi{svk`f^}gph`mmeewph{pecukj`lpwyisotepsivghpuf\ahswfmmfx{hnvsotywjnmjz]Y]nesvck^zVtq~ehytilonmpgxoput}Mgmou|pz|Qweu}py}urrwgjv|lmyft}wbevrnrVo{wtjihbkgokdydzkvmkhvipmxxZtxwz|mtuftjgmzufskwp{qkfjpuldarilo]mpv|]shwtjrPfoshlbfkwpmix~ragvfqrxlpflatXrkptcwqnhys|khzhtpobpxdmil_phxueikwqpro{lbi~Zuwxowjkknev{kfsdhzts|qvk_pkthjpmW|~ltk{jyvspmhdxokwyzykvqfbqkuyyq^hvr~gnqenyv{tk}bsnzwqy{}txqji}oq{yninc{`li{wo\joxms{`ssltsgqgyiynri[cvlaYvuhd{xvvjwwlivv6{u{|i}wkkwghdlyvbe}gdl~ftjzKhmwo`lo{ppzvxp{}unjfv\__owezxuqkiszugllizce|vyhfynaprrrzz{djbv^ylwe{cos|{vgjeu{^oumdfgwwj`cru||ohjlqdlcspj]kdnW{kR}jhxgc|Zrmup|vgoUzosYw{yIjf^tg~j_pgxpsnmydegr]fsj_crq_cv\{ukqfj`Zga_s{pmov}s|hlnm]ejnx}lyjpnvtdnyomxgklon`ive{aoZov]ttt\q|q~hltuwqculr~zdisrng]ehvujoilpjygv~gq_o_pqhmfnwmdizpwoVzziSg~Ta\yijogwgknqsmskuvYoc{`|{qlidxlchlwo}o{hnkfxlsiqjlg|mipggyjpsrgouphtk_mhvO}Zf\uyRv}glrhxcs^dqTysvwobqYtt^Yuej~_izqzv_xjuo_Qmlepicnuzv|ca`pnTmsmmdhtxufxr}v|ptrzrumzfljXkdo}_lnoxudltpjrhpp^mftvokkqownixuh}iWritomdimfpusfnzgnzouyirhrqlnmhrouwhrlhnyfnnqkom~ilsw_lo|pmqwklbrdayioyr||c{rnmnpjromnlmyqlr|slrupjr}sqonqjqod^m^wwtzkqtxmusjopqoaolo{wsvgroqnqs{ewnfstyq{hpvythejvqyn}{vdo~uvruqqwrzxzoyn_~vrg~rrlw{smpbh{x|x]hO~wn__onncvqxzxuw{xymkskhsrexkxu^uugqglik\bjiv~n~rUpX}zzrzeoqvknuskaqhc|{ox}`q`zvEulamyX_^ub}~]_on`cxit~snvtiqU`v`ffYsvaxrh`hYspeezlz{oe_}eiq_mimfmXy|S^uqRflilgzaiicUsVnXjzWkpstVtymisbn_jmg|xoV~yZ_yjldfojnvoyenxmZxdYqmxih~yere[tkuhqe^trormpmzfjqlgrmjWwgy[l_ljgpwjeqvoqwk~grsqh{~ibkqt]xuqtj_ms]mjp|frlr`pflrfyyo[`riwrzkjhrnl^ezgo{{qslvklz|tu_qeipvxgukutQmetlisj^uzoffcgrjxy_p`uldmtrvqzwljf}yorzn~cuxq]j|msiwoulntcY~jn{ruopsrgvuvopmtm^skP^raeslumnoqkuuqiu~pnloqizshodjrsY|lumdbhn|hcm~ac`n~~bvlpkkftwi]jlyynxVkrqrzrm}`dtukyhqep\}{g{fxwr|ngrrvrtrjixzzhlfovsthk{tojaio}vwr{z{u}nlLkk~{`o}ykPokuptfV~cw~xttlmko|p{hqvsevxoppf}muqPTovqrii_ky]hg}xpwoXkwq{_aqqr}sxtdmrSkiekJtgxnvuayuosfxewjx`||wPqzhpVxNr|vy}dp\v`znqqstnuVxm_xRkQ~l~sh^wfohugpS}btomjYsr{lSuswmsawnaq[s^cYnwq`mj}ldomqjpclztqm|gk_qXpylnlglt}m~tb[nt^mj^qkv`~fbrvdPnkmgcnf]fidym]qbx^nfrlkvtiujoRptsixs}qvbrpulfcyP[{agtfzvZnmezsp|eu~vlw]{doopk|iwhfucpwiizsheizzwuprbsdtgnppjshpoleruijspir~tm|tulvdn{pYutnrolqhtwxejqvuwqwr_g{hemdpeysqrtqsynx^|qxm^ggsrmgmqviyremha|wyhbc}ntwrutko]pcpkrYnktgiabon`w|fxsadkffqo~mesv^qq|qturm^qdhqin^qnpapn`slbphjp}suoiqnkdpuaiuod{|ovcfwg[[ly}ql\sbvmfxtcjncLx{ac]uroqSjcmYlpp{__s\ohdvfnvrdoq{X{iuq|ueosmol^okh{vy~leqnhlsZslqysawgu|`vreztQhrqodlxjqoroYp}ia{kn{n~jlnsivmwoi|s{tYut~xp~ws^eze{~r_sdrZi{pitrv_ldrephistttmolyhnynkedmqge`ijjvmebjxjm_`yfnqrjf~qtzukugkctp}k|owsyfrrc|lycsfpwm}henlvttj_qxorelpmjzuh`~tumxzvgmgqph|s}`nd}_hqKg`azhp|tj\smyggvu`vihiiinv`pnzRymfqaqm}srtqtyschxitw}vnwy}wvz~kmnnkys^ndzisytdhofw~trh~uhsqo{xxrrkuwyyi|ry}p~{okc}lllukjo|weylrnx|s`jootyyw}qeooj{xvotduupfkrgznqytsqijzqwsoulmvqtnudnyvhkmZqkvZvflhm~}svz^pqZ|߆eewu^_ntusnxgdgikaii}rghnsmgnalrxovhqmg|qnt~suf}}u`mdqivufcm{y]zphyvnmi\f^tpwovt{`rirwpXeikftkikofni`scRrphpnps{isucq[spersj^~yxibemiigYssuhpe{shrsg}}ciidxqrzrlppiaxypjxxpwpspeOZajqjgmkjq`n|jkepqxmbydprVsc~ltZ^ahdx`q|wsmvlmyluzswZ{g_q}he\pzuhlv|us}gprur`o^jsro{vfroejhctjmjjlci|wykzpmwo}ln|jtt`jwehixm{oarygzmhplwihvvygptyxqtpos}{rqdiwofgpdylflrndhqpb`gojnyepmqoosnc^hnyuojwqyoiIoiqdQwkphhkiinwc~noxqdznn_kY`zPl{ZoosxllmnYmlfgszla{ohnowioxsSujruuqkje`~lkptriouufgrygejwcqv{}e\zmn{psmbngxif{ar|qsjuvxeossgqld{mZrwx{umalXkjlgtmgbeoYr}srjcpws[uxtk[wvvorkgi}oresfutmopeetk{jp|qql[nr|n^mpiunmgkhranwmjmk}moktZfsjunmxifs`rlrce|wglpi{bdmsjbxxvkjafg`lrjfjhZ\ferlvvesduopmilqwsmdbzsdsgq}YSfUrtufr_adqgpwf|tzV~fqlsfxrlx}mrrmpiqpdptlZvmmzcgqetjpy|prsmcgwlfnblphhvz[puanWmu]zdhfynbj]bywntfibmj~~of|vt|pxogtqplgbllbncj|f}kimvvkpsfqvnqkjjdvddlusfuot~kitvsv{xo{upq~nnqjvmqguoh|r|sqdylfqwq~^oemmpnozorxshfrjlzynnrnujiioenhswitssgzmmqxkshuo}zebqoyfip{tfto{}cu~ry~KlZpojyqkonWxlm{lz{sklpgsWfkrdv}nysxwlsf||Wu{~unp|l`dcwrrttXrtrmrficgfuT{utwwbstpwd`mnqqv]lostoU\Uiqqshllvy|wvxozwyZrlnrnqtkmzoshSpxg}tow~h[btjohr~jsfkmmtizj`tsqt~ws{ncm}loqnumusuZvmulquutfZovwfnek{itnkyswoofusxlurdXov\slph[qhrykist{`loopvvqldomghn]hxnokoiugSsekQ`sfownVyzrqtv^`V|TMoxv}aOx}rV"^{gpmb{^jVgxrXexvkw{A~uomyganmhCbXusycurLtdjqnpadxrWi`d:pkexkVIMxv^R-kqCen\ez3w{\{nrr\|mofkdfgpcftulkkoc}judsvz\so{igehz{zmoshhbk]vbik`zquh~gconxa|{h}uzrqtfrkaswmlmqq|nonu_ihowozspbnap`jlxslsctkhpsftfyy{uimYvk{fx}|ws\g~~nz|{uafd}ixszs|nhog{}rsotqew{p__tsrx|t}org}lkzstxuzo~`tu|m{kywsxtkultsgspi|nsenwix~ssqmyr}nvuhuw`a|Ysklkwzn{v|hqqnutqnmorkxquun{od{^royzloyimser^swiZwwno[wnzsybBipsw[weJtp`|ti~yli~[Pzzs}xeftPyoh{gtk~hfhsmnye]Q~wnWjvtphasmtjs~hhiZs{osy]emqlf]`iupbokevtgvwkajlxnUiroyVqwmnzym|}ptoeeuvnom[en|kcruklrqvhyqfiuduqumgw]|{jynml~vnmfoyuvxyyw~xX|iwy|qrnqkwlmh|{osvlwtesVyz[hknemnqtkkmps~jgvt]wk{[dywwnhrfvpjoc|xktoickyyurvToms}e`irtv|}pfmzdzd\fuhuazjllzn^nl]~wsbphudo{hwtaksiqsog[n]rymops{wbehYyenqnoupkj|tlsomqlxvonjp__vjpsreoasje~res_ubN+xebopsjPt^~[}io}ltQc}t~x\[Dp^\ypnevzesusVtcrruuvVq{TlEluktk|cez{nRmqihjgkvarfuj|y^puhofwro_aFrk|jxrqi^sqepurXpRpivuxoq}ky{nqxhlsqpmpslk\y\p|poot[irnhu|k|uf}lpfonXboilptgqzmq|itltzq]y|fpj|zplkmmnsdmykhhrywwowlx{zj\evgpusqavjh{xienrdgtncqlrfw_qmptkrzoja|nlsohcqiwjXzyevTio`cggbv}pihk\~]lvfdsqghuxV]^hqv`jnnqkfkivnzputowmpf]ugpxTlpljmu|fSfuktdphjle}fvjsmds^jogo{p^Ze|skbnktkodirfoqupgjsvvS|ok}shRx}`zmglpmcp[u|wnNzQjqmiqyoeYorsX|vv}s_p}.y^fwguwbn|ijoof]}muvljfl\fhm~q`xuYiw_oz}~gyzphrj~kv|`oOsvn|tw{YnknxVirrxcsuq|_av`omhgrwUgcsnrakjtjmlshkqk~yumsqipoamvk~c|txtytnwwjwc|vkmrwivrtveocwzngsogfstkrj_eosor}kystksmnusrrr{ovqcwownoszo{z~nlplzkrvnrsmyrnovmtjyp|`tvopxwngirvO{]wxyrcmnJgydc_XkSc~smoexw|fl~ltsbTqwrZiSw{ec^yszKlyvuqusoojawmzrDvkmtouxhfwniZ^YpfoLkrz^rv_ysjufzaIYmnirzrdayrZwcmcckq|g~q~wg[jygokuqmtyolwpkp}oyfmkoujonpmeN|~rjtnfjb\|j^|ss~j~tsoUrtyde{n~svtto{vrvkiXxdf~kovttajurgsypornpogkvtevcoqsqa{}ppVppgmT|ztis|nkh{slgcu\o_s~ix}zox|jxbkhvuqu|xv{yku`etqmikor}sjpzkyfboxzrizXywxbmgpalhpzm`s{gqrx]w]vpigrovmjxpvpwqmmZohhtaiqrhtalpjigllhV^ulsZr{witswv[zt]wp\Wivpe\vjnre|tpZpfrquslobjnoj^dpf\ujiyglxidg}rzRvndooj}Yk|W{uXzlnlq}jshxhor6{[ueh|uno[fhpkyguixO]V~ukTv~popgXy^nodOsx{mbd`nqvp]wrlqyɄytij_qroppoYmrzllvowdep[ips]Snjyay|tvdixtjhjpztekys\xryhqcEevnujsfjrnnudrlonn)vpqtz]x}wlyuqkuureoqmmwpM`dlu~alxcprlsuzq|rjomdmpwrx}kh{qJ|Zunfhmatlxzw|boriudxjcjimuoxl{vnhrodkdwrrblymlthttssjnd~wzmvmox`zsscvhrtjmsqidysuq{ge|erW^xxcolkrvumvsuyxutn}wwsjxlvyrmqffmyuqkimoricxskzrwihxyhwmrjcp]frt_lRfxxbqy]iif_kop^uyv`mp_`ulgsomoZy__nsy{tcfiof^x[wodUa|fuojtg|rnhhqXhQkVmWeopexq[sprhbylc_}emifa\~]pku~|oenbZwrgooksc`azpmv~ctgyamaYigwpxzltesdhmiz{ldRorknwgmk`hy_ng^m{myiqpojwtncc|{cpqwq~smili|mtkkpwluamuvzmtgmqpu}erozqquaivv\yp_uf|_sw`|~`u`gvcwkmbopwvaqqojatujoatifkjotkwqoahdfkTxpqzxmzlwj{ldmwulfevrwc}nvgn}ohynyzmnmgjo}bsphrkqa]hpftfe~lrlzgxqwvskfpiumlg[mV\|hwoPr_lxpc~_em~ucb[sjorkphpupikqnpbcllh[n{Vmyx`riiwd{izbs_q]uqsrm{pkngbisxomrkznbmf`sjyoovuiaqhhynpuah|vjcvsrizirgdurwxtriovyuxhngliqO{`jxq}wcpi}ygij|cefklwfZoymuqml{}twllpkvouuzqppftvc~h`|crbvi}urst~nwssisomqkero~sjmpsxif^|qxxk`ixcstmlvgsqtnnnn|vTachmlrkekcvkt}liswomyqmx~uhdrwv{cumKjsfiYocyhPr{ushwlzwp}Zm\qqltm^dJlo{j`glqdtny\r{mnufOmycjw}bjfriijtsrsoeqXqnuzpkZ|jx`vlkjybkw|yklusroqrbpwybjqfqlxzY|qsVonml~t}jp|v_\fhvmtTltebtRpvtkL}ef}mjeywl^{qn`]rm{okrllggvmpjx}tnUktepzbrfqryrcglqt\txnpdsqraqzkssmnfoj~cwlnb]msysv}lrqlovjujs|swYpUpn|wraehxwxjqjbs^lkduhiwpYztu\fqwrtvcigr{kmq}ntxyyfrsautetzgrgionf|d|ojbysuh|VrlVkhpInj]irxiY|_qllhxrdtot\}jr{mvqWu}m|g{ap|bz{nh}qxZhlnngs{ekkftia{nhmmrktonmrmh|s]qdnzv_owgkissjj{mgfiupmfma}gl}hnuowz\kpphqbdqnlqdrcmx{ooimblnusniutyypqwbkfq}ihkm]q[borl_`v}vyrttfffgmpq}xomyQkjconwUk`zyep~jz]orizosecnugdgoTylejskz`f~xu~}vs`unlghm{|gej}mcn{V]l|[lqy`^ax~[rm}y}xW}kfqpraj`xppagivq|nkpox}Y`za{g^aZfVp`mn|xfe`jvpvmojxsvoyyknnhnknYhdjwxkptrYujrmcf^x{}\anhdpwdnqyVwydlsgbdZwZn{fwwj~d^_mjhdmpwscnqug\tvdy|mOmwtbpllyvikxpxtqljjr\fmwuwmniptpxqmvd}opupcmmmh`zqniusslpuvXeYimjfrigpmpmpxssd}{Rx_uhmkofWtml^svxppcltw]igZyZfllds\imWp`thpeXekizzk|qwgtYg}`ttrenvew^nksrwundkcllnkznstAp~vYozpqjnmSvqm~gluRrpqjdijcYiskxg[btYlxrhpmn{|riZx_n\miarfygTvqe]mrpfz}`q]qntmP|otkb{qh}tw\aks[nosSxikhh{mph\n}wmpAjsqrpnesvprre~g`snYkqj{vdv|Thyc]wfpshbbrpy{]xhmyZjvp{_fpgkoa[kftpylzyXult{mnypoStyna~_qkvp}t\hlso]}[tlh_ucnnpuzexkndo|vxv}{f||zigYfrxzzrd\lmowv{hytwzpxkxmfnzxmjjvxtyyyvuspycgutsykgmvoumgpwkxsrr}issvtrs|vcspkirdtrtkrktoaqfeksyrkgwwXxzimbVluhv|mjUOznkvl]llaiq_oxwgZazf{sMmdelixohlnkzlw`Q^hzrdvfuacztilmhkoyc|zf}gWZxekztushspmp}uixi~xi[Ulq{zck}dbu|wYe}agiglxdphmt|qmV_wgV[tlwsetr]egswtibttmmky\hfkdlh{bikqj^pwrdvx}`n{yii_vfxbhpuo|kw}^cwlurlihivq~qvj|nnv_ncdmijxqOpcrepzvzgil]q`yrn`qqp[hpzduaiuvjaxt|epTndgjv~ymjhb=XiUt{Z_|l~uLolqb^u^izzJ]lvgranjZ`ywqerrUVq^qmsMtormjoVceTszvIgvyjn>bnalWum[ql~hkXa}lsNxt\Veloky\zh`~mseeyjnyZqsU\}ybb[e\xi0aKBYmThlsehbXZqoi}\h~k{sexmySngrllpv{fpqhb~esevdeuxtnmsjc~crsgskp_lwao|itjhbclwts{jdenrYxwexlsa{r{qu{tlo{`ufiWWgppm_l}p]qh_iWypeX}uzsys|nvevXxuw_svrkYx`irhcphnio{u]hsptumxsmvR|wyfy]yfrhx}pmvwuqtaqrjqhklqrvkbsgkfutlc{xruodkt~hpuunnbofwtelzfwggpp{d{gl}rc}s|m{rlvmjwjonulnvvponicpy}fnrlkw}cgtjru|nojoxtlrfntyl}nYqj{{{iqyxrui~n^somsmvxo|gksshultmppzhcsqt}|ziuymtotin]ddltqvzgsrpayrrcVnqqmgwmwgfegvmumkqdgy|ubje\~}fZ`u{rYygtobezu~ins]Ghhlrql|prt]jfskmtflj_\qZuvk\jf}kiajw~nmjRs_y\ufsz}Unxnjfmi|n~bhimwuhf|j~xfpUtjoxZuxaxjxtjtmfk}h{}mdZw|vlk}kvty{unj{wwsvrgrskppQfpgylrx]nsxnhls~vpsrkrjtmalqimvvstpnotses}S}hcldirwit{ot^nwltqY|nuds}xhkvwv[npsSsmesx|uptrswlqhutojVtwnd|pimrre`r}fpNjrsqynohruvvhmx~_q_fpntuhvyugwcmgoaphtnelsm}nuzk[gsvzpp{ccqopii|wnszjvkyyoavoxx`rntzx|kjg_pnlnxjXqntmsZeqthlqne}zpfqlScse`pi_P_~pxa{]si_ylddplkwpppgj|jhvdkStkYlrp~jir}zl{d}prro}trs~pqnjgrnjncpruucYmZopskdyat~xlqtdqxlK~jcrexuqnx~{nwoos\tkqpumjdit|jepk^z}o{}rxuq|r]nnyzavzjxZnp\hpjocwxrigwaton_mwyla~qm`psd_pa}jfiph_fdetqcvszljiqglYl~vzm|~lYmhpcsuuoyyfZwvkr}]`\ctjp~kmfj{rqjhhuiuXqjj`eaqnipyrmylgYr]yh~eyjrmojmkZWxtx?gbuk^rfjn~^yisqnlndbEeqzyan{}mPvtenhXhnZniq}I|rurqf|q`kzsuPgm{o{fRsd~qnTpcno{gmuepLravfjstrni_tjmgjiX`hftmYwVkkbnwnfkZrsVmiqmevVxwrr~m^}wp{wsoxwiyUbmgwolwuUyb^rmejXhXo_kozwflhdaz{azu||muqumwooiw{|Xy~qlzmizqoqarSbozmsbwvgNruT}_trwtywzuqv~mZydfqz}rSMgiw{eou}`Ao_utTepsprN`_tel]fWqffv]|b\kydwpYnPjvX_XwKWimYp}dg^a[qinit_h`{idnQragboyc~lecmrsy|arw\s^fqba!i~o]bys\:JwkGHOlbpcVn~ov{VYxpq}|curutdmiuwoim|tnhxst\xzt`mqns~mp{~p|\t|xxobqjgk}qbqzktzktqnw{sii~qosg~x}tvrjlqjomsfrcwjjxy{cyhndtwnzeqvi`sns}_i\v\{{tgyoxY{y}sTrgpikqyqju{iom~|nusnp}kGjm}keoqylO}voqYu~vsimyuznqbt_vgh\jkvwzsk~|`nk{hqyn||nhynqdwslm{rsqwYzq{voz||s{uf~r;jseTv|oxvsmy}j{rkgqgqtsar`wnuwr}uisoio}zc}|grog\wyxxv}bchpnivups{lmo|^fuxmXivyikpuuezifqtghfrvhqlnmhnxuf{gm|xolxrpn}qtlpjohglgww~px~hqxsj}^iihfTb^c~mrrnq~svij|vtr|cRownkfwkg}dzrtt{{rfxmlorxkpwq\fviiowfhpvsqjsm}pztisbmcluggqkznsqvk~jvwx}wvsru|um{wpslpv}zozpemjjlyoqnur]zllqpqk}vp}texuouxmpyx|quiqtvv|t{pdqwtqttqcxsa|hzkpsq|wfexqoptgs_trwpdjulniwae}ythjmqtk~xsyvjsisrqfe[vmshicyp]d{ngmsonyv}fpmejnknteyl}lolwrvupxhkgu_ojeszljuwtxzvbiugiukvtl|qdiv~ptuv`qaec~kuvrVysnrssdw}utpamn[lxfjpioxr{qtzrmpnoidltuovr{ueeigm\g{uls^ Wndr\ugr`kgvu~lbytnjtdZpvj`zlr~kfqcxpoy|~oMkY}qotuhnrjtzt]}}jtwvhnUxrtj|gmyqrnrW|vqmvlq~sx`ssozgtelPrmjqt[ouey^e{kt^lwRhmhju`wipmyi`vqshgurrIokheiihwhitoozmwlujoe|jlspphok~tdpekcitgri[ltirpkft|cummrnppsrq~cr|Modj|Uptys\zlxryTs}rtoq~X}v\briavoufl_qqya{h^fpVpsp}gna}tnhhlkrq~ciiqm{icuqmxzqukbxi_suooolwjfkiV~kjeo`Wqpx^wRaswijactrvoH}_qTkh~Rfxyh~ufktdfijxresuSsvxkbwrrqoiovsmuo~mh{xlwtwsuw|fxypejpxjjjtx{mz{rvpstvvnsqfworklxtltgxhnl}jtiokkoxw{emo|pvvemlncxqgbiwroyugqwrkkp{lzjtipqti{ro~vnslrrpbr_lpsiiio~kpiottqdopjomopXi~lqopjgpwxtsijnncdkellorwqznzlfhsnuki{eojkcrsuriwspyn^zburuivsqonlxxvluhooifst`yemyukoag\vfsink]kkkvflolnojnm}k|llkvdqiersyrhk{suuvqsvtuuvuqzihjwvXzuvl}ndojntry~olww^lwwpf}wkqlvphqrovpxqgsnyypmotedmn\yzjehklvmwy~wnpcq~tpnx{odvhrrmxrwkre}rugf}suzws{uterk|svrpqpqvtvozqkrwhly`xi]lqjvl{jiwrlo|swyhkgmitusixcho~nvoqw~ujj}}vrydlckcqt_bvxzplemkcnpznzprtgdszurqldgusylhqlspewqoylg{jgyolzvvrnoht|jztfk}fllkpojvrcmzswwycnqpxwooqefn|qwfkwsk|lelnwl|vp_unzfxlur|q{uiqxallh}}mqsswrrghikp{tepkpxrongsphn~x}rtguissqupowwrrzdiigmpn~nhvylhqqyrmrydvynmatsgnmocd{~topejperqwkpyeqsxztwexlkgemv|bklwpmvjqqczlfxhr}znsnxtzaxxzlgvexsxlwuwt|ccZakiurln_gkkopp}~~ghanjxxit`sntppsy~hhme{{wqvm}~kmtry}uvevibhsrmltjjxpz{kqtrqsrlfnhftopwvvfcpqcxqgpksrwskyvouhxqoqngvwiwktci}ujouuemfmiir{cs|vyven`mrtnn~~gqv|vugsolqyigct`tlsnmpukqjn}~pbuewhmwetghpkfpkzs~tyvnphwktwqqos{pvfzo|qstfixgukczt}vvpwshxijxzysmyxpu}knzqxu|r{w~|tuqzviz`pnto|wkmo}kqvovrrnpunjpnswz|sudspxkkxqor|z}rnsjzqkwslnltxottpmnp|qtzyyfsiyesyririukswmxtlmstwmvqsgvsulxls}tonzlsptnxrpdh{ooptpuuscjrkvoqgtr|p{uxz~kpisupfwszmiukpnvgqyrgVfronimh~tgnqjydqidqppm{jjxytwrsnmogpvvnjvetrvsqvjxpgqpzhqzzlf|jZstdfplxuyosmn~utmxipv}eiqpjyndo{pyvfonvqil}|{||r{spwckz}ygqxcll}{trmxpok|pnolyfk{usqnphtmn~i]mm|hpfprvupdnzvnij`hvtmsvtrvkqgpo_r{wotrgdsq}jwwevxr|lypxts{|l`viwmtowlvxsrmrkwywtv}t~zbto}|uqnmjrlsprspyumpwge}svmk|qurussiotsliqlqmywknrmqvovtkwlppyjezgtxq}bjxqlonswg}yr}zl{puotoixrtgtopnuukwlkhpsjnuepnfnynp{~wmtsvfssosptrr}swkqhpinlznjipeku}dwkusxkpikorvraononwqeuk}mpiqqtycuyy{ialfu{zgdnohwksnwnwyikr~plghuqtqpvdagqkoszltsmmvypttvh|qnqvpepZpthnlgdw^f{njuplpejyflzltxrmdmofnimwpilzyvmu{xx{f{nbsrtjlhlou~gy\|pfxyilcxgyvq^ciurjwssov~kasttki^tfavhxggcowvywrvm{qnislmvzlsxodcepzjzymwfou{mjy{me~|Zrmqyooklri}hxkytlnwlytwxoqoo}|tw_fnqroxuptxooxggoxp~mtlqsuitzynvmvzutopvyrkkyqsnwys}gyvgjzcty^{ov_jqm{ylqp~lilvqtedxurgun}sgeotls}nypnjxnl|iolu}zpmwyr{qxlmsfqfvoysutu~|YZhyyyrzvg|ujgavmushg{|u~\lvnwmuesi~lzrqjsmwoku{rorz]ivtn]}[c{m~pdxwknqlcmvhfdsjq]xsxndxxkme~xorgnjxstk_yi{u~{wqmpjqgxlrjylhlh~nskv|ioxqtqsor{ws_wznnw|mmpi~ueym|lrsjsgkusblzkX{uxnb{nwn|geuknrvozr}}{|qtftxq^\os]xpkljfys^qvjpdnn{|ltjsymontqbox|pdwjugotq}_wnrf_m}c|ww]pspv|vcxrhrwrpmwvvtryapzxtXt~ryfkq{xwkl~tjsYorrmvwjaijlzo{zqhmc{g{qvhniijluh}|kxzdyt}`vyz{ll}ijtsuohgqwymnamjfotxzvnzmoznWz`qlgv~brgctapmserr`jkaw[pbu|efr`To[pr|uqxztl{d`rjl|vkmidflhyr`q}xkvuxpqc|o`kjxqxyz_qtL|nocwtzyh}jrqulunnys}|{zgqujxxksuuwrrlwrms||z{se?ipkskn{zj{sptjoo~qmirssyfxxsmsstgvgnslnpnnqvh{j~wzwsvwq|yoivvnrrhyrhiq}fnhjsevlnvrrtn]jvmonxdpkdioxnspiwp{wswimwnfowmlfgwhzscic`umm{llkyyzsoopgrirsqljuutnii{mnwowwrzt}]p~nnxqnzqsnsppjqukjtykojkmruosqrlkqpqbonuo}vlbonjyrtuzlptotozvmr~osbwngyphklpp{ql}pt{jqzzvotmgv{}k~lowfrunrsysnkitqxnx}rhizk{jmwplqwkpvxptls{frnjeoitmwmo}rm{pmglesutnpvr}x~owriyuli~tusoimpvmu_xinnwprtrtjyVw`_oykTjqthym}Umqlzqehjyi||_lmjfc`mo}hwe|myhtotmrsRgqflw\ukrsJerrnvo|ccqkxnbvulnt`gukuf}bgyuyollwsyasdrpvckrlqc}mxrwylpfkt}yskzuyq|Mttwtkvxqvk~`frtl{ovixl~tnjmohaaqrt}tlad[iptmyq{htd{up_ziqmwsoreyr{nsy{uktzzmrmuo|x_eowlgtrswnbuqpzzbbnv}dztu}rwuwjykisrtlou}spt[xnmxxpkxz|z}vtfskukgjmrrx{tr~xqujoinlgnlhk`lj_olnn}vs}prtul{dkytw{u}wjp~wz{dl|o~ult{oc{gt{psmlixgou}rwmylkiqdswps}x}}zmitr}hamqsjxym||sg{spw`suwytkqsrss{ooyy2yntga~u{itoenposhurxmmmamkkmpbt}yvju|ktosgn{prxjznpmroorpoovxbw|onyduzqmntkxydrngh4kpiuqmtnrkpqbtkmukmtjwn{wlrty{pqoxxlzzrm~pnikhwanhtkqkqqltzg[uuutntns{sv{prvlnptwhtwqmjoxnkmr^yvdwit{mxmtnonvvyppmtvpfbllh[rwnai}s{tnswpzrmwy{~srw{pt`rqktrqqrtppwnujmnnvug|mq||owiusypuzu~ws|i{qawipj`{nrlbreigy}inofqnfquupputy{sjspnglmt{snjqpmez_ovysxxrxg{qht~ygnki|fhnjr|wowlf`kogqozqsj_y_nrnR|yzkqqfzgo]wqu]rmugop}wvthctb[rh_tqkd{mq{dnxhy{uzqkclxlyfcmmnfotollukx|qtlptiq}x~mjf|tsmpqmljyyzg{_jfnkg^qsmxmtatdjhnupppjuttmmloqgpprtwomavaougurvr_ixwwm}ui~lvpkzgqktozhwymptwyu{t_hrglsrtuiqxl}spsj^m`rdvro~xmprym{ytgvfvibw_u{suu|ese{xxqglipyhv_v_po|ip_}tz~w{pdhjuxk}pllpkmyopp[rjstn}qqmeiltpl{{tfrwp[khtlvnblfpvjlrx]nuzqyoqentmprp}vorliokvwqgpqYowmiorsfukrx~n{ywnlu{vf~birqjpzvsc|{xjooms}dz~l~`ghoq|wsquqszmpnp{blZZVemscsdmn_uclxwit~^srxduRlpxmnqpqmwSt[}j{sjmopvkljstnru_gjmxkdqrq~nlzy^mzt}oiggkdpzY|pnXzsr~}\tagyt|ux\l^vtkt|nrzzjuvr}pnxmjjdhnvg~Zuurquiknnqmvnlxql~hnmo|hzrthlhmu{tp{lfxqmkw~dpnwowuzfo}msx{sm|stpqxqiqmyhlnfmmijgyi{rlonyeivyvxgjteztrwstynntwu|luwtiwmvz|qpfpo{olx}qietnwzuno{\{vttivvypg]igeljjqzr{rxu}vy{}smnpibnetfvmtozrwpjnzol|r~xvozjukqm{qrnx~mjhkt|pposw_yzrgwplmgszoqtmrtqzcpvnrpurmk|{iip{qxqrrqo{yououtrzjjqqoijvmpvppqkrs|~jg\jnpnc[wtw|ooovogko{}nyrwuswcupgh`poovousptojoqkozsd{qjtryrnoprulnteivn~qwrrtpootxmqzyrupnmnwvyryypwqtp|ntnivhtdu{{qrrmlqequp}hz|_noroqqunponjrlnlmrotsiyjowezudzvmoxk{nno|e~lq}torqlsvz|szvukrp}qbuxhri}oqymqopRnn|nikmhxjxzlku_uzfrhwxyjsj]dmnpsszpqtcdzl{zn~rzyrvq}{ptqfrqsjs{{xg_|utsrmhxpxgulngiupo`y]qq|y}qyn~jjqrgppvwilwtw|ynn~lsituk{vmwhftegqogrlqrfrikd}jkogoma|en{wswyxspunphpllpynqjyinjjtktvl{txqbsk`kwWopxjitvr|kovtiunnlrn_kvjlxwsvk]qm|wgcwxqrurxtfpqqtatmfissmujvl~vfkwmqsspqfjhnp{sutynmjnjztqsttrtvrlzrkwrrsuwlx{ovjkuusotvtv{ivquo{ot~fut~vkcztpvfhpriqdwxjtxmmnqslny}ynsspre~ixokodml`svtk{wyrnyo{nym{tlrotwttppxl_x{\ys{r}rm|f{wqussx~{~iudihhnu}Zvwkr~pouhtblrrymxvqtmspdgwmkklctqzywqumk}vvz}hnxZrrnpz}yijybmqnkxuv}~ujpomWoxgrniupnwwf~kzqlp~itfiqwn`vlh|qyjutvqvmqqwmmyxxjjtlxmytqnwzxckofjonwpsrvxfxekmwsvrtkgkmnwmo~iqqosrqlvqltjqlkrnolxk~sknt{tcwznufh|rtmdpqsz`sygltyxw~yxqtpxxscwvqnqimrjysvkzpuzrwgrylrz^wouyXkhmcrluts}n{vozontqoYohosumutqqpv}pttqnzqpprquk~{nm{r?rlqjhzq~|kprluphprguil~ngpwnj^eys{t~qygutzowimlxk]gxnp{r{ytwiu||lplpzig|ncqunoqgdixfm}zno|obx}}qymkx{ru[t~qrqyx}zeie~wYoxngggntxnoy{xrlrvfpbtwpsmhvv|{qplznwpm|wqpwuwrjmoppqkqrnnmt_zorthx}pspqo{yyonymnuwiQ|qjmwwzu~r}nyqmlixplpnvkmzhg`tsk|lxy{cyqqrqwurytph[vlnctsi}olxnd{rvpifdzojuyp{hvxmlgl\hg^jlpfpvvp_lswqenvqseiqeijvvjjwnqcy}rxx~fgy|~p|jwmuhsw{yxpntzms|fhr`t{Whtseu^wotngszzoksfqqvrihku}fwnrhgs`lxooxzixvmqloyvjm^kq{fmnwftxlonaskg{lxvskvh`paznogjutlo~ultrronuj|rlsq{hnoskt}k_lc|nrkazzuahletj}z|ut~e~sjmyvresvy{vrzqvzh~kyh`iapscqpisvh[lvpnsl~jqxmrvl{qjrugpvv{rsnizjOxmnwpmzkauqslelgumcnyihcyukynwljs}shwromio|psyvryp,zgej{{ozpowsnewukelzmoc^nrxuvtm|o_hft_zmf~qsiq{zpw}ermksupupulroit|snnmsxhytznnmqtpx{vvhwzci]cntwmlotyttcxlwsioqkpwrfxsgnye~fmlzzxrumyiWufpxyh{nstxuzyyixviqnfhwsr|xvorumgzftlyggtmsusrtsi{u~wnk`txz}s}eu}ysvqktv~xlq_ztsvlp|kk|pns~rmuiztrxugkrnyq{jswrqffjkmlusqmmpxqpovmjwnruufyxztcmkngp~jguouhsqd{pllsufwmhuupygpombpqvgrpepxnpxixxqtxmwmvtsromynmpmlvnqpzlupixuurtwzphswoxjkgu}qswokmzxpmtwwvtptrtmhfvwcsruymmtynzquj{yutqpvzs~{xyosusrubklilop}jzpwmwkfqvcqzvjuxt[jvvv]xoz|}l{xrznspicv~qnju}pjmirio^tkv~jom_npkoiqrxqlprnok{v~fpblowlovicmkpmtutlxgpjmdroqrhupztzxoqsqwuou|jgjvznyvpnqvu|gkizosknzwzvnpzsrutdjbxlxtjq^prkpzv{ppkvomsviznoemqpvvhus~xvuh{priekruwbvsetn}sygpkmvmwzvevuohgzufpkv}prkwofp|pvxw_pg}sq}vo`|zmigkdnnlmjoisssyononqmrqjrurujsjqnul}txsy{mrrhf|zlmkglr{|lk_i~rwsuynswunmpkr{slrmrfow|nos{ntqgslpsmfsu{qkqsjjnqvoqvewwrm{rorhtupgdtpyhmwtg~yopzypx\mpuvomr|pwtkpariohbbmlbrpf{omxvmlzoorfowcphjbbnuoorwstitehiljxq}kwqmswznwvzytzvnohkoot__innovmmqjp|rwevntynqip}qZhho^m~lqfqx~oxsfmqq}dj|lk^ql{igrtpxsgjjg||qetmfp}svhkw}vk}mhofpiurpniophw|nsinrwf|mg^|mvw{gmyiqp^h}oj|ukqvo|mofthneqkevhh[cylilxr_rinrbvvvssjl{usytmnvvounwmcuwkn|vtxu{twpmv{ikuvmric}ujuqqy~s|yqnmqkzlvumwqorr{tu}ootnpvv|rsvwownhgvnryy|}nk{pvsyuwskxng}ltxls{trz|mwsvsmrpw}woomvnrzhnoqviowotpvoxv~uqlrjouvjsitchzmZi~pol}qoyq`hv}v{sntseqlreryjuxucowmotvjhjws|kltlvvxhpnvsvjpnuozsomyopl}|it|nkp|ongt|wrgjhtiau{iqjs~hmmnyruumlglzirwn[\o~ierkttpqrkbykyrrdvlaonmorkwrrfqseikmzhzt~~tnlsoyX~oqqghfqbm}ermklwcZpkxtes[rbuxmohhscvrz|rVtynnyki`wvr[hqrgtnn|lqqqbjuymawmhqq[|olnkqvitkwepxjnupotwduhowtwkxljqlptleslmjxm\vmnu|rowxnuzs{rmstopppvvge|zpngzgstjmioliyhpg{mtpvks{rszp{ow{tqy~ipvy}yesuuy}uufnlmcisjvkxtrowncrfmycpd{yfwsexlpe`owpejdgwqpwjvfwqhnjpukssqlwpwvtqsseivlj|npivtwsptovpsmitlxfroztjpwqlyumspjqsovejvxmiskvzsj{iwujmcwviuvpmmxmox|{jleinklnrhqkswxkrquzysnnps}phlrlkvjffyymiszgqhvgzns{wyzmm{fmlwn_ronvgaqkhtzrim|yev~khsfpzl{ofltire|mgnbqnw{mjn~|{|utlfg|qpnounptmy_ofnpl{mtnfyholpWdjxq~[tmal|k|i`riqkc}mgi{{is~vl{kgvhvywnklvu{{uekekujWxvojmlfpn{tl`czptqzpmvlhqmgmxvj|mugpfui|mxovjteypx}jfyojyfkhyppupo|ogjiiiwwntzyp|wosm}gycto{xnqaelfozp~yjnfqrckoayns|mjr{[sh{pv{_ht^{epfprtl^wutqzsmmqsstlxllsikymlosgmtayzfrooxdkqin}czikvampqfvxoontevw~w{wnehyrxpsnsron}}krguqwxlpj}lilnnmipiemfn`qngwf}fpt}eYsbl}nmrkivwnwyhhwfnlqUzfbxhokzZeurtiifvko^ok{iolvy}cMlsms{hxomnbrvtdmblwjrhp|rlujytfrpikmj|_zkwn|skuecruxnltckgo~ppzg_v[^`omrftkutfif~pshh}n{tqc}vtmt}}owhsmu_qwynmrihwh|jzazn}`zxkmsowgq}kmspgmojksvscvugz{htmmqktjk`nviikz|hk]oxsioalqxh{pvvrbvmzyjxouufmpupgos~ink~eejoqwuzn{t|kjklvlsvfos{nq{lqkntltv~wqmtuxsjy^bggu`sw|qtfoys|uvrsjp}|[slmf|{zrvl{s|mu{toqv}_riogsnpoyylqz{qhxstgqisvtpkosnp_vrsmtnpstkzxlommv`ylln}kynpolqigvsnps{rlpamgjwz|rhukuoxo_{zzqkkojrWv}pxuil\hzcrgukm~oxthnusifgmyrzpmkkz{n~rnvp}sdudlrtkstvzosxuzyssmurlqorlneKwro\xzsuf{lurkdepsd}whnosv_lwzciYbvoxekyd|sp}msrpvukrr|tvmfqomow`uwnhZoljmlmynhnusjnlqqqugswl~qswfkhtlwxuxhlvh~ls}ptmtrnnhnhfib|fypp}svcqwo`kxnphoiszlfnkmazsozpyy|urqiqgvjmyvppj{nnjllPxtvpihlnxsnpfgtx}ypqutrxmqtaqsslpwzkswzeqeohrjylqoltuzvqmwwtqnru{}xn~kxnrqqytwyyiwqs|ylyjoudsrf~qnlultnmvu|{{vwrvttr`puspoze~vvmkazwvwv~|zsrzwtqtwkitxrjgpqoskvmvowjn}zk{lh}orvjylqjiqsislfpxrynztyofvulnovllhrvfz|yruw}llslrklznnftqpysounl~rymxusnnrdtrip{qliynrrmlbvs~tkzkwdqso]euxwhinctlwttijmrliwg~whfj}lxqnvxdxexnumnsqhnplwtuqno{tio|nlvjlwqyw}lidfklq~no~tlclliiyklvwj|ew}t{evpsutis|znmrw}suqkojrmwurksthov~krrqhqwgfns~ocys{qrzuupgk~nfsrymsjvmn|svlnopeoknojhvpjriergopjlnp\ixpnluvwnltuohljrhyhrymwnou{xpspq~p{muzqglpxgop}inr^gyo}prlksouzvq|xhznnmmemmlodjnthbxvlmfrnqqw{dloq{ntiynwvmc~znulvkzminnuvlppphrmkiz{rtqaqtnh|kujvukcxjzwcnkuupslmskumsdxpi|rp~umgnorwpk}]vmfrriqqisndesogxhnmkiqqvpsnp{wnmaiusnur^olvo~g|rsrsvmslrmlgqmkh|ynvh_bl|woung^tlzurca}trr{omwylep|rrpuox{uuyup|prqfputmziursywspgyluowuiuwsmnpvndttmwuuzevq~}reqpbtyomxt|uwr~uvty|ut}m{rrnozoqrglmnxvsZrqqrhr{ftpnmtoxytsvpjqpnnhl{qyrjujudl]kmabenzfjogji\{vjy^sjfkegtroinpzudwrgsivittfuftwupjoqot]kyiggrpw~br{qufoZsumce^hcljjtsxquq{l]rxqffjoohp`^puqm|[jqshvgkjrus{islsq`nk_sucswkwwirccqcunrkzuwostilkkjlvxl{imighpjrsioqog{wjgvrlsjzwmjjinununwja]kkwreyqrq\exmwrnzols|pujnoqqwjwpmhqhl^jvuqzff{nqo}yqhogekxoqmvryejwvsmhkwtrtkyloz~unltiXffhlomutrkrnoprmtfz}log{ussncxiuivwzns{ttyvunzqx}ezpxcl~}tv|liwysqduuqytrenaovymvkqezinj{wltoqnmuhtgqooywkzwpx^lmhoiwlfluzxnmbfxknqmmrfp{usr{xTfztnmvgkvnjrtmmyuwznkwd|x~ktlvluolhv~volhtm{rswhowpy~uktpgxewop|^ps{egqfraromvinjuouqmrogPk~Mvmovmksryds[lmyynwa|qixu~znlkwlli}rvsbozvpkpkymos|nv{iqqkppi{lloyrt`rr`n|{hvz{hojnqcniwlvytnlm~rqtmjrmyiinvhxg~lnonyovwtfuxpgzhzvnshxrikllnhvojyhfyxqorrisxsljt~nq|prohiswrn||prhspwkdr|{{|}sqjmx}kunzrkvrqur|qopzsrqswutixznpqtrqkvupjz~sux{lxn}psszylrj}yw{tksshlhqlpixoxrrxvvvmtzrwoouumlrtzwmetszxnkogsjokkzzlnxs~rnsskjoppsjtmuyklrtnoyulkuydruymfroshzchfhtz{lyxwgtshvrmuq}fnwzupneuwnjjzxvxotuoimuxdnxgpppevwjjgmgniiwigomrvingtbil]Xnfwj{phluiylkl}buve{l]rqrmkmpqrilsjwtkqgkvnhyd}buulxZyslmpstzuirepr}kpwgjkpspzojbqx|lsoxnt|ymnupwjmrqtfs|^||pm~zmn|tjqjpdrsfrjswmosrjplwur~osq|p|jt|vlifkcupyuyxfyijolm_rqo~oplkmjkrsp{nwunquoohzxvyhpys{ssnxspxlqtnlmvrbsylqsulmlnuplplwuqln}rtjdmripxspx~Zqywvxqqucmoqnkzqtifmflyponyjtuxrrtzqnnxip}{gkg~umtmvsozm~vwqrwpptmohpqpvurl{puhjxtsjixuorjxaunurq~lelzmjqvzdetrl}tmwmpgmokqeqtuexy{yrnxyviirl~wux`fnouodypgq{|qyle}uromsu_}wtvpszryuhcsrpobltvntoyut}nrmjvv{t}vwefpokrvs{lu}wtqwrguoqvypunnltszjtr~kvljnziln|quunrljzvqklgwopomnsi}ipkrloyyqqiumdumologyiqnwtituqurlwnyprpgs{optsootvymgwmqphoup}siluqyowxybonlksxolwv|xnnrlguoxxw|njvkzowtrurmlovvrtuy]rosuosnskusoymq|woinyzl~{wooqlvltqmprkzsun{yjxrrtzmr|jpxn~ztsnky}srsfr||yqqxqr{og{uujjzlfhy|xtwpuziwut|rn~vmrpz}usvlytshx}pnwzhroivx~{psXv{wxqroesiyy{zhgukkh~virswtnxrtqnr{hvyoxkqqygo{iyympznh|rrloxpllpkn}ktxiuwilglivrxiolvmnoctlxypnqdnbuvsqy{p~vwtjg{wirufnhsmde_}jsr{ro]lln|vkseywixo_uqmsdwli}gymvsu}tppr~kho`p~qsepk{Yqkte~oxktbso~k{epo{nnptuynuzxqp|xouroklpjwtbefsm}~vokwhxkzjivfepnorpmdy[hp~wzj}uwpkx{tphmnqyit}amqurpmxlxz}uz\wy}ut|np{sstsstfuu_xs`pyxrrjshovjoo{vqped}lhxlekoprqjv}gppxxono|frktzro{ovquydnzbizlqleyyiluxrtk}vxr~tfrprwsjyt||noymovr|xwjtqtnrkm~i`pxirrczpkttoqpz`lnihvmzonxo{jkfu|qpsgfzpuosf}pZwvwexmulzljtywgl`nwkscuwtsff{pyirqlw}yjhenoskhymqyzwlpj{pmxww{phrlp_lgm{nhmnwctjkssxoSvcxqxsfwir}nqiqqyjxoquxhupg|~iprrwzWkpttnq}rnsrshofvzlpwmrzmpx``pxnhmqwqxunmdxmmnk{jzte{nhionpyoeoinqldy}rqopzown|mkqnwvwzrgjuhqofrl{|auprwswyhoZ{iou~n|mp|zmmzayw{prxrooyvppw}qbspzjtyuupv~xtuqyxxuvrviszt}qmwtpyn|vxryrhk|tvlpk|qpuopqgubppnuu`c{nrq^ts~{t~r|{qxrv{rsqrwguqxytxos|xspu`wnm|oclpkkyp{}qnsv~ujvezyspx{ttv{tvyympmsr~tvsst{syq~hqjrrstQiq~rh~e}eplynzv}s{hn`gozsn|xrwwofsubhnhsusklbarzqkr|Vkwms|i~~vmiu^nrhijwporxVjynksgqod`oylwtugpgmnwnoygqxmtolqjndhury{Xdyizxmjuyqovkzy|zrwv{ndbwdmpqyykuw_~kyr~ie|uszvhhropvmhevgqdblhsaofujvx|uplsvnuwkpjpmvuqnbhfwnrwyj|ipdxjmtlvtglilsvcwrz{xmh{fpomnknrzs\uskrzlpjlt{hrlnhtx{mmvnox~pyvs|qvohn{nzxuuxowy~zvtkim|yqsn~]qhbqjyz}zxywsxqusjo}jmhlqfq{o|pokxibgt{xqiukn{psymq{oorzqoxgyjsauupmrfjtx}uxusjeqkointljqumvummov||owjwbxortlpsrkjqtfoxolzjl{jsyequgzrs`gnkhu|vpnmmsowuyxn|{vpqpph~rnylvvx~qtr{[mqwpt|o~ygiivzupenpsnriskpipkq}o}m{qvgxnemotycst~rekljomd{`q}{{cyfi{pqhjnxrnvholqdznepj]gqrojperrzjkfotiw|]lqror|qrxzrsx|xyqjmpbacsm[liniiyzumtlnui~goyozsvglynsf_rw|{zyfqnq}gvwbuhlfe}s`{|t\wZpuuqdoiojptpuw`vts{omnwnntk`}sx{mr~wwh|nqzowxevsqyfe}rsghnk|rnirjjnkkvgugp|jtnqxmvsrpymgmdgopmwwsnpoenokfsnko`kinvitudx`fdqk}xjimymonmmmdvorywlkq|jzwpn|sjwl`hr|cnx{sexnu{j{hw}sxpynr}krwjtzwfpxypiuntzonhptuqx|rhuilwoorwnevx{g}uhsuomi}zxv|z}}pjqrmvhssrtqqxzqdxyuhxmq}tvq|uhp{{n_pnmirusyqrnrqqt\olitieltqusngtwjmshimprpw}{fehrwnhlnsss{idkmw_iittilu~|oxr}phrikrvkvcmeocn~vhkten}lpnunksuvrboarqmvi}oesyvkqopxsyrpzkburgujsjlqgwzp}jlyrnazu}xncuzaqrzuprmry[m|tnhmmpoqlpxjjhkqm^_tkodbymnzs~kvz}iuiqrzs|imrovvj~~t}jjsunnnvtlqlz`lwsxwgwgswuxxrmttvrunknrvsnbehzzazpohgpotqm{txsms{pmxmw{rpku~xvtxxqefqeqqvtkjoodzjinop~phsmvsssnqprltkrorxxms{yjuw|kv~soc|vwt]e{txrmfi^jmpk|yuoosppnfulhjlpzwuxngupesnvn`zloxw}v\njwjmjvktcphmgprjvpbzwuz}pmvyiltisnqjnckgqotquWjkkerl|xmvlsiwmovnyunkrnmmnjtslvtmujumkzqtsi{ummYo{spzypumt|}zl}mtavkovpr}uwvjuunlotldqqr~z~ok{yr{uwopxytyj~wusmvzsonx|bxonurxkjorssqdmlxyoamq_tq}u{miqpptpjxywlmwl~rstrpv{visvnywkhtkstzOexlsjqcxuesijvrhelx}sl~zpolktyuontfmklrmulmpwtsdniwrrtpznmjwj|s`krnm}pnxwygqrqjsvrlqwknuppvusrhjltqxnrsm|qo}i~n{ksuhztnkw}mdwozvlplmmnjqk}|jgtkhyjvkzsrscmszg~rpwjss~w|nosgxt}ooqmon{ohovsslvqtymqzinrilpn|uwlgqnpjinywpuxpd{rr{ixzlcijohlwvupriv}qnkkq~udptsqszqufzdtlnumxuwpkpxqxpxqpzoollkow{wqekq{mvnltxuqky{bexroyjqsnrjptq{jphkrq{iej}cnonnymtrxkflrquqloxm{hmdmjqiuslnmlstfirrpttmtowmu{rzypop~o\w}gtnonlyj~onoulojswmznwfyqxpolriiqtwnlc}r}o}dtk{q|f}tis|pS|mxousnrnlcqpvqnutxqu^{i{]o\rocnp}ovqlmlUjsl\rqnrzzexxrovpju^suwt}pmson~nnzxypxsuosurhmrqkjplzkz[u]clwnvsmspvwmummiw}rpyoxsuyrnunphorrzwwnuzpzywmekgqkvmc{kiuunoovlquf|q{tdzyvjlwtuxo}luxlsuxsvtdunruvumtpdzwquq|vjikshnmmlxevrgm~qyfl}zvoxrkyqqkxjpujztksdpmkyhovofoixopykkxppnojtppsmwvppnjjfgkhpjldqfnrnqpnthtpk{ngtsxnuvtsyhvnmmtvyplfnrx|gjflji{lxtxwe{p}pyuujlsvqgowazxmxpp}tecwv|xe~tgusq|r~qgwrt^h|tjmp{mpsitqy~xllv~mm{ruwvzhmjnninsyhutkmj~vbilnqrqx~h{dpil~vmznum|k}etkjjzpvvc{}wrvvrmpjnwfvfhqqzkkrxtusnkl}tjpxwro{pmrt|kt~lpoohzlyrvuyfnsuyhydl\rmrms|sxhlljttls\tooqrqxpx}pqtirkklypolkoix`kl}l}}kmi{cqlhro}jqs_lunisqmutrhszxfo}qeolotunzizh~vpnvty~ucxwq~s~^zspw{fsnl{cn|v{j|tntr|qlpkqmbpjrkuvohrrij}fynyqyxdjyxrzy~j}ulet{rik~yzw|puynsvjzsuppsymurksomnk|dnpguotoebmuviqyovijjxnxvj{vlvrhzvutswts{yjnrgrrwmr]up~qqursljloqrlxpywzkpmuvqrjp~mnzl{}ik\usdvknoqoeqrlwxfrvp{ltimmnppytnnjmnfotiywnf^bbptcjahtju]szptizogt^z{|degkvihmswwdleiqihm`jOhlsj|vuyP}x}arzw|`l_gdtreslfsrtgpyq}kr^}b{pmulV`c{ljdzfubzWWeysea}qljvjlkhd{}st`qxpXtw`uxmerjpq|ksmlrnrwuwijkrrwkvqnvpsyuitolsjjswisozlvnohmnvyyxrjqosrulxhozlrnmoxgntnxlzrsjrlznxrpaqios]uplfshztm~qkqcon}sporm~fk|mrxtlkusvl_qjq|wvoyes~kf|syvxrrrshqonm|p{}vqupovzuup~rhis|rheuoykzkt}lv{rsltvuuozzlypixqjku}vqyrwvyq^slk|~otrrkuwpvvto}yndpur{szxhjxvqeodypmo}xsr{ywr|q`myruntntroptyzpomrmivplmv_psonnl|hiwjwjnqy}kpm_pplpr`qxjpplprhxcf|ptsoi|lan|sos|z]ospmvotkkmop|tfjwokkxtwzmnjigrjyyonwozyztzqhlnjuvmku~|mxTylrz|ksqrehnyrt_jxu|szlulmz{h|zh|s}nrje{wdpnaprtntolvunjwqqyqpyvqrvcvsskswmksxe{bswitxkrmiyy~ntv|rttfrtx|pzpxv|pw|}riyxow~txtquhunp|tndvgif|uqoxk}lqlryq|lounos{vvrboytzlfrxvn{wripupyhhjpxzq~jvpn~yqlpkxwlouno|smnpzq{i}tqonqjudsleqtqgvumqqlqtewslow|mzs`srzxpxmrvar`f`vnuqxoqsutnvroypoimv~qqhqebtqq|o|izepjbqtjuh|x~v~aru|trylvrnnrkwmrvtu~jnXgcy|}o|gU{kk|lpdlkf}l`{kxujbososom|cbrw[iyxqmnnv}xvqilmvkks{egsqtfunbq{yIrrscw~znfotusgxv}pvjtoqltjtl|l`tivauiu{ism~ijxviqronvyviyu~zq{nuxhyn}kb||c|rwoxuhdxxqltghnlhxov|ofekqwevyocqoomphpomwnu~neizph}njnzogiwvsq~oorzthykrxkplwjuxrqilvvgsmosuqljnskjmptlm}xftkqgycwx|jhswticoxtj_oRm^hShmkwosSnmurdrlvrjqz~pojrvwelrahjvd}dsprby~wmhwkyjmlvepwvmy|h`tsvrkwmdsvoisziuyl|tL~jvkcr}lukfu}{]jreqilcqosh{xu^twqq{ivekX}cnljowsljp`xxrj}howttn}issc|ant{kx~cpzx_vl}woyntfj|tupn~rnqyt{ncs{wxrvhqfdrkntvy|}kpbtvhaxjorzela~{{mduwgtswuvjhrlxgt}srp^}tn}tzgxhvthkm}khvy{pyxhloupoiwmwvkngutpzvo{spoprpvlwpxoy}m{rv|jwmopotprzqrqlwjkrzmo|lqpsomvgtzppysqwzzswqoypqknwwurmpdqnv|xjrrrotyktmrmzmpuuppozmorq{lojyunpssxpxksolkodsxbulquwmpyxuq]npewqopqdnqs}rqvuoguxrwhu~{}kqseiulkgoa}U{myozt}jwwsjgrq]urx}~mqlhsplikmuhw_t{xswqjzu{trwdxznmpqqisktmvos`itoum~tslxniitz[gxeprt{o|nhtoqnt}szmlzeqvtmzulivigkhfivrprvew}l|ruynuklvkjrtkquzfcstsxjyrrovxqwredjqxoruhrlzylpj{unqqqqytljuol{gk|hyy{riopzovmmnyt|qwptgnchf{^lsoszqxgp}pjtrh{zwrlzzxjotprllloqn{orsw~u|zribctprfjjkrqn}qknwbsvpfj{zg~qopslkthmtr|pddii|twddmslgolyppx~y{qintj{uqyjkixyhdumpxxwnpcrzqyq|nmuxep}nmpttwv}nhuqviiniupkzwogn}nvjpvykrepjixqr|idohm{[~ozp}svyjysc~{yjsark{gon{lo|xwfmofu~qpmpmc{rrwxwTj|gnqnmgsanu~om~l|zm``bcxokt{tsrkxkvz|m{gq}z~ovlnrssugl{rtzvpxustlwwyhmm{ftyvv~rwthylpmd}qs}hcqmul{wktrmpwojolorqkgv~ue}|nxdxr`uqivsprxuiuupmlutuovhnyqyBiekwwomzxqxuu{qurjqlwxxsauicqszsytpwlwtqfuxzglzumizr{~{~tt|w\zbxwq^lcqo{~r}etviouovjj|cokmvpmhp}oguqpugwmqhux}popsmkylocofs~swtq|jwwyklilnpm}|ixtkmnqgrno\evvdolkuyo~oowrx}tsqwxsmu~rkrxvphoxyvkuuqulmnyvnwontrqltyvp|p~wwxfrrvnesdn[nlmzoemtubmnmplkbkvm_wlmv}hu~ussbnllyo]uvhdjnyvht~k\rypwy{izmqfhrtohcvhplmxiiqukfricjsvsuytrminnr~rsyunqksjdqsptdvsoooylgomxuxrwhcyorrorumq}vilbjukjftolrrhsmgl}dmiimolxryjthhfhozpows~miurzowpotmvwtowjemufcxzoz{rj|usvpuielq|v|ouxzqolmpp~rcmkrtjnofrqeet{snim{wpsz`ptqxfrwjtqnl~htzzavrmjqnlmasuk{wsohwfunnppzoig~kksnnrorkwvcxnuxkosnjmzjtkjon{rivirfeprmqjsovxoxvwvlnrs|tmmigmtynnddjnqirxmgomrq{olw}qums{nrmollsjylrwtjjlf~og{rxuctqindpk{mo^uotxqssrrnsqykk|tplxkkpxozjenmoonqoqkiotmusqxkqirmkpnq{tz~xwn|oxqowtilwyrynpap}q{o]lk`~t{rjts{zmvpuobjovucinujnqlmqzpvljov~qsyotpyywgmfiwgtsord|f|{}ysoko|d]rnlxkqepnhxwxnhl}lunkfy~ofwsmuqld~vlrkrkozznuxrawndtdivvnqtutz}twettiedqwvcgyvn~smuvqyvrntjewmxopvf\r}ir|mruurmc{~gquxtitmewewqjfiqtuxwprkyqwnkjv~ntlqrtbi{{mrphyjwlhfrnku~s`tyl|lqcquf|dfnvsmrl{x_kvcw}nqeurstv~tp}orcrzpmmkxecsp}lttvisqss~skoh~}qigxsob~tojqdimtki}qjxgzldfuscmwhkwiukvwjuuhxrjnrynilewrkyrrrqpuuqiptwxoui}pnotmmznsnvwkxnmusnosjsprnz~puk}li`iwwurfsbssy~{jjip|t{podXmW{noosq]nnumafxmk}fyjulm}qimry{oq}vz{prvn|rnu|pye{svozovffnqvlxwqrtsrikbxisoyzkq}olrhit}r~qbtl}rn~owpzlmukua|pgj{uqylssufwbmikv{kuiohnjmvysiktwj{rlnkvnp~xwvfoqjij{paqvnqpusv{j|ymzpumlqaqpjf|usytouz^hqocxc}qttl`hyjpoyqnu{mesktouwfttftnnu~mn~slktqeoxfrptudbtjYpojrzydqmmmgWx}wzwxttu|wnttqxfu|pkg|lt}ut{nhpmxgw{lymmenzsouokrqvljqrowfqowwwjxwgtkohfs\qoonybrretyc{pm{sqxjdrwvi`injmpcooumuhvrhvjlbzqfhcfqehxig{mmflqsqpirpooltwdpribzpxsjq[mf}jl|hlqtudspywjgr{{un|sognq|kstpauyoprlordywtrtmzpewxvqokwiquy}kpnovbr}qyrggun~ltrq|ulmqyrmcjujhf|~tvoeywqmrpg|jkupo|us|pok{olmjnq{gtogrnwqmcvo|oupwgqppfwxquniv{amlwpvitnwbmpse~sizvozskmxshlcax}uyjou]csrtfuplzhdtyj{oxwvzn{oxuquovpwmmghujqswqmotkrkxiorynpowmgp}txeqhm~}qwxswkviewer|uwnfumolmyhmnqjsvuzppn|yxwwcugkkhejzgxlirumxlkmyhp|k~~mrkm}scxsrjmtuylnjjxoWe}mt_qxoqsopmu}uhpjvuppytmw`gmyfkfpqolqin`ymiuqjm_ywiyhkxjhorfjpvo~}xhppqoukou~wmiltpeambk|qwtkg\uioizy|rkyxu~o|lzvw{{sg|hxsvpdjrwfm~jst^qydwkqyhmomjxptnlzpxv~tqpujkv|^k|rtp}lsoeywvwmt{toxstuzsmsuqlmvmzqxvvtromrkpimyulyplyvmtzo{nr|tlqlrunlwvxwxvqxem~ohkx{r}|fivmr`rt}kvovxsoqrwltmuk}i}u[qymtz{totmmu~to|rsmap|vm}lp}ipllbwlflil}eexhp|n}npqwrqvqlelpuqpksszwsgwoext}my~qtouygshxmixhkozyysqm}{qeiz~hsooyttrjmlhyqxiruntsyf|oatorwxgppvyhnkwqziwbxy{plrxxlapikz~ndwk}glw`mozxmuregvovqxzos{ur~uq{uqgudodziuvohmokoiykpovmlius{jrethrq{llwodtibpiierrsqqznvv{hgsqjgqsckrsoqnrylajyuovsan]mpsrpp}wpk]Pu}mj{swhr~gkm~aqxg\tqhsqu}ly^gwurvckqffperpvj{ZYdspnuga\|`nmnpejvrtbtp`Ykvri|ujtx^fgz}hk}cp}l]rwpYol{dru~e^iiyeuloewimp{oozabov~V{hyepvc{`bpqdtjg{_fvonpuwvotvsboy{hhfr}buf{lystxnnnnvkzttqwsnfid_uq`vxrgdfpnl{urjlvqiqkk{viwpls{ymhvp|e|kuspiluiirq{khkjgchvrhztyxomurdjtltxnvp_opv|mnbxeysnenxoslvgpto{mfoyglruxvyt`ypzulxk||x{sqnxx~emvqymn}tupuvj~dknkmrnor~rqmnlqeoyokpiviqmssyioeqq\psW{jwlrkoxbdtnurtylu}woervs|upiyssdvrwuuuprhjm`uiplfzq}gso~{iwqoxwr|qvmetytrwqnzwi}mrvvk~{ux{n{twwwots~fmvppsfurgsgvpyuuiziukylwg|jozvotv{c|uunq|p}inirxx}xp{goatnvoqkhpprrnxrkttmphnymrljipnh~rutf`nkl|ogjoxdmlzjho{emrzvlrj~amo}idqfrsxsaytlskdo^q|spnmxtx~sjoqnl~hva}kcjwsiiWupxoetpvt}pmunohqhigpsywqjjlurruxeh|ys~zwqiwmpyiwfhxo}s}dmquudmooyz|_kstqid~{k|x_hwglvhur}~y|vpjgxmrdp_u}ioktvlmsrrtqrntjwrlpjhipqell`{j|qsv}cmsWybbm`hxnjotsfjnthrogls~gmrxyknif|jplQsuvtbuxrhjufcsonj{tckyelxwjfq}bkw|irwmkvopihhkqqrp}zxuvijlxduv|h}x{prngpovoerfkxqxpkolvo_mquzpmwloojhixwi|zhxygokomlgwokxp^i{wlmiypkoeuo}zlukrnk^euswgjsokmptfprhtouvm`~bupkruqp}qz{c}fqhinwesktolspozkmhrrr}unxsj|qjlyxmpkjrvpprpymzvq{prqelumshlninwnjntmuraugkiurp|m{ysiex^|mkkpua}nxyjvqrpjqmzp|qt}irxtpvr|pejrypupmmcnospslw~kb|wtujdqjrtfpnujmvgxmn~wcilenpmnkwxjn}fkl~bwit|h_lqnkitqqtskmkbxszcxjnu||xr`quhsnzvpfh_ixkdrmcfosw}j{ufs}ailnmrqygo_mkoenlqxukhwmtjvprxtktqkzhqsxu{l|lpwwrv\slktx|lju|ulnll~nl[jwodx{rj{ldwnujfqlumzrrkruY}vug~jnuj{nzzmar}swamdixt}vctjzmnrhdiyoiskw_xnzivxjlsu}ouxshtgn{uwrmpvquu|Xltjwnihkuovwrwow{t{zlr\qvlrvn`qdcv|wZ}sqvpsmsrptjx`vrmcnto`wnpqx]ynr~vnktzupn~p{^y~oyofsv~|sqgherno{prmsepwnglzhtqqaslmoyy}qszjfVix}rkyZy{fhlprmt~lvygh}juzTt\dqlawqb|uXi|}ey|tilkYjwvz~xispvoxrpw}i_oaobpgmkl^s`tvgl{lnsmlrmnzwqsvuacxolohwywotyhw{ubjqnr~pjmizeqXl~kqsqv{e`cxvjkwybmotber{olutvrswp~vruzpmj{lh}gpezovgwxpokwosx~ig~yyr|rxgxtisqiowoiimdntgsonqzqtxuhr{wft}pv`polwtrptnxhnh|nest|cnl||hxkusomnqjezojejsjo{otgttsetyhor]filwxblry`mzwe~rkutlswkjntt{hhjbnngyke~pmtvtbvheyisu|musoZ~{xbyt||quli{cvipqmucq~o}}xsk}ovzozlhpkWrvphpxoxfwc~pthwpzbmrzquhvmxowiqqwswiiionTavfwkustrwqjputl|}_zplq}jby~xowhgnprdwjrkxgquzd}yoqi{okotozto~~yshons|mwxkhlwgtkvshmow}c~hrywsqmwoottnurzrqqnejruynwuc~ohrpgsmejhjginousnzzzssorqxtuorq|m`uro\iuozpxouvrunp|zulzvvpr]ymtjhkh|uoky{ipxu{kptwvxkxoxjuvowjmujiqfqnxslqnunwrtluw}qnuuvr}ysqmipvrlprcnphpuu~qmtk{gipfrrs~oyrfxzztunl}vvpqpvprprvqusmluspqhrzkutvhsyostutpt|ktuprh{ux{fter|nmqujw~msioulirfmmeun}vni|zjomxvkrldiorkqbptdttrppnzkuz~hjqbwmj`sjzsv{lpk{qrrsxkojp{Zqqqoqrj{uzuozvmlxnpblwoqqxxnhto~zrkusp}dqxc}up]mxrqzlruuistiegxwm~ugqipunspurvx|jvwoowpmdxvkzmuwjppcpvmcwowdTVNOHWIJXLVOZIMOXXMYTVSEWVTVXLZLQOQOdXUWQYQTYYOZYPVTUO^MUUXN]UWKUXPLVWaQZQZR_PMbJdQ[]X^MVSRRTXVIXMSY[OP[XQOUUJQQNSLWNRUMM`]ORRZZ[UORD[NTSLYQRYOPYKV@TKFY\LSZVVQ[OYXVQOOSOGWP]TOVORRWNWP[N[EN]NP]MZSYTQOFQ^RV]JRKTJZVKSSRUTMRPUNXXTJV`MRVJSOTSRYWMHSZROTIcR[TRZRPTUM[FUNSeRLRK`ZAKLKMRHHUWURL]ZfQdUZJ\NZUN]YNPQOLeOTXXVVBLXMUSOa[ITXV`QSfhKXZQXQRLQeML[YWSTWNK[FUDR]TD_QZ`L+HSPXMTOXMPNPQMULJQVSA\PISWYCTPYXQ]PX_V^[WaNTYGWJM\TXI6QPe_^VAQJOTNOHOJTNKTWM]Eg[RUJKcN_KWPUZPJUZQUUPLK`PVVRLXSMfRPDhTY^PJFW[9TOKOZKSHQDTLZMANWKNXTFFPRNH\IPS[PU[XMZPQNOHSXXlOWLUPIGDVJRZVUCOO^SQJSTNYUNPXW]TRPLMIYSSVSVRPDKXWLMUHLK]ULTY@PSMQVNNSSSHPIUUTRO[PbWOaXSPWQ]TQU_SUQSQVKONYNS=]XTOUZVBSNVGZQN]UVR_IWWNXPVaTLWS_]E[SSXRVJR[SZKOQIaAMTZXTPE_RFV`ZPIQWLNREVI[SYHJ[aSSIjjGPTMKGRQR\M\ESQRHSSOUQSLTZQJTYUMUN\XZVLJKLOXedSZTRUZKTKNTQWUMNQO\WOQVRRKcMRW[UPPOQTTSTPVJOPVMYXSUTR[PRZW\ZXSN_YRbSY\TLKTQLSGPPNOT\OUPKHRLRQKRWRZTPEPOOWYQGWRPYTQ^V[HGUKQLTZP@R[PTR_S^QKSVJWWVQXLYYTZ__LZSPZNVPVbPXUTVSR[VIQLZP]UWPUh[RPSVUMUPV^RQMISYFNXPWVXW]WQSUGUTdXURMLNPXRQV[TOHN[OZXVXQPRWYRTQSVRKUPUYKRCHNMPUROYHRQZWTP^WVLOMUXNRS^NSUKTTLVSZROKUNVWLTUV[aTRPT]THKOUKESWKURMROXPRLT^@SeWRPQRT_TUY\WRVVXPIIWNWOYLUQLTLOQMZPLUWS`WYOTKWZNK[JPRQXJSRYUOROUWSaUPTE[JWNVIXN^PW\JEQORNUR_SeMMNQQOPGK_VRRPWMPRWSLTT[P`PCLV[LIXUUNSVMaaKLL^AIPIRPZRWQR_TSJUUUPPYTZTJMSJ\SMNMYZMHZGLYRTVMOURZ@TUPSIOJK^H\SWONKTNDVW[OTNVKT]RFYMWZIX@KPJ_R[WUULRRJTWSFQYQMSOPRXPSNRO]KON\OPPKPUTYQ9SUQPTWQSOXPBPRPYYORQU][FHQZSS\N[MLOXRTTUO]XHTYROPSPOWSVSR`PZWSRPaPVUTNTJX]SRNM^RPY@HLWXZVXVSOQPNUVPJJ]VRUQKNTZ[RWTKXGHLVQGGQLHNWM`NX\HKUWZ9QaXTPLXRUiUXXDO]OHKS\ROYSTQ^KW^XPYN^ILWZeWQOTGUbRFVQTXQQMJZWWLShIWOUSQYLYO?VTMPLTSK`SHQQCULS]RINWLTKNQFaWQPjFZXZJXYST[J]YRI[MOMWSOKOZYV`IF\_W\UWYTGLQZKLNZHZP_aM[WD]OYROMRSF]VGHSRZS]R_UIcT]HTT`LNUTSJYMUYPPXAPS`EOHdNL@XYQPJNMPfL_P\CNV[][[JZPTWRFZPJSETEN`@R^LXGNaaPfJEHZ^RQSKPIXN_VJWMPROYQ[SQZUXQ`NQLJPMQMY]VHTQPHKKPOO\^Pc]MLUTRS]KIPXVWRTK^PVNHUVZPYPWYVNLYSZTMNTLP\DIRZUNO\]SXDWS\P[TH\V\NTRSXVMK[SZQURWQRHGVaSP_R`XT@ONXNOVM`eOYNFTQU[SXZMRL_VRQWVQMONZMYNO\I[OPO^SMNOWXL^SQSYKNSJWUB[WPU\[Q[TQQORRMTPONFLUHLSRX?=\]PFRRVNOOU^OVQaLgPYLWPT^\LZTMMQLGA\@URKRHOSSXYLOW^TVXSKLYURTSRKVJERU\WQQSW\KNJOUZMUOOWNUSUMXKXcCVSOZSMMYVLU`T[QRTYZXJYP_AZWSZXXMBTLMHSYEZTYOINS_WVVSSPQWQ^SLrPSOV\SOVRJTPVWUMQTDRTVUaKJZNXPDXPQQRVNKPUTRTUVMPXTYNV]QYUULPXVWSNNQSZV\e_OQSWTRQUTQP[YWVOSSW\XPUYOXRRTMZNYSMPXAZWYQMJFWeV[V[NIOTRUQSQZ[TUPSNQVSVS]XOM]SkSOQKOTHUWVW^SXVTOTUYSZKGK]GRTRLUJQY\OkQLSROLD:S`NPTVYJUQOYeRJREQDQPRFRUJP[OTU\N[]XXZSRRUP\ONSYSXMWXROQMXHPKMbNSPIRIQYUNEDNQ`SZW\W[S^RPVNOQZLMeUSSDVHH^ISIUSSNPRTX>aPMUMOTMRUPWQI`UUI_JaTQNSXSXYVVXPQSLUOZWLW`WT]TORSZIEU[S[aVV^SULM\^SXVVRPWUDLOQ_S\WZTXNYP[WSROHWYOTRQSPZURN[aRSLWPc_XeNZMQ_UUJaOTK\WLMPLYKFWNSZPFHSOZTVYRTZST]NMSW]XHdXYP]W]KWINWMLR\QSMWQSWTTLORP[QFUTSQSRXSOKRLMJWZIGIBSUPPjUWQXW`WXRSSUecSPPTPRU\U]ZN^ZVYUTTH[b`TZVXGMUdK\ZSVZW_RVSUIUQNOOSKXZV]MOON]QGPdQKGII[ZUPDWJ_UHTWZReRKbVQ[ROQOYEPT\JLWGQNTLWXHFYBYSLMY\MRTXATER\ND_VRNDKMYUXTYSZ\PNVUQTHMEYWUAMMZKTXSXVTSdURLJZMRMVF[NUZ[DSYWRJPWQURWN_MVNG[YVSYVSVS_NSRTTPeO_ZO]RXXWUWQLkLLNW_MZVLOSWM`QURdZOVWRSJ\QGQFVUXTKNNRRM\\R[OOPRXbbV]RPK\NP\[S]TWXTeTWXWUSSaVWDW``RPfOUMQ]QNVKUYcYRV]YNTRVTUQUTGSTXPSbUYUNOWVUhTQXTKgXVVQV]J\VK`TPIO[PRTRPGOQNLZLQB[RSRVNFRLTUSTVVOTRV\TRLSYFUW]]XSVMGTUQeJUOXZQLMVSJYNGWVScWMQU^eTJPJO_ETP`LQWMMSSLNXATSOR`NZLPQMIRLaSTW]XRPUVMSVPQFRXLW][\NKTOWOYVU]O\F?NXOV`\KWZ[PYTQY[SS]JPbRQOITZRNXLNSHZTPRH[OJM^VSJVQHQXQEPSMhN\MTSPQKUOPWQbMdWISWZNRLRURKARQRFYS[TRU_PSOQQRMZXOLZVOQNTQTPQRR\SJSSMOLAFRJWRRVVHYbRWPNMUSKL_HMZJOW\SUQS`JZWPROTV]QOINZVJ[UVSUWIMV\NSQRUTHUQWYOLTKMXUVMYU[QbGOUSGRH[UOPHGMTQYQOLPZMZR\VQLXWSJY^QI`GKOXQP`XYWLTM^SUUYVLURXSUWVQTYTZ\VRNNP^AZD\PTT@WRPLXJUO\JMTW[WUNQTH[XOWQIUWOO\RUUQSNVUSL^WMWLSUV]SX]ORQRMOLIHQCUZHRJKRUHQJJYRbUH\M`\S:FNI_PENQIPHYVVRTUEQUWNCLZEQVQXcN[SPdgQIYZKSh=XEN@MJKASRSPWWUn\VPcYDKQQSTLNFW\YXTQ[RBRQSV[Qf[RQZLPMXhLOQMU\Q`Qd]GI[PN-LI`\PBCZGM?WOMZYIVOTTGPSRQTS^RKBQRLFMUPN[RGYR]OPOTFKIXSUOS^T[QNQSVPXHXOPSJFSTPRSF]NVXTLPRXWPVNHJHOFOZHOMUUQPMMNSNGVcSJKTZMT@PZSRVPNKPPRLWHVJ\MPMNPGPXQRWJ[XPRKLSPVpVdZSOXGGRQQbUROY\TSPHWXP[MQNNWHVNVSCW[T\OLT^TUTLKTOX]QMPJMRUUOTZSRVR[MS_dRP[VTLPLSMRIL`OSVYIEPNTRL@PRI[XPKTqQIRLYUUQOSEZRHMWNUPP]NIjPMFS[MILO]YWL]RXVKYEVNCWVcMLILIUVVR_UIQZGMLQVLJC[PUIT[ZWMLOPMMNRNETUO=OOSGLZXIJiTTTRLVVES@`OFSGQOSPJeKFMMROIS?RQSbNIYLO[JWOZUUe[YLPESFEOTLQGTOUWIMVXPPL]MSVXHVORRDURP\VW^QHXVRJRLMRK]IOVUTQKMTVa`W^NJMRNOAn\QSOHUFUWRYUWeVURVX\JOQOQPQSJTSYRTVPIGTUSTLPPKUMOSaK]MFRREV\XWMIVNJQORSURJN]KOPM^LUOOPUOYWNY]VVCGGRUTQWRTVJQW`NNULQLUSXST\OTOPIQQNMPS\d[UQGHUNT_PZTYIVKUZP\SQZSQIKFJMOVWPKOUHaOaOXUTYXMMMWVUPULS=VVPPOZQOKRUMRGIWOUKYQYNPEMYZQQ^MZMYSHbTROSWXSWVPXLQQIMQWHSNSTLSXQNRQOVTPTZOSLEOQ`MJPOJiSMWX`NPTRKSUWYQNEDZPSPNYFSWUVPQQVPNN[LGQaQNQTQUPULVWPQWSSbURTSKIRSLRLKRIRNIOOQURJTUINTHVVSSPUV`PQXSUOTXCPZXZYRTWS]RVKPONTWOTWR]JSYWMXWYWUXNTRNOSRPMVVMSXPWXLSOXIY]XFWJGXQQILSXUOMOfRVONOFSMP\FMRTUQ\HTUQUPRWfPYRUP[^SXQUXJ_SUZJJJOINYLSTR[S;OKRUOOGUIUJFVZWfHRLaJMHKMQZJQRPLPPTN`G_PHPSMPcYT[SP\^PWXKSTTMbULKOQXiWWI]S]\L[MRUUQTYjMDW?OOVPLSKXVQ[V_KW\T\KGBMTKUSTYgHYTJRGQMV4[[JUDXQ[XCdHPZXSRMT_TUMZPTTNSYOROSKGUUPRWWQLKkTLPMTQDNPUMJgPSRQKMQSSMVZOUUSKSWFZYXNIQ\EP^RVVPKRXTQZPKD[RJ]OSTPY\VJNKVLWHPOQUYJX]JShSZMQVTYQ\VRPHV]OUSVRSNSMVOTXYKJYDT_VPTNeZXYOVVSVOWSZOLN[ZNZSRTNPMGSXUOleSX\^Q[IhSMWV\WLNKUT[E_SUH]I_QUMZ\NXRQAIKWZWLLYaUVSJX[RzJNN\hQ]KTREQTWhXVCNPKRSTLMUSMMQIWUTXJ`JR\QLR[WPT]A^VVPXKIMONSdNNSR^\PNTU[S[PLGXTYVTRQPNQNLI_XZNJFPNHRM\DNBPF[PSLXI]PQQLLIKVXUYUQTTRTWLWS\V[SQPJRRPVZWGSRRZXRObOKKZSQPWF^RWJYN[SLQXQ]LNWWLR[TSTUTcWPLNYUSOWWPJHGOTXBVMVaQOOMTRUYWROLXZNOHTNSQQROZPNN\SWOUPU__GQhRYOQHXNXASQNHQXX[PRHPUbMHRdML\XPRH\`SPY[W\IPHEN^]L`WRPQMROQPL_HSPNTQN^MMT_MFLZOUK[UMMPULXVJWIMVUhUROSTURUXJZZKSCV\JAZTMUkKMORShEKIPKPMSRHZ]ZYVTQcPUF]_TSQ[Q[YYJ[PUYZ^PGWSWVIQWbJPSUjVWT^dOXTVPKQTWNQMTKQXVNTPLS[VSVQMUXOSYRNU[WPUWRWK=bRSXRYfKTW[QSVS\NZVVUTSdUNROXSIVMTTVPTmPS[VULGPPKRQX@UTRSU]HSHRQTZZWKVKVZKMOH[KLVNPUSPTCNPQXM`OTLVPGSNTNKQNPWVMOPaYEXOXPNOQPL\NWER]JNSTZXRYQKKRMVSTWOLVRUOKONVPSRQPYR[PVKXSNGXRTRP[XWWXJDPWR_MTkOZQLYWQYHJ[WOPQQNTURR[T\V^WSRPLPpKSSTMUSSPNXTfSPTWLEM]JWLS[SL_`OPPTNWSGHRZWPWLOST[cQWSPRCURLKOWQRIWNQCISVVQQXLRZJNZJSKLUJOZHMUPNXPVQVQ;GaMMOOHUqMR]KCdM]YKTPW]DXRIQYSL`UNVNMFUgR\VRTDPTPMIUfQPORRVSOMYLQMNXWN[MPQQBS[UCO[KS`MRXPXRR`UILRZNQSOYU]OVPYIVLFJ\RIKPKfQOQQXUKVTPRPURSSlKQSRRIQVRRIPVWLQ[ZPTKJQRYKRRHTXROTPNZROKYONT\TTUTSSTVRKTP[SRSXLQPPXOeRVWJW_QPWT\MVNUZXOXTPZQK_^VNEI]PQENUKKURXW\STNJPO`bGNILPQUMPPKSTOOPRSaOPTPNQMLGQHGPQJTJUMVWP^OXGQ_KQTJR?NJPVZWWPORSSLSNXQUHJRYQGVHRHO`[NQRUPJTVWUJPJROYO_SNOP^NPQWXVM[VRSKTUMOWTXh]KXZMONMMPN[GRUM_PPOYGKOHVSMCSKREOWKIJO]MULXOULNOQP^PNKMUUOVSMZXQVZTbXWTFOULXVSPPRSQLHLdNV]TNMUIOOWPQQIQTVRQJTS\VYM\UQIUTVNQWVVQKZRVWMUVjc]OKPTQWPQNRQKSLVPTXVgTQXIYS^YTPMMQaS[BSKNOHXURXZUT[Wc\`IXSPKMN]UKKWPXb_hSZXVU\MYJZGRYLNZLLOWTKTIVOTQSLZTM\`GNX[RbURW_YULNULVPHGNNSO^\NOSPFMMVQSYPVIGLKVMRYjVdUPXPTQ`NTQRWZZWWPOTY`VNNVDWNTTVJOSX]TMPUOXVZSRJdUURWHVS>HUOLPQ[>INMPOPIGRQTNZWNMWTTSHcVN]KTYSUQSbRXKITIHUrUVDVIERWUUQLMNZMQKLUWKUCMNJKQYYQJYAQRUV[JI^TTZRNWUWTLZQNXRTRNOTKPQHa\U[`GTSLNVVWWQSNUYcPZ^]QOSOTLROXc^WYPKeSYXOZJVELIJYbOabPQ\USRRNO^MZLXT`SSL^RURQFLPLHPM[TSYUNMMJ`XMSV\QQPHTPNPUPVVUSZ\UWUPT_QMORkT\V\FWY_QNMVG\NTdVS[YMSX[WUVQVWdRTR\URUOQSSLaVZQUTWM[[WQSSaXVXNSPT]RVIV^RV[JNSPP[KVPSVGUROQWVOZZSSKRUMYz]V]XQNPUZQTNONHUQRNfQRQXUVWZSIRTNVYMSdR_NPZSRRQK[S]QN\VSQRJQSQPXLKM]NYOFG^YOZOURSPVW[MXOTUOO]PKOSV]NYTSORJS\^=VZNGYOQVQSKUVJHTW[ONQYQUPUUUSLYQUTTJUWNSWX[LS_XN[GNRQWPQXTXWOKWYWNTO\LXOVWYMROPURUZXX@YKPSZXVVPLKNRURUTOTYNYQNWEWQMIRPZOXRZ[VYYVKMLSUZSMQZU]NIVQSRZY[\MOQMMXIVSOVQZNUSRKRUXJKVWUUZIb[RMK]RJJ^TZULNVN]WSONR^Y^KXQIXTULMNZUaPYL\VSNVaTTWORUY`ZTOQJPXRPKZRKN\NMVPOYV]NVRMFZXJP^XKJSTQSWPYRLSRFMOPBN?QUZO[N]TW]_YPWPNUQWSNWLRNTW^UGSY^JVUPTWRSXSS\QMKNWR\SUWR\\RQSUSOMPHKHTPNUWP`MSQQa]hJRWSUOROUUWNVPWZTJRU[TR_OTUWYNVOVTPTZKU[TTORRQJIMTPOL\URYNQW]WP^QSSXXNQM]PQSTYS[YTX^LSYSSRULROWOPT[NSNfIUHSbVNS@LIVPLQNXOYFGSML_U^QN^ITM^XSXQPPVMLTPRKXUWXTTVTOG]S_PL\SS[LNOQWU\QVOaLZbMLZOOKMSYSV[JNHOYLXONNMLPWWOEP@[GPTSLMRHSOHUOYVQeHRdIMNMVZ]XMLjP[UPNLOMVXRKIPSbRUJQSMYMfK[GXNWSVUXh`RQWOXWTdPNLNPVTZUNOEX_LJWSQOXWXSIQWT_Qcm_^RNVQOVTUUHUPPNSUXV[PQRSPP[KRK[NndV>LHNVGNGUW]ZZ`SKI=yJIM\MXZDM2TNWOQEYPXTNOUHSP[VJXRSPIWOPVHUOK_WNIUMTXQOOOWQPLBQYRZZTTV\IPQLOOLVYHT`OXNPQMPVMMN\DKYTZQMJ^VHYUZUUJNZPQKTPVSQPWRXYPRUMSOYSUJMVLTYYQJWSU_LZ[STTRNUWPNWOIMWKVXRSTKLUQMWSQPIYVW^NTXQJUP^F`SNM_\OULZNLf]VPOZXNXLcJTQHORPOeHNN\CS[KMMWJ\TPKPLTT`P\WQXZZIRXSTCVZF\ZP[OPVZVRR?RaNPRRLOXEL^V]W^WPJNVMTKNY`MRK\OIQKES^OLSMTLDOJPX^akTKKKQPUTTeNWaROSVWULH_LXZWUT]RHNaRRSN]MWKbPQUVMSPSQOLSSUQUGQGYI^LHUR]`SVOU]S^SORKTRbWZ^VNJSNM]IPTPWSXUJOLMDWW]NSLQQYVTNGSKURSO`VXRRPUKTUVQRULNZVG\NBMZRPdUHTKKOMKSNSMVZT]L\XUNVUXXTQSHYJURQRWUVSVKOUQOWJQQJaPP_KVRTUUXUTNWJ_TLJ^U]MVWSVTSV^PIORIZ_RZYVPNSNTXNQMWUTRPQLUQYITDTJRPTT\YXZQTQNRUJTdNKUH\NZUSQYYQYZUQ[gXBUTp^XV^\RM[QWRMXMQXYNSYTSWQVYMU^QZZ\RP\MQM]TQSVVZUTMLQORRSUU_UaYNPGWWZNPVJ]SXQXZUQKIVITYOTUTQPQMJP\TUULJUIQEUTQJZMTIWPMNQLZaTVT_FNHUOT]RSfGIPK^POPTOCZMRIVTSWEGWcLYOI\MWVU[JbKWTWYRSYRLINEZZZ]TT^M`RJTDZJlW`MQ_LHNUN]UQHQTSLXLMPWbUTWXUOWUPJ[WSV^V]Xi]WWTO\F`[OLX_USODWMQLITYHVUSHKVVRZXUEWRVPVRJ\PIYQSUL`XR\YYKUDXMHPdSV`OS_`I^O\T3@TYJTKNN[NOOSSPcRDRRSYN[L\]UTR`Q\XE^MBQWVWRZUR[bS]ROMVAZ]LC;HRSVRUPI`KdQaGNPSQLLVQ[LPSNTFMPQSMOP[VMSMOURV]FNXXOMOPMSOQSZYNOHSNPFJ\ZUGVbQQWQSNT]L[NP]NP^ORLUN\LVdWKPSPPLUTILTQZJKRS[XINFVRJQW\FbPKNPJOWW[ONXKCYRKQPWLTPYXRQQaOYPUJILK[SW]NTYSQLI]LNYPRUAPMS\STTORJICOLOPTNO[_^W?UVSPVUNTLPUJLNOLTNOO\TTRRM^UQT[VNGZQKNXOTUOROJLKKLXUSP[RSULgSETTNHQY[VQVTS\YOE`RUQONOPYZGMNPLQRTTORYYgQNOK]@Y_VYMRRHQU_OML_Z^UOSJMWPW`QXYQLQVMQYReJZQ\TN\REHRC][KTOHYTM_NLISSNb[FVQIT]PSXPUMPVVY[PVLVTPMOUHN[JCU[fNSWSTVOQLLQdR.JO^PKLF_\RWSLYBRTPRQ[ObUYCMXPVPGPPVSYFFRR\_OSRQRQ[[RSQPYOSVPMTTNLL]_`QMZQISV]ZTYTWSLPH[S]VOPXXLaWPU\TWUSSMTWMRSTPUUTUPOOTWWTAdNRRXGQS^LZRWYFNSOYZMLOSZJHYXWPYTU]QLUZU\^PSWPKUSVRRT_EUSSVTWX\PLHaWVZBPZY`RRKOLQTQSJRUJZMUYRHMT8VXJRTSPQT`SKTT\XLLRIXSUXIYXLPUXMJPTVPJMT_^PWNOOP\QL\UOOVNXLYT\SXSTPQNR]KUOOTU][WTc\KTHMRRX[Z\KN_MSMORN_[WJWV^UQW]YK]ROWQIRgSWWJ][MZVPQUTORLSK`PT^Sd`SYXQPUZ\YPSANRPWTKYIXPH[XURRDJSPYRMO\KSMQKR]UKZSRNWKQ`LNUM[GZSLKaRNJ^^\cTSYNSVQKJ[WVTCWSRM`MM]RXZPW^OOPSTM\LVRZOXWLWVFMXOZHNGMYMNKMQTXSWKQ>VGRJXQOPNUPQV\YSQXKTWOTPJOYYPWMYQQXSJQaX[SORVTeRWTPQGQVO[FaUZETMQXVNO]RPZHMUNK^PcMaYWDNRMVTSMUVXbR\OYIWL_PSTO]RPYVFSEMV`[PVVSTMQOSL_PZDVXX]JRXXG[SJ`\SYX^^QO[MSfQUPPcSPNSQ]HNV]GFMWYShPSYbY^`QQXJNT[s]ST;TINNSTPKLOXSQUVZWF[KT>RXHCRX`HZKWK`b@KWLNTQBbjGM`]aPH\SZSQVTLOW4VYQA>RJTFNWdQWCTMMVYSWOCNOGTYPDLZ[LKKbSWZaMSOTQQUNZTJVlI_AKITVRRXVVOOLnXLREXIMPVGVSGJVJ]VRSFOOUSPQ\SWNULSKXSNLRMLWPLMNENXWJRR[VPZGLTJGRSPXTS[SVTRVVPQYGRWVRVNRIYK\LKLNMR^UNSMRKTQNSSHPR[\SIKMPFHTTYPTUOHPINQVSPGYVWURXZSB\ZUUOTTYVHNVKVMTEV[DVPMFLPJYSTQ[NVWUFXURTSNPPXYYOMVSUTVR`STJR[OaYVOO\WNVWUWaQQKVJW]SOQJYYZ]SNK\SZMUSRWSXXPTKS\LWQUPXYWUYTYLXLTRW[PX^KXTRMWRIPTQTOPQRTONXVPUN_O`NNYTV^YNSTLVPQOUZLPRPGSFVYR[QWNKUYGPTYZTLM\FOgPHUWTRVMFQN]UFJVQSN]QSYX[QRMSUPGORXBYSSKQRNWVMPMYMKWMKGLVLRYNTYZ\OLZNVOXOOVP]U?URNVSNH]PKOTVVNUXNOOWATZNTaNWX]HQTURWWU^PUZYQUSSUQUT^YSSLLQAWEG\QULZRRPA]RXYSMFRPG?^RYXYVOWRZXSt\WPIXLR\LTTVTM\RISbXKMC?ZJUMTTKSUWVTVGNCNRGPL@PXVHYJO]MQUUNTUVUVOAXVZFUYTXVWPKXDOTKVPFXMNPJDFZ\NMVLRGGPJNVR^SSLLQ]LQO\WCIWPQY]M[QV]QNINCL?JLK^aRSSTTRWPUL_RZQUEPCVOS@JePXYUS[RZLSRMWMFbYJSL\\UMKKUMUXlZMLQSVXVGPNLXLPVTVZXWRRUQKTSXZWMQVHQRJoYLMVQRQ]LOZQUQZQTVPM[QOSCTMcQ][RFNMYVANSPWP^SLKLNNRTOSQUNZFF[YS=X^YVPW\^VR`^^QHTPSNS]bZRTGGZZKVKKQWPU[MR^CU\XW[[UXVZUOVQQTHXAaQURLTVcWZSIOP\[JWZLRXSWVOONOVELC[ULSWQXJVMFR]\[\QRHPFPYZB]]SJBM[O`NWSV=CSUUQHTYNWWXYZ[Q^PQHZSgUGMeO[2P?ONHXTXHSIad^^EUUKX`PLJUNRLcQZWXLFNWVDOJ]TDXOTQVMMTXW^BHNVZLZYYWQHNQMJScOPTTRQUWWTXTTVJP^S\EVONYNTJM\PQUbV\KURPYMMSUOPRVUUZ\cT][VPFRKbJ\W[YVJ^@YSS6OGYVHSLNOPN]QO[]RXNNYTSVPNU]P\U[TVYOPZFTNPEXHOY`UWVHVXNVIVPRUTPPPPXXYL\OVOPLNRNGPLaM[SSKYV\Q]GQYPSILZURWQTSLMOLXTPXUN>cNWNN`FSZS_POLLDTISS[]FRQMTVOZPRYSNYOUKT^VWQZ`VQSUJQRVVZSNPXOG[IWTVOUERJIbTOVIONQSIHKJdMTUZSLWMUQNM]VP[LOUPa]LQKP[SG\IIRKLSRQQKO^KQbTPOVZO[MOJPGSHOROZT[]^^RQQURTXMNNS\TRGRaS]PNSS]RQXTWaWTW[RZRZVQMOUVPVMOK[OVQTOPVMUcYVKTUK[KDTMk^OVTKGMQQLNOQVLU_IaZ>hUeTDOIUaGGXNVSWXTNPPSJR^UPRZM^ZSPAMPM[[[NNMWNTM[MLOMOK[V^SOUPKQVPLMHMSPPUOSSPdeZ_GYlWGRWMOKURLQHX]MYhYRMRELQXOW]Q[NaZSM]OTQPUTPTUBQ[Q\R[PMQXN[PQVWUUWUOSYLRVOM_QQ]TUPLVUNXW[RXJQ[QRWVKTXPRV^Gc[TSPLQSSFWTZXRGPSROTNYKWWWQQURQMNUSXWRLRQGXJSNLSYUHU_PMSTROOBVS_KXVTUTSORfMQU^GQPXOPYQVQTRQbXKWOhPOfPSVLo[LKVT]`VOUMROWFVSUP`_RRXSUVMQY\ORQFQJVLS]QUVU^KJS[USA`XbSNWMYQS\P]ZVRWYTNUTVEPZQ][]WULTW[WaPRB\V]Q`OYYMDQFPa^^ORXKXYaRONH[DIUFGQMaLYLNWSRYlcDNDWVMWN^QD`LGLVWPZMSZZTOCKSAWOOX[VSTMVWbWX]PYQPUUPZTVZJUQNRP`MQP]WBIUPOZRAROHLPYTKM[YMdZYOMNQ[MV\MSZJHNQVD\XYNONYRQMTYODOKQO_ORJRQRMXPNLPPUQKS[QNEYKRWSR[ORYS@MIX^GNQ[QNH`FWdUYPQRQWXNNTV`UXSWOPPFTWXWaQTbVVRS[VTPQ\TWTPW]UU_QTX_RUTVLYJ^QLIVZQTRFTWZT]YS^JRUUZbPLOURMVYS^`UVSWVNNHAGZTPNLNPZPQY_PMbTLROYTUYEVOV\QSMGRYMQKSYYCTGUROQUMRMMXWNSVNWMJLROZNONSM^SNAQNQTWYYTMNZN]FRZP]X_UUJ>WN^OKPTOUNWOXLKIVJPZPRGSTOLR]TSHMKYSTTYVMWQHTOIMMVOLKTZUZUPTJSNUZMZTIKUNOQQRPO]JVLVLMRIEQTXOAUSTRXVVQUYMTYSSWSSPUUSXVP]VNIMNbZFQQ[NNHTUPUOTJOLRUPXTSHU\UMSNKUOMRMPLLZROYVWNJ\TRVKS]ZUPSMPVQTNPVbRVWO_QNS]P[RVNOXRURZQORNRUOVRMSTIYePWULSI\JUNKZUQTQVXWSWPWQSVJNUVQPSQXYSMVUQAJUVPSXSP^XOMGUVQGOOTPNOPP_RR`NNSUP>NGTTmQ^YSAU`WRLWYXSZP\YX[NKU[S\RPJIOZZTWIRPJTQXaNMOSMUQ\FJMORQQQXR\EUU^RR]WaYRSVQPI]TQShnXbKWNMVPCEMTIPXMXIU\PdXTRWOSQITLZZK\aNRCOZURSRURJRKNGLMLYRNRUKYWKQGLNPS^IQMQP[xRKS_PPQOVTWLNNPUMSTVUZZI[TMOKaI;WbLTMPPUPIILPPhNOV_KSNGQRZLYK\TJXGQQ[TSJPULQeIILTSQFQTRORXSML\FaS]ZXQfRXISWJRTOZNRXUN\DYPYWILVPGROMPMUVKVGTIIPVRIJKXPUbGPSVL\QUTPXYN\O@URNTTOXQPTQWVT@\UTXNPU]TVO[PXSSo[UJZNKi_VQPJTXTWTISRXWMRQT\SQSP[SRSaLIbVOKSVV]YNUOUXZRZ[OQUX^SK[RQO\[LRWSXOQOK[RMTNQ]MNVVNYSSTOVRLDLVTRPQMYSSSTK[YM_SPPW_UR\VRVRJYSOHPN_^ITDVSW\NU^YMUX^T[]JWPGS>RYWQTYOQ\]IFXcURKPVTRTKULONOZWPNUWLITLUQ[QYYiOSVSRG[VKUUNXQTLPUOPG[NILXRXOTRMLVVRRXMMWXFUPOaQUWLVGJR\TNWINSSJ\LKVWOT`\LbDYLOHOFONSSZeWURQ`RTUXQWHU_WXOVUbOWOGINbLZTPSYKYPOGIPWWXOTMVPPVTQPZWS\DNUQLPJWOSJTMVUSSU\QKTUPINMUMLNXSNPYQZXVPXXRDZTNLLNWJQSLMTMQTPRX\NVQX]XZCITMPQ^JUH]YYOQYLeFT]IBZ=]MUVFIXPTRNeP=bQIS/QWIPVYONKUSObN]aQR\^KOQNZ`OCZPQVESKPRQOMWQJNRTR]SLR^SUQMRPGPOFXRLNVLMURXVXVZOWX\NNPISVRUQQZOVRJLWRSGTTKTUJPcSNOTTZMPNUPYMWPNUNLVMYPQOR[EUOHQJZLORUTKMZMVISWYXaLOUYKQKNVSNSLQDUREPLPROOObXMcLY^RYNEORSJZXWTVQOSUTWMSSGLI[OPJPNUVOJOGQR\UMIOUB^W^VQOTTPZOKdKLVKNTROVSaZIhJO>WVSRTLNOTTPLUHPTYIYGQK`TOOAXKTM[OSYNKWNRTJFUWGVINMPLIXPPLXNUYVTRPIKYZc\WUOZISGLNRRRM]jJ_Q[MJIQVUZKWTZO\\ZKUOL_NHOTDPWRRVNEOK`IUVTKTQMYRTb]RYQUH_XcTMYZW_PCURRSNOWPWOOPKXMVO`JWcVKHSKNSKGSRMSQUQQNRWUTOMNXOUQWCQFRPQSI[XPWL`PIpQQDVJ[PVPBUR_TUM^OWLNZSX`U`IDQNJVURUTPQUIYSWIIIYKZVOQJQXHRVPBPVSINMNOVGOHPGVVVSJSS]PKXVTZTUVPTYQ[KPGSSRORROOUXTMUP^`MTQUXJX[FdET_ZZTfKpWROJKC^YHQILH_U[YcUIFUO[^KMUVNTHTVoPe]SRRRMP^OOKLIYHQVWOLQQ]WVYOU\IPNTSWWYYSbJGQSVOHUMRQJPJWX_MJOU]TWU[LUPW]^TUQbSQZOYTNPVPTVWUWURWW[PRNLSYQVYATVNNPSJTNOUQUSUPLcPQQONLVOTUYMLIMOUSMRUXLZSLZTWSMUN_JXRJX[SHPVHFMPKS\MSTPNTGYVXYZLO]QS]FGTQWQKOTYZNSVRJV^QTZTQWUVUVRPQTLRVVYQPLQ[L^RVWGGY\QZUWVXT[LNQXUQYMWN[QPL]HFYMTSIOOMQQSIRPUUJLLM\RTJNQULZQQZTOV]QL\VLPRKTWPXXOONQU]U^FVR[OPNZESYKPZPQRJdGMKVAXTJUTTEYMWTXTSAZMNTQRZGbKPQPLZUUUPQNHXUWJNBQTVMTHI\JQUMNNHUTYPJONQHR\TUVZMULcX]NFRT\UMU]\RMOWXTTWRPLNSUOOQH>RVNLR^HPRSXMMUTFTeI^XSQO[EFVJTYKPK\GKMSUSJOSOF[[_NXYcQdSbLR^QJdYWQZN]@HL\QYROWVNXSMSUSO[^SLHRMHMO\XWWVQTTHM\NMMMVMXMOPOQOJB8_ORM]LWbQUVNJ[MGSIGMRVORQ]WOYULPNPXRQA[Q[D\N@\TK|]Z_NPIIMVRTRlNVITU^WNTRIXVdQSSLUQMYXQZQ]NQN_NXMOTMTX[RWRPP`hUUWVWISVEVYMPSVGPZU_PHUOTLPQNNPXSVTQPIPOIQI\RMMUIWMTJNRQcRPPLXWVRVXSTVNTXPQYOXVSJHO]cFRX[TSTP[QNUUORRTXOSWTRJRWXIVVX[SbTONSXXP?GBZFPSUW^PYPLSQOMLSKPaMNVUNQPQP`][OWY`TQWSPOROQUMbZRNWOR`PQ^OTZJSOX[UVMHQNYVVVUOPOSZP\RQMTNKSQPT[SPNJXZOPe[SQSMNMPPZQOTHM_[WSCUTVWBWYKTNLPKQQSIRRRXQVMMSTHOTUMPYM[LQXQRVPPYEWULSMKUV`PVNQNKCXQGKOVLVQMQPXQMPsUXUQJPTWSSKRVPQSQ[[LNMUPOURQ`XSR[WWTVT^TU`PYRPMTSDUYSZZVQQRTP[TIJS@VS?VN^QXFQZeKUUNYJ[LVNbOQTGYTTZTWUTPaNQLUMFERKNcOHeS`STLbYRJUU`MIQTXTVQVTPDXNLPOJAFUTPL`ZOQST[OTOYYTORTQP\RSNGSIEUSWFSVRQSHQVWCVT[VSJJXMLdKMNPUMXKWRXUB\`ZQXER^AMO_ZXDGNKMTHZXLYHXMRHUQQOUcTUTLQW`UKKLGQMMQaLXCTWS\YUU[LK_UO\VI]XRMV_XSYUYNLX]PXJKPQNXVOPNNBVNRYK^VUBPQN\LWZZRZ]ZV[`NUSSeSXWZUJ[PIYKHLR\YY\QXRQJXYKZWIUO_K\SKXBU[TZa\bP\RPZXQSSFGHYXMLPPTWUVQ^UYXRTJXZYSOLHVZTUTJQS>[T]TSMZYUQRTPDNPSQPTPXdXYRQSLWVZUYRKOTWV=NSTYPQVQMYLBAU]TWZOISVLQ_SPJMZP][TUTWSSPaL[MVMLOPKUZ\SXIP_R]L\MQKSVTSM[Va]jLTZNWP]RSRYRKXOXQINNS^]KVHXOVDdPTLHASLSXVWSW[KVPUORNERaNNMSCKJJTRV`VVTRWIIWLUUWOKI^VJbVYSW[PL9XNSYNT]UWQPUYTSVUNZbINPXSP[QgNXYGONHUWKYIYMKUNLIWPVRWOUVQVZRTRVHX]^UYTSPSTYFRRVUaIRPQXQSOVSNOXOX[IaPPOVMQ[JQQS^NS_VQPVUSRVSUWUVKVZUWTLTPZcS\QPWTKVU[VhHIVOXEIOETQUPRXZTRQO\PN@XVSZVRKWZXXZTF`VSUMT_XYROMQTQSVNXOPGHN\[c[QLR\XKEV^UKTT\`ULaZZiXLMUV^POU[OY5QX]RJS`VMcSTRLP[YSIVJ_OVSYeKOKMMWYOMR`OQLSKWMVTNZiYXBI`GS_PUKfWGNOTMWLQQ=WV]RRN]LPOMKRNP[ZSEPZ^aXMRDWKIVULXMUPPJYZYLJMWTYDNUOEUQOVRJVJi]XQRVLPVPRVWJ\T_ZJSWV]UOSTZSCXVcLTPTS[SROQJXVWLLSRRJVKUUHZTWXOcZLUUYO^SOFTZQWB`URVMTbNUO`WSLOONSPWV\Q^TWUKXNRQUR^_LZUQRSRKN\XSIQYPMYRSZU^ZUROYOXW\QPEUKJBcELJa[VOaTEUHGXIJEGWOXWZWPSNU[K=UUST`D:JUWAQPQ_[bFX\NRIcMZO[YMXLXQYPI^[]WHLQUUNPVRRSRUVS^J[FVdYOMXNR]f[XLZNNVEPJKKP\SUR^QROGSPKKILLZTUUUQMUVQSUUPPZWPL[NMQLSWQZPQ^WLK^SJPMTRNI\XPOO[UXXXYTPKOLOWSLUKOOWUKXK\SZJYPV]RMQSRXTNMV[RQHZXSLNSPOSQOVYLMUPSXKOOSYNUUU\PXRG\JNNIUUNVPJYQLCWV]PUVSVV[YSCVNUUJGNJ_NTORN[R\NHTZWUN[UOERMHRRXT?`VO`HLWO[WHUXOKSHAXWSHEWJCIGQWONUS?MRSFPIISSQOCXTRSE^QR^JLXUYSEGQYZWYOaWRSNIRPXSQ[MSNZQQOZCRN^ZRTWWIEX`R5WROWVLTWQNQQRQRNXVQGBHMU]NTILRIMPU^VNDTVVQUEHYTYSYYKVVHeRN[IQXLNOTYbQRPDOQYML\QOTYQQ6TQZQEIAYMGRQYVOLSJTLUS_TRNGYVTFROR^NBUZ?N]ZJM]HTVYMJWIaQRSZNO]KMV]KS]\\PNKYRP^RMYMXYI[V\YW]XSJSUIPONVTMLU_QGO[\U_RQ[;CNSOJW]SUHTURgORRW[YSRO[NVUKTQNT\WYXUWPSTXPLSRWSSVQXMJISIjQUTNSS\KSRcTPN[PLSMYT[STYNNWYSUQLSSVLJXQVZZ__J_LXKMTQXVNVVRYWLWUMMLWMMSUURYTT`QUHRKVWTQQNNMWZOYOSTL?UXITRaVQPRYabRRKKGKTQZN4S_ZWVPMPZOCQWFNQ[PSXONK@ZSXSR;g^QKQQWJJSZOK`OL;KOGMOMP`POROKOMPOI]IcUBX]UEKJV]dMOOZTYSTSUSKVS[KWJGQOQS_YBSQZNXILPGRQRXRYHRVSIXNTWM`S[OOSQTQPOOPPHUMQVTYVUOU\Q[YNSRNSSKBKWQPLR\URTNH`ZRR[LEWZZQYILONQRRYKPUQSMRONRYQZPW_WTKLXPLHUOPNLNORLZORLUIS_]OOXUUNSNHRR^UYTPISPGRRYYZXOZVMMLNMRUMWHdXTHRZZPTWBF\RVPOW]UJ^OQX_QUTWRYMLUaPS]JITKKTgNKSOS^VLKGIQKTINPJZHSRSRQWTPUfNIVNQQ[SNKYVOTTRPRMKTDXIMSQKONQO_NSOQJSLNSKNRR_ZXOWRTN\G\SI>[PETVLMVIgLZdSHS[P`aI[QTJRMT^S^KTNEKOZUN]OEbGGIPRPEHWAWUJIXVMQQSJTGVNJVdVXLWTMYQRUKYR[YTQRHXZXRULXMPKPSEGZVYQ^aTTJITZPOO]GKTUNUPRARQ[XYSQQSIZKFOMMSYF\RETVXUUSU]VTYWHIZIbTRVVLQMKNLXGKZAUVTIGPSTXJRMQP_VPQFY]SNPYJLNRWWXLRX[vNZOZFKDUWORNSKTYLQZSGRJYLLXbXPDRG@RNROJZPP[PKLRMRTZTXEUaRURRM`L[ZWXQSLPYMSZOUMWYVZNUZJRTSYOYNNXV\UOXPPLSW\KXB[PMM]\UTWQTVJXGSYNPOSMJWVQQTISMQLOQKXFVWUJLTWM^KVWNRYSRXSJRXQWRQ9M_QOLVR\ZTWRJL+OTTZTRYQSXY?VSVVTJTLIUKQUTGTPUUNfQSTQORUNTTVSYZSSYQPSSOSVTVOMXUKVZNXNNOQN`OOUO_MPcRYZXOLKHESXQ]T^LLRTLXSTQNQOTF4KMdUUZPQHURU^SLTV[IQNgLPRE\JWRmSQIKWNbPLT$TQRN]\\_XKNONRSSTTQNQYThNQIKJ]SVTPMRRNLJTQ^OI]R]Z]YO[WPZMRRNHGSJN[[HRiPWJXMUPFPUSSEGOLPV=[LPPYBW`PNPOQXHRPY=LM?VLVKCLSZNUUT[PSPG`PDPMOW]PKX>ST]LVBLKWLQLLV`ID;KJWI\QVVVN@[PMVMUJUMPQOGOZJPQGVTJWFSTKSMSTCRRRWVRCMXROPIUBOTMWVNWSLP[PRZYWRFMXP[GWROO_M\WWVSKQTWPZTSOVPQMRQPQNOPLSUUNRB^SULRYXNRLNKUSVNTKXWZOWQT[FHTXP=QRPPOJX[VLIMPRQYZPTHWXVRMRKMT\QTOUSOQSP^RPOVNPROZXTNOYUFUOVNWQTOLSRPMTKUBKDPMEHIB_>X@RACBDBbFWKKQUDEVUONNMJKQGESKWOSWQCMBGEM\PVOF7AGTR>ZUODMC;VJ\VOSFQJIHEXRFTAFYPMORNMN?HMU,ZCQH_Q2KASQVGXL?LEZXGMJAXMREMIVMDHEGPLFHRGOLV@HTLENEFI8FcSOaO]TTPRLQLUTVVP`STTNPbRQLO[TUGP[WPSVRWPQTPXcNQNMYS_DQJaQNZRTWTPQ\PSSVOQWMIWUMQUOW[SDPUZ_OMZNMHWQLNYN]ZV\TVUSFOOaUSS^VOGJ]PYHTLLLQVQXXUV[US_UHHRKYVSSNRX\MPQQSVVaPRXUQPSFUTJXZSXTLTUNSTXYYHIPOSMS_YYT[UOOTPYSWPTGXMONWPWdQNVUGU[RWVR[N[RZSJISVTP\[YXLLKPQLYNURUObMPNTYOPVS]PNOSQN\N[SMHSLL]\]JVTIVXOSSUULQPQJNMKULRVRVQTKVQWNRFXUTSaCXNMMWaAW^S`>EOJ`UUMXdWY^KR[ULWWEOYRNWMQQPNHOO^N:OXIHOFWV[QIJRGU?NZDMPW`SZ\ZKULOYXNQHXZONQ_SQTFP_@KOKPUGaLXKUQQZPUWVTUVTOTXWRFVUTMh][S\\M[KTQ]RSWNKVTZ[YUXMPLURGWEZ`RL]MaICPW]MXTVDIS^^W]LRSW_VYdUPQPMPN]PQTUUXJOMWGO]V\QPNSXYQQNMTNIHROV[TYbMRQKUOZiXXDQ\QVLWWYNYb\TR[[HYR\WJcOSSYTYQSV]JG3RRNUNUCZ\X\ZX[VUBWQMSRMTYWFQNaOOOeAXMEOWV^TTZIBRdMQJSGSPRJQNWO\LU\JaBO\_XMZU\TVI_PJYMYYRNSMQN?^YZN_WSNbQPTRKI]VR[ULX\PQUWOG[TROLZSUQUhRMS^PMVGcCMDIdTKTTMIUHHUQVK\SFOBPSF_RFPLPULT\OVZFLSKHIF_IW^IHBSEO@8OF@[PSSURHYgQHSYUMIWJGPRQOU]P[^BE[T@XIjMMMZTFT\aV:JST]oM@VK?VM]\EU`XTO?SQVY=JUQS\SP\QM@BOIT*VSGJKPC]KKMaKST\SOO\YBIPGVRGMKLJGVUWHkT@FOM]]HXYPQ_ZbLQGf\YP[VP][YFIQ>CbGXOZ^?M^IDRQ]JRSJ>WR]GQY\DMGZGEV\GT[OBPVEdMGKKSRRMKFcQSNMHUPWES\L^GL?VVUbfHW[ZWeT\YfI=S2IZKTXNTTMOdOQdTNZYVL\QVQMNSLQJQUNY]PUKXVSNOSKRHPbTSNVIIKMVMUUE_HNPJJZbVPMPXPRPROXSQTUTQSbNETd\WRPPXQZWOIIVUNLI_VPWSPPEV[ONPDYTYOROUfOQTILRYgZRJHINVQGQT`VMSY_QLTOJUP?LEVYNR[LUUPPXSE]]ZUJI[TWHS\PVRON`_X[VTRWMNQVWOHFeeSTPV[\YSJ\OsDWZIQcTLOQU[ST\OQVSYVSQKQcKRROUNSMYUSTSW\YM?UDLEUO]RQZ[NWQQYFLPVVPZV]TVVP\GTYMNNHWWgW_\LXHOWTMO\PLX`RU[XNP\CNIHYKTTFL]XNWKRZU[MXUHPTDTSRIHVGWYOVOR>VUKX=HOcKAI[RMRWQ[OPRBNMCOWMJJYgXMe]OYXTOOTWaXfMZRcSOQT\]NTY]]WPXNTKPXMYRMLQRXOOMVYOSRNPUARR[MVTOFZLUJOXRKZYWO]ZcaLQ^Q_R]LRZKMOZbYU`[ULTBRPXN]SCVIV]KLTPYb[ZVS\RFMTOLZAZOSTPQ]_^ZIWRXXYN\PVWIMQ\[N[YYRWJTYTgWTJPS_\XUIWTXXX\JTQL`XNM^TWPXPMKQ]V\ZWN[UWXSUWNV`^PWN/RVQOTYW^MUX_VNLO]TTYVX^OL[PVUJLWT[WVYWS?PVUISSX_LZKZIXOYNW?PRWPaUYbFY?YFSMIZWL]WDNLOTJZdGO^PWZQXFQQLJQZJMRQ_OP`XOZPU^P@KRRTII`\TBITY>TXRMTESVR^HE`PPJVVbP\UNKYM[QMZQQ?QEYUP_KYW_LgYJ[RAmbD_aMHTLQQWaOPROSL\WZKQDeHNXTLVSBERQMMMWPR[SXLPGIQAbHS=QL\NTTUJQ^Ha[VKWaRYMZLRYTPXVkVYRTNLVXYMDQTN`f[P^RGQRTOUT[LiVHON]PZTHVWUVTZQQd_QQOOXUdJDVAUM;UOSLNGKYJHRVJH]SQSMNW\JKRSJVWLLZTJOTHHDQOYPOXLSTSRQAWWQEMWOWRDS>P_`\UZNVUQTaNYRMZISVMLTDO^\XNQSRHJOEXITP[QLcTPdWQHLNObQOQQSOJMOW`ROVJTWMVTFMCXOR[MHmTH`R_Xl\PMYSZGMQPTNSNOMKVRSPVTSSK^POQ^XWPSQVVCQR\]UZSYOWeQ\RQT_NiOZTUa[UUU[V[SKb`QZHN[SDKPPXNKHHWPKeQQFRXW`NKUXLPY_QbMJUJZHSOUR_^IRWV[WVTJQTWfNQZWKVHGOQTNMVPZNPVYfWNIL[PVYVFGLOFLUbUSU`WPIUTONTGV\[]PPKSQVJTXMSQZVQMX_]RQT_GgLTN\KRS[OM\LHQR][TLd[PGdQYTNQY\TTSZWMIUJLW]RLT`C^UOTW^T[VLT]QITTMDPORmZ^WX_SWTWTXJNJSOLSRIJJSS?YVNSL[JbY@X?PUPTVK`PORXPVTQSOOTUNURJXTWYRORRKLOQQWXYTXRH\PPRXTHZQKNVLWV]SiWMMN\XRWXVUS^OTODR`SSPYSWQ]CUVP8OQTaXTRZYSXSW[XT^XZPRN^NVPPWYXTFS_OZRNUPQ^VXTRX]PRHQeSLXVZVPOR\SRQUQNQVSOHTTUCLN\COQU[W^YT]ORPZbN]QLLORXWPN\WTVQOWKWU`HYRQKWSNFKKV`SPOHS^UZLSXOVUIMPQNUIQTMTJPRXUSTUPXNMDHFTVDMQc^DWNI^JXR^J`POYOYXSU]IQVJ]SQTS`YW[SPVXPsVVTMYTOPTQFUQUQTKNQHNTYPRVXXZQMXLWKNYFV\ZLERKYY>MPYR`T`WTNLaQURZKYSNIUMJSHVaZFDbNGrN[YSM@WOTOSPQRRRNR\QGIcVZ?_FURU[dXZUZZWFPUJDV]ZCFQVRIUO=STRGH=QXL[OPHZMOOPJW[VR\[VNNHZNHRUSVUOHOcRSlYWOLQQVYSOV_[MUTLWVHV_Mb[TTOQWRMTTTRRLVUMSOXTZSaYOMXMRvUKMNMTWUR[RSHHXHMIVUZI^LMPaJXOaNaTFULQ@VNLMCNSIMEM_SXHROYIUZKQQNVXGYVVNRULPXKOR[L\VPQCaDSS]VPTVNM\IQC[QLZMSJNRPVP[[QQIOTITYRe[WXOUSTXITRFNJOKEQIYWKSWRYXBPPKaKIZRTSZJUWLMRSVJPSASRNQ^U;UGNSRKH]ARVTXQO[KLYNaUXWYTM:sVSJDTQQYNE[DTRQOSKPTZOTRVHLUVZTJLLZJNTPON_WEURSNRYQN[RRQEOXYNLNTTM]QTXK^RRLQM[RUINRNNTRVSKMQ_iTPP]OK[KSMSNPOLKJKkPZSVOUPTUWKLPTR^MgTYNTUSQSIWT\\YXNSRQSLZVSQWTBeM=L\N`NWXVQKSRPHSLOPYNJJLUKLLKNMHRLU_TZWWTHYIYUSV[MPUSSRZTRWZVSJRUOLcNPOLYVW[kYNZ_[VROQYRSTXRQKRTIIPRWQUTXVMOIPNHQZYUQJK]VMcRWIY?MhY\[QPRZRMQUQVUOVSSdPOQOTEUHINLXLOSJQUIQQVLWQNJK_VVOKOQSQASV]L]aXNYSSQPUUYXOUSIeWN^Z\Y^^QEWMD[UUSTUVTHJR[V[LRYPWSXW^UPSTNSVPPL[QRS`WXLKNQUPO\RRQ[TKQ\OXQXSSXQNU[NPPWTTSWIThNOVcOOFVPUJJRQPEDP@NgjS[ZKQJMMWEIIGPMYHOTS[NZUUTTPNNVHNOSQcQLLPTJWONQSXWJsd^KUQRNUU^QOHNQKYUNQLQEJrOQUJLNLSMOSPVSW[?O_UQKPVtPUN_P[RJLBMPKELXST_[D]I\COjLXUJROIIZPOT\NN?EN\ObXOX[PTVQYY\XJKXGjLJLVPQUGLHXHKIQQHQYFVE]ZWQKNLUN]VQaRXQNaLSQScV^NFXLOOZWPVU^LNKER\IYRKYWSVZYTSUJRTTGSOZYTISV[T`TTW[ZJZAMNLWRXUM[MTTO[ZVV]TMOeTZRVGYRYGZVZeH]SYVTSQ\TPMOOMUTMhZYTHPTVOaY\p]SRUTYRPQQWIXOUSYLR_DLTKSJNK]OPOT^RN_XFQVOShLXPKVVRVK^RY`KYSTILSMRYIUPFXUUWMF[QMZVVMJJNUVKKJRYQMYIK\IUQSDOeYY]PYNIJNTN^XQVWQMSRHLOSN^MUQRUYWPU[GWXLUNQR[RL[LQWOLMUVPUONTQfWPWFIKLYY[PXRXQ^MPUKLTIZOYYVZUNSRRPO]XSPSSUOYJQFXLZOQXZR]WT_OXVKcNUWXWOQP[SWT^OLILVGKL^[OTSFNQUZU[\MZYTSYZDZQTL\XL]QMLMSmLNHUOTNUMSNXNNOWP]NOTPKW^SP_iYPR\RYRWaZN^OPOOWXPOYLVSNQXNUIXXKLM[KYWTTPYLZWTRRX[[JWNKoNOQYR<[^NHKPPHJQLKXEHXQMGQK<]>SSRODRBYX\OIPTJR\VVWDIDXLDb[QJQZOSKUOCIYNHXMSYGMTOPUTYPnTVVSUKSORHSOZT_MSPLVZSKQ>IOXTQWRSX]XS[O[YPXWHZ\PKTIKOIYWTOSXaL[_TPXRLTGKI]MUWK`CRTOHNVSQQcT[YBPFZS]RSUVRIUMXRJ]QRM]O]PLSPU]QaMES\JLUeH_O^UP^GKUdYRJVTRQKTMNT]PRPTTVTHQUOgJF@MMQO]WMLJFKBZ[IQWVLNWNX_MHaYMWPMOXPVPORPKRQWUSQJBQNRKPQ[N[XUZQOPOHGPOXQHPMQUXWPfJYQFUVPVTsNIRNSQS?cU[J[[YSRISDNQUMIPSM_aS`VXWCNTSMR_VLRQRNV^ODNGeY[MNTPZSXTKMU[STI_RQQXLIRYDMUETU\STQQUYWPQS^On_iK`NTUNSUAXMKHTRQP\XP^VQQ[eOYISPO?GS_HEQH][QPWWDRZTOL]gAZSQQUUOReI8Z\F`WHQPSNoWQaSWIM^MHVCLYY^DK[TeXMSEYXGVYJWPON][VTNWQOWVNYSTSP]HTXQDRgRRIUM@X>hWSN[VNNTWOZZBQTYRMXUTTO_YXONNcYO\SN]LNNQRTTSV[LKZZYNRQPIY\TWOSWRScNV]PKQUPSZTWVQUQPZWQ[YNQROWXLPLKaVKZ\SLSPVTTSOIYOOWV]LNTTUL^UHW`RYOPZKPLPV`_XKNKJ[YFTbENVNHO^RTMP`XLRHUPHNWdE`OXWRaUMK\JOONT^]FRLTHZRPT^P[RFQVQXPWVXeYMVUOGLUQ_QPR\JNMNVIOPDKVCLTZYNJP6FWMVXN]?^UPSJLWWURGZUX.TOOJYVP^NXbXFPXW\CRIQKNVVNXMUXVXRQXIYRTWNENWlXQVYHSXNeKJWPNVSUQNTPkTSTRQNSW\JUNUQZNUPUXTRLTTSQSVXVRURUTRWPTCQRULUSQPMVSTPWNNNQXUSQOZORWIDGVU_UZOQVMSTVPNM[RROMNMP_UWJSUNTSUVQUSRPLQXV>WRTYUXQ`C_5'RXVURTMWSX[VRQQNRSQKSLMHbP[Z^VO\ECNMHLOORONJLOGfIN?OK^JKbVU\YSXcNQMXSOMUKCSIItZ[ERPOMTYJUWVNJIZYUTHFAAPOd[UCQTV]YT\ZaOLPCWWKYRYEIPeUIVNPU[^ZD^`\OVUYQIcSVPYRUPFPRUTXQMSITXNT`MaNZZNX[LUQR_QPQWPVQONa_\VZMQ_LODTUVIJUVMWX[TWWYbYUO\WNQMUKTNUFLRKPMQV]^JSL^TW\SRHIHOSUSPXIVVONRMNRT]WOT\PRYMTXRZTQYW\YYSUVVW_M]PSVUCPUUOGZSZURKQ_I[_LWRHLUP[cEFSJTKUXSWIPIRUSQOUVMTPRLROERXNVTKUPXVR[ZGQcVXMLXP!KPUNUYOVRSDOYOPXZNMKPRNVMVJ]XTLb]QURLNYKUPYTPUKXJEXMLYSPbPBY XIdSMZQYSaYUPHV`PURPPSJUQLWOKWTYWT\RQNUPPSW\]RRYNXUET`V\NRPZJWXQXPLOS\VLXIVQcTJZT]XXTUSXTWTY[YKURXK\MR\VWaTRX\ZN[SRbUPXNKPZ^U_NVRVVNZQSPQeLVOWSX]SJ\LZHHLSQ_UJVeQXVTNXPGOYQUXWSOP\JS^Q[KTZKMMTMNMTJRTYYMOISXVNNPYUSTRLK\]UTRWZQ<]XMUJN@Q9ZVQEVPZUXQLIRUSUaHU\YMZTROSYRFOWQYPPWLDORQRQLPWSL@PFAHOPPT]QKTQILQMJLGWS_SPLNHZPRORP\YNFcNPZQ@eTRVHV`QTHVOFHVUOVLVVN[MUO]bWFHNIQOUPTS_ORHM\NNNe\^[UUMWQST_M_XO]RUNYTUHPLQVYRU[WWT]LPQBYT%XGSN\XXUWW?J[OWQS[ZY\dLBRWRN]HdXXG[URaRPPYWOQX0CUSOSUWXZVV[VQRVSG\JZTQ]fPBPPNS\KPoYTBRUGL[NWKJWLHN[VVUTKVTYYPYJTSMVOW\TX]abQQLIPL^SVOSWRSHSaYWLmSJY[P^VXU`LWUPJSXcTSZZSXR^^YXZO\Z\_S_QIcmLTVNNNSSS\aR[ZRNZ\|JQM[PYOW[URa]X[R]PWFIXSNWRNRUOJYX\NS]_WI^O`LT`RVUVQKJ[dVSYg>VSQYePPO[WTGQRUS\[MVPKTQSONNTSFMoTRmZ]Z\UMNWU`NOJJQSFW\CZPVWVMVNBiL]^NU^\QL]OB\YNVWOX`QUI\OHPMU^NV[OYSNeGSDO_NMRfX_\YZQZPUR`VRLUDW[JLSWQRLSYLVROKUNXT[JQbPIMLHNULQVW^MOWJeSPUOYSNUVOXSNK[ZTUPKSMXROKSSQ^YKNLNVTTURVSVRPPSSNUPXSWRJJQMP_KWXPUWLNYQULOQLOcORLSKRQNX\PSUCYR[RWQOTQT_KJMPQRN`]RNOPVUXJTTTPWTNWRUR\RXUOMRSM\QG\QVUTTgSNT^E`UVTHMSUNYOPKQTQPRGRXVPW[YPWVPSZVSQU\XGV`YOGOJPRSVPVZMW\]TOZSYNPFRWKWXTQS_QNPWURPU[LSKZI[RSVMKXODUUTRRLSQQZKNVSTZ_NSWNROUUTPRTXGNTSSLTCPWRVUXUMaOUJWSYWRJRPQVWRP^?QRUSRJQJSUNUS@WXOSTGRSMRDSQCOXJZXUF[\RPOMOOPYXNP`[RPYGSKMIRWRZRQYUS?QLWSVTbKZKJJZ[ZMPUMIgPPKUOU_[VWMHRI^WSNIL_dKQUGQN_QPON_TUFOWMPTNP`SaaBPKQRaMQOYXVNHQTQXGRNLRSU\QUSUSXOQQOVMUabMWRVW[RORY^PMOOOYTVYQS]XUONSUWWSWVYRQWTU=VXTIORNKYYOTOSUORYSWTRHOTYRXHBPQ^YYKNUTNVSUJN\TZOUROQbHONK[PRRXVNYOTNTVJQB_UPTXRPUE\10TXYWURRTSYWUTO[STULW_RRLUZVTOSHNQLTJESSOURPWJUdQRTXQORKHLTQWNZHIWTPV[W]M JSRJdLU`SW[NRQROSYULWUXUYS[^MJO\HMT1QTPORPTRORPROM^[Z\RONPKTZ^VQPTOXRYTWRLJaRSUMTTMOPOZTKWM[TbYYWW[[QUJSRPNSQXSTRROGUQCQLBSMSPYNFWQNRRQTOROPVI^UQJbOZI`AHP]QSSLWUQJQPMKRLKRQYSXRKOEY[SKZG\WZPQTLYTOdaLT`nLJ^NKURQPHKOWfTTXVXSWHQM]NZTJQ^\NOL\SVRTQAOJ[aUVROUPRUMWYUURZPCDXY^PMPWTQXW8WU[QTOSOYTP]_LVYWYQU^PWSOHVURKR8VQNKIKYPTTFUSLTS_WOSDRJQVURRVUUXX]E]XS[eUQMSGC`aZOUFIUZJ[aF\[O]c@TSVPLRLMQRTYYE]ScTPdLTP\WRIQYQJOTSIGPRUUQZX_LVUTRSVPVVVHSfLQFPXMT]XeNTOKVTUSQ]D`NOKTYNWQQKPTMNTSPcOZVUQMVPQKVU`LSPPKOLUOGFRLaOUZXKNWKOOP]aOWCXJJGUQBNSXWLLZTUR]OWQOWUSPaVO]POTSLSUNbN[OYQSYQLVJNTQUTKWYOYYRDZDLWUSWTZKRZYUVLQRTJJ\ZALMUQUXMWMSRW]`WIRQVZPW@NTSNRSXV]NOSVM:TKWN[NR\ZOXbQ^TNW[NM]QQOWVTXSSSRORPXRMWMRPWSYU^RQMON]_RLZSSTL[RRVRTKOMLFRVO^QPXCNE+\lRKFIPSPOGJH_OWHEEMFHELRHUJWFLRAFOCIPF@QWOVI3GOMITBGPMbQOCSZL[PH=GTYJXGGCaKKGNPKOJFFRJXRTiORPIOMGMOBMZIMEOYMORILRLMRKKOHNLUNSLoKNMTLeF=IXNORKC^SPRQQPMTVYUV@QQNIKULKTRDUSUJOS_`N]XVEUOZVRIKOaPRIV\I[JMYePT[VIHQeMQNGNRNL_O?[XUXUHENQM^PB[KH]JZPRLWeRjbNPFOVUNI]M^WUSNMUULHWG\SKWJKYQOPYBNQLPKPJ`X^ZNOJQDPJmI_J_LQQ`MKSQMSVXPRU@[T]VWGKQNOXcQXBWGWdOPIBOMUNIMTTcTPPXXHXLTKBNSFWJSRRTJR[VOWN[NVSQSOcXU\LfRURMT\DLQXMYVRWVJWRL]RSU_XVLLRScNMLQHP`]VUQNOTJSLYHRVXQ^^_NRRgY`PeWKUO[\SPKYYNRPOOTLPEO_^UYLVPHLNJLMIM]QMNn^L`bdJfKI`MNP`JMT[PXKYMK]PPNJSD`ULX]XYZSSS^VDKNKQDUUYYWGPLcnRMSMjYE^VKTQJMXRG[SWjSNUbWTY[T^XDKOZNPNRWTTNPL?PH[JLUZTPP_RUJWOOSVITSNWMLSRFUJ[^MaHQKT\GdOVS[URZVVNOM_OSQN\RVZL^NTZYLSS]SaOQNU8;bPNU^IOXCLdLMHVDSLOaSRSHZM]LORYRFUM\ZS@PDXM]OJVJASNWTPSLZVe]H]OYL]^\RWJPRVG`Lb_NDPPTVVXN[TJGPC_WfQQR^M\J\[MZ^XVXYNS\AVPVGTSNKZaKRaoZQXUKYYAJQOHTEONeZUULEJRISURSMWTVTEDI\SWQMKPJMsUY]ZSK_fKRPE^WPTMaPXOaPOHDPML^E@eJFSQSPQYNTKLOPMNUZTZW`TNMTOHZXLLJTPOOLPPXTXROTTWJSVPMRSZXR[`TTUPJKTOROUQVQM\VXZMUTRTPEaMLNVNOJh[ZUW4bSY\SVZO[KRSPPMKVNXRR\aPXZ_FQTgUWZ\Q^Ne^X4SPXWQSXOLJTRSQNTNQYUPOPVJZZTFMWDRTRROUPJOM?C]NONVNR[OXO^RSU_>^XFXMS^UTQ5R>XDKXOK[IF_QNN9VYNO:ONIMMJhVWTMVNLLINT9OUbQDYHKM\WN`OgIL=VFV\EUWf@JdfJTGZJ_QFLCTZUXRKLWB XSDM\T=KSTL^SPQVG_KLCEKKRk>OXZJaPPIUSRWKYKTDKSJXLVORRNKKOSSRQfLOQM]NlTNMLPV[XOUUMRIQIVPLGPOLB^LQSUPNIH\Q[\aSJX^NZRVNYOTYJ[NTUXRSMJSVG^RiSIRJIMMTQPXDNOOHGNHQP`KOIU]aIURRMGSLUOKIR^M\QJWTQ_VOVKHISPWTJAKVIJS][MSSKSMYUOUWOVSPWOZTEV\XEVQ\Q[WVYSYRMTWNIWX-UVOQW[VSOUII\JVN\PTRRP[TPVXS[C\a^UOVX_VLVR_SON-JXLMMcSZZQUUUQFVMJQRUITU]BTP^LW[ZTLOVHWLRSSMSUPNVQWbKSSWZ_RQZ^YKQPWIRMVXNSSM^VK[_G^ML\MJVfXXOKDGKD`XTSS@N[FJKVC8LU?ZTNPOYLRRZGS9?Ra[JG^OUJMNK^YZTeQU`PWeS]WRLP=U?OW\SKLGWSWLJALGINTsRZE[K[SFRF\_LPSCTR`_HPMFXSKQ[C?[VLRTZWPKXbZNFIRJFLISPGFYNOUKYXMXLVPC,IbKYKKJZbXMPZDYFJOHHOSOJEcTRLUGSPNLQM@YXALLKTKMQKULWVRXIKQoMHV:KUZM]I]OT[ZQPLOMLOIUH[MTJPMRJOMR[LG_KFJX[LTLJM_SDVPYPaTOTNENBVNYMILGPDmOFKMS>UJYOTSXRTWH]FJWRN^^NPPRO^OSQKNMEEPYVaTOSRWQSP[MTQ[SMUPSPRT>VOQQ]TSYVPTPWINQSUUUGTML^A\cZVoUTZOOTTOcPUOWYUKQ]RPPW_YTUQLLPQVLRU[QO\IIQPZZVRNLU\ORJNMLPNVYW\WJL\UKLMONWEB_WLXUYPJFPSVQPWBSK[KZJTI?KKNVH`_GS\NGBXEXUHPPTP^VHONMT\?IGJOG_]\KSKPF``QXZQY_OXeUMKEUY\KHK[VWOSLHVZTHZS_SRG_NSPWTRX>X\JVS^MMTYGWSRRLNISQS]PROIQQRGONPUAUlXPUNORO]ZX^VPTQDGSV]BRGFNSMPFTWIN^OTP=N`SQdYVGORZZD_TTVMD]OIRXWGN^JOQQVN\U]PUEbWN[WKFEOPPNSZPGW7SHPLHWKSZRYMULLUVIUOIXB[UMX]YJVOMLNPRIO:LTSPYMKLS_WVXIQMU_E_IXMKOLOJO[gPZ[QOLPUZTgNVXQYTXTG[PMPNHYNUMR]PVW[PL_SXI\VXJPGZZSVWNSOCVJZTX>SNCP_UKTZSMZ]SQQXXTVUMWISPZRAQ;bTUYSIKMVdZI_RJN@\YZ[PLR9CXM\M>UM[L[[LVMYYQJaOQPU[GPPYYKPQKHNSXVNMhU_WKUPWR[KWSOUPZUVXIPJMiKWZTbVXZZOF[AXG{XUXSRQNOVKMUMORPPMRMVTJKPLI[ZK&VXYUUYJkQV_VONNNJRONDRW[RKKVN]ZSKWUZWQTUTLRWZVRJQ@ITSLUi[NGOXXXQFW\LNMTG_INWLXRJRWQNKLMaTMPPVKXaECXKQYbaPPSQFQP[WL[NLWP_RNCUSZSRMGPT^RLUDTOKV^bTfLHDKMOQYLTWX_WJIWRFPZFK[[RG[QVOVS^WORSRZ\XTRROXUH^SUNXPTIH[]VPOWWL^^MYV\MTNYVROIRSZLTW]HR^MSLKNWTGM\P[RVMWbJR`^QPKS[Q`GPcULYQ[_Z`KKR`UWUNUJ]ZZ_NSMSNQMZPVNSSUOSfVTHKPNRfNPMRVJNa]MLQZMKWXJYM@[AAHSTNNRLYPcFIPWXLXQWOVF[KjK[V`HEEKFJ\VIWRMSPXSXPWM_DGI]YNINDTGQRNU\RBVKZLXMIaLWMW]aWVUQDYO\_UZOPXWRXRKQ\MIU][P`P^aPJXTTPOLPXBTJFCQBTPNKL$YTSRQT`MTVK>GP]QW`WMVP\m_YJ?NPQFRHS]SMXCWWLIPSMORbDUOQ]cX[SM_]UZMSYNV(^XOWVGWULIQ\YJPTUVXAZNPUYi[OYHgSGcN[N\RUZdOLZK]HMLRN[\IYTRNXaUOV`TKNPKXQRNNOM]MNXKNN]UUNPQRLPZNKUUUHXNVWTOTJSJYQJ\JJRQDRDGNVaVWLPQLFPRS]LVLPUMOYORQNXEKRLMJOTDMN[hFMYQ?SUMQLWEPH`OS^WjPJJLNZWKLOp_WPVlQKMLJVSVL[[UQIMNRNIPSZId`JHE@QZX]OK:QKTTLKTVMQBLDLTKVR^[[XJfP?OTVFNC[JTHHLMQRJTWIMcIwQGVROPNKEGSGVU@;NJMJC;OEXTZLKWHGKINE@EYJOP@J]HQFMRwCJXJBC]NMCXJ;[]J@]CMISZLJISGVEFNKEDUPVMNOvQIQOJTHKEJOPTISPIAHJGLFIRLIVHBQXFKMGhUYRQNNRWV\QVVOMSLOJJBMOMNFOOMQQVSVKSTLGOPSVSRUWQYLTJVLXWMQS\WGKZITWPOYQRPOUSHUTQI[TMKrPP_BXV]SXPMPPHZZLKSQNWSTSQPQkRWXTOOSW\NUPVPWKWUUXQNOPQSTWWTYQQPKTWUJWDUQWUSNNLMROURTNPLVXWZTNUQTVMGUXR]NUKRUNVUVPQLPVVMNMPN]VVJSWOOTRURWWSSVNS]OWNM[NZPVfNJITRYOS]TWSTTbOUTUKFVSYXVRVOWLL;eMVRTXRSPXUYNOPQTUUNSOU^WRPMRUWUUUNWTQRS[@VQQZKPNOYTTXRPVPQSRZOSMSUXQUJiQO[WOMNWOOSZKNQUVZKUPVPcISNS^QLTXWL\MURYVJTFcSQTTROPC[02Q[WPTMYTQSWYTRbRNRNIVKJM;NTNNJqRWKVNDJHQ_WKPVMZVSPGYKQVP@NPIFKMSKWMUIHWFWTGIQI@QR[KJO_CTISPhJQJER_P[YVO/RTQKB\MTIYFVOKOO]IJMXOSOMjNKVWSRHVKOMNKNNUTJrQLGMLYLKPWQQUIVWMTMQKSQNQ]DEKaRWPQOVWMVTSPVWh^wHOLOSN\ZT]XVZS_UKLTVIOOWR@RGFWPLRXXMLRQS^YXNVPKNKVXKGSNM[IIXYJWGGLLSWNQY[XHQMRXPUTWNOIEGKJDTR[]PLVSSMBXEUOLCU[LSMJbJQLJ]RPRSHNHSXYgXPJUTTXYE]ORLGiU]MiUc]XWSQHRXPXQOEKKLORS[PHHM`IZWDTPXKIQjUETPKEaINGPLPTH\MKSVRDQcJNYWRNUfNMQUSTEU]NYJXNTc[[W[KOQPIEML]V]hNSKUPNHLg[X]UXIhXPTPY[JYWZNRLX\RVJGdMIa_OM\EU`O_[NVGVRQSVLLPQRWKIKOXYN\^L[NPUUKOB8QNUWHQbPY_IV\VERXWLAEXUWdKPVBY]Y_[SPUWVQPMYSSNXVY>[VLSSQNTRRFMKTMYNVRW[PYP]AaNQUKTQYULW^RRL]LORKUOMY]RPF[LJXQ]RXLLRVOSZFS[LKSURXY`RSSGYT[LXPVY[NTRURYP[dVcSPNWHMQOVLVTUM]QWYZRMZRG]MUPRaTST`\RWVJXMQSWab^Y^^ZOOGVLYVLSQHOWJTNVQO\LGM`QI]YLR[]\SSQQVLISKiOQFJRPIMGNOZVKN]RJ[ZOUKVSXNNeW`YME]UQIJVQ\JPaLRMUA=JZeSRAjBOVFPJ]QKLTTLLJLG_VXOPZWLZXScPGLIXGXNOYRWBOQGODLVWLAL[NNoP?VPUVRKOJEPVM\QQLPKJHQP[XHGZ;VeLIJ[KTSXP[MEWTPOQU[WKKUWMLQZNUQVIPTWbLPcQXSNWYLO]MAFLW[ETKCVPLMKIMUeSGH[OWSMOWCGPRcVOOSJYT\VIUSXMXTKNXRKUWQOMSOJRMQQnTUJZTBXTTLUKUXMRP_PjP\LRIS\P]XT\JJSTKcSORRSRP[LSSZYZXLRHd@VaPKV[VYNUSZKRHXRV\STXO[EcUPL[WcMOUP\KRUXVOLRXXPVX^WSPL^PHY`WZNJNXKILST\NRORJZOTYZXQ^JLJeQNSXP_SSTZ[TVMROTJQFPQWKGRY`UPKRSXZLSSRZZSWFWKX]NWMVTSWOWIRT`SSXURNNLMOMOTSKPZOVU]LhLIPUUROIXHNJJURFKPTPPPXSZLYPR[^TOUWMKVLN]RUFTVC[KPWOKPLRYbYORHNPJZHSYxQYS`USSULLSRSQfSJNRYJcSPOSV`P\VK_GH[TXQYVTWhSVHVVORUXNQQKQOST`[OISZ_VLVIKQOIhG]TRRPJGVRYRSILUQDYMXPX[\MSPSIPh[\NP_NSZTUHOOUJLSR^bPXQVQFQKUbOaMI@ZJXQPVJ,fSZMUQ`kUSeYSYJWPRYMkPTYKLKES\RSWViRIHGKUYXX`C^YOD`IW[NYKNXXX[\YNQJVHRMaKTPXLTSRVPRMRISdOT^TTFPP[MVXOXPbkZTRUYLXG[TUHOTV`NOU]@PV\P]UPJVUJXOTWZTYSRXP^TMRQVUNMSW>VHUM YRLJTRUWPVURVITXOLKPMRcPWROYVQOTZVQXQHWSVVU]SQZRRKZRLLTUXMMNSYX[OXQXPNPJMWUSdTKVO[SPYRHUS?VJ[PWN@`XMNbIYSMYZQWNTQLLRPOZS]SUXGOPSOZaUIWVR?MYXWXNWSPN>PNVXRhQ]NQLYTMS\ORYFPHTRX\T^W\MMJ\VKPTLXTRHSYW\VMZQKWQQZ\\KTPXZTSQUSeOdRqYG_DPYQHXQYKIQ?KSIPP5G[PZPHLKPcYJQOK]MYRKWPQTL=QOMJERSNWNONOWCLQDPUP>HXYJNO`@VKSRiM[OPP[TZURUvMNQP3YNMNYMOSGPNfOATURTQSmTGQQRVJPQINQQKL[VLoSOHKRSHPSUKWUKYRQRNPLVJKTUDJT[ZWIQTLSSUPQBMPYTTQcMbTKE[NU\OZPFQSXX^SKQMOaGSXQgOYWPOVYAUB*KSXQUPMNOLJUQQJUKQVVV[PLUQHS_KzV\QYSPMjRUOPRIGPPSUKLVTXPKDSQ]SWMYSUNRT^SMRZ[VPJTFQUQPT\XPORZ\SKIXZMCOSRWVTZ\WSKOTOK_ST[KQZRWUMSR]S[VOR]DMES[]LQTWWRSKIgbWNYR]PQQMUc]MYSM[FZTMUQFQKVVQWT]WWcSTUXZQS]O_USWRTWU^JSOQQWYYYCRSScRVNOZXIP]LWTQM_WVRUXTTV_SX_QXMYZ7VX]V[TZOSOaKVOSRVPSXPTRQOJOSPG]XS_NRVFLRSNQVXRTPZUQSJKVSVPPMRRUU]UVXXPR[^UeSOVIRRNeXVJMUPPVK\PSTXQR@cPSRMKSNSWWPNP;LdTPHRODN\ZOQTKXZYRURSSSNKYRNWORZOOVCXMRaOZOhVZOTS^JelRVCRIQMOREMSYQLHOQXQ`MYP]LVOOQOMVM^PLTQZQW^RONNUOSM[YcS\[HYUROSJOOXJWQYOUZ[K[OcLR`TSSOV_VWNSYQMHPZcOaKNRMWTWTLPFNZNMTLUNTJNINKLLT^PHWQOMKLSXJXJC[NGRMRPY]LLLILSMNJ]OKdGOdPPXYXSKZYZL^OUOWQNW[QNWP]WSKPX`NXEVG^TMLZQ_XKOPWWM>bTZHMAId[NSQXXXWOOcSZYRQTRZQISYb]UlSOUSLKZOKXS\cMVTTEEaVUWVHVSZQGVVQVeSS[SVFOJ\_QTUYON[QR\J^R]PSIJPaTH_XLYTRUPJM[M_WUP_IQbUNSWW^VUKVTS[N_OROWNT>RaKOUWNTLRHTNXVPVaKQYJOQOWRLTPTHPRRQ]TQSMWXUVS,GP]STUIaYRLLM[FINRZT^R\UOP\JVL]ZVJUE]VCTRKVVRQQRRWJLMW[QZTIQVW[XcNRYQ^LI?VAWZL\LGDXUMTjWJ^aD]G`PZIXPVFKGZ]IIYW\o]PF]kQPYNJReFKXLHK[RTEYQVFLQSJLkJVKDOLMVbCOZ]DRZOLaHFNHJMSTQXGM@JbDMVLTNPJSANCWFPZYIJRGVSF^N\GHMZIHSWKLXMILTSHQHXTHMDPPQXTRSM\LRJ]OLONUUTWWUaWNEVK[R7ZYQNSNTZKQTOUKSQ]KSUPMNYRLk\TXPVWOTWTQTPQ_TVRKRSSWVVhSCcVCZ_[[W\YLTMkZTTQQTW^SNLRLOSNWTNUPeUQ\STQ^YXTWSOSGXQSQOUQSFYWXPJFWQYMY\HYNHJPUGUP]JZNIINLUYMLWQFbLMHYBSd]IMNKJJTKnc^UMJRAe\OQIMJQGOXNGSLTQOiRRLZVRUNTJIWQFUSVROML]CJPmXPGUYGHTTEJUWOPNUMb>OKNTSR[NNgTaOQKJHVOTQGKQmJOTQTPBDORRbNVOSLLGXUKMMYXZMQPZYWN]PeTQP[SQX_RVQYSVW^[WEPPSXSNX;RQRKLPVbUPT\Y9SRTOKRMOXQSP\SUJ[URJLKZVQOZPKTPPFPOLJQEVUZUNN[PDORXVVJUGRUPNTP[OTOWKUVRTSJLUWM\YUZJKVZ^SWe`UNV^TFOMSLYPWJTM_VPa_TXJTMPRPVWw_XWRN^[SVKZZQFSNTNNW[XPPRWElNROOXXZUMPRPT[]KNKO\VQK``OWPQHZZJT\XVeSRP`ZYLHLGOUVZV[]NGCZRZOX\YM[KVOPZUJNFT]OVJVKPVWJIKYVGOQUVXWPQ_XV^RWNTGLJZHW[bN[YPWTVN[[ULNPdRPKOOSTJTjRWO[RRRSTDQMR_U>]UXIO_QU\SOSMSGTQHTVNQRT]X_NSLTLVPPTVP[UN>UNRNPVO`QWQVQ]RPYP[TZPbTZLZSRZX]F`QVTRTRRQYRUNP\WQSRRJTSKHYUVbMRTG[JO]PIKGVBNYWOM`VQ[RaMUKWGdPQQ]ZN`XNPRHQXgXWUVO_TTEWQ[S[\ZMXL`NYRNb\NGbABjRUSDXRNJRXRUJPNMO[W[ZSOONTcRQPMGSIJAW;JFNUbONXNUXPPKDXT^WPbPPNKQRVLUSRXMLRUYPTY_VUZXa^ZZRNGWSQ[RUVUNNPQUYPSURVWYPQK`TOJMXPSMR[VHPWNTSMWVUdMMPLRR\_NS`RSSYVQXMQUORRUMMRMNSULQSTWTLKOQYPNOdQQIYIFO9SW^U^TXRWBRN[NPR[SPKPZNOCSLNJPRSSPUUYTY\WLLVMYVVZNVYYMKPPSZQGJQ]TTXLMSQPIZVViRPXJZMXQVSMOKZSVTNUIYRS[pNVMPgQQURPQ]CQGd\MOOTK{qFUUQ[MENGP>]WNYRUMF`MS`XGLLDHIJWRV]P_LWUDRJOPTOQRPRSVYSJ\[PLQV?OUNWeSNUJWURSJQYTGPG8SLFY^MXViLPLGPPTSLRPOONMTOYOORNYSTPH^VNW^QLOHSJ]VNOXV[GX]\SWVLUUPVUXTSV]SULSMU[SgUPON]MKPVRPBUXRZHRVRIEMIRHNNV\ORXMVSNNRNSPWYQL\PNSVVVILHSQOSUQYNU[XTSY[gQK_OTPKPTW]PPYOPWOYPMTSVUOYhWWXMZVSQ[TOUZQPPPXYHY]PONIHKSVKKOTQTZ_PJ\TUIIJPTFVTSQUXWNNWNNLXVNMRWKdQR=PHUJPSZNXKMLSP[SNXORX\QQVTSPSMVTP[QOPRMQRPGRPSUU[UO^NSGUTXNXKUQMSWXQWDSPSWMINT`RIZYO][VJSNSVXOOTNWOYKQPSXMZKMGUKPYR\OSSZPNa`OVXYRNWFJURITbYSWXNNYR\]RVNPNMURJUYUZ\RT[QLF][YVNRTRVOPQWUSIETNXWRR]P@RCTQLTZSQTWNZaUFHERPTU^QaWXUKQZVMZLSOROPUJJYNVQJ]TXFQefRRTYV[KVWNMNOKSJQaUXVQ`ZEP]DGUXHTPMTVOVOXOLKWKUOMN`X^JSS^JTZNUMRHSVPSNTX]QMQTH`RWDQTL^YTMQQSM[MUPZgKNZNVYQVTYQYVMOZMZQ[ANNEdVYTSR[RaWOH[FQLYbIRBV[RMMLMWNOQQQEXPRXQ^SJNOYL\QPPVTQJVbUSVOPNQXMKLTPZF_YWJH^NKP;[YUaRNPiTRRTSWLW^MW`\RbWWWKL\I]WYWYLNQEUUVMRJQQMMMMULRUINJNT\PUNUIXVKUPPSR`UR]TNEVOTNNVWPRWRPVXMNLMZGPSZTSKRQXXVYOOSRMgRSNOUUWSXRTSQPPK^TST[RLKRRSPJTQSRJ_^[]T\:[WPFXSTOKUWINGGWPPMTFMOQZRQh\ZiPPWSLNUOYQHJTZLLQPNSUW^TSIKVKUPPOXZZNLYTJTYOU[RRPX_MHURWNQULSUTRKXU]WUTIOJYKMTO[UGKVPNVKKIdN\QMQXR[RVZXQHLKHOYIRWILPX|WQPO[NVNUVUWQKNRJKNKKLTVWVKIQR@LQJXZLGJYJZ`ANWLJUKLUME[QXUSMRLUSUaEOBUNRPQDCLbXLNCXVHVIaJLZZRU\FNYZMXUjTFJLHLKPS[MTSVRMMOOSX_POVZZPUOTWYBLYSQ\U]MUGT\DZKLRQYROIPUYWJRVLdCHXXZSQOUWINONZWWcDRZUVPNR[NLYGMROVEUTNUOPG>TQOV^Y[NP[AOKG`TNYTR`RJVTUbeD@TTKJUUJQU@U[YQPYCQJMQIXJHXJXVWNKOPd]i`XHLEI\OPPJUEKbXPUFHLVWZSXbWTVTiRUETFOYNTNNKWcVWPORSMVNn\QVQWIUP[SNXdJWZ_WMUbSWLRWVYTLQ7^SPCJOWTOWW_O+fQWUVXVTE]NR]QSLV_XWLVU`SW7YBON5MOWKTUO@ST7MWQRROYORSYPQVZ^KTU[RW[MNWQNXYMOTTMYGNNSPZ]UQK]VW^N[MFWYRVXRHO^RLLOZ[MSZPNRILTFKR\RM^JSRFOZRNSTVVNMRXPAVISPQ^KSMLPPJSVYMaRLNMEZMJOLMRKbNMFVPUR]TJELRRUIMLXUKGDTHONUQ^WULCNLLYWUGW\GOSFQQW`C[LWITTSKJUZVYLUOTOWDPOP`^ScOPKDbFU@EO@NPXR^TKLQHHRUNHNQOVWULNJPU]F?OROVPbSROPZKDMKQK[OWXTJPhPTKRYGIIT]NNTQVRFTRb`^PSMBSIMQWSN^TITNLZOMT[Y@HUa[RM@PRWkOCPWTS^TL`TMXKM\USPSYVYPLI_JYPN=EDg^ScNO]ZUZYTNeSP\R[H_WRLID[TI[WURWJARfYUJWPPQ[RUVRUVUQZOOSRW[RRXTZFPNLRRP ORTNUORPPUTUWUTQTQVXOR?XURONULQ[TUTRLROSQRVVWTTQNQUNSQVYMTQNSQTYTQZTTWYUNRLSbTSEYKRTLUVWULRDYWTSFaQSLYQUSJNVFTZQPSNOQSV^JRMQRLKPPMUTXUNUORaQ^SSQINBRNONLbESQXNH[[SKTFMYPTZZZULUUHXGRTTJJjRUQN\S]DWUNCLKhLVRMLMTWWLSQYJQWM[UM^JMLMIUTPLMVUTWGMGMROQWXOHIWUMSZQJMWXNZIYKQLQ\OPSRXUNXPN@YWTTNLUCN]QTSOYXZQQTVZPRTOM]PPOVRUJNSJSTROLRRVQSOQ[R]TkKTPXU[ZYTLNXMXTQMZJURR\QLVRMXWJQQWXW]IVLSULQWS`Q]\_\WQTOMYPTGeQNWTQU[LPWQYUTVUSQKO[QORSVWRWSRXQWRYOQ]STRNHIUSUXOMRVRRRSOVOSTPSRHRPOTSPVPQWLXQQSPPWQVQRUNQVQQURWWQKONWQTTNOR\SXTRMXQOUSSRRUMVWPWONQPWWRTUSSKRWHPTNWQVZRUVTPQQ]UXQOSZWSVWTOSUWTNPUSVUSQVSQXUZ[VWT.OWVRSTTSYNRWOUMQQVQUQUTOWQLWXTRQSJRUSYULSYGKNZSPTQXOUJSRRPOTU\PNQQRRXSXPVMROGQVMSTQYUOITOXIUTXPXM[QMXLTPMQQWPS[]NZ\QWSTQPLOIOBMPVWUT[NRZMRRG]STXPNWVNQWNWZ[UITWXIQQPSOVWRXP]MTQUWMQCXISQROORWZQTKHWUX[Z[WJWYMLOaROKNXNRMINMSQXYTQUEZRVOSONQZTHNUIUMWSOXOLRXQaE^JRgWZUMSKTOUK[KaQZMIPO^KNORW`VMP[NQRXQ[SPRQUR_TWXQT[YNdRQVWWVWlOB[R]VTHVNOG^^^VOMR_P_POQO`UM[VWZSNVW[OVVaZKUQQPOYR`RLMXP\QTRVI[]NUfJSTYfaPPQYVT]TU^QSWVWSM^P]RNPMQO`_]JN\WWWZQVKWW[]YQWS\TO\NFXMPLTYULHNXLNMXSV[WUQZTXP_LWPQPRTNTRSRPkkPNXQTS_]\WOSEWZUVRHX[\RURWVRMQPQHQORQ\PVUSMNL^TONKWZIOHLVMUOUSPVIQPTQPOPSYRQV\XWKMHOXLQTZOVRZJT_NOT\RPXVPLbaRENRPOVJJVP\V^SMNPYWUQVMYIUNQERFWULOPQRNRM[PPRRIKQNKTSKWXTUWWUGNLSZ]QPTPQXWRNSKWOKZXPSWW^PUGPSSTIN`SO[TLYZRWOFXNSTXWUUMOQNXTU]ZLOSPKKNP]RQNNKUZTMPSP9ZQTWQUYTN^USTRGT\NVN]PPXTQTUSTSFRNX`WS[K]UWPVSMTYPTRZKLQTRRTRQPSVPUVSVSN]QWHMT\QMHPUTXRSORLSIPIISQ\RPNSUONLPXQTZVOKEPRRGJKQSMMNPOZSCTUJTOUPNLQSSTHJOMQXQTSWHNWUVXOJPNSOKONQRFNLOTTUNQVVWXXPUVW[TKPYQIUWZOPUZNWRSVNSNSLLSKPWLPTPLfRNMPWSIXRMUWURXTPWSQ^TSMZQVUUVUUPYUUEOMHWTR;SQ_NPSPJWSKTXROLQTMVRNHUXS]JUUSQYQPSIQVPTVTXTVVTTPRKWYRXPGPQRSUXXZRXV[OPNSRZ^RQJXSN[OQUSSNZJ[PSWFbOSRQRTYKUBGQVUXUQUXTM\PRLPRRWYRYOROTYTQ\MQNaVRPZVURRT\RQTTSVI\UQZURMNRWUOI\QVX^URWOZP[]RTS\[\KTMORRPTSORQOVTRHXSBROXUTVXdVUXUMQKOVY[NXS_XYYFNSTZPWMQ_XWTUPOV]OVJOISRYWbYOUMRNSVTTUZXXKVSIGQZHRVPYSXQKLQOGLTWILVYVXVVYSXTRYPVQPSGMYQZQ]TPZ^WS^]RSXRURZMOWQPSPJOXHWPVRYSPEZG]WGQUKVUMWVOUTqPOMaSQGS]UXXV[\KDSaNTWJRKTRXQNIRVTYRQW`NTWWO]WKTXXQUNRRVJRSNVLKU\UXHKYVTYc[PWG\LVZMMYYTUZTUXRJQRQIT\NVO\MHURJNVNVTMWHO[TENPTUKiOPXRWIU\PNWUVN[]TUTSVSUUS\XPUV_PGUP\ONNSZOQ]PSKPFZZGYTNSXSQ]NKZLZSRMOS]XNIVZUSSGKPTl\R]DW]NTU^]TWEVHVOQKXRbLQWGL]CQ_ISNLQIT=WY\RPPWIXCYRrZYKWcTFEROLe]UaTP[LX[[PHQTQPXWNK\A^oXEKU_RVSPQT]=TVL^T]HTNDdRTUG[MeJbV\LJORTTRUN\ZRIRTS`TTL]MObPRXWXh]S`WUFZ]mSSLTObOPP^V[a>VJRULMSOXRQXQPLM\TMI\VJWONQTJL_VMQRU_URTYNRSROYNVPTPTNWXFQOR^KMSROSQSXMNYWWTVPQRVOyQSKSYLNWPLTRNMXSMUPSSLMP\PGSOWSSR]NVJN^XLPNMVOXXWLJTVLNQODXRQTR[TOJQVWRQNPRJUQSRSNJSWOQST]XVRQTHVOQZP]VUQRNH]LKTXZTXRVTX[SKXPSNTHRPRGNVRXVSXVRZSTKNUMQTRWPSPVNT[X[USRQSZQVWLOSJMMQWLOPTMNTPSOUNHQOOZHTLMVWMLOURYZRPST\RPUQOQNPSQQQPOMWMSUURWSQSZQTVTSVU[`PdP\dV_VQQNTPRRTSX`YRU_]US[\UMPUYOWUTUUZUZSX]XLMOX\MaTVWXOQNWTcRPQTZTNYXdTZNVOMOUNMRVRNVY[SHWUYRTTVYZOUQWZTQRn^TUUXRY[]WNVRSU]OSR^TWS^TWTXOISRbWTXZMRTOPYYXOSQVPRRX\NIVPR_MRIVQQP\Q?RbNUMRSVQTXVKMRUTSVPSMRWQYTTSXTSRUUPSPQXQ^USLV[TYQRRPXKTUMOSPMQRUMPS^WPLUWSURTSOSMYTLTNRQQ\SPQTUQ^VYJ[RPORPJMPSLTSQSWLS[VWSVV]PSTPNWRTMOQ`FOWGRPMMVQQL\WXMQRNKXTRXVK]TPSSELYXGOOTSTKNPFHNNTURLSIZY\WXVYQPZIP\^NRSOXXVPSUXPSJUPMKRQRJQWVTNYMOZUPQLUPUURURScVOSOJTYRKSVQRQSZMVSSNSMGVWVTYTPYRN]UROQSVdOSTYUPVSQRUWQUTQWOOPJPRSUQTVPWUSSEWUZZQMUSQJXYO]NQNKYRSUXVTXRQWSUVV_RQXSQPYUQTUWUTV[WSVQSTZRYQ\XSTVPUZXPS_OTVJUYOO\ZSOR[S]UUXWVUOQPWQNRUVQ[O]YRPTXONNSUTSZXOVNTPPWROYTSSVTVN[NNOSJTUTTURTRaQLYaOOWOQQWZTUTVNZY]TOVTURRXVOMWWSOQRROV]VORWLTSOXUNRQZSOTXNUPVOOVXTQW\YSYTNVXNJOUEWQOQUV_NP[WQHTUNPRMZLWX[U\TSOQNLSKTRSUNSQKKPVTSYURWKQPPRPWNWSNNVOMULUMU]WVTZRW[WGY[RIW\PWRSRRV[SYVQVUWXTSVTS^UPUPV[YGSSVOMPWUIZRaTWQRVWRN]NQZVSOKZTXSWYMTRVRLWZUUJ_UKR\VSPNHTVXQRURPYUSKQLPPQWVSRL_VSNPP]][MWKSLYOXQUVR^XRXPKPZPFSZXQVQOSTMKbYMYOYTQK[QOQOTMJSPWPTWWRMMJWPVXWQRSVUQLOTZTVQ`USYXOVJS[OWQVX[VQOMOOOVWQRUOQGXS[OSOSWQOP[LWW]TZNSNQSN\YVYWM_VUS\VTSOWVUUUSPQWOS_eJXRS[LZRSUO[mKIRSPRYMVITNNHNPNOWFTRPRKMONTTQVUR8UPSLVSUQXUJTLMZYUKUSVRLUNPVQVLaVVSTQUZOMXQRLPOSVNUWSPPXQRQ]TYMQZORTWOQSS]TOWQMQTQMLROURTJTVSeONTUSSV\Q[QkXLJXNOZSSR\XMUNUW]PK_MZRRQ]RNMQRPTQNQSSJRKUVTPRMZPSUSTQUWSMOQQNQVOKPNWQNQRUSROTORSUPRSXTUQWPZPP\UbTOTRUQRSPSRXNOOUORQQHUW[RXYQPX[ZUPQTXULJMP\OUWTYQERPRaNMSSSQULXSNQSZPJZNSQMYTSOTMTMYO^QS=\SESU`PUSPOKZJRMHVFNSOUJSLYUUSNW]RRJHKRNXOUYRMSaQLJMRZRTO]PSULdLLIRMQQXOOOUOIQMRQL_OMOXNQZ]PONTPTGPTNRXJSWVYMP]ZURNSVGVQNOSPOYR`TRYPU\J^PRWTMJJOSSLVRTRYXZSUQXPVPSLYTRMQROWcQSNTSUV[UVTIMRPTPXQROUFN[RSJMUOPTOVBRPQQMWPWN\WTXQQOUN^VMQ@V[NYSUU\TTXSLVLNOVXS^VXTQTWSSXXUZRLKPPQRWL[UQNRRb[RPXISVOWYENPOUVSMMVSKXLQOX^VYOX]ZSQaSDRVSLQSL[RTPTTQOTKQUTRYJKWZF\PPNWNUR[VTUTNPIXT\TXNOWLPSQHLZ[M]TOF[UTTOURWNaUMIULSSUUVXTYX^VKPQURQPP\UJZVOUQONVUULNOPXJK\P_VYXQPUOWRVMYXVUJLUYQPVOVSQSNQWTSNUSRWLQMSOPJVVSWT[YTQLPVHW[XQRRRTPXUNVSRUWQPNRQSVLTMISXRRSSbMVXQSOSQXRQOTVVONPURVUYKTOTUR\TOVRTKRUNRSNXTSQUTQVSUTZPKXVQNMSNQMPURRNWVQQUTROTRORQSQSWHSTNS]bV[OMUWIIQROUVVYPTPJLPJQQ]MURYWLFYONSYLWPKTYUW^OXRYVQYQPU]TOXWYQFSQWYPYN^UVXPZQYPWcM^E[PYORReSEZS[QUTRZGRSMXHRUOTQRMJWOLVQXTKQSURWMUQVyTOXRLPR]VPMV^WNXXNZXNTZRVS]HJNRNLSHMYQQRXMSMTL_RPSQTXUQVTWVVXTOMVRXUOTMUXSYS\PQWVTVUSWOSNPPSRP]QOUGSXUK[PLZLPRTUCPVSNVS]QVWTQQVQZZUSZNUMFSSRP\LSW\WTTPUXQ^\ZKFQ]UWSPNTSRPUT`USSSRTLQYGTNWVORQKKWUPLQTQSaN]QWPWPKYPPUORH[EMOTMWQAMPWMTTRSGSJRYIV]SPHVQWTVMWWMTSWXTOM[QNUPSOTYVYEQUVQUPXaMPEWQWDLRQPPX]\UFPWVOQNTTVZOXPOWHRYWHXVNNOYQR[SLRNXUX]PXTSLMVMKRZW`OTPNQN[KRNNWBPVRMSQNLV]WSQF^GZPRSLUMRaOTRMPQJPQTQZQSSPSTQQQXNTFUIPOPLOQVVUTURSNNTTOSQUMTUWVUXVVRZMNjQPRTYQTQVQO\MLNPOTRVNQRXQTTUUUJTXWOSSTWFRXUZRTXSY[MLWSVNRKLNZOQZLRY\QWRUZ\LNVPQNUVWKTSLPWQRYORTTMSRPRKYTMPKWYRYSXWTQTNLURNT]POSHBQTURQLVFXQ\QPTVLQ_MHQVUSUYOT`VQb\RKLMTZKMQRXPUPLPRYXQ^LVNQOSVOSWXc[MZZMRTVPSORWRHMOWZSSXVW[UOYMMPSOXOTWVQYDXLYQTWXMTTPPQVMTRPS`S^QPWSP\UOWV`PVRRZOYOTQXU]VONNM]KIRYXSSTUTSIILXW^WV[XQPWKU\U[PdQIPQNZROVKQXLVOPPXOVZLZVPXPUWNTQQ]XOVOTQQIUSPOPONLUXSFdURSVRGRXPNSQTRKJXPfLPUSWOYLXTNTRROV[WMTLRUNUXVWQNOOURZJWOSVJNSLQ\WHRLMPXWPUTXRVT]R^S]ZR]UAIINQI`POcTWWZNIZQWMVNQSVOOPWQUTNNPO^VUORNXTWYQPWTUQSIbNJVU^WU[HJQTKTPUUVHPPPRVS[PSGQYPZDWVbeSUUXUSFIWSTAR\]aPQNTVRY^SRLPLTS[H[DNMI\GaOTXTCPQMWTJPRKMWNOZbPNXSFPTSbHIMgPSPUORRUP]XPNTRQ[QFORRTPFJWYSIMOYfROSKRPQVUWLJILNRRGLRRTS_^MNXRUUL\TQR_QLRRUTWM\WRTRSXORP`SSRVhKQP\VPPUUXSTVLWTMWQPSSPIWVQKXQVTTUUTVXUYTSOTRPTPYTNWONYNRUTMTOVPWRVNSN[KQUWUNROZPOSYKTUTXYQWOYVROUXQKTMYPSVZdLSNTLVTTNVWORMRXV\M`\\GJU\PSV:UMd^ZTNC\QSTWTXYZVWQR^PgTGM`ZVRIVX\UWUUZaS\RXY[UUWXXOUWZ\=TZSRRNOSTQPYSZSSUXMLRJW^TQYVTVVZKSUSHQaXU]WWURTU\MQQDNbJX^TMWK\QOII^T_VY]V\T?\TS^RLS]YVJbRXROSV\PJYWaPTXOQGONTOZHQWPKKWUXUQMXTQZ]XYXQSRXXSJRSZTSKKKMMUPOOVQRTSLZUNTQMOQPJQUSMXNSSZVSUQMWRSYNSSSMTXQOVTOYS]SXKXYUMVSK\X[QURUYPQNPVPUPUNSWPQOMMOLQSMNXUMQSTNDITVUPRURR`LSRXQQ]V]N\SUSVNNVVRP_VRUNVUNJ]LOLURSNXWTRXWYQUPVJYMZQUVQ\RTVKUVTUNMZ^NVYUUWZRRQPRR\KQMYQKS[XVPNLVSQVUfPUQYRMUNRXJZVRTVQSQNLWLUNW`VPTSWHWV]KUPQUUTUVWPWVWQQRSPMVOSRVTSQPSWRNRZSQS]OVNRTWTURZQYVSQ[SWKYOMSWSRZYYQVSTVPVNXLRSQWOPTQKTTPPYYVOZS[UTNOUVMRSWXO^UQOSWRPSPSYXWTXPRUQPWRKSSTXPSSTQRUPWSURIRRXWOLSSSWWP\RORTXXTTSWYPYUZYRbYPPNXWP_OVSMOVUTYSPFOSZSKRORNPXUMSJKOWQVRNROPXLNOM^]LSPST\aOROMLNHLTWW\E_[UVS`SaPPQVRQP]ZRVQYLYMTMGWSX]YRG\T_TQWOMTYTULTXVT]Q]SRQRTRSWOSQ]PPWLMQF^_JQPQMWTJO\RIJMPFQLPPRIY`MN[PTPRLLSOTQXLMRVLN[\SYXSTXQUUMJLQNPIQ[SOK^WNTMPGQSIZUTTJGEPPWU^NPIWYIW[SLFTNUGWQM]SORJ\PP[ZQHKOIRPTTNFYWSOMUQTVOKWYWUPPNYTPSMWOxQPIRUXTRPQOQV_SRQVMQRLNXPPMSUXSPVLVRSTQTVVVTRNWTWROSQWPRWWWRTSNSUSRGROUNYUQSRPQ\PXKSPUWQSMKOQOaMNRONLP[YVQXPV[TPNMNUPRQLYVNVOTMYVM[ZOZPUTWQPQLVPSSS{XQWRUWUJ]UTXVXNRXWLWSTRVSPWPUVS^NOQRSVTPNYNVQXOQSTRPQZVPNTSSVUQXSSMSQUQNNSVXSWPSS[QSRSSLOMRWTZZVMVWQUOTQIVI\TYWVQRVQTZROLOYTPZQUSOTWQWZUTMRKVRYR\VOXVWSUUYTVNXVSPRQQNSPUTRYVQSRUTSTXOYTUVSQ\PYQWKI\YKNRX^QYN\XPTPRPU[WXROUXTNUHNSSQSU\RQPGVLNRTVULTRRXUUCKTNQT\WZQSUVbOSTVQRRHJKORMUKRQRSQU\QOKTQWRJ[KSLPPVOSSLRRTP[QUYWYHZUNPORRIVUNM`VUFP]VLaWSWNNSVYKXJSKYNTZSVOPTJRUJRVMTRXUWOMMXUQSQQOUKQMTRRTUXQROVHRPQWQRORYRSUO[OURXPNZURXYQMSQUTIPPVUUWTNRUXXRQOXPXXQPRWWPVR_VSRSWQLUPVVUYTXVNS[MOYOOVZVTSTURSXTOOWSRSPRNPTZLSEO_QWXGP`[XNTQTYFOO\KV]PPPYOSF^NXSLQPSMXNNMXNQMOTYTXLRVTPNM[NOJQNU\VONLPQWSISXJFPV[XRWWT\RQQUV]SVQMQTKUZTNKNX`ONMKXOVRNRNVWVSSFGVVQXRYYS`XOU>USHWNTXSPILQVTVUPWPXKOM]SMYLFXOQWRSO]RKXFO]YZPTVVNXJUbQTWT@Q[@SNQXRWSHTOKQNRYLNPQOQRLRXPRURL\UUQ[Hb[UQRTRaTJQXcXOPPRSQXNVHWQWROQLTXTRSQPIU\VRYYLYNVULRYTXUWTTRPcZQOQXSMJHYVTVJLNOKXTWSUKIN@OSUXVTQPO]JUTVWSUYLKQVRROVTVVSRXRPQOXRVRTZOVQSMSYSSQSTPPTUQXSRZLRUUWRWRO_NLRNTPSVNRUXOZUNTOSUSMSURVWUQTRSUQVXQUYVWUSLXUQOSTPLTQ4QSUQSYWUUTPW^OTXQZKRPQN^WPVQVPXRSQQSPQOQM^MYLMLQSVR:QXPKULOPRPRVLVQRUPTRUYINORUKNJN\TVXQWMUT[W_RVQSZLSWNUMTRUKLHQVSWXN\RLTSRPVUNSSUMQLPTM^MVPQWJRSQRIcRWMSSNQORaTVROUZLPSSQVLOLLTRMLUURZIOWUSOKRHT[MdYQR\MQRJVSSSQONIJJYOSUZTPQQWLWSRPRPSOWUPZTTXSSLMRRQURZSVSTWXQRVT\MPQQTQPRXSEYQRRVTRUS]XM[STUMVS_RVQOMMZLYG_S\SQOLHQRWTVSNGUJTURQNWPPUYOTVTTQZ^NNQTQQHQXWSWMOGSJOWTWRU]NHCK]QSSJUVQOOX[OVWTINPRUWNOQTOW^QIXSMPRPT_MLWPOWYSVPP0TWE[JMMVSORQQQPRKXOSZSRQQ]OHTXLZIJOQaY[JP[TMUXRSOYH]PT]JQW[_PUTJRRRTRGRTQl`VNMRSOUUVVLLURTYLUQRWWUPTV^WVTRTHSQRSPPVWSRRYQSOLPZSVOTYPVPXIUXUWUJKOUQG_RQSMVOTYVNSPQVW^TLQTZQOROTJSWQHJR[KZTUKQ\TOOTPQURMOPNPUQPLLOTSVOZSUQTNYRYZTMVXLJPPQRSV]NSRPRVRO^RK^RYTYX\TLWS[XKXSRUQOWVTYR[V\VXYSSRQXROYNT[Y^UX_SQN[ITRPN]NOWURQ[XTV[MTUROMUMYK_SZNPUVMVWW\WTSOQSSUMOLP[LPSVSXOZWQPNV_QTVSUTLUQ[WRLSSUPOaWZVP]Q\PVOSXRVVQZVHTSWPZQENRNSPXLYOUNX\PSCEQXMURNQLWIKS`OQSYT]UW\MRROLVZMNVOL[STRPM_LVMOZZRZSNLMMSTVTOELXNSQSUYIPUVXK[OPPRQTHNLOQNTFPHRNUR]UY_MIMRRRXMLYPNOOXROYSSRHVQKNUaWSZTITTWeIPPRT[RMWSRNRW[ND\RbNTTHVV]UNNMLWETCTXOIYL^[MNHWSLUMOQOQOYJRZ[RQZUOUP^UPaOWSW]QVNUO]LPUQU^QVTQHYMQVRTR]LOXXXJVYPWJWRQPV[TRVVMPWSQPRBWNOTRNYSXJEXTMHPYXWOVOQeNdWSNMWS^UVVYVUISKONTOQRWLTRWDI\WU\QX\\\GOXPMJRTGYULPQNSUSTHTMOTQLROWZJORTM[PJI^PTYPJO_G^RTUMYTNQU[J^Y^TISRTaO_Q^LONUURRTTOWYSV`CYRQUQRTTZGLQWSINOPYVUSUSORSL[ZKT`HKPXMVSMONWNVPT^ZTJNUQTTSOULTPMUPRPQSC[SXSSLTMZOJMXRXKXRPLNLMXVTWXM]UTVLWNXU[UUQWV\SRZF\ZNTQRUOYNTJNKTPPUSPWWTRUVPSJ[UUZNUSVTSPPSRYRXWSQVOUSMPTWP[ONHPTPWRPWZWROQ]FRSRWQM[QKNRSPLP=OT;KJVLLWNSWWNMSEL?]JV][Y]VTUSZOPVQIXR^SXNYUNS[QKWQOGRTVCLHJHW[MNSANNWUWJ]Q^PITSSUUZRLNaV[WOMOIPTOOOUN]`T^FZOST]OLHUWRXPNZSXRAKYA_UFNSQZONZQ>VXPYVYMNU[UYYVPNWQS[[H^YQMMSNZ]YWHIPZPOMVXbQJPJWYRWVOYV\RZPbOOZXSY[NT[VPYMPRPLPXTKXOUE[VPYQSRVZ^SPVYTS[PPa\PSOTMUSXNRRLP\TTOWLMYUXRTMSTZVPYUFN`Z\SVNKROXSQ\VO]NQYKRKMURXR[LXUWWSSQ[JLLMSYN\R]SQUSQUYQQSCLPZOPZFQLQRJPQPSQSTURRTTZOWOYUYWUVWTOXVEYWTUX[ITTULQQRLXPSUUDPVRUVLWP[SPQMSPXUUOQXRMR_MYNTVQZVTORPPQUUXTOVRYDRVNQQQYOUPTNZMRRUYUOWPYNTRSNNNPVNTQVQ^JMPPRVT[L`PUS\OtTPGYVb_WabXVWVRVZO\U[a\bW[WXaSNPAaVZ[I{fTbYdY^^bU[UWKVZRVKTjSWP]Zea\MSabUFkGbY\Vk]$RSVY]TVJUQeVZ`TZXYkW\FL_@QMMO][QO[TMUTc\[PMLY[Y]X[ZYKWR]VTRTZTZW^QSM_XRGZQ[[NNVfYXVT[P[W]SZMMYO]U[YWVScT]QZWJbYT^R`WXMSZU\miQUZVO_iKV^YYaREU\STZZXR]ZWRVO]NVSUWEXPRUY[WSSZ]UVTQWORSRTVXUUOKSSWXSZUMTRRQ^WVP\PRZYQWUPWSVJRPXTSOW[YSSRXQUYUYSNRRXTVNcVWQYUSTNUMWKVPZTROVTZTKXVPVQXPMVZZTSNRK[XSPMTTZ^RSTTMQ[QUYWUPRSNPRUUSUQRRTVQV^FV\MWOWZTYRVUWRUTOZQPQPRMYNXSRkTRWVVGORLXSRROVXPSTWPOMLQYORPXYSTMVOTUSNRSWLRNWWTXOMVWPQQPRZOVPOWSYSPJVJRWONOWNYVPYWNQOWOYSJNNYOSSSXPTJXRbS^dQUOVKS]VNLSYMVWRPUVJQKZRWTTOIPZRTSWWUQPK`MVUUTPWUPGPVUSQVQWTSVXTSOOTPTROMPWUSNXXWQQTSQJRUSWWOWOVLPUPVTQDOPRQNMSRPRXUQXUWRQTUURSYNYXSOSTOTNVWORZVXTWNXTROUVPOQP@PUXRWYUTRWPV]MTVV]MRHTUGKO_cT``L_UYLDVYTSVXJTX;dRMTZRiKWYWNPUURf]TTOWeL\MQ[YRQSJFNQNXyHH[LSRcaHOZQXUBbTRPV^SS8NRPJXMVOYO]WOb_WMSTVPTS[F^YWBV\C^V[ISaTLVQWQT]VQ]SPS]Jj=PN^gXhIKbaDc[NaVWZVjX\Y\OuMZff{`LW^TUPTSZXXTSad_KTpcWXTJVRdYe\_[XXT``YGQaXeLaJJLaN^TVVOPOVPTYU]\PgWWYZJVRSU\WOe]boGgT[]EiJ[[JRWIc[iUq[`WXbYZiT`QJWqdXSJU[UfacZVf\N3=ZbcZWh?ZYXWZWbOSKTTLONN_UDUWMMQVMQTKUWPRSJMNUSKTSXRPVUHTNTNRST]MSPUTWYROP[YMFLSQOT_MZYWPVXYTZSPSSW[Vb_OWXTPTUTKKSMWR[OYTNZXQOS[YVIQNOSPXYPSSTW[TRS[NWLR\MZP\PQSRVQHRU^SUT]OXOXRCPPM]LXJPVLRLT^T]NROOTXSJSJQTVKS\QQZTGVPMWM\UUTXRRVPORWPOQNXLQf\QHRQW\TGLRJNORSRNYLV^UKSRfQPVVLIRQWYOUNPITSXSNIXURQYVJNP[OLOQONSNWQOX`HMNMMNWPZV^NFRTTXSLWOKLUSWQNOJKMVSXQJKXOZSVQPWTKOWSQdST[VUWTSLQORTOKNKOVTTOXVY[VPTOSR[NRXQJUUURQRMXWSVLTVTKUITWMSMHSLQVKUVQPQYPYVQNUPMSSNRdKQ^XQVXSQ[MRWZZYPSIMSO^QQORUT\PRVL[OR[QP^SRNQWQPRXWUXLUTROUUKNUXQWPOURPXNVNZU[SNNQSWLUMUQPUTWRYXMX[L\WUPUXQKZWQSRGOWQLXPPAdY\XUOUXPRNTNWSSYTUNbNTWYILQOJ\PPWSbPRRJTXNYS_KOX[MUUWIM[WJMTLRSYORWSaLULKVZYRIQIIVOMUU_TGIQUVUCNNVTKeUOMVLMQWTBTR]MLUYQVPUZLKUQMOQ[MhJLbQTRURTIROV]PRQRRQ\MQMEGZOSVTTGQJ_PYPNXO[UOarNVMBVTKTSZRfZPYLN`NbNSXQYURYAIUKeMMKNSPSG^S`IDRYEORMVV[HUETRESaHPPUI[TGVJKXJQK[PWdNRSTTELIZVVCP^@OUTrPQ\MRAdTUVPWZO]QULJRRWMWoaOQPZR_f\^@BMXQQXXN4T]QNJTRK[]OSUVUUVRIROTSZVTPVTNNYbL[PZXXWQINTPT\QRPRRSSZUTTVQT[OSVSRVOTSXRSSR[VRNJNWSVUSZMSRSZSPNRXYYSVUMMRHQUHRRVTNUTNUNPUF`VQ[S]IETSSCH^TPS[MSVSaSOUQUVWPEJNQXQQPTXPSSUYUQP\LOMPVSSRSTSTOVRTTTETUQPUNORSVQSTNTRNTRRORJQPSeTXLPOSQ\RWWPSUPZXRPUMUSNNTNRPMDXONRVTPQXSSTUULTNU^UOSVTSVPXX_QOYOUSNSO_JQSNPVWMZVNSTPXYQUTXSTFSNQUSSRPX\JS[_WNKMRNPSSHXGJOOTXX`QPST^URNPPNY\]XWRMVLURLY]VVQRVQ]RURSZJZYJO@KBMQNQLTTTGYXJLOQOSQNN]P`OZP_QQTFPXHRUWRTVTT_QWWYP[POE^WUZX\GCZ_ZOYXVWQW[JUTXXLRMZXULNXQbd^_ZQTRYOOPYSKNRRRQMUSNUWTSQWXQRYXOXPWOUNUQSRTWUUTVRPUTPXR\RbXTVSSRTVWSWXVK_XQRURTYVYX^NXQQINSSTRJTUM[\]VTVRRQWSRVRWRMQXVRRRTOSSSRXTOXOSQNRRVPXUWQPTRTRTTHWORYQUVTKLQEDSG[QNlSRETORODTY\XSZ]PRWLR_WVLORRWOQEMZPUVVLNJNMP`LT?O\WQJ]SLTYPRMKTUJNVYNcTO\bTDQPIQVHQFIJOSPPKWPT\RfSKHWQNNSNXHNKL@UQTNDGOMkRP]UOTYRWPO\NFhPZESPT[RWSPLUWTTUPS\IVSH_WCQWUXTMPbUVQRUVSK\^R[TMTJKOPYQQRQSY\TQTZQSVQQTPNRUG\PTVTQNXVTXSVPKN\VOnRWJWUSOaZTLU_XXNYMS]XTGPUTZVRYUYUcTJL^MVWLSWVST`WOTWZMMZXMUVTMPNPURWU\PVTZLTNRPZRRSORU]RW`PZVOOTOPOQRTTPQTUOIQOTTVPQNVRSXUVQXQSNOMQQQTR[TQVTQROYXROSSPSSMUWVVSQWMMON]RQQRTRVVSQPTOSRRTPQRPTQWU[UU[OSVWVQPVUVXJHRQZUURTWP"?SSR\PORSSRVORVQSRVSQQURLVMURP^aLSP_YUZUQPS[VZOXSQKWXSSVPTNVTUPULYRXVPXQTUSTPXXTVYMTVUPOZVRSQNXRWOPYTSVP@ORRUNTOOVWXSRSXMROSTSWPQWZTPSTQQRKQWMWLPVVMSWcSSPPVWYQBXSWTJaSRTRMTWRW[SRTTTRTYPTPQUTMN]NVQTQVSQLSXWYPQRRQQVPNYTVNLWNNUSVQ\VPSUQUNQQTVSQTSINLURRVTVQKTSXNSPUPXM[PIdTbSUORWRPSMTPUPPOPMSLRNYPUSQVPY[USPWTVUWNHQUZTWRQKRKPVUXQSTWSPRPQSQTXROJVRNKQTRUMLTXVWLWVPXQS\NTOTRVVOfNPOZVNTJOOV\LRSTSUPWURLN\UUTRRMXVSWOQNMUTYQOQRZRROHPRWNNNTMORIXSSOQWRTVUPNLJPTPTSNMOOG[SQ[R]MTTNS`WSONITSUTc^NMNVURKVVaMUYHOJQTUXSPSPMWMQQQRYUVOYTSPMFNROPLVQ[_MPMVUQ]FYSQT\TTQRPWKMSNR^JOPZVMTTXURZOIIQTQRCSYXMUSQYTUMOMU^[KUM[RSMQPO\TTNJTRQYSWRPOUOUH[TLQIPPZUZQNJ\OVQQWWcMUPMKQKXHUTWVQTHTXRUWSNDQRUONNURRYYVXRLNYTP[VSUTRR_PRXQSSQQPYRTOLQTOYQJNSSORXWOZUTXRKUTQUKWPYYSRVXJIYLZSSUTUW?NWKJMXPRVUJUKaGLTTNQQU[N_YZMOMJOYURUXSMTVTPPS[NUPRQRTSNMNTUbMIUVTOQR][HQWRMMN`VPZTURNRKVZWUMYLNUNQRRKIYR\NYXXKJSNWJVYJPMRRQJOPXONLYZTLYYSQFPMWVTWZ^S^MQeKXRVYVHTBZNOMRXTSRT[PHKKQSH]SQSVUUNRPTcYSHYQQWSQQVUTUNZSTQPMOIPJRKVNXXTPHPPPPRNVSUWPWWTRSTKVTSXXPF\PSOZXQ\[S[\ONXPRKMSQXYNWLYR\TVNZPXMXSYQSSHUQOQZRNOWVORJK\JYRPKTMQSURIQSPZbOWWSYPVMULLGUVX[Z\TULUHOTJYPN]NUPSINT`[MS\YQ[SVS[RQVWOVUSUMQTTUYQTWNXHOSTSUTQQSKSRQBTUQSYOI^OUVZOTVRNXQS[HPN_RUPLMLOZVOOSTR^UTNOMVRZOZUUTTVU_HSGTT?NRRQQUVLONTRMLNSKUPWRVRMUYZQXWXPSLVMZIiQ[XRPXSRRMMTOPSSSOXSQWT^ZNUX]XK`PRZQTQMOQYROPSRSVN\PUQSV]RNZP]QQOPQWT S\MR[SSQMRVVJTRUSYWVSWCPRVIVRLJYQROPPQPOSWUXVKVSRURSVOWVPTNKYPNWQMXUNUVPOQNTeTPNNONXKWUUUUULTTPO=_TROYNVRHS:.WTOUXOMSOTUNRRQUOUPRMWP]STVJQQHRfRTWQSUTQXW_JTPWQZOPV\SSSV[VQPOTL~XWU[PR[MXT^WJWRTQ]SNNUPTZRJ\URiROQSXZNVYPTS\NRSL^MRSUOPZNYWZNWUOTRIMQYSOWNWQXQUPPQXWXLTSU]URXUTPYW]WTWZL~WXTUTWYBKMNJYSRbN[hTXWU`ZPH]]WSSCORUQWJ\RPaQJIMTIUYVPfV]VNR`^MPKMTQJWSNSUOWTSYPYXVPS\W\^OOTPPRNWNQTTVTXO^HLPOXIMKRMUTZR[SIVS]\T`UWSbVVUQVL\KXJ]QPRPRWM[P\aUUKYMMXUWQMMMKMQQMTLTMSROTOKJQNLNKTPJR`WWTPLV[[PLZMVTVV^WTPW[^PRKTVSZLXaYYP[ONLMOLTSSSOTONVTQQS]VWUPTMQUUVRSUVTZSXSJJVX[RXOGOTTZTRUVRSLOJNULVPWMUVPVN]OPLVQVQRUYWJM^USRQKNPR^KTXO[ZTWERPGUTRXFGRfXNRXSWOPPS^PWRNS]SITQTVZWYYPTRZOJLURQLMVTNXOTWRXTc^L\OVQWNQSHQROWTVXUaTNSLNUN\@VORZTUhUIWQRRS`ZXSNTOZMUXgPVWNTK;KPNkPOTJV\OWLLRWUXRWSTcIL`QRYWMUMYWM]P[XSPRPRTRQTYKRSSLUNXVYSLRWSTSRR^YSUeQTVU\VSQTTYQZR\QIYVOVUML\RKPTSRSPNTXXZVTSUUPWQUVVNPRXOQQMZUPOTPUZLScPRQ\RJQRUNRPWQTTLRUTQYYQUO[YSKRRKSPXMTNZRSVZOXK_XRTRQLLRZNdKNQSRQVNQSXVSRX`PRVXU\QVOSKUQMSTWTTRTSSUU\XP]QDUTYVRSUUXTU\VL^TKRQPQWVYYKOXSU_LTXVQJWVLaPaVQWUQNWZSWWUOPSUVUTRYMMSPQZWRXRSORWOVOUS[QOUQURTTG[OOXTRY[UROROKQRS\WUVQSUYQ\MNPMOLTYWSXJRRXTQJKKQQXS\URTQVVKPSRMkMTP^MTQZ>TWQLVHWSYN]QSSJZPKPR_RUSKRXKZOOKLQQURPYPNHOUTZPSTYTUQMLVSJEQKJ[HPXRQ]Y[NTRRQMEMYRTROSTWXOYOQNQLWPVVOQHSSJWRTTSLWTYRQOYV_URRPJRUSSGRXVOTOTY`MWZScRLSYWdOXMVXQXTXVVS\TIUQSUOOYUOQRPXTMWVM[PRYQULUPRVSRN^RYXOSNNPVLQHMUXURKVJRQN\JULWWRNXUQWUWVQO[TMOOOZWN\OKUOPZSPPPYQMWSUUT=YOSO`SKMTZMRXYP]RARGNSQXMXKTVROUPUJQRNMPSTZ\QQHRQaMRTZURWMQHT\LIUQS[WM[Q_QQQUVOTNLVOOJ]SPLPRUMSJVQjZOW^LMSOQPWYaOPPQN^TLTWUTJWP6YTYS[\UTUQU]WPMRP[TUTLSLWOSVSVMQPNTVZ]JXT^QTXUVUOPUOWRKSYOOTSSXJWOVVZQVVSYSVaOTNOQXWO`SNQ[[T[SYOTLPWSQU]PSVUSUVUUXQXLQTQWNVWP_SXINSSUW[WRPVQQQTS]RXSSJRUQUVRWHZWTQZRIQMONRXO_MOROUKX\PVQQTT\KaRT_SQNPPKTNQU[VPRTXKHUQMa[RUT]PMPXPEQTZXPQURPUNSWWRWSTSMVQO^KGPJNPOVROLO>RVQ^[SVRZbOHTXTSRUKLWYLUTHKGOSUQTUVJYWNPNWRYOWZUP[P\]STKSYWOVOETTXP[W\SUPR]\OSNKZRTNU]YYY\SZOTQOPNaWO9NYTaYQYYQNO\<^GJVISNNIHSWXQOLGPQG_MRZPNMIVPSW`>oh]BPXOSUSWNOJTNFAPRVTMTcZSHXEP;OIEaJXRA[_E>TWRS`KWY[UDHQS]TM\VDSOMR^QYXXYSXIPARKTOLOIVVNPTOTQQbCLWOQWYXSTLMNUTQJ]QRUSISOVYYLZUONUN_SLJQVZLVNTXQ]XOYSSXUUXVPMSOXQRRXVRMN;aKTWYV]UZVRQNYR^SUTSYZVPUOPKQPXJXT\PSWTQ[ZONUZPJPQaPULSPTW]WSSYUJTYVWXNQKTQMSSPUQVRVSUSTCTOUYVRTOOVOUTYPOUUQNTWSSLOSQVWPTVXQVRTVQSQPTRVRPX[SQWRVLSLUYUQVSLTTTTOWK\VNZUOWQSSQUUXSPPPWNPXTOVSXTTWVTQPSMSRXOUUPXPTSWXXVSVYXQTRUONUUVRQXRUXRUVTXWYYWWVUJ[XHN]JOHQXM]LPWVTSX\WUQUQPVVYSfUWVLPT[TPSYWRPUQSVU\KLWXM[PPXRYTPSVKSZYKCQRBWP\PS]\YOVPQQZSZWWWPUYZT]YPQXTWRPLU]XPQYWUVOSZNFNXMXRTYRP`ULUTLQWRFLOOTJWQTL]WOPRG[XKJUFRRNSPUQ>SN`WMTZVQQPUSUMSQWZLKPJUVQIRNMOOURVSK^PQZN[VNUNXRI[UORURQOPRNRN`QTWSWOOTUWZOO[RGSWT]ZYVObSRTUO[JTRZ^P]PPJXKRQRVKLPOLTXKVU_QRRLVUbTGJPRTU_CTKWWQTRNPTVWSLM]LUKPTVORXXMTMQSVUQKXQPTUVTQWOTTQPSXSOVTSXPMVO9SNNTSNR]QOVN[RMQRSRWNTLRNRPOYTfMRKRSKOOUOPTVYPTPTUVGUSUPSOVZUSRUSTJMTR]GMXNOUTUWEV`GJTU]TR[I\QQZKYYVQJSRPIWTNVTSSVMTVJRTQTRXLSRNXV[SQTSMXSUSRHRQPUTRYLZQWQSMTNTUJTVTZWQQPTRTR]RJ[VQ\Z[NQJTUOSQUNUTQQPTMXQZQKX^JURRTTWOWQNM[[VRXVSSMSOORTWQQPOSMYUSWNJZPNPQTRLI_RTTOMLTHNPLUNRJWTOUHVMXQPPRTJQVLMX_VOTPLLRWWQOPHKXRTOTQURRSJTSXZS]RPMLPVPURPPOTMXVWYTUURLYWRQRPZLTUSUTPMRPZRTTUVNRTLOMUQORVVQY[SQNSNWMRUPOGNPIUPUQLN[QTQUKQMFSRUTWRYTYXZPQVVZaWZRWWVSMOMOSVNNWHXRZfXEKNRYEMXVTITXXSOS\RIYYQVZMTKWXOQOT[TWURTXXNSSRUPFUS]P\UXQKFQUTVSSN[QKURQNOQ]UMQH[TaONSKVRMOK]UVSTVYL`ORRS\OSZQTQSZQMJNXMFWWH]YOTUVWVL[QRPTTIQTVVXVVZTSRR[WNJWNQWLVUZR\OPXWTZQMVYVPULQJSLGYZNRTRTSPUPVSJ^W]UOO[WTXWXTQWRTVYVOSYMPROIUQRRYV\SRWLSGNTXLWONSYPTLQRXWSVNXQWTWRMQUPQUZFPBUPPUZOQRRSSN[aRSQSRXVMURVYQQPSZUUSPWUXUNQQ[TSWSQPXVORSFPSUZZOLKOMLYVWPQUQTP[ZLOROTTTNPOWORONUUSRMULRUUXNNPQUcZLSUOLPRPTWRUVNWUOX>UQRW[OQSJX,,QRUWNPOSQUVPUPSTUUPUXPIKRUINZRSMQNSQXPOSZTWKQ`X^XNSXT_FZTGcQSMHVQMUWWVTVQRQPXVWQRZXOUQWQ^VBTRTWMYSWXM@USWZUWS^WWRPLVXMXOGW[NTSWRMRPZ^OQSYQMRSSBYR]VUOUWSXKNLRXUPTNQGILTNTV[UVRTRSJR\LYSSROK`Y]RZWVN\T[bSPYTLWWRLSOMLZUQPRORPUSMKUNTVTNTXPMV^UQNPTUNMYLBKUPUTLNXOPNTQ\VNTPWPLQHSSPJTRQXXQXPPNNS[RLLOT]OOWUYNLQSMTWYURLNMQUZSXXOOQQZQ[MOUTRTU\NQJZQYWSYWSQHaOOOFWTMZFL\WSTPDUPOOTYQSXKOPRLUXYRWSH\UNSRR_VSSOTQQSSS[VNIRTTKTISTNEQUWTQM\FMSZVQRROTPUOKOQQ[QOO[]UQTNQTXK]RSSTM]HSNXSa]TULFNQVZLQRRQZJRSOHPOMXQURMZUT\RXSSWSZVQUNR[@Q`VQ]WYOTPRQRCSPWZYOSY_JJP\KYXXIU]ZXOQTUT[_SRSQ\UVXhIWOVLYWPT]TNWWYVVQ@WUD[X]RSYSXZW[aWT[[UQRQXULRQ*QSSUV]PVURUQSSQQVPVZXV\XVYWYRSTfWOUTWZQPQSSYDJVRR[NMNOVaQPMZZOSHPQTKRLUMTRZSOUPMLRRT[QWTJRZVPTTZQTTHNLSQQVTOZTMWXRX[VVRMVVSORTLUONNOTLQMVSQTY^XQNTSXWURUTPNWRTQSOYLUPTTR^QXXXQAZQWQTQTRTTTXISPRYQVNRTVRORTYLYPPXYSM\XV[UUOSO\RWEIYOMVXUSYZTOZW[OMFOQTWUOUVKMYUQOV[SRSSZWWYNZQUHSVS\UPJOTVKMSRTOGNOITU_USVTQSTQ[aIN[TTUOUSNUJ^Y`PSSYMLGKSNV\WZSRVVN[SQTRK[ZWTTMJZORONUR][]WNTPVTXXPUPUVPU@QTURU[SUYQQTNSSOSXUQXTXNSQRQOPRZXOBVPPSXSNXUTTRQTZRRTOVOUIUTWSUTR\]TVOPYSG\PGPQPRSLR_VSWPYPZWTRLOZPS\PRTTRSTQQVQVXTMSXJRYSUSZSJTTZQRPRWRWQSRPUVQRV]TURRQQWSQSOTUSUORQMUVOYVUOVNPVULUSYTZWQRQPWRMN[UWSVTW\VTRTXUQSWYURQRPSXTTZYVNTTNOSUTSY;QTN[TR\TSLRTRQTUQUUXXSRONSJQYVPONUPMOQOOUQKXRNRMQXQS^PUVXOXQQYWVOPPZTQTSPX[NJMQNNVSRVRMJONSKKP[WQWQQQZPVY`KHW_YRUKFN`JIcZQUJRXL\I[TS\QQUY]LMQOQLSNVYUM`IJKPRTRQYRQR`TRJYILQQSPZPK[NWMTMONOQEKXRGBVTOUQKQJRWXZHQGQNNU\DKQ\NZMJENMZKNVYQGSUYNVLP_HLdJSYMTTO\V\YSOLRD_SwMNSISTMU[^XMQ[VbPN[SJVHOZPQ^PQXR]E\I^aQ[X\PUMQ_BIc^QUaaPSKfGZ_JUZWGXP]KeN]ONTGF[PeUW^@OZTROSaSTXGOHOE]R_OUUjJQU8IO\QYNN^WDc\OYZZOWQv[WWGHLZPNQRSSTXJYHQRVPJPZQRLQPPVTQSXPP\RPOUSTMV]SPFRWQTMMVUZTMQIULRSNENWSWOQRVNPMSOITOWMSRSTSWYVNUROOLYSHWPQPOQOSWUURL[[SUP]XUVWWKRKVOLPUWOPPRSPQJYSSUROYNRGHVWQP_PXTLUMMRUZIQJRWSUD\LUPWOTYVVVMTQYQMFXWQMFWVMOSRWVLTMTSUQQRNZTZNWIMPSWZGQIFRDLOQXHZVTYFTS]VKPPUNKORQc^LYXJJAMRXB@OWVRPOHKXRSNRVNVVNXSNRSIGZSORPWMNWYKMLSSQQS:TVQPRPP\\MTVTS\NUPT\bVPPTZUQRWRMTTTTYINYSTTORSPSOWNORNRSZLNXRQGJOSQKVJRMYTPQ]YNZOUZSVUTRSRTPUOZNSRWbPGTUSKSOWSWXNUWKVXPQNMVVRUXQMRTWSMOJNKPSRXSTTUPRRUURWOLOSSVVORNT^WRNTPTZQKTSRWPRUYQXMQWOQXQBN_MSRNWROVXRSPSSYTQVRMLOUVXRUPOWPXWOPSUPSXUSNRVSXRTVMSSWWPUSYPSQROTXXQYWRUOQ^WQNNKTXPXPRWSbMRUTMU^PSPWOTSMTQPQWQRPPQRRRTTRPUK[QSNPSNOUTWPRWQSVTRYVKUWVRMZRQRTPRPPVLZNUPVRRP\OWWaSURTQNUJ]P^VUWSUROVPQOMZTRROTVVXSPYRDMOXSJRQVQSPRMVURPTXROUOSSXUNWPROPTXUXT\UROTSNXOVSRMQUR5SO\RUSSOPQTVXPUTMRTTVUTMXVOVTUMRRTIPW\RcHPUSQM\OUQNTWQYSVZUJXWZHPRUNPOWRRQPK^PVQXQUXJX[M[JPZKVPYZYLFQRTSTSWPO[DObOUVPSTVOWJTNKRPUPRRSQRMMQQYWSJPPNSWVUQV_UOURTZQV]N\WOL]PPOTUHLWRTJVPUQSSTUWROOTUSTNVTMSXNVVQOTLRXVJUSYQ\WPQORZRPQ\SUQRSWPXSWSNTPPV\VSNVST[ZSZ[SQVXOSOTPQXXcU_STLZSFTVVSN^NbGbR[UJZF_SbYTX[VTU9Z^XRVdSMjPKWVHo]SMaYK^d^UQSFO6IUX`^X]CQKWU^XYTPJXLMKSSR[U\OURTFN`RPWTURWWJJXSNUV\KWROPQVWZZWMVTOPKIPSM[XVQTTUUTQWRMVOVVSRPKZTNRRSTOURWZRYYTUQPTYOWQRQ^RQPYSTFRXMTMORNQPRPSWRTORPXNVTZUZNJNSLKVUUSYN[MLPQVZYWNUSRRVNMSYUaUPZQQTNTOUVWQRVPPOOQIPVLQUS]RYQR\TSWZLTWUOVVRT^XMY\ON[QSUJUVZSRN_PVRWWaVUTLWY`I]OQRZ[TMUJQUTTUQFYXWWLJSMQLSW\TVJNVVYNWTNTSM]QSZQYRWNPORQNRTTIDWRUQSTNSMUP\RHWWXSGXO]QWP[QMT`RONUN^QTRWNURPYWYUPTPSTRSOQQQYSWSHXVWVM_YSRUUOYOOLWMRS]ROPKLTYPXZPRSSPUYWNRPGFOXZYPTVXTTYRNdU\QUXNLSXVXVLQNKVZPMYQQRRUTRQQ[RX[LUMMSWNNTDPWRZKXNUSFZPVMWLVXVRJFSLMZS\KL\PPqNVT[UV]VXYTJOVPPVVQORO[SQZ_VRTXNLXOUPWKKONWVRWSVQWPYPVTUTTNQSSUPZSXEOTPRQUMOXWSTOWQQTUZ]Y[STUWMPQLTQVTSQOSORVSVOYKYPOTLWPfYMLPQOTOYWLVW\QSTRQEeZURZOSWJW?=QWSSTPTUVWWPVMZORUWSNFNS^JULaLTMLXODOOOKUCUMQRPJMXWKWNQVQNW`ObUWA]YTTFOVUTFlVSVV\IZOPPNGoS^KQ\OWMQRQQMiUIOVPUQT?OMH_LLOUYX[]TRaDOV[IIVST_OUZ[^UfPQQ[eF\K]IOONTYZK^OQFU`DQ[RZZQ^STKU[YSVPVcZVONQGULLOIUPGJITSVSWLQVPPNPTNWRJSc^VNGGEKSH_QZN\MTPNSK[TWQQXF\Z[XTZVOSWJbWRMPiWVXSLVROV[TQRTZOLOLUKZZKSRWNVY[WVPXMZO]JQYWTNIOXORVRSWVaW^cEWX\SMGQVWPVRPYSSPUTTGHROMMgIUHQVNSWOXVZZVTSQLTZXWWXTPGOMRUQ]WPSXK@XQTLOGVVQYWLPVY\IFXJSWZQSRWQJKULPMRZSWLRVNPOQNTQTYUTTSPQTKSXW[TRZSSSWYLUGX\XYMCRLQPUQ[V\YIPSLkTLNTRPUMT[LJSWOTRKNOSMQLYSOPUMTTOOLWkRHQUQ[SJRPSI^XISFVW`YTPR]Ma]KWSS[POOLVYR^JQTTNZbSQLUWUVHQUQXQQRPUSPNMHRTSELF[WOVTNOO[QKZOV[WPK]Y^MXM]YQORUQOH\MLPTUKPQNQQNQNTYcWPTRLYT\IX@XSJQXNNPFSQLTKIRQaRVMMXaQMVLHDMNTT[LcO@NIOUOKIKTMBLDSTZYLUFROaRPPPRYQNKSNIWVYSMZUNMONNWSSXPYPSJP^TQVLCaOSNdEZSNM`LSNLbRL]QGKSXKA]QPS^LaNXdYQOLZTOKMPNWM[WQ\UXPT[XZRSLQQPRXWKUMPZU[PVZVYa[UNPLU_PRNVYeJWGYVXSJYPOTSNZXZVSNUMQSMJYVL]TNPJQNMPIRXYJmNHUOV]UUOIPSTRObQ]^YQ]JHR`FFNUMXQPMVQNXUSEIHUOOS\PRNUTJORVYREaNRQNRO[PJX`OOKPKMQRVOONQTPVV]^\RWPPTTMSTTQSLXUdRR^LVISMTSGNVVTUKJVRWSPXHZYQONRQUPTUP[U]UUQMQ`QQgXPU[OORSRRZPLaJIWLLTRRRWZXKLTPRSWTZUULQRVRQQQPOL\XTNLMQXU`Q\TMIRLA\aLJNUQT^IPTXSGYJUIP]ULMSVcM[TVHUPVeSX`RRPTQRVS[VXTZMfO_PXQPQUJVNWJR[TI\P[NUNVSULOYNNPSAUWNYHFRJZXQ[bSKSLURO[PNQFQTXXYU_TPFRTWP[LRSMOMV[]RMT`KSZPQI]TZL[XUSSXRLXAPWPWNRZIVSPNHVPRVPPO\bHUQUXSTNPMSOQXY[WQSPOMSUO[FW`SSNPVNRZTKOKTLULJTZ`XQW_KROZNRTYXOOT\[OY]WURTLPaMTPYSVWY\F[VT\MRSBQMNQWUTWN_TUXVYJ_\OGRPR]ZNTUKNMTUKFPJWJ_KRZKXSV]MRSPOITXMMZVJKGSQEaOTO[F_NSVWRXPQAXU[ETYNZMQUeKNQQN[OG]ONN\KNVWRWROSWSOJYQXST]SQ[UQNYXLUPRZOLVVVUPS]eVVRJXZUXSKQ[[XMTOSTJNOTSXcM[TLZPWbORKQYUUPSUXKQRVVW:MT^NWRVSVQRNMVQYZWXWQUCRQJOQQLQPLJOTNUCUMUSQJNRQXRUZRaRPYUTTPLWZQQLYOQRDRRRPPP\UVSPS_QTPXWQYQXTQOQRPVPOXTSWPJTELKNVJUMUOSGZZMVPONRSWYYRSZTEPPMW_WQFRMPKSPRTUUOJSVZZNWYXSNMUY\_K]NZNLUe\OVUTUONSaIKKOOmOPXSPRDSPNWKVbRMEVHSXMMRTHOCNKTVREaRLPLOMWXQ[QLYQNUPVeXSKOKV\ZLHLMPTFZ[UKXSNWXQLVRYPOSKSPPRLVR_QUTKMHeTXK^OKX[YQ3:QLYVLJNOXTUSLYZSLKZR]LSSY_LaLUNFL\TZSOO[OeKPLQUR[QPPDQ]SRPN[TpNQ\_UYBCHEZMTUNUYFNUMKL^NWMVV`AMHPPPWWLNOTO_NWLQOgPVKE[WINMNSPQQRXQNXMJTKYLWTJHaUMMPCeQQcJGP\QOXSSVTRU[NYQWTbO]R[QWHO@MQXIRMMBWRKQO>JTG[LzIMTQROTJJUQOQOWTPSRbJFNOVTGWIYNPXNKSOZGXZOJTVWSWWNRMUSMUUI[d]O[NQOUMLGVXOLSIJITOSMTSNKSJQTTXJ`QTRU]PRQTPKIMPOPQPFXYWPPMQXUSVIgPMKP^TPPZNRJNXG[WINVNIQSGJVMUVL]JUTHJOVZNa[RUWRBYTSSQSOQIPSV[NOUcOVTIRL[HPQTY]PSKGPLOVTPJPQHTYVIQYLNOSMQWVTTQXQVBTRNZPT[YZT]RTILGF[MUUOQXSRO@DQORJVOKMWOQXPJTYRXHKTROJ[OSXYRQXTQRPVIZ[OQLNRQTOOPO`JQROJNOTPYRPVZKQVMPRTWKHTLTWJLUNLTPOTR^ZXRPOSOQTXQPT\NNQJIOTYTPWXRNSZTWTTSRPPSODKOLTSJWMJJOSXMMTMXP]OTYZ]SYSYTTSVUOW`VaQUXWUGWRWDUWSKSQQSNEUVXPLNONZMSLVXJWPUJULQJIVa[RYN^\SOXVQNWGYUNNUBES_M\PKIH\UVFUKYQVLNWEc`URPLUBY\MRbTMJgWaQYQQO]RWGJJLHPRGQUSXSZKMXPKOXK]QQM_`LYVVBRSKC[QGSZXUZ]XSPONQTSKYWLQZNU\RTTLGRTUMNTXVGQZUWYHNPWVBSUENSZ_TSQIMMOS^[WRRQ[MZXVK[_LMSOOQVWT[QYTIQMQYUDTRSHUROROPXLXS]GUQVRJSSPWUQUTYQUQKXJNZLVRNSPVbJXONSOQaK\QLRYURJ[MORGFN[[KQSQQQQJWOTURVRPINZVSGMQTSMEJIOVQSJCOXUF]NUP]URMVWMZNMAgM\FOTWS_N[UHOLRVRTHJSKORR\SXBQSMG`aYNWNPN[POKTURUTUNSP\_LRZCKRbUNFIMCSAXLPPIH[RT^RXIULLPLMSRTQXJOQRW?EPOOSTLDRYMVLQUWPWSNUXP\\JLUMR_RVbXYMZM[cdRX\LKZVWWUT^RXNJT\VUKRJOYS^UbUXVTQUMVRKWVWU[NRVSV\L_XSVKTZRVJXJSTVOP[SVYV\IRLNYNMUWYRmQPSXSWPVYXRUPUPSORNWZYJ]OSPX[JUITRSMWKXUYRTR^N^AWX`MNOWMPOFIXSUUTJTYUMNWLLJLTVKaQNNSENWOUXbT]JNLT^XKTX[JSMVKV\SVXXPUIOUIWXOKRCgLTNTLSVPTRLFSPMQSWORNOZONOQUQMIZORAOSSMORPOXSLJNQMRWTSLTgWSORPMMOXRSPPTOQGZTQNULTNVZXKJRQOTYOSRWQPYS^MTVRNWPTQgMTTXPRIYYU[^VOIQPSMQS]LUKYRNTQPNKP^OH]SRUbVYYM[WPWXP]Y[ZWQTQ_MOLO^PWDPUZRTRU\SWKULZNM[SQTa]RNYUVWZKRT^UQ]NOSTZLZPNHZ[YaTMUHRUSUMVKP\LQZQWIMKANPTBLMT[QRPPWPJ_MG=MURTVWQQYWJ\PWJSB>Y[YVN_Y@\LSNJWPLUKaXRWHLYJSMLIJJPRKSTJULNME\LRNHJQJPFSRMKMQMSGXLKFFTVRKTPNNCKWLN[O>WLIWUHLJJJORZSLIUSJRHQIXKN]NTOFTMHNWRZQLVaWQWV;VKQPNZOTRKVSIXVVVTSOFJOT_QcTVNOYTKRXPRRVbHQLV[TT\QOWIUSZ\JNHWSRLWSJRQPXRW[R]TTS_PTRRFWWXQSGWTYLQPQNTPURPTVWTbUSWaXPNYSYTh]US`UOSUS_MV^fVRTUXTR[ZMUHLOLPJN^STJUHKTUVXTRZVQO[MNILRQ\ST]OZRQN\V\JNYXKM]OM]aR]U\PUGRbZTMQHMZVXGOMO[VR[JUJSOJQSQUWRSUTOKXOGVQSZN[PWT\QPPLRMKQT_VXQQOT^X?WPLPY]Y]QV`VZSSOVZXQLVMSSLXVNRBA`ITRTSK[MWSfRTMWMNXXLTQ[OcTSPNLYXJXPLLNOORFR`VW_PYVV\NJRPMcIRSOOTQNWWWSYMfSXP[FRLS[JUOUWSS\TYQW`UQ_TQOOHWOIWTUVLQRMOPVWOGYYVZEU[XXYTFHYJZQLIV^MXQPNOZQQZSVUJCNQQONEKMUHFN?Q=YTOZ^<`GPNP^NLOU[RPDWYOHQMWSFELTR[JQLWEMPM\UMQNVWOQLCNOXRQPM_ASQNOrSRV\OWUVTXMQRJIGFZGNOVVRMCOVT?S\LOQSRPSJQMQKMHURJQMVMPLQXSTP^MILK_UYWXIOYOTOTGIVKLMTAIGMMR[XZAS^`UVHQYOP[?QYYKQZG>RRcbJb`IYYHWSITNSYTGO`HQNLNReNWUJYNPZITLOSWRQXXIDFUQPWQOIORTKWRLVTXT[LXROPMVQTDMYHXKURXWTVLRDPTKLNPI[XNkKPQ__NHRMoPSOSXNQUQ\XTMHRRXQIOSSLGMNY\M]LEIIRPSAWVNZT]OPZSXXNOWNVMRMUPVJPaQIQTRIULbY\QM\QUUN\UHF=QWIQKOQPOVXHY\NQTZGVWZhVNIPQRPTRFFJQZKVNWWVLXSSIRMU]NTUWXNRZUPHWVYPRVLNUPQWRRLUOPLbTOCOOYUWTMYYIPFQVTLVPEUXRQVDTPJNPNKY]ORGENTRN^VOYVFQVRNLTQUVWHRWPUNYQQTPZX[XJPJLTWMVHTTQKQTRQ[UKZWWXUOXSSPZQVROYX^ZRUYLQWXZ\PYQHEVU\WRO^LZRSLRSLSQSJQZTVVVJTNRWN_XJKP[XUWUTQJ[PXROPYURSUSOURIUQTNPPUVLTPKVLYHONKZ^[NTXPHWO\SUIRTFRTWRSV[VNQDMQUKW\UUOOJ\MP\OURQOKKPRLO\QUYTVPYXUSRLMT[XUXTQWOMXRLOKJRQRQLWSPPMR]UNNRRUYRXWUSQKNNQXNTNPP[EOPRQNPYHSpFSSJOOS[ZSTXQZUELTOPMVKJJHUcTJR_\ROMDWGUNZPPOLLZTUMRK[QTZNJQOMFYPINRSVHNKEPLXIRMaZMVJUVTUWQNPTSTYSQ^MSHSNHJNPKWUF`SSLROGRJeTM[OKRW_\RQSTY@JLUNWITRNOVNWSSORMXaXK\OHUNQXCKUKQTMMU`RRGeONOIQO`YNLKMTMU^PKXLOXRFOSIXJSNRHNWMNO^USQPOTNXXV[QUNOUCNUYVMIURPFRQSOSSVL\fSRVTYbZWXTN~JS\XOR``\OOXOR\QQWRNSSLRVRQNSQLWPU[JWQIQSPWPXPPKYMa\ZbIREQQHZYSNMHLQKVMXSMKTNRWKVKZcSYWSSLTNQTT[WZZKKTRNQO@LLRI\OTQPUNKSMLVTRTTJQXOGILV[PNZNPQIJQMRRSaPRSOR]PHTCSNIQUUKJLJ[\JRMVUORRQPNTOZ]TWSNJLIKPO?PNcS^EW_]WW\RSSY:^PTQH\IMVPVLPRYfG^DHLVQTIMEd^O]TVSNWVadIUUTRLIXTGXN]QMRFOTNR_^T]PZOFSNKRUNMP[NWQHRNWR@OSGQ@YUVP]LNTY_R_R=SPGfQUUTVQUWmWNUSKB\SRRUP]^JRRTUN\OMVVONNVPQQPDTUONNTUFMQHPR_YXWXQ[PPLReSXVWUVPSOYUOMUSNXNWZTXV\SSQJQSMMRI[QMUJPNPHNTLTVSTXSURQ^RT\XRcYXOMQKQVO_QNLRNZUOSSSURVQQSTSYRNOR\OOHMUQQ[^IRRRSNVQSTTIRNYSG[MURQYNRGKJIMRLVJfVLWWBVOXWYTQXRTQLFLcHTMLUOT\XRMKW_OUW_OVbRNSYVMWQPQNYX?VSIQSUXQJ][HKTUUQUTMULWUMUXTV_L_CTQ\USSHS\SLMWYWTFJUQQ\PNPQPJVGNOQVQQ\aOTVIZQJVYO\KTRVUUINOKNRRMMXQRZUTIZZ]TUVMYWVQVRNX\QWGXYQKQMWXYRTJRWIMXUTWRZWQQUNUPKVSMMYOKYQUPUWSNRVVAQMMKQMRQUO[OWRRPSTHTJSZ_VOQOL[GYRZBWQGWMKKYPTOMSOPTQ]XJT\WRSUYNQSZVUOVJVWQNPCN[KVSOSZHTPHSVWQYYXINNRNSPQP]VLVSPNa[SCMFRDNO]ZQMPORVUWGaQKODMN`RSWXNUITMVTXO^OTV:VOWRPRQRJSLLKR[ORTXPTPLIXNcRKOSQV[EUIPGXPIPOO=TCYKHQXRRLKPMVWUXMUTKTMRSb\MXHO^WTJLV`UV]YSHVXVT^TOQMMRE\ZXMMNTMZ\KKPVYT\fYNIQPK\HPQSUPT_MbQJ^HZVQUTIRcPYHNN^WPVKKVSTOSONSePT`PURKNURSMEULVMLSKTZMVSPqLUKROPYVI[FQLO]MJYGPVOOUMXb`PXRS^YWZUWPWOHLOP]SMURPLR\OROUQ`\GcSWSQMMMVSUUNWMOVVMJE`ZRFD]pKRXWQRURPUSQJPAOOSVRXPKMKKPSTW\XTMRRVY[URJUUUKNPTUUVMKSlTHSTNTWM^]VdIhtNTPBWRQNTURXQSVUKSYNJ[SUOLOSKWQ\TPXDdOTWTQNIRFP_TRWRTVVUTRUZPT\P]JVSCEbOMNLO\VSKFIMPKUVKYVCRPRTH]HR[PUXUPYOb[]MMRORTTYMP\RNeR[SVRUQJI]GWQUZXTYY^GT[MKTXRT\SOS^QP]YNQSOIY\VRSRTOXO`TWSFOQRSNVSJXUaRPRLNNQKW]KLSIFGQRQPPecM[YKRXZXcRLPRKOSWYPY`WIZIPTRYV]TH[LVTSVPORRVKTWRQYOYXZKMLUOONNMZJMJMPRSSZQQSXQVSRIOSNNQZNKLOMO_NT_UTSOJCUVKMMVOINMMYSGOaOVTRT_GJDXLSS[YWIS_aRWNNINRN\RNQNPJYjNRPNPLGTYEA^SWWQTPWSM[[RQb[HOFUIX@UNRSPQP\GWOUYJS[SJQSVROWQVXURVQ`IUJZFYMTR]VRURLMNOM>VOUJQ^QOEKYKOP[VSKJU`SN[BMOPPTVKONLIX?UUPHMSJNMRKM_PRRSUMMOPVUKXLKTROOU^RQMMJNQTOSPNSMRTRVCUTZQIT^ZMPWW[UUOLPWNWOPUYRRMOJITRLSXPVLIeNQ[RMPRXVSS][RVSQTLO\QR^^LXXPWQPOWVWWUPOTMRNWWVONWRNIVOHVVMVTUUIOYYOUXXQYOHSU]NVWTNEWRGQQPFIQTUV_iT\RR`XQSYf]\TK]VPMXXZKTHKJS^[FKYV^QOMMZhHS`KTGILEOOPUQT\VVPY[THRMX[YTZS]UMRVC]OLRVQTEVP^PVRSSYPXOIOQQUNQQKTVCRWUFLJP]RTJSdUR[\^Pa^OJZIRTUKUZPQRSRULMQXMVYQCLOV@O_LPcRLPQF;PVQIL`WXR[NSPQOEzYM]NPTX\MVMUKSJJTM^BYZU[OTTTQUTQFSRBPMONFUZRQ\MPNG]RJSGMIYNFQI^WKR@XHQRIRJQaRKURURYiOQHcVKLZMPTKROOVLZMYSJSNHHOQQVRUTVRRKKUUXWWYLXYWDUPSSRIXUS;XSPQWVKVUROTULOKMJ^JUTJVTPOLKXTXMRWZJPMUQWVOPQRVWPIT]TQYT[Y[RLVSISXMUVWPVOeRYMWLP\KK\IV\YTSSRKWVPQLYPLZSHXISOWORTYNVTTTRQY\QTmFRUNVTTRUQPEJVRXQNXRGLCMHJXLLKPYQYNNSG_MUVQPMNSSTNYPRW[HF]UTQOMDQRWWRZ_NVQYMQSaQPPUPTNPQVMNTSQVHTNNQVRNXPWQJKUOPIZRRMLWINIZJDPPUNROFTU\KVNAPJRRPPGVT[KSQHYQOXPVVMOHUMXRVZWQMNUSVKIQLLRPOMRVUNPT[VRJP\N[SWOUVHC^LGROT[XSH\a]DSNUSCTVNUXVV\TMOVWTTWJU^RTjIUVNTVWTH][GQVPVRWOHQQP`TQSQTROVIHSTLKNKUQQWLJ]MSKLSTGKJ]KTQUNLMJTNQLTV]SNRQRO^WOO\UQNER]N][VHRPWQSXlOMTdXJLML_EXQSMQMIOYN^SVR^RKIUQY\Q[Z[UWGTXRFWVU\ZX\ULRKGPPPWNOVQQQRLQKXUQ]PWXXRTTVKRFeXSMZPOYOULJXDP^TFQO^TOQOYLKTRPTMHSPVR[JJ_WQXMUQMSHM\RSN=QVRMRLPOLORVX[\jMcKE>[SDPUMSVjVTSPPUVXQ_O]VBVLLSSKE^fMPXVYOPVOVQTRRZN^^ZJIONSOKRP\PRJK\PTPNNTOUKNCNQ@CTRTQNRXLYPOUZXJGY[PWRUZSSWTNTPSU]TcJRVXXFPTTVVeWHNPGTTGSURWQSONSNUKVN[OOFTXLV_WPMRVFM][WSYEUNUZVJMSKR@]RVYOeVSXUVUYSSOVAOORWSMONSTPg]GKOXHWKTS[QQPQVRWUR`?ZSVK[\EPQW]NUYNRU_MNVPY_PNPRWKDOIGPVSLTZN[AMUTeMTMOKIOTWZKM]ACXIRKQTTMMQENSYGWV]P^NOTRYPUSNLNWWAP\WUZIYL\HMMPRLQSDIYWVSXYT[POOQVNKUTLU\]_XNUIY^JRRXOUXVRTPIORRWTYSOVOSXOVBNWRIN^^MZWWZSPYaTTSWPFTOOSTQRTRGAVW[ZTT\OSWKYMPRRLUFJYRJLTSVPVKR[\TaTRMNV\MRXQYURVUNTPDJ^i]UPOOrRSTRTQQJTUPMSWMMUTNLNLE[T\\QTPSK]PJLXTHHRVVDXSN_QYUUYgXWZJUOYMWC_RMK]OQUPEYLZFOTQDSQKySMQTOaLDVSFTOYNMKTSPKONTJU`MMMR[FMbPT]XNBSMUMG\aFiHIQONS[NQJeORTTRX\RUSSQIRNCTV`J@IRGPRL[UTINNIGWSSRP_OSNKQXXVTISTR]LRTOIUMPXSVGNSMiPSONKGaNRTJOM[UMUURSQZLZWPRILIJR\LPQFJLKZGNZS[RQQUMFYPLFQNKXIW\SJZ^SZL^PSWIED_SWPTN]QQUIQZQJOORNWRXWWR]^XNKYIDDSUIPNRISQOICKWISPN[TCQPTCNRUXQ[ORQZUQZQVPTR_VTZSSSYTXZUKSSUUJRMRRNYNOVMPXXUXLQSOITPRVQYKTQMJIRMUSWNFMRROUTeVSPWWZTSIcSRTRVRRQKYTPVRJVMOMRRNTV_\PPSSVLUORXRRSSLPPSQQQ_TQNSYLXMYO]VHSWELRVLYPYVSWPUPPTHTFUKMRIUOORVIXUFQIZNIEXYVPRSVEXZLUjWUVSQUJYMLaX@JJXSW^QKMQTSS[JXIOJGVKFYWFNTV^XUTSDS]PWPRSEFPQKGYYPULQ]WRbYIITOGYIVVNO[ZIH\IT[FPLTA[QRWBUSPQ_J^DTYRfVL\TGbFSNLYVQZTLHKcPSVQQRUGXYZSRP[PZJOVSNK_KMJWYULVOUPORUQX\T_SSTSORUWYOQRPUUQQOTKSQOTTM[VPK[SZLXXUPWOOQTUIQXQSTRgQTT_NOUT\HQJW]RVKRTP_OWJXUIYQLK\PR\NOTZIM^ROSKQXUXMWOIJPUJNUWTXXNNYQVWTOVKIWHXLLEVVYXQTKOUXJYYVKQQQNOSZXSWKUSHT\RUKUQSSSQIYU]JOZPSOMXTSOFWORTXSUTOTOTVOJLIK\SNbKZUXGRSS[RNV]NQQ_NZfXSWObWOWNWQJP\@W`RRKHSOHOXMVUOPOfXSXKRSQR:NVIWYMKXVYTLURvOPVLQRO\YVKNLKONPUWBVSKTTC]CIWHMT[QQ\NNQZN^PZNUOUpOSK\PPVX^QWXQSMXFPX`SSPNJQVSLFTNGHRSOMU^XOFTVOXZP]S[ZEIPSPSPNV][XVMXTMSOXNPIOHXWTNTQNXH>ZKYKXQX`OQQRLENWUKGPSSO[NDKMRWWS^_VLXBLNP\YNQNOeWNMWW]VQYUWQWSTUIULTUOMVSQaMRRTNVUJTUSTQQXPNRO\TNQSKX[OXaJWPTVPUVSPITVQY\R^U^aSKVQOMT[OYPSLNUVVSVX[SYQTWXQOWTPG\ZVNPXPMSTRTQJ\WOSSTVSaQPTLHZUVWTQGSKQM]LQJKQ\WUMWOMKLMXTMWS[cTbVTNZXUR]QOPQU[POUQNDUJJIXVRRNTXL^L[NJKTSOLRRLO\TNPLMSRHPXTQYOQZOXQ]SQNKRYSNPMRQMTTLNPqPTHP\\WSTQ[IMR\X^RROQSPNFXYSNMTMOQUVRT[UNU\U[PRRKU[MHJJQVLQSRXJU`OVOQHP[WSSYWZJRXVLRUQMXUPJXPSQXMLWVMULUOKOSSREPJURO?YLKSNQVSPXOVRMI`OPST\NOGUTV_EMTXRNW]VNKNQNXUSPZ[RSSYKY[OKPSIKEKTbDMbS`JWQORKPRVLPYOXSTKSTVVDIMWUZNFPXaQNVFUIIX]UMXAQ[[NZMTSTQQI[RMXPRYVNJWZSIQNLUTSTIFNRSESOS\QLYYYqXSSPILUKJ\N\GWITKFS_STO\[K[NKK[NVQ@QbKNKKLYRWOU_PPHSNXUPGI[_ZR[KPP`DRMNZUZX]PTP\]TOcXFW[KP_QWRKHYTTUKNTYVRV[USNTNXUQOXSVRX[TVWVUTjS]XS[ZYRTUJQS[XJSNWZTORWQZZQUM\PXW[UUPISWSMWZUKWUOT[VT^YNWGG]_QUQ[UVPVOUOQSUVJBTZKUP_MPNMVW[VRVMSIEQLGOLLK_IFUPQQ\ZQKUDKJPLWGEQSNK`OTDVO\iVTMUIXPSPRUOYWZWIHHEUMOJQONGPOSRUVRTDW]HQVSKS`VFQTJD\NO[ISMRLANMQQUQKRYMLhZNYQUJRFRRPKOO]PUJJSTTQIWYQUTQVVUWXPWW]\ONTOTVQNNCSTYPLZHMQVVO`WQTRHZEV^TJYVRYOJUPGKNZHGeXZNOW`SRWQIYDCRWOQ?WWKFWTNSbYVKWWX`X`WTQWUNaQPSJ_XQ[OS[OURXMHQZ[VUPVIRHLPQIWDNTOJQSNWMCRTUMSMWLM\RUWNYXOJPXTMNOIZJUNTPPTRQPGUJfPXOVPUUDSO]IMNMUPTMR^IPNQQOMOUXNLXZSWKIOZUWQIQ[URWLTPQKQOOZGUQQUX[VIR[PIOaTROORMTRMRUVd[YRRH_Z[VUUNELZNYXPVQ]MRSRYVUTXQXPXJOW[XPNPSSUL[VPFMnQJMSQYYVQQL\XRVKPQOLOIPNVDRQKOMKTgWGRQLXFUOPPSPJOQRRlQZSKOFNULQMQS[SPM^TR^[MSFVZaQSGQQMTMHOMRXSPZIHTPJGILTFFRLMTRSgLROIKLPNSLOVROGIKVOWRG`U\XORFOTLSM_QnUUVVJTROYNHNTSPRMSQVLBRQEVZhTSRLVXTNSURMZPPTKORLMUIQQQMSQOHXWSXUPRTSXRRNU^LNXTIQTTTWMSTTSVQSTTTgPVKJPUPRULSVQ[SVQSSQYRUYU]PVFRNULLT_SHOSUOUSXSSO]STQ`ZRSPOZNPTLXLYRYTII\OOIMKKSTLXLGGMRKWHUTLTWIQNUXJP\WMLYLVLTRPXZ[WMFOQSJNWXWWXN^IRK[THIILNTQLZOMTRCLRIR\LXVJVHLTRSRZMDMOISSI[EXHUXRRFPTWJNO\SOMMYVNYS[SOEQQUKSWUHTVQEUZXPUNRPX\XUQLLMRJkQ]KWSEOYXR\NTV[UTOSNQ`WVGQcMeZMXNERUJHWXfNUMULLNQYNQOUO[QRRSQRdLTYDOGVVYPSO\QWSSNQMCYLMOVPRINWSVQMJQUIJWQQVUV[STVdXQIWIUQUPURUMTVZIPNP>[JXOURYUWJIRPVRKKVSXTTMVORVFSUWP`YOdPPYQTUSPS\QURPOHTR]PV_UKUP\NRTQaVJVQJWTWTYQ\G\SSU\RODSVXMTWPMPVV]ORWQSWJR^NTXRUXSQTDSUTXIYYSSPTQXQKWPOdTUYQWKQO@GQMPVF\KRRJKZL_INUTTRRSQO[QGMYXLVRSRITQWOPVXTUYLVSSbOPSU]UUaXYPBQIMOMN^JZW`M\UXWUMVO\ULRMTWSHVRWSZXH\WRSXRRPQOSS_LPNVAQRWEQRNTPOTVTFXHOLQ]ONIQUSORFXVONORRPQYVYTNWJXFJOYN[VTMMeVXJUUONTXRTFVL_[KKTRKVWWUUYFOMQXSOJQXM^WNORRY_VOOMXORKWQRhVKUWSRUTPScSOWS]UU[SPWR\MNSKFPVFXXQWLITXTSMTOWNLGSWIUIVUPMWSQLDGTWXIXWWSRNNLWRVKSLPRlVYPVLRUSUTJQGISVQGIOQYTMLXOMTDZZGORkNQVKKlRKXL`USIP]NRUGZEKKYVYHOWS`RYUXLVSV]ULQTWAQFVQOVQ`RPWI^XQTWlKUNNDKOTNVHDYQRSWHYMLRHTOUOSQSERXaJYMVP]WXaEVWIS\MHWYWX^TOSTOKVNUPaXKTSIKLILR\I[PSYM`IXgROX]ZRY^VOMFXOXQMVRRPUSWhC`NPTM_aO\UXSXVQ^]VQO_@RUKUTSUTTSRTZNZPUVTOSVSNhJORNWURQGMSQSP^YMNWQ^OZMdOVPQQNXTQU\NRGSQQILQSRFUTNQjUTWYYZaZ]NXWYP_XZ^MQWIZaQMTVQ\PSPSZN^UHYQ[RJSXLU[ZNEGLTIRVMQSIOOKRVQFPKJUWJ[LGFSUWJRJTWQQPKOZIXUSTR]RVSSS]NTRRWOPYZURRLZ[OQXRUXQ`SIFNQOWUYN[FWTOTLIVT[NHXOUIRsJQLZKUZMVWOQORXcTRY[RSMNJUGSW\PJ`KVZNOZGK[HMRSUUNPUScN]ZZKIQJUNQ\QPLMSWLQK\PLPXJVSXPUm_^JIOSPOMXXfZOZZLOXRRKKXPXTRLXWVNTLJROHOQ]X[MWMWNZ_\QMVGVQXKP_WMO[>NPQPUUZTNOPQ\QQTKTRQCbVYORZURLFXRNQRSSKRMLQVXPSMQbPLYHPPM[PTQbTEVMQCPO`TVXQST[Y]PZIWTQ`SQUOWbLRVRSL\JPaUeTRSGVSGYNORLNKRNTIQIKNYYPQ]XTVURUONOJKPRPWUE[VTG[WNQNNSNURLWKSLNJQLUGVTMOUM]hXOQVRZQRLOZIQYSWMHTLS`YQMKYNMUFPXPQ_NZUQ[FWUQTN]YTO\L[LVSQNYOONKEMVK\XK@RiKRU[RQKRgUMV\LPXS\VThJPNV_[PIUEPLPOJQIU^VhJQJHHSQPNbUGXFOWWLJRNQVRLTP[QU8OUONzUJUK_VI=WX_TGQTSJ\QM[ROO_QWUUUPcSOTGTQQThSZYYWHKMMTUUHSRXRTIKDSYYMZJPM[SNRZaKXZYOMSUMPQJPY^YTVQPPUQITRROVTPPRNRLWMLUSPNOZNZSSRPLRTPOXJLUNUJLVWYMKTLRRWUTSYTPT^PTUTKPQRQPPOUUUSLRRVNQ[VWYL\LMPWKNNhS]STKMTbQOK]TKYPRUT.OGJNXQRXSYUZ>PXXKYHCPOYQQL^STWR]QLMMETNVKRKSUNL1JWMURIWMRJUTLPVXU\KRSRGMUNQVOU[WLQSPQSNU]TSQU]\@VURMOSRGPJKNRUTPYYWVRQ[MMRh\RQFLOVSIO[ZNUPRULYPZSTTPWQFRMOOINRMGUSJZMW@T^UZOIUWJP]WUZRNTZINMQQQN^MYX^RRUOK[\QNTKPLTEJOSOROROSTZLOISNOLSU\TZJQNPK\CPON\NWPSPPPWQMMNR\O`ONVKNUWZSJ^]ZMST`TYR[VOQNSSMWMMOPRQXGTJIKPBUfNYWH[QJOFSTSUQ^UYPIFUU[ORTPNNTNMRTKSUVVPUWRMZQJJQhVRRRPXOOTKPLHUSWMPKOKMSJWTPJPSUFTQSRJQT[OSJHWTXSHMPXUNBWPRMKRU\HPTMT\IT@SGLKfSPWJRUQMSPXTTRTWVD_PMEPMTTdZ`GSZMWRS[PX[MDMPXRQMNUORSVTJRN_OShTSaWRRNLPVKK^VXQFWSPQSHVPMTPIQIX[WOOQSV_NJMRPTPXRSRZXODWGQLTNWUPTPTMONaOS^JYP\HUaUTKgLOPVPRNTNS^RPQLPOAZRPYRQUTSH^VQSN^JUUXeSBR[b\OdRU_\UkcZMLT{R`]UPNPNXTTkbiXR[VVSTUMn]SRSRLYhXQeUY^ReRYSQOZTuVQXaOMKWTMoRqS\^[YX\U[ZRJZ[SSXX_HdKVVNXUTZc\Q[VYG[Q][]ZNTUNoRXTR_QLPOKWJpTgU\RR_KQWlU\X\Q_UBLPUKRLZQQYFJUZ_gLMM\ZXKOOKORTTQDZJYRJXD`^a\MN>ISVPSQZKUNVSXSQQYN\GRG^RMFODTRVPX`JQKQMIPOEVM\YP\UYOIYUOOZXNRPXPVGMORL^VXNQL_SRYXWP[WXMFSgSZUUNfQJKONNZNPMPWYRKPMQNPSMXNPSTWVHHXZLTMUOSSTLSOPH\UKJNiQ]QYLKRQZVOSVLOMZ^YLVZKVSI`WWLVPVZOOIJZTWdVUYKQPHSWB[QPMKQVFQXWVMQTHNG_QOSKTMHWTRSW`WKP\RQIPRZQYVYPNSNSLOXY]OROPOXRRIRLR@WRISQXSOUNMeX[RUFINY\T[U[XMWLKSbQZQTDXMOEV]SYURE\[MR^BUPNYTJRMS]Q\^[VYPZ_JONSQ_VVX\\ZSVWUNOQUOGKWYWPUTSWJPVYYVUIQPITWVPCR_OoW;[XOReQ\RKTNIWVHP[PMTMLOSSQVOXQ\TJXMNLKHSVMNPVH^LSDWWZUURLWK]PQX[WRVKVPIYTZ`WPWTWX?YTQISTXWTKHbSRPOLVHUUTTO[QOPSPGOYYX[KUQ^W]LQTOKOVOO]^RYO[RcRfQJLSXHQRWV`YNPNLaPOVPOPINNRL^USMUMMQcXKWOOGQSQTmXWPSSaML[OQSMSDNRNQZSLREOHMWG]NKTTOEWRVTRbJUZKTNSNUNWJQWOZPNXLQXXRVVNPT[WYST\PVXRUSPRTUWRS[WNVUVTWT[PSRWWSPMYWWQORVNYTPNNZQ[UM_KSF[NR^LNWKURN\PPTTXWIXNYSMQV\GNSV^XXRIU]VUW@MPZVWLTPIPUDTGXQSQORSZRKVQN@PP]UOWOaVULVYHIDR]WOPOVRKSSUSTVYUHPNFKPNPURWQh^KUWRJ^QTPSFO[QjXROYENVYNXPSQUNgYQW[IVNWVVkQXNYQMLKa\TWPOMNRIM_VP\MUWPUMQWQNSXU]TSOiUPP[N]OWRPIS^ITOLSSRZRPXKNPPTVM\NC_LXVME]NWORYcVPKOLWU`VTTVFPQNLGMTTOCYQNOGWNTGOJ^LOTTSKPPNMOcWMRcZXWQIKRPQXDKSQPXFM\JTDWG[XNYKP^YXhZOXT]WKOMTMFUTSWRLVPDBMYTNYQXOVOTWObVLXOWXQPJMSRV[PbMb`QQQDDJNRY\X[YVOQM\TUTWJQPN_POJ_RYSMTTPd\SMIO[XMTR[]YT\VWKLRDORcUMMRTNVF_WSPXSHT[PQTO[WSZRWQNVQUTKURRWRXYQTRVUSDKPTQWZQROMPRVYMZOXWSTWTOLST]ILTPPO]WQVNPSIRPTUSRUTPRRJQCQQZYLOGPHQUVSLUQMK[P^SH@TQWTWZRHL]TI\VLG[K`ZQUPNQTXUUVUTOT[WWRP]VMPORFO[HWPLM[PWOS^QMUTRYNTP`TSXLYSYTSWUVSXMTU\NTW\QVVTVQS`OSRHUJRVWSVNJKQPSN]VNQWQXPRNVZ_PWbQRSKKCPIOTSHLbdXLaQVZQMTURSMWNHSLYRTPPMQI_VQJP_UTSS\URIRMS\NM[JHMGM[SLQNPS^_OQRPLW]MYOMYWTPTTKNMURRYSSRPSU]WVRcRKOLJ@W\UHRNNPQUQPNTT_Z`MVFRPPPSQVGTKDAWIQXSGLP`TIJNKNQNJLQWWTXUR[YSUSTQN[RHQXTWSTO]]XO^UYNGSVRU[RRcUNTOUVUWNUcU`[VRZCXTTKI[bHQTSP`WRU]OUNO\WVSMXIKS@NTNTR[PVLVOI\RFPG[RTOPSO\WWB\SNN\LGESLRbGNUTVS[\TVX[[ZZZWJ[KKQ]PSd[[\QONNHQNMOdULYTTNSVQWQPQaVXPXKTSSLPWWPJVSJWOKQXJRJPLTVT`QT\USMU[QNNDOWPVbYDMXQMFPMSVQTTUVPRVPQQTKPSMNRRMHVRTVQVUFPOVTUPKPMP`aKR[S]ZP_R[LYSRMLUPOSPLUOUSUKVJUKNPSSMOnMSV`WRQVFQL^LSTNcKZLPYE\VQ_ELKTETJQZJAjQoP]]XP_QSZJ[LIULMVY\Q[TJYYVNLPZL]UJROS\JTLN\_MYKQNHXTTWXZJNTO[VGHBLTMTW[SZTUWUSTRPTW_MQ_PMDI[UKRFWMX>JUIVOWUZMLLO`UUU[ULQRJKTEWSKLPOYYUUGKKDPMSGSSWJcYOZZYSOUOR]NREOWMXXSPOKNTUMWTHIHSWRPRS[MVXQ`^WZS_NHUTSOUMNPWJUWIWIMYV]MRLJKS]PbOSY>IWQPOON`HVUH\YJK\PXPMXOO`FTWRPYSVLI^YRWXSRWZLXQNVQ[JNYRMXWL^SOVNbTOYMOQRSbV`V]SIP^ZSTSX[[NQR]KYNPXLVYY[IONYUNQINSMM[RRQFBPRLWVR`LQIS?DTNUOSURWYRRUW^`OS@RF\UUVVRVVURV\KMQSHSVTKN[TK]UTNReVH[]K^ZWKLNQPLOSXVSPH\TcPTOSCK`YP\QW]VTUROIQFSLSUYSKPNW[\TOPSHWXDPbPTKGYR\YLQTSL\WSRYNBVWPQsJ^RVJ\K\NR_M\PTPIIQ\PQdU]PTVSQWK]SLSZSYPMSXQPLRP_XROYTP\OPRWVYUYVMMYLIJIQPHSPP\PTPZTUWKQDSIRORYCQVSXJeVXOUJVVSYVWUNXXNSKOLSROUQMUNORWMORPXOSIPTQNOGK[T[PTYLBTKPHX\LWVYW_RONSWMZFPQN^MUOVNURY_RUPSOKPjMWTQSOWPLLYVQWTMQUYQT]PN[UXXQUS[_R_PUEOMYWMPRI_QQPKRL^KGWNQNSKKTSRJTR\UMNWRKPdWT^TZK[LXWLUVXNOOUC[^OPWRVYRCLSF\ZZVSVRQUSQDJV\U_XOVQPSUTMPOKMUT[CaSU[OOXQMWM]MJOMOULUYRPOS\PSSUWVFSR^MXMMQVZUTUURRWWLWCWJQdTJVRVMKXViJPHY`O^SORPTNWOSWSSPOHURFJR_SNPHNV[XNMRTCRRWTOPVWPVOMaaNMUPUTVIHZQLQPRMQUIHFUSUPVIU_SWQNMVVLVORUVZWRP[PKQXOROSGOPZFXRJZZTPWQQOQSKGUPUSRWTUfRWUKS\ESMWZUZVQZQVJCFZWNTUJQVVLL\]QFVUCPV[CS_VPXSQPVKZW^WI]ORJXW\QOFTKMMORNKTJODPSXTQVSGWKNVIPEJ?YbfZNQOTIKBYYSTZO[KM[WRVOPNKQSTaKROHRWPWOQJQTQOOOMOIUR`ZNPHUQYJXIVOUZRPNROSYQV^TRXS[\JGXSIUOL>SNaJTQQIMLPWOMST`YORRTXRKOS\LVUMJMMSMSSIPQHI\IQLUSYTOS^TGLMTMMZXKPQ]LUY[LGMMVO\S\OQFQ]VPT_LXNSOUUQTP[MRTQRMVI]TH\VVRRNFRaIPUWUPRQVJMiRPQUXUXYZTPYMW[MVRWVQUPIWLIYQW^USOSMMMSUNPU\OMRaRNOVW]OPLH?MJWQLV_S\YNTOT\W`OSTUMYPOMXHYU]TZRPYMQOQMRHFeOTZTW>P[^VJNZXSMKGRRVVISZOZYYSXNLTUL[JXSPVE\HRPM\ZNUW[JcQMSMQMUP^RQUCTLXTLNRWVXFOFUZXLK^^ZMOTXZTIc^TQELMSJILWLJSTSUQOWRQSLQONUUUTUMoNJNQLORMPKNMXQUSQQY_XMPQPNPOPVNQNRPTZO[STOROLVHvNXOQXXYOPOKJrSUUSWTWUKQRJWKPPNMPLLXWWSSSJPRQVZO[PSVTVNQSQ`RTQORRSWLQYdINOOKPVPOQ^NPQLMTOSSKNRSVSZRUITUPSUNUQTYTLZRWSQIYLUUKWWWPNZ^HWPQXS[[NNYNONLI[ORRPONMTZXSSdUSVSUMPOIhTNWULUNTQWQPK[W\WR[NUaQaLGRMXZRbXRRZSMPSNWTWWQL]WFUZWH]QPJUOWDR]WNTZVXNMWXTSWNTQPMRPMQKU]S\YHUQO^MRSIWPVVdNPVWMWPFJNOSQLPQTZPRTRTYOQMMIoPSdZMTNPQMOPQZWMGM^ZOMYTUYJYBYQKRSWWMXCVJJVMVZUUPTXQ\VVWgF\QTVKLPQVKRPRT]IPMXPSHSPX\QMQOTNGHX_PQSHRXVQUKS\SXPTPQSMWOVLQOFHSROGUWHRUSYRZOSO^HPRT?UX^QPRLLNOSPVK`TQUVTPQTPTQUUVSHQUPP[O\VSgHFV^INSNOSPXNPNXXSV^NOUP\RPZLVRLZWMFPTWSPUKLRdWP\O[XOXaSQTTRORWUISWNXUUZKLYTOCXRNZRLTOQVMdXLNV\KXTTTMPMUHMYPT\c]SN[WXSN^QUMPMU[VTQZQWHUUPEPMZVNJXAWaUORPI`OEO\fOOfWONJQMSUNQIbUIVZOKPKZXVMU\PB^OWTQTL[\DPS\UQLQWLUSUWXLWVTSWVUTNGLTNZF\RPRSZUUVNUQRV^RYLWLXQQWLMVPPTT]VTTSQ\LaUQCJIOMNLWPPKNSWSVVNXSQDUSJXR_KQWRNQ\WOYNYTX\\X\[OMRQKVHTSKT]daVWRQ\SQ]dRYSWEXNN`]NOJMY_KXYKWKTNZ[USILISYQPLOUaPOYKMWCI[RLEQPTXYRYNOSMJUSSXOMXYWKKSQUZZWWhSJV^ZUSS\TFSIHW[VW\NSSQSQMU]]PUaUUUXRVRVR^V[PZRWIM[UXXSZXYPJVPNPLERMJOQPRMTKPWVNHNWURQM\WfWKDHQWKJXLTT]YOS>QUTbPYPYKY^[QTJQPV_XjFX[McVYVQUcPWSV]RRRTPTWJNYW_KLOfXRZ^M\JWUaLSXIYUIWIOVV[OOXPOYR]UGPTKSQSPQWQSTTYNRRLTMT@HUASKMEGPZhJYVRSRNMVQLORRISS[RKJOUXSUOR[SHQNOS^TJNRIN^PVCSOXMYHQKR[MRXPIO\MGVOUVRRLGJUUSNePTTVT\DMOOPHULRVTTQDRKSNQKTUPZSLXFKQLOENQUSOTPIJOLJYXNRTURYWLPXRNQOIPWWIJNfMLQMG_YMPdQcVMQCCSKQDVUOZEQFPM\MLVTLDKVRW`JTMRURCOSQQKSiCWCUKTPZTSSRUYONPTaJRAOMP[ASAWXVKMaSTYJaNOQWXPSXL[JRQOZVJLP__YYLTK^WV[`_LJSSSQJOTVVMHPLFQKMUWTUTZ`KHS\SWOURZL]DZ^VOcNVWVV`O]U=UV[NX^KIRR\aKKTYQTYOQQJWZTJMKOOJOKRPDRVMYRRWYVVNPSJDPPSPKIUIN]TTPRWQXTYUDVMZRWQSQVTMTRJYUOMSV]UhVTS_POZVXVILMKQ]SRNLRVSVVWGHTaQVYNNTOMWNSIRJZUKYMQORS`ZQOINUQdQFIQTJ_WQMRPKXPOSSNMRQWLQMRSXZMTRVRNPJDLRSVQYTOJVPYOQMRNTJKRVTLTNOUPTK[SMNTXSVHPQRRPVXNWOMRSSOQUSSTK[TYIRYSQJGTTTNXWZS[GRK]TSeMHVIQESQKTNdTXYSMPNYL\XaTgPMUSD\[ULOKV`FQXIYiPSXKROK[QY]UFVZGW]QU^UFV\RLPSUM[XSN[RWVNXLTVS[SGWM^H^aMSWYLMPTL[LEOPR_PPKRNOZEMESPKL@OUV_U^DHXgPLNDVRWM]LIOTNNV`RMZ]MQTOYL[VTQ_PHaVNNURSLJQVOOPQIQY\YUOG^TW\]NE\[Y]USTSdR`\XUYNQSOUR`UQWRQOKKKOU^LW[V\B]RM[PQKUVSLJRL\MU^XVQOPC[@PVHaRRLNT^GW^LQGSOERM_UWMTS\_TMTJDXY[NPRSWLKT]NVHWVRMJ\MISMTPSQXUSQMMaPQPSHcLJUTR\]XTWYCQOOLRSYS\KUZ[\PQSS[VRVMNRSRAQRLRPJQXOVLQORYNMTPPNOXRVROPXLLGQZQTNCQUSTL[HXaUMYRTQIRURLNPIQQZXRPPP^JZf]RLSQOUSKLOYVVSJFMJQP^ROETQOLXL[O]WTPRQNHSQLTUWJNXPZ[TPROWPLHJOTWYHT\MSNZLKOO@fHRcNPNYITOXORdUPDOUPTSVRSUY]HPUFOUJZOPYTPXWO\KOKTSJRZUORUXR[LXeUXTTWPVU^QTYQULGMMQS^ETPZJMMQRPVHPVUIKPQTMPPHUM;VFQNJDVKRPHZSV>LQUTNKNI\UJKQ^UPD[PVYL]SPWRGTTSS\MP[SPV]WURSULIRQP[VPSNWVSVTLRZUTSZQUEISUZUORUXV_ZIVaRIFO_VJVSNPISWUBWTNKZTKIWM\NFWLQW`NRdbSR^USTTZWNGNO\SPU`XUIRS\US[MSXJRHTVDYRZSPVTCXPWYUVMNWMTSFZOMRVPU[QVZSXLU[_PZQNPUV[RPOTRKNWPPNTHST_TUT[ZZHSOMAYJYQNY]\QXUPJUPVWVKYMQUKUQOSTTK\KXZVWUO`LWV_PZOPUIVSXLXVQPTPOUTOQQSOOIYTXLNKS^BRNXZIURTOSVTJIZPKTPN]SPK[H]IUUXLRZNRTNNPRMEWTaVZTNRTSVRAVOXQNPUSTOLTUAQMUTSTKNMHOQSUNWQRNSMXOSKHQQdXWPROPSSVVWYTTP_TJOXWOEKRLNRRQDBLRSJNWWWXTLSQPXRFJYTeI\RYOUPP`I\MDRNVLPKMTl]RORSNTQSVQKLXUOPQXWSYPHN`IHNWQLT]VTNTVKROZMa[KLQJhUR\FFScTGRLQGLUNUSYTXaOU@R]RPKQQWTYVTOTRVRMRmKXKTR>N^PQYHSVQRRLOPGIMJVVUQMFVPSIMOYOWNOJKWJT^S\^GMTTUSW_dSZPYMKcZZ[MfKVY]oWUNE]NaVL]SR]Y]LeXQ^XS^S[LGDNLVaZS]SaVI[YTUcVXTLNT[KI_[SXa_LWTiOPLRUO^UYKX\[ZTWSQXYdRUY[QN\QVTT_ZU@KOLM\PUPZK[XSBXf_ZWMTVE>PKTNUUWLSSJZPUQRSQPkSMbURQUVUUQNLXQSNR_YUKKSPQWYQMQIOXLPWJ`LJRSEKFS\^ZOO^VRJRRTXTRRJLQQSSP[VJ[YL]TPMTA_XXPVOOS\NXWaWTOWRPNXVQaPMSPQSR;TSN^MMMKPWKTXI`FNQQJP\HRQSZQNEWMKMRIUQNNJMONWZUZJQTSRFOMTSbLTQZPUTTNPPJVQNYT]ORTOXOKUJYGWSVX`GSPRSQUQSKWQKSQ[ZQRSQUQT[UQYUKaOQ\QSRUSGORNNQNTQQURQPdJLZP[QUZ[JPZOUTRPQS]OMUT[WURZQJRPURPWNYNSLQ_MQLSRTMSMQOUJS\WXLOPVOaYWQR\S\MT?[TYVTKQVKSPKSYOK_PPOYWORUTOMZUNPQNUFSRUTNQ\SN`PRQMNXSYRERJWPUYPGRYYXSOLBRXUZJX]TOYTVjLH_URNWOMPdVQUYPNWJWITMURXIVFOTPVQVSETTOFPORVQORLPPPLSLDGSMPTWPOMSUWRaGQK[NUXTLUGNNMFQXTMRKQSSQRTZRTS]UNYWOSNORQRUWTSKVZW[UVTaLWMRCOTVTIKRWWLQ[UMOPUVTTRMRQ]OYOJXSTUSNTQYRIOaPSHPSNCWMJWRVVWPHDUTVSKROPEJSRTTTPSTO\UPN\KQPXTVRQQSZWUK^YMUPQQPXYDV]SSVYPSLSEXSWXTVZRWVOSFHFWPFWQUUSPUPLSQZQKRZP\CZQQOQRUNUQKUNUKPQPJ_QOWQSXKPPKILUU]NTUR[NQKSTYNSHPb\YOXWY\SRTLNMSUZPLWWQOIT\JYWDRMQAKUG^TGXUQWSISLOJYXKLHNSW[TGORQWW[SOPQOTR[UQ]EVHZYSJRM[HUTTYWXVJSWLTNUQLXMFQNMWJNSRQSG[FRNIVLVIGWWSOGWNKOVHRXNMaQILMJROe\Z[JLGNMMRRRQXXLNVOSPAQH]UIe[ALGGH^VQL^JNYSO]VTZbPVUWSZ_EB]WXNXQGT`aB]WTXQBPQ[OMIUWQUPKUSPSREaQOVLUTYSPSRBI^PWTPRTPT\KPRXKPQVNSSWUFMTZXQPQSKIRPUR\EKWMNTVTVTUIRNbZ[QRLQNMUUSVQSHNfVWWRLVRSM[OUDWJcSSLRQNUQQUOMZ\RTKQQL[QNUl[XKKMNY]ZOVK_LNfQOTI^NPNQ^TWWJVWMRQ]UR^[ZOMPKQQ[NJYLNPTJM[UOZHZVPWUTLYW[SKSRPTZSWVXVXKET`NULNO[KQBRTYSQULVJPXHQTQKXYLXVOQRHTQX^MWZNVTMMOULQHVTOLaPSIMTSQSIPZTLRSSO\]LSKVXRGWGR`]MU[^_[ORWTLWQQVPPNVVTKMNHRTGRLUPQRUS[QTUWNZRNNN[VYTSL`MXVNJJT[LT`OFFZWQTJWL_UPJNNOTYNV^LZ_SX_\PF]MMSNMLUUULWVSMWNVKRPTQUSTTHTQrRYH^YK[LQEHJSJGJ^NcLFO\`SQHQ\cLKPVQMT^OSPW`[SLOK^KUY?WRUXMVMKY^_`QKOLTXNRWI^QXPOXMP\\PVM`OVTJCUR_QLT]TLK@GQ[NTNTKATOXWKVPP`KYKOFVLOMUNVLNMPNRixtfnoqflgroimkmhqpshlbrufnwt{pd[uurngwmphyiyvodsqkkohkf~ddhbord|jhtcrgekcrjipqejhoqyqpnogkgagsoluopyfohuskiiyphq|lvstpjytfnlrvfpdusmqnuolsvgmqlhsimkutzpulnqynjmmsgnnhykpailijsfnimltml|liujfffviwhcsspihltaqsmdwakgpywnquiwthnwb{ktqnpothmortjoqifpdg\~udavnqivkpjwnrrxcjtsljmioldkvorltkqhp{roqpwqmmpqxdrojtiovswhrkpwyc^krtsvputmqmqlcrhd`wjvedfbehrmvjgjiojkjwlmfpbkjidlwormsurvhnpvrpwjth{qlwqp~ljpdrploivjgjpdxpreor|gqbbmfguprmtwnpfgsnrmdxposhnljkkecmhhdsjnkkifnwvs}okpjnme_j`xqmzcjdt`fvvlolek|acvlfighfogenjfiugrjttogwbsvltompc[pkred{pnmp^r_hh_rejdjmgrsmofovkjij``sn[epxl}zglphhliiqwkjqzkk]}ocmejfilfukbjl`rahveedqcekyyotewZfpgldhgnwe`ofdefeydllkg_acgpwfdhctbscgikxipnrsZx]wf}dmmYjjhcpouqho}_e^zplstiked|pqsgznttSigkxyiYkw[rujijfby]lsmkxtjqxs\gffk}{smlifelxyjigndbohopv^lgj^xjliikobtlaQhmrjonnldkb`oo}avoppqqjvn{ofqkvptn}rwqxertzapudpoihdawlkokjnbnkjkqhmk_lnlsawjn{bcmnvgxjiwkkipdsgiptdojrpgjgngplnnq}rgdb|Urqdzsbfmfpriuedttvmolqppqno|ntrmuserhasmfvfw_hmrhwmhojgisrkpdqbeuljqqrsjyntf|higvZoltsajzngigjiqno|lrinrgquiupwxqsmehmvkoygoogfsnlnhaoshslthvjq~eih[hfgiuopm}yolyv_sepppsfpdopok`{nubnqoorc~bp{jqkukijrw{ipjSrc[svjplm]\i_^q~tdnnjyporkkhjod}|cpdntd}vumjiijpvucqwhdvUqoofrnqxhmglhepYm{fidryohht`\]vnsuj|kja^f`tqbixlgihpjuklvgcxljddSreqzvp`pqr|qg^u`urptjvqlvkvjgf`ya{mobklrcdfjjmpkpiqek]kZeoggnvpghkc^mlvoidjlboq`owlfnrncn\ohpclmkllllhpkhiozgiliievwfwm~fhfknTtsjfpnljblxkxihogujwnqebdvrpequxhixtovfwe~lcsnmnhirkdlftqf]hugnqnhqi|poyqWfoljok_xoj~pvknbls~w[lrpeinodftlidpiifwvfulprgtqkiowokrnegr`n`qstrobx`ckkmrcallknsmffnkjghuketitrhknevqlbegokjhnpsnit_nfsimpow[nv_vepsuzeqsdfsfujjjihf^`wikbxtqumhpvalvu{gv~f~aewf{kfzlriswn]djgkvPpejymuqq~flpshsUetjcn{pscmiqf^eqmtiayXsdZuQ`pituzmwlnkxvuyumz|rjs_rjXikbgkdrqrmmmjoqlfscjpj[^exfk{l_fflnnsynbyrj^jwzoOisfrjgo9{duZwpmeepnwerqinqhpommlkcixlcccvqphlsmpjvnjfniskvqwkebWgvxkgijhmibvo_qiozqipt{tpqrjugdAc|eamotqnhfcl}jsfglinmrorpcurpo_lyxqmjnxnowqjohvmc|mpoirfsfg`kpx^ekxqybheevqqjg|dfxdstigksug^kck~lkvnutk_urrhacpigbbl]lrkc`lopfigmlgqntheivoadtli`livqdsoklsrmobbjfilhnvcs]fqolmoksoqiwdzmkfh}n^vtsdqc`ptoroogh_]\_}asgcopdhi`yidhek}iskiji|esjrqdorh{glqwtpnlzzxqurjtiwo}\r}voefyhxjptewq[yeruanpVj`bi|`j]mqofdgkgWne\_fedxtjlnoldhylnmtukyTpoo|nh^jqinywnxwqvhpfwkumcblyjdroyxskzq]_]}ulflwompihskbcevc^n^spwiokokj`ch^tnwnnpzrmusjfgs^jdqdndmpapkf{qqqtb_u[ckpfppqni]mk_no}lzjntlqhrei[prsmoiuwZxemvyeqgfxijpcllwqlomuqwkmzlbctmljft|flmupltukfllqxeaopgmprnlhrqdzdcrtehmgxdoyrukdkqrmfnbhjtt{hxjjfuielhlmlec}kujvsljmcph{ymctxnormpxqneshliqlkkkop{mlbmlrmuqrpwleqv\ilrckzumZg_ixioqmysmhw]ezru_hv}gkn\iefknlakuqg{wvsykwzleclfYjklfjtdyhtmgkrogjfskyfhovokoahxljjolrfhcguda|qbyqih}xfsf`ljtlm{sepzfiqqztnfigifs^lwZqhzuh{hukmkdzmmupszmgpnppq|~_zjhojct{mpqanfvgfpllsjhulrsiusolvn^z\mgxrlidri~ij_janfjz]i{oulmhnhpj~foaski^qjqknfm`}poy_bnqlkg}tmsjmke{jiitegfbfkvpxfmjssnupkt|ktiqi^qhhqd\yjafphdiaqtmf]p}d[lsnuqj|i^movkvlkqcwfrop}teylh^[rcch]rxqugrues[er_gYavlmyhywkwy[anbkdeUvynmsw]q_iq_etqmafn`[eJY]bfl|[nYxeac`cquqijcahjqugijaoh}vophm|fisnlszxymmj}sf~osni~z~z~x[chpthgwpogjrbtthjrxgoxkfswghv|ovedqdtrvvuerfz]gcqru{dorlipcmfob[^yYjguxgr[pwhtsr{w{\eykl{tun|ur`xprprrpyobpsjtothollqvnrqcssxsiwqqXs|kydr}mvtkskmoljorcganplgoltfmpi_rtheqr]ep`zitmxxnicmjpipezomoed|xhiooiqlSr]laldbigujjgpmoglpbhdwidereikln_rqootsokate~nqgYebuqkcnminstf_oelqydynlwmupmllmjurrwXchllkfnc~nov^~kwk^kztkeu~ttfllrydtikr`jd\ultkrjmimkexeflyskfq~ewmlhybrtnlmkizpsosefnisrxf~ugjlxhqujf^sqm]c{u~obss_sunpoamhdjnkrbfitsunmmed{hl{|qngrpjzgmfrdnkoljip`lvgueltojon{ppmill{pkumzcrbntdpcysrcbomfxomt{we^jqet\pncltkpjrqtyskbprrsqqdisvgnxinpxffnpjpqQpmtXvpusknft]kTkcqjnlilpuc{`evizlahfdqn|ilzg|ovpudhsori}kllhmpo_ngqwiklzl`e|edkiitqojyoverlnrolihlyp}euoaitjhoxhjfunn`wmivzmiilgicqn^pmqvUri``mm]ejjppsnlofqm{liqdcrqvipsa~|lccjngomkrrlnoscnalqmivklnkvndptkwkyftckijkgnksnyvikixcoaqxosnfkdon^elruxiuqvikctriiyrypjopmxihmnnsoqmleomkqfntngoofnhk`kokafoikopnund]sndZm_`r`qwqpqfsn{gp\yjxyerikhornpnjtgscz`ofnkqy^|jpllnwmjeuxpqoqqekpkeavhylw|oudknXhtlkYmlhqhsgnklgrg|oelgeercopgsZmhknazufdgzsnnqtni|j`quii{eoo_nql]qonutmjegdywvnwdnsglyipxocjwl]mb{vv_pj{tjmkxqgfwv]xptuuknmpshqk~lgmmvqrebuaiu`qvokohpnujjmkbingetwqpqsm~m}lyejdzqnoljbyejpdp|psohnmtzdltlwmze~hsofdnnkl~^iqiihophjjpcwistqmumqt~jlfilqt^ourjn{lmlnilkujnlrrmhumeilblznxm|ipjoesrzdimXpowdok{qn_mdlnoqbzpgrym~vksjtu|pl{eh`zrrwnhoehxtvkgmcmrlvgojklfphrqjtr[jrveljlrtzknimlkuhsg`piskrooznqtksibgrumnshqixjossokjp[kl}frnisn|iqtiknjdozlhgl`snsxournqrogjnnnf}wcuikpotrtch~jrserqoihigqomkyonsr[oi{ejrhusrjroht`mkczhfounkfwcp`mpermphj_wXulgguolpZcfkgmnpckmpylvrievmwmrrnqmtqusqtkhniereodplplzi^lnumosorkilwqhohkb`mwrorxtusk`wrcneuohomlugmyrlqpll|shlvbrqtkmknr`krdjmcfnnaxhlhufvj^\t\kn|uhskgkgbo^esvlsslkixijzpdxkhiwli~kismirvy`gvnjklkeuozwr}krSjktrpnj_rdOuqtcelfYj[jjrnnhkoozpymvkioovtg^wt{mkk]ulb_feftmfzv[jffrdmnzcjhrxtprn^ueckyszdipretcjst|hjtn`mdrro`oe{egme|lkrftrogrrhzairjqwqzhwxrfkoktoptomje^gklvshn[[jYcgpmkvspu^qwygflnmjdibmnidl\d~^qipdeOlanyju\bixkkc~rurkrx_txsmltvvtjd`Tgbnxjyq}{\f^lmse|{iquiklhqhq{dnrI|yix{{sspgwchnhgh{ritQmnjdu_wter]r[ujsnmgsjelakrintgsmiogmmthmsnniimisjggiikkbfi|cs[vkmnpniukkvpp{srhkhuiwovqmhmctgnhadlvmqkepik|jifemjyqrnngrgfndqcqnmfkemsyuypmn{p|joxrmlsk{mhmilgj~r_mptrhrugdvksonnwjgkixvakyt_fiiephattovonyajsvmhmsanqjftrxmkrwx`{nsnhjt_|q{lrtzxosnlikhozrxqkt|Vekkkxkgghejldaafwinjryl]wgmpzumosb{jsxplpbmjnqyjrdjmjjkngnpj\_iglaygqr`ug^pximnhaznrk{qojpohWmywmqnmqfogel`hppn_ieniqicglftcqh^em_\gqk^gsmtqxkyo[jdlxodjoijr{lvfqj|\soicmxhsettexvhhpseno^uziseitjvshmnijkl~xmljjerp`rpxsbvrklauf~dweqcnpyuwlgtjlvnfyx~fhsvrldsskfprwhpowbpqzcblj{lkfjkkiugugpsmmijj{josftWglowqhjpeoukzpgojgZ_kwosigmyXfuzt^hg\]jtrtSi|ullg_rj^old_nqgll]qnnswcpj|snpfenlojpkidf{srbt}WsrgbtonuUnsxhvwglgkyriectfsikoe`bnhjfffcgtgpuifjfgsglmrWmcgoyhlobn\hwtlhclyokyvejnd|jheljndkhujktin}wpRlihbbbpdltfuurmodtnwpyiinemqpagqsoguafqywzerhvwzhzsrl\in}Sbp~ftdrephqeZbm{dnookiSanblistytab\o]nnqluYcqpsnrzrwY|qzdnpeahynl`sjfcrRzp}k_ruhyu|wnpgfrnlAintgmuQ]pdenviaQpPpUyrjd`Whdpy_yhqqpkqdoggzjjpYlcmiThdrpjivq^stfplyil`jjjUsh^illrhumm`\elrohmoddxejeflml^`nlmixfdw`hphqstttfnisisYrziehwdlym|iuZgjj_oenkgpmlgW{rmkfhqdg^nkwphvulgfhsjmlp~qsc}d~ylt^opqbqgrwebllzhst\lhu_vakmtzrhsc~nd{ngmbtvl|kngpphljoxmgnzmsxiuepwbgkgld{irjod|epulopc_mnofke_kdm^xqhgyyelk~ast|`kmofbsjpucqghpzuxtgtskncunxvngutlmjrjjoqlnqipnpchleenqlpilenqohwehjm\usojgl_ktmsrfqnutjgnepgriynnwpmgkhokenimpytvnoulkmlrhpnhes`n`ngl{qio_lvga`r{jmpp}khs_nvtrzsqqjhkngmqifdjrhikemcqojdohvitl{huvtqleltnrpndnb}d_lsqlkfnzqgvnc|lznuuwetjlvwlvopmyrhxowpyramqktQkar]jchdpkiopwdjkwtopttikvd}poqeWlmyqoslm|brxshoajndoia~omino]dsfogpqpkbhvaswi{ffuoef_vxWpbeyndc{ilnv_byjqbnkltmdsvpjwvfk`fmqnil\pptqnyzVbhrtys_i_ZugXehejmuewlpc{Toroizhfudoxl`[ordcf`Xecgrl[rnd~aoiercZhkyfm[\amikkwcv\qV^bn^]pl_ZoY\kv\{yof\ifZc{Lxjoth]^mqv^pulpg{}pyufnjtmjsoxfbcacfieohkjpehhh~sg^kdabqm~iigfughrjevnnrmtpwvkhkvpjzaXzfp|ynjqp~ros}oxqhjjbjteszfx{lforuvchwoaefy~liikpds{qwuq[se_ni\siijqmvfpromrkolg^bgslhki\pkpsvoemjicfo|gvwimi{lxhmnfvorypluwvxodhpjmlllopqumdtqeuwmvmmnaihhhivfhrjvqesfmq[pxslxqvg{pYjutp`lnkogopwjjjxkhklersotq{koehmngdirfdhniq`uijme`pue`cleglitjeippuolhvpnyknlnnrnrnwghjlomsguixqelkndrhjkudcn]bnliowaiudgqcysfiipfhUqhwknckrtd|enhgluuqopsrnowrnbdvonrsp{qniXoyjwogkqkcxalvtsy`karlkpscsf^`^euovsfvjqxxaa_kvkgqorefdprigwsqhnc{f{eoujyamwknyeo`ohcxn|sqibw~gi~vlvpb|ppfawdhopzjgcmaysf}T~dnumvEr]]wnfxinpttfogPkgpheZgk|qonmljc}[XndTj]qplqfkwgjyiffjfj`gzeVtifsqmcspk}nkengonqxyc`wxmrbuujap`je`rqiadokoojbgnkkphUiYi}~ifjupgvslhnoi`iflqlf_emkploibhg\bopyP]c|lqvsriZscgp~}nio_|pzctjreloihhO_Ynzlcrrisncjol^nokf^{~]vchg|dxkomfnnl~xutvmd~bo~pwnzfsyzcanejujhsekpgninihr}xhhjzgnqmpdsLehgafcf`j|iupzuhlfvvln]nbs{sl[kdsnfwppc{dtsojinprXj^obsclpkxnuapmutzvqeeoehcr^\jle]inhm`Qgkxqedfpnbqrpjhpjj^xvmllbditqfbmopfzbjap]pesfvqwcpuivmh{riqguhctzoj^wmekbmqefbvgorsr[joilfjta`oou~`lzp]r|tpqectkwjrvylt`rfrbp|hfqjokgggljexsopgslrrurdfuogoerxbhdsh^yovbzouueokmtovfuicnrnrouhmqhuxqtmcun`ne[ogtrotnqqtlqpsmfnenbdkeWhmhqwhajxu`imqngncl|jWhpggsiwpkdyzonyxrfsfhvznvkyjftdmfmmmqjkppsrwjgypyw_a_xghcz[lgnoamqoUejxot{vqlrkfizscxckkepVlnplZrzaoa[qnu}loeYqrhloctphwk|`ictn`hdtnhbmetlbwtryh{zq{i~dmqsnishmnkcYxfkmoncucYhlolkc}byli|qkfsqqumfjqrqvturxhocvvs}mftef~xiiorjvqnjfmfsjmxefuuekvsvsnwackeiqjxygrh`olkh[lijmtdsfptgbbkmidpnqs^jpojlpocgojfslcpg]mqsghomuqompc}d_pzlmflqxqvgmjmsrmlgiwpkhqensovmpihhukjrdpezjqpekrhgmtihryhlilkjjkmoiomldmjpLogvwynpypjnangtkokuptnmquhhp{urmguxglkhvcvsntvlpcnfiscptmtmfppmcpkcryoquoofoqq|kxfndojqoyjuPshlojnkvphnjnatdftq}~tdugvWfo~ijgiqgYirf{cbvhm_Yhkl`ddmghj^wrxltvo]qk_kcsZolVqnke[tk`feyit|od_vjjnizjlwvTcszuck|nbioomlexwxVis^pjggydjn}RkklvfhymKenku`triyo{gww}glzqarhzs{bnrsbvsgkgtwrlgvhnbjw_pWq\}xpsqrimgvu}omykpmdkjlojiod^wja`qhrvnqmk\qowonlfdwgystkzzhhZzppifqlkgvyfsqoenwxtloxgjcgsoSqzbpouioqlpxotjiel|bwgnjlnmvstmeytai[nokkmtvikgjq{gnhgnjqgobYo_mwirlgsjuvfyjqpmkvpluvyigmzinhhntjlqundudboqoklwnscoruglkrtmtlodjfpnhtgfuswm]njvciikhogmsnvvi[nm}\lkmlkxhrltjtjqirjrjipnolpeholopixpplotjoYwlrpn`scknlkswfnknm|aglsqipoligpb}louiprdgowumjfefksfhfmmn{ooskqayjkqousjiasfws{msng}tuq|bpkiyYdknojimw\}sa}dufqgqonl]hrbrpivurnavdpgrlnhjipjolso{ijxshndzskdnkgjrlouvbjsbgbnkg]v_oyk`mjwl_xmfikqutykkumnlyq7vlgkutdivh~rp|hampqrroqu`yjfloViu~jsjpc|o|zphssjkgt}osijsjkrp^ffegirqhppXupl|qtTcuqfljsfmmm~ommep{qsorZxoujsjrpnf\u9fhsa|xgbgztg~c[ntofppkkilzmjwgjogmdoklpseyypp~fv~^hdppkA%crozkl^iieq]qr{u_}fbiderjrcyvmkpior{d^nrnlbelgf]kvkkpXygthlo]fnYZaligqsuhhh~^gepbenuqobnlmcm`_c`zofpm}\oasgjmzlclkXodi`xfqmhb`bjfooOqabqc_^jzne[jruvpqWsxnjhTUkuwpcT[\sreftyult~lfqhopmx~dcgwpvnnx{wp`puxpphjhjpcoktuyvqzveqesmcnrvw{qhlzulutw|whomrug`bjsorzstovg|kprpviiqmtrhsfreqjomvnunzgw`jsmj[meypoijstuijfoitknlntfehjdvkgj^nsikhrfqjblorse`ovmogWx`tpgdiumgwqhffncrohxnelkqswwprc[fTpll_i|jMzqpyt[fZyhfxnW{pwecogRzniijk[dpml]wtkrny`ksays^kwq}dep_rfevf^zogpXbensoogipax~Xlswdqo}iio|mcktp]dyfsto{lvzkkb`zbycoletjm]hpk`\zmrnlbnopnhk}{apiddbsitmkjjacfdkf`knmokicmjlrnrqdixnh^ausgvneinrshow{stuilcgrts_ge[jispmaipkpwn|]centsrassrogclqrlfoouo_yisnlql`jUshtwyovjngdoXnpXil{qshqwunvmcbqpzm`rwhk[lnjoh~gzhhkjeirtzu}\qrmen~`}j{jliiht`dqk]njrnikg^ic_pmjpqr{gsm^nngrqqifrtsn\jqrow^m]nrfpuZnstdcqukli]ngjivkpkUyrlpdhmycrnsqdlowozr`tnqdRfhnmq\`khuoq}yfXmnnnwlgyldjuxvnsfzh{gqYwugnpynswdcqriccWtp^k|vWashkg}uww{eYukdquWehbvkenuretfybpnslnfpghst^oqhidm^tjdkm~fbnxwshekjXui[dkzc`hnt^wunoujqfimunqcfmvqbm|ugjgkfbvvn~Zdpkduoldwmczv}o}ugtxggxpyxmjuse`uu{f`uyjnkymg`jcnls|ct}irwqhokpcr~_o|huimWjWkpiu|pl{okrskYopdkjmmcaqxnbdv`jomsjadrouthr{srjqrnrh{phiwog}iyposmvqqspkj]advluZhthyftjmgiuhjdhamsdjfthrf[jwjokmoXsjhaord][m\btsrsk_sxvmejujxyuxpo[|\jqdkvfdcurrptamlscbxwnmuktiikjxq_nm]yxrisn[k]lkukstibkbzrpamnrqcg|rqpfgjhlj`l{rnpasmipwpbqpxtrorkndkxrxklbqhmtexpyctomzqupinjhtn|wZ}kmfmmmp_bitcnxtw]qc_lm}m\uvuiifnmumplqgougmngla_dpygnkrcpjjqgqknitQgkm^ddhz}mhy[Vrbheab|ke`anoeusprfdlbmdmoos\zoaelhidlkm}ffsdjukinkjcxdhasqkmnlpfj^e\cjlnk}gklodhwawjwccondkije^njeahnbrdhr^zuqsmqmerblsghijnmzs}octhemslojglvop}fif`torsmimguhlsp}lefrliqdvfebwdmnyvnkkfmuupwuvtgnkkrwgfgjz~hyk`nmlgmlvvj{korhvukvrrnhnfinkvsjklj~kfkknjkrrhiYwhkd_r|fitksfrnsmknlkiyumfXgtdxmktokno|h}mhrmiuni}timwkuwpntwlplqcerilijxhvmoemdl}npkqunoyjo{fewtgol`mvrhsomwilncsjygmi~sbamqegptmpqafmrgjlxbijtg{jpjgoumsj\l}prhsjkllrttsqnjeothfrhkqyfai_qpnsgxnbb||lkppnxsxarpjwoojljgstsldis_jqsslfbjlyfakyusoqq|lupnnqnq]oggppljnfjniunmkhlcxzuzct`mzpmjmmhhhkk}tspw`wshtlkmxpuqiqhjkjnbf^Vgmj]mmkY~qohfbTybiwvcbluc}womnlkddbbcgeYXpvl|tfxxqV_s[o\^oycVkco~dluZahtfZPsekf_w^c^mhmfeiimkuhn`Sikujeppexlkb_]o^xrQkxulgfgadh\we{m`]\aWmP_frkfrmapqsrqkyohvxmc[jyooxgo{tcrse_imhgcnqS^hqon|{rxybznxjvrk]p}jctb~|oZehuiyjfnofqllnpoQs}oj^}cwtglkfomnncwYp{[gdlpnggh`oo]ohbwvkeaxssviylqj`zh^ksrcoPcikupojlq~l{j\oisoluhlerUtha`gowiopfpq{hn`quuZwoxgkqcqvf\slwevno`rkspxm|_eomidfhZxrlc]fkrmecRl[tjnheree}rfifoqrngmwnkirrsiiufmivzmojauokrikhrv^bi|khV|\spokUhltwsnkgfji{kmebzhyp{nqo{nrywkxTqnsqfuxmwWoXY\jsrfhdsoza_sxwjuqsy{ajmpdb{hp\Rho\gmquYmiomd_cgnn`jddnZailwUmfYfxd\dxkogdr_e[l`phbpmweemweheesgsp^lwdu][muZrrwjweYarfltmqkjnmmtqmh\gjgfphzitnhl}l_gxfhhozt`gsXphgkgna{aphnerxlrmdk_bfinejaenqjeuhjtd|cmuqmuesomegpwiovng\rngmsboovhknfhnuhp`zrdemlgixl_{qomi_l^hbfurd\klnbyxkrnfhhgocgkeigyi{r`yjji`pVonpnlgu]y]xh[pmwxgl~}rbppx\Zmmdmkk~pthpfqiolpnagjz]vg]k{bi\ytgiht~\gnc~h}jqqls^gsyli[coj`ptpfcowf_dpn]m`hzcngX|wllegosttnh~ilrjilkdyrjhewwylrjidjk{n\qphesusdjWyiofhgopm`dkaderRxumftrbsqbe_hkarorqhqspfj[e`wmqiofgmmsmrvwgpgpg|btlnclpxde`xsko{se[khYzrp`_jholmirifuphelbv]obqkhp\ng}jhedfcafruu{qdbghkjhkpogjsrgj[jq^qhmgkcsriqooftjmhohgaan}gplgwh_`ykqcvrmpbvjlojhrcqsfailndarmtbjidgi]oiorljo~bqmeeho`vmoskfnnkmhotop_oreei_vmjgjpkcbiitsytt]elutnwyvhhlvlvidghrlnrgeemt{iolkhhl\in{jiwrdfl`tdkkudkotrjnqcinlnqoiwkhk}dxksqebojhiw`mmccq[njrqbgwnjbmnmy`lpsnsngoespee\ppv{nynwkioq}^rnqssgnlc\dljkwst{mkhvfkeowlqjlr_rcf_lhjgmpnqurdkerkfllkqvupug^ftjnxjoljhopfjrprxlkhinljlknljpevofedoghgonftjjlfvksp^totsbngmokpohkh|nfpvmqoql{{hnazkchzitffq`ffmnqdlm[vqmxifpgujmk[klu]alokf~orjjWnndblxbjnqnlzp_Uibakxjsbuatcignsk~lfeuspmdngjgxmfpnflg}vlkcpmijqytkuveriktnfjrwrvmi[goszh~n`evuld{qeqidomoknzyfbtghtrigcqddfquvPlsfj`ijouasfJzdstjXmgcjrgtpolzhkaissV_ffv\dvymoj^pb`nb}sjhdnhl{kkpspomilhsmu`grgmsdvojd`jzyz^qi|ompd`utguneoypowzokajxiibxnjjoghfqqa}sbeijllbs[Vzh`gmnglonrptejwzpr\clmfgdcswpwojqx_]idihvlpljiuotklnx~gmTzkslqfh[lhIs}drzmkIpYgmli\tfjlkuekjisqhkecitpijhfjsutlkl~ajsoooutongaz}rxfcnngbp^cal{qifqpe_hzatqj{gadiiqlstvdwosempuosongoqo[tokeqZsqaegawgk~zmjdc]qhrcdhwlmi{ink~mtrhnqdyvznnvza\~qnfgdfwfkiwZtug]i]~czbnoclyt`ogrmnhccpi]~vwq{ax|bahgeei_mbkicqvgnicik{ekrWZqbefthrtljlsctsvkueot\kamjvisaitogfnkyspjhmrddyshprtenyiugbqfkbwmykd{gsuqptrnssepf^hqln^l{dlenpflnpWvlsfyvoullxu|comormo|tbsslplpxfkkx}wnjtidnrxrmnahxpllnjcunfmjhjSgobheXnesumrrkjjwmnykqrspjzrYmmytqitowcnmngrhyoyuz{yrixmetvor{kub`vpmzslxighllh{porg^vygogulkjn~dghlp\Sf_aj^yahslt|ecdnVvpehp^gizuvxjej_nsmfaltVpsnUkiduycuxwr~lmZqypkf|xslrRzlttel\jelo_^qgq`qfjpgjdkuqnr[eefl\wnhmupumtllliauhpcpjrkf\yrggsqjqkjlzptfqhkffkmp^lakfxXflph`uielszmhhjhbjkfrcpghtafjdicx_q_lgbbpiq`}bsorff}hdspg~`nf_ihpqbsmt`kgnhjj~qencwvul1lgummstKh`@thbtbvp+ztveuu`{pntqolnbjgwallpb^cttobvoem}`jjk^qakl`rreeo@mhiunplgrmjloeoqmmdcblrsgfwipe[hifki|xy^w~opoeguu\kjru}cvjoh|bx\jc|zz}jnqlcbzx[|vZbts~fqXRmwqpginuw{j{loamYiejpjoZngvewkrhmisnhqgqdgwYortgfstawmqW]{{ro`~fpq`uqnzruggkrrbi^zpqubzsadkptOhdvv]tnttzYqmjr`zXtYrmspdpoetf`ayct[^yqogp~kiugqqngooqmpkeks[prlubnynjooii[xvufinibeldwnvuwvm\eaukd_dphplrq^hq]podpg_Qhrvjnsckn\^dlt]qfninirzlrgojhavktkkijsamhcvl`gexuje{ur]qu{okrd_okrvfqjuo\_onpo{rv`b[~oinbh{pusk|xpm^~rktvqnqihqfvmucdi`xjmshojmvoapYlopn{wmtukofmnnncZbsgs`gkmoptknldqisnlkrnkgs_amwofgvkkjqgncomeon_utvekildrves`id`uzh}ntw}ozgipwommrlfxanokjimmpqoqp]oqyghe}{qqk}cicnhuim^l^kpknklcllrogjonwshsgspj{fiqtofhtojlrzisnonxnmwhuomyxsj[fzcm\lqll`tpmtnifd{dnndnnmhxm\om~pmpklktf`xmeidlhmgvsoejrs`cmmenvkeirpqkhp{gaVpjsnhhoigklncgecYdj|^kctdkwi||lytmcpwofimlrjbfmo}_rffghrlolb|ercppemcgslhpvbjqib}ndkiljckrhekio{vauehjfdiewpmdndqcmwiipzdrkijsho`kxnhmqg`qwiguinizqfrkmplpqmsgrcqgmYpcpjkptejjjmp^bvhZwvtnsqctoyqe{cosonskmwsZgmoqiqbovs|ld}tq\nkrokncrghjsfvflsihkizvwkgsejoxhfnxfejyjn|oqhegtkxplyYiexuqcqtjsgogrbcemsakkyqbevldq`jmdptdeoVjtzr~\p\xjhihjfasjdqdroglo`_hrrk^jq|pvz{oiuzsnnlhy]dnfiqdcklqalpghblxo|qn[sXksdfs__ntnoiinwamphmbtfjbtzhmexshljs|i|Vh\kpqknhgqmf`amui\lnpnsu^jhnkargzmdwjow_aexdm{qndj`jjslkYgqlgrpg_npyyw`ndjndtevqnkl]ig_vqm_zfmfksjwgpqosbm_pgdupbeoc{v[issobgbdl_zntk^lopnpzugeeuh{cyfqipntqr}omsjzhc~oeepoqgxhlhZ{nnkileyfdvmy`psvjpkrwxuieegnjsh}jrccrunkbczljtglmmkspholgrazkhgtsb`niqpiihooomcoftbcyyvnnacrt`pnmfiwxmbikykz\zwebhalxtqcewlqjougmjnyurdwllpaujtouuqhsmuvkqmlxurksmoqmlhohfx`jrorlnqhhnsspqskonhxwunifhtsqmihvmqluxhiujnr~flxrmzpzi[kxomhwvd|qqvsdujqvnu_mxn]qddlmqljcfsokksiknnuohidxlstqrgfqhzmfigouepflqs~7fjpeeimuoozftmlfgifUmggighmpkldajmosphpalelwrp|kigpviklwjoucfynlqiihsghtt{{ibdimfa|mebpntqducgcqjtrseiyhnsfvic|mfxtp|jfgjqhxniwtwhknfhqjyfuaqpes\baga}egy{ehohao|wpausnpogcblsnpjtglmo^gnmpi\wgvqfl`wspvll{opmexmxqrwwftjklnrkji{t{embd^ebsjwnxwnmnp}loffmRmvb]xlebqqktlmofwozwgSuqqhfhddtookoonlljxsrxkpuablnrsqyjlrproal_u_kpfciusugpkxir{lbngsldfmdmwoerfjtiuijqkjlmuufwt`lqnqimmyf\nxor}wpilXhejlhthjkZnmjhqqfoa]{hizskrhqlbpggshfa_hqqunnixSmoXjt\oso`ihjivnhtpZf`_rfk[lss\fspm^accyihowdqeWnmkhopjqiptu`tonpjadZn^libhmakcUXjhnkxesdxemhrpf_xgnq`w^|votqgxqprw]kcb^pb{grlglfz`i\kobepg]nptfYW\ug]b||oomisjjgtanynnsoserjzfecerhjlnlm|kbpjgb`}qnn|glui}mvwh`hw{knhajlqkw|nlpmxssfqya{nkekjwrgpqtjbghlfnlnlkv{hen~nubrmohkikngvpcypkk^}ltew`kpltlyhtltkyolporokrommtuYwagnsh{pMhsn^i|nwasgonplxuZWcplfwkohtagxrpvtofwb[Vakljhpglfkhmznbio~j|aepnjmtmfxulfUtavavtbgv[ca_imk_inxzhacrlkP]cqe{\pszqWjiu|kn`nsmvyy}rpoje\l{mJaoqhgmfkvm_tlupfdtjmqi{|hk\ghv_imkldhuklsfY{vzkdn`rhculntembrfckejjlygtX{gmiwdj_bgia_eujqrgz_qlwnqvubrmxispedujkiloigiynm_qfwroelr}hik}h|}t|s{sklk[pqptgOibvbYrrob`m^hyysypmjdkkmdnoPfchcsd_nmvdnavpml_jeafftvimceggorqqxh^gteejdmno_kfn^fuo[ic^q]htpkngjiajnqoldhcmYgtWVmnkikrf_skebdcpaxinqqfmo_knwb[ktmnhjchb~qhhZ]cyeeolplxiqfq`hve^m^mlwftizvseugkphxrjy{sgov^`dmfhYffx{rppoopatuahbmlmlojWrsks^UWqs^Yeirh~kc~[tufogpjcvhucmQz_Hlmknvlncklidxmt|e|rqthgl}Zad{umcYzzuuuoZbpfk[dllirbcxnfll~m]tkqm_egvvctrhnqitfelsiktuzqommefmkoneslc^rxuttssuki~jlslplks]xkakvtbqnvrszlvhlohvwfsp`otlvWbvhfocmkfafcc^`jpooxowmegocr|gkvjnse`mw^zijdlwqj~dkocovbgvrt]easUn_lhncrghidfrbXg_m_jedjefixi^]wZquk`f^ohfGfqra_ekr}Toidk`uc|}[anqkdPqngkRjrruotm`uohdzzuwtgZj_tmXmk[uswhev`pgpgmefmatWikbjgn__bieeajRiva_Ndjoiictvhomkzlphqnuronjh_iav|{hZobwfoxmaheknsxsnqas{vpnk^mrgytojjfq{srtckpunehmymwjxr~hgj_sqcqqldeon`cwhrZoljhquwc]ilytodxloj`h}pjhhn_lvTUpylsrkg]sbhf^^qqldgkqkgjagcthjhmf{cpisbuhshiqsRmmspejnkwpnxlomk_bqjkjmogrtujpl}a_jthc|nmni>tpp[nplokprtpsht{cqrtanifivosndnposdxvioqgeo|uzlpkhjp}gtnhuinlgb]bqs]ueusmll\gdsjdgd]Z_hmk`k{tqqa_ouzkcT{sg^l]jwep`coneaemfxh_\qnggjaoftcXrtsqgdjhmvbdcggkty_gdmcrfnlhlgtmceiqxzxmrg\rftioiiopbcdZo{bmkfkpmboixrrkq^^rnjaovnshllcpkikjm^csioxaZd{cghpnpV\pionyijkmIhs{amassyrywdmbuwsjkivllVyskihsvhlhVctoVnpipsnben]`dgshcajoJythjmOlgkiif_c]clcghbe^k^nads\chqe\zacCk}rfceen`mf`jZfszg_kphin_p~nbdTbj[smXkpud^kaoyms}btsyg|hyupd}nlttcfmuswhdtmjXedvj_nf_|p_uviei__woh]emnzfkrjezxfoZaodxt_izt[je[ecsrskin_sflmqpnrSgbfYb\jrhji\|lrhmdumhlmgjbbmu\eOxUik~swah[pjbnxggrZjauvgzttwj|iiqld]pi`svuhcrnoiprkaojrrtoylerweljkeia\pjtdlulthgcczosngjnqrl[thhjgu\pbkjjgjaiuj[Y{f_ghXigmk\hv{hbkmhm_riuinmoeprp~]khmmakxekm~ockgzfnioZom_nakjxrprYcn^jf}[ghpahwd\lw^lla}aqki|fxg^`fpil]sgkhihc[cbsnimrrlhjcaw`njgadzix]zejlrfkqV_jhflws`|yipxpiamomkl`y^gfryecxrlgmkvnpdggobpgiuksnyvqpljwammfqotbvmqnjerlr^epmlpkhrlpldahjqqqeksfqttnpueiqro^nrdupnlmkfe{fgoskjtji`ihdgrfndlsanefmrfy_klrgaqqvlvtlfnknskjfchvesiedoegohbi{iZlmg[qvbom_ay^qgunhjbmmpd}jvupzpsmqrn\nfXshioqiqm`_kjmnikn]etmaewmjggMpfoicmjkdwgluopeogkqjfplq`[lehiohb\oxlnhvlsoeXekmbbvgewYpenfampr_us_dNams}kinks_wcin|p\lhpvbhnqynhra[{onf}m`jnhcfh_i~knbtlk_fjbhzxjsnck}sm_crwehuitpij`[pvtokjlhmnkgkjesqcdocptpzkzjqjglm`wdnky^nr|kbntpmqlpisnqljsadgqfw~jke`ogvfxilkvtlkzyimo^lntdk`qmqpwsihepkoqjmoijii\jnmfnikg{|xikkuugmtdvacnytixkglabxnkpgo}csbvasbejnifasl_v}wrqscqsqumciinjzijjttqgdkqklqovacqgnzokozhsmfm_vrsgkbeajmoelkirqrbi^ydpfugaliwklhkpo~j`guchPj[iwmZwi^]iYkrkfgfTyqefcbcuKlhp}dsntrkr_is`f\pnchgpyta~jVkbnmpqkeYe]ues{^hrxRk}wiwTihfp^jlXmg`hbvXsbk^hfkqt_[lepm]rswyw{jrXm]gkzlums_dcc_tiZunw~\ytUlhflerZpdAgglnjsilnkkbaerulri_iopjqrgolfsiqqobkujynm~tokndatgkpalggrhrfxflr}logndkiwhj\mwiwnkheilelgngsvhzi^pzulsrkfnsf^fom~_tgfiujyjipxb^mm`rqf^pnpppvptxswf{klVklpbpfjZcdfloecbjuopi^mp|dkkc\lmcfsn[pmpmnjcp^gfxqv^~sV\_|km}^amh]g^hmgfzvsbkmY^sljfqiolaeqZhokzpjgbXjnkidjvOebptub_kmslkeqgninfVofgnn~jhZyqrfnicipjgdpnijcedjhmngdfksmnkirvhkmioka^empsptqjiiyronrkfipoqcurqypoienqqjvjpncmJpnvvvk[miolmytpporj^dyjWgimqgrhdg|qmjptjthnvn}jshknew_zwrsggwenqbmlitigjgivivsdqodhojhdxdflfcm}o{bx{o^svujxpcijfivZpc\oiv~umuqzhr\qqsjqqhfskorvcgzk~mjtytscrgk|gkkeglXqwr]g`lwsnsijm\fdoknnqfo}Zjro|sbeiqgjmivhccbmxofixrnmiztphpmpfcqiuvczjo^docpoxk`wtpgsuolgugepplirmmo|pYa\j`gafnc~ojpwpefg_ynmibmr_dpp`gj_hp`liownaoj_fijg{hiphamtk`hfnln{hnhlpe[hj^alovwbnefbc`ZfonYkjqpog_ndo}rSrok{kdekl||rdpghldrwi\gbkndlxqcbrvhg}npdv]]iehveiZfiaq{bonf]gkmi_kmulaplnshxqfgleogo{kvacji`jhfsf~jhrypingmmmmhrhjfihvju^iyksneq`lXeWmjyXh^jopzui_Ppfszpgjmiftsq{o~akfbT^l`gjli|nn{|uxmp~inpv{]tcdjosbr~j_Vsjgb}r^qrpmjeizSvqw~nbg|myspuel^khrI_xNxari\cTksoMlvvfi}pcuiveegt^`kvokmOsg@Xr{oytigeq^]bq}^enodom^ml]rsgacd^cnsnzjam[Qj[mkwhqghulpiqlakaimljshjxhhzhxugnpnkkurhlsr\qgstomryWimmhykhgrjfpsrjl`kmjabmpqtmhggjtqhelbvhwyqx}imhubgu{]gmqngeilmuk_fl`pppi|qwekpspgvm}ovnjkohkfdckgz\lgwmiunqm{dtzpflntsfrkzxksowwklgtroZgnvwhylsfaonqun_emylzcqjcshjrdokxeck{pmrsgupptotpi`vlmswXsfk^nkkedpvmwkrdhvpkogpvnskrhgsonioiomzjlwojliqnirltreryqvOmosw}ijnhltksmneh{vZtlvylhntktleihs_bylflwk{_jbmlociwlo^ojo{qwpihnqepzshoygglei^^}zrforockdl]tbqufnlylxmkjtpmbpdvvigkorqubtnuh\`uj`}ypugxqhnssnmmlkslmd}{ophljopqmnikzgrgmkmpcllrf{oieyniv`rhdpelmuxqmomxdqhopwtlorkxuetbmbjwincqn~~chytbiejlmbotjpzwvknntwvvjqroiblsjm_q\jabnenoqfhvzais~vec_hkpqeuoosnjmprohqr}rkthvmsxe[ViXptczdtrblqorldczmhflkwirjwnqeXmgcemm|ijvlrnkl]jrsimmtqwokpwihlpdlqeonmsmqlooliesypomrwpnnimggdr`mgsf_odiltvgppmoa_ekfjsq_phx~ebzsjyqgt_lqhnkfksflppnljntlgurooeaej\fbymk|wprkwfsfWffltskmozjohttujghsd`vkneggkbulkoobsutz~fi}jtinnihdu^nhiwjnhjtjnjvswanj{xsmntmzhoem~uolrouavtlnbe`wemvowmke^kfmifsftt]VksvfhYeTedbv`ivp]aqdb|qx~nhjqoa`sWqiklaw~e[gi|]s\rqlxp[ewyjYo[|]xmawkZimjdlven~iosexot{eod{kvoglnsq[yoKfqjk\mmeb\kjdgukeYmjiMwalbugxiudxlojvw|msgwvpbXoizwa[gbslplxkekoebffrqlem]fnnovomp_felyua_ipdfmvelhk`ikqekjegi`smotn^bxghquondyklkoc]mmofexfcn}iaefndy_mzfvioqjlqypgphrkhbkrg_exmngioiY{kxiiqphznqn{mychrqjyrrhVehekmlzjftk]nnkrouobejlqdlxjydolwdh^xkjzczoiyqgkbzjngmiZn_wrqqoxhurfqiqtdllpkkkqndjnme\z`gwsjnfmjhhglscklrpq{oeo|t`nwkrmjiidkvkwdjrfmg{qshhkls]nnkkmlvazuglsmj]tqpioincjlygomgpg[ajkoknmbte{ufhm{dfnfekqoe\nVhoivqpmqejhepkijldrenxqhxycljurninngiim}epk^]cvdptzpisrexywuyitnlk_pjvruhmkxqWysqqsmqrsqp\kbnmnumiyQnsvlqenbjotsfvojispauxnsc{fgbuvdzanr}Zjmkfnj`kcjdYmibc[hrkk^lkcolgwnoaecm_k~ppsSjlicq\izcepas]zklngpg_ahoilhcigegumuma`ms^nv^pXimdkmokmk`pnxj^|jjohd|Rv`\mnhsdgkkwmlehmrzyk_zlvupsgmmlhk_riagcsentckllrheysbp{mmeyicmhmzkpftloecbjhfsltlgkefjlermskcqdlvof^kx{|gpmqzgskde{pmfj]dnyco\lo{dnhphoekesilwbi`k}clg}nxttrnckmdo|tvktiphtlyeajtlfng}reiopzqq_jgrn}kdwoeqnmiovmrqjoerlasvkmdsbsvgmi}fqskpkdhvyceeueivtskhonsspnjpynknjxdwimhldelhimwhfortxcpqtfmlcm]jldqlperossv|nhssopqw|eani~ctqhnj]jkrxqvnoqsko\pz_yqqpwv|ongcwxiYspocjgg]qshhkrbfdiamm`kilunogckp|^rpunldt\dpcj|tbllV{oafvynrhsismhsnmdkgxquefcfefhn`xzhp{gnfumhkhi{o_nrnonftsvfgelwgrrhmminpp~hllfoophbh]fpndruthpgmvrckhtpnshb\vrsTgskemnzmo_elpwemhsoxmhrrkpxqrt^fu}yipgs]qZjlzt\osdmfboepjf{iijmgk_nqjfzh^obm`blpUobfbgilcmookg_nebfsqvqafudfz~gke{jenjdlrMifnu{`_kflgnpwbhxf{mb{hj`o`musyqnlxx}}iqsmoqip_jqrlffkqjhkkbniu]zqfgpltoquxhldnq_yxh\j^omhbnwh~o^o\tl}jcjhr]hghndmmkiivkoufmqrjfbpgmxcfjumlg~xndba{fsgnugr\pmYZbfsfibjesfogbl`gqmirqeueyhzuxoslb\n}imh{}emilryybqkjnq}hZ\mrai[qqcfkYnkpkmi[pn\Zikqrhjpg_ip\|qfm{ibs[cnqfbnolmnbrU|opfopfkejkiowlhndapafmfhhesgmbsw_dtnzsiSuof[v_vkoakjmtnq\xe|tmoggdgqpmjlnpfkck_mr`r`odgYctx^hjrhhxgejd^iijnhb_|n_`qsh`egbrqlceei^ex^vtnwk`icncfl}fcqiufgdtnfwjd|ke^tlmekhbk}pjmmtviismbtosh|{Zcmh\qkfhqlnkwpkflvrcZq{ismqxrkkiarrkdlwfrqbotiemqmxchmZrcfismwjlrssgntgietnoiqWirjknnimjjqrk]ng_menv_qgoi{nbkjmcarp[ekoarujn{fmgipmclwgnvsimnicgayjlxemosqpgajht~jmwrogjqmhgppf_khk`st`bnvjlnlnlmkov`aujtgj~qmqjtjmytngfnorqnzn{urmgpurcn|tXumjbjdtkfmpahsfgaiglhnpeugnoofmgyohmgjlrh_bkoqhdliuikijnklysei_jW]ycilklldnjfqtrlpymqmjZkgpnglphtdrygkfdylwegn`vf_nlahgqWshlighjewfirdo[ku[\brvkjugjnbbhuvkkpk[mtpddpcjp^~jvslwmnbWogljerjrprgmc`heqrvdgmdfvvrvIcpugmwmbna`ghawf]gXfx\o^yZvfkguiitfuqemkmmnhY}i\crwugnfvqtm^ll\sqqyllisi_npgxpiwad^]gpkjXkCvmenirjuckoggkpmqqdpmphY[dl^dsujig|qi[`rfYq_wosbrtlyfhanm`wcnnhwnak{pqHjlfgnltstfWjpqr|Sl{etZ_lyZbfdpud_aiqn~j~rtukhcdnT`xymhrv;xkiqp[lfy^bs}uusjnd{i~rk[xsbfhUfb`znrdz]Rwkninm]vnoaj{l{saripcnswspMtSsh~h?Qqqsjady\rhhpXg_arqjXpd]e[kOZlcdx{rgifakwsutboqglwnqqibyukXou|g^soold^qmjhbgfjrqik|jiivcpTechkkecoxteoiykj]vqhsq_P^vpugvgjpb]mX|omeckdjnbfqo_vvj{alrimtsy_fnjifjfliuqilskekrgqphwkibhipqershmscucganh\ktfqiwsla_ekuntfkhxyluflui|knjkhvhqmsqnprcyxjo~mwwioos|gitphnjuejmcmhutduvu}_nqnzcrzsjv{vqkpqkbnisci|qomzkimkmrklkjkmlmueblntnrmlslnkh_ejroeqkjmocydrhlmkokwriosm]gktljikjempujzahmftjfmmhoroqipmltgoprso\lkfluodlcdirhjiwl{aj_jltikh^jqlpeu~g~nsdhkkrlanffdhhwob{^_rekznlovrtuipk`dfenzhec]zmbhpdoouhdcilepqwXbhdxzjb~gmXmgnj}ecw_bmbltkqlnrfnoawlgqkmmexmorfe`f_qlakwxnqlbxmf^sebohovmho]omrepkdopvcmg\Wx^`ftqgq^slkples^csfjjhgufwm]e{sxvoutgrsl{\fkblfxevlhomfjse^styqpwsohplnwncoglsfgnllsllou{rxer{sntltdnipuiljm[ngqkk}lhhmnjdqjjjlqimmkuzgqjdjmmk|[pweuityslo^j]wkjwuksdvofyhhg|guimmvqfqmsnhmonymqdnxjmog^gjnYgsqisktrnfokthigoe}tthnlqaislgxokvcpjlflhhuohoifehsuiseklfcqptqiuq}~lqqjktdkjn]|kaidijst[wkPgozqqwdtts]uui}cjrximt}xloona~poqmljimkf`fpomm]rouqvksrr{artjddkkcrdhklnuqgpungpdikozjqohonh`zua|olrvhnldpcicqskojtgl_plfpkYskepjplypnkp|ojmmzeouohqn_vohovntu`suguktrtqvtv{m|k`a~jfqxw[momddxn~kyhanekynq{tvgmmdmjmrq`e\fzc|prrqfwvqceu[soadqb]kpendeejmfgjjxnlonitgbuflTpqtopnv_xztjlsfoejfbl|gnnYdcthvnltkj^kxlxnuidj^mgotblkoedbafzkZ`jhXatmg~^genodnoy~wqa_qoikhy|kk}mjv|vwoktejzmcqlhgqdyzsfr`igrihyrwoimhoofvc`ikixi{n]lxzklb}pbe\pRl`vzbi`tf^yif\hewkyxbghzpnjrqjjlntdibnr^`knvwgkrirgsdyv}eq[hvsjtw~kxsllnxkaptcNhwdmoycnqv^anduklYmq\nszknlqiebpfoWmwn_s}mersqwpmvalpmuqphhtu_bzbgxlfhkvkmqcsioqo{cahvtoppmlmfvd]dkoyh{z]kuqnmxezrtdnm\|er{hnkzjumwmpcjpfghdckolckncmplhkUakjgblmo]sichiwxifdnl]ldsllghdgtxzrllbokl`zoux_aldotcft~kx`ihprfdmesfnqZxpcjmut_aqtqttr[cnkvqZtl]dllwornbn`hkqik]lnqudmxuVlgglkvviwidklr|bcpmvk`j{pN\s^r^skpg]^vqoalti}vUgjajetavbm`ms]ffnbhc^ehigtw_csdelqwiifnehary}rpZ[yhjtnrvj_ovqncihhisT]fcok}~i`lbkfwknpjpphctcYkhkqzgbwcvXi~e{^tfvmfbskodebgbkifesjgedTetiQ[`[Xh|lrjgsylrligj~hzdfkjrluqt\]mrsS|rbSffat^zPLXavz`grldhx|gtTcklf\okdq|akzjihmXq`lZepieprvzg{tcozw_Tiv_lggshl|olg{xiajw}fWn`d{dhfgWmc^ixhewpnr_lvnzringmfmhcfgkjubjl``jinxplk\]a{ihulvpsk_hmxjd`q[hbriyddm]yyeg`rkgrk`aiUurcmjatrdrilpkigmjokekfrjtpupmfjonnehlfehb[ljkgmjpwoto|jlrfdwvmduhideirjlmtvkmwasjpr^jbkslrspcpbleimsvshuazvxkglokrfawkir~fltnrnlk`kgmtaqekflhiduflm|xu]hr{hkrptpnjjoonduuvtml}roznoccqzcsof`beoneijydwjbxj\Zvrg~otbhmvsk^}jycssnhrssjiubl`^votmkjulhk`Xqktqqzq_hpfqodzpcuhmlvj[x`mhjeuux\cef`siasednjj^zvoojkqjymkheZnfvsxpxrklrrQlebomdp{w~mQqckgZoqjctxhrvpfsvcosmhkg_lyehobvs^g^jaa~rhfvdalfyf\[hsigblelthmulqlrsy]kfapZv{\m^bdi`lxzodjkxY]imqtqvnflivmfabqwk{tikopccolb{lic}pbjnwe\lsifn~klvbpelmn|gwlfelgby|lhReiWjphalxgedzcblogu_bnf`zfc\nniosylkkmmjqnnbxjvdog{mexjkzksbmwmgqudkipcgdphor~{mrrnm`eneqjiSqeo_^hknwr}{mrhnsjmgc}Zficjnchhzlh[_|n^tauks}whTcitvnxkyjjimRb]idkbirlldss]niotga`h}YomzgYhpimjqmqgprwximmttelwjxpsllon@zoprqsbhcdeqanunbgffnficymkwupmqkmzgoolgrop{hszkfierukujcteodfqg]ckfxpeuhnivginqeohike{qf2Xpjiwfp|nqmkhmqyscicbxobg[jo^rnxibmefak]lfnplVkq`m|i^v]qbpqshvbmhr{hxxm{ecr|zmewbnwmpjrwYeie`pndom}qkpmonor`co_ig_[mqwgvgkel^HggrfVc]{dschjghgolnjld{r\ajcbi{dtUkgxhnjp^r_~wjwxmxndavscmdo~euh`fj[\bmnuyghpmcnhnhzcn|xsw_iitok\ukdnrfld[xhty\ocfcstkldhvnyqehyqbe[g}o`jgrfwdokjqitsmvthyibml}c|xsdny^{}klZmqdgh~lxkpiraydXottXlftbetlmfueflcq{j{wbinoktuqaanurrilpgkzyfxnlqfo^gp_gmbugriisYooltfehfjk[ohawyd`rok`gdYfayezemjhkiis]n}y\iikbdktkmirjefdzk|glNssasmr\mqpgfcbyclt^hs^nYfo_]ylr\fcf}jfkrajjemdamndetjr|kcccbzphfjzl]ehlqqgSptp{cknbpvqolfx{mdi~biuldrpvkhsrgincoda_wqlkumqsrwrtrrieoevzYy\tburVp`plhinjutjhks{f_e}ed{qlkefr\`v`yyec}jtbei~wrsagqs|gv[mmfpn[idfrjkuykdnxinziv[s^jdzkRt_omnlnku~]o]puw\dsve`cstlaplblmhefk]rhrdck]hixyintVisxacrewchzqrliprj]~lwjYkqvW~lsT`xkmrhphf^{bxcnkr_flkwphsbidkvezoqfqiy_gsxesjmjsmj`f`crevetbrgfubhfm~mqaet^vknfftdi``ft^{mympZiocenzmrvp~nlqprsoifftjo^s_ncppt}pfpcbg\efnjbijjolmvggpyxg_lchtfod_jib}ew{w{wtVx]u_mb{Zjwohic_\pjvpX`Qffkeedkon}wzlnlq|rwHigjzs}hlfkimttdr`b{?jkl}]xikdkZpnmXznfabVzdnjrevwjm{]p0mttfgzNp^ioag]rsafhqsgrxaabdoukgnwolpnvndijq[|]rwgra}[yitpsl[nmqe\lt[fdb{csedgknpstoqlp|f~eu|plkcWxdd{ooiyp[uZtlzs]szsmi~drp_mT|oneaorn[WUosrccn^rm{ydhjlfocjkqbpjy`RwhzjkSaaqvaps|nk}kcg`qtei]jng`jywkbekiifvvdzosll~ahngzlmgtlfs`wthdeck|eornngqp{onkploztogrmZfkijgjns`]kpvsoVugibfiehpb^uakpnogtdsfur_dldptglsrl_fn`anphf_rchh^ij|r`cxpf_ehfkkhs_cj|]mdb\v`gmqdpcYefg\dl_|YleSwclavllhcribwZ[ramwyhd\nnhvtgggWaXpa]`hsjWUqkjrghQpjhZqhQU``wbeyXHqWdje]r|lFj]prqyh`crcygmbeXwTrhmolrj]gdo|jbsnftj}kxcmmrix|lgj^simx{[mpn^xj|jktzxtpia_nhpc]wdqbpnusj|shdioymgkka`c\dqfh|zpgpsvzpopyccoibpteslsomlstuizwkgadoqjnlyo\iykuclglelh`s|ffj`ti{c}\pmia[uij\smnmqqhgujvYorgqlomqsrmbgwtucudiul]hvgwuUmuelcewmrRyiff_a}bhchii_STyqtXjfskzjoin`vy_wvYqybgvyjh[poiuleqqinkz}|}iecmkkZgk_gnc`u\cqsc[veubg{nwrrmWcpnttohnRoqqaiaickllnssgpo{vlgSep}lewsjhaswjhl^\pfmi_Xhwiqm]birjjpUY^pxk{hgr{kmoacdrknfdfheguiwgglmmhn\uxlbkif{itmymh]jxihsigit]ewisoxbsamgtkij`wnfhbh`hmdprYv]blt`fpaZfzfnlxk`m|idfgrkfrsg`koyh_ffqoalocjfce`xenetl]w{pxv`rkrj`fZiibY^qco]fflfhmcanw|xndgdxwgfm{~damqofvolbk|ipawr`vvviihbZXkgcbn|dmriwzkjkqTei_zi]\tanokcd[noefneqhe{drc~^rmjstq`pTt~cvkfk^tp}b`{odnfoj{cfmmueNqk|o{Y^vipn^sznc`hw^\ltvgkg`uesjhtqtfbtjwanfgpjzl|nhbdtzUezndlmioOih^qahjvj{jxoajvzibon_ntemUe_vumZVikkpglt|pn~r~fdplonkub`ihjp~}osihumgv}hpbmwk~rrfrjqtvwcdequrntztqm~pcuidskkokphl}]mtpig]lmnlpykokjnlyysulsepkhvvmmtuth|vflxocwsjgsskrwfjgyxsf{ipinltwhuvjcxpd{ehopdcqbmZotimyhit{jZdhgh}iks\|pc`c_bhnsskseqhu_vfm~qrjlpkhXxafjyteuq[ld]nho\t}ticijhpqorfdwdmh`thhojpn`crhmmrzkntsyvxkre`gcerr_ubkg~crhnnsc|rekypYjvxedyk]i\jnavfdivqfcogubwombmkjhnup{wqy|]ml]_osfusdbki`^cdk{ht`nokrprnmumresbeilajfpuZmpblaWncifythhl}^dwrp_|drewqzZddthnijopkmpvjo[jfjkrodV`vndfsf}mhmZod}fnZatfqboauhknb^k[almi_gkctgoat_jn^wotZqlfsfz^eWvmgzjye_ldqcroajna`vb]pZpw]Uuhq[thoq~ysqxUxiX~j`fmkha`mjvprrlmgrdrlkY_jrpggt\ktogltxv^nYgwgohotrahj\lendkh_qYjos^^xtvtoC}zmokwdnjakJmnr=gnjwmokrdjvnjuomnhQWkmkYqbgjtTThbnMfi\2Tsuk`~gkninwkn_mitococUhlcjksl`zxlikqkIrleoXhisj`|u^opwrqk\jxoiyjl{N_upuuthfXdm~mk`nhzojsVbm|rmayp`m[}gf`lennnirnuEo|_fqzxft|w{pYk_j[|xno|aqltXjh~_eVsthgunxbWj|q`ZieiprbhxVlhVx}qxpsYzpmvumb}LMdskciyhohfztenmmwVszluf{qOxdrp]qiXxlndplyljcdedf]vmkftmjonsxTnnjewYc}Y{jdZk[M[`fkeggku]akny}oifm^wmYskj`t`nShn~UgpviOzVkrb`hxijV]g^dWV[nolplYW[B_]um]bvswS]_\peeNi{pcjupm^^xryzugZZ`{mvi`vwlxeV[mikojrhkndmoonjijganv`hmpkognkgg_llizZb{fufgedbwgjplXr[ekfw\Uqigfl\hdrdmrkmv^ewovkifnojcb]jcldccfsnkkwktrmgaeigwkzpfyvTlwmhanaQzpfhemc_hr`q}h_kt|jtwji|rmkjte`|n`s^{zofmsdhezwswl~yklgyilmmifds{xtoteppn_}pwhs|cjaryttqbx_miremd{`zdyn_mlsr{xwh^y}klemk^tnpwlrd|cuqm~isplimpf~kpqatfk{qbkjt[rdqlvf{goqxsu`dqzZmggllXntlxrosqkvibhlefxnacdjtb[pngvg^nksl\ejiYpsSudb}yhtxs`cboidouolsgwilhk`d^]j}bcbqmxkcsqpcwixls_qw\uktclbsg`k{aoqvkrw{ho^hmgoumfhn{rjfnkdqovkundrv|]cadejdSemslpb`dkmgjfnwecuhpe]cj_silpia|X`wu{koqpgrvdeThkfcojbfcitybtklornkjgtngpitdpffdxk|\qlhgmph_cqo|iihdhwljjihjvqffsvbognjzlu\jjcjtuuvjuhep]er~kzf_ckxhteqwikfj[i_tknpg^Rjnlrmdlflhlcluirwif[tdnykmpamjtagzummj]drkirhqjpr[scfqxcbz]rpd]aRegjl\jz`_lc~mr\fmvnejoteecjfwuqupiyjhegknkmgmxmnqjgXkgqgyvflqeupjihxofshn{ea{r`wjgrgrpvohbdrpkdagvqr|s^nzgoorjqmdemccgtwn}lban~mpkmhnmsejmfajneegju{ldmvepm`_qpgxfj^lqlmwhqarigosioqwr}dwevpalgvfco^a^lkilnm]opmpekstxm`nfpmu_dlnfzjcnlgiwkoXjq}a{wpZjfsu]rTsnjipZmlnbkcqf~gitm~rmrudYipdprhho{cqns|{cNcggvRirps^flvmst_lmqmpnkjg\WioijltdilmakobsomnYglswucdatn~mpklglitWbYdlppip]_ogvnh^hxiqj}ipq~ntnlabbfueb{f^f`rgkaiigoqjh\kobgmmjgjiemajluehkshtxlbcbef`quvqgnklksgxoWkqq^utqmgmfggfqnozo{_wqoltfjk]ekuu\{p_rrn`srko``fmxjmV~lik^fi}ix_gkmrl_VbxXpknmgjiexlbkqgigtbomrxubmcsu9qjswsqnoCfmul`m`kfj{fqimqpfhfdhjxc^nnl~phnoenmiqmpksjqpjecu}zlbmdperdssmqnmsnacfelxjdkv]Z]idvq~um}ofZ]myloxpdhut]mxsXf{fkd[`fglqmkbms}kg[[oal|ul~mhpfkZkmkfikkuquhwYdgm]ayz|f`aYyfo]uWhluU]\Yflrsmxoommmtdk[XeqsZpnwur{Yx{igeitmlqj\fsl[Jvjay{gshpradctvyjkmi]lxhvpd]zgy_mcrwodqdeiskppwbmhksmaPyccq|oqsm|us`kn^btkd_gkumorxmrsxo__vvfrucfgpcii{kaxjwjhkrmuuzvipli}ltlY}q^pkpvqpvqennjy\o~iwtfn^eowllbiklg`gh^n]csUd_`kdqtjqckolhnRf]wfqTOilv\mypmzlsuu`utj~jrlylzzjjv_hwtsrkhngswjhitnxwegidkhr[cxkcgX_KcXgvoxmtwkpgnyjvQqN_okiFq{othjpefnleudcebzz^g|`som[joirlR`|h~eytZptuEketnamdnileZg}t\oeedtwlq_ted\\}bl\{nofjruisormnZho_cfgljdihfmzow~blYsXqhhknmh^nykqbjhoVbfhrhr]qsxofle`ahhxX\rfvd^`hm_slmwmg^rgplxj_eZylirppyf|nmtl{gotmkmmtsb`hjejimUlZbhnsooefJsi$phhegic$~agkojrwdofhignoojjliPdfjTid_~volg_pfkh_erVpxuisufc}tqwqkhsiwklumfpvkhx}kmmhpr\thl`Ilceq~^|s{m`dXuv`stsukqm^\lfml}w}a\o|P[r{anmnxq|Yvfr`kagqdu`r[cP]pjqllaqu{qvsk|odxnkmjxjKpVxRmwmX{wf^Ul}hjoihin^vz^uz`mpvuYgifeivscc}`vdjJhofvXltrn[nynr]Wpdm^ivwgb|rimdlikglnojncwyrulq]gpq`nbhgnnlhappjfm]mxphftcujpirmbu\kgfajtyhl^tiwlc\xhkp^j\iVtdhouu_[fkRqlurtyvh`dimfVpuyirudbgYmi{lrhq`k~ao\foc__qqml[eo{hburzhlnt|mgxju}cntw[datnt]iu_]Nwygr^~}s]crdzwmUlfr^^qnte_s{hoxj~hZlanrmvQnktrr[lmlpoyj}nxflsolx`|^rdmPoho`tflbcloljmr`s{hvzrlPmgpeljnthtjuzqvdrdnfuh_yhi`ujji_`fssju}xzcxpqedrokjdlk|orkme}ggamqjqmgdnqjleesclvl]``aieokktnuihmkthk^mogqggwitoqpdxrpsejnwj\ajcqlntd_mjnkfnrnsnj|zgorcgctfukhlo[tqknjfdhfkjzdq`jmipgwssq`ekpoqmkmgwmcjgibcsjqi^o}pucuhTjlrdnkltgxol^kkpxrw{pgjgmt]fag}hnkzdaqpdktifny}jtnhqcm\k}gqT~keersikj_|hgech`vcfnhcppyppojqfW\nhm\drnvmewmucg[tXxp~dztraknc~~plbtpqphqilntql]eu_`xwosqqfplrvajgn{Qn{loj{oijfgnp{nlmsprmndenftuiwVvogzsjsxrwbpoZzocdexojlx\jkihjccpjhlqnftzkemvi^XuYYtefil~ccgp|uftgtstrqygmYhg_pliqxtrtZhhrkwflrnsepjei]oanXp`liisx|n[alibvfhfhgf~jhVidkfjsvb^bevijiamnb`puhlk\fs|jmxspxvpikmqmk_yZfsmdcop_kvf]_vlvwgpsnvplggVfh|jkogm}aq_d_doenoqsvb}f]l[z~eyafezorifouwkd^`hbp{gmdll{iaeimmhklgnwnT]^imt}ac}klhiu_xf^`kmdXtculjUrr\b}jckc]xgbas{^lmojitzj_nnnyvegdltdsbcbuwcfogzl]nZ[ec|n{vehimmiyie`oljdi}_dikcjdir`km~n\]qlrdtkovWliv{pwdhY~yom`urlm_cnp~x~hqbppmonohp_ke|arxmxqlkzztkwwqdtojbtkfikwewplkopolp`sdY~wns[[juhfjp_ad~ajlbnkbysiZipaeko`egi|ihyqsp{i]sqfkeelil^kksmtivqxoorrrzegynpgdsnjnlzmyr|xemvs}wktauhfmpieqjfjttqkjhpt{glm{^syqyrf]iw|usdrdhohk]pnuli~spPkgqogyfnlgtgelnfkqhfspspfumho_qlhmbmkmqjdil*liibjmrhnjzyihulbRd_achjuzgfjldpmklbkmokarql|ihnuyZlrkne_izoe|nhivhhsymphhrifmk`gugnhipbikvgsplhnsnnik{iboctph~kqr}jesjhtrymcqgkfvuoqkhbRueuUzioj_^yPqdqbahts\km]nlumgqhsqroneygqqknpperukgotd`hzxewmcho{lwhcmlowmjnjn^xchrip}jflkklp}soiX}el_^ol`i{eUcwqr`pfsnwhgwYYtgoj|egkjdqnrwmdes\po`djejmpkwszrevfujisqhopapjhnasbz^kv{etcukjrrloobmq\gr|brmtqfi||`gqy\jgo{hlpmpvnvvqbdkedjhl_lq`obwdr^fm^vdkwsmeroj_{ip^ijseetlqwiogfkpYtedze\aap_jhipmocnx_\\`bV`Z~~ooh}wlhhXx\gso`bmkew`cjrnecqmzepsjoldjggppkgdcWd_`bhmv|csjqb{c_zms]yopjbkYzrtprvskyhk^h\lfirpf`awwehdfzkZgr`d]|sihiYnaXazoeav|ltaiofmtptfmscwengfhdubonfoguchlkc|fwnojmtxwioyrnsnns\cutgukkrhnxoanbpjngnntkcqpmnkaka`nmsqe{tj_voooqjwujynj`mXjhokVztueppdtX}hdcmknnlnqekwpbmsmfso{setlif_ndntkdZp{ywsrnm^uZztjehm_]|gmuvnhcvlyrjknaealcr]of][whbwjapg^h{dojphdtbsanpaFnpdZftpjh_igskmhfaxzaumo`z^_jZnkojqzXkvt{skorqsqtjVcZz~deqsjOlUwhn{jhpf_enwafrs^rmh{nna]k]tdgoipbcmkep{fpksksvgzvqikcgwe{jt_if]horvgztncltiimi^`mimkohzhvhm~nqcphui]glpmeihc[^hvtzyp`ddfnxdnchcyoetw~vvpdo_iaqneiksuk`avtbkf\yes[tikdfqgm[fnUkZmhsZgnehjmekjek]tfbdan]jfo[kaoeorqWtqkaddefqgo|sToe{csdbnZmjooljzchinourgli_PdkVPgnhcnd]Yz`ggmlt^tkVloohn_`gzq]fsvpgdsld}crybfagocYfeppi`gk`Xwh}UldUZpav^tona|^v[uqmklsxbyfupVklonvnevgvqv_d\m|cuw`dwmmjjodoepagjf`afyqjeXZmdme~glrgrktq^`kmkdza6l^cwonmlc[Ld{v~bVtj`}gyuYSx|oi}{s[ebtqhk{mlkhjsgj`}lbh}yqbjc{rky`i{_Zuhvffcyfrljfq[Yl`dtgjXiqjjxtcd{olimcsZblmrrefgoymzbzixnoqhgwqXljd~}uq`mjoIR[[oiewkajhupfnfpn}jj}skohl[rgk_Vknozja][hk\|^HrcgZQ]zRlXrph^riTl[oscco\n`hleklg^xe_db~O}mo[pXrhjJksjb]Vch}clwfZijdz`_a`j`\ihjqViuscwo^\ribldYxhfbkggOeeWuoof`TrqdbkVolcv^_Zhoezthfafsg?|m]l{Z\^Uhuphhnoiljhgxpxdlr{uilhjt]wyy`v]`sjlupajvuT|ihluvqsrij_dzktpu]gp~xttsrngogonpkspWzpej[lrdZjlmfqgwmdhepWlgnurqmuW\tnq\fhb\reffm}OfY]gipihbjfp~YZYmu|h[mkjkf_bXc{kndpbrhndlvmblgdsjpnwpllehskhzctokkjwpihowfxetdrg|o[epn\onkoe_rrjnj_Zjpdvvtnrmmqltimjepc^yrekq}ncsreczrclvvjcrkqlvf_Ymcylauh\e}luh`uv}nu`q_lfujaccjYqcinIVmdrivn`gek[[qdejXjlchypfug[gyt]gv\Zpjhqqugsq}]bqZjaolo]`mx{n_hhkn|hr_esyol[wyxzqtqrm_hdpThe]We_`wjt^Y`uUj{mwxkYkbRjekSbdmo]k]z_plxcvkZdb_alLdce^po`]aoT\as_qeZ^mxj`cp[ghhpevojgdvmxhobjcnv[vvg^[cd]wyXeUd\xhb[dgg`gb[cxs_ghSeXrlzjdqndlZd|thY}e_lnbja{~rdnkn`VShjrl\ckrk^d[i`p~hxge[ktTdMcd|jiu]inrcaqWwiowvezfifxr|iV_]gqr\nqn`yc^|g[e}r`vcSzps_cd`^skicpgbn`s^mjka}ydnvqdy`u_pwkc]dmbSiwkk\[{viiujelnJ|kaezdcnaU^k^cshdvodtsw`j`zdhTfrdwdeas\txoyhgqmrdhddirv{ewi|_pjfypbvjUbfp[gpuh|sofcbunmk`moy`t[khuhbhVpgoenxtjzer|o}|~clqkd]iddmgphnndkepYfjkdtxdsdad{\ahjmswyyYutbkg_yanrtemnzlsohso]ff\sjisnzpiwgpZv_oOiqmsj`jjrpknt^jluYkRsagzqflRlvgnnhh^rzgf[lcnarpaoc`t_mZbfQpvrwlljbYghgo]smei|hrf]dpnnopi`zaezrqSeqnhsjnoemediv^_ngua^oyjhuyaogyQfg^nibmjkognxe|pwzhlvpkqgsocklt]z~diref|ovtlmrzojomujfW{qzfiwYfs}qdscynfwksdvtsf`qsfqcs\_{gWlslxccgol^\eh}p\swsmrtifiaxnimkghiXocruhgq^_q`vuncq[ot\qr}b]_nntzjigqvZxpck|hqmtpovbn]Zyplbqoi`d{qb[pfy_gcbm`ppgljLhnlwrcgtaser}tpe}teskgr~knbyy`hsZXnnhifpvmhg|hoy^Rct{_|ccl[fvnmdmklVqicbXP{m{t`|lh[ficjr}g}jfpoohkmq|cgpfvtnqpqgVi{iPkn^pj]{me_cpdY~j`vg]kjnki_tvc]lcgpigjihj^skrlwhttrixvgeiomnwrsw`kjpspn`ptzibvis[ghndp_mrnedd^x_zbtbmnenum{s_h~PsaZhzwmqnqbnjiltwpfinq[mokjj\h[jpknomiayWlpt_njsyhsiadtuep|fq`blpemvklclmxgolYxxc`i}omklmejljnijneorkxng]ean{owotysip`fqhfxnitquvlfjnvb|{ctnwj_nrlakph`qfkbkyjpn{qiqe}cmuuikznmlnthblwhjxco]eV^hYffcbrff]o`leWetpi_WyWmrr_Zcqpyll\lmXftkvoay`b]fneojhxkpv^qg\t|el{`owfggimgxfgkajeba`n]W{arve_r^6ZWZerokncuh`iO`oezvwip\tZmygsqxl^rb`cnblkcdvi`@pikoetlviqe[hidp}sf[ntsfhmfymhm`sssbkphdytyfhvk_`kirzdbikcqhqdlqilcj`q{vuckdktjrpgkdhiclgvrhlliflvumq^Zhlm{oidqqawgmgt`unij{uvmgbnnelqql{fg{somrpnhd^ohkRog`j\gjq_eedcvuofcluuibrf`pmhjbnVhqsurcdo\acnuj]xgdg|tkpeghmbkp^iq`h`ohch|Wk{zfpl[`kUcxcpmfq^siiwolldm\jwrknpYcppyktVxogxpsRjfgbkenasvrbix^pYloilk^bcgsjyl^hjrenbkjp`lflotjhpnqtopsp`mymesop}ntjsahoo|t|grwoznjjpkbmnmwxtajjngbnntqrni]kjjihdmolsgjjqvqglnlrforhjqlxmmdcqp{xkqmm}psoeoumxhchjqqku|`quiimfcnbhclldadthrdtgmgxnasrfoookoqjcnjdpkj}ti\vp[Yjushqrjivo`ljyjoxrrvx`k|o\imbpodrp]xfh}zitpt`fekfiqxot|qkrpyvomk_eimsmlfyapkgzjcyuplqvbspkulbuunoisgX{cknbnller{mh[jw|qivcoiilhhmzy`XLk^lq_hd]dmwkod]jk^ldduhvmjjcXrmqdfgqi{^ndhqutfh]lpgxqhchvplm[qdd}cdegpubjqyrh[[eZlgv]pf^mnerdms~kgewgljltfZnkpgmQuZodgdys_rjeZnfflfvr`ehu^fmqhe_w`ixlsqqim^aknejdniYWkif^p|reep[vffhb|k}f\kaitw^y_quVukhyjfilcjtmhqgcq{hYhhetdph}nYbV_qgUZay{dpqvJyZmsnf\mg`fkugvu~ejttkhlk_glcrsivHbtnsrvq\t^hihytasqiyRwcapmkfg^d]Trgwqlanoevkw{vnrrXp}wrf{kpR`licfrotXd^`hjts|ovtu]uqX\jYgwafoXo~^]bXkpYoeuZ;^wbyyfvmpXauZg]mavIvypf{aMhPU{eoogc~ktflhbndbexuvtonkxjnjdtwihhrfqqis|e|gmjqmoltiibdhucrcboueXuewildstqxo`ereedni`vifyu{oti~[optZ~{]noekoful_`himximnjkripik{puf^jgqug_lfqrY[vddtspmtYorfk}ogjpctgltrnkagbpTugcezhligivdb_khdymircwh[xkbnexwzasipi|piwnkrljpukkkqMqjh[ksikepz`jeirvm|gosonk[ewo{nhtaleqxlxjRej~gcs_hhy|Xcbfrp`ywn_}qxpf^b|vXrfumwpjubstYfrhvdlfnsafuehbg~wgonkrjkh|~rkpuhlnnxoutggyldifpWbijX^gw]j^jZtklolsfpooiiQ}i`kjlgib|ox{y_jk`iqbko]|rl{evmcwmrokdybqtmkopeui`~xyqgq}hrlmrhimlmbj~_zgu\nad|\j`lsjcziq`{mutcsjtyphwngi}lztjbithcg\ot`ejmn]\imskrbjmsmogly{ovpeupoWm}libibbdwi^]kvdj_kpXa`rW\cwnmyiqyokqmklmixmcjvmm]_iNjmhshl`hscausrt_iqnonrabzoq_heaasabmqvkl}tgw}ogmtrfrkknkpyg}hzo`eikbooyrlnbyikoeaokhijpuyjegrik`q~\b~ucodemwilinmig]vpuuhumvjothaoohnjgkygpdnek^umtpjwdekmvdjjopxbdjrluh~wbr{npqdgt`khnbqtydyfcsiZfi\]oU^eu{sYy{gnlozh_}iirvsezaqlcmioeWkpenjufdlgqjZm}co`p|aogb]dsvamTftdws[j]lg{]vsygoZff`h\mkkako\abdvhgR^Xeq}llzrWhheiniwiipk^woTb~phghcIgjuivnflhQhiNbqLYz|dzfPmtszprdtrmnkqlzj`xm[o^rnxbpnpc|qXfwacqh[\[scqPr}fPmlie\_ze{[wjwgjremxvlbkq]vgW_g^ieQw~iezkrtrsY]jj{]jndVpto|umnfalbinemZcvbhuymnkZsppsswrnehvmv_h}ttgibgl`axmjmp^`pcXhmjbbY]hmoThtjnl_gwnsjpz]uiljdrsuf`igr}ernVrj`jpmfuqpghnc}`qrUonqtfylqVl}fekesfedvqqnpebdvomfunndwir^\rmozklthrtes^zarn{mjldqstjnveorgw{fmnoqflnbdgsn_re`rojgkeuhihgbwhajzqvhc~ltzltm]dukkfhhlklofk{xgy`qrtq|irlhf{pxwttxgqbmojhggjghafibrwzejabj_old}fcky_Taw~h}_g|{f}veRVhlppqeMXW^dadgi}~wzjbUotvjmgf|v`moXiu]qiZMRffsr\o\Xghfkw}o`igfo[sgrnktju|qqeenpgyhi`t~^wjcpx}ifhkmhvmmphkjxsfvfxfQh|opengiW{wu[odqvc^gmcoteokuBmtSl[ylphf^hVch}pni]lngdLdqsomej}bwythlmiX^apjg\kind_^nj\p^gwlvkiii\kscsdr_idb[hzuzll^hsrh`yYb~`z\n``of]slk`kbvj}ri~tf^djv|~jmdgahj_g`n^tls|[vcgtbjk{pnwd{cg_[nckskp}mvnlijirhlrumxYfetj^xllvew^w}tg^om~zrhmohnmgudujusjcobtk|V[atu_{|f{nya^pvfoks\p`jkhjew_wyoo`{f_ioZyw\kiocsm\{pjkrhkqjpjn}hyi\phhqaj|n^pxmjolusxmgntwdlwsqapv_hftskdhmcuoqmafzxrtvvpffnjdpk`czjtofcfismiskevs``pppqwjyhglf}gT]iafnukmyy`~prh}nq}Xx`ev}kaslcmlfmkglusypkg^supyhitpkkkjfmqqi`kqglnlfe}ajckkemc|yynhjgk~ipcgnwr]qsjzczjlikd}tmhggLvvfhwqkdjawlukpfjmx}u^_ghd\rzVrx}ss]rmsihj]iidadrnajf{fnpxpabbgrwpgmu^olgfor`wmri^fmwzfclu{wnrpvdmrdhkwlviapholDiiomhhptqnVfcmueolfvcqsdllhldqpbojxpemfs\qZsqo{Zsrxcujvkinl`|`wemcm_jujsnoatifnhnpzvgdcgh}werhfbw{fbjqvhtifshbzthcyyleutnmkf^hny^bmcidisdt`sr^_|lpadrbtpjsxmfpnnqmdifdnmlae`lZpk{ayrv_m_lnj`lllihihujZtvbmyhuipjivvkx_htpwumibb_gne_YYfhhpiobnbm{annwhiobgx`zpoj~rSo]sw[pws`lhfhkq]eamhulkpcqgjlbNisvbtmkrieohvbt`]d|dj~hhm{lcpcompx{ngun\~nnvbfdrv_p^glsnfjNnoe`rdkkcenehp_pbjektnZu{nel~ggugtothfYjky{_eSlkmmcqcUmqs]cneadgdfYn[__tgTf`{wnfclxrLklh[YjsbfSqskVomprtmfafegdlyaut\y[drbvhxTbemN]rw^nrwbc~oghr_bfrZcbotpU_epc]ba[nSWddgk^ymcwk`Z\mn[\ewxflsWixzra~suvnt}e_fu]ncpqp{^]t{vkcwslvgrijgnjrgeelbo~gflsqbXppe]vlikkzrobqcltjhlrf|imjnnirjmqbf^wcolonjjlksrlnykja}jmpmbmntgqoutdfkgbng_g]lznmem`qrkkkxmtj^cq~ofktuxdofrlbeqlgtsth^eawotslikqnusphiovmskiogoognt|pe\}jsnmtvwtxrilgijlgpr[e~iyrjsrriuxnnjospocpkkmrzk{nphzf^flg`vfbiogmt_prbgsvdgfgzphlqvdn~iene`dkihVpmdX]florf{ldonxni}hkaonmfU]slnnoypfjpihslpfw{o}looerl}whklqmmuniZd}ljfo`gggmipnjv_uinjdhdnrnjuarpnnZZdsmmv`ahon[pwrjh]lmqfpkrjpbveog`hpdTqgqicrjppadddafepemayd|Woueeo_z{Xuq]|dscsmlo~hrFzTelsvaf`~q]gufahirYqzh`vpc_{zygaj]gcempu_ootrkppoWWok]jvsficrksahkmh`d>gkjk`\om~`evflHov}sWmgyohfkdnnrgYYX|luubg7zqkefyhnn]wrstwdjp[hsi|mZji}H`hrywbgxskzJ_Xsc;e^dupr}kjil}{etek|lgb}fon{gUsQj~[qbemXVh\{khekT]doyqmyfwgo{opbqHe}fuScNvjiaxbn8Ybn{dee[|iblYjvV[]dJxvmQ~^xaDpuc|rnia_bvlhy]llQki~e`ynSv`T`jwkslnmuhn[d}drnigpkhulsbdabfvo~gyfUu]vohgpw[k^Kee=rkK[woahecjimgroZrhhgnfho_cjtniqiu{l_ZxnifY^qf|ftvdgUrv\xf|ampLo]qZlg]knpjWnelfwkplrdp]agmep|hcbwi{ylkqkhdeZ|ni`pwnrpcvgnkqbahg^ypr^zznrll|dmjuh{bxcmhfdum_u|lc{nnm`ey{d[wiqjcw{[ffnwxrtknnkrl`v^uun`c`}~xlfamimmzssfnouZ`peeodnghsulinlefnki|hpxau`vWfdpijwd~ql^ymffthmlryqlmk\hfrjqntyjusmkobnd{hnjnb~jn|lihewgievvq[tjfkuidlad_wqikjcfbip\jyqofheyr{culokbla}mchid~l}ibugftimxlqnqunks`ljhSpalwbccPqrg]gdvcltfth_]]gYhjg}khcujiHfjleyll}`lflmlljtqfoi{vmbmqi[woelifhkeh\qWvWgarqdhmr`ll{okfVtpzcrvbtfj`da\zw]`cpupm[uoj`vcv[\lb{|njlu}lVeloehmw|fsbjwfdw`rfeukpqecb{nmbwkqvukjajksofgzqrbap_v}srfji{lkrj|hjsictnybitmpenrgs^lolnhsTjd_^tpwpl{~]blrpe^h}htggwm{w~ee\|w{y\sipfpgg|henkqh^srygrqmiihqj[snkmgdkte_\zceujdmbvfmcjlrvnjkizmfkco[se`n~izfgxtolmlodnkacldukdnmnhkv\nlejyottleuvjmjngvtdsu`cah}s[uibhqpxnkZsenknwlor^lsfpqblkkqksurfeqmPdpdbeokr]zgwsuodbrjmmlhneoorZbgijbqnqxrddmojkabsswkiemhsjjmgrsqsqijdjtvakh|euphhgjlqdtjqlktshz||mqjnpjfxrqlgn[pj|kp{vzhnhhvzv{ogwwbn`fms~cdjlmvwnggntvl}gzpqsdplwiwj^qgdqtkejhxhviqqndovolnijifpgeyrqgXjichiptorhdluvujmitjfuminionnrstxsprxumcr^ycrwil|jrkmjakpljfnpzgujkwimi^nqongwhkmifasemrqnakfepmwupaqdqozlqprztbjitospmwmjspeipoeonmikmexssfrcvtplo\iungmtmpjl}snvj^}gbb{fwtppu`ctykfszqsclij^kmy|epdcdfrhgahpytpt]jpqnboxko~skceervfbmttuodknm|lalxtylkigqpwpnhvuhljvkfnxuiakrguwuakpwihbgvqm]kqbpgrpqkfgppsmpm_snbeo}qkivtkcwellnhyplg~xqeiqgwwktctjnmqeqnlssyfxhh^na|zpskp|iua`af|iebkrtTmijsfiaqmjugykws`uvmfupfhe`limhhubcvptdhr\aot}^{lnlkiqbccu_qh|}jbeoachsivmfga\{k{rgoWsiokhh^pidfdrnonisdq[lklflgdrwmqjoqugoemgceqrlqpvscvjysd{piobflv{d]umkukpk^ot|ucozhbzhmjivZ`wehwkmety^ldljco~l]]hcoxlxrtvfmnsu^koo{sekigzgpmgplkeqwfhn_iwdzagwefxkdkqqtnquwokrone`snimihgnk`ky`gtgwmhgp`stzjhnmhntok\lrjxvgziq_qqs|jjum^uf[plp|ifwfhlomplr^nfgndomwn}axjmt`ueroiZghjsibp^etocjuqroqlekilqjmhuZfbkklbhpUoZmfU{}hq`rtgiga]rbyzjikob`fnnefdpbrwfkdiafdemflhe^dfstZebuxo{g~pxqhorxpkm\Yu`xinbjosgfWxvelslub[eu]mjhns[hjhlrspvnqjju{lfonuVykmmplhipofnnpngZcthqnnungjnm~evkoknueiobqbmeklloabbrjsbotjxbrqpmpluiimlhxxntgghnjeiplnzqcppesuljq\nlmbnehgktgdpeisi|rsirimphuyxrjrfndfjzjahlmomwriwisj^voflnqyjakgqimmu}wkjen{ytejhvikhfwhtjqnmtinlqmgronimqmrikqgpelodlh{rrclpzjquikqidohmsguqqlukqlklucoldptk{rmhhimfgoedshqweno^itwfylokrlmdnkbai]unuk|nrlpkyfiZTklxcltlfjlkk^lmvipuzc_ojqhnuhbtjkwphg[}amvjhsltffum`yoahn_mjqpsvjyqzvldzohmajqnnsp[uphhldkckl_oprinfm{nd[trphqolmxsnslbsfrfokgbhkq~fqmfq_hgtqmtio[sgsqwfdpnuvjpjnrsoouZlkiwlbkdlyn`r_myiokoywgencrvtfihfivlxuglcwsomglstkqrmlluieawshznrgfnn{gldeogxhrneiek`gtdiudpecnmeqx_bu{jjifnpnwmwoiwkwmluldulejhk}n_]nktrqvgofpjkrvpdsjogfeskmvkd|gyairnsrm_kkco\hifrqkoxlwklm[j{deraakerjfloi|ozqnxicqln\isv[gfgmzhlgqewmjkXhs_srippu~gXbpfo^}miqfrm~mLeujqp_bocgafxbfqnln{pbhhio|khdtjngljqqutchwpfjqccl^{pliqkpjQpkpshmhk{po^mmykpeeismlpenkbuvoov}oqlu\imj|znt~egkanlYlqjkmee`jelq^hhokwkqcvvljfthejtlcmpvKqtzfqsypmpnillqmqqaprmglhgp`khopqlkhccidpmhjnjlqdmridhbhl^ouqhqpiumirhoyngqigYruh_rqgxyedeikjyjrpoqomlou^mfx|dumbsni}ftevhpi[ksgVwgtpmknjqgqpyjgqoq{iiefpagojcofzTnukafmtkzdxwgfvsjqitqs^khonnhgqushnicpigqlrsjmpxrwghpmkrittmlelihr{^kzhvntdvkhhkozaexjjiscu}mluyhtlyzqkor{coeftsfmjpfp|elw`ykmffqigzqzsqjspqcopqlpjmihjlwzfvkuxrqe`sjochj`hnxcy}q`aybjqntomti~cbsox|demqsiollenfmkpsv]l{kisifkimpowg^yirpuhfnhmpadiknkhq]tjnnjhmnlrgyrdednqujlif|jdjcnlphgn`zkrxy`qgy{lfjom|ukVhmgqklohknpec^ph~ijomkgjainhekubjri{hpophsmvjfecyg`mmswhh|qvqdpwq_ruwxukbkfocieh_vo{oundxgrthvsqaimuii}rrsfmpnszphvnx^nlgnzddjycfw}udnihkhlsqzevlm|zvy`rffwjfchlirhxhxeydpaur~hwjflpsrdkvlwnjd]nvfohzv_jfgjupq{goopnwdublvoihxu~kly{ymrmeheienhli~Qrti{kkqirtf`ownlbpsjmcwpprqnkunulciTgbojp_lrhlm`psmn[ktqhc|hsbbpedplmn_xvwmueixualmegvuevllqjlbukmphjktjjipxftuqhee~inlupppul]dgk`pmpgwexilvlopyohlnqjl^ijgqlohooenk{cjn|ndkrygvkqktimo_qsthodwulmshhrgmmmoitfiglhsoiesirhcfh`koeb`timsj_fpgsvfsrjhonjj^tha|qc^xoesvgra{gjhcdi[siidggwtj{sq[_jiurnoa`oiosvjroqeyyoYg_fpswgaxnhi|o[ruc`fi}cintxaqkk\p_ysufUp{kVu_sgjklmsjkngw?sskfq[qdhthjxu}qmmtpuklkyg\zcceyxorisu_n~|fd^~[spsriovrab|ovoVa`fp~pfufmX\smqoiylqznlokfodgnzlifpwnxjruemo[{tkssfmufto{o^hpqm``\qxcgttrkphprhtekjnjidfs^rkvjggwnwkt`n]xddenkjqw{p{k|ld\agchjsnmrnhgeahpVmpgcgyisjgiohmftoxrwqxrzihzdjfchzjbn`xxpodjfniflwojqqgmkhogeuuykf^kg]inefgvokt^kwuuxakijdksio{ej|omlnlgygdnunqfkhlrlgtqxyeaodkmfjuieyhik[huosbvw`vonkcdqdpnhs]ggdckrjaWbyfz[hlofWjgakr|pgqgsubgkcmjmvYpmgeq[edncodug`aomkmdze~iin^`slhiiomsiVpqfgh`rTgkoj}vm^u\jfohjgbfzoelx`ufntxjdoll`jqqnks[jfnttbiekfl~pntruo_yhkkdjvpj~pnnmhphpsvhi|emuyvifkiqmcfhbhno\dofqtxhvlnnlhoalvlltmbf`dbkzbgjqwomqgnst|uif^ilpruz`r}uwnhjeltcbm}htqfnrzpfnj{ss^lkkblnlp`uj|odisroh}fvmlhtnjfnfogjjlhtgjenaztd}ipnotmlQmprtakcgqjgyxhwpfmunvshorgm`pngroZscg`dfmb^stpm]mdvkqcqdlqiufthSdog]yykplwoegqfkjlxlzj}wRek`nmrakknptj[sfkprwculjd_jnutpqviiuoqltfrYtgmecklarnierihh{jign_pssjnqpklc{qiisxklgfz]brs`pnnSg|{qovacrrxzqgohphrgZgmdlnnggrnndp{kjwaokkauklkbpm{jwqmstgeqi__fjnihdjsbut~kmeonjpfmZvj_i[emjghqrq}rZksfZi`ldqfpbrwhk|xfmlfjjojnmjkqreg]oqp_logte^ilppptpiixvsox_vlmlhl_oh\j\v\mhgrc\_i^dhrrmvmxumohjngfnmtksqtlmndhjjrmnwqkknii\nikhkumsvggwgfvocg{n`zmswzcsyofctnolesch`|mhaioaklcodrkxfwo`eTnixjk}iqs[rtwhktjtciYjmbmw`jdpmasofn_frublqkdzobi`}tashxchww}hjg{pskuaob|g}__tiojxfcWupduhkfspzppy\ov{_`ugcgrmt\fjimkijstnrgwqplkxzpdpjnrtwhfkmrps{opollbrvkidntjprrzvgpuoxqnp{qnolsiuqmqrmsurfwnhspojgsuepat{nvnpg|]r{mptvnnonekp{ssmsfhjeiikpsw|jphikykdnstoqqsqquhnkq{hlugmghsthsoymmsnatgfemrdeiznqniprvdrlo_jfmmtgopbtnhngfkakinrwiojtnfqhgn`qpgpkow]kceoysmmofledkspurqttfknwqlmqs`hvkqgmvhxepulixrjZqmfjoulsimqujijxnfebhmjfnocfp|nfasufbpwu|hnilflgzo_zymkgzmnrqrqgtfqglprjjtljubppvlexo]qk[jtnuqaebchmoo}qjdrl}~cmp_jxhsoopirte_omicxskso`nc^nkyriewsqokcqnjnmep[klprmgqjimrguqh|bceuyovjcgtr|imlgbmxlk`wk~hc\omihqlerqrp[zf_dmpjpfkiqxmc\pnderrjhatklqbqjfjdgevlwxcdvs`ppyfgcfjnvgkwkr}tqr[srkkuejhvqxmd_ztyltvvnulncgtki_zoqOoxs{qjp`_voakSobkeopf_qf]{^vpmoci_qtgkhuign|eqipqcotjrnm^|XpghkornYl_kn_iucbhzewsgi`sbxhzjjsp~o|@zpjiSri_lyM[j|_qmjl{llZjfjhlu_{fhwtpsihuE`plrteuvk~QkYiuy{pzrjknkjwkirtpv]ltyctYx{xmdxinebytvnn^omehqhpevo{k[ot^uwhwrpbbqpiebvkekhnidhsokmsrgomijvi[rfzupqhdysotljlotYep]moar_xrz{lmo~syfchrirxdmmktyilchbhug\ptdfksrtwm`tqvzudtolgtqlmjrnjjf`tkxhgb`{qlgmcejxugbxckksbbcop}_{xevigzibn^rg_yqewcljjovxjnkwrqpnqdgturlgyjn~plolwcqnegezwjt|s{kiqlh\hlarr[rtq\rs_s^|phltoroutjkjwnqdvjlf`uqpkf|wjocbml^tidhmvssxidjhkfnlr[rh[irdooikjtxihlvpamcjmqlnkb`nlutiytlur`vni{uivjhq]Tcciimlrjowhmgqhupqgwqnlkjmfjzqpkellp`xyndflepguxvl`iqzlgsfbfliojchljqeo\dtmmkrgxlqn_ely`]ekxgmoZiare\\pj}qpmkupngalqlhqiluyphe^svunbrmwr[lpf]{meroctfribiwulqn_qg`gqfs_mlcakeptvqmfumhajtszlpjimihi{_ol|yjlfvaf]ilofuglkpnchqj^nvptstjtkdhwnqubixtginnihutbihdovflrhqkqdkmwnfmc_vphnzpcstjrquwctpo`nbp~wpzspblhfoujqreh^`iihrtejlhhvdqctpyu\fkilszdramjwljspn^ehfilemy]nliqblqiq`kinmpohjh^nostddnsablhepreufrgrlnnwhsbu`nnkpo|^skrpguumhcUkmqnmripmzzirpahpms|pXz}jojsmfgtptjifpn\thnhmcmfoRndluxrhqp`qbwllhcesmajtsne_lk|WVW|_sppdjsuw^e]kqmrpwchqsroiqoafqWZfVvmngfoh]gDrpjjn\lbcpsfYnhgfqbenar\dninodqmssbkbdpcpqinpjjfinfers~ijvrjfill`ijktlnomuttmtvohh[ucijZolixospq{ncpkhanz}fg}mjsblh\klmetq[^nirskav^tkgipwikkqw|oomimyih_ywjmkn|npqqk}igoakb~kidampmilofthil^gwpnnqpoeoccz]h^o~hpcxmeelsabijitdmrjsehlsgjkf~t}rwpyhYhthbsubmo_zhyfmlhxfhqrb]lruo~ciwvqnsekzj_wymYqnmglaouvxsxltoklfjjontkojqovko}jmfkngjoaowlvjoqbloutbhrmqlkmukfnmjsqkhqqomarjjgvdkdgilkab\_lvdl~a||oufx]rijnreznewj{lklugmnooo_ipmzjejmo_hnb`frmnotiohopt`j[kbcscoqrlsnqxwimozdcnwjkcilgfjcg[i~upctiohztuxrqbkpjjkgtZibhfXpvnruaqnjnhl_kg`jXsqqibfkzrYkiaqvg_jdut^{hlvppxcuni|u\bilse{dl{mengslhznzqdtjvt]j}uip_hzgqittc{mdrsmolysitogmvu_jl^xgwlmdwqr|xrolltcqjfjfhlkkdq^ntaLstoq`dihmmgelhlvhmskrfwmpkg`pk`nnxjinsbgfsgjj_pnyi_cumjbkrovgboqplnhpzpgkxdtsyljglgpkigqvhqik_^u[mjrrfmldqeedwrmqpdpohij~g`luktkf{{bgy|tandyqojeugdfmkjfynw{v`qnbwh\fdnaqkpazypkutlkrvjoicflljtNlxwlvcnnUgn_jt~zIxskfz{luxeqvk{\nln{visZvztjv]rt`[rs[nh{xiresYrvn]d`rl}fdmqcYqunqxnhq^otrfglkhpllqkssvqdxt_n^swdnkqukjmiihiooh`gpnimsh{ukhpbflvuabgsukdqhpplflef}sksgtj~omuglkijlcrhplyoqnmksimkjgnsgfkztjnipxm{tddjisslgxvvez|gppool^cniqkklqltkpnnnipg`siujjhrgdnX~\_mpmgpqldjivgshpbtmqixj`gboclfvgkw{hjkhfcvv|rrxgetno^hknpoqruqx|hulyipsfpfjlw{p~ivwssolpkpmuusjmxts_nwmshkjikutfncaxjekifdidronnaxntxgpgnisemkpqjolefomgbkheh|but]fuhaho[in{i|vrp~x~kicpisltajfaZpiplqel{ftx\grqswod~MqYnefdwphfz\_t[nr_\t^|vnnfwdkr|kirkgOm[thrzoj{|wbuk|q^ri]yynrihigjj[rmgpghlbhsvhjnigdhyvpqxplnp{kf{iefmunkovkvklpxodvlkjjnavjhuhkfodexqlfjlfxicdlmpuoqeo]qny]hhwjvhtda`lilllgp}kb\gtb`hhwnkoliosslrrll]Zbamsldv_kofkcaveoflpmsgislexkm}qbxnkmkexYiithn|ppgjcgnpdvjulrnnvilviwoinqjoo{mcphftlqghcljbzsdYnpawj`jrvnwfLrm^gdbgcj^j}yknkenqfmhkgtlpi^t\dnknjhygqqewgrlfqsh|hdgudgvkbhlngphQ|wl_mU_eusnb{x\nv]y]aosmxkkaf`u_`zviuun]zxeynuhwfcvsgvgvp[oexjztsntvnhoallgxoikprtgemmfmgt{imheqar]\pdoasmhs``oUagknihelkossu_jsacsqon\eji}amifZysp|znqnkgiigmmbgx]ernmkW]~blkkodtkeqwqxjqeamruikihn~qUkni\avboqkxo`ietwx`nen^gdjqoevnsz{hrnoocll`gsmpzgcweurejsucyojcgmagmkzjjum\g{hyjuQeo`ibj^mqcwjtqhntmsqwlrinpsdl{nuwtinlx`wgklXlxfwuhhvnyjjelqtnmtqrlltmhxthwn^koegv^oliyqnpuqiymhqdjhxiralwp]gnnyittoldmtrcwfk^|sxiikqmfq|ckmqlqegksl[dwyciqn\~ckprougfvosi`fcv_nr{qnekvpgpsbmakrponvmgnlzqlmplyxqmqguldpxiiomkrtjsktrujsewxmbo]mktkr\gpufpcerpgmkip|bcnniyiun]jqnifqk_ZghqssXqijkiqhypmmhhmpnvxfgomujpgmkhx|kntmilvuzgnddnornjbirxzngx{cpokmxqmorojjajfrogkotnxnefggrnporenjphxmr`hpfvdfqylploggjjflkarrlhjboolxjzjliduqogi^imloo|ipicgzhjjljjdhl[ojkxdlmpgrjhqrpptlliptblipsSmonme~juovcpllimkj|prmpp_wom_qujmmmtvuxgmqirghbqksmh~rjck_slpjihuotqiam{wztpmqqombljhjhlwYtqfmntnet`dmrhiw[jrtgavfcjrzirmjernzrgjjvufebtmftb~lfcntfbbsoYpmh^huYqy{ra{s]ku]sshtiazZqionjqrmkmtreg`\wX]oonjrgzcvgg|vxavgopehv{lvehd]ipfv`kv^y]d{gmbujnhzpngaktnsjyfhkoqsifsk|pcpitohhazpzokzmt|]lijamrvlwnvqhisqojupmcmvckiz|blzribo`v{althyqkegajfls{hmxpwog]gsviik[klgphugemgeiujffcmps_noqcynrhdoumvsk_xmfokdsq^tosmpphsvepdrxfrhh`mnckqbfdctqjkhxnljjrj|mj{vqmav^qkophYsrwshxyozltpckgjdlsetimhskurjvi_ke|iksmndxiskrpgpjhfjpqkehjituemlmq]q}iqmrknucodlrrkjhqjeo_mnwl|pmplggwrfxdrkvnfmkujppwmifswnhfobitdlqaoqntlo]alsyjq]kpqromeoofklemnvklrloxysmsemmvhjkxhue|`ssqlfynjl{gkjkhjq}siiij{ncWoqtlknqTqozt^gprkq\eKqksmjn`ygkku]gu|oshgfqbkpjopqaak]tayhimpgkumgtr}_pTyloovli^^vniiuvmqflfkoiszngvi|jubuv=kwuggsfzuimklxnpmk{lmmTef^zixzfgwipkodnif\a]ipwl^zr`ebbZmho|mnoXsnpiZmrnem]\Wkkknobfuoreiewfgehnospfgqyjiiqnfjnugklatlos]do|dlur`vcd{{epwjn|dqji_jjksm]`r^\fkVpgvkronkSqfv\snfukmrmk~npj~uuakjytyalctndii}tagvihtozl{njxd}tagsmiy_rmxzoosveo`o{mk_lllv]m]bmkhvtuiinzhrqpmnpixqbk|wj_rxnjYttmiq^jjywslkfomvrmnskaredqpogug{fscjprmwulhojyjh\vstsgysbcqr`lefxencvctqqkn\leqdf}ruwplrrk^vspmfisitupmsdverbtj\p^a]kWnhldbryuoblh{r_ndtwpoZp^ghfcllernkqm{XafmcZvo]ynvlde`smwkludgaowl|ksbzikrel|ul~zhhcnbsmnnodrhmjtofwohdgditt{qhjnuybesw`npqurqrl`ihjc_hytmtgnbicivxriulsmmunsiomj]kmlgfg^vqjjqqeyhtikijhfmqlhedspvpqovqovqhtousnlufqtpjgomwjnxrj^st||bkewefipwy\gqmcjgdcensiojger^w}ndocgx[vm{kplp|f]pmmijpkfnjojonsllfu\qoozn]\pjer`m|fptohuyiqcmo`~oq{knmcndislql`lsll~r{nhm{oonninelzqsi]lquiqjpsdgrhksokeqxhl|nrv|qvjdmu}qb{iffifq^kqskwdmxgfbmi{~fijpeowj|zog^rhsztrtupkXwaynciopi^fkqqqkulgjsphujornxxuwpoanylqkiosupeyRynvnfytjk\oXklcvb{^hwpqj`z}nojjmjmmlckthoxhtl}{_tcVkovdphpvmmiyfonil`skknooqfwpofnrmmsylnollcnljjmlomvuoghlwrdjhzrnqouhuimammmruh`tgunti\jijytgduosjdojqwngrpgtdj||gsyhpwget_ntscgmsjsmpollqth_pxnqq\{dqqoyfdvimk`nxcp{jevvkdho`qdckmnequhe^tgjj]jo^ysrtgnjqpmbijkcjfplwumdooivnbfhocngzt{mykgyckks_\mhzw}gz`juaefgo`j]owj}kqmifUjycvmm\rthdziobjw][jsw[wfojrq_ajix{pptdwjjdf_`pvidirripkxpuuhmn}hsmnqkggcjhhowldodh^ngjsk|sgmup}kdujrsqw{o\~iehtlct`pqnoxunhwilqe|dildtbxpt}qq]rqegemrmoorpsmjlehvngigihwhl_akpyjxcua^pp[yzeojkhtqxsmhyljfrrgjgsjkwngjrsnnofs]egro`llngmdvh_}stii{gh\^gsfbxjxsypnrgihg^qpflhkjmculiogd\rnkgsbpkknmmsjlz^iZ|q~mmwgngnYipvojizmionslsqhh]jghfx|rmhnrfWchsloe_vmjug|joeppqhimpkpsthiofemprlgrmnkinirrpisjoen_ppmmkldmjhtlc}ucjiikgzpnbvcdmxtxiqz|swqpt|levoksnnojqhvldoikkpuzjkboklvefujqxrdctimintrggruglvsjqxoqwcdmzpmmccZpopegf}lp}qoojfpiqkizpli[wlivpgremey{ghpgirtforpfufilxnoze{onlmnymjllsohuqkflpfrwsvwipwjyosotfinpsfupkkZhirsjwkonryhzgwnjc{~eiemfr}izlgnhxtlamqm^usuippjyqdoraokhalmtphlvvjrroplonc{lqqidprmje_mpowaqlvkows\fipkquqtpgszm\mfhc^mgahvfndjxssoeojocotijfgqqhkbXkhs_{kfm`wkpqxnukr`coxeizmpqxpej\bfnlilpmfmqxijurirmoxowqfjnlpqqfcjqbgxmad|kked[bkeYkdkkx}mXug\wgizkhr_xlzkqbnxjjhpppa^mwhj_hihrNpkeylifsaint^w^\nfbvmnwkgqhgoqjp[shfd]`aprb[kmpvgchiSiprqmikfi~fmpktkonoxaxkcloiYgv^m_f_drcmp]t|giwmkrlni}lukj`np|kot}rlrgng|{}pqgonumngurlgmukuy}wizgew~sdchxxhjcXkz{fhutjp\qsrrnYls`bmqjp`fnjs{ielyljjWvwhfqrf}plnogijjopopdwtojwml`jnmeuyjfxvavmqoipf_onp^laoatvh{vx}doYwjyjolzq|v}maupmolpgdjmcrwp_naidqmjzsllp`|onktppZgqwqdrp]kun_}muamr~n}zjpqQfplnzvq_tpfxjwjlgg{isanolri[whvponpzq`tZaugzngbnpw\jltvgoflhsZ{uld_\Xw]ripZhdjviwloeiZlvjSs_esnuinbQv\}kfitZnXnwhn\anr][qet`hrcv{nfxsebcgldo_w{ihp`hwnWm`occYmdcn\[Wsig]fo]ds~fvohWr|dhjpuedcds^dqfjjlqqyuRlblfoRnemndnbkmmipr`qlkstmmgmlijoq^opnjskjgrl`koixz]itq}qnfkbdgoreppakkc]qdqjcrqahiaiioeiqjlc^mofuil^k}ukiYXaqgZblmmgkwccmqlweqtupbnh}udj{kmgsb\sq]po_vjjigqrgptxvnuvgskfjhkn}iujoluqtincrkfq{krlnugqlfvpg`Yswsywlrcrgtspolmgnk|nwvnvvkgnejlaxo|hjbugnka_{dfj|quisultvxh{nkjijodwefmZgwqhkkjrj_mpzgmdltjpeew|fkiln^vjwjf|wlx`pUkayppihlpl~ftekokrmmpoha}nemh`hgbghmnrrj^rovgko[i_`korrjdcojnfnwnzimi_im_dhmnzsiqpkxhnunsg~nmsbcksi~exuhliXfngkqvykqursndojivumkhol_pefylielw`kmhkvycwsl\kjhejklcx^i^okkwilxngclrehgyenkptm\xWi|nmmjpwhorYidmsmbapgqpwkrvhk`nt~ippuepmkruhqopmefslxhplgfijk_ipqr`elhptxqnjbxgtoids}rthkookrejfjppx_tmtkijveydvnlpjsghawff^wvdgjl|abfmapcggYne]ukinvhegh_ldnlrrfaphopnpidnhmalxqnlschqndlbaddxgnjjnplqpkhmhcgpcgcpcps\qfenifm]jwzihskkgeeuoitjuanxjlfgqs}wjennbudmlcngwaophvrtbslfijqsonjqaiitb}yrjvouluimk_ynoihq|nnxngouldemftoielhedrmnrkjrhkrfemomgjkmfjwp_fillrgfepkrjqqgqVgtlgfmqinpbkn_tmhtmms{litjroiofmpjufbn`akmkhqsmcvhli_dqpi~nbgpiuknkmmkusccfnhrechxksspzx^h_my]lckt^jycmd{ppjjcsqgspfsxkqiaagpyqziohastfw`i|\r~mrgbeksrokzpmjuch~krtnhxb^_geqtsv}dmqleugQigrv}jolms_kwgvmm|fgnhwvcigsojo_]xs|sjmk]evxjdtxerutui^ffildc]pjutniagglkhpnldyjsgnpniscbqgkhl^nlmyajskgke]qhlcsuirnjorn~mvrbigrjourkgjeqx^kqzdtxxqvfq{nnyclgo|lncxsdiyrjm^olk_hnzpqhk[foqbmtmevlajshl{Zgkcrjqgtil]ncYetoicjwp}xkhidl^Fpkg|nghcn\emuphtpjjixi}jnrhnfcldlnr`ofrzkYhmfr~rmntxpnsrehhmsx{fto_]hgmrhuxlnYjmsilqvjil]_goilqqqritEhlo}cmjcq}sjjjm^foq\vhtbtcejnnmkhrqbmjeihk\enokmmnhnt]frt^dgrnlologq\veoncksadieopocjrrfo`ka\es|zske^hrlivdi_heks`dhrlp}ouclhcvemotjn`nfjgiwi`q^cqdthxw{djzktYyl{fodmWuroqglkq|gggkqqtilgnypismxlhfirlaXirqvvk^st}qpgi{ldwhqwkkcg{ojpwg{ssu}Y`npoukhciohul]ldriijuftltqjsluhsshuavorbolb|vjyx{krndnohltUrlsomimapwhtngpjiiitdhoeoylyleqplmxb_hqdsvue^qinntlVojyetgqmwlu{ljwfx`bqknmyupcs``wovwcelrusyfrhymqkmsms`yugnehhcdoqovljjjhxrjkdkmhmpthrhroqvfkdvowjkQrpgkslthqctoj}csdy_hcg{umafslcwlhqhzcfbxiixw]inxNdqqpvkjughmnXfay`polvlwiqftpahuqaleukukjou\nmodo]nzhfno_lc|o}bf_ky`kfj`sjeZeucqvrtmgjebucglyilhkwpfdphhjox|jZhsflkffd^lfmorjkde}nqtlneg`k^rsditbrgrrgthtslhft`lfh_d`athUretodnugswsmRpicow[rYmp`vijicbujimdemfszgkiewm_qin^tlZ_ijson]ekncqey\nyjnpkpk~sltayhkmxyigcnepytroqngtwsnvlpmz)yvbocudoktxsjvjmex~ulpfws~ywdkzkqhquyygpSfamkvpt~dw`oxhqy^jid\dbnni}{^]trrqalvzvpei~dwqRxqbmknxeFkcl_pmzjwknjcwqipsjbd\}om|kwZgl`rnonlqdhhoixn|bfhylR[mjuhizgsh~yovdbqskjmplakj|sdfwkkdckdl{xvfbqxbhtorpfedqjlvyconlqmlbdsndtm_oulsnekejivc_pftlfcm`kpa]dnuo_gmfn{rllm{\_mVZojq~ozpjlapmpjwm|^_\rxipolkscjarasn`l]yiqTQcvsujivkhdakwmentqjcxpopgooq|dnfjistnokamuhjtlzrq_bg}qvkvdXkre_ipqvcyyvdcqcxkg[p^}vksRqno}y]ip^ttjoRf{nkrnne`pge[qgwnfjfakfld{wfy|hmzlhkbighkpnwky}ouctskdlh_wchie_rbpehcutrwllxnhsvfooldpgqqdzpisgnmjprfltmekwjqnlh`okn`deedrqioynpvjroyaiselpm^zyjytklzhmrcpgpozl]akyhtjncefki{hmtpdnsmoruuhehqkbmgjmewsmkpczfqftjpbudirklfndonhvhzdqxggnmthnoc[d`lisnnepnp^kqngipfaqe^pooehngrupk{jpeghmbpoqzhmjt_vgxsl_vfvsrvvdymmomitcumokfhyortc_knngbijkognidiiqnatm`pghsnmcgt^jkkoulohltyjnbivcfvmv|j|llgevytxvgwtrhyvqnkllmikVuokjpdhioatewnkhqzqmqmfwqnnar`ddpquegth{svqkjucntopqeqvpoqlhkv[kkji]rgboqfoljkffielhqawlhdht|uqxlffyq^mfkhrwzfilk~gg|eomj|kimkockhfclhlxnysdinskssnykqolkl`d`fpljtaiqyd`fnmevrlppfhnjl^lnlvjarR_qfunp_`ioirqek}oxk`ky|gelrkssmohmbrgfa~dsanfqeunhjmhhewrvkvwgqupev^vmz`co{jqtsdgqn|{oninnjommhljh_lrofn[rlsdqkngtijgehZsobhqonmr]gcfpkgojwpq]sjogetjqoxovmi}ennilfygme]ijlbqlxnidmwi}sxvgth^qjg[t{lnodmmu~\ngfpr~vkiluhmeoojioriliqk_tagggzlm}erqlmmttpmnpvXi{l}cq{crqwhnhcbw~x_^qtrphcfukvogrlm`nj_vijnrnldoeq_vtwltfrtjkshnk`mgekzoxodstojzhdgrrziup|}kdu~woyuxd}xkrqnpjokjp]tzompb_fmxqeoejl|asjkij}fonkvltg^gcabftiptgominknse|cmioqmitxhpgrfkmkrcmoeqmyvrxwiobirqdtprjfqumw{xfsrvitnlrgi_qqpqinhsmtspduu{}rjw{wvelnqgnskmtomtnfuqnkfmhiq}qx|l_pfnhrspzicmpfwsuzrukwhfnpvharfi|tjfwhunhhmmmb{onkardssdjesurHshgbdpoisu}ierjsmlog_igg`jtdzlsedproohjo|hhbftpqugonphcwsghi`foqpmsoqngjslonienjnjojekrglkpekmionumpgnpkrhjomd{ppnlcf{njjnmjhdrluq|juN~oolym^enp}]dkmrcjk}bv`^]jdrejukgiynodfjqfjklddsrrntmsvpr{{wfurqnnsvwzbo}qqigjczosqkgnmrgriabdazli|vvlggbcvptkrmgsqfreayrb|{rVoqopdqivfiz`tljxasmdtecxo]nnrvvfdfrkkm}rdenze}npxhvzrhzfzls\kehythgxpkhrkvhvupncih]qlhfplqsqfgek{rlhkxhojhjmtjwjbojh~gpviljs|wjmdlsi_ork`~btewnagg^nlzqo[ntgnrnlmogttmirrsnmpnslmmhvW[kbonvjbmrkieqkqi_e[[i_poaa{qemgjpkiimbjptijsa_jhcsq]jsjyi`pkhvoyaejgjkggsmxk{pqxpu^uj`xgnphjsswmjooxmmpe|zoijf^\wijeosfgWozfp||orecgY`f`mjwjoUjfi\t^kjmmpiix^kl|hn_gsfxpecoalivd`uhco{agiefgrnnos~bq}ohposhtmtnneloego~kpyolajbg~femohoopngrjspfgjilpn}kkrpn`l|mlourmoqkootef[lnbqayfnltzpf{jqlwkooptslyibmsmombTZipqw`ispu|fkvfmn|jpYocdlpvelhh{qqshegj}mlpqnmcobaooef_j]^ruagggjqgrdmgvatLtel_twfSpt]fqksklh|envslqoxgk[_j`elqml\[jsv}tqljrrksstwf{bsrhnrpf~lwnlhvst\o~lcrmjkcpkpoicmmljqoviowlthpivmbrsikmouitpjrmyyyhndxmhsagfnjam`nritoi~d`fhkhbghmpsihuqtduswoh}loktn}}ekghmjuktj^`hmqvti[nblutkxghgqlanr~qTsgbmwernh}wsdqoxmsskihSjoj]lqqminjs\di[lXmkmbmpfisglbejd]qdihglXklf`denimp{lYwnlcekcbhkdsms[bpvtkpjeulrmhnvpetpwiqillj]IgdcY`vmaloa[tdhoyqoehmwqmimsfcjrq`u}rvehlsl~_lyf|lpXfbimful{o_mmq^xjzfndl{^ftua_aky~o{ymqdemxbkzwenwzkdierkynkpsf{qudyteamsmnccmpygupiwxdon\jelqirmyqmqm{jalhbdfm|r^jkaZ{mtjpli`pgktjvnqo]rpfwurofiqpoq_~tnrznkfikgmcjpqbxZoohh~uop`jg{]h~\up|njseujpkfpzekisejgi[peafftdvgnvdprjhfzrenqvlwtgesklcq`mtnkwrfptw[qwossk{ho|q`lq_kgd`oeprkjj`jnll{vgmjjprpqlyuoyuv[dn[ingibtdfogjxlYTomg\b_y`ogumfcmmSlYhomwm]pgkxnfqgxpbffcwpofp\s_tnf`iltifhdn}mfpjXmde}iYiglldknaqqd]tuy_tzikvmbavcocm_uyjbriokkhfaRcv\styhwglckakjwpyillyjofrhoss]`jtmqa{Vgtirvlld]pui}gl|nompjnrnu_mfgtxrwtcmx~mssnjhendehjah}lqmy^fvur~o^strtkthj_n^lovgsokjntrtf^osgrf{nozfrq`Utqolfzsdls`rxokqtfzmpshjnqydg\lukqr\amhyrenfcovzqlnyqkec{\gnxpsmuvpglnqrhuettheu~osd]apginrknilssuojatkfmewtgsg_onj_d[ujhntpnnb~jt`logplnpdkpmfpYgorfktue|q|sagjfenlbDjoghirhrdxgbs\eisqh`igpsoomzr~nrgosiqvqu\rkvuddm^ZtgzdjrsptanZ__dijqxkrihjbmd`Vz~hyappriobmebuwa`pwuYtmlmfkgcjp}ne_oVcrnXpm_teuthenzgpnokk_huih`kisjh{]jy{ojenahmrjjon`kdpm}sfnvl\hchy{miwq{skVvcuz^clmmftejxhli~Vnnwcydahbeof`mcokjjk\mflhig{fijhkjiodpojcbhbwmfyku_flbejphbg`lanlz[tcspfmksmihiprmv]ilskfjhff^jn_u^jhhqYl`}rm[aonrrod`qcewlizlptmwtzpdheribpxgtwcmfmdps^sw^uclc|knb~sqrqufgugcxcuyg`}jigrgxh`qh_jlskrm_k^jrrknrpilimebnnlntsjvqmknsdvkkpohgcrilltga^\]jkkeYmfpifjhj_mkZ`mqm{mlutflitzjssthoauktnp|fkldrjrztapnkvlnhajultxallzr`crksggru_gpheqnnjivoikmgroneejooaid{rb{}kp`nmiuqwrhjr_polqumpirhcpxlfljjrmmcefkbbosmisxilet]hgqrizisnmnvapocr_mlsfulugikxnpogv]jy|fdm_lu\rmkt|hpk`ckrhqmh}jpooozfpl`jpjwpduuwqkyoncieodligjsoszpf`hgdrZfkrbdfjkj~hhsrotgstposdrjkhhinnksrdmpbkj^ZbxuzkpVlgpfoniyru`kgkkfjfrlkh[{gygpllllvdihek}lleoxiqlibw}wcpl]nj~rpSuvpartqlnbfpkkmbmqqxcvorudkujs_qraghtrjwmktlcjjqdyynhigknfnibfaghmtv|hemoyg^vroq^mkhmmpikjgiyrjo\dkcsmnrnhle`aoewukhx\nupkokr}uid`pr}lsaorYiv`^yjkqmwv{rtnh_an}chncifrql^seg]lqogatifgrV[{lPlrqp_pakeh_{ogbpmok|ofznlcnehetnefeuqjl{ltirVdztewgndknmmjhhr_waosnYihxqdzlo_ricint_sjtpwknfihwbeqfnlpjj{oagdRxxpcvidvkdndij]xenu[oZy_hhwlofjhpxfugyffsg}qnhrh{gofjtXbkpgymycm^enzneeekkmgpjpfgpmsrifkzvwjZ\ee`c\pekkwxwn~ndr[ehpgzhjnmmlpgktlv_plbjk]csbshpi`ihgragkx_folionigQlpgobumlnjnubjrpkkrlqqkvscxgputiwaeyqmeemkmakwlnp{mtnogwthuh^qmqnknpgotpndowkztmlgx|znkkinqsmnpiulcomendlqghv|ungsllotvfxip_hpyno|jvjfeoplvqkvodn_jjapWmizpddodVobgql_hf{hjvikpmNjzolr|hwni{pZlnvcvkxqdgdbu`ps^undwm{gzkw|lhwokngsowtngw`yhdv_kYfgi\phkTg[]cfdj|gtguhoqmmxp[^vj{`mewroen{elzsgaodXjlf{cgutlb[yknibuepzog_hjesojggppmcm_lkolrewwnjl}l]|nsu`cpnhfteg{bfphmsoeffuqclmmgrjtrgeeqhkkomln]kalpzhporjfvrrrqrhbemo{sl\nnlqmsftivlket~{mlkrqfyboiyf`w`gfvrgjakkf_ppigp}rnqiimhukwejrWiiRz`hnrociucfkm\lpmieegkb^rvxjjqjemroohiaeifagd_mh~jzjeptkqtakokbqhxddqy_sp~jktsq`l`musjppba|pvjuSvojotzfgebgcpoegjmjip^pmmjkfqndgguiv`jnudmejobfclhmnlp|ejwmkfhilxi`klwyplmomptrrmposqutpholndmrkdlrcfnoeakepsqvpo]pvjomjnfmoipqjrvklmptizlIkslqewgcoguxkllj~wpkgstqxtgghvhoqsfgmjplifeb[^^i`bgel{eoflkyXr`ykhkixwcmpbrpqygpupmno_vcdSpqrgkjkkibrwty|tuqoqei~b]dgfognzqijhkyx~qqjvppmbbm{orlkzevibrh^tlh|wvwsgurosjcnmmtejmylkgmwlwtmo{lezpmj`foce]tpnnfsquetlujmxpjiuhbpqcnQjdfuihevhknzluci`n``kugsuuwkgx]gjsyim_etpiffdrsmuipllirjrxkfgprfro\ttcckppuwzhjrwjl`crhkt{_ggbpjelmgxvmh_k`km}jvojthpewnnp^kbmcqsyiv_Yy\pdictnphnqicxvwocghnlkr}wx{frpqcmpgjad_o]qfnffqbXak`f{jcziddtp[pactvncgthurqf}io{q_gcovresrsstr_zslffcjnqdp`ed`mYnkzoxmrS|epbpdXlVnbrixzkfw|iuhjbq^`app`nhnMkqydlsdqjaoeGnflr|`]ndgsptqnn_]a}kjqnai[d]s{vxnilk[sblPluddiclqzp`s^oljwblqpsftkojbgifjsxisc'Cvcricior`Z\rhssvxgt^udfi]uo|irgaLx}ldjpuokzoa`yhqeonkvdbsvnuqgqmmshdrrrtppfqoqvtklodgqiunslmmfdombmjrsgekhlmrsctqozkpcgch~hgneofmpwws|syoihjinbvtXkpjmwtndgZpslvohipkhqlhnjhmuo^ail_kdqdton^|pifghqiom[wznjg[whlngubyntyqqs{p\cpltudhz|vc`esmuged_hr_czdrcYsdxntzYilxuuautemc}ilh_xgqg|gukowrng|o`ubluhjmskwqoqrfZpl_krzjlkpgmpp_[Trhl^s{g|rnq]`jdvbvkgxln^ao~unjhirjjdsnzxklqrqhikjtfpuykhjkuajkuqomdplqkkpssppnol}osmvqrojqqmnlqenaqkjdg~nuiinrkmnrphonfmhnxboyhhtnjqersqqsd_lkoncgq]zilvrjunnljlrkjwmhqqghz_segyskdendr{ml^emksokjoerkzfgsnbepf_xouukrrcs|sfiiovk_rqmjec|vshoeunfj[sqkajggobklipnhgnvbhypviopxfUtlmkgzjefhn]glmdqgxkgki^qq]_l{hblupdwpklkk}pmaljpruc}wnnl|m_rxzk^rmfbojsdrgorikdcwvsdh}ugddmfscjlvosjvp]vrkxmobgdkkhe{dukoh^bxjdebuimzjV~lbqfZndjmdjnbijmkeggoaf|xmlptojymqlsnmjsgqqq|krmxsmlojjhmueqhujokloyauhginkokri~cviik[hgf`kscfir^wxwkpdifqd~{mhmbr|qjqjprl`\kfa]ucSqmlkvonukmcgegrjZki|offtktch`he\mmkn}zkhdlkpeby{vkrwkpkl]gernmXwapg][etr|evktsikokahi]^ncykpij_fntid^mZ}q{fkrobcjcrtTpibrtooojd]zNijpvlemoecbamp~ihb{rXqn^^`~tmraoiZgfol|\pli}teml`lvcgqdmatmvmxwiqxvumulMhx`cxoucahlwpiruehjjd]jx`frwvwjptuinmfNfrilzlasfl}zf}luqks{xx``houqbphioljnsimle~f`fhpepflpruskjpnuishmwzyvsimgtnq{ofeijmnvcer_na}kjdbhesndhubtmnyjjchjkodncylurukwdarrpssyjigqoXsdh}msgxq]kjrxuvlaju`ri{qu~kkqnibl}qnsdrdniemwawsfflfrihkr}cnfp`gprvqrhitliqkjmsiskpktlkpouotpnourd}moztmjmdcuqhdtovlh`jsogumnm|fkigmkmwtvrlituepzmmjhloofjjimemkthkrjhsdpsptsmmhjqvxcmqj|nfkgwlmtlrsrwovcjltdpsj}jiqnhulklndcjou{{zgywolrppZrqijulefkg^nisbsep{o}tWmg^vnomnq|`pkh~cggogd^]hiopfyukrvbbjk~Y`jgmhhkvmgjh~mkmofpwopvqsagjpfpl|qit|oigehj^rnhupjsqmd{e`lrqhnanh^uwqh|ejcoafju{tnklkdeyvdnkrew_kkrco|wVr]iwdfS`qooghibdy}mmw{u^ohcjki^o`vqllja~qlyylPqqtfacrjmu_ifjkc\dkxtidrjt|lbirfihr|_hcmnmgsrocn_xij_pq]dkrxfngmijmVopmSngcnpdrfkiitknlvbkwh[iXl`{mejmhvhynkmr_qpakpdb`jhh{icufjg{knqalrxnc^kj_jdepeprYmkehoul{mdhoZtteimiicwituixijphqgftfjknhzhxgr[ejfo~wpuaiohqe}mqs{cthnnpo_j`fpwxwlvq_qoy~tyvujkursl`ohjrqynofqcnwlzimspn{fshjek`yamprtuphp_n{r_vooqwlhfovgemuqqnnknrfcgmfxtlsnwpglqo`beihpeyckxhskl|sjrletcxnl`{kg`oqau}ihgjoplpkumpeduZ}phojoqfcvqgklohscrntmfhtclikljqmhuuntpnm^kqokdwlqt[iippoixhkiipsgfvboporu}npna_th}pbieioug\kgiuhgrpllwxvvranoomms\olblamvkn{}a|lnofome]cohkjle~lroktfqnkt^hshubrofwsmupt^ptbkkvhroduawnNl_trikf{mkjXogpsuekhqtfssjmjkshmpvjepndojs\p_plvmcovx\vknmhqo`qekhioogpnjugreowqsknpwigmkm|ydkfldrpfivtxhqZ`zg]qj\dxqtfxwlkl[\onsfrovnkicpgrp]jkcqq`oiwk_urokgpvu`uqdlljkou_eokseflppjmjbwvnqurqnqhlnkgphhitnXsukoknowdf`nhpslwirpxvsuk`rt`iivaZocgkfpmleknxdwnq|fhcmnbgwvrqvmk|jnrql{iapfwkruukurx~tfnnlfgijhru|lwqhp`ipqslnael[fel{cryXoipbpemlbsjheulurun}yd{u}erkjmrmgnbqnjconlrjgjoupes`cekpjiq]clckmquhptkom|xfuohj`sqktr{`hjxoy~enzbogSnqW_d_]fgeihjqwod``Xofpo_m]hnxbjrfphWrj[uwme`c_ofy{YhrhpnevpnrpRew`nxewv_uulgonghqaiZ^ddnsbj\vhe_ZP]Vwlrakjqmlo`Qtn\ybafczyytnkqXmfdfkYlxdVtdflfgf_iw]crxmkqshjhbfba|eoiirlejvhdjvnfey|tm]esq\sigkejcmi^`qzumtgbisropih__nujwestghbjcsupijktsiqngarnqprhnqnqt`Zmmlnmjrknocm^uibtxxolr|nnhmvqw~jd~m{clqqpuhcmaxwosrfjifjfnpklhqkpmjijjlqtignhxudk{nukdomuomqepqimmnunjfma^mwfo~ounnoopummqkslnsfehrnowblvlbtellhjinn\enikujtskfqpjkljuilpvlgh{sghic`qjg_nfcmafmnwo}vijoxuhmklmomvrioohoojhoujjcrr|qojdwednruqipxmjn`srpm]fiuixgjj`ihvumyzeuqzhlZrbkjf`kkji~ezscmjoxpuhjjkiZokvnijeffsktg}mekikZmdkgkfplrp^klbijlmjikgahfe`~ku[yfwdmslkf}n^gibghksmxohnsaahtdifffmeihhoxbkkv]qm{k[xs\cupgeugiijpet{cqptpveeybgqohxvkctcnnpjmgpOaUrtf{etzf^cb]ljw^nuvdkd\Vifpmpda_uppZd{`meYthi_uzxthnbjzdrgyisaqkdysvol`marbesyztsnlr{bbpl|klfiloxbxh`igncpgtUldb_|ulretlbr|vXwhosao^noe\r}sc_uhxi_kulTmskpvk\b{ze]_wmt}mmolrmZxoVlzsmofltjukb{_exckP|zqw]h^tvfvdmomron^cmkwdefdomdvts]piqh~i{jeb[ltldwvliq[w|tn_rlorliiimrmdjkd|nyffrc{qgmpstc~zrtpkltjoomnn}qba`qlhfc_uxbf`pzp_okgwwhdqul{[grxjpginzblxjkkopivdl_uYug}iardiqnhhqgupvsppispsXpsewthetellhjytckbfutahlvuu[pOuwestfekorvihwmnjplmhmoojms{rskkkrwasxolqnpmcoyn^e{wfritjg^fsusponfvrvqenbp`qpfejYxpbolkrtdseyfbgkti`mrgihodjjj}`gfipdfisg|wklbqeebnctqoukkokkpkkvbsapbpwgenbinvlyvpvktxwrdhmkpknasiuxmktioohfolqmjoi]k}kigmd}wlr}hlcgffrbm{fbjsor}buphui|dzxegpppxohotmronjrisflqnjr`hprVjwwepc\ibrkfmcj~opmzhgZwh_kslxijompcYbjol]mingejtg_gaioizifwifogq`yufvlmcgocjjgvkgtNodizopzeymubqm}fk^ilmwlonrerdkcf`vHhfonnxhdoomdom`haltijqnrqfjghisbrnkjo_qfrfwk^thgvt`nkvick|wsjh^phaqiqktkemppkxtvurv_perxfkp\njhs}i`vzrejiotmnrgld]qgkikelh]fvvwtkneofkesm]\l`urdspkuuplb{uuufmdieolfpwnai^pntpsuolyozioxdnaSsllvoljyur`huljuagkeudhiipmhogepxcm]octl_o~mhlctk`oknotZfqpitmiktrigkjgudtkcjrtp[mq|oufqgrpsfkgfivmpcnlqmnrrdmcxozjguvnr`^xlfdupa\fnggonqligox[dsyoonnlpiofjrvnedmefjhnnyewndoghliwqqowlrcttpprujxtskstph_cfgkklvlwrrunrym^hl|nnrc}omk{gvbvkrgxhnmn}uythbnjsj}nlffmnjrmgqyjrhrnijunuwgxujsamuoxatmlmetoekphpqmvuv^lfmgkoekuuo]qdfhknogi~lkkkolcmxpllgfiemdgysoumhjgkvqqpziegkzreigxkgnnmp{wsajjpku{npmongjbujhyikwbviisevgqknojzoistsmoqgrunml|olormgctsjlqolyirluvlaidhosjhpuzvcoison|o{lpmucdlramsnpumunysmcqrikyklkmmloinpploimvksmj|ifnzhvtirwmvqkliu~kurorlkjlutfkq`ijlgijaqitjjagfwlnoklo|ppotsmm_jopynblnhmhfqtsmsjsm}tfm~{c}jhgitlasrnilqlan{igrupbdhlmon`nmqokbqvhojtokmuhstnz_irwksxptnscwbjiohrlmfoopxnqnmpfvllmpjnhuw{kqqrgn\wbseusloswjq_rhkxka|ipkshljlvp}geolixzeonsn_prlanreijbufllfvifivogms\^nyrauflsfpwqkkzbv`vendo`jjlllriimqjohonfrbsmiljlcpkkfomtpcnn`ggisupuieqwz|klollrcpidep}flootayhviixxkniegip|m^kofojhrivkmp^zvjjipsoswadkdfumigxodkglkkgqr^icdrk\snoudokmrafnsengpmgrlogkpyj`pveqlhlrfuetvijusblwjqoopqiutgkgilkfknqwnnikgxclrk~gtipqepyqidpkbi|ltjxrkqpjsoqjnmmmjjjegpd`sjoyoqthisp{sogvgsosnkrknsyrjypkojpnppjikpj{jsfplywkkutznkrlitsltbmoijavnefkhcqiqfivrjiaqrkfjmlpmvwtwkxmcmmkawezfmbguhr\hljjkjhin^s}yhktpypfvutn|sjihpko}`^bwvmzpk`pvpja_clmlpjkmp_ivvbmjnrojteimnqepumtjmmunhrqktprluiqsijkqlmjlnmbipeflnpsgpoqmincoymivyknlimkpskivm_fc{yhjjjkmlukdvj}fqkrvskkhzssmkmim}goejxslmousqpmkfbwmufkejhlvkekklyjinyroikf_zmomjkfmfmm}mXkoljuynhrprhcpqjjjkmikkjmvmjnsrnqilpppglromjnjpjyjxilotmookmosqpupoqvhohhjlofpp|noji{uoonnhttgojrzcrul_ljwihlomnkijkjykqglmkbjpifnmlvkmoaeqsnvnnerhnfjmjkdanitcqtoso{prjdbixmsiinkekntqffjthkq{ptlkovfoug`upiihhjZvfmrpilnohcspbwn`cparkkks{mengydeqjmhbjymgkq]ngjglimcmuonjiklqtrqobhvptsmqehnumljdotfqjqsmmkmpphkclwegensyigvYxnnqxk`tkjnpulmqnvlsVgsnzrfodnordxlltlotyjnlnonxhnkkqplyjwtrigpfukxqjokligpkrmumbequhsklxudlrxbgdpss{lphjihiflteshjdirnsbj{for|mlmghovjknppximtmzuixkhgmnqw{dm[roxotmmrqlfnvoofkik_kirnqiogqfsfmjovqkrjldnhgicwmcnqntfhk^l|n`vhgjbsipnqjxqqrkuianprfolum_cmjzeppsaojls_hldpwjk}xy|hWhm]ihuosfgj~jzqS`rkvq`digeedxhmojlwxweftekyehdltonliqjmtckcopjrkfleqjrrrmwv_tsjJdphq]cjqugkniebgjodeUlmpl]m]khdZrimougoa{pynacvqjknalmctwhteadkfvmgtzlhrzjh^hafjJwShnqqcjekprenampjloih]|f]hcS{hmegq^zjjjowqhtovuus]|gtlsr_|sn|rgvnxszjiyufeqitl~kqoxsx|yrpmedbsgfcevTkuqsaonilyjZgrzlgkZxsjrqtsmudtj\nqiivsbltvcpouldie|ov}qusncruehrnpsurajegwuuhmey`tkhkpjblyiivwpvszfqpqpon{jfwwqhdornxyfvlpolvxkwwnrfjaZevqahfoolkymqsqisrlopqoqtidnpjwvrbmm`ckufjyur\uvdnewjj``phnollkbgirbkugmeo_df}toilpnqrkerwpkdionoktnlkkugosj}lpjluizol]necljdvqannqnkkkgmsheo`brhmmxlnnnjciliymijkhtwfukmth{^s`kopcmlmnlk}mielzpjxjmqrkqqeqmxkidnlrrpvtgpnyminnjuqrizmwvvphmfbwnoslnjjunlitoqbhcpfnbqeckptrgpgrzofghcinjpzgngneoaht_ejlrdmkyhltqfjpldzpimitssjigprilknhocpqtjsh`zw}qqsvngpsqreknjjtnhurumnnvhpmhxqhrpnlfeovqkmlbnmqn}dkadsfvieyo~lhdbmmzdupgslyc{shkpigwolykrooqogulthtkkspjhoqfhxpivl^tgsoesehwhku^hvi]ofeozntomoyrefjkgramknxjikpogedljffkuiglsxk{ynhrmickjhgmhjjkn\gngqpoygtpleupshwjgglmomrulqhfpljd^v|hihqmmn~jnsvopvrdpel}njlkpnppcmgkuiulnplf{gqssonfmrogierjqknhunsqkdwknvjoinoglmtjsouyorp{hpverz^q]ntspiouockorfnsqkrdjph{ojylqkdkvxvoetfqdnkn~lgcmlvzbpijpmqcmrjprrraekqdgomlsaulhmgpjjxmrkmkmie`qnfmyulsuecj{cov[nl\pcnmppnmfjms|`sco`unkkuwzgjkoqjihpxdclpxvqgzkuqcschfcmpgjd|mulkrwmxumgqewslgfjijsn\pkkjwoumngqrskfsspnthbceniqccftr_rjrmqivjdbf|sqzrkoVwmb{swldydulksyv`wop}pfhksonrvwkfqmvvwtgvoupnlqohskvplv{jrtx~thglnoqtkeoj{puntgotdfumqqfn|lsqleiqslswokfskry]mrfourqohnjwjvhvgsweojuykryjddenpgzpkgmhmuddg_`hskwqrlenjggpnqbjokpirngjkociijibkffttkjfnghnxuqrjgizujlek{ep^noosovtbibydxnkrfjea`apj\|Yjoendobvllexovrpqssfklobm{mnpuqmptkcwa~|nifhoixrmhhrw`najnqmkxwsshnknoktlustso_dvu^hrpo|tpxnnuegtklqjljogmokjuggcpsuesrl~oigtkuohyxnzqkgnq{kojntegmjxi_cn[fbwdkgboexjfncaponwkmyopmuhphfj`jfaqqjk`fnvo`grlh}umrxvgqpirvm`rdsjkqrfl~isnraTisnsfYjl~mfdiofrbnnlpn^tjonkgt{ku{hrlncfmhhlwiq]spnuwgfqnqrxhshsr}qjqvthS}mrbokiojnihZykpqxirconsoekftlfgmkeqfzmmqgkvlfcwnijgkerhf}dfencjgvhfeosetguopqqjyxrgvixmfvbphooktutdkmtuyhnkgnarmfmkmblkmolluwlunrfknbtuomnflqumkjwpgogcq_dwlhqjokskrilolqq]ennurmklfjnlltyddke{zgglimrvunfqfkymtjwqmicnhikondobizwfrjnsblkov`cmy_qgenkjpjbhqvdcr|\jhllogzixmcjodo}jrte|ufqvmbhhj{`iirvrcjjku\gtmnZhbrzaqyfhifoc_qnuuqfnbmvflcndmovdb\_dRnkjkpiklquyyaumznyljmolr{zuuqhginlhqn{jpzqmpvl~shxdozj|lfeowgzgjmzujmhqjzihuio`jqojeilwelktgthrlqxju\{klhr`fhhcgndr_jhqmpcvktflkhisotnisp{qjreqpfq~dphspfspsnhsfsdh\ljkpwg}witis[djnvkrjefjnmmgmnrkijsipjopsrsn}olonlmjlsjogmgdskbllnqkomrluhao~qpvtioouporvfptlfhkzwjjjielkgoeolqasiqgtmljzymklpmnwmojilqoipnfonqlljqnsafhmriwnkofmtkjhxkjhignylkllegheiml[glhoqzmhnphg`mphiijmljnpnxnndnuongpsrjnjwhhinjhqd~xkhzmtugpkhposxuptkrfhhimhmqvlil}vtoirkssdoetwgkubmjjpwgqllnsmlpgqllhmlhdnqqgifi{jdwfdnpp}ikejjmgnhjnj`jhpW||i|ig~ee^syxtnkthhilvn_cjrhnlvzfuowarrkaopij^`nawmnrsrixolrzphpslerfpsip|vrfblxdg{opjeiqkb_oflhcdkndtyjejlirwsip_elpsoo]pgrrkmgqsoqkhphev_ftllZjnmedlnvl^|cmiks}fYydqnnrsork~om^gjlwuhjhirrd}`rrmwotpqhtpl}dsp|phgjxsmfggqpjtqnplh`jfkvmtvamqshmpetuiysuejkiztpxdmip_ifkmpernkkmvhy`l~esjzglolrttnlgnetjmkgssnielelllgqWor|o{lvyoddpwmmfnhm_vgbjrnp\lfliqmmtpmzhk`nj_m[qbslszgpgVgpskyfihdojkkpezxwlmggottidize[ksduhhyhidngxVclgm~tf{ttzgOonZkluqm`hn~etk[]pgtzc_fadflqagehrn|zanlfk`lgojufoqufilalavokpsfnXlrykmal3{lhmillqgfdkglnlndmmobgwhrlmrqtynhkxcqvuvenjrucxilapdgatzhkeimkhlpnrpmcxgmpkpqq\jpmn}nh[Gzqtoosvpgskwnmqm[nfmmauvdfe\kin\sklhhluhoghltgnlkzo`qgdmdgos~tnqn_lx]tptuaspvlnkjunsimhafrnpifkjultqojnllvsuyfgwg_pqplggpixklmus`wnjui]ssicrnqqoptevyrkjemhkjjxtlojtloilpwhjbkfqmsyjkolggbmsogcfspwplemqrooeojsqfkrqxgnefipfesmfs^boan`rqjwypjffpsntdissiritrvuivoycp`xusoojmun^fpdkb^medsekxjmqkng}lfvtnorcymwOcvrlilhlkgpfvlliltell`poqZjqepexeuc\gquftekcrn|eygyrmrxgtsnorxbjprr|ndrmoh]kmnme`yxsksmj_|^vup^qoum`th{vxmergjkoqryni^mwp}gajakdx]zj]vuZvfulvp`plhzrxyjpolmkqbylndgngn]knpncf]mtdslcvvtjgju`xolnmpxdbpv|ilfjcljslmfrjigxotslypmjrkpmmpopknitsri{lbfrccrgqhZyruxoaooiirurokooexopzrvqpiv`yhwdmhfilegpzmmmoocyontv_whnltvtklaXxbqpmkjkhvgnimci]qtoitnk`ujnobtlfv^~ZvgumhhrodZajkwvpz\spjczmdTmqcwnvroeb}w|emrcocksbq`wlkgyrnpkfxpmwhvokmkrduqsnxvfxhkjnidoy^hnd]WsdruucqnhhepulkZxaTo_kn}mnxkqtllsoogwbbkj^mvfnr{aazocomc~jqiwo~ro{ljhanioyvkhn]jqlqon]hfmlfbrdxmjgxs{pf\[shkaakgawxaywwhikrln{onkk`geohcjjZWpsw|o}qh}Rcoy_mprfofqtajykqrnYovkkjXoi^ssjkodxpthnuukijdnyrZzeo\ifnudYj}r~nsdvewalsmpmqsii}R\`llumbsjdny`ajowgv}h|Zl^oqnqbhunhnnePtmka_kh{pwgflvkX^pqsUq~vVlazbdbvnvapXskkrcxbwwdvkwogvqdpeaiwro}gdnfbxrkprjfcfur_}uohtgpfysylwpvopxmc{pauhthnozsctcmehmhmqrfsydwjmshjkeljemnzxqi|ntsfemzqyojfvkotq|tdcipcikjxkW^lgngfjunhmltbqfdktkiykloelibgrctyYs\odv]rmoogqgjtu^[xjlmvhruh~ettlm}rlfvrpki|jqgnlrnfourtpesuxgfkhukhyu]jkhposjdt`bndwlicfxjijqwupacfwzwfsnehiggmppeeykqevcgnthvxbklfrnujrnft{nnrkdlmhojzdw`zcesqgkhvqugprmhltkyrfsurbawcymntvkfhbbclhgducuh~hsqkdoiutop`illfhgq~ohs`kru_~rgrkqijwc^egnfbtpjnoynimzf|ixjp{zoojiYciehj]bwbutfvzmvbpoqpimgui]qurd{psdsurzjfb~srVrx_sjmmhvfamsekrqiz{ui{nhofupq^enk_xpgliimnk{kivtxri}tqf`ltodeptdoupekrbvh{gsrmohj}nls~lz|rokfio}nfmkonugggrq}erallrfucebgonpwbrt`fhkupjmjhqohflm^utlcr`orohgj{okrjgkoi}p`xfftlm~iu`sd~hlhnkuqes`qjyyldpkqfqrmpo{~ie_qqhggpsgrmbgotsj`geqgehgp_zitg[nqgdqxljhixxtzemhlrpnksu^glnpmzofvyqmhtkgqvqgsk|yckgfmnuqserssofnexyfqdplkf`ikptwmnrkunwojhgiuhsnfikqfdeoe^]qudkjijqrojrt{gr\nrgdqvntveeyp\{wnwj_{rukaResfnpib_xjjkyqbk`mjdnfmosbjoggnepstg[sYhutjumxstkkZerrMlsjmrivrhrxwpfl|m}oqYafojnnngippsr`j^ewrgjfz|unsgqk^vjUwkegtkp|hnlwnlaf{pxfql}um_kdgpnnmel]dnni}gdirntmgtTqbk]pokc^Yojbpqrwqsmtipql]lyj_oldlrkunjdo[]o[pkzqasmfol`klkoxkoiq^jyZnd~wohgfspfywzkjm{]g|^cumxc}ecp}prltrm}g_lujjent\uw{{r|`wsmjtrqkxm]ipkernfir_lihaifhn_hyhooorpgxkugkpx^shvhapg`ojenqnfipve{chojjdscol{kygpgkwdppkmqig~_ampjsinooudykjudqxux~auxmmhuxpelonorrnjxlmgsw}rpspeyrprhsxrrnovqhonprkgyzujluw^vopmxjjppmtkjmypmnwxn\ogpuexh}fmqjhrolow{`peusjnjlmj{gnniiuqlrmliqpgjrzv|kqiqtjntiwripkregnsvonooplmegoifkmlpqohbrekcu`igoiiWpjk_tgh~ofrmhmmlsptnhphdiphfbhpntefqsdjhchsroctkonklneunrhul^mxdjvmxsjtpshhjrsrr}nzrmjijqgjklmtlrjoohmksxTbjqkitmlhhsugerqsqfaxzmpphldn`sldzsxjrjfonluyhlukcpqkb\npcqkwlo}lhrreichphius}hn^ipgmi~~emmkejpkfeheikjyckrkpk~og{tvfoWldz|iplVwj]zqtirhbubd}diirerln~jl\ctloznogjpfvnifiqjcohhrkkro[noq`e`ogkkkgctioxgvc`Xwsgkhmu~gom]tohsskqlRsjvkbnnhufwnqkwfxsibmpkfp`ogtgg~wstotsh^jjlpptfospcawtzn|qhvjqskns`sollrfWwjzpvstcYkwRvYh\gpkjhYsgqqmstp]oxoot|joq[fzu~iifpi_stobapnmpvcxmesylu}txmg`fh^|ms]fqsips^enl~qqog~rqSfnpm`ua^foSkstjnhni^ommrqaaxkyltjhuvtiok`pynss{vssW{gmphqqtvkofuduk}q_iqqpmsegzfqyxuq}im\ygxmmjrtbfljrvvuctnkhuobdms`iotdpultnmkgfs|vsgvnqhrijeqselw~mcpuhzoe`mlhnxcrjjollumktznykviv_o_sknrfhkqn|qjohitrcirjhmqrqpirooyr`cithopvpkxqfcdm~mmc_mbc}ni{uinlhohufrdxhchmgpkkmnjqsnqrllfhuor^scqvpenrqqiomipgkfpppojqunw}fmri|x~cpirjrjpiemgumvtdojgvojnoogalfgnr|tmqyfjlltfmsksojmmlkosh]etlljusyjofirpmincplpnhgyp|fepcl[jgrfh|}irjjfoyxecitv^afe^eufwacw|itrg~olxkYtkcmvmi_uoa\omgcvlrvbgmzllqsonvomrdcmrir}s|daid|m}ye[pqjhwuzkhdkylbwh`hogxud|seNkjqdrzlpemlghnahrmnpamrtivyli}iWdjwgpvcggvekefpti{jgvrywi\lrt||ntli|beizb[epnkmeutulwfstohrsjeqgnsSZtbnslbwimqporjjrytprr|\hpsfu]kirvnxnnlmVm[kiokmprmho|ai|sart{ecnkntutstky|n`qdzkpnq_pujgghtvpqk^hfllqcijhkenshkevssfrhpdriohmutu|lxvfhg^ljhnq^kkimvmgjfwpgkj]uqnmkgglmurmofgdqrrtp{xpkb\inohqtbhqm_rvktzcd|emgptokdfmgkyquuq{mohczajhtfgocmhffnpi^y`~nrmy{foj}_onmieqR^isiozgmdrnSqtftpr}hsyzkseogPxlvj_brsbjffuxqretisN}kqnlgw`qdohc]~oieoqndmzythsTh[Wj`vwojwlcqm`xs\kyl|vhdptbunpjjnphs[wjeuYh>jikbhdxtfqo{`wayoidoen\lnkgjiio_f`idtohqoflhxgl`grsblkUhkptwemqcgcmopgkkdlkqlmmcnfiptfunrpif_orhjosod{dmoitdejiiiftdehlzgedi\j\jZmiynbpp~~sofiwuvnbufphwqtnkfposa_v[`ejhosijoooyoo^k`~xzjgsmifd`egojockziqkeo]nmottzidgeqcmsmogofpjldfn{opqhqkbqwhdrsdtnzipecrsmijflsrbs`q\infyycqmqksfqvgg`|rmpl~psriyhortgnlpiryqmrqgqilwlexpvreonrlsnrnnsmlk|rtjhntulywttlnlrncnfnvnlnqo~qerilpngkmnnmrmkdecmugmrgivnvculeotlxhopkkerodoqvdm{snjejvklhotlqh{kmclhoipbqpphnmmlmiojhrnqmoriiutunwpuikopuehs`lmhtn]spwlu`hrjpiyy{{zs}tkiisTkshlals|ks\duf}uj|rrcnkqbfgtk|tnnaqpotr^^_ahfcxgnjhlsZrhwq}udjaxlikr~rYhbTnrnvnqowmmgoqobbempnqpjqj}imptolttpnsjnskr[yq}xhns`heswzmtdadliyh{tfaeoXhmvqgk{Qfmatmjstya|pdwW__beljb`wqc`p`dodxnfrljyceWVq~qap^hXoevuk{xga|DxuhnemRdcgwzZklphsPsn|RW}Yfizmi{_zfflhjpmrban[qbioow|vRyiyjhrlejgqomxKjockvim`uns|mjsyimmwxpydta_wiqdjsxjoiwiyy^gzwhirgnrtxit\nhxmttskmkYd^jznu|wnsf|envtypjeutypgjhjf[vc}ci[jUtzv~eigwshzdmolgngallsihipddl`krfgmgndlvkdhix_gmr{nolekqeonkglojmtvmqu{polhpzlpxoz{isekmxrpktmntkenpjrlmr{ntlkkhuupns}mttaclp]hmwvtqrsupoyohljjsqrcfopagjtrycviggtitqgopjrildtshlgmoohqg^cqzjmwtbtlot`jooriksulsc|ihrwmrmf_qaiallaocyfry{snvkrivmgzoqmumpuljhoe_q|ixno`pqfikrdlXieyppvzctkexhggrewvrmhnpklzgjkhmkdivh\qeqeccruloojmrjwryjmucsv`zghsuhoxqtgkjtrqbloznZgtg{pcdufi{mZhtrubkbcsjsmz]tok]sfti|g_kzfapevhyjcmouazpfmlns{iguXafwii{}mqovo_phVfkcwtVcpgg{gjiwtohvjcajxfnngf`hxvwsptpoynkZsdnxgagghrjbimtpwtndpjdo\nbxhphtmjseqvwoqqkjmudfqlmucnaephmvgnntmamrfcg\}utlhdrjsatinyqq}rrglok|qvfesfirpsdpsdpifo}qy[cmllqisyZiwodokwwumcexu{hdwlekondak`vynsnjinerpbxnd~}ewnenllfgfpd^ejtq}u]aggpg]wgmrj^imdh|fkvh}cgfqecbhllg_|hoqZ~bflebbj_dlrulnoar^mrfqcidkdhnrhojmolivypfgmv^rvnwled}xhllbossjfYsutmmhysnn`xnfs^][udzqrjvYdjgdnvhjj|trefnjrnuWx^gowplkpnrpnwkbkekwmnhn`hh^lxyt`snmnokmirgqflrptcnki{pfsimysecSh}hjnsompkwzhf_}qoY{^}ijjnvqvdulncrnyqommfjbnmtjbshjiuj^usngutypkkjpnilbmnpcfqsqhgubbsdkhwigsjr{zorjidbegrutntri}ykohllesosa{mtkdgcne}fowfznrxsqncjfihbppmfjhikoeonmgj{md]qvkblammjZoejelutvhqutzixlevpsraqvfphjkooe]spi`qkfvnetchxurjirmqeYizjedsornnjyskwdgoioncxghogmongwwrpwlwvppmrlj~tjetjklxopmkslxlffkklilt]egkm~pmooeoespsrunkiiszlkanirjqlcvknqlvfnlkh|hjmeohphrogmuievhuoi]rjojkjomvmlrhdqllkxeogiglckolhlvomnlwiq|umesotnpkfoezplurokrel]eykmkioesoooflbgwdhlptnkmrlkntgpgrlsvyv|iojrjlmylnkgusq~vtmsndsurcngnmhoyjtnepfshshfsxjlffvwzn\_dsoso]gl_hymifjnjpvmrg{iwcku_eldl[gm_rbbkqxqonkjuhalg]g]hppoqkNharlqg^jovlsfzkjq^kQljbr}rv|m_keaoxpoounojpppjcmoxjdhszrmilgnlg_rdtiovn]rslnkai]ejysbkesekkiofuioutvfnuhhfoyulmn[nvtgkgXfjivkjjkmvfZcegpplmkinf`tpfpwhkbmZvoso`laxlkrqtidiiirqwohmcxktms`xql|spikvuhvulnglxvi]ycnd}^n{ckyesxudeorl_q`tlZavqljtpljrtqaksumfhlneopYqkwl`fxjjpilqpifkjmi]rruskochkqucmna{mlconghgunjmlrncdils{luwegshnjiayh~rnk{dmrprhl^rktamnhmugcirpfspvuzzt{_iksunytpsbewhgkc{cmbxhrvqdjfw}f{nscg}sco`myda~giirevgsxezsilpdgtcctvrkdl}\bhhvkbnirdz`gn`mf]oqlhr{k~xis~fleigXnwafut`ujcymvyjyltiqeqyapfeo[knfigivlshndkfgcInxotkcrmntc\r[a`zjnxs]bmijrmj|~x\q|foifro|bnqwhslfwmmontkfmdngibp}rbf^jvz`vqitorsrotj\d{kcqptwqd\dxldaiqqxegrvnokdak^nr_swglyzkzodvfb^oqtghnp~owjlc{gkhfblljteegknringggtbzsswljhqmdrmkdxnqlfimwqjmg|}m_vuskevthkrkmrofzrjcfkoijmaijcggpwwtkgmayjmjyodeYklnijayv^itomgoxflbvvxexjnjdjwlfwntbthjnfqhigipoiplqclkrirntvdevlcoYqnsy~eqhb_scfwegjvs{\jkt_\eZtmorq|fx_ztw}fehxeiffnoplf^wnrzsThsp_x|rdivvlkqSqvtkffxw|dfn{dfvggjan{cndtem}s~mzsofwmXzlwitiSxxrlir{uxcwpdjgucjkqw@iizdd~wkp}nm~tbqemfng[^xqektvgojlamgtofksrublysnekpcchxgptbch_i]}f`ktnzfd_^hmlc{lgqq^zku{ovapbnyiodj~`{lmvfihidmN}j}lgrlpm|dekqvlfotbnng|rtlpq_xrlqzrftqkhcookkkruho`solhwnmnonckukjorfohlhiel^o}vpmlltricdhnmlmgjqoomnkk~nrcqvqgoenklsxtoqjulqtgolu~jsnkdqfjnleh_rrnyhowkrknulpup]plpkhkpndhimcpqoexofsnfumqgukdx^blmlp_xcqemwdYguXfkfnqljcswite``lcs`ooehimsloyo`lqmr`uljsxfdwjgkygzousnfcphhwopnkqmuzbjdm^tqa^fgytxhZvsrm`gtxlhpntoodxzgk_ypwmp{tsexjkhjnfetomyplhrpmker|avnwhkgqiwsqhv{izhdgioyxpjovvwstnjnlrnbstkhtvy`cdluknbitYimlgXljsssjldp\jatmjihfgu^sklwggqjpmgyigx_ee|pugm]_ioopwogllsmizqkxdsif}tryvkaewnnnnilykzng`wikvgeauoqnafipsocf{ogozkfojlabjazhlkjhm~rgffucudgwoeywolieglgiokkohdhutnpqyknVfolylnlmujwplpk}mqotojjhobnzmnmqhmskt_nhvm]nojqypmdqsdjrexhwhhhoownpztllfijghwwsxciajcrnmjqsdkxlwnmbkbkqldtlpnoqfonlgkkphhnfuso^mmmnxjmvfzkfqfipg{u{jk_hjpipohimlvijmpyqgonrwpnpnmklughs{eeq{ng|qwgojsbm`lesmgqcssnkraljqogpevqomhokd}nezhgnpqbqlnuqeunknwjoqb_qgaargxafsiojamonm`fjookqgmikyoqlnrmgwe`cvm[jgi|xpOjneqwt{rkklnko]mmnqgfnko~unricxqyzjemgmjpmujlj[kq^ulknmg~jojunngpb}jhrmiddntRelvfmtnlqgge_atgqfiweimxogghdljqojcja{qeoiiilmqctxcogznjjshssoouxejwzuppiilkyikocmaeyymzms^wgpo^wbrrgiqcwihvnebovqwoZvlkwznnktglhflyvjvwwmlqhu}{slwgsnkttmfqwmjt`vhrbg`gx|vuigelqhogto|q`arojdu|gnmslscfehh_tjxeoimilbZokmakofqhhneoYsdg]kZplliqkskgqcmuxisx_j`cvnqojkbsjwf{oleismwkg~kfqxthn`dfotalhlsp~xnnslrn]rdbcrbujvvoomMiiiike{mpnmxhkmtg`s~y{kvsurdauowxd\~lp~mjzce~\opkkjb{eljrjw`bwkjpogbZlsdhgphspjsmoa_fhjhqg_w{fplitwevhobqdsqujegr~bajpy^hdvtd`gkYuockau_Rqatbp]jrnonikvjynoVjtqkbtumpgrn_h~bonXwafve^qpbu|yuhxkdkjorndsjvfwlufywomwbmmwskgblkjoknppogfvkklf^jjlkmzp`pnwysuizamgdxdpahm}md`cqep_cggyplnnhrwfqw^r}loel}ihvrpotgxj]oufqj^vtycrkxw~wejzbhmqlekrr[`btz]hAg}scwhtdhxhhkjhgokabmrmnqn`Zkfr]hbYielfdlvanmsztXfrshnYfxylakmfkowionoW{inqtxgrtmdblt3iu`anspnrmqwst`ghmqjnwgiptg`{~kg\iyqzwlw[hrmrs{tpjlYchdutkfllhitimpj~o}j{`sjd\usvcmclmucsujt~kTeubh_js_m`iWnywgxgkYuzp_q{]zyvmsPpircqwzyi{jfocm~kwsmetp]onsYpkphwrv}zmYtss{\gbihqpbsaYpqxaeu~mzkqgkzfklwkqfdnnis\jkpegn^|k_orh{lh{lyrrikY]bpbo|mururt]eambqnlneby[vohilu[rWqwZorh{m}sex^iqu`nkt`iqR`iorinncZnktTn^ujiltwefdyg{pglujntwmjfksehplp|gdnie~mmjlehdtzfmudjxl`f`hptqmkhkpligesfodir|eldm~`lnddfqbzvgtYwqg}xoqifrglkqi{a`qsejesgggml]cnmmu|j|uijyzaikekphh~lsorl]snnrqshorrkrmzlihgeukhplkmossnhssohrmmhgrjipniqxsiokvlhnpukfmukgvatpmrg^gpsoxfuoqnugltwhaphho{vrno}npcwqsmksjspwl`hs~crmrignhjqqrhmqtjqmkkneifuofngpuguxxmklncifxmenkxkkkumtgd]rqposfiouglrpkdi\gud_|wutp|lcnqiomdo|o{{qnilpqlocxdppuj{Veejtspzx|riuqbpqfcbpsikvixgklgtqliweikk\wkvrluxgo^ppufo{k{bnmmjonn{hbiwnwppa}yhrhpruhkprtyjjarokmtwtdmkecg{klyrwhrhsxqrmxtillojapsjjoq~gjjokokyjnVumaklgkmory^nnvwbuawqskdsfvqkjeysqlvpixhlqtpdpo^`vp_lxqpmqltkhftvpkafnxtdrkktmqmlfn^`oofhksvilgcknjnqnjzjpipkmkmnrulprghhqnkcngieryqYwfkjnwxrgcqsnddehmpltlmpmdlehhrrs{fm{grjfjhdmqivorg~gtssrqzmkswiugrtm\mhel`brbt]vluisjnZlfwlptnkuuiscltgqpqsisrippehpmokqxdlyonrugfklyqb]jgf_ymwjszqnlsdlXbh^}v`orpctdh\heqaoqrfocs]~cqhllsnmbii|wanpioqihnmkvksgxilurutjjepl`bfhopobct\gpwcc~bgorljZygk\ek^vjrfcgph|ryjc|yq{txrqlzujlly_xco{pkfl`mpotphfrobqjwrkoimvwqdgszwjenbochnm{olipm`nolgnonzijydldjen}ghfjiqfrsnko`xkngsggfwyqioirngonsnmvwkbk}iovobmchodvftwvhtijajlqngpjsewlqkwmpkjlmmjjludhhje\xnqumglvnluvoycejrllksfpnforvnnnvqum{tq|wqmjopumtpvvfrsnp}zqwwikojkq}etpuplmisq}pr_ur|}rlprvtwgromjthnpmtoqfssbhxslrkyptuo\mskirwhrrirmrmojvqmjpanuslptWlnppduiscgwnmhasonmhkcltbnphowSzik_gvqjkpuljrhnqojVhrinjimqjskmnoopoignjsgnaqwmftnqlpyfhpe_nhinloilmiouprjsgiksjlflpdliinirlkrrolnlnxgoflrrqlolnzslluqqcttpogsdtiy]gjtjplmaipm}_gnmjbafxkkrqngylessjetsql]gjlorowncitborerdfgsttdbkwadsjzkinwnon`qhxqcloiswjiozYok_yleoqq`hcisxhsupp{igkbWg`dm|_lr{fubqkkkmvhkf^qrgmnqdbuf{lt{ajleqlwvltbpmfmal~_rxy}lkqdooufpimqejgspbelbziito~hykwpml{^tgs_nblkrnjmoZlktpyj]vjmm{alfmkfcspxp\ny^mksjioVtmhl}fk{khshll}shi`nljovikhfgrjkfkjr]anapkuyz_qfSkXaunogrfpsi]f]yijl{ppVhkvnxjSfipic_zrn|gizghzOcozwskyxunq|lmjis^xmmse~{Wpk}iricpkmdrxwolsOd]kvyjpjfZli_telgyirngp~h{mjw[mirZremiul_ux[shxhv_xplktc^oYxgmrghinixmfu`lppkhsjwmfqaouuqtmfpu~sertpeotjokggv_keuwo`mm`qpkuhtsq}`qqwrvemioqyflyiuqqgrl}qsjsuhwntytj_l`rocihpqqyf|lhmxvqwjnczqsijuidfefxq_hjnouimpunrqe_{yinxvnOjxjb}jotlgtkksxfhofegcdhrplutftnqgkhybxkfoqs}qbxa^tiewdqenjb`o|ravqlxo|vntnshmyqvt{|btz~ktmyepqu^itpvon[niylhltZpt}kqahknx^rmmnyemp~ikmlkmbk{gyjcipulmkdv`olz\`{idmgtpqguwmkrxkpinrghlblc[atljmlkljdjhqmemxhrstnzaomomslzq`knegjtpeimfqZygjrp]mtnouthodbrzt{laRmjjfsoqi\irqrlmb`wksibihkmofi|czXjnzlocyt`eRrbsbfgoqqnhk\ma^xqwneh[pxkd[jd|euatw|cl]k`lXc]swxjuwjuyvxrowfwtpodtkqpqqqlFmeflysu^]Prghuuhecee}dkgbcz]cevhplyzhlqlm_{mwpzjKpw{scqombbqsllsme]Z}xnsltoajZnnrhrhofytmjsksddlxkckfgmpotrdiuwljcv]pjlg|js_v`zkrirlniavqikhfonlfmsancqmos|cqn|nlwtkmstmcoqfhnjvjvoopvqpbejmjinqtihvyfqunwlodlzvomxn^nepcrfirbu{|jwrn\rhnumperbmqu^oleqgjjhdmgubghiiomsvilnoqkerfz|oanhoqatkozfmfdeupvormY^m^rpoljzgjrnr`eegki_w^ghXllneudmskjpcdVnwmhlnvsrayljcceWonppns}nleiwwgiihlpf~T|[`RwJdcmZY^ygeehHf`\dpibrwwuxhoeHkehtjndfZ`gjeorkwxoflhw{hOPgrldiwswlchZ`y|ouzkXkhkX]hUr~ab|lhosn`lenyynr|jflYwrg}{cxjs^dd|hycyXhhmoVnojeliucjbwkkqsli`iztebmh_dnstvfilvi`umnnifuhfsh\mmhm`cmqqfwrp_n|nlkmjzql^ngllwijfkdlnkemfam`vktroq`kuihjrh^jkoklnnsgfcirqrt_ocmnygcc{nlslnk]ugknps_rvnfmqqiel{cnpoksbmkrzk]oo`sjltnodrh{gedpmrotnrsdllqkippl~rjq~uloomqwccojqssjkspnsomglpiqnpmfttedjoffr}qugsswmjlmmcl`tjpbhhfdskrhnvdeckblmmirmphehqgyouonoisrqqvbhliodkznfyjfofztfp\kzusbrhsmpqvggo]knqqpdukq`torqqrm`f]{rusedtwirnqqqpbds_phctjffubxtlq{jyeokkmep`ujxkrhvqqqump{wrsrtfyhwUqnwulj|[tkynlrt{[~ltyxnnhrxcuva[jiknpsie`uoxutqjkvllevimhxmiepoxqiecam]olwfgjpt[utj|tnuamvthmenmxhgioiiuskjfylg^wcidqu`hwhvoprbspkcqvpoygvhutlfolvvugkqppmdcegrhuncpnpoejrnmremnwsuiakwisi}vjxZzqsluttx{eogcWpnv_p{|]`rhcvqodhvuzfmqlopqukuiqgsnlqsdxu{cpoon}ypfmlvuljfnqjziqlwg\jmlalfibnitTnsokgpj|vmlwoii[jynkdi}eosngkhdhi{rzwkozxpqqrmgwx^ikn}lnmn^oc`zojexlh^|fhntipp^xonploqvoikpot~mjgu}jqqmqlxitjgsiggtqjyqfvcobsgsruymoospnpsrrjamnsxqsimrdu_kmzvrrbluogrjlgshnhxqhzmpuxilgrijo}dsm^qtmesixqmlpqfocpptwcxlou[l[onmnkfsb_qmtnbkklhjhwftkhhguesieqcsxrrihnj__kmmdtyohg`meqfigoqqevfnkqtmrwqorsnotvlnmkxrntuurzrdfamo_q_jw~znmln|efaokdlggump|pihbh~fzlpxejzp]igoh}gldipjmrt~{njerngmlrg^jw`ysjxvhrrq^oszonhrhbqkqdkqu_stcsjiwkss|bgppwoszjugl}jrjjrhprymnpwafhjgomxlsffqszbprvtlawtkpwppybq{rjmjkjouloltflopstgctnvpgvvihunq{umdoivrmRtnagkcRquloq{w~mm|m`pumzrinor]go^jwmikwjgiuqrkthdumdmpiwajnwxoprtnhjkcoo|c`aujdioyekkilfyv^jhqns^cllhxxwzXjmlcrnll]pXgmgflkjpjkpqsudhl_w[|mnrouwjliwqenuomwkpapck^qvoietmovhip{qrWr`ko|^guwnkrcf]hiduy|mdlluqsg}hhy[z`vdfqbyb}gorqbmzio`skmkcngfouiqfpXsqonia{]~oPXnve`fwXkuqvyizaaxurXo\refb]ux}hq[vXntfdkrfpxjsgii\jlrj`p|cnknhgenVlsnmfqnmpsnoaljudlsvtyqmow{gqpxlsahxsklknmqcrpmmulppvhnmcjkkthqpqkpqohgmevkrxvunmh}acurykjguqkheqjpiwpfhtlrcftlijfsvdxctiktohmixeodfgpfitrjrlkjfdugulrodzjqstmnlskrbwnvkk\k_bpm\lsncixihruhammzol~qisipiroqiusklnlgtgvbaoqwpioorgqfpeoyjttnriakgh^ycdwxlshcxkZwsifd}nvhjbuvxoopkjhbkUxgldqojsinzhpgndrg_ijekimevqn`letoslegjwr]Xnqrivhfdqnhp\pgmnsq}tghincoclqfuli_}lmxjilijckvje_hihuxhtooikrqlrminumgrWck|ijmkyZxqxmdrmcp`ntphnhm{nhlgf^~p^ajhxnonmotgrlrlq`sk~tw[j`n_altqlnahvkk|kmdejquqkhurqolexhehjtkujlpvvksxq|gdhmoouowSm}mglnlmpse[g|ljiagfnnpjrjyjlqr^yiljlkskjaqoo}}gqvvh`jakvlfwvpejxsmxjttdhguiylifjajrqm}mnqodoimt~gkojmgmskieokxxolkklqdioujdxjiihiilitzfgpkosjulpjvpolg}lvuokqtkpkgoobhsumrdimpetmioscurihmfmbjlom~^ekdijyymxkadjtoiv`kndpqlqbitjtnlppwmhjf^qnloffojdn[lr^`fokmuvtd~etjkg{algaywsbovjyphmnsuioupumjcrfqg{fqk|jamxlmhmudqmprtshkmchpjhjjfnwrnewmsqo|v_jne}okmawgmljtxulojs`k`uxwfmmnmmpskiiohsgngllqoqlnhsijktid{tkifwjiefgiiolj}rg_|cccjcceXtka\hleyeidgqekurjkgfo^fe{bfqxnittfigqv[fgcmmeaelits\dmavteqwn[tooqrmTlzb^rnzi~hb|mbo`hlfs~^m[dmoepme{ndoMveujjrlj`pl`xnrrbdqjvrqysqtdudqmo_mwcfki`\{tnoqZgnpmxrjlmtp{vnkinmj}[rdxlrtkqtvkrjjkb[twfjq]rZjhqmnvewkjiPjppkjandYpdg}kglcyqqyunuaigsZrczsguqskhousrbhiagrjxlnnax~niileulgm`ja]sq[p{fqnblfu|sqcfmQuw~[xoeiffflkjx}dlgglwgmquojgwcue_uhvhgvqx_{nw|ggmonvqzlclsxl]ztltkqazubaltmidbt|it_jmksursoppmZ]legjdjnpmqgenfwrztkOj{dvqn{ag]lfmns~hlilqmcl{xkw]mpktupkgsjsqmjjlscltinnipsklisscchjodgddv`aclrotgwpscbhmlkq{qsihmkkhtqzu}xdfewr``hjfc`ojvfeogqsnvuj]dukqjlnrtPkwjcfmealh}dno`urqnppdilje`t\gssfhfaojqyqnqpprbduwenomkkppjuccseicmllh_kighug{sqcpnmsnihkplWbmoeesmwhhhq{smxrwq_trtkgukgvkhpvhszkllqXknetcho_u~m{pvjtriefQruh]oxmjf{soeqefuqdtprjqutlj|npiffpoosunmnqnpvmhhcloniou{rsvuokijmmpgmjpqpojntnwrv{lhntrqdquplrmkqlewwrjwqtskmdsplnrttkpadicgrewvpgxohmnrlndtjgjtfjhjoeyoll|wupopmgmmjroejxnqvnifkjpzmaepssffu]rimkexouk]hwtesmtal^bpphuihnxrwhshr|dcoojfkhpnpkihvlkkoznlpievqlcvjnh{h]hsbe|gophXvgfwhkegtirdkmaflojfkultsfaidwhuwyqjgtasr`dwkqd\noosslworlxlqo[ko}l\q}m_ch}khjkdkrfoq{kyivhtlnmprpli{vklkrmmovvenejgqch{elvqzfstcsttgrdf`somegvreqm{qppjpm|gijskcinf_cpsksjgsmvcqwj{lymzmtsmr\jjfqlnmtv|gnthemmnrmuwhphrorifeqjwxlmelqd^jkconbIzh^xb~h[grfgpmpsurj{jfiqX[saarjpplaqlifogogxejrj_odjbqlxf_emdkemuizgcfgsomlunw\jhypdgl|uUzthpWnHddmdmtuvscxu_mtXkpNmeeqqhqvbjfsjmmcem}rbpqih{dlxrjwjmmhlcffq{uZdxrgYqrbcklmimwrbiu`lfooooulWifcsbqzjxcgc_urph\vxpiphtlhoommto`vp}mT_]\cs\pcSpjpnifzb}Lgdqxaqxztzoz{sHobrjqwnxijynfhpdnzwkmljorX]galvnip[pxbd`sdi{f{`Zrqdjhngaukriomneqgqnrkw}osijixqgtabszf{ygj{bdlt^tkmkjqjxrltpvbrslspsqarhvkd}zkimxrkiqgwrdfobvmdwwsmtqWtadoczpomkrimivWuxngrprp\rrjmw_vlZjpqipcqmimfxvl~`brq~cmoowoikooqhrgjylmliartkqups}normkgssowqqghcrilypehwpouimgutfupupxbulsjdrswvkmwpgqixknmdokqhhosmnpqhlftgsquxkszkhnkmojnrmiqkqlkdsrw_mqtnqqiYnolcihwnqqjmqhdo`lvn}qtxluvliulsToqnjobujkepY{osddfwulljn]eshsooUmjtoennyfilbqecauq^ddfgpu{zmfqtl_YTsh`Yvtiifnyrljejzqsl}oo_xvjkyflxhtvjighsjeffjoltymhnZyjeqqm]_m}f^sqe_]hibrpwkocmserqescmoldoooskxl{hlrmdpjw_ncVmowmakYpclfo`ktokpgmvlwmlnfbkclylmljhwgne_los{hhammsgcggjob`pouiqjvvhtdjreZngllqophpprlct{_nhuofZvpf|eoikrnqjkplfiprnk`qckxl}p_vjcquilZqezhxmltjevfeqr^ptqutr`ojkknpyenlsvptfnuflswlpk{nhicrzrxrzflmfn|jqhd_jhj^pqpksvmw}cqlmwlzjdqlqvpsvnjdsfivmwxan[^npmnqpugodwi_`notgjowmog\tf~mhmxcmlospilmlkqsruupqjjpcucpj|w~lrvi]ulmvcgynfqrjrUi{vounwiq[mhklplhyiizoshka_iyspioxkwpnsg_n\gveu]lgqm}lqtqkujrj}imjumngmaaehklexoocdj]oajpbrpbrnrpuqfmmcmorlobudre}dymglclleunk|pwnhnqmoimglvvpmpysvmssdmjgeirmahpimne[oeiqo}qjyfox~qabkvmldlnZply}lukjnfrxmninogruwkl}yetkhy^sosrThekgwanxrlpduhrrgzi~jhspilwrvjlqnisdo|woxcuvthggkjlpmfyjolbsmhqcmjphgoflickursrmxfqigjqmmaf\tqqsjiyqY{jympzjfu_kdq}mqqiirhkilsk~toazqqk\hmz~npvbpjjtjfwpjkabekiditvjnl|`xaotgUZdcklftthmdpgnh`ikn}onvdwncyguxfthmmg^dlzpmTejjm]skg~imf^lsnprylmnemnu\pU_ahm`kkg{njYbjw{^ruhujnhpochgZb}zn[igdaxoaghssn_rtk{ajvl^k{uhl{jkujylxpriltfqmklvrntisxlutikfkmiikxjudtnpsskstpumvnwmgsgnrlonptjmu~pqmtwoumrojkn]stllolgpiijjigl}lqnmxtpqshcntpmghnhnlromgioxzgqpkkkuvgprms_irmpnqejortmlp~ir^s\jVlqovrqgx}uzqy}lr`jcxpeflwkgvmus`iyN{kwiufyzzdv[^noRapjcX`s]ywgmh}Xwlutrlgbl[f~\mplgwpubnlstQXEksii~mqeqyySonf_ti_ezfwms|kq`cmmWg~nzjccvv_jigtpdktliffmvcnfoehi}uakmrjcmodl\ozjwtsqta|tivmtvUliegiWinlvnnsflkfeofdushsioimoitjpqsiphi`}rgggvvmyhqoekkgpdvnm{ojmdtbjwd`zxwnttgdnomkg|gnqfeedsmszi`qd{sqsmqqnflialiaojanqlh^sgldpmm~aflplefjumfah~n~dfebujlityisghppugeagnjqywpkugfteeiqijpjojlo`o_jddkZmhenfikpokerknrhkoj}cm}Xgipoosohjhvopnhnhpjqchiel]legbu`iumvcjijsqaufs_{zsTtjmhejtoeyVsudaqmphzrtkfirjbe|p~ntjhulsvnnwnakpzqecgvmudlqnicke|tbmdp\s]fdlkpwsmkejrsrfvmlhissnetstgvphYi|wcjskokiqkmlxhycshffsf|\hgNwhnfrfuuzmqJv|k^dnp[Xdhv{l`bkzZns_b[dfipuP\r^rg\wvz^lpibvPfwmdirjhspt[wkdV{[WofQv}ukw]lcs]n`|nh`Vown[dqmdgri_tmi[bi`XIs}xewTzsljkgg@vs_e_ttcjmisrcujskdzvehttmqxmxmhstycwumjndrgekifadreutqrlkkhbxnmpvmpsXzfqrjscqxamiZsg{iqzngyznoyiqjf_qtsvw|grdp}fonkokyv\iibtwzjadayV~mdlhtjqvfgsowrlsdhdlh|tlnnkpjmovl{rdihsfjumlkwingla]cjfkgmsgsvlxtlopmpiops{youjdclvnqiss[dyn{jWtxjcs{kughcn_mljvrtrvlfrdkxpcpoundoxlqjnv]fqyelukheriufxsxmpmkwsmspog`liy\qsejplzcl{`ordkoommofkjl\aufirglhuniclhfpopnkihguumveqqdr]rofmqdnlhlflwojh`gqycfnl`rjf{mzlgmmwql|svbvl`\mugjmr`}lwxxrcif\ugvnt~mouukp|ns^]`tifeu_hjlod~c|c|wsjoeatognbuelhni}kk^jjjvior~geljk^kil{nrqipmzjffosh\npbqbmsdlk`vyttoiwrepqlea[kretoiwtwtrw~emeqsfztvcj~evnmjnfnuvg|fkd_ymqpdtm}jhgfdmw^sziptyg~x`mwlkqxn~ktmfzhgtsrj{ldxggjvymetopsq`mfjqgwegmfos^hvjavfhs{onjlorrkelmkq_hjt~hmj}qhmkkflfirmolqulxomi{oueeeleljjkjoedbgsmbrkiqprrjjmgmfkgfolujugelkpf_mrimjipojxloo~nnsucqiqzrlcpiigw`ohfulsrkyf_guolgjenulcf`srkgxbjtsih`yghocvbpqigogdvttqhtrklhvpbzjzprhjqklldnrqtxsinbxpe~tlokrgjitrvloonscpdofkcrnusifccsem]iz{ntgqptfj^oocfwfwosch{gi|mibjmhdfeojbkojjoafrkby`qu]ddqklurn^cah|]uao]rsoauvregi}jieqi^mdprxrlsmnuYnecndkwejixezgosraqmscts{mkgXqsiqqQkTfousxlnWomqepqzoajfgrsbpfocj`vtfilm}idggv|lidy~Trsdfk}pblxpVya{gtimcowgi{usgckvijwnqsrr|odp[wiog`p}viyhsrbYVoivuiflmnqoo~kqex_ykwf`juthqpue~{jbax`fi~prfkqmnuvhpVlx}cw|_sbob|{maopgkXhrdwwhzbczi]a_\i]flWwg^bbhWfoci`axR]co]addo^]|cdibzclagb]]^x\j_emZS_fdU]hUjgd\afhZjkd`_fY_deb_bwaetXsdbbjhSUbSU]Y\fZglgimaZ\SjaofcfadhZmX^]tehhkVzabgbf`\ZZbfeggcf_`XeqffegYlaQO]gi[YckZVo_fc[{tZj[afbpdkvaLv[mVceYlj_efd[l}cVfeg^f]wlcpVx[YZf[^_gMjbfhea^XIVWaobvae_^fceVYt``pj`djZ]ZVUxjYjfniefhcjWXginxgmpdna_^hfXqhjfer_aeedg[T__ijeb]Kjt^nlbnXqpdUKWT[Hdc`iaYcGhXoRs^[f^dUiWmglv_odcojcaTmOjhz[er]bXQpx[{`jNrcYiHkguXYVYmRa[[UslO~enZmpTgfjOk^X_N[_Zt_f_kskv`@fdW^E^lR`l[QqSXhiFjZAbXYQFijZaYnf{`m^g_fmfibo_bd]mfZYafqebdmx\`f^~va`mf`ielejo[a`pjolhbZbck_\jpfgXgljcbs_c_[cibfndd_gh]vZo]a^hkaTuaNX^qek{jecdc`h_f`_^`jhezk`|XbjhX]cajpjxfibXd`q\Z^htrdZf]nX^eedgrf\a^R__XZhjc`lW`hddcQatpa`n]waXcd`d\Xbiuh]tg`_mdaWc_bbcfinkh]V]aq__ydZcgd`af`cf]bgXgUgb]dX]enaUa_^oifbig_fbl`kafbbX]ZdrmRh_eabfbbZXa[aZf]Zxwkrx\Za]gh}d^lvb\ab\s``oYeLpbdc`lcjcxd\glqa\^^ebrUqba^o^WjY^eN[poPeW]mcd|\_f[[[m\gsdOtaghe`Nmbrf_TcZvh_jVOVp^kToVffec`haadZ`}g]_bTpkiaXcZf`qXN^[kgNdf[fMWWn\hZbf^dco\co]naOobVh^\|Z_lH^aVWdembu`ahAUfW`oozlg{jQaKfb]`^\bm[dsUtNbWuvmchpfyiraMPmqauZ=_if_]|S_e[iTkksadlhLiiYqYadZmvlk}gf]YfQgkm]`sieg`UQxm|M]Wd`_Kaa`hl\``bz`kehwJVyWktoZccj\lbgaQUahhsnce\^d_T_ccN]Vc^\^qrZ^VZYqpViYg[bWraUen]`r^mV^i_i`hoen^iVZ`\nj]hfeXcZih_[gk^rfcg\c^X^g_c]koideljcn_VubqcPjh\rYalf]oXcU|cXjega`VXwfayg^\T\uVcrsbaSji]l^V]etbWi_b^Wsl[{[VjZsc_lfa\g\cab]aqjahlh]_glhVfWo_bk_]`^Wbd\\[_egp]_b\h_rhh^\Tqaai_bjielbmNhgWu_aVngcrffh`TlYgi\n`^a^\XWxt`Ygh\VjZlh^\`cwrgM{chtsVceb_gdeZmd`__dnUagWjWU]ib\PeU^\e]TinTlyfrfceaZ`fs^nZT[cxYmUuI\^dfgnheli`mcdv_dgk{gbK`pfhcskka^dhtmehlnY`b\q`Y^[bbidfi]Yeh\\eh[Ygd]iehhgel\deje]\na[ga`e]s`mobpiXka\`]anagY]i\x_CkbkhO\Xf~oBgnjahnVrqcwddf_}XUZmqkXpdYqZKYqc_ks\Z[d`ZxgisJ]lXXjx\aRfhkcaMch\A[oacruOpgZZVbz]`fuX^[g]f_d[^tbb_Oflek^Yzj_id]dRchj`OZghcr\c`qUK`^h_jla`sftPpc]Xg[a`[_pqd`a_t^ZbVfbcnygmrf\ri_PS^t[T]_q^`Y^m[mRj\_mci`PZssjgO\frfaVK\lho]dv\]\cUq^^g]pX_]_]QZlb]ihZfl`_k^Jai|sdUggsRYXijleaaeYkap_Ws]Wml[bqgczt[^pW=bxWchio^Wbgn`fnpaxghd]al]fhNsa_aeUc^a^ncb`a`qedgj__hpiYbr_mV\jigcdmm]ficdg[abfffa]keYacb`ZeWiYicelsirpnbhe^cQ\]hibijied`eYdc`jf\dW^th]_dn]mgcn_`eihYkliSbnTigaqmSq^gcSXSf]kah[eXg`jcZ^[_adUTc[_]VancmokZZdRWpxjbMR]T_kwZWq^`f]Y[hhvXfkk`MbX`bN`]wBbk]Uof\Wd`Za^mgbSeXffj`eabfsYe\.wayK^p_dc^adiTTZcj`qgM^Wl[a`pa]w_Xt_ed``@vbqddleamcUN]XhcnaX]feb]]Z`be[sj`czaqS^e_kq`bleob|miUn_cgWg_rb_J`\j\p\dfjfnUq[faSZcjfN[jltld`b_eanZclZjN[c`aWjcjcdiXgcbXX^cW]W`eg_hg_u[TYghkZ[^lo^`W\hc[~fk]dmVQjmcRam_qMseLmYag[_ijj`wj^[bdT`b]Pbbmoc9kap[lXcZgljfo_lfreonimlN^w]~i[al`~qjZo_ufo`tT|]R_Da^\i_bhueihddjha]{dn_WxjSO|VXfcijiceywjb]]TngQaegxexTWXbo}foMicKik_izUpZYmgaTdiQZo_wehp^_f]]XhKrgjmbE]ihjS\LzsrvX\YwmQil`Xhjfgvnrk^eaXe[reakc]tRZyfdZcYZcp]ob{mwd_[gb`s_fjd_eNf_qn_`]W]gTjYbmh]f[ujlgXa[jetpjodcgefgX_Ob^]]e]nhkfQhid_br`halZVh{nY`j^mZk`fkd\XjR^jfRfcqZKb]`h_YpdctaibkbakfaYes]QglXpfW[[jxh\Pg_abfGWZbvc\RjycyQ[T]kq{kanem^RmfYhgOZchtNs[Xlnrlbg]mejZ`bcbpqgdda~^jdYg^qm^Zc^`c`jOUttb\Wkb^k_m\]k[\[e[easfbhW\edf^azr\b]_u]hgiY[iprXX_mdn_\h^TwVigckUa_o|g]ncm\n`gcRlnd]fbehXj_mTk]_`jSekZ_`WbVX_WraYab[Z]c]cgk`^kbtkgs_deb8bkgi`^XigU^bfaLWc`aZbvgac^i_lakohhxkw]hi[U[]biVgirmjIgcbfrlJHsohsj`M|bkJsk`bMfm_V[Hkj`jdlj[di.miBo\X`~`hf[bxag[e]Ca[ihURYIUkacndYb`hlffVaSigbemW\eisYhea|_UxtjPupYkbaa`g\i^]vWberhq_bWia[b`]db_`jWafbacbmdTFvb]hTncoWdY^wq^YXocTk|_c{uiqrf_[[odjzscDq`ZAwlp`dbt[x^edn`YaX_hdkUXe\lZ_a]tesn_qgXduZSqro]fUUmobjhgjWT\Xd]eUdp\ajhl^giyXsRbdWg_eQcVeiTfbg_Z]kd`d\jiel``bmje[htwee_g^ihaamu]ktffomkn`lqibb[mp^\iYi^g_pdkalkj^hl\^gmfop`[cTiYoczj`nfTnkm`ajNocsbjikU\\ovobctu^Yj\pnYk^Do[aXqhgl`jeRaugdi]gnc^[cYd\]gZcgecuilgOac`Zfndfj\Uafjmamd`wfgmjfeb^s^O\djejcdc_OKekk^[cXigji_j_jf\ZmowZplcf]glpWldszit]hZh`ZlsThV][^VVak^rmfgczf_deeMaVdsM|Vdhc-_\VkfXso^gna\vaTi\_OakMct^id[m`hgTPaeddaXQd\ee_fbsmkvsb_\kHYoV`ga^oa]xZiiep^f^h[aY]kvth}jsbbpnwk\awfi^hugbc`qj{gdz_e^U^YyYjmlXiiWUbhmt\jfl^dq\[fehxlnmdg^c]C`c\bcafvhlmh_lZYgig`Vn`[jhYZaLl`djmVo^kf^[QeUgeVhi_[`a_Yij\\oPepfgTidWdcmccw[z]xc]`fhjvdkio[dbSgkOgWimshd\Wd\ZcVjZVOamfT_doifoYnlc_ubpxdtt[Zcbcj_YgY\gp`fIja^g]foThbXMb]X\sZgiIbsj_i^aiddUoR[I]b`eUcugU^__fi]b[`qUVeigcP%[jWntVkeKSY^xBiWqN\pIjbYf~QnK:cfZfz`kQ}lhjjr]pY\EXYKQoPy9ecmYSc~d|jJZ_Vmg\mCwis^fgc_ak[\h\a^mudfuzbcaojidQUNbhd[gdnZVyek]]tgcenf[eam^e\\`__rblmhl_oX_cm_gecWg]rZ\_^k]q^\`^bYpio_glbZX[i[[n`f_[kcl_`ekb`co`neir]fdnVeaafZ[qhy\\bmj\mao^v_dihhcdeeahkhbjjc]dfjhYdcqbaeiZhhftaibfi^hjqe]^bg^c`[p]agX]s[iW]T`i^YS`dZn`ccy\mh`iF_gdZUMRghYjl{Us`ecdi_qhZeyZDq``f`p~tWi\^kgSfWaelWpijzfasZgchbbbnhnd]rd^\ZdlXqcgl\`jbralZ\mhe`g\hog\\\W^d_Z[c\jboedZNZMfMf]j]bJf_awe\LtQYrtaSnjTli^y_`ipXd]NJudQfqNz[kpates^vk{^I^gduyW{g_`rWjytZl%pS^Y[U[ZVw9OnKcM|\h\jceEkOaFcicImwmLTzITQ[WnXgg~pt\WgPldPoixiah^n|doZ`:cZOTjjN;org[gid[`bVccS\d\VeaU_k^jtZ`^khjdc]bhaaqR`aggg_hgj]_dt^c\`_cmgafthijep`]icl{Ya`dgpcjhfaOjgctithggYgYi_k`]cjilfZ\aidb__TX]afhh_`hZb^[fgddkyce^Ya_bw\ca`p^`edkd]\a]dabiWvUi]WlZliaf\MfcctifirdbtWhoelaZpodmogsl[jYblbqOcbcjc<\aau^mgpde\Xhl_j\o\g\k`bfbgjZ]aduffacYMX{YoW{X[Lgf`lc\f`\[X_b\ba`bbi`~h\UnQOidce^h`e\`]hbmdPiOZ\dmjie\lblZIpg_dqhhQldV_m\ahodgllhjpjYf`b\bk^ota[ZbLcRahoQe]NpYT^\cUif\VJSm`c{`a`e]?QtXZ`[b\inYms]b``NklYbYZianfop_fZ\WfZkfieYfzcno_^V\YcNlPmZ`o_jZreQUWabva\eon\gm[d[d]di]^fkbkgb`lwudsb[ka]dZdebgmOubs^eeeb\skqYYiXoE\b^d]]iWhU]pkUhgM_]Ocj_\`ba^kc^lgnTt\gZ`tkm`W{j^Wj_pcddjhgtfjU\h^`vmfhkde[fUXWYhuhqf`vZkbhbV\i]gfb^liibbgcZTZb[[h\q_lingeW_ofdqjfWd[Xgi_TiodQUlfawll\cB^t[h`auUWe__OjwVW_^bQNc_oby_iV`kfUomaM^tiqVdK_Wh]hgbCob\d^qhiZifYah\oP_Schofng`dM\a_fTqmdq]chenILlU`\sg]Ve^al`mT^g}i_fc_lRcmbMkl^Uj`jmg^mf[`kTihbZq`qV^eiZYkgfefnJOeXmiqZew\d`Vso]igQ`gFbZsf|o`t`eSmWSumM_^eoso`Zhaabhfbfacg`mc^TYddgd[m^eha\`qmg^aqeZdjnl_`ir`bckp]gYllnt^jdiq_VhfUety\bh[a]QaW\hUgyud\hi\ofdf]Lde`ZpdmgbZoNuachueXWReddW`ije^n`mfakp~aXQ^^a]Tk|pW`b\`i^`_okl_W^[}gZc^nf}\cZtahi^npxVaYfs]j\ercZhtXmbZb\^k`e]se]b`udqbc[hTnbtccXcVgXZ]`m`ceyijPQoljggdkh_PcK\XVj\X_gctenhdgUuajMg[hkTlp`ubZ]]YgsTbio]\Qa]`TYkgm}in`]P]nanpKWhea\lcheYckhyngUeb]cfwiabcX^kV`^uQm\h^ya]vhtdj[`hYWca\d`YT`e\Vkd_Vcgf_gcv_daph\p_`ld\dUVhcl]b|fYY^hnv^]c]_`fqO\dc[ikbaTc[lpf][`eVUeq\qjfjhobZZebZ[h\eh\aZl]cV]WWlliXXdb\dmV[j^jZhUfopk`lsd_``_jWZ}Ucg`ghaUg_Ubl]gmbiii[[VccmmpjckdagaRscka`lWeofeifu^niqbic_^`UxZ`r``lhnl`tT_]bzbfq`KkUOckOtYbjzqolQg{Z^TxdJebh[weud_bNj]X[elRg]YPHZq\id__qcoLbfhhe_mYf_VbnjX^ZgRcofj[fqXoh^QVl`YhV\eop\_\`obabgg_hfht[me]ijYYg\bo\\`]wbv`ga[gdigdf``nhbVecjkY^qY^[`gZ^]Ug\bdddStj`\abbcf_aiwbsilgeW`Yag`eeQlj]een`ged_w\WZlbokglahle]f\^hae\n`hneufc]qYXd\Wlbfx[cc[fYdjomYbf|pfYmZ]safZa\`eVkss\rehhUeelRx`Ybnbckxfe]`_[miK``q_W]mtW^`ld|akpcce>jtUidXhwm]U\hade[XNcjH\_ajiYicjafraWPlh\ke`gMM^oSgdm`hc]]cW\libgffyrp_wd_PhelgcjdolK[^ZqbpgaTc`hMj_`_\|`[eh~h]ZZcXwOZg`gSY`lo9bcZeq_k\^jmilYFq[rgMcaTgfiVZtmSaRR[kcHQjun]u^YUjePfdw`UnU`\kayTcSAwzbe__cWrhbeunpiHr]pZZkTaeXUDUTtW`ncHgZEouTceiZkmmYh]bfifo^\^[_geVlQmfffl`ghe_iXQMfdkZ\eZpbYX_dgb^Q^Ul]X^jk\^ead_]kgfaa`raalnghbWaUjj\\gmU`mWn`Xlcpk^xh]h^``]fcmq[bWdYbbheq[pglhh]hm^bYfdlfieajcffucflbaZmhawh]ccUpcSicug_nji[^nlhd_D``YRu\zcTu^kfaMn]g_aZhcohyfvdaafehs]`ggccVfOWdRwcf_j`P~ndZc`akUdknk_liv{mwxvcfdorwk_^nbhUl^Wndoe[gZkrZ\cOsYo>rkk]^`caimio^]cYn]VujcTZUbRi\hhyXll^cgakdhwj[qcRWw^X^\lee[Xeob^ab^lZnbl_cYbgbew^_W^^a^^`ZkhjRP_uknf[^f[jfYfkuo^YfacgqmldcSb[idqlpbiiWSprRaamdjckWbqYfg\loeerk\ifhSnkd_ef^_thqpnqnicjjcYaUbhkW]j[Z]da^cZ^_a`[io]k_b`en^eibWY_ihkKfca^]^sbnWXaYZ]r^ckfq^\w`_agrTWgQ\gqp`[ahfeIgk`UZXfe[bVZUaha^o]VVaao_ZciZ`[\Xe_StekXoSceg[_[c`_\b^iik^Z^Ydhgoumf[pdcndrfpaabm[cdkhbgmfYq`olhkZ`qdriYcedYhbajfee`oubagfecV^\kYekfbchoZfa\pfaagT_i\kY]ecble\eekiepc]kquf^jd_a^d`mZo]h[dghiRf``b^Z`c`_mdeli\dc`gf__k`emfbh`aymnf_eVf^`hhV\oeYlkfptdbvbch_Y^f_Raqlb[dcThocsly]ltTb\e_[hblbibya_ibd]ici_rasXk`Xidkeu_iggociaYnjfaSgahdhXcpo\kaoedmgrbkjgfhbU_Mrg[rk]fi_hgelZa`aUhbf^adcv_p^agmr]_gd``ci[bdTh_cgf_ha`bmccsbb_Y]T_le`i`b]]umd[N^f[Zgob_Vee\g|``n_\^_aXYf_f`mYdX_k\[i`dibaX]jbbbY_e_^_a_Wjb__sn[gdbZcearV^^hj`iaha]lo\Z_i^dekbkWbU_Z^][`ZS`\^d^\[P[vbbadX`gkra`_RDjrFmtEcC|lNWbdVuC]ZghwONNbvbTins\lbihrzYtizbc^dyhci\pYcZo\ha^MeS~]m_P[g}\Zo_d][h{odbcgXjk]dZ|SRfS`&Yg`Xakd[QiWl~YMSj_jm[ch^`YpubVonhdQennDbbeoi_rg`TvSb^cbej`dkquehZiYensg\amYG`\]iblgW`Q^WWYk^[mkh^gOY`i_Zwgbg[g]sakgk_jmVfmhaaUalgafUbcngbedY\T[eXdadk\jbcnXUXkojhakehickk]]hZjne\]zah^o\WX[b_uc]ddh\bUd^d]_ocZ\^Kdhndem\ge`eZkc]^b`dbWsgcd^wd`RhrUfg_pbkj^ja_d]^hbasdc[Shchikid^eo^bu\mYgQX\cap^dSm_lppojaZZTnbff^dntvTqjbX\qk^ifgalkojUjlcgbegWfgjbaajlZkg_m^qN`ppkdwadsdY`h[]amoh]k_cky`^_zjXm~`Yjhe\naepcW[flNY_ihI|`_^nbrbZ]qlp[]piQePJhztbciakFUafgVgh]ddUmdbUhcidX\`[e^hhkaeca_laomW`vggQg_cpZiX\Y\pZfmehaa_uu_]ktdyZg]^_`__hd[]^docdhxh[fQcce\^Wc`m_ib\c[Y\lhsdj]Z_hmajcaboi[]fijRn^e]fN`XeZej\^gpZcZ`kLoZdnQNdptaOodi`dZlT^m\^naa_\ebkdWchb^_aapulffckfkb`_e]mg_^`k]`fhX_]lZ`i]ebekYOum[ZT[d]lcn]_qXh[eXPyfeVkfBRm\`XXlt^v`iyoQYhXO]iYcUhgkQ[ge@F`vWsb^l^r]cXZO[epJZs_U]\jfiP[lUj_fn]\^Yu[jdZjj]]n`p`eVie`]\RidpdXaiQlsTY^iZYlYgj\]dsZhXo__^]eedg\djeebhclg^edkgfdb\d\aieh``cbjre[aVjh|cbdlZ^fv[^\k]]Xd_\\ecUfbifjZl\f^jmTldokb[Xk^i_kjeuncid_bfj{]mt_^bXUkb]Zh_qcdp[^^\`dcig]^ff`vbgn^olidZecW|dfmgk`deVbaf`gmlQ[ghte`d_tfQbcZ^mj[Thk]hfml{YY|qblk]v_gkT__Yn`rx`jgZahRY`br[oavf{njddZeqebnefikYXakQ^hgw^do_cpg^iaJ]bjhWbjnlnVTXZ[ZbYana^c`S]XgiYZmVninq`_fmicZhdlnbpRh`Rdi\dYbouamcf_ZlYdp[hckwPdi`lNi[t[OZ[WccirfbOcB`Xa_hTjdp]\cFjhZSql\}s:_]d_Vlcm^h][WxsWUffU`nY`PTDiZ^_gvfhyTfpy]tb_qcjac^jbb\Ydd`tw`fW_dkdifj^kWckrljRc[Sj^wXfsZ\jYj]b\ceqW]_cilde}mfiS\]h_c`aZkhRf````j]e[_^dkdm^mTZntZ`cd_^Y]f\^fYw_Yui\e\^U{_kehaVp[cY\hiojkk_al[hekl`djxYdr``pch_bngreaja^fcreTfbWgXpxlcVef_Vh\Ua_qeeaYc\X_f\`h^\Ye\b^[mcdcfdcbe[NoR[c[wci^ieWtj\eU\YIVap]Yo^sOiooS\jl]\vUfUm]bie^o^kZecRegT[mYbkZ_df[Igdk[Ui`gde[_ba^hWeYXke_kpfj\Tldp_Zkck]^B^ebV_h]\Wc[X`ll`li9Ek_ZW]kmqa^ecjVeRa]Zsfjcxehg^[]p`UlUdfqPdhf^geVahd\ncfTkileZ^f_W`kmeoacOf_Wign]n`lji_k}r_]k_h`df\^\bd_VYaik]nnech]n`hizgoko[jbfjdgqqt\W]k``_kfekhmeide\ieplkb`lfidrjb]PdgXWYfn\NjgX\IU`_^W_bpTm[ZfhhnQ@rWcbkTgZvkdwMh]_lS_[z^kVpa`bZtowljftelerco`YjfUsdof[Ugnftdndm\UFO|pqcVl_ggn`dgchg[a_htXdWbq_Sqdc^y_jfOe`gZ_uvdeh]Yv]vY]uvYakbije`bWkYTf]WdngWvYS^XdhP^be[h]q^a]`iSX_zYfeaRhfn]fymKWjp^xYbdomcWq~eV]k_nNmcp^Wf]edgNk_f[bkg^r[[dV[[ojapSk\fc`b[`^adf[^idW\cgguoX`pkdVYacTY]hZx_Z]b[f]jdc`cmgeZKkadlRict_[s_\sdcidcqTWcW|ZVc`e``zY|iiaiih_defUfeRfjW`kcZN]qicnhWegR`_ggsaa\_]m\gd{iuRbjgjtOimc`[Yg`tg^cbo]c`gmU_iq^^]medeki`atd`njbkudi`[PikVi`gukj\|kbiIZibdaUtnk^ZN[[TgagRhabengml\a_iqtgbrlZ\^jk^[]cmnjffb_]7kQpSji^xk_`nWA_Fgysef^RRjjb]ii\d_S\V{pdejNhddgf^\ljph]]mWiZceijjNgd]_RicV[_`NrbZ]evbc[yjV]j^Zwcaiifdkh`_ceb`les^_crcbhqve`haklUTg]ThTh[`Yof`b[Qipadknbc^[gkd[_x^Z_\|VoXd{aVlYneZigR^iNie]w\sfh\xw{it\cfhX\aejU`ZZcdke^[p[h][l``m`_k`cdldcZu_lnt_[ah`gt`a_s\ca^gahdkXb^cgfnbjakbe^_go[b`X`o`qf]ihQfoZdWdjha[VbazSkasXNjwNsezS_^r[Wa[Q\l]YT]T^ToSaNacffe\SbP^`yef]g[ciW]t[crlT[sZYZbYo`kbiYe`U_ldnx`b`[dbecYlbanb`ZUiebpYikcQZ]lcccdhd\ib_`d{tqeyl]p|jeoMs`tq{dgyPQ[gtunf[jwcWrSls\\aicUacVk^eDC^ixmPp\ZaPOdzQKoVbW[^[Yobazba[eq|flNk_j^[cnmWbdoo[\lWoo3djzee`jcX_\_etrjfcmp`oTaXfpZZXwkbbvqiY/oqZ^iXW]XjS]ddi^mh`wi_ZfjWocaa^ZmebYVcmd~jeca_Up^Sofv[O_ld\da_^epT`cTZ^qWZgZwpm\e]Et^nWRjfj^lckhk^cNVibGUYb`T[fza\WcXV_dhnglku~iZa_\^^gbXdbd_legknblV`t`_o_e[MgNYde_i`\b_aVPiZ_^\_]i\]W^][_`ie^hlnceU>kjaWgmk``]jUoMiQc]|la}lbacoWcI_etpl`X^e^[ZjbbficTm\G\mcgWeiUlXcW\`^W_[fa}d]jZUqao`bi\fi]_\`YlbVv_OgbeqlWp^flaIZlSR]eTr_hPj`i\Xa^YtZa|N`]md_bh]\YdTCXmecWd^fT^tMGmYegdehtjs_Uh\[`kdYbt]hQukL]hM\ae\hdyLbo_^k|m[YjYXqms_^hZgYekYfdSmj\b\_wSNbmkgmS]aR_c^^dpacUpbip[WcXhidYiz[lxsVv`Wahlbe_qWYgrc_cnq`V_oiZYfVgSh`Slbej`[sbvnOcfZf\[]egV\fml^paT^hrStdZaX^vdnjaV[_`fQl{ijtRZkd_nd]ahUcobXZVbp`nX{hhf\ideglZwc]Z`U_hjltbicQ[mfjbq\cY_oaWja`a]ORwuZqgg[Rh~dZgXe\na[ogu^Ze^nxVeuchdn_cbZcn^_dbZ`\X`r``afppocg_wc`mdoVZs]Xj[W`Za_^Uc|gmbbUYwb^\]yqjarZd_d\hXr`\c``]h[_Zg`mUjbVba]n_jp^a]bjbdZh`]hhjjtWUif^d[hg\bhpnigb[fhgZ`e`vndbW`_j^cedhs{`nxfiZejme__mavnekewc\sm_g_gjjeca^`ph`X_Zald\dw_W]d\gVlWj_\ifiix]cdzgqmfZejOpjYf^\gf_ezcce_s`itk~a__ojtap[c_gk_]\[al[hkdoofYpgaq[bkqfrcfaVd`c[`ifQddbdflg}ef_ab\jko_icgbfY`grd^pcqji`kdSdYribfhXXreekXbY]myboecboRpk`ebaj]nX`xaOiuazs^Sg_Vaj]X\pbqb]pijW_fkh_ophfcljki`kqahb[Vu_b|kT_cZft]I`dpdxfT__ipLf[qbbdabcw_i]cge_hffNcpl^sduY\Z]`v\l`bhm[pf^dcgcf\[mcRc\db[[jjc^bi^]pYdbe`up^dehabh`[owjW_VvqZbckjcVgjj]\ka[\{\Vec^idx]_jgbla\_adfdX\eltrgpgga_oi[hZ_ed_k}rea]_h`k]cgXRnecibbkZceb`^jhZmgkcUi__gs`_Y\Lksf`_WffgZnqnbdvhRlgdl^^vagU^ca}Zd^S]_ioeqV[deXamPKhpV`_iOXan_pfa^YbV^l[hsnhnnYhTjdYcmdp|ae`[^c]a]r]lhofb`[_sa_mfVvVw`sabPXvY^zaPoid_Z^cX@VnibmfdmfdgXi~[\oJubR_WVRoXXablZUaVi[k@_f_z`aedYecbZJZ`mqbJOSh]i_EbjlZZtj{TWcu[Y\kcSFbV`_cbUfnO]ULbgql]a`l_][Z_`bkapkixkonhWUVvUc]pe`hgddXUsj\h`_j`jA[\\pokZkTgR`h[|espnh`ngsPZc^`[XBisHVnbeegYV[caQ^RnU]cg|_Tjyu0gl|j[ao_Vg[_gqjd]SmjVYfhGg\P_fo`]UclefgiNtv_n[d`j]^eqgGW\dpeymkvhca\c_`fTRaqfjr`wUe^ahyh`g]_mk^aU^dadc`nb[lixumjcRcdbVj\cieXtcwjg\dtbfgTu`Zmeh\\^Zm]e^TbjcXY[dhkiZc`^cj_cgc]^`eYgX[q[_g\jZpbSgreVhh[hlhejjqu_VXffjq_j`_^^Vl`tmlhqkbifXg[c_kj]abUvh[^kh``fUqi_^okqc_mtbY]jbrp]ki``O^PcXP^ffkkymImea]eooZms\kjjm_^xcQpfT[fR`]_n]^Y[_dcb]V\[^VcZYmfmzW_[afahiV`]Wk\n\fld\cgk]scigqb_`mfcrjjietlkm`ikqcd`ch[YfX\^]bmQwj_fs`Yf]X\kW\dl]j_ea[qpviZydlqNnUnVill^QjT{`fa[gih`SpYobd_hlW_MOO^jZXbAa\^_a^fpffU]S`q_Sl]TbffQsZ[Z][ts`[_ec`\KZR\eoitN\bV^iajicu`radgVm|`citbl`iHbh`eX^_ohcbdbdm`ekV]`k^v`q`[ikXL]TfngUOlWb0lfnWXikc^fcdedd_cfbpeuesrjd`lncnatshfamWRt_\kmZX_keiU]f^W\[ajj]dqigse\igsiHbnY[RlhhlVs]Vg_^Y`^g_^J|gfbleb]bddme\jd_jeekchgZWflk^khZ]W_^VgT]jc^bcHXU]mXlYZ]Z]TD\mbc]\tibkg_S_ljnjvad`hcdmjhjWgbZqpQid[`[\kU]d]Vlee]ecedeec`Qljdc^febchchJheZmaaW_gdYi\`gh[\^e_d]TtmckkYrVQdjie\Z`[_kbjbUgj[]_agZZp]ecbmZi\ddY\bkcaafzfQbiif[Qdj[ereUe`|]Zgdo_VYk\ja``r`Gj[]j[kZYdfWawWeao`fjYnib^icRf`XkjhWkfrndwbXgmeSu[cem[Wd]b^_nr_^c_dhXgaYl]fek^eqW`]]Rp[riXc``jbxYKldhmaqlkR[ifd_fj\vjfZ_aojhf\pr][kZq^khzrqfi^cTsfi`kdmlm`j_caqib^^LZPj^YTc_Xkfebcb\ibUn^f[cfPkkkErW_rhefPteV`\[g[d]MZ^]dZpabzl_nshcpYaXkcjcKucaitkfegrikyZdp_c{hbib^]hVdhjeeWTjp]afumfVnQqubVnPaZuSZ`Q]flk]Xohicfz_ZnczXZO^q\Gathc[dUfbidk3eapdUSnUf^`agmWkZ^[g]gdZ]edcfVgc^hid]d\ofqcYeg]]`u[gdd]XcffYchuz^ot~ng]iTrjXYi`ihbiosfVek`i[^XZdcedVVdXij^auptYdc_a@dhc_cnej[c]gWS_Xj_og`hv_ov%bgv_qT]Vp^[mN_X_V_TddQa^b`U^oc[[]bdjibbh]]giPf]l^\Y`dcnrlif_ymZY\TjbckcaffhN^ecZXecveshiVjg]aebW`c`g`d\^e_^\`Vf\[UaeeqpdqabegYTc`^Rm`f\_^ZZ]Xwimdl^kegikgqfbcp`sZaV]edSXVcVfmcXiU_aZmqXYbYfY`^d`ablGae\`dbmli^ag[e\``qg{`dX^{U\{eci`ipgp]cMraTeXSyfuk[xcZi`lae]Te_hhjqjbc_pbgeb^cicdfWh][VihXgg]p^dkQWjldZ`_jgbrb]j^rii_fm[Yhf]o\`d\]bdWZef[eif]adaahme_]ad^eaoZjg[ihWibVthfSUjVYYZ]iXgqegiedfcd`aiihe_Z[nX]Wjglpg[k\aaj[aaX\^ef\de`c`\jmhjblZk`WY`b]bYkocZk]iaYneYn^f]ej^ggjUheo`gn^ih]c_V_kskXhei^nUrk[e[u^Vbx_[\h\cefnid^]\Z\]leqag[_icdR[na]nof_ZdRf_fojbploic`h[i[[]doqbddlgc_^jc]e^ohvpjfnaW[_^[ehd^]Udfdffiklfha`UdW`[S_nd{fj\_TdXgfqdSldaXYakev`QmabnX^dVm[_ixZdgjvda`nfn]ey[UueQdVnhiUUg[]hWucTidrp[kkja_fkZfkl_n_hkTmYWqfefdpdhgWc`_mW`j]dmXWjY^h}R\k\g^\`HabelYgft]mgfb`niifneac[ibc^dblh`cps^^i[pk\]aebvbqaey\j^odikk`Xmj`\z`lehd]oeif^ifeh]foY`_ev_idSuWj]^XheY_pcXTecditca[kgck[_]_aaqlkyhbiX\ed^lagjdbpdeg`^bgjfidZxh\Zc_n]agiggobc^j]]a`cbfgbi[_fjci^eooe\h^|cdibbj^]bdrj\hkjapg\x\fcffVofiok]c`^db^pgZe]e]dggchm[_dickbcj]dijdOb_eadcrigcngdbj_aeZ[ia]qdTo`fjkafj\cX][]h[jokck_[XXcifvadoxccdcWfU]a`hZr_bgbv^d\oi^jkhacbal[qX`cZdr[ZiS]hW\goY\]dicltYbeY^]y[doeYqke]gbTxiph_^bYql]oSZalYncfYqgidea^\__gif_a^Uegia]m`cfjTZ`XjqZcpgpXV`qd_badmajobfj\n`VkcZug^{g]ZGefXVfnmb^ceLbX[fiiedjkcWrmjYQahZ[~]bfo[mQkXwpcb^efuddelUcvsy_Q^[ge`cboWgfj_i[[v\SUeSxV]banpbop`eefi]]cnbdeVmgVcdonvV\S_bi_ifYuJZjd\|mdhipegrV^kwYd`c^f\ifSX`ijr^cdb`\aaXceYW`]X_Zck\aUhisdcx_lhmOqhP_nU`gZ`_fcce_hfiecjd^]gjpcnja`gY_e`UmowbnejfgS`Zaa_Z^_ilknwcohdppsdUdakl]ZZ`cpRdSuYckeufjTZsirbZYjjxS\mafcSebUg]Xa^{bVbkgfYj]]r]VbSjfXn^a_jh`dd_dm`\ddb_dfkl[h\gcff[Z_VZfVZ\`g^ooUbibk]pbd``]pnXZdhb_v_hdj[`l[rb__`mdnfUc^ehgh`^ge`ZadOWcq[gdkdZo^ktYXagocgTod\moFmcgbiie^baoafcnZic^c\\fc`hXjRfa\RZyiU_w_iYgcd\ptsVi[VZ`grVb^kPhkahbnhedha[b^f]d`]t][dboYebsje_^cfoa|eetciUd^saS^gacfgnhZYlbchbc^V_Y^e\]m`moibic[_^x\T^\\Ydhhf^icbSd`bhcand\T`kar`_iddnW\[`qhXkgh`UySlk_th^davUkmgamnbb^\g\^Sucka_ecifd_asg`bX}`ejgpbfj`fjb^VVeje_Qek^fj[i^ZVUig[\bq^b^gflhkfZs^gj^dnb`[ZgdWgbcW\VkaWT]e_\\VachiQnpsbVWgXlihwWfqb`bZ^^]]kndlb_{c^f`b`bxun`m`gomb^UVj^^ga`Z]e^kdmWb`Yl^me[\duieh`hqej^Uahdld^y_^^feo[j^g^mVhbdTNYkc^f]chdZbjg_\mvn^Vcgf[[^]qegeZ`ZjihcYmZTnkZcjagjs^\j[PhmY^fY^hWPiyd]ukg\qd_acdcblcSjidahT]ft^kdfWg\q`]igY]dmjVhb`e\_l_laeilb^gb_t`cbb`XjYedd^^`[][Yi^jbedmecaf`di`aYbaec`oceW_gj_jacmego]_lhYddoWlfnqcjn_Z\ofdY^hVegWbbYp]bpV\_e^pgfqa_e^ic]`eeah[|r^gNeogTYoYgcT`dhgdOcQWYtVbeh][oe]X_gibo[kfsmaabl`T`Yod_c\Qhfn`b`ggp\nal`pct`e\dahflgfdblgmcdua_epfeoYc^Vk`khkacg[hn`lbenbWkg_kaW[wibn]w^v`^X`edyZiZdbedVW_velp[of]jaZnNSjWvljbg]me|jpUx[_jfleh_^[hmc^faanihse\`i^SdXbhJ`jgsci_rg]h_saagm[P\]V`S_hl]daQif`SRXcV]Xd[hf\^Zph[Who`mefVYdl_[]Yg\t^]WejRasla`\[jehUtV_pgeb\qblT_mjjgabb[VWQZQjeh_eYkfi[_Xmnpd\``nk`mc\UfYZ}_fgUcWamneYbDccicrYwcRaXl]bgfYdjslo\V`cc\by_tZ[iUOZuccg[daa_vhQ[Z[TMfZhudic]di[tnhkVsbObbg]eRqZ`fg_Vcg[hmedqlj_keebbfax]iOa[fRgs\WZ_lbm`iYgmVdpigaoi`zngijpoUiho]_fgXyQaq\[Z``e^telYjleceaiag^ctdbZ\[`iddefZYbsZe]fgo]kZpjl`_b`ldxe^hdmcdjiSX_d]`frftffaSagc]e}cccqQ\ejdh\kni^ea_sh]^dhZhhZaYkZW`^Xjlbmceofofn]Uqbb]m[h[`Qbui[VTff`]_sV`cW_a__rgsRlwcOUUYpbgPdp]bg^pe^ea_W^^mUq[bi`kkq^XaSaZXajX^sx^iegcfe]`_ufWgjadgbdiRjjodeXcbdj]d[Yn]d_fa_eh]gfabjeb`ilr[i`_jrjbzg^bfwogXfuadQ^i_YYWjafj]g^dnf`rdk]l^]i\ph]_`dao[|dgenb[bgOld```_cZ^`\hi^lgeZbwfXjm`iagejdnaWkmbRagmd_aYah[[\]]QXbYcaiscganp`qkkrceqiq`mjXd\[\ihhkbiiTbgarinJBlinoc`LudjMtim`XkqrKdOmeiiYihdbjRat4lf^{jujnp^c{YeXg];b|e]bUYSSPuc`ggPs_fejg[r[g_h^hZfpdnR\ffua`km`UxnT`dZebn`mr^eSVgfoiUfWib`qiecf\lgX^WeabjaVZTu^dSPkmtR]onukjo^_lmHg}hc[Vd`nfdmWmd\nghgZ]lUpUobi_bctfgdb_YZm[ehlaWtcr`[^feSeqdsh]pn`[mbr]`Q_gq[meWjdUZioViadvZ_oddg\kncY]g]sgi\ddSkk\dbb\]heg[a\mlleX_enof_yfpi\^ZjgmdZdh[afhf`f`d`be_b_^llZ^cdbUhWpdgslhligok^jfghkcac___llpp^ieWrarY\`Xf`jqforWg\lkr_bdqZ[jcekdt^Qi]d^wtc^mgkPbsZ_c\ktg\`hg\gbega]h_ejg]aiiX\ccfedf^okbada`f[ki^f`dggU~b\TZbi\hbch_KZekka`ZYenpddtgdmvZYja]b[bj\aa}jukg[tmysgXZ^e\eam\ab]Y^aT_cm^w_iqeqZ`ng`UgQdrfTpcbagKZm`hXZ`fmqe^\t]Rfdb[lc`XchaicTjo`]Tanafg_aUZcjhdnjrfklcgbcc^nxcZ`^aok_k[awamZoV^YgfYgjfmkej]dhmuocahgm]]s]jessqgjaboeadY_\qtQapj_hm\a`fhgalleVhai[bdrqfoehU_l^_jb`]ffel`bimnZSbicdhgaiYXcZ^bYg_ib`U`becW\]ebigLueYh\b[Xk^`ekacnbi^^baahe_efbkUnd`^s`e`uambxZdec]eU]^kmdxgdUcfR]ge\XWcei]m`mbjbo[xcc`v]otpp|^Z_a_`\bkYclj]hbeg``Z`kVha`Xdhbdt^jgVfiagjTahf^Zojgih`]Wc\[ehghx]_cUdfZeckbhogiZ\c]UjieheTYbJcJ]Rl[hkXudbhdde]i]aYotgtbcbU_jQehXefK][`i]b\^d\_T`qej`Z]ggWq^pmu`c]efmedqQr`_c]kfrXZk^demikbp[Zac\Jc[ak`^gbsRYujdagbZhiddc^]ea]oX`e[f`eZg]nU`fb^e]}Qce`bg_[baZcUomgdieZYaX]d[sdh]\haea\dnj]^kfmhacZdeeW`c`[bjkbz^\bngZp_gcl[bki_]nhc_ebb]egcYddghWgkufbjfedkdgaddc{igcmYf^cfe]`d_Tog{iRbcS[eZVer`f[deZwl`VhZchbf_oca[\SV`kSai]}^`moldWcabjmbTe\n\hkysSiYgthbY`VfcdOle`_\fVcPi\W^kXkaXeVmXbjI_xefdUQkeh\{lZ^i\ay{eenceabH]Y[^d_dkfjdkkYl^^`dZa_eIb^kkcmckmhbcdkU_eO`bQfbdseZbHYUmkncdZgiWhktle\hZ_pii^a^ebghl\ddee\cim^nOsYXfYZa`ce@TqfU_le_icgd_W^cc[khrcbea`PtVZjgSdea\umi`dfWLcIijl][ecie`iaiiS^gVVfY]Rgo`glkfWi[]_h[bfdW`^]crRks\iet_j_f]di_`ea^aefg`kY_^bilbeYkh_x`pdjhkpZj]^keatVc`]fhiocef\d^Wihugob[g_eXib_b`kaav[]`jdcYc_^`hedmj_cbca[dl[ldqf`gka^bidc\^k^hhce^_`abiZed\nWjb_pYjf_nee]g^Xm`lgfcbb]k`bhkatabfccop]b^md`h_[^`mgNca\p_dghaii^``k\n`f`cim`ah`jqaad_jhmid\Wdnbhbo`iWnilej^ao__Zch_^c_bijh\ijX^c^Flgcdgddndc[aj_gZfY\a`je[c^g`p_\cb`klbi`seUfmQgcb[jmolbwiVj]_qddi^kscb`b[bchceZc_L`[gcdcYie_ZVSqclpa^cscEt[qd`e[\g^\m`gohdV[ki`Z^X^XjcbgaYZk`claeea`iuoeea`lU\gOueMp]^vwfjdxfg[WhXqfa^pn^icjc`jamcVbb_defcaknxbhcZjV\kTj]dcg\k`jfcmc_^i[obc_\tK`^kaU[_Wf^cag[kfZXqOhmfbi`nZfdXgfd_sZdd]ueq]bxdaebbj]_g`bpjWfaZfegsfaljheWcSdO\hhbcfaw`kohgcVkdaeh_ifq\]gidXb^aafaieghdVfc^cfjqjdak^UZnZYgb[[XqdpuehflWih\k^\cuSZa^e\dgU\]]W`ZlZfbl[j[ah`YfifKc`bfYgO[Wjagn[RmW_b]U^a\kaSfaVdcNVZ`jkbb^daTLa_fcn`eubaUYg]ReZZcih\_bXhfehl^_cucbd`gjXgoaTgp^VqYnn_bhl_\p[a_]^kmpOdccZWbklpeklXZWRhhlblhr_gS]mq`ls`djDkSugsq]fhcWj^OoiIcetfet_]kgehkk_kd`e_ha^VY^`l]Yk\nbX[\m\\_hh``bgio]^hqd_ihvfgZ`agj`ge`\]SpkS\cklZ^i^h]^gW]u^fucbeacbqj`kgZebe^lalgoebUmk[Zgija`Sc`k]`eii^hjnj[nk}f]\aZ^]UYdtpTbe[Z^^ncece__a\ti^hckyYk_eade\kjrCZajck]ceyd_emZfSfmhclWp]lfeifZfrig`gNlbfci\cr`^i^`eb]jpdnTrqigj[YXn`Sgcpfaab]\eY`nduqLgb_adaaWc^\apitfaobc`vSdnj]`~VYXdlaizchg`Remagt_]_e_ZfecgWan`iudfe`Xoieij^l]Sn\iam[ec\^_Wcfashba[nbifg]w\[dbpa[feiXblgejau[a]phdrcief]`Z^qcgakegnU]^oscgc^``]jXbUcbin_e[]bdoh\]ceZck{]kdfjcfcc^jcXmb]oec^^^e[^_]Uffk]cmcgdbb\a_oae`odjzhUq[ccaqeU\{kcd`omd\iQ_Zh]flbhe_Y\b_iie_^Xhu\abVmWmj[`GYrWdglz`denfdm]am]_VllXfjfm]]dha_jiWj[cR]we^h`Xkg`jvndo\[o^g[jbN]Yijwgldga[l]cr`bVZeaTOce]igbYhlbJ_[dbn`cd__c\fuYdgVnOhcUZh_nabc[Pi`Le\iofXcd`_lgc`hg[fghn\iech^WXaYdb[b\`mat_ib]yjdoj^ga`si\Sagga^^kadb\h]]ZZ\]bciiSkse]a^chdfc\gt\nrjmgZamd_bc[Yob_cdgZb``clkWbg]jbjlfjmbWc``c^_`c]dqdydf]k^ZbbXg`ow]^dZgV]fYe\YrqlksYZZseenQeZncgslp^cbf\[ahscldZdeW_higgl`Y^jj[kjh__hx{cphhjkhvlbkibdhSsaVkd_roggtc^ffcf_`Qpn^`iikdhadbjplge^jgkmlidiZXdv^mqehuk`bfdidfkng]agln^ifh^plq^knglhleV^el\c\YkYiYec_ekZ`aq]YjaY`e`XfTnbncV^nsV\a[ZjdobihmgdcXpbV\^co\[eW_dm^a_`RadhPeaofepakntl[mnc[`n[a^pcc]]ORdc{i`hVcYph_bjricEbahc]ha\[T\]\_mkclgcQf^^pmSggkX]dpWY_cbk\k`^hb`j^_cXie_Vecd\i^g`VZ`ccZmbZgYXfebke[[`_`][cuc^^ojb\XflZdc_d^dgdcicQYYmx]e`aVdp`dab\_gqbkhaa_`cqg_is\d\`]bdjbhcc^joy`nie^erYd\dhjf]ibt]epag^kjbvfc]hcqmSjaijhakkZ`ujekeToja`_h_r`_jgkakSufh^n`]ncgm^g_kalsgi`cfeff\_Va|g\kaf_{gV~seZceZ^fgcs`^\`oqkpnrbfce\wjagvig^miTl\obTbVmz]Z_gnVv`tc`\``lbemqeg`Xnf[X^hZYe^eXeb_gz\ha[\femaZplcohSqngd_^ighbcpavmmb[YefnWtb^]^je\^o`eQd^b^Y_cjmmk\ZldnmdbdalfVl^ybdWiaZ^hkjhfbe_cd|k]`gdgVkuWg[d\dhnZ_yZe_[iqf_slac^lWjgWZ]h[bucgndv^nel`\YdSZ_ibgha`]l`adcgiZ[ehn]]\ea]\[c`k^Uajf`Tc^]\hapkfoV]_a^`dh][tkcZd^m^jfcTk[_kbl_]dyn_Wfhc^^aihY]U~XS__^bdWW`d^^`Wfl_i_l_bjP{djil]cU`abZcS\be_b`ff`cZign^oigafihjYZchbaeqW\bbfbgcqdpXa`Zf^Xdehga_giY_egbjldakeY^Viie`bbg`emngUbg^gbWh_c`h\cg`eeafg_gfakb\ciahcqgqlYgccac`am]j]i[]eg`Y\haaT__nZ__af]a_d__pj`uhX_l_deXj{bgeaf^i\`ha^[dd[ki_rvbgz_bnd\_cgQscme[dg\ae_danVus\d[nja`iqhj_t[fZ]i\nehZmgmiefjmdfcp]gimi_jdXicjj[f]jh^ipsp\scihembmfjhgnkl]ZQkb\v_hbffaaejdebf\k_gcl]bmYn]^beyab^`\]gdbl\P]_gfadhid`jbemcb[a[Y`ia^_d]acli_`^^^aZiha`Odechmc\g\WWZd]^gdm]rddd]ca^`f_id_Z_gd]dXYkZb^_bWee\gut]aaXTce[qXcchjc^V]eagg_]abZakkhrdkX[X`fWZ[Y[_c^ZbbV`ubj_iVa^lf`eg^Qoziya`WPerVebif^ZY]VH]oUXPThgdR|g\hhM`axZmPqeiar_VnQsaRGoaietWidvflOeqXxkWiTVdSZDdg^[itgdpenlLgiVofmmPlji\bYfekgfdefuW[afWR\i`\_inYbjT^\fKorPahd_cT_Zp]e[lYbnljXOcddVoxnPseb[EmPqmdunk[jfbx|cikpM[Yuen^c^cGn]]t^Vobf\V`cdWeh_jc_h`cspwv[edqgili]jbid[an\GaZYYfehY^WY^cclcjc[mfo}skYX^vf[`eV_dYrJ[mZV^o^tdeogm\Nn_Ubhl_US|_mh`wg]ffkN`mci\dhghjdrki|[he^Tqgl`Wdd^Vgi^TloYkYCajV]hmvb]\bsgk[`ijq__iMa]\jS_mfc`kTjdracgZ``Rk\jZhR`g_\t?lnk[Y^jjg`bZ_jsefm`ohUZ]hZnikVsslRv|aYetpzeW|VYr]`\Tl^[d[`d[c`_^fcg]h_YbPqb\`c\p^gfhm`ehl[`ag]p^gcfhWd`g]ofefn`^lw[]cnq]_^glrh_kded`[ddjdjlbdhh\ngcjd^mojsXjf^ltk^h_We`gagV_ei\el_kcf^Ssc[_][a\jkTZh[aek`qnkP_[mg^S^gbjejhi\j]gedVpt^kw^ZbcZe^\wTSkWhgbaPbgcVm^_reiXb_`bbc_Uogieo`k^LTxW_\ad^pc`ejbbcb_nYtgzj^n_Scae]alacei_g]`eeXip]ch\tc]_fg_tMmae]`_`cVM_fZSdfjfar^W]_[jaj]\aihr`c`kbUctbfoTfooahzk^hYlh__k_`cq`Yk_qd\jharkfViZj[Shjlkf_gXml]djcodec[Xehdahcak^cQeWf_[g]n_hipn]gwh^cm_`f\acZgfbf`k[^saff_h]]rhZbj^^_acXapai`fnb]c]dailiiiT[XrfmZj^oktdboTgXfdori_]mb_YdccuMbyawiiefd[[mmewgNkni[gahNlj]d\fqll^iagS][\bgpX`Ykrui_l^h[ebbp\]cq^nth^cSa`_cpgcrla`[bjed\td]Vhd]lQ^[pPgnfo^bblh`[aRdv_ghcZpOn]^fP\`a_Yl_mficYgjbZ`j`hdYZaatah^hmh`ebghpy`hZw[j_fuefKZc\d`^`a\\aTaSiebnfjlUgdb\Z\ibdaSeYkXbsmavTdVfnekX]jhahjfg`Pnqc\qblaq]cddj^_\ec`of\`oqpdq]_ZbT__\bfgr_c[mZdikdocY`g\\gh]ffhgi\ddcc``d\^Ujchftfl\pa_\]b^bdciaR`bmbhjfYcg[TlXd^jd]aaekYndjcShatja]bh[iankckf^\f`c_ie`\\W]hbek_gc`^bg\bj`a^W^l^Vkf_jijsYaqiclb`^cdml`^woo`_[ddffdYe_Ymoja_argl`mhod\Ybe`lWj`ieed~k`mb`iblhja_bnmaSa[XU^[Yk]sim\ejbjjZ\b_bmjffham[wcqghq^[`fVe\bbl^dlapq_bldaf`jr[f`a^Pf]aZf\hpnbe\cdhqZacf^dalcq^_h[VZaa^mhZef]iecb`]\b]e^lYYhWS^]{fka_\ZbeaabcnX`flbb_e`ie[_Y[hiciccaieobbfgv`^sn]ji]iaaYfcc\agme`r_kaXhW`b_Vk`b`tecineXh_d`PaZcaUYdek\fd\gaZe]d[qnhfe\bff]e\cSZohf_jZgecdg\kbe_p\_lgfRm`ej_^aaen_^bjjagcf`maagYhmegaafhkp_gccTgopk`b]fcif]dYgadVcdMrVajakgegdZ^j_fbXhXff\WcT]dj^gike_c[ccqai`^_l]meqcdmaZgbmgZm^kidr^i^fba_[kpj\a_^bY^^eadg`nXdc`dfga\V`gfXgyYdWWa_[abgfQi\hj_`^tZilbhmblebh_XW_ZaXox|^hfgkZaflcmmmZfgbneiyqeccejy^Tcjl^^iXV^\Xlijlk^tX^ggkg_X[]Ve^sch]TdqmUcjjhahlrce`lhZhen_^\WTv_b\meljpf`aabZ_]^qet]k[mfZoaYcfUg]o^efhVIbtN`iei_PfZOrpmUfVregUdxYw^Zqf_qne^^RdiWfahbb_[bSn`]Zk[aWYgok^SuZchpfkjrbljht[rlptabchhG[NdwccagirjaWpemgR^aghhwaYgKd^r_k]dc\p`]U_iUfZbd[^cjXdZ\nhZXnpgmbkmX`bRneifrcdYrQe\nd_a_atqdefa^gZdfd[ffnfWdco\efelegieYdag\dd`\d`bd_\admhk_isdgrjuZgslbclgYffYnep_`Uyb\ek^Ufdg^[jmjcfip]^Xedkea\kdtaRvgl|gemdo`mbdfdjagkYc^Omhi^jecVpdffabhaddhcdff^jbg^b^Ya[eb_ac\PbrmYdjco]df_S\Rdqhbc[[`qmf\dqlgil[j^|[bUebZgaoiidqZe]bo`dg[\orr\hYomkpkRfhehd]^mQjkmrh_cdljabegS^ce]V\[\Pjkdgq[W]_\dg`jYhabojdoqmelYak[_`^rqmcmbfkd^cfalmgq]jbegdaZldoagdYelTb_lb`qX\ovZike^ha\][f`dOabdbn`Zo^eV^bQ`h`bcoR[c`iYldLl_^p_iWdbgc[icpqe^Y]emrWUV[]o___baeqbf\VWqq[[Ui`Sl_hnfduaomVncsbpneUfhllYdjOZPXZi]cPgk__fdmb\joPgwKpkWp`e[daZ[bkcej]gPp_W`etcbbjbagjOfn``\k\e`Yfh[sljcc_i_f_]Qbe]Wasw]`V`fT`oOnfh[|[aphaZ^`^lc[obg\nbg`_db`a_Xm_dgfZh^`ZTdc[jiad[fYYmhf_}ZqB]heT]n[Z[U^^c]^d~ddm[hXhTqlo_c_cqlX]bnpclofWYjcb]jbcbfe`_jad[_a[crscffc]Yel`l`hmck]ch[h]ajWjfi]_d]aX`hlc]h\hWcqc^g]c]a[[bcfcghfj`i\nnfhdp\\`bji`[jig^`]_WbjfVyY^Ye_`clfb[XXabeoSlib[mn\]hcffZe^bc`_ka_Xk]i{lpcud\djbiegekljq^e`fjdeec`fadachavbhhWceZk\Pam^o[[dje`ekcYg\v]]]uaaa\beSdX[cj``ammbgkf\rfshZc]Yqelht_^`Zjujcgl^bbd`]kQjjahcVbid^g^eckjfabafbgk`v||O]YXdo[[eepeZPgb[Ntcc__mN^[b_dg`aWh^sRiZ[giZ`_bn_drYdeo]_^YiefdVj`il^br]b[WkiSe[rf_fkgt_ego]bcTmXeaYaal]lajHqjnh[cX^][k^pPikiWcS_[`diecb_t\oq]odTh`Xr`h_QeYr~ioo_Zc^jjcfkcoQfobjWmZf`efXocVWalUldZg[Ee^fagOe_Ymal\odY_Xlibdl^Ykjbhnnpsj]jXhdhdbgifb]Xc^aWn^^jZccVcd`[g\_d]mw[`piXh`Scc`i]jgp_hhaSehb\abjdfiiege``a`Wcc_naXaeahbf_f[e_m^Yrae_Tc\b`qc\fghZ[cbceSdbaj]Qabfcwh`ehiobcYW^eb\_`^{aca`S`gkkqhSYgfedfd\ceifi`npgc`facjU]edaddfbbenlge[lZhw[ehYjeSbd_c`kYbrej`|fgk{fiedl`]^nfp[gh`iRZ\WlaenZkg^lVfa]lbkg^sjau_bk^bah^edZ]Zb]aYqbok]geN`hZkYj}gcb_nhRo^hbW|gZ\\juqgaM\`^]^idgchaabqkVdYgf`laxdgigYnjSklN^pghpm_]]j^^PValcdhiZnjY\kec`qpfcjh|\kcYsbxk_Xj[_[m]bRebldjkah]b_iZdmpckxjdeklmlwYom[X]^]fTbooc^_ek`]gW\ki^emid[`iztb^]SdXedpX^gbmfeeafe^WSo_`a[_nZYnomfkf`jrej]sd_ufkmelXfd`ech]eb]kjbeh`Yg^[^ac_oVe_kgTc]jX\eg]nghj^jnZwcWhefi^kn_doXh]hdXV`g]c`hjV_N[_j`e\nl_hmps]fhibdWT\^lnfkm\f\ij[\ddfQ`_b]dc]Q\Zaaciqbf_^`e`beXbUh]kxad]hafW]^f]j`cawhdp]kUcmfndifYgh^bf^c_h[hjbl]ji[[e`]heXn`p][[Q`q^ij_^e|_t]g]deXkdf]al\]Xf^ddWW^_e_lfbfh^Yiab[^Xj_\laY_]ccba\eYp@maab_bc^ga^hvfhsnerk]van[Zb\ZxesbsclU]]okbdgdX_]ebdSj_jNbhav]llckfmbl_\e[nmcbaa\mmVTkhf~ZUk[hVgrgb[M_hdecZ_h[qdh_g]gtiqe^WXfipYihdY]ncpVPMa\e[]ujKcZhd]gdjSfbYd\[iabic^ott_aVle_ZUfegcfcach]l^m_h_hmik\PSnpli|UvViVlgYpfjcWmuklfam_avXgktwfqb``mxaf`_ZrfX^Wwcoal]_eX]Yi[dhpc_aoGajklZht_qXveoj\^L`Vhc\kkf]X\fbg^{tYLfXfvno_qp_YhdbiOY]ZkUo^htj_\iZiWmeceS\_[Wj{Ib]jfpR\Yl\cbclhh]red_hi\gaZb\_h`ko\bf]Z_eak`gXQ[aeldsWm\kn[g^df^iPke[ccchdbZjaSY_Yjad_mj^X\TmZdp{b^k^co[ffe\VgTVq]Te`mhs_Xeigsd\bioh`Qaevfrcladmldc`Zididie^laYgW]fY`ccFu^idhinjaY[reee\ZV_hjZYofa]egs^bWegi\Vl^g]hfgdlQ]kgUnbbjftsYecebhbkjpd`WehbhkRgnd^\Yjje_X]imiaayml^egabZ\heWsg_X\WWfx[ev]wXdmcm`b]e{bTmXen_rhtfRl]kadqh]WaT^]^^d]o`cigd^SWnmjUmvdqHfb[PhlhSnc\_pziUaYXggPsfq[c]]pYVU[kkwbT_^me`Yr\Yw^\\ggalp]n^tbcjU`cfcf]l`fkk\_bdm^iva^^bkjq]hhTfey^^]biYfdR]e]WbiS]c]\cV^jaidu^bf^hcZ_mbRa^Od_[fep[gcWTiZn\g}XW_a\lbb[hYrjYc`deqdd]jnfmZae`i^XX[\eanVjkfcnkSlYdhgsijreiam[do_PPWacungY`k[aeYi[ff^RRe]iYefp\^cjZ]^|hs\bdejP[eaVmRX`dWdjndUdZZdOdhcZ\N`i^`fkbboffUY[i`el[Q[mekYSrh^`mdWp`WggVSn^Ube`iXjQ`^cZ]q`hcfkeZsfaiZ]`i]f[p]_gd[lZkhpd]reja`l`du\nf[if[dbm^U_HlnXjcfZk`Xeaei\cQsfaajoe`dp|nadbfhx_w_e]^nafbWKjUkX]\b]hc^c\khb\_^mq]ijaScjcnm\ZeTUe^[a\Z[ZZUt]f^[klkh`rsm_{e[nbisyijmcda]Gp_i`ggMe[fgTm\nhfjcm`gzkmee[bko]Ujehf`tutmcX{`bhrrd^bh\kgheZ_ba^bkcg`[kmg\cd_dZUmTh^MlkfaTcjiaccnad_`eqhlne^fja`Yn`h^_lcdb`c_ki_fY^jgVdfbeTnega]dTcgZh[kkd~alcp[kbogfZaicW^b^_gXcadeddrac``jrW_m`hpeggt_]hbg]v\]Y]ch``aq`oddfg_h^^`lfOe^^XSn][O[einx`jh{sbZUhXeb[lhifbnk[jciee`aZhVfmbhm`lY^eocYd`YSjZl\_Wgjrsv_^ele\ceYmmln_o\g]tkQfedgb]kaibd\`bf^]znoonuhd_[][e_cgr`jX^`fdkaX`jzSrl]_bkXg`mjab[YZTZz^dWifjV`mX]^whjgpRh`b[c_`k^jfkf_nchbcchfkkTffe`Y^]\ViWq\keWb{mOnl`b`eb_[kc`e[ybUlZff[cf[ehgZ_Za[adahdlhcbjbbUnc]YS]v[Z^^eVTe`gfgo\ni_egdgOlm_Y]QadXZ`ipTb\cZT]anUEqhMiYQ\vakXlRZWfP?sWlPh`fh`\XdiZooU]]VdPPu[U__X^lmZebcbacYTt`aqDt]`L`[`K^vcZ[dqlc^gP`mdVbY\f^r_c^YNbf`WY[qbah_teacPZWeu\hSMiFDd\iZ^OzfY[Qqbbh_]odmefyRg]jey[WcS\anpUZlKQmYi[[Za]dGPtUcksT]_lRdsi`^n\fVk`lvQL\^bZpVfldVh^Tpi[UeYiMteid`W]iYopVWgl\\tmdifkgZ^\YpXqeuqsohigmkdVZXd^im[jytebut`^|l^jjpggZNYem`jZgUG_`bf[W^cUsmVi1Wce]PAg[oujlcjekrTk_8`UFcefRbRGYiZhyg~eNgz`pp^hRioS_Rn`[gBXo]|T`Zk_fgb]iQ[\hd^P_`[RVSyczfdgcXz_ashawjjg\VS[^MhC[v[QfLckjtab%jT`dpac`^k}efdadfcchc\eaYRad]lbYcZ`ha[a]e]k```]b]clh\kcfbjjlj\dm^^h[_ldf_lpgebfcYeW`h_Zmlx^fcTY_bVked\m\cemei_\hf\`k_kcaehYphibrgli[fhekhVka_oad_[dbe_gbg^j_idpejkoednl_^RndbonvefnachdigYgficSekegngZuHd]zpmkZyhHdriichco_ZckerT_hfWgdkwi_kd`qtetglIrolaccd[|``LlfgXbficjdXceX]oeeZbXb^gbci[ghfmlleW{adhZdok^iY[oh{`\XXVZeikaagYkloc`nlch_ugfjeejg`ok^u\llkfgc^olbXf_kmi_hdfmhYdkjdbXjb\c]ndXWjimmqfZ]XWc`fq\jno]dWZ_ja`TYagc_dbeb]i`^^^jm\gbe_og_pjh]kfeaepkji[eTad^PjQ]lp\pfvgjefqfc\i_U`YceofvhP^Zdh_ecg_z|iwVgrgSWbf_\cdY_bk_lddWcX_igjafUfgjf`WebYq_b[Y`_fc_glZae`d_machroZ]Xjflg`adal_d[bkid_ab][^nWigbf`ch_`oYx`Xba`W`vhSclecVsU`abkjgbfc\j`^icpc^ef`]gu]ueZef_bebiddZr[Seajdmmh_R^]rn^i]YX^a]Y\Xgaccmcne_sZ]\mfWq]db\cbNfdfeilZc_bggnaa]s`aecfq]kbof``acc]UZg`g\ijajk_Yi[hifextbvZ]idYaqiblaiecg[`bfhnSde]l]aeckb`__ih`\p^j]ced\\jSs_l`mbpaZaZ`^jl\aoantv\cdd[V_bf_cZ^jS_fRnf`ie_pd_Yie_if\ochbigXgjeldol^^c_cY]ff`hcfbhlgcfjaevXa^bYapP_]gjXXmthp^]degdpdbdrsbo^Yf\f_d]j]`]i`c[di^nZjffn`dpl`mPcagefeVffeek[`_e`xbu]YVe^ZiifDY[b[XqAt^pkWclM_i\_d\[O_nn``i^`|YUd^aUcbjO_fidUc^`atsUh``krbkXijrhxr^fYcfnctlpX\l`]k`iLaeNk^`obR\t_hcNZgnWWuWZa`cj^fSifmc_e_aXhXYdoZ]g_Ucbelj^[_]`eqi^kj_ba]X_p^aV`r]fWtWTj\jedd[agjs]i[dlndfif^]\bWa_df[oV`YndZ`yvmcg\b_E^VbiTak\hTZbpfXdhqghpc`^^aD]_\_YlYc`NjbdcP^`keR_`]b]rkdcZflZ``kot\df_ifZqftpaeVfffpc`e[]{gplkljWkgcdi\ggiccmibTdTc[nepWb]rhkc]nbPg]led[lZlqinj`bcVhf[g]gf^djUji\`j^mhdZbbh]^lhZ`fe^i]f_eheahhce^d[j\`ais^dfbknk`ckkfmcb]ca[i_VY_]Zg^UfTXYXfYdccZqdmc`V|zaohhfeXWyqgela_RWof[]W[cfepempfaZnkujofefnob]\Wmg^b|^fo_g^aye_bk`dTj\[qjrmg\dj\b^[dLZu`kljMh`]acY`Q_aej\^j`vuZnW^ast\Xdh\bZf]cYT]`clj]dambe\]lghlmde_aefahg_gph`crp_abkaigepcy[[eic[iab^bi`^`be\_Xhil`_gcgaWfsVky^YlocRvdh_h[diUbuu`_mb]oXPdfYhb`]fYghXZ`eklO`fkag_[ufb_c``^kfa_YuYcenx^]ZlekqihkeXZb[dcbdV^bx`_]_bSph]a`eaZafOdebdp^lamh]sctMk``j]d^rgf[`jcccnJgkG^[[eplaxh^`ensmhHhO_`af_UXdz\hzc`m`l]hjmiZd\h\expqf`acfdabeieaVhbhkok]kfcm_pmXougahfRbkdcDn^\d`WcVs`hZ\aX`E_L`]Pm\W_b]x`PmvytWMX{ndffhydjcvaU^Fo_bq]mRL`aghzP][h]hUf`Oeh[V_h`\exeeiQWST\eaZq[[Zd]a^Ye[haX^mdg}[fb[[Tff[k}ihcmVVgjYbfWubZbfxbXd_i^[lbfjwXl[c^b\]_jde]f^g[a\cjija]p^qXkUendajZYfrf`\jddcTi__[jUvYnZ_cn`^haUTe]ac[`ecZb_qn`\kicctbkp\]ijha[`_iZWcjfacim_Ybaa_]]VjK\dYgiec]_d^fch\mbYbj\gTefcftfg`aa`p_SYc]gdd\`d_`_Wcmj_cgfYzSl_hdSc[b_jR^egkbaYke\ehZq][cUfhuze]endzghdndmh`abSShQ]hs[fqZ\mnjmfbhgk_kjd\o_Z]`m^cakk^fj_jaf`oXvbbkairg_db^geZ[``a[aakziefc]VaYe`j_nfY`VZn]if`e\\icn]mk\sd\[eLXf[ieae\dfnfdgebXiwl]jfiYRV`[ZRbua[mbihfXldcg_`_^\bdRiXjpUj]bkf[`\fkde[c`]bYjU[MV_jfeZdVnk^\]__fbh``^\fdgiul_YZb\Wah`]b_hsUib`k[Zgfakacb\jjWpXdh`ghb\fa_^g^`p`fXVh_ob[lhfgmaif`la^mj_dganS^dWWZjRfZ\behe^]dc`]hmVf^cUj^`dwlljdXj_ca^_faeflcZabh`abjfbq_`xjgibmglb]cj\]ed\mgYnm\fhf_kb_acgc[j`gVb\gbbelldhq\bZLka`ecleyejn\]ipabUlcgbc^roc]h^g`hmf]gjmjghqg__c[l`]cjl[mjj`fujgbcn]b_c_oVfWaRi[pioe_ZjT`meYhb`pcZ_ie\]ma]YgWhgc\xxqfVZahz[c_n]e`y_Zpchdmq[dtja`oafheYVZXYnVryqfdaaicegie`fg\tbS`peZ_ZhbdZ^lYf`edb``^_ihZPmQeYaQ]nmUiuac[umag{m]PbSikc\epeg^a_t_fg^e\gNUqb`_a`d^]bd`gg]Ta_[ef__fbkeiZ^e^ejiiXj_rie\e]h]eMg`O`ditia[f_go]n]eZ`igg_Zh][[dlacn_o_fo_doYh_mfiYgkbgXfbnkThibb_ZWR[c^fbXefekTdgsf^lae`hdfk_^cgfce`_`bWdhY_dj`gn``cb~_`eojboyclkbd^obdpbW^trahhYgoae]hhXkebl_fZihnjgfacnwbb``q\^\ZThikcXfW]Xnratolyt`agfkl\eg^mW^aggbSYYbnZ\^mhbdT\nke_bmZ[ToVXdgReffoad\`ime`ffS`oj]vee`Xbee[k^u][bqh__dh^fovifhghglkrjWjXjcepkTkk^`\khjfY[laZikkdXah_nZadmk]j`jp`_j]okT_`labf^g^e^cf\h`kaniQjdbljiqjx^lk`hggjkdZj\occ^veYWdc^eQahalk_aga\[WdbgeaVckiqcZg\f`tjo]iigjmti\ys`Zmffuan]gi_iL`dZzXbcfoeqiedk]lmb^em^X``b\rebnbndc\\gwOjdme`[jbvw[qd_YWU`cj_epaeS^kqnXref[fb[fove^b]gaqV_utSSilqtXfhYRarf\ir^haic\i]X_Ifxbha[qZlle]nlZg^Wbrxfdk{mKxac^dhco`bvrtj^[]]_txqfguba^Sf`ZcV\RilhZ[ZRa[]n`lanIsVmfcf^_`[bji^{YgYgbX`jceSjmeVbb_rpWa^[f^V]e`a`d`ng`foqccm]uVhgh^iYWuU][Uaq_YbUuhidb`crb`hade\hYa}_ees\_km[gob]d]fh]T^Xz_o]Nbroeeief][bbcbnq[b]mXXhYnoeeuk_ohd_fjgd^Zg]^kajmn\`bj^``dol[]c^dmtgVfidd^fiaaV^bVb`ftfdgghekicdotfqfg_cjgm\`[t[nUY`cb[e\rjbUa`]_d_Z_c\qfm`hb`Z`aoeg_Vf`cfSfr^TliXYbZoref[ezafmb]^v]Qm^dmkkcbgbgiad^hff\jdnferYqcjXc`eV\`fech\`nlfgqg]oljbWVfh_rshiKmfj]\k]e_fhgidPZcZ^ec]mpr@zbWcch\XO^^fnb]l\RefT[]bk][R]_gVR[WZae_^hfliegPd]mZjYU^__fdvi_`VXcdf_TwUZx_ckklZlZ^ff_xgYc^_d`kawYac\b_\kfi]abXh_][hmlgeg]\[i`jgda_qgece|Veac`aaXhneajpckaU^dfc_\e\Z_cej\a\Sfme]YiqcfbY[^\e^mpfiZ`e\Y]hb[dce]gbcidaY^gi]dcfYacja\ljo_XfZ]adlmaeih^_gmejkiqdqjf`h\gkh`gceacdo]mijti]fg^bhaqtbPe`jeb[eRke]^W`[eaZondhakceg`iadcnbdcdahcdXYgb\b_er`v_agnXb]gcmpbXmihfElfg`ghf^[cNtcUklvg_ggbien]dl_ic{kadNTfggb`ei_aneU]Zil[eY]]ma]recrSZMYZgct_a\pYske`Pkrgl]lmrnjoWZ^gYe\qdbshZde^_ksWd[Uj^idifebbVegeegf_l`YcrclgngXMX_[g\cdlb^jfbjho`a^c[kZWgmoodfyad`}[ff_cwdZdehc^bg`X[fe^^id\\sg`chlag^gkwffjXS\behaghid`[g\gau`dbffspkmbd^k][Y^bo^c`ah]Ybhb]y_`ccZfldbja[atnom[f^d]ekhlj\tZtuZ[c]Zdcbf_chZYgi^pjholq^Vc]jgicemabvl{ic]gkd_cvl`h`dl[badalaVaeipgf_`bck_^e`\dWlcaljfm[hedVphdoe_Ze]kdOn]_`\adm^cZbpUt[kbiatiw\hjahulhaicJxc]DbjZg_b`mb`b`Va^jciZXehe][i_cnb[ftacene\mcklZsXVXb]DgkiX^aoZ[aZlmYUTifl^^gfXhZkne\f`hhOilmVlc`ejYoadTsZb[d\^abdqjlbkXc`hmhbg`kYN\]_gmjbcdZZXX]odYmgnii[WdcicmfiiYeWwYdigcjhgiveXeVejfXeZPdxlW\eS\\`Z_kf_dkfick^cY`gkhdrnekgrd\_g]dnlY_r_gng`Z]Wa]s`VdbjZ`[eYb\ej_^Z[W_ikagc[cVfm[abQ_ZaYe_g_j]_eh\][]Tcc_h_kgZn[b]a]fdhoec[ad^bhm^i[`raZiZeefTc[kZhjb_aVyooae_]e]ZV^fXblvpXpp`T^iginkfcdmmk}]gd]_eco]gek^d[hpYdj^n^cZWjffgp\cj^ThzT_hejfcwm[kifkjtfg[ivdl}l[be\meYUebq^hNYdYo^Sem`hZhbgj^jael_d^R`xfmXijcSeof[`gkZcd[f`cVllelkTcihbjab_ebecX^inf[p^gZaY_lf`edWf`][ndkfc`qhbZsp^k\]``j^[^m[iejm|caho\[jP^bea_[le`_fdTc_`VjecdlZ]ijd_z_Xehd\Ynlq]rkc`hMaadZamZ^ke_d^hkUiZif`]_hm[Rlf`cmfbOhe^eh]ac^e_[kR\a[aUlXfeciopXicP\`Uogb]fkc[hv]``f`ig_imhfa[fltghXRdcjkdcpXhp_^bOQcedP\pp``mdh`T\rlVcnqiXYUU`b_X]hUdceW^dj_Whvfni^wa{oc_^a\hmQag`X^_kaaZoh[k`inlZcZnYffneobci`gcZcxb\fYSacrqle[Woo\_gdefmRaed\]ghZ^|jq_cii`gZZjeadjfddc`hya[`c\d_ddggbeafstc[gZmskd^gk]^_p\bZddYV\_`a\a`bgdakYgae^au^dpodZXevXhdfobks`k\X_djr]kvY`iV[\eaZu\kemoc]aY]obaebgk_flaig^mgh_]`YZtfhtgkbjfVdYh^UfX[[jejuk`cl[_TaTTgrf`bc]i]r\g^aal[mf]f_\dRaggneet^c`^agWgahj_[bl[meh^f>[ndkik_fcfN]S\`_[_gYo`^bZbrfFcg^r_eVdomd[Z]V\ZcbfmYem]edWJ_YjaTdvgbV_WgmQUjlpbekZohOfede_edx`[YX`_na^l^i[ofR`\WlZe[hi\Rd\g[Xoebj\FgWfXp_icm\[lRdc^Zgej[gsgbmgdiavfomed_Zona_`]SUgS_`\\]b`fomjkdZdhptaXfeaj`ah\l_]]]]^eig^mX[ercgdd_j_[tydpUiFQiZmP^hY^gYh_`Z^crdU]makij}nol\a__^_fc\ji_Z]hb`aYc]_lgdelZj[_ls\\gl][Tf]a[gWqd\m`_`jfUxfhhb\`j^gX]efimkjbbmYaajfZYhv^gceXtYdXYemufae^ggephWfkVc\kmfiZ^gYVacaXigk`[RgcVd`ej_UpZmd\^afxjfjcasa]qd_Yf\hej_aiSzmgZ^hOLcadfScX~HgfkaYhd\ft\adnod`a`hbh_j`Sxd]\knsiec`a[[t_kldamccnY`k^c_[sa^^duNogti\_teq\\tjlafQ_^tW^bi[aY`U_gfb``Lz`k[aZggmx_iVkjh^Th_]mlWkleggjW_v^_mWhcedizaZ[j[jXeipcj\Yak`VW\dcdym`{oedbjYphmWi\_ef_hkk_sfcdxd_ack[_i]]gZs^nifal_Z_w`niapaaobafdoiuecXfdeh\i\hpaliZ[Wgl`jhUfepnojkfl\oo`abbh^\fe_k\`_cbZbcpNeWdriXp_PfillhS`YokjaZr_b\]dQs]o[\hgaagamfc^mx\cnZuchlfUledfnjkigbZb]`_PZvnnghZjpekfgi^Zf]aado[gWf[_cii^fklpjR`hlaZpn[fjVhmbxTZkgbnd_zc`feadcZZa][gpd\e\]a_fkZ]`eab`h][[`nZW`j_b[cUegokslfRgjeTa_dmmf_Xccd]^tebYfpkhcr^kjbRg\efehe]`]Xe]_^efdc`b]a`Vb[]\bf]W_dfm`^higdcYfjce^bf\T``k\n_Y`l``hejbX`atjeVOhVwqUdjcf_la^jpmodie^V_fkXcjR]\uaawjpck`hSgd`_Vhiitaenj\Wbekfn`ecp\dbhfp`\]d^cWldxoj[^h`gjIg]el_c\YlgjlXe\h`jnTkuhR\]fd^qfb]]dgfme^s|nmdgY_qc`Xcfj`fxYhbUZi[cdYt]dc[[cc[pe\Videe`j^`iq]Zbjmlffp[d^dig[^hflaea]U\ChLd\bh`p[Xc_\L`ddlee^`YYr_heV[kR`Xbeieid^m[dfb^iY[agmdZek_b_d_b``Whc`jRj]R]bVRn]bdbmdd[dKUhW[\gcg_w^]nmdgaee[gZ`ZbflfficseZf[fhX]phUdZc\^][fh\bZhvcfkg]beVcmeecwY_Z[fZl^ogVd\chZek[]l[b]cm]^mehbmnstgdhdaUgd\WeW[bimdcjkee]ewjYg_\`ga\onp^\^aqan[\jXkcewiU`l\^`ddecmnSfeehjfcdir[de]U]ZfRaet^lj`mkPgdbhZearn_ahYjb`lYKemYr`a`bkd]dbR]nd`\b`Wnoic]dog]b[ekxZWkxepjfuid`ei_dwn_Qf`YU_Zk^e`g`dlXaj[jdf`fne[la`e_YjbcYZcgum^nei`^`cdohSgc[fcWhcKg\{lsdg\\ndgfhsol]cgOV\ocZtlW^e{fXs[\][_gaTZkj_cbkJdk[^dfZqXWYnqRQRgt]\nRbMbXYb\cda`gtmj_imcdYrYdYZ]fbp[kZ^qZapnpT`]YceW]m`X\igtdlUVamae[ggj`bdhVmcP`ogQmaSZc]_iSdT[g\a`kc^{j`\`o`]flbe_^gehSSclcpd[af\`nf[j`qd[b]c`c]af]fZ_aeZfjebgZgypkehcUj`iZ^u^j^d^aciYyc@a^lXZ]jgZ[fm_iSj^`gadthjjt~n^]Xq^a\hn[hfb^lddkgdadgqaabe_\UaWZ_j^i]`hUiXUfZMW^`_oXZ`jjNcbfhZ_cr\e[KpdlXajja]XbRkMiPa^mo_qgi\d_e_\`gumgeUf]]pVitbeo]dodO_jiiV[c\_ag[Z`Zeacb_qmWf]\kbrb]e`ilYj\cYlVWx`^aeUtXYw_dhfQ]nZYZaYfa_Tae^]f\aZm^ln]hX^deT\\dPbPwklYbmg`c^Wtsjd^jcfkhlcn^OgbdW`a]aa_^[q^tgHwZagocdnU{r^`i]]peuj[Z]jlkmieXpVWc]_fjeXps]d^hrj`MikqlbYccb]iiidg_\ez`\j]\oZjl\c]t\kak_pfg`cnlic[kPYrodj^hm][ajci`a]dlkf[_gXq`[gpgmY_eb\_[`rhWTchbe[b\l]p^hg]aU[n_ehr`_rce]cnmfnVYmdhh[b`g_]_^i_ehsde]mhnb^fbal\bw_bScdhmkbrWhhXmqbxpae[`cmoXgf`scTQhnb_\oe\xtk^^R\_hhakYq[[b_ok\jteb_ad`e]jq_`hb\db_Z^bc`bg^s]`anm^igifW`c`uaWg_d[cbhli_e\Zin`c_TijcdnZfkbkgXs\_cb^_i]NSg^c_``YklWhVkaWe]\efZfqf^adgom[VcZ[o\fU_}[gc[fiZZhlb^aYayhS`Zca^\dbgvregiecbbtgeb[kamjfjftj`rj]dYagvhccdebdccahnjh^jb_iYhftYkcgd_kicrn^UVo`xs^[fhV^a_md[d^_hi\hkWkoivmp__]qikbo\jmgiaWad`mckkgehieffhq\Wtpanech^gdha[hfh_efcigjpd`dh_d`piQu_aX\[_fkecgeqbfeaZ]f]lUa_ma`y^_ebd_echejlp^`igl^aWY_jaubtgbVamdoqeXbce]iZZ^eifadhf]Rf]ck_t_c^bdkisgeuijcXZonaueXdYepgbSWdahfha]bgeb`fk`nfhaegeafa^^]ac]Ncie\nhhc`_Zbhbl^Zj`ad^bYYdfo]\\`Xe]e`]eqa`khhbciZWg_]ioabcgecgd]kl_V`\mmS[i_bmU_jf_]d_e^qkQb]\ggsaafkos`f_[ajihWbm_matnhljj`g\\\eaZegl]^bc_]q[b`]ZckPg]ecfam^`ifWembdj^ll]dli_cdVjdn]^bpmi]eqmd\cc^kfirgaigo^cmps^hmacfbqil^bij]^i\Vvbmg^XeQ^mp]kbe^XSVygi]omgpahpu\lbek`\dqd`ja_l\]]egu_lac_`jthiihekXpm_giMen[ZtkXbdlka_XXIRpeYgiSYedeUc|WT^TjhVcibQq^[aUc_ZeZ\_[CdjifZ\a[a]^_hTSXim_TPZ]Za[Q]aab]a]gVgbg^W\fYNHh^l`^gXglKjeSY`so[b_v\[f_c]kiUof[|hdi`]YWk^^il[XtjaefHOhi_ja_haiJ_Rcbiba^bbe]]ZldndjcfjnZ_adai^SjxMljbg`cLVYjj_VWbsQ[d_q`Tee\Q`rfh]^f`yWh_ake`dXWem]S]^f^TeYd_gZRXikcc]icX}fbaWnfjdbcqdPUrnb[Lzadjb^Yhf[i\`ilYjadnZg]ern\_idm_jp`_Z\cc`_n`bj`ctw\h_ef^Wnecdphl^|mp`lhbkg\f_ZggbW^fjaadmYk`caldfmobecXeb`_`cg^hbidg][tZenc]jndbgvcWk`eshcedgagZSihdk_g_ZbcSXfc`gbmb\feSdbcbthWh]dj_ZaecXehZv_bevoikcdl^]ee^el\l__eN[WfXXZldgnea`ed`daj^bpWhil_Thva^lhR]jReckc_\_lfddl`]T[aTg`]h]tx]a_bdZ`iU`\ZhejbQm[`ckk[klne`a_ke[qWkl[ghfldnof_o^^c^]ec[\Yih`vqlRhbeagW`uPW`hYqTabforh]S^wfgZeYd]{jek[]iPsb_YQai]ePibj__k`l_aVSX^d`XkSf`^abYftbn^fQ`eX]Z\Oi_h^hdaO\cijY`j`ff_bZMf`femYc^`]_ccbhocbhWaV_{VdcrjcfkO_kwif^Y^n^[Xf[aecbk^`\g]tZp\faiWOX\]ib_[f`ZOcpi[Xfmfdexh{qe`a`\iknrZd_nm`rd^bhqeYiafXbn_St\g_shbdYc^Q[f_Ygc]ZpljjgOdesjS^lW]qdadpkafa^c^cd`ed^KrWg[ofrc]jjgh[oi]^hgz[diZdnpiaqlaZ]a_]^\TkdafbN\Y_l_i[]c[^]JnflbXgyc]fd_`hfhheef`jcmhkk^kc_W`mkdkckd\]igVbadejiac^ff\a_d`^brbfkff\db`dggUa_hZlfg^pd\hjek^tcV^c[mc`jmU^\dWblrZWbfZfmbTX^fccdb`wbj[emZ_dhVhd]d\el[[hax^\Xfbqc]ge]]neYh^lqVs]mfZXgfzfl`cbRc^i_[d\`g`UgmaecmaglffgjaliT^ZS`ec[jfgiaa_S_qfarXcam]\codc\jucdi`gmafY`f\Wmd_gvjYcichcqeXcgreh`waLjcbhbjbdM``d``hioekd^_^]lojg\djYWi]v[i_jroaebia`pedpkk_h`babcojo`_RcX]fV^ccd`dh^^aehg`o^hcjbWi`f]g`YdeYfSpdX`eZefeeTVe`m]nabiig`rqpheYXZplRor^cgk\hbbjb\achjabf\_ehgapjYhQiba?TVPaQ]kVg[kPlmTabHjcrUXbcgnec\wfdagt]ge[biZo]bbn]_bUfZfgY_YVxhdbpcccOpiT\fj[VWf_YeNMjd][bkd_LjdudgsednpUrT_lakbcvZ]e_ubi_bw_ckZZUcrhrYc[\jqZcRQy]_ngtaaiZjrqiscZh`m\aSufjjg\amag\V_kdj]YX_`lce[]Z`_iXg\UQWXod_aU^ge^[ks``mxdbX_dzVee\obm_dTk`kqf\l\XhgSogWd_oXYf^bhYv`YkrZPdxhivmj^laY_ZshhcmRiokhiPNhpTlk_\l_wc[mrdTfgkWjo[oadpbdeQhh[jc_dgXahenUkc\fV]k[Yaa_ca]Zp`h]iTi_[j]qjeblccek\STen^leVaTlf\prq[Y\vgo[uwabhh`Xi^dOdlTclPneZvffp^_abk{eq\h\aVjf[^xlap_Sn_ek]dfYpfTXX^KXcc^_JXfZPlidahb[o^VasmYp^efhb[XZodjfjSZbd\dhx^d_T\Zfn\dafZa]pcili`v`hzdZhgCimeX[uUWsjPXPdXdxR`[hYrbeekga`fdkbiW``qcR[lrg_p\VgZhUghagdnN\WpvibXhba_^Zn[]hC_~cjkavrlchLjKmcbj\\[YUXW`VcSt_imkdddr^Y^`adQabcmUbpkWc[shmZea_aeYd_cqeV^]W^pZZ[YTN]VcJ|nl]T^XST]hj[`finqZX_r]lnn_WlQWp^ah`f\uXT\Xa_oocekZudVgmnrd_aaTc`UCgRjmcT[Ck]d_cizEsgwZh^gcZeUFjcWqQfeNXuft^`z\hibn]S^NVJ[Jbh^ajlidoaMgaX\Uw[lUv]l_bVcPf^gij`{^UTU[[S^j\WzndizMi\^`lmsslcbVUoqh[jr`aezrp_tlaguqjkcb^WXWbxZRXj`_liih_hSodcZafktd_fqkkbqUYjb_]gS^gjd\]]i`cj^ZOQv\iVb^hn^^TararhcZhofajV`hpfl`\jZN}lj_l\\b__lWaTdZkepfm^d]n]gbcogacml_linUa^[XoZPbbbmT[wdWi[]dfX^faYc_`faa_k~aYOil\Z^[\kiXXmlwa_Z[^Qokn_pb^fabmgXPkt`lgklmJYQoq`a^c^ekd`hYkhzSa_cabaqkf_YW{kj]lkojbG`YnUg`vlai]\coU_fnamigpgo`aNiQb]cLeIum]YbShuadG]dVdneNZaW]_lb^zl]]\nhaWdZplfZTtfoedbUPbg[eduhugide`^b_nza^e][wcWjqkgYtOoccchv_u^ae^ar\_kjh{ico|kgVfn\belwssnhk^gk^`_`pS\c`cSz^RbolZd_f]T^K_`VhsvdnWeYbjbbhkj^sW[tlibh_Vb_fUnlhen^vmc[j\aig]ZWlf]f_[gWlPWGjhZVV`fRg`cg_`b[`r]i^cio`Vap]ecufcTxToas^jel[meXc[[Rhclrp\pV[uITZa][WYjjheZbZnWhWnpjftXtYag}nPledj\fmUekdhd_brVWWKjTclc^_Zcew\ig^glp^gT`l_YjaXold[g[bZ^\lef`ZHV\qbi]_Te^cR\nZp_gScgeavXk]Mg^sWbhajclY_oslcfmauqugic\ycgYZxheYoiegYWhc]ead]bejbbm^eckbmb`UP[]]^j`g^u[[r`_PSWcg\PbbUUe^rYr[ggveBcpncSdeNt[`rd]fa{^[kbhkiWhdkyQb_J_Td]n`h^\Xa_gl]leaacZ]t]hZfarrejThdm[`Ufam[hijXbfmo_ScncvcXZ]cZZiPfdWbza\d`Uo^V~hVviafd`]WsaZZ^S][ehX_u]]]`lfhnj[cg]brSgfclphqvV\Zb_e^[Y]T\[^gIaYRBf^WmLanzdk_aen\j^Yuhgfrd_]ZK_ofOgdi|eUdhli^]acis`VT\_]lgimZf[r_c]^W\zbaJhf^eXbb]@anNnpbg\]}Yh^P`qcXf^Xd[UcVskcYuhM`fgZzfWQii_ZX\YXZ_c~~^b_\`Z^nd`Zi_V_W_XVqayhbjhYvW`T\c`eledc^kfZHSZdnlmz[ff`]tkBUdaDv]Vkj^oSTfbNfcfbeW^r\fjl\UhM_cX[a]eE]obsMNmkdfHV^c]c[]j[cJ,qDuZcnN[fhUl\^Efkmdge6njTUPHiMXKlvs]SnRJjiaWSkHonk_]bVY_`W]hdY[[ZbrS|yYeickkez\au_eca^b`d[gZc_]as_lX_g`x`kigmep`a[[e^dlSgn\hlfjpbjl\UXkaobu_[VXZTecX]abf\s\Vce`e`]]efjana\]_fc`V^e_eite`ga[ceY`Yaahe^i]`_fighXk[[tJfhaqZhodiidcccSwefbag[aediecn`d`ffabdw`Zcab^d]lf_[_XfcUc^gibgpc_`ZbXgek[kkb^Ykalt^f^aj^sY`dRhe[c_h\bYjihbm`brXb_gc]`gN_iob^mpcYbYEmg]_[mmiYec]c^hObZh_\ckZek[WpRTcaXd^lfcqgZab_mgdVrp_cmjjTlYa_WZk]rrb^cjeYclYYa_YF^ZaTfiZeekXN[fgilfbdbb<\Wd`\^ZZ[\fhaz`bGZfh^U]^XYdag]_]ced]v__eXg[no^\`]{fY_QnPfibmr]hc|flVGdPybQ`oe\pbee`ici_]l`]ahje^hetoseXi\g`]mbU_dW\]aeing[cxcpY_Z_eXaX\chb]L^]i^fW\dY^gOhahbal]Y\kedlT`f_^ajxpb_Zko_ed_b``kd[_`m\^Xe`gnZgahVXUc[q`ZT\abgpWmp_Y``mshgeZ_UnD]]`a[eVq`]ae\[]f[fecfg_bfbsd[ZdYa_]Z`]W``rxShceUZp]``lgmhaVL]fmPb^Udd]^_[`^_Xgggh]Ub[hVXUc]Yn\^UmqehVP[U[Ke\[hWlibUqReQH]YYkgbUZ]ZINfflfbVciWe\MkdUd]hsne\`SaVhpai]^_zadjabuV_r\Ogo_bs[`Z[loloyUdbYfguqMedfZ[bqcp_o_[WY]gd_gix_`\Pccqd`p^cn;g]u\}s[aaaVaWjhgJ_nmi\aVbefrmgXmda[]_dZR^[e]m_`XrXhT\edaUWlf_giol``cx\gh[ifj^dfc_fykaXaVniJabqcXUf[ned_ZWobhk\|\nb^gfXidkacb_jj]Wuifenc^vbY_h\[Slb]acehfjjilXdr{l_XfaN[[RXcxx_dga`\_hjff_^ea]m[]Xc}m_gbkcZ][pdVUQMhejebViq\`hbf\dgd``OsN`c^p_meuadgNecf`d^_`[V]d^f]Z]sSePPb`fXfTlfUf[Y`dOfbdnMYkb`egjit\cH^gaa^izgnh`k`aeoVdkn]cs^SU_hd^kw_X`R^Nocs^ShaeY[rh`k]]atts`TeiZ^l^RVcc`RimW]eSlcbg\^_xKnrfco`Zbd[WZaa\SZ`ZSnb][hj]finZcdwifjtg]`XjbPcre]gYczW[Snf\\UXa\edYcf]llh]nQb^bui`_bfZdgtZh`ejgm`i_k`[UcS|ekYoZf`e`Panm^Shb`d\cTa`gY`irmbrfWpUhrcrgXXvqc]`nmm^zNUflTjhmfp]_edbfk\p^[ju\ihLpDk^TYTbvjV`myc]ThZp`]hZ]Z|gISnl{[\lhac[tbf`dW\]f\b`qmTflmas`_oYa\b`V\Xd_mtjZ_IiYbg`Ud[^QK]OYa_flqYaaS`OnTfySLrSvZXjTY`[oGrojlGc[jj/YWgWLb\ak`_juVdafbjeh[]Vis]^j~m]XTaXf^X\dfcpfhg]ekekgkb\Ufc[RUcj~a_mfpdd^^R_]bebTh`Vnqh[db`khcc^brakyickZdhW\jbXXk[_\ddZ`X[hgvUnbZn]dhlfSjaff^jO`fZVvmxZ^dg\Zda]_^l_VjWgTa_dl[[hnsj{\Y`sxjb\_fy_cvkglhw`XfbladjldhgcYk_jebW]j}]gnpi[eerkph_fhsw[Zin^jh;ioF\acff[Oo_Zf^nm_oWlqWgaqjhrbkebm[`gcuhm_gq[SbTso_}if[Zi``faaf\_n_dlpNe`e`bJspmbmk^hnkjbaulj\W\bUen]OfXlj]fz`eieSXbKnqUgffbZQefHeSpgsjcjeby_eShfjl`bafVSc`TYkc^[[[Pv^Qc\ed^]kcoed`gthg]kfU\umq^afWa_gktc^jUcba[qah`j`][^uqT`a_eeZ_dpka_sXeXy]mVejbYllnOcaeshn`dW`hYdlnU_XiaK]qoVc\dc\\_ri_on__j^k^hY_b[^l^_`[l^YWem^a\db_l`di^gg`aWoO]_eZchZNij`^gj_[_q]amg^^YbkdWfo^ie_maZX]_epQlbs[\odd[tYh^cPmeV[`_gnU`Yms_i^Wn]e{[ieadd[kf\jgj[daQaui]clbb]l`]kfUsfjumbgnW^w]\iiPf|jwchiZ_hnaMekha^ccmkc\yra]na]eke]nc\X\lt\nesdwckYsfdejhchmcNcE_dMcJll[\Rjg[erpplc_Yfmk`mnn^i[qfZmZZWf__W`ZWpkhpZ`YcdhZZcrepzQYq`od`a[lecqaeopjaV`dliYh}\WXmij^mmmTcjU\WcZfhgc[\mwVfcWi]j[Uic}es_ZbUih[lhr_pjam^IchlenZe`qZUgZjaeY]sifYd]\lf_eeskYfSRbnX{_jgjrbamc]YS]ZWdn^hxTZXxahe]bhV`qb[]X`ZbalXWei^af`eQ_eWSmRZhln\cicN\deV\anmVfWobjmaJgjadat[U`mjY[Vc\b[hd[VeSzZSc|]]\XY\[\HeQif[h\iX[eFlte^rgj[calZ[ZO]rYZieiq]Pe]feoeaMkoZbU^cecc}\lmdi]cvhnwlf^OgZU]dka]gbb_YUphmlj^kdYff`d[j``zbdc^r]\]`ji_WfZ^iZ[g]he[jhqlff^f]``S_fm`dkVkf\_ca_eijbdYahjmXWlcmfPfcYa_YgdbXeW[wrdm__Sh_eZYg]fjSlig`cdY]zlj^g]ppxg^zfblVck^K_mph\bWf]_\eiY^`o^gXgqg]ekciZsaejYrac^nUh[bdee^eb^fbbkhfbi_SdaasZ``rrZWpff\_hZb^tfnpico_j\wNpl[lh`bh[j^`hcae`ZlXgZo_hjT|]caZWq`X^TegZfZN]\a\fdlda\iXgrhUZ_SV_jZXjbf^f]eZ`a^^aX]w``Sbgcenigd^VXadWW`doWregka`bfXbfjb]]a\lZcSRnRg]_YV^cMico_gpUP[`av\ebca_tXbc[tliZZ[aj_guajZY\\WgP]d]Q\XYafhV_zdbWaX\ac_aqpU^eldaeV^glpf_mmhbTg_fPXgS`QXgHijywbehAk_{d\Y^tpdmsWpel_dU_dyq`_hZjmUfB]{_cs[Z]c\_kajZb]cjhr{_\i]\bZgnrjb[`{`c`WghGpdeZkU\_YZ\baXR\ckm[kN^lnZ}k_[t[fggeZfcR`glX^wgoUTX_s`mofSgbXjBc^sdonw__Vi`{^\odpXgjsXq^pY{kakeZcmYnVggMkN_L`cQpgpg^erbod_ife\{aqaZa}rXjLyJ`mlTeh\aUXZdop`mankW_o^Zec\Z|j`}WdSlpX>^qgockfmf[B^qpphR[TlpidIm\dffdgV\cl\HLijfm`tlhQVe_jgjU[vWq~cgjswgaWe]ir_ckY]edl^qKXfnUPmadcffpZq`N]fembimnVqOY^djrebfYY`[gmdmh\Kl`cibZaXfaVl_mjarW{s^jWip^\bYp]UYhblifRtb`rXr[pX[le]c_GcTuYWea^lKfc`^e]XI\gZbOebjfN^d_kbqgligmWZgXadeig_p_^tjZd}bbn]]{_^l^hX]Yk^|baospRlaZirYbiRa^^Zb\vcOnvvg`w]XfalXfQagXfuiH`x]rhchX\eSdoiPg]cZlsVaP^Yf]agqpj^dVd\TmiZ_ccdmYg^{TaVf`am\d__aQadyQ[UZel^_J\f\`hnP~ed]Qtalda[_Znji_e`h`YWjg]YfXR{^acn^f[j^\_xclVqPQhca^o]Zl]rigZffg^`kUnWsk]n_^Y\NoVYjlofoJHgbi\\oec]qc_`][qkd^ecOjZ]rWab^uYjmWTwngdWkX_^f]bdbjf_efqnJpogbfigghbvbsd`op^]TkwY^S]q`fpm]b`imgigWfceUtbOjbYaZr_Zenja^gc[JVngaTc_[amikmZh_z`U`RccfhedHcfeRmZTluRi^tZoumceipUqohd^rEmQpbaboZ\kVTa[Wmwh_[k^vgXkq`\p_XunhQlax[rdfk]KrnlZeW]QiZ]ccihpj[hVcT^k`W`ec`Y[fi_ld_bRdWhzo^kjhwiSb\]`Vgg\Zn_fZNbVf^fokRZq`PmbedaM}kqsb]UTabr`Zvmkgg_YZJgR[_LEWaYZh\g^c_dkPiYN]ZqjQTih[ghZgjkl[dgd_mc\Qhgc^ddb^Vbmhf^^Xf]_fVdVaddbbeb^d]fYWaYcdgcWOid`hqok]\V[nebYkQelgjcTUcfj\^pXVhaiwvWhnYg`hhnecowcn`^[wZZS^Y``d[VWldaeoadp]ddeZlb[``g_yWuia[b^c_eSm^h]lhfUph[_\l[cc[hbJ[imdi^bZff^WlVh\i_ecXkj_ide`Pjcwm_fes[lafegnnXXodc`cdlZ\Y`vafdhbad_X_rccZealWRoa]f`cqfcoVYpeafLdbjthY_qmg[afcf_Z]ZhZEhejaWe]qngiho``\\khgY_iY`acdlsd_n[lhnna\iVl[eX\UdpQjWrbwcc[j\eeee[^m_fk]XrZv[t`Te\ejKYy^pcd]bo]y}Tfmz[fgdsXwcdbMSiq]][ahl`smRzujLcO^___hhm{a{Rb[c^`kgJbZbdfkbd[UUT`Wu_bZ]VZ]iglj_`ab\nko[bb^[i`bRd_rl]`ZNolcaX[csrjbehdemWjhbdZZhghVegbge[bfdqf|LabZc`[\hZaY|nv]jcZfO][N^SlN^Uf_\[lZU^hehVe\z^c`_a`ocVeW]YM]rhafXpb^e]dn`h_`ZZe_b^fcbknc^]is[YfiggaVhep__mXkW[u_[ufqsbb[nUiof_g^jancciegqbS\aCcWcqaogh_XTc\Zf]WeZvg]SfVZ`V^}]ef_bX\`n`ki^c_Zl\vm`ccXchndgbq_pdf]kbba\mdb]fXd\Tappboa[hUl^]fid^T_ftkypXcZZ]lhepZm][[tbZmawhom\_ljia`f^\\\ad``mhLd]_iVjbgZh}j[Ya`mfpsl_ikb^sfW_gqU[cZ]m_\fmnfk`z\Z]ii_f`WZdYngi^ghb|dbYy`kgioqmkf^Xca_fNcc]Ygai`jYij^v\j_[dbaWikh[oYya]dPgSacUoMiZ[omaVaOUjfdfZlaWyp`QpVlRfe\}ic`ln\Vghhe`_cn\nc[hggdjUqo]Wm]cTUYkoh^Xasiarcct\i~kcTu^q^_MpYWG_wcjTX\]qg_QR_e`bWe^bLhnhhZdZkZtYV\ll`^`Zd{^`a]q[`cgYUcSgY_`gZkrWv_YhcT`quak]`\n]dhjaUgsc_hkflhb]`bfc\fae_]oamRbaihii_ccdjg[c_g`_^loZaXmajU`fni^hyr^imd\bdbcbe]jrl]R^dXbkeTQdSbaetpmKbZpZ`^XtdrVcnmhaO|m\tjreQMmcll_FVNVy[\X|^ScuT\diR`ere]Vl\Zb[_\aj_nbnb]^WQjfXf`[ImjjNclfYY^ZgL\ShlXqi[``rqjd^nqdn\]JWxT]\][_OTn`hajQuOhriec_bxYiT\`Y`bQhwYnm^_ceehrcclcY]ki\__GQjl_h]TongbVYj`e]YcledfXdhbhlbmwmlsVpkaclcoorgt_qcddhgWfk`kbe[[^oc_mcwmc\XcvOg^t_\][coebfdkQZZid`hXbYWQnkchkhYf^_W^[p_UVlUDa]VtfbArjzmhvMgZkoaSbnznb\\Yjuf_bTVei`Ydd[>ca_SUefadVa`Q?M^hhnMfYXOc`blBReevtgehvp\aXlfd=k]vaX^f]exTKXSmbEi`YZ_`QfWVfcOnncZYVcn_[NVfq^damVf`Uaev^S^@_W]^kbmsbiX`cfe\YR_wfVksocPa[iYbbH`Y[kdVcZ]^cW`lVj^arQp\`i_dXb]^W_dcZ_Vf^pcb\U^b]ogcjje]]pjcbvQeRaft_cfS\[XZdccfYrgZz]_XbXpjeae^chc\\ago`iiaZUj\[[i^leYidYX\dieZ\abki`n\^\mgdj]ag`hfbjWh[fkXgdh[e\b_hYdkncYhY^ZdgafbV^g`[YbehXhfriZgSihcm^\c`bZhpiSpfdb`jc\csqQu\^Wfi[fsgcf]]bikk`omj`jmb^cbdh`^Xt[Zbfjd[bcnrjh^ne`_nig__ciSe_Ykia[f\dub_Xh_[`_fqh`_nZ^t[|]]aaeZ`j\cra\bh]pb[Pdc{^ZSkWQfXfodgnctiobsdl_drcd\Yqiftqi^liqmxagg_K^`M]dbkPah_\Yg\Vgmccr~p\_Yecdicjvg`Va\ZjYPocsh`\f\Y]\\TjtYhf`VZfXchyrlRWYkae^ha{fUa\ZO\Z]X`YlWXUpk^cWkgc^O`mWDj^RMg[NbilKcFUc`X[fg[dfMgoulWeKYq}f5\gyj\SYrUfe|Z\SpgSpdVl][tKsnfkjUnpVh__\QhXxnZlr_^\ba|ijhiMqy`[GR\l_omlpuTe]Gg\bd]eka`o^]HpihjJWlk^U^]cshkakPcacrnjWekZs_dhjc_}dZh]\^eZfCn^ata[ePkfb\_EZcVsQadwpbeAVXihe[c`sdjl]N\j\af`cc[si\\eai^]YddWmX\dY^faaayXm_sF[g\eaWVYceq\^Zca^deefaaeg`k\T\`l_qm[Yajc_eYcRgac[jlo^_[`Q[hniy]Xd_]fa]e[ZidfgfnfYa]e^daYZn`_hl[`bcn\fj^g[aa[gnVc_`Sc_cd^Q`hjmgxkhhWecig]`hh`qXdi^pN\WTf[lcgo[ZjO`hXiaeh\lZr`XkV\^[ea`[ba]hchi\be_eVbbdi_h\h\^m`ZvYd\Zp_Uf]bzeW{Un^^\ahq]fc`NZgeWXY]gqexeYg^^wp\ffQglY\xpWWaqf_f^ci^lsebkcc_ee`atoldnmz`lc_gic`]Z[iYbea_[^YfpkZbd_\tRmkji{d`dbiieldfcaa[x`jbS^mcg[Sci[bTRfwbO^^hd\Zivrd`Y\^dXU_M_sOecch`pfkyI_efV]\gRohkw[LcYm[_i]c\ls^_tc^Qfmcc]bZc`i_fXfbWdya_Uecc_Nj`ldejVlOKekm`ghci_vgweX^bciYgahtOP\jW_\se>gchY[WFdfok_\X_}bweZqa`Ohn][iqdWlY`\WYYS]j[eqd_``fb_P^^kybba[c[a_h^j\^_g`ma[iZf^eya]c]id`dsd^jVl^jXdh`kdaoe[f_csciSimU{c]lf^^bpld[kaumjY^v```_baya\f``^Ve[lYlnTWanYcgeYa`d^Ymdcj^afj\^f\c]W|b]`YlWg\\fPUQkcVsQZ]uW]NKvw[WZ_\f\r[TqXieXtpihoelXYheWhSdardWflhGlniLQbZlPig\nlcgk_aXvc^tiUWd]Oeab^sXi]avRcae]UYOa`rhcs[aobS^mi[yVi|gxPaXbUk]b\C[QMQQViW^d\OaZ^bQ\fmHZ\S\f`_igibcjnXYU`k_aP^zkmekclhfegj[VkdkcfiZ\nqgXnQu_h^gidv_deOnuos\\]fY\fdZheeaY[db]`ffZ`vaaY{Wba\`]dZZ``fjak_epB|lel\mzoshibnkT_Y_`dcbjc{Z`SlZadPh\_nUdnypc_qc\__=jFZVYgYkZTkecbWSeXneVgZx^`Xsj^`S^fs`_]j`aU`jo]feq_{^_p\ee_edfXfq_k_J`p_rdf`n\\^{agWsYgj^vf_aTbLjeZYjaxdb`eXCVKcadgbfhPlSQiZhjo\khYqVh[jWMpQVYP`]k^\Rc[flYgdbiqcQY]}peYmhde^\dSoaqg]iaku[aX^h\\igk}__bb_hYcichn^mb`PdXdVdbXor`iwtXQn^hZbhdlYmiildSWkf_ubd\cftYV]abiahjlndegsdbaXc^]iZckg`diP^c\oarfng_oaUbwfibfug]kgTXYRk^`\uTfS8zwS;LacrdgZePYlQ_pajmbUi`^e`Yt[XV[i[dV`boutYh|bhKb_iYaiikggjcfgfWYVfvZTgZgfmcrWtdbfpind^RgtliZi]Ive^dhWVjDid|ni~gRgWgng~Q^bkYgejpaOVmp]gZclo{VNVjk\eY`BXieRYehojO[a`VcZalnsdekU`dMZnUYrV{oSU[kRipl^bTHUk_cZu}S\lmZddfYx]p\[bRn\gZ`^Zfem`_OczPcOcsaU`i`ioM^[egjdgeYaoedeZH`FYRVYm_au^~P^``gSpoWHQaaoea^rS[UhIlTm^gQEedm8[PfvtEpkRVOhgVc{WIdd``hXZ]_h_ed_wa}dkOm[`aqka\QlliZN{aZkpa^c\]kdfSs]Nd]dcHx_a]dKkXhOPad[[Zgqm\ZagWPTx\Xkh__ao~wT:MeYhpj[\be}VcWX[gCwaL_Sobcs_j^ueShSjma`YdZZiZheZ]YvmXdi^[jbcZX_ak]]UTGAoueU_Tf__RfadgjbX`jqh^tz`\e]dTi]mVPPh[b]`Uj`]Swog^d]ggb_bmhey`TecchoS`yi[ZC^kZZcujYlWvY]f[mga\etiX|jgcffZbh]\nalciwukclfuaqaksi[abRfahk_[aabWb_iXUlpl]^d[\amw\y[Opak^]^ppb\]bTag`iimgrdffdei]bbgcaecieaZcpjUd_YgbhceZWfe[aaeY``Z_Ygne_nab]]fkb[Xccg`XhYd^jlgffbYrY]a]fjf^i[cidZ]w]^m]``h_XZ_dgVa^a`quq]`g{i[WkdYl`SRlbO`UgegmZkkm~fQJJdo]T]lqijatb^sfac\a]^fYZn]aoTf_Xclp\enX\bZd_^gdfq^|mXbakeTbcZmruc`TcntgI[mjmZh^f^F^p`eeeYhp{\jzl[^\Reaonbjqh]Qka`uZUVOZR^}cNa[_pmg]\fS[RWRpa`]e\aVi^_cakxumeR[c[_q\GddzXk^Xpqdpmei\ac]fe|^R][WblRT_gb^[`SfZUdl^dZfl_VWukPFZiXZ^D]``l\sSjPh_[tF`qci\a*efoOYqsVVLhgfcpbb`TkYfK}gfdiYMS]d_itUjiNjfYb]_eUYr_mcB[V_iGUY`sntXTVhbfm\AO6iUKXibgSpYSpL^YiZlZb^fi`ih`UktZ`RV`TVPWdpkio`r`drebcZgUfbe`\iKLdRO_RXfbWg]`VibgYZ]NVecUVaabef_Cc|K[RgZw$aKfjSujdpEIDXPjdDWl`RnJL_uvfVcFt^ZYt`_[Y_3`w`O^abchDLlTaR\aVa[c_]Ok^tRi\jZSIZd\]eV\]lml^KwjqOkZp>dc\QdbVkNc[\_Rbc[Z_m]plrcbZakWZvdk_d`WQINNlTbUc]egUr[ciXqm\iafOgO]gipm3jlqo^d[mg^WgN5Q[bm?po_^hKumllw_fbRemhgdKsTcdmS[qXho1}4fhhyJwGl{lTmCjt\Q[Y[Ufwed[_\DjQbhfis]sjiWt`gg`M`diwy`act[Slgha`fshoepoutdWk]f]y`dW]fTdre]zlZilX|Ur`_hf_Z_LiRAjn^jbBbghk\\dL\_^dqHlnRagjda`clidkg\OmIddCN[cu[R_VbgiOOaShhif[h`c:i[]]fficgqdh\naLgoge_ak\Wmete__Z`fWbX]ocfb`]bcfj[t[d``\cvhUW`EWeaXviah^nj[jcgW{Yajjilo]^Xu[}Y_if^]j]t\mT_bahw[h`]\igr`pZ`g\ddnyVO]_bgYuedgg_OJUgmw]iN`qeg_`YZ^kWk]clbsj^c^ym\gRfud]lszj]jT_]jc[^c^bfca[e\k[rm_il[ymhfZ\gj]hiTaa_[q^^ia^af`eh\E]`aYegXsdk>lgZo]ifVa[abx_V}_Wpee]`b_o[Sk]YW^a[Vb^g^^ibbdh^btx`ce\K^a_g{b_ZKcbffcGuQ^_X\gdl`p`\^kce__e^bidkiZ_]^edZqmwb^aVa_^eZg~cpmVRZecgf`YipadferWe^di\cZbggc`hd_f[fb\g`V``]`YaeZZbOjf]fKojTc_^Zb`iZ^fYj_ba__^j[YdRbgjbbf`Y]Fgbg`aRbYhc]{Zt`bbMWb]iucZhm[jlclmkbqagha`Y]iwg_Me_dgas\fd]h^[ggZMhYjwfbgflhof\Wmae^Nd^`^def]xadkgibk^i]zkZ_hjeZZWnj`TWdgb_n[`emW\bcofifb^i]h4cgg_iafaZkXiYl\jhaVcglj_lZh\^[ZpfoiZqgd\]d_dPCyZP^UipQVcLN^U`drrUoLR_oqgLW^mVige]>wprYklnfnkQ`beTe_kZlng_jYXajn\cb`b`i^`gMRj[h]d[uWchdbkYYn\aPL_UUfkj^cWi^dmq`VR\QCe[kwzXn^y_{Y_znas_E]^eS[^u]TdhpidcWX^qfkf`i]`_SedslwXV[feo_`nYdf^w`abnddjYako\tgd^eZS`g]l[^nX`TSQk\cyf`bs`\h_VmZ^dqgtu\_Zb]Wjhf\Md^psYbbfYhV]heZhWe{eYznfx{pUpkWvjseb`gfumbeYQfb\ZwgYrjhs[dnf[dfL`kdedx_^TWjcaeT[iQd_]kfhhemj`]pegXihcl^_`QnhfhNaVneX[^iX|[a^lYyh_ZVec_pkblaLbf=ga^ff`bg_Z[_Vgasaf`f\hm[a`d[jXc`u]aWdbckbmsU[]\[e[hfoVVVkc_d_ic`dZdmfXZltZd[_icg_[`MhojUheZ`vTyu\Sx]a[aTR]_\tgl[k]o_`efogc_]N[dgghtce]VcWRZoaPdnsndXhidk^kia\^`]l_`lcigmln[^uR`jcdhaXitdiZnRT\Ubkb_u\fok[d]j^M_fefktmgnsb^n]fyf[Tfbjhb]aX[bSp[c`dZYR]h`fPqbg\SZZXc__ia]kn`eRbhU^^gfh[jao_]hfm]\X_bb^mjliKrXbf^fc]_g``]brd[fhZnnZafX[Z^gzYxXeqo_Z[tbv_o^]bi]`^[bgYmhkkblq^X\_XpdjVbfnjoTffrder]^ab^bMkmOrgYyX`WHdmpuc^gfSjyfcaa`cqhibeUc_ttdmcpsboul`bYcnqH]oW]iccLlacmVim`Ygmbau^i`t_egWYgPZ>^oaEt~Z[c]TYcSYfQ\[ptjasWpqfeVWn]dsO[TSsqy[wTfMaQesecccGopWTgnh\hbqcSWfp\kT^pXk]X[mejZdoWpWqz\TiJc]^g`?gdh]ojlTdbY-_d\dj_]gmfdv\Ldqncbpkd\ra`^aQdg`Ofi`edX`]Yidncecehge[]Se_dZg]\ToJ`aael_\gpXW[ZWghg_v[]ef^ggb]]:Th\amta\`n\hRel]~eXQchlaXbn{ocOUadl_WVgPg]`_\OW[``fYX\W]VbdLaiXe]ehl`eo^`[ac\YPe`kKdY^NW[lSaX`jguVWOX\gjeJomP[]]rucAcgWv[\sd]^]abqYyYY^YfiZd_dq[Pa]UmgpjlOY^ckUYga`irMfhigWlaaUa]`TN^k\mXPjhr[fkb`h`ekUcciUjb_`\Rac^lV|hYbVhigg^fi[acnbgmi]afWe_a\]kn_achZdb_]bsYsygXXa^bZ[WggfqdVgaTd_V^bczkcoWc\]aoibsgjcon[Xgp``Vn_h[XuWrl]calp]mdiafedaoeZl[a^GUIY_DqZ\[h]SpQG]X^hx`]ZdTacegf[iU]tbZWpoP[]d^diw`x`RW_T^iZd\`_K^nXb`e_^E\o`fiu[jikjlNT\X`QdXs\YQZTk]RW\\o[`Uhpj`U_^HUi``p`WZkTPe\FPU[Q_RfpO_^ScjeVikdbjg8dh\xd^|ZkReapWLVgdf^`gk]gjxfd[Rj\a_[XiYdbsdIg[`u`e^]Zap^kUiebgV``chmU^[gojZdocsftftybmZ[baaia`YcU^Zia]cfggYlof[V^i|_]dbWen_VmP`b\Zba_df\YeRQWgVZ^_jmdRkb`_`k[eubca]w_X[_{Yaf^Yq`]gfhhnowpxnT_^ibYa`]kmadYmceu\Tbdlng`m_s^ccje_le]WXkZ[YeOre]x_cddcYvgbm\WdadgXceckercilqdyg\eY\ktbvZh\nbiXetgn]c[qf_cmjXdfVlYfuc\WmeZP^`^Y_vjP^_fbZi\ZYcinYgjbc^eyZ`e\ht_T^jek^dkYnWl^gYxo\fdc_gVYhdcc`po`en_aMvYIR^aq_WtVeYWTugfVb`UiaUk]yi|gV`adQ[_bYdeckS_Ke{bdh]^kwxlskkdci~^auh]jrhbbjlXWr^a[XgZekdah^\abZc^TZeqgdjuYgbWN[uVcpzbeJfjPpf^tmXcah\g[_f]]ohj[cZc`WbYah]Vvc^Xax^[i^dfVh\ZvgeVbScZ`jnte\_VmZj`efakhc]bfpdoiUq]WosicU\cseY^kPZZR`qqbbhjpdfqak\i^]_Uaoaxka[X\WskomY\\ofkVP|`dpg_i[yf`gTYOPkbl`{TYYYaPe^tGccb`gpiv_P]`uRccP^noba^OLXdUratj\`c[c_k`gZXTStlkYXdpti@MSQ]Y^mbyel_nrPmbya~sjhZa\iqdr`j_agpepfi]bo[jSwVXZ^udGRTgkm[p@|aZ_pgoa~~cOdleh[lkrPQ}_NfclVgW;Wpoaffea[_gShybaO`ZQfiLjL[ic^`cYQo]jrMeqfp^Krbr`Osg[[bR}rdiVxcpdyKpZ`vhcw_Rod|b~bSHwksF{\WXWU;RXcJXWnjpadKmdhjh]WNifmTKjG[nLqv^\Um`YV\ccr\oll]har_Ztp]^inPMfk`pQYAqXmgj=QU^XvZ[AqX]`Vf[bu_`OjKqNxZWt_4km\{2kemnRaRjWGFNlcwU`krxj^^c\kulRTTjV|daDiBcZf\dIQkSOPr]fTpjfbEJiTn^Uex[Pkc}i~aZQV^ecvRtx_fo_o^RgmZiQ`dTZcq\d[LdwaTa^}Q`aROjNbOUm\g_fafZ_`M`][bVZlWs[tPmn[fqZc]kgcklgYaZj^^FGaBrQoXUjbdV\[ird~O^bPhiedUc\hVYRbbagfGfmTbjgJEt`ecqbj`rV^Npj\SpcUOUjoLfcmcha^gj^SaZbcgi\faOr\To_egZLZNpukI`fkN]]`^YcTrbaVgMraeVQqV\Qg^lp]Feii`Zgo`maefdWWb@h]pV[WZT]xck]`i_enYn^_j`W}QjWkfnZ`gi]gq[vLclR_w[apZpUaUXgejhlgU^gna]^bVdayeek^_ocd_gg]^oxZfbZj{ets]^xhW{WOfdkcfbZn``a`ddLiX{Hxeb]n[g\U\`Fo`kUSH`kQkPQU\cLgnC`hcpuYq`oLdRuRzRdTqds[Tc_ZlZfP\d]]ZbUt^Pc[T{g`pUOaag_Udfhhj`mhaWbsVdWbcebZzjag\WTZ`xcX|UQns^mU[[Zh\`lXVbZ]dk_VLgbonhkqeg~V\ZfR\fnd\fyWnXhimsP^kcR\jHYnQdflZUu^edu^abezePhkrmtvrhaa`hbktpQzZb^]mga_w_`TN]a^bm~gncXiXZ[W`[qUrwUgw_`aid]VhvPY]Z\lblaeW\[cS[k\vgb\_^fq`cpq^Zp[d]UYhXqOf[]rgQRWa^bSQoUUZvu`livuG[c_gwghyjNV_shGq_SV_lr]X\PeejuNYV^kNj{hbkgbp^meeihccalhahUbTn_XbWlSWYILVYNRbU\ld_gfhVY_W_bQ\^_[JXh`hXWsXwcl]bb]Mpeakf`d[skhr\Y[oOfXYY_YZ_KyevMa\lXr]cpc[A[e~]skOSbrdoabWntcng{phS`RRFT`u9KkpfV~N[ktagk`\pcjcWuSGP[h_ecyJXSSohZuYU^odYQSsam]KbT{Q[lZPbngkeUBQpX9jhgWeaX]XVdfU_[ijOahlgGcgr]mc%OYa`kT8{qkplueugpZXK^7}xn`Vonoqh\j"jo^eSfavVkuXv^`8^RVmW[\eGWkoheSqaegf[fk\XMRK;fUWe\Xi\gWrXMTFaIebepOgYSgaTEhSnl]NV]mU}q`l^[Uun\y_bisWR_nmxfUraXc^masqQLa^]WSTU[cxoqemvPmg`sdqlqdrdjQNd}ZSdid_scSZdXL_``msohUsli}gOW]fv]`bi4Z`ezcbcY^vZHzbZefXbrVngwgjcuy^Re\]cTadtK]Psh[ig`k^`Omas]ZiqeQVpeflvPPbbUQ^Qcpm]XSbpZa`hWSe`kecYmYb`e^^yfVQj`_[eheaojc`@bXY}eVfwTYWeUnZgXbpN^_h[kWc\dgu|bW[kt\m_gPde]QS^Ve^Xoqpw]6ueqeiX_]vRb\SfP]YiKObvVa]]llNdhwvf]NfOUWi^zPkVdccQ\rXZ`aAWhpjaGa9Kuk}XjdPXiYUYno~>a`d\bhkg^hRXbf_]akY[nBcYb{aYpTa[V_ebkrbj\an`q^cfZPnsT`egfh9YmXGbS]FTlf\YNf~h|WDh][fcmq[hbHclZ_chtdi[hwqopao__h_Tekmc}]`i]wh`ZjhS`aiT_seWcpP\bnbikek\aaa^^[_oih}jacjeqXbljUZuwdmokxc^gbfkqaPkXUjpwgT[k`eamkIbbSRihSnpRjVdf\enbt\`ev_btwfkha\p[bPibqz`gt^a][\P}kUXIWiY`Z[n\[SgCxaQiciZLg^W\nca]aYahYkf|_mdhimxb]]w]aaXe_cxaX`^TYkflfcSf@eia]PRsu^b]^v]t\Wvad}Xp[jtmtHgcYf]SqPlcnqiiUpN`^WqVPoacIOlYUeXizvUfWViejUmRg\qiIjTlhh^hVbJQdS_kVc`biyWb5O\`sZnHjcf[cao_hlSxkus[OfeVdeliZ]o^y]eg\S]oeU]fGfi^\nofacZFhyA_dgiU\R^ejZmXehk^P^_ZkYWAwQOOZWLW]gklgYiLe^TYUsiZoZ]k\[eJPu_IOZnok[}]sbp]`qgsYV\djC_Ax_Xifse[MU}\anSs[eUyrW]hdeSk`U{mbYapkWhL\itVheiS\fuzgR[o^waWXw[^\aJZ][exJ^n`_VntQtqRkpc^csbi_^YVd`e_LdTYfUgYkqeTUemdcF^ZYaha_V^Qbejx]FjUa[jgPfjnaZgzVor\-nYVU}TwePh`nhsybX[rcFS]]YLdb`Tlla[d~EtXNTUatQgYT`[x\daNZeVKJSUPPhVdHb<{mXitXe_Xsm~_BRmcWRNq_]Z__G{[INQm`CMr`VmMsCQbYVncwh[NP\l^v_jS|Z]\R^=Bkbf:Wfa:]csmkk}qRpEVysB^]Ebkw{PeZn]YSl=L}YJup\YdCgvMf\Zu^^\\naxnRfk?xsXmazv7^pkl?miRc=cdUWi-U>UWfLn^~eclQckt`TchlfTkajTj`UiqZes]dacPd^]mnu^vcza[khkilP`YbhgkT\hun^`Zn^`U_h[ce`dS{SW|p_tm}i`g^[j_a`eX^_^fR_`hZ|ujp_cakdwnXUZfhTXPq_MRmiZxz5^d}DibuaQ^h^ld_^p_UdXkT`i\_]^jbsp|qXfR`[S\[QefYciSf]IbYVjofn`Yhf\~nWtdgnhglyV]Vo`ZZVzg`_SXojWRQk`e]didapzc~[bU```Z[\Ta^ojpwYprofqi\KmTv_qevPRbcX`l_dYXWo[okT`o`s]td`^eH\vl}i?Az\_bbjbl{W`gigTZmY^c_qqprdqamoPUY[Znlj^[UhrScgSnWZaEcmc_{]\`VX`rWXcdqjh`Ya~_rgcYbUnox~c[ucwbfTQghmxq\msi[bPaiqlj^rXg[o}[RjNW]Hl`__jbS[^cbblUNSlWqb[iVic`U^rclc]al}S`^eRj[]_eolecnNUV^X]jkqze[pkkgcEahfhy|aOYvpTYQSTWiXGTmajcVsWiIZ^RcdSd]^][\XgUYYSgWYvbib[TkVVmOSdLV}[^G[fYVjg^_BZvioOU[pa_N}fgsZdt\[lc]QnW[Y[m^hnfb`^rkarinTLm`XaRh__j`_D^\fQ_^`]\fZZkccfddc]e`ndg_h\_eiT^e^fgcU]Z[e_f\deuddZeipfSSvkspAY`x~SZaZI`[Ubpg`U~N\T^pVYc_jS^h[plX^Wnkta]qpcae~gpiXgl^Rm~njcfZkeVo_i\iUeba[Vifp\`[fjd`]hka[\f`j]aS]]d\diYf`r`da^jdJ]Wevc[foV_khiXymf_dY~einh]gaec>znVooeUrupdPf\R_Zje_hbn]dbDanvbi_eb]S_`vZ_fH_E[Yelt]\VWzUkfp^geOTUk[Xngo[kNm[`kdn^S[lhYO]flcfyrZ_lQbe[hgbw\acgs]ZibZTe`c]^eYiVaVUf_o\m[XecCde\Yd}PTLakkek]_h`Sjib`[iOlpnV`hUaK_ZMVoPkhcGVbkbkeY[ib\KZJb\a]LdM\VUgp~XaMfki]jd]eflS\tf_f[yXerWXyd}rf]leec[jpsfds\wTmZbNZhrdepm\_g^jollkkcNaUcQN\La^oc]mbt}gRm`Wugey{ehRzlf\ngpT~d\la]=fkO{efDQtXfq\F]hnOYcGGfeseuVUWYCV|Xyi]kmcQ[fd_k}`_L^v`DvNwmaQI_a[V|hgvodjcMucd^mjge{nM[U^jLmTdO^VXhnuSh^kz~`u`ap6mKefqaGmL^rncR[ZQgHx^[RbocizxKsZ`beC[DUidvockZibbL|bjyW>W]fntebTcqUikW`lf`Ln^oLKLrnehl[\bZ}m^_ioh_[evf@ibfqhT_QsuWgc]i_`XUs[rnfffeuUUofl^_ndZfh{ei~XdQ_`ZntfGhC`ndplie^YacGe}UhffbbNVCkjTdajvjyWZVjLMJga\{[^mRx[hsnkm[`mnrfo|\onsaaRphldTL^dYaYqGhe\IRKgjegXcufa\_dcc^^jg^^_Q^nV[Zd[\PgLeXcry_cKi\f^]idUg`v[v_WqibkWKthncQn]P[^HjbZyfebpeNfPiYuz`bLPef^ebkrbhlXWWfj^dQixk{kmzY`Jp[ZwidcTgSn[Vifar`mb`exvid[ogrr\gfhTV]feMYYZVamca\dZkhtftZZe`fb_vwPrUew}gh\ihXlaOL|heQhaYiZijmhrcU[Qfu~JX^hIdaHg|ZQuoO|pms\\XYkcrbdsqeuW`eZgcQPyZbpY]ZbuxSXZf^U`rXjk]ng`UPkef|_oycY`dWVQ\Yf]boiX^[d[ph]hfi]\^k[i`Sf[lbgXc]YgicQDa=gRz`uf^pkNfoiabMb~bwdcO]^]f\U]atviqwcz\oUvdct]feP=^cgc`|}pckjg\otmdjNfegafH_acfaajR_IWIai^cjn\jvm_qjl[ta_his_Cplhg^m[XVTgjd]VtfXchi^Ssa^dWk\hjfb\XpSps\O_^W_ZhWTRXReWlhT[mVj`cdkZufddeoZW\`kYs~o~Zeuma`o^_[`mmpfibUacc_pgfT`]pr`fpb|\f_dTdc\mfhdzZpi]`labhgFWY\Tc]bgr`maWhidkZfbJ^hd`lu_ThkV^a^dcmbce[eZcncm^Mrgvececl^ujkj[ayUdbll^efd]v^_oY[i[b]g_]hpcil`kkQNce[vdf[ikybfhh_~\dn_f`__qkhZkefhBkbpfb`ZgmhY]bbggRR^X;fr{cQO_rkeeVmfpqhp]ycWoRXlMRdpbX`lkWvQdhzhOBaVcfx`__obILZ_YmcX_NlUbi^KuWjUba[k_biU^gsRdiTfbn_rbhXgjLWb`xShgh`ib\WfbboMT]D]_aplyfNjRZabZfNr_]_WTrc\^YTQPx`dXg`pP`unebafS_`\]aW|`df^UVfasd]`ofh][e`hYUkmVgeZi\iXh^Rgncei]^`]rkg]_Y\f\aZdjaceffSchTaWTJV^]sKlUTSn\h\W_asNXYbfWjWafKcqbpxj]g]ogUcbg}gUQm[djypaagbg__iYdk_]UUecoefoReLdlcSxgnkgiWcd_lWe[lW`mdl_kWh`Zca3pd^vYcaZZXw^^kiXUb^eqa[]pW^dckzaf_a_hdVij^`RYo^madhZT^_iuamfeV\\_k\gXZi[``pZb`Yipd`s`ocy[bZnjiYjcdk~}eb^mW`cnare]v_`xdXh]enh`d\eXZb__[nfdpXmjHpXcglWYzUfXaX`[a_fWpr_kblhdo`IJoUXUoTew\blf_mjZu^iYbfTw`abtPhcd_xvbqbfQqe`bd{mqnkVkWhZ_NpnjqnhjkPnY\wjfhXpdNR[\T^VATt\[f_]\o__Y]?xVVk[rpWn[dW^ujrtk`^s\i]^meX_]qfblXmfYLZZcf]\x`lV[]UiZQOIgg\lYZnTbY_rj[UfK[vViIdQyde]hajpZ`QSY^gy[hGeQh^d]YjsiaXsfcL^\dn[`esZadmhZ[T__fRTuUpZW_fwfxXyObapZewOzQfQvcgfh[mei^`xycjjpvg^h^bXicb\kUbUvj]kVw\a\]c[p_d\xQqe`fWicu\^\^vd^_q]kT_p]]Q]dZpsfj][aT\ZmsUXrsg^d|UwbcTi\`UWkdngk_ji\zlcLgKtmZrmwZVWUKv}ifjtup_^dlWaS^^]}n[oeKSNXjahfex}dXXY_gZ\qKO`l]IPgVNK`VnS`KXQTqYq^Mbl^oVoTlsYWsWXvZf|bms^[qnfjoxUq]uosIguW^d[uc^OZj{QcakbPga~IkP[cgf`XiYaUsyjeWgVe{`lkei]Jc[bongg`faqqiuYoZQfatifr^}Zw^q~TOgaKj~jlRQRK^ke[gpNZYyoDXppZ[Vpn`dl_W^nd`kgcQ^wcSorq_aen]XeodvJ^Mv]jePTqpqDoZjaf^qV^am`^rXYYlj`qxY][X]e_Pa^grabZTTmU\`WPsUJSm`Ja=;dfMUko[e[[giW^UtXdnPXRa^NU_eZab_dhn^hmCfcZ[jpNM^Y`q\`aS`ObZ@lffbhbf[a\Sdjlz>?pyzne\mlRNtfor{`UnjTWHboOE[nhP}asYXg\_r`_uppaj|lg\j|eldjqVXQI]x\bI`j^keXb__YiqaQ\jswgWySpFVaQPT>`u\ohij@OSTd9hA^dJasiXmVM]ykqggZRze\__Z_U`_ab^{``aRSbN]kSa_hTZdLXhJGgbx|MU^oUZqm]bSUVp]ZfiUbxsXXc^`[|XabKroS9_`Lm^c]b3[TLpL^[xPa]Ekc>_d`bxYeUzsoVe\aBbOb_VWflQR^gRTfSVRbchtmiW`kKdTOPhRVQ]u[Wdi\_jSPKdjZWRf[YgafYYdZcVLTYhpnoZ\n]gka?ij\TdlzasG_kQZVP_Vc~QxM[YZt\oHph`XXYvUTG`HZLn]KeNbby`geN_stw~VGssgQgoaQ\|vl^VYkieQjrj^[RjQmhGM^X`[aX^Vj`Wj]fqWW_v^LQVnmUemucg_eYnucxfZfd`]_taXo`OfreNqzZeedid^qfdhQambbVSibOrQWbUYfldvhk]t]|qRXmTmdt_htciFTTjkipPP_SmmhhfhsoV|`pb\lUcTkwSu}bdPamZ_ZdhZrsYVs`fYM^iX^u]bdbg[femac\h_UkheX_bcYisW{drige`^kTk]bZ]dW_iiUXhqqmasRUm[X}ikbdUaO]efc_XaogjZjY}hIYgf^?|cbubme^ZZuyQ\OW}^[HVWflzipgoYY\mg_XUarn[\cbdfcW7]nq_[j^Oggedc`fa[cb|aehm\imcfUFqrWSk_b`k]bYuLj][Y^dmY]isdjjcYfXn`\`fkcd]jV]g[\_^MYcVad\_pb^Z`jsZ_hbdQc_\\h`M\]uU\QZhss^{Wp``kjYsj``ahMjzmeJdCxZO^ii`v\\gjX`blg\ahda`uSlwghieqbWZYcef[k[anZeb\ccbhj_qn]tU[ggjYhf`TZ_\]g_a[bf^chU\[[q`sjlc^j\]eSbua\_edmb^}YZxf_cbjbcuh_odha^X\{jZnV{h^`blhqg_Y~eeoc`d^de^dbUi_fUto`f`swf`obrv[rf^]`wqylUzc_kR^a\Zu]xu[Nkxdc[uQ\mkYZstjoahn_jyp\ebk_YYTNiktaSvUclhpj_f]d[WVbjOQnTgDsfhWc^`gdYjj[ZcWa_aeL_prY^7mWn_RRrg~lajdM]ao_eRjmNvgY\_iEtYhlRWjXg\ep_O^bUSfiUkbmfya_]]~fWN`t^c_\yfbq_gdg]gk^[`Y_l`IPakor[na\av`l]tpRR`siu{RczV]dl`OpxdtgUeJahUba]hYeeWagRdfcVWaMhd_icZAhVWh`cnd^NcmeXNbigghUPrXBmfh^XUkRnlunniZ_juO_f_WWTfMkjOpZXT~abe_S_ctguVgZ[c`cenl_ee\MiYqebdp\ihSfjd]cfidZau_qidK.eTlja\I[YZ`_fhok`^t_gti_nqh^wgkfjaR[jdbk}h_jlaX]Y]llW_x[caeboSnQjpdha_p~lhigXWt_mbXf]PT[Q[KYbr^roiY\dlfdl^NgZelWaQ[`]Zujrjkf_oWa`D`Uk[iwSelicqbig`bUjjoo[mg]cdZUpS|a_n\v_dbm^m\~b]d]bdvcRnWj`Q^Mathl{Rao\pV]`\abZrfoYdP]f\bQ\a]meYvKTvYnI=dUib`fZcZSdUeUe\\]ghZ`jzkrSeglO_iom`gclqdx[Ubhnwi^foehSeedV^`]edddhs`V]_ig`[L[zX`adhjpqWhGlkjpmjgadalSuVppo_hcjeY[UlTn`Ie^|\TapdQi]geug\noZbmaal~deU\^xRLS=]sj,fxC!la|fnaYnMj@lJT~iSbg`jSz__jo]H`Wr\nMfo]r}ivAfkjnvjefuhdYZbe`rYgcxay:zQslkd](c[hb:`]cIIfoQYl\>O4[JBjgfz_M<\l7m(Caloh`Bcyb~`lk['XzQpOUzsj|nUl[VRbkZPrMjzffXRq`fw\jbXak}zijrDeY|QjV}jlndf}dp`jYh_jfhWgk`cibP|c]rYPfrwsb_e`of^oy_Dh[Wh=sf[_lta{WDnii^baGXfUUwkeRXheVUSDdseK]ubhq_RhCWWeb]dvatyk\WfgQ[ef]vgh`X]uE`a`an_VgRf_lcPuhaaU\bVZWngNYxj^XgCFtYZ[idWo^fp`l?fSXi[fdw\]K}adWgbb]ljsYiTj[oXTT]]`_VivXe[TdblZaatY\w\qtAVcaXYD_Y\dqi_Vyc[XaRcfPsUcvadtV`n}kYfchrbLzrknPlokfnXkR}ab^v`XtVhkeiuZTjbkQKWpjahsQRaghdZmdrSZcla_4T[bblcZjor2oYrYplIb^_i{H`xUTi\YOhM|mflhk^^bZNZg`_PhbRqP`ho`SlfMVteVqzPIT_]ikkSpXakkSumhe|_^chaS_[i[hmb`mOUZfW^cVblcdkMv]\cYN_imok]i]f^Se|cbb^iTfac`kg\YsbXZYifce_\lbWe^Ybp\[YadDo]UtLsnOsZd[]YS_jdKkf`V^qT^Yn`J`Xn\pZfrij`P`gcY_TbS]aQ^e^d`Fbc[fp[s^`hhadrhfapgia^`gogn[q_^u{\aUok`ib^Q[yShkZ\mxjgkbgn_ffCYmqc\lc\wYnidnXh`lXth_[f_hYXdeg]I^aYjleid\VYemdpkbkhfhc'`a`fbNbl_dIwcff\lhkXe}udf[kqnNbf}]eNSf_ahc]OJUfoTZ{liMIip^Mg`dXYbU]rnMW[WhUaspl>nnUvVhiyfhdWdk_[bacmc]epa_]edo__akV`kXSsk_idgCfXma\a[[weZwdVKfFc^lef\PS^oZklWSfeVebVqdetRjV\dmbccgZXRq\[Tofsmg\cpoeRlbdr]goibeeu]qojfSK]afc[xImOZnVfdZ]tmK]^p^ikaX[]ZaU^lW^hbgUWMaWuljhhli_liYk`fqq[xf[m\baI_Ym_Lfegpcbabkd{`jpacZec\Ow]qgeKuTUnncf`nWnhihS^>wewWld]s|amcbmY^flAWmeQgs^mj`i[]xcT\[]][e_piljt[ppkjPxs]b\bYWhe]lHn^Pt_Ywz\]d\xhj`KUL`\Ys_oaZK\`1e_mVVd]e_U}ZFp]d\okV`x^ah]mYgopmpYlSdgq_wmg?]`LUf[ekSPfmmc]S^dp_hHdnjU`o]cVacpm`XWBz\qYji]gUl`Waldah&C`ZZi`cb\\n[WhNu_bd[Jbkijb^a|O_dSZ[[RTcbm^]howq_msjaV^Ycfm|gcagtka`nNe_baZn[\i]mYWTVJXkbr`agwqR`[b[D_mb]NsdlXjWldg]Khjje^`bUis_eh]lqTMcdaeZbnw_dDS[`X\V`kdVaUhdZ\o`bk[yPjZ^a`ceehlmbkoeZgPWY`_i\VceU_\`q]WjabjL_c]WRVe~L}Y^ra_iz]mkaYpkkSds[}Y]xnT]rvr]i\_Zagdhd[]ppv>ofvehv\YhkaW[e[Ww]egeVHw_aZaDJo_ePbdiuKidKcSZacr[VDl[agU`XffmYvgYOc8ghaH{Yoedpw[fvXfzXh`nhml_aUL`ecj_PmOktxVOaeiZgQgabcuPqh[aa^VgLPOTTs|glfXLeYU@`eeVcP[S]dho_lRXm`Y[gc[YepW\[Ym[\h4sV_pUN`IfeajrUfkg[[ctLcY[^ZT^YaZ}b``UUSdn}`T~oc`yh]S_Spbdbdk`^eW^V_b^fTrf^gOyTHVu]TV`V_Ug__d^m^]Txg}aZeQvlaKYX{][LgT_UF^q]bg^WZZdWW^en^\^aUW]OTfxfDWeUUDki][}bbO@WUoycUjT_baR_^]SeovbVcgzRecWf_]o_aTiiW_aZcfSfU^nTZ{pPR`csiyMrsXoSwwndU[ikY\_NYRV[i\^Qa_UZmQ^Lbiohe_[vYc\TTY]LY[ppTpVbT|ylko`hinxUlZ>po[m\Q[\bWW]PKWa\feY{]ygaIRTTb`]SUVU]sXtoZdqWT^djefqab^bZUbZksXZai\u]kZejQqSP_`IV\VQqj]feJma`a`JakYcg`Vab`are[g\ilw}V|akeXR|ad_}RffVSV`{^^nTeT_eZkbkx`]]gLQO`djXb^PZVQf`FX[zMQ`gRY[UTgSu_\_deRXXer_Z\]h\}j\LWM_RbTSUMKZ\VYR]cPFVf]hcYWXoRna]Kh^bP[hgf\UV_WWKXV_`TC~oVQXL_UVYU\XR[MjWUVRcSZbJ{mXYFekzuTPOdT_c^]enfei`oeeU\dX_Q_oX^Z_Z^n\an_^_spYQbIgkZT^dVGr]]x[gidUTcmubRTbo]_xdsgZ`[k\\Z_w`ejhqwSmilEjh^_VQ]_O[afg]f\fdscT]egQkZXZJ_VZSpTgwHOR_b]`gMb`_cuiY]d_`ngtZ]fedV[nf]a^bWYgk^__]infgpjiatjgrxgJ[]uf]O_^k^]][h]a^b_\mp^Zwk`a]bi_^i_ag]mdgZ[Sfj\V^g_eUzXkZUbLhnWdcXkjp[mrgaTbchfhjt[e`cSaZ]nk{^[q__Wicb`dYp^vth]XkbSPa_V_xl^f_gb^esKjb_L\s]ou^iSbavbPj`exccnZQ]ihgadMjgsr_e,xi\mV^,TjbzdkaV^Z<\_fIiK`\a]XzXDoYfdijU\g_ZVmbrxxV]iehTdehPhubifpXg]lrve[y\kYd^y^b2wPkuWlWpWWXk_URm_e^@ghlWgko[>Zd^dhQ`SK^]hXOp?BrP]wVclqRGsTvk`njpUsNt<_luWf^enmoZsPzcRQbwk\o[anUVfdnC^bixfgjVx4[SQWio_Fpja\OghbP^mf>`R_d\qSbYgDIGR^OsDgqhSeR`wOrQfOlZUXjPGWdL`MkZZVsrxKt]\RoYH_ndfgh~_o~tY[nZ[QuwfSNCR[khichdaW`rfnpdRafibnojgmjg\WTZ^Zjd_^bX\]uhcY\gaghncpfJoO[]gZi^rbhe\zfkeinibgQmQbkXYc`[wL]jCcefcZfmZgrYHocqtVfVSn]kq`]^Ygj[fX[\e`acfYgh]YT_UhjcWncVd^hWl`^d[j`]^`fSPh_a\epsmiXaTfg\ibLS^`[_Tha_cciXakhyjgdyhXj[k`jfbaPUf`Zlw]TlbeU^e^_\YV`hTYbY\nci^^avlV[kh^^Zb][^e]YkeXemgXcd[w`]_ptf]<`bv]^e[Rf[WfVf=mfWQq^rO[rbKS^`qjlUcgtcUlUfe[ja^k^gpnlcWmg[k~JeKb`^dkcVegRW_YUr\oYgeY['c\Wm]bPWveexeiXdnhb`bb+akj]dXb|cjhZ|\S_nvdj_UZ\XZ\W{_lXyjcWV\msL?UT]l]pfmcVYS\hcf\co_j^PnQeJ_MUf[cTomI\UO^X`Uo]DXil^\TZXaSe_Q]mgmadgeHaffn\@bN`J]m^dc`hVA]af`ecVFYthZUg\S`WZaSifL`SNJrndgQ:]CccMUUaQ@^~bObRJ`bkk^cW\]Wj^Yi`H\z_XWdhwdXrbaoblX]^lwLgGblnNhcohf`Yflh_`W[/ase`amlf\d}PeiMcdg_g^aWr^_aZKjehwP{k^ol]j[n\_N[MOnhHQl`YZipdvci[dXsYaWo\`hcpvTgs^uuW]bgYz\ctedYm_MQead]R_`p[i`phzblvYacxh]ad_ddIj{a^[ZqpCZih]kibYnUoRVTaN_lWw\[_]W[[fbamxXa_M]W]]UiheY\eayW]bi[^nYnQxSVex`kZlWmw[mTYKehgYkwnibdMW_Yt~OjcjokNnUiZ{ei_cmmhzxoZ_ejZX]lSgSsnjnVuKpco[r`rdSjaUUlkPdi^Z]jw_`OjTX]UtcSNb\fs\bdU^_kS[gd[xoZXjhn`V`hdaDYMgtVchh_SldfZIvjmq]XW_]kkX_W[LeqR^adTYhT`ld\a`_CYkr]ibcTb[]UebuggW\udU[^mpZVaalogEgigrbV]_f\`bc^Y\um]`l]_sefkdvoqcuf]cZPCpbcg]goxVb`EZ^rfaZUVWiZ\bWgcX`WX_ho{Z_n_l]ald`fKvWdiddQag]b_h~kYrzacRca\cjmldX_`dmZq]Y_^_vhx\RK[p|ffK}dhmjdbY]alfheaaVjdX`qZYdgQ\Z`Yg]`^[if}NbifJTozY7c]kX`Mf:Y^bho`}]mc[S[__[mNYtfXU}d_v^xc]ZU]en_fb?eWfzTkZlkplVneonM\`WXWiWU^pYoeW_hb]\\[hWgSeKm}~\PPbT[cFdie[]hRjb^W^T[^d^_RgseXZD^TcqQ_Yb^Uf[DXslW\NYb~cdedc~pY^[zrajpeda|Po~oslc]hnbXxy_FlX\FdOgeUcTpgus[k\ih^QZ[nl~~Ta__kfghm_{`fetllhc\hOlgcip>UjVQhOP]Msgf{nYaXCaUNe]rmbahUa~nfc^fUvo_Iefjagesw_cqOYZYj]J`bI[sKh]gZ%n[ohXim[jd^flc\^iZgkMX^qifg]@anaISbWo\`Z`dgcldoiW\[wn]_h]V]h^aUno^f`{bTU`d^^kav`Qie[phTg_yBcXsqibi]\S]fb_m8[giz_dSfVZWbwYckaWYcu}TaVh[d{VVwY\{Q_h[SXcKvWd^oOx\kTdbZbWdkwrZhhkceUUqe>^Y[]^aIYUm[\hm]]^}]`_QWTzrbhUnN\ZRh{Y2ne]cggh]``Hf^gnh^da\bavtdZQ]dhKdj`j`_dvYWVY^Va_r[^ed^p^c\\tRfZ~acVbeejDodZtiXisZQ{cTibpb]aVkdxcgw[VPfXobgjeVqkkZhfnZOsX[m\g[\ghQk_ukmy]{uLSKeqeZYa=c`hi7peWVepznbjRmmWgYamfi^o^bLl`NTbi];Y?hZoKgw}]qK`gOvpNZl[Duf]wadWUpeq]]]hWvbqfZ[Z\k\crVrhP~f`h_nIdb^h\e}R_e[ckh]dp]diUqg_Yiqmg]pVX[kYX[hkXdeebwZaNcfzj\dgvu_efUpY`hbgjr`eVfWkhWkqzUelj`jejWyiWHla|nr]^h_eieXZc^bh\Ohgvf_WhaYmY\j]^USlWM_Tj]SQV[c`xlYbqf[a\dfi_dVdjaOSW__r[^garrgd`afY\_YjbedWiddVHn^ec^eoOj_\__iaV\WZdPLU][K\__krd[\cdRXTS`^^_^[vsV{lJba^e]gIg_v[^^fTb\QbZUW\KWK]knsYaofc^j^ZlebBMdgWSt\_ukjos]W`p^VdU\gmhGR`knT`BfhZgd_r`S[{g_gfvnfs``@^dWtb^RjZJlfe\P`MPbenp<^_\VracqZVTg`aS^Vlu\kayodNh`JbjlcdZp[`xZVVf]nW[`QmYh^^migeKPkihn^\mG^`bSZ^L_hr[LgdWbk]K[g\sP[Fa`]ZcxyaScY_R~o^R^j`a^]ka]k^][bbfjAXa^]dQ_am]^eZP`_aQWMGkaSb]Rlf?U]YVicWU^TXhbjMU\`f^ZcraTTScVPVeEs`UW[jKdW]T\bfpXf]An`UiRYpVrUCU`_ieRqS`dpP\\`KWgDbiQk]}^dT`6aiYemsJHvbhbnbc]q\c_hPG[e``iyf_U_\g^e^g^JdYh\a|]`gS_cz`UfX^bvVaeR^gV_\\[^TO]omeR^LqKtWSrJU\In`T[\_aNqgYJrgQ\`KsTh[s>xvvWYbHqigbelmT}fr_^okRm^tU?=arI^fzhPP?ejkeh^mXXTQLQbtb`\xffxJYele[lHrhn`hfq_niYcnYdbZf}a\RqXl_aqo~xuAiWwakltLaWtl^_^m[jykjYW\\rmqzeo[hcXcchoaeY^h\kjT{Ukg^]YGY`Uk^COXRS|d__cG\e|gYY^b\eo|kIx[V\Q?qe]U^_CoEP^k]][zekbc^VS`TXahbWjvYci]_\_KZ[WOVDpTZ`KcTsQPMsT[LbhZUllUYNUKecL@VG{GMOKuHIZTNZ]BgneFy^i{kbYqlcj\SflsqMdialcu^i`gBbfgg|[jktIw\^v`dAiqeY[Z_u[P`bftglio_u_`_t[dkSU]CWXkibhWhmSjVf]WPQT\vifoNgjXeig`Q`_X|^`\fe{`hr`mcTzoJpbinUfe\}qRtceke`kQ]dcs`YJeoZO[]ippgs_njfhuehjjdufnX|NNas\ab[^\eZgy^`[Rn\he]mde|ebaV`gati__[cbn^iZV]nrJf]_g{WZ_iaTb`i^eTd\dc`aTiwiaRs[ergho\Y\Z[b`pk`th`aichPkgrVgZsygVX`N`dbZj]Zg`fWZ^_a_ha_UT}U`ic\_pdflcWctYRTyZ\fb_hqh~]R`\hqebbiYVXhba][Wfnv]\`fTchZcdjle][hhm_liavY`haTreJhlimamg]a^Zx\[_]YUXbcYe]YggwlPqW_vX]brijnRr[_^bWi[dYnVb[^nad|\ljVg\LRj\b^_[U_XkcjYm`H\`i_\oivPd_ndd_mdgtX}nl]XThYjhUb[rrgsm^]e^l`YqdlQ^NjcdahkYjLmcdiavhOWl^lb_`Ubcj`XNdcZmW\fc]qe\`Ofb@fcg^nbmYlbki`tleohigmsdnhSqd`ZaVbjena[]q|bWVYra_[ftqZ`gcg^aNcmf\^ahalp_om_]cZipoqffX`rYgamofabaVadaZPm[`mnon`ec[]bjjc]wZZboa^pYohlqc_k^\OZcaiXlof[vccvga^fmgVbdi\jWmZrj]]eIT_W\g_fdqgJogYw]mkSlaang\[^^J`g`hahoybm`gdef[]tc}VQ\^h^]maO\`Yre^hpl_T]Xm_x__[\N_mpVaec^uSk^[tbjicafhf]mVjc^ie[_Xemq[iXlj[kjlT\ba_[`gYjfdfpenpbVYcgofpYcXnghkm^b__L`[h_n`Sg`bUcrvZ`XU^qa[]UIegbqZyauyYP\phTamlvPlDh_Zobjgcjebbm[_i\qj_WYpl\m[kb^f_]f^fnb\Yc`mZhbp_ufV\adhoVak[ZSYlZSf[\hd[uQfdQLVmdX\Y`kZmm_WfZpQQkcncgaTdalgbi\Xckaj`Zxakf_`chXT_`a_bShfeYjp`abif_ms]lnaVejedb^eohWchmZ_pmzpedd]sN[\tblb\Ya`Yr}Ta^ef^jVoigcqohdf_bndcz\bcLccO[zyc][lXaa]^T_leoheiY\m^Ut]_fdekmb_SZ_`Z[dcfuyofwQ_VdS`tjc_XW`Yb]igk\siWi_nZWg`TTWdo\paZacgf[ypVWVdhXlZlcZy[__\^f`nThicmhh_]^[Ptqdi^^fkYxUi]dW~H]ejebaX_iw]c[jONTWipeQpaochUcV^Y\ZEhe]Tbahdqdj^^dU}\\[jlr]=S^SPYduf}`fvmlQgRWcqRGnTN]ze:U{ijhcVWid?^m_cl^aKe@Wj]T`arZhaLg]ojW[ZVj^aI[dicP_oeYQIpRnp\\aYYdaOSY[lHWijtcjQ^oJ^Z_q_W]_:bn@tWaYrZZll=jc[gnMczbhmc]hegpsX_z`^^i_e[\VlV[eWoXgaj_ikfnaqXu^\Tnbhm_Yvifsm_VhU[e\_ddZg\i[f`vf[bUm`Xg^`ccWjpYr^]inesk[dXaZpdj\sdfaW_XgX_^\`d\gf^rcib\ff^Sa_iXn~eZf`_Tbvpgf_ad^piXod]]djZ\\recd_sdadqh`Ybad\Zpjo\Yk_fcWp\amhkgadXeja^nhch`fdmc[kddibjableagZ`[aWfZtenXjjahgbtg]]ge`WUihV`WZdb_`]ee_dcac\[`m]bSYVck`V`Ogj^Xhffk[]c\b_eRpgTW^`[_aZlactY`g[hj_jel^atnUWUii\muW]_W_lSmb_]lzmRmceUhinWkPWl^_e`fg[_d[gWjQ[_b_Xjc`XDXf^dj\hnfXD}wOdf_oWRYjldbeZ_g]cndajfgj\`Fggc\U[]gtvZ\c_[aj^XCoa^WaUYzcjY^oZifR_frDtXldUulmeZ`cdbkbUq`aYifgpjcurg]jc[kbgd]ge\`bVX_cd[nUh]kjbZ\dciSZ__`de]YvZgadX`afddS]mlafgXo_hZbaWice_moosdRY`ihWaZdrl^fodYlaV`chWX^WlR]eZXf^YaeZadmnN`\}_\j_eibki[j^qkca^]R]hogb]nVWYpQ`jhsjabNbsXfab[\_UaW\[ZZqofk^WYShVueyXg\bXYddXb]g^kgb_ZWM`bQfdch^W]ic_fQaZYi`dPdo\giTgWZcf[dgYn[pOeXaRM[[fZjkY^T^LTfacaN`hfacWQZg`idUonqSgK\`l_XeWbb}ji\eed[qVeXlYun_]kV[lerjf]]e\_`igZUede_b\ljZXmn`RZab^[alsUjhRf[gd[ZefeGkeZ`|nk`biVnO]lsG`dWm\^Zrit\sdmdc]^]__^h[ceeTr\w}ZdjX^yccet[fioi\nh^gkdtjkbob_gs^fetsi_ige`\`YoxicbXdgq[hm^gdPb^ef^aeYiTbikew_^^Rle[Wkhhd`_\h^Zgn_^cfiykigwVqk`cadNjaiXac^bwje`fabuf\iarh[c\Ou`cf]U`cxfobU_UvcsXYhelbcbVwYe`^p\bbggmnnd^hcy_`hCudgjSc_\[X`aZbdfd_jd\awrWKk\j`WUVibOmgddjTU^T`VYW`^]pefm[eHc]_i_SxiW\^l\[hf\XeZe_mef_[edY_f_YcWWe^`s^fk^`]_We]jbd`dmmcWodZjhgggn_WWxiYHXcnidgxnX~Fb|q]pcUda[_ab[d_d``nn^ii`yY\anePldoXf\hd]d`Ymgyc^faX^T_Z^jwjO_Zo^zX]aeeccenqiWcrig]etehbgZ^dphb`bb^rcUr_dvlin^o\ancmTbdspqcaa`gkcp\_^jb^]Z^~ka_ricZ^\]fbagdam^dyl`_ee_romuc`_Y^zqcqaimSYJ[]pnZm`hpbyae]_E^XVtINdZs__Zgkc]cXpSdTaPiv]TnLdo^NXgn^Y]``jfeQ_i^Pddff_gb`jYbcahYX^Y[fIXgVjYNjaZZ`iQDl\}xVjMhgya_`mwifknrv~mhKSniitdiLi_`[OeYYffR\pQY[laZUf`i]ck]ZZbZnVY^aVhacdjgledjlaYnZk`i^[Rs_`\meqc`_XakaaUig[i\^fU[`[mqdeqbjei\f^ZucnLa`i[```Zc`qWcxaikdhafcX[_zhiJjj|i_Xbhcfg]gfaZch[lS`edeb]_c`cdt^NpfXT]fimmo]_dkxk^oobdgoacpS[]]es|gyj_iel{b_jbVkfdoUrrli`shaaZxkdY_akf_fdckmhcntpcl=enIT]dd]kXehcm_mo^_{frV_[lfkkkbvkVeekgnea[thrigfcy]bVsh\gllgftdV^mrgawbgashWF`XS`Xr]_YafehQjhkQ_hikwjff\pwkeZpbblccbUxe]KsYjamT\>ohl_]c[aT[oiX_tXvya[cyi]mZW[u_xk[o]`gelgdfcftpVg[eX}X\ZYYf\bTy\d\hj[b`qcm`R]kbYeWhigekddxYhV[Q_djr`liWlhY\}jPdl]v[j_hThYd{_a_alkibdh^aU\uSa_ajX_[\kX`mlcgjZaXh[sg`Q^\Yej`c\cZ`hZd^n_WZg\_c]b^ebc^ioV[he{ealcTeikied`X`aji[jamX}aaXlredWVk`]Wh{mtZdasXjgYhitmVZdXIcj[b\[gp_]cZjYZk^`b\eoedZfaf\U__g`eggVieeaf_pZXc_pd_hfVVboMjaTgbtvfn^jr]ckLb_^T`nb\QimliagjUikbtWb`YcffVeWpcd`PqVZ]cZsg`V^dWcbboia`e~gdofcQ[[aobfehji`_fqhgj`^ecisn]sgPn\Ycd`wS_lW[Vcd[mTn_{hbu`][U_knc]`aY[l\koYdng_|Vpebbd][pY_ontltghro`\PYkdgk`\g}]feep^WeIb`Ycr]k^`choTagr_zngeug`kxi[htnqQreiw_Qmg_ja]c[jpW^kWkXnvh[dXm^[dq^lvas[\r]a]ig[\W`_WfPe]Tp\UVaQfc^h^Xkfpe_d]iY``^IUel_^[oWfh[f`poW\cdcXYocrjXnnpbdWXpda_q^]fqY`t][]`Ze]Ydlf|pYXO`oackelStg[sh\]ocmZZoRa\UmYg`[[i[jdRd\\Ygj^T^s`Wdkhb`yWh|gR[X]`^d\kjcg[ig^[s[hcUe]_hdjd\feidhXikYicgnha_dcjf\Zbn_]fV^`gYcbbe]g_c_\ad\of[mYr^a_nbchd[``]tgeSQ][`if_g_yXiap[dqabWiWlQY\g]afferpbef\c_TwTbVdjY]_cgkWdkYfm__UqYdrglngnsjtdk``golLauggSq`glnfekbp`hXf\ZpZc^i[fQc_\Vi[almf`fQ[dc_XggUq_ljcegmcOchjsi_jj}URbeb\gafaded_^b]f]fiq|Tcj]gn_dov_cb^Wu`ccimZcf\eQiWe]eYdc^[bgfsY`aMeH\YfcwgZRatVddifemIX]r\`dfk_dcb`]glaZZ[a_gQrfieqfc^`gYaegllRqXZfeaY`hdZ]kh`[XZ^k\ZZ\nb`ceXVbYXif[Xca]XK_ceejW_kcyXhZ]^lcegjyngdd_[`kZffgfY`aVJ\mccZQ`tbZaVbXg^e^PmUaRWZYk^\_hlpYeccZQmX_T]b]\yWdIelp_OsekcVtclXfdggVj]clckoV\egpmM^eb`a|ckUglWdc[d_bw\fYkYcbdnfbM[]Ug\Xil`X`Wa_O_kladu^j_bPcg^_nfrWSoffacjYckm`UwYWbrnbjiWdZY_\m^iSia}Oo\d]ShRjU^p\E~`fopVfdqRg`g\Vrdd_Xcr[^nZf}\nnlnpgZVVtWYrRYKTRifpeuf]qhpjWj_fpv6qaYdvhrh[zuop\YacXkQcEpp`jeetxnlxf\]d[\FpjTlP`_rWidfvVgOuhXQgqcoU^Zmf_f]]fts\]^mje\bY}obkot\dVSoW;dF_Vmfi{k[fYPoZ\gUxttb`dk^faeqUl\{bCh`\bhmYSyeodZ{\ba__jdYdZ^ckqNwYKtjnbbckZ]k]Tgc]plUYbN`ntb]thgVkRb_\UX^aiU[LjkdkfrdsYZbozy]yjhl]X^YbaShtXxobSfdWW_\pdaPhkXbK]c]dg_Uch[lk[c^f[ipguk_aWieo|bYeeYfmf]miei\lx_~bXtZo]`bdek^hZSa^WUYb[kU~i^VodzfVWmpWZgSaVtepYi``httqk|cXeeOclqv_\_sicb^P^S[^nXfin_|amksZipsm^rT~ghQghYneckZ[SYT^fuivSe_r]_a^fXfTZUtX\W]\U]c_p`exghXfcgXj]djmljf^y[^hVk[VVVk\pnli^`Yj]hpfOfY[epX^^bbgjMbdjkW\l__ofIs^\aWV``k\gZQ_fjRdcXdd[Xfdk_aWjk[YanxkB[uepn__l_]aqm[]`X[`fofq^[fdbdVc`\eelT]Wvq[]ljdbj_Yb}_`[hRbV`\[b]nbcb|bfg`QepnmjWXqU^gqU^l\q_kftVbblPiZeojqOf_[[o`buhhlPg\^BrmUY[k^f`Td^`~gbicT`YlRKib]jf`oaR^\qehfVytco`ciaMee`gN]f_bcUrilc_g`ecWTdK`fk]^ZpVnj[sho[ceebf_vbadg`kYYlWjX`Re]VVhUgo^\]lpwaqPihZ`^J`peno^Rw`sP^__\mwuaik[dlVFaqYaXZS]bf_abu_fddivvhod\VbmqedTYXnR\ceiahcW^p]Xb^hlli\chfgdvjf_k[Nmj_dagX_[ebgg_mf`eiYi^Tliac\`pr^ec]_ZYplk\Yia_Ze\^[g`]YudhVgtRYmZSlW\ko_Xu]OjabXcnhlhtoe[]`XYiXcmq]sb^bfmeUcbfahkw`gmma\Z[h\fe^wdcof]Za_ic`id]Th]d`ba^jxdia_d`We[fiKfdmdagaWcdaedm_hm]\e`melhgjaZmz~pfeeojnibfebvXlg[fegh^az_djVXkfaTdccfhdbf^poXYSeWqe`ObcuZ]^e`c^hb[j_`_lc]]`a`fSoaTfwoU`ogbogS^eaU``sVegfLUbWhqqYVnyk`qnonWcX\ln^Z^jLg`HclcdgsbTTubdteklhmfa|aT[b^gdUcak]hihZcbjW]dgrfaXSSj_\b`UgdS]U_rpbp`QSdcNeg_Siprn\]h^di_V]Jba^omcg\h`Y`l_\^UhehkcIWgd\_^cXpkZaba_btrlg^fx_Vbd^caia[]d[tPcbhZ\^i``eZecer[ndd^\_iZga^ckd[b_jh\[xSi_bV\a^i^Y^`N]cg]df_^^`OUeVhanSgbYY_Wh]j\_NTPYelhtZXaZ[qycpeaii]aUq\aucb[vaen}jbi\\Z]nurfUbjodgX\flaYeZdSbmo^of^`gZ[XeciE`cbf_gefjfXft^`ncB{fhs[kjS\ZYzV^mh]Va\n^_c^rO`|adfg[ZjacnawhfhiXtg`Uu^lh\ZheoZoc^]_oaal[fNacc]_XadZjalmXj_m[k]oriUt_]mj_kiTaZlZkbpheYcelepbQcbhdvi^baZaZVX^[bdk\d|Ljvg_b[^mV`pb]hwkhgkipkh`vgco[VTkz_VyVsngchd_qcqJtlcdpagc^oYU[YpW`pdffWoijgffoelagcfXUbfab^fdpn_ei]giZMjg`]dh`jdrTj\]F`\QROdWQX[U[fhhcfmnL|j`gb_oewclXdnbdKclmb]^hXdqX\PihbceQgkdZlZm^k`[m]Yk``S^|sX^d_h^f]VU_r[iMaYrfWgaZetf{gcg_^gjZaN]iik^`]_Siagje^[YhobkVK^YgWs\Jcn[ecbdb]w^ZX^Y^[aiSa[h_arYlcZc^\buoknTg^n[m]e^oapejbugkjh\c]jmZ_dcV^zQ]Z_i^e[mY]bfpgVjYiTcklVTe`bdl^[X_c^^Yj]`dYw[[gbjUjjqhcdjq[jhth_ekfc`lTgoT]eYa_[nXRhd[fvcbbTP[^qfsrakhJqfadtlXg_XmgapZcglgordfckibcVN^idh^feSZb_sb]VhaYIhp^Qhh]WZalNYTjSU]ndfamgm\Sl[dfdatb`R_ugYd\ehv[]Xy[`eL\cuFezqbVhS]_p_SPFpjndXDfs\gSb\ldtXrld`fum]bmU\lHo\oyqfbeh\`lflla[lWVmeknU^`S_agfamca[hmiaa\Rhh]_wedUVWbgodgt`uOkl`phUbelbg^xgkdifYqV_ao^dQenpgcig_[dYUbgl]hHWhglcbbbPicbjenE[ijoi[fon{_VUhXbqb_imdcrWaz`WadvGjeoXga]\eT_iO]Nb^cgwHe^TVfVfy?Y`]ThUTcU]WVmlfl:qWuZ\tlWabWIJQ`\Nan^VfhMjaUkgRjehb]W\lYZ_JafqX_el_c`Y\^VXZ^K]]mgl_]`_`Q_]d^gL]bqTYvf\U`oqZjlDQb[oT{w[f[_\vm]b^bocrQ[^qcm^aa`cdcfcZY`rZc_cda`x_\pjfYTp`k^i]\S[axfe\jd\UaX]cmcg`\zlo]Zn]n_^e^`ihZYm^isb`hbY]kV\]_kb]eY_ac]b}i__klfrR]efjbb`ifel\ac\Wfic[jU]hYZb^]beqh]ggc\XUga_d__b]cdaehs]XqgnlWj`ladnb^_fbblvdTq_ddgecpTnUgsbiUbbaiiZe`gd^ffhabob_VjiZhaahpdQoe__flahaehk_gdPaf_gk_gdaeYT\]bcnY_accWdVlogh^cigkhgcVkZq^p^c`d\rdcr[_ajO\h]t_\]dqYiwdmU[\bcabnpq^^T[hbdmicaefj|jssge]eajbEd^g_d[[yde]]epbi\ndx_\bahce[eeRoScYT[nkjfglhcWl_WfWS\U\cV_aZscsW]S}cahGXflno\X`diTQ^^`teaieQfWkX]deb`Xn[kkolb_dS_batwW`k{]a_ktc_[b\W`TdoFo[YoZhohaccr^r`qSbmib\ZrnZe]`aWKPOtrfjJXeJYS][ScXrKf0dSWnTbX]ghbqZhpdhjlTd[qHTmo~caodg[epeZdqj``cvcK\gFp^Xih\kcha_G`lfgl`e]xcehZ]`W[TmY]Zm]Zibc\]f^cjnyfgdYZcobc^gfzY^SfVcgbaX]h_c]eaRZ[[_dXdcbsg\b^cnffxe\^eo_kgscV]cZi|`X[\b_MvXcrqy[irvb^a\l7QMdebqq[`gnf`ad`hQcUY`\Bgb_a_gXYbTcU[Yldpj[fT^kmlmbY`jTmgcZeZ\`UcmXWnhoYyf\`boXfib^YeX\hihNicnV_fmfgdcfZfmsm_UZ^ahc^mkaZ[ekWunUlYQZoidnVbd{g]^RWcb]ch^aq`aUbWa^ppc^kcXl[fYm`c`cdUfneriLd`n\H]`eThbNnlseWroeb\cgkeN^la_pX^UaYzp\UaU_jTgTf^\nkcVZNgoYcfq\]Ze_fa_kk]aggbdY]WWyfiqqgZt_ecoXchM{T]ca^lTke[\ba^[li[n_`dce_lsOQgd^boi^^zbr]vfb`fmm[d^imx_g}qeXb]cy`[[d_bhsdYb\YlW]ji|ZgulRXo[abbfq^V\enZvoo_[vkZfl_Tb]^WSeOg[O^gb]\qbbl[dfhMfXeeZ[vaacZgbXloc]aglUglScqhoao`o^XeoluhvebW\bfjF\vifcNVhg~F]lY]m\ih}`^ZiTQN[j]^rUew`Jao_fW_eadW^^^k\Zre_di_hsWgafaecTej[qcbYj[YcfZk\cq^aUogg^Zbd[Yjb_fkX[`[[]_jf\nacZ^hvZfdjc^zXekt`khYqi[aawm_Y`tpmubc`X`\b]lccZU^RbzWeZYah`\fv]_mg``c`jdb{jp`_gZ]V`^cggbZihZcgXcg\ilVHfh>eg_yk_Xmf\Zdea^zwh]\dg_Ug]kcYmd\c[~bdmc`odWRinarklRLc_l[hjiknWhgaqf[ZhQtrlWyY`euSgvhUP^ikYX}xGaMbdRef\cUvQipxb`JPQg`dSd\YeedV[~xZXplwbLcPR]]f[}Yl_}\YPgaidekha]}\acfif_lUjz_he]akE]c]nZ[_f\cZe^`adhadtQaf[ndg`_ipKjlh~Y^]fVofOW`nY`Z^aZlaTkibydiaXa\SdcmXWnS^[m\Pobknt~jdiiWgmjgm`licdXSfbc[liuT]bgbSjQg^`fiV{mfbnaqnkgKci]dSoa{lkhkbgvad`[]PYX_jXfR``i]dcQ]cfYgcj]i[O_f`ee[a\Wd_nfefl`jTba_sf_gz_lcPej[qTb_eQ_u`q[LkW[4a^]ah[[bYzc`lWoakT^UsbS`_X]V^Kffe\YYZdrQnmXSiXcdfc~nZeXcZj^[lkefzaejncblecfracbV`Zp_cj`pt`[W\aflfdra_n\kgd^hnkhbhddb\^hfUaXewnibiqbVvlo_]ihqtfbghdcWkbb[caZobWk]_]hYjg`htc_`\[fZtflbf^a_YbhaaS\Ynltgbhdnhkaa_j_aVqYcwSufj[_l@UlaEUWblZVxkejYQTaZgtcYY^icbXLggWe]NiedWmq]\WjhiBccDY_mc^l_lsmt]^_Zkfd`X]ps]UXR]crksqqb[gycljcrg`V_6geeRuZcu\|k|afa\isrbeK{R]O[NujkUqWbrU]_`hSQ^Vr[qzVdiLuc[`UkOc^RTPWjd_RbVWnSef\gX_^UYrS[bofn]XZzZdcp]ofOXksbZpVfkY\^\_p`qobfSranIg_`him[_Rc[W^WjlWv\`cRbdXVfscVj\kdz8mVVoXPaHdPOXbWrWg`icdi^hSd`b\opj\Tv_I]LlpEhZ^tjzdYddU[jcc{Vkg\WS^[H_VkadkUa_FQ^TWl^HhiVV[gdGc]]V]ZcmBb^aYabVvYmia^fyeXg^]sca]HgjNMi]Z`erb[Pj[s`mycbXlp`BSNeRam[QSl_`Tldaua\\`nfbaSnFnYgfSeYc_j]^RTZbWb[hVXUbie`^boeSeYd]^qeYYge_RWeqieSdj[Xfoefaib\S_Mfdwh]R_^c`XofbKePiOebU]QXmi[hk`o[A[]]hh^]en}V`ZQGekh_dR]fgaUCj`OXmpm[S\h`fal]ecbaW[aScRhbh`_bgdcf_l`fva`j:em_lksZahc^Jgb]Zbldn\YX]ai_kXognv_foWk^cda}^___PTXbQZgdPktwfc`hqbiX^kso_md\rb]g^z\dV_[sjqZhff\]agd[pe[`_Wd[_WgUqgqeejjk\jc_rjdjcV[d[UdZjoLdovdeeunaa`la\P_QdYaj|ZY[[k`i\fei__TjUdhXb\^lc^Z`ntb_dXc]e]yWlm^c~maXjtv{ea|P\Rei[\i^mfaWZ]a^tdhlihumhWwe]inbedSjupgpdZfZvZVh`fXm}d]k{gm][`gagweXm_]pKg^e_XRau\pohd^UvSbwmloi`mWmayaomlEnaebmjR]kfO_[]qHbkdlb[hvmo^]v^dgd\kdlc`m[]e`X^bulhfna^tXcjz\q^TalS[j`lildjfs_vjaQhbe^`Y\lv[NZdfnVr_Z]Oadofd`[]ces`[dafm]df[zelk`hkn`kd`a]`S[`_cbjcr_fi]\UfaV_\`Vi\WaUhX`p[Y^[lqacnjz^th`eaSubcmce\gi]\_csjck{cigki_f}ukcEhKhefn^Lsh]paQVZa\g;djRw`bfblWgP`kuidb][bpn_Xa~UTgiYcJcidYV[Wcc__Y^jS_z^]]I_bcZdPef`Xc]cli[f^aZU^]]dY]lc_Zgdo`k`Shk^gY]]gn[Z[^m^\kf\|qeoc]rYi_PZZkReXVZeo^jf]^bf]Qb\c^kcVYtisggYimS`iGxh_febvhb\_aKagZ]bY\^\]Oc\NfXkoggdj`uj^MYg]_tT]l_WmW]avk_rXeUhk[j^ldtag`ikoesihhRhbacQ[Xae]]p__ZaQo`jiIhbWWZZ_w_ebknccbdWmX_^cjg`djWX_oTROUagee^qRS`cZnX_h`of\`oZ^Ng_fkjagkQhpb^dh_defibi]oii^do[jfZ]Z\V`KelaZYkbmY^]?`gh``l[GdZ[lrgbNfVY][VaolYteYOafV`^en]Xbqef_ZefZ`]d`haWhaTmfcc_jiZidseg_Mal\iiXwcG`kddbdjmgdci\o]a^]Ld_g_chZ`cezkmZ_dQkVj`andVs[i[ckjohfVm]g\VX[Ugeeco\Vb^mRu\bXlTfZpVWUhZ[]iSm\c]guapdhi]\XfP[cXcRd\\ij^in{qjXYZZlSbcTfWWd[kopz[\hbzdmy`cecl]mcd`WfcgmwInwa\lef`VpbcldtLTT[ciXty_dgf^hdTk_rW\uSrhj[^Xahw]g]badP[pfbheYUeVak_aohig]qmY_{bkYYcebj_k[e]T`ig^dhgepkb`gdgZp]jgm`pj[ZT_jro\WEb\cY{Ypa`]cpnbK\dnjgQcecrlkifs`Xa{h^jbYX{Zkm~Zda^emjcfZbgX[lkOrcZremZOid`abbnUpp`d[cg]pijfPeqddn~_j[r]dh`c]f^c\mfvfwchaoacX{jfaevaW[ijaZ]g^eghzZad_bdXdZZhhkm]Wgl`ifdwdgv_cfeg^\d^bh_ghsckddfjmgeW_]Osggbjbcu{dygb]]_XVpeXVkopPhfn_edX_qVaSTh[RmaefaYc``okpUkkdjghieci]g]cfzvfW`jxn^]Zdbrlb`\_mad[fgki\f]bbW~c`fidhUfi`e^nnT\Yjg^rhg]b^id]`RjlbeYV`V\hbUkZwee`mta`hQaaoPclZZWZlcaiel_OXWVdZVfS\c\l`cXw`_gaiKwWggQdkgnd]snqvdmf]ph__M`he_A_Sl_bZSilcgcdjdg^s]alnplvsbr^hJad|e`]JaR[hfpb`dN\`fUqeYVV`o[ch]TbfR`hnc`klaho]^fg}Y~]ps|dWZe_Y_fcTfTjfUd_qpg^ks^lqbdjYkgh\gBea\fjhQWdSXQ]lTglZnUr[L[p=o__V`h{_ThT]Vwld]_Ci`_lhYZa^^OeabdAQd^agQ]dik^UW\dc`UXUQcXPftZfmWm\SYcdeXkeemWkNP\j\NYblj_][gU]RfWN[ecdUQpZ_VXan\ccVN_`N^L_oh`bYVQq^f]Um`R\`]MgdU[QT^SeXqbT^c_[^deeemQRnSfd[ge[eXkgjpV]bg^WjZlKYpZiXfQogEb\lWZrdebbdfss^gcV`Xe^bNb^\ZhZRX`]Z>T[kfgfdLl]v_mnPZbLr_^gn_mg`fo\gidXlsb[XlohkkPM`aQgc\hZ`m_zcpQnilPMjgjOINcu`X`haTZR]c^hdjiK]]VcUalfkcgafqidgclha}oajal][cja\\ptdXdaa`\XttW|qhrmbmenebbahTofTf]R^Tihadae9eroTtf_k\QmhG[uanQ`jjvf]jphj`gar^c[c`VcdUeeZbR]]jgTqfjWfhTkkvbzcd_cuaa[ie^k_bbskdfgl_]eZ^clYbeacucfbxg`aonb_cexdVf]Md[]glWg][\cb~ib\fd[iqVp`rqjeilCoh`oeafottlZZbkiRed`vfndkd`cknaZ]bnbeYs`^sX\Y|lbge{h_eYjlGmVaq\_lbYiTaLYXdrbcWbQZZa\jlRcfc^T[wK\STn\cd\gsmbQd\wZVWdlZ_ck]`k^_bqdYV]_oPN_jNkmmgh>ee?emhl_bhdrV}gYPzl_^]dd[bVPaebQXPse^qbRa]i^g]fhobba`ZiaJ\nb`TamT]ciYb\f`_`Wmw`]XXZoTVbtpf^bChdfhmqeYbeT_Yoj_es^Wl[Y[f^\iapKmJl`h^Zafiedagjjql\k]hhcgc]Ye]ci`orsfh_Qgc`oWZ^{ZgjcVueiYUffWdVlkkipZUYSjedaafeB_e_\QW]ZImrh:WfQ]SVVhnb|qVk`idgj[ThOechX_l{jZ^LZV\ue_UleX]YizieT_lX`ed]edm^cb\]^jggeV[\iejecjKkf_T^]`_Zem]]Y^dafKh_dacajhaejTjWXed`f_a[^mkbZOobRccf[dcakbiXhm^le`g_W^`ZfYdhee`jb`_lvgh`_baglQiqZemyaY[abbd^ldjuacb]^b]misTidksm^fbae_new`\`c_X_`akd_Xjdsaibd|cgbck{rbiY\^bfignZX^cVj[ubabfZY_b`jqodcU__ad]pUhkgligixc]d``ddld_gb^ajVlhTierkWgapT`\\_\dZUnTauoW[Zit^iVddkk^WnWapd_Xeif\XXuji`e`\v[aao_]j[elj_f[rmygXwbPeUbl^XpgfifpcidmN[f_shshoaYkYTmqccffeioafb[ZZnfmh]`]kdYguIbbc[ieh]Ygs_`jY`lieeSx]oiif\dfiy{cScbYV[lbPNXb`ndaikrRYdbiiY]woTPThjb\apupQd]\e_phc]Z^m`[eolcT\No\eaShUc]^tm_k\\nRUXfZmqcnmb_ak`aPj]\`o_g]jlj_]oSg_Obm^YMTaUi^\cbhyf]kbeiaXfbhbmkgboq`o`bT\eXP^ec[`Zbfh_teV`i]oVp\m[_eSg]^udX^_bc_`gppok`agYRnek]^t[`fZZkblakee]lpcs^muu`hT[bcggt[Xjl]h]ZXd`aZ:d]bh_dq`h`ca_owcWc_bnciaU^mY]dqecfdrg\[]L^gQkm]j_a_Xa]Ngah\h[bu[Wbbphhf\\cb]i__\Hbh]cglWm^oWKbfdrehecjU_ZakldhlejvagbZhWfk_[_nYljZX\a^of^[`e`TeX_^n^Sope_`^W_jP_hQtcjcf\ilef^dZn\af`Yaj[aQY\cZR`f\bmgW`acZbi^mqXdlaZm_\^eb_e_O`kUiVfmkbe\hishnOT\joe_jQ]bif\YUYgdgfdWheSdd\j_Td]j\_gjSbdcdiiY\fdh_]Z[ZRmVM^oclbiVm_bd[d`XWr]ogbYmQp`[bpd`b^fsaH_VOe_M]cPdZ^hbggZia[e^gg[hk\Jdojejpaja`lOa]Vbhkc[h`bcj\k[ndb`P`kj]^cfXgbfg`\hhh`g^^hj]lhW\bYecS`icijr^ailmdZVign]_`f`lejl_P_jaVpdu]dee_ccehae_l`chfxa[dar]g[ab\\cfZafm`ddefgpiaim]a_Zo`hfkZ`{eeh\]``hchWfTngel`y]^dg`kb]]k`oZg}_pankdbcZZ`_vnV_^[nk]o|j`fTZaaiS_d^jZ^[r[`gfx[`gZi^mrfeu^fj^nd_`gaa__g\Zf\folk`acfgkip^[[Wlm_koWbab`gkblbnSbfTnh[heZdgv]eb{fcb[\mc^g_m]VeXsVu`hg_\ksfbpmtoYYdhedf]cbc[ced\ccfmlgjcfcoaxVk\sYcc`bZcqmyfZRclYYz_gbje_did\[gmcd_bogsibqipee]Zx\TkiXXekjn]afWcnkholcY_dalbabd``bmcX]]r[Y]gXqlf_d[e]e_ghL[ahbbt\^hhftig^X`Y_VgRpkw`ux``]r_d`agbdfhmb^[mf[m^u[bdYaz\d^apmkj`Q`ibbcad_be[kecjY\chjiaqapcrgbllkjka^\Yqfgeqxdtsagef[_h^bgkX`go_aia^h\^bk_ZbZlfVdk^]sgXb`_gc`al`_kqrmf_h`ff_eaf\_\nj[TUc^ipdca]e_kecbfh`^ge\]yd^igfic\afXXjn__^fb`on`bcchgXgbZfX`]\^[lbdaXnlb_cdodfg\\dc^ijwfb__h__cnm`R][Yo`a]^aeX]VgVeiedeUTij_ihg^gf`fdkhesilW\nZ\oM_^[[ecS^awZhglbt`ia\aepVdogdhdicieb^ea|ab[ZjX^cZirin`k`gVfpcdY[cZapWepgfVgfgkXet[]o[fciSlrcekq[b_lh]Z]idk]ghcdw_n_dgh]UkqfeTdhkbdN_daShqhP]^QXbe``if[jVnVS]cnjUdZaTx_a[a_aic_bbQf^jup]Zc]^KcUdgHV][``\`W`m^Pl^ac_Z\^]VbYggeehkP\gZfbcm`nbd`nUQ[j[Uaaj`chop\b]`eW^k_e^Qaj`WUlZcfiUcagO[CJg_edbb\keb]Vq^Z_^dVic]hWbdPs^mi\_Wli^nVqmsWogg`jkskZPca`XdY[[koa\RjHW{cdZnJW`e[fdO^jahdf\hjn\cgfXXbgYR`WXhe_Zked[`Ve`h^k\Olji`vilVd[l`tfc`nbda]ckbfceoo^YumeghI^\cb\f\d\\hgl^d[`nob`ijsca^fhgYZad\^_ggVcrg\av^_q[ikgm[f`ndaccfai`kemglihYma_VafqbWaddq\bi]Ttp_bh^`gnicdliZfhcaebhybffbZgn]h`nejm^n^cbcjfojj^gglo[je^bi]m\hcWZacgYfRepbaShcfaWdp[Wh_`hlmdtene_fWjTifgt\aZfcmvjln[dLe^epSechj^m_h`_^itcaiYqdP`dPe`RdbYl^V\h_mjcWdVbdkSmXesomhg\sebn_day_oj^[_kiZademan]`i_lggj^emebhg\|jVob_Xse_[kn]dkchpLq^]cca]_]saqpa^ZongkWdO`k[`bcXc`_`dZZb_X``[scddfe`MaTebYmjyZ]cbTfj^bXhgW^eUqbe_oT^mde_KehIhjhpf\ceo`ufm^u_c[gd]b_[V_R_^lidUUZakc[f^fmdfYqmdYoWemgdh[geT\cX\ed^bcbfnbgsjet_`c_RakfreX[Sleh[XlcecrvhgkirhaPPfmnnavT^^ddPo^dcdeh^Xupx`]o]\c^Xd]XtghWjmefwejdVmkaegn_^]j^UZegc`YfScq`XXaIkbVcbhc`_WjeUYagf]bkV`]`^fm^bg`jgf]eb`_fa_[Xm_ibhh[YbhbZ^fKgibVWVjabhdYng_dlme]^sZc`gkr]d]Tfsf\kg_e]makV_gnkcfdmlm_WaWcZ^ond_`dfcd^cc`fnhii[jPhgkhj_jimYyXZaj[i_mf\T[__^jfegde^eo_\_Zs`|affddq]b[agfXndeedafda[c^^oC`njmga`eif\g[YZfbst\pasfeT_jneWUTn[bc_\bcT[e\`XofednekhWbe[ch^j[fjhhXa`e_gbe]\n[]qbadc_[hbngbg\fco^bmjsac]hnmcgZbfkh[`_nicihc`yeedf[wo`jedkf^[f_^kYge^f\r_NXZmefVfgoib_gfti]^xl^jfa`Wf`gec^ajbjVa^tfe[eXea``fkZ`hetdbb``aqWnhj_[jb]`c\wRhob`^Ylic]epc\dafalj_jhlellaYZTiep\Zeb|i[_jm^bmjkcWrdk\cghadg_dalc``hrdfdclqfcZ_jotfZYkll]pYfVYbksUX^klro\f`RabzakmWcc^de9`TmTfamfgQhTc`FhsmlZ]ZVccNnRcWc^`leW[Uy`XVeSadqbY_^re_pd]a`fjRfj[pffdXbqYaoVthV[e]Tli\bjKsr]ZfkWjOfc\PZsVWhglskjyhcicb^_rn[dXfeW\mjs_[mdiV`hWLVgkdefm`dXYk^]_hoLkaOSljXW`k]Yc^`aThv_akgk[exYhX^U_iab\gW`pgiYPpjc]cofmdaYtXdag]bYqjr\aY`Z]beNepn]f`k`dWZ[fTab^X_\X`fedlCbfYpavai_gec^o``^eklir`ab\^aqedpedfdSZ\m^chhdn^ZmeTqKir_na^\YogX`XplV[\eY_gtel_chsdV[[l]knhjkoac^ebl_^`ecadddeZ`ca`kfkdjf}`^dmjZ`ZgjSe`ij_o`jjgUZqZTndeb[Uk^Yjeaid[d\^j^qYmegj_tca_Sf\iurfj[jtngbXmbgXnrag^ghm|VkXh_Yjjvn[_ab[Yabihkke`de`_ZWVaR[X__]\V\hU^flVsZkg^o]baS`\RkY`h`^`[l`]_phe_^gdcpedgbXkXihonpeoxd\bl[d[djbb]lb`Y]qcdbdhbQbe^Yfq`bb^nlhZYY`kho^dwodVkioza}^|x]baTvr`d`{`U~Vlpb_ZWpjPcSv_e[alVbMmuhdSfbmW_LpdJgl^cTdlp`X`s_bm]c`k`Th^hpSmUmccXfjj\h`Wea\rWZbbrb^uhXq^KYfbZ\ac^Y[\j^mZiiY{[geiL\cWEgsWUXqaccDYey]HLTlcrZ_kSbJ[oab[`mek`iggWYbUSlIQEiXszuOgLYSs]V@M^_yk^KWRnicaY^iuWddl{VZbaaMYbken`rzbpfdVOa__qT~eikbli\MReB^emLYbfR]Z^cskVkehYmj[lnebZZZatb_ksgZciYgg`dcncl_^_[sP\]fac\gblfk[{fheompmp^_l`n|t]ecfeXigh\k]do^miY`eji`Zjbz[jabZ|lf^`ZPdk}[ce_pbhoc]ss`ke\heikiYdamoqnnbbijedlill^hjZ]s`ejspfcddX^bkbZjbYhakefiks`b`R]ikvdejZf`nhbilbdqc]rdXje\_ht_Wcd]ema[c__[maapi[Vfms_xr^cnfk`ag[bi_dmXj^ind^ZfjgXc]\mejf_^geabq]Rjeaiek`zola^_ljcdbVih`YZ^anbVv]g]c^ThyfrhzUiibbr_dd`ajXefjX[`liqcmlYpadXidcK^kahZtoToaQeicqiTedZa][b]pebXhiUeOevu`fTjcOl`y]eN`Vbehf]N]bZ^Si\eaceRKadfeeRpW[d][W[behc_iq]l\ezcPe^i\ejjbV{n^ir`Z_`tnV[QbSeqg{ndY]Mb\mZxbghm\kWCMba]adfrjhn`oWff]Zam_aZdMLUs\b\lg_kWX_XsXiiCWNFhScl]o`doZ\ZSeOYffsJnve]]gljdjR`ZUmjSfdu\_kaahgZdc~daZv_fYiSgVhfhnnahwPogmyLlP]_KLWjus_UVlTmK\uTl\iWjKqqhHaja[ccmf8aa^i`LrtiZigXajfp@Yc_]_TieHoecmqVTrJdWY_Df]fdPchOxNhil}a`gf`kh_VkqYmRsyklzYlehkgg\zylWgkhdd\XdftrmdTh`W_\\\l@[glcmf[hxMaog\jgkgHDp]apYyXin`s_|KU^wbsLg]pjYrfroW^_fkFZOfa8qhpY[I]k]NHQNqfYc}acJqlno`ufO[`YZSG@sr_[gbWdtr[e[_hVZcM\jlQTu`EhpPLPe\YaAJZUUbpYR_ZVQtT[gqmEgX`prMskRzUjz\Vsyohgd]hhh_[i_v_kifbbcX_h^f^WjidiXbesf`]dciqkekjean]mem\iaglYcjme[Zc]et^_jwlfW^n\ujUkbbcfdjfZr]f`Xe`eQ]crjgj]`cZ^bqdYtZJi[[Re\xejkZ\cpq_flZ`\[TskkYXhWdd\d`^\cgZUhZtmmlcoiR`Vgf[x_rbpM`_^ccX}x_i[PjdhqVsgbYhc]kgkYcVbsucYV^bd`h`fYhn_mVjl`]d~mi_jX]jhcgZnhq^kt\`neefaoc^rr`V}g_[]faXZcoieQ_ltXn^n_fguUQokef\e`Uccccj]medapb`cboNj_ak^c`a[tfco[mqao_kWjy^of`bdbvW^_oqgiWhuao]img^ipOZ^xp`iim|[efW^bdepZuGgYVfdgad`nmciTd_e\hQi_]kebjT^makheS^\vd_hZ^hafg`fdicZSb}bblqW[l\ehd`NRejeaZe]daah_g^W[`]Xacj]drg[aS[]agJ]cm}pfiqp`bOcch``\Q]XZmlpZOegh`\cmCacfcb`pXc`mz_c\de^ZlXn\Qgldrr\itmbYqbqbXadbkhhWi|cp`la`WnUhg_gha]secd__jeqio_b^ZemSedkn|e[dgOveQocp`hxajgbdbrfHfafd]b\SplZefaeqrZ`ffhicfc^rjgbhebg__evlj`mSlaypa\Dkf^[_cf_e^bzWTuon`hSWhlZYfZidjmWactS_\au\[`UR\h_VVi^`d_U_a[Qn_da\c^[]lgcepTeYps`n^b\ocd`m_QkqYim`akh_Yoa]_itk_^TaYbb^Vkojfe_Yc]ab^b_`Rlfg^b[_^d]f^_dc[ghcsFcnelhja_`ag\gmijmcWWbiogkjkdaboxhaYjZluioid_j^|aq`egd_c~Tbrbb[l]Z^vceeVagidbbV]WOukbiZorcaarhhea`]bi`^dpZZ^b]adgj_dmnru`hmd|baehfc[bta~fpmgn{fnT]mYkajdcj~RgYffhM]gVx]]eS`_mc_[\iKiupahlnj\ube\OgedjhmrmidXVeUZjTfsggZ^s`a]\]i^|iLcXaT_`j_j]qmmgn|]Vi]khkZmspfgbf_dmR[cca`djmjfj]]\jx]|lgWg\jU^pSWfi`\hb]YTfcOkw_di^\m`abMVqZsSqj`gP\ZW|a`^RSc`hAqmqTrXbeWjsVRplhR[a_j_afZdMf\VkukYbng`epXadoc[h`dil^hl^Z_b_anksBa[\^mZqcZecFd]q\`spz``eg]gnaiW]cc_htl`adf`Wjck`_gecOdg__lk^]^igehsam`X\heWXbonih__^ahgbcc]h^[m|fKfX\rhmoQkcbanp]eXc]^nca`gb`jdh_]gaa_barxoTa\jdeaa_bgbjbXlhdOgha``jeYba[^_jbc]j]eUW^kf_b\h]xanbbWeh^cfmphhami~Zc\^ceg]kbrqm\b\fadcbi]Yhbb\bWg]hVz_cwxidk\Yc]{gcmcokknmgkmj`ubcleOZmUf]wVjdb`nsh`\j_c`dagpn^ihd^]iafa_dneeglk]ec\jo_cbo}dfhZsl_rxlbae][dc_hVXeTmp`sangLaik[_WWjTZ_cjnrjfY_jcWrnvreSaLn^dnTg_\L}`CUW`fchZvhZ9l<\zxo_a[f`SWge\Z`]GlutagjuoffYiQdzkh_g_da^qfclqgfj]Ztd`R^Y6hohepcoEe^JZT`csXhRjVG\hhZicicgXv^ZgUbydia]ab_dd^ZZvodclrq_[c_fkxjkxnbrbweOOd]cihlgqnpZZYpdycZngYNc[Tjcgi[^kgRYbgT[j\tOq^fWX[genlfRmg\fV]pagjntc]kQk\cu`fllnlRc]_k\\ifiWfo_anOg`Pk^]Ze_`^bYaWUhVgtYj_h^_kedgb_ociojXs^`gdkWwob\Y\smejec\bmxb]]iYY[Yh^P`\yifUeezzn]gie[jqZijna`adkiiif`hc`bfmiZgdicc_genek__YPdd]RZ_iZal^eWkm^]_jna_fpkas^XccnVjfv]bci[b`ehYb[c_wi[hfekmq\`^\cojs\mofglim_}U]_dbo^_^l`Odsn`kWZXdTc^kUbZm_^hgks\fOs^^vljqahcmiaiZzdkq^W\l_iX\W_iYplcdY[lWhTcr[oSU_feWijaTum]d_nNfcaa`ugdped\RpYZeacYdcjgY`kbTe]kRk_g`fll_obg]b]T`dcd}c`peQPZggOi[h]gPQhWSCR^fbYeVj\gx{\^cXXeEVXKfog_ljK^i`r_R__aacfLdgghWZi]bbYUgeoT`YReaZV_ez_dUdc`]T`jScb^>Zej[^la^_cc]]bdTXeRdA`jYbgdPpg`d`dxbfed\pmhgg^Zgmfhfk]]jbpdb_l[tiakcfJ_Zdai\Q9Z_m`W`Zjf[ggNW[]afdi[ZnXtkqfr\ht_\^b`]fkk[cbTj`Wbca`Vf`Y_`^[Tfecneffd_joTgbitaf`nYapi_jshokXfd`g~fana`\Xanda`aZ`t[s`]akgntd^aYh]nNihem`iTbng`pnabZgX[bNn[nvahT_Z]qaVdddjag^JcQrfLadeRd]ehafTo_`UgbTaq_mxWkfeaae]Zdmicrmh`V^ahfmei`ea]hd`kUhglmn`rSd\md]]]ZgelofgW[_e_RlbuhZ`ipaggthf]j\]igmnpeo`g\il]cg`dhein\Zda[XQS^rfn_chnj]eidnlj`kbngbmrloJ[gc|jd]hV`sn]]YceddVefnadMqf__aZWf]gaY\\m_jnjamne[fW^uxbiXqcvh]_hVd[c_^a[dlgji`rqxcR\njghiamqji^Tu`h_xac`dTjcidsabobtllbhgaagncl\cXbhhw__d`abYarg]Zh]aXOkwX]J^fWes_ggUm_p]\sbbca^dv_vm\jk[d]xbahs^b[oXgo_df`chagnogfc_^mb`a]Z_niiemn^g[n^cciYku]ke_hmpa\eh[^`\agbe`Qjj__ba^_eqvfhlVpwde\\ffZul[abXk^P_lhrf`[lhPgf]kagjaXjfZc_^ibltcbdgwecq^i_[Yx]afhb\b]hVpiebkgv_fj|b_tYcYSikt]jggb]avfacpnaaY]]acebkjbY_SlU_^pkeio_g\d^els\fehaQps^ZmcY]]W]OSibhmt`\meaVhl\W\g\Wh{}ZuTcfnbjtu]c_Ph~ekbv_ZJhth[jR`\^sTdenSh^a\`oV^bajmccSSce_^Siqlf^Zd\XTklxZWce`bWr\l[^^en[`^bkeWd_gjPohd]fhJqji`\ebennVhjk[sgdfitf]ok_\arn`\RopjhYipfahNimfbpq]_]MS_q[s_WcobmO`VmUfdmdlbe~XdekWUq}v^[K`OfrncaVc`cZiu[`\\dc{\fiveulo^_f`f_\ghgcajRg^ieQyjdb`afek_krdd[gsZjUfcdXobeo[ZU]hi`diY{WdQn]Rkjkey_[^giZ``MSRnYXZ^k\lZ[M`{mY[\Y^`Uakdt~ZdRLcZ[ndeX_jddeTdl`}goljg`_caaXci]nlpgffPOci\Tpdgsg[dVbPe\e]fhbdu]VgmZ^_]s[`poej``RgPsQ^tslmmdbg]cpgse\gg\cZlk`]cbf]oh`fg]fa_a]dba_f^ZVfcg`]ddhdi_bcgbcW^_gu_lbVb_a\dhd_dejd_iaebea`_b_r^lZiqYcYXfdlwfSWceaa\T^`af_\`kk[Zedigh\\cga^ea[aac]df_X`_[b]cl`k`^lkYhJXikfoZWkd`_WkbS[_deoxklb[wie\]gN^^`he[^r^]dJyc^_``sb_RggWmoh`?h_iYqxPqihfe_Rd\[eUu_ffadTuab]ZQPjhl_chbHfSZn_`lb\faf\drlZ]cUWW^kZc`ejqgd`u_Zajhfm`]SSWiy`cgb`\eVKq`vl[fsfarOdrfccl\Vjqav[ka\XXi^^`\cZ_XcNg^dfgfIYffgqZ`Thp[Wb]|W]DQ]dfSQck_YTYogvgWcos}frdXeY:bWdn^eZgPabMkb[]umToyn\b]`^dkne_VnZ`^^ggcf_]ljkbo[m]Po{}Xpeqilj`bikjT^qpfcZloc[\Xsoi^h`t^]ZeYb_awpab`ibcmYcjikki_`ue`\c]qed\ZTd]^eld\i^Sji`lae]lhjc\_oPfQdf__bhbjaf_aaZicch_PkZatV^_djadg^e`sW[pojVbZehli_i^ai^npaOgdbl_hxXYolfh]^Zh\[sytgtjhVl^eYWgcreYeojnaiZqdbUlkhoYbfZkNXjxedkhbfbood[aarlNhF{W}zbhcoCps~Z^nbjrme_c][m\UW_ehbof[xkawd_jjkfnjgce[ikxmqsd_[lk[alRbZkbdcYha_nKonmXgWpZco^]WoeoeiCdXUZMicmckicXewScK_^lY\vNngoosTZfcfLbl^Y^h`[bWUggakK]PudnYlwHif[`lU]tb`Z`gY\VHq`WURfib_awndXecU_[[SggYe_`f_ajrncVjb]cwmYcWnj^_|_`hh\=dcghZTbVfc_kmx`Zp_]ic[abbd[]egdYkVbic[ZieZNsjpqa\^[im[g\eki`eXoLjYf`ibgUoadVtbRnrcaSZd`ht^ac_`\[pecV`kc_j^m\hs`bbbjXc`PZXbi`h_``Pflbcn_paaodnefhVekY^\pae^_lYm`bk_XVj`edp_P_eRZkgdV~XWWbabpjkPiag`kp\]gV^R[XY]WfW`bR[ck[Ph_[YEa^Z\`nh]kc]oVlqXWfd`RmTYYhn\{hay]jRvagnUk\W`mhdcheecellgZXh_Lmhguzcbjca[_omqpjpX_iomWfh]pa\jabVnaVVXdrhej[hncaan`ch^s\Xj`[kjf`jbag^efZb\cX[s`beqZjxYfnfk]fmh[hZVcmcjdd^fu`f^a_o\uWobjWb^UZ`ngeyUlncc\pWWgat`]bgdmgePagngiduf]UsfhdTlbiZ^WgfQ]jZI`gZedehj^aa^ch[zqyc]l[ghihqUd\ahjhc_uZ`fff[bY`fWcle^`\]iglfd`kk{qorfehde_gzcpj_ecefdr`ov\_pen\jU^cfbcSjfkwchdd_Y\yuebYYlRcn]fXbTgcodbheWUadde_\`[bieaf[_Y^egqg\i_hY_]b[fb\YTfiT^xg`iddekagllcW]YoT[j\c`T\i`ketWwt]dSdpuc^ha`pgY[Y`b__\us[Wk]S]tr[caebi]hmsyz^cfA[juvcZ_ykcZh_e\[inneYeaclcdQ\qrer]ao]ce[fk\kkn]R^WegR`fifg`llailhW_Zo_mmr]blc]_qu[`m\p`foa`_k_cd]^Zqj_lYZPj_TPjfXVhb]dzcYha\jrjgXs^Q\Re_rnlhf\ehUloYt^kNXiY\_dibujkl\ml_`\`QViZiuaNkc_ldaiYZ`Yihheib\ktGrgiRZd_o]bhiW`bNdawhXR`dbk\XkhdZTm^Ymcln\kpZagncokk]eghbsmmsbYV]ZsYb`kqM^mcYD\pelbSg\pTz`NSeVdsU^\9yaMT[MZLgiMsOV\fakXqbQZNIfd`_eaXOQ\_WYWhbrc_njbbd^ecScbWNbiY^VZi\h[d\b]zX\gaz[de[^\}]l]ags[`ik8^K\dZc^f']hX[Vpnbeqc\fbkZtnkk`hOcUUgoM`rcmeit~\qU{MfV``PgbdwnXiWddfjgjm[`A]emlXlhRWn`obxafbzfQiSnZ[_Vn^nXhRoVgdct`w]kP`jgczYngdkki\\`X^Zgjmzhagkhlbfq`_`|_dlofk_[\Use^XUc^igZ[Sbai[}-g^bYac|^\Vhh~Zi\JjjSWT}'tjca;a[Pm`KhSacKlL+[cbQ|`oqbO{R5kV_Y{Lsm?qg\rxs_gxqG[WnjamRcaTUaixVTpjM^\Qptt2ZQRc`qcZ[\!hTkWkl:__Ych_[l^]]QnUfd]Ctd\einciiZmgfZctUlkiang]YbiciV]__d\afe[dpb_`hlZTlZbWRf^yekov`japa`e_Wk`aiaafw]aR][eWe`defZuZWW\Tdgchbp^f`ga^e`bnkNt^^egig_\h_ceffe]h]\iknb`cZ^j[bbXX^]a`aprg^ecdjakmidYcevybegacagda\agW`ZKvbfXcn_cogPbaaalh`e]isjhX?_vSeo\Inag`tZdbhgeV\C`OeR^NnQYboChflh[azzhg^POi[CYzZmgeaYG`aI`ejddlW^Wg[b[PcbjqrlbR_^gWYdemcecgnhy[n]`hRfdif_]ckVdl`dkT\_ea_\\os]UaXolX]OigTboNWUmZmdlu\_jlm[L_^dibl^ck^Xm^jKbn^iTRsd[j\XjbcfyqS_dWdr^`VMfY^\h`ceYf_dk]nZcse`cZltghqS\fei[v][eoogi^[^meeYr^[hggda\hd_h^efwNfdhXtk^jrcp^ljn]hrjmeuuf^XeS]`Y_WbUaaeY\awSc[hhghR[d`ydec`]fdw\s_jio]]Vshb`v_ifdhzhX\f\iqb\l[Zhm]^[`[aacYggf]wrna[degVadT\\^ereT_Qidkp]gbekgep|qpkYbfgZpdcSaV_`jt_[i^\^]bk`ej^dXnXq_Xe_dfg`L[j_agTT\d\vlRa[LZZmPjkoa__]geengfX\S|hm_nUd[YMZbldgRg`ccWqlfX_mYorhjjtoZl]iejZl~dilgzr`\ndvtgep`nUVcaQe]_ikemjcgMekXdbhTm`]UZi]umfwefs^o]^YU[bdhsgf`ff^\lgSbg__ofWf\Yhifi[`[e\V`Z_\pfc_]ffPeralkikTegh`a`g}ocb^diRfrogcpufflY`d[dcZ[]`]nacleZctf_o`hh`djTeUiWbe_il`tdclnpd_al^l{`ah}f[_gh_jlinm^^hdfTi`c]_ek\na_iea_`lYSghaediVl`kf8O_\lTVopl8Huhe1Je`]`ZkixIeUOmve1a7`YkbTVTcLt[lm\]Ng}a_OsUabP_0l^l`hgneT~bizlhaI^]_`odcehWXkcrtV\wX\UmoSa_`_GdX]_Gd{OV0nc_\Z^Y]rcbCm]cdW__`iandg^apf_sgjaC}N_DUleok^[^^tZaEbSL^umS``VjiYVlY\khn`oi_jj[b]d[{gndeeheRW[bnXSeqduljVm\edrs]g_pp`cqTaiQiejN_ilf__\p`brd^^[kcrc\flYgbcq^adjeZbVuRd`[`nklRf]`a`T\T_edeaj_bddniqbmkT_e_]pqnVw`XkpZanTmgfcglg]lffgltV\l`e^cioZceebjV]m`\f`bf_u^jpfa``jjf]dniRnc_gffef[b[fh_ZdqVpWokna`zb{d^]fne_ca\hm_hT``gggTrKWldya[QaT`kaio_inp^[_`hmcV]Mgg^glYeogYlbc]\_ikxm]UUWpci^mh^_jsbebi]esfhngd`hdbfdhd[hz}i`lg\b`dfY[gf]gVkhfm_jhbhbbhgjf\hUz}_a[w\__ndcMbXfk`e\jXiZsdX\UNmYgd`m[fqXic_cak[pg`ZgSfkkwrhcfhjlkcZ\^kSR^]bn^^xkeiKbVX[hfqNIhSljrTfdHWjgrllepbbZaTrfgekXvkogmkbkffl^d_\bUfd^otbecZjf[cahiichg\`VU`m[jaaAciaZgrcik[echmigF`Sqbbe\ekmg\gYlUf^jdXddhddkm`dlmpbbRZ{hiUcfg][bwbl_ai\jbYs[Xgunckjjl]ZXeZicgjZ[b^_U_^cfjl`ng^avWlhjc[ega\jtXudgh\_][]pdhj`le^mcXoXd^U_PSt[dZ\k?gri]flfkcXU``aPbckf\[Z\[X[\hV`nbZWM[~aY^hiaTZQec[l[]kbkPlhcaNnxWjrWwqe`^X`lqg`\eYYmi\lhVd`ll`pTv]f\bgedqfUdVb`ds^\YXcko]abeq\galc\lRrjgac`fdZa_VYfmUe[Se{\f^c_yTTb^Scnaxpc^[nlZ][m]b\jli_mjut^@RVgj`dt][lalYdlpc[agb[uqgQOu__ym_YYZpq^QUf``vjgbVgomb]n`gaW\eXQVlbYhSckY`drKp]Uclqg[i^m]`TeeoalfYYMR]eh^cb`_mgggiaXeaZh`iReldgPXc_b`TnBbqXac[dc`dbQabkamdme_`eafbUrjh_XaqgLpfUf\mTf\f^jre\_meja`^RXKWef]\]i_kc_dVUdjorfY`P^an^VbhcdZ_]_b]e\fY]Pta_ikWXbpdZ[kZf_^cfci_dk\]]eUagSehm\`a_h`]g\\oFivolg_Zeg\aiW\Xc`m\^jsbm\VcvhUWQlQ_gSiTd\]j[iUm_as_jUZPcWfccncimrbVXa^c_fuedg[iui_l_jVf^tZqc^``a_aiezYq\`]f[h_fS^pdact_nthbRf_Ym[wkbmi^necWbR[iNfa]i\taP_Yt`tcykqk_gppgihRwsfj]icYdlbdeTjgc_Ubqp]tVfTWTb`eUc\]i^][cQXjMihfi]gqalZHuLbsqeaOmgbn^nbRV`f`po`ngiqfX``Zl[e\X`UrjP`my[ald_gbnoiy[jihbgb_gnacVzj\^ecdid_SgtertXelunY]Xal\npTW[`ill^NpBc_k^xt_lfWjq[UxqDebec`diKu^ahi_ZVuiwps=obfPlehW_YaZ|wWaqVmzjZdkshgcceadgYad]nemh]hfe_iaf]h\d[clcs^g[]Tq~U`Venc\lnYbNi\`drdYhj\cT`kOevoZ|]^k`\fed[ejSUcgTS^Ke`gf`aZSZidGb[Y%__z`j\Wacida^[Y_UaW]i\Ze\gb]k[QQje[^xda`f`^cYke]ZWkYddmX^d^\neX]nXba^fi]a_HttcR_e[u[Xj]gW_`crkUZnh^dZ`k[]Xjd\ikhcdff_[`pubv_mb^^dysktXhd`aU]UVm_e`fk]w^Z_Kmisn^ddV^_XhYzhKkXL\f_o`njZ`ge^dSfafkld`v[aU`\kce_^kkcn[jhQ[_`Nwiufwz]Wfhm`fee]Mvofcdv^ce^ZbvZfdci]SdiW_eosj^c`_p~}~z{}ty~}~kt|Œpy{xВ|{|x{~~sz{w{|~x|bt`}~z~~~{~~w|׉z}vm|v⯙тșnzqvz|x~}sly{|PKzw_}wjuvv~}Ŕ~~(zx~mr`s}w{xb}lq~~|t}}|v}~~{~uv}||{}ux}u}ƙÚ~{|ǔzwmz{s~n}|v~|{|uz|y~|odyww~xŒy{xt}zw{}h`z}|~~y|~||e˺wu|Pѩyđq~|l}}|}~k||}~{u~zz||}~І~}~~~{e}ʥn}ix~k||}}}}u~}~|s~y~{}yts~}}}{~|y}~{}|~|}~{{~{r~~}~}yxUv|}}ē}s||~y~zm|yy~px}p噴Ʊy~zdy|ǗԌ{}襋}~}~zz~|}||u||ȍn~yi~zz{x}{~{}vy}vt~U◕yw~{r}~||}z}{}{w|}Аx~|э|uТ}z{|ynĚ}~zw~ǔ͐x~{}~—o|wɓ~|yw~|u{{s|̘yך}zvvӌыǕŔwv̙}~~ȅsŠ˜ƚz~ŊŖywĕs{}zԈuypw~x~}||x}yv|śv}~x|y}~|o;u䓊mwНwt}s}~|{u{lxp~}wč}y}xx}}~}xi{x~}|zw{uwuu~}~|{{|TÊǖpҖb{~uj~ulr~xk}yZ֐vb{}z~Ɖ~|{wڣ|mȓusՓ}hw{[x~fߍ|Ӗttx{}Ǒ~sЅxx{|yxw|wy{{|z~{o|}{znj|~{ylpx}v|zyt|}Ѝ{rÎpvΊ{Û}|Њ|}{{stx~Ŏxy¤z}~~xy‰z}yҁx~~}يexċכ~lĎ{yx~uy~͢zx{|qy~vǓzpˌƐ{~܉|֍~{|ɐt}{w}zܜˈ}~}bלxwǞ|zows~~~wxwxwo|}|zxpz~y~}|q|t~}yx}}||~|y}Ѓmxpy@~}w}~͌ury{|wmxzs||{~|}~|}}•|yu~w}}~u{|~}~y{zz||xБ~~|{s|ǘ{~i|z~{}~~~x{|u}k}|}|yh{iŽ{z~⑵֯{}{lَޘzv~{ƒ|̔Ւz}~x{~w~z~{x~q}y~}~ z}|~|~|}w~xx~}qwzz|}ܔy{~x~}}t~}zfy|}|~{}~nj|y|nN򔔗}}u{x~yy}u|{v}~zpŒw|||Öwy~}}q{zu}zgx~nУ~w}~szp||~z~}~~{x{~}y~}~r~wxssy~o{|}|sj}{z~w{{{z{~Ǎ||r}~}Ƣ{}t|u~y~~xv~}{z{{}~yxɥ~{n|yr~zu~{trz~z||}Ď}{~zD}zzg}~qv}|s{{ru~}|8~b}upL{tsl}i~zz}m~xpxȇ~||{~|w}~z|t~{{}wyyx~~~u|~exyxx}zŽ|NJ}vxy~xϓ~xxrƢmg}~~r~uzbyyyqxyv}w~{`x{{ԑ}zmt}L~~l|roႌxo~|}z~|~}|zo{zqkx}ssmyzkuvvx|oxy}rt{sv{px~sqztuxkxxzp|qsuzys|xzq}{uvtnp{xrtov{pvz|yyrwuysplpstxo|so~mj|zs~y{vo{wxpysylut{v}fv~xx|z|}kvqn~y|mquz}nxmjvxw{p|tyywq|zsy{nxsru}{yxwy{xvupws}wq|p{vvqx{tytxvw}yrt||{|wmxxwwrt{zxruwv|q|xq}~nx}rwivzqexzmqw|ozmrqussyvgjvxuymx{ty|ysuk|v~~y|sgszzzwv~uyzm}u{zpywz{wzzy{v~~sr{|niq}{}muma{kvzy~{xwtswxwqwgzy|lyzquvvri}qvrulzuxvzvm|z~wqtqx{x~}yw~wu~{zpzoxu}xzzzvnxq{~|rw|}w{zqs|qqtorz{y}~vjmsoovqr|zxo|}xx}w~xtzyr|}y}zy~}x{q{{}x{z|~zp|wtwtx~~|t|qy|v~|yyy~}u}qx|~~wzwyywxvywx}y{wyw}{vzz}{y}ztw{zy}s~x{z|~t{~u~usu}tzyzzz~wz~s}z}zx|xzyq~p|u}~xxu}{z{twxst}r~z}|yx}omusuxt~w}xw{|zzqyt|v}}wx}}vppw~zwz|}twtrx|}y{}tzmsky}v{{~}~|nw}{wwtz}~num~rsg~{yly}{}z{w}rvsw}||xrx~{~{wsruy{z}|vz{r{}bvxwvc{|kxwk|}}|xvtrvz~v~u{ux}g)puy}qxvlr{q}x{~u{r|wtm}~|}wpqtz}ox~srswxwxv{xkjuvyhty~|sr~{w{b~ucwzqwi{o|r~r{|zr{}y|zr}|~z}x{y~w{}xy}y{wyvw}||wy}|uzu{wv{zm|uz}|tuywq|}||~~x{~y~{z~|y||nqvp{~zus~v{fwvtz{y{xuxx{ut~v{}v{|v|||}|{~~{z}vx{x}y|}x~}t{|zwu|z{}u|{x}vyuwr|ut{|nr|owz{|zyupt|w}y{ysinul|ex}vr~}{wzu|}zmv|o|}~w}itxzxu|~y|r~{vxutzvyt|l}xuywywzopr~sx|{}m{rzu}utvxuz|{rxw{swyr}uxrto}~}{m{}osxz~wsxw~z{wwwaowyt~zzw}sw{yx|~t}}{~vyuysz{{zsp{xtuu|z}{|zu}}w}}iwywm|}w}{uzv}}wuyv{~vz~~ozmt}w~fzqv|p~~}~xzuv{u{xxvso~o}|yszz~qty}wx|ssm{ywxtrynzwsrqab{xvyxyqtu}~sp{{{tyxyzyu~xuzvvw}w|odmexwrsttj}tto~okavatmwysxyrs{uk~pw{vyvyq{w|uvsvkpqd~ppw~su|}}y~rm}ul}wj{zwwyx{uz{|xvytvo|ttu~ywus}pwvput~{|v~u|vv~s~g}~kvxvbnuwyymywyzv{sx|~yqzyux}w}slt{rw~}~||zsvz~~ntznwxv{vynwtr~{|{tzqypv|vnx}nt~zxuzz~vtyx~wyz}qvqvko{uw|hxvtt~yz|yvuzvywxy{w}my|}}w|}srny}}{{}ztyrzznvvuzk|{x~|ydssovx}ntxvwu~~t|w~uv~zmt|{xv~rzyz}vzhuxwr}~{{wxzu~~{zwt~|{ux}y|x~zv{yuyw||tsy}wztwzp~ywrqzt|y~|vw}vxxz{|uzxw{~ur{|trs}}v}~xmt}v{x~qtvxz|u|u~~|wxs}|uxx~}z}xxzz~}u|y{|{}~}{}txu{|{w|lyx{y{tr{zwxuywq~rzy{xr}v~~{tw{{y}rw{xzy}txq{~{zwwr{s~x{wvvyys|~uqu|nk{|wq|w}vy|w{}w~y{zwvovtn{x~~}}yytyz|s|qxtt{wrxo}uwv||{wz{v{|{tv}n{z~{yxs{yz}xz}wys}z~~}}yww{j}zz}uzm~wq}w|y||zyvz}}}}{|~~qzy~||{{yyvp{v|~yqvz{}~|||x}}|~y~||||}y|}}{|zzwyy{mz~wu{w~xysxmt[vht}s}yzvtv{pxs}yrxxn}xywhtxzrsov{pzuuwt{xrxrxzqwvztjurvyfuw~v}txqw~hss||ywvwstw}sqyytpw|}~y}}kxo~zqszywxzu|{{qk{zzup}zw|uxixzxxzws|wryv|p}p~ryvzx{tt}}z|y|pv}sz}zo~wuus|otmu}y|xvzyy~x}|q~}{tv{~xxsq}}{zvnu|yotvuzvru|yns|vz{zooqxr}w}v~wnyz{zwqzywyw~zpvuux~v{hum~xx|xxywx~jutxm}~oz~~sz{{grvo}tuxwyxvzz~~quusei{}|xx~u{|v}x}|yw}k}u}rqju~ypyw~|tvptw|{|}{sz}~xm{p|xzmnszuzsy}uvsur~|m{}tny}{|}{||~x}{{x{wvzx{v|y~}z|}q}wvzm|u~{}}uvxyvy|wz|zy~|y}{~~{x~|~y{w}w|ty~}y~{}|x~}}{z~}{}yy}~||zv~}s~yp}tzu{u{x~un}yu~xtu}v~pzz{x{ov{s|ptwvtu}}uzxi{z{{xw}}{zvtsz}}x{}zvu|q{uxysy{zx{z~xw~yx|sw}vz~{~owowtqv|yu{wwps}pw}yuvz}y}{uyyqzuqt}zywvyu|wytzv~o|{}w}~zzrqx~w|sx||}upy}opr}|zmxzus{vqxyu{}s|m{xv|u}xrqur{{|yty~u}v|zxtr~{u|x~~|vuyys}}zywuylw|vwux{wypzxxzwwuywvysx{x{xwxz|q|u}}y|{quuxxuynrzz~|c~|wm|zs{uu~ruv}Rwy|yv}syvponztrwxs~u~vhtulz}{syz{zqyywvtz|u~o|wrxsyryu{rpxv|vt{}uws{synitsy}vzp~}w}vyzs{}uwrwxv~~su{ymqwz}ryxt}tw|wt|zu}{yu}t{uwvysx{{s}uryzru~zpvmmqxwvwxnv{~z|zzykyytvww{wsz|t{qqwzxzywvyxv}xuy~tvqvyqu{{vhvrxsv}vwrw}wn}|s~~wwsyox|jkv}qss{svyjvwtzv{qr}wzxxjxlp}rxzu~}{y{}zz}zv~oz~s{}s{tvv|~wv|u||{{w~z}nzutyuu~x{r|~yq}w|txr~{|y}r~t{xxwzyty{yxx~x||pzo~vw|y|zx{tws~t~|}tu{pz|x{x}|tw{}vxwtvyzy~yzwvuoxy|zz|zvwwv{ozsy~}wuoww~ymsxuzm{yrp{n{nw}{n{swy~xww~x{{w{y||p|vvvy|xzwyt~uwzry}vu|ps^{}zwt~lxvxs}hwv~~zzwom|uos}u{{jtzww|x~q}vwq}|szsr|zwzzrzx~z{wxyu||~t|rvyt|u{t}s|u|v|zoz}wzxv}}zxq~wzzx{~oxzz{z}}svs|}vyuyyz|zz{xxvxt~wvz{zz}{~xyu~y|{{|}wxt}q|w{{yzut{qw~w~{zyvy{urktzy{zzz|zz}~y}|~u}}r}u|{sw{|z}|vv}x{{qrlw|xpvs|muvqy}}|}vxyspy{utzwxszx}zzusyzywszmt~sry|x}rqs~vx~z}{~u{~tyu~yyvrfusx}v{~u|{|z|wqxy{zxx|}~|vqtvvsy|~r{v}y}z{||ty~s{{|z~xwy~q}}v~{z{un~||~mv||yvl}x{xw{vxvv}{zzxour{m}v}zy}u}x}zv|~woyq}vtt~xt|yytrzy{svvxv}zuyyzxsuxnw{v{|q{v}xx|}xr{y{}z}u{vtt~pzlwsyuxn|~x|}}vtxv||{~ywtzso|yu~qszxrxyzuozzgs}{s|ttvu}vn{vvny}txewxzxo|l{{rzwe~wq~nsyyl|lvz{xxuyx{sqwssu}y^xvrtmz{zuxhxy|}}qu{||{t~x{{}uwsz|wqurpw{}uk}|{zwtuzmwtxrxxw~vrx~w{}ov{v{huoyy~squxtyxv|u{zv|yy|yzzrwwztzouyt{xzw~z|v}rvqqpzuxx{u{y|ruvnpvyyg~zv}z{t}uvs{|v|}{|zre{||yv~w}~rzswu{|pw~{|syzzyy}}t|{t}swtyxt|rxxlkxzruu|z|vzzpv||xv}{swzvv|t}r~yq}zyxzs{tz}{{tpzxyv}yyoy}w{|~x|mp{wzsyt{}zzz~rqmv|ysiys{zw{z{v|~qxvpwxt|u{~m{lrxv}xt}|vwnznyxu~tytt~ztyyuo}uzttuqnzxsvxxq{||xfs{uur||{w|zxku|hy~pqxru}vsv{trjysuvyks~}uw}||zzit|uzxv|y{vz~u~u}xm|{vy{|wxrwz{xuvtxp{w|zz}|~|oyyzp{m{oxsxl{v{}n{aqtusvzz{jtst|wxr|}qvzxvot}vihtqspym~vxz~lo{m~rnjtvux{ztyay}vsuuu~qsswvr}quz|l~swxkk~|lvygzsrs|tx{~x~~ts~xzs|vwyo_uvw}tuu~~quvwz|nyzt|l{x~|wyxyqu{l}wxz{}}t|nj|}wtyu{j}xjqpmyyxm{|mxrvru{y{qzvcxxw}v}{lwx|s~n|q|q|}~xv~{v~uxpvk{~py~uvwbwo~fozyt{d|kzx{m{|kYs}{s|my}~{xst|iyjnn~qlxtrvwsy|e~lz~m|xqvr~}qzuz`t{rl{ww~{oqes|ndlutg|~z}qo{gmyr}o||vt~yrrryty|{~oxuklxy}u~m|}}wy{{ywmyvzqyrx}x~~{}zuvvxou}t|woz~~swxtn|zzxzyvy}q~v~vz|ww{v~ty{z~y|wy{z{xuuwvu~s~w~~{~xupxx{q~{~w~vww|xw~{tns{x{x{s}zu|t~|~yt}yy}|{{zzqv{twm|xzrrrwuy}~}t~z{tw{wt}|rp{xrmsy{w{ttyvs|vzwxzy{zytzqyx|z|~sszxu}u||v|v~}}~yy|vy}vyqw~|}~zuuy|uu{{yup{|}zuv{yt{|u}uwznt|zvw|{~wupsuyv}vwskxxpvquhvrxtvsz{yyzityvu{~s|uywuwz}|wtr{vy}wsyv{uvvyw}zwyxvz~}~|}ttytyxm|yznok|yxz|wyzynv}ynz|zsv~rrw|x|z~yv~~y}||uy||qw|w}yo}zz~xotust{|q{|uq|{{{zqyx|ywyxy{{wztvz~yuxwroswvpww~}~wso|vx}|~z}~{{zzz|spvx|}~}rs{pp|}uzysxv~wyy}x{zyy|xz~v{zy{}}rwx~z}{|xx{sr|xxwy~~zz{zzv|{x~|y|x~|w|yzz{y}z{wu{u{{{|swzyy|s|zvzytv}ywzwzxt~~}|wxo{xyyx~yw{yuxyzyx{s~~{zly|vvx{w~usz{wwvywvtx|~|yzz|y{|xst|ur|~p|~txx~{}~xy{{|wmiuvyx{}v{uyuj|vdnw|{|xuzut{yrwy}q}q{h{vx~{xwy{q~yqxo|p|{{w{t}}q}uyspmzuzwpprwzzwxn{|t{x~w{xx~z}ns}ywxyww}|s}z~|zxzkytrvxyqtuy||so{p{y}vq~p|x}vzs||{t~wo~z~u{}xx|y~yyw|pux}upzy}vwvzrv~r}vu}zuyu~swxyu}~vpxuv{}|wzuy}v}z{vwyy|v{{{r{uzyyvp}~~z~zu||ztvuvrtzvr~mtzpxzzuv}~tvpo~q|{zz|zvwzzx|wv{|sy~tz}ltubtyxv|zsw|o{{s}||zvww|}xoonw}qymvw}zzpxyx|wut{o|op{x~xj{rzws~zr~e~u~v{}~zrrdzytyz{~yynx|}yywv}zxvw}t~{zxz|~}yzr|zzyw|}uw|}{uxy||{x}sz{wq~vv{{vvzvvu~sytzyy}{x{z|}tu|uz}v}{}}xx|{~wwx~}xwyv|vw~z}tx{wxzyz}ysu|{ztxz{|vz}s}yr~y}qxu{qu~mwwv~o}|wyuvwuyvroj}vxuwx|h{|yw{m}x}r|u|}vz~ywv|vy~ovtqpr~rzyp}|uyx}ztqu|~ntzuzrzr|xw{}{|vtwy|nxkwsx{ysxx}qustxxvz|~}}tuurs}~~xyxv}t{stzuz~w|t}~zuykyw~}rxt{z{{|tqryq}zyx^|~~zuyyw{jnzs~|~y~yyzyxwty|{}pv{svfw}zq|zx~|yy}w{x~~ywysr||l{~tzxq`qgkzyzy~}|t{}~}t}yz|{w~wy|x|}|wxu||s~~}}~puyo~uy~{mw~x|z|{~{~xu||}uz}y}{v{ouxyo||{}zw|y}zrlo|zz}xyxv|yu|uy|vxzx|}{yzkry{z}{y}y~||{ytyloq}~q{xzslxxnxu{y}~twuty{ww|y{q|~wdvyvvpxs~~wxzxrv~us{|ts{puyzlv}ys|rz{q~uyx{~s|xpt}w{ozqu{z}{x~u~x~{uzyxxtp}xvrwtr}xytznv~q}{}tz{txwtux~ry|z|v|qvzwvuzz|y~w|~utx{{{zy}r|zxl}x}x{uxyxwzvwwu|}~}uqvty|twt}uz|y~vy{t|}zxr|~yvvys~}uz{yu{}v}ty{yz|}x{|rzwyq{{|wwk~}xusz}~vr||}{npzyrvvwzwng|kok|xqxz{zpqz}}~pzt|qlvvyow|v}yu~zyzwmmtwu`x}u{vuv~yyiwnyzqzwt{{t}tv~sw~s|{yyy||t|o}~|{u{y|tk{zxv}lsxsoy}uyvs}wwz||x~}yxxy|uz~zxz|zz~vwrz||~z}{yzvvnwwvwrxvy~`~l|}pzwxttu|{pzv~px}xvzyr|~tsvyy}y}sm{yz~yzw{ousn|utt|zy|wvp{vt}w|z~w~u~}ywsrx~ozyzjnyqp}vss{}~nvy}yr{xurszsfwyzwrzyu~}w{~{wzvusttsy|s{|tz{}|vx~wxq|~ygtorwt{vs{w~n|{vu|}ut~y}ytwuu{uzss|tvzpvlxtwytr|{txxsuo|wr||x|}rv~n~wzzyv|tyxps|ql}ywwj|x|xlxtu{rwxtyzrt|vgpz{}~ppqg~vv}|}vtxrusxuytovb}tt|mtsr|sz{wyud~|tti|msyr}o}uzxtuqou~tvswt}qxzZtroop~smwnw}Vvy~yqx}prrt`x}|}uywsuztnh|hzy|u~{nxzpuqpo{{pj~v~}w{y|zy|y}{uxxqq|zw~vrvytr~u~vytzxvzu}|zu{{r~{}w~t~vx|||kr|z|||zwxwwzv~~sv~lxzzx}xy{{|w{~|~zz}xx~|t{w{z||uwz}{|pkrzwuo{}kxxvw}ly}rxo~v~ty~wvw~{|}u{u{pzzst{wr~yxprwyvvxw~{~vu}|~{~~{}yx~ysyyzu{zurly}{{miz~{z~{y{}~v{zy}xzx~zvztwv|qnwv}ww~vzuvz|w}z{lyvy{t{wu}exx|tqyvu|qs|~kvr~ux}{wu{~|otlk}||wkz}r~trv~zyw~ixtxz|o}t{|nrymutysrz}bpjouvz|yytvz~pzs|vm~|wwvz{xzyou|o|}|zorx|{|w}|}~uy||tkz{txw|y~~zvyzvvuzvu|zy|n~|zu|xxy||s{xt}r~x|yyx{~zuzqvu}||{}z|{yx~}r}{l}vn}~}rx|}}z|}|zx~v{yxsyp|r{tzr{~uttvysqso}uzyuvqu}~~ws||ysig~|z}r}xy}v~t{nyzzwxx|v~{s~}~qw}{}}w|x|xr}yvy{{wusy~~v}vxxx{ts~xwm~znuv~z~ysy{w}tw|w|wwxytyzxsq|yzswz~qy}x{y~nu~y|}vuvx}w|}p}{zyvwoz}luwx}|zzztwwwyz}w~{zys|vuuv}wx|x~}{zrrq{~y~y~utwyn~stvys~xh~v|tvmo}}s{}zps}vuwujt~yuwp{wvwsw{yzw{yxlx|}wnt|{yzx{|m{xw~rxvz{w~z|x{zlpyz}{}px{}~t|zyuyw~ywzwxzxz{{}y{yx|y|t~sx~xwt~p{}yyuwux|tvu}vyutszs{}z}z~}ot}rx}}|x|~u}zsz~xyvyx}y|{x{|xx|x||{xtq~wxyvsyxz|{yvuxvw|}y{z{|xx{{~yu{u|wv|zws{~y}zvwx~twt}wz||y~v|svvtwr{z}z|u|ws|w}zyytryxvx~uy}u|}~wy{wwxr~{yzzyyw~w}xrvu{|zvrvzuzx|u~}sxxyxtywxyy|{~uuyy~ztzvw~vzvwv{|y}~x{zuzs}yv}~|}~yx}~uv~tzowyxwzw{~~{}~zx{}{{|{vp{~{{yuw}|yxz}sy{}|{wz~}u{zu}wsuzvt{~uuzuzwu}w|t~tv~}~vyz{z{|yy}y|zxvv}xuts{yy~st}uv{y}vz}{ww{xz|vx}{}x~|~~{r{vy|tx|wxw{}y~{yxtts~w~{|w{swzx~v||yxx|v{u{xwq||}w|x}xyyyryz~{s}|xvz{twxyz}~}}~v~xsx{z{swqwx|}v~w{zwv{}{uwuvz~}zxzz{x}txzy{yyyyv~s~}~{w{{{t|{|~wwu|z{yxox{|~}}znsyy}{z{|~wr~{{w{xzut{~y}{xz{|{v}~|~x}~tz~sz~~{qwms~{qz~wvxvy~{yzu{{|uo|rwvywy}~w}tymswxz{qx{||tt}y}ss{z}{qqx|y||x}w}}~|pr|tvv{yx}v|so~}uqkuu|}|~~||qz}}{{v~zz~~x{}}yy|{~v{}xtpuzuvz~w~yjp}zrtmuyvtxw|u|wzuyuwqs{x}yrqkizpqx}vtyyxsyxzrwsx~zxy|novq~y{}y|ytp}wxsouwztt{x{vpvsr}{~yn|s|~uuzs|||zwy|yv}|vm~vxyvw~zuxubw}pgx|suuyqzn~s|vyoyq{wyxxvxp{gq{rnjywst}{{yrzw{uplgk{uqs|tky|}mwssuz|yvyvi{~ynu}{xmtzykyvpzsl~|nvwxwqxzz{v|rwu}yzsv{|{szzmm~vw||x||}xzt{}yuu{{{{|zyqz|ywyt{}zppzl|{}}zuz}wx}w|vzx{||vsw{w}y{|r{{|ttq|u}zpvz~|}~w~}|}y{yxw}{{ur|}x}y~yxyxyu{|y~yptx|{~}vzzu{|{xxmxw~~xvnwe~z|opxsrs}rxqu|uyxywup~xlp}r|{rmx{{tqt|}wwxw}|{}txw~c|zyt~wvz~zu|x~pr}~y|yutuwvvvnslstpx|p~vwt|s}u{rxwstwy{p}}rvoxpuvpvyvzt|yvtzsy|~}xs~}~}vy}|}ywwzyjys|z{z~|}xt}~wt{xzswyz~q~vvu~wxyxztw|szyt}{v|w|}{s{y}yxqzp|ttz}~mu~}}x}xtqyx{~v~}w}~x}tt~xv}{}zwyzyxzv|x~z|{w|y|{t|z{szsz}}y}v~xwu{}zyxwz|}{x|}~w{{yqyxuvxwy|~}oxyx|zo|qzvwvyys~|lqwv{||~rx}s|sz}{{~ztv~xvwwxu|w}}ytw}|xxz{~pytxu|x~{|rw{z~v|~vtw}}t~xv{{vs{r|pwyysuwp~uxttyuwqhpw4vx{o{x|xva{pqUxx\{}yko{r~}j~vqutyxztvu{pu~}s{}sqxn|x{x`ztvrlzlqmypxy$Wrpusxxpo}s~~}wd|izwvwv|vrmqhmtvg~xv}trvmkwxwkvv|q{vlvwqqyrrx_vw~}xxwz{yyywrwt{]}|tvwtyvhoawuo~vwm{|w{~sz~oww}{yvztyzxwq{tu~vv~zmoz_s}lxpup{wxy|nopp|~rqr}zqxopqpq}{py{g^vvpNpv~zywy{ys|w~ypzoy|~y}u{||x{~{wvz~ywt}s|uzzw{tys{|{{zy}z~zzyzyp|ztusz}xz}xq{y}u|~x{v{}u~{}y}uw{xsxz|x|xy}}zttrr~z~rzuos~v}y}~rz|i{pt}{{r~|~qzuzzwxvz|zx|krwvzyu|wtyx~qlv}ztzrytzwy|~xani}{sp}}|rt}}mqtwzwwr|tnm{}}xlq}iwxz~}jvuzroworxxtss~o}zv}}~bxpr~vvywoz{nlxov|zw|i||xymxyz}qnxryyy~v}y{{}zztgy}|uzwzwuwwv~t~zm_wzTlv{||yyyyxzwuYs{s{wx{{z|udps^|up{pyuzq|{qxv5|y~p|}wyq}z~}l|mxxtzj~v{}{r}qrwmZvmmtut|rspywytv|rz{uyuzw|xtvwjq~||wxmq||x|z{{whutnwspow{pxrr{y|ttvw~}ztmquxy}uxzsp|uv|wxsvwzuyix{|yx|}ruxwvww}w}}vuqx|tr}{z{{xlyxnznt|q~~mxztr~xwz{iw{z{pvz}mvvo`|yvjtjyv}{p{~|uit}xkrus}ywq~ysu{zmrv{v}~xf{p|~zw|rdmwyztqu{utzvvt{|xmo}yxwolk|zvwrzu~vj|r~}rqt|uq{pqopph~u|}ky|xy{pm}tuv{uz}zwvxo|rzsvmrvrypyyxv|uttg{xu|x|qq|vsq}wy~|{vuvxvs{}wzz{|wvtrwns|~v}xykww}|y{yxx|||{uyv~{p~{|n}~vvmx|vwzpy~{~|wyt|yuyzvvs{wy|wv{yn||v}uux}|ytysyvu{~y|yx{rw|~{o~v|{x{}x~yx|w{w{rv|sw}wsw{v}y{|xw{z{}{zy{xx~zvvvz|xw~us|wu|}x|x}~zt|}}~zuw}z~rx~st|xzzmvww{~qw~~xx}rzxw|ypy~twqv~{}uwvy~r{t}~|ww{r~{~}u{w|{z~y~x{}sy}}v}}|u{{y}v{w~|}qv{{x{{ywz{z}xzyu{e}znuvyyuwo~tw|v~x}|v~rqwyzsy{lzz|}|xy}~~~s{~zxzwxuyszy{r|y}w|~v{z}uju{~}tky}n}ur}{ztuyy{|tzzw{|xzuvx|}{uxt}|wxwxxztv|yxxtu~zy|t}zytkyv}y|s}~}y}uvk}vzuu}tw}xyp||zyz|xxoy||{tz{u|}z{vvtpt|z{wpq}|{|pt~xzp{yxo~skvxxys~xq~xxntp{wzrtssxtv{z{wxq{|~wxwv||yt|xyrx{xysw{x{vzvs}ozxs|p|utvqess|xotxwttyrw{xu{y{{v{~qsuqusyrz{|yx}yvtyyz|ny}wstvorz}x~uxwzu{~yy|nvpw}tw{wv}}z|xzuv~xztlx{}yzswwww|{{|v~zxzup}}}|~xwzquw}~zvp|{vx~tvvzzw~|wz}{{zxzuw|zsww|quwsuzwv}xrzt|uz~}ut}tt~{y{tzzw|u~|yw{~xu|elo{{xxkwk{w}yt~}q}{{vpntvz~vvxz}xxrxv{tqxv{}{pt{w}t~}t~vwyv{n|{tvyo|z~v{~w{krpws{k}vqw}{rkwswtotrzstXv{utwxwuy~uv|m|g|xzw~vzxv{rsrx}n~xty|~|xzwppswuqz|xzzp}z{w}z~|}uq}zyy}~w}v{wvt}{y}|xzyz}{||y~t~xyqy~t~zr~vszzxz~r|twxxu}~|~tz|tzzuz}~}|yzxstx}zq|||u||~y|{x{s|xz{y{x|~zq{wwqy~x|~{|zzx~{uyz~xz~ryp|{znxyk{|{ytw|vtwvwz}u~js|vuqq|{yxxtw~xyzovrhtv{~yxt{xwrvyzzr|u{pl{uy}qzn~ls|r~rqxskxz{z~kz|xeohzdtywwz{}utu~l}tzzyzwswovouzw|yyjn|p~duuurswu{wy|xv}zxzzxq}zrzzxzus~nuwv~wq}vou{zlg|tzprtwwpv~yl{wzu}|}lv~~vzur}y{oxz{}w}|{}wpyzq{z}}x~{ywvwz{{~wvxth|wz|zsyuvryt|zqryvwhzystxzs~|z}~ui~wt}|~u~|uy}p}v}vxtsxtupzx~uuqywtzxx|}uyzotu{unp}~}v~}w~}sw{l{qymzzt~zvyu{{yzt}w{zo{n{~y{xwtj~vz}w~vx|yvy{}{}}t}z}nvwr|w}z~|~qxy|{ty}z~u}sx~y{t}p}|syxuwyo}rszqxury}r}wyxxs|wvqpz||qx{}~r~k~ss|ptw|q|zot|{yvw~nyzu|u|{rzt}w~vtzsuqx}|}~ouw{rqvvx|~{tt{tz}|xw~lhwqltk{x}zzyvxy~vvzqtqq}rzz~~q|uw|syvq~ztz}|nv}lw}}rrspqw~}r}~~xywr{xzvwuu|sr|o|}sxymnx~t|}|{zo~s|xwutws|uv}{~xqukfsyxly}s{v{wyruxvjpmwxr|rdf{{v}wsvxysmxto|xzm|r||fxrssvzxyx}m}zyrcfzt{uxl|iwzqe|rv|nth|skiw|yzub{{tqznqiv{wvv|rw|g}uu|q{yrsvn}|x{}}{yzsx|uwsm{zw~~ty~v|yzz{|qsy}{}~s|s{}yyx||vuwznynwzyu{u|vt~{|}~~~ywu~xqo~x}}qxpw}y}~{vxyzypt}}~rmusv~sx~z~}wys|wwus{lxw~qqutxorx}z~p}y}zw~o~z||gy|vnyzytytjop}n~~w}x~xt|zox~ww}{yqnxt}~y|p}}survvzytyk|zx}}zmsysu|sz~~yuqttszsps}x}pw{p|ruy~svvzy{|zz~u}znw{~utzl}}{yyxtyzvw{~~u}ytrrxwzwwz~wszovw}~xvt{{{{{vu{vu}|y~}|yzzv|p|uy{zvy}y{y|q{|}|y|tvww}{{yvxstpo{vyyrtzu~|zs{}wzsv|z{zxvx~v}{wu~|y}sz}zu}wsswxyvwwpxlirvx|n~}ywvmxut{s~yx{}qywrwvx{z{vz}u{vw~wyxvvx|uwr}wuxyyzj~y~}vmu}wq{{q~yy}vdpq{~xt||{}i~yyzs{vn}qw{~tyxsu}{~~}{~}||~xz|utyw}~{f{|v}y~q{u~x}~{sr{{|}tum}qxypxwzwe{jozw~vsu{z}zx~|ywxt{{tsrytvr}k{wuuwyz|z~qww|too{wy~xu{qxravuq|z{~jzwzyrn}w||zz|yq{~}swyzys|{|su|{}qynsyv{n|xw}ky{qunmm{{{v|tr|zkyuwxztsy||yx{z~qvwznpkyp}zr~z}gmvrsu|{y|}}vy}xyzynx}ygxxy{yrXu~zqu~yzuqp}zx{r|txu|qa}z~x~q{s~{ty}|outyn}wz{u{~yg{v||wqyx}kwpw~w}yuywmyktmx{t}t{turtdvt~{yvt{|wyxwwynw{{~}rpwzvvhv|ruw~rrzqtyu~}wwzuxtww}zrtzi{xxyxzot{onsqwmrtlv~qvymyqxv~}v~swtr|xy}yqvu{uwx{vuxzv{~z{~}xmz~|xs|u{}wvswv{uzwvxqpouyquxx}oz~rnzv}{|{xt}t{y{||wutt}yu{yfv|{wy|~ttz{{~{w}|uzt}~|two|t}vvup}nxyz}y~wyy~w|zyv~tx{swzxtu{zuvyv|{w~y|w}{~v}uvy{pqy~uy{z{xk}|yzt~vp}tw}xu}~{~~{{zzzzr}v|{syyz~{zwzw{~ywxzxsz|~{ux}u|sx{r{yu~{twxuwxu|ttws{yzywwt}~yxs}u{w{ssyxvyrzyzus~r~qzzwyyyuy|szt|{tt|{zu~v{||yyzy|lz{rwxvw|{}l|x{~xrxv|nzvwu|}wwyyxry|qqqrz}wv~{|sv{ms~txow}}}{yvv{o{|sxnnyuwwrsooxz|zxszxxz{x|~zyyw}w~tw|v~z}}qrp{t{su{~||xw~p}{zzptyupwzqzj|zz|t||x}pz{qrq{~qvu}s{vwzow{}z~yytwfpulzp}}xzrzwywxuyxuzru|vzpzwu{~|wtzkwr{z~~bmyvvwtq|nx|r}~n{kxyy{zp}|zytvuytz|z|pwzyprvwzpw{xvwug~ohyqzyo{oz~w~xwkpww}~wuzt|wwxv{xwsuurwx{|n~vysvimsvwq}nt|}~|jxv{p}{uwysz}zy{v}qjxwvur|x}r}rnzizwrf|wzv}x~|o~mxtq~uv}zwvys{x|{sxqw~xu}zpzz~wyvs}x||s|{m~r|pzvyuox}utwzwvwnvv}}zsks~y{~tu|z{yzyx{uxlx{wvwsu|v{~yly{wstz}~xrwz|~ttzu~z{x|zu{}w|zxyw|puu|}vvt{p|}xrywwpv|xyym{~xu}yjwtx|}n}sz|svw~w|{sxyx|x~rwv~tp~q|~lx~x|~vzt|srxnc|x|wwywu|w{zzwz{}x~w{}o}yw|w{|w}u{uynttz}~|}vx|o|ry}wnx||v{uxtvv|y}muwzrt|xusvzz}|txq}tt|rrusvz{zwy}vu~fx}z|vu|t}luxlm~zrrnprux|ytu}uxyzt|wz{{un~{{qvvuwyvxor}rt}xuvx{pxsnxw|~~}xultpwyw~wuuzvs}}uu{{x{z{}{{qwyx}|~}ytsm{{{ye}p}|nu|pzy}xvuvjzu}ovxsx|usxp|vwzs{t{}uzuw}|zbvs{wwwxqz|wosrs}oxy{}lyvur{}tuuwv~y}slxs~]wxxizrz{x}iv}uvr~szu}sgw{pxvsp~twxv{y|uskwyxpzy}uz}q}}iq}zw{vvvv{uwu|v~ozywyrts|py}zwfyv}{|izqovvuus{lyqtzp}|zt{sw{~{o|kvksxljr{n{snq}zznyt{uy}q|upxxvufms{|vvusi~pz}|us{tuo{vuz|~{s~w{{txkq|qvuwwxvwostxphwt}vw|uow}t}~p~|w|yq|tt}ytzty}xvpzzqwvu{n}zwv}s~s{oy~mpx{s|}xwvtm}~zy{utmzzjwjw|r}{xvusytwyhr{uvvsz~~xyus}{oo~|vp{{wv{|wsrtvxu{yt}}}|wp|~wvux~ruq~y~yottytq{yx}x|wyzy{l~t|~ytyvs{~zxwz|w{r}{yww{}vz|ywvzyyz~~x||tzx}s{~s}yvxy|{{{zvou{{{|mwq|y|wyz}{}uxzws~yv}|}x|{{v~y}xmzw||{{~vv|}~~v|||zzzuxy|{e{wz}|z|~~}~}~~y|~{}}|w|xzxwx}q{z{||{~{}}u|v}zywzx|q}}~{x}z}|z~xr|{~}{|}p}yp{|z{{}~w|wtwxzx{zuz}zy~u|}yww}wyr|ur~zpyxuwvyyv}x{uuvxst||sk{p~|zzzwu{wuu{z{vwsy}z{|t}{~~}t}ut|zrt}porv|zm|st|zv|{z~{wz~uz~~w~~ynzxzw{~~xvz|~vwzsru{qpvxtsxuwvvstjp~s~}jzjsy|vdi{~zxsxw{ulrnzx{v}_nvjvxss~tmi|zvv}qxkyz}{v||yvwxwn{qwvvzywz|xlutxnt{cvtpvw|rtnt~~}yxsryu|wy{xx{nvtv|vuy}{}xyyzw~ym}v{zw}|t}wlmz{xrx~{zt~~xpzt|}w~}}uz~|{wry}ytxr||ux}~r~zv{yyn{zvs~yyr}s}xzv||z~{yt|y{}zwr{uzwwuznxz|sz{~z{|n~s|}wy{yzxpyx|}}pqy~}t}{{nytqzv}yu}|w~}~{z}uvwux{usvyy{{}}s|n~v{z}|pty~pyzv{}{xt}wt}z{}u|ou}}zj{vxpojoovrxx~~uw{tw|yu~py{{{{xpy}vm{wxyxu{}}~u{x~~z~xv}vwwxz|}v{~nxut~zzz|yvx~}t}{u}}vyrr{z|z{y~u}|}{~z}vzvvu}~~wq~~v{zwx~}xy~yxyysss|{rryv|uzz~x{xqrt~|{wvp|{xx}~y}y||wvr~uz}zvx{}||}w{xz{|~sy~ruzynrv}x}|~u{wt{wzuxnuu|y~z{}uyzuzvquzux|zv||}s}}~}}v{yy~t~xuz~}x~y}{x||uy}wpur|y||zx|xy{|}wxzy}twt{t~{vyqyvwpyxyzxyux|ozzvvx|wp}z{|ts~ozuut}pownfqutotu{zp{pg}zjSqyyq~zlyuz{ppxx~{q~vszxu|h~|mzwxr||xo}y}tx}w}~|toxiuswywirzysyi{~k{rt{tq|y|pvstwsq|vw}xtrxt}sxx{ju|~o~vw~y|vnr{ip{xo~uvr~xmu}nrrxzvq}rwzx}s|ttz{zr|opuzm~t{zuwyyryt|~yz~xm}t}}~zyzys|vvyxvv{rxjlp{tzu{wqvvkw{zr}{|{y}wv}zz~tx|~xn~tqxyuv~wp}whppw|`~wzowm{qyyvyuv~txozxxwr{{qz{ruortw~~w||~qz}|}ixz~yrqzxtx}z{rvyx{yyt}yvr}x|~}~}z|{_yyue~syzl{uxzsvsv|txv}}utz~qr~sv}zzzekmnh{\i{o{lvwuv[if{ylwhv{}eyv|{|u}|k|vJi{k|l`|{kw}|hl{wzh{~n{ry|qn|}k}~q[ownte|bj~|ku{zkx[rjvq{{ghnux~wrb|vppxzs|~{w{w|zz|z{|vx{}~w}|xry}|syo}tu}~~}zzn{yxt~zwvzyw}||suu{~~ws}~xxxu}vy{{{|~||}xxxs}||x|{p{|zyzy~k{{vv{ryxzyv}v|{xy{r~{}zww{}}zu}|}swwxyv~|zxsvx|xkt|x}s|rtun}|~wsx}vsyrt}{rv}vv{}y}q{q}xxz{u{uj~rzustvzxw~sy}vuwyvv|u|uy}i{sssox|{||pzvtvy}yzx{yx{}hx|wwxn{}z~zw~zqtz}yzxvxwxrqyy|wyts{~yx~zxpv{{w}zz{z|~tuz~v{vy}w}utzz|z{o}~yywvvy{}y~{y~}~u~{v}x{uv{sv{~szzzw}~txt|{{s~w|v|u|v|xz|yzzw|zut{u|z~zrywuzzt|y{{vyw~zyt{t{xru{~zyw~w~~x{uyt{{{wtzzt|z{|vzvwt~s}|t}}{y|}|x{w|y|m{z~ux~|qr}z}|zv~{~~u}|y}q|wv{|}xym|sz|vuuvwy~utxl{z}ytp}~{y}yv||~}vst|u~r{zzvux|wvrw|yypsw~|vvzz}|}}zo~{w{x{{}{y}tn}vz|u{{~~zzx{wrtVyzprssuw{ymy{zv~{txyxxnt{|xz~w|smwowxtxxv{srwvzzxyxxwx~q}{x}y{}}~q|rvhxkzzxzwzzpzxzzs{yxytzy{wttt~p}~nsy{}uv|{~~s}x~wzwut|xw{zyuw{}wwmwxy{|u|y}ztx|xuu{wosz|zzyu||}{}{qw|yvx|y~~tywswy|t{~yyv~vz{xtp|{zowx{}rzq|xz|zs{z|t}~z}vz{w~t_vvwrw~{xuosxzzsrt{t|ytwpsxwru}|vlz|}{{xz}oytu~{u~|~svz|zw{}stziyowk}sps}kxxuryuyt~q{~vxrxw}y}z|}u}u|{{styt{y|{{v}}wu{q}xyzw}v|t{yt~tzypsw~q||}y|vz~yyvuu{w{r}u~p{~uzzwtyt~v{w~qtz~y{zxuy~|xv{xy~w|{xt}}{wzz}v|{w{s{o|zsu~wx~{}wu{|qt|vstyyzxrsv|{xrwt~yu|x~uzi}x~yuyuzyw|zvyt}zxwzxuz}zw}|~~s{zxuy~wz{qyzvzv|{wrvrzw|uw~}~wxyxu~}|y~zxxzuuxwzv~{vrwvzu|oxxu|s|u|wqwx{}z}xyzuvpt~}}yv|{s{wyzvty{~{x{y}vvz{{t}{{xwytys{pwx{{|eqv{o{z}tr{|rptv}v}}muy}yn|o|v|vzywzvy}}}t~yuzrx~wtynyr|u~{nrvywm{l|wztzx~qw~fwq|pv|~rt~rl~zjyv~hvwtvzt{mw{uuhw{w~ts{m}{|}xqkw{}v{tzuus}}lzo|x|vvvi{|{u~w}pnzzsxvxzzt{wu}x}|~||q{k~vym}sls~}~w{o{yr{~t~woruyt}~oyqy~vx|vuspppsxw{w~{qweoksd|qu{|ql{|xvy|sy}w||t~oto~~xmnqr{yq~zw~uty{|s{uytwowqvzlz|{s|vz|mt|~ys|tptjtso}{}|}~vxzyzsxwy{t{y|zwwsyzwmy|vx]|wwuy~sxuv~rkrxo|pts{ppzzu~x|u|gvfmqqps}rp||qz|usz}v|~o|yv}}t~v{y{~~sv~}x{|yzzrv}|||xz}s}uz~zvq|zxvtvzvwwz|~{u}wyyzxzx{vu|zu}x}}}zx}xysywzp{|tvov}yu~xxv{ysszx~~wnyw}r}y{rv|uzvzzxxq~yx{x}||~{vwztxxw}~tyt{~q{z}xzt{xrzyy}x}{v}w~ytoryww~|ruwuux~oyws{{t}xxty~vm|}ry~}sz}vystpx{vw~zw~zv{}xruprw|x}xp}}qr|{zuysitqur{u{x{|up}mu}x{|jsv}ww{vy|xv|xl|{rw}vh{ytjszfs{~~vzxezy{{~|vzts~xi~qvu{z~wt|sy|z||vzyxux~w{}xxl~yn}rwlt}tznm|v~wxg}up}vw~|ut{o||z{~yzw|{wwxw}w{vzt|z|}nz}syz|uqum}x|s~t}pzz~{vzslo}|vq~z{~v~~usu|tzv{v{zyx}q|v~~|~~vy{y~|xsv~|s~}~w}rwzrss{{wvpxvwxz}|tz|t{s~~twykx}~yr{x}zgsxyu~v{y{nx|xxtrrky|v||r~~y}wuw}{zj|u}w{pzv{ht{pn{~x}xvn~pzxz|vyurox{unoumj~}}uuxumx~|ws~xyu|}r{z{zk}rn{}ry|kxmy~yzy||~y{szipr||olrmzyw{tyyisyom|fznwy|pnmu}}{gvtrmt}vxym~yu~wytrulvqsy}ru|qqsqtqq|zyr|xupwtzy{zv}qt{{tywqtwzz}}z}{{~}{vzxz~r{||stnsm~tpn|xvz{xy}yt~kssvv}syt|jn|{vv{sxtylwrr~s}syw|~~hz~nrnw|pvtsquyzf}qa}r}~~uwmo~tzws|lxrymwpxx{}}~v|tr~{tyk~~w{mvzwxtjtt}zydew~|r|wg}qwu}jwsvtz|qyslzr}xniytt|oz}y{qtxx|utss|~|wnx{zx}v{{{|~yu~tvswrw}xxz~ryyq~s{k{v|zx{{nsz}sw{~l{}z}{y}|||~}lxqw~yu}tu|s{~|t~|t{}q{ws{uw~woroom~ywytx|wy{zuuy}ytrzuoexqxp~~zy~{ruqsyezxz{p~npw~}tzt||v{pczvw~}}~~}zszunk|joy~gzu{zyyx{zrv}y|{xswr{|zyo~v{}wlz{usxes~s}xz|wryu~}vz~swr}xqyvsqus{yz~xjzoz|s~suyrpt|kuuqls}{{o||zywxx|{{tz{upyuw~z}uxw}z~wz{||s~srsyyvt~tz{z~q{}~uz|uu{xwzjw|usttvpvz~~zp|~r{uwu}zyuu~oryz~xrsrxw|ys~xy{zrzv{zzzyzx|whsuzzxt{z}vxuuuq|x}tsx{{y}pznyrzyz~t|uqq}{|mq~t||v~rwzulw{w}s{xx~znunrxzs}rysx||v~voqvlw`pt||s|wj{uz}|qwutmxr~qrxrw~qx|rr}nysvmwmsur|zyl~}w~{wvyvrp}v||~q~l~|yqw~yx}novors~xzznzqyw~rvwsv|u|q|yp|{|~|u|yxt}{}vu|ut}t~{~{z|~xxqt|p|w~|{txqy}r}xp{utwu}zozzhytotzvvry{qmzrrsv{or{|mwwx{zxw|~yyzwvpqxxz|}x~y{yir{~y{o|z}zzx||zt|}zwwsxtqvz|wvs~x{px{vry~~uvz|zuyw{|sts}vvxxr|m||n}}wzg|zt{}|m}|up{w{w{~z{mxrs|}}prz{y~jqs~xmu}uy~vy~zxu}{j{kxzrvwvy|{|}rux~twv{k~p{~{yzux|xy}|{|yz|t|}~z{~~t~xlx}tvv~{~rzh}w~pt~n~xzxtuy~x}v}|w~}otvvz~x}rs|}s}|}|v}x~uuurwtuxq}xz~wtv}z~uv|w}y}wzyy{|}uwv~{vwu{yszyyrp|yyuz{{zw~w~ty~}{{oz|r|}}nsyz~uwxs{zvxv{~yu}~y|yzy~w}iuq|{vxzwo~{v{rvzvu}}wzz{zy{ro|wszu~~}|{q~uvxyyu{xz}~zs|sv}yy~{vx~q}|{j~zyzv}w}x~ypxt}|y{yy|~x|w~|}~wxu|qx~wu{~{yr~{z|xv~~x}|v{|}||ptx~}w{ww~zp{xw{}vz~~~y{|}svz}qx{y~vtqyu{~{w|~w{wyvjrqjt{s|v{z|wwgwyt~u~|tzzx|~usvoq|z~r~wt|qyut|{ynyvy~wywvyzy{zx{sn}vxy~rz{~uv~{yo{xzu|{{~qv{wvs|{sm~||{{ow{|{{{z}{wyml|ruwuzuvy}zxwz}||}z{tz{}y|z{zyzu~vzt{u|xu{z}~||zyz{vwz|uw~uw~sz~x|xvtz|x~xxu|}{|{|uz|||w|x{~|{{yxzz~wy}{w}zt{{zy}q~xzn}wzv~txyxyz}py{|ywu}w|yo{~~wzyyrvws}z~wuxu{u}|uu{}z|{zzvz|turyqnzn~}}wxtvpz}||wz~{swuyy{~}q~wqzvyzvynvsyyxvqwsw|}||q||}py}~t{yu|xl}v|wwzzytp~|z~yppxywtw{y~}quyw{|~s|iz{yw{{uxvsmy{{|wyyrxw|{p{y{ul{|yq~{{z~}}~z{ntx}urzn|wsx{{{{r~mqu|{}xtzsorvyn~|uxvzvt|{ywm|vuusyyws~{pxy|nyx}v~zytq}pmvyws~n{~qyvsyy}y}y}xwuvuw~~}rvsw~wzxuyrnyqwjwu}{{zstuzu~sxxvwzxn|zxzz{o||~zysxyvxs|pzz~stvx{tx|xw{z}tvtp~t~~t~}}p{{{}}|zyuxxyuvuyxp}ntwz{ssuy}m|zxlxty{u|yyvyyyxz|~z{}t~}x|zru|~}|vuu}{xgryts}v|z|rvz~z~v|u}|}zxux{}poyzwzywztw}{|{yu~pv}zuquzyr}y}~{w|n~uzsxs~ovu{x|n{w}w{vz~ov{|wzrpz|z}{y|z{|tr{v}{}}xwr|y{{xvvx{|q|xtvxxw}xyksnpulnuwdxzsytw~x}xvzrw|ux|v^totn{ym~}{v{tpvjzrv}stzy{yxntzqz|~Ro|op|}}tSnvxzrvywzunpq|w}tq~v{~zzrkonr{{uwutz~_}ssqixuwz]xyv{{xzuzwp|n||{}v|}}|t~uz|pt}u{y}ytuzlwtwz{ttkow~{wysu}{}xyo~s}~xw|}}t~{}t}p~qv{uo}v~x{okss}|uw}z}}rwx{|}g}q}tq{ylxxvp~i{rny}t}pyws|||}t}||qxxynxrv{t{urzv}yxyyx|v~so~{xuq|~|}{z|{q}zvyuz~}v~~v{{|svu|u}|zxw{w|xzy~{vumqz{tzxx}{}zxxyuvnyxzwtvt}||uwv~w{vuwszrt~xw{ut{kxtyzv}}}vxwv~zvqs{s~|{}xwttx{~}d{uyzyz}}xyv~{~w~xzzs}yy}utzvu|ouzuwz}|~}|y|y}x{vx~{uzu}zy}{zvt|wz{zzz~w}{~zz|yy~}{x|}xyv{xrw{rwyzu|zxyyzsr~{z~qxrkwvruszwswvnrz{rqsm|wy|z{tespuq~yq~||xu{wnuq|o|yws|{vwwpz{vr{umy~vszvzvutwxpx|vj~nvwxzz|pz{}suk{{hus{{}szpznyroyjziyvux~|z||zt~r}jzsz|suquxwq}nkwtzxuyvwvrzyxx}m{wxwv{twzsze~yyxp|jx|wv|{|tyvwv|zxr|vqttqxywyzjsrt|qynrx|x~sxq{{yub|muoeuo~r{tut}{z{{x~pyrjzmtrqwuu|x{|n}wv{zzz}uy{s~rsywu{yviyipruzvq{pxfxxxruy{{h|xr{xzt~s||w{w|xvtxtytrvyxpyyp}yywut{}sx|ss~{uw{|ruwxsyur}~nwu~s{}yx{ypzo~w{yww|u|vkvzv|qx|wuywst~vrv}ouuxwz|nzr|xyzsty~~zzzwtyxrxy|yrv}w{}x{w}wxu|{}yvsvz}}{y{~}{vy||~|t~t~|yt}}x}zyu}v}py~~zzxwz{z}zr}xu{~|vvvz~wuyvxv{~wzxw{yp|sx|{u||z|}~}|swzy~utpzxzt{l~{r}zs~{|wwxzu~xyq~}}x|x{w}~wi{ry~x|yuvxuq}z|}{v|ttyzyyw|vv{}z{yp|{xgz{z}~zwr|}|wtl~{}yuy~|yyu{|{|x}~}z|vwovvz|vp||wz~{sy{xt}~w}x|u}vy}{vpw}rzxy{zu|{l|~u}ybr|yu`zw{m}{u|}z{srwt}~~tz}pdq}syzssu}ao{~xu}zqy{pxoyuzmvnqyyznz|vqsyzyzztnzxkuzzpur|}~~vtyt|zd~zyydyy{rtl|o{l|nyzu||~~puzwy|u~{t|y}zx{z{sxz{|{w}z}}||z{|~|ysxz|zyxx~w{{}||x|~ly|vxx}w~z~~}urxx}}{usx{wt}xl}vwz{tuyz}~wys}zvzruzssw}|||yxvx~rz{{}xz}y|~}}sxtrz|znqyx}}s{~~vws||wzrzr|u~sl|x~q{x{wqz{~zzr|yt}z{v|z{zkw|ryvu}wzzt~u|{|ty}yuvz~uw|w{{t{syvqwwxwzy}}ww~{xx~vuxv|x~~xxzw|{{zzzwy{zt~|}~}}zx|yvz{|xyqtrx}oy~xzyyzr~}zzzxzv}vv{yq}}}~xos{{lwz|u~rxx{zxwvv|ztv}tz~|{qs}{}}w{zxy}{v~vt{yxx~zrw}|{ry{wr}~}}~utzx|t}pxs{zmyy}q{w~u~~{v~wvy{{qrzpt|vyzzyq~{|zut~yywvtkyt{vwopx~yxq{tt{~vzv}z{ryuuvz}sxxz{y|zqt{ytr~}vvuotsxp{ttxwyxou{}svrywvvy{txy{}uxxww}k{}xtuzxuywywx~~vu}{zwy{t{x|}}yzm|yxzyyyzwsyxu}r}~qzy{qtyzt~t}{}~||~w~w|tx|m||w|~svz}wt~wx{y|x|xtw||y|v}~wyxpsu|utz{wtx{u|~|ztqw|uyr}royzy{qxwvxzv~uz~wxtrzxzv}|yrwzt~|}y{u|}qxxtmuux{yg|vv|wyxtvvytzvyu|upz{~s|y~wyyxny{vyz|}tztv}|vrxk~rop~}y}{rzuq{{xyx|{ovxuw}|rsz{wqk{~}~}rrzz~|wt|u|tw}svxvxxznmw|yv~z{w|y{yz|ww~{}w{yzr|}uuy}yvv}ny|~wzuzu|yzvt}zvytvu~{t~vvyx{wyzt|nz~}|}lwr}xv}x{t{|~}}yvxo~ywywz}z|n{~{tx}{zxv~yyv|yyut|vwzxp{|wx}vtwwzzpt~mt||vuzwu|}}uw{ty}x~~u|rwwnn~zuty{vx{vzv|}~|uw}~p|r~~r~u}nu~tuv~{{}{w}~np|w{vxwun~yyw{xsx|xys}}~z|wzuvwvw|||||xvwxyzytznuy}||tmx{x}~}}xy|{}~{vu{~~xlymy~|~y}z{{wtz{~~}zzvm|mw|x}}uv}}|p||xt~~~|~zyz{||z~}zxo|qq|xyz|w{{}ywrnt{qxrtvzpxz~ywy{{}p~xwvq{~xu}ypt{u{qprrs~wxx{}z~vy~sr{swxywzpxqzi|wz}xqw|xo|uvrz~~dwyw||wx}}}{v}xyxq{{rx{yk~qns}yws}ntr{t~m}rsvv|uxyx~rzwv}{}{~|uxy~~y{vt|{zwz{zw|vzssp|zyy}wyx{yxv|{z{|~~w{}~xszo~||yuuvxtr|y}{{y|{tzzy||xz~r{{zvvyvy}~{xuz{xwtw{x}yxv}x~zyvuyy~}v||}y{yzuyy}x{{qv|yssz~z{{|tr|zuxrztnuoz}ouyxw{upzvpvwwxv}xp~xtwy~uq|mzrqxrxwpy|vw~tv|mruwyvus{zykhuy~xyz~~}yyt{}}s|uz|vcrvzz{{su}~y{zz{wvsst}yuuxszxrsrl|xuu}mr|wzuxwp{szwowvzws~~zzp~o~r~z}{~}}t}{}yyu|||}}}qx}k}~{zxu}{~vz~|~x|}~z|{~|n{sxy|z{}}y|{|}tx}z}vzt{{z{}urzw~{|mzq|}wvx|y{wr~~}yu|||u~m~uuzsxx~|}~tyz~x|z{swtwuyypy~t~xww{s|~}tyw}vyw}w|px~~t|{zx}y~v|xxq{u|~zz~w{s{|{vvwyxvt|~s|}lywwuyy}ttyz|}z{tt~xr{{z~{zy}x}txy{xwtz~qsv{toq{{x~z~~v{xu}x|ww}zxzuu}~tuyt||t~vy~{{uyzy~}zq}uwy{rx}ustw|szu}{s{x|s|z}pztswvuw}}tzw{rm{{sxuxvy|qzvt|st{x|x|q}q{yz}yuuvv}wzvztxyxr|}~n}~zuv}s{uy||rynsx|}|~qzrxqu~zvxp{vzu{~}xyu~y|zs}w{zw|wx|}xxyxyw{}lwwzz|xro|~ts|zz}zvu~|uw{rv||{|uv{vry~v|zxty{~}}ywqxxu{svxss}swqz}z{yxzzuvxy}w{wy~}tuxy|stvtv{zx{}vx|yzzs}uly|yvz|{{~q|xzzxv{tysy{}vxz|y{trr~t{~vx|zy}p}yuy{vy~ssx|vt|y~z{{~~vwzv|}wq|z|ryu{v{o{ysvxovz}zuw}xlvpq~|yxu{w~w|}x|{w|{{{u}zqy~nv{tyww{xtz~~u~zx}~pz~vwuq}~~x}xo{}wvrtw{}zpzw}{u~vuxxyv~|uuzz~x{zuxyntwzxzzy}uw~s}rzzztx~u|{t|}yt~~qyxxwxzytwu}wv|~{poxz}{u||yws}szyvl}~wy|q~ywsmtu{oyswpxx}xwr~o}s{~{st|zx~u{}}zqyzzxx{{{|rzz|xy|{}s{z~xqxw{ywyxtqzyu|vs}qvtyv{iuxtwsvvx}{xx~xt}xzxruxovuwzyxvx~yz}zr}zv{vykvvx|xwtrz|~}{uzuyzvy{x|xuv~vzryz|{y~v|xlzxzyz|{vpw~~~{yxv|nw{zyz|yx|}w{zyusz~}{~|||}{yv{{z}x}~yx~t}}vx|{wyystrzzyv{}vzz{~qswy}x|zu||{}}||~y||rsu~z|x~||{y||}|utx}zrq|wvv|q{|wzx|}z~vwz|xvxszwux|z{~sx{ovu}z~srvqt~zwqxyzwu|{y~x~}yt{z~zzwy~m{~lxs|v~sw}xyzu{~z|w{r|xutxy|{xuu|yuu}y|~|}~q~u{{zx||zvwyzzzu|v}ut|wxxt}swrslxw{xyy{{ryxnvxx|xvtzs}{}w|ywwxyxvyzmwzztwz}|yxwus{t{txuz{nyyxxzr|}xwt}}tzsvvjv|xvyz~yr}vuxu~suzxy~}v}{xwyvv|zyykx{~}xyz{|tx{{zvkrnz|o}x}yz|s||wt~n|xuzzw}|uzyyq}w|xz~w}vqr}txxwuq}qz}wusymvvyu|w|~quwuzus}z~yuvuw~xzwfs}xx}{z{xtz~vw|}{z~ztsv~~{otvuyvt{ry~}yrwpoy{zt|zz~z}}yyx{yps~uw|lus}|zuzxz}~{|}{}uw}y~}{z~xy~}qytv|vt}{}xzz~||wys~snyx{}ywvxx}v{yto|zuwjv{wv||~yvz~vzrx}ysxvtk~}uxt}|vx}wp}pw~v}wo|yv}z}|s}ur||x{}}xyyrtvruuyx{|yrso|~y}wyx}|x{~sny{{xor{|utsrpw~jwwwwyz{|||zztvttyzz{puo{p|{vxcjxvlwpxwvyvn}uxwzwuvtuxwq{itz{{wq|u}rvsswnxtk~uuw~{wy|t~|~zy|ys}~{wzhyum|}v~rxysy}}om{twvuxz~u~tzr}eruwsn|z{w}z{tx|m{gzwv~}uv~x|zm|n{wtuz}z~yswy|oytz}vr}tzw{uzg|nusqyt|sy}}x|zv{~x~{|zys~{}{m{{x{|~u}{{~v|v{}|q|tuprwvuzwx|y{qm~yz{usw~~pysv{l|~|xvyvypzyy~tsv}~vq{zxzwx|urytzuyxsqo{}xws|uvys{|wzux}~uvuwy{z}~t{qozrs{z{oz~zxyt~kz|z{}youp}m{v}{u~}~xkuop}ww|un{vjswr|xur}wxyqv}zyt}{m|zvvts{ztttt{{fwtyvn}xsyw}ut{~}jz{xuz{}~h~rozfer}ovmvovzvqy~wpG~zqryk|{}pnzrzzzusx{xqzvvy}wwwxzrqxmxrflku}zyu~wvw`ruttryup{|~{{Y}}s}u}|{qzk}qwwpw~vwjvr}jxvlprolurs|oszktnxn~]vusyzn~zuzvxw}u~zvzyvzyxwvwqzxpz~t~yzyrw~{~qz}}p{zzkxwu|~z{x{|vx{}}u{yy||r{qy{|wmx}{yzy{|uxu~|{ywwtswz{pyy{sxzx~zy|~~tyr|||tt}z}yt}z|xzzz}w~x{t~x|{yxtuu~w~t~w~|wqyz~ynzyupt|w|vx}yu{yyx~vu{vuz|p|}wxz|{tz}{y~~y~|y{vyt{y{~|~~yw~uzz}~x{q{}t|}x}vz~x~z}{v|z|uyz{}rzl~}{{~zsu|zztsv|z{zmpyurqqvrnxvvzvvsyv{{uztwyummzwzypvtvwev|xzzz|yu}ux{{s}u~zwvxwvxzw~sx}wxvv~pw|xrvzuuwx{mvuxxv}yzyvwv{{zus|mny~pvt|wtv{q{~~yo|tn|y|yyxs{wk~uwy{~xs~zxw}|~xzzy|zzz|~xyzwwxvyx~|}p{{|v}yxt{}tzut|zzzyzzxt}wtrnxy~w{tq}zp{oyt}u|sx}|~ysr~{zw}z|ruzuxvsvz|||m}~tr|z{zx{wu{{z~|}u~|s~y~~{z|}{yyy}{yyywvr{}~~{u}wv}xy|y|wx}vwzzzw|y|zxsszyoy|xu~w~x}r|rr|}~||r|z~xyvy}wx|s|{z|z~~zo|v}tt}{zt|y}lzuzz~uxxywzqz~yyz|zz|y{~}|{}{z}t~w}zw}t~y{z|qytux|y~otp}}xy{yvwrru|w{z~xzv{{}xzyww|zytty~xztxywy|{v|u|{}x}wxysqpsv~xxtwuw~txytyz|v~|qxtxzuyz||v|xvuz~y~yvzyv}uvy{{zv{x}qzyzps}|xy}wwvzv~}qw{wxx{x|}|qz{vwxux{zttzpxyvz||x}yz}x{~zrzuy{w{{zxyztv~{}q|~xxu{}zuu}~~u~{zsyz~y~{{tx~wru~{v}zw~}u{vvy{{{x}xwy|uxyzx}wztzvvw|{y{|wvxvuzxuzqywyzsxoxx}zysqut}}x{z|svxzy}}~tw|{{y}yvw{xzumx~yz}rx}xk||xwz~xxxv|z~wqy|{{u{qw~|w}yrxzot}zsv}{v~|psy{z~u|usxyu{xwy~\|vty{}|z{yp~ynvtt~|ryy}w}owxzwtvyz}~szy}zu}}x~yt}yy~sx|r~z~s{xw}z}vvzwywvyvz~}~~uzz|tzt~uvzruuw|zut}suzsxxvxtmzy|}|{x~{y}x~vtz}{ys|xy|y|tpy}w{{szyy}wzu|}v~{yzz{{ywy|}|r{}z~rvw{z~~~}rvx|lx~w{tx}yzzywv{z~|x|{t}}{ysvu}~t|~~{o{{w}w{z{{sxozzvsx}utuz|t}~|}}vwp}syvwuwx~zxyyz}y|}~}wx|}uvsoxyzsx|~}{o}}s~{xq}zwxqu}|}xz|v~tu{{xw|}}}x~qssz{sw{||z}yx|w}sxz|}kytt}t~|~s}y~uzs}z||x~s}oy{}xwxzx{qtxw|w{|{{w~vzvt}s}ts~u~x~~~vutty~mx|{wzvztw{wny}|w~~yxwy}zvylw~{zvusu|sswxw|yz}{xy~{r}v~zyt~syz~}x|~zx}|~u}~|}~}vz{{}x|yw{w}yyxy}swzz|yzyw}z~u~xtuztvyz|ywy}}|u{{zr|zvjpz}vzwv|||yyv}wyx}z~w{|sys}~~yy{|ww}wznz}~noy|~}zs~ulpqzt|ytpv~nz|y~|y}vow|tqitxvw{psqrzzxp|{u{{tqysvw}qt}qmtr|to}}tp{}|~{|yz|rm|sptyzvy}~uvt~{zzxxz}{s}{x|jwp}~}z~{yxtzxnqwsyrvwvxq}pivstyvzwtzz}y|{{xv{{wz~ym|jxu}zy}yq{x~wxx~uqs~~|yrkz{xmwyzruk|y{x{psut|{|{xtuv||syv|xu{}|ny~uvw}z}{}z~w}yqsty{}py}}pxuxywnty{z}st~}{ymv{~qwqpv|gyvjsi|xsx}xtv}zq|v|t{rtrtsuxyy~zyyu||}yzy}zywrmt|du|j~vt{zy||zuwyuywn{|z{xvx{s}|uyouov~~wpt~{xv|jvnt|~|py}v{}}|owt|qt~x~xv|yuy|x||}vz{vwzv{tyyw~w}|vz}uwzy|svt{w||~lyyuv|swt}zvxw~}zx~mwzzyxxw{{vu{|sy|zvy}z{rz{v|{x{zx~{~s}~xn{ovx|yxuvywx~wwwzyy|w|}~xuvs~xxwnzss}|qzt|z{qu|}v~}vy{tvw~}wvmqzvvnvuyxyx~}}{|x{xvv{xzx~y~y~sx{}|x|sr{yxwvutpytvzw|ssyyts{x{~~uv~tzwz~{t~qw|wvzzwyxu~x~zrxrz{sz~v~x~u~u|xqyywyxx|lyzzqxtu~p||w|yo|ty}yytu|vx{x~wtxw||t~q{sur~vs}{~~ysvvu}{x{}rxq{uw}lxywwx{tvtzx}~vsw|smy{ovyk||tswtv{vq}zszz}s}~vw|m~mpxz{zxpwkz|txuz|~{y}uvtn~~{{yyquyzwsj{uq|qyn|~trx}uzupvwpyoyz|}zxy}xr{zz||zx}wz~|{vwyuyz~x{~xy|y|~~x|v{vu|vu}szwtyyz}qzx{|yu|v|||uyrr|xw}{|y}w{{~}{z{v|zw|z}|}~~||y~x}q}y|{zz|upv~{|vv~x|yzwz{owq{rvrx|~yuzuxyov|}{~zxwtv|tr~svvy{ovxx}|{w}tm~v~y}ruz|s}x{}|zoy~|u{qxpz{vvusv~|s}{wv~{~t{ywzwzzrzt{wwx{qux|zw{u~}w}u}y|vxu~rv~o|{syzzxprrqt~kt~~oopuT|wyszwv|}vpevxsmxvtty{yntq}~w}|z}zxu}p|}v}z~{qwrsy^|mytmv|v{neuxrmzn{ztv|up|~qx{|nyxnq~ytuut|}{zprwxwuvuqy~}w{t~{}v~x{}vxw~zyuz}{xxxx~uw|w{wz{wyz{vyzy{w{~xzxsytzy~~q|}xs~srwyz|zy}y}~}}{vx{{wyy|lzxw~|{zuxww{~}yxutx}{s||~t|}zyx~{|}v|{|z}zuz~{t||{yxs|zt}y}|~qwln|y}{~}tvw~u{nz{kyszxsyl~{vux|suyy}|{|}|wyy{}{{uzqw}}rzsv{wz{xz{y|{|zt}xx|zwwuz|wz}y|m|y{{|uwzzx}tz{{ywuxyyzzvty~yy}{~t||qzw{x|zy|{}}u}}~xv}~}{t{|~p{t|{{{qyuy||{u{w}ywuuw}x}xxt}{yxwwn|zx|vqy|r{|yv}ty{y}yzxqwtx}qq}}wvzt~zmzw{|xxk{top{|yrytw~yxzozt{z~uqt~sn}|pvyzz|t{r}|~ypxtyz|z|u}tyzzruy}|lwlx{q{t{w|n}yu~wz}vtzzs{v}xy}|u}z|||}w|wzy|{zz{uqvyyxzuvyzswtz~}~wxuvw{p{}q}||zw}zy~~rzy|{~xw{wy~uusq~v{|w~{o~~}}}xpy}}}{zp~}|{|}~|{qwx{}~qwx|yyzzyy|v|~|xvzuw{{u|ww}pzxzq~|~w~~x{uvxxzwx{|v~}}v||{~vy~y{{rww~z|||}x{xv{xx}p~|{uwx}tw}{||}}yw|v}vvnx}{}{{x~}~ozwxux||yy~uyz{y~yyy{z~{y}~vowxvqtr||~wv~}|zvq|wxq{}ss{|||yzy||xw{{~r{}vyvw||~~xy}}{zy{|}||~sxw}~~txwzw}zyxvvz~zq~~}uv}}x{|{}tv}{usvsuzwt|vtz}~tyuvw||xv|z~|{wz~y}}}w~xxnyy|~vsjr|{z}wszzzxuy{z}~|}~xyz~x|x~v{qxsy}yvwtr{{~xy}y|y~zvxxy|y~zv|{{}ztzx~t|yz~~xwz{zz{}vuuu~vyz~}wzu|zzuuxz}|~w{~uyuuw~w~ouw{~~{{xxtzq~y}yz|t{yvyyz}s{{yw{|u||zw~vyvw|{{uxxy{~}~|~}zzoq|wyyyu|ys~~z}zyyvv}{{v~}|uw~zv|{}pyx{}u}yy}yyw{x{vw}zw~{{v{z}z{yy{|}y|uy|sz~xrvw~y{rvvw~{w||{|}|qwxv~|tuy{tu|yyr|rzyvrxxw|u~qvutqzyvw{}xuvyw|w}|vzq~{qyxt{s{zw~nzxsxwyyt~u{|yu{wzw~r}~vt{}|}}pyvqx{|~y}~r~ww}qzxz}wsz{|r{xx{xz{{w}y~yvt~w||}|yvy{|x}}x||uuy}ut{vzz}y{v|{w{~x|u}{xyqz{~w~~s|~|xoyzysw~xsw|vve|z}~}|twvp}zl{u|wzud|zvz{{tz{z~du{s~u{yoyy|zyuqs|~wr}k{tqxy}tl{}y{{}~{q|ou}~wys{yqry~um{zuz~{x}}nqz}|~syqszxk|}xqvszvwz{u}qxy}xzzr|xv}yryy{qu}|{}}}sl~yzyzz~z}y{t|z~}w~z{}tswxyz~~ytxn{~~}}~x~q~y~q|x|t}yvuu{z|yz|ws~{wp}szt{||y}zwvy|~zx|y{yywwuu{}{{x~zzz|yw~|pq~{~{utwtz{xw{qvtz||}rxy}}q~q{|}h}{uswpvrxw{ywwxw}{tzuxwy}y}w}osvsyzpww{tw}t}{~{{~|zy~szq{wtw|rrq}~xy~{xzs~y~x}{t}pzu}ut{xxzxvxzz}r~}t~}}zuryt|xxuw||sz{su}yps||ww|u{svvzr{}ytytv}}{{{zum}w}z~~y{soy~q}vv{v|{}{|{owytyztszxw~}|vv|xvwx|{~|v}w{|xvwx}x}ux~~}}vtuuvz}|zur}ww{~vxuvzuwzxo}z|ys{y{rvw~xvzutw}yz}{zyywsrx|}~}w|zy}w{rq~ww}mrvvx{{uxyzuyy|yy~xqsx}wsr|xuot|zws{~szxxlz~z}zt}w||xxyvw||z~~xyx|mwx}tyww}tz{wy{yq|vyxx~|x~yzz^lyu~{sx~s|w{r|xv|~wV~rswz}~wxqwxwrgss}ry~{~v}zwlk|}lvqw|ttsxsxoz}xol}fy~|vxk}m~qs[s~xvq}|h{yw|usq~t`s|v{ptv|qlqhpqnykusqz{wxw{~l|u|xuy}wno{rwtyt|{}p}~tu|w|t}z|vx}ywuz|{e|||w}}|{v}}z~|~{}{uw~wrwzzyu{{|~z~wyvywwvvt~t}pvw}~u}}zw|t|tpytwz~stxqr|us~~nxszuvd~qz|~wwzu}nz}sr}~z}xwvv}y~~yz}{{w|yzu~|}zx|x{yx{yuwysw{w{~yz||yt~|xzz|||{w{|u{x{}yytv|~v{y}wyvz|}x{z}|z}u}x{xws~z{tys|x~q{xxy~ir}{wp~|sx~uxz{|xo}|w}to|vwyv{vxzp}ysussv}s}v}x{qrvqpvfnl{xvvxyz{ttwlz~uwqux||p~q||yzzgp~{}~|}z~skxvxpvnxq}v~{rx~twvz{yyjyoko}uu{~uyph|}xvz{xq~u}w{{~ty{usxtyuzyz{vw~wz{qzwrvqtvwrlxVur}~zy{nzru{]xxv|}w}wyx~qmt|}~~wwuxutzrJzz|~|{~|z{l~{s|{|l}{}{tuzwyhjlwv{lwyvwkvt{z|uvp}qypvtw~zzzyxn~kxysvmuuz~z}u}~zzxm{vsm{ji|nt{~uyywv}zv}y~~zx{zsv~zs~otpps}yvqzyzxxlusyyuyy}{yl|zx~wyu}wsutw|}|y{uwt|wqx|suu~yzzut~yq||ouyyyxs~ixz{w{xqwvr{v{wv~{z{uxr}~w~yoo{q~z~svw|v{k~}|xovqxwqmpn}sm~zprs{v{tlzzw}s}s~z|{ytyq}vzw}n|yrv~zx}nrys|s~ryqoy{tttrxz||x}|zry{|yv||rv}uw}}p}wv~qru{q~x{xiw|xtqyu{uyu~~vn~|q}z}zurn{wyu}vxvrsrkwyysyxvnz{yofzxy~z~~v{{x}{w|z{~|xrtu~y|zwww|fr}wx}uuz~u|{zz}y|{v~x||x|y}op{v~wy~vru}~qvyzy{y|u~t|~r{wtwuryt{{qn}w~wrw|v~}t|}v|zxvq||zytz|x}tw{rzz{~|}w}{z|xs{u{sw}x~s{vz~x~w~x{u{{zxx{x{wxw}s}uuz~uwv}yx|{}uy~wx~{{y}{z~|z|yyu{s{yz~{pyuvtyuy|zuzyvwzz}s|z~wxz}zv}x{z}{uz}xz|xzz~xvz~rvyv|yt}}xxyx|~y{x~zy~}~}x{}~{{yv}~|vzs||{{{}~}{zxwt{vr{zkyvs}ur{y}yzv}zzwt|tytrw|vt||~~u{~{~~~~xv|u}|uxt}v{rs~wv|r~ywxw}wgtzzxl}zpwzzxxzsvu}}w{}|x|y{tv|stu}|sx{vrw~yuzxxx{{xvu{yv{vxz}|{unyz~wz||v|uxzzm{{t~vv~tzy|xv}rvx{{tu~{yw{}|yz~|ty|{|{t|rwcry}vxxw|}uu~~y~}{lt~xrty~zr~{vrztj|qw|{tlx~xvk~vuutn|nqy~qxr|{}qrtwpqtsv{~ty}mp~rxyri{oyjyyvtzztlmswy{w{{ptzr{uv}|x~}yss{~wpzwwv}tqkn}q}r~wxw}zyt}s{|zrtt|xz}z~utv{|x~x}rpy|vq~q}{x{yymwx}ys}sv|zxxy}ks}~}x}zyzzrvw|}uzxvx|w{{x{x}y~tztxy}{zzrwsxu|up{|wwvqwsx~z{xuzz|}|q{wvy|zv{{v{xpx~{z}y|~zuuv{iwsqytyly}r~t}~|~s}|p|}up{|r|wqu|sus{}uw|tt~y|uu~rv|zr|ywxxwv{~}~hzsy|w|m{s{|wwnvh{swxsnwur{{yzwu}xsmvz}vxx}uuzz|qny{{w}vvv~tyvytwruvyrxvtzvst|vzwx|l~o|zy{|un}}zv||w}~zwu{{ryv|~||sx{{}z~wls~z~uzs~~o~qw{|wvv~u|uy{~zx{w}zwz~xv{}xzz~x~}x~}x{~v~|yly~z~{{{{|v{x~}z|xx}tt|xx{vw{|zyyt}v|}|zzyyqqty~wpzxr|xpy~{{vqysszp|ww{vtzy{osyvkou}|yryuu~}}{~y~wtvzzy{u|ypwxzv}ww||tr{ywysvzwqwy~{s~u}zxwxu{z{oy}zvxhwl|ytyv~vts||wt~}|}|yq|{yrvxyxvw~zyu{k}zxszuufw{~}ysy|wzzw|s|{~{zyys~xw~w|zwsu}uxv|~~|twtxywvwx}z}ppprx}lwtx}{tszwzzoytx{wyvzwzsvykwu~wzxrrw}swz}x~v{xyyz~zp{zxzw{us|xtv{ww}~{|wr~}rv|x~xtuxz}tvyv}w{usxzvtu~|tjtts}y}}{y{yzx~wz|zs}wyvwuz{rs}lxvyrw|x{{xpxzw|xy{y}z~yuxsnp~~{yw{~vvu{{w|zzzu|tz}||tztz}{w{xosxl}{~y{xzu}|~yuw{u{{xzy{tjwzsuxv~x{{}zx~{tw}|s|{w}y~t}~}{zv{x|rwztvt{qvyq{~rwxu~wxqy}x}tvvzzw}}y}y}uy}{yuy}ysnyw{}u|vv}zkt||z{v|s~s|x|tt~zwzx~|s{ov{q}{x|{|ur|z{{ylut{{mw|s{uxxyu}x{zu{kozsvyty}}uvu~{z|xzwuzr{|yu{|qtvwyxyzxr{w~y~~yzyx}|~|upvzxx{yy|{tu{{~vz{z{uyx{ou}vwqyvx~}~u~rg|wmu|y}{x{vwzrz{twyx~|s|}|{~xxnosxy}~uyu~sx}|}zx}{trpuwttt|~uyxjrzuvr~xq~yvr~v~qsx}wxqs}z{t|yxwvs}||z{tr|yx~zs{vkv}|y{zzr}ruvvq}z{yx~xsl}|vzo{z~y|us~{zvvr|zyyvtyxyuuv}~twwst|yx|~}x|}zzxxz|zw~|~|{t{wz{~z~}{u}{{uyv|x{zz~{y~{{zwzsu~u{{vz~w{}{~z{rt~w~|~z{{s}y~z{||}tyxyyqx|~vz|x}|t|z{~~~{}{{w{xzxy{ty|}su}osty{~}syyx{yy{~zys~w|v{ow{zlrvtxkrzs}{}sz~rx}qt{px{}yqs~z{qw|xwyyv}uw{{x|~xsy{x|{x~w}{l|vw|v||u}{}wy~}w}pxpuv{qwr~~vn|zzxyz}uxywz|yupz}tu|yx{~qx~z{y{v{}}{yyux|pxx{}~xztq}svxtv~|||zs|{sxzyxzyuywxuvz|zo|v~w~|~~|~zt{|~s~{|}s{tzz|yw|yzxpyyozwv{{}pw|~~vv|uywzwwxzyvrr{}vzu{~zwvwxu{zqy|y}nszzx~zv|zy~s{pw|}w|y~|xq}t}ww|x|{x{x~rtvutyu~{yz~|{{zw}vs~}~yy}xtu{ozzzww{zy}{|uyxvyvxvy{txz~~uy~z{iwwux}s}|w|~wp{zx|uxwt{toz~sxxtzv~vz||}xx}|uzwvvx~|luxwvupzxzy~{v~ut{y|y{x|juvvuzrtsfjr~}zn{v}||xzr~wqtutqxr}wtxz~zlvryswrmyy}v|wuz~}oqluwyvxxxs{yfwsxzrmwwwsvsos}vwx}wmx{yzzo{x{z~ur~s{|{}zzsspzrurt}|||tvrxcfu}yxtux~iy}uuw~}|}umy|phn}ooyyq}~o~remv|vyu|mnzuwtp{szr{xqe{x{tut~~~fw|wrzysz~ufxxtzzl|qvx}yrjplurwhruqwwxzsw~tyzzjvvkwv~u{vwzztu~xq|zt~tuv}zwtuyr{t~cqt}zowuxyvm~~ot}zztwvlxvv{zrsyv|wz}{tys~qt~yvzwyz{rx}}||zy|{u}qz}y{yzryp{jorj|zuwsqxykuotx~|}tyt|svwo}|tuwwy|vrsxq~sws|xy}v{{z}|}|~|l}|w}{uts~vuxwwux||uytmmms}y~wxswsw|wtquy{z~w{tnxw|||pv|ww|vguxtyvxrzxzv|zx|uy}zw~zq}xw{nwu|qxxywzwxo{zvu|x~|{ws~xvwnux||uz|{sysy}zryv~x{z|xz~xvuyy}unly}uutwz}ny{xq|{r}vw|}}yy|}|xvyvzv~x~|{{x~yuu{zxsqu|{sw||{wy}w|xvs{y{s{}ywuzvxyw|zm|wwtw}xz}vu}you~xtsznw|}yztxx|rvoozowrw|wz|~z~{r}{yx~zuzy|~s{xunvv|p||x~}qs{pj|v~vs{{xoxw}tu|xx{}|wxxopvspw}zwu|y}{y}svwzn~}z{~ww}kzw{z|z}{uu~tnuvyvn{r{||yzw{zx|zuxyv{}t{x~}rz}~w|xzs{ywww~{rx}}~{uus}ylr|}|nvwx~~w}u{xpxr{{v~}|}r{xvztw{~txty{q~uxxxwy{n|y}xnyzt~~r{{ty|xrn}}~~quzt{s~zz{}y~||v|{o|vuwyox}~w~yv{r}zzywvw}}vxyzvnswwtx}zzyz~vvvu~~xx{~zxtxy{tumv|xwstlw{y}tw}u~yum}xouy{{~v}{uxvs|ruqZusqqz{yqs{~~{u|xxzrxgx|qznx|e~~spsqrz}j~w|ryr|qulxyz|i|xv}}~|xk{|pzz|}un|xzx|o}w~}~||~y}mvsw~}{}}~{}ytstvwpuw}}{yz|uv{{{z{yzuqu~x~{u}{uz|y|y{xy{wtxyyx{zypqz}r|{zuw|}uzvszxyvytztnyz|}vytrxuvxsy|vtz}}|y|{w}xp|~{u~vxy}{}pu|uz|xy|v|tx~y~yq{{{}{}z|bz}|xtz}yt|wz{vx{|}{zxtwvyt~{~{~~{}{y{~vwy}uy~}wzq{}zt{yyyyvznyy{v~pw{w|~zy{x~x||zz~}wr}u~{|ns~{}{{}s}|~uw}vzswxw~uzzswxw||v~wzy||z~|mzuwzpp~t|wkjuxslztux}rzt~tv~~t{srpmy|{}tp{r|ltpus{|utpqwz{uz|y{wzzrx{rv}xu}ujx}}z}vswxurz{u{~q{|iporz|~zv||yyr|{wvt||x{{yxnx{rxr~q~|r~yv}{yzrkyyy_zyy{}|r}r|w~|uyy~nzuv}vy~w|uyv|y{y|}ly~y~xzklwqp{vu{~|z}|||trvoyux{w{|p|xowx}yxr{t|ur{vi}wsuVzqxr|zzyqixrvp}vwv|ysyi~~szy~y}|v}xzyw{y{yhqyy~yxpoywtvurjv~xtytttp~tx{o|twptoxvs~|qwvs{msq{ypyvrwsqr|ulzxx|~k{|vkzjx|qrlxyssks|xvo}{oxwrxrurtmvmvvxxwplpr|uupwyyy~|v~{}{s|z}yv|qyy|~sz}vt{|xv{rz~xttssy}zxz|puuyys{{vyzyyzyx}|sv{uowx{~zsu|{q}u|y||vz|nxs}wwy|rwxzy~tsvtx|u}wsrru{r{lt}ovzwvqrxrw{u|fr|v~x}vswy{ww|{~wxz|zuz~zzqx}~vw|v|}u~s{y~vx{y~}{xvuuyup||~p}tyv~szx|uz{w{~vy|tsxy~yy}sw{tsz}zpym~yw|{o|zyw{z~}vw~~z}|u}u|zv|{t{sy}xyezsyyutsr|zzvvyyqxtzy{~|ws{}s|y}{}~wx}ww{zz}o~|{y|w}zyoz|~zyx|}zyzytx|wq}z~z~xyxz}x~~{vz|p}{}|~qzzzvuzy}zwpv{~vy~~w|y~|y}~yyx{|w{rqqxx~w}~{~v|~wxztv{|xurvupwx|}{ytxy~z}}w|uvixy{t{{wrxuv||}|txy{uwxuwx|xrrqyrvwb|o{|s~xy~uuxv}|~}{{x}zvy{uw}zup{w|w{spyxxyxw|vz}yqz|zq}uyt}uuzz}{y{x|zwwyyzwxvswt}tywwzv{ys||z~|{yq{msuy~h{~wpy|u}nq|}ww~wvsx~xsmuz}|wvm{uz}iyz|~ixwwuur~v|}utyy~wvsyvpv{xypor|~{xm}uwk}yyu|ugwoptyxnux{z~xrvpx|spsyv}vsuyx~xvy|~y~yy|{|wu}}tuyzzzwpusyvv{|z~{zrx{|t{pw~vx~z~y~zw~ww~y}qwsyx|}{|}{u}u{y~w||{t|y{}{}z~}~yv{ww}t{yv|}y{wyyy{{y|y|t~{|{qzrtxuv}xvpw~wyy{rp{w{xv{uuzvu~{xztxxuuw~s|xsz{vr}uz{tyxwwoyxpvymrx{xw{xss|~zsx|y{xz~p|zzzsutwq~v~wvvtvw|s{vxpqq|{uzxwsvww|u}|yxswz|vuv{oqrp~xwwx{uyy~}|wzv~r|r~{s~}xw{{w~vsju{w|}zz{wuyxws|sz{xzr}px|yzs|vs~~{||~{wqmy~t}{||yy}yv}~x{z{{wusrsw{tv{qyqzy{{wswyy|~tx|ux~szzy|xuzyztzwozw}~yyz|{y{zs{r}}xz{y~ty|xz{tuuvu}wy{s|yv|wwy}oy{z}|{zzx~{t~yxwzwx}|{}s{u|~z{x{y~z{wyzx}~yvp~~{|zxxy}tz|u{wy|~~}tz{|{}~ww}v{~yw||{zx{ytztw{vx|ww~ov}zxtx{uzwzwz}wv|zw}}q~w|tuu}qoqkpv|}jvr}{}xswz|tu~xjo}uwyr|w~|vx|xr{wztyvst~z|yu|t~{w~o|wxx~}|}u{xwwy|vtsztzv~wuvxy~~~xvlygwwz}ypw{ywvrruxsw|su{{un{ytx|}v{|rxvmulw{wwxyrxtsmws|surs|srvnzzrw{{wl{{v{yzxvzzzqzrxxw~|tmuuqkyv~yzt}xw{qxv~|uztyto}uxy{vryytzxvvyx}}sz{}|qxq}p~~uwuw|{xxxvwltlyxzu}tt{~{~wzyvvxyxwpyzzywrx~t~zo|x{rph~uqjs|nuqt~{toyz~zx|uk}}|xnslyqrs{tytxjtuzw|z{su~{}z~zw~x|uv}|~||}tt|t{xvvz~w{}ysisz{tx~mt~nryjwsyxm{xqvxv~ts~}uvvw}}qxyx{x}{qsry}q~r}ux|ppxwwoihwyukotzitmzwr~}yuw~n}|zvybwxvzmk~}ywywswz{htowzwyupwkl|yyzmr}txzfwsswqzwsyvt|}qvx}}}vtz|{zzzqy}wyu|}xy}~vy|s}~v|w}||z}}yxtw{~vp~~vouu|w}zqy~vt{|z}~~}~{{vv~{|~}xzy|s|}{}yy}xww|ux}~v}|z|xyuu~|v|z|zyzwtu~|w~uwv|{yu{{vx}}}w~z~zyw{xzx|{v{~{szrosw{}|pm~~}pxyt~~ty|nw~yzyzyzv}|{t{yvu}~sxuuvwzx}vwz|s{y{v~s|uz|pwuyxx|zu{pzz{ypuzmxvyvw|z|{yy~yxy{|k~tw}~wzz{|z}uvw~v}u|wzy{w~xyxzx}vzz||{v|zw}}|z|xs|wwx~xwz{}yn~x{xzt{z{~x||wvs~|wwxwy~{vy~zy|u{vz~{xzz~ytyzox}y{y{}{|u~|v{}oyw{xuys~}{{xw|zw}|x~~s~uu{{}yt|}zzzwz{~wsy|zyxsz~~zw~}~zy|xrr{z~xw~zyvxrtw}}w|xvswz~|wwyt}}~z{|}{zt~|zwz~~z}wxv~z{qnx~|}z{v|yy~xzv{w}}x{xy}|yty{|wx}y}|vt{|zwwsr}v~svw}|}}}~y{t}|{|wyy|xvwt~|ws}~wt|xy}~{~zyv|zzwx|~wwu|~|zst~|vw{|~xy}}~yo}y{{{||~~}zy|xy}s{{n{|~wty{yyz}yz|xz}ww~z}xxzxw}{{yy|zpw~ys|vr~~{z{|x|rvuy~fyrp|xx~wuwp|xw|rsyxtv|utp|vqo|xlz}|rw}~r|t|qr{vtytwzvy~|tvyy~~~}{{z{}|zv|u|~|}w{z|~hq~pt~sx{x~y{~||l|mqm}wwovzrtw~~|xvw|uxkwuu|v}ywqwz~sw~y{uuxy{xtyvyuhv{s|mpyuw{mouyzttuvysntvn}sn~{tvozvxtvuxuuyvv}||wtq{tvusz|w{mlwvsu}rsmvwuys}vxzzwwzz{rqtouy|u||v~{x|x~~ro{orvyww}z{zyz{}vt|wx{u|qwy}xz|uzxtv}s|{}{uw}z{~~v~|{s|szt~{uzvuyqv{r~zr{qw{zx{t}wz~uy|~xwsqx~vx}zzzsyt~xyy|v{|}sw~|rv|yot{syu{yy|vtvz~zv|r{vy~{|}{pwt~~w~|y~v~{~}yyv{}xu}xt|{|}wy~}}nztu|||~{vno{}uz}|x~uuv|x~w}{z|xz{yy|{~zyywzxvxtsw~|ty}xu~uz~pzux|wxw}z}x~wv{v|xy|wys{xzzxw}zzv{~}v|}{w{uyzz}tw~|z~z{wyvzv{xvzxx|}zs}}lyp|uv}uz{y}}~v}{~z}svsqzux}|zvpxp{{zyw~u{y{uzy}n}|~yzy~q{|ot}{{}jjxo{|o}k{nywzw{xx|nxy}y}wry{szsorz|nr~owovz}{~oskzzrnswsipqzxz}wtnt~|}z}}{}wr{uywmovzu|s{vs{~zt{}|xvt}wy{u|vxtxo{|r~yx|z}mzuz~{xsxwvx{}vxt}tv|wx{xywu{wy}zypy{w|}zs}|q{wkxrtvsxuw|pt~uwu}xz||x{|wsu~}w{ur~yxqu|w}wwp}{zwyutwzz|x|xozvvs|ut|yy{~xt|utwyxz{z~{ww~ry{yzwwx~s{vtnsuxvt}u}|{}|yt~wk|oyx}~xq~~vp}yr{nz}xvw{yy~wvux|utvx{y|zp}s{{~wyp}rytup}~s{s~tvvwrws{zytsy}uypvyz{|uz}zxxww|zry{{yrvvww|z|zutu|{|}|ztvszzxww{z~tyyy{|ztz{z}z||z|}y~{}~yv}s~|xuxry~suuvxzx|xzvz||{x}~zu|qx~|u~vx}}v|{z~v{~w~w{}{zx{}yuxu~u}wrx|~twtvv{y{uzy~vs}ry|{x|||urkqwvwu{vs}||dvy}puxwwtxwzttw|sz~{t{~zs~u~vvzxw~p|wt~ywy~q~rx{x{zus{zvpvrrv{o{|}uk{zys}r}zz}ys|}zqw|zy{{y}v}y}uv{oy|t}q{ux~mz|}tw}v|g{rzvy{}}}|yytr}w}}ustzxy}}xy~xxx}q~|{w}xz||}|x~~zuuysr~x}woq~s~}{}{ux~|y~y~p|vwz~~{x}w{xzzyyo~yzz}~}s{|yu}{{z}|u{x}zt|rmvuowumzn}swsxyszzwr}|x~|zz|zi{tswvnzx~~{z{yt{u|z{ruywqzxp{t{~|ot~pxxs{qt{|~|t}t{u|tzztzzxsux~wky{{uyzw~rusu{{otsozyvx}w~ry{zx~xb~z}rt{{wt{pr~vu}x{~{zzuv~yy{wr{ws~tyu}{uxyiur~~|px{zyzuxzq{z}|||tx|vn|wy}}|y|zzlux{yzv{xu{~{}r}twp|nvxyp~|{xy~jxx}vowlsz}t~vr~x|l{~oqvwutsxrvv}vyp|twtuyzsptznvoux~x~rt|zmx}r}rwxvxzswwwnsouyv{}xq|wvxw{xomwt|{xz}y|svxmwx{twywwuuxwz{wnzuv|z|w}wtym}z{{n~tv{wx|omyut{rptxltx|z{~twrx|yzxt|rw||~~~tzy{u{wr~qr{vrw|u~zv|xz{|yvywv~{w{swzz|wy}~wqzxu{~w}x}qy{ps|}zxq{u~zvfz|y|qv~w}|y{zpw~~zvzyu|~q~||z{|~{ylzw}x{}{syu{}tzyw{womy{zr|pzxzy~z|x{u}~wwz{yv|}tz}w{{}}uzt|w{zz~|wz|wyw}~}r~up|tz~xvr}}wiyw~}|v}~~zzwvz{x}~z}~|z}~y}v{v|vv}}xxv|sxwtrvy}vvp|{}wqr|}wxsmvyrn~v}}{zz}}xq}{qqfvwxzvmr|tm{rvxw}}ty|wz~}w}xurpmswt|wvz{}uzz~qxuvzu}gy}x~xyuw}p~w}z~uz}sh}~{ptp~zlvyzx{z~swz}o}qyy}vz}xfrruvoup{xytwyszptxxvmy|ynsvr~|||rsxvtyy~xzttz{|~zks}zwtuwzxx{v|xtzxq|z~~~w~}y}tx{~yq~{t}rywwyuy|uzqtqxv~}}tr|}yy}|zxrwr{{tyw{xw{w}uxz}tz||pyvu{s~rww~z~x}y}x{~x{x}x|~tw|xyuyv~vxv~wxv|yvur{w}z||}v|prtt{z}z~uyxvy||worv}u}~}|vtxys~q~frxxy|r|y|{|xxy|{pfpqpszwvxwz{s{~ymxsvn{|wm}yw}t}sx~w|zr{}yvzstuzv~u|xex~qu~whv{r|y|{y~v}sy|}|suz~}{wtusxywyyz~{uzt{z|zvvyzqy}vx~tuowzy{xz}{vyxuu}r}zy}r}yvu~}~x|v{w~tpy~vz|yzwr{ytuxr}u|{srwwrwnxv}sp{r~nsxrv~u|xwzvyzqwtywxp{t|uxxv{z{{~x{|oy|v}y}v}}|}wu{ttw{t~ovr{rztv|zxx|ym||w}y}w|ux}zxq}{t}xz|zswyz~r~~{{lwwm{wyuwzy}r||xy~xwutqws{|~ruuou~wxz|{wpquzlxvv{||v{~|{|}q}w{{vxz~}tx{xz~uz|~xvy~prxzzzs}{xvz{zv{vv|}}w~|}z~{w{xqtys}z{}|~trszyyz|y~u}szztqzz|z~}~|~}syxrtwwzzuz~q|~~}z}y}w~|ywxw{t}vzz|xsyz~rs~vzxspxz|xvsxsxz|tpxszu{ovwtz{{y~ru{}z{o~|myfvw||~hx{xnpyqzwpuu|y{||{p~xyrp~wz||w}uzw{}sx{|vs||zv|}yu|zmvt{hw}|{~yrxt{utxrzurwy|x~||uw}~xwyzywvuty{wuw~suyy|tsyx{utx|y|yrv}~|~~t{}|uzxzyv{tv{yu~pswwvvv}{x}}xxrx}}o{~zz~ww|~qwxxuvy{{{{|txs~}{z|xspv{w{qx}~yt}v}}zvxxzvq~{s{t}q{ruyzz~wqx{vz}s|u|{}s|ww{n~wwyqgxryxtzyvyqzx|t~|v}rsqsztyo~{}~t~}xs|y}y}~w{ysow}~{t|rys~zqyy{|~wzzzk}~fsyqv~sxxpx~ys||{us}xz{xrwzw{}z~zt~w{}wxozq}ww||wx~z|{}zzysqr|}~w}y{qyz|z}uzuzv~yzu{}{wx|~~z{yxyq||~x{z~x|v~{|}vsyy{}wutxvv|zy{v{|utyz}yx{rs~{yxtz}yyy|wv}wvz{xvw|vzyq|}{zxy{xz{v||vxznu}y|{ww~~zvxvylst|yxtqys{|}}~ovs{lw}y|}}|rxwz{{{qr~s{sq{}wuzr~{{{ptus~szt{v}px{|{yyxu}{yz|szs||ru{uv{ozryv{~r~srss{{}vqxt}~|uyxuxvqv}~~yzysvpwxo~uswuu}zy{{y|~ynp|zxx}u~ysv}~q~~~w|~vsxzt|qu|tuxyt~ur{t{xw~y{t~wt{}xvxuvz~{}|zw{y{yy}|}wvqyt|ytqr}|p~v{y~{|{y{|yyz|yu~{}}ywyv{xu~vwtww{u|rr}{y|rvxwymzn{wx|z{zv{vvw}rux{|ux}|xs{zuqx}zzx~zuztzw}}wuv|xwyuy}s~xyzv}z~}x{x~v{uw{~{u}ps~vvwrux~vxy}vvs{~~t~w|xr~yp~~w}wxzy~uxvuzyuz|r|~y{xxvsuzzw{{|z}xypy}|vov~vrwpz}y{u}uyvzv|wx~{{tw|q}xyrx{~syysuvx~{{t{|xyzvzzx|uzwyyq{}|||yv|~k|tyxpvx}x{q{xot}}yyxtzzu}yyvz~xzyy{z|uxyx~wvyu{{}|vwsps}u}}}x{xz|uyrwtys{zuwny~mvqqrv|wvqw|sp}yz}w~m{s~{qw{zdozyyym~yx|uvpw|o}m}y}v|vy}~xwv{}muzuxtyxp}~x}~ww~sztqxz|rt}{}|{~}~o}pzq{s~zrzs|zozkyyuv~z~ypz|s|~zut{tusyx{|z}~{xyqwx{x}wxuytufzsu~}n|tu}uux}sp~eouvzs~wxytwuvzx}{{~x|vqys|u{}r}z}uxwwusozzwtqyq~u~z{~vx}utuwzwrtqw}l|}yupz}stvyvzvwz~xut}wvx}x~~qrwxv}}xz}{z}{uyw~}wzw|z{zwx}v{}zyzv{}}{zyz~xvszx~uz|wvz|zxw|{xy}zruuzs{xz|}z{{{x{w{~}{yz{|z~y{~~}|x{{|v|zzzwsy}qu{v{}uvu||~xtwt}z}vywz~}zv~|zsz~~|u}{{|z|~}u~}y{{|w~|xvvvv~xq~{zvwy|xyx}|~}q~y}{|v{w~}{z}y}syxz|x}y{}||yz|y}}xrwuuw|nzu}w|wzxyws|~y~~s{zsbr}}zkrbdt}uyuzmvs{ovw{{y|qskuu|t|}vxvqyl|urp|z||r{voztt~w~|x|vyyxmvtsz{kvwsuwr}zwoyuwp{}xyxtpwsqyq~~x}wn{yymv{om}xz{mrt~x|tmvzym|ztp~ptkrwyrs{y}yxq~pvtqztoqs{{x}zurmxvt{uzu{}rvjyvxtq{sty{xpyj~svy~xmqq|}ywwvuyt}x{tpuox{|z{xw~{n|{zkflxvlyzwx}xtr|t~xwik}stxx{txwmsw|{mk}}uz|ysyqt{owo{~tu}p~~p}ywm}ly{kqzz{~xw}xn{z{pkzns~v|pvytx}~xyrxtyxss|~p|yttt}vnzuow|~v{~y{|sut{vxrwprwu}|p|xuxur{|hz~w|oyzyow~t|xutv}sr~w|xytro||xv{zkw~z~y{pzynxusyxrzwlsqo}k}p~}ttvswzz{ztt{y|w{}~ytz{~swsw~w{|}{||ysu|{z{{wt{vv|{xz~zzt}|n{y~xy}{zwu~y||~}vy{w|yv~vw}zyu{tv}wsy|u}zwz|v}{}uxzr|uxzyuxy}y~y{~{~zvwu~o~k~yxq}}|u{}|pv{yx}t{{}qxz|p{}sy~{swx|qw{z|s|sz{t}q{{{s|ztr|tt}uynuuqyvyu~{zw|rp{|t{~xuuz|yztmnoq{wwv\zzv~wqnx~ywwx{|tq||shq}unvz~{w~}}py|zz{ux{qv~}ywjz{rv}n|xyy}h{vv}zdv|}vPwstmv|~m{~u{su}||r{r|e cyry{pw{{nquz}w}uevzxvqxxxm{x}vnhzzq|slpzzwxznj|}irwomu|}xswxva}zs{_vtut|n}yqwzvj~xq}zsz~{x{xttyo}z}tyz}{wy}~o{tsv{yzw|w}|q~zw|zuytvxyst|now{z~ms{wxwpxzxyhtxwyzpxvoqa|uw~vo{ty˂y||v~~{pyo{u{wkz}{xypy|z}wvysj{uwx|ovz|y|}zy{wzxxvy{|z|uywvxxq}tzy{|w||}wzru~tzr|w{ssfy~vuuyyy}~xyy}{zr|{|w}~v~|t}|q~x}|{x}w~r~{{~vw{x}xy~~}r~s||{{|osxyv{u~{vp~{zuz}{zyvvv{zy{xw{{ztw|z|rvsy~~zxz~w}zwwsvvu|tyz{{|vvy~|u|||wx}}|yy~xzstt}x}~x|z}y}uwvwv|~zz{{|yv{{r|zz{~uy{~tv|}vwxx}|zxv|rw}vxxx~d~zyivx{{~yy{wn||w}px|}nsrj~v}~mxurqulmusyytx}wwz}puuq~~}{xrrkrw~{wywvpvw~uw}zmromxymup|}s|xztvswo}sxt}vzvf~~yowp}t}wu{~nsys|wxv~vq|s|rxzsu{~xxuq|{q}}rxtvv|{tnmndzmyzxjs{|~yuz}yyru}{{v{pv{qy{yyuz~xn{~zzw|xx~xxsoxuzu|t}p|zp|ysx~|ztyywp}{zu{zzuypsusu{y{n}|txrurxw~xp{||uw|~y~|vx||~lz~~~v}}{vy}t{|{sowt|v}{|zwtyywqyz{swx}}su}vpzxxux{uu|w|wwv|wzayw}tfiuxyzvxjz|vuyt|||kwxrpuxw{t|trpypu~|}s{u|vzs{nu}q{r|uzymzg{fvqwt~xyt{|~s~y}uyyuzwp~}zywxxsrrxtm~x{}v{Sryyzutyr|rz}vvuy{}sumv~{z{xvpw{t~{{xxq|rq|{z{qqrpzzw~w}uxwrxwsw||{tu}yxyuwv|w{t{w|v~{w|z~tonz~wyyfux|y{svzw~}zxv{qz{n~y{yx~x~sux}yqx{{su~~~~x}o{xsws}mz~koyx{s}q{s{y{{qxtzx|t|~jzu}{r~}~wvwwyvw}vtzqmqxruq~ozzxnxq}p~zt|ul~vy~}ukw|zmps|st~w}v{|qpvtq}z}~lty}m~}|yrzr|{quzpou{putsstt~zqt{u|vlw~yw{}wuyz|v~{~}|{{}|yt~~}}y}zr}{|wsw{g~o}{|zyq~~zy}|~{{uz|}y}~~~xyxzr}}|~xs|||z}v|~z{}}}}}v~{|~z}o}}|wsu|q~vw}zz}v~svzxurrqr}jzmv|zrwsvxj}~rxtgvyyulp~v|y}xwswwuysyuws|zt{zuurwtn|pv|swmuq|snwumyyqusxnzvswtyowkx}uqst{sqmoysrvu~{~{xuzz}{mqs{toz}wy}v{ovunxt}|ssyo{|r{ww{~x{{w||rxtzy|tx}{uz{wv~|vxts{|zxt~}|xy}vw{{xyrwwvv~w}{x{www}x|{{wxy}~xlut{~us{z{{uq~|tu}o{y}utr|yyvxzz}u{w|}|y~zyqzwzx|}ssuvwvwz|zxpttzuuwk{{kzyswvm~uoyn~}wl|v}u||xt|xhpzxxstx~|v|svsk}vs|wkwv~ygas{z|~swvx|uxwxwzwtym`yjkry}pyvwoz|u}xyussqwus{~xyuzzz~v~tzu{{rosz~s}wim|szy|~|{{}x}u|~|}|zz}z{u}g|~t~zxxzwws~y~~wv~v|~y{uv|s|~vu}~}~}~}vv}z}{}{zwx}zps}nty~||{}wxx{x}ysyz|w}x|{{zwwuuj|tsq{lyww{v}ry}|~s~xxsm|r}vy{o{t{|}vuvz{yzz}~uus}upxxx|~{e~q}yu}rxuzv|zwq~s}|pss|vm~|x{toxn{}p~zp~wyduz~{vsuzxom~vzxtyq}}syu|y}{v|wsxk{no~zr{|lx||tx|{xtuq|oxmsuuxt{ny{{yxjwsuy{}upyxw|wt{yx}v||{z|vvu~y{tzwt}yv{umxt|yux~nuyzqywspvqiwswwx{{yvrt}qpzzw{{{wp~w{}y{|xwxzwv}rv}wvu}|{x~s{uzzrtw}}z|{uxxw~vnz{wztwyssvny~yuszt~zusr|w|vyzkuxvyyv}v|zz~yytuuv|v}rusvvvvwpnxyyzttz|xx~{w{ryp{wwu{~xwz}r{xp{{xwp}pypdwprxv~~pxoz~~t~vvoyuzviyqxyzfoxuh}zyy~}ovzxyt{xqrxy~vm}y}t{z}{ipzpxzlxs{{y{ozymz}~wzpsxn}vyuwv~utm|}nuzyxxxwxu~wttm{uoyzwj|z{yzt}hqy}yqo}xxavuvr{~vzt}s~{}|xztztqxwx|w}otuuxoy~{uvzrvzktqx|{zypx{zuywpy{yzxs{qy|{tvw|txq~xmvx~rs{wty~yxyzpws{}}ztuukznxywxyt~tqvpym~{{u||uwy{wnmxvwspwtsusz}u~w{t||s|qwz}fxux{ub{r~sz~ts{r~{cznsqsyv}st{fy~vlxxx~|s}q{wxxvwut}xzyyvy}zqwpyn}z|}pwww}}x{pvz{uxwpoz}q{znvxwzvvmz|yxquntyxzwqxqy}ysus{upuu{|ytywvts{{~vyxxz}{l{{~|wwqp|vvx{{y~jv|syz{~{yzwuvyz}ynu{|{~w~}v~yjtwzu~vn}svz{}|uv{~{ujpx{y{ztzw|xyw|~yq~{y}q}|{~vzp{y}ztwz~wszjwyilu{xzqww{zu|}w~u}g||z{wzyuw~z~zzrsslxz{wxtwupnv|}vruu~u}||zqtimz{ytx{mz~w~~rqtvzz|kw|~vt~xyqv|z|ozys}~trzizvyz|q}u|~y}suwr{t|wx|wy|svr{qshwmvqz~|vxxxz}oxu~qvupzycutxw}w{vuyo~|xsmt~pzyu~|y~tzrrlvwt|vxzv|wwtyttwytu{oqtvz|{}xtz}vt|s~zvxv{zyzupwwnt{xyozpm|v|vyro|vu|qwxv{yuyvwx{ju}o|v|{{yxszyp{yxz{~fi|vzZzwy|}w{uyuxzzs}vy|qxxutvt{{xrzy|vty}}u~|nsy|~~v{ykpwvyo|sn|}tuvx~w{{xpr}pgtow{l~oyuttuzr~uwuyz|}t|{{}uw{ur}zmzr||u}lywqxulurxp{tuclqcrvv|qzi~p~x}rt~y{yqzz|y}x}}z}{upvytswutp~z}}zz{}ww}ww{~{w||}}}y{zzsyz~yzxlvk{yhywtx{~y|u{y~v{{vwy{yyzvyvz~f}~xz}zt{woxvx|~svy|~usw|ywru|q}xxv|{}v|yyx|upk~wxuzkyr~y|x}pws}z}rxo{{xw~{o}}vw}zxxmyt{x{rvw}x}~xw}nxvwm{{mv|y}usxu|~~mzx||tw}xsx|{ns|utvy{u||||}|x{ru~}uys}wzzwqq|~wx~~ur|vzovuxvnuyyrkt{wg|utxowt}susttzgqmpxuxvyv}wxw{qon}lurpu|`qvzyyuqztxsoyqtmqznzxuz~u~r{|t|}pysrxs~yuswpvqu{|tnyotut~yq~rsxw|}nusw{}rospjuws~py~w~pnwt|thyx|rvvn{|}t{k}wqzptw{uvsqlxrp}~tn}}~xzwpxzyzvtzytyvlx{rv~zqz|}n}}}t~r{f|pyyvxv}v}zswtp~yxz~zy}svr~xv~{}|xlzzzx{wwm}yw{yzlrywy}sn{xzswwzus}kq}tt~|nxy|{xtx~svtyw}pvrxvpuwwrz{xrw}tx{usw{{z{}|{rvr~o|ut}y|w|}}q{{}tuztqpxv|yywiy{z{e}out{{v~nrt}vj}}sxyxuy~xqvu{ouy}}~ps~xyzurxsyxosoy{x|}t{vvvwvwxzsrpryzxt~}zoqulxyzpsuwnv~vy}}ntkusu{txgl|mkmx}{xtxv|nv{vpsy{{z|yrpznq~{~||t}xujwwzqrhsuzi{rp~xuw~|{iy}sv~z}z|ztzsw}wx{tu}p{~{~}wwm{kjx}lwusxyjtv|w}qo{{yysvx|rxqpt{ustx~u{usq{|wouwvtmwym}}ux~zw}nx{x}{zpwrlwy{|z|s{}v|x||z}{v|x~~xutjuz|o|yt{zx{r}~}}|w||{{tw|svx~y}vuw|yquy{}t~}}vz}y|vyz}{zx{ru~ys}|v~zyp|stxty||x{vwzyxo{ryy|yuzsuyx}rtsz|z}vxruxz~vwxytw|{|n|v{|vwsxyuytz|ow{xuxwyz|}~xruq|~{wr}|}u|}vq}zzv|~|qsxw{xw}yzsvuyy}qzv}xx|{rv|wsrwtu|voj~pontyv{tfxtmy|wszspnwj{}|x}t{xyytztzspvvxyks{vqykwumyzu|uupkxtiwoyvxqxulzsuv}tp{to|quv{rqrrzyzwqm{~~~`ypy~{yytpu~wvrrt|mzspywppz{urxuxz|zrr}~~xy{{su}wwyx~v~y{{{swvvtwu}tvtx|x}x|vuv{s|v}}xwpn|{rwz|}s}~}}~zyw{tp}zvyy~zuvt{kovzywtw{vxw|vyvtx}v}u~}ut||vq|tzt|wqywvxuz}zv{~||yyu{yvxzw{}x{{uyu}t~rsz}xqx}t~xty}stv{w}z{wxyu|v{xtq||xszv|{xzy}z~sw~}yxz~|wvzzuxxwv}zxqzkut}ww{vxys}{{y}rxt|}sv{~{{om{vvsnzvp{x~|yx|t{|y{v~}|}qzwywwvvrrslzzt{qpl|ztvxyyxqmqww}}z|zv{wv|nu~wxwlr}n{}wuul}}vtxuu}astzwzsur}qrtry}xqwvqywvyr{xzsvw~wtyu|z}x{|zzwl|{ku|uwyy|wxs|s}~}u}x|}ywu{|}{n{wx{~}uwv~rw~q}{{yt{xu~{s{}{~x}}t~ztqzyqvxz~r}wyy{q|~|yv~y|yy|}wz}v|y~~r}|{yyz}k}~y}y{yww{{zzz{wwx~z~xr|~y{zxx~{{w~yu}}}v|s{vppp~x~~vktzz{qwzz}e|x{}|{|~xtwuttx}twyywr|vzovw|~swuwhu}}~xt{x~z{zxvunpv~u{rxutzt{sn}}t|uuww}yytu}uo}zsk|zv}{vxbo{owwx|zj|}~mqwvqupxyyiqtrpv}{wys|wvx{ww{u||sus}vz{p~}awo}o{tqxrvv|r}wz{{sv}vsp~zonnt|zupowx}nz{vnws_szlyzxw}zyyp~z|{w}vsw{}{sv}yt|qsvwyyps{{~~{u|{q}x~|wwvyyx}zyzpz~|sp~|xrp~k{tx{wl~{xx{xw{e~{su{ur~z{||yy{ys~|{ts~y{vttq|rsoyzwtwt{pl}p{||}v{w}|x~~y|{rmuzt~vw{v{zx{w{xst{|zxzwt{u}vwzwt{uw|kvtyv}y}x{vwwpxz~sw|yz}||tzsynuz{outoy}|}yu}|uu{{p{vzxyx{zuzluy}ptv|z~zy~}{|tw{qsmzp~f{wyyzz|{~}xz|rluy~u}wyx{kt~{yyz}p}~~r|~|wjpugz}wtsr~yvv|{tuu{ys|||z||uyvuz~v~wys||~|y|w{{~qtrz{~z~|xr|w{{w|u{y|z||~yw}}zwwtryx|qv~}w{vs{xu|}}zx~i}xszrvxttto~yw|wvu}xxzzf{|vw}uxx~|{z~{t}qxveozttm|ojzvvwz}yv||ty{vo~rsw|yz~y|ctszuxs~trmvqwwwsomrwmzj}}tkwsntxtr}sx~n~}xrzszk{rt~lr{zktwwsu{vrkq{osro~|~uvwprypy}j~vrs~mvvo|}jz|[}~pzsv^uxpi}t{{s|x}y}}}ruqx}bzzytjxy}zqly~w{x{}xrzo^wzyvzhqzxrvuryxpwywvvznr{dylw||yy~iyz{nx}f|ry|w|i~}z|pqo|v|st{gz~pxwwwrzqz~nxi{vmwxrs|py|qg}nsviyyxxuxpwpyvry|mzm}s|}nu~syxy}vouxz|qos}hz|uUxwn|el~e~~}~k~s}~{{{umxux~|ex}}wvzwtvpz|~{wvzvhnyt~yvq}}kqx~n{~}x~nn|~_s{xuxosv~y|o{w|y~|z}xwxyv{r}xv~u~yy{zzz{}xt~|y~vru~sy{yx~{ts}r{tx}}~}~yzqr|}vw}|uuxzz{|vytx|tpzy~xu{zz}}{s|jxs~vvz|x|~{xyz|x~yx}xlzw{wy{zsovst{p{rz{uxtxyz{{ux|{umu}zwyyu~{ztwwy|yzwxxv{zz{v}~{|yvuwt{z~w{|w|}}szy}zxxw{vww}twzvxzyxy~ozv}||{xwy~zuw}vz|{s|w}|uww~zvz}xw{~tyx~uo}~v{yvy{{ouswoxzuw~ykuu~vs|x||x{~syvrq|zwxx~ypxs}qwpkws~{yyzyurro{py|s{xsvv~y}zf{y~~{zz{}u{~zzrz{yt~|u}oh~wrozv|vpqy||tyuwrvu}uvr{gu}{v{}{xy}{vwxo}xy{ykw{x{kxv{sv{v{~ps{u}ynsn~xy{zz}}}x~wzx~~xzzxy}xvvvwy|{|v}y}y~z|}z}||yzzyu}vxyzq~zyzzwxys~{u{r{y}|wxxxxs}wxywu{|~~~||xyy}xyv}yt~zrpr{rtmuxwruu}yy~{vmzk|k|mr~ttiusns}~zqx{||~uix~}xy{ttt|mzyzxx~zysy{xvz}{xxt}t{s||ozv~x|rr~}wvuttyyzt}v|us~utst~xoyvuzp~uv~vtwvxypwt{v~{z~}x||ywm{|}vszuvvy~uz|wwyq}|tz~ov~}ssgxvqox}||wxzs{spr}qv~y{rwyqw|szy}{qsmtxq{u{|zs|xxm{~x~zr{xv}xkw}{zwv|yyxvyt~yqp{{zyvv~{ury||||xsvxzuy~x~|r{y~yxw||yzvy{tvxz|w}|z|~|{v~swxvp~}v~vty{{o{~vu|utzz~{pzyxqp|tyx{|rx~|u{z~{zy}yv|q}zx}~}w~yj{x|~~{vs{s|z}svyy}w|yxyvw}u}v}~y|uv{{z}uyrt{|{y}yxwrx~a}zt|y|p~nkwtowuw{r}x|~qpxwruxt~wxy{tu}ywt{~vlszxx~tv~wpz{q|fxrptx|wyw~t|zx{t{xzw{w{{{}zusku}k{|yvy{~jvwwz{||y}vywzuw{yr{ow|vttwywzz~uvu~yvvvvx~~v}swl|~}}xwv{yusyts||z{yw|wvqx}|~~zys~{sy~w~y~tvyym~|v~wsxytwyv~x{zux||v}ylzwvxozxo}v{yy~twzvvnwrtvxtxwn~zswqywyss|~pvqwuyw}wwu}qwwxtxwu{psxvyy~}i||z~ztytzuzw}{uw||}y}{{{zwuw{x{yzzx~zjz}}qxvx~ixzxxtsuvqw}svwuz|tzu|}uzx{vv{s|rs{urw{qzeptyytrksnyx|~~s|m~{sx{{ywxw}yx|w~j|ut|znxyw|{yvyxuvwz}swvq}w|z{{m~sz}yq|j}~x~vxnuz|tqz{{~{zzxru{iz}~{|zs~~z|y}}z|nwyztxyp{vtzmwu}szqvyytqu}{{{lz{s{r~sy{{tuw}z}w~|sx{wtxv{z|xuty|{uv|o~noqpw{vw}{wr|wt_r~uxv~ut~{nmzv|qv~r{t~x||zvwym~{u|}n~v||yu~w~|y|m}|xwxxxyzvxwzx~}{|trrxtru~y}xz|||zt|ryy|~|z~xrrz{ukz|wwxzp{vxu{}u|vyzrv{||{pywixq}n{ur}jyxy{s}o{uxwyvx~z{utxyqyrzvwy}x}w~wp|vvy}~wx}{~nt~vzp{{vs~uswn|z|wxzns{v|tu{o}}~wls~qyuv~ozv{|}ywwut}xv}nzw}|z{n{u}~}wrywvuzz~vrxx~z~zvt~{t|yzv{v|z}xux{ux}q}|}xv~zwtywz}r~wysyvx{y~|}z{wpuuysx~~uuq{}~}vt}s|{zwzt|{wvu{{{wxz}vy~}p{x{wrxy~xwwwyv}l}x{{zz}yy{uvzx}{~qou~y~{vzsw~xlj{p|}p|zo{lx|}vtskq{~x{rvlw~mv~zurq|ut~|m}tvz~v}vy}w|ozv~ux}jx~vxwswzx~px~w}rrz{sn}vz|i~tvzw{rw|wuwswt|yxz{xw{}||{{s|y|uqztwutrwu{|wy{w}~zxyw}tw}{|uuy{uw{t}|~xsxvuvx|{w{vv~|~~}wvw}{w~r}{z|}yrzvtxvz~qvy{u}xp~{xtxuz{vuytvx{wt{{xxutzyr|mwy}z{|yvou||qvy|tuvylj~t|yyxuvowuv{xrs{s|o~rl~uzx||vww|xy|{{}~|xsjuwu{wyrt{~zy|w|yovvug|pujxxq{wytwuwtwx~}wr}|~quq~|wwtw{upzq~|{{q{x{}||s{}{{rx|}}z~vw|x}rqyup|wu{g{tx}x|{uxw}~{qzvs{~qu~z{~wwzp~y{yvoz~{}~{vu~xxtuz~vuy{trwtpt~v~wuv~uwvsj}yx|l}mzqplwzrwxqwv{xnu{y~}hxw|t{n|{uy|ls~zyzyz|ywv|}||z~znww}xvrr|wv{tuu~u}yw}x|z|x|zvsz}{m}pv|~ztw}~t{txuzsy}s{|t}zyyuhu{uy|wy}~zu{x|{zruwx||qyyx|t}|wywxrerwv|~stxywwu{~y}soxv~}|wzx{yzyx~x{zry{ovyszvzx~x~x|~z|stwwyw}vwy}wzwxv}uszsx}u}|vzwyxyux}v|wnnz}x}}{z|~{|||zzpyz~xyzyzq{xt}}t}||s~v~|wyrzyxw|}xxnx|w~rgw~|}{yzqvs}w~}t|}|oswlz|uq}|{nw{|yqw{w{wuxso}s{|{swrpyqovx{}|x~|~{y~rx~zrr{y|uxx}}y{sty~u{zyw|~~|zy}yt{zwu{xo{tyz~|snzsy|qq|}x}{}}tvq{ww}xyv|s|rykuy||y~u{qlzv}xyrqu{{sU|{yL~uyvwz~qmqkm{hp`uvW~xsavytmv|j|nmw{z}cqty|v{zvur~uvexqvN{oxinwqm}wvyron3Mriuzxv|d{qytu~[}cswtsus{{qthnixuas{twpln~nsmmf{zyvxvvosztwnwxv~v|~w}|xup}zyq{|vvus|w|{vy}x~xrzxk}|xzx|w}}ru{p~|wzsxzs{}|}{vtuzwutwy}}xu}zv|spvxw~}yx{~{~zzxt{}rzy||{uy{|zvu}oz}|y{xo}{vuqxvruzl~pqywu~otx}{zsn~otwx|{{vp|s|{qxrwz~{w{x}{wwn{vst|vw{uzuw|s|xxz{~ywtsrwowrtu}xs~}yzz~|zzyy}rx|zu|{uy|~t{w{w~{~|}{y~\|zw{~vvvypx~nxx{zqso{}v}xul~rnzz|wnu|uxtrt|q~y~xisx~nltsnneuiupulmxzs|z{u}zuxs|}tpq{{{uu|}x|~}qzxqs|tzsv||vtt~xlxntzfzrprxtxt}qyz|rlxkzunwuyyey|sw~qky~iwxvms{{t~xwz}zmzqyxzj{||w~~}ztuw~}ozlv{xjswuq}~su}tth~~zz|yvz|}~qyqoqywi{{|qsnx|wu~tv{vXz{~ywyx{zy|||~v|x}{~t{z}~wv|zvx~s}pzrvrvs~w{wx}}~rww}~t{yusmzvy}{zmujz{t~uvzvyqqvnzcjxprxt}t}uyyv}xy}fmzrtws}pl{yxs|yzrrvw{|dynvw}tt~xzktsv}{yt}z~w{y|{yt}y{uvpzuuy{vt}p{{wo}vzovsnt|rwstz}~yxspw}v|~qvovxrsu|wpn`ju~ryt|tys~j{ztpqv~{t~qkztxy{zt{zux{|wyxs}vouttvt{{rt}i}z}wwyvk}ytusl}nt{~}wzqs|rsxtw{z}t{yy}{zvuy~s{xqwvyrxzyxuqf~{o{~ysgw|zuq{}tzru{~pp{jx|~}xuy{{mytvvqvuvrv~||mzy|vu|zztsvk~|ywv|qxyv{|tzti{}tx|gno}{v|}vtp}~~|x~vx~vrv}}u|w{l}q~zn|wy|}x}z~drzyul{sygwr{vurv~twww}}yn}qtmz|s|}{y~~zyyv{{z~tz|v|sz{zw}xt{zz{tq~zy}qz|s~{|vxzux~y}|sv{x}wv|u}yw{xzp|x{vxtzsszz}~{vsyzv|w~{wv~|ytyy{zs~uwt{sy}r|uy}twy~wutyspwyt~xttwwyzrzys}u~zxst~zyzy{||ww~wz~t~txx}s}wu{u{wwzur~~wvy~wv|w}{{|{~|}{y|vx~}wo~uy}yz|xvzww{rz~z}{wrz{{~wl~h~~q~vvt|zpuz}}uv}}x~vwwx|uzrvtoyr|{z}y~z~yv|xz~y{{t~s~lvr|qw~sxziutvw|ywfwz{xy~~qm|z|wwvs|spvvv|v|x|{~yrvws}zvp{qzww~qyxv{u{uuxqmr~xty~uxsszo}yszwty{zuxw|vut|s{t|uzuu{}}y~yw~uovwu~{|zyz}tt{~yvywpu[zzsov~syxrwlx{wt{}omvssuopb[{{ditz~hus~tvyqseyk}xo~q~}|qhnztrgzmwm|{vm~ttzb{xr}j{zmzqpg}|lcku_u}}yzltunsu}ziv|trwtyyw~rstvfxqj{lys}o|yrztwz~pqtq~wz{tvvttv|u}vtmxotzt|sw}|ww~u~mwm~t||stvw~zzrdx~vzxquvuwpqvzo|owszwx}st|tz{y{~tzwzz{ywo|zxwzs{vuysqrkypzqvyv~q~|ysyxw~os|yv~qv}}rzrw|}suiq}x{xzz~r{zr}v}~{|x~}xupuxxusy{k}}~m~t}|txzz|rx{{ynv}w{yvqpuuwx}s{}v~}avry|s{{mwv{|xszhps~y{nwvwwm{{~wo~y|qmxxvwvtwr|y}}xqmnzxt{t{v|xxxun}v||sw{{uv{}{wzzuvuz|w{}k|f{zsmlx}|yu~z|}z}~}|}{ov|~~w{y~zpvvuzyvvyznmq~|y{qvtw{yuvz|v{{x}yxzv}vz|xv~{zyvunw~zvw{xzx|xzx||~}~zvyz{|r|t|zwr}{||xzrmw{ouz~ryuxvowrc|rv}iyvovs|x{zx~qzyywwn{yxw~}twyu}}wzzp|}xz{v}~rx{pyy}~u{tq~zsu|uzx{}qvqg|ytou|mrt~{~vr|{yr{|vq{~uyxu{yu{}zhnn|po|yyz~~{sz~xx{v~{x~{zzrzm|xrwx|xqx}zm|ywt|qzy|so{vyxz}zw{w}w{{|xt|wwzvv~}}{}zx{|wv~wxtx~vttv{kmlyzouu{~uzy~sr}l}z|~|yypv~x{r}rvhtwszu~w|}n{|~}z|}v|}v|zyvt{}{ys~vzzuwq{v}~rzt~~wz{}zx}v{|zx|}z~szwszwk{wq|}xyvx~nv}~~{}~ww{z|y}zx}w~ss{}ywwx}ppszy{zo{suw}xx{yyoz~}yyu}~y{wowx}|}{yut{tu}|n|{t|}}x~nqqyz}}|}{t|yts|z|uzyy{mjvzzzpw~}yww||{uyttz|{wx|z|yx~}wz~}r}ry{wx~~vv~vypvtuzytssw~zztx{}rztt}v{w{}yuxgw|zuztz||t}pvv{zzw~t}zzx}}xqtsxy~vv|{qwqz~y|onxy~wro~jzz|sry}s}sy|z~|w{|~uhy~yz}t}uz~w~rp|zuq~}qo|xz||utmm}{xyrxzwusys{{syrXmvvwv{xx}to{~yx|z|k{tz|om}wrq~qxsp|~|xy|rxu}w|rz}v~sryxx}txvyxu}}z{qws}v{|}}xu{rxvwz||t}xt~uxuuyvszlz~imx|u{|zs{~}pu{{uowyvvn}uqx|~xx~v|yp~tzy|rxo}}tw|{x|ppzzy{v~zxu|{z{t}~xxux|g~|yx~syoxt|}t|ws~{{rrvy}r|~~xzq{{wy~q|{{}n{~w{zw{zw~yx{~ozvy||}||pvuu}txv~~swxz|z{sr|y~y{w~zyzvy}rxwxxrz|z|vzzxtqu|~z}~y{}}u{{m{z|{z{~yyuxsyw~zrwnxkzr||y|~vyv|qz{zqx{sy}tto|y{pxn}w{yzzr{xy{wfz}m|wsywtrt|zyxx}|vzpsu|pw}|swjw|xwxztpouvvx{|zvvxrzwwss{xq{qyustt{rsseq~tr}}~tzsmqttu~}|uyrm}y{u~wtnx}|}{vu~wy~{sz|~~ztlvtyzw{{~x}u{~zsnyqyzy~t|{w}zv{ntr{spx|~xwyxqw|y|}xnwzsxzvp}v{tz|mxkvzyy{ztww|rxjzxtutyux}uz|~y}ysytrqyh}wroxt}qykr{s{ur{vw{wwuyww|{rww{y|ztz}z}~xzwty|u~~yx~zy}zv~u~y{pstwx~~|xyu|z}{xw{zzvtzrut~ssu~{w}~yq}us}|w~~{}oxs|wzu|rt{yotuq{lz||{}z|wyxz|z}yzsw{xdpv{ste~irr|zw|yy{qxxwxhz|xu{e{w}wV}pz}nyouuy{z{tmv}wm`u{||t`s|r|iyp{x~tzwnszx}xtj{~zt~w|tdyx`s|y}xyx}rztrdsumyrtwtqxz|q~~mwqu{}wr~txssqunqryrq~x`{t~}z{ypzprsrvqwxrodxy}wrspzz~lmhwoy~ywjzje{y|v|llwr|~xzwpysssyfxqrqz^zwtz|hpt}w|kj{nw{szsw}vomu}os{yhummsyxvv}t~]wtn{kqpkhp}yiustjvnstr~pyt{zvutw}wy{zpuvxsp}zurux}uzgt^vzzzv{uzwvw|t}qn~yszorzw]~wusuzxu~x~|r}s}k{x~r||ut~qy{~|~yoq~x|ryq|qp|mmvg|vtrsvw{nt{xwtsxmsxzwuz}txxw{r}xuxqyqv{}hm{u{zzt{yi{ynyqkwv~{xuy{ru}uqejosvww~rx{mvqvnu|w{fkwwkpq{|uxzpl}xvu|o}rtpsrmzw{twziwyzr{wscxzry~uxztw{izjrrwrt|w~yorxnurx~ntyt|y~x}u~whyzv}rl}w~usg|{wup~vq}ssy||msxu}|y}wz|~wwz}wu~tzq|{~wqwxzlrw}wxg|}~{|yvz}y{o~u}zyqrwyz}~zsxzwr|wotxq{wsy{ovuq|wv}yzup{y{t{wy|qrw|uy~wx|x~y{xvz}lww}nyrvzp}}wr~qjwtvf|ps|}wezszxyutzyk{jt|~}wuxtxuvwpzuy{xwzskzwxvwx{}zy~p|~uxt|zrp|ymzx{so~z}~wx|vwzsruv~ux{zn{v{xzxt|t}yo}ywwwy|pytuxz~suzv}yvzzpqr|~yzy~z~~}}u}vrz~zxsq~utz}|}{vv||yuzwsq{vvyvt}z}}r}xuz~n}|{z{yxtz||~jw~~|u{ns~y{}}y{}rsqv~}uvxvyyv~zz|v~vu{ss}yvz{|ztjwl~yx{t}|o}puykzxrnwty|~zpvxuxuyxjjiy{}xy|lwx}{~vwx|uyz~{yu|{|~sow|u{wttwyxywzlss}||tz||tpkorullz|ty}lwv}n|yr~w{|}|}mv{sysg{qwxy~uyxrrzxls}uso~rxw~|pvpylssszzzx{|wrxpuxwsv}v}qxtvw{|}vy|~w|{|ty~rz{w{}x{xz|yuq{|uwxturvwns|}vyxtywzwy{|vvp~y}kwwruwmxzwr{wuzu~w|vttrwwy}~rzxvxs|{}{}yz}x{uwuxw|w|}}~xytsv{zw|~uy}|u|vtpxxt{yw}y|}s{{v|tw{{~}|}rxvy|x{ut~yy|wrs}p}zylx~u|wx}{xwz~|z~|}uy{~}p}v|}}xyzy~|xxqvzxx~j{lq}xyxwz{ywwx|y|w}|}ryww}yyywsyvx|egyn{v|uxr{yvy{szur~w{wt||uw}u|wuzy|yyvwusrszr}utxnwpxuuxzwyy|vyr~|zwuy||z}}zys{vrw|}s}{yuqs{spx}s|r{u}vq~xwztv|~{{wvs|w|s|wr|wy|wp||zq~v|yt{urmt|Qqt|z{vx|lo}v|mu{uuzrmuu||t{zqwkvo|wr}x{{~|kl~yvw}x]zsto}nxvy|xyovp{|}w{tstvtqwszr|lpwortwmhqvk]wkup{r|zwyxcxlx}vln|yurstl}ugusqzq|qxys{yswvzxu|wdxphynw~g~gp~{~wu}zvuwwy{i|oswzkxryqczomqictnqsvs~yn|zwvxw}{mwwt|lestzxr~^vygywrixwxvquo~xpzp|w}nyzpv}onu}nwxsqkzrw|m|szxr}urzyu~|||}t{xty|vzz{t{|zs{}uqptr{uuzyww{}vwr~xtz|}z{wz{v{vzzop|t~{}zyvzv{v~{w|ztx|yyy{v||u}uqww|~{z}}zvww}}{{z{ypvxnzoswsxw|vwo~|xwxsq|ps|zyr~pyx{y{ww~ywu|vwvvpzrp{zryn{||uxo|yuy~zqu}vz~ti}}~qrxstww~pwtpsy{vw{woxmorv{m|xzppty{yv|zx}}r{|zzswitxyywr|sxx|lz}zqtz|x~xvzvsu}|zuxryr~tvuu|ytp}ppyx~}l}|u~z}oruz~z{w}hyr|s{zt{|~x}qxpr|v}{|~yv|zvm|iq|t}{z|}ywx}zkq}z~uy~~ru|{xzxxsuzz}z{xyt}|wt~wv~s}}{|~x}||}|yy~xp}px}yzomu{|to}xz}ux{x|st|xtxy}|~nx{|lw}{zozwytvs{}}|}v}otvx|ooz}zr}zwy~zqtx{xvuyxxxzno~oi{rwxsw{z{|}vwpuzpzt}ymtvzvzw{trz~korowpxzt~x{uwqowqonw~vx{{{xr~{zvs{uq}~v~~wxx{q{}~xtxy|s{t~s~{x}|wyyzs`px}|svzvxww~vtpywonttwz~xl}|zrx{v~tt{}kz}m|wy{ztoxuttw||~}uswz{{rqwkuswzw|~wywxvyhxu~suossoty~t{s~w~k|}y}{||xx}v}{{wuvzzyvqzqyyz|nvnxvorzzyzu|wv|oyuz|wz}~z}tv|wz~uzykvt~~vxt|~yxw}yv|xz{ovpyy~wozxuvvpx|yzsu{vlvrx~}}y{s}{vz{ury{}{wv{p}wvm}~~poxovz}ltuxuswxu}|qzyn~}jytyr~}v}uxw{p~pvus~tzos~xyvxw~wywz{~yxxvqu}m{s|~w|yu{szzoww~wwuyzxyuqtuwtw|uq{|||{zrz~pxy|zzs{|~zzv{vqzuzup}|{zxmvxwyuqqvyxyz}uz|vussuvvs}wnz{zp{yy{yq~v~o||xvzry{umy||ru}yyynztx{x|sxuny|nrmtsttl~xyv|xuyzw~{{yqnvuhusxzoutny}oov{zyu|tuxoz|~z{svr~s~zzs{~{pqpy{yu{z|{xywyvyuzvxy~wwzx}wtuwqv{~y{yzt|zvz{w}~yvwxwy{v{{tu}z}xvvt}v{t~v}yuy}yzzqz~xyzzwz{~z|}sl~yv{ow}}vw{z{i~{{ywtx}xwv~zw|tws~~~{sutmrv~|~hzxvuv~x~gyu{zupw|muryxosuy|tsy|ytsnyxxwzzxuw~rwvzsr~nqy|u{}trpp}{vsyoq|z{zxq{z`~~v|x~t{qv{stu|wzr{zvq|}xw|vkuyrvwps|s~y{}xu~q|ktrv}qvtizmox{iv}sz}|uty{}|}y~fuyvrzz~txzv|xpuzvvyuw}ujwu{|ttt~}k{q}wxvwxq{w~ywztzsy|mrruzx{xqlsyisc||us~y}xzz|x~xy}{ywp~z~}ps{y~x|qyu~zwyp}vujy{{}wvtmyqw|zrpzz|Wr|ywsxylxyxwmck}uy~{^ypy~~w|wzzr}{p~u{zx}rswv{u~x}|~ml{ru~k{yxpy}tyqs~ky{x|c|{zxyvwnv{}|p{zxt}}rwqtz{sytt|{qwvnv~yy}tqzxsqjh{sxpn~yxp}yw|{~xuyzy|uyvhwz{mo~p{lzpml}gqryt}}xu{wyyoz|wiyyio}vxm{nvsowmdwl~b|tvyxn~{~mqsws}yzqr{}|wnuuyytxwcwz~~zv~wwz|}|{z{z|qu~}}~zpzszvsz}~r|xrt}z}szzt{{}w}|{ty~y}zy{x|x}}w}|}ywv|v{~x}|}wzwzyu{ywyy{qz{wyyw~}}yx{tyr{{z}y}vp}~yry~y{y~rzx{~~ty|^{nzqrwxvvs|xy{v}x}xtsvtqoxzp{{z~tyrjy}ydqnjz}uuw{jry~}o|~st|t~spwtwoqwszsxp}xuz~~qztxvx|x}pstv{zsu{s}ux{vm{pt||{vwz|xy|vxsv|z}xtus}xw{yvuyxwsszxs{xrs|ysxiw}psu~y{zx{{}sz}xuu~uzsx~}{tzqx|yz|uyztvx{{tu}zxuytt~wvzt|}zy~{xp|{wvs~~tzy{zyv{wzry{yxsvy~~|vz~s{{w{w|yzv~{{~z}q{~r{rz}|vywr}|rkxyxt|v~{sz~~u{ywt{v|uu}||ytvtjw{s{yvzyoz|||}xyr~zzvwxs{|{y}}trx}y|}~xyq~|{~xyqu~zsz|oryz~urvwuvuzrwr{~y{w{u}yv}z|{|yu~|{||~|z{wvwzw{}t{yuszv}~v}|}uv}z{zzy|}~w}}|r{~}x{{}q~||y}~v{}twv{y}{||{{}~{|{yy~k}szw}zyz~|stz}~z|y}~v|~{y}y}w|tswy}vz~xx|sv~z|}opxu~~b|kws|t{wudg{sw{xrv{iyw}xiuormjqyjytr{t{v}{qwuiv{tw|xo|}vwuz{uyq~q}~t~}ry|yresyut{{z{{|w}tprxr}}~||r|isqfyotx~y~lz}sz|~z{tzt}v||jstxnspxsqvsnwt{ywbuv|vutztwntrpsuutimv}xszvuxpzmki|k~vxf~vs|{{~~{irw~{x~}yt~}sowzxrutuxq}ynsutotsvbzsstyq}xhwuysuswoozuspwt|~zvvx{u}rv}|vtx|v~qxwvzy|syv}pi{y}~jzm{yxm{pqzvxzzv}yywz|xz|yztyr|{y~umrzztvq~yvuvmxosr|uorwkx{z{vot}t{xrruk}su}vzyr~uvzizq~~yy}gxuuytrq{x~xvo{s{{pxlxgw{}~x{}wizwzu}~{w}w|t}}yyyu|y}}x~txx}}|wx|~wrzsv}v{uxz{wyw{nez~|oz~|nytu{ryz~wxvzxy|xu~~tvy|r|zmwpv||{ytzvyuwxtuxsv{utstr~uwrxt|xz}twzxqyxrz|ty|uxu{{~s|rtzyv|t{or~u~utyq~t~~r{yrozvyx|lcw|wxuqp}}wxn}|w{xzxwnvpqryzuz|y~vy~xw}zwpvr}v|tsxoyszycsqxv|qk}xpexz|nrumz|du~uwmntxzttpshyuvxtnjzwmyw~vt|qnn}n`ots|qzsmdysguyu|j~zyus}~}sxtz{v}~}~zzpttpyu~s}szxryyq}rq|q~}xu}}mg}s}{zsyzx{yx~y~{hz{ysuywwx}wm|xxxvqsx|~u{~sw{}{|y}t}wu|txuy|vzu}xt|{vun~|sr}opt}~zox~t|{z{tp~nwx|vqsyy~yytvqpy|ryz|}w{{xtzyw{z{wz|qxjv{}}}{{{~snsxwwzzw{~yuruzpu|uwt|klu{~unq}g}t~vd}|~|u~yr}vujxy{vzxm|ty~~~}otvtv|{zyy}wxs~uxvx|zwqmx|uyt}sxzsvwzyw|xt|sx~z}}xzuvz{}xmvmy{|v|~|tvzyyx}v{u~uvxw~zyt{{}|zz}x}zx~y|uvwwuyxtrpvzvz{vrx{zxyxxu}~qvx{r|x~{~{w}w~~tzyxt{s}x|yt}}vvz{v}{nywwww}{y{tyu~zzx}rsyu}zyu{x}lvrv~ywunrxyy}sxs~ys~xyxssrx{uwnwzrwz|ywyv~v{|t|}rw}tsu}sxn~|s|{vy~}xxqux|~v{~vwz}xxvqv~z{{yz}ssp{qzxx~l|x|}}tyzuvzzuurvx}su|~szy}|wvvzv|syxypyuzz{y~n||w~{|phzqs~}|s}{|||xzrv||~v{xm|{~u|~}yl|~|{~x|umwvuvzwzrxpz~xx~t{r~}uw{w{ur~r{|~}|~}x~}w|uy}{t{vz{|t~|svzxqtz}trshmrdj|w|uouyrzwnpz}|u~qpzkt{yrqhxr|{p~tz|txq}zs~y}yo~o~j{}ikos{sy}x|sv}ut}su}nukls|wwyw}|z|nrxrttqyfl`stxl{t}ooy~s{vzfx~zvv{}z}vvvv~|y~rwy||ur~{}rrwkyz{xtvzy{wz|{|x|}tvz}}~zx|y}~~}|{z|{qw}xqy~|vq}zx{~wvx{||y|wzvwum{wu|w{{w|z|rz}{lt~wty}{xv~sqvyuuwrxzqxopyqr{q~prtus|xz}tr{wthrrszwyuwn}~xtukusyxwpxr{y{rvlxx{w{z|zqp~yy}svxtnxzzwywxvwwvzrs{ursovxu|qyulxqlsxzxpyt{{~s~zy}ypsqtz}wpyw}xvpsn~}xvtx{|q|uouuzt~s~r{|u~tsyzxumnoxukt}r}vztr||w}twy~x|rquoz|}xz|{}|uxywt|qu|z~v{zgnxvq|~y{vgsxpppjt{qvk{ux|}y|z{u|twxx|{yyv{\~o|zyx{{~mwz}mwvoyvq}wxzs|xyutx|w|uwto}x|{u~qw~~|zzvrv{}mp{yz~wv{s{|z|yvl}{f{}|jyywtnyzumyuxvzsx~r{s|wrr{}v{yv{{vwsvs}x}zw|zlzuouuq~|yv}vs}}x{rtwpxjeuwxq|}yxzz~yp{x~~uvw|xq|r}rvvvtwyox||wz|}uxwmx~z}m{{ovt}y{y{yk{t|t{}yts|}|}yuyv}oztxvi|{z|o}v}pw~vtgkvtx|~wux|roxv{x}xrvyyru~oxytvyuyy}szp|{pvw{oyqw}rwpvyu{vxswyr}xrrrywrnys{q{|nuvns}~sszzurk}tvyupspy{t}zvw{rryy}}|wvrzz}sv{x}|}xzp|zn~x}u||vrvtz|i{p{xwuoz}x|z{|s}xyqovtxyz{wxzpto}|n~y~vuv{vztygvwvy}twwl~zxx{xs}rv{t~~~|{|zx|w{zxw~uvwv|qyy{z~{|vo|~}|x}y}|zvxtvw|}}sw{|}y~y{u|{z|}{q{p{|{zzz{|s|stvuzx}|t}vy{z||{}vwxyuszz{sqvzu~~t|~|{{y{szrwxwwvum|z~{l{}z|u}wsv{wywywtpry{qwz}t{x{yv|xn~upy~s{|{}{}u{vz~rs|zzytu}tw}yxpwlzrtww|wlxoy~wpu|}pwyxty|~~i}~syj}xqp{v}xp}u|yyot{~sw{orx~sztzpwzryy}vwyv|x|xzysqyu{u~xu|x}|w~ywzzt|wyvur||y{qm}zz~zv|qx|tiwzty~y~xty{ntxosz}~rtpz{v{u~yny}yt|y|}qz~zyz}ryuprl}rtqxvt~kv|y{omoxu}}v}|vv{zgtwy{~z|rtwww{wsu{yxrzzutzz~x~}~yxy~ztv|xt}|tpx}y~xzx|y~yzuptm|u{y|wxyw}u}yx~}|xuxs}vyq{wm|wt~rjn|}~zsu|o}xwyuw{yxyyz}|vyx}sxrwxuw}{n{y}}u~}{|u{yx{}}rsosoq|qqrvsjvwuymiu{y|to|{uztmrzolx~wvnsxxxyyxtwy~p~wdxtkslrvxvr{xuliztvtptz{mrz}t~v|~~t~qyyowy{txlwsfrnosw|{zoqtlww{q{pvxhr}rpywvq~{pvzvzsw{~qtr~ywxwywr~vzxq~wx{xwwm|qxzxy{~vpvszx|wy~~}ylwrry|tw{{yvtwwzk{ysv|~|}xvk~~yxv||w}pygrr{wy|zvz{tv|~vkt~zmu~z|u|t}yyv}v{wtw~yyx|osorvvysrxx|{vzzxvuy}||st~wwwl}xy{yvm{tssv~qq{wpyzzz}|s{zxutom|vswwg|v}zxzwzvrxyv}x|{mxyztx{xvpnz~ttw~ut~tw~u{vrysj|w|{xvuhzvuxywt|y~uxy{||{yr|{}|w}y~}|yxtqzv|vzyxxuz|{~}}wyvwwz~w{|}vy~xzx{w}u{x{wzuzx|zs{ywuxr}{{zwyyv{}o{ty}z|yr{u}~{v|xy}yyruyv||y~wp||n|{w}v{yy{y{x{zvqvwxwrylt~wkwuu{wso}xx{wppsompw~~xy~u||rrypzrn|}yt|wz|sxt{ty{~|{{wyppuny|tqtsz}xlwt}xqwiwrxs~s|ts{|ywwu}{junr|srx}yt~rxvy~zy|x}u{o~}yzzxzvvv~v|zxyrr}yqzq{{{}tvztps|yxryxvussj~xuss~yotxqyup|uu~rwyx{}nuvu~xyxmtmyuyz}sytvzyrsqyvqp~ppryzrsxuzw|{xrprqvyu}nxpxro{puy}qpygvv|lyw{~pzyq~uwmyoxtrv|zqtpssx}voww{w|~}uzs{s{upxvsz}vxwr{}zv}ywowvpr~{xyt~x{|{xv}xyxsvw|xr{x~{~~ox{z}wy}y~|yxt}}zxyz~~||xp~~xvwvx}|vy}ps|}{vuuwyjxu}|yuupry}u~txz}}w~}q{{upop|tvwo~yz{ryxtxs{w{z|w{wx~xy~{y|vwnozzzwxtx|xrsz~q|w}z{r|tn~|uw~suz|r}zyxqy{t{{syups|yxu|xvv{quzz}|zx|zv~{wswt{svz}u~}v{qp|w}vzy}zxs{wp|xxzuw~}y}zvz||xx~rxy||t{w}z}w{}vuyqzw{x|u~sxt}}{}~|yyt{x}}{~{x{~{z~v|y~yvtv~s{x|xmx|||~~vxy{}{uwyz{|wt{~~w}v}r}|z|xywuy~v||{|zy|d}ys~ynx}yza~w}}t~}ytwyntzr|tvvw{_oszztgwzz|zox|ittskves|tjruv}~wosvxuw}}{s{~vv{x~usvq}nvm{vnz}fx{xnutyuu{v}o}xs~{rw{quuvipuwkowz~qqzq|qm|~s|}yy~lwuuutysy~u}xxv~wx{yrsx}xwuvvop|wr~}p~xxuz|}{wxw~~qrzxzpyz~|ut|z}yzu{z}{~n}w~{}~{{urz~x{}wyyzu}l}~}wv||k|w|~vxxuysry{u{r{yxzuvuquxzqww{p|vyws}xy{vxvt}{zz|y|y}v|}zu{{uxu}zu~~q~z|{zxvwt{zx|s~}v}xz||yz|~~wvzxyurz{z~y{{xrz~{{txzwx{y{w}}|x~yzx{q~zz~{xw{~vzvy{yzyvqu{yju|{x}lywmxxny|ptqr{yowyyxxow|uiz|ny|uxqux}~||zotstxobsvvy|xuzprp|wwiytw|kuoi~|v{rvco|}txszwyvsvnx|wu{rtw~xroxw~nruusqzUm~~shvo|}rruu|ux}y|yh|pzvtxz~}xowzsxz{|vzuszl^~}w{x|tzz~}~~y}suu~pknmvz~xmy{xx~poowcd}unr{zw}pbuv}|{sveql~v|}jznxy{z|{o{x~ik|ksrzt|y~|lsszv~}z~~{|}z~yr}q{yq|ssozmov{xxprrklt~yr{uuxytxy|wt~~{}~{{ooot{~tsyl}yrx{|ltuw|xn|{~r|q||{vso||xzsn||k}~~roxxvxz|{ww|{~vqyovoznugvvzwzys{xxpz~|}|y}z{u}yztx}yyy|z}wxs}{}tx{|w|{rznynxzqrq|x}yzuz{zw~~puplwwixwtzwwwtzs|wyztykmqlz|opvuv}tw{x}zp|oq|~v|{|qtm|yoq{{s}z|{lrszrouswr}popmstso{yz}ywpuxwwyyw}rzzwowj||y}~wysqjc}lg}w~utvh{oz}p{uwluluxvnlq}rxnxkp~}sms}xrs~u{ybryrxpplxQz}u|sx{o|ruus{rv|vxyt~w{~~r}nyvc}zwr{}{py}d}pq~sy{|~nG{tgxz~ps~zywzo|xyymwiyTZiz{gz||Uusvxxatyvius{i{xoi~{~n~vhlu{|xvmhqro{xsihw~yqqpUvwZzkzxvnudwtsonj{yiwvm{y~lv{t|vxzu}t|~~jsju|zzw|lwzte}y~qjpu}r_zyzum}ss}o|zm|~vz|httbyuuf|zvoxp~}ps~|qap{i|skm`~|rky}u|vvuzZrezi}~jwsvvsursxwlwy|yo|xz}|w}xv}{|zxz~uw}ztx~x}z}x~j|uw~}wv{v{y}zz{s{zuzvvu{w||~vt|v}{wwv~xvzr{xy|xy||y||}u}xuxwwy}uz}sr~wxxyvwu~{~z|{~xuxz|yzzr{{o{}yyzftyys|x}yvy~v|zzmqvtwyyxy{{quxmx~|vx{w{}p~zvoy{zpw~~y}u{t|y}qxxw|||{stk|t~}}~oztxvv{|}|{r}u{}s}yzc~m|yu~x{{~zruwu|mwhzzjl}uvygtyvrnmlunrzy~|oxyxp|ux}}{un]szzvm}~v|u~tr}}|ucsqhjqn}vs{}ytvsv|m|xtztzxvzpqu|vwqyth~xpwsqvvw|vwpv~xondu|w|wwzv{}n{qxmyhtmhtoiksvvwx|zyzzr{}s}p|jp|qxiwy}jmvu~uzx{u}zzqyuuzxzsowutw}~~{}w{t|xy~x{{y{y~x~zlxqyu~w|}s}vx||nv~{zy|{wz~q~z|}{zxws}~}q{~{wty{|xxtztwy{m}yyzw~ry}}rvooxrzvw{wrmywp{yzrqq|cuywurkx{us}d{zvr|~z{umrxmlrwro~xgvmjs|xigusp}nlwssw{]tp~}izlsqf}lmlxrpuvtyts{}kqvuvtv{q|wrnoqo|{mr~t~s}~~Btuxrgrurm{q|sjrbtpwtiqxwzuqqzwwe{}xjwqqzy}{xtv}s}}}}uvrsxqyzyw|xyt~zz|px|u~tv~{|}}zht{uws~lxx}yovv|{z~smsrl~}vs{tuvz|qrx|t~y{vvtvxxs|mzp}{{vnxsywzl{{|x|~{rwymyz~wt{tu\Mtkwix|vogyt~to~{so}nxv}bmntqo}upte{ekogV}m|~yu{sns~mfus\xfsumls~pqktxrwpnyyxwzpxvuwmqs~uknyxitts]|u}fxno|ymau|}~ub~{pouw||z}~~~}i}gt}c}ozoy}yy}r|~eo~~wovl|}~xutw~{ty~myvws{|pw|v{uq{vsyuxywqwumqqxmvr|kizo|uowzysmyv|zxxuvv}plwuus}~suprtx~rrz}pq{nzty{nyxypykqvpxz~ttvpssyu{imuwwlqyxzop{vuo}s}xrqqttzlvv~srut{~[p|tgytuyzuktxr|m{r{yz}n{pux|vw{wqr~|{rx}qxz|qlp{zt|srywtmkt{rz~|v{}z{w}}r|ywpvqyy}sx{}|twq~}w~qozwzzzj{u{}slx|}w}xjzvs{yzqxyxust{{zxs~vy}{vw}vxynu}yuyxwpvlwy|vz}yqsmotz`ry{c~}s~oxtY~iyvw}zrmy~us|ynz{lp{b}s~wro}zspurywwxp}A||skdrsjkow|az}~quw^p{{^Vvuvp{znQwssvwipp~Xq]{srr|h|{~gvz{ywwm{wpmvurzq{}z{hj~q}z}}}{}{~zzz}~~gd}}q||jsx}~}{z~tuuz~g}{sp|~yyu~|u{y}u{ymu{uvtvzryfyjo{m{zpsy|tv}u}sur}yz~wpu}xuunygs{}ur|o^pyxrjiWiuu}~zws}{zxzw}euz{ytuwnytkytlxpy}mvg{osxui{fq|xus~osl{|jmpra}vj}ezpt|nqqrqu_}eutwvzuspp{ynwyyqrskt{rzuxkzdyiw{nvfjuxp{rzzq|qxczvkvs|~y~nxw{y{qirtv{ky^{tyivt}slus|yt{}tuv~s{hurszyykoyhy~xpx|xxmyzop{qi`ze|qurrn|s}u~{js{{|s|xutnxvz{{yzot~|u{uuvxx~v~{zvpruw|xxwuuwxqhvu~wmzzntisyyv{rzvyryzquv{~ywxv{|z~vzwxyytv|{swy|wz|omovwwou{qr~vyy|xwp{|{{{j|yuzsz|voqu~{{zxxzyy|xvp~}}s}tzzuuxz}}wqlx}ztlyr{yf|rxt{hzwz{|{q|wsi{ux~|sy}xkkyfvwyooey|yp_~uwz{{nwxxzq{n}nz|pw}wr}}vmwzjdtz|}ycst}vwvzfuow{yjttvs|ywwtrYrtqn}|~r{sx~yv~{ry{}nxy|vv|yptrpn||{v|rv~hnn{utjwo{miuu{x|x{koyskmxlvkvzavw|cs|yo~xprwxr{kr~|szwmdglw|r|zxpt~x|snvt{ulrzulPuzxpg~stys}u}pn~yzj{op}}zcyyrsvivp~xld}vxouizzcnprlvw}zwotw~rwh{m{~~}\}}v~yyt~smxzzz}u{wsw{rvrwzj|n}x|ru~}zruxymo~w|mqkmwts~|qrrpv{{irwnxws|pozr{otq{|xtrvs{qzqw~usgx{u{~oyt}y~hrzxt{pyvhtxuxtyvkftxr{wxuvyq~{{ukwrz}qjr{sxuvx~xut}lypy{{{ur}wututuut}vlv}vz}~|z{x|uxxtzw~swx{vse|u|vtvryusvxwzru}jxw|disqwuo~uj{{}zvrxxyzzjvztyruywz}vv}qrzp{sv{{nwwyrrv}}l|xyoxv||s|ft`posm[wv{{}pzzxvrrolwvyvpwqmmrxxu|yxy}j|pxrqiry~{q|~}vnq~}u~vmwzupuxrll|gl{|zqx|vpfury|rvlpqwttxvomrq|xsvxjqnyw|wxooxy~x|~~r{|~{ypw|yr~vx|uuvukkr|wuysros]{k~nxnn|v~}w}vuywv~p|w{u{{zzunzvxurszxyxyryyr{qwxhzy}{zvxltp`|pu{^h{qi{jzsyxztquu}squs{|sswtn|}y~yw|~qyq{zmsxyp~sojx}u{st|~ytzkn|z}vwrrmzt{upyys||y{s{k|n|{v}uxxwtv||{y|~s|}pqyrv}t}qs~uv}tt{{xtz}u{|z{s|{ir}y{wztxbzu{g~t{~y{wwmtx{t~rw|zz{x~nw{wvwuovs{}rtqu{|~}xtwx{wz{{wypyk|~xx|owtrxsltzpw{{rvyx}s{zktxwvvsm}|uvmzurws|uz|ky|r|rx|zyyymw{|yqv~{|xxuvszvz|ysz|s|rzwwYrquxbqv~nwtvsxyz|lzt}vvn}tt~{rtmd|pn|~txm{m|q}kxrmuj}xnmolxvtqzolpxzo{tkvpvzr`muywyv|x~yvxswjup_xo{ytix{vxp}\|s~mvon{zsq{y~dtlXzdxw}xkxsfp{uzyswxi{}rjxmufm}{xvsv{tx{puyg{ttvxknhqirrvy_qsn{`kouyoZ`snqqyri~}vvlo{cm~ssq||wzbls_zk~{m|yggpw{q{kv|gy{t}p\wv|uszct{{wp}|{}~q{~{}t~{ysqyt}wu}yto}sw~uzzwsqyoy{{iq}~}k{}}wp||xu~ry~to{~~xyyr|t{zu}{{s|x{x~~|~xxy~vtv}{|wx}~s|stszz|||xxu~tsxquuvyrzqss}vylsyxuhvpt{uy|w~zyzxxuwtx}{~{}wwtuyscv|w|}ws|xlwxs|sy}}upyzyzzvty|vzwz{owttzuvx~w|xz}~}xp}{mxt~}uuz{}ux~}t{smz}xuv}yrzqpw}}uvtzvox|yz|{x}zuo}xqkw|tuzwststwo{sshl}q}uqpx~o~vrtut}w{sutoiut||puow{z{~txxsuuuls{rstfyzv}|d~sr{zx{|xzowwy{mmoyzzrky~mst|vwlymwiwxszo|wwoszypvlv~u{zzwqy|gs}tz|c{xv}|xtw|xxppszw|u}wxn{|{wwpvwzrzq~||lT{vjx{}suxw~n{u{r{}t}ytxvwwu}yv{ns|}p|zry{yx~vzzwupwwzi|`ox}oy~f}~zyw|svt|~v}{~|}}x|kykz|u~szuo{{|yrpxu{wqk|zwzzztxtzmvzukwu~}szsnv~lvx}}~{~{}{ts|pvrmxvwy~xjtzsyrygyxzzz}yvxr}{|~yqosu{yusuqrmzwwvsxrys}szr~}tz~rxyxsk}`[z{|yzs~}zvykkwul~zqkmfu|uvpw|zxyt{nx|p~fzq}}{|r}xtw{{tuZn~ryzztpw|x}gpvw|xvtjnx{}no}~js{{~xyj~{ys}yufzoi}zxexzuxz~jcj}~twxz{rqv{o|{|ty}viwr|qy~nx|yx{zvqoztivxwwww}|}zwvrwow}~{f{r||i{qsjyxw~nqnv}mwxo}vz}~wu|z|ws~uyhumlhywdt}vvxx{~nsz}|{ovu~}~gt|zd{yonrq}unvu}zqu{yhvy}lz{rurwx~xzssyusp~v~ky~ylhiwzllv{wttnx|xk{`k{r~wpyo~t~tpe}yvny}y{rs|lloh_srs~zjyztz[vqoxxyxom{zrztqsmsxu~nxvoypue}{wqu~owylxt{xyx~x|~utpwop|swt|s{~yy~wqlr{zuyqxfs|}yvvxqkuxur{~|w{vwxszsus~{~zwt~x}}uq|tzntvxxw}y}isyj{yvywwv{|usxtytz~||mus{s}vqtyyx~yzw}w|v~~z{rny~wr|tv~vy{tryt}whs}zw~y}uyzvnusw~Z{w}u~t}{yz{trxwpz}}vpxzt`xz{z[~ov~yzow{t|r|s|qw~v}yyn|xqtys|}yo{s{xwu{zxy{{}}tnx|zrmy}mvsyu|mju}yX~wurp||}|vz~t}xwyw{wz{wvxuo}}tukvyxxXuxp|p}{zrtusgq~|oznu{{sps|dl|zyx{n~yuwzzwsvtl}t}~{}|Qo|z~mi{tuowvw~spyvvnvuwxrnqqlyu{nyoxmowxmpvkr{}yxwtwyg{y~wnxy|}trsv|{sqzbm{szvvjaqjzb~gxlp}zvp{sy~q||~vsytzumzyozunwvyrtuuyftzvzyypspsvptnm{}sl{~kl~x|s}sxqwmrtty|yypx~~|u|rx~|{yuus|}stkwzxus|qp|~szzxxqz~yxxl|yvrr~{{{u}swy||w{z~o|}{|}zus{yvx~n{xvv|~{|~|wu~zzw|{~l|tz}zxxzx|zszvq~zur|w}wt{vu|sxxxnvpxoz|wstzsozxu}t}w|uszzsuv{xy~zwj}tztlyyxx~rw{uuwr|{yxm{xzwyuu|txtstzyr|vtv|wvwxkUqxvurx|rw{t{xyvxxuquwyvyz}z|}{zyvs{s}xzxzm~|vsvptqts}u}wux|ysxzwlmzy|tlzv}psxt{zptwo}yqw~|{~~o~z|zxxxs{{{mr~oz{|vqkqzv}~s{ypwxv~y|~f|mopv{vxtmzvrrwoeyrs|wj{kwp}y|g{~wq~xx}~rysurywyt~nqu{}p}~nwhwmzwyozfkoxxuzvyzs|k}{uyf{~ysxhttkwlrpqwsy~uiuwtwy{yxvtywjqnnomuuv|{wqtz~}wv~qveoyzxow}}rusl~ovjyqt}zst]qu~||ipeowxf|yxuyuovv~|s{stmlxawquzh{_irogYuppwwlxj|j{m{zlmpuf}S|aos}kz~ynzpr~sfxlurgwsfxw|vqxskuzqxmzt|zym|xs}puxmjpwitwvlh`{ulyw{rxpmctxu|{\{ws}zi}sp~qwntoluryzvlss{thp{rhmymw||nyl~`t~jpo}sxozx{zi||upbuwxqw{|of}yWpob}yrvz}wnl{tovw\tv|kx|~|p}s||l}xxpou|ko|{}|qre\|~w~z~nkysysxl}vv|xruyYfszuwsptl|~tyxwvv{{t||~uo}vuuyw|~}|}|y}|v{|xq~y||t{vyvqqpwu}nyz|tz{xx|{vx}{nszuw}vxqp{tz~}zx{ymwr}x}|}zxvq~yuryz|zzq|srmyu}z~tw|rz|uwvtuz~~uz{ssutxwn}zvuu|xz|r}tzyvz{{sy{}|yvr|}|wtxnpx}~{x}y|txxvx{q}{yv~v}{rzy|{{~yv~x~t|w{}vyxxy}{~txzx{zsxwurvyz{{wq|yst|~{x|wrx{}s}xurpxpuuxr|wuztvy|r|v}|m}tlt|wtlkuouz}s{|}~uxzy~jko|~zl{zs|wwlaxmvv{xwymtqswulq}o|p}qkqwvwpyo}uuir|yxw||y}|rqko~wp}}qnnstur}ppqr|ykpzq|tuqstqz{}{xx~x~y|}}}~~~{{}|y{|{~xv{}||y{}{zy{uy|vw~}|t~}zyw|{~y~|}}|~yvv}~}z}xy}yzt}vv~||x~}vrz}{y|xz}yv{~~~}zzxu|wxx{z|}v{qywwuqrvxtt}v}cpr|}c~v|r}~}rx}ztwqo{~y|u}~xxtvu|xmt|t{z|pcv||pxy{yq~sv}ttvyn{y~sxzz}vy~wtw~p{m{mvztxmppayuxwt}psxr~usturystxzxltz{ut~ysnww{tq}|yqn~|sr}|ws{{qxx~|su}yxou}~zpzotwt|s{wzu{{phuyx~myp}~uzwux{w|r~~{u}z{z~mu{z{or|wtx~wtxz}|syzzmuvzvpo{{xpq}sy{yrs|~~m{zx}{zxz|}kp|~|}pysxtxsxx}xnrzv}{|v}wuxnq{|~o{wvuu~vs{w|tuwx~nv{y~}yvrz}zw}q~p|~|up|tt{xswzx|qx{~|wztqwznrwu|{ru{w{y~ny|{xtoov|ppv{xumproxqzpluo|qqs}qy~{sozf~wp{x{{vytpzz{urtox}vqs~{}nzz}s}~k}}b~vwm{|sw{w}zuzvqvw}qxwtyvrz}s{}qxnsksvxzzwq}}~tq~~{yqxp{|~}|r~xvns~rtwnz}z{s~ys|{|vrztsf|nyowvy{i|d`u{zz{{kks~dpwxrswuwp{ulvryn{~qm~vj|p|xsw}yxwlevd|uxjirur{xg|oit|t}{xusgyssy{ynpx{sx}row|oetv_}rwyvq}tq}v~x{myxi|qq}xvuwqx|zxx`w~lxnyzy|}o|vev{sowvw~{|vzzVoupywuqvxzx}syxzutst}~wotur|r~}|w}nsirit~]uwxf~x|px|vmyz|vq^nzox}elt{yvsyz~{wt~{uwbohxyn~}z}hx{y|ultyqv{|qzy~{roslrlusptqizsym{jx|jx]t{~yhvujtrwg~sfzwyztmmv}u~yowfvlz|r^{{}ruum~omxz`l{v|y}zupnvyb}qxitwwwt|yupnuku~gy}nwtrk|ipyutvk}uyzoxz~srtq~lryz{jrrr}gzu~{pbvnySy}|t~|yx}}xx}psvwm{vr}fxt}sxuxzx}o}zpyzdssp{z{v|xmxxpsrur{|zt}yxx|wkzugvpwzro{luwxs{rn~qv}pwzk}{z|jw~lz}qyqmsxyml|v}jqqhk~wyylr}qenvfoxiyyuyx}su}pu~~|qnlnuww]vspyy~xi}{zyyxwvr{qsl|rv}qdsjlxkkt~hsmu|vzoqr~myrtn}pxmovyww{sutmzzvrrsvxpur||uyxoozynm~qtwz|psztv~n|{touy}u{yt||xw|qwzzwkwz|ruku}q{yowxiyux~vzv|||vx~yxxuq|ur|kqvvwkwu~||u}~wrwu|wy}fvz|{wpsxw{yuxl~ps|{zmrtr}|}vpouqzww~{~uw~voxryxssyjyxj{qu~i}wx|a|zpvx|ky}ti}upu~txxvw|uo{y|tyml{uzusaqwx~wt{uou}~s}|qpqw~zz{|u{|{z|z~}{{pq|y~wxzztux~tzv||ox{x~w||x|wywzzzzwxxy{pywxzxuvyqo{xvr}zvz|v~|quryxzvxtxtv~zpqs}{{|vnzxtrtv|{vyzxvv~v}}y{}|uyurqsyy{{tpzy~t|tu}zxtxxyv|ovy{m}}pt{v}rvz~t~~uxy}wxyynmwsvys{owv{zlxwztw}vsxypvrrx~xxxz~q~{}v~}}lr~e~v||vx{myuj|~|ywr}{w{}o|}w}zqyz~tlzn|oxv{u{`zzxtq{y}vz}}srz}zx|xuzxzstrzrql|~qynz}{wywyz}y{vyv~xrx{m|usz{u~wxwu|tytqzp}v}vwsnw|usqzwmy|rxvrtkszuz}x_}x|h}usvz\zpdzzo~~ymus|rqz~wwnuoz{z}tynopml{{}uz}{tzwww~zz}_yqzr{{kvwzyzsm{vs{puzwv|ol|xrsyqyr~}ozxwqyo{{|{{xtz{}xl~ur~or|~~{zywo|mtthrx|}x}|ytx{{pyx}zuwy~{iovyuowqx{~ttomyture{{r|yzr~tyupzuprz}wuzwuvysqxrzmzt~{{vkxhuww~}xryqww|x}ru{}|vrwju~zuvqk|~|z}zxzwu}szzyu~~{~twswr}f~yyz}v~ntjspttvz}ttx|sr|ksw{z}|zvpkdtntuv{wx|}wmnvzjmzx{hs|yrgsxq{yxowr~{u|~z{|s{nmpgyx|w~mwortsx{nws~oz|vmvzyy~xw|{smvnz|lrn}tzo|ul|}}up|tz~|}zuo}v}w}|{szzuuzxx~|}p}{v~wxrttz~}apyoq|yo~~n{gsr~s~vl}nqsx{n{fvft}}zz`|py~kznwys~y}lzu~vfwuovuuutwb~nr|{ctdbziexzvxk}x~itwrvxw{t~~{|ty}mmu|yy}y||zzw}wv{}uvxxzzyx{vx{wy~|~x{tzx{v~~x~}|xvut~x{~|xxyxxytp{s|{|vuy|y}vm}{u{vy}x}xv~y}v}vwxzo}ux|sy}|psy{xz}|qw~qmx~wmyr}ixyzz~ylkuz~vt{{v}rwpqq{xswwzw}vt{}{~kqgrrtuwxx{{v|yyqyv{y~q~||qot|rwu~{xu{u~xn|oxyn}pr~~m|rpyxxn~zv|~|bnt}z{myzxy{|tzc|ewtrrww{}vxrzxxzu|xp}s|px{yspruoxn|swv|uwz|zv~r~s}zz{ys{u{xrz~}n{{zzv}zwv~zwv}zt~yxs}xr|r|zusqzy{q|z~y~tzvzrxvxszx{q}}m>sfxzstryz}p}z|}{}i{{Yz{hzvx~~}y{mm|{npsvy~x{yzuzuuy~u}yztlz}>~}{kwzw}zsj{~xvur{yov}to~ok{zzwwwq{~xyuu{ts|uzu{~v||{y|}tr|uvvpv|rnuvzvftyxpwouvmwyr{xwzmyy~wpfw}y}uoy||y{wzx{unvtnkvuu~v|vrt|}y~{zwuuqnwv|zwnxtwt{l{tzv~vwzm{{wxvvrrq{ux|}z}{lt}ysuwxu|~u}~w}u{{ttzy}p{z`lvwutvjpvs}sxyxlxk}vwxzvwstrhu{v|xs|s~lyou|t}{vwnli{~qrjxtw~mzgfy}tlyr{m{{tw}rgu}sxurzqzx|w~ytm|puxwtzvnjku{x{{vt{x{n}mnr|~}{snvtt{vtsxz{x||zx|wt{l{qt~rrtt}}juqttxxnr{l}vtryvt{utup}p}|yyvy|ppsxr||~~xt~ytrwqzpyc{q|vuus{s~xwnopgy|{_}rrx}~xwq}qts{{uuys|s{yurnw~xwuzxuwlv~w~{h{}x{uzn{}{{nnw~vvx}t|wsrxo}|zwqtxsltrryns|~{xxppxxpp{u|uyevuztzvzr~s|utzyzzquntw~xut~xwsttuqj~t~|p|hsw{wtq}~zuzzxsszzq{uxx|ruwwxoz}zrvpvz}uti~zv|y~xwtwym~z~pwnyr{oyzvzly|srpwxv|x}yxp~vqxnzu~wvvuunzpz{}y|r{y{}sgm~xu~ux{z}w|wuwyyw}r{~zyt~xxq|vv}ozzt{vxjs{tvyzuuuzxxxutxtpxto{{q|}o|vxxsvyxyvvxu{|vpxvniy|ty|tirr|xx~{p~~w~}u{nmnxzkvuvy{yqswvv|m}z|k~s~zw}zv{}|x~zxxxur~wt|`}t|xq]xxuwquo{ty{}}wq{x|~souztw~g}{zubia{t}|}y~pltlvy}ps~mrxt|ut{yu{t{r{zx}vsyy{|{t~|vzystt~s|qsqrzw}v^v|k{qvrvojsszj{lzix}z|wxtrrxpqw{lx}y{wx}{|pq~{pwsrzrktz~pou{nnzquu|ty{oywq~pr}ssr|xnsvwzu}tpstoctwuwoyvu}k~zsvwnzuwj}{zyuz|vvq~|wlx{y~pvu}syyqkiu|~wttwoo~qys{zux~{j|wvqmuq|ttq|{utpvuv~mu}t~wt{u~wqm{|{v{dwto}ysxx~|~yyj}u~}zvm}svyuuvzrwi~~rxxvr|o~xvvh{x}vpmnv~|{|~zwym~}xr~{}t{ytx~m~}zo{zzwxtwwqryz}tzs|}wtwv|uxpzvy{zqwdxa{qwqlxklys{sv|jzyywv~w{}twvyvktspyrsy~s{zzz{q}u{y|ytt{yw|vlut~|yl|qrurt|xx|v}zeyzwy~t~wvwwwt|uyu~|lprwuvrorylxzv{}tpw~mrprp|S{srzw|xszzolo}pizwkyq~wn~w~w~tx{|w}xyxtarutrgsxepv{ox||~oru{{kw{yufy~nvvz{}r|{qp{|wysuy{r}uukqybs{||v~uy}py}q}okhw|t~yy~{q~wswk~xtu|ktvm|svy|srpx~ottswhx||~}}}~gyyux~}|y{|ww|s{wzUz~soxvs|u}}s{xtvz~tr|}~~}uwqiqu{j}uyzxx~q~um~urz~wxu~uxrovq}xewx{}zwsyvyw}h|w||yz}rztqz}zurtzuur{quz|jpx{{|{v{}szv~mlyk|qytsri|xzvz|y{t|wtz}ymrxqvp~v|sxp|uuvrjzy{~n|ltjx}u{xwthw}v}ultvogvq{l|nqoqj~xqusxwp}{}xwo~wmr}w|d{wz|v{|}unrqowwsyl|||ywsoxw|w}{yqrzv{o~q~xp}}lxy}rvxxy{~wz|xstu}~z|q{vzwg~u|vo}x{zxzptmwr~yw~tqyxyxzz{zuuyqx{~wpyq}yzw|gp|wsn~}}vx{syunz~r{wnrtxvsxj{pmw{t{~y}v||kuq|ww}ou~~}}h{iN{t|tsy}ztxxxxrj|{tqm{vyx{ztxyrjjzrv~yz{}w}xorrhsxvt}u{{{qwxwouxtn{wq{utlsxr{}x{v~ytvwxz}wyst{rwt}w{uyzuv|{vztztxn{yuxyxu{~tv{soqp|zz~txwzx}|uu{y{|{xoyyvv{~ey}oszywu}uy|y{|vs}tt}{}vx{ty{{|y{xw{}v|z~|}y~{y{{n~l|yu{~{~si~s~zzvvxx|{|{xw{mwwyzp~po|{p{y}~zzlxvzz{|v~}}}}w}|}ntyrt~{|~q~yxy}qz{zz|x}x|x{tmzxlkf}toryyx~|wduro|pqsxmoqpzvnxpwvnspvxncqespmwonyxqyvowzpqsvxg~itkqhqY{o|rsyoqvxqpv{zr{twrnt~os|e|ez|pgxrrr~rr|U~uqxv}tmkzyilssuuqkkqwivlmz{}{}tvrrp}ysus{~xtvvyvx{xvri}m~yvzvt{s{zzzwy{nwsuq~rvwzswzsu}{~ysqv|wu||uwyv}wx|{xw||npuxztwox|p{}ssf|u{~}|u}pt{yzqlsxy|~syqrr}r|zxz}rpdiury~in}vsuquwxtuip|zzznxy|zwrv{vnzzt{|ywi|zghtlysetxw|c|uuu~t~su~uvz|d|umsz{zgphturtqinrlz|~|zzsvrwd|}rzrr}wstwvpst}utysv~wv~t~yzvnyxxvVtmqh_}qtnqiq}x}adpxseuzybe~vuUhhwx}nszmnpowv|`|qnjwm{ozvlzptuvpyv~}v|ze\}j{j|rz{pr}ot^wsp|{{~rZRp{^zmrvjgqtwv~py{uwrstou~|qvrqkhtrw}s{zwx]hktt|zjuyzc}sdre~~rq~binjnsh\Yj|u~qilu{|q}ezxlzpbycqnQrihzy~}}|mzyyxswse~qiwdxZq{u{tttwlJttottdddovxzqoXwn{~}i~`{s||{qyhqzr~u~ih|yplopw{poqwsttb|wurt{zj}vukjp{xhp{hzoqwx]{evrpx~yyutxy~qlzttzb~xz{|sossxvtrf{tyeuxmxt{y~pzytofprrh{us{oxxtowzxrzr~szvjz~ux~zvplrz|jvztwjo~nysvz}taziu}~wpyqplzxwwu{zsb|kprwz|}}yrq{xorouo~z|va~qu~|yo~y}nyzvnpzhqvypx{n|cwryq|omm~k|~~keusttv{x}okv}qxqu{s{{otv|qk~}sy|mz|zxpzowx{tl|tkk~~uw{t{{{m~rwm}yuyxv~uwoz}tzx~xwsy~{rxvi{|yvx|zu{pvststqkw}|ux}ruwvzt}vxz~tkwvp}oenrp~vwpxwtuztu|vmexp~yqo~{ttww~fusvs|]rrqwuq~ztug|v|mto}guw|zyyvedtt~rvv~u}yzxgyrmtjmz~}kz{sjnp{wszw}{}pox|sqy}wm||{syg~z_tiyzoyqt}vyk{xp~ugtwxlrswr|y{u|o}|ox|}{phy{ty|lwvrtxt~wly~~~wy|uwwvxztqs{|{zts}u~zwzt}xysx~orz{uw|}|oxy|u}|x~|{w|vv}rx~yxr~ryx{w|z~q{rso{ov{w}|ypt|trvwuu~rruv|u{xuowpy{{otwwvw|zrziuqqr}ul|vp{zw}zz|mw{p}ljxqpw~wuvyvzs}jkry}wstrssttr{flvyc}zp{y~{n}ixtzmoo~~tnzgpxrcyvxprr||u}ts|}ik|xjzut~ywwhwjywv{ypot|}||zjvmv~}y{o~zpvqu~y~{}xi|qustoxvvz{sv~v}tx~|xtu{{r{|{uxzxus}t~otyvqxdyyp~vlkt|yxtzy{y}y{{|xws{t}y|z{spx~v|xy{t~v{}yvtr~x{}hu}wyw{otuxuwx}~xw{xy}yt|mxuttv}yyzo~xxyystz~wu{twsyo|rpw~~m}~l~u~uyyztx}zv~vx|tuxrovux{vu}kv~{{{~x~oxyzu|{wsxxt}xy}}xzs{~}}}y{{~{t{y|xorszp}{~tt}{~~sv{us}}rropy|q}}xkvswmzlztspr{pznxv|t{n|{w{x~|{mp~tw~{zxiyl|nvy~xy~}s|s~p~rtwpyvzz~~vsz|sw}r{{wtonoyxl}tu}ymp|youuxzy|}xsfsl_vx|}dxqmqz2|p~uns`y|m]zpncmsyg|}sjw\slt~~}v~|{lo|wj{oqsavevu{szawjsvsxwb}g|gzn||dnepry{|{^jyt|e~|gTrxiC_mqsm}s||unqq}kpix}{oyxvo~tsorx_rl~mypw}w|y~s|{{}}{zt_{gbyg}c}mzq}wryr`q~lvyx~}pry{rkixdgriuv{||~zlmuyoru{zyswt~}w}\vbslowptsrivo}w~{vtuwyzzkko~S{ra|quory|zqw|{xzr`}~tzuunvylzzs}}}x}sqwvrmouzyzq{~x|y~{qyv~x}zyqtuxny|ro{zrnujzxzppzzgx~}|tz~xou|jwswzwzmxmto}zztvt|wv~|xxuzyrqyskzvuupszxwwuto|untnyikyu{xzzoxlyxruxwx|xowtxqinf}qnykwyp}|}qy~s|tyy~}zu|sxw~}s|uwn{ly~pr}imtwptw|twxqne{yzyvwzwsry{zzmmddurxvuwu~nxwk}}}wxvy~vmwv{xnt|yrzs}rsxso|t|ypfo~yml{zw|utltv~rzr|z_f{syw}y|}y}pjsv}tv{}srzq_i{xsjzq|ogzlxxvugtlvkt~y~oo^m{|qrq}~ijt}fsw|oyu]uyztuvrrz~oqv|{odcOpmp{sn{lt~roxiluzn}xgvmx~wzyxix}}unr}{tojjjyu|{pkiyhnjjn}mkwy|twx}s~kstkv{vWk|o|m}tzpkmqyj|qzns{|{e{tksh}lxm^nsqmr}pk|hvzfxzeqxsiow|qpfnorlwyv~z}ktyqsmuiwz|{yv|n|{oztiw|zdryuy}|ivvv{|rn{y|sto||wo{tw|}{oxmyx|vruvm~yv}v~yzvut{~~~wr|rsx}ltxz|yh|nwu|voqts~siurz|z}vwzyrzptvhy~jx~{{}~t~}wuwqxuqyu}yuwnt~}{sptw{wyyiu{uvyht{qjztnus}p|n}kxmwzwytw}ov}~vrpl~}|wl~usvwvyuyvw~}tzh}}~r}{oyxovy{|myrispy~|yqv~{}xvrurvn~y|k}}t|{jq~sq~ywlmy{}xq}pwrt|uww}x~zs{q}vhvyp|wvu~qyp|tpg~{yv}|oh~tuvz|j{u}wmmvvw{svu~~{|tvurqvo|lvzrzy~sy{{|pyynuqwkszwvyqq|y~yypz}oww{ttzrx|xv{|s}i|z{xzr|pwxjvxuxyktg{{}svxxxo}vnu{kw}z{zuxy{v~|r}xlv{mxuwvr|zow{yspwjou{t}{w}~{supvnxq~mxmjxy{ylp}zy}~lojvp{q|t{rol{h|xzxuqwuuvxvwoxrtoxtl|{z~rt}w{|}{zxxutsxu{|uz|r~z}wxytyzysspx~z}}v|y|}tzz{x{{yrvyyxsxttt~|x}rxu~|oq{|}ry|y{}ot{~uzuwuxy}zu{t~x{wnzjswj}qz~k{~{spx|yr~vww}nxozr{znvpyvw|vlxxwz}}}iwwwto{y{pr{}xs|{n}yorqy{t~zs|r{zwp}~uzsvurn~}|}{yssva{}xz|vp|z~}mrspswqxm}xsyvvqs}x{{ovwxvznzwysw|yvfjuo|ppxnt]s|diwty}wpx~yt}}n~{|puxrzsytu~v}|yww{pew{zyvk}uux{szwz{u}~fycnvtyumjq~xuxs}}}xo}u}vwunqkxv}ts~~{~tmqvx~~wqyur|w{|zwuxtvy|qu{u{dxvsw}txw|ujvz}{vxy{utwwn{siz~uxxzzi|uyyrsd~|yrnyyWs{~wwctyvp{m~}}norykx|~rzduz^zllxwr|qxtqvZ}{sxvtu}tru`vypp}~|~twv|tle{~u{xu{h~qy{f~vi~vy|zw}xyzknt|}zvsswz|}~yk|vvwo{~}u|~yizpuvs|kouxsw}nwntv{wmwltqwvrwyoqyzvzhtytxuxpudqyywptl|yz|zzrx}~yxuyxz{v~|vzzlqw}r{{{~jz`rszv~wvz|{r|~yx|{{~rlt}t}wwyotsun{n{|m}x{tw}ryl{~{r}sl~rv}nzqvaln}~qxvk|zzswvxswpuyy{zmsnlu{zp~{}}xq{z~zzwjt~z{|}{}x|tuyxvsx|{un}gvw{xw|tqz{v~~{ttmqvuugvv~upzrzpntx{ozx||sxuv}t|hs}|}{t~uorw~yu}uov{s|phvxqsu|yvpeyz{q}|y~gux}vzszy}w|u~{}~}{unzqyzwsry|}nuqo}y|rsvz}uzwdw|uv~{v|}wr}zo{{tzyxvzqu|w~w~txt{rxvyor{xv{xnqr{vutqwmqwu{wu{qtzv{~{ux{{q{}z||v{o~wy|rzq|}xz{pv|w{pyzs{|qwwzxvv~xqv|pmt|tu{}qjsw|w}}nhxzvwtpzq_uru~|p}qt|~zywq~{z{}wz{t~sqwxwdtushqs{u}v|vzyu{zrzz}{{s{~wxnkwtqxuyqq}rr}xv{{jzy~{vvuz|~||v{|wy~x{x}s{zx{}wur~{s~{|zy~z}yizy|sq}~~~~~~|vvx}}xwuwptqmuh~xv|x~uyu}||o{}us~~{y{vut|vxxwvttq}}x{o|WaqWyUpxkvkc~}fov|ywav|~kbjwqosm|zxjw}hx{vjc\q|w}ymZgvyznm~tqswvy}pfopene}v~q~}zqzto{yrvq||v}jlwwspp|x_zxdpyrwmfvp|ypsymszk{uyw}n{l|~||vgtxytpw|yy~uxt{tsrh{~~|xpyizzsu}{uyxmrqtry}qyvxx~vtwwsszzwz}v{|}p|}w{y|syr|vu|z}}mwyyyq{xu|zuxpuylywsvpvr{vzwzw{wxqt~zu{um}cwswksyluu{xrsynqqy}tnzxxyqqqiu^t|v{|ryozxsrrxgyx}`tysf~y{vv|wymyo|ls|ygyqh{wvuv~{s{t}~mv~~u~|z~sym|}sypsvtx~jou{optxgcnxnuzyrzjvjqy{wyqsjruivuso|x|zxv~zq~trowtjxsfvg}o~vzuqysuty{zzzf~ut|v{rpmv}pxqrvmlu}hqx{~{|nsj{uyjz|zgy}}}k{~nkxxmqq|r{{x}w~}xxvwsq~}zsswmzmq}t{vws}n}r{{zv{kaptw~|zfn{tqozusq{wiriiexxt|znspyrvyy}pvl~|gqutqtqZjq{zqylwirixvytypzchnkdwxpzdmtVsYzuslbwotkqrotvsu_nnv}pkCsghbkrnsxq{uurztpvmxjww}uyszkumrxx||utyuymu{}~zux{~ryz}|~{uyz|y}wrxy~{ruxyyzzruwx~x~~sx~wx~n{{|{z|p~uz~utyytzstk|}wrvpsqst{||i~}{sy{u}}}qwuzuv{utuolv}yqmzxvzvv}|{txu|~xvys~iwhmwy}~x}~ztwvtxmyywttuywyy|uvw}pxryh{urvym{wzvxzt|yo}zyseww|upu~~}{}fyyv~xyo}s{xyt{|v~y{us}{s{{nv~|qzh||v|ouun}szqq}qzx|wzzvvt{oow|i{hvuzyzpt}{{zyxv{|uzkt}yzxxz{yut||v{v~u~y{ty~sow}|}uz}t}zp}{syywyw~}|{y~}~rsuyw{{{yx|{|t|wvu|xwvx{~yrtvzw~yxtyztzy~tvp{yxpsmyyw}scx~pozww~qlyrxzuvqnz{zux|}~xpfp|u|wrvxzxgy|wq}y{{|{|zxs{~ou~gxvw{yywxlp{rvplu~v{y}q{||muy~y{r{ry}}r|rwjrs}}pyvyyzzqm}xyzx|tzyksuv}{ruwu{xw{}rur~zux{ozf|zrz|psyy|zrvi~{|~{tz~vowu~|qxc}s~x}}uujyqyxws|{zxy~{xvv{}llyxqsrwtv{wwzysw|tymyz{pry}}txpx}xxzyqz{xun{~x~wyf|~}vvknwqvxr|oywwkrv{~nw|zmvwxzyt}|zv}xyliux|ykzqwt|x{z~supu~wuupttszr~htuqjwu}nz_||w{n{q|{}|uvxqr}y}|orz~x{|{yv~}{z|u{}{vzyy~qyx~szz~v{x~~wz{s|r}xun|u}yrxvzp{|rzxy~zv~u|x}{zwz}yzp{ztxx}u~v|}{zzy~qvox{s{{v}~zwxxxquz|yxy~ym}ywt~y{xetptt{}}ivu{jszwtw|wlzvxvwprt}pkxirtqqsv{q~x|h~tdwzmttunexzvxowgrqt|ps|u|xqrvqxulmystw|p~qymrsivnplvltetwymquo|stwpu}sqnzwt~y~{vom{|z}rnvzzymy{troyravwtsryuxqwvuuqzv{yox}ww}xtxZ{zwpqn{vnxqm}trivrzfu~}vywx{mwrt}vo~x|rotkyuzy{{zxx}yfwz~umwkzwn{utrykd~vstrv~hw~zzny~ts||kzyxs}qu{svyzw|{{z|jl}nvt~|}|{~m}vxvxjztfuoenˀnqynsl{yvp|lzzjlzgxstmxu}nxot\ark_}~u|rvcy~mvQtusuaows}p{tOtfxqwuuyvr{t|zwsmX{zmkw{tumy[V|vu|svxwtj|y]{tesnqvuqyv{wtzkn}uhysyfvsuj{}||xtxzeyx{~{yw~}zzssvyzc}~tr|uyxrw}}zx{yytmttwmwxms~xzy~f~voo~y|{~y~~i~{folzwwrrv~q~v}tuw{{ivwcdq{{zuxtktv~wutruup|~{yno~opp{~pzotsuuuws|ysbrpzyi{{nwx}~uymxyxy}tszsq{~zypm~qxpmytmmzzg||~xxp}iskWkpur{quv~vw|uwx{s}~y}ssytz|myxmu}y~{{w}tzz||u\npwtwvrl{}mnyvru{pov{|}rqx{wv}|{v{zx~zyz}ly{swrxpwsiw~v{v}ryutjvnw|vlx|xuzouv~z}yxk}|sr{z~}}t{}vvv{vwvz{miw|zx|suqtpp|{{w}zuzyyvtwtyylxyxywxwsso|x{stytf|~us}|i}{u{|}}unxz{{zcux~yv|vyoy~qmm{~~uvssm}{{|xv~vujtw{~}}st~v~zysq|rt~r~vzlp[lp}pgduntsxof~|}}k}nzgvyv}r{|vpxk{o|}r~vs~ujxnxvvw{s{vxsvq}rk|~|n}ywxjyi{zz}~wpy{r~|uwq~y~jv~rtwzz{ymw}pu}|fqxpw|s}y|anzpz}w}z|yy{ipxu{}zwzt{z}mwqs|xsvv{crmv~hx{}}}ujz^yn|}sylwtxpzvxusq}~pu}wyuxu{t}~~}sy{}xuv}n}ywqo{yvzjzvtzswyyrwysxu}x}{uszy}}zzvztt{vxnt~}|}~zu{rvrwyuxtysy|vz}tx}|uzvvy|~|sx||tytyx}vvzxs}{{}rvrvqqwus~k}n~}|v{z{qxyvr{v}||}x|wq{_qyxnrr}}x}ovp{oxtmp{lvzyv}m{sro{|rspyg{enzpbvt{ws|}v{}zzkvokuttxxuu~nywgzxkvy_ypzp~vv|}s|qp{vlzszas}{utpyiqq{~}|svs}twz|oiqqqu}mv{pxu|qxntoz{iq}vlzy}e|u}vzsxu}xp}~}vw{yx{{t}ysw}jyoxztz{psr|qtjy~q|pxw~~k|{zwtzym}jsxwzp`qw}{}}vvtc{z}{uu}vt^v{wXuxwlvoxxssyvx{`otpiv~tokysvw~wsfvyuupxtzzpuhTpzqkqv{y~|z{{~xyctzwiunvxZcxfyzpvjrwv_~v{}{zk{mw|vxqqugwtryyz}osfkwkixo~jnt}pnc{szwm}|kxont|gvsnbswowwsr}Zkfftq}xomsvpxzxsyu|v}zatk|yyo~p}}|juy|jwuz}}||xno~w|utz|roxxylsx}oww{}w{|wsvtxx|}wztypnt~}`yxyuxz|nod|q|xxszv|~xvw}u~vq|p|~wt|v~}{}r}t}v{u|qzxs}w}ywp{zvvmontsu|z{yy~~wwuqxuwpjqztxpxw}o~{uz}pwq}|ov~k}xq|tzwiwwkwvomtxm|s|purufqv~d{zysylzqt{runtsy{vyyy|y~~u{sn{zuu~|{typ{w}ssyiwyvfvsxvvvtydwpjswtxuxit|ysvo|~}w{uwpv|r{~mpwrpwkq{~lomavpitt}szm{u||nxx{mxqvx~}uo}{zzxuipr{vrp{owkov~g{s}gytxuwrm}zj|yxozww{vu{jmxyywow}upvzwv~ttys|z}{{}}{vzystsiur~~w~{|u{uxgszxwevzvmqvszyuu_vxyy~pxzo|y||vrrzu}o|zo{{swpwrsvy~opstE`n{xg{n{|y~}wzx|dzfn~swzjtz{ytszlvhvt|k|ztvs|}}{xwrbwk|}m{z}ww{jts|tjzu}|yzjxvpbv~{txz~y}s|qvxy~xutjtrtxpxwsy|zuy}zw{zy}wmyvizxxy|||xr|qu|u}u~{}mynw|s{xw~~xur~yqt{z}xzvquqyx}v}~{zw~zvo|u{y~{w{ypwwv|x||y|}vu||yq|s{qz{x~w{{uyx~zzzvzz|x{{uw}wznpwv{voy|y}|w}~qmy~v~}{}|w||sz{~{wr|slx}sz|{~p~m}}|xyxjuu{{rxtqt}wr}y}ywyz|w}v~tqpyp~qv_nzpwyxkxxsmmk{{{y~wsyrv~n~maxvsrvyzx~~yuvyszez{}zx~q~oytt|vxqnvxfoq}}z}yz}ovoypo{}}|}zqxv{k{ww|w{u{|||t~yuyowu{}uruv~~rt|{z{wrpz~{uostwuq|uz}vyvwlurvyvry}vv}~xtuvwoxxz{|wl|u}}yk~}k{|xwrwiznupwvwwyq{}}qsxylv{urywxr|wzx{yrosyxs}yrvvnz|vxv}w{f{yq}}vy{||~w|{z{xzyxv~|}{u{~u~w~~pxt~lz~|~|uzw~ywuvy|xx|uzuwyz|xz~y{~x~wzoy{y|{wz~y~|z}v{}~{xwyryzuwwriqv{rqyss|{~}du{ryrl|p~z{v{ywy|jtrrttyupzys|}x}yzyv|owzu}|{swmv}}vzwpsmy|wyux|vzst|}}{}vuwzmtvq}yxyw{z}utth}pv~uupxw{}|x~uw|nrk}m{uu~xuzviwxxq|swszy{ts^|p{twvslwnurt}o}mz}uryuq|y|~~xzzvxu}|vwn~zuq{soy}hxs|}ywljpszjixyx|wtxuvchokxnnv{livvstg{{}|uu}ysxxlxoxlu~{^y|tz{vrhvotynw|}~p}ttzv}wu~qtwysky}uq{quz~kws|ki]{}}wuko{x{xv|s}wyztkrsqzz|nrvph{zztn~dur|hxov{xvw[uottox~pksfw|htxwnfop{f|rytvuptsojr{wzsps{u|usyyvwzw}p{|u|x||{rwp|zu|v|v{{v~zwz{{zxx~~y|||y}znzv{{x~xuyzq|{yvyy~vq}}w{{}wzyuy}}~ywv~wty}uv|yx}~tu~lxwz}{t{}|vts~vr}rxzxtvyy}{uxzyrr{qz|o{qpxl}pxx~vxmzwrwvvyt{txe|xvywv{}x|xqrsw~~nl{vtzozzxksxw|x|wo||prp|nvvo}qzruy{|}gw{z~q|rzz{lrzxvyrxon}zqt|~|wuqu{Q{zxr|ym{wyz}qyx{wv}oxu{xyvw{uu~xs}}wo~|vxzzpvwzjss{{zwv{uW|vmt||~o||z~}xs}~yq{vx{rzhl~uzwpx}{ptm~}v{ylvy|~}uyutox{xxrqz~mxvmquxtuy~~qj~o|z}osyxyr{~zrcvs}`tsnuuno{rst{qdum|su~}yysusvuz|tz{}v{|rvtqwww{w}tyzozw|vx{ytuxx{q}}tsxxz|ks{}xuwqv}y}xlpv{xxkzwkr_~{u|tqz~uu~v|t|y}n{r{rzxh|~{w}sv~zzz|ty}xvixwxxymr}}{xy|y{zyv{~zz~x|zxw~~z|uwzxx{}y~x~~~}|}vz~{v}tz|p}yy~~q|q|||ry~}{x}zt{yv}tt}{{zyvyz}ts~{~y|}~}|yu~vn}{|zv}u{z}tryyy{y}v~|zyz~~}pwvw}~}~xs~uzrz{{}xv|}|z|xuytz~vw{x|~yv~}wq|qyu}~zw{}uz{p|z}x{{~|xyyztw}w{|}w{{w}|svwvu~x|zz|~t}~||{tut|z|zyv}vux{x{w|g~{|{kswxx|w~zzyozz~p~xnvt}nuswjtxyrvqhrk~|wzzwv}suxty~qrmpqt{|zrw}omu}t|w|qwnnqsmvox{~{yywyyy{xr~x}y}v|h{}xhvyyw{{zr|tt~{xvuxzt|styt}twsn~v~zvv|}st~znyr|{}vnsmpc}dptkp}{wu}wrt{w{vwz~zow|{v|{zqwxuu}vw|}|szsxywtxq|t{k}q{|u{y~||xxwxvzz|xxwl|oykz|uvzw{zvyq~s{wx|w{~|}opwwu{u}x{w~~xpzrxxww{}xzxxq{ww~y{~ww{w|{v{yrrww~x|vqxnyux{uszt}`wx}~rortyvz|xy}rxzqxxnwwposzzwv|t}r~rsspz{xnzpwyszyqxs}pz|vvzoi|uxr}zxu~{w~|}nvsuxs}zuvytomvqp}vx||yZyyz}ruyrvu|p{q{zzrxox|yxuu{o|~q|t|zk~~kr|y{wxw}r|zy|wsppjszq}wyvyyzw|ss|wws}~zvz{uzs{jvrx~y~q}rut}}m{}|{u~v~qwy~ozrm{yrsy}}t{}yuy{vysztyxzv|zx~x{l{{wt~xy{s~yyotqrs|ytyzu{vzwh{juvqjorxxyoq|zxxuz~qwx}zp}|pwyhq}w|yn}rv{p{|}~wnzjvmd~~{|zk}tp~uyozu|ku}{}yuz}}m|~w}lvyz{w{|ppwuuwwyxmm}nxz}~oosvdsprsputt|~~|~r}~{}u{~}{{yzyvy~}|t}zv|xux}k~|r|}{r||zyx~{~zs|}{}zzx{r|zyw~||vxw{x}y||~|}~w~~}~xxzv{}ru~{kzzrv|r|x|yu{uvvwrosx~syuxqmyoxqgy}yxo~yxvt|}~y|uv{yvwztyrvm{vqtyus}lw}{{s{|}xlvtswzrwvzs{tywzsyur~}ps{v{sqvvu}z}mtyzxqxuw|~vyzz|{hqy|vq|{s}lnyytnvt{~zsqp||z{q|~tvux||{zu~twxw}ux{vqt{xxzrr}yxu~~y}z{w|ty{~uts|~yzywz{v{t~uy}yxxvxzsoxyxxvxz}y{vyst{zxryu|swvx}x||t{y}t~x|}~xquwylzy{r|xzx~~w~}xrv~yx}wk}f~wxwwtpwxz{wqu{|pqrytf}{d~y~~sv{|}}}v{r~}osnzdpvvuxo{y|}ugw}em|q}~zo~}xu~{dhww\nyu~jrx~xysqo{~rZswyulxwt{lmggp}~xn]|~~||vkqvz~ze~~{}x{~|{{~~||z}uxxyg~syz|}yvs~~{zxyw}|{{vx}w{~ww||}vw|xz{|{yy|~~{w~~y{{spz~{|tr|z{|x|r}xy|{q~pqwwy{v}lsy~uw{z{ys|~wt|ypt~swy{|ywr~{sy}|zzu|ryyw|}tx|vxvz~vxvw{o{z{u}su{z~lv{swwrxpyn|v{}krm|}rv|w}qvuqv|{|xdwu{zvuu{zpnyzvy|pttrw{w}zsyss}|k|rmtysunt~}s{~xyttu}zr|oyrrwvzxw~wxvpzvr~|ywzpvzwy|{{vv}swzzzv{t~u~t{ys|wvuvmv{|m}vq}wrnqnzhwqy|yzztx}wusky}xp}z{yywgr}{|nvu|~vov|r{qzwzuzzxwvwx{zu{xxw}pr|{w~}}wp|pxzw~x{vvt~|yxyy~w|}w~zxxv}}~~}|y|}{{|yqvw|qv}|sxxw{}tz~zyuyyzw|wx}|u{x{wx|q}xxzn|W~_wyz{wfzv|~srzy~xvx{z{ox{kuxqzzzxogvyotu\}|t~y}{j}{x}txvi|wukxvxl{|{zzy{lszwxtyy~w}{vlzzp{x~{zmkuqr}|l~vjvohyzazxse~vqx|fwutrwosvyts}~zy}u}{{rnyz~|vzzzuqt|x|wwwvwyvppqvx|szosyztwox{}w~{u}suux{tyvsrn|uwvzytx}sr|ywu}oyux~~xyxniqyuu|}}vtx{}uzqx~~v{}~~{wr{rzvnsyzrrlzuuxy}nzwys{||}q}muzjxzwtzcw~vz|n{zu|rzzisppr{xquyp}v`|}umr{w|tquz}ysr}~nuw|wyrzwy~vzm|wt|uutv{}uvt{}sqxpnxyrvn{tw{{ox~o}w|y{ytsty|}xwq~}s{|zzrws|pqrq}~}vvtyvojxwutxrz|xmquurnqnuyrt~{zszvuhYypz{zuuoqzsoyshgwwxsrv~uyq{norxpuyfuwx{z{}m}|zzwo}z{swrqxt|znyyznxztqysueupyswtmc{{ouqqsqpqwowqwlyvtrqkqr{xuvvx|vy||zzyx}ymn}wwl|vkyzs}}{sto{uz|unsmv{y}}trrvwv~zsz|wtw{tyttxqvhpy{uqq|}tq~tpzzx}psymxyvvx||u}k}q~|zw~vx~tw~~z{vuw{{{wr~}ry{t~utqwywtso|qjytyr|}uv{xxspzs{mizv}kjvvsru|{ryt}yxvqzs{zr~pzxszz|c{uskzx||wws{yuv|wzxwyvxtyrv~|wo~tss~vqxmrt~|~|}{zylxw[v{xv{ymzzzvu}x{xuvw{uvzsyowwst{nznojyxz{}our{vvyyrx|xw}~}xw~zpov~}{{vxs~t{trs~q~tt{iz{u{|}w~zwuqw|{|v{{rzt||~wy|sv|wyy}}}vy|yy~oz{soy}zzy}z~l|~{zzytz{wwwnsq|zxszv{wz}wry{wv{|z{yzs~yyymqx}~uttx~jx{~v~t{xmx~v{w}vo}rruxwyxstvwu~|ip||vzuz|w||yy|}zvuzwsx{~{}{uzo{t{{~x{xvzzy{pqvkx}zspj{x{{~{wuw}|~w}s|{xuq{~zz{qutz{t~yyyux{yt}~yvzr}}{}sly|g{}~|mqxuqzzqx~sz}zuwpszzyro{pw|trqzzw|wpy|mqlszyxw}u|qt~kz|wu~}z|rvxs}vx{z|v{qpp~vq~{xz{}}zt|{{{||ttzpzwqnvvywu{wtuyuystrr~uuyzzvyqouuzwbu{tnwv|szt~mlse{t{nwwuyy|~qy}w}wwn|zwunxzjwrpw{st{}q~qxptv{|xmkoqozyuvsxxod}zvpkyrk|upzvovs}qr{jsy}s~~|s}}yu}{xctvs~uwtoxousjzzuozszwkuxvswfruvymsupy_|tuu~vy{s{|}{}~sysv{yssru|}t}x}~}u{wr|}yuxy{sn~}wwvytyp}xu{v{~vu~zvwz}zzzv|tz~y{ust|}xzwytt}uv|{utyz~vzz{v|u}qqzr~wow~xvwt{~x|{~o}qlzv{t|~zwu}}z}y|y|z}}|zvy{x}{{wxyz{zzot|}yp}y}ywp~zxwx~zvx}}}zx{~zy{ryuuwuv{z|wzyx|tz{}wzujouyuyy|u|~xx{zq}xy{w~~{{t{}{|p}pwuuv}sy}u|~sxn}}svxw}tqww~w{zvo{zssu}yz}|ftxwzsos{rvvvwn{xztvzy}lo{xlx|v{txu|oxvpk{|o}rx{{y{~y||~|rzywww~z~}wq~vvsx~~vz|yqw|xuzvvzwryzspyres}|rxy|y{~ywy{{{|vwxwww{wwy{vlsv~z{|uxsq|yxw{zlz}ywz~||rxvf{zxq}s~zy{nxwy}t~|{~|s{{rv}}wp}y}stu|~sx|zz}~n}||y{y|z{~vtv}x~xzxo~|~yzqwlwxzw{s|~wvrywuvuzz|||pyzzu}ww{u|u||w}y|xw{x{ry{mxyvxq}~{y{tzzzyyk}qxvv||{}zw~tzt||sqwyztz{}~~r~u|}ws{p{~y~|}x~wz|zvyyvt}z}}vvx|}yz~|xv{v}u{x{z}z~t}~}wwy|{zowtyt~|yqztx{y|kt}}|zts}}zi}v|zrduz|u~sx|~szpys{ysyzvms~v~znr}|x}ttwtwmr{y}v}wyi}xzy{~l~`q~wtznwxy}oq{xqx}{yu}ussyt|w~jzmwt}w|o}rsvnsgwbxo}t{ywwuux~~oov{wpzwxyvrt{s{zzzqst~ruqvwsyv}ts}p{tvzytxqvxx}zt{x|vw{v|yw{xvvuxvt{}~qqy~sv~||spt}{w|wv|ut{yzy~|yt||ywyuxs|woxystq|~}ss}{wrw{|xutx{l{w~u}y|xyryyrxo|{{t}|sm~qwzr}wvyvv}wsxtwtu}{{|v~xzr~}}v{{|yxv{{swz}z}w{{w{t|~|x}|q|}iy{~v}yz{u|v|}u{y}~u}|}vwn~pyyuti}j}xq|yt|z|~pt}tzzssyqkutslxlwmtoxz|rnm}|zwv|{wwzxxtv|{}tx}yqvvzuxvwzylyp|xpyxxjzw|zzzrynvxytywyyxwtvsrmxozyx~wsvx|sv~}~zzvrozrvq~|v~xyww|{rqs}t{ow}v{wvry}u~xy{v}rx{|p|sqpyzprz{w|tz}zuvhr|uyy}qv{{u{y}sw}x|z{~st|yqx{y}|lwuvvqywvy|}{st~qu{{t{}z}yyz~{ywyzzr~{uu}y~{w{|jx{|{sxv{}u~zu|utsw{ozo}zzt|q~sx|yvyuvnfx|zu~|}nm}uzp|twwy{g~wy~s|}qz{x}t}x{}~ry{}{wvyvyow|{}{|qtu|g|}{s|t{|xxzvuqv|yyt|xwwxoxpw}t}z|t}nwr~onvxpyzwdl~zf~mww{~r|{}twr|urxvvozxyktwwwzwsywouuw{q|t~yywqzxzzz~ywyq~yw~zwwlx}vx{{ztsxtzz}tuvwsqv{tr{tyyuy~xpqzsulx}xzvxuqq|yzyy}tt{||xvu{wrvyt~z}z|}xxwz}wyyywtqnxyb|u}tyzuu||r~v}sz{yz|z|{y{xvtnw|t~v~xsz}~zsu|{vwrr}z{|~zsxwx}y{{tvrt~u~nz}swz{zvvsw{{zz|ww{z{wx|v}{y~yu|~|yzoz|}}~yyu|zww|{wtuq||~t}|sw|~v|{||xs{z{|x|}s|v~ywsyxl|t|tyr}voqy|sty{w}s~}|l{|m|xx}vy}zyuz~v~t|rt|ws}zx~prvzrzwqxu{z{|zq|vhtqw|syzxxxyt{{xyzy||pwzry|{z~|~opjzz}typw{{}ryzxg{u{{ryt}vt{xz|w{{{~w{{{|wvxts{yww}}uzzvz{zrzqy|z}~uv}zxwx|{~yy|}|vvpz{q~{v~z{~sy~twzwx{vsxxtz|}y~t}yzwy~y{q{|xywxywvwzyzx|vttvwzpqzvxo~n~x}u}wqx{u~y~xx|{|nzmpoi|{}rxrnwt}x{{zt~{vx{qztxm}}}r}t|rwszy}sz|px|{r}wp}xxszny{rvyimz~tyutyzry}|oyvv~yk~x}oqw~k|zwtpvxrpygtw}k{zs{u~uv~nys{uxvvyr{mv|p{~~z^moxwnykjpqnipi{zxxm{}wvypvm|zoym|vyT~uz}twmzrottyvkty}unwy_d||jz}tsu|s{{{vuus~x|wonwj}pxzt_gyxtxsvqyygqpxu|ry{jqirqy~{}tzzptkpn{{mpzqgvu{vy|sw|zkvvuzorxuw{xpssq{myw~yu}twv`~o~{xwrtyvv}x{qvw~rouz}{zdw{h|s|vst|q{wv{u}roxo~|{|byzuuyt~x}q~uzq~k|x|m|vouz}|wjw|~v|u{gw{}nwx{ywmtbxuu}yv~v~rzyxw}w~{tt{ywu~{~x|}xs|qswu}}{wvyu|tyzstyyw{v}z|tvy|w||x{{sxvtvx{vqv~qtuz}~rq|w|ty{yx}|z~wvxvx||{yzun~zp{xquxx|{u~u{x{uyx}uxwy~vtssp}zwy{ww}u{sxwyvqszu}t|}uuy}xw|o~lyy~vwzyzt~|zuzz|x|}xv~{oyrr{o|nr{|xu}zz~ws|~~xy}zuzzxtt|xgs|xurs~wv~~x~zwm}pxsx~vxv{o}s{qmwx}v|lt{|s~qzpuwy|zuxvt{xn}w|~vtyln{sypvmxzorsqyy{}}}wsz{y}xomvvu|{}x}jvdzu}w}svtck}u|zkqzuyww}~t|rtxxkz|u|p|zz~s|wvusvmwu|yz|tppvfp{suur~{sqrwwyku|opwuxyoy{xw~v{vvy~~zu~~}vz~x|{xxzwxz}tvz~||~zz|tyy}|yz~z}{w~z|v{sxzvxx|u~v|wx|}|~zvu~}|{wxt~xxzx{u}x~v|wt~~|~yv|~~x{ywuyzz{wtw|}www~|y~ts{yx}uuyyxttu{{iv|rixyu{zn{u}~zvvvu}}urt|sxuy|}ys{v|ws~qy~t{|~lsowvw~|}u|tz|s}rx{yzzvz~~zv{|u|uqtzrowuzvy|l{u}w{{yyvys{}w~w|zlytyuy}|z~w{|{vu|ygyxwu~~v{rvyv}{{}kzo|v|yxl~tw~}xu|x|~v~wvusr|r}p|~}z}q}y{||z}}~w~xxzwnyw{wywy{~|wrxxyu}{vuw~u||rxxzwxs|zznwxuut}p{~u|t|xyy{x|i}soxtp{t{o|v~tx|y}{wqvzy{z}zwzu{zrys|tywzvw~|~yt{typtw|{uoz{xxtz{usst~t~z~yr~zz{}uu|wry|xuxxxzwu|w{y|nzriuuk}uysqruzw}w|~w|x}pr|t}qtz}wuvoqtyspvt{y}}js{}g{tx}{|ovxznwrrzrw{xqyvzsnyw||m}ws|qyuvx}{zswzwuvz{q{uwzltqu{~vuy~qyxjxr}{w{|v{~sv|}yuu~|w{xyxv{{uwur}~wxurq|trqz~{|}|uvto}}|uuzywwun}rqsxy~uwq}{y|~vxvx}w|wuutwxyr~}|wzrvx~y{{~ywvzyuv~to}}vzkyuq{~}t}yuuiv{z~uvnurvxszzxq|zwrw{wvtuxz}u|vys{~z}soruswwt}q~un}ru~n|{u}~{zxxty{zxt|z}}xyzsy{v|~}wuy}}vtx||pzzoum}wvtysxrxvvxzz|uyzvvsy~qwwo~w~{ryy~~{|y{kozx~}|ypqpzzxzpz}y~ru|w{{ytvy|{y|sv~}voxqysxv~y}yruxsuv||v}wy}q{z}lvlv}|w~wz|wvty{uyzw}po{ztu~yy{uwy|usxj~u}zxy{{w|v{v}}|~q}wrw}x{pxvlwzzzru}{t{xyz{uxxrv{{s{wsyox}}~sw|zzrxyw}pu~vws|przu|py~m{y}yw~u}v||{~|~xvt|tq~h||{zy~}}~t}}uxyu|y}xz{uwu|xzs~t}|{zus}|px}{zuvsvxwnznq|q|vzyy{zxly{zy{{tmysrunwxvqtywjyswrr|~vu|vx}z{yt}||o{w}wq}|x|~rztn~wq|jyxuo~|~{xxwr{y}vyzqww}l~uysv{~stuz~ts}|ruv{sswtzqyz~ouq~zy~{oys}vyws{{w}npzv|wwo|}|ytnw|~xpv~}rtvt~vuuzyuqttxyxmwyyyv|{q}vwuqtp|yywstys~~~rsox}ww~ht}w|ywvwy|q|pzwwwxu{~~zsuuuwy{rxqyzzmyzyvzzxpuri}y~yz{w|yws|u}uqxwr|rt}wy}yqpwv|}vzzz{~vt~yt}yysw|w~wxrw}|}zztx~z}xz|~yrvzu{}xwxz|vxzzx|z|{qz{p~uuz|~ztpzrtpu}{wwpyy~{px}rsuw}|vtwzyr{x|y}p|t{zv}owy|{wtxusv}lou}{ty|v{~vvzz|xzr|wszryzvlx}uzyyx|{|qtvzz||w{~~x}qyquttuz|ou|}m|w}sxwww}yq~|||{y{|}k|yxpvmu{wyu|t|y~|}~py~}zy}ypvn|wzwyx|vzupt~wuw||{~qrut|}vyrrzw}vw}}mtm~|{z|qxxzy|vvuwt}}qsy|wozyrsursqsq}r{k{yr|xp|v|vok|tvtylxw{z|ys{|qxum|}xrz|or|m}ou~xtyruuil~n{}y{u{vvj|{~wks}|n}{r|msklpl||pyph}nsxz~qvjwqwu^unvxzwpiw|uum{}s{pv~rx|wwwm}azt~}}kshym}pui}onzuttRyi||~rru|q~n}x{iwjvi}opuxnxps{rt{u~rq{{sx}jp~i{x|}{]^~gdw{tqzfom|rvtp|}u}xsu{xzvtywqvm}d}qwyqtuy}tkjxszuz~yt{o}s}{vv}zsrxuxu|~~vyqw|uxyqty}{px}uyywtzzxw~xw{wzzvzuusrputtft{yz{~}{yvr|sxupx~||yxzwypu||}yy}}~w}}|vusx}ex|~y}xvvs{xs|tu|v|~|wwwyxy~~uq|ytw}z~ryw{{x{vxzyu|vv}}{txu|{x|{|vx|sv|txzzv}yr{sv}}{||u~s{oy~{wwxozx{~w}uv~{|z~rro{~v~~|z{ytz{yuxu~{~~q{txzt|zzus~|qzwy~us{nmzsxvuz~zyymusstzxwu|w~zw}pxtvuxx{{|zsyu|{{~y}y}wvr{z}{{{pvv{y|j{vq}vatv~~nxzvwquz~o|}|y|l|{}wwxyqxyyxyzwjyxyuyyoxz{xuukv|w|tyo|t||w~zuzw~~sv~{jv{vpvqqzjswx|xzxppzv}ytx{~uX{~~Uqvus}pwzpnknpougyurwV~|pauuwqyysuplv}y~{fx}uxtq{uzus|{vazqz}Tzxq`w}oj{{ts}|vlu2Rriwywryg{wtswx\|kwrs}vvt~y|mshxiwwf`zz}xwljqsphk{wyuxxunuvpyu{zo~yvq~o}rrwysw||x}vz}rvxuv{t~wxrxyt}}vzws}}wy{zwu}|{y}}zu{|ty}v|w~}zx~zss~~vwtv}~wuzz}}zyzz~zzysz{xlyytzuyv|s||upr{}}~uzswwsxm~tuv{~twwww|yx|}vvu|y|~}}|s||{x~hw|ry|sslxv|~y|y|}xrmmwzw|q|z~z}y~y|||ny{zr~~sux}uox~wsyt{~vwp|hs~uqxvsptu{~zquzsurty}{y{zqvqzrr}|t{twtx}q~}y}{l}lm|zu{ws}xty|z|}qyq{wnuzwn|svz|||~{v}s~}{|wr~r{rur}}w}tuz}sru}oz|ysxzv~sls{nyqhyvxt{zvu{|~}vv||zzqqyzv{~}szx{{sxyvxy||~m~woxv}{mz}xw{~l{zq{z|~}wlz~~y|j}uxq~rw{}}uzczw|~~xtvxluqp~zlxzotw}vwy|tv~sZx{||x}y|{~{{w{}}qy|r|q~{w~n~p|vwvyrtxy~}u}}yw}|{tp~w|q}~|}~}z~}pzuxnu{w{sxvwlrs~{v~mztx|q~vr{yr~sttv}|l}xvvry{tuvuvu{~zvvtty~rvw}|urrysnt}{|m}zur|v~srxu|stp{z~{yu{~~y~}{zyzyst|mvzttz~wu~tsvvvty~|ptz{uttwrrprtmrpysywvx}t~~vz}yp~{wwo~yl||w}yyz{t{tzqpu|qvws|qvzeq}z~}uqisrzk{}|fhl}n}}wwutyx~{x{|zy|xv}|myrbrrwuq~qpuzssyvz~rq~ppt||}wl{u{vzzqxt{vuruhxq~zszz~||}vts{}p|uquxxtyr|v~yixyv|||qurpxx}xrqxyrzmsy{xzuz{}{}tornzznr{vyws{vuruzs{lvmuo~|~vvwtwp{vmwyuvvstqnxxzwszys{s~x{szus{u{z}{x~}sysx}wyyw{|vsu||zu}}q}{{z}wm~}{vyv{w}qyxyyxz}ww|~z|y}uvwv}vtw|yxww{vqq|zy{~{}tqxv{x}x{xw}~oyy}}n|vw{rvsxzszuytz|uu~tw}xqy|{~wpr}x|~r}y}t}~y{xv~w}y{yww{x|y{z{{uwy}~{qzz|wxwx{{~vwzv{|z|yu{z||~z~t~y||wyxyx{uyrv{{yu|x|~wtisxw{tq}~wx{~zzzywzy~}zxxxyup|q}z|u~zx|z~{|{}~}vzyz}urp|vytyuq~wzz{~uxx{{{}yxx||u{~xu}w|ywuu{|xx}|xt{u}twxxv{w|x{{zuyw}wr|x|yst}qwvu~mywvxux}|yuvy|p{}rtww{{wt{y~w{{s{}yy{y{z{~~zuxq{l{xy|noy{w|ry}|y}~y}wzz|zttru}h{z|y|jnwxxv}|syo{kw{xur|{|xzt{|{}twwywr{|~{s~rv|{t{|otzyytxutv{xyw|txuw~utwyzyyyw}uwz{yyx}{|ok}~nx|zxtvhu~xx}l}owtu}}{}r{uwtqozkowu|{z|w|st{|vyxpx~t{{}|~xz|qzrwjz|usxw{sr{xt{v{u|{w}||px{}yz{xts{~uzow{}}|qrtw~x{r{x|txwxvqnutwyr{~}psykw|}vyptsz{yz{vzxpxzvzpkruwy}wz~}~vz{t|yspwz}}z{l{xx}yy|~swyuszyvmw{v}vo~w~y}|vnq{wyyoztnqt{}sz|{|xv{|yw}y}vruv~{vvvuxp|~xxtu~|xytxwyztwu{nyywxywxr{~{s|}~uwrztqzowv|usqr}wwsyxzk|oku}yutvw}rx{xyxh~mxvzvkq{~y~vox{w}{}lqyyyywl{pzhvs{z{ovyu~yrrtwzy}oxxx|pzy}px~rtxup}w~swst}v|uvtrly~qrsrxl}xws~yz|wv~qxnxwwwp}wlzpsyj~|l}|~~{n||}vxy}smt}v|w|zyxy~u~{w|pvszw~ywynux{rk|qwuypwypwy{xsyt||l{{r}ww|m~uyjonz|{urx~{t~~vuoy{}uw}{}t{zzutmv{toxxx~|~~rnxz~syx}|zv}tn{oqy{sz{}z{wx{x~wryt|~y}zwqzuy~{vtyu|wxv{~{zvs}us~|}{{}xqw}|yv}{urx}}zv||jn{uzypvxtv~y}yrq|}}y|~~|~pzu{u|s~j}zxw|xx{}{~qzyt}xr}ux{~o{ysz}~}||yw||wsy}v|wxv{vt~~{{y|y~v|ww~~xxty{||kyqq|zwzzzxszr~||{|~v~s||z~xz{y{xvzu}{w{zxxtot{zourw~||~z~{ywq}ztywtx{xyvszyzz|wyyvszwsv{wy}{~|u}}tsvyzkxyuuz~xw~}xu{t|l~~vut{~}}~{zzz~xxztv~}vut}|{vyt|{~s~wvzy{w|~wpwwu|ywzz|~~ou|}{|uty}|wu||}l}v|zvxzu~yytuzo}{r}t~|yux|y}}}~yqvz|y|xrv~u}s}}|}zylts}nx}xxzuvxxt}~y{zz}ytszlvt{ztppyypqss{~pyywz}trz~xuwo|tku}zy|y{x|x}zuqexwwx|txqvwwo{y~{ot~twvxtl|vu{{|vq}w}z|s{sv}lxho~w~{|{tu|uxusvt}uuyxv{zzxtvyyw|qv{{{syzwy~||vyv~ott~}w~w{|}y}v~v{zu{ztrzv{uv{vx~{|wuszz}won{q~|}~jzrv{yy~{zwz}{~tszvruw}u}uzw|s|syyvvvw{yz|v~~{xv{vwyyzw~zyzt{~{s}}t~xr{~{zy|}vwmzy}}||zpyx|ty}strwyyt~|{{yutx{vy{|w{zyv}yw~{~v~zwz~}xyzzy~u|z|zxxtxyvr|z{z}w}w|~zrss}|n}turywsxyzxmy~|~ru~ozrwws|oquuuyvz}vw{yttl}vy~}ulqzs~uztruszysolyq}r|usyyxz~r|r~q|vx~yqt~qzwxz}t~|{|xz{vowwxsgn{mun^xqvsxqxmp}}txquiyoxwxvww|xpp~wsjqxrynwsZs{wqz{uuut|v{sx{trttsu{m}|t}|{ytuwvzyytzw}{zzy~|y}wyq~y|y{w|~y|y~}ztsz{mwy|uyryzxnv~{zx{z{yxqn|z~vxmmwvuvu{{lz~o~{sv~|jmvuznqz||x|~w|wp|umwwxr{qyvpwz|x~}{vu}x}|w~~qourxwtsr{v}s}{~}vzy}wwux~pwpywwuurt{yt}sr|muz|}}y|{}tmu|}s}}sxvzsyr|zjxzs|{wuvsv}u~{zsossxxlsjzxyXrzozv{ozyxz}uvz{u|pz{zvtkpk{~zjtt~syrv|ww|fwtzt}uwdzxznlsuyznt~~~~xyzy|pqzvtoxzo|uurytb~|yurxlsq}mro}}}hxsvtvvhxu}{uutw|{}~vungttywmyz{os~rukvqrqujqlx~uxzrx|q{rysu{x|rsniyvy{|l|qxz~r{jy|vzs~pl~qpyav}w~ym}ww}w|ho|w~z~w}txsyqkuzryvdvqlp|~zxtx}veuyzor|tqutox}s{yxxewq~st}{gx~zxr}xm|v}zryrowtos{u{t}{so{t{so{sw|q{}um|utytswyt}r~m|~kz~l{ryuzrq}xy~urq~|xhysqnxsxuu~w~xv~|svwq{|w|qvrmv}rn{|x}vq~vzovw{tzx{svvryyvv}ytur{yy}rlxwyw|{oq}xk}{|wyl~|s||}tyxwn{zuvz}vzsx|ow}wrz|vw~zs{yuuqxywt~yww}zwvwyuzuny|zwi~~{zzwx|vuun~~{~~xqmn|f}z|}xw{uwowz}zu{zuz|zyou~t~y|yvxwoy}v}vs|yornxwyzx}vuw~v|q{}wplu~uzums{krrxux||}n}z}nxryx{l}{myxzyu{st|p|t{nrx}}l}vs~vz|nwoxxuxyw~uzqlr{wzzws|rt}s{oj}x}{vp~vzzx~|zvymqssubtzvw~tmwwmsystuz|~z}|uvhnpzuu|v~qx}vwl{~qz{r{tsve~no{{uys|zc{}iznw}|tssyy}~w~fw~zo{nu`vymyxpw{xuxpuftw~x|~uv}vzoruszq~st}zwtux~qoh{~tv}yroyws}{}{{t}z~y~vqo{vsx|{xz~xu~{zxxr~|xxv{m}yxu|uty}u|}r}uvp|}v{zxt{~x~~f}|x{y{zwtnwxt}|uz~zv|}iswvw{s{v{zuwkwxut{zu{l~~{www|rx~}mtvkwmfx~yxkw{}y|wtw{xpxqx}ylxzsty{yw~vwrsqy~|xrwswtvq|~wto}p~u}yvx{wwp}sinn{rwsu}~ztz{rsp|}s~szy{yy}q|t{ts~|{q}xx{}zy{uq|}hrwnnzyzmtvxzvxpt|twut{|wq{oo|yyyxo~wx{}yqysyvy~yvtu~}pwz}yyxt||ywvt{z}nxzqv}vt}suxqvsuw|{xz{q{{uww}{xz{vyxtxxuxl~|wr|vq|zty}y|s|q{ux{tqqlwvzst}s~|pyxtz{vyrzu{y}}{~w~}xyz|{z~tvv~qww{xw{{|ywxyy|xx}v~tyv~wt~x|}zvx|s~uvv||uqwzs}yy{y}vxtu|t~zzz~}sqy|z}v~t||tuud{wx{txtz~{wx|u{{|u}uusw~yy{}{}wustyvw~{u{~{}wuwy}vypm{tw~|xtjtzxut{{~y{rtto{r}{~~vzrv~lxytqvynyw|wyrzx|}wptm|~x{~z|gu|}|pyvwwk{|sx{vmlw~wu{v{y{~yvxwwwww|~tt}ptv}yxywjwsxyxtry|~xsoz}|{wv}s~uox~|wnr~puxqzys~zt{rmx{{ozzztpx{{wpswNupuyuszmoz}nm|twptiuot}}{nxw{mue{pzw|ytrxw|y|wf|qj|ryzw|Wvsrk}o{vstoypv{zuxnspmx|~{npp~jqjzicxuxiYthixrs|sv|croi~|sumtxstssuhtwqkr|xmypst||wqt~}zyvbynxzlzol}n{w|r~trwv{vyuiyovx{mv{{qg{}}xkzlfssyvxw}~mzztzquzrssu}snuv~wq[s{bmnstyurro}um|qszvpvw|}stz}mvruit|qylxpyzxrx|yxtsyt|wv}|y~zu~p|~xyx~|x~x}zxrrut{zx~|vy|zuy}zt~}{yyx~uur|~v|ruuzy~o}ztt}~uz}|~zty{x}yyzr~w{y}}q|pquvy{x|ryx}|t{z~{zypzn}tz{zxx{v{|ws}qwtvzzzltswtyzrzwtvz{tyxyrxy~~uzstlvxu}ptz}qzmqxs}}~zyz}q}zv}|{y{}vpv|yt{{{vvwsz}rt|zyrshy|yx}yuv{yyvywumg}}z}usp}zxp{{zvzyxz}z|{~|wx~tr`ytsv{trm}urvmz{voz~ww{vvw{v|w|r||hys{s}|z}x}oxrvlsu}}~|zu||ui}||q|t{zx|}v{w{~ylr{wtz}}qsv{{~xptvvyx{vzu~{ytszx||s{{~x~{yzxvzzu}o|x|krt{|tn{w}zzvyzyztvtzq{t}xsws|omrvlyvt{||z}q|muv}snx{ysyu||zyqzy}~wyzyz}xyquvjoz{|rxts}os{w||~kv{}vsyrtvwjstx|zywv~xy}pposxv}l|w~|unwtovthov|uvywyroqvyw}qw{~{yjw}yxytptnp{r{}v||q||y|||tsq}~xvx|{o{}smrxw~}|yqunw}rxuzwxxwxz~xzru{t|xov}ytqy~zun|}syz~mtyozv|~{|zz}v|{rzti{j|xd~|uw~vvyuyouqylzn|rxrw{pyz~qpy}ix}}xzys|{{w{xq}n}wy}wxurx{yzovyxpwzz|uxp|}|y~vs{~zj~{y~qxxu}xz}|wy{kwv}zuvv}|uwyzvtxx|{vus~}~txwuy}t{yyzp}u{wsnozy}tpu|wx~x|v~vwuu}m{||s|ory{tuz}pwpos|x}zw~x}wyyyuwqyrwvv~~{x|zqvzszu|s~xxtzxwv|x{wqy{w{vztx|}~|zry|{|vyuyxy}{}v|pktxwutuzr||xqw|rztz{z~sxwws}rpyynz|tv}|u}}||zwysxmorttxx|zlus{}xu{|p}{|xly{y}v{t{}|v|pzzuzxu|sxwhzxr|w{qtwysutz{w||xyxswoz~ywwvrvxhxpv~yy~}|v|ux~wp{}y{wpw{usxzspuwqyy{q~m~zxw~|ztrr|s|}pn}s|zy|}{wtvz|}{y{{rx|yx~{s{}zzutt{}yz|xyr{|o{uw|v~r~}}y{zxxrzxz{{xsvyyu}ww{{x{|uu{x~|wy~x|xzrxvlpytxsy|x{{zz~vm}y}y~}tyxxz}wusyr|y{z~|vztvz~zuuztwuwvwzzvsn{v}zs}{{z{szw~z}rz|vv|yuxyyyzwz{y}yy|yqy{yzxoxrzrvz}u~xuz{y}}u~}qw~}sws}|rs}|vsy}qquxvuxrzzwv|xqtdqtr||wkrv|s~zzwytvt}sy~{swz|yu{st{{oxvn~rzp{tsuzt|q}}~t||uzwuvswxz{y{y}|x~~z{nv~ut|{~zzvt{~txr|uouqq|xxxsxxv}uyztz{w{uzw|x~w~owv|xzsywvyulml|xw{rvruw|mzxs{ypwvzu~sxzq{~yv~ztr|}yytxy{||z~|vqyt{z|prqw}xz}}wjr|t{loyuw|wzd{~z{wzsx{~qsuzxzv|v|tw|~~lqrrxs}}{{w}zzytxyw|zv~yzzuw{~}svxzz}qyrty~xxxxp}z|~vm~~|j{xx~}xzpytqkozxxs}pxszvu~qzwwztz~xwv~z{~thv{ssyyom~nxpr|}zsoysux{tryx}tw|~j}vvs~wzy|yvs}znlxhxstxzxw{v{rzrpu{|yoxlrylvvmxxxsfwxo}y}wsv{es{}v{yxo~v~wr}}~t~w{yz||{|yu~}vyxy|}p~xsw|}xq{}t|w}~}{{vz|zy}t{~|xzzywz|xv}w~ux}||v~xzwxt~yyxw~z|us{~xwqvz}|yvyq}|uxwz}zvnxtu~{}~wpwwslsreqomy{yprsnr|nxxrxmymurvsnu}~vuxw~qzw{~~|yxyprx}szqlltyyutur|q|onrzvwl~{y~sq{ytjsnx~{nkpz|{uwsw}r||t|hs}ws_vy}hk}n{u}yj{~sysvxs{vs{wyywzvrx{wyu}wys{}xywx|x|tm~xtx{}{y{|}|xuwxwzyxtv{xzzwz|~~z}wqw|y|tvxxxzvv|wytw~wzwxzu{}vy~y|~v{xz~y{|{w{zty|{wrx{}xvzq|wy~x{z{zuxvwtz{wp~rr|xpu}||zx~rv}|lyp}z|qx|wtuzxsx~w{yzu~vtdw|}~|yxswyzt~yy{w~mz}qow|wy|vx~uxv|yyv||~zvuzz}}||rloumwt~~z}~u}z|}}p}~}~}|v{vt|xx~y|vq}w|y}v}wt|w}orwryx~|~}z||xsy}yt}|z}x~{{zw{zwvz{x~z{wwz~uv{xrtl}z{}~{|}xoz|{w~v}|ztvy~~y{}{t{wvzvzzst|x{u{|u}sqx~w}gzi||{vvq{jt~ypsvqx~hrsf|muyumxp{z}t}xrtpfpzx|isqxsmon~|yz{ptwzlxrzwvt~{s|}ysxvu~{|y~~|w~z{qxyylttmmyu}ow}tqz{z|gmukzvw{zv{t{wmxzw~mnqw{||{yywl|xoz||x~|}~ssveyvq}nz|t}y|u{h~ww}}p}x}z}y}yzzzxnz}{zz~y~y~yyx}{uw{|}yzo}tzm~|kyu||v~zpsn}uwswy||~tx|zzxwpn~vrwpjuaqqr|}wsrttw|zo{}ovpy|oeatm~~il}zvt~~y|uz}wstyx|uvgt}n}yonyyotpwms|sv||zx~~~y}tv{xp~zi{qwwqyjnw}|zoz}nrznwx~{g{~qvk{ycpwlo|{p}ukvt~yjvww~r|vxy}xwwrztsz|}{wstuztx}u~xtq|ytwxxu{~xtuwuu}tz|w|p~y~~}yztyyxvyr}}wty|rvy{wqyvwy{qvux}wnzy{vr||x}|uqu{~|pvwq{|x}tq{zu}~xuwwlw~tn}zz{ysu{~no~oqs|r{}ylenzzx|}~ptx{uqyvvxxq|lslls{u{~{wvxx}|yyzypzx~zqztxuudstx|}mn~~vbzz{xyzxn|wavnlynvtz{oxkqd~wrztlnzwmyt~uxyojuqvcvttoxt{ntavuhmvvw}q~z~zsw|{sxs~}y{{y{}sp|yvkqyyyu}}wrvz|t~}vyzy|{xv~u|~rx{l}{owy{vsxzlx{{yzs}~vzs{}~}~{pws{|~v}ss{xzqp}s||zxitrs}vy{ywrty}}zz}x~~z{}zy~}|uiwz~{vo|vyv{tvz{zty|x~}}lxyz~z|sx}tw{n{wwpwxxywz~svt{~yzrzqw{vsy|t{}s}l~xt~~z}yo}qurvxtty{t~}x~tl}wspvy|ywur|p}~ryr~zw{x|x|z}}nusvxrsyysyu}ywzzyv}wv{}{}y{|y}~rt~xzyn~pxzxwx~sw~vsyz{uu{|}|~ux{~xx{|}w{w{~|vy|}}vtwyuzysy|xs{yxuxxz|tz~yx{{{~w}y~x}uuv{wyuxuyt|ty|yz||x}x{zsy~wz|t~|x}}uzyu{{{tvw|y}vut}{}q|lwmx}xwos~~x|zu}|txs|x~tvn|t|s~pyrrqzvywxs}x}yw~v~ryw{p}|sxtxysyyxs}}wytqvz}wu{{{y~y}}x}}pw|twyuwrqvm}}pw{trwx|{|}}xzxu~wuzwuwp{utz{vyz}y~tgs|v~q{vvwsx{|~~x{|nyy~}~}zzyyv|t}rlvx{|vzpywz|{{{pz|}yzwrso{uwxu}{z{zxo~uz}{yt~t{wyv|hys|y}wzrlzzxl|vs}x|~~zy}zn{sju~j|}x|}}}{|wr|zr|}st|u}|x}{|~uyutorx|pzr}xw|vx}w{nyzj~t|swz|yxy}}spyxy~wsx{{yr|x}vu{ny{xq{yz~q|vwu}tu|oz}zt{o||l~vy~x|u{yyw|s{w{wwu~u~{zzzr}~jy{|y{wws}|}{z~z~xv~xs{qszzspyo}y{|}|yv{t~qwt{}qxuzz|yyvpyu~{~xzu~{ui{~yzqxp|v~ttov|}}{|}}}}y|uzqr|~x|w{{|p}zy~y{t{vyteup{t|xusyqwjfvxr{wxixvo~sv}trpsyurvq}wxxtvts~ztzyrt}}{lz|}prwozu~zzzxtqro{ottzqvvzcwt}qsw{wswvrzuxxvmz{uunqqtur{s}uvw~xzwu{{tzv{v{}qpyzx}zt}l}u{nmf{~y{t{x{rn|tmrvzw|~snz{svwvvyyjuu|sv{}~vo{{htxrmpz~pph}vz|~swstxwuu{t|vovysxru~}~sxusz}mtwz{oxxxwhx~}}uzxtmvz{yqvuyvzw}x}vtxw~yv{utzrw}zq|tuhyxr|txu}e{~qlzzrp~soz|vymyoqqx|tuzw{{wu~xu{q{fzwzzzu|zvzxti|jz|kvw}~s{rotvyjxvx|quoxz~u}q|xrm{|r{{qyttv{xr~zr|~}vq{xoxoq}|w|{oz|~z|wmu}zrw|sjruqv~zz{vty|tyz}}|{u|uy}pxt}{{vyyo|{~p~~xxuu|uy||ms}|ptov{qz{rxzl|syy{~xyvyzx{z|{xv|||uxvs|k|xw|~vp}uvvtulfvuzz|xuqx~}rrsvvzupw{v|tur}xyru}s}{s}o|xsp~zw}{xqysywwtq{ts{syt{{|u~~{w~wut}nzxxr{tyxumyywy}|rzwuwy|yyzszxvyu~y~sx{~xz~uss{|xv}vzuu{yxzuoytqrnstxuw||~wuz~{x|wzyxx}xvkpz}wr}{ux|u|uv}}{wrvtqlyzxnt|vwx}q}vwsy|{uq{z|yq|~~y}{}wtt{yq{tznxvqpyost~z{|v{zszyxr~t~w~yuytuou~|yy}uu{n}yyy}xz}t|~ywp}s}xv~zxv~uux|w|zwzrqx}pyyrw}{y|~{zvwyvywwj}xuuuuky}|{{|i|}y}vvqr|xy{wxrkx{y{yt|ut{yo}p~qtyznztuvq}zz~zt~v|vrxwrw}}qzx{wy{rqxxp~uxy~twdqp}xvo}u}{yu~{n{u~izsuq~x}woyxy~v{{nn|w{{qrymlzq~wwnvyz{wx|yt~|zs{}|uzx{w{tp{jxx{~vx{uwvwy|{x~q~uyz{zr|l}|{txzhmvh~ys{ypvqvyxipzoqvvw~}{skzxvxvwztrw~uus~w~rw}yq}yrntrwt|{jt||~sat}xqwsypxp~vqv|xp}||}sxt}vvlzy|swp{u~|yyyyxs{wyx{nyxoppj}{qz{~yyqttwry}mzv{zrrwmoxzr|w}rxsnwo~~svyxyntyrs}u{yvs|~zx{vy|q{t~yxuw}wvururqsn|uzvx}r}vuxw}py}vuy~ky|g}|ve{y}uyqrrxqvv}o{wyz|u}x|tu~r~fnsvzrlpyy{~vrwsx}tysym|{z}vr~{kv||tw|xy}yqvv|~xtuz}vxp{{mpuxvuy|s|twz{{itz{twxtsux|iu}srz~y}x{rx|{zwy~z~zq|ty~uvt}zzz~lw~vlmtw|}|}v}ryn{uu|svtxxvwosozwqwz{ur{yyqut|{|nwsu}{xry{|wq{rywzn|yu{~u|pztxu|st~yywqp}rxzt|}}wwhru{x}t|}|ytu~s~zr}q{{{zwy{|peuuuznu}z{~ww{{xqxzuz{wq~tpyswx}k~pqy{u{qtx~xqtux~zny|xoylnutt~wz{w}vuvuwuztvz|{~xwi{||{n}utntrrv|wtyyyys}xtxrvrpquutn}w~~}|ss{s}|wtzz}uzrt{o{yl~z|x}{u|zz{{syus~rwv{z{|zp|~xyyx{vru|u{v~mwx~xy|~z|x~v||txx|yuxwwywwhxz||y~}yzt}p{y~st{w~yyx|zyx|xxw~r|~|xuu~}zzpyy}||{owq|~x~x|xpvq{yvs~tt{uxz{}}{zxtvs}r{|x{~u~}~u~||q}xtzsr}}tx{w{pw|qzw|{z{rx}pu{z}{yyw|st~}|iy~z}ypz{qvz~{t|x|~s~{|y|zvy|{}uzuu{uvvyty}rdvtuv~z}h~rurqu{sxylwvsqs~z~xm~wvt{v}~}pvwwqxtpo|ui~x|l~pt~qwxvxt}xzs||{zz{~pqrxwx|s|w|txorw~xir{wtowuwv|tvutowzn||{w|jtisq{v{{xvr~{trxqzzkxo|pz{}zu|zs}yzvrq}uuzutu~y~t~||xxwpqyov|qyz~}{u}zstw{yrwwy|soo}{xus{{z|~|{u~|{{uw{~~vx{~}u}qr|{yus{ruo{|vvxs}t{y|zrrwkxy|xwsys~xs{~ptww{}wqqsr|p~gpvtp{oyt|uwy|x~y|~pzyk~islq}}z|~wvx}zv{yyqqtl|vy{|zt~{ysy{oyu{xv{{wvwwtq|uny}{{ur}z{{u|||yzz}|txyy{vx{oxtzvt{wxryy|v}t|vhwssqyvr|twy{yy~wvz{x~z{xwwtxx~{z|~y{y~{}tn|}sz}}|vr|x|~zukvwuz~wz}wvu~}y{}y{{{}}wrz{vyvn}{{|~vz{w}px}r~~~~u{}jz~|w{{x{~{x~zvvzzxy~{wty{zut|vx~|y|n|zzoxuyv}x~|wz||pp~|r~u}x}uv|zvzs|{vstrfmw{pp{vys{~s~uuv}xty~hsrxo~`usvww{tpmx{v|mzu{zrlrsh{twyzsiyxv}~vw|xzxsnt{}tyqwvuyo}n{|}{ly|p~|w}uvtv{wu|}{nyx|wsu{xzy}}w{~w|}wz~vzynmvzx}v|{ux|vusvs~pwxxw~z{w{z{{yvmz~su}y~uw{iryzro~yuqyzsuy|wxv{wz{~}u{vm|{qz~{yvy}t~~zs~x|otvyz|~zwzz|y}z}~|z~wzx|xy}uz||zq|}r~xyx}vv}v}|p{||}}ux~}~~wzvz}||yx{vwwsxv}yx{~o|zxz}~~zyxyw}~xzuwqyxxwx{|}zz{|zx|{zxxxvswv|uxwyuu~xr~|y{tprxmxxzu|y~}zrspqr}zox}wvt~|}}wsqxwp{xyvvyxrxuyx|t}t~{}zq|{xvqppxy}{pqwrvwzvqs{|rwt|r}|~y|zz{v}u{xqxtvzzwxzyzx}{yxs~w{ssv}{y{~zw~tz{wsy}hzy{qwsrq}ww~tx{zt{~q|bvq}z~~ry~vvv{}|lz~y{zum~z~ky~r}{pyxrvh{ztp{lexyrqstr|u}|oh||}nnzvqb|k~{x|tltv|~t~p~m{m\wmy}wwuxxowx}qrvst{z|z|}y|pqz{~{s|q{vqx}dvrzqnz|tg|r~uzyv}~ww|x}u}~zuxzx|yhx}~s}jmtxyjr{ytnvkwo|{vy}tzuvo~~fwroj||r{~rrq~qox~rv~ymqzzqholwrurt{ry|~}~}~ty|{ztyy{}txuyw~wx{}w{{}~zzzz{uv~~{{{~wytvt{lyz}}zxyyx|zrx}ywu}{vxv|sxx~|v{zyzuroq~yzwx~}~z{|{ryx}|||xuo~w|wr}}|w{tyu~r{ts~zs}v{txs{vwtszy|}~xu|nuwwz|{zv{z~s}yzy|q{|vvzs}zzx{vy}xnsvp{zy{vv}~wvm{stxztyrurv{quyptts||yx~zw|zvw|vrzv~}w|o}w{v}}bkuwv}{tzxyy{y|zsy{wsz~rttzvxw{{yv|xrz}{p~~xxv}~}|w{}jqxwwtx{{sd||nzt~~y}~}rqw~x|qyv{~n|f|w}xxyy|brlvqzyzz|t~zs{vvm}~xot~||iy~xrpqvx{prx{nwytrw}w~xrt~xuiv|y|buwtwvqpoqswpjtx{{qxz{y|z|zw|~z|}xz|}zzv~z}zvu{l~xv~t|vyzzw{wwwzyy|m{yzx~z~w~}xyyp~s|~}{~stwyzpzsmzy|}u}xs|tvzu|yy}~|}xvquusv{w}zmy{zy}yv~}~u}~}v}zwr{s{yyxx{vq~z~}zt|{~{|vytxyu~{ty}vxu~|vqq|{~|xo}~}}}~t~x{|t|tzv~zy|{omuusvy~zxtz~~{wy|}tury~}x{}ryz{psn~|}uw||y}{{yvz~qwo}w~{z}|z{y{{w{zy~wv~yv}|}yvu~x{~~ywz||}psy}y}{}{xxyotw~xq~}zsxy}~t{nt||vxy{{{rw}{y|{y}~os{}|}~v}}yxzv~{w{{}w|n}}~|t|~zs||uq~{{~usyyw}n}|wtq~vkyst||yymytrq}yvx}pt}~zz|yxrxyuyvpx~zvr~txsv{xqpvzw{nzqzy|wu|uxuxvx~{w{|{{|{|x}}}{~qsztxwzy|}zywvsr|p}p{{zr}w{uuov~wzuwysx}{|rtk{{vzrvv~j}zqrsyxzuvxqzyp}wzv|}|yqxp}~}tstxyyp~~r}vyx{vxowww~q|z}y|uz~oum~~su|uu}{rz~wtzz}swo{zzmux~z}xw}xzo{wz}|tw}p{t|o}vwzvw{wy|}ypzou}y~vvo{yzwx~z{zz~sx}yuuwxtuyuxvy~xxrouzz|vuxq{{z{w|zruvwy}t}x}}o~~wqwjjvzuwvzugzxxu{r{urryxv{qqy|qu|{s~}}w{txxx}zz}s|suwwovpkxz}wqupwzxsx{yq|}zxvr{xsk{x}~vrt{}|v{t~yts{zvt}xtu|zvwyzzhw}yx{|qy}t}w}|w|y{y}ywyuoopp~|{n~yyzvw}|s~}v|x}v~{y|u|y~zxy}mvuyqz{szt}y{tt~vsuxtw{xqz|w|}{x|s{yy||truw}q}vzx|u|w{|ox}vuxx}}~~{nxq~|yyu}z|w~}u}qyzw{ly{xp~|jx}z}{ysw~wzyyutxw|xv|sy{}yy|tsp{wyz}sv}~{}~wyuvttq|~|zuvx~}sxxtu|}y|wuyzqt{ysz~uqs~~s~v~izy{{u}}uvmsz}xw|}tz|~|~zwxsyx}mu|{xp{|||{w|}~~{|{uzsnw~mz{}{|}|z}zx}y~{}}xr~jw~|~sxxo}}|~t{y{{z|~}|}}~w~sxuwx|ttz~{zv{|wxt~{ww{w~y~p|vuzrwwxryyxwzts{{{u{~p}yu|{sqr~pssvwqxszsyz{{wzl|ypwyu}~vrxl~qyxtv}{rts{qsxzdvx}|{xwzt~|yvxxvuxrxyyqnvmzux{vwtwy|upmzu}kzz~|v}vs}wwtxw~~||x~vxwy|x~zv}}s|y~w~|xvvtu}z|y}rttywszy|{|yx{wz|xvv{|yysn}~|z~zyyvy||zz|x}}w{ty{{x{{yny|zryy{|u|z|q~zzx|z|y~z|~{uvyx{ww~~s{x{zusw{oy|{txy|yw}~|qqzz}||yqo}urnsv}y{zswuzx|~twyx~yvryb{u|z}zy|w}q~zz|~~q||}ypsyq~}}mx~|{py}uy}n~yszwmquszw}zq~}o~{||z|su}|zlq{|xrs}w}{uoyk{tt~w|xyxxxyy~w{~~w~qqs~}}}w|{}z}{{|{||~}~}}ry~l~}{xzw{zz}}y}zy~{xy{|z~||}my~t|x~z||}vw{v~y|txw~{{|{{y{~~}~~v{x||}r~wry~uy}~w~wvy~}yzyux~~tn{zt{s|xyxxu{vzxz}u~sx~zzw{q||}wxoxu~}xu{y|}|v}u|~xs{~r}~z{{~{z|y}r}|ztwty~yxzy|}z~m|qz|~sxytwzzvtrj{u{zw|yx{v|vyty{t|}pz|x{w}rx|z|~y{z{{{pvvuvyyuxz}~rwzy{yxy~zyvxv{{zx~w{~u{zxzyv|{|{ztsx~zv{zuuv|~}y{n}vrxtzwyy~qvsu}zv~wymi}zzv{u|{vyvwyq~r~pvr}{|xv{y~wvvz~|sxrrnt~}yoxz|zzx|}{{ww|~w}~~z||swz~w{u{|u{xzu{t}svz|~~{yyvw}zz}wx}|y|||wv{uu{~zz|t|{uz{uy|urx{~yu}}rvxn}xz{}~{{|x|ytu|{xzrv||{bn}}r|v|x|th|xywuy}}{w}||xxq|~||{{yh|~x~yq|qz|uy}wy~|wp||o~qxzvv}uq~v|{{xwy~p{|h~{|ypq}}qrw{x{|~zzu~s|i}v~~{v~qxuzswx|v{yw{wwzozqv~|yqux}xsw{~~~wzxvxzu}~v|tttyw~yzyx}}}|vx{tr{{ms~zrpuo}}t}|}s~ztprtwxvwmyx|}}rswzs|tz}y}{}zzsmxxz{}z|z|{xyy|{{x{~ryzwzu}v{}|vwz{swt{tpv{qzx}svxmyzz{s}sy~p~vy{y|ky|{u~oqxt|v|ww{muwvpvyz~xt{xk~y~}}wwt}~yn|zx}vuqsyy{zw}~{x{yu|uyz~u}}zwnw}{~}vwyqvz~{~vwttvyzwytoyzzt|urxzxvw|t|ywvs}vxszoy{|}}y|{xrx|st}{wwuxrwntxxty|z{pzuih{u}|v{vsm{url|mdwpyxtyvk}xj{qsvyr{|v{u|z~mvwztvw{|u|yx~tz{|uzvtvtzqqy~svy|wql|yso|rs~~vvuvutqy}wxx{t|yv}ww{pu|rvsvyy|yxv|~{|{zujv|~zs~t|y{~~s|z~qqq~|yzrwwz|~yzx{wq~xu|xzx}|vyy}yq~vw~|~{~ux{{xxsxvu|{v{x|yw{vsxt|n|~w{wzw}zx{w|~~zzw}{|szz{}uxw~~ywxv|y{tuzy{vw|xww~|zvn}}}xnrz{wzwxtw|q{yzzus{zx{z{{n|{txrwupw||vu~wwpxwoz{{}w|}x{|wv}~vzwt}wtww~z|m{wwws|~y|ply}xw|twzx}~yy}{y|u{wvwyt~wuprz~}{yvxyv{}vxwv}|{~u}x{ytz~}yx}~twp~vpspwusz}}p{z}xz{v{~|tywvowczxxs{y|}|y}ztxzzl{}xs}xtw~}~y{xxwz}|y|}|vvyw|}x~{|{yf}tlq|x|yqiuwwwxw~|}}u}jt|w}x~s}|z{~t|q~vyv|}wzvss}vtq~x{x~rx{v{zp|z{us}~zxw{wwyxw~rzu|px}zyo~u{}{~xr|y|u||x~}z|uzx{{w}~zyyz|{}t}|wvz}o{y}qvzwz}wwry~z|}~wsu|w|{||qtyu{|{zy{u{wxs}uzxyv~{rr|yvw|wx}s{oyvzs~vvu~~x~xuwp}rtzzznzx|uz|{gujz~yowvytzypnr~yx~{y}yurkr~zu{zzuvxzzrwx~z}{zvlsz~tqr{snzu}wg|}~z}vyzs~|qx~zts{yw{tyx}rwu}o{vxh|~y~osz|wiw|ywpzxsx}w{lqqtxvvxw|}qzqs}m{zn~q{qttt}pry|zx~ryvy}nrvvb|uu{{ypus{wswyyzoxswstvuzvtz{{y}tuvztssv{~v{~|~r{z~|j{uqz{z|}rs~x{roo{vypu~{v}|{ytyw}}{y}||z}zytwpzrvxs~y}~|xz}zwszxs{y}|y|yvw~zv{y}|vpz{}~zq|}{}ywz|z{z}vz}tz}~ww~~ywtxu}}tt~||||zvzoyv}v~yz{xz~|r}zx~zsnwyswvw|}yxws{}|yzyz}xr}v{yxyu|zvz{wt|~y}|}twy{zy{syy~uyzr|xw{{u}y~vv}|z|y{}}zsux{~}~yp}{y{{t{~z~rwz}xr{{v{zw~~u|spt}x|{xw|w}{y{r}~}w~~x{y|vr{v{~||~szz{t{tzw}y|uwl{{xxtvzpwwxzy~|zov{twnppxwxx|ux}p~~u{tq|vnxpxzxzpmwnrx~qov{p{rzuzyx{lz{{vzwtwqv~vxo}~l}sz{yr}wy}px{yu~}v~|y~}yp{mmw~rv}wr~}t|}}}y|~yt|z~}wz}tu~{||xwt~vz{q|z|}|zwszxqvz{|}wztzyv|q}{~y~{zyz}}}|ozwwx{|~x{{yxy|wywwxzz}wupz|~yq}x~wuz|syzz}~v{qzuz{{uvxy|zz{{u{~~{{tu}|xr}zwx}}yu|}zwxx~zu{wy{z|y|v{{zx~tyyyzt{y}||x|sxzxx~yyy{yt|v}|y{y}yw}~y{qw}|z{x~y{wx}~v}v|}~y{vz~zkww{}zuz}{w~}}~w|v}yxvxk{xtyivoxysu|q|w}|z}rxst|z|k{zwx|n{{wv{{s|v{zx}wyu~no~znruukx}|v~|||z}{{ptosququ~o|s|wx~o{w{vrxzprfowtwrsrtxy}us~wyuxwsuwp{}rqtwzwy|sx|wru{xu|q{t~utqm~m|w~{zszy{v~uoz|~uyxv{xw}{|}|uvywzz}v}p|~ut{uxytyyxxzz{rzyxxz||xsu||xn{x{{yy~wit}x}q|z}yxxzktz{|v|zzz{{z~{vuwt{vwy~zw|rt{qfw}uxww|{z{}|zwyv{x~yzzx~{~|wxuy|z}z|{~~}z|~w|t|~x{s~}~uzv|svt{x}z~{|{v}{}~z{zvxuz}wx|x{|~vxyz{yzxz~{x||{uut|~}{wzq}y~x}v~tx{oww|vz|xw||vy}n{~{~z{}yru{x}w|rywvqxxu}zrlxs{z}luw~y}n}|r}|yv~xuovs|sz{uzvwuxzwxtqn}r{uqz{vpzsy}uzpvky|qstx{x|xp~s{ws~}{pt~q|yx{xv|vz{}~|{zxw{q{|}p{x|}z{y{l{vtmq~uyv}uxztzyyxuvlo~yzqznspzvl~rzys{wt|~ncy~|{zvszv~|zzuxyvzys}rz|w~tot{wwxx}ths~sssvz~z|~x|t|~v~{uv|w{}y}|zy{z|zyx||}u|ux~~z{w|{zv{rqy|pryu|{n~|uvv~qxu{n~ts~v{~w~swzxxonuus~x|vuy{~|s|s|{u|txww{{w~yt{}s{z{x|{tuyv||xows|~my|t{~sozw|y|uzry{ywrvxyzy}wvxs{uqs}zzwzzzm|u~xvyyxy}zuydyuu|yvz}xvuz~tvu~|z}z{vszv{zyxzxz{{}z}y}|x{{yy}|tz|us}~t{zyyz}zw|~|ysvwzys~t{||~zr}xxxwxrwy}uz~z}w}}y|~yws|v~}m}xz}{zzw}z{{{wv}|x{u|yyz~y{|pqy{|wz}q{|}x~z}}|j{}uvy}{z|uz~u~y~uy}{zz~}w|~~|uq~~yv|z|ysvw}u}|y~y~|y||y{zzxxu}t}vywxyvs}tvuw{zwvzsz|wz{x|tr|}{~y{x{{z~{~zs||~|v{t|zvy~y~uxpzywx}x{xzyvyzxyzx~}sx|uwvyyzuyyzwzx|sg}z|wszywyrzyy}txb|{ur|sxvywvzt~q{}r|z{sywxs}r}z}xrlyxy~}|{|tvw}vz|uts}{x~xtz|vtunvswpuyw}|~y|uyx|yis|zuwzw{v|zsyuytr~u~xnz|yswy~z~|~{zx~rysxz{}{}}{}x~~w{rvs{xvx{~~yzw|y|z~{yy||{w|zz}{~wzwxz|y{||v{~vz~sxw|{v~}x}}vy}yvu}xx~x~z|||u|y||x{xy|}uu{yu}~{z|{|v}{{|z|xwxtp{p}uswurtt}~|v{{|y|vvt{tw|~zusxlwrm}yw|xyyuo|rzx{y~wwztuyz{{zty}~xwwyr|zut{}||yz~{y|q{z||xvuxxv|{yw}|mvx}vz{|}wzx|vxzzz|q}uymytww{szhtxuqs}zr{~xwvg{qz~sz{p}|u~~wtvyyvzvcrzy}wutl{tp{uxmzxxp{x|wz|trvmwysyxw{|r|}~|onu{zyq{uvxvynuolqyurtmzzy~vs}tz{}gpivxzw{xtl~|sou{~xopxz|ssz~m{q{x{tso~qzo|{qxz~zruvz{s|wx}}zzz{qvyyttwuuwuy~uw|zosyxpwxtw}oxt||nywy|q|zu~tx{}t}zhxiiw|vuwx{o{{krstzx}kyruw{m{yxlyn}uxwx{oj|wztxszo}zsss{uw}yrhzxqvtw|yow{~zyuz~u}~vwqw}tw~sz{u~|vx~yruw|cvsu{{s{x|y{~{~{xxr}y{vzwrwm{ryw{r}{}{xyw|}{xvsxuz}u{}yy~yzzy}u{|t~yqzwyrz|~uuy~|o}utx{w|sx}ywtw|{}xt}qnrmorzyot}|wto{rxu|xwywzyzvqzxyzp{zw{{uxrsyrutryywrvwo~~{|~vxqyxpyppv{{{~pv~utv~~tsz{s|~zu|sgz|xylxztswzlosuu}zyy~~uwozpx~tpyt|xq}n{{zvys{uu~xwwy~ou|{y{xnlmo~p{wuusqzp{|rrw~}{tyxnxw|{}uzuxwzywxs~^t~sz}|{tv{uzy{}}vo~txye~zyx~xy|{{|~zq{r}lovxynyyqrwsuxiyu~{y{zlwurxuxyy}wuzytv{u}svvx~wt~{vw{xyz~swy~}zrx|pwx{yz{}uxx}}{}|{zuz}zuytwysyuy|x|tz~p|}zzyw}~{{{xzzs~~xy{|{uv{xy{v}~~u}tyvy~v|~yyz}~}ty|~uwu~puuzy{u|xvy{qvx{~tzzwpt}xzzy}|vr{sy|xwvzxx}v|smt{zyrqw}w{vwuwv~rxy|{~vwsz~w}u|{{w~wsxxzx|{x~w}~vzxzxx}~}xvv{|u~puqxovy~~o||{{w|pzwywv{uxy~~}uw}smpswy~np|uy|xu|u|ytz{p}xs}|r~uw}us|ziyv~yiqvvz}vv}yxz}}tyuug~wx|wwqxuv|}uuv}l|}}~pxwzpq{u{}z}tu}xuoqutg}y}tosvnz~yv{ut{zwxwo|szxtstzzxuw{xwn~x~ppz{|yuryxzi}~ywz}u|vw}}~{pstq|zwv~{sxvt}yuyx|uyur|}yszvwqrw|z}vu{wtvxzo{~u}xz}x~wytsuwvrvu}yv{wthwvu}vzw|xz{qrux~uu~{}~{w}w}qyw|~svp{nsqtxvvpwsxw|~{q{~ttx|v~z}ruhwuup|puys}}x}ozs{yry|{nzvwu{s|u{{xwowzrx|svtyozvwyqoo|zvst~xv|w}zf}|}z~vqxy|tyquqxy~{yu{}zq|rwuouyt}rz|||w{}~|{w|{rzvuwuxuqyuup|wrxws|yq~s|zw}y~|ww|tvx|~|vsw}~u{zw|w|xs~vrq~lw{otx}v{{ly}ulyu{wuftysx{ursvzyvh{x{yzwuzui}~z}~n~|~r~yx{}|x|}qw{psv~{wut{{vyvvu}wzx|vrzz}~nw{}w~{~|}}z|yz|xy~~~zqwyvz}~~ys~}{txvx{u}}s}~yw}~vwx|ww~~yt~{}zzs|}v{~rz|}pxvp}wz}}|t}v~{xv{y}z}yw}{{{yx~{{~y~|qxz}u}x}}|yv{{w}}{swzzu{|{qyz~{xvtx~y~}x~vtwwv{}{spxsx|u}|wsv}sy~{q}wyvs}z||~r{zw{z}z~}u}|yytvx}w~squ~z~~~}pt~y|yvnyw{uxsz{{zy||w}~||~rxvttyzzywyysqx|y{x}zvtwj}~vy~}ywxw{x{~rpz{|z|yp|vx}{zpt~~}|z}~zp~|}yxx~xuz}x|x~z}~w~}}sws{y~y~{}ruvvyy~}yzv~vvqu{wy}y|}x}vxzxqx|zx}zy~{v|zxsu|yxzr{zu|u~t}x|||z|w}|||sv~uwzwntzzz||nsx~r~||xqzzxz|{~y~{|zx{x|{{z~~}y|z{v{wvvw}xz}}y|{z|uwy|zy|sx~vwwzz{}ruv}wyv|zyvz{{{vuurzsvwt{yyxxvz~vzz|{r{v{~|vz|~p~{|xyux{wzv~syyzmwzu}~wzy}yyxw{|sz}~}vzvz{wzyvqzwrx||~wsuz{unv{ztzx~w|z}~xyuw{vzq}q{v{{zw{{}}swysvwvvxxz}{}wvy{~z|uvo{|{}yz|}~swyxy~rtxuzxr|{rw{xyv}xz|t}y{}z~~z|v~zz~z}~u}|xwuv{{yyx}rys}{vz~yxouavyuv}|}vzxpxv}zwyy~z}{~vw|r~~{~ut}xy}ty}zz~zr{y|oww|rq{|{|}x{~tsy}tzru|z~u|lxx||svw|yxwk}t~tv}iww{sxwtsy||z{t~|xwyxl|~y{yxstt{x}wvu}wzp~q}wz~~xuxy}xvzzvzqzt|s{|}yyy{z~swxovtwnyv|}~xyq~~vo|qozoz}zq{uryz}rwvmpusuyp|tyuzpm~spizoop~wq|ovruzmsz|{po}zz{|sl}x{gizmxsvr}v|~kp|zx\oeujfl~mk}rv}tevpxsus{xm_x|u}hqwn}}sztwju{vp{z|txyyw~r|julpvuw|v}vymkxx~qo||~xzar~nlzxu}y~vxuvsuluwqxpp~~sprspvvsx~uwyz|wwt|}}{t{{nfywu~zq{{kyqsuyqri||vropyzywmtsptqszaxuq}w}r~ukp}suqzv}ttxvxosrww~wvu~su}upw{tyvquvuq}w|zxxyotquty{t{u~w}xxwu{ovvvxzvxqy{r|w}txy~l|uzpxzuz{t|s|wwv~ozxw||qxsrwx}yxmzxyv|zvryzyquyxqwzw{{wvx{{qx}tvu{{px{z{{{yqv|yx{y~v|ww~swxr}y{{zoxw~~}wpxuwwxupus|usu~x}{pz}yx{sz{|~|s~zy{vy~u||}yzvv~nyz}~}vwz|v{}}s}yx{{u~n~{v{rx}~|{|yv~tx{{{zt~{tsz|ux{w~|{~zsu|u}xto{{{zzxwxyxux{vxzzuwvwzyyy~v}zxyr|{|y}xzry~|s{x{|~s{xxx}u~|~yw{tzz~z|yn|yqqx~zwwt}~v|qyxrz||{ywyu~{r~t|vv|ws}{txxyyv{~x}n}xyx}v}_k{x~xzxywvt~s}uyy}~yy~z{q|zv}|wy}qytq_|q|~xrwzvmyot|~itvwtvlr|n{mohte}suzs}iz|sLu{}yywvz}|zkqu{rxny|~}`ttxzfpszhmrgzyof{}{u{|{yry~zlvzx~v}ps}uxqwzy~rx|n|yr||{z~o~uw~ui~|uwx}z}rxo|~{px{{tyww~x|~o~|w|xy{|x}~|xpvzqu|rxl|vz{yr{{rgvz{t|{xe}qs~~{eqr{pz}xzvtupmxwxr{wwwx~xmx{x||{zzw{|~xzu~}}s|yv~x}|vw~qs}~}owvss}um|zzy~t}zx|q{{uy{t}{wr|{t~{ytwmx}{xoz}w~z}yuwr}{}uxwx~t}qz|x}|w~zv~lozvzym}ow|wy|y}u{r{{{}|xxuvu|{xx~}qxyx{|qr||{l{{~tusy{]t~z|xtzs}w}twx{|x|z{~~w}{ytyuv~~stsvsmxv~vkozxkuqryymu}rysuyyqvp~{~x}}rqw|}~~tx{wrsnxkzutvszsp|~kv}wzz~xnow{~{~}{~zyW~}}ut|etzmwvs}~pnx{}z{j}squuT~w|uwu{~prs}u{s~}y}u|y||}y}z|tw{wLs~}~|y~wy{y}{v~ylw~tqylvz~zl`|m|uxoxuwsxx||suz}~yqrx{qwz}xy}~}~uyv{v~xw{{ows~~vyx~yxwxysn|sr~l||s|~}~rwy|xuvvz~vvtu}zw}vt{}uzu|zw{}~yqvq}wqyz|w}x}qrs}}yzu{rzuyz}|w}y}{~w|x{xzx{xv|w|yy{zvx|x{wxvwwquzzyutz~rv~wy~s|u{uznmq~tyv{sztz}tyzpvw|p|ovxww}vvz|}xvxxuypsy~u{|p|}z{yw}uzwjmztyylzxzt{r}wsu~s{x}z~y|s{~xurnyxxvx~u}}w{zustk{qozqzuwq{~}}||xzr||{zwz}qyqz|{{{uowv{vy}uzy}zpyxwtru~uzszx}wu{rr~svwz{ywt{|zqw{|wus|~~{x~rt~suz{tt}xust|x~{|}oyunzsvx|wwzsry|z{yztzquz{z~tv{ts}zxvyywp{y||~{wy{w~zrx|xz{z~{y}|zxyqyux}~w}}~}~w|~}q|x|s{y|up~||{w{yy~}zv}sw}|z}x|zyq}{tuz}x{vzy~xxwt{mowtx~|vz~|}}uz{xyw~zxy|~}}yyvyy|uyqz|~{}q~z|}vyt{}}|{w}|tuwzx}w{z}z|{z{}|yrw}~~vv~{z|u~z{uw{yvwx~|}x~~~}|~{|}zx}|~z}w|yzxwuxxx~{v{xt{v}wx~{r|xz{tuxwx|v{~}zxv~x{z~w{ux{zu}}~{~xvv~zx|s~r~y~u{||tq~zv}~~xqxv}yz{r}}z~y{w~{zv{~yw|~wzxvz{~u{~|}}{}}~}|v}|x|zy{xyt}}|z~x|{|zx{rx{w~s|{w}yw||y{z{v{}yvuvt}yxzy{z{zx{z{~wvyy|zyyw{u}~zuz}z}}x~vzj{vwxp|z|t|yy~yy|xwx~sz|{xqutw{~oszwxxtz~{x~{v|v{zwzzxrx{wyw}}x}w~{{vz{|~~u}x}u|xyu}wyuqs||s~}~}u}ytxxw|zvu|pyz~}vx~~t}yy~|s}y~zz}~{zyzmq{xvv|tru|xttzszussyxu|zz{|v{~pzu{wy{srv|||{~t}sztvzzvqut}wvz{yvwsx|sw~py|{uuywx~v~~{zp|}|tu~xyq||{zzlu}zut}~nxxtty|yv~wpvu{v{ssxu}w|tv}{r{}u~y|zu}xypsvuwyvyvtqrr{wuvxxy|x}|~{{zyu}|v}y|}y}z}~|}y{yywvw|s{|wzux}yzvzvwow{ow{w|x|vuuzwwzwnyqy}}{~z}w|{v{rz|x}}}~vvvt{}yjtozzwyz}zvwztu~xx|yztntywos}rrz|zl}zqu|{tlxxv|zp|~wr|{|rq}spm{owx~zq|upx}swxs~y|yy~z|z~wy}~zx}lvpvte|sxiyqslqtr~uxslyuqv~|zsvsqxylrwv}jvmn}}g{~nux~}zvwwxgxwzsvwrx||ym}|ru{xw{rxy|z|vpvyxywlv~v~r{yzt}|vyxz}yv~zv|yxyvuzsnvp{yyv{xyu{syvzv|z|~vyy{u{ur{rw{{xlu|~}zvz}{|u{yuvzt~qzwxwyy|~{gz}rrt{yuu}zwwu}y{{ztx}vxr}uly}z}x}z~wrvztzu{ymxu~y~|yztzzw}wz~w~yzswx|{{r{wwutvtwv~y~ttpw{uzx~|vxoww|ltwp~|yuz|wr|zyzy~{}yux}vwyu~vwy{}wnxy{tsx~|xuyy{xw|}rz|x||spv}to|}txu}y{w|ywyyw}wrzv~xqxz}nzzz~}tvoot}t~wyz{||r{p}tt}|}{w|zy~yyyuv|x|q}y{uww|tq{tw{szsyv}z}u{|}~{}||}zxopn~yxzrtx}y~|~yyzyrr{s{{r{{}|r~x|y|t}ryw|zo{}v}~|x}}{~yxpvrs{|}}zuw{|wx{}ztw|~}wsw{z~|~|xyz{u~z~{ql|wzt|{usvr}|}wu~u|yw}}|ov}ywzz{t~ry{yyu}||t{x{{s|swu}~y}x{}tw}wu|w{{}|ymtzwrzyvwzxo~sy~~xyt~u{u}zx{wwwnzxvwq{rsxyyu{ztuyxwt~}outtx{u{|zs|y}uwz{r}}|v|{y{szut{vryvw|{{ujr|ws~~ryr}y{zytzzurv~y{xrst|yrrx}rvvy}}}tur~xzq|uzxxu{t}txxw~v}xxwz{~w~xrw{vu{zxsrrvy||{zv}vz~qwryzxyy|q}sv~yyu~|u|w|q~{ozrt~xw}ozp{zxy}s{~t}uvyyu~}yxzzvuwuy}s}}{sw|s{{{}u{~qy}||u~v{yuw|}}u~}~w~z{~zv~{}wy}t||wv{ww}x{v}{uuy~~{}}r~yy|}~z~~|{zx~|qu}}{xvvx{{y{|y}w{{vzyzy{x|y|~|{z}w~xwzp}vqzy~}rt}yvzp{u{|y|vsp|||}wx|}typn~{}|}{n{}zyqxztzv}{~{kn|xwqqzz|{y|rywq~z}|z|s|~zsy~}y{{||ksq|~x~|s||||swwr~y}x~ry~o}wyvww}sy|yn}nvrutzyqx{{wtu~xvryyrpu|zxo{rx~h}u{yyvtu~xp~|u}vy}ywxrts~r~sywxy{~xy|~}xm|wz|}wqutw|wzt~}|x{}|t~{|}x|}x{ww||u|w~~uxrwnv}{{mv}y}ztq}y}zt{z{}vq|z~~vuwly|xtx{xxwz}y{}v{}sxzr~xp~~}ztq|~uiwq}~{{yrvst{vpu{v|{~|wz}}twyuyz~vzyytw}xq}y||yyvx||{u{w|{||sy|r|rzwuy{y~huxwvuwy|w}y{uy~~w}u|tyzrvyxus~}vzytsy}znwz}ursw{wio~}my~rwsu{v}{}y~y}qxuy~ixrvvuu{s~zzsu}{zw}py}}ty~vy}mywyuy{wtu{s}stxyiyoyupx|pwx{sy|wx|}vx~}vyu{wy{~xm}|w{z~yzuvy{}|tyosoht{xp~v}p~{lyztw{}{q{zm|wszxr|xn|}wvzlhzyzxytuhyuzvhnyvzutew}{xtvzb}|~pvqz}uo|q|qp|}{pq{{houu{dqry{{vyyzv}ss~mxx|r{}}xu|vz|wwwpyq|p}u{yryz~wyt~||wyuv{{xu|sxzuvyuzy|rw|sxlzrwzq{}qz~}suqxyvw}|uy}}|zzq|{w}xryyypy}~z~rxzytu|wzuyxsvsv|p|xzsz~uwz|{x{wz||txqw|w|}mzyw|~y}|zsq|yqz|~tyqut{~zw}z{x}|zwvtyvxtyvzxzxvvx|~vxv{}ywzxpn}xyxxyzty}|{xxzq{vt|xs{t|}|{}y}y}xr}z||yvwnzm|zyly|t|z{|{yxw|ww}vx{y~}~{qv{wpx~n{yzxxw~zurrwry}t|{zs}}}vu}uwq}vw{xv||~urxyvvy|xzxzl|y}zrtry{o|v~w|xot{xzw{~vs}yh||p{vt}qywsvttsuqr~w}x{|rxpr{z}s|}z}xzmwuz|{vxr{wzz~~}~~z{wsr|vsyz{luy{w{xyy{ox{tttvs~{~vv~}w{sxsut}|us|prtzyphyzzxuy|kt|oywp}|{u||gwp}uv|zvw|s~}~}sw{|zvtu~z|uywvn{rz{vzvvw|tvvsy|z|wvr~xw||~{y}{ywxprvr{}x{w{xszum}zqxw~v~zt}u|v|}vx~v{u|{y}rzxwu{~y{uxp~}{yupq{{yz}r~~zzzxxx{|s{s}yz{zwu{zrt|~ttwyu{xz}~vtw{syw{}vo~~r{|t|}}w{vyw}xuxu{rys|vvsztv{|vy{nx|{~t|}uw|~tzros~rsu~{w{wx{}y{vyyuyuty}ur}qy{w{}uqyhp~|}yv{x}y~wy~~wv~tq}omzw|{z|uywwz{{vtnty|ztkvurwwrtus{uw|}zov{uv{rswy~qyh||z~x|lnstt|x}s||ysywww}z{w~|py}vty}q{~rx}o{w}{{{zqww~yy~xwtzvyzruws}ww}y}|vwqw}utntxw}~z{xz{nqxsz|vyxsrywyv|xy{|yxq{||vyv{{qyywxsts}|r~vy{wttz~uxr~uvquywvq~{w{yuy|w{vwv}zz~ty|xyxzswv{||}}|}xkvxz|xyz{|wxw~xxs~}{{vvzx}xz|y|u|w~z{}r|}z~zx{y{{{x|||z}xtyvz{yzxwyy}x|ss|zsy}}zzzt{z{~}z|v}{|zz~uuwww{nx~yyy{~xw~tz}v}uop~|nttyxyuetyrpsmrw|unq~qvwx~vu|{o{~v}x/}lo}z~j|r}~|pyqs|~pyt{vrzqz|z|xm|}zluww|qgwx{~l~[{qytol~szzptwpls}s{un~npxp{yv~xnruuwwuvqowv{prz~r{ywtxzozzzv{mg{z~u~~s|}zs~~sxx|{qww{y|zxz{]~~sqx{r{y{{u|u{ygzqyzzvutx|x|o}{ux{vx{kvw{{utk}kvys{vqz|{zumvtjwzvzz{jyt|y}nr{ssovx|zhzyspOsryul~uw}e~oz}w|ptvn~}~unrz|uxywuwqwzxuv~vywy|}xxq|o{vxuuzywnw}n}vwto{m}totuyvpqu|{xr{wsv|qvowpyzz}mz}snwmzptxzvp|}vyoi|xipvl}pusovwxhvyswwx{ruumyvnnxo{~zv|mutuzoru}rsu|{uw~tywy~}szt}x{u~x~t}xxyzzwzr||rvxqxwvz|u}xu{y|u{|{uwwz{ruxq|sxvzvy|zvr{zz}~|r~~||n{{r~rwqz}|mq||~zz{ouxz|}v~zrsr~o|s}twz}{w~~vxuwxvv{v}zsultw|}yx}|v{u{vx}vuyyzuutpxquty}wx{yuv|ux}~xz|qsvsx|z}x}|~tz}{{y~v||wuux|{yw}uxv{v~~vw|vxw~}smo|vx{zvyy|y{|u|tx~|v||{qre{z{wutwww~}jt{|rwvzusuux{zsy~x}tv}xv{|uyxz|t}{v~xw}{w|{}zqpz|wl{y{||w}y~|xy}uvzxz{o{~~}|}|rzu|{r}x}{xqtv|yw}uzu}wu}zz|vx}y}snp|vx}x~|{{yz}xzzv|w|xpyxunvvrs{t~s}zqr~xzwzx}y~|{s~wp{w}|zzywwzwwyt{|xwvvz}vw}^y}{xv|~{~~uumtwvr}yu}qrrut~zxz_l~wxx}z{xlyx|u~xo~|ux}x|otz|zyp|rzpp{zvs~~uv|~vzvty|wyx|x{rxxxqusw|wtz{yuwouv~|v|y{suvq{stxyy}x||l}v|xr~~x}z}z||}ys}{yo||w{uvuyyuqzwqsu|y||y~vzst~}y}y~utt{u||pu~{ss}k~}vr|z~p{tzl{s}~rzu}yt{}vxt}v}wlwz{ws~v|w|szywz|x{{rs~~~{zsxvw|ytlqyt|~}}u}z|uy}yo|uxy~t|xst|up{umqz~y|tyy{y|{uqxtss~|x{z}yu}{}y||~}{y|t||u~zr{zzwxwwwxrt||r{vz~|vv}wvn{}{}slxwzmz~~~vy|p~}suv}{y}}}y~|wuutu|yz~|y~zz~yzv}~}qu|w~}z}}|sy|w{z}x~}{~{{|{yz{{wyvw~|}}t{y{yy{w~zy}z|x{zyr{zzx{~zw}{~|t~~}~vxysw}{vyytxy~w}vxz~{}y}svq~ruvyw{~wr}yz{w|yysxxxts~ywwy}wyxz~xxwyyxyuvo{|x|yxr~qxx}tx{z~}|z~zu~rzrxrpzswrtqvsy~}}z|{vqxsr~xx{qv}vz{mtx}tw~uzm|z}ww}vwx|{{wswss}uwxs~{|{vwpz~zxy{~ywyv~y}yxy~|v||~{upv~~}s|}~}|~z|~{|z{sxxz~}xtvtz{|xs{zz|w~z|}~uxyuz||q||yz{w{{}~~r{vwrryt{yw}{u}~zy~yyvwv~}y}qx|}wvtz}yvy|x|zzuzv{}|t~tvxzzow{vwxzjyzvx{|}{v|zxr|rv}|vzu}y|x{v}vzwu}z}x{~v~|ys|vlvnqvzurup~wu||swzyqy{wzv~yrz|{|wwpyrzqzx{r{vzywvvynu{wuu{o}s{yzuwtzzzpzq~u|o{{xy{i{y|vyu{uv~rux{wy|z|y{w{wzsoywuyuwq|yzy~uxu|{ww~{|wzvvvxzpuzvyv|{wu}zvuxywtw}{|x~|{uwxtx{{{~u|w}yt~ztyqwv{w}{y{ztuzvxvqx|vw{suzu}uyx~|zt{y}}vw|}txyty~vzv|~vtnvqr~vswzry|u}yyuw~~v{}txz{uxtwx}~zx}w{ruy{x~|yy~{wuyz~|y}ytw|}wr|up|wu|}||{wuzzyw{y~oyyw|zs{p}zoz{xvyrz|zryy|vz~r}syuv~}vx}zsryoyx|rutxtryn~|y|{~k{yrvqrsqk|ytk~yst|w{ss~yulxx}xt|~nyt~~y~xvu~~~|{vzuyy|py{vz|yy|xtw{}{nruiu}wrzy|~ryyypxyxrt~zuq{vlswsw}zyvqx}vwvm~}||zw~n||}p}wy{{z}r~x|u}zxt{|y{}ywzxu~}z|zv|p{~wt{{w~}uy~}~y~~{|~}yxtryx|zvuvvt}u|z{wzxxny{yzv|}yy{z~tyz{|z{~wwzuy~syv|z|xu~zx{~{wtvxp~{rz~{x{vvwtsz{ssx~xtw{tw~yzt~u{|~sxy|uz}uurr|ptt|vw|qyzzz}}|syrzzw}yvy{xxxyz{{y{}yw}y{{xru{wwwr|ry{uvvy|tz}~wvt{ywuzuxzvvpsowzxiwwzs}}zux}w~yw~{u~}|~~wszyzu}zxx~|{z{v{}z{{ww}uyz}~w}xy|z{ox~||y|u{}xzxzwsr}yt|xxzz}{z|rz|ywy~uzx{|w{x{}wnx}o~yyx||{z~y{{~vxy{v}{zuxzzy|zxx}~t}{}yx}ryr}~{yux~x{y}{{|ny}xvxsv}|uwuyyt|}yx~~wuyyzyvw~yv{{|v}w}r}yl{wspw||xz~zz{{y|wv}|~||yo{}wzz{zy~z~zw|svzyuyy{~||ty~}zx|zx{wyy}}wwy}zzzystz{s}{yzx{~z}|}o}y~zxz}{|w~{~x~wvu{u{|o|u{x||xtyx~|v~z~ww}w|x}}{{~rnyzx{y|{}x{|y{z~z||r~x~uuxsvylysz{yw~~zu~|~xuxt}{zpx|zzy~zxuvxx|vx{vyy}|~zy~w~~y}|}wvx~~zf}mut}}{|zis|yu~z|z|}ux{{ypzszyoo{w}|ptoz|vt||u{qusvorp{{{ztyx{v{}{uyzz~xr}swt~xvl{s}|zxwx||zx~}xkwnv}vsyq~nxqupv|{zswx}wqwz}wwt{}~y||vw}x{vyzv|qv~y{q~}wszx{{~yt|zmwy{vw{syvt{~z}x}}x~y}~~y}y~z~|{wzz}|{y~}l|{~~{{~zs{sy{v{ruu{{v}}~wwy}xuyrw{{w|{|}}vrktqrp{lxu~uio|x{{|xrtrwnv~zt|wu~yywgwws~sk{{wvpnvr|ovuy}wky|wotq}vz{xswyry~rrutzx{|y{yuzn~|nw}xlz|jyp}mk~uq{w|rh}w}wvsyvyzzz}u}|z{|ytt}m|v~vs}w~rtupv}vxyux}|}}txrq}zx{zxrw|ww{|y|zy{|z~}zyy|~v~uy~pwxrtx{~|zz{wwy|vwz~xzy}~wp{vt|tx}trv|xw~twz|wwzz{uq|w{xzzywuuz|xw{wx{}xzuw}}z|z|zrzyzw~xzzuz{{xyvw{sz}sq|zzwzoy{ipr|yy|x{~wz}wx{y~tzqntoxs~u~yluu{{r{wx{z|{wqky}~~w}p~}zfvs|||ivu~xovm~vk{uvyzu{uquszt~xtw{}ryw{vuzrr}xsup|nrp~~zpygxwwsp|tqr~wwzzuwyv{~v|}qvz{qx~z|{t}|sxzxszyzo{p}wz}www~vwy}z~|xuyywwv~wxv{vvxqr||{kyuznxxy{~x~s}zyorw{uzs{}{xxxy}oy{}{svv{yo|}x~~}lryx{{vx~z|w{x{x{xywrzxy{~wwpz~{uuvtzvwwuqywxzrxyvzu}{}uuyryuyqq}xn~vr{|y}}||tq|w}}z|t}zstswpvuwzy{z}uuxz{w|{syy~xyzxzzx~opvyr}xtutwt~vzzvwtnquoyx|~y{t{wyy|w}u~~yrqvvzw~yr}|{zx{w|}~zux{zzz{xzw|tt{}|}}zrx{z}|yswvy|w|tzwxyz~zxutzzy|v{yz~vzt}{{z{z|}}x~syz{syyzywvtw}~zu||~~ytu|vxxz|z~xu|{x}zvt|w{zy}y}zx{vtzyvuzpyvxtzt{|{{z{t~swzs~{|{z}{ury}||qxv{wr|~vho}yrpzsx~yz{t{t{xxuo|~xzzs~wsq~xw~}wwzmx~{xuxw|twuuzyt|x}y~x|myvzquuy|}~sp~zr}~{~~ry}yypuwtyrz~z{xex~t~rmyyvyuzzsyyzzy{kv}v{|{xonyv}z|y}rzttxutu|z~wx{}szx~qxr~|z|vvux|u|r}zx~z|qxyyq}v{{zxxwz{tsuzttp~ywzpxwz|zwxrx}vvj}xszxvx|}ywy{yxxpz{{sxux}i~v}x|s}{}qvtw}{w|yx{{zrzx{z||z{ttyxuxxyw}z~vu}|svq||zu~ztz{zvwrz~~suvv{{y}}~~|y{uuwxwzzwzv{~zs|stxvz}p~tw}|z|xuv~}t{pz}{xyu{s|{|sy~|||wyuxs~ysp|qy|v|wvzw||z{}|yxztxzu~wt}wyyw}uwysxw|jpqwzvs{{{w~tz|tv|ynv~x~yw{ys{vwsuq~w~{~{y|mypv{rn{x|w{yxuu|roz}~tzy{wnsqytg{~wno|xvpvs}wuv~t|q|zk}zk~ltpr|~ypuzvxrszw~wkxxy{~}xrwu~wszmtmw}rt~~sxozos~ryvtlymzvuu{u{zqus|wuwxpw~qlozxowy~zyz{|puz}}z{}t|ustuuz}{{vs~|qqzj}ys}swzur{uuszz{}}pxyzv|wwu~|{vx}xovv{q{x|t}mlwy{yhwq~zzrvzuvx|z~|w}zvyuvr|{nu|zzv~{x}~yvzpwu~{yvy{zt}}s}yzu|r{zvuvryvz|z}wvyx{x|z|~|xw}|}|uxxzxzs}sv|xu|{tyquow{wsytsyz~|sy}ys~ww~y|z{t{y~{wkyy{x}t{r{zn|uuwyrw}x{p}}{yjwt}|zn}}z~~}~x{xy{{||s}{zx|rx}uszvx|vx|xvvuovyywr}q|xsw{pwsv|~{||{~|{{|{wyxozjpzs|{royrxqzo|~yt{wzvzxzuvvuo~uwy}~usxxzt{|t|y{}vuzrxwwxp~w{uxyv~qyv{vr}uztg}zozpowx}ptvuxt}|wu~~{p|rwy{wrvslzo|{mxv~ws}}x{|yxz||z}{xwstuvq|syzy~|x{v}{w}yuxrtwx}|ty|y{xxsvnv}}u{wxuys{vv|tr{~vwrz{|~uxw}uytoy}y~|w}nw~~ww{}u}r~zxxx|wu}yyzuvx}vrzxxw|txzu}ww{py|vxwz|{wv|u|{zusu~{o|uwvxovsbx|yystyvvyz}xxprwrw|vtst{zxv~||x}ywyv~q}vpr}~vw|{tr{tzvzuhwtttpwwztyt|}{xv~{szxsqtqmzsq||jjjqxvrrtw~v}h~}v}r|syz|ix{uy}wv`yxxuyw~}wqvus~ywn~tyvvu~{wpsox~wxv~{o{wyyyw}z~vzoyzzry{|y~t}}w}xzu|ztxrwv{v{}}zu|zwoy}wv~yzz~{~uoususw}|rt}rywzvur{tvslt~{u|x{{sxvq~u~{{{{~{}zv{s{{~~zxt~|{x~{z|~~{|}{x~{uurm{i{up~wm~{ryzryzuzzyutv|v~x{xzy}u|wtwx{zxyz~uk|{zwxwpwwx~wy|zus{}wxuqjrr}yu~{{wwvy|~yzq~}}ty~y|x|r}jx}~ysqrqwy}vtuz~x~|q}wyq{vv|ux}~z}zpyxu|mw}zo~ywu{xzszmzpxt}{{vmxt~zvyz|~tm~u{xvxvxt{z~}~syz{txtr~ptw|y~uw{~|twuwwyxqvw~vw~s~xt}w}r~zq{wm|ww~|y{|pvz{~}zvyxyvw~|s|}w|{xyhozu{xsrry}~txxouu~t|t|{vu|~wxxv{q|{zx}ux}~y{wvt~sy|t|xzxqw{{xv|r|}|z~~w|tz}y{{zvxyyx||{qz~t{~txv{{oq|v{ytsvwx~|yzzwy}yx{||yz}{}y~r}xxyz{vyu~}wrsvz}r{wzswxz|tu}z}qw~|v|x{x}t{|ys{|wx~x{sz|}}v}xzsv~tt{}x|x}wy}zw}u~v}wxvyvrxyz}zww{|{t{wqw|}v{z}o{x{xe{x~tnu~|{wt{wt|mx{}}pqt}un{vr}uvxqv|x~~{uwstx}{v~{}rvln{v|ny~uv{tv|~usszyqr~y|~p{|w{y|to|~twxs~~otxq{o}zfuppr~zv~usq{r|xy~t{vxo}uxz}~z~v{}yxz|vtyuq|y}x~|{}tvzvyuzz{xs|}r}pz|uwy|}{tvz|z{uz|~}|s}|yzx~w{srsuxy{|w~~{r}kxz{{wwxx{~{zxzxw}xzv}t|u{}||{{yxx~{v~{w}{{z}{xoo{{|xw{w|{zwwwwyuzz{v|x}vx|{qvxyz{yz{zsuxzv}xz|s~{z~~u~~wz|}}v}{wzs{v~usvwu}}{tywx}wv|}~x~w|{wzwx~z|nz}|~{~}rv~s~~~x}xz~|u}sn{qzzy|{v|{t}tw~xw}vu{zwuw}{uy}|{|z{tyzywsxu{{v{w{v~tq~rzx~~y~{y~|{}zxs{|r}|wz{{wuzw~{ytv}psyqrpxsz~}zoytuw|}|~u}yz{vu|~m{{zxzx}y~u~tuvz}rxq{tuxzwrwvvy~uz{z}s{~{qx~~zxtuyqv{yu}{vuu|{xzyzyuzyxtuvz{x{{u}|tw~~yvvv~~{v}|wur}zxx|txtvyrzw}}}{~z{|v{{r}zptuuyvzso{x{vt|}jyv|}}wzz|{}|{tz|{wv}xyv}vtzwxy|syzwvxtz|wx~u|~|x{l~{w~xx~uxzxv|pyvx|}||v{zvvz~|uy~sl~uzwyyr|yyr{uxzxv||xx~mzsxy~tu~y}rqxxyzx}vz}xzx|zsx|wo}pvyyuuv~{}zyv|~tqxsw~{vy}l~tpu}{~}zy}~y~z|yw{y~ry~|fw}{pp{w||||}|s{}vyz|{y{z}|n}y|{x|{~x{}q}w|wltvywv|}wu|tu~|x|yz{ij}yy}vr{|rg}wwz{v~zzvvz}}~{w{|w}w{qsxtzvx}}qu~vrwzyttz{xszztzy~zzzrzwu|t|vu{ttxuuv}rw|wttvwtpz{xyoqxxsouxutwyy~r~yy~}qwxt{}v{}wpvty{|}yly{}}~}x}yz~zr|}w|xz|wvt}yyzx{r{z~t}so~{~w||q|wt{}}u~sx{xov{}ouzxvry}x}wwvy{}vn|yptzwr|u}~yzr}w{w|ptvzy|~zvz}rsw{xvw~r~wp{yv}x||v{tr|qxwy{wvo{|vxw~uyqup{xxtxy||{xq}xy|{xuur}vv}{~vw}~yv||~y~~vzyy~zz{}~xzw}w}}uyxr~||z|rx~y|tzyx}{z{||}zyx|xs|~tz{|xw|wy|{yz{u}{vz}{v|uxswm|wwu|sz{z}w|z~yw{srrsu}yxp}r}zsyvvrz{zytr|kxwsvqm}ypwyyysqyzz~rzwt{o{wq~vxtuztvvyzuy{yuwv|}sstw}{wutyx}|usr}so|x~x{{v|}vo}x{yqz}{wxyso~xuywswts|~|}vv}p~z~|t{py|}u}w~wxw{}q~ssvxwfyo{zktpv}qs~h{q~t{uqtzyqv{tv{z|u|ns|s~itt{}x{ntwwgrpyxxsv|zklsvq{pnm{}bbuwrzr||{ovx}xt~vl|t]vwxq{xmcuw}j{xyus|{wxw|pnto|~tvg~fyxywkwtx_uyzfwlyceh|}v~}z}w|{~l_poLjf~p~a`qvxdctrv{eogit{hvytrd|gv_dagopx~rhUzpvxitjsw|tzuntaul|oxssuvpzzxxyz}wwxzyzzxw}yw~v|}}s}vw|x{y~sx|v||x{vvs|vzu~i{xw|zz|z}}~}x~u}s{w~zzzw~{|{}|~p{}vzxysxz||{t|yz~zt~z|{{~z|s{l}r{wwuu}xu{l|x~w|rs|uywwwtztumyyx{yxwu}}{utz~w}ypxv|x{zt|~prz~uzz~xl~|xqxyzyqstvwv{x}u~o~~x|wxyw{~s}yxy}s}|xvluxyvwtsuouz|}vsxr|px}eou}|vqy{zyuy~tx{kyr}oww}zxwz~uup|ww{x}ozuz|pm|zvu|z|b|zj|qz}ywwusw{wrsupy}k0x}vz{qvw|oqh{{o}|~z|{x}ztm{z{wpp~kxxtsrvw{qj~qyvwx{~|uo}y}ufq}uw`t}txxmkumuwtgzz}}~xx}tx{uv{vw}{w|rzm{~~}{x}|yoztx~vt|u}l{yz|yxv|yzw|ywt~v|}|wyzzqr}~xw~zo{d||~vy}~vwzu|{z{zvxvz}w|}wzu}|ys|~~zzz}||{x|{~yw{xs|x~~~~zzz}}uw|}|t~t{zwok|s{t}ztpvyzsxxr~v}p~xrtwtx~uttyx}{x~pw~|~w}}|{|xv}~}~wwxjuyjq{|rvpyzk}y{vwp~v||cr{wgt||wnu{r~v{nzm|||ws}{o{w{y}}{|uzsx~{tys|{}z{{zylt~Xz{|zz}}vrwy|txw|{pyyylyuzyvq{~|vt}ozxvo~{sywy{yx|{u}u{~}|ys~}uvq|zti~ys{~q~yl{{vzz{{{ur{{jxo{r~zv{sfzvw}wxrmzw|~gwwuxv{zszq|u}oz{zzoi~u{vvtxyv{}nzzs|oswzvzfqsm~s{v}z~szpp{wvp`uax~xxvwtqyw{}tyvvxz}vazyqplxs_~qrwyyv|{ty}um|vj{z~ylqy~q~|qz{vvf|rsz|xzwzrtyvpvrujzw|~x~|~q}wur~p{|yy~qq{wyx}yyvvn{|vzzrx|wpsqxxrx|pz{rd{{lvwtyhtzzsz}tuwv|oxmyrw{y|y`vxuwj|yzvyuxx{}|toyymxxw|vsxvv~vz}rs{~zvywyvq{uwzsf}zxwpw}h|tvnyzzszvlywvvz|~nxy~zw}u|||ru{zx{|w}szzwmvxyiw{~vdtmu{|pywsqyyzt~w{yjs{{~z{{ry~~{vluwvv}|ur}|ux~xw~yxs{{{rzv{ruw}o~nw}|wyvu|mfpqtpy~zs{r~|zn}y}~yz{v}{x}zwz~syv||vwrx~{~v~tsy{v|}~yyv|v{uy~zwzw{vvru{|}uzx}wyu{{szw|s}s}w|~}}lzu}w}y}x{wnt~zy{v~u|qg{zsy||{~}|rtuytwxtvq{r||l~~|{owz{x|y|t{wz~{u}s~xyuu|}{tw~qwsp}w}|z}}~y}yytxxy|{z{upqv||y~z|{y}{zvr{zvz~{wtvvy~xvz~~vxq~w{{~xytx|squ||ov~x|rz|}~}y{}y~}|~~}|{ws|}t}x|u|oysx~~z{{}}yx{}{t|~q}z}{~}|y}ovy}{}ru}|~}x{zxlx{z~wz}y}}y}{zuzyxywu|{twuyvv~zwrzu|~Zzf~c|u|}wws{otrrwy~z{yvwwzwltu~zvxqwpwiu~{xy{ty|q}{}wyw}rzp}tku~zyynusq~i~nrq}y|zur}zyrytrp{q||xw~y{wpznwh}xzpv~yruzwp~nz{x}ux{zx{qzt|{o~|wwv}{wrylr{p}zvtxwv|tzwyyyzt}|y}|x~|zu{tpwyu}wtq}|{}z~{~yvrw}~v}w|vp{w|wvwwquyzx{y}z|{{~x|uvz}|swr}umsxs}xrw}xtz~vzsy{z|zsvqr}|~uur}{zopukx~{{|wyo{zVy~{x|uzv{x{{}}vt|usmzyqwhu}}{}}{{}zz{ryw{qv|qy|v~}{~syo|}w}x}~y~{w{}zxykv|{vznpz{vpz|pt{~{ywt~|yu~{~|{vw{{||yu}y~y{}{y}w~}qwx{xm}yu{w}||s~}wxz~wyq}{z|{~{}~}}|{}v~~{sz|}~}x}{||zrz~{||z{|{~z{z{xn}|{x~kwr|{||}y~ssz{xvwyxxsrx}m|vzq~cw|zzz{~wu~tvsxyzlyy~w{u{}z~zzup{wxvowtssvmzx{uz~zyv|}|spv{w}{m~x|{sy{zw{z~ks|{|vwu|s|{xzr{t|r||}||}yux}ysozttq|~~v}~~tzqx|{~}q~|ynsmxuux~wyn~{wvr}yyy~{}{zzn}|uyx|zyvx{zx~tzs|{{|w~yyz{zyxvzwrrxw}y~wvww}xrv{|tux}~|{{v{vwwyvr~m}ry{{{z}}z~tuyx{yzqvuwxvqwxvkxut|{rjyz|~xt|u}ystv|x~{~uwxuzzzrQ{ut}y~lyt~xyy{~s|{{}ppxxu~xq|v{{ou~t{{xwuxzn}vwdxv}}zwrzw~ts|}wov~vxu|m|yyyusu}w{x|u|w~v|p}wxszrz}wz{xj~rxvhyvoztxykz}qsyxytsrxuw|~c~yz}{wr~u}y{z{yo{~}Yvzdz|yzsynxw}}}v}r|pz}{wxlzxxsq{l~w|zz~l|sx{|~}wyzkyxuhy{~urz||v|wvxpzzz}zz{uv}wiypu{zox|}zq{{~~v|{uxt|qrw|yu{t~{v~|s{r}v~z~mr|syqvv~}q||zp~|slwxnqzwr|xyx|}{|zrtq|qw~v~~||mvx}z{|{}~{z}z|z~|tsvyw{r}z}}~s~ww}w{{tsy|zwv{oxq~oyw}sx~vwzz}nzzr}ruivytyjplqw{v|wx{zkxuw}nssw}yvuus}v~zzxsrvuuw~tywy~uyowv|srsczv{x}quuyr}mu{wxy|m{yr|w~xw|zluuzzzm|y}u|tvzzsu{tz~}vvwrty|}z{t|{zyvgpwwx{t|vqoxtm~}tjwnpw|{dtsrlsx{zy}|w||yx}xm|vwzywt{y|pxsxx|zwuylsytxurzmusxlo}y|yuzsww~uzvwyuzw~tyw{rxw~uwztywpry|z{{st~y|~|v{w|umwq~t~s}{}xt{x|}{zxuusw}~yy~|{zqwvx}vwzt{{ytxwnxyyv}w~tsxvyzvxy|{x}~}zw~wxzuy~tx{u}|zs{vxywo{~uz~x|xzr|quv~u~{|wwxtwykvxruxnr{}wotwqwwyyu}t|~xzxzo~y|}t~xpx}tvuxytq}q~ywtyv|xw~t}x||wz~t~xt~zvvu~ysz{w}p{}{{|zw~}x~zu{nw{|{xzz}ywxzux||xtzy}xx}yvxwyzty{tyywr}{yx|{w}{zw}w~vvry~vly{jpr~z{|ur|tvxcyzXzzzjvw~yvwzns^|~}vwsv}ux|uq|yp}uq|tsm|wx|wqr~}oyv[}j~vwywuuzsx{xzu|zw|nvtv}{~xtyxp|w{upsu}u{wrj}}yrwvq~}xtxqxftu|xz|~rou{xos{~{yuv{qv~v{pw{{v~{y|{}~wxwuytzxwzy}~|zvxy}uz~sywtsusxu}vnoy{xuuxquzyx{{zr|}x{|{w{u{xwxy|s|yzut|x}ztvz~x{yr~v~~nz~zzwvuyzyvxswyz}nuy{zquz{w~{vtll|}hys||t|xo|yktzx~z~ywxyu~wtqtz|~xnxyyqvxu~vvvywvxsxzo}p|qu~w}ysq|z|{zsqxxw|{~ptuyxuqqwut~{xwvpn||}yp~pvwwxrvlrktsyw}v|jpqpz}{|z{ywz}u|wpz{|w~ry~ux~mu|xqx|{zo~yz~y{yuuss{huvz^pywx~xzu{zy|zsu~w|tolpvwzpvuywzsv}}wmq|r~v{trywj}uu}r}uv}sdisxx{|x}u}zjuxixnutz{yx}~x{sltzyrtuwmzt~nn}uoz{x}vxyx|u~u}|rtw}znytzyxvz|vyrxzwszyz~|{{{r~||pyr{utxlo{mxz~vqs}{|{|}wyx~|uhxy{w}}wuv~x{ru~yk{{yvyy~x{xx|w}|xx{sy~txwwyyy}|wv|tvx||{wyv}w||xw|xw{}y}zuw}vs~{xw{~t}{|zu|wsvt|}|u||zvwozyzvx{x|wzupyy{x~r{wss{~r|yyxx|yt|{vwvi~|rvvvuzsu~||huz{{y{h|zrwpwwls}}}svup{x{xax~hqv|xrnxstzu{p}ouvyt|qu~~upwzqz|vjzzu|qo~~yu|m|oyz~wz~vwqwwv~~xrqyoxt}~y|zt|rqy~u|txt||}||qw|z|wvxpu~x{xvx}yyxut|yzxv}|y|y|vvz}xzv{tytq|{zv~}u{xywt~|zy{vw}}|v}{xw||}u{zwzyy{q}yy|wq{z~{xv{||{z~vupw{|ut~|}|xw{|yuy~}{|yrx}xswxyv|}tzry}{|v{zz}zv}{tz|z{z}s{y|}w}}{y{|u{xt{tz~tzxxz~|w|wxyww}zyz||w}wvy}sz{}{{z|{z{r~ys|xx|w}xy~zsos|vxy}yz|}{~}~x{|v~v~|u{|m{qnuk{zputvl|wyt{y|s{zwr|}}|nxxyz~nv||yuzoz{yxvvtoz}trynz}|xw}}{{y|w}pw}iqs}~}|}{x{m{mov|yorktywvnpzppwsv~u~tu}|rvtwxyto{n}zwurzsnhvrtz|yryvj~}wxrqyyry~wq{|ywzvy{yvv~}zzysyr|vu{wy{z~lqnysw{{wy}p{uy}~w}}}x|{|zwuz~{lxzv}||n}ruto}zxx~uwsrvwyvw}z~vz{{}|v{{{~zrzxn|y{{||yyv|yr{~}zzy~xzy{|p}~wxx{{|x}y}z~|y{x}}r|o~{yv{w{{w{w~|{{v}qux~{}zx{}xuvtz~|uxxqwx{vu|}z|u|}{zyy{zqs{|v{}qsz~|}xy~yz|~y}xxvxz|z~j~uzs{ypy{u{zxswuuwsyzizx|yyozvpxtyqxtyoxn|xz~xy{yppw~mvu{xvu{t|zsukxyqxpsrtut}y~yvujzyxpq}vz}zxxr|vls{ry~{{vsz}z|sw}xuwysu~{z{vyv{szxtuurpr~zv|y||yp{wvxq{wr~rsyoquzvkwstyuwurokh}~{rsworq{zqsrz~yuosww|t{ury|zrxx|hvqtrxqxyvoxw{v|y}xzl~stwy~ywo|vz~|ttxqysozw{~n|~yyl|xoms|{z~~~uo{u|ysmzspsw|rx}{~xssqoxzwxrtxuz}zzty}s|wxz||~v{vvx{|xy}tz|uvtyykx|uxwyxu|jt|ws~z}{zzryzvvoow~szz{ww~zpvwuvxzo{m~|{somvyrp}||zr}q|}zuyyyk~wuuwux||w|urvyzxv}x{|{vx}|x{w}z}||tv~{uyy|{w}~uy}|}~wtz{~voz|sz|{xwzzsu}xw{x{x{yv{~wuvt||zy|y}}z}wy|~{w}}y~z||t{x~{yx|}y|{ywxrvv}yzz||~{wzzzzwzy~|yy}u~}yz|z{|u}y{|zxzys~w}v}|vw~xsx}t}~uv~ywwzzz~~vzy~o~w~z}ww~x{t|pvvtz|~w{u|yz~}wtzzv~|}~z|xv~zqxzzzuz{yq~vt|~{zvyr}{wwsv~xzw~t|||{xpwyutq{z{rwywuyp{trur~~szstuuiv||}{fz|xpovup{nsxbs}~j{l{rnq~|xxtz|w}rwuyh}|r{s}qtvt}tnsy}vryxsrwzw{mq`x}|ct{zvp~puq{}zuv}xlxz{~{j_szzztrxsmw{x{y{y|{xmr{uwxyz{y{xx}}}x|{}}ww{x|{|~~~z{~v|x{wy}}vytvy}vxxz{}x|y~}o|{yv}}~zwzvvwzq}{}|u~~yzxu{xoxtv|~yy~~xyx|zz}uwz}~~u{s}w}}w}w~ux{{xny{{~xuq{|{rzt{{|y~t}|}}||u{||v}vov{juzq}{|wwr}yt}xt}}y||qu|~yx||x{r}z{|}{zyvty|~zzy{qxywvyr{|zu{qktyyszy~yy|r}tu~voy|~|uwq{r}{s}twyxqszz|r}~t|wyzp~v}||o}~v}|bxtu~|sxrrwvs}uw{}yt~xx|y{lzv~qr|wxy{zywxzusxuuyzvn~zlxrstp|}ykwh{||t}x}|vuospvzytsyzn~p|pw||wr~~u{zss|Y|xuwwqstzdxtl}y|w~|mzz~wu}|wt~ywf~s}yq|pvyu{ws}ixtvzl}ywpvu||yjv|xosqltyp|yoq~uv{}}`tmr}}tls{yzvKtoxz}{g|ztxvxe|u|uyvzloxensrwyv~~ym}}~pw|tomz}htus}~w}yt|vrt{u|}nu}r{{mntu~zwwu}z|ztwz{|}Nskw}ysyxnv{xxt}|qqxyzqxsqmxx|uw{}m}qt}qwtuovupuy~~y}vsw}vy}s|sxz{}~truy|j{}wszxztno~|qzxjq|}otrqourphykzzgqzv}uosxozztwyzw{xnpq{nvryWty}pzui~u{yz~{{eyvytxpws}qzyl||n}u~sznm~}{psggswypuz}qzpsxlwrq~|y|~{~k{myqpzwm{u}h}vkx~q~xox|kwwtytg{zvupyotopx{|{s~x{u~~nmw}xyt}y~{nuuYs}}xxxyu}y~|x~xymupm}onttnwxrztoqrzus~sxk~s{qzttuq{zyzhy}hq|l~xxxy~|xwu|z}|yw{tx{wxtxuw|wu{|{q~ywy{}sxwwzqzwqvy{vyzuyx}zz}|{xvtwzxs||ns{z{{{yxywx~owz|{~v{{|~{yzx{~wz{zzy{|zx{~|x~}vy}oyvuy~z|~}|yx{z~uxw}~~p|zn|v{q}~yvwoxsxs}~w~suqt|zt}vs|{z{t}}vyu{xeuzs}|ws{zw~}xvzmvz|~w|~luxy|{{}|||wzy~yzzv|zlyw}z}}}}uuovxtvv|w|u{utr{z}wn~zy{~w}xzw|vv{zw{}|wwzvwxtyyzumtywppwy|vwzyo}rz~|z}ur|u}xvzvrrt~wys}yns{z|vz{z{}zzusz}yxos~pqyx}rstw~zs}vtytzvxt}|{qszy}{xyspyws|smlgw}{t{xuxux{x||{|vt{yryp{m}zw}ysv}vkvzzrs{wl}y|ossuwx{vw|z}xtwxy~zt~xx|z}zvsrlspwy{v~tw}z~{~vu~~wzwy||x~punt|rtyrz}tpzo|vvz{srw|~yqywq~o|r}x|~|xq|qouxux}~{xtvyt}upx}nkwyv}twlwqlhwsvvq|}ozyszyxt~|tvw}x~}t}tcyxr~o}vyuowzsts~y}v}}ruu|ruq{lqtprrsqszrwhts{tigw}ot}z~z|ly}}w}{vxtvy~~ltz}{|~}}v|{fzrvwqx~|ovxuy}~{yx}{t~rrw|ur{toy{{lv|gxyw{|xxtwv{{p}{uyzzu{yz}~ny}x}zwxr{{q}{wzyt|uv~wp|y{sov|z|t{t{zkwuztpy{}uzw~lznw{uwk}v|wqvyyyzi|nz~|~|}yz}wszzt{}x~z~}|uz~~z}~ptlzw~vv}|xy|}{{u{{~~xx{y~xx|~~}~}|vz|||zzyu~}~t}w{t|zuwn{{vzu|}utxw~tyuw|{|y|zyzt{uywy}yt{x}|}vu{~z~~xxy}~x|~}zyvuw~x~x|qu}}||u~{|wzxt~utyz~~}q|y}xw}xzn|w{x}vrwt|tstyz{{z~xppzxzwlys{~y|u{~xxo}v|{wtty{|zy{xyzz|w}yy{}y~{twyxuzs|~}w~pvyy{~xzzxvw{xrxwz}vsu~y}{xx{~|t~r|y~yuzyz{wwzxzvxv}y|yyyu}|z~}~|v}}v||uyu{}z}x|z{}w}tu||{y~xs}r~y~zmwz||}}|}xttzs~{|~}yx{yz}}~}sus|||y{{v}yxyyzvr|vxy}|ux~z~{|}z~}y{~{vtzsz{zt{w{v{{w{tzz{|yw}~z|zz}~x|w{yw{||y{|w{z|zrv{x{xxzuzz|w||||x{zyu{~|wzz}{nwzzxzx}xtzyu{}~wxzuuwyxx|yvqy}zu}v{{v|zuwxwtvlwu|o~x{xx|vw{u{|xzxzvu{w|~~~u{w|~zxw{wz|xzxv}w}q|u{xwyupwy~xty{||v}{u{yzwx}xy{xz|y|y{stsxvxxwqzzrtuxwzr{{j|s{~}o~}x{~}{v}~|~{tozv~ytw|{n{u|xxxyz}}{~|q|w~u|}vz~}p|xyv~~tqp~~zoutyyt~~w}xu}j{s~|x|~}x{~~xwz|zy|u}v}sry~|s|~uv||vstzt|}vszvy{wxwtoy{z}y~vuxq{z~yxkq~y{xzxztk{sx{~nuylwo}tpwy~z{ow}|xs}}|q|vq}~qss{vs{yx}u{v|pivwpzxwlyz||mx~w}xy~{jvuv}}sxqwv~~{{wsssw}n{{~}w{kmoz|{xytgsn{~xuquxxy~t|{t|z~s~rk|jtkx{p~}joo|vxysw}}y|z{uy|o|fvrp}}wgysxol~~xhu|zkpj}jjzdk{qutz{vyu~l~~w}stmzysxswv~~z|w{|wwq{u~ruxqzwzon|zuywt|s{}s|||xvwtzw{wnvzq~ws~t~|yx}xwlvzvtwtzzvs|uxuw~j~{z~{}ym~uytzv}{v~qw}|qzswuswux|vxz|vr|~soy~swzuxy}u~n}uwtpmrr~~rzsuuvpvot~q}wrxtrqvxfxzulvxtro|qv|kmvzwp}xuvwwyp}tptz~qvwz}rkpu~wx{tumuyettwo}su|uo|w||n{xy{~ztqrrt|se`zzwy~{~yt~r~tyvnwt}qszzzyz}uowxu|xs~xtqzz~v{y{ywuzz{}{|wxszxw|zowwvzv}t|xuxx{vxwt|{ut~xwqsxx|}|szs}{{u{svvx}}jtuyzxw{zwttw|}zy{|vzy}}y~xw~qyqyz~|z}xu{{w~}oz|noruzpopzv|t|wr{|{~qtw{}xuuuq}syz|sx|{qv{w~~{x{}~{x{~|wtzxxyyy}}uzwvys~q~tu}wsvxynj}yq|x{{zkvzzzz}{}zv{}uupzyxvr}u|{t}u}vz|zzwzyw|wxnw}{~pvjsv}xp~xwqxtuszu{wu|qfvz`~t{svyy|sonbsv*y|qpzutzd}tx}pt}{rwtz}hvxuvw{ujxv_vwvuxyotvvxrut+Zzwmvx{zlwy{zq]oupvqzq{iolmiwtVe}w}zw~pm~uxmzz|~ssu~}zztsw{ljlyzwowvwkwv{|~oow{~v{}w}{x{z}{lz}oywqtw|o~s}z|wyy{z{|~zy}u{w|ovn}Vzplz|v|Zwo~~zzx|locwv|xyrR}v{{~yiw}yt{y{xyy|qf}w|sugwsyw|q~}~vt|ys~|wyzw|}}|vp|{}um|~{yvpw|{a{qtvz{u{~}u~~uzqwkzzyv}w|~y{utzus{tzqpyz|xyzwzo|zrz{{|vxysv~zyzwzwu~zvvzvrzuxp}vwfsuzzrutvxw~ztwwtzo~wqyq{xtqzhnyq~}~cuywzg}y}|s}zppiv|}nitlvorxz}qrqsx~qkt}pyzu|x{k|mzrzpseo|y{kvuck~zze|ukw{y{v{szvyyx~^mwxsgrurqswuzsymntnwu{uwzsuspspu{z}}xzn|}I}zxu|mwwwywpz|{{{prxy|}|yyzyx}Ttwt~{|u{qy}strqwxdqw||qz}r~}s{x7w{z|}wqyxzpkxsg|s~`|uzosyySpkm|uq}vyzw}vz~tz~{|losxvwv||txyuwpvl{tu|p}m|qpw|zzx}zy~vnj~xe{{~w}xyx{{xy{vr}sx|q|z{ztzw~zsyttrxzwyszx}{vs|izv{tvsyuu||}wxtq|wxyvyy}zt|xy~y{oqz~{xs~z~z|n|vytnx{z{yrzwtwdlexoovr{uuzyytsxr~tqxq}yxz}x}twyy~xvyhkq||twxvxuu}kuqxzobzz{pdmprwuq}}trxw~u|{vx|w|yoni|tyy~qmrx}z}up}qrtqtvxxyv|~z{zvzp|~k}|||syvm}n|{zyrwyw~n}rovtz|}xqkr~~y{ry}{n{utzn}w}{v}}z~|zyu|}|yq}swypz}~vuvtwzyu|zqpwcznqyzy}ylvuzyz|{l{uuzuu||srtuvxrxz||yx{}{{v}zx{~{suzw}{x}uv~{xost}}}w|zyv{xys~v}wzy||{|w|w}z{|w~vz{}}zy~{w{zvss~z~vy}{z{w}zyvzuvpztyx|z~wwvyy}w|{xw}{y{|quxy~u}xzwv}my~xq|pz|{xvs|p|{syxy}z||x{|y~|yxtrw}vvv|}|u|yzzwyu|zt|{z{{~{~pz|}z}~t{u}{wx~|zyzyy{}sw{v|jzm~z}~{yzx}~||zwzzywz||v~{{xyyo{yz~xz~{|ux|xzq{y}~t||np{yxzwuppy}pm|uy}z{uqv~xzy|yyzzwvwx{}|~v}}~z|~yu||zu{x~sz}zwuy|{|{|z~~~|}s{~vzy~~~{vy}u{qyyyrwz{w~~w~}~vyz~zz~}{xyyywuzy}w~v~y~uott}q~vvz~~yy|zvy~~xw|zuvxuwxv{tttvw~|y~vv~w}ww~x~yst{{vyz{z~}zuy{yz}{{}zy{}y|yqq~|v{v}w}s~txy}}yu|wwyw~xy{r}tzpx}~zyz|yy{|{vry{{vux{nt~xuku{zuottt|uy~v}}twvy{|y~~v}ryrtu|v}yf{vq|pt{yv~y{}uwvoyzyw{~y}v{uu}~x~zswv~ou~tzctvpty}||wrvyssyojxw~zyzqvxwz{|s|w||~o|wvn~|q|}zsqtl{n~r|wxzzy}~yx~hsz~yu}zr}yz}tlxz|}wwvwvzutuu|y{zuoyzz~zzz}|qttvsrz}wy|qnuz}zxxuiuzrtw{w~v|xqtwwt|~x}~yzwtvusszu}|p~wuuz~}vw|wwysyw}x~nbwzyyv|ys}}y{vj~|vxwvovtvrz}v}zy|xnwuYqyqsxtt~syw~|mw}uzy|}v{xx~~yy}qutwurtxk{fysrin|qxh{u{}unrvpzwm}su~wzwrzuxh{tw}zl|~tyv{tx}x{ywk}}psznvym{yss~v}|yyt}xw}u|sw}}z{~~{~{qy~xsw}z|xkontr~u{wu{|yzzxlvp{zryo~qufwkil{~~sz|}}}vgwyyvyx{vvz}zqhbnwtqx~v{|}kyjr{tzitulyqyrsw|{}|{s{ojtbwtkuz}qytw|}{ky}y{v~}yv|u|{~psgwn{wzwt{i{wo~upy}vns{qyw{}o~v~|o|zzzoy~tywy~}zuuz~vr{zxxw{|||yrqvtugz~sqqxq|zv|{{{o~t{vvs~wywu{}t|s{xztvunl~}z~}x|{}synw}r|v~uwurxw~yxp{tv{|{sxx|xwt~}zk~vxyu}|zoxxj}xwlvwy~xwzs{u|v{q}x}||n~q~y}wwqx{m~y|q~u~{}|t|svjv~v|{y~yw||zt}{vw|x|~{zx{y{{wy{{}rxu}{|suy~t|nx~xy}rwxx}stw|{{v{u}}yzu}{}zw|qvyxr~u}xx~{w~|xxyy||p}xz}w{ou{syqt|z{q|cwuyy|y~rw|zx~v{tty}tyzwtw~pzzzozzvyrws{m{r}woopuxxzzx}yvryy|r}r{ywqq~x}zy|~}~j{wuy~swqs{yyx~su~u|z{zvzunqo{{blxop}}uxmyit{{u{|ynqoyqqxy}{|xy~t|uu{vpu{yux{qyh{tsw{}~zq~}|~wyuzw|z~vwtu{wzu}{}}|ywyiy~{vwx|zr~xez}uz~xxou{|t}y{}x}{i}xy~xytwzrpws~|xtxsqwrrwvz{{pz~yvvzzyzs{z~vs|tv}yz{w}t~{{}}zy~uxp~z~|uyvokqrz|vzt|uxyuyoznxw}|pu{x~}zvqo~up{{ttmw|{z}v|xy{|ysr|}{tsvwrww}tmyw{uyvq~xyv{qv~p{l}r{zzzrko}|vuy}~wwtyv}~phyxrosz|t}rym~vio|x|{tpvzzx~xtstr}}zs||z|wy{pqsiupn|kyxy|}x}}xwyrw{zz|xynxzqtxv{vyz}ssutxzxos~otypszuyy~v~{tqz|kt~fz~zv}vq|zzus|rywlyywz}~zu}l{r|x|uz{~zuvv{|x}s|y{{w}|zy{|||w}v~m|~xy{qzz~{{}vxsqm{suyvl~yurtntztyrvz}|}qstsprv|ur}}yxxywrz}y|yr}qwmmztzwt~tywvzsdywutr|urxwt{zq~w|{yzx{vyv~yu}z|w{{wpvp~yw{|ruyyxr{}yuzyw{}uw}k~}y~h~wxyyw|zyw}|~x~wz~sx{~n{|u|xsrv|yuyz}yuvpzx|wxrw}zltww~u~{r|z{tux}suvnxxv|s~wu|}qqw{u}~{zwrq{|vw|xoxnr|zx~zty{vu~~}y~z~{~xr}{|xzhr}||yys{|ozstzwuwzyyx~u|wr~rw{yruxwv|xlt~}ksorwnvzrsu~sz}|ouywt}t~xzy}u~{nt{t~y|{ky|~rkt}p{}u{x}~~r|ru|x{z|{xwUr}rw|}s|tr}z~p{xjhu{|zw_}rlsrx{gruuazwp~|vrvp{kywyz}{vxvy~oxlxq}mtwu|ysv{zvx~z{y{vyzxutty|t}|tsxqiy{por~x}xpttwuu{w|zwtxzwut{zp}{yv{ww~tv|{uvsttyz{vu|pwo~||yx}}t}yy}{qzuy}ttlvvvxuoz~|uu~ywxxvwxtrx~r}{w|wsz|}|ytrwv|xutw{uysqt|ur}~~ux|wxq{xwt|np}sz{vy~xx~}wzrwxuwxxnyu}~vyz||s~zxrvwu|x|v}zoy{~u~~zmzyr|v{|w~zzyxzu}tqju{||xzzyrxwovpw|nx|q}yysuuwwowws{~q{xqtuwzyss{p}yx~ouzx|zy~{}y{}t|uyvzv{wyy{fzy{}nr}wlovyw|r{zxzsz{xxvw{}{xwvr{}yyx{|{~s}||{t{pvy{y{zz{xu|yryx}zzrqu{|v{tx{yp~xtuu~q{y~}{xuxyyxwvxryxsruvutwvxr|wuvzzwxxwztywlrvv|y~{uy{t{|zpy~xz~|v}utxt}qzt}w||v|xyzsx~l{~|xy}{op|uvux|w|{y{|}x~}|yxyzoxmyteswuwznoy~}tz~lr~k{v|zmttqwshzxox|yyu~tpy~w~uvv~xx}}tuwo|xu}k~x{vs{{{o{yzox{uyp|rxzw{ton}p{jqpttkxwqzusy|wt|otxyy~{~{z~utzrhuywxtzq{y{ux}yvy{v}rspyq|{siznzu}w{}imp~~}quu{~wxpyzv|r}qpv|{p|q|vyx~}ss~|rvrqynwnur|{pxzwt~}~owxvw|xunpuwzssnr~~w|vsxiwvqb{~t~v|yztt|x{t{|yu~zpytw{~r{ns}tftzvxnzyx~q}~}lvru|yyzyl~w|z~vtmsrw{|yv{vutyx}vqwtxwzw~vntk}{}y~}zysr{|st|zzmz}vxvvuy|ozs}s{yu}u}vpuryqvzwyvoq{yvy~t{~ytzmty~{w~xxtz|u||xt|x{}}~~~htvw}urvut|{y}zu}~w}wrx}xww~{x}x~y~}y|{{x}z}}z}zww~zy|yu|ww|xuzzqpxYttsw~ux~}}u~twv~~}zssvxx}~y{|w||wlqy}||~y|wv{t~{~r|~s|tovbrz~}{~w{|rupzwykmzy}vyy|nwv~|kj|~zyxsy|txit~uozpizxyfwqmt{{orzyz|Xhcyvpp{xyumvvq|u}~m|{}mxhuzphs~{w|uny|}q|w}szw|eors}~}}j{v~yzyyyvzu|y|zzy}wwzlwrv|zzt^~yzttsx~v{||pw|og|xw{xpsptztpuwy{zywz{zx|xtwuu~tvx_q|zsyrvyvnouts|qwvzzx~w}tkntu|t}wkzq|Qwxytn|vzjs~izw{~veyn~}ytqvs}uyoxutvuzuq}xu}z{u~s}r|}zoz}yp{rso}ytxtu{nvruuuyyztw~{~m~yyrke|xty|ltr}oyq|u{|{iysyzhtmn}xdr|r}rtunmwwov|o{{~pyszruuywutvm~utw|qnqww|rp|{zrtrxzoo}t{~y{rzww{m{us|q|zystp{ktyuz{wo|}ww{|~xwyzxxxwwt|qwtxv~uuv}wzy|||x{y|juvzrroznvk|{xcn~ywyrq}r~~|xxwxo|pviy}wmwzzy{}}wop~r{yuvs}xzz|zux|x}o|{{wpzuzoz{{{yt{pyzw|{zyvqvuxz|wwtywyx~zyy|yurx~szsz~~qytx~z{}yxzws}v~yuzwuvt~||yyxtu~}|~||xrxzw~{vw{|{w}|wy|~yvztsyvxxmwrq{i|x}ww~quuttzzpx~|ry||xzzzv}|{~z|||x|~}xsvl}y~|~~xu|{xx}vxox}z|zxzy}|~|~{|}{~{{y|vt{xv||yv||~y{|yx~t}wyv{r}~~}~~z}{zz{||{||wvq{x~~wy}zwyvx|x{p{wu}yzxrszuz{ix{vusvx}||uz}v|vy{}ss}pqu}|zx}|ozz{{v~lyzz~uztqw|twsyu~y~|tqpwv~qz{x~wmqtyxxzyv~~l|~~ps|xq~|{hvxzp|}xyxvzzxzqwswngzupvzxxyz}|tqy||{w{~z{xssyvtw{kx{sy|q{|p}q}qw}}osotw}yvz|sut|oo}zxznx{lwz|l}zs|q{}x}wv{{{us{s{sm{kxyuvx}u{tz{tz|v|~|}tt~p|}u|slow~rvwv}u{v~y|~{{pywu{|tztw~upt|szy|w~trww}y~~}uuq~pzzsovz{wytzpzww}yv}~ttwysw{zwurxw|x{}}vzv|qu~{zx}|vnpyyt~sux{u~w||~ux|wzow|~u~vnz|pw{~|pytuy~{qx|}r|zyr{{sv|~u}}z|{~y|~xrww{}|~}|~vt{x}{~~|~t~yxuw~}~||vzvv~szxzszw{x}uy{vwv}yuztuv{}xxx}w}v||~|zwxyxx{zy~uxx~||svz|~||x}xvmq~t{mp~wz~vzxu~~{~yszzhmvkm~q~{}s{wtrxyw{}soxu}yt}nxuyy{~so{y}{uzzy}xyuxuoty~vtrmvnpqy~~rx~{xmw~|y|n}q|w~xs~~ou||yv~tz|m~wv{}t{yyus}zx{{ptznm}||uv{v{s{uwzvwpuxzy}zys|v{~suruzvy|{t~y~||~wuz{}xuzy|}z{{|vu}wuvuu}sry~~~z|wwzw|u}}zx{{z{w|vx{{xzzvrt{y~z|v~|xy~|m{zsy{}}u}|~oz{wsw~~tw~txyp}zvvxz{x}wvzp{|s}x|xyiti|{xz{~ut~qztv{tz{unrxw~x{y|sr|}ssxxpt}wuxzvyot}r}yw|s|{ovvyvyp|zpw~wvyyv~ywxxwj{{zpzu}q{x{rpwq~txsyuklsvzqyk}yxwzwv|yst}|ozr}p~x}xvzlq{z~w}~s|vv~wyz}wpz{{vwv{vxx}{~x~|~qy}v}}y}|wuz}~z~vvurxy}||w|}xzyyrszu{tvz{s~xrsw|~|wzsyy|y}yy{}~{yv{}|zxy{|}yrxu{oxv}yxz~~wzs}}{r~~||{wp{syw{uy|~}ysow~sw{{t{vysrzw|xs~wtvuvzoxpvtz~y{r|}u~xtz{y~u~wvxx|z~{}y~ly}sy}z}uys|y~wsvxs}{}~rq}q~wzxy{|uzovu||xvt{upxu{rzwyxppnovpr}s~{~wz|ysrmyLmfxhvrrtubymoxts~w{{~qk|qn|wrzy}ss}znz{nuumwllgj{pn~pxp~xs~{tvuxjmd}Zw{fjt}oy|uvmq~rvxqtw}u{}{yxw{~vz{u{~|zwyvyq}zzy~}}{{w|{}zv{}wu~yzxv{z{vyvuz|}{y|v|zxs||~y{{r}w|~}vzw{z~vz{x{wvux{~~}}u{|wxt|}wxx~zxu~}{y|}t|v|ywu~yzyt|ywyv~yuy{tytw~|z|}qqz}zz{}{usxr{styvqy~vu|{|ywz|v~ly{zwst}zuwyzzys|uv~zv~|tuux{yym}p{wxxst~x{p{k}vsp{yusizwwtuuwxwt|vx~wsvvot~mmpt{}vytv}rz}qyyzvt{xwnyx~q{xuzuw|ty{|vxzvw{~}{}x|~urz{|zv{w}}vz{s{ryvx|z~yz|}zx~wx{v|zzu|xsv}qt{|vz|{x}|wx~t{y~zs}x{||{yvw}w}}zww~rx}{s~xr~~}uy~{w}}|vz{xvs~ww~{rxv|y~zqxy{y{v}~zzy}|{u|qwrx~xm{|z}}}twypzu|~~}yq~zy|||w~{wozz~{nyx|xyvw}{z}z|~~x{ztzz}xzxpx{}vyz}{{z{swxz~|y~w~y|py}z~{}{|{}{vxr~u||ux}ytwuvsq~zt}wy{{uxvz|z|xzm||{ty{}xv{u}{|ux}}v|z}|vuxx_}xmwwz~z}ot{zx~}wyux|yz{ztyzzz}psy|xyz}|tr}qzw|}|uyywkr||~mquzym{~~{yxzvs}xt{s}~}ss~vvz|n}uuxpz|xew}zzu}sz{zvxy}xv|}rn~nvs|rwrum{syuz{xrlzz}{vyxv|{{v|{|{xyuz}}{{vwn~p~yiwtmqwz|ws}~{w{s}t~y{xyywv{{z|xvt}vxu~~qpzz}tw|zl|tz}w||wzxtt{t|}t}wty|u{zy{v}v{yx}zwz~wzy}~xuyh|zxzy~~|~z~yvyyot{y|uwly~x~~||~{~uszuxx{ysy}|}w||xzzvrioyt}rvryovvyrn~{s}y|u}z{gro}xx~~ys|||rx}huszhxoyruyw}|||}ow~|wyl}z|qvyuwnux~|zxyx~qwuxnxl|tousoqu}yxqfsxv{sp{|u|~tw|zuwp{ztp~yy~{{~mp}{xvz|zzzpwxt{t}uzwzxy{}y~zsy{|xztz~}zwuvzy{t}yxu{ys|ym|wvqwsx~}u~z}~{{{x~z}vv~szt{~zz}y}v~r}}s~{{|zyrvv~y~~x|x~uysw~xuuyy|yxu}pvy}{wywzyu}|u~w|yty~nw|{|ywz{{v}g|q{l~xt~utxxut|{vwm||z}xu{v|s~x~rx~tzzyr{xr{xi~v~zrzv|wwq{ws|}l|sr|wwp~ttuq{vr|z{y|psrxzu~u}{u{mxxqw~v|jqo~utltx~~q~v}~twy|wr|x{yt}ywwutxyq}ypz~|t}}{q{{~}u~}}r~zyy{}}{buztwvlz|}}x}sxzyvp{}quwumuyu}{||zqy{|rswz}~{}szty{zwkrx}p{x|yvni~w|ssnzv|oxnx|wy}tx|x}x{zpt}wr|sqh|svwvyuwu|ztzsu{|~~ozu}tvs~vurp{|v~}}zzxyrnz|tzuxyt}kzpxszzrxqltvtrrxut}v}qrwwzx{qzzxr{ouyrsjomv~uwzzwztr|uuo{o|zz{ytxttq{v}vsw{wmorvuu~xzyru~x|{~v{y|wzvyyy|xus}|v~vqv}y}~|tt~|{wx|syz|v{~~y|~yrzwxy{u{{u~~wv|vz|vvvw|n|~|q{wwws{sww~z~ts|y||p|||~wt}vx{uy}zt{u~t~{zw||}v~w|{xw|~qv~owzswrvsvusx{yu|~}u|~zrn}znx||uoyvx|ovlwryp|yvuzywyw}}|vqyuvt~x{yyowyxzu~x|vvrmut{z}yxvy{}uz|ywvkxkv|tyr|~uy{w|}{xulr~yzfznny}y|~|z}{{kuyt_zjuv}{gvuz}~_z~~u}rp~|yvrttxtvg{w~{o~zwyuuxv{|xxvsx{zs}zuywsssvutrwxzu{yzowrwso}rw}v~szkvwn~xta|x}|xzw{omzuvwzu|vqvwyvy|zvpx{ypx{uzuqu{~y}x}{~{q{}x|~zyyyt{uv~}xut}uvx~pqys{}xuzvzr~{uxy{z|vs|~ruy{{{~}y}y|{suz~y}uv{{zy|}x|qu~~{vzt~wzwww|~}}qxulzwvxrqx{}{}vwpu}}|wsqyz}vry}on{st}~tt~}wrnuvt~{yw}z|ss|v{jfkqituosx~vy|xqnvy~n{exmexxyx}vulozgcus{yo~tspbztnztmkt}ss}{jrn_shst}sukuu{ltytyrzz|g~syysrsvwuozounp}wr~oy{x~z{n{yrt{pwzm{~xv~ztyuvx}rm|wn~}z~yz|x{ysv}|tohplturvz{x|tpyqxwr}w~~wzoovwt}{szyzrwp|xpuxu|r{uvwu}ny~zttqoy}rxv{}uk_xyz|ypcr|}|wnp{s}pvnxtuqxzz|vfyv|xt~wom}wx~xrw|p|wwxyyy{~px}xkqomu{~{z~|wwxv}v{syw}wruykexuw{y{trmtzzz{|v}|w|y|qr|osuyy}|{z}z{~zvuqiyx}|wtwov{mv{jyz~~z|z{y{~upz|qx}~t{|y|w~u||~zs~wtx|s~qm|yvv{l}vx|puzvvwzsv{{tu~vvyjyzmv|zyzuw{{ro~xr|zf|rzpsuuv{t|x~u}uvu|wuy{j|yqqnne}{yyixwtyw~{u{{x~{vu}{xv~s|vw~yoqytsyppznv~xvhyusvr}|rwrw|~{u}sqor~{rtz{u||lyux|ywpnpxr}qzr~{}xu|~~zswo}{zyxr{wt{{{wz|s{|}uxusxx}q|uv~vz}w{{xyow|yxxytz}~q|vrwzsvuvyru}{{o|v}truxzuxqz}tqy}}p{r~~vtx{{vy||{rvrxxxvyztmrzwy{zy|yxyq~|xr|mv~{|vpijoyXt{xzx|hpt~rv|s|muu}nu~vs~m}r{qzqmjzsuyy~suvouusw{w{~yxtux|o}u}ouvgwr{ux{wwurlyvznpus}ixu{~yzyc{tvgtyopy^z|`ln||lr~pu|i|oy|xrzuxqrvvq~{vqyx|ytqwr{u{x{qq}}{|}v{ppx||o}wlzqwws}xv|v~|tr{wu}}uyuw|yv~x|uxv{y~}|vwotzmuyxzz|pxztt|vy{qr{ysww{yr{qrsuusx}yz|}snvqr}o}}w{yu{y}~{v{zr|zxxxwt|uzu{~{||su~pwws|ytzyz||zsv||||~|nxwy~{yyzvt}x~s}r}~yw|owxy{uy}}|xx|~yr~zv~{tqpizz|zn{yrxwzvx|~r{|zyusyozxpwwyv}vzt~vqwzz{xxxvmxe|kw|xq~swv~|osyzz}nv{nqx{it~tx}{y}ts{vzr~xt{wuwu}t|||r{vry||{vsht{v~yvtxyxwzxwnovu~}szw~|yyjvt~qpv{t{tzzvyzm|w}o}w}p~}}z|zw~{y~z}x|~q}}u{ywz~{uzzxs|m{skr}yysx{{q~wr{sx{ty{u~yzw|w{}~u}s{x~y{s~x|txv|{~y~}wv~{tvxy}|~wxzyw{|mxz}||{|t{qwuwyz}z~txplwwunvzyy}x{wxl{w~qx{w}{xyst}t{~w{{wwyw|{x}zwrzx}twvu}y{xy{{x|~wwytyyzytuu}s|wz{xyy{mv~~zvx}~v}twt|zww|tuzux~u}p|z}{tv|wyx|x{zsmw{{k|zywtzix{x~{~xxsxsu|{~}w}lvzwvyxxnyups{v}{wyzx|yy{zus~knrvxw~uzw~}w|yysy{tk{wxq{yyyw{tqyw{vr|vvoymouxr{zslz|ztrp~e}u{zwzqzt}zu{zwu{y~}u}t{yyyvy}t|oz}sxw|~}w{{yuyxryzy}xtz|xwxvy{zxx}xyv|}~~zxy{}vx||}{}{|w}~yp{yywr}wxzrtw|}{qzw}t~xu|y||xzs{yxw{~uz~z}y{{}~}{xw~}zs|zyyv|h}x{zvpr}q|vtwxztxxwxrt~zt{~y|y|u{|~y{w||vxnw~x~x||r}|wvxz{|x~yx|x}yuwot~}{y}zwu|x~rx{y{~z|{~wxz{~zpxy{|}y{zt~yy~vtv|~v}zxxnj}xzqy}|y{ssvyvx}|~qttwxzxz||xvz~ttvs~qswsszwzr}zuwyw~x~zyjtu||{zw{{y}{ymy{|uty}p~{{yutyt~o~swsrznutvwokslsmvzxt~zzyvxss{vz||wz~vzwsvy{jts}{xysutwtw|xwx}onwwtw}{}wxqvtqxws|wpw|{x|trw|yzx|xwwy~tzvwy||{zuwtv|wszwyxy|szwxwxssziwzuy||}z||}oz}un~|{~p}woytzxpvys~yvxs}{xxu{wv|x{yul~|t}uzqrvmuv~|zhxwsv|jyzt|x|tw{{uuux|x|}|~||{|r{yz|hs|vxpsuutwwy|vzwyzl{}ptx}wtz{|{wq}tzs|zx~su{x}}q~z|qzyqzvwwzyt|ruorw{z~{w~^pkhz{{~r|}mu}w~~yrz~~o|{z`w~u|n}{~mxv~}uztz|zq~tqt{|yy}{q~{~y}u{u}tv~qw^moym~t{v{rwxwrw{qx~sywpiweyyn}}wj^z~z_}wvxxyxkwyzxx{~y}{r|kwwzyu}s~}vqswizwy{vzx|zy||zx}s}trq|u|qpnvtw|lv||~|}|vrj}ztzmxry|{ry{}vs{|}r{oz~t|nw|{txtys{u~h{v}|q{uwywntwxv{y{x||}vsrk}zwn|uq~rwx~z|xvhlw}umy~u|zr|zx~pm}{}os|ttwv}}z{xuyus{q~t{w~rwryy}}f~{zo|q~z|k|qxq{n{vvt}x}v|x{{uqx{ls~vvsvqf~y}yk||snx|ywzvtqtwqxyyvvtrtzwo}yv{z~~squ|}{z||~u~s{~v}~wyz}~}mv{w{qyz|vy}v}w|qzz}~|ytx||yw{|vu~xuwz~|u|wv{|zsvry{|{{{zxx{y}wz|{wxy|}}wswstzz}uzyux|v{w||z}z~jvrvfrx~{uh|~yr}i_h{{jdyhvx{j~izdaqglwhqlwv~`ryjpy}~~syrq`u|ysyt_~uc}|hgwzq~mpqy|Zyrgvkxpgqkyrwzmg}txt|zyzywo`{vllwwutult[pxt>uaix\hiditfuzpbyr~}}zzu}_pq}uiyehgj}o}f~sorwrpffvj^uen{zisl{|m~e{|xw`hhvoh{mglp|vezrojq{s}nldfzfordus}uwj|{leol{y~|vwoq|j{|w~iq~sx}dvwt~e}~jg|}gx[sujosr`qfasnmrw~{runvsvzv~wprtw{{n_kio}tw}|xihPv{~}aw}}~_ahnxlnzth|xtsmo|knZ}rlj|tzouz}{Xj{Y~pc~dmw[ag{\xsT}qqvoxi|x|{zhwsjjdwi{{xwO|faz~_nl}t{ttlslkt}weiiz}upzmps~qu}pxwg{ow`wgyfwq~croJwyae{{koVrqon[xbu^}zug~|lpn{~wovs~Roqetrx{t}n|ytvq[m_iykj}ywcp~p{}uwa{q}xwvz{tyyrqkz|xtcGtcytfpqq{~vq~whsdl|oqqn\isq~x^dzv~vwrzkz|gxzny[pagpw{r{uc|eo_kspuz^}~owimqylwuupk|ekgvpvw|kzqv{tl}zqtkxYpzKvpsjhlpa|nwxw_pyszZjHtGl{~S|tszjumzg|zRruvjuvw{wncoru|qjxqlqjro}n~ovnvvx]vfzsxyxuo|nv|wq|eoxnqsyfkvuisp~r]puos~||wozphfeyxh}wzjuwpxtpswwagv}}xnoj}nlvrg_w|juzng~}wmpxTvzulwwr{czdp|vvxqmwfcpxrkwyir{Q|]m~qxnzwny{r}{wg~wyygqi{o|s}r}tr~y~n\spxiqtmvrzZ{|y_nupynweg|srwvyjslxlxzzr{rl~lrkxmsebqgsxebwqwu{t}mjqkrmqh{qr}rxnwlfs|mbw|oz|zi]jmVgwzxvxujr{vkwm\c|wt_Qltqsttnop[TvvknfXkwnYXhvxoWqopx|tsxupn|wyqssfs|ryssSqntkzwtlqfmjeqhtxec{|rYal~nwx`}qh{tknmhqoksrme|v}{ovfmk~rdyvkemo\V{ukhzqsqlw}zexscc|yr{ufuepdt{cn^dkujxr^rm\ztwbltmksz^x~^nts|osq}vot}f~jrvwwm~~srv}dlzqr}oe}u~q|`|tkhpid~_st\spnr*Mzd}k~s~}stSSzls{fuivvpK~tv[hz}sxt\7ord||vm{{ntjt_yntq}t{wsqqwq\eYvvv`lzJumey|wqp|]bm]kivyoXmjkzqtbv{trszxtyv|iu_wby}ycurn||kz{dz}vrtuxiwwzwm{z}kwgygyuxNayV|sucwwj{t{kega{^{ysdve|~w~voylmurxtks`wushszmttsyysisw}uyvrn|{qgx~uzstxnifv}o\vw~vuvvu{n~lhyolnnfq}vZlunknew~x}{]wr{rnvtx|uK{}x{tjw}Qot|tZVpnvho[yewmqczw|swWyz{t}rtwu~iv|sxyztsipnts|vu~{`sqtagquZn]tzspqg|[~|zweLrzrwvsb}azqpn|zTixwlz{fy~qlsxzd|uprvp_eft{sost|ed}p{}ucyuVyyo}v~{qzbWttwo{|{|yx~svza{pwdy}a}nxtnwnn}}ltqwydw~rwv{o{]pxs{yrp|rmyzhtruz|vg{~}}qqlyzlq}|wrhh|~uzjmiY}u}lpxb|Jin^~jys|if~tq|t{pqr~~kpz|ysstn}_}tppyswozhPysindou\|w~nbx}iwvsuq}{zrsvvn|xddjwztyvtbrwwtxwuna\\_rV^qhtejs|wott~s~UkurT~pkoajy|pwx}~{bxxw}{nskrrf|nlopujj|}l}on~s}xgrvrpxevzmzdux{~iinMkpwlUqrcly~~g}nmusuzqr}lfngsp`hfmrrc{ynqpz{veyxqqhx_Wbj~yj~vsqkr|{sz||{n|q{azs{tq~z}]{zoT{}_~tr]eof_tsonxvuetstbc{v|rxtdtuzw`mskuZIo[mv_usuwqvt|swz}zt[ntnnx|}qsxtgFlv`JKzmjxUq~w~Viritqt{rq{{gxroawujczo{tkqxl}yrynvsmZdv]b[iwun|iv{p|}sz|zo~i}yuq\|zp~qttzuvnujusu~zlqrrrnulihv{v~wsgv`}xxhzr||i\q|w}j|\pfdon|ay}_oxpwqvgmx|nky_r_s}fglr|svz|nv|wtYhvqqpq|wx~bwywt}w|fzm~|p~pwmue|g}l~nqwwVg]l{jlzOsxs^|~Db~w{|{ysuu~k[dh~u|lusocku|jvlbohftyxug}jcms~~idvvtxvosvqi{utkpr[xzovtcsYzUuo[xk|ukpqsxtq~nbw|c\|ns{~v~ifOR|ros{s[sf~ystwuzwe}s}yp{d|~nzy|v}xuZylx{kfpktrl~jtmw_nt^uo|u~h|{{nuvooe`zoimi|vxx^nvzoluoopquvfgwxhxzyqb]hv|uwp}kqewkuuouttop[nqn{rsyvttxuy}s~lRezsww|z\lzprxu]uyu}xy{{rq}u{phzryzpzn}}vwawrzkjtmk{ro{pXSvqyj`v}z~qxs^lfkmf~nxnqqy{uuvtq{vva{wvrxxliq~jzqxrZw~uf|y}s|[}comlvlrtzhpof{f|we`msvpYwx^v`}yls|w\~{|kxx|xsq_otzxv{ztvywhv}qjfufovvl{}q|}~l~{wsw{rpzrtuvdvnZjvt~ownkwpqj\yqynzwl}tgfzqh}pipir`_~YqhQuGotvv]`xbys|tzcqlyvegtgv}uwgZxmrptyx}`xy}uwwsmwyilt}o|lthlhzpw{u^ouplhmdmf[zvZwyrkos}f{r{pMjy{shyn{u=j{_x}x|uqwl}lv{~|~ppqwsahu|avzumw{pkwrv}rrZvi}wxpwiXnjustswwtvzytdz}|{yatvt{aulsY~stt]lu~~lwlozrixU_vqlXtd~w~pO{sc}pq|qrrzi{}y}ksiv]~vput{lk~Twkyljf~omZxzvw}{puqs}tedqt~}u~mh|dxukf}vjjvztsh~wrdroi~{pnSo[{zvltw|yfnnu~elg|~k{ra{pct^pbi{naztnl|bxqr[nzvio}onslw^{yxtmxsumtly}}qoyqnrz|p]qrre\ilovzwtmfuxinutpnrzzvt~z~xzkj{ambniojvvhsz}|qU}fwupm]uvwtgld~uzmj^Qtqvijyqvyuvxkr~\ytuyq{xrir{j|zlyy~l}xzzm{c\zzubwxnul~y~konpwzt{}rtu|ry|`~qomx|m{}i`~x{yamvis}t_|mN|~f}xvppz|}vu{z|z~twqoWrqbwhv\~vyrpzlpux^zyzdvwrsn{yt|ts|]hwqwCvdxdmyOtiXrys\v{q|oYozy~fVRjRdzvtu~myTF{ZW~smy|vntl{uqtotxsux]muv]mmvq{wwsxng}zsvxqcvrxozRqkbtzNvitsvzxy}x|kavtp{utqv{rjzz~{yfql|uV{ql`nri[ijvvvvhetwu|tv}Yeugv|usscmqktuoyq}mtr`~sduwyzxvFyv{~Itlmvpwsydpkl|xsy{u~{tnTw{}|smq|brldwoc}upsrdj`o|];st`ppEv~ryq~rq{x{s\}w`qh|`}vzru~}ir{z{y{tvja}a|v`%vvoqzy_{toextqUwvdvkgw~kjpoe`{vyxmek`u{gxyrru{ndp`~ppnv}ywVrrd~llno{~~znxwvttnu}shwty{ti}wvtlt{y}xnwwl|wsyuusnSvhwrmrt~VtjM}zozhivwtqyb|tdhluv|yw|kfywutztw~y}wxxcrfd{b|ZwdUrwe{osv{okdrlkv^vwpyvovyttlvs_xvxkyxxyqwn_xsymzeszmzmzyv~xpuswe`srmtswytvinrpa}iuhZ\pzwmYryvxxx~x{b}vyws~lvuq{uynxrq{^n{yvns`wyyzhkzc{xrqvr{rdYuajvz{wKvwrylrnlwqyse|l~{t_|umvwo|vo]Ttny[a^wqr^slf`s}xv~t|uw@v}sbxt{hquwtov}oxymayxuttnv{qjyspvXuc}}ly|q|tfbjx}zyudj[o~~nk~pzvxvuz{rqzopewsx\~v}lyo~qw_ilhntYmp\o~yti~pnc|uly{|veph{{x|nzX}u{]mrk{hr~oUs}^sn``shqnob[zk~{{ye|y|yu{nwyxkquvjfn{vorTuYyuiszroxh|wxv{kur_txpm|~Y~yfvq~oqa~|ksiw|gfutYibrqy|uXs|yzu~}f~v\mkPti|uYq{kyvzrpzwzwo{svr]t{yoqxxxpixjy}{sne|zkzq[k}lysltnYsvz{Ztosuuq}|ypxjzrmehxyzh`ynWZwgo}m~|svdzr~tzmxOgxzxq}y_hpvkyvwvqsmv}mq|ry~y{k{btcxs}_nkXp|{v|vwqv~w=z^yww}oqx}xpq]rw{|rMgr}xv|zkvtz}qwnsg|}mqevoquWviZzw{zx{uskyp}~npvl|}svxhky~qxmmu~s}xywqzpmucwmtxgvxvqcw|~wn|mx}xgzqxrs}hYyHzx~xwetiy~tosrjoqjpfpzvbkmer~tmp|[hqclQjtc~k~sqzjbswjvm|~i5tcwziz|gqpi`|vynl\oyU`}y}qttq}umzukpnwtrVtqob~imqmw~wv}]lf~rh~u~|Yi~jsvilnmspugjgsujk|xeyW'r}w}~x~Vyup~qmtky}fmz{q{um{tqzxtywzfyu{}fryloeou_au|Zy{et|pzxz~rpaxgvdp o~~i}ug|r^u|r|rry]r`oyqtuxus{jWv}qroxx}spusprtOTkzwn|jyiwxobynZNruu{isutwu>j^dtpgpz{l{yophrlq}{yzoziy~iztlriya{~ssr~xmnuXukmvgk~jsx}|kw}wy|}}fq}`a|irrvh{tgs~ozpvghvhmk|eW{qw|pbm}bjtzpry{rxuxr|m}uycntsp}og~fwjsvyti{zgW^ttvh^eV}{tw|s~p{gyhrnyUdvSys}}r|pwyv`z|utlrxkxtM|~nqzj~~{ku|xftevjpqxCvuqf~wopia}i~l\nyz|_Kawoxgvswpbl}zo~uqmwpvwu{my}w\ywElwqmg{irsk{l|jtpasvz|kyyd}onwyx_ysvxti[oc}~wcu^sv|iUnsnkvhcuwzgy~S{mnaz9laz]br_[zxju}pvZ{q~j|xy}y}swm|M{z}YX\LnlMwvm|sn{pyyts{~sdsxvglptukum|y}{_hxoztjm~zr^{~nuz}{o|Gy~MLmokvx|\r{xjl]?uoyepwdxLZotO}vveoav|mi}dUcx^oNf}H[xuv{3z{OS||s{m{xtgF{xngzzUwxs}n~{vc{pz||~yo}\|kigsn\tarkxyvQghxqo^xz|wqta~y|y|qx{n~wndwyo|dXrv\i{iv{zuiz}gvwo|xuUrw}hwqqiqxIayy}}kztrhn~||nwll{rrmmvyXxtwtqpogwxxvapzpotnt{c`iiuh_uy}vruous{b{zdaoo|jb{{y~tvonqhpuvjrrSw`{dq}snqv|qsm~ypv~prtpXvqUsT^xwkprmqmqXtp{iz|zs{ufjv]}oqzxdi~x|]xjskatlu{q}{V}wwqnrppm~_|}iruthsRu|wzzpugr|ttnx\~c|yyvgffr|meqix|`tjuzisqli}|tqsjw^kw||gyr{i{~qU][wou~lmy~omwctvm}kl{{xxPhuzz~zxm{{ozyqnu}fpmnV~ugPvyIVtsl|ydzqr{w}ZRsxuehMqit:i|!~|rrzzfvsgwxs\ps|zxuaypkmceyxxxkokyf{i|Xx~ouvvxwo|X{pq`xmU|w{Gwcg}ylPoz~l}{tutke|h}w}rƒinpg}rixrvv}obpw}yfsrjuyofkzvq}|xtwuhwtgfxjvvvtpqmkztx~~nytoywzur,ptJj}osogzhygs{xhs}ux{}\yrzn}pp|}s{tyisjdylv||c]kstp~rxglhd_Vgvvrrerfyzkym{u|v~t{~}zzm{ewwydk{ve}o}qrw{vzp{_iv|~usz~szv{tmp~Sb|}nwnwstqttpZ~|xyxiyyrnzu|]lp_n}u]mzw|wb|~vwprvq~wyikyi}iemuf|aixrf}~l||r|sywuyoncnoogiwdRWyltqbqxzixpbvly~easkK\ms|k}yj}koilzm}}}n{}jjwq_l[{yqemuOqeluwulgxnd|{cl}nnrooyjzu_uu}z{xs}u{|}s|qkoip\v{rstp}]ysipxzr\}u`}|luntpobw|yr`b|mws~cz[gwoqO~ezivzvjxmVllibuyalsuax}r|yku{wsrzq|sslznzjtroqwvzGph`wswsqxsqUshu[u{bvpMsqRwwz]l^r}Yplx}{zZi]}hzrftz{ajtnvdu}|{~_~|}un{pulixz|zo~xqqolrvkq~ilCwtdto~x{vxvu~c{{uw]_ws|wczmwpUg}v|wx{ix~stzudxzzwwn||}}vpmnwfix{mouno{Xr~fyvsruzwz{{wgulXwo}xymx~{x_nu}~zz[jexvrip}t\ex}uowyczwVd|o}|uv_vrx}rmat{vmtz}kXmsxsuugbnrlScvpZXv\z6vwrVsRsu~{ktmym}qXp_ogy}{d+n|}d|x{y}ptr|xqve~dnsuFz~zonysy{Taviu~s[j~}|iCdylqyvv}fmzoeqwz|dwkyll~ucz|Rofue`ri]texhoetuvovpmurts{qTy{NuxW~~mUsykxz{~dgQvds}dqyypvs_uyuj{qxyi|ofwskq{ylwdpewwzz|oqwrwuz|qbkhqxvtdwuZz{vt~y{rqzzt}|td\{mzLoj~szzmnmq`omdgurn~evspvbWsxyV~heiaepcnc~p{r}mwYqn{y}wst}fvkzgzmivxjrvj~xt{~rxwMnzv{nrxxht}sn`}ylwpkokqtzjswplu{z}qswzuns}|wxzy}s}|vwvmwkvzul~[smvvml|u`]}qr]vk`tpaox}pvs}XxU2zyoxrvhvzhzWuuymyoqx}zczvgr~svrrpzp|ydrl{v~|jymwus||m|r|uu|fukvtYuc~puyvsyY{Vyz{rwpynymxohQwclqsyskx|zt}ynzvtgjqwuzwrk}e|y]k{~tir|pxp|hgnoquuaurv{ow~qixrp|n|qntrqzksqQ}paxpomxYyuvlvkzqcz[cnueptu~zo|s}s~w|syu|frwvaSny\lxejrtzZloyinthkpJuy|_plzmywuxnxwk{{uq~tvpuic{xzlqrwizwho|yo_gn{lzg|_rvf{|wv|wqdiwriz{mivzraaeZxmkdpsdaozwqykua~|t|}opriuytuvkwvptyzfvr{}dt}wi[}uz~Rrvuxsiswvq]srqlMYby{piuwxYZou]nuoj|eyptW{o}\pl~m~gpi|iiy[uv}jujbwuyw{y~tky{}~z\pQohyybl{q{}i|mzvo}ys]m{q|i{uu}zwsnxq{|poyxuqwdytw}pzznrnx_]mskqq|zu~y_sqnqfwtvw{fxtvufvtM}zt`mltusllUjXqtox}flXqftyryss}r}zqmpupwa}lc}crysxywcv{]mb{xlxqqwjxtpqftgteux~P}sZonjJ|rvtbwr^[~uswsq1mbt~ybq$otb|x{yspXx|tnqu}osppwturnvwmwqhuao~yzxzz\vvXszz|o{fqzlusxsuvwp`ux`y{jwj|v|uzqsvkpx^qa~}mfoyzvqsbhv]kcOjw_w[pqwP|ruo{lstokljz}zZ{vwoum|ku{zctzKuwugh{ksuvvu|vu{||mwqysr~psjsylyu|txuxiemfpoion]yqofjstlvfmw{vpzzquol|{n{LrvrXqmvte{sxoss}}m}aqfntywviesj}rfu{v{kptwtswnbrtxpu|n}p~ymbyfvjhscm^ap||dx}vwjQ|t}m}ovkuvwzyzv}rzsprslt{|skzyoixolsgwmhkziu}kltgvz|~iu|{he[q{xm|tyc{UtylWy\X^|uYZ{~\nk|Yr{l}lyuysmmy|k|{vnx{m{x^zoxvl{wn{lvs~w~n}hqnk^zrsuwlqx}|wwut}rt{rna~is{{tpxzbrig{p|jvzhiYapjruy|zs~~wk}tq}hqmzmr]yisqxs|2ktsm|}ps{r{stjmi{xwy`[z|oy_hpyml{}rw[kr_q}wwxzxmyztvqgy{mvps{k}}|w}ytz{qfhvulort~}ruxyuymxsj`yawuulx{}npavcwdtool|jupr|p}mm{xzv_sj{ytavxx|wpt}xzz{p{bis}wms~isa`kpvrkstlc|qot}pw|nzqwzz{suzNxnpujds}cs^iuwpi~vjnfxNzfwv|~gy|qb~|vtyhxtjtsz{sntyqx{^l]}|~j~tvUtwxyhzqqpetZ`swiqwvu}{sxuuvpwuq{uvsq|vcuus}~ug{sbwp_sqyqvyfqjsqtkcwz}y{W|uvw`\zjfogpfwy|u{{u{cmwu|mp~t}{j|bz~up=zb~KZ}ssp`t^sxdsb}`ril{jco~{~|w~|XIntbU~yxtwu}{_mqwklF~lzikwWgcotqw`yu`zRqwsRm|xyznrq~{py^}hyny}q}}y{qy~xom}ywxy\huoswtnfwff`mwna~t{vxwriqp{uoy}vbgqpywq|myp~xon~xwoxbmyrs|~prvmkkwh~~npvgscw|bKnovqbpvspqsjo}u}Zq>k]smIt~\rzxzoԛFsfesy^slwxntnr{pwytw{nprtuugq{{xwmzfvgakumrvhtqtwu`t\uitxruw|{kzy}e~_wqburmS{syy~j|kvkC{cxvpxurrq~xqgbxtjjysvy{twivdfz{\vyu{xvmyeoytkkoqcdzsiyr{rtsbp|du~Xȴƴܿʴ̹ʮسûǿóůʷΤܯĿͱîҨȾŽȜòijѸĠǾ̼ʦȺķDz˵ĭŲĦÿͧɵ˵ĺǼȢĨëƨѴǥçáƴʸĻקˬتïʻƬƭñ©Ŷᰬýðݫηñư°ù̻ʹ®ƻŸҵĤԧ͢ı̶ȾùɺљźȦǶ̶Ĩó­Ӭ˥ĭӦͬɵí³ȵɵƠëĹҨȮճõĸʴɥȤ¥ʛɸéĨǯƪ©ʲ̱Ǽ÷ʴêϼöƻЭεŽϲİ˭ɳĿҲ̷ǹܞĪƶ֞ı²ëƲଯĴǻ˴ܬŷŨ˪֥é˼̨ȨŸޜïԳúĿˢĮȲşɑźٹƱǸԫͰ˞ȹ®ôθ˳ŬʸĦ˫ªѴǩ§Ωͱ´÷Ģü²ĺƬŰĴǩ©Űƪ¬ʬϨɷʥΪα̸ɹרΦͽάұǵýʲӚļǛɦƥëѲŧҪÿЬ¡ͬò¹ϮǰϮķʶ§㳫ȾżвƼôķտʫ•˿ŲȿǸԷɲķǣ¯¯íǷŮٹȡ̻ȫʢɡ÷л˲ɱʲóƦǦķȣʬͩœŸ¥ѷĬ¨Ǫδâ̩ȓֳͯ¬ëòάèűǺɶд»Þ³ɳdzdzͬǹŨ²μ˨اþŪͯűç̬óïɤ˫ͱȼе´¤̰ßƴҡϲɬضǷ͸˸éñŲóƼ³ҴūɱǟɦƮ ȯż¶Ʊ³±̯çɛŬܤ»ˣŨæ¦ĩêħùĽƣǴƹ³ͽؼϾ¶ʹºųƹ̨ıʥîſүʯӸ¾̪ѶžֹӶкƦåŴû˥ªձ̯ıŰʵ²ïƱȷƝ⧻ܯĺìŒʽɤʹŽɹϪµ̾͸¶ǧĜĥũѪſư÷äӞij·ͳ­ũúƳŶĹɭ¢øijĭí¬˟ǴǷŬȿ˩¯ɮƱēǽاʼǵÿûĿĻűǶåɩŨѼ¿ǯòɯ·ȷȲŮdzǷʾǧΤ©Ҳĵůŭ£ϸʭƵ±ľǼףۚҷŵʼøä³њø¦ȵêʥ͠Ѳɪ˵ȦɰɦشɪϩįǩƴүϴѸ٩ҸDZġ·ȬDzºԧѬ¦Ǡ̳ɱʷðʛܮΠÚʼ˯ɪ£´ñɰڹųɹǸŰĬ»óøŭóȲдçϱƞǚ ΪưôűչۿǮ¾ǰǡͱɠ¹ȴȥťͶŴżѶ˫˪ŸͱӖɭĪ¢ż̸ͫùİĽȤĹȱЬԸԾ´íǧѴɷƝìť³ɼ­Ըœ®ˢDZœ˦ɼ¡ūųǴ̼¶¾ˢ˳ϰʣǾȶĢð÷â’ŸèŶͰéƢĦȱӲð¸Ʋðǭƪȼ˺Ůʩů֥Ѻ¿êضø˶è̦ڻºƸȹƽĥɰ˵ɫɪűįîĹŭż³¥ˮ·ͮȽĶʟ¼·չƠϻûĪŵκž°åî¶˳Ǩ˱ΰŴäğïóդȩl®ϣì¥ˮIJ¼ϳʹǯī³ǷʯӼijηǟôȰåĸƻǸơIJ¶½¬ñưƻǶƧûǮ®©ɺ˲ðƼֽړžɩ¥Ũ˺äʬ̮´ǰϴϫ©˭ĴǢͱí¶ʹЫ̜ȾΣٱţƢɺçŽȯíΤ̱̪͝޹խأĨ§áºҰȯ˻ʥͺɯɯȭͳǫƣɪƷɶ˴íĹʷýſ½ªǵùƱ̧»¼̲·DZŲ̩ıþ±ǩȥʵĹϳľ±ɧعķˬòҳûæ̭ťµʪ¶ƩɲĬ˻µ§ŭǪ·˼ʺǭȪ·ƻ¬̸˧Ϭ³¹Ĕäįͱåԧ̧ͣħʻµɵñ·ںƢţĥȨӾĮӷݻIJ¦Ǯɵè³ŪƹŻů£ŵöٲƳȻDZéӵ«Ɵʺۖϩǣ¹Ϫåḛ̀µǹέٮƭη˰žЬǯв͢ҳũͨɬȮϼŪ̵ǵƷĵƿβʱϴƭàʴ˰ȶƤЪΰ±ʱȡǵƘįʬƼƠ˦˻ӱȺ®įǸˬĿ;Ūśư¼·Ƿĵηгǿá̹óĦ޲ɤñǺƥ¾ij͸̯²ĩñóĿڽû̫ͬ ʷϳԼˡ̯իŦȨȪʸʿԡȶϩ¶ƴԾƵüæî·ݼ¥ΰǫÿʵáЮʼ´ķ˨Ʋź´ųľúĵûŶ¹ϴҹŴӦѸǷúŪøƯ̲ϳ˫·ɰŹȹǰ¹ϼŪůƯ÷џijīƧ­ijǴƱęƻίʭǚȮ¬ƥƫй¸Ƿƨӥ˯α­ɶš̱ìäƗIJɣĺúDzũ½°ȳäʳ˜ʺȻģ°ðͰįȤĥ»ʶȽǛ෨ɷĩɟ´ĸéƺûɤȻçïŲħ¡ɦ̭ƿĺķ̓ɿùŰɥʵŒ̺ôɲئ˴ĦçɤͲɬƩµDzüέóçίݻµʦˠĿƫɪɼМìϯܢƲɰúîͨøijɧƹºŮϴåǺƶǴֹҳȶ»δ½ğĝɞ¦ťįDz֭dzĥ׸ɸ̗ʻðФƳſť´ȳƬ˴˩ʻʺäɟäǶŤŴ̷ˬ¹ʡƷɦijȸȭĩŸǭ̫˰ƼȩįŽIJȭγڨ˨ÚƱʷĴĩķ̶˲ô̤ɭͪѱĹıï⨣Юù·ˣөǭıĴϩDZȣ˴ǥϜʵãÿĻơʫūʾϡќʟᱣ߼޹ǻ¹įªŢDZɴĵ୲ζµϰijƲȽķ~æôĶŽůǷȮèñў«³Ɵƻĥ¯ۻԷïϳ̸ߤéɥļĦŹøùϱȵIJоɭѰɶα̧±иʡ¬ʿDZʳƩŹྰɦƤť̠ȷúѳΧƷĩȢӯΪ¯Ԫϗū;Ǹçîǻ®ɷͲŴĩªʼŵɫȪIJӣŲ­ģȯЪɹ¥Ʋ¿˳ƧĺͫɥĨüƫ¤öŬƵϣӶϚé˶»ɵǹ᙮ˮа˷īȳ°±ӡ«ŻȯʯȤŤƾƳ֣éDzƵʠϺƯîǩȠŨʭưô̿¥ɲ÷μȭí¯ݥŽԮɠݠ֥ٹƚüưŹʪƵϫҷijɡŪĺȤǺʥ͔dzĭӧ¸Ȥŷ̪­ŰҰ¨ϽǦʹǼı¹Ŷ÷üƴðƫѼεŴ϶سÿĩɯ˧®µɻЫɷɯƶğğİ̷¯ιŧ¯ջƵƺŴǹŗͲȨĴƲ֭ƷʼIJŸ̴Աԡưí¡̠ͰɹʸĶĞɭΟ°ıмƹͱî¤Ȼíƻêĭ¼ƲȪŹͦȨǰή˻ů¯;¹ĿƼıÅ̴ĨȪҿ´úʳƦڵɩʶۭ¹ǮͻĵũǸ˽°̩ȱʩµ¸¿ƬǡۧĢùǬĤġŵªŰöĸù»¤кЪ̳˯ʹ̮¼ƺ«ɯԞ˞¢²¦ɷ¸ƴĸ˼ǴϜȹƮž͵·ȩȫϰťñЮ˳ͳīĜɻǴɳʫ­ҳȨĔ±Щ½Ĵ̛ӫÜЭƭɸҺɻ˱Űȼʭơǵųȫ¦ùĸºӺɪůɰʟû±޻éԭƩǸ«̩÷ï£ļ¹±ݨõȽ°òŷüöçȲçƮļƱĭЭŮ֧դ¸ɿѳĬ¹ɰʹſö˷ƾȶðơÿ§Ŷǥˤ¨ȣǢٶʯΧƠƴɺ¿϶ſŽīͳɫãƤĸȸĩöɰǩȴĹδƯʯĠɵİȡ˷ŴʞȻșɯٯȧǫзʤվªɷļħ˹ôȴºĻп÷ũĩ»Ţ²آ԰ĵùʲ­ģᱬôȪˢĨմŵظ©լȨ´ªŲźǴӯƭĮù̩ɵçʳïǭòүβƯөƭ§ɲƷԮĭĬ´ɹʭú¬ų©űǼȴȶ­³®կɨалĸçμIJܲĵѱ¨ЭöəˬåƧʽϮŮƙ˳ÞƯĤžʼŸ½ȶßѲɯĠij¹Ǩù²Ʊǿ¸ï¶İéĽŶű註ȼįŨЮҳ÷ýˤӯʱâǣª¸dzˡ¼Ą̊́ȹӶɬɲɱƱʻ—ϸ£ȸο˵ګѿî¢ôѱʨǶǻ·ʗϷ̵̢̮åֵëɪηĶѫǨíȳƪʩ̵ܰíǿçɘǧκƬ˫ˮڭлɶϩμƺüȨȟʻ˸ù¦ձȮūͧ¦Ъ½ƲǩƱ®ЩѳέʤǨȼ®Ҳ̮ôȫνñıƼú¹ɻΤͲǹIJǸ¹ŧ­ȲҨɺǯŮȻɥȭĶ˹±ûŶѰƻ˞³Ĩ˱ĵ¯ѽŲİĻ̳ʹȵɶȷĺƭȮȾîºɬê¡ɪλϰúܧμĩΫ˰Ʊγŵ̫Ƴñͷ³³ñ̶ƹԯ̴ȩźǛ͵ƷDzƭǹ˻۹èƧдԣŪƿŲ´ʳijö칰Ƴůé˩״ŶժϷʥâƶɻȵѴ̩ɺůƳȯʶǶåèŢ٥˳ƹĺ°ڳźóçͶȣݹæè·ƲǹÜŧßŪƻŻϭǯɭǞ̶±̯ǡɵҽʨƜͬ¸Ý´ƴƮȨµЫʷȤûì̚ãĽïͼƳɰßļ¤ɼѳ¿ͦƭ®ŧƳĴȴ¸Ų·Эï½úĮ°Ư¼ŸӴǺŪǺͺȲ®Ľè̬¾ų²dz¹¹ĥԲù˽Ȥ°³éťî·̪ɫȱɷƴӹķռͰҬũŵƚƳƾĤŷ©±ìګëɹۺȵаά¨Դ¥ğ̵ٿßĝåΤ²ЫǹмͱͫʾƚưδIJÓƳŲƷDzƚĺ«ʸǭʬش߶û®γʷǷǿȺ̿ͭîĽ˯ɨêɹŮĦʺǰ΢̞™ÞȷǪâŬŨñȲ¶Ĥ®ƫ‘̠ĵȴڰ䱩ŬįŴƸ«°ñŤħǷŹСȮԲ˭໾ƥɠȶ¼Ű´ĴˣǩĝɩƸ̽ǜĨˑƺɧ¯ͷ̶Ű¯ˬ̱໳ĩť¼ĩôЮʨĪŪŲìŷӭŵͽʩɢŦǮµľʨųųáӓǹĺŤõɵƦõħ·ůњΰâŵȸƵķȶŨźɥDZõ̻Ѭş˲Ьů°ȵļųԴǫŷ¥Ǫɜ̼´ƹɸðʳ̲ŦΩǣǽǵɽȾ¨̾ˣҰæحºȺødz¤ȩƸա˯οعØҰƳƼĽ˥½ĕëū¸ȫʳʶжܸĨ̏˳̖巯ӤƤȯŠȟƻϾ踵ìŻФƙ˱°̴­š÷ɿƬūøçǮϸϻ˱Ȭƙ̯æĥøĶҷƺ›Ǚµŷ­ũûȾٻðǫϳȩɺž´ǯŮǥȟ׷şȲ¸ͬӺ¾ëƻșǾիϠǬذ׹տǬ°ʳñٴŷиȽĹźѠۤĹǪ¾Žϵ̫ŦԹ¯IJĶÿƿôüDZþɰěӱıʮýɳôĪ˟ÿǰƶʱ¦ıŰʲŮнǠۮúǠĩô¼Ŭijƪͳ°ӼƳʪò֣ϰIJ̴̥ΫðůǫϵȾŸųǹêɷӨӯԳ÷ץƮìǹħǯǴĨõóΰƭµö ®ýЭǻ̯¦ģĴƖ⸵·ĬŤϮˢîöðõɦºͧþàİýű¦ҳ¾˧¶ŧǷôûɨج˲ñƺġý½ɤʭίç®ҳȱɹěİĥɳͰɲƺųŪٷǶǟ¯ĸˣïֲ͵¨ͲñͽóƯĠὬʿȰƢ«īűǺǴĽǠμ£ñã¸ĻķƿĪҰɯɽĭǷƷǹ¾мƫĸͯ˻ƤսɨϢůΰůӞЮěƽħ״¥֭Ȭǵľ˸ƴĽ®ƺ¾æťǿ۸ƨȣǽ¶Ǧĥõ͘ȼ®ļĮȭ·ϲżĹ¯;ˬŶëǶ¶êæ²īɰȯº°»ŹԨḙ̈dzĵΫٺسƤ˩Ūђưǵ٨ήܪȫø³ŸšƱιƭҾŭͮвά½ѱƻóҦƾ¼ίɱԫîϴïŌũµȱݵͻȶĭĻĪƼĻդƾӛ÷̸ɨɶ«кǨô̹¥ͫͬ㻱ʹȻҭťŨö¾ƭóֻǩîùɾºêطԪµıƸôíпǥij̣ѧūĭȻ»ȭ²ˠɥǭ˩í̭¸źIJëͱŶǭ²°±øƯϻijΰɧƩƻƩŜ·İîƱIJѶȨȶŠèŴƹȫ¼ç¸ȯȲƽǵƱ˨ŢŹҹëȫõƳäɺƿ̪íò­ӮĽ˪ƮǯýàڶɱëɶȳȶɴÿǶƷɱɥƬηɥ㫾ȪʰǴüϭϱ֬˺ʩĨγòίª״ؼ©ĭäǯգ̯ïǦѿɦŹó¸èĬ͟Ͷ̬̙ƭ±νƤ̧–Ų̆߱ǽǭᬬdzȰʾŭĵèDZdz¸şɼƹĬ௫ĿźüɻƸ¶ɨǵ̴Ĵ¥˵ºʥ¤Ĩɪµ䵺ŪßƲȾʹȹ³ťȱȥŴȳͻƮ´ΠŬȶ˯ŶữŨʷɰƨɮ£ȶï¯ǸȴɾɡíȺΑûŨ˟Įα²é÷±ҤİĤƯµƹѫúŪĹʾȶĬƳ³üµɫȳɱɺȯÔðϰëΙɰϿ»İ׵ƺþϲƵŹĻ́ͭཡר·ĭϫպĻľƻñħǯǧıĸʿİѫǹҴŮ¹ʬóƦ˲ǷͮеŵʹijʳĻҲǸھħǶ§̩ƸʦǻöýմƵʶ«ǥƱŨ¶óôûö¸§Ĺų³ͨß«ʴ»ģ´ǯ±ñŰ©ßDzľ¿¶ƿ¬öôIJºòľŴïʫµưôĶìðʷ¸Υº»î§ijĶƩûűĺȷ¯ưéƱ¿ììóȼï¼÷¥ƽȽĹįİɯIJμʺIJǻ¬ŪƴŮŮĻòżùĽƻ­ijĭ±±±®ùªƷɾ°¹DZìIJ·Ŀõů»ůźø컳öƴȸö§·îëĹȭʶůî°ŹŻ·ĵҲƴ¶ŰͲDZ̶ų¶ï˱ܢ¢űij«ȴžƷƬķì½ȳϯů­ú˼İ®ŶíŷǸ÷ũĵĭԴ±Ĵƶí±»ͽîüȲ²¼¯ĭǸĭձɳĴêȺ­ҲǩķĮDz¶ê¶̲ųƨŧʩӵƱĹ˩ö·ijӮ¾ijȬſǷdz¯ƽʹ̭÷ÿǴķðӵêµƵΨ¼ǶƲºƫӲʵĭµùǵĺŽ¢ɳ̵űòò­ǵdz©·ɬɼ­öŷ»¼ĴªϹʷʪ̸òϷ¢±ķ̳³ºôĮ˷ĹŪõ¶ĵįĻŬ÷õÿǶ¸Ƴήûʬ«ŵĸíƾɼȹȻžŽ­ĵ®Ǫƥµıͪ£ŵĨ¶±ʳ¯­ȱз÷˼ñϰ³ɹͮó¥ǻǸôìμĴ±ĵ¶űķķ­IJŵ­ʰŸķ¹¸ųϮɠþ®ðɼ²ɳȳưŴ½γķìťɲ¶Ƕ»ĬơƸƱãּǻè¨éƬɹâ²Ĺűƺ¹»¬ƪòò³³êĸƤķĺ¯̫ˠ³õ²ķøõƶʷůúÿϷŴ¬ƲǸĮù³سįȹƷŽƵ¶ˮ˯­ĵǵƷ;ɭüİðIJȷ±ª¹ǰïŶŬųĨůüĵƬ÷˽Ǣɪǹºżĺºİ··ȴöĬ²Ӻ¿ƽШïŲįŷžøĸƶЯͶʥÿų¥Ϭȭʸѯ»Ųƴ³ò¬ö˾DzиôǯЯĴŲûķ«æŰǰíÞİƨ˷ÿ®ıýüĪõöðŨ̶̯³ǫ¯ΦˬªȰȻ­ƹ²ȹǬö¼ȳºµ¶´øȵĺɰƪêϨƶɶŹͺǴǵ§ûƯư̰ôƶƪŬƭȬìĸĴ»õŴ̬ЭëϹĪº´ͮɻǨٺûºƲŲȯøǾ̴ݰʹηįôŲ§ų÷Ȼóɨƹ½òõĪĬʻõíö¹Ģũ̧ĭȮŹǽѾä»ɫɱôƲŮ¼Źijå̸ï½ɨ»Û̵¼ʻ²̵ȷȷ«ůɵñ٫ų³Ƿɲ°Ȳįï·­ĶĿŮ̵´Ʒ¯ī¡¸ý¿½ØĨùĽź§̷ãøð÷дĶĬȮñèijµ°ǶŲôüïĺ¾°ȷݲǷɾҲɫĿijñöŨõƨïưıŷ¶ʑŴí÷é͹õǶŮǪģʥķóĿɤ߮ȶ÷øð˹²ʬǽǩźƱƵ·ɺù·ƶȲų¥ɾ²Ĭų¨ûƼªó´ɹǵáŷ¯ȭ˸ŗõ¬ɦɗŴúΰûëȫƫî·²źֱ¹ůĽķ°µ³ͽɭƳ濸Ϻ˯ǪDzºə÷ijĹ´¿ŵðŸºɻȲɷ¦į£Ư®Űôð©ûïíŻóűĮĦŵ¨ƻ´˺ĬŻñĵ³̺ñ¸ĭ˾ɰéʬĵȯĿǶǭø³ưƯš®ĴɥƸԴǽ˫¼ŷɮɭȭԽʭվ¥ĨĺƳ±ƼŽɷñƽùϴǶŶĭéʸijǧаĿʩ´ԭ³ȮƯƯ´ȷõòɹ³ǸȿŹü¶ʫìȧƵô²ȽƳκðïķ²ǽéôûƵëöïºȴٺ̵ŤΩƞóɶðë«»Ŭȶưŭȶ¦ͶǸġʬ½Ĭǭĸĵ°¯éǭūɲƷõ˵±ųĿõű˯ʧ°»ǩ̭ȸȮ´þɺijʺêū¶ƻź¹Ķ˦ɸŪǹ²ǡŹƾ¼ĸȻĸĬǷ±ɞ¨Ƶȴ˷îħяúȯļƤŴĢʚȽdzȭï³ýıï«ȱ¶ǬĪݳ̴ȫķöôʩ¨ó«˵ĵ±½Ħƶİ·ĪƮļĸŰĿûɲƾ÷ųŸƨúɸºçȲŸƭîžɪ¸ǭȱƵĭƳŵ¸üDZ´ƺޱú¬ʰɳ̱´´²Ƕ·IJɶĮþɬĪôɤ¿½ϯĶĴ˵ñĵЭ°ִ²ƽū¶±űõȭзóŵëǯı¹³ʴû±ųµүƬʵǤĴʴķɦҼȰïƺIJIJƵв¯Ȣȹĺů»ײ¯®Ķ¯Ť˻ìé÷ùδűƾîƨõմ»ɤŨͮĬªϽøʻȥ­þ̴ɶ̫ƫĭȵȳïįǪª˶dzîļŮĮ²½ü¦ǶƯıȪĺɶªȸ»ʶðȹ²ĭͺȧҶͮĺijí¸͹϶ĸķʶƭɠ̠¼ǯȽϪźı¹Dzȧȯɺĵ°ï¸ηʷø˸íöĶưƺóºĿίЮɱñƷǼǺĬȬűɴIJĽ¿º˱³ĺȮֶźîẔ̌ǯ¯¯º«Ĺẕ̇ɵ»îʻ˺©ðȶǹ³ɲĴĶƣǴ³ìĮҺ®·ȷĴ®­Ļ˱ȭŸɯȲȩȺѰ·ĹƵҸűƬԵ¯ĭɫ¶īʱºü̷ɴɴ¯·ô̮ï¾ýǾĺʭ¨ƪ²ĹǾȸéñŮɰͱºʳĸƶƸôĸ²­àʽëĮɶ̿±ȴȚíŦƼįŹɳ½šۧȮ­¼ȸž¹κ½´´¤òƨʶĨȳ°ĹɬűǫҴùöºзí·ĩ­ȪŹĽȪżÞȬ¯̱̭į˴Ĺ̲ú¨ŴŴ±¶õ®ʟůǽ̲ùѰɳööʳ´ýŹȵÿűDZƲãıéĴƵʿŻȴݪȧ¼¹³í«īɻįïȴĵɵĴ¸Ƭô¯´ŵëͫüźȽЦɸγĽɮ°ȸµͭǷĴ©Ž¬ŭƷѶʶŰɯŹĭ¶ĬźŹƬ±ƵüĬñõǹȮõŷDZǺĵİȱ²Żˬúŷķþ»Ŷðƨż°ñƷ±õ±¦íĭ¸ƲʵŸ³ƺĩģ̺Űŵİƶķ¾ºDzůöТįƻùĵǷɧȫƾɶɵ÷ѵñŷʱ´ƽ՛ɯ⸴лμ¾ıƶŸѸūȱĶ®İõóȻõĪĵ»ı¶īŵŽűŨ»òú±ƱȲéŷ¬µijǰİĹǭļñ±µ¶ǷʰüĴŵ±Ƨ«ǵűµ÷«¯²¯òʾͩ¶ŰƺúȵŲ˥¹įȱͱǻëȮƱ´ïļíųêϫġŴ­§ôפðijƶ˽®öüǿ¼´а·àȯµǸǵȳƳIJ±dz˴ȫ­ŦĩͼĶʵĭŻų½Ȳ¶IJìƾ¼ƬïýǼ­¨ë´̽ȰĮî˷¼Ľƹȴʻű¯ĭòԼǹŨĹȹɳ³ÞƩũǾ±­·ĻıĮǬūŸIJİïµ°Ǻ۴ƵʵŽįóù̷ʴǯú÷ðĩŭӹ§ùŵúö͵èëó´³÷¯ȵĺêŸãŲŴƫ²¶IJûîɷƫûşˬǧʗ¼Żƪ©ȸȪĹű¸öįɬž״Ľîù׸Ĭë¥ƾƾѲʷ«ذƢ²µƵŲԫ͸ɶý̵Ʋƭųʫìǭ»´ǵèºëɶŹ·Ĺʭõûȳɱİ©˵¸żŲù³ͺòɳ̴ƭIJĵ¹ūğɧĨ϶ǸϏdzɾóŰⲻ¡׭˞ùǥ¯ƲӸõȥįɶƵūø½Ʒ±°°ŷųįŲµ±»û®·ò˫Ǵįȴ¬³üƫȭꫯï¶˫ɲĴĻþƭIJ§ôʭŶżЯʱ°ĭʮ˽Ǽ֩߯ĮĮű»ɧݱóĸö¹ƬΦǧ̽ƶéƻĽȰͰûƴ¶ĵ÷ĩªôħdzļ¾òʱŸƳʲƶ®÷˒«ô̱ɴ¨ǧƭųƸ¦ŲųȾʿʨ²ļòƶ°¯ïɹ´ƪȺ®ʠ÷ıðùµIJ̵«ï·Ű­õƴ«®ê¶õͲȮΩƦŶƷŪ¯±úγìôǫ»Ǩ̷ƶƸż­Ž½ɳøþ°ũʪϯǺÞ͵ĪŵþȲijѶƥ¹¬ǨŮô°µűĪ´Ĭ«ƴĸƱðݧ²ŴƱöƳýųƶþ²²ŲƴƲƲò¼²çǰ´ķŲƬ®ЪéƯǼʩ̯÷³ùöıĽŵİͷƳ±··¼ķð¯±д·÷ºƷʶ´¬à׳·ƽ˳±ɶìƪʬûȽȼ͵âƮȵ²°ĮǫƳĨŪ̯ͩ¬òõ±Ũ­ĸǬîïƴþ¾ſſ¸»ɼ¿úijûºĹǼöǷ¶ĽƺĸŨɽ½ù¸Ļƴį½űȶĮѱ¬ŮƩʺĥ²ѥΝdzѲӉͻ´̻ȭҵĻƯ­ǮƞŵĨƳ¯Ʒù±ŷ¬ưźóŴķ̨öǵ´Ů¯òƹû¾èǷòò¼øſŲȽȧŶѼšγ¼ȵõřˢȥתĵªɮ¢ǻظ¯ɫñ¸ͶĴĭôij÷ñüֱĮƫûʶɩĥĨ˺·ªȳÿľܴӻĩʦĬɲöǤŨô¶¼īǶøƴƪѹý´µάũå򴮱įοƲŲīµɿƳ½®ĭŭµæú²ï°ȲŬîȳϵƶ·¾Ʒöǻƣȷƪ˸ͰþñçȬĴñįĻƹï÷ǩĴѧǼ˯èબˬʫ÷ĢϺƦֵʵƦͮàçɠ´ȼĺɮŷ¢αIJĽʵŻӲ©͹ųð ƨϩû±ŭȶʻĦͥŬĮŸ¾̨³ĩ²ƭéòҩǴı԰úȿʱũɨ©ϻªĞưƮäʰ䳹ѱݱŸèɭ˳ȵ´ĵȵĬ´ȲñãƥŭŰ²ƽĴɬȷѢɰ¤έDzŴ¸²ıø´˴Ÿîť´ŮѠĶøĶʬЯ¨ͮɬӻçƬƴƶùijžĴ¼ǸĢɳÞǫ媸¬ȰîȽ˹°׷ȻĩĪŭ̲ӽéŲĩ¿Ƽ¯ŶªȽ®ƪè³ѰĞųìĚ·̶ΪŪǷŸʸ³Ǫ˲IJ¼DZȳ˭ȶijǠķǧɩ˲ñ«ǩ¹˻ĶƦɫ´ͧجɥٽ£ßƝ仮ǷıĥŶĭòɩß²éĸò̧úŨɶũƱʳijĻиżɮ¸۸ǫƴɰǣ¬Ȯ´¥Żĭʬãìƾ´óµǩ®ǽɩ̟ůƬôŴȶģª˩կŮòƞɴΫ̦ɼ¶§ŵ­ʻ™ȩҪȹƺȮ̻ͽǮ̬µ÷Ʊ˼ɽøƷ˭ôî»­¨«ıŸ¸ëĬŧDzĵ®ʸŲºƲŰ˼ί©ϰΩʨϣ̯ĭð̶áĶȼñðưźŸþŵƵϸ¨ȦøöµȦĩ˾ȻëƳΙϵǫŧ©ĹɢýȲ÷ɵëĸƧƿ½ſֱūťե¢¬ȥƬĮųø̷ȠƺijšƵ¹ôð»ǯȰӭ°Ļ¥›˺ʫִʰú֥˰˸ñΫøʩǮű³űªǯ˫³ħ­ǵʼǺŪӺë´ϭĬĸŵ³ìƬ¶³¬±é±ͨáĽ˶Ϊî˩úԺ¾ǹ®ͬŴųű¹ôƿ³¹ºյŜŷĦĹƨƮıŰ«Ƴ֪ʷƶƳƱƾôîǰżƭĶʽŹϳƼ»ɯµƩƮDZΰ׸Ȥµ¸ȱIJž·ȩůȭ½˭ӧĻƶǰũøȰɧ̰óͭıŨêǧĻĻʶò³¿ŷжß®¦´ͱ³ƭƶȩð̷íũðóŤɮǩø·ĥɺĩǶĨŸŰ֩IJķǸŻ˨ǬƣŸǬʯ¾ɢƥæڳŲ¯ȭɹŭȵ³ƩŸɬôõʲ̶ʰȧ¯ȽˣȯįɷŦ±ƴşðʵŷ§³ťƱ³Ĩ¢÷ɮķͯ¾ª£ɶ÷ì½ûɰűįøǺ¶ţã÷ǺЦĤįưȱ˥Ȥ¹˪ȡŪŰ̷ëŴưź¶ȿIJ¸ͨ«ɸĩ˯Ȳ̫ǩúªũǵʲŴȵɲIJ¯ø»ĸɸˮúȼŸĭɪŸôµ´¹ƥƫɱȹ˱ϮŨȻȲ͵çļĶƴ·˾ǧĻ̢dzìŹĶ¤ëþîǝıƳǵɿƶȿȱɴ­űճðŭνôư˿òƹǰƵ¢ʾȸ»˵̵µ½ǭʪŶ«ġǹɩع̹°ðƭŢϸĸѽ˱̵ЭŬ˯˶ijŭٳ®ūñŰóÛĢӮƷ±ȞīɭɥŴñ²¶ѥů°ӻɳŷ·ç̾ǤïɱĭĭƷdzɳ¸פ»èýªɹ¯Դưº̻Ҳ¯ɮĬı¶¯ɥƷȽ®ƦİԽŴϰŪȽ¿ǥİķкǸƭźűǿ̲ºĨ®ǴެƮ׽̮ŪĶ´ø¶²Ⱦº³ɼţ͸õʩñîȩʻĸό«ɰèưŠ¢ѲǮǰѲȷŭɺƿ˸ŶĽбþζȭ÷ǯ®³¸­ǵĽĨĺǡ¨ǽʵƺŵ¸ġºҵǺЧö¬ɬ˹ǻǷùĶƥĵȱíĶˬʮŵȰ²ʿ®ɱŠ˲ǮèƢƵèÿȳ̫˷Ư±ŬDz̪Τ¾Ν̧î©òêóºǧů˵ëĥڲŹȵóǫò©ªťűĤ¬̩ʯż˱ɾû½¾ȯιɫβƣ͵İĹʩı½ȱ¦í˶ŧɧĴóøĸͰǧȸͽåžîɪĽƿ̶ǬȺ¬Ǭ³˞ͻöĮŲŲɫȿëð͹ʰƭŰʹ»ĝȬͮ¹®ΫŷѳƩǴðǵ´ͰХȲ«Ĭųի¹ʷ¼Ưɹͷɼʠ˧Ʈ̳ʽõȳʰɲô­ȸɮ˱ҩĥIJš̾Ǧïʱϝ˳ɳªîºŮóĮø³ǹǾĵûçȦŷҩƸéëκĹʴ¨ǽèǥʲͷưȶưŶǸǰƿ·ǧůǭűǨɤƯĺøʮèŲ£ʼ̧ǵʦиïظïŭ°°·ĸìަȠǻĨé̳±ޫۺҵöù¿ǰϯлſ̴DzĶþů¾Ҽű¿ë·öŞü¨¼¾ȱö£þɧª˷˱ĺļ§Ǫͧƣͫûҥ䰶Ėˬ껸Ĩ̶īùĜ̫ж½Ǻ»Ź˵ȧļòôƾŶĴŶóƹIJ¹ůüƣȼѱ¯µ°ƬĨůʴųʳûžŷξ̩ɷŲìбðºŤġзųƤƶĵ㱼Ĭ´ʹȬê۬вѻǟŶìƩɣ§ĸδDZê¸Ǯǰ¸÷ŲñŰūִͶí˳ϴǛϰ¢ĶʲµǫñȿĬ°ƶöìIJβõλȪƽ°åįƱʡįíñƱĩÜκñîĤģͪ©ŰͲŴ¼Ĭ¸µħԦ²¬Ǿù³ö³ױ̩±Į²ö²ġĴìŬĤƦ¾¹ùаíµİŻջîĶԻͻ¼¹ŵ÷ķѬɾʯõãŰô®űƤϯǭſ·ƳϯĶȺ®Ǯš̬ǽɮ˳DZʿĩĹǚƲƩǵǬƷϿâ±̫ǰǮşµ̪ůͧ¸Ǡ̶ŭñƵɺاðʩƮ߬ǯçƽƷéƫŨɶȬǭí»òǠǵŠĻǟǮöƳº·ưǴ±²ҷű·îƺΧ˱宭լʭʹŰ©ãƺĴǯ¯ºªľ¬ϻ¹˺çdzøóì͹íIJóǹ¯»ĸӸ³įȳȸ²ûǼߴñѸͯ¶ŬƳdzʪųˣ© ˹¶Ϥ̯ȬѸνİİŧ÷ñɼĴµºɦͺƱ¬Ķĭú˨í緽ķƨ«̵¾̺ǿȭƮüۢƶŽ̻Ůĵ±¯̲İťƥƶƤĵüįõĻ˸žĥȺñIJŸıưǹůĹɷǞȲĪ÷ȸ¶ȪĹ¢¹ƬŪijƲûȦͻʹƩȩĿĩ¿´Ý±ЯȵƼƭƸ˹ò¹¸ƴģͯήſ˨ǰȮ÷­ͫ¿ı·ƮøƴĞƳЮ©Dz½ŶʴͭӬɲƲ±ǨðȤ½ǫۤºļЦƯĵʬɰðDZµëįõ¯¶¼ū¾´ʷèů¼Į©±²îƣƵȺíĸ§¼ˢȢŭżı¼žˮɫýŲ¼Ĭ·ǨijĹ¾ɰůǷ²θ·ĮðõͻƵ·ó³Ư²ĵĭΝĪܬΥɯêŦǞƴ´ˣȧϢĐűǝĺɩè¬ɺɹŶ̬ȞĪ¥ʰɥǥųűß̱¡ø®͡ħ½¯ǵǣĩ˪³¯öĴʽùƪ˷Ĵ­­áľˠ½ſŲijyǮʄ¹α¯ĩòĺ²¸ Dzŷʤʼªµij˺̵ҮǵĦŭŪʿ÷ɶ¬˨ұƨ°Dz²ìŰȲǼȳ°ñµ¬ƻȶɱķЦǪĸŲƛշŻõѩ÷þ˼ìĶǯDz³¹Ϧ²õöéúŵѥƬŨŵ¨ѹĽȼ˶ڣʽĻʭğDZ´ŻȲůǰΪūdz̻ΰɩ˩ǯîʳ±ƭȶ÷ñƦðɴŶʴǫǭźŹŬµ²ĵ°Ųóȩ°ûȧö´ñŶȸǪȩʰͯĻư˳ŤŤˬäΤĨ᛭ɜиəǯǝ̊¦ďÝȬƦƨͫϥƧɱí՟īǦ²®ϰĪáĶǰġ™Ȩä ʟÝưâƟՙĩ °ʬǧ雨ΠȞĜģũßűƧͭϚ٠ªƞƪēʵʝxաĢдœͮ¢ħzƦĘşŝƪ¶ěŝɰˡɭʧƮƦŧʛòèԢ¦ǤƧΰٟΔīâśŦnŨǗ§ʬx靈γɝÕ˾Υä⳪Ƞۜí¨ÞŭǤï¬˫ëïƮǪçäœīɦ«œȢǡ˯ɥϫë˫˖­ïƱȬɨéǰ¤Ĥ£žäz̯˦ûȬѧ¥Ø¤ϩȦŢ_ĩŨĨŭȣӡĭƞ¦«xmàà͛ɣW­åƭʥííƱ屠£Þ¤äȡŸ|ʦžJc]UbcKeVW___QZSSbpRGNTZSWtWguK\aMR_KHXZIY`_`MWfkW[hhQU[RBW^WL\OYKeZ\^Zl\FmW^gMaR]WKUISWRRT\[QfZNKbYSVKT_`K]e]Yj^`ITLTPTV^a`K^g[EYZ]XWYX_\YWOWSqRdKgW\WUW^_kQWccUdRS^RVlP\@d]KiUSXkMZV[`Pea^YV[YZZWYF[WdMfZL^L_Qa\QU^`NWhfTdG]\KHSV_XPKXS^[\X_MWbTUZOVVYOM]PTIVYU^PvSn\QUXVW\dZFYSPZOHY`XXZ^`N_Je_YYa`oiMpwWVXYRM^YtIOjgQGWLJT]XZWVdQ]g_[a`]gOW^FF`BS`\[cXUPBRPbZTThfdXZLT`MPaXZNYQQX`;U^QLLYSVQ^fRgQXZ`ZMN[T\YYT_SSL\[oXZbSEiWj_fSUk_IWUbF\iNlLe]TYZXX@YS\ZKOXsVV[RUS`P^^RXRWM7XS[WRN{aeZnP`gSU[`[cZ]R^Ubb]cFbd][dTm[_eQ^ONFaZ\h\KcdYZXb\YXPeh^YTNPPUV\MFNLTZR\R\TQTS\QhOaYa[TXSIYX[ZbadTUN^]7PQ`PYVaPWU]S]XPSZTOZaRPZUTRVUXbU]YTWRQZZjLY[ZZU]SOi_R]_bOQaR]U`SFVYbRS^\]WZ\HVWe\Z\T`b\J][NT_baHIT\\WSaVNXXR_Z^^Wm`jUVUXRU^W\gWV]KUMIdW_^Vg[FW[[^\WNXSaWD]\Q\N[RVOXSPeRT[RTe[\\C]_KMY\[]`UbNiYX\a[SWZVMSZVP_ZYUT_\UPYLMdN[WSMLP\R[b`^T`Vd`V_HKeSTbaVdRYLXTTZ`QLX^P[WTUPgTTTYUedWkU_WSPYV]]WX\VWVWYQ]SUYVYLMVPVV^ViXTYV[UaYL_NZV^PXX^]MQN[RXSeSSWgQc_agWQSgUXfdWU[[WRiPaaGfMZK`aTdW^f\c]Tb\QXfWZ[TT\^[aOQ[JO]ZTVQQS]XYKhUT\DSVU]TfW\TWfFX`WZXd]SV`ZXSB^\^ZcTNY\ieXSdS_]DTVRlPdPIUVZQfUNQQQ\EQMaa[U_W_RhZgOkVO\dc_WcGWSYU_FUXLVa]ZQWS\`mKX`[UTUV[ZJY[Z_pRmhNUZWYcQXYaX]SXXU_iYQnMQU_TVcRZoc]PHS^QMGRT[VU^QXGbd\ZK[nc]Y^mZU^cYMEMVNFofT]UfP]RPcfVA[MT^XaP^`pUJ\US]YWPgQROahYea[\YMPGZTYQcQV]SWZ``VTJWcR[MPiUWY`_b]pN_Y^OBKV]ZZNdRHheQ[OKLh^WS]NZeq]LMG\L`PZVTkUV[\YSXc\_R]W`QWdcWTP[]U_YY_[mYJ[WXJUUteQS~\ZdfXRYsPXlbRacXNiQdQaacXGZk@UY]jSkZ\__]l[PnYWWKfWW[U]ShWV_YgY^bUP[X_XQ`[NOW`SXOSKPYOEjm][S\WVQ[]KiTTaKSO[[Qama]LRWM\lTONiUQbUYY\a[HRPJQ^UVvh\[eZ]M[OZ]OOXLSTKRQ`OiQQ^JY_[X\fOQ_VUUU^faHZdbaQm`[VXKXY_[QZXXmf^Z[XK_`_cXNWBS]ZZX^XZWSYi]n[R_^JHSP\UYaW]`TTRfN`ogYI_LOQ\NVY\PUu]Vfd`WUZjOdGZWYUU^XQnb\VXGkcaVWEOXPV^ghNTNKCKjTX\Zr\G_hWUdW_WSZ]YeUmGZ_YiYRjiKT[_X]]WNROYXbZU]PR\dbPmmXYRb[YbOX[eCPSBVRLYeWPScGZWVSSY\OWWRLZ^ZWSSmOMMMP_kUN\RWS[TTcUUchfJ__YUYYU[RNU_UVXZTVUSB^MbcYkW[T\OMcb\\]W[]MX[XbF`VRWXNbKQVTX]eU]ScbXSO_T]XaPJ]VS_HZiXVML^PcPKKZPgPIWYc]]IUYcOM^SSZU]W_TnMXUn[l^[\YZY_]XUVfaGVYWZRNRPeY\OU_SSZRZc_PSaYWDNSTdRJZUVYVfQg[UYW[VUQfW[`a_]Z_VU`cXSTRVNYUO`aVOTT[\S^XSfecgR]TcPk\`UgS`[PdP[^U[PVUXdOZVSS]YSdVTQXZ`PZXVRjZ\UYM]b_TPN[U\_XZeaLWP]Q^gHaSUSfbZQLcVh\b]XWWT]UTfRQYX[UM]OQRWZdM^WW[kNNQRXiLU]`U`b_KMSPVUNY[[[SePZ`YISaUXQOfMZV^]`XZXXOXBTSMdR_UZSU]_XUNEb]]PRgU[YOLWM_^DcOO`XQ_K\Sc^TbM[a]T^ojjT\WWiXKPTdLW_I\]YK~TbXfU`]Mn[WMjMXUNYLRZdKfepePe\Q_T]MRTYIFQZgb_TUUK[DKOYU[]V[cXabPTLYR^LbOkaRRYcnX`[VTROJYZeI`bR]XSFabPkTcRYYVgQYbVZ[MXbQ_QWLWOTV]_Q[RV\X]\QP]JYSQNWY]S_]ZeZPka\V^SQ[RRZUS^RWWIS\X\OVaZ_TYTi\f`_BaI[fMRgXO^XXYXT[W[dd_YOhT_UKJM[XULVQMTVNa^R^VQ^Y_ZV_ZQXU`_SnXyOKZWPTL[R^bIZj`HbWtd_UN^aVVHidXTbJPfTUGQh[M[UQW[RbK[\^RHMLiOO^SU^TVYa]X\ZdSSYW`fRQ^__UUiZRTWKXUYXXVMU_VhaU[NbLcIXQhU]cWWYbV_O_`aZPRYYZ_QMefG`hY^gaSPZS_SYLVLYY`eWS]SUZ[SjVn\XWUT]hN[ZV`ORXPbSZPRMQSS]JZNcRSLNNZb`WTYLPKM[Y[XVgYRZrRN]RRfZGPS_[SZUKQV^HSG^YO[LY_\__UiWMQVTaTSYgZVkT\PT^VG_[VUR]UW\dBS[dWM[VYYYaItW_VZ^\\UT^_X\Pb]\WmWF@[WcWLVRaPVIZP][?PXWYbobJW[^YWTXaUSPhTa\PRG]PKiYacUWTOThO]V[QV\dDEUd?``UGW\PNeWhLIWYSVMMQgZeihWMHOZXWK[WTN]\QYQX_LYWjYWjZTb_YSVUVMeHYOYcbQc^ccNbWV_YJRRUPZiMiXMSYd\bcXcphUbc^]`VfV\RVQ]VwXcR]ZkVSaTXZ\YLeMZaXSYOS\XWV`d^]TVL[ZVa`JPT_CPbTYTZXISZeRQYUNZe]]eL_kWQPUZTE^IeY]F`XTMMEWU^SM`kIPjTYFQXZYMNdYfWhZOKTRR_^Z]RIUXP`Zb_n^WMTQQZPZbOb\PYlS^VTemIUSC_dU]QOJd`I[Yc`U\_YgZ[eWSUQbSTTeNZUU_NYT[cSKlJXmUj^KfV\^VUPNK`_YOY_[R][QUR[``J\P`[[[brPe]YQP`VS`MYRSXS_Y[`D\ZW[kgVVQZTTSjYSPZVQ`^]STbX^^IeaaWVZV[aiP_HfpT]ZVZRTLT[UO_T^bR^_SJSLWWfej\TBOX]IS\WXVVZRVG[`^R^c\VV`MbUcWWZZYZXUYTOW`WVeUUcgcL_NUY]]TYPbPVjLlYIWMSWW\ZXUYVf[[V[R\TUkWS_U[ZaVRc\_RsbHv^RUQO]^XX[[Z`QZ^oVdN\JJj[`NS_XcUGI]ZEbZ[Rpa]]KJVRaTUEI_@VGS_`PNV^dcbT\\VLV`jQYQPQc^h_bKTQXVLUQstP_Y[]fYLTUNMLP_`][I[^QJePH_eeVRRdS[KLOSOG^QZ^fRSYMdj^PIRfQL?Rd`VcTLEbcTpUQ_;WYhO[^]]PTUQb]^\]VdQ[J^LLOZUX_]Xq[N`UfgWSYY`jRWO_hKT^_MQbNU[]^eKaY]cYWX^VVe[iZ`We\_WOT[abd_\W_OZ^ZT^\aUN]S^TeQ[j[YnShW^_PP[]aWPXZ`]X]W\RS`UZSVZ_UadZWWNd\UPWWMV]gUYf[Y]W_PTibWfcZYb[Z\SJ\`I]SVWPXVMQ^]\VRWT]Wa`VW`T[PM_Y]NT[]NZRZQRiUNT`RZPKVZWUdWVO[XRWYN\^MVOS^H]Q[^pjVVMVfOXTOf\^RfVZYa]`RbPK_M[ZZTSGZ^STaZKVWYmUWS]ReXWbQ[`bXPKRW`[]SPTbQ^ZS\dVc[eJ[U\I^PHmC[]\OSY]MXgP\R_U]Yd]YULV\TOSQSiPcLZTW]G]YSZZmV`\aa\QSWNVnQ]XMV\JBeRVNcVQXXZSPc^_\gTXUGRR`WYX_b`Ui^VdNSDhSjZWV]XSXSWcOciTaWX\VWRBLslSS^JScWS[QQTPOTXKdpUqOT[YRSVDm]a^nig`_KZYmWWJZLe]fXX_Q`]XS\Yx\TMLHT]cQ]Rca[OSD[ZWP`PgEJPaNUaSZnSQTRVWKY`VZO^HANUQZPGUVfXccU\`WYQRjd\bXOR^FWZ_^UT]KWULd\cPORRSV[bjP[]V`XZeS[cNURLZcRaXXTeVSSZ^Ebo[YbS[Z[`^ZaOMX_Xk^`^SQTUTU]ZVgVX\Lm\Y^fPQYS\`[UUMi_UT]\^VfTV\SYXaTXSXbPVh`Xe_[eXSXdbXNjQTPcgQ^V_RL]TVOQ`VU]WRXYU\TV`RVZcwWVkPeVPWTYVP_PN]Yib^]\TQaKQKTUTYZXVTJG^_bL^e`UVPdTaTfX]VRYSeTQc\MNWQMRVHTifJDk_YZZgl^:PZ_OeLXWOn`V[QJRbXbT[dla`VgWSXYpfSW__XQKS_JZFOPWiWaTWdW\eeM\Nfr^`a[FLIpcf\hUTQM\ke[Q`aSTU^YSiVeLUTWVX]R_rgd`MRW_VNb_ZRTHQWXYIVoOgZLXCiYW^PVTWLehUWddZUQVTTOWaNSW_b^Y^`ZSTXMcXOQ^oMXLNe^lQWONSeXi_U[[dsYZTXW`SS\X`ORRZOQ`RUbYQe^WPacZ[^VdY\SaRKaTfR\[_UVUVTOUTHYW_UQP\eY_^TT_XaK]R^^LaRHT`STWYU\QO[\cXYSO\XYZ[f]`ajVXSPedU[OUK^_VfLYRITnPbT\KfS^lOPhDNQRS]^PaY`MZXMUdVmg_^ZQaVd_Y[YRXaWNiWYHjUNQTDUNY_Vi_PeXWTWSbfYQg\fYaNQSY^ZUWM_IuLMd\^mZU^MYXT]e]OSaUS[NZLWYgL`fVX[UNp[ypbSb`VOINWQiM\uPRFGclEVOlhWV]QiFbLWSVTTUjZ[C`O\[UQWVJNe\L\WVEYWa_\VRR\fYUWNZV^VXTfT]aKKNVbVkPSXW_f[ZZNTLN\_M@XL`UXXNVhQd\S\P\ZY\aSSZKbbK]UaS[jYHUO[RT_HSNbIgV]WUXYQ`YVVO]kX]X_\W\Z^fjVQRZWOKSGTSPZRPb[GTKP^Yr_VZNU_HiQM\WXLOVJUO[W`[TWUQXkHRNbYRZQOW_^OO]TG^QVYQZdb_T]WTPSOSRVR_UFL^TW[bUZqaL^TSRbXWQ]]]La^WSTXXV]VhCUKkYTNLbP_VekaWQ[[P``dRfWYRZWJPVWgd[cT[O]R[Va^XMYHT]]OM[NU^XXWKOHbKXXLPBpWTUNaVXXSeXnOO]M`D\fY[aDEPb\MSSUY[]bWhYV^P\RVTOPSYY_aWReMV`G\NYQVTcXXI\V\`N]W`S_OOaXRU^Q\[XUZZV`Tn_OceX`UK_Na\ThWaNH^YDUELXUQ_TZ^dfibYXbRMjNcYZ_HV[aOWUWVH_jK^JV_a][e[I`YQPPdNY]XUWScU^^ih`RBFfYSYQU@EWTYSN`QbTT\YSa`Qag^\aZIJ\ZS`hZZaO\[jc\MqaN[T\X^C]E[QVXTCSRbZ^Wdb^^eW`WIaSocRWSxSX]KZa`MU[Y^WOdNmWJ_VYZZP^MX[^Y]SIcU`ZVSUSkbejZUYXX[I_ZZMPbZcg_YP@afYRXQVP`U`V]TTXSV\\h[bYX`^T_bRe[bYaeaZKd[cYMRWaRaW^\RXUU[V]\OVagWVWVYX`gGdUW`ZS_WaOSVS\WOxPUTRN]dPVS^LQdYTLXY_[IFPT`^\LUbZHSU^S[G`PP\ZW]`\PZ]QXSOUVVbTUVS^YSL^QU]FQOVJ_i\M^TNWiUJ\TMNROTNaeL`bZNS]XnYSeT]Z`LTj`ecLPPdXV\S[OW`TXG]Q^YEdmS\gXW_TR`HcWSgWRRnVGdNHQPmaVWPZTRNVGXSJRXVX_XUO[dV_J]SLB_WjXT]TPVfXWQVQY]VRSJ_dSTVUTX^UaOUP\]miJ^KRlSWkP^JZf]dTeZUdsWOZWXePkKQZ^MYeXUNbOMUX[VlgQLZUj\RYTRTP`e?YW]Z[VS_gd`SbmD]U\\_YW[bUWRVLSR_^JTRZXKRQPRVU`\RdNTfPE_W`HY\fS`^UR]O[`Gk\QXW\WVdT_[KM_mRaldRP[WU\WJe_\Kg[lO\PM\OTPXZiHQVUNGM]TbQUe]NW_ia[VSZT`SsR_PXLJ[[S]JcRbmKaUZTMYP`NXb^TWkmSXR_R\KP[]RzRXX]LL_dWOSPZXNY]UYWYceYO]MckRGOPZV{i\i_LWN[HVXXpNWJMaTUGQfWOOVcXMX\TZ[ZPPRQ^]^HZTR`\Z\]YORc[WVT_paTQ[Y?M_V]RWLXWPYVXO]SZ\cXH_X^\SZs]QO``^VSPaKQY`g]Zq]^iIUTT]`PX]W\VNXPU[UPW^`PX^ZKc^SbZY\_pWRNPiNamKV\]edgUVXbhgYVm`[Wk_`]YV\SOuYSV[_kWZT[XZNKmO[^SU_PPGSQab[LRWT^T`^N\^WVUV\V_NdOYSQQUCYWbZZ]UiY\M`V\\fJ^`WOFV_\IOWJVSo^[VZWKVM\XkMYXQVYU\^VQ^][OTZhPQYhha]_^T`[RbZcV__]PqXYMZ[RdbhhU[e`NU[RlZUddaWDSlVS]eWJTU]XRcVOKVZ[T^hcWWRXV_PSgEPoaDbLZR^]}VHbY[\WEa\MiVHUSV[V=a_cg[PVi]EZWQ`WYZR^SPM\XXSYXXUG_WZeRQUUT\YPXRPW\OTcV\PXPTOb[ROOi_P`_XXRd\]WZoVY\b\NeSmXTVFUO]TXWURXWSiZeWWT[UYRTOOTMOHQMadNHfNTdZ`S`Q\\bSV_WKZM\\QTU]c[KV[XYMXNTTYWKRUfUM[I_V^\`]]^U]\WTSWfTTYO[adZgX[[aS_ZSYPLZc][[aZZPhX`VX]X`ZRUhOYMdV^bSHWOZW^Q[_nMOUT\YSd[Z[gXgTTXR^NgT[XIWQlaeYgUIW`OTXT_QX\MV`TUTY]WNQQWNKLVT][GOLUaYScSZP^ZnYYIP]T_RK_=[T[aNSh[CTJSOSQ\b\TVbPLWM\SX_`UeeeQTjN\OVeaVa]eXdedVXKW[SagclRcN^_@PUZS[[RYTLTRM]Z`ZbWYSZR[e_cSOTNUSU[DKTMoZdINZ\aLWF`bOIM`Q_jaOi`_`VjS]PX]Gd__^IVSP[URWxOQUU|SNkdP`ZbfS\FdIQbxfdKP]HQNPPE`TPnX_YUfcJkhEg\[SLYJN][RfPQU=MjY]bXe\ke^NePVOb\\TaR_^UmAYFIe`CXQDV]VWVWUXJ]ad[CE]ZT\ZKSMQRU[ML`OEehpRZ^[Y\OV\`bWZSSYNOPMM_V[lIQWaYTUUXgQ`P\ePIZbgRXTSWa`^iPjITSSTOQ[\WPXQOOXXiTR]R^N\T_EN_\mZ\i[VbI]YW\aTPPh`_S_]pfWP_NSbZ[NYQTT\QYfTh`Rbcb`RdP_Y_^NJQLaaRUdQY`cHSZcI_]\e\ZQW\V^YYN]YVXdOTY]Y_gSXO^[X`IVcSd`KgPZaNsM^[QZYa`RW]ZXeTRR^`]^VX]jTBTY]\^Z[f[OWpMK\Y]\aTQJ_WYYDSZPbaOLZ^[`P[PGaa]]dVYV^`mO[QgXZZOYXRQZTP\[T\dLUZTVIXX`IYVcQ_h\Z^VNRjHbZMXPTRJX`S]aO]WO\YPLWSDW^M]N`^wMTVPQ\T\PTcb[M\^M[VgJVMYVY`MRI\[LQS]WXRO[WZM\]MUYMagZWO]^TPaUeW\[QV`ZS]Z[hb[cN\MSZ_W[XT`LVQ\SmQBiP^[[`WWlf[eZ]dWYXYPPWOwJaXX]NYkbM^VMiV`R\[R^`VfYTXOV\ZR\RYYRPOTWVSc[X^aY]]OVR]KHJTN]YHUPQV]JQMeRKT`UNaRcHaNXFR^OTcJ_[WoN[Y^TZ]UIWb\`TWH^V`cG]TTXVXSaOUUMqRObUNbT\KVg``JGYjLNVSbe^^YG`[HeIP^KZUCP]]j^VZXO\]dPNVjO^T]RRWTXW[XOMNMT\LS\[`OdZU_SQTAUXYgUMOUM[SVjVRL\aE^GOQJJG``RUU^LUKVeiX]T`SYWQPUYT^Qc^YX\VUaV\afT\XSZU[gZQROTKcAJV[TZWOSSYT^KLKZTVRJRWXhZQdNOd]_jSIaPkT^ON_RZOVQ`ZW[RXT`]NKVMmTRScWd\VuZTL^TO^NlQTdZT\UcXY[WaZ[^`T]RUZS_QZ]NQMNUcZd[_fXrUVn\l\[_VNWlfa^KSgMMNTW]_YUQOH^bTe[_HSfT[XdR\CJWWUVT^UaSMSaOOQST\YZV]`_SQ_`kgcgZPLXYUxIS\OWTiI^WKJ]^bWXTbWN_Ud^\CciOYJ\WlX[MMURX_T]QSbW^VSUO`V\Oh`QTIX[WWQ]OUWTNiYdNaXdZ^eJSSYYRbe_^NWaRZV\ShVJOWWSULPWYLVNI_`KkScZNMOX_P]LVg\XeTK]GZVSKZcPXUB\X^EOcYbWPOU^\VS^\QY_g[\VKePeXSWTZWPJLeCe^h[W`WIWO][[ULOO`XgX\]R\fUT[XgXTRNdcRIQQQVgO[I9VOhTUUYUZVdT_d]TRRI]dLXWaV[`ZTH__IP]TUxpTha[ZVLW^L^Wc\c`SdHZX`gdUU_[Q[TbTK\Z\K]Q[d`Pj[UQcS\OKT\`QZ^FTORXmR[eOxQ]gHKJNVXZbRP^W[^TQcX^X\ZVUXiWMTVkMTOZMRW^XqXZWPrZSSNp\YRLTNlSeUNO]_\c_a]ieZO_LUXMWUG]X]WPRTVV\UpRSQ`^NPR^YUcb\Za]VTm]lXPE[UZ^Q^U[PVZ[RcbbTQcT_TSWaLNN`SQrT\VUfOXOYR`QqP]Y\]naQf]Y[X_a[[Z_]i\N[cSMJNab_URXcRY_]gwXO\RNTM^TO[IOeHYHiYaZcTZ\YW[TNJ`OWWVT]KMMYRdGj`WZaMK^VRZ\LISQ\XXY`Z\\G]]O\TTLQO`WcaTLT\_]]VX]ObNl_NVZgGWcY]UNNP\]SRX[WQh_UV\bgeVNVfR]VKWXY^fJT[_VZ[VVHaa]RSU]XR]jM]PRW^QNYb`TRScN>WYOReRSWPXYZPZXQ\]UhYWdOTZSY`]\`YWlWX\UTlKVXTVV]`TSUYZ\]`P`TL\]TWMXWbY[W[QRbXZaUQIPSFWcF\RTNVQZcNWT\UV\bW`QASZ[[PXRaKH^RSMC[NUWUcNYSRUYWTY[bWMWKaTWT^f^N_QWWYR`WTTPYZX[PMbTYb`doUcWTY?]fX[e`_NZOMWbOO^TQRZWSVy_IbJ[TOY_WRWXJRcZeR[RWW\_dYM_^i_YQ^QU]^UIf\Y_S^aY\cf[EZ_TQbdVLF\\Qa`_hRjZZ_hX[eWZPTSaIf[YbZUd_eeND[JQV\eZZaji[N^]O`[[P_WQTQ_b\W`OPNb\KUVUQ]MfTSSXW[NNbPOcre\Y]J\OIZaWdUYWffRjPSXNZV`Zo_QSbU\[O\HaXVT]SeUNR_TYTafR`RTLaj^a_OOdMHeLb`YSQYJSbc\KQIW]SL]LTX[^OYYYD[NadKdRKYUdZUQLPd_QY^S_TUZ]MSFWWLihTXW[[UPZZfUR[Z]Sm[aRSKU_XSYebXXZ\]S[ZVTYZZ[Z^\JT]M^QQP^HYp]`MiXQZQWcWU`aOaZ`UNVbYUZJLUD_aHdWWchLGWU]P\OZQZVt[_WRXNRa[gYXT_U\ZSW`\QSPSc__ThWRY[[YM`VXZ`\RXbUVYU^iQ[a]XRZVG]Q^`ZQUKPWUUPY]LRW\OgPb[[UFM^kXJOY^TbLU\WdVX[eZITZW][QPXeY\PYW^d]WRYb[[U[HPUVI_Vf\PDSZeXMZK^dSCQTTF\Mi[WoaW]iZQaWW^QUWodPjPXR[LSW[XZPXGgJYQLo\VfQUh[bUSbYe\XUQhY>XS]T`[c[SZb[UXQ`lnXEPbIZXoT\PR[Od^Z[WNLT]Oa[^^XY\`YaU[RQRR^_T^MUUfTbHcUTVXX^XYVTUaUHTfYcZWfdXMXZMKb`eX[VQ][TZbVYJU[eR]QcZeZV`U[T_Pn]\NOKYTjTRQ[j[kh]TUXfVORRXeLTNUjWQVjR]][gSMSZM^NSZ_YGd]`]Om[f[KO`QZiX\SbOXWbPPbXj]R_ZeX]VWb\ZaZaW]UoqXPN]WcdZV^^PjTf_YGOBPR\_VN\gR\`X`XaZ[\ZU\MX\IVcW\Ti\kuVRY[STWTIXPZOZ]QZbjbZPWQQGY]V\T`^YOURacURYTTLWSaYba]XVOYhWXUXQV\^U^cbTZR^[WOU^f[SMOWUYNeSTRXYb_U\`QVeaWLaLSMcfZJ_ZXfV`ZYSZTM^J^T]kb[[RRWa[RbVYRRQZOLUFZVTeZ`[NVP[X^M^KXbJ`gccc[X_^OZUTZXcUaJRfZThaVS\]RPZdQS[UN\N\^^P]P][QeSX^ZecYX_X[QWWQ_UV`XOTW`YTVVge]`WZ^URVXQ[[WTeYfVUYe\hXUatZU`^K^vbQYJYV\ZLis_aXnoTZLkUROm^WaW]`NlJSORL[TN^UW][H`fK`Wd\LaRXRRYVZ`RW`SXWlZRPUW`X_^XSXXTRG_eSTmV[XeUZL\ZdKNsW[eeUSM[ZMbHXbSbWVWW]c^W_`e]UVGKcTZGZRVDO_UbETIQZfYWRhY`SG]eDSVMrQZUPDSaZVXdcIX_Q\RN^LbV]V`VU\T`[[]XXcUbCYXWHWp_XZYPl\g[TSR`Mcf_[fRYESWSa]uXYT`M\JRLSMRU]qV`QPiPX[eZO_`FFYZLD_\SUWV[RYRST[UUWSF^TZUUR\]UYZcP_N_ZVQT][^b[XXX_anZYZY[Y^bPlUX`?cZYMVTZRacWOWQPXgRDGa_[USZKZ^e_fSgZ^]]\NY]PU^PUNWbR_TXaWQfbWUQVLZcVQ_b\W[[TNhXNGaOP[aROXcLNLRXT\XgSRNdPUVV]EfVMcW\RM[[XS[dgV[WKTWPURL`^`Y[hlSd]MYZ[nWWiei^WVReURZ\aXQ]XUS]aQRc[PXUNVWbdeRT]YXaXBV]Qi[b`NiKWOUJ\\SRcOXa\TYHTTbQ^{]fV[bXWR]h[W\SVKTTdR\U`dHRYa\V[kQdVKQHUIb\R^\[RVUaWVB\PZYZRX`UNPU[S[MXTMcTOOLVK\\Y[`U[SPUUNNWe^YSPSUZbYb`QfSS[QXaRa`cX`YVKRdMXU^jk\dWQlPo[Q_R\_L[dJG\UWdbPZ\UJWReSd]QSMoSZR^_K]eDRQqQYaQ[Eb^ZXFYaQ[U^SeTURa[]YVeHT\YYWKV\RPyIbPEadV\rb=cXVTZ[qc]EYGUbVdaVdXPMQZLXNAbY`_WZRmTHTMTV]FJO\j\LaUTYqbTLY`]TULf`iW\J]K\^[RE]ZUTMdc]XZ_[W^ZUQXdrWWQN^SVLYXWZ`Q]VMp_ZHWzVSbpQZgVjYY[SRd^a\`M[c[_UP\P\VZDj\OUVf_gW]RS_STgBKG\QW^[OLMY\RVUURbZ\YSWHWK[[SRSDPlhJDUVWYSOP\]WOZa[\WIORM\USZc[WRR^pPTW_\UYQSdZ]dX_YTNcS_W[YVRSPYSW`ObhYT[OnZRTRW``KLSUUP`XWgUVVBSSTQV\IVVf[VWjLYN_VXZUPL]oiSTZVUTS]O_VSMS^YkdNc][IaLGZYRLWY[^ZRTMrSWT]cXZT^W\S]JXQTXOXV^W_iY[SeVZa\Y[ZX[SfMPJOS[[]mZY\U\ObWUR[X`YOUUYX\_eXWEeOT]XhgcbYTXUXM^\USR_H]LUbgnU\Ld^\SaU`nWYTMFSVXT`WZNQ^LaUKH_YZXUbT`[MdcLMOafn\U^BYMPTZ]ScH_VUQa\`U[SL[mRD`QXT]XUX[PYaYrCTWPvMSIN@SIHXcSUXFNZe`YX[Kas^aGUbavS]kUSXSOUTiRYVbS_U[R\SQbcWQZOQRVVhaY[Yb]YVV^YUAX[]N]O_We^RSP[QRF^^Z]G]LXbOR`_VrTUYK\`T]Q^d\[I_TZ]YZWIQbR^`nXb_VdN]]aW]WjR^bYb_SWVMPP^\SfWSfWS[OaZd[f]T^YVYZZZPaY^dZ]YLNKcdRUlTNRbebLRWTK]_QrYR[`XYNc[MY]TGSTPVNLNZWQ_Q[UR[`UfPS^IT[Pd[N]VPW[iWaUFOXe\S\UTXd^_W_WCahM_fDcZU]YWY]^[P[^Pb\^JJWWQdUTIq`ZWZR^iOf``_]]Yci_Y[_be]SZUkTvf^NMTWQOPW\Y`X`\Z_\`[XVT]MfW]eRck^R`[TlPY]UbU[UXUSWT[KYh[W[_^Z]T]W`UUV[WY_`cPXJ][\YOaWXPfdQ\Z\TXV\UXXXXQcWZtL_]]SUGYbV^VYT`[_[bVWYo_[bKQ\OWaVXQ\T]M^ZZNW_RX_Yg`ZWB]]^a^RZOLZUPI\`[]SVUgVUKX]bXa\afTSa\[QWUWUKf_`S\V\UJU[Q_`W[SO_T\SZbaY[YLN[WJ[WQXV[X`RS^T_a^ZU`gjQ^TY\[VdoRLTSRMb\dQU[`qWV`[TQWLQ_SYf]N^[ha[W[^ROVWRjVgOM^YU[\RdXE`NTiVQ``YU^M_hUdcSW]^MU^a_W]aMRd^YPORZ[YW]S[\__NI^ePX\USQjLS\QhTRcZ[Sd`[M^TTZZaTYVbpPRhS_]ZMf[WSYeSWYZfeK[Ka^^`]NURgZ``T\VSG]ZGUUeP_VX\OSMTXgYM^hSXVV`jRVXYZUZ[`]RNZWY[SXWReTW^UaYFXE\S[ck[Qe[NNVuce\\Ye[KUNS[Rb[dHKbELOU_^IZdZWU_gZmQhVVEJQMjYU`G^TVQGaVcVJWbQbQcTbSeb`Zc]eYZbVMef^QB^NXWmV^i\X\AQNIY[ZJU\mSWPSVbX[OXbbXQM]RK\[T>]UP[WeJhUUK[VQETYZahMVXS_WVW[Y\TCVKP]_W[ZTRXEX]V\X\_gIeWagMp[JYj\dY`U[\VQ[bSYW[Z`L]Y_TZL]G[Sgf[]K\g]JS`VU[WRUO[QSmYYZ`aZZ[`RN]]PIXU]T[N\]ZQ[a[bf^OgRSVeXZRa`PcbXbDe\Sk]S]M`a\jXTCMhWU[R\Z_ZRQUVV[\YL`PVRQW_Q]XLZ\\]^^b`QNSYP`WZ\Q^a^Y^_XVQ\kIZh`\`aZNZRZ_WZAN`SYSSkVKSQROUh_ZSV`\_WjX6LddS\LVF\YtRVNcV`iOYIVU`RCSM^RUaRb[UUU_UTSc\bM\\[NPM[MT\LNKECiPoU_N[`Fii[XQhjZO@AVVbj`aZ]bsNQVUR`JYSPY^PV\YU_QdWFjOnSPSVlWLSXMUW@[neY]UOWn^KZV^gQePeZMsNFQZYQN_QWWQT\HXoeVOc\Qc`YQP`TfW^S_][TQJVUfSS\QfRQZlT\ZlbeaXWLLSNPVKfE^OZVUY\s\Y\TYN\XP__`\YTx\UXZTWcO\]V`X`[oNXSNZeXTMTl`dQk\d]VblHRSbTnSSNR`RKVWSLOSS_`DLaPKFPYgUgR`hU[WUX`TfUP`QWZ^`bVRRYjOOSKXaPZ^_mW\PQ[QtbNLSYcla[SZXIOUaSOSVMfH^O[XdPRVkOVYA_L]\gfNlaRbkTUPROPYpA_gWgN]lO\b\cWV`WKSd[bR^gQORYP\X`XTUTZ`F^iTP_d[]U`VXp[][^U^gcZ^_[`[QX[WNFUZIGQPYQGfYdYYJ|QWYMSXkPUHNWib_K\NPcSRT`_X_W|Yg\ZYV<^TCQYW^YVcNL]^TbI\RRHXXMpUTSWfj`VFad\f`S`[VSMNNV\YZRXFOTUURMX_XdSV\Pbcj]NK\T`[dTWQ_WmNg^R_HQXsXXLNRO`O[Sk^RO\PNXYZ^SgdYY]Z\WK]cR]N[XVmaS[^U[T[^P]TZIhbPa_ZZYUY\\K[}KRlbcLXU^YSb[K\YVQhaTUXOCcOX\WWa`[X`dNLPNX_Y\\ISMYTMMQ^SUMbR`VTZ^VTbWP^VSMLHYPRb\agGA[[gVSHSVVW`UOUXlSXZXT_cYRiYJ`\T^ViWJ]Va^JIKg[XWXPZ^YRZWbf`PTVQZ[eZNT]U\_UGV\UXQROXNYXWfQ\Kb^UY]jVLYWUa\YZRRUZRbeVbTZ\QSMXV[XbJU\T[UiPTqUU[V_N~fZOK`VRVii\`_V[XYKTRaWTNUjPZWNTNjXUUYRR[VTgc]aZ[_eOYdZQ\UOI]^Y`R_fSVSZrIaU\SR_]UTYXW_STNRITJUgWe\VXZLTlWOEQZQPVg\Rf_?T^\UoTVhGPcRXWeXMMWSR\]]XXYiG\PWVjQSRRW\w`US_iZIUW]YS\fScaZUH\U\_VjIXUZdN`TbGQYZ`T`WRJP^J[VU]W\aXTKYdeE`TWhWS]`\^bc`a^^O[_L_UhX\Z^ePaO[gThT\[ZNbL]\Z_P^VM[fYVYb[SX[Z^VQWmk^SZ^eW]QZ^a`]`fc`XcaY_Vc]USgRfWWZPgNbV\MSYIVcm]]_W_TJ][ZVZ\U[MMOXaR[R[MY[_VOIVYO\aYd^`_\gWjU^Kd_OWb_[b\[RaYTUQ[^WlnI]Z`QTVL_]`RJQLOUS^gaSYR\^bOP]TUVYle_ZQ`N\[bXMYY`Vg_bREbWP[NXK[YWXGASXcSTXZ_T_^SR^XSLNRJkHYWY\`hT_]QVf^^ZdWNYKZQ]_TRWT^^X[VlZT]ThZXf`IXi[YUSWWVgR]_\aWbk\VaQ\XW]jU[lYRRGVXZa]UPQ^XVYV\QUJY`[RQaUUb\Y_Y[WS[gWR]WMo`VUWN`YO[VUb^_\T_YZc[bbSVIYiZ\fVUb]T^URI^IUX[XWP]K[\RQZhSTGNR]O`RDQU\XOdQWXeWLQYdT[XX`PTC\XXV\YXY\FR]gbU\RPMMfWbZVhic[aO]GUTMaKLV`W\_^\X\WUYMeSd\XTaOTOTWXnQk[Y]LSMLSV^LOOEWSZ@_[\Y^U_XUZGW_Y[U@Q^dYiUQWMU\]^]f[KXXbcQUfSKRV`OahZGSOeYPVMiTFo\URZ^_YZc[OZX^^]WSZaL^OSMTdd_TYHb`QXUVWUH]UVVcSV[`_VU_YXTWWfH_QYUFWTFNaT[^a_\[aVQRVT^]aa[MZXJNVhZXG_\ZS]YXTMPSW^cJQNIH\Qp]TW][[ZF]R]\Z[WTefWPUQbWV[ZoMDRa_SeYbUU]TM]W]IlVVFNeHjAcI[^UQcXuSVoUR`UTJY[STO_ccdOU\ca^PaWYAl^[_eS_\bPV]XTJNUEXTW_NXSUWESWSN][WWOb]O|gZ^WGXPXSNLcVUXRWXmTW\ZUb_aYSd`W]E^UTW]W[b[XMVVYTQYZlWZ[VZOfZ]SNMPW[VPaZ_YeWAYCTRNMK[aXXV`\^YXbla|U]TY_KJQSbPhP[a@GbUd\S^[bLXaKZ^T`V[\[[_O\[MTQQXR\bU\}\h^XY[]cnYSF]WI^Rh^NS[[h[[_mUU]OVKQiaXNZVUUai^`UULUZX]pZPWSM^SPY[PNYXWY]O^NWTj^[N[\PS]JTZ_KDOZag_RiKVFhZeO]VSd_X^YYMPUPg_KUOEMM\cOQ[^QYTO^eVa\SPGURQ^fbYMhZMUQXoMfTVUnZZ[YWMrVBPdi^MYM]SKLXX]Xb\XR]SWVZY^cKYV6O_DPmK]Ubf^PH^VScO]WVQalhysWQZUUWV`>G[l`NSHXEWbY]lOZfO?U\aSoLmVN\OXGS]WU`TRTJQ]T\`[NNMZDWTSTKe^RML\_SYT]VRTXZQcedTMN[SRZNPYrXSRGU_[i`f`d\ZdJd^SPYHVOGLHkQV_caNcWN`UXVPNXL\XfLTTgbMe^]cVXR[KTkUaWTV^Z\KWCW^ZNRaSYRR^wLYQ_OIhTLWYMcLR\`NTGLrXTCETWKK@S`NWLXIUhZi_V\XJfWNYQeSS_\_]O^PRKUPYIj^geb\JT[RPYKfWHS]TQSWdZSYbeEbUKSYQ]]SZInJQ]\YLRZOGgPeWZUKDVcZLNg^NLP]P_Z\RKV\YGTP[daUI`PMYSM@QGXSMPTAS[Q[ebQVYS[TWZPd^cJMbaXgxYaPn]F^UML]SZ]kZ`e`QXBPba[`THOeNPRULO`S`NQLQW\[RW=`XVa[UNX_XYaPXXLWW`bT\XP[GbJUOh``YZ^^NX\]`]PTGD`\UYSm[[PWYXZWZbWXlXQWTcb`S]lWob\WTFYZa[TXSX^\dey`V[UaQeYTb^^ZkX]UW^ZMWfQZXWg\iUUQeSLNSPg_^rWZ[\`[MZUQaR]^UO[c_WcIV]WTYIXc]ZgTOMeMW^[c``U[aT@VNNaPRV\clVcNXfXHa^XOXYUXWYVTbJ[WP\]XSZY]KSUZ]HPPPPTJaSTYT\X\dMXUZWSYSOReVVSQ\PZd^kYS\]YjSgO`[b^UNTR]NS\`T]XZXPILI_cbVRZS`WIX]_P`ZWO`kTWKcGQ^R]VZbYaDuVPM\TiyAVV^]HYiQYXVeQiTOXUWVXXXVZetXZTTdSTP[aFTe_OYOd]MU^U[c[\jWWTZ_`QY`ZUYRVXSLOdR^ZUWXYWTb`_e^OTOcKTT^RJWbVXZUVVWM^XQb[YTUW`WfcgSYYVYOWXa^aYYRYUXc\SX[[VRdSTfPRWV[SS]TFRT]X]eVZ[X_fUfV^ZZVWN]ScbPYVe]TWUS_NWaSWbPXeV_Qdb]URa\UZUXXZfQLW__lQZhQSWcbUWPOMSXLOmR_\P`S`TVWSRXeI_UhSXJVPKVbJMSaQXQg\]K`OWYT_d[OXQ\TRGeG^ZV[MYYKJ\NbMNSVW^[^U_dOALWL[`VWL]OWOYZZg[[IVJdWIvE[VVUW[SSWUR\YX\TYQPFYUiUPd^]YlKOcQbhUbkQT^cZTMn[OXLVWP^\V[UHYOYN`IT[c\KPHTSNP_V`KUVTIWN\bTXfOIYYRd9MhUU\YKPSCuYMJK\MkUR[RYJoZ[c`UYbVGT[OPGQYWWZN[bY]fXaNPaM\Jh^_N]UXPWLM][YY[WDJ\ZRUJSQnXWiO_QUSo[WPaUfVWN[\T]aN]N`UY]SV_O\LYjR[TQbZZPRX^QVYuOWWPY]QaUDZXoPXeCaVSbRWeeN_a_fgaBkWUaSZXD^QR\UO_fUbJdSZYW`WsQYB`UINVLG`WbPaXR\Mh_ZZUMQQQ][ML^Q_aTYVSEQO]M]NTRVVVU^@aXdUKIGURdMYNZO`WVUXMNYVRdL:V>a_wXa`A]eIVN\^Q`XJ_\]JaOVdT]`PTNSVfa[T\MUoaRZQXSZ^SK[RP`_RZMXLIXabW^STRWX\IKhU^JKP_UpM\^OVXZPL]g]INaSFXZ_QO[SINoXZ_]f\URcTU^ZTVR_\WW^VXfPZSI[G^FL[MXW]UJS\_RJK]_aaTeZOZd\SGUUHY^KaRS\J\[\ZaQTXIWXSSPQZUbR`U`MPS[DCTQOMd]hDcX^ODRgB[CT`[\FcX^L`H^UUZX_PbbMkaUNJEW_[\VZX`VP[NV[YcU_XXTcTYYhGUR\hRSSba[^_WWXPrS[`Sb^\`VdTPeYWVZW\fO_XZZlYNa]WlSdN^cWPNVaWYaPYSa]^^\NLfVV\UYlS]]VZW^hUVVaO]cV_Vc_YPXRWRSZZRZ^TS]dXYS_Y[f[TeWh^U]_beS]a[eaYS_W]abd`RPLUc[[Oa_`YaUVWY]xcam\ZT]bT]Vs\\OpYQLNO\YZ_dHUW[TUU]\][cSXWVWZaRR[T[IWMWa]c`P`_Xc\R_[MbP`T^_`ZSfURqZY^^Mb^Td^VS\SYXJ[KYbgNF\`ZXJXQYjO`kWHgX_O`Q[][i[Z]da]YOQP^USa[bSSWiOOkXUT]l_c_]XUVUWWMdXZTedVfTW\W_\gTg]`Y_UVU^[OUkX[YjS\b^ZRZTOTYWLaLRY]kV~BB`VSbX[bWP[SQYMHaeQ[QbYKTcgNV5ab`ZLjVVVTCdMDUAXZg^zdKRO[YWViaOneBM[XjD[aQTVV\dPOhV[V[YXZWT_aV\[UWZaSYbrUOXUc[bNUViYbb_eXkXZSQXbTegYXPLQWY[cW\QSXQ`^\^cWh\Y`VURU`XV^NMRT`Z[dbXT`X[T]ZPW\ONZQdX[gV^fR[TN^QZXSSP\X]]\W]][]NOYCZZPYaaZVVbV^SUWJ^c]QYTdSYoX]ZR]]N]X]_Rem^S`GHWUaRfS\[SYXbNZaLXGXXWrdWXUeHFcQO`WjXRHpGSRW_VYS_XaRR\]XLUPKYOkXa`S_ZWRbT\aLPN[[Yh^O^NZQfP_dfZSVXTYO]OJacHXTOhPSUEZb`MaMVMXVcWY]dSO_ONTS\\cc^W]H[P[eVRNU[\ZXNRLWQPVh]Y^KYU^ObM^_TUdbbWa:o_YX`[QaT@]\VeZ[OUSXMDZpVXZ][NZ]LVWNGT]QXU>NfNT]MVZXJKWJcIVUjLfVd]Lp^YX[O^KeMSb[RV\^gZYPK^]_WOW_^W^QU\PT]LROgYXOI_i^gTQSUXLe@^`YNk\Zg\`[[]X\\V`fFSPPNPMJV_D^dPUYVTdWPSW[^kKXN`bWZR`JXRZXTUQ`l[T[P\aMTV]WPi[X[YY[[pO\T[ePUXZAQ_UZMPRVdeZea[VRY`TQ_S\b`Q_XpbZ\VhPga\fd[MebVRKsR`fW\_^TaYelUhc\h^DbVUX_\\^NVT\\`[d[PMMcSa\x\c[Xg\Z`M]^M]fVVUVYZBYSQWa`S[Wc_\O`WdSPS^O_]L[iPNbpNPeaY^eYYLa^YRX[j\LP`WYUc`^P^YV[VLNSl[P^aTK^P]Rbag\PRXXI[PQ`Z\NTPM[]iPPTTdP\HWTZSRLTNRQON]SN[Y^PaN[caQROUTnUZaiQ]WLUZXUZ^`YbRWY_[eYd[_JY\P\_aY`OWLdR\_MbORPQXKiSgZ`ZU^W^VSQ^NbPPMZWT[OFVLR^XJdM]U\c\U[O[`YNL]jTJYY`UjVTLTY^[D]SlRSO[IZfULbNQ[LaDfR``R]S[\XRdURNQV]XcRQZNaS[ZNOU`WUY[PSeWQ?^qMUNgucQXS]\iS]asWlfW_oTOZ\]YSU`Ye^]MJdo]VbUhreVdH[ODZZ[cXUO^U`Od`N^Se\[OZWRYJyWUPzNbRWON^`\ZB^\kj[RQ_``SQcHX`PfNTZYRNWU[GXHMUZY]Q\bXPR_\cUUIS[^{SRSVNJIHT\`^N_TVTaWf[E\PKJQVpL^X]tL_debLIDDpVHba^ZVX_SWZWCOeNN[RDS\Y]PmDoSVU\FTa[NLZU]YLQmLTPWXij[fXg^c[_WeEfR^wUR\LZXX[RM^bOZVHH[D^R_IQSRdLSLW]BNH\U_dVEURUaORXUYQZRUXZ[GO\IPTT\Y^Tcfa^LWidWdRWfdSV`RZb_ZKWUPUOWXZ^dRS\\LU]VVZTbVWWVRZYT[ZX[YSkW\TUWPSQZUbVL\IbYaRXa_a`SZX`dVLNl`R[N[aVbWbJT[kWNTWWWdYPQ[Rq[b^`K^fhRKR`e`S\MU_XrVX\R^YVW_b[R^]RXVXi\M[_OX\dQZZ^\WYPgXZ^WPdZcXRe]W][RS\V\WONMTb`lS^Y^eVT]RX\_OkJiUkQQZIZEJWKRUZPQQZZVvTOQWUUY_^BXCRTOf`UTXTaSY_QVC_SXYW`WVR^YU\OZ\d]WQObiOX\P[Ma[Sj^fV^UYMfULfVSPR]RUX\cfc]^gVb_[\EY]RTgVC:T`ZVOPZa[S^UUSTHWcZaUMT^`dWYX]m]\FY]^XY]\NXe^hZXXWU^iZUgd^PJeZS]LTYh^Wdjfb[OTW}f\Yjaea\dmgNVQ`A^^PEch_VYbYYo\`[_XeTT[eVQq]MSlZSfZS^oOe_V\PR]We\Yb\UUT[[NXRTLcDQJ]jQaP_X`t\S^_UdQkNbKSJWLM`]RVgX`OTabQaUSTPQHcX_eNYUB`YSk^W^SP\gD]UbQTMRnT]j^TMPR\`NJhVQ^ao@eNZPj\RPgRH_V\YVRPdKQSOQ^ZaaV^VX`Z]\S_[ZaS]T`]Jk^TcP`W_S_MZXaTOM`RkTGfUVdf^bNbVS_Ych`FQ`_`^_liEKSZ^W\SgS[VTQ\ZTdUY^_VeL[UQsY_[ZX[[GUcSn[V[_S[\cMO\VTUcTTLNWMYTTMVZ`RD\Y]N[Oj\[iLTNTcOY]L^M^QaZV[OQa]RO^dMkUOjYTYQWIWFP\[YTZ\ZcfaS\^ZS\RXkXC_?eMM_ObZZPhdRkVdU_Y^uaHb`V^TMMbiQNLXaM_g`cBibVOKN]WUm]JWUdgMZ[`bj`[Y_UeOSX^XhZQaS\aSGOX^bOZW^]XIVUNW]_P_UYmTD`R\cM@SYGjJ]PJgZVfW[NSX@HTWLTk\`Ul`\l[Z]dTR_N`RaV\P]\_VOW[STILcTcZ_JhPZPSgYJPQ]UeNU]WGcgW\`IPY][lYO_Vg]hX\aXYZYTKeGS\FTZ]Z`VOSPWZgdZZLWRIEW\liXXTHchJE@SWThbdQNSNmAJUbm_MZPVVcjVBPo]WYINVECYN\UMWc__`ZdaVY\_]KYVtRZ[_VXG`gSUZ`O[\cKWXX]ZW_d]TZHJaZ^]^YVUPU`_PR][ePcNXXSTWX\OWVPhP`h_]oUUXXXZLQZp^X]hU^bWS_aVUR_ZUWXMVRLROQUb]eOUWhNUOfdYPYW^KgQJ`acVX[IUZKYRaZN^[VYSdWVVVUGWY^YREU`]OLY]WZV\P\QT\a`WVYVUMMNV]OZSPRRnVLX\U[SZnRWUYQXWVUUQ_]Z]_W_[ST^\i[U`dlX]\`SZl[V[XTIYYUXZTIYIo[`W_LPRYXTTMK\AYcWXlV`]RXZ^S\eMdQTS]P^\S[dWX\XbRXgUEXTZRBPUhU^_Ve[[VRck\^IXdWXhbPlk`O]Xa\HMW`UXmWLVYRUUX_MRNTViQbf\eHOYmXXX`[ScZcX`Rsa[QXER`ZQqWOTS>WRjYUQRMU\YKVmVYVqOR`OVW_QYNXOZNFWs`WWWT^RMSQH`X]PZXedvcadX]M[MZdalMXZQTPFUMN}dWYj`ZfbNTWWWuLVUTSQallSWWRfQSOoRVO`TQOUZHJgYVFcjUPYMMV`OYQYal[JQ]VYShWXbYLe\[M\]PdO\qSpYp[QM``SO\I`RTLNS]V[^QQURVW_JT`VZTchVZ[oMeaSTVP[Y^ZO_NW^a_X\YET\OWN[LPXB_N^DU8OTOZQOZdHZTLS`bVZY]RcNXWUMiZYaON`JgUPWV]WPXeIV`XL^U]`XkaW`lqTVYTH]YWYbebKaKSNQ`cTjO^\U]Uf]TgOWWagiaPRJMdRYRUVUWPWFWa^TOjOeX]gYEWWRPUQjRLN[[[XPNSX_XO[RQSSKHV`aWSXZacKYQ`OQVXTJ`U][ZLWXTR\[UKebTZTh^SbSPg[\QVc]XVUb]NSXj_^X^Rb[Wl`O_e^\TeYScUUQPYcHbYV^naYU]\S\Ui\VNST`bY^[UTSiWbZWfTPJ[UaX]W`_WdeKWUSWLVNP[ZXQ_Oc[XRH_KUDRb\_@mVKfijSSOZTRWY_S_Xd^[TYIU^`SUKYgU]rc[_OJU`[kTJXGKWKh`TT]dSH]GV]^_VSZj\dAWXV]UZKH[Y[ZW`XYJW^Xa]e^ZS[XUZ^ZbdSMI^dUZZ[aXYOUUV_cdV]]WMfT^[[Z[T_XkUSbdGQaOX[GWP`OWZyQWf^VjemZdKUWYfZV`[o]cP[\[\bIUgWMbNYhR^XXJPN`]_VKQ\NbZ[XR^UaaRWVWOZ`SWd_YwdaWU\ObNZSaTS[\d`bPcXXOhNNY[RRXYZ[Oi_YabRS^TUWZWTRV[VXmePXSQZUW^MPT]dU_\\E^^O^_ZWj]UVVVXKUUU[hVX^cbY_kTNJZzR_RPbhIjbRLWT\QfOaWUG]WYUe]SbVaWXXa]fbYT`R_cKbVZVZSbOaSZdQMaVR\KW[\=fP`[JYR[WYe]Y[\fYVafPW_tTMU_JU[aaRQZa\R[_YOI_QTVW[i\\adIW`iSW\[TIR^HabLaPb^V]TWZ]ThO\W\YJS^ZdHaM`]]T]WWTYYZZTd[[XRZTZMQHfcT^EhfbXRaWgWMVQa[]MXhYTRaVP_]UZc\PWm^XX`ITT^U]]KT]kUR]Y[UcRT`JcWV]SRUPbWR^\VgwOI^eSb\W[[eLSY\_Iace\LUOUVUvpYx`j^oPVTOPXX[SVcO^N[kVXCZ`gU]QUbakOXMXOdV_FYP]_RePRULXLSQCcMH]UKjUXQW_SLLZVKIQRS:RP]tbQaNISNYITcS_R\OV]`W]]M[MUZUQ_RNUWO^NNZIPUH]^RTeWXc]R_jU[]Y[bWZa]YbVXOOVGrDSVYO_ZaFVPL_`]l[\PJbZU\[UWTT]QMeTO_GeMY^]`^TNSePZciL`ZHY[bXieW_YT^OOVLTVZGYieJS\[WXIJg]QYU^MfOVZYXaZUVVYL\WTFlNc]WR[[d__dSHa\VTN^Z^aV_OIcRW\MTVUZX^XLI[H`Z]W\^QNd_TgddNTWdT_XD\UfURT`UZWJYGTVIWNMWJ`^^XSTaeH_^XJ_^P^W`i]PVaNRc>EpmcSL^\YUDJS]bL^cS]jdO]JNZn_[]ULd`K]4cneWQ^ZN[bRSnnW`qi[WeiZcJJXU[SU[ZbZngSHMI`Scf^T]PiROa`J[X_RQMJSSZJlalfUOY@d]f_`YjN[CaOTO\VR_YbWVPTVLq^[_XaSYakS\Y\^]cRbWVRJX]Cb^eNhXYIfUL_RdcU^][Sg]W_SSIaL[`RiR\LS^KeQQWUY^_XZUO[cXVYUU_SR[Qd_][\dSRRcQY`VWP^aWQX^\X`]\\dRNY^XaYaI]\b_QXUPWSS\WWWVSMFaeXRY^U_MW^PWQUUWKZO`h]ncKNJQZOX]V`aZ[IVSXVZXNOX\[V`Bn^Ue[[XR\PcVSXQQYPWK_T^e\RTg\Yb]YTUUG]Q^Y^[PdXYP]RQAZQQ`X[VA_]ZKN]_`XecQ[RL[W\\ZWfUNI_hg]RZcSRLOR\TiY_niY[SR\[[\XM]Xd[TRXISYVb^d]N]WMh[NaUDZgS\WYZSKYX]Q`hN]VTidUV^LNX\fXcPbTQ[Z[GLb[\XWaUSV[RgVXWY]YKizZfQI`KUeYcaWY_aO[CMbVSO[NVS`eUTa`V^ShQqWfOK__XIPgPPX]NWoU`V]eTUDfV^g^\RTWQcTbY`PLSKEa`WOba[YK]Y]M\QWjSRG`j_PZXYT]XbUI[[QB]iqn^ZX_MWZ[PInNKaYVWhZYhXS_WYe]S^cXXUV`JQKX\fRXWYYFT^]hMEV_eTPVRQ\TObRpY>^J`\FXPUSXPZ\USh`YeLUVONSNdeKO\R`XTICW]nUUQQ_S_ZSRWYZSWb]YOMJaW_CRX_GHLbXGRGZdQUWYVTXLZYTRk_C[_Zd]MeYM`VOSiUUN`H\MZPMJQWVMTjVclSaWPIVqYZV[LYNVR`XRNZ\]Q\`YZ__aPfXaTJ[i[OdaVbML\`HgVps`YaWOZ\VVZ[XJX_[[UgXWMSMbS__^WNUSY^XsT[V^GWM[_K_ROVUKa\RS_UgYXVO\[aV[^N^jYXoZ^Th]UYR^OK\MTMVX[\VbZPNPkUYS[]edH\?[\TZVQPKXWgdPZA[__JdLUTQaY\PXYkU]X[VVR`_]SXjcWVMX]`Yd]^\dWaWT]\vV]^NUObTVMXQPXbOT[NHSZSKMFPaNM]WWKVSaZggSTeM]YqdiWdeLm`XZY\VXQIiP_NSPU]\_iJcLU]RTSXZWTTO\iaWVX\JT]JMXYgfIUaTNQcUQacV[_fK^PVYWDL\W`\b[fTZUasYDUKQG^Q[T^WmXYV_NgU\]KR[TUQ\Yc_TRO^J_dQ>JZVLYcXkVVUcJNMh_T[KHDYE\H[XV\]V=]PzfGKTdTWYU\\WUV[STOUhN\]_kraSUR[S]XQTVcYKfSd[\`_OYUHdUAZalbSNPS]EO[^^[XJVhK^NH]UaSNh\KZBLYZQZTdiQOeS__]Z\UO]^TcILX]spNdWPHSZQm[GoZRQDNXHL]g\Zg@jSVV]TZeWaXVX@PqTVQ\hYfM`QS][SHa]\n_^[Vp]QMVZfUOXNfTMLN``HUVQLQbMcSTUNXaRXRNYaWWUTWXL^M[LWhQVc]ji`XQc[LYUTSQZ\`eS_PKaK\SSSVU_]PRWRT^[VcW^XOWSX_WTaOUWXT^XU^HH[`RnS_\SLTZ[_T`VT^`T\SPaE`eORZV\XQPYPU^_cX^\\V^S\^S[UT\XT\YdW`kbkO9aTcXgW]PK]JL\UIbOZgRpcAR[AMRJK[TRRWVX^nXCeWHSQS\dkKXWWlLMQXFTQW\YLZZ\QXTcN\gPQPYIQ^fPJS\\ORYdfaUeVWWTUV]OZcahdYUYXWUQOQSVfX]WUYD`cUQAH]QQYK[]Qa\I[]ZHI^ZK[YQcZKUsXWkVp[bPVQVhSY_CT`SU\lT^_hf^ZWLJdi_TQWZP[[RWW\`cc][W[QcX]U?j[aR[ZTQ]paO]_mKV\U^UZL_lOoFW^aXbKcI[cVShR[F_[QYZ\XROZ`Z\VT_JcYeYWTPX[\[Y\Oa[__jZmQV^Z`XSNS]UV^HcXTU]Y^NOYLRO\^YPBk]ePIMZpWOBaGNR`M:U\MRV_Zg^ZvO^VhRUh^_VO`]IdNMPiiWfU\SX_GM[W[PSV[[SWZUQaV_WPXYJ_b_ZYic]jgTUTV\]pSOPVa[\mWmkgRYZVQaaQLXZZ_W[^OR^QXd^O`QidWZmWP^NYBhgS\U^M]`_Z\b\`SQ`VPcU\RR_UeV\WiYQTUTcYX\XWNMh]Z]XYYXVZZXTSZ_YScFfPfS[O^QT^KZ\NV\b]_J\T^HXWSbT]_\dYSHT\M^XVUWJbefWNVTV\ZXN[^XYP]`ShXZWGcUkWSRWX\[XCUY^U`UM^\_SPb_\oQPUiQ_NeOLVT^[P^\YYVRTNr]ZVWWeYdeVLbZXdS^[aURLQSX`M^VnZKXWaVYaSWYTVJT[\UQIe]N]XWIaTVV[YW_N^XX_TQj]^`WYVSgdK^aSWMRNQRWTXPTOF[VP?XWbia@R_PbWZM[dKYRa\^\PjHOQ[HPSaUZPZd`]dgSMVYXbURLYJiHcTNLall[V]W\[V`[U\\UVYYNJZdOQaLTk]eLbJYR[UOYKRVWoNVaZ_[TOISVUPMWfU]`K\YN\`d[HNcSh_QYWaDS>UHITO@M[QYXURcUSaabTb_RYdY_\oegVXhDULV^RfXQOZ]^XZeO]IYgRi\\NKW_VPTRTN[_LSV_^]SEX_e\YWF__\`XM`^U\cedTO\\Q\WRWi\Ze]]\WSVcWLLjTYP[[a[LR_[P^OZjUN\WYNaWYjIZ_TZ[U^UOKJSRXSSRdjiV\dWNUSaXhM_QRIfm^gIddTTVf_ZRaTZVcNcaPVUGSTR`TWaZZUe`TSj^V\u^haYZ]aX]YMPbVZUNcWZ^]dTfXXhaX`VnXQVV`V\b`XXS_UPQXb]fUVY[VTJSG\\RLaXG[]fCdcS`b_VY^ZcRN[McY=OROS_WZ^MZT\NQ[[oV_TXaa^LRS]R\^QR^TdT[Ia`NV_]U[TUTUJaSRZXJX\UoXdOTN][MRLSXZTTQYYf^YWc]RV[WWWgKLZXTZXZO^ccXgSTT\X`USR]QeCUKcKT\dVcjXj][X_VdYg`JZYWXTWVSVRUQVek\\_TX^SRYZ]WT]W[TT[Ui^ORZ_bZShZa_U^cULQ_WVSQhaLcWgdYTQKSPi>WYQPaSTFeSQZ[NhYQVULeIRVVX]O@fONIGXB[PE\VaMRZ]Ti\dL]^QZQ\\Y^R[f^PYiMDWRMRQRaY]^aYhK^Sd^A\`WUZYPFW_\dGXUW`MNSQXjR]`_YPf\JZSVZY[\`ZefX[gYTOQTk^gORWRfGUR^cY[kNNTUYJ]SVVRMIT`aa^]UdX_MQ\XO]VVXJYYS\Q^XYWR_JWbSQPW\QMOTWW[cL[]^PRRWVKmbUSWKNV`PI^_^UK[IUIWTZYcV[ZIV^XY\XSU]XHU[cWcSM]MW^kcRPR\PbZY^XYYSX\[OeVNeZ_CYg]TU`XXQ]WN]Ze\NdR\WHkdJN\^\iUSo^RTiaUMm\LYVcYS\WieVXVRbXZU\WS[YU\ScZhVIRTS`TP`UVW[JaWZRVUPJlPKnKUUZ\[KXRXKfG[YTOW\PUa[P_dYZXVd^S^X^QmlcVZQ`T[^a^]ZOY_]]ZQT~X[`]Nd\^\ITUejc_S_RNTe`SoQJlXTNVIg\W`eG\[sFR_TI_aSRTVI\MUVTcWVZFcpTQe]VV^]LXRUN`X`RSYUb^IXTRT`VZcTbS]hSnR\OTW[fVZ]bT`ROg]U\bTTY\\`R^V\VNJ^M^d`[^POZQMULQYNbWSYQP[Zdaf\ZZW[WaY_Wa]f`TWLOOXOLf]gTdYbaKUXXhSWWa^ejP[aZ\Sg`[\OLlma^XUM[[LOAEo}RcYgSRZpY]KNfKZXcV>ZRbsbQ\^_g`egMYYdPYN^[SRZZDXUKVdmb_YbUfPaUdo\Y]RhVeATMQHHcGT;ZM[ZULbNJ[RQOShPVP`]]RRRc^OYVg[\WaOQN\j\JQZaW`JmT\[[_ZT`AURSOVZ]RZX_SbaPUj[Ng[\e[_mQtP][]SZSmVHUWPh^OZhhPUQS_^Kh[VPfIaeLLiZ`UZVSJaU\dHS[[U`aX^QeLUOVgW^QJK\c_ORRUbPWQm^_Z^FaJMeWZ[PWYZafYR^jbL^[TfRXTMU[X^fV`UTa\UUDWhTl_[[WYV`Y^\naTVVlS]JMMUVnbX[XLVHT^pJV\[Ubm^W^\TMJ`XX[SXTPNMUgWUQcV\OM\ZRY_NFTYPVZXRUPWMfZ\Hb^X`TWU\`SWM[N[bc_[P\YVTRbUO]YS_GZHa`eXWPJY^`YP[^h^dUdZRQ\S^NPVXdLjSYoh]jL]cKYYaZZR\_\bfNWS[Q]L]fZQPj^\^^N]VN[EW[a_YGdX[[^cNXbX_`Sa__ZcVV^WLXW[aYRKSXcUYiDjUX^OV[XRVh__WPaVZOUcYIWa]XVeXXO`_SZphi\YRML`eeNRY`eb\Y\S^adZURLMMY`TsZNN[MQdjUcU]YR\ZXTYeOV[ZUSNVkVZaMY[PPrZDWWK[YRYNQSdTU^Y\SQMHROTK]OVISYHUZ_XXVWNO`V^aSl`KfVYcVPZQciRabnOQ\Z_PaTV][]PURYOWhMhWNTJUD[[NOSX]`gYRDWFZjZQXZXbaKRgeSVIaRVZ]kZVSZb__TUZTYacQ^eLZaNHicW`MZv]TU\]]TdiLL>OO_GZSMYUM[WgU[SPZUecWdaWcGS_K[dZf\HRNhW]HiNd\SSY}YTL^QhVg\KWhYmVWbX^P\Sc[_J[LXL`MW`TSEZMcbWl]TUoJS`TV]VW`[UZElfb[_YUNaXPYmhVY^q_YWZUN_VlZfN`[N_YYRY]bY\RT^S\arFNO^ZdUViVeQka^YWQM^N_NNwRfZn[X\JZ[]YY\cU[ZUq[`pbbLe^\gSVZMQk\HUPQ_o\_Md_]P[[OYeXR[^RR[efJ_Qf\kU]WOcJOUP`Z_VWd_KS]RRKXYbONc`dZ[_aSaZLUlV]YK_WQX[OZ[RQPbZ^XULSZcX^MRNdbYb^]WgNUQ[ZaUVY[daVK\nOYafOQTjNQ[TWWQ]iLUMO`n\XZFT]V\L_Rf^_UXXRXUWN]bIXV\LYRcNL`XRhZYaYbV\ZR\N\\QcLpNX]Ia[_WTM[UVT]S[_OQaNiWR]NLTMQ[IWfVX^UK\UOTSRWIISZV_TXhLeUtdYHQT^SukYP\cSSrW\TYWRcb[OTS_QSs[SWdLPOPJPeeWLZLW[YLtWKHFebJQWL`SQLWQaeUQ_WXUVOTQO`aSPMboU`^``YV\WOVcTdnT^bNQs^[fOMVkZdbKRUdPbTeP__JRiTB\cOb^VOXXRL]OFhPMnPQgKeP]^`IJKkXJQUkfaJp]aMTQSOVWRSn^ZaSRTa`DI[ehadZV[[PXWWg[F_K[]`W]POLUUNXVUY^faS`X_Ue]MQpNaaYOaaSTYdPaV]ZUVXdVVPbTLTX\M`RWWV]QVW\\Q_WZpI][^YhLOUMW]WmKbVTWS\VR_][QZMTWceUSQVTJOVoZJgZT?_[]^VSJTMQ]RT`Ik]daR`QO_ZWc\V\\NKNfT\[\WTNUY`W^[WZdjYZVXfIMRiRYYikPGVRY_Y\RZeDWhNeOX_Lc`^aTdP]aJO\Q[X[gX\]RZk[aWfO_l\ag^Nbcc\IXYVUQVZg_XHZYR`UKDPc[bTLVX\ZZ\TWaU]JOLGPVgXh_T_PaZWFUJS_Y_[^YVQPXLI\Zlk_VpRTQY_fZhY]\[QTc\USYTcQ[^NNg\XTWLYT[XRjdSTVL[ePWD_bZR[XWY\P\VSbWaNQVVQWZWRUWoU[[XLU^YWYQTWV`N^a]YOYW\bUG^QXJ_[MSVSc`XBD[L_ZYYVPX[Rb_bWU`aTWfMR\SYSj[Y]SZqYTdZYUGMNZD_TUJYVj\W[OZSQXUSc_ND]_\R`Fg\MO^]VQjTJPYjMHb^WNM\_T\WaZTfY[We`UR]`aQYK]OZPYZZY`J_ZSg_[LQXgbWMQ[Mn]YRYROXMZWgY[\[bYSZVWijjsV_]ZV\`da`RYZaVYPbSsYUXcV]JXaQb^[M[VWQSjT[RYRZQXZSS`c^Z[f[SiaaR\bO^_VXKnSXoKW\mQbUVYLaWWeYQ_TZNUnrY`IMQaT\MWfReR]ibJ]^dFXWOP`YVUdpQ[]LZTISIYaQaR^Vd\PYK^RQ`UTcbkQGYHVUVKQ\^QIQYYNVdG\SZ[WPk]JVKVUUWbdSYPUUQfAPcjJP\aWUQTWY_VOT_f[OZUY]QYb]U`iRHe[JXQVZcUV_^S]KTT_UUWbL]WZ\\H_RRJPYM_\RiWZIk[bcZV_VdWUgY][^\t^cQ]LQeXSMaTQWL\C_NUMTWVZUS\ZaS\UWPRaOW[JZaWcP[S]UUY[ZZgX]XSKV[^LOYPTUQIPXQZPRT\e_gYQ\ZbU\Ta[ObZ\VX]Z^Y[XRTeWW[ZULMeKbQ\MQW^R\VeUXc\SRTKXaOXSOYVYXZYZaXJYMTk`^^T]XJSRZVSWUQJHUML\ZYYaN\]RSIYIZQSj[R`[WR[aSUc\ZSd_LVNSRZ\TQ\bTW\cYLYKQXMXUSaNNJdRRN_oaSTX_VPb^_eZjSj\YkR]VMb[TW^iUU[ZST`NS]VRUVSaWkJNJYR^Sb]WNyTYnje][UVSZTd`M[WR\YWW^XWbb[Wc[HZIQorLKK\_bP_\EWNK]_XbNPx\[RVRVIW^L`ZOcZ`R]ZfR]PRdTRXZYVUVVHYTNVYZ\_ZW[N^QXUQaYFTQ_[^GYVXX]ZiQ^`UPOdQIZ^V_OYb^]SVVTMJUiXbRHUNk\gRObQeQXU[Ve^TaF`fJOSad_KZUlaQUVi\PYV`MVUW\Rf_aUTeT_\ee\QRVYWVNXN^RmRYea[fPf\_[c^MUM^ORNUWUaLYVVWfTVEWZab\XRXdSWVXSU`^V[S_PbjG\VOVd\W][^fVpQXM;[NSZdRdJ[\N\didcqVOXfHNX[]GNR`daZPPPUWZPPUP[eviW]S_\`GP_XYYeZSUwU\W[WSXPZ]wOXY[VU^KQ\\NXY^\UZeUoKWT]NTgTUaX[VL_VYLO=aVUXYJY`YSX^^UQjSW\`PWTPYdSK_O`W_M^iLXe\[bZhUWXTWSCXZCV^ESX^WReR`Q`\T\VhYdZU^]`TQYYmR\JbKSXb\QGUim_NV__aRQRRXUZPX[ZYWW\m[T\XPX]a\YSaaghC_VVOTQQXZTZQ[dSeXW]wOd\KPWVXTUT`dWZ_R[gTTX`ZkZSYNO\\\aoKHXMR__X]^ehQMcN`VQWPfJRa\pWRUSGcS_VScVUZYNZ[aPQYUSETYZ\hORU[X^G^]XVTHSWZSSZ``7^][`RNGWLhe`\U[XY\YQTPaM^iYVd^KUKZ\TZ`a[bb[TUf[RTWMS_^ORYhU^V_R_MW`QORaLTUJ__K_IdVaSX[UZZc[Xd]`[Z_\_WR^XR]WQUMUdUHjUWXmSRrUVN_XZL\XP][YM[[Q]MYTffW`TVY`WXO^dP\wX`bFcUd_[[W_MaSRYSOYSRY[LQSZLZKlO]T]E_K^_IQYQMWS]RRZ[NRmPXbZXS^ch\a]\TOV[ZS^CPSfgHdNIWXoa]Qa]N`A[ZZbTWRhJb\UWPN_PbWWZ`[IO[UQZXTOTcRXTXNN_JPbY_FUXSGeRSk[MYQbX\OVTZ\U^QbU]]Zdc`[]OH\[]`UQLoLVO[QSL\ZYMV\[S`X[`]OOT`UUT[WWU\V\]YTWoOUYgX[RSd[UY_aWX^Y^^VRQUX_UZYTMZiKTQTW[GdYT_QVNcMPNN`VgW[fhRR[j]MUVcUWZbTTURSLcWlKYVZp]Z_WY[OQS]Z]TVfUfnQbTNk`XRHeQPdT]UcX\RU_aYw]bDJWURL_TPZcZ^[@Y[]X^_fN^YRp_V]WcLiZl^_\Z`Q]\\^XV]Y\GqUfXTX`P{PPbTLf^eRIa]a_^R_AQ^TR][K`W^qcTaM[QQ\ZRIYdiS_NA^aLq\[gJSM\YSaKWdJ]WO\^TJSaraaVMYVRaZ^QWOX\Y\`XKadXUJW[VXVTRZ\YVSZTTUSU[`YSRKV^RCPN_ZMeZUZVLfXSXgUTRWcoUPPQXSiqdJH\Qk_cUVWPY[OQUd`gYVSIkU^O^TXSS^bREBOTJjSKOb_YJcRIST`SZKUV^^O^YH[[QPZ`NGT]U>fYv[XPmVORSVI^ITS]T\IUXQ]LaJ\MYYScmUUY^UWIVO\GLOWYQ`PTPO]PdN]aLTWQIXdXGAQSe^ZLcT:JQZ]WI`8Y]_WREV]VLb5SUZZGKbZVYVsJYT_Te_hf[WiUoNQ[LZk^YS]TIV\ZaRvWfWNV^QwqJQM^QaSnQ\OORUXVn`K\P[aeOPcS^]WOW_LVo`[[bOQ_hEUIOUWiSQR_VgN^bJSU^TPXc\fVKbV]ZU^KMVTaQWePRbUQYVnggJj_aLbbb]NIQdLaS`bgeHYSX[W\O][^TXY_OMSLIVUVT\YHWPUOZOUV[ca]`PQMXY[YfY[[Zk\aOSYSWS_QO\_Y^POTP_[XSI^]_W[WZ\^UP]QQ]XTXTa^W]`M^RO]\UdSRRTRWWP\ZOd]ZVJQh]TV]_dU_GVaS]L\[_[TT\[T]^Wf`P^SYYZcVTVbXO[YSS\\RXEbJXXN`cNWYP\UXSNXWPaOWZSUP`gUUUW_ceXOZ\eY`XFXV_ZbVYALY[TLW9XVZZSZWCNFiYV^Wb^TNd]VK]ZrRbKZW[XS_^ZMWKPLSJ^gLiKSbGTW[Wi^hNQPHZZZOCSTa[^V^XTVJ\JQWOkbTSY^S[\\W^[_GEXYp]lpKS`k^OVaHeXRUaVNNbX`VX^TZ^[DOUjbQS^cpaaMedXTpPY_[dccPY`PrnhaUYJVUEEZ_TN\VTbYV[^OS\WUQTWU\Nb]YMtTUUVaLMTcQTfVWPXIYZhUT`fYYT^ZMhRQN\G[W]`WWRgZm_XkebV\QUPPj__TDYUWl^NUVT[e[QU[M\PPP_OLRVLNZR[LQjS\WQ\ZN[^dcWZYKY^WYpWSTgLVc^__WQOKMhMT]S]U]RWWVZHbVVh\UbgU`WaWPSYUWWYGXSfVQJbSXXnN]]Y]]`SR`JaeZSWWOrZM_W]cqUYR\MYdT_faXQYR]Mw]`NNeeVcSZLab]daNRUfqRJSP[OgXZRZQ[QZ\R[Vc^TYQ_S`VaWWRXM]ZY_IXZShXUSTtwWG[ZYSOROX]YH^[kccGVY[WnFTY_aNLPZX`de[WYPeV_GZlXX\c\^_ZYqOVIO[ZEV]k[SV\R^hSZRPZQfQX]PNUlQRRLRUQW]_TUPKYFcQa`GX[\YUURTYZLWZNQQPjMX]XdW]lSeRTVRd_SR^^K_VZYQKUU[WIWYPq\\GUV[[WSYdQPS_XMNT]Q]cbKSGY[SbX_UYY[ZNtcX`iWUTPT^^QJYqMHVURUiV[S[ajRSqVS_PaLTMSk_VaVd]YZZ]MEVTWZV\gSMaYYJQJJPKS`_\XTXYYZLyST]YO^FTd][Q\abYX[XWW`WYaVX^_\^TGWRY`jUYQ\O]MZ_CX[PXgeYXXYRQTKLLSRVaPM][KmN]YY_`KcPQF]SYVWWY\THQVNW`VZSSV^E]bVTUQ][UYOjRYJOGS]ZQhWSX[[V^VV`K\VMV`cWMYJRWSQJ`UN^VRmcOHR_^TWQaVZGg]]_UqS[R]ITSWNJKLX_]Pf`MX[H`[XUUcUHTRRTbK]f_QUZLlXQWDKYS_]Z?lYi`aWcPd[h[dZQMZZRKNY]NV^SZXZrWZWOeTlqd\cReZ@SgcOZXWQUCfcK_a]WV[]O`Tc[TMY^]bcZUhYNTR\]_SRT[mZZSdtyaR^QSaZXO^_Z^aSUcX\gZ@TU[UV^T^WGLVVIYVXbJePVhMZPXVi^Sm^RTQUWVOIYN_TRd__[UHU\VWCRI`]ScPNcQ_ceRIKlc`Xi[SOK\XYPUQVSLO[\WZN^YD]Q`TrT_O[OaUbPWZWj`Q\]nbLVeMQ_QXeTeK_]X_P^T]S[R[nS]_[eMWZsZaVf]USaUWhdPUaTSYY][UpHP`U`_JO[Rl\IV]SS^WVTacRUWOLSVc_NUYQZSRYcSVTLZVVL]R[\\aS[cYQN]YZUNQXNag``hePT\_QTVMkV^XLT_\^T\ZL\d[NO[]`RXVURP[^]acYVYZ[QUZPUVbmQO\L\TU^h\[bZWSQcW^UW_^QX]fMS_SHZa^[]JXa\[a`a^VdbN_SZUVPN]PZdIZWR[_O_SX^ZM[TmVZTXb]]WPYYVJPSSTab\WZZXYQT]SVY^QcVPaC\LbSaTea[PN[S]mJJ]]X``ZSIPG_QdNTca_LNWWP\O\OW_RMXiITFZdXUSYRNhTT_T[J[YcYK]dO]XL]cPNJW\TRQUOS^NMNZXNCcH[NSUbXhV^NPU`VQ^RSTPPFZMXe`V`MOPY`MF[NXSPdfYO^XZa[WU^`ZIhU__XUea]VPQT\VM`Y[XcO`Pb`UaWdbgUU[KYeU[fgVMdYg]fegaQb\WNKXXRT[Y[_\VJa[_WROM[Y`bVNXUMVMXG\XSPTdRKSV`]dSPYSXWU]YO_O^YJ[VYXUhR]KhR\XNQcQ]LWUM`SP]i_]f\eNUgSTbQdf\\SZb^b^G_WSfWbgVXued\T[YXXY[V_ZNX]PfSgUsT\mf]]_U]WYTgTWX[SY[TWXQ`[TYTY^[Rb`K^TdYOMaZUX^T\XWabS\`\^VEWVWVMRbSUeRUWUPPUVVXUWYXTWfZNQZ`]KRKZQ\ZXXeTLMRaTZ@KR_V]]T_]^LT`XW]WdIXYSXMPo^XP`QS`]ROFUWVZMXK\_=^Z[WU_[LSNd`TX]eYWWVSiJ]U[rLL]bcWW_NTc^\_XUXT\JLRW^JXkX\QUXbTYTaYTmEZXYXMP][IdOSSRH`[i_e\]ZRWVOUZN]ZWV]TUQUVT[TP[P_\\XeWRQVXTO]`Z^X^QNHZX_KeWRH^W\TY^]_]QTQR[ZOHRNZVfWRZWX\UMPSSP^c\fUSLd]UQNgVUSUn`iZYN\KaeWHXdXS_Xa[gWWT]TTQc_V_[QRNV_TkIVYWETS[aSQXTa\`Y]aO]gdd^\QVX_NJcRWQ[Xbdd]aAOYgT\[UUYZhdeWbV[NPTRQkQhgYcP\ONMd]V\\s_XWGVRWMLT\WYb^ZZWL]Ta`VM[Xf]V^ZfXVW[d^Xu^T_V^]^IaNVRZTZ]HOSXVWPWVd_Se_\afP\M[T\XTRVQRVdT_H[QOkNKP\YYOO]^a_X_XiRJO]YTaWU[\][\r_^uI`J\f\WLXeS[S`XajT\ZS]TYrSO`ZbY_Xlff[^XUcSLQZkT\`VQ`OWgUTK`VbUPEK\[S[ZYVTYPON_`T]Sl_c[UXNQPP_W[YbaU_]VY\UWTSV_Zg[RR\OU[VYh^[J^aRWYNVY\U]XVS``JScgSVS[`QXN`]QW]ST\\YT[PEXX[aVU^ICcKWb`P[[YSdKVNj]KLTWNlRdRSa_P`VZaPWUcYpYL[[RUVLV_UZR_OYbTN[^aLiUNcXVQWMKQlhQ[ajU_ZFNXQcMkZUSW\cXFZZ^Y_XOgX[GQ^YaVSXXUc_S]^[`UVeSYK[XgTPXXUTQ^^a^UXW`XRTUSfQ`]OOXHP\aX\QX[O^ebT[\Q[niVTWKQYXKT[PU[m\VXQKJURPHc\f`SRYU]]\bQ[Z^]RTYI\_ZcXTrPoO^ZWWSXLpS`YZU\QX[WPX^LQYOPMXZXMX[HUe^JfUZKQkV\OV\ihM]ubdO[WcdVZVY[V\UOJURahWXZ^KQc]]_bbZXITVVZR`QUJWUWZ^OV[U^[X[[aWl_dTVTV\V[eVY]ZUQRTSi^^USXLWRjb^RQYUSUWZR`Ya[bZYVjQe_YiKeWP^R]][W][]XWXY\_jQOlRU`WWLU\_][VXOPUN]XiWN]]TWN_c\VQaOQYPaXXObCVPVc[^lTGOg]LTTVTWUOUbYYX^U\KZ_]Qd_iJb^XSiUOaZ__VVZ[[NNS\^TT]kZWT[ZQoPF\EgOVUVMlbRZcRN^^YT_KaYfeSV^VWWPOU]RV_WLI^`\RaT]fOTQWSPQYdVaXZPf\VTUTbGIcSHRNUYXQRVMaT\T]ea[XabSI]RJUUYTUOVK``gUR^ZVOhOZTZ_^@[]SXZZ\VWlUZ`XUPb^Z^aYZ\VOLMU\UgP\\`[P_faVWQQHYXI_J\]\gZYSaRQY^TSY[Q\ZZU`ZcOLbjYOZ[VYbZFccSYUWPYYMbRPU]^\aQXSNL]ZWVT_Th]ZZZWXZbN\SS^cH\_bVkYS[fUQUSTRJZXZahRVRZ`ZaiVNoi[qKRwcXP^S`Z\]Xb\VmS]SV`XROf^PTE[YSUR`lU`[S[bMYVVOTe`AS_eYWXRXUYVKpb]P_]PUUUZihS_^VTZfSXT[P^\gZY_T`UWTTUXaPcf[WV]X\[fXaYOZFMPXGXdXTXa\\aSKYZXTb_SS\ZUZZ_XS[RV]O]RVVhIIZXU[ZVSZ[TaU\ZdUV]X]WVdUfVZQ[OJTX``W_Q]_MZLgRST\dYR[]TRNYa\VYZ\WS`X`W\YciW_[[XW\QXQ[[bWSbPXLU\NPO_G[NVSXSWX\XZL\P]VZVTUXUfRZSXW[QUUUTUZhWQ\^ZRdTW\bWZ[aRXaV`aRUVTiQJ\[_YQ\W]YXhS_]gTSLYXO]RPPSbTNbV\_O^\GgXKRRZ]_]ZZQWXc]YV\aVRZRSX[`\L]Q]]PVVSLbdaaXOc\QL\[SU[_^`_eYWLVRLZX^VbZZVZR\]SUQhV^TYMKYSU`kTNU[XSPWVfbXVcce`ZM]ZWVe_^MOSMacP]ORRbbLSVVcV^]fR_XiXTNh^_YUFpWUWWU\t`ScWIPd[`_P_bWV[OXKXHWiRZVQbPK\Z`]^V]WXU]X]QklMT\_Q^\MTPn\dWeaaZUSSW[VQLeW[^ZeOJ_OWMLdU_R`ZIXF^N[YZiUUWWQV_R[b[OWOZi`ZMXQchNHMV\OV^]^T][gQZXY[STVbX[\T\RRWNZ\P`YXOZSdNZ]RPIYPVNL^WM]S_\RWP`XTdYH^aXjCUVJ]M]OoVHbXO_UYUDaQ]j^ZRW]NTXXOSUV[TXZPbPZaDiP]YlcWLW\o]QWK\`Y\O]KXWdo\XPUMdRTZY^bQKXPVg]W]Wi`XceTMU]WoGBNbVEVP_cj[aQN`S[VFeNU[NCJK]YPa[^WPaOSRS_d_`US`YQ]`TWZ\XSZ\e\STORYM[MR[S[RL_W_kZY`\U^T[USVVa\VRWOaNQI_`OXYU]UZ[UUTUUJS[WUWRUSP\LO_WQ\]ZNXNRVhVZ^[_YdWT\`VXW\S[VVNbQ^WWW\]V[W^V^d^T]]UQQ^`PXhUNRV^U`YR\P_MNT_W_bOj`\eWTWKW[QWHaN\ORNKLUHYXXdeUFSV`LScUVX__\^LXU[V_b`^MUVUZWXT]g]kMT]^d\[VZRWLXVXgc]YQUZmMjU[ZT[Sg]NJ\\cVfSYWMi`dUg`M^\h[j]Vb\]nWUVZgSWp\[bKPJ^\UX[RVWTWY`VdcYccbhWX^[RRa`^RXL\egY``UVeVUG^T\RSX][]^nNfN\bYSWaSXTVUXWUW[[S\^RZ\M\aYSZLWVV`O[^ReWiT[TTK[R^S^ZqYXQJZ\W`]VVSYNZ]QYY\b^VLTdSV^RRgWa_aWXRROSP\YSZ\TVQ[SIUNPSVbTJbgZTS^fZOGX_SYLV_^ZTX^dV\V]^aUVUO\\`QSWXX^^SWRW[bgV]T]QgNY[TI]UXaVYVQ_WYVNYVT_MYW_UU]BbT`[\bWTu_YTkZPcTUTWfOl]c``EdSTK\VWMWFdVQZVXUYUgXfP]_D\YQW_SP_ZTQY^RNqQXYUYV]_^WM]YRU]WcW[]V_XOhWPY[QVY]Sc[VR_[gV\SMe[cXbR]XSZX[_e]SX[M_TV[LZ[YjSVaV[QaW]g`[]fn`b_STc_TRVgXY_\ZZ_j[SeW^VNLZXOZcf[\WX]\RXR[aQXXZ\[]baT\\^ZOUeRPU[R]UZNjVkXTc_XV^ZRS`VTMZ_`ZSc_SYTT\_R\cPTj[XSX^dZZXYV^XQKU^jabMXYVkZN]bV`_SWUWWXa`USW_cYX_\YR`PW]MbOTMVbR\[_PPRRYW^T[\\fPTUiNbYUShMSXY[daYPSOY^PcOc^^Z\j[VYXPZK[U\]]UXHVZXVVR\Tfca^oKc_d\GWU]YaXdYl]L`WPfXU[P[Q`aOPZUXVLZTXgWY\N]\cUWWRJ_[QYWUcP\eYWUW^gKSSQWbVb]UbMikU_ZZS]c]]RN`d[XXYWiJRWXPOa\VYQUUWbS]WWRai[KWWRVIVe[ZNi[_R^_jRUQdafOXU^UhWOWXR^IUWjXT[`^\L^YVXYbL\W_aVc\RZMcW_QQUSZYb]HaS]gbM[bXPUHYTSZbS\YSHQ`]^^UTRWYGgiYXfacP\]W[WKRk^[[]\X_bRPVY^TXTV\PVWNX`RRXW^TZbZ[SOTRYVX]Q[WSZeWhe^cP]PYcfWZUUVR^VRZXW`fVO^S^SQJbb[WcOWMZ[ZZNgoYSVXqXWIfjaRSYZB\MYRaUa]]]V_RbXVPWV\a]W^J^]bT^QV[TXTWUMQ[^PU\\USW\[YTRbaVPXV\VXYVTLmXXXRdY\V^VOTLXe]ZS[OW_b[[jU[WMfQSTYVQMOTXumTJX\[PeCdZ[e_a_WZ`S`LPdUOeYaSV[aT\]SWXZNVSV\ZOVYZfYRc\U`^cc]UfRYKJZ]TGOSV`]X[\Z[KXMTVU]YMSa`UWUZURTZc^\X`XWYU\X^S\K\a\TZXbkTg\c`]\]][UeWPYR\^[JRRZ\R\ZWYYTTVVT\YfWOQR`_TX\Y\SaYL_[VdZa\b]WdTaXS[WWYQ\[cQX^^`[VWWeX\TT]WS^ZUcS_`TX]TUSVUe\`daWgTS\V\TYYaMY__TP]ZPTaSMeO\SWU]aSR\WW[VbVZUggbSTYV\aO]OT\V`d[OWXT^ZQT]RKVVhTSWdYPN[ZYSZbVWOWXVhPcZIUXWWPZLZ[XWYdTUcP\TMS^PKY[^XVQ_X`ZZRRR\jZ\]Ue_PVQMe\iOZ^aYTZ^]ZTadblLUR]\[W]Y[ZZ^g][[[^Q[XV_\T^S[W]aYYU]\VNZKaYQV]UTPS\]ObXZScZTN\aTcGUYVV]TVgnW_[XR[]R[RabU\WeWXbdTb\[WaSVRJZh`^TYXQ^][\R`UNVWjU[Z]V_cgZdY]PSWV]dPSL`LU\]k`WRMJ]O[PO`bJ[X`\\ZQYaf^QXXTRSVYaWVYUVOZ_XRKU\[YVZJnYZZe^RUYSY_VKPXTQ^T[V[H\iMUQXV_hXQeh]db]df\\QTW]]\T^cO\UW__[YXbRO^Y]^YWO]PecPURKL_YYMUkUOOUT_]VQ[VO^RcL]PTOPUa^^OYMUf[SE]OGqdOS^M_^_XcIIUVdPX_YWXVT`Q^QOO^YIbaObXZXjcX_T_VdDjWX`TV[hWgZGT][c^^VXZ\V[\bVRV_^YWQ]b_b[kYT_[`XZ_jSbZRUe_VUcT`SZXY[XNZSHaa_R][aVWYTVRZ_a_R]ZIZPbZ_TQ]UWOS[]b^PTPTLW[fV?[`Vc_bP[ThX_SSOPSSQ[RXV_O\Ob]SRUdf^RVQR]UU[UWeRUIYUP[TW]YS]XW_YZP\\VXYSU[TVYVVTS]pcZWY^iTbV[_WXJU^ZW\Y^KX^\aPWWYS^^[Pf]W`VMVVXUUWVS]X\tYOVa]^ZG^U\Zed^T_QbWXeVS[bRIQA\[PX_dOYRNWXfYWSMSTUiYhQR[][Ud^H^e]QZWNY\ROMHS]XEURbGMXCdU\VPJT]YYM`IPd]VVUeJ\RRhT`RVebp]MaC^ZTRUSNYTI\H^cVV_O[iMkUY_ZfOg[YSQLZ`R[fJO]PVXPOVKY\cHLi]eSRR_`_SXU`ILR^cWaRbXVU_TYU\XWUbN\RfYjVU\QNT`\hT`W`WY`]SW][`SaYZSaYSLK`QaM_WRRc[LyZ[Z\SSTSVjSWYYTRN^LbhHQfYe^M[M]NLXW\_qa\^UQaYjS`vYXWeVX[mYZY[fYP^bhWSL[iSU`PZ[QUOW^Qf]OX^XX^WdWXVQ[a]J\ZYRl^]aJZMZaX^S\U]N^Z^oMWSHXRfY_NYZ_bb^QSTUYV]T^TVe\aYYRZZRh\PVTZWQPdWYX\URfISWXY`Ub`\PVWHUZV^]_bXXWN]hP]SNZ\SRbYgTYJ\VeScgfQ\e^Z^Y_c[WX\a^PY_NRZ`jRJiZ`_VQP`T[^_PMl]]aWaZcTTTWT__Z\UZ[dZb_ObKVhO`ai[SUNYX^[Q]ZVNb^WRTZ\jYLZXTX^_NQWRUHSQQV_aSXLW^Fb`QTUUSX[VUL\YW^YlSROe\LRI_ZJSUUZPR_LqVK\STcTVWS`MW_HQR]UnVK[VXSS\WVSdVZ_[heU\aWIlVhUSfV[FRWW\ZPSF\`O\\VYbUMVTZXfT][PZTRQWWbT`PSVYeZeT_R`_MVYWTVWL]f[G^McacWTj[[^RNhQ\MZcP[\]JXPLXMaW^`\WacPiIOJZe\NR[YSXN^TMYZRM[WOVYRS]QLMP\XR^PUR[X\icNY\ZPS]_PKQJOg_XTbU^Q]WXdXTZSR[[]f\Y_KUUVS[QO`OXQVWRXNSWKWMYWU\d^XTQhc`iXZV\X[^N[_RWSTbUn]P]X[QOJSZ\TY]QPXQl]WWQGSNO`SXYV\TL\XQcfcU`UTRWK^cTZ^WV_aW^UXZP`]]YSaV]ZTaZP]XSSIQ_Wa^cPTS`QZGVWS]YKR\\O]LSPUeQL\OXWW]d_T[SLU]\Fb^SRZV[[QMgWILYX^SRWOVULYJLTFKWKVVFNQaSdRKU^\CS[tSXbdM\`NWRgT[UFR\_PVRI[VSTSSPG\]TNVfOZbIRRXVNcZWKPWSNhZDR[`^NXQWb^bb[R\[UP\^Kc[bcedM`YUXbS]Te]gWVj^]RWf_c`[QV\UWceeUe]dgYVVa_TWbReMYZf^TbQ^VQN^`faN`Zca^^]\WPRT\WZKb[iV^^`O]Q\RVMPYW]TX\WS\KSSga^ZObNcgNTQR^\XfP_Q`XYXPW]^VX_eW[W^jXY]Y\YPVYLXXX]_`V^`[U`ZgXQ[aZYP\Y\]Z]O\_XO[XQ][W^WQV\^o_USYX^Z][`VTU`_]P`X]I\i`_W^`c]SZUY[]SZQSU`]]^XZ`YXWe_jb\\RW[YlHX[WVeQ_V_USYXYPaR\eX_`VUXWPRXY^P\^PNTYbb\QXWXYQ[VPROKdVUSRY][]XY^N\]WcVcXUN^cUZWYYJ_WXe[TUnPSUo_TKfcQ^O]\ZaQSTW[_XR\TW^MOSVXWYTY`TVYP`V^SVO_\Z\Q][UY]^MaWTVfgX_OQW\X]SNqXYcUHK][PNSVRWGOS\\X\Z[a\OU\WUjZcUQWcZOUY\tUVVTiUVVbSMQ`h`XMYAcdYX`i^JUZW]a[MW`TZXRQj?S^`eQ[]ZXY{R[STRTWU\\RJXWYUXcPjM`VTSYSW^VLN`Sce^ZWV`\aVEWIRXOgQTLbLf^TRUQKYVSP\Ui\QZaUKQYQaVVT[VUKRXVWQX[`bVJRZdjchb]W^RUVWT^ZKUVUR^Z\KXKKTWKhPakT]NPVYIYZs`UXKccfT\X`QWYUZWZYVJaVWPNNY_Wf[TWR\aVOX^`A^MTg^W\\TVvQ[\cULSX^_`RW_LXU\X^UbQYWT[OPdYVTWYaUTN^dWT_CQTZW_PndTc^Wl[SQTc_`WVa\\`NWT^VVXYb\U[VN\U_PORMNUTaYZVTXWa\WaL[MY^iQRY]dUXCxMV^UU`cTiRLPbXQT`Y[XVbd]WhdmZJdOXgU^X`h\dSP\WY_cbRVV^MVb\dOSk^VLZNmLR_Q^kZiML[_[M][GeQoSbMQVGP`[QY\^cXWK[]YaS\`jbafa^VVYXZZX^XTWY[gZY\ZpZaWNUdYYZKZeWhcNWUO[aYOcPbfWg[WVZ[]^RXUQXaTdZPTcPUG_P\XRS\\Q]Z]\\aVZc]cHXZ`U^dNPNTSj[_VZXuY[a[]cRZ\YZcRUYe\\YMWW]cVeTcRnR[TWMOU^cZ^MYZ\W`W^XOWUTJbV\ZXdX^\apQYb\Z`QQXYaZWVY\dpZe]_m[F^XPT]O^U^VSXhY`\[XZ``Oc[hSaK[ZTYZT]aPaJ\Pa[^V\TaQQYV]_UdTLZQ^O_XTigbVY[ZRfbfZZQiOTO[R^X[Y\TY\l]]\]]YSS[V\TTZMX`d^^WPYWYcXQ[Y[c[fZYfVUST[MXYZP`[IVY\UVNXPdUVfYXeUOTWWTg]`YR\PQ^T][OTJROcg\\H_TT\RWLSLUYZ^WfQ_h\]dVOfYXVUXSS^NS[VUXKOza]WKVX^WT_TV[O\[M_[[V\XKQa]]`TR`^YWVaabZRad_dVbXQ\lY^]Wq[WQ[YKY_VR][S_XhWUsUM\SZ\KUgP_^`\WMXOVVTYScWT[`ObXU^ZZ`VS`NYXMcZbL^]XKZWhWLNRXiT\ZXR`PaQqX_P]aYmMQXV\UY^EW]hcRQWW\[T\RQWY\cSRRPTW\dUO`aN_RZWZb\Y[^NjSQUVhf[TVW^RUbYWXHeUMSZlVRQWRbV_gOZ\ZTN`X\ZIcQX_VXaXVXVZR[cPS_JWT[Q{aVhHYZP_Td_^XVOVVe]VVbX`[[SHYJX\MM^dO[OZ[PSMTUOZZRTU^TlTR_`A[^VT\ZV\QXX]SOYX`ZWSV[SRcRP]`ZXMXVTUZZZYR[\\\SQQYkRZ`YWU^XcZVVRZOKV]ZXFMSY\`RWWT[VbIVaSMQSU`[\TVa[\ReZRVYSdNYXj]WSX\^d[WYRW]S\YVXTXi\ZfYLUP^Y]W]YcSQTb][W_ZT_UZK\UUm]VaVd[oLZXhedVUb]N\[X\dVPQVWQ^dVT]dUSj\[UQZk^Wa_OZZ]SSVZ[Ie_U^MSZX`UMR`^X[NYUbeYXUT]VZO\h\p[RSUb]b__e]ZY]Xc_X_U[^ORefX_Y]YUN]ScLX\]NS[VZ]XVQ\Ya[i[\Y^S[SOU_Y_UO]\SUc]P^YSUa[TW_[N]bROV[cuPZ\[[QaQ\T_ZSZMV[OR[PSU_ZVSe\XdPhdYUZSXcYmSRd]RW^IeYOdiMjXK_ZPT[PW^SNZVYU]k^aPM`fUTPPQPTa`QcY]Y]WbQdaYXYK\SckIhLY[H\RVTO^SYMQZXJNWW^aW]VY^`X^aXZZr_RRJ^^XUX^[X`OY\U`XZSX]Zd]dPiQYMYaYJ\VNZ_cVZ`VQU[gQZZYTdFZRS`NLiYZcSW]YXb]XRUcRZ^\VMlTZQX^lSRZcfVYVRcTNXZ[aH^aN_SRbWYUYlV_[WX]X]_^_iTX`\^KVXT^ROW[X_PZ[Zcq^fU^dP]Tp[ZpW_\aOkYT^UWYhSJ\Y[OOP_caTW]U[Q]Yb`[UYd^a_TO^SXK[a_]NW^^YJSThX[z\TTTXVNUeTON_RVTU^^TaZcJ_VVW^U_SXZ`aWij_Z]TTc]\S`[\c]T^ZPYUVWXX\P_KaU^WW_OTVRaQ`Xb]WfcT[RTW`QR^gaZSST^Q[LUeU_UWYRdP[RTW[[]QXWTk[VO]_dfjJV`Qa[QQ`UXOUiR_V[ZgTRON]mS^UfRVQM[`WQ]bmc_bJkVZY\oYTRWZQTfkPQZjaQ^[]SY\^^QUXZ_UYaTRVSZVh_WkTT`KgY[YfeOY\`WVU^QToQXLUIiSIdXUUUQ[S\pNZ]TcP\`QS\[RTNUN^XSWTZTRWKWJVdWUSVGM[ZOaMQGWKYQdSXLMRZL\NQUa[S\IsW\T_VZEa_WDl[HL\[Z\YdR[f]_YTRMW[NUX^]aSTWOUeY^U[QRaX\VVURXWG^TdZ[PP\L`WfZVcKX\`[dRPaSSZXRTWRPk]^UbUS\XZa_YUL[QR^R\YQV]`UaN_X[cRlYO^Q_ZNc]XRVZ\S`faU]VZFZYZ\SXO`WLTQlR[XSYZ_UTbR`ZVTYaSS\]XN[VQXSLObP^TWXRK^X_MaEQZQXTOZYNTWaS`T\c\aUXYSXOW^QV^c^V^`\_W[Y_RWXJdPXZRZUIHZUSZ\SZT]eRRch[b_^EKgQYZWNZLE_\uQDd[N_SdaST_JRMOVVPM^VU\eiWSTLRcX^QaQSXUT`NsP\V\IYNUX[PP_[WgUjZaYa`XRLSWUbafVeaYWbTg^XQbUWWN]dJX\\OKFVeUa[XV_UJWW^W_O^V^VRRPVU[ZRUYS\R^RVXbVZeVWX_NT[eUfYbVPWWG[WWUdL[SdVHcR]daPX^aTJPKaQXei`W]^^SRKXRXXOR[YTQTZZkVMXWcTQZ^ZTX\`XPU]VJ\YPXYMWVR[R\NX^WTTYIRW[`Y_bZ[\YV`adk_U[^YMN^X\YOe\HVUJ[XdUR[LHSV\TWNRF[c_WWaJVP]O`OS\R\VUXhaVcRVSVPP]SJ\O]`gURWXV[S]WUP^][fZ[U^ZlOF]beR`WVUVZaGKLS_YWbRYR_bP\UiSYWSIceaRIRKlZdbWMMdq[OJHNZJR\NTc]ZIQQ[U]IQKSaW`]OSTOYogRXTXUdOWe[Hm_YS[Ol_\RhWOQfRVZQRM[NZ\YIObFLbFOltZUdY]_\j\_`Y^\OXM\Yeb\ggZTS?WZQYYSDkcTUfQWafn^VBkVVMkSJWPXXPY[^UHRQX]MPXXRcY[ZWJLURVG_O`ZVkSR[[[RUEWSQacXcWYOR[gSYVY\__JC__QbTbZ?H_OcZUO^UWY^ZVXOMX]FRbMZ]]Q\c`YSNS]pSSA_sJJVQ`WiZFPCKRX]cm[`PUYYRLcUUUdjS\UiYf]_SST[SF^NOWVS\Nc[V`HML^VZZidYXe>ZGZURMiQXTdVYUXQTQV[hPRVf[X]RTbY]O[VRU^J^OPZVaZTXTZ[QQ[V\PT[XTUIZWRPRT`SSW\SOf]dO^iQLRSVWMZSd_QN\]^O^O\[WcYU`X^WYQSVGfVYNV[^Y[[XRZhZZ`P`hW[gMW[YNRXNJ]Y[Yf\\OD[_WXXaOeRQ_TfXcYf^VM[MQTRSRFYb\Y_e\^SKQU`TTRXc[bQWXf`ShZZP`\[mgWiLT]^`cZ\ZQc`ZT[^WX^Yccnf__QX_T[W\PXWsXX^_]dVY]VQo\cg`STW[aNXbMZZ\Z`\WgZVRTuPPGZYVbJU\PRLUV]R`WYc^[NQXP_`P`Yde`QNTS[cY_[SWSO[WIQLU\jWfSaOT[TcWaYXTY[qVYWS\YhYVR_^TbOVUcNUXK\RZa`a[YZPNKY[S]dQb\Y^\Q]UUWWFWagZaWUUQYjKRMSN`ZaXNQ`WSQSTZXP[NU\XOSlPZMSWRYbT`]G`TZU]YJSTTSU]XPKFS\\[LZK\`XRTOWmZUPROY`ZUZWV`o^TTRQZMVYIS_`NKXVQXUfO`VN\WPQSRdMTC^aWXKae[]S_]YSKaNTXXUPOZSN\W\SYWOUgW^V]U\\]e[P\QaZfc\]WR^NUhRMZYNbT\baTR\`[TlRUIW]Ug^OKj[\X`VSRVS_ZXbZVTeWT`R]WTWH`^`OXZWZXQXl^[^b^a^[QaMZR[gZ]YYO[RSYX[bXWN^[Y_]`Ydc[]J^WXN_U][U\^YZ_[^Y[bK[\[]VQZUNQW_\eSWa`Mb_Vd[\USZZiZ_YUTJ_TZV^Y]VPV]O[_YISZbNcZZXlP_QWW\R_WX]\K\IZaZNf[LRW`ZMPbV\MSSX\ZcaOcbk`]T\[\WXaQRS^GQW\NOVPgRUXY\Rl]SfgRSg\XReVUVXS\RYRHR[POiO\[XeRRSYE[cTYUVTeJSXaKRRVcRYVRXSTZbUbUUUQTRUWWORdYM\ah_P]RaQ\X\QZOVSPUWSE`XVP]ZHV[_]Wd^[SQc\[[[S]ZWW\hcYePM^UQ^]g`]^]WT]U]Z\YRSO`^fWaZWfKL]_\]Q_]TT_U\be]YUXbW[ZfS]bAXUPbPTXWXYYVVT_STSZRZMeUVQRZ`TTMfmS`OUaTWe[TlXKS_K[XONPnOk[Ua]cV`V[bU^bTLYMOX\[T_WU\a[Uaj\Vd^VPTXWef]]gR^`Vd[W\S]Z_`\]Wcf_Zb[Qi[PY\XPK_SMWI_VmaTQUP[c\gTUWd]bc]Z`Q\ePdm]eYbQLU[QQ][^Y[`WZXPXVaRZX]miXUWM_a\_Y]QZYRX`P\b[_WTOU[RYQUY^VdXjV]XPUX\SXXUUeoLaQeTYSXU^UXUdUQvNNTXXXR`ZXUXLYVXSXOGQhaWaNY_E_`Z]HgQS]^UbYOZRMZ[bTOI]U[LSHXURL[][OLPWlYeZ^NS]U_ZV\_TVPNS`ScZTUVXN]bY]XMnVVRR^NOYSOOWe\IaWaYXMUXUVO[ITWWUj`STZSSNbeTZ]XUVQSL`\aJR]VGQUf]VVY`UYWQVRXX]XRVTT]OXQTV^_^[ag`UfXRKYgOZOZ]^Q]TVM[c]`ZVhWdRhZdX]Z`_`bf\`_XZPRZh[]gcW^^TZ`W\aZX[ah]hY^U]UTXb^TYcdY]]f[gg^f`XZT]cWgkV][R_fZ_ZbbRa[]^[YX_RQZc\[\cd\XY[Za]QUWYX\[\dMMX\_T\XY^RW^SbS_d\agg`WcbeW_W^^aaWZYZPYgU[]YlTg_TQa\SX]ZiWWYV`SP[QSY\GObS`_[`hPaN`\PTYZTXUPTV^TWR\LRP^PSY\cYVTXNQOVV_VtOYQRQeZ^U\_QL`WYXZXn_gXcVNnUVXkGSOXF\WbXdUNVXma]RZ\alcUYSSZ`Xoe]cYXf]ZdmU_iRPQk`RZVXMXXVa\v\XPXh\\\TOLJ]`TTYRbYeWV`XR[[PIPZ\`[[UYUVOQ^]USOYZZgWZU[YQhWgFZQVU\VVXSY[V_RY]S_`VWPXXNJS^^XXWQbUSMaVW`[[\ZbOT]RX^KDQUYXcTOiVJWN^WVTSmTIXbZITbVUT\]`^bgXYVIWh]R]YXYZZYT]\bQaXSh^oXVaUKRUXWWWJLSU^a]UKZ_IXSbSNZTZicQWQVdT[XNZSP_QPUVUN^XRQYU\VMQPZZ\cYdfWX_V[TaDTT\X\N[S\S]^YZSSURXQTQZlVbKTUGP^T[^V[ZYYgOW`UhS`URTSRbP[Z_WHLWW^OTW`RSTeb[VYf_ZaTKX\WY_RRU\ZScX`ZUUKvRWSR^iXKQRLOJR`W\_cKZ_W^TXROXUfSWPNI^VVUjV]S`XZO[nVZOaUPP\XRQZ^XQ]UXZVZRYGZYYXYNRTZVJUWO]WSVYQfWTPVWKNZU`TKWQNVUWQ\]cZWYIZZhVZTTSfY^R[SKf`X\RZYOR^[^PV`L[U]f\zPU[[RbZOX]XNa\UM\bMNTNMZZWVWTLOc`I]SOa^TWWFTkOVdePSYQ\SaNYV`^WbLfUSUNPWlU]VYT[OhWUhY\kZVUDXWvZ`TSWYWP_KV\PJNVWPWXZS\c`]_^][h]P\YYfS`P\KaYZY[iXZ[X]tU`ZTZ]USY\NUjRb^]XLVHd^WYiZ]fPU`aZX_TV[Xa`ZO`NVYg[g_pfXg\W_l\X]XPd^eZoL^Q_NcURc`zdYO\W\^WJN]mph[U[a^SgaiaXR^aQaYPQc[\W_U`XiU\i[fWa[lhb\JVYWMVX\[[`XZ\SRVeUfXUZ]^`m^NRS`sRWV_Q]a\VZOQTY^``\W^_WML^b`QMWgjVT\MhadUT^]XSUX\QZ]YY^LXT`WiORaONJWRLZX_LUZLnWUQbT[dcT_cfa^VNJZSRM[JSY`RH]cad^_[f\OP^`ZZ^^[N[[WMTcbOb\]WZiiX\]SLYT[TW_TYaIRXcI|YSH\cM[[]PVbg[WfRWQPFaWX\cOVaaOXTN`XQ[PSPVYXVX[M\Qa\W[Z^UTPZT\[VP`_\Uc]Wfeag_NXRWXiW^XR^JTQdXWTVU]cfOS^`PTVQYWSXULcUUXRXW`Sh_TTR^aPaEUSWmPN[UeW]TYQaP`UbTX\baZOPNYQXYT]ZUVUa]WZaFU]TYUMYaYU_b\baRNRU`USaVWYa\XT`\VVYXHZTRPH\YSYOORO\]TZaQJVR_HSRbRQWXNXUIWWDT[R^ZQWQYaSQRQ]XS^RQ]O[MIHWRKJ]SSWUR]dOURLUUIOPTXZcdYLOJRTT\UMYe]VTO[SLIN]QJPXYR_T[`^\^bGM^RbT]OJ\O_YXT\VRDXJPLJ5OSOJANRT[YWUESX[T\jWHZ^iLRLWXNg;UY[XQTQXjY_XTiZ\V\UFRNVZPSWNRZdNVMS\PlSXV[UW[g`LY_UUQUS][ThPhbOaiQLVR\deaQ^TXW_WeW[MU[V_cd`U[bnYV\ZORX\bZVYeeK`[k\WaW_MXTThWmR`[LWcWVdS_gT`cRQ`SZcV]ZQWZWb[SZIgei`[X[KKONR[]d\XU_aYEcMPVOP[g_cZNKYaS[KYoP`ZVRbeWQXXRcVXeYb_QR\\_\Y\PRFR\YS`ILI^cZTLGVeXXaVMWR^^RT\TTFO]OOYTP\]]_\f]\WWYYYZSSUSUUO]b]`QVWZUUUVGPPQZYUcTR\MSWMR]VPPTVg^Z[_kXKL]]SeRXT\Nif[N^LX`UULaiESYW[`]]VP`QXI\WCSU\WIOMXRWPY^\X[\Z[SXV]`\VUT[LiTSY^EPVbVUWdPXKPE[_UG_d^aX\aF]k_ZLQOOQUZRXYUR]VVYYUWbY`^[]Q[eUSWYMUR[h?WU`m[TR_[NEaTTQFUYX]VVMVNUvR]\PYX[VPZR^R`]WW_QghK`\YNWPbTXNYX[ZbV^]KYNRH[MmUJVaYWRWRfGU]^THRPVaR_RJZ`mXXf^^NTMU^UTZQb[XKb[PUUi]ZZaW[QWWTTa\_YbPcg\KYYbFi^iNTWJSZLRLaNUN^bee]SVbS[SZ`Y\haVWXZW_Z[^aXTdUVb[RZ\YW]UNaT_NS_S^qOb_Tm[WXSPT\WFS^`gXTZhUP`OWaZOTQTe`Na`WT^ZZQ^]]SZ^RSYVWWHUXWWM^k_UXU[VZTeZYaWc^PWL`PaO^`Y\KT[QXOV\UHeP`gXMPN^WK\^eT_aWRYTjXKX]]VNUNW`IQRMPTfRJ\WSQSOaOPKwYY^PVcdmXUWLQUHa[RK^VaPZRVjPVaVTS^[[`SV`Lf_iaSeETF_^dmTXWLN]NZ`XSMXYWOOWZWH^gn\]``VJNYkWVW`URQZSZ\[KYP[WR_SUMUK`LWQ`gXNIlLZULP]`U_Ra\RZRP]]YOXNQPbUSiSTS[hSOf`T^UY\NSe^]_cMP_VQUZNNRaTMe\[\JVFV[XMLZ^UUVVYPTZcUS[Y`cXaQO_QbQ^VXVlZfSYe^dN\`]Ya]ZU][VU`SY[^[_XUTVTTVVP\Y^UNVQR^WbWZXZO_R[YXQ]UYf\Z^RVPTbM`bUaVbV^`[TT[PYY]VVVVVWXUQCOYO\XVH]XWVPWQNQJbJRi\cON[XJ`ZN\XKRK[L]YNKTd^bYVN[]UhXVOWZWGWKc[KT[Yi`^WYNYYPOLT]JXS^a[\R]XSVZUUKQYVWZTNtU]U^UUTP\`Vfe]_TgYX`bZN_cQ[TWN\hU\TQNVUa[MfTRENNUSMLWO[WOQPNegUd_OMWWFU\i[RUPTfTPWYSZa`V`UbcFR[Y`eSXP_cT`iS]ZUVXMY[^RTUY^RUXaWVU]UHSJk\[[`GLQT\WX`aWdUKVNYgZZYU[RFTbWR_UbYSaSMVH\TWNRTXO^RV]Y_]WUXQO\[kNNZc^fZL[FWXOKSgUZ^NOcfS[]DfSOYWRVPP^RNnaQW[TJTNL[PYaR_TWUQOZUYUbZJYRdVhLVUZ_V]P\WSS\S\edPSPLRS^XeJagZaKO\XgWfQVO]T``c]MISG_HTg]\V][\S[RMRcglWYcSeYd_\YZEM]_SVZ_^YIP]WOLV]_cUX[_OZ[[ON`Z\UvNPaYOwH]`bS\R^XehSRWUQO\VKVZY\Q_SgbFZL\TQ\eaTg^MKbMTUaLXdbhZPX\dQ\aJa_]R`RX_QW\XT\[R`LPWZ`VXQUYO\^\NYVWUZTWWTUZY`eXYHTTYQWa_\ZYST^]Y[^OeMZURd^Rc_gR_ZeXXXX[UVYWg\UTWfNLNW]ZW_^YW][]T^XUQ[LaRRY[_UVVZLYVTUSYbTRUY]UZYUQQW^UUW_TYWXWYVR[W]SYWVRWV]PYU[[T`bUUYZXU`^WNVcUUWQJYXVcZUdJTTVL_`QU]Q]\ZZhm^Q`USX_UQRfTjWUXdY[RN_[fPMVYZfWJibTQeYIWV_eXKiUMUVQWUE[L[\X\OTOMbZRX^V]MVIW\j_VZ\fNVT]T`cTV[U\MXc_X\LOXeQZXaRWF`[_[RYfS\cJjOWd\MYS\S]fOeXMS`\VQRN_UMT[[W\QR]Ia\VWWLIO_eZIRIOSVYce`[^m]X^KYUZQWPXX\XYOcETFXd[^POahTaQ^ceg\WPYdYYYQa\TYZ][^`mUXH_``OdSK[R[TaaO\[beZVcWOQ]P\QXaRVY^U^P]eaLWYITUGPGXH^TQ]gTZOXgKY`XVWaY^X\XZZY[ElV]_eaTsWYr[bQPTKbXM``b]hWhfYgWf^Wbb\]Qc`SZYcW[Z__]Z]TO]X^_U\TYSWLNWQTXPS[_ah`dWXTMU_a\N]U\UYT^]SX_XYU_J\UOYXT]UN]VUWZVNY\XWPQ`W^f_ZZT^Ug\`TVXaNX]VK[^XeQWSZ_OQTYTQf_chbVeY`TRUTMbU_VS_PSV_`SU\WoSVY[]XNbfXX`]ZX]RX`WfWZ[M\]cZ`WUVX^V_`M^^ZUc[T\[OL_Z]TU]SHUPUOR\QRTRZT_ZZGaPWWWYYWVTh^R^]s[YUQWca]RYSSPXYFYUcWL_SSPNQG`XZ\ZUMYK^V_]P[\Z]\WTX\UcXZU[Z\d^cX_TURNMT^XgYNVb^W_RXX]OWHhUVKOPWZYO^U^U`dUPTSRVO]R[]VXWVNSY\bXbWWcSU[_cYbPWZRyYT^gZ^R]^[GlYZV]Xd^U[gdZL\Q_d]aVQYS`PJZNWTVVRVW\_gcIO]NSRNKUZYb[Xb]WXqqPd^[]WOWWUZU`QTOV_^Xe[^][eURSVXR]LQ]]WTVZXUT_[TU[WSXTYc_h^VXe^VbSU^`\Y^WSR[UTWYW]XPIT[[V]`WTXVSQSbY]V`e\VZU^]Y`Tbp^^\[baC][]QV_RY]WZZYa_\V^cORUV[\$IMPXWVK`cPT[[Q_VM`rSP^ZmW\dW]Y\`HbVZUb``_\UK]VOW_TQNYe`YQY^YbMVZSZUVWY!]bRW`QUPXWdUR]XVNSV^[TUK\X`UFMXNSQURW\\YXa[d_NcW\P`H^ZPZLYRXUZVV[HOYbYSY_U[]MSY`oTGWU_^YiZV[X`\W^`vU]TX[QWTZHXWi\RbO^o]STUUPy[dRZRUW`dUSVXUTUV]]lUa\VY[TUVdZX`[X^R[b[j^Ya^SVZ__H[VaVhbURULQS[i[b]UX[^dUVPXU\YXXRh^V^WYPSRZVYbdrQZLcgT`TUXVRR`]aX\Z^V}W\WJ_`_^TTYycW[^aSW^Vbf[ZdT]_URYVYdKSRTQ^^bWaQPOg[WTIgWMX`ZYJWbS[YMKVW]iaV`dTh[SUad]UTd_TVQaQ^YNaT]ZUfQVS_Y]\TdWOeRThWTK[SWUW[V^^^_SZQv_WaTSTR_U[MR\MSSW`XWW[\aRZW_^QXZVPSd^VXY``LTOdT^]Tb`U`bQTZPXI^Ut\b\dXLTZTfUV[e[`d[]VXR\RT\bXaMU`XX[_TSPMJVXcWVRYP_NzUQST[eaUQTlYHZTLSPTKhzSNOWSvaVWUaZ]YO_RS]Oc]WTXSYV[Rbe\K[W`RQYMHL^Y\]PYaTX^SW^QV\jQ^WYRe\iLNjYZP`gTl[`UZPZTpRZXURYaaaRNXT\X\V[c[ddRcjNVYOXaQK\QSeVcUe\[_hbT_MXabd_KdYnWEUxTSbYN_UKSVPMU`\[R^XX_ZZ^U`fZ[`\d\`_WK^gS[eeaRTebTW[\W\o_jUST`U[XTY_VZWYYbYSQh\W[]]eTecXU[YLUX]U[echT`\YV^USX\RYYQe^NQM\WdYiWV`i]VZXRZPTVXU_Tl]U_S^V^TUd[RWWTQZYUW]\YZO]F]XhU^\_faXJWQWZjWLhOSWZ^\`W[_Oc^`XU`V`XPJ_W\T_VZL`fSRXTUfSOM[`RZgWc]Z_^WlWkZYQX[YT`Wcf[UJdaVblQM\UaOXGYcQ]RM^I\[_YS_[ahiT^]WYTeNe\VbO^WZZZYR[aRZhb]cTUiWW[^TSR_^PIW[NTVW^XZT]bZTYZXY_aQHPV^_[QJbYPL_PUXXvS]XbT^[`I]ZMPWYUQMYSkU[SOaVVU[SbRVPaWZOQYWbLHUSbGa_KR\M[F\O]uY\acWOX`QM_YZWVKMNXbS[]V]PZ^R]Z\aPWOaN\S\VU_^aX]WM_ST_NWZKTHNWX\RXWWKTZTUgZPYSURQOd_]S_UP]PbY`WN[SV]bUWRYTYcZVc[V_]W\VSfY`cVVPR]`[MmKUXZG]VN\bQe]_XXQSX^YWc[\XUXZOUV\LYS\L\Y[VUSV^W_YMX`^U\[UTUWLe^\VW]ZZeScZZ[MNgYYbSb]`a`PcWU_[KPZRR[VWUOUM_QWWVY]Q`[_\]XfVV^UWdd[\USMYXZbZZYYYTXVddWZRPNVQW]RW\WVLY\XV[[RU]MZXgYR[WW]JV\bJY[hMQY`KW\WbYWZS\WGaR^\iW_[TUX^[PVT\UdW\\WbWZU]NPWXOtZbQWPSS^TMUPSY]]\aoXXO\TNO\Wa\NNYcY]YVMYXqa\]WbKB`ZTYf^EO`QcUVSMqH\TWYceYVb]QQWgZ_PT^WLT\Wb\_`Ph_WXOXQMUQaPaaHZOYLQSVYK^KV`aPT]\FX^Pa_bQUU[_^Vf`K^J`jZJUc`OP^]W_^WQTdW^\FQL[bUYYTUcWWbZcf^TP]bX_LV]\\aSXiXY]W^]YIT[TU]S^dLh[eWZjZZb]XYXZ\X_VS[R]nSjdV[jfUQcW_STYd_dTg]d][Vc_M]OSO_faM]eUZT]NoZZ_ZQ]O`mdObT`P]f\dOQaXTYZcOQd^_db]\TT^YPl_diWbZQZbV^Q_`SZXd`OPXj_TVWd_Xd`Ye^aaZS^aY\ZVVa[S^PST`VW[aY[oa^_cZ[Y[[[XPWh]]\\WU\[ZY]OTPS]\VL_VSafUXWZZabUW\\O^`X\aQRQ_bU^W_VWWXSa[[_agiW\bYSYSV[Qa`aQU\WO[cUMTZ^OVSX[V\P`S\]VWX^WWZT^Y`^YSfReP[p\P^XXP]\QlXTZ^Ea[MRJZ^P`YeXiZkWZa`[ZTTZY_jitNYUXbSZZPRV_]YN\fKYkUjYXYVbOYXNTUV^gd^dVifddWP\\`[d^`_jdVjbW^XSOaN`SdWTX^N_gZONTV\XQd]VZZcbZn[RUfU^[SlZe[^ReTcQMZ]O`_\OT^`VY[S]UhZZUZa`\VVdXYaX_^X]MSPa^hWXaYZdPXHYXOWUdVhOTZ]JQXMVaWocL[d[WbZSU[ROXX]SRdN]XlZi][FLS\TUQ^[\QXWW^WOX[d^]PP^\^ZOaVKViXc]ZR]]Q]WcU_^jXW\Y_]XVQPWgUY^Q\aUQiWXcYV[RXgWTP`WTZYb_WX^NUYSXaZRV\Yb\RY[[^WSUk`YfiXddT_ZZOVa]fZbZYcgULS_[RU]T]YXYVZW^ZR^NaUcORXdXb`]UXY]_aPS`[VW^U[^O`hXW\ZMZ\cbabQZZ_\YpTUZgY\PR][TU\Z`NUePU^T\V]_T[\TNaYSVO_RT]Sv^fZVdQNOKZTMbWfkW^]d[Y\bXZX\]_`O^Tf\\OUY\fcX[^W\]VS[^YXUQXOQTUTY`tVLf^rWTvS`]PR[M]SWc\X`ee\VQNRZ\VTO[VJZR`aS]RQ[cOOZMRPXZ]QGaObT]G][bTLXZTXcMUVWYaQT\VWG`W]PMdReX]^TbZTWdZPLT[OXVaRQRROXQXT_SU_K\S[YO[N`VRVPM\cKMWI^[\SZSNi\RVKQUO\]j^VWkWJNb`OYVQZTLRYZ_UTM\Ud]LWZWNacSXZ^VQ_WPPVUUXKZ[XUJWeXl\WWUKS_IUtdSW^VXDS[UPVL`^Y\cUWH\[\T_TUYUULN\RV]UlXQ_iZM[YWaZ`ZYQVXWQ[bTTX]T[NhZggQSXWYl`XTLPYQ^aW]RaSRUbYaiUeZ][`PX`T_UMRS^^WYUR[YbRi_PV[[]TbVYd^ZePZUYF_ZYeTQJQU_VMS]W[XWTXaYRbVdTUTTY_`NcSaTKU^ZUUYQag^P\XTPT\YZ^V`]_@QUPIUTjSQ[MdOeWTP^TWdVUPX[URZ\XW`_jOR\O^]ObjZ][SU\YnoPQV\XWRXRQO^ROT\[]MT[YXUYWcP]WTNcW_SUVi`\SYWX]Ye\dbSb_YWdVUHTZNLa^sV]VYXI_a]ZX]QQPOUYcUkXYbUJVdYR]TcWQYPJ\IX[\[^[^egUTYdTS\SRUQXTUNWbYS`[XaLTXS_\o`X^[EN[JYZYP^eN_OnDR_ZtN^JajFZ^:bSWXgc\d_W]bi^UOabSWYPNb[]YX_QccXhYtlZUXZY[NZIKYXGR^NSKVTVSWYU\=L_^YVV\aJhWWEUUPjX_VY^USVYP[UWRVSbVZW@[XR]]KXWQbP_K\IU\PH_jYUcVL^YQY]^XTfaaQUVWU]\a]JPN[YW`XXPaR]aM^W`WTYNL_RS]W`LSTbQIXSYYLVYRV[SQYTTRWYNSNYX^PWTfcY\Q`YeY\T[]\\bYQKY\NXW^WaTWXN_OVT_eVSWdiVWchYQe^d[aQWFYNg[aaQheZ\dYUW_ZLS\ibcV^TVRNQK^YVZV]eXTORT\kSmeQ[ZMZS^T_SVSLNQZPJ`SWR\OX__R]^bPWe`Re]H`jN_X_`X\[QSQNHXTbXKL`TTZPVOZi]`]db]TXLMRJ^[bSUDWIJb^VI^GVMmXbaUGndUM]UOah^UMWNdN[TXXRXanXJdMZ[`W[[VZ^Q`YbXXV^YW]L]PYWTZRUSRRRUPQUMJ`^bcNOINUbQeKO`XWaOXP][[TT^l][QbWUiIE^_a[CPZ^VTVZc_WQ]UR_^iQTeW\XSXSVaW]ZZ[^M^f^QPJSRk`UTUBY`PaUR]X__^`]bOShV[]UZXT]UR\an[SWdZ\UbPY_fQ\Q[\[UZWSMZT]W\_MR[PQS_[S^JPeW_MPS^^\S[JZXRW\PVZQ^XVWUf[o\\[XXXUPb[[SR]VWXY[SSQX[pXUgW_PUa_TYRbwZTTSKP]VVcbYVZbX[UdU^P\_WaK]Z[R_`g`WcQPXOWGpT[jg_`gPVYVjIeL]PV`QajbQYYV\S^[LTcYV]a^]]i]YWaMqT[dUaNXYKMTPMXb_WWVZlPbWUZZg^Y^^TWR]d`a_g\c^[T\Z\STZ]UU_MIZdcOaZRdQhVaYQR_gUQY\IMT[Rh_XaUW`P[W\SiSNQd_XR^V\^NU]WR[Oj\VYXIccYQUTTbeaYQQZSPZOXdhaNWZPRJF]Jh^U^]PVWHVU]NRKJZ_W\XbY\WPSS\^[_X[VIQQTcSXjKYJ`OWE\\CSPYROdcZOW\XWa^XYf\UW^Y\P]QieQLa[ceP_^PQQYQTb``NNqUgXOc]P_ejPLVYONIP_a[MeJVVJT\LPZZSUSZJa[YXZWZZSNQ]^O`Z_MUhuYDQ]QrL^GdXYWRaVJLZSXL]XOaRSXd\WWWRJV^c\`QUWef]WNUUQeSHP\T[JEQ;ULYPjSYP`]\a`VRL[ZZYVXUXQM][YZTQScTV\aKS[VYW_O__[S>Pb^T`UXRO\TK\MI`X\RRXYWagY]N[PpVTTVOXURQnUVTYZ0aVN[ZPUXTVR]M_jYXa^e^Z[VOIZPUTS`ZdVYYtXWXONSebYVMWc^UUO^ZK`VPROT]XUUdUZ_WLUaVSUTV\WYVOXYYUaTYUS[PTRTfPYVY^Rb]Uhh\WaMK_\_]ZPRTR]`XYZmRQeV[N`YWSMRU]\S_QV\WVWRV`fP[`S]XYMZ`WY[\[KO[TXT\TZZ\eWXLVUdRTcSf^]WVP[`NTaV_\^WP\]fXW_T^TSWVMeUPdX]ZjRQOdj_\WM\YYOZ]XXUU`YKLSCbVXR^\VbS`nWaFV\SRK[dLNPZZVSZaZQZ`^WUmfVKbeSmO`iV`UXUVeWVUHVIe]I]WRaUYZRYVYYX\^XWRZXV^d\]PSLNaXM\[_V`hMT[YYUVj`VXWSS[VPNqM_OR\dZ\_PVWRXO\K^RZUJ^VV\OV]VTcXS`SXTS[fVVY`ETWXYY_^TOWYh]X\W^XL`ZUZ]\aePSV^aQTTSg^cPS`Pq_fU]WXRbQUVSXi^YEWGQg\PcUUTMVV^WVaP_^`Z^d\MO^Wf^[YVZIeaeXO]QTXOX[UMU\WecZTW[R]ZQZf[jR[^bSX\PSV^^WqSU]Ud[WaRg[C]bbVagSZb_WXe]WTXXXTZWLYY]\XVVKgUVYeZLUX][ZMW\d]PaRbYdQW^XQXWW\^TXK\\\]Y_XSUbWRW[^WVY[VXNdXSQZTY[cYZR\ZTV]SJ\WaZRMZX]_W_QQ[^PR\TV`WN`NM]GWNc`\aN[W_YT^VW_Q^[W[[cPZXT_cZ_SYA^U]ZN\VQXbPK```T[R[Y[W`XSU[]a]WYY]Y[[]UaVSRPM`KZWF`JYFVQXRcKPTLiWWXdb\cYfWX\X`IVoX]IOKZZNYIYEfcQ^RcYd`RSaIWICUZhYXe`_Sf]Me\YlKFZmMu_PiXPZ`WY\aONUT^LOH_bYJX\a\cdXnPXRFWUnc\QQZVPNUOGfc]aVd-_Ma]YQOM_[IVP_]YY\`[cUZgXYQZ`^{NUMSRZLV`QRaWSXSMfdSPXjgWUkWWZ\ZF\QOSY^\UUUO\VKV_aZNTb]PPY]a_VWRPYPXW`\aTZ_WSOXYa\NWXXLYXZaRSO\\^OLPY[WUWUW[ZYQU^_^T[VWU^QVXQVQRPUQ^WZTJVT]USX[V[[L[T\vYLRTd]]cXSY$[aab_`$V`\`XX]\`VUTTXSPOPY]]SMOb]^P[bVYS[e\[PU]UUF\_SQZVZE_Q^T\WTUbfU]ZbS^g\V\dP[CZMe]_XUQB]g\a\k^`N_T`VKb_cW[Yf\[YOT[VXV[nSN`kVYXH\]fP[SUXMY_SZObNTTaiSZfh[Yd^NKYQSbX`XRSi[UfTQ]W^Q[]hURe[OQ[WebdVLWYXcZh\UZlYR[`K\_RTQSZ_`USEY\[Wac[U_cde`bXWTQQ`^fPZd\eMTYPJ\gSXS\Zf^Ufsc[JSQZaMWSb\b\jRaY_WXXVXce]VV`[ObWWPKVb[GVV_SX[YS_bSVT]RU`aZd`Y\WfQTZY]X`YaO\QUgTZY^OZISd[SSN[Lae]_T\aYO^b\OP]_]ZXZYUS\\TSW\VYVZ]TXN\N`T[YciQ^bbYVPS[U^Z\^ONfWS[NSckRL]UTaQWaXacPdN_WZRZWUQ]]M\a\_YXS\W\dVVWSa^VVSSUiYW^Z`U`UXbTQY^aS\SXSZX\ddRWNkZlUSNSYLZchXa]\aMWbJ^RTX\X][`NUVRTV\[`[L^V^YZR^SUUTU]UbLMP[b`VZS]S_RWXP_[TcTSV`^YcUZUTP[U\[ZSHZ_T_`TR`TQRO[XX[W\^WWSNhK\Q^TOIb\[TLV[ZTa[\T][XV[M[`YUV_c`VUYHbTY[RZga\]ZZX\QY`J[Rm[[RSaUZ]\dTNVUSYZYTV\[U\dc`W]bVTXX\WY_[[SfaUXVc[WQW[]Oa^[QWXqjTS\aR][QYXQbR\^aZP\WW\VXVVT[Zd^UX]XZUOYWcZPXVRgTYIcU]e[M`WfHET[XPQT\TecT]_`]Kg\NURZUaL[VS]`RP[]YM[UiTbSYQXO_\J]_OZPkZ_V]TLX[bUNQXWbZcSK`^UWRQYXUT^N[Y^__e[dW\_cRLWITHf[YQQiaRYV`^A][VTUPu`VZU]c[[aZQ[PV[_u]iW`^TfTQ^RVUWaTS]_X`cgOYZVP^[Y]\fWVVRWch]VT]Y[b\\J\YZTNMTO\\]T`MNPW]][QBSWQWY[UMRcYiVWXTjHVSM\]jZVLemRVY]d\XXQd[UZTgZ`SadUOS]T^FWVRaT\bRP`UXT^hVWgZTVVPRZY_`[]_^^SXXVZ^Q\WV]XJXL]ZPWS_[bNdNXXT[TWKbhP]VoW`U^aYdPX`LO[QYQZ^WXYbVXSL\WVWPYSX[OZc`dkJSYaWRSScQOOQVSH]lS]\[ZWZ\WLXXUY_US`XHRXZO]PM_NVfRRQTVXaMM`PRUTHXZSL\bHPTQQYT[R]RZNmRO^PQNQUTPLX_PSX_TPSVX^YTIXVZa[^USdOP\YXW^[^\LTaM\bRUQS`RNQXuVSVWST`\WVU]USDY][_Q``R\daXXAMiHTRV]WWM[ULWQNbab_j`MfcUQYTYSUUKbNWSO]ZYOfd^RVW\[MSUZYcU[]UUS]Q]]YRkpSV]wVX[_WgUWaWH\OWPVcQJWhre`\XaOuMM[^ON[`Q\`QUXbVWeXU[\USYXO_M_SV_LPORiVYuWSS^ZX^QhiWYTTSbTQYUfU]\[QYKP_XZT`UT\Teb[]ZR\X[N_RZSZXR]cX`T\V\TXbGVS]dVWX_S^UZM[NbJc]URPQUNR_c[igbeUVQRSSfVc]cVfVMOI_P[YS[SVSZf[NdU^UTbZOTRYT[TYWb`PTUbX\aWXSeYX^\TZV]LWRcOS[O\VSYSnRdXXWRUZXiGYRYT\YZ\PYZW^_aa`V]P`XZ^SXLTVjUWTR[\]UY]VbR]OURdiYSW]UZcXM\^c[_[`fZ\SbdLZW^QPY\^U`\^U^VR[aSY\]V`aT`sV]e^`bKb`]IZXjQOQLVX]gn\bSXgQoQdd\\V`Z\egVIbahcOThT\__RZUYgZGWZ]a[[VT]_ZVb_`\X_aDY_b_`jY[JXWZWfTTZ[Z`\_ZN\YRU\[]WWaV\]UYZ[XbJaaYP^[\Q^YVUWcpUTQXYRUU[PMQ[PnUL`YXkWNa`]RY^T]XXbN\[Op\pS]a]VdgWNUYVHTWiT^Q]UXWT^XcgWSqVKbeafd]RkY_h\_Zc]`_RSSIUeZZT\h^fa[^pOUP\W[a[IjaW[ZWZ\VPYbROHbUQ\[VbO_YU\[OPRkZVOL_YWZ`]]SZR_QcZ[cajWDY\YRSPOUUUVZZ^W^YVU`SMZ__U[dVTdNXXVPU^lb[\PbPVsSEO[_^PYY^[YRiZXQ^S^R_UUbTeh[UEZRZSZKgKUOL^T^XZZU^bL^]X\X`WR[PZYQUZNYYa[KXiVaXT^Z\\SVRV[USOYVWaZ`[WX[URgV\SUY`RSMXdT^VhcQbLab[OUTSOYVZ_PWZVSZO`R`Vc^ZajOXO[^NViV`NQeA\QT`W]QQe_JWZhOHYVMYRL]_VV`X[bUXZQUkJO]W^T_ITEYZOQZS`W_VTPW^\YUQWUVTkYW[IXYRYR^WfYRT[ZU[RWVUbHRYcW]XeGUVOiXRc^VfYMS]PQ\]U\[^ZTYQ^WP_LZiXSUZgPMbRPl^UWU[RVU[Ih]ebZkU_WbTXXQV]TSQUTbYU^iaYXX\bb^Z[[S[j\^YJYabIT[N\Q\U][Y`V^[dXRjaQITZbaQUUf_IaXXQaQZ_]^h^i_ZV_rU]b]`R[XfU_eXRdZ]`a_UY]Y^W]WabcRZPWTdg]WLKU`jRSUUOOKSR]\Z\YN[TS_ac^fTU]Y\\p^`TcLZdYdWYbUa_ciVWUU`kPTbeKTZUWK][fMZL[ZRY[ZXXf^QiQVRTOiVZUWO\WNM[SSP\is[fOTYYWMYa`g]YXZf\XMml[MP]ibmWRWQ[QDa_WVWO]\Zc`]YV_\\\P[ZT\PN[^QWSYYK\Q\SLZjPYS_PWTY[rXZQsZdUPbRePg\\XU[OROZJ_KMLXPecM\XVV_IV_XXPaSTGPTY^eaYQXQWFYWYOY^MYSO]^WQXZTX^OUceMw\W[]KT]XS[WW^`T[hZZbRb_TWTJjS[]V_abPY[X^XYTZP_S_[Z^WWdYWQPRIa\ZUSbQeU\_SZRTZRNWScoR`gZSV\V_]kXVQbf[cT[TmXWN\UaQVNV`tb[lQ`Oa]YdXZLk\b_\a^^`\^]U?eaZ`__SUbX[]^RgN]Q[RV^VId`cVSWV`S][[[RVSPYTVT\`PdWafTZX^RUXK\\ZWaObYX`YOUZbUXVZS\aX`_YPRTXSUb]W_a_XhSQaXjYYMYO]oYiSWgQnhUSMN_]S[lRcTYYZdgWVmQQQJXSS^Z]]W\d|USbaV[Yf_^WcWTZOVT[gZTc[WVRZsaGWY[TLTfb`Q]fKJX]UXMfZ]YcYZOZRPV\S_\\WfT\ZQOVVRZ\YYXXZVIRLPafhbLRMa]TRZd[JM][SQ]X^OVXUXZUKRZS_Ya\RYQ]SV`c^gUYZGP]LWY`ZX]T[_MT`NP_TYX\\]ZT]VY\jS\c^TPNZXa[P\[f_SRaN[]\\]UPSQcY[LX`XZ\_OS`jKW[XZHXO^U^ZPMZYfUT`QXTcY`WPXWY\U`Rg_RdSTX_LZRYRVR]VXRZTU[\QRZF[[MRU`UWOU\[UbYZ_^W[Sb]YQERd[^Q^WISUYYVQZYURXWPX]`_YTR[SYM_^QQZPbUS[SWdYXZOZSQW\XRdJROM[WWX_[Ub^UMO^U^lUZT]WOTY_`aVQZcX]MQPS[b[_XSKXRYNiaf^_Z]V[WVHRPPWXZ]K_O\UV`UXW^ZkVXXUTa^ePXR`e[[[n\`bT[TIQ^ZRGdQXVQ[XURXdTXpQZa\LOSYZYZqOXTN[\WSWUa^OK`[WQV[P[WS`YX[T[QWZK^SZ[[c\U_[O]\T]Q]R]TUZ`V[OSoPW\`T^TRVQcQUV]TKWfUL^c[]XLXaLY[]FT`[PXYZUZUfYT[]bVS]TJTW`Wk]TXOUXQ]X[bPLVSuDR^_XZSVUUbWaOZc^WESW\^R\\P]dPVXYQWa^^QWcP`OYPNIe]J[XVWY`^O`BcYbTXh^_C^cRS]`QNLXdUQgRLPY]QR^\SbhScX^eXWVQZ\`SLXYTPUb[VYdW`^hWjT\`UimXO\RYX`XuhWcUNOY``P]bTTOSNjQ_VHYRYi[]WNLSWQ\NfZZNM_V`e]P\efPRWVVWdCUca`HPZZV[`RcU]MQVZV_\SXYlVZXR[TZT`NZWHaXo^_\Z[VKkX^SXTWQ`XX`h^ZQON\feVaZ\]SSjQnWNSVPSSIWa]VWX[X]]S]VWVZWTTScHTZ[Y\`QOIaQ\SXROYRSghWa[TY]`TW_ZZPXXVZWZ][`\ZeHPVYeLb`[XM_QV[aZnO[PQS_X]YbVgQ`ROU\bdY[U_W_U]PYSTHVPWRQUWUWc^UK_ZKTXVX\g]_UMZO^RZR_X^VSZcjUXPP`]^VU\KTYSYVRVPTZQNWYTVaS\TJR_aSeTWe]^OW__fLKhVTVKYZWWecPT]PO_PQf]Pd^bO^ZoRNVQ_S]Za`U^[VY`W\zZ^`bNV[\YWZX[OWNVMTs[YacQSKZOO`TPOMYO^PLfVP`^\ZUcPaX[XRQZY\dVRQ\ZXNPbWT`VjX]a\dVT_WXWXYZ_SXTZ^]V]Q]OZf[jbPa]]S^X]\RU^_UTWZYV]R_Y^bUOdYY_`RZQU_Uf`UWZP]]N[SRlVVUSZ`T^MQYS\ZSWNcNaXQU_YNZMRN`Y`URU`Y\HaRT[XaNQW[XWTbX[MWTT[X[^Tn]TbPU]aWcXU\\WLYWY[S[]UT\R]W[ZiRW[UTY_^S_`fWN_^fe^eZT]gRU`QZdUYQUVW`\gbYW]ab_hN`^\ZWbW_]bYaWO^Y`^WZ^Wie^a^Wf_bZ[`aZ\pXSZ^Y_ad^Zl^_aYN_ildac\Wc_WYhaV\[d^Z\WeU_Vc^a\Xd[WYc]Y`R_YaVab^b\VM\YZU_R[XIOP`c^W\`^WZ[^]dSQQS_UWUUITU[X\IPXVeVjYPVS][dNlKZVVV^WTNTP\bReVbSMY^QZ^^iYP^SQP[ZGS_@ZSQI`VWRUZW]VOXMVQTPPaaWaF\UWURYWN[VVMNfVOUV`T_OGLSNY]`gWX]^WUZLS]WWdPZ`\`][NXZGNiOT[[a^QMjQZSZ[YWS_F^[_X\fV\TS]VN\]g^b\[Q`GT]cVao\jBXWaVg__Vec]\RVYUadSRhKTSOc]U^W_RWTce\h^RPXhTUOg^JRP[l[PZ\XOlQedcRLOoZQ[cMZOQQ^\WRVUQfWdRTUP\\HR[YQSabZWQVOJOCVSNMVZ]\mYI^TQV^maZXQMSQ]cQaZW]eg[ZUKbf]\ahaZ_RQPsMSZI\W^UXTVLO]\OFWbL`TgXHYVZWb]\D\`]`\Oo\NZgX^[`\V[Y`[ZePHkcWWSUVMUGTMYZWHY[SG\bcTZUVQZNY^N[PJb[JWL]MT[RRNeXJX`W`BGNOWVSOJV\R]P^LF\TZYRU[lUWScZ_ZdO^VQdNM[RN`O[^_Z\TL\PX]V]\mhSKcQIOPS_jV^^TiSSi[\`]eOXXVYYUS^ST`jLKOF^MR\b_YU^\P]^ZeNWUVYSPbWQSXX^]OXQ^_NU`STRU\XVWXVW\fXRb_V[UbeaZMTSZbYJXSY[RPRPcMaXZ^RUPV[QTO_TX_TUVVP`VeWakVWRO[]WRVPUVY]SaU]X`U^\^VO^ZZUSRg[XZWRY^VZbJV^_[Z[TIZS]cf\CWRQUZSVZNfUUU\^[TQNYLU]T[T^UH]QcSLK[]HVS[ORVfU]LQTWciQXmRZZ`cWO][`JNZ\XXN^eXYXVYW\O\G_S_\bJV\QUkRYTOSWJSYS[QX[UZV^`^I^iQ[]XcVPOYH]`^hOTU^YUY[XI\XaSeWPZIQRQOhFZTWWZQEXVb`W^_ZYPY[RWYUWAWdVUeTlP\aaZSZ[WWG]TWeE\[RUY_SJWWU]a[[\WZhXV\PQc\_YYRRaWW^YXf\_eYLO^i]\`RaP[aY}Zef\WN[^OVYw]Y^\WZTZ\[]c_^T\\LpPWT_\K`UXgaqfKVXUUSTYmY_RQYl[PVQSSMQRR_NYT`TKUdSc`LLZc^Xv^\X`UYTaXXfP_k]SRJZOXNV\cKabVXSPYgXPZLR[UYhNSYWIROXSVeXhXQHXPePQO[\^YMSPXVW\bTcKRNOQT]\\]OpI[WKXG\QINYKbTF@O]TcRWP[QXOYVO_[^TERFWUVXTXcEY\JUZVVXaUVX[NJPTRgRRWLS_XMO[]WZZh_R]UamNHaVQXcmRSdRXbcFSXQYTU^XWRZP[TR\TQNUDTPNZSbNOTRWa\\XW[YTZVMVNSYZMQXWQSQWQW[TW^QQV\TFR`R]\W^VYUM]\V_TWS[jXS`YTZSXY]X_N[WQeQZTZ[[RWSXSSI\TL\WJ]TKViOOZQkRXWPY]V\R[_[eYdW^TOU\Y\oVgZQ\RWL\YZaY]YWQUXJYQS]S`W^Y[[^YPfTe`[QSYYQ`e_ZO_ZZYaXOeUWZWQUaV]TgP`]QWR\[Q\h^^bR_dWRZZQXUd\VVXLWV^MV\d^YWN]VTPaXSISQZZSL`NZYTeLRS]O[RVNd[hZ]PKO[bT[UVPWWPXROhVRZTER[WQXNfZW_[XV_Y[ZSXTUYWaQYYTYRRRMNKkYY[^]]YWRLUbUUUZWXX]^\\_hZLWZVYQ[Wb]O]ZUT\NZ[`V^f]QjRXYVcXNV^[ZVJRX^S`gZ^TIR[V\K@P^][P^U_W\ZaOVRQ[]`URYSQT]S_\TZQPNaY`EY[MbSLacSU]{S]\jjUM[JY]deZY]S[_UUKYTXOQTV\XYU[UYgeR^]Y[TR\RWaVYP`dUU`YXUWWOUV[ZR^S[YTLTVWV]RUV_mF_YZSXY[PSaXgVg__Z^WTUQQRYZV\XUcYOSQ\UUYVc[[TUgeXU]XhUUVQVR`WZYMR_XUYYe`VfYLXWY^TQU`Z]UVYW`QWYU\YUZ[^ZYVVVPXUPS]S[TXWRXYNb[VcRUVW[WPaYXWPQUZP`j`ONeW_U^POTU[YST\ZLTQNO`UZUg[U[^PM]U^b[]R_b^]RUSU\`^^\^_WbY][NPYIZUWd]TYS\b]VVY\WaSU_`NO]cb^\\[\VQOWVP]Z[ZXZS^WJQP\c`bOYUedO^YSTSXYW]UVPAa\HRRQX_[[ZcTMM[YSZXUeVJWdU]uQKYYdSn_W[TSQM`RUV[Vka^Ta_VZ_e[WMSUTS\NVM`UP]d_PPX\rj[TWL`bZ_YXXW]Y`uTkV]_W`Ne[N[\]UaZbYY\SjRY_]iHNT_N`d[\jJUYUYWWCSYU\SO_^Z^PbXOtWP^V]_XSQQZQ\ZQIeWOVTT\^KPTMUXKWXUTeX\XZW_ZNJ`TTQ\WQVcL]S[a_cLKTScQ\[TYhVVbOVdPNQ_LYXHUSL\mSZgTZXQ\O\ji[WTZ]_R[SR\]dYSKYYKUUX_UZNU`YT_ZYaLR^Q`VO^YLL`S_^IT^YgP]NT_^TaWI^OTY`UT[WTYMWoaTZ]Z[Y]WWLHXVYQ^Z[X[XbgWYe[RYY[`bKVIZX^UTKSQZY[TbbP]^]X_X[\UYZRaWSZ^`_dbUMdaKXR^cV^\XQ\P]VXL[O]UZS[T]YYS_\Y[]UTcROYNYRSY\PWQV\]^GS^]L\_ZNS2Uc[WX]PT]YPSZZUdUZ[]ZITY\dYaPdhcPEVWXbVSWQXKP^S^UUaPYV`ZZfQ\GU`Md_STOVVdPQRTbZ^Q^Wc\S\JBKRSBUZ_LWOPeJQPT?dL]EZXMSLqBYlHO_POa\XCU]_GQcW[IjQ_VYX^X[V^cWcL`uYdFiOdMQIQKfKF_VU^SoR`bx]Qh[MiQ^Bf^gYIZSYTaObX]YU\k]^bJNOT[VVHTRVV_S`R]ZbU[JOZNLPLUXWYUUSaLOOUWZROgMYXAJ`ORUPRLK`_JT[`[TUJKHRXbPjSVFMU]VZFTR_MSFRdBP]^IUWj[_WWZ@Y]CLQGMUTKEHMKSOdZSB@t^LRXJFXSW^UGGYJUJW]SKF_iQ7WLK]QOFNMTgYZMVU]NWK]a\WeXPBPITcRTXFN\VLLLYCB]WR\M_FK[VT]R[S^YX\DXOFP]OLSHBTV?]\^_`VV\Xa]SR[ZYhXP\UaVQZWQfQSNUV[fi^bpQdff]TcVR\TVMlZ`a]LWUd^dkThV]Y\`^UUMYfVUfTXRZ]M]_cTZaTXdIZWSaOd\LPT]eOOVJUPZNg]QBWQSVNM`Q^Lv^YQXZSL[_T\_LKa\M\SadOh\T^X]Q_Tfdl[ZRS[_XcXdVWZMQW^\TSXHY^MHTaBfCQOXNQMJJ]PX`bYD_TVTGfIQJ^PUX[SITZZe4[SN\RSPaJgOkW]PVOTXPYW]AYY[HNdTVK_P[QY^K]gRNL`aEL[RROQZJUSURN@WPSGQ]U;hD_YYVgG]X\ZMYB_DIRTHSVY;\KRQHZ_ZLESWBEY`V_fVRCajcFTYI\_fVTREVgK^,WR\EekBJRY?_fb^H[YT[f[`fVS`SNU[Y\SVQSa]bUZZRXU\ZWOaMVNGWQVaYR[[]MZY_TS[W`UgUbQQ`T^XT`[[i\Ve^XSY[SLW^]g`VdUWVYZPSU`TZgZ^P]W\T\ZTS\_S[Z\m\`]S[VJdbOZXV[[YUiY_c`_[P\ZORNZm^WVWYYffZaX_RZU_jQcYIcgT\Uff]nXQ]S]j`OQRFZOHW^\ZYMYXSWXZZQDLbU_RiPZgahQ\^_g\RLPRPS]kXYQQWR^dXNe[U_aHaZ_[ZPYXTKd]`]IYYTVWXGX\YP]QiaX`gUQ^]S\VVhRKRYZ\d[UY^YZV]Wq\SUT^Qf\QTORQO_OZHfOQ\Z_TXQ`VcLZb^LRdLK[\bE_WXMW^bGcQWfQ]bcQ^NdTWZYWUUZeS^]VTS\cSVRRXMDPcQMSO_^S]eS[VYTQW]HVX`SYd`VL[RT^ZKQ[NW\]XSUPT\MPVT]^W_V]PVY[aU^^VWOUXX*VP\]P[ZXT_Y`Zo^V\[UPaZfaK`YcbS_cTfgX`cZ\WVZ:^_U!Wa[_XJf\VPlZT`_XLbVN`Y\E[Wb^f^mWeRUPa:b[VZV-SQWSgZUCUPSSY^R[QTSc`U]\dj\^]TVYU^_qcPV_SXV`V_\SaYhTQTYQ^hO[`W^V`hQ\OgQ\Y^`O^aMZ`bUhTZ^_]aXJ^W\SZX[P[]qacaKVViPT`_]XX_VC][fNKVTSiWUaTdXePOW^QTaWPbVWVcT\jIU^V]SQV\\Tb]UhbXdJVN_ZY`Sd\Z_IUeU^NZ_WUVWR\^_[[PQUKUFVNPWWPSQIYSWQWTIS[]TN[QOVR[I?TQPXP^MSTV[MPSVTNQTLOQ]TLUGNIJRKIZH[YNLUUSNPKTIYXV]W\TS^dUP`UWVY\[]T[TiMWZWIWV]l[hY\XMYOWC[aSTWmOYWVVaVKYW`TOVNOZYjUcSdVebSoOQ\gZgOW^n\XT``EaYF[gSR_]ePZUUKV^_a[WQa_Tf^Ro`Sb\Zmg]XXYWPWT[kUagtOg[\tUH_YWR`\]QYYhj[XT`YZThY\WSX[G[VSYGcaSj^SXPKQQ`iYOSUUfO^S\U[Se`chcX[fa[_VPWVXYXX]hrUV]Vd[[\VRRYaUR]WZY]UNMU[]UbQFkXPS[TV[cX][gXOWQFWXYZ^cQWXX\Z`^NQ]ZRYW_[MX^NiQWORTpSOOYWRPX_`VVTU]P[J\_V`SI__OYU\`\X]]J]oT[WVWR]SbT[KaRY]tVkRXdZOSXOVVZWcaSQe^]^_N_TN]UJsTjScaZd\SPUXQ^VfL\dXP_PFTa]\\tj[VdZ]T\UXZW[[T\TY^YXWWVXXMYO\R__TIaQPVUV\P]YUL\[TO]g[PNYY]VWVS]aT\SeUZKdfXWWZLXNMS\RcWKZZXWE[T[rKTS\W]c^SbNN_zZVZX\ZbG[pSZVRL]Tj\V_W]`^X]OTTR`dsX\T[TZbTU[_VQWRbYYSlNMT[TXR]YeaVKZLJNVnZ[`FKkUOpFXaXZMIZROYV[[GOIRXM`Ud_RXCTHSK_MURHT`[XW`SJT\EcC\^TXbSNT[YKLLZZ^pSXjWVHV[MVY]kTSSUMQTXkLiQZaUO]eLZcXTMTRWQM9gYRaOWkVXTSKNX\cN]N][[\SGQ[McK\TkOW_\Xm_ZaIBRLa^nY[Tk\V_VQP\O[P[aVSP]W\oSbZYU_gPZWI`Ur^ViZ_\\YYaiqt}ReUVQ^\^Xb`d_eeYccQaUnWZ`VIZWdXVN]RR`d`VbRgVZgWjM^P^ZXdRSYWZ[YXTUWO_U\[Xi\\WW][IMTRRcVQTXM\hOU[]Z[XT_fWcX\^\UUcbXV^mUXIeVdYU\[][V`PH_Sc`Q]^WfhgNVe\bW[E\dVZMP`UWRd\R]_YU\d^d``[]YA[_]eR^TUXRSXPM[Z][^_L\VUiSTPTUNNWk`]eXf^WWPlPVb^Rf`NRscZJZXHZoR_R]^RTRVZMVgSPIM_`UTSH[J\a_PgRx\YO``WUWU`USTVWXZZO\`]`bS\\WQYeTQ[]ZXTVdZWUSTTL[ZUWYIPST`_bR]^S]ZTTYVgRdYX]^i^Yd\LWVZaPWTYY]VWUX[QYZR[[RY_[XXVXPQXSXSWU]SVWR\YNa]ZiUVVU]\O\[SSSTSXL^l^NSc[_YZUQWR[^RW]VF_PPQ_SZYh[ZTbJMaR^e\]O\e_[SZSP_Zc^W^ZPW[ZZUIZJ\PYka[VT\eZXUZZWfXQ_`PQ[`b\b[^ZZSPVURYXY[ZbI[SMdSUDWWSbNgN[b[]ePeRcdSdflaP]X_[UP[\P[SRRMUXRZ[_XSXN^P`X[^OReRGXUY[RYQSOfWWP`c\O[\UZVXOT\TR_S`T]R^g\TZRO[UGSYM[cN^[V`JcaVwQSSUUXYYTULK_z_ZUSWYhGd{IXZML]RlaS_Z^YYV_PUQMc`t[ZZ^X^`NVNbO][QeYYUFPJXTVkZWd___\[]b]V\\aTbLW\N^sVRXX[[`Re]USRRdbUYb[PT[Yb_Q_\S\aaYbW`]b][d^]O`ZVbYN]bW__U]W][\VcU`cL]`VNUSYX\a]Y[Y^TgN[XPem[YWUh^dZ\SYV_\]W\[UfYdVWK]bWaUe[ZUY[eTT^mWaUX[fW_WZ]_^VXS\QS\^VTNXYYUXYY]Y]cWahLJWfYYfQOe_@`]Z[]P[WXI[US]\M`eWVTNWYW[_Y`KW`WTb[gUebLSTbS[[W`KXQN[N\f^`i]Y[bOEVMEF^]QV]lMYbXKbdLZOYa[XdV]VfWY\hSE\\MkSUYUV\N`MNOW]Xi[eWZXc\XYPZKQMMaMPXTKPeTZP]WW`:QR^iP\WUZ`j[SPY[XO~T`_jaIRg4c^cbjPVTh`cie\Wbakb\XTmhdaS`dad\h\_\ifYbg^fUT]^d[`cdRW[]Yg`k`_VaV]e`bi[bUe^^aWfZeXV[[Y\VR\lacbX1_^cdTb]aT]el`Y]p_VWbSXZ`h\^OeTa[_NV[f4eiWRfbX]X^Qdd`c]ViZQfgd[`_XTZa[]Yv[W^?XiXZ\^\c\P_fUJ[\RebZkY^SU[cXTRUPhYefm\XV[aT]`S^\QOZUa\^`_fYT][UTVbgXVRU_RXJ`haXLTaV_vYP_KQ_WWU[S[\W`jXcWOIgdNUPYgT[^hYZPYh\dXVSZXZaRWVWRda_ThW_YLVX\c^\P`PYU[WXRZcRbTgkdYQWVdTIdmRW^LXh`K[VU[XSkUaXRXNfT^e]cXZY\TUKQaCYZR[YU^cShWOT\\Z]E\LXHE^NXcGRKXUMPHKZWGTRLMVX]YVRS_[QLNSYQNTZWRdWSYZNVVZYOIPNTMSVHYLV\Hc\ZNQPVZQ^cCKYYUVLP\ZLW\TQP[UZTR_iOO_R\PTWO`UKSL_WGfo]PMSUSeiSOO]VVIM[USZ]^QZOWbWTa_jUNrRUrRkg]RZXNQVKaRN^bVZeY\XQGX[UYfRRUVRX[JcTSOnRc\`MT^XZaSZPPQN_UTca^VQ\FPYMNXPZRVUP^`[KbZWZQXOTVWM`P`XW_EkV_XQ\`nQ]dTXbZ\W\U\Y[XXVVWsNbgZfQh`W``XQRlb`RgVahIQbgXLVURhWSUVgN]MOUKXZU^V[_\K_UX^XdQOeSk[Y\WTWNPTQPX_WZYW[_XWQYKQZV[bf^URN^^^TY]XNVR`W`eQTZ^\`XV\Xa[TXUSV\]TV_Z\YQ\^YWM`RZXR[Q\VXVSbX\]ZlRUXTU]RTUXWU^YV\Z\]\VWbV^][]_Y`SSZdUX]VXYV_s\Nd\RX_`RSQVUPYU^\RXZVL\UYS\ZY\QWXS_a]Y_hYfY]YP\^^bU]TYUY[kMaNTYT_ZX]USNW[fYM\]\b[K`j[XN_V[QTSUV^RdXST_UWXRXZRYOV[\[YeZXeW^N]e\RWXWXVgVSTZfW^TYYY<[_RVXZOTV][[eWNRiVUU^K]QXYXWT[UHU`_UV_iXX[]Ve`R^[Sb\ZFRP\`ZQ^fUV\OaU`PZVd^XYSL\QW]WgTQZW`Za]lUXJ_RTF[VQFLWSU[`cde`T^_aVlTGg]ReRj^_a[\QeJ[NTY^TUSWZagQbVTRaV\QZ^RNUHRR[\X[TZTSNTcMP]YZhWVS_P[ZT`MRRZTPUYTPX\TKXS`ThW[SbL[S^YUq\YZY`^fMU[[\\SY\ldWWROUQ]X^VR\]QZTX[KXXXG_F]XV\Y`YhZZ^NOXaOXMRUMY[fcQTZ`WQkQ^ZS^N`\\baUVXWbcYdV\^hh\X]_bVQV[XM[Z[]^SZ_W[TPP\]\\YYZUYTWQRKOTV^YVXGWQWU^k[]P^XPVf^Y^YT]WTL\P\hbMZMN\ZKR_JiQPkRUeN^XVfQMThSeTVTQNS]u^Z\R[YcO[oRVYPLWRZUcVS[`_QSVVYOZ\kRTJYW^cWQ`eZ]VSnaVU`ON_k]Tg\LhVXTgJIUrXUIKeT[^ZNXPXc`LS[`PNGPgWOMQQSPYDeQjQX^ZVRLnoTRUSi]lRTS\^a_ES_VVlgKU_fIJQbUm`TRLXXfLJYRNnSTeiVRi^PUTVXX]AjDaL`QVdQRBMZ[[QbUPk]Rh\MhhUWW[T^HbycQL>Uf^gRVLadGT[b\Y]UjgTL[R`UWUQK_mkVWSNYX_\bYPSXT^_LY^YQ\U\ZX`Q^VVYbSPS]\TLRWZUS_WUR^bO]PXSN^\T^Q_QO[Z[`V[TH^UcXU`[Q]Q]TM[rYQ\g^XTVPRQZX]fNWLXT_URbaf]_S\UFff^[TXk_WXUSS`V[TXTSW>UZ^nV]QVVZYESe\bUmaO\ZSU[SL_XWOY[VZfVZ@JUZ\]Yec[WC_VZYPS[eY[]SWcgcJ_QJcWY0NRW\XbLZe[RUX[PSRhX]cK\WUSfXPlS\SVdNWTcSSdZO]^^QScLPUPnkQINT^_PbeNkaE`@QX^RNVMVWKMU_RSNNZXQCSn[S^ZMESh`cY[NO]R[ZVSROZiX^^kM\YX[JTY_KKvy]`LXYQ^ggXJ^RXSbYE]aYeSV]YIIR^QaZQbYZaQQV]LksR_YET\dUF}Y_UQWR\[e^`aISUWRqORY]^\ST[\ThQTdXWQORS][WYOYQ^N^HJofbbTLXZbUWXVSVZNXLVSiW[\dYTLRNWN_RSTJU_PWJYOeIZdRYa\_WXUWOLjXaeT`WSfP_^A^PdZS[^YPQ_ag\]BYUV[jmRK_^K]f`XTG\XVWbWJY_O[bWRUYQXTRYWPVZWSTnFQXZRWYWTLWR_ROOTPRTVOSVX_YX\LWNPX]Q_XU\[[\UHSPZL^ZXRSZQRYZVXPeXOTR\`STf^VZW`QXSUn]QPZVXUTTVT[MPZZL\QRW'UWOSRMF^NZWTfU[S?ZQaV;`]PWPSOQUPS;PLbeQ[OTTZTQXYaSSSQWILX`[X6VWV]U_`]_[bVrYV^aZVLMRUWJLXcUZ[QUP`YlNV[S`]X^\]\Xb\UU_XOK]XRV^XZ]X\^TLS_UQTOXLMUUS^SXTVbZ[ShgWUd]X[cacQ[ZVn[[`UYL_l[RQR[Y_[RUN^\f^M[WWOUPWc[ZZVSN_S`YViY\^aQh]USYPaYOdXS]TRW^YVO\cXU]PaROYYQa_\Y^^OYfeZVV_O\UbRVXW^V_KOVdXVPTT_ZOdOZ\U\]W[[TSYXJXSWYRgeL\IVeS[RY`\RaM^UW][XhLQUeFoP\OYYYROG^SXZOV\lkaU\[\Mk[\WS_cUPc\_OOU[T[WUTTZnJZg\\]SLSbUTaUU\\TVcV[[^aT[N`YPW[XQ]SXUOVZY^adIcJN`WTTk_Zg\Z\PVWd_QTYSX^^QJ[`ed[VEbQ`NjF_R\W\cZW_jWaWWcUV`]ZQWhQSXVQLb_b]\XURdQ[RW_O[^X^OUYZSkJ^VTUPUVRVXZcSUdL`WXRZjgHZL\bG`g`d^\GJVUbiOkUKL^I]RPKXkTl`]ZcV_aUSdMZIeaGPR]S`N]ZRY^PWP^Nd[j]^dQUUN[[PPZPSXUc_]J^ROSRSVRVceX_kZ^[YVphW^XRY@`agaYQdnYh^Vn\qT]XTN_T]SLZP^a`bQaQgVbYY^l]`XSXVg`\YUbbfVaY_^YidWcN[R[VfbKS\_RdWP=V\c_aiQXYXg^[d\T^t\RmL^ae`W^RKV^VYYUV]}iQ`S`r_\Ymd`[QbkS]VbfV[iYyfOVPXbY^Zh^bT[P^T7e]qUniaVlj^T[X__hOab]QOf_T`XWorXWYRj^\\fUiY\cmXa\RT`_V[]PY^WO^WVh`KbYphXZW][]Z]WagM]Uf]^UW`WYRbZ]ROUT^i\]eZ_N\f\XQUL]f^UgOVX\X_Umdhh^OUWPKZ]]OP`]Q_MkYeaXgTHdnV[^db\\[_{j^o[_iSX[Wbg^Y`dgPJTeXRP\TeN_jMXgXToV^n[lSRRbk`epM`hd[TcUMUSS[`Zk_\Rd]Te_Y\ZHaP]bGpRgwcPZIglO_VxbQYX^dbYMZPTQWWWVQTaVZYRuq@c\aWXUR[Mo[T_WWygF_fhS[TTRYqXRY@VOfMTjQWhQaZ[VWTLdVOUQiQ]eaSQay]]C_JVX_WaPdOQhbWRaUUbQUZQXRl[TUaf_Q]SQdMjZTJZT\eOR\SX\ZNeiZQU[_RXS_Yh[Ra[eV]T]U_aYVYYTXe`^ZTV`^VZcZfYgO`c^X]QZSl_XuedUZbbVUO\_Xb[cYo[\^eZc\c]Yb^c\VVc_XX^V`ac`]ugU^bUW_]bXVYWZUb\`\^Xd`\\[``caWY\\Y_PX[bXdQbbS]aY[iah`[bQe\]Z_^SV`W\_`hcbf`hW\[c[TmaheaqW\c^^XhXYZfeZKV[_NWX]diX]]bU_X\Yc\VYMX\fTPZORTfXT`aPVKOW[P\XSYYV]Qc\iZ[Rp^L`TZKXWKTPVR`KgZ^OX^O^[[]TGa=VdG_VPVehXQ`JU_MZ_U^gRS_`VL[bXpNQPW`I[e``SUUU]XgWcTeDXkT`b[QIVcPaRU\b[L[OdJPWYf[aUWZ[WYTRk`]Q\]ZRNU[UNN_[NUZOU^fJ\UZR_o[OL\S]Z^ITUWWLaLYXXpNPELYl_LP[NI`IRZVHS^WWE]\HOZ_SYPMJacZSJ]\e_ZUGDSaVSPWXK`[WYRN\bVTWSDU\SX]ZO9aeTjaYOfUY[eWZeKP_ZNpNVY[MWaMWOdOSJhVUQWMQL[]dIGJ[KVbJXHFYVVMMBZlHVLLHND\XOU]YJNOZZLMV\XdRXNZSfMnPVXZYWJ`WSQUV\VhW]aS\VUNeRgbV^Q`[Y]]hhZT[^`RQ`]TYKTUQWa`W\S\_]`X^T]]VPBbZZ^NXqSTeUP^_]TVU[eS^_dVTT`c\WZ^ZXQfQMWXfVTSQZS\KbZ[QVZab\Y`RY\[QZYvZXQTPOa_MQ\][_`LfYXhN\UjT_W\^eCcYW\X\a\\acZgbfa^Z]^\__nY\^lkW^`]d_`l_eca^[eeaY`Vb_XZf`fc\bXbca\cha\]U]bb\jYd]`]^eW]ga[c]eXMbae`\ij_a4\`fa`dcZ]][]de_dddeg[aaeb`bMjcalY^UTf^Tba^cfXY]_e_`]\a[[\U_gjeeb\\U`[gbba_]AUejj^Kbdi_WcYg_[^cMcU\WM\]]_V^QiUVW]WPdaXgTeU]YXV\S^PUi\gZLT\P[\nOW[ac_pPPg^RWT\aWbRXUUeO^Kg[WSU]b\UZT]fO_YV`\f\MSYPSk\][ZPZ`O\TjNXMZROeX]CTOUWPl`SNSS][RYRYZ_^_[\_\\YTS\\ZYRcSZSbNRZV^\\iTW^Y[YURTZdSQ`eSSkX\a]WXQUM][Z[VRaWaO\NbXYXR]YSYYXOSbbTQ^O\ULVSLaa]RZTL^U`Y`N^_WUXOcTXXYX[SV\[RWNXd[SQ]`]ZXbf_YUM]O`T`Ud\QXX_N^MQPQZRYMWZW`S]N_SYYVLZ\TZWUZWYUM[]^O`eXfWh]YSP]_^MRYU_STYTY\aNYWaQUHRWbW^\a]XRXZZZ[aX[_UWP\]]WYY[WVZTYH^OWZ`\\UVObY_UZ^QOWW^Z_ZZX^]dWUUWfa\Y`\WX]RXVV_WZO\bY[QXW^\Q_UY^YZZaVW\\PTX\QW^TY_Z[X\TSWYW[X]S_X]YW]WUZWVZeSZaYUZT[m\U`VPS\\R[VUP\XR[XIR^WJYY[W^[V]PWYSgZdYZmWZXVWk]\W\]]OYWZZTZ`]ZcPiV^^T[VT]P`_?\MPOjTIRPPN^d_UTY^YVdO^Pg]gMXTiOXNRR`_ZLJWWT`[VJUL]QX]QO^RakKiWSgOVXdW^MQ`W[VWYJL_YZP`U\ZTKY_WUYbUXQTcZ\\]Tf_cVe_Z[OVKhbXTSUTcUTYPXh\UUPP`YVXURcPZRXdY\UU^ZZ\_[\V^WWRh[LdaWJKQGSLOXNRLTQNVQWDCTULSQFKXPNdALPJZFGHTTTT\TKMGNSSHHLRQR\MLE^QPSDJMRQ[JYHJSHYPISMNF@_HKM9K[L\NHCIGHWYVKNEUUSLCDTHYSRSAXOTEUJKB\aRI\UHBUUFJRVMTD?XOLRGSKPGPUJASLGL@MGTIRUIMYFIIZTRIJEO>HPWHVXJPBJ^UFcaMWRVG_ZSWQOWYZU^cOxQPUIST^RdT\UaUNZQJgTNoNaXJYPU[LeSO]Y]Tb[QTZSPVTUSZX`ZTMbQJ^VNUGZ`UdMVPcSZX]_MHSaYNYUUXT]VV\UVSRTJOTS\RSRQaYTfPXW`[O\baSRRZb[KWOSg^YXWR`]ZMV\VZV]PYVfU]HKQZaH^XZV`XV^\bOY]{T[RUQTJQSbV]MNWUT`\]]PKZY^OXWQR\XbY\\QPS\ZQTTTXX^U`TcXRY]_ST[W`aX[[XRSa_XZSSYYOQ_Q^\WD`NOXVeK`fKVZ[U`WXYSb\YUPY[YLN\SGY[XV]`\Q[PSToTX]M\Qfd[VXQQJW]]ZWL[TVDdX_]ga[]ca^QXQX^VajdfQNMSX\pWMLbWMYPOV_TUghm[]K]\T^Vb`oY_Y_UdO]W[RnX^ba]XaYUwaM^\LX]Y[`_P`[Zk\UUVi[cP]`W^mVQTb]]VZiR]e]b]Z\^ZXeVZeUVTTY_RR_TeUTZ`ZadW^Ng]_^nTT[[_R_Wm\cU_cQ[ibqgQeVTfW[cO[RGRYP]m[ZEehUXZR\[WkbcL^ZZe^`YY_b^La\]]GcUmS\aSW\eYUMWV[P\\RIWXjVLT^XYTYWbPYURNQZ^VW^W_UNONX[X\SU]]]YV`ZZ\WLVT]XX_TTXOYRXWbQMaUT`]SYRQ^YX`U_L]SXW_OYYR]TRY`SNTR]ZeZZXa\kZOU[bM^cYXV[WZaPO\`Y\_dT[YcST]XSYXaNg`e\YVWa^S\Wb[\[Y_U`TT]cZaVTVCVQO`TSTUS_JMYTITVOQXVPIPQMVZSYWQZKWXLGMTXPHPWHJYYN`LMR^RNTQQWXXRVY9FSQLSWVVXZUO[XJK]QTUVLQMXVVO^PVTPSSPNKQIIJKHY^O_Q]UK]RPEEo_WKUSVVUHZQE\[UESTHL\MSGDVSNQ],LDPSLPQU]ONQQRUHX]Y[PSiWVX\^V]TMQMVm_\i\bj[YLY`arJZSne\Y\VY\YCVRT^]^dX^NR`R6RX_XqQ\IcfmhTLbc`]jx^WV[^\gWPfVKaZY[hSe{atWLXERYKRL^P^gFTeg][QYlOq_bcea\QVfJVWmyY\\uXRdZYkPNLZVh]gPRZTjLjVTefP_ZWPUX_fbWnYf[XNKWjehXUVR\PmR[gdMUWPPfiPYYYLZ`PN`[]`Z`bX]Zg]dPZMPQO[VQQPV^`]bRW[NYQ^_WTZeX`QQP^R\LVThZOX_OfaWUMX_ObXMYaXH]``aa]^XVI`_OPSW^^bO[QY`f`_LSNMWRZ[\YUISY`QORO]hQX`Z[`_^bURY`ZQQbWM^`[\K[a`VRYUVYRXX[cm[]\ZT`JhVTSS`[QUXoR_\FLMPTDWMRJNHTQKHQbSVDHkURUXI_VLKTbMSPRTQS[QMfPIYXFZ]OSUTTfJMYSRL_PHGU\LQPZPKJJYILIMD]WSS[WJXNOR_LIRD`O`GjTUEXNRWIJW`hO]TMQmPDIPTTZKYbEL\aLSdMLTQWCTSSAQQJ[WQEPRbUWZHPTWHMJ\PXSQUYNQ\RLRFXHToUSXTGOHK`ZVQNVPTXULYTRJ[WN>OYP_=ZZSIMPVTIWXQ`JJUL\_CaXaNVd]UaXUXXXVMWWRWYVNY[FWJQXTBUPKVU\Y[MTbSaWWW`SV]a^RULXSXZXL[SNLIIOL[UTTS[IXUXQPTNROe]VNXIHVSTIPJTNXTQVJ[]NU DQYZSIUOOYPQ[OSUZgRTL[NcDQNN[Z]WUQ[_OUW`QWWO[vQLZM[ZdI]]`<`N]idYTIRKGW`UeR=`MrVS]X_QX_X`KIY[QZQaXMN_gd_Q\D`\RV|UWqQnfd?^Ed]QSPLISPGZYVxq]G]jVVBKYmTQX`Wm^XLPcMaNk^he[]_Qo_HYHdZVTKMU^j\UU`EiXfg^UcLeVTg[TRUJh]hcRYVMJWcXTPML[SYK[FXOoX[T[PUYhYPdT]WYRRGQIWXITSLRWRaPgc[PTjWGHYjPkadVRUW`gZQRYnsORg\\bSQX^^K]^]UX\YAX]bZRRbZTaNkOlbUYdDQ_WdYUY_QPf]]XUV_[[URYX_^XQIcp[Tf]VVIXNc`iQRVRJcNYZ]ObI[YebNp\eY^S[M\`_S_VgVYLQQPRIbRFiOYZbKQZ[XYTP^aZh`ZUdD]`cXJdUWRX^Y\PjXfP^cWXcJ[UY^LhV[P]Z[[QRSacqXUPoaV\l__TaV\ZU[JWRQTZbXRT^]gW[]U_UV[[_VR^LTcdfU]g[gZPS\[ejh]QS^]V_MPcW^]lY]]VdYW[WgD]c^d^[_Gb]]^IX`Xea^YX`EYSh\OtiGp``Ohca^I\ZPYN\_`cf___aX][TjiYXiNIWjacZXUad_W`YmZZUTWe\Y\Jd\V^k[X^OSTbXKQcVW_^YV\[j[]\aQ_Wd]cbXlXcZa_]\WeRaZ\]Sd]^YeVW_YVS[`aY_[]Y[]^VaY^Z[N[gZTWc\WTUcc[Z[a`[`gS_QhYX`]eKc`akdUU`badX]NVY[c[aXY^a__mbU[b^Z^KY[\Pr[XiXgVWTft`aeG^@iXWf[BTWVacZiT^KeTWb^_[YJ]U`kQnSfubKYJ]fSbTvYQW\]hi`NRQMWZbVPSP\[bZUtfagY]VYUVWJOVSa[\zeG^baX\XQTXsWNVFUViSWhKTaS^\USTYhfVPVWgQ_\bQUb~[`AdJ\\dZbQsT[_aPTeY^fXW^NRWnBXQg^`UbVZhh_dXZd]hXeOTlbTJPhg_m^cYhSUecZKXGSW\\Y_\`r]X^QdQ^dfYZh]nYjNZ_hZV^PV^h\ZTPTc\m\]P\_UY`GPc\aLYbR\]gVX_fPSWRokf^UTXX\MmWXV`Pek_g[bPVdK[X[Sc[]Ya\M\[TMh;n`VcT\d[NVgdZL[\ZYNQPWce^XeUZSMc]YT`XNR[MMS_dR]bLTQS\VnP`Je]b\F`]T_hYfkVSWXTYORg\]j^kXVSX`eXSX[bHJ[X\ZQ]`bYQT\]oYeZQYP]TK^[W_dSdV]^aZd[[VU^gVd[_\ZOZiOUUS]`b\d[`WU\LFZeSYVlCPaf`Y[SX^XWdU\SZ]Kb`^fVZS]b\^YXSUT[SRQdJRfVPbU]]WVkZ]aNR\TQ\]YRTT8YWeZ^P^^UZVXj\j[ObZ[hZ?Z`TQbfP^S[^]_[UVUcT[d`V[YVSQOcTYUSUYTX]ePN]UT^Y\QRa``W_NXOVS`W[Q[VR]UPRMO]]UTQ[OUXR_P]Ub^V]a\Rb[PT[Sdj`bZUaLhS`OTT^`MHOLTPYUYOWZbedeRZhfQKP\WS^IckgYY\`NR]\`VG[kaRf\KSXWYWYJ`AXL]]MIXQJRKDJgNOEYfY\N\Oe=TVU_LjPGU[SSPKXNIVFPWWOX^QVMUNUMsZPQYIEODPGWVBPTQUT_T]APk`JLWNPWKTYTTU]UdJ[GQPRVgSKVZQXO;FMJWbIQTSSDUNXPXU\eP\PEOYcRWcDYNERUHKEV^eI]VIXZdUV^UH\QpRLBgSGT_QM?GPU`KJ[XfVJZQXh\`tIRV_K[cXUe_aQf`SZYSXMYWVYI]e`LVRUPRZW[^Wc\J_[bUOWgXXYW^U]SXX\ZSVZhPdYN_aXUPLT]T]\SI^QYTS`PXXY`LNUUVUUNPRNVO[YY]P[XP^LOZLX@^Q[b_NV[[QgS__\KdQRqOa]kOXYY_YO`T_OTaVb\W]^UTZSlKPLVSa`VV\V`VS[SYdY_OjI[\UH_f[XU[XfQN^UWeTPTJLaSG_]M[aYITSoXHOaT[YUnVZ`\cXcT^jd]aVPZhOXfW_[YQ`:TRZO^a]_K[RY`\QPzJWSVNf_Wb[wa]VJRdfQag\abZh`TSRTSZGXZN[]]VQNQg]UPbQWYagWE^U^BY^WLVLTcOeTQCZlW[^UOR\Q\WNRg_Q\VYSZbQ\PXTZZ\WXSQX^^^gUVGZfV[[X]TPXaSZhUVXSVa\^_XY[cZSa\NUQ\XfX\RJbV_T[NWib[YQY[Y]d^__WbLMVc\N`TRT\Vab]XY`MS^V\QdK]]aWYaYPNWS\[caX[afWkQVLY]TT]caJbYpZPZgb\SPhVaLZPWOOc[Pn\a\XaPWeOXXSYZU\XMYqW\ZccaUV[RJX_c]`iZQmL_[g``WTKRXS^]jVVSeUYTU_Z_bOcUdWQS`Id`^i[c_]e__B`T^VWddb\lWsYY_\[UY^b^XOZbXd_XSgfZa^[YQ\Y^kX^Zvdfei^jeM^\\^WS_QZOdbB]TWPXgZc\afP[RZd\Ni[~SQnX[cV[[^T`SYRdY`LcZWT^`W^_iPfLXd[OZSZd[\UVg[Y[lrd[]X[WVtVb\e\\]d\YUUZ]_IO[VcOgLU`R^[`^SRe`Z^VnJaUUT\dl]XW^URj`Q]WGWM]m[\ca^M_^Ph^XXRVOD]`]ZNObqXThPRmW_KPaN\]RcHMx_{X_TMaVbWS]ddHieZkX^h@XQP\Sf^]oaIRL]V[TSY^SRQ\_U\PdeiXT]MVWV]UIWXZUacLjqWPSLIV^VWeWQVPOST`R]QgR\ZbUSM_WYPgP]dIUZVcLXZVD^XXRl^WTcaXYR[XWDLNjMcSZZX\OWS_b[UrBjXYj]KSdP\eV\P`^d[_S`RXeMKYYUNRVSYaXlb]cdZldiUGJYb\`aSWa\Rn^Kph\\MIU_XXYYZIWd`SXV[ZY`ThXKO^`\ac^_Lc\c\k_]_SJVXci_ae^[mXUQZJ^[Q]PW\^T_f_i]_mZ\^e]`Q_Z`LLYXSS]dVXd^jKTjUc\ac]\qhXIXJbQ[fVTV]OTdUZZa\_RZcXcUUeVOWeWdi_Y`]__l\Sc`cjWh[tR_Y^QV^k\[XYZVeVbXXgcmaQ]U\VU_[P[Xh\[QZ\XKIVZSTTWfRWcOm[WMPRQX_X]MRXT^jVbUWRYVUWOW^cXLDQR^`LYU][ZWSQWYW\SFUc^X_\TXXSZYWULV[PZ\SUOZWvWXe\_OXR_^O^TSijP]Q`W\UXadQIURiXUZ]PZ]_ZZV_\Y[b]UcVbX[[TW\bQSNdXPY_T^g_XNQNWXVYYJVT`_Z\S^WQWLlVZN`T_RbI[YR^eRK[YaY^YP`gSLKXU[T]^[bTLc\M]jHA[eWSU[VQZSZSSPcQg]YS^\dYjRMSc__dRVU\Vd]YSZQSQWWXT[W`T`KKXZVL]fTIO`__RO[dWQYXmI`KT[KS`[U`[XQWTXXab[ZWecZgcXXS[ZGc[LPhoZYXm`TWVV[_TUZYTRQPdVNWnkXT_XaNUTpYQ[_[^b[qN^`sYbixW{vcSeWd^Z`]gPfa__h[clacbnhTVS\fZWTnmLVdpTZktacWKds_c[`plkxegZWeiawap[`SXeci^lW]k_\ismgSVYg[\ZeY^faXdvckjYViq\vYP`ki]Moik]bmlh_\RYg[[PY`Tqm;e[R[ZkYkYWUiXJOnsbOpVapdYaxQ][TT[_oRWVSP_[[TTQV\VWTXM^MV[_S[`X^XWd_LPUVWXZTgYPPNYUTQFOV]hebScNWWTV_WgMQU]ZORUNOSUTWX]YGOdWPUSMRdgUMXPRkYYVM[]^S[uTW`\WPLQXXS^@XXTQZPRTVJ^SkQCZBQR\aWc]RXKXYSK_^XVXLNKXU\VWWWWiXTxRTYcVRLRSQ^R[erPahb`KOF^^d_TO^WkRfTYTcSOr`ds^gU\HSYym[hW]J\WboVXi[WYgba`OMe\hV\oe_dZ[[N^]aMm_]^YoNauNeZRVXcQiNVU[gUdYURTSdT]mQPUgZO\N\NXXTdOTScbTQdLZWdTYTSf_V\c[bdr]q_e_dQPMg`mcioaVYkOLb\M_OFeiNo?jXViRHdq^IT]QbTSXK\^QUT^XkYKMM[eS\HVUTZP\UYYRNX^d\X_U_W`XQX\U\SR^ZV`QRdMcQ]aNQUcPJ^VHR_ZbZHdUZPV3]W_WcZZSSKTSYTXOYMZVTXJZQdJcYN[6]RLOQUFcO\[LRVQUtYMRV>c[RPVPQTTUV5EN]cMWRN[QORbTbPUWQ[[UUfTZpP_aO]S>ZTaTX_TZTW_W\YSMa^PY]Xha[`ZUV]T[O^XeY\\]ZXZ_aZWbTXX]Zakb~OUS`TW]gYOLW^YVVacWXV`ach[Q`_QVafxMUaW[SfX\^N[R[VQ[oRTQYVhVZTV`SZ`UObbUQNW[YWZpZdYY^P^]dXRZWWMSZeYgZ[1VXV~YdT\X][\`WDdY8}vZ]oiYcds][^Z_\cVUXd\OWKVRdRaSX`V_NdZTg[lTZUnSa_^_bOc`_\OYCV`SZLRbO`Gt]gUNdWX]PbW[PA]d^jRS\]`c]dRUFcP]GTgPZ|S\eSVSPXCciVAYZATWMd[QX]:V^ZS_]G[SIJQY=?UTX_QbTf[^hL^S_QRPVeQW\^Y_ZbU^e^OTSHi^OTcU[[YZh\YUSmWd`\TfOOR]VR[[WWVTSXRZVcJSXQVVWQT^T]ZHSX`^TR[TRT[_LVZN\VXUQWZSWMYTW^VTYNXUNPWN]\YRVRYR\VWYUT\U\cXYbZTLY[WwG_WVRUVbST_STOV`XZMVSHZd\Z]\GKNMQ_YVXX-TZY[AUVY`VS`QOXTMO]MQTVLVXUTZ[MXdUZSRk[QORaAZU[^ZU\c[RYUOWZNNIf][XU[HKS^QPNRYLLQ^IYXUTQJXVVUYGTZQPMWY^ZN]`MOb[X^V^NSFfh`P]SZU_UZaRKAXSgSQRN\QZUTN\OTIH[N]UaOSQQ^IM_^IOBMJXIQRMQaKUWFgM\TSYYMY[TWJOOKSRMZaKJMROVDTUNSSQ^JfSQP^PKLPJPTO]V_VWVUVfXmQ`XXGSU[RMeJXhTL^_b[mPRafK`c\MbMXNeRbkNPXQUl\^SMYZUS]OfI``QN\Y]UM\ITMGP^N[U_TROQoUjSK_PZTYONa[a\S`\XL`dLaXcSS`lYGVS\Si_PVMVK\PgPsVb_L\GjMVH[`I^^RTAM^[dkP_N^]Xd\RiUW[pcYOSVTMZFMMMX^VfYY_NZZWJTVc^`GOb[arVR[^\h]hZU_W;LYRXYYZZYe^V^Z`VQDb`UaXdVU^_]WPXYZaWcdQXZYT_UkZRVo^\bPZ]a]WsbjoUWX^Z\iZcWKrPNYLcRRXWYb]^_YR\UbcU]a]V]_VG\S\QTOSXaOZ`SQXiOY[Z]X_^USXUZ]cXU`RVPmXX~`bhaUeiS\aI^YfV\V[di_d\a\hNlP\iTXNdZ^^PZbEcVa`XNSRShM`h^VRQT_X^JN^OZY]OOV`ZSYHWVZ^D\S[b\ULqXLQ_dcPVd\NrMS^UaVZY]PPSTYPV]^If\LUNa[TU<[aVMRTJNeGV]pSVOSLJfWXIW_MWeUTP[aZZQfX]ScgiaNVIhVfDMOTNYd]hZaURUkX_]U\bXdoOM]OWY[dVLrNNNU^KNjPUrVySTUmc]_P[V^VGKbUROIN?LUVXM[RN\=KmYT|VO`VTTY]\NQPp{IKWO]\>>R^Xbf\IU_DUQLOHKRQJINJVEZUIYURQJKUINMGIJPIcEY\AYJXVTWKJPSIVZaEQZMNLJONCOQBCNTf[p^VV[qQe[ja`Z_MUld]\P[[jZ\]YUDgMaa>M^RXeKZV`^WgV_XdijXILp_dP[\P]VWbVMcZP]mQn\Q_bd]RXW]UNUTM^iiIVfQPU[``dZXaXXjsX][^_b^[a^dO[]NZ^T[c`Ya]f\jL^R_MbYaNW^YRcV]OZhf`[Uc\W^VhmaRZaRdaD_MfZc^_I\]Xg`c[c]`V]PVUT``KZMSYXZNIRWcTMeeYV__ZgYZ\`kV\NOZkkIccKdWaWV`dZ\_TYVXbSb\XWQ\WUXYVS^R`SNMdSeWYX]Nb]_ZYLTWU`]SQKMV]YDN\UVSbS\WW_N`KYiG^RR\MWaTTQONRY^cSZiSVXfEPVSWQ>KP?lXUQcGeXYURW\QZWQ]a`YSScMVNX^\fZbYYWVQg^`Pd^VSUd2bUWWMbeXkR^ZZSSP_^bUUVYj]SWbi_XbfYUXHQQSP_]WRRVSQ[fTVJKa_^cT[LS^bYa^[UhR^VS\XUXSYWe`RQTzV_PK_l\ZLb[ZlV9l^\cVeZU`Sdh`_Ya]VnQXGRQS`bO[fT[KEdNcXm`[bRVWQ`FR\TeFThRROU`=W\LWORfTSNH4WQZKaVTP\\R]ZS^YVWTG_DUVDPSVUMMQ][XYa^KRSXRZ_JJZKPaSHVS]UdSZPd]YZZSP_STdXFTb\_HWaNWWPUYY_WXTRJRP]SUTNO]RR]T^cRJUU\Q]S]W^QcSRRVMMZOyQVYSR[PQQXYYSMUTXLSX[RGQVV`T[RX][WZfTOWGWVWNcKWNM^SQ^KXV^RYYXTLaRkOa_VYR`RMcS[VT^PaIXc\UTPQTX\]N`eMYVShQ`RV\_SbVlWZUMN\aMdXPRqRfbSYR\RaYm[UYU[Z\adXbYO_VWXTbU\YoWXXjWOS[[vg]_]ZjYTc_d[l]\Vf`S\gV\]N\]fYJcNO\]Wf`[JVR`a[FYXXUZOZ[T_\WU\g[\iKUYW_[NWYNXXeYILTJC_YbWK\IXV_PQCMQYXRQn[BGQJdY[fNWRNESR`keIV_TEWJPZetWUx^KODdM^dSXbL^dN]_UfRLLO]ZUMQa`OVSoTITb_RLSWuUBPOQPWM\LKPPjSULJYWU]:VUbVZJYVaO^Lj`bYQOZKIVeLFNXSQHc\ZE\K]?RWPTXTtXRK|SWZceLUMSNKglQONSqHUSZhg_LdUeQX^hbSdSX`YRQ?HCOXIZmQZ[`TFJMDO]QOMPIIC[J^G\S\I^VrdN\`ISdab_SdM_V@T_]LKfQEM[VNLUR`k;Z`NQ`]FSJQQJTVrXQOH_R^^HXXTZOiiUf]e\WQUPZQUn[S[WpROIdfTDcUOTWWKMZTVFRbMZMWNMXSPCHQanIeZIZQigJ\YYR?OZPYVQY[aa]hPW[\VMXTX^XRVX^gNVPS\^WSaZZ[U`\ZOQaZfZePFaUtZXURIL`\VMLQRDYDeTZSVCZ`QZSPRTV[_e]]RdM^cZ]RPgCVRTdWKYR^JUTQWd]V[_TYUhTU\UMQX\cE_d[kUTj\ZbMWJMXTajZfc^=NS\UKYUYVU[\fX]`W^\oXWMmF`XaOa\]IO\W`Y]Y[YTT\ZPU]WN\TKNdYnCVY]]TnSY8\Y]`[]TaaNZaTNWZQMLYKZZTddRMUYWOiZ]UeKELNaLXLFXT[WQTXOVLf[MTOGO\VQWO]T[ZWLR[FXZR[Y@YYWaNGLJFStKJTX^^TKLVfSbST[JTGFTKU`EP_ORPPQYHc`KRCXVR\N]cNyIW`LTP_KT_ICWIFSR`ON[S[`UOT\Y[WJTg\WgTYY]lSD^UTVNNUaSSQW\bMN[UR[_]VYdRUUUT]ZYO`UPYSXWQP`N]XTQR[RVW`VYWUZPTKWMUYcWOSYVMRV\_bWSSXG^LPSK]eVh\Y^[WN[JQW]USX^[WS[SYcXXWP^RZVVVYh`Pg[Y]WU\LV[[U_aL[YLETVcOOR]O]OM[kW_YYNXZSL`LW[SOW\MZRTXXSIgLJYWUUYTU_[[c]VVW^RTc_RYjF]eZfVZY]\mZbK]O]ecZSWSW_P`ZUj`mbXZSPhXVRdOHaMT\WLWSYSaYTWP^faTNSQ`RcWN^J]aXURXMTWZR^TK^ZPXSZP\\U_XVUiZ]Mi?PTW[T\bPMdQPXVbU^UTY_YVNKZMTo_VqWSmaZd]SKbaXVXJaU\MW]X]]U\^MPRKm^nU^XaIKRngW[OeZdRPWvh]_XXOS^fi[MX_U]X[\aRfUYV]\]OM\UZ`TXgd\`V]VYTWVZg\bYjQTTNKQ`OdR^TXVXRNKbeX`X\bX[SQa`TRdTNaaQe_\gg\Xh]ha^YakLYT`VWVVW`kRbXTU`XrdmSY`YSSTSWYYmaTXfOUpP_Q]J[XWOZ]OT\N[`EN_Yd[`YZXW_RJTpeZU>YDa^d\U[X_[NRXLQSWdYfWldiOeWcRLJVUf[I_`RM_\cMaWSVCVeYTaS]PS]fVZVPQ\U\\`SVSKWec[KCkRZWeVO]ZPZ]>[JOR_faNEeQSS[TPO^Y][YeTIKdmZ]\\SSQfaRig]QnZW[ZWfUUUQZLXVXfdwQWVT\WRGNZ[X^f^cWINWOkYWK]W`UTeWTsUiOSTTVrThcRU[N\VHThZ[PiHLfZXgVbSYWUW~Zl]eM]dWQ_SMRWd\]SQUheiSkVQJKVshQZMc[WYRi]]IS^kqdqS[ZfPNbT@VYPS^JYINX^JWcPXX_TZ`P[_XOq`ZKZO`\VOVWRJZiXa\ORZZcYYSIY_Y\Vdb[bWaZ^VZ\Z]\GFBZ\^VN[SeUT[[[RaO[WT\ULYRhXT[\CTSZaNdXV`We^WYQU^ZMYc[VXPWR\WZcVZ[XQ^U[YD[KQNU^PZM\]Z`UX_WZUX`[KZaXXSdeZVOT]NB[Pd]_T[VXcPVaX`LRVbP^[]XORWSQU[VT[d\]]^aO[]\T^E\R\IA^T\QZ]f[OWXOROSZ\XTXRV\d^VMPQ]gR\`^L[TW]XaSV]U]Q^DG\bXQd\WWYYY[VbR\`_XZfdNSTLXW\TY]\WT^ZYVPQY\VdaX[MXK^Y]KUS^cZMXWVWYYbVXU^Y_UWY_[kYM\Oa_^XTXTO^_Q^W[[`V_XaWPdZaRU_R[T\Q`Ph[ZR`TN[TNXV[]RXSd^kXaFV`XSaQSaY9TUQ\ZYWPTW_XXO[RROV[Q\g]TSN^YTL]]P[d^QKNbM_WgSYLLNV[KRXSdL`PQUS_SQ]YfQVU]YgTUW\XX\\Z]hRRHSVNU`R_[U`S[W[LTUVWbXXUZ[\XaYXURXT[La[VPQUWVVXWZSVYT^VX\ZRQQ\[a\_UYM\\UTU[CRROY[IVTF]YT^SmSNKVWf`Z]eLURXZLX\XX\`[IdUlaQP__U]JHbR^UbYhOVPSc`R[XSPXSYLaZVXNXYYQ\`VcTeOVW`[^W]RKbUVDILKLTSNgTiXHLmdRYOKTQ^W_STLZXcSeLX^MM_[AZXXcUBIHTL^WeR^UR[RdXcN_aWYF\LXVccUGSbUX]AgVUXSRY_fOWPdKbUF^PgETMZLRQRJZQRWSUL_VGQPS[`ePZO`F8XLHWZXFc_\XUR[[Z[_V\[VYVRWZOb[QWX[]YLUSNda[\MVY^^JXRXTh`TYNUXT\X_VV^UXoa\PZVUcPTNKTb^YYVWTZ^VNTUXTdeZ]QOXhIY^PW\[XUVSPRSJ\^UKVT\aXbW`O^ZNRU_Q\J_TKg^RXL`PXdP_eZTURY8TYPUX`ieV^q^[X]WdeelZSb\WiaQh[WcVuUc_YXUS__X\V`^_\eTY[cXgb`aS^Ve[aXaT[]oX][QY]UVgj[p_`jR]]X[aUVPSm\^\[^_eXc^VX^^\\`\XeX`ZrSf^V[[Pvd]fleU^n]ZbaZfmbZjXSf\\b_eYYWTWSXQ[P^Pmaa_^WRIgY]\c^Sl\jb]UkVhej`f`pZYURXVTNXUaRP^\Z^[P`SURXUjYNSM\UPYSZ^[P`XZPYZWWRV[M[Z\TZ\WYXVXXST[ZY_ZSZaX[lV_XUY^Y_R\Tb[P>^`UR]]WWXWW^WN[YZNWb_Z]QWXPZSY_BVZXYY^V\aY]RTV]MU[VSXM^TU]X_]OO\PCUX][\UN_X\T]XL\SUYVQZVTUaUbTaMS`]__bIWPiOR`WK_SYSHRX]nPX[O\ZT[JWYRa[XYSUX\`[WTYXlV[[[YWU`WSYVpUGU__VY`c]]U\UJ[WO]VWb]G[XVUbca[]_V\SVOS_b\\^OYVXVYUc^XR\dZ^TOSaHUQ]Ut]^WX]\eb_Y_[T`V\`ZXvbaPQ\W^YTSTJ]M\WXhXLGSV[cf[nfQWbR^cQTThb[TC^^TOeTTaMZbc^KUWVd`PNMHVY_PQ[RYPeZaaM\eW]W[VWWYbW_XXS]V^[UdW][_\\c\XgUOh\]TKXYOOW[JQRWQ_PTf_YThX`OWQb]HM_]POWXgN`VRKUTU]TKSTLPWVY[fX`d^qQ^WeHTX\kOO[YS_NZaIbYFMXGJ[dYNN\sTRaZiVNQNeZGcR`ULU[gTTqQjW_[QXSP[WYRNVMSOT^YQbM\ZYQfYRXY^[^VQU`fLQ]]U_iTc[Z`Z][gXvaUY^ZTO[R[SW]\S_RV`XMU[UW`[ZUN``ONh_SV[LX]XCR\W]UWNUacXSJN^ZW\iSMMP^k^`UZb\KTRcmcYN^V_XOWOM\\N_]P\gXCVTNr\UaWSM]VTQS]XXbZTfjdSZUSUX^[PVSK[RLNOSYQMNJN\IQMKPJZYME>FKLSRJMVNUSlEQOVORFPDVUPSeINEKQXPVGQYICJPTTYMFSQFKGNHSYRPPHTUUFIaPNOQKR_MKNOMZW[VP`VQQXURPFXUPOM?KQNKV[MIVOKUM[SKJOQVKY?aJUFN^JQGRPfJ]PFWPRZSPfAROQRWRJEPQSHJDIWJOHSTWW[LZRfRV[G[^_XUV^X\T`U`Z_O[[YaaRVXZV\QO[^Z]Z_bVFT]RXUR\]Z]ZSV_Wa\ToZWWaNZe^OjVRWU^Y]ZWbXcfSU\L`NidaXVZTZUlVRXVWYQYQSQSW[XTPW_Nha^U[WNYZN_[YU`VrWURO^OVS[]_q\_GY[kjUQS[d[b\W`fSWVbhYSXhWZZXWWUHTX`agUUZa_NJW_[VdK[[OVOZ_Y]RX`NQgEfEY^SMeSaV^QLhSd^KW_^Qgb\TWROO]HQ[`[JNT_La]c[]T_W^X\SOeUe[SZ_Z^ZFWQZHYWM]]TRU]X[WRIN]RQ]MW[GTZc@VWZOSdbV^T`OO^_[`ShLVaYeZX]]S>XLQ`TZY]XRYeWLRR\ceYSW\gZV]RWWWZZY]Y[_MiW\egSOVj[IY\YXoGU\`]]_nRPkYPdVJO\NlhP`V[UdaZcL_^qV^^RXVeYg^iU\M`_e_Z]W`[^KqQYU`gMaRVMV^l[_d\V`XW\PN_]XjNWZQMSZWXVUSZ]\bfNm\ZQZ^WX\[TcXOOY[TRZ\UbOWUQiYceUTj[[KW_icY[^dWVaPZQWN[NS[^DdlhPY]TQG_LONE[T\`QP`<[QHCQPSKBCOGL\YZPPX`R[WJKX[[GXI\NVQOWNVb\UT]XG[UYS_RFX[M\RFSWULYUZ[KO\GVNfOhJVfRU_[\OETQYIXYZ\KFF[TXMY]_MXKUMYQRKFTIOk?QULJKU[PWkGQRaQTIMaHOUSUKFa[TY_RKVNMCOXfdUOj[OIUUKOTWBI]Ub[VcSaVVUbVZ_Z`YYZYgVcJy`Xi[_TW[^XWJWQ]Qc^T\UYgW^ZTQSNXWT_NZ[`cY]aXnSRYaYd`k]QmaXUT`X[\V`_W[WZa[\N_SZTk[\WTVUZV`T\`U_PZT\`ZeYWRZVXXW\ea\TOeWbc]fPMaV]WTVWYXSegQeP`R`RZ^]`gVaUX]\Zd\PYbkW[^JZ[WRW[`SbZ_TYIM[a[_]QWXQ[ZQNIQHObYab_E\]VRua]XMYK\U\]UWVWUQ]_\T\VdSZWla^\[P[KXPVSRESWfZ^V\`dU[T_`XPMRE^`X\gL^^Y\YU?^OaFXeQG]_WPSXVbGT_QfWXDRS\\PFcS\[VYUSYQhf\_RYGZNg^K\^eZ^IUYUUQ`Wg\RRbQdIQbXLY@UjcOSMHUW`^a\QW\TcWbO^XRUR\^YTT_Z\^`VW]]\gINQWTQdaQ\YTV\T]LSh^U]Q\XSYUZY]XXO]ZXZYUXR_Q`SHU>TSZe[[YYSYV[R\cTUWXZ\WXc^h]YYlRHfb]fZUqW^VTWTaXWLXVRYBZ[\hW_TVR]WRQj`e`g\EX][NZRH^X\O]^[bg[[nM`Y_X[SbVQVeVYWa`[\cMZYWU\R[IRVJT]`MWdZLR\VNS`gRPOY\bWTb^EWcVXSXQ[OQQZN\NQNZbOk[\HU]TVZS[LTH^Ta^Zf\JsWJZ\XbaX[^RS_UffYZOVXNeW^QTZKtRUHXV\ISeQk]ZTOTZKZXZTTWNWaRbb`RG[K\OR^LLXJPOQehZRQQZP^ZZFOXVVVR[GR^NIOKXZXaHUQRJ`SbL^LX\`XR\E]@OcCiZeXa1SS^^dPOB[UZPWK^SNT@RI^GV]ZUPTISNbVJYbN8ID]NJaO^OYTUcMQXR^\ZOabSUZ_d\U]SWaiabb^MTSJYX`VMTi]b\UbSU`]UHXXUVVXY^PdXY[Y]TS`R^[XXHWTVZYU\YV\XaI`]PWWYVTU/ZU[XWYFMYRSSOSQf^VVUTK]`XXZbMSWYa@TThh_cRTkWUY\TPRYRXfbUY^U\BWgZG]SeRMT`\[PV_VbQPWYYMMPWZU`WVKTRGdJbYYXjLb_SVSL]\WUW^`SdPZWWc\W[UZTUP^[SY\\bUXTMZ[Q^ajT\\XJ\Tb[fRZhjN[MSaacc_[QHWbRV`aRSTMkTGZUg`b][SdLU[\UVeTK`biS]]TeRW]^U^U]VYW`T\ZX[eVSRXZSUZZMYYTgZZgXJ_\]gYXV\gRY[]XViQ[XXTg^ZVONVQTX\^N]WUZSSTaTeWY`\KRYXVXZW\YPNSWOTOQUWPvbZUfMOUQU[ZlRQZ_WUPQRSOUXYZVWVRaROUTOXjJVSRRPkTVZQ\^[MZxQZ\V^LOTYRVcFSSVQ\WORYb`Ug\D^ERT\e[X[XYMWZXW[[X^iQKTXRPRZTaTlTQyUSOaYVPXPYVUVSXrW^N^[XQRZSNb[MU`]Lc_R[WR_XWcd`fQfUURRWMV[^B_PVNddSV[eTYS\W]g_XXeVcWe\Y`UP]\PWS\Ya^T^WXV^U[XN]_XVYU\T[WMR^_YMV[[RSXQQ]IWW[U\`J_WRXJDSTZJYMNXR_XSWW`ZZjP\cQ^JUQb`XWQ\_gX^SZjeSK`^WX\YWPU\VTRWTWQM][RVZUYVUQYYYP`cRVTYXSJR[SYWGZNWVQXUPbQRbOPUKWSVPQZWJWVXUS`TYWTVSLOQRZWVSPPVPVURZOXUVU8bXY`VLSZRJZO[UTL^YW]JLRZXV\RSSNV^^[Y^ILTML_eUROKQ]WFPV_gPV\UR[\CM]EYSTMLOYXXVWX`WZLQgWXTI`aWSV]QSJ]ZQaceYS`bcZVW_geAbJYj_gNi_adX_V]QXL\[pjYZta^Q`XaWYY_\Qb`cZSNNY\LaYYY[_[O^obfYaej[WgZRcZ_`QaUIXUs_Pdf[VK^Y^]YfYW^tbMURadX`JT^OQ_gLmcfIRYV]hPV[]LUOUhZ^[PVUQ`Pf]XgbUY_bRLXMXLg^Y@:X[QuQ[[bYVja]Y]RU]R\TRf[YTbW]ONW]^ZRMSKfYSTHZ^^NNQTTUg^[Z_KMXX_^\ehTJTLPLKPXVj^VcQYVUQQWIISLRTWSU[D\UZT]aTOTcV_NTLWNUP`_VTVRVTIYSdQPQXLdMUYVVXU]ePXiRSWa_]SXUWbMUYSC\_bX^aOPJbUCSVROTaIZU[JbZO]XVgYJK[YRLKMOJRQVWVKddPecaZ_^WRW^mVI^]W]aJjXf[ZVUjddjZ[bVQX[ZcNT^`WNYU\G\f]Jd\P^W_Q]f_Q[TgfYjKUT]ZiK`STZQ\^dapcV[bS^j_i^SZb_YXQSdZT`aX[\fU\n\DP\\V[\YZYn\b[Habmcj]QVY[Pa]^kYWOVla^^OYoRa[X]dVISNaUIYd]]Ld]^Yf`R\`cNBZP\[mJWYZ[Tac[dceIORT\[`STa`JZ`QjTTXQXWZ\aTUWXY^R[aX_WcJ[RUWSSQQ[`LcSVWUb[Lfc[O\SGP[]YZYY`aTWaRVb[dTWYUhN\M^T]YU`QUXVdVjc`Un[VY^fQ^NNfca_YUTaSWNP[`WSVOcRgZTYYfR^^dZVa[PUWOW]b[XWZaFbZR[dTZigLgfRYVVdV_PKSfb_Q`SEcPL`\kU_R]eNY\UWdRQUTSiYPe^WUY^RZXn[JJ`ZZPMj^T[Wc`]P^ibY_XUOhR[^QeaXYamTRVHkiW\RNWXbUVLoGYYPRb`P`RnZSXBVjaPcdVdZ^d\ZXXZ]T[LYJ^Y`^WUOWSbTDNXQVT\fKXEXR\S]RVVNO[aHxZi>\^\P]N\XXd[XdcV\bc^dhg^ZY`_V_bn[Y]giWa]fa[ek^aac_X^hf[cV`_X]dehaZ^Zbhb[ga^X[Yfd`ZjZe\b[a^U`ecXeZcUM^]_^Yfg_bN_cge]h^WY]Y_cmedbaf`ZVbdda^Gof_qVa[Qe`9bcbaf^Y_[i__a\cX[`Scelbbd_]Q`]fee_ZaAWhlj\Ofbh^_g^_`\_X[QZgTSaYSUTVak[W[XU[Yf[IWW[ZY^HUUY\hbZXRbiRRY`\`[ZZT_V[ZSjccIUidfZSb]aXWZV_W\RZ\VQ^`f[]W`k]\WN^OWWb[S[U^YaUZ^YU[QPY^d]l_M_[Rra`aQRYsfZKOZQO^ZT[OkTZYUebXe\SLY[Y]PVZW^^V\fad[KqdWa\dVYVTRZOVUWYJO\WWYGeUWHKFXHiYK]ReRcXZ[NMPkWZVnYpS`QKdXbXcZDOTVYJN_rdYPZlZRRS`dXS8`_fP[V_][Y`hE^W`P_=[jVVhMahNeWWVLaUSEX`SNdDMZUY]U]mPSPXTLTNZlFZ]YXNSeYcOlPT[\hWJ]NaJT]KWcLYT`\OIea^TOJ:TK]QN`PQOLPMZRa^l_KcKZWfTTZAJNLTVOaXNbVTeiei_bH^_ZFgZVsaNNRC_RcSa]XW_VbdTW[OV[TR\SQPaYIN`N^OBU`^`_QUePQUS`URV^Jc]VY\Pa]T\[]`TQWX`Y]^ZbLMUcZfcOR_OZ_cRXLS^]S]UemVOd[MafZSVQ`L[QaZV[ScY`UXTXR[Ze^HoMP_Z`STNXQ[[YQja[`[`]V^X[bQQJWVOX]fbWfYc_YSa__\aFPV`d[_UYQ`\W]e]XP\]KNKM\OUMSQSXjWOT\[]TPQRaXPX[OYVVWOWVT]\WS\TMN]MWM\U\Q]ONOK_WKTa_PW\VUVFMOSRYU\[WZUW_NVU`hJPJWIVRXQePQUPR]SD\SPQKTO_WYLIFOPZ^MYdM`FdJTTRT[[ZTWH\LMPZYXI^XQ[]VPGJVWRTOX\[jXWV>e_WbLOX[PbQUV^UVWfRidP\Ob\QcRVOVd`Yap^PjKcX[Rk^LfTWYkdV_J_`ObWDKS`X^V]RXSjTT[HT\UROUXNZa[a^Z_\\bNM`^XY[_NePZEX[cU^Va[SWVfWP[R\bN?SXVZVTWT`cnC_N]MRbVF]WRVR^dgISNeJT\hfeY]ZRSNgjWUY`Y[aYcUcX\ITVNWPS^YSYM[]Hde`_QY]@hRdP[`_VIYYWdHYVWaPX`_SZjaaTd\ZeSTW^`Xn_USZVUVXhZX]gNZYXgZ\`[XbcVUZLWkZHi[_Ve_KXVhYSRV\UXXT[TQZPZY\V\QOQWZOMVeT]MhNVQMYF]R`]SXNUKR`WSJUPUTgZHKS`^WWWJPY>T\WRKKgfKehS`CGM\GNKHSNVURO\HCHSYWVRIDRKOGSGRQQfKQP?bMUSHRPFSJIWT\hiRJA9LIB^QVIRRY`UTgeWZVRUl`T_OVUmb_Xa\NigZg\UpaqUb\XNZP_URZSad`cQdXlP[YX_ice^USZjabZQY`gWe[]_[ce^XP]RXV+bIQ\]T^\NZYcc]_X[]Xe_WY\M\w]QnR\UfgUePNZ^\YUQWW>bU`T`oY_V_d`]SdlLYVZ_UYiVm`VQK\aV]Y_[[X]QUTfZ]o\la?\mmcWYP\c^TW\JYUeWZU[YU^Qg]UL_XU[PRa`^ZZ_a\T^[OQRPZ[^S]Z\KTML^PY\T[ZXVbZ_bUNOaZ\YXhhSP[TSRSPW]Q]X_MT[^\ObdOOJYYWbXZZWWYWYYdaZLSO]Y^JZ]`\UbZ\\WP\T^S\VY[ZSY`^\]VZ[V`P`\IZYTZdWGTSeFSVcWWORTWVTMV]]Z^fU\`XXY__VVPRXWNPTO_GWb\[T][`[Y]`WZ\]RbRdYNV^QPbXRXYWScJ]OJ_U\UURSW]MZQQhcZKXjRZ`SdQUcfbVZM[cVWVRVYVVQY[QaVbUeXQTVVFNdVJ[RZ^X^U]S[\U]WWbUVXCKV]_\]XY_UZZYdK]]YMXV^W^UbRVSRgYXXL^WWVSQ[TTH[RvVNYRUORZad]]TZVPYcYZPZWZg\ZX\^[W^]agVXTMU]\X_ZNSPXSdR\cP_Q^YMVU\]ZZdQNT[PUQT\WdkUYbSYYYXVXYTUM`\caOZjUWWXck_[RTN\YaWW[UOVXWO][OPW[RY]NS\SRR`pS\GRSZPPTQ^VdYO^NYW]Y]YXGUVXZUHWN\a[XXQVZ\ZTWYhU`YZfXSZOmVNML[W]^][Uad^XagSF^SVJMX\XkZ\YOUU[^\bTrIYjZQ]UONRIOKTWcXESS_]ZTW_aTYdMOXnUZQVVUZ`d`W`U[k[FZWZFiNSrHSb_cWPURQ_JTaT_WUVU]\SO`X_YXXVU_[ZVQXbHTPWdN`WWh^M^OSVRc_`]]bRUYZSXWQOgPWfeK]O]WLYcNT\[Y\h^gVXYY^`HUbVWUaGSZZUSV\XZYZXVUTUWPXZdRK[YSVSSldV]^Xka]GRZ[O[^VUdVTVN\SUW^^Sa_U^RQXc^OTYVYWX`Q\UcYXOS`aUNZbZY\ZbXTZ]XZSXX^VSfaadYRZ[\`YY]WQ\qXZV^OWYdR^b[Y\OWQbU_\d_XK\ZZ_Y\aYR[_X`YWSSZJXXYYYbOLU_[WbZaJQ^b\SPWZMW^XQWcNdV^_ORWW`SVQTUQZZZaXWa[LTQZY[[^W_J^\GOTRU_]TEkRfhcP\aceg]ZTXQWFd\R\]HNX`RW^TSf`V[aYaY\[RRgT_aX^Wd^SOYPm[dOWUa^ZC^UULPIUVR_P^YaSW\XRf\VJVZcVVdQUTVNUOUca\XlL`_\UUYYRXU\UQbVUVRXRRRW9a^T[ZS_hMHSTSbd[S[XWNJTE\bSONbTYSWR`YcfZcWZReaV`WSUPXTbZUU\cPZZ_``P]TP\ZZbaYgSaWXSO]Y`TTSYRV]^SN]^STXdX[UV\SWRTXWLYcZQY[TXOVZ_UNaXUW\JJKc[bXRRcWaMWZFZHPJTRb^baQTJY[_TT]UNSPj\MFQ_bUd\SaV^URZQSNV^TXPTXX`ZTZWR_jXS^WjaSTRZ`]UZ\Y\oXYWR\WERYSMSSUVTZURY_VMNI\WYQ\JbH\SPTUiT_a][P[aNTYX`h]TY\UegVNU^Q_NX]T_TsPUf]]_bZ[XTUTY]Z^dYXURWPLVYQE\QUUSZKU_``O[[bZUWTcNYSdOnGVbViSWMVcMN\ZOYdWQOQcSRY^XYSDUPXYaQRM\YNb\^^OVKP_aY`XY[hX\[PQ\T^\b\MNYYj`R^S\]SUXTUbWRUWYik\SGdR_RYRS]TWKTW[We[T\jX]RbSUYaWQPYQXWPPUaUBWSWSYVMZJMfd]WOVZMlLQcPNQRZI`W\SUKI]UO\P\[N^OSXJbZK\PXQV`TbRULU]\N^OXYSQhHbYY]V^[UQTP`TWXT[_OZUPVRVZabWYe]TKVQDYOYOUWVZS`RHN[^T]aE\OW]ZZ^U\bXNTPg]VUY`I[[]aW\TU^QT^YVTYcSTXJ[\RU[VNjY]`Y^TTY[^OXTZM\[UUYbRa\YZU^XLPaS][ZVbRIY^TX[ORQ[FkXTNRV`SXX]WiZ_YNYPYV[`[`baUjQ`KDVZebTYZaZPPeLPT_[[Z]T[\^ZZW_P`aU[XRGaXSR_N`UR[TWW\aYPQShfWW[NW_P]g[YTM_SP_XISVYVXQ[e^M]TW^Y_S]]Sh`XL]YYJeXW[[XV]`_SXX_dX\U]RV``_RVXD_XWYaRWXUS[WiRPVJYRaZeW_U\OeX`TWW_`Tb^T\R`fL_]H]Q[^UBRW`W_SM\Y\XaU\[TXPgO]T[]PZOkWM\TZ\UNVZ^\WOUJXZEQZ][UfKTZcL_^gUJ\X`RLkVOaPX\XN`X`O\X`Y\]UQcZTNaOUM[ZT]Y]]O_V]d[SccMY\LMRR\L^XXXeU[WZ_ZZWWc^XPY\[Y[V[\ULOPNWTUN_FNgRU[Sd`YV_RURWTTUb_WR_\W\Q^fkbQaYMPVR\OX_gS]SXV\RePWYPYUQY[mS]XQPYT`T^m\PiT]R\PQYf_dVe]]`PVcTYVUYQT^WYZedVTUXYXZWVWaN_M[UZaUZYWeU`WV_Jaj]JYXV^VLZRC_SSPYfY`_LUbcZZST[GidH\X=RMMY]Y\W]b]NZZeYV^[WbYIe_H_SVV^P\aXWQa[]T`iPYeWcdaUTW\^`YTiWXb]V_[^\aYXUXPVSF]TW[XRLWc_]hUdWWkZRWMRaZ`abMZOUN``WbTgT]U]\_[MSZ[[bUc^hUZTUYY`_PWQN\`eYe]Y\akrHU_W[Y[`YWUUZYKW\^aUS[\RQe\\W]SdXZWgV]TYhN^h\UXYZ]Q\PXSMWeXqLZZXMW[]S]\N\dRY_TUT\QaUO^bXW\TfYaNLY\[^PfVVR[Y[PZZV^OU[TaUNPZh^]\\XPmLXR\VML^ZPNKYdeWT\Q\a_dUOLSQTX^_YVgDXY]\`PcTTOQYU_^K_\OY^VUZaQfaa[J^[a[T^PccX]R[ZXh_VRbYXVTUW\HSVOZVKWT]]UaYWPMQ[`Z_X`Yi]U[ZUTY^S[R[_TYa_YV_PSnWRT]TTTWUTX]_KN]`i[R]NQ^L_T`UW_bQONPVTYSL\\XUPRVSV]d\VT_[VKWXTZgXNcZRN_UR]`\RZ[]WTiYW[S\Ta][X[Z[WW\TX^XVSfX^Z^kYaUUYa[YWVY]O[\Y\[[^ZU]I^\QZhTaSR^`XH^U_YTZWNWXUXW\]TX^OZT]SHb[bVYOIVaYab\VZZ[YVW[SiOX]VW`SYUhTPXZ]MQXVXYXPNOY[XYV]PZUVgXUYGUa`T``RTlTXTSZXVaTMT[MfaTd^XXZ][TcUPRL\Q]TY\RXdLFOUUV\SRV][TZ_YS[ISVPWMXR^US]QQ\X\aWR[c_SYMaSfeccZNWWVTZfPXR`X]]_XjUN[Rb^MYWb_W[cb`PV^]Y[JZVVQ^aPYSYXY_Q`ZQYbX`\jMS\W`a]YQR[STNR[d`a\]TTSYTUXU]V^]UUYX\[Ll[UZ^Ob`\V[^VP\][\OQOMYOP]^TdWW\cOT`X[[YYUWWOQ`RWWMW_P\a]Z]_Y\JO[P[[YX`\RSZKUR`WH_U^`V\]]^_OmZ[pXZW^][ZW^UZOUROTSYUdZeJdfYVPYD\SdZZJX_\aNWJPOJWPOQaVaU\Z]O\\a[X^V^VX_YfQb\RTd\MP]ea]]^Vi``dWTZJMeGOXZ^V[][V\SP^TX^hZTYdVZPYXbR]KTYZXb^STbYAW_TT[ZM\R[aRWW_^MXY^[_VU^PVWUgPVgWgh^V[aXS]aYW`U_[]XSgZSU^do_^XOUbS`W@QXJab[fU[GRVRQRV\]VNJ\TQcYRUPaS[PVN[PgSVV]YSZW[RVFYfiLQOZZ\YUgZ]V^ZU\YLQZ][a]TbRV_MU\RYV^[ZVSOXe`UVWg^X[[VWXWag`VV\PWSYONT_Nk[SVUOVPLVTZXPPV^TeaYPVZZX\TWP_M[NKFUJgW_UW_bfHP\RQWSWWUR_ZZNMQQZT_ZbJ[TZ]RWWTKZV^^[]RZVUQS_\QUUX^bO[LVYZTPRKY`V]SRR\]PU_d>\ePfb`c\^[UYRU\UUY[ST^gXRZPO[^V\`dWR\XUPJY\XSNb[PU[Xd]ZYZLXY^ZYYZUW^bT^]YSZYVZcX]XW_Ub`YRXUT\L\UXZ\NV^ST^SOVTNWD_TUZT^\VaMVYc]LTZU\XSc[LYWX]YRLYOWO]^XWSR[XSX\]Z]_KaS``_WWYT]j]YO_^\h^TaWVM]WdXUFSPV_ecV`SOX]iZUOb[[USVW^]WOYUYhVXScRWQ^Q[MZXaaOZQdR^R[Q\[N]tXP\\_gVWWW\_SR[W`ZaJV[YTXVPPWKHMeYY_bcX`SWYS_dZQWQSXTLa^afVXS\`OWbXUSUSSZ^WaYaXcXQbb]\[[OX_]\ZYPZXcWTiZ]]]^\RTTa^TWL`L^bO]QZTf\Y[T`R`aSTe]j\OZM\aZXYXSiVcVWX]nUVgSXb^VYYUVZ^\cXPcW_VUZR]a[^TbM\[\VbSUiVXXPYXXZO`cQ^KGP^aGW`fcUOVYI`\QR[]YS]YS\^]SWIaYM[_gQY`QiRSW^[e_`SV\QLPU[r_L__X_URZZUYNPT[RWS_Q`NU[UiXVZ_ef]YaQUeZUc^]aWVcWNYSb_PTSUc\cSeQUUW^SNWTQVaUYR]YU]XU[k^ZXaO_JUSOPZZ]aXWZ]M[X\S[`XZV[[^ZaU^_a\[SUa`Y_dTPVW_TX[Z][\WR]RVUQWSg`PPHSY[VY\ZQY\W]\\QWXO]_QZWa^S]Qbm\UQOW]\P[mXTSWSYYTPNgYRXWOaMYdHLYXMZaMPO`WfcWWYT[[XU[RXX^_BZVWnTT\P_[]W`mZ\T\XV^[YW]cR\TVWQhYZgdSUfa\[gc\RQP\]RTUVXRQY\aaT\_W[YWh[\SNH\bXMQVYUQZSV[aVPPPUUVRaaUT[WaTU_VcQ\ZSMUd__P`_WT\TPTTd\`XV^RN[W_Yb_OVWbV[`YTV]VbSVPPTST[KWGNX[VV_X^PXUZWVUUNS^TWRd\WT\RW\ZX\IWU\STW]^TcZ\[b[]]lQW\VUc_Y\VX\^VjWXV\Zk\YN`YSQZYU\aO[[R^ZUeYPebg^XLYUUTX]X\\K\YQa^YRW^Y\Q^fqSYac\\JVWUY_]SYY\NSXWRfbNXQLW_SZkh_lfTWXZ[U[aTgbXXXb\X[^\MlUSYQNMVV[XYaeM]jWVZRS[VS^YU[KlUb_OTQT__RVYP\QJ^TXWYe`P\V\bTbX[IVQ`P^\V`V_WZ_SZVSQY_UJRdSRYPNZ_ZkPP\V``QbNWLbVUXLXccTZVV\^^fW[^[MiRTSATRjaWb_`bMVN^[^RUnKXYb\iUY_TQdWSWMMYsXZNU[ZUTWSJU`\ZW`]qc]`Y`Zd`c_XWVX\MdS][HV_WRdZW^S\fRZU\^d_VgXLSbO[TV]keVSE]]SPVXTV[[\GZSPTWUUXVZQ^Ze\[aS[PcMX_Yg_SalU`WRhUO`V\XUKZP]Y\NPbXd[U`[NUJ_^VRYWTT`]UVTVWZZTQ^UeSTg\[cbZZQXWbT_TXIHaSWPPX_JVQaUXOdZnWQ^e_c[SU^^SRXcY^ZUQTNXVWW^Y\_cMOVUdUZXYM[OTW`MT^`[US\QXUb[YWZVX[Uih]YY^_[TgWRUNK]LYR^OWPKdmO\dU[H`V^YgZ]_ZOiP]dRTb\Nb\]_[N[U`WV`SP^[RfSZYR^W_LZd`Uae^eXObWPQV]`V\_USZZTQ]Y\Q]YP]UWUXVWjfYXZ]S[]bPSST[NWPeYXSVXVZ_Z`dPVsYc]OVeRUe[dg\RSf^RbPYdVUPjX\XZOZe]QaZeWaRSYWTcS[SX\XXWRXOXW_ULPO\WYSpQYZ^ZMZ[TZX\X\ZX]NZbWfUVRWWcVcQOZ\XS^O]eYbJVV`ZSSXLJ[^`eWW[RPfZYZPTYYmQ^]kTRY^YcRZWYbgX]XYSRcRW\`YWSkUaaZ\LaS]Xd^ZRU[YV_N\^YlU\]PmYTJ_KZIX^HW[j[U[VKP^ZS_RZJVY`TU_PRUUWTQg\[NPYXJ\bhRUbZVWOJYk^TUaaZYD`YZY]R]Wf[\Z]YY[KWTUMXUW^T]XnZ\K]Q^T_^UKZPbV`VYT_TW^P\`RYGUU]KWV]VP\\VeaZXOeZXVSQQNR[XPTS[`MTXL`TaXLIFeY^bXXXWfYWUZKW^[WQ\aVWaY]ZXL[PUYTW\Tg^K^J]^VjVXZP_VpcXVe[R_[YXVgWYc\]cSXtZUa\YIdVY[Ta^YS]\^gaUY]U`LeQY\QVWKfSZW[Y\Z[Tg\cUThP][VlNRZbR]XTYUPZU]VEY[^`aRQ\TYSbYS]^PaV__QWaV\kaTL]VTVEeWTb^TRZHX_ZRR_Rbch[^SXTMKcgRYZPYMZadNW\]QCRUVQgp\QTPQ[[ahfdWQ[UTP]RaaXOV^SXXYPTZ\RXMb]ZIf]]^MT[VOXcOQc]YT]`Y[`W\O]`XTVZZ]O`Z\VY_WWUQeWVd_TaZ[NabSUWQ\_X\U[W]`cgZimLVUX]`VLXVTdRUNLVf\^Y\W[QL]RN[dNSMPf^^O\XVK\[TPQZMdZX]USQWPPUZXJTNX]Q]_XNWL]V_bQ[WfY_W^N\QTWXrYKWOQURWZTSiM_RPZbYMgOY]Y[Xb\`V]Z`Z\NWV[ULQQ[P`WYQT`]SX_`Z^W\TI`abO]SUPVXP`iQiU_Rc_MWTYN\TLW_ScT^MSWSX\[PNdkW[RhTZ\\TSYWZXYXNZS\Zh[TWHWNSTTZlSW\I_X\YbSVTXbNVHW]Xb]ORX_fMT\[`TWQ\TaY]ZY\NYT]M][]\[TKXR[PcRWaYV`S[TQ_cN\kR]YSH\XT`ZZYMS^aX]LcURY^ML]NRKRYTVdlVRYSTbZ_U[\WYY`JWZ\OWORRXSVR]UZYOaaLY\[W[]Za[cUcZVSPSXS^T_\[Zc^^bUXQNeb\QXY]J[PYRSP]Z\TYjU^]]b[WTeU[_XV_^VOMQOlXSaVeWTNTWV`YV`^ZJ[XR^ZNP^^XdS_XBYV_NQQ]TYSZPW[L\OTQeN\XbVUQYO[RcTcMPNLWSTSc[WUdXZXReVbXPUYiXUWYOVOVT[K\Td_Y`ZYd\Z_T^iL[XcV_YU\Y`^heTV]SNeQWV_WTVl]Tc]_SPLTUUXZQUSO_\iYXWV_SePZ[MVhHYW\^]Y^Sb^TZ^]Zg[UU]VYSdYSO[TX]RQbc`ebAVe][\Q`PR^P^YSS^cbeUSbVTXVW[\iXbOMd^[LNDQQaR[VT\W^WO\vMa`[`R^h`ZVY\aWXTP_^c]RCRZ__^[QHSXYZSVW[[Z^ib]ZWWWVTG\X]]\X^[]SYp`QRWSJPVMQ`KVVPWTHVQLRfd\]u^beYS\XKYSUPTRM\fRJ]\OjLR]`LZVk`]T[\]S]eUYVSWeQUT^VSZSSY`NV[TeYbUNSf^]b\aTS[TWYS[a^__X`TPYSX_Z]ZZ[WaZWPW]d]Xa\mZY[UcU]RPGWfWSS]_VK]O^afR][a]R_XaP\VP]^XUY]_^^Zi[V[]_V\aS\SQZIR^a\XcSP\Z^fZZiSVaJ_W]]_`[V^Z[c]YOR]\O]XQXaZZ\hUS`c^USW]TUOOKS^TUTZc\\KTWY]U]Z^aZSY[faYY]SVO`ZP[]YQ`_SW^6P][XYYk]\QZ`OgRW]\\aZVXSUaWVUnYRWURe[OXNUaYaR`Va^X_V[QZTVX\[UQYVU]Tc[fN^YN[`R\X]XWXa]TSVPd]W_bWcVb[Zc`g\VaebQUYZf\`YWZZ]T\WT`VZYWiXU``[UYNQa_SWbRWUP`YXbZVYXmeXVUaXTZWa\gTV]ZaPXWOYZPWsUXfVb_SY_PQVOSUSPUUMbibRUUV^\\UZWTY]ZVahXYRT`^eR_YZNQ_Y`eb`TRPWh]Q`Z`VRV^_QVSYO[XY^pWcPZXSb^Z[RW[ROLYQ]W`hIW\YUZ[STPIO[`Y[PJSRO^W\SRh`bMRRUZD^NR\coZ[OWKZUTSRTT`Yb[^XRYQNg\]Y[^a\XY\VaZSYc\TaRWSXVXTc]]VQfTWR`SLXQ\Q\ch[WT__MPUWYRSU]^ZUVPd[N]b[[[TWTYXb[TdKQJOWZQ[TRObQX][fZQZ[VdV]f]YTTYRYXUZTWR]UZTSQR`L\ZOWYQO^X[n[Yf_ZKR\]gXOXXSZiUZY\\TNUaZTQO[YWE\dZ`gRbQYV^ZfXdNTkRTZ^VY`VXKZVTZYVZZ^_YQaK^P^R]k]SNLO_^ZXV]bZ\YCTQXcUe^a^PU_[_]bg^\eOTbcZXSWV^cPI]EX]WdYaVYWV^TS[[ZpXYcUV_X[YbUVVXUPU^\Z\T]_^VRXbZPYZ^dQ^g`\i_X]XRY\Y\XUPVW_`^aUcWPSS^PeUPdTM]SPYY^UVPcV\ZZOV_VWV\`_ZR^VV_uWIY[UaH[NYUOUUUaP]I_YYZPbOVUTL_Z_U\`[ULbQ\WZeSVa_RV\jO]USVVSJXCYQ\TXWbVWXV[_WYUZWVX[WV\HR\SfhQXGVTgXTWPUedV^^VV[GZ`\WT^_W[PO]bX\J[WTcd^YTYZU[SQX][M^QT_Q\TKXZaTZXXRSYTKVNe`MPU]YY[N\RR\RROMdU]W^Q^YVpV\WWSVS`Y\NRX\^N_`][JZWVV]XY\afP_[M`fW`S[X[^ZKSb\\eZ[ZddZg]WX_Vbb\OYZUPT[L\\[aZVRT[WSa_b_Y[]R]cXRY_SQVQZXb[ScRWYbW^eKQV]`YW]T?\O`Kb_XcYW\aMSYZ^]bTR`_XUaXR]PS_YPiY_bVY`XfdVT\_QebcW^RLYb^O\Ya`Vb^^eYV]\QV_SZQdV`UY[eXgUVY]TUSWL\]^`VXYVZPVUjaW[SZUPLQZT]RYPYTXWTfZX]W[QXOSU^[Q\[[ZYj^UZVS\[RZ]ZK\[ebYI[KV^[\nZZOQZUQUbXY]ULWT]\\WV_UWHM_Y`aWMaFTHZQ\TSULOf]IcY^\FTQN^_]X^_^P\JSM`dR`aUVQU__PXdYTVZQQUR[a^XSQJb[Y^KMSa]Oj[YYaTaXUTPYc][_VWYHZSZFIROaYWUc`XTfeSfU\UY\WRSKSY``\MXT^`V^RMN[Q_URKe_dV\X_YOXTa_T[OT_`NOa`MTQW^NZP_ORXYZZWN\`XeWXZ_WX]W^M[WWTZP][bVeS]VZWWZ]T^SZUS\MTiRRgYYcZ[aZYVIZYYTPQW_aRV]W_hXSQU\VP^O`XTY[V`\`eVMLYUdTR_\deRGWU^WcYWPaTRTSQWVUUcWdRb`RVgdZV][FKfePF\dWZYXYVUTV\\[TR[SWPTVZU[UbW]\RVVWcN\bYV^`SPW`^`NS\XVXNTSX]TVKYNNfaOQY\QWLQWXP]RRWKUYNd]W_UV^S\]VY\d[bQUVW[VRe[PX^TTNQRVXV^[RaKR^VH]RXY[WeYTSXc\O^[WPUYXbYl]RWNLTSMtaZ[Q_kZ[bZ_ZbWPX\WPX[d]KNQSWd]ZPeU[RT`Y\aTGZSZXNNR\VVNWY\WcRSSaYP[^NaSgSf]OV][_dTf[UQRV\[\LVh\T`X[_UgVUZQXQPYWZmgc_^\Wc_UZ____USXVJQTYYXSO^Pe[[U[bY]ZW\YQ`^R^V\RiSZe\\T[VWQTV^VvVOQ[ZPVM]WPRYXHOYY]^\QYPXY\]d`R_OQXZPYLNX\W^Q[XNZQWYhO]aZ]S[^[[YZOWU][U]WUZVXOY^\NZYZ]PVcTjVZ`N^Z\[W[UcXRY[[Pa`ZQPQRkY_fW\nbTX`fk[gXRUq[e[^OPaUdX[T__e^\]fYTgbWKYMVXT`QPZRS^O^RX\\`a]W^^^X[Y_JSRY[Uab\ZV_[\OT_[\^TWXZ]bSeb^VXRQQ]V^GMT_]`TSYUQT]^bZRWTWUT]F\^XJRW`WZR[Tf]^c]WT_elZ`QYOZd_PMYVT\aYXRUbm[TWXeTZOfZOY]ZVZQgZ]PW[Y]ZV[XQWRXUbRUZ]hWS[ZbZVXXW\Y\cY[UWSS\PnTV\`hTcW^Q[_WYX_MXMYSU]g`\OQX[VX`_UY_`[V[RHTUYYRT_R\WVQ[aYd]ZmhS\^SiW\^QXZ_\YW\NRJSa\dR[YQSI]\S`T`X___cTZTOZ_QXZXUR[]Sb`]W_YP`a]PH`UcP_QZP[XOSNXZ[]`^PQUcZMHUWSXKRUTSWUO]VWNZWVYQaQd_ZfUeRNYTPZ^ZTYW_UbXWTSYV[UTX`V]U[ROcZNTW]X^]W_UR`SVZXaVTb\NW`Y]`SXFM_\K[VNUWQWY\XXXZYRF_i[OX[QV^XKZG\TRSPQSZ]_b[RcbVY[eX][^Nd\TTRS`W_YU[hWUdPWPWQZ\VOOV\O[[`QUR`jM]Z[_aPN^W]\\^UU^a\XgSWYd]_ZaNd\^UYZeTW]TT_Neh^XYSbS\U\\WbUUnRT\YWU]VX]MSZTIU^ZT\XoQY]]WWYYWXXQa[YV]cbUauT]L_XLVa^Y^WPNS\Nd[PUYXQ^dZXY]RUUh^U][Tb]W[ZT\\OO^VOVRXVUXadTiVM\`ITX\T\[Y[fHXT]\Q[TGY]^[^aPYKSMa]ZQSW^`a`^MTlf^UZYXNQPVX_YL_Ttj^bVWS[QVdSRXPPUeaLQYR_T^\XXJNWeYYRSf[d_VU[Q\WgYIYOUZ[O`ZY\SV[[fFYaWXYZVY]b\lfURPJRR]ZU_V\SaR^Y[SOKT`RKS^ZK]]U[[YeL`O^XQSWdXSS]VUVX^QQY\da[ZOSSV__PQaX[ST]Z\_ZZUQZY\W`S[^XY]S]VXb`WSPX`K\JbYX^JWaSWbXkV_]aTZXN[PW`WWOW_WUVdU]U^ZSQ[UQN[]S\^V^_WUSUWV^[YXWAY`][VbX_WWG]QVdQVdSYVVXS[FTZXRWHNdQNT`YN`XbVXWaZ]WVNbUXT\Y_\ZWRU`]V[YT\bV[_V]X_cRhPLTcSSWVOKbNIXXTZAS\\SX]YK[]U[XK_L\Y[WXNNVKQ[MWVXTTPYTgSUOTQbVgZONVRYZdNW^\QVRRTVUPMU]XV[_cdR]ZR\_K[^S`[Q[`W_`ZZXW^MZSP^eW[Y[`JQO\]GeYOSVMabKMaSUZ^VT[oZ][MU]UnU]aY`RWX[`SR_V[WUXP`Y`Sd]XTNSUZT`QTf`bVUPVZWOGR_KUVX]XiWaM\UP]VkQL]_nY\`^YY^RW]U[\TRTSWRVdVTYXZVQ^VHSO]UPULXZcXQZ`bW\SVY][hWUPOYPe^]Wa[]Y^Q][L[\UUUQ\]P^Md\UeYVpZPJZSTSWQ^^dLWX`SPN^[RS_dS[WPSWM\YY[[IRZbZXUTWbZX\`oVQ]ZPNSTY^Td^S\d_\][UXeUT\NUQ[VaZ\fZ\Vf]^QUUZX[KWW\JTPcm]LeYQOfVRMeY\SPXaVbalI^Y`X]W\VhSWNWWZTK^dV]g`XQQ[XhmVVbT_`P_XVi^_YeNSWZ[gU`^QVGR]SXS]^c\^fYW^_OSUJajVn[WUTSUVWcJ`_RT]bf^a]RVVad`K\\OT^`]WZepkYQUObi]]TVY\ngNReTHXTYr\YWQZVd`Pe^b\g\^RZPY[J]SER[_\VVX[V_UVXP_SWI\fWVQZX_[^YX`Vg^NZsQ`]SLiROSXRY][UhT_`\[\W[Zfc\^K\Y\iUQ]K`VP[VSg`bdDfPj\[T\S[Q_f\MXYM[[[]WSOWZ^\U`TOP]bdY_Uqdi[`FR`U\YSZ_PXMOQLRX[\_VdYNVV[WaZSTSYLTY^fWgYX\R`Z`MWQNRYV]QaXbSY[ROWSYWWQHSXWU`[cRVQV^_WL`TW[RZZ`WX_^dSQY]`TMOTSNWM]ZVOJ\QSd^TOgYMRRQ^]ZX\[WbfSdHGPW[^QLYS[]NT\^]MeQTULTTZV[IYXM^\bUTRUXYUSa_jQPSZ^PSKYQ^T^JjdXS]KX[gY]bRZOZXYM\VbUbW\X`WM\ObTRZPZ\ZTRYSZXU[\PgXZ[UWQa]SWbu\SJS]gUTa_\V]QOb`RZ^QiQRcWPVTYTPfZXVVqUcXZ^QcdP[mWiZRWSOdXvYcXT\Z_ZW\PR]O\[Zc`d[VO^UWa_VU_QhbXRUbgYO[[RU`Y^UYVa\R]ZRZG\RYRUXKX_LVZSXZX`[_[\YNZS`c^SRbaR]Ta]ZaZYa\^`hV[OMN]OX[bdTR_Z[ZW\WZcZTUQ^bRU]gU[Q]i[VeYZSMYPe`aSZT^SW]NPKa[[W\\`S`ZVNUU[`ebQVSVWb\]ZVUTUb[]TUPSVUQ\WSTbNKUSV__Xb^aV__bVQNURXXYT]TaURVO\\cg\T]bQLa]^Xb[^TYOPTYb_aRQZj\Z\NgPJ\\WSaWO\TaKP`MZ[QPT]ULSXMPPSPTaS^XU\Y`_UCjKNNQP[[U_YbYRKfWXXZYSeX`^a]PUYQ``\^_aI`P[_U][XZKTaZS_`RX_dX\[\QVTkUYTSSVZWSV]IYZM[LSZ^WaH[WT\oPnT^X^ZVdTXOcYi`]ZbaWY_W\c]JhWcXWSYPTU[ZWeNNTHeWRaRa]YMY[\\WVTQV_\STQUQZgWXdVPTR_X^XU^]VU]SOWU^OPaf_VYT[aTaUTecX_TTS_M\T]SUQ]S]UiXWUYZOL_QZNVXSU]eUZMVTYS]QYc_`F\Y^XWOZ[jSXZZ^QYITZ\UPR__YZVYT_X\X__YSS^_\L`OXPX`__]TdPPLfUdIWUT^UJ[P\YKMT]YPX\dlWYVd^bRaZXSXX_WbSW]`VBTvXZWQWY[^W\hW\ZTXYRWY[nf[[]S[`]Qe`T_OUQYKL_QcY\VWS\RSLagRY\LH]RXLTYT^X_TLZ^\YORX]RVWUXZM\PU`[aTTg_RUTXSQOXMcNRg][Z]cbQR^WZZVOZ_QTOYg[`dh\aWWRUrUSZ\VYQa[TRa\T[C\QWXWUXXOXTQ]YNXZ^XQ]`PV[[^YXfSbTSPY\PRVa[\MNW`TRXVWL[ZSXUWa\Y]Z[b^NZQZ^bMXXU]OA[dbOU^QTYSVWTTWQV[Y^LdZO_]JQZV^XOUX[]WQPTeiWZKZ]gYaLNXKZYR`OS\\VRSV]T[UW\TTXRTO[]SfjbNPWWbP_W^[UUVhUbU[X[V[VXac\aPbNYb_W[OT\MZZWUHPZ^]^\ScVLWY[XVXYXK`XO]L\YZWWg^WV]W]nNRXURTYg_[MOXTf[PcOZQfUKUZYZEWVWFMUSX\Y]Z]XYQ_W\ORNZSYYTVY^Z^WOVR]VS^b]UX\I\WF\[]VPiU[\Y[XZKZWSZHUZSXR[_XX\MM]UOZ\U[XXa^^T^`]UY_[Q\[]TQX_i]VWSYISWYZacSaVX\TOXXbYj_RP]MU[^QYTXaRW^YV^[`HPSQVSbT\Yic]UeZVUZSWMLb\_aN]Y_UQ]SLXX^XVSOLV^]TZZQbY`VZRub`\`][KS[aYWTTYZVdSU`ZQ_XaWW__W^^cb_RZX^g[[VPX]VYY]OXce]I_jO_gUbdUYSQXRXadZKXV`h`XbQVSZ`TXWRaa^S]P]XZaG\W\[TgZeb\eY^PSTYRL]NLUP[IRVWSP^SZi[X]IZ]X^Nc]`EOPYQPbQIZLfP`ZYLZc]MPFSTW[`[]WfROYhX[ZX\ZcPIRZQNYbJ^RUZWbZM^X[RWQ^hVVucOSUNbUYYQOOOSWTkUQePaQaT_WYSYVOXp]d^`KbYX_PTYNk\]MN]MNJT_TVEMWTe]W][IKcF[R\Pe][WgeTV^SXWWabJUWZK^R``LYR]Vc]S[`VUTN[Q^Z]ZY[^]ZVO[FTQaa]bSPO[XQS_[`VSU[QQXcWYRY^S]OZVfXR^LV]FSa\U`\TJW`NYP^VTDTZo^\YEZ^\PYLR]UOUNVROYQS[L^WZRXVPOIS\ZHWYb`WZTg[[UFZRgYP\E][_YUR\RSJZVY`_VQcKd]SUYW[c[eU^jcU^fSQ[bcW^_^S^^YQXVY\WXbYOPYWLWa`U\bVcgR[WWbR^UU][Z\[V]U^j\VW\U\]Q_XXX_W`Y``TZdYZLdTcSUQXW`VSM`]\WW_Yd\[X^`qfc_XVQWcaMWVaeZ[UPTWbZ]ZUUTdZJQ[MQ_^`^YSMVM[_SYSUV[PgR[RVYXd\R^XMW_RXc[VJ_K[Y]VPQQWPO^lYPUVO^c[_Vi`VWbYMWN[aD]VTP_]`URTeSLXV`^RTSbIVfW_]VXLNQSRPc`dS[JPaX]YVKZU`WV>^bTWc]^T][^]SVWZ^S^ScTJWMNYTZ\OMlVQN\FOR\YQSeKOSU`Q\SLRU[\]h\YZd[`U]VaVYOaaRV[\YX[_WVRdZTS[YWccPW`VRaPOWbW\TPX[VWMTSWdRQVaRiPT^YYQ\[XTT]ZQUYc[ZQT]V]O]]_TbPcTUTXYi]YYUQW\TXZNU\NbP\WXgY_V[E]OUUV][^KZcbaM]T\KUWZRWMVMYQ^XTaVVUaUSO\]K]Q[RZabQdRQXUZ]OVZTYRVb__]WXZWTVG`Va`edX]`UWZRe\XZ_aaTlFUYTY\_UeK[]cU_YYNYW]ZJV]dV]`XfYVfRMI]Y`Yd`YYgUURjX[U[bU\[KZZOXc\KTT]LTQWWWbZg^\Zc^SY^TV[SoI]_bZUSYPX]`l_W]V[J^_X\[NYQhYYXYfOkTPfPT[cSaTafZO[W]aTr]^QP_]^YSXVZTTcb[U]\\TUfTWUeW_^]QaaWVZH\WZbeWZX]c]XYS`YSSWVXW[aYWSYeeUNXVZ\MVdZSUQQUQfbW][ULXWXZUWX[^^TM]YY\VL\[[`U]SXPegLYYbOcb_YVYWZ]RSUZ[T^^RZWUVNYZVRViq]YPcOUQJ[XXaaTY]TTWWbS]TPS_KUbXYY_UXYXVVUYTXKVPWW_cPY[[PX\NV^Y\m^S_UV[ZnURbYYTPSXZ]PV_I^[\XXXRQK\PWZRVC]KUTWbRT]T]W]ZOW\XWRZZcUT`cOKV[WdTbURbZ`MbXVdXUSY\W[Z^eTQT`a]X`V^]Y\VHSS\\bZZYfUcZZZd[YcU_d`bZ[k\X^V[YXS]`VXV\OPZ]`Wa`]ZSfVP[hUbWKR\QVZTTHZXWah][`^VXY]Sa\TSV]OXhNSRWpTZO]X`RSWLVkbW\_VYYZRRiRYiVZmW[UXWl`KQSOPWRUXXXITLSbZ[_QN]^\UZUDNUZQobYaN_W]O[JaSUP]KWS_`[ZRc^[LZ[\H[_[_RaQVOObeNZf`[fN\R`]WYRYQVYWdJ^dZkh^UST[_YhNTddW[;QN`daI^UcSNab\SVPTTAhRNWSpTY\XXE\c]S\NRV^WYPQ]U_OX\T\Y_MKYWWTIQZHX[WPU[YgYNRQ\YKUWb[cU^]^]RSXUPO``[SLaVgb`NXUYRPOS]RXVPUbXgOR^dRTWMWTOZT]\T\LSTZXUTYY_YWb\U]VV[[\][QR^Qb_PRQQXLXSRMQRVYaTUX\\PUfaWXcXUYZ]XZYXSSJWXXU]^HW[dSUNU^aZSQSSGSdZQYbRWcP\OJQVSb_PKcSdV]\PXRhZeRaNXd]MXVVZQRVTUbUXXSYQYV]]S[P`XPS]gYSM_a`Wd_[ZPSaWPKeXaR``URUbZVUYR[RYZ[W^[`TRLTiVQZXiU_XX]ZYZRejX[VaIZXZPJSYUJUUXXiVnj[PX[XYQO^Q\``sXXYRSaR[URTTS^NUW\\WVTV[ZjWOUOPXgVTMSVcXdXWZbJWh[\^YQu[US]S``YY^XHXX[Za[[SaOTcVoW^U[Y`TZZ[^W]TiYW^Q_c`V\TF_fYY_`ZUQ]]ZfM_YWVTQ]PXL`]ZeXTQP_Z^POcbX]PO`YRZW]cZ`^TUcW]SZW[VaXZX[SQVbVYfV[R_cQdTUXbOT\XT]Z\VZeZ[VZfZTXPNQ^OT_^PYZQN[SYSJX\^kaf_UZ_aS]W[WVj[VZQULcRVXiXRUTafN\_ZiW_VZYTNVTJ\X_LUPPGTTiTZXb[UX`gh^^ZUYXUXRXZZW[Qd_S[Z]OmYOfhJnXUYaT[[kdgYZUZ]S\OfTVTYDbefYQYYOR`XX]ITY\ZYSMc_VLVNVXZ^KWOYQVPTZ][Z_hYXQQL^R`iV[Q\TVRY[\XTU`aUUeUNRWlTT[S[SP_Ok`[QaQ\XcclSVdYSWVJQWVVe`R^WFFPaWWY]cTZ]dQLZTVaT`MVa_O^SN\\[]^\Q]VKUWT]U\WNVPQKP_W^O[\]RWgZ\QeWUeZYPa_ZRX^nO\VZZmZQUM`[^PJMHGR`aPZ`Z]^WRVbSHXWRWSU__PVQSbT]]\]_TZW[Rb]YTbQSr`NsQ[ZO^aSdLWPXeVYVK`SYTXXW^RXWYUY^JaVNUVVWO]^fMaQUOsRH]c`RV]UK`S?WZX_S]TMnGQONYdeR\_\JZROJG`ZZ\bKcTU`dVEgR\JRZXPNkOXY`fhXS\Q^dcRbT[^IZQQYYjSSW^[\^RW_]ZSTcZ]SY[]QaaUZTWjRWVHbTOWZU^cQO[ZQVVVU_N_XeUdQV_QRZPZQYXW]d[P[Qb`fXMeRaU^L\VS\[cs[XScg[]YTYSbU_X^\cbKXX]\fPfZb_QL]SQTZ`UY[WZRIZSc\^TUHa^[aSRR`ZXRW]IaPcTL\RY\ZWUZcZN]S]Pbg^XOKShK[XO\^VWWX[RU`_\_VXMdtNTS}i^SX]VPbLSTKYRjVa[UZ]WN_[YX^aWUMMY`\j_YVc`ZTRLXSYWOTNRUO`US\[\JcUOSTcWi\X_eVMYZ^DQkP\UWXKL[R[UV^OXTZ^\cYRVX\`ZQS`c\b\[H[[U`VRWNb[N[X]SafYMY^f_QZZcRZX_`^`Gd\XdXVWJOedaXPZVUUVQWWSKSJSMT[VSY`]WXdZPUVNchX]`WKaTZ_S__\Vi^T\SPWaTNa]MLSWRQYY`W_TY]eX]bZMBTQUPcZeQZQ_^VYQSOiNVh_XUVVbnX]\VW`]Z_rdbVS^\T_RlNU`T][XSZKR]Q`Obgj\TO]USqSV^aIU_fhU\QaeYRVOYbU[IXdSc_\[HRY\TRdM^cYYN_QScLVhW_\V`QMOTWf[L\N[`UZJVWRRZ\OWRVTS[NYOTS\ZVZQMNOYNYSUdMVXgTUXGZMQ[UELSVdVTQ^QZUUUS\\X[XUlZ\gIOYgTTaRUSU]T[^Q]Q_Q]RRZPS[]^WUeJ^VRZ^XaeRj[XIRNVTZiZ`[LBSXNcR[SYX_efRfg[YeXcCU\HX^\`UZPRV`UfYT\afZ]ZVRdZXgVjRY`XVQYVQbXRXYY_GPT\Y\oL`Y\\_LN[b\WTZ^SQ\cXO^UUN^bVPWZ`SWf`QWIXc\X[WWUR]\WT[Dajf`^dOZYTnWRQWaf\\VPIWP[g][[\[cP]cVgbMVRPQOZQcYSZLJT\^RaTQ\bO\V_^W[TGS_WV[UZYUUUS^IWfKY]^[ZXPXY]]YS`PbaVN[Y\LXUNc\T^Y]RPPM`a\eVdYVYUd\XXZ]Y[W[M^oYQZMZOYWS]^S]SVT__UI[YJSVZZQgNWPaE`P`ZZT]XV^c[VeWa^RJTL][PhgY]UVYbRSiYYWUTSS`SlTb^Z^g[Z]dNNW\[J\YXRHXUbUeU`ViQTRbWU\TfWMYaVRV`\Ja^WWRXM\^\]P_WgXQ^WN[UT\fKVTLV]`\^Jd]RdciV]^\WfS]V[jkW^UX]VaKZVK`ZSQTUT^NY^R\ThSTT[XTK[T[XX\TWUU_VX_\YWYYiWVUZdiYQY_QUXZKXQ_ZUZXW]]HhPWYa[RLN_]]^SaXUUVL`cOXQY_VSYOYcwXNUV]Xg\R^_WVSbVWO[]NTX^OUZWeXWbgU]YZaY[[SO_cVZ\_P[aeXZ[^TI^ZU[^a[P\PS\XTOQUW`W\XWL[]`RU`lZ]QSZVQWTP]aQTY`RZPN`XSW_T]XXZRZJYbW^V_XaX[X][VZXV_WU]_bVZ[TX]^b[YQLPQ\XP^\W`\_]XbX\NQR^VQSN\dPiW_Z_WVT]YOZaTWUN_YPRW\VV[YUK[YVV^XRhXMO\Zb`dSU[^[^VU^Z\hicj]USQ`[YZSSgRSYcY]U[VUS[ZdJHSTVTTedTYXT]UWPZFZUWQVSZ^YXZ_VWRbSUOdPOWWZZYUQ`Oh^MeZXRZ]RS[WWT[\[OZZWcR[]dUVY[TS\XTQPiTRg]_[[LWY^obW\]US\U[\Z__bOLQZDXTZTcgh[RaSTLSaIVJVPeQYf[^R^\X^jVc`M^WaK^Uc\XgZbUYSO`_XaEXXS`XRVfUbTRX\TUZ`YZYW_S[MZZgRbQPWW\SgLXGOfW`BRbV]RVUYXXW[eYVTMZ_aWfU\VW`YgV]SHUQ[YVYW[a[dZYY`SMW\^f^^`OPUYRL^VQPZQ[QWWQYQ[]PW]^]hR]Qd^_Z[SX\PQIXUWYTV_cQ]\RYW_RWYVVZRIPRZZ\Z]XWaa^YVTS_SWV[XMQQWVeJSL^USYXTUQ]fWZZW]^PRU`W[UZ_[WVX[aUTdPc[WRuNWcSS^_Qg_QS][T\gdVWVZd[XVKWaQPS\cdV^U`OXV[O[f]WfT^SX]^JVXYb^UOZWeWYTYOUaP\XW]MRT[UKRUQbSWT`TP[NYWQWWQ]T_Y`XYISLEX^P[kUMbUQLTY[SS\TWX^ZUVbQT\WN][\[T_YQ_SUU`NZS_T]\e]_NQTRKLF`MRgeZU\^YbS\XZYSVBWeZ`_fCRNa[XbXTUM[RRTRXWN[OcbSSXVPZYRX\]XVP]QUQRVIK\VjYOL`URJYbTWTRKWRYYDWSV^XSZTPZWK_XKXWc[dZ^E]\Y^RaTRZZ[PY_JRV[ddSi^VXVYWO[aP\`M`Z]\cb]QX^Mc\[h]lTXbXZXP]S[PebZdU[PR^K[]fRN\ZWR^\PVUfX[_SeTU^[WRcgXXSWUZWMVnOYTac\SOW^ZOS[\ZcMf_\`RSK^\Ye`a_VS^W]RZXZ_VdYTbWRWfY[_Z^[^VZ\UXZcZUY_QOVWV_WNV_][\\aRW[NWSL[_Q_U^jL]XUWWaUROa\^`^VP^RfTjdckPRZUaPhTT`tX[UerVW]TVcTSSNZRk^VUNR_YOUYYJWYR^Z]c^S`^OPIXRZORaRNJiQXS]STXX^QSV\V]cWh`TZVKWXUVYWU[Xb`[Y[YWeaU[`_V_TY_R^SdZ_^^USR`ZRSGYVV_XSUX[ROlT[afN[b`SdXUWPZaNNecc]Ud[TbdX`^NLcXUU\UVRVY^KRaX[SWSaR_TKXY`U]VRXePfZPd_V\RbVXdV]\Tf^RMJadVfU`SaUbdTR]NSSRQ\ja[W_U]MckSQRc`[TY]^\WXiQWKU[XNMaPOk`WRKX[eYWV]`Q\^TPZZ^iXI\NV]]YW\YYMONSQ\VQ\]`\[YQbQU[OdGNXP`W\^`^d`N_PVZW]R\O^WVf_ULmZ]USRTaVQaP`KSVX^aZ`U^PT\gYZXOSR^NYYQdN\Q\^RXUZN[PcQVXLXXOQX^YZdZTWWT[RVURYHU\cOWWV]^[Z[TM]SZVSUSKTXZ^YbYV_[UQPUKZbXPRRXJUWUSU]jRd\V\[XXSVWNWiYj^VQPWT]OQPXG^PNZUFn[RXdU`S^eNLQqZYXc^IYebVVT`WIS]^\Q`NaRTWY^V^gU`P]_f[JRSYZVYWZVhhfbQeVUWcP\KZU[^UUXVNQUYYPTUU[Q]ic]VZ^aWWXJQXX[aTXhXT[VcV_X^\Vbc`QWSRUWOXZ\YTcQPXUb]S_N`IdTZU[Z[cUcZP[TfX_GXV\^[RXR`SPg[R\cScSa^W`TLnTUWTSWT]YZWT^bM[YRb`YY\^f\Z_iTZSd\_OSM_`DYaa^dYVUNcSH`[O[fTYNdFR\aBVZ]dXWR^ZVZUHXMSQWTSdSVWSWXOeZZ[b`NP[PIMUWgV^YQRWYa\Y]^LMLfJ\XUZ_Z`U\RTW^^_\aQWNSUYYe_LPWYRVeMZNSdP\\\O\[\PWUVZW[PNUUeZW[UZ\XY\RVhSWY\_NgUS[aPVf]RYTQUQWQ^`O\SO]S\V`[WV^[_i]UR[c]]]]XTU\\^[`Q\^X_cMUkK`KTW^_UbWUWVX\YgW^YYSiRUd`_O_TZM[dbZWUOKXVYjaOalT`U]_`dZJT_X`Va\cm]`TVa\W]hU`YeRU[S_ZNPK^WR\jU\OUWUT[iRG]U^YTVdUSPYYZXZYY]RZcUp_NQUS`U]__`LR]aT\YSW_PZOYVEMP[ZRUa^T_[_TXMRPf`aPSZ[NWXVdSLcdYYU]XO]\_eSSXWY__d[^OXMSL`ZZZbcQSRZLYYgU]OTS]RVa\f_`YiGb_b\`\dXYdZP\IL]Vb\UTVXc^\\^GRgPU^ZZZ\XYWbLL\\YPW^dTYWOeVT[\T[bhRX\N\XV[^WZWZK^U[ZTWWTUT^SUY\RB[O[SROZbRITWb_^YKWVZRSZKL]`N^P^_Q[`\cM]\MS[ZNRYT\cNWZXYQYaaII[\]WcV\OQU^WUHWfJQ[ZUSiYPZPXTTO[YmYcHSVOaVUM^SVQTZV_X_XWNNWSSXS_ZPh`Z`R]RQN]c^>U`U\_jaMejWLWQaSXL[S`_RRVZdRZYV_[OMV^Z[a[STVYcQ\WYSWT\ecX]SUPZUePc_R_PVWX[URhZ[XU\ZTOS\eMZ\PSOY`NSZP]W[YTW_P_YLVVP_XQ[O`WWIXYNYU]NYGdUR\[^cRTQK^UU[Of`Yo\TUNUNYVEXXWYUTRZacX]_UPUOTVUOVZ^V[X[UbTPNK[\We]SRZSYTR`_\PcW\YQRU\ZajKTV]XRRYYeaJUWXRSYe][X_]]TUR^XWT\XYpQWaWVZW_`VF`g__[\QW`YXY]X\mUE\[[]ab_\eTcXeZZ\\TXW\ZWEWT]VV^XYeOU]RT`UaWHaXW[W[ZcNWSWc\bV^_^PcVaSVeT`RaM^U`aVVaTSVU[iZTZYXn[YZ`SaWa]U]Ta_Q[[SX[I^\N[LM]L`MU^WQRfRX[VOR_UTK][UYY[Mg[S]ZUWTYWRU\SKWQW^VQ\_XN]OMLP[OUfRCR^T_[XPc\Z^SWkWUSG]T^_QcUJV]__^KL[QTWZQ_LNe^^[SWjZV^VX[`S`WbXhZSYM\NH^aS[V_XSZ[XWTVUZTUWZW\_UjXRiWZ\RTO^QOYUTXNSYSF\XXWTQZWR_eL\]Z^P`H]YaX]dfYXVVMHTVcRWRdb]bfWpZYe`ZYQVNcYVdSWMW^QXQ^QWbQIYTZbcWdUTjWCXYWVVKOdV[WV\^QYWYdSX_TZ]jUYSTZTVVWdTTRV\]c]X_S[\Y^YVY]\]Rc^^QV^[NUTZY[\YUPdYVP\^[S_b[QQWXb]QLYTc\_MZVW\VVJcZk_XU_[YVWdT`XS]mcS_ZXWVTWYNdKeWVSTX\^PHZUUYTRVXm\T[XVkZ[S\UTXU\`^NXU\Y_]UZYT^eTXSOYVPUVhUOeW`XRQT\Ue[O`^VbS]NZ[Qe_Y\MSXd[ZZRZSbRXOUbO`]SNi^TahTgWYbTSWbW_g_MVNmXUPeTZV`\\[RX_]aMT\NX_XK^ZWeXQaShP\WTRWXUZLaUXYXU\[_^N]`b\MVV_^[Z_dUXWUTOaU\dRfOR`RP_cWj\YOjLYZM^SUO\_R`JO_kSdSOPYVVW^S`\XdXYgMLKW[OTS_Q\MSMb[_QN]USN]kZ^\[\QRSVWSMNbVW_]TY_ZPRT\Ng_VN\]WYd[S`\PWSbYQWV\YMVTfZRT\RWXWVT\UYKUdQRRR]VZcYR_T^[Q_WVRTVKTRR`PT_fVTRWZYhXR[Yc_XZ\_[SOW_ZPWWWSYHTTMGQ\ZXVUZ[R][gVMRYFJZNO]]QPVMRRZT[mTK\O\X^P\WWITIY`[XZO^UZXXPZRZaTUb`T\GUY[MXTaTZYVaWWZ\VeK[NV]NQ\]dkU[XfNWa\X\R[RO^VHdRR[_[S_RU`eZO^nTgXT_\X^M_c_XUbU\YQYV\YdHW`K]\aWVXWTRGZlQ_XWGQY_`f^MQPeZ^SPUWTU_Wn_ZVM[[]WNVVhO_VYR\`aO_TckYYTUR[W[NUXVYdY^KRaP\`hpSVNfI_WIk]VfFLUVbfQ[]^iNMXT]a_U[JVU`WKIX\acSZVY`de^[d[_NUYibKQS[OXMU\c`^UbViaOK\R]dad`\ga_\OOWLWQXYTYXQgZWeX[W`P[SQZ]ZX[`VeR`aU[LT\Xc]TTcaYbZV]X^]`YXgS\E`_V\QQ^UaTUWa]hSRdZ_`WVX[U_\SbYM^U]UY^RN[QUcXVZTbPU][Wca[X]_WO\^]iU\]`XQXTZV[`Zh_YT\VR_dO[`SR\O[\]Y\cMUVaH_Z_KMQ]__RYISfSZ\US]l^ab[WhKa]iTXW\\XXP]ZTX`TWUXRaTX]_TfXXSQROe^YeTW_JXVRTg\X\aZObTUSQaW[QWMVXUGX]OJ]RWYPSfW^[NN^Q\VUZYZSc`TZ`PUaYPQW`UV]aWXRVZ^^Vkq`VTbWXRGSRW[TaJd[UXN\UWVXW^Y_WMX^^SWgNXV`\OWWR\UV\S[^S\WWW\dQU\XTOW^dTTOSS_YZST]NZ\\XWaXZWS\^Vj`OSV__X[[cY_UNNXSM^MTlUP^QKWSWUO[_UZaYOZZWTYRaa|]NaX`Y[^_O\eUXZ_dW[\T[XW]Y_UcS[YYh`YcUbLNYWSV^\XRZVYbZZZ_ZX[TZbMUY]RWZPT[XOT[d`W]XPJYSZ[SdW_[SP__PWVQRNVPNaYQU]`__VWeNeORQVdUDYSY^_P[kSXWPWZN]PZXW_bYDUVRVX_`c[WYO[][L]ReXVQZ_GZY_cZ_Wb][eZ[RaVUMYXPk_c^[UWc``YVeVXQUFYSROcUbb]XOYlKT[ZPU[]^ZZZWT^Z_TiU^QbWWa`VXc^YUJQUXRLPRK_`bV``Wd]WW^[YWd[^^SN[]ZUW\\chf_[^V\baSkXTeM\ZYSTLP\_VUeRV\QM]ZSURX[WVUTUSXU[TSYW]Y\]X`QQ\_R]jaR\ZWXUQaXSYW^O\S_PKWUUPTYRW^``O_^V]gSY]QbV`XXUWYQiXXT`SZTUZ^\USTUWa_ZYfYXXVVS__T^cUhT\]Y\VUWV`XRUZ[YWcRa^U\^R_ZQaZ\[^l]RRLb_\_UcV][][XZT^e_^UQSXfPH^bVTW\VVTWoVQYWTSRWZTVLWS\VTcTBTa\UWTVdUDabUf^TU_Q_Re[RR_XUa\Ydb`nYT`ZRTZXRPcNUb\b\SUUXYL^hai^HOYX\idMaNOSdKKePMYJS_QhT\X\\Y\YZV\eLFSYSMSN^ZbcUS]W]a\TT[MRbHZMZ[TTcO[MX^fY`\O^QUZR][YWOKUBWX[Mf\[RWR\^eUYRVO]bSRU\VTWUJ]lO[GYfU]LOZXTY\MITKU[]eR_P]hMXU`\QbPZTP[SNWVeW[WUNSXV^ZUS^OXVWN[R_ZYcOZRLb`PXYQZVRYZUb]URVaSVWO\WWUaTOTVSc\Ocb\WX_MPUKZMUXU[caRbWdUTb[\aUZYNYUJUPP`USWUV]haVRZ[^PTX]]UUPTLYZT][OQR]YVYVb\ONbYUS`[]S`ePOhKValWkXVUL[Y[[VWZJ__g_KbfTX`PbR[TQWT]EL\PRUcQMW[TZV_P^Ta`ZLRbl\WUUb\eWNS\O^\LUW[TW]YO[K\NWOTlR]`USX_]RYS]W`\ZVZZTQWZ]W]YT[NN\R]\ZdcW[MYSZgqP]Qd[UW[V\Y`bOiW\aUUXYY^Z^S`fT[_N[iOGXR[eM^[`WUS]T\N]WS^^JWg[[Z\W]XN]]]UQU`_RXXR_RLTUXQa_dQ^aYcT[TVST`Z\OQXT\]OfOY`YT\NoKSaaUUTY[TZV[aK]TUMKRU[UTcSPY[TXWa[cZUR[UO_TYeRTVeWY]ZRYOT_QUR`^U]UMV]aZYLRQX[ZhUVVYMbZglY^XVWQTRRXS^Xb]WZg\\ROfX]fdPSXP`T[SOWa\dXeEpQ[aW[`WOY\WRYYRUW\TDSYRZ^QdZ\UW`Vfh[LYF[WeY]XaXY[ZScMUcVbMVQi_^RUKW[PT`MS]_ReMUQhX]`]W[^SKd\iMWF^\S]ZITTYWV[YcVVSba^XP[ZYX\SVhYHZT`\W`]Z`OWRTP]YXUY\X_Pc[]QYb\QW^\XTZMRcGXYKZOOS[ST^Z_R[MbSRYXA`nX]PWXWTJVGlOM`U__UW`PI]ZQ`Q\jP_aSYR_M]T]ORWgU\WUQY]cbOWUXV_cS[tQ_`Z_OVS_\Va^dMGiQUabPcTXb\Z[dZZOd_S_]hcb^\aSeVX]V^MLW]QS_\Xc`]TRMaYgN\Td`jX_d^SSPW[UPV`^^WXP\Y\U[ZV]`M^XGPXRUMcRY[VHjceX[_O^XQQWWcT]ZTVXp`VJXWXYWRaYa\Q[[WTQLQ]P]_S_n\LW_^VZ[_]d_c[TaR__bK\gUicgXgKW]\]POR\O`VY_^a\Q[Z[R^aR^_j_hcaVTJZLWKN[UWO\bRP`JVTNTYh]VYdNjY^TaRgR[\[ZU\ZRTX^MZjPa_YVc]UU_VT`UZUPR[\bSi_^QWYiTQPeR^S]ZZVVY[V[UU_WZ[\cWFZ\M^QJhXY[[SWeeTXP]Y_VZXYPcENVROc\_QZVebdiWTTQ[]XY^S_e_RNVaTV]U\^]\cWicO^[VTLbXWT[[^_OXOTUUOf`R\XNZT\_Q^\MdS_UN\fUZOP_]\nbHR`S^PS^WO\T\gYZTV[cYSYeFY[^SQXXUZa`\SSMQ]QRMW[_YWVWR]cVUU^MXNRdPLU_P]Wc^WW^[V^WRVZZRbbT`]NY^Sa`eG`UY[Z]Y_[\SYXW[^bJRY\XY`VXQHYY`V\^bNYSV`]^^^QYTOP_b[]PRZR\]]X[OQRW?[WP\ShVUYbfOY^^SN\LW]X]HbQZYLUZRVWcSVNhQTZMlVT_YZ]IYPTQVY^SNV^]^bOXYV`YRR[^VVSb[FS^]XOd]eNMbZT]\SUSXWRbZSa^d^]SXPP[OS]TVRP\azhPOagQXXYJe_VGXS\UoSf`g\`RZkT^Z]\]\T[_SZQY_IdUMADRXSO`JaXUYiSWR[MO]ULM`PbbT]LQgadH_VXVfLVf`UJ`XQfWYKWVVP^O\UbYbaE]gSKYRTS`YhWn[PTT`aY_Tb]VPMYcS^TPQPHXUdHc\PXYbaLTOSPRM]SSWZ\`\Y[T[PY[[dfZbZQV_dZ^ZX[bV[S[NTPYGQTK^]WXNTSVaWRaWSON[`TQ[OQd_Sk\WKZbYS\j`S^ZYPXV[WL`VSQaM^]WT`O^R_YZIiUKj\URWSZTbZY``_LRN\Y^WaVZ`Z^TMZPXcO\NWYEM`[\KOW]N]@ZYJVYRMiXbWXRT\IaXUSNZ?\`S[GS>EZ^\ZZY[Ra_ST\\QZZ@VIgUVWb\U`QNVU[VN_`d^[RWZOLY]XVNC]VnLMNPTTMaUYTcNT[M[WdV[X_T^qceU[aTeQgV`O]ebW`O]TX[UUTMJWTZVS_Q[XUV_[_XZj_XXO][lM]TYX\SWQT]\QSXiWRUSX_Y\_hWP]QebKVSYZ[\P[[dPSkceX^^USVl]Q[ba[NSb\`]\ge]]R`cY\]R^VNTX[Ud^bVb\]ZaJ^UVZXW\a\RYUcfTaR\WQ_^b]cUNYYc`UbPUZRC`R_Q__V`Z_U_ZWOVbX\YWYUdbWY\QU[Mc]jRH^_cJT``BR`^XPLWUm]]MVR[YQIS\JTYa]UVUOfXYbVPQ]NXSULeYZRTaaY]YFQG[ZRP`[[O]SSVWTY\V^SVYP_ZQX\Qbg^_Yce\J[]\YV]aPVWbZd^XE\RWZNTYM]X]`UPbZjZ^PKKoYZ]Xa[V]`[UQ]WZMWSZGZUQS\T]]^^`XWTWRVR^XUY`[OZaZWa\Y_hWP_WVbWUWNVY`ZW\Ya_M]RYW^Z[SaR\]\aRTYe_T]OPXWQ\JUVUZWb`Vd[UXcVNZ]F`bYRQ`L_RjRS__JZYZWT^U\V_YP\YVZOYdOa[T_`X]Z_\X]dQeUW``RZ_RZXZQJ]WMX\[QXbRh]P``ZV\Qe[STXXfV]ZW^X\dLY]N_WVQePVP[JN[\VaU]W^_X]PU\XMUQPSjSVT\T`Fec[\VTRceWULWZVRJ\QWRXbNp[]T[fY]TY_PM^SS]^_RWQ]b]WZRWUQQYWQ`SUPXV\VSWXTV^^OT_g_KcdMRQWYQVTO[ZVPcXO_XIUZaW^aPP\UR[UIf`^`dc]]ZP[ZVQOU[W_Ve_WWKVP\M^cYWjP^ZQ[aOW[X]ZVQ^aVOXO_U\[]TYYUPY^VZINUQI^QW[]UdF\KRZWXTOZ]\KZZa^]X\WWS\ZYLSt[K^X[[[XXRdVTIZZiXYRV\UUZR[S`WVRV]^]_^O\^WZ\]`WSRYPZVUSU]TYWNVZt`ScXaUTXUTa_VU]TW]_X[U\aWVXY\IZUe_Vd[Y[\RO[]^P^WT\RYZXWRZWQ[S[SYY``Y_cU_baTXRQYXPSn[TUWT_]MUTVSX]]Uff]]RN]RdXXYd]hQSYWQV^Q]^aX]YVL]]XR]cS]RNVTOCFWU]VR\\YWUUWJMWZVfTR]K_]T`][fPT[`ZaSXRW]X\aXVT\RV]`Y[R_XXaO^VcYb_VV[fPSZV\\SW_UVUj]Q[cQV\\U`dVY\X^LQO\RP`Y[U]ZQXYe[[\VTgXgefN[bZSg[STWd\_h[ZedXYgTOYXK`UWV\VRNYb]`VjbQUP]gWUbdKaUX[`]SbTZfKdY^NT[hQ]a_VT_dS[\P[SVRWJQbLW^WeT\R`aYU[`]TWPYQT_[`WRVYL[\edcWTYDXaSW[UTTY`_S]SS^ZlZOU[hPXbRRb^VARSU`fQ_NQXW][Sb``WWRP`P[V\ZLWURX`ZVOTc]^]SWdQU\NaNZ\U^\VZeieSNXeVg^WR^dUYabSX^R\T^[VVVLUG`\]\RZYTp_NQXaY\WQTTRhUS_RM\YZ^a]\LS^Ve][[Rd`UVW_XTV^LSV[hVMaS_aU\_SbTOWV][XXY\V[GTY^fW_WVKbcYWiWZXVPo\WP^To]OHWZWYS^WUWHVWaYrYPa^WYVd_RL\VOR_`_L]c\\X]PJ[QQ`Pc`ZSaT]MXQe`]XTM`\PZ\TRZXbWiR[\ALSVIZX_X]WWdLN]U_eN`f]M[QIJV]PMNFG\RG_Y[OYc^VS[S`W[SHW[lRXTKXU__HLS]X_[W[WQ_RYMZd`ZYWba]X[V[iZUVRXX[]_R\^ONV\^U^P\Z]R`XZgXaURMSZP]O\c_YXQGYYac[p^LeVbYWlYXU]Y`]aTXXX]GZUV\Z\KXR[Z\`JhUYTXc`maRc]KQaZ_VYV[jVVU[\KO]\UXVMRePLY`WSRKa\PNiOMTRYUXcPUQ`\V^SYRj\[W^MXaacSX`abW]ch`UWOl`XVO\Y\VVUaV[RXT[bdRY_]_M[XY\`\\WaZUOHWe[TMagbWncWTTZVV[_GmTVFSWRSVVXSVMNVgSNQibWVGbQ^W]bVWVTTYU_[[SSRRRRYU\]W\^LN^V`Q\fZYXUMbJXQ\RPXUL^TTPVUNRTR_JSVTUUULROX^]Z^OSXRYOT[\]hU[_UEXX]VXV^\I`PWYTQW`T\V^P^QWOYZOQ^Wc]UUVYHUQdSWfd^[QT]SaUWOP_XQhJZZ\ZX[ZV_YeZSaU_XXRab\YZNZpWPUdO_VQiVaIP]bUUSbRZ^fbcTNQWKJXPeY`Z^SaQXWRVTUVXHkiYJbS[_U^X[Y\^bfTXL\UdU\Y\UXM_aR`VNXSV]OP[WfZT\SS]SSe[W^bZTM^beNUZZMYLb`PW[Kc^SLYcYZVaZ\YR^hVdRZT]S`U[W\PUT_VSY`WRWL^YSjUZc\Y^XcRcTW[JWfRWZUT^H_SX_W^TZ^W\]TSYN^RSY_TXMNINW_WScXbWVWW_O^[aMTYXYZ^\X[a\RMPOTRY\YRSL[eLcRVZ[TX`b_VYV_NXT[aV\k\bY]U_UW[LaMY[eWUUUbW[c\[WQRQYW[VSPablVXX[Z[hRdPRcXW]f\QZ`ZNPUSRV_P]\HTKb\]ILZX]Vb^[XDRNZbU^WTPcVQZXST\j^ZbVcS`ZV]QHWTOUXbR]UXN\XaLI\NWPTO^RY]VW`QSG]\[WZ[`X^TWWUS[U`O]R_QVP\[]?WQSSh]YY^UVaNVVeUbVMR^UVYRTWIUT]U[_[^YOTY]m`X]\Od^\Q[TV\\a\OO^PV]PLI^LZ_[T]QZ`UJ^XVU^]`caU\[hfZShVUcNQ_QPTSPQVWQMT]YWRSXWVUR[Y_W_[PYWZDVZQV\ZSQeVTS^fULQZZR^VRX^bERIbNX\McXMZRNUM\`SRTm\_GOYXY_VUKjW[cW[E^IMLYSWWZ\C]XTO?e^`]hQ`QI\LWSPTV]Z^TZWRSYfKQTRYNQeaK\XWfXVIVMY_]WaZ[^_NWY`TY`]YdV[Ld`[V[YPW\WQNFO\X\SXX\aY]eY\`[LVT_ZY]SWPWQce\\_YM]dUVNXQm^qTUYPR[QaYZ\UWWia^SVP`WQj[T\[dWQMG[[U^ZbVT^NXZT_^^]WYNVZ\[]_cYdQWSS[XU]YZ\UWT\WTYPO\T]fW\UVak_NVZf[e\ZWZ_W_V_YFYjVTQF`VMYS]`RSRYV`eVaR_W^Y\eTe[RW`RNNIWRVSYfd]UR]RdN^TL_AWRbURWLKYQSMWiVX]VPSTT\_POZ^S_UUQaSVSW\\UUJcSXXVX[ST\OTMQ]]YW[\VWUOXYO]SPSU[M^RcWLV]VT_ZVU^QUbROJWKQ`\bOU^QWREXY[TWR\^cYOOQ\UPRYA\SMeT^U`RSYaciQ\_\[W`Vae_\OSSU^\NgW]Z[OLZcO\]TR]YROa\[LRQ_TPJS^]aabJZcSYd\PNZQ\JZUS`N`UT_h]OcTb_PYSiZSZVXbNQSVJYRVUPU]QYSM^\dfPeXTYYeKROfW]WPaO^[TOUaV^]VO^S`UcYS^[]_[YZOP`a[^STYS]NT^XcY[WT\dMWaf_]]R^XWPYbURdWXOZ^Q\YX]RS\QTD_`QRY]X][W_ZX]U\VQa]NZkWUN_\]WXZeSSPE\TYU_J\eQ^J\VecYfZ\JWJ^UhLYRZd[X]_``YOT^\V^_P\U`YRSRTYTaUOVM[[T]XUT[WIUST[[]X\PXPVRRXQ\c_V\ZgPEP\`cEWQZI\dPWW`b\YVSURW^b^][jOeY]X[RUYW\Z`YXQSb[dgZR\k]QWVWYaZYUT\cYPWTQVZXMUZTNg_YTZ^cZXReOUUcaTk^j]YSO]][`UZWYUgeMkW[\cZ[PQRWTTeWSYUKcPVVYyQXR\SZTPiYXZbGXOXP`Z]YS_W_DRIYY^ZY^[V=YXOUWP]UVWbYd[YTW``U_]TXRVTTMZUOR`^P]LdVbWSJYQF]h]QWaXOVdU_[XR\F[Tf`bcZ[L]f[c[ZZQl\fcG\GbYKgTVmX^`]McUZ_^^[\PZYTW\e\hVUXU_YKYYRU][L\_F[_f\]ZW^]U\]eaIZQ[Ve[XV[Pa_YVKg`Z`TNc[UXgXOU\W\cLd]]V]Ue\cSXXNc\QXFZ_S[WSRa[dVZ`dcYNaiSUU_QSZZYbVRVWZ`XZ`YgTcc\ZO^RUae\[bZKVhN]fiKPTdQI[LXY\Vk_\_HXi\WdOS`OR\S[qbNRHN`_OYW]cPX\\GY\Z[XfQ[TK\cV^UX]NUY_YTaP^PacdP^PdR^RY\Ka]VTQU_PaYV[dOZWSOZa^bS^g^VbPTSj\TY^[X`]\?Vd\]W^c\V]TZaIWTYPRU[Sal\Lj[M^V`URJ]\^f^XVLZ]P[dXW\^YQWVUeSVXTVO\R_S\SXUWUWWaWfY[eML^TYX]SV^\\NV^PYZPSWQRVW]SQOYTY\NWa`SRLdT\Uc\bbZUVPTYS`[^XdN[VPSZ]]TW[XVY[VWG_ONUVUN^Z`PZHZV_RSaXUWWXSUiTZ[TfRcUYT`U]]TdY_X]SiQPUWX[RVdV[PakdTXIXXWMUT_\[bKT]mZOT^SdhW[bRcUWbWYdW[VLW]\VTY_WTW\TWZ]Qa^[_ShWT^W^RTJXPWfXTUUM\[_bSZW`QW^S_P]ccZ^YWZd^PZUSM\_ZM[OW]^SZUXaP`_S]\WeUbTU]IRTNNP[W]kZ\Y^\cTTZ^ZRaLhSQ][`LP[YSYZXZV`QVYUZYXRdXS_ZWX^PUZbUZPa\QK_\[QhYNX\RXXYRLZ]KQ^hMZLY[UTRbTPWaQ]PSSRVT`Z]i_bW\^OVWWe]JYLUYQ\YXXWZLWLR[fMJX[fV[VaRT\TT^RRYZTZYb_Y^a^[`P_]^N_bQY\WNPKg`UU`c[\b^bVZZVX]VXXUV[XW`G^L_DRdRN^P[XRch[YRbPa[W]S[W]TT_W[YYYg[^TYW[U[SMZdUN_RXcZSP]f[[\wYZYS]RVa_\QVRVU[^VeO[WSbUJPO\SX[OYkWKQP`_VSTV`TVN]PTbXPZ`VVTZ`_UZWGRW]UW_YY\[WgPP]YdT[YX\VpVZZ\bXVOQ_ZWaXVa^U[R_UYSVTOYV_gR_[cMYS]J[ObS_RWV[]TVZQCVSRTQ[\a_hZTsbNbOX^O]^VTYWVS_W^YUJZTM`dOXX^UY[\VYTP`eWQ`ZSQ]^XUM_TTUVQQ_IVhPVaL[`TiWOURaXKP]eYPXWVV^ZoZ^S`X^L]TY]WXZ`S_hQW^clYXUXZ\XX^PWi_YQ\Z^][YO^`VTbOfa[Ub`[^cUU]W^aTWYV[[WXZWOWXY]d`_a][a[d[WjYWZbfWY\SN[]RRQUQ_h^VV]X[UTjWiS]SRYRZXe[VYVIiZTadYX[WYZTb_R^\QjZ\fXZ[daZSNSHfX\XUaeP[X_J[SdW]Zh\UJNSZOQ\G^RYUKXaXVSbWYXZKS\NY?TTZSbdIRkYd]XbUO^aX`_]\ZWPYXRd^Z`TXTR^ZAbYZNVW_OMbCY]_bWY^ZM\TS]dZ\NU^WadR_dkP^[YSV^^Z[aLXYU`TKO`XYUZ_Z^_[_^]UZSO][QT_VNe\\UdQU\PkYUQZUh\U[PWSYcT_WRSYk[O^_UQ_[]TVZXUPf[YWZQYNYU^cPZRcZXZ]hiT\WUbZXWZO\R\Q\RX[_UPbbTfaWcRL^]WVKfYOWQZU_WaSYXPM_bV_^]`b\X[V[baVXW\_^Wg[`[\[Us_R\]lVGS`\S[VU\T`\ZHXIT]]JXL]XST[RUiRaHNcSd]bI^dYRSYX`WWSJOVRNZRcQ]FQ`]cY\SeQdVQZ]R\Q`]MQa\KH]OYTlYR[ZUYU]UMRSTaUOS[N`X[NL^\OY`T[[^[R{`NWRNe\]WST`iU`dTVSQ]YS\SZWZO`[aQb_ZMXY]^ZR]GcUSSWZWWWZOOUWdP_X]SWGXQLM_\abcVPTNYOUSZ_P\PJSU[QaddX[U[L]JTTRJR[VVSOa\T[SVORVQI_Qe\XgKYDR`WWOQLPXXUOcS[NWW\QZTQTcUY^PV_Z\US_T`bX]VY[STXXIhQ]WW`WUQ[__^[W[WhPbeRRVUYfTP\JLY[N[]X]WJLXQTPS^WWmMMIMRQQLOmU^__YUl^LROT[W[PEUPKNadYU]XaYOVUU^a\W^SWRiYTZYKb_W`JWP_aZcTXU^LYXQTVUYWV^daVZ_]_`URXWbWfX^RbXXVQ_JRJR[TPUe^^^^dYTVcUeR_QV]RVWXGObV[`Q`QP[UP^URUfQVLKIa`X^WLd`U`WaVSVYPcT_NbTX]gRRdVfZGaRR^VabQ`S`V`KTYdV\XU^WYe[ZKWiUHYX[]`e\bVUVdYNaZMTZ]aWd^[\dZVQ][`SPW]]Z\XV]aWR`OS_WeNSXXVXYMXT]RSTaPWSW^QSRU[^\Y[KZa\N]TPSPQWRYYcOPQST`XK^SNS]_YcX^]aJURQYZUU[cSWNNSKROX^RXRVT[HZSYPQTTNPUVS]S^YadJZeRQMPV\\`]S^M]^S^^VNZYUXRU[PaY[IM[WWq`JT[VgdOOYUFXYKU\WW]Rb`VMYRdRQRFR\e]^O[]cc^P\P^_[OXbkFKeQcMfLSOTPOI^UPZ[OVe[[ZQ^dRON^UghOYQPb]c\WW>KZQ]RYS`ROhNbVhW\PjTUnUMmb]Oo^MRL[[U]hSDNWQ`kCZNUQbj[TUVWmOVPZXVUFgZtVTWpUWWQQd;[af_Vb^\`VRcFT[Mn^MUUV^bMXKLPZZTWhSSTO\^ScY]VMNOOVZT_SR_VWJ^W]ZXRbXcgaVSW[V_NGPQRaTbTJPWJO]YIa^^]TT`[YMXPQQRYUQaWS\[[WbRX\Vdo[NQ[][M\bfVQaTQ[\ZNURW]WN\P]E[_\VS[PWVNS\LPPPZ^VZQOb\VWRSM^]RWVa\EReQZ]ZWaZROWT\STT__TX`R[\V]TTXROXaQVgV\UTUbRZT_YWVP_Q\VXWPWR]\]_RUBfX\ZS]eOWV\ZZ_OXaL]MLc]MdV^RU[]g[RIYaZUYWbYSXRUUgW`RUPZY]K\VbVSURS`NXM]YVXZ`WXbTULSXY^YIROdS[Z]N`[UbfZ`Y[W[^S[]PTXc]X\WZVI]]QT\`OXX`[VY[SUd_UVYW]V`VY[Y_ZY[Yd[RTP[XVMPT]]SdURBZ`KV[PSdW]Q]XWd^X]VWOVIYYX^YZ^XYb]ZOTVTSKMHYOYW\VQZ[T]ZdXTUZY^hYTY^ZZQgYJXX\S\Xf[S\[dUYYW[ZZY_W[\ZVX^[^\NaMcf_PXWNSUXZFWQPPLZW`Xae[]Y\SYYQ[VT[XXZR[^`i^ZUI[XRZYdMcV]`^OWMRQTY\[cRI]ON_Nl]PPT[TVR\ROP][RUUX`Ua^UdS\R]_LUXOYeT_ZP]HXXKeNmQWPYJUZWRV_][[RSZ]YaS\SU]`U[WX_cZYYSW`jWY[XURYi[`[QY_]QSQYaO^WWY_PcQKMRQY]XWRhUORba[LPf^bhYKQ]ZHVL[Z`NSdXQ]iLUKUK36>7301287<:14.9/2083384456?32A72:51:5728-23-=:=1/9.24433@175;170684/-5375<7C2B57<3/21B71<10;95<;94)7735318?45:722*:3/2046==534>6,7/:025558.2:87336788636;4181?=65/;525+019>.:.8742;511528-9=5217,8<2516257361/756297756/6=?38;23;1471@4=3=2749:4*129;77::;<89,492370:9:1L8/6224A7154;=50;48;48=E0,181;4562-792/45/3.342;50>88:<59:;55419175,5454547833@5/64=623/1757.93<769190401<344525444/-5448,88:24356<583485/02367522>,=85343944/25=0Gt7781517+6556624;4:256049@9;(52=26292E322:6965754;7K3:11-4;2I867.176::55.>/25388>776585734171;745M?798633/,81512>;;;724352<=49735A4773432>::64D965778.4790787848<;5813?:60=51:6725788<15217?C376482402466?05;5/;4@46238;54;=;:23346788:3<2;175/;365:33:51=07=9>4.0835A45271987=2.:--/:644:.63365.:35.9235226:65:@<<3727574=111>2<>:,8862=/9,=>?57:55>9:451283269C3886;065285366.>:6;2>19942?36,;2>26531./2540437064?76=>648.8B;1:/0/9;1445954364723;2A=5?<1=5/380<.+.:65.;786;:584;;26964586>92;;7C89:7.33154529@26/2>6?0=:4016:C>2<46666B25>01:6704C*652F13:3A9.4718803.7752891/78;967,554512548378:56275745>5?779/9046395<65=813:8.52::87=6=96767:2;6;/:48666/02712,4397>:52762=7;A1:39760:776864;=:=<4607J;69351787155<5.31534747A4715821:69?5693151>342/;6/558;2051941/;2=0324564938<;<6755444/49465662963:9/44454/=706455404/:44=0698?556;526837:3=:A33<4<>969>29-09/?:366=;2<46<8-78-7685404A8758;4.7183;6G1:99748522448495366901472?4;>8661<72A09<.30::675>937/227460/H:/>82387>=45;;39685=>1:*5=+6875824697365A4/9A1=962477=94.618;597;163006-231;067;='/M59844-891+49<91576B3<;2<96182:1;659>42136:30E/224=7667>30.4627600@-O83451496.:6<8C573416342DaE./5=..+2885D@009557=3:A55+7B653A3+4939:>28>2742:73A5;3373<,887316348572,<83=9677/4A6264C94860=7<:/7>6C217,0*/785;63,B513@141-480/91497578?48K2=546628212/60214B2419;57B656,5.82M.2678565326;@5>9082:0=<8;405:649787*=57615:382.1:>;.744944971:96<38C.309367<5(4*7>9.<6;;725=57;46L966206157;99/3;/83@374@;7341//;=775.3=78-640;3:@178,7>69796/=9>93445451"/27/3<>52A/0=36H25314300=743775+6A+@;:554295798D174;/1F.5<77@B?B1(57.=>6(9;*5744:6//4*4:G:/7:+-8550972,8657,70575210762439+70;955:72<4128D674:3..15:79?.H9-27752:341555-?59143:C8?306;9(4505:8.46+73-4=43311925:48>-93=3640854-96944/.7897/;@:.545378<48864096718076612988213>0A38.45<=71;935/9402<83605<69<76A:4:869664560689/34K7566;88/645/2646846522;/80:31/7354:0583=4/7475<4054:63?<31464=5:533:2;5683806842>;;859672F=;390746932599>-,443;7250932577/7;07>78;9:J5483.27843475=)79C97<5;=>6.7:;7<;827=:457.46-5O.4-356;;4A826469><.910;,-/44B74/:A=89>28M-7=:667<71/.176;4430110198352B7568825864D=AA36;7/5AC*0<61=;32>494;27;737:*.49/<83/2<2(;8,@417<7578?)365>763;;1-497656>55H;:,86.80:346F,746+7255-,9./7?/9'=3/55B3<5-?;6C3;.)73/:34665>,1:?.8+:+./67;;4@<:3235848A:,--1/558/240>4A:5<)./934B(3%,01;657/0D441C156/178:/%?;A2&0<-94-:*4*1?3871;@<:9C5<6;6;..50.9?32/1797+8B0+97CA@.:'1:77?:70=028,2B'560.83)1+B067*8-4829/'?-1+.8+*;85728?7G;3:<:0>/3/>:5581+828O8=<80927,/&2:>B830<396?2;8:167?@:338666>485+0:40=244=5..2;:/823B2&4:66'/>30734;4785@63'215.203938677,91/8:4E7:26;;3;0+.6.:%56=D/7><*2M971161@.8612>8031>9%=6:3:(2-2:/$2<9;7805,@/B7/7632@4/59/76146<01+>41,5:B?04+7113541>3316877<.,971433602;255961<;8927=:E119560-;75=3<3695614;4.4*2266#:8051/6/95/8/,4>@04=4998:7843=11856<9<24A0316047720<873:?+29,8684/5-.83,2>=E434,5;72.11:/7B:859:=5>3.419*288454+?>4978.2363355/;572713<485/.7105247754821'691:33K9=5/92564,5:4+:4;35/4417/)72;2:/244@1AC=0;1:0:0B5;5593<1860=8275C@3765453.:/5<@300,>32D;3-9043331;@26E65539.<0<95459--976/428;8H93912/:33M<038/A(2668@8A9@3/65:/0,//7967;0208<00:62<9106=6.34.3=87=47761;92=5<845;3:6<>>-466:3B3284062<6344*;<343,:42?=9375:<:-48?34639;;4358/=:D/.50/31?233*4/15493335737;33F42=286325282948;=<-445.4;75295245E5287286503D9/88@63:0+0192:5-3479:13:6608:434+;48.929;346276569@77474?:5<>>894384:<.697885361><86:46@;9545422357:2,672/;2988?=:9927;565389=-05:/5886?<1<39833955193985<18750863244=9978251796/466=-A49B158/;2?209?78359146,9**433/5=2697<593564:91:42=5.;:577/00/>21=197>1:8546951>5470546:3106451;=00::45779%898644155934>7@48981011654;27:80;494=168432;6/98;4<40-.67H/146:+7>>;<39/5*7:42=450D1514453=437/75448660627/25<7;7;36+92;2<257=988257<389154860858647295335,5655C6947;64947768824863>2655584076<0;;93;5.93<22347445851<424234369875661057280:419<742658<7656387/8:3:6B:7429(82:*3E2@14<<7<25062@561*41711187;;85,064;969*54892<5<76;/3.>;;5574B3/@4:663>820-70:4>01./-:294852;5+..87:2<.428:;:>192::9B1845:7>2?.6:=23R;8+592A;543867-/93<6*1+-2288<5;73?9+:50?1267D:=.284629262169G619/33/)E76639518:299<455>5224258-;8579553=?7133724.>:<<8:3>932/88:8777736795;/76=80?24<2?>D2021965F6/269:.68316:072<967<498679;9=37646:;==7<67<;55838/7>?1.7482/65571)469=47-83+@1/938052<4254;/;60:>?0+59:98@5,05@4=)3<+9640331>89;23275:<67:8>=.17+46::71993D44527?:47/61-<.3;29<,B/@41612365/13165374:74>@:479:,.-82:=337@>:>;=-922(3:39L/6504?-8/<8;925944:45?791/04228/28142,-45;24;37366?937.:661@0>>:541742/5;:09:5088;345759044944>8:1?8:65656593.25584@75;/8=.24:-72;7576511*05937941,8,538:5556-49533671F0-A63:5;62A7585822123661850899.05543458./3135;;3916144;1776==2P30773=*@;6138::955183/11/546:665514:=7<08:/25:62359459L0763<5385/<6,6>6?+9557:5103:4<42765:56:&9;1?7:57801<:69<33:5469-51:125=12?//5<8.6<5643860<0:60082482<5B84=7405.25-42-4A77-966669,461A846*3/5<644;=216>5<;;3C8926690:4=/B8/41*?638<395=543;1;0536;441;7:6+:F895483,34:/466948365009:449.0)0:69;6:978+92-74>.237=73:;37;;<787,98.5100;9470:036435614/:253:.;10/>/.8;3;?644:;855+7;@66@:89837?0-0755;060-8>2952-:6:/1A92.:E-5718/9G4B4599.668/8<3160245.29>2146344520,?.?-;262135<77=8:809853956:<7367CC?./8;1B3312A>.3<4:;0=42-.<49:2<9.<8+@527<052E0983:,,CT;6=435?3585B9;9:411;<<42,554:976=6960<:;693/35149120277562695124<1/4<:4,590E93B547/:-1,3/755307;647411F,;93/86383489330=42*3652/:6H>50.5085;<44;0>1:6:/D;7427@9:8:05/6?872@;>6172>3/83<867/72/@=6?=9658<5/0548:2:52=;6<9+75/>67135//.:5:?619<;4H73477113-73144:54887,/.<+>/3;66I?59?7.>7/<-9,-=70E3721425>3;6;669437/3496622+?::85+8:?;922;<:519(998:91:/526185786;70344390/6>996(2;5@>97:4)655 ;7>7832<1855*6532.51/@/8=4110E8.>165<=9?;9/:.H7711814=@,;.-9><369>068486/66620;:=434.6476740:<414?4664/978A)1;@76;4<5/7052<3/:89;/5357>:0-1-C80978&/:8*9,74;8179651095@8042,95/473;3?59,55:>7:3529;88535::=:98:50.A.?:3A9=03156120/954?A/386.5600;497583/582596;=55506:884.7.=5,:91643122C:49:0095:90144234111/17/0<743N,13368496488@+0859049357;7C08:2217:?:4877344;-J16<90368320<=5E2//6@665976249:67E7B16F;4@2/3576==48@/.?3H5687347135441061442991?=2<7239642830:1461;,411248;146643=758/E=7149.0/(1<14D7,33178236779?3@A:36563/210995+:4/980:2,4/638;5779,:7=/4:1022;B,15EB2<49+9742;3285240-0A960*?<:;.1>76<=EF133:A638>543.;273;-/.<201;3J13F/17<3934B-216537072;79<39:43*A-4A/64913C4<;99:.7135/0325663;666BG2661;83,7/56:72=95=0I93:69629?/5D955;88=545330195505=41:;4,377288:5;>642/225:5577066.686305:16?6?:.-22B80<:7>8848465=9,?902=;63?6284;14D856:5:5764@+=66<3:??8.69447.79,231>::0865=0;55,76A416:.;71685..563<5<871872;?<37A//87<3:2256667)>.24988?49483/7718-7242::96;8195=48828:578213/8/<95180-5355<23<3:36053<23:05933479/6?77/6.55=89/5C?25334:@5,:1?4:69507638+78:41-5;?484H92.5=930<4+7774B>8-9556A+78/7>1I:;5:<512:.66378876,18=1:532+8/7207/13<840/.49GC;53690;8=;138335;8+3162+2295F48/3700(4?3.320/3*2:1N57-=6:940421:D897<2634181=573-2;22146;;8:8::1;:,93-3@2A1B08467287:248775;6;<@H650;0*7/=:?941;:47A>-09767:C576.7;756:B968=520>8486501/.58+2692847;5D076361/?816:=7.83:=0><58;4)10?:<341;62143=271:5323A=>61648;?462406/;9:860>/3577760451/413:@64<,669<2:-LB91>-9108.2A?.47+A=92@817>60738419@;:;<5;9:):5033346?15:4;8/-34:92/=97.8=419/0234<534@058100.<8877:7<0:;4==9>-;A45>5<679860911&48:52<.7074%8:=9=9/C499@;28213B5:03=*236273:696?/@90*2557;45849<;4@=516823;2/07=:9:4/64;7<768648=3;68/=61/B>43578D:7=06477C417-A55485-:655>9674,>777244=74273696/6775.2/7128:153181-36;0;558919E7<;12-<7800041;9165/507:4:,27>5988:8;?419516:@/9867:;58B8@/1:;:34/1;6:0C0.2;/=5097?6<4/34612.82=-4039607?+G-818;<619:2A;85//4C<63-258$;@88#86::<=K634>?A.168:;;9C7-8763N/8:11/734387=;4429;385:;526=:44669/46785118<<.2946975/>4:6:50080=730:65<.401:9D&49<40600/9/>60:37A7+O//@;5C,275//.,B'Z8E8.<670454?0+;22950:/0/831;=+B71?=;5-(?;;.1<69;468;1-3/:8=:445752,?76-44;+2582.69321:;452=;1754+5/?49:78)3;6/19587A>5=*?;.118672.9<0570:C30):61F-263.B9B759575>.47;7?-5-25,9:28733;(4=00546=087520966207:9:3@6395?74D+=817-81285992879-9500?*6/>>89)1',51+(74<,912/:/69-7<1>10<<,?6;6,;C7;7D10:764546://9874776=E75348>72?775532@>10->3)9033345?215B71)=27;<-5173/31:83920883809=6696-683.;67@5?470280874655>04913/1<3<;275>5016*>665468?:40642977<0<469;83A93=58754545633626653=348<3845-92;97>627965/616;0596147312-1536406.+78:2554.064:552774=;554.8666=<84;<46140/5<34829@6554435;3553:0238522342164/6*99<.)1-61;067,535:252FA9>,138;2262*1<+380>./>38T5/82;40?.5/0;95961*5.75:956=6J4324259/266?03?D2//=7653/=+=/1=.=7/4062,75:8637919?/925/:85634@9@640-46>(2<6;E91:183,63/70:'53;9<74344563,43534202426?.84;79478:278:32:6922<550/235?7==3=.;3345;74014?87./2929725973<47:7157566.527975@729+9;89:6955818167348:86:3429-//144637586?2787235788035571894341.:63487;86<65182.>87:,1:57-9:.39986/3<19288246/87?7.)/5:58473>385)6-639763:.9.25375;85130;456=9>?6>:2/2=;8821-19>4561;788534;:4-;+/61?1251099733/:;3-59<60/8=2942.627:C26D643;H?1:6;9.;.@+5=<726&:256+474.<;/301<:9278C32:;93898;E00273<.238.5/24>84-20=.6790.;:767<711.:1>77-5?-9888.8343*2B363059F746?@46362*:96<>>1=42764;81.6*::3/467.2<6503<924=597/5A2/7153734<90496+>35A<26@655B78352*1916?3B=3>18B:=7:)*4==3222>5541,9681?04;:<:5:363>=866:F8788104348524472194:7221I23643:6483850A31B38=-43<07/623/65.@;0=64==-1A5:L<25378763;5B=71=48379685<77154133987:721697917;A>1+53:77337-68;-26-4:8H6@51;13C>9-@,6+934804?<;9589.<1630657299572>.7427-63-83?833A?23288E;65<1198267:6731/:=6(=<5:6>78=1063<300=@,;:5A74>-7.:964,9324?;/97;65/::-48<2305028/A>35<0;8,38105554:7:47-4:95.4/29;I/73.014>585338;C-67A353->6485227214582/:2:747756850+6881;961278359:?D@2+340;8:'65:959=69.59B58A53/68A1486::,4<)40;74=54616076:89->595:;>:62-75/16B;1B*92063:94390>64030::6;44@:23873-7361640C13:36-57375-57,9005.8414.3/7<1209=36,7506510;<:1B94326055=4197+.7=63?71.923743*4/557476915=47=42<8;215/0544;/58222680)0/21.897:=<1;/5465430464531542<5;9525@28:243684,<9D5.820805?59261055<82:18553)/9234151:55;>7608775;6,566;5=1:@F/9C<8/?7<>,<3:7;89632<64022:858936/:<3:983/::8-4349;1576742623275.554617825082647535591=,=?<16=6>355640;:/;>G75<44401801219/717=33=:587.8+4B514@+5185><77<<3.52)765.52<=A2395:5.673:/5,0,;6>8>59=73A2B>?3066<,321B73<<3B;81475<<996/631C59457877517/8C/856:I3;734144-5?/>0454;81454356:8+.94686349D39:7;3?887842:22;5292=39;7::86@773<7B<496513759;9203>533-7/2.9@56.378483>949569/7721237;44874266786995/5@1<.>561,5275<30;2487/5<69:8/21;7979363:<>:9046;<864+C26/<77469900>B=514:<1.7;,.9418883437>:42455B/<8008.8<>5<43:1/21665287:A77386//;053=5<353;717189;3>3212/061912.628/95733619524-=1231-@A35:3=.?725/,13:6.0:5207:;.@<4926=7,832=1701::48:B5354C=.1??:6416.9D1;@-466553>7/640:44@1BL4358*E8<;4496>?2G796//87:5G9/>>5188<034::0-@8,A565119<879/7:81;37.1?:28A1+84>27,2,33<6465+751@35/*6.-=/8937636*49+38661984*=<3=149/56,5?;82:-./3+0=6;2::76351;;-4?6=6:159;2:*08?788>09>7:503;5:5@35.27G78@07=;.14EY29";:2=;941>?6740186;9JB.?>=6182-/>704:=54660:2426=5.<:9:/552585730-733;:277<86,3;:325>;761<13><.,8877/19,J=-=@J032;6877=:/2:;;,148I=<17;98<4C9283781566743;295001710825::163/856/=535-6/2:4760<5205;1/23F5089;6:49962;4=404618*66A37875?;-54./77/967,784745?2>0:44<2;993694190<43327>=97=/18;19+9;1/::/4;865<@774:0.2;74667@33466,56615A<0894B<437<5?231217/7/A;5,981C83;774=-,;85C3/768;33726835;483553)88805356=.23/24818=C6,<9C/9A19;3;66A3==7,023818/<9.338658=437508;2641:;:7641215+570@42.5;853/58775=:.38;829221:9;61?/5/17128939:43=.>86797;33,098932051567>:566.322<8103;?475?46?5:3<39845693596+89?184<4.884331=08:+24:5B086890;4/;:71:5058;470088<61566684<31>3136;323551//3141=3;1:67080339;3:4:6;9973@?5>824-1<4/<88288782/5B<64?4:23F/95953/.98@9493*389447319692998(:326-7;51:8254:6;7612*9148;11:065:76?*;385?60;7492247/08=40>9:;2<;7756<3*4>9/9==7221479?>411?4$'93A5.47410;G8510*8>8/5:4248540/.7280786E84/5N;-3/42;27<23;05;61=2533:;:.3622B;>A50;>9706338A?.8<76/=28817422636=;864562:441>.850;4148=3@6<352:3249.>8?/377488;1064802/952:-1>9?09H+4.1BQ3?852AC872:?/7859.>744566/;37<;,124=193126:::43;.67;8475626/@=4863=9.6G@A9.8547..A3:A=2-265;<.68403:/<5184;9077505>;:4G4-2668<23411600/.135<847;C5,5975:@3<==42442;/3/453025<:8A3;7444119VC94141E70:56:58E48:70<46/I853;A348-/:59045494=>37662146537:8.108.0<5;66684C00763531552435D30=5A7221/281=3;178-14K;72-8:645>-=74918.<<;7??39B3000457;972@619892.07714372+.B:@21=8636624229=?.=7652;954/01<4B762<7<9:11458;35205>-506;8798;386.;9-23140954:3:3C0;/44>B94418:8958@75<;.67288>44<20482:8274326906:D153775/97578?3466531;/658;0435485550<734+-:41/7476586:11>6>6?75K@4004.096635:7A96?6386;4/422H4940:717391:400/H1/3934:3457F9<69>2526675//366439152:;;7;613:67?276318*>+8?<54:458?=.4@;=804/9;=8.7071A670;24F0=(3+4,/;C962368313,63-29967.285<53*1:04;32319=06..2D?434C2<23+77>2556>7?1<0478;51515065:8:;;04-4598886B5204742>7677.+7+AB07H3<8+1033.8307<=87021+1795::21@;2.80,493/8A6989548586D+.,6;;3902>1552,E8A84A?9518658>7/,9,353<496258/542<.92:9>;9@?7,342<45>144;553473705;-;76643587>>0/6990932<:4;542/.@.A4<5:9..<4499)3;:86<722277::246/7305/29C782337194/;6>45@673654:712:.177436.57:698838/:4572C1.04-90497635G1C:.4-<;7:;6603/08/95*/7A@0*5<5B4.2573:2746<@9<73350515>-/6A/56.36/H2C<0869;7GG065:.+/@423=<4463772=296.118?/54:874441-5;.7630G.:08?8*3>3;531:.45B647/389/0/A15A61<1/166;/;-624>/5:/40=719:.80;531JH8492489.>295423;86:3171>8:1016;:519/4,=2437+73::1325-327?@N:14>147;::775:9233.,:846988675047+369273.<<8:N30463.708=08<5224:140?41814=14916;J789988752353)1)41/364483A:7,-3572=473C64?7685;-816226870/-8254:8/486?45=8599.6,-519577A=-60<84188:;>1437<<13=9+60+G:777::11492:;4;*44+;5=;28/6710038//3<<:G7*215:;I.231;6>67651<150:<>55;005G0/640142=/=3<<6745/034@27554(7;7::57?;2/<9959325474=69.:.347F>/6:1?.>76;2=488/663-21;5067?G0/:38>+A15577/?48-(755212565<43>6---03-5777275560:008974260:.2;>37=8.<;9151<4487-49/0603377746:48298?>>13<9B79477/3>4;8@82141@0?5/12;;:526G2,.231.=:32=47.282427=3B.87:CJJ45(48;53.3;5492/143-65:64918;=87=944755=4)1:6418695@:99<83;54@5082468124472/=868;<;.1>3;?9/.614;;5>39:=534.;/64>:05354085178B=529.6.487539:?438.8738:560061>4,B446C30626C;8274<.*8155/23;8=95:97B5/882299.;954846765/67863901=1/983/92>:/2?.1-542<405510D;6;;8838<9C5433:62723>;5/897@2+3>.<86402.$71908:854;9812:=01162F6;>3:;6914>15745463174503774676:7A:9641,;14;7718:8//75<6/.916832331=?82:7949<,309<=>53146<6E.655<3619A7413702<0??5;@16381;7<7646/:790>3<93803,15464<5/669:5:321=0;96/7886E?,586:504<09:25E2@8094/632077?944/0763;06284045432<762235;.7)7?15720/0083732F5334.8:0335=:7141887966D:22:1658728378452363;62.60<;2,;<:<4<12648599735:<5602.58627328:<2572:519037/:<26235<8;6/75;&31731A44A-971,954<4:2?FM.9,7A;06:80G846=824867/943839C4277>-'5<8>890836C4Y:0A37:-86C/225;;8)9//4225L23944=1/883':0/147/?31178;:3,<@463/2E9:6??7C514./0300A1C740@05389=?3/00.566846A:92=:63<1282>:48084822<8357+C59>325:=5;7-=7:6;8437912:742=49;;92750262932<,,<<504<9894;5/5=8+850:509<31290827473:6:?4:0972@43403@1>.9/43=19>.356=96<009:1:;96:31=1.+@4;936691@4@:244:7>589937434;:26/C68.6=::7918<1:97A2K671,;7,:<458;<-15852;409.25415589)5;61=74:96:9405,I03=436;98174,4546/536E6/3A43.B7675653975@7=9)54-57814:358*D6>5=:;/;@93.,,7>863,?@15+B:?=92;5328826;>B17548/:5;7.=44/G43?.43420>65H<8/4425;64@5:53F452D+6-6887?9F(3M.CI.,6832D;0>60416>=<.,0D.,?8:+2;56>:65D.4<>.646:2506/011833+<8;2:868;,>3/9<-26;6:-0345.899897;.81?.52.84==67968:854;5;7862?:>152=7958=5652>3<:;894@/50751>4:5<8+531+56;5;?41+.;-426197306.53:935=56208/4685;725.;;;;1789555@:774/16;23:5552;1:(67:9326/0:884/7>7579791;4;<61/743348.44.9208917;1:4778969;7;27;5;0733/670C(.;0/97854.62=2>B.::51/0:;%;24<2550:6&/76.79<712341E94034>4656,;/21<$64374D;B37444/5=8;-/>:>88AC1<9266550<27:4534?.9>#64.787635<>42@&:<233>1>3437*>;.1@;75<68)/7;443&:A84.2?-J;2D739-4.7>3=::5<28-;7A,3-3434/795;=58/85=06>1785335/8029,:3531520;8*3>3/30180731/9;524BF958>7=H1841+843418145::44=.4<,@,6,5908$4'98582?2/67.4568D54/A2B784<99/3/62/9<701>,.2.;F477=.;;4275:B5.7774D5574+5:762907/5<474166:11./47459:9/?@248:964J3-7.;7649884137.4-959<85E184>394-6@55-7103-;38718?<8898:2:4096931:8274572:35314;6153A@587142/2;61.687830.434122228474868;17;165/0328623686937795;15:3;92>12789.24;;7.9/9-4:6362<48519;8>1388?1<@:<9C85331/KA<641334:0:178+564743924>8<4505/5.3-<:/.53278<25=1:0574666006=229..409560:1'0:D4C59E16OD148.->548-38127AD4:7?66504/198;;=9;6923.44A35768564B9084:A834,>8;5<7<43509-6?31533>436753>4.7/11:40.2263<60262C346108;656381/6237<213.444/143/338=498:61=/7630.18249:16:0/55<42.81714416815:146;7=646328;33;351856;:5E:3;766157:;D15904=8>765/4855>143*78>.40247:+166@656A195/<;412/D=A4>2284:31:4-46@4?0;86.7466=2>-52<:*348529651,5*37204?<84591<2464?52678111810<92154HF9>+9835K9.47.1<956<812:7344:-B:9671DB403.)>29633:094?+6+3333;05/-,0/7(543,*6<361644085826D9555/69/6J-=62,3"I1:-4B&5B.1<*<3E,DE1(4;41%50H12A6;0=6-16G:48548?32@17261225=0F952;:.:*8>44.49;3,55/90305>9C41C:1A?49?85342427B93055:;23E76302?;=6;3<55;728607<354301438446)04:48;99:576747?2409448793<96432;<158489+883131884:6/519.<70.1782555/7:<26.5276.;/257:/4:8;3>71@3692527E57;A4:3533:372626265/1/18;4/-3<7G:547A/>*B46274:551>9298:5697,?45,878?4596394-34895;1/53.87;825664;86:3>5/61/56/:64427+6476859=-97/17925647776@<364-43;24546-;5:3605:3?17.4693790463?596B5;50146/039603/>23;192?57.5>5==93511.1@=673:.1236158918.7/B@72,86?2;5?766A184B4E3:9525793/.09.4D;0:8623=<59-04/A><88/*35:34805<5.;3B73337=42=96573<1/?1147;083;2::.564054=2422=6D<:>37556>/8541C7216682<31:22035B39;5698B80392<3/1;;=98Y36713424?394/;7632-67:2867;;86766851430424S/7;9:76289;.350456158.31542;4/>/3.:420<<8366;350/<.45<150<98;;95>;45343229525O527>46235:)2.3/7739-2+545730305467105348519472>A7:551=;8E424991695:><66.29+0<:6788909985<3215?9648::=11*85>6;4/>23:14980647?46<9871872997858@51715654F46948./=;:6-,.0478248;85-7335;2=43;9/0=87304/8-760>397=6?:2:,;7@14:8<:7E7-..322-4:82<<27B:/794158;8J;73/:D3:487:59B5=4B>78*;18/?6:.4<1=55A5A27<4I41876;33249;*588334?7<5894905M6/A769,1:9-4:4M;->F-44.795C24764<970:32407+445@/7@8==07:55/E88=10951;64?:58<70367:.4.2N-9225?20;79;26330/2<:801;3<6B.6AC2?64132508164965/018;6<)665:2=4==>7297@>;1490:C:458>9/-31?0A6638:044<657=/24==2508744164>4=4/9)856480:22>>24BD919,283;63:42+33:88567=0.9-07159,/87.;396370845653331:K56883502790942>547>A>+770>:7936:8@6249:254.E14?<118>5050:78=0:6636777A0:,68/3B/;>$6/0>27/>A5657@475551512-2=7427594203:/1,063+2988;481BA92<:8A=45347688(5;9<:1?=.:6<71>:;74536663406@@91756A$8;?=7;5/?.64;39.2621-:976816;430305<88?35/2@1=?51>941;56:364/6;;8034/20149:5-.1=59:77+8463345;437597@.5=,451/@;>>072<7<=361348:9--8B752856:66040.7528/158>3;7705:52487/116536<5;80868<.468886;4598E4939444B537F344:;74225.<2322994,8=2,,30154948536;13,/48?111./;5H:76/61E3586@2.=3;2531474><2<1.1;739<<;B.96/,6;7943-66:3:924548186;@5677?;481675274686<=>2562B84;>E589@55506826*-8-9;896637B94663735-516<212088519451:6482><442:A2=A524,8944530D4!951864:;7124:<0826>37=7943<2<945360D;94/367.324.5897149-=88*+=45G7//>?<85;C6A63;55+87>@739663;.;<8476845762,=:7;634-6?/13=,3252.<9<<0?33>6*460F6-;>03=1204<60429/9639527:29338,9775154M7;=0:4@@38(9-<9670175128;B250322:3364425/0;427001/<87:/:0:<4:,52+675:0-50;14>364.48=463;.076624:4A94918.1:,1546952<201:-7?57@986/9/;;+78/5=6;58923=4?848/-:75>1;4@,8246H<049895;5/40;/4B22:3L326,874/=:3::85665349.8345>58127/'135<59-141<1=>830/;65A0496@)<200-4754?912?,:55642.295391455495;B=1G999352;36:314=20>85.842@;>97(+>;@51><4.5/?>5:342>8A96-68/2070240422<=95260787.239245120:14@=.@5:81/46H3849)6=02:7/;;8,8>44<&2:9958,;712=4A<64<0=5D>467-0=47001530<2;506716;5;.4,77;=7B7.0438:039=65/75:7@465:;869;+.7>9622B984;@23832144;05/764174;;763035477/0?0743>2:4.63@626::458.60/616524/545:/><56:138<7V7807<5520;64?@-876B7:?05:.+:?;7:96198323/11<4764>436B,-4:541:74754854682958496=4.<:32923A<243B07,3=6504.535:3=1><06/4>1OB35,04.4/C64=38C36653088830539935+>.B4322518C99=5:2:3773.<@3:F18/?=04269=12;A25-C5029@/B3<4701B;8.8;443).74:<3:7=77,9489274;098904@9736:47.590<538718672;.3<38928<>:44<>'41?;40-(592@54<8;/57/1C89;,965:830>08C42:<47562.0<;73:13..6:6=45726+915.0?,90<@:D@.20<4;37/73560/87.74<8455115:628:;:6452246523;2C776>?75:=5:6230;.0<;<67617<08;84H181845;:;>63530<8<;B8D94=874326970:7182>4G71443;76879087=45;:0,258?56131839967>.2F2C7:73.704695+62379;=244:2>8574B953/34=6?576<7:8;>.,5=5810B65/:=6+840322/42/:52814733D7<459::C5>16;<5>?-98>5562>?94:76;49?;456735520208:805302525=<6348?05:;761?5<42944;26612=3>4:/8<5D449-/59:760;5:6/3443598654171<-46>=8:9)9595@:H54033429-2/14238:92177994<970<,:5>9C26437733283:8>>202<-6,4486-/7;3395/695F8426574395:2975.@69>:577890FA/<73;4492<718:2067661/22251:365A>>BJ-:746<6,31554608.44:76;=2556;63428092+26:59:=0:7H6H12-/.3;35=2:;863>945241?4-@367:0<06556<5=8>:7,25266;58>06539477./49837670A31;@31:74<671=6:4<798.73;-6D12;612:>7,7924*7-17900=4:95A315=75/3/7@,>764410<4;87:8./83@33361:?;62739626333533413/44>1674144614;2':4243,-060;775,>72/:;A382/023?=O7285756=8A3;26:952>+:4+06.68627:2691:4>47925<:/3.19;35*.35,'2A5.,88:C'>;13;=06+53743547>B8,158@2574638A@<718407;D:6<570;-+>+09430>4/97974:5*8=5253+)=03.1;::4.375(-353*8*>,8/.+2):34.0+5:9.=343=583147:7?0/2:47/38C/0;493:/9D325140:436@513=3>6555<7=:;3-38=:;80:/96;678;464648=085E=67E4353;9<344<;51B93<8-92B;/96?.9-9>(027.'>*<6=34753><.3<18530+:30/9227/-3518?4>1333792=81476550<8=13.6<4:>>;2322=1.2=1I<30<49:281/779=8-67:@.67739.87/9<338951<9>O3823695289:665<474>+3A?7400;=AJ2>-740<8:862453283;484876275493128736$:'.63831939:6*5.18-9@5=03613:9<3A=:-=500?<9:=*<287<9159(-82:155348+>-964.27-?064;5:220;4A/7:7.,43.206;9;3512-(4/-;8;%4=:45717;8:0*,0992617-140>4?516<245:7>49060*70.<.5,934B>6G*65*--1,.*<:0;7.845,/<.<4/12:1;2205839..3?47:5-;9858>94591/(24329880310038,/:4229586<2;14628383>@62931B7:6:82418F58:)00.34.;3509>8;;-5;).4<<+45583-453<920/3<7:4J6::674;9@F3.23-:19<27=579/9324%.:562;2=97.98,;73:9;7/;:5>47366582<:@5?:?'<.<;5907>:05;95;1*+1540+562;:94=;?58183973>435<5@3087?*49.8-664+062:-:34659,75@:007/51<5011?89,8>C=6:9>5164<>464/25651-1<6:/@5>5?528870:5.35:8598=L,+93/60H44017547,817254=20,-74<;75477942776?:6/22424?;59+9:144:853628862172434A54822478.1564365.6744>8:773/34.7241.;483C7473589>5A6/48561?3?=24/2/4.68>7427415/66*;(3C27856-16<77615:1<+2;>:;060259037C8344.509<56846.6;I:0.66)05;3.241<316>7.6574>?914,.:7751565453/99541168683=96@6=38400:452.34>C043276:=78>451537-2>I615.488=904D732171159.5;17/G-757<7=3>351A::5007?7/:71648658?8933;9*085635>6G68266815.488:526M0A064B345<74<).9;/:7<0>BA<598/+<=+/47::8:;948/A:;1175@9506181581.;95338366441;:367371B4<6@3760@76396:1467:2478?65=73/06576/.;<774316:6604/25:87.579:1327415749-56/7459595-=992522/864A45-=.5;@86/00=28>81-9<77:62:;66+55:/9059232.>7/671;425?/:9473795>3:36<8:/3<=:953/14523643955557(=:7?76;97<66:560;973861*21.J<*825851B34:64:8/7961,>A:03>.C6>12:4596,3.7;-4;74,91?A775@1>6-8O:k8?/.4<15/178,361390766:,;<7<3:754H4=44/.=74257=?5,534:5545912446;514==,24311407133988<72237928:111E53,55A99/.5/15.5514892>9654,1659349-65;8/*46445<3=238./735187688405:6+5565?9587>4514:5245;;20C10.:7052-06;176951277.25>25.:172/=286+064;757777.3@/51@28@=4/:73/5@8+,8:7645A64;:1480/30:9*:9<6C6=.3E6,800>B)547,/;8-.8A3F;3-78?3=07=65,4.6@>24J550<7315;F950)9+/6.17;61>4:47:1;A*B+0+67;2<015267706184.17/;3?3?002<.37;51(:60><=631*5:2473/;24+41,&@542968P:J87+324>>394L0(72+7<71-51:=5/0:/8.8:><384+/;7051480<41<3342;60?:-<:6.2<>>1496/.<97(2/;.8:0;25/925/F796777<28154949@<9239059;<1499;':31>5;7:39+=3332643:5+3:248.846?8566=43?5/99<65,C7-.:6?:4>74<6@4*245/437B&464462>/32@1064=F282<38-6876-4542>6:09;:.:54<=94>;1'3<,0=4<96;?-&*<6-B<;948,40=155(@?;04;952C8/3'30*7959:=195164;99300;3F0683?157@947.4;>?7:9:2A04486926;23BA/447A1-)6+0;G< 53R@8/A;4=3,:8->.06?5(==37=8%85;553?<02655402147<576;>?66=27A;44%68:87<695C275448/394638<,2:;,76=<7;9-69B:3238-<172620:76A5.4;-9>?325527?4A6+=840=6354643)2A87670::15959:4=<485956;2678*5+5--/75;F569-29;<3)99,&7.6:<:27948131A51/5-?07@0;:946307-8;6=A757751:6*626832/6=416;366=;;36149?5,445?0@471/680/H2,3:2A4:93/25174/?6/2.D1650:/:.1272<+7195:86;63&N:41/8.02..56455B=63565<;9B2054/:=43.5+M/-56168=785988770)6705:11?63<3:?95/126.:84=<<04;25784;5352088587*,06A:/5>91D8(884828566.9585;6,+65=5>386<699*:393<-/-1>071.:921D172:>0?845405?;168595<3-:>0023;<567167:295;66B.:2710>/333;0<=6420888@693;8888)9420543<816645:6:41;3:6==425<<388.6-<5)5.4.<>4?6:.5/8505/<5.;464?4;:;1;;.2<46=<8B604367.67<954883?7<4475:;38(/@.:=:875679:535153;364;12,56*41986:46836;91=3<04/7:*D3769;:4/6)50,8+=1294D94.84200:89.:63;5277801825>1790537@4?=443:7694/@77:22<95=4':902751915/A/13;:49>546..96:=737:5+8<6<275<807,85>8;5;44;748;82437>5864556=>:;7783:5?3/1447<;<582<774-9<771:49529526=0=54896<5568752=244:13;1>8?->>37?16:;.=3,:5289=7,184;6474;;6414,7<32;37:8@0253?952<7507,41A<8<577557+453=:62:479<9=:80;6<7;>67060=?1617<901482:68;258>045@065B3+77/88<:332/:689835=B84;@.<653),5460:32974927:9/9?>0:.2<2669,29+56D64597772:<6151;:4-;<5=:38/<.:03>2356/05327<123:68>:56D=:3?.64>87.148,9H@464572/56/2>34265:54;4246;4=1:1,7:;6.(:7/)3;A1/6*3;7573=/85915.70653A9@50:86:5175:594477867:6(349A89D)?B3=9384:88/<43H68328A-A=<98743@5012J>4=262:06/4:6242751,6365617<:53822G<933691610=?45+85411/75386272-683D4?;38448>1.?<8988.684.8<1/9?249#5A>797254:;4235//624<4.=<;2523:21087225<49@6471B0/9756258577915/:7555472:386;5:3:A1592;13;2=92/<,8244<91/4:>429=7-6718;8:2)16@:9:/=-8;8%=:25;)7$:55:5585,88?2<625:/=/.2;"/55<2.*8499D94>/6752:*,=/408646.3:1;77;'1;17295478?9>;3294,9:9D124435:13=/78@93,27.366:;55-2>5436/39.7256:670;567144=:1C;.989;A16/:060:.>67:<7-215:69346;D8;8>0365<0:1/68:34166G:3716:;5@7=980=8132.9>91;=3:615257:78-/:251/.<-8B1;065)*8-;0:5+951><:?179+316/:7:5709:+98?;747873;3@;://6337438/:277?18/75819:5269*/020;?987,5691:64,<434:272565+8;-+8.67?76-78<8:3535>6=12774*-6=2:8B:;686/:37:3@9/64432638687H12?8248:?38-180/>860;5A-?,/<9:2798:48;3:479774546<13162393:=74<88<5961.A71=45<.38749372:<<822;1?876/538591.276-210566;<57:55454:39<1349365>/94@6;86+72074:-;;506A4-75;616,7;35475K49375547.//47393/722098540=192922627+,873:295:?4:83<+85/655854893;4;667739677415;7/70766842-3:8A46=451:5:798:<838@774:7536000;/355/21A78694:2:5431A-=A;59631/94988:6465?86735378@5;673/56255+E;5<20393843/766?/+,*376098<5>./812156=216<724256735:6347647@299/<:054938581:94=2217<0388587893376575>I8:39/0<+75415.;5663<79247386*897&11=,A09:729G4;/4E46D94831:.7796>6884164)875.9-4)06067=;3165.4638>2,5239711398/=84/::5B7.44;2.556405/56AA91<291=688=./=701346:8H7.336841313/4;/847828>.491<=484<9*4=/79.-<(-8,D26865?/8448;5:0360;3-21849:4;B852121=+=1,?;2390.52582G22@@882:7:-A-?;-<8:66509:*?86>3-=4;18>0-493<;56:/;8=22712.0127;4?=7:@8.8201055?7--:40943;G866;2631733385320@8488=5/+;5649:8;702961*1:8/409:386+:77123-<89*4-0.8A:37;48<,;;,96/6:.67:>656;+87647:3>21265@78C.:4+35;0/66;4<::3419/476E;.+>3666.7.0:K*535,4697=DHC834?<51-;"97/=5473;0044E76=3353128;817.9::8=3<4-947=><0:<5:635:7)669?@/BE8;40347766=$13>2495,78742853:488526;1-247=07-285754:?52:574+82:,.:0E;77295351:2*3.8B94-4768449.995;268<64446:5C981089>7<70*887<4694:503.A9848?972+2=9<>74683:52.<3;.9.-@847926=*::4=66;>:)97'=;:;6;8A52242689779/;797<<00;)55167969.2:54;93=/1062/;F595/(B3932:67968B>0;;00704/86;8767516><75492;79A52948597>=0-467B<;542.27;743:.E7E9B60'288.6.6D4/))=22>3766;;=7268:1457A6.5E778?47;6C>C<:3527!653042864<1856;+2;3957;31>388553:><95=884:@25:0265387;@9=96746:0-9B4:751::7=772<514=:??>4-:1456;6;4.36<872;<95645=0871?9267`==;A9,917A5926383>=:=768<>::296=:/878?2:3513;=9<979436676/8?9=872'4@4264;=@7:A=690393+8:248;091069/>A2,51:@F<>/.684@21@4323:256:4:47177>90?;2810>767/512,644#,<499235475-57378:8>;1311+:58<:072,;>1/2:39/@287/-60D0/<4B4B3,584:377:5915=.=K41316860@04D>=33B07,0=<;42161;/<52253:36;7A:/=-5:136057;548/2:A;09<>57A;7228815:2.3/?98)916812764556M5:1;C1--/14E,2+37<4?2;7<92:933=78=4659232@21398-;A+54M6C,:86946273*C7?=81;2*8854.6-17813958?5893<=-5;36,+?05804:60;577089991843<176<0.45609@39590669:<6*3+<;=812:3-G23>450/:64C;:33;1:5:)3?,7?=<;35/6712>,843564*61/632A;A824160768<42.6:8:66:.4694602:.@6::66;8532398/>27C28C,26>:71028,6.;57+:873>?9:1B40558/4711=1?:7772:51(F/08'>>0B<$9+0:4G2/8@G7,561E-8<8/C<3;B=92=>B*388A@?//8E@+E@2129+60*(3@4)/:8M4787@@04?676;667342>5.6218836=841227098.;0163@8.;6233*+:41=@17875798+78:04::0=-445/7410731<38-4<363936=<9,213;;6120;8<167520/<0=104<3;7:8.9123?656C952@38297/558//6165?:=.=723>7953:/54:62586524//15.7;;:443835/54377305829276+6;37G703228/47174;7<3;6/4;3>;488<07360;98663254?9727493;@<56.>49A88673<;8938%-6<962:4852:.391>40$0//5@<6;::4710729<=8/504<64-65;/24-<55967432:9D71:863333/767>@;6592855592<7.48573755839::62/925B8B3254442235;=5603>415-7=67=7;=@3:92>6>1378>;73554986473744+2886:@66=835/2?946465445/.:7/433@6872335.4;:::7/912584/1/463218271634:3=,/858.7580772451545554551593385:!01+339/4547669:7972/>942G817<34=77/2291216:4559846/22+3618/488'663<837?19>:79195648+1D61453>3.92734;0:859/646734//45441/6;9742933;32<9;36:918>50=4.:678531855216=25513<<64575>/6<39727;3485T@5<5A31=?:;:5,,<@1654/.8>957935;8:7527>0433316;?4>486>6;19=042573184>15<5,6=89>;34:6:-:59450482<2582396/I2A46:58,?8383,5=9=5245.;;71.8:029<89<>9.=37:;558:<687999246785;;2?4:69.2B42513;2<725021539242.3:6677.475.0458.-3K1/29.A037940384344975295A5137:5357345654384?576385:51488767:;7<;43/.947:6>9;275:;155472;6632;&6;948S/59825=88182484473;7/3>1;9845>2:95C:266C9<55046:6156?C:256452>25;58//0277:40,533439288577:4<77?@4;:1638E6:8193438:59A8>40=06F1937*829370@;9<-;=86?A::41.8663?24=3-6-044>D;8=7@761>85627>4:22?/6765<./7;34784575:D5<4>25608/:-199798,.:2089:67<619558773<:8-5?<1659.676/900?12627315?5;@747873>4:4:6:88627=:7:4:,3664;346.:/-0.;8692;9286523;.8>178;/<0<69;46374<22E568A5;0104*+8<6:3?3::4;03;/9683914@13;7641>=2066::027<0436;592+:076198,5/7657:43<789-65562275;15D8F<<:58637;,67599,6-B06<)2:;117-7>13792:12>8<347.26@:596019=/<1B07256840356;(67A4/3;66H;=./*/7-95::9207'3>9030.465;=/604:-293:47?.:B4,257/2:456584842<8<+914A67;@78<:A3<21587444116+6/:/:-:6*36@2-1525927>447::;318/83,84B33654@8/A;*:>264814=:4>5926958-.36400=0:6@7366//932"51-/-/32699;;4.6557.:34=79,47.2;9=547=<.9A53;.6<61671;.157.310:4:<449626.9;:2:*688644692828<05840,4,0<69:=<:5/1/<0:,42620;:6549/A58.-A6739<3=40-315381403:591?7=9932=4656@;877061;;4785405+43<94:3<2624C.50454:180>5;732=96367243.?65416A007>108784366739840903565:;26:4;339;558384=443387.7203362378253>768>29839271577:448.15-.;350=10?.3843/>@/9,-0/63.1)+1771<5170:6/54--662.2224918012<00:72047:5=75341630127:3:=17-1@8:5*477/7'--276+3-*.2-+.90>1+..5200364483023*)258.548(/0/5074(56:3?1,4469.268478=;,:48<;+51436.4+2/.7/2S=329,/1@38-=:8.61=92<27/.2*<;06342809>4.3/3<7:650/7*33784/>816(017=527E907134<452A06-4/&@4<3>37:87192,B4<9A19E3,<4.30981029835:*.51;74948996.:545B1D40B5>:189,=77=A=16/7(5>,+1*79:,/7497:?1<+6462;@79?=?/8228/;1201;.B5@280=25/<;856,0<56.4=<1;034;4;1=170=7:2713<8859:0=90606381.38.9982<183-4349+2?;AA5*0,493233566:550073;;9-8:716:;1;:<576;1674848:48@0834619>=E:5:84=70@0C44:B841235*;0:50:59/<4042+6?>7:7)222=522/'227B7@9:=613223,07:/.:5?:=84.84=9/<>?8/6<70729/;8-66545470.94=/9-3;5:/6B<$57-5D70C258)3;C4)<0.748.<44@<3B6543A3.&8<3389/,6?0(<6<8@4)AH43-6C559867175:.1851/3E0)A;54A5=E86:976;@1*=3,A45<:11*J>;07:4B1-/9484<673A742*1<554;87;3@C5B889244@5A175994K7*9/4;8-@53-42'7,85-2A-@+32<0C'84684F@/4,62+45/-1.578;:2C-@.<5':2+7F555J,462:;1677675-/7BD>62>8%061-;2*17=66751895436552-@0347G;875@A75@:58;17.;4:6F;0739=3@7;5?+322/3<7>4972?75/;56242><1)43826115;613575230;042;89685996+722;7,453264<>656;:656=9/1)399:<38/?5/4826:1819@3296218:5876482;34@?6-0<57.76+I6/4777>8-5<>+=82/:317;55=742<9B65A<42:823?09:87.,2;/8458672<5).>8-56.310935:2/6648@12753<09.77833"7?B7;91>252*;3C282.323<91<584220>,-1;69=4320-.1D6+08:09455>8394C9=<19474*31<6747;>23<5.144:46.;1-3268=3,3:>596:/398+A8<28=754517716006C02;/4<21;0954858536;<-57->4;792+5:?@364562.>9,:@2>14A3.2A570:;75.4:.89,?62213:6<-72@39?.39)46:624314,6.35:8/8?/C05;84@?<8954;97:425:4<'67>82;8.*3>6::'79<92//7-3=97706444825<-8>52<=B=/??7B/:79:6290.C15/355>1-8>:70+4/;96646<;05512@:C8-61792?<280(5-?3016=.5@2294;39=484C5:08,4597.448D1>34C782/8919669/9K410B::(7H2/44:193-7726@684?6-.78:?5263-94:3770=3559337/2179.38<=56:/40464;A/2?422663.7;67228.=>507I7844943925697:<000731:638567364.47>71292*@9332825+57785/436?61;50591<-11768;2;0A08982826688.9<755B556=.-78:9;5(2913(76:73/:=6@35-33K0/8<=7>74-;571,::58346731071/+499553;39,;14>126--327<6484175644:5/955><;7=1143795474:5+3;7=452.;828/C157225491.H0478/9695D4:9<49?7;:9.;D:03NE;;.:<9<24=5812;720588;./,1=83?7;;062;5=83;@;/5-897/#94429<1G8S64/(9845I*&3462,81-@,@=951;287Q38318N>05D>43A62?7;/53B:488,:4*40?0:?/49252636$72/8>90-92:;4-=;5+,6;:5423/>83535:4A896>6696=5&23:54941/7?3681*:9>80:11=753;488=8577173A@;61+422/.96:771;311;94@:6:62D4=-8=;91/4>A166035.+97+61:;1912874;05925,=3:7>59/37;5=6927<.;42>9-8659M7:;433962.3,892447;?@;2769076-58525.:31/4E-@5.655:0>@6;706=069469139944;A197-.279<:461562;928;62@D179507:6.57725677:89;8250,7308:693?488:26546.8A;1=6;8+;5>329C1413=8=4635<614944535372<1?56152794474;1805?145073>:682<>7<76223:5>2388?:7509;?C:95983919344557369.43/=449066A6662295>808-94.486029557;43A46:7444824.:01::>8281230.4?3<9:452365/092<877A9?7=72/14@53621583:995)4631937956<419)<5311878:336;506465.135:13784/394;9:66532:3;85318625053;=3<0:433:4/2769,6750/546>3;68-4<4642938479688-59=23;,6=1695E2;6;085734-45=:4948B:65-:;2881;=;4R82687193/63A;60@:5:16=@1,25765913//=;/8520.5348689:659337A12395044.4>34=04.34;0>395186=CC5?74:5;;26992753733/=2436460498>8<-6:67=:638553054944008;6=96-05026:78*/38545/69387<5'91585585/?76783>437:0/9>65=4632547672266382875/752--6=.14:459D357535/3=022/949805*62B<183=6433:6461:;-B198647,;:8:84831;<0:;90179719909223289::54:438488638865J=8561601,<.860:;<755148/62:18@5<105246A6705)977?007//3465;5-553:5-6-3-73)41598318B792675352=415A47:<)845/8434B;8186.1;97317064/54=276193321626140B><;297>451?22,85905654.17860?/8+40H43><70238962A.1-8657592/42;3441=6>=49@2:5453-61/7;5747557=6490@83439<859;68487;6:;5,772?454<=581275@/:72329<:846595:5B/8;5261985B,62/=24;0:<.6=7:8-528893>802769@:4.54525264931542294;6/4@1?956162514<9778::174>/80<73298:7;8786222.4.::9:6;-8548133528;4:849562916>4;345722/66579794:34:44<154787686=69<65:3>;7509H:7648457805398123643548A464;:438;7@3363281=6626677578821415426:1;7752074646:897633634187454835532762339653C7673550.32=238/389935:88569572:8=565:65;766?091998;>2337;132569.<7045333426;99::4.7514:5B2486717304506364/64?26533::9A7893791>33>.0/06247575:56598583G928?7764=72:;919784<;2:/69-8:26951228429=1788.:6418988777:34@2?7:241//9173::06667+/A/8356-662166<>252:G13;0;<;04483@;::>:/126780@43098:945<5449:.570:D6J13356366+98=7B435942.69C[A2349482@@44?;.37544;27@73.8@833;3.C:5654-7B.462195?7<293-:+6;4<8:476462.<5/9:6780/>9187B8456152=52787>:;7.3-63<68600=3.6<0771982493263866=83@2;7682.45321:223380406=7:>714@?60421452739,@:>/8:.80;7E596982667557:4:51822.83431046729764)9947389,55-18=912039238;48;4979>4115657:70262:84>38:=37=56931;7<37*8.5:>;)<-26*4<<<7/-1354:;4=238733>117734/4421;=508./3>8.7419367195,38566851D4;?0356390(/2862<;34>0-<34G3866>24:9:63462,::29=03555=7976:552=74<07<47=6=@6618/194828815:607472:75341776673,7-@49599164449@3524<632378;?+>3317:609/91480-@2:345=@8=65686/2845;8185-46/57::86@@:9;:17:=.>614092481:;241?786.6:6)2:9:6.0565309;9056636;;389-36634::/=973:387566>-@64*09;:7641/82;936;963/5>4:<66?44464:4005<76:;323_33:4783008404759:977545160572-5B22;3552E4.=38683244:83=7=3=94>1;60494<6304;188@-<@8724464>><355::::9:366;754575726G23-:8596387/725;762;448-..51:<73::>67;29:36-838@4990<684537492:/:97426841:085/4=<<1668445496+1306967=1:36575=5378;5501-<4274;=?6270:5343:613:4182=:9971<37;76=.79<5>88216@46:566814:842;587A7534<=5:=1523>;;5(:5:3144/3208<>06936<29645749=6940=/=65249336240/7551;=346>648049:128626437530@5J+7;33418670/5385822<15-,87377?95675/44:0>99;*5361797:04/.<=3588;2809;3582-031.474-4=2*@02>.4563+15:243<=/-35/3.11+254409A72.;512-368/?..45246/14)71/5<46(>&496B481,=27:47/136794/63/1/-28,548*50;@<546;95461B05A7/4050602+516;6;363.-153+7125/=7994524?-2784165926:6.6/8477817,3?0253B23507?:9;9228447/3636<960/0695-316.62>@>44-3806774065-533>-9150/532.>4;7-75,50842:016*6)/8A3659:5G17=?+2:135:87;552;/3C78:.100508/896;H/-9572?3?25,05;9758222?6646/573.9462:/26368,3569/*475.4-:97;82937758<8*/.3/2)213=/18.5319<8>153864934,.5*9.589A73:>35;263,/0B9.958:7-52;2.92:77254275*61422:16+;275530609724743//6:912:86207566,74;628336505358;2:609;9062>03?56698:587<6498<34:3?/0645<3595:76+579/001075,5=165786/9097.7A<55356;5617:3<20427:<9-0=12.<08716-96759=25A/597:-42433/3;978:9;27./177416:266/8<6::915379/79.?572:1174:501421922:5745/2*750;63@<=5/:.96213B7/;5=74,36373-5/9184129A07=54557082@17+4;0<9=92=93548A67461;66<7769347-;85>;1.567.4:18<23B3652849.;83685/7/=8134766B85936:;92>;/3:/:,5467;9<;:7246<0/6178;5372:76>6/7863;36667277114A44836:77=6<,8345?1;4:@:154:56B738375:;;299,9<51726-1>@554655;4>8>780688>8>48-A2>=4-335A=3:6/71996961874/6234<31:58812>34495:38:063:/89420:67/9B<2>=445:64=8886865=8*8433:3/869634/A7156<145-=44/54/376;1362<7?83603A64:<:65.2254:08;659935*>=548.5:9=35656154561/324219;69:747656>657.7784/672<;;3@;2=:932654419452;84643/5435.4753;8242737-;59:-=;4A23:2276557A6313>569/=/585/33>+:51;;<7515@:1<17?517;955421/>05?175847>6634838314/6<95-32669/=9-763567<9324924/08190/48:59;:4//0205>12?@44;9;0;8.>41294;7=:4<622510><<4950,,;1<35457147=;75:0405=87>10/?5/-54369659726649792787.58;683=/5,<5:0>7;4725;844=5=752369158683:68:342-5336E8;66<=3745:79:55524<38844;9057=36:9695154875316884851>6:/23-38738/;4/1786916327=203056;846;4::/>93:8C=6333903448:,34979<27=5<74.983A./;425:.4;5>-4;;9=78471:8:8088=806=<975:!23;5558066;<0:2:90:54/47>7/4<<47A1>2656734,5692;6143/719;6456711576:6:-76;5;382;/786B/73;8986<0/<;4/A68+384>587388?+3169612221,-5<4;37<6.672/44988A:/9<577:36-01<<53783@-,8836/>10361777+91?812,18=0?:9668633837-1;47<024387:I9/6456067809:*46852676:/768:48613153::7->82=;7;7464473-59555657877085386/53+457?00+850;21564-346/1359/56.7;8,.8:5529;1-5:16/39-?541470<37<45735=@5394=<578.:8;186<66=<4583>576276/=/48678)>-=-2;62762022196174975@935<35:;>/86:+/:45D/14177184?6::22828>7:?502024/;5/74274108:<05<18277@<1<6898085<:9:7167.-4:61>;5/97C35975=,49693<:;2F:897;=2.581.67266;3?/7=012>/32=31542.3277A54<44-6186583515/378.06:1G21=9695B35C8:50;71/0423148297>2-33573870.952495191=-43?55669=2M23:=5>*;99-168672/26;53822868531:+/9?;?07>2;3953//6366Q18;.<5/;1275)8<<<1=38:=1224<:<4199/8532+B54D9:95858985792623-591656655873?/56:5457042/4;5?39>02;34;59/;>773713/43030-793=+954989-764@978,326=0869>.23<9::32C1755:5474?0;3260/?5016669;5689471854;978<254,<<4:7/74,4761:47<1:192-58972422+55;6:;99143;9.62=0738>.4:;59874;3:)76/5<1:2/23:31=73609.55=2933/4//6;68=;96<7644,8@<54C?4568;>1-6817545//0659871/71:22/3/093<5<7:33=8/87006?44:/81188422572.4680179=1-171@96@39639.2+11642<2:=969561B-<7003666394:435B8(-455//81B?1-060668520<190:4;1;:5357=897983/:?6838?;5354?41;89:555633A779<8837;71186763;22;<866*964=3:742./28148505=74G67166029-16/34<81;48-7360<14<>8L69;:12=80:-70/830A6683779>,70688856;58587554/B5<68,28<44027?;556&==:>696334903233579134666340:759'5959E>99/,5;5&78>:=4686632-8668156,=:48./57;54B145B>;8:467,A353-<05;>,82-76B22:7.4623:-457:95;?.3/1501B=1C.0902?1835198552=44545692=159<7851;3393627,6344>-;41?=84.40<248<42/24(?284373>88061/<-158C433153487368:86925/.5=>7727642:6<9002289242298;44,7.9838460645<6289;=<6=550091C64;84/8/762/.0826:;-15635;4/21641730361557?:44:1:4844/82:4,982435435@65963193572/644740/512330<603E15;387389;59?./5780;6929:8?16:11186:;4897465>/B3697077:4.1=76:52-6=867<5337:974>3?34??7;343867<938=45<4A88:9/5336816303585467489497375337;536656.8+350266>2::/51650337:)151;4.06-7-26=;158718:;22504.2>>111==6;28/994074/18:9/-1><510=98<-19<8427>/6<91:837:571752-:45*5=4.492345512760=>744220:72/:7+43-446+/92766275.*44<6,;82:9:53894=8,>472:642C34<56/5A:1557::622;/6-4665<=64774;4/5:.4.57:;4;65:6511299J84753921465-1331849<722;3=>=46E.-5/7==5475986-;//.932A3:/342701:->1645?03;3485:884456=::5001155:43807.1:282932326.73543985634132-8=624:02773954:9727/0:94*<693:<56/365848<8612/1=345@8:379;3291+50977>7/<56==2/84762F8:38?388;/857667:8104=37724.2/36982427463-005=8;612<,347970514884-062313096@/;17903.6=6-22245+395I672:=<43/3624A7<7?4941395;72622:<0482693@?72367,80+4@,B5;-557.4859/29942658>:>>7/60+048;8/88957053A50+69786;<83148:3<257718:;:<;457/4541546625:648305;<913?34,;481744<73;,:425/67<591016?31=99;8005822>:,,:267:=9822745215B6754682:9743(29.387'-172546@7@*?35:62?567776393:75=92772021=9=751=52226174-9=5529?:26;94:;5653*2514787,@1/65969/10/25533;6172972?281LF908+5,3537>?486.;4::?8.57606/7307>3:>94<3;*@77395:398;5566=23>4:,B<6.7329/40-0211-41;836@2.3?;18-9:6/:870B;82874:5;9119245./875.1<,1420566<0;5<258,/438:42:6:>/2;55A99(7A8687:5:3684=24)05;16837292-;:99<72=588<:17:17=68-04/353253?/:6;2;=501335738475=649>366960:6/1;@5181405?767486702024776.357640>172F:><:>:7<33492549/7L94>7993?6;3911-==44=;4D<8993455F536-9555<>/72196554..:75537/A;9894733/<9742.2702>604378/.34;2105;539H96:40-@:0,5/48>;/642918646/6585<22999B52;;06;7/8=956<4578C/0=67.;/4;7;9<801;1:956:4=A41131240:692215742=<-D-:66;48/6=5B9>>/.5<<366+28A6525838.579+68<353:?722:+729/,492396?246792284.:<8;143038725240B./4:78036;<75162445645:,637@:C/5/1097263?71706947E8073490:=3:/62;6156599565@94124521488386<:8<87286;858/53995054.:B8367<0;A6988242;9633<736-;031C23;4;0.910:36735/71.27,<7,;9==+(;:;023:3913474+;4;9?97=4-9.3::3392:/3:55-0651-7;23/<90209,21;74387+5874/<275<;19/B:3029734/9;//662937164/>/13:-?7?74<592=/;654D-7/1602:13732914>2+302>0?9727<768587<82=<32@8:5G1346129)56<0:.68:,23-,?/7.3A65002+.0,6:1;07/1,968.4,0<.9061864-.3022:77/2<962=0/<4/:;725234977266@@74>74;97<;;3-90:823078.73:38;94:63:41(940=<3:-4017/7/2/4545240?:63>*6850(=7;A1583/.838/1633;34A3022<58<255;3/73//553352=832:0.:56<3?579447?0.=:;:4>2/031=75459/800/=56030839=96656834/456923752474420/212/174/3>8254204146974<279825:26B57?6336646264,1<;6817>57<0423;4702>4/5:15747145427,84?1+1,12?03309665123<=1:/386855:2.37.741:16;33H1/40;-2>.56/444690+4062973/95A/1360041295:3/;?504@;993/936-59+;6/844/-97631389/1714/70<53332A:<1424587.06;;B4580563721021-77:6@<17<2032-36;424.0642;277>6969<739791594538:<622466=8<8.<465477:54325?86.04<58:46877<08:=36:656-747514:575.8?63>7;84909:394496;59475<3/2/81416892736850-77;=157<4.7547370:80096939978546/=548.468647;-84966348/8355.6:4<568-038879462;664,515699:49/5114.5.?6603.9/51:8<:74:5/2A6<=73,0:637<28915831=78.9/025=547:/98674/96800>=5124C573404167B06;32534788,90?26<8713.8550*/411;82353@>8582A61347878;:A11/80:03/442048=481418-4496253395>124187>4827>.74804485414B;4/.58>9/8;D4:2:30:8:.?.2<:06;518*6820948336:4/7374074:426>74-1357.:;819:/)=52<=22=517;6825302>37;5;98734?7>59-2469302/55<90.968/6/77:7:95566;<544;?7559//55337272:0/:763510D749726:.;6>51<2/@5<5-41;/416850630A9.B:69A55:57F:412>392181>?;/A:823933=9:3621<54>C;4/7315540568/1<4;968;<9./37496:495*/065:<683>6/154546-383778F38663246974E2:-63>89298<04:519633;;41/975815/644@53.*:879:6>345613=?913;80/74E=330325;55/>36:B74/5>87-A916<@;06/>::12B03+55653806/6389<87?196974;55.<419;6634:-68=247@285=3=2,C3.954204.354/1:2748961977/-3983449846<080>8?85/13/875*2.:71<<3<606=<9;52270;32:164/38084881<43840865=88/B350;7<6270@6/02AC1:*9/6034,247064:46/986;;2=3.7;821666538/C16:35.46088.25.8*56,4175.60590;76<44)75-593,;87.D<124447;>60:7/35:149940724407-4124937082393=>71<7:45<53523923:14.6<1305833598<=<18/5461;-052584335/=6<4687>/77457094076D72<3-423=76015445682:-=9631/7533598186<=67/255284./6:;5=46=C)7?;61;57?-81;785:464?600/42498?1?0;:15680/896-53:;:243343.1512961:765.<:45270036967781>09=;3696;76177-47*55?3808<<6+;6/11/96<=3+8>9:8/7C;:7@9?98<4113063.11648/3;56:7488*:04C585<04963;9099=5-;8.69424:;:>/-35>;17/46430-/7??5;3;7:4B7@>940;5?,5(6<349;1>;<0=478:8222372F27/3644425841=5;7(=F39887136138-=C53223:03;20355042=20,9*745816;52<13;5391.4+197299.546654:=>:/5558<=6858659354?919152817:60.48/-16518567?=0694;85665<4196431275327:25<,89685949:744>207.0;:.4182652;12-8:.8226324/<03<6/9692/2/785266781453=.82:01A/639451.42438-2808771044772.47766078/.:;=9812596614.>4218;=96872-8<>544;80-3:108126@42428?;43515<1<7//;,::7:368/0<15394<232>352/<866=7.94531591117040>29302675565?15151A9438242;857/522:715::486984;<69/9:62506;0:1487/4;:545:;<10:8>362<0:A56>1273723;;1859648B2@@099:1A49?21;67:5A?47+,4:>3<9089;4459683=:12<34=535425D26=173?6:2005?93984/85=48077=::467.8467=311.;10=2:78777:18D129545:6835>1@489,3<..=B96843/8/2:9:3:@.613=54206661<220318154N675>01<628-376753586/8=78C46C971:@=<5:0958597;;/14/4.:447761253<360;462:98502364:1341;3108:5842+358>/009/5>72775-9(67091295R1548896:?401<995253B>9557975:>6215506544418:3=5/387305458<2211=430;84:/73/6:<28<614542234F41=4=16;66;3=2;7.0758.;4<738078606;,352/38899:51;?<5:?1;96;45>67571377907397/749=11<164418901139;688.22.167<076/1648611407667<5078:45318639?33511/6618935>7094<73742:/1/+94923:93@0;<9537,3/6951677;157>10=967@17926552566,6;?3646259;4.23?6<001;7159;98<61481A@470:35<121G77777::2495A5677;=60-=>48220817-73==:2:575C0:61<.60/847:6128@606137,34722.=76600<91327992530.5412530:76<3-4423:4647777:<989=/:=,0553/08576=368.04774;>2>2/<-@88:90569=<75;-64;.487/2493=2:55355.9<823<074:7<12496;:037554474481805442221;8-7124714:@63>5:=4:;73578<(3;:.77A?-3./9:C32007.-083;31966.25E4:3/,;:9,;<2/66797/,;533;85?2/67F;3:572934;33=377.4?361:9??.5423B>;@.85=65.4.1;G:066754<,896:78B337<=9231918182C4945=:/3;9.?:988070677,?;:32:8369817:;501296572099A08C17,-?D2<8509B8.1?C3967H-;9/;649.4484:23>5=4>3/2566;61<-2567:326121<>5791E8,8A=<=/495632@2=<78/7747:7<26.762:12549:48;429A370K75;566>7:528920/3/766226=D9.4;97?>59>9;911;-4<7.=?>;771<<.13-23329267734A@5532823;364@178<6:637496486426*7.654144?98:4:689065663:=4789.736207196E@1352545<6598;24/932;78:4387:14677125316745F84;3<5033489095>-88032G=80156136:.:6173=/?6;3>13-94>?8246473671057-833;571782530<:)14061@2257:3A6;445;=>873:G4417::444734959A22A403;,942:43597379<356:;0.48988?4274311957335153=7=478/6684/=3583<:>456>22@3*7263927896741.37=;2204,?886=03A0=45>503778.768411-<-7C29D/A:,6.:8173.5:9:9041.34=73788=9253607762;D<74<267786<*3267:-655:.653/:7:3;:>:6/6599<92*=:9484<595=177;,241;4:41448761A/62:75<:928;0518944;55(/7.34263948677?27A3062/4A8:1@814266=8F749>?:44523678:669?,74;9254;56=A6+573:68863555:227380/;/:9::>6367:=144:56:64797<:571182@3;-?9/187/78)0?4376:271454849:473372.9?<34598/=85<3?83<662869;265655:6449.76=9:5:07/83366=0./4,7.44417;A.<835-99756-929328364.59=:=6297360347/610301445741=:>7:6D618:4116>5143:A2746586D72/830-6:44;5575-5665489312750<559:42?3+0:0:5569-93794+5;5945;3>21>689<6931:1935A406140252817;,312.5:0;107263;.59.69963A<304929142;,267B6/50:4:447<576+46819290532526/3610:7=9,+76@?93382125687)485,3;5379=;;;4655:-6,21@<:7765709;453995983>18.6:7.0792@2126:54077987>2=4;=1508306:518-49823->02632:31148739/859?457033=:27>.82=;64CC54821850867822387:65193>8546/57542;17.8-749/52>=364514679?G836=/76:9867;978371/566864:351199-09:7637>88:B734433;+6928572879792;5::33>73:28=H5=84=1264=3734.702467667;@7)264:19161<:8:5077=0578831:7134;383824:79=35974;8-70/638587?;5<67@6/7<7=>7574>:13<82510@83505;1929396:=/720;4963:22980828673786?7.2568;G8<<329,791460<<:657>57>95327609:055=6749635>76267985:-45@900766/19,8159128916;9729:78-9536514=896=969>7175/4=5:05+696;<766>2725277667C5;89A>408,<7,<573:84916/-:735:4425:8269/4..1.8:3:.;2962656/9:2<6:685;3:4372950827236;03;;,9:7/419765403603:.67546458694736=@67:4?;=56825:1<6746346@39618198;865A8-/1222;742532-26255672<59:2A>B83.318032653484-183/358;28.6:859742333=;205;=4/78./5.56<5.9838.0<65<<9:>:32296=324.597/751451?::3;99/=<66@>3160:9@3>33:?2:40J1578;62343,930598;5082;074:/46:<45<,569;<621192C40?226>67;6:>;75605-,7475/36<<=73897L112?/2:8.6853824;4;277>1340/@1043358/77.69014741<123040@=497644617?:503=339249?41457:;3.<069;5*-1+839248814:6746=533594=59;772:;947474645:3364157<5638:92@;5=751878848,8784084<840555538;2/4-5557603827328E4129;12431463287?;66952:525038<:542649:?/77881519B:625735C0:938763<7575C7:33+:<93=05<,7-4/32471@3077;;4:03/:3?<4.8537@7/4845606625547A4545770761648?1574/:25936030066611;:43138<09-5<2363310441111A3-;8278567/<75646868844<<1542628/3773:897590B750807<81=>;746+773;958<65C64353696>9;;98=<<577806802>-:145+>55:33/=30:752632>8:959@6/99=1796198182@19+5<:62B6:03371-.9744=2::>8;:556:9?1968323<20;58400:585:070A2:9466@11?:49?19/85,513132-83428224245877/44>58;430;6/,/<:7<4335-5;<43/456?/17/6927748/>86.46081=3,336,85955?17A+7:5097<:676;FL0117E8/3?36;5/<::6566506843258,167@0*-97?74/614?8O73?2=9058E.366838,7,42136A.8563;5/864/8.63492;-52278:645<59103?9=86:6@440.1530385;65.=35167<:21.9/2.3747C49;:<.6;416-447:4<4=58:4128/G8.96144447<5>=;5876356699556879859/70/::2907A0-9872<:66=47919;5,674@.?9:255947-8964:8<>>84641?56629B0;49065<.982446:4;41259498458..95-6:-=:54490:2?987595;3=9<574/10935.?==76746;4479/99>A2D8.2/<5)>:82467/5863491381/5383656)9452D86454;66/;,D93:813@6645367<2565;4B736B687A186-7827A3:6/5+5>-3:9&.47.<071:-87=76<58/48@=>(/*54/79;4A;:.<3+;<51<@G;/57170<96263104:?/9)9.061990;:<8<<07>638@88H/-81;41=-2=8)94=7<:5935>383=B@F2.9I146*9?84,J*/A/CB2184=4>/)D9.534*477<@>3(0@:5>;;6?9;@6+69<164140:54215116705780<497:,:24;A765=75.345414542<=9062@080,55=;16;38;84693868<4:68713?79/6?0373<5;9@:65>-325417974=3/,:1325>7788362:-453:;84.4145;965953;09/62449:361;98;4487>7684647257@14218122<5/234:149,754831=85665770775>773:365<5053/5209052<9:3;6<753:>;24;3?/628-7549,,93/965263/3879;48<80656A+4/1756:136.178277=233522F35737;=.::244,17079.<:B9:278/722=::129@37=?8/=5-9>-1/:3346;@83(@=59:112F7.6>08?0.7=2555@50.9.1088;4*:1<95534@62@/*.744363692>7429<:75843486:>6;9::89087<:054;2:98654;;55/230:=.<.754473/>876850<8:55.5<6@8A0881?7297)4<6>.925631:9391:A37335863/??106<1:9+3;58;687=2<1:.417:2.668729175F10716=222117332+<241064-<7,39/-3304/51.,721;87B876:56@856,3:52310-31>7685-/;1=)014013(2*8:730;515:,3695A<;3:7>942;6730235);<4.8<-+008A465:7<@4*08:>7312<1C;354,79492;442883<<>.5279687925=;3/03:284@4.926.1364..=>=44:9230)667388A/??565;632C3+627616<55734545/748:74?2;7:0:4/873:.5244,94=208@8755493:118285468685713:690-1=5255=57560352455.1882160063451321736318:8064058.5775=64693758876:3/61653>4-89704;56985981380876723225518062;698008175=94658:456/2536;6,=7924;1844<13/24832%4:5665;27=<@A..1:1-3;0:85;654:1:3<019=2*8367=/2:/9/4>62639=<874:5@6365:1=?8?;4<:6245?5:4513:26C66/265055;024/7;94133>6451A54:667:;68:31<8<32536203-:92/1095383:745-6;7/682/1:206+431437,23,08>59?5?,6C9434.5>637.9:/35:B74046;964056;78>89455:122;916:45<441.447=256/;;9/2691524939?33:28>10:56,:66:20373053/81801>01=10741;70275657363A;757280521511-9<827;77190383//5616<88621-:<94605.87651=1/0-04//<219513644079795554628567643695?56>;45355?11B7=5-866>3=;:28,021954/733;30446661:862992.54401641168.:2:79;:4:933;33;5A3;65;13<4-75:/3234257/520;F:.%6/8/K@*:7135085:2.-8585@;4554:;9109/E2;38(19-110/428CB673\86<-90+777=7=4;746<043~/<74(<8E24>1<15/617<53593+77483165;5E53A5/@>39=99540566E31,565;0;G293.6?;:7<49.8>.89582A303-2/44<40/,/0>33=8<=184<:7<*10=8/6593?887-1:;1351580=<2712585;5<50;09;13359049304?71843(29.51.0>8,69680?>43/24/547?17;9198530615254350364/8;9-.02<8F718:B.B.@136209764<4288<5654-?75/59:?0:56:9455464670245398?9;82;1784;3<21334655784434-747:54:<+<5.37724649477<<477141613747136://4786B1815666562751<2:4>586-5450178479/?3383859574494;::1>0022=95:540134:2/1:46/59B=1941666554*6;.099.6:12;>96.63766>:295075804;14:8624;15436>/6=82:41;13;560<;/;545731;64788:373.:3D:4=27374<17=03C763/78;>1052/065A4098658:6/48-4400<<0622381:.28<5<945666<7>5819695?64;3835N54404759742:/:2834/57847684:9764:;03736536J27?:9:7299824344/86050.4723820622,?444;?9173;5875<47557308<4:8:4?:06333419506G9769730559.0.:1884;020374:119-007358043;65:4909@3;4A2=8;A6.83<3555396049884-8?34595.584853446C75688:<52075?1;:3?36635;8/263;0175744;:6779496:219303=3?4:764637B:60--53;:4476243255177<65=53/4>93-509/68?71801/:<71:14;:68;3:286:4:86386I>-14452,2977<;37A;-:2576975>6<2.:75434:776B2D38<18+:/?57<6.486=979/?46=3C57834?8338:?122550/98<::69139D;6=>846/:92577H71?<2340636961?267B476133/73965;6=C7<<41:555H99:1)<98465>:52=76<75;2810D2<5588978869381415/?76800195=06F<1<45/84304656>1:,847;68(:69925347;69:;@;;44237>7343;96-67=0?8949:35.>403;*078?21/:753333A3;76=*54406/=70<958@>36;0-54:13:8904693=:359/4:.34466/3992<7:727*3167/76283?886582.6670335<6235;6,:5467;72796?78486.610E56=?549;7553;.9307753692;A06/:;34B285(650@482<<74:5=2:5050665.998966363221969+3451/9639522;@859<5;<5531665=)5=:5:4?5.90:32796:641887:626A:4131911556726275126841184>49/835651:5;.646847:;=93>8:<*/3384672657=5=286/8>728D414;9772343<4254674.87100644229334627622-33>2140088@924151A8453>20>/84G556:24A757.5<7*3153786;7;773::9744357585886=976:3413:9442.>5679@C1913185:;46344;857:46<2534,179;45.937:77544672?8=95+69?97;5544<839748:8/4;2;5:<=?0:<<664474121275;;879569949570818.215612539?0/5383<357076507:A0;A=51/<=00335B7'98584:5<74465:3537A6::<55691<;75754@9<70385/576/;7?4376-;41-,=54>4/1:?>495A;784:75386;@38=6165/4.4(440500.74@341>382535649377/4806:57:=<34913:<718B95:72;1;246:359;28:<46:<057405:948513.3B436:527:60<8781=5<;51592@62:21247422861418;?>481495F.:36809<82;63:/6683635O77:3<5>C0346174452078.735D387310416661/5/2<2/4//2,@:26.7/280;,54+46564+6,7/767326848.559-37385:68@;49552-<-583/553?61.<-9<15E436-:/>7)7403@6A09?34?063251/8::?356@.:35883557.7132/22=2-?05740;99-5=2/=442'64-2::774571:564/4=5(:07.0462480154>-<=<8=57.366,4:8846&.61322=903.523:880:8.>3/4-/5996533A)3<:8464638923/45/30664/B):;0A/02;7304<63:76.5652*;73..;89/58=1/7/;:4;15=6561>68C228036>>-768706:5941356666:-776006977973849401627;10870<2,:4230;648/J2=0>04G844118<:9.64=895747837:8-56;;7129/4:654;:58/;473537752248:8<74235820/@6835B4560;2?643785;92811055?115875<1?4937139:5R9715445107659A0555@7695780)5<56;7158=3.5524=9:63=546<,+2:4615567:8:8:15/42726:=5-=944:27;=657@1729:4627532893;1>9/;47=5J@58114.-1>92848@4775;37895/56:585,:3@2704538>69;7<5;779E:557=49;:;8433342474191074793;=912173<7069513=946>;8=;2/897715I8656.;E/88160:;67356811985<+933/591;8>9720>101:7155/6773:5898<8):06<2.98146@644<444:-7558253645490<69069:5835<>7158;)64?6964,:85957=>4324,.:87>+8669661@.6D50=<9;43980<853;47/4596?765/0*;38.1;371;599?,816645:3731373=50128857765895363B;7566454725<5?487:D2<455954072.,987:8433927;:8A4<1/55;?9<870-/5:2:=9:35?99553556258562:6?588546478663;58786;22046@54564826875>/5I3A979;/5,5676734/>404:378767/=6486=963612478617968533651@48354;=254<=1348476585//;B0<=;84515.65273529623343:626582178<:<073*77674:381;93=?C9;2-.6;7>556>4859:2,73101;=52059236436766400<88587846=5387:79;E743658C?-97A58:3=A47=:73669646636434*1666956:07846@:459838D79956:582.4916;4'76:616694:5454B2456590=368869400818?2953430%<8551547:574;.;=87<6757<25;49385/59:9491387;339.0396640<775,87535><641/84>236493:5,6693?;B5=54515435342716889-55A<277129278;8:1746;75141803;<8379,09=3447/.@=2.517;63E90872;3585:14985/9765:3237A/416=96;910+3@455085:63797?2;1;08427468355;08449<218A2:<=9;B/:53661-166584/5-43;845<61455>07/705144=:4:;=3B:F6A080411875A2;4346:697853?3-A54762:493266=84=65222487641>95<6:38;1*48>7@79/:8.6:9432695229417=8=4/73724E3.><399=35511/0<0-4:80B6779;-5-4<:/82890<:/776.<4<42380/>49-258/529:39695588580:8/18768.6F=830=-6/6=33B<63*85C0@06':53342+2;52/45864/836=<;4<396:423;7/6620;.7:<74308;875?919/675888744487586257416;1+5:820,139.9:7@6=434:8?1436.52;8I98<0270:7C2;56>45/@197)1/0475069.;61?2A254474555429=2202@5.'9A6..585>589788>13,5255/;38<=:0556?51:3309><9318343>=8>74:1542;51874-<5/45;7646/?772772*926*8:5522410/<370;A<6716-37:0,4C,::891':%;0,52)7;6:.244>;3:15:2/611)66;6@:66=455354@4>822'66@96@9=04871886<<+-85=1-1=965F792487:.41;:/27805C25289/15741;5-06295.0343/1;3455./50895@56562;2;61343652>77:6*3:/67;8355==93'71>9825188695/<9458.38;:.6990883007825337/69??2986395267477771?1=-B15597381;5557344;5:2667413;15:01019;0)9+472;40:67452105611;5<03=4895=4=:82=0.5=259?/9449825,51/87810003313-76524817188;611*2;9716:811.21652491221.2+/23;65+:2685;/1509=-:1<:84.9)412881222B676<7=12467+:4.105.6,9@20@103)'13100893?+18166560;4104<0:7272989/69866<4042:.6@612432-1665129186.05>0266835644:3901565825<8:063587745?-658H6594291:507;23:15<7387(26:<275414/6;0395-13<:85@:@9833656=7312-676217@59684714,0=355848=5271,<5569999=859524.505699@2A48/9*789738;8-:>93<5/23443.45/889066?523?7:74<7/4<1>7766:3491@(695/224;4853688/24C9/336836834.>4:095@<9;<865168C;477,<=2,,286=)A7?4=7454>/2.246;;257=;2+;8082B75/23594.9/:/86=0.0697;9898138;1:30@15434;46=786+:3-64:6-4;483955848.1:696768:-0/911157434289974:2563287213<852?726401982:92/<636=5==:812656337:317-/607=3:-1916;8724986:;01:3@+2?>385<0/15.3794:445264683714076;64859076@8/.:0C546;0.011;:<436-1=6742674:91429310299:65A68>6527053895504697-536837?3579656243-@C-364<:4=331A436584/7:564894C580;;986;/27;>:<834775>43457869?<840.:23>6666?8F58363608-6455474M0>053A//<:69:*67813861>D=66764-A<-0188447545727886476>98,7774753/66818?764669==161383@52==0236A85374967785-368<56@76450755207<787.01:885644:82?-1:5<1/469.933903312356569298534160731>34-=-5;=9204-;3/99+/8823::07637/64=4=2/<658-?3/184:3/4>7<3-06<278:3615548983495413;5>94.477222785=5:55:(;0:>95385758=385A455814,21,B9/136922>42;26761==52)6A;.3?177?458:47<2:&2B269691:258<8/9.<6'8$471750:32223:8692/8834767<66;2047-4:455#.515,*74;.326043.9593:4053<.@47463231288/98=34/84994425135885,94765;168.<01794;;3+4-484:6<4480/7,707699/3687416886<567:83:-165.4-1524C05098/6/+,3:.<578.036356>04381=/4;559.286=:57344038362?46:;:6;60.785016;:345;629>37:/2:6>91>=95@5;./=6/5//>?1465-.94-16;6C<624872:6786:&5,14;65A;03:4232:A;3307+26655B;6:7<,281:<0;.9019=77734:64/334831/5399:574034/.59:12=<7<=573/(6:57533>12/931*=56+.86G:A854935?747)=/,540546:/3/;83/*64428<:6/18.4;5152573;3592754143:44:7725:9644479-;<7*1->197545/8688.>47485;3.4/7164318024>7574:089>5377/=455<37,6-167;4688,063895:01><748943A<2;94251713281==2:76539533<737/<<*59367/A100:/6:68929751;-8;:4002427371:7<4475485,634,5<3074>867=;G=;0<0=7A>4:9997:9>38477/;765?+5:*35@<664<;6<=B96853:/?14820,<5;/:757<33:8+732:6?=96.;4690U97:9<2998969/I63=.:?82I7143U740:>8132>0442=458;<82=717>=58=5/>0,2=6949<6378176832<+8<>-73>>:42+6:@:4.4716,9/241840<22<6/90@-537/8<4?3'@:144722:<67/3;801>.784753580997/4<58418B:-8032,/37872944.:<90+89,->10;4B1/036-02;7488-?55A966665836/9878D99=57/62.<.?6231<;0237.8;=287626<<5.377628383/5800:/478474936.52243/82173;1262546343848/6194:54984-D>22831632-87284;:244289:8;017569:36013A4-33455:973237423,75348-4;23438;:>12/11743<983185;2;497471133536.216875636/=50996;155:@/8496=22/25?6994497?7/;1?=7032-;-<43:9-6?282?=5:8.0236B:5585237/+68/1:58;3:61478258;97@19015.>15249)7:1174857;94-A>3476755/7:72636;828386?17613297><686=412461-88'9342<>88382404764262482255697D23?499409=3@874477446:475860:=816;6343:07:39@7:38747<4055519411>/5/64872=878@75146B6:7=/679A+@49892775:81:162;/176?62.>9+23<;?2:65B<8666731,4278:1:45@684453B77664::>78389268.::7-:115232C947=16>75445&97;6>14;:&578:6<4>5)9*<83853>60:-7:763;79C056135:7;69>446?497,2:71:58:71<:=0/;8/2)>5:79906<71<35;7<=9.3838,4-506108864@-5821C23:4399+=865=58645299194:<47-4,548/79:;5G1/74<64615654646?34;;344;173D42:622544565288<93443=86/;-228:515133880874623=:/:/64.556A0475?3926=59';235;485725959908775965:91>43;55533>:/46994<*92:<2437=0=207/065178+00@737625:2:=64825945A=6>8191>4844>37834/8:-:A31:79478>356755-@9@;643001665444697:D423@549<>83?/61;90,438-9?>336754/:6.2<36594=0.94455786282077:6.+87303;<610.486:7282648:703.231;7C81;75;7255;28,68;81823(245?6<@'8;6.:-7467:4;37B4:439<.:@?90652?6,7:I92724/=25.782334766,6/57:1857/3715B692286444.@725+6791/9567<<155323390>=28<0;840;8:67:23354.435173=<31493//085845675::/4;27:9265&=5=29>5279:4095-0637:347;88631>9616:-28:4:=1246C61;1628078;7385/424193:74273:355:@89<5;<3>5@;73736628673-6<6756575940=78833037;1:6:5>36/42<892:);6674489-3954<7/=>17506=-146912,31@<;<5@17<3443+71915933/6525:87(927/344747:9:807=;4791@/6665989;9089>75.65486142-44876554259.906:80:35887262783?35886:?3;17045<-347079/66388:0257;70148890=4074508.6,=?.8,58,.836/6147943;:>5461959544548665/71:>@76>74;A2393;66?5:26317505498339;.:16637;680-53./01>795;1136/:4.2<888>3776;4/65.2>.43:963529961104<>5+.-:3-1.;5=4<88761,;9?85<71681A,7+5A592778:193382426848758221656559:45:559253-3:83<338.0777=6645?A837;4?8<91;507>6032?2123644A>689:5518414:20072:4;0?1E29<9/85008<359>33@7+;5543608958839F6<0;58170219956217/2:9>323=6?15208/6/-:827/957C/842;,61375:57755;?556563161675458240.=67681/2;5?563107;:9485<:764D6758;;53315:7023731468154=399225F-9F733521196;69?56:7E5222767;@487475363431?95:21;638411966D3.+/267.=222?14:73663@2178203028746;3289548=0:=2:8/26464668383834/79537;;4=7:31/33187D677700?/<923015D=88:376<<7?00/37-<1D;-376867;7>=64384<-5435275L5;466760,7942.45:4:64;255680964:48-58?*6670;4:C;947A85C=16-2:193598=7=0471)479/>4522<47898866824287=:429296+-5?@/6952=;1<7-33=1257511;/34;=94<357>687=2/<8554:;4:C404195::*+4.5>/765=/66/4<6;:052>608:66;-/?955/<4?651:,9227<766>62:8/1/677:7><53/834?-900:63/<0796074D13>D466?76);28<297::87685.?95;;/:0:99:3.8=3=927:288?20966-7005<6?624?;477/456995057/5484=B77775369:415642-1I3>>5>;.23835878<7.668/22;333-::652,96543.2815374.106<43<387+A43<8(50011:A0736/;6551;8C2425293>I3474/970537;><6743363730>>.-9164=3=03242977353:-7>3<576@6576298?653054<8<9734<7=5884:6,8/:8;757991165892468<,4?578/7:6046+:797974:44/2/;2;1790;8;4:;318%24376654879624;5:.228,36=572.+@569497163.?9,88138483899:-324369:97-20;08>::958066=;82059?88805443;4417/@7=:59..6963;26<,20-;69;58669:9836<@5695>711B475<6665B::9<2;5;&@30,37895:/8936 5@<544;11:1?68?56@877A?33.7557::6@80<3<:42:?=7697=786;7:99:e:B5>:=9>9068:75778<8;38/:A:=?79937=<7=7>;;:6A-*4?68A8?<881=9:7326@=65525C548=/6287;:7594*262?;1288121350:650;6384145743635762593285;=91<65-7198H5<53:89B32<474/99;2?3:73:06@>48;2452:28351757C6;)0;4861204860552365773/8261959:;477.6J/15;332@284/7>1C.3:991@84.6/:38@:9433?/9H827258;3=39D3E53>61/1;?871360:/7976859.6828:09-7:07826::/4525:<<1;26:6@74058<4:<3/6;577,914;6;;:97/6B5;38?:,/655@62204>/73B084/7=9134>6133<513::50903=4(2>F6?/30985:2;1.C4?<;5;6)992;/900=7-63;7@>69-?>35?433);25:1571.9<:7539897;2;<3543/-40171;460956>7599+3.;;<>.4603E62A541/73;>5:.6>123;)98*2E??869336/2<,967385*,7,4658>C926223861<600477?88:646>0:1.63:287,6:464617>066;4/G:2<310238;599.0878:-/3-23.8;:0868515N582>35<5<676-267976:3A97944974-//38-;4+=:*?*048>106593,05-:,/A6;<:46B;<392@+903;7:07<3639:3/-78/01,7<84-95/<84://65=>355596*,511:<46797233.>9921190:633933320.53=682292/462:;7>0/95;<4/6-==C56982345.7111=898:63<:91?164@883=46335/48B1673:1;=40;;,7=6741>07251/682231461704<9506,9384<238230281<18714>78==46818,552775666.513?9C<257=046;.6;6520162B;4.87:3;;884,727>7:425==6746(/3781164:658-67.@84$.226@<7>;864-12846=:43.16:2-34D,741849;349458:@2746649;40776=?973<396199/9:.139:2502<0276933:16D4C555<442757:>66366<2226<6388=:@6<97A1>327;>?<83225:9;8513/307857>35>;732199077?576531:41:989:7556/91489:365@16:731721G111368560181<0*75:153;1:352543864798946;:6=4:+14.14=4696;5=4;7806/<@38@<08916=773726.6/:6316741:157,3265125;*7577;06=03759:6418683465;74;:2<19:5<38825575797=92:811=2,038757<<;77153-67310;C6573;85<77449:7:2404>608P14.730=<63814756:/484/<0=9@2;97=85><07.?8719156<6256:D7035:15=41265.05154320+796328/93:72833247F4953655D6:93754-7734>6963703D3<4;07<55;3;;6<2:<<0;<;:760=674:03?6.6-0588F;597A8.2<8:8,:87764@261860206;338<4687?A3<2>14806/@.176971/.7446<843:7166655:29<6.4;;072105=9;;470439+90-<64:+:6-3?4<;27@<71@0:8<279772:;45>4:-43;6;039178.04=762426654?97504;3>529/3499-/8;9584.=2/726;3:8;8D*3476500541:692656>32640A478212-100/370725539-;110/79:3/65=<436:97876;<759651:3473757286857:135>6<36=234;264037+38<-8/A.7?6@-5549826824707=38:2::6-9;1:44=;1;2866:2)9.C7429227=:88=09-736-69795699316A3<9:56;45;=2:978:270?.393277./8/6?83575=10=;7367539>6760315;15.:118=367::-4277564:443;53964.54=515897C2<03/-6477;1;558169A:5<9A2:4.1892/70-7662;66)89*4672/154;:/478:>6683.3/620;293.762@25889:D2637):;60;2..4580124::11<.;4?258446823+4.37/3656;:684+375646415:90566-:1>:578936;42921=544749/67513.;56945:75220.275061*586>/=8354.8:6553,9259:2954;:1*28J3788(791.<785>6058732:=339253;56/,524271797733;.0066580;7<575841/8)4445234=07/38;>41.458.=2:=7:702224.3-16<26==/36<3>66/1A965<;2A57,4/:7;3209:362<7=56-1=5>36;@656423;8;:<4248.25;948193>36@573633>350;02307320469431?;8;B7;53559.293837<8DY:)/7*,1S:8796;B382+,;595/404-9927/:M4:5$73;7=9<04;+;;84659244/07932,*46/5=(17:(/$L:9/,68:87',6*;:2,.3;27`A629b+4>12601.27349@226:83,/9<1,2>5AA/18310*24310:8;-.=/;4580?>4274,9:080886/16*5%<3-7;11179<8+253->303+759+>97/6/165964.64))30253@830-6445560:88;..6438<15<4?-263156,;4;8346:B5<4//6B05746527:07/7?692./5/;;34403/7;982+67854252678419<.=;D4-;532;8332=6*;86=>2577-5185421685759;4.86=65/38;6;9:5339.+,/3/A51704A846;265>35053:;6F329/D<25638;788:4425.:2064);5<.,805:==:5554:8:<7;A=A,93474:2+14826523:2;,63<40863175459=:04949;/;6=/8165742:166247:2=;-61A32446448954=5<9/26240688<66*3/1;80089<98:<-849:27724:<6811984;-<4;1<2;:66?957415632.13@?72975252,.4/833;7298/681788101;6.1?334/624<8133*5;65/3-/59>=6=:6::4;8:2,2;),830-357393417<0.15;221-89524=-857-?128989<12=5,<+3=/81080.8121?26:2>3926+5:87/787696:55;;?=696358738649905345166=@055;296,=.C78>>823118*:6895587/=9+38.4=961;75:2>9<66-6-494284>:47/27/8=::4557=;875<0<;<=7D794F8259:3:?3:8258:3;/9:91;@27E>23122885;*(511;:9>480*=7?4<9012556560<=59429:A4-).;/1B=7055,289:;900@?4204<52/02;037B/4;6+0354?494591:>81;-=-C450:13;.77-14-<@B2/8/@+2:0/42?23:>783.,:20:5A4:.6=6F/878.884<667.537-/:>31=32:/2E454627B/73115331694:4261767/A'6.0+/;(6=F856?'411/695?66.19738D;=3:C-617204-7:844>6.:75/323623;153:@<469?=;2;574525372555:2942729573@:274470@765F3134.:;9=6:73<45+338287:@/,24565305=3139;27088/7793:7859;7150654-7763332<7667?85/<:+7/22=3955/;846<2437>05?3<<7527928<3374=149<1:2878,362G6-367;833<:8-854-3636985@;*:97?+0<88/9506=3<7@6320A-4476680:8*.;8565-2/8840:011497;825194963539.5'5<8?;;5A2;/-90>277231/89198;.3/*?-36<14@58=61.-<70167*:/62<2971:3A?386780.+036346=37;0137/<587633767:<203<@8816<<6;=6+548=.@4;33B67560892123=B00C0/9:/;5848279713=83730:39;51-/8;C4855;65?<3@>,829<934=7315:58196/99,A:1721578/34<57B069/43681233016C2.4687?1<14/23:86856:?81913:H36310>7376044=588-382462/3=;?/42542407134@4:498458/DC>A1;:4:95642769-9;7?4518753=643865/5270>52'9A=2,7+5437=492,30:(660::75648213<<3:9A97636647.:19264810:842-@..5381.96,<4;?5*@4810/73>6&36,9=67915/01>973-923519275482.5<5781667,26969087./72599>//764:7:4,7969/09-?576=H:545@644-8932<94217/5294B4775;:-2=2*=:8687341.:63253,57:1894544;7351868782?643;6;03.76*8<4749534>2487;5<7.0701-7<9<8,76;@4:3/9G8-?>77>:40:672.;2<=57@;090770/79965-675.509A884/206452770586237740<843>:;97251435443;7/8>585:2149/:2F9674486863@58/41769/C699577<:>:A432/7;6/8;/613097;<=499::26?62/2?83:>7433,2;4683C903:6;/160454577:+;B90-F73;0:99:91=58408474.91=,556=/48725)865;:324::-6.7,633:335;71=7E<4-2<283F4'189-.98:=5A98=48264E98163;F6;/51;58-697<2,;+:24868386994,671:5<4,-/;CC96*7:8+77:98?48=98A95E:D15A:9>/2:758>-.20737/992+5322953/29%@>4)259>:048543.66852/8858:<=746F261<325;::.174946;/.9@488:.55=8088364--9//D248:74=8:5?4-1:/>66;62C<4;4=+366<47=<.<52-6;4917+5=7>0114@=9;/77>71/:@3.8>6-5946?@<2*4257,93335?088914/6405>3;5;0976280/>643@6106/11236<45.=6+527:1515565;22;30173?:?32,158145?+58-873C34:79:B88;5456714729:5;57;>?76354-54/179355;.017A0853384768=453,5<97<288*8;?95@;2;655-26776<57;7>7/<:817<381904/1521<6+38?=7798533/>8319992::7;84289873@(3<4451:64358G5412?7>/:51>457@26849359@3F8.0:88876<4;0951?-711:26374-:?:48685?857:-73:;83473=D3:.9<9=1762547;3264721?48;074<956218:8836*7<229719528:969?5>:8542=/80<334:H56@076345D7=5<4;4:854)<5?82:>;A8:720C1<.49.0576:;<814@6/71:<219683*7433*357=239<:42363(534912;;5.634;6779=0481;9060:7/3-568;5:2>3@73/52?68+4:?1310834E23604>:@1<5<.:655:.58A768<9D?95.4;3731<>47\44;.7+9<634@951B6691.?76*15377=22879630:6035159562661<533J0,58717333860>23/0401628250:8;7/3;83;4,5.2@//63;:346@1+9C:2'1694(-523=<29226733014/-/1.72976115183535612;.@9<2366.4356@4?_345/<27,86.2774?91;<7023794'48;14-:9D/2-=5741>187775<283053@:1534856998/7-5..594=44?54/547<78770E:-64,933.91602=265:4-38.7A0797394570767;>:62A73415535337=86<247:94938836>64528285858*608>6=768603926271<286646<>1=:5567452>46404:7/9:33607709:45476<881:37C341,2158=660:,7536+,6036:.3<6-:3.92.-:3+:7-01>@52*0=26/09//96A>+2K5;;4'9..34+56=99-::,67656/?364@74:429171/4+26477-769@,:3=93+>203>6866985)2285/H2D<26C6=?E8-9,E:87A(;-=;79788/1:94300<0;868;4;7:2102410=6826185=;2:,60164=@9/5<::61<502<3'36-J014:>684/7940:3.7/082?54399B2L4:26444=96G15/38,99*8A,9I9B;.101985;3/;64?:=8.3167522381.005/1928-6:0?;77355443A755>4<2876-71784/:96::92>146301+840<69371;?4982/197973<0;343877:654942)15?7<;<25.5599=5388;73539>=4:<==9=33/8K69<9=<57:299798426/8148;4.69:3/5<499/:4/=46?6224:5:<6900354175;33145194375=:7;847430069:6614632607;/50;570F77;3=2..45?22341::B7513804857497:4352<5:37:@37/<635>-89;>6:14;8.58707726165?5579/5<428=5H19469289803666=.9/.>465/7<7;=5>53353>/3:)3122388129<048>>;63D615:=421>=376946B88=73;2/;2;948/:277:65771999,;2:6/5;;:;6952?3A7:297-85620<535.5:-/D89455.13//:51@38.;C05=30;?165;4K?3:=22249791E6139;?453A73166038/7E;K4/124556)7:?4?21387524?=@<046276.AA54B:-3?547?6=<54-67334=43>7672436A542/467=6=3>11:/581>272843554<61=729322982:7@8356813603976799=...528,640>55.2=/843973,94676513=51@374;71/43/43;2413:/90-<65?531<>34/621/2=77,;;@*9=06268<3;4.<29485><>5::/18/3E-65462198;031*0?2:606+1702;<607275426=19<59<6<2914A9<:?24;4;78:53?=35<=?:53A5<36/6146;6-6262/8938341902589<;/2>/54<41997301,319943<.48B906+-;=32:<9/+9/:94?2@57;25723+3,3;543680.816>84D648374;<4:37662079435:3090?36259225751A.4>76:@I<1(63.3=;266+07;9;708/,6A=643:,2:/32653>44-7877?89.1+957837)4/8:19D7.18:658:74.39819;1:8073/?7@7;7>D;1;>/C2<0=3634;7.;1>?88/=854+9=3.03663)/37.04>:<-73:629<0<3074642>/3:57569;316>:,?08'14=C/6,4,3;5=/:7560#18296379225=5;/,04=929=283T22911?83/82,*66;;64715;,2/470.5E53;112-A0/52;69/764302:73?3*.5@:-4-5@:9.525---183<;/5:<9:18@92:55587347<47*24?>4938884/873=<3293?9348:5801H142<94823<<.918:<616/2:,2393?87-35?6/71<868/940A>55;3<6;191<96/96<9/90A5/799;183265;:71,85+:39:A3745169>3639244225?007699951;20596/58.1924/5;/879823:2459H56C915:+0A48:;>67@76:-AA-C72448I4=1(?3><641/6654:5'/3-59381;3437<3<6/;/4>89.=@E2:B01/<(16085D->02-300610622/66@?;+366@,?.09-420:94,*989=2,@19=-1=8(;3;25/<:B083957881>07>E/210=8:82)&2A4:,4<-,0<03564.272@41<5-94;56>=6?15114012@9/-9>393-0852H200668=:2=?43037,771.47//424=45166/1:<=:8/57718;68-54987.81184503A978.5642533-12+A:51/2'0(;047<)6H:.926935241704;=9@(.832>=-495;407<7?2735455;,936=1-995013>64;5/38,5567/--024:5':2>745484351;B382989476%2:77&83@E049:01>351633;*6<00963/*:6.1369@.51182(6707<<22715B77391836635/5;,97;35:<203438.3603;685.2:6;48<719:+95:37.304:.406974/2:5-82945<7;3/8/46:;61D75&247/;01/831-C2@43:74828:20??2/6?8:673<@5=+7:86@44=79,43A,A:06-1;=48906F,;;5;%1/563;28I;+34-7742/1A718F2:8?:<6:016:952>:-7824853:=/3,5>-3;0J=07?+0;67;..30-5819375371"36,>35I7<6/8+:2516H:-:9=92'1;5:)/7,;.99593<4?<2043@0549.9*:62;:C;4;41424@623889796<0245;153;160::7<9=9<3;09:==?370931<76<35=0;8937-7::137931?=E5/748>4F669?356;87=8@):5=2A22.0;E;65091;46>4177459;0-A+9C89756:315:683A.4405047612?480=F9,16@<2;:<2=66<.50685D;66168.=<=;254:N55<:L?.23067;06433;=12-2B2878132547).5263>31-/11@2;=527678=22<92:.234>/-58>:5->:4=0741789;6B131<332:40994/2.485;15435:3+@08:2C37908>+<=7+18A88-129;:-42103/<0:->/572433.1A75-2.66-7994,)550?-0C623;41:72107/25/2+3=252/:476-9A3884-.8<7045446.51+61.06526?:4313,=1:73648575A1:?152/76640=41697:22.;6302:33-7131=6<6:/950>792D96-39;:61?06(;56/A;93658>44087G;19/8622<<9.9::84>8-5212E04>6:?826::;<984;.1:45606@7,53=02?<37+143?9;:538:.68/98913344<=2<+910087+75:05:>1<3086;939;3;=199/68L?11335,41.:;/34@;6:3@57(4/A<805-76>32802253)261>;;70:.<5;16E19'2-7E;6,5*-=764>,?60<:2=,>735-<;<3?<29N=A7<.B,7/76/655,5565550450B;9349=,/526878/91645.0=<008/=62756643B047464;62&363>-9633?;'32;/;.(;:-02364<3.:077<5?2388B@=25919580@./;4K5-4774/-?9563931<:0:><:=0B4460455-B<85679447=5/6;039<901:92:;1,36?C567578>:?49;2:>62>8-587?<165293<@:346;71;7;+9:5596>5973:-44:;3913;9978<;3>673<4>65625;B34747>;::>?8592425/43.,36>475950;21464*65<30616:4;-39;/-=0492;>2)/55;*8<.223568182:;54.6.77.857:>19:3776266984.6;623763=55+4?34F41.0/8751>3:22281895>B/02*11-@51604;4,1;9@33:3@8=<6>4@/86;9<4:5705+?:,18=35>96064G56460<56=?4;75<5=4=8>;:-4354/05441;6C52A*..>1146/4331.4721L08;2922297/<36062+13-/09'A*0?6285:35F441,8B0,00230:824482/867346110>73396+91=-14A46867<7?/39:/6/?<9.00.053*.;;8552.7;<;0+;.26A?;019.E1:+7/23)<0M/2=-833>.5;:):9=D0=15D@571:82<408;06380.=62H;8@2880:<;:40794>023378905164;493:33620/1.0>3;5;>1@<7<<5=25760757107/03+14342*:;1;58/841>?4406468074242402;4873::2?868643A->3-40/71/6643;<35=6642=4079858005-5=+24636//2472116(/3<9;A0405/6<2238657737:3-61/4;46=:9441<00(4><20D>/:E:;:4255>;=06-0)=51/8/33<.9*24)3.<:+605/676@6*94:1,54524986-A0@-04=/6445746/47:848/6129<425@:182/:06@9:./39576:8.733>+380276;75;0304;>>1423:4B50,?:3:251220C0.+8*4;3=391605=56@18-7@6+95160F;13;1=559?95139A1,)35A59@4:2.5751-/567?:+:6;;920E-9<523815752:579E5(58242:<0FA(,552005931<42;899+>@3951=4C83/42>6/:8?G77471;4336=:343>5:A?85B17;9<=/2<84?0874C;1=4(864315551//166::44/?16D24-171+8.28081728=42133;28/6<=:M<7>:8+;:2613+3-5.?;8=5693F,50/<484-7257::42:3F:C<:078=550:6;>743-646>483324:,73<9<3<2;3:266378727-3518@@/8..;=;-6;?;;/554045161.93160;<7=*35;79:C1.7D:;A44960@0?387+5EB0=6)9=E47=07607141626245@<657/96::86?+<423F97499;:;>5653529,86;532=8,<084.6<7458=588=11,33:8-19.<33.;?,2840647.6:2;8427234174/?8210>)3829787463,2+;6AE284664396@6.235B93435295.00:.9:0916175/67578,?71A563225@57<:.+30960,-.846;6.62;94.208237-52/0<4:58A>44;0<7>5805144/78/823549D888581614<1/5,9513.2+438.;652H2651;7225:398./73:65;906:1;1<;/5-24>7278944==2>1473325962-<2895207;57:750248944;6963>9;96715<7796:9.3@6;5677061407543133666343:879747:,379;23863561;21348=203943602?/03163<742557340C38:68:9155382;2:1<8565010541=6;3294:146214-1=0?@4264.416;8:;?<2>42=60;5180/42<,042=(*95-5*/562+5983;7;34:23544737;=90>-8-A:7/5964454/24<;637>:6C.08?96>?4,339933?A674.C,,42335?24//5?3863-:228046-3.9749:739+>95654139/.5719?5,09:?586.:35//16640489:6.?=5:014347-:(3090.;1@5H9,894=43>);A7-7;85375648206.7*/=-3886-4172/842=<62942.794)84,50*005;02<7814?63113;6-56.<>9367846A52::55,654L560;/@=26;4(1,-155@89<594:8>C8N--3/8=:942<24;255-)=25B7<-6823)8;(92204:5/614;:;@7;,07;5;22.6/67;--42=37<8836.?256+>8/41=9B34.@43.=A0&1>-+754:;796453+.>=9.:73725795188553=104004D0<3>6716;=207/-4133A502>859@/*7,4/3ND703>598<28897:;.9/232-C;77-3-34:464,=652)+037669611*>6.=513787=115401/*05:A(81:53/-/=22...30%047Q590;B7A;/5212G;:553?45.897-64+37508;1187BJ686::)5/+08=H5C19@44576>043102750;41?3/>:9:P7310-364,9598477C4<514<6751?033;66178943.5-=<54078918/3;3935E6:?406296,>@4/90:5;@685-7/=868D065C6609854<.8>2197/+273865=9?090->43;2739?13236366408121226=910<=624?7373..62-75129A75@1-@2559=6,4/?8478:734573709/KE=/:*916/2@C8246294A4B3.2>;.43:374907D82958&>5-2757->4;4646F5;806249=153-9771.12.+/2C9498;375?58<,8<348;75C<8/3;56939123-=64<67:1;:,22.2649;=84?.05/132275258850+8:4=:605@15:>1;D.641:<0.8243872<1960<790<12:979@46@326=;93445187029>0?28.7754738:46979?:;:69,87937=913:847:432619491153=0/;237804070>;2>990:0018?.3870M>98B/37.G41;31250;6,92,726<0-+:227/51E67793@3-,999-042510=4()68=-2667:42,4.-6B<.;10(?5/.421;=:074(32324-/:620961B4CB12;81->;653;20716;88+14671;21<66::4/3B57066215<24,065=1;>3.53/0705?2>.984392/981>7;=+,2<9*8>/-5N0514A59.415+66A2467;14/7466845155067D0424?6965.6<565;5525-185.17556?732022515,3550254560.5>A5@/48.64:741>3,29G8/86<:*4B6<93=>;A438:;..4491630:9>6393-/<4127214=651C8-964808=0>=:;6245;1-4398:-2675555966>1;080:710=6?91.81D8/-,C5>)26;-0=;167+82L272=24F2=4860R19@A1-87?;4/348.47:6;/=495072EP)4.;17654:88933A;59.3<9:.82-18-<;12;:@0,9=91.641:*3566+B5<390961(8?768035.7/2536*.:39/=?062;@4&2:/61:6,42813210*51:4:3-15=94,,32673?<1,6975243218I(6'=/>9<0:;C73C0C:6-F.;'64.8:-/18321850.202528::39=>645;8:?4EF13(?44<3?29,82/434*9468671?/7<&317<040)3)4246;7:7.9356196?C=5==-99:76525,*3721/1;16;.7583898.5710/6:5*A743795.4173B/9L3(4774463=634:)2>447744>;8A487.85230@;+3;6?78551.63546.=2481546,7;173452226<8918554335077453494/>80/C),6-865E3=362/:1630853298723:@+/3C8/84)56.22<851.=92730:,74.<.;<78120/356>2/:>2/9.3+9*74760787:527:52<+2665D.6812778;1656/546><835?15/1.37@23014653@15:<;:2=5//47243A:66:084-2>28<229714586515:74,;=8455<7381,7497Q7.H5/6>Q<68698,:6>2284>15*94=002+15742/04DA7813829/07+=1;5<5971-0271/5-37.2)9:7-3//6<:63->@1;-;6;5974-=>@7,/8<<95:;C>5.74.80D612,8.0?<31:91,342@946K4185>:422.-<0:59;<:416;;F2/010.?1..55969-07111=-039959>4286>7;28>:74:/51.949225:516;K2769E1859379489B22:5.;48822335506237=1/?83H;:6C7:4;5=:-5975:015<=?<3=;43;573>3:7;42;71@<9313475437/7406837<8;596/1/439795;9/4--65<588;5*034-09126>:71G5<131;/>@39>8;1?5:820=2?3653,>85-+3=3486888519(?520993236CD898=7338497.7:5+6=45);6-;8A>0C-5*8@4:.6D0998A;76185C:.432670@>8<5C<6,9>-677:445:7A66A,)==>70%7836>.1>E<60,7<<115/4'8I,5821.;<2058/5=?,67447/,?1+871'51-535+./2,0=34964933376=:9<2@68-62EA:75.-.4:84)44;01=10;7,9;@9=<79;4B.:38/51/506,77136664,<4274=280908-;<,39692/6B92?*524004044<4:.:369=62;<;=22G95/3;,342B-B1>65=2941.9..34:.93-94<<)3)0..79?40075758;437496;4/505*:461::<5=09E1=?3*@>7+84562-+8/24/1--12.822496;7<<91<.5074<64/5972327/;/84:=0;1?7:28076059?;<;45605637)172:2173;);670+4401/:=762689:6-47=-16,2:67:>9:?A):7=62=::6374;2455050>7400314;5:2C27E09975/<72,455<8546774+,3/19528444-;:623:32.58>;581<5:9?58>27462;7145-3B?64.5:790:40/00<<5>2,7C17509C:31>=57:77874,25.1135:-4=55761;53:1;8427?(26665459:68-7:)3;/346;6@01439;57/94731-49?4281::9196@=87/7:=-5.383/5809<:0A74:49/30352@>3/49484026:3?4:93=5,/507/1=535;5.2/;80+.,<72865:5,409>745/35,-4:7:9<782981A?A5124/?/=8=3=83:454A8233.-426>81-;25,+83/85326>11:3275;36=691345/28/:+/9;44.255::;1:921>>413/-F=248;/4117-,7686964:80-36,7764-0901576720.<-51+5:31C5200A26,8592./091;/0?1.:1246673.'53>775?84/608524,6;:25;/=88198A927;409=?454B:7-36.-;7=9@4,709F6,/340C54236A8467:2713454//34696182;55+916202;04091J=256497>=4124/258/1>8883115;<8209;829307/2728725=86@61>=26=<<)92:-802681/27;3B>/29/4I78<3/8.475@:3<+67:<@=<26=:4/7>@77=84-2126-7=587A08628+;964+/0A=1>22*>073;14476<386,:130993/593272E5=854:0>;415:3<92<53>6F646/6909:D29935453383?877?0/@@7201><63=969>4852:3:847-:7848/63528823=3=87<83:=B21:;@<7;4/7:7??65.5518?8566873<4/28;<>?9195?257;4A:685:>5802237740612::8567566=0:0<6:7;8254:<417;3165>74325089936<8383630AE<24<2587?778<8125554/=59;7537825>86.33:2;65202568:300;:7.>679:2-/3A69=72:=4,2850A30>829/;-79987497+5433004B54?6?.1A55;1<3?;41558053A975//>6608-4B:5.<54710544?6:575+5A576253437345.9172;33=54673537:756453=A8;5?<37;810566673708=4>168964<2708190.+475958132536.CB72683B957679>*.>/9,233/166<=78)9:=.6?9987658A6666.-4720@4880<7<<./:0850038<161:=65:34515376*;6/4429:2/40361:8101?=/6425221@30053/3435H=4G9150B<462148?022409+-:64348/H795083/=635912::75>/485:52896,/943,;4.*6A261,6+..0,:22.855551:8147;6191/:96;07:146-23;/432513<132202C0.;?.774@/@4;2<1;85517:32313'=7/,=4:0<42,25/B(7=707<900;?9.+6=2,544.;37227;=64+/A4/16)<157-,8704;767@56;33:937:1<,1;<25>-564?/&085=25816200D:79.-;<54==135/<898844892;1/:/8>47+=69E54883:5>C1:52:30061:?8,5756:8.1-8:40A004;835//<14.61;,872;;:3@955<+6=3827:6)<9>158<68290E;:26/1>265)8?50+<@0<<=M+.8E4:5433.11852;2B76839231480=,9>E7<8.8,.&>@98B=C:93=?5B.9108269773=;0;=37:197:,495C79=:=5.6=6/;D7?.D13B4/5?6:6/2;950:6;081526@8*5C38?C3.B..04/35<412405-946.:1699/:3416341>072;142:4:027=51?062:676BDM98:-12<76/30?<9@2846099:)/7::388;8>.8.=.598;1F@6462485973649130360956=7.19;327468261/7917@2087964315495=95-=9360?>:6*11.8;:,74.64;+@277<667C687.3933624210236401-1-32<7/0;=;43:6676167>-2F;45956*6/43=8)*1180;426<64?353-3<:;566-H/64/3=323/21B15:61B4479-8:777783462>?;3;780/58754?713210624192:37268A187054/,)/9(69520771:?37F794=3/H794381288428152<8?:,B;=:0403:;757==8365;:=087F=<22.G)B:3640.=13<7>2<358:3,C/(16,45>544>F;/9111>35?=>8?<29.A635,8223543.68667=40,18=8>==9D22.;'9D5;25.6<:>57:49134147865/7-%A5=3:/77-:.6&<91><>1;6252.8*500/=?67-+4=C28+422890.8696-/,54@><63815.0-96D689<:69/97;-@<8<813.:525320133811:493:2-/8:7-;4<531-H-4<2?:499/7337/64-0=7/7982.0188873:?5..213>7556H957;3D228/=)60225/>3:A3507273>396=5=5=76=<570=39496;975:395;0753?24471;8754C047999>8<399.8-7=:4=5.0/1./71,3<4:689767>431+.9:994651:.63:1F46:5L531615249=/67A206:51;1A1<;@8-,07;8685/1,/0.6443:296975=?22330C669;13<<4+558274632&5:D43;722761;4<3=;94.6.39.6/535=>11?+614D499).1?16:1=+3&3/;*?>616:;71:5/102;86398?0:/8?>33:77:990B6;267;;;224651517415<4/16857;4;;624<4:8B3,18111=037=954=/292><621/5/6,656=841;2985/75546.916::486273A57C585+-8/6401327269.28/7+4/.44.?/432699/>..5/149.7618/2-0>>2/0B57/47<-5765-044787*6=;;641<291,699341;/43/1642568.3/5>986494/1-<42-45/.217145>99:7328D13,15>5949744.885:;A53:825241)4=52770@2524C23163?16>8D6>828945+45987.68916282230752017:B6926;;?9;8300C95>:2774884D<:791/:63417433018836384@:86905@214;/5(<4948/16=@06722459;>>649;3<6:4:1:85:5>63+52;=476861085/0396;5:8<46A;0/8149,9?7496/287/82954<09D>4;499G3:547129=@47487430285346<;<.0777064/4A8><515A70742:965<16095:0682B3:;:028087*7-+12;;5>480946>775;88?=2:4=9496=53/6;9.228?04-55866>+@37A584.30896046;264=34<3*-303>A28=159-5:08536715>/36988123D548971-8496<;4379:3<1>0:9,38>42/7:6/2>3:/97<21513@6C4>13:*756190=<876>67:;;6:13/6540;4:;5C<16;7/0<<3;,=4-:2165375<,70:961C20/2395:0:01356--6+,39;=4:-445.::/0224D=3169@8,4?/22-4:=50@722/3@9;48>@<:062<7?5334;95-5:3791?>:4<81/@:63F@027444@+>:28C2524R2671@6745/.=/,2/7E4/444246667;54*@7/->?7C646,?8;26B035?76=26<99355<-+26700378>@43;<0J151<01=7+3713146@8009:719=++D0345602+2=-35:34430<11114/@<2733388,?>;;43=;22./6=26504;981:)/672++-/70651>7/1715178389;49F/<<;2.73=2797:3/4504.2125=95/1<<2F:2:;65-56526-0;97-8/A25224/54743/=/728:30.61=178A35246+7765<48.:4=<07E04<751246A6.3554:3:2:58>/414?9365747H058-A/:5732<987132657>6458@/1;>7=;:895>75+;013?-571>39<7>356=;/67=/460>59655A;9?854:=45;777-<45*/:>69B?8937;0(*0820<88844?J:888>:2:=6719615:246,15>7;<,;3@1=49:5I54:;198.;28/*755555/;9/3.26352.-:5>42>802:20215@9B6314/3:E69103::+/2-6<,3456*863/3.-5,<446364749:<;10;0:;3098:;7;75CZ3036F2/5?3/9568977-45:5762.135-.59;1*,69=36(913>8N;/23>554/B2090946+275/467=/5281742>74*4030374>+331:66218A792055:;7957?30+5341:2?21405C.515378-4*92:.4964:2<;?;,/?523/7-97/8-@384<447*E9.8/141754;488?97;60+8;7<763:59765071+4:0./;A76;:41=39:95<5.;:1/795>0M=:674::8,58085<:G:56?3/72<076;-407344;.714/6/86A2541;548669**46113:6846:=93;4>7/.28520@<939;43>86B:43:9;4>8+2253+<0B;.56/37<1.:52:2455:5@25'>463B31055+87-7,?:78149;<,4:.28;171678F881?4:5@590.91//L/29@4.>'/7;49;4-:D4578-90<27C8<2?A5>E-348<687@B776<+;:;=26774A>84+E8133<=31/@3D>4,660957>B3/2308-D4%::67/,8<2*65?=<5.;>A<50+C:6611>479H);:.F?19=7.5,,D>.17559=322B;0;89/+A=>=6>167A8/2/>8=.)42<94182953288+;26694943*D2926<66>7671>259-87<1*4477<;<.7?/=/609;35?6130<7:53/A2:18?45380757169+6869;4/4878.73+796<26;6644:79-4:5C182565394654.5/177/867;167<62/:6@,198:680:/053:.-65.::7679=7779>4>89.>69H4861;4886;531:56<7:5/154-C05410325<844:06<176*=8C952:46;6299<22;7//5C>:;90:1*43958/45;B<+=;(158172/.-@9199273,3,31*.36.7./294'/8981827-7/5<-45.91292/45916+:1>11.4813<-//4A865<348;,01:62913:6=<65F/E043/8+/1/41:5666567-I?8575964:46/22/5;/E521765293:8375/1456>13*;<8<3)9601-565:/6><9A4<573C264A3311.3746:0055?3;646>28/11?=/2794;32627A7,125737376.02345/904F57484:=:4674<=674/,155;73421:4;()4325=64-047)46.-79./46/A365A9E20::;9215253972,:<,3,/2A750>49771/@9=/.7:=2@/66(,53<75875/6;3:8E-45653:@:/2;732367354:936?22028/+0?:@.275033'76684B<2BA;4877=5G6-706383:25435611.50:412@379485:26>461502>568<1+3366127;3<82.15*5A51300425:7:49/4>2.:24:4782;55;;9165259?,?70826;3.;7075064597-:73=3B6:;7;;57164012-5,217<.4913=7=4=5D.<@@065/1?72@3;8.009@;57;1=669-8=G5:85,5=5=:62;A76=6154@0/839:3551995/<3:/31577@?>073C<,41/?2.83<10701986.34555;+.:2,22/51468;?5>96.G?;3:.9,,:.429.5A643A<57<-:=,-36>33:806A/-;C45935/70<5/=255/551/6/,D713296.47=C3-;365454.1/71J4;8/9A/?.2472;:;=/3.-15487?:135884.77.18B-20645H+162>945:487-:523.2:@0/@8=;8C9-<385101791*:0.8-@>D65)/05B3:+:2-:704=18.4;56648204.6-0735*>3*:;6.<7759:70<12<4=7<2:33;@..56254526190-463>?06W4256511964704/37;489635:7.35;@549,23;/->0657C00<<:304151/=0407-/20358,4/:8219@=73;58556<36538:65962:124)03521;+58378429:/=42/:147//:6059748/39<3E.768I930:4.3587603)9+5348.?31:;-926566537>7)15281476;.L40E9/F54:16628-852A;3C582:+=I380/5>3BB<7:58417368/<5+0,012::3/,.(086:=3<>=61;788&2-?/35751869:/6:933;2776<<3?50F:B:4?.,-167,?16:,.7569=221:7(15.20-.E.0=3585;=54*4<55079-76;50:82/9+<-40D7/4544628/./015G/>5=+27005404;;210D11200;4:/775P0366?7:74623850507<8>;>6858.:21@484/.34453B3122<1;8;<<5<>*B52/1;117:?6@7@3653:,59*53471/64+.7518<394//3577*58-:2775594073-00=;3:4-930B230:<4/2738742:/1/59=<9/30223=39-7/;.48/6,,92761537110:=/8?423896;83339@55=147<47/90@476706/574/B/>952>11C2-=5136=47;2>154;963937544,6-D?52.8.115/7D0091/4/493<23/3.*46<3-?498677073,:41/=:21/31?69-4?33>96<69649<7:7:4;453985<54L7503122886:438/>33/8?;9774097B/6>:03155367M44@6:?4288;62545156254299.8C501021<4/39952713:983242;6/14;;98881?.-224:853333H;78761933;211D+:60=4--76=?085-.758;72,556=6381792:59345AA1*45663326;*5945=1.58A36:/-4054751/:K44;8898.;186B.<>7=65531?5*0574/2.6/173257331/=4/5:883>60.68=6+404.;3<922154A9=3913;;5>@3719586;<461/F=38733327<39:743;?1:85+0<86;3>6+94<4773923>1B5=3<9+40D/:7315;6;?2<1;1;=2B=8453<8298=5140301.5;:308C=63<15B6:;4763E<:9576::804923.0.2084.56(/<1;55@3215933;63384;E2=*403;52&A837-.2A9?937@>8<<-3/99922394660381A138=659.47725/3./A905:>75572>0A863)/7/3637:82547=?45:9/769157163429/=H440<9717333/02:62>66:17.7/7.294367=8:/4?556866543;8290;8,22/31544<846;=679164-:/8<;700883652/7.26514473?>-4/7;/2D3<3+5=5A8414373<2<4861343-006:<5=32:76/4<28,.5521;3086/3;=7:456D>85;3:23=/3<:B8(A3,=-8:04=7852-695@6/6C@.8,-5=7<13<9;7/>14*6-8117)44?:;77+97138.7621)038996598364:58-44558>2=19211>34<4?=372;85831;97477.57<875265>-4177;22:3.657=67062379.6530544216=>?81:><>1121721112853=8086.5=032I6/36A;9.57197231180479.47:/163:13?44;;24-60>72221B5E53318.79862?2)95;8C441@+1<74434?8+005/745@5>06456474.00/5232=5><738332/7>4130C/086FI22115928E;1149881=@1:>8660/2:>249/818?835756617:853*-/<819895/C/3A74;@;96>43.:3:E35<:64<369:3.4324@4574;841600.4.<8429-:.55577+15:387//376726:;6218499;2079;71<331360;.7/::496865:71524045404413/4><74654588056831<5=56-385>139.826320453+73=9AE3B2788<140261885284232<62173=X52;591@=25213358893575813A5444?25186-450&17*-461:/9>:9/.3251;$.-127?562521/78321247514950255713:92:49074/>(3:3232176318067:;A952.:2>5-;61*A;@.:8;.>.4:48214:>C461C4<65:C:54953568*48D4'<45=4G5C?-=<03?:300.73>EI4C2<:69/;69983372806;41<=3+8;@392*G>33(66<.:+2?/7.1820/4E>0441:098B)9:'2A-6'-3;59.44F252>6>64136:.,+6=-A=2:0-A/?G77>41375-1D37=76-200;5D46'.8KA?=;:8+33B7.>48I42795387)4;773.18/0;?D38935.-E.2G331C4834607D3<2G55-A//G:417;//3>2:;6355385653/45104.?6@061527136727B-4-8.5C<3863@-65399:1;)9898982=84578959-5,;577-:/46@6;:638:80?@96;11:-7481101>482/71358;645493250@7/44;4A2-;=32.<6?5=5;4=:37;<'9;>51/57968.0.598518:515429651799=813-3;723:73736B6-71>865765<3?=1706730;'56468=0::;/:4:99>30:2:29)(483711788:99672434;672<=8.B;.79/;482:07;:995-<531+5.+1@/4<17?8734908962628:274,46B1532626@?32&;0;=396.>518=9837J<6A749H8=@77-245>)65'<37177415?693>.7=8B/53697260D9A059467/21>7+389,88>B855)<1395:@<50323,:50;,6479340=18C60>@:875;2/@A1>>152854;:33506465@*-;15,@=7>?+:147=5735;3151A42064;85:3:5>-0/;>3776:526;35;3;664DH93;87684222/28A4<7434222:48:5>11656;@=770//391>:8>569596334313;65709;:5:94326;7449937585;3209:B77;87257377>-3?/9:77=0926466=110;2/5;35838?0983:19?60422554>4995=3,38:1<.<496>9644<44,9=556846-2;>5<9=976.6184780;8;3230186512/63/694;4165.3:1:458;8:=0A@>7832,2859-5964598=7052/3.<79015C5114.397360/5;04?54769402765>8B::5>4=I>.0>8297.<974?;546:459;8332858+71824361915=@2/33>32=5=62483<0-662747.8663625>582512F0655:;2=253@7;302966=06-19,0&<9,55232<764B-;>2;=5:97>32;07618)8815;404986'.421*=737/;B/1,589135A371251?176:6:71(/8.3C3<0:;1:12471241307<3?4-333976<29343<,94303858541::87L;668,-F@32::C765>96276/);92=0551<9;3.864>5;2?@/573774/0;,;4561+74592/,3=.:05<93=663,1=855+7:?88>55<377>74026972668:347,99.59A-6B?D>A.711/43'6.:6407+>47=/27751.8<<'96;,2-51A7*2=@9>1C9@37/3/,145:/652077885371;40C62842:,45919?=9;23146;5995.=>1E3;6=78(0866E0:,:3+:<6/828665>;7,18952467:11=21B:1689/:/<362@12991998:4?4/1,.8G-0/6=4?6.2;698;;19.4<2>==5215448/20=,?5779665?51/F33A/9<6516326/1?88A:71(/8>44*3$7;5301(30;5605655/326>>719088?0)3=8:9155;(1;19,2718@88@71?77;:2708224650;68347*48--92@280249+/:5?8288<58.>3E58?16/6<@;;<46=174@461#,0-285-5?2@0.>/@9255406.4723:112286.'9@/6270:@0;9:84;244822<0:6<8=53166@734:3/8;6;*6929;A;<365444218.3762596*3694;72.?766541*5095863;1-4327::229082:79*65?(.6E2;9;7-+9350+8:/71930.81914<314B57/0126:<9/0,9';6@13?;:45898..292*693,6935=:<4647B78>:0+?5>3:;59)96332;97=+168>4+2>@98A8338::=100;9:1@62371>7306C/E878@6./777,>327<54311;4,21.91.1-54-4;3@3A6(178:06125/454<200915:.@09>;28>5>9>9;35?:83(@+@844344:5333.3019/756::8203=6//,5B14/392?4:M/;:82@76876;2?7055=1>:=/3+;85;B3<276,9066306080>2:59<9=6<62-@.6>+353)7*>1:=/072:2./0/)1-616?/4625:063>46201-1693*<+621?3-'/0154:414.+2+,4544-195)1-87;6.80.65>(.;3-92702/33A6."2,3-144/8/282171A-15/10146=6B3-3.:11D3:23(?68057<5406233@2834*83;G0*;/+).529+36577;519-8,476:825:95:7354877(743?3=8/64=1<=6.321=&+2302:=250.086.17;5:4<7083:5/=52;23=42331.9;155>5597F886-06,9875970?:39616:47<;727:445*:69966408<6,0?A797:,923659963C85;>.:41/8<31=6:963+58.;607>29;;?44926645//73=/;6376*61<936>43><=3=.3.4440./2459>0=74718>709247245-7653;9,323F19;2-411A.<;2<>6)47J5004<587:300@86-9<@498978.1;7B999315@42//74:,;<>397:50:14++6:97/7498/.<1.23D37-72;73096?*9493045638655>.37@0>04=5/4688806(09+57176:1*4544;:6671?03;18977=@,2/5/.4?6:38.90:4=7663,<:6+61@?498477<13?85:=43=<79C2;F:9043<33=47459.22/7@0<03;7950B35=944;689/=-/IB/?7910821-5>2;99721.581;-5355;:8=56,798:6354?546@4+25/<<3551-3C6844832=:/16975:26863:@=;?538934/:637368:=7=1:5:.@35<7546152)DD2390A90=9;/JA206<6269393444C43<89786A/09>?>3:547<974=84<;47<<87-+;45;2996C5I2=23<60>278258:5L9>-0;A//B7493.3769,928DAA713440B6*.3567/977:3:733/1,4@65(9=247>6.427.781@94;6>;2604:4>173D4336F92750::51745662935?2643:<54.384761626;8;6062772?(4;.86.780/:267847015?66570<77-23/(=6,908+6+5687/4/2=1-=6*28:6::+4:3:;229?47E297511?57.1+=20(@?67)1894:766;3>:69<77<51:-06014.5938/;65755373-;)80;<6849:;?5:6+/89563.71-12?.90.16/5<5>=77=:1:;4.-5?>215392?5777/3:38*(@417:74:1575;3?+38?.A;m:<+7@2434670+46773.401-38B/;8<91=617/++35=4/:6B?76259663/114864.;8*1:53.216/1027433785C.2/861524;0<72.71?4<,/02/4$47:-25C1=<728<2754:45106)348"6-+-51>;:,/4-73*;,2-D9<;*//:291E-02E89/.20100105=6-A<87,-A447<15468:46/013.256<<428@:3041674387A/2>7/=B8=.*68194-2@22;33/4.00:<8H:069:.4:13>3=,1718<.7;:45006136D:95/2,1450*:?4955,412;9-84144;755:7197-/3981347/39<75=90;82414;507:35957;0(5651342?042255/;>9/676=9?655A259<65,5..54261580.356601>42809:12-2-678/<5:62:867154<305;94=3743684<9994*<35/2.>896961627<;2?703363/3235:963;8&,07:A<><*A7086530?54>81;2=4=441<4;011<5;90+45=;1::E94=672;92709491;8E5745:<2C,10721779?,/:09716&4;=5981>;88/=87-36:5/52.1?909;=586.4;6=*95//3=1->4?549B32(6F8;3;+6236@65536757146728-:82:9294/=050/60:26D1789;276:41/358947.10/5848097117985864<4536>;02477246,126:7/=:171<4>57<6;=8;4:52>16269:;41/4<.7%*B:/=..85.8.652:4@4)F>1;6625<7E5(176469(>>091+2<48:9.0>9:1:0<7*4,6212:397:8<50;:>5.=4/97.1<89356.21.7?82.=-C=:A;7685363;23A4A>16979+86650>20-5=?520=578B280818897-4:94297:50:944;423=<>48513;26452970;6;.<44283184546/73:544466/195735804050865:58943/2197>;/576;6864:63E62201773992418973.77-8730;82687:8?2//139:4=>85.=:<160;63326086093136A82<4/2>827191373:C2:388;5**2:;07-455:?=,>7880121-66=331/-?A+70:C09<1,605C1773;;54/)0:02:6=349537.1-7:68;;,1800063/75.6;<1;769;168<7A18:,-007>;37.:2,/333.84*:280677;4404,6:>-8;/<=>*::38>>1?;67970>7;C4374829,;7372C2788=075<33224/509E81975259258'9/65,38*234;62095:5:8556:B4347-4187.=88A:4276112;6447/37AC4/0833889>6:8/.917892370445.<9/66:C<>499377;>7332;05:6<6:9568725-5-91(9938;30B22644(264831476"0+965@/;8951?7':0.A7/E"9615.852D+/3,18792.950,9E997147809/53@5=8<*/87.&,9930532/?2567<>/H9;94849*,49+C3/641<9032-5;+3827/0#B150<7=68/0:/77/55/7*;-3-4;5:5E.>,,06<32I;:?+1170?96;16,6892;12<9.6/662;884:;6;A7/A75-434.33585-;;99367?721462/77B7><,86<2589/:4995;5;7296612<;6+<0/11>,56<2015=F1:259,678195*0594302<75U140A2201>96?242<90-124,8=;487907..;/48-2176;2-=5124824.:43;5764(9;4*+6D32/,8<3G7194:85584?:771>6@76;54=7036>16534189832(40338<@(:426848=5244B568676/7;-:?D84426@7,45V;22541<83.9?6434413*1/54@275560313A54349894//>427,44:61=534:?116837762;96697<;35@<6.@?1432815242>29:6.172702E12326?728<647628/30:757060.A88<'4365,8144:>:=;785954>5=.>@280B9;9-03;<98:43;89304313=76666743/4766/;49:249;3>;5696;694<7C(8684:,01>29279:46:9029=B:A:537<8T4915/5<;237:L<3308<:47481>8??3,7*6269>>24@4,34==962293?285;+76+0824*54-614268?7356@25/42108;6//98401814><34?52>:0267<32@(8478065652?50289+=648.1=>B3502+20/?31863748/;4+-=308;959;>51773:<5@-;326:64760111898+5-<1,3.<9@6>;@74-+86:64A?/3+93064;;86;48;@34/95B7,35>58>,593=.8-.?7706@85&8L.87747/.42;436/9357/7A127<463>@06=90912;2.5-962:231892071;5>579036;3/34A/5,1249>=59>6424:9/5562+6+62;0;3F47;8.86.1691)>A4,2;$:707-716<@:@5=M?6226?82/1.447<156.158>?82<8=10256+@40360248061)=,.814/1565987449B43<555-/2023640/.7'6:3<6/4385613D625<4K76<=2:43A7987166636-88425;55D1-04;=98;58;/885<7415639Q139720>(?755247A;<855:9=90D3/302277?8,2;:8<3839908754=024674>3K=<25869+0/1:7.6566542943;73.>?1:18082A*98<1=2;J7818>=.:>09-433>366=<::55<&(4543>*222<366><;<:926764:9:.>45614:7?2285.L36::,4587,2=262;/1/<:96<7<=737D53227/?3*13.09/<7<7.8/1-:3770;4=83:98>;.7/529284>383A*9.443916782=:918<2788B72/57.:=56.-4?1*<.=25.52C04BG10;F4:-A0<9?7:;57450306446<3;080;=0-855B51-<.<8E05;31-764694B:8286783/577=13:-6-64758A.:.=51;351=58522/D9:?4@83/;7574/99867=401-<736.987@/,60,/4+68562506/368%46+530<4687530.'684242670;035<+5/4>5;76>274+7:<055;;8;210+73<270472*;:1@569)5<;.;75*4?152A@71595816.;81396;8322064?=2464652117340727>72;3<+32+)35<8745<963=825<8(2/384';7*,70-8.30*38114:;2;35936;40;.86130D;=15872374+2/2A>1/7:9675<*85-8352G0:73/;7;94-18/<6??9.87;A173/:1/:493;597:=35542@3106:2C:43*5@-31.D8@58.->,<:5=15:6=-24276678:8=:1)91:841910343/47;/+<90,43907.5<;<,&:2=;>:8859:?5<:E6<0<8511<3<9>86:7>:3<<453=&J6+,78)9<1-8;&<3>2;:8<5=59:1;9;8<6:>95<><@?::4:798;:89<:55=:6=<>;19;<47295>::988=56;<8??77462B58=9;13;;87765<=7435:>5;<;:9;5Y82:97=97@@6<459=8862<9256@<6*;6<4<47<=554855@;=;947;5>=?9:@49;;9339748:455849504;H;429.8G3;88-25:7908045-380N;4569/60816=?,450=>7116003180965284+82:9<1>8;,-,2>C55179@:H84;37.04>6:O746.844D?53;6016244054::6C:7#.728304:789666528<14//D2:132/3660775B528;66-91925<;9J3+43<0=1/3;68099;9144<6:H61823C>3;.CB0E0:=25-66A0304209.+695735-;576=26/0>/885<801;5/0545:=8833><44<5:.A<1167692,847136A51558B*5=5=9+02<3C22*,8>17;A/?3/:5;5=07>2/48<5.<941414A4+1BF39.-6476/:=<->:>@E.E0(:>(5194346-62=;L6,@,=>77?:32)=716+31-,9:;3=*8887830=/-7/'034*:3B54/821?00:6)1-A65>5085/F89@21235?7;1;-8>)//8,23..K<=5C.0592/50446<6:./2(6=11B>.;9/4*28*<322683=<9=2433377492@476,/5962241C55A9@44<2%.B;91,198:=37/5*1541/;1603:=99E2>84)857>3)3:15+4-.66+43886,7;-48040=A5616-70084//74<,8<62151.>-;332,6;08.(C0->:;0.1;6:)4;3<-==92;37C@61486C07?79?4--7230=:,//<2569'4=/*:>A:82445;+716>55977236B:.4029;5794;/9183;<3:2,66?=6AF366(.261291319<686.::41405.?1.170<'3.-4.8<6/3722106:94;+155275/=/<9@4A677<;3+4D558675:807385?583D8:4=:4.22.399/;6(6)B?3.?94:886/.F+036-327/9.12064245?60B186<49957311602@/7525>48?:4-:59%;/51;9:411=8084G:.0<=/.;90=64431134;?*29.<3>A/;8-3);:559/8=<56/5#101753:8A6:/-084:82#/-18@367466730/?04A46734<;121/H+20-388759<34)6B1/84:487446697@;9/76;6:58267+7,691113C29<4;/1:24L3F328=33-9:;372:46<85206<9073?90B78<=12.0;78<1:/874455937B=9:7298/4.572@194B24<.33647D/1.95918--67;/+669/1,;31188<86;63:4;<4998196;*38.42:15:8:8:4:5:250:56:@:.2A4551<0259562>40832589564653:80:25180658(5:52;64657145?4/M92721/6/11;36=1;:.50878637-5082567?783/463.;.378D0=760453/591959784424048540.556497-022;,79:48;092:83C<230979=3<<52433Q0627/.9@027C737;52;07-;2-0810375/<929*88/.504<92B42170C1923:.2548074.+.37309.0765'/:37/8.?,140931047867.4E3>9/*14A5;59.3876122*6.6664/@83046527?;2:253?4-972663182678;A51=42/6551,=3(-212&13:73.36;54:40/83/9@41684:347331<25)598326597-855431/?;375137775D205/5776798;716:21A4.227593;:41946-4360727;787584283480<55>35-:5399N.075573=33751<648-967-;+979:3;6;42:6)6/99:275@:915868>:)328/4=.-7898//.58*400674-0849/2828.0312417:7;7;<76--746-,293=5074555B3G9=13:3=>0,<7?0::?6622749.02593/7/0437?84<=>504?3B6-<65:55;/3/>8/5+270/6;5126@3;,81<47150296359@3703.6581E49142>2:26:0+785,34<5<7418,86+7937<=0G/911.4.145/30=2560:/29-.D6::6123731.0845*432815=332<;<34.=7:56.7;5<=2?<;4;430533424265=08222:0870<86=5077370438&6931?0D&3;7<3654A3-9377:,2923:3251/686712783737/490'4099758/083050?1533=3-5:106*3;73;<1>6825<1;>=1A::7854*<12;5/:6+7637:30733<17;:74313.874/83/096.1.<468:26::8453966654997534435+416121912G6A/72,28>55527--9:.9648>24;19369.83>7=4.)625347562-68:9'7:0/>:24235<6-2<77<3<=0+873+6<133433475340;583768971<265713,84230913.53:633696:0/40133403-.;/<3:-3/2+7=<000+62352/:04<4-0-:N35;?/8026-A)27-7=?7AH7238B.:78>.5863=.068B-86+18:823*42624.86::61?320<0*:)98?176880.6,95;54.625C-5-2=737;961=44F40212;)/+2*-4E-:;>6-/>2<680:?763<45@23+:286637596/04?3;24)4@9<799707>4-3>655>2825332>857->176:A253845C243;-8::3?633/659/5H15:3:<320-;39570/39;2>8624255007<4??@5=3?874:5;A=.04/176.439<12D:2>D59;286=0,70;9873,6,/34.+21-35115,+951<1(/8*+05)10>9++423-1.*522091E*0.-/=/73$38/93=51'03(3-.00/.120-)A)841;.-515))/3423&/4,-1.-2+66*$10-401/04+,-/5/7470.:5/123./79-/.&:604/4.3./00/<;6;37;,0/7-6:-7&3-41&,.5=):36/21.-;/0')0++1/-03,1935,689*2 .12734644:83+*872349133)45905(68-84+*-%04:;4.85-0133(,;0>759+0*;.00%**1307<.17+065=6:6-343036;2/D:'8434G274157335/83314743-70.85;54:;4,51>83/40477;9634/2145/+>,61;+59)449<;@5<9,5:603D@?-=36?8@6'4371853/458096;6+/<018:212>2/2>;;72<<=0=5;6572;538/E3=/<4,@6>76414624>-7A4C61553<70>64=0&..,=024/:5>=5>34249/69+67:682,75=<0>2A<80A8:=:-952;966:021?=2:683064*,33517:532482244053-00403<422.5246>,:>15369415+2>A:6<28=87:826-=18334346/71=116/3:,950?+:7+41<46?69:31-/.:41.766622;;;:9<7,83.747464;97,6.1;208:;82228:82=/B9>5F7-52185<864+28>=2325>574<6170;-1>243:)1---1;5;=44,.-/5*8.339099;98/<164672B365>838/:1=9&6.652.296=92-9937B4.;26//5>60/216622<46//<7?:0140833538:6<54831@@3.*7;*+3:2553-09E;005>:A31,:<98/-45457<.,6?+?;;9&7;79G8?49673587>646;2<1974;5(N<:49?3>8.78.429034?968/1<57::4424A@6:24<75;44@66;;:><3-679.3572.-977269?05;4;%5;>B4548/0454196565;::23764555.765=3551>9553N@56:1=0218470239433941098<9A;6;23:1<753E85755:?6=9782:550278334>=.)35749625;6517748277917A>433=80*6:2E8,,5:6<24<39334;-9404>53FB2648<+35:57<05523<872746;3?;442>39@*0193:233,24836+5378855602;3>=14452:)3:3?@>59264-:2?58>5/7+:52957/732:=8>82589;8C3;7$G1//=82:02407A+,H*(996>297742<4-0<73956B28<04,5979-@--;27;<2:7-;4><8316516;:?166717>-?<28/12-246795D;40,-6/36877,+16M0.;/66>6D-2+,39:2>49@H5/049BA/+6044:>155/92664/@9-650/.2=9,)5;643.10-5;0125/2187DC86724312/7/06582.:34/2395.2732286..03A704.,:302-505828J/:0)'08.27335=73A;31093*50@97664358';-5B8.740<81-/;3-1002'.7$6=:574@5.02)8686)704:B:598127293@92;23619144/:)2?<43?+03/-0675<+82,1;-6A;<./6=/80?/)349B-231@2.4:G;4.37/9443532BA5*.3156<3@5;2902&3?:7,/:1,<8C1618:.1:;@148/66:363556->04039:9<85<700::A*/3/:04B7.:@6/0;-281;:/<--2+005:1568?2<>8:(38G6/A@><;835=;4/0:5;2848@'54395//=C41979<3<0>@8B5211.5=66;2:?304985)<6+:?<>36536:35:3094(3=9=::9831687925655122569>=195884,>/661990?>6305&4<5=/38948:0419:/1:86=83/B<843>87368?@67/5==589/93255:412>:10?:5)86959<><4<604,?+693?/75554?:F74259369A0*9@:74:4*>9826;81457A59-1;9;;/51*<343;9;37/:5?6.B1:*5<5752B3<96=8/518,:4@8366=;6:=66658.1F;85.6;:94;096-11;5==2*-5400;,&8/14:8-.3.=1+=:0*6358?09042503<*;48?71/78,319:/.65378:.1=80=0;/277380@4F-9.34/36/6.64>4;77=-739207>8;4>/357-:9.;0:942834-2?253/,9B1?02+<>@17497;6)/@70.8<;)4893=7;=.2,66/72/18<61532<.=8-8974680>60074)B4=4=,557+24087280.=:-657/47=0781<5612.7?1J6<769053+5/52.3*<52@:588=:<329666672:255;59>/>:7984<8/5.*1?8>44@3296<3A9*>5692;7/48-.6/1<4:6+8?A219B2544+(-+83/680;3;1-:3:25?36-?.6+19403;-39EE6:9156.-0D<:45>257=8951<6287F,399/,3913176<9237@-A+70;V478E396-87<5C3`231<<5325E2H;639;7A52=,6435(3>/58535@551:+229@9:<108:06,4@39-;5/2=480:464-,D06476499.1:+9:<226/3R4/582:/,.;;7:;4B5;443:/:+@7=3;N?<965315O.<.;;.//:1=<=328A33339@..534:"5414&6-9A529A:2/4;2 ;26829;65.642;949??3556B;0271:*062:4/297>>=2,213:3500=@2491=H//68*18-;946430197=>/18;2/I4/252:7;4<=:,=25<=//9H4:5F5@>48(8?5781:406b56-18D5=52;B;35G4=>1<;57-07505:=,51<25-:--2504B44)744:,23I5+9155950893-=353*2?0?;;22437?N8,>:K1<87576+56;045/5154/,9<451)89$.;/4,5=33/4.232A20424477850016;23,1(422456.3547771(343471049?088,6>0.,26//758484366:3316<96-737609>6-9(;126>44?62P08,366/131426/1:?05&<+83/31B20.78.9:659)70=2.64:B;98/6<809957<7=34<82==11)8(178??03;484635A7=533O72/<(;14)82960?119?1-8<.7A40;;8>+3:,714F556;C=3.1@8,6068@=9A2673<35796/7@:-4/761=:36%0.:@:C72/5+2:35515F6;85.04J/887563652<59321;8/:8-410<97<932673>;6-:7-68630*81-4;360;%84/24-3=2-A3*+37679121/>2)>7<5F=981*4*/-2'-<6.4=,0?0<+669:1.>/-.E748:=76+:-634(/D;.53;@GE:17,C)>;B,<0=97A=?:.#6(87*<3.896073*::31=*-5'2>6B351:BF6X5C/00K.>85Q&6154,4;)6I(5W8;=*101953@7/<;2D?=<153:4/30494.47601;39)73,=F33:806/5C/;136?,;:616/>:938=7A;C9:13426/-97192;613A=-67.45:3D68:1<15.5;705:08,4&.2BBC=?4605508E55=;339469>A+BBA68C4.,1O1:5B@A17:/B6:88459'68598+;<6A4-:47@5.6;/459F.1-889=@064.224574914..232;/89=?8>>507--128F0116675677B+30;8;/F46=0623012B31048>9H:;*58.06301?5/8=>8/9BFA11K-5:95703/37292892614798;@;0875685;5'6662>2783G4A:8<>51@65,2B372)=3.+499845*016/8:5E@8.<--44:(87456<3IG3:@217051:/M0+19>7.37L4>-/64;:.3:0E2'7-3470#:>?4?'57551;1=9.B57813;,8?40?7.5=539=7?734*561B4?7732:>834:A48/,546<497=3:=1<644:84633645:3.F?-;032?6335I>1554534-79>4482@-,)-+716>5?7195>/444=93,=2874;.6B.9+1770383:2?@>.=>7A28673;/*<28/57>CB97>.873:H2966;33<3;7///4=79612++8/3994464:4945?38:<4>78/553E757D0.888@67029C.:4==4*-CKA482<&04?6101316<<0<28.7/+7:54=6)?310901B,40.6-501741>P46P<107/43*.36:@93'-2?,68?66=307B49:27K8-4C281593<92:46I0G+:8CO;49:+S274/4;0=0<1762C;92??/2+6?5140669&/22B,2@9>*;/:9,C;,B7.:2841>*251=6A7;7@>30)<(8'84@W-//0)/B1:4P6642#*;4F8.22*.0?4;4*22A:.3:,3.d3>903E87+<4*,05A9<3+/5B,0-9/415C424..0-E2290=5=0402=A@>:?3?10>,30<6=:8)72851;;;.:G3:755329;:572283D4)+=C9'4/6==817050**3K-A;082=0867M=:88737;7327,4-03G;704C:593<730FA+A;:>23.A6;2/T-32>5-<11B9)A1N7;:492/0031<8=7?,12B-0C3E?3:2:/9B<4?-I758=8B89191<.9.4:A4.7-93+6<60;=6/.6<=54(54.44/8F166*79=?124D4:-52/F-.742?122?125:7*+7.27760+2.<63<21-=8.;/BF<0+:104;:-3H:738'0;/6<:<94N,41-C:'D-+3.3`5>*O55G@=7--558,8*.(4>2915405416:.;2.@5045A825842-0+=5D5J/4.2>9460+=+9/93$72;75-,6>Q,O6//,C5:3*632+8244;<.3&-;6510227-48-5<.,.65)+&5)/33364$4@:/67B558=3A0.:2299*5'6-66@-#C48=.,536,/9<95.9D-/$9433;,%49>=32@21*8!1;*63;);++*012=/1;66183=:848B48+>0(:+5)25<42,455A;38,:63+*2(6=1923=(C<226-64=1+7142)611=3<4&29,;E=61185>087?4034>:,97257541/;71G-:@69?'4.023>=8A,292-1,:47%5H331<%2D3372/::6<5C:5Z377(3/?-73D:2.?J460873+6>1;)089A4148939?151=76.8::H4913?>#95;9>1:,>9<-97063@52275;717?(7'95:,.84:3583<.3/58E.)53=;04.,9F2127,<=/=944:900-0,88735B0:44A528.6.:4/77061;;1:78*<4:4-153<9:106>04B64:*12?63/18.75C<484828;(8-42>4,9=:-836;8*(2;5+61=/677-0,3+-8>:8:=01&/*:*723030,(J-G69>4@7129.2B2.)4?5;><14@:=/6;90D3)A/.(949*I4:8(2<:5=@2:C16:;;'1-88-B.BH0'1397042'::9-@O,9+A4<391-9<9;.>>A311;<44<552'74-><5W5-4?./2/9;(/5.6+778/5<49000>,B/2C977,6.8234;N4-?>;5/).37=>?/82@;1-:0>23844:%781:7E6-@242.9<4/1@65.4H:17>:2A%;@979-1:5:-99.A853G05?5565:@>61:7.=07>40//;.C8.51<@@97L77*45<+3.98<;H84//;)6392(>83@/02/285/5B3$->87:;;5>,062B8448,515><;38:<:8.A6:9B065A68C44?30B03/6-2-.@31245+1=FE.'7+D<8:1<>=.084@@<0?*7,C8L87)3;<;704:;0622*6/-33C81=3;4#4=A57==>+0/54:O<3<.;7->D;<7177[:28@ZB).1154B346371;941:A<>0E11'4835*8677742.35(?28@6-/4;5=0@:3+8,=/4@0)05:=5.D88C4695:357AA15'007.9..A?0./5135809157?-,;.<8655@@564.<=/$=7?<916;5E611,04414182<258:14=..;2244<2>.<0:6'0-92;&/H912>5168.(17126*0-33423-595C(:C7263*-885.9-.23051,<5&-;5&6?665-2'8+=5574917*B08<5<7.22A60>80/<<543+:9D(2/=./.3:.<1-36510IA,6.81;>22;*7,518(0911K;==1144/=492G8;0/7>=7267;"654+9;/3573?55)@6I55:)4./08<8288<84G>+31;.E-2?55K522387<<<66+4<03268::056465=<09-02=B:59<79208=.7592+17;6B4H.:70,;1871;/>@A3J/322@1->9<86*93566CB10758'36.582/6894=.83@+2-D04*15>-D2/20502+3<1.0B93/88A6A+<5/32A1.1&/7.80614:>/2;#1./5-"+44=,354(>7$683592!E60104;67419):7745'4-::;625?4134-;,25EMD3-;4D0.E/.5/:103=3>@969+D9055643(>>:0443<.<88&96068P<8CC8371,/+35B9:3C5.:685>=99<42>6,.5*E=,,:1729O=24139$<37)8;026==17;-/(<:9@,<520,72=@;2:459@+E36<.<3=&:5*9<=1G;D7C1;3992164057<22058/;52135%60C830.298=-4C<:)=-=84@960,23831@/115579)<7E6/7-6*6<391A?B15=,91303;<=4ID9=43>61<625'7299;('/I2;-1?70//4035271,6+61;@?874@C57=%:AO=*481859::=64+==358+.2,+8844=3;227608@4AT..>+46+@75<.;5218:9:475.B/=4:>1;/;830A*<:8*-(00'38?/5=8?&;5R,919*7+:@>7A/878:=>?C.1+5+-:-65/<68?+48A9<)1401:1/*?4:9;1/0A5@*&;316BC;)-@*D/=#;24+BA+U,8A.F42@+59;)3=7B4<50HB0/487668/::+1*::.2<.M78:2;;43A46<229/F0003765,,,5-/8?4>6482+31/';1:0:>-A@.?,,=16<50@982-0+//)75381);<0720+8112F,687-6;-:3>14.)-=31@:A83@B4;>17=.D7(55/82160.23>.6C225388-<24545-+0"G063F@3-,:37J.82.?366,)5:98163!04G47=/1372<=/2610;67:4-D=::90:5>?08+2=L.=F@4;63D4500)8>;0;*.27/6<6,)4B)/*-635?1X@/<766.338.;,6.35,@1B7(=43(B48G.+3/7,-45214198%?0C/28E.674<;-8374<74741:-915,5C5/8=*?;522C*,'8.93793352;)7/4092?;55/>37=69)70=<,Q6/3@=-:-0-76.G.2-3*9N.@-5,1-7959=-40849'99462V?91>/A46;842337G4&(-6>68E083*0791-0675;;&12K8;-0F'7=89-712@2.7675=;)5@/1;7B.KA(*?.2507;3,A/:77A:,;B2<-0;2@564.-:/&=6M?2:6956038/<84,-:/AC@46E1=8B1>2.868E67>;=;2?-"53214131-./0277-.5782=D,2:26,,@*0@152?.83>052-:7434;>49B,7:6K+1-320973209:H>3-;.C@=>63><;39-8195162D3D83371;3<9-/58+-*?C484.,B597Q4/4>A97;8A@225<76<15KB,=8)9-K64:7675D-6/4-662/>5D73(7+9=459%=-/0G6:?69@8:=1:>00.:093:7-8<6?A642/58;249F437:.56&+61:<)5B26-71:6'57724'=20EB37020<4@=;**24>71+<+:32A@4<3><2,(,=2-6247/,;6:;;9A5,1.;;?21,=(22-?=0;21204D=8495061:<024,719:026+?0@922-2;=;13:7346=.A40:325278-,C37?7606>85<26313<703D:?92B;=3552.=96969;15<4B.352963-1=643134027746F:3=449>).437527/243.;-8/54;.163626/2A008-866820:436<2F089;8?J=69A714.13>9;-314875.A->35=16-/56-80989G3=3>42.5-/C+I0502864/8:53@A94H3+6<;D:+5.84/81(048*/439)3120&325/8595>G,1*4184?--5;@-B>3%?4:960DE%6/)H+):26437E65/25+:55)9-.5)1>$02=142<397,689487=110.71,7H5%*4A<@7<,;2410-08108@;;43@A;2-38637&177,9/.C.C0N;-368?2*>/8C.14378271/4;443/5*'G(15B55.37532.=>I633430453+94,;(,9.6F++E464499;425<9/515?2A97HF.?8-8764.:58?*6D464;?255*55,138.'3-334;=13+/..24*75'6-B0:58@2+7A72#5-7W4<113EA./<. 0-047=E29A7;874LA8P0%9+A;912.@31=8220A85A:C(1>/>&84%501+-=2-/42=BBB==+-7;2:48 .-0=9000)1.HA0:66+O0685DF$48;>G.52J//331.%-@+(9-7?6:;2977*6F57)53.3/=7?:68H@61:+(7,+5L9=2A/437;4404)+3024TE25:7;19012,,53V1F18G0:8:0/3649@;243-./[:86%:03-5723.@714$(-0,=33(-0'G2+7520<;98,3<83+0)2+DA,9032;*,2311%,*9/%524S24/4N2DF69.43J=<4?1D0:<:A6-@103=;415,:7G4/@7%/7B?5C/<0:*462D9+6<-.E55@62*618/9=2D+-D8=+T6)3/-142%4113311D51049?553,:2*7838)7811/1/&C58/+2:G552196?11A.>?1348>:24?3&1$72CM650+225@14114A:9+:5,842.7-&43A18F7/<2*=-/54A:-.0E82<5\4/0/60.01-NH;4='104)$CF=/.3.99?9N1+2;2/,:=9=2K>2;5:68+A?.143-&?;93695D2;9,;<77F(<6+5102%00-#+)K63<0?8=5>13@)1052=>7;@J/)6A1==4B.-49489=83;3>=%2..:835443:D4,7.-04492-87622*78267703H238;1?E/48-=H.8>58=17,9<8=29?<37459>?C>23)259@48;:9296.<86+662(9%7395&013/56.61236:9F52R5F8:;=141/?,627503+80I-;G23373750.4>-1901JA;3B51/$?5*D8,221.5';/.6<0=0))<6)1+-1A)70;4B.,/44>/2/020+EG,)=0G%2171<18'1126?F4>00*4-6';44@?H,3?(/5+07&1<78156+I4BG-2:1*5@:7859.47:749:)12396=5,;763D495C;?892/;8310)040A088,-/3)2/69E.C079040-4;:2G397.+4;:)0=.,7F$93I=835:8@+03>4::44+?.<2.257A45<755B/+//:48*4341<>>39864.(;3136;-8<4:7.+9>24,.-7684E/48-4?H3;)549702193A36:30434Z5:;3/=.=806.05:>:-<.24@E(87.6163.232;6D79=3/B7?01F*A<:?<>:8D;62803W61*A09=7+=H242C16842>@B@?K;:,1;/77@5.28.V6;41829=7/5;<3/H:>6..@30-:4-53*@<6-;6C4-70;,04607:85520A3738*02,)0H77<.4/,5++),1'*83/,;>-;.;72"-3121=)*1/96/.0-*8269661.<6503*0.43-=<50>>1602230;/*/9>06:>)47G81=3A9+0I,C)-+'B>-(+;80'672)737,>6:5:;F@03/;C1;16;/7(>20='681.4*6*:076@771(77(J1176/172*.(65+H9DEB4&6-9.5/63*70.,>98.7$(.:21=0;!8B/64@65=8/A1F9:5-847;;645A:(C638@;.7;5:5'6:10754,232AJ042-,38B<)+?-?*P63U1B:3+=5,9234.90/1;74032/1/45?8/=6517>6513%24/72'(>?:G745+0:HJE-<05883>7/1I9F76;8::338,>9352A=0508L8<0:4391;6418247,39:.A:)33*81/64;5;1:+74'<4163250*94(8>-*S2%;)08>;2<.6229888-589,>47+03I/.4X<)4-4+2;33<86:-/;/6/2;/3;.E078269*1824:8-76B3,?.@*;,68=4323.=35644/<*5806K3H02@2868/<5>2634C<4424.8+*23:;6;,12477B/63>;>1<:;8123646336;B5216937=*8L38@100A7794-:4M@548>7;3<-373;J'7/<4;?36:+6710,07-3:+3@:1@1:0379M8.518055/60-6:*19?072388/6O6*?7/-41?A002<5.5C;33236<2,420?97;872=;G<5;'337.+96#7=B26-82255:3)6:48:824/687;23D:8+;;04648-PC9?42274)/(37=0-?70;2;85&.):C-8<52;0;8547?92&;A:374I35@/)>198+3'X8.5@]B:6<58,85F0.;3=0;)5==604(92;24<+2DF<0)7=3549B65;J/+13;5>.21)653<4-60590442'2*C9+(06;78.06;<6;6*>N,@,/4L86<0)88D=%,3@99167;65#+2&309JJ7(+2,;A.):4221/50)2/A263247;4:4/8=1?'.7T7$7-02*>D414;7,818@236W51:31A97//)8?5-6C:A9/>68K5+27-,N3,+5<6/C94:0/.>2+15>46=/4?BC162:;>284154,97644:71306T240:C76747;8608G14B52<66<008487/1<34;0,?43G>:8E2:C<00;-745><735@:=A6A:52:84:>.;987-;:+:C/175<906/C.7436=;79.C5744:-22;1:897(71/96>:<4F5/,45&)6+1B>774F2C,008-07-4=@<074<680:5><1;8(A:9*.5E;-9/&617229==<65323@35109.64)TI>>04B-1=@?86=7,35A+A(;6,?AB>,F393FC08/28<+50H@1'>6I?C!600-58FF<5;;7/-=:=9/A4',8:95).;432100G.592596;8857!5;3<;D;8;C,01;39?43:56/+4->7'1B0.4-27092:*+#7;80633>3-7>570:4;C55)11F964-3+)4/:3%.492)6&,72*=.E2=ACAF.7.<)/38+*3-2%/9646509*80092C<6-0-5'688/>.>/20C?>?+,)30)0443=;3*4259A-38855-.L:/*/:4643C.H0>44?4:71%<2)/2927-,63BB&4$.60:;:H#60'5)115.:75.F94E',7;<:(42524?=5.13:57310*9091639;81A28K,A7/.J:.*243-0-#9544./.-*9/;.22<9<66A70A05/6/<>520:625)5693-6A6/=6I::/9$50,1A?68<31/12379":3/=-0=17$@557!66=4<6C7;4;;5:5*59=0;84773::C?=?N.6:4;3<=91732<,64/741B5-142-7?0<3<0/=5:874.?8)+2-3<123439=-8-.)95/;=81-7865.357,66899<1:17;;6:@06264:8138.5CF57/7045C>02-B.7:08205H-534:1,54+2%114(2;67-1=71&.&=7336*=2*26@A8=A243*..<4<59:42141J4B2666,;/:7:633-9/6()>)-:496102168=75<1$B7+102+Q3325252.//)/>6469536.*;<>*489;'+333075=-61=52,&/8719423*67=240144.095<62A5->,3543?7,(<28?50==4035B11-39:<.42+G;0/B5B6(@3!@,9S60-=5+PE=)-,>,9<8+80406,3/<516-,5A35/6A3*5.-:::<->1F.9<9H141:<69.2/6.*-/7570153=3-(9017163.8443L9482545;9>1090..7.1@96?55-9A:934A?50?3291/62@736@57@51:325D6:%7936.7.7:,C02)20A(40>1752/1;6246*7Q:9;4/;4982I>+:(;.8@I79)7?9:1>?A:@=<5/2,67/4<52;90:85;):70=@3)?G/;,8&C05-5*72726459*8444D=..7=6+A;H8;36B=5F>222:.:64@/748C/0==,:-37J/7@;1578/<8363.8124;45-`?3042%:71446737;0:.445L0:FB5B6;19>9;::7-46CMT09182,?4=563>=2I01623@9P8@>4S,05.=2?16254<:P27378C&57><7<03333@+&N*<6--;4711>F7*663,72>L;0340F6933735;0667A3529d8@2>79A<=4811;751@1=3::666/1<:7(63:9:66/3+576415.8:8,F59932*.+G7=D<13?/)6.7*L2389<-1>,4>41=+36+73>>/17A43D8:-1E448743D=25:5E27DE496:*=-732.8>5258<296,-5.<;:1.1*48=*6;63*48098*607A33,25?:7D(6652@94(8<19/8..-<7;)?E3*;73Q7-199=@)&I1:@2)3<84)::4'>04032;17'7?<7)<7=<9$725/155?:2="9.?.8@0468033H8352:1;:36B.<12=9;;:/8-:/..+7;4367=,18-/03.196*:7.9007558,007.55007B9246443+2G91334302/:K;3I4,34F;633+7*561638%1;0,E.4;6-16,3'1<85/29KF818-6=8,-A*8.0127&?6=2.2G<))7,<@50-43?@;/.08/0;=2>2C1,18#?C1/0>;6@-1*J:9=7/1+<-;#<0.>52>7?)1579-/..%<;:36C51:3:280O/7396:,=)-:=-4H<,/4)<6'933;03?*=6,,<58/8644/3:&%.8*:7/.1D54<,=0488D96@0<74780:6,83,)7;#@2+345;35+/9;D54@J/038I8I4;568>983455=0=&/)<61 7;6:>;+772.D/49:034A742@70*<8180564B1933:.=-0,18').2 ?6*:2&3;26>853H2.526>?F1;@M8299>9;2/634=0*4-:924%666>4/:@.:2A@.;==:8,-52921*7.5@<3*+L<73+64+1@/,7,0A-7)>49*6684<82<892F&79/<<14<'915)::/>&6;63,6B3<@>>'*9K2;5A.//>/3-32-B=6?,92+357/7.G=J394:62>(>955J;74C569:<.:1&=158;.=/=L4+6B35=415?>N:28A0785)6G8059;1L/,H.3359K0+04,2=C5156,/-<59+=.563(94304+43>3519:409=;6%8D22B042>/79EK[21I1/5:92-:1@=6E4856,@:7,+7:<093:7?)9/>43=6C149;=5+33232201<.43117:478=-455018518/22@70-2L313484//+0+83G:1+:=57-0,=715576&@.77036+5,631+39*3(7*:*@781>D996@<.8:25,=,3A65:?14*>24:0938/4:3-747467;-/34<:2476:529/B61304@&,)024?4/1A84;2,8%-<885843;/2=.46-9359.8059<(C78<72=;169;53/216/86<58/,79636C7254/+370.-3.9221,M-95.1030,2>&0B0-/34+3B56G=@5>)3N:3*;05.7:2.4120;:@3%I>;63<*.>67:;56/5);>7;1<8P:<1/+T)B2:75.-<76:;48@082401C4*+347:J4603M9582,.H/5<7=59>25,C/49/:45434;074351B80.4::7B8;2O8+,=&6C-=3:/58<>47:47-3,,.=9>0-8+%=3A->56B29-/$48/8DC269;8327+71?59F19(-:59)7*7.479.-72*.+,":4C:562=/22//40F6?:>A7.(6<9533F7817+8-25+71*,77112:9446-,488*:4970/4Q28=5CF294.4?67/44//=445A53.,/59:63?6=7=81-/954488/*424-8658C2:1>:B71:51:+35:=2/3247890;/I7=02?50./,913>9455=1-37604,G-6=E1)08>8699,.,*/36;24@1>1>36,L1/1//F>77I116E2)235;8/7272J<<&@B.846.11&422::41463;-3=85:854:*.-73B:.<61/0799=9/:725.6318+:5<63;816A+6-3N159+37D.:637(/'3.1+;7>17=I0?448729111,6/K,04>4'.25G?>;/27=67*93'6103/80++12>=7D;>:A:3?+177,=8855<;4967:83=:>4;75,1H12-06544350-;9.16;4234>7359@?:A0,:82.76<88)?0.1>356H28C147<68:I4'44./1@+2<>;7+;3-26:98811242.653>384<3-79<;85-434479;4=//96C346335$05)69035-;4;B/25/:*9282/)F,0*;85218:)?+8111:28434++D<.2);58+28;&-95=(0:3<:/&=9?;09/6/3A358/17-:31.71=1.,E41479H188963.3,=3,+343-503.45;2:@2186B85,06:.41=/:.-851>7J10;;*6.+3*5521731;4394B63257J//:=?6E;63<18-0889<'39E,2682/;3348,74FA.=1;;5G;=7320H48C:4865<:1J=707.3=:16146640)3?,.0>49;99910?25.92/(B253@*54?B04:,0-2:>BM;695;1I82)826C357<<2469/-.@696>4:22J:++=2;41=:11;3./561503:7E15H73=98.83/9978C810;<70;;.A0:A5'.8.<817+532<54=78692878D9A85:;0:;30?9/9;-;<6:+-4D5537241;164;53=07969A)0,'854461<5-25<09>/7923707+;329,>8.@'822A>86?64D;85679.647/3>43>&4/.9562;/79:5-GE=;93K2827:<0-*.6<+634-7+6025,825><3,>:B9700,?.<8536O46(/<1:?0C53768-+3<78JB0.373-7/C517>2<-4W18:%K:>%5#.:+*047R.+0+2.0;4D391:&@./,9C:?657(F8717E033?73C8@:5674,=.44460-%98>CB39E,0(2/;73>63/.52046DA2-:81-9=-)E48344&.02A&)+:832:4;4-.-03B@,;*46:80>=:;;3C813//.51=628591-:!(59+$'00630;.B1.*534535058<26A/E==3,?+56:83@.04103/517?=:352>:1F32=6<6+3;5+5+<<63+@3=553330578523>-9.2=0*--292:6K>6504'73766631A9@@33N16675)2:4F44-65;83?3=2:D07:.?@595J.8R.BN2078)20.-=T3045-@=9/?.&O1B-)08).*4?0(65E17747'<+@436R064C3,4,.7-.3-60);*M/1%355,&343>6=)7-80J/755605-+032,435640145:5,50/3<7//B1/38/0F/4:8;1,;1<57<<;16:/5654.8254,5:;8+021B>1:,68.482E4A1:4'>:B-231>0;CU066FU9<:,8=I/+>B/C@4<58F322>)'1='36-I/25.64B4:M&94?*9=(75(496IC?A923=C21549<*<=63):7;9A=9D61525.9&)11<:4/4GAB70/D>-5>6/*2439765?+*<59;@3;.I.G2=@:O899>)<>16=;++32:55329672=1,,4780542<4:56C31;20.244<;B6.10-07B89036:5(:2,48'709-;65-/10.3,<543)161129AA10;279508:5177-.@P3560?128=112667355*49588524057-B03?/4*=>E78%=/5:3H51+4647/-9<1>,2*;-62904319.226=?88@84&6,32484645714:>35;78=,283=2>?45C330238-@:B.)376@,775+14(9-81A-983375:A@5/);579,:25/+;-839:B556.39;47440759>.:=H94;5//62534013.4>5:488*:2,6.>5:4;7=4:(6?:6G<,B>339B8=1<=24D18C@237273>5*-.&,54G-04@-7147@>0>.882066415BF,5D61349:A?57<:;9>6,.8/9.<0FD5.208>7(1=60:633/97:54$<4:87>058:"<5.3*K4E944>:5#09/2;858-1:4K826>5?6>27+0:6--^.)M40:32.4?;%6315=;265+3346>C15:7:9DL%#:330/A:570779;:9F-0=7I971854:95<822E2:4?-<4>586;6:8'/:88;11?5584=9@0,:=@93>0<6=99<691?=/62.258>A>=43D73,*-4>*20:14764C:02><2=1%=5496=6:?<@75E+=C@5CGG29A6D40:8=.31/A&;.52?410>;85:/926351*30.:1613:735L>1B/)I0=5?9*219?C9&016>1,<8+6415;%83@C33#4+.4;9A3278217H:5;3I=19570+3<63.7203#H*82:156<:680:,05248=/67=423///A00601571-5%-29<7$I<577*60B*3/8448513?.//1R*,.?344(596"68K=16+0<>)?60/6884(83;3:;8//7:35.4.2;2;<=5=9C11266A9/3/A73.4809=B9,417=96)>1=3.-73.7<+664;>21?/:728=33-4<9<8/>-06;99*90=;4-354202;47<,5557:?++5D39/24-8I3/'221-3328+-0/46-6/0H6<46,8@:14-4.5223,52C;05@1O:/3?@48+@/93>9/1;B(04/.G781;:>D2+2GD:427=?1<-;,!.56873340.6:.65A.7+;14:><-1:8:0;;343;;448A45/2:)(0>0>..6<843*665;7F<1DK>9::?<=D<&;64/<-5-6434=0-&335=65G54=1109&7F2;-530C35798&:,93.-=B55+065>:;6.-777-809-67=62:-645815?9*67/1,1.03-*?68;7<9:5389=5.3;;/631.;9/23-=4F//1448456<::@/4499./6@<'/52=2=62,A259/20A312;5A1;514>953=7:.7-34:1138+:0>488.3.EA1<4/>47,38308>6;85F5AM6018)4A:/>315<3=57.5;,6L70*92:7903;7937:3=8?;8<23;:5S:?9:=:1H8643<-53(2AH<0,.0:%.<9511/4097<87<;5C61945<-=27H706?7/56047<*M5;8/97422-$/,44-<=2'150D586?6<;94C227389'8'4068-2;5@EI@8;/B-:>=/:;%5<;4;7562>/6D8==G714/821BA32K423>29=509;+7.3:-6?1+4:<8'465@><7C5E/--37;>O6)3-Q+)3/1E031*;9+3-0:5746850200-@2.63*.*=2189268<2X=:27-B*).42,0)3N2;,FA1>.28=*178>-+8=)2H-%4714:5*)22>94:,71.:?0*02)K1)00B8409JQ3.:45==03,6*93I48<08=%F,46-@<6:125*,3316E95;.6;4-16;22:I/08911Q*:468A1<>5=4/8B50-/6J10632?20.0=9)24228702(C.:3R3+8686550,%19/26+9ID758G.4:.G:460,A6,2.G17(4631319-21*9*33.8+4<,775(>4?-5=5.@,4D9:A74<-;@K.80;46;01133*(1810?11@0/;2>?.=5445777574*7183=630-4;9:7:96775;5386>8548;3325712>1376498:O67*71:?112A942:5373018444E468662505,:?2.Q738738.4=338@4646<8828G,984.4>55>3-4C/=16912953I8I034-#'.50'C08A+1168CA#--;9-7140,-5B-286846;091&5D67(40/7:24)9D/4:%?/2/T;.05<401;,750.8HC2.>9587?2+;91.01/I7+0*I,150194:*>7>T+854;*C6.,2;.+>?D5/4G0/:3<*-8?5-0623401)5*16:36/1/356=,.::71@;;45107/.01D;777/<2/J0:28812166=45/;+62:19=728.5/4A4?'3/94:A2E34(5:5+70<147@4B98A;45,/5+/:/40505;6L.;B23,;73R423-@I27>466=103;/F,4;>/3/8841G-D08+A4184*G-/01=3@>9E.43/=6097;4?4.3:O?6+.4,.(21:4.+;4012.60=1.,3,$,8=25E6;?0?9/53*83.3<>4/+39<0<*/C7,B9*>363069=98:27724851A.8_4<*0316/05><2:8A.555C=;18;'G>H454987958204Z1/44:E397AA7379531@81-53@,:M310731?1158<:55(1=9;64103>-17?:9<5<771,67+5;72427S<8:G9482-954-B%=32<00346;E598,(=613;,//46A61(2443713*2:HG0.07;64.26=)5>6393(/8J6:22(2058947-=R419;<,-/J465J5;G4A-33.5?04731C:7E22-/3B:3@;3<%<3070/262;70035'6;=4,46+1/-19+17431497/66602?7672:@8-;->3=1F<38156<:0.;50?A3=F12*=038@>3<44Q8065,/098<>73:/38@,>67+3<<9D/64)34?75;.:509)E0<;4@C0/P673334548>4;.//9E-C>9-;2030;4<832.+-3.67>:876427N9,6>=17/:>94@:M>/9G005.:9?5<:)3;4B471*2;:>373.=?@=401//83;+;79916@40)5>@;0=);I%<;233';>098;/;78%3920-..333/021$(@/681902)00/5;3,1:6=B16'0-881/%:4368-/P;>837H?::F+73<810*8;20;/.4(=3*2;924,33/16.-8-C607:A:03:0?)D04-2,43.61:720)>0>E30A75:2;./,39*24825-94?044=/6752.51,34592><0:17/9636+.1-4.95'>6(58A;73/1C536?7<=4:2781G:$7;-?2B541D699542<0E7+4A@/5159A3902>58/.?17+:33+2=/8.C8:>3+2/339-?*49M=.6500+>=6-406;:/23505/-.=8,21(?5460I<#1.9191<;=0636:8,49395B8C17;7.7-9@9I<541=42?/2>25396)94B=4<*64;+6./7;71@5/463F2<.<2.=4.:7(,B.17.5>;402;A:C<403;-6/)1123=9,3527<,25J7333AD8.7<+:72*2,:*:4>./850.:5<32I/B7;03,304:61-,:.R27:37(4<<07D.)63;?;707B'7>6B2/7A9%604/1.;;8>26.27241).,3-+76<7D?;23043)9@1306G*.;;KG.9+8C459J:-46786@7A6982+1.144:/69/447>7408/6456:/011+$=9.6>:30F04>1;3<;6<623/;1>K62B<.-7.6>-1-.219B9-13>43/;1//0,A6233$<)38/;;(+6::11+*0874,:693>83613A@.;73A;9:95>?3@3?:,.:1;34-2<-5<:9B4418,65.7,64=1+=638267085<(58/*6/66/>.7910-76B2J;A7>1;>;217.B:=.<;17:2:&3,,5/5363157)/,>-;6>8A9031?/75;+1:46218E8E0C3706D/1242.343565-.4634623CV3(9;:*F06@3-509D<;2088<,3N2127H33,<2(039!-55:1296/7>.5.),1=07V/*3/46:3416.,>7.7+04=98538)048932;?122?,3/00&%<041206<;;2.71EC@C<4)8;1952/.+93Q.6:?02-/C49.012HB27.>3?915A9$'?12722*09AC/6201697Q63:M(0;:;.K,57GLW2E',A.4/E,/8;45@37.-=1,6K))47C9:+39=?=!>5:#8,:030"8:53(9E935564*Q5B'<:1C4*+')>A7H-264*/)F;92:#4823+)6;/6)@>'.B18V'+0,GB9=10=76876/,%:>/;>8%1PAG4<91=&17=24588I4145279B)9H6>431:/0@DD3>463(*W-1J-61H388/6A806;8/<284-;;837109@25,9+7<:6)0<*D47/;1;6.455907567=<7392934>B4?2H54+E3/G72.16//3B6:B6:3:441784&70512-<1=4508.:/:/7/5I.709+8FA37:3=/23)5:?19079A52:/@975=3:4;/9*983?+D/2:B2-;4:.7(/D2<0@-25*8?4#311=793-73/44>7,814:4:2?609792B,52D;.+>8A9A,>0F792C6*61?<2+1426,)1*7::3467;3557365940>;<893/:54,://?47C431-C7:13654-=<7845600;+94788?5C76+=38::6P=9+5<,/5/>32:A.721:8714(=&'3:::884:B148+;;875<366@8974O5335/;20.C+5A19>66638158239,70083)48E06743.;J6494674956K5599?70A@A61B38022;4-=<5-47:'=5B9321(2D6@F33&=2@>737)=2&AE@A7:`=1E358;4DB66.1<4.39-:30E>4:D8?4(1;+=0@?82/;16046-/395>=%8713:90/37';6!L767:77.0>4A65+6C8A2,466@,5,J7D<814;4*84>6*4;@%;48E81-/F:7A64B36.6)7&078?-?5559<2=-:G8-DKA6-3=/0>@79;3790:-9?25035.7-E"-:*56<9;C@/>43433?8/93:85B65/89>77>2769:/+<@8596<245:34<6>35-A?5=@0127:10+5388.E?23:8+1:76=0=1?517C:8<53.06@2=7;D;60+3142790/=56979<*1=481/<5:,7482:105=.4368798=49847685>6/@09>64478288;=;42.:142:2939=?4784?.@D5)5-6534@2<:269)1=51@+<6?7G:56:926+89934@66-33<9F??44;*028>24-=<;630//4;01240301:<2434/0(9/83:99;7<0099;8/2=/3)??E2:-K.22323988/7:7>41?7/<*7973542?;89@4A1?K<0/HA/56,;844G<324<0:6<5.1/6-:3<-6+1574..6?J,314?57037/,9;6<*,B91553/75804/67,97+77G00914E$4416>1;.11;0=<$3*/;%, 2732=2979296K4>33=C:77;=16J2<2,6/1672E3+79A7&3460#<43=,8A12)24E3.)5-/5114?/6)=02@3!)6.7D/;256.;,4?8.-.84+6=4=6,3;G.:C3,G31658<2>7/88(365.1:=51639E3-TC>B9*-E91295A042?4>,@1'+F:0:.113E84.(577A;>3@=0/477647.6/;-089-;29;13'55.2,3@95D1?5,0<<5:328?:>747C),5=:800:652<47==00.C>6;==,,I;A7F29-2/;4-6.4;7,;->04>0,::5,/2BA'36<(32>1::)2;F562=;/362B<,E2.934?.91?5E9==;0/88593837.9:+H39495= 1251L.:2D4*:=50<,7?7277<#1845+/90643::07H-&28@5=%:469,05='/&=2-6A/31+693,I00=59/508105238C<0H29<:88/8()564279:05?+85/097=7:-32>-;927>B;*7A=:7?8;1B)28L;<516898<;@?/59/22=46=%;*)144-7H90./E3A?3.:3.1-24@4/91.5193(1958(:,4@0?=;20>;/;.38=>43;1;0846/E>:/712@@>3%963-9C<4:.81-4603,29-2076+43=1849&8'05=,3*5>;-5;653-9)*>1;/.355=372-42.$07>0@:>1.&8F24*48/6450-/1):2;=+36@2.-8217>A44206!:'I.8--?97-.26)%3:2405;2<1E(3>7A2.=6//93?L6A.<(1/6+2?<58("<92.(.A053?41/845570@28<012,74034274-122=(75/H1>?$28=856--5-631744.8.4;+=2?G@*625<;7=:<.;83/'K"C975205=61,07.4427758B:;8094/0(/8@240197=2DS919;@?558<:2/@130<8-9@=,1+@8=??,C.2=*71;731<60696E01:>>2@<0+;079%794'6'>30/-1622.4./.6-:2*2@3900/*07).6//53'>252.1*40185++#29)9>.1/-3.,).53419:(&;+7,54,:.574D(/>&-77,46*50;/+05)-6-335=-3900;4>/7,4,3,,0;*F3/-*35-N1A45*IB:-/<31;/4.3+996.B09/:E4*5:,1*4/9'=@8:6:.2;):1;27?206776;02@4294#6@1>/;15462.6@;043/G&+3=/5*C083/8:9796<73.3867-@12@=-925;137*1/:9,21B579<7:<6)4703.>6/93@495-2398,;<6856-<2*<<4:54/5;=1//E<8L3/48284>/6.2329+42<@/9;/2;69627=7233;6,45+7661<4;=3:5=8481790;3.>-8612N69?<180496N;F224.?3-0/4/8!B=C9;48916/4019:6-2576:2-A)0;+>:B97;>27-;2<';:.6/3646=;3;B695A2A08A7-1847603#1>..;2:74-)8643;/2634;30J-:8908A-1,424376473+76<5F6;280>>4)942968@34594:?:3,D83=A;::3=S=<41/E>3I49532@4:-940:0:J>44-B109F3/85E9,545*46-7)5/56E7?936*:5@86.0<36-4D0'966@=2-=8'/I:<97;-19?,25:997129>5@DE4583/55/1<2,7-6796:;096:2I558;::1>:2.CE8290E<&86:0KK.-54<0460;:4;+K73D>8079B7-7AHD;:;33>;@BB35D=5696:3*4@2684;96A+B0=61B0/?5865,7?1X8@41B<*'L66>,62516/7.;D?4@32843<;%.+3/0&2)1>6424.01!6D1/"/>480;624@>158D0.7,'<>64;:=5B4:*5>/3-3K;17,17-6698,57?834/5,;&B$@;/99*;3./:4<3;66-0 030@27.=;/4E0@6?1.<07.*"?.4)9;C87,870:446:23A:5=02733;+,9/%2.8425'65756-,=-+?8?4:?9(A=;6>1=0%692347)12*42B78,#9;68H7=567A?64>20'9>D0,0=;/F87>728?$24-D702>077$39263;!+4&!*6//1/924377-731576<.1148/I58535096246>.6;:*34J17><48:7?7.195*246?1.8;50/'55212+B2//30/5789:4258:71,693<3,681=0912B6;82A149>88;@1@02>37)436D<>10*3..47+/::.*8*46:24D05*):)5/:!70"),-E?9,19!8/+<)4*F:6?+54?.92:$1/P<9.370./,/16631?F99'/I414@/3160666...1-4:2<8076540?/3)6,/8/=*5C1,G4<>-'.48<*';F.3<,1295%/@54J-2=<8207/,?-;-4=208+77922&92.7;?=8/./+:36/'9=7A751:&5=46=36.0@8288:17B404?74,18253>8<31,B<343/96)6525362@1%:273940;136421);<7,/F7BC=526E1579649>-+;45.17,.18;260-;9211A;20'9)34>)>;4430767.5:7617<429.>72';8D::58%51/(7*8A-591:)0<254?-+419=7+691=5-,94&*78>D=I7A:89=7,1E.,@7545A686683+2667*;:@7F7-4/8:,983<04.10G9/.@@D>39<;7A*1/740A-:A>;3;BE29209;465>:/46;7595:::3/7583=:9+/:207;563369741=5E48/983:A::06503?7:141S96.448/483@:66<2:375839>5C.:821496733812:5841:2)78*=@(>484>0??80:'.-F@*8:;<04=6-3/81*4+4?=6)7O03.83375B=.>>+9;;7041D-#4B65.1#:@.76;+;7@=.3145@&>/4633,<;54C4D@2956-7>A91;6/7>,7?6206140--2A80-4/EG;>912;0..+;45H3FM26+37)<.8(.>(2)+=L3+/D998=/832,3@84.6?6.-7.89/5:65?7.7;;<3644.2275--=6-?5C*>58-54/>3638278=1754,520H=./?942*/.:6833;79422255;<2359B77559@0H4,34.525;42842961,39/::+1=14396>5>--/-9788E6;+3?8<4=3936144*?2,>371*@6775*3B0472:2;45@E/D1?2::"(36826"8/A76:.A52"2/,)13;76.2(2C@.2,9F)0>0*+-0O+414A?4*/%/=4423F1::529-.0)B-59,8;C78(2=+)0'-2.83?3,:9>6B1.779B506:,64;;98488+7:6764-7<$2/*09A+6<8I@F04887357C*1C>/45<:*8BH;88"838,@3+4;/@=-2E166,>)142/-6;74!1&963@:(2=4<11%?/*G34L@496(:26L.*9%37;:.)25,@?9C37;27/>(0/>.<77),><,"+32.-3,/0?/;1:<;,N0=46:15&)396K114-794463*9;,<52600*A,D2=0=96.+?2;6-641='C1+,7A,;8?/811'5886P86>6*/96H;27.7*4A53?2.E@2713)7@4E17=6=;55C33)87KG23><>=-,2631?<@49/A&>60/55<)1<5-'7;<8;',=<0A53;1>89.62844;.7037893.@;9<26@=915230114G9D9300F343::#;<94B49/8/;=7.906D*5=:77/6:3697/357:7/;2.1/;.78=./66:L/9/28+7:5'@4%/4+',@920448F7/5+(9D7I19J183;/0/-B:6375C-2755J<697:.94@9462?:+X>/48443062C;0/-2:/4b3/'@1-20@7542.0<;2(/04#<6;;838(60/>0662,9:206+;3&02628.7466736;%=;4'.;M152(2G2]18@-=;6692B9501@1F76<41C9697704;:8/66<,1 315=:?D4=23?748?2270D79G<6207>*H@E57847E9*69]55;5,,3:222:2017850*0*45A654/81*,:B3/18<6;0-,871?-02?3::744=E.438479234.3674<@.9G?7*C>12?5<34347715>7259,41%P12296<732+24.158/4(-<5836652:175'=-,9067692.=09>"/88;76;.-7<7832,37O0(568,6;8A:1;*25/;8.06544?7=-1F8:P6?/==68B1877D4+C03124/):;8>;7766E6<:+.435"2=54.75&96479/9<9'406740)83;59E>276031*;:88J1>096.4&2=49K2-;:6=<4;C742/282>9)242K<7= 8?7C&9+2-=>>=@:664?52;A/B9770J-47)*/;78,>58C8><5>3:1;;/24988145:G:0C9<:35E6-G601:1B45986J*:5286366<6=>2758@B800=;U9)8675:0U-;*:>0I>7249R<0,/68>9?068D<<>/)>$,1=2C<53@4-42@<37249/607-3)E130C2/*3613;/-0<76-.;D57*<32/>91387@417894?>63721@..,A.2-8@(9=53-20;34I431?7,:63355=BI766*+4-+@413:6524(/@.2:?'=<5298<6550-:E9H)5.2=1):;7..6->415*7/75.5D+1556069G6<8<*7837/"465449;660:30:192:34:->0?-,55@37,;110@82A,8209=2:95;)12:0@/:7H85@3)78.45;7K>:3%CA=/"9-8620X?=7>:422E3699/19079+;=<17(/5^3+107>7>B7==5#HU3-B7+-247A5G0/;4;=64/766BB@1.=1485;.83)5:<;++96*62.6B1>:<211=310::B6G37B614B,58825--103+0<-(08572:78<5=524-581459J671/634?74<94:@/;B0.8*289486/:$@138245>AB=91<8?3,L2&07)2=4A6,)9:@<55.31+5946@*4287.<3GE:1838@*3.459-/2/9.20510C921>B,309)73:16491:96Z481;;87GC'?+70905=9>:7<>-:".C9-6@-/56;62:B>3:715-78457956891-W0=85-83>711=274<-25<43:@885C267U17775;2>67=IE89-808.<.=36:32:A1)8+3;B2A:+<7:4-B68C7*456,4<@3J1=2F*606825(0335788526)942D%454;/99,5''?4+82')7*>44-5149+.06<3.85<-=+02863/1 :8267,6<063=8>3:.1<5 /9@8*1,50=>->131@>+24.:1>3;'6570=A.:85@'87;4<:6+5F640>3>4,:-3-9-A>01>2=533F60<4;=7<9,-D*6:6..;9>49;64+26,1#/::5+1;4?6/=)6*%>/92O)@05.;/59+/:8&:3?;B132:@88:,71/:3619<17?478522C02.281B<2,63A245$P3?*68-70C:0<15=2;2.58:136;4@:28"22@;736,246:69;.4>+:16,-1.B982/.746:1-56F'1@46=7>75A.>84&91L155+'6555.B<:8A2)33:D?54/9+C16G88166,5?E?7@12>4028*:+86>515C2;;4F1;.63,:/6//@>L-)3.B>;222;C7;75=I15,8?:.3@*?9847:8.8-A;1$4<,K0.037$9:2/6<?44J8:;4D;956>A:==8B2=>6;:)6B9FE?0/1??=::9:95<98=@B<=263/:8C?7985;:<5=7?BA:24?:;@3E8>>:70@BF9>:;8G:;?<777E5-:C8/D?A75:7C/82+;2CB1'=*7A18;B,36<58324=90'9-S828<525,7;6>C4746AE500;-2,191:C7.<5*:24893A555(*7?3@025;A;J<2D0:/21?49R82445/2EF>:;:.(229613A=<7@:-&1-A?64;5O3566=4E60/346344A@:125/>H2474=C77?.;<5@4016<293B-;34*/:,"2A;2:/*=/64:1?--?3070E;+205-+/-76B174-2E2.;<6.7.,24A<9EG7453,<1G.8N.54*568;08>6+G6B3C1D.#6=(404=/55563E7:1+M.5585K850%1=!1*.2*-7;;:@7>:871+;/67-)115+90F5/5//.91,8;%/-?0,A1-7:/G31<2-7,7B12.:+<>#,161980+K=A6D-/1<,22)=:9?0618/-7>2/BG&;8)6'08++6,.1=2>C;3163:18;2?3F&6:(/+3.661/X64A8H1<6305)://2565-36..1;58,;52818.2;31><94/3;77B5+?:5>"504+5#4/8+;(:6:3T(75J>4;266B('066/94<87>90/7)(:6'57<,;05+M%G*+59@**3=00-*77720H:O95:@K962:2?8C217:8)8>1<58<..,8:+?426:6.4<001A623>'2,:;17C5G5709:'71.2;019:;5//06:;.46+;2B.7HH7/2!,20M$-),,0-;?.5;-5/87?534087;-4519)8833H;>@??@36W/;030/?83285A8:25EC71275/,874::033.2#O>6,?17;33120>.0.2*8570:(/05;,45?C<.:4=4C775389259,5=2720::28HD6091:%:584:64009A;.8/J>2)4A0/?6-6342+2426*A&30,88>?3;8@3&H<7550-B:3<08!-118509><;=%-.7389.),-.9C*3<41354//>38D,;4:6E8/262K-50+-6086::,2-1D3-7.96.:29738.E49-4=3278B425-<0<70004@2=>0060,-4TAH-09870.:6;4?87.5>200+:G34.4AEL15<3G674015??39,'56724F+5+06<8A;0B55521//.;-:9.B(:472=4143C;@@:4:52/(+@-G07/F0.8610092B/01797042/;9<-/2572-+33,+>52:4:83;28752;;.:9443330,<2886<5@7@0;6382-7/=6-8G8435:204A59.6=:53,;::::723/9;4713&?.6::&90:4:6646323.D2/f5393'*60/>67A7:7/.I)7.1/0<.09:A:=7?@4@.1764*15$0364.3/54-=3/7075>0%V4)563J47,07/.56106:-*34420?".++3"18-7*40I%36,=*(210:80+47498+)6.B2@2>035903-354',:13/F0/204401<;(@1,2:0182*9;4-9*2730:13835'1*1/,73*+.2)+),D61&.AA;280435143;42349M7.9,.+>(3*3=729;264+9-9'**0O3;=41)2302N0.007A86<84;6*/=//A=/.45:28381+8/,1+02/41<=34;8;4)884*'C/3:4;*<7898(5/^27:5=)232*<0/9454<.7#<;68-7=934:9'4E1.C49;F8350276><+.61+,?,22;9923*2B(74-874+/;1;8691?)2.4,(5B60<9=/57(/1;)-(.D/@657-;/8L-W6<.3=/I@>4A6G)83F35>=34)461>2725;424(56,=:23>FC62=81I3)42035;I494B98?/18(+3>+3/2;B.9<62+8.7/9407838$,.83317C0;3--44N4.<2H35+7D;060>/501B52>4;4?)2-2B/-<148-5G6;81;7=-5J*096<4324):B10>3<,98B:512,58514;C63110404+M566;7D2<4:>.,8:636,37;2:,5/=?":>43:06,?5B-3,7=/3854B:370989627*413863=;/8=143.<=7D/849*1/1/3-;75/@/J(22:C1;92J0)768461461454673.<;7@0.3348220C?2%./>49.86244244@2109E/.5<1.2+452.=B3:40/6A48@A6<=57862)?-7530=:/375?A//113658B4089537995,452*34.0.F33<941:680;1=566=+9;:531636/16415,9-+O(B0?5.36806->-;76>:-,..<7;5/%62+03Q9D09A2:452+7155=022/528//8840545=,09**=/5A?6=49;/747247@4725A3+:416>)694:/1@(24?=3CC.8@6+655*5?85C7005'2@0237/.?447P17?9E177-*5/.14:=.:/<360,5;/,AD.9/>080+6B:0@/74)$88*+=F013351*<<1(3;?E*)063968.A6-6:< 24..<<>*87-.1*8B=5.569)*)16-:8*76527)2'3;:05/385?91444>0H5:0;8,881=6459-20=99/47/5%7+51747>3=-+0*)24420)*:58+::323'6@7;,0():67+0340F1(-*8Q3:978;,481G.'997@E9BL65,>B-.7.I3;1B9893=35+2/96/5-?T2A*:2+:<:/:484A-27995=8,18?<04?44<4;426AE74;33,C-=8#*8D,3.>:-18/1/@91)63=D.2+/;1458,;,:95A575197/8-2&12H13FG:.3;7;4617F6;3052J6//>314629815-*5??/10+40<<;6887/J62,:966=282.574;;7=4E0>46?9530-5E,25D.4>>5E454714533R2133CB5-3-A0;57-,0>?-G8570-5561779G>1:310BC9B9=>7875A:C.,2.14.*40.D08N80;M7;>-<5B236->9?<3>\90'4,(J218847()92'1.325+6>)01.30-!374-.:*(17C5:I00*.&5183#:454795300E+6. 4/626B62&?&47376381/,1(*6)/.410.1;+43488+(E/4%;731.,(652:<<6*1:*7d.1.=a5>8.6.45:49)2,:/27619/821,3433GB*&25-.),-;=.:@F0%B/:'42';8;24,2.D'+(.',(41 20(8041%63-*0,/4'46653)8B,.728);77#,.-.5/<98:N-255--/33+A0:C2$/3'6*-2.;+<31>+<. .7(-/26>)35//95.2225<&A2?&@1.+6/;;)<0!22-114<1+5/++009-4:<57856*1,@3;668062.&/6*;@91445;>25645E0614:3>10/*9-081<3,:6/8F:53<)1:2583.=8@.1+F8@+>-492+D7E04=735=:=83A5'9:3:8036142->=.69204434F-*65?<47DA:<3,-,8143-26=916/1:9-784<5?3/1.>5@;4764/L6.+.1>7368552*7-52;;>-865B97::*;>+.;;<6-;881E@<469.:0;6-;55/02+B2H56:-1)16?+3G3I=,>;10,4?76=D'/-/<4*67D/?78?873=>-A/1559688*/48?(>2D7;3G7@<486605.8E8,43+28(3237:F/52-918)948D166/47;?$,BF<16811=3.7+.:"707/8B0=?.528F,H:+00=/7774:0.-8067/);166479?=5;28+12)74<)9.4;2*0.180122H9./64>=1>6G5==?@-7)1;56:+.,,9678999<18.B58;7@+2;9614*82-)*74D>6;,+120,6,3/@15479,-@.238048+@0BD1445,::.=(4<-'-31A70.3;-AB/3055/7-<1++9.2616>7;-,95C;3618*29:19747<::=@:.1#%7;..:C2046)78I69,755A;/(9.84/135;86?-'5:'62:0(>4=6-26?10A477E3;56A+61::>=D)R593:?1B=4@588871:J03881:30<78;91;?J:D1:<<,:D:?62?56@C+667>1/=48218842.9=C91=-<;@:6;4948:3:8037:56@;8.F/7),,:<<54,2-7=1A+*2CB(33>?;A1.68I;B/67=211;/440?/30/RD788^G:150009,;8;1/8A28886)*F4D9I?1;/5=0<:8-X5677>9=2@:=C289:-685?14F;;#4136C>45262,9154.=7+<684:31=5468:.;L5*/3D553:A376<@62*>:3+25<3891/:?8>2;1+83C64::538,25..7-9,E5<22@1/15<3A$:A9>5-.552=45C/?5,:9,=.6308-L0:=>P<$:+35;:,3:3'64,34556/AA553:5<>2.1:103-*+09;(0*/<4673/*/+14=1+7>027=79@4=49;>4-92N*,;;0,0:4.54:15.7@08/0//I/745.(6ED-00,85371/0:B6K/=K1=65A0/(B785<;:.4291422I35M2@-69717905=9C42I2H58A501:AA4J2J1"E(1.7075*44+/G++N*'>565.;8>4-455365.><3<3@851801963>,*52;B<:75-<,AK:;*39));1<>/+3006/<.0@1+*+/-&42<+?@9/3I1:26(6:3C&/,,4K65=02554/024+63/:015@=/.8;076;7>85-536)D5520=(*:8;111:4/&=7:464(50;44&3=5(?&42,8<7>8.G;)13AC$.>+:1248/6I6$,@105/7?+9*)(2+5/H<>56?57B7."95L82CEA=A5<1:<72:;A/.;946(41;65)2@=<*.7A?.<3FB@D7/45.4:3>=(:?83<948(49+.?=A48:7%4;3682?5#7749>,/5@7&5269,DF6E9<73I-;;0<;@<9/?;75;?95/2644.;<>;*1>>./99:29<.;05048+0+05:878-0/<58I=65A<0667:11966279;9956754003-A?506<>820D3.?16-;2.06*60<:2=39*4485,8A0?;:.35929A46=+5;=...@4188D;78985?3>032=7>.744:8725-,4(4:G3-)485<->04+4.7>6,032)95,/:3*B:;,8)8>55B:1&;79M3189/@6(4;*39;478885<1:2>C7654*66151./5)6?7.>;>/-;0628+49.@7/,9/7=<:9369%8C;2-3?6.3=80=3:;-2,62350018E518139->9285?(54A?;+*21/C-<:<,0)9)7/-<0-56:/@>3>8)*1./?283*64?6+4@.376/*&,3.(3;..382)@4:87H:;2;09),A9756/.61L2:A-01#-/K65/.=357C:?6<<73;9=^59>4(;5468:6274(2:'G*;/>X974H,220/1?0G4l79,3:33.5C>K=68<>7D474-3206&,6,O=/301+0:=,96.>;A<8+3<-7'0A63/77486>A06+9817G13+3557806:17=6648-6I2-861<4295;5:<4949651:13-;617792028/;27/67>417-8>2446-392:<3178.73778.2+622B12<@259;6@:<-96789,68A86:>91<66+8>5413=137R2.012@9;946?577=49;41:65/05393721;5:46190/48/6<764910=/44/6.4767:..382390/5.2:38:6:58:A=D75>:C25588:;-133355:=492/338685-0,/;1.=29535;=0.7>:/(11=6*/5038>35115523333-011-31<1:496272168/54382(35(116692-+14=;643262821564.8<2A6=234622956C4Ae746+:07,4206396<<39@:03/<05(67614,:6B23-09<11<787455>879239;8206=267<:71//5-3838<01@8=1664?68464B8@69,915,=7433=249:1249,:>25862=/56.34:;:992A>3801:16210?6690240;1:5;73686/43666;<27*777:6?5367-2537751;1426159B157:8:81<2:711./::68:/301:;4:;78<64<47/747C482,9578=4761,62/9<-80153:237-:/C820063085-41>5<0'0B3655220=;B9)2O34<71=+/02257;4<79>035098(9986:43=526370:268354;.330<+=4=75-;325@6479782?71424*5A;0637:A-;15:5=409//7?;341;;565=:39244307426:9820.:>:;;<-4524D719/7?0:24<597<8,54-46.6<9564,6744://5-293B5137?@2N1<346D2?93H1:.58,98$:5*-J4A>/601:63<2+;9+<8A>5?2-6124'853?68,569=/7:171;396790:2728766643913'23+>;8>25/7056?318:743478=?07:978<511:H698;:>;4<3=74:650718468E/A57?107<8A9195.433@12-5:59<37224462635=8146224167<85;;55651007:6416414655=12/;<6.D4;51<4/054A58459:9C:835:55;598>8653;787906490439367C/48932<0478/8:91:731173<458;6.7009?5D368:41249/413:;0702:76414:82;6874/628-8<(327435<33:<427A><9:B5355474/=9<;:9:4=08935?2/8.76340605<954;935544:1;4,978=@4861D2>:;1850;6422>777-<6./@999:6-3123546G<91465@9K;3:<4-5392;-B3316;233;A72-324682:A7J2./2856630>:8@35345404;/U=54429/-B@6582038558@4<632+3;3C64;886992644?4630589=764>53=-956J461932818<:/75449.3:8058?@38:373,-2575;=4@.1/0/6..=/>85:3<066:=610<0548:37@61?194;82027/82=7555=-861;16@872@@*5;3532.;5879<=0<.291<647762<572<4:<<08901746A088@83995>:3./592613<+/8.14932;385466?3<;61:403./2@8.<@958:=649453@0/<9=542C6@::46374<36,616;7<6:65/:1008;9I51&67B2?:086,5;>694?7/-6=@2339)1:<70722746.678574<61-49:657%20?375=91;:55:<7639@:/1>496B.85045173:776A<6)@17575;?:?61636/4999681=75553?7845:@D91,42D1;2237.7,70730A19/<667,6?6-50535..27>,0<8:'63944:56;34627/4A-54365?993>803,A/9)63=G72-4.4:548D674/&+:/;77374.2;4;/+33>=4;9284Q1<<72=:2,;4-054?8/8.02A.53:6135C4461220=14907771765<<=;?4B:55:04583;8;211:30<9;59F4964046<64/4/951>10.:,>1A33/784@6/56<;558D63;734:624>:5;+23?;886394>18;//:86:4;=767;6524C.84;43<43:8-:2C=<9,80.517693?77.41=6185;;864;38<:4=4E:5486?2=/9/862355;60;6660379:4774432;7;285+888:C1861159;1763376?43<20667A70C<557=9346019A:6230<7:;410@91:/>?-71=2129+22>72/7--:799;=<5F4453B5+A65428D7>2D36<=4540:78795,/8B49974/960=93920;99939671604-7+>651G98-/@7-41.=0:194/86:=.1102J0C:336?79/1722083823802*1<6647416772929//0>;*/,4)=71218)A1;'689<6933448;234:081:98=7/)B/7=*1<32549<>200<81(9;048.@1;?K35:022;)480629,?1.-:02<.1361478:<>7286<,90,>,2-1+;3(+:77>3+@,:;12;0+79;;51;>E544829;:0A45-G*5,A67871.#0B42)22+.284,<-3+1-3:5,:11'1:42679:07,631508;//.9491/2952E61/3:9?83=?10334*912042+07559250920.<<;77586;-:<8:/63;:3.871658237639,433.727,112+44023@,+:184;-:A>39764=4533983:62<97N24<034C*1613>6H:+9499571.45.53<9=/9A=16?824E//2C>8<770/>826C=;A';7C4<.6;?335226/35:22526059;=+8597469;.3462==.6<1C29:145@8(8807A147,3E6;295=6*A8577?5..67.?:32B,17156+7633B49?6463?=0?3:+6;641/=7=66549<.1@72<,4/9G:34=194?<<54846//@5628;1=;:.4:8773.4?6+96A064780,:-37::75?49)389066<.54-*E3=0084;82872.:2015995.:66;:>/464.?94>33-4/;.A:410:9<56865>/7456)14<3/<1E/;5<2<3<154:3:0A9;;1.<624;C44/24.48.O817>.18.38--5/<3:45/59963483@'92/+6:=3?1231:4113:29/0C757=8-6&9=7<5--97936?/2176C/:8653559?548:1:27=527.31A;344==7:4F:4043A.955:76@767.52453+)/<:6517-/4542E>&129>5>77<,224;2>0615099;;899:2:1@7=<@376>75A64:27@.5872545=682775/<3?12746>5?<78=756154:0:):6;2<42,*1F;1724458/<27937,<@2.A44C->35591/5<688<11043050>6;@665?B5-0/@=8;87A476:@4588-386,76,44B50:181/5D90,85@26-44:C<3:076-@9=8644:P74:5N6-.0136:,9318/;64-5>9:6=8825;38.7257646-31*;118;088852.4:708/8629.156=:43784=/344;86<;=664/551;2/1822/C557;7806285,637;/@0??>:.;:;3-89388305385/1-2604=03020/878660)=4517<3:06264-+3919.2>0/3457566221311-/.3;541.>53;-::2505.27=906379602/.99)4783775452008.567:35812:693450/86:5.;8869<=94.;9<26,:.263=492/77//5<9042?*:<2496B/460,3;/4?6<773722:*<9C78-/38:6/231'<3;-02:0697A18188A9.;265/2:85/48;96;:/33<1I25;85D726<:8:=<98145818<5669069;7<:1>2;30344H<47-7;=3:5/95515?:6=55>88,7->-0324.1?.84014?9630938,00<3912D32H2/7<3632,A558B<6.7:A7>/;G29&/*8G:7.4%29659?2=;3::29+?-99,<8;5;1,6NC@3&.2-4-<;3024-5337661230;:79;99/59-<666404842+<5;+25137285:2.3:426324840$463?-;931=;.3:77C-&86,36:4:2357-6446<1274?=;229-8502=17:9I203777-.@7263853;>7798:?.@8680475+<=74098534>708=14=?639D929;1624;?967:57;993=;6<074<60/77>=3872;47>2498:6-658/8;94:283682>/749:1809:964:<:3:757=8A855/59A27876::1;:D5698191214/-58A6:/882@1:572,86?40303:7205;:9096173;=1+183A-9<3205867074;:482:,77.;/98>6:;/747148691273,9?A2+4;><1683:65+:@36/61,.-77;:<0/4349.;;7=?01E/39.98690;61-3;@952817<:;6;1;198848/807,6,6714;:.4E3B.53I/43:0=/8>A4:764;<2:8@6-384.8161565;:D205'6/?4193133420220/G383;7(1/88/9338/2.1<3)79$3+.?8264B75D51418>6+4,68-2:127>7,5C49581,0?41898/9=6/04B41@75?6A548=/:D><7,1/4936).>0;416-703/@=2U/:90A7-:,1<8(29;@5<833B632::836/;:.8+72+>83C:9=57758A7635462>3222177-/943.2;0:7403-4512:2>5:A.3<2@-4:69:438<98;212/+/7361,:9066425,48932130790<5;67363?43E7<57>834443@+>5,05254845656>15<704256-;3741:-62,?6;:7108,1=67853L43;B77;338428;39,0*2>;4421480395+,9:..61632+2O40=:36/85<49/8+330C4@6,90*0?44A2,45<,06544:5950D/B0.4=2;5398370244949/2A1>7814B<178-666+47)038455<91986:':7517897772616;A5068551D81?:>8<38/93.D16+0*4>2238-512:56>36-:.:+8382.K?24:24488>72230F0/)39@5:@1600333/,1::5@@*72<4912B*8;30-721;437;6;<3328/43;=1@C.,352-/4::3:/:;=:7,:A0875>6B5:310;7.<66000@35F@:9?14:8;;17874;/4=:@80>4$90080=233,0<61;45126.8;-9;..37,75<3E09>1735C07036329180567@6/8/H8><:08894:6;6;>706,7478633623A.;;;795;815:259.094,;-3:58>549.0<8:148:.?16731D43631-:/31C9/;<5.4544F2-82:8;7797903>63700EA2@4,76G69=4<4:>522740291A1C6:+:4@:-/:-9051@=859:;;9:988:12817;872343+:34.)3:516:?,5850642/;=+39-=78+3A*<534255/5?1?0:466:2760067;.38&,816;14770-5*;8AB585,82274A-.8.4=5866628300060;;45290632662331?52>5845:9578<32-4,:7,.>0917?71@3;432.4?708072;.*1558A>:021:=:3206/52.9:1880305?895564:05;3.4,829.-48626+8658A2:43;523983653075897<;347659<612,28@7446454:;/@639504655..;138921>>777455128:31;8:65><:;7620969976815=7@14;5465246584164.674328969:2530453754:5427-524437;-/4943361;.03/468850447558A6;874<@585A50//52>8;153,7502:4=:484911643<6874A9<2530-613<.@54-745404>3,;=C8D85/3-;6.311819/032<&(5:0<*29:1,24426779=B284/0;38A9=.:/77@=6-78:;55:/41.58326:81-+8A87?=9*886866=D55.0A+49-734CB390;568632:60826?.4269@6<336,-:44;:412@169,5>3*4-==8794<660)2-660/46013@>80+26516+1<4.73.92:6I8+=:2A04>)<4592=71446=99567A48;7:;232014D05A/608=:3026421451*7*1274663*82192,88(4/@296=:=83:4/6/27D9?4>56/4C05042.5043F908<0=5;//:-,12T1231A368B/57:6580=:341.F=96-4-4-9918/;801+*423?6-.--+=.175588;8708320+0/3/5?(7/902.,003..,.33)056V6710G/:;19106C=:497<47769;18-+444:572584GG93:;8H35+0;:50A47;94149;36>5616=.B8A=0=<2(-3<@9L.5280061@761841=83@1.+4790=62=5-<:D8N524.-432-8687641C2<30:<9862>/4675614=7.430*;=52/30<747084852B7;@246887;@31)0/868D362172.;58D0:1D5464A45<-8:2/28491699752:>2;/7@3-:35;9:-1-8=2:83=.1D24998;275=:27;P:22273645.6E948);+7/.AA4317/85/6@03282.6674<1=38:89:60$A4,1;56.?7:4586D9;735864=/83(:269,75+-10C9<679586;55;.5&:8>6385;4-0=4;;59/358467<948399/0/-7745A<79=:14.4/2;35.91>931793;4=29E73=<39@0663;:6.7151273?046..<6.925<;4:A644824>827.822:<059<=77;*<@3744;8867<6>:=984+382>94726;:36;=6396:38-346933;<34;//1-97463&?:2?5-2:/55+91+271;.('?525040B2:072D3.-.4921.0830;=,,73A.5085858/0126:A:>06+15.-<209BC/55)14316,169/.:94F2BB1.=61S:;59/<00766:5;,527:;:82:483;4.5;=;0482746.1,454:1;;5103/8213B1=1==84536;1-<689*-6=5258-.6H,<5854618130;4=3289./8.7338154371049?/404/9515032946<5;323/94018709B642//62051276/148::<03@C08+540:15150=.-8:D<+9569*,D4=83<8?D696?9*/87=/:2/86<75<35/;1122104:883@:.;530*8=0?>;6646341.44979/-46893:888?1:4:2<533?:C=0/51C63!,-B69,599,14;/98,29H.84:44B8?4:30Q<8A@2.<6:;6243<,76@:?4A=57047IP(0,:03/83:8==:3F>46-5@3:06;.5/*>:<4:?>,:<;?12633422521+A355=3673(8=585/:313/,8.3+,8022<=263;12*.8.10;*/2196.1:3(70695,437;978//3::4D91,:::2D6330<0-3)>17;70:4;94C3D744C.2*33+>=113658157:+:.5295:;96;0.909;<70=;.7#135=/756)//413?0:1>C8:1=55:$446C489',1<82;:;GB1/6108567346641464.701==8435:(<>589?=3?69A>B4931<2:667<8A?2A625+21:3?976F51.;;793+4,4*330481C693@5865?112A063724?621-7.=;3/471*=373+8;45496/299:?0:+4,6<6367=D508,-5?7495<=11<44?3819450?3,:',<71;;51516468.0=A8<50983;12:-9964:>6;284@662443073544016=<3.46./9<8477E,/3K9478?10812:72>/)7.9276/332<.:<3652395:65/02@21D59)6,9970:7599<28702<-0565C4<320130657/81657>1545:26-.23682501/635>38;4>;3;767437B7705:1B8553665=18G1:=025@;98/193H=83,<7<3408368>,99974:276/7203107/53,0<:3A373753H;2915647253446-179085-8315B70E4,,<4D;0./:7.4>7915/7940854>;;6542@9?;15*404496:$79?76-67+3=85/988;528123:795/:28268335390E98<03.47,5+<<2.3/:79=@477;3:411C179D-043=5;945921671=3946(0.8>12:207:75438843+:97778;343M,7.:4.3,N62685575032C14=093;/5772.2,73<76739DF8/03=9402C679)/2<;62::<68*12+61?KH8(32;75//:5115591,32C267642753;.793:+1=G2.44./,9<@55<3/565>?36L35=)=86660/=5:31<5;53G@524,.8,+B1.+8:154;4;552?7257>26623<;D.81<@7556056.675,2535609K0556G586?268146B23C43@4<51423564.655925E<4A:;:B44745=9-74:0958:<;8<8C;726933906:553;51CD512275952?/64.4:76=0@9:856.44:39:6:*713;99.99B463140/:37?;571?4?15;;.@?0-=8;.A30963@2<>637+<77-&5>929-)82:+27547563>$>453;=2615AA8;59;15;?:647>0./>33$942;9=:5A.6+4C70189@:-228327:<>D9?<045<09:9435-8/<1:A7)6975177509.218G=/,-:27.4505):F(616@4<;4//;666@09362-*):7-/;2)1;,5270D23)49574,0:31935>27:6?46,38D83793/*5982'11803:3.58,<5@><>66513.<77-8036-7,40007738-7238:735.4.4/:632969.<2=95B+//6616.1787?.4078940??/;13A>92/=.622>0D/>63?2=72291+243/730;7<:+2*61/096?&9,-6+9751;5;1E:7A,2:3@9/09988<>01;885:10704(:462<784@/5B1?=.1@;9+7,7.1-+813300-/04-7-.287779169;42>1C:9/506617=<96@645.5>65-551;44:09);=92(1665::@074787<8.36614:21906:=8:0@29;861B<9538:>.353633?561022582;3@2<1/<6740<:011-29634547A-/310=:286522;8794434/58:8782?10:;29>482518<,56,0=946/2:87=6613>11;713*4E24958E;63@<8;698914.:6/48675/6;63964<7053:7239?-1885<.76;89666#578.-:82F37756;4).6251967>A:?>2=45;@/0A3<6.471+?;0B83;62.71241@63,442421.473;3;:26/4<116123=.3346,6/5?.4+;00.-3409534:>54<58846869:333=733859,/<718.392>::54=43<93638.F924=<12223*.<;567559,5539.494:016/7.658393?182)0923<8331987.;5282496.'826753676272633:;36:375.>884:0>5)6?6399?97-B88185)603:6;/,:13E7.063.G8=/+0;+;980:3706031:44<377=<937911522783<4=6B2355B0307;4/45420/04/915392765/526611806332J;491228;:81410/2723<8375;27=4;19;:6271586406=634=89<547?15?980968;0<+:52::7.11@,53;469682?335115E85<8,94947@01:+759=@8;/5>7..:;>6:>71/609:-7969=+/=6.9.=:05F.1?B0501%>452934359,39809<72?84/?9406>=2=644?1<9233;0931A07<2G134867/8=?46>3306@377:913:2.447;3447=5742@-88441<36429703:3;>7;53;5:3@;35<9@51;84243=421442797<4?2/7-540DE=29=3247@;4::9=152:29>6;488<3714<:3+76:/26414/558232/5520A47>55+16@:7>227=8.44;.@5.<3:5/810677708:,1/:=.23B4;>1<14=848413;<03/44.51A2;43/=496410=<209/3;5/394988724+7@367/3254608329842867<:/1729348;83:31622/76:69B/5760>A;+566436340346/:,71;-37=8,;;'77<34@2;:8796A56312.5639?.?76B26<93=-8620,873:38926<-401856:*>:.8312:7:4/48480/4/7951476354=96034/5995@+0=B071?5:0/,8/78.215./;36C-57310516-1=6169<@I85424;;)3C152029:.;6=.2:4;30754451..0<=001/7)1:9544?6188,9A4./;66;1/-K737533083=,936398;65/4=6632*.,:;466>7/=0?4+5?72639<2713685.9@621-7936:4<61-0<54*?3.,<71231:/,*6+425/:8993/97:67;53;/1867:*65076*04:+544341504.3.-B5/>>1:7;F6B383;:885536:80300+@2/,;66;973-233B*72;:8@>70:=;/68@00373.@24126>:47)3>4402*40183,44126<;4D4;:484=4762444;23??=M81+49:=72@39/'86:816703.54D985/3398/>76420<86567661?9@>B4=>GA42<<7<62>35?13;)953:)949-036=196;;.9=99;2433;14/748B95-:F7;9130,1E51611?2<3=3=-357;7527637F19>0<53.6+;38-;=:78861B<585H1465<-:67:450,7+0:<0:<2&59=/0?<5;==H//9I563:.716271351?24;441/45<053407=71:-?869?7>8A=5:<=0:.19//;A78;<26=4<39782)935D?7?2D27<;12<>6A2F82=;,4:4871:9=;3:99<94948C6.6@61741.9?F720>.2<209@9;4>8/700?56366@50/6/1<@2255421663.C.6293;4253142A1208623887509A009263;:8:BDJ8+=-14>66333=<9>686:2@764/3:958497A,:21D5;4@2/<457/353;5,85:/40322:667;139:52:47804/56315G0+75:-26/36:4>93/7;426@C76159*;=7+3:031;,8708<;54-2.:/78.4:322-21127//(-/8.=84.6?<54:@1;6688A,-D;4;934.=43:25477:3.)745=38;49<;9507@947425865=>502226$(/.40:702:>1?233)187B1/0/522;316-6519354357/B27<9?8=578374023@356::8./78512@6483006?8551749563C/8502612+09(4>4326306<77F9>2@/1G92068.+956/7063<6?5)?<;75862?7:5818-3/9>54272D:<30.K-C682:/0;839:64@/646G7,2@-8@6926955874:877,31-+;38757-'?=?5@/883232(571<=B4;4>54+4-21>4;=48,.51?2;+1.0,81/3971/6(46@:8;25281226*D:456837-1?<0;>;59460910.7:-/256.8;6:2743.765,989502/G43>4=492;077:7/39.4>91:<6420.27876:@1.24300;465A55560B4761@,802485=3:;22468=3>478B195<99><67/>779<3A686>675=7887=2963.6=862A-160;989989712/7782>5.025306134829297G7663750267987/10;98182D74634603;47/2<;277:617<414-B22:?6-(28<66661-1///4902=092:.:1@/336/C64844C08-3C629(48=,;86;42)000/8:421CB0?41413:002/3:>21=58,,53>>4;4526174?:*525827017/.;83:5>9995=0/37196:396?/954;?04;19;96*:A-7907852440097349114195:7/667<5.86:32:39512?1313<53?198432@.97?0-68./5;2259=5+@/284:>:3.24/8,;467383:48416614471;/;440;/.44C7<64.3*-1,553011:7C?0/328+66;70,=033>A;608<+7-03=473490504;?21.>26048;/36.;.424973+<;;99640535095643+8/0586;105=78057<;98262-/.9.2-7:76-14385>89=/578@72,03B61.;550063694D7;7:/3110.:;761:1+2441D;4762A4/96>7>8=8:.5*6;;:7,5<8,42346<3572.67@D5:16:;C9<7311C75>92828963D?43961=7193;3462.;?27-74:=726/5>234;17,@4924+46=@/6705055=BA12?=08:;29-65<:2<63.83<;664737188.03:6:3;3:66?7)1;35/35443950-57-:37>3>/8B:2477=D67857105:B4<365882-52394<>?0462658202D7:=416>:393.9795?-42<45/535>44=6,/<484-6/-3-;:46681<1656:2926A84;2?:337;225/=7-434?272C7<8:9,=47A575-909:8158537294138)07/1;=997447/89.74456(0=/8:=;8360C300;<9,8676:8348259=2?;7:,09?1526;9.7:/7:6:<137/3?5E72169.73433198642<25<:<8:/8,759/=;;?0?;16>7.0:91=,?11;0132.57+4716=;66D/69)<<42:-11222/7:5C159651659E/3A)+/0145.13312,270553:.32437468291::5<.6-2:<64;71><6+89:/18;22>635+75.=74291=6=;2DD>8@9H4683:;06-259.33:0054845/;886:6?0-.3460?782/560.;2452/0>4634D4@79>:710270?6392B72*5>2?;.?>39:84-,961>C01:437:0@56=.1907M288/?8>+50.A-+3@134>55=1@991231=565685-+998@905D/4-.4:25:9+4301214B<55343-78,*D0724501:0A-407?376-=/00/54==08*64:/*=9;945;;45/2/0054437732<'.930(,*/904@/=5(3906795368;35?1>8=6.8/;<73;:165-/85/31=:6675<>1A4157721874-8.:852+;46573.5234:9578-31.<4.06285:6@>4583,6;<6=53/;5=:46B57;23.258B;4.744966095:>7494>:747@66G4@A77581/4-/7F6334.>942=1/A/=.,32,.12>1(18@37488(?19646F468;6/430722//67*82L//,368..18695=-8081>53;;2172-522926;5614:176+6505:731306161/@./@15737168:=9837821652,?47136360.38/?<66135+86,B89095/97;82/7525>D;74?A<:7164<.1=C7>=;888@38.8412=)66/:47;277<3><,47>/2=0<35<<6B=6>404;>539:;8-;16+/8=8:@:'<4468:/2342156728>1@766==2>>8647619735<;0:F586;0491237//0'5636043962-448?7=8/11/4?=78.-258*.11:7/326,D<82-3-070<245634/344>@@3,18=9094819557=+1516F805930;276797068245728/31-H77>42+8::73/743?2F907203440517=1;-;)67929/8;0657::52?;@*20145823355./6632;)7<0486A15<4684330/71;6<23728@.6<;17<-5+81=.;;63456@>///?10346>43/:,/278<5.@(/:=85224:45<468@45:312<83884644;985680-722F0<2679:515/56:3>40<<:/775;1/<7363754H44584:>E967<9,9>7144>-8424:88I874.6:47<2=323;/6433*+87..=.:/1,2C5A7/7@77499<;1<3<5.-4;434CB73?613.55F?307@=3D7-3802)9:C?775558=24:4094546<9956%9.580<1296'45-2*==;6378<4+39438>340791I;60;597B540357/0P46L>;><(/>:9DB71;D83050@769:994;;9;3?-9;342.57284540;211=88.54<682=:56;964>95:;37,7;78<=2>.50=5;365<*32;:.129>2/;::#6=<3.':5//3-<37229/605/.7:16846-078=;374351:<7/578411394.<;;10;7<>:858;;62:.75>42>.301:/7384:453:98271751457(6033,725<502?76720>696F823248=1+33<9529840319:,6;?B.3020*598B37757:2F77:/?=3;21365:7273821+C0:34643<>970A145066>3-1252;8@/891?.5272861805606898:80/9<4/,1718296685;4>7?844:3200241828454129/3=4-29755:7=72.>7>,7C2<191842)/:*.34193876=<7856A3<379<67D944::9469:71175/69.5//83885*7311+,7:/95,33/$168533-72:/99/8728-/8724462203/932/24434*/04;653:4397.51781287;9@774E8C035.6,/0,/0;90368798C=5738<35:+6.42=4=/C4424<4284<7571.-1;3;0/-:9<;1+1533.43570D;<7>51340>57;@031005317>3/68:275784.6317:;10594:40319B4--63451;670.25:3-=42F1:673=@83734<=487>-356:76465026)+21,9>1.-243)45144930023=668C9C0/:;=131<7419=.1;?,67+3B662<296/4:@<://8:=/:-22),3/734:361<7687B/.2=52<@7-3:51/4494458573=8,/25/(3=;A+53<223,590<3C93?B;5>:9;4E8+618/90;49722:/0/688:91E285/439.7C882731>77<>4'/9.:10:>44/4664;87439362/85:/23=8.64916:825;141693976-7105355641.?428@:6445;194+62<411328;3185;9A6-599851;87<5,468130;72;-1<6-<35/904857;:.0C:.,B371@546?74097:8959<20767L>;53985>8473D/7306?=701.29)64467/471344937>6561321:1935?44?::494/47<2>65715<4-/3/081545<6,<94@1A88698;5?:3413/+81956;326-<;<8/>6A/:?=6.:*6@398399-@/7B7@6<68639,3>F49@317=.>:2->=18-6<43A5*76774;27>774;3=4238658H9.63B0-33175332;<2530656<<16033-0?2162-21663665>1:1C>;280:,.-6703+4?3<2C:14419/-.879611<16D1(8;458620/5=5594454372.<.0B5,229401>B=10<958875*4,66B7::19?*8811167/:C13>;91F-3245A23;47608523..==-0/0698@20>7:63/4;;937/;9;;6522<.G6-55<5964+/0644:,;CB77871:92>=5=3.82.823@<96):05;683;/1790.94/-/860348104,5//-15,83-862+:<42<;8-D20::=487:27=>-26781978427/.1437885L5<661218256/6493::57:49;9-925A437*368;/81748C-0<<466=742-954231+05-16180<58.5;<359;867444733445845,@-34/05514242<1:;6;9?;7=05:;622386803365;1)3E5?077:B3-554.43;8736:4,27;6.3%30?;0:24/595<6@4/1506/45246,/0C7;B22=5:8-6.:52+2/D484?0>H4;317?5@C<5<4255843;,83,1D#41;<200813986<3=5A73;507/3+8147:19>687-9:517927;0:42:6?D8<71/5,)3?3->435183679@32472,27240/2C2G856859,65.;>7425;2577525=118-75-1E9077A442:,.7255H>92<=/;8?106430133;=/61B44120<29/4:=Q0637=555-41/86,44;9:9>=84:20:57?6<82122782>5044704778;2=;,?45-4/?0=8C30:@45926/09=23584444,07137<3852.4697/356;15:7562173077:;473.23/D7395;3/1<69744;-;/<8<59460/05?5=)6-948:8@45-5;8664=67735A:722:03::42/;.A3:7739362/6A->/56:32/4+@5011;24<6<>323;52>4739317AEA77/?42-049.1.=312.3>411.041+1<;32B8>973914;*44/):513.45156.5;4.=50B53319>98<:5765/575?4;Q5722722555613>286:7@5828152M66/27@7588=8625620845-129311263:?4<8,.=6;<4/6455:8557010;-1238CB0+7:;:3251704;52;.+2=F4840/205;849112;.7047>95>548/710713-54655387269=32.4+312:2360053195/84660852276<0.:/:=;4==25443?=5/;539=5;F220?675=?8672C?/6715467:978<14B45G4988/3948@661;4>;0E<9.83:=/66;61728/60:8<917;245-3264627066/9?8I2)?@424189;74<30:6?41640739.65567:<692947063:49:6.><4140A:957-9A5690641/=77924?6=-1;34,00/275071,.:4<563540840/9444559<48,61:>71'=;67B/.F:=59=<<:168286/0-/>6--:>9849-8.C753)36//40:<355@5/30/1762>/;B5/097539358242600494;0/28/7-7:31::@334,=17.693488?507/88/33.@4:5484:5=75:5737-=594=:-37822.4.934/878480>;4/77=51F<84-7;/@;32789538=19:584.01866:5245<2415837.3430117+;41;9>:7635E=7;<3<7/:42:6>:(?9.>.8=33=5755=282?312@A.72?1@3831<8521@06*6,9/3=.62B99=3(8154606509FB07177.=:7/224;;-253.64/7=2303084643?9-3/8356299352;47,96/38<1=9840-?1=93<<646;90442977457.64>>6:283=/7354732;3.154>640704771771.9.7414<:3537=8<=7315194.2543:9061/<2157@4.58A993280>47274:165;33:39/95>22@47=865*73-704/495:53826.39>72B0*/596B642B-4B6:.05=9(632226663923644455/.061398;6<36;3/61/5B5539A/4=7DH/8.=B:2:E94958<56.>88<8/5/317<,37/<075;/36753808537;3+=:268=61?11>73=7;6:?66/43=B98?855917;0513426??0239931622/1.96098.7/77383-3493:3,1/717/17756=153/=>0:47=;3<=7;:5>88941<3870.1>587644243=168581/-71.553;35532/:/085,52<93805760060>2@4<2:12?95285EC<6?2-6<09(7-24665405::.6.=353:3<=590<1376*1955D<853;395A,:849148834981:-08:715583:-430227/;4/;320554<153747:4.46613;3<79/662>0321514-2.366?425>8A3;5003<037232587<94-3.567:42C$84:48/F*73B/28=33/49.6.,45F,480@3>;0:G;..564367,49F7,886:8L623>9;4=57;DFF4@6::8=.=47:85833:.7D7.4A3*54A6;4-<>07(:75,4.;>05-225805G@7738<.94@'2911>.2*,4956-17<302;2D35-:7<.-/2<5<9<<1.>/;550:2Q096-5811E13'../>5G43(565=@>;;:'74?8/@46F74:50186+6?-;40151/:C?45<23.0G/4B340@66:33C327:91:28;/59973016446::*6<83/119>763287.637+59/33/@0<594419123756>,60514E?37:/2,0<1>:83;975>;:<.<;33<249;.:2<597(<234@1344<*65/A2849/39067>-124C6?6011278=03624;854B7185;6@4299420=6=6>445B526?9(:5<61*2<273/6/687739:851223653;<9:8452197307;48/5C944/<9;716591A71@23314@/764?:>>:7<0917=?6R=6-792136:399F-436694/13;1)5:6;?;35:8545660<4<336<91;8.0954517:8;24762346>*65:83.8636:*8:9778I+5:958:566026=4<5724=5:73D3+45/:520>/4:35>;693317464<15:575+42A1550349L8562655558D57639;5A=>51<7.3.2>..:75/279/86::757,)B3;>22,>0C;5460:6*9?5>43F47B514'6?>65.2>*7525E;:2)4:,?9@7773066.33/,493?739774=;931=,48+>67=2:3/2/::290*9424392>08A7.A>9866;-),A5==18347187315/26:5D).8911?A9=11:34486;23;2<23=6017>957;255?>2/<;62768538:7378?274;-4699..6024530480:706?833975<2=.@40<976671-/290@:5951<676823>,8;812572682:8545<613:017589897484:;21831825;07;81;.26:1@647:;?773=;55.98756783.45:5=9=933-3155130<48293:/6:2.27660+:5=3/22.0-2428<;7;@3:?C666:9364:+/99<844A7471,8-;36264=E;+/9:0:54@703D<65583?:75502853/3;9;7/36:8+2K:67:4A3/1E89253/.;5.:.347A862-:6494=2B9.3725965373=5319+6-2902+:735//=93;7?7/59=88-29=499667745C67237=36=469=380;>5::@.0@:7/,2<9&628/60A1B=*35>32608A26/3+3123:0463558:135664>.B55;51917474>84=:312.6964;58;<2E7>3;2;&8660@.43?8+2661=/;8,3997/2789,163:52?31/:67<<0:2>375A4:@7321546=8.7/4<3:)/60@5=:1<61/5.83;29495=35/;2--A74<87:84396414144/<8>-&6$>03-;=.9724>.00<6.3:6002/13;>:6;24::1,/4:4>4,82)2?04,6857-:=?91=67:45143-/6/62;238671;90,9596;16:=/>82>9@938D>;3<7768,@5F:903625>><;888:.62A432$?,//621<=>=.0>0-:213206138@7:922758-+<@0:46/<;:1:582.;/055:6387<3?62637C>74992;991*36,37D978486456/3-3706748)42<19;//B/6768/.7<<:1759<+:6.4*:50;-96486-865,46A.9A:12)<+34/0.,:184/-7.6/A:534?93,5557>?40348&70?,0:<901=@1.0484+54239:58>3<15<4.B8=8/735<7=B48*438.5?96;)-4;66)6?;02C5546C<;,I44<73@4+<7956:47E0A5<2?<-/9510=180=661/0882/1/84-5035,782?0:=)13@:0535>0493>0,3805;.@/;488528>686=4.6=96)C+C842423828.124356/5;4:<8414>100,9D0005>>0>2480;4546<528.<4=73;;8598--@7690/:0%/.707/3471706.1-)3<716=1935./08++03042.:4;215.921B-.+02)12772816.)14264:240*1-:;-1.;,37/5(-76-;<272.8292-.3-2/211353./4.63>6525-.*079,?01//451A3=,52>>7/.9957/614.:4585,>39D8,254:1119*8?2;4>588)5,27871787:;87/68167.482=3623750,@95-344=(+4:/9<@542.3<504:9796;<256?22:63533897320)96-139386?,:=43-6,9224692;<49347764=@8:0;873/18>7:54:9A/64@?8A6188<783.8/6644:84/:15<,920G59=4?6862:'56/483162872::4:471740393;.:4249520==34=32>==4=2255813.253389.::99/7051?456941/8640A;0171H58>09232?29>1:96,3447127:379/30.=57.7;E486:66,655?2H7265;3521559&=>;9:87833450+943<26;=900=6112>95569=221449(666335256;566;0538.>039535344614'2=/3825771-4497;+9592742=3797/7<.2.70;9934657:?;5B882657:4/733;26;789122?615>04=949.7>G;;610@46=7430;90D343021C4D75+17E139?199<58-,48.:09/84A87836*6/494667=644?2.<11?>1376,4F6878:.5:=1.399473593:;<<84:25<82191055798A6;1:;91C:664656>42+C>65;3=:.<773IB,/75053955=362J8:=78496+52=?@>69655<=9D<349:;99873*@:187-6177706=5L3@64;12,C:68505795);19B>4?1273/?8-1267315;6514/740907?76(1?3<7=215770796=72>4D45625=6?342B<378@4486-;993;658517/5C0.40;:26/56.68;1-4=:92429/54D%98175,981.9/D4737-+5842982?5:03-/);8+214,8)3-:5-1/3+6960)5-=087-5<47852>6.3C/=:45-=610-*<01-?6<3<24:34698:2@<5596674,5.274+4?11/42;154772401=:;6;=2.69<5>9?4.1:6/14423.144=530879;<2:08.::96=61/3:A3..79.<364:5?<&77+<497:88.166594<*3;C.C;l79(7@2457251,197>2-716-26=.:7;;3:32:2+.44<32<8C?16387701.4-4452097(-:43/06511088942664=1324648369-=74-62A2=.21312#778-43E2<>548=55624=06;0872:636041<43834341:654261G35666<3=4::/7365529<43A=9>,@58C::40290/522182008276360<2@/09%457"5.*/-.?:;213+43*9*0,>55;)-4@/91B-53F:1//242220,6550A981/173;1+:C2576043:-5>:5H646;5.3424>0@-/8/::27;;40136585@;;7/3+6480-9;396/1502<2/=0505<653771:5.15=8/515368>68.9.;;4631;307:86947;30587:/728169246->>89195A9@81:>15773;14.6<241341/10406/-:86618933.2/4/7/98815633;33464368:1002;3185?:;92)9:9/00<:73756228/:5;81>8:0/275595649/',369==>5*?6/80338B84=7260@0=269;0;21/46:72,67>27:8A:1;783=248/<56+;9G5352@98+99;:05/42@9379909548>4<.>7/03=59;6987=C<9&7S8-24-/03>A28:/<43417973:210438698,:.=(/<0;44E*147A3485520=1556106/24643,=+25?A?64=29457@>/528966152145:0.:32.@-9824585=5/950C91563765229//:-<5*D+.75D41;,3442837:5&:*93@/*?"1795=7,985256544719;16=&:>43A65522<+921@/5;37228:26181,<34D94-5H38266618G6-@=,8387*55D2$4C5139$<:1/7D3=638'5:688-;03353-;337:14:07732<8=290:-4>@>::536:.04,5?83.1+G;8@663:4843;46?27A4<.47,6470.?28442D033>66<>2938/75<604:304947219:44:816:6?48;614:8381<80:4<5738033143745373947749914;844873/)00<869856915/1<;=9/75568948582A34.04982:73318<:4197-:522<86;6::5>1/-13;87==;40=5;59.379651/84-8291:76595.3A6/5/6/B82=;1=49083*-79=180;477@=-;89/2.2,.9;;307/).4?3+508E4720<15.4%18.8=6=64>37:4221>0@6?.1;2;4982269-7933-3:16974/?38370//3.196417879496944-:8/-38:@:31/:3,1312.2<*4774757<414;37>>19>4912134/:09B73:5024689:*:-683/5+446234.;4:8>453:6?655:1528:7@78;843::,04;55:740:D8<1.93;6=8;534/.<,42702A03192A@*<4<5:=:68:7:7;D55782:76;109D8:8,8-59;6*8829?-.A191-=1/425.675;!/+=82<>,3:8007,5,.@6/A 9:5:-680J/09+985855,3(.1?;=72745+613/60?7<*0:7/&.845.;0.2>18,7;94C7;:5813))66+D2).,6=?36415;44/.45/&B3617:@96.)9159,0612,965)7>-;4E+A4;.3972K7<926,73A41:1A.7>92571>92;7:41>8882;67?6>D85+7:AD.4=8=90/:4558>>.:2=0732374D42=3/06::0/))::9:06;25;7170A//?07-6A984,;489554=162335/30C;;9131:6465<'@897:641954<4-=0681959125:695::1177,:/420.3:.96:22.23:.49<.86+36:,74=/453=>91920163C79B3767;0:3;=088/<1946=B94:66/85A563572'E;4;0600163=:/3/0>53M22*>3117:>0>651=73.264)8>68;:>/722;.7:3./66232;2.32:27077187578*9;1*28E170(5:1J0::A7;168=6+05S8864/2:74..84442828.1-37E47417/1/0?5426:8:2/.B075)729/8=857<;046953377265695::52B=;-<>02?7665404>49@43.517+0K152:2>76<2:71-@:3302;:;39874+7:4.:1,2.952/-2942<+-709?3;,/7>6;/724:C2+73<23?;==2E/5885752717244:;2?66H2994:4786<65?229082372,:40883=:2:984*4848,7:C=384-1190;3:>1':+,21847*966B303209;14-<>F5<46524*9;97?8@=85;93>68/.350:8<-832A>97+4@6B/945+8:4<985;843=;;.<-.81?787103<777:5594:=6;528:=<-5894263<;5/<4>9/2:84A70<74=466;3C09453?4157853399496<-469I4,453875=076.0936>2:48/9764;;5+4/7616058952:7:3920/212;72799136867;720421?904;3;-5<.:=5(15/32;D92176/6:6616?;A762.*4-2@3257500816852;9-5:=588?6,2:.4=5>.;6659/67:/6-2388/322903.@8@8=2E79/0:4496A:4311021+89(9095=8940;999*/2A:;>2783>+5+/655.5?65%;H0535?6/3819332-:.:845>3167634;?03:7/564:5-59773;6;259628-23>546-63@4*45.>2+7284A7-696603<72;65:3/.72>1;8J84<6.:6=747.I;84,5:'<5/>,;969?5<62F>475D=4?15,'<:82661546<@.3;5943:<>0>4/64/-/:03/)8)-7.10453767165:<5/7718/162077610(7539567-2:5:919=826:/E8;8@2875A/8;7644225>?9658/76M8012<=54>7766-BJ7/9.-2553:4>71678;3446465=C239537792:9-;3:9+-8>16414:164;3237041:417<429440@.637243,4.5649464,;51:263;A24625705;:E66.13527647619>/>;216/394?=Q/55241E)?625065B@=7459:850A6.0:2-62C2-0>;::2;35615665:,7479/@4H@>168:8,42068,9172/4;333<825.7601=68-524-2359B274+.D35>5088:3.3>24<:042>2;1?:82@38:I22564=8?49:C915583?44;61<47>096/=0/63225259@2>3E+910:86190148885>+/867C3435408874..5>6;8.92614:@+9EA43<@/<,?/529;7;956712,4.37<,9.;7=://67;:7*0@-:1B85;/--97.4>5=<:389=43/125<82:942553488/5,922>759;/:6860C5;@39912>8586/3<2.50851,:6,41:7>@/,50-+7+=:9688316474@/)755/12867/50+&5943/.6;1;+56<-81875A8/;09.56B>.5;838<4/8074:072041#9=013-;*6<::?,6+7@40(A/?3<94012.<72296::33':16;@4(6493/<1402755<@2189?:54+350/.:22>5/25<4C,0:577;5806:31/=69438;7/+/17<61C4524'85+182,30-0&28252<96@;8595:0,9/:5034E6996:65581+#1269=4/4776538)73,8674F.:4=/?37;3138228?9=.47?=322230.735406;5=086223B00.283A25-35B410+:9?65C/92;;0A0794<;531305@658)80+1.:97593-:<737:22I&;152280B8:6=0:85808:8>+9>69:1-<79@0;=3,7.E5=26+86644<9879:3234C@53080=.0?365=8.7>787:/5<7/1710+6;757255;67?471B25634.19;A0(31@=<16+89::958G31166:,4;1?94:687*:8=55/2:,D01/6;+872/89&<479968;5@;824>67;@99;82?=<@==?7:2:99658=776=;8>:><5=<8660:9@9:;988569;?@>87777C:9?5<5536;;8;8>=5555;A8:;;;:36Q789;9=:0?=8:79:96<75=;28:9:8);8;498;8F338975><;=9;<:9?7>9:?59:=<:36:799;75=;D9395.297?008-9D344714=76:1:363.0;4O4547:-50837>D,330B=6309021425<740>5*;0:9717953..4D:;;214>7C:5;25/06@99O707-638<<8576/,80520727884/3::887:5@;37042/A473=217614;06C;/3>44,8174;:65I3,607=B4.1=8;5829<:1988;HG5623B25>1;A/B72;45,;6@4254.1:0'7998232:544736,-;2-92:7-0;6,-147=<69926?04;8:2=>4158:<7/146-45D3/779C*6:5*>+27=1442+1381508@5-2;<26>:72<5/>-F59B54.09699-69;0C997<,;1)=0+6/253;9;74@9/64A.@/:8>874$5C)0'/10-7:;89%08;<920@+;70*-02+35D7829.1=/4;0)4/?12;034<0>96;53404>3.04.8<*.2:.27+/L<>1<1312..7/6=0@694E/':>37:>+>2,1*53372../;3=<9+:64666?36.=254/376/13-2K52C3B56.2&-C>;9)667;;5>/:,33:4/7/86.0697G<956&:45>2/49/=(3+4:4,3<778/8833:43,8@8644*900=97/9:<*+;40/90-<5C903-4949.)A3,=961/2;*0&4=3/68A<8@38D;8-49;=<9>99>12/;503<<005//2<7254/*8?B9>1/914*944934;24600@9-2221;/652:@23:4:/593.53@,4CB831)156278530B:25407;698/6.<0-668B+1-,/278914:/278:<6;;+B<54352<049//>:673:4/6=8545358<590=5?:85@>830431-512=945:,3*A:2+=;49<6637<+-72,447,:)022=406;>:0>0;6?669453.3537?49506385E>79;6;'>/568;806>96/=4B7007822<7+9175,10164;-/24;7??08738+A=6713/=;2;39$-/762194=69/.153:62%0/0:=5792147.3/+93D266;7<50345I.10-/48938=06;4A//8.75848247::=:8157<1548/48170583<+2<.=;2348524GA@6466B21<8:478315<820,6;8573?>G59::=:04475@>5:6,153=4D.21*C8?780D630634-152371907:8593639<8B=7831,1-5B5C6.4D1-4:43145:013<>>373435>109173./25128:3849823348:9:=366;?65003;18;866A4=4;3506382?>*:960550474>55//;3;217776<654265946<*=379:'6674:<3560461<2-Z5254035758>4592.@:.394:63572381745<68/,0;72:*881B0978758.2:6287927716758<.1..87468?-30-2*38;462/658?6I=52:398=:4?317,3F374300=+,;8@941><17703=211406869,<086+6:07597B81@9110*@,7/39.6644<05,01/3644.,60;&58.6/45E.211:/027/6620/17>43022>764903-:5255>5.28474@58@08:/6>A/>-03@3,;2/7432205322?2-;5515121,7;'1242,-2=;1,496=09394512=<91864::4:.10:15122;4:7369+90441/,A54748-6746D/05.394893<;7/5820?;.011965>85.<-/3.164569A4753840<525/912;20K;4557+52E37;;803369793<.85:0:,<:3;158:4-@;/8970>076G?34.1<3E<*3362190*586740)6B*:6-5;3,,8.6>77-:,4240)6<80969>7:.2493123;487:52504F1L9?,-:/<<8:<5:,;5:34;.342651753335719-64.32328:/;85186/5+1/14976..+84727=4451.44>8/=3?310;<<585A1456>94<2;4=.6/3?145,552566761604<7<,:/;783107<869694810/41:2F<:;15B/?:;4.,554-91,186850355)5:368A4F+<31/4-530.11>1470=654/0+89306-/950.77.:+421;*56584;<911-;5;1;/9<5<>19>:4866267/815285:1790562663874A5:4615-;18,8371D2>)5<:?4663B20<442703551935612.5:9242;35140993*0-7743687456:-<3394<5-;<226'528)=;167916?68B<2;2;7434+=.574157/454:;22473:3:;647466297/3323-46113<.38?7888639:?70845565452;81*/3615-<02K4A162+08<775=09;9@32233<7=35-72)43M:C5:;3741306/102,484256504;/5662<)3:62525=45;48>15653386>@'/?:07023;*::2=36>179>77:;.7=:333;.9894=1237/5>240799<5:7F4::99;<4-,:432:8<44.>)82,37.-:<.6210*000=61<039,/;5.-7=036443.45224944296@90/546891?42620/.9.6-1840/813344798:2.5-015>061-?1136,5.70768.*;)5:5685:02:92/+;P594.@7232.B-6715=C::H1718@,-:8<2659>==87:287=1.79<2==,2877;-1/6757478;<9/.16/>0::$21?/:2;83-41:193/-715@,40.;219;/20>72=585435-0*-,10?02<=4@1:3:94/5B884394664+8227757586./6D;/.3,609<79:101A4/0=9=5@5720014>638-B*=2;=244861D074E,4684D7:2836804J444/8>63>2:3774006=C2@301514:90986=7198/3>;8<>?8:377>?A,/,+260.41744;D?/>J7;<365?2@80:68;2)1.340')7415=376/):7171(0=)1/4(..-5--2/000//-60467G.1*.2@272&23/7/<21510(3),/310232+-;.3734-/525)*.6734,14*.3+81054(%31+6/1.2,(.--43776,063,01(/12932,*5510(900--,03:10<58-*.0>/79,3$0.40%.14@,8=E**@+;(75,:-24411341+))02+01++5,;64812-5//"1.//@/2114:8,269-23=00.(55102.4918-/+'&207?,0:3,,)16()62?94<41';/,8*'*34158,,7).65*741+:434/'=2102541%83(65,14/13+7.1-*0:-1:7:4473/61=08#484:770,208B96191984;016;.236;3>142,<,230362@<.;?324;)/6:46..66;20275941*4195=253+270,64746:3%7<34332471214565244::<3<3-;5=,,()4>=7:9.279-78,,6<9/322=71504/138-73<519?2/83C5251D562@34=3-8/110-7./1:,59/377>6?,<735;9:1D6>/795?=<2(;6<15-12:96-7725+0C1*69851=4,279<9/?=:,<695:;;7389,<5:476-92@136074/4>08F2<60/;4:;2@77?2(+31@2/0176588;26;;4075,;6<<52.=5;92@1?<<4<;;<'3<428=98<5?-39.?256/25/69640597909=:893552-51646>60:+65540-7B,4720469*:8@0:34:/636*D4*.3<4A;2:+2--2-814570@3<;4-92696768&83?43;06.;7%50831)049=3766:1@A41798271;6-02354:1<95-/1.?:1-/222222:69<6;:86>12.(9;)-2:6442.29@/037?3;21*6@;8+-+6558<1/:<1K409!N=9278@A30;46;H92;251=95BC<7/<3.6:=;7@=9C62C-=53948>*>@699;(=97<>982/>?<;=D9..0628B.=6E=--735926=05:4:47298,B=233&68,,=3L4;;050C:42/494;3?;0>8?90,D;>,87A2+./A?4=>44/:802/3:979845<8?6;1798C96<65736336/8.50;76.9>>229>61.986F0.+476>4190E409:-98;/5/0A03;9C8*74798:354.78<70705839;6.3:2;=+/4?06././269+1+7-;724673286;9-6:546(421;=:2:693*>6<1-;H,1,642:24025??-;276/A4;A:3613>.500>;2,6719:-D2>92428J<5'?458<5?252A0551@82C0=1:672:446A8;72>1@09;4/85<94?7B2'F0049298/5826A/*I*.:44<6:6=83:574<10:.1749?-2:59;;2?0-71,:9548:;9:F87,211-36427821926.,6777342..27Q2-496986A/0,)5>8?;:6?F:/478??3042077<-52/22,34=?8.285-,.66,%67641*53-9<00.64.+89C@:9<225242/3+/404.:2/-,290322942@3,.82@219.077064153942A1>0*)4:138710=%9<7133/9,70?0>28007?*@237:+67-76730=0,/1:6(47>.9:956C21,/+546=*2/.2@67:84893=3;5+1/642:459/861<:23<)4;3//4;8:)28/1915C6A,15>251=.)32444855492<;9.923.03:3-1:1,=6>48-:0./752582,:490747A3-<66.469<623?60=8=<,.>/845240:A525:/083-;.=.04-5.0=06>4917:6#%96E5-0A?:76@2>.,9498*362:701@?7.;6;=055=;::1554-8986?687.4<;6:*8;484@>26976:6884/85%2;9?10;469-45;17@=7;529*@12<66=5A5C6755:<<>67;9115:9:67:31031797=9939967(:-897<6H<;5524:88<>+:833>856<;:31677A353785:8+:43121:72105;6:=7342025790C/.-:71+<48955287042<+/2/9<93<2+2:96:86=A255930+68495:='9751526.-68954338C0307.*<116;2//7.1@:92;32,833?49?,;3=76;-34-/:637825:/87.2=7348@947,7+2F98,.237:48767*2,95@:41250<38116.3/=83-5/;3/<91)6485:3=1972055/;46:10389/6/:>.863197309;71@-;59::56+*2;34401:A18:/18?A25:140)$0@:1/8:5,3927;897-4053/309,:C64>66?,=9-968336F@40361)D0>6;+939/96273;:0/=<-8487255069<758:4:50)9/78/27>1B<5>:6@6283(6B8?42?;265=9<91<45A4=2267-*5./:8=2*/0A138=4204+-/76//8:2*3342:4377D2=4:3:,.67B75,493A4<5542/.2@6:26;839:7::9?:683;X49>3-7794984<7:4,?-=.<;?7575C084,,3A4D2':7,<=40.3@?B6468:3>849-:479+-@2K8535.7418,765A;93415B66)5;17/57,8799<2838I2F368.36@:8483;5976;.7D.47613:695;51C547953393604259;@7/9574..6=4=7<5515472/0;9785D;A3@96,0528780264.<885,3633;49968754:-8212/:998299;8-;=;3/5475326842>8325:5574282;734.6619046;>20/?3448416839/6711291585639.1:88623856:856<05/:-3=24;;745;2<66262586/53896<965>63.8>5820>365L90/46?<5363>;9:;83922:@4/1374084033=67453./411634:=/5852;.31588/73/16138.5414;2:7562969>B8=9><44;57=<0424732?97<35323825?3703<7498;-609812285.2.293><3026577==7)26;53114:.>898)581579;41?549;7<0639131@74<9623756472780572447;9/2./4;33"85319A35600:.470-94467?34074G3625=24-8;:480;8+34543694::<82:6:*9B2==33:4;7579100/1148:93285=68:85/:654K>9851732-:;762@087945460@>68;43;45:3445<:76/C<32055/2523868941785:34=574;5356=/:888:45852;<2:4422900977828990:8>08546;:7=9772427993<<4:0:7<259589:17463747@7:,-4915A6754+839;?3=-008<45:,60B7223+3.72.:1578-.7G5539;76:5=0.4A457;1@3506141<5937:/2:887,6296/76?8673937457:837,493=.:5=76.900+?8:12964@6:265)07-25:58@93.;2<370D09/4965<41183<8841>5<45<@162.4A478/5?5941778::5;/9;32>55738<,827;<:;95.46043275671.49>;567<6220A09755;162;1<0;9;7;977>6:5416745,8=6;650976:153486:2>9782=/;489795107/4,4778:853;/9377?438874386>89=5:94=;05/8H9784<474:3039655363543:@685<;43::<=523325149324:484:5<3/525772466243429543:679783282318855273093618/347690?5:8192./32;379:67;>25<2664:48888;539884><43>672417:>1276598199:-9623874//2=::98;6/821698E654?60;445733894444;0:643766=7272<7-404:-0,97243156=435954<6J98793762=6;9;8259/4<91>614/3765761488.7;>2667897:0396<>84313C7=<525728635069<9879,1F4988305322759=771?I3093<9=33185A97987-72=881@.5-89/7579742;4/7416D5M7133784886:8=?46654833;4YA317631.9@57;-028854=08;87/4>6=45;0;498773:>2461636=65.9:0?-:8784819968*6:7,984593/=7086@844<374:623:1>541542;70342283576>45=4988822472549239591746>459623>=+09>7647048:41./1:82;9<50-05546;6:259741<656<45.673.6?72;D.7A:07<42192295+493<4564B;9;114748-)016436;25.90?75*0875:247694536/,2926?17:73;<846;334=787<6856:4@?1)24>3:3,5:+67:965<1015>F665:*499746511=65607063877,555175'3.;2:7:93:6228=6335:7.68:96@0=6/4<6:19491495,;8:05287+44A;9445.85852=<=5/*.?4=<92A9.486=/257=57<<207U29537;7/+8233<46947727724476/.69151.047A4176;7:1656<36?76;<63;24535<6<6705519:;79@6:71066A<7292=42;6517=8./59==8084<334731;40789:477B413:54<413<43<-51<=472856:1<<8164600183:79378?226/;>27/937?::61=8665050:4;/7:847<952683852<81285:50-87?,44/994:93;5255794393946621B1/;77<;0A82965749442;A145;88675:03<724,6534;:9407.73<7757047527=:64?:934?;66987783874:36<>9958609<39><755:7=646593375142991+>C8,4>:0415?7657736977.2024G.8:993373./44537371=5/2/59488=@336334492<276,/3)1596815)?4;05,8;5;5->326<*18756;165:3'B30=/80700465B726:3,/91./7224,3:26452+:-78/8261@10582197518@=457>32861C18-722(3550.,735:4,4/(.1/44%4*1-0529:/453005;;41:1835A4*720068/=5..C6294;245/:>=8<79055583/2.68972244771/19=.5@:;081473:58/1550582==9862/2(3/H1;3+68-6+83:)11903:/:F216666?15;<.99-535=4;57-C12A3862-8,0)9-787?G.0.6:.>5;79.26;<3=8?<03A7:1=0552A6:8:*2B5./G=6;046:><2=3:.-7301477;/53372::51:07967:82238226:1743?;/6651;4*59*3?86325@553-/>6784>::?35575+G7:45588406.614-917D341(>838:60;5>22+1;6:.64'G/0G:42%88=G933=5@6:C=45@8:0-?:978=:97<26;589776?42=9?/236;01223;5;9:;59,5895319135(1A310160582=5.6?056578>895954:14333;=:1.5/54=3970/.:8775:61?.5422150E8-62A?952322:93046@36D:5<74=7<.33:-51::781.;88<;@16955349-I521;135+842.8398:59259922*773<53D?=267476:34<42=2:71*06426.;19196363909:4584869264305806<884=4083@@454945349648<553-963<91,:44/8<25=:4C/77046<06:74789835531:751HA5727:263C55441:*247;=:;486/65911719;C687558749<>:362246=;866348<3=455<65>57-4566=4@74=8+309;8@42851;67:77=14?64-.2-4?@305976:249<8:2841;6<091H-=65+103>7086+0;;7553-243-6@24;84>-<<80=35<57;;6705293604638;937>7/?7053?66=688522890*2:537335283090@202::1870;/8-7438657525/:7=;5638=8545=47101188/54635=.3);78;662=87:27/8163649-6273535788995201?;571<<52-4:8><;2322;9597942;89:99.65982-26546?86965944454,767<.>85A=63516683865259:595,74.:76958+49-:9>4772790@8?791:78624482<43?474:4:28736426125.7<9821256:/7;0574377:8045493.345:5.49=-4:43-023/480.=@6?,:91449=51-5:6697:883722/D<>5A20-/14=*52/72-62A12837/5@8,=:>0C:0.493;<87544677<.8;>:8,078893505,986//3<6763<;74;5964447543:6615388083275<1B4;778:541;8;942;42193;855;5285464;36:36717;4238674577.67468<6<6361;610/4C728246>432364<169<6:52<57292;32186,6?277.26<68139?3915.4217=25L35>>027A079;3@:9:47#03;2=:5366;70<065/85818457.7=?,4//4531692/,/094>6651181892738318177754/35=36090@27<61262;7:26=2/9943=;;,,65=4:68=5?976:9<0+704+,57:-4995,243/87:67@6/8:391446/75<;82374?,/;525.5316:27:6.43=<33/1:<,895557338734-7:34:K86;A:3=9062<5=714>41<2<68:4@335<94363<<4665:67G43653;04/4/6<,29374;95844:6:293742536<82::6@9693657388.456.272677549997252/.35::2/,590<3<453-4;3205672303959908:385690.5;2<*699:14156.:5391<678==35.4>>525+:4928;:64=;3484=45;675/9;1;1<:26:8395;,29583-0306:4;:>0.823:03658?7/H,07+9:8;085442:5>4252;668>40>56774?.;996>183115520@18098?225889,6:6;39;9;B55:1935=231/7114886423407/802603/;43134/5?463=5*42354:445//19<1,2<.2-/@9:36?65E55148:4-216;678268=9+1<:=0282/:516:93@D:103:<-;72=/L516<3@<:=:.076;19126196714977>.49,02=<>15:184554.16=96P0;7-840:4,=9).=:I.@343B5563=5850:709375*<56?87@57466;456264225823148,3=2///75<:0.80453162>/;<-7959527;8;775:79=03-4.38;6828849990703<194,2.:C154:9466;838A0B5437:43:5>0=40620>1<66845937:7.;,8749825242:/887322;1-4284:36:1;184119:68714,4:=5999:38==617/11537>30:6763/377;+7527(01=;8.4042<3477298:085;/<6032616?7=;088674>4-5>>67C05@472=0-7;767641.13:80736;;21;6,08D,/10517,2E/149-4472655.9*083A3><053)-68392,;0;.3257446,;9237:952416151;/;<769?-368@8:395./7=5839=65666<4/6462655474=8>95494;97,82:4:8391>:4<8+852=57332./79=538362?/<;;047<17456:;/2;757(39<3=7781);:7&774.<4574;E41:27-67:*?90:;757>16D409/?9:>45;=52<25;219A/81.99C33;7,995780377:3991247.4-8E5591/637:>866.;406<9987784:9;.6;41985;3/805/<0A457<-7646@?266.:867468;06(;53.156;3:48551171;46833369=27419;::260/7?>9:8182075A*0910:544458704303-=90157/627968798?:4991/4?4655<72/5/36.2:4934@:0>3516744:;46075<2*0547@9:80094;53/41:4/761742342?95:66194693/1/1354145/35/;99/D0591:605575:93/32858;948967898.1/14;94362559:/E3598.487021@94:70-5;7:865441:873A4=62?>4:4325;6=;73<03<4?4399261467654.24143544::4672894455547528.7*140065:156C46400=.012674451704:09<37575:76<5@844563;1:5372881313963;9;28:75<8683F9?2:8,)0,1;1>47195450.961:9?9C=5-5250723367:(/6->4-*849,.287/656389886:53309B868:@76/61<:60:545;87012,933->;8+,/7A90>D9040::823:844-:.390161?@1:4<934A541;28,3F14575?82/6<1/93<489(>>15:917416-;:7=89322-031:8441;457@<92033410.0945589<084I4->:5907:*8=-49:6<813439.2;13+7<28162024465:6.:<83167287/571*6501%6+8?23580>:++=/@7.537:<865?=2886>5651343D84?1306:61.75482334/2,4768:99,73564,9>(9187<=8788>?6145836)/5585728-><7735893/351;:>3A;6/8C33143,75<09=96;7;=:1-:/853J1519:257A2859585<>;04;0A924'3/73550613840/,49324-744;@;:480734767<24/746::6635:3==:2784<3//4@.4/<0838/165<05:364841A6?>6;:/(217?8F67580054E50/56686<<5314781<2377/7;:;97473-034537683427.610868813>524=4625468769-9384053=:38213<61=8:>563:45;@6+-4/888B986.44+346>55391699:634(39.4/56:/5284425;/=28=50=659=62451;61;=1073+33?9+<4594412225638=6505=;76867;83340(66;4235/<0.86659-560747249K205;96;1/27?;29/6.4;,:;<046.:7,:@714842:/82:6@/:9<9952+?766588/9645149=743:52/6942-4873-4=/*331437>375;855*/256830<2=<0/<43@0?16@92;:76;8843:;8-14:1962:374-2@75<61C456A784139<749+1314=2338>5=;29<71328874<858>;3:./4779-35+.>F2/4;26<>;721655505=;986012-65@C342B4?8?9::;.1155557-7A66?3:>3=<4.>51-=E66874@;8876212>605431:3:<-/1/4;46:0.=521580=9=:93=/2365844-17,7>62437?..03:28236449CD87730491-522;:8226.:36768.4303431>4=D70A:4M99097<24;196-D319<577736972>3/295>/937:64203/55329685101:518;-A/556=3625:698@;124;=258-.6C2528146/399*;750538.06352474.//403<7:01/92=3850149;16472.46744/=618:84092992=/6352035=:5343B6@1333665392=05;5->37E20733:1;<851761746.364474>958144/84:<=D55=73=3=:241<7693:858?-0072N836:72591?C529@:97><7<:=584;748,5386/15406@379A9263BI797:;<9126<8=:?+1;558@<.5A-;73>87.4,7.=3=:4;/7.36E7399@54;50<2623338<343(;5?9>=:-5;=;13365431762.70:;:3687(604;5.872:/3864+.532,8>400638204036;076@532524;46436B02.22.?<12985<,4;7*:00;3<;7357.183;6;:50<09;3<=H3566,05*41<053563.7753?3:7:?4:6,9..216:7=96*.497954//62;16575341733,;04/:>:=:B=1:;475?28.35:17976;>=0;270258:;25<+787737::55;,6<64?57B18+341A<3=/<445.4.07480:249:A46;27468/6G9424=193039*24@1=54;32258448775:5494-5<61489975:/./<73:4?639946A251<29582.312A44<471:/4=B24/4084;=925541/0/8<98342:=.6<37255=35595583/3-1865526=7680632:821798908414/523624<342901-.<1@480-?629563>;/71376994622361891:23:40G2,8.905B0841761992)3,555=7/67D0718/963A5/?23;<3<20:68350/6,5>.:6283538:83604/A/5845.9/:;023478;884384:-79?7A363216312:22:,7846477872<23,757384/1942:/7=4982737197:=8;4655=6422253<:9=2>3693=8913+8/?;91*6963529366<268=4737551558234:87426;93?096550:5862666726439<11296162<094:13A61.95D400/86-7:153705443576<98;64395<=38*356;;3<+8589426:07;85/7:58876.42:7=4/12<188.615;5=68;/50,7-70:5406/8037?2<874;524<44>60.1:=4;937854445=8;.:/0,8:036104885626501-?<9:63:663E05362523556:;D618679520?88>7957,2644-.391<97038B=70;7?6224829768>82626:77382421=44813462109;24/296?<422?5/4>37C34>371-66=?B?0>097912>8/7/46202:656565/4;010726773:<4,.:/5-77;59;3-840<;78<2:47:,81<12;3/B2;5150:/542530<52BA0=:68:33549B;41/935517:<574=576293398;6985933DD44/352925/8;91.:65;17:9<2266043=43:)411968271;8614225522<2318?3744:318680>25-:8=:78546@5670<1.788162;22;101878;230*?95679AA7:274@9:57;/0?6?76<90/22681::.A9=39;4773?542A6;622@=54912;5063717>?7A8:;76158439<5092=482.B4014353;604/2325::494:43<7>38+:24=15A849289;;86@478/2<001472588902C/33;/<4904/.;38-326045=4;:3:.7:;115;14188116.56/9491-88201,1277:61>1--78;630->80<5>@4A-6185.63634665=173:>08?2C51:?;106593/8/B59:35/8/17:040-/,6901676.505331<4:/4(27-9550B891B84533:2;?4347-47942<75/822727,5323<2:8:11919?4/?461437;6117079/00475272134863=D;5;/295/61278557325:96=4735>0;?638536.57<9/?612/5@663644:53628.:8;7--05/<7622:37=68/5710;5017357<67/A.7;:73=7;;/77:.48:973A87-/14686:5332<=,36,55?01.6>85;=5,.<22:834,9B7:<.8;;5857183/.0644189:7=94:9.344>271A/89<09<758=7596*266.0;59<33:56800-67331215::1:3;59:C5>@86/89;(074=425801:5294796.683445G-3-3<37382624;29629D3=9392.815..<<9>5516,20543682,/@35)4*668?1483/52664862:5+2468382554:-3<=;4/:12578405<568,8::3254538169151784.49205655@=2597;:83759;025=6009;5418738/:53;4381:474<62471?;-78923647/2;9336322+/8.917>6783932329449687;3562>079413:772=6;345086133>47?84542625/5:3943/82578A:86;66;=22,?8/16076189148?:151<=2/87-35267<10717A:/17/3@1941-=/:7;3838591435455269=;:14:144535;2>86/?53739793=;13450001211517.<3381015844.>/:24/E=031/65;534210075/2;3253944?986976323348:812;812:@552;<844;79160<71A/<,2284825:40788482=1?569<9/?<;05<65C37531901;6297<6.2?+9>=7199,44:77275502@.26516/8:.7@3;046956//=>;6;1828B3:?;151,8.2?5<203673:05-206054P;40;.1;54/@1;48;156523;45M58=64270<;46.;52>AH49-580@5:949;>1?44:497;A:;8:8.22/51;218:38276>281@7308;;:1/6457-331:720::34<7G508A5)139;3216/6C4:/62/;+04/7-16:W8345<9:7@3@3:8>9282?;=7264289>3349810:244/6581632338/;56;82011:17C+19;6/3985<7/>28:082.5<538<1312270/5F4=6688449<48.09427354)62?91=-5<:;38/26;487-/95247865147415>;2634642917706748=93=<1481;0:8:16441A87?3A4:644524<929270583/348535<915828??/3<2338-81;23.@86299.A6383857/3=7:;718574379157460446.521=5=7769=;.669,4556/=9.9>867?3<;8968?786448328771;7:63:>51A36833761294::57?/334=35:0960351398<576698.4,3;1<73228@:967/.686318976>;07/9649278...,>9;7/<58>/5=;3481616;51747@C43A.29?.2?56<41<7497912?7>51365787-.5983451<054;47==81593=A4.4544<5-.E334049454?2824568@83/8B6543-249;6/::0-:3623397983:=*7447//08>8/4.9;,53454+56:32.>96055152:53/3:3555.=<8A224575<6;7:5549<:-89->9,24836/964/673734-:93<@5A48=:?76478,35;90<;13280=56.636;@5568065+129643:9473=3;7<390.92531976<5-729546-5047432225361@23=44<-:8;3667:13<,.:9@>9123::=16;070+894=52592.6:<4:3-/53>/::34:4571-/9246:6:<9389D71.5<7:02=08>/8=.6437297:3+95:1<=:<0::9.B144372:0836C1<0:B5:;36415<;87/3849886>0;6665328;+;91:2/7/6,9*;7=05?82899-:2951A314121@>3778E768272291:/89:/146:9;;2.657>;19/8<4:53<7441<=2689@60=57<832796/0D2=;:532A1:6<8610;57?31=/=5278/7=G893K32@867<3853:;29147<<82686C8.22=2541658MD43112?78745:7:C6:570A662<5:3;95666/898@25281.?2264522:4*87=03.82192875547:/5569244513466E43<6=0.8112:/>51249096D:3122<-<=;/;2394;.=74:C;495:3)268787<4<1.4421/101050:70-:;<57::897599710>;6=524*;799/3:74@121830C50172>:6:-7260730:745;558.879'/5053<206792>75031;::3857-6;;4<23676;3695<31@.06>;4565734:335?;5257<1-7:758<246440297844559:65?452.<411.280583176778?/3=291?-0B636:5--5<93135<8:@<1:<;2874.F6802290539<047;9?7<431?9=:45;/0:8565488154=24>0./-/4==1577=646354079C=333:451>577328?786656<53/7561<796@7;6C8//A)7<363:;2888065:8780/,?:3383..;8<9@/7>8004*16/??A35;5=2/4664=04A1:0/7;<6:$461091194;028(71@;58311352143?7488<.:213=4>9747.37434.3432,24-::<5075428773560:27.;*8C4:B80F29096/8=06>85=721257295279=1352911:/3:<8866569891?+7.7461735<44637;6:278<844859?;;4/9A0/=5839;:098<*5:486::/857751>-58193;?>2:4:315;2332A562<64249675688597?456>5070>8,6A70773=:6553-00670006579.9488:29297;2/4;81?<83<:?9:;4193B4:,<5,77:3:='.;27;753:148540;3031431+71955=882956=5:30<8453654484/<7;869;169;9824.A3:4752D6-14/0.79125;>*:217-8867738E3588991-65?A;:42941105:/=3251;43;757854:;9D96:53375B/343:80026=<1@8738:340?356-4874>6309528:3780527754:7<841:4225982/56,203;51;0@;0825358B1-992-2:5/5:.9.694873:6?:3354,873;66382/5;8:166<0;0673.61455<;5-3/A33.845312999<@2,8213447724<6676=;40;?39350<.453<3749E7246749944:+511E6360;6520>?3;6/.51.:204:2/:27/<8<-/8@:4,63;>7;460-,3;,5-5<=;6@8266><:=0793<77.31==597855368485=89:42628,484215B2,2108::7597>=2>3?3<9@6>9435843:1679-2/:31B446/.676<374789?657.20@6439095::31B@0465/<9,664624825:65086<<862028765<.6.<3;/9022@;361623>2>2;28?63957;C6576:2205@5426-4751934>66<;)56755<061<83:5147?.85488<;:355493/674:93<:1973==.3314/:7155>6;588756;2<>6483@;71<9.4;4?744/6:373C6B7:3/:10<893/:.>89377255353679*1;27@G7:8747.673654<:8178885?8974:.+29490=4676254<.2569>=9:'37>674558249.87544699037>766@77.5225604?762>649;718/44:9769=274;<.5:3<.<87;2>/8155983830>;:5>>53=1A:.1375<51;43.4798A399/5344<<354<:50=;5/;8:755601961:0696752485=6<7;>>65;3?96:6834<0959782274/75230>27666C0.0327.77.1/45+2:335174<3784F84?B;;4=81345=32419752322730:956;7:.-=49?>04555672?41>2/521J.767<5:634-57816.3456:<6/:?66<3A?6-4/.8969.57026;:<<11=8<406:1285+79.6212;?753690830/?-5046.3:8924;2=3<2/?606254<;71-::4018>;13872540382127549;42=.8:43/,0/;26457908676;7:555628>.=5:82::;@7/9354601541339:54;68;5@1355856;;<44.31871=3465.434328<8742/6085/2537336H=238609683761044??;6:87:5521;8;=3733279A.365=8678=6355636D8A?3973043/45=5947.;;71?169-9/4021782;5.15>757320;0:7318684@?2-918610453727;413698324<537<42672874<340631:4492888512;417+98224161376.634?35:107623469:7322974:77;;4482;544168267468332650:=704.>5>:28,5959:5:85:=356826<6978;:9?6;6848049159.<047.96885:,:4358A1246;06899?62>7977:328:691>1;,6;:93C<.053;4=.892226:879=+92:9;;3;8=442;21<4:5B147455>6.B69857:8038:64;/4.4215'/3560:276@.2343:31:749<46897274--4?B8?361313?:750/-9=-/7358/8301K6<31/421077,395/0534;;A542875/82:2695?E-*4/:C834895:7=8<66079617327/51-D35>/-/69@66560443737?264;7012;:239-37;>5287868<5=8?296452@9<;86372966<996+734<-:523;77/5899<06827;;/534:117:15/339L4816>8<=<43583;:4828=-7725;8/:73189186496=686:5;293<8031<489G==75899658H;04:8=3B522598-:8<5693043;824/27.339657.5)94511<534456705*>=1;69688428197;9628<.D531:65;?6-728:45:37:*243E-628:7;4985+84101+42530=?348B*7>-32+=*95//4.?216779/6,97533=5?0101?2>78,4,596@A:62+9&:)7/::D253:77388C/1:6.9,2B/92446?,:351428:247:4@4-7:4//'463//4)6@G735/+38.6176217/>860:?8<54;>914=2:0?86B05212344557384:782456;155;0:5,2,77:=48.156229.57<<:27.2.71-72>:08:82<6359/9?:<086:5-884<28:,632>5<;3=84<41747/6285;40072449>849<57.;145397@5-5/23<;5/745916+;824:753.466;78<7<55479436507467733520334?341963563:833:>923=7>01471;3280-63/99736543;4;91?;5=13:7056442+:=557C55?@56A8.2<<30:58694=:-+?029;904=192=37*.*87/94;?2.1:79564;4+85=9:520B93A/*0581/36=71=241.2;57:446507@87:<82<189=32>72::53C;;875506/37:,>382108430826:9B>;779=885:3>56:>=80=0,679=/5.>/3208360/<0724:;6704@<29:4690=929993380:267743701759<8:469=55;385141246311,:464456,<3,-942416934-11=13;68?596923B579,52345291308;45705128.106.24(0(23:12735.:*5346>9:0<9<;31<8342;1/0/64<16<40;<>>4854;+;316/-79520;0519;08:?-2-734765.4:844228337968514/3450.3==;387;311/4863:;>/A?74:7250H2+7.2616=;6;44905.68<<84H.961044/6>94.6434-95>4.9?/:4389891/898>5742:393.94?530<:.78A54741182541<56<212+07552:200:274@526584116-824:127789:4458::4287;69484==./43668987<02=248938174630958534;7/-<254>972147169//9/:88*79=871-35591757.;13+3=5633<;6=>@=<31510753<52/6718698801;7-,925::10:<4/4936539:7594<4>?614:37;<;;8<2:152A8:57677261443/60/54761567>?6288@4751?4774928=1;877<5845731,,0/;:4142;53>13:7<568:-955446536-85793702.*6<>68:1B27A<827219313/9;3C1=>:<356<5580/=987@482369.4/=:242375331/37602<32;=71:487356417:108572:18540066:4.3?3121691541312>7163.861443746476B7783,741.;;/5.8;789<64/=69+3,043821=75/2-48117.7./7853;120.262.D929714/7/176=<24;72/>486752885;;4=>6>387C29?2-3:784B+7359@64=/51/;9353.>:932/<75A21=173555:7>2:4085694307.8<21;@;466,3245,:17;>244825@3??2=02730122@87<.94.7550:0/5605:;383?651878137523153/6.156A/7855899+>80<9:6:77;44:0427808/82354038*7I@=690=;EB98163367568565165=:@/00718:D92<;:5:<;6:<4860489>949>89584?;3L869?98;7;09/45/;.@6804453D94>8@680965:375:<0:1S=065<769@967=A10>34C57A50;5Q580<:@/5?=/5>9:188<;9;0:79483;4822,14;331;776;2-6287,04191/51<5@C7.<=:7172:83133-6<68-883=18.0>27474-:54.C,047:230:/3:86<6@5572;76?..,<=07<;6=:95/::922:499/781759;86315136133;9178>4853+>764688C26658934/366;7-38<778<892503936=8>847436646425/9/392;84;8*:630149483;12:=;462/328<3766996;026898A0234.26;4/456>5;3<995-232778;783/044;69;552.3?47760217038:7>682054:6;08272:7==7106:8795>19//295;;>3632527956.493A99*7;14:698841621:734027<413;/;35866;25/26<05123322062<8513908<45:8546574560421@AH=49.@355686251@740078680/725.38B36;797695/45,4201;324/6347401<;55517556:<>624:744;4394=37L37506427=4621;4844227:696<67<755<8>4:03678J66278;64496671081541701232;8117.40@;26:78165<7;4795473462<;3<8:69534169426505G603716074;.604/<686/113::?::6,0>76655;29446378281:034>7;A2176927735:97:7770/6>;198/.594962600B6680=5<35199D3<;3;63213>51636<94568538=86<87;2<58741255335476257=18+1-05:53735/0-45757467269163972.<1@;87D456322896482/9<76?34474086:?556B:(16384438>5:;.696-;9958==0<82//;5437376:6@6?4<:09B74>769914:6C8585=19;6C27787?8.0:>:246765.;27>479357*93?>88<48883;:C:-;>1321379;7C9697C76653647/764969@;:3707142E<972(8A1673?79575153/9650306<64;697>65;22153.1986:331;79.59C0A4:163017564947.48A?38*95<6F33=;958@=A:440903?404636:*8/829273;93<.<0367+136D64+83<325094@917*254383=;0=;C9A;4/854859.6775/38@2>5468358013287+183447832..;06515.349C75>-5322872967A8.486;,8309;<<4869<750<52712@258;704:6150:46:0/:4436::=6398917>993*47/C790:;5503?3>=77046283;932608461/<44.654/0.54;60>>>54:96?=23/177/<659:5>1?<2<298=797;83:4544533?;3349;=+38996:82>32/805284231A6996/9370215458A@141874;:3013419/581/427;>3247.93423<6+32=73?3535:6433086.63:2=87:/1:16=;;F7467:14243205:9.40<612695:13575302:3-047;9.07557417880706714983839<:9;12675>7/597;57/4427451:A304:787510->5:656:31:60135>029:25<31=624-8032240-5796351307:7:5C5,14:2C3746,0C42333>8,514478654<5468,9:40.:7445654<67:805507:1:59=425;A@3@49>738@38?66674):6=95:2034;96/6/:6847265469.79?9:91:8:078577:6267443:01;8:5148A89>73351=<,43174;<;3966763903343840?740.260=/166807289591633626;A8624<=02625=:9474>0=79916=8:385-@666873761:54923-..;705709776/;4?3286+65<8/842D502<0?3;8=8702?64269>@77?3/4304,:)616651+65>224=33376852>/72368238<9<>=52329987:80:3470;8=/056/68:219;4>.605437,883:3/02763/8=45373355282:45;<.65/A4/331/51516;=:013B<@473483?0786<399;=:324-578:744.79>485A/48035166550?53435A/=6040;286143.(0<;380/22@:0;.62671:R23021322*3,3/8;08311:;2436+151/3769B2>554091,5640751853.@-763;@64//82?39::,5B6A22=982157312,/6C.785E-93/7;6055.9064147>9-8/<788=9408958:3953839?<;741335=:18.894-347.2@7-8;4-09A49?>7:7:24<2/2;8725(110616A7563944@94,474<5.0*/8<4783;A)3:3164:445=01335:429451?1703<,1A6?3/8;71C8-..529/<943,5-4089=4181=;9:65;74?635;2*40/47524/1:785;<4703K.6;650?79A32;0369?-56;9)59823455685352=33485792-77?:5072/65;;891H37-861G5:56;330>47:784553*055(55022-@3B360335./7334;0>.324AB46655233/@463<<34;<:3.785/94988,438867,<753?39<8?-5>0>5786609373:0881=<<5.553499904735<53;608995>149=52/98:;7785<6;7=8+9?=6634:/378<5953:367785022876A<4::514.45//3?5747@773179=8556667829541.7>773.;56B;8648-58;4R:7,866265<6;:A-285>:353383)34629924:;501473=6763B756::129645666:9485457476(998;3278:7826=5494<177925:277135;4:1693:65=5=3.0313641=82<25>367714<466205:556,74@17.342=;5=52;458:8H6@12364=>=:980395:=//<4.,/4;38:21449-295<632682@8=;69=4,:=;745J567335.1>8,5/792749.>650383A:<747-65522<338:89>8>5/2966,<43=4/454@5@216034:>.:B6<-37788<33;99334:691>6?90468&6424463(=78;41?27522,,23;>+6859881C07B61=<665455-1794956353.5;809232;4:/0;852:98551343:75;5153;53>2,35:4479333;?53;@90667261696:6;576>25;5:3956065.68283625:945=5=B1:4@86=;68894/0577=:6;60<8734048847818/;9?0349682978<784595465/155C:187352<:89517H2>:94625,173872449-018/854928:7984?:22731846606<<0682550?1=46;>:417>:45693;18:51/3?1@==<43070;:43077686431656142680,93;=36/1<27827=9176599C:610=687:556<7;46>5/560:3;=918569.72733864.=464214647=7:3452;;A5645;;D?-0:B0:53?817>;<61747363354320.857547:2/658@934585785.778/-5740480281.835237>>4;:09292=;:5:2291392;/4=4444:7136:>5554,=4<6@6614353625/53/4;>4345+67A6244/-A=619/85//E;7,430002/<063;29789?75:4:5D:0::/:;484945994;47949.2+71/5?93:585A:8577:4<5?163649324588@<72=<578@15?4:6?86<29D4306/39;3B,3714694666/538.::4<54:5?365:B.:@48015364:37>9695=276>-8983A660>;.5354935=,45<4<6A;>3193/91@.,)3518@8/65/24@94<<;*39;57<,8)78?/70:91/;129/0?3903./*/?7805;70=69;2=1<4419.:2;3/1578648E@9777498;>.-:87/+7*?3;,=7718/0<.3262/87>60/411;=73=19785/1035151240.:8<584<75A;?:4619597::2166862:48489-28.+88132/35:3852:8A8657;<.544/<366I810741/8:?1<75?2;/:-5;+=0.:;12887=32?5/4554912366=8:67-<:8,+6@740278>8197<2.7415653-8153=;2458=905772=;=/107575:C;<489.1218/5825@58,52;279/1=0:2321*:89913849+3002,470;CC2667/196/-6F+4;558)6%9012/.4872/0309066/58:4/63/4445:0:;994-067=2,3?9*8E7;009=;-?49?*57208@A5:8;0D1=18287-;12008/4/=64541580062>4.2655.6823974-91954?66868;5B2/89-8:4C36::,0:5766:310:::4(90B46476746:./>:34536>8:4456063821?;/0017?49?@3064.A7?85171970;6<2=?98307;?:>043;1365<758832/<68067<,28=31950209<202)/69-6352446+4017B096@11>-036B24263://<::377.:536631,5*-4:233735717464;8.21738<-430//45.,45=.3?6613345422315,-3/;09,)0353:2805:=+64897/0//62/;8.466;484/3=1347:2/-56991=23C42248;1*.11-?9927-<5-776479.454:6=2497659/43:933:1:74-;;:.2354,138363A69003:7,4296958A1:1<237849275463485;7431=0568%86?7373;3,6932751;;7746435::244/8*5<3593096@0:4<;A=8/395<<9623;68296;.:17683/6F1:;26;5=?8/55+324598:4/7;1956*3254?3B3=261@:03;58;?5+<==4<5063217.75+69:188@91.32856;6.78,93/9:;25=/C)488664486981577-42481638:461262=8>.;7>688:84,657=5B973890101:3;(>7>9E/1:82.253964:115:5/)83442?612449561477430:40.4654353;445=1937=8181384017:707243:87-29452/7/:9543:46:5,4921264846343657A598=21356;56446352>6482.5?>2=://:518*4?@98;336168865/034>7400<10;169860+=82:876=/9<94364:853067514:75;/93539638/54876.0974<8516574<8<35839=58/AA2593;;28622C615503/1<347:43E282=57140049<=?;636784==.547<46?::7.>7.0B6763184344477+604437184H2=3-3102@8203+18;30596<98;38550A;032197469;46567454<6>76,787?274,9:644<:66068A:3635;4A557A5484A333:28432;5.837:07G8222.726:254677/25:.924/7577>)2;2830>55423H<123125594653:8713-0/975;32,<24-E8325529838-.1953::6=44814332=62AA6<+@710728718>:A/545=26;46905:695835566/4=7=8A.252423636>6863=;<47=959988<:A144>952708030148-107=736,348(5B<;942,68<14A:66A32,:59B48:4<60=7<6)22989890@-%4%7536446062/172<8114443576@69179279+2.>3;,2489313;35?44;7756/:;2550/028:3211550478/4:466747274/33>96.,66138244(*5341(:4:/125003268=584305807848136/04678158556688;72/6712634+71:6/942/1>-4685391+23=<4;1=2>;8<714>6/75/254428;6696727B758*358,5-5122@//398-6/)323,=8:6.039062C1446610.:44;1336?83,858-18-53B836<<0:8-.5D0609/272-87:6E=525466366:4=(..141/=-4/2<99<44/447/8;8640.62797=130540373:02:599=98<0+576:202;0.5791&A90<179A8?9.8962<<5:+9-3-;194667.38/91>74856;604/<7;930202:<598851649:2564>871=-5.9113;<80=4*417;<2;36>5789;3.@82<89953;32,65?8379936A602:7.;18<-1406:/B/94:/4754765:72<1:8;3-/283:26888578:8;361443-0>3<83=64:@7D:.&<.43B=+&=;15453;;2+9;>:F<7577,196;07173;51?3:1744F7;D:46353093966,G::),75+-867:47>6;584=/6;3F3:1007A:/48DG:"865//K66:/:4(4472LH8.5,1866;A-480W479.8+/:07:7-19969237-}/;73+=6D51A9;>D)614:36672537635<*13:3?8;8-68-:83:14;2032>.112952::0>6355A/42626/8?2)><4725/,2?84.3D;7:;+>866/@7<19;*.97764744;67071444.3412<859814493<96<5/473441;7,93?7451616543:3755177573:670D84274/5232;05759<:2605899;/3322;;36.11=2.21458<791426684,:5745.3<25827;5=02.32;43=;82266;5<3668941.5326-4-8254670,@909683@63:90=;:5742237A3;75649>;.455;9303,:09//A2,7B/<14;13@/37.5?:66488-50'45-<<7=;6>4137607:2;6:181363=5204;0393637:7:;55,<85><723;73.771-4>+75304189/106/6;53776366438787C0-74:8035<4D536766102=55644/8;3.2:7147942=5;>98643/7941937232725/6/74261<=:8=57085:588803:8?<94;565::3665<16181367915+;/;175574:66<311447?5;4309>7788>217F45=<54=91..4><97)9,2?454@3?5<2;>5;60:+5466:46:7'/98;29=65-=.15/463<917,27474;31?-;5766=4<334:63C4@:50;7/2:4694;=<285671-79=130399850/2779<9,6675./653732,165A,7934>;7/3144+93538633/80;8.;0<=984596.62697=->9>7/B63B688,:036==3;3?16952271;9682884=?:92=87<8<;56472:;426779/235:579<61990568025B5494195:522138:;7371;<9268.>629.024?346-65270/<743595057,?236383=22:6>(;73698=556565,:3;4977629<95525346011<163370;):78;73>>?6936>/7<916:+61?5:<646<43:77934763:85@9683:0=57C38206068/:A678:82:9F413:451589931/4478:73424?56@235>618A<:1=166;71-31/*6=<96942429613;8436833293044:44481365831+:53/4;>04//781479828*859.38566991336310885655708812::63:901=665444432 :D/65608-.<9:85759584;8647;/511<6?1/<637>60/92,178763266176,2376588/47;5935359I51;1724?06<9:33835956769728935:94F95C594364;;8421:67:57--7786>4:8665:=18468,2:=::::/306.556::/1,.33613(8/::501844365.8898747?;2685>1612649797558;49484175476652:9;76,46:072<;6633<765564;;1B54688;<336;658>0367239/56577=4/44E?71;39>3,4;32<8;806-5D7/<05536<::169:25'317845;=988/.45<6020=054/6282>>75(49/04724:2825/8:672344749553345565654;;683<<3??5366>8::4484-/83-097:529?.::6852;079450+2--@5773022<4>486653999:37;1/3814;/:4=@288472135.52B6,-2850147994<.9793+71;;5:92;;-4145::*8373=4461=;-6-2664@51462E00,47:;36=5539636327966846932220?869:64=444/7/,2<67<327=2594:9689:/5389/186:18393=52241:.35583<:82:86119959;38684769/=1B72;81:7C2602;;430>9+9337-7<8;76814G6969C=.4.34.:563286378:17489?9858<061256224929<-8513=.367225*67630;40:6381<.9<.5904633496654344546:/11456@3;37239374H2350119-<601345H;;87418;24<113:2-<1F301<995.:649272;59+8458096B7?39@86153681091>84775132857980:27)11=*=59;235F0935A56@<3416=;/069869;5593*4594:13.4833957345815210B88391=2-,7@>/6<.5<90@60;::3/7>6379234<.<5=655B579:1@>213>-28);668=842-0568.8.36767=5:33319G25A>486B45(<4561?9;:43435,:1;88.=-6:3931887C/356.;>1415:@955653;38653:/08175<1=.5>FB;14.3474.:/D<78710407/70041047)7339A6/855<5>4365>29594/924.994698<2:978966457639><1@777;7;6,84>6/<39176;34:990>64560=:/4?7/52270826719:27:829362+74:3,86B5584:3/883/$/58566/9573708-584A253<594;3@6;:2525978597425:9356318-8.=;55:574:157:>0205:1<,707.>12/+94:63>7:-1A0795<;<662-929<938/<6,718376?6/>=;8=:46B)=57549783=9818;5:.7:7567?5;6-1B4<72762760@5:8:.5=5405934<565/3?B04*:.915;167:32898?62/8;48560-1566/3041?9<9=74G3;6)653;04-(91:76249=;85679>6/88=A+0>365457981:4794759'A>12723:0408:-9#6D57589A584C58=6;>763B>:<::;::858:<;:<=06237;5782C<75894;:888:675=59>966:671B:1:5?=647B;:2777645@<@748f=EAG:>3=<9;@.78547;>8=8<8;709494577:98:44*7C><=1::5=;=>8>?8::3@.+/@96=:?:7:2?4;96464C22508:377?42779=960:3/126B4816<1.11,8<40763381/49210;24:443;72;3<876847781::B:>3198:>698174/7681?4<96834?:16;3/56:61127486<-/%/<281131:7563/@84:8:918155?546826606D812>,3293658192=./<2:8A:70:78089<:81=9-:EC2986750>28H5A66:24.:<8;705733/46738753565752;//80.:7454/64378990;85768;118:458<4035589-622/32;72557E7<1;-@//533:6//07:461C<4;1757462<;560=:5/D933<72@3;09J6?/12768/260.@5>:45::+8429.82/>8;:7632=8?1=05:@473%9>38,36317?874259=783<<0:53..2/.0471:5916?97;5*12=9>=-9941:44?2411=4523447C2:39*28&/==@3:5208,1;-6;8:74*99*37287B7=/.82710:6/+599>96.426=2;9.21>68607<764015>54696,D*2:37034/5301?7,.5@488565?81+39<6?E2057:267,-469A*2/92/,8<<0767167K861B12/9<9;3006:9=4=53:863742:97;8:*648==-9+/49213/664:1<52453?3./254;38=26:6083:54;2021A2996854/.0809C32597253/8775507.:8809;6251051=774360/479::788:341?673<975486548-/:<589/:48670:;-878213902063615//-115:521:871;08424753830,5/<67:626-5<>>51609,;5858<665842/=5@726:6-147+6.9603276?74255>2?=5538:28@89414<=;715&.2:7309.66470144@:3(.107?76?9349.53*55@;27:2692117?1211637>08:53:9@436163674.:;57<99186:5399/86282;;3;/2;11:/448835CCB2358@52848<@74265:6:763=977:64@60664+8/8:9<456A677752535710569:5826938/,4482512.3356371:3336635:;:4:79@210/79257896<.=6854//7;7E<18943=5/6749080.54047=37125,122.924<,41783/38.76<5711754>02A5/:7685495523>31:<1-5=;343:44837444=<;27<72=/.:0=138:64;12:8-81:862/=183659065332640915604:68123907863:479421986=.;2-=530:56554189:38.:9267088=8667859626.77:984<4469529:/501:2:/9;14563?4648499316>472<,36977=9?487/77446168910067:76873807:7:3:;;8,:4*59693959F345;68>.511/928;07<51;351433<3355=199574<222<770074614382644/3.633<6<97542851-36>5598.>4>577415742720;5366865:56;47317270756>443553;5.323854;715:,21/852388@3486;69955907928-.L;@346-58+907<73251:283<.6662>2;9988;6?72?<6:1>6;166:7773247@7164783;0/5A8.6436?4;7.7;323817=<4454411098?9777:E8=935221;:39;>;52;57A5:7:-0=45:9987:.?<344=-;744>189;3645/7+644=@:8=5<6/0<4=2+;:0245:033;3/5.6>236775667<7C0:0B816,3,/68=21/+85578441922942B1849831;;<083>4675=:75460:.41.:462,:2+2:28724=:1-A1>7@:<799-;@15:5<05/:7:12:69:342<545287445B:6;+5@2>>55.0327,954;435.4507.38685B8B0/5935+20:08547767?:10/2559432//201.47.508056+96080:;:1/435?7655::?75?>7546533/151:06271295985797957:./04.536:72:367=F2033:75B53/51.57F7@6>75;7/00648,6/0C=47?8046,4840:2115A:12491>.5816583/5:89/1;8181108*9>07957,6:2976>.6;53139*;345936-712;76.7<4?718@9<>9>-;52176381093439*95/2624:61/64;.054855:448601/414>-63,161=.535:=C133:)76708210279360*7341?.?5?2566714*2'4-53,2757:?656,074;3916(7;1:679:0<8045153723934;130=29.322.7.86;6;27913270628;24-494/4902251;951.:+:549:29/03;/*.9P4754959860:1=215=6:8>9858=/2@681555>8839:.395B41<2;=3'4.33;?76;77;77.368767/6;279,31<525208774:31:3=3:4+<58674815031931254573;.55771116;41>44<5;736,/3/3626<07960<4<4A=0/2;6662=4-2204237;373=8263@;23740:7=66:973:535987=@6234.27<9282A6>58=445542=/73H55274D992773662B4650:B/099673884.68<4;/633-37319<8>626656;66<<9792:47>6DY?,,-'2-O:26;<5,-2/31-+9;38<,.05152737408;-+2,98:G/<.52>494,534/660561K::7%8596=A:,50/7;8697.634,-:;5612632.C>4 >9.2&O57.+77153-2977<5,-6617\(2/7^75<33861344259633:651..<:1.5>3@=202141)16369677*/A1<683.?63763-;1,.-757.1906++@76>225.(6%9151G3089763389916796+>34524463D2834/4+:95L8684,3,5560<9<5<:47+=4/;912-6772(1=1/2456-0'61=:6*>4,3282/,62%,3--57:;500601272.<45@-57226<.>4@81F9413:.52<7654>=281379/760344-7;33+7;3:2.5;-B=27233,6;4<2-<57635/06:;.-86.=7C11<62*=7443<7,3=.B2204:.716:03)78693590/69=:5/23<8>4<43;6/*,2,6?43737>534/236>65111=@6?337:;9192E873:58;5341;0/59/03>0,8174;8478=/;5::2>@3?*8137657*438-7.847;6*5//456:..:4363:61874950:89*>7579:=7239-36:/76-94:01327500<62>9?8*447:25:7=3<+:1/=<052978<797:9<<24338899674<563.@5:1<9:88;.54373A3521<03@8205258706;3463<2278984@8<<6.74:36D8455/446*227+07;025-*::@89C9?:;0;0<222>)0560/743993733=22/687+2,48235;6;29/@.3638;883,50>.39,7139618062>53:<378127:944.80915=6548@675:526:554826>34317/891@2/6<8>=/<1B/6==?234-6+375;7<441<1149.6620194491;79924B2-3450;<5543/660799297=89;228.59:>3=.56F;/68344C397-77859/>3;7;:0;D=4/845:66;(0:50=94@7421;0@298.9/7356?3588:828@24/();04:86.2:-44>/;:8/7;12,7821-3/:517<26=6*:3/0:75=9722?<4@?<72//613A0<979.7;052A6:2,5<7;32?12@8/64548;446A9887-9F=90=5/05)??58+2+0A.:J90?1=>>1+E9=4.<+-98379-+2:?J9637F49=70;865A3/7524760564=4027B=762@982=5543452:2367575:953=1;3H84:2862C7;1C5:43.:;2;<3:5=553;35418;<2.26875436<1247;354881727377;8875/544/9*73443439943.;93-;8+5/27;6>50.;878<2989>?6?7894117=8;35559>.18=7787:74458D/2429577-@8A,90:003;1347B*2::>815;<549/3:5=1;<24.4=,22412:388..76875/4/44C.5,/2989<41525374058;11&7655785E2A4,?4@..7A1/.44/537+4/26-1*=72?14@42/.1306458=.3184651?3>?450A::3-6356>5>68892761D8/<49/6434<424<@642:89.793-:2=6.?9=42=6937-9413139>21@31=83;8968458463:24951;48=615*8<;238845.<73AA8;3;@8.2?513::5>/89.66/A=/45469:033;85;159+/886357.146D426;1791@/338997:032=9=16667H2;001;81227823596:595467/998?226363303//=;678:7849,B@;:7538:;6625;347;71?244775696<4;162854-?75);<:74215723:055+9*@,263;67,9761433<38:@020804294;25.:3=81;8924?4.85740=89888D40B281+266=:)6//2>79<231-6=:72,5316291562>7,>82472788-236887570/274=9?,.;45835/*9;;5415>A;:3=B:136>55:89146C?177132:73?<<2:86/4481108/*=9:5:6;32089.714.848/8179157:324479950=62=42933;772;5432=<35;/5:=57711263:-5;:AB255:B1,0:8D822=>5=@>.<;642673495?<24-69216<73507:;/446>696/11247577146653883*966:6??721:547545588+5:4:6:51=61;6@93994;5491>03;3-<663B54;/5;=;6;=43-2;;4,79.5130.8;=6895;530=9/3;<>A::727089866734259755655:3242469066.>2+50830/1;735-968577857437<78,3-24*2.56544.3536:5)12098436.,.6-:6859?:39987.781.2;A<44727:.329/;14993@;0/97*:.545-07/:76437-6146/5=418-44:32524802140595/27230;45751F56C+D96<847/3283351133:0559701796B>59717#::3*0;9;:449616.:8:54/6>4462:8/2F88,:4679::*434;/;3.77<<56<>84>3186><<10<41<747:774:87<.;-;794@674=00:,:2576;5797.979)434879-76399123@;795-50-1/BB31?53/49/6>A?508347-71827>7=6859/@73292=/<><85175,>242<13/9/65154=?3-<5(94:81:47:63655657163?7738.61:058:958/<74@2/:4;:C53@49497.354911;3:<<7;:079638/79;767951.3E:885395::=>3<835;88=4:-+*2<95==79154.3:651<5:.755/::337<09272:4426@85-498?8::832/2862678;57<<7963:;;737>/<8320:726:6C5922@4A39;949;4927571297@7);10883;21<<83<56:-940>09243+5=9=7:21/:487-66:848,98;B4>0:557128/619;33<1;:0>47=237:<4/;3:59839/5B0069308546>60B60=64719/4.63,>7:508.34215?566;0105833.2984>7E1;2873.21.76:056719:7/,5742757>9563;5,73141987:6::A7/;8;255.3614986298918375:435-D:.50>265+33=5/02;:65:51664:06>452806=440542;974443616772:091?2582826223344=2*38+4,=3742&81;752365.4.46;875D4=34052;72126@.H{669+5/:.276;349>3;839453=1=#;2;3/8:7E30008836553=5B379/71>7K<735:/49:9801-/0167;7874;<5:746/4626L::873511,8<031=8::925/92<<37;24C48:6015<<9:2H;03875-43:0376772=74831>786>5187617689@04525>C/60573311437;0246394:5<426846@8A633534933;6=39292-9789916553;18=6=1.5943?5328/767;>1;*2/?>16:-/2=64085428/36/.96216>2;6:-85=4=.24B67680?3347/;+>5=117/.>643*.4946:7I7563<,3:515634/697?.;2;352>39'84>74544753345058243588<:74:/727,B2/2<5418=724466:23=6<84@<29152>17:(-<55134897<59/<<32875365>.46;7?7892-1715526:A34-1:1:5A952.69@=236:86:C07>/3<5;64A-158B1392@:-941?407/54739;3;72;65317566136571:9<72A:550)66@749782251<-:739:37991:08:96:9<=7834<74745.8;;;65/;38>3664=467?;082?2:357/:30/8-6+5448B:45;68/48=0746572;766;>6;;6?=2817K<4;46193727284/56580917=653;;35=69B85/4.5053242:24:8892.428221168.743065:5669;89665043674666649865:106496/<3881451.40=63;9<87@149266692:;1=8=06982>757:4;./.4:=146908:17:8.69-6=65614=992988-8675:8E/:4<72961273289:1239258:0;48@9554:72416>/1/=429689975475=<8.G;7;:4597>;::::57744:61=039/77859/0784356@425A8<7:33:8>9851-3<45:5264115/620<:4867)3J2:978/895356;74+67-=1>4*94668:29?1:83<1/:58/5<6C/86801;.2869/=<:1>777822B9334A86:?.:3<6.5=4;58B)/,/1;28443>7>5A216079/:=3769653?39H6;5776,;1204:/512?14/4>34=8.8<;273/4921;668?636=1,5/42H085972;3<54;?16;-0478>966963:5198:5-?854/2;/8802:;;533;573781>9956;2384758.92-/25;:+@585733;<7/51I>>?9)0)38>4//(3CC8=@952.44/2:<;:.5:060B799A:923:1,?A638F2;<8357105<8,98)389;4766?;:94/45210#/67//=9.402-?/7-88422292:8505:4-1B,?;91561:4::6A363>11;5)27-17:2<48.626:J437=./88517713;38:+82854232463-49-5/7575;81=5226C355934/447:8=/G:.0<970;391,920@892646B6A45776+552::6,77,2527?9<98CC;566397>175,01303722<.:6>456.6:5/54536.-28B44;=7,9753.574673228635;18-513=75406:2A55158;;533:31-6464<643/1@0:=97>?.:;4<35484178820:I275678:3/2315:269>85359336:8.15585/2179>34665775343:64;:86592643546=4:473222<966=8;;87084B:95<2:559648=?8/-978?8270<2-48:04519?99799I327;369427:65;)84F7568<<2:39:61<=404>9:36/37,7P14+495B53@803296=:+<12510.03>7377>@8651992765-7/9181517691479314;8063?:3229761263<-10.5>34839537<4422?9974:6+D3.344@9.=9147.329249;;0;077:395:15<274-8736=<:/.81=/65649513645<7839;725:?3C;2434;;56:96;56B67C648@?13===898?15567D6658:5988549046872-;:9+:D252994281@75576,67952-)49L05<:376=5301.77<3407:46/1<524F;274.14531A=C?428*2:@B+/70@59.4/5B4<378577=*69:.<80>267&A70>1.8C60765F276?912<60*.2;86>C84(;0.73-9.7096C-+2;059;8-;<546@0:;<1*97;73@;0;>8/9.69140510(C/:8=+;/,@9*='(-*48110$/#/-28:.0322:<6>,37-556=9+?58/&..773+7;:-3?77:1??@8;=;>20:=2)5+-6>776:38<.4?3@03<,2+;?402/-717A;>44-9/'$8#99@D325%86)B5<8913?8296-?26:;:89C/35:56:98)0I0(6NC@4,55<<=1=67,098,0;1;<+),15;6>5;9156?7@<088:33594A4*;8(5573E8*95(*@:43+-K51220@10E-C=7:084:7$D8613/.<6/7.373-;377067,3/5>/70;=:/2/4834*:1$P/.H@4=41.?B?1->665@O8/4:2:5-=;228=9;6;10<37/>78:51;9A,/75;10,64;464961<33:45.0956;%4A035374586?,17>254>389;8;625>/31669;68211360337044<9816<,28*=56..:/A4345@>542527=612/1<37D767=;>5>,014.+179;5-*88197<3:9446770=:4362/<,966,9178::4454951(3;6<42O;<53:4738/6=/0:1;45+25341(A/;.97456:1AC9394A2?04394184<685.=3018C<365764187/2<>6./-=51?83/;-309;0?C@2E152400;/9683795,5421169;7M:55345042O:5541@+435:A98561074:,400178857./7:=7;822890889473@39<:9<66;6-5:563;948:5@;;@9,128::>95:4251;?966.==53//921A<7256848569=2:0761;27/=3@5E2-20,2.9/53159586;0039657C53@8:?366628593879;;:.0/3331644=9337A5.7-3;4B29F43<1>4384,274472+33<225.5634?87:8.=36/7:3;19:624/99?98277=897:;477,:06<+13801712.<>;A<8-E98974594056;8/37/.81547>?64032=<6919=<5)36;=:867//9677:48695<0A00?.560-94624@>7747;1.49:/:;7?/<6:B75;46.?506457;42?54,5..417;462381A49765255-?:83>):27532223;12=3:3=1;6;47:5.<657+072=501348269/,:.;5769%8>7820095;1158@3:6:32./7348668G58?9807522;1:;;560728:<4F410/67C-2747/8;0;427/7/4<65<4;1D64043949508699409175B58.47<9981.7)40;./6:8=3;7532=39;147682:885443561350:6<7A9:17;7246685:21:762?.?761;6496/33;71;7672<3457=861975164309;65>6:17624/2A7555.6650.287:279<270057659299528<-3=-5:09/6=8483@04/7/5716<14P33;;6;6B2;:><:2:12:B580;527340;5;:84,6647<<507=943>7;7.8-70A:=>5;6748@54O:8'452E5=57?8:5525=>1.321/759:(32<<0845<7264C=701;861:1;/83@E7473483*G749264/9=3898588<;-403;6.:3566746;::259955-D976>5:9:3<,94<887>8/82<5:255478<7732>=B404,971H5134:<+978085460<;4<=49657377;3:646779;7882;923434236,.09+C/;715667;6/75623.1;8A<.835<5<9)14A5@+29855438-/?8985<7:5=959+8>;056.73;46-<7=;*F4:3/967-7400=2556452688@)7I8>0-2839?327A<976;1556*,;3;1.13,4>22=A11613502931=5>K1/91845;03460363;.174<166>93758534C.;<;48563105<2/<,>468:013657/:4764:=7;@5;94834>84/064527:96384051603.-64941-.136807;;4-7.565777://3:<7-3;/3,,?4578;:6?5;53738//07;26:59293-1A7717;0-:728>839A8332><0875:-O/16;3>5C<:/0:=61064>23/02446:6483.53B9569756704615164027503-63<:-6:25;4774<38<188167587;4474624:04.1508B56,8842:;-7038783-;.9=52677427:56783E57569-A6153-=485<592;7078.8-455?822255<-7A185372,53;0489<1<0905289469/6,0;9<>6:534?83/51..368;338445537;;9,;8.6/0.:6;7.325B66427;:=/63<,;3-129-4@1<@-74;@5?8-8:@67A16@526A1.0632:381,838>/4276<-8A7049J+/1660101D-667/333-7;3/:-147B:@<2/31265671-;/3?67B68744:64@38>636<19>:4-4:2>4/44A?/5:22A868+,-:85:3=:8<:1?58<:59=>6852;11=Q364484;4436I793=951:9;55+337=<6394<36:;>971.2157:0=/096863788723>0026:5/690B85C4713:)3(.2611739:210623D+::617439357=22/@74*5834375H>52/72:3=<50;19.9=<4??0598@5>==2-.7<;74@><5077<2/94=268.82/=<5@8283978,73338?2859:4C8'72-<5<262/1,=27=825:/5E24645/26(6;35,926970<30<-:.5785K@47<4,96/)3;/1<66B3610;25E69485<5;840/364;/6(F9377/4:@8=169;5:39-7?7=73:45,8-<8;86<845656>912976<*4=76E;6<2(638 80/383/:9=K8,8.210631B,,15601020=C,6*-9?;89;>/;7459456:60:64399351B@93=8,8178;585/=7/3>56355:999>+8=44662?8.6054=1A5=;;+<655==09/)@;@978177=&7131:@291>3//,20:0/,/:27466;/9-47;8308.18?96:9365,85C0,63095152461237+8/9:12292717@72399>69992.1@0;77;7:/43170685>32?=296704722:?1969665-.8;5;;<7/08:685,<-:3,5405532,.E93741094::01120534216542284:6J.1:/554;64;280.46;-4:774;5588:-2136@;5461425<.J245=.668401@;1B51/3?778965079:64C6A34E<7@3/3679;<19>3-?5E46;8476456130-74053551C929905;960634831:-5*2011/9;173@547/3@,082571213505;44D5:86897580AA4339465:1/815814<0:13?=71::43>6698M9:27F&+1(1958/8.41:7/,94)<9?7AC7+16244/21<79(66.=6-83,3-1-<92;;7/84041<7964;145-6286025.0?6::;:423125309674?-:9AB2232735,21613956:2>0L24<986188-5@*5865=?680.336937+4;69941.37;36864>;472400360-9115623&811881:=69;3+B3F6+;=4<;846=<19=:>>01/;31?5292=19=83276952561-337849>87754;47/28+=44::6985;737/44755735238/5>215<776347,6243;225/*80;8N29/4946'715.50227*396M95.;86<0.;1.7A8988/92.980=7623382;230995:7:89=8><1,0A/80?37648055=149566:61??I:5:90*7.;?8;54481601A51/35/:4;=3518663@1.7<5589>9>951+30/325584./7197/866969;754:368666:<6:,6/92*65G635313?65?:6=7-55/669D:858369<=387505-/189936,92546?276742,=82:86..31981<:3283*4/@9286/949213968496130?@;70;4;9>6141.20?76>83:-284:6;44;15/317BO561759:0/.7A92:.9316-7@?/38/>9/6@53132/22;1=9@8959=584%:7.0396308873*3,@:-8@2/:I223.444568224><<=5??3;8++685832664-8<03>/2036>5247:653+4.74568496-7;34B2A.7A83:9248796/<94*4695750:445#;=>5:<0B48=A;73,28>;52/;/14:,9-9;69D/9>0*397:54<46;A=2;3003374200/>>;27537:>;890165=74:==89001095@G:04E7B@:2977C>9;66346D7254=24323.30218>773.;4442727997;5:6017357-/3815671495=.'-=82<068239A:79<6.1532200+24058.:6795>)1467067=2=D4.57-MB<27:6486395/135754.11275:?=5.0:-=181,005@<73444/6:351@5.;852/8+6>6;+536-,589B6772B:?3623;70273C127337=A*/?8:":47=;4I318CB@032=9979A952201Q68;5432736:5?<678771897<37:7:5483480369E2:6:;2;27;766,9757B445<9=>1/55683/38=476.>9B@;?;/3A88224180883<611/<7:92736430=38924<,5561-845015;39.<-7785.80:)9242+6=61387:7-85?+C94458171)76/59580E3.<:63.481169C651923=525>9D/5+56+6;1536;;.1>>.9./;/6;52<=4231475;4A82;.744C0>46353143?6:9=2/-4:86?.99;B59?/)3:1-*87<;81031@;;?33:1:978;/482B89:+41?41/.-.3@3/.900/2:2504@6,55=115748322:7=6576537518<=76<42;4+9656589;?330:06;8:3<77:585=9309:8654549198295729729=5:312483;;;5846572526741664572-7523355450/5;8655703069=84586::.8429221>;48=5675,4.096363<7:050264;7232?4647/361563964E0999..31<2B018-843<561C86<.62484:76+45.2847+0>57U8*8/;02@192+763<32,3,339941<5E-0340871>70;33>C:?..9:15.7):24-8;7:3/480:<66.175:6:8/./4895320:075)63:8;472;.=0.7096969/6/:355<4<>85=1/2;91=52.168<463=994747<<:.7/215=0192287413565410<<230;>476B26352315?5:68IC54958*12;.4<;505*7975,56;.:96748<98349@8055:2587:A584435D13;/403:673//77497450378758A561=42:;,6>4B74>44413+969;543739>757?446=804/:?63335-0626949?4-;85;358>.85.9:43323735>28<3;1A?@835-44;D11039680?-6865::6:4=6>9/82@:3<46F:588/1525;43406751677274G3673169.<5:4,>5/@08;022=,:*2<2/73,D81@6571;G<150867838;A265@4;6:56689@5553;50E@524063517:697205674/5=7;0..4716<369*/.36<8::59;212.456426-81:C6?60664@876@-6,=/1;77;:95;58-<364563=/29150<,9165(4:/=4D548E>49569B<71?3.4835:<666256;8'8;3<7=66=4644=562>@1;084-;8613;/05<;:>=<22237/59:7211.47.@?01<4:8.85124,165:7,7131-82:21;8F07135412:7=/739D-6*5131)86745.04=332<3H92:188844:80*4777;:<4-694179;:7@-432;67,78=15=B:;257/5:A420;64453686/58-11:1.=96/32033::=4@468>>=;76/:669828.565244/59006422;96:5644B36:;77381/<6A3/430533=66424205780;05436(/46/>7238647@94/6761<0038864E1:1D17>:34=8=;,?8;324:364=44+149677<4:175.77631<77+506873673970647575+7553.:33:5<303874:47/?-4<809;5=343:9338*89D195;6<59H423?.6:;76/9A7:609K?0>?7A8<<43643942*/9/9-9>;889575,<06@774@+9391?887==6877.9681449@>-75444/697638/40;:;8;3589@A3=>83/63<,071@5/5<2-9:/8468;1934981H462/5;<9:06/2A2=4<9K5;502316,231?;6;@1280/025449222;37)3-<.7>28?-)89279<<625+2560<531<71.17=8428307<9.1:9>0@1<<350567:A,863329;<*.<226733:B7=;9=3>47556036;84575=4596:863>8:187:-?2:31845242-<26>;2699?.8361967804:4860243341702/526195165345<35*>15/7-AB-663:1?534+02273-.;6313994>7979093'435:3704>9138@4949D;45<;::87854G49(/3676.8<6*412@92A4=.4666/E9;773<85B4A7;3/,:665D:,=9<119<.2;D:1)@35B99810;52:8*8:81-5?.0F851>6)67856,5030280;0,77/C14.;5-/95::743/8*2;+2254.+34*7B1833>;5745?>94;/<18O065=0:266+55:>-4=5:39,24739-/;>697=16=37.90=488?44245E85D*;A=0185H>486D:4>GU3?"9<0?;643==<735465<:>B5A9:5,95.1?2218A,:443>2548?0.:975.39/4:18200733<:333=::,0<:4/5;;95.741>66.5229+141A>/5>K113656:6?5<479<2/73L7B7-:56<6B836377/:576+153,2734830956B8826127;7888-7<524686/09449696449741;257-2967@61?=/6:05,>=72;74.?;584B8;;36/3<4756552234.162532?975:.;D;/2;5.28.3.8/:1E85/991F67;:9:;..=:6C61836944;365-63045658/82864375;.913/364;1A9.8:?/:A2==44;4?573423637;3/87:22<465=23722:71574<886<1+346..;.@53067470@25927=45,5=3=:121=A<98;522<5105:7<<468/8;5676828,.8>:9,63826>;776;.34484001;=H2;?56<;,3;0;886706;6513=97;3675:46.46>68/84;33344;:A987-:88:70<878:9<.0;5134<70/;82016.90@5A3;4:06174::4957;>;<<0@97;9,54284.78811854/,.@647@3<35648.8/46<40007:C13/(=7<:A7113,03364-)7@0.?20@1C4;13978/0=2-6>B52405748;683;2'7<6A2.58=075A;4-0+16>+4>4367944/-38:4648H=/46E6//1>7862<02>36:188456538/0656.<98A239@,H123587?10<<<29/:B34958403;=772273:93191=22502/7A+>87<55688-C(:8A,6486899+47:81B1342:-:@2?09;.6/1HM57463:A:653=31709275663.61908;:042585=72.3::?7171764;90A419,=@840891/:37?>058943,>4@:9504=297;:13372-;7/?08;3:5549?4;-G40:648678:2561<5400>9.436A1.2?D95<.9=8A4<2=09:20;@;86324./769/03+<124926D=31437.4?666?.:65566266?;505538/5-3523:5>36B575613545XH43620F5514674:E67674:164C363;?598/2846<16164-;394301379,6:7/51402<37:42;7@35174245682354E4/:7B4511./<2=45039,64J<0/,770;92;854.>865+4;<4D615<3.?21052;;6@297;./-58<81:727088:,16.8.46664:2@69/62<>55759->955>57?5)=3976@44?307=:36576135835:@2367:/16985;>16261714486772595285441>93-,.;534826=67;B/0=:;5B97H:3296117324789A58>:749=8.65/E392324/9/:395020H7<3<1;39:4/?42878:54;763/457<0.-0.5:=.<4;<460392266A:;92<763:686.28>27842698;:6<33@<7@>777<<50?(4<57.5762839542/2<576473A02245..=..8A53545/:644E(4+7590526;567/9B5;88<<8509776<;1.8>.,@0:30?<38=;+7<7;4780788832>/;64:2??547:0138897?41,77,4396520:8:78.:3-90104<6:/<:/392542I83-<57.043;34/:9899189=;536I;3=;7,656B549230:7:647-:4:=0=783:27-7:<406981;84>;998;93289C0:,:;,6=88:9,3686;446:69846/7:.162610:+950836228/?2?26@49342818879<7:=31655<53;623?:<42>/?7*36.,068354:G,94/4089:8:5;E6:582@8).3B>E833<006/7?02102+7-0>2/<@65887H;5<6:,<9R+--0@D37/47'467327346:>=:8544.398@/.4<1.4.62.E.H<372929FI1096/(1;2/4>86-6479<::<:0132;.82;;;154/03;;6551K08.:<0+840795<<0/0@133H55026B839?6.33808:888>6.623>322<857<:4<'092@:>04=;/:3528;45?..;6?9543>579.>:6D941:2381.5:1.355,93?36>59;/=7:E5:8500)19,3+95B83?67=46?3233648;/*78=D135;98/4814685:413456*0?8/1=95-40037750::I8.@/B3;>:3;C1537148/3391.1A03D82;42747;/<.784?/:;166>:3==195<58/JF8/;4379.0797184/5:9/0778:851378:30>43*?34/3+339:033:.1;0@BS9=8B3268;98662655:3+8449<48646489/26/18>.7=09N32551,4,1//691143A482<<3<4->41<9<>G737497:10766,2,234063/;3=<8,05365?223E54B445:727483286823-63.2884454<37<55AD,6.15195,68>463?4649>48?4/15:7?+>7+283E:742;9113B3F954*11+;6761:0>373335.247/=56*115??GA:;408/54.31.4:.5<6=35@4963E+23B<92:88557:-;6;035E>6934/K*2760426C+=::767;5//35875187)892361:;903:4878025357>7408?/88E<16;181:;4@4@7841-78-0.27262?D3073.*8;4>30;43403:C00C/4+6=86/,02447262=1049<3:75+..1<9790:33116A166;6753=4:5?943568.94-21=49826G0/5298.:53325:)56326;>2?434/31:807922085047C>5190:/9881394=45:.5:634822,40969>826>246/9A5/1436:4<149122946@41;885/25-3=7-67/943:5>2.33;27:009,4542148A9-3@-:-:00<646812@:552;940:;B630594364653:86:9D06176/<15?74022<547728./6.7668?7<72-319717457208CC,-661=194;900-8=?6:796:98..=9>>763478;C.646;@559A4456612<8==1;B2304263:7947076:/C49?2616-34174<5/56:316401=0<=2/86<4@91/96:511826707H159576152:29:<6/333884=4357/.73472:=82124008(8721531,3084812B1341-5:22/6?2815066?A97E7419379725565;53575621./49::2.;5A>7=5593:9=84.9@/1<3:<40755>54:<9799642576:.;079,@3560;4A9422<41479+<<8<843;6:989;5?;660@5:.4><54@;,29758:,8582/88;9792:;4693473:781;0*;575@1<743119003J<;04.8733<9.247/05524@@45/>73,9163395?E2/4+2>:15473@;C9?42.A75195231381F21=.00<5@754657B1R51833=.6282657=:>&6247:67F35866A127:@+9/273?/951376;5-/977642-H664?>3?743,166-5?3A661?12949:<7-31.844547D674>-/7<3161<;6767650/77529-185A339<836;4@693562763376768287/7?5.536B839=340717B6526:99B842876@5.5/8G-938284:C::4258:58?3+84=:8<6232:0./?6=522<<-:75755194:7967752559608?E@837874;447;34>9<3I7447:8/9:/:8:7,56:4063080786788.2/27442:5<99>95/1,G89<363989253248:83261D403;536D-)73;64984/;72+C;';3D@38@772F/:@.5629/6391;19122?5.0=.><3/9;86;=6.=<97193(/@04:5B9.;(8)6+98B27.15A4>54(3A:?*35B/>%74125.688+7>:,86,.993:8263*A782$014484.81,D4C0-9DBC:8'7N982070-:48;/84672,1645/76367:7:0547692<0.3/82<<09).1451<47747:-7,6-22+36;755833876==67:871?6>447>48287/992D3>61<84>0312<.:366962;0/095:97<:5.49435405=7/22439810;82749/56647334,336?;5:691896:53107;43<83/,812*93?48.5917<<32=:=466=5.4257;5.87:23?08//:6.2556<468:2:<96<=637B6<36-/367/<'+7/,68913/10>1=B.;90657<7+90;:086774*-6317*5245/92<2+21A2560963288/710<4;39:(*.@09179;3037A4/71H705486.70(508;0952-1.488I2673E=?A38668>4<6.904/8467:36,9=<>E;<.?@;3731>2?2>46+>9+48<;5369'18/61:15K0622@/E?25978/205>0<8<1;60-95=/018152.338;:8;263>15;4::75634:/26+<587/25.=3-/461.35913043758864=C082/33243/66836509,3.;7.7$2'39751;827=-0/5:B79/B:@990:;2/3:22/<<7.1A-.0.:A381=22:3/>5?B122880>--65-69932:/5498/;4@351284;;B2570445051,3:E=1489110/4;546693CE399=066G3+601:62;=;<60706.:::>78G5685064-9@98+7532,98;7/8=3?674;4;32567778667766365<246<7596;758332:36>8:246563-02551:70.5;53?;58886331)35/:-464675/5877A5474@:548599120-:;9@47;437040;435721.64.4552;50*?181>83448775;1635<:9-9584720664;3277829DGJ764:20/72>46424684:?92268/%9439:918:9./648779:;25?;3?:557>4:@7@9??.8522K<6/8449/86=5/-52,245)-:55>:0152?1251A7680686B65496B6?565221.4,@?-230587>/532;5553584663<4531<39>18063'27C4@4;G43P@63;4-::15/56.:5;>3?6667706,4<5:9=872;86)51=438/<9<3?5259A09;0*9=86@7B4310845B343/308.58@0;406116@41.2072;30772D4343/5;42553213136834,.5224>80145964:<87.826/10338:3068670/65/15.6,384609,34275/3A356537.;/3:9;;4.5818<37505.<:79;6H>3:776B47<5878465<5=95564649/47:B85,5-462<3:269219264/6>47/9=;705524280,:-2;19+23428=6+8627:<89=8;0.;6189B5=,41/<5344 1)48E5E;B7@2481;234.:?;;<9A<4<9+5220'735;;@6204:70295,8<5?7334;256:;22'.-999=-<-=2760;<48@+10<356;:2*8-=.;A4%;4LD:3:?0C8,73@-2//96:;9;5=2'?079<72B1:3??7/645:<294A4>86/80<06<+38;.236845434:5:-.//1;-52885044@6;B839?;144/85426436649/8E658.3><97=3;21>7438365261?0134;4529.0:58=:=3447355B1/0<7/7<>5>;963;<3.9.596574C9=@=29626/6355+3342606.79:5.9789H6867C0<.D12682:/40C5487858831A56-:58A5567389-43776;463<5:9=:46235;61?:?6/5346526173/6,3425766?+95/28563349335@966.0339:4<36;75<2653:6<42-217346065:=2:4:3=4.6/51487532/623<368;78.4=0;341656/1:<8?4:.51/6::23.;6=2AD42177?337;4473184>7C/<7353<;30107-=@@,87957;<65109/39;49.*873.25+4686:2<3717;?05/23653185>87429+867457/273544<7431C=A<8;4C6434?;742E6/35474=,3933/16D/77:693@5666,772375120849-7219?195432889<=743:737949:9<89Y247156+4=465.;6933155;076<3=:4581991932555\5645A8903:;3123204146-21:36:22>/31><50:=8156<4802<-376155<78>773>959/481.8118N;,7D561378(>,5/825:.1-37:<=640/@55/208/660:38418278+2<87A2685:07747>>8;017+0:=818420:901=5051A:8.293>62-46D775/513210782656;3598;34:768889;5>488.6383852743/9;:37..0.5>325;855/9276<1;962<129660-=0C8:;C777/20>D90;329994A69-76&1;<;>37F=)/./9112:987:.8@<.:534:>@0D:172<>6;434:74A:@0=99:E<2<,=7?/8>4D7474:4586I4:5=7>952<:9/9<8480@76:1:4215*;.B;3582<6-/>5I9.748748-;,1/4=/;:986576420H=7:/.;?/<42D7:953*52-6/1-051:538A4475661/46320:8621>5=:>,63>2>98155509165863-/2?<78'57<5M82:?:77;*562<:880985>551:4836/H219<628=<27;979:0.:504589B59687/6B5;:'53-B46,<=69;2D9CC64.33484>781=3832-272.,30201,77;35;>>41:76A?3:,2657<<2:99:4>9,:4<9><9<95484738303?3<80B1:.84:.48102=7537+872242027<>=3352=39B403362977:343466<3113.40634=8.-3F62<68-712318493.5698A;7A-1356DDAA740;:3:5:123689,,/@432956<26285377541,16>6583163435490165614>329-67;;403882A>2497D260:125/31;F037:;86127/>573/;8508?4.-6@679737977;241.649223,.484::7/5,75768D2,45;;A0675-4:69664>8-72252683796843,8723/:04577=9>;85;2735?3.:589044;D=1H67G83:>58=3-7=0'@?;B-=4133;;<.31<187<3363.5238>;8@2;<;.;09555:5<867682283>5558D22:>46647;3;-39/7;;:97382960:363552C4>-,028=3272<.=55;394440;27??8643?62262/>3:541<8;9<902A?:8650>9887<46:1773500.15<2/75/46,3+:0B523749672/;66G7,1?7@68C@<<+-@33.7;>?97:4/920658%=128.3+86@518:35,6422:<194297-.>@5:>=832437884=-7764,A7;2>4<957<397;7:556758:(;;9>415139/02;15393,648;183487(660H7,6?0.834+1?;<357?BI672581A13;6<529D==119,6696357.:><243>01;,40089/23=9,358=08515-;67:1602.3;9/;4212<7+@09118/,497;497.05B11=38;;J:6<,8883=:73=53:?A61967949;-8-977.9530087*D:;/05=0946:8.>329/'43786:(1:03-7?44+0:33B986/=*B6/,/1662E<19A,7635675293353:46:569A<2FB68783374@419732:33..66FBA=7+/;2251=:4.71?>284/895=20.92.30.36:16.65=66:?3454P04;672>4*263316897=8464=424538=4.95<63358094F49<3L89,9;3F062=@347@1675:6574.1:5'77/52/A5;2344482/344587<,253D=.=6820372C3666>793674-974-90:96+739:4;+:320@1:96<,3:3A364301@3638.673;7<31396284?05111;<4C536998<376=65-63>43.75<8=683(>9E92079095<@0:557268259+12=167:4=54/5330424B2553?0660;7?;33=4568-9343/6;4733604B6>34;/7473V:705>4647<36==,588A564247//;A61;9438=513241=9642A735<7//<441936:7645363094+48380-;9<6<12@8198F16.7163363547;1@2==0938=0N745.04453>44;68C7;754.76600466:49*;0@431521526@91;37757I9D40>44>=>8;8.671=<1(A/0,56=2420253@42A2B40,4>6:9>6=:;238@<;285<>:4-6../=:47146B.5:F0>=>3/36<+D=917/0:?<,6653957;;=;67:;83*649:664:2@3=.2>0832<13>8=1<614:6:361:32767859;>82466'6066274&590<8+>46477//>4<<,82<<4;/>.9F4/=<6448//.76;69/3/3694840913*;1:24;442>C>=:(4::578:.56+:0074-14943361159>0:9@74;94/4423:86D;29:37;:;4:67038.1:676412<<17;4;D384B41B<9;;61.251:>>4C96<453500=73973:1;6F41187<39679667961964&297A60501839:58>.1G3D8=/759,168580/5<+2,:/777:2786885B;414007,98-16<,832334=/>893:>728>7255568-7;/717F8D<8<12752=;333664;<3474:127637/4838:.5.1918:.7>81;:862F:0.2@466;457;3863?436;1605B>:8@65+505347400==73627635G::79637C7<646;:>B.7>=1842F:71<864056@/512257133328;14660277=7060961/5;/6732592.;:36931921H61.6742363:781<26458<535771KA,?51>73D0:33;:269854;/0197*6*57=3?8<./7A55;:47<87597@598<49-798279956=98,6@839453B=?>A,842=<1,1372/327262669;=555674/144164N07A495B558-:5.3646/98:;8179?877:+79248734C7/3.20<7/<3557198=<;8.13:?0C.3*793=98/1533,:;49>6//88.;?0:7:=;+5/:@3/:87663=/;740210<5?03;;2;>:57H5=8416-96D0125642/3FA><:=.>139.0?948*3'B5;,<<4883*=/716703<>65.0.4:;=0737::.6445.44+16029?>468212@9:776/8;63871740@72:3:4:9.393%;6035--150;6190?>362;?562.735>=N8217855=;A4=7385>.:/78+>7.97448;6991B2/28:075:.2.==862.;11,+5@61-9;;?;3;3531;2.478826282;6-635@,0756.:?B/2,;60/8D>9-76551.;./:00;66'53;<6A0/794573*)4>48686;-1896*:1606QJ486:626=.,=@.272,;);*94.)2-2602-+346/;7/4B776118:152039>506/F1144=1719-0260//;744@675834855433?<76:69?=6=26/7:?;:<<;;1889?/66E>0:@135/;:9(B27<25=6214I6<3@3?66*9/8@,1/1,)<*;2-+62/:=36:/90/0984;.4739:/F<13:4<45B6<04+/63-56129:;01:<,<24:A9;7>084464774;*648<343>:7,8303:139.946A-8650-.85(;7<,*@50265:0868152#.1,837+/32954;=:8>8*917642000<62=4;2426-3=,;?07046,1-5;;4/=3:<:27/:720-52+85.0/>76095>25421+180/37;5700142)3662;04?7:5:5.45789/5971941=37798012:$88=..02610823/7<6;93:730971>'4713.355397/;3>/<5H:6;662965>30449;326;:.77948713H3;714=37/<0:8,500878:/0;:124705374?6A3<8:)<7462413D7-=5839.388?54653>2)68B+6,7718464<.990389,>63>/.6.64?3.31?:5(>>@9=:7=3/838@3A7;848/4-296:1@7@9?4.7:104807/2<2171<23230:23.348151>65//86<395:445A1<3=?>/5975-1.:88+6;53;>:.55396182:5424=14=-.775102974682345768<78/43:16/8.15402A74642:9:295121911.0>A23:51509:702345872;1.;(1@72;:6.+:949765;0:<.<;6>+5313?324@9615,7,7;85227167F7,486/16=6203/=132;307578@>847,087671654515/9:51276:9:199528<454414743-;38@5651:8/;:87:729<4429J42?--;6;932G353,4485>+87/62D,:37::745062634223<5<3430811996435I9./0426744;23=<211.41567B/3+:/3-=6421<3975:5.4:75966<<69-617.D-4?D;6.@:14358736@=N29/3=:6:;44038287:46436-7;>94>3433625975>4:428:8:8>:69;7:=:=084>=;-51B'32/12.736:619462;-5<67;7..;5806>H<6>19188168686:51=55,)/0787;74=3/7R;o38.16<55016422/379.;536*6>584<:47E9<8741;78/6;:>40337;7;3;50/674>:44:70083262.?06/6;;:7/6445999211@08-39?5:*-4305 +53646:3<;465'168915@09:<:F157,63970'50+611@<720+:V94561B/+L5<2=250407:147/+05=57?5?3A767805;;0655235560994;<;3:C>63/684335<72-@003<9062.-63.:5614066012;14381244A3<8,0669621385.0B-40?58:<6-87315=306?=774:99/>=6092/33;/,<3:7F5<32B9,:0/=B-4*8,0:.0:5?3E85-42<8659;44&434@<34E561<7?12@D642):)14:038:/<77;6@29+*B00+39=5;03:/8:687061-/53>6:50033;/22090.8517@769./8739633713<3:1#D:1>;7:N9H96/843:;5=4J-<2307;7-+3.7-8607571:;>8>5:-))7321441963<2160967:9-/=;:08A7261;12:=<(2.;062443735131?56>8355/7046887;3;468-489:478;>(679>6:8?/;-:2039554<5)43257/846=6475=64A24<<>523?2.293A4/>66>7@6(356*9<9<,0;6152;293<-3582B4=3@4=)5857/2-8/<378:8:;1:75,,<:?=2995;7KI2?&65.8B61&-;02.334)492,)4%573646274737B6:-4.4854F7?62/4'E?809L'5=+/8,>50*DG0<<784$5;D/2C,445I7.3:6,26E6/8+25-F=070331';:84/472203893:9+2<<6;9<837:,;38<4073+94535-0478::/=914<;3:634:16;5,=;4/9:1-,:67-2F76B74><253C7;4=@+477/64381?55014-7548?83<5265A84.7/*;=<8=:79:54.22<3738/;11;166:84+1316=.=@68(77392-74;?4675>533<4<5>=<5:.6;?5/57771>1;/05822H6.873@9954247/42-B4/3.C68408.82/5:37091843;2>26(P872/;..8,56)777C?40;15=:5?313749=50-7+J1+23286@66/;<5682/4;.6;23=8462:>3744361<87@::20:055569777324645;--/8:6,6A5+F608917>64870<;5984/35592;31<;7@=*4967:2234<478-A5/2F0<1:?/29.24-6@;15984/64'8<0;857<:;5346543@-76;160:69C4154:06>6406933=4:+=6;194>/;%653/464:951070476701786955:87/:B$704.6;394.12.;2*73:21:666006?71*3,.4879B9L4134:3/08=897394:98478:5829,3=/:A9496376650133561958,7,87-33:96752963841>367579=:A0<457442/12;.407.1:5607-4254563;3833?4:5>81<:13;/47)436,2><3853:4:G5856436<77/3F671080/@240@2@4:87<<:515-91<;C378<0395?19;;549/499:>4;546864872781C476483:9?96=;70:4=7468559;6863=565:7>66084;88-448:2143929?5347793.;64452/1;8<-<=/3@8415/22.461787:005286386<:775/7885/7869,>>862A827164/;363>?7;8=6552/1;19:421788:>976;76<4::861729?35,8:<31656567;26:=264:248A41623<5;763197:::873=<;19;-<54;+)52>1633:737047916643277/H.346:5:84;8<$>4,0766675859.:493=97;8691:595857328;8<9764;15<8;:19D936/9A87>;,2;(14C37858;91:97572624/<=4A65;3>1:36@2537622945=487866:9D13363626=>99/48186;986:9962953/9594D6<0?,64>62.323.?HB:<7972052147727682045704295866/088920*871+1<=427-690099?-66;0509271;@6C:4857<728910<6474744;1&247:37C2B:2:6,85=:91837H45509?2=;>=6657A4114J>;:173?0<,356432>83'64:87999775844H8<046755-2>H44'<55.06:467A-510576E:5769644941=;27;93783:7.75587A?32041:,3438:0547==39>9<2448'5;6<6(8&%72443#7,8;01274:?9:2/8?<>66666+277>?5<>/38737-8713425:7.6879;75%7>685453297=:=766;,6:9?53/8757136148@4:55816:25644.5986?10;709377737/<7/4/85@<6D50696<@266=058=3?68188-91;76:2/58G=75=0299=0=20:8=53/.0F547/9768:;>4:4343+1-894=<8;;:+/5/834,-:392431:2<>78,54*1:415822231A@4@/55/5244?6;635<=154;8731380@>3157B;57;?91466/06748546@48=46846<18=8&,2//?88;307,<0>:5:83418-59:70037/52.34?922;68:934/62:9.0867-,9F7;7A/;7:4.6/567<7064-425664'8,83=925.<<56+1;7+>62295@-//4;984:;1:35?44573866350746324:948;44>44;6;602;94:3/;A537657635=,946;17:;92<131:223998/34671;;95:24347;65;26931=8=394C6598.62F371)::533;6.46<;1:>5>45337M18/6>828-03.:499.49.696955<284;48834--3=351:5>?16<2=/613056722454<3=01272<24443:;7470;,5473/8<9?495667<4<2:6==7/8?952::913277659:601,67:875>/:858650=?;28745182947:54578524:82:595>8046:8/361E776219:5:9125666<0+)843.:8::H035342@6>./3:4.6106562;7554773?1<52572447/96A1;94<7544=200778@>9093497<9J35.//2@):421195H<;88736773?02383.;3H5/188<4/>849549562+538=751A0B6:<;:239663.71;6695<582345>6/647(712-D<:8627E7935E37E5573->8169:>5::7041*4694713+/8926<88137-4314<6173.?/,05>8-3:31;=5C.483:1-7<246:427@.:/:862B659;,02506/827;I8/23433/>23254.:89<4:;-2=07543475-4;:710+=//7/?:67<8;,:1.6;74=46-8;126*6884<@341102<,850A27>:7;20656E16F>859>85*F4=4*><8;99,1;)90>:3(A7>:.<2-368<:679/<683381513936?9<9.4A90/0.1165:4,757582;9F43884:8.57208:=0/:7.94B72/=5853:2>;22/85,27731+986850726307-:;5,<*/.;?2<56/6:+19;<70/;(341>1/66)9;72556A45355E64@,<4?5636?:68/1:LF705+60721A/E628<39,(<(56):5177%=331A?.9:084=19889868635A5>43=47;;2339:9:4161882:9;0?D4>73B905586(44;465>.3:634=648554@2385-82671701:2:=478558734191;11:6D7;025736272).14<<70683467>-777?55:;154<9?2>8584876<:<6/348;354685620??056@969+57;=1414?6;(2341>271*=7943E;@)596<:5;5>;;5.;9<=81;->2-7165:789-;=;<<:22?->6-77@:3-6;659<5<05:385:@395+(F5758954957A<588-2>/3/588-:5964-=4.119/847A6489617:492/087335<14+747532;.E;D?@66J2;:,033?2/'(7-69;25?6>8443650,4:B>71G947609=8/>1;75337'>C+3;-27/;/570@+=?588:8<5/2977:1<;>66?6829B56472571:7;A:9>2653<1.;>.39719578447:69797?;85?;8<778285.:5=@7/;?<756560:78==539R>>:E8/?19A80E;853-2;>6877<482:3?;3468@3;44.9;@;<689388=75=77;:<=2/0;?397?8@65=9;;.12:D00513<5:3E424856<5.52,59.D6>3551.,--5<739<6=94623-20;4.:;52:51<13580A@<644>@.27:6E4285585<692C6973497?7-=?3873=868015408.6%.<8<3240473401:96>>?91713/62586292-3=6,.?13-<2570/;2B,,:4@3C141>67.604165;80;E>1657482:-8>:>37?.6.9:A63/3;336C90,77651=7@;1?,49/07166236<22?@849>:07;=306:53485.54=0=+86233,833188I8?3:+K-1453003.268194:6714;752;49=695<493B427A6+<4=9;K6>/=95224026.=3?:72=0'84:5.6.7>;=7:664:795;1-7=7=1&:?59/1466;;880996;1834:16:21,4372??1<8:15979?6-0.?7?:3;9/3A47;55029630;662<1939*3=)5@:=7443/815D-8>6>64*;4-495=/F5=2-53754;70.89;926.483?59928.>28;89B>8334535/97@34'/15>883/3:?C;:;8?-54A904@;5.:5>6DA444.<;:9.4/74B+61>618:9B+9,:28;;557>8901E5-5081276495,=7237870=GB49(<<8E;#7.297I32:B%/%0:,.93:4P59):.)/2<416282617.?3-3.17;48@92>13318708,233=-999537/'536=?45784888/=3826492@/3761-43270/?7<,7<564977=87)854:;5077/<.499467/678561:3839:98373>6<4A:8455;554007214;-51:7=-;:.394444=0285782361113274519;:371841/95494.27267896/6.55A633409+183:6>5<374/5>2@773>:-628-606532163@32083?2;;8955@48@;<377=:>843$/4<580;1603>-480?63)0/04F?4=:293/6505<>90:>0?720469133.;51;698412;B33<083356+783<@:72728985;0:9.61562;4571<>)44<:26E:C51/4?511488?8321?=-2.3965;6<<@7960>7.3156@?46=168:75<9543;6;9/9@:11868122:3;7:48:73;8818/4@378622;/8<=5682?245652-47818774;3:58;17,,705/66.1463:51425=637115:336;?>13,919466578:1862;37/7;7F7-4:/3;8416=8242561345>56-52,/7093074);36=934<.88?6754<46;+2?4,<73<5,:540392.7<334:<38/8-773420698:45:2390142;4456779:2>5-?7?771-=364/3;6;211<;7::252/89754234.595I?69>94.@<29160.<<>6:8+(9:69882:396095:.4@+:356:687935<405?6<7:&07951=7;4544449312/4=6.24D7965=3>48;298:;973:1.890;)836P435;9?84:.75:57?3;:24=67.50/>3:;09=86471A;33999.26274201:644-5178786728534:37.45B24:91B3C69802787458543:5@:126:9759655247684>986564;4/2448688:7>;.43055079@:42749:155255:89700N5>927(414:43=97032646-90:816?3<8::7>4<:8E<268>2=0845455:448A>1224;48538:706224@778.34645;36>89:75<5/6>6<=572;C499573646<89>;?50;.8E2;76/19:1<6=;5=-@7338B9=951;/9;<1892/3+5659E<4C4@512=68205=1753A/5:647034:335856643B9@3=/<82:,5*067;46.-9516;:33:53:71?154?<92C=>4?1B.1::;:5=6592.52/:A806;8:>3?154<6=0.88=8*257:35-76986B65;/394=;27-0457/563=066-43,002A4<7@8B033815-6281;95265;8<3030734964141222260639015/;60:058503550?9674>:9:7>(47<30;07=2257284548<5584.:?06;05189.75F338;6::?:->555/A790.7622464%27=163585H5;.,+1917686719=@F5-21793?:5/4-245H>@-927<102.7642=5,G>0;F0853/-94/B9/4:K66/:<-=.18+28;21/86<+3><291/29*8=/6337-382;24?22A8/66=,8889286/741;8:042;B751..994.03=62586;525,:4,86:04626>50=8/>;5/4:/5;7-86602943/0*247.>1?5<6479-/6,3"84.6-08553;:;90;958.=2:&57,9;0:92=40;9:1.<42>149473857,0420=27898>2>;50.44.9:900)476257633885;478<+337353?1378//.99;6586:53;720=9E42=4;7828521:;7:=6:6=;..7<4241;3:49550990@,636:787873<4==0156286689550;<75464:3727985605*;51=50899;334,81720=634>79=391?76/4B563364145,5434<5:148584?947<3365815?;:85385::6;85724-139<3:1<5823?.54634:3;0?67754<878474751@18629E209<03785332885;260703461>9358/7279<679=7593706;6141/33202792659659?1:7198;3@60776:33720?+8/;826<48611;3/1*/2>76..'+3:56<242475201+.:66,3200=967-04/077112643855.404014/7121?15.20180*56;-3+0+132.<-)/..++71:0-1@,01./346::/2=*$13/407772..438/*7;8791+7835167,22.:/1<%337/64,4335+13846:383;77A24589137:049<9A35*6,7#7-D;A5.:<>0;09?70459?,87788-3,3815,*2/-9/0Q<676-0.B41-<9<23A-50@34@D-25;3;6.065+6<5546$614=3,9-456922./3*213784<636,45/7:24E61?1469648<9-A4.E@4;9=/98:=55:1A1?:>89,<3?156+;83816905;,481>A;<677(6B:73/09?3,70,9;8068E557?3DB59-52+24=/$548H13/;54<3;/8:,562B3/443B5;,5*=/3=93<3/;8.5/0.7<95102=:134404:6*;589@.F1.@5;;834A984B5>7809-2=0):+888'/77=1@=.@0=584?@59=9>,633:285.21:*98=1699+210@78<11@962:=9.850<=4;87/753372;40<508<2-;<181<202.8:.3:48?271*4998/1;7<=1-2+2:6/1/48/678-7946077/;9764:6B0921<:74=98766767?41;.8+8641811:51/7996:83895<E:9:6<2?040=-/85520434=414492//373,1*6:657D59:46@.563<7376/05>+5?-7/1731;3/.::44:373529:<78-;07.7;7273=.928067744<802=0643527?5F:1377A8/A/H8:?<=314370662A2=4=0=-16;34:20/:+131;656.+C3156?4974116-8.157/-::B89?3/68;98=:52/4:6.8.858:,1//44667/<7>6=<24D70377845B;)9:22A46A153.=.>3(6875272<72985>6,89:1,%5;572:301:-'<<03?<33B72-6B076;-9<38;41@28L5317<428.6?>72=B1@BD46.<2=64+0;:1443===3/62/4:1<+?//>304?=9H:3888/77+8C<;7?2564A4;2;+3-/6<.B24-?7=5A6/525;3=4?7;,6330697;5793=73,:78346705)18;7@<3*>4/5@469:8>6A5241025>6785564;23?@728<6;0397J2+9557:6+665.;-809583312E(;35@A92?:;.<759;93:>6012>,6153392;3-)92.4633/15;39,46669>5:00/3/3-2;;7,7B<5<62D355*?1>/62?755:8173115521.9,585A23?1//567/447:B/38;:=90H6A?/66?A<3.>479>6=9/?71477A51156/0.89?0+3@?0;069@/3:4655<9'>7728>364516756-36?117/6:34<49:57;6470;4576-;389411268>446=91-A81?A8?11>6,1@462<:9?.8:.79)<;4765:3>/41>65;289)0888449012:2:5<:88:2A15<57;>75/34:967408859,03=33:31-25,6=9;><85:56.7;622:50/32.7A07:<1:=;83D?4C>?5?@4/5..<-77448>4*63780*3+69587;=90632:<+59066232F1<44=95/1=7,<54<56J>88;A=/6B2),;/728-7215>62672.,4<9910;8/:2<069/A40:?106237;7128<<888.2+:93:>-5=87745328<883.4;>?=,=H:4347235;72;6>?061240@728:80;87.6376.331,=9545:B.00483:+530;<+7.3:76<45.:49<1;2?16:6781858:682;03B42:;..===99/&2935'8<46?4;;2E20,:7I3/8BB7?7=-;77/'?<19218637862046<<325689,867:463/.249>;7664:568576592289>984,548875828;,5:;<:36-49/:5>5368197452I35;8/:7:3D36552>=765A10/7:;6.63.3.8/46?910<654)-;/6-528:>@4:2/D6;>9607475<58494<5/0471<560+@;,?4562)5;.7)0@63224;/73986/?*151114;79:13-91-7:0$;=76::4=3.*514E27:<+6<=6-'960.79A,;4308..40;6<18905F=-/:/)<:>95126.76C;.6620;1167,5:04*>4/*(38-16B929*,.525229315.82;;48,;@5452<5;669/783?76,::158=:'5/:5.9606<:8/;17@7>739/;>786>58<>98<:543??<14*6;.,<74:5/19694975?:6903C4B(5>;46-42?17;17:L3=;F+4<(*';59.1;?84=350+:251>4756356:12<7.*<8*846:294.648=34;3738/=6>3;-42627979381<74A4)?79=N49C26197.22-6)85;6;@1<329;563.88919683311H5?54477:/?;4;567?188632302<1:6A0;821.5/<7,6/82574286827@5:,629;0*7?828389?:6<;73:1>1/8<3<485<655572:55:=-;8=:.8;@564A-8,3A;>473.>9066/594387.=3A6/58.581323768/586315:484379>726148<=8;3;8454:76865<4580<63>16?1u~uuyzqvvxwuzvt{w{|xsx|rzy~ku|xusxuxqyx~ttxwwwvz{sts{|yvwvyryt{wtquxzx|vs}trquywuqopz{p{vyxiwj|sv~tyot|isyzxxs{w{qs|xyxtw{x~vuruwrxuwyhwmxtvvvmw}wyvy{zvrvuzqytpwtvuvxoyyqnvwsuz|vvswxltvxtuywmpxymz|qsqpsjynr|v~mwv~wqtxzosrttuxwwmrpsolk|vk{poy{rixuppt}pztrs~ts{srimul{ysrujtywuuxwotsxsypwqwnx}}wjuos{zw|ucsqvus|pzqzv~w|rpxmsst{oxumnonlq{y~wvoptsrosloq|~vmkvjp~oxsqtmzit{rtrsttegpprmxnwto~|Rqusyvskwguvyvlzuxlntjeksnl{ttuqbuzvro}jvpbjrttnzu~srgppnvvonwpyzspn{nfv{piv~mmtrmy|tpxywoy{{mqyzarsofdpvomktvkskcxqltxjpon]r{xrdv~uwisn~th[}q|iunrnaetu|m{vyng|yx|yqs}x{uuqpvexqvwmqqxuruvpt{yqmvwpmW}rpk{yts|o{yppvsuppzvm~ut~rqm|zxsnzqysx~~nyxvjurqr}l{yvuzvqlvnt{rrqzvvro}npxvzspx{vtwtzy|svvy~tyivvoz{u}}{yysxyrstpxpoukyy}xuwexxwzyuut|zxvulluwvwyun{xw}psvitsyt|qkx{{v{vx|ytxuw{{|vts~wqopx~qtrmrvzywuppxvvrx~lx|xv{}t~{wtyu}us|tyt}m~zxz|wmwuw~{um|rxq{lqup|~~p{zwuws{}vyxyjvuvpv{ux{yyw|}vyy~ty{xx{~{|y{vt}~rPyw|{|~~x{oyt~hv~~x~}ztmx}vzqq|ts|~prusz~t{~vspr{us}u|zv}txuv}xyt{uzzys{~stzxvvymv{wyynyz|tyvwrupsqtryt{vt{~yy~sxyxux|xqtwwuxz{u~srn{tyxzww~yqww|utvyrrzq|wqszw|wuxyxovvwzxx~~|twww}{|{~~vu}{y}xvv|vs~rw}xqrx}xy}p}yuzxtqzuxxxtut}surwn~yxss{yuvryzovv~u{swpq|xsut{yy{um{y}quutzutvh}zpsoz~|wzuvt~~v~trwvs}lnpw}~fzjwpqttmywyvvuyypyv~www|kqtsxpzq|zvzsor~ywswwvxztt~xt|uqxrtr{y|rz{u}zvms{|ws{t|xptv|xvtz~tr{uzvu~nrpyr{q{yqwtoyoxv{rvrrprqxssztw{wsvsxwxrx{tztvs{q||hzz|{txvz|yvxxzxxzyrvt}znvnwzwwqp~uwq}uu}yzttrwvvrs{owtzxpr{ouwrtwyvszu}|xoyptypm{to{y{vozwwws{unuwzryutvu|}yz{~xyytul|qtw}rlsw}yz{ykslzs|uwpj~szwwurpx{rnwxvwwuuwrwxp}{xsp}urtu~|{vruvqr|tn{|~vxutq|vyw{nxyyyyvu{wyxtywzp~utxvxxt}to~oytsxw|qur{{q|xwzxq{yrwhwxzovx|~l~~vvyzn|u{tsy~|voyy~vryro{{r{nswvdwv|}tzyitqtt~vvxmyuot~ntophzkxzqugrn~sv~hwstbwuqyonasx~urnqu~prvtozzxz}rls}}tzl[pcttt~qnut~~{tsn}{yp|u|pvxynynq~qiz}srlxjghzwxvi~z{sjprbivtq~ymu}vv{s~{pyyuisv|v|nwrsytwdeo{vvsu~vt}~nusosotvzyqsv}ttpwr~v{vsv{{o~n{wrv}{upr|{uluzwqxyyrzvs|zqlmqqlrxxxgyowxzvv{vnvwzwpzzu{vuvtz{upxxnwnpu}u~|vysowovumpuz{wzwusyxrxznzltmwmt|svr{mvtt{yvs|rr|qwstsvyxuuzwvqup}utwx~t{}ywuzpwwwovynzzwyy|~vuvvwqy{n~~uuw~{vs{yunwqutwhstwvvtpx~wq{ytwutvvz|vxsxq{u~~|xtuovlr}}uqy{quvryv~yuzqstv|wqsmvr{sxtr}zuxqusloy|ptywuuxrxzzzp{}wyuxxy}tsqzsszsz~{|utuks||sxtysyz~wvvsyuqvuuvyzt|xqo~{tyu{qxtwxw~pz}us{yxzvuu|woxtyy}ypt}oxwtvxy{xtrsx{}y{v}x{yyyxztuzxtxoyq{}xs{~}yxwyz|wtuzuquzw}vuvwvzsxv{zsrvyyvxwtyv}rxuvz}oux|vxsjyxkyuo{x|urq}r~pgjpxwxzroxvyrt{ost}t}lnx{{nmr{kwznty||s{tpu{uy|qu~}yqx~rqwvvnywz}vwpnmyuuwn}w}qmuply}qt{rsr}pizw~u{v|rs{touhuvs~upyrpu}{wpznnvvmls|u{tqnovqqvrwltvnotrx|q|yotz|vw{qo{|zqyzq}qqxuxzv}xyz}t{|l}vwsvsw{uvry}{wywwy{t{zovzsxywqvwyuswwq|zyv{~vwyw~ww|v~rz{kx{xzxv|{yuu{yuyytuvvvqttsx~yxyzxvzpw{kv|yx}tttvvxzw}uro~yzz{s}yr}tyo~xq|t}nxmu{uwquz{otrsqmvwu~stzwryuytv|w{wy~}u|styuxsy{rsvzt|tzzsxxsxwuvxtuswr|vysxwuwwvwssuutujtw}yyyws{|swuszwtzvt~~{swpxtyutyu}rxuznnynws{ntx~xxusut{vrwvy|ustywv}pz}xqtvlvv{pswst}sxwstwyyw~hrmzy~uvu}sw~vn|wzrpwpzvxh{sqtryj~~}{ysyyx{zrthtxqsinnzzn}{xrn~|tt|wrqpwuvy{{smryvvsr{osui~zrmwv{nxsnqw}}vu}xswuzvtk}my~trty|rqs|wl{w{wvvvqxzlv~wjx|tsqrw~uuvz~wwsky}qnrt~{owzynvptw}{y{wqtt~rptthp~nvxxu~|p}~zosvr|~|zx{n~v}wlzwtuuozywr{v~t}v~{zugyrp|zpu}bwpuuxvzxvjsnyryvwu|}w{xsrvxpu{ivunu|qqsp~pttsufry}mqwv{dopq|ysroxx{{sv~ux}v{rqwsux}w{xyrxwvxxwoswtsol|}uots}h~txuuwzy~uquzx{p|vzvouyz~vuywvrwpvpyp{u|{xrvr{vq|}pstxvyq~pzt{qypxzz{v||tu{zzz~ps{p|vmpvrlsvnszrw{y|ut~|s}vwuuwzvhwmwqzvuxxxnvpw{{o{rtpvxqwyu|rvzxnxs|u}}uvz|tqunv|untw|tzwu{x}zs}z}{ztvszyzt{z}r{{|rwqzzs|t|zwzps|yy|vvvszsrt~~yswr|}to{vvuqzvs{uwyz|uzwwyqwqw|uvwqt}u~|wwxvyquussxwv{tlz{wtx|zyrvzsyy|yswz{sw}twy~qqyiyts}x}{uoxlozroszyuosy|nwxz{{yyjq}|zuurvzvuxxwzw{p{|vxstptszwrvoy}un}uss~svxxwwzuys{qowt{rryvvzuvytxxwnswvt{uq{ztqy~~pr}xy}mws}|tq}~zvs|~w}xrquturvsvsqpqukryr{wyq{x}|svtxqrtxssz}~|vzzrz||ts~sqvyrwrvt}qsrqy|{zsusxnn}{uvrvx||vwwxrp{~rvvwpq{{tmr|wwq|xs{wwhzywuwyx{zv}qxyuww{yqxy}~wvszkzux{|wrys{|}{~r}w~uwqwpmzwoyx~ttvvyns|twy{oq}xow|vnryqxyqunyjst}uvwsuv{ojvtxu{vp|yrykxq~}y~wpywmktvojxzytt{uzssumuytmrpu}umwxxuytynzzv{xvwm~x~zrwzxrryr{s||znwqnvqwvxl{rnortxnzt|funsw{wz||rtiosu~xwhwgsmzw~tl{{t}ysv{xtkqztxopzv{vnv}tx{t{tuzt}{uqkos^yxwwtuois{yxj~x}uw{uptzzzltvvp|uyzrzxy{znvyxtxuzuzxzsytfskkxxt{|ou{}xso{wzrsytn}{zswu{u{|{y}qnp~u~yx}y~lwrtxv{ympuv|~|rzrox{t|y}twsp~{}uywpwowzqy}ywvmxyrs{}xyuv{tw}yxqrsusnuwv{|x{wtxx~t~uvx|mwtwz|u{try{z~svyy|vuywyuyx|xzymv{lxtrxvytzurw{wuyxu~uyzmvrv}|yo{rw{s~w}~}x|ssyoy~|vvrw}rqzv{rytwvtxsu}zoovsytv}jz}xqz~|yr|{strv}s{suruzwztywwwvyzrvz{uwwqyxzrumryv{stvu}s{|vvy~twxrwwoz~rwswsun}xvttstpuwwy{wstp|wrzxtrvpysnt|wq|u~u~~}uzv{zuztsvzwuswzwxzts{trtt{tytsxtxssmwu}uwsynwt{zz}xvx|sv|xozwzqt|wn~qrwr{ow}uvxwtquusy|xu~rus|y{yssn~~yuqy{turusxtw~~|y|yvquiyv}ovn|pxtvtvys{qlqyszv|lpvq~ntvx}tyw}toyznz|vut{vsyuw}vyyxyypuqzzzvoqv}uwxknr|zureooyu}xs}styzps{{}vlslxy{tttzyx}{x{y|qropw|jpzt~zv{w}}so}|xo~u{q|{xfywry}yvs{}swrzrtxpnzuruuynmthprvuyovop|rurv|txgqzr|}ynqtyrstwz~wvpwx|w|mtwtwo{jzutuw{vx}lr}vyzx{x~|rxx{t~rkysyyvp|llwl~vzwyomy~rwwztwuylxxtrvswvwz}vvqkuvyqtxuxyry{murvowmfwo}ryxr{t~zlswz~pt}usxqzpyyz{{wr~{|su~msrzt{stnsrxrs{nm}k~{wq}uxmzq|lpxtsu~{{vu|lwz|mrsozkptwrvxzuuwtwrtyy|wnosiqou{xyylpx~~{vpxyuxwx|yyzz}}pypwwqu~ptx~vts~vy|{k|szvrqsutsyuym{ysprjymrzqmwmtz}nq}}p~ss}pwzyzzzmpyt~i~ymttyuvhzysusvxnqywwovmrw|xvzugwqy{zwmmpzyysrnuzu}yzv|jrxn}rzrsvxpwz}yt~~r~sxsvu{y|{}z}xrwxvnwwysrsxsrw{sxtutxozvuxs|}qz|vv{pu{~v{u}xqx}y}vsww{rl{j}utv|vpv{vyxyxoqpzwlsv|usm|t~qr|z}s}sxj}~su}tnsvv}|~|swr}|mrvx~{n~|r}w}u{lvywyw}utur{pzzs{zivmxsiipy}uw{|yphz~v}~svssrnzhusys~rzuztpslsuuxxwkrrwyxl~{xvvyq{uwryl|zvtrotww~p{sywtxyrnqt|xs|d~|vqwm|urrouvlyoyvyrrher}qvootr{tvztrzqv}uy~}xs{pvs^~vpooywnzzwmquxyqstsyxworxs{rptz{wyyiukpw{wxwqokqto{tx~z}}qvzuzx}~t|qzwrwuo|qsowwiw|rtspktvxgvzmtvopzpvxt|ts}u}tmwpv|szpx|rt}xxoqyv}|w{w|mu~qm}}wsvvtpuyqxx|w||wywutkur}tmzxroq~otr{vzwtwvt|towwyzvo~ywmt{}}putsvsvwwsyvq|vyz|xw{}{tsvqszrxtpzpuxxv{x}xx~st{~uy|tqxvzyw|{wy{zwvtvtvvtuvr~x{vw}xowtx}lwow{q}rqxvw}vtxps}o}ts|xu}{z|wqpzpwztwqvyxyy{wyyzusy~puzxv~r||tpw}u{t{qqyxunxp}rvz{qmvvywvzzvwuxzu{wysrwvwttvwvyxwt{ussw}xtss{}}wmvwwymvozyw}systzkovvsvx~}tlv{zvvtxzxuuypytvr~ty|krqvsxvsvyzuu{y}wwypuw~uwsuwuvxv}tt{pmxvqsywvvwyzwuw}yupzwst}xs}trztzxwqwsvts{|qxuwvututyqt{q}}}utyzpuvx|szzwspxup~wqusv{uywt|x{vuyx}v{yy{xy}su|uuw}vwyw|ywtxry{zxwzvvvtuvw{xy~yxuw|zuw{|sxzvx}qu~xrwvurs{{uqm{~wtvw|vrwquu|~uvuqo~ty~|vvqwxzx}~rzut|}wwu|vqx{royu|s{qzvo|pxzxlvy}tvnwrppytw{vvp}{wtzpqtr|wo{wqrzyyyoq~tnwrw{tyysut{nnm~~tu{}vvzyr{uqqs}r}stukzn|xvr|t}~ynuy|tyzy~tu~r{u|xw}yuvzz{yrw|{ryponwpmtsylztusnyv{wsq|znow{orwrts{xsmvypztv}}~xqxxkzxw~xyrn~znvsgturtrtx{sxruzztzuxmvyxuyqmvtivywxqwxznlokqrzr~wz|x~tvizzuqrxw~|pry}|}qnstxotyt~yjpwnwo|{wm~y|kp{y|zu|uxv{rzv~wr|zrqujroxuxs}vtswlkwpvqov~rg|pwub|yuhvxvwo}rv|m}zhmetomxuknlvz~m{tpxtswqrwkwoprqyzllso}vmqoquu|ztv}xusjr~uswtrwxsmozn|xoxpnyrpoy~yrp}xsno{~yr|zrmzsqktt{sqqyop{twmrur{gwzytyrx}yvtsny}uwtx{rvvu|{uty{tt|uyszryv}|ttw~usrx}wwxtvss{sy}zozovyztxxuy~vrz|}qv}r{xuzvvv|xs{tmzw|o{vwtxut|~{zr|{yvvqp{x{|tst|srupvxzsst{xuqsxxutmvvyx}zpzwwzyzrozw}xqwxznzzypyruqwrs|vs}~}uouu}squs{~v|poqwzvxwtss{twyz{}ux~{pq{|vw|zwyw~x}|ur{xqwkrntu{zq|zw{{q|r|wupv}p{zsv|{{{z|twu{y{squuxuquy}surw{swvvsu|yvukzws{w~w||nzpwyrwwqtpnvpuwuvnrtu~r~kxo~wx}zzvowuypxv}ivuwqozrvrx{}vy{zqwvjy~~xnwnvrtxrww~yy~twntivvxz{pzwyon{qu}opvtrv|t}r~ovyxy|qtvqyr}zw{rrzx|ozv{ssz|ynqywjovt}~u}qy~vvzvsh~uxztvrmss~too{oumo{gspt{plxozutxtiuoqn|x}{syr{xt|wury|}uqzzq}ymw}ptv{yvwtxq~rw~v~xx{ujq{v{rpx~qkuy{y{}}uvt~rvq}tmpqwxu~v|sshjtwqt~m~|uzmvs{xw{wntos|nq|suvmlnmspqv|our||ixsxsoypvqvpxxryrzrqwxqvspnrq|tltptgqonykzuzputvpwv~wvqir}wwzrmtylw{~prumpywpsolv~{vtqdszwgxtxz}vomorojtrywn{rxfvwsxfxvv|lmr{xwxu|}ws{tyln{qqmt~|unsnuq}s~~pivj~rtv|v|~puz{dvml}osoqsivwquytfvzu|jtzuyzpqpvyoxtt}svvotp|ur{mrsz{nsu{}uumsxvlntivy~{ytut}~}y{|w{mr~{rtuypuu}hs}xtwsxyrxvnszizmqtst}syrxvroozvwpvtxuuqzxsws{osy{um~uwy|vvo{yxiuj|qxnttqruo{sy|qsyvyvxww~z}~yyxvwrznynwzhy{yutl|umytru~su|zwtn~wzzsxtywzrtxoxvz}zs|tto~us|zrzztzz|swu{nwy~cuowo}y|}umzu~ou}nr{nzw}x|z|xyvjtu~{ov|r{xxosvsy{|w|}wpz|}z{u|rlvu{uw|vn{~~huwt{|y|xw{ptuxuxx{tzvp|smn|usnpp}pynwywxrxsv|vw{}suvxwuxysyxtxropv~k~}x|tvxo}us{v}mmutr{pv{xwtmuy~synuonl|zyw}wu}sov|ytxrttt}{oqv|zrtw|z|{rq{votwkuqtsrrxx|yxtz|tu~wyvxtsz{uu|olrq|u|zouvwuv|vpx|sxvrvtuzty{utiwni|q|{nuxxvxz}tj{yp{trm|uz}ovpqy}||rnoyurkzuiz|sp~z{v}y}vrqqvxzvvxy|xrrt{t|zswyspov|rssq~hxryq|wxwvswv~u~y{zzrnqprrz}rq}n|rtyspxxyxyt|{v~{yl{{w~vtvxxtvqyuzyxwuvjtxxy{pxl{tts|{qnpuuowzv~}}pxtqy}ymskutnqvvrxoztxwrxyuywsp}t{yv{zwu|~rvxvqs|}uppozzq|wq|wtx}|srv}}xttr|z}nuy{zsxpt}y{tvyumu|oxx|uur{smtnrywsqxsy|orun{s|t{{muyx{ssyyzsxyq~t{jwwwrwcv{u~rx|{pssrwptop{nwxwsnzzwxv~rx}wwhmwnorotvu~uvu{p{lpt~vszx|zx|{pnvtyrq}zpmzxlxwxrzq}stjxulusyszlz|s}m|lwsxxmzoulz}rqozuxdyv~ywypyrrzp{tunfoxxktuhsp_srwml}|x|nvyqtkrwrqotruvszryyxrwkvm|}q{vj{||yrqtvptquqt`kyyovjy~ssthznx|vnvzzx|zpsxwuczvyvrq|vsyyswmqu~riu|jztqr~}rq{sr}ss|~}rm^uwusgpy|wr{ky|vzrrt}pw{qzmnxrzzpvzxxr{wnquvwvzwy}uvrvx{q}}zuuwvwrrrx|{pp~v|{q{u{{uyn{t~u|ux}x}txxx{zz|xzwo~yyuquyv{yttww~}o|sx}uqrtww|}~{{zzyy}yuj}}}xvsv{ur~n|prz|}ow}v{s{v}qp{sx}ts{wuzz~tmzzz}ur{ozxsuuw}vuvuo}wxmmvk}s~xwwvzz{}zs{t~qyv}xq{zzzvys~t|wymwwwxx|k}{pyrxz|uwu{|qv{rzv{|suyqt{v{zvqpwxu|yzqq~oxty~tp~}oul}~pyq}vqs{uu||w{yqvxzsrov}ztxvt|qtxpt~t{t}xrytz~qyytik~upqzxu}zw{{zh{p|r}u|rzg}|~qt|vvvq{x{ysqyz|u|q{}rosh|||luvxxxlq|t{znvrsusywuu{qyuykswszn{rzy|wyp{|wly|xzwy~yysnzv}wqsuxpxwsspqxrpslu|wmuwx{{}~zqyovzxroyrx{v~w{uuyyzwtuhztjyoty}sp~u|y{pxzl}yyxsw}tqqjwxtvsvr{s~ozwhhuuvxvoztzvs{}plu~nxu{zt|mtsqqlt}xw~yykoujuyyzr{lmswzwzuzuyrw~|or|y~qryxts|{yytmu{yuxptx|~{wufqio}o}ktvoftnwyu{ywsoxwmp{hlumx|xyyryts~{iktvv|yr}zjrxvw|wqusws}w|ptkywxrpqu{vrrn{wpry|oyuvpuq{x~vozw|xn{z}~}f}xtwynnql|ytztpzos|untslyo{uyklxyvc{|}sr{zzupxo{vpnu~putxvwy}vswvttx{qpxqwyqsr{svt}trystt{wzpyvpzvrwsxtttwxvxv}lx|ymmsq|w{o~yw|q}wxtuq{{pm{ymzr}yqwyrtuskxl{wzupm~u}nt}~{qtywxoxussvttsvvouuqwuxwuzxu~xxw}wuvy|wtnzsyxzv}tv|tux{s~w|t{ptnzn|txsxz{s{}w{{ttyxr{y{p||vx~wnrpyxzy}pvxvyxqxjp|u{q{zwys|yty|ssvyxwx|zyurv|x|xxwvx{{xxuvr|u{wyvw~xx{u|x|vrwqyvn}pztuymsyvyouzrvozztwn|tpv}murptyursqzvwur|}uzww}vzt{x{r|wzvy}~zz}rqrxw}vvruruvwrtyqhqtoxvttr}rvoysnzqifpwtrtoqurxv{tymxw~ypsrwlvxv{v|zlpu{yus~wtt{wwvwx~{zshtvyqqxmxopxyrmuwxsx{zrxvyrnqzrnhvyz{qxu~zspzv{uu~|~xs~zuzwwntu|wvkpy|wx|tu|}v~t~o{}}r{|vyxurvy{wvxny~p|{{v}xn~t|yvnxyyvuvvykvzy{vy{mwuxr}~ws{jyo{~wzuprxm|rty{vw_}x}u{{v{|szopxmsvs}|vgwxuzxvx{uuysyvyr|wuqrvyuqn{uw|szrxszvsyqwxuyzy}{yu~xzuz}vwyx~xnu|pz}yz{|yq{yvryusqtysyus{|vv~stt|xwv}{svwyurqx~vsx~ttqy{toworwyx{tns||srux~uswxy}v~tyr|pyl}twrwl~xuxvzpyxvv{|sv{uyzntvpxxru}w}uml}oz}yuwx~kwrwpw|pzzxm|xosvzx~q|yptvyuy~twwns{ussrwwnsnz}nj~q|nu|}qtqzvwp}ntsvnv|}xuzrz|nttm{qzvxrpw|swp|wyxw|y|x|ovqs|vqqts{|yn{q|tu{vzxswn{p}t|s{jhz{sw{op}zvxkzpktwsxz|yrrvvwpxuwzw}hksyl|tytpnw~rk~{t{qqtuwusyoywptyrmoyoz~wy|rvworpv|mztvxmupp}mxstwn{rzyyvyx~tkqv|qs}zy{w}~ho~pwu|{rqioyoow~~nwryrvvxsurpwwrktop|vtz~oxwuy}ryqx|ot{tv~wvy}{o}yyvprz}ur}zm~~urz|vmsvtstxtwv}wvxusqwrwyxm}szu|twz}}v{v|}wmruk}wwovrt}|sxttwwuquqvw~qtwmqx{}usrqmyx~{vz{yyx~qn{|zzuwur{zzw{qvzyxzxww}xxqvo~lz|vu{zwn{zxuzsqnm|t{qzyyspslusw{wyy{xqkwxpvxyp||zztroux}wwpowsro{|ovnrzrswtq}ptx|tp|xqtzz~}t|owuzx|wvxymvy|zm{ko}xrs|svk}qvqwom~trstyzq~rvuxqupys~qvqt|qwzwx~zvwwvs}znzk~zssymg{wprpprshswykhvss{xtqornrqoz~{ttro{ktsxryurp}rqurozuyznot~wtyvxsnwwlpvwsk~|z~pkovmhvvrq{ruwvnzru{svrqlutt|xvvnrsqos{y{wtxrrsmrtnxmy{xwypyow}rttrnqswm{zuvwxx~|qpunt|vhvxuyigxxqzwruz~z{yq{tpxyzlutwqvk{lxymjvz{uruxupqthszitnpvppxq{mlsv}utrvyixxw~wqvwto~iwf{fxvt|wup|szmssorrmrwp|tzrxr|zy}yov|sztuyxmiztsrlv|y~wspmxwvzlyrtqvyyyqzwu{}wql{rvrto|yszmxytlrvuvpwtxt~wyr~yvnwyt|wtx{s}wrwuw}t|xs{{uuvssyyqw{vup{|~}}ynrwsm}q{}sqriwtumzyst}szqwzpxqt~owrwysrrxvxuwsxt{pwmrpwjwzvpy}wvxqzwzs{wtw{{|uu{~wy{qzppxw{|}nutxzxzsunz{xuuvynzywvy{vrwnuo{yvqxmw{uqux{zquouz{xzqycwzzxzlsyt|~wwrooyxqzymw|qqvumrq}~ukrotwoytzqp}y}~opsuopuxnywvuwzyzwq{{ovsszmwvsqsvluorypwu{tsrvrstx|vzuwtpvxp~|y{o|qzwyy{s~wzstwu{xnx{qro|prvx{tuvut}xrs}x|ytp{urq{~xxlswxqxw|kzv|xt{~zztzzpry{zqzywvp{xt{yuyt|upypvvt}totrwu}|ruy}yuwxvx|tvyv|tzszvtvm}yqxtrxouyw}q{vu}wuvxqso~x|w{y}xtyyrt~spwu{suuyxsxtwvz{vxzrx}wvussxwszyw}y}ytv{xxx}y~z|}txwyqzvzsuu|vs{yrqworxxxywxr{{ust|qry{|wwssmtz|uvxxyw~xsv~uvv~zz}uz|tsywwutuyvvzw~pyut{zzyw}{|utquwry||zrwturvt{|yzpv{|u{wyvx~~ugw{sq~fw`~rztp{snvn}x|}|{u`o|snt}buskztsp}zusoybx|uufo|uswvp{ln~z{sqt}zlxgqu|}{x}uwrs|fvtnm|x|vxyyty{uqonxutr^|mqquvmoq}qqttzjgzdouk{vtx~vqxrp{kngqxy|qnzokz|qsy{x}~v}|ttztw~try|wtxy~~yy{vrzfywtswz{syyxw~{zs~wtxow}ztwu|xywyt||yvyvw}kvywsvwxx|yr{}pzxy}ousxtt|v|sszuwvv|yvsoxypvsymxk{qyuv{yzvpw{|tvw|zlx{xw}}zypruzz}~qwysxrv~vvvuwwzj~~rnnuyzwsxxxrty|zwvtp|wzw{l}xuv~zptr{|z|j~uz{ows~tu~~nztmp{yvu~vw{|wuv|sutzx{riyu~vvzly{yt{turo}wryvvwuz|tsyysttwwyz~t}tqxvoqposvmvop|wtur~~~pyzoosuzrq}yyqpptwnyzy~u|stutw{|s|{t~{vqro}lyzp~pruy{pw||{xzusz{xlzxwf}{{nz{rqqy|k}qyqx|}tvdvywvnsulyvsp~vwywzt}|xsp{|{voiymxvrtwyts~vz}|vuwwvpwzz}tusq|mrsqzw~~u|us|yxzxv}sqwvym|vxu|xwtv|rtylsxpm{zs|wxzzzpk}opyjzzxrttqs|otntt}q}xusyx}q}yxuwwwrrvwvyxsozwulumyntstp{pzyruyzzs~tyzd|iouw{ux~xvw}mvwrnz~xpqw{vxovxppq}jwpy|zvy~wyqv{zvqwsrtvwy{zusswqaxozrxsqoqjz|uyo{qrsppymprqxzmzuzqzmpyvmqnv~yyy{~my~~xutu{f~~p{xqovyozqz}{yrwu}y~wz}qlsxpwmup|mk~w|{unmm{xuzytxqy|{wqvzvwqxsqsztvz}wqmlnuypvptsxvuz}owy~|pqq{|tu|z~wzzynpxwsssttspwy{yqu}mzpw{sxtsyxo}ozs{txxtrvuzrwpwunswyt{pzowswtnqyrsqysrw|oxxq|r{svwxvwuzsvs|tx}vuwvvstxsun{tntwxzuu{wztusunwqowtquprsu{ur{svwy|x{upvp{wt|sot|nuwp{vpwr}rwyrusuxxx{pttyzx}qtvzwzuqz}n{ouuxqxvvrn}twyxvsv~z|svqvvyoxzxuzyxoxyx{wu{toutzxvss|uuwyutrxyvyztqu{y|rzhs~wuzqtytws{|v|swxuuvw{|ysuv}y|zrquu~yys{uqurzz~ysx}zvzzvw}wvwqrwpxopts{luytvqtwqvp{yvquuuuyotxtutxe}oss{vx{~vwyrpztuzqzzulriww{kuzvzjpokut{np{wyzt~qi{{rupx|mywtuvzs~tuy{~vqvp}z{wwh|z{qxz~t{rxzzuzuxzqwnvsn~||zzyrxpmsn|yu|sv}x~zusrowtt}{~|uu~unu|yhkqzws{|tupl~qvwrvvwtttrpvy}ir|zwwtqvvxyztu{qzsy}vvzwnzyxm}yvq}npnx{|~ts~ut|uzvux}uwxuy~}m|r~yttxy}rp|{wysqy{ouxoxn{w}ux}|qw}tyrxtoyz~uqnxxvzvu~~vuqzvzuwy|xzzvi{sstzvwyznvvq|}|rj}nvtyqoqsusysjtsu}xuvdv~oqy{gxivsxwsviovspqwu}wp{yqtoupuv{vxot|p~wcsrvz|tr~xxx{vwbrz}wvvz}twuxzqpyy~x{xxq{vuxzsqoypwvtlwqv|ovzrtuwuzr|uutpvwlyxuuntiz~z|}p{{zvjrtz{v||ntpq~sk~zyzpjtszwrxvotmw_yzzuvyxuqozmvsw|uurqvswi{mmvtw~yxwrsovjur{hwtpqty{y{euyqk~xx}kyisvwrjrv|v|sosv~s}vnz}piyys}zyo|w{yxrujryozvkyqz{m~r|st|rs}vrnwuvxmrstquxvotmrttyzl}lss|q}sw|||vwl~tqsuwrszww{|ssywwrzn|}u~rm}~xxuvzxqm|tqrxvttzx|{qzxrw{|~uyw{yyzszlvyzs|rnwzqrx{|zu}~lv|s}j~}r|oo}xyuxusrw{vwty|wttt}vtqx{{xvwzmytmrztytoxuvsxyyxrzruw|~wtqrxvo}svtrxxrqxxpnt~qz}sv|vsttusx}{tnpwq}mqrwtxk{ovuu|r{xysp~zvvrzxxvytyvv|v{{qw|zrst{yzuzns{wzuorwssuqusvpqtwspolqv|qtww~twplyprqv|w|sx{|pxtv{xxuwvpv|xmq|wvyy{m|}~vsqo}vzsx}vy~ux|oyp}sx{vt|y|}{q~szyurxnyzx}utrsyt{ky}tsxrvmzttyszxyss|zyzs}z||qqv|p~usytttrxrytvwzwvpu}w~~~rxswt~qxt}x{xzuwszsy{qswwsxwkxww{{wxyqxv~tzz}qwysr|qojv{vyovrn{y{}~z|llyrwyszzpmoy~wy{zqky{t|y}x{wwsyvsvyqsvi}u{uoslxvnqqrxztx{ppvvw|tvultp{~{osq|wrjvrrwwwtrs{trksrgzlzs|lnrsxsk{{xt}r}zro{u|xzoiypwxx}}wzvsyrt~yq|{{w{{}ut}{twxuzsxuyr{zy{}sz{wxzz~stzw~vwzxr|{y|xwrqwv}t~ztt{w~{txz{vvxpwynx{ryrxrvjzx}uyryrsw{{{zwuut}uvwtwtwsyupw~{p|wzryw}y|yuuvuwzyxow|yv|otroszzsxrtzz{q~skzx~ty}s~o{ttsspyuvrxy~s{r{{ry}q{|{ppxxuwpwm{uolv}vos|nwvxwyp|zx}v}qyvxvv{|st|ttztptyhzsst}uzxw~t~x|woxvvxzzpzxy{wqvru~zwywup|zsupoxzqyvvzqpywwutx~zusupsq|tqs{ysur|vwww|xxuyqxx{j{u{~w{zy|xmtuyyv}kwwv{lzyv{m{rwusnpwwpu{x|wouxzrt}zwuxw}su{spvwv|m|v~uyrsutx{vzvqpprrqusy~{ys|~{{xvwup|zyxrxvrywxv|wz{sstvzu{tvx}xy{~wqzu}wruuoz{w|tuvq{zwwnwxwu|r{xuuxqnynzxwylwqr}uyxtvywpkuytpyv{{otyvuuzyqv{}|~{tk}{suyxqz~sww{ww~ux{ipqvw{u}voyrsu}{rtuxmyq}vvq}j}|xu{uzv{vx{v}{suo{zsu}zg}osutzwwv{xxyqzvp{|rrwwwvyv~w~yqrtyyuuqpwsnymsouzv~svju}wtlrwqqv{z~s{wu{qnx{wqty}woqywuv||v~zzkzqzwov|sxot|vytupy}tuwr}yuvytyvmtjsv}muktnp}xs{xq|||q~u|twqqtmvr}vzzzymyyxosusys}su~zwqtzq}x|rrmyue}mzlv{llo~yuwvvtvrrwzqomx|tvlyq|srywy}w|wxowtoxq|z{{yo}sq|s}vzvvqttzvwswyxo~zxvwzvwsyktr}xvwsvyxq}xvu|ypnkjg|xyyvo{wyrngxyrrnrzv}ynrxz~voy}y|yxts}yos~ywuqsy}q~uy{zpuxpw~o~pitq{|wtnm~qb}yz}ztsvw{wyuys|uwpzwtxszuyw}|lu|~us{v}xxwytu~vxwzzqz{yu{tpxq}oywxssutzwvuwxmwvxx~vv}wuzuwpz{sttx{vvtrvppyu}}uzwwy{yywxys{}tk~~yvz}wxwyww|s{twuwpt{zwwz{{ywrvxyyuqt{wxzrsvzx|ryzvpptuszrlwxwypuk{xsmn|k}yxzpv}uzf{zi~pyrsvg~wrz~ry{qs}wpy~xn}txuxsyw}r|tywqnnr}pj~zk{rzw{vqmz{szrzp{{zkuqpxzkiyuzylvurxv|u}rzxxw{zxtszw}}vy~}wqyl|u{}}xxp{s}quvzvzst|tz}uw{zrvwuzuwn|vturuty{~yxq{xuzys}srxzzu|yw{ustuw~r{|yyv|zw|zympury{t{nyzw{vry{{|wuz|uorx~py~{u{~|yywzpwuzvsvy~wquxuwvum|vryrzwwyv|yxs}|xswptvtoryxy||uzyurttyvx}pyuyvvxwvw~m~snsutt{v~~o|zzquztvqwolwu{~tsxzwxvuuqz{|vuhqxytvrxxntt{w}vuyuyurrt{vzyps~twwxmrvvp{v{uy~{wwu{wyuovqrrzvpyswunw|yttn~vwunuvzwq~zzoyzopr}uwxlywu~pr~p}ur}zqyvyquz|{pkrsygw{uoyysryxxwxrw||xstv{zw{~tq~zuzn~y|~y{stxvwrz}tnzzvtw|wxuzvw}xuyttxww~r~xwuyuow|yxptqvis}~{xwpstzs}{ztoyys{r}z~nuuwmwytpsiousqspvvxq~trv~l{wkvuzlwxwrt{swpsxvwy}wuwyy|zruxwpn~kuv}yyq}utxx{}qzxsy|zw|vqz{trytsuusw|urxuzlqqsxxww{ytry|tsvpouwxr{xthq|q~~zpt|qv}xt}r~vw~ooopwvz|psrwturwsx|vzxwy~|o{|zv}yyv~yqz~zwn~xtttvkxiwp|x|qntvsuvzxwu}uyqw|p}ywrpxtssssx{yty{xto{vzyzy}xl{tn|s{yzzrtpj~z~uuwwymtyytsoyvyu|~u|pzv}tq~zruuptyrsuzrxrz{~}~tpwv{yzt~|}wy{zryts~zsxnuwwpu{xw{y{yrswxkvyvxt}x|lrxrzrmypwumpvsxxy}{}r|wwsyplsxvv}qywpzm{o{wzlrzunsxruwq|sovot~{|{{zvsrp|}~qt{{vxszqutwrtw{txwu|yrxr~{~qmxyu{vysptz||qmtywo}ww{qxpzurpiu}sxyqvvsrxvwxqsxwzxppmmw{r~x{mw}r}t~v}ptz}pzkyypsus~x}n|syt}vuuy{wxukvkztzx}oso~~wsz{uvttx{ywyr|oupv~j}ynzvwzt{vu{tyxvooxxwqntpvnrvq}v~{~kqvmntuw|r~qrwvqpytuz{{v{{xsposvpnkrx|opxn|uzyq|yk{uuk}vsmrnqxrx|nqwl{sxprnw{v~z{xuwv{|s~xqz|}wx|twtousovs|vvytxwtvw|yvx}suvtwu{qxyuwqwvxxwqtnz{z{|wtz{ty|ssvyszuxwzxyos}~zwout~vnvzwvtt|zxtqxyyzur~ww{y|t~|xw~pvuz|z|zwvs|vwywpt|tw|wott~yvrpq{{vxyz{l|t~wsw}wtq~{q{x}hpvjjx|xqs}wmklxprxwk{zskzyl|suvtnsvsys{ze}zqzuus}ulnwwo{|v|rnzu~ppxvpwz~sxxyvzpxu|~nqoqynvsotyquviyxwq{zptwpqvxw|zyqv|xowz{~qvytt|vxvtmxu{utvwlxwoorwtvtxnzwqy~wywyzvzswt{wvws|uux|{g}x~zunxs{xwxuvzuyt{}qsuuyxuo}szmy|wzuuyvxxsxwznxvyy|y}z}txspsoz~tls}wuyxt}xmrytpv}wxwwwxx{uw{u~p~~yuuzwvzuyu}yxwsys~vt{xvxxzy~xuvtyzvvux{wxyru{v{{pwwvp}s|mtzs~vzdq{|wusuorlw{k}mwuusvrw{yqsnvy|iutv}yvztuz~||pzvsu}}tuvx~r{~turssp|xwhwrs}zyrwyk{rx|vsvuvy~|vywwvyqxw|~tvyuvsxrt{wsz}{q~a}zmwsmlxzwvqtww{ulxwtsiusoo~tlyxpkvm~rxvvyw~ssk{xsvzqp|uqm}yyxjy{spktwmxwqv|xwzytrnuxus|wx~yqx~uu~|u|rnuuvm{xvv|~xnnqtuvvvinswsmyqvvtr~nzvuz|nwsyu}}zpuyv{{pyzmt~|~yvlqxzmx{puwxyws|rlqq{ovxopyv|e}un}ryxsvplpvyxuzsuz~ut}xswvvto~p|pp}}{suyo~s{yvswz~uq}}my~pyzu|x{|wossyztxnwsszrzgw{of~sz~ot}yvrgst{qt{sqtv|txvwrtsxs{tqsypx}zoy{zw{svjszzutj~zv|ntvptr|y|{ttukqzrsxzzmpvxsnt{}|wspx}os{qvxzvpsxyy|zyus~}pt|vmvg~uuw}|z}}t~|zwv{xpqrr|{{wcuzturzqz}ywurol{utut|shzpzwuw~svzw}oxxzomzv}muwuxy|w}ztzuxtzyuuwuswv|~vx~{rsqqwv~yqttzon{x{xusytmnuxuqqrvw||vwpsmyqwrt}z{{sosrqyvzx{u{{wtv~xqr|pkxruv|ooy{z|srvzyvvs{{uroxtwrz{uuw{ytusqzzvu|uovx{umq|uku~pv|nq|wxssz}qiz|pvx{zsoyrot~omo|ymstonvzz{{xlp}o{|p}}uxnwqpy}oxys|rzvtw{~u{vyyyvqyx{~zsxwu}wwuz{xzsorxvrxrxos}vzrtmpvq~sp{yx||zxqwu~qyxszwuusqspxxy|w~||n~ux|w|u|xuvwwxyuvwvuvzrtt}yw|rzox{}ruw{vsqtynv{zwyu}rvyyt|xqztqz}wxwst|wxzq{m{x|t|{~nv|yys{u~kyx{z|{vtnwywvpwyu|wuwtu~nrw}sqoywtuoozzotpsu{z{wtx}xs~wypuzvdt{|x|xpzruoy|ymm}w|i}wv~xuvwtwxqpyvxxy}tnsmuoz}vmsjmwwzwxuzw|sr{vwqwtulyws|ysq|{wsuzzmxzyys}z|ys{yy}vp~~y~{wr|{rx|utsr{zztyywf}zzvvrv|vvwv{u~zrux{yz|xu||z|jv|wuzz|xy{v}wz{q~~v~z|yzvvsux|y~|y|ltyzx~yn}z|}~wx|{}~z{|z|{y}|rryu{}tovszuxov}rnhrvvpxtzsohxeswsjr}qxky~uv~to}pnmxvxxrxwqswwvzzvzyk~ymrsxrstrs|uyxvutvyv}yyp}|zw~v|vitiwxqvrwltwwxtqzrtzwywqtpxxsvwsxkqpztryttsw{~qrypr|l{wxozs{yorvrxq{tnynvswv|z{k~zus}xv~qr{z~zz~ysxls[|wwyvg|zpsv}stuwyv|~s}vxuwwqmvtywtsuoqoysxrrxqywunlquu|u{bsuxryqy{v{nslxurl{uy}v~yunn}ltzz~|nsnus{m|ltdvz}tvuxwpcyz|qvuyqhy}}vztz}s{}vhtw{ss{~|pxyy~vxzwp{zruyuwwn|vwvow{~v}{wwswuzvyywmnyvst|yur}qturqyvfzwxt{vvxxzxwjzuwr|utyx}wxxytx{}s|q|q|nyn{rqoxvvywz|uxu~uzz|wutrqo|yoqyyxtz{z|uqyits{ypz{xm|yz||vyu{|ox|uvrx{txpvyru{wqvx|mtnuxrnp}qxyzzs{{qq|uwytptx{zr|rjnwqyxrxyrw}{k|p|x{yvrrjsvulx|kxorttxxvtw}r{o}}~yzymt}yoqmw|{pt~t|~~s{rrlo|vnzzsx{wv}~qy|xlqurq~|qtvznxysfyt~w|}vzztn~{ouqmvqwoprrpp~o~qxrpttqzoww{wuuvup~xw~mutypx}t{t|rzypwu}q{xnqwywnsu{pyuuuwykxqmzvxxswv{x~mzyw{|vq{z{|zz}~|usvx|uyv~{|puxxxpmyryxup||pp{tutxxwxtthtt}q}gnk~zy}soxcxnb}|yw{znqppwx{kogfxpru{lctkes|m}{q}oqor}vssusngosutjjunzfhj|m}|jwkyjpxs{hpgxuznki|_wxso|x}uusvzc}^lnykp{iqkqwtrn{u}Qpzgmwikuvuq}imd{wiizr}do|zytjq{qkpxvskgxqrlz{{xsw}urqzstvnruuzxvsx|uhzvnuown|qwiwvus{wwvpy|xzu}rnzytvnzssvnr}zwx~nxrn{nytwsruux}{zt|rustxpy~uzpn}tz~otplm|mnyrzs{oy~qqvssq}rpzxn|zw|tx{xwzoqvtv{qyzxnxv|jyptxqvyyn}q{usz}s}|~}v|}lw|qr}xtxxxwv|z{vq{{w{u~xuuqqxzkxs}zqvyv~xzsvyytsqtwtpn~w|pysssqzwuqwwvqr{sxqoxywwwky{uuwy~{ru~w~n|yttqtr~{thc|s{v|qwsynxstx|qtwv~utou|uy|syvoyz{zuzwvvvy{ntqxzyuspxtzr~v{yj|{xwzvzssxxxvvvwzyqvwvy{}p~}|vwu|y|uys{vqmqyq{yyxsxnrtqsius}woxsqvurvps{~twttvz{v~wrsxxwnoqtzw{ntpw{tw}yzxt{{opplytrwwxwzty}ospozqkywv~~krrmxwiuxurtsnvwvwwzkyxwwzzry}||ps|x|pmznzynhqxvnqnxqvvw}tstxx||vwwfzorrzxvwxr{xprzyy|sq}tm}yysuzovw{ry~vss{r}qq}tt}n{wxwqvzy||m~wum{svprwukms{vrxxtr{~no}tpvru|{swyy}ytsqupljun}sq|vxwvz|txx}xsz{x|rtrp|uvtutyttrt|hrv~utns|vvyxu|r{zxouxut|r|xvr~qqmxzmovppu}kt{p}}n|yxsvv|vzp~v{p|vouxy~~szz}vzow}}yytyosqr~{sttxw|wy~wv{v|vyvoyzstyqv|xyt{u}yzwwqn{~u~psr~vrysx{qwwwxtotsytwtuw{t~zwx{ytu|uzyrwqvqvxxtqvpqu|}sjxv{{vvr}y|ywzuy{uxqv{xusspn{vqwtv|~tu}ypsvprz}t{zzzumpvu~svysttwr{wzowr{x|~q~pzy{|uvyx}yysyrzosrt{vuuuzkt{~t~wxzt{vxvxzzxsyyyvsvuv~||turuy|ytz}tww}ryrtq|ysr~x}~txwuzyv~}|zzvqp~{|wsruwzw{{v{|zz~wxvvupmovxyqxvyovzutwvvr}yrsr|ut|xuyyxztxqwtx}rzxtuvoz{wsxwvu|qwwoxswvvvvz{wsvxz{x~vurw|{unzvosyzhwnx|uqu|yqstyrwxyt|ylzsspp{wyurszupuzpukuuyzhj~rxxp|xwsmywwvuyjv{|pxvtvmvtz|rxswvsstxsvztqw{nt{rwxw~ntyqwq{lnzvnrs}{jj{wotvqmxrus{rl}|wzxuzmz}tv{wyuxqqmo}|k|unrqyxvtxzznovuxwpyv|~rzv}txoox~urx~uqqswq{tv~vztth{{mjvtt}rzpq}|vnx~xt|utz~z{{|p}rruujnt}ys|~{~zx}yzzovxxooznvwizpnux|ur}stowt}~~{qoslstxtypwwstuy}|fuqtrlvwxzxpouvusnvu|z}trpulvusuz|z|q~vpoyuszxvyvwtwwpwh{wqw|xsuu{ssqwwx{ott}xpuilp~xwvoqwlwowq}us~sszg|tz{v{ksqyywtpquuw{{rv|}jttzt}tuxy}|myynus~q|vtxs}{|ww{zxuzqwlypurxrtyy|tuxxw|w~typp{|pvuqu{~|||rvvnywrtxqpvywj}tzwvyyuqm|mvtxq|{w|wxnz|t|rytu~vtsxmwwvxqkw|u{wxvrzq{wuvtktvwzxxswowpwtv~~vnurvxrntvtxxvqkug~tuvpx{zymrz}vupqvruuvkdmozhxpv|v}l}|hn|vtpvysrqyttx}zuztv{vv|vxrzuwv~xuzqyv{}sx{}x}uuyr}qyo~w{ytswuwyyvyutxyus{vtqzwqwwpy||~x{pzy~nx{u{~pm{zy{z|wrxzrvy{vturtxu{npxurxuxv{ysv}{~uzu|zvxysvw{tsupw|xrvotjww}|x{vy~twzpxu{{wsxsuvzzzw|zzvvvouwzvzwpx}yuz|vxx{~r{u{txtspvzo{|uu|v~u}{xurt{su{stoswqv{uxwvzv|yrzxhu|q{wyuwx{nv|zxvtrpzxrpsuywsyxuzuwpvwz|pyxrpop{|zuturxy}uvvmtz{uyvz|}lvy|uuzytt~z{xxpxtvnyj}vfvtwwxyzsjs{n{sgvtuvuxnk~rnpq}suz{ztnwwxwvy{xsyuzwu}|xjvzxo|sxdrwy{ypujflohxvnpul|wpywwot{rsuwsqo~zusxpvy}r~}w|xq{uonqvukyu|n{s}zk}wrs{kl||vuuvrmrzsprxle~{wmpppinnjnom|{syrwsxz{{tn{pzxpz}sqnqutzvst}|q}v~x{txyvz{pospn}p|wzqwzuvxwuuqzt{trvzttt{nvmpypyx~|twvvusixxtzwyztyuxsxwzr~mrtu~nq}v}ts{t{}rrvynvkrzyzyyurrhuvvkpssxlsuxzvylxe}zr|h|xxzvt|vwovvwxv{uw{vys~y{tt{xz~~}|y{~|wqyzsrzyz|~xrww|ymyzrstzvy|nyttxwzpzwv|{~syyo|xo{sszsxvwq~xs{~txtty}}{twsqvttsw}xty{t}us{yo|yvyrt{vtwu{xvvtvzzuus{qywywyz{sx~swyuv{|rzx{suswytxxzqvutvrsvxxixpfjsqnrysw~|}xl{~trtzr{xwvuxptqstuwmv}zouxytoqisy~|twurw}v}oojqn}xwrmwwvuso|xywyuuovy{su|sq|sx{zwxsxxvsom{{wxt}upryxo|~o}tv}tzvwtuyw~yysyxwoqu{zsqyuiqwz|t{p{yvkyxsxtvzvptx|x|zzx|x{u}}vwylzvtzww{}y~ts|wvuvxrsxyry~}z{siyw}rqvtspx~}qu~nt{ixqq{z|}}xt|tsuruwjlvux}pvtrv|uqpss|wzzw}vsp|xxy}xpt~ru{zxytwrqtyxxvxstvqwvtowuquttxpwztyu{uzwttwxtlyov{xlqvxyqvv}yxzu~xyvtowqu|xxuwzqxz{xtvu~uyvxrywqxmyyxwuwswtto}}xxuyy|utzuvxqvorzzw|{wv{|tyz}sot}wzyqmwyu|{uwtsztvvrpz|~tvspyzss{uzwus{nxpyyrussmqyuxyzutltpttz|~wntr~y~suwsxx~~r{yvyrzoxpruonut{pz|qxtnzuyn{}muuov~zx}|ut{nzokuqp{v{swttsvzoxtvny~}{x|ywvzv~}smztvpyptrzvrv{vs{lttxpupysxxzlxu}yvsve{v{lwt{|y{t||vk}{zyxvzuvxzxmnxtpkuo|uovuznrnwxow}ry|vqx~vovoqxivluvx~uxruuqu{rrznkzvy|zq~xnp{{~o|{j{xru}{{xsy~zrp{uwo{vtwvztujxm|wu|nxvt{txqzsuqpl}{uzqxn}tr}uz~{uutrvyy{l{rvyrvrxrt{hszuwpyxpvrut~zr{y{ruzzwtuzr|y}zvt|wmlrzu}uyvwojpozz{uzsx~ryxomvtxxw|vu~rqyvu|~r}vl~uvl{}z|q{wzwr~uhppwx|tyvszq}tvpnmpxuy}ts~yytv}u{zsuuv~yyyp{kkgzytzsrtgzkoshwnzo|osqylslcyyvr|osmlsn|sjrcerpqovwxrvqlt^mly~vugqr}nusknh{pfpoystsq{gytjvpxnx{{p}nxsqsuxugkfqyd{p{pwylnmup|yq}gyrhpusqpxmllzkojyjfhywoxuwoy{um|mwt|itryy{tdntihskksxyvvx~upvwq{u}|rvsstzwyx|xpx{rxwy{w}}wr|zrsrvstt}s{t}|{{xvtossswywvxy{xstyu}vvzuw|wxsr{txvuzxxyxnxy|z}uvrv}v|rv{yxytxtrqwxtxv||xyxt~|xwwx}ttwqxq||{xu~utvvwpu||yzxtwly{yyxurrvwz{xuvtzqtwqsvzt|wxujt{wwrrny}p|vrttuzvvyzywwsvzurssw{sso}{yvu|vwwztvr~x~{ysvwstvpvvxywtv}w|rsxvq{xvtwxwx~srrw{{w~lnujvvtt|zvvoyusttxt{tsq{wptwx}wv}x}sqo~|wkwyyuxzmv|zwtpxwqs}vusvwz}wxx~vttzsrvsqv}yt{ytvwtsnxzyxpvxw|szvuyyrzu}xu{rsur|w|uvusttvvytuxustzvw{sxt}xm{~yw{~y{yw}wwvu{yvuvuwsqrpxyxwzwv||z|sxxvyvxywwyovwyzvxtw}xquw{wzzyvysvxuxuxuvsr|xtustyv~k{wqrm{|y~nuu|nxqqiuwer~ztylzy}j||u|{|w{wpqswm}uq~w}vywunywvvvzomxzywwt}u}{puz}utpvpt|xuthtlrzumzzu}oxrssyy}|twqv{{z{}|ryx}uz{{|spy}z{louttuysmvz|{{ryuz|ssu|{x{izv}szznjnuxaswsiuql}~v~r`zsdfkxklwqmswhtsaxn|~~|iyspsvxnrqy~n{xqxxwoTum}|rkjp{tpl|uj{v_uv}npukyx{adqo}wosnzulzsgZ~n^~zguuwukusm|~~st{soz~~tmt}ujostxr|wuwtv}z{yq}pzwvx{vzqqsyqvqzvsxryu}rzvxv{~ozwzrw|}z{}wvqwos~w{wwxtyw{vvvswuxqzvp|uwz~qvwyvxzvvs~y|uxtvz|t~~xvqz|xy|~wtvr{tutusszy{stzrzvyrvrpuvtptxuvuxq~zzrszztwwpymus}y|wu~q~w{xxzyo{qv}siuvsn|uqwz{pvgwizs{wvtnylyy|erw}yl{t{kxwuzmwqz}xus{sqtxpestvutznpw|t{ostvsqywmlv{|tymusplvxuypy}~mo{llnzv{vowzqzto~nrumyhzlqntowywux{xxqxnxw{yrtwqvhwy{|jsq|~votzxjqz{uzjz~z|}tswqnt~qxnzquyf|mwymsmu||s{zxsusth}prny}|psou|soqsqtp{vtzw~o|nujxx{ujg}yqyms{wxhksuxtvwxlp|xqturvtx~s{nn~xkmy~nyvuwwkzxktmsosb~yntqtu}vsl|stt}v|ztvqwjzkvsn}{nutxukuuxznymnuz{|qc~st}xxy~{wquvttt{{vv}pv}sxwzqtrqxrrzklhujtm|prvwwtnys{yzuty~srxy}xu{~p~x|zpsmwp}uq}xxtomvv|u}|{ptwyirz||xrtytouo}uvtxuuzwo|}wyxzy~pm{}rwuwhiusr~|z|znl~xzwtzrt}ptpqt}uuyptq||roswv~~umuuwrpusyrsxhpx~txnvr}ynsip|ynr|lonw{zrowpvyyxsr}touzunsnyt{vmtuwss{iqstyjwvry|~sywppqsvopwlwzrt|mo{y}{|yuz{susyv}vwuuxvpxqtrvyxuq{ot|ly|z{~wu~u}vxtx}sy}ty|zys|nxwyyoqysx~ts}rxqqvxipuozus}vvovn}kzsuuuisrvlx{ww}|p{v{yz}{z{x}zwxum}o}o|z{twrx~uwuw~xyxlnq|y|punoqp{xnp}|}kyvytlyssssmxzrpr}vzx|ygu~u{|kspwurzz~ytsvsy}z{p{vr{nw|ptwn{y~{v|w}}tu}xxuz{l|fn{|ym{urw|vzrwntoszvtoxzjwrzzty~px|yyz|v~|vs|xq{yvyr{~ntrntw{vwuv}qpswvxtrzoi|ssyqxssv~wtt{utvr~x}w}|{t{xzw|zyuu~wqp|ssxsu~v}wwr}{vtoy}utu{zv|w~ryvwo|syouprzwvxvxwptvyxxtyxrvzu{yuro|uztxwwyutvrzxtoxutxr|utrxvsuuwqqstywutuuxxu{yyzurwttrwzwuvuutuxpnz}~zt~z{ur}vyx}{w|vmlztny~tkq~ywyyutyuzoxxzwvxuuvwuv{yrvyzmxtz}p|nt|jw|v}{y{e~wpzoyzywy{q|U~nzmr~s~rtrwy~}y}~xy{t~o~ro~}xyv{zum}{xus~tpywxzo~vp}pz|hrrnyz{wu}suuzloqrwvyu}rz~rywquttxxpv|xwupqt}|uwpuxvsq}y~ntstvutt{wyyuyzuwsuvy}o{vmyxst|pk}tsrqo|ns~t}nnpzxqxx|ovwtuy|x{wqvqtq|w|p~{qpu{xqytsz{r{qv~ytl{}}untzvrtrrsyy{ozwtstzzrru{wyorqsyuvsus{prxrp|voruvoswojmxrvsx|u~tvwyvmzuuxrvyvotyrtvlytsyy|snyw~rsvzwjqs~ytl~|u|txv|s}zx|{yt|wxoszrs|rzvusqpwvtuuunwqvso|x|wwtvnivory~q~u|{{|{|yr|{z|s|quoxuqpjwrxzwwtvt|{v|zry|tytky{ypyxr~wiuyxp|yjm|~r~qtxqyrutj{zzw{xq~q|xowqv{rzzp{ytww~x{rps|ts~opwrm~x|qzuywiu|pzrp{vs{zt}rzktxupyyzt~sxvws|xxuxszyvottlufqzuxqpvwv~{wzy}{zyu|wzrwzmxuoox{xy{y~{m|koxu~{v}vu{tzrssyttxw{uyutsl}zrwuttvwyro~wqys{vrurspszpnvnu{swvutzty{xwxysvvtuvqqztqtxqqoyrurwtsvvuqvvvt{zvuqxvwyzvswxvoqz~vsx{r~uqtzkxtyo|sxvyx{vx{sxzqry}uvrywwvrzuo~y|y{w}rqqxsw}t|xzxwsqwynq{v|n{vwpz{wsqwrtwyr{|s~yzssrvr}v{q|usutuwyxttjz{usrsuts|yq{tusuwzz{vruuwrnisb}t{zxxjosnvty{xs~wu|o~|jvnsxst~ss{ryqn|vwy{urqixk|mru~p{qrlttsmo|wqzvu{uyy|{svn{{rz{zvgws}tzzwvxw{uxxt|vpqs{z|swytwp|y{xtur{ykr}pz}w{qx~wsxyou~|zrqwwovrn{rr~x{fpxww{uxzqmzk{vyxsrtuwwu|{~ykzwxzumljnus~tyux}usy}ow}|{qqpu~|x{wvjuuqopxlz{prrtsw}zj~zjr{vipeywtl}pxy}frvn{{tqw}mvvtur{yw}wzpsnspuw{ztzut~|{}wrfsswp~ru{l|rqy}rzxrqsmt|u{xzvnry{wtx~mmzrxmv|yq{zryzsswsqz~uoy}zsz}xrnq~n}rt~rzwxxzt{{|}zp~}}{rww{r{y}vtw~ww}uwsw|x~x|xzw}}vyszzvu{zqyzv}txzywqwp~xvzzvu|y}uvx{xpuqqytsn{{utyuyt~vzyswyv~v~spn|puxv{r~suyz}wurvw}snwt|t}{yxy~yw{yz}|u~vp||m{ykp|wwyvn{omytxkruo{mvwysouxwylu|}ts{tvny{pnvpvuwwwuyxxxoyruzx{|vzv|ruzpzwwtzxqwtq|zrntuoxww~vzz}ruxq{{~qzz{x{uqvzroxrsxrrxlrxo|x~uswuor{wzux|vpyx|zxz{}uwyxw}zuvvpn}w~t}q|xwuqz{|rptrz~pywuzyuxxntwy{qyr|trv{vzyv|tut|vumwyv}tsx|turxz}txxqzu{osuxwzvrxyx|yqvwuwxtrxr{zryut{v{tz~mxx}ptuw~{yxnyrzytysyvttvv{z|vry}zvvox~isx|v|yqrtvwzuvt}vxpxwztrvqtkxwsxsp|pu|s{uxyuj{oryvvuqxrt||~}usxzwsvo|tqxxtpnvwv|stz{ns{pxmr{novwzt{v{uu|ws~vxjvkw}q|qt}xvyysurtxqt{vrhz~vx{v{ozp|mn{v{pqyzzunw~zxujy{mstxyshlztuyvzonrztrtxurrxqnqll{r}w{mp|tpvtsysoqlvnssqvtzvyqzqmv~pwtqo~wt{m{x}qsr}yx{uqxyuv{{~w{|ynnss{xw{nvvywu~w~vr||yts}spssymz{wqnzrrluqywuyztiv~~xnwutqswoy|wyuwyqruqwx{xyxqsqx~ux{wrxp{s~zyzvtvusmuwpq{t|s~ovtzsxrtxsnxuruz{~uw{xrzyuvqo}vu{to{}yvy~u}ixwspzupry{wqzt}u~rq{rx}wzrvus||xtnrw{v{wxpzxwwvwrvtvxuyyy|zy|{uvuv{sts||y|zwzvw{svwq{yvvp~zwy{w}uzxs~uypv~qtlz|uxpwwtuuuwpzuw~srsusy{zx{xsttumtzipu{qyxwzvoypwo}tss~|igqu~l|huuf|zwytjypjmuiu}osqo{f}mssqozxrpvtxizlqyvzqyqkzsr~sosxnyz{qwq{j{thlwxsxjvzxtvsvsxcrprlvzout}suqqrspuckxv|spvmupoqwfpgtogvu}zopnu}tywcqsvfs~{w|qytqtu~xwzzrrqvywsurwwtyvszr}{{|s~|{w{uxwxuvv{nrwutuqtvryoqt}zpwt}{{w|{qx}vzwv{utywspsy|t|tvyz}tx{pvvst{}yvxvwwrqyv~vwwotvvq|u{urvw{u{|u|xyvx|uvwt|uutvv{nujx|wvq{wrs|}xvxpu}p{vzquqxz}rq~{vyq|}|jtt~}vjz{|{}ntsgh||ukzqw|sjze||yuptvy}zqvwxqwspjlvlr~s|tsrogyr||{z}o|uztrztu}r{uty}}imv|pqpt|pmqwuz~z~lt}v{z|twzxorpwrwwuzkjxrj|xz}kuzshwtwuqttuus~zuw{~vuxyttxxsyvvtz|wuv|xty}|||rytvzpvwwx||{pwzzwvsuu~twz}wvrxvxss|xrrwy}vwvz{tuzvvxr~~{xt}yyzwxxxxquxutxpsyutrrvwzy|tz{w{ywtuu}xzxzyvsvvwyytozzwsvxv{~vxvzxyvuw{u|rqurtzvwqqsyvxgx|u~ivruttrk{xvpsuvtuoxmx~wvtyuwpxo{wtts}|z~yuyyvmuxs|pl{v~oqpyw~mryvvqyzzt{z|tqt{ov{vx|~~txvtpqpuxsu~{svnz}xu~ruqlvqurvrzyyru}vg{s~nolvr{}spxxsu|x}vy{pn~y|wwy}z~qrq{ovytswrsswvrv~w~tqoxmotsntlxpj|s|{shu|ww{xtt{qqpruzw|yvurqq|oyppr{quzvxhxmzzyusxnsxrrw}yvv}z}zqrs{voqqvup}s{vtnwunpcyytruyqmlxq{huywmnzw{}zntvsuvrtoojttpukstlttupyvy}wz{s~ntm{uvxo{{|rz}}vwuwwq}x}plw}{jrntwxunyyqtn|nsmxtppsnrqumtsvtnuz}urszwx}zjuzv|mtuuztvpswztuzk{m{}}zu}q{qtxttvv}u|wrs{{y~ur}{nqjz|ultsxopsozusvo|r~spk~}wnuwvk|s}vkmxwxwvz{|szk|vyynv}t~{xm}prxszyvsu|{tn~qpzxtpmztmmxy~tl{s|vw~uz~~z|txwy|r}{tttw|zwsuwzjupwxwmnxyrvpqwxvzww~wupqyyrvs~omvroxpnvwowtsruswvrq}ztwmrtl}w|zwp~nuxvoe~vyz{}rms~mvtlszwslsy|oovpqq}txwqwjtyxxs}~vyoz~}ul|szrmz|yoqvv~nwqwk|w~xnvup~rlzx}ztlqpso~syvjyr|mzw|}ozktr|yqrwpuzmj|xzwquvuwlo|jlkzkpt}v~qqlpr|jx}vxjwoq~vvtlp}sp~{vuz}z}xvlqx{vftx{ivypsxqn|mu}s|exznfv{opmvrkztolwpsxonn}opqk{}z{p|lxx{}w{ssvos|nuup}jws{~nyxfpvoksyom|hinxox|tqnz{prhzva{}kxturiyuqpux}hm}q{tuxp~x}{y}wusu~wnuswmvjvyrmw}ts{qtxynwvvt|s|uy{xunxs}~tz{|szvwzsnvtomzv~zzp||txp{sz|uqr}nsvsr~yxvp}zw~v}vvtyrztu~{|r~xsxwz|zuzxxytivxzs{yuswwxyxyvsw~puqwyx{wowtv|xvrvtzwxrvuryv|yt{uzytrxrtwyr~sw{rz|tp{|ty|vtww}}zs}ytzt|x}wuonmv{wn}|uv|vw{vshtzzyvrzvoxvvu~yuo{}uvswq{w}vvvsrwuqu{lxttwr{wvusw{}yxtvrwrpoorrpzzz~{p}{v|q{wqonzuunmzxz{zwmxxysvmto{|vt}yoqzx|zqpyvppvxtwzzy{s|zvsutsxv{rmrtovoxttt{xuyyzzt{~rv{wwwwvvt|rwxy{zwsrrv{|~uvs}vurvvuxuvzswszzyzot}|uy~ovv}ulvwyvrzutyotuw~ztp|wwxwtv{wttxt~yvtzwuuxxwuxqs|py{}{qwt}xxqovv{}{xvutn}}q~rtxrvxrp{~u{wxtww}|toytzwqspsmzotwyuruzzr{y{r{u}v|uzvutyvvzyxz}||xymsr{qxvnlnguvy|uxuz~w|u{uy{}ryqoqprx{|pus|movorp{omr~zyqx}}mtpyztk~u{wsz{ujtjwwouwwvvu}ywruxzztqyorv{ptruxqypovxtsvwvyxvz}u|wywrxtrwxyvxxxtvvy}pnjm{tpyxysrvyzswwvwvrszvty~uxwvq|xxy|{uxyysx~y{vuvzxqvt|v{rrtyvtv|zszpwrpvyw{qvyxrwxszwupy|v}wwrx}rxrzw~ws}vrvurrtrywwu{xznuts}r{xpx|~ttxqu{utvts~~ypq|yoxvx|tuwpxtx~vtvvuynqwy|||xz}|pu{swtrwtxoyprzsqvxt~{yswyx}yvtxmwtlyyxxzv}}sqyzpx}ourwz~qzx{ww~uowxyv{vyqzxyy|xxp}syzvuy~vyuvruuy}}ryywsszxtxws~wtzvnvwwwu~}suwy{yqspz{yws|rswz|{|o}vuswwty{pyr{yzy{}zxmy|zyzuxyux{uu~zsxp|owuv|qxr|qx|m~xmo|n|rw||v|gr}wwsx{pvuvmj}spoxtvtvqzvssymvxnuzqxyvyzlxxvwu}|vwsyz}qwyq|upz~t~xzpr|yrzxps}v}~n}prv}qyxu{wutty{uyr|wxwxpvwspzx}swuvzvj{kws~w{ptrpvyy}w{yqpu{r{{|{ystsn|}zntmptxvuzysru}lwnt|nmuzqttmuz|z|uw{wt{g~z}yz{zxp{u}u{wyuusszpu{otyxxxxzq}sp{ptxxxws|unspw{syyvmruwsy~~z|otxltxyr{sn{vmzytnvz~llpn{iwr{wkypxynuuv~mjy~pyx}ut{tqy~iu{niwxu{twqqvoy{yqmyo{txvxyutrsxt|t}kxvpuzwvwuvxq~vntsusyuqr~~{ouxvqxuuxzxovoyh}tsxsvwo}vsoxzzqjx|txk{sky{rwvytxqwsyx|qvws}s|mwxyruxoupq{|zttqwryy{vwtvywpsz~xt|ovwtyyxvxxwt|t}yxwxsxwswrqnvyw~svt{{}x{}wysqu|pr|uts}tstyptzvpmqyuwzluvw{{svv~zxt{x{}y~~z{yus~xuti~ty{{|ywsywws{xkvutorju~ytntoksnnw}{j|vxx}y{mquu}yurg|xtzwpm{xuw{~ypuzx}|qs}xs~qz{xstous|zzw}vxqmswmu{sqwxtp{too{rt}|rusop~~u~vqsluxyvqytvwqv|mwn|suxqpurtxpowsxv}}srt~{|{}{rr}x{zu|}mtoszutsnqxy}qkq~zt~w}q{stvw{qx}z}{{zztppqoxr|rwkqu{qu}xuqvxwypvvzul~uznu~u}ogvvzyouu}{u{h{sv{zzzrpx{r{sorsyvvwq{rtu{}squhzzvvuxq{zrwvlvvxxxtl|uv{ynqzo{vq~nwwx}yxswv{usxxvvywwuu{t}tszzwtxm{|vrt}|xox|wurvu}}pxwzwyzwwuyzxvyuwyxrt{|tx{tzssxuyxutup}x{wxszykpjtruxu{ty{otw{qsx|u}pu{y|sy}}xvz|u{tzv}r|ovu~uwyzrx~uw}uzzwtxxtztnorozxwtwtkpupvyxvz~t}utyqqj}w}us}~ylz|yspswug|qz}twiksyyy{z}tvwwtsvmxsryopuxqxxvqpyzj}sqysxu~zsmtykunpjpzsv}{ow}prror|muvwvznvsrowo}yzwptsx|sutz~pvusuwnu{s{~v|zv{{|r}mnvz{vnmxtqwrv|mxngwuspjsrtks}rf{nwzmtoqvv~pqwpnvp~krgwsy}vx~fpwqyqvttaonptzdfw|yoaj{{{olrekwq{`y|wutpkstihzuk|n}{tihttl|orjtq|spqunr}rrounxosinlzz~zmlz{jstouvnwj{|qirrnd~osoxsqnurnokusxtwiqtnnns|`siucmrqvwghwpuj{n{yknw||yzs{x}vxvxrrywwsvzsuxv{ow{xoqwxuoyiv}xrayurwzwxt{trxoqrxs{~nr|rxvzrwe{uxv|myzt|m~ty~tpypmppstz|muqvt{votovrq~~rlqqso|u|ustpypsq|tspsyroyspo~olsuqwwuxwx{zl}ruqti{znwnmwvv~xuhxxytvsy|zuf|||u~nuq}yu{uv{kt{vyvurn{yxswrsy|ytv{y{{wzy|wuwqnq}pzpsww~|swmuyxwsuyyltzqu|~rrzt{sttys|oztwvwt{xs|vwuyxynzwptt{uqxpw{|pzxvuu|uxvrswqqxzvovx}typvu~s|zrxk}no{xtwz{{wszpt~vqxny|o|~uwnmxuepwtzk$t~y|ztfgyxlw{uv{zkwvzt||spstN|yxzvtuyx|uzwxw{xust{zwm}y~{yw|zziwvxur~v}xroyuu}t~wuk{vor{{{l~{~wux}qs~x{y}y~y|lvl|yoywsqvpxywz~~jzw{uty{typsorqwu|vxtx|xv{vwwvqy~|ruxw~u|vuy}t|upsruuzxvuysvx{sr|urozu}utxqyz|tywryuusvtww}}{ut||wy|{}y|uwwyuy}|rxxuq|yz{znvr~xwxvyyutut{rt|txrsyxtrvp|vzswu{t~rwwtyv~y~}{tpz}{zvtz|{uyul{|zrvztxvooqv}{tiu}yv{o|uy{y~{qwzx{}xpqvpy|truuwrqqvpyw}xw~vyr{vqu|xxxxytwq}txwsqqytywp|ytzv{zr|vjtqtqyvutu~~~y~{lq{zx|sxotwgxu{y|ypwy}y~z~yyz}xuvroyr|w}owsx{vorwxzvv{pwsuw{swyuxr~uuwotu|t{pzs~~rzywx~p~w~ltrvwutyww{{vt|y{uyjwrwxnzxqytyso|{wwxw{}ww{tnwqr~r}rtnyyrsvtxlruwyxyt{twxrsos}tnxswu~xxtqzswqu|tuxyuxtrutx{zuz~|uxvtk|uwuvlnyvwzsv{vwloq}s|zr}qi}~x~{wsurvxxn{t{xx{qumruo{tzuuwxptyz{spsx}rq{vpyvtv{zuosstzrpwzuwpnxxtws|yy{~svt||yxxtvtuv}rwsusussu{vzzrzvxvxzztxyyu~xvxuwy~yu|vhyz}vyv|x}u~~zy}yy}rnwvn}outth}q|kwvj}{vwr|vzq~i}yrtpuwsrrrkf~}wspytwsx{tywxnmvlinqwsptuy|oymqvdwytpuzu|ypjxul}osyuuonplwiqlrst|zzusupvp~uvuwooxtgypyvmywl}rrrstlmh}yxr{|pnpmzq{tvtxnl|vupw}tu~fkwlvmglxxmixmvwplvsul|zx|~yxw|||pptpxkvtwqprosutm|wxrsn~{wl{ysvsowxzqivxqvwyp{t~sy{ztu|{yqqnpurtvp}ruv}uxxsusszsrutq}x||v}tvx}r{v}tusu~sxrrjtn{xu{uymr|vqtnpx~{wyzxszwvsywryvsgtjs}vtto~xu}vvtvxuyussv~syvuy}{yxsw{szzvw{xyz}xtyx{yzvtwsywzvzqzuz{xww}pzwxyzzw|wtsstyw{itwxzqus~oy}uwwn{uyxqxqqoruxu|rusxpo}~r|rysrtrpsw{vvxusvsz{vypxpv~wwuz{yvrtxysuy{lyvvxtxtz{}zuswxuvt}vvtuyzzs}}u}}}{vzzjrz{wv}wurz|suxpruvvy{wzrx{xqzxwvx{q}wrtzsxjzo{uyv{{xzzrvwzw}wq{|tw|s~pvysyspzzvzzvyzy~~w}xzsx{|xx{q|uwwu}z{xzry{}wwuvqw|vyuy{z}yxyvw|ztoqw{w{ww}sryvuquptzwur{oy|qtq{yp}rtpxmzxp}pxy}vpypy|sszstoznxv|tvjorovzuqxgvsr|}{nwv|myui}yuymvxqzpztyp{tmwtr{x{pqiv|utyt|xzqxslu|to{qqqttlzkyzzuxvzvrt}tnmrsvnoor{npc{yzm~gqsxunrwsszjrnquszszrrvqjtyz~zpxxtyu}vzuvux|pw~s~sptyytxu|vzxvt{qwvuqty~z{tyrxywwxxw{{vzsjz{wuuyrxxs~vuyuv|zvwyq}zvw|vvyr}us{sy|~tqxrzvuwuxwrx|rzqwyxtywu}uzxywqv}p}{{wwuyqstw{vxsryyxxwu~rqtvsryvw|t}szt{rw|u|xmvtz{|tq{v}tv~|tzy}rxu|w||wvuu{}|trqtvyyvuozuxv~uzwxptywrxyy~srruvyywztvyrtvvtqv}~|xrty|xzxy|px|vs|yzww}yyo{x{uqsu~vtq~mq}uosy}not}xxrtpxzxnys{xsyt{wy|svyxtyxqqwwut{rt~t{uwrwzv}ozsozzwuvurwvvvuu~~py{suwqcxwopsnvrrwxvxsvz{y|~ssmyxqr{wkqt}rzrwxy|pswvyxw{uqtytyo|z{zwwxostwuywpyrwxmy}yl|xqrurtwmqtzuwn|~uol|}sw|xwuu{u}pv~zwrnrww}|rusrqqupqwvwvx}suxxmvyp{zwztuzxyluq{{v{{wvtqszsvvvzpnezlwvbuw}pstxxxlz}}lx{pyxsu}{{q~n{vuzwzus~{~eyvutv~|{xpuzws|x~strpwquwi|jx}spzqx|ywltmxqt||tvvtvswuo~}vysurzcxnvv|pkqp|sztqtnwtvoryprwgusv~yqsuyr~ywuuusxv{ruqtuwrtuvztwsxwytuzw{vupzzqprshwovxnt~{yt{txuqq~wooxxv|uz~usv|yurxwztvtzutmzsxp{yurs|uyiyqxqxqyvsuy|u~zqsst|}ur|xu{urpsu{lzsou~~xvxxxxw{yw~~zxvnysxjvmsruv{wuvxuyvzu{uz|swttxxr}vvzz}muvtrrsv~{vquq{|smu{zpvtqx|y|qy{ozuxvyq~x~ywxqz~zruswzqyu~|tuq~u}|vwuxpnrzyszry{zrtvsqysuvqzu}rzwvwurw{yxqrt{uzyuzquxsu~vqyzv|snwxv|wyzy}wvytytv{r|xwsy~vv}rt{ivwztm|ywkzlp|uxnxsqsuptlqn|s|mt}}yzyzvxtwv{ztw{lwzrvqul{rzzu~{tsvvwyuwn~}u|z{zzy|z|vr~xzzzsp~vuzwyxztxzxtyl|wxizv}vz}uvsuy}svqz|rx|t{wvww{|tztwwwp}}rstuwrui{zsxx}wwr{t~yswywttyxyzuxv~vzuwuztx|tyzyroy|xvptxyquvtwu}yxywwpprxzv}pszz|rpu}xvtwssvtuuu}rrzuptxzr{xxswwxzzuy||zryvyzsw~wsvvzyqxwzn}|wv~uyox|sx{{{xy~t{suwquszv{wutwvvquxwt~wvzuxsu|sxuzwvqtyh|ttr{twrvsywq|tuvxwqywr{l{qz{wtuqusp~pqsvr|xuwy{ptvnxyqqoqy|wqxssvvz}{t{{w{vv}}zt{u{{}syw~{v{y~~vywowy}vwvr{vtqetyssrbmxpzx{vzwrnqz|xfwkumsvzksqso~qynv~pqrvtxnvqtyz{yvswvwxww|ysvwyt|{~vwyjrzvuvx}sm{~u{wpozyzs{wuzwq|tx}}{u|wvjvv{vw~|nw{yxwwwsyomxwsow~uvzuvs}~vynvwktwmttnyv}ymw}vzu{nwzoiu{|x|s}~vwuzsviyxvmtxus~vzyypvxyyxw{usv}~yw}qyzxp{{w{z|zxxwv{xsv}|x|vzx}{up|qtvr}|v{vwvqryt{v}vxs|xxvwyzxwyy{{{uwxyxzuy}tx|}xpvlxyn}ux|}~o~zpx}~vq|vxvszxo|py|ysrw|t}||w{}x{tztnz~z}sr}{wtxw|ouqouvvuq{xnsxwyvxwxgwxxtuxyvoxstvtztyuykuzywtwwwvzyutu}yzrw|wt}z|xtqryuwwtyuyrxtvw}uutqz{|o~{ozqyswpuxvruou~w{z|swyr|}osuupqqsuns{~p}xyyyu|vxuu}qst}{srz{uv|rxvqx{wlzqvtvrq{orxzxqy{t{pxuxztt|wp|s{vwo|vrxuszwuypvws|otqwwpz~qtqr{|wzxw}ysrr~w{rwuy|zwqwzjut~s{xss~ww||zsyuzyop}vxttgqrowyzvxzszpmuyrswzsrru{mw}qsswvuzyqvxpw}y}vx{vwrxvqwwyv{typzyzyto|~y}uxuivqwspmrwnwtpws|rv~zuv~||u~wr~truzvp{xq{qn~yrwvnoqtwvqvyur}ux|uurq|vl{wzyo}r{pz|ssxzy{vs~txxyvprmzxtnlvrslxqt|}{qnprtvyv|mqvtxptvzwrp}ru}|vyp}w~~{nxyqqsquuswu~|wyoz|u{y~|~qttorpwjqwvw~vyuymoxpunyvsydogtnm|vuyuut|{hj~pmurqqwryqsssqwtqtmrrssmrysn}jx{yhnri~sytxwpv|trpq~|yxmsnoyutprrr{ww|{p~rr|ujosxt{uoqlonos}jjxurz~wq~ntksvqwlrsorf{ttxyrxkxwzjys|pwopw|szz{tluuu{sz~w{|vtoxppswqzs|gqz~rxuxsx{vs{y{u{yzvvsynvv|~{qvtyzqr{lpvw|nvuxuqxuywvvuslwqurxmqpv~smwfxox|xryoxyz|tx{wsyz}vys~nl~xqz|wntnquyut{l|znuwrsru~xsrrwrp{wp~{pqm}uwwpopzrwtpqqzz~|}rurrwtzqyp|tvmuy|{szx{qwyysy{u~ustqwu{ytt}y|xswtuvvsxqsuuztv|st~zwwyvv~yo~yu{zsv|zp{{tuwluu|uo~q|pvp{wpuvzzzvromxtmnu|usu~vozup|z|zqmy{xqtxqpvzzxy~uytwyorys|wr~}s}{vtsyuywyquwwxw|t{wvuz|snwqzqzq~wynv|}xrryxwttzpxuwz}wzwv{{yr}vtzyow}xyyrtv|vvt}}wyp{kw{{utrx~wyq~ym~utyvw}{unqvq~|r|hz~spmwopuu{qxxi|r{yv|qqjhssqzurywpw{}s|y}{y{~zztt|{sxsmx|quu{u}zvutwrywru~pm|wvxzusstvvxywzutnvnvyu}rqqsmsqyuw|t{xpywvsy{ux|y{|pnztxqv}vq~}wwoqk}o{swp|ttolvotsqxr}vyyvouu~xxstxut|}uu}|vrrsuo|x}wszpo{{~tt{v|vzu}}{~zz|pwusvrvpvy}uwr~outxuxyuvvo}sqvvvuuxn|yttwwyosvuyqqqwnwzxzwwyxyszuxyuwsusx{v{pr|zqxtsvwyrw|{{~wy~{|uvx}x}y|uy}ztxusxwvouxy}xs{yw{rvzrxqyvwyqmsxw{uuxyr}rxwt}}{txxwt}rrvxo{usu{swyt|~xw|{txyztwvwyvuwwrv~sxs{lt~utl}wvkw}vtmsv}wozu|xvxxs|u{xuuz~uxuqvwusxxzvrrv|wrttr}zvqxwxxrrm|urytt|uwypux|qxy}snv{v{s||yxzwxtxtvq}mzvmsqusytupx|tuzv{{y|uvwztrrrtp{uzxzwvmwuiw{{tz|x}yzq{xzzvnwusrz}xzyoxtvvysytzxt{|uquwwuxswwsr{yz}|qzzuwuur~qqyzrtz{px{vwvxvv|wt}}vtrux}xxy|t|wwuwpyrtuuzwy~wzrwstyyw}{{tyxwxxvwvztv}uzsvz|uvu}sux}ts|uwrt{{tusv}vvzuzvz{pvyt|xx{nryq|{xr{ouryw|}uyzyuv{wxzy{woynul|u|wwzvyszxyr{ixyqsrts}x~vwwztpyysszwwwqytrvxtv|swvt{uxluzr{uvx{yxpvwyxvwuxyw}r{}wjsy{u{xowmxoys~zv|tt{p~uxvtxz{|wyxz|urvw|~v|w}z{uxu|xvxxqvvnp}{m~strxsr{wrxwxqvq}puw|zxnwpy{{sp~vl{r|muk~}qwx{luvst{xuzu|hr|wyqzyw|nsvtwyr|z~nzwwuttrlvt~snt{zioqtvpxs~}}xyvuyyztjwuwxzur~w{}yzqprv{vyjzzrytz~wq}vy{xryx}zto~|z{wvsxxow}wtz}iirqwvz}vpwyotpswruw{vqoxyxkzxxrwvzrlzqtsxwtd}hsrqz|jcnsppxxrutzzsnpztsqpyut|orqtzsw{}ir}}~rw{uplq|zmxu|yxoqklujuwquuzvsqumtwtsq}vrt}ulp|suxytktwnww{vtyr{uyztzupuq}lvzvyvwsvxzrwx|xvtswx~txv{}}|qtztszwuyqxsutztr|utrqs}}z}quuuu{v{|yqwqxy}vwutxyuvxzyp||uxwut|zqv}wvyvtyv|u~wsvss{vzv|{znzpttspw}yuyprz{twu|u|tqytw|pxwwy}zyrzvuxzzttxvyx|s|q|r~zy{tn{}|xwwxy}zz|pr}z|srwrzs~urt~vymx~uk{tt}xuzuy~rvu|wzuvv~v~{zvto~tpwq}{~yrswtvzs{wtz}rsswv|kzq|s{}{~nvwx~~puktuuwquvzwu{t{xwyrxqr}{o{rtwyryt|v~yzzo{zxyrss|yyrszvxqusxllvqtztt{wqtu{tys|oy{|uoyop}vs~}ynxfyzrmt}r}vstrnrxy~uz{yqzsyqv}{{z|pzoqon|sopt~roxtsnn{vz}utvptuxwuq~yts}wu}uxyytztssvtnsws}zu}wy}wsyoovx|x{z}wopwx|yrxzymo|nwwwytj{p~wu{ls|tvoxy{{}utw|srzrtyv}||tvn{ypy~~~~mtut}}|wwzpzwttywy|ynp{yvzputuvsw|uw|w~wsrn||ttwuirpwyw|wxxpts}yuwvjy{|ktpvyswrqsr{ttr|vxu|spfpuwy|owpyxuy~vnuqzryvrzu}wwoyuxxyzssrrmxq~n|x|jw~qqvw{vrv~t|puz|u~ulfs}yonrn{vs{twzysptunz~uxtxkrovuo}}wmltzyxxqzymmksvjzww|oufwnlzkstzrvvymrwzzqxx}}usnmuo}oqsp{{s{vkrntqzt}vljrrk{wzoz~w{vpoxohysvyuzlxuxpwpsyquv~tv|nn|u~utmsyoqumzuvvs{tr~qul}tquqynvrntumyntvxzuortr{xx|xwn~}~puq}vvvxqvxtrwxxutrvsujy|sqwxuvrwqwtxfous}yqqxv}tuvzxv~yu|r}|xs{tyyrqty~yxzptxzt{ss{pxywzsx{u{wr{yxy}|{~|mymy{n{yszwvxm|vrwvlqy|jwxwjir~plptxwyrtvvzywt}vzx}|tuxu|vx|xtvy{v~wyxymt~w|gwtuuwv{xuwywtwrw{oxwzs||y{zunzwxrvysyvus{wux~~}wynxw||y{pw{yr}zsmtvvudl|ztvk{svwr~stvyoqx}xvuvtuzysyvryu{yyvrznt|q~|wxzusu}{zvv}r|wy|p{qr|spuw|}rxtzyupsxu{{utruwnzq|uymxsyw}p{|{wwuxuw}xwsv|z{qrnt{vxxvvvqvzz~qrvywr|v}q}o}nvuozw~tvqusxq{xzpxxyvsxy~xw|pyurwqwsusxxxpjszokx{r}qtt~uy|swwx~tvzq}wo|o{mnvjzuxzpxysquxvvwwouzvqyvtrtvsvqsszy|zvrq|txxj|sn{sruq|rpz}||p}trzuuuurux~twtq}rzvrwuwxsqpu{xpp|lznzxw{wupswqzsyv}vv~psrus}vxut}rsw}h{yplwwtzw}tww|~~vlxw|wwsqsw~{syvyvttxsottwswpzomppvx}xrsxuqxy}w}wvuu}v}rnykr}xow{uwuu{{zvu{}vxqsv|m|w}|z~x|vxvwuxusxztyzxmv{ysox{quutx|ozwpv{}xxusxx|ov~|wowrw{wxuqywxsjtruy{stk~ltoxwuvtpty{hrt~t{wpwxzlqwtx|yqrvi~|ux}qypw{|r|xrvuoywrywzwtxvvprzqozj||qypwtvwy|uqwqlpujpswpyu|qvsysvhmv}yy{usvz~wtsuvxynou|uxlu}l{wxlxxp~vtylxqvvptoyyvyv|yhvvswrurwiuxuputptrsx~zxurykzo~lnttoe{utx{oetr{h}qtynwp~nq{uuuln{ljptpszwv|s|m{pz|w{rop{~tjm|~wwjosui{|uosidv{plt~yws~lzj}qwk~}nosr{mmoxrlwq{~ouvxtwtnvuv|zrqkys}{svv~szyptkq|vzuzlseuyv~hbutylwr~yzvwvstxz|~xo{olyrtu{qwyts}yuftqwysvxs}vtwp}lutyqvzu}{ztqruwwqt|xvrrwzxznwm~~t}yu{yw{z}~uyyywwvyzq|nwxwx~tovsu|yqsy~ryzpuup|~ptpu{yz}xou~rz}ywqtjrz|nttz{wtk|ut}xvvztup}wrtouwuvryyvxvzkn}wztntz{oo}v}uozu}o}z~uvl{t{|qy~py}~zy{vtvtsuvwwlxzs~wwztyu|}unx|}wxyv{wtuxzv}}zquqwy}wv{n~uutttwx~~xxq}~uzy{xuxvqrrw|vvw~}jwq|yttt}yjxq}zuz{tz}}wqtuvqswwz{skx{szqsstr~|wsrxsxyxryt|yup|syot|~{oxuwp{rwsw{jv{tky|uyyswvyzxqzq|{su~zupv~sim|}|h{szwtxnwutx|tspz{ovrsqpwut|oyytx|}wzuz~onn~wxnx}ztrt{z}|znpyrytw~xwytxvdpvwwq|{ovytq}t|yuoxzzuxnpxqvu{wvuvqttxws{y}qqmirvq{qqztpouynzt{ywxr}vyuxvlwyrxlydqwzqmux|}rrttzjkzr{wupouu~xywtpqzpz{~}xuwysssxqwulqrsztz{qxmynsvyozryuwsvv~|wuqutzuuzyovxi{ws{voqv{~uy{rysz{v}xry{|zygs|osok}lutxqpzlwrkvxwp~wh|ysmr~yv{{u}rzyztw}}onvs{zy~synpvsxxssuxyz~|riv{qsx{yswtozwtyz|lxzuyyutu|xuqzv{y}nr{~vyvhx{xyx}rtr}s}}qws{uvwvrvrxkz{pqtyzsyvlvuxzsmyxznvoymuzys}sqyp~w|wv{sxzsxu~ry}von|suvuurusvtzulvuq}||oxswtz|yy|~qxx~gn}pxrnss|y~~rxvrww|wympq{}viuwwvrxxzquwnwursxwp~|uzsy~lnsrprx|vjq}vs{|pzvxt{osyqvyuttw{x~~p|{vq|}vwv}{vwu{yzyzyy|}yvmw|yuxvvts}yqrt}sxr|w{wzqwwuwzw~vxzpv|{wy}swxwtyrwwyzyp}zyztqrmr|zv{wv{rzw}xrxx|uuvzwrwxvtvywzssyz~|z~yswu}}}|{r{}v|xw{zxzrqurxwt}ty{py|vmqpvusw{rwmqxonxqwsqquqvsuxqsss{{xwvovt}tz}zrzuxwyrzr{~tysptuyztpojwyvyqrvpjt}ssuxzvq{soswktwnpgstxrrmi~sv}rvr|}zzqymwmoypx|ztxv}zsp}v~wwu{yvvuz{wxkwpz|os~qtwqxwm{vts|tzxxxu|utruk|rlowvyzwy~|vtxzwqupn~y|w~{|xtv|oxoz|cuzzwrl~vxzyyttyyyz|x_{xvnq{vwy}ussz{wpxpyxvtt{vyq{}|{~yv}y~x|rvwxy~y{vyvll{xuqqqvxsxozpuyuiqmqxwwqyup|xs~u{vyryczto}ovyvvt{m|myv~srvrtqorxtsxstt|{|}uuzs~u|twvo{ttzsnvyzyty}}xrs}ur}|unsvz}rzzx{}tnuzzqu{psuvwvwlw}|vzuyw}ywrt{ryvv{s|vtxrpqrx{t{wztvwwvq~ws|}tkqyv|urxpruwwvqlusxvvwqwy|sstztrtwytuu|xw}yzo}twztyx|xnxzzyr{uuw~vuwovzs|wrxut}tu|tyzq{wroxtyxx|xuwpzvq~o~rywunwusqvxvp|}~rxvxw}wwsxr{zun{tyytrlwxzuopyqu}yprqzyvovnzqsn{q}v}tzxzun}vwxxqzuus{vzwpx~z{xy}}y|tzw{}qtqux}xoxtvt{yt{wtrz{n|rz{}nkyntz~o~zwwqrqnivyxt}uosrsvzqru~ktumnvstoyvtnzv{nfxuv|otvvv~s{zvvis|soqzrm|tx|n{rwpsrustvwx}fssp|lv|}nywz}}uwv|~rlwqwryu{pyttpt{qy~u|m}loxxqr||mvtrtyrxxptsxwus{rwzp~ut|{x|otpv|vwux|qzv|v}x{y{tuyv{uvxsqs~tsz{s}wsr{|{w{q~vzstvtsusvtv}ssr}wstq~yyxy{x~s|x~ytww|yqrxv{t~sotuxywuyqv{|s{mtkvs{ssvxqryv|smqqqttyxvuvvtzzq|zwzxvyx|txu~s{yxyy|~t{yyw~|wxu{vtvn|z{q{ywu|ww}}zuunwwvwwpu~~|rusw{vvt{{zxu{j~x{vtwsvx~zjuwv~q|wqwq{prtjyovvlq{tyssz}vtxwmpvyw|{u|s|{lur{ytvursuyz{nyhq}srrun|xj{tsujsypvtmv|||p{xvnwyusz|qnvwql|zy}t{rs~xr{jvqovznx|uusqsush|uuyopxs|{zrwrwvrz{~}|xptppqy~tuwyy|yr{pwzs~xxovury{|wqvzmx{xwyy|zyqwqqz{npx~}wvxvrsx}rruxtwvxwwsyp|xzwvqxvwtuzulotoytxt||yrqzt}ow{yqvp{wpsspxqt|qqswzvnuxzx|wmyryxrtuvix{ssy{z}{zp{~wsxzxnrwxuvuvspwskzv~pqpwrszlst|`pozpsrtpgqxvwrtyziyxx{sw{ykvpzlxlsl~rt|u{s{wwrxvqwot|rxl|sr{soszvxwz{ys|wtxtjsxovwmqy~s}}yyomntszvt{hytv~|rtnuiy|wwo{v~xnsq|wwvxst}umsusunux{x{utxrzzspzyvyyysxyus}yxts}sp{tsq|tw~xvp~uvp{|{ytzxss~t{{zxxtwsrrzups{ovut}mytxnyrxykukksy{{tzsvsymvsx{kxzs|putyyuxuwxpzuxwx~zsrv|xuu{ouqrw~tyz}zwsr}{zvw~vuzp{usvzrwwv{x}vv{qpuwxwoxmo|uuu~przypvnq|xuyytti~y{xrzxwxqrtvwnvzrwxpszxizzssn~|~~svsuwv|pyupxw}|oynvrts{~ru|rzuz{~|yz{nw}zwovvsuvzpyruwnzvvx|xtusvwxyxwv}wvtuwxxs}{wuxssyq}rqwy{t{yntywwowrurwx}uxvwo|vtvxuzxrqxpruyv~nuyqyut{ym|swwvuxwtwy~pw|yxqyxvysr{wyuvssqtx}u}}xxzytuvu{y{~~wvy}zuuyxwvyystxu{wy}uv{lx{rvuoxsuwqwvuvxyzuzr|{tx|yu{~|xz{wuwxqsvtlxzywyrxz{qz}svyx|v|t|~vu~}uuutuwtoxwwyr{zq{s{vuvwz|y{vszynxxyrsx}qu|vv{uqztvvyr|xtqvys}us}syz{wvyssrv{sxytxwyzvtzr}{u|xsu~|xr|wv~swtp|wqv|squy|u~ty|wyz}w{usrrrrvzzvqxpwrpp|x|}trw}yzwtwty|upwsqdkslqmxwqvuwuunsxxujttevtnop{vtzqlxq_{qxrhd}cmrxtmphqsm{xl|lzvw|ws{zgpps|plxm|nxpswi~{~lnzzqs~r]vj~efph}sxsquuzvszmytxkpx{{umjuwkrml~nfuxkqvwhuzzxwwppuuopgngtkgluyfnuhownj|{iuu~w~xz~vruwzrt|wt{pwywyzwu{qvlu{xty|w{xqz|wxvvvrxotr{zrxv{ty|zzv{wu{|uwwvzmv|ysvuzwtqv{yvus|s}uzvwzz{r{umwstsyzxrsw{vunzuxrwoy|{zwyqqr}xyr}xuyz{wp~|{zy|{~urv~ss~xqyt}~~uqxyqz}yq{n}spsouuxy|vwwsvtopytrtrl}~ytz{pwyxrxsxvwy{vvyuwt|u~t}t}tp}wuuoytqmu|wt|rsxzxvszw|urp~stwpsn|{zu{|s{pqy{wxztnurptvrwxtqyqyw|xrtu}rzysmtjpuv|}yq{u}tumv{xw|uyotutsv|}{|qtvq{otrwzwrx}zuz~xoy||uvvwkopt~owtwyossuzvm|tqxl}wwv~wuxytqtxuxu{}u}ojpot||xxr}|urqurwzxvvwtwzwuumw|{urztlo~spxuruyuuvzzouwutuu{us{ut{nvsp~rwpv|wywqrvwwxqqrssu{~rqzxrk||ovqr|xvsut|nw~xw}s~wtvuq|pmrk}wuvwsvt~zwqptqt|nvtqupxsy|yvvrywqvq{sy~prrsuo|vvsyzswpvnz|v{{qvryrttujqmkzytmo{xzytwssw{ro~{pttvy{wioyvusrqqptyotxpwr{xvqrv{{tuksww{vvxuxzynso|tz|{spoottwyvjzpuwswwvtwu}v|usv}tjsqly{}q~wprrws~vxvzvxuzv{uy~yz{w}zojvtupzw}{z|uu~w|xoruzptztsunlyr{sknm{zvuyrts|vzvnwzs{quu~{tvnrtvt~qnvq{ttxqspuzsqozs{t}nrvrqrs||z{tr|xt{~wvvsysturs|p|||wqw~u|p}xx~p}oswuu}xsywvtuwtqw|yxqxjzxmpxtx~sxnytwwp}su|svmxr}~s|zryuputxs~zwuvyvtvuypz}}u~wtqv~|stuz{qpvzwztsww{vu|{pytqozwtwwzqsxyut~r|z{vtvyqussxwsywv{{mz}yqxmprttu~stomy|{tzptx{}uuuoyrwqxx{~ovv|sz}v{sryt{ysyvxxv{rss}ou||x}{wwwzyu}z}vptsu{uts|uttzxxmuwr|zq{zswystnxzxu}qpxuzp{pyyxru|uuuyzsyuvvxxtqtx~}|wxvprtv{~zzs~{~uxxyy~vvvrwsy|orrs{rx|vynstwrltzvsr{ovtqsqwvws}k}uxuvsxwzytvswlpvqr{ysj~wmzz~{{uwwuhnnszmsqlwww{qxpu}qvyz}yozyrxvzmt~z{{urzu~wx|uxyo}~nvxx{w||}x{|vu~sywnx~ypsnx~~{ux}rmvszptypt{wyuwrwyqvxtywwu|vx|sv~y{lmq|nv{wqovtwq{wy{ruuiuyrqutyjt|ys~wvvort}wwy{tz}owxqypyktsznwstrzurqr|vuxy|~v}x}{vwtvuw{y~}vxtut~rpyqspzzplw{ynqooxumvr{ouzkxtpu}rpvvmnyztqlv{x|r}u{ztz~wswsu}{{t~{unvuxsusxsrz|wu{tvyt~utxwxs{vnyrpxrysyxp}}vzzrt{zztozmypupuxzqtmgy{|u}qv|u|psszp|xtuituzqswyog{nu~udwss}rqmoxwqvzunkrtwxru|n~~zrwuu{wz{yv|tyqtqvvqz{yroxurjnwtv{lqspxuuvomv~tpuspyqzztwv|owuvuzt{zwq|vupwruxst{p}}sn|}m}qmyqvoswpsjvk}zwylty}x}prrxvsvzzwulnkn{prmuqszwxrw~tnn{nxfvtzqpvknuwur|un{vsyswqslxv{}wxn}sx}zu|zuzq~zsvsxssqp{vzp|uskvtlvyyuujuqt{tvttzu}nusmxuyqtxytuwuxrznrz~tyvzvtsuzvrv{txqsoxx{rqrqwzqtzw}{zvjzuwu||o{ut{t{sw}~{wvz}zxxpoxwmvz}xtvwxy}yy}xz|zuzyxz|sxzmuyzvxtqxvwtr|{{s}txtfy}~~qsnz}xszwzrxwxzs}{p|oxpxrwzwwlutsuwynqr{uzsm{tvxrwwtoqqt|sz|~wstwxpsrpuwxxuvw{wqr~xz~s|ruq~xv|ru}~ywwlsxxyx{ouzvzxxoztv{|wwvwtyzzwxxsvzurvxw{ysvwv}lvz~ru~vuzxswpovv}xpq|q}|||sxxupsurltmquxzszuzt{nlswswt|xwt{zxr}uuxx}vyzzuy}}ovywzymv{~xvopu{vv|y}{wuyr{l|y{vuv|y}wuuqyztpxsu~xvxw|uww}tw}ssz{vtnxtuvyz}t|wx~xwxu~}|qyynz|xxzrqsxyvzyrwzymtrz|zpytvuuzn{v}v}y|uyqsrruxxusu}oypvzwzyysvvzwtzyl}t|{orxvrusowprsisluw{}rtvqz}~wps{rujlwov{vt{tsvvsxhxuyu{xrwswvtvpirjsnvpwwrowr}t|yz{ymvs{wutppwrxzyttq{uwmyysv{vzsuvz{twtu{msq~q~{uunxl|sr}wytv|vpxspkuvzsnt{pomsz}vysryyrpww}txxxyr{trxu|uprwj{vzy}m{|yxy|ysx}swxu}zxz~|{|tsvuzx}wvxwt}yzuzvrwv}y{u{}sw|vyvxlvyyuwvqxyvvz}tvzvk~xstwtsrq|xsuv~s}uwyrvuwtpvsywyzuq}vtvzptvts{vqyryxyyu|r{q{wupu}pyq{~qu|w}{qxwyl}yyl|~u|}xyy}ozuw}xzrnqvssx{tqzyqot|pyrzxqw}jxvq{|zxyryzt|xwq{wt|tujx{|r~y{}uyvzup}{nwxwtyu}nyq{{xu}u|yu||vwypuy}vtryvy}txvwvvw|ww~vzus~xtlxp|yts|yrvwmtrxtk{yx}|us}vu|wxnvsypsyyzwpvu{tyiy{rupvvv}q{|y{{owqmsrlpyvtzsuqwvszxutt}wut{usvtuxtp|w|vrvrwzyrv{ryspwqnyy}{{tu}x}x~xxqtyqxsrxxvwp||ztyzxqru{vuzwzvvwwwuzuwq|umxu~{vusoxyz{w}jl|rzu|uyrow|rpun|~zqujtz}qqxuu}{rvvyn|{qxszwn{wwj}u|s|xt{~|twzzz~}{wuoxsnus{nx|uwq~u}usy{nprv{ywtys~~vrvovvysru||rxt}wtzo|m~||rz}w~y~vxx~|{xypqxqw}wpssqxwywtwsi}swytsnyyurxvx~z~smtrunuqupsmswgrrsmqrn}ouyv}srnxpswxxsx{vvtpysprqvwyhhsutq{{|{wtwvyyrz{qus|zsstruzzx{zwv{uxx|vwsotn{p}trpjqupwvnwssv{w{ytxowuqouur|t{|ostsy|ouzxoyuvv|nrz{lvrv~|~tuozynyoztxtsmzryuo}xvwuxvxrqv}vntyu{www{}tzxyqt|vtww|t{y~usqwx{y|qqryzz|s|ryrvsywy{pyzww|{k{xqu{o{sxzz}o}vswtxntmviw|u}twxxxxyvr}pv{|kw|rvxsrts}tqsy~vpvxy{vuzxu~tzt|u|iyvwtmsuu{zo}zmz~u}r|zpm|upxxw~wsq~uyuzwuspyvxvtzutwruzv}|p|r|ssyuwxyvuqyvw{yzwuxz}u{uyptx|t|rsxvyvowuxotuztyyzvwwwxswytrs}|}quwwzzrrtvxw|x~{wtww}xv~ysx~uxr}{vuywtvyvxwwvux|{vv~y{xvy~vzrwv~vvsx|zwuswyuxt|vrno|ou~yo{zwu}wvjsuwqots{stpyyr[znnttusxn|uvtvv~uqstzlzvuvvqssyvu{zssryw{yyo|tvuyhmsnpto~qwmzsxrpvxx~uruvpo|{{vnvwnxs[tu|{r{yrqzlzvq{uvvyxw|quey|s|rtlonpy|t{vxszs{xt|qpttx~{vuzsy|zswzruwxl}}xttururvzxxzrvvuy}sztoowxtvvry}{nxz~mwyquy}xwxwx|mpwptzwunxts}y}o~xuxzwyywqvx}u{yy{pxxyxw~wx~v~vvw{{{zuwwwt{sp{xtwv{vyu{{vpnxtyxstr~sqzpvty}zyyw~utxvut}xxtutzwqxxv|v}j|wsusqr~yzl{zyxwuxsvs}ts~vxwrtrytwzy{ttuxytoyut}xpvnu}xz{uu}zu{wztywu|qryt|zwizyvkuwup|xzww~}o{rsosuzqsy{ryvsuy{rn{}yurtzwu}|t|twmuxutxsxv|usrw|wxtnyt|ot{zv~{x}utz|zwo|x}mwxv{uxu||w|vxuprywzw}{rpwwu|zw}sw}zzs{y}uy|tstyzmnqx}|ry{rtvxo}ustxrtwxxxvp|txy}yvxwyysr~v{xnxr}smzxyv~prsnuz~s{twx}r}r}{uzuxxmvyy}ktrtwytvwyqow|w{~qr}uhxm{rtwqoxt|wqtuyrwuwwyz|zrvw{qvxkx}}wy|ttrwsxyvtuxxszpvtqxuuw{rrmxs{qpuvs|{mssw|w~wsnyu}|tvmvtyunzyql|rzulypswww}vs}y{xsunqsm|vxvutyzv}ovwq{wu{z|luzq{|zrsrz}wmwrwsyqopqzoo~ys{syvwu~unxynsz|}}zqzrywzrww|rz|z~zjsyuz{x|zzyv|vtzqpyq{svxtzypoyz{uvpx{poxt~przutwxpum}pszxvtyvnsxpxtqnqxpvx~|}lwwx|vvrxvzwytqwu~xtxw}iy|vruzxrxx~}yxw{xzvsvvyxqyewzktvyzuvvqsxrtztuzzwttzssvbmx}xrvuruswrowo{|wlluynovxvzjyk|vwyqxzxs{oxy~v|y}rqyzzzp{p{tztr|trusswostz~vnpszztxqruxt|px{yuwut}mqmysqpiuvyvoqxtytryywxmyuxvnuxquvzuz|wyqyrzy}s{lowwu}n~zuuuwqq}mtrzsq{xx{vzy{slxv|}uvzx}wth{{ruuwxurvz{{uwyrv~zpp||nwuqv{z{tsstxzqxr~|swo~ypu}y~uzouuwz|yztypsurtvowuwnu~z|}pzquy{zstvxtmpox}tvwtxq~p}{qp}ztwqyxqoqotyxuy{suvxp|xur{}sxz|wy{vs|r|rywyzrzxzxupvotv|zuxq{r{tr{xv|rwuqturxpxuwuovw{yuu|u~v{{z~z}s{tttxusxyx}rx|yzx}qv~svzpttz}wtuu|utu||{tw|xwxpzsx{wzs}xu{xpzwywxrrtvw|uvywzyzzrxs}xzqpszwytxw|s~~uytuvyuxuz{r}t{tziw}vs|xv~{|visqsq}vz|{uuyxl~szvur|xtyy||vw{svquuxkxpr}w{uxusqxzxppl{n}wz~x|p}~~w|vxqu}|krutytuoxsw~vtz~vyuvkz}zztzqvsiwmww|vwts|t}wxvvw|zwpspupzoyoqwwqgu{uz}q}yvsuys|twtuuxyyuwsxwuw{z}yq}{}{tpyxy~ws{vqyuxxxvtwxs|wywzuzsuzvwtxvxxwtwwzousyq{{zyxytzwxvxupq~y|sswxzwqouxy~vuzxxzvts|{y{|s|o~}stsyzxvwuyxyvwxr}zr}{uvvz{{ssytyvzzs{wvwuvzyw{s{zvv|z{qu~rx|tb}u|xvrurx{wqn{mxrrxwku}qvxplpuy}kwxuy|nvwtrvuz|q|~rxyy{}yxxxysw|v{t}stuqz~uku{yxvyo~oq}~}s~yrstwvvtz{mwv{}xys|rwwyyuktnszyr{zzwt|eyqpuu}xqutqx|qwxqqnxwysp}{swpvgx{z|}}x{v}p|uov{pozzpq}}vpu}opgqtuxzmz{p{u||~mr~tzv}yv|~xwuxnprt~wyrt{rls{upt|w}~yvvs~syzllwzv}tly{os~|tuk{qttxuvsu{||xrp~~pxpu~xyr}y{|v{vjvuvyly|wu{zm{vtor~wxozumvpyktzx{ovup}pruwzuxz{}zqtvutolvzqux|k|y~u{vl{w~vo{yvypspywk{s}ut|to{ttvxrr~vuvswkurok}ryoqxwvovr{wt}stv|yrzuzwwvypxlvzt}w|v|r}zvtskvuuvzks{n{mz~uvr}x~zuvyvru{svwrzq~pvztzpzxvyvtttut|~p|y}yltpyysvxxttrvqvuwgvhvuyxyxxzxtwq}~zvqsv}ovosryw~ijqxs}sytzuwtupvuotuvtpwzxry~zv|vxw|}tn|rwzszrv|vxu|svvr|xpy|wvwvwswwqx~pnpwswztttsyo~wv|zs{}m{q}tlpwuo}ymwylxxwz}wxrttvxtsuwwzpsvsmuturmxqy}sy~sy}ns{ou{pqurmtyswyx}xt{uumq|zssxtqpv~svwszvtoyxx~r}js~mr|}yzquwyk|tsu{p}|s}x~s~w~~ts{uzj|vpsz}|yo{u}wvy|roozr~otpqxur}wriq{p|zrvztozpzppvuq{sy|xwxxyq{v{xyvwrsvwyxuttztzzt{xyvyvptrovvrsnwt|vzq{olzrzv~uw{v|u~txzu}ssxwkuyv{tnwttyv~v{}zo}v}}u{y}}xzwvsz~xyswssuoyy{xuuxr}{yr|syxuyvpv|y~xxwwq~rswxtt~{ru{{{|uoutqto}xwszrz{ypy||ytx~xsww{xvy{vow{rvv{v{xs~rvp{swxt|l|wtwrqx}urxztzyty{uxtr|rszovtuyws{~l~ttzvm|xwkvu}ozt|wysu{szvyzy{ystvttyzwujwpxwp}urvlq|wuut{sywx~vy~uvrxl}vxrz{tvq|sss{||zx}yy|}x|}~y||}yyxzxy{zyx~|zww|v|mz~y~qp{}z{uyz|zv|{z~}{xz~}zt}o{~{{~uy|~zyw~}vwry|sx{y{yz{{|zvzvz}}yy{x{zz}v{w~v|y~rpwlyvuqxy|~kqzrnqputqvq{rnt{opsukwyq|l{}onzsptmlz|wzwrs{ttovyvqh{~i||rstzr{nwxu~|vprptqsyxo{rvy{|wwvsotqqsppxzwrvquzorwwu|tq}tqtwyxqnuvxir|r}qsx{}x}ssyzqw~qryo||stpyuztnosnzq|zsqo}oy{vvm|wrzqwvlvyyxxxyuqzntf|zuxq}wyozovpu{w~w|v{voxurqyzsw{mqyvtrvpxvxrytzxs~upsynkylvwzls}vvzt}|qvwsov{rxu{}y|mswsww{}uww~mkvvqltstyxuww~unk{yuvzyu}|{ox}v~ms}qxzpgsv~tzy~t~w~x}tv}wu{xuusuzzrt{yw|p~{wx}wuz{xttzytyzzzvnwtsw{rsyn{t{uynurz|ypv{s{nxxr}zyqzrsqx}wwts|r}~{s{}wxwy{}p|n}o|rvssupwxy~xxxvywzmvtvqnypxyzz}{v}ww{rtjwx{ss}}wpvw}x{s~xu{zzvtxxqzwrttqzyxuvuwrmuqwptqowtnw|zuv}}sr|y~qn}t{v}upv{zpo{pw{yvrrswzrz|woup{{vvtrq|rwqvrtxrszttst|zx{ywx{y}u}qyyotsoyznyxo~|tpu}sqk}}s~|zx}ysxy}sz{ymvyv}vt|wy{szyt~s~untowruvpw|xutovq}tssspursuynusxy|tquzqqxruqxu}t{y{ru|wun{}}|s}uxvp}zuvs|vqs{w}oqyosvywpmpxtuqzvx}mzrqzwpmuyttzrnxut{yznp}xyx||xxtzsww|w|vsw||rpstztqwzs{xvur|uuvx~yugv||{xtuyofv|rwvstry{|~yyu~rxnn|mmst|wtwywuop~yvm}wooPuntuwsvrzlzrwyylvwvntjzispvettontfooinruzopm}tonvwmnvqyrz|us|svbvtvg||pztpwoz{qcovrmq|tkvprspyo|pjyposnpllrqv_w}t{~jzqm|pnkywvovovwwjnxxt|prv}u}xumx~qhw{g}zysypvmyvuyrtxtwvvwv{vzwr}~t}pqvo}r{zrxyywrsprvuzxsylltxvuouvzqwqxqwyyvmwk}vw~xq{jr|oszuzxypuxwzpuz{ruztv{vxustvysyyprr{vw~t{vt{szywnpnqvyu|zvktzqswmywqwnvxyqywyzrxyt|}vxqvp~z}yxy{wvxsttxj}{z}ywmvyy||zqz{ywvyvvxrtq~yowqwrrurvtxprmsw{xvnqsv|rlqx|oxxuyxt~wxrt|uruxty|ojwsz{nuvwsysz~xxrowrvnpzxuw|}{wl}~yv{wstwtw|{xxqpz{wy{vvwuxmw{{pxowwyoy|xvtwxuv|{rtu}roz}|yxyzzq}xz{xyzzztxtuu|~uvyyq{{|l~uytswx}rrvyovxqurzqxuusq|}wsnuzuzt{|oqyvzronktwsrpxptwwwx{tv|zrolow|o}sx{}tuyqnlp{qzirxy~nrysqxsxxqrvtvxxvt|{gzyyswxtyzxyxu{v}{syyts{okv{wqlqx{~{m|~{}|{|uy}ptvqurwvxzvuy~nx{xs{s|kszzuwppqnrzw|wywtzlms{vvxrysx{xwvsxnzuwszsqotovo}jpwqxusyqryxususs{|y{sw{wwwwyqppwm{z|u{ps{uxv{{yuwy}wtr|prtr|uqsrzrvz}ljv}ztqv|wux}vw|ry}vuvxw|ryxtoxo{rp{xupvqlxz{ux}p~zpvzzstvvwuw~wws~wuxuzwy{zxz~x{syxwv{s|xss}nqyu~sux~{xyuwyyqwu}wunynvzs}}w{r~x}|vqs{}z~wv|~|xvz}wwtyvzwwvuq|qwutu|p~ryuxu{yuusy|{uqyp|uqsqyxpqtqupswxxxszywyyw|x{vqzpyrsqptx}xt~uwz|sp}vstxrtwzxvyzzu|nwzvu{}stpzuwxuxpus{xzwq~zxw}vuyxv}xwpwvyupwovwwtusurw||r}wuz|xrv|tu{vw~utvu|yuur}}y~zvvwxuytyst}u}zutq{rxrurzv~|wzyu{x~xzyzztzzxzqqtozusryr|y}w}xxyrxyvv|tts{xyy|rwxy{x~puzxusswztwxyx}svqyuxzszyunzsy{xvxvww~pxwo||yuzxs}xqvuzttwxuzzzy|wxwqsxvty}pxq}}yis|~v{z{qvuwrx{yunusqtvwzwvxxwtspzzxxqqwwusw|rxvtytyywt~pwvxroxu{yvrx}u{lqvsyzvyx{o|tns{tqsvs{rs{mwxyxz|oswzo~nxop{n|kur{vyx~dvsovsorvwttkys~wou}{yyl{wpwvwwqztsopkxr}tr}u|~tysvrvprx}~}u|~}qtx}ptv{qts{|ztpq|ypwqvzyqmytt{xxht{kny}uu{urqz}{rtszuvyuzwwu{ntntxxnsx~vux|{~x}|||mtyzpr|iz{kyotwwxxqxuwlvyywzvkyus}q~ux|tvyvvzz|`|ozyovwr{p~|prqwvtvrsztzwzozvywwrx~w{x}uozr~~wuxt{x~r}svxyyxzxtrq|xwvrxytutwvus{tqvkjvx{ry|yuyt}u}{nzsz{wvx{ro|yzrjututuuxy}tr}urrozzprvzw}zwzspuyvv~q~wzvwq|t~}sxuq{u~uwttn{|tz{x}xuzvy{t|wz~pryust{t{~tzztruuxxsxumstxp|z~zlwtz{xy{xpspvzozstt{~}szowuy{|uuurpuykwwx{xs{ttwyvxrz|xsz|tvopsp}y}usrtrv|rttrxyiotyzvurorzx~~uwukxsuzr|ypsyzvtrouwozpncssxh{j{y{vsv}unmuzwwp{xsuvoxtyx{vyvz|yszxwxrvxszwuuw|yzsz|wvvxvyto{w{}|wtxpu{}suystuytwvstrzx}~vzwyx|utqsz~n{xt}sqvxuxzw|xvuzusz{q{zsvvw|zruwxu{xyu{sz{{|sz~q}uztyv{wvrvszuutpuozzvx~s|zuuvvzvyxsuzrx{u{zvyxxyvzwn}yz|ytzyrv|tr|ux}}wzszpwvtovu{vywzyt{xyzuwrr}ystpvruxvyyxzyyzt{|tsur|xruu}tvx{xxyv{yzq{wvvp|suwwyvxuwtwxtv}{tw}uuxtz{x{w{ryy~sxtmz{{u~yv|xqqxwvtxvzxuzzyxtosvxtxzrwo||rsv}ztuoywy{ul{zt{vrvm{jyxeut|x}wsnqzw}us|gu{|}ws{}ocqytv{sziuzurtxjnpupwpwvtswprqzsxvy}ptqvzqixz{~n}qxq}uqvsmrsu|xsutqsuww|{|tqs~}ouwvyrwypoy}{n}os~zuwryosnkrirtvuzrtsnyvvoxuxs|sz|uooqxotvzty~ry{}yo~sn}xqorwunwqpyzz{so~q~vox{s|pvw||lsxzozssysv|~uwpyuruqyjzyz{ux|zxsulu|sry{|trt}tw}v{rr}t}zp{vxquw}tzou|slvqo{}tqwvtphvuxxxtvwiwztwswquu|r{pwxwzx|xwyrx~|zzxzzwwurutwxz|ssxs~utu~y|{ww{{t~x{sztvvzyvmzv|zwyuu{v|ywyzruvswrwtyv|{yzyyr{uqxvtvwxwussyuws|z}uuxwwuznyxr{v{vw|sxtvu~|svzzt}xwq~vxz|~rz{zx{yz||xv|w}z|s{xpvpxpumuss}|wsx}wyrszxxrvk{nzotsxtsyuvy}wws|rytyzuxxxtuvusvxxy{uxxvtsrn|{v|w{u|tvizo}smspp~}|wzlurvrursys{z|zux~uwvy~kuwyvxwxm|rwurq}wqw|}xyuysqrwxqvpyvwq~uwtsqouz{zuw|}xx|s|swwzpuxxpxsws{}wt{|w~o~rxz~{t}qunvuwywxx{xuxvwyu}wpyy}ntwuxszsqr{uqutytq~{w~~{um|xzsxyssoy}puwgr|nvuzxzx~{zuzz}y}szszsm{vy{{xpyrw}vu{t~xwyvuzz~uu}}wwtwotyyv|z~xzwwstx}xzy}|xw{uzw{ptutssp|ur}y~wutxtv|tqx~wiuprwwmrxuuusqu{sqz}wp{vvvup{x}wwpxw{sqs~vyyvuz|xqzp~|pt{uuxzsoo{uvuwwxyvzxtxtxotuzzw{xrxy{y|uowqvzpn{vv{ytzpqwvt{rq}uyunz}uxyytvwvxpyrryxtxwts|v|w{ospvxtv{qwywwmrzwwvzv}utuw{vzoz~}wvxkumry}mvw|xxzzwusszywoyrt|ru{s|twz~~su~q}{tmvvuxvr{ouzsvy}s~zywuysyzyzwvpsxppzqyp}sw~tyu|ttv}u{xttt|xzvwp~pyn{vt}wtxhyuwqvrx|vvquwsj|uyxyxzy{s{uvyv{rnrwrrv~qwxsxxzut|nzmmvuuuvzr}|w{|prouyv`ogrxvy{{~wu}wtrxj{}szvom{ny|}s~npsnz{}~qxxtv|vztx}yqw~wtx}rrzuxnrxxrsuwzrx|rzxzu|tkopp}|ys{yp}nzrv|vz~x{yxwuvk}mvruvtm~xtwpxwrv{wp{vsm{rsy{pltnssus~{rlupo{wuutlr~toxxv|xzvvwqoqy{zzvuxpysxv{r~uztyunpxtyqrsu{u|x{{}tuo{zwpvy}||yr{tuwr{ynxluvvsyqt{ynxzsrptzpxs|n~xxysvvvvu|v|vtssr{x}}wyn}us^|jir^jrut{gtxmorywonqw}x_nygrvvz}|wtdzkfvwxe^x}kbc|iurft{|pssry]rtwuuqrn{v^g}{rtcmzcypaydxwy`yqruq]ppd\ukrpuqhiuovynrxir{vgk{mowgvtjytpsmv{vvtp|jswyuofccsmodgryimsjxk\Qtyviwzvwzrvzu{{uwzzzyr~uyuxvztrx}uxqsyt}|xxuyxzvuqv{s{uzqwz{xxqvsszrp|xtxyyrzrsxsxvxzzowuwyro{vs{z~x{{zuzuzysuvtswysuyvz|v|suus|qq|yzvt}wzyut|xtyuvsvxyxz}wuuwuqo{w|swx~uxxwzurrqv{wwzowwzwquszxtwu~{|wpptwuussuxrporwu~yoysvwvzsntvnus}tptxzwx~osy|xxszy}s~vuto|wwtwuzt{xv}|xzntxut{wtzs}sqt}otwxv{uslunr~rsxy{tqzvuuozv~pwsypmz|{~wzv{}vnqyvss|yvvsqtuvxtyvq{|ryruvt{{}xx}v}uutsstuxvw{zwuxxsxjxyz|wstvyyszx~u|xyuy{~vvyuvxu|xxsszuutwzxpwwtszwx{wqw~xvzszzu|yztx|}vtyxwu|twwwtvsy{tyyxv~{vwvz~wzzvsuqqyz|tvxyz}|rvwu{|vxwvzy{uvsupszyur}tyu~y{ztznt|y~|}kty|r~|uxnu}uolxwxwmxuvqyvtzuzyuvrwtxwvvuuouyuuxw}tmyxusyuwxv{uyws~yxpxy~zwvqxyuywuiqtsuzqwvq}mrs{pxzozxtqoy{t||wzz}pyyyuzzry}~kryrwv}yumvp{x}zqzuyxpssr{wy}x|g|jntWtrtb{htvksh~w}mfut|hiy^otjmrpjxmj{]w{jZxutug[wnbyxzro}s\}xzZ{emu{}yk{}ki|iitfnovoeozt}etppmejmp`qltklqdyggqoopl}u|mwzp`|lz}{og}zqnoyovfqrkxcso|pqmlsnvxuzhfgjr}neipass{xggu||^}xqy}uqtxyzzzz|q}vsyw}srzswnzpvr{xtyuyy|uruztzykuwps|q{x}wurtnvvzwuxt~}wruzuuqun}sxzv{z{vxwsuvrzwqvzv{yzzuy|x~zvu~uzy}{w~u}xnuxztwvu{vtvvz{u~vvtuwuyywuyzsysws|wqvsyvzstxqvv}zz|t{}m~stru}vh|sjt}}ksz~oj|~uuzquq|l}|oygzf{tkwm|wutwx}{fhx{p{xqsnzzs~q}oynuokoq}vtlyrnr{xvmmsttsxurtuzuy{tolvtu}xxpxtzz}jq{piqy||xvmt|kwzxyxl|wv|m{{}kplto{|yvtz~vzsssuzu|{wtxpnxqs~pxsxyzrw|{ssxvqzotz~v{ps}onipzqw|owrryq{sv}uwllwyxxxvtu}zxpzqx|s}||{txrsz{wr{spouwy}x|||rqstvt|nzz~wqmvytruuusxosp}syxsvwwtqutxv}vt{}wt~wt{r|rspvxs}zsynjxztnvrqunpz{yjppqw}mqutqv|y||{ysvtzkyyu~wu}|ususzwrurwqw~muszvo{vr~uqq{y|s|wxwxxuy~{{qwsuv~t{tw{tuu~xzzukzs|xmo|r|o|}wu|vxxqspwzxqw|x|r~|zvsxyzt}~ptqup{vusrvx|oux~w~xtuutzmrz}{up~zrmqyuozyttr|vyyr}|yq{~|qsxy}}|huxtwyvzw{qqpsxtyn|jvrruvvuzuyqz{vwxtz|vxu|yzxnx}wkwqv|xwwxj|{x}}vxl~|yy|ovwuvyuqqvvp|{st~tt{kp}zr{{{szt|qszvttvxyrbqp~smyyz~u|{ytttvwxuruvwzsszosrr|ryyszomuu~~{}qolyroyj{pssqrrs{nsvqwtvuuw~pv|tpuyjy}oz~zzt|pxq{tvljotrwvrxytzxxouvknuu~yxxxxtzl}v|jznltzq|zr}pounn~twzy{|t|xvytxott~v|~su~w~zvxx{vw}t~upnzzywsyrswkmr|~syxys}tvwpuuopxypurtvq~xxpytwqvmuqvszy|wx~vyvxy~~|spv{txwhtwu}vzovsz|tys~zxtuzsuzyuwrr{xmvvu{sjrwxsppwrmt~yr~xvz|w{wqtv|v{wzqyny}szxtsywvqmvnrtywvxwwvvyuywusozsp{uqxvsyrp}xvvytupu{r~zxwtzxx{vuu|swun~ru~uv|tvyztwq{}utu{ts}u}tutvux~vvttottttoxwuruwyyqyqtn{x{xoouyyvtuv|yrsuwyzvsy|wuvwvtquz{utswupxvtyuytuzxzz{yy{ruu|roxz{t|ttxwwvyswxz{xyuwrnwr||wuzw~ry}xx}}ows~vvzxuwyxw{|zyxuu{qmy{un|szqyr{vvv}~nwvm~wxs|zxqz|vuwxxww|~ss{zj~x|yoxsz{r}{|yxuvrvy}rxrx~vvw~m|}wsymnvwzu}zyopzr}wsyzxqxss}wqyxqtustyvrx|nrpzww~sw{{wvuttvvr}t{ul{~xxurtxwzvzytyyptsxsyuqjwxvspx|uwjsrxsqvvsyzz|ynt{klyrntsn}lx{yuqsqxunwxzmzoqz~qozwvrvtuvv|ouy|srwx{kprtt|xj~z{upoxqpupqxrvvpvvort|yxpvpr|rr}mxvs}r|uyvvw}rzwo{{ryltvnsr}t}}o~yuy}sxvyuyyyu{xyuy}wmuypv|ov{w||tnw}wz}{uzxnltvoqqwy|ru}}v{vqstzwwzquyvx|xrx{yspuwotsssqvryq}tuv~z~yqtuuoxtzywxxyyv{y}wu}uz~wuu{urswyzsqyt{z}rvxuzzy{}uyoswuxy}zvqwxpzxo{yv{~uk|zvs}xz~svov~sizw~yzvst|}q~ws}|{{yo}|trz|tx|uupttqs{{t~~ys~wksvvv{xtwuyv~tv~{zppxxx{sss}vwx|zx}q{txzwrwvvqd|}ywsuwywtwrst{ruzq|u|n{bxwqr|wwzuz}pq}pn}w}zp~vsvuuqz~uo{ttu~wzvwyvr{rvzrwwxvxssu|u{p|ttttzsx~syw{stow|zvr{wyuvt}u{zzstsxx}vxrppqsuytnv~qovvruruyqupwx{xstz{xvzywt{uzrzuy|xx~uyr|zqt|nxpwt{syuwwyyw{}uv}qw~vrvt~uysvxynzwyr|xtrvswrx|w}vvswtwvppy~{mymtt}uxsnpv}suyuyxyy}xwrtrw|{sttvvtuuytsnvuqzuwow{{s{tvztypvst{|pvto{ujwittwsymwurtuwrtw{xxvyyx||vstmu{ur~wq|}|zr~wsvyyszvyio|qsm{{t}rzyr{lqpwp}{vsytnzuvw{vtpuo{urtw~sipxyl}yssvuut|ytotvunuout|xtr|v~qqq|nw|u~s}tqqzxszynrq{wwtvkzzxxww{qzws{vuzwqvpqfs}qvsrzzysz{lwt{mxsvrs}v{vzqstoqtsprts~wzrtytmw}xvxzx{oqtq|{yltjnztpowmumrvvxqptwr}uospjsvztngwukvvivro{mlvxzyxox{kyzxswys{vyuq~oy~opkto{xzur|wvyz{vzyrwucko|xs~tryyrur~o~swov{xrzxwn~uwxwyop{twzp{{rw~lxoqwxvrxpptvxwxkw{vl}qtxwyrqu{tlomvy}xrpxw{tyz|xv~x{{|{w}yssuypoo{|txwsy|}vz{qu{u}|vysuu{uvk|twxvn}s{xn~v|xxtyqs{tyv{urypyvsuxrpqoszxot}}~s|{yt{zwzqxzyyo~tpnxxuq{|uttyxwuvttvqwyxtwwywwwwy~u{v{ryzyvszq~tlu|uz{m{qqs|{|nvtkuoxswrqpxru{m|t|wq~vunz{plrst{vyvwvswxzg~uw|yzwyyuvr|zsvuvzvux|uuxvv{{vnvwqvzw|zwyroo|zqvz|w}uoumvsktrwxvpzlrvvx|xs|uowyw|qxzrqs{tqqz}ynzytt|wu|wwrmttywyntzw~zwyyqksu{wzozyq|xz{t}u|ss{|znxtzstwvz~yyw{stxtw{suwxyt{z~vzsuzyt~vo|xytpvvyqwsuwvv}vpvut}uzyvvpzxuyuwzs|sx{ruwuswr{xywnxuuz{r~kzwzu|x|t|szy}vzsqx|r{ywruxvtst{{w~uut|zxpwt{vrsqupyyuxs}s{vw}o|qsrxnp|wszwyxn|ws~}|uvrvuuwuo}mkuuvxovzu|tpu|rrso{prw~pjzoqrq~mtwvtv{puonvz{yt~{|x|urtzoz}m~hvv|xyszrwtxqlxupvrzw{wxztpqz|lsyropxiz}{u~z~ttnq}yzrt|xmq{zoypmwuwo{tsyrlzsowtqmyvrwsupuxpzrwxpzyu|rtp~|{tq}uyvvqxy{vvu{wv|w}{swszvpxzxnsuywr{x}~yryzv{tutrwyr{wuvr}trl{vuy{ww{oxv~}x}|qwzyszotypq~|wq~zuwztuqvwx{uwrpvqr{yx|vwxrwzu|quxpvvzutq{x~tsvv}swost|xrwywxxsst}vzvz{vtwxxwps{zuurzov{xyx~q}k{souz~tptyzxtvz|mozw|}txtyzv~wsv|rvrxwxst}s{ysuutuwt~wzzr{zxr{x|~zsqqzz{y{}xwsywvzqstrqyyxz{wxuvq~qxsq|qy~s}xtzsuzr|w|zrzxs}vvtqq}{|{wywtss}sy|xwskxxxqx~y~q~uyt{xyzzzjkut|zuppnz}tx{fquwtwctzztswpQ~tyxip~||}syxso{yux`yy`ruz}ruxu}q{y{}{ywo}x}u|wxlqqxyv{r|{oxwwsotwko~~z}~tz~}rutxwsxx}zuzxxpqjxvznqv{wuywpru|t}zu|pt~{xuy}yt{sq|yztwtuxy{y{vn|uvyu~zzuxzvx{u|s~jp{srstxxst{pvv{}u~szzuzwzyvvsvwzuvtvtzvw{xuyxzuu||vyyuww}x{yxy}qtzvuuzsxvxo|t|tsx|x}vxztx{vvxzxywz~wrtw{{yqxmx{srv{zru}{w|uwozw{xwoz{yrwvwu}{y{nuxvzo~wyyt}}ruioq|zvqvuy{p~{qkwxwpqo{yprzuttzxxwqyott{msr}vx~onvyyu~ssvwto~x}pvyr{~rstlq}xqt~tmw|wwusppwwutw{yw~qvs{zu{wqr}o}~}w}ml~td}wz|qx|smztyvozwtrs}xzwztwws{{rttxuxwxvvytwuw{vrx~y~|squxzrzvx|zz{{tzzxvytvqvy{vvxtsvvuxxwqwvz{ut}yuwxsyux{}x}{|xzwxyuvrwzxtruszzryzszxtz{z~zyx}xxxzx{ywwvowwyzzvwyxzrt|t}~wxvxuyxxyzyyqtsqv|xuywowrgy~xq~~ruroo{xix{qksvq{vtvyot}{yxosp~zturx{yyyuxxozsosqwu{lvq|~y{yworrvwyuysvulxov~sxrxtwwoxvxttvxp~nm|wp~p}vtxi}t||rvvyvvsv}nsxopx|vr}{vmvun{|~}rn~u}zrpuwus|{uwvwxt{sxx{wwwyowx|uxyvo}{rqrtixmyvxxmz{uvpwxutxvyvy~xwy}rxyxvruryqn|zrn~{qzlttysutouvtz~{{wwutwwwrrqwvxouwvrtt|vuh~uxo|zxszkwy{ozwxpt~yz{ttttwwytywwnwtrtpvtlyxwrwv~yuy{wt}tuyrsnppt}ryxxxzwtqz{vluwrxzururq|usxypsoxvrxsvr|qs~|utzourtpmtyq}trtxsy~ruz{vwztx{zuxqyzsxvqxv|{yw}wv{u|wwwtt{rrvuuxnstwmytm|rtsrqvxwywty}tovvxwszu}wsptry|p|tz~zurp|wrysr|r|xrvty~{wyqu|y{rp|vx|prvszsr~}}oxxuwyqk}gz{zwquztzywsvyv{sqz|tvvx}qvxrw|uz}u}}xwozzsyp{oo{yuwoyys{xzoxut|z~tv}{ynz{xwpulxwrvjnpvyyuvus}woopykvzy|wuntvzrpygu|u}~ykmxXuz|yxvx{tyx~xnyui}x|{zgztymqytvqyou}vdwy{pksygh~j~tqoisv{uwbvrstttwzuvshsqxywrkmn~gosflfuzt{wg{xoownulvs|lpt|~qov}sryxki|cjsrxqzwk~ktduxvjpowyvkxtsnpsspvxwptqvmkupsv}|zrwspstwtwys{r|vprurxqw{xlqxs}v|uuttlp{}jotz|}xwz\i|zw~zsw~pzv~ntztwq|rmz_yzrpxysnryokztwysllwvj{rw{z{q{|x{os{ryyuv{~ymivus|uonypro{wwsr|}{yy{yuwwwzytysvq{lw|ruyxyv}pwwttx{vwxyuz{vlxvq|vpvuoxwp{roryuzss|wttwyxxuqlvqqusuzqr|wyyt{{ywsvpv{st}tq~{zwvvz~qwjz|xrtrrsnuxstywrystrwtx}utz~puxzvvvpxuuvyp{~zvvqwywwrn|wrtxxyt~vz}t~{ts~xw|tk|wuxpvpz~|uszq}u~xpsdjvxrutqt|xylsvnwso}wt||uvvz{ouwrqxwyxru}ztyqyruwu}v}tprouuxtxy}|xwrtywrtys|uvvu}wzs{onvrxrqy}tswzrzuttpxxxvnupwwtsvwsw}wwu|qtqrqw{ww{vpqz}}}sov}uqw|wuw|vr|o}yvouwvy}ppumqvrsuvwxux{wws}}t~{rqw|wtx}{rwyquuz|zvv{tuxy}u|qyt~svytqtuxpwuwyxyqxpvyqwu|trrq{wt{zv{qvxxywvxuy{wxwyszxqty~}wyvsy~wv{xqwxuw{}zqwo~wvor}t~|zvvut~}s|vtztz|xsy}{v|rxyx}uzyo}qstswoytzxns{~xnp~wr{vvnyw}qt}vs{ru|y~sz{}quzrprxrut{totryv|s~lx|wsxsyzwyrxxvowyvrqszw|zuwvnnqssm|m~puwv~ssvqsy||{myr~sx|x{y}rrs{vqu{sstxu|lu{zwyunoyxzyspys{vtrqk~txz}xs|v}tvwo{vwwtwuzv{uvyu}pqxosuzrw}tsvvyxv{ssxwtvv{sz|stv{u|qzwy|z|yy}utzxyyvosuw{wsywluxz{uwmxtou{sxqruttz{s}ttwuzzsyrsysyvwzwsz{xp}wuxtuvyuyuxuwzv}yt{wszxrwwzuvvvvu|z{tuwvwrxqvwwpvyxwvv{w{{vvyvz{xtxyxquztxprpuuzuwqv|xptzxw{szuutv}tzs}owts{wxwtz{vuxxk~yovxsu}xsz{sxwu|wzuzw{ruzywy|w}wxrx{yxu}~tssvzvx~mvsvxw}xw|pq~xxzxlsvuy{tvwxy|{ys}wyv{x{r}v}ty|xxzrxyzzrvw{xys||utvzxtr}}{r{tzwyvss|oxtsouutuz}vxurzy|}rxzq|tuvpzprv|wxrsy{ywywulvsxwsv{|wxr|ytrzswwuwwqzvhywuw{jwz}sr~p}vyrt~~qquiuqswyq|utuxxtswt|ywxxqurqvq{~so~zsxx}tu|}wzvou}vysvuuzqzqryrp~vyzrwxoyxwjxzvu~vtkoxwv|rsqqtypyzswosups~qn}qxt{usrzqtoyszxtxr}qxtsqmtuvy|xw|z{~|uz}mvw{z}xrywtsx}|xyrtttwrv|||p{{x{~xrz{tsuvzu|}uwzzhorwyquzssz|uqttzuxp|rpmvxzoyuqwwk~wvmz|v{tltnonwzyytq|xr~}nvyhqzsvxy|tnxr|u|gpvpq~vzvwwnsvsv}wuhzrjoyu}uypuzu~~vwzssp~zy{srpuurwsnxor||y~wvw}utszywqzwqu~plzwvjzy{tuwn{vw~x|uwrut}vcvwgxspwrqtxuqosws{s|pw{puutvqtymyon{}{upzwm}}x}tyzwyvqox}{uwtx{xwzt~xmvw}xxvvu|qxs|~zmypp|wtw{qv}wvt|wqu|{tz~pwzvy|{tupsy}w~z{srtzvw{}xntv{yyzvnvyztty|sw}yu~zv~txvxxtrukyysyvtzrvt|rupqsnvxxnwvt~yyvwyqupqrqqtwvzqrxyuzwxnnuqtwzomsuo|x|rhxuwrzyqqnnu}yyvurqzswtswttsyrxw}qowypxvutwywyqwsqoyvvy}yztqnr~|z}uurtnuyvxyzosuvxzkrvwntuovsqu|zqqt}q|{txmrr~x|xwwvzuxtqu~rsspzyvqorrpwsoy|xp}nslwov}xtzw{txy~yurwqut{ousxvotwrs~oynrtnxtx~wxsrtz|guxw}novzy{s{nlunuqexoxzvsusirrq}r}uuxpzvt~yr}qy|ytwtrxlvs{rtwxqtwvrqyu|}rvsrzvxsyyrt{jt}wpwrwxywwtys~ouvxzwwvvyu{|}ltzv|{}qx|zpt}zymxzrrrr{~|ww{tzyqxsrtuwvx|~z|twy|tvryrusuvxwxvw}{tszuv}msswnuzwxqwxiuw{vtop}oy{vuptuu{vwty|s{vvvzs~vnxrxryvy{v{zvz}v~uyz}xzuqjpnrsuwwvrlr|nxxvv}t{opk~qz~xtpwsophuvpztzatqt~uoxlrzuxuswxjqrwtwrswxl}vo}~tsqnp}qovuovjsi|joz~vrqxnrtryryxwouxhk|lrlxrwvu{tytqviot}u}ngvkwoskrp{qutpo|opxyouv{ylwxwxwrymwqoqplpyu{xrv{mxoxw|}rupuzzwvjurqypv~uvntwjqqrxvn^q}qgxtzvqvvnorxun|swvjwyrlq~ykbx}wlrywvwrnqpc|~q|uwuefuytwvwu{munzp{zmujquo}tqlj|d|ynp~}u{osvqxszn}yous|nmt`grw{jeylopdrvzmqiiqsfrwtiro`|osoxztuselvuztl}zfw~stc`s}wyvzmwvxputqz~xy}|tswqq|nwv|lo{uuvnvr}w~yrxwir|sytyrvtpq{uysmrnwxkuvwltsmwpvtvvmtjw|wttx|l~~qhwwuyxvh}xrw}rjjr~vozyonprzurtu~wkluvskuq|xqu}{vwpzxws{uxplnww|qyrx}uzowrunvx}{hrvkuqwzvpl|wvv}|sx}{srz}{xr~~qz|}xzsswtzxxznpvvqvvs|zyr|y{zvxvxvzqmo|lzoupvxupu}xr|mrzvprwws}zuzivq{rznz{z}sprx{trvt~r}{v~x~{wsmvv~ypr{vw||lw{uxvr||hr{ywtp~y}xuvmqkvtowwm{srzhs}pr{s{lhjr~ipgqsj{ix}msptrktuymrmonqyq{t}vc~wxqzfpwmmd{qrm}ezoen|uxrrwuk~omonrvrg}yontsivqosuywvxpxxqpzoq|c~}zuexstxriyoywy{vnxp~vrsrxiqwjtvptz~vtut|fysrk~s}qpjy{srqopvl{xvu{xqyuyyprypuutkru|p{yv{wxpxqzusp{|{wxt|}twxv|xpwrrzmp{rwwtoyvwtvwqpluwuv|p{yur}tm}wtkwqtxxtq}uwru}v|owowyxqw~{xuyr{{v~zwz|szxyomyuztws{y{us|z~utxvn|uzutzwvv}uvrrwxv}tnmwutzy}zsuvstp}nmvwv|{wtwyxnp{ywrtp~~p|uxy}{z}os{|rxquuzuozjyxuuw}yo|rsuuux~qst{vu}xwq|r{}un{qorzxswtvzromytzvutqmiqywx|zwyo|ply~x~|y|{{uszoy{x~xyrnyxvzv|uxrwsvlyn|oq|trxyyvzursusvzrrwysy~lusqsovzop{tuxw~pp}{wswq}rztxivxxwsqvqrvz{yuxuulzsssxswxw|zjrux}{y~|{zznv{ts{zrqqnyusuyqqxvzx}~uxzr}|{qs{rn{txv}vxqxvtwrzrvwyyywxwvuw||w~o}wxzxysyqvvsopxvzqqvoysoonwzpr|sswyssv}sutqrxvuzovwtlrtv{wwvuinwsuj}rtoouynuvwv~zptrypvvmpv{rooqwxwqu}{yzlxvs~yq|tzwxrttutuoqu}ysxzyvw}}{zs{zq|v{wtsv~vxyxryoky}xts}uxt~x{|w|xs{uu|wquo~}nrlxtqzzvqf{p|pu|mztmktvfzslskzykuwvijoyykuuoiprrwdyukmzz{r~|nlpprirkzwttitvxyuzznitqswysxcx{poljwjx{qdsygywustyrryorwzeotvbxqmuvxxmqtlkpcomvi~w]ymqutwtvzvpzwjlt{{npu{zpqt|ghgrw~xpqwz}|ttqnzlutr}upxznwx~xyy}oqzy{my{s|xzxwzltyou{zo|yz{s~|}pz~zxurxusss}yyrg|zvzwuy~}zwptrnsxlw~}unystotxtrr|~zssmrntqzwyw|vv~~xurswwv|qxusrwzsyrxvvru}tsxvsrv~{vqvqz~u|xvyruzpytw}}zuvtwyptvwt}}zv{}rsx|wyzwvy{x{zyw|uttywzwqxtvv}wtuvrtwvvuzno}{svqtwyz|qp~wvqmvu|wxxqrputx|u{vtqvlrxxuxuxturvlvy{usxupsu{}wuttnv{twv~zqsuyntu|}swxtr}wvysxs{zuzvxyprrxww}zxzuswyosvxuyxvwq{wsu|ozyuqrzyy}orusq~vr}}yvuuptysuh{pqwx{{xs|q{tuvz~pyy{wsurpqwytxupyvvywxw{yyr}uyttvy{~prxuuwt|x~tt{}~r|pvvsvvxwxzxx~xyqt~sp{y}s{xyx|ut}{ztxqspnvo{qyix}twt}stwtskxuyulzoxust}qxxq|tlmyu|mrknlsu|ww}qsozyskrwu~ju{svq}wt~ovx}kxvrytxu|nrpy}vynsxvut~|xuuxrdypus{zj}lzxt~||uunrlnsq{pqsuunfbuyv~zesq|otpwnyy~oresvuxuv{lrtmntvxtyvy{rvwy{yq|wq{{ziwwyqwruwzyzu}{t}vpsv{tsmqu{z}szqx{xsuuqy{zwnnxwxwuux|vuttxup|uup|wwurtx}wuzuu~my}mytoysuxs|yxy~p~u{vuwyz{vr~v~wvvuvuqvwvuvovtw|ypvqw{{sux|sqvtyvurzx{szvw~wszwv}pruus|vtwxyvr~vuwv}qxwyq}ysqw{{rn{ss{swmu{xqxyyuuvx}u{}rusvzpvsywrtytzuytworw{ttyrw|yywvy}nx}yr{xpwx|yywuuxprxytq{pu|wsw|zluyyuxtruxruqutxtyyr||z|vxyuwxqsw}zvyru{t}tqww}p{zitsuzzvnyvvtwjrwtty|xqm~~tvtouopwwtjqrqqvn}iyu}|vztztxzxvzq{xv}pv}zstlnlt~vtvssjszrttxwrqrsxn{}vtxtrrlvn|mrvrsmm}uugqyumnu{o{oxvxsjqupspwwsvsqtrtu}xqqtyz~wntxsusvsqtvtvwu|sywwktp}ix{wvxlpx}|nqrxsqiwzuwrm|ottrxqrwxkti}krzunxztz|pszrwsynmvxu{{tvjvttvur|}rwzp{\wm{vsorw{ooxx}wo}|tqrvtxiyuo~b~wfgyvus}}zujxlsu}|~oswrytrv{sy}vxuzuorhwstnnurvmonu}sx{qds|qnugqpxuvtotwtxzuuz{q{wxtzuwstssnz|vo~wts~uyy}zpx|r}tnwiyupw{rq~ynyurqvp~vqsv{mutpuuwqv{tvv{ux{ukxs{yswxxtvx|qqssqutuqry~zr}wmrpx~zvyutxxqruzxnxoxz{vvsupxww|vzsxqzpwsvmsuow}szttvxuus~}{|rz}pvunwwqztx{xznuqt~xyqr|zqoss|q{wsrznyujzxv}pws{vytyr|xyuyqx~|xqsxyzq|qw{|wvvr}vzywwu{xrq}uovszvzqystxqtqvutwz{~uvvptszur~|txtn{yswyw~ptwuvzpsw{~utroxxsuv}tv{o}urtpyru{w{pwxvzs|xr{oqwxopqxmymyw~upz|szqoktjox}xypupqy|ux|qvztlksyyuxru~{lvqkkkpztzyxsyywtwuuq|uzzqtuqtvyuqvyt|qxz{r{vx|qov{owj}uupx|}zp{yrsuwlpxrs}svzryqowvvvvuysuysy{wtyssqyhv|wuwny~uqtr{yt~zpv{rzxwz{o{yt|{xsu{vwv{r|}rpr{vxwqrzyu}rzvxwxtl~zsrp|yvytux}|yt{{s|vptuwq|rr}vyvuxrwwtrjsrytr{p~v~srwytzun}xsuwyvn}w|{wwsyyrry}yy|}|}qx|{xo}vrvwwvoutit}uspttrxzk|qxspnwvtzuuvk|{{rszpwxmv~|zi}wtrr|ytvuu{q}t}yqq|vlv|ns}zsnl}j~zpwwytuyhtnnlpso~}lrwsxvwmuwxvsw{p|~s|u}{uu}vzxswvqzzxqxsyworfv{ou~tuaqri{y}|~vvsiv{~{ziveup|unlvoqwm{xx~}{uwxyrykypwry{pwsw~p|vsxvrxvzxyjwv}jo|z^~osiqwi~oyvixtwvzmytwyyqrkmtotmputz}sn{}sqjwqyytqxtexzxou{{yy}zq{{xqqzwuuorutywxnvyyywzs~vset|uuvs|z}wvttxkzz}kwttq{twvvsuyy}tpyr{t}zz~wzykz{tyv{zuv}k}utt~~vwsx|zts{vpz{zstvz{lqxr}x|ryuqwvy~zlumv}{t}{{vvwy{|xm}zuwkmqsry~uxisrqztv~}q}yuvvvlt|zqsy}x~|vvv|wuuxwuyzvnzv}sxxpytuts~vupowyxt~xvu|syixw}u{xups~yzuxuvurp{n{z{zvs|q}trpqsxv}vw}vt~yvyssxu|t~ovzursqu|r{ntztyrvxrzxusuzow{tvsstt{}wx{uyqh{}wswwttrq~xmmx{q{{}~z~xu|yttt|rvv|{vxwotvxv{yow~vpvnwo|pp{t|q|xttx{qxrw}uxwww~yuu|xzlu|ympzu~}}zqvwtxvrzzuqtxthwu|uur~xvnuyxwuws|}t|yv{ziyqs}wtkwvuzwvyq}rtu{v{rypvp{wy}y{}wwtmv{utxuwvvownttyus|w{zq~{vt{yvssw{mtunywwsvxzw~vyvxxzwq}rhytxvyoowuyyvy|s|smpvyx{zyu~xuv{}sstsrsksmtsr|qq}w}ptmsy~~szqsty~~zxxonmwuswy}tltwnrzwkr{}s}quivntwsqsrswwivvvmxnxzosmvruj{r}m{}vzyr{utyixj~xst}~|ptnzs}wqsu}uqwsptvtyzvvury}rz~uu|x{}ryuvkryhp~u{~r|swzzjnptvrw|yxno{hrogtvyo~}mmotvjxrowwo~xrwzquwwptppoxtyrqu{xmnl~vv}ewmqrl}vkomu|~}xzqrywthqtpwustjrxsuwrigy~suqsspxvopsjjpl{wvnzwfkxzxjvu|rx{z~wzyyvmwmwvpsyyomrvvitxvnmvttsyyy}w|rr~tyntywkvx|przrvytyqzu{zsuxzquovyy{|pysyxmluwtxu{ps|wvssuv{wrmrhsvopjksssuziuy~x{qrms}}nmxwv{wwtzxuswy{jyywnpqnrulruov}pwurrnrxuktxwkw{|o|wwtowwxvrq|qqrqtqw|t}wymsww}qu{z{}yus}z|s}nwm}nwo|~tzy~yqopxttx}yuxzyxqyr~yxrsyn~v|v|rsxus~wx~t{wrnszv|t|uwxupxsmvstrsl}~tyvt}}z~o}twtph~wlksv|stywo{pu~~~z{mpm~zvq}snpouv{zzuov{{qvxursuvwwxqz|~uxxrxu{|zvp{y|}w}xto|rxzzuq~|ur{{wvn}}u}~wqxo~tyzmtzxt|vuw{r{ww}zsyukxspv|v}wynvqmy{|yovyvvswssury|r{wxrqykq~wux}rw}{tvpxssynuuu}ozvwrsuqplpyxltuuzrzxyxy{xw|zxqt}uryky}hrvzturtxx}sv~zwqojrs~uw{w~z{n{ysvt}uo|xr~s|}}{{jrututruylzwq}ywrxu}xswuzuq|{~snrrqytqvxtv~qrmdm~vtvwr~kmxov{zyryuq{vxu{l~qxrss{ztzzzvzxvuvostqoqxqvxu~v|mrwu|wz}}ywysrprzuxrvt{wvttxqnuwt}vvt|ltvozvwrzp~ryzzy~{tovttxorvzp{v}~uxzv{wwrsyqyrss}xyop|vsxu|rzow}{|wwyyvrtysxv}{{yrr{wuyvrpqoysx{wwynw{xztutxxuquw~zttsw{qywvwu{urxtuv{zqvsxtyrnvvxx~ussrxt|sxwxwxttu|vw{pv~q|v{svyoqzwtn|usomuz{{}z~v}{pwrtutwzz~vxwv}|utryqtqtvuuusy{styxt{mssxoq|zxwusxi{uxssr}o{nz{zuwoxt~vtrqrxquqz{sunsw{trqy|twzt|pyvz{zwuttmtnryxxvtwsoxnwy|zxxtuyutpprruxus{z|ut}prqvw{m|pvsxs}pyzxyustwuwtw{|{ozxuxtyt~pqzysru}ttzzv{|{u~tq|s|nsyy|tqz|wwum{jvvvvv}qyztrqsz}w{|~zrvwsv{z}yytw|usyzyrtx}x{}txsrrvxrxypurv{wv}s{twzovwpzzumr|qu~vyrourwxzxyszyvwz~uxtz{wnyo|x~t|x}usyzxyti}|p}pvutop{z{vytvtnzktpwwzo~|pztsyumsntv{qt~u{uw||xstux|uv|vwtoyttxsrtxuw|vv~srzntwyzw|qyosrvusjzt~vz{xysxxorvu~wxrt{xtyuq|zxytrxtqtxuhuttppsqzuuvxvyu|pnpsy~ryz{tlp{mo{xszvqrpxsrvvyoxpv{t~u|psrq{orzwos|nvtqzsxnysxs{ruzmwwqszq|pxmnwyxlz|vurzprjsq{jtszywwnuxvszxuopzpyxuqpmswsyy|vqptw|xx{yuy~qtptyvywskruwuvvuozo|rq|vrlzro{|nnuxnw{sukwyugx}rhmoxvrwpno|wwqizjtslx|gkpv~mn{rsnvxqqv}htmw}ugxo~pjywqov{ozjv|ttnqvsszjpvoqvxq|zwrojtotzzmwx}suqtlsqtpzzyqmnwpyog{utkthxo}xo{uvqytus}nz{iotn~wcuyuryq|sowvszx}sytxtpw|~zt~ovypx{uywuutwt|wutuspnvwwrrousr|rw|xvtmpv~tvwrywvx||px{swtuwvxtzxzsuyyu|~v{owuvwzs~}wx}{nurrrz{srxrytzrq|yuuwzs~uo~vwyxryvx~|~tyqstxvusvu|yyt}txuywzvwzeuqtxqyyyxry{mwqrrrv~{qynpz|zyt~xhrqtz}vzlzvt}w{rsyxvvmzwu|xx{wpkfw{soo{}|ylxwpurl}w}tv{lsxsmspsys|pw~~x~xp{xw~{srzjryutttutmuuru}xyypos}}j|lvz~j~wssqvl{~~yvtss{pv|ki{w}i~}gqrzvsuyxuu{{wu{t|v|}v}izq~z~o|zzdzks~uuozuuft{msrztuyysy|rzlxusxq|tqlqmoxsxknz~trl{uyp{tmvt{qywsr~xqoy{{~v}w{w|yztor|~nmuwyzxwusz|vzrnztn}zyvzqvzyypryywvtjrpxwjuoxxspovww}z{wtwxqwj{s}xvrsq{rqzvxtruxvtw{nv}~tmwtx|oo|vxx~qywnl}tuj}nsrn}z{xzynkkwt~zqwvqpqqoo|ygtv|uqjzsvrlp}{w|t{zpypyrrkwqwtrt~pz{mqosrwvxxwzrlmw|u{pnqnxuqozwi{|twoqx{royn}vyw|v{qnquwsvujopztnz{~wwruqotwqqrvk|tszmmu{ntpspyqvys{pu{jlulv~nrm{nvlspnqiy}jr~~rp|||rxsv{wuxmoruvptoky{ys|ryppmwzzpwnp{nvpvowztrvrpuitxum{owuvitylwsukz{n|xxuqtispu}~jppwukoxupxtn~qopuqou|{~u}iyyewyj}ut{wuywps|t~pw|vzv}~oznxxoxqtyvxpozruyqvk~ypxyumz~rytzu{esuu~unsvuupo{u~{spvtzwvypoxq{zhnqvwx|xxwv{xsvxyynusqu~yusq~|ym{}}wxx{vhtpyyzvqtysyv{{ysztrwxx{mrvprz{mwsgnoy}~yuov||y|}rryvyxvyv|xu|zlnq{zvzs}vzrs~u|nvkmnyr}|xu}n{s~{owu}prsvwztwvvzwzqxm~y}lv{u}sxx||ort~s{tqvv~my|~vwokttqwsp}zxzc|lx{ywrsx~vpztuvvqszl|yumutszt~}snzru~~u{{yys|uzxuys}xmx~w{wso}||}qxzqwuvtystsuwqtvs{{{xoqqsts~xwuvsv{{}xmtyyzrttyvt{p|vtsq{trstwsqsxrwuw|}tzusvzzytoqiwvzxvri|zousuxwxxwmwutuxtxtks~wvu{uouvxst{zuvxwvsouypwsnzyg}ptnjqwjynyvtpsstrrroxrxz{xttwv{qrwutqpx~nsuxvv}p|nvpuhy{n{ysmyyw|st{pqkyuwmxm{ugxnuyixtvnptu~tutm|h|fwyrv{tqosqnrn}ow|ztop{~{ptyqvmurjjuzt}vx~t|u{x}|sjw{wtlswvyxyy~m{qs{ts|pvu{qzrvqwqsypvuqvqyuuywpxv~xm~msxkoszptuxxrz~{yzwztvlukx{zvxu{t|y|qryxtz{zqyqnqunqrtwzt}|ry~z{xytzzr{hy}wsuss|wy{zrmx{ypi|rxrznnxlvswwsnrpnurtqrqjqutvzu}lp}xqwtqos{uuyug{{ux}yyxltorwrxxvsu{swygr{jsr{tosiyvyxlx{ymrzmqq{nuzsyt{yvussvur|ozzt{vmm{wuz}nwwwtwwrs|qrtvkzmq~wq|jxsmlsxtrxtux|pqswtnws{guss}vy}qrqjnyvkvtzuuqrmklqgv|xvslrpw{umnawypier~hzlpwrq}z~yxyymuzvzhdky~{xssu{vqxov}~{vrshzw}vqrsjjywxiynyyxttm~q~|jdxqbolv{[{tuswznysv}yqzlxmhuxlrkszr}hqs|yvus}zes}pbivoiyzpyv~p{p{wtzznoujtrtxtmvuvwzu{ovpwurzquvprn{yiyxt}tsx||vtyvtsxvvytrxw{wvvotzwrxysvzywsvwuwsxwwuykt~{lwqrx~ssx|qryxszvunp}ownrvrnwv|{vw}ozpyt|nwuujwxroxxzyyvntxsvxwsxtqyisnwqxs}tzwxw|~vw}o|ytqttxlprunvrxvqxxvlxvxnxk}lyzusp|sywwzsxxzrz{tqgsoqt|{~eowxr}r||uyzwwn|uwztuzls|}tsuyyyv{qyrv|~zxqx~wuwvyzv|s|wqxv|xywxur}upvyt{|iyxu~rr}||nzqruvvyrrwwm_wmxwmzzm{zutvsd|p~vqquqx}srkxvzuzzjrv|z}klnmqvyl|}tyxxppq{xust}}vimqvp~ytki|xs}wozyxl~~kzyykynsqjo~ykpxqztpuxnupyqoqstpguywmu|sx}oomzznqpyzqwvpqlquy|w~qpvrwzzwutvyodj{otjxst||p|l|yupvx|vympvy{|ztq~putv{o|}rvnqrlqvkwxfx|rsvqto{{|xzxu|zpxuv{yuzqtpoxsmwz|vqqsqtwpmqpu|tvou{r|yvrqry|vovsyrxr|rzsuowu{xyqwuq~uywtxjttkmwpyx|vtr~x{{nynxuvtqyzo}toztqyrpkwzvyomyr}vtsxw~t||y~wzyss~uvtorsnnu~fvxnvyzvn|yqpxrrrvzryvyysvxpywswvoml{xt~{s{n~znn}rsy}uww|s~u{yzjvpmqsvqt{w|z~ppy~~wtwxrnlvn}n}pqqyqzstxzyrqurzvt{vrspsr{qr}wunr}zvttmsvyovwlvqqqvvwhsywjqou}ts~pr{~~{l{zvyqwqusu}qrlz}rn|oxxqxsvryrmuzsruxvx}~vziynqzz}s{vkp}yyvqpzrqwyvyqqkzuploo|xwkq{ouzqvqvxpyvljvtwyuxqmylh|}tx{zmqx}qq{vvpz~yv|r{wrqq{z{rzw}sx|vuvtuys|{zzw|zvus|wz{wqxp~vktu~nxtw|~xrqyuvx|w}{qy}r{vxsxwyrzrry|u~ky{yyylsnt}xs{zs~rzs~ssr~xu|juxvutywyyxwqwxtmsw|zuz{{uxuywv}}owvtuq{zx}qurxutsvqvvx~x{}yqlrrxxy{xo{quysrryvxrzyrmwounvp}{w|swqrox~}vwuuoqr}{vopyt}stgqzx|r|ywnt|sryx|wrrtxuxmv}kxpquzwqpm{wr}uwxvuzqvtnz}pxwvsrtzxwhzo}voyu}rwp}sypnrp}xsz}pt}n{zons|tz}sso}vsx{hqrsyot|ztv~~{qttst}{psrq~}txz{{wykzt{rqyv{ymox~~z~kx|qvq{qjwwuuq}~vjvwl~shpt}{ru}uw~|w{|ttvu|wwwxjgu|rxpzy}ujhxurvpyodeotvwusxzshvrs{xvwwxwcyy~yxv}yvz}ykxo{{zuwwtklpn{jy~gop{z{y~xowy}pzwt~ymk{szwx~ro}{xs{wmzqw}qxzzryyuy|tlury{yuox}vv~jwx}uvwxs~y}xyjzxt|r}zuysymvuunyursvpoos}wurx~qryyqxysy}rppup{m~}s~yuuy~uxvum{~tu~to{zurxt~qttwv|wvtu{|uzwx{tyvwsxzspr|ywvyqxtttrwxtyrssvzwuvuxqsvvqlyyuqvqtwwputu}sytwz~yyxttvxuuv}juqt}xtj{usuozrvz{x}wxkptu{qtoylmnvrut{qvwwwspwr}w~trtwzxqqzvyzzuvyy~xryzxwr{vu~|t{{qn}wplvu~}no{my|rov}zopkmm~tuyxuuurrs{wyuypvwopqpz|n{oypvo}rcvvwrvtnquxytwkpvrmpusoxy{vsynvsxuxsxuswvz|jupsqivyj{mvrtstntrvyo~n}ww{qvxmmswryrznymmusutxwputvqvvmvqrmw{xstsryvt{u}|zqyqts|uswwxt{txztzyw{x{}ytuxtwru|{|xus{xzv~rttwvutt{rutxrv}y}rxpvuuttxxwv}~uxx~xu|u}}|wpswvwuqurxuyxxmus{uqqjutypyzxr|xu}xvxlstq{vqvixtxqvrzwtxtnu|v}st{u{ytuzxxuusy|yumui|tp{~nytx|uvyy|sttr{}nuxkw|yw~yy~yw{txuo|jzsroos~uyvpzqowuz~{tpqqmrmupsswkywzwjqyuuiwsuzy{|pvxox{oyz~rypy}xq~|pmrtwwp{tnrzqpyow{ozkjrtnx}txtvwstyqsvxvuz}ttxpo{ryxpyqfqznt|vxwmrssk{rqnqoysyz{usnrovryyw~snskpv{{yptvxyuqrsnwrzqtuvsk~zwv|pu{f}r~w}r~{os{qyupozvxpr{twsvvpwsqxpxv}q|titwu{tzx}nsypnpsvlyp}qkvuu|jyzqmpowyquspwxw}yysj{nuxt~rvuvjujzs}rlvntuus{{uttytvy{pwswkuysonsrqjzsox|wnlx{us~ztz}Nomtrvktr{qt{w|stosysvzysot|w|owwlwstoqnrr|nrwwsqpxuvhtozrmnukxvxskpxuyqqszrtwrtuprwrtxwtp}op|xuvylvvutk}kvop|s|ovntw{tuuqzowur}tyxp{vns|vmszwkkotsz{w}osvwztn{vvyluttsyrwpx}tmz}qxyystuxu}vo{yur{r}{pywpywtwy|xtqzuvqwqqt}muyspqq|w~pxx}utt|twqtrq{xjswwplsvpznnp|vwu~zxvvor{wytswrrt~{|vtrxr}mw{}s|utuqtt~~uzxvosr|xpwuryqs}xtw~|wxtzoupuwztyx|r}{wqrr~syw{uu{vdywqwvxqwyxwtxrrt{yr|rqsxmyvlsq|qvquutvunsuv|wypuqvwyw|{mwvrx|vzxr{yzvvxnxyoyy{t~~v|rgzwv||wuxzvqvu~zyuqwwy~zwy||w~|vvrvsmvuxxxsry{twtusvwsprwvvpyprvyyryuntyvww|pu{u}z{ylwvuysotwqu~}vu~}}rwww|yvsvtxvx{tp}ynwuupqr~|zvtzuuytvou|v{z~v{xuprww~y~wqmuvxtwv{wqw}uwvrtstxqtt{upvz{pr|wrv|qywstvuyottqswsnzrx~yvuytv{twyrzpzuyzwyxuttwqurwtt|tyyuvrvxvmvztvxvyl~{xpsvzlytu{}p{oxxrpuvqo~{x}~wuv{u|ysvvqsmvutyt{vxyxyuqylyzt|{vwvqv{uzrvwtzup|{tvzq|ouy|x~{yyvsvuyquuskrq|yt|sxpwrptzv{wpvtvyupuo}}jvgvytnznd{cqYv|yxwrrpvpors~tiemt~iYzqnjisvysptphbz~qpglrquodyxlo|vunf}ss{~w}qe}vo}|~jiztp}o}q}dqrdhzwnuvq{|~|hkprutxlyar~flmwqcorzjbwrelv^vnnuuxntn{txlxpuuthmswqkwqoowszh|qs}nz|quvuvozvysy~v{tmr{quzx~{s~qzuvytosyvqyzyuz}muqvzs}vxyvwy|{|xswsszttuox|tuwqwt~ytx~yvzttzv}tzsvpymzqsxuxow|uyp{y{uyry{|{vuss}twxxu|s|yy~|s}ztswp}vtvox|ztv~q||yp~wxwvxrulzqmptyxx|jxxp|vzltrsuso~}zy|}qst|vv~}z{ypwr}z}ov|txt|ppy|pvutsoj}vuvqvwz~qpxuw|st{{uuxgpr~upw{vrwzw~vukskvyoyysvsuwpw}|zsoywzqywtmnmy{v|tylzrnipxy|w|vy|lwwvx~xzoxu{n~tvxmwsn|tv}snx}y{xxqtssxvo{yy{}qvonysyvrstqr~{up{orzn{ozxqu}zpqwouxxsousw|yv{vspxtzqlyssyqvvtvzyyxr~nztrvwq}r~tztovqnx|pwwxupnvq}p{tz}smr}noptl{qoy{lv|}rrzywxusux}py}uu~s|tnw|{ypwsr|xyoyupubz}{uuq{qxqstq{nxw~tk_tzu|os|uv{jvou}r~nrtsz}~i{m~|tpjtrw~syv}ztox{or}~q~qjxz|nrh~ssotputtul~xqvtyzzwojoxqrtumyqqxwnxot|woomyoocx}nvpzsynropsesvpq|vpuptpv~|sjusryzuvxt}|pr}xkoq~xrtq|xsyqvnovu{yy}xy||tzxyz{r{oulvuuw}mrlu~lusw|ywvvjr~{xvjwnztvvrk}gl{hzzqqn}zsu{qwvqtxsny{w~znkvxoopvu{ztmsyry{ys{ttmoyrtruupvjwuzmmt{ty}uxuyzw{kqptr{|owlr|sso|{xxuy}orttvrtvw|vxwu~stmy}puygzsjpvuxxxxtxvyzxvyvs{qwv~}owroorrs{q{x|xvtypr|rso|y{|ypqywsrr~yols}sttr|wtxtqwqxnutwwtxr}q{ysxu|xxsvztxswyrvvrs}t}utpxwuzrstrxqquswpowwutzrryxz{w~twzrrrsw~tvuzty}vvrtzy~ryxuvqqwyrzy{{rstx{t{w|uvww~syxstvp|wwsvzq{nxyyz~lxsv{xs~upyqyr~wus|~psytwt|u{pxxrwvprrx~{xuy~wqtnu{yxtruwzw{{xvxyur{uuuousqw{ypkttwxrzrqpv{tyvtut{zvswmzuy{ttuyvwtr|ttgt}mtrn}rxy}}yjposss|vmwvuzsurmxuzqtyzt|smvtws}}ztyutqx{o|~qt|ltv||wsr{|uxuy~|w|tnv~wvzl|wxqu}vzpxu}|uvsv{io{wyosztrpzyxz{qnwzx|ryyypsp{vm}oqrjtrplozztvtuamwrts|~pxvw}wyqxsvtqss|ytwxttvvsrt|lwvyqyusvpvnsmo{uxrx{yz|t{tqu}q}twz|u~lsa}yxttsqhz~grtunsfmzszvrz}woxvttqqvxqostqv}uuswnykwjzty{xvvk}kyz{quvpyqownywmpvy|r}jyy|wy}su{yzrunrynqvt{pzxnxpuswuu}tpuupnqxvuwuzr]t{{rwvuuptq}qlwrwutvuux{ivups}pn}qrukzqns}}~j~u~urexq}tzorzzrmywxitquxurwyu|rs{u}{vwtxz|o}qrqwnqxissw}wvoyx{tyw{ymrxysztzurqwztnrutxynhtqwzwvun}vvr}spus|fyql|vtircrguvvtlpyspkt~n{tqtvnrjdtpmwx|wys}nv}xlm{qquwlpurtpttwlmk{|ustzwwvttl~mzzpz{xmus{r}xynwup{uurtyowridzqtvwpow}wuurzxxrvsrxvt{ouoq{xqrqzqpqxv|{wwszqnv{nl~w}oqqv|t~vp|us~tjqi~ur}jttuq}|n|mq~zvtx|ww{p~{u|jkzxrqsrysxvsyx}vy|xt|yu}tt|zuq~}uwutywvhowuwnvxsow{t{snktp{h{q|yowyzxuzxvytvn}~t{m~qspw|vxivs~uwttwynvzrxotznvuwztowts}z}zvpxuqqq~rysulvyprzupurz}zxvvtxv|tx~swuqwqxx~|v{zwwwwzyorywoxovzptruwv{w~owwt{r{xmt{xvv{|wpz|x|qyputyryqqk{y|tpxrsuunwusv|wwvrz}s|psttq}utvrvvwylstrzw~{|}ttysr}yt|{pwny}{pwouvyktuy{wpsmsqsw~|x|tz{|tzpwyuy|uw|uqvx|y|typu|twywwtrtrtwqt||t|tutvuyrwpyyqvvvv~spuxsyxzt||}mxu~{ttyuxx}wxt{zzuwx{}uvzsu}vrq|uupvzvy|wvupsxszs}s{pxvuzpvqyunwwsuk{r{vysxuwz{wty|oyiroqyv}~pptyr}{xuz|tvszynrznvql|omtvrrsjv|tz|y~j{v}w|uypr{sv{vouzwsjzsowxzvu~uvuutztpp}qxvtsptzotu|p{|v||wrmorwn~~svlqrmr~ut}worz|xosw~ws{xqr~zwswvyuspxo{v{vov~vwruzoxwuzx{y{tsxty~pwv{vrvrxutuqvtyztrw{qqrxlxyzysswsyztp|~zwzsfystovuvswoxsst{r}x~{x}xpyypttvrxwv~ss~xsxvys|swywsxsws{qtztuzsypos}{sxtsyuwxtsx~ruwtrw|zjztu}rolotvzunzzqjr}tqtzxrz|otp~vtrxxwqv|utt~|vorml~y~~ytqwtv~t~wuultyyswqss|qy~tn~{hzzywvvuupltvvutz|zwuz|yxsww{vp{myyw}vuwvpro|tkyso{tzpuy{wrprnvutvyqzwwpwxz|kx~upt~|v}ttx~wxrxohurlo{vw}umro{z{q~unup|uo~x{wztq|vmuwzuor||vw{q|rxqswk{sw|kvyty}yvoqrjzow}qwxs~|~s~yxl~svzxwyupuq}wxuvwsqxzv}}u}y{vrvxt}ply||r}ywnwwtsvu|}umuowxwqyyuuvrp{s~u}}z|u{zo|rzqz{z}vqzxu}~{yt|zitw{qt|z|vx}uyxuv~msnxypuwwxvrtxt|iw{xsnvspwu}zwto}k}{srw~xswww}uwv{uuzoz}rrmmpryxnqwzo}w}ywtpusotwur{xo{wpvtrwwsvqxmwrlnoxqqqlptw{rsmrqxz|zys{|yttu{vhj{r|pupqrm{tptxxur||ov~ztptvurvtuvvts{utt~wyuiqlvjpys|n|rhyiups|rrpwy~zyx|sunqrsw{zwxussxtnzxn|vxxorlv~xj|oyus}wtsoqwoxozuzrsuymw|xlv{s{tswz{wptwqst|x{z{wwptzyx|rs|wuwxyxyvtwqurwzwkt{ux|jozz}y{wvuwoyvzmyosvyv}}nxwx~zssus}tm~yz{twzwszsuwnsv}xx|jnv{{sus|{t{wzpw~zxwq|zvw~z}xuywqnsvrwm~~tmys}rw~yvutuxz{v{t|tsv{w{xr{{wsqvtxuu|t}pt|uyxuryxzuqvvuxyuvpyywxsy|xxsvzvvvwxtzzpzuvouqxys{{yxtv|vsxqvs|x{tvzsz{qtq{|~}zy|xszxy|}xn||utq}~stzvwwu}xwu|uwtzy{x{wwrx}||xpzuysywruqxxurytzx}ssemxusyywzt}tyxxkqlwkmq{q}zqiovwsenpp}r}uosu{}~zi}m|}y{{rxxssyzsttzornohyyxx|nyvppugytnpvxovwk~su|mssmz~qnrxsi{|xmvn{sqwyZnsr{xnoypxtjrpwrvp{yvg}wzqsoz~qonmsxt~upuvwou|uvutymtvsrtzt|zurtwryyt|uuysrlunqzvvtsrxkutjlr|zuyyzurv~ztx}{nvwtwrzptwquwztm{wtzy}u|qzvyyrssrxxuuwvwq|~qvwwytvwt{twztwvxupsst~rkzyquszuyvuyvnpquuyoxqvsxvorttwp{tvw}tstvxvtkyrrstvxr}pn~usw}prxpvpvxlwvwztvr}w}yzssrsmtqvyysvywqr}pt{ys~tvp~z~uw{vsyxywrs{xqsurrvnuw~ul||slu}}s}|xvsp{|v{xozvttsstqwvnuq}|n|vnyvvuxvxrxx}t|utowxqtysv}urwyttxtrtmsxzyx}vwvry{{pwnwwqqvzrzwrqxtvvzzzvqyz}uzv{to|~t{px{t}oryyzt{x|tmxpwnz|ywt{npsw{{|wvxnsnw~u|mwwutvu{}|zuwvypwru|rrrwzyzpztxwwp{yvw|xxtvz|nvturlwvyuxrr{yv~wx}pl{uvxzrqow}ox|rtyqu~ssiuntqxpqnuprszt}oyrvmxwvr}z}ytujys{ys|t|wqmxmqsqhnp~~irqwxn}pmn}o|rvttutp}xsl}q|{vuqpw}~vns~msqzzwunluuqxpuuupxt{uywp~up|}}~|lxxnu}|zpjp|~~tm{{tpwvpjn|k|rprt~sxz{opojsp}v{qw}tmwp|q{xsjv~w{kkwwxzmwyyuvrtuusxxxs{uut}~xtlyyrwum|vrqthwt~wptsonsq{xnst{uqv}rwxpss|hq|{pos}rqyezu{wt{tsxsryupmzrpq|zs|sv~xtyw|vmwxypunwrqysyqrz|rqouupvx|xpxwvthqx|rxvsvvusxmsz||ppuvo|wxy{fuo{tym{}zo}j{r|y{zttvuvlnzs}k{zwnx~qr{yruu~{vsnn{v{xz~xlp~x~pvyzyvyw}kkrrvtrpu|vrorrywxs}z|yryxvlrr}ys{yo{xyyxqiuxrutyuswtnowh{pzkpuyrywzysopyu}zxvwp{y{uzxlqvtyrpswsnwuvs~yruzwmull~}wzyyynsuxx|q}xxszwtyntyuqvvzzuznyprxzv~v}ssqo|{{wvsqw|w{y}qzvuwoopuu|lsprvsxso~urv{pqqlupultlz|uqywnwuzrvwwy||rv|tzuwoo{tuwtyqxzxv|ynurpswwrtqzuxtsuxu{ruwossu~prtzu{xq{vs{prxvrx{x{psxzwsyyqsvt~uwztxrzkv}uww|ptv||nwvxvtsy~rry}yssxtv}vvtz{qp~r}xq{}xov}wwzyowx}ttu|vuvvnn|trzxxtv{n{zy{ruwwinupnpzzr^trql~swwwq}rv^uiqprzvwro|x}m{sywqywtgyt|myruyzkxyupnrwnvyt{oz}kcpuuqsvw}vsmwu|~mtvkqxxkrxquyxgyoooqkzqmqw{uxyy|}zt~v}vuu{ywty}vqlxuov~q{mwquuxszosnpwuervqtuzqn{|xo~txuwyxzy{yrurv|yv|u~s{w|tutypw}tytq{swx}vsoxrywuw~ywxtzvwrzutywnyqxqxsv{syyzzzzytyxwwtxq|yzstxtvzorr{|}|~|xzwuwvwwxxszztwq}}puywxwy}wwu{t{rxwzwzxt{vwxvtvvzxxwtysvzru}t}|{{xxquyrtpx~oo}pwvvrrotterzl{myxnryo{rmrsmuyo{ws|{}zyvy~zwrl|{qxvum|rr{}smw}pvvux{|u|qq~xsypmuu|o{vmqrx~n|x~qskrt}pqolqwztqzm{}rvrvtm}m{k}|~znw{~n|fsptztvx}xtyupzlptzn}wqrxvs}mqqsfuzw}us}vw}snm|ktvrvv|vv}ylwlrirsqrtrstly}s}sppuztt{t}twp}trixxwwwy{vwm|wvzzyx}srsvxv~sznlqy|syqxyky{{|mmmwuqpuxxuvx|uwuo~~oourv|y|ol}rz}k~rpu{vmoz{r|ttp{{nmrxqxqmsyivm|mwvu{vplq}qxkrslwyz{rqtuoxmxsruulw}zpuhyrtv|qxtsuwuvm{}srysptt|xwps{xornrvzqpupwxom~vuv~vxtznuwz|qsx|np{orovvmvz|xrxvz{tru}jtvwtwsiyg|g{{wxpwtx~|uttujy|nnupzu|puusymwzyywwpvyrw|uyy|yl{urus~xvp~sxnoqtpuiv|xo{vxwzvty|}yljz{sopsytyzpn{qzm{w|y{y{wwpuwsvtt}{tvsvtqvytx~{pw~zvs{vtuoxpxzwvr}ptzsu{|~q|xzwxwy|zvuwg{{nxurplrxqxzunz~p{twvyuwozsqvrm|roux}zlqxmuqugnqslhuyqfrrokuuvnpqe}|tnyouzolti|tfinlrrz~~|zrqyxypmtqnrkxyquwu}twenuty{nnitpztlyrvsuxmf}mxkp~spwxwynk|wyvlk~mqmupv{xjxyxjqvww{pzwljhv{ruwlvy{s~o~pyr~swv{swrvrnrltnsuz~sv}j{ws}|z|{qxrt{xwvyrwyuw|t~tv|s|ynxypvvqxs|u|y~o~ksm}wzvxxpyxtw~wqwvsuixwtvytwnvvwvzutqix{vuzy~xpyst}xxwusuwvuqwxxwruytxxww{{xtv}ytpwtwx|vuttusxtuzq~}y}~zptxxurwws~xowttqvyur~|vsx~zwx{lpp}ztwxxuyr{wvyux|qwp~v~}om~izwyno{ry~xusp}rwtzxwyutzyoqyrz|v}xvx{mvt}w|zrn|ouo}oss{x{sv}sv{xtwosvux|upwvvlizvtutputv|y|syzsqwxz}yxwh{yst}xzqzwtr{v{|x}r|~{yx{}vzz{|x~xyzs{y~|rwyy~zw}sx~tub{}xx~yu{w{{xuw|u{z|p}~y~}z|s~{vxzsw{x}us{xzu{xvx{jyzvuyx}q{z}xqxsru{yyxywov|||~qs|}|{su{pqyo}trtoyn{psrnoxvpsvurm}ws}ypsvpwvlr|ltpmssosq|mv}xpwysqns{txzqxyntuu}pu{uttwvrosruqmxwyuxw{pvlpzo}x|p}xpvtutvnstsuxzrx~psnx{znfrsxlusvvmnw~xwtyzwx|qryt}yspnwp{uhnwwwlxmshvwzxsruvrww~vozovt~{}ssqxvriuvqsp~wnvuypptxvxvzxuuzl~yvktzzxx{psyuupups~{xou|zx}}o~tutrqz{ktpsfyj|zsyrx||t~pp|}pxytztpvxwzw~nxvwt}ymxrss{snw|twzupo}xyyvxyyry|x}vqkrtqhzv~vsxysx}rusvusv||uwvuvvvqpu|uzzt{|y}zx}z||ounswnywy{u|vqrzwsssz~vzrwl{uzkvx{xw}}{uttxvwrlsxosuuutyx|ytuttvqpsvqyutzsuuwzryn{qsu{wzz~tpmyooyozywvy|ovq~zzpoessvs{qvsnzvq{v~~xw}twtyyvsvyxtrwozzs|{sqprsspvvrxsrqtxr}{yv}qns}~s|z}gts{ytzwwvvsturxzrx~xqzp{{yuvoyu~zxtsmzv{uwy}svrx}zywyyu}zzu|xnoslttmzut}vzxwvsytsks~z{tpuuxuywutvww{gyyyuytvu}sztrzs|tr|pu}zszovtvpsyyspmsyttptpzr|ztwu{pzq|vuwpxvptquu}jwwvuu{{vvtwyyqv{xxvluupzsxzro}qxxvumnvstqzxxqvrpuszxowz}qtorxp~tp{jwuuy|qwyz{rz|vz{xt{qt}ryuutszuptwwv|owwtuzzxpwtrosyytjo|~uwxbqksdpqyto|hutjwmouuwo|rshoxv{wdhx`hrrcorjaqaceuoxx}norsney}~{mrsjjgnzpejmmsjkgtpuouq}jltdjwnyrckqnruhcfh~kj}qmwltvostyj|^tkqwmrkgiqsuky|vtrTl~tmitsdzmestftxio|vif{{xu_pl{putpstntrooe}vnly|rouhuyuwitxxzttx}w|lu}u}irxm|viytrvyzwxozvxwspr{svw~}zzvzroxi|spsuw}tzsuotntxuyzktswrwsnxuxtvp|osy{pupw}y{upntx}ptsxvnyyonxspmtvuplv~qzmrutqvw{ppxxsnytpjyqyppsp{xzuuvyxuzqj}s}ssvyotxxnvywxlzpvyo|m{uu|s~v{q|mrmzy}mwtz~{u|uztywdr}qury~p|twszuopxuty|s|rqjtu}svnpwxkw}zovx}unqvrvtru{xpx{ynts|qz{wozwu}xr~|wuktz{}qvoj~qpxy{hv}}{x~txws~puy{|ivsywuytw{qlwxzrxuwt}u}}}xpsyz}ysyuvntuyr|{{sv{}{{xtvw|us{xntuu|trxwomwvyyqporyn~w{vuvvqtz{~umw{}snxzstzvtqq~uqr{q{tpux{~vxsv{spwr{y|qr~||lutqtrx~qygvyzympxvz|n{ystnn~yzrmzz|{zu~usr|wltwswnsyr|son~qutt~rp}rzqv}}{}yqvnwu|vuq{yyrwvnzp{x~oxwxym|wjv{ot|pwxx~{|sm{zw~oy~wxx{|ryx{q~owsrukrmt{|ns||y}nyzurvovzv}m{|xu{wytlopsnyzyzyumvryzxx|sx{vyzuxpyuuzwqpwvvtzwxsmsx|uqsqwnuvuowltzvvxzzw}pux}ptzutvxruzyk|yzyrq~py{xtyuwrx{yuyxw|xzsrus}{~~xur~|zp|ro}wyust}ls}{rsxytwzvyxryrvux{uvhypurvwzunz{xtsw|yy|ysz|v{wy{}r}{qx~uvzvlur{zszzw{uyyux{tsuyzwto}o{yzxuxopu~suuvvxyuxov{~zwyvvtxxrutxxwurrtwwxv}{vw}}sw{zqvryxqpyux{q|st{qyty}vxuwsxuvvsxxl~svy}u|yt~{txvxzytqwuwvsvuuyqzvttpw|w~|tvtuuu|xwzt~xtxwry{xun{z||swsxw}|~wrw}ysxnwuxtwsyxy}ustvtt|xvuxzut{st}ouuvztttxuzzy}tzy|svxtuxssuxyttru|t{u{xuvyuvw{zvx|||vquxm{x~vy|st{w|xs{twpxr|xmsrt|ut|zvouvv{zyzruy{x{vsxzwpstknsspkwy}{r|~s~wuztvtyjjvwrywqvsktrx~wuteqvvps~mp||ovxnrl~t}swpixu|u|twtyos|yxn{{qv~ylqty}x}~oqvwqmxqy}{z{w{xuxxwrguvortrxwz}nzqospr}z~{xzq{tzwl{~xx~pyzwwkzwkutqspl{y{vrtoyxs|x}ypyjuvs~q~|muwzvwquuxuxuzutqvqtstvtkp|roty}bxtwoox|{iupvrv{nupvwy}wuz~lsgtuzrnuqu~z||s||}y}pxyyqntpk{zqszn{r~vmou{{g|rsz~}zvuxp|w|~urxxxysts~yi}rzwynsvusoslrrwwzzvvxswq{xxyx{~xuwymtipot{mwsxluvpwxw{utwsxtzwzzp~yqvwtvuuxzq}lsnus}qttxrvsztvuqsvyu|n}~nn}x}srullwopuvyvu~unvyqozxtut|q||rxuzw|rz}upyuwl{zw}|xvsxwtputrrzzu|yvxw{wq{uy{wusz}|tsyzl}wvzzr}ovt|yyrx{nxuvx|uytvptwyx~|nwtszzxwmpv|{tzlxyz|qwr|ysw{lrzsxy{z|uutth}zvvwwqvuoxzonotyu{wtupprulpqysusr~{}~xs|yjsx{{p{vps|zzqoxiyz{zoqetr~i}nyy{vtzrtsp{vyt~xwuzqyry{|wzyvsv}q||ys{tptuuzxv~yyxw}|}yzsnzp}y}vqtxtxuvqx{qsvurzxp{uurturywvzz}pzvu{yrx{t{|vnvvwywsvvuxxyw~l|{stwxxoztqwpxxw{xxzxvvwuqzx|tywuyrtrwuvtv{vytoulwz~vzxtwwsvtqwxuzwr}sv{y|}x{wrvyvvq||y}wztpxzu{v~rtwv|rwvvtzpvzzyxyxtwqy{{wuzwt{wrtsxxwvww|wyy{|tx~ww~xuwxuuuzv~zyryzw|t{~ywqzuuyz}{{{z}trwurvyxxuqxv{~{yuztwvxqzxm{utzrz~zrry}txx}xwrxz|}stzyvuxwm~npwx{uyvvprxtkxyjmxlpujwpwusu~qhqwu{prnwwyyurouwsfmsz}|pol|rsyvystusx|txvjmvxkqfstnorlnsunqzxsqo~zmkskztktkuyq|oolemuuvhxpyswqut|m|zzxr|tnpsusxqtt{tq~oowuvtn~uqtoknqunyzpyt{qwrx|xsynvpvrhpssrx{tzszrpp|zqvsut}ytxtstvw}z|qvwwqxztwvwvq|h~yosqrnzxypuykup|y}prrxymzviroyytrsov~qrox{qss~pjv{yvs{woqnsyvuulvrvwqsrwqsrlp{qlrx{vonqqvvqxwnpyqwu{zsnvrzovzmwq|{uxutym{ny{{wzwvsyu}nq{xuuuw~qvtzvtyx}zrwx~r|ywuuysu{x~~z{t|yv}vu|{pyzvtuzrt|xvw}v~ywywn{|}yxpsuv~yrwww~tw}sp|zowqv|w{yuv|qyyxqyzuutxvwstvwyvxy{zt{|yzq}wuurz{w{qtuuqrsokt|xw|wxrt}~uryr}qqk||qwx|{z{rwqxq{|sst|wxxvrvwwnrzqnvpuqpw|s~yys~sstuqsqnlssu{}wzo{n{~nuxnrwyo|}j{nyutptwiwvwp}py}}xs{xl|vyvnzzvlmx|y{qowxwvt~s}pwwpzywnzrmwxyoyy}~{unwysuumytvow|wwvyrpwvwm}uyv}{i{qtt~pv{sozz|{xw|lqxvwxuyqy{ywqsoo|wszusutqwupr|y{z~yvrlr}v|xmzrvm}xsx{no|ozuwvyxz|s|uvn{oo{utuly}utuqswrvx~yprqwytsuuoxxnxutzrtyrwn{wrrtvxzwur{uwx|svr~{|yuy{nsptwur~tsz{vouywxvpsv|ul{spvvqqzyvvtk}vtto{yzn~y{sxp{y~{u{tv{wnrvwzr~ryvuy}znv}uwv|vxpxt{rzu{zvxvuvwwvouqstxwwnwvvtz{wsutr{vu{yusxtzqtxvvws~xttunw{twy{vy~vuotwrwwqyyvx|{vz|oqq|nmu{mz~xyskuwvtvw}{xnswyukyt~zzkswsxjzt{vxv|tuqtuprpzxsxr|qywxstpy~ryyouu}ssyh|lmzvpputsyyttq}{{kzwuvouuvss}{txtu~xvqquvwyxpyrzptvq|vxmxxo{xtlvj|vrusuyusr|somquvxxsvrywpwoqyvlmkpynpo}sqvplussx{izwrkynqu~k|uls{ppvwsterxzxyxyepiwsxozynnlkpxmuv}yiv|msoynt|tq{noy}jsvqt}sqr|rkvqtpoz}mj{zsiqtuys}uvyutqtrdkuynszvujsxxqtnqzu{{y~xjzwptvgyrytzwwjs|smuryqquyrt{yue~yvuyxnqpwwwr}xluuomztrsspu{olx|y|t|vn|ilouttspssx~x|yzsvvuluutxvtsrwvqtnyzzxzwyx|{kuwtxz{txqswqw~us}rqtuyr}tsxtzrm~qq|uroy~zmvt}zwsywyysxoutu}pp}yvkztsuzmpgshs\qs}fqsqzptn{rgw}ztzgkzmsnqv`r^f|t}nnzyxsjy^qsp|}wTvpzlwsVplzibnsz|k}w|estisvso{}ulnrggsvsktim~a}lzpxdrdsqr|c~`uzlspwkqtetf~uuidmbiqryrnnlwus{v|osuwszfjyxsrvwu{mjxorsyy~zvxzwsvqzuq{~{yxrwzzozvy{twzs{xyvx}{pxxyxzytrx|~oyw|{xy}nwp|x{s}p}yxxwr~twowwpy}xmvsy{tuvzpv}rwt~rzrwjxwwrp|vwxuvwt{wzx|vvswvtrszszzqwwswuut|}s}w|zvqzuwzyyrnwrq{}suzp{wywxwqrt}ywqw|z~wiqs||pwmz||wzlqvv}m~sztulsvuy}tyr}tumxyxuxqyxrxtv|xzmmvwuxuwmuttxrt|vuzwp{xkyv|m}y|xtyx|um{wouyyt}mvqlnmuwxtw{w{osxswsx}mzwknkv~yz|vz~xjpowsvstuq{wzyyywnrywvrvoztwz~vwxzxqssrwttxurxzv{{ssyouwywstzz|n{y{{zx}rt|rs{vuyox{xwzwwlyxwzvwyqtzy{xxtsyxwwyt}{{x}|y}s}{zuv|zxwyxx~ux{s{u{ywyvwwzw{suvqtsyuztrrzu~zotzu{z}{wrtvywqxssupqrw|zs}qsuo|v~vrxstr}~wqoqxvzvx{twqwr~tprnyr{vuwsu}syzvtruyt|v}osmw|us{wvz{ruuyxrtwxwk|tzskzvtprlssk}q|zhx|pzvv}yynuwrxw{}vwnu~zsq~xwyrp}zpztww{~}{z{s~uzrvy{ypry~susxkwttuxytvqwgnyuzvm{~hupwxXwntsjvqev{r~n~z{Zkjbtls_txg^oqfuqq[c`u~|ntmnnouwuq|ulb|pq|pp{z`l{r|t`mwztfmjua|{u]vwxp`sfuvvvgxtt}u|brYtymjszjt_yqZwz{em^hsnppdlsi{wrjqu}tjvz~tpwu{jqqzdshw|wqtxpornyutxzyryswzpwwvzxslwttrzyv}vxtzqxpzsz~t}sstv{w|xsvxw{mvvxvu|o{yxuvutrszn|sxzuxxwtwqnumtputruvtqzwwrxw{wzsv|uuvy}wvwruru|vw|uv|}tstwxxzvqxsvrxzutzxypxw|uwwxxv{rqwpvr}zxw}v}wtxvruth~xwjnusv{uuq~m|rrzyrqm{ovry|ywomxtnuzslvwrruvkuwtzmv~suhqltnvzwrxnrxxzglmunqooomyu}utlmrs{rtst~~t|st{ojvxr~pq{{st{y|wvkxvp{~|{utomysr|nspq|yowxu{z{wuyswroqktsm|~z|zy|}vyorgu}xpkyhx}qxtis{{w{silzt~z}ruoo~v{lfvwmyzyxyv{mlt}}vvtwvnpx~~usvzluwsmqyvulxyupnwhqxi{wyor}yoly|zupuszzkpvwvxxuzwvsrvvuyxqku{x~psxu{qs|sprtuzv|knrxtorstus|n|zetxpqsvrupsoyqt|vvnzszq|s{y|}{vvsp}xoxt~lktmsw|sptd{ztsy{tykxuvjmqvztvslwntz{spm~pohxhx{jpw|}wk~trjznqrtxn|ottwuxrtt{vtvztzw}ysjzxp|{jrsqnqwssu~p~ytwtu~tju~z|uor{xpqkxun~spxv{vrvv~qtjqr{quuxptywtt|r{u}uqxvonnoz{pmyjoyv}r|rxv|zjwzr{wpgr~~qwtsv}wvrxw{n{|xgosu|szsb|yir~qxviw|o|s]twmwxogsyuurkuizvotorpusvuwy}x}irzgoyyw{o|{{ospzqxqryuxykq|zifxxrs]trapu}vnorv{|wxvwptowpvz{yulu}uqmql~vv~`~wrs}rxs}y}rshuo}uyw{syrmvvmxwyqrujyz{|snnyytt}mpq}r{trxnk}vjw}s||}}um|nt}v~kuizzwtm}v~u{ur~zvvvwumjo|xwyvzrqiqmktz|xo{nju{txyu|urvyusprsny{x~vwxfvzuqsyupwnuuvuq|pxqyqv~vnsvrtnwzyv|wqslwrszq~x{{sxsy|rs{o}rxprql{pxwvvs|zust~ysp{wvxo}nyz}{|pwy{q}xzwuslvz~tywu}{{qqxqsr|yttyz||svt{tuvpuw|qvvv~louwyruworx}q}ytvuzvs|txsttxoo~txuu{tzq{tuuv~urrvyu~tywyrruyturxousxxsovrqtz~t~wnevxvyuxuyyrtwvtwrtszwsowzxwysutwyzuyz~{txu{vwyw}vwstyxw|msv{yxuqumqxszx|wuv{x{yu{yqwqj|yrx{xuytuo|{szovgtyzryo{vznzyirozryustw|zozhw{nno}olwh}|toxw~}yj{p|uu|}xvvxq}vvumwm~uop|xokw~rto}t|ot~wqwhuw}{tpvnswus}vovqo{upzvr{mlr~qxvom~z|nppwzqqs~rsvjnsoy{hprjvxurqy}prtiyylsouo{usmxlhqupxoq{{xyutqozxqm}~}{xqw|wvnwqwtvpwsmm|uyust{vyrxt||xyfsvwyqwxwqw}yvvo|wptrpsvr{wzrqw}vtqzq{o|kpvzmmtyvrqvvxuulxwsutvztnv~tq{r~x||ystqxwpravspvyyvw{utw~r|gqutjuzwqq{prvy|wnvr{vvqzspuqu{ukxyvus|uuwz}zqvwonw}knytowvyvt|~ulpz||u~pwptyqrpptqyzrxuwy}rsxxtuwuvy{r{{tm||~v{tsov|tqqsttqturzuv|ywtttvnvyoxo{{vzrq}xru|uwn{vynxyxrnzzy}~txuywy{{ovux|{xwwun|}oquhzusi}s{xnstzysvywvumtot}|~jx~}qvohv~pwpvvmf~xxyup~vl|qwphs{xw|w~{{o}csz{rv~z{l|{znym|t}k}ot}{lut}upuuwytw{lzq|ywzw|s|oqj}ytvutvu|vw{stj~rpwtt{txueyqr~qy~xzxpuwvugw{vq|yvtuukx{xqwxstwwyv{vupn~ty{vxtv|wrxqzz}zt{s}|yzqxtstt}nt~{urzuzyyxusxzwrv{st}~zyooyqrxzyiquzsyyvwtvxqrwwu{|swww{wvvxw~rxs}pzxvxsyzpxswuqruqtmwttpsvuz}{}vxrqvyqzvwppwyzttw}zvtr{uostps}vyz{ywu~ywvp|quut}pnyytyvzt|ilsruz|{zysq|}vtx~|tsy|syxw~mxztvs|{ur{pwy~y|t{sm}utsyx|~yx|swum|mvtv}ypsu|trplz}tywwu|zvux|xwuwxwsytsrvzuu~yvusqxytryntofqryxt~qpur~posvx|rrs{u}u~pvpwssluntnxvx|vmvpuuqujw|wxxz~jouvtykyty~txlyrptx{ppztvyujvwsq}zyxskztstonquzwq{ypzzewvy~qqspwpnyrqqp|||quxlvxyz}vyspsswnur~umos|xu{zxywznpvyxivuqu|xxz{{qtkpxvtpilpxutnpixwvx}usyttyzvvtpptwutout}isl|wtpqk~{t}u}uhpspwwsr||pyty|ywrzkorun}~txtvkv}szvt}wrtyoyxg|ttyznytsrw|}vzrvvtqpruxzynq}xws~vxvsxwz{luyzwxp|xopmw|swxftzxqyxqwtzxwwwyprvt{vx~ny}vtqspzztyw{{tpzrrrxlqtzu|zqr{xxspy|{xyxxuxwxgzzs|votwzuqvuptsqzszy{zrzwysstwkorjwpxut{rx~{{twx}srwsvqyyyvku{sswu|xtyyuw{rxxzwlzxyrvwx{wyq|yx{ytm{p{rst{xyursttwqvpzyxrn{num}rqh}ywgwsspt}{v}ztyoqxwyv|wtss|utcswyznwuuvwnvvqtw{xuty||w{uwyqsvu}|}wrwyyutwxvswuuovlytqtvtwpuuyzvvq}ntvtyotxp|poxz}plv}tr|pvx|wpqrq|xjlxzywwvqnvwyxr|{rtxzwtrxtnz|oxpzrxot}w|vtywt{rswsxvwyru~zu~uw~|sxrry}{wlqwqvtvryzuw~wtwtx~uxuou}s|wwq|yvqxwsx}ovzzrusu}uuusztq{~l~q}wuxzv|w}p|u~pvusx}uzw{srt~quxy{{~rtxwvxqvsyxrstuq~ut{zzou{txy~x}wwvror{vp|txp~ny{zs|muu}q{tytitwttnywssrl~xtytpp|yz|rwqqrwjupptsy{|sqom{u~y{s{wxworzyvqj{gijvtl}|wr~uswukjystrut{wtx}|junyzrryuyvpkyztp|z{rllq|oqxytov|txrmsq{r|rjvvpwgsuvlqytpz|rmxus~totk|wzxzuzr~~{qxyurv|oxp|xqwxlw{|}xyu{t}ssv|xou}zrw~y}|ruww{sqwo{}suzttstx~|xovts{~v{}ylup|uzrsx~o|r}twt|wuxwmlpt}wwpz|vtwtwpp|rtztxutywqlyqtv{vuov{yrnv|zs{qvv}{rxw{twvswz}wyxqnorwysv{q}vtquvwvwsqyoqwiusltwxq{uxorz{}{uvt}~{~wsvrvwnsywytwuvzotyyqtvlu{yryu~yqnpxt{urvs}wp~lqtpmv|ztvwxxuuu{ruwxzrtzuywxstwuwxx{~urrru{rxmzo|rw}zv~pvqnkvyejsrswsqtrkupvrxrrx}wkydkpr~euhcxmrtseqqrjvwtypyu`tnqnmshvqxtm|}tul}txxqznyjdzklhVjem_cRh]V\c`qelXegcXPLZW`clLF^e`XWHM__g]PE^WZe_qWZYce`EcfX\bghU^J_e\V`m`jkdbe`ZX]^cQkmMfglkfS`qee{c]^SW`__Q\DxXYNdjoQSkM`TZ[\vl[cia`Ochp[X^]_`ZTYZhcaYfS\R[bb\EHgZ`lbYWraaToMVZ{{O]^S[yb[kR^[YjdUSueP_WRVN^W|SMZYrVf`^gfegbhUYSkZjMXUK\XeUbaOddVS]U}Z\\Fq[MoTaC{nZbVvVOf`hBX^hRTCZWRWeUX^Y`c@Y_ZhT`\QebUNUkO^d`WbM_`Sasr[`f\XbM_bYJaQb_bSaoNdbJiTgkOL^_Z_a`jQ[H^\Xaxo]_gWPXb_XYvEI^cU]^fQeM]X\m^XT^pecY_NSVWq]VYecgJSchcXTa`U_Q`NUYo`Nbq_ag`CjrgMJPY[VcZQoapMaUTJO^K[SYZ`dXcPPp\YbfQRUl^r\U]ceSeZcfaYvKq^fN^WfJf^[iQHUgVf^V_W]iWTg^UWbUf`[^elZOOZWTZhq`ZXZYS^WPR`gPkxbVaYXPmd^[QUY^Y`PbS]LWPbP\hbg_]]YcgVk[g^{_]^SdSYbh^c_WMChLjW`[PcXYKN]naJl\Sp\LcY_U]X\ZgT^dZ]QPeb\^\[ZY]S\ecXWONnQ\__[e`Za_SW]Z[[p[WebZ_am\c`lqRSUw_TmSN\XG_WVfslW[Lep\nJWhlbjU\bS_[V}fPn\actebmRYUb[enUSYWmVa_aqPjUgkZfbOd`qOMeZpm\^^polQ_RbdZAchY]]^Z_]VxIUbjg`[`_R[nMQ[`TkZUfYPbdQ[jS[W_ii\K[nbVmd\`W_UmXUW\UgwegLTYXmUkagJhcVB\^Wmddd[VZ\V\JkSXS\Lb[dPS`]`\\ZoYZaRrhaZdkeb]_XjrV`TmRYK]zh\Rb}`a^]NkGkXcYluSo_CYXUjig\_aa\^\\h\c]fjR_Xk`TPpdTiOcQUZT]oW]QYiZuRTKQgfGWte^gzgY_gsshXZXKi\hP`faa`g[bdkYU\b^\UcdUc]Z[Ef[Zd^adU\`GIZZVv_WtnT\TdUN_ZTabco]ccff^QQGgJ__{]sf]UjSk`^ZTSuinOW`TjZ_VTb[dcmX]_nrOpREgQJpWVd_bbnYga]XUWndc[W]YVNZjQh[gch[ZfJf]f\`USVRabOZHgeMhJd[NSaZbaT^ddThRjKldX]X`cSWSmX\`pTXbZLjqpXb[QXdZ\^af^SSHP]eOjpXs^]bHiVXbfa_Q[?VzGdEbyVWgnV_amSbrXripQe|h^h^`OWKqZTNd9WU`Rg`bb[VXUUydUSkW_LOjbMPdTbJgWk_PZK]Pkggx`dbIaYaDdj\YkdfUz[IaKei[[ccRRX^`dSlpp[YP=\Tba]O]li[vfMezZYeXkyv__cmmQOLU\Q]fUYUPhTXZmiYqgWqdSTEfIg\dZUVgpXZ]_ZWYGq\S\RWNGoW^\cgU\Wdd]SugaXNYWtp^RTbWVY[e`ZWXa_TDVpWPh`eYkPnc__WMZ^s\_R\mZEnte]Pc[Fde[K`VVq]SeeUbX_abX^kUiQYM]_UeSaRRNtlnlb]SjXXjW\X]V`bYdT[Yz]McUduipcSe^UYW[^`v_caVNdaZO_i[:]UhZXP\^g\QTmt_HOm[TJpSuiFfibfPRd`mYL`Qa[rCXd\q[]kG]TMTSjFMmdXlT`_\[_pff^bKR[Rcpnea\M\hShWYWL\idPYVbXe~yu?_eTjbj8mgVfdXSneB_U`vXUfaSkU]aF\kNrXgomkRUcL\_]RYhRP^TUZ@recVUI]OR[I\fVSrTW[PS^V^S^nqgWdebbh]vX[dY\b_esZWVk\`ZXhaYgdY`R`XZXaNcgYn]\S^qhnf`apY`I`_tSScqbXXQ][cX^N_Vui^X_NWWW][M`]fZfWaT[Zj_hh[VJia\Qnn\Xv_aXi[db_Wj_WklU\ej^dZi_SUTQi_L[]ghpc]g\[rMlc^fVRSc^bo^^gwaJXaXgVM^DUpic^Ua_K`ceN_eXcO_bmYT`]WhpcZrNvBy\_c[Nfasg^UiCNxLA_]nYdatJdf_\zdKQQ`][ff_oX[dZoQbfvQ\Z^eXq[hcP]ZUc``\c_[V]dddtfko[eXUPbaun]\ccWeu\eWSd`Y`GfckWOlwUWMZasU[YNrTf`ModnlC]`XU[R^gythYZcWTX__PY]TNgfSajeTs`lfYvVRP\bYnMMkRY^sbpJdZZg^gW\g\\>cphX\UUfNZaQiVJUcmUh`WbUXngF_kXR[>Dbwgg\]ggV[HQZafh_cKfTiUdhZ[UJLYndGQYbZ`kWP]bZSY[sSUZj_Wa`sYZWXNbjd^R[wVmgQKis[[PaSPXR_ap_=bSSbZ|Y\W[bibR}nfY[b]bbWj[gOYMu[TdfI]SO[Webe[Ze\m\UlTHVQaVYfIdu`VWfhHUUWaa_WkQ\jWNXJEbVZ^jUqNb_jVfiGyMMUMGb_T`HPnAcbbfSQ\ZYU_V^SrcVdVfS\hfMdVkZTJYvlbV\aR^h_cZ`j[^lh`\YXPRqfJfiP]~kWbW\N]{WHebTZ^WmSbdZa`N_U`dehqqXiYPVm`Wc\cXZa|QaW[L^zfYJa^VmRsfg\Wv][jPRTgv]ZXkTUFaVZh\YZZhdYYLeeQfVacbQRc[>Qjar\_d_URp^c]aT]ZKbUca^d`i]VKSbXsoTaefT]c{VYWV`Mr^[XXXfOOlYmeSSkYc_RPU^\\gRO`[V_iZ`WQgh[im^kh_bndae\IWeYrZbSYdf[]QRfYWUGXZbpD[Uefgakq\__PcYeXdYQQcdjkUNgcMbjSdVX_cSVTW;cMpVa[YLQGf]Ihc]faa\FfUyeceiTVkUSRYew[pk\cN\n_bcWhVP^Z9`loOQcebWh_f\YTFbPUM]n_XhnbPfTSZQjUJmiPCVTffSe_YSgg_IhadUQYXf[a[XpLeTQUlXUQVXmY_ch]L[_ibSpbcPpabY`]Il`IiSU`YZmX\qfQV\VUjiPlQdT[mThQJ^]t_WQW_X\`mc[oVeN]NjcRcaV`fPmWccP]gQk`hX[SUcb^Z\fg^kkRYXgXmfc~[\_^`mafPaUKXZ]{aeU]mdP[JZYf_[d_SbitK_lT]ZpZOVyafKLWeUFVX^cQNc[Uie^XbXb\X[nb]FLPZ_[ceW`tc`Y^cTMg[R_\OUoRdbWTPb\TVMd_]_VZgald[WehL_\Y]T]dW]u`a]]e\G\cXSbUgiTWlYvg]]^XF_]aSkc_eNUUch[Y`ed_SZgUXbnlaP`f_khZUS^dVke_[YyZR`fN\P_^tSZ\f`d\XhNeSj^Q^Z]`Sdb_cdgacVi\]UlYcVHVW[Rb_^XT?XMMYgaYP_Zdfam[gQJgo[Wi]hl[[U`ZM\ITYWVeNRa[dbZ`nch\\WU`Z\OPXWhPV[]aa\neaU__JQIZrk^i`YXd^IsWPjnWiPMVYKhWShUcPVs^Tj`ZSdc`gfO__^SP`dkYc`^]eamPseXnQfCakRHaQ@FNigk[g]ZmXZZ`cUjZURgT^^\kh}`qZn^Wb^agjN\mPZhbZ[\RMWVTWiVYZN^agX`]^\]T[X]TVW`wTd[nSJaNSP_VZJjURHDc^`X]eNXqtlKSVMO[_Zwhqg[]`YKdU^RXKfa^YlQTbVOohXVyOagQ^clTYhiXZ\[xU\s[hWbb\T[bWW_bd``fXe]r]Xjb`uW_JgZ_KS^Nba_[aaM_[fccQ]ZMot]Zc_`jibk]dVTa__W`PighjT[\kUa|gZiP[U]mbR@eNT]_]Vq_gnhZi_P[qcG[U]ec^cbeLlel^Y_[\Xa_[\b^rdYcbVifbfN_QeomYGYgLs_QkZaZfTSWW\lj`h_UhJ^cxdZZ^l^`Nh`YNh_UUiIfab[]ZUgkSiUTjbuHdlfRWncWmnk[fgrW[dfcYJYYdUHReXRlhQnij`bIT]ceTeT[qp[U\ZXRdXflYo`[X\c`dkPL^a[cd_bih^e[WEcRa]PaZimh[se[[dee1fXb/ccbeUSIMZbW[TZj][Ums_`TVZ^jQ`mXo_gRQbT_j^j^jRp_]O\`j]JSaU]WdKSnWQYOZWVFhIX`WiMNW]iZ]Sgob^lLVVC^IJWT_W\cRdoV[\ReYZjlV[Zdig`XcgOigd]m^a_VW]YFKNZeQWYXvchht\[T`ai_SriobbXpoac^fakd[hFZQ^bWfZ]wc]^dfKr\HTSabPggZ[iY]beVdZOQjY~nmkdjrxtI?`^WUXgacBnXca`\_RPCg\ki^YnM]N_q[bHdTZpz_`ohXlc^YfFHPT`\kj\Fha_[V`m^>YN``bY]RXlic@B_VWWR[^jo]\YeU`Z]WZqHP_q\]elTQ`jM_XcZZi]d_W]_e`WdGIb\X\lah\AchOTXVZ_j[deyUWSo[G_XgXMbZbPSN`dnjSSYEeNaZ\g\[am\L_aNTcV[]WWIYcQXoSTrcbL[iUaiLWK_mWlgl_MO\VWTcbeuY\v_XUcaaQJi]a[UeUTlVV`cpapfged\NT]c\^J`^tNX\aj`Y_]\I]cmWO_i_bX^W]gYagYpUcPbWOpdh[Zc]]V_K]kXl\]ckbokakdfeh\f`j_V`hfcPkaZdUh]ZXoQf^o^`]niY^U]fVYibbVQhXme^^QI]W`S]Vdeae```sWc`[ISdWc_cbX_gSbYol`flSidebXJVl_gobY]Z]_jefgfe]YgXodwTN_bDnU^X]UTXcUC[WqnZVcf_WQd@[[[PSeTQhiemySVXqaY{E^ZXb^NXjhglNW[oS]9f`wa]TjW[qY[ckcNZ`Sb`YpluNWiY`=ZdeVWOXUSXal_FemZk[g`lR^Vq`frHeVSLGZabO]hRshbaVU`\s{\WK[Uc_YTRHW_l^Z]fHXbobCQRT`QeLcYTjnWZYMhVpXc`LveWo^WEvUamRh]iZ`MTjmP:`eWanRSpdPZWh[]W^VbgeMdw`G]a^XUURnffgMWgen_dYaNbVkWYi[^O\icRPmzZXWOxgI\dSga^QSk\kdj_Kh[aSX_l_\\_V]`^l^oMKUUDufOmcSMsJ\cfbTJ^`Oflh>fLUqWEoncUNUWIW\V6]LXY`Xcij^edgqm^MhXLFVQ]d^e_bObk?Z_k[bkR^YU]`V=J`S_UWicjYShe_RLG[clf^tdcPUY^Y^nfl`VPMYNUMj]\ZGMo_HuYw]_XspEg[dyTjZbWS^gf\_T`n`v`jTYaTG}Oo`3WU`Vl[^e@g]DV\aZAgaj^WXSokPXZ]kqH\UcnnROV]feV=wXiQkpe`V|bWkeZXgba\pbj^LV_g_f[eb\VgZaJbeIYu[Kbbgj[\SUdTb_]VpfSdQkPWb5ad_V^a^eCa`o_Wps]Y_\fkLeTiVbct`_aX[ZQh^N]ifNccacdVkbk\^XQe_NaQaie]jcnMb\[]TOeb^MqeYbYYgeTbQSk_iWZUQWpjXg`kUf_^WSTY_vb^S[Lc\ZXS_aVjZ[[WUSZ\IU^dIPcXmY^S]\hc_M^l]Y__`[R]Lfi^YX`f\FpmeRV]ZNYNjQTm\RWc_Vf[gPb^XVflUNYXPicWY_giqdS^PnVf_dgOSURd^hXlcL]]U\a[\`q[M\jgaZJfffVdNXXa\gVkhh^WZW[NecTtWYekH~XNWgMN]s_TcRqZa\e\`ojdh_Xc]ebo_RbfX[MSj\aWiULOdgUOfN``gS`aW^UkSgkG^Q^h_jRle`SWBWebLuj[Xid_gZg`\VsVKZ]eapRrRcW`YbPcUu^Ln_[cViiWlemgV_Zs[pa_g[g`^S~KePsgcl^PIYQZbjIQm\MYS`STWcOG^\ce[]VVU[V`\QVZ_cdplXbZ\_^k_Scla`^R^YZhdGZ^exdifp`QyeZaFiqcdHjJUU\iTXb[_SY_[_`dk\IPYXZHbt[]P^_K\LWo]cb]\c^mNI[f^cTkicZ^bSeYiV@Pbg,heUS_XKUecY[XWuUaOeMiZHcg]OfVQkeV_EQiUmkURTjPvb_agwHJXcnbPhPe_diijH\`_aXX_`N:XMlZiX\_ZLUOZrKb[Qo^R^Djvag[rKYdekY[_TU_YbVed\W\jiMJYXVZVeGPJGjddaWRQZ^rTZY[ZUaghbkkYUoRqXb]X^H`|bjoqX_^_^j_K]_UYe^_X`q`eb[aBdehbjaR\dU]ZV[FcgVmV[jQntq[TdiU_SJq\QJsiivYsK[f_\HQlZY^_lQq?aZz\gW}Te_O[iegNl_]f[edfXYBTralUfR[V^sWa^WZ\]`IzR_kolWW]TkzR`XiYb[ZhSfUXe^VXTQdPbbT]oe\XP^gUcN[SkoUg^Pjko\{[oXm]_a__TbaY\_]sg^fTUaYZW^WIWc_ZaQpchQb]N[]]Q\{ELbfa_SKNM[goZZZaWfR]\Wda`uk\a[UWglqT^cWS_gZX`_:_c_p`fWjbbeaXr\`caYafh]YYf[eScQYnlZ[bSImrScspbaZeSfi\R]lWeRSsUYXjTPg^bYql\[ehRg_^rNb]ZhUeiq]mTP_ofFchNkQjlafS[slReaQrZi]Bcacm\eomlKVvXQbjM_XSRl`STlheWP^T]UbYQX]VTkH[[GOMUmbYe[\UFl\SPiMa\l[_Zua`p^^w]js`TcdTX_^XmYoTjmjc^_Y`l\IkRwY]q_ZkhKWiYEV[igqVn[WjSMPQdTbUtjSlVQh_YVV^c]ZgEdWX]\LRUU`UR{aRhj9T]]aN]cuY]jQRi\YXqZ_VFo_\p_YLMBcQhfg_`Q`[hkfP_UlbmSRKzV\^CrY[^`c_Ucdu]P\eWVsO^^dWOi_LTh^QThTkHi[\EFbbmZowc]]T[eVGk[n\Pf]P`ShfkadQXikeem[n]UXhcVedoZ]TagZX[cLagTr\WSdUhZ\HjX]]ZaR\Z^_aS[\[Y^hWc^Q^^p_NiX]V]bl_e6vh\oTbVVOe^ZC\YJSTaXdbnchdaE_^KYkcejFX]^VpbkeZ_uRgRLeRP^h]Sg^c]h`XaRYgaK_Up]j`cZgnYLNq^][Yjc\gSZZnrQl[MQV\FZ\h[tSkiK]^fsX]faXUHRRpMNibWX[\YVg\ZVdkZ[jgST^oYWeYgZqT`QJUYZZ``Xdn[_ffmh\\[XR]\UXUOhnYd]ed_f[RfSiP\PVTWYcbeRoSUYcg`SajcU[KR_YbhQeO`UdYRTq`]bNPS^DaWa]V`TOdoLmblaWVmnKX_FO]n[`CZyTei`O[WFa_UdRZPRa\SQ`QXW^b[hkSNLcggimiQQ^fZUZV\TcdFPlSbVlNMNaUN_Q^XQ`ZcH`cWO[TU\UGg]bkhkffgZg^YaX^YMejzSc]S`SaYCwlR`]YiBQnR\oSKGTQhViJSYeXZfI[S\^Tcd]^pb[g_Zc[P]bbWSHaRRY_K\Pcc\pYwuW`NRTpnkeNrW]vl]ZVe`^ja_ffW_=_aVa_ZWgVb[NT]g`c_iQe]Zcb[\^beUW]cZq^Y`RaZY_[\ab]v\__gPZYVVXf_i]^Vj]_gi]ZQllabd]TVY_`WPScQPdkagVZSWV\uThSjloTRrmgb]WbwU^kWRekjei`j\LT[SWaMHb_kdO_`NnR]ISg[cbhZghXlfb]{NV^]c\iXMNQ[wl^MeZh_cjoXX[QaSXjTcg\_WUpX`Q{WT]ca]`cLejZWatMfS_VbYVZ__WPTV[vcYrVPXXZ`jgBUZSfXWTbXaNkbikIZhbZ_jReenQcY^f\eMhXvfukZ_mPhM]PhP^j^dXYON_ZgbO]cHKoYY][osloWG_dUdgNbZ_VceTa\idVgYiMe[_JJIklhuvVaPlimU\ikh^a]`jYXYQlnjcqcc]`a\QdhTubXfVYSoX\Ver][S]JinRk]QXPd[`hHXZVZRZabWYUgR]aPjWWU[\PRg`cXkZjY[T{em_XRWinPlQHgT[Uabet[YW[`UXVjY_KOYt^[WGRI_tUkcbOdVukXrdSLWGW^SaTa@KcVgmNeeiU[jReXItoc_WYRdMW\acYdcgHRa[bM\yoRYWQLL]`fW[RVp^{XOd\U[ahebcd_YUf^]`kVj\ZY`b_[j^r]XP{qVqRfCVUeVjhe^x\iZeHVLJkRSUi^ZXckc\`Y\_H`Wiqjjg_y[_a]X[TdLcfbIZ\VeeJiYYVha[ZTQ^XP]FJW_cYb]]Z^pRxd_FMPqrXK\^rX]]WPcjccZ_lile]VPR\[Vto_`Cka[`iyhnfY`bOlR`UZd[GSUMarUV`_XS\][W]ceUI^`Zn[VbO\ZbRX\fWibM^OibS[cXO^SOuNPH^zag^XSangvHbYdLVXLZvVfhqoW\dZkfWPehSbX]Un^^[Ocf_bpQ[Ygr`}ck_eW_Te\`o\alX|yMtaxTRR`UHZYQWWY_HW`^TSeVgccfZ`[h`eW^`PYK\XQWSYIWZTxXOeI_P`IaeiUc`NfhRnnbdbkSOb]X_UaYfnbM^nUdcE[fP>Xj=WOVWSIVeSTQVeYXdK^TbdVtY_hM_mZ\^bX_\gL^TPHRT^keG`ebcaH`d_giH\WFV]]U[fPqTfivR_N\ioWfWMRQVVZjaMxgPWq_PS{Yq_eORfXdIdc[XNqTfdO^ecgwzj\Y`eZl^\DbFmnTcZYjoTc[`Wgv[Yo]P[]QWTVRd_Uf[banXQK`R]N`TppNXlabbWXYR]X]Z^qiihUmhMN]QOVUb[^Q{RXZiMC\gUPVOMQRZTfSM]h[TYifzUcbnPSdhfWH}TiKb~_u]~Y~]XMg_=yFnT\^lMVmoUZ}aSSOmv|X[dSLSTddV_U]_hdIZ][][][`^XZtSrfYYb[iXlB_rZWdrWOX[ginf_cc`[^hmVZ\Wckl`^]tcQU[bUDYhYlgpUmRf_eYaob]ao`XS\^fVeZ[RVNTkZik>\jXrXiaQjoj^mn\hbTY^nZHgGJInWg`demIMbYVuqbJKe]Mepn]U`MQOl_^h_XN^fiR[`YQ\PVdUh\W]efd\kyOTVc[\XeP_ZV\kc`]P[Si]^c]YZaoYKcdhmfjUwc[cWgc[cQWT]UhZk^dZbmX1XC[WU]lTUnV]Rad^a_ieneeu^U\IiT`Oa]aJTbObZhIXk_eVVjf^cVhXke_[bT[`QbWd[]]lbatelUnTkkPWPc@]_r\_\MhZfWZS`[Geok]]]JW\djbeea`YnxLXcWoUUWQRZ]_TIRWsXaZZ_tUf[pN[RfoZmebj]hT]TWe_T\ccDhji[V_D]cQQo`Y[ZitZYl^ae_PVacqT_^WOBfMf[R\ki^^]qdWRY_kFFV_hMUa\cc^RrJYI^_W_cO]ghMuVaQVMSmvpsjrjUPhs]_\r[JYkmfdb^gkq\p^UmT\Ll`g[_GZT^gyXQYpRUeQcjaNeSi\Y~sYW\gj]hU[WhVM`UWg^P]UcLRZXY[pZoX[Y^^KTW[gSVV[YWY^SB^`eQTe[PW^U`^iaYgaNaW@Znhb\dcleXfe^O\^Z_^FZTxOXrQU^T]WNbdf]UmbL[`\YMb_l`YSU_pWY^\WQRnOh^[gYT^s][`W]n_VfthgQYe`ooakbc\YTXZPb]Y[`YZSKTTG[_JvzTV\MvaRVa[]TMlWeXZ]sO_cEaTdQYYtLYTam\tS^[`ief_eecOg_HifBc[[lX]f_]aP_NZ\`H=UImZ[Rj^gM[YZZe][;eD\ObzJny`V_enMbjz[Yo^[HfKZQGiXXjr>^]KI[Ud\^fZW^ealcHNCRhe^Z`hffVf[ab:TaTdU`G]cW`X`_gZ`pTgeIW^ifdh]tZV[\\^^N[L`_uNdRwM^TYVWlkJ`_a``eecakUgT[oYcKW\gQ^XWVQK]dr]``k`YU`I\b[VPkShZ[MjRRYjPhVVaV^HYS\YH?ajXgYeXf\YCGNlaZwZsgP_oaOT{g[SoOUT^Hcpa~UOSdY]PReiW^_Uhh\``uWlSOUWRscZmcSPjhK]SU`DdXUWYbZOfcTazTPh`jeZjmg_aia[gaXNWGYbnKei{d^vMYRXXWjejl3nZ_]^{UZ[Th_XhHgl_ZnYiSmXi_LQkvWh\nhd]LUdSV[[MhchZLg\[[xdOmjMV^jWELfIe\UhVnGoH_d[RJQ`daUXWgbZW[UjZfW\lmRP^f[mVfXwI[^Y`kXbhhfwdUX[Gxm[bB`dUMGU~ceZjh_wbMpTm`eZ`ZfjLmghLrWRa_K_h[]Rd]dhaI]lNb\uSheVvUZZOeRHVVnpQBh`oubNa^U?mh\EmkqUhUYXS]ViQvPmgcaWIPkaz@gWdkctX^i^D]Y[UVafWkKcbV=\NXcMb^Y[_]QWgWbMR^`TUO^WbcUzl`hLebm]ZSS\cUuSR`eZF[chQecga`__RXnWSQefS_Q`_H[WU`^gX\bG\oYWRfUcZo]aZK]ZRpYUZchZcXc|jZVgi_[\l]_M`TbYTYamddkamFXV`rKvr`cRZTMnNdbQd_ibc[X]Xkk_fNWGQ]SOsUZRKrYb`VbV[qe^e^_VHZa\T~d]aS\]`]r`\\YP^bnjmZo[Xd`gc]LccZgX]``e`oTdkcdiUX_^WVS\N^^U\_fVT^bcfVSiXaY`gLp[iOc^l[UX]FQlbu```kiT_H]cb\b_aUVZOYBZh[tpbXc_DR\Y[ZRbO_mbgbXxfd[RcZLj_evfoNQu\jsTci`xoXN`YX`_LDY^bm]_S^SW[WWgdYp^]XR^`fWYhp^Z]bTMVUedUyceFVTeb_MfYia[NP\W_dQ_^OOX`fZSZLT_jadVeq\`ap5YJcUeTYi_aORu}bm\_aQXa^_^Uo^m\`VQhYPfJjXkcTuj\GdVT`Cw\]f``k[[Uon^ZjWVpYQYMZUWS_UTbiZeWgTmZihmEfbP^^hKIa]IcbUk[b`gRWSHWOkWiKFiEYoPdTgSXglXLWSPQpUga_Yi^RMIWeWS]^_agMLZcbbaYcRcoPaZkYhgPZ`VM^H^Vi`X^ubcnrUOYOXdQKUW\UvnZnZdUZcbqOLF[\Z[Sj^WRb_]NZobd^jX[u\RlVTUUPXXPu]\kbCfIU[_O]hab`WMlXaHWdY`]eFt[gc>rVPg]\veMQIYtciPXvRifl]aVW\W\]UVZc\{inTbYTRkiM\Cm[HkUYYPN^eGia]\aUtPH^ZXYpOl_pZTai^\QafqXbsY_Tao]F^PXPbf][@hi_Tdn]~HVfc]XRLciVQMSXme\Y]^gcbeU`ai[o]OJs_\nZhYWbW`fRg[ZYhWsNPUUtL_i\Wxbq^][_l]ZY_XO[`jlXcblW\\aZkpTV[WcNQX]\N]Y]SPbeQpB[V^_cRVXfVaX`caWTNX`NeYH]iYR_Sg_fP\SSiYTlWp`aWlU_\Wd`WQ\`Y^ZQRZdbHiaaS`^ldaWY_NU]UkkaZZLdeV[]X\lTQU]XLm\hYi`Ti[[IQ]R]RbXZeYYVa_c]dhe_]j\aehXjcUObN`jm[dkm[`PeXgazYdR^\hMUbZ_OQRlVkaNcTtTT\jwWcZcOhfVcV^jgifY^ZcYUNFmamChR][iWEk]v`YnoFX`P]^TlvOc[ifUZaa\`]o[ZU]f[bR^]nncNYYe[T^[RXSMbb^pLdP[yf[i`WFQekgPVh`Tl`]KbPPSbXS`fgiLa_`R\jzeRcJW^RVembb^e`\ZrNfWCVT]_^SFkanUhhIS`Wn^Vg^XUbegpUl]\Ompv[^[gUYOXZde[YR^TVceSd`blor^jPPwZOYp_H_tJgfUaSPaM]]^aHb]FV[VPTUbMjlheiaUNeS[YWT_b_SZiQT^6TZ[qjZUpRJca[lhqhZ`]Sap_UaPFXv]YYOlcjenHgi_VkkRZ^LYiPjlYYNmd\T_aY`WS`aiomahQ[hq[U``mZTX`[MVS\ZSifYeV[ia\lbypTXjaNZUge^ewOYeDX`mViDc`Nbw[n[mZqpWMAUpQhPFPajSe]_adZG_e|Vs\u`fYgm_]zZct_cv]ZYf^lcilXUfWR]PfLX```eOWO^bQKQjtnfQZpnbHXS[gajcfP^RRedafXwNcXOn]\fa_`ZdSI[YIMijcUcWYlPTWYUTdlS]bnSkNWjQC]ZSfDtgMR4R\V^Ze[PR?YiOUdRga\TE^[[aj_cSjj\NalSeqcWMQibTM`[kVZXSGrRn\W\aZo\XbZZYi[agw]XWX^Nje\j]STj_cW]YcNfP`OO`cALcS]WHOW`IekZY[^]OXH\^CbZSEDJJlnIeL_qQTVe``ViRTvXc^j[WWW^X`TWbilumRr\^fWdyNoMXWvFR`c\_i_cddgKKa>hU\d\OlcN[\k[WnjSO^^Qjpig`Of_UN_XhRmaReTeSpceqVcO[ocj^eFeeX\fiRYaL_df^W_Oj]^sSoga^[hZWS^Xb>ahJNddirGCu`oUmcfydchkYSNYWUUdbFlRfspXVjujdeWYQpjMh[[WgRKT^^pVW[OXd`O_OPVaURtpbgubaBIcek[]tZtkWTlOqfPbjbOb]WXVbCzPcbZrb_ZWVVXicZO`YY_Xad|UOqkQiU\OYdYe_}TXfXf9[ke`Qdueck\VLT]Z\YU_WZX_D_XIrUGhZqsv^kc`febT]hjY_XoRRXiQZbfmM[_OYV`jNVaZodaahd_Ue[haW`@U[I[Vca{~X]iPWZeibXP[LbKfR^V_XskWZ]a`ZpdeljV_fmeYKjlMX`_m]Ui]LaQa^b``gUaV\MUX_\jhXVZi^W\dbhoe]WW\S`XZ\sM`hreOZX[]ft`WTTo]XihZTcPRHRX^aa[YOQ^olhl\SVvZid]i\mV\XPZTRgZvbnV]nl\:JRlXX[Z^Xba]a`]ohdgbXjrZ[Xh^odZfWaeZUcjxre_U[bk]bk{F^\]]XTflPhEkZYcb`e?d`dgUU[\YLa_YT`cbdeLZLgR\\j\`PScjZR_T]WXb\c^Rab_^U[uTbYXZMVEN[WpfieX[O[VMcU]rfjPqgOh`^^DggyjYmafWR_W\d[dK^ZgHVaYjoRbRX^_s\Ti`WacNdVZe[iWsZ]|Yi\mSbRVWkonQaccbg`]^TZ^`Lkwsa_bdeN`Vcc[QbOXcTT^JXcogeSkcdpJQlfY^bUOWQ_c\itfZ]`UQ^aRGZjbnmgSrhOzTQVZ`MwdfdQeV_WXPn\dSv_UEYObbUjdmor_IUpnaVLghh>b^]SYk_W^^rpQb[WUWmVbdiW\YgZWd__NJWab]Ppi_TVZSNVY_hVwWV]_ctpj[^V]XsbCUL`VeIVQbjxX^V^a_le\gbZ[iZZbkb^STb]`sU\WjZXWdVTaZMo[YbbsZ^eP\cdhQfYwegTdXai[Xdhj\\kgVUT]d]m^M]_YWZahadw`ViWL_Ns\Td\cO\pgTUaI\b]LbY^kh`C[ld]HfQrgZ_^_`]\dx_WXf_k^cYTek]aTXVai\QPYM_V`bebYWQSQ\jqh^a_W^lriVmGURa`g[ZaZ^pYYnUbh^zJ^V^TMfh[YU`fT]^[u[P\Ydc`T@W_`dgnhWmdSraX\gSheZLoO^nsaX[o_[da^mVocPZU[bf`aSUbiY^zo^cWNgRwRfecMcd[oYRQ`a_pYZT\Za_O[H^[c`SNLaT^\^P_nf_cbSYbXZi`sX[zSbNTWdgVPX_NgQKVTSXKwd_Di[ecZ^]DkdKZ?cTQZbaE^lfTRn\[Ve]U[cTVLJifRPdeZep`K_WXbdST@^jJ_j]Z^Q\a`ZNR_fQUe^_dn_iRyKUaaNZM\_`eR[BYaFW[ea^ThdViVtE_KTYdOH[dM\cNe_jDezXZVSbnbY[`Yzk^lkU[UpaIPicSN[b[q]h[]_deDWd^rKkhrYOTb{d`WQPfdo]\eO^yGcf]UGhn_dkji_cWc\XYWe|SiTTPLdCjbV=VWTWsI_gKsYYVSYrsbojXu[apk]VNdeb`ewVZ`=rv_YD]aWVgZajQXQY_VOsz^[WZYp@oWSRb`nakkY`PPf_dbwPUc~IUTodce^lp]LXIi[[N\jqVVjY[TvSSbc]c^\Ua_SW\MapK]fcR`]fc\RYSkNnY]l_d_NWceNOcRufOVkTuMdxLUhHWUOdpfuJQ:ZJcUgk\dhU`drdhLU[\gAhYl^UKTHUh`Lg[d_]`Xk^O{bSci_pPQa}UcUYR\VXVbY_^:b\oUd]e[kM_PhUallWdnRmISoYjmXYbtUl^bZeKjWd^ogo``aZbmfc^Rs^dhPc`[mVbMW\]dPdU[OMdds\Z`fbaQPMj__`f]VMd\IsThIo`dQuYXQ[f\tS\Om<^]nV^lllhhZf[e_DMk\Z`lWTW>bcTxna`hihkPDbeUlfUU`]iXiE]QQeeWVIbcb_`[k@^V`XVyRrPQmZUd`aO^]jmSfTieWmeZMJ]b^UNQPWaOwUg[kHap[iejRJV[_o_zPOiwhOb[VeaazvfyaNQEa[XkWaQ]^Ta_NnVie\_NlOdR\b\Q_dbYemnUYpbBdWfZRcUGZ]rlGZOVU`iXZ\hZn^D^RqP`dPk_LcVa\gdbiEnQdaXRY^dfVdkf_hTY_R`XnoXgeW^iZ^Z`cdQ_enXUqgU]me|[ZZV[cv]eUXYkjRnUQWX\fQaodQaRW]aMfVJWaN`aYe]d_g[ZZ_PsjQRsqOqXZtMUVdo;`R`gWXXWb[bHgOoebLhq[[lJdk_sWsYOeOObZYgWM_bgdkVegZhJg^ekiiDX[X^eWsbfJS^j_cNbIcjXO]ajlbdoX]`VWUSWibgo`ZsXLhUZT^^kdQeVZYYbjhf`VabcHUi\NT_TQ[i[bK\``kVxs\kQcT\[bglE[ccWvHV]YYUNaa\nPj\S^mkXeVTwXapDb[v_Y\V]p^SQ[ka^dPZdaKQZd_Yp^egfbf[`VdU_z]`bc\ghYd]_Xr\c`hQefWa[MYsOaUhhYhYYceoiXP`M_]WWNxdjnbtaTJ]^u\IQN]V_WkbdZVcg`Z`IZcIURm\VKfj_Q^dgcRb[_b|XY\d]Va?\qamb^^ntY[aVjXgKV_yWa`lWYZ\`lVX]nUq`^WV\U]pbHpQ^g_EmR`^YppM{[^jZVfOLP[]\bdW[^ZlYfedUh``_\ec_VkcMJUaUcK_ZpZ[UZ\DgTMPhIJfPKS`_eb`UJQ^m^n\kWSegiMfPvj_sIZ]iZd`^lP_JMldkVS\HfQaG]_WKZ`_I`L_[Sg\HYpRWLSOTT=dV_Te<]bOVdJg^eT@sfY_i\XJTZs[^{Va_Di^cae]aMj_NeZbUW^inm_uReIX\rYma]KcSSFtSpl^[\XOGo^hKd\XQa`haYiZd`ZdiKaj\F\kUXUaf[\ghcdkemR^_Mh^UOReXi_k_ZN_[KYgiYFkNY_k^akqZ]hVbvYboOQU[UVR}aT[jIhTXyx\PdUffaei[fdMi[VNeU[UQbS_mJdaZ^ugZq]]gmZdc_gS_sec]hZTkbQj^~up`Bn[_@bLdSc]\`djZn_h]XK`dRfOYbRY]ZL^WQb]gQgTerZoWWdUDRR\O\d[Rd[a\veRdiXZ\^Q]_v[c`MMhZedeoaTycTi_Wn_e^^JX_jSbW_VQI`aj^]mTJl^[`Zb_Rb\W_Uf[_MW_aYUP`fXc]XoVOVVW^cYnNWgoLWXcZcSQT_Ngom`Q[ZNri_VhePadYo]^[W|^iWdcb]]\]`[_fMTL\VG^_]bW_Zfka_nh_`ab]WPagNT[\WUB_ecaUddl`iGV\L]OwWk\SN[YchZYUcTgToj^V[lVlil\NaeTIZn\[TRVbf_TWWXjS]Ov_Q[acQ][`iZXaLSa]Wfqj_]ZZPRTo[aNQia\TXjrKc[L{XlMabRKXV\XZP\YLa^FX\\QfNVdl_kQnVa[I[AZT[oNStc]_WbRic^`^hISV\ZKZfQRFhYbkUUKkR[[B]QRoLSl_lbFcQ`cUl]^YdEfQahQ[``|_bfkl^ed]XcmTgX_XV_Zcq__ZU[Z`ZYim\[Nf]^YQYebVMcKWbRWl`QZBVgXeWRoNjZfNeibUe`UWWc`\mWa^VmcdOkLMfXYacUIU^NiYaN\OVXYa`cgr[WXi^fOP]X\[__WZcX\Odhe_g\kf_SUO__]fYOOFk`ZR[i\NR^xI[dWTdWTgobsaVSY`\grQdmjaTitIcaaWdg^P[@PK`kHWIrbYvYR`VNcCP^dUda`Ha`ggXnEeQYRQLUO[\ZaWahMq`esWZ]]lYfVTW?kZbS_SKTlai`as@dic]Z`geLZpcWf`WKJVXilC[jFad\jIm\j]PR[Sch_\kQdNkNin[mZ[hl`cnnbIR]^[N[Uf`TZ^TUgRiGWJyd]O[]_OV]N[_\g`]Kw]Vb[MDOl\`faQbvT`\]UFSQ}gMSad\ZjeYim{L[pqlf_`KMg`dnjckbgi_[dSPOYnhhZZYOb_RUZFS[dRZfOma\]P]]VffZgVW]`V]P\VbichS`l[_Zgga\]aV\`UZook^YjbJew[^XSXb^n__pf_dTc[]y`PdZbZbHJV_T_Yambc[\bLhdZhqpXhYeTP[Wj\aecUDj[iUNeZYd`RT\cg^JVe^i]kfVm_p]p[ia`ic\inWXae^u__cM`R_f\fbY^pO`_cd_]fqZZhZ_Sf^nV\PVX]bY^dbcXPWMgyoR`U^S[B_]PWWojUdbbj_sLNSPbXMoUek]c]Wb_[akqVxWgYcXs6LTUgfRU}BpYPpPumRa_?nhD{aZVa`Z^bbmZjkRe]bidOZXQdlW_Sa_pfRRBwZm\KJ]d[dU]ocuSRhWtV]f]{[Pr]cng^fyghIUhRfabh\Yl^bdae`ZhjOchVIMXlgPTVZpgYeYRYOjWZ\TcJMo5V^i`dYT]J_Wd{Pdb^cL]DT^R\dOj`jagVh`\\qVO]VpyToNabWMd^o_ZYVXhaa[gcbu_N^RW_dniYUINi`]a[UXOP`ZK[cV]OOLkmsSe^V]i\SKUb`9U^jW[]cPX_R6]^YITOk[LXiZoPZ[WZMU]SJJTfic`e]XgW_Z[ZZbXWE]_UccRQTVJ^uVMX`a\PPYO^XXloNpdVfWfZ_V]L=n^ajQSXP_vXRmbR_]R]]cVQRd\n^YRXmXcYCbe`NI^]R]UmMmXd^UgVZ`\OS]LdhVwO]RS^fS]UXdWTk\YBa`UU]SRWI[srbUc[\b\dU_ZN^Y^j]`of\gXTZ^iWU`WO[RYif_ccfq_X`mRX]h_jTeK]bukUg]aLWZXaUOwQVsLd^Y_eWQZZK\X^Ys_weXPde_D_\b`PY`ZOWXc\]\oY^\S]_^ZQKKccWXuVPVP][VapF\NXMX`LONhQdRLScWGSej[cWJj^]Mvw]T\TPQ\I]d[]pY]hPiNX[NQOj[n[_jWTXcW_k\P\L^PFLb\W[dka`Sd_X]olOYZTbc_`_^jcNU\`Wch_UcsUg`SmY\VcK_Ubd`\a_O]VcORcXbQ]e`PafLZ`^b[KTk]mkdll\\SYPab[\YfaJ\]PR\]\[^Ve^ajRg_ebaU[md\lkY[K[cXdclcNWZlfbd\Z^\]P\VYj_i]\bhTXXURa`Za^^ZZc]fYOVbWUei^id[fJa[ntZa\MhpEX[qaT`U]jV^vOQZZWWp]QE_Z[gUbY[aVdaVfZaQdNfZ~pZRr`YPbXPmVW_YoT^`aaitjV]GM[T]x[ad[c_N[`cL[YX]hZXn[sTUqPneURJVryYbmiV~`rLZKMbPfRmh^W\^s`UyMkFJVIbh\N]Kcb>JLNkiDTpZ8ZHFWQnpNCZfaNrZbff\S`Sd_b^Xikbeqf]gMj`_^badkffbXpWYa\e\icQaVOdXe\VkKehTVRlU_g[pY^k`jUaf^]]oJ\glwUZwRhzcd_pYfMmhSPlOd[gSdaaVSMo`\cbT_Z[_Ye\K^scLY\RWidZZdRdT`lMT___W]\XjQ]_mNXVYZaNb^dY_rN^LX]WpfCSRWodUKi^cse^UZV^kc\PhYYUXQ_kbcZiSBPcWi]ReYYeHcYQbTXUIcknWYkjWZahQYWfVqf]NUTo[[l_MR`[KX]UWVp_R\KifflSf^Z]]c[toQMEacc\^_[Db_d[NXiEYWfLj[]gf_vPnc\]^NQff`_WbT[Yjec^WWT__NtTVHOVr`]co_dQVRi[SJO\c^c^nK]zdaiVUOpOVSRLCW\Tqc^O`JMNYYZX\O\V_\\ikPqatMZY\gdocVLIcZWl`D[_qHk\MShXid[]aQooWV_Z\WxdZaKO]Z[TWe_\WV[W}]_Xf^^V_ch^j]Y\c[ULZ_|^\Z_eNkOQUXUZ`eKea[aNWdLb`dj^[YTUT`N_USZMYh]eW\derT`vZbcW`\dTV[_^l[ybcb\LcQUbg`RUbcYUK`Ro?hhiJbr{gYnY^_p[\QYUWVN`VhYlljTXcXqYhfRQX\OWn\^`_^Z^n\hgZ\]\\nhqQWfaM^nXdtZ^_dB\JV]hWif]_`Ze[TV\{eEPc\Yjbau\ac^R_f]iZOg^sBcHeYudgR_cWvinVa]L_]a]rmHSbUdg`uc_VbhEhhjNcS\eXTamdl_obM][aVUYZGhUnerd\]TUTlRcKbbR^iuRa]KSbW`\fjP^^O_gFbheSeZbUKqSKF`P_^tm`JXWOb[dZXsZ`Va\^g^NhZ]]Tdebbp[UMT^\\a@w]e[dcp[]jSOO_tQTflh`avfR`NiQQGb_LHcj`o\Rba^NX]`\JRx[^Sh_baX]UIMfZ`bYr_Gei]Yfch]XbZS\fRk^h_Y`eQ[[Cbrd^aZX|Tkgqaike`xN]_cdReigaTnSfdNrbQeRPX]J`NmV[lnP_m]gdTPVfZe[eO[\V^aLLKYRPo\jcM][Mj`l[cN[a`XY^]`O\qbZoGgeQ\\OZabbXQ[w]]lLgO_k\G^cXc[aVN^]`eSbVV[\^`Vy[tXk]Wcni_dMc\ZaWI^I\_\TgXec\giYPnYV^_pPq^h[lZqZueMcJUZ]aQXbvc^q^lq]P__Q[mY\]QgTg_NuakXy[QYpdXWaeRPGjqSldSaffPTgRbVXlgkvVZ[TUd]]VjZiS\`PdfkOUZTWSQ_bRTcShSeXZ[e`[{gO[aPVq`d_PXHjM_KY^V[YX[]^SY_y_;bY[mYPNYoagT_^ZlYMiT^[kaXbx]`iSIcTjVXeU^`]DZ[aIQ[]Yn_iu_^YaqUSTajSgXP^[{^WXQNjdbrVPcSV_VYbT\TT[SO]Uk\PkPd[ZZbXWc^[uhbW`]eukVhRjbP^Ol_PX_bXT_QODfa[]\KhandLTQaa[g\cZ^^b]^JfNWjYTRbQeWeJ~NmeQZbm[Zjn@fJ[:SNa_XSf]cM^yZpSoM]^bgOck^\iWbd`XoNXQ[d^_YZ\^cSUT]TabPeVaPY\Z\SbhekYYe^b\`TNV^a]LdSW[V]^]\Se]_XITx^bT]`ic^f`^oVhwdb`V`dZi]a]ndg^sTVVzOW[PckOVga_fc_]ZYbjNIfaLXiSl^jMnT^Nd]tzS[iYZ[`SRY\WYZ^LdmdkWQ]]hQhUVY_UVW[TlWMUURWQcXXg\VYX_H[UY_```b`gk^`dZH`eeXU[`^Z]fgX`g[TSTR\XJmhjU]YZc^eQ\YYb]Z]\k\[dNR]_Xpb^^`X[XWfaaMjFWglbb[cWYgYPc]TdYWcbvfhegSb_dPde[]Y\ZTka\heP[ZYSYZZc\YlfY\[Xdmh^taead[S`sfsURfMyN[[Uc[WfU_pg^C[}ZgaWnT[[ZXc\Xh`^V`\Ya^\k\_ca^[_hUi[dQPnX[Rncj][_^SSMUdXHd^SXhj^ZdTcVh\JOqakbVTXZZ^baMbaYMPle^bfZYP^[TnQ`]iXiWiMMidViYkaSY_HXi_cgRT]S;fhOYTW^Iw^bllYYk\fx[aakYi]e^WYb`rZf]kmaeZYZUZUeZXPb^UPYoll^KTkQBSfk[XMTl^WYZedXTieTrVRV]U`VUdW\AJ^YkdUOYbgV][njPVs`NL^_^XYRKclgVW_TRd\UMXX[dS]Vu]\bpXeZSV_JSOW\YQdyjZZYRRlLfWNauKXV[iXbakUber_Wa^GPZM_hBOaRbHPu_F8dadaPXV^JVPbdsS^]eXbVVVXZPeSW?][QJ][ZNdYMYFVZ^cTOVOPkSk`mZ]dY[]spShix[glZwcZcZdt^cR^MS_bgXdRUX]eUjoNKZeVeMeci[XSUP`XTZjSJXUNW[WNYMYcEWYNb_VVH^[ZL\VM]Maj\?[huVdXOZeZ^DOdiWTdaZZ``Noc\gAPaRhXb][V^SL\UTedS[ZIbJlceiQPX`hRaTNgHg`QbbupU^fPZ\RvR`_\OZNe`T_PdY^Y[\TVWQUhZ[`mN`^YlK`M^fi`]cvc]gxjQ\[c\KX\z[`Ygbi^giU`__g?v^Se^7\fTL?GrcUlSfsTc^pQWVikhOmq^k~EdrifT`fnXe^KmQTnVC[YYWTP_irc]R\]ZQZUEaRY\adRSRi[ckea^[\WjXb}^`YOc\RoNbYUabbcRacZcp\W^zd]all]rfTwQkd[[QTXf__OZQWNfS^O[_XY`SQg]XY^XOg\amb\f`p_QMc`cPP\`bV[Lh[jumbf_YVR]uc?{VNZKbjTl[fVb^ZaOXSfTdWpW\QsaB_eMbYgRVWHUn_\i;LNq`xw[HoXcqW]OkUikbP`]hdjSl]bYX\ZRRUVgfdQ]VR[Uw_\veJSONT]pYdi_Z]Wv]\vgYYWVTYgMb[VpUPZoPO_c]jWg\k_`__ZZ`]Mc[\j`[dVaY^gq[brIHddr`UIwPQ`WHlP^jMk[VSWmceC\`TXenU`HfZdkdVhTm_Zc_kZbaVUc`lYajjRdOXhaoeQ^RR[e^`WRkYb]U\_ZZeS_dsdZ`jeVN[ZNeb\Yb`jcY]tckbZhl\saahZ^i_^aeJKfc\\k_KcPYb_|NhaZMLVV\Y[mSdL]nMVe_cXT]Vvd]SORXUcmbgU[VWXhGSbUYSikYmcXQJgTY]icbod_be\b`\[\^ec[dZedgZcZT_YNk]C[ijdnecAZf\ZrR]RNZdYNTWYY_URSKviWe]aeEbcLSlqX`QV\VUZU]`X[^]Qpf_dD`Y]Sqe[]WTOdnocfZVkdi_CkkfXc[fTtHbSYHYNhWq\h[G^BP^]lb_bTVW_jNfrRdQdNYV{dWDUWVYOSZTerXfjeXVmEX_adgY\fsXUc_a]hfOW\kb_VHUeo;ZlVn_fSREspWs\XVK[M]RkMY\V_\ScSee]Wd__W\PnXLsqgdNkKS|TW`_Y[_Z\OUbWjYZTV]daToMH]R[PeOJUgWWo`ZNY_fR``BaOfcOdSVTgkxc{ZlRW[SWUSP\PodJ\ZU|ddoiXhE^Su`OUhf>cZls`bT_XTMXhm[T<^`d`XJ_Zou`g^KkpVeT]zP^seMQqdUUcgWoJeZWR`g\h[]Mcdrb^NXUaig__PXWcpSSLcZN\gagaXeZk[X]^OLc[L`l^lsqbnYbLd\UV`\\]TXFlg^]]\Pg\[bO`c[gd`S_YhYUX[\_G`gTagPhdVZOY`Um[\xrsV]WXRWci^]YSDSGUmKjYenZ>iUpXJ`mhOd[MZ_ni_^b\UuWfZIe_Zgav]PNyg>d`QCOih\Pd\Q\a]]^^oVqrZYZPmF<\NZ[Phz[UXdoZTca_QNUOX]EW`UDMsV[_ZWgJuaPz_idf_aYdQigT_d\ZXmOLj[tLY]YX\SZ`[vdcj[XTTUUnOOP_aRXpY\MeYz_WYLsiehUeYNRXHhUbm\dVGbRVRb[MdVPUWI_X]NVwKc_d\\\bVETY`RkVCTW]o`XWjQcbZeOZWFOAniNkK^Wlc_^XScdW^]kVTXg[_IJUXKW_YVc[cWFpE]UcG@{Xa<_a_^K`paaxh[f]YacIptnelPub[d[a\s[QJpa[n\WOYUO^SpxZPbmadO_XoNsV]TgTOWT[WXWc[[fVUK\fZl_\Wc?XOYUdjZaioBNfs6ghmo][mJPIJkYsXuXbL[[m_aO``Zlfj\XmUcgj_UfIKf_gfd]c[Qjcqu[L]jmHaoSKJWdbigWV\V\Omncf]dh@[jZa\I\d^Xf_g_W\ibaPh^[aLZU[ZUVm^U_[ZlIV]YVleidPZrO[paYuag]Xftak`b`}SXZoh`j`McGX_T_WdLluaXQcl_TZ[Uej`LVk\^^`Q~Y\`eSEN^NcT:^VLWW[Jm^d^gUHZZPQN`\RZGpmpf]e\b]NgZhmj_\fcMhjSaV\]\TkUJZ[mNQf[Y[a`VOes`\PcRV]SU^\nYpbnXHo^XhRk]biiUSaoZjXgtbNdaXKLVOjQ[W]_]\XgXbv[XWeeWBZ\O^c_dXcdjamZ_^YaMhbU_Za]gXYkUbdU`ebRUl^^ciqTXM\^cCYkUL\WN[\JOe`lbfacM\YUnIZc\ftKfXgXfuH``Q[\Qgdu_\d[X]\cEXX\fXcQe_o\`Ac]YYa__cckiNEM`nf^Yl[gcP_TemYPbTJug^\Zqd]OPJfYr[ucfpd]nt`]UepbV^iI`maYfiXmJZmZ_XUQbQf_V`VVVaQfddlXoR`bXTXjRaT^\]medUtWaOr^kWP_ccrPciPUamdZbjVThbpkFehcddW\S[`TlZhll_WZaZIRhQbbPUXQ^VPZcR_`W^XmJVXj`p[WWeP\jRfZkmWfV^i_tkZ`e_fb^TRRZg^Kdg][^igeWZgdVU]ebZ`WaTk]dha_^[ZV\dagj_]Vbk_eZTl\TXY`c_dKRcE\iT]SfSQT]_[iYVnboeX`d\flU[YjL`V_hc\Xb^c[R^\^VSbejY`^hXc]daM`gjRUUSY_a_WcbPX_kW^\QVJhUWvYc]gXsWi\h[Wl[bXSkOXSS`W_kZZUy`Rahqhf]b`hse@[JWrYPPYl]_gXbUlM[_\\]^WJUS^YdP[^\J?V\]eWf\ec[_ZZf[_eYf\dVkpbph^[\^bOXb^fg\lP[b[g_PFjVg_`]c\UlSiUVc^\Z\pcoWWg]dO[HX{b_^Ya_b`_TFfncUNdoTanPZZbgRR]aN\X_Sc:`SSqQH?CPakD_yTTS^_n\Vy^iWOiWkUZbXShkbfsdnsYHb^pHOT|FJfXASR`PJVdXQpr\govXr]mkm^_QDNV_cKh[mS_lyRoXKOJYmVz_?aiY_dLP7a_kdh{RcXWbTYRNWZUY\YSWbrOpLkWVd\Y`Vk`RZW]RTTVR\`Rbje_gUh\eVj^]\Xbf^QxQ^ge`mXZ`\ZNzTIXeIQNnhTAsW\`Ym_^\qOSRmg_jbce`U[U]IhgRrUVU`UiiUP_[b`Rig_kf]aEKfXWgi^cX\PawV`aeU_^^fmTZ^fkiqY_XgN[eTN_dSZ]RRcTmR`\ZfTg\b][xu\cS]TJcf\aTmJXYcPmc__fz]e]oTlOQXXYbiMfSMe_>[^blSOcJce]iVORdkW]sZcecjbWYNS`ZLgfaZZYfR]Qhd[]p\fhdPsTV[cPXUm[]flre_YXTR^Ocf[YPaZdWVW\ZQYX]Scid^kkqXJWcTmg`b]b]PoYnw`]RY^_SOQxi[]WS`PXcUYHdkXV^^PepT\]bWQwjmgZh]`XQbX`UR^`[T\_TeYMH`_XT>_TSpkh[dX]`kWLaLb_bON_SA[XYvQ[okZvH]^[R_bTAdQp[Tf[Sghs]PT`eeUShJ]^^jW]Ve_B]R^Y\MRQPT\_h`UWt^Y\e]mJV^W\kNjF@a\^o_P|comQ\Iff9_flcMRVWkyOaaQ^kYVeTX\X^VXX_xcXifwk[UlkQaT[VITY\>b^HQSSPeb}K^eoU]V`^[id\e]X]]ea[PY_^U\fXcXdg[]PV\^PX\P`Z[`_eVUR]Z\Nf^aQjZaQZQ_fPN]UUbQQg?f_WVDSQ]cY_[rSTaFbdYe_Z^\lp~]b\gSUTIdnX^j`ZeYW\~gdphn^PgN[mbP`L_WuP[gb_aX^O`\Vf]etfa_RasX]RPwV^fRccd^lWdQ?eaQQgN`biOTQ^cTRXhZK[aaW[VsL`SRS\hQaYlRll\UjMPRivsSHbU[LUc`dZSTJ_FUXagafYnVZXSY]Ya\IRXejgiQ\l_cRY_]idtQf^h]aeRgpGgai\bYhY]j]NOZh]gZWWj][]eccQ`af]akTY^i^[__caY`\``U[h^`ke^`coaAaj]JRWbP\SfTOgYMRShg[VeQ_VZhb[Q]WSiW\`[gq^_]^gfZjO]XT[XRhlR]EgdVkFWHbiZ[`^b]\YRUkqengvWch[UbgZUS_Q]UEV]YndWWV\`gdSfObZRWZae_]Xc[dZe\^iksFgYUlnf`Zbe\SJeg[RXShnTO]QbS`Y^UXTg^jP[c__UW\Maff[bf`Pg\\\WQUST~gR]NgbmR^`nSacZl^`N]`c\sNe`R\[US[iZYOHm]a^kege]^dfZ__U[ld_D[b`oMHFZeYmtUjWemhiLc[se]VOTQooUZVGYr_XeVWgVg`eaT\de\Xd`NUYc^QUUcpW_Qb`XjWQceM^QYhL^_dMQaWtZ\]S\WZ[t^XMMbfL^W_pmVQJNb]kcY`th_fYKX\[L^d_e_j^TaqiXW_Sa_iQ{iW[dcT[cU\`fMmgbUblqWNj^aTnXaV`WcgTZYeMeLSZfcT`J]CVR|hQVUPnmjYQrbR\utfGYSaa`MPfgYUWiWSZ^Ugm]^Yacz_FZV^eUVTfWcLUg[mT]cf_WNBSa]QbdVWeiOlbmh^lfZhKUW^aXYgt\UWU\UUs}XMoRSSLSTcVK[`YJZTuZW}cXTV`SUn`QdU^_`WnWi[S`N\][TleRh_[Z\WXYUYZ`V]iR`Jgg]PlbLfQX_^gf^iU]bPT\af_WX]dKhY]_f_`U`maebpcachmbY_h`[O__c[t`_nbNYXi^d]^abaWWXo\SR\iYLm_q[X^bhjjUPa_ckZ\_ekPe[c[]gWaaYTWHW_VkS_r\UsegYUddUWUUYhWu_k[\rpki\Mh[QhiR8sb^eaOZj\sZfb[`qW\`WUNoY`ZYzEbajWYXR[RaeWeZjUbSTx\PNQQ^`XIa_VW^wTMWZmTVR]OLT`iC\[bPvZbTL^oZg\jmaZGRN[][fbSV[Md\^gWeiWRcn9bR^cZdZbOaazTg\Y_UfR`bebdRpZsO]MWkaL[kciZdXTYabpa[VGYi\a_P\XgZkZXcaa_PTiY\[nWacY]T]e[faW]iN`_^b\hi]Mh^aaf[~QSQWW_OP^U[nQWJ_YpRlMZ[Z_XlYf\`a\`UYb[dS]`a[cS^YMMeVddWO^UWXod\bcU_T^jhUaV^bXR_SiThcdKYg]X`adJdecejhaPhYc_cip_Z_\]XZWZQqdh`Z^X[]]\^MbX]bbXfc_kt^_Z[SWeBd^^aK[^]debmOa]f]ZbWRkTOPeiS^RS\hPoO|[XhxfnZZZW_cd\\[mcW]`sQ^nbTXy^Wg`hUYXW]`xZSdWf^]I\f_Y_bn[\]z`QKVfRQ\R\N\TQ\j_^SO]]Q^[]SamWPpHdtUPNVnlJqcg[jc|cZm^jNayT_S^[LxcZRU\YO`]\^fOU^ce^bM_SbbCdWc_QY``Xh^O`caP`c_]ekXhPqb`dkXmdl]RJ\TRXeZSYjT^TpPeW`GaTV]Y_t`]li`]lTdTPicrwSi\fQSabW[`hZUOdkQqh^gib]nnW\^_QQYcUi\gN]TcWZRQ_YYincSIvgb[bicRXJeYaec\`][^cYYVaZTeRqSRhb[[^]_ZeSQMmaUeecGOipb^YMVhZPaVi`WTYUXboeLgIRHLhWR]b?StbfiZfRONUUEQmdJ`\gpT_Qn_eR\[OjUWmXVWa\MbhhpJeeUaO`WWSP^kNCrk^ZlzQZ^TjV>KZNXhYm\ZXef^Wv`_XbirgefaTQTc_hi_e]gTZ]\we`yTpbaOX^`^YSqTaSbWjUyUwLjNZc]eb^bna\O_XiTW_dflG_]ZmZb]gXk[YlYZMOe\`WeZZhgf_c\M_nkOacj`^`g^\VRNnhQdapHVIdUK`Y`QKSLoadc[`d`bY\Q`Z\zgc\QIXs_T_Xpif]GcJTcX~d`[NSX{TI]TLbZOM[UuSXWOPbh]aVeFbcVe^\iWe][oRZ_OSjnZ]`ScU[S`ZekW[]SHlSS^ib_a[Srgr}[^lerc]`KqScfW`dWZMhVoi[bXchhT]_USma]aRYaWWM_MYYN`Qf^bWTjPnXjgaTLY`YWlQPG^aReSS`SZgtXcU^P[fW]if[_ZRUUNLbkeaSXXNbkbRjUdaXTSkCe]W]dM[POLbSefUSa[hYm[nfNlSWY[mcalU^Xa\_aiiXfar]cgn[aP\Z\^^Tm]_h\_HP]YeGQQRLdRfU[fS]d_\JSTg[Y_[O_d[rZrb^YWVKf{VdQIYXM_ZWK`[Vd_XiSTRX`O[`nX][^X``faW]h_MXQ`VPR]YiW]`e.hXSUdebfMWXFaPVbfMV`QWOT]PsdM\tUbSlpZtMaTe^MS`V[Rac_ZVYQaTUamOqaX^]OiXeeOacdWc_[T\Vb`fa`g\^`QNZnsPJ\\`dhUeYLh]^[a`ZT[[^ScN]qPf\wYY\cR~diamlfW_lZVdZvcR[vZ\rkT_h^ZlWfZZaWL]ZeTagSb{Wk|LMhf]WOV_b]UcXfVJjiIS`jZ_PY\teUsY]^_W_^Ug[ZkRIEhW[hNUQVa[bhZc\ckOecRiMURLtaWd\VqVL\gmV_bmh`sTXgURnbQVO]UY`h^Z`TcdYLg]HnkV\WLQi]UURTXEpsUUK^f`fZ[U_Vf]]cc^M_pn^lZjW]L[k[\Xl`e]big[d_Yrc_l\VYUJuNBpcaopZee^dUOz_SZMVcT^l_T_bPa\oURiTjgh``lQU_ilMfXb_UXmfef`=gndXQYdQsWkWW^blg\jXYScm`_\gXPNi`\mgR[^jbUWLeiZXQf^^SWbSN]cZaV]bcZTnV\^bXcXRQUl`S^a^\WV\kRkl__e]Ua\fTMUNcN_\VXV\^^WoUmQfUpcd[VMXcZT]_QfO\bP[`TX`U^fs]qdXbdiohfObb[iSaU]eZ\ZEhn]PfZmVQZz]WJ\\yrb^d`^WeXNm_0[aZ[n\IX^\`\AXeNIc]cnWgYWiuYjpdbINnePaxYd`UhV_XbhfJLmX|\V[Pm^|NhkmRI_q[l[T]Pg[^0SZTiEgbYNbafXaN[R`^tqliJqR_l[VnSb[ZZnj^`UmoOb^qfZZcMZiWYVJzmMe`JWd]fSbu\?aWVG\jd^nUO]bbaLdi\@meWV__Oo`FqWY][UT][^bSj[c}a]eRcSXUXbSeZSlc\dcV]bc]]m_^ccjYhX\ZUc]e]cZhpbmZ]`_e^iZ^ueUZecZZc[f[hFYW]Lh``hXWhgU_XcRgWU^Vj`habjUobQ[T[rhXQ`WQ[^]W[ZZflTIenccOGXULMWYQgQ[aTXg^laSXVQSclhaXWZWTORha]jieSZg`Jl_`_Z[Pk[`idWZY\SQaWsddfQTfmbT[Wag^`WSc^agY]h^ad[YmGXfYZ[^\gNUh`nd^NcZK_g_SaacQ]QU`[X]_Zk`[^`WGYZkcU][ea]]UX_h^\]^]^fbX``R^WaYbPh_OZhT[hhdTceZ\J`SOYe^hdfekW\dedheZFKZaXa`]Vi[KbWV]T\cjacaigd]ffMWaZf[Zb]U_X`^^]LhMiXN_]`U]XXceReVaaX`Xfb[]_iYW_dpYWbZ^IYXWTFa~oaToPP\hLeOMgfWhP[NSMa`\UYiS^ofVa``VegPalOVaLPUi[a]^ZWYhZiTgh\qU`L_ZiGXZEXXi]m\lV]o\CXX_^ff]\X`\jZbbfRpgmRZTq\l`XT^RPkcSS]WT_ZRB`d\RX[m__YT\S^XKWYFZWjlO`OtQSaT_W_]TYdb]IMhaa\bT_Yl|dWZ\KYn]Xp_kihVV_EcZoLXCtgfTzPRec_gY_dmTX^WhUwRWde\OV_iXiY^ZP`UVNWjXfTbW[UhN[WrTFnk]v]`RY[]MaqE]d`\\aZS]Z\^HSOQm}fbZaWah[sXc[UZb`aRH[clc`bK]XapqJ^INSmaX^JhMT]ks`}W_jb\ecUMnhY_Pmm^g`eoKVr[VXW]]PfaUR]ZhZeUZNnf[tWQ`hmqRKdiMa[RuZTd^PQSeWih]pWc_]P\t^__U_RsIm\SQecbdZX^YedLW[eeO[UUf[wN\hfP^p[`ekeWgbj\Yk\[RSON[SVOY`QetMce`Vmc]]]^PgVampj_]]QXr`dZego`]]eZj^|RRTgOiiW\Wf^^]QVZ\f\SW^rn[ZpbVUfVaM`Wf4]ZVmQZSOXlVWW`pbWQna]fi]bZ`RaoZectVSk_\XOibjioRbQZbe[I_ZWfi\V\mW__Z]WQNaVbUWigYWTs_R`amdikVTfT[aW^[ZSea^bd[XgS^^\eo^WPWfVcXVTSUnjZ__]TUa`TW]I]nQdaNLRrckOZpl@SQUo\jkQ_ldWLTYnw\`dWOVWb\jZX`aicc^EcWGPJUWW_[QafpZ]aSa`JLliTS_r]qrr]I@\f]j[s\XHhUd`p^Z_GMlWS_SZUUs]KgeW\HQ^^fcM[_hTkdY`fRRatdU`ojNZWY]FbfYT\S\f_TLObgaS_PkdLTb\fgo[`\^Sg_`Y[\KZ`dY\a]TZ^eRhj\\R_fb]ZdeM\[\[\RdkkmjVsdT`LUXaWXehbffXKZIWUI^NhSXabkW[TWef`ZNjYrZbV_Z\]_h^FW_I[dWNVOQR\W[ZiXVebT]cnO`hQXk\]S`dZhZUbYgeReZc`Wn[bX_]WRSg[TVTe]TidOl]b\_efY\bPXYd\c`gZqUgVdf[eYX]U]_l_Ncll`aZTj`ZeiIm\VXicYg]_LZ`]ZSUSge[iI_jlbcadbceehb[RUYe`^ffYhj\d_\iXYgDZYf\_T_eS]]Zhmama\`YV[cgcXOQ^[]W`]nr[ed`ejS^]iX^][[_fr]Z[Tbain]]_Pae^bLORcV[mieYZZ_]\aodZeQbcjea_G`cRhgXYT\\[MPKbX]]]^T]`d]d^YUiTWhmxbaUOaN^LpcafWWY__fYVbigb]KcXZVRbxm]U`aajQTTVT_XZRYZ|]fvMf`T[JX]\]VF`PM]OU_PoeZh`dg_[UOrbpqKb[]TLPcRZ]\SyciC[VUTgw[^FRISgqZdUV`bcdULMb\skNEURh`UB\`dmTXZaRc`nVY^Mq]Xi`SLlSZp^ghg\RX`aWYTYbRfa\U_ZGOQmo[[XO]laOThgLR[hQVWZYfZV\V_Vb\TX[L]R`Xj]]pP^^\Z[\m\X\Vj[SXdFm`Z_XemgkbQ\wZb[PV^d[TcnY][kchWKSO^]XYg[uYLPJ\]eF\^I]WVRdoSdOe{WGX^cXT`ZnMVceN^^]CH\h^a^]e[nkUTciYV[\bgNUXaXkbYV[`^XmU[eOVKaWWQ\RiXA_ueXSkXGZFZUVbtJXlX]OdeZSm`gZeWRL_^X`t\J[QRrUQ`fXl[feUfd^a[]K_MXbcap`Ojs^^ZuTWVTO^LibOWh[YbaibOW`ZX[ajP]RX`KUTbeZdaefvXXcnRnSZSg^RXP\YSGi`cWVh]l^sS\aWcRj^`aN]beZZe_TSQbfdR`^M_c_YlkhZc]^[pVc`[Ti`Y^Ge[bcAbgYIi`jf\dad^Xce]\\\`hYnUe`j\fb`ccVfN^aYT^[SLihMU\rt_faYO_V^SVf]h__]xWeiWX_[h\ZWrld_Q[RsZbfXpgib`U]Webq^f``agtTXRTQUo]^Y]^^\\XLZeddSRXL\Y_gH`^`UbcZa`]`d`fZWVYh_SRRa^V_fblcYT\v`A^veWS]dBa`oXWc[e_Q`Mjah[gRJRjnM[VKQg_TiZbcmYUX[ZY[aWf_VVSgjeT^bSdWXQXVi\tYXM\cteM_pbYfQTS\XlQh`_kRU[YVl`ViObpSJiTVPaVV]c^\^Cl^dbZ\Tk_hfjUfXjP`NYkZggWU}`OhcYTSq]ZanVYLgUfatVZ]WjpG`P]`[dYaYYU\L]ehCtgWMiWjcR_c[[lURVZYVyRbQ^lgYb^eTefYUVoeTa^Larnd[`Vm]iYjF`a^hYZV]\U^]^RWO^\gLRqY[`Sl`]ReHUlW\_kkZhXRfUXUaVQ]Ri[PSd[\`j\\]p[qSP[PN_`TgWhuXkghd[odcfIejgWRmYXV`fVb[\j]fZg^\Zgc`fTVRcJTp`YeQ[YV[W^o]hjeaVZ\b]VfdbeUWcW_R`Z^NY_RXbjMee[Te^WZjdV]^cl[aM^O]UVhnZR^XP``RnQPh^dmSXReOS\^]f]PS_jeg]TW]g\cjfdNZUVcZXXcNf\Oe\Q\ZraY`PYWgqXY[^diQjM^gWgaqqQ_]]vT\gY`fbU[`UW[\kfbfccfUhi_^`GP_iUS_kZ^cY\qX`Ufj]^aP`ZjZl@nsQ^Z[uYawj\[ebekTU\d[AVhXSYke^^^hTnbce\QWSVYjfg\Of\]`N_PXndSWXaYYX\ahXIk^gdUfW\]q\[Nel^RLmTaBaOwVWTi_^_WTcU^RlaZiTf_eSX[RnSvUnUZ\biT[fVWX^`VoT`qvj[`cXosQ`]a`iRZrVo\Tnic]SS[Pj\e[o\RpP^hW`RYPghYnffktrWlT^dXzccYdhQaXSbRP^jfjeTcQcebSP^_\hNMTeXWf_O]\^WYmSCb`WY\TULTaiZke`bQbMVVTf]vqa\^SWU^isZgjPPefTR`fJfabe`U^bn[VUeeb`[KSi\h`eWeY[l`dVsd]^uRU_lajg\u`aTiY=YfzdjNYa`KTaFTa`^ear_W}`^efbTLY`SfOji]Z[DQ\f\UdVXfgbWeVQgR^[h_^}LyMXpai[Dzu^wGIpVPh\Tb`\\``eMkgeTMW_IENgcX\MMfD\aPVP\U]iZV[VGVP\]dHnZzS\][PfUgdVeuRUV`XT`bX\RfQ`VigbZ`cdXO]\vagecTde^_oYWe[W_j[ieemLROVn[T`ikUxUPd_aOfc[ZTkYcZV`WT]WW_TRm^Xj^H[\^f][bbYdgV`_Rj\bU}hLa\XWUXQYQ\XdfeeT]fV`bd>dY[l`S\[xVU_H{_S^iGD_TohjdSXiaZWfhS\lWQSa_^]^^go]LrihgYk]WZ_cpH\_U\d]pJRa_TT`W`ZW_YvUYi]jaPjV\UjY]]`X[Kc^RWc[U^YTgU[jeWXtXX_\XcaQdZVVVSXT\V[_eqILcd`JaV`rf_XlcX^]cY^\KTYYacUZ_dz]X^I]WZ]X[ZsfTflmZaikdM_^endh^\f_h]Y[YsY\^W\MjRhuX[[a[Qeo`Q[dU\YVb[P^pUOYRd]lr]`Nan^d]VleUxN[k`Ra`sj`[Z_nWZVJUZemU`nQ`_NsYLJLVYiLnWPzZSXRWUlGnaPjJZFbYb_eaMVb\_^kbfembVZiUlVSX^_k`TdMbiJfPkPRYfeeWgTVgRM^WR^YicuRPheUa`Z`eSjnc]YeZOvrT\biN^bdSfWepf]\d`NXVMSY_BXZkhZrKkZOdcM\NWdj\IWIS`HTbXZiRRU]ZlqVCX_dU\[S`VP[tZ_H]Tkm`tIao`QZlQ]^ahvfmltk`IhQhpoPYb\ff@jLcVRenbgX`[h\saUZt\\Q_UfU^TVe\R[fURSZceuWg[WbXhgP^gugq`k[VORL]KGS[aUfU]dd\[o[WG`][graXY\^aYmVg\gRWdmTcWNuSLedSWI\aeXWO`Tp_gTZk>\frqe_KwaNtcb[`W^TUUfbWM_sgdghWt\[HINY\QbGXV_sGkXU\Ss``pZ[LfJZQM[fgXThgT[WYLXF\\jf[eTT_OPa_PZZT^OlnGX\^ePaTTV\sfRYRuS^Zia`OjO[`ZXcbW\`Ub`Ndg\V[enFJcdHT_koMdgRTP_gMS\oYaTLXZeNnRhZW[VWn\WTd[[TYghY\l[aYRcfVR]SoQZ[Nk^YZwNoeLakRUcR^XcWb[mlYXTIVPe^f\hY[ae_l^gamcf>ZZ]`RlaWcBsVfsicNITkWkMZPSUY_QdVinx_h`Md\TWakdQX\Obhj[_tc]m[eWRdWUpid[mUaage_[W[caDi_ajnjoQ_dVUPj]`\X[e`W\g[sZSlYWT^eS_cwnk]^kRe`gfh^^YS]WMNgSG\^`KT\X_\TT\kkg`eWeUZeONlOmWii__ETXeLdXUY`T`^RbsXPqaY]RP]XNymc[e_X\XPXhhXSaOeURQ`]lch[cL_kc[opoSTXSc_`nP\`dVbfyK]neSdVWTZJnJ\XWU^K[^RyZcl^][[TS^CnXRu^gL_gfbnYWVUT^c]kPL_]\]^ej^^b`hdosrM[Tegdmj\U]^dQKjUVVbdNVd^[MbTQ\ibrwlTchV_iQ]^aR[YSWcSG][\X`abaYZZQa^[T^SoVoSYYOZMI`Yf]hnmiZ`Rkdb]^[WYIR_gCZ_RNVQP]^\OZWThgYd^W]ZZS^`Y\_cN[LLhE_UK\VScYi]ev]PTSi|i\ea]oQ]dPT\bYk`jbkgVhdWV\fTc\aXe\[NUSa^Vb\eVWUiY\aW[YVQ_ZnWubZMfZ\\Ka\]cOaba`aMagVTQWbuenWtm^^c[Xgki^bddVRn_[`a[o]eWX]m]a_^F`r]VXcleSOalY__sjhYgcaVhdnmW^beR]aKd]\Llj_bSlZVfbaH\dakt\WtgalaXlcN[UVn^aP^Y\comcZ]Wac`bsUb[Uc`TcpZ^bYbQRmZ`RyUVUkhtagScXbPacVRUUP]V_ge\Y\bV_n__lgVYXW^YeJT_OtbT[]]Z\vabbS]^b\WaT[qe^Q[`fhhX_TjYs_[doOhSVRZUbd\gKXLRYai_]oXIQd^RYcqlcbbJPYSbcZa`XN_ZL`Rf`]`amYbW]RaSL^pdjw^WNlbiXSjbmc_Z]g^ZYZdppU_[UdiobYSmj\_U]__YhXaQasXUZ]Vw_RZ]`UWb`W[U[_WeQRbjcg]_YaeLl_^O\XaXg[Y\[bWnUaWl]i\[R^cdZd]An`WWk\fk`R[Sci[`jc\Q`^qbeQO^SKeSef`XnWaYbneYRaSc]M`Ls_ByYgcuUg^al]sXcZ\ti``]^T`P]bZ`Z]g]qHT]`YcZY]ZUhdXn__W_Z^Nd=`vV^g`XJPmk^fnRZoUjc`lbHcWfji\Z[cdUaVUZ`Y]PceoehZgVjT\h^x^tsbWb]fX_YL\]NawdUbU`f\tZhYSffj]qfWXcfi]^YDhNZIgXnbddlTd\TZfge]Q_dVbdjQR`_WRJb`Vn`]I`fmaWdRTVINRQV^Mh^b_X`sUXj`VXVcE_aM[Y_]ZXcObWk]^[Zho`[mdqYhgOvS[eNcZ^g[ZWgXe_YacWZcY6aEVN`]ebNX\Ye]fZkcy]fbTq]TUUPQfPpf`HXTUmdi]Xid[_\YkbkVZMXccXbQ_~P`UYWRgjcje_gW]f^hX\KTNbXn\UUBnZd]^WYcV]shafXBTWUcNY^dcXrp]X`UgcZYdOXV`SMeZV^RdXpUaWdQZRYjcfahhRica\YhU[fcZOea^JYXN^ieZj\`X`taZ]l^P^aQ[iglS`kXHLXN`\dcq[QjacWieVclTL]b^PebVXd\OiS_VJdR^cZZa`T`c^WXU^idbbio^PRVpVb\kWLj_brWji\bu_k^eo[bKejaXnE\X\XmRFazYPi\c[_RbX[jYj[La^``[V[S>dXO^UMkYS\]iPQX}SZ`jWT`[ZeZ]Nd_\V]Z\U\]_ZTcgf[ZeSR_`cYZ^Y`dbSXXL``dccSUy\bp`ST[[ae^PfOoRZjXUW\gYIVeaJVjfMQXiWJ_\nZWY[[kiK\WY\\mFIbtncQWshgVWSxcWZia`YM_hseogNfc`dW]TS]KW_`kXLZQVV\VeVPPVST_ZWcMZ_VbH^jQbhXgd\WS`bg^kUWibulXZrbOaa_[`cYPdQ]_aP[_H`Sg]fYWaPd`V`iQISUdW]_VjkS_ZY\bbgRfOYLblQcfkThhRW`c_`kogZHPU`L_gajZYc`_sNLe_YdVQRTdZbhjY]SLdY[S^W`[eYlPktH[UZ\Z^SMXaZXZS_g`lfV^eLd^kbWjdxY`Q`Yj[fXWVtcaN_Za[VOc^PAbhe`[gtfgT^UcdVdYeoZ_^^]mGU]ZXgTWg_vYs^\[[\_X^\\TabU`X[XYTTg]PgN_`X`GcW_[[Vm]RpU^Ui\LILQeb[l_b`TljeScgk^YeVWTZGb^iv_M_a|SRPR^`QjiZhieifs^fQZ[bYgmUgcWXjvJnWV\\aWQ`d\_^W\`ftNQ_ZdaSgge{gcbb\\XOYIYanXbc}^bb]l_a`lecmhBwXV`]o_QSVoh^eNjbkUYg^at_PjaCaIU[q`YWZ_lTa`c_Xg{W]pZNOLaHXXddbhJ]rcRzmVVga\YdLTg]`n_`me[]UddYh]Wcpn]mg]Ya]h\Xa\]Ta`cckPfoMX`XgaYwfVOXOTs{aQP^QRihqepF[LZRbV`aW[dTdUQpZh^PabS^U\bWgUoIkjfgyXl`Tb^`\ehdicQ_]i_`m|[cMm\V]`R]daac`WdfMWGeTqfPgZMXYy[Z^rYcZDWQGSU=a\q^eW^MaZi`[_g`>K]eXioK]LaUvditP]j[lWjVSTNZOdd[a_bO^nlbTcdX^SmPbRaMYb_]XJeN;nTZWP^rOYRZokZTi\fcNYNbYP`nfDSdbMi]YZniOYPoeMhDMnlck^cS^KRP7U]bdYNb]hkVa]XdkacGe|K__]NgV`R`YYZYYCNkIT[_i3CcaQXrrK[STHTHCVTz\hNQkU^McX\ISRQYZLtfFmSa][wX]^SNN6klUi_OjbwX?]WRQ_|[^}a_YYPb[d]aXhR`D[XSbP`bMScZVb^\Z`dh_PROVOaeXffa^XqgWmRZ\ahXiSX_hYZS[n`_`djlR^d[m[^V[j_dY[[O]`SZUd^V_:YrjL]fWfEk`cS\[\X[`QPlbTnkV]YT_^Ojdb_qWd[^dKZ^fc\lsbd]X_vKebzmbSb\XpIVbbR]kj]_VXaa[aqTSNUVNVlR`[S_`[[]^bYo\^NVbeZcZ`Yqi]ZLY\bW~ePZWHQfc^kVkSYYXdoSSY]]cWbUfcViVjecdmaVV\\WVbam`Tf\\`]VZc_bBhxU`[PaTaPjJb]e]UMZNShXph\Xbc_[U]_cZjK^]ZX^QF[aUxgU_phKgiYZb]dYjfPggXaaU_PcT\hblmim_[n\gpXebnh`QsbZYPUP]XkMcc]fYZXQZMaPfWU[Mai_LRdc\Sp_UOZe_]I_YdQNWwisRYLtZQRYeSeRd]ZYQ[Ub\QYNIQWhfUbjZmU^3_YiTqTTdcX[NeiW\Xd\c]_dejQN^X`Xi^\fYWkZnT___gh`Kc^^]CeamfX`gZOYmZbTkMUhR[aK_bZJg\XbW`]_jNnXdbN\qYW`YUCWbSgbZf`X[_O`VPfR^^iSPUYdjb_iiOJi~ZQXWLT\WVhbb[WU^KFmRUkY\fWR]^h[baW^QPcNVRjtqcm`_Y_VTYwT\d\KvbekaOV`Kd]GVXSMM}WcgLk_Yh[wXQIXR]TQpbccfQiKXhdn`YSZg_YZXTTMU\jSi_^vcN]AkdODadm]^FXfPkVXs^cUhNp^idFaOkncTqyP\^\[c_WXuTd\]aV\NcVe\UERl`[_^ZU``j\D^Is`Na_eadWn]L^i[^`^sMT_Xd]nXa`bU^SjYfPTinP[fZ__\hSXWNU]O]n[Kl[aWe^bbK_W_cWkF\mVSR]XeRaQVYgaogdW^zekYE`kTikYcYUZQmenmUWg]baMTRUz^ld`c[Rhj^X[bVRaV\ObSlZhcTzb]RhUcoLS[W^\S]`Xcchd_JVr_pTfQabhhUVicSSdW[ZjSU`YcnKSj[L][iqjpY\O]gWTfcrfkXoR]^[VUfMb`]\LWaLiYXLbSZ_Wk\rTSa]Nl\VeTVXdknP`SRfl\^bjXQj]fM`cQb\D[c`XWQi\`fSW\]^^`ejl^ikQgRngdaKDeSedt_ml^Y`P_S^SninNi_aQU`ZajNIXiS\aLbVcGQfarlfLpTWaVaUqar]dZdaZDZ_Hc_haWfaWNLZ^bcf[JepFZcTaW_cmXcecTbVc[SbpX]U[Wec``[FeQ`UYdgbPfW[beWk_QgW\__j^dqSYJObi`ER`TUgZ_LdMVUlJVdfbi_]g`bPptW`eUW^LiciWXVbd_S`WSSKVKZXP^QnUjYegXMW[lXP]RQTqembX`V_aggrb]X\CP]^]ZQbe^\Vfcb^U[m\fX]dTM`^^ah]VRV^^[ad_IrVjVce\VQFNfa[HYdVecUkigTOb^Rc`N[\PP`Y[ORQNaMb^P]^NCiP_deX\XTe_clPXk`MKp[YZWW_cgeSipSRs^HdmMQi\^V^VOg^__WbbnaTda^_niM\]hjelO_mh_R_\aH]aSNXnb^\WP_U_j`lkFh`r^mPdWcxXfhkZWYal]_O[W\NilmWhYep]oaHci[k]QcffSZd]Y\V]acemQoZjZQeVZmZXgV`rfbR\pahf]OP]\TgE\OZcjRehaVfiQUJpa]ThaeiTWXZVi]gacY`WWgWybW`YPMRZ_[^hbgiRZTXePQLbRYZ\bbX\YYZZpiYaebPbT]ZRPPRTcWghZT1]fUnWmO^QM^c^WZcQicX\N]NdgbWf]fdeVeiVhp]T^[ZeLQ]`a]UTSX~dc^Me^WfX_YVX`aZkjwed]\[TbRceT]_cYgZVVZQg\gXVT^A_T_ceWWab`W`gUbZ\[@RGT\W_TSKWOOuvK^NXaR\dbfgXqQKrW^[\]S\Zdm[fVcgg_em]m]U]O^]`caTJkGbiaVU`RadheN\bBhWQk`UdVkci_^Y^_^XOcJbsWZfXcIdPbRe]q]ieg`Jtbej_TPdemkn^NnTV_c`UaW^bcv`VdQcd_ccfjm]U^``kPYcQXkHXaYusSAlhqZniVlVV`mSYU]ZQXdXQdYaTkVOceXXc^ifxkReTa^d[bk_Sxhf[TULZcNaHYShUdisbPgf_MiahSccemfTOpNfkbqi]e\]ITYdIzRWo[pdp`QDTM_cY`mc_bR^Tp^Km^O_^i\\[QjMjYX^T`IXhZcXdbgX\ge[a]ebeK_`Xg]M^YR\WQdkyfcZvee[b[PPVcU^fkTY`gYmVaiU\^XX[_UFY_Z}Y^_oUb]mjjfXdS^YGW^g\|qMj^aOK\^X\\T`CUTcQiYgUeyRMsZ\Ou]cl\fjfim[RbfOb_yVgYTf\QeTgdj]]iY]M^[\]_Zif\OTeRT[YWdfZYZSJN\WWb{VPcxeUIZWVZucM{^\uiSgidLVVZORWX[]dXRNikyfouXZZoYf_X^T]]NWaj[Xd^n\mUPfc`FSUb]RSYpQT`[VIgwBitbXlVqo]\\l^GaqR[QR^axdnoRQPoUmcmQ_FgWRS`rVwYY[khWeVYOnoaQWWa\NgbaYg`bd`M_Rdef]pdmTbetWkYY_Yac\a`XWfRY]pnOgSRbVO^^WGqajfVefeaUfUZnbjOkg^andwQcW`hcqOU^M]X\_^aB`Y]VX_^]~Lc[igg[TEgTQ]gLyTPei^]lXlSa^aoSXTSb^_kMg\eQf`]TTJR]P[lq[_U[\R]e\Y^]iJZc~\RVJ]`[QdYfkbbT]nYZ_iEa]\Od`lgl_]]Z[]_RUV]]eu\]_egrbTbk^QiY\mOiMZHaXbXm]uh\NXUbmcekj_r_eafK`KKH_RL`XMQ\jT\jai|cU_[Yc_ac]ZU_[iWN_``SQ_bo]Vuh]\bZ\H[Q]iXmPSSbclicdRe`UebRKYVXcXWTZSl\\XX_^daWgcXb[bb]cciR^\SgbSb_eZX]gXZ`Y^ub]S]hU`jTSdbX[ebXchYcZajWX\b]igja\U^[kZqXU]_VUYeidaz`]cYWcUg_ZbUc]bp]RUYKX`aRbRY^\bS\jgdGt^RegL``Z]YW^kd[\fc^d`X_`gY]Z^WhcfaMQORZ_O_`ESVP]Yeg^a_WaWaj^afHTT[]jYfk[[kU]`gskaqO]NXVMffSYYeeX_]^gS^VZbcU]F\c[V^b\dh\[lkTW]Zj\THjW_\x]f\ia_bdcXd`]VSNZ`na[a^Sj_yXYsV[cZRgX\VXe_X]bk``]SgWhYYgMeZfbULM__oaWQMcZW_Y\fZgX\fPg_bi]]eLZ\UiF`UgUPZmbYSaSWX\iCZTjLk[nSbWU9cbOWbiOVNfZNVOMSQXT[\g\W`^UMQSi\\cb`^X[``f[\QQTTLaXXZc\RSZYTWRWfP_VOd\cR\MecbX[[cLoZEbi`Rj\hl[dafYf\fG_lzFddX\U^Td`VU^n`qXQkZNcT[Z[]mQaVuMg\PeYdMQ_edTJXSYQMW^WdnkkrkbRnXR\Pfx\M]UZZX_nYOSrc_WUpjJZPWsc_r^Y_oakaTrOWgj_wg__mWeiiGdgmdW\Ycb\mR[MVecu_WgL[mUQRRIU`e]i^pJbj^cjVs\oIS[gkNdnb]ZuY_KXkaWw]Zp_F\f[h`mf[fZTae\VkZdi^tiSbNgYigslgNZY[Y]jQmaeR[aMN\nR]ca]NYaefaa^mafh][bPXkV\]aQ[`n_ep[`bPheaUJUedU_W[]reIdORi]>eWOudi_zWbVWg]W[UcdW_]QaVlehNfHRkdRxlWX]jx`XQaSig\dkihZ[QPc[dUc[[VdZ_kZhiSb[gf]QY^PSd^ZT_\ZkeUZNeeh`TiMVXMgVj`^j^`sRhRVcZaSib]YYfUXX`NaQOEOhdle]ZeeafYVd^UpkWJRO`cYJ]qNY]OM_cXsgOXMQde`WeZf\UWddc_eaaoO_\lUUVXYTVRW[b`Y\^[aJWHbGknZW`bgSXYUdbcb_YOtSe]e]LSaSWdR]\bMbgf[HQRxb_bW_Ycljg`dgS`acbQbWKW_``jgd^Wc\a_[WoTPU``WWVaaRWPXT^V`P`lXfW`b^PXYgmdfYQddRVL[dhb^\PisbiZegY\U]TbbXTdkqZ^ZeMea[acY`eUrW`_bfZYiXct_OiYf\\]Q\lO^fPgY[X`cPj[^\nhNiZfTPc]oUR^_]TiZaXSSX]T\IU[kd^TSY^nfee]]deZ`i_^]ca]xVcX^nbbV\fL\Q]dVnSfenFZY]`PUFRpS_eW\XbgR^Y`feWXWa\UfqVT[YYDj^][cejVQXXLcjSlxNZ_daZaSe`iRkLhVh^[]_n^abZeYU`kTc\cnqWOcik^^_WS]]fOjfQZ`R_hWX[Y[IZU^gcbW_^Pe`\O\[^TPaRa_\_a[ZS`Z`VQdrWTZ_I``]eNbb[_MePWZUeaQ_dYcbZ\[ZsJY\bV]cf]\iQTQaiic\VaUL]t^\M[]l_TdbZ_ijOWPKTQTodafcaQNgd^s^hVeka[_]o:PPq`XT]DZYOkYa]Xf]HhdO_XdW[Ul\Q_iSom_mZm`d\W`Tc^ZqieeacW\VqacX\QgdZM[`ejd^ZY_oQXl\uTVo\edeakdXx^S^eYn_WZc[pSY[\a[Uf_WabY`UcYiVjZ_m]^alPZ`a\XUR`ZS]VZRmZd]_\Tp\bfYei`d]d[^X`[fXmciOaTbaZ\UgYc^`k`mXbi[RaUoa_[][f]]Ye\[cbScVT[a`fY^R\c\lmWabSRbvYK^e^Z]TZhjcXXd_\bYURZiVI^cYZZg\\VacB`b\N]L\YRXkfeW\WUaWQWqaJ]ZiYb^cSR`LqHVF^_RaIa]]nY\KKTP_aYV\Z`f[aNU[a\fjC_WQidaUiej\Cad_c[[]U_fZOkn]iW_W\]YWP[XuSRTRWc`OXzN`\[[bUT`ZhISXPe\^xePJN\ocboMb[W]YU[\bbV\]aZG[bVqpbSYJYkjoYoZYkLdbfUQ\VbYUebmjaQ\Oa\R[dZTLRZ[cW\XOh\_a^oJX^bReTh[^Sqe_oaR^WcbN]SgKXcTcmiZSfQebQVoWGpbId]QY`XO^QcWcd_aTOWY^d\d_]_Vc[]bbAYT^^TfRVCXU\TfsN_]VQTaaYJoRdQUbu\fJ^ehQSQLXgRTqnUR_T_LdPeJTQoU\sS^`VXRVXmd`m^]WMPkSZiWU\OeVJR[T\_jkZf_]h][\i\bYTQgd\cWTgSWdYalcb[a^fbUblNaPR^c]\YabZWP`V^R[fibWZalMgd^\UejbV\bOnkZkvY`SWUa^d`\|XSejOTbm_l_a^X\h[l]c\Vg`i]g\nXgV^^Wajl`ZN[m]`b^[]ZXV]ZU_c_cUfkb[^ZQOeQa_fQX`^g`T^[X^ds_tUZj`l_tk]`q\XgTQculMW[TVZZbbZP`[XvQTL\l[_aXrhWRSd\duibXbR^UnpqGbf__uKXcS\`W[Y^]Oacrd\`XVpVch`^aYc]KM\QLf\d]f\ekb^MRc_fbmZD_fnRZhb_vbpV^Q^`QmLmQ]_[[mccm]`TJb`bT\PaIZdPSKSn`L[fTP^YHXRh_NPN`cPkUlsPRYSOZRf\d`kbgm]Th_PbgXfm]egfdfY]gX^^k\_W[WKVmVSnipO^fYYT_[XTeliWhZeNUUNX]jLdcdjaV]\em^YXsM_XrUc[\qej[\]aMOZe]ea`ntZW]dmTW_iQSNaVmXtYaR]_YZRVdj_dWarXa^`ndVQbRI\WQXL_Ql\[Oda`ugCS[aU]eWd[Jg_Sdm__UpbVjUR^XN^zg\QeoLG[fWt[LbcQ\LV_NZ\dXW_eaUb]fY]_cNc\dZd_VOJ`k]VS[FP^WOSWO\`fTMZLhmlyclbdZW]j[cXQZ]hiIXYYOg]`]V`gOgUUNeh]b`QRdjaae_I`e_HbUVTXaU`gVaXcL[^KcOUROLfWZa_cZVWUtiULU^YRR`^V\l[`SjYReLU]RTWY^]jcpXn[JJ[ehl\TZY]bS`kQ]m_Sc]]kThYfSMVsRmZIQhr\md\NTZT[]VaS]sPD`UmQn}[QYS^ieZWRadgT_R\lebfgd`W\hy^da_fgQOb\RraXi`_Yoch^dhYW\RY^\VOQ]YSYwjTfLMY]]VbWOWS_p]cTYjeMcqdYs[R^aZTw]lqSvZ_[]Q`PHkhy^ZX\XVMpSvA^v`qW^Wu`Qj\eNgY`UeYW``bYeNfaq_WW]aJYlSTPYcUoafbrVWZ[Yaim^]]^hcoXPldbMRs[`^go]gM`OQba`eZ[egZh^feWvgIR_`Zgaaa[p[d_efMid]NYZe_ieZa[pUWYZR`UWPc_OZ^Vg_`IS`SMf^iV\X[Yn_gLbJiXa`be_VYre^]bH_\Z]aPaXp^[Odk^tjSJRPaOb_V]YV`pa_r\arMf][Nnd\MTZQXieOHU_pWOd_T\k\fPpflgUQ_dibW[cZVRk^n^c_gdg^TYeaiUfkfh^\Y^Pb`ogJecRaSa\co`d]oahhM\\QaK\f\\eZ]V\Wj_e\eeagj^[S[X`aPXPdS]ZRZQ`^MpYV^f[ile^adfkZQ\jWZ{ed`T[Vsafbc\dibcgWXboUcbc^YbYBQPUUiZib^VUh^\QakY_g_YSWY[s``_[ibecYTgO]`LScZ^TUSV_d_]kZcZ^\]i]XVfdRR_Z`gilakncUad^RSj]a[^]^_rjbWiXZrdhdie_UgSgd^_LbThGQn_Z[\`^TZUl`h[SZ]VVg[gmXW^Xq\XgXO_]Z[Z[a^aRNY`pYdSVjmZ_[pZ^mg]tYb\f[^\MFMZOg|R]wZhQqXasXUk]o\[RjY_uJHd]iiWhTTfcZVSgTfcZVVkdkXSV]Zf`XhYYmXP^^bX`coQN^O_XR`fMWQ]HZ^x\Y_LfVS\n_\UPfbM\SZhWQT]m^`YwQmcuUVkgln[Y_\eqW`WsTRTaBc]Z~W`RabPpk_KlfcZRQ^kWuYe\VTFTQZTLRTUviejH_fUX]TMcfm`U]gSYR`RbbggT`fWh]KR\XkhjUhiVOJvbFKN\Ia\saf`eo`Vj[FohV\bZU\vbUd_bbjsoi\{Z]WReWch?mbeXZ]]gTvZAWmdjFgpceUq^oeV_WUI`OOIUValTVRh_K[nb]B[ki[OcY^lb[YERXn`k^XrSEprWV\_\dVcbfYeiq^^T[]lSXXFOj`_a^Ny`r^j^kUg[gV`RXZVfi]b\`YedOoeV`]Z]dTp_n_`mXYdZbX`Z\_i[ULcqPVQ`OhQP_X`[c[b]_haOh\nedQbQtbXYjQTdmWTiRjgLaeRSSX\c\ZnTkcecNUjXHc]_cX[XOJV[oW_^^Za^]TofsTlXXecm]hab^Q_dQMQ\WZVc[_P[cfSSjW_[amRvukXjZ`Pr[KSQUX_X]Y`zi`ndbx]Ve][bhe_f]ca[`XoYhNnVV[j^OWUfM[Sjn[r`bb]eSJcQX^fdnacNOcT_a_[k]Vq\]]\VwPMVWVaU\JfRZZ]rQ`T_O_[RtXR\Z[gObd^RIqVYFKO^aVT]e[N[btN5oeT{TETWEjo[^XchcClQ_YgFW^g``f_MZYe[Wjf^UcTgYcJMXi_lZYZVZP~q\YTcgQkRQihnhR[YTlkUnNLjAQRY[dYU[`Z_R_]bT]l\n_Va\UY]_Za~eUeW[y\OmZbUVeYi[hWT\nW\dgFiZ^SRNmaxjU^NKidcQqfM_dbWCbRTL^_XTY\ZaQl^jjTR[i]gbaKgP_@dL^nVEh`aX^hWoXaKh_[dUeegSjHWSjl^UUXd]YZ^_^WTjYV[SRZiW]\wLQWXdVZhefYSnglcC_NP`TZVmJROc_f_b_ife[POenc^OZjh\_d[aOk[oa[WbZ\dao]_WZRxV\RfMhYSX_NQ^`dcYc`QYh`OHWVB\iLcaPRdZ\IcVrxYh[WZVVVYZ]WbPRThnh^YZf^`P\T]T]_\b]YZcYOV\WcfZZejeYN_SRUfWRS]`^d\`j]TJMUdW^feX__TeUXeaVY[[[\Yak^TQQZV_IQ`Z_NZga\d[Si]Jbi`\\_\]e\SNq^SZgUVmq]aYgT_lY\`WT_SaX`mPRmYjacaSb`OaUmX]m]RW\VTUYUS\YhWQg\YeTdbcidhfeUdZ]]j\oYVmR|TY^bjZSX^Y]ob\Snlf]WYVYYYY[[OhfgV_^Qgg\uVZf~g]iglXdedRVkX\WxQi]]bV\YUXc]_i_^]kd`Vfkp\j[[JhgbabWQWdZ^VJ`ZiLDadYs]`UVfW]mJ\^g\iTjJFlf`TTnkVgb`RdhinMWZ]QWmUUVVYVfU^ehaU]Wbg`jVPOcd_\SV]dldjYZu[d_a``h_n`USUcdS_dgh`ZQiVSPjX[NAXi^TY`c_q^TY_PcYS_aW[W^fXWU[RWg]YN_vc_USqoWSkV[Ihk\TZXR_i^WYIZ[fPWSN`Y]SRXras_bX^ZUO`B\WFgZIgd_W_RX[lOn]ZYxD]Q`Uibc_Vf^dZUXXL_b^abMWOTTOOgdVN{TpTc_FnVJQeQdP_bZ[SQUYC_YZWXJ[XZb_NiVgU]RX[XR[^PMIEbYkY_VjPecSh_YZgW[e]_ZfYSYpfYedARWUgZl_OQ^e\aZPSM_TgLa]Z\ZSRF`V[`lQH^cZXb_P]PegLMbQYP[UKTcWSWTT]Uh_XCZvxY`l[Sn^YVUWd[WXL\e_dEafWYJUcUeU^Wc[RQE][H_^\[fQUL\gf\QNj]qYnV;bFadZ_bfs\RgOdRgsFcva[PU^\YhUj^jZ[T^WauO\i\N``RV[gbZmWUpacg`g[XahudAc^i`ZUanf`W[idTsaoO^`cTQvbZKkD`^V\HQqRRgX[jViecVTS\kiR]mIcvTXe[b\kdyUbb\]V_vOPW^UZwS_dafVMSLVcOFKIdI^ah`F^P_[wrbkmT\Oe]`]reXig][ZOj[[Tq\UUgg[hb\YP[UhaU]hhVbQa^bYUUZg`n\jV\NbQhbY_dbZS[j^`X]VTmU]k`V[ZgP`Zp^hWTa[VPKY_KX{gh[YQ[QXn_EnZKXYngXRVdYSibgL[ZnRilT[TUh[_djYh]mZjdOZfd_sDVSsfd[PPkploXWQiAdhYYgS^b_Re`caVUMS]dUWh`Wd_\^^_[^ifRTTWX]qRigbYTbuaZnafiSVLSbD^Q]rXQdcL\cc_SQW\kS]cjZe^ON_dVobP`fXb[YrSShORjep]UMZXSbWLfQV]XbVV[Qa]^YZbX_[dKaFo[i[ece]b\WlZcW\i[^cWhXbZ`NcN[cj`^WUHT]Tam_ckV[]_\S\^_P]sk]Z\fVUU[X\][WW^OUc\YujiZhhZ]a[ZcVYffXYoSU\kgZjeSXLa[\b]_e[XaJTah[fUUTc\\a^aoWb`\dpZJP`Y\]i`lT][[ThMXXYV]eqVgafNM`PU^faY]ZP_h\Xh\gTba[WfahO]PfZTfQZeTMOTfj_mkOV`iLdZU^MWa^[Q`^Y^[M^aRk\d_c^WqYeLWebad[d][`TUYlNagSFmZnlOgR_^dhaZaLXsljZ`^Im`xXMfjjYP\b`nEU^FVUKdPmehSV_RUc\wj^bSYN`cTaoc^TfSbY`j`GQ[XsS\UbmxhUd\YPYWUY^nRY\kae^iSo_bd[^^[X\ODbgO\V]Ufa_S_GueVmXQRPZY`XdGO^dRZPj[o[Tci\kOn[kKa`uXSK[NaibMTa]aYe]]\Y`bU\\TduX[XdfK]XY[NLBHUg[S]aQWuNkRT^TkWXd[`Y_]ZfjibX]Yd`]^_W_Yq\N]cezcj\jY`TkVgajediWJY_f]meUdUPCMZbSVHS_T^XZ`WWhoiZS}dV[Rj|]WheZTegea`abX\fi[]`SVgXdDdeh`NGP[XXa]f_Z?X[GdWjV`eU[ck\ZabTao[QV]ZMdl\oaXH^SbYT^YWa^g^_jGa`V_]ZWh[ccYc_^YnfchUh_NdheWMVm\bUOj^]ZZV]faKgv_qKaQ[Y\Yhai[XLcTTUMd^aslRW_dQZ[`nM]UWRfV_`bgXVk]cQ]kvS[f}[URcYLgPMNaZlh]aVMR]aSfdd]m|Pi`SQMRdYOP]^mQ\]caJQZm]TUFSYWrMRZ\^YjT```XSCoeQWfl`]gfW`NXhT_\\eQcVPVcdDHQ_dYYSle`bdiSWYNXeefQMYa@JiLUZW\qR\a^tSfed[VL[kFiaSKV\gDlWZ`j}b_\VPMhTMUROVgL^W^SdQ[]cF`YShMIb^km_ggkMgH[SQsWR]h^_hkaSjYRkTjPl\eb[fWKQamTXSQVP`@Y\eW_]bjda`U_\^GYbbLOT^`dj[V\lwTUQbZTZgj`ajX`VfXfX_abYYKTemT[WZsTeQYOX]fcHb^`TVV^\a[Yk\PIgURfVZdd\e`_Zg`]PeSc^g`YR[VPXYSpH_WdiR`RfYd_YX\Z\`[Mt`be]_UY]iQRMRRQ^V]UYXOc_`a][V`[kblR\[MhXO^^`^`kl_bR\__e\Z]f_e]Q`[neWxfpXWeZRS]dZ>YdX\X_MhOegNg\]Zg[I[bSk\T\FZfId]ZHa^hd[dcd_d_`pl|]`bTVjYX\gbaK[YeRl`W^`Un^`\oUmbZbUPcPUdhhZ^JOdWVbMc[^S_ccTCY_Xe]_Yj^`\M^`\k\dcdQXV^SXTVckdbe[UW_gWb[]bnpVYi]dK_`nK\acI_]qQQWW`ZSUiPaSVRQVXoWbbqPU[Wx]VV\Sa\MbhXU_bWbPY]\_SC\T\dZ^]C[]aiX]em_W^\Q_amUU[deX``]]^iM\\[Oba_bh``l_ubRSMjZbfsP_d_\f\cfTWVT`Y_[^YaZNgbd`[[XaaQp_^ebgY^h\dUcZ]\R^XS^]Xdfd]T_T[`_gb``[W_[R_ZX_h^alGiEXd]EKebftY`N^OSGWeU`YZLipYKUWR\YbnkX^PoS^RImiYikYbe[URVcXUbWbgi\_UaxWebJ[^OFgXgkZZWmmIeDniJb^YOVbi_UZcJeSH`dWX[L]PalRYJ^Vga]TUReUJf\QahRciQbHWICTTh_l``TWRTbCQXQ]qf][_[[R_S_fXM_X`XlegWZk^cS_XbgkhTcs_j[^SmUoZ^Xb_reWpP[bP[jKXWtWb]U\fQj^ahUdiR]YdL_\`YVYpceU_ZbUlc^`]_i^Lf[Mc\ZZ^]\[RdZ_VkRiZQVzh`pajc^`Y]UmWSEMoUiOqVUQbLYTZcRk]abcVT\`dg^hfjal_SO``f]`knXcrNWa\fWUkWMUe_hgiY^V[S^_\\mdW[bJNga_]WLdVbd]XQZKhLP^oUgfYV~W[^laEX`URB`WPoc[]ekRW\jSScbh]U_V\LuX[dc\b[PnSjYQ_`VUInNTXPXfogTT[^T_pBW_jcvXgUg_Z_Qh^m^Nr_IVkUYZ`UPk_dYUUY[ZViWYXUWjaTU_Jj`MTPjQdc`g[_]XJVgkbUSSRtZTd[XUfcbqXc]WPKgVWa\[NW[b^X_^ebekb\KmY^]\ci[ZWgm^tZjc[_`PjEDeV^b]cYXa[hVV?eG`f`][[]eMWNRZ^cbZl_bcRq\aPQPUhb_]ST_XdhKH\[dUa]bdXkOdTkcUcaM^ofcRhWjZEaVZVES_`=bsXIS_eVX_]d^MZ`YkZk^\dVPo\b^_ch[TcbbRYReLSdTZYZW_NT_ZMgajRa[U^nkVYe]d@^SY`MthfW]id[lTZ`O^jWx^P\l_efUVMF^gcnaiZe`\c\IZPYOXVZOZ_XYRlV`[YYfU\^baNSQb`aUYb^e_frrdp^\WhZgce]ciiZjhab`lmvY_VgYPwPK`YOXVjM\ZbPZj\q[Y^aeYgib`[b_bb[^\YLYd^qPm]i]mZ`_Z_^eRbVaj_gWZQi\^c]RWc]YhkTOfWXRWJhlTUlXdd\UfZcMXg_XVbVKdVPZPaaYURdT]fgfZka^^aX^c^k\bYiD^`eNcdh_dn^TZ`^^O_Veibk[h[[[dX\dc^aa|iPhUc`VIU]d[\tcTdYV_TbRViXGl_HWUZaL^V\{UPw\ZU[NnUWf[`TYfdZekj\dQd^eVVUpXRW\`aZWTbX^W\YMUgff[anVVTkPmggc\]JNZThp`dTW]YHMNlf[_UM\QRfOhFZe\S]^Oe[N[RXY]po^Xdi\iZcf[soO_aaTTiV]W]Aef[\RRUZi^RmTUS_acM]VdUW^UMhRXhYdHe_`XdDWiePiS`awT^eSmTVnk[Sd_Zf\UjnVP^]hSdShiRlalNRWWXYJ`T]hQX[`Y]YQifmiSoXgT]\Zrl`bGWbddjGabdg;g]{Lajb\[TMKbjTp]lBfNT]ihj\ZSaanQoeVXW\[ZXWKselYgOQc_O\VX`RVIrHihgch`\X^\OP:SPS`UXdWfbt_WoicNajoLxYnkf\DZZ]UWqdVZj_cb\Hpe_{shUU]]]_S_e\c]m[YWf_c^ZRZa[cj]o_\^WcoRfRX^y]kgRhRSZgZmd_hh^\^vY[r]a_HXVoFddejN`XcXBVb[Tpn^XhZcTPTVbm^bZQY[[i\\]lR_fhbXt_dNdO\[OaTRqh_UOC[hTr^YUbfQQdKMyScUbenjTibO_QXT`MW^QkVXUNi[cuf``LN\ZflRST_UlC\QSXKSV]aKlh[gmWlJVQva`YRCMNZ[TWhR[egg[oT]WvVmR]qYn`pPbTcZaO^b]^UXP_ie\clTZiSlWcbbmNYgjOZnW[cbP^_?liYroc>e[Nea[hcNUiIdi`aXX[cb]QfWUNZ_Yg\OcgY[]eZ^OXV_h\[YRX[`nZXXd`[lVqZ\W__faSWQLJqYi]\d\[NRe`b]Z_PdNiarUlcalWfacQ\S^Si\iOdfhZq_TccbJX]ZZngj_dOOZ]efRTj[{e`[YcfZ\bcaa^RnJYePWgPWRcq[wXba\]TWZ^\fiW`xaR\]]f[g^RJ\QiS\h]_XgmphYnR\_amYSlXU[^aONjS_XibLcCfjbUl\`[VH\rXNcN^TRXZXUaVbFZdtMZZZlPkSS_[LadSpdS]OV~UUVU^Ub^KX]WL[HchVPda_ERbZYYdk\Nd^\UmdXfYXXSOHakWT_p]UjYkpXiO[aPPYXRUtfQVaWfl\cJeaUUfj]WcZX_Se\bjL[HeRcE\ZUnl\fDg[[`gM_VdObT[cXUhYUMd`WlXga`U\W_`_kM\W[rVNWTTT[XQ_SZ]R[aacYY`W[b`YejIcrkRZWXSaIdjcyj\dbjWUvY^cXZQ[P__[RTZ^X\XkW_gqT`hpSUF[ga\WVUomXU]jTeR[Q\\^WgaL^P\^UVXhk\T[cU_haZehOh]^Zi_VGa\bKbNo_xVWlgPXamk^_aVM^hdibN]W\gSU^WZgS`gkNkTLa`UgN[`WjTlP^^K_[\dNgc[[]eQ_\a_]Y^_nYfbhZhI]l]o`SVZVbd[RZ[aLe]^avMT[`p_aUH_RRXaf^nxn`SfZVNZhdn__ZVbJj[keWS^_Yje_iX_aE[iWXaS[RUgVZ][_^WU[uMadX_eYX^P[aWbipWL[T`WPVXM[gR^WVjWZjTdeikVaw\^Q\of_Uh^c_inHjYjZ\Wg}fS_VZmTaa^ceTgbQl_OVYgW\MjcTVoQ]YS[Z^Xda]TgkdlgQIceYklPPl{N`NJ`ZlpW[NS[XTY[Xie_XhD_eUeXbUmL\`\p_jTb[sYSmvmiWPbHVxR[ifgS_k_wgP[QhPnbljIjiR{`VW[edehl^aZRVa[Z[ebohSnURharO^Vd[MclkQIa{hMV_MNPTKdR^`[Ygpa]j`bb[phiwPeYWkg_cTWkYjl\]m__SoilfNhYJjN_mUZf=`Q>ejf]fOcXRg\PmdjXXUaL\ZQhVWeaXdIgkheLaWifbNX][uOdQUPgVaZkiMXieXMdbZRc_iVYAgMogbZTZgca``bhfTg]j^j_[cfYT\sM[SYyOX`ZHfaim[VkN]fRU\c]][eSV[Z`W{Tb[\bXyXYY^fe_Mdj^[NGTeQWZ_kkHSRXMkeVl_VbhaolR]aY]drThrfukiyYSl`^Tc[{\\\[sdNNVcXVb\_idTblWdtf^rN_]aP`_[l[]^TdMKNM[YTUoeJcVOaapXX[UgTabT]z\ZgKsSW`ofjZecdsUT^pQY^]XOHJ\qmbVg[leXhh\_]n[PdRWD_coFZcl]Q_i`WZcR_Lspcmg_TVXjfhd[WQ`d`_Zj_UVgULW\bMy\W]LDa[R[UMKWl@iYXkOa_]pKV\LYn^HPWn[X[hQo`nNUCLcXVZnXPmg^mRgncLiClM^j]n_XM[S9R[PTatYKdYmrIY`ueMK_VkZ^N}FWlWTGQ`lbd^\Z__qeVXd[HSdKGZqRQdYubp\Y^^R[l_j[_j]R]J^vPfcPrd\AZEOX[[yf\jhQbUAVa_jRKj[bXUa]rc`c[cH^TYTPfrJeZI\X{cjT`rLpJLa^fD]\UgPc[VroigkWm\M~Wn^MTUI`x`XsHp[uWl_hd_TTWTnkZqVYah_f\zVSSZTS^h[^uS[Wbh^cZXeytaLV\_IRKWTeag[f[MfU_eV_LT\_bN]QTd]akjX]WOb[TQKhS[Ikr]LkRYCY]e]b]LmZXZNORaa`RUZarX`b`M|eTFRVksHQeYWZW\bOfY`L^P^^VbU\JSWSZRhZ\XlpV[hc\GSYbcTV[ZTdLhW]MhS`f}v]HaOkQe[\_AMqofln\eT_K_bhUX^_afaaFjUrg_Q]n_VcmaTQ_dn_`UGe]gMe^Q_sc_QFiY|f__N_Q`\Qa[M`Z^VTu]UafFyn\hJl`WUaYr@@bQ]R|fH^]lFMdjY^OWh]SV^qLeOnu_pcY]VhgTmxJTZJkQ}VZgU_iQO[OKqOmn\i\\_r`ZYOY\OSdRIRw~ap\JY_e`p]ehw`hV`WIWRl}[]ZRTaRPSj^WVeMYVSn\]KTiNnU\XSiSW=svkbRwbGSfRPcUatXQ[GVUkR\fyojS[_OQj`dPhhfO[i]th`]m_Qo^EGjRk6TXZcfbbL^UXPNoM_X[hd8cG^kba`ZbbP@jBUSh\O`XZHXOip[QWN[T[\jRVuV;ZTxKJb_L_k`e]YUEdO[\SI\jUS`c`Pa@QCQI\[aqK^i`feLbc~FsYqLUgTMiyQfdGPKZj_Y\^lamP^b]HRc[fQVZXV`ZbXcaWZ^RP^iYOaZRZsqYWJ_Y[\SdtSWfQU^jZUaKLIbM][FZjJyU^ka@d`]f[T\R`]og`mSUN\W>iPTcj[`[NZfoH[`caIxnUNXLHcYSqoVT[BFOiEnOEgQ[SgVb_=o[YV\VTRUaUdQhbkmR_i:ZZl`cPUpYWMWbXjWTYa]{OV`\P\^XfjOScJ\WMOONLZM[gSX]\W_fPWZyISm\PKEGoXsM_TVh=PON^RloLwP:QT_VpKkHVQ^w]icOL[IMcUi\QgkQ`FESpZ[jeCjmi@WY\\ZXRtkaBbT\vXihKxt`[GeRu`WpSbqgYB[RM_KwK^VLSmbDTZ]lfIugc]MW<\qU]nXXf\`h_e\fjUTTZf_uKf`IrffjYh[dV`s]QRakfGlwNLNcpZSVRdnLuaddgdW_lo_jhRXZkaZWePd]Yn_aUZRV`UkgpFgVfQ{^UZWNbV`PPObe]mjJwaJ`TdQ[|VqddfPii_fk\d_SxiQTchMY]lgL]SPj]XoI|xidRf\YrLj\auVUL^aigZR^feU`[UwXVkNhWv^ARIYSEVFceVvjdKf``_c_QlXRZWWlWjWt]TR[`ETlShdaaXc?YZ_WVlLWshUhPbGX\RTVPgbe_YaSglThefV_l]XN\_YUibQ^heiFPcqclNqhtf^CY_ZZngxWZi_Luf^bOdMQmiYcRZV_`^@_qzX`FgNbYbR[rIXbZO]Z\Y`WLimE]L_WF;La^rTk`dFHmhs\hfl^QAYLjQ`tmfOaxK]THKQXnoZ`h\UEy\SdPto_eekKfTvWRSZha]TROL_lVQCThHs~mW]MzNiXXLWZ[h_RePMC_`KJL]j^_flQ=_]K^h_N`WIFZm|PYsbbfYtW\G_bcFVxTbbJf[sMMcYg^_UEVY_T]EahPmp`aIFsb]HZQkkS]UZVnTTJHPGUOVd^T`TX`Y}aIIU_JM_RK>_UchZNfuLeQJYC\OVYTVOVV]-KTYTa:\o\SGZ`_R``QU`L4b^9[HfP[dhN[oQHgYJTC^aYjKVXMZVGWWPfPNzfeeXWNO]hfMQWp[TQf\lYa_bdgWoPHFZJR>jnVohULV[WY;aS;XZXgZbnI\gaAWZl]Ngc^bTbRgS]\cadsTSaR]oat_eB\tj^TZgOt^hZPi\jmcg]a]iQY\Xh]JZ^dTbZRY[cY_YY_\SIMg[bLdm\Tp[ZZW`k^k_|V^KW\^UPjSjb\OrX^\SYmXnb\W[O^]cRXFPR]HLaR_c[`_T]SnF`UZbalOc`fbPWfMhXf^Pbe[_g\V]mpb_[anwvZ]NebWaZ\T[\Wd;FjjelpKciY\cYJG^MlbXdUkY;ob^bVMOl_\jOUtlFJZ[LfGNSSJGS]\RjqNfWdfLPdkGZKEKQFh[qhigoKulUmMO`IrD^LxOaWF]qXjTT`I]T]5MRPUPZDPVo`TnSNJY_MdzZWVf]bPNOQGVQNyXnXOZMc^RcTSQZWPkWLSWUlSY]J`zFlWJLVIbXZMp]iZe`WZl^`Iwz[P]R[avTQpZLc]V\^HT\hbYVzWa`QZNX@_]RVVYSVaWg][UPReY\QXaa^i\_^WS]eSWThenc]eX_TdZb`[ZycZm]OePaed__Na[fVpOZd_W]bEWLgRnNhd^i[j_fm_Y^^b[Kld]\YVOfGpc[UHY`lN\blTWSJTYQMYU_m`ch]NebvvVYNOP\`YTM]KWVJS_UUmdiS]d\BuilSPtI]XWd]ZaGYUWVXbTOfFUYViX\S`V]]]bXSb]_ataej_TSEXf\cWdL\NCabrtaSi`O\dW[__`X_Jh`dRSgShWZNb]NdYeuDTb`UW[OWiTXjtYhXg`Q[ddYTVPaPWKP`aN\Ykn[cZTUKmUUfUQwigu]NjZVQcPY(IWcBX[\\dSM]TVXPjiYYpWmYV\kQO[jONaW\[XaVejUVWpJ]`XP^gMIba`kX[R`\`cJ\bYkeU][b_]aZhJWAWN]eP`ugaV^Z\]_V[XidaXhKf^RORXVbZcRd_jWfXR^\S\^lKQ]Jf[oZZc\XQ\dLfSflag`WNdd]QkNLH]mboRVaWhOKZQ_Ucq_aW[c[jO`ZWild[`JWdveQJcNZboTP`=Pf`YC^g[BbefeU_YXf[WSXg[fZbHKSIySRkS^jvf`VTiJ8PeePRYOaNrqW]dZPcnhQpj[dWSUfJhdrTaOlijKwNQTad]YgveWbkRSU|\O]njK[rq[VLdQKuZSQSkgg[UOWTjU[b\aHe\Yc[gO[gXLUkRa]^hJpXaqcaWHJKdgkWgUeaQ^bdaS_fOcPmVULfRzUXIaXlu|B]RlckN]RejRc\^rWkZQ]a\Ym_IiZmqNzWP@VXkO>RUXRPI^UUTNMgh`UGRLZWzfeKOZZocjMheKeXwfOZZURgMSb\jJqU^XdP[q\XbUbU~StVZP^UVbQ^O_meSGKT`Q`^\W?gVZV`N_ZmVg\]Ktpd__bO>cJLQzPXMBQi]_XX]TDQhXe\bY\iwk`lkRV^wl^uYqiK^StYbV\[GY^KYaSLXlMQHfTX_zY_UjJSXlUWQ_\eG`Te5a\e][V[[[ji]]c~aNEogk`jb_g`Pbaal}qQSk`X[B^^RdR]Ql]f^Oafi_`WPXjUhe`_QRPSTTebf\YUM_eTZVwZp\KmjMSk_YXYcWZIXlXXq[qHicghIBNS5L=[d=KN^QU_SZQ__jNb^En\Nf;CFecc_LgpOPL_XV][RimihNk>X]xTo_J]MMafTX`mX\LKMKm@[hESV^LRU\bMUf^X^\]biSf^Q=\eh[ZVhOOYVgO_[UL[bWU^dWp^]UZg]MdaYisgTQWNcpZd_UUl]]][`XXlNmUQWhZbR]_cT_dmWHaum`UW^^kToeTbVWYwac]c\DWTcZ[YXfgWm8we`n_f\ke^]fdNAW]j]bp]UbeCutVjQf^VUGabeI`OGb]\jYplbdUdmXrdsCLZ`QnX]`VwSrmlmbSQWh`PYQuXwtTuRXPYjQfi`[`ZrhVYVTQWp]fVN`kwcS]lZVVWddP\bRRmS[MgM`S]PRm0wd`^nap]S_`TL`jhKQVfkXEZBk8f@bi[aZ_TffRRa_hXi\ZTZfnJQ^tU:nf[Vo\ZlffSPeN^luhOaabYYhp]SL?fFYWAjr]pQZ]Yj^cAWK`eg]NXgVb_cdeXjZt]b>QaKRcSRNGGNxrY\[MKqRX[Z\cNTbaPZWcRPH>mk_obWkJWflMk\cwhD`ZfSxNmq[isQgRSZglPUdkPdcTdc^SZMi^L2iJyb=Rvs?Xna]\LY]^YFS__[e[P[l^U]UZjXSfKQgXZoUt\\aKn[fTbPgmZda[Za^oZa]Pv]gPhVPXoeXUTiVoeLFRcWZcbThKaY[bk@^h^SGWIe_Z^D\~LBOa^ODVpsOQ_d\XkTODW]E^VM^_eacLniP^_^io\MRNXX]WIqGYS|WWYF^Ue_\Y[J\EbJjhRRJh`UF]]N\\MedMgN]WaXmecgY]MXq_^bgMVAJic]jagpsjriLRdNccaQiROck_bp\eh]^_uSZI[RrCqhG]^PYi`oaLS_Ucf[`Sg]]V]YPk^c_ahsgm`dbJURT\bKV_ToSWObLcUZ\ceN\XYTkWfldmh\lbedkI\MLchccUt[jZ]Uc_iSl[ZMe>mZlAzkcT=idQXOWSXFfDsf[nZMVPYgZYTjYcQwL]R}YeV``^]YZBX]NE[XjdgSVcqdp\cWUMVcRR`UfZTLmZgdYPO`XW[VkTb^InJ_Bacafckt[PcUIYZlUIU\mD_EIEPpZ[aX\jHaUV_Wi\Pd_RbNe^[gOLUg\[ZY]X[]cZ>LVqWJ?WclT~yapvaCd{`KmX^AP}GTifYWPVn`KVI[Yyr`E>Ql`ViVR[]VXNcTK\[[o]STYd]i[NaRdqfKbTchRLQRLe8wRSFWb{dsJmNdkSeFnixL`Mk^YbfTRTNXgT]u^OWghFf?hL^XB^IiYewbPG[YbRfGr`yO\[XrSklRSmLNdc`gO}`im^M_CWX\b]dXdg[TVsU^eZc^abORN[Ql_BcgVeYt]\OZceYgJjIWL8kV[Nh]\mdcKerZdbvv]TjH_pZfrO`2kW]QXwZ^`uboVc[Z[R_J^LVX@fRJCY^XZL[W[ErKHcUgOxm\veZj]RZdiTeaHnGlJ[TYfcVGXU_YakWfTq\Tfi`ceF]OZd^^VOT_KdYcDRbpUHZ[KZaNCXTRod\`iV\\jnW[WWUJqX\jZkaBxeMKOp?N\`R_UehhVO`PWSTGQZHPRcZdTVDs]WO^LD_oPL]NkaNOHpU]fuperQDdf\IalTPY_bPapU_mrKf^nVTTHV`@M\aFNeT`abYZeBV_OO?`iQOUL_J^XQfVWJK4\qGRG]\M3FA[P[?_B]M4fJ\[G[hJcOUdRSWi5?9gfiPdpG[S_REY6RP]`gTDlc[O[S\GSHUtYU:QMNfSgmemp^]T\\bTQRicGdF>LYUR6UP7FKaNOLCEefARn\dRDmbIbee_SF`]Ocj]b^O[jlRV^IfL[M`^bYnTjhGS\U\XqfUdqBYgoKOah\gef`XElK^akYvQYXeVc^V|hS]qu^gg^_:lWWfVT^TVkXvibS_gbsfY`aXWHObm\yp]mLDwqSiXed[YKNYalXLdb^`X`XOshkRaS^KfXWLkUWc\``[`OOsMUb``_glg[Jea`Wk[[YQCKXYTTCfkN]M^eP_QM7WPO>gEdZWERH\XJ\XfNjSFCgaHjD=z']_T\7bnLfp^XahOpN{TTlFaTmI\gL[RcQZ>kG\nBYclJg[M5OXpigYjfkYF`z?uUUWULoUT\[B@r>wSqU\TO\hYSpNv^e5`Zq[Qo_i^MHYkeTZVRP=d^^_g\SZuFW@OaPQ7gjQVo_>VRaMZRU\Lf`UKUdhYXZSkcj]IwScj^hUY[MhVWNLU`E\b>\?TYdtCNQS]]^V|T^k_WdSUkQ][`rIMQWPV^]Qc]Pc7Y`Men]:UX_h}]cb[cXmIYXbaUpPetGEVUX`TMoRXWSeDiiVofNdV`ThpXXLzckBHWcmgbB`ilW_q]XbRYXNXgnqebWXAoQ^QVUdmcZTS]CWOK]amu`qXSmYk]SZTnm|UvtTmeMHaOavX[^SedfYy`f]P]ZYYHe`OQeZZXd[XU[`RSVaS`STBZhJ`_UWZTdied]C[ja_XgMMfN^jPJnb]Ysm?ZqOATTmZITWds\djqJa[NM=]M]ZafhUbMZXf_dN]PIkQkQlr[MeYNJKEmUeU`^OOj[Yr}gZS^dZhew^VWQ~UlVdlaQ]cnYZJG@iV[NEmjtOkguTskfkUo\XkXOMUpFh\OO>VYWQpOhuf\fafVPfeUdCOk`^[^@RfXEfcJ^LD^bkaLMhYL`bia_lpo[W~~|[Q[^nlR`TkZpci_[V[\_\UPWIMYXgW`TZ]ITEl_h9pQa`[PVOVdBUU]`cP_^HTRLEYclHTOSXnpiRbSa`kcqrXX[ltYcm\LerVz]`\VpE[bcX^xfSeiYSahSR_`Oz^eWblY~ipUOzidVP[Y`_Qm\QqmaEceSTZR\n_T[``R_`[If]]N`bgXRiSn`\YVP}zCbc[uTUPo^gTQhhMY_^^VfYiAf_i;gYMNwro\V`\T;WaT_xx;odXhXN[]GTtHeQ`Taa]SYHqsSXWk^pMjgskP\b^Yaa\qZbb[`ufg`LLcjYbXc^kao[bbmeep[fNIVfi`bdYccLPg^qUcfYkij[gbcYhcqiZdC^akaasoheR]gfujuez^XkTq\qhia\jka_zdlebVe[fbpeTjkbYq]lqnkq_hZm`ii`Xdkjd[b`lP`_as_huWXSaWf\dj_`Uiqn_g_]]azhZfVU[N`UcdfZL\v_Wb[^kLNSoH]i`^ZaQwJbVkVOcah\UKWG[]fQPjZVKuYDHkcj\[U:]OaeNVPWY[]eEELkfN\jYYTP\M`bkXN_LNCMQtLZYcZYWl[KZYUJVLKifXEeifiLdoRcYmJHhb[Yeuj=MdP]ehPu`_HjeYidwqQ[d[B_wYgbr[\]\aM^T[MbWaVYQFM`c|XedTeUnePbPY`fZ\Q}dVP^P\jMT`sZXVbhfu]\nkOZbYfIQjVe[ZVX^bV]QicPW]mRT[]_n\aPXgdMTjfVFDU_Y]t^KaVL{TRV__hOUTO`ald[GL_Ui]JNSdVdK^g^gD\Sb`XW\X]RiZ[ZXh[V[dcoWh\YSf4L_]Oi\A_YTSPUeXo\lWF`W\XdR]igMT`usTKRnBfaf_crl>Tg^`nVaSJMNOEuliSZXU`\rf\_?piTPeh^XLY[MY]aS`LQTN\Lfe@\lkgTKlxcUPXMY__crZi]cLS^ZQXgTU_acf_f8HnXVGkXKmM^TbQiUVC_wXxUjf_OeQegbSzmqHolcbL{fgcgOhH?h.j4FeqQMxkmTgf`Z^bPeiRW;fBbeR\NFgld6^NlfTWMSYdkeZuHabUanV{LkyIZqcWNk`YnDl]hgP]\``Z\rRXcUVfb_nWgjT]`bsQTVXRZ^dZuHnHhuYfes`UbmN[VTNOLhqabUSX`UYXVMpW[h[g`Eamn^aZl=bLfUiUh`_]W\ZPAj[pSkhc_?RcgeNZZh?Gv`Rj^nLRemvLpVFZmX\UJYUfbXLHVhW`b]deRYIg`T]=gZ\j`YpUSu][]vpYSh]yUWPRvKU[_gVSUW`YcNVqFb\XYU]EKZVLb\fcTg^bS7zXX[+jZSfbdn_[jfS\`^hjI`\j^ii{bdVPcWcOGqok\aY_IezLflOa[px[kt[WhZQQ\SSHSmQK]ajh\``]ZmZbU\sHqV^QajKLZHz^YZGw[uJ^uSfu_\eVHvH_Pp\eQcMSWSajh^ZxLR_9ETQiI_]NXeeVJqOG^MMmfYWhO\iPubRPZiXNRjl[hp]jonYph][`EqNNHmULRLng_UaxH]Rb[aVqk|MeJHmnu;8PRG``knpX`@KM[^eM`fgZgUYpEdhK^TGLaetIW;sObdRMNUKqgiXeV^eu_IX\dRPluXj_YCOTndo^b[:UG}gJN>XcvYUR[ZVcwKb_utwMJN[ThD?]miQiGc;PV\udUWQ@Mn_dwrW=WEtifbKRjt,i^Z^A\^XiUSoHPQgUTUPZl^fUNUbQ^ZcJdedLtZZuqMVOWUsJOGplujuMQZRVkkZhidbcZHZcy[kisk]XC\VjipkCtkYxsfJ}WSLXbgj]]g|h]ddXaa\_axdhaLg_gRhlkZj^{]m;i^mteViVQgbXO_KwgqhVkXf]ZR}phblRvbUq~eQ]afd_hYj`g[IXddYRgRuo|ebXv@[Y`QPc\UfqZ^aSNjS^I]wYP\>cn^beQubZRaGUkkjhBYKkbcAe{pavYcuWZ_O_ddZV_ogdeJkX_YZToWDf:Qq\MY^ilF{KTUpZRm[[SEjTkLpKwLXK^_OSx`sqRTSUr?UfVaapvgeV^j_Tl[xSiP[XOoMDC`GdjjPv`aOqRHxYHdMZTedlVngd^^lacT`sUdbW`nVK[uVYv\^J\akJmTSsaRVo`bd]aXWXUh[T\qcuVlUWb\\TSwq`]jQX_R`b][oVWc[fYcZ[Sd]FqydYa^e[S_Vfk[G]R`]J_UbbOi\ZIR\PiEiDajON^JX^SMd]X`@gYgZZnOfUUSvUWa`V`JifgweycSRSRlKg_RjY\hARVivrJskQLkvP@_];FXd\\`zXTEHIDmmkhbFx:V[Z[[e^SP`QVIVdmS\_QMW_ZrTabhRddo]VdUsr]Wg{K\^B^dQQabIPrjok\VTa[UCCqYnjTi\GYJoXSR@j`Nh`]]hWmYOYdXDXmZYAWO\\^^HhbUWFrfYTXfJQZlMq\XkiYKbkeioG_Af^RLWXH_sRhADVf^s]kZSBy\_jfkaTdRr|ofRvQUJUFpNc=\YfFbbdPS_b\FjcS_vRdjQDPXTn^_NYbVFNeNWsSg]ZUNEU\kSkgr[TRVZPhUdLNbjRciabfbhJ\lUMcbD^OXZVlY\bQLCfjd]cQ_ZIEe^PqSg`MR`TOTvhbYekda__LaekdIbW][jV\^lvRSZg[ocSe_awRdZ]]]MRkl`\z_[]b[cg[oc^PY[ekaK_[Jc]tFQLTOTYd]bP\hjaQbac^\OxU^?jtTdID_aRAqjF?TOrRSoXWXedR:vYYTIXIaUWtVc\i_]K_hM_p]IFuP[lMgGKBNgQfFGQS^NkJ[[IDW_h^=OccS\WO`WHdJ^[Br[Zl_RJZ{mJGMbReW_PXoYDWpH_EXeSLZN^XNZudVcEUmFp`mLSRTYrHXhRjaP]SOXbSZWbUUh~ObUwa^EeSER[YOfdcU`QgWI@lKd]K`^Z^HN`C\_^Ykc[ZmUnEW_VVUuUWcVhLIYdJScJOU_oQNcCbgBhO|LWbaaVfUNjhjJJlTJixZ}KpKQC\TQCqoY}WNp`Yy?fiimTfYqETaTM[\}c:dTcMYXW[Z`Q[Rna\\Z[ixOPOYfWTv\MNX_WjoYSwSl]]\b\g`^dYMOv\e]h^[bQ>^boUSSqdVQ`WdyfFbSZncFeNOteb^f]^``sh[o`\dg_UWWkmdSl[\bgdor[_Q`_X]J]]ZRmUW_qtUReM]t_da?Ub\QZjk^OjJZW_PaaYS^btPgYa_VWPa^pX`W}YShIVPlYfbngbNYJavJgHH]^b]PUi_WQbJf[RscoaXNUOp`SgUdZMWlg\R[jbJ\aOu]^af^jTegjNNJ]Ta\bsukenSeYDauZPOo\mfkbbgegGmbM^FiPt`UTZh`J_tJ^k_eXGJiR`F{jQ^ag]jatbfq[W^^ch_^]UPb``PUEq]k`bKZ[c^ZeLafZbdQgdco`]R]zm]V\Sdg]ZKugWl_Zi^cYUH>W_OjNYZC_\L\LQsPhnhfHGa^I]mY|V{\PXLXbgYOkfZlpNlTe^~^^Yn]_SqLt[^cZfbOWQc_nYbidNh`beomkdZ^S[]SVW]\`TgkZXAYJcVftgSeU\M_Krkuria^UgEYS|cVyXQWfbO`Xu\iUfSdiRZKj][e]\HqV^NRg[U[SXTUYcVNUQMW]]agbc^QkZW`_QfOVeicfTQQ[J]Gpb^MdYIR^dieaor]gI[\e\a\dQnLj^bmQCVWNMHYIabZtako[ScfYZ[eYmZT]aUamn\X\mdQaYB]\XX`XNaeSVfe^WSH^PVkXbWVfjRWUPXRL[UtcUc}e_DebrbSu[Ehg^MXi`jYh^XM^RSSfQhfV`cFRYfPjmWcaK\fbQTb`OZefYRZrTOTpYYVc]C[brfdZdRdmHfbZXw[PGNfWfaahh]K_fffoOQ[FiHSX[gtL\WZKVTOWVK]qfaxYW]\[jeYTTZaza]R\WVQZe]_eR[R]fgdf]c\Zr`e^fnVIWZQ]dQa[S`V`JT]aO][ZZzdsRQq7Y[T\diSfepS^j^[bXU_XUlVUEejOh\LUmlOZV]UUpw_Y[lSWi{TOetZP\b{kj__OSkTQRzVSRSi`Xj`mqeWaWkSgeWecMGNT^[`dl|jjSiGagjkdcWniSRXZ_IZqgoZPRhXTLXXiXT[dcU]hRcDJ[O`t[lbjRQOM^ceoc`hnO[VPJOTi?UW[TUzZbM^aHFW^PojkY[USVNbb_`HbcJQskTmQIabcWV\c]LRuQZOPZ_^XQebU[KVbQZ`~RjVfT[G\\R4eSN^ZKYVbvie_tXXUUq[dhWYdKwiKverJ\bZQQRbiQhUgsZ\kHZpW}KTW[js^_CNhcjh``xPZme`]cQW^sOVRSp_enxcT]lEdgjfQKr^{DV^zdJZY_hNDJ[`GiVGINOYpWSWMbVTjYd[_dJdZlWUpeKeiTAZiKS^kYWvka`mrL]`Rc_WfOOO[Z^T^IjJVNmQVHFJPfW]NjMRXYmfVn`5GcmXQeWRKqeX_LSib^aG\^chx[gV9tISZX[HIVWPX\CjO8[^TqGMMTSapk@dhiII`[SbHRPdPLkMj_u{tgXyafJ_[oRg[jcS\vpq^I[bqFfSSeLzSPR`H^]RU`Vb[h]r^gj[ULe_jVR`[b\dbXVM\ce^i[ai]j_\l_`T]eRaoZUp\WpUTeqajWP]KS_IaU[Sb]xp\kNW;WVOU_V^Rh[^PaZVMU`g]Qg_td`V]n\bVCS__`H]wjdoR[k\iWvbZMVlgecp\nhM]WseTce[kcpgZj\kbsavYWWcVdhTcsYZfSLUae`WTe|~ebj[oYNZvrd]iNo[a_SRYdC~cyfMpK^^Nuhp]=RisAeTwh[dXbwWaZOZMeKZOYTc`jPW]\UxIL^YMXhRViQQ]ZbKeRWjf`W^NvoVa_P`bdWDRSMvQWWqSw_cbX[UWf|HG[qGSSUN`RQdSKWXUZS\f\PSRiWhpiS_[jEbYRXGIUTqDZ|ZXoQWZf\h[MvXldTPXpgRWSYeKe]o^Uag[Zm^KJva[Ggn[KdyaHKtfqI[[ITONwgWbepkSmhZ^PXRmeYEl`ijMZVg^^TZo\db\W[|PDkd^_Sbe_enPoTJVTW^knTVP[Yh^\\SjaiRUf`okrZKbTUk[fZXYLkXe]icIJEIn_MXPO_gb`^Gb[dW[V_gdRVI[g\ZPllgA\]k_g``J]_]^_aa<[Q[K^zm[K[U~sIqa_7j\TVm^agTUhNi_ap[SS|YSTY[Ucj>hlfVXSX\Kd]ASY{QPTbS]x^MvXX_QNlMdI[^KfQnXTfEd?SH]YYnke]eIZTVV@YbCLpKZNcRtq`wpFeV^VKbT`^ddckVCiSKJxhsdTe`cGRkaEtObJRh_Xb[[a[_uTFMpkjTfSo][eeS^]c]oRRKrP`Sj|T\fOSlT`g]WdWUXegfY\OPMHu^u[_gge[\lgToZgZ[S`i_NX``UeXRcb^_R]RTiU\fT`ZXFi_TZYl\_sdTXZXYhZ]Z]WnmQlWfLpPca\SFZe^UdtU_^Y^[QZNaYZY]q_KVS\cf]eSiQ`aiLpMZYIb``YPZSQe\U[c^hjj_eXbQOdmjaOnT`gcK_cYu^6Ue\TVPkWv[`RaUZ_[n\V]5NWhZlbp^hGec`Yj]D]aT^jYhNMcIImeR]YZWkUrZO]QTL[nxN[\ANU`mVaeSjAWXNiUdbcPP[cMkS`UTS\RonoPI[Z`Shn\aQTm`V_SSuWXeZFpUcXTHZdThvULP[VgK`P{dP\Wabyj]Gf_^Y[pZ+eZYdZla\KNf]`bV^mhmYgfGt\agbktYAYZATcqcXlflfhVj_CgNfQPZf^J[XgFnTv`Udl`x_cbUqIdafWSab^a^^Wig`ah_oURKxPVefc_Zbg[]eRmSMn^Xf_c_joS_KgZd\_\l~Wg{`LfaeCiVc]Weaqlj`oTsjTciQ^kjNT[KnbcoMiOr]XbWUpSkaUMh[\^Le]fuXWvgR\rZ`kiaa`[iVKk_MejL`OkQa[W_]bTYYpWgdj;jg\ijn`_`YPmToS^[b`eSdarpcaSX][r`W\FgZlbhr^UcQlkaRZZapid]oSfleYoa[\\f]nY[UbmJIWVYmcMIfVVhcaiUZofDpWakbVdNbWeUP]bfjp\jPmfUN[YRVobZY8fV[LkZZmSC^eYdflJUG|WggUa`XhN_RaKUSKVVfT[^\[\][TgSLVi`kf^LQQn`O^]TBtvifALJfdRYbadeUTjM\nFR]]6dTseT_XK\eRY^^Lm[XuZWnNagb[af]^cnUbwOWNTlF[Dhc]T_bS^XJ6UL\cZMqVgjLL\iMVW_VMkcj]lkI=}cZQ[]g?d_LBTuVRSQawSXbTS[cj_PCdVgD[]aQMGOMNb]]uUV_`OWNm]dhW]jd\dZ\gi[M^Re[hrQMNVapR`WQPFrW]\ccoMRW^NfbQykMcWfe\^Wch`REaX^__Uae[P`Z_SxY[O\QJiUYK]pZ[\arNZ]xLg^KTUK_cSK\HWSa]sqQX`QVW^dIi_SX_nXZ[`ZGhRV^YAOWneTVZ_RdWNxVaQZaaTYUYZ\i[WgYZcWfbZw]^hYARc`^^pPcFVShmUVl`[ZhdeY`ayYS`VQK]cQdUSWMMgao]LTQSVkp_\XXTdWV^Z?VQsdUY\vBIcd\ZW_Oc^EfYLVl\YKnh^b]^Zx_ddjmoQdgQ]cMr\]cVgWS_vgPZ_Q^XYdbjabR`QZViTSsS}TaZK][`apSFVYT\]TbRM`]T[L]^VgYa]n\dZ`h\^^qHY@_oe[jURP^c^YS]]f[[LahkMkc]k[^S`YZlacd[TU[_`TdYhegQfT_g`Li^]][beRaR`pk]X`Z]RiQ_`XNQd]\ae]ZQTac]mg_dYfRZ[^j\[_hfNQXR\]^OXcaaeWk]dibZM^jX]]fP]cZOVWc^KhaaMZNLcRXok^IT]W]RQX]UTaH`WvW|VVYThHXOceSjC^VblUEYZTMTOXeRYQeSUQYYYhKiHU`Vc_pWjei]IL^jWab>]meUMVlTZ\VXc_]UMVjhkXR_t[ahbf{Q_\TdY]_homoZWbggTq]SPFYnIcgPafv\_eTLO]Qop_YVTeRwg`PFS`]UUZ]STnUlT]nSQPVbE_SetXjOk_[^|VKWO[Q\SZNYdJUPXRFXHhN]S_]Y\kkef[XXZTwHRcEASMPpyff9cE_gFUpKMlVebUOVR]LRKPIM[[_YSg`mbMg`^SYIcc_DB\QN\_JMbEVWVZhhT`WFZtOlRKTVQM?ojb\LePeAqJP\lV]TxR^_br=aLjZABi`TvVNtYRUdRra?gUqOSS]IhUZ\JZhNIXkZ]_buX\e[dZdQoKmeZo_a[jcb=Nbc_^Kf\l\j]iarQ_sQ^]QaSWh_WU\\[UPa|{`[ZsgdmhUMm[UYWUan^g[]HSW`bTT`rZPg}P\Z{_d]YZYX`bkedZLd_fZ_EhWn\RcPUrYbYVYl[d^W\^ZcTZXPeUU[^R]N\[Y^XfW`YlwaaW}QT\Wc_l_hegZdX\w[honeEXaSd~t[iL\]W]aaWc]]fOPQliaf|^^TddTWGsQU\WUpm4mZHmXjls=clkSGXLjmmTaTjlg^[^cb?]`_@YIYBK]K^\lX^YssPTAZLg_crSQ\`sf]jUsaqbHPKo`T_ckTdnaW|UfhbSLbobDjhgJ3Pi]Z\YULcpSdb]gT_fY;UCUjebcZoU[_CV\exN_zen]kg_kWE\ReobjVz[mnVpsZK`_Z]ZmVhfo[b|_wabeQaMVbSp\Uk8csiOVHRatUV^sjgtTY[K`WeXhOZtkd^lZm\\[SSnJ>df|ddYdIU[ciUDNT`HZQ^RirZkH[Y|L[decWfcOcVdhZe_JXoW@OcOMKX@YjTZeJccVPFl_``xRtjKujNyfUT^|\dqLRX^IQmgMUXZUU_Sd}YR_[]`SLHAi`fd^TlTVVfyThqiR^d_\j^RcZanYTi_QIdZUKcYYbg]TfB_olcieglPM_}mfPN_cj]A\hm^fQUX]P[PcKKVO^U]SOTiamYr_Ih_ZSc[V_Se\sjY_[aVZ]IeLW_W\XRb_UdiRTQqjRNZ][g[S]O`oWT@`YKtVp\ad_PI^lRyVZcJS[b\stLZ]IOQidgmNcWT{JhXrlLGuUs`QCj^_zsFM`V^fEjWUqOM^dhTieg[LaVFvX\K`\qSYRWWllba]^cajqoW]eyTVe[\sa]beS_lXo{oWUOO\VY`VU\McFQunmYXl]UcRYVXMRbbaWI[rpM[`XEiaPdRxQ|OpUTrdrkoRXM]{pcZZe^S6h]jHcZI}J\Dz]RtSVsjJ`NbUQqb`]`Ee_^aGSMjMkoiIccYVSdfeq_NeS\]Gqhbc`]SjHgse]NUnXUXdgNmM]KQ]s_b^EiNV]fYYZmbM]QpJhhVoXq`]qUhVlm_PfU|Nucuj^jWRRdUTm\]rjV_QVbWkZG[YLh\]OK[MahcRUnWdP\\_t`Nam_Z]XD^cSeRP_cmUfWj]wfbnS|dsdTPWN]X^SWcmUYg]QNo_PWKVPwxLyF`sJL_XI[\TzRdV]]MMi`naQSYUagX`kjqWVYJ_LpcZ[Oi^sW~XLLYVn`NfRPUKcghLSdXIbI_cj\cY^USb>U^gLcU]^VVruSWOScLVcH`aZRVRq[R_hV_emJgUQfk\OW\u^Mqcd]D`cZaQjrbb^S]adfZd_UJaW_dSgPb_JK?DXdcP`dRQc_SLS|IfeXcRVJ`diS^\JjlfYn[UacMXsVhRWMYiccf]ggOB]]c^Z;bTUGT[^[`ha]cMcZ]RJX\f__X_fW^ejbcT^fjfcjWXa^\TeJU\SLjOK^R[]YYUVSbWVrcK_bVJdLTg\b`Bg[^P\_QYJOTVc]eB^MhNKlAuQrpemkT`b]e>b:NK}^RNRZ\jiaeVfm}fMb^^]kTm[iN`^N\P`]MUddde\`gjOvQL^UXdinrS`QZd]c_cLdimZTITjLORKfRELQSg\jAaGeb^Ne^d`gNnSeeUY_ESfPWQnNpael\YHLNh_dYiI[NcwOPS^\LJY\P[aWQX_ki`[a[XgUYmdXWTIsf]XdeeS@pYQQdZ\gGkWgUXo\bja^NSbUaLN]u[VgaK?NTUdYd]M[^MmY]aYZs_QZdacaMVbWaSWUgEpWcY`QRaddZWSlrilYe[\\X?b_YQ{cgNlGQbWYbQ^mPPwdIKYQMXKTNhTb\hZ`UQ[Mj?kJ]IB}e^IX]c\MaBePY}\TTSRWdPieT_DucbFHw_YvUT^WGmeQig_XYWfQbc^WT[`Q[wS^hp]Ta]HTgYfp[>KScYYJTWXqIfhUDTRkUoXWlQb`RdGUfjY:=bIbeL^_RVdEU\XWcUYO`Xu]O`OjUjiaYzKKjXRca=u_X`~`RceWWEQlWVv]UdVXYPH]ZghXjDcmle^i[H7daJF`]BOcTeQ\@jeYy\^bRKV^TiPLK`\YJnfcoVNtYhORT\g\\SunhNf^uuW`HXD_WZ[QZlteUtJR_Ti``XSIXd[Opw[PX[jeQ_[lQT_anb@\ZSV[ZOsQaP[^SYX`Weo`JNtkhXLgWdXciZ\asfLmdS\]XQ_akYXMl^y[X\VOJWSW]QYfZ\kKfMIdm[C[FXT\cTVcJ[eUUJhTjo[i`a~cTWYdMVoEZYX\jaK_d[QQSK[Uub_zTQJ^jLUZ\`si^tXdYKbZLmnJUOaf^ZsaqlAMiMTW`j`Wh\ReQWi^KY\dWU\poZ^XVLUdlSnZj^RR\cS_ghiQdT_dWVeYgm^fsSZKhSWakaQUfYcmUZR\WY]ePfrNI[bubSF=j^[X[f_gf^MQN_XC[NPT_^Y[F_Q_RcV`gjhcai_`\TQt[VgOofegXbQ]OWbjtTj^jcnfYU[\\Kkph]\YfP`ZTfmV`YGe|gofleVcpQVRZucmqDkgbjXZ]YPlZ[k`bUeZ\aY\mgPS`joilZUCZcd_QV[mp^>aibc`XYSlR\wJSecSj`ULoubU^ZfZZcdGgem{JaVPQ_uSkPUR\RZhf\i^Pe\[Y[d\iYdaU`I[mcbb]_SfXfnZ_ndSG[kc]IboW_qaf]T]HHY^JOySWR[SWeNTcH`lXYWXWKMGxD\[dKYCK[XdxUOa^]hUh`hbZY]`dmg[cmdTmVR_XcMmUC^P`^ce`b]W[O[gQ`SaS\]ZjuagVwXj_nmnZRPdb``xd\f\_gckSUadKhbdOVm^QR[PVZ_[jS^LYZ`]gncQ[gX]gClPO]iiReWPZUSLXnkaghWO[b]VWX\L`_V^Q]`]rWWZ^\\edh`W^hXTW`qe\\_j`{Y^cR]VPdEQc`XYNgTX]d[Yj_MRaoxXfMHnw{M`^[[VTZ_mfHPX<\XWPI[qeXSWe^y`nZWTJVJY`bnX`_X\MYS^tYQXyV\ZXRZdg_S\qSYNWXlRqV_X]khUqLrb_eb^iPXcPFkdKrGRha[ZaYf[eZUSGaYUiQWW9PZNWRvXbTQ_gm_QlaeWac{FWWLN[hdFOaZVasTlTJZa`Gf[SkdOlqhRQ^RVV;YKVeRf\WX_lKXXbY_NKMdPsKXc6ov]n_UXa`bVRWLr]Vg@cf\efb\i]QTi=oIgjePOJhXJg`^La8\bSZQdQU`Keb[RXjhbq^Hy[PZTjfeI^NaTrrZ_ePlLYpR^eUnVsMhGMWVLARZVUd\^^lTOJ3gZkacRhOiv[WVbPVT]WSK_OeTe^fZ\NK_R?p`^ZTiP^]XdUGlo^l{^f][SrnUKSRgWy_Bd_UsKP|rjM>oiPZbOX\KVk\`XW^_B[]Ueogb\Y_RMZVI`awaTRVXPYoowTZmVT`udHg_`Vdba_glcMWhlUUMnaUfIY]djji^eZHTWX]W[HPkqWder\DPYeGJUbZXUblKr^UiWUNaaaXk[Fc9OT`T_XD`s\fUVDdFlN_bYL=brFl^MJMW0OTPQUAQZiYCZpd]KSjKY_El]iTW;fuXJhIZ['WwEd^R_NzNZZZ<\JA]EclLZpGOgVXCrSaBHQOOWRkPHSoeROY_WQ\\?gWPmSLW]p^mFijN^?WUOqfkncn^glQIN_YcZl\gjfTzOc_OnVg[`RZgYV?J_TLbSQMkUXYYYjV[RbYLMxUXZ`T[eh\^gdUaPQUSccWjY`eWdOgMaPeY]lN`MULaX[`Nn[IccTY_YS[cankyKdWUVUXmX^aaOrKhW[XlHS]^{asRegP^`dShm\fRd[kmq]U_bYQ]U^U^aX]RSUV_[TcO\ilem^rSYnSh]F]_]hZd_YZK^YXW^baa\_^\jZ]UewfSc}ZBLdNBW^SXdh[oTdaYUcf^YaStIUh^bdNWbA_[_KXSndZ]f_[ba]r_XatMSh]kOrs_Ncr^HfZ^WhP{cU_d]fUXe`ToPDvddjJKPh]PQT[X_D[f]QHXSWbat[_Tdi^gQQjg]_aQcdhD^UM[{JE`dDOeh\hrYqbdaZWhgDRKcWj[cXKU~KPSUjPNXmQcG`AUWXlo]ifJbTNUWSN_a`F]g\X]mQmO]kVbTK]adqW^h/[TZuc_bp[N`XK[TlcQXhVQ`OWZW^GXXXEpT[fu]SoYmaV[MdLVekN[X^Oh^emRO[T_SjUX_b`K\ac\aZZmbChU]X[TWoh[\cGM]QULO`[aa^`]`gQ`^dYcUVYT\YaKY_^jf]h7K<^aNNL_^ZlG^M`MJVShfkXSCduYSK^QTVY`fSTVfBT]fcB\ji\[ja[[^h\ZeYdfnVUUYyXhlTNQVKzbfbIj^jOkePjpI[}QyXIhb_pW^dibjZZXYMQodcejGN]dn]OVUhXj]_Slc^bo[jdV\KjFf\eP`QTPHVH\ccRQ[WG\phS`7LvjNZLuXNahHWPKa`iQ]V[iRl_HbkOmWrSVnTbnZ\fN]ya\\QARnbW_P]R\tWRnSrW_XcaO\]T`hQieaP\c[MviafpeiSDhRA[fe`fRWjT[U`jiIS\RdsqPwdogTdc_rdfoeCsx^\Rg_g_a[aiScShmkX`ZkZaqlmjwbwSS>MWQfoJcitgXbWMW]ivNSf_iime_oaW[[X]b^l`mMHbVhK[DmDXaJOdu\DJm_t]_lM^smWTr:ChPaWB^CYt^NV`mfTN^EVZ^`PRmJcGu]Ml]QSR]xN|gRX^EOJg_RcHXfYNA_lpS^|CZguavEUVmGTUZccTRKpw@GLhRc^X`X`XN=PTSYnTSRXgZbqWRr]VW[VzxQ`~S`g^`H_ydbWFZ^a[d\MpPfCX\QSQjPX[ILc__aKcmi@^PMC^B\^MhL[[Gbwlo]wcRTULeQr\TkIIOcPJ[cn]WG\e[\R[Z_>bNQRYV\faW_d]MR]`ZbTU[iSVahx\`fpFYaW]RPGT_Oh[IkaRWdS_TnYFYM]__PKW]PQTMW\]N\R_^SD_dUVVWNk]^WRRZSXXY]d\\VgObNTKS]ir^[F_UXKRZW^Yc@]h]FTcYkaV?_TS\aC`e_lbNqXhJs\]mdIQ\RZSYWj_Va_SbqWGSkma^]TiilhU]]Zaajisj^mdJVWkQh[srWWdoRmKeYp[Qb`]W_`aTT[EiXdYTiwTT\dkW]Vef`NBqdOS>KkbLNjkD]n[[aZ^NcW`b\ZPMTb[\SwgVRVj^hg\OTQDemUQRdbbUkW`O]TT\oRmVlR`bdQvWLGV[fgUec_ir`_X^`aoOFRv[X\k\UPlUefWn[Yb\`c^^XkZZY_d[YjRZmz^\akF[_PV`gL`WiiR_`ZT{SZX^ZbdeP\lYcXak[Tm]_`EfTN_^^VW^p_\_aUfeVPfm_AiZYqvubrURgaZ[geZYVQaDITj_^iclng[oS^TYSSYZd]kWv_[O_ZZVhWRqK`[nf\hVlSXb_I[Q}eUcShfb^dcbYhQ{WSV[_eb^^icOMTTl[YLVf[bJ`X_g]Xf_^RZ`[lYk_\RnSV[]SC_ajaYabg[lgb^WehQp\X[kafa^\mpl[NpT^Nd^s]\pqXzQZ[Q^XXbb[c`ZfiRCj_vbZdl[zqKYVXef_mb\fWLpDTY\ZzS[XmmdsV`\\XMM[WbTeYp{XY_mVnsh[WHUdm^]ccVmaaoabSWN``\WFURKciOMUgOfSnLI~Z^qgQpNBdMNQUDVX^srOSVMIWN[Ygch7MQ\e@^NSOROQjNqlW[WKu\SJNhKWNYX^w?[UTdRPqbxITUVadh[TgW^UadRsSQ_}MU^jcKevmTeU_fTa[UXN\m\Padlh]NaaVZWb`pN]VKVnbdS`XYYllQR[eRdGjQWUPU4nZckYUe``g[YYRXTdF]V:yTYOc]WRUsiOAL_R]XfWZOiP^T[[V_Z[jJdKP^\]aEhRV]i`NFUTooLXcc[`?memepycT^e[XfYZ[_XS]alYjNX[lXZMQN[BXC`VSV`yQWWma`^XU`\UcmmW\]WSVxatU=SO`Zr`[p^L]FQWhgq^iidU[Nf_eVBntZ`a]`gdbOXYheqhNe[\fSTVVPfYZQpQ[OIfVE\BoWZOIwTUnCcTSdY^nfX]QVbdVVTT\Pswc`vWaMLr_pSql?KpbXZOViPqbdU^Z[WVsR?fadR[LgUlNB`_T^bQ^>^cZ^VjLqyiYRZXYLHYfEkPp\ZcBVlzNI]{g[Q]HDVCb7d\sUFSaXYs]_Xkhqedfm`gZp_d[{EbNNYxePOM^^kbO^TZgjdUQkSZWLXVZZF]]JRXaKzJd]FftR?VpDN}YQIXSrU8L_jWcc^ifaUfyecFP]Wvh[X]dbmtQ\tJY[bZ}kdQhe``Q^\WaHZsP\kiHj]jcg^k]gE`a_q]dhM]cYTYbAO^qf]`ZNkUu_adLMYwhJ_v`fbMnPSXxZbOZcclfHlmXaSJWUgVqk^QvYn~\|iXlWTAf@O>bLECEZWgZTKATKJgZlZTMfd`eX]VQN[caWal`elTJXDS^lrO<[Td_XkeGNd[ZQ^\H^MUZfYZOgLd]eN`pPJZ_JJjVqecieG]V\kLZ\qtld]NSGM]VJbc`djuaO=YV-^xiY\D_ZTUQ[ObUailaofeZb~``_]Y_m_t^gbQs]eUaD^^ZxZ\bfbI]_Rb{[j[RqQ[jZk[[`oX[QRd]a`^YbuaY`REgYmeY{p]fUiMW[eYfU`ScOfSXPtVLb[TWMfbpVZXm_P\ugjb__WWbf`dVlJVfchX`ScWckXUcp\hIe[P\]@XMZgZevi[ka_`YnYlKSVdgZZlzt;]U\]lqMVcH\S^YWLwrw^MPod[X4eZaatUn~nOZh_iGo]nNbLVRBUh^dI_Cr`]d_SXL_ha`_^oq[[Wfvc_fZbQP8`d=kRXb[MjlGSJMWhVfXdSMRuafqoRjcb`T_kWXWlWY]dRZjGgoZRROfbO]V_]\ld`\p\b\h]SxZMYUaMVfNeblRYCi_HSg^ZcUDu[SOh[nridbLNaoj\Leu]RcgLpNuux_]Rdh]bfe]S`alSUcXU``O`LnnexjTVZZZtSYJlJcaZmzkXn]W_ZZp^]mZNlSc^gRQZP]hWZAOPYOp`^iTMHpM[[xMeZsbbPTaqRQfSge_q]V[WWOglQ_d]Zbt@WdORkPQUhUW@bjE{fSdI`OT\]N]`eZPgSdY|fLYoaYbqbORYNRhX_LUSRe^bbQdiidjNH]>SJ]^WcV_cXUmqcXWilNXfjYTklPdPLcZ_WSdE]`eP_jatKWkUddoV?a`J\GeQYZbR?\bLg{jUqrVG\Y]KaEeT[_hMMfPJVPk]\YZZMk_TXR^VbC[V^ldUS\kLa]^jUpg[o`j_EaO]\RUZLb]c[ZmtgpnYgJi^yUpTUx^hmpZCSXS`V}]\T]ciRTbE[WSJk[eT_fdV`i[bdhaJabaqZfkbbqOmIwbeocIddtej__WX`]iiEIZV`N_`ViYgWrXSKOfbcdRmGXsTfjkXeKfrNUVS[XLPVhkvLYl_fHDXcv_XW[sqoZ`aXUXM[o[SfZ[[a^EcZkbdfTUK\PPka_A\aN_QLNc{dRNgU[TaXcg[[chYC^}_XQYI^F[_GQj\VpdWWXl[_qSX^^d`[SSRQ_V?RXbWjRlV_]iWsYpZ_dSaVQaU^XZndN`^VNDXMfcK^e`jXdctZ_`dZWDVXYmPikh^^I[ZYSQPZUZRYaMNTUFV`WMEV\HWXaCUekgEER`_k[l_WVEo]pZa`V^p_ZTZ?T\UbINWjOOnXP\If]Q^hZdZUW_iCkkVWZ[{SWcXWO[{UeTSdccn_XoXfPPPLFollfIeStY_QTxXknMReiNd\YMQXellXdbqeRiUeKXfCThKan_]d^XdRq^YXeLRTf`jbfSI[ZfYkYMYc_Nq^Q_Td`ZMVLRGI^R`YbaPD[\OVWUucsDLcRb_nYVYdMjXMZWPURZQ^bS_cNZX|VSdIMyQ_a`JoXGWcQZPrgQSWsLOO[WfaINNWRlLlUZKgTKVjMKb]FfmLUEWF`M\MtATXl~tb^KVQCbdIBba_nEQpu]~QoZLMaYW]KObLAcb_ncxMbQM_XRGquaCccMQKXYQ:nT[EUMSDwN^kdTWbmOk}WO_P[jYcbVPK[_dYYPWU]A^r}Hh^aUCagYUX\Zfaac\ZZaT^fZFROc^S^bc]OhaYkVO:lf^G^\mbhjKT`PeSo|\b``y_X[nlhUiXZ^tg\hr[\Y\l]UYIZ^Vi_S\Zn`P^Z[hP[`W`ibQbdw\kYOmQ]jje^UWV}`zc[ZLUW_pYhlVhOTdbtjyMbKZX]YIRbkZYh`o_AUR]V^CdRO_\VZsZ]F][NjYDb`[U_HeVfmXeF[RbSXo`pheZD`UggBaTW?PN_eSXciV\F[XdKbfBMVbE]LbYcxVhiSYVQjJYKN6abYDmaVV`XV`SP^ZiXc^X[bP^ZjTeV?XXfcc^LMSa[NXTyT\YDnXw[WMqp`KSTYdRPKRTUOWsXR_Ng_[\oebg{c\yl[ErpX[`arQ{kcqXTcI*dTjTQPfH\\kC]UFoOkJQdVTe|SHFh[Wl``rUFhiYmJsj]T\WT@Ox|d~oPYWlSUTafIgPp~QSRODj^f`fRNecaegpStVeYrRTijfuZZifNuWXRZkbIH[]rdjNjcU[lpHShdzuWmU[sWNDm_lsbj]YrbUV[9UnRMZPpVV[TjY^aNihc[J[VUc?PYej^fekt2~]|`w^sY=UQ~ZybW`Z`dU`qMaL6HUPYZKOUW}UQVcWRYFObeFXMoWa_XVZZApRYYkJLfwiTpwEldX[w^XX\\v`YR\gP:_HSfYIUeq>R]aWTI[Vo]RrpLQV_kVVjdO2bxPMUeTUQKjQ`gYPXQsQLo_pdocU`_Z\MQfPV\LTcP][N8xLsb`H_IO\}`asjh`kUnMf]v_aVWb[fi[eqtKJ[a^IbKoOwf@wuS^_JTt]oThkSS]KYlp3YZmxOVBY[caCbC8]d\R`R`XbX:WgXZV\SN_^PD_ZTLXibP[^[_U\eWHVeFVZgZ^eQejfX^Ua]ay{R=MCs\`DSacWcJiVchW\vPsbYdTTL[Dge]KWQzaaUWzXb`?SfR\Ld[u[kQ[`cXGaNufMhOg]ej\[P\s[jP^ZiWa^iXjS]?WUmF`YQlY_cW_jhmagYaalU\PasbYL[sZl`aQk`RSUVdc]M^]jRYEU\dbbV\`Xa[`OZ`nNXU^WJP[a{g_XfbSNcmjL[ldrrjY\TcSgj`bhdRcS[\igYQ[\YNfe]O[WWB^\MH]QMkPj^MV`YP]Rm\WaSR^ULSecgaabN>S[SLKi]di@\N@U]eV[d_aRZLfaaaM^TO[XMVU`dca[`Zp_dPbd]kbZbZVkZ^hMkkn^bWYsAS^fS_hpa]oCd^aMFD]_ONL[rZlwZSkYdPYMfVf^IZ_es^^J\kUlObXU[ODS[[Yg_ubQ`NVT[Xah^nzXWltIafgp]NH[Nf[`Zm_PdqkUtNwjSymj;dXPh[hjUPrST_qQPJb_HJY_WWVe]XrOcrfP^\ZL{IRR^_AYbfqutUdSiRI[_hhPE`iUbcQSne@UZfbigc]SdPai^J^clgjMnSh``XiaVaYZZ]lemaZ^`]\SemcePlCUvQTMaHicTYaafmT]kZT_WF`Zj[EVk\Z]I^frMPU`Pe\kmdkV\\]inS[J__Tk`ugBd_jaaRdagTW[VeKxPMHeTejYW\nWP``Xn[:lebmeflc_aR`jtbcYjPgR\VXeZc_}VWYkSw_`fZ[j`\YXbeT[TW]VlXpTTQ]\g[qZ]sXY`odejVdT\UQWUSnbV`K`T^WXLoZ[k`nYeQSnD^cUVi]Xd]WnYlRc7a\]SXZ`^oaLpg^WS^xrVg]EV\EnPkiUyU]Ki[gdbaRe@X\`kexeT^KmZZIREjkRJpfS[ZfTVeWjfabPa_VaiLLTk]PQT^fmXdaQjdlxVcgLVLf^NJlXV~adSweh^bjOf]]UjW`uR^ToZmdlTU[E^WsYkUjVdSXBSb[Oht_YjX^[TRR\XUPZUY[ceNkadftkTgm`V_PadaUSd]\e\VROZicW]g@\ahfb\XJ]bgenUkO^^dQ_[PUgSVQ^`fZ]YsZjaZ^_n]f?hj^_ckfbTgUa[j]c[K_`gsyu[\ac_kiRgRZX`WgGj[X\n\ZVTQhROcg\Oh_YdgS^qdTFaeVNtkolac`aOe\tf`WnVZds{hePCbS_pafedoSK]dOUnenYtjQ_WWgC]NJt^`MmjSn^JJeXxj^Hr@\Qpmi`eH[HZNUYAGCUTygeU[\ScOe]XK_ahSY^ZZU\]d>K]U^SzFNrvmq|WaQX[hiIMkFs\a_?WN[g[fWmILlWgP\QXXqVtXK1fOtXg~]`-SvU{mTVb_l^jiWatAiKRlpcMGbNV^XMMyLhZq`SB`PVWubnrc?XYAcPmbEigaS`^bqdMudR_=b_TT_wID~LOvZopy\`b\d_X_lOIkXRldNHL}et{\cVHOIX[HLrTeZbH_O>XSX\Bqx\XehUiX[KQKL`VOlM~m6aW[]ZHe8T\D:g@[qvX[bAQgZQWNa\NYWkb_-Pm\[T^ZC]R?vX[]=OWQCgOQwITJ]hjqZWwTR\jvTQfHdYcm]FjfNfns^QPm]ddTTbV~bno^oHI[ontY_Sg_NxZR[QvbVwhK]nFhbKV[Xkk]cfjKXQMeWRZk\XcYNhLKncQTTUPbTV^vTXrbVhUahm^xr]\tRjbY[aM^[WTSQba]jm^UiUYTPiVbMhYoacwZcfWiPe^_nXYfTcbhgC]WZqqTscUqoVceVJQIO_TXONLl=[deeWVncHLYW}\ksqVhgmdYld]MU^Xf_[tSbPaZt\`adidaL[N`\YbgnTdx`FnBORPYRTKVVM~_It]r\nFYSSYVVOcXOkNVVPakJ_iiHLD_b>Rj]BG]Y\uH]~wl]LiST_VekWLvd]LaXiRGcaPR`dbVNLfdYS_Ea;[WB=Rd^PZM[bcR`dfPrQGjE^ICWxLlbd`Hcdk]gvHE\fW^cC\sMagTTXemWHbLT\Q_\PYMXeb`XleQPWgSbPKRRMEk][\TuFsPFcsnY[V[DaUbSU`_L`XS[t[aT_VXURRG[aW[GxP\wF_fT_R^wdZZWMM``GXaMUT\_[`KINWYY[cKWa]d^[[|ikXZ[]]_YRgW][FU?hbkn^NXMumfgPWfrPOtSKT~NOb^qddcKmUEIqPZWuan\s_E`yaVwYQ`L<[JrmkgSs_Y^paeTLhxksSaWEKiCkHcOUMUWFTXYfdYhVVE_\beZqg_uaQKIsXY`rdhk>_m^TISYruZpSGuQKebgYIHdro;RhJX_g\[UcY]SQNaTeWTgL\zL]i_gD[nTM]DZNEv`PsL6LfljAEdH\NjqPYwnUQIdpIaOHJ\eubZeqbNmNp`yYOMsSl?NioLNhcc[bT^ccTh\FZ]NURs]n_H[GoU{{[`hvnSSkW`ekbcD`DCicw^VIUQWbpdJ[RWdun^OJKUUsUUehXBZWZpIgQ^hgkNd`WoLV_DkXX^Bu[OO^PePoTQLYCRVQg[ldaBTbcJJibN_tgV[U^\^gtazPkNeWSkTdnY\lzTTTA\SSbwl^VSBWNK}maXEa]k[_QOaNF2pdniOn_<[\SSVendjRfJnJ\ZkgsxW}]dL`_Sl\~UMT_Z^QfeWXubNSX]kW[T\OlRQoSgWXUQhNS`U[cYQ`WHcTfhAuORR\XTTONdWiAtLsaMd`\UWU]mWdX\gUQcUkGac_XccecjYdMQ?baX[UmXX[RRVLd_d]^GuCQW^nZi]wCh<^aC?\TXZ_aOV^PWNaepTdRWLOGHY`^TN\NV\cUTmY^dQ?SasRP_XUsudbWQITa[]VYLIWflMPMPGVzYI]Uw@NJWEdwJGhS]\[ca;XkXSbHUDCM`FpPfa3~xQJ|h[NvZZhpn`NQAClQXvZXOYHKRdRl:DvAElLEvo[gmWR\dZ\k`GTgxeRtdXKfcsgSZNCI>DBO_J^>b]esPQVQEJ\LYKQ\[FkfbUDMOgCR^QIQMUg^S;_Cb\^QtQD[MGWkrYOr`TfXnUZQD|xEk~QmrGQVP]K:TRYaPZTC'[TWXXXRa`ZXpNI\fjSUVTLgPi|P;|QzD[gYc9qUhbMjmT|ORS\YNUEV@e_TfUZvo_kzFRPNWTQ^whEcJPRo_cUXTlZNUYIp@\UZakoCfjmRfWUVbWUhWfF^.dViVk[[]QXopogGmHU[M^o|ERSRRJgUid~WRpg\rH[qea^KOE``Vd^NTedor[QWfaFXWUKTCeWXQ^_TU|Obicrbr[gQL[Q]fMkq_vcMWeu]kS]StqKsg_Po]aReU_PKNlMrbd`z[YWk\zQgPpbalRZTk`br`e`ZIapQz|YW]SPVfo^aifV\VQPcz{YQihZ}cvm__YSMo\|wPQNTCjjoQiA\V-_oTBjFSXIBKMWm\`3NmSRplp\IUZXOoDJBL:MPVY?UnFPaOEWUjqBSqMi2Ie6M]XGD`RN[J?H^NSFPPbHTUeiJS:cFZJjbAP_=mWbLdQ\UJ]PcnS[NWOKM4ISbJ^NOhng^woWSPVHWG]tFnERPxlYZGRkj]NcnmaRh}bN:vdXJgjFabalPzPY^\l`R_XWXUXetVjZhTWj[eoZSl^^]`TZF[U`DjhFjkkR\YcnUdZgd_NRS\VYS]^]f\mY]c\WRUSZ[XSV\T[_`cWfI=Z]T`w__achje`iLMH^oNepWdXXcS~`iV[qQS]_VmreO^`]frh`cN_b`cbWP_NRYWVQbPrvS_JeEWODbS_V?gNhUR_]I79QS^e]JhK_fZYaABb_TnOg`=[NXXcmlhJQiddJGNTnXUjEKHqVhxvZAY9gYsQRNXZ_vTrZ]\nWYWR][SzNYbfphbRXz^sZWv[_tdjMX:hLT^MeadpchOY^GX[WsLNWhg^@nc]X__^RUU`hhYkOUWhZQDVQ_kfeCLL^]MZT`XTa\cGb`eWcXJ_W`U`_c^`gKSgpbJSgaKXkz`iXcK`HWcJdQMVeZ^lLPjKccYQ\jnjj}xOd[a\gLuUJbUPbRPU@jSRG^H`daALf_]SGVNmhiMyfYVZSUeS]XZ[Jf^ob`b`rPg]hYnpuRQJ\cczKXdVbHeL\cfjWdkXHJs\^LVNKQd`OR?afdK]aa^Ke]iHMgLuZS^TPTHEicjc\k[YfbQbfZfjb}VgtCZISZh]fbzhikS}FWUTecZRTjP|aX]fM\nh[TTuD`]A`__QKIwP_dvIrMbUhTdJocpde_fS`WiN`O]s^[\hdimWVOK_LLHM_F>ehO_x^RItUIZfaQgi`\U\_CnL\aUWWnNJyQQcaTcb|T\pNC^KkXV[sEL`sbS[sTRwRT{OYYVXQjaaco_OZPGWJT^>QIWQXiSHhJWWeXlxQnYNgcRPNdSQgOMW\LS@VfRUGg_bZtfPYX]_ReabR\tsI_V^QZrp{ZWYcbm]bkJWZ}aoVMoU?cSm`QJs\RNRVKXQQmdMjKaY`gJ^4Tb\kyV`bdicoXdXQRFTSQGajRkqTvd{h^UblqRjnMbiZZ[KWl]3[X_{JgiPRSSVoSnihM{lXMs_\Xcsh]^btVYenSRVsRf[EU`adgd^c[aC_Utnj[Ss7EcPKNiXoWeZ`=Ffgo_`vli:uZ^bchltzvQQ6_[[8tjkC[NKI_SqLCx|cWDPYE``[UanQPbpAwQ'Y~EV?_dnLQMcPRdWjQl^\nk]_q`M[Qa@HX>`KSkfGC6PuSCmUWWeGsbk\doT;e@mRSMTn~].lXxFUcjlcPfcIg&l^ib]a|mXLeUkw[Bm^mecsm4LJQTURJ]cZYO{g^HvecX`zS^Ri\ZO^QtfUkIR]UYc\^k]aWT^KPYUdZaZaVsZLQeH]djG`dW^ad]caQ]W\b`NUeLXVIXd\aLkg9fYgmJgdSXOmL5fcmsTWhk:TWh`VZFm^dIvX7RSWTQMPb_bbMge`lUdcSqT[in\CSW[bhVgbWiNghYDjkN[K_YbLQHB\]^eObZQRWh|\amuKL^bSpAPWXo[erfbpOIcjkL^SUiXy^hQQkXlaglUN``R^\kbL[[ZCW~a]KoLlVJXLNS^iRLIl^2n;bTGNSz8ZpSknUabGuOWjih[I=xzn7UUeT^NNVSSaHFhSb@OY_UOKkZ_gjfXMM[_5SkPNi]tgsbMAhcXVy\}fiDLUNW}PYM_hah<{GbhOBW]iYKE{VvtabRsY]HiYkvO[\XdaeEl[^\NTPVqVgKOXlscMnRbe][ncOJwvVWQWf9nVpbTbhXZS[IQZu^WJZV[gmXsdZp\ZTgXrW|R\KaZZPOZLWST_vYgKcUlS@QeRP_^zSg[UcyINF^o\GN^ikP[fPgdpf^TAjq^uM_QMOAGOkVktRnYKoFR\hcWR4YcPcWiLQ[cMv>ZZX\Et`\deSbVVoRCd\QZFCQa_XdLKQhVrE`ohU[gWOH;MzRTXZh>OFV`kYiNRnW^PONOMipnO_qTYKfSQr]_XoNQlXMLV_s^ydJfeNXiNkRTh\cZXxUSp[Cb^[gpfRc`apeLNRmaLjWM>l]bpTPORHZRVUXe(~^N?goqHPXBbVSt|ycuI_cvLZ]WWPXZtao]tzL[VWUYJcacJdkTi_\ogiOR_TR@J}pbgUZ_|QQ\T]TL^UX`nWRn/_P?nDG]>bLlO__Jtge7Yll^`]c@XQ^Kc_``KfUj\Km[AuXhZJ^fkKbhg@uQFh]d_l@fG}Wlcem9UI[THEW;`WTdNyUi}\J\e\Cb\FFgdFDhfY[FfwVcC@jeXLoM[LeNjYHYUN\H[yblPsqKZ[XSV{cVT`fVuUTmaQo`9XEtq[ZHY^DaHadVYYOT_ff\XQ_^e[bSZO_YZLRC^gSm]H_bYeHae[\SfgS]W\T]FcfabW`XeTaqQrT_XaYdWfZoRYOmUb_\\RgTUY=WbiZkX`SbWXWbcXre`]gdY_NR]_`R]f\e]eRd\OaQiUTUpj^`QLaembZVSm\Pldcd]\d^U\[VNaiVUZeUyegPHOOWOYacnRoZ`ofO{_cfZJUkEY_ine?^dILXahYhlSV^~xeRj:VOn]eo[lbhhVpiSQZT]Q_RYY\ZRdEjZiNfOfp[]qn_DHgU:rzXgTFOhUdU[a\XY}_Ia~_QkHK\d_^ir[TPX][mllY`XZeHutMQSgRMOVVihbJk_R_dXVnUbPkTyUfarPJMxi\WXRinbhM`qGVnYZ[PerePb^\:_Lpr`SLN_^yO\VO{JNPpF_cm^Vkj\dUUGkfiUv]ZZL\WsPbN\\\PE\blxcMljqtDQhULX``bt\V[lbpX[JtAFUd?dLTjZm]8`GVxKscf^WNe^jkXZ^tDhRYg`pR\k>^litH]JmEgKQkxaUPguKh^O[]PYbcQdXE{_]Wb\lubpY|ivK^VVhQTwUTYod`[Xigm~[ZYoqig=TJ]mbdK~hc]fbP~cznZ}g[[k{u_oZYXZxh~W^~Rka\^X[Xmpk\UyesQX[ztj[cN\jIke_G~rjPdFkj{[ic_?NRDSgkiMu=`4ceEUZ;pToO^eDV}D`iUO]$s[JSR6MgvI{hUzBkFH]bfcPN;flPpMqpbdRdGZhckUv\cVaXXL7K:p@wfYR:USV;_HpmK[`lYwI[_*USPlf@M7Z`_ee^RWSL`cZQI=tTRnMq]GRSTxfsOY]M~XQ@TpUfsteDuLrU[TZQ^Neoc|v^[V`c]_YjlkM]ZmNoa]JkeYQO[RX\WDb[ZfsRKWuOObS^VLcWHefY\W`QpYTi\WlQbrDaet[iZX]XySNdI]X_TW[[h]sUdhTSONOV]MOAebQNT^}_gq^~B_ZiRP[W\av[dhY^AkUZ]dkbLPchxTOoWZTTUbXeftZMOUiY\dZOe[rYQPWUlObe[NjW]dQ[_`^X]\UBCJf]~4r^TNm`bPRmuVBFX\h]is;iUYaSkjYXF^e_ZfWMn?KsJPTm^gH[<]VSYl[ZKLXzo\FULxpa\_aaM[uP_X[Z~\wcbKJMlbbOdfMxWX~\h^WNSRU\eWcRYZUb]|PYjSP]g^OSUtXL\bZlDvQz`dX^Ap]kG=JHdASJQnfAL5oTBN\aaXZ4FCe\g]kKYMRmavSc[H`aMIbg_g`ScVqhWFlPMOZKTcwWK_HoZOiT>gfULI@oTb_TKavIzRZa`LfdYr~YQNZ~P]IDTW][SS;PS\aXYiSOa\UeQ]l\IW_T~KcHO[ZUf__P[o[]eO`SYLFiHT^BPIWX:\RWR\]cGI]OSS^tr]_ldNiGg=\UuSa^;OIkWxVzIrs\[Es_:ZKdSZbSaKUa@\i_OlZa}zrQ^o[ZZ]hdVOsaQOY_OwR[]^nQf_shOfPPXK^Z`SuZaYXQ];Q\e]\KM^PcfmRXLkNTWWbKX]elPUb1N^eu`UPRyYOdBO[icRqGS]RY``PSSVEmmj`dYfcg^[bZW^SSIWVm\fKqvxfreQFVIb\CO^BVJbRLd?OIWZtPaDzUUKaelD`W`JMPIY[eRIxVoqnMMQQUYNhO_bYa`\YfQ^fdXKW_QYO]jaUYdZ^\^^oHlTPUoXflJS\YUZK_ThXUbJtbZqGWSdH;edkAQu{wNBHQOJrfMV]hIJ[IyW{qjlqZfDTPMXk`U_M`MWUZOUWZRdVjplxdbPFYa[Y^}aFo{i[wr]c_^`T\nJDMYmMLMf^`YWEs>cDaT?\kNA]\_zZZNTeZwTIwQWeKVeHJO\XUgK_XIZXiHGhZnPl_`:jlhMloETUfk_`hdlcYN^m?rurMTngQHagH^zftVOTfblggOMcefLf`YVQKWZOqfFX^Y]YUUmrN`\XeaHdhfemYUTIWeeg`XKN\icoDbaKFBU:@NRBPLZ_WSLQ5HQ^PBJSP\aj7_dKbh:3B]QK@UHHK;=oM`X\WTOGiUJ5fZK]GQMTSN>ZQ_Kg7KM8O>XMG]h=vMHREyi7[Lb|y=]I9_EZGYPPX@TbReQliOzRhu_`HxUKnUFdI]QHSrtnbnOLU^c[d\A`AjgPgFnDRcg3arUQEPHZ^_k{[cUSZ\VojMvOPKz9h@tKXS`a]]IhC[`eRhROVDNO/M\aZ?dSfoCUQf`5XSf^LbWJJikgVJcELZ^^Le`kc_TnbBBUZ^OKHNt\DRWd|jKMLZ]zmSha^z^OgXpQ[gRBUok_U^7L8ZK\ION?\^ZDUfeRGOa`UMcCQr_OVagqTKO^VpSbVJ`LX3[lcVjj^]QfWZeYUmlaueUdOQ_SMEMdmLTWVUUkSPr]QhSXSVn_MO[bZsci\`pZ=OgYWmRPON`GXZU_wbxZMoXJW9k_X\aPPRQnQI[\ZwkKRh\gP_b|B_kkkSgfOad_PmDWVRISA9^yh_[`UVXN[][FMT_hdEVNj[[NMO]nRFY]^oWiDS^IYTJ{h`IeT^ImfRa[eNcrSbOj@WTXLVqHgUpj2jMf\P_:[Cn^GAbY]oaOz_EfNQZTX[bP\h[4QXe]OYtfoGTnM\%cfqKh^^qiNf|rHhLOd\OX[^nWVNYxXodW_cFmD]E^SVQ_n1Da^KcM`VZgBeTJgCUW=\Z\SfFqY[p`l|hU_RNWp\O[[XVpJaZbQdrITVrjr\POw7CdUhMusZ}dsataEh?`m}_?YPcQ[jR]_[\a[E_?=]YT\ab[cIiXpgjShMX>WGZ]_Zwmv?eLHOXL7MYodvR\?TghvXXg_giSkrbTrblrs[cfWlJ|^eiGQfn`Eg^Yha>jdbqh\=w[edP`bbP_ngVUbYfTMUb[olMTaM_S9k^mED\mtU^dlRtT^SYZZZe`^fSOiZib]MeQmGYuHXYcqWZ_aZn]Wb]>Xd{X]`VUynqvfUKYV\HVwbMl`ag_Ue[bRJSYWcXbqvM\xdg~tEcnr~8m[dcKgxswfzusq_=9~o2Nol|_`g[moWyqQcXTfe{\rwwpkXf^`j}r^xO^}`vgH{MWgh}gZZa[awsWhmXmgp^{_zbN^JohUmaUplofbsnX{Y\vKvh^qohl}`reieecui]^|t}xugmy\{iiUntwfs\mf\m^tmpt[i^ZRORnu_WeNYPYkZdakYrGveQK>\ntdYf@ilnji[^a\mHHwVR_iJUiYgX\gOVTHce`e_ICrQf`OHCS\`caG9gQRCakUXKSk`hosRSERVT<]ceWJYgJfXeF_JLVQRfkBVXTcV`Z^aIcV^HQXodPSp]JNlWNTHQ[cX4mRn[YlnlctMOmrM@yfJQkR|B^W[HbX|a`VdPa@[MGYiX`DWcZebiw`]RhZ[]Z\{Yl\\TN[bd]HRafaaboc``i]lTWpsa|DYrotCQqiSFV9V{N_J\z^DaklccRP[lYiSHDSbYWHS`PjhZsqc)=NeMdvn4WITdRK~RcbvfA`UD~UFYM[;XPF4myU|XoIbJKM\l>d9SV]coNgOVvh@lgWuD_X\gn[efYngi?ocCdOdrcgeNB`-d/ROuQckaR>wj^]BOeBx7[E_ULVPFFSY\N[j`TFmLZshqrhprVxqkmgYiIdndFNkV]w9fpQhXX]a[OTfHO_T]aZHrknkQOS`QXP[P>DVDJ`C{DwWiZ@Xlgwj\A[odFLa`Xr{]RxKi?gO\uBJ][IMXi]cTcry:hVe]M^jNebckn_ZX^vJkOn^i_A^`]EUqxU`Xl`U5_w^MgX^SL[fSH[Ml%i\PcKQR[_0njXPxXc]VBP`fvcagPalDRzm{ajS]hYgTBWQcM`WtbX\PN`mPfVdIDHMUEHVaetTo]ZLbkXcQLXZ^PxQ_IWH\Lb`[Lx`YzegaMdIYj6eQU_U\xuU]~f{/eVObRegHYD4XmlDdj[PigGjfHm^U|QLe`dMdkgaWeV}h^dtpXZaURiQN_YxT`Vl`UC\xVsh_`RZWjTWPahSVW_q^F[WulW]]L_WeMbd_`7beGZbS^Zb_JWdTf^phjZUS`a[]TY]TQWTRZ[hBPR?FEN]RWcvG`hOgVdgNUTaONTYUxfYkTAhv[[K{ZOgY\k^hZTpbK}I]or\`gd\UR{NFff]fZWLL@aH`jF]^9dfaJZdKNvH[Yb:VSICZ]ZheDkRMFQMZWQcN:`R[Miil```ZZV`OSUX]PAArGQ6b[M`PXC?^pohVYbVZXJ_N[sCrIHGaHSPCU@M^mSXLtb[RIljRg`WMdB{lM^GP]W\|JAXa^VQXNe_RchaNJfgnI\[\R?C]LkJ`kfiMOWagXlQR]b3TPTaiYYerZWep`^[gR8_XkLmaMVXdQi[epyWWklY`b?Bnb[RwTgYR`GRM7YlSpTP8{ZgJ:DTfbRUCJmQpqb5e}c^EZzD0GHL?Yi^tC^KOsIIWKBQgKq~D_q]<;GhW{SxY`}cXD_\TJmSs_GzT\VP`N^Z[Z`PWbeZgVn`cMXbZ\JDfF^TRYSNNcjC`^jG\abad]QPpZk[O\VY5_X^c?N^_K^ZfllWX9y]]AjMZnV6JbfMyYLFh`[NuX0ZYBnVIVSODc^[rTO[Q]blIGDTJWU_CZZSSZGTD{[T\6_uIN[?[R_UZSAgkV]Ii]XgeJTbY\Jf[bvq[Y]augo\PPVYJqgWN[CR[bZ~ZSQEKhXs>NLDPaGZvGJXfk][cR[jV<_YbgZjp1C_m]?n_VpuTHHfY\QUXL;gLaSPeXaW[aZj^USZ-]^oVKjSN[HmgMZTdgmW]ctQ_hmRHnZLgO[ZLXRaKQ_IbkGZL[r^[ayhWoZdDAYKiejMaPUXQ2DS"r`^POC\c[JObMpTmHS[fJG``am@EQUhk\`XAJhChic.PqEa6E_phPIJAqNNqhf[GY:oSScFV`LJ/BZojHPrn^]Lf:NYU^az^f`PMj\]sSQA`QmmrQ}oTR;oKcDq?XWhG{tKPRYeQxq^UDl=d[l\3RUh`bbIcVJwqrSh/WF]bCInUYjOXN_qVe`lUDHMWfVLYYb^peXhYWmvSitNLgr_If>_*WjcFGLd_S]^^wUTbvHb[[YB?n]bM\`KP_VQRrS`RP^FPiiN@avP]`j@OLVkaWwUY_ZelSY[pWWaLU^ETQrzskgX_VYZiRKSF^dhVbFc_UoTia]^k_YIaRN_hDkZx3[l[pZqS[ZAzR`ilLA[F^;^`=IlAZEY]XfA[afH_Ku]WpMMNJoqKZGGK@D_^V@LK;W`Y\_PJITmGBQ~OJKG?ec@PDCRYxqVWMY9<6O[cjJ~jG[PV{ZWnQbNVKSFNRPlWCcW}?U\(U^G[crg9_hOBPy`Qf_6mmNdgV6mLcNS`WOEkOX?QwhGnRGMRFsV_{Qz[IGUk=lZ1hxXpqh?aKquMfPlTD^jXIk[W[^H`\PD]fk_]h]XTIXO:fbEIjMOaanpOO[MIDGF]OjKAWmRIPMNbUp]y]cnqHcB`SuNXVTcRezXM\hUmd[hKgh^]>UgEOYWTuJKC]dknddXugURPa_]POY^KjGRN\TZeXXq`YU^[OGac]JUdd_`T[kcekqXg`^uRZJmJ_QC`seVhf][mXfojR}ZtTcR_Han^ZYfTadTX_ZNLk\fugaX]ZiYfca]cYY]j\k[]_VO]c\dRWNac?cZq\IQYbXXaZaWS[_C_[Op]imjDVZW[nP][bE[jMQRIX_VYkUhgVl[ZIR_mSSgVo^pWeURakNnY^UbM\l_PMRTibZJ_\SVWY_SYe\egp_gWXMCTTfRY]XbQjdsQMTY\[S\LT`WZXZXhgbTT]UuLG`g`NsfUUYQqSj[_Z_`aO`hZlQIVPYRssuZZ]XGW]P]b[XUPf\bZ_afa[Z[bhQOUW`pV[mb^sSTN`_I^rq[DPdRbWea[ga[gQ[OHD_hSdXSQLgTDwi^ziEtlm`b}Kd[hfaaQQ^IUs_Tk_NRa`gdUfnGeaQo`ZHXTJRZZeINJMYeeMr>ILVV]X_hL`JQ]jUUI_ZnOKGbaKW[ec;V`NQXVP]L~_ZnUREl^X_TmBZ_M[Q\e[PfoJcXinSIWYhQtQi]I^[]P]SyEJ[RieGWn^kT`HWPNLYmXCnTWOSh^ORbjBeI@rPp^husr]RVPQPVI}f_TONRW`KRmR^TrfFWT3^fSg;cJBdGat^Rd[X[FRZGVWQ`Z\^]`LXZZiGwMOsJh3M]V^R`dapTOUxMhcDNPiAuKjIRiLhOZ_`eFzOWT[T_VWvCj\QC]hRPQkKlOR>jvAOld]mPT`NdCViMOwQqSHTGTZUc]N;=YX]ZOfxoA\UCeVE_U=NYpYd_O}hiC]bQnWTmm`TYqaVhbS_S_Dj`yb^ghtOY\NZxiF\Rc]qUmULcfWmMcH`jWscOggndXhWXMKfdQaRW^TO{hXRNZgS\BTYRVZPTRUpM^gNfpb`PIXVPZcxhYKjXaTT?iuYbRff>UYTp]WNZU\sxhmlfaQMekOO]VZTSr]~U[SLcS[PdezS[VIq`PpkpQBocJaiZibbf_]jU^JTe`N=kJY]_SXT{\V[bGP@cUUf]js[bZKeSDeuTi\{[dYN^PV_EzNO\Ybci_P`V^=eV_cb]gjWUb9^^znQNea`UQKuKcgVkNNhaGQIW\LYXVhVNNN\vXrVQpVZcir[ZGS^LVrD\T[S[^QQf^Yz\foQN`dY\Pi^aP@tL^RXQmRnKfWhgwTcP^TJabf_bRA\WRD>ZUVXwmfHKGPMq]cYIZTkyfTpftqQQZ\ni}[s\UIbWglLV[pm`YlC`MWhRkJcn~^RaqkdS]XcEJXQ[WFHJUSfh``Z^PZMchgNUZJGFGZg@QZZWwG^jW^`[FNqhkS_PaLWZTdPYonQiXLY[[aLL`pS]Hdal\tP\TWQvPNaUiu_G[WZZoi_UFhiIa]7MRMPmMTSx^lWP`NSQ`\M`KabWonLZYcXr9Xd_`_hedlJT`R]Sw`s_skr=^ggbSQfR^RSIsWd|M_fONYXHagXZlAXJieaFjQensWX[[TkcTPj[RhbO}tei\qL]XWT[XPJPO;OegF_bnKZh\mc_kd`bO}HSRXdqFcVJUIQQYZCK_O|K^__gg^pmLDYrNS_PReHhq\\}`IUVY_RLiSQ]|hckVbLE]^@^MiVGY__JX_SZV]NaPfhS[[]\MZVWa]dlVh_]ZdceeS_``jXXsKP]f\KKKZsQQlKacgmVQoNuQSXNR{dGwXdlgbkEXJO`~VJh[ie_ngrcm[kRX`go_[caWPkbSITEMgl[]OnU~iJoG`gZr-FLX][LPXMW@^MPTorQePs;zWYtJh^ZcdVufYdalcQylcteXj_^Ex\ZIeg_emO9[HwtgSaVjfTXKnXpo^Qnj\^^`xY]JbYJpwUMSkoGTeVkNnjhb]O]VWZa^TyTgUXKM_>8dm^WR_=]VfaNpMT^[\VEhVRzjzSH\uHP_^_iPFSdjcU\G[XsTNOncSYkHPW]Widm[\wbN\VW]KikDCSsNOdPocWK?OVUHSPNtMPTOwV[HNLfnP^zhDj`gllKS^_erT]UVSYeay]pnZQcO_OPRS^XlZ_m`0rnbRY\lNKV?DSTqiVNW@Wi_n]c[_VlYUpagSHTRTXeA\[M\DXGLVlc\UBic`LPe_XcXZc[ql]CqVifUi`Pk>KhrTRO[e_b[Y|\VznUSXp^mSSO_\P_COfUXeN]erUY^TNYYUKVp~JjXqrQTcW\cB^TdYfZZ\VQ}f_iX^]NdPLUN^LiS[^>F_~TZ^]pHDBBOMJlYIMMj]QgRVG^PWe_Ry>]B@b[ueRdl\}SXnR&teQ\c`bN=hH\]nZYVWdFijvhcFi=yOG\lcS>DOROW`P\XgZGFST]3I;fi{]d;VZrG<`YMlRNKCNtIfWidE`fGQa_ACLTP]lk{IM\VwSVhYPLJBe]Dv\USdaUhrVDEI=O^~VMPIhfM^|grtHWHVb`XXJbY@cPNlXhZcfZzf]yZ[YLXvaScKgPFobDENsQVPTah`PP^UfBnWGhtce\JWp]j_cwRof7F[SzqKVR`O_SkeZY[cjxZ~XXjQMlaP{Hb8O_QmOneIhr]vA_N=QiHeNUh[W\MNckmhL^jckd[g\RZ]aMM_idlJXq\YGNUIkSNRLS]\RFUT^\UbWofcHVTdRNe_JbW_lOqQlPZ[ZMa]eU^`deVVvLM`\qec]aZOXnW\_WQ]\gjYhV[d]`ZpPRXXS\Q\W[MprdUWaC^NgtYPf_gmaa`_UX@kaLxZYU_{aqHbcdeubXN]\mVrxT_kPhR`mQw^_nehSRfh]dvFdYQQmYUhMaXTXZUJg{Z_Sacmgf[W`Cgstj[VMiWRbYSZfDmgWgS^cKbOPWwhEFlnW[oj]UaXQYPXfE\T5JYL^n[SQaTiiWTA^NKaZQLvq\MJYPokhXbWN]Mic[VGsRi`XJS8_s\\[j3Z\heJY\VYrGOPaIWNdWWVgdQV]WWVkZX[`\VTnoXkUruVpZ[b_XFSn_bQRmT]kDkkqLf?VTPVbQatSqAY[]ZvQfX[g=LXgDbIUXeFkcFl}vOPZ{faljHDCIiKXr_esVoEQM_U:`]N`zgkXTlkaTeLmZCZUzG_ITvn`jHdq^k^NZFAV^an^rJ\gaXu_[cRqinPKSY]~rsRlTjk\eUUjaSqfMRbMDhtR_W`LuHxbIcNpZz`m^YJlIa[CjNmjkYSbnKiaGLKkJ[PV8^L\MTlVWiU_UqN\K`^\ScKfUZaNRTQ_cSTQbV?9ar]gsLOYXeZXUnScfLSgWPSKZZ\cUX[f;PmPfP^\Za{KRQPV[JN`iUMOLebWtefTcP`]RiE`^hUhZGTp\TK\r]oxVngK_l^_MPXhYlZdFiZepo{R`Ft]lX^\gRYq^[XZk\APrSNTmwe_kfLmaW|NYnoN[ajddnHD^Q]{R_hyaTOolS^b]]ZMe}UayUeTb`JQaZ^k^VUrSJ|WWNiU{dkb_`kW^cH[YjZcrbe[YXZ`NNbcEGZ}TYXmeJTa[Nf\}tSXXq^TkcetQbTLsNWSYsFkcievWWIjjpogZYb]bFXjxgebplT]\echaBqPtxbhWade\ZE^zOX]PWVvmY^gYLS\fGZfPT[lYogW`MSJVGXUAbFIZ`e_QbhQR9pbdRLWZQtRVK`NV^Ul:_PeMPTUW_ZMnDGOHWNc[kUSNUe[Z^DIW:Sib;N[VLTVgWbTQZ\YxN^uCGZ_^\XhPZHZb\y]KF][bl_SqkgX[\V[Tbj[g^dmcIlXrodoVJJb}iOTke^cWScaDIbPJvXEQOXi^o`^eH]bgGkmHWRjWnXV\\`^fXXe_}`\ek\imiKtLa^v_8_vehrUkYdofb^^hwqh_lThajNRSOmd_aSOrOeTeuNnukh]_lyjzWHd[`lTXew[ekobjRcdg^onoVPbVQbVT^QrkP``lPbYdP_GV`FUiXVb[Nal_^Q^XMdzLRtVbdJbbQ_YvPyrMdf^SabRO[PZW]nVjfjvinca^i_IVeRj]T_W`~PaNFR[bjkhU`eQ_^T`LU_uaYjY_`KXVXOkKawmecvLenaHe_`buF_cW_Sm]dVPRX[SrKQrqTpRYXZWlOgMebFMZR^IaUHKFcik`iIhb[kE[RXa`[`/MYV_jYS_P=VlUu]wK_GsJZVQquDZTDrpI[S[QOJbS|rs_sPP]ShuVTiKqZ^\VLgT?cUpJXiNKdEgdXZa_raZ^YDoW]QM=`kZ^jlLap`YOdXtGjN\scD_m_haRPorXT^\[WZY\KOS[wdWh\QgfrcOSO[}\]oC\QMHq[t`EdQ[h`dcaHD\xbEMPMO[dbOBV[TXPPpKTkzRMWj}k_YYJhJ}U[NWGJMNeWjuHdrIXOXdi[VcMNWkUsT\oM\EDuS^_E^Pldbe]REiT~\HVomWJX``EAzYbWb^c]R_LXZgdBJ|cjSxY^gL^gPNCgNbeaXyTc\O=F[NY]icalEAjYS_WjLyRuYTcWSTZCU[GKfafpJ;U>INXQa]RETO`?\X\Zmc_M~Ppt`SuP[N]alc@QgaiSlRUW`VwUgeeNKTKP~fjlZQqQk[Q[jUZ\PZnjj`M``g`SbSrViN`^]XSOYh|ZY[UlcNJmKE_Tp9UiW[cXkbJJuVO_TgYV`jWmcVFOKis@OebTVZ\a^RbL]eQK^ON`JrS_`_LNogeWQhfdPIS[RjKZVTNX_be`UN[n=alSMfoEUUR`d_WTe`\YWCRHLXArXjf|Seo]ZKdl~SbSW^_mjc[AYTV(]\R`eMIgChZ{VWtXfhA]:\ACfQdXc\QecR]V,ck\zTe]ZU[Vdgw[X{Bs^5obehRScSmydb\jdbwQPCui`gLT_lOfbIeLkZaoUYdHQ_T[kkW=bcVeY[\UhepHrllYeYZYKdRXbWV_aM[F]VYtU]TRW^[H]Lbpf_3K^gZEXRMzjZh:OZhUlo\W[?mbZ_Yb_X]sbOPrpxRTScfF]epSNfe<]F`JVNamYkOhcTOKOGSCOWzOJK`dcb^]qWNZ{VbhKh`mYFWPNTmb_E^_QVl[SBcdOe`cHebMWmVK9QcoTXn[M]TYNV[YQFXd^DjrW\VqXRCVUaSeXh{nEW_ib_OePmi6TJyG^lGs^x_F\iEndaid_Y\WZ`RB\TFWX]R_i?]OME^_[\]GT5SWKWO^\EYGmloN_ChY`TKRWd\SQMdiyamlwUfM[`ZQJ[^I^S]i^rfcBbSS`amaH\YTl`eQRS|QNgKxXZ]V}i_LW`[KZLjL^gUhQda]b^a^M[HWjJZTrKPWV}YKeQc[j\eci\e\CTFSNiZzmZ\P[WbNoAttQYyPV^cRk`iTpDSXmpdVS_jbHf[|VqOP_GiYHUKPuojLejTKfSbOVxH{MdizUlT_\[_XZhb|J[enAEt\_TXgKvPDW=d@=NRcdQGL]mGPSS^yQAOZOSIJ6fo_~OffWGcoBf{CMWTE|EKtagZSsWk@IKI`]qgD^L[JHQ\[M]TM8^KIGcILOplMYFyMScI|h\]Zmu\|eR`PdmycXO[q\Za>]HYu%XdtR5OgUyAozOQpWUKTU]_DacnBX]a^LGuc^EErQ^8}ReMipEGyPVfWLbetXjQLPZCcSOFcH{xVinNi=LMmOBvnUN\ehIc_Ui@9\KDhYH_jXcFdlui\KceY7pi`FZSMZdNhIVECSXRKcLRAoMIZyqWmL\IVV\[UsmeXVfCQ`cjRl\P`RWZMZVZ^|pXGmJ_a\dFZU`]^muHrmPtLfmbMAS@pnMObfTkOZNTTZVYOTSA.ThoIHW[^fbTxP[ZkJebYZVG_OE`\kmaRGLgOcgcSSZeZG[XqaN:LNeiXGuVYT]^vOcr[OoIiiTcX^l_JTPcd~`Y_Yojl^VdY[eSUL_M]Pc[YZf_TToQfVZn?W}_n[LbnZR^^DzdiKWIXUJOnV_NUR`JNPaJgXQVUSTagSOb`_^iK^hLNSb]ZYMVO`YV^ccUUYaYTTXdXN\v^RJfim[MMOZTS;UZgsbP_FU>jZcKufgKANHPLEZ{^GdlWM?AqZUQ|Z`XylKOh[c|\[`uXjd^^`NoWYZH`d_cPMPP9rXTZPp[iC]usVgQHGfsQQsDbF`cXzUscb\hYU``PW`SK]]mTSuae[CP}\OZ^R_jk`NpvUT[PTYfYdONEOXYwXGfR_wPd]cRdeZQNOT[SaS^RrENmkIGb]Bo?Sf]OHFRtndqWqZeMP]^XqfNV{^dRr`P_b]YTN\ar[jij\`j^f[^ZS_W\N\]^Sl_Z^YkfljjXNAJJb_Y^qoP[kP^orjrbV^R`M[_ogXf_zQ`aat`WgWJ[cPqZnQfc\TP]SrXWTT_P@tivRU[IPFiPoLXQmAGplNUaGVtRgUXYWNFay\NSHVOaVtSK^iFSuR]GvUgTalaWXX`@R[_[eTh7F8cbaPdRahhR;WI]CClQxi\Ke`AZmTM[WNRRA?NaK]SzcWl^djX^dDYVXnhzLn_z]kMPmWZgVcYZ}gRiNcZa\WR`bsZYZU^aOr^aRhNRQsKVTeYsE_gHl]icg_DW9JYMicah`ZbdqbfN^rWVNDT:]jQdOWRWJOTjoYIKLVIWU^QeiVPNiRBN[hdGRFVSVQ^gJZYMhHHjP@KdNVqX[ZSZKTCeZ@gyWHPWHfCYOh__QGeTJk\W6>O_S_O_]c>GUjFk\RTeKEm`\CQMQibSR]C^bGZX\MFSgMSJdOS^Ru^>>\ddF4b`YWpQl]ORUXrHU^fNiYZ\]\Ke5XqH<`NK3_KJcrW2TRpYUIIkYhI[RgC0WUbXr2QF>Hr\OPicKhZ^asYSb?IduFYYuW:0oQGXeWdP4RhPOB\yF_`<\aUP_`Nr][M\KWRPz8JMHYbUOIREjRfVGMGRICLXzOQPbP[5\}dZSQX\kbdXUu]Zq`dXfWdaDMJvXwah^kIXNQWNWmMx@>cxQNX`CdndUNWVTgUbiUQexYI\f_IKXlQPXbWQOb`MWjZ]I\NfTJgzRGX^_YaGYVKPwlUcvWLXzkUDj[iTUXylWCmcTTyVRcfc@tMDrneZWc_RpeY_mJspPq^WEaeT[SMzzTNKka`L]NOeM]NW[\SMSCdVn`YYgT\`Lm[^Z[TQOUp\\dZ[xihtIlbYzlO2Tl_JUNRUMWccJjVOo}k^V[[lUne`lWyUgYXCgcgYTObWgkY[sSy@VTjam\~WGO?hRVNVZ~[eZcZPT^T^Ybp]@LWi9Zqgi?^LbLowBOG\P_^dLYMPVIZZ]eLgOP`L`LacjLhW_Htl_ioxQI]\TsAlJglDfw^WLQflML^pYWmhdU[irQWybTRbWQM[KcTJgNW]aXVXjR[LbSVhwU]b]brT]ZRk^l_lSK?jZNgj]e_XYX^LUNaUMgi[Pd]RXfEJpW^T[DGKhIX]ne@V_RS^Ba]KVVeZUZ=^OoQQkt_cUPRQaTWffTdXM^?YhM[F\nf^_JRXN\byWCv^W[UQawNvWb]Rk`_caM\WIeJkGD\PM]h\PXbrkaUefeue\dI_iR]lPfu6kY;]]YV+IblXDHfqkUSLfLVWeYd[opWabQNcUjD@W|`bOIcXe=`gaSKd`KArJu`YUT[_PoT^ZcmY\dVw^nTqUyTVMWDPNNSO`\Z[OPfXX`ScoE`dfPfrdV[UgyZP}sjo`t]hfNYNdz^ZhEEWgikF?^\zNdXGZ`WrRSEXiXJX[ZqYYP|JWRMPWV]xVufRS_gYJQhez\TIabEIe\TZ\DgdRmL\V\eYH[ciYNaVQ[_\dLdEIf6XMz]^fgzRd`izSZCTYWEhnDIXbpVVSNKOIVjiY\^UTxEJUUN]KzGKzpE@RFPb0A8[hbKeBFXwY[gdqUEKOZPD[XK@``dFJNWLRgun=oRTGd`U?ZJ\_IbdsI\^k_]i^ZQgYX_WYiI_BQv\KchQr|d\shg[eCZPb:MQ^X]aHK[GHTRbYNEb]T_KhJURVfV`vSE[Nf`g\Hd]bPKjVSa^duZIzOUS[Xu_rZvz_NP[o\H_^PeTFUbiUSWRDaNUcVU^HXT8xUZdbdFjIgQT|ELPWcXU[BQL_L\tD[WSSiQ\fcWU^YYZMSqYc]Q\\XVSragZLVqLi_r`hV_QXSVXabdUXU[hJZH[UjQ^Ikl[VSmTRGOSN2]LALPdbqT_GV[XM_Z\N\Uno]ZajKRrsZNQJ_sRWTY[fKZS[sY5KSTpUV^m_O[[OFh\DIMm[JT\d^Nc{JLhqNSV[5MU[iht[sf[aSOZbGqUWpWR;i^SCik[X`bbW^FShh]W`SXWnLSS?RcWTQ_T^cHg]GI_glfVUahKNyd[XeUV_P[cIZOwb`GbqTr@gsp`CN~_TuuOir^hOLtHTiA^mszp\VSCj_MemkOCMM`XWf_lKmc`WMK?`kcoahGaR>riARcRgRdlk]Mj`PehqhN[slqSbTXz_}^m_oHYukWcNXcZkvacbTNDgvmTc_}OKmfcgWMX^\^]F]DlcLpZ\SdhIxgYjzLmY_]f]LL`]q[JqXeaVJW^jYHZk^K7`yzb*YpOsvOlawXyLQOT[yEGiOmGcKMKJcFOHQUbTWOZD~I{Ckc:GKPQ_maLXUUfIOo6QUaf`r`IE[Xbn`]XU[|OSF]aKi]n[dT`GJuVPyJ\^QuOIL[ZS\cRZFmYYNejWaVFcLcD\~^~IbPm:_f]\waRnNI\ca[Q|]aQhxN@S\SHKWOaqVGQoQLTpRkVV\OZTEZWWdXViFY{jbYXXQJVLb_[hIUfSBVP_KjDOfYBONjQXAVaBH\VT[UAMmSX`K\;VVRR]X`W^OD`EZX]`LXS>RAW;MVYTaR[lU]LuZPORgQOZVQkQaaOj|bK\gRijd_jITkVG_Zd^buk`YadL\oKY\^WTldw`^hPVZaWmZ]\gZsTY\SecQw`SZX~n^QgjUZ_]ObnfVCaS_Iiwdghibdxhbb:mOCeL\MlhV^iP@`^_GWPaeiRiEKkrHdOZU`nMdLpFEKJIg_I@e{e`Wdljk_PmwNQaOR`8lO^LmIVGnaOV7XMeEhplLf~WXY;]\PZeM^URwuXJ\`RhLPYGZp^igH_CaieT}RZfRVk:BQj=YVgRKWh=WkOaaTXod`jxKFRTQPUZ[RV{Sg^XigSOYV]PPXR_`IfbwmfbhhYOPhflUfNoSfa]TeTckaXVhseY;e_{WjgW`q_QcJZeUND^G\[cOtn]WgMZfcU\@ssIXL[iSel\_ZcR7rgMXDlUdrIqag]Q[e]`m?MJPE^dQxR[RXOZPZTbckdfiYydlhZaU`CXMp^MN`ZNYHXVoaKqqh^TRM?QY>Xeb^Z]bo^>Qknw`qfa]>TWVdQW`U_N`XbQLPkDR[7AE\_iZQc]R_^gNZUOG_iVIt^JnjQHZJciS]P}Qd[Z_uP^Z4XYP\a\X?iQ<[mlDM^]tOVV_OySEKW`[\T}PWUOQWzlsmf`OfzVA}T^anaZhc^ZefbVTda_KOVT=L]z:XfiRhOY\cniWpj;Kax[bTciMWiTsYpmUBFbLK>`WMz_c[_TvTJLlTmXP[kfxSANTKFkQ}UUa`fRDVxdPHQyiSEcde[[`_SaZm_JOYf[hjfetgvTYFRRO\3chu;a;MuCPg+USEd^Xj`l?Lr{FO=Vi!\^YTV`kZUi_U7=S`[dAW=|rVVBUP~obs[OhLYkQdPa^Zhw\4I[Zhascb_rEbhm]YehVH]RZTdocXfPMVkhPkb}qOBrJ]WUQ{bqi]_VUh{dsRZbp]h_R`e}LfGjt[P]iSh\`QmphUlPtSKO9qd^Qf`c[\\]_Ta_qZ|UidjZPPPWZYcfb~cmX?RNeu_kjuVZmXXXfLVoY\`]TfZ^]eXDo^VTIQmVecKOTv_bkdfXaP}rARYeXX`]Lir]^vQsYSbzRSlY{b>T\FqKkt]^^bX?QE\X[rcp`hA\Qc[Wg9aaXNWW]s]_f`PebMZVIgTbpQMXRFO\gM[dcBEVY_Nb\[XRnTZc]sRbFN`^\]SmehZgQ;mUoVS]aiUiQ[NYahPxW][piOh`\KN^\beIUbak\TNSSxS\oKT_=dNodF^VodlYb`[HUVFi^peWYoga[c`^gMBRdLY{h^ThPYNfvM_WZcGmeLR[QrCf^e`kWT{VXYvGV]yQ]L^\dd~JKTbN_VLT]uP_dT]{WS^Tf\cUSRKm;\ZujD[]si^XnRS]qRPWDmJm`c}^bVVW]XfjpOUaznc^lXG^~]m{UGyVsq\\_]QTQQtaZdhQ_is_`[j]\q]TXMcI\PJSWSIL^]qIWyWTWE|=Ud?Z]a8aW^\u`qRV^>OXbZUOtYRsvOzVdT\vozQs6FjMROiOftDXuNY[M^rW^PYV`]GYgSH^}lFRIYfk`fZRRiAVVN~PtiYH\bYQeZXieUeUHOegoPrk[cfVuSSU_f_IMpK_ZRfXY^h]SePWFcdR>bkPkRSHaMEqQbgb[dmpJSLMvESH_qUdx^r[RZlSd1wY?T[`iI\QZraKTTAdSRXQqoYb^YdWp=^Vm\ILn[hbojkdek\mdO{MMQSVHMfZ\c\JkpWjQtVMgz}U@uEsy`fGwwV[WcQVB``T_vSYwXQWYmojhR\mqEz`onpo=g5\ElY|\aGjoWfiMRSfXMdWZWTvNf??{D_hMlFwi\a[YW[DW_R\qQWJL{WP`R__KY`awR\fTmaWx_OLo_fkSI[^[dRmZQVmWfIFWGHsWfhZ@p^NUdScOFoZGmaMnwDc]Z{fRkOVGZVKQMMIRhbLbLRNN[^[ciSoOSXsPXaE[d_\^\maWS[3UFQDXhQlUh]\XSiQQc^TfL]LZmvKl^XOuWX;\JiPLJ]^bN^FVY]_~_vJ`d]L[a@C`IiTIZ`yIN?adbSVQeaIqoaBSDBVAC6DgbZa`ZhMOgThZ_H[QWgfNG\EOqwnp RWcatpOGR\W\HmIXWY`Vl[2sYfM_aboFZgkoV]IPl`SUc[LlHrgeDejcacUIV|jzWXMT__[^MsZHZ]q2RpbTYyKX9TbahH]`OkRV[vMynoYcSC]N9JV_?V[R^VhxPnQK=qT7aUUeS?DgeBXSaUAMZfpJm~mghkLXWpVTfdlMYJRUyRNFahQ]naROngHLONWaqhVaT|a\Nbb\7YBD`\dh_<_Pae^`[[fbF`FLQpQ`I`eg_GJNM>P]Sf?dLaikRAWISFsg_[mYDQh^d^[Wz\UUn][|anNh]p`tW]\UZaL^J]iT^]UOSNVXoalUmSjS]kera\xt[m\OEbfnfQzmtnWqbXglUte^cabsWTPdPMaQZ^\ud]V`Vr`wXgWusggdxh][hbOIeddaw_`qfo_d`PWQiYhnYEaXYneZ`UbN]SYzedRYgfYZfa^kdmkcn\MBTU\cRKMxxm\gq\Rb~WQsmhxdgB?j^dAQbWnhG>GL>LMFX\`dibubV\d_O`eg_TjrT]d]VQTZU\PPJEtr]R[bg_K`RZX][YZFVNJeX{tWbWRKVXaVb@XYce_]PZWekUa_NZ\RY\YfdccOanRoX_yRh]b_]iL\YRsWyhy^_nbGKEdR]OMecZc`VZ]}a^/R^inaO`{UPZj`T2[VmS^sPYg`bZ^H=R^^GcY_Vl@m]b~NmgiST`CGb=a]bRqsUpCUKZYmN^`{RlU6O`W[Y^VQ_R7WbkaF{ZaZSSJdfj^Obe^r_p`WfHfSOAAfQQmDQLiRLYu9]gcVOeMXpTXX^Wca\OjvRVKfaO^[KQ_c<.[fb\_diWvTNc_UJmU]RiVSk`KJYViN]a{?t8A_YhocRhiNC{IvTA[X\PfMiKZGGd>MTrOZK[cSlT^h}JHCVT[^hgLpbkfVFTU]ZXXo>^DCOOg\GRVibKxXKcsLHNZRsLHckIzK^KWfUB=Rd[Q|pQ{fHliS[MHVea=b`\LPFaZs@kE\>^pd^QcWq]XTf]dSM^OMpLOeSef_e{^_1eUo]gYVVRKSTa\|WirOa[az_ge[`WvrfQ`Zga\XNZnal]fPP`Q^QylvRmodPhDUqXpUXYmab\bRorUTO|af_a8|M\hlUmb\\blmd=KTM_Z}erL]WjSbCeeYWfOrQZ}F^YTOkNdpba\J^VH]T[w[zcd~V]ZsVWUf\tgfP_yahn^JJmEd8R\oWzdSnUhIFoeocfTjVUd`VJT_Qfb:IX^feicRgIuYWUXoLOGtOwk_JrlVeNbeIWPiQ]R`wYBj[QgaebZV8V[ox[vd[W_Q[T[Ez\[TpeNRmRLGd^VA>M[|Qij`WmmbaTUQxdn\SbQsaq^cJWcXBRHZA]y]^Yfa|WMLdE\gW[bcjYMhaT@WgR^R]X^\iDZVBeP`qTy\YvMa\JL}bePhWdLf`dcXfP`ZN\YFiaRSfP_ec]ISmN_qUUJh]o\Nf^`mfmrTHR\cVdScRb`cQUYOR^RtmdO^a^i\hR]KWVY_^PgWkrTLYOqKSQ]Ud]ROSjYQ\`GZcIZQ5ShKPAblRIQ:SJb5DZU]YVdQRRlNSqjkVx\HmjilFiujNRMVYQx`YWS@hUrH]S]RNQ@kMU;TGdQaoLBqLjBE\fOeEgMc`gLyNZmtfKSRISQRFjj[qRT[`S\FfXVJP;ThEBKDifbodyNOygq]fodSVRmT\_M[c\kMTUIRgW>tDOJ[WLZ@KBV[AjFDYb]Mc8WMLoXYQe]dbIqVWWNR@TLT\alKK/QlTNU]XajdmXSmqLZWHgMbSaVMLTg\zTKjfRUVNYNy\TQRJUf_JPAi_pL\RmzibVQncY\MrSXeG|EYnWdEIWIiOVGiDWabXak_L^j7JLlbfVd`rKlaXRaivc\g__vRSQamc_WR@amdZTXcrLcIC]^TvNUMKzePSRD4eckR_`c[ZIYRY`I]U\*alIlgabYU_SY_pcV`f_KRoWpSUtkTIlIhS]ke{RiSSO_h`n^qMhU\UKowdeSPhQKGYWXX[eaNRiLdWr\_oj[LgU^d\\Dclei[Sv{JqZWRcrI]EcsXXhnfuMSfhcDVPlVlZ^cWZFm\\X]bUyagaQvSjJrUr[U`UTcUpa\R\YTckUfUkQ]YPY_NOjYU[Oa]aWg^NpYj\R]WkZ@T]VVY[]ugm]IScdiLlb\`[]bndWjYT]m`Ydnf[Ts^]LSJ^gF`MpYPdVfbWZRNbXfa`XgN2cT^ouV]WIZLcggQHleSUXFZ?Sc`ZYeb^UkB|V]V^[_fRZJnUV@WpYclRgWMkgTXP_\VPXeaXMU\ES[eU`QtnpLVUUyXO^h`^c3]Q\`^zJiWbg[VXXdZn]SKlG`ogPWGgSX]\gZe\L\bNX_VTWoR`ZVW{Wg\R`qaSIxn_[kORJ]Y|`PxSfXf\wfYU^ZjU_fV_]k[bXVvW[_e^lUXkekWfS[WW\UufMWaMi]Y`T[bLZ_wkPXFYgXjgWhg\Wp_W_bgdeN_WfQWSPU\Z\pX\\TQ^^bfk~`mXgbXUb_bRSfUUnWrg`RZa\s[lhdW`Z_YbfNYQbFR_ZdSWViTwbXtcUb]JYU]qjiSZG`hbIg[Z^^>_OVbVTr^cJ]}cdXVXMUi`isbSQZbgcajCbYZcbchNd_QgwXeV\RmiW\gh\m\aXObQ]\eRYW^1cXWXX^\A^bhH]lF\[\`U_aX\P`c[WTfZTTGSd[w`SWexPSXQDbPkYoXQ]rda]SZki]lVXHqS\PXYk^OcM\oZecfWXc]V\zXaWJWV\XL]LVt\[k[]_TnSvOMUYW]JW\NB^b]QeXi`iXV^O`V_PPomSefk_g_yPUgTR^J]c[T[Ul\XMj`U[ejee`]\kYMnSR`[[HtNYhlcVX[YJc^aXT\dZ]`Vkl_NYd\bkkaY]XYaO|TWlVZaJYkIoYHhWSS]WQg^PZN`?\o\MORT]ZrNehXaS^`Wbc^al^LQ^T^ZYhPGdS\ymQZkPYdnMgG[s_uc[W^Ya]q]Jqs^TY]cRMQj[XlaiT\b^aoZvSlr^[Ts]n[`WUsJdS8ORlf]MJLDWtUb`EdYWUPbOLZZSTN[fge]aVaX[WY\\`h`iPJvsYfWnSitTd[o^QVciiSM_gg``\UoTYm`i`S\K\oVitQV`[fNZ^]^eWsaYUHjOfLseRmjZ`MS{XJMUhLJnfoqRTQZH[jZ\FbJ\SO^lZnNDenS`PIQiT_e_urpdLZMiTfOU\cXtYUYXmZoNUbfg`OZXiYzmg@eMSUBsW|^UcU\JDXNerlZYZvb`dMSO[doTW}cMcMUJIPxgeB]YWQdY\[eJRPOEcaRw]a_Qe`OfaLEV\ZqZadB[edbF~TgYh^mWUdjJ`dQbTTLedcErPdh[RpcYUXKx]\TlSq`[ENZ_SYcBbTlG]rb`\^iUYb^gXZ\Sp^OaXij]odcnRTYrmgSjQPUV`Z\\W@[^QmS]OWUOWlPZ_e]TmrX]hhiH_^oUen[]TnP]TNbXTcVa\qX[dH\_rX:XaRawcDQ[VW_JENhvp]lxlVYy_]fn[EhoQd[WdXOu[QuSfcqUUQkLnOYlNOvFb`eVUXVYNZgbRtTeST[w^McibZK_eXMXUcPHSVjTRRVg`^WjPo]_bWbYW`aV]ZfucKgYh^jJcCU`bdemkkTO[Y`TinoePRJT`JRV\XRRi]TPowL`KbgXVlj\`^]X`vPeiS[RkybieMFxOcq[`QMuZmud_cY[P]SdU\mNHVDSkmeaMbbEO\DU_RX[gfmg]UTlb>i`W`cSj`^WK]^UZR]WLM_HDarP\aXKWa`PdV<`aLgiJUjf__R^rS_sgMPZ\r_tlObeFCJRZIRccDYQ][iYcJ]Tc`OPem^QUrbcQNZ`QQdUB]TX^XXOSBb[RPtdcVLdmcgbjWg]Pb[[MjcY^uWfgX\gb;q4J_XZkTVY`Y<[Z&qNSRHBSa8TRQ\`f|W}J[Z]_\bfYuY^VZUaSnZ[VtqdjTmeLrosYNTZOS7VmVfnWWKOvmSGRS[biNSp[^G]h`qLcZuaI^iXJAnWeZ]JhPW^b]cJB_]dfeffGH_gTlH@ZdU]KdSPYjSUbTLZbnx`]U\Ol^elnfNNaTLM]YhSaP\naKcdOWQfmRaZSRUJT`fQ]VwlWP[[WXaiZ]CGjXRb^Yk\g]ea[WM`SmUQ\]pSZh[^ff\ep\\\XcNhxZ\cmeV[`ivdg]Oc]J~hieymPQbdZGo^kcrs[]ZX^YlkWe\fZT]Rmt\a^GMXK^Rti^^_YJu]QomeNwkcotk}cgY\hlVbMjSdRsYcSUWNddoRYikihE`ZchcjRRhiX\_UxphDCwcSduS`wdViI``^\I]k`}H^]ScOipjuEgY\QSbVQr\TabYNajkKtCXfRdXZcUaXVLhjN_\L\\bae`[Vm^WRz_U]XYfxs`\JUecjHo[Rd[dgpIhk~[aLln]mRf]Wl\@a]jF\MHp]ij`L]Yrdha\IVaRo\ZjfjZeuUYcMfPU6kZRaWsVI^zcZfefEjJ[LN_W`cUSkNQYY[mYwhb`Ik_[[I_jgRtTR5Y\ep]vTS_Nqh}OPfX>Wc0jk`|a]WXUTU^R>TVQ_XUpoaURvak>ZAP{XkVsZQusZ^`fSXOXWgNe]iO``ZI\lOLYl_ij^XTSUqmp_bkMmRX`K|FiPUSHXYqfnHidVLq``ZDKKmpS]>o`KQq`ZIfiChW[XNG_FX^\YPeF@aWSNTHnvQQ\c~LpbTC;TT:YB]Jj\mPWRT[TxjyUSWhLSwutL[PNTTY\_eCT^YBJueLCrPJexaTQbOtRXIi`G_<\[MVbZOHce`RuRPLLcW``DO\C^[XbXI\[gXOYJTdcX^MY7VZc;IQcrlTXieLZSMC^ZMdIhJRNTq\\KLqWTfdrCGStXQW^NULVdKJ^KpXdPe[[^j_IeNXZUYfeoZeUX]`~]]bcRhp\TfPe`_QuhPcSgLY^TfWfVNdg]k^W^mI^XNbmk_`RYPPXJ`SN]cUQ_c_ochVIM^]akOmaTiu_^qQJA]P[`qX^V^hYhgV\fQ[\M\]ovXZK_QL]X\aY[Zg^jYL[QIm[oRK\^fBp\\Z`W_hhMRNZaNVXQ]fcM]VcGFL[\RgaSa:icVrb_JH\7P[c\L\PG`S\P:JU_[`UUTXYFieWBiyVGYUMhVXQ:kGuLAXQecXIXXQMQTbxwIHlXpOpX_NXZhF9EZ;Xe?^EinTYJSXSVVSNW`8_TUMTcsN;UQZJgdqQePTfFP]_[XWnhbCfOY`wlIZWgK`^be_ki]}XgVcPoawed]jVcfjLiqcc`eSYocKkh[qD^YTlYUaefncVOubXX\jFFI\VaHZHe_YiiMNMTGWeSRRdM]Yd\ZsebB`gdYYP]^]][]bTdRf]kgX]]\bMUljc[VbUVZVZQbe\PG^yngkjPfWVaVT_D]kfhb\V`bQ[_mKSdhaebsR_ZYKbdO\o]HZ]\beV^]]XUnZ[RQj`i`El[neM^lzc_QUa\gclWxchXiTZq_XNYb[Y\YKNoD?TFOmbZb]vkV`UaaW]Q\eaXTQT[T^WKndVT\oZ_OY`YMaMKVV]l]Pf]YXQWld\nwPVmS`PMPO`ZhNXETHZO]]agc^lUbYby^NPhdZQRaS`Xt`L\PmEaP^h[]XbRaU]bEQ]RechOcOdBM]YaksY]aMZ]_LRVNdbOH^XQZdD>RPaxrGlFg_HrNVIfT^MRZaXYcROlOWWWSf`@J\UZZb_<[pKjNm_Zscaj\LmaQcH]Sj_NSHUI^o[TH_oVR]EsML`_bZV_aRLT8dSllaRMUSeSc|]Gonepg^faBYYk_Q]tbj]Y]h^L\RgcDXILFZD[jlpihVShiXS]^Vfc\pOByW\yvdrPNY\\bT_buR]WcVRNpsbYVPXoLa_hbOQ_PPwOMRd\JV`[rYYVXr_ONVb[U_`VuQJ_aYRWIiL^]\af`_jfQr\^r`ZiVH\CeoAi]SFToVb\bVURGR_U?jSt][_ip^bcK^U7Y_`ZRYORW_\eeQeQ`gUcg~SMje\m[^ZqTQhTOhnUOD^Z`HbTta\pn]P|J>]eoXXP`nW]i_O^edWZJ^chZSc{XZSnRpY`Uh_SlYaqUgILWWaXoxNcZXhe`v_j|;lWKaM~\cnNhScZnX]kZTBYKsPYfXfLY^{odwut]tSphTo\LNmb`Zh\sPMavQipgXiGTweo[fhyHPrcab`n@\h][V^lb_eOWXTViu]iZsT]JJbqX[pVRifdg_X`S\CSZPXw``eU_M]fIEX^`KVO^YVVhs_oPVFugXXcJicWaj[J^nPyg]aqG`Z]Cgo`f?E_OGVjaWWvP\s]hPggvbZZURkXPqLQJEXN``\_a]_oaV]]M`fby^WnYVD`eTf}ZTcBn\nrgfikP\YSh[bjQVSUYPJWXhNl]baAQllg]]njSUl]IeaVX]ZN[dzRDbjjVkLU[Wo`_i_p?c_`ha`glYeRSgntY^]bHOFUeHYU`RXnQbU{TycbWsNpqcUURMaV[\InQaWlXHb~Oh^nmj_^TcRUjah^NbYVVM_WZWMGMMUIY[]bZOLdhdPaOGYN]QCHPOOvj^SJ[Tb]mMN^Q^~J\lPK^CS^oW{f^KmKjTZWO|XWQ^aQ\_jb]VPSKBh_U_fML_moAQ_VKhv\cvXVG`^VJG[QLd_fc[PNZRRdcVm[qxT^CeP\UbVaTklZhNViJS[VeHttR_Meo]r]J_fSEf]mctHNw_]kYcr{[YiYWWb^bI^gaj]SR^YZif]MRftNRPUcJYN]XoZVYEmef8X_LN^\dH\VwOc>dZgTf_gMWK[xinmY\I^QYF]NbPZ_HEt|kx_KKLW]acWVFqa^FZLhWosLIceWuP_c_X`Utb_QMhSiJ\LMPWeZf[XjZL]P[NI1vi[F@fd\w{WPH^{`WhMpSQblUsFw;[siU\VQlT`r^^NS`o[iVZcfX[`OjPUXX`W[So`\gfFleb]\ihi^WXg_eZfb][h[^\UfisOgqRt\gU]Y^dSXmWOUtYh\edTVIT]|bYcieekQbfjTbfke]u\esadZSmYR``Pkfm[hQ[XO`^]USNaXV^V`_jqaQ[PWTb]if_b\aV^k^YZlNYRe^\triZOOXN[WXjdQnMOcZSvScbaIYoM]fjX]kViYaT[kujUt`hS[?aeoldodMat`UN[v_[bpmf\YNJXchW_EX`eGOtWRaW_f=\SbZXacLMo^NYm^ldIS[SXoWTWaYljjV]VR|SJ`\STZbYVjf^JWespZmcAEiV\c_Na^bUTO_\]abeyVNZuZc`IdfQ`hSUmob_Z[jLYT\VyTgVZukXWVl\RdeH\abgH]_pkcvUXSWY~dUSXmWJotSdiwscZ_QjN^Ucba^Z[amYHmZuV[hUaU`UJ__ecdT_prVeNN^X]iUPZORVelzPhPM\TTaKdS_bgkNBYQ_WofdPVmmWXViZHMWruHfTWW`g_Ys[{rf}jGgKwhc]Xd\scIR|ccm]TSL{FYMa^XYjJ[aVXK\cZokq[>ddmJQ]^\XocdHf[G|^gLbnnCh[jsS`rjafYVqOk\`^>iW`nO^dnsIsW]BW`cbpUdHSVjWeg[:Q|_[pDXOUhYEtzJ[rXnhfWSUu`aNyMNbRnXsQZLHie[_USjPo[^_UkkwZXYduPQ_tRXWUbZlncR\`EJc9Ppa^ZQYc`^O]btcmXZUJNSbiKmYPGy7Td]Rm]dVd`s_YYZS`phSpGrSJXKNGWu[w]^VkTpU~Ztie]cYTGPTgQ\_`_X^{nhf~9IbN.aYJk6h\EfZT=PYWE`TmSa\h{^Va|m[_CeY`e`q{ejWjALUVoXTY6[\abEW[^L@]jS]{R[WdQPuSOlmfmwBijdLfSW[cnXG[oK[YO]RXFv_bV\X^Ua_x[gCL`k_Vi^eZWKT^WghMNC\iL`d`]YcW[PeV^RUd\Q[Y]_VTYhSQRS{Rh[vTlNpX^tZ[\d^I_O][XMRSUPXrNVXRSS[fSSWTRxb_ZUc}sM[mQkUe[^\QQ>\_xZiWVK>`aYYZeh]ae^ULLlX]\WHaZg[enUPRrgQRQNb]T_La_i\TdU\axaRQIf\ZcddI`pMVGq`]YhbaSaRxGcDW`dUjT\^G^eJgVWiZYb[deYc\bTeVK]CuPoX\`dZZ]fZhRGBmgS_sde}kmXr\YkZbN^IXULUQ`Xec[QYXTfHZqjIOLTPRf^XjO]gYuJeMdMNiXTdZeNYgcH\neZST_^^UYf`gTODd[RRJnS\g^`]a^PPMlWU\poeCx^NedY`_QF[\N`JYURliERtjP\UURfkfM\RoDhxbZHVX_b[XlENP`heTqR[]YIJyGoVIVdf\_Sfo]RZYKbqpcXSNw^OY\HNwsL]_zhFL[]fQ_dcgTQGUq_IS`BmWsEf]\]T~oZzfeUkT[NnTeK[LPUaaToNoVSO}ggIfsEGOQW`df7Jd[`RUnaLj[WmFU`Xj^PcGVlihWQOGE5X\nDZ[fauarUWcfm5lf\RksKUSMc?]bLbXhW;pSa_YeR^NlE\Vk2}b^P`]H]ZjTgpR^F_HvgZJT]aWM`e[kXUBMOKe[qScU^CYnjXVfRvM^KWkLU`QsQgbdGrZf_r^_[?|[_Ui_eJSa]PhV`[`Mc[T]GaaIFmE\itiMMNbfSkZL^bEVbZfKaY]W[tZSnUc_eTpXMvZSVGfHQefZqWo^EkPhVgNbaTZWITV]THh^_ajbLVWXRXM__XlnQchY_aKMYXd_\aZUam`Reh`UXXHXYT[QU?[UvZSDfq`TX`O^M\RXBZ]OOahM[TS_RVcaDZLERaWPW[M\dVYQhHbVaNQ[T\kbISU`dXXb\ZZ]FZR]|S\dgaNU`]eTiR]XKcjXWRh_q^IkXJaicVRQi_U\^heLXNPZ]UqjOhR\XOsNg_Q[[TbMQf`c{eNMOhT[zSpkRYx\j``Z|`dF^o\y[BpJUlcHf]OMdcTybufFZTWfb\]PBNdK}judLgfbqSPdE]@Pb\jUYR_DbehFGeS]XFWaiSe[FH\`iHJ_P]eGLSadU[bSJW_eT]Nbbd\S^GWZ>gbUj\pgIRfdhfTTYSRpdkNQKY`p[g{^aFI[TMRWXY_\fqfh{_kQ[Og`cm\jV[I`XYcOV[UhRr`dA`[aT`bQb`ccUlfFZdhU\iL[XS]bYqFZ\_TERdgO^YSEjJ\cV`eh]bSPbgWf|eYUU[UtbTuhTpFZfIS[PYleTm\xWZPnhc`hZjT[Ul_lhP\X_ZVKWPgklvYj`UYZaT]d_NqUh\eEdYa^wZYYe[IDanWObL]qp`Md[BYi[mk\Z^TFf[WjrTZaaPcUZ_hyjV|`mVTJh]enZmcOecQadY^\^\eTpaZfai\\ObMpbgQuf\\{aX[xb]dq^UzBUGm\ncZbKTTsc_aUGWZ_pl[WbfDY_cWikU\GZCVc\UPw[Ub]heodoiV\i`oY[SqGn^mhhGtBNbpSagQVqmlmjUW[QdmSUObUdScWPRXHRQb[dTTcI`C`TZnEkZ]tXTHYhdR[M\VLdF`GpXOW\QUaG~IRca[M]VrV[Ti[H]KUWTMsKbSTI^YTQag^X]YQcNjbkTRUa_O\h][lMdUTlJ^elZ]`W_mg[Lh]HngPWdcNcS_gfZiiC^[j[cX_\h_aZROTMQLXWXacqQQnRt]TTiemYj[ZZgYeYePfNI`M]T]H[\hY\[EL`g`NhatNfaaQ_WmRfXL`[t7\Y__bU[rabNNOWVLYUOW\`NOZ[{HZL]aLrVYWXRd[g[caAZ\ePY^El\VUscZByZNMTfdphNWQ_vSms[WaalBsLYSNPVije]RT]xZl_\XZYjXceiQc|Q]o``dM_EukXKMEZuXrYE_XXLMRL;PYZUQceaVXRXLc^TMY;-S\O\hS\b;JGGRZTHXPkWpTBk^_ZB_NUMYrIBUKe[_TTOd`@h\V^MGPwZXBjRW`YFvfTU]SHZiTcV\LW[[[FfSteGN^EQKM^VVK_P;AcbKWZS@TCCXfZUYMlODTL^bLH[RGbMOUS\C[`]M@`IPEW\`lZfwWSN3DNYdYXJiqmYHBWZX^dTpdoU]qdRX^VTYlXjTQehU^it`TUo[bFxjfTbTZVdfVgkQtg\efUoMjZ`oW]XUbZo_hgxanYXilgt_c_`mcdeh\]^WWg`xZYEQb[}_Nja_L\X^XmSXaPTgfYlZha]dOjaInNpPs^]bKUjVe^QxWTZihWaQc^hQJUUYQ[^ZVV\ZXgQSWaHQdmePYRRT@^e@=]p`^YOkckhEI\dMb|eRf[ElVTapKcrZZKgClbkM9degAbJ8U`P}ShkcWIn[;FkNk][a]s_TMcCYpP_XR{ZJUOam][fl]ZbQWNGMo@aOVaYZ_SgXQajlpdbQZiSU^PQofPSa]Sm[XVaO\TKpOPieIOVScbgk\h[_AQW`Z^gN\RYYQg[Un^hn`PmS_`Jc][IOUdcahRHnYVZYfUeex_WNfZxtgMWb`bW^Xe\hS[jVT^HSYhXxkYNmdWSU^jR`WVYS[Q`Y^WkaPRhwQ\TnqY]a?YY_TANYkKe]kLYrqyHmJ\bb`\rNW[KO\beb`RVfdYPeTVS[e]KVh`^^^Yh^OVPMZZShGJ=_iDTi]CLUgq}[]^NWXyQi^\c`\WBsiUKXGMY?^UbHLjUiV]Hd[cRjLigjUSVQMRncJsdQWIUXrQ[GMY\WNZ?YZrm[\`YtdV_^djgXjZLU]`RT`][SOtEnZaw\sIxXd`_@boH^mZj^^a_l`pMOiQS_R^arjH_XLLdpV``wdb\IeQLWS_RIbalbfPa^Wj\Z\DKZQf]NplGtXvVcUQUG]Qi`RNBcU^ft\qaXgYiZjGb_WGpiSn_bjg^UpFQxTbPWzmfYiNjTcr`[ORjsgY{PTUnOlZ]aO[e[cWZ^QsdOTfhbOSHpTnRVOZkS\`w\]Zlma]ceTVaROOXZldW\]Z[\mdRU[pnjmR_chafliJrQlcRYRbhXhqjjFbVO`X`QTGZPceKdff]pZ`\aXf]jw{ah\SepimlboZ\j`]j_LX[d]_^b]ignbWGQrbTlSii`]fV^S[][^eqg`SgcfZbeheVlufebVfbZYkdja[V_\tadeScgVb\cl^h^cmbYtjgh_yqiageblg``qbg`[^l^V_TbOed`a]YZddsigegalh^po[nX_UjX[dc^hgZkaZdVifap`UY_]rfijnqgY^\bfcffe][N]cm]N_ROaSf\mj[VlSS]R^TaulX`XW\X_paTXhbhDdG_UgVTadOkdqMcZT[g_pb^PDN`SOKYVcP[LT^KUTRGj]LbWY`kWSZ[AYdB]K^QX]^HmKRp_MaOVgllW`XTaQco^BWW^INj\gcT`[P^Vm_YQRUYMY^wcX`fgbicjiVaQBgTWLvLhVQ{LRKTdZdZ]^rBQeSNOXnFSa`gkUQ`eQdYsQ`bXb^^]UN^WvVh]XJUUqpUbZZ`\s^c_aRxVQeey\]n[H_Fic]YH[\VIHhwqqKr_aiMWLZhhUbPKQw`TogkcU_Gleb^\tZjUZGgQaQ_EmTRiUfXes\gb`a^bfRJn]VD\_DhyQNW^eRE]gfKKKOFcVlMXbhacb_Ro[GrVbXPZq]DU^cobnbr|r\VbwaYfe?^`sh[KdTJRHTcbY{cX\aog[ZMFUSd`RcUn9YUSSnstQTfNYl\OeLj_l@YoWkVWWS]JcL]ea``zEe~fQVCLnb}?YG]yU[|^jL^RC`BirV[baFXjh`T_^Tb[[@DknXobfXSaKk]cm|JS:[[l]P\_ZI>Lo_r^Xs\OdKHDUX_P[bY_a^ub<\][[DXYUcV[W`Yhn_LnMZM]LmNP@Ci\Ua@J^T[r^ZPUWO;[XWb[K_udLEXSO[^OSUKiHLQcjdsXkK[SbRnQnC_p:cULVmeGLW`WN[agiFY^WO6mVW^d\_bHcR]gVO`dyYbUdo[xc]^[\YTTqe_`^V]ILw`NWi\J^eZCTayXvceA\vZBa:[]M^ggRnghRZn[nNdhfYS]N\OM]eebQguIZZOmxZZjWZOMQ`]eQNWXBWdQJjgP^eaPhMuMSglViVNQUI\YR^PTaKzTBcWSgbknG_hX@MY`cbf\`YfWUs\U]Z[ZaqERWcT\Wm`QLboZJXXQ`adch]UhrgT\muVaPEH`eZcbVhlSR]ZWoWduUQhmls_a]\\_Y^KhK]Odi]dlrKaQc{[_MUwnYL^^\YcVWcZ\e]`LU_fbUCkU]SZfRdhGW\CAinb[e_ZgopNaVQVM`fHPX_H`P_KeqVT[Z]RWife_j]RY\J^_ngVh^\g_radZTb`[ic\\be\ZYb]SWiiQmWSTM_bZrOZkaYNImmO^NcZQF[bVeZjiKVOJTt]frZLumeiUNX\dY]S_ZP]MoWRN\LF}db]alkanWcUQZ_V[g[Z_TJS[EX\POdUZWVpW\[P_d\jeVOkjaZVZdWqkZdT`LaJ^`qmUVteW_caXoW_NgYR_^_UQTYbZV\ZUSYhWf\I`dNSaQ9^[qWXRZkXrYU^L[a\X][Xe]YeZpeW\CEaWd^s}z]c[YdJ\`cac^RS`UWFk`WOZ[WI]X^tpT]TTOXiWTY^LTXbY9SWvA^WjX^jPRcQT~QRFJoX\[bgRNdYfR`XbehbdZmQIVZaGeG[em^`Pc_]XL_VdNndehQibQRf^R|SdefEknSiKn`F`c]b]IiaqMWXI^`fmak`PYfedxSa`T{RZgdWQbyYhVURKJ_VDeZ[RaU`\RDfSVUi]VVf^dbXibCcXbbP`PhaP`\bc`IG__bZZbaeo[WWubSNYTRfMbbVKoYAQXYYXoXWV`jZN_8UMhUYHaoLcMaKVcrKREfpOR\^aNeWWVUSmW\Uk_\U\OO\YYQXWgE]U`svpkGYHSSc`h][M`ZL_FV`]W]Vg`XShQN[[[K^cRPZgek`^fMYafjV[J[cYZX{Qm]K@ppZQjZY|Wiwa^IvgZU_nWodMXdePOlJP\]VbabSZaHHXiTaqN`BOXi_ucioWjekZUc`]M[WVpcNioUgWCYZ[aoXQZVjYdgVltS^lSQZavgZR7Xm\H\Y_jnchbO[ZnTUmJ[bdtUQZUPVP[drO|Ub`X[VSRVW_s[\`PcpdgYS[T]QQ\?GM\QUWpajR[X_[wc]mb`[QVDFq]W[^MP^b_Wc`eSk[_XlOyPYrWZXHKshT\ZCcdldfggmqZXXTfdh[ofoYZteXfDf\K]OiS`ZbhDOcia`ML[^JTLI`j`Z_y^UgSqjIfVZEVMlVeZja\I[VWMYXWlKKjrZQ>RE^n\[`[hq]LfQOWa]ETEAUNT_dRasSOUb_eRHeg\YNb=[M][HKiBMVrWalLOAVW]dXaWm^\\d_V_JWTPXh^SdEmjXDPZ_SOYiSX]h\aUGyVV=SgyfG^_hbXpS?^b^bVFZH:hV]hNjREd`P\OfXUjjzXkMvkYuWT[s[KnMC[IeTYa>{`pkWTcu_^VrIbsURkY]WOQh_:GPEQSFQU_kWKnSZchYWJIWR\daSNgQTe[LYEMAgbX\]W\RX_EvGOkPh{NeUiM`uZiV^kQRT^`M]CKiOMNqCdaHj^KIKWGYNMab]XY_oR\Rr`HSGWVSXW*X~SnnS[nqbSLY_Z^RQzbGKb\`uWm^YLIX`W`_bqM]]FyRh`WY\Q^M][dpQX`W`_^WO^NKVdVTTKIht^ISeOkTxvLQWagbaJJqCklE\IJUcQek_\PBXKcagY_ESoYd]M\hQfsPg[KeY]^\]WjI\_TYHXaOh_bOd_`QSEt\`]JXsUMP]RdNbeg\Q^UnWoLZrdXQTbOPS^CG`]WV_cNSg]WcNU^c\VTNbBOM[^]i[[_VUdXT_PRbNZMeKimblVxek\TMMNZZQXxTZYtNHbVaGXr`lWE\U[[[eVWq`VE`^KQwEZj>V\l_XkC_mTRgPWZ?h]VcPOqCV]N^]RfYMM/XMPiHII^^SAYSaYeeb[k?T{IccnDnTf\SMO`tLcga^_mlgYX``OVLeWdh\fjc`d[]OVYTgXTmTdUYeKtgiXqXnW\Xr\v]f_SRQkdeOZds[ezrJ[[ViWPU_[tXi`ggfVcaQQ_kNM^YWf_XnHQg[vYTaCb[QcN[Yf`]]WOiZaVO^ZQiaavOVOk]\^l]_RYaVoZRJd|ielkYPjIfePWY_PSYctDQFQTTau__bKWO\\AOXSaOy_V^NNkYZ]ZabXLokT`][owX^OpRd{Nib\]TbfD^qS]PQa\VYReR\][aQancX^OYOf]_\Oocj^PXXLiUKUMY`bqXXS^]`cge_[lSkA`VpSeenb_\iO][NY^[M\aYYjUbebSWfX^]_^bZgmdVXKPMiSW^]SRij[VTSsmSfZ_\aPnSa^T\`T_ZfV`YZ]V[W^a_XYbmW[Ug^^jc^\debSaIbNaf;odT^O_bqejKY^^YZdPbp[Y`W_c`V_SLahSV`brW`[[Z^Z^YfVST~_WTdWN^oS\fT_ZpfT][QWfKYXMctXeXWchW`P]RjfY|WQM`_LZV\WiZfdgcNOJ_^O``oYLXe^^[WfcgYTlQ\L^Ldc`eWhcJb_[q_\aOsgz`\nBdpW_SOYco\]dLTbgjZ^afckXXC[\LUTiKR]_ZW[c]`WIXM`S\\HRERbk\WOLVOW[xL``DS]ZgaZ`[YNf\]bgXhPN[R^YTfhSWZihFUNp?_Km>QY^`\dKQVg[dhTP^bcc_GmZHOgaaT`owE[\VXbUN~WbV[TZ[[Yj[ZNZqQTdC^O`^rKmUcOOkEQdZk6o^SRW\m]Qhd]UaX~QRcOJyf[abbRQOBY[WMyRpHQYJZm\NRYTSOnd\EK[`YQk:[T]uYYhaQhWcLfA[M_TcWb\_VP\nVm]Fjs_CmTWONM\WfYfhtE`Ng_[gXjUaS`[`ccfK[kbjgVbe]Ncdw`DbfliLWi^]V^]dPksV]VcftTkJNrVZXGZp^OhYs\t_Z_RXlj{T_M]h]qhVNz[aU_I>V]XWpZ]mTQlW[ggokh\lLjNOR`^l^tNYkeaur^X\s[XPkSWlWXX`PN[^cGSmm^LXOPb|\\`I_NqsZo[^qkSNbfYLfcqZaT_csSGeaUanTy[b^j\\jcnS^^oW}^jPhaSTJa\d^QIONSoZcF`kVgUh`x>`koC`H@Q_VeSILxsM\H`_TPee\k\SJZFOVe^Nk_[]eUTTX\SIG[KfWrUZacpm[[fRJgjDMgom]U_PPo_svmqWlUTUUQUWXMaHaiSkoFXTfeUgPM_Dra`bV_ORWX]y8pZ_gfdbW_gH^ObJW\MohbON_RakTYYVR_UVccmjTdcjrXxjTAhW\zEUXmZWZXg\XmSYReRacbMaVmWVZvoer8s^`LVO^_S<\\W`l\[EU[@L`U[ehRWhcQp\M^R_jTdhNVJaRSZT\Y[JbWG_cOfordOQZUQQWYYpZaZlYw`MOT]bQQ`Y_[udV`cdiMmTfcWkZ[ZH`fJTNee>YXS\cGhrlIJW]iePTRROfRYZX^bQOXPRbE[mSL[^cNNU]kh\wZpg9fY\d`X[RWYfaI[UO]^^iS`ZQITZUPmYWOahX`bY`zbgLjdnjXbe]X\Zf_[]\_NudYfj=Rcsah^U`oEOUVeOcV_PlP\xaQQZJnRgVFOv[VY[OgzlH{VkBYXb^dcbfeuZhcVS^SbT`[]_FcTDdc\hUU]XlRtiFQP`PHOL_]kVWPEwhKb]BQYUcN]dUBd_WfN[YoKDibfdaU_Y_NaV0KjlWj^WVQ`eOTPYO^f]j_?HVVVohZVbSOiubX]LF^fweMOf]WyJ`OXvK[\AOhzbY]moLgbe^Z_oPcPL^VXd[]V}\AL^bhX\WIQrToW[]^f]UO[`R^\fPmpl}^QJS_\l]`PtZdIOeq`UfibYWX]Wd^VKdG`V\WBrmWkfcaW[uJUQN\eVdYb_Ye_WhoUf_d^U]eZI_XY]WGOLVbU[BU[wPLvpKdKRW]X`^]xSVHR]`k^WR[\^]pZei_WRRe``LWc]ibWMeoZmljZO^`]bdgUaJSOGH]Y`DpZ[f^`k]TWROhWdXRWVim]GUYjXPV`]URXWeIk_]MRPLmQM^_y_AcSVRVNleS^AYcPUb_mO\VXoCKbLVZQYKIOS\AbXOQQLSIWB^aQ[iPKKTdMdqMHf]WXl_kOM[ZXVxfaX^^`_utb_UjJj\XddXFPDTa[^_dY^acPQaXVCWEL]rigLWqXdebXae^^]KV^MNUW^QVh\oWdOLGb[]Ufa]^kY^RNiSKPMVP\YQh]PcZ_z_xMhSWQORK_XScZVlSUUgQWMRWf`\ieSbgbQ\i[c^WfbL\Y;JvVeae^_\_WZWMOa````mahQWVRUWUL_cSRthoL[T]]\JYvogafZp]lcr;:qUc]ORRejiSTcd\`q[h]fb\aYcn]WeVaNQoicduibah[xLYURKRT`aXORdMhCdWWFXcidzXQYWU]W[Vw^eTiMuRcerkaaPKa^PhQaceWNT]bgYgQhgfR\aeQ^pp_p]\Yc[\QXf]ab\tavbc[_WT\s[WcahJkWf\JZhbeRXUaXVeid\RcZnb_cNTuPUfKUa]NaVbg]cYcT`RfdafRbg][^a\L|eYGbfTfaej]\]_inWTRpdgaWfOXzL]bRY`XnY[xZpYTIYeTfNaSVVd^WVR^_BTa\Og`]bXV_Bj]M_XmiVkOaWSbIfYaVW[\dWURa>l^eEfc^QGIckWkg_T[`gZdwKMaJTUcY;P[e\ZZSVYZ_hPoccddn]dZHhYX_^PRlXNYjLWUKW\qNiXhc^OTSnfWoFejSb]dNiN^\MPTPNv_TXvX\se`U]d?OffVJZ[XN_kUQDUhhbTTRfPXXopYdQKWNF?ipkedNbM^S]Wbi>ciGX`h_zP`_MQOUI{Yb^PX9e[QgiVkpdXJ^nZb`iNZKQUVaVZo]xhldDQ\hTHmh`URrYcPdrKi]]\NKI\\_eZXgBg\[UKOeJb]VeO^naUhXonSXf\\cZjRe]X]uZS^fkenipgkuXhr\`ifOacfSi~[bTndqOoRToMg^gqsLGU]MSL\pTnZLu_bV@R`viUPX[OIOQQOt[Jt\aZ\o]aZYZbUc_TUG5mHSiYSQITSX^6N^[O]kbZbNHTRMMGWlTX^b\_X^ZlmPUy_ibhQNUkcO>Idd]_gaVSUZ`fGNRXVQVZdb{[VQ^g[9[dmoYdMZ\bq\_cbSl]V[RhYQK^POciM\QwWiOx_UieS_VfMfbyoL^hga^X``hn_c_QVaa]_hjSa^RxUSn`aMg_VbTcmrTb\d`[amTU\oPQmN`ZpYFg[jWoh_]cWJIfoE[eb_c`bTUdj\`YVbU`pW`YrYbc[W_XSTt]X`PxT^^Vm`NU[ks_Yfba^\OO>HZaLWN_h\rcdeGL`[^Tekd_T_iNWaUW]c`P\PXXB^\jLWhknUTh]op]aeX^T`LOge\m\`{[haX\_c\Nc]jG^e`a\[Ubij\V_YLTb{US^iM[MhRFQO^[Zb[b[q[ijWDSCaiJ_8oeaWYTdQPLLcmaQXYRUs-^_NfNVKW^SVQz[]BRbgZIRSKPXQ_lJRbT`W__alMGgPH{jWFLXUPLYaSeWcXKYIsHZXLaeefU^dLcIcYVm[L^Wfpr_b]tV[bRVXTXfcMSVicbpYhhk[mP_`rdjexuVfXo\\DqQc`k[PZhwsaVkLaSiVbh_kUuLWkUucPPN?SnkNaX]ZQJdg_mzbYiV\]ZK^jnjaWkoPhTZWkQV_pYqbc\]PpSOcJwrXcVaXbRHUiLd`_s?ZX[OIXZOXWX[Psl^]u^ZihRSTRjScZhY~NhkXVZtfYkfagya[fkTbIR[NVT`WNfdchoYSVQYabn]E{T_[XNQSiHNgq[KeSUVtZYeM:^wahdd^d~]bibSGfSWV_g[TSSfX\XP`JkPqvfO[^QPNZ^SUTe`JRQpZRTV\OmMWiX^m\TkcbMdc]db_aaSIXaVca[Lh`SeWbf\fUZjNIVitdnYj`W^eRXNbdXP?`hgWPXhUUiZ_MgMaWUMNt``cWWTMT\eycV]|d^[VB[V[e>OVM^PtkFLYf^WUmcoTNS[fdaWi\hb`X]b\M^RTbLr^VSZJ[m^P[kbVZ`KieR`dLH]@_srjTa~AYfd\kUXI[b[PXUIqWlQY^Q^]`9YeVgZPWenYJsOqmpq[JKDcX_^omTbiYVMVj|WoeQTZlLPMpjI]iaMQVd_SicY`KFQ\VQM[PIkTISJXdIWcTbWUkURoVU]Tf]cYS^azTVPWRV[M\XRMWadUa_PdfZV]ZUGi`LW_XrKODc`SYNnZhhfUWt_flVcWbX\Xbfl]fj\\kTYcvoVZR_\__YJdTcuNVJeQRYorS`LCfg\[fNc\?roYUlYfEz>^AGZROFNa^cOG\Qj]PCUROc[VUT]\NZZ_^YZWSOTIWbeYXRdS`ZcPk\BE{YXPc_U]S]ds[ggWLjfQtn`d]L`TkQJ_r_cbQyHdfO[cSbsVR]^QcVT_VTZ[bntUZZ_\\^`q\_]QeOGhfo`SYZkOgRW\eZJY]URyhlMPSek7P]`QJ_YWZQcW]LbE__T[M\M_TVWUycmWWaioQ^TVRdnPf]K`W\nLQ`S^UgZ\T_c[^ONYObWgWa`[P[ieWqkXmPNadobQOVbc_dIFtPP\Mu\KKZRioJapSfXJK[ZfZbS\fU;YOBlOUgoXocagcSkfW[RMKITRdWZXRmdqB\ZWORcN^g]jjVMEPi\UhyfRV`mX[]Y@fN|Ph_flah\^[>cRrcRf\cbxibO^UTTiaRsMyjaZJJY5pJi^[X_dT`L]^e~jccj_K_ddNZYPVB[bUVe^\nqh`haLTjLYXhWQaBa`aKlLJHb\hSK`hnSXdTgkiZWXYRVoT[`3LdjGsTRblaQUVWZcK\T_VihilU[clTlaKhaOQWTwaYoH]gQT[i_X_scaTTPV\g[@UY_VoYO`QXUf\PrjpZa[VbGc\Vgf|Z\KeQV5S\Q_M_S\YZNOfWVTV_q[_cL?\RLZWKZ]_WPGLRXT]^^YjUgaXVkfjSQKS\WPZTQ\]lXOZQX]]RYfO_NrdN]ZQXSg^ehwiR`Q`UTdeUqeXP`cTx`^\TlhkxbZ^S\gh]\Qqk\GUS_V]miS[cko\PxX[e\S_^WZUhw_Qg\`oc]O]\O]`gYL[UOTTreV^OFUZY`ddU_^_ZlO_TmdLo^`_Lghb\\;nZsRqZZXa^KNhUWTdMZKZZKHdUCXxSg^bQXaSh`[XraWMXdaE[X^^]`]fYdeaUD9`kVrh^JJ]RDWfYiIXlZ\WaZ]XK\QcfYXnbfjWuSZQrbLN^OgH__RVp^RloU\]MLbZ\b[kQQIla]mlTTU[NPOpcWhQapaaPk`PPQ^]RY]XXRU\daXYmNW^TN]_fPT[Y[badXn\kUsgjRVZ_XY^YYS\[JQWX`Rh]TTTXcKg^Hdwo`k_ofcOz\b]MRbZgihDc\aL=QcTiUbP`gjXU[n^YEX]urP[ZjStZUZe\k[ZVMYxdgaNVvZMnXPg`[[_`h^P^VZWLUUYebFhZWN`bOj^[W^W[YPh[H\YVOUhcab]OOvh`QNCWO^gbdk=BdJLoh[T\rOFMibSRRfhpg_dSXSST[[UKM[OlVcI_eROGaiYW^D\\dK[S]q[Y{iXUJScf`UUblieYOmBf`ISSdLwgJjIVW]NjPI`M[IQ`Z\Z`Z@IpdaK[Qr[Q^Tlb]c\MTafg\g_VIJ\e_heGO][M[tNNZWQY[`E]SPvWfZeTvIn`[Y\[SaXNty\[]`FWOafROWWVIfQWTaVafaHQXCLiTwiTaWSSQcupdk]]VcSS\bYFNe\`aniRXXW^uKZW^ZPcHfo`NLrwERW[nqcT]`am\`P]XfW[Sc_h]gVpR_S`c^R\R[ZiRTM_KiRQw\njeNlaWg]q\\r^v]n_`[PaQMXS_TU[k]XedcfX]ohSs`TYYJ\_Pk^YdZaOMt}_g\cclc\^[_eZXSV[UW_cbhffXs[Plh[NgaYSwaCS[_aLaRBq\ZY_z`b_]Z[WhVf|mW@fjNaUL~IF\bUVXYSc_OTLQTG[SwhaZKP\]ui\dbINO@w]VX]lK?Vb[[K\teS[[g[Ve_8EW\Z[JMUZ\F`QV8JYaMML[Q_V`U^d:LeIe]\`WiFWd^|ZRWSjQHPeWsXO`Xya`Rri\lOZe`4UamWN\c^^FXP_{SuHUViReZRpwiY{UUfR_mn\IZdcir]WDrUxYNTgRPdaNP\Y\gRamqjFYerobxU_a=WnsYa]phWM]qa\[cn?leaXRMZLaZgTckL_ausXfZfPdbOQRSfYi_EPeyPdd^YaSa]=fNUQcFcgLLd]dTUb^yYqSa]OlgXUU_lbZ]liifvdHechwchZs\W`kSF\SUeEcaOVcvJObaj^SS[^e^^YbueSdJCc^mO_W]`_e]fh_[[b^\c]_SQRXVP^YS_iPQWWfWeSabGbN[[ea[eLX^^`TTu[eV^^hnUl\`]VYXvT]XcR^YkYmaFVfFcXS`\U`\\]kZCP_rmdcIae_qmhf\m`P^LeWQI_PeNfcaZ^^hd_J[``X[ScRr]N_cUY_\ZoS`dacbNPGodVfkfM]c8oacaYlUbffKcmUUR^YWgFuLY^^Zi>qac^{PP;`eT`F[QPZPZdgLktUbcZfV\^gnOg][VKbV^RePoTXmYcaFLs\];fVUFPsTj`bdgLQpUeZ_p`q@iTNatcR]Fg^PeOu^`ba][rYQ_mVU^_gpbIRt\WMSGWSAsbP`dSVQfXb}``[Q^za^i^bn]ITGM]do]XfGM_Ss`I`g[XbXVjOTXX_\cQPECYeY`WadfWXQKY<`pTdFs[RwXY`|ZdiOfw`d\n`KYlhF`sRug\UTnTmIZKL_G`iwQNUbmpI[bMbPWW\Zm`[GeoZaUuh[DIUdm]^~NO5oLiGbuRVmhVrkbg}qY\WVFN}cpSeeZS_YjmXMCI~XQPMXDodUTGcmOQ`OeJeTUkXahh_r[QQ\MNe;nkY[[UM`_dJp\eQpbBTRaXnINNXK[BeOWZHSdT``ScRI`pNXW_oOXbrcRMPaIjS[POn]`nf_IipRmFpO]c]lKp^^c\q]d_xiU\U>~sM^LpP`\KFa]mQbCYSE`V\aWINdd\|TnJ]\dClrXqVWSl@^V\YeMNbO\_fkbs`NWM[fh]c]^TyThbfcIdycRj3`hIxgdVQa\deXSTrHhuWYQZXmV`LTSWn^UUnWO^afrKzq\^QffaiFYOS^c]ad]KZ[Z:Fr\b_eiR_xXVS]eqSnVN_TUacYcaIbpXb\PbZbZSN_cX`TWbkYdZdV\XREQgV^KZ`Y\SKSUROIeNNY]eWN^ab_^cmfXddLMdgRRNZTbc\vheX\dkMUKQ`H[e][^yrRd`YuRg\U[G\TcdeMhtVYZYFR^bjXgzn[]]qfV]eeN\jSmqRiYRKnQXQfOQ_~e^hZF=cBkPWYP_^LdXQX[YQyvYWt`]YNZqhjl^eWdIX\aMl:RPeoheIfweX]@TlUn\cAwCUy]pfr_hdYVeWhYiaPS^GRuZeJVRrh`MRPYc]xcXydM]~Rnia`k]Z]?QZJXNGO]>~sSbW~ihlFbLYH_jbVXfY^PmR[\W]VWR`dmMa]aXhjOTkaJ_wdak_ehb^z\wcPu\Q\LDY_WjbTqPcslSbKbV\U[YT^X\SfdUYL[oVfQ_5V\\Jo[gYYTW\bXcCdZ^NcW_P_Q[^aE]XNPTWgZ_VW[RJV}QbYXSXkKWfQLUkAUVOiZ`LbG_ZFaPNJjme^ZUq`bUVjjkSX\ZWUi7\K^XXaLheFBfaS\hSUdIJRXEUTreQfgY^_L_F_[I__RW^emh_U^vW{ea]TVWhRgLeW\bOVEZatWiVIZaOnN\dVoEiP{nhJSMLO]`W_\aH\TqaOmW`niRR]bgXMV_TUSXxR^caaZPbfeXNh@ab\YawyrXl\fVhZM^aWAgL[c_T_[YhTO[ibhSRKWXS`X\JaWqNKXcPW^\}RXMgibYScVk^m_zc\ZWm`]T_LQc`K[geXnfQkjk^e^ZmhWd_sS\ZWXdlOd\aYfMm_[gx]raO``kYLOgEErfkm_p`dmS[^jSlaidL\NZdf`V]dfy_eThw_P]XkbgXqWm`S]fbWRRSee[iZhPHPgdfLQ`YaUjXV]_eNQZJU\[XJ\NUPRbV`ZfO[QhtQ_ZP^pXRbZ@`sO`SeRVMXfmYjxbOUmaee\UHtjvDNBOhWabZTXZTQX\TQDSJRecBvkIqXZXbPOVYH@OdV[bUBjSkmm^]FK^i_ebhQ]s\Sn`GYV_gSg[n_SMjUi\STcNhseP_WTQfeKc^hR]XUW]cQcj}YddXT_[bYP_[gYS\[he]^bYUluRjEHcKhV^IYN_NMWXWA_HYvX`RSYZ]YV]__eU\N=f]L\P[bV[bXUVG\g^^gSWMahEDU[TOaQ^ZL]X[ObdOlfWR[]MEUPUcTmQXn`cSfVQUNPjZ_ecpRINeRa`RaXYJW`]PUT^P`T`[TUJ^ZGUTUOnYZMP^WgamcMQ_d]PHqTehhSqaWXjZVU[W`QYjIP`cWj9ZBXGdiQIkIiTQYcNsXUwMOV_[bT[YIbNSTKG]qaFb]YNqzJbMcZIfT`M`ThQQ>WmcfcOFIaUYYdadiYXnn^leqXi[cLhQ|O]TY[pRYhAUmF\jiTUWRXUm\kX]p_VhPLVOedSXZ^WSS[YReKd^`^beW^kQV\O`PUk\\]pXbgIXXPhUXhvi[^_V_ZdQ\X_NQnYfYeiVXigSkWcSHe]WaTj\gNQdhc\_cWSJ[K]aV\WVQgXYfaoib^ZXZf\YY]c`lXgM__JPMe[rZbT?SQbV_RWl^Qed[X`[Ya_VVWffaXSPgPkMSX@MNbRcATPYDYbXaAQl^VSfZZU[R`^V_\Ujab\[L@e_IQggt\WKUFWdUXdTOea`ZLWUcmQTNYvoaYQYKmAZha[OmTSTc[kZiaETGOU\a\bgMXOodTiSU[{NrO[e^baKk8T=XR\\fiVmSjahtnm\kfe_dObp[`\ndT[j^Xy^XT\i_XUvdLi\laFnF_TWFOXAYSegMWL]mnLWx][dNFccY@SD>adXodaA]cikaZZoeVWgLWTWTkehU2V`L\`^\V^bbU_VPkjtYeBQ_ebWS[XPN_fmTyjfsaileg_PaQ_[LJbWC^6gmHaOW[{W=kSlvRm~KpMnVawb^d\d[bO[^UWTeh]CcX]H`YTSIgbOYPLj]_rR\MkjVLaf[IcmOT^aWf_UXN\c~hecUYj]UknY]_lcMfjR``tvegiTHUPMqi_KNRqQd_PYkEhYU[\X`l]`\]U{UJv]MSU]OAbpT[BUdYOOg[gSXYTg`aFVbJRd\NZQ]Z?XcQZfW<^eYcZE^_eb^TPtgTcWe_\KdKcUnZTMWpMYMzd[_LXZQdKykRUYei]qjcMWO]UYDhmT_UeReMYRQMUMWm=PeTVVYU\@;_gR]c]\`Rshbjk;cYM`teTf^XRUDNYO`nc]eJg_kaWLYkQLUoSTnqHO\KRQNSYpc;_hJNMZYfiPyWPBbbbNZW_eb>egPa\-L\XknGihKXpeT`JX``YXQo\[\d`FYK=\b^ZPDTLrfHYQ^NXIZsMRhO_p__[TGR]VFdZICU^PRe__kRc`Idc_g]NaZge^kfM\]WUe_[dU]RkXh\dYQiRX[XXBh_ZYXcnjGPdQdNQO`agf^\Utg^]hecLkXOeVW_RUey[WhV]]OUb]Y]YTZfb\cXOV\^cZoYdfXRPd`elfh\XZ\aR\jFZ_\eZZwbdDzjiTWUVMX_hiYcSinaOYjjN9hha]`KdnKXU[Z]X\gB^R\c]jQvDKjjabLXHQSPV[tQit\U\]ag]]haXfDeilgZTsQXpocvHv`^nQq`VZncEcpYUX\T^cQRLY]_[usPNgukaP\_WfilRLfimtJe]g^ZQbMVjhfUeGUJg_Q2vJRVfkb`S_VfTkXbZ_hVV]\_XbK^YXdf]Yu\^_TpPxE_c]K[UXC^Q\ZZSaNojSm^J\[U`^YYJofhh]UXP_jfUoMy\e`Ge\iVTW]QeJkrmSp^SNbSqR[YysnRYWZZRH`YbYQa[OWW\O[R`CWeb]MV\XEVZW]P`aeJtXL~NTWZa_aMHEaQMTmRbYRYucQW_]dNU\c_[Rp[W^]^TUYldp`PV\XgbhTfRTIKYihlT]UQlKXGSNbjidWkb`gVO_YUOeALxJK\kkR\YmRYT|DiuXeOfW\XuarEXbcWqU^MSa?YZbXXeUl]@?NROGO[ToaRR^LlULdCjWUS_imDYYA`nfMpg]]DZZeUoUV3p_QbUDQnF[pNCyqjZ[[Vm^\`XOiRVD]eljd^WRWUXU9\^tg_HSRcb[Mgm\MOnbZTO]WXRQoeV]Xcb]ULYUZD`a`SaSZqDk[cOSWePRjg_aQgirT]rXi^hIaY]fg`[Xfbm`ij^YJ]RkfYd`z^bnOi^DHOp\YeONc^YYqcayWVDU}h`lbUMbW\dQURQddf]_UWvMcRRav]ahXNEY]ZQn}feJa]`hTuhFu]IHjjpnPRMWgrmffN]e`Y^btXM\QLOZpN_aVgoTIQhZdg`m|It^q_i[ZRoZZMzcaQd^MXQfVLNZU`ckPTMbAa^]\YTHX_P[kbXVTP_VQftyX?dZPMaLdXc\WJam\HFc`b\N_`pPV\[\znm[_cWjeUSohfOk]`Ra\]xbi[\aWfd_jn\WbjWgOUWl_gVS[VTRbEVW_MYjUM\bSXaUiaWCjNb^lbiRTHwR^]e`Z\`]jKWNcUjS\WcL_[ObcLWfUo\RgeN_`WTV\YMeQ^hbZ\Z[XQgY]Sj[iaTFd_AkOdZlRZ_ZDIT]JSTRgM]lWQ]QESv\MUY\HbV\[OeU^d;hnQc9YODZXTcA]IBcTc^YZgT[ctigNIXeTtUEb`XP\\SXSJOUl_EblG]WYUe^piZNV]JYYRVueWtO`SS6[dqV\eTWbXcRb`HYUeY[Yb_VM^Vc5ScNS_Wc__RcYb]Un\VHhwSkSfPa]dXfmjkSgqWNqa_Sh``SfTGNi^ZYm\^af[sje\mJi_s`U=LZZ~\oqGUCa\bfTWfjFkdV`^V[l\gO_k_Rpamai`sT[KnLeCGIbbleXYwi_NfYadfgUbTXkhdW[eMsbd]eWU{ZJAmSZHWmUgi`e\KoWZaY|ab_h[vZcdbSNQROexW_PVQ^`h[NVfUkO`faSd^e_RbrUT[jbnDeTq__\]dz\BZ_Ocj]X`iJ\^XglgVKW[KZn\xTQ]kbOUS_bfpVtr]U\VVPcsr\OZcnYXlM\^\XV\fpa_f]UOnX\bTdy\O]Scc`i^Y`QIe_hQfWTZcbvsV]qN[`^lg^kgcd`_fcTS|aefocZVhFgdTS_Qmh]Zj^JcV][WLiZ_hqcTpMRp[]`fYVeQfbfScpZhXZW]]Ye_Z[eaPNjceShV^]XBjRj\WihYWeaCerfEbOv]pcRh]bXO]nnd_YbL[KL]V\X[mT`Qxaid_Uq_Z\Xp`TQYAbuaWNZg`bpOAOSbh>vZkToEZATCnQ]eX[_ZfTT?YS\j?Wd]\BjWmYUdf[[b]cPZG\[S\ismkU[hR_W^zPWLYRUXgSeRyLahhGMcXJhhdOeNXN]]qZ]aI`UMWTGPcwMGKWgzceQTYJTYL^dVoXU[a]LFQ^Qe^Qhr\YqZdSa@_Sd`Oab\Xn_sLoF@Ya[XQP[jWOfUc`]ZefdWZ`^a_rERbX^QSjgUvZoLPVRmQoUgcQ]Zh^kOQcPWj_iZIjTSXj_ReWc^\aaRRe\TNl_pcwaLrjLZtJi>WIQbea_OGa`f^ga[^jQVU_^^bdlc_jPOVIMXwieanfV]UXVR[P^U^SV|SQQP_ORppc\GTDKO^on`YNoRN`Ynd|RPaXd_L[HSi^aVRW\_MQX[\Y}eUVK\SeVjdnUtrD][oQIchcH[jitV[^I[QWi`XfTS^D_|gZDU~FDg_[b^QeP}RPZYalU|RU[U\o`xbU]Sn5fYcgJ_e_[P^WH8YvB]][ukW`hQRTi2Y]c\Vmo_TFYIUgYLd[Wm[XeeR@[NRYV^K@xXGdad^[mNB[PcYWU\Slm`F^UugWM(:]TvlIWWNXTMc[kQcdsDe[_Y^RQZkeiWkPIYX\a_VZIhU\VaZij]gdgP^b\QmVFejSQRVRUHgQxeLWLbfcP{P\J9ZYdPhZWXjiZVgQY[fV_eWkXWGeK[aASp]cWhSbXZNXbLo\egi`MQx]X^ZaYZaYZ_ilY_iUo^dsl\zKPZWgf[_SZZoDVJ|j]]VR[ajWfQ[`degdcRX^XNlTaSjaOVT[WZ_PSPTaJTaNPXWPs[\^\VdSSjYXn[S[MmmjUXZhae]WfPRZ^zite`_gYSPSgbnkPY`i`aTpvxJUYqJLX[NhfIZUibU[ZWndL]qkueDWg_[^T\JU^Vv]TiZ^aFVAaaY]^dOSiRSaR`Qg_kUafIRhcojjFa^RTIRKjla]d2ZfJW_[m\DY\]L[e^E[iaolmQEm_oZQN]?y\_LUqm]WSZ_[Waae_b^bhFRd\_V_`knhfgRZdeIsHbRbnaaYPitXYZl`btPJ`]Ucb^moO`c^bd`\sT_Q`\k^QUX]YnP][U[hS_gQaYlZbaTVTUiG]]dXPNYVf^PSbcpOIakbQ`dPgfYcfHa^PS=Tdje]X\[NaO^R^lgbhZiRQ`WxT[e`ZZYW`eRmeVG\\rzodpcZdcv[\XTdKI^^XbwVYQTRX]UHhTPJo]S`TWU`X_XZd__bIPa]mdMeRSXa_cN]\vimdEtTVWeZH]c\Vqn}RKU`YOTKa][hh]F]^YtY_I[VA]hGhS[_cZh`oST_a]WTRinhigTQPUYTT]k_]QhZgTPujcZkM^VaO[f]kWQNWkNa\JVT\_rOR\n^kWO`UUbaS`hiVrc]ZgZ`Wkf[fJSNVLO]]QZ\]U]X[\UVHc[ac?WgobrhVbH]UebP^Dfe[`BM\^YQaYYrnqiVWxeT[[jfYggbrPntVJ]cXKVn\OTrcyVyBNlqcfYbYWZGeSVXcd^Ij[DENXgU_fFV[VM{LcUII^ldTfiThYnW^b[edcc\RZUR`_ZW[MhRxbZp_]qYanafR^dbd[[cgOaVdkO[XV\Xmkq\Zd\]rU\an]nZ]JWLgeJVeXNhZTs`fLR]w^SOqlpUNfQRSoP]_YwjqhdNjZ\WsnSXVeheO^WV^W`VR~b`\W`PTYcg[ZFe`\U[SKl@yf^YaiYiT_ascIYTploi[d][^RNRLQLT]MOcRNSfOeaX][m\h[^OP][WbdkjUH`VdJOXbWae[Sb`yv\GfMQ[^rZ`^TcUUPQ[]axdCcSge\dYz^cfYd\caahhPpRqXXo\TSO\V`Yb[]nXRch[X[WLZYT]WbMR_fZLV]IHfhY{WXWwQWYTY`Ya``aZNeW\`nVR^H_[X__Ye]]VVaQ]KaUcobeUm]gdhYXQWb\\_UX__S[Xbqg^ijhcT[phWbYciZ``icZc`[YsYW`VU^i[W_oXmXV_XXmP[\h^Y[]W``qRSdWTLNigXcMiY\SQ_a^\N[[T[ZUZQYi[b\NV`Ric`WG[Y[cRBVXfOjtmn\Xm`RZ[S[s_daa]LadY`bc\JM_V`fSYRjdWRfaeMQZh\dYRIh]Xr^WOdvbSZZ^\KZbYPXR]cO\cR\KkTYRUNoOgQXIych\PMT[P\ef`J\Z[x`^mdY`bS~ZoQS]WUp]R[`f\iTY`[SOSS[OQkRWYGQ\fEP]K|ZVei_U_wUgp\EuIjl^bRZPnbRYY\N[Y`PZ_OUPke^YXVMYMaX[TNq_\Y_~^pmegWWSkZfTheV]]uoZ^_d`j{hUXOU][]ikc^Qel_P]aLH`kTX]N`T[XY_WFng_Og^Y^WTcelXOaQsbah\mn_ZMP^hedXXZTo^daNZj_WNjNlUO\cii`TQZb`UTfa[b[e]]W]UZWSVo_LXo\XhheeYX]}nXOXTaRZHLbd[eXXiQ\[\O[`U[mVa`RgceTbhPeb^VMK`f]Nee^_RbTZ`bihMhiaXGDbiQe\[TVa`cT\Yde`b_SOc[k[^XVOc`a\jeTWgQRPbXHoXU\YdHnpePeXO^KjWP\_MX]RXPqTcfOqaegJZMZWicahW`KfWecdYcsmPekL`e^i]d`a`Mq[b]\i_Tlc`gNWu^\VY[fa^__^Rbd_g[WdS_kQOfgcbY]pF]PX^dbramSQcpUdZZZb]RZWO_rnh`J=__Md\S^f^QRjcbUjXgOSfjgYq[b[ZNdgXi^YdXRSaWcaZqYRhafeiR]naT^kQpXcTMiiNQXaP\]X`aPZZ\WNXcgpIQT`^lhjQf\]Yihkd`oVaRjX\_WZ`PU]_dQWXeTYfdX_qW\Yc`gaKNYTW[YWTQee\Uh\`g]_c`bbK^Wi\SURiG_R\_T]XcadZcdSiYYQcUgb^^_]__faZ`g_]e^lWU[ces`[Z[fcbTf[S_``QtdQW[dTehm_QZ^bY^gSf`Zg\bl\uUmoZ^ic\dVad\iNWaf`[gVUX^]O`]WH\grT_bU[ZZpS^g^gQ[e[dW`fS\nceRngVbhlTS^aQeXgZuWVb^h^_bZqP`i]gVX^`VX_WZHkQ^ZUdfaQgZVZ_xaj_Ja^cYM\USp\]_^vK[eYm]R\ZZjQ^]WH\o\KZVeaiKUYfhYSUZf]Qfeh[gS^SgbO`Kf^[TU\ebMN[NY]bfdVkYZhdFlUOcXKM^\bdrgX[SSQRU`]S[ec^dZfob^^d_TYia[Xbh_afaWTXW[JSZPqTM]aYV[^\^[^Z_\GWiWRUZ^]YxScg[]f^QeY_O`cbYT\X`^WlcCg]^l_M[]Zlo_RcYmTWZ\_UcP^[hYcgYg[lbaUYi\]Pb]bbhekT~Vlfl`\T_tad[g`^cS_bb]W[acaSUXTdZ^_R\WfWSaPUhoZlcRhn[VaPrV`V]YZydRaVer]_cZhYhd_fXg]gY`SXQZ]j_neW^nWQ\vWZ`ZWUuRj\[``SPUebbe\]lf\QL_R]YqcadYXe\Y_fUTcfZUkb]c]cMcQ\uWZ^aRNWTdO\rZLd^_MP[YnZVd][c^i[qGfXrUZkWb`S][TiRkZZbZnb^U^bdf\dDmR^\T\WwZlbY[MYRTkUpdeWrd^bVVY_VfS\n[LgWcWNRwgwcRZZPZbQ[d}RT[]SZjSccl`Xn]ZZdXWM~^VhWxajU]cceXoieceeaYefU`UTX_^ZT\qYTXbiaY``ec^X\kd`\YF_eeW[XaPTmX^[c;^k[h`]ZTN_s_\HeZYeYZXcVffae_UZOheb_cKUXSY`_OJb]ZPam\jRSTYMbeeeZlcNbpbgQ__aYhW[ZQaUZT`S^mKU^lUnRm_AUmbVAnaXfg`KdfV`VV^PWT`hsZ`Zbc\qXaggp`l`tU_Ref\Zf^]YPdblG[VJRn]kbMUbJQY_WWSWcUbuZUQT\U_sja\_`hTVQh_WWTuWg>UWTZMVecWhfuEk\_dm[_We[aXsW{^YNfhdQcYi`kYRT_jXhQ_]n\W\^n_MYbabkkORdg\`ORfPd\bYfa\JT^R]VTNc[Y\RRXWeh\[`ZSc_f`[Y\fZ\bTU_Rr`VgQSPdXXXdgcX`k`_l\_GrXZVL\Wei\WcX^OW[TljiSn|PZQvBh\c`XgZU_F^XLMeTWq6cV\^YSjfj]TT[]he^ZSSLUsXfSqUXdaWsm`YS>MjX]Xtc]VcRd[jYVWV^`rMdmY_Ns^IWSmVSh^[cbc|VcQNByrmdfSU]L^laZWXaYS]KQdu[iYacKawYdQg^`cgM_j\c_]fW_Vy_ZqZtgW`[WeazdY^iN^^U[b_Sg\SU^fXheQ`Z^SN]T[\f]Ke]dc`jR]mZhdhj_\\f\[SWWZaZVTRNc[HbaZ`[o`ZYm[dUIadXIosX^`[\`J`lV[_WRqPjdfQQ\Zke]O]ibVXh]`cXOXcX^PamUk[XiqU\T`jijRLYP]Z[Sa\WVjY^PX\[XUdfp]]a_`dgdcda\UdXXjT]I_GWaTdzbZIsX^m[Vg]Zxc^UZcT[Y[ZJMUcVdVPbOMc]t]i_ZZ_Y[SOagn_Vi\deO`_zidPsVcec[TUX[QVPJtK`j_KNJ`bqW^UY[bYfUqbbs\Y\_oQcbZ`Z]kOWNa\adV_]\fgpSf]KW`ShX\[eP[\UiUZ`hgU[Krm`^SUmbdPieq^lg[kcjb^j`l\]MPgT]ZRc^_UdeeQXbY\Wm[^o^IYROQVe^aV`mbS[ZY]dbnbZY]YJ]f]Z]f_^]e[bfb]RYbhjYncQhbiaj`[d]Xd^aq^N]e]Y^eciah_]TZWqZfdfhUTVlPTcac`Of^QYcaXdVNgbcc^MXbmVcYWVZ[VT^dJ]V\NZfVcs^Ts`y\cooblZOeeZ^SdXt[\T`aZg]X_gW`ZhbW`fd_hnadPT[[grYmV`SWfb_aeTXrc[d\[pdd[\mTpScbOoXYZdnCcgfW^bkIh\ZdWd`XabrnW\W^cgQeb\ZeQ`dZe[bZb\PgS_Ydgbm`FgbSW][_wM\XfY`g]ZiaZVZcs]\Q[g\^ZfdU]ZbRcbX[bPpVcRWotwkeHZkaYh]dOSejh\Yg^bgfsTZXbh\RYpkTmnoZWIemt^Ubd^K^`VN`LsTRSZ[]YVgaaiiMIkeW_[Xv`Z[sWYE_LZyZpT\Ta~gvMNaeY\bDThTY\`e`diUka\f_]KYQm`LdVipYOqGeaaw^mTadgUhjcmLOT[VIQhSVubYchYO_\[ng]WKaZ][SQQi]YEltZgP^V^\IXVfXnag`\Q`ob`RUj`rG`O[QKdf_jbg[Wm^dbVTsWk_>YQ]Ng]UfaOTpeePacanejaYPXUKgJeNn^`ModWpejcjSIweVqbiMWD_kn_WgZGYk[KUa^dh\rKXerRrKrLZU^YcW^f\b_Z[eXUarl]GXZbiPSu[^SX][afX]`ToVo`_ebb\TzhGqYj]nFTXXiWf`R]gYkTLRP^XL\VTYd`T^XYeYA_i`fH[MZZR[Q[pYP^YOi\n[gij\bS]d_iPd_UW^cz]gV[k^f[VhaUYb_a_Z__WbcdZ[g`\X\JYW\YSetcicRfkTbWOXe^``L^[X[Z]W\[WKX`bXWgm`WFY__gWbeU^xW`kRY]aO\aajiXoh_awdR[Z]WcMaXpe\SR_PLVaZba_^bfiXP^Y^Y\^aZPKcQpOY[qRb_XZdIeaTmgh_aXRa?_XO_^^WXgYs`ensvTXPosP]]kd\mTh^URcL]ernifeEe_OY]YHe^KQjphkaEJ[wDF\Ueaai\`^YUSFim]DXYcsdi^\Yc[kWbO_mc_]^il`XkdVhVOd]hh]Q\UcT[O[HUUOtkjZ[c[dD_dgmM`Ks[^MXWdd_Z\\pOcmT_jQZcefZ_VXkbhShZP`eY`fYQ[YY\cgYa`F]cRkhUaeUWkYRIk^ZTXm[_dkeW[MQicRFodkciSP\ifTU\k`gUj[PM^V`UVd^bd_grRdOXHJbO][Y`[Vrf_^MaRUpTU^ViVHZWY_^bXWU\Y\[\YdnWZ]XaWgU`[W\U^Xbc]ebTghWH_\pa]VLQPZW\[`aiQYXrV]`dwkYYbca]\]XhZZee^^]_S^V`j`V\cdiI]g]Pdad^Z`[^[[l]We_iSX`LRb\od\fSXTY^^TTRh`[\Yfa>YOe^hRbm^jDWh`m^N`bUmIch@Kjs_njgUnP[\]_VgSpebA`d^_SihXpcQ^bZ^TgTX[^XfWpQKm[RPaUZUb\RYkecd[YXY`a^knQo^e`YRVacX_ca_heiOPg^bOVbZt__cGRc{iVU^@hf^_UZcdU\SNXE^d`p_`mOThbejNjZaSWX]WY`eUg_niNQSY^XHbYWT[RalZRnWsXXUNY[V^Tfj`_aM[cVNYd\g`X]uiVlWafoURg]^fOg_klba[oS_NRO^mTVOo|SXPTUXMcT_mQ_VJf_bHS^]]\QXKfZU\a`mmWiiZcZ[OhaU``U]Sb`]aUOakYVbSVc\qoR[gdKqeiTXT_[YTHIaTvoZXaVSVbbSXRY_bh\]kcGTKUYfKenXj]`gM[ZJZYgRgXe`eVMla^^kQZY_t]RcPoXaWccsVqWbka__b[kXdc[^]RboV]m[g]U_cRWVVWc^TZUdS^_jX[R\[Zce\\ZabW`b`g\fQTbWOgjjWc]\lNcgZb^]IdbYY\scm\VdU\HWWabZe^pi[ldkXUl\_UpamjiM\dv_MUi]oalcbJZ`_kQ\\MZX`Z__k_aqZZTT`Obba]B``EQ``_gacYaWg^^kidbT_cR_\[jdRgePSaUeaWj^Y`^F^`_gXjaiXdMXed[^}\lc[Hdob\]chh~_ij[^kX^m^g`e^iJTVVcUXYTmKTkYQ\Z\`PdiSZTekrVhfUWYeU_iPb_QZi[cf`SbdQS_LZvTSRgdOYebg`\TWYkndZlYPKY[d`TO]bT^cR[`hT]\xNWahYeWRliqPYl_Naik[aRmUcdK__cZMirvdT]k\WYTYee`a[bjOb\mZd\]klkbSWbWVkZUqhptdSXMgaVfTTkXcYcYcYkWTc_TWcZ\gej_^dhWN`sc[SPZfneUYYTUVevlaZUAMM^bibPkalUOPU\K^ahkWbofTf[`W]ZQ[hN[UX^cTUT\il[l`[n]l_o[Pp][lLRaO\sQXNNlQ_XX[c[e]bRRc`aYonmV]Le\FPesd[^oQgnSdQZV\lBVbY`bQaQkR[`\Ruc\X]oYpVP[RWmL]Jng_p=ZNI^icQoOfHFO]caj`OisnWb_NnR[`_SHorZmfq_hbUT]OiSSfd_bRRd`c\[\Xdi^p[ba\P]Yb]`VdVm_da[wcf[bn`F^_Z_ca`gLehfTWVTi]b]ZYZ[XP`loJX[LWZY`caShVVh`cYZ]Yd^]YMdahZYXL\\a[dgNaS_lFAPTtZqm]W[U_\Vrn\VXgB^]Oin^}aL\Xaa`qbr~FQXc:e^Z[Cda_hiTjdVVc_`\yNe^]fX_g^l^`Sc_Kl_\biaU^MMFrcX_PZY\Nd^^OWLSOTeQ__VlScSalTNd_YwjUIUpcUZYYe^Rdk[Q\_bXlYbqqiK^NPYgVR]Mq_abgZJZLof]\D]T[QigYQ]_CKf]b\S[NO@T\mR[Wb]^ITZnOlCWVWXUeaYgTKVaNUSdMUZeWffkndmOLU]\eX_gXakqvUDTUaX^QYgWhmUReh]adR^T[dZ[`\]dqYp]ZUlW^Pli\WdV]\_]^dcdad^_g_l]fl`[hpbWWUzkXh^TgPQ_aXa`_tfcgdVWm]S`X^W]uLjc^eXnNWhckXUNe\f`^aIWf`_\`X[`aR^bU`Wpcvi_aU_][ZYSi\c[km^\c\e^d_WV_R[a^VX^`g\V`U\YXOjvZ`XS[i;USICbXcTUX`el`aeTXr[ldpRrSbg`O\OX[iSMXaIaYbhPcfdCmKNXZRMWfNiIjf`XdfTNO^[irTXxT]YgksX`iJwEVjSMXaaEOJdZ]_YeUScPceXpjJZQLRV`LVQXVVc[`a]fL_iT@NU`d[e_s]`pZK[igWS^a^ZZvda_XWPYbUZ]ndNeRXgNPja_u`bQ~eCPs[ajRRp[QeYlOdaH_`\\PrdSX_X`S^_RY>XQfbbkleaRhNMKSRacgbhY`OQN7_dYd\]j]cL[Q^ZVlra\iMWTRIeJ^O[dY[S`XYS\tQX]iSadVcbTWmTEWbgire[WeGdlg_bWbhUb[Y^>Vlpj_PUUYeVWgVj_]YMmR^mQbbUCdcEeVW^eeKQpgTzb\d`^YhgXXpd\\BI^kQdZqIgRf_X^[jggZ\dFRU[gkihLiMa^\kbQWZ_XSFZ]LcjRaErb`TWVf]PqQO`v[_WB]^jPa`dVrtciLl]`ZV^U^^UVjYKL_r[U\kReYV]PcZaQiMRbgSc[hhaO\[Y`JOgIM>\m`PsfXWULfcni```_iWO]YXRV_Vo`WbUOXvTJTbI_]E_e_L]glfaU`YsfS^OU^_eSr^ZPWYHi\nRXWQ]jjUWLeleofVbfhkZdZ\b`YVhWGZXT\_c[_WafYg_`\]CoXmk`VjsT[ti_b^jd\]^RRLSZ\h[n\aecU\NMXiROpepcgOcWXa[ZNRbUdp`T\v_t]vFcZQ^QPdRZdZFqY}alU[[\UTUSdZUVaO[\o_p]YYYV]i^UbR[RlYW]jdkfbYy]ZWVbV\Ys\ckVkPYZdZTNhkYcjVd]Uf]Q^fj\khjRa[U^X_WVjehQf[tewO\M`dZcj_HpYX_iW_gc^Ug|~`_NiUhh_jjRpRtb`bg]rk{W\g^gkdqPoVW^m^LQm`ecNLVJbfVmXcdTYTZa`YSnsi_`h_^fbiM[l`o`cdsbncj[eg`coe_l_OWcb`YQ]`rha]`MNnn]i[YdX]dSea\]YhkcdcalhkYheh`WbZh_\\goZ[XbmfQ\]c}ba_Wj`j]a`mhd\Wp^cveX``]oc[_Yepl_^`Wdmhdz]_a\k\qakkjgVednrdnghtfbfhZvaa_lae\\`[\]h\bea`earX`ZRafi^i_nf_]_\Yg]jeYZXUV]]V[`SaWeRtcX]aS`\SRo_`g[^PZckZY]PThf[OmBUd`Pf\UPvjkcLhRcZkdsR^_@tZ[X`X^X^W^_K^YIlTTj\NZX^\c`XemG^Y`bPb[nP]TgYMkTZcY\gX]YoKV]RaY_D\XZRNcTbh]Y^RS__XQVYZT\[ff^^a`[TaUOjcNUGN\S]R_PX_VjATTORZ`SVcdU^]YXI[\W]odS]GGkh^cQhZYuUZamaWQYbk`\YZJY[mlbf`_WjsQecYx^bVZJTi\Sdyd]VUnWW_IV[dF]ZlhYMc]eaNW\a\q`VLPObeRl\Y^QhUeZZTZ\hb\aL`SP[_QUNhRWdURkUk_fSVUgUFnQPFMRVUW_T`RWZCQZ`bOiVUNj^cW`lp^YqgRs_SpTeVUaYhH^Ee^cHiVce`^ncaig\^VjWPgq^pDZKgfPe]x_fW]fn]]qMjk\aW[wUq]XWRRKftJ\aOMPUQpb}ZZtUVXdubmYpIToLYfS^UaP_adQ\[J_aedP_p\YbgShbYTREhZ[Kcb~S`eVMcb_YOZXS[r\`i^ccR[KRY[cbYZS]ae\_[ecWRJZcpnRMl_f]\gI^SlRe]`P^dd^hTXdY^YxV^ScqaaU`\QB^W`Vc[hZdLJUa[iDDEPP]S^fSca\Ed_gsmZ\aiXtQRTVUiLJQn^cN[]DShJRX[_Vo^Y^YhZp^fbN\PWjrPYzVIZ`WgVHVmaRqkiR2AiGS_S]VP\ejWqdnJYbMoSWNmbWWe`n\cVe\aZ]^[QPRMj[XZfRelU]QZYRidD^^^^tZQ\WhYS[_[UW]q]`Z[V`[uRbW[ZT`^pl^cWTLeh^jr[\_]YcZXNnhQ^ZpUVT`Ul^]aeXL]b]^^iade\WgL^^Vl[PIZq]`VY^_bdZSYHld_WQaXUScQdaXT\[b[aUflWbc[]^p_\^]g_`\VY]hlbbhEa]`hcZeZ`RhY__[Z]d[_m[aRW[SX\Q[YKYbcbgz[fe_a[`T\YZZbg^SYd`f]vhl_[d^Uh\h_jqWlGY]M\YY\YgUpRU[bctUYV_iVPb[WYX]T\bY`Ua^QiTMTWWjUfbUf\Q\Sc\l[ZP^TWscoQ\XYjPe`TjX[NhW\`fSgQ`Pg^LYXZmd_cThWRUumfbgeY\^aPYO^WjNhg^a^_Un_Vg]M]KVfUIVMSeSPfUScV[aaXpdlnMYfVWXZL`RadxXMVZ\]kVTbPg[iwe[LVVKa_fc^]fQOXnONeN[Y[VZ]^cd]RVSjWdP^bRUwE\Va\is\QXFcTVd\]W`YcNJhOYgXVSJhh`mZaTZM\OPLMiWQLPcEjJW]ktVcn_Xff`SXgW\MV_jlhhS\bPYPUgSVTbVZ\X[tZ[cTV^sebQlRITYMRed^ZUqSdbeg_b]cYTO\^W`_gX`aMR\VY[W[]d]]_d`ie^fVmo|ebUgm\\UXX]b\R[]VibZgcVeU`]`lMjaakSRf[UVcfIn`\]KkYQVd\n[TUMmIfUT[Z]f_hQWhc[`aWgZ`p^Vdjh[RaUc^NVLIc\NYR_U]WPLYHlYVG`ZaT]bljU^WbW\s]TkZdOL`[tkdgYIdhcv__admj^f`X\Y[]mlYhYmW^]O_`Wfcca^_jl]NeVW]YTVT]r^dVdY_kvUMG]bUWcbbPlUZWN\eL[W_WN^\IYUfhUWWhESg\lchg>`O\[gbkaZWah`gPQf`UmV\Z]ChObnkIQWb\b`[aO[ek]Wj[_[PWvd_X^QfSbZ]bVaZfPb_]^i]]hSqfVdgrPdYTPY]KU[TZWdSY``OYeLLa]WO]\ZTkQZT`j__S_Y^Y^ro\acVSWaiZWWng]a`TcjSfhRQ__RT_gX[oS]q\Rre\aZ]c[i^IWhhfc\fmaV]k_SsPXYVi[_dOjXL^\[YkXdXWQcSipabcYYkbefb_\a\VYMJ`QZYZ_TaZWY_fbZZo__agaQemkZXYaL`chU`dnk_a[^Pb[cQiWmN^iYfh\\caqo^Qgc`_]R^`bcX`_gn\][ke?O]eRpYl_\bRZ]hRdgN[bYaYL\ieUR`SZW[cVhV_YScafh^OOSWjHdQe\bO][YMZ]PbZYXbTX[WHaXektL`sYZeZ[SV`g]YHSY\WiQ_VYUYV`hV[W`[XHbGPUhUQNmW\ZhZbb`Nj\]ZZZW_L_SaShX]bLZSN``]S^YpV`ORYjSa_S_YXY[`GUuS]JQqycT_PjjV`F^iYaEEm^A\QSiZd_Km]I`OdaWjux^eUfe[hdbgp]ZVUPcUQV`P=hVijlJghfbZjKUfYUsaaQRYY`OU\OXdRRf]YVRlXb^_V[VZS^e]RXGIUPlX]nX]Sq]Vd][edca\Zqc`dPprLtjp_l`^UbbeW^UW^R^LIPWNYS[[WPi\QcILYWRb`e^V_Zc\f]hejaVa|g]fc:YdNmd\ih`eo\[]fZfTNsiO`kMTeQ`T[gWJW`lY{QYN`LbV^SbWaUh^QbkvTSaaXaPR`ZcYOjeQN`Jq\fUUhWRV`_WXg[PWQRhUjZ`SIWdWqQhS[e[PfTR`mWaW_hebTGheXY^[oOTZ]^hk`_Q9_UTX\]WceaNSdbl^T[qOqOfWbLVZSZWSm][`^dYpgmhI_[]UMcRUXc]T\ebd\fX[dmT\W^NUlVZd`QVOXfhX\CfgWcWHZZQ]h^KObUigh^FwNcUhhTXQdkZpUPfcZ`PZPP]h`hY\L`[QL_e\L\]bVs`RWkWTaeQtZ`]Z_]`WTo`dkgFO]`pLpXWiZbgX`lYfkd]\GYLuRdXoVw^_W]e\bY_]b][pdWhjOk^W[eLaHOQTqkdV\j`SLU^i]dejT`fg^_UVUYn_L[ZcecagOsizdoFS[YLP^^RpntfbY^c^OVjn`cZZXR\VRTLUZUYkb[Q_X^`la\TcVPLW]hb`dN`WhZ|`_\gad_]YfZWceZeTH^jdgaa_YXec^[]TWeVbZd^fYhkpTQ\Xiedi]`Sjj[[bcYlObW^UVKndDdSJtPxc\TTrPZ_YVcm^FjsTiW[[fimbbMcr`BdHXeke@h`f_OaRYfOV_WYh_|ek[``WXnRaVc^ZYt\t`_H]j_YaV\TfU`Zbiej`MYPTQbU\XiSi_OXhY[XZ|kONhT\^ZSiOdVhVySmZoQankVZ`RxUCLdgUamQhDWSP]PbqQYZOemias]WthdS\S]iXUt`KUbXK\LR_W^LaQ[d[^f]R_jWW`n^Wdm_\OApk\QVdXhWcfX]n`o}I^XZ^b\|lf[bhQcb]ZQMabda_bZe]hVcaYdTV`lXY`f]XqS`h]T]]f[^Bc\\]_SS`ghaY`ocm^cZ^gp^Tb\]M`VnWlbXbabUVdndUUgVYlb]e[XeUl_lhOLSRuo^fUdfdWXbYhXaPfcZN[ZW__i`xTWTddXFTVyP^XZ^gZ`f[ZbSQ\J]aald\PZ_UTsSdUdUjEiQZ`bQWbh_jO^pOXMh]H_NajeRi`[V]eKdIXWgia\YX_LejWUXWPWMJPkO\QcTPbX`ASSjlYL^abYXeqcWf`jP^QrfeeiN__gRaO\`IZel^YJfhOoWkbN]Oeb[V^eXU]UkPXlYo\KXZd^VWdRU^kSIPd^eQbl_aZY^][gR`Z^k^m]dsj]abuK_XTa\VciS^Kfw^WXUZTY\cTdR_dN\XikfcG^GTFQ_cacajVUr`id`XY[`OJZUSabUZZuQOOVKJP]EWbYY\dNNfJPk_SjuPY_[\T^Z`lxgMnYf_Z^fcVWPjZVecdtDh^iTU\ZqQfVnZgg\ZehQ^OWReOWYWV\i^QNd]g[aSguSw[UEsX`d___ZXJosFYLPVPYc^TaP^Q[NZh[\TZ`Po[[VXVVcNK\[`^vVeWT[V^bK\Q`pVanl]PS[dWeW]aa[Y]Uef_\XXUJaW`\SuUbKu][bUZ_S\WcVM_UOnZWhRXmtM]]]bZmIQ_[OMYEj[eXPdbgbLJ_^c]xU[o\WR]hlgWtaZ:fOi_TbQL[ln_c_dLL\YT]J]`_ahTdjG^kjhcafTca_RgJbVWdIdZTWUX_TFUWSbcUX_\arQ^VQc_^TbUYNVVJ]]Ok[WV\NdR`fXb`NW[XGGRXZY_dTj]dQRTiX_]NHXUZ^\Zy]aTW^]g_bgYZ__`UPXNle;WgVSh^pc^_Se^XQJUYYYmV_G^\_W]h]Q[KWaYR[_[QdZPj`kgk\oRh\hf\Z_Q^Xd_VT`ZTbReEdZFfi_Z\bbW[wi[R]h\^l]mV^iqjdf_XMSU_a`RgcYgRaR_SfaYfZRWpcT`]fqQ`gUhca^_abO`[dVX]]Qr\jVYQo~WKiXUjHc]YW^]ZVWd_cSUlgThbWTdbXn[NauZWeWgX\be]PkWbPdUJcO_]]_W_T`rPfSBRXQwW[YZRT^`f`WS^XTaZie[SR^dG^WNJkd]k\aSR^iLR^HL`ZmapUTj`av]]]hW\[qRZ_OQadg_UPnXH\][K`iXdWLK[kk`b`lddbeY\ZrP_cbgLUhi^WvUTP_]chk[SYVYbYV]Y]WiXZnaaqf[kfZiRbJZi[cacWgj]RQ_f[coaXelh``i]SWaWU[VdRicXZbdf^^_ua\ke`ZUi_]P^Ri\_aYnUdcW]g]RetU[_NM~ZUQWhYHV[jVXgZ[gUZd\Z^cidSQMZ`]sTW^U[ba\UbdaZZknaeTLU_chYR_e^oih^Pfe]dWdbhs^UkPURkNd_`^X_dZKWbZGTxR_VVfP]bU`pd_Yl^SS^Tb^k]RS_`TXP[gah[M^gU]VK_k^`^XYqWbc`bejel`JfbI][^`L^aVeLDOZOPRTSNRgb[WfbQ]Uncb_MicYfO_nkVVldaMi[lc`aafnd]oY^ZeUkb\cQaMWmV`XMbhQbGb]oNc_JZeblb\gl^cU]h_ciZ]R]WNRRg_e^cYebeUQVi\SZ^bcddgXXVbUSRKfRZbP[re[aceZi\g_UQd_P`eC[_VlS]QZ_ZTeRd[^lqaY^haTk`VkgtgX[T[brORWg\]f^^UY^S]`daYbeUQ_ZTdQa[VaJc`hiOTZnbaZ__c]f]^wWfTc>Oh`Pe]P_VkhWC_gLaoS\\XSa[X^aRXaXhP\d[aiu\hdkogieYc[PiOdYTifYcNcXb]I]xhc`[[YT`aTa_XbV\Y^UcZXfa\TLNlhocd\]RUsYb`]^YfVc`P`\QZps_pf`U_iy`Thg[^VemckWmVpYZRkXl[adXc_JVXXZfhRWX\^]X[hXgSk[sWY[TTw\jZWUj]O]x]]`[Z^Mdt`__\Vd_]\[VWRX[a~Ig^P`Y^jRf`\\a_T[deneHZ\YnHRZQaebi_^g_e[PZX`]d[fYVTtpbWbcsjL[b[SfSeRaXj^c`Na_jiUV\\[]b^n_cfNZ\\mTVoTTabS\eaZRXReZRcb]Xqq]vrKn^VSn^zX\[crZaWR^XcUVTu^[eOfU]UXT]cleQVXKb]`VVOZO[j`i\XfgO\\gsSkSio\rYRZ^XZgMKYMaUY^VfVXolXeXfX^ZhXRP[OUbUTQLSe`WTTR`NS\Z^`gIRb]ZWgelt^`^_^fb`^COoOQci`cncWe]P]iZchX]PSNOQ`l]j^G_PNb\_\`Zh\oMXf`WhWibq[iYKXXhYTlfYL\\]Y]bfJUckPXPEm^\fKY\IO`V]SUfvX_`fa^p]WWi_]mT\cUZT]`OR`\bXp[aij`h~igqdVVptYcPsZXaY[]p]^]]nj^`V[kMW`aTcPG\[SUKXdbw^FV[f`O\de_aWa`VKNcIbtY^a_[TcoecVZYnSYbaZWXcJNb`[OE\`\^[[T]ZmjYU[SN\WQ\`UZWYRgRPT\emgWYqFef^\NjodFeFQd^Td`nZcYegnTL]VWNNRV_o]bRj^[PW]ifigNl_\lW_xUjncV[T]_YKbZQ_^OXVZWeQbZc[gYchbWiZcc]Xdg^]cblh\`aWX`]PLd`yZi\WhmV^b\a_^]SPU_\[^YYN[P]]e[aOUc^Sc]UQj]a`Vn]hdf^SmpZSZ_W]Wl\\MibjSQ]RciYbcjXR[`_^_TTgaWkQlQZYXjoXRWd[OjUejlYSXP[_P_UaeZi_]]NV`[^e]haZZWbX[]Pama_]P_Sc[D`^TY]h_nWZqWbkQfg[R]MYRlQd]U]cmk`m]u_c[[Wm_`VaR_MXfQ_[B\^]ddbeaiTQZUTym_MYjVPRORcDgbbWVKiPUOM`kmSXbIZkM[euTVTS^Uh`jUhOpc[]QcXhHllfNZknYk{PUWUceWf_]jeMXVNV_aNdYgZYbjcU`Vv^mWaYX]fc[c`hRkOVf\z\ebQUe\`cnYi[Z[Y]RrfpVf]bmmg[YddWj[Pjk[YnSbX[V\duimg`ZeI]hejVd^pYUYfaWZIh`Mal^XQ\\edTmYUK\]WU^uVabT]jcR\P^YYSXc[p]mhY`Se[bdag_^aZf\ji_]`PoUegU[eje\UcQXVoca`D\Td^iTXJeKZlg]XbWHac]c^ZFcif^aa]aJLNcgTIoSZdc\dUS`^ShWTiYp]g]^YbY_S[`UbTQeOYYn_`UL^_cZNYRXi\b_Z[Tf^[[ahUdgVfk^[VfU_]TXjoR`jXlfBL`bmng`ebbihZ_QkZWVWXh]afh`d]cb]XjNhTR]^l_^[RXWVY\bhc\Vrsb[[K]^dILX_ZV]f^XUmX`Rdcd[__b\k]O^b`fWYZbaQ_ZkhRj[^STUZYeVapY[ZU[bqIbpiTfS`hkuXgcQcLdZa`SUjT\KTXca``XQ^UdKq:]eWXZVYSw\Hs`knfn\MRSyk\j]`RXdbZW]bghXiSbUZ_W[QecMSacWiN`_ZbZWaRGSa[VPcdWbPZ`_bWU[kKPTZ\WTZTaeSibgSW`PmZXbgMX_]sh]]neab]^aWXZVmb\XiWLTcXmV`JJXY``qsjf`^cea_`eW]X`Xb\YvRb[TR`YTJXfceNidZlxRaYS~^[Y]c[Et_a\SBnmaV_^UbJyNYZm^]9`MUdLZ\i`SkUw]ZVQUka>[^`obTa]^[R^fK_aTQbaDTa\^[UT[OfVZ\_SRG|eJ_Q]g[Xa]d^YiXSqYLgeVkXZVQf_H^jZ_bZlTd\]VbMjeSYWhgQ\TaBXRT]dgWai\dGX]___\^h_[d^ueYY_OV]XW]eUU`ZWUgh]RWZt]WXTj[[`Z^`M^abK\TYl\MVS]jYTZKtjnJd`cnahRY[Uv\qVZ`bVuTM`dYRlQ\R]eZhdSZYcgX[m`dUfgiN_\WuSQQiiXb]^`YTjVNgaxQ_Tn\]OOOhdU`m`QO]\X`h_ab``\JZTU^S[d`ZbNdjdX`^X\ZRVRd`IN`SEi`rJ_KUaa_OTpT`c[WW_O_hej_ac]\`ea]YLc]qi^W\]slZnFS]WZpJdje^cXSoTGUiWnUQ^WY^^mV]gX^_>]^`_]Z`_UYtuNdVpY[]eMcc^iZ_XIZWIRgO_a_]^[VaZjKOGH_d]QeKdlUiZN`FbbY[_V]Ug]V[\lUXrQmbhhaeSQU]kW``VZ^x|Y\^gUQYlU^Y^SSXX[\Yb_dV\eZlUaUWWh\h\uZYe[_^dkTPo_Kd[]_g^jq]TkNXUJjWiZWQecZ]dU]SWddhaifnRcteI]eLbTYbaU_fhu`sac[[U`T`^ZQ\dJd]XcgSHKI`[b[SncOTYX[ce_dnaSY]fTbfMUiaS^V]fd`IZ]XnjTY[i_bjXW^[ffSa^Un_VUSdiZY`Y`eU^^\d^gdg\aV[^[a]UZacUogLbTceQ[`]e`Y]_WPJaVahgs^fSReb]H^]RY\SSWdZ\U_g_^XXkuc]dNcV\j^SN\[ajQPSOo\fd[cMci]\O\ceeDPVS]fdjgUZhn]c_TaicVcfWS^mnYg\c[[p\bpie[^Z`ZVcbR[UQXdh[kc__`fed~bYjNeaqV_\]oSJ_QRUadfRhlTi^Xm[bZ^XrZZUV]raVT\_Q`[O[aJcX\WSSaPZ\``OV]SrSfSngW[d]^kQbSXaca^\XOdc^c]Nd[iYh]Ph``U\n]]^cVeXXSLOOjWXn`gca[KXgeS\SoiPe`gIMWkXkLjSaWbddbP;abbcaYRSWSR_pXkK]mUY[[bPUJdSamV]_X\dK^SZUp_h[mJdS`VV_lp]p^P^^VFg\VobbR_Tn^aniZX]Ta\T_agbfeq_g_biVOZUVO]ZYgMi`Rdb^he`aYKZ_iPd[WQaf^`l]x^\kgX`^sganUhZeeT\V`ZRlXS^UkUOhgS[u\rT\lo`Xp\f`^RcT`a\Sdee\JObT_P`W[daMbcgj_VmY_\VhisPo]_Wc^ZYiTZYiUg[Md\aaq]Oa\ccZh_XRVTU[VZWleQ\I]VZf^`WaY^jce]]OVK_XcXbYgbcbPZieYa]VVNWXibbITYQaPhddQUaQUebUdcf`jQWdP`aLZ^\_LSY`^^XF\^NbXdp]bdW_\\[WTa]a]gobW[LVb\^R`la_YSeIegRnR\[bdYjNV]ZN_SWkM_TMj__]_XPMvkXY_Oa\JXYh[[keWaoe]]]ccOY^WbgfN_cjVic[\n[OYecQcRbhOVO]Z`ZnifcZWY_bHuajhZZZb\Oi^ETQVLQScSdKgh`^KPOI\YjaV[]IMPd_sY^fdVk_^heXJ_]RUcbd`jQ_`kR`UZdYgVVf\Q]bgMJagp^fX\Qg]]LMb_e[fXf_cd[YiTQZY^bW^UcTPh_PY]gXNa`lceXdgceYpV\[[pdc_cXZ_UOX_k`_XbbUeXvfg\[oaphOabPU[VcaYtR^WLZeVHa\WUcnR^aaca]bY\O\f`Zckdd`Qe^RUX[fZRQZZ[^bZhMS\k\dcunTm`USk[^HXmhQLUb[bV_i^fc_`QiaalVTUXYVZVcm`\aJ^M[t\W]gUT[PxfZi\cWEbdMRN\Vh]mQgXVb`hOT[^_EYSU`V\fXTR`igaZ[jZbObabaNhoLj\jTYZANVMzW^^W_[XNaVu]NZX]abi`eajPToZQf^^Q_U\bUVYMh`alVUfaPc_Tgc_Ya\bYNWSne[hq_YdbSkXeZvRaTeV]P[]V[vZeRj_cgoss_e\a\V\XYVc_n[j[Z\LXqbW]eZj]bZ`UXJVa]mWNXi`_^nY[cp`eTmM\dcNV]d_RUhU_]STXPRbZahbMiKSUfcRPZOWYZRcdPfcW^PVol`lbWgO^d^gXxSUR```c`wbfVP`][]`ebYiR]TXOg`ZQ`XVXU[Sk]`daihdW^GRiNjVg_]_iiYe`e\XeRZhk\`ZOaaTZ^QiqP[Zg^ReZ[cHZX_\aacZ]XdQRTQm`cZ[\a`ZW\jd[ZYjPXRkaWUlXg^WW_OcU[^ba]TcZWI`b`Sei]SefW[`UhdVijgYfSXT\[Q_jS_e^WS^^`SRXrY\^^bOb\YffYNRfcMbUhZZi\ZgaTPqofWk\_PdULqeQ`XX`mefQ]N^K`jQZW\\USUor[a^[c^cY]\VaS_edY\\POP`te^\_Tk^NgmVVUdaIdS]aRT\VgVl_bre^\w\c^j^^`Pa[Xib^YfUV`nZaiiaTZZWdrO]Y^K^bJ[d^wUaSiJS_TN\gj]]\]aIP`j\[chr]ZR__^R`_gcbXYTQGi]m^PboSOTohmYPXu`Q^ZNgT_WTcYeeM]lWj`QbWmunYYdXJjQaX\d\aZqWfcQadp\gYeWn_\ZoNcoaeXXYjq7P_[@WjZ`O]eOJfXe^\_OQ{Rc`bj}rUscUH_\]MSR]y\kb_OJZGe^X[VWSWUO^Y]P_fXU]Z`KOpYYZqsi]DS]e`TW^VjdLWb_oa^jcceQT_pRbZbSc]UWXd\Sjgd`M`\enVaj]RV[\fP[UVlPfbpK][_XkmPmlQicSbY_^XjdSU^QkVYgcg[]lZlgfXbsSJ_dX]Y]b\[S]h\YaVZwRQWdOYjTaWk^Yk]TYsnbXddnb_`]pPWYVO\Ygf^TW__Zm\N\]^\jdwi^QofY[^[pTciTXW[hNY`eWZlyg`IUSSeSVjkWqWPdiYgv^`Rc[OgYicoa_Ti^d[W]_x^nQfeibmURq_hLYXg\\cah_eg\]eVXbfSQ_d[]PfjRbf_RXPKpqc\PMZhfg\glZp[YZZkbNWS[d[gIhZ`Q_Sb\gU]bb_M]vXRS`^QdaTrb\n[d_Q]Vpl_elbOdf:fn`ZTbP\cZbbO_UkWTkOrDgedf^`dNod\Uh]RFRgZ_PZ`cbTZ^mfaX^hRbjQ]`laSd_[b_cW\SjSaaOeO_s_laaWX]iVL_^^MQk^bjUO|Z[hhsRSBWdR^lhTaQM[U]Rfb\UacWlYWbGeRu\uX`SNi\^\bdZPhXqe[ZbT\OWa]mVbe\IeT`iTh`TZebeVoQ[a[XZWp_]][V]nhiXRa]XMQgcZVSPjac]]de`NNViVZg^[SYegzgY]o[\j[Y\VTakWISh\CU^V^fiPLgYcLg]][[_VsX_^[w]PZP]Db`OaVpfTef[jRjQn\TahYQj[kjSKO`bhXX[ZmgQUUc]L]bdJLcqaTxlkSR[]cvITOd]VhS[[gaoYUW[M`YLd_D^ZjZkfnYup@Yhe`aZb}i`\^_bUdnpMZfTYjbZbXXaeUI\`_VQ``nRLreY_R`[_dXd^bH^befKU^cd\PWcFb_POV[Z]bleNZuLeMfWedZrU^bhXjrejXk_XSUZfmZdT_[QTVGpf]RfVWWR`WW[UIYc]TobiX_b_Z`f\opZbbX_m^tW_NW`Y^XjemkWKOW_]c[d_egfRR]isR]uWZjNXmOlHkUg]aiY^U[dO[qU]a][`c^]\ZS_kV_i^PcfQ]XypZRQ]NZZg_WY]aY_]]TZ`N8T{SbjiaVejSYhQnbYab_TUi^aVSUUfrW_YIa[`[S`\VPkWQfke`gajSao^JiSWO`Zbh`]SYZcYfU_V[`DNklfkbYYUVX_^XPiM^PZO^\QqY`_[ia\TSRfPZhcUasZKfYfaLkO``b]JobdW^eX\xPgSMdO]a]q]aa_]f^ooYWj`_ZbdG```cgQ]HdU]WYS^^aMShRc^S_eiZZ`T^S]RT^tOZcVl]ZhsmXqNUcX[^dZ]]D^[^_rjSUVsQRSPmhm[lXsOjdbhan]^_\RpYlW{]_f_MPY[_KdSboj[LPcf]nSeVcMfcibd^^li\bWdM]_^LaWcI[dY[^f]RSDqc^Y^OhdYTlf[SycS^P_gVXfW_Z[c_^^jTZT`eMqaeWaTZV^]rbdnXl^XgVVcZTdcXjS_lXYTU]hqL`_[WQ`Zfd^NmXX^b[^SaSbTdTZVjS]aWeQN\QXOdZ_S`VrS`WqgUSbZMf^OcQZT\o`aYO^VvYOXaMKVfSYWLXVfS^UcYJdQdNqef[h\htg``jeTNUZm_PZ`FVJ_XWbLZk\G`]iYndYh\ZQ\U`ZelUpdW^n\aU`]JcdT`a[hobXnnRwh_U^Y]dQWXUm\kQSWSoiTg\Nge^_NBWpxH]^lXbUUaXKa_Rbe_D_YwYQbWapadSdgg\UWeXXHip]]tf^SVe[e_ToD^^XX[ZPbmha\Zb]UQnaqa[[OQ]^TW\bb\Oc`\[TUSkWagXcchT\LSS[cZo_qbTPl_Nd^cMx[^q]n\q[]tam]URV[in_^W]_w[c\yO[kad_ad\dXqbYfdjXf]]dZ\oUbfXV`e`^XdaOY_S\][e^Z^cU[IaYiJS_`e\\_[f[MZghfkj^ekfYgZ^hV^Qf]fQ^X]^^a=W\icpT\YOUZVcOX\\g\e`dXl_HMJQgfakWYccZV[dgYOWaa_lUaVU_qcc^g_\m_c`]W[SaTXZiqSVTaWb\Z^S^g_UW[l_X]\\eJ\PZXeRYWjUYYW]kmXoaVflbXWaZOJiWZhd[J]U]r^T_XcV[hXc]g^[NRh`RW\[j_eck^fNuawcM_[JOZ^RX_]WlQXVabW^YT`egVT^ldnVVgUXf[XUgsg_T[cdPbfgci][_RQ^eaUiSfOdfOmgTL]X`la`XVWa]^a^]\[ae]^Za`UQ\Zebk\\bHS`[b_LQLgbTHWVVUZ]\XO^GfbT\RiSHX[UfRfX\TWe^Si]][X][RuufWdbepgVX_MW[ZaX]Sbfe\_afRY[dKjZGqdhNbZZ_cS^bQRYb]iU[eT[QoL]SfnI\YUY\eTUk_aSXVl[YZ^UcYNRZThZPQTSFlQ_U]MY]VoT\nRW^V_KnTY]T`\iaI^YYfT]gY\hoRGYgZO[ZQO_ed]Lonb_HX\UrQf\cV_ZW\lRYeWGX\Y_\e_[Qb^Z]IRYc[\a^_`dl`dYku[bIQqedFo_PkcR^\`WHXTeWDVYajYc`YcRXShcUhT[ZWXQt_efZrcjW[dXYnOU]Wp_ZamYBcoRbnSdfe^_[rU^adZkO^LxTZ\yrulNZqKOrg`NU\ZW^fa_^pdagidm`]Q^f[\cccWVj[_b`Xbekeej]Qc]cXU[XShHcdddSU`d^T[`TjYXWQb_YXM_fZZ`^^fW_cR[[g]UdcgaU`eLS^YSYbeWg`r]]WdN^^_GU`ZkWfFlgGPdbMkb_\hjVS`Zd`S^[Lwe[ddYSc\_[Xe`\a{cn\dNJLefciuij`Oh`^TcRoiQZk[Y]Tid\dJ_f_VSjJbkQj[P^^USYPu^YgR_[S\[mnNbV_W]b\[eV[jgQZmfkbKWYc[aLVOiVhSVc_VVL\]UVUXbW`WTNP`UWkfRUqlOfJfYBbU][cWb`TV\bhcf^TXOodW\o\_Ybd`ViplHrS\J\ch]`U\e]b\[Q\hMXcbSZYagV^XgaW[cYi`W]\g\T`YeQVYV`O]X]Wd[`hPelW][TY[ZbWh]c]fbN]hVTQ`jn__^iYTYaQYecOQsXdWU\XWb]``fUMWjW`u^eZccRcb]YW_V_]YZcnX_UkTdX\icf\YTaQb^UY\bnlgckLaVgZUbYaUaQRP[d]d_ebaSZbVQ_\Q__WPjm]`]SY]_a\KZWGTabZUh[O\OjbhHavsfO^_c_TdW\mYga\fb[X`SRQhQQj]m\hVLG[e]QjQ[d]Z[Se_[mN\U_me`\IT^^[\[ZT`jM[YeX_ZlqESKSRYZOfdJX`WQWRVX^qXgQ_g`dY?QFZNgdWU_hRi^Yi`gq|YZaZSjag`[Xjg]Tfi[l]hVWajdeplMTTVUbc\eVPR[RHYP]bLY`a`hUOq[ccYRkke`HWYJe^OqbaQ^kifbZibWdUWYkVfVM^`XJfcQdeYd\eg]LZZO[kacYPP`_T[`HcUVWvqNnb`\^hZ]^QX\\\fj]bUR]P^o`hHP]^UKaSU`keqVZTaVZtm[```f^\O`U\PTT`QdMbRKZ\cV_iW__\ff^iW^Re_dXimYVdrSIbhf_i[OYfReYXc\f^RihWZPglWLj]ZXjdkYh`WP]MU`iSUPaf_X^\HWmYeVc\eY]_SfXpVuPV`[ccTZeIjeXVW]k`YKoXdf]PLj[VA^[W^l]KZ[cbDWnb]dgMR`WXfD]\p]e_]m[TUgipkdaUfVie5ThkNRWkkWdPOaRX_pfYZKL]Ygh[TO[`\[[Z[h^`[`RcE[YUU]VelT\aVd[]YeqbIc_QMp[RW_ypckhRiVP^qbhdf\RV]MfBhah^NZ\Vgbb[Qe\P`\uUZwUX[POTS`TiwbNSfWPJY`ii_e_^IXSa[SjTZbP`_YeWQSXUk`[hc`Uka[][^\]L]N`hR_S[LXXVc_edXUsSqdW[R`aj[`ZEY[Uae[NNZSa`[jYdTTVkY`m]hbfcRMiW\e\I]Skh\gh[`hV[\c^_QU\fdiY^LYm\a_R[]R\fbpW^VXX^bXZM^UeMliTcQmjVUcTbccMQdZ_XZXWNTPjVcj[ZhV`[`DV[`XcSTN[a\QfHcaU_Ub]ZeU^tdbXdaW\O[Rbg`pVlc`O\Xn^\jZXc_e]]e`Z\WMebiPMk]TZ`SbXW_X]bZYUZKeWd\^jZ_]SigNX[\`\TPS\uPufOUiZb\af[^`TkQzihhqnudV`visjeWzidkSMqUY]_Yc[WO\\Oc[XdTWbVZhnQW[a_iUY[X_kj]MYhodddSd^\TYNi`WXbUEPWapT^qOU[cZZcXgXXRcYa`]ZXTdgN[YOcsT_Sd]]epO[X[N`YOcZY]^OXZ]Va_[ZKrc\hfL[Yv\a]NXRkh][Y\ZSabhZvatbcYXd[g]TUoQgQfrc]d^WT^SYW^V\lTb`MZ\PXHjQdRO]VRR\dTfMnVMe^YMSXXXE\U^a]efLnbO}Yg]]a\h]PLoUWXaf]cVRTjdWWhTgZ^d`VnTl[[kac_RT\h^^[LYl_XeOXPuZUNKPoegZjY^\W^E_Q\rhUcaifacJZ[RX_TIPV^ckZMecZubRPkWQ[HgfO^aPdXyEZa`XgWUMc\_^M`XbbfS`XFLXZK\bXRUY^YUeKT]L`gWhZXZdWI[YehXSq`fz\_[aRZI[IZLQNOVU^[RpVVo`bX[`PJuWXe`ZOTVVZUk`\aZ[aZpWLs[fhY^VKW]_Sop[[Ha[OMYXRcUfcZiOPXITG`eZ^I^TQgSceP{_T][_vedekd\WcjYep^Yj~i]S[^Se_X]dcvh\bgVOpjdd_RnxYTbKUlFOWm_ceBZlZYUkWkg^XRU_\rpQf[O`VQQEShaV]e\ZW`eYUaf`fjdk[SY^[\Pu~hTZlhVmc\cMsoSel\eTV`a`iiebV^QRXr[a[GdSRWWjK[WVd^^OSla\Scfu\j[Ym_]ccaYZV_]wYi[eSo[\YUQSNYkVMP[nfdQ_]XUXbXT_[[XM]QeRred[TbZhR`aj\lmGefcCL_\`HU`^bp\\fPdum]F]V_gSaV[^Sf\dV^XfnaU]bS[cujkac_vcfcZ^W^_\fU_b`gdhKU]aS__m\dbLSeWopb`oVGbwdhINgfL]h[dWdQ\QIWV`Uu]g`MXsheOt^^TMj[RgeV\kR]RbcYab]^d_Z\Ui^_^_[_Yh]Veb`J_P^PYd]fVPCT\WQUJ\Y\XKN\TY^jQSJN`gdPVQT^lB_Ya_SY@`iPdaRZ?Uc9XWJbP\lQVe\^fQYOjJ`jM`TQO^[[Yf[Y\TlUaaQ_c_QT^``IYI[NZmfVbO[[U_[ORZ`XcemYOFfjK]`fEcUaO`VPX`YNX_Tc]ZebSbL^\a]\C`=f]\iqeRcQhTcRhqkgkTnVYd^NRUIgTKgX[N\]_GeSGaZRe_hXadjYWWXR_Q]aeX\mJ\HY`faXcd_a^P_NTRJcTmY_OW\bac\gg[L_YmSWQpG_Npe\RYb``nMR\Za^anhoZYV?jeoGnIZ^[uG`P_S\_YdTkUVgZeS`bjitY]NjZu^gY|P\cUZYSaeU`DcbgSYla]_]Zk\bgK\^Ukc]K\UogWcUh]aVaiq\EddeNcncQadWj[^]afjR_QINhbn[`_cXV[D^[VbYiXb_fVW]fkd^[prka^fTSd[]Wc_c`Z]\Wa\XV_PfkRXUbu]da\WbfTdZcb[aMQkV\lXgfWW^jk]W_eba^_kUP[ql]dg^gbaU_hVWaKa`c\_\Qb^kdRUdbTkh`WnZWZYgZe]Z\NQ\nmThw_uQ^gV\cee`cccS[`apQ_VPhX_kYr[c][RTYtfb^jj__[]`^]]UfWaWNdjYi\d]QU\Z^VR_WeWd_PpidjVhlMeZZVUj@^UPaYhjQQn^[ZaJfXZT_Y[cZ[b\mMdYMT[Q`b\\lMV^jY]W\SlbN^VZQWZUaV\Ze_i\drj`j]V]iZed\PULe^`lF]bP`u[WNTvb^]UIjTWf_NM]Vb^WbpXcbEUq_jKfSaU]qfepUZfUZ\cYedUThXclYY`bdYkjcaYZWlbeYXb[Qk\f^sbgM]o[aN`ea]lX]P\^f[Njwh^ThbWiYea^YifWLh[TZa\ejXmUj^gZRiY^g`YjqPQhbcfYTPffSLbeicaXY\\`ZgfNaLedOUajLZn`Rhg^ie[UMhi`QiPhjbpXlm[Ut^lU`XZ[[dOaQcZ^TkRa]Y\j]SkL[YhhS`TK\IeTf`W^[c]TTcgQUaZ[cZ^\VU]V`cd^f^YZSm]VSoWVSxbbZaXbpLnlt]e];inUrnmZc]jbXUcSnY\Ida\`uY]YTmOZ`nT\]Z`\UbLfWfVla_hR\`cf`aZRXVP_]MZUh_gY_P[_`_^_M_\maIh_RbiRiRFOtckpkmT_hgiV?`ahVoWjRO^Wiiak\kLW`_^U\cZSafj]a\XE`_adsYdkfeS^b__l_DceS^jhmfUTJ[T_`LoTiHgbTSZ\gkRMM\ZpZOcl[YPS]VJSOHadHanWl\hIUPVg`a_YzVabhl`RPdlhk`h]WdyYQZhpcOjhUbUgg__ccYQ``T^]S`][b\fXZkPNYRVWfXmaUcaXRZXTTgW^`YZNYLfj\Ygb_^Y[aQX_kIvSdUZQ_hfNb^jTb[XfVZ]]YUZU_MPgb_XhdQd`RU]]Y^Q`VN[NSL_\VT_I][\NYRgWXZMnW\a_MUfia`mK^WY``WFMdVeb\g_^maX][fhVc_jWdUvV^l^QV[^hWnO]^WhL`e^\V[fS]ccc^WNo^gVlcc\SX^SUcYKUj_`g\cczl`deG]\\Ne^XkXhYgKSd]dmLdTdPX^ahNbkYW\hT[V\\cZXG][a^[`cah`g^a_Z]WNIfiLa`i\ev[deLX^V_VerhyaZULaXvaf_eXU^`icTsZtVV[UKYKQYR^ePTdRiP^c]jSQYagjcpMV`hcTRZ`aXdilc]eIbPWw\Wn]ngGWb\WbYWlWYUj_eX\]ZSdQda^[VBcgVpXlY]Ncda[wXV]g^V`UiSZXRS``a`UgUcial^aXcQX_d_d^Tk[dhXQTWUYfQYe_dxvlh][e\XX]]lsdPr[dZ\oK^T[PVjYh`QPVM_MUgF\[bTaUZg`ZMLTb\h~[XFfLdWbnk\kaY]V\_\PwZ\Xd]g]\SQLYfcf]\XQXZ\`Pwa`RdR\HcY_SZWrTWW`dYaJZhSQk\_h\fs_\geN_ZVcpjpcIlIdixeM_bXOZhTptaQkZW\R]k]U3`OOcjd[R[bfjQkeXeiWdN`KXI{RdSXVKS\`]bW^YeYbQV][_YR\i]ZM\IZMej_jEW`b^aUu[V]c]WEedb\JXk_YJY]`[C[\`Had_QZ\fcc\oVfKV_MiVknrfWSWrc`acwjh``L_sSWMMm]aRU`jdRo_mXd_c]i]\f]\Ue`faifPd]Kjgib^nf\\KfSb]_O\[YXYQsZN^aVajWr]qJZbIZZX{mXOTb\ft[ahZab^gIaRY^nPaha_^WNnfV_PHZgSMeAdS\WVVXTcoQXurfdacU^od[M_jNWdma\WcePNVTZ_UIV[7MRIdhgdkah_S_qUXdZJTdV\^bf`kTZ_e[`Vld_hU^t^JWV\PZ_RC[q^e`XbPi[a^qfV[PY_Z^_WPNdli\`kXgQihe`RMUa`dgSKuab^ea_^WcP`_\YDbR\a[UfQm[[^afT_c\fgbWXjTgce\c]rVebmYjSgfisdbKfj\Y`efgnSXUWzjf[^bdjVLYW\`\ZTaSYOZX[if[`]iU^J_hdSfU^]S`^LWiUedWWXRa_V_hfVSeT`gO[OW\YsYYYbcV]c_gknfdVX\hX^`hnjqTfO[STd_`Z]\U[aR^Zc]sXgcfqCY]VT\hagQ`VYQVVTje_WcchN_YSZ^f`hBSZ\`^ZjYcX^[_[YoXQieSdP[mXNR[_XhZ[bOTha`Y`Rdxg_rR\`cYdZmbR[XX\i_hZSeR\n\hndmXd^dOXVa`SUgVgSU_iTQea`[V\bmf[]V\VnebZhe]RPTkVTcH@cNMfXaXocYf[jeYZQjk[p\VhR_[]]_bUbfkIaYkXXsXga^QYN\TzU\TVY[drXjjdZ`]cfWbfmWeVLpQZYhJjd^]__fODjmRb`d[iqMP[eaZ_d]_YdWZhNjf_][e]~UdYIRemc_g[`XdFNaZbYai]X_d[caT\P_XT^nWVJFdh^[\nUkcWY\mffha\Y_kdT\\pW^_c_tTl]e]LcTOlXca]\Ya[^\Z`]gbU[ZdRV\TPQYPGUmK^VZQm\qYoLXVVj[eVjk`piVeQiOla`Yd^fgdY\iX[^Q[P\Z[ohcfd^VW`^rTQWhSW`Y`dhP^Xdjg^Uai`MkdUaWiUjfTjX_a[^PcTR[dWIXZV[Ujl`WfY^ecWa[fAiQaaVYaMgaoR^\fhT^`Lv\fechN`[[XXU`KWS]i`rdVZ_jeLlRdXYfoT`a]ZhjjWdNmV\nhS|_OX[YcJTT`\d]T`p[PYY[_xiadVlZVlZ_kaQ^VYWhSreY`bvhRbhdKWWQTTbH_^kTcUdf`fZUeXfV\aZ]S]b^yijaMRYgnOXYYcfdg_iXncbZ\RWagZWaPelab^YaG`]qmg]lLo^[mUik`iM\M_w^V{U]RR]KWaz`mR`Z[aSPgkZ[UI|`f\WR`UjUf[chV[[FTYSnej`h_c[[eVaRIb_iWY_ckarSPiaQSGR\`eVLf^mSfcQ^aXll_NuabZnhd^^kV\ZebT]UUR\ea[mVcNaRYQXUmgVdh\e]S{hK_XfeXbe\]n\OS\]^WdPSCfVZ^UrZWWQoT[lfT]]A[LWf\[Z[Wf]VgOkgcU^a^sJSYR]bQavcXl]KUeicS[^S_c^d_`cJVfQgUi_W_y_mTYWhPmsNOnX^bY^WP^cQY`aMjOXaSog_NORhcu_qkXbbmliZgMKMRhZ[\a^j]QDbYgWXgVY`hWn`^IaNjbVYZK^X`UMZe_Rk]iQ_dXVK^ei^Wc[aYn]ha[Xc_L[ZWdRUYTRaaZR`[]]y_b]iMglLgaaZX^^`_a_VWX`Na`lU``ZnZx^Z`fYD\Qj[TbZ^acfhzddo]Yg`cQrdZROZhYI\\cN^PMUShUg[dXO`cWRcUV`PbbYW^Rgsq_bRV]_lXL^_nZPScpQdbTR\e[m^V_pegVgcVibdkbe`Q\WXNV^Iy\^di\ZlV_]aeYvTVaUacRXUXPMsee[_V_UbY>WHVd]eAWQRc\TYf]_kXL\RdaSyTbke_jY`hU^UqVggTYYPVVwVaUZ_[HgSadU^xa[deNPYXYcb\a\[\EcOYUW`db^V[f`W^\bbYQ\OL^[|`e`o`V_\\d_PSf^cOcRX]_d^XgaRka^`ZemV[_YaQZ^KdZZe`peTgd`a`pXp[PaS\fo_ja^pVPO[aXWag[ZSjbXZh\Kvu\TY`]a`X[Zqn`^TVPU_f[]SJLRfSf][V\^cRSUdU^X[`Zi^Z^Ue\m[aUS[glaSgPHYa`g^QI[XYEVU^d]l?^ee_^Z`[_UbTPaQdNTY]QPbUQW`Qgf\aTDG^qWaULaaVW``d`e^l`aWSgqZST`IO`GYSne_\[dk[^aW\^ZaUUYZjQs_Q_UgraVTV[T[M\Vd_YPmTha]Xgntf]_Sj\YiWbWZ[aS^eWkaeaYehdPXbmYSjff^bjQae\fr^qsU]V_\PXMLTcn][[fR`c]Y^h\bQdhTX_@f[\]gp]brc[nZ[]_^dq]OYRPcbXqTMcRSUbcjehVWjhWh^Xid^K\wiWa^l_]acfg`uZX]UT[d_Z_NgTo\UU_^cHWeYXeaUSg[xQd\sd_hgXc_YhUsaU\^IehcPS^ja[iSSe[^hpS_f`afOcV\RUkf[[XF`^\[SJfpI[gTYX]SnS_l^]`cfjT]KaQ]WdafTYYYP]Y]d[[?RFUTGiZdVdNUbcHOw^LZggSNYgZNnc^foIeHhOSNVTvLSVXhCTfSYU`[PRoX\WSYcf]UVQ_eXaJplgGfsRZdWWWUgQfiX_h]li]{XGT\Ve]]V\]XkPUc_XefgZbm\[heaSmTjK\brY_IeSZ^QbP^[ceXe^Mig^U\XRSirZWVgSQVaZZVSe[AfS^W[V]gx\ddzYUkaSgpinI[ZZ]uSbU_fc^X\kdd_gZhgkTeh\grhlddK\MUlrctOjh_PeTVRPbZYYMW_]dedhEj_b[ZuWVveRXMhbRdPjYwWMeTWUZYZ]OF]nadwNO_RZgkvkbj`[^OWlXm[YaWWb\]HJcb]aNuV\H_T_c\VbVUbWWIVecYkObe`[\PWRb`uW]_WVg]U_^hc^aVnYPhaL[`^WaaeT[h[ZomkUlcPScPQ^^K_J]f_v^Yg]c\`jeY`]fagNRXNMlh_T^]`V\fjQ_KUc\QUs`dQW_flQh\WfMVgc_SPXOnX]TTR_`aO]^cjYY]VaeWaPjehZj[kXWa\WfbPM\xWbvVSQx_NQYkqPY[\leRd]SUs_]jfZ[YU`]UVY\kZlXTWn`bZV_Oaa\]VV\`S[hX`]oc_XsmhUb`VVO__WhOk\gVUjUP_YdUMa`]Qdx``Rp`KcMTifPTRikNgY]W`gf_X]cMpIk[h]KVNaa\TO`YTTlKk^gXYS`YYljiWdjga]f\`eTeR[[kdW]NZ`ZZ_q[]lYdNOoL`eb^j[ek_\QFfY]XkeQ[bkSd`UVWk][^PcfmbaXjb`^Oj[ShZO[fo_gmbJ]`XYbV]h\c]`TSQoaYVkqT^hTi`TUdj_XMPY]`iTYYWUdar]TTc`O\P]hWRkWWse^k]QiUVaaLie]Teah][d]^ZbSMhimO_S[[UcqgLhYm^cyeijY[`N`]\bhYa_WGXRdgJ^sfI`Y^noY^i[RXj\[cn^Ib]XYmPWcVUNtlpPTf^SaOY\bZbVfV\efQTXj[_VcY`WhekqaY`>VUaaTT^SabUSZZ`bad\^VR`\XnIa\WjUhfU`]ae[coZqfi^Za[]dQlZf`j^aWTK[ac^W^xjRwdldV[[U]HfRWU]`]Z^]WOZ_`\ve\viPfqT^^e_]Ua[Z[YY]UpcU]]ZTl[TRcbbbTYKDbTj[SgNQ`g^\mPd_V^ab_N]yKb`_Z`gVde\`MQ_aUWS`a]c]Mjahcpg]cNMYfa`\QReWnUS[^_Qif_kfKaLkqZ]^T]hlldofRjj^k\Wvbc`]_Vh[l``[UVZSb]Z`aW^Rd^md`j[Sabb\bPNZ\|KmdSYTbhKf_fSQ\v_a`h_`FPhcXOI\ZmkRWRPf^^PbeSZi?\mKX`rT[P[QWZbX^NR[\_cJ`cPHa_QVH^jVgLDIQ_XZdXrpR_UdTe]TH__SN[YZY]SZim_jaTa`UV\eX[n[oq}^[]VaVSjYT]dMmYXk[XWf;zk^dYkOSWScalVXd^bXkP\Rj]Uh]kUWO\Y`igbK_bR[p^_eg`Q]a\eUV^\XgnfGXW`^S[jHS\\Tr[^b[[OO\UgYdSdZWXbQiS_eNa_\iXcQ_ZU`FYViNgRRPkTTXa[X]k^XVYTeROo^febZS[cn`Um[Sn_`\m]VkPX^U]gMXTK]fWfWkXTgW\Zn`uVPPJR_fh]WSgbe___RqZRqSXfO`WVdhZ^bTZUPHg_qPhZ[cTZ\QR\Qgrb]`eQgej]^_aSTPcW`_R_Wc]Xb[YibfWQ^mnS_ZhASbe_DiTiYoREWU\m`~X]XS]e^t]haHnXtjjj`[WaWaTT[bQL[^YV_erjYejV\NJLidbhOh^tW][gdWfQ^^ZWbXdc[bMO]\SW\SX^ySR^]af\ja[anhaXOcYie`LXPX[dMcWebuq[HXLP]Oah\XZgeJgioRcgT\gcghnZh^gQW_`aP]aZb^Y[ciZ]fYXXgVlNY`hZm[\^PJ^TqeURUlSfNSTXMDmVeIUX_qjd^VhLPaSXXdSoLbPn[]a_^cZ[Vqa[c`MWlPnhc]icI[hYNYuSb^gc\_cepkY_tia_m^zXI^VYfccM\_hSNUspWUQ_TSjRk[ckt_ZUgT\Zb\f_fVmNHaOa_KaSa`[aSUYY[XXN_o`d[Wf\ggQUf^U]`jb_\UY\VaaOh_K`[nrbZm\]aS\Jk\vT\Ye_VdYljfb`co[gRRSfgRfWoed[Wgc\RlciafQ]dfcdRfUWeaR]bReNcZQOagk^df`\eOSaYc^^neKeiYZYkaS_UsWX^UOUZqnXYdiVf_[ThUN[H_GogUcLXWgfhZ__dW`bX`h`gdW]TYcrTS`aaZdi`dYSd[Dbe]r[^e[VY\^Qef[QnVbYT\SgXJWkhYXch`i\Xq_dc_qbl[Ogk^[c`ZpYKOSajaAGW[RdQYaYSdRa^G`UcY_kY\ab^RWNhYUR^X`ad\Y[jj^bdphX`fRk\^c\^V\NXL^`h^_YdgRPP^Vc^Y]ojdY]dYfd^eerReWYf\`^U]Qf^Vh^rb[[L_j^Yc^W[:n[`efaUeYXTgbTUTfQc]f[ai`nUeVWd\x]FXwdfaSiWcTiY`aT[}ff`ajXcafcJclZPmliEeTTPQlRUdX\Um^^d\Wn^h^WYQY`RnWYc`kPc\KO^hW_T[hhcibdFNUPW_^cV^WjYboYlhm]acY^YYTh\x\NOUZU^YXl^WmUSaV\eO8S`_]tuQmTi`UjMW`baYX[^hrSH_RW]`e\\HR`cO_hb]WVvV:VI^_`SO`e^bOKa[YbYi\XS\NYWTRfj]iea]gV][gZW`iWWcpzh_fWKdNZUUehPSiIbYoIJ]Cng[fQZlN[L^NWecKSYGHUd^OVhPNsaZ]S]YSTX^`fxcfnT`\^`NjOe]kYeXShW]ZibaYicbc_UW^o[eXfa[]eUZVmaM_RhTQObdY_jejZZh^VnO[^\`ja\W`^Wp]_SPV`aXcceXPanT\X[as\UbLePkOS_cac`Z_b^`RWlhT[eSgakbR^`lW`e[kUhb_a\^k[jee_Rm^^TkTSYIvXqSgY[eUjXpXPROemfmVZZahgbUQTK]j[E\WVW\YoVcPZWdpdkWfdYSUaob=NhZiZI\X\T\[bTeyuTHmKcbltf`T]cP`GXVZfw`Kjmq\\W`YfRZgjoWg\_ZfbtZ`d[OYKdBfdTU`b[[YdK_]WS[dX`[bCf^p^JT_LSY`^kQK\sT[VqTa\RoX^afGb^\eejKOKfYTOndbN^^FbHbVnYgyaof]fe`abi^_MbNUkUifg__cYa[euueFSqgeiVagPaT[V\ag\Wjhh^\RcYIOOaS]P\WVfg@\[_UXXXR[YmNO`\XUQeqlcdb\\Va]kN`H_SSgYYQXcoQchLUhVfgjSIMIdWKBMO_LUodjbR`cHTQC[rdaed`EXwXbfkXXShUQ][^VmhWPiXmNXYfcOVFWX[XiY]Zkll\[ii^ZbcThfPh^ZX]_YWiV`O[YwGX3Wc\nV_PITYQclMhY_W^U\s`_`gNyit\XSRV\TZ_caTZU]SbWZaMeBUjWVdL[_c\NlQtL^[gn`koJh{cRv>dk_a[JTV_KjSkOQ^vZ`\Z[X{^k\\UGQ[`VaSVmXeX[}UbUYYRJ{XgZY`^dPqka`bpbal]_~WN_cYfkf``ThjjWYVYKdv^NZ_^beY\TkLiOQTk^c[_VvoencYQ^Rm^Pf]lS_WVp\q_TWYaU[d`YbeRU\FqUL`gaVYTKS\kdXhSSe^h`J]QPqYgbnVfM}VKxrfmM_jzaQRNRnSaLWgZZlWdHO_YeX^bWYpcdiTKd`ehvXk_Rhe\`nOd`l\mWXnbcfqnSTn^TGLXjOsWZdnSXbaZ]le_][]OZ\kYbZYV[ih[b`^Ude^FXc[vW]`ZbRjtkV^XDVL]aa]ZWZTOMboS`jD`ZnrI`UU]qa^ZObJfUcwbe^quQtkTic`fZ_[miGoU`ZabSVjZgg`VVTeVWgY\R\WUVGUxeVnaQ[wON_[SZ`X`iQWc^Z[WlfdQQofR^nVVd[`cYVbzciLCJdWW]INXY]XcSZ^dMeJNoqi_p^Zc\WTbRpZ]vii^XaedSnYYj_iqlImjaQgqPjXf`ZmgPP\fbY_Z\hYX\YSVlppmET?__le\Kd[_Th^jl]l\`bcWacY]sOOb^aVWQrTTimY`eT\fZ`abNOQKUfQVUU^Y`P]W_[da[hYdTYThdRXB[J\Ri]^XY\bf[_^ehPZU]\_odP[afbZqZX_bVfcu\SXehr]UdaiZ^Xgnbi_[iujaVTWRgf`dGb[Lc^gWxfb]s]lgmOdqPbRd^ZeU]h^\U[WihnU]NZfVmLcW`apWbf`Z`RqI\p^^Q_vH`TZj[akd\dorPdddPMfkMu_gk|X[RVaPjaPd\midZO`SdUiPQR=eZXC^a^W^]WP[]vRfdN]`gV^TW_h`[mkJbd^_X_]\\elUQUCTj^KPVy]lXPUjpsVQ`]^W\beRoT^XqZP_Rk_PLZ\]\WMsRZ`ercRv\h\nPiMKm`VGXTU\p_cV]JMRYaQLS^VUe\hlYYdZ_VgaV\ki`TY]`VdYO]COdQcGLNa\RbYQ`Ve`cXW]_XKaLbaJrWi[gdrjFaYhJabZ[TcNTgMe[OggWqi`_[][sX^RTkKNR^mVfTjSeMazOf`kQdWXhe_EdYiinbifjSfpllRPTz^h[_mTbfWdia`Wl^pVTUWZ[W\[`Y`URYd[di`aeYVwS\aIkS^X^UanWPZXao_W\Qfeh_P`\aTdZaZ`Z`d[``\\Xb``VmOQT^WZaYYWa[\\W]XTj\Xa^^_ON]X[f_bN``IkQWeo_T`mjCdY][\ZNhRSjRZrbe]QVh>ZbFS_`XWMmbabGV_UT\rVLXRi_gn[`wUWWUbXpoURYb]WXhUhTVkTddWV[\X[b]aSZRpTXg_g[U_gXReW_V]sURn_Yb[dfNS}ox[Q`SIXpOX]sPRMaSZ[X\`mRXnd\V`b[[pWDkMmXj[b[c`Vd]c[UZkcca]b\GPiad[[kY_lbacbWgdj\Z[Ughd[Ki^pZ]X[WdhTbbTIde^pZ[nYAX[\fWqUYXY]V[j]\pZNLb\ocQS_OW[clZOTfUbRjeMgUNOR___]SdWk`K]`Ya[i^ZK\ba\gtbZTqOj]V_TtUlYh]NOae]RkaKrk[Bk`Ug[IxTJOdx_ZanT`ckc[nXoXa\MLXelZcf@]XRccYES[YUabadLZoVB^aXf\aXVlf`dP^[UlnjWSZWdMOhZ_jQXn`cJSRb\R\]ZNgPeWbdZdhcdj`OY`kZkPJVfifC^]iaa\YT]Ph`Stmk[Nc_b\NbpU`lbcZ^U]fN^^LfdZ_ihbDQZWZ]T\[OYZTVYJlTe^]TZjZTYmU[dS``\\_^x_ajiXQbZeR_gZP`jgXvigTWTlncH`{FY`^p^OW`Gpf`U`BLQbzoRbT]`QSc4jMROUM\oKicPbhOW\VQH_Tutel]PN>WzfhTYZZoL\`YIHep_YsVYT\VVkb`ash@Sgm{gjZRIKabR[lXbkwzI[K_[y^gz\ZI^kfjCYPH\LS]oNosapOciMI`RYqmbCdxH^fZPQ^YdYRvcvnT`b\Shu]`ibR\ZJ^d`N[e\X^[X^\VOg`]DR`OC^X@_KPWReLdVooUzgSliMhUYQVa[WIZSa^GleK_Tdl\Y{Ot[Qb`bKxZoWQafZOuRenLZVYIT]]][xhaA\maRmc]b]YCN]]fUWVp[O^]NU\ff^fRVV]PkXQck`jgYgKNcPVMsWo[YUkbab`\b\YpjbVZIWH[TULTYq^W[hZL_kQZSccIcQjkDWYaSJYEZHZZWcOj\\zhiVYiQJ\YRguc^_nfcQZb~nkYQcRZSVXl^T_\nmIi_`G[RVazNQUdOa[zVc_ipvYi`r]geVjaYcPZOfadOXLq]eVtrXYPY[nluqPmR``RbV\RcgGXHmgiX[YcVYNoa~ccjQhnWl\TcjaVQS\XP\LledS^dZRXZ[_Sm_]bZIXUeXV\]X_bjbUPcc[hgj_^Qc[`\][T^qe\ajSYb^XIXa`e[pgUxdn\i[SX\a\Z`eOWZg\gZgWdU^[^Vx_sYrY}l^RRsX^Yt`_RdjWUfQQa]XlesTXOWoqdXagTgfXFq^D_]USh^_ctTOaijUkmn]_XUbqZ^Ra|\ei]eb`ZlTaQXfoNclMSe`Wd_UvLS[NbfPeZrY`q_[_TQWibkg\]_fgoT`Jo]naEujYc^lO_jn\QgnLk]_\c\o][fmie[_^Og\na`E\P[embQn[XXYg_m_dTbjK8nV\TUg]tbTUZI]YY]WNZgUbk_dVcl`h[ckbX[Q\_^W^l\STZ_f~fvldJRgUQnWfZSbefeKY\\r[um]T]gaITWbYXrjzXlC]vzd^_uRKaUNbb`vJCXH[ijHa\lbfaNbiNkdSzW\rub[JWSazMeS[GYliqTN[_GVnP_gLWWdeWi`QIPNkZXh^VekQ^Zsc[GhLXIgt_g`ob]^gfUhRTY_[]Ya`fliUf_RQ]ipUboO]NNp^j\PJohb]njcoKhZ_S\bY`W`a}pW_o~lcSdkZiUZSUWdStW_hSa[hZR\V^_D][WVcOSt]N]WOZf`YZTXZaicVFjZB|WkZndaSZiVrYsYyXdO`XbmeLqlbhhg[ihVbrXRM]b]mNaDQt|OtO[Wlb\QiSj`RakW^bUUnxm`VVYcgTZqfWVOScbkbQcRJf]]YiQjbriYfcY[nNCZaa^lYYaUer9TK]XPU^kZZ~dSYg[[\H`lRkQZWKZ[TZ[x^TbfXn`h[jg^XWSPlmfN^RfYfU|[`V[`\hVZ`jWNYef`Vj\W`bebVb_XaRIhS`Md\}b]bNniZa[Vd]SVYN`VdXaS`d^PMS]f[Wrq]XQQVet^^^Zb`c`Kdhfdaa^hpMje`VrhS^gXRcSdih\[]XhPQXY_`Z_[bd^\M\Vx[RrfTQZ^S^_[Yq]e_VXlM_XWaSHYegBjN_Q[dVgRWkaxJqaYdirRvq6c]h]UfO^hZdUKSSQelWpMcZ\c^OQ`fQN_aZZNebRfLx:dYd[qUZdZ^h]LlcRAxcib]Y_V]JeD>cIPdU]_KuYZXSJmKa_m^h\GcZa[KjY\PZUobRhcPV[IVWN^c`ff_`J[PHYXicXqVac[YlaWX\rtc`H^Zabg`cSlbSb`Xn`KbXgcfjo_sbHXOp]fcW`PM^g^nZUTf_gC_\GbFiOwUNMX`ZeYhQXiTh]Y`fOZY^g`en`AcpR\jV[KS[fjZRhT^bdUG`_]aYbkWcZYca`iVkXmTaS\]m_l[\dekWvNSjpapWkXRT]lfa`XPJ[[kZqTeX\N\dWjI]qeHl^ZfbcYK[WI]Td`co[_wZRX_hUTcvj\aSbkdYa`ojXapdJYX_^]YfW^cPS[NK_Yfk_eWYOg_chTeq`UgklSdXV[\h`VqPUO]X]UZolV^YhRb^Sh[[e^\_^[Xig]d_kM`hFWd]W[WRTi>LVY[YQhV^mPSjbzfQXoY`VbcUcWc\cm[imcVV^Z^TcmS[`^P\c_RWWeLfYdIO]YJmPW^ZM_[>bZY_Y[XkjW\KgUIM_`a`WW`LQeb|][lUc\g\M]eb\W^IPSjYaY[\_PQL[hVcRXRdb[fbcU\JcaVlYfS^O_XXRV}VZQeeigpSU[dU^cxfccQ[PAPcgXFTE`jVFg\^ZvfrV]diXQ\zlo]h[ZcZ^WX][SM]U[lZSHPagdcfeZLL`[lSj[eMXWZQfdolvZhpe[R[ZCWLtK\]f^WRejf[IUbOZUcuhKTH`kWcV][gZqMZNgLT^kaYM[fVj`{QhiVgwZaSl`Meckf\\de_bVW\M_]s_XM[Rf_][fceTA[bW_Q[Y`eDdZuS^Xg^as[bZVQ[ag[jb__VjqkcZ`VmlQW_XJX_al_^F`dGOaVfi[e^W`\a^g]xaPlhb_k^TZoViePNXa]nUQVWqUjgXWb`kIffU^MV]QnuQefhRj[hfkVUZiM^aY\aOegXXh_cYUSVaYjQcoXjc\ZeTSdbdbZ\^dVR^bQVk[gQ^cls\g[fm]LjUleNP]WZvjL\gUbtE_Wb[YbWycFjT^yaMcco`]f^U_aY_U[QOZRGRf[QXaYdhhdPPMd|JaeMpM\Vebf\ThZ];Xg=Uouf^Fa`TbIUVboLNFXiOIR`RhUeBnNlVfVd_Uc]UGpoQjmSSiV]m[zVdGihWVViXt[d\WpXncYZbo\XwNk\Tb^nOWxSZ:^biMR]GcHUR^^Q]iYxMa`GvZcTU^e\laV\SIZpbaJrpTZsY;SNrZeZaOY;re_][^[dpf^bUKiPjV`]iJ\\^RRidbVWf^jjZYJawMEwNYWX?|MpZQGGS_m^_^V\>CIPf\bd_dY|L_amNZ]nhkP[W][RmchU`^ThgMa[lZKR\Yc^OTW`aazbJd[W]T_L]e_dQhSjW^gU[_lgDcS[XRy[m]S^dZ_kUTVKYY[ny]_`Y[UT[gVehiTdMfVnTp`\ZlNYPhdY`a_WiElVGe\mOaNY\fidcW\RHJVTR`R`WcPZUR]MNOfAZliWRZjeiKuYOcaZZ^trbKO^jc^VqI\VT}i`l`^VhLmRbbS^ZpeWSa`g]lV[^sYdiRZdOqaccZXRc^lSb[QedVYbGb]`QHZSi\^IPaRneX]WsWk_HNoY\bYe^QZ]fFeXagdVWqjWb^P[cbX>WYhrnSfaOS^\iKKiX\`UgaYbU\TT\_ZdVWgasbZ^NaOOZYaeWyX:LiPe`b[^Z]XLSM`_TpXT^^cWvhWdicOfld`qZjsXPjTj_bUJUM^MWXV`eON]uSgUpdWxm[b^\WcQy^[[Zj`dgJ`OZa_\^[ksSWgTWnjpLTmYd^PUc^iXtSrmI]WlmcZiM]gYb`EQ[e[UWOqY=\hlVyVlejha\OmYOZlc\WP]XXc`dfHUVgYoTKaWMlsXSnST[WsXbWjZCc[eYigZTq[Ze]Wq]ykLH[[RVNTdRP[WYd]Ojdafn[ViE`XXY`]XiP]^RZUcR]`S_bLab[U_TP^S`^W^jnc\g[mWaOMTb_WLIpgRSJaWGN[LjoXXIA[_hR`Q^gmO__`_bcc[Uok]ahj[ZK^YM[YOVkV[acjOch^_fa?_\\SS\^JyM]Y[KidkXfSbYmXm\mUfcY`QV]M[d]Wdo[D[USU\V_fNkdZ`X_jAicTQTa_RrXPi^_`^TeQfcfXRWePUmQ]^\bWaelqXo[abhk`\WZbl[Zceq^T[UMG\_>fdn^drElYfX_KWfTad]NY\WMFoOgefTRaMKiqoei[Zo]]y^^bx?h^aZPhldB[oN\CQ^TaUpUri^bb]UX]EaqW\wgSmnxa7Upjuca]bD[W[RLVZPYB]U_guVWkeUZjmWm]ZYW^e2gra]whdXpmam]wjY\\\gTeVWs]\ljcW^NbVV]_MdGI]^Vu^f_oUWTMsiRZk\ZWh?gh_PippmxWagYWcSit]igfU_KUWQcTde[UYRWM`\fO`boq^RR^[iGl\ndjlUZ]ZibjfaVb`iU\qd`^N`lNGQbhUMT^hFOYNXqZ]gRX\MVdi_aU__e`gWSVj``bu\__fJ]]SpbhagcaX_`~VPdgU[jPcX[[Ln|bg[Xg_UQ^i\g\RW^bHd`xaae^q_cVPZcR[bYckldh^WTIl]dfQigZQi\h_bWZjdY][WPgcfYba_\JWskTJWbkglQPWZZYo_olVX`MIhg`bQc]jNZVL_b`jonP][m_lZWWbU\Z{Y`TV]vRSV]igU^SQpUlmTc`^a]jNNaMWu_SQGZfb`V]fd[aWhQpa]W[gkORF[[GJPk\ZjbP^`LVW[RcfJ_]W[iXUd[[[ccdkk]J_iKmbd]DgX\qT]eQ}QWQLV|^Pa]j?NP\]gfXTupPt`OeUYi[h4ucba[_eidR_FedTa`XfYXXW_da]ZrLrdF]]^WhQUEOdPYQd^bhddde`gQYf[[bd]aOOb\TUUakRad_dmOXTZiVSJH_UbZUaUheI]cfN_oVmlTZme_f]_HN^U`[jxSfH\dIAKKu^auR^bXOPimfVPqIj`Hovio`QiWebiWjx[a\mOd[V];icZvjYuaKKsUcYuScXjeOX_mkUnT[Y]dm\_`VU]VQGp]X^dPQTfeZdG]PQbdZTwgXacUOZuJcca_UrpNTd^dSFfPTRc[UuE_i[PXk_jYHWVlTl\f~khYY__fT]RWScZb^Nf`IVWOj^WUSS[Qh`]HRwZY\HW`dZj\Xaj[SRTgVTV`UgSoghg_b_lYcU\^e[XGYQX[cZX]fO\Kj`bfZse\bZikxyI\iR^`]XZW\iRkenfUVqQNaYc]aaO\bU`^RG[cWPWU^PcQ]jZK``\cLSRm]^XKi`lS@_mhiuF_Z_XeR^LbbbxY\ZDa[YW`dkNhfV`PbT\_ZZjhM[r]~YRk[\X\VaZZXipn\Wg]ZQfib_pcRPeiYc]]WSvhi^Yqw]aTjn\[VQPZl^fWNekhNZcX^`NVSeY^^_[Uf\acZ^`QNhgHciY~aT`\WMOlfENceVdEe\Xh]hgbN`YY_UQMoXVle]ab]RLXcXh]ovgBfbUcn`bYePf`X|[LQcW\TcgQnY[jM]b`VRaoD_\U\oWZbX^^gYSchf[`XQZZ]sTbbhV\UBuLVRlUbPeYKXUgWPSVXjc][PfrhUeZ_fn`Pg_e_VNZklmWLNqkQr^TjlfccWPXZc_\g`_UaZQ]fXYWOUF\bcPrV\^Pa\\g_iXOOcSUio_`]`gVYbeQ[bb]S_EQ]]OTchU`b_\WHY]W]Sfj^o\WZiW_WhOdnN`c\ba`kiDMg]c[NY=STQsd>[[QY``_za_SKQj\QmYYHAVifadi^Ij_dt]UeZr]c_`kXkZY]]dRc[hFE]}VeW[iFPQya`ahPZ\]X[n_naW\\n^ccEnldT:gTi[WcPXaUYXe`_QMl\PhcRW[fejNm^]dXx\`bbpjTdnYZmlaV^]fd^ZYlVzvdRX_UY__W`SbXYl]mrNYZbcWbTj[bKg^oiY\L``c__dmJpccd]ch]RdPE`ZWP?VqHcOV_]\[Ngn[jbnphQiVVMab\SWdRQ^Ql|xVVwsFQ]_kUW_TbZ^CXbmnJd[j_KMf[MW`jHm\}i^cSYTaWue\eLZYV`ma``aV^lEVfnSMaIl`XoWjRTe`lcUfSd`TThbiM\QlY_[eO\c\KaWm^UW]\Rn]T][Y]gNXtZT\bY^VLWdsgbYTcUTSaGaVWU_YJ[omcl]UZf]ZmdLdq^cekikThckgcaVcZ\h_PQhUYmj`]W`_cQX`\S\fZVagc``IXW]\YbXXYcfmbW\oSU`Nh[mjZTY\W^RRcdZhg]rPYKSn^QWVUbXcip_LZ[[GYebMzpkfeVVVZ\NyUTWna\kVc[nW[`kxbcY\S^`Zd]UVU[fPKfhmaHX`Z]VTakfR|Xde\V]GfTR`X`kEYXXp]RfkY`Np[c_ldWSOfLNKhVNN]ZYm^^`VP_dR_Me][kQZMcZTWmleYZXYXgaad]gGbdT`SeuthZZUYsa^MRK{YQdaQ]kYOU[]VN\bY`Vi_RnacKVZZaQT]c_Zomd^H]UbgWhfQZaV|eMP^j`cfWleechQnlfY[i\jWSTcb\ulWROKbrUmZKkVKjZ{ecFXUsaKZXeQ\rIvdO\S[_ahWd`kiQUeTZtmlg_lL^hWg^\bN]adfW\NZZdlaa_koY_`nSUX_`]jMXban[QIsab`bLn[XLXWhbUgdjUTjXfVZT_XTVTYwMd_^rkXdbV_U`m_mZWHnTQZlaWKde`gaKlYdT^WUbmchSagXY^^Rl[aQTXgeoX]VUyV]Y]Y`^fdnGZdggZa\_Ph`bOb}m_M]lS_bgve`iSUb_SbOKncj\XrTaZmbUj[dcb{Tu[TdScNW\dRfRe^fdhp_\PU]aXW``]c_\VNbX`dcXWdd\Ueeb__gUhscI^jaW[J`_lSSSbaIvA^p\aKmYQZ[egzh`iaSaVgXhj^emkhGXc[O]XTY[Oj^d]aZhWp^[[UmSenP[|abNPd]fce_ZjRQU`P_c_^d[Wlhmm[PTVY]WgbXc^Rdb^]Y\fP_wXNb^L[g\Uf`ZbkcgSTq[PeTVa\_dwPaY~mU`SVcf@QciboU\G_WZg`SWXgc[YWIba_IMf[hT\XVQRdVKxTeM^k_WRt`eOSWbZdWFcTs`afKRXaSKoXjZg^ZhgeVuVMK_^YYZgUZMJmTZY`a^b\FZlRrN][|Me[gES^cPaUcSZ]PfcQ\RiCYz~rNt^Kh\Z_^aV^[`PbVS\V_Y{Z^M[QcebTa^dXh|VNeiebBmnV`Yci\\\gh]_dOVX_ZdiWmUhXaY[Rd_ngb^\c\RgP^T\V`\TFPPT`[n\[bhTcUvkPTrXbZ^XTGebWhSbcTag\cZ\`y\UN^I\_bY]O^ge[y\```XdTXZnhYjV]UuoXJSc[kkTW\b]bOTpcXe]Z_xjZ|fQKT\UWkY[OjVnVWYWRkZdijehu]YkYpRYRSenPcGX_Xcg]WdgQTY_KQPVV\[aqLfbJJfY`ZL`TTdaU_jZS\UmMRR_[[SQ~QoNQeJn_XfC]LcWSE`i\e]_^WgbjbUU`iVVbgWR`eUoLX_tmIVVJPadbMK]iWnjL]Oqs[Ug[Z`V`laO`R4U^\_]S\FUKTUpZXXNQXR`acJUMURLNUcY]ZgC^TwTQdUcW^QmhdnigB^ea\_^NZWdk^xOHTRTVbJen[q[Sb]m]X_R^Wbpd]UTKgchnY[McLUcjaaSaTVhL^p\Xg]bZ_lUpeZaewk^_Rqi\[]MePRWX\fncybW_uN\c[RVYZj]nJ_Z_aWhJbshhU`Q`VmU_SINVxuSTJShTWV^^U\fd[_dbXZ[^\RSdgS^di^XbYa[frYYaWZYS_Ydjc`ZVV[daObah[TdZs:]YKWaWQM^WaVad^`U^rTjdvL[R``[]dHYok[O\b[kJPyPmt^=[]IT^=gbrBoTfu[UqNMVaXjuX^_PbOej}dbV_eHNskZYlbAKOu]]X]{TTT`ejPbaMZ[^XfeZI[;LNkplPbJSiLOOTt]vitnb]ip_Rf{bcZafK`]eSD]kRc`fjYpYJ}aZbLMw`Xbcp^hUipZRicMiaf]ceS\fLKSdePoZQ^ncfN^Z_[KbOJa\fd`SUtY^J_QZZh\_i]FVL;^YNhQRjTnPeS`]Yxc^YQZP]AIq^iK`[Y]z\WXZStUSikL`^[edW^{QGNpoSkiqh[?vpzfjbmZ`iNS_DNjgaZO]MWgbcb_`^]NSpQZtNRpi[PdQWbjUl`?Wr_^}`JYY]a\e\P]OkMVYkYbZ\uUfdVeWakl^g]_cVNY\hdoITc;cbPcbK`VZXSDf`WeblcUs^LWPLZXZjTLVhZ\PKZ\hbZgX]df]Uce[a[k[dYaIPZOW]XcbXRV_e[blJf]^fgULV^SZ5RcfR\]aXEF[KP6XTXWzp`SUuK_]SeI\YYd]`S\WKO_YzcYeP`ZsUJZhQQZOckc_FlY^b_kXp^VU]UUb]Xa[_YXWWeaYD^XO]lYVY\`_YmUHfkdg\]UOtYSKeQCL_^QYPaVq\_cW_hZahQqZZlRSb\bYlwYVffY]rYMGNQ\YfYcZWUmThKUT`UOh^wnacbRSYZ_L\gWgh[T\ocwYiY`X`V\ChMabeTdXt^\Y_YcYOIad^]b^R^Ttgl_TT`QTanK]PRbdaWfd`fgbMfhcgheOXgmafcYh]YcdmM\_W]imOh\\^]SWoYX]k`g\[d]WggJeej^hZ{nvUeW\fbXbdFf_ZR]\b^``Z^ufWSeUW\^jYZN[iPkfgbYgn]eobfkw__d`VX{aWPdbcf`UZMgUSb]b`VLJ\m_kahm^^bfW_q__Rk]c_Uhczj]jgbhhaWig]oTJ^]b\]X[fpfee]HX[fY_^jaSj]P_Z\efZYZd`YohnblYlWYotpgWeo_[bj^daTb_ny\eaRwje[\^s\sX^e`gmedSajcW[e_Xjd_[d`mkpbwfb]\[]]c^ad[V\W\lncihp]^pd^j_b_pg_e`i^aUx[cUTabhuXPWr`[fh]jfciZgXQ^]\X_YYVMVR]`]YaXbVmf_`h\gRVTcfeij[BPe\WRpPUb`XP^[SidPc_VM[`nfErmnIgZgUU^Mq^[uWb_XFUPLPsWDbdOfVWWW]Rk]T\cO\jT`a^goUZRb]MfWa`UZfa]VnW\\WdWqTiLVaWV[^r_]]X]aeQNedT]dQ\eXidUV^imS^ieZI[]PKLmP\^V]\OaORVdW][`_bk]Z8c[a]mgMNMQ}ZRfdmWptXQYca\a_eh`cWGM`\rjacXbhgeEYvibanUbPJ[\U\oeMQWj_Th2QRZT]\gohL`dNoUQzbUfgZQ[Rgd\rRwyWdcmIjZJ}nXfWOfHOaqK`PX^Th[WkYfiQJhlZVhJQ5RGR`[j^dRlh4SH\ZM__U]f[cRPpjV[ljN|^_j^gTY]htRsdQbg_^[iee]ljZ[zcVY\Zuhgup`^E\WsrV\ef`hee]fEmhZ`V_fbe``RF`\`cv\QdOQi`hGT{UXlYesePq\ZaS`\__s_RcojWQG=abSGKlcQpciqc_`FLXa_WO]bZma~NTecFa[cR?vZ\hxbiVyQiYR{kHf]VbxVfeab\WNhwjlTLwn^`SOe\ItMUV[V_UYZaVPbWP]lU[JdkeS`[ZD_@\\XQ_cPVH\j]wODh_]aVfe_]GQ]mLZWdYgIeG_^\`NUsWP`qUDQY\abM_N]_f^__OdqhQVW=]~\IcidV[@lTgYX^UVUihfPcThU[uhtmRgTLgd[iX^mqWc`NX`VhKebcYTSTa\N\p]VZf\SieUAUmQT__i[eg[^Pf\cTNitjb]j_hpTfkV[c[\``z_RIVbh_yKHkI^hk_R`QbT^OgOeaEPTA^aPmU[Neb[X]lr`Pf_wVechk\=adPZco]YaLK[UVTTZpecgJ[OT`FRbWV^ehSb{gHYbTdgYR^jWYZnWSWj_W@Qh`XYSL`cQafhWgagbnp7_YaKmvYv\mP[YMmP]gNNdPmOcmWZJ\X{NY]YBgagZVPgUrpX_ZRRgMkkP\jYX[hj[ZJ^PkYM\biLW?TP5VkNYOWdxBPxsVpeeml`sLR[_\\TnQJ_`T[FSSUIQGX]YgPgXgmXoZ^kWa]nnYO`^m`edelUZakcb`XhnPLCjVa_jM\rbRQ`^XkZ\Qa[[RZ^d\RQWUnhdZXzd]R]fhbXd_oS\UlJj]hZQMofcdp^X`UjQYJW_^sauYhchUid]`VP[_fUQebZaZ^[gTc`Sf`umeYe`Ncd\aaVX\aac[]sYnOalKaPePXOyQRaUtPeaWXp`ZZfYP[ca]Z[ZbIVj``kdJYWc`R~cZ[k=XW`YEZTy\X\dba[e^k]RObWMp[b_Z\EQax[UL]icTigbJdW[cgTKde\lTc\O\W`NUegiUpQcSUeT]e`nTRihZWQKVzhXNyIi]\RVS]VKfkUcXbYMUPr\ZPVegyJ}fYr\kJhvMg\e{aTR__cVgLiR[\JV\`HR\]UnWaYYcjtlZioVfUKBONc\o[hg_XSP\ZeQ?TSWkQQQkK8Wr]}bUbKmXOuhjhUfei[^Ray^\RfP9XXQcXxnXfJTZt~D[tdcalSed]Xd\c_b~^fViTdWZhOeSWOxocXzj>ei\a^__X`VPX]Xh_vdFkZb^TO^Q^e`XTVgpVLoQlYZ]U\DorRWRmmbWgcHTMi^YdWT\W`Z_u_[c\ZOfXTdSXRf]oStGTQ]Oq[WPXe^bf]`J`XVUqXNi\W^~P`tSraWVQgsNpoQVafMay\UT\`Q^KNbMb`b}aZoo`f_Q`PT]`gUc`bYTiYjYZUckVq\WangDe[xcqSbh]`XVw\GVfXka]eNLlUYc]X^YR`X\O[Q[_PbW_[DQVY\t[^]Qq`^af\fUlybeWhTc]YhdQcb\XcYfQ\OeXT@k_[fZacOS_dTderRkgmll]YZ\nWgeaaXXo_`B[YnshWr\K\TQ^nZW[]]`Qf\``[Xt_Ub]`Rmo]^CPleo^_tab_qUmbRPJWY\WiUpR]dHYUgH`a]ZwcTHma_SgX]F_aF`e^ca]SMXbYe`]JTZeWkjepJdVMuY[ge[[BHMeeQ_dZiK__te`fonZQVtm_U`R]xUTD^ZNd.A]_NgVIQQn^Hg>eUa:mepZb]\gPSghvnT]VNR\K]\^O-vPoxOm~n^efBLs^Qt_LLS_X^MUeFWoNTa_VbiV\pXgR]^aheaQSEegSWGPcjc]dc[a]_ebi]\VraLKdaZEkU_YZ`aaZV`bbRRXTVIPLU>O\acWbXS_]P^[^\ePdibhiiYk\z^O\Sf}{ajfE^d]nq^]aTlfbbdcSgVOq_a^fWXgOcXc^VUXu`f^o\Ob@cXRYcVYk`Wri`liW]k[mO_gR]VTtVLRTZtceW_vjedenf_Vtdc[UOddXjg]IWUOpOaTicbWaW\Vjdm\jhWZW?jkQ_`bkfR\[[efjTVGcfSTURQOYqNRe]^TJbq\hD]lUMhMXW^QeHT_XUPxZxR\gZOREmV\OcnUWe\p[ZWP_X\^W[\q]_WfhQ]YV_cOY;i_F\_VWYTR\WLiP^t]NLiP^\[oQBMVaqaFLqoWPXW\Ulab]bWVXWWAWflQc[__]U^VZ^TRZWqK`UVSYWRWnac`LOY_ndHRUWi`UgRk`daO_Z]FYNtf[Tq]hb`[e^cgcUWqRalne_oXjcTNg>WWIQSgd\QbZ]ULE_iWbi\TYfkhk_dO\XbVdfmQc``pgdkr;WbcN\POdw}k_caTc\aRrief[\]KV\b[I\^Xjc]]fZcZkjYaTr[WQYVTVkcQ]b_byYm]UnX`\[mY\WkWmLO^d]dUni|_ae[cfPI\U[OgahVfmbVN`OX]_co]W[kOW_eX_Tp]T_]ZbpQeYFnWqdbR_f?[[^\dkb__i`jfc\o_yjbLrga4oNRbe_Qm_p[OiT[fPfaVPZ`RX`8eedchPZX\cTTcciS\odiW>Tq_mVVRS^]Z[ibffPZ_aQkKYh_n[YHWgns^OjRaU\TmYq^fkI]rNYZYPj\lTleVglnYiSBf[YVYTdtH]YlbTlZjVXZuasE[fTbZd\bRsl[X`WR^HTjfbdG[uqna^SUIhoZinXY]Oee\]}O^uTgi[]fGaOdwZueaScK\]\a]^TiTZdSfD\FiT\pgUhThad]cR]^mghqdTKetbfg]O`]M^`iVU\caej\f_HeY_J`ai]ec]d^`S__Xin]9beJc_YV^asI\SS_TVdZ\V^\XMdeT_fWL`XC_SUQf]^Sh^VZljhLh]N`gTQ\YeSaZuZR`aQbT_kVTSuj]wekgdWlYchbnRM_eYZk^z\PffZ_`ngahi]eXTWcpba_[J]pZ]o]O]Y`^QZQnOo\V_QNNdU[h`RbfkXYV]fMem_HWTc{V]upYTadoXMNrwmbhSZWhngYhw\qaObgWZ^]\yY`S^aXsVhgijYOa_qYk^XfWgMm^]eWWmXLtcQ_ld\fia_Z\VMX]Nd\Uj[\_^_QVNYbZL\[^]_hVY`ZWgXkWbRZaXm_WJtSY^pVZS\ZS^QhMnoeQ^_fbV`U^ZhZvlYa`JcZnKZg]_TRUW\_\HaY]VKjYWN^Q`Vgp^_Z\Y[TVbj`MicZH^OESehWflGWRx[dc^\[|o}Y\rSivW^~FomOVTeQH]hj_WdeDg^da]`VUZdpZK[[vqY`WUqvRTNfk^xgpIbc]fb`a\VlgPM]fXT^c]bXaZZYJi_YyYRVk}Taej]QoUeO``UZip`IdJ^RZN_gYVu`UGPc`T`nX`Q\\XWVXUTjM]^WVVLgXX^XObIbVoiSM^]mhL_]w_{UOwelbaXQaL\QbhkhhkT[SV_dE][X[ifUQ^c^]u]inIlUkOjX_ROLhQiX`W]diPPaeWqUdZ[gRhf_dOl\j`aYWX^XZ[_aVtVST`XdZVRYr]`S_\bdazFgZP[dW@YPqaU_wP[[QiUe_iRV`]\hjVLbng^lY[ljYgVMcktTYZXoZjhdLVh}_lWjR\S`Z^G\QdK`WTRAQUQePQQ`sVlXRhSUdvZlQQM`fk[Wa_MOLXN_fV^\]u[Y]`g\OX_bgKeW+OIcbHaxO\Zp_ChirXYj^Wi^RJb@AQQbX6YWgiYL^^HteTReYVU]fW]NkugfW[Pc`\_^qga]cXzlYuJ_`Eg]WDP^V[]Ua`kZQ`RMk`WSlkewa[Q]X^XzTUeV_gcNLfgeIbjPMLhE^`bTlXSj|If]\PW[ZPe\eZisfhTSS_]H[Y]ibibONQbNWU\\`QgUZ]r`PSSjzRJb[RndghW^W]`ZL[Y]K`qcg_^GPH^mkY\Y\h`NSRRQUWSYeMh`b\eiUO^_SeaL`XZgO^]]^cUTa[eNTRaeek\^L`n]H[kPZQpZXHDxhUQ[`eyY]_VaihfV_TLd\IpNna]dQd_YWHWZdmT\^Ug_\KUgggaXbr``cVZO|UWc[`bbibaFicXhjdU^jkSj_nForoZmiee\a]g]dKpCjRabcZUa\fSYWiZ^VgcfZceXymmeXd^^t`PpVelXpbb_iWYSdfmH]hRV\JRfGQRdnKJ]cdXeMcdgSi|dafOVhY_\gyMPiQYlP[fcYpNdMjaZXJZd;fZnKe~SjGddLkWbgoHgecRW\ZPV]RbsmkMZ`Dgh]_g]\UWK=r_MblROGQVIU?guSOOR`ZbZdpE|YJW{Vfm]tnQcVjWiKYgPwbElT]^LmeasNhhezX\S`\dZixZ`TtYdp\XPTK@b^hS^WbvU[Tms[sFUK_@U[xS]tc\KlkKfjSmQ[SO^VVN|RJN[wXXWVDY[^dZBKVYf[O`JTymejzOOX_bM_THhglVeTfhjP_zUYOq[hd]\vVj[n]Z`]pdQFh[vgWk\{N[AbXfjR[X=_cQbE`fq^e|ujLicXU\_KdaSSJKYdg\OXRhOVTYZbHkOcUZlEYgSaTxJYbX@OeQN^Rc\wc[gd`gVmGhX|SYqioLQ\bbgT[a[nYgOjbUfoTPP^FXiPtPYh_Xap\OeWaLjB]fGWfWTkGLUjNf\Q\YaVO]nPWi>nbSMatoQiZI{`l[jP`hmjfbbx\bURWR__zDfS?]`v]qZcNUNfZa[J[m]`gjYiVh~^GtKcnXOv@biUYRcycNOea;bV^dfSVNZsRRTQedUXZKqmpVUjZyecUVYQl\nWMhcZxbMPnXXjtXNX^af]ZUUJ_]ZjbWMdfh\WcYqc``f{L_beW^VaKSjjLgRt]W]\[y`]fbgLb_faAeihV_^W[PPcYGJcec`Wa\^Q]dgQ`PUQa^Sbn`Y}[eO]APFIcYPcS[gf\?eCk^^]gh^Zgb]fYZ_dSaeP[VQieSnD^^A[mS^f]fWb^ifX^qWl[g^^jh]hHI^V_^[WYdXM`fcJRurSnb_YRZ\XWTXcNVbOPf`\eQfgQ\`V[`ZdS[DQocfWSPQdG_H`]Y^_Q[KOcfc\`a]_aYiTgaZf[aLHYbh\[`VWfcl[YXoaQTbXWa]kZHSYXc\]X\^]\jUeTcXhbgYiab^ckZc_Q^i]TWYS`ocTh\lWSNU]o]dWZWYc]_[coY_g_`hYrdZW\ac_JYZZTVX`c`~c{hXZ[\[YlbiYiiHdRPa\T^RR[WZ\_`ZeUYYZc_egmgLb`aFfaD]e_VZ[bij[ST_]o\n]W]Wdg_TQb]iZhUQa\UaS`RjVgTXgaQbd]Ygj]YnUV`XT^^QVZVjnL__WgYW[V\[[Y`XBFc[hf_nZrKQbj`F\UYV^ZhWg\[[`idX\SklacPQmUfieWL\SjmO`YUec]a\PTactWXdl^eCTWT\[fqna[nY_i^W]gvRXhXV`swTlRk^Uw_fwdU^]f]cUreMVJOU]`efZskouuoa_kXYae[]QiPPjM`]^bbUpeVnekrUcVj[y\SXZUmWVaR^ZaPSY]I[_]R\NgKZYW][Sfa}_g[{fYX^Y`nRQQh]fh^_ZEecUY^WiSkVfQU]k\[e]S[]SVmV[_SXVoOfra_dULSYfcHWJqS\bWmW<^S\mClU\NZSf[J3`wmihXKKU[:fzcuVSr^WReaoI][STXW^rqfrU_USndbRncp\`NyrYiQejNUNbiUV^S\[VXWtVXc<\ubNkeRR[SWfUWdY[^PQ8QMlbOXeUQSZoWVjJWUObkn_f]Gi^_UvJhTpieYJ\ZL^TdmcRR[XQj^Uk\b_oJwF[ePVbaZi]hV]\Si\dbPdKSiPUWio^[XiPukiW[cVSKQZTF`Vf`\p]lWocPS\J[Rm`dhV^b\OqT\mfab[kc\NZ[XtO^lYM_sVO\Ec]`[KaRZ]Xh^a\ecnY_NVOUMofQcbl^sWhfOchlSJibWxhWdMk`h^jc^]FWifnRrefRYQWR]JY^WmWTVfKgQYdSoRKJV^_WbMS_\[QXRXn`mx`ice?gNUuTcn[pbObeN_dZWq]a\c[rdnVbGL]kcbbZI^DMbVcW\]s_[e|SYamIZ\L_V_QYXYdf^_eWinkcebgeM^qfcZfYTm^bs]TT]OVbPibP_wmjmaW^Sa^TTw|^WihpYVrIbRbVSY_dh]WI@ZLTNQcVkNWSS]eTJUW^Y\zeWPsDb`i[lW^gESOXZ_X`WWgUcq`WReYbhnj\LIV_d^]Wc]PaWbMF]IWXdRiZfNNcU[W]u_uVh]}JZtLc\hYXj]Y^pfldCXQeZ_bPYgdQSdKXuhRUYdwYZl{UUaAXex^aOIjev\aOYYb^jWa[J8XaHU]ZYdhT^UUamVn`e_^V]_cg^eWYSSEe]]s_]gaKXgp\R\f\cQjlReVMP]`JN[U\XYfQP_YUUYhV|_WhT_GXmcg_NgcjSN[_fbmarcg_c_dqZQZI\[]T`Y^gJUTnW[VXUf]ThZnHb|W^`XPjcUs_baafSh?S\P[`XpZhd~nZjlZHbiO~l[sCf\XZbZcUbd_BjeYkakl\a`^]c^QWWa\ammkYbHkhSe[MWo\PiQwW_]UXYV^rdRcnbZYkY_vdiXYrX_ZdbbXbgMDb[anNMP]ARZalpe[v``WFkcPT\aPScSSkYh__]b\TlRb^eWfXcs]Q[adOfUQYTluhaVc\kbeTwiFTHWk\aRMDHob]Xj`WeQc]i^fU\hbfb>RuVRemWW_dZWddoOJb\\`X\gYZUB]eabhnXNqmXWlNnka_UamVhki]bb_l]kPdLecUYZde`cRPUSgf\^\j\a\SP\jhJU[dkQWSL`zh_i`ifbK`om]YW^l]naQMgYY]WRcZaeQ^dbV^eR[eKZTYZarb]bs]Y[dW`ar]WM`^l]aYbebbtWS]^WeVUiZ^KcYcZ_^lVed_zRZbm[Vv_`SUZ\_WX_fc`a[YmQ^^YX[jaaRTc]eXdmXegc\]\ZqSWejSnRNfOYPVf\\GjWSUebWh]PRheekWc\WP^Tc^UKdUVxrsSdfM`[Tefj]t]ZdNZi]VXa[bUZkZSTc_kUXb\a`clNZRbeZY`XTMKLlXPUIBaKRpVkTb_X[qgaROIc]jgd\\_UfS[WNat^V[XmXXjLalZSULaWkSYVY\ZYhO_rZZuYUb^`^_\eW_hOVXjPvea[_`aHJmkTgk[aVjLK`b^UY[^VNb`R`TceV]`iSnTjc`Yotb[_V]XLQUfXXR\g^Lb]\Z`\WGYXPifWTJQXh\d`[[rj^Z`[hclZ]Wdd]TXc`UgOXYmRxVf[Oc[WbYch[^[b^`fmgb^WTT[oQ]\QJXXLFWhI`c\VceeUdXSWSla_dqtedgWh\ZTaa]``^dZ[cXVXefYQT\fblVhl`mZJ^VhNEJtVTXY\hZ\g`r`hYg`d^The[kVfUfXXcd^[[SZ\[MIR^IQWRhPbnbPdcaYnLi]fDdDX[SVXNZp~I[MhlNT[J}Yee^WR^YNeTRbGSUhtbm`oSTeVpS\T_i_`NubR_faTgcVV`edOpa@LURb]hM[dXWeVbdVjV[osjjdJW[RWd^haXTXNclfe[^^hfp`mc^OVC`dMYQV\YW]]_NW^]`[i^RTVWVPWp[scm_RTXrmIsfGfYd_^]U[hj^Q_\b\YY[Ou]\_`MWOeknj`SZXhaefqSjeae]RekZ]iMWJGlSfX|fdV^gYbM@Sna[SUqVe\XTbQOKZZ\`d\bPUQTmekhjcc^]e[kWLYctbVZ^_emSVSbZYTYgesYZXahg][XeZVgm_^mVb_eheQ^aGaY^d]^XYTRUkk[ZTN_[UK]Klbfds^eZloo^W\i]c\aPcoXMPrlh\MHL_^Z\ZBf]QMRwPXxjT[RKkS]cSXU`yVqYY]QijcPZYcdQh\`ZTRek`S[oSWYfnYY`Qgiar`gcXVcXYVdMf^rouhaapHakkOg]a[NnU\Vj\cX^ZqN\ZhklfF\[nQ{ap\ZgfZflcZPBVYsoZYX{t\TIlX]]cdJMdrlw[dHlOj]YZ^R^^YXJMg^^u_cUZq]EM^``^P`TfU}XmcMHo_EXY\WGWh`IdXYbe]KsZqPt]_dO^_aUSTSa\fiaXl^T_`YPeuLjxXURhdIr\dUX[ZZcqapobg[^Ln_gWyYUYSMd^YfRgVZIYeGcc]]UaZP\cb[]Xe]Yte]]bQpncbdFDl_`mLUkm^TbYx]mf\W^oWqeUXfVcN`UK\tjeZnaXVcPeQQBaaaYfN_]jg\m^WgYG\QmWVYQQH[ti]e\[Nc^qH_Vf[][NdOcVeVKMX_VaS\RaUXth]R\[\^d]nY\TQ9[K_s\r_]TYTRH]jWUMvhGXcVKS`\facQYTcbQWTbb[VZW]Oje[\V`nKYn[^UG[Sefd_So]XgT{qpPcdXcobDiZYJ_|fiXhbkiw]ZYMp\X]f\XW`_[`Z^UVf^\fYQ`caYPWbcV\gW\J]IYXUdRi_[nT`ee^fgX\XMQ]l]WgoPU[eUZW[qaNaSb[PVROr]d^eVV[]\nlsePgT_T[a]kcl^RFaVz`h\jffIblZ^\\kUibEck^exb`q]WmZJXTgdV_[O`baihUDea[hVpVPkXSYNWiVXZmepaXh\RebGTOUQVn]hsKZZZi\fiqgbe]c\kecT[bYV[_ZR@QYUeUhVcNdYZhTTeUV\_VWVX`\tS`a^XWR\WfVcQ]TRYh[[YdqpUhPfXJcZX]`aV_[aaY`icb\iWp[E_^RM^YI^UWV^o^S_j_c_j\XRXbocOJ]IQdmYTVaa`]tWM[Z[^^TUm`dN`UZlb_gZaRV{m[UVYXmX_^QO^Z[LUdaY]\]YflYsZ^eaNiUT\PS^ZbTWJbdWfdcVQtXY[hfiW^a^pXR]aONtUcrlI]f]Tj\OTYjd\bsQqPo[SlMaYPT^`KV]\jZ_SddQqkbUR^U_Rbjdg^_VsXTnW[o^\OWb\hTb{aj\cbX`RPvTWLkfGh`ocZnV^T\VbtSsPlYZ]W]baVPXdSMuPhZaP^R]`ee[hUVeUgihW[eRc_N^afc]_ZccanlUanWjQ\aR^]aV_btocjTM^]d\gpHklh]c^W\[f_aaRmj`kg\^iecYbcUm_VYa|hZy^Sc`ZfW`Zj[^bUNQSsfYVcj`U\P`\[WNneX\]\[[fL^T]Tehe^QSbjVaablaPgSVo_h_XR`i^YR`heSNg_iZca]UXg[WmmaVaPNj[_gaOqNwbnnlhmVPmL^SMapg\\Yl_OafQZ`cT^Tbpfi_ZaUYj[]j`ePXU_YiKKkbZIhmhR^|]Zi[R[jQZ\hWO^sRbcdVoT]_WUlhiq[\TF\TgYTY`Oe]YVWYccYefRZNjaekE\\\pQb_N`Yc^m]`Ycf][Te]_^g[`pjed]X_PaRUmhVryVudm_SXQRcL^Q`Yp\ZZZZRV^]aak\b{WbhkRRc^_`OS[RZb]cU_oS_bP@j^[[`TPZ^STJgfmgBcNU]fl\\LhXM^gahW\fUc}aPhlH``gfJLpiL[T`bdi\]pWYgmxMkH\Ng]`TvHVKKLShhPhken^QeA]baVX{UYy_qVkc]lfX[_M{ZY]XcMdWfqKkTSmVa]nN]]bIbF_l_tcZ^^Za_cZKdb}HT_g_ub\\e`N[cOsTS]]j[RpNZXPV^djTZG]bV^_mka[`GX>ReehaSaS]d`X^BjYXa[L_f_BdARQ7VeDyOVQh\ST_nvpacike[VJ[lVNad[eTQ^ak\tK\YW^QIdLSlik[``T]bad]ja\TfBXiZ^bYY{WWliPgN\j^cZRcYdS]hEPj\Rp^ReO\]dfeYQ`[\]mX`e[g\SRi_h]^k`Y`g\]\Fl\LX[JYaUYq\_`\QYWWUUWjW]XW\b^]WS[KY_VgO]T_Xa`OVQgMhSiPwZcOaf]\jYObX\eSRfafcgZY[[`e[s]PVXf]`hYbRdV]_aSYWON[XZZoNWe[jZYa}e_XI[k^a\RSdhp_O`ZuX[hT_a\`X[Ze[`a`V[STW_fLeUmf_YfYg^Ykp][RfXjdg_\TbTWU^Ydd[\^h_X\eUmwePZhe`Se^tMd`iVPfU`cpYK[Ne^ZnWw_^Yh\ol[asZg_bpgp[X[[VaPh^]SL`fPRiajkYj~MmTaBgVitXTfy[Z\cUYw`gYY`fQgX]lZXOahdTN^^mI[ah\WXUg^btlb\YXTkdYJ`UcZfP[cjiwr\P\RS\BPbl_^kiQ]i_Rr|cXn\`gs^^bkY]bXbTfYS\UEecSfrRIQ]Z`WY`q`s_`hDFYMmgWZRsGo`?WaKK\`fTRZTndkPL[ZKcZiSfgwDkTdhcXf\iX^Qa_^dlYQoX`wgYeWCYxN[]v[_]kb^f\^e\WdfbbdtWiSHcXTXVcM\bd^SbqjSP_YZSdRpil\dZdUm[aXddddb\^XKU_bUXV^P[Q[[SUdKYYhSjJiU`_dQiJVn]X_pfZRVX^cV\bUbbRd`tmbSs_c`WjSggj_U\gTa[Q_hVkocYaU^[brS^Tk]]aXdfTYcdbbdYXbgW`Lb[c^TbS[^`VZ]MZ_ZqW\^bb`R]mZiiT`eTh`WcVofVdOcX[r\GWWih\^]cVd]\\]XQ[T`JsjkcRRfhhffYl[WjQa]uf\]dVYlZdTWPZi_bei^XgjPE]`NqdfjNWoYXSglgakGTI[ZWV\QTa`UZ[cWpMcl[imZsinjfkvjQ^Lb^`OXgokKQQ[eaXP_QV_W^]Ldfh\\jZe]V[OU9g[gWaKVjRW^^{nabi[j]`^T\LYEbYZPWQ_gg[KLakTZPb?eb^Tkm^ccg\ldX]m}`hZFg`dX[Ra[b`h[d\]fJbiPZmhRd=m[WSX^^g[b_mdR\UlZaQRJhc_xawORiPs[V]eVd^TeTddfnabG^u_d]S]T][]U`Sj\SmfuJlR[`VpGcpXlZpYZaMVf]jWS`dYYSuTWcZl_f^GM__jYTU^nawjlCNaQZXWxWTOmZf^W]eX`[QZ_SQcUhfRT]cb\b?XHI`[S[Nb[NUaNh?hS^lgi\ZPHRoTcdXxbmsYVnYYVf^U\Hk]WZ]hasNWiXlRTimAcX[hJeNeae|cXa^aO]J\gS@ZdQjZPrlZ^^VGYgp]YXno\\_YP`_O\^zZUIjS^YTHca`\`kLlmXRV\[f[TW^VG\[oSWmkRTe^Ps_f[[Eb[Xb]Y\rahYkhQjOjVbEiXM`_gYp`VZ[e^d^dUXjPXZb`_VhZXSje^YdcVQOhtj^`]geXaUTc\PJWb_f`egeKf_\YLVhJc[iXXcn|htT^\kRShT\WaQY\R`fjTUkecKZzmbU]ra]XjpKT\efPl[kOgYjVf_h[ao`eTcfeUdWS_QdewdL\W^\YStTEHL^l[^Z[cgdebNdrty}~{{cgoYiz}l[vogc^avmskmlnfshzwryuivxylhxsmxnujpyjadsbz|}pzl_pttftoutbdtsqroqr}x|gmltpnvrunowrruvnn~|xlclovY}z~lobcorpousuo_zjmom^hvlufe`xsdlqmpkauopwgi{aufkYtqwlts{gskxm{xzmzwl_zx~v}buevfn|vqqaYpwtwkiauxuyzvsopfjjvu{fz[suprszs|etjveuorpspvmynbrxjorqkur]~Uwmnmk\xqqpY}oxqvm~jup}fginrptzoyvhtt|jz~lo{Vpkavpqqdo{tsgmltnwvshwwfleqm]w~gomeet}k_qweakSofy~xspwnxlezrjuk|qxvsmfcfxkrsweMprsrdlzwoymsyrjb|_{s_]q^r{ywj`onfrnb|j|cwzcmtwoqqrix}zk}sqr~drxpeitqqgglcvipwmqqcboisowriy[m_qv{|rvpqsetn^~w[rzscd|pcilowxqsmywnnupwlrl}toncxpppp|qrlqtwmn`yqip|smygutsveqimgmzoysnixstwuvv|}fqosxzmooqrzzhxsod~hqcy|~bhzowzjurhg_|knslmrp}xqiwd}imqs~zhwqpirjvkolynpskrv{vtrp{nyyizytrdlxrs_qudghxpskowvtegqon}szenzincdtmrfntihsjrlqsxdqiflmsy}[whtt|zttpl}w~Uzn|itgYvufq}hsrpfr~_^u~}Xgsypou~}zo|xhf`zon^rltluxjmpx~p|l_x{isrlqqs~yyoecjhowpmknzdf~ywyuhpwtrzysmm~wpm}eqsljolrzXflwq^qx^z{]Skm_nwthluaredYl`awyz]~dn~m{drldr}o{gc]b`Mpraz}ho[mw}gp[wqvot_eW\_}xapfpoo9skr^rzlvooxT^eq{Ybl}tZhkyoghZunnPxg`enjynxWbpndh|ojbtmU`}XN`o^kijfn}srjoq{}hq^gslam_ttqptczqo}vlvxvwlnnnzsorfynol]lqe~rmogttzjzo~}c}lxr~kqsuf}t}vrszviporrtoyppelxmtvyrr\f`nimez{vjry|oyltjv}prg|izl|ohnlpk{qdz|rkqkt{`x{engtyojZifmkrfn_ymro`xlrykq{ownolky]sjrqtvhjocuzjcmaowtsvl|oergpiukph~g]kpfiupgtpskywms|jszglsgswysmmwqqrxlntmqvjqiuj{utzuslr{pgmysxhumlttwksxkpt`utrtiiXqrhrrjqtZuzwzzhodtqnptsrsnx{qjlw]}hg`ujieqvlsesunurspstqu|s`q|o|^vkcjrzgVnkxwipff{yo}{upkgxcps~xevqqf|y~sqr{{}gqsqxw|spvpo|lmxyhirrlgdj}clopnufc}eubioxg_hrrypo}rouD^lltclu_kvu~oqg~~spllixjcxca`yxqmvaueqZeqchXwquq}zq^rbipoczzjgnpntvhzkrdu}rexXfrfivghuc{pkpwbonl{mejp}hinhitjmwjrsmbwlr|mywjtvSgUsqzyw}u|`nzvqlI^j}aphvqZewihrrvbf]tbrk{wTaXmaYg^i}fg|us|z}tyqh{at`~:stch{esXZ_tS_}}wzRwu}`n[lYUqnywoZf{e^St|iwkoe}yg`iv`Xndv`xs]jtJvVlYo__x_aqcj^mok|jv`l|dx``waijqdi~x^pi`d}xvlkfsj[iUxjWss}tClh~ckd~a`tb`wVyvshmjl{seeohzgvrwrs~prl{qu`rwnqlpkhgmwuvnsqokrrnwynhXn_hptruqwqx_mjhqns{^}spmlvsjkvonoqliu]hr}|vhym~silvoomksmunqezfuuc`wwn^}ixglroevq`kyretwmuxxoekcytm~hokdsuzli{|ftyvnpzmpvay`qxp|cUnrlrymurogxkri{iftigtkcnntq]ygynypVlrpojbps`mttx{pvkhnphg|}rhqrotimx\qpvvak{Zplkpf|zjnpxl[djvsvn|mmc~[loxvtw^l|mtrn}l{hperrunrvxqtdhvcnop~~{ggUdvnkspmow{{|qrmksqvtifxvxjm|moumoln`qgbl|bsyvlpuxjiosm`osdWrvpsxfv{\sshthoqlg{vg{wezkstrgasfeypvk_tbsswwmktfpingmzro|mir{vvmqko`jlnputfvnnprpqs{}wdwgulwttttxddnscgl{isOx}rliun|ltzplrkipurnxgnmlvnwrimmiyngs{ne}ihzxvp}bxoflffybbnyyxwifqipyafrhlz{pym|ms_aostpjjtpwgmgmprb|iphtrjs|ljitqqjvtueneurqadqvxofl^n}uvarp{rkrookrksngsmeylztrglvblstz~ru{wnzxlfhpeppyfx{cwewkmg}okrtu{ufg}}qpjzwjsb}pfsxy}mzn{{vbedxprjprxh{jwydzkrylrll]rzfzhgswclsnkwmjknurgzruwxtpuyf|xw}hymsnurxdmx~uzus}wuvju|qrr{vmqcpjvsnllvytpvlud|}wnrqlgelydftrntvqxeLxxqcjgkecflHZm_Uiw[}ihor]]fwt[rgYzqsqkan}pzk^owqrkhqhgsphk}rl^fswToalodebrsuiojs{yghciascpkpulfqY[o\nhxqveoongj|xuuewjjkcv{obumq^rrauuq|j__m~qCf_fourg`^jsqvam~fimavlfnhu~wpzuxtt`iwqpw{Zq{uuyorormunrxjvzqumxsoflkbupss{toyj[f~}zx|f{~m|cf|vmene{r|vzgpjgns~~e}zzjqmlwws{zupmlbgtkspokhkhixq`sixguxsfswsl{qrqnuyTgza|jxuqik~lyvr^~sgtlxnjnzw~wh|lc{f[}vo^ltbbbtsj[{^yncitxgqxhjp{pq|qga{elqrk{ntmp_`syz~pfjbkwkfsgj{m|rqrfuihmuxuvoqx{gaiwif~it`wksphczux{gnsjsllzrfcqpmcszttm}\sabpud_mkhqyvssevugwkn|glm_pnwu|lm|kiyilwmxhwf^wilkcrgjbs~nr|lo}dzfdiuizhveyjrxo`g~kajnmgp{aulf{nso_hwszxzfoneiarbcxrUfr|y^lrmxw`q`pkv^fiwq{bgiiwvpyuqraquoooxd\zzxnzoyvvjabdo\hjywy[rujhpl[hgvtfwupvxwrknxslwvzvyimvvnmnzydi~zipvorykowqrvwiznrrovwpjjvssqrdspypwqkpjvvt|wmquto|wwlj_sms{yvwutpgjskkwhvptwqskhjy{ruokshqrjuwh{ssu|kpkpg|lvaux}qj}jyvbsrtfpxpnsjpgztmm`cnqirszrve{wfmklzg}vzisoqqfx|sswot}nvu}wsufsllw}rhutwt{unnni|sotnh}|s|rwq|r|rjlolzqhmqvwisth~ytlczuusrgtpjywpetpjzhobgmryp~szplczeo~ishmuqhs|esoum|jrkrihyokxxl}jek`onvwdprwtkpozlqujy}ys_pdkskmuonnxvTicvivtqXs_ukwn_bxumfhgolroprx}tqc}yurzo~{fplxvdh{mYsentwpqqmnu~m}{mxmomhnolszrwyroxlkihgpzqrr|_uu}~pry|jwl|msmvp}nxiuaYt}xlqownkv~oWvwbf~tjqktsmvmmo_rmhteeqjq~Yznmmi|uarrzokphlroqzxyskqilml}whl^qxrtrhvjlnrtx}wdkouu}w~p|uqstnkpopwigxlqxyq{pwszzp{g|wnerjg|qtdpgseuuocix~owixpilvsthsivkgtwkpbihuptygrgoornrvdl|q}mcwzwlhkhxdqsnrmypXtppgv`cmwe}xvcee~xui|mslvbf{dvhyrmuus|rkowvtksy|ujwvt}nmSx{x}kurttuv}}knYnodqvull~rsopexr~rxyfXvjfkyjwuluyxvlrzfuoqtal~w{~ao|uqixjarfoq]hxwpqgpc}gwpukycbeqp{btvllZcyntdem{txtacutt}hzypppcbx{ulsjsir~x|ir~|cnihho}yxsknjn_ovwqstwqwyY\rx|pxokqlrtzxweoss^gwqzu|zkh|ez{osl[g^irmhviwsv^n_rtrjzf}j|^wvo|rkhxncxojbipmvXs}ov\lxunevqgnjocx~etbjxt\esqm`qyyssqlnlqycr~nt|utfm}q|ptzxyzwks|vfdv~o~Utugte~opdk_wpmoozypmhsfg\goehsvh~{wcvcfbyw]ooogYjfhvzs~qScyozdzwhaOfjtzorhq{xxxve{hra{a{j^nret}hi|tpwjs}hdmnhymdkauxceurqton|vmu}v_scnpfzyg~poms{ekl}ro|kjxugytkptyWufqgbzxs~qsxnpqtcZo|_oocquwrwiuplns]w|urmtsnztkpimle|ymyliy|ks{v]uznzwukgwln}cnuoklqz~sqesu]woyxvmhtwZ`kmehn{wor_Vzuxsllyprty[q]frwcpdmwysnx{heq^n_idetppp^k~j`_ztunzg]^asmcuuelwvqyYmwjogo_dui]yuymo\mgtk_ixw`mwxepvsioYf{gerZJht_Zn{]^[``}ufshVfklMpvqfY}tecnuyzjequT\ppivmuychec[cntv_lfqqrmhtuu}imnmj~u|k|u`h]prqwowg~vvmkoufiyktlef\mjvumdnzfnscnqeckulsqo|jifwwrnYiLlslsqoXcxjvie[w{xgWuxftnnqnijrsnyinv_ZpaXlqUrijm[mfsyherovi|krwwvyq|[wkqj]nsklethnmomdZbk}kpxq_la_omptsqumoonnsjlzvdfvyit{snwbnwodhson^ekox~soqwxcrddxnruitwmvifqcmrqwkjos}xnrqlubc{`sgqwofqyrstumu^osttukvdml`iroibmtkkiztxqcrvWhjvdqm}q|nqoakmsfskl{w}n|ktnifntixgtwkxYvhmgkwnpbvgnnktrfvphqkgktljqYksomigfuhrulu}ftkikp_tw{qhtg_gzjlpnkyrnrkpzoxetsuoo{lpestvhlcw~zgpo|qrkq_mmto}w{n`hqrtui~gplmw{tdpnthfpsszwurvpeqouwpteqi|rspkpgyugqbpkvzht{ynt{kfpkaxfgw[v_vc{kXse)que^juXjcZvMe]jlnmzbogim~\ygzuR\ubvn_wWAwhqx|izjYX=`kpNz]stcjsZlZbulryKw[nmcJiSTOY|s~\W|{Stv^yez`Uru~j~qnl|b`vWQNftkwekdwm`vJ|vYpnpjJvVK?|{PXpjkayjqenuhg{VshoikivjdzZpnv|bwfgdsngnuxhtjtqhYmw{zonjhoi{ezv|e~rl`vtZwmwcpklyyknmp|xoto]simnsurfqlui{vzrrt~_|tvf]saYdtueyzc~vll[nrmiernnbtprZfiwarjvrko~pimYzsTenqhl[d|qqhsovqsskuphbkkrpx|j}lprlr}szstrhltzznYsxZmp}izoowqrlndjfnqujwisswswssd{qawg}tlgoihuftj]}jnpwx{|x_ooz|nmzct|eftxyontxmn\np}{_yqZjkgdnn~j{{q^zsbjvtupd}[{ttwihzuejxvpabbTseu{vios`po|glqvpsxqkihrwYxn|w{muzmnihfqjojk_lJs^v{n~ps|l~soruymg|nz|bqwourqlksrna^pqxbljpScptWqqoio`wlmlpxispv~i|wdpinlimh~fs~qdogtyqet{g|ov~pwwobxnvsmaesxxxumpxmv{qvkfkopnsivxmezpsqmzrmqnoftkvdq|itj{pcttmspofoz{pwnwu|fspxpqp|rnfuzgeqphvltqmopmuxolbrxnsqzdqwvysgjpuvwmszf|jg}xywsw{wnptqugqkuqoxfkipjqpujyhnpjv`fsw|xjqhrszsueyomry|rknrpghyyqxltrqusewh{jp}w{onfoqtkjxqkppilxxlphgu{xq|}zypogvrynsikwwh~fquotnfxxswkr{lomitvpvlmpc~qqqUjlawyqmw|qoxxrnvgwhpwz}nkmshljfhhxrygvesux~silih]epguq}{kmxoounfhu|fgeji|qn`qjswmxzl|b[zwuktu{rkwntztyWckhohij}uokrxruygumt`f}sjXsvrjpttpnpd~pxksgppvve{|hr~yrbfuszmnjupf|lsuj^egunzpcpjovuVp_gyyqqwzzkH{tmyccsjehipvddrvmuyxbqqswxcqlgshiomifgxqrwwkg^{wxVnv{dwmqfpejnmkbta}~garmspvnhvszlhwYxjfrpbroq[tk~Mzun{sbqg~}|vvdvpbstybis`u~wX_Zhymhn^{efpipgutfunjkiaflt{tza}etmZt~dumeeZu|fynvhh{mk|yp}xzfeZvlyybqlfaxq}zbo{b]s{zyuispnf_qXkoeoskojbzdq]uxun|lkhpmskvkXmf``Kv~spm}gojoolke|w^uxtcmmyzmpjqjlmh\jlp_lkphcq{rluttXqm\pxmn{jlv`ZWiYs~r[ySSzy}xlxvn|gqTlbrzm{vrhSjwfhoorinurzjlgdr]ldkp~}urmgz^nhde|swmugrvpglnpsrqqskltxskgsumxnplmuqrrkthmptxnvyvj]xg_zulrtrm|tfhsyfxxovtuftvpv}|xtqigfvgi~lknrydwnnvuhny|ykimqxr{qkdxjzjkhkyoqgfd{ppbt]dsdyqo|irkstmoh}v|lrrtppoylv{jinltmlp{usqjmnp_~hqkswmooywyximakgjip~kpolzyioljnpkyj}kkrkmj_f~rjz}irsnpglpqgtp|jkofu}owjipse|omvqkfm|nmy[pvmlowrj}ksjopquvvnwvhxj|jqpo}Umuw~onqfplsl`yftlowrfwusnrzycubynw~qndntxk{ptrwdg_lrug|powk|jmy{mxwjr~zy|lvnunkmwat~hislwquy\|vpvglnpqqztdrsoiunkwg}lvqzktsys~yo}g`enkqdooqvmviqpujXkodjjvljeqdo{qov~siogf|~w`oof}}iiq^lg~l\Wcsxh|vmnllqm{uzvms`sjvxp`~zb`pwsoh|bfzhe{r|{dz{ryvjt{jsp|nrohrlmlxkxeoruxmsw{vmdzbu{`dtpl|hllizhxtUknsq|vwbqsfblezvmomteke~xyq`ai|z`vhrnWmduhVvnZ]woe|mjRulycnpv|^vr|psnwosqoyqwa]pvrb~fs_q_yxixher|uyvxqxmjhwj~mua|nKhezrwwd`gpplsk\brgteoutifdprn`t}\fnUdInvitwX}azji=ogtcjqmf`q}ngp{ju{r{xhmwk~nxjlsqnzywforgo|kufumtqonhwkrqxxt{knkhvl`l|pjf{dxkrqhsrprrrwrw|vjpmykqlkl}m]yurxoo~nlnvtkaw|rjvdyzkznscwrqYwdcxhzstvrsuWwiokspwmlm}kruwk^wn~ts^rqiYcpgsmjck}qenuh[sj[upvnp|ufnro]~]ksi{{yme}y~icl~g[}zqpru`m}Xeo~aphswttpzz}qtxyf^fkl{t|Vg^}jX~fspqy_x]`woqn_^qntd|jTtipj|gcrkxgrZyf`eqg}ryUqwM|`}J}{ejd{dnc^kuusurplyyqvpyehth\zlqdgqiRyso~_supmpxuugozzXkxh~jtiykulyahyzuqzwouuwew^mmpd}vwrepslrfwituy_bqrgvs{ed|`zy~|n`rkTmurdyyhjjrng~_wpltswijuqdjxtijucwtztkye~qzx}bqurnesxjkl~lzo{tv}ptmilyjrmttvvwpk~inqrjb~juyq}herrkwiusiqgv{katz~n{Znmuzwpl{l~{}[ldzjbntdylnkyuditxwesvytuntqyly~mtnqrkh{~qjjyvzzay|skoezwmlz|rynhrnrgvwtlkdp{lvghz|xk}nyh|pisswqt|f`nx~z]vqikljp|}Uqnowuvxp{dkdsldjmnl|g|v}wnaxcgjsev}sfqUvx{]ogheqofrb{ylns~xksrxp~uqnswiu]qd~cossrcktvhqnf{jxrymrwhrgibiswzZpjwsejgxohpkswlqcqyk`zojouwoq|qnonnbmlwytoyn}mzwyzskopk{~rsgoquzizyq}pprqluy~jejzuxgtrxstqprpsrsop|eqg~usu}_njqjy}ykxujorpy~il~wqxxltwvmrxlllctqq}ryp}vyuftfp~tu}hfwnq~{obskrzzlio_pqrq|{_nrztg{wp|hftpjfnqtdrvoVtgmroqodnmpomgwuw`|uyxtkyvzv{`awtt}yqfppxj^ukqjxptgs`jppmmaysuqyjqmur~wptoipmkxldvtVntr~o`winkjqw~tt}gowv|hipqk~rfkfun{w}^o|ӆs^rt|Znx\iswq]vilpkoskssflquqykwqsgvbhsqomp]|ihk}rgudqc~osm^kwi_l_UkjgfaqszgZn~dltWmvw{~umfsq~m^qbdkyjmmsbm_re|t`aoqozjwLsxsbpkhv~R|gctk_tnuUuoevm|krhjb{aqtvjwsjmvumrmrlryjirmXgahth~{t\`z|z{g~rrt_{pswqroonqzfhslipme|xkSt|_tjywzgfjrmwupyyvuh}tnt|z{`jyf`zasxosurt|ypFlsiro{vxeszqmpyh|vn|l~otvdezu}}nocqsiefc|nmnudukmmshznw}pywkgiecct{wyizhvo~fxxtaujxnfed}qwsuykx{x~w~~m{zp{pw{{qszmmqzosuvsihprvmql|~}ruh}pswvw|olqxevyWmnsqz|nnyi\emqnwr|tzwhvdu~|x~lsxohwqvsukwidpvtzwtext`zk|qvtl}rsok|jwvtowo~ckqmvXmof|m}ls{jvviuyvpklVwn[agh|eqsJx\n|xz`Z`oxrziyampnoux{jflc|~uwqp`aGqjroxmo]}`e\iq|{lusdzvq|rvzxf{_~njngoqtyo~fjpoSigdl]jpsm[ezskk[loyy{cgjnravk|hxqfkqhv{bkqfvymzjxp|}pgpufltipjft}z_~oqm}vnwtwu^oph~hlvssoghwov_b}|rh}]\ktmq|mhi~vy{{yttjx`tqf{ydbqupZrsqkxuo|dkkapmnlvhwq{mktsqrpuxistkx~whpwpy{misliX}mznuzjmyvuvz{mnnwodl~^kklnnmuu}pivtew|wshj{xwq`de{rkq|rwlog^xvjs|ivtbcspqZsw|^[itwlier|wnmy{qnriprq{l{thszseghvmiydtkzfsvtjljpj}q~pn_WsixoofjqnetrOpnssokyqhsq^knkqgpkevxnuus`gYjzzld|eozxem^qpi\gnjlqzx^^jdn{vlsnhkuitvaeiyhllz{mrmyg{qu{owhgwiuolswdZlhg^wfntlo~l|rshwsnn[~l|t`{ushvkjruw|ppxijuvpopfbrqt~voq|ukxrfX}uoiusldwcgj{mvolmxtfn~doyh\v{xrnzdqtmerkurlgwiaokds{mps}uvh[wm|Vyedokyljhoywthxumlmxe~ofgrjwlkhtohjmnicctxrxksgd}fxmqleoyac}ilqjxk{ma{ijjskmnij{hw}cbwk}tteo|kmuenrnevprqkrjkwpsfrpselmbfgjtpwpozfpzusjwlumytpwtn{tqdnnzh|ap|kd`nmaje|jiv~zdfpjVltotn{v~}]xxorjwo_bq{bqv_gwllyftkponiqf|ivxtWp|\\\mfszjvs~qnvmwcjQ_qXmqhscvyqmce{oql}bxt\|houkq|wY|ilejrzuszcyfpwtojwefoppomwglcemvskbvMqf|jntlYknih{hconStwmh}bnskqgptn~vpnrkukg^|wZi^vusriz]psj`pzyqqxdntojug|iYkvyazuu{jpjsk^yUgu]kTpmdox_xwyukovruuVvgaqbdzYrj[tsy\fyvea_v[^uxxhvv\uoryOyPrcuh{wWfuissklp{fp{dhvmjs}djlwmwqevjlwkyhnyeo}yqjkzhvmkQ^wshmowm^~|notwwe|jyqivozdnznjsy{Xjrri_ropu_ym}sjowpuxpwifmpxhwkxftto{|{tn~uxspoilghxwa_yimzr`hoduvwhkvhwokgzYe|dzqlkwgmlm}wxrm}rpjlsibuvynrxcmt~qcvqpkhrrlxuljwkm}dyotowlpk`||n|yejty|tsgnkxtjtoqyrgjgqoywsmrsviyshpd|lzjsbinmqxthi~f|pnuhttxuhuoqoqrwaswyxngpqxckklrsuimv_lg{rthqwvwunoyekfxnl~ptYxnt{nzys}pnudmrnwhpr~caojcqirocylyoxhqvovfnsiokp|rymfrwrhgsugmq|{|oqktdilolspuxnn}pjur}tzxndyrxrfxvmtidukmprgynvnomynrhst~ltskywyh~xunoz^rhswpd{yzthnmjevqjvslxnunmlj|lijmjsnwl_bkkhkreuwmdbqniphrifupk}mmlkqrxqtngatsuzpNk[~sxmuiv_}d|tgi~fXyntoqnel_dzt~r{wfqnk`|`pyncqj{jmlm_dcnsyexeud}_pv|\nzlgrjgih|sjuk|rhxxutko`]xlvtXov_gudwewlvixe~y|o}jnwtyt{k~Urzzhtfzmtpktww{oniwvrw~{xiywldtsxu}xfp}ngviw{prkfw]m~chnwsrcsxtjhmqvkmokw|pgmqm{qo{zzm}uq|x|dr{qvwnzbzvuxfiy[v]qbqzqytlwhyyv|ywrtyrulliiyivuu|kpuit^mohpkpup{j_vvr{jt~ntqghjUotw{mojhmc{umi~kn_czqrczemotb_mwfcxn{nyqqcm{onxzf`nev|t|thrxZrlnqg~m_m{uxUwdkhkwcpyrqm`hr}v~zr}ajd\vnleivwhgyusujjio|xiXfulr_yl~mxhzolkos|\soeioxjto{lohj{_}wximpwwxv\\dagtmw~pbtr~ulvpu~rjkzn}uyrrna~vrTvrhtkmnfpfrdwoyo|pprpvmhpyeuwiyzkmcfttn}skgrplo|htxfajofssx{l_gr_uxknihmq~{`[kn~uwqtp|buupxwkaejxqpyktzer}jxo{evkzhynwmpw{_rpkpsejkj}ueohkqpmsReppgbbq{J]rs^o_hv}tpu{_rZxwV{yulxhjmubqqiwuszqibxvewuortquvlnqlvgdloo^gwsv{~lkddxwuvhwntrnifiiumwmqiz|uqjy}rlglylwyrsvgjlho|thvvfqblsyxorguux{c|fxviudlvprzs_voxuyqiswttiqwzdkjgvuk~xx{~eqywsohbmrfiw|}noq~gvkwqht|ip}ppopTgxwufv}exmlspgzhrbqlzMjshvfru|q{ksdxf~~upjwwghqyyqqlmxfymbp{purvw}Yynjpzwmijmqxrdrxglf|moepcjrcpivpwmypxxhoovnmxq~nsu||{pzjnnukrvwjopfdj}{usevnzribufsjjuiauhipxpgtlo|mofmkpojxwylllvtnkxvrslm~ppeutjxuyrorajuhssysn{jqpugmtcor|dlvnh{tgqlqge{qkf}ui^hpvbxbrhztbory}[krosloiomugjktjaps_uxchVpwo]zq[noeqfn|yappqyymdQkmeouufmzt`fg\epmvn{`lkj_xmxpzyhtodgltxqpoqhlz_pqx{eUn]mj{h~w`_zqakwnnlIecn`nuedxeu{pipocqin|kbuoebyao]eck[^~hzlalmbdc~kq}tognppvuj_ji}i~noh{aw|ngemohjmqpu{hjmqpzu`skvd{whkkwotihsknZxns~sonpqnpobxlkwksk|rxpsql`}s{sz|x}nz|uhophtljru^c{isqwvwothabmkx~yx`fjsqqwgtxmso|ygfepvipj}{d{gkl|jwvyqikq|{wvify~qipkvmthmwp|wzldgsr~iqstwgqzh}wtcm\vomafxrzqt__keu~ntjinxcqgsoinhrgc}uarq{n}pnmqdmjxyvtqheoy|kuqliquz{qq~wxs~|pusstoenmtspfhwszvxyknhjjnrjqxjlicefly{uotinQ_vocrvvtwxrppsind`fz`^ry{r~wyydhohtluumjgxkz`oh^r`m|afxd\u~o^ngtez`tYm~e[e}rvgthgwtwgh{nwrvvxs[nwr|watyue|hZiisorr|hpymwrdn|vtrqssrtyqvfiqwtinsoeziswywuttriknl|xmtirva_]sw]ynsoQq|m{obxrrrohsdxmusypz{iitfdwussvkmtrzzpw|kalpteXaeTcooum{svvlkcd~unjjYg|stqlir|mxiorzq~qru^iht}\a[qis~nsmui{cxtcZthz`x|fcjaolgfhRlvjz{u~wqmgvrv}e`fwydmjwqr|znvocf|_ytqcn^}ph}ul~rn~u}uyejspeyrlutvq|}gthdifn~guqtkmfwzouquaoz~{nqufsesvqpqo~wp{o}umkvu{txugttvtvxshzhwrop[{ardt]zowrjyixPiqwpzybwju^vvywzticnlprckudsnvksqsXY_XYdpowldk{x}`wksomg`~V~srnsvvXnrmjulbswMcun{h}fahpfnmwfpmxv\jfc~`kknpuq~qI\wbkpv~yqdqsS|}lmwxXji[q:s^^hn{nW7h{bxQ|qy\ft}ct[nwpwtgroSrioTdppseiyeul{|{jowm{txrtynz}_kotfkh}ommxnvqsvi|umnkqo_loptopsxuivqlqm~onorrrlnzmrr{gYvvvynl{oof~aiummuwjnmzsgcs|qcqqptjvxv{rmpul}adygw{su|mstrfsyhvnzqrmpnycyvmizqupkyhetymx`vix~tlwupud|n^ijvwjhvdwspfvzwmqsmt{xnyd~pbm}}a|ktofuoahijs[lj|qysiq{g_qtqvvohw\Znwnru}json~w}{pvsozryrroxvzqm|ixnd~wxxufo~wrnmiuojmionimzgpwshk|fm{sl|splmoyxymvft{pywzh`rfzt|otvgfkz|zwvlgp_{{vesl|eumtuykqonmtt^x}mzt|vjkdyzuumftfyNbhlygidk{vo|j|pqwrnusnluzu{n_qkw}ugrcdkemuUvxhhi^lxnkrlr}vobl{tprn_}utumnnmqys}hoixkwq|{jwavynvqhfhi}gfxjxytIeh}xXkk`xkg`ntjk~pccVila}^pdlSzqy|xYq{}ntjlxvt`xp{onwXuq`lvdbkgtssiXn_}fnswm}grwklsxs_vqofrmjozfvrt{`iqzgu{o`}n{wqpfl{wrnxem]pgxs|qqiWn|wh|wyodrvonpzvqjgfugilwqpfundsKoartljnusjwnuqaqbg_`bmzgXZtpy\kaxnpvXoiv|e^^Usdjlklhxotrmoszvo[\x`xuYd\a\~eiap]{wbkPanWvkoapslkvqyhicviwq_~wgd|{sMvslXfOk_idpgteoxz{tguu]wwnkvYjdgtrVxx|oiszxeyorsvqxa[Wunifdcbss`TmahvnvbpjzV~~`[vdtQsw~{Sj{wwhs`pwzqrhwsrftlwtplmnZfrkgmdauzm~urqsp`rjtouwwgssp{j{kmgnumsVYsqypY_mdqvzuxw_w}l{hbc}olq}^gjdih{iXyiu|li|qbeoib{{obygsrunhrfbs^cehtvjvbyqxslcj|rfzxwjrbqrnvic{lzhn{ptyrzs|wcu{aZw|s{ptfum|kkf{uokxrpz|em_fm_dXXkcp{}q~mpmkpvjawsh|t|rm`gwfxmzleccun[~uqurwpjktsftpjrcqqdzvhxo|n~e}ifn[lv~dldhynrmuovo`ldZror~umdu{c}hx~ymVscmevv[ql\uabwp_vrkwoms{iymbsb|vWZgdv}[krpk}^pofyossoeqqlYoYpklevbftSw`rqjrktiktckej}Wezszzvbowtj}mnqzinuke]s{b{mtcqbfshezve]yUr{sjlwaknl}vsk{uu}c^qfo~kphltdwUtvwnfprokigogt~eljrljiypqngmwstv}vjqpi~f^g|xyXshvnmqegum|ohswecmytqfttlj]pnWw`mn|xsnhjxaktmkquyujspwqjnsoRagf{hwsb{xp}ptcqlj{z[tcpllaagxn~tv|~~p{{dyPscvq[qavk}oitsZofZorfiwmhn{zz]uxd{~ljcdehpiw_lnozekt|euonkvhrypw{ymeimkztanylrRbnvnlnf~`yjcwulpotmxjuvgmo_yggUpvvrrsppszx~zrys|idvkkywrqpts{pkwvo{bkeyxqrst}w~fimdo`z}ptontxvvhds|}~c`v{Tm^xc`qgm}utpf|bwyikroz~lpSsf|makfx`rylrinlouronsj}m{thgtforxzu|`ko\exuks|tom`xYuqqmwvsmgul{sgslmdjizkqkz^yrnphlulf~lviWnhqpk}jR{}bVxlVwogi|flnooknqpjtmoy}bjzs{n~lzygtUtuwXyukmugsoeuhs}xqgmfu{ezeoqphrxwphwyiseuqcnxyepuo}znvuwavwgsylqowfrnrwbi|ajr~yz}e`ijutvhcp_ivyesthtcix|trxjnx}r{xjsr`ipcmwsrmm{{c~rr\glqk`utppyetrxzoxo~rYsimla~yj|_tohjhjl^nlwaztwknposvjozi~|nmervvkkjxjets}x{wqkmrowsvlzrqoZ`uqesuxmpdlkqzZwnS{b{cesdp`[`lhnyjin_tiqm}tps`iaky{]d}gs^jqvkfih^fegcx\rkGr\esadbrzknfeoqvn}k|crqoyusfmmfckpbiwgwgmmxotrjrlr|{vfsuhwmngxgzavqoppzwgSnvplchgnp{nyisrowovipp~mqquhfvhok}o|uhccZg|jgsqul~}tmoqxsqt|qfrpwoo}dkpvorw{ljgs~sttzlkmjoiqvphm}b|utgvzixowltvknqrj{szrrvtcdh}lptvdWrax~whzQyiqkpqd|w_{rssueq}nisjfuq}fupjhodnuv{igjjwpsxlt|o{{mknn_prv~xzi|s|lu[}}tqwzrjzsvg|uyi}h_u}jbskuhpsjfamm|idrvzh|uwe_szmmtegxxynamcqfx|irmxfxtlxdlil{hhaokylW~|mq\}nc}mdml}ssxsnzk|{es|s~zyh]sovtbopz{}feww[t{pc]m||njufvolkvlrjrps||f`]lnothiZqqm{tt_fvYo^vpvt_trt~ou|lxmgfkekb^v{zxmkxduv{lryvpqphloXnhjxtkjgos|ylph|}moyc[iy}pznuulvpmunspxproydj]sisx{~qvyjrmfqseqpssz{v{wb`m{qigeon{mnpXz^es`ufy}blkp|ellgtvhqnt\rtXzrrlylekslxsp{mp~ytfvnkchog~|q~qYyntagvky~usivc]~ynjscpccqvusxmlWooohjelzmslovp|fuotTnwrvvtu|utyuq~|Zl|vprjpmd{mfmlvckotqxtwVulhi|jnw}uqnv|u~^]`ukf|pzo_klkehicxU{vmywb{qm{}skudwhzg}fhjoftqor^oohedekt~jp}ovrruxpsyotseqnrvkgnygv`]mgps_j{wYbyjS[ws}mvZahwhzn_ju{omhhjw}vhksdprpuzmudstqwTXlkYdif{f\qo|uxwfyiugegfptbsosjtclx^YzdmuovfsogdanuxlbwhVsTm~wcst{osgnkszxk{~czZ~msv{lx|gtqvll~Z{riru_p_onwnkmiwjsriozypues|lr|ug~uyaYictqqmrxw~mwrfrvkxhhxugqh|wjyqtfw|vxtgy|nvtb~ycx]vxmxwsqsttvnkyyi~bqmskXoykgquz{pzvvjfyfZpujyjffpign_vri~~t_qoUshb|mi}^xljlhlbprd~ffvoZ{jsbusb^y|v}unrtrcxrmyxwv{vkks~gkrvunc^w~ppl{uvjquf{pmqrhaqsvmlynuktgevrqoimqg[wxutdun}kcozkybb`{eryo{wagenvls{olo~rykoxizpzsd_sZwmurskyksrp{tsukVwne^dhtkdinxo^cez~qyaxrqm|vsiamzykugnrujxxj[wztef{qklt_pawjryo}adyau|cwaprv^iuw`dUnxyzq}q`wmlwyrtwtuptbeywu~uygv`Zgde`t{pwtxksk[yoln|o}mqsqgylUw|bm~zYtgvf]xl\lykhbpwykqq{kl`kptsqt]zfvjjqqmmtjoqsae[|spvr`yrkdu]zvdkoad|yrigoea`iooiwwiw{twaimx_m}gi~zkxjopnw~Vw{eq{rq~ht|~Zspc{k~h~}]d}rpvmvoqgitkjhmwsjlw{yg{gmXrngvrx[tmtyqxwffuwtuo__vlgehoqmzo[bgvnV^uwfjicrv{rvnqjXz\mZ{tipxirucbs~Ly}mv|zvleupogjmj`}jmg{nkowwkpsuwsuwsvu{p}ltqe\m|zq|dlo}omwwvwtosqximiaahpre_i{{trnwwxzs|nkgk{e||`dxrjrbl~\l|o`tprqnvldojt{nlcu~yevtxwkgzpyxot{pixwmiguy`SYmoZavqhp|bjkwfqnmob`nvsqx{zx~zsyihsLrnwv^|hfjn|lYooktlhpjoZn[YnmiXwgnxbw}{n\peonxuxctpb`hmzjg{jmfaZeuo`|rkmsmliunrohmt|ebwnwtOlwl[`[}fvantzm`i{wfW~yyopwutzxamlq`nhZvzroupoiigjmzajajj}xtiiksaknv{vslmmrfajhojhbvt|wmfmyulggwk~ikmzxjaobrynx|phbkq~}t|Ysruv|xn{wkgp{tspqnumpfvqvigzhqnobihkvupxipzntll\bemupsjj|orpnoxs`wyibXzhwju~ivss~binmdm^hNq~bjqopwe{q]|l{jvntps}znwg~jipztpse{nuwgx}_rheqwmkywdmqnfsslqgy\~vvalp{eprp~oishu{orpnudulj~towlgoryor{h}rupil{ibksrjmjsvoosbcwtvben{wgt{kog]kqypu{ue}pnhy}{rq`jajuvzpmza|zh|wvjj}jm~ljvd]p{ftkmmx~wnm}ukne_dawo}przqthqlafstr{tuguoslilosihtodoreoqmiqwtrbvjvqpp}vf}zzvk~hrfhpkmthsppq~h|xkuponcxaliiwqnmkvmssz~^{gwotj~v{rdoonb~zgxzqkpSmy~snry{sk~^ph{v{mommVxyzc^ug|xwef`ykgwbatqoxxjummmvruwwyojnumx{uw{fswsp_`ouxallnvpxxn{g}ucc}pp}ovxgcgnlvcafkxqoorr\ihsr}~qla[ngttql`wjr{ptqprghjtstwplhqi{ph|wmemumw{xny|rlvaapikxq}as]_dkstjuiogitlrobmzTwnn|x|]wn\thqroy}psrssnZ]iwlnwbnXbf}r|}xs~joy{~ykuty}}vxytvw[vnl|tnttan^n}uormiwzisr|Zwutidso}w{jqimvoq]cisuvrmcux{tmeVaqui\zmcy_{y}~dao}_ms^}[{lo{`jx|p}zgfwu`Yurcjmhbuutijltwufxvgvahjsl|z~ovx{tkd]vw|w`z}dqwqjfmzmfddeis[bnlqttjwnj_hqbb|pzir|{mr~\t~aydptxb^vjmojtvu|{qwxqttk{gmr{ufikivkqitxautowubt|mjjbj}srpvXihxsti`c}gkkspsz`jchqrxqUysbwletj`vkbjxhu}~pdhicunybmopkncdgqjs{mrlzbgw~^u{q}m}ml{lhnahio{m}_etgesgkx`nwsuuomzusqfbs}owp~ege{nmtuz}wgcgtkhvWahncsfsiuy}alkubp|c_ejiilfny}mlp}r|amolo}rduh}gmu|mknq}omp`zndqoewnWjtdbud~ngjqeoyqvyXignvgrmnctps|ad{]mlilphy|qgtzmtzcjcbvipdzevosqi{nyggfndguk{utboxfzvg~{ozxqimrshuln_wymwnpirskarzn~smou{kqtqnrdrz{eqosYqkycswvn}qn}x}vdud~ps]uth}owjwtqrymlpkdzkwqilkv{efrtkqrcxr~pvj~sqykwiksvrrtp`e{rb^mq{|jyerotr\gthph\nzgs{thf_fzr`w^}twcnh`zwx{bnxjr}scidmkwur}yopzVejculuvwj\uu`vmjphks{}s^_tse`jrkdw[fkbze{jlbjzuetmx|s~f}wzyxq|or|aspvv}fp~^brf_fzs|ot}uryt{nnozckh_i[iunhbiqOtdlnoldbrlnlrzcom}j|`thxcqzrfdu|r{h^ctn]jvxryzsjwlwog{thw]rughp_xvwmizwqrb}ySblemwe]hY~t{Xavnvkslidhc_wcqlu~g`{y~zrqknvpwm[ueqjny}|bwoasv_rhqxqolkvofXw{hZh{ldu}wbtzxk\bqw|bhk^gp~zih`qnnmleqwqc\|rm{jicyz~etuo~ltyvkg}}vjso{bkfivgj`nyn}m|qtdr`z~{kshyj`_icssougm]}nm_z_Xuvy]z{rcx`cqljo{mmitk}soouu}j|vvham{gbvniuxlvt`yxmdhiolnWwwXwex~vCpknlrz{aid`irzinlqdqtq|i\kvyrrnf}rjhe}gu|}]njqnsh_|Y~Zejfzfonnvkuvoqtrviefgfzuppuwwlm`|~vwgyiUqdzqzuscwj~vnvqrsmmwywxvmqmxcXqvqwe}msllty[mjlmxem|w^q~sfg`oyjuruv}vozoqzpyizkip~dqntsorlprwoqrbxcxfyczlfmpnq}{wb~~norguevnup}mzqyhlqwth|pd[tieqkqvvtblvpj|`l`piqqqsrnuhl|simlvn||yjpcmv|xt]mzkp~suvvahptq^ktnnpxskmqlozbrqqmmUxhqw|iq{nn~hqjyXpt\xjmm{xlm|l{xh_nwjnil{tmmoo^uorm\Qhqtrkwmejs|ewoqmuonskxoyo|kaptkh\znsj[xnqzr|tuq^u\knkyhMnkqglkmrdfxltkrgzbnqkqxiwu|ncg|rZxzymzmhw|po{q}eckhvupv|rVs|osnbavipYrhu_njimrtixuywZp_r{hrd~eoimdovtjimYt{shknjjssvhiju^jbhdefz{n{lqwyh}q}flvnypztkjosodqkba^hdtxtnm}hpxo{qmpocotpkvwh^xqptemrnjrpwpzk|qn|si~nyl|ybxa^anrm}p~fdnzthifmyevtz|etuiqvogflr~pkekgfrwljjtulh{zvdtnmgm~yjgpkhwgp|zmoorgnxzsfmpkjhnqwqqzdxknzpjvtwfr|Ri{ZejgtuYrx_~Q~qk|mqdsukrnpfhymnev|eqoruypbd|ucuu}lqv}wtSi|qtocgonkgnt|peqwqsvrrumuwsasirowlvzgwourqfqjrsjsyvunsajtoski{pfhqnrnrjtolosrmtj}umghsgfojpmwxq}tutnu}w{o|hkwpfq|wtl|svyzwwwkrsshn|qwzrwhlmu|ixokgvfismjg[~feuuYijRqfdkpmnhbmxbvqXeufmuxvvtkucywlnj}ojbpwvHmtrqjinmxmmvrpevzoxutw}o|m|{yldpstse^okqv{pum{xqjlooxhoeimrv|sThl~nsvxtxueovuz~prrsu|nibqxvqx{gmsor_ppwqss\mkutxxtpcwnk|mmjqmt{glxk}\mqslidoro~zoyuvsosnkjzmowvmpajaj|vvzvvyvlxvdz}osc}t~jwslvssqvxitpn^|jox{xbap}pojeylrpylrymcnlrojufskvfivlcktwp}gfz{ksiqhkd{xqmosc|}mdkxq}r|xt|ntwj|\tg{gu^nqrknkonylionj{o_ovmrqvupw{bjYgqagkivrmflhonlrrr{v^{trsxerfuuploekilil|hjtowxqghwu|zxnsh{ytzfgbba|hohzygxnw}ozr{glhqwzhpdrwyp}mbxp}wunqltuuilfw~sssoklwlvmrnr}vflxgomhx{eqen]whfs{xuxreoopkokmj~mktlzwdyouqwlsetpsky~rbm|lvtst|ow|rzjuww~~vgpfiovoaq|sqouw|kgjkqkesi~uuj^wsbln~xplurqrmxtqnqZkcw^[eqqejYjltvirq{ltxwjsk^fwpgudxs|eunmoli|xpkgpjmilmoukmumpzkh^iowj|w|hwwvww{by{imjr\gzmqsvzuspk\hRhskrikqsi|lyxYqdklqfnghySzs~q`evsvn}oznts[Op~qpmt\fdfgxuvwy~ynfskUWsnttbffxbUZzskmymrcuvl}`owg\tilax]Xlplvss{piyeHmxyYgdighlkldYnsknchm|[ffl{ownn^ubsrk[xZNc`kyeej_gekb{hvy{oiczaijxidOlntbzrnt\wk~wpgtgZrUvcv|momm|wkus~`jt_cvi|h\blrqqpqsjoYoegkxmqr`tv|yb]ukxnarfhwkUwdwxpc}|HXu}wljsn^mrpxjrpnynw}vu[}weqplgx~nxlnyzjnpxyusjdshxp~munn`yawgtvpx|ctqvbxr^hid~hmwvhtaiqtf~zknqvqtkmlfi[wrkmqls~wkrjunvadskhxmipqnrwduvdpfpn|yiwphjsv~vptsjusonyjseqhpsmll|ox\miudwrk}vlhtenicivbmrieflfhkcr_fqkfmkvqr~hruiPfewjqg}vX}~a`RoqngvloqZ_bkrvzigkpzwgxtpvxnswruhmie~rqdvkoiqupnfjjnxiNvljtststomtrypskhxxns}ye|jhhjbY|~}e{uh|_izXu_s{q}s{smxyrtmk}ljXkgk}zxUzvxytsgr|mdgltfducixtpp}txz{pyvpzhi~|n}ymhvmssdr|w}q~xmlqyalpqrub\g{gku^hldelp}ux[to{swzUfdpgmyxrqevkurk|r|}guyerqjsgkfqwp}{}imqinb|myhofwtyeihorvfgjxXuyrzkv{Rdi[`nt{wuphqjai|gqrnlvxz{{ewuw_olnmRxg[mZaspvifsxxvdYohpy}vd`oejfunvv}YkxsVroni}zpeixgnZojpcttkv{z~o`kpg_gdiwurwXu{jpkxwkasb|xf[qm_n[vvm{xtmiku{pethoybmirxmwpro[bomqS}x]~txoayyvopeirpv}s{ou`pn[qrnjr{tfaiopvcn|znb[u}p{ug[nj|vpp}}fthekpkqnejlrx]i\qoocx{iktkxq}omevnv[dnijvpzf}|{u`dq]n|qv_qdugfsnllot|duuqsyanWjsmkmlpkungoovbqywn{j|pz|}tway~`k\Vojxw}qukgqxy\P{pkej^qoj|xo|_~sooskuo~jobwrXknkptr_rarl}UyO\yrrznzcndtvtrlsrtsj}c~cmp}Ikhdnp|jj^X^vrkrhsnieoauoagokmljY}tmiqkl~bz|fvggwXrejseqrqdnSdm{_}ktcwzptoke|{|WxylqhpjzmwFmdndlysfhtdv~lubuy^}zgxr]pemm~wwsdngvtqn|cfmpuahyggxuusynRunup}o~irrkoq\fqu}lj~dppdav}w~pkfqsrkmursckap`vozcoseigr}xsxogwj}ucxu|pnp^jouilgwyxqlmt}umuyxmivhxhzpmcsqv]{]{Xydzol_texYZjatkk}|cXyo]icoovi}k[qtQ|{~shtggx|gdpxvwei{h~_vjgf]i]yrnd`oQqqtiir|W}tpuzytirkinxrlwYwoxup}wXcrn|ina`ljnhcinWsupwpeushujrsmnp\n|fouNfneglisilYjgkhw|xhpduyohqge}ra^^ssljdWmnnstyqj`le{]vmgthpwptuibgl}latpelfjVcks|nionjjX~]ot~eyfru{tjtnq\^xmmjsw`}uenqxnnjxy}yldn_]~yedmryvhrsjjwQ`lmmf__adx\gZ[T}\t{omjyswqaXvikep{xotl\apsd_uni}mggjjPsdnms_yrfqsoj[qn~f{kkctwfsno[sju}ozxwrkqcnqy{}zk~`hvpzlkmqdwtki|opyiemq[vepovghavimqleizvsyofztaxkx{ey^eocwlqk\xli{ixxd}leutvgm{zk|lmwsllhvm}jsptbfnqdudflok~hpyksmhxefrqhpioeck]f~svwcUwhev]`pwunwkbb{tdWyspmc^vhejip`fkruze}shdevzmg_gskqxrqrrmoebh`yeyqu`rq|esrvlmVolq|dxo~yrW|amzh{^szpwkik|uvnxctZlsccmiexztxqirozo^fVmkpzbkhr~s~wvwolipokkkxadxlgcy{wqx}ysxweowoqfrZqv`}]lyxtnors{qdjseqvZskhfkpj\bepntqnwbgZwj~~pvzriqyjrBpulo\gsrtqkzmfkuy^uyotwinw}frpxpuyuoszjnrrkb{|imvwsi~xa}mjzzltbkxwotwmjskn~x|juk`gmsxpspsnpqptluojomo_rzzzyjyslbrayuquvrxzqiu~geoimwuo{specgx^xopjo}juq~b{kon`tnoj~lxuirjaxpvxa{smkboc}pezwli{{usfmm_sx|]qt_xyquqpYqmslmfk{cjqenxjqsvqerpc^crct{etlilgqhwnwojb_|xgsRvlwwybn`pmoyp{jatj_ubgix\Yt\vkg|fvbnqm_nv|gm|vtko\vyrh\sqk]w}flmn{rYrx{ovob}p}x}drv]|gkmptkxq^snofvgutwflchisbdtpifnmwrzwllgeoldwmmp|lzjv|{vqwivorb{sllmrfl~snw\n}efoiinnpmouoo{swkz^_uk~{qpgflw{muscvjcrx{relf~sdns[xoklhjxqnxad}}nsxlrVtdpiozlap~ozzg^agn~supqpkuigp|wWssqhrg}joytqpkrukvf~`s|{rragfxsdousqh|m^}lrjesop`vzkw}ctyqkjqwzlkovefviy{x{}vx|a|d|sdxpgrrfnjpw|jtqtqthvwyumkp|i|rzso}fr{xyVQypx}n{w~bfrgnqy|l{{q{y\Zws_lsmexezytnsitlUonubXkmnnkkgnu~moolulwrkijtqxveqw|zavehjuor}lcrkq}l~_elxgydj`rhgkthbc~{inromfz~oke|iygl|llpqkquqf|~vmjulnpxjmiwapjr}wqp|{_m^f{{aaunbueszl[ztekyunjzogg^vfouxrbp{vvwjur`\fwxpqUippmk~swRQnyv{rlvkbtglivhvfyujkrjvua\tswngo]rpw|w{y~akiqnd}pdzvtyxgjodsmqiaitvl~mQxhgfxgjrcmnm`ecgszjxireox~tu~jnisjh|ugtbdnzv`Reoohxpq^|i`{pppdmzvol|sgwjpk~}wwlhyudttstli^onvk~krmwihqn{gxwrjxuhp\k}polmwqooostreoxXm{nd_ttkkxyjvzijupqrsumvs}yh}lx{uezxss|plmkwipjuldhrqqqxe{vpxvozucunbjnzgjvlqtjfsf^cvyxskcmrfxqcmw_hnmrtrupiyrgrku]r}rmp|lyggnwksk^Zfkxlsep|ip|zd{vrnvl|jk~eo^jqs[zmq^bvts|qtqumt}`{zrQxyfp~vpud^muvob}imrXd|^gvZn^dvfphmo\rlnowumjcbjvtlp_Spy~xfwskellp|yrvdxb{wmwpy|{m}jb\[wnibu|ysvqqqjrlp}\W~mtcozponuptbviKsigygswxi`pho\|nu__tzpn|u{vdwinwhoknmq`hsh~whbnwsysnygm}[`ocotnfmvionsrXGifofi{ogrjmeq~`kcb}nlSj`p~cgisushyb~fveosg`gtpddpfqsapqkuk{i_m~unsumpotitimsvxyvtkeolk]vtu~ur{kp`mltlx{}lwqznutyuUmrzwlldsw~n{rqnpwtvjwrnwmo|{lbl{lyh}ptww`qgkzawdhrxvrlpjjsr_pkYrmrymwpqflnal|]gnqb|opmmjwx|konig_veuvfjqlmkzumhmqu|juwjtpwpl`er]ujuzlx{vc{e}jtnphvlymsnjbse~wooasvppmblpioxyfkz]dhstmdozdc|\rujhhb\rgrjwy|xk~iytyktg]jxizh|ssigor_g{ltn~r~l|iil`omitgjm{pY~uptgpcrm_xoognh}njkd{knuloqzdwsqpsofjofxqwpmovu``q{vw~w_kwlpc{mzqvlxxt{dqwciuTjjzcs~czobs|{`zefwn{kqovsfttrfyjppgTuzllv|lZxoswiivtWh{faxbt|cvbzr{grgppqaxfWV~w`Xz|YHertm|zop_oreygiu\o~{apxi^vowh|q~{lhq{kwreqrfpynseogjrjhopnhidcusvsslonltma}wvfm~`rjgrnswzaqyrevqbpsunyhll]u\qbenf}ohj}[zr{fpost}gs{uyvowRxmltnwn~sazow[hxkhixrcljgubugojsvizpvy{mk{jkvmlrqkmmnwmtvsojzgwm~fp{pdsagukgiwwyxzpywrlZutlz{nkbze]vinnirpmmgpkk|zsnfyfpc}}[oxdqlupd^Ybnqllww{lqmfkemtj{oy|{i|oharvzbx`kmveqycq~zml^vxlchmuhyaolzz|llgaPuhaozowpuutlmgtiqri}ypqid\ucsypt~bgowvrp{siq{yuicuoi{zvtkwxoywanqgkvrymp[vxesx|yx{njYsgktsvjkkajes}itq}jhjkbt~XplmpzdlbWojonazbpqskuosxbevvgr|\rjfehefpw}dp}~u`nYof^wissevpmxuj{phdxjxogu~od`xvsaxir~m{|jsullzzuurhphlw{txhrugsiptq~rnlpnozfvomjbbfasxunp{Qzpy}rulrnjyjvpglxow|q{]iejgnpscvv~vtvwf{jn{lxtezmvnxxvismktfhkiZXe_ofwstw^hjcwjupzoprZtza|xkv|y]evaibed~jeqhePo]dkhh~{kylllsovrbru{pp}mit~^]wotiwujjmrkzusrhrtrsp{hqrnsmouo`htvwzx^okfdsprmdHv{rdjmzkYs|kq|\RTYvrz[cqtcf|wnvpq_w|t{`vrt]r~uoqarmvjozvmvorrrnhqxurlnxdzgeqpptmbjs~pjfxsp~nnclnhfulnliqjusxpuqjplcznos~rmmhsl{}qmityzouxqtpsqoij\axxtomovjkzsigbmw_|mnd|kimpozzloowqfrxfjhvrwokoeguji]Xrsvx^tkm]l_itqvvxzhplqmrl{ls}orhqoezclawmlhsrwZqrynwukiqioisottzlk^zzosrzt|~obcnxusjt~xeVrhzjMimvf}w}ysjzptjwzvko}unvc~\v{jl~kpyszrWygfkypegvrrrhw|~wfiu|ltlcvdrzws_xooopgpwuujfel|vsunmt}o~se|t}tktuyqhpxw|wahkhnmwzynkpzsvax]rerljkdvvjylkpv}ursehjz_smVc}`}oyk`fgqoz{{ps}~twuiqncvhmwzc|~luifjhs]aljmsahmfnuuq|gpnphwllr~kxzpo{pcvccfvnqfc_Tnifg{ey{gujqjsywn|glm{chpY~bp|jeye{tvnuoqozmj`Zylja^ofpqi{rpvcwngpr{wxmrhnjopsq~oyn}j`pvxxf}ch{mojy}wsjhxjXvwvgm}psqox{ovzwqrwhp~_`ztrtzuyapr}kykzocrssqjxdhplok}eg[yhyvO^ptkTd`]wvryrwkzxbhqmnbipfsajkqzlxdrtapnxhmxlptogcwztq~tr[uilv}|napsortutqk}ww|yegouthibkgrnyvw}mzugrckmyqmkpq|qqjlrlstfxrq|ouqtumtognksojhwjizxllqsd`fpyivph}o~jcyezYmz{ovnbxim`makop~{yfv^zn{nhq`duwqlsz~lumwjmj\lfvoltin`pvblfdyhqopwy^byrhjxu|wztubk}i|lyaiw}tnczvi`cq}pwjrphxjc~cbdxokYgm\tov~p`gunuoyopxqtrfd}ilpxlxj{mjhlckkmktpudihklqfvtqtvvotr]o{dm]u}ss{~}}}m}jyn_pl|hzttn|}swsxlieqrwzfplos|ayYrfjZ}nm{nnyosp}jnprgqmqvgxftryez{mjugqknz{bitk}}omyqStnu~wOnso~pfxhyvjx{jspm~huvp~jqztiixp|op_{yk|tc~qpvvsvy~nvuwikbw}wpgzrgkkfeTuv_pr|ge{txZli|hxzetgufwpqtlrmsiuvsotssYuyomlkkzgnsph_gqw|n\\Xfevxmpolvfyukrroiwklqxqhptlpfjj{ulavijvpvXyhlkrrcerzt~bgmvhwzohmuihlcts|ynbqwu}y{lyregt~fhfqhcwmrws_nkzr}z[xZfkbswf^awv~sir}qntrysrjqbhiquYgmpzu|rzejop}ivuvoycodpraxdcnio~kyvgq^kwouk|dvduegmwgu_gkg{jh|gtm{wnj_cotdhomuL}ddfl~wrjnw|prhumzpkukwrpl~t}s{eerux|[sdslrvmhkroh~wiqjm{ulvqsyqsv}ytwboxksgipa|yxb|olgqxponk}hptvpqppzrqsm{o|wogjmtyxgvyo|f|qlo}|tziigwuw{pduu|mwjesrsfutwpkjtjcrpzxplgnmtelxqcptwtqphjsoimqzt{{ruiptrcwxummsrtg}xjsqsjkhphvmsztyqTmi}xpior]duv{nvmt[e\rdko]>hoxrsuubssum`vqcqqu\qimgrrk^rnlu__pvodgkpkwqickbbzcrr_nwotf_vqjStoqm^rZtqywfcfzgugurkpXjqwscqf~]rdfifvqqxiw}vzovezpin]ugaxpurxZ]xzm{clqkxdir}jx~{cx{nspnfwb~}ogombczohj`ytgxqlcmxrw^mwizi~utw~wvaottfbj_spugpvts|w~~frynlufoalhsoujwqepiv}spyho^hrfomq`omgu~Ygz|ogpfy]qwhqqyul^wxk]ximpsyvllszrufperxtrt{bfqggoemfuommwgvowpmlwzuzmlqulfqshirpjydukyunbzwhvujzonem|gq}ovsw~bscipu{trj{iolqsropoutzrikuwpw^gylkopnrvjumutzmpfmnpluwosfowkyomhwcjsotr}plkcijwj|mrqmurqznlqt[heivh~Ofs|mcsuhjn}jug}kir~lsbuht]h\togx_nzhmxnmnzhevv`rxnlnttrt~satgux|js|zuivvlrvsnnfuom`rlhpvgi~q[qfsv|rrkvXixkspzpvsojl{YzfienYZwgexdwwwhluoqq_zbtoomcvhkvqttjuw{hkpvpsgm|m}rqnYihphq~cq{xhizgnnqt`s{pazvbmoqgki|~unklfnhusvqhhgk~qwrl{uuwvaztpsfsnvd~kjt^tjnnub~r{judlsmqjupbj}wflbmsnesiVi~m`iYqhrwnsry|}iikgzizvq`g{mk~zV~ogq~onvhdnjcqsjcvzvo{hzchjw{^zfqzi|otyt`zjvileokf|pn}nttkl}h}qlt{db|txsmya}ztuqjmp`oqhw}bqlhpfumztowftefsrrpiqlptk}ybfgun_^wdzzlvrjxvgwxruoltqgwwjvkmuuukpcvjoWqr__h}nj|}mX_xrzydnz}mb_|p|lzfxerqqkjmponvmsppmkj}jw}rllnxpcx}j_wmzi{_hnpgv~mZgwprsbln|hsxmo~n}iszxh|tayoe~ylzjobvpodglpq{jyfmoenmtlwnduwhujiviwxtqrdbqcvq|e{efxn{j|b^lmavtsmlYmqushkk`pvhbze`mzopjcvffx}nchkwoqvjtqq|qhlp{~v|}la{ym`v~frxslripp~njkezvtxi|qpvgyxmstulon|syq{tmknmgu{kcgnt|gjmousnyd{yrb{eytnzpmnr}qintvktdux`oxxvhzsyustgqzmgwgxrg~ndfszyvwq^y{r}rkrptwtuxuuumlfu}xuxwlfttxnzmkikvy|lku`ktflsoquivvmynvxyhhutsutvzom}isfy]g|opkrernmikxrxrq{eyowogmqqlfqvo~bmvskpqpsswuuwnunt~o\lugyXwghlslosdwnvjydooucwt|ebne|zorw~rr{o~mzae{ahyqnphuog~nlzwgqrl}zotrjuojtvl|u}wsjrmwcpdethmnlvpnkesikwldwycl{qoqjpn\qbiuetkzpwrvo}{tklsskww^ssgj}zortovlyum{yr}cukspvk|s_y^lvlxekk|~pnmezknexgq{`rtvnmbcexron{ite|q\duwlz_rx|vsaifdvgn|`vnasyolbXrjqqexnrmzQnjye}tdf{femzhyxrtztwrobyy^pmgb{ofwxrzpsrvbf~n]z`isubittds|`t|hzptWmozimukimqzhpboh}fmqmbvn{Ytm{Xdurk{ydyqnzU~zzqbg]rFtnodf{m~tir~fpf{sxyuty[glpxlzvl`_{mtxqhwpvk~~nntin~khtkmtrqqmq~me|q|akr]uy_clwvme}pti{vmwipisujyhynowm{vx`mcszfglvp|w^}l|z|^ynlwkmsykgrhixkpjg~jzjkZ{{lr]wzi~kzflxkwqcrtvboyootXbvx_wcSZ~kwrplrhlgjows}wzy{qlvgd`pxxqssrY|\ftt\qWvno`sj|swe|aVhvvnmaV|rymeVkuq|oeyVeupqufkogpmjsieosTg}dln}gmmhm_wo{i}wwtwkrrgiyrxowcr~gpluhvkzc\oclkt{g]rrcyfwn~hwvuoemvfXk{pUfmymkx}e]sl\fsefxji{{jjmvsckpohi~mg~durwi\pilmrxbkqfwhH^V~vuhaszollatzxpvpwwusyueuvunlrqyimYqXgecnaqsgtwt~mtpgctjyfxtucyay}nmgwbtuuqrzflesdbsenadowfk{paj}iz~qcsur^x{~jtskjs]nsnxpiwmshyznp{ypsfmljhu|utp{yflvwpg`z|es~}t|~jt}e}qzqb~fsuppnbnkrvuuonp}dfvvlcoqtrafypyqjsdg{gbxpxcytszve~mmn]t{jpfmntnkn}r]glinuqpwhphqwezxltlompoa^dmnaznakcmjtquwuwrhQrhgmsapinmtni{jvexhsXurY}]lpu{wkmft|kpqqxkv{lzujl~fmdlpwszgvytrwm]voms~pfw}Zflm]qqwvzZb{juo~^gxoyaurzrnh{}lntldrrxksribtVj{rtm~kiyzxkuvnoY_gkzunpjhlnwiyliosfqu}pomjjotthiwwXhus|tgwjun~{trk{oitttzckqhmyrryxxjkurl|tt}qwms}kelmqfukj{qxvet~totp`mtdp{r~winwg}rk]z|q~^qkrtglk}ppunsjkdvw~~soqmqc{xkqxximnw}yrnvzkoqemwjqoowhtrrdsu||nlxlruu}|mmijtnqo~w~e}p|fooymsqk{t]}vy~dxlkrwluv|jooixoynmqqwxrnsopydnvmwqvnuujhopxnxaxzlvwxvxqpmvyvhmw{ozxnjorkpmdem{irnufqhxxprmqorlnsd}rkolmjhnzrilmnl{thk|pgvnlqnw}tf~w[z`xSplo|amtkzysqotqrxgrhu~umjn]jnr}b{v^Tuw}`msshtviiXvj{upjuvpdostlhomvuorhr|f]vYfuwhloyugqsR~rkypvkx|jlolxg|sks^wmmwo~rrssl]q}jkffh~ye`ly|ovcjuwsnpt`gs|sntnym\}jbywduzlihxp\qYvgwlrvashr{w|txdtevcqtl|utlxo_vzmXplttyvpwsrpgxpmzf}{`hq\fsgg{}r_ml|~vdrjwykvqsvyumtqrlprjfpduqydhki}ovkam~kulYbfoXuqln|`~degkpps\umtds|qSj_xfsojmxqwqjst{oqnzazwbkpm|rszqzmi_fxhu_jjsthu_xbt\xtmg_gzvk^e}^phjibnvtwxekn{obnq{su\sfmt\^aul}pVhY{ncT^d{f`qtotduk`pqusqcj_{rmsnprxckhg|~mnmbM{}ousngs_lonquqnwjjwdi{yzyozuepp{sqqgpTjouipwpj|ljxiqungkvnfoqh{n{syq`uduvy}x_pYxnziusvvqiuqulbnq~izjf|ozwwogltydlts}upjmxhmpmqju}i{hl{yq}s{ol}yoyyoknudqfqmg~igjgypnht~lbkxdz_qucj}zlhbersjqsww:ow|szz|\epjusadumsrgissXmb_earmwzw{uvx~qip_axh{hbbahjfpqzxtt\ev}ojk}iqi{hvp|xwoywwymmqcdmd{fg|ydmbdYxnojnkjc^r_rwud`utnaxlmpmcnufx_qxYusamiskyxpTrwkdwufqnge}knnlja|mjtubuk~ozuqr_snzplbzlqmhvjurpTj`}wmwqsyg}ktyrnlljryo{hik|gt{sUwoieav\mdznouXyumxuxk{zxqtsliimxg~mrv|yzjwjiromjtqh\qfls~~fg~nqgilqht}epxsllmfdoqhnns|eenhpfowrr~zlnkc}ntvqvmusywgtwei|kk^nzjh`]pvrm{qcuj|zzsmznsnpp{bmljppnp[umwlm}bzjuhwrgkjq^~jrsp{kjswys|kqolmduprkpzrspqqlluy}z|`h~bx|tjwjrrbqhuv}xvqblgomfjsqds]f_r|mgtfwjpnqkwqmisjyfcxnwpgqw{kqqloq~vliyslwksl{~ntgymdzofswic`sykxx}h}kmfsushm{pfldynmyrytvlrrnYtzvrmytmgksmckr`awallxejnbw[img{{juxfpqtymnz|yoygrgdysbu{qkl|xsgwywyqinbnhjvlmwrzqrzjvpe{x}}bhmzerrdfepiqwoqkmpisqmonhX}owrusytnlp|wakv`sgxh{uuppgjwgkxjlhxrpzniotwtwudspqiu~Zgsvgghs}zvkvvklhozml|k}`~pilv{upksxkw|tmlluphukR{muwvrwukssryfx]gopgnojwyNej{rtrmphuo_pznxtkh|vgq}wvoitqiuuwvkuvwvuzyiown|kxmvoy~xr~lp{pwsxjtnlsvzmwrrvgonmluurqy^{swoyqwvmjylphhnu~zmkjplyo}~fmsmlpw{~wktxpinqqm~mk}xpnzurpitknpuxylljykpumen{pqmnkuqqqvlvfzm{yxf}wvrgptgicse|ltnzylnxluwxthjqvnnhdxslv{cniivjtnvavcnfkzvxgw~pqx}~prxv{nlavmlgyw~]pzdrxlgrlri{ujfmqdjmuqrurr~luj^\estjtwdnrpk~noszzq~i[x{lpbrnlkz}tkdamosruuhlzfknssxigks}npopjjygpb|es`nYbp`wuUzuQb`_oijXWwrlrxzgtgkdvwvkpjk^myZrqiprgnxwteujnhdkh_y]gjc||irgs~tsxvmtnqmoqcglqutg_hWlqcozjVtfercxwgaoegdVsglmfr||jqso|lgV^sU]c{lstbiih`jhhh~bdk|ivd~npkhtV|md\ndpljdpum`brltsckuu{uolpy|n|p}xliiv~pinouis|ofutmmlpsl~{{kzuxukyoql}ammn`wuywrwzegzjvvuxrrimnzqcyjz~rn{eyfhvunoi}x{`y{mkqepwzws`sw{ygpoptr{ykj|pfs}gs~llya_}xil}znsqta`hcsvwqfktwojftmoidm{wwqwaa}grWpru{t\m}k{{sapjjs{elzezr}ltnorcf|omsrsrmrshn{r|kxxlqx`qq|b{lvql}}gzqwvtp|ytkuf~qxmxrvoj~zupox~xtic~zonqwtlmmzgq`rmyokk`calgtdlc^|zpk}tkiuqputsodv|znoxdqyl~mxxsszisoz}wet{km{vpqrp{zaysy]itlmvgtimup]|umhslznkpqnyruqrizf|spupkw|rkefqnq~dwwy[{md^{tnro|oz|rnpgkjuqsftgu_aaxsaw}r}^qwsulufqsdzidpbhrmgwcguvtrgsetwtcpilipknrvWouinckmlsqhvxo~phkw_jcoTe|yseqmxys`r|uw}k{ek[j|ljzjl{~v}ualxb}{xlvvs{fqszrqjkqonfmruzttxwlsimnVv{xvzb{csgzx{racvtq`~lvt_~voign{lvyfdwfro\`eveae[tg[m|e~zljifmxs^_qztlhxjtjc\v`hpvvqafupfonhYjjh~pngu^cepuglovdkrp^lgwogwjmd~zeopmYo\nzYoZjm~kulzphocikrkv`rzuwrzns{frdosisnsixk{tvpek}koi}zjwqnZyp|qjtvtad]spx~ontptoyiygrodcgzyn{gk`oiqxc~p}wz}hosq{xrn~s}zsmnngiuvsujkolqowrwlseqbety}ntouklibjzrsgczttvply|ytntm_ootkkms|votpqofexstta}nwjoojorvomttlpgnspjletlvil{xjymwrthqqx~llk{{~glkhlrrzeosvnpnoq||uo\rZprfgdwgjovqmp{kolnz{h~hmzmipqcr{uik}lsedmqtf\swgpjoxmymorxpl|qsmulvvhpsofjoqhasecvkrtczrvqxwofrypxrmzs`iygrpju~poortyooxfslznqt{jku{vmkmoqoemux{yidfxr{jgrszn{wgrw}eugjneoyse}xsinqsyteprr}fjqxg]nnkamx{f[qeln{l{nuqtpzquwdd}sstht}jr`{znmj`~lykp|kfhiiutpqd~fykawhtz|xwv_cs|q|n|xpceckwoqodss~ldvwg{tllnjbm|ui|ksq]oysiewoeplxihzimnqwqvwnrl|vjmtfmnx]ml{wjspsjfcfs}omwzrmvssm~n~oikrvqrjlwaoquxlofjzblpjwwjy|{}{{krmhclv|}vntrhljn}zixcm|r{iuojeoynrfottvgnsbyrtp`suhqxekil}vyg`vqrp}j~v{hvywkml|ikmhvjYsvxnl|qqj|xxniptcprsitqfursiwo~jqkkmylmyzusmtoxbwlvnmk|hkagsykulcvwjyoysgfsvryxpfvx`tlkr~akjkksoeoyoqoxvpwsmyjuxiwtmtuirqptmjqm{vvtt{qu}xl|vsyizplmov~nxvsjorulvmsvlua{qluxiklkmip}mnoqfagTzvmlg}pmqkhfe\kmY|jlWnpvfoe]lhfm^cw^xyw|_rskw~mlfyYqmqcunqpcumrkphn}`hhvv}jqz}gkzmfro]xeUnikr}sboleojpfyby}miepfrmc^rygu_q{ekrb{lrqjllkq]lteq^surwouodmYPpf^bemqg~mlhpm_~rrpub}uertl}gw|u~mlwun~t{\es{n}tsetrzhvrmgyrkk|{amyhs{rnpyuxnunikurwyesoyqxrfwrkndporysapdjstvxuwopsbxtwqjlkokexzvntukyuyluiyvc|udzmuypnhkuortrolv|rt`ivk|vpsno~mu`lzpoxcyfolt{vye^wn^b|w|jkljdUq_~qcb|k}zygfxnxntnhvxww~rxw{}nuvj}uoqacrluusfesjjpm`jjyet~xiliqihus~{qkqkdokouhukVsl{yuZ^}u~Zyo{y]~ukllwi^pt|sytsb{gmktpgddtgwlu}}|xh{xp}wijnounprmhqoz|sr{jlpwmz}obwjjpnvifnrxhveqvnppscuqlrollutwukjgodljjrflqd{vuvcvrfolgw~ip|sljtjfyhrspvupturproxnzrj`{dlo~vgfjmmrcprmutr{xszjfukr|umo{}gkr`vulttkpohlywLmxsqxqwwxsjzkbsc|y~qumww{ffrlksrn{{rks{no}}vhw~jy~jvvln}Uuupm{nortk}gjkpmmopivfix|gk`vtzwnnzoklsoqj]slq}rqsnvgp|gyfoizsvystvl\f{wxmwinqhxqssppswrpph|pdngm{geczsdsltvnvmpqohowhsknhip]ksngksw^iujodwfvlnwnqcotvwkzm{qwmnzzj\fkmysq`jliwxkvlibkrjmmxv|qluyezxuuhwydd}utgkskquqriuor}vdt`kkmqu|qeil`njvjslccvymlorpsgsmnmtiiory}zk^wcmp`t|vqqol`rrm{il~ycynqtauit~qvg[qdnfhdemk`ogqgyrytvtXsenlpgkfs}fxxfk^jrwso|lzowlwv}kjxixueiypwsddypljjsozvegpphx~lruyeitnxlyolguq[{okngof{|khz~moputoefx}nvnoirvrr~nusrkjhppuqs{zevsxcWiwmkoyfmWhuq}svthhXmwotiqhjfwuY~m}nocjsuiovlbujfqs|~~xoqntrxjpmjhf}mcsvyxqmdlqrtsfmm{pxxrm~uryik|itj~akqmooliwt{xjrgwbsip[{nk|hsxaprkpyfsnlssvvooqkdpjkrpjrohrurirjjyd{}mnbnrmom{ksntrmwsyi}unfezepvlkfw~~Zrwkt|nipghypugktxzo~tsxvenakt_gtmywtazy{ynnvrpsm|||y{~zz}Ufyuvk|zttw{noWdreip|qnwjqstgvlz{t~p^rlntjnzqipwip{wys_wefzmkkxvq|}kqtuva}^odnblx]hwqveoqexixrlh~l`pmotfkvpfcxsqvwtk{w{q|xcjoksxjj~myjfdgpzzjkplfxz~ytsusqlkktapxpwtklp|ireiysu\no}t}l{vtuamow}oezrtgbzvzouzfgtfkzaarc~q`mvmpirslhcqltltq{cnvixujsit|vbhlqhiv{|f|vzleonj}^{_{wklzinsrr_s}moizym~nutd{tmwbrboxwotmyz{eun}|}zprnqrtl}vuudqij_uru|xrxpoqhwwsuxvsvslirwk|{~p~tcjjz|aojrmkukxxvnvjrgzq|n{t^olnvut{gsl~nsrdtuvr{sqezhwj|riyVuqdn{xxiuiucinzuwiih}_mnbloitnqhrlq{`jfeqazvxkyrojnzylmkuknvrlt{eyxdnw]xslk}wzttzpvn|pwhXjzUoysdsqcxxuwo`odwbqzljzutzamtbl|kctguqc|ihyvknz|duyxrsrhfixlh|eqosiksqysnrgormlkpysqro|ufcarhqluvevgYvnbkysfvcldw\jnst{vanlhm|sribjniqg^w|sszhmnlhWqmbfos`iZwbfebpwe^{Ssmhnybqjucmq\ihginfgnlxbfhr{npzlijvgxpRcf`c`NdcaurcnTfhxk_fsd\hhj]z]_kawYhpsksskbjyh^l[ge{{xbsspgool{tWZpddVcfguubpefpvs|Zimwigx]w~`pqsfe|sbq`leZydoryykflmpftxdrqtihhkvjjfdxhrmysjdqumlm}a}i{x{^mluprinmhoklzblqeqrlv[yRdngpupZ~lSi|qd_hqximqz\{tuwry^]{ilvxiykr{casse]i[jvflmeiprt|pr`aeswlmsjovzjrpkchvouuehoxmonoYewqxqroph\aeoryyrrtcqsilmyowid{lk{jkrwl|stoln}qs|ypi~~ijvzqtujkysnsuqZmm~wiksldoji{uc^sqkknqo}jjnVhsskmyppnggfn~yqqifsydzz~pnprdsvjqywlgwpnzmxrrgvjn^amlktkmuy`q~pxoX`ztojj{rauejw|nkirzmYnrpwpxyiiohsys}jqvmjknvmukkmqwiy[jstsiqit~qhoysfnuxfmmonqqt~mdj{wutzoy}ityiuijjnpngmgotwtihpny`vtujifqswvsx]qm~iojjtzls|upoyypgpzoy]\{vgr_,cnaTvlqzexU]ne^ofVkxgrqcstcf}wPnw\XV[oeYmVxrcawrUPet[g~n~ygehpnxSdfnixpx_s~cgefctyd`^pup[yxps[VzuLnejxnebo_whzvddgDuKr`zi|m~i^WhKZqiwekykzZn]huhgqpn{lprb{gwmbl^juOrowx[~cvkaffkskvwnmksxb]tomrvcg}deemdztnq}jwbhktiypldpwxpezmisvemaqvk{zn{ysfpxs^m~~ris\ryYbsggime|z`gmkydkfv}`f{ljoc{p_gryebitqbsnt|gqvu\kylll{qpl}\stomfyursnzkloivymqmz|nmlvhhosxuummtkw}reehkhmsoqmqopsujop[ovmvrr|ux~ryxsh|u`um|^kmqqpbzpujpby~dq~bsj}xogrtxix}wztrqwwwybodc}uqZfrqcqmzryv\tzxao}vt~r_sspimlvudsnpr`igYpktwp}uocji~~vsnwkovfsvgpd|n|puoquuojpflithnsjWqbrupy}hsznjoh|xqq`tnw{cgxfxhyavprgoskxjfifn_i}zvg~hkpgxhktmqhiumz}d}ri{scclql|~wer}j[monns|]{|{hnkkssxis]wqvxgt}vpyrjox~dpytqpnyfxhuvvrqvjomqnuwpnvkriqmwwgwrvk{iipronqwanutisinysv{izzyeksuqwjy|k|fkem^o`uslwnstwsttnnqilmtemsplberqyqtqtuoxhkllonqltosvxlelpjftlpj|ooiynrh~khjxd^{||zppwjpxmcm~lvtudvnvsjmwjwlu~rv|}tj{gk~}jkluonsvuc{hsqqirqsnvkfvqqwy{qosipxwmqejkrtqowisofpqqvtl|iirxztk{gfnne||xq_aupl{tiryogoti|iqxhxgowt{{fj~okexvcr|jw~xqopvcpvu[ucpfl{{cfqn|pyuxm|sktx_hunsv_poa{nnjxnksvzpz}oofuj{llrmzykwr{}liqripsztzyzzrnrsdlvsygvcnwytwkmzgxpirtv~jljt[rxomwm|iszp|}ozjjmp|Wrljqpxllzmt~]hry|iprkyjmUkoa~o~voyn}Ft{pjfmgtuvqh`vrnnqhlfj{drp{gyt^wjv{njjpsrce{r|wviwwspfxqsjevsf{rustriwikmgtkt_z}hwj|ssjn}gvhhoxbkjmtldhnrdnsp[quoqyptwlfz|uiyzf}~kpbhd]vde{dpqtp|{mtkrgvn_kiqvvkrnbpoerdlntyepucdhcf{sih_mmqkuovwk|qgsgqr|u{zehrgwwzhsyd~^whtwmhjzfmp|jstzwmc|st`xamed{svq~piixZr{Tuvsirtgpplyukvwul`ce\fwtg~olesiyisu{udv|qqnnzx~fnuuj^kuwteprwasbomlj{r{lqsrrps|nriwhevpesoevulvys^xgWvr|z~o]mhmndeovq~stnvewicxj^rwqvffzjl]r}pb{xseqsn~jgiae||joqvyltaax|}erxstom|nkxumvnrqkszvmlY~fzpjs{kvuts`xhz]uqiqs|iujgvreyrelnsf{urpo|x]mnfppmsnorwn_lqrvqvfft||watfewmt{wnekytrwkfuopmjlwwvvvhv{efvdogvvyldljrs[ptpknrgujvtymeom{soqxtiuqyknl}ksrwwegq|kp~rjnhutungvbyqpr{l`{}fvsurg|tj`hjr{sqshhlqqwjsvvowoutmj|ookr~irwptdktjzplopnishsh|_oehnZslrovo`korvpnesoi~mtsuro}[p~yhrslhmwqeexulhzcptolknlqowes{ww~xssoxntv|ks]~dozwsumocki[trxpvhqztzulmwwat~au~iiifvxzmdx{k~qipukhsyq^mtmjkki~|gxp}pnamls{ruzullfmrpluqgbej|voeiplddksqji`nzmjyqjkj}kieizjzrmwdpZjsnpXbjjvyt~mrjmmcmh{on}xzvtmnqg]gmmhbo~m`ygkjp}ryO|tta{pvlyiponuotwwnu^coqrnnwajjln~g~qa}}qplyi_nyqwoilylrho`iryiymuisowj`e}sdijljpofpysn~b^mxpWwshdsvofzqwqiqdawoprn|ii~tee|kv`ggxonqqsrtnos{nrlltxlk}kltqlt{lwkljj~whlpyqlmllrzkshxzfwu|xhpmf{gnop^_qj}otxwqfZlf|wqnk{cslwmnwob~bhk^qtdv{k{ztwtzlc`okqapvqZ{thQ|wmtqijcsqoqjlor}rzwggipnmoysef|ulkqnnljjq`urzlohdycvwssy|fqbouk^rwvm}^qkxhqp}p~dinvrvzknslwtnrtzjvrifwgh{uwmgfuifpqlowuvkmqt}iwq|eputh]su}yitqq{rsteysodopiblvvjrw{nwylldqgu_r_|om|v]qoi^xiSwrdoq{lkcr`_hxu||ww]omgine^y{nkqevhzjxsqplpqnyyyjrlgk~adwwjkk~]ujxfpo}vth^nlx|kb~ramrsequhj|xqXrl|qmqzc{xdbh`mf^jkzYrfqmnzlua~ela{liscogfuhskp`uqVck~rkpsjm~hnqmkxpyn`opb}p|daspSrnhrkk}ktwrxjtsoaoyptkiymlmojzoppqp}pgythpm~zqlV}hjjkvvsifdp_}n|k`gsvirvos_wwhuz|rl{ntjsvrhltsqkylxjprxlium_{fxsmftxrmjdtpsto|zdt{muioopklz~rrk|vomz{rpf`o{reronnzzlttzthkxjpxnz~wrhaifhoojjy{uqk|vkli|ipp{syvm|itjsnoq[h|a|kfqulypsmms}qvrry_lkhrn|~kqnwxrfhvrt`m~rrr\ormtyrrhgmuovnstszepvodzxdiwoustiwzxnowrxtp}pduq~dubjjmxkmvqWmxahucvoiubjultor_obzyzlqbtcaurrn}uzmfj_cmjqs|rxtmnif}|fxjpjptmk~{wlnx}|uyzfywm{~lxrdsrq}i{sqfnsmvslnqpx~wnfhpgijtyzvzol}x{yutsxqsqqnqpwzo}td{vbnjdnuuuu|wtnsrmluvwlg{rpsknq}vk{volv|tjcsytxxqrpwtxhrvql~ujvrmqzsk}f~furhjvorcquvsq}uuqn~rzrV~yuk|nisppk|bjtuxrxytwwvy~zgognuzwwfivj{rzoctnwlemg}{rtupye{oizrpaz{tnooyzpzipmorqj]zvro|nwjiwrvhlx{h|phy}djctwvtunxsnq|{gvrpluqy}tnxqxl{uvlxuetvjc~Zy~sr}jj{vpr{zyhunjm~m|{|hszguoj}oisnukx_~}xpukpc{|rgymg~nxydnhnf{r|g}xtlrk~mstmeq|]nkhstviqvv\gyt}u{vxfrbtkthryfxllyfziqvwnktcrowntdii^vsgcacezcob}qv]llitvffsotzlfypmvdmlhk{lscph_]mrohiVt||flrqmt_]vomintuRvrkzw`hpdl\i{ywhqnttlqrekvvj~vve{pnww`fzric{{lcelye}py_gwvvnn{jllku|kftqr}rfp{ijtybum]}wVvkvuxlf|pvzkmvqyxv|r{~}{pcn~jczjwwotm|vtqknYytl}rtqxbsutpkxlxtqqjzxxfjilp~uvuz~ktw|]igswfkvdvthuquqkfw~{trzyzhm_ybojuQyndup||h\jgr`}kqkdurrqjp~{n{jzshpuiZjvrl[nrz{nik}unnoxgnuqyp|rxwzrpoku~mxkow~dttm}fyuyqseuhrjqfsww{pjzfqkr{xlvtow~vsm|rwtvl|dmh|sqz{ywvusupwsyiaql{rrqwzqc|hxj{m`osw{ozmwyntcpltouclbzrotlwniljapxuzgb]ifw}nrsjyesntnsuk{y|urbvtlzlk\gRaolgord`uhem[{vtc~~mjmvt{losovivsls~g|son]kmnMumoopmxsp\]yvl}emzupidzfowhr{qpkjkolh^uqfyugerodusjzbypxjkjakhduflmrtd{jpzywlsy|egimozjwmtsne}pwowgf{yxn`acvutzjh||{n~ok|`yo|gs~p|kfmysm}frprjzyy_acwfxuzmkqs\zlfnmtjetv|ox|{pgxxnsow}vk{r`qqkssdr|jpamxttiwgfknc}kvioineowzmlwytk`vsz]tui{plvepvoskum{xsqt||ltzpawyjXrv^]ji~eukxvq{q{on}loopqknpqsjx|{zqul{mxugp_rmuzxeimp^slqdlidscyxnmk|gr`vx_xjhqyqrpz|ezprcjjwh|iumhkm}kflYd}p}kwlqwoltqplgfvcvour{wt[htsxe~pmucip}~tkkleeyprp|{x{ostoquw||m~ao|hgqygpfip^wrfozsh}lp}wugvskkaulvothuxmps~msvxummhits{}uluefs{pwnx|ypuo~upi~gkmxsqhwimqilnqds}_m{rzya~esuqsn|ismtq|ooodrlbojoprmq}lsvponysscwrvoocetoxuosnwkveoa~ofuul|nhqubeqvjqudjqngjbmnv|insq}ntjgozjrew}mntgjeu}foqpvkpw{tq`~kllh{nvmxsconmrtsdyxuu|bcyawft}zijglo^oifstpthkonqmmszriscgbkl{{yiviwrlaehvl|ov\_l^oplcihqymcovtmi}djsoh|r{oo~`u|nkuugi[j{fnQffo|_nwpkl{msk`eqz[yudhqs`||jxfiqygulmgnncf{gxXhepkuoskqtk|zhtusvqpzbyyXblmwnhyso`fzozjusskppsukz^czrwgcumbmcdx}|m}xo^ujdjswxhymqhvsb\}tuqzxwztlqrskyxqidwjtqcr{k`tm}miv`ermkon|ws{v[o{rn~mpwbogqgp{scsgqrcuar|iqmYpp`dweqrot}omxv{zfv|bktlnrivgpesp|}edyja{kbni`{{uoiyrz~uvy^plz_xtk{oms{j~yoninvzbP{nbtppfqhsugj~m`tplkcpcj{xn{\wnth[njtonowmVmb}bjt}koszqtuxuTm~quy{}|wys`oggrnunyvzoryuxyouvk{]nlwtnswjtuzmlunv^`krn~kelWibl~u~tjfngwrqr|Sj|qotzZomhfrjoxtwvsu~ycrhuurzxgfnfirj{wnqsirppknscmvyskniqfvgrqrqr|ewjinxfnknhgrqrrw}ixy|_}koqpj{nmyzpimz{xpswukbyepixpkpc_vrwsujeqxhfpuqgyu~iwznlqrirqwxmynxzriflztlqveiruxopgtv|}ytnxnlnpi}tfcytothvntprtloyk{iw|zvmhnk`tezpnxl~ptpwltlvxnsnjklktt|kdyckkporvxutxo~pmrinktttrivoxqi{{mv|leryqokn|mvbdyqnptbxnyuor}jmuwvycsioionl{uofrmwkzxtn|iqmqilbs|osi~q}jpsnqxx}fhlpwrt}}upulnn{gohytlkpzcupoilmhkkqeimglexqmghnqjkgZbkrgyh|hwim~hzos{r`njupqzyirescvv|smvko|jtxdrmptwynqxrryfm}ef]hn}roiu|tul~dmvru}^snjqqhyuhhqng~opnexrtcsnlqtwt[go{gqzg{voyxev{vyxijnurpzno[z|}zpwvy}j|twkw|yvhzmsxwxxcr{umof}u{gq{xto_xwqrktkpjodhsmtv_fyy}lpdw{jzijn}pwpndqowtefr~ruxrjkl}uhz`|~|krqfnZyhtt|quxnxvvlxlprsvlra|k{pr{fhrwnukiwsplsgtlpkmx}luqyycim_plqtZbth}`zwz}t|oyfxZoo{rrxtnt{``puhb~oletpl]vwubi^Yrfuv{qzfqvmswexoynkjwg]qfrqx{lrpkmvnfrji~pqZolhttpngysfdzvhzpmtsuxmmmxv{iaubhtmhmp`uixnvsaljtiv~ywwxhYisXvtphsmxtqph\ccfp}^vzshhsndxnvnfqt`jtoriomtfyqoikwfil}kxhoitfohj{xegouzudwslquhssqlmklhpxqkijpprecv|]Yqpzhtg~ouzcfgt}rqgoaoyp{{ksujasomqmszwr{sgerut|jrso}vixvqmn|h{lwwuf~srkvihlliieiwvtgzh}nkhslbpwhpkmluSdpsligluszwxsrnwcty\nvufvhglybsiqqvyx{qij~wntlzfzewpsnxxrqkzipwq_ixyupxnipmy{zwkrkxqyeldrk|ovpoo|xvuosttldk}lxwj~qwilok}teophcikvuwztturdumvytsldwpn}j{bo}xywtxromu_m}pdsxkhms~v~kdiOimz{dpnwij{zvvwm{ntxnvuqkjtuwmruy\swrsrdnn{pjrqxjsprq~}_xmi|xmm}ovattzctk~qlxgwxnjjguqtgpymvnhiw`fqmvrR|tdnspdYkixmivpgbuzWibofualuehiqdncqtimy|znowrpvlh~r}tqznqj~rou~yjxmjksx|satu{rvnueofntkflllm}p_owdovzoxqe}kqwsyvvqmwu|~xrsvi}v~ls}kicenxwurigj|fqiogujv{cxzufrxbgoybkuly}ozdnq}taq`kvwccvm{sflogvzcql{tdvjsyglnwoefiptlpjlg{vc`cqtvi]jt]~cgupgwxlrvlokPi_nkyorgwa`tdst~pazfev{{vp{isryq{nmmqalmkuooyiddtizpstx|f`khqtyqg|_gltunvyprUpfh^mgv\{akzniyeikpm|hk{nlnp[rz\epnl{pcuz`ijpgqfifpnxy}golqi|jxistwrile{gyhuuyrnulqv~fow_sz{pf}vcpp}pvpltom]~msvrzjwm~rrtqo{fwqozqtoozjwzezygwr~op{xkhkxj|oajusrmw`ttjvwgyue|sejtqw~}jslxjtlwqgjxxxpbv{tqrnxqvkqjukmopliuypruk_zrnkmztr~dhytsylqgx{qsjxhteybvomkndwjjaunsqnaTp`{uoprhczfjlsudrjlhppgu{pynxlqikrm`muixvymogaow|hyro}pxltht}q{|wptzjvrihjvsokcrz~xutsevjksy}qkyweiocnrmrhtukteVuj`txovt{tswvipfk]qiaaxnttvqsvyilmtxsphusumubkmojZjinlq`x|lhkammuh{]tyeeb{jqshhqw||pm|s|vzwmt\ai~y|uzntenkotmpplsqglqqejovwkoss|svopkopr|jm~rx`x}lqypnpworhmtpw}nnfmpat_]zvhbjo[uwnysoSnm_rzahmenrkqtpwxj`urzyrmp~rvtoqmvpmzk}ZjrsqietfoeZ`sstve|li{k|o_utpwpicun}lfw|frsjlzgnv{du{evmzrge`gnyrrqxgtz^elsvk^pjzZgiuXniglwrPunws{yWstpe~br{\i{nvd}wluku`zslki~rquxndwZwke{ngtuotoo{~jogt{pdjev{mnu_n|ost_ii}sw|i~mvpswjko}u~ittookect|gjm}pntqjzz{uyamhzvwytfyk}qttdoawozYvrqwjmnpbonyqxhjbau|z|xp_iqzshdskewrykqi{]smV^kmnqouQriiqd|{{shbz|nm`yqpgtk{e|mjdii~kXkXqqwwnsytnd~~pfvhv^nfgvonjdeuykzvzprojZctjeuypwizd`]k{rt{yslcu^sE{mwg^iplaLpiugjYwkugjoewckxkpvuz|y_t\qgkqqengw}izxjvmgryxml|okvskuo}dopqotkwqhwumnqqqmklqpjhuukjpruqpzr}nekknn}tnqqrvmt|jpzei}xouwdzjtrqxay]`mzhosomqlwxgbt~tdonlww|{r{v{xqi|ty^ivk{|pzrktuavyj|iomipmlsvldtpeprsvoinfhoplcjxv}trozrthimkswltqnushqqmloozasfyojvoplvp^o{n_^pogrqy]h|mr`~fo~skvnnjohd{qgxujjxgfkmusq{qppcefugnmgtlruoyxzxfmh{{p~lmxvt{mlxpt|wmtnnwcrxzliy|v}~usurpipnsg{{tdzldguwnsnobukuv{nojc`umosgxmxvqmrm\oovgp|ky}srxvpthasjuw|er{f|en\zzxgtjq~ywdsy]oxspu{zkvpqmawuj~lqob\mopj{yyczhecnfpxulgRlxrd[wsuuxzgqmvqbt|wkt^wokou|lglbxwpdqo{{vtiexpqiwloTfjxfkxhujpimuXlqqmeq[}nskWmZaZhuxphcitguv\tnw~skf`vxbptaookfur{Uvizfjtuwcwypdqgx{kluijdvthwdvkychi|rm~{yioi{spyh|lz~iyoort~xqdmejqyjiktuwoeSkxjskzzicrpsktsxfkTmco^|rgdaqiifmh]n_uumvmg\dZvm{foif[\fvynblbpzyW|nkmnrchpz`ph[~^tjedkwi}wnsvsymwqmp^dxeYt`^[rejfka{wg\wOfqY}hri}nnpzlxk}dhxtsq_rvlnkc`{jkf\mZmghcjkojiojplk~bhkllp{sndpkswjapifnntxls{fq{wvuf\oTutifZkjqiyk]h}_h|jptoarrte{hp^sj}^qkqxmk|yzzqyiifzyljt}ybpuwwukpsqfp[{odvqnyfzpvtiuklpksuou||niln|nkvteoqtpemmvykvhcdpxpi{}zso{_tykv~wejwj{kuZg}ndmk|ucnxz~o}xhhijargmxr}tibjnynmxfpzampxnygqdsi{jx~ilsoeqvxkro|repec|uvuroprwip^h{prkmqzj[nykxlacznmfvp~umvxji|ljshldjklYibr}y{ukyltmrngyfl}qjj_rlnb{jw{gguwa~tqlrppvwvtlpmnmqnrn|d{mzmmttveibbvjrswbymimsrnrrgy^Zmlt_ovovy^wrqr[q~jz`|bmqrnr`|upprkqsdnknkkuaqtfpc|{xhvimuoZousqr~eun}punll`_npuXierj|r}tfdrMigpjflbq]onvculXiuslx}urneiptntppvybtXdijpd}djti{u`ivthydgibhopVofyjsfTwkitnlptss}glocdlcq~glZfyhoiszrmsnompf_`Jnhjgdz|lrmsvrtmzxaahvwouVqkphonposa}xxk~ymlstvutqwlzukqleukglshz}zjwtjtmxcbnvspzqqas|mofxelwi{ivMdvojle|esj]uYipvgoa|xowvays|n|cpbmq_l]k\}pp}w|`wpaqmkflorm}b~hxtphriwtco|t`m{~pd~voq|mf~eyx{yu|u_rsnow}zskg`b{hpsyikolidt`bourrzoqukyg~~bjh]xg}~Xt}wnfztetuoxm|}|wm{sx_|oqsuux|qq}mje{vorhhprkmqyr}sr{tpfpvmxwjxufvpimplo^dyqqdviriuhwkpz\gmlvjum~gnnk|nzrqsgfo_jrnsk|mhjyuhswqqtvz}jv~rumw^isotprzpzmq{Ytoyl|tlp}ilbm{klst|qgn{uzvzxqjtirxzounaotgnjlooecv{oWfonp^yptvxfc}wovybf}ijs{}iwpoxndux|}xkp~rojvvq_urioqvSgfwrzg~k{irpktwr|b|pxiog}rnloo~ojarcqjxzrstmyupywxoroth}khocijpovcpxlzjrwkr}wf{roiitxipo{bkqwlzo{rwdvqtsmr}yu{wjpcjgopsuri~lcsuumio|lleqtlx}fmkuwhsrokatcdpe~wrdyu{^nlxj{rlve{zuw{nmsvkrnmgztrlvk~r}k`lvfbdyr{~bgkseio|xq{wyx}ljlephrrtnml^oilvl|mqfajpigfcu`jkanqywftg~oyjdjurcxnmjjykp^|rysxpgqhf^jw_nhvsi|fncpcqr]dpgbsrmk~olpheplqzommfbeewitvqeon}mtrsrytmqmhihq{a}crvjmopqsmtqjcowjrnbhiqxevq}|l{}jijn~jhqm`hvhuerplvwv`zmdYb{oixzyjn{ncelxtu|~firnktopufuxwxsyewgp}kkwmzzmqp{xljhjy{|urqrm}ptqxuozrixorpltuphrrrptrh|udShr}o{za|dnltwfquhtsjnjo~cexijTv{suqipednz|}poxsqqsjtpuzj}ppoxulpvw|m|ohyz\q~tuhyweyp{nydjtou|xgt|ujpips~on|tyntddznqnepqcxd~`kur~zqrnwlvlpnshooswtjsutxneojyc|ga~tzhnxoo[tojvnogm[ysor|mojzsszlvvzor`qnvrhxmlmp`qq`pmkpeq}lzjlgyhpfv{lllkyu`iqjduiwjnsnuhmukvofupzmhtzuhirtmyjie|yqzsuovts_silzfrqlv~qtscfsnnph[i\vmk{jz~qqtnnjweqk_^n~~gv|}~ftroonwyumm}hq`heprygprlcvrtpmjrunz|rp{x`bmnk\ojin}rge{wo`~\sbjvgnpuitqkppkrrnYavfd}nsni[mptqko{plmwsfvjqkkzmz~rvwa}l}}`uthxxlhlbbypsf|\mgg~qwsk|ltrbavjiwcotk|t}dopkwhxwnl|cvrxqvw{ntyodfxctzoak{pq~ercns{unstxlly~yodjuppeyz~sktypzpphbjm|glvwnciiahf|me|_yyk}oyZsj`wupluwgsxss{uptvk}z{wcfohkjppxwctsnxsuwjs{{rckwwkzxweda~i}Zehu{jflay|Yihn[Usl~jrs\ryklp`fyvlslthlvstsyvqdtsj||wjsx_j~hietv`tbqZno{o^vwxwqnqzd{ivjponvmstwnwxusugvarfyzroqpdywnk|v`zeh{elutkqry}rsohbmdqi{uestexWm|{}rw{}}qixu}uszwuiz~jqougjffo}ppw|fnqy`byZo{uevgpnjqjsiqsynagwupr|ujm{|r|vxrgkes|eZnfgslotzbqms]esty|o{kqnj~urnitsd{wxxjopukpzlwzqqyufrjr`wwxjkllqx{qvvglldjttmynZtxxggvmwpn~{{wrchrsslwpqm}srfmwpufjqk}kn_}kcntqkfpn|xwultqzf|z{cwt~~gr~wpw{to\\|~g|ovgqsygntftqy~mwcxkj`r|ronhqhq}zqqtiyp_cy{fogs}usqbjgrztkmxZq|brg~aibpzrs{|toknqltopvotcpsYu~uesvsaionvyp{^e_~qkcFgkc|itzeaqtuemtokfs]ro}p|zsnnuxpor{tplvrlx`jpeqlzy~ehnxks~|qprkxqs`wywgdb{pywz~nmYvhfmtkgwwxonfivzx{zemnjypel^xle|tv[ndiwgsoiqqbatu~xw}r[o~Xs|oUwwobZsnxipeiqo{tporl]csr}lxwoilduvixyuhlnxchutkspyuy[zu{wpynyukwrj{^u~}vqtiei|sldwfjrk~}~^kdudqse~fl|eotllfxx]ekxismnvtw~f|hi|qc|mrhgcpcvne|xmvziwsorsmvspgookzzfb^kj{|vgjqcxsnqyqntl}xsjoxspp~unlb{xe^d{joTnyufgmv}rqzpmhtnheifyqix|toldu_{mjyt}ttsjim{foetsgy]hyefnvshwvurgikj|}ficlwjnjrklm\tvivk}szwpkf|tloaqic`idoi[`|snvoksdzootijtiq}`llqbgfkpoem\qo~[grwyurr_mu~|zaptkh~umds`zgqm~trzqg{n`csw`lecsgtrnrtlablzhstipy`rrpjtsqlipqrbqmxVlzjbsqwqirpdzmvrluxpsntm^c|gamemce\pgvjlvyigpktn}x{yzezytoiursnlxwgzhzf`evux}rdxlt|povwripeileeuutsz{{rggyudsykxsqut|hud~nmraqzuin{qoo\ltxlrjcpxmgrvrzk}lrhzijbkolwqtdnxpioowt~s~xexbirqiogZxvx|xuntx|im^zxmjllpwwkpdmtrr}}wg{~nxsyuw\jzzywk{w~thit|gzrjtkqlwuvnlYk{ssoijqip}xsftqxop}g\m`xvrnsnqvt^kvnon|eiwwbddn}grkrlrxjonuvdmPutgozw{opgqcswqrrlpno~xyyma~wrmpj|vufknqrqwuhodi}wlqnl}ttZroioot~ax~kipuf|wpskpvmxhxvsxynvmlww}uqhua{viesmtsosok~_Yhsshlglogptcmtkrdmmls^qhoqmdrslis|pvssgxmudplhxowtlrb~{i{k|qixjxupfoxknts|xlitjmqptuufqfeefuwlomnsk{gg{ts{Vosz|rwljhislirl~ivgvvcrmvhmv~pkowmvmlnwlxmx|vr|uviwnruxofosrmifmenvxmovottbau}{orqdrfptjrqvur[vhvycnmorht}dpeayqtqeo]lqwvoxmn{ndplukzskydx_qwskezhp{rnihznnmtmfmonjlkmpp~kskplilagvzk}k|j}zfkchtn{}]o~lxnr{nw{t|deulzxrnx{bi|mikpsgxuztmku|ssvewixpvmspfykl`mkbrqx|{juzpn~gktzwhyinuhiuqe`ooul|yrrxmukfxwgrokss]qrj~mfpirhkpvlhpiWzojhwwujwi_`j{lvwsqv~v|parm}tteivly^gffyl{zy}`mu~vjpzkyqonvz~yhq\rxcxkyrnom\\grzt}kznneo~rfstcwyyorcvrprymrssirnockkrotxquyksz{ecyxiprpjbwundrtz}pgtluqegreyuos{e}mzrw{rhguiieywhzsmuhuour^]tvytlwxirnqss~|zwrtfdzmxtrkywx}xzizjknmrlmfooslocnuiasgtznq{uz{vhcmewz_uor{sv\rfskvytdkkjwqg|vzrxqzomykulurrolpwaps_s{uqynr{owmutjrrm`i]v|}}bkrmw`nnqo~qjhsil}ehuxdl_bhqnonZfbo~rnsjbpfhisroqnsmvqohthleqggehrgn~~qyhrsvyesowmtipptzvrundhsx|ulif~srwuhpthp}nkqxoorrttta_r}mo{leowwtunnsteogciw~qepmj]gulkkivxyuxvgtg|_d~kqllljapdgnjl_jofiqcuptpimmxjlrpqogju{vnso}pvuiaazubyiVus`{yWhd|{mc]knUu}g}ndbs}byqjcuifosh~vmfhjrp}|wfct|ru|sfsvt[~wswshni{uikuxet{quxdggjpotk{ywpxsxkuskx~sw~peusoj{ucvsnzvqmqutsloh~zqikms^xb|eq~|wruqysxxz~fmjqt_qvqyiyh}ttp~zqowplupwjgyuqcc|szdfah|syut|oowponkknuuywil{k[emtyqx{^felxkqjyhcjrshr|vkubfrp\tairvkrftokttrs~tnrnzoZtkwcrkl\r]\~lg|rxvhm^iiolzhkbqtsxfzq`_iwhcfrngjnih{to{v`xtheyjkvtvfqkrlcgwotrt{jm|ke}o{bcu{xtgvyqrmzwplvogdiqhggmvh|pqSaom{vxcftltitdpscnlng~vZzzlukrroitiswwu[wtleezny|knfrneuclnimkuipnTeo}opswtro_ySircoyy|jk`m~vjhenxlkmcpxrjoXgurvwqbl}qxqagimjfxi^bu}ebj{mzwSonqi{gdiwtrcsxYlspny}t_lyypufq~lpssttoizlosvmflnvthpqd]fizl|wcgksvumlsspzeq~mjssttfjwnsdkqpzliwpxntj`reoorikt}jnnk{olztoy\spctcfoqohwv{rp{fbohtsort}pqzjYbmqvfwrynnkplrvnqkonifn{kjlpe}xupme^xfy}]rkqXvkn`h|^lvzpng[mloqrjru{jwkxpnhj}}cyz|qfn|kubncsalzrbspS}p\jxtx}fvrylo~gikq{ot\{n^j\rlemokv{hh{b}g~nxkneyanugrrsxho|hxeut~~nn{yq}nlwdcl~we}hy~fvxrom}`n_aoxav^lstrbv{vxb_h}dvr{iqwjhtzzwyrpsysixehftzjwt{xofxwcqsmjvfpmdx}six{itsfgplpztanpqjrzxeljhiup|f^wv{gquyjjxjpoc~`zsmxonqnvsdxqpjlykprsjmr|rsstgex~~kukwoy}eewbsscz}~}sgqt{dj{cxowlsUbwssp~wwroetjz{\og_towkpft]xqvjtovrlhnqvtyxp^hp}w\\sslryrrvslnrduiw_xcinfrsyn}q}o|bkhcqlonkw~mttqjdx{`}qnqzo{a^zvgr`vnbdwpn{pgv^`pnyhfquoxq}pfYsxqmp}mp}j~ngcnrfvlxaj}cjpx}zwXWpulsdiptjxkarkdapninqeluxggbmhvnxcsmgcdgbevgxr|ktoipmkvh|w|unmR}kxmptlqsuqjpryivmmrssuw{mkqfrtrfpufYcusyrc\~cnvzzyls^txayvqalykpld_sgr|mjsooupl{xj~w]t[dekqj|_~{inzxnpluorfrngt{wkvdbfjm}ul|kdedvssacrsrmiqlc~zqqjp}}trdpqpxd|}xwq{}snswwoueqpxh}pl{xu~mzg~pxlmztwiyizzd`vgdzxwrdmxpc~tut}d|objyvtuvxlorxft{isotgXmweju]kziu|^f{ojms^jj|rjn~yweuutnet}xvgry|qopwtsre}{izynkjqvtzobxr}vtjdep}cowg{xfvsroyljkrkwqoqrg~lihslijuizxj~mt}rl~m~sonflex{mfu}rfsut}zstwkpwwjfixpqu|bpqxjosnxv[ofqopqcuvpnmgloqmbprllunpre~lifhxkkoxrhwgqdn|xskoioqwthanvv@}lkxwstpqgr}prihnurpcrl|x{swfyuqginyivmmmwmwrxv|vqmojshr{Ytppkjpy}}mg^owlt}x}qmotsz|{t{inaqu~wlcakviq{t{nhj|p|aulxtv{jglkqV|vrzzxisqy~dnl|hsunmvhpizb}is~upcjhhi~whzssrzrrxrnkperlnuozjmjm}wxxvopvuqritqleju|sk}xxwrsjqufwoohzlvxozjemt`zqkipkppjyy|{hubsmntm`v|plkr}sgimyufhpqnpkmsfoqvryt{ejqpgrrnlxxtz}tn}jm~iw}d|itpk_ktrbssofhltthp|tec~s}u|}|mkp_}omgjpvxvjvpq_gkowro\mq{yshpri}wtrxoipkqu~rxtksi`sqrlkfn|np}ymql{kzst{nplronrrptcqmtg|`qlmhyzdsl|yz~ufdov|epoxw}z|romdfmtrykpo~tvhqsjhejnt|`ujpmdpwttpmilmridnun]rhpyilxsotqpmkgsxtfoyyeshyljxdf|yn{qkgwuwyzwuluqmivpmikmltss{fyumpve~xow{thgosfycd{u{pmtvuwqnqq\xhpidcsdlqdarY^pzmqm{ljjulbrvqko]{nn|{itrcovxujkubxmsfjpdnspsxkoi|hcton|vocsruuntqr{qecjv|xfduwlmmxpppYxwl{rijqilypboclot}gu}ws}`wpvk`okr~rxhphkWu~uy{g`kjjpunqv|yyth{bjkkqxnmbufmdi}lypo|vtpurprqk|hhwehxhl`e_rwgnf\ltqxxrgonuvrdmukgxjtmdnq_oyxrjZlm_pqbq{vmlpovmchq^mr^zqkwnv`ggblrZ|\vxvylfhlhgnzpwxtwnt[jhugphjrxvpr`qvs}k|sprddmv]tkhiyzhTnqzbihgurlm}nrrpdkgw}tmkz`~bjsii[yimw^[inkzievkylyn[hpnepgnttbq~cnqk|vinrmowpg_uvtks{_nuv{y|ngwp~gsgoksfwtxjuhrkuqvvczthytxiqxV_ufoshthxqhdfl}q|or~}tbmisolZmosrym{{topzuy}glzhkyilpmqklctzbshrsr{wlokrqotwupfmvvzjzlghwok}hhqsj}^hnvk|zziz|ltsdglyo}kbimmhgqnbns[{f[ttonbzsswwnptpU_boou]|qP}eudabxzqjp{ngu[qipouotonnwie}skstzfkry}rtktj{w{xiohtmdywphlmxnyeUio~ixwnvtrongnq~kxjdmtlzampjoyeijyxht|s|fwps}uz`uk}ssvnshrtxwquitsqfed_isyyvjqgzomvrls~lnm}ek^owh}hrkZzu}}o{yl|xlrn{t|vkkmhxenookzvuu}v|ovsqmgjyuj^fyncvfqrio^juw|cfuu}lyoUiqgnqslunynpqmqwxszwksvjrl^jsvagg}}ckvgmvyrslszxmxdnvgpj]eXodohs`qjogcyfpenqpuyqej~vjih_oufserxjxrmuw|dmuqzfmkbkt^gqWi^swmxhizq]ddqjqojnmmwh]gwsyfq|o~is|q}kwmon~_fbvj_ohut}yhz{ltgvg\qkmpronajyrxkqznmkpyog\zn~b}oWwxxyiqprkcuxswxqvpYe|vzmsyldjrxs\qx[uuqkt{myrofiukfnzkjkyftm\luj~wytffipzl`gqoqn^}zm~waikuv{o~rozkrojirwusjdmqos\pYgonti~wsmdpmx~}}jnrepcqkimyi|mwjwsuexej_toqwjn_xpfey~qwntpczuvwzxef^iqjvgsqroistrbu{|dcuvnqq}lkcflj\gjumrotilkunlii}qthpbot|o|lruiphz\onjqbbplnhumRsvtk{ooplmj~o~footnt{nskuvonoikfnvlfmh|hmlukfhhvqig`odlcu{nymgrplvqo\rvo{ytVrsu~|pkvwoxncl~osjlyjuvp~rsrkmbct}bt{drnek}wqracvr|aoqnhptcjm=ugpr~qlbvYxz_kfekhr|hwo|ovh}k~smjje{swgdvxo|k`uudtthyqrxyyz\|fyyhun|hrpmqgjtfugxhvlnjacuyvyslj|hghjujmuwpirupgwwZdhuzp`~zrsz\tjxstmpSqmtvzauxzupwqrzrkjcuw~htpypprmqxa}]wk{mdljwnSewr}`h|u|koxnkpugenjo_vgxvlwuijsknjwsraqionl|bousjmk|mxqvhpzlijtrtplkjlmkjtrjwhmXuqo}i_rrufustq}}nlsi|nxzhy]{s|nr}mxrarsosvplbrhzt~wmk]dwuskpm}wzkphimtbzYmhmhxvhbsofjtqqnkhhi{fmhjspufwcpgsdp_yqip{s}uteqgqigrvsdmhdh{}v}chunih`dkofykzjygxznYulztqdh~kcxdsu{itvv~{umlnk]z`ahg|iolcfnzxm~|mpiow{i]fthbzrkopu}sxyjte``gmmTsjiWYixkxblkswbjorp{m~unqZyqsmsruuuvs``}^oyrj{mas|akhjc}Qtnkkngqjuojtgscwnyx~nlvy|jfmnvXst}}iqpj`wqozlxbwv`~ns}lucksjjnihpvncem|moh{oqq^jhrpelxVnjssremmt~~to}uvehsutnqeug{gtmivocoppbpvtrswwjuyqzmj~pjrxfitcbpzgqigmjiy|zrswrlhr|pfxtjs`isjoklfmnpzoUhuhivgcucvplgv|qzfuumswr^o`i||ghm_gktqm`}ydfh_tifj`brpp{ylsimrdddln}r~zg|lmtwclouwunkYpjoukwnqtRxgja]dylrvuuilqwx|uwktfmr}metuvx|mqzlztalaVyzprnphzv{uzmhtuwvhppmkwprmh~kmqsuhhisvmkdpcnr|i}_orzog{lwpxlrqqpvsppq^twwwl{opowqpow_suzr{y{rrgmylpQsz{xvqq~uoto|uavwndttfuwmskn{pylupzuno}jhx~p{luuqmlhvl\iuvzwfpjqvnhny^u}gluw`plZkjonorynnqy~jkpowpnyox~jsrnbr]rzvuyyjv{qltnfrxjh|inyyq{mjxsboxebtlwpp~zcuqimsjuhjkklmjqhntzg~zqr|sin}snvh~vqm{ooyqf]nsqhlnjzlr}gkquf}julkdgjpnsvojwhzs|kqj{`uuvxybnhyhqernn|qrupwmbmyQt}uloVxomteucftunt{vfXeknitrcYsfltummixhaeppvqqxuqk|mjpyn}ojqhtttz^ygpy~gneitnrtvnvsbsrwyoon|nvkrolp^i{ulfpbwg~mtfmrawlkdrmammous{rrulgullkctkmh}zry{tunploa|nrjotpg|~pxWlkhpuguikpgktpxytonyhg|uwutoiqj{ziupitodotwwudppwtrrpw[qfpnjpwwo|hcv|gzwzkbvh{dkzkaiqrtpn^iep{q{nikg|gjp~hZsnqizlos|ypnluuishrjk{}nimsnndfpoordxofuknrpnpbphuunro`vxm|xalkp]kynwyvvuljuay~qvwuivfpfmjsummqpnz{{syk~rxumqygsitk{~Ucxvqt~m}pciolom|stvyywbco{zyfypnuhttfpzflnorgtgwkcmywwalpn|uzkivpfhhdnnioxksvpuumnnkxtuumfjvbf}hesmubqrobsftsbnrymlnvphpyjl{upehwkpltyk{o}ous}hxpwj|uXivqgylskvyrhnzwswmdfksnvhh|lnp`{r_dnr{w|riuzn|pryysk}rehtk`lprwpvvsokulzs_Zx|osputvhgljhi{crsnppv}ogsuto`clZpqpklrotch|bwf{m]nnbwxv{iuetrlvmktd}o}{~iezefm|_{mztzxoiu\nhsb{ermgnh~vputjjqurbrwhspoblkuma}dqpviqq}ptfovxxkokn{uurxqthjusvytqezuewiqtyzic\mittw}y`qqoljmrr~}|xqn^q}r|joznonmrvqpwu]otpnmeto`lk~giwklrxwfhowp|kvwol{}msujp|putilom|gqlshmo}nfhuovvss`qf_dp~iq]uu{klyiWj~vzn\_{[vrrktioryurr}qmyoqvhyVytwqrqehjpi{hkz`~k_u{~[v|gnVgi[jh|noupt^pvp{cevtoqpmmwsodyelszuqna|vinosgtcwu~yah{lmXhrooamaksdnphjp]unnzvmmrravyfwtsf_yby|q\yntxlwklqmxozsogr~zghwr|gzcft}c`yago~wnokcokqj_xgubskqqj`qynp~q]nx]pipvn[_gmcw`to}~xXnyjn~sqbt~d_kiusxqusfomo{ylijm{gcfqs`zgkushvlittznmxblhq{\]ujjkisxrpl^lqofsS]ytk_vuhqkma}mto^vf^~wasxgru{ozfqou^{v]uniovtj^anyumnpdooxuplqvvxnvx~wtryithtqywk{yjtlnhqyrsqutyxyupylUrmxwpioqrdioooys~qztptsmuyavrsqvcyrenn}rv`oVjrcgfy~ulzhvhpqhlnkjkwnttoqnlp{Bbm|qtwvsmxjlvmgrrdksmpmitsufrimnr~|pnoqsmn}v[cvcqewqt|symtnpxvewnqurvur{vghkl{khnxxgcugnp{lgnxymuynjwwkhftjy\fjosuknhedx}orup|qrmqst{lwj{h_rouzywox{nmTq]kikypp~pwfaokqkp|ghi{pqixot{tnuq|mcwlpxg{pdwjzvqmm_og~oxkqqmrzjnzqizrrrmomik}spx{ovwlvibukozysek|ohtxrynpxligongu~kkndppdx``lvvss_gposxbzhrtg[axiwy~zp]hz}voz{g^mzhrY|gt{}lzmxlwtkctngrnj~^XwjtumdVz}je[{qvi~qxfqomeblq`s|xdvknekpmomyh[|~nrrpmdwtw{gfmgayjwrdgdhjx|qsqwxs]esc{wslwfpotoqsouxpdpsr}xjh_mxkulrogsbvoXyjZeiyygzuohlsrivjqrqpy}i~sopkvwgo|ykztrehxp~ktnyhfniugnxjWennoosvohv{qptlugkokvvtnkxbxgu_rkos|ewhzqmalu|mzevsu|srLmxiw}{eluohwqqghzfki}qmrgdateklqf_idrm}lteabpdnjqzwkrtejkh|xjxtypx{qici{|{xq^xekv~p|gtzhwwhua{vx{rpwr\j`kvfmoi\rnci{ksjmtrtxp[gx}}p]rwxpvbnmrtio~]|o{oswrthlqiyk}vnqmgtwm{yjrpryktmnwlqj||lxqorj~s|oz{dzZqeqmqp}n}\ojkppv}kqmgcXtitw{hvbotl{|p~qx}vzpf{nzr\pso^t{qful[VykulvketbeeRkk_mqtmxfdsv{qvtmvkubptoisxn]j{xs|icz}sxbz~mixdv~wvtxmugbfqqzehq}uc~zfmuoujv{nhzlterpknepqexxonjv^vrtrzwzid}ihibrrhjtwkgalymypfwu}s{usofh}tj|ixjm|rywxinonlojtlbnqprmlxxpZjxfvyfskvjorytvwcshn}qpjqsclhtqk~suuh\\wljsrcstoapnpoz|empoqy{ya~xmsoroyqi|rqgojzlmwtziupujhsfv{rsczns^jyhh|ftmmbvlywsuhsnzmyzjns`{yrW|pq|{ocxTfpntehfxtzi{pvYxl{z{rgvmygryypwcpqeupnqmlwsflinfnp{}ownzjskesqz{idsiordmwholtuwrfv|lwjuogvpjzgsrfneho}tmsmsn}uxksiikpxrriszrmrricrp{{xqqpjx|}p~jb{oyoym{gxpnmtyw}hxupmfoptkg~nwuqhb|ueyxnogcgl{sbmnr`mbkmixvufplmswjo|vtzu~dsw|iihtr~sofjhrz^~pjg|tgslwkwxzsneogtfrkh{msxulbyj}vrukf{smTlc}n_lwpvpku}wl`||vnph~hyk{}irw\xgmjoen|wtrb{rdkqi~wvpsswpgawzp{gw{qlt\ndjwvtjs`|owcpxrowqajhovr~|yhfrpxnp}vo{vukszr}oyy`onkxnqlxxgucxyfsaspo{_slmjltr|uo`geWv~[gm~i~`nqdrfhvy|njfqvtw{qopkrenw|Jowtqejptypjysvngiitvho{usvwoedny{u`zwovucraiuxlqrg\djqqq}aqjuwjwvqiuuwmnmypdrifyfr{cclcnbsuTd{|krrlfgZxplin~kk{ztXtd}iyz{sxr}nuocwo_lhxkjglzze]johozi`ou`pkw|yinog}\sxvqtuwfx{}{nwucgxVf|lv`ysl_~iw~|o{k{hlrzccrrreugkzmok^yconXug}j|wwauls}pwttis|cqvvomjkpsp_oihzlsqqtinmpnq{otvkln}ou|fqawnpvwo[zlnxlylpm~uz{zzsh_owslst_tmx|oto{u{j{sgweniyoloqg{gu|wv}uxyuurttzuvpcnpxmoigwupzstkkpwlqgr_|quhyppxwynhkqYi}oslufkdpejzmtvrwfnvuwjtpqg}|~ellsw`{vuz}nlspaoq^nhnnoxk}z[tkpo^igrqkqxzghr}xmeuyfgup^i{st}y_fkmip}hmhtoqumlng{ontjfjwylafqez~~}kmowvrymr`dydpqgjp|ghzpoqsrorpsbinojtxx\nwwknogwluzpmst^ium{goskhwowsp~myuukvpenjm|iorpsubpjazutwerhlum~m\qdkl}masom_oxn|tnsrfrmtsoxY~stm{|s|nbteiwv~xt~qmqh~w{l|lcvrvtkXysrocqfvtrxnrpvitv~z{ziqyuns~pjiwrnoq}lywar`gtntu~xvpqqfpj}puvtssegjjfuiirwzysjptUjnywwoz\lxjwrpp}tqjxqlstgsqjllsvoocurixxhrhcz~i]llmkk~y~zovippotovrqr|yqlrwqr`tgnuqoprmh^qiffrq}{zy}lknngnnmzukzhqudmmsevremqsw}zk|zfljxsgspli}omnlhlz~Ztkqoitju[\_q{lxthmpmplpaoqlswZ`tde}x\glt~yrlbazy{ozux~ofspjoxolhprnwhxv]pek{hortmx^lUpdr^fotavjfmg{jduzsq~fqbvtjkxpluuv`qsmzvkukymoznvpysuxobzv]i|cvvnidpfscplvfmtl[ivnglfrznkwerpvrsltkuojs{kkqlpmp}kqzqhjwpjskoypsmswsysuqkqn{vr{qvoppkpqejnulutjpwwnjmt~{okxrpwuugwpropmltua{oqa~xulyuqlndpexlygcrr}umvytx`twmjrltrsupnkm|nxtlmstmwsi{tby|umonhrqwdr{gvy{nltz_iiockpxxcsj|vkhnkeclaWoxdmozq}qrvqr{jleulrcgtdkcwYdm{vhrwjlpm`}uchxopjk{e}roh]z`pXvckqlx|tgwosyj|v}thqzaWxka{hjigywjy~lbt}ysajupnrwnwqyjeqonwzsqatZ|ivigvdmakyc~nrnjjgosmnrpifzmjyhh|xzrshvbgmj^ggwsuszpu_sasrnulnwqgtiwew{p]k\qyquuqwyrqsomqqilpkznmt~pu{xj{{wqu|q}spdefnayqn_yv\`ouuwkzqbomf^mulwndzpi~mi]oiruil{k|nossqkvespuelpj{ikdjfumvmvufdovitemj|oqxifnxviqeclssrajzfr[n~ifrpiwp^noy}guzswekhwmkt~tghynxroittwpounuqcpwiu^e~ollqmu}i{k|okfpjursvu{plk{h{rng~cbrnqq{tglmfhckzdqilqwtuukrpkimkip]gwsb^isoufudowi{quku|yrv^tommb`hnchekvgv|iymioopurduyklvhsnug|}pvv}gp}oqnsiquqwjrxe]wiuvx}ww}}xixbswsyy`{]k~|~x}}wpxqgvm}yfq~mxiiZ}vkq|slvqxcvipuuuis`pyufl{axqP~mrstqhtrv{sos~oynkuus`m}ss|inl\fyxkmuqjs`xthorgkktaixqvnnjtwxz]ghoujjkomqefjwl~qot~tsq~qrquncpxpbmgtfdrsgr[wptaibhevjlxbrz]nak[pk_w{qYo~ncj^lnkomdvv}ukqqe}torzjwvk_zb{or|tki{rhbwyqqpdluxtmuccoyy\s~ptzxzwnnv~prxiofdsjtklvmpkpx^tlxwulsskusxkv|g~z~srtpmublsvs{gqwkujefyovp|fidkv{ojvt{mukivijozsihytz}xkuvopv{iwstdpovvsrxm{htb|xroptyv]lsg^joylqn_dyixrfryqfsuxy{ggljsofrrqkjij{vlihejtrpvtufjyvnaso|ntihoudtmdn|uuojhp{uw|jplsykyhlsyyjmjjwzoz{nwxsj]}uc~qegpuqklws`u}^kmvp{hkp~dvgjuowyntfanenqolyc|pmpjyf^vrkoqolhfzjvqssielfznZ~xmokinczofppfdinjctrinnlvgwoqww~rlnvjoxhmsshtllnkvt~xoplvurv|ors_qmqmlhjovevy{rnlyprnonoqpturrq~wxozbutpbsldymhvr{ukpqtorixs[znmw|ihcip{iqiubuy}sqnilm`mlvpyoawh{uhspzqnnxttnw|fdsrsskg`zqrsdujzvurlovdhddlzqcw{k{k{jzpqrzomjqsroqhm}_rrh\l{bgjnnqrigkr~yfouvcothmiekpl[gvtnimpolwolqynpokwtu}xSguhoa|tjen|vlsk{vhprps|vmkki{vkv~|syxkvm{mpqo|yejbpxgvdlupjwtvwo~toonqigsxyyipqvponmralrq|nj{epkn~rikxdnjvbtuolc}Zijpvvatrnvhxjuihy|emlgvkqhyftzpnnkqulnvpxoinq{mtstit^j|cprvu~sjyv}gwdwutysutmourpdhu{hjinszqsefrxjm}gsxur~`be}ozmysyfifz]x_X]q}krx~liym]iy|dwpw|q~ccsob]~hnsytiumf^rupflw`fkopznvqvkvvez|xbtyw`vw~nkmuzpt~nmid}vmnyq\xx|zn{||nl~uzjp_tg~rv_zxwgfnyk{tg}r}mhi~zhdn^j\ttkknw{wrtjwzx|}fu}{szhfzkvhrtjiktlqzwyw~ukx|onirqrrrpuqtgzxozsmxvql}yn}qclz~xrzpxmt~h{}wtxlpsmv|lzsdzhpkuro~wfwrmzlqntgpk}kzpozntstmeknnu~rrqywmorcnmjii{wphbku`swlgy{sl`{xvvrr{oyoq}QdewN{l^e|cp}vmrnuzfkbp|we{o|qi[bqnopui{m|askrZ{rpbysptZpncfzk}nvtkdtukuypuwyvctx}ornxRQyn|sqr\m{pvxklbhrVfq\lkasmomluymx^mttusrqejvseqv`luac_c[vyby^s|^ry_oa{crrnsztrl{~rsmvnbuzzjYlyhf~}kibi^op^tp`trunrl_mrik}mnrasthcysqjx`wbfhw}kpcnjlx`i[sokdh|po{ghwvpwplty{nm}a~e||tkpkoeqhmttbjnbswmzryjlt|n`_go~_zxto`kt|ykjwURytlz{wkm`{daluhbyfmvhhwhhdvl|ssgstkhrlraxvyfw`ovmpsjqm{kslytu{glppaqxpgly}~nt~npla|ow}{nfu{nqspj|rw|ovmalstyx~wvxlmyfYxuvt`wzpxjagkpkthzlm|ebv}fw{skwv~{~srvsanygl{qnp|jw{trswswjuxplpxlwmqhkswrcp{knwscXronz^\yxvvfnosxhqwqzrrdc}emm~gmhpcxrtmtw^vh`qno{fmp|pusaq{nolvn{ivrv}nsz[k_kpnuzfenytrpulp~vku~vk_axknorvwjmwzkjwlixxcmju|wxeczq}tgsiskqvzu~]m{wiofzjjwnvrpzb]x_iaoocqnlrdwxopwzpfhjw~{lutiwlmotwrsmtinlr|tqiglrtrsovs|fsskhqihptrnprjgyceqve|xquv}q{nx}k`ngq{rk}_a|wzzgzsvyklppivupr{vpgso^yqto}rvghoimipro~uqu}}j^{v}s\zqmz~xwjei|jp}r~vzslm}usuhkoliroizpptuudjwlnynnoo{wlnehhlmnxpyf{vjrtuinnwol{gh{~h|exrtkqcysqwmm_motp{{sri|rsqznmv{hq}rydpjj~isxu~ilalspfwwmjkvkpi~ferxq|nxtn~mokcu|gyxrcyvwmrxvmw|ylqgwo]qqqptlfefrkglp|Xzjwkp|}ksnf}~wr|layktpfyywonplqpxngmzlmuhbqumxkbg^{uzl_b|lejzmyornrhxmjqjlnmmtj~zvot|vi[srvhx}zpsjovuqlswvqlyp_nwfqq{j}zxlt{vtl~hjk^r``zrtywjvaSlvtcok]oe}pwerkZgzrfhuzk{zflw}qoyn}i|j~qjormnuj|oqgkff_tu{}vvovrfvoypz~plw{ezfs{r|rovvnnoeiks}tyz|h|pmmlr{sevr|{mmsdht_wd|ytmky~wsxqsjnyyuuttorvympvrorqkjonmvvouvfojyjtfwwhef~rUyiuqggbkhqrooxihsyrsrSrggpjhrnoulrujooo~q~oy{gqpsr{vyrlmcmqqli`^qhgl}upattjxnhttxri`}`~glkgs~asxofj|vde~mqktlosnfZqdjw|gecqmnb[yr}`szllqykgbilvgoog`{ykdwmooseknvsfvevdorlullsh|}xow{|tnyyxTcr~}{lxsirtqmakgV~klmfluesomqwksfycqynn{vfokyqs^wgq}|vetmhusqsfqt~vnwxppdg~tglqtrlvrtpxdkusfg|ui{aoku|{nhoiyvoo}g|vkwujnu|sqrtiulifo}kfetzstepvebo{{frTvhkhyhizqjoojyrxp]ctkj\tmaae`vmgx|vt}lopubpdqludq{rnznwvtdrhrilgmkriey_u[loxwvtnh{cpmuohryokmjgo\eovitznyjqsekasexdTj_YWus|lnysvef|w^o{rh}nkns{phiXrzpukfjn_qahul|tuRssx~s`vnnhwcy_rph^~jiqqkoqthvqvrizmzpyps^}mlvvqxrSmgvrkuywtfxsrnssiwftxhppsn|lmvytYkyftnyZswiglzW{}nlylno]{rs|jzlkimuwuizu~ykowxtomtwhbvchd~}hfuvejuin||hzqqwogtbpgjcxk|prglmjeqnmxyrtlvm|huxrtn`yxd|tjyyzy}vtem|ggo^ow{ltltslxpy}ykxlkvcvttoirc`nzet{sxWn{pnjfzstq|}jiwssj~hc_kpfaierlnvtljtix{^ntxgfwwoximl]rpxxkjlow{txdjgplmm{zepfwnh_zyrssilerkmgv]xy~fmnii`rwnlk}{ttkzzo}mrv{cvp`mxetpjyxnssxjllqaXzv}yxqYsjmmumszc{pvemju~fjgouw_~`|g\yrj}}uoc_lctqprt\vzY{q{yzhi}ytljTnxytetslsnt|e\lzrfu{lpuzwqqs~sca\tv~~zk^yqoqokswhjpwmpbqrni{poaxsfqlqss^upxwhjdpifmqmy}nvi~o}cntospkghhel{rjt{|jp|}uhz}cozir}Weld^rp}me]qq\dhkhl~hxlziikost`ccuups~htfQygxvyYphkudkzywvirso}em{qxjcs~mxeamwislmXugktup}kYgrqutucgu~wk|ufxuww|b|x|z}kqrwo{sijqoxuolonhsyfer|sx^xhoutiqkxh}qopawjrqunsj}jedoyxuez}wloaaxqkyt{qtlqqtpuujsvvnztux~fmino{sgezazmhvxu~qtam]b{lqwpsrvliuum~ppvtglnrigudlelo{oiipfo|mfqqoptnkckrfm|Xyhjzkrkzitlnwinpsjwmyndqzh}mwtn~okxpxi]jjbkyprjlmcwygsoh{kjq|vmt|qmoioeeaokvv]|kugmkidwxvweruvrqelsuinypcmbpmwpz|cksknsc^kg]rr|}Yfocmxndh_\ffwqm\mzq~W^sllhkmtgh]w\lpn}yfqrpfhc_|^qmrY~x}^xc|pvu_swcjdnufnojpgjrmmmjrkvcxfvavn~kt{uakvliWdremrf{dhaydRdvcklz|v`_uu]gZ_lx\jmlcdjujezluojswkfttl]k]jTlntmou`kvjWWlqqyVo[eccusmft}zyyeqolqp|magurychjmmhuossfn~slr{ykvoxjv{njwcngsvfotlsp_j|}kr{qnwtwqdunosqqktjrhcrdfz~hzZmjrt|kyjnp]gukqqsanovqujkpuj}hwhniZpd_dxv{vrrlmg]wrp{ecbwetu`k`zejmqn{zzl2lshg^qxr\|]pqxy|fcZwpqfizx~rgtkop^dtqiijnoblpwr|tlylpwhicolitqw{ofdoqf{gkoepznzfxdswq|uasv{wtxsz}dmlm^d|idiz}us|}|s_hhv`ipijcgm~`}`ynkqfrpr]ez}_oh|jmpftqjee||xx}o]twhzuhratplzNnekqn|{d[zed{mkrp{dvmvpdvfkphgl^kyoqs|h{a~g_uuiolZumkjrcusiuxehvphyqndo|qtkhzc~f|i}~ilbfm_]asasrhzbm{kqgd}vqbXyweth]oflgvoyl]xykaxlusdrmz{`pekqemllcz~]zldr|q\fbuWo}|l}uMuzvrvez||xowrOkvdxlrar{xozhidk~ycm]oxiXimmjivzomm{rwcxvzoup|zxcjc\qo}\eq{jjfqtzxpgopl}ohhoe]|s||T\vej\^oajd~mve_uacbkYqadkq_ddsWfjsXyXW^u|]gt|TX`tZDzqoeekkvxuvrflZvYj]fen{MUamvezldbbYfcihhXiuj`s]|gjdEvayfzB]jovam_YlMb`cm_bYgmjnhfxa|oNmtqomfu|mptqeec[]_gljgig}XcqY~guz{mocWjpT{o`hrWUlkgfgbtxvvrdfu_d|jvzix|\[p~rpwwfddlgfdbfwosqpt^wxt~hrlojeyksveol{toitgxrZpngevbqvs~rtsinnktX}eozfinlr}ky^|ommahrpsq|~xfkzo{spmlmyxtm~lqo`mzo|n{isvxlqlxtqq_ifm}t}zksy~hotb}unmuflmpeggrtfxekoqpvksuqdol|fsshei}pqsvqiyi}vjhu{mnirfiu~tfqlk]nugcq_g~hbsouojjmjlZdyjil{u{e^v|v_~rnwuqmj}i^_~tzrqrlogvtuksrxcuibmfrrtv~rfooyomjYxonkqXctzjri|v~yj}{noo|pVwUjphcqnp_{s\giurbstbmiuis}UPvitr[gmfe~neijkvf_kuh|{yhmwvyxas{ju\owiicdcohp_akqrXlzvm|[slum`t`thtr~ipghsvyrllmc_hi`uvyjWzgteex_qurhzm]wc{ib{{ljqmzmol{wowhtiidxv~Z^aovzknkxtrff^mhpvgw|xnruh|mfoyvdsqbz{ieptswzpwfm|{oqjk{mrrksn}ijxrrsv^xnesvwutmt|oqvwdpqmi}}wjqoqkygcopcjk{hptev_e]ghpnvqglmvlemdygxjhuoox}ciymphhtczelvsgtfxpt~|shgzlpkfdtllf{|qxvmswmoaozhofiupkuzmrg_|}oxqwiuce|f{pjg~qq`isw]yxoxyntnj}f`w~k_c{dqprkinvgypsvrfsqvmgkXtvsdl}yhmknwsg~zrucl{}uoplnxqqeedwzxgplwlpjsynhhsrmmk{tzvmirnomiwpgn}ktkhqthfajdbzhltzrvo_j]sra^oprVYppbwvu^{fhi]r^hspxkajl|xn`ylucmzy_q[`zag]vz}lUeubekgdknvahakJvgnik|{y^oclgm[ef}ryobswvYU\npihvxp{v_lscwk}mvvlursvtbxt^otgflprykp}vafrxvnojva_v|_Wj_palhndainzzjofuzkym~kqqnij{yj}gim{yrl`rxxa|whpwoblrzsqot}ttvsbrturtsyyxrtz}twpaovoikkixomezgoxpirn}rnl{hjx|jj`cyfffubri~gwhqgqnX~frlopmxdw}soq~f^ovptiq}osqsnpzhjno`rkylkvqY{ftfkbzbhtgn{rfwlybrflortdoayv}^njrrmltwt}~sgt}uqpojqecom`o~lwpl`btqbw}Xtbhpqmy{s`jivi}oyrswRzjjZuykkhlyuhc|nnst}sthi\qrl{wjfxng[sugelfhzdjfexlqiowhqmgrp|kmvgkvrzovrnhpnta`nshedaqkklbg`iuZnpzh^j}yahiuyfppsqtqsvx[ghins|ibfatukrheumhwifzjvbk|r^mvgvn~nn}mwdyrszsis\}mnewssicqjbXvrvnh|xqgthkmunwtymrsrkhppjpphmlqat{vicfst~wsrxmpre~zku{gznqnf|{~Xsshfvlpnin|}trl|vrjxom}adw{xrvpvkl{mynikdgwzurn{olxq|huhxtkcfycgwsjn^\rhjvpovgjpn{rzirvovprz~lctwslnglpolopltzjo~pzhv_lyjxt|`ricjgekkqi~lsphyhwgnedika[wmjboyqgpgorbzyujo|qkrpcp_|mchvqynervt]glixgqmiixntgmboppndfqlhw}npzi~qp|ikpotx|rtop{~ihZkyj{}u{}e_iVwiws~vckqlxmVbpoduge[onpzln|mrkt}lizmczpqtudytoppvyrvugzk{pqnYrojrbluttwwgsifjznavhttqhp`ghk}lmlonpxiranmphuw{`hay|gkmyxheu`xgeuf|[okuydfjtssr}lh{yzqmdyoozcgWn[o\lkphosseqlpgky}yj{rztokcjliv|rwmxlaimytprqnhzYbnxzofoZqelet`rohwin{cp]|hpqcr[m`ko|gsvzVxidretndqmmhfymvsll`lqfint[xkowqdlwzkbu~tvsQpouqcdtnxqfqqqzp]rmeyy}jt^plby^k[t^~yvo_|Xkpm}erq~yvnqnqi]nspl{{tl^pstau]w~jzpgpywblmiovezkpxh}frl_c}zsqu~gxY~vbyimirhy}_`pzfnox`nn~igZkvnzyz{qtms{]syprj|zup{txVszsxzivqmrwvioun}Tnum_nxndvtttwzrnywhsdVavvfmrxtmum}y{jv[`prlaqajrjprmeuamomdb|yl|uxemksiflmueiqtpl`tji|{thxjppzwo{lvutmrsmejrypoieh{xxjq{ymropmlrpyrlsxh\i|mbeW~iitxmvy||jypnmturmsrujqsgsvjvozekrkkTbeck_ioswniqkjp_uktwvdpZir~ydkuzlyohbrsjZnqsenvnsZ{_{zrvykpvxzx_umsYxr_v]zovpqnppztgwsmr|nxsux~tty~x_xqrgtq|sh{~ii{i~r~uttvyr|sx}{tb`ymosozvx{i|s]|vlpi{osvtmtqiy}tLouuu~{vxbbt~vwo~z|~v`mlwvjrmo}m}woup|ol~zbo|szlt~efudmpk|r{\vcvpt`qbpgxoosl}sochzu_k}vrpyeegovin{e}jpmvxvozp{rspw{pvngr~Yhqy[|cclyxhsb|f\~sewztly|trlploamxhhdyuohxburzsgfwjmrvgakdxn~rlrmx~dkj{uedx~{qosokmmtafhpbvinosu}ens[^q_gN}mF\{puoZuxq^n{alik|dbj}doc_vf^p]bhsfosxblfSkzbnqv`sisylgrqXzZfyfieWmadxalk`\rlqayZmolpquf[yg\jr^[l_nh[`ZwbvhO`Qqi_jdmZg`dgwEw{Rvb_kmXlayolYcSefpnfaokuatRnj_kaebtn`^dvnwnp_V^ljtxx^rennovhhbgoqkb|dgzrr}b`rnsj}nvrmpkdihkwjtp]qghlhitskpw{~qxpgv`thm|}x}u`cip[ahja^jfkom`dmzpfckcswsiq`}lmkri\}XpviZt~kfibi`{xwlmo]iqmpwhxxqtxximwlbiqtvyz`}uywokncu`opvtcjeigdpuhjrevf}cyngwuuiwucuhyxspsyn~hq|{pykqhkq_|jn~qeljux_p{kxjxiqqrrnpqcmihimizlwkgs~zibezfvjizvmxzfvfwvv}qqmqx`yloz{q~tsqopqvlsjmr|pgxjsv{lokusquywssXjOgrlirwfswd`plgjo|xlq_khydgvWiemly{xxzywvhpPzvuoswokkalarkprguj\Ug|jpewYr[llqslkzemwdojuWevzpixszdg}Xpgmsrrph^p[qspvy`hfx~prgv{|ztohh{itsxv\zytqipgczkwayq~c|`Vd^c}n{Xh]X~`kzYfhnrafn{hdm}ki`uwswj}xrZseRrqopgx^rwltrlgs_bwqcqofo|qqenwwhs`^|czywpnlrxelweicikylhy^Rkzvuq\vs[uax~cl{Zj}nxksnbsfpXcYlrhxnfdxhytmxqtXj|wor`pq}jx}trt|hyxj~j]poe|~ryizlnw{sopiwqo|luggekukm}f^tsgkz`Ttqhxlkijdcptznrehrmib~fxmnbwjopjrr~p{VfsfexnoxqSupbqnzvr`|wo}jibo_\uvbwc^nc]zf~blpocjbhlwg`pg\rahsfj~gepb[fmnlspZfpoj^xoqvhUar`djYmon}qne]^csa[tvbsistnuurmr|bt}m^k{oqpotlHmkvdZgoyjmten|z|qozwujgvtsprrvv\pfvujhziui|{snonrbi}twkhcxdip}k}hxstxkvvlpupoliylozuh{x}bvsuovlma}pmjsvu|ftpvpnf~}qdppkrejqhqb|zvipwq{brwdjosxl{yw|cw|mmqyo~hxqxjs{bvms~}ehftlu_lj|qpooglygqorhvquc]dwhoqkqt{|z|iciooi_jfevrvpeTxwspyam|guyQhriruob~huqssjrzan{b[kbldi~iqsmh\oZ]dmo|jjmns~retpnunthtgp`^wxqlq`|da]pxeQqgokwltgples]q|sg~_{mvhqnqkaxkobxn}sbwy~ywytju^\gu|kqjvns~mdwpUonisVgfcvirqi`qkl|h\fkbxnrp~b[xbvro}c{`vsoiitknsyqsxzl}luuifmntwr~pm|stiwxttyvstjmusoyhrrppqertdmrm_tidvzxlmewmw[l}ljr{rllenum{|nrohhgvuikqrnrjq|rvvqzlf}pqoy~~{xkzbwvrZktn{zqtnhkz|ho}wslxqlanxjrjttzlrkus{mjjhyzum[vwwxvd}r\r~`arlc}~vvemtqbqe|}c{\wew`orbq|}sbhZ`Zd{urcr~noiudblgWlrt^jkrvfmm|mbzdvq}yrtmssghnqnsztsororYsthwkmyesmnhigjyzsorvzbrfdhhn{v}uqhk_u`tk}rprm{j|iosgvwotgmk|stgk~jxuolt[yd~{YX~ozlirzk]{rvsx~zpvlwpcgwvh|kp`onllpzcjzc\]ldismkf~tgnzbrsje~blwnf^efw{ptl~vv~hinn}xihewinnuacn~}cn]vmsi\bwvYcrslnpkwryu]i{btrqytagsluhhphe{ouurpmyihzylmx}lrsqbe|rr~`tmuvhqijlovo_jiqgqrwwyio^phq|vhm||xovahZ|oofrchs|xn{npsqxyes|jbxwzxnnnz~zfpdps~qnqkcw~hioummeloVqltlbrtp|o|ohktkz}fjnjt|dZur{d}ogwkhelg[skz}qvm}liigxljlyjxhhmvanhnvgipsehq|tu`hmq{jlymlqy^|typokdsh`twzjixl`bzqtmkogmqxswlx|qhhnvfkobpSboow~apem^nizyrht||jp}lis{u}qkcjmtuplcyuygoiifqgrha|lv|rimwwcrzxxxkwnromrcz|e{{zpefm{mvpRpklpi^mv{mwuppiZ{~oupj\|riqmovknsr\dht~kkm]p~doZkuvsqp`Y}onqlmorn`{ilyxuvVehgx~ii}le[airyrdYhplwpaZo[vXhmktXtmgpuuzodmtjv|xqm[``mVwdngwjs`gyotn~nn`vxnvgud{fzu8skwyg{\hin^qlftzlkd^xYwpyy~iq`~qxpfObks\]zTnlkl~pzomqnqd~jucqz^pxvwqRasqjeqnrh}nzupotos}as_dtumrjXofm}oitvhpor`axe_T^mosv_vrnpQ}vnrrzj}ikmjtiz{ccbeyixqzkc_cqu`S_rppdcm|kmvbvrvn`bYp\]kvab}anX{px}prqXo~k}i}Ovsr[w}miqd|tskt|dqb^vsgvjrwwrnv`fefkip^crshsypfzuxpZj`qvmxfvpscvztwvx~hSlf{coqt|qioviqphh_xsxvpkoyVbwbpm}zv}usvex{fnz{}mihd|crawozuwm`dxjnitkpxve}erjefq[tlpRnfrkxqitnvnsi`l{rxrwmkmnmuMohflirrytaxqo}gefpzpmokptl~vRgmchcdermuqa[jzj_iWmfuozu|jgrjioslwhrmllq{pr|ovmsyw~qqbeZUygyWsoq~ig``omm~q}p{xutkuYknurn^fhibfxaghpxrezaldXsxmqw[lx}qimudxplxnifdgejd{qkd}b^rikv^pbrmht\oxv`r|yjtixrc|m^ntd~dyqz}ygo|^llXtjoe~okqespketpgnqfovrk{Xb_Xqlnokpzfvs|uicvZqeeivljqm_rtaipmfYxp{dmqv||uptk\z`h_nvcrdwjmxubom{{iiwqud|LarmtvwhUj}ofRpgqtugmnnzdjv}_rekvfmbparytvlmd^rvi}utcji`ulwgskwohpn^bdmdlkqhqqpvdunbxjloi^{lrigjlp|snhlvjnqojevfrgfqisn]eq}wwerr{vsrqpzywn}fop|goil{ixouocx||klx|fkpw^cfoj^Y]ij`imshtwomokqxlt^ivywwmin`ykv{aigY|u[ib{cShoehgkkrjptkag`bl{quhiu`au{r|hywoekmqks~a~jydlzcqZ[rboyo]nhfUveqnjvbphbe`nc{vxqpxzeehfeqijvtR~kpf|ld[uxdss]lsqnulnxeusxboplls]gne|sqp`firqourr}zpintx~pe{m\vtll}frkisuzjg`t~{ggvmqxpqoqwgutj}wngporyhosuvyzvrtlkwfq`znye{fkiur`vwe}qbt[phxsifzp`eod|fpgw{zsy^||wp_uvfxyp{mqkvzrn|fYsbx^h\vthqvprpwfqpxr{o|i~_w~wc{aimbttkxnd~vp|ZxnlsQrxsvmtosxeauurVmZoqhrncfqponsuoqvxdudq_gifngqo{b~nyrpuek|rk]Usjkgnvjblrfw`uwpwsfzbf|qwmsolquv{ztfnklonbvm|qp~eUn\qjpywxfk\|~lslml}nwrd\Yzp}hr|g_`a}anmmaia{coqqtsuwllwfkloipjexq~zmkiwqzs{mmxqw_bmsz{qp{zwumpup]{lrq|ow}mrvgstmwhnmop]do\U~nvg[c~gzmqnkc\sgwkegmvYr|uqrrmYsc{l_rujpjtloQ}dotsqoetgt^]koemj}s`ijzflk{jqrxslbvpkytujy~zrtlvwr}nu}svwhhm`cshximkmwvpqooymw{{hnlx{yimdb~umqrrctkr{|sjmvwf`jwswqbz^wq{i|yhtcghvrij|fsyqeipu|dpijlg`xah^lgvQgghptthnixelg~oo|]d|zavhwi~o}g}bph{}h|gelyfdlsxvnqgnhlsclhwcroi]}t`R{gujm^\}fqngr}sxoijw~qymertquxxZln]~gqg~pnz|h|i~{olgWqqtymxcikw{~x}uSuszlgSoifwugin]m{Xe_rjn`rgfvfsmxojb{f}xvityYpqphi\htnsorjqxak]fa{qkvhf|pwtn{jqpdmucwjyYakzJ}fhms{||ev|idfe{|zicu`rnpq{n{_fkqqmfNueo|Ymcn]ftudmfpgkgxcf`lxfm]ivwhyjmchefq|pigqeis~j_ojjscjznthRhmqpeflx_quulwjunqmYcpXyq|f`}yglen\iittlhqe\pydfab^fzxn|~snprk|Twmhonjwcm{u|b\j`uZh|pyvczpxbn{pplxZytRmjZzwgk}fNjxpksxmbzktRpjezZjemsfotciricvei{Zvevlqn\iftjfVnx{ymntksjoroujl~]imoohnlktpllrxqrmy|dtphtddtbxpmv~ytiv_mmgkn|qnwuiYkxh_mqaipzixnqsstwxqkkewonmrrpvuupomhsp~iftnnwritcjonlmwztuveurtj|w^s~jxps{vp}izerhtjxsz{ikfmfsh[uukuolvf~etrtbpyydpfblzapqyvypulmldv{_vreq{sznkR|zhu]mnxwmdke}^satrvnfxs{uog`a}ldxY^m{fnj~ahlrlwswf~`jblfsk|jZ]no|umzmsforlzkrngytmv`|ykk`hf^xlrotjQizilmp__rt_nvl|mlosbytWpefrb|hkoko|v^ttuzotqw\ifgboilqxkvQpofhdo]jppye\puuf}vjs^f]{ifulvnor|{rbsl{ch{loxmio|q~jwq|ibq{lyq|am{bqylSpgufwVnfntk}snsk[u}{ydvrztowsqg_tptrlpprudwp]h~wiqsoqxomukqbyww{myxhetqYo{yre|yxjtjz\vuxuq~x_p_mqykyiu}erwsonvmldxk|xmlzzezoc[}jznU`sknnkkxoh|s{mcs|}oxvtup|wrx_|_pjnmzspkcfcmkh}zkl{wrxyZjrZpksovoe~wxgdrjfhrvpwrrtyslyvr{\\ul{nunytpyzi|qpyivkd~xqrfeggxxpsPoZtedq~uqu\hiziqWttkuiHdnjl}dadhoh_tsw]szricqcinv\}}[ran~jfv{keYlbeahmgoen|esnbftqdy||rbekhote_{gepkiczoqgcslijurwxddn|{bcn`p]shvoa}Zwrqyp}d]atpge~jrcvuommr{ow}ox{honlkacqv^txxnicmztjjzrcfyutzxurgrktwkyrziw~ygvxnjvitikt||{wb\jswfcf}t|ewzluhutyjydlW~kwnzprerccphelpedlpssiolzsf{nu`mw{owrqxjknisqmyvxcv~{vmterowrjqtcqyslob}ehtlwu||{krpgclmw`jummvuxhxtVvnh^omnpr}eJfiqcwdwqm~]]vaen`|dkQhtw{ywd_yhN_Sr~pqxbnqg|lya{wyww^qcvfkjxl{piy~dsr|zn`mh`eorqadnxnyvwprv|kkpt[cejfuq[ytmjkcesrysyowwlzd`nrsfsz|edgaglf{uggvz~[lf}me}iw~vavejeybynjiTnrnfkqz||pbnusohsdimluo}movtthspz~{sjhjVpjkyzqyjq~~ad`urirl`xstWpyvxxg^qjhtxmpmoyf}krm{Xioqm}qgso`lpnyucclzkomgute}vXxXvtg|rdjyolzxZc^nssrkwogthvbxgahkc{ljm~nwgftguppgjdZobtrgvjtnam~mirjolevptwvY_xzdujxrn{xf{euvloq{jq{fmgpprkk\tclu[noxxuwiwvg{hek~tlwcfxxvtjr}|{xkgtfoenvsx_buquhdjupck{hak^tsvameeqwqh[m^owZlygefojeh{pgdpt{htq~tqxbiroluc^vlmhjufnsi~lrfnp~bybxVsjauqxoyki{~swij|m{tddluav~hxgqksvgo]rpyzfne{Yxgh`vnjct~Ukspt}uqi~wpntsnlwo~olquxumhair\{csigzoZjfsucn|r`nghuwb}ke^jqdlwf{fg_~qiiflsxrqejj{qxdvn~uhvfrqj|`Qigd]hy|xvgpub|eoZ^]x`wT|qx}ldpcPrnkptZVrvjiaxnZthmmrr{ndylzziuuigghz|]|jipwqWy[_kiqowmgMitnb|qlup{kot{}ytno}llvg~olnllv^vgssuxtpltsuptguuyzmoxwohovrugywruvghwxelj^pfrmttmxpjyi|gcywqVj~zwu~lzjhv`q{Xjc{vqwx}fnlhq{ntlvzqznqkddoznfpq{fwybqwsezryqdlqetnrqxooslxx{`ge\uojultjdfoetvhnyjypjkmksyxzvoyqlkaatt{v|`eoy{rvexhntry}jmdxwssuujeum~sWhzlxqmvgolpg|ztitpycsffwnpt~whe[q`gjlkvezizorcenlptnyhZ~omwqxqblpgm{md~hqvdouqwfkujixn[lihmkimnjozru|rssskjzeys{nv{l|htiawio{zcsz}]`~kelpq_{wvsfu[alo~Xeih[q}bas_apH{jhwulws`fj{racanntucskhvjexig{fngcbdn}pxqXndanpxumnorj~mr_iqhbqeiovl}wdbsmiflqjgho{tjduhimr}yhfqk{hvwr{|ocor~kzzzpctnvmflyvaroj^jrjjk}irgd~kf|u{_ijxWui[rWzi{llrislcpimsuds|mstqz{pw|Wwz`pe|gl|ve}sveksqrrwers|fsiqskueso}sygm}mlnwpf{hqnktoexoxmolq^jkfmwudft}seivhojmummzm\gnppbvyapmdefps{~ypell`gsaqiqoYzp~pthooqecmVyhkogpomj~jtcd\itgxhymntyntid`u}sqxje_~oh|rp`mkpugwepjthvl}loyi_tjgjtsqnvrsslmetzgmhqlZ|jlrhsrae]gzmyxqmnwzod{zmyk_wurumnmd|lmXrnpu|sxmdhv~xqkwqlswowtrderwaxu~xvjoiueorg{rixqyd[urgf`xy^|epgnasr|sxkjhf\slsn;yczq]WqyrmZv||slnivvfk]il~zmruq||{soqff}tipmorsvzwsks|n~skujcy^}meejlyyvo_gzqmurvnez{wkyliyfyoqjahexytt~tintrll~~wvnsrgwzthytshnvlsld}uiw}r|wttts|h|su~dpeowmpnwkafdwgoqqltnX{q]p\|uxvqmoolzkglingrnnpxyzZvqw~}guqKbrxckzrl{bdlrxzhbW]o\f|llpxexVblxrpTcruQqrdYVeravr^z[fse|ljqg\q_rhk^xju|\`}|xY}Yseg}plkqWiars_mvWr}^pHdqUohfviv`ckxv]si~xiuwqljemalWh|g_ekssKphdjxnS_ss`i{lt`zpvz]uarxq|is[&shhfwwmodt`ltrottj`Zcjfrykpqwt[xawaolfoik_ldaYmkqdv}vpgrfqdjah]chhyvys|h~ruuvvp]zuor`by]brrtgi`]owspwc{turr{lisoqoZcupbjuzl`gdmnkelkuSm`lcmnTxfuwpsdpw]uro~ilxzXxossvnq{nlmg]xxzoz}xyq|kkaz_pfh~v}|lnks_l~v\lpp}}rnjo}v{lrrpZ}kgk^~vkvr~ewcgpmc}hzhkhilij`rplp\vnyfkpnxi{tqciqirjssvavvnzj~hqgomiywgn~upt{^v{kknmn_devgpvts`_eoqg`m`kc_vaw]ve|_vuraqpyu{qlzmwtyaqneehqnbnpbhs_pptWpqsqngch]s}uzryvpyiyijpc^tzqzq{obafrmrqraig|g|in~{~qrza{plw|^k|}pxm|tn`oix[u^fqs|q|^wrzdwuty_`vcZavbrw]gisfxfwusvsenenpuvkmgyojzatoeffZv{wik_}p{qkozlyfohfonh`o`ygsprjhepmugp`~vefW{lsr}ji|lpnptzmrykhVdeaskw{w|ddy`cwvwjpb]uf]v}iuyijwyzynoswrwhftjhse{vth~d`cryl_zlrjtmlzbic[pfgzqpryylurof`ivjsjdtpjz}jrxnvixfrrquYpn}z`srzhndwirzu~askspsytxxz_opp|wm{rtv`ie{ssblmtudthjkjjtyqpp}[wjvz}hnj`xsumhg}cyue|p\z|go{o{lrjrpukh_qipljb{qkeynj|uv`gfp}ksokdeY]vwyk]uyiln^ti}trebtqYswgerpxbtaqZ}sj]hrjm\r\mpjay`]g{zzdp_|qlnxstlWapx}kn|dqyekljqk`sriirifXXlmshynbzecVe{SmlZhpupvyluenpuxhs;`xtu~t|utoxfmblwxllu]l|_xogizrwlznnr^fhhgr|onkjxdMt{uqsmamzxoupowppovv}hkhvgw{hpoud]kh|iwvimsluqtsijydefwxd{ocjwe|_sl`ho{jxsdjbkoorsqqkl|trqkqimismfxnns{elmvfrjpk}weognhoj{fyn^jimmlq]spfengedWsfaeOretiw_qkidn{kyu_cjqotmuofqmgivZig{m_]rl}_oxa}hejxkf\{\rodyfz~vme]}xbkpjuslcbYxfoi]rortvfddulaM]|yyRzqkavskmbzgn[gXspnvyesrY{oo]rrs}vrvei[snwq}wnuxnmnnaeqxw|xk\omwlmscwfyuimccMrz}qdaplz[isihrlh\ujthobgkvmx\rdwsw|{Xzjghccevtm{tqZsl^voi}sxco{jt}dyx]bjqiktxscbpbiu{yogusu|ek|puzmspgYl}wisonurl`puu`tslamj|wjq_jMpfuWxpu~zkojWz{yvxtk}_\rbdm[qh]nvfjs{pwYwsaeq\sgs{fkWesYz~ts]kpYqygKujxekbzU`gppuqwyhx|j|ZjqcwzgfwRknuvjuilixqh|floQ{zW\efZdm[gUolpliltayty^bq[rktnmuqhgpzviei_tqjW]akliyzlmz}]jbirbkq{Zrc{l~vpjmmu~koorxf|xado|jre_usv|wd}qsnwoucuumnwyupuilhsu{ei{h^vs_|eo|furveptskc|kkwdWeivpbkeukc\cdzg}rzykry}ixymjhXxZ_g{|evyxfd~rtg|szgjmepukc|smksmeujei|begy|qjvqozkyshcmojctcziwli~Rtyf\Xzwwmn|wodqixiqmjeywfcsuyg^ejgvqpWxlskshb_{xcxwnge~lc`|{hcjpbj|{wwmhkfx^vociqo`qfi|k~oUlsy{fWoh}~wa`isqhvpv^m]{ydpfm|rplbmcrrdirwfcvreljvjazqzU^im|lwrqxv{zstii\{ovlt|zsXl{ujssfTw}byw`ywdTpeg{ftfSwb{o~l_{\euvzM|quttsxhfhnrmvttuoriikkzXtfr{|a{s[jlfxhsq`kn|ypdhgqnkwm|Yzrnb|wPhe~sqcfpoppO\ntub^poae}~qm{{ww}umimgyo]cfjgo{mjv[h{rn|rg~fw^X~qg{w~nfWQ^gtuddpwzaqbhu\beoqfqm{oZ|e~YhZvei[bblwpmi^tyu}j|ln^v|tlcj~tthlM^n}m~p|]e~rvzfkjwfv{slxfctZzzrt~pbnwkpx{qfzsud^mghjyztrbĂkk{r|kfTiYmjljsjpipjykucf^vouhznnkazlmaoqrdtvifvtxs\nhssm~yzvljqsl_dsngovr|kr_qdRkuv{oxjdkuvobnfquZne]bxbi|srhoz{}zj{jpzpajjV}if]i^qalwiirbxrl{{rrrjowiokywot}euvn_g]]npiue]ihspyrog[}vjq~tvsta|J_Xovtwawqnjgdosimlgko{rg_by^hjoWe`lphmrYQsghr]v{vVeowLfu\`t[gjYowkkw^Vuqt^ztdwolijjcaywkvkrsa_rsfnlnq}ja~mxr\gqtw^sasxsnZabuZidjq}`ritwa\Wl}mcugibccivZkpqgin{gut[rd`[\bu^pWe@zb`jncwtf[oz`^[`rfe}lszcfythnkhlVjagmnghhwtRx}wshozh`zqZVnarrvXi[blQ~}rPssurmmpaqrw|ig}tdsdwufcgrcqq\gzuohwlZtnvqj~icn`~s``in_kj^zfhvjkiuwrgliuuppmfernb]smgddzv`inykdfqgfinklnfhehlyadhv~hiWcytq^||aX|trglhijmmsKTq|ZwxdfYpXctldmwwe||kjwh~uyYqu^rfwtpL{nuiXvuvbyyzkeoep|[dbUnr_numyrp{uoqajqm~}xQyz_lvd[hkal_i}lwvhu{nqynrxR]gmlkmtV[nk}v~{bmb~Yos_~Z[wzbxqtmjnuvhjv~d]nSfugeXnvbvbnqwsXjryRoq~q~jhipep\lphyjn}jsr~R~Y[|bkehes_b_rf~\v{yoq]oono}fwp]etqo]vkXwj_yjvb_\kxpRXZsoxafrbZqeWq\lde||ogkcZW\ixh}Wunlc[ymfckreopgxh[ohi}xdwwuJ~k]twkPrHmirbcqX_~wtlPqaobrp\yihe}jbptj{pugkoyYuutY|bz{uej}}fe~TX}[Qwnslkrv{brrp}cy|n{ivw|sk}oukloxgj}vY_wpyvias}drrplnytViQmaY^W~xtZe}ue`a[gHhbNWlWi^aUeiHesmTUt~Ugl}ugQXZYt^UPNweNgQyR``kmZki|oXSirpbrcoJok0X[ieFx|g[caVbRr|uBijo`e9sotwo_mTVdtZh^cq[pUpO`ZP^pn/ec|b`jcclkorqK?ew]WSoeXscnuvJSl@liwxil\}`}y[yo{eU^ikhkjp^lmbdubewpgrjsqlhvzl|pqusk]sh}Wd|~fohc~i_tqwcgjbrgiPpVpppbohwaZoXgT{Xlz|vyspcdmdmzo`fZcvne~gkpfexhrryfiu{|sZwzyoyZpjbt{`yfh~oxh~vxkrnfkjjunxnmqew}v`wuln{pfdb|wejwtrqpw~frch^[zZiktp`miqgerZkirhnhmht`brrocemjTofcsqnzcqO}npi}ffpZtqqgowqQhkdznvaroYZhtlor`ggm_vvemdt^sr_oqtkx^do{wr\]y}pok[e_wix~cou}f|l\`pQgy_|tmrYj>[Vwvz`qpkcinurT~{^wed]n}pM\djgtersg`dh}ztkwrzujxykwhm}frmucRiSako~\rvz[wNr~wh\e]rpk_opqr^mjwpjthWZ[\a_pxPphZsk}adpmfv]Nzw`x`knw|bjpqwxi`pptqaud_qnu|jz|bhpcft|rfuqgr{n}rdm|tup[}t`qshjswygyhpmp{nu]g[clpseie_|bbu\ijtjqd`lkeucmm{lytwezf]tseao{pul`ew]knm`rcyouswlwamj{flqwtyyhZfjlkcxYensYx^i`salopmkyagrra^hnh}g_egwdsog\vumrxkbnu{m{imV~cyyljwidkf}Xxiixhmoh~ibzvghyesr^rWo{j~xv[imxjzxmNvv{mfnqqg{t{nszp{cbs{hq^]fq`jpy~pykn~{YqmQh~umxnk~jrjtflwgy~mebimdglwjuRzx}tgi|dy^uVgTwppkwScedzwpLbd}|a[Zu|\jpZfbbwUrhqyfWvyj`lqil\gw~t^jt|ffOvs_Ul`oid|Td`fQgaw\bcmayfyq`zvcj_`Yj{mama`~[ncpc~h\g`qlroxo_hpZrwvs`tSx@ohaxlhUzgqjW]f_wpb{iursl}]yi|}~{{dhfitshgkew{zvd]cjq~x~iaissnof|yv|rmytydykynoruvtyiozvmw_d}ge^l_wln[wjojmborcf{mz}nffb|pddrxdyp_mjc|`Zplmwcrmork}~hdrp~ilxlmyykqfwdrakPskej\~juun_ijuf`cexe{WlZmjceY|ey~{[nhphW||PqrkqyrqkXhk~gRmavv{oqdngufjj\wknurrUri{pvmeh{{\xTe[ovsklxkfshqet{mw}xtjiq{Sur|dTviyl\bbslscxrZ\kildgmk{jwaqjjcvqwciuqmukpllmxsikq]hko`nhwfm]nruZvva`vjmou]ow{j^ykxx{mrffpwgqf_]vkthfYnoiihzjuljnc|rh`{vhxwlnvmunvXdrvohji`|XfjPkjrrUa{lhbhqu^WoN[qnpc~i`brvtftaak}idko_lqjizyk{\^xojmhubWxxcithmgcltpqfyid]mqhmjymljnml`oalawqsv}zcqf_s{zb^f`}eme`srjtZjhpwrqxnujnfv|fojZ~tmpxqffyj^subwmsqzeruqyazed}}_Wme[cmx`imgptz|kd{imaracopxZYvmywieu`sZh\qvo`xw{jk`kW}`[bh{zujlduk\\rkzst}urkeel~ri|shpcbltYzu_okYft~hns^ovwjjnq|ucrfpfzxlalXpfjuvv[johjrUeyqkweh\qomtyadetxkigydhjzkvitul~|}s|gveavtvnrXvuccZ[cmqgida~p|jnfg|gii_m^at\kyk}b}tzapoionjvo_|jbr[unxk{nUln`zylxmom__mslshiuttctwh~rqbgQunZeRYnfsbh~jtup\egxnm}vm\ljjvvxjq}pk}mhxZPiilrcpbppdcmcw~leecghpurWvmVfgrfS~wxYgXv_ebw~]olktzsunhdklxwk}rxmhtmsvbod{zad[ibiq~bY}mgjo|Psujaq\ox\^tfOv|}ufldyq{lPVbdkism~dzteo_oXzloo|}tmdk{Tubocoz{lqglme}xV|rwfsrkt\v|ysŒjsknlrklcxf[sw\fx^esijk{pxgcqvxwvxwm~]eqxkuwt}jxrlf\utlg|wsnnkyvx{pwqSaq`Yd]v|viozjew[lbUlp|cmrhy`qrv}S}hcz~gwhpiqlspysznablkMz{hv}|\txjkfj`ifjuupnp|bX|ymnv|rslsqgtkjvhudxTW{psowf^fhrvpzmrtncfpsxzqule^iyg_Mpxtnrlrp~ut|ovquvyoiefvafr|h}ucfmvRec\pRu`pklrvlnslyhylVw\kkqbhq~`bXq`aOjluf~pjaW{Y{~jpd~otwfjsqaon]qqz|dw~irwZ}z}yz{~yrq]kblsy~}yfMt~~|luszxioolv~|]r{yyy^tqc|{sn{qkxxbmcNuxukvn^hyjt`z{yp|xXouqxj]jr~|g}v{bmn|oji}ih{cnabw{xUq`ocinYibyhmtp}xolk`[|utzuutfrx_mqs^rosimxnfsk^mcw{mwfOfkNjr{T{|^{ka}t}jmfYvsgw|rxuno{sbbfTsq|Ygqol~v}jo}ylokzqlokergVp}}y}uzTdk}S^t||xlo]{emtchkh`ntW^oKiwihZ[A[oxBSvytoXyttzot_ijxfXui_iugSrz[n^W]ackmoach]WuT\{ldclxqhqcwNxe`maoUVd\mbXjoSRfUgng`m_nbugiNii_h|UTjWcb[bXqVniqBeYYVhgehfcaT]xEnmTiWcrg`v^Mu[Y\YbPd]tWd~}ungj]hs]kZOwrcH^siZu_cW\wylcrprKohj\yin~k}cXjd_p[xemMwc`s[[p^jsiZo~Px]|tc`VSg~zmct]}afdxp~aj^}fuRfjtg~ZghiP{^W=onuvPjwUhjm]|njYkwk`lPffriZhnsEUbvw_[^wbxue_jsfpQUb[q[lPd{Yoxqjzilr_vnjdsrkh|wwcv|l~m_[}sjqaxY{^[wjbcmn~gimx|lb}ejzudzrkgxfuzhg{kjsniwoqmsdlkcphbxtkc~{icwiiueUdxnthrtltnotqn]_krtOlmuq^jdwlvv^rss~\slteuqZs~gp|{emratoqm{fn^txjdsmxxhvkaondlfwnzmn~rmptrk|zqXyVxcokokst`Tpza~rmatxyy{ercjr_}|yuqpqlpxtqXkg[nUy[wnpkzm`}kqwrauywb~}[eqhwriswylnlr{ohl~dkyr~mZyiajnx{fPkita[skrjwcouluY{webLn}]xdNVAxJWufW[|cun\w}Zryr\Q}dSpGXw[gCmTgiijh`[kQp`~OrSb|n\}kbukTe[tdn[ma]kVhhzYg{Zz{vcTNt^k`Skr`T_n^|t[\hZ[clxxtboil}eb[zrmuhelmaKcijpqdjXu_kt|exyc{cjz[[XknfbtdorwpacQgdlsp{~^ljy`enqdXmd^fdantTKiT`jupkvtxo`vjlwYhv{l}{`[i]u[{t~n}udl_lyaZ|^u|ss~b`ugfttuout~d|d{[rw\orocrptwmgmxqo^VgqjydwsegnmTfz`ssk|equwgeeomhvqtu{r`f_~yq|ifhUvlZf~sq~okh`lrqaspvO|ots~ieoehgYecwuh]lgmpcaYbnyinue^r{Vprbup_y\pr\lk_q{{hb|nu}alpSY~po^jdwUyYdzpVorva^Zp_\X[^_}\jdbk@Zo}lRuYbr]Zf\jpZ\aYb^Ra|qveodh\XoeXplbrvivn7ksoL[keVr^h^hQVkL]YPok`bWRRgZWr}WXhO^tM\eFZXi\S\7XrYI]wdTdSGXQV_wnfef}wU~~WWjdbZmp[jlnbfY{eTT`pn_Q=pcYqzexCj]wgbOeqXr]t{^sfpzuujnjLquincnpi]rdfknfys~xVxfn}ajun{he_wkdqBxbV_qKfeTm`pVni|sngzv__m{avhqmkXrnw~cpq{czpqc_dps`nw{hqyz{|svfonfanyvnyeosftmk{\n|v_ugVsff]stj{g|Slnxcyjvlnrqbvyka`||gehluuUdm{rtakzkutt}[\kee~{h}dhxme{cg\ibwYsZ|^UjWTzydiUbuwlwo}fnmsdPidwsktghai[Usvht~uu{Yv~dzlt|t}eozpcfgz^^RUprpxnsu}zsgtqg{lYiWbf_]txxzZk`}prohwdwiterk}vnzZtYhk_lg_y^|lynxX\F^tillngSgsci]{uui`cucV^huilLapab_nUgjmajbagskz|ypeovdfwr~jWvn`kekd{Mq|jhirmklgWrn]xXkNolw]~oppzljlicpr`ahklfSWg\smh`|rrrirzkhubnlnamdhwpk|gtxytolsfryizYyigfs}puirlw|nwdmkwt[~xwk{iibpbhfot~lgfarOnishrjd]o_lyz}]aqr[mUml{~]zfjebwJdaddicpss{rrovpZ}imx|m`r]mtlmznkie]`j{m^lZpt|XXhlmlVvlgyoqrp}]|]zimdwp}z_poqejiwcvrmtogexawLpmzmhZemtsi]|whczydqtyxqxvvobhuu}ustzymxe^p~`ti{ctum~vgr{qgwmdqv|sewrpnf}{lw\Y]ympp_wrhof}mefxungfrtnzmoormxWcpYoqqXmbnuzu]na\{rcnjlsY}|{kgeoc`|hoaueaj[c`eajfbku{unwfCymi|ginrgsTVjjvyiq}Sehf^lobqO{mlbic|fkyen]qmx\y{sujouhdkjddpqqeyhqmLrvmjjzvvW~jj_n{tz[^g}uv]q~yV_u}vu^mzdvpl~~ter{|r|jporxzkzdn{ni{rfjydlvofunm[lhxcojy|gfudn{igZccnn}w]ndotlhhbvlrnclF`Vkkosztkks|sYewdwky}_ivkh]hvg|}wej|umrjsbjagrS\|TvYbaadhklmtg_qh{\citvsfmsbjfgnczv\q^pdp_iupo`IfwtlciathlpgdlW}oesipuq{fxotZymxscnyun_psLsdo]~bald_ukvcjmaoodmfoqi{rXqh{pnfqvsv|bvlhol]r`qtnsz_lfskumwldsdo{ofxQ|pZqhrcsir{}svoiy{lzzidr{kWiwi}hix{twhh~d_hns|Zayyqgm[r^yjhslRtnvoymRodnwb[o||{p`}chu`d~zksZvtiZSnfvia|q\~jShvUbbVnxvrl|ivwijhubskxn`m_gti\}vvyizxjbwyxy|{o[|kogdhvmsijr`fxi^hpimpeV]ype}{bqvrkgrttdh`wsisuoiT\}w~~oo|wbqW{n^qmnvm_gee\Y~hrkjydujltlv[gysfyfiruyqlue{nghuzZfrawRg]tkmxjn[[nvmhrnskr~hxymn]rkqslttQoui[Tlgl~Zpy_jg{h`tl[Xfw|pmUrxaiT_Uz`itscSPeIwYmavmjb}oookx|oihnw`whX`imlsaYikrirWz~k^j~uuypjjt{{bgfbkjoe_dc`]x~rguhSshcsahqeQ}pjvab|Vg``kd_]apc]phjvucbk]Eym\^V_Our{R|emnnxijy`lv]i~k_utt{uh`knqpSemsPljmenrlkey`[[]vvk}LiqUrlMOpsDeslfimtmedgpngyi|whpnalZw[bq^gzfcJo[{nyxxXyi^s~bj]|lhrqafJuWsf]nYgxFrwtjwb_pc|~u_P}{Xao|lmfxrqv}s^rr`glevZerjhx^pjp}jyrct~noiywm_fod~r}rvsr^[opwiaL{qgqyunyy^tm}hnwyuo^{jpgjewo^{vmoglpzyu|xq[{t]]horRxtl`wbovhsulogdsl|xt{yxvhu`g{uio`cPoco^k^tjqTa`rga]sIot|tz`odxhmJOgLXzwyob|sxe}uZ[`hu{sry|pbmkgvdyZ|migy^rb_r`^h]_Of{qv~u_PefWawgcPk|c{n|pfl[\\lam}yr{ggOaymj{`aXsnnojewU~w{cubmw]tsYj^UdJbrjpgvddvkLb[psonfnsZyweyzoZdrm|detlzhjlimegxppy`r``xmpbz\ee`evhfchpoecm{qrxyZOyb{aK{_j~rztZip[Ym[Zvdzvq^\]oh^hywvsmpShlJXwamk~moyskrsstkmcnnlprfmppVOmw~rx}qtfmaY_gpioZsu|kf\[|nvh{un~oo}obsXvaWsgammrw_fw~isaR|ppd_daoich{mkmWu^eh{sYfv\f\o^~tjfehmuah{qh[fyr[u}^tkrarddl_q_~vioftm_uvpZj^juu`ylfi~pehgnr^aaanRekajfxwiXr]hIg`icwldokbD\a\mkTwnaknk{nq[gqpu{Uq~klYjigfh|cfgh{j^{rzxmoh]gsp`iqsutl`Uzyeoxjzkwn}sMmsjki|swqiaqvunujrgzmy\_bi}kcfjyquq|rexd{rga|yt~f{jev]czk}obYqV}fTryQjjysTpXq{svquVml}nyyc}Mp_xkqgYj}c[kvx`squ^Ew[gybnnowuv}yjuhtjiyuncOzy}ierx}~bvnjlqmdcr{tdrkw^q_mN~yrem}efmasqpJsezn~ceeqw|nilV}droiT\xrqp|~wsn{pcpmzjqq`w\kecwm|s_yhsq~z^]gcggggdwsnnjonx|c~{xcxgtilZg_j^qiiXkgkiQcfevdZctqmU~tdyswlcpuziwaqqitNdskvjm[tcx\a`w{~]{wwjvYp|cUnp\py}]lmyqhszsmtzZqssdih^c_beVjtd\bXy[remssjymkctsSyYSmq\adky|gltkguv~ ghjjo}et]y[r7inylVZ|qykeuw}t|mqeh\_uplVvjfeet}ucygwjuy}ckflpj_tt~ehvwwskRhono`nwmttg\[lmUU^}li`jPjvo~qhfwxwh{aqklSqv}kjb|Z}suqlubX^aZ|nvkojjov\_j{{wap[bulia_ziwvpfNqh}ekvohjfqdd[rluzruzNqhvnh~phnerWzYnzen|cmewccdkttfqraoytxooct~opv{]Xck{v`msrnrk||wxu|aj}on{~fs_o^uoch}spqg~_v`xhnOwmt]tut_^diuv|seq[ovyodwdgscrkf}t~^lhl~b[spq[}tobrRnbyx{~ondffi~jh\}YWur|bl|eggoktfm{llouxxfsnxm`urzkvouqlvtiehlp{gwu`cnxd}hvr|`mju{yotfqpvxzpk|fs{euejiwjb{jmfbNtoQpoe]~orejlm|rvxrt\ftnqpdniN]xs|ygostmr}f`q]rnfxlmqqi_r^osdnn{tt|xy]e[vlqWgmxtu~}wittd^fyy~^_`pems~cloprswdk`s[hmvWuXroocmm[zypsk]Slltqaw\kkrmfa^VukYhiut\zsktyxqnyyrmlafquaqhizyskzXrXkvtdouhxjtl|nrs]f{uzuteqk{kpfcpy`y{wur}igfwayveskwrufcdu~ooqpYnpn^wtm}av`piZ}wc~mkzopr|dul`kqis`s~nvq{jwhkpqzhwa}\~n~sdgvq{rrd~XcmohOx{iskdjuycke\rcjmmtirQssssw`fwjjognhcmqt~pjdkht[x\rresmWuor`llj\gwn}|bF`aiysjjzencwyZkjcqzv~fsyrquuxqg_mnep``bgxioxzXwdns[aqov\ijnus~qjkUvjmkxkfgrj_kwnf~~urQ|gyb]{cYqw}re}dslxaullmfm}kpx~prrrvb\qrtp}s]rkuoeVRlb}rgmJzma~a`tzxs{f~iggizxwr^vymi_XbrgtWmupiHq_af\oukphWuhcpnl]ud|x^Z`h~qmjcdniUznViqqzm^midiwo_xfpexnsaeo\jgItzhWxfjksPxx_sngi}Yc{rVrvpq]usbhvostlU`|sl}qjb\[\bi|qq^r~m\[br}VgqnI{ltaRtvomg[u~qfhm[tpgbiPjxilynT[bvdctj{tvkVka~fyk_gWmgxzkmplY`]|`hvjqidtje^iYsqrxiS~{nimtfEyiftnl\rr{]Ykhi^xqxdbtyclmyb}cYhqt`cbtqp]iulyiw{~Ozeuyeq\~oakwufplSczah{jnpjhbhng~^jmes|YwvyeeizeXxzvQcpsyxVqmiVpknfnd]sldk^iX]gzlf|lnipbdW{o^dwgbtlmhrUa{skmcdrdpstwe^xn]ecpl^wvlMgjab~cc~\jpof^_^o\]q~niqwudqllw}rrmw`mUsopqsfar}kiW_y`ymedr{fT^iw{folnx[hfqp`vxssxYa{niW{qfTnp[dZgY]r[`uYvklZ`x\ctptQ\~_didqykvodjwthyivgobdqmwnqfordpvwp[uylhu[XjorpveUncei_iXeQ]jzlr\`}fvTyzwMhy[{`sZnm\bjeXn_zg^jaqULWfdzo`{rmhas]qb|ZuooYnmxsYV]splzJydeubcC[^[xPnmXzi]|t^\ebqlxhuOue\dbrmv~m^~~k^]n}spwz\\ozS\_b^d`]]}XhdnR[xocpSmr}sTcdjImTeOpZUs_icynP\RsikfRif~[yevf_ehmtibatmphGmYygr]xp_t_|ox^[jionhsywe[[xl{ke~tf^vn}WnrmjdbocemefXvd\g:yXuiphp\mwrlbsVxqqwJ{^w_muitrcwti{ayylk{N|jw|d]nluhvn{|Zjuwwhtvxysz{RqowZ]cwqNfylnkq]h}vdz{Tbhk^a`^Y|]od[WjShuzuWxr`t[c`|m|vspij_kymj{dlaPdx{alpync}dylenfuwbn}tUkpm_zkiir`~izjcn}qd~~bzalpzuqupVcfj}tz`lmqkkkhtidl_y`dkogvgo}dgqfn~qjcmd}{prgsorigovsig\~cwhppizhllrZoss[jqr`{u~s~upugpxn_l{k^zqwY`bosqj\Vxfnno]Wm{esNxi\uZ^bpt]vbvk{x]d]N}s~pubsXpk]nllkqtkprdgy[hw_psh[mgWtmqWqchewjxpewtim}jurRngqh}rx[hkfjunv\eh{\emm\jwrs^zrwqqrjux~tkjdrphhl^yx`gcfcJ^ksaj^wXZYXyUdp[n^OvgxyUosvahq}|Xj]m|saYeaOgzewfxojpogh`tXl~uferywgWywj{rgqnfh}ssozlUndprzy~hxgRvaW}Qy[Xhri]h|GhkmygnZ^xvej~XcUmj_qd]ghoouy`aegvjPpcdymmg|fnkkpW^hUxhyjn|mvqh|qyh]q_woissnJf~cirnQiyfoqgup\UlhgyqgsteTo\tpkrphwWujtzwfmW\pkqprtoqKg~{rwbylsgtnZkrwSj|}elYem_~[m`fTqq`e]piyYnX|cuagjaX{{]`qpzjxuU^mokUuhjd\Tgg\wcywuane}rPknpoqz]n|`vkpmzvzakgOhppbilvo`xhmekilrxpvm~~^wwqwwmyd}llyfn_ujusqnqn~r[|bnfkmvhxd|Wb}rkru{mvwxrez|ntlYw{lomsu|lvnZ`lxgqiw`r|ikkuq_u}kslgoie[vrQycnyj]tbh{ph}qbkzowkotftzOqrqltZWY|`vozojr|zitu_ngcYYurkbqg~h`wrgLxmysiapYjln}ivVrwnwz_}hq|rPhoq}|[nyq{fb~yUii~Vfbwlcyct[c^do~ohqggf~qrioho|eocf}vktgzli]Jm}cbgsc\mraqjty\~qxzYa}snme^zj\tpzs|sl{p`t`XsypwdmduuammSppjhOxldt[zjyrogur~xsVty_m|[mdipzklfyfdhrowmgrp~z}~vmzrp|obnxyuflsrksqqxvuonzwot{tprzyns~bmg{jguqZm`[u|]obljtn~j`wmkwrvozidZxkqikkeniulv~i~hpn^\g|qe}}s[ipmvrd\sws{w}~etywi|skspnjnoos}~gl_ltzeobpdkzlZjZieeawqikdolzXu`ur}`hWsjnhpapt~dn[^W[zqtsdlyruaqc]iuvqpvl{ezf|l{r|f~wrtnjrj`ecjn||yufSqx|tvoscgxkmrjilwng|e}jei_qktsytliZun~rw{sjjndqfxnlfh{}zi{suvwoj|Q^iqKd}kyqi|qneiougoznxj}rqkgtzofYua~m}|ilbaw[^{\tfyspk`argeozr|wc[y~wqgVtn`vevzqkkYtqkk^kugmYdhxhkY}}lzkllcsieobvovqwngwYqhaubpjbb_hxxq|pTz\dnd{lqzt{^WYngl_uu{zguugjgeo{{yb|[vtm}sv}w{uhf`kltnlndZasejhxzyicttx~]kg|qidoxznimdhjhkh[dt]cnltdpwog[rrpmrqremUtSwsYgncttgtUfVidQzqzomesbfgeksmydvjh|Ih`socivUsatn{rl|jglhonripcyom`ueairklTfPynknl^nxzmqlvufcuhnx`rXlwim{Rzxome_rsksck^qqsdfva_as^jjoytW]s}nwln\mxgmQpfozYhnio|mqp]wmxug}ju`_yoikd\pln|sHZvlqc[kundoonTx}{wyvpsxauhu_qkqLbzaxlq}qzW{ovnrLc]~zdj`OkjjsjmznXci\Uzcupkeoakw|hd|x{fdjpeowwjbaSlw[bX}[yVdigwj{gjwj}XWb~ge^yqzOy]zchjutnb||eeczkwezyr]qssgoivuZig\r^Aokb{ilj[zkmWii_jcc]vyjdm`{oRNlsfmXqfasfrkjexcps{tZoigvfhiK}jtijgpqlzvpzrtsr_Yqg^yzkt`|u[[~v]uibqrhrVqz^_Um}`_{djdP|khlxvnXozfflu{urd^^zpikspk^fYQ^uwqbXf|{k]s|ljYgbtoPdnZuj}Lal\aq|llyGum}lfowsh}lrmsttTyqzetz[{han`]rk`dgr\oj\ajy][l|_gn~ZVxhts{fvt{vSqrXxrdLa_xeeux}vbctu]qosbmYo|rlucoei]oQg\rrjiuUxqnt]}]krigdaWpmzo~d_vkf|xlofzqs\|dsabP~p{Ik_ffk|py~lfszxlhW~h{w^ymuhzihngflvgqWqwjtlj{fS{svfnj|sykyl^c`kjkes}rortm`ue[upVSt=yh|yl^ka`|nbjvkuhygpq{vw`ouwos~iq][aIm\ny_s[ng^rkrgzwpogrr|iZziep}r_bflfxyde[vqcvxvpTsxu~}epphuowjvkbk~\hr^l}o|gTrzTjbIgitlzcpokyXr{dhwxFdj_{yYujroofukdcjpkllwcbUsj[ghov~rvt^[lgc}qnl{rvwZfvka}qdoucutsjri~~ksmrlt{iU\f`kTrWrtbbXkpQu`tgwgOmFUjwsxqSjQqkxzeplm~k}WqS|n^h\o]{szrzdZhexiocxb\Vclahgm~\k`Yl\qfqwpyctvp{mm[uylrv^Ux|g]egdyurtjjivp]i`ys~ons]nmjyg]vmluoqpt~ip\}v_gyjmxwqmoyxPw\o[ikkd_|mr^Wfim{f`nvnw]em}paWUkjlegnkjw^{Vpo^wwm_hdfIZldWirgdqgh{Uc^bxzcm^`l`Wmq~q{^rmtkrm^zjgs\kngk~LRbjd{pfc_tUncvhcpZybj_bdblnusZod`wUffj\ofIbijm{\^qjipfifpsvnmrqnmwOj{k[OlceyspXnhT{tpz{{r{b{|fluxtvzTz}{d{TUtr~rl~oceiru|tsviajp`pevvmzpaw{ipw~qjXgy`gyqrc\Zgvjuxjyo\osipqkltpfgey}wpsiv}]thvZw}`yyyvsni`~farmL|sqrfe[t{rjjujf`qoonif}aejxoggxjtod}xhqhq|pd|Comyellp~jhsl\kmwy^xsVawokvzljrwvl_qKrew|grflUc{qc~mh{tfiQdvgc^sioaek|b}\ktg|qanX^{rmّzqr\szsq}[p^smvlVe~qsuziFjVwdzrmoaicqk}iysyrikkgqz|dS]gfym^`wrbdvmv}qvnurmzt`r]q`nkjneXtegdu[bdxpna{{zoid}tq\wurc[xZj|lrpq{zqnbespr{plSaheibvbydpqbi|livjO~noilyvsxccr|ozsYuvlavw_~tekqbjnY]vJXwunhgmXYn^ob{swvmbb~i|szmdj~fthfure_gysol_s}ggppnrgWd{fthoizlىuskkx}lm[dccossojfjvb~uspm_vfhfyz`ut{kqxox}{twzs_lzi[srog^cov~_q^elenecun^qlo|hhe~mxmyheokmdty}kicxgl^ozlxYvdztqmui{tsOwv||mm^vafwfgctmnuineX{\ZrzW\dujlq]v|x}ketvhts{qnvs}k|mlmmce}f{XgzkfpsblfRwXxtXv|~hmwty]XkvceHgiX}|{ckwsjgv^awsnndn]prkznxxtyreqmktu{jsG|~{bYiyUUcjotmaxjMmelp[_jzgiphyr{pfhggvzTcU`{luPd}knui{ghtlY[^qrzWneoYs^s|xbjZdceok^ox^qy`ggbIjnvenwl`yWlWZujTZ`enieiq{acwft~v~cfrslieplltjrdfhuopamyah^ixugh}dquvXbou}tgJebZkUkbc`pWr{bhz~z\bv^i^Q^nlriyn\gP^oWzwcjsy~|qyZ]bXYkWmnY{|ply`b]oUybwVfnnkj``NUxZs`spxx|dlPn`gj{_vXgqfsgSpbhdWqlafrrmjdiLuuMZ_m`klc{dizttsyThdtpplvlkogey|pgfto_ydlxV~oesigxulmqThmZtuooitiOitlud|hlp~vjnyysimv|qxpmpe}{xzq{vliuffyswtqssiioo{^jmmilxwgps`otj_]izbqto|xxq}]ogfnvJuz}j]l]ku\Jyjsoqm~afnhXeyzd_Ucuqcjyjlrwflv{o{]u_ujm[sjd`\~mjdkirTv\toijlgnkusaXvjh\gi}`tTezu{omqseoblpj\suvij[smplsmljbxkfopwuva~_lYi`vs_]etvxr\\hvoulpcs|jboyz^ayp^x`x[qovymscw]zzofqnwQifj[oiyl~pu`ofwueiSkopoyT]mr^zdVpp`qgxw}mi}vh{eroslnrnruopv|fudliihgQwdxrV^nNecVvygyymQnaoemhtui}qcoogkxsuZmnqsjtvvvpl}aiX}orwhhkzbuoSnsoshxwzyeUg|v~}~i_lvjroupkaknn~bs^qpli~vb\x{`qvzy]jppLdljuWv|nU~R^opq`oer}l~mn_~^k_sm`tqgm^[akad~p`qzsgkW}bcqthUtpq\mU_p{r{fsiyliuqzZM`mjvrlskp~artqq~kptmzZ~d^b{ebnckQsXa[Hto}sqVg[j{~jd\[~gvwmyu\vwb`Sfkp_msHihjgbprrsY|abXJqdQi{ctXqnwiUks}csach^[xbtnUrsn`eqco_oewmekimrsp~rqchyaRqctsboxga|fN}Zgn~aZoTltYtX}s]`ukhehnZpz[}sp{cy|Wmomb^rlb[stYdsolwtxw~hv{x~ytsj`btavpwnm\{zgvzicpw~jehinppej_xcp|hyhmiU}kyrk}nu_opfhcZvs]mmvqgvqpwoophn|sv}ts`{^tvpo|jx_wr^x`rc{|_sex}aO_xpunRwoYcrkzp`kewjr~nwpqCxxr_mnevn\Sc]ihyyxRj}knrOQi`zfmxwxigwuuIYg~wt`}gYzX~b|ufbdVfrglis~|{tZ{i_sox}ighl}pnb`fmy|gsdpV_|kfCs^bjzXyoiboqTstxpztgqdw~russvShiWi^{j`je_}{{[vs{i}vyuq{fsmz\sr|ihsqr_rqwhokZasvxo_fmhvmnnijq|q{|vtwdnvQurfzn}ugdrb_T}wpjp|mXoxuvr}xb}psxwde|hy]YgdfpWyjbbtorygX_j{_gnbyw~wfgzvhaetpiytMwgxsz|}rnnlwxUrh`nZuZtb}alxdjqer}`WfbjnmjxcstY`|ecra~ikpyahaOfv^schiseodglzpfdxajhhfahc{bohe}kXhqlnhmogvqphkq{|j~jjmwnkd|o|wVezr{zrv|j|narivilucr~yei`WyXda_[qung[{WXsWhqdjlutrn~rqodSxoiyOpxwnknvswy{bzkw[gqr]rwx}}}~ljksi]onfsv]coX|~mpkslzoksmq[pa}^fgssmkEYeoih|yxpzjjw[xluk^ptmchremTb\hm|O_bcz]cflyqunkqqfp^x\x]iczeYiZo|s|hbetkr\aij^so|ZH|mdcXfsspetsxmWm[oWkI|iw`dWcQetyxXWmuun^vwRXlcyqb\i}ymaryuUfwjph|q_|ofkjVxc\xkZyzncbrqrrRoqhyry~z{p|jsxst|`ymzjdo]q~lkzrkpjpmvpymmhgfvpovygv{uklzjeomd~m]dl[onnpvtsbqnnrfln{|vnsj{wvxtk[ycPmz}cvx~o|Xplufqabpz}m~ludj~~ltgmwctyTs]WnprkNddqzp~ibu\kyzmtaxggfpwrtp~[jojqslnrvv_}rutm{trksvb]hwv\vnyz`f}hupxqnjaptsw{o}t|td{tXj~vj}fpqeqml{vd|w~avclyoo~t~`[osdpilgl_korj`_gikxh`zj|z|rXflp~~Yrwj\ewpfanjmwh`o^zqqlZ_cc~rwvlzpqsknt^jqa~Sxhusuv^qg\fzX|urqhpstjjnfpjk[YagawnseZlabnAv^[t}lzppd^pgm`dfyz}xqkpmtv[eq``yzSh[hnq|ofyLvdg{rd`rkylzvfmXpiNpoqi[kq}lagnjyloui^kjracaahamxtrsdqbp~qvqycdulghprlk{}s}blmdmp{\ekais]ek^c^o{tem`mW}PYuOjysjxm~a_slmmcs~jhnw{xtrwW}iad{op{bgwpygosa{}zistqt[sfwgdwbg~sd}qk}qpXpndojjtWlikvs~s{pliz^cmebqr\eooeosnyugkgj~qXmepvhts_vaqr_rmog[mm^dsgl}ja}pU|rw|lfteoc[amsmz]ujke~ts}yP`Yvr|glppicdyksPZkiojjkoW|fc|phixkdt`oli^{|smtqn_pv^piqqqmm}n\ccrrbacTnhynOxYqZofmixN{rre|Tkrwwack{}jSgw~x{lqhc{{{bzeu{sWsWcL]ju~lzr]up]dlvsazcxWxoSkamShjza^jpy|ocsbqrnyt$f_wddvo[^n{wvt|Tjwj|m`Tbssjn]y~ykhw^nbslh}_rxyitqrvsgscvoqwy}rUcwql}xp`pdqisoz}mu|nZr~rvvxuboskpyl}b~pjrpdgmqjr|y`mip{ftqty}lus~dqwkmekkdnbxncmvenrcucwftj|gqjzj\r~fr`egvw|hjdziiqkmsn{szKjiusgylpbtxpyiZ]zdjoVS{dV]u|l~g^fMdfc~Z]fm^lyx}q\Sbuj{P`dwu^k~bcvkZjqv_ygbS{qmy`\t^pqkebbx_|Xc_wPc]uqVi_fgomcqfg{kmlXUqv]}ljmulag{hMoqK]XkaFrk^ha]Mu}^qlg^|die\}x}fs}UrerTvml~~T]wrjpq]^w}`ffusx|nfs|[{Xas^pojzgtngz_d{ousmncSgw[lkk`io=pxsnsRntsrir]n~nkg^m[YstwefvYehnhZqrm||_e|g~hXm|irveuiYu{gigyzbZkw]q_mKyl~kWdeeuqt~sv_qs_lzbwywi|]oufgrlNqvbyeozzxzuu`xme{qmgqd[cw_e}o}nxwukywsvwrypdfdhn|yixru}_zsm{qnnrroueglmwje`ryqmWvpkjuir|tbplonf\|fktydsukYtdortkfzr^uqo~[g|o}s]rgmwgkns_cdocz~kde`kpYtgzYxnq`|j_kts{uifd|Y`vpcdwjVtikvUq^_ihhoypr`Zf{tx{vpyqsfw|{f}V}ylutcg^iuts|akvmtuka|q{qvbrkjqjUb{hyevisZwzhcuRdzulg_xturfwylQVx`SgTij]c\hij[ruxuf_amcmn`Yy]`cg\\jv}qltmkkct{`yZnwge|qtVf`vjlqfofhvvybjtYww`aHpxtoznndjvmnruq_tXj`hzqcd_frYt[pdXiihhtfgvzr]iiqbzjvvt{X~hl`sbzaz|x|ef^qffnxkzeqclnZ{dvgYgeYwlmzlgjch_lcdlf}}k{n]xbw}iubmcmdyQvjsdydmYuzjnsy]vqX\gllvf^hku~`tyud~fcee]hn]athgkiaioidzTdj~nuacytjlf\[|nhqzn^metlWmkoyrvj`adfgkqzi}kupmvZY_~g{wgjakNN~zhq`pt\strWYco~w[~nie[jrkdmudgh^Rmke`Zhvo{}owRcrlvzgfU{oa\fpYUpryptbakcKu~fuwWw\nk^ktiftfkL`wceugXe|cY\`9RlvsjbaoekoR\}p^[eoyvwrqjkYfplviicPsta|lgxhax~wnkfokj{eipxm?m|urwsipjtwrnmrfk}wufhrXo}owjg]]yjnxkpkm}xqupql_eb}`snYmOwt]mZhpnlhuZgnjrjuqsgrqoumnmtanypkuplh{y]omknqdn}nkfravcridlfWcos]dXpo[nbYs`fkFxcnqflhc_ol[q[ibm{qv`tgakkhjryei{xiVgzlWYztU_ntqbwYxrf|houimbUhjcoas|Ucdwf^bY|xg{}~siye[PQxr^w|p[fpfTrTkrRck_mvdtp=\ii\q|lmiutnq]zlO^jtn{qsbg}~okuxZlb}dumc{yzpicHl|k^t{{plhepuhicez\mdweghorakr_a[j]ti|Yml[eac_}qn{z`^yi`uesmnToqezonifp^ubej}pas\|d^immnlatztwkxkpoylrqmgk{~qq}imjco\elveehtglindr=s`uKymzlmqhjhUi|riolsNdW`WxvSXpcfO_qrWa\kl]mpjipR{Sg`idm}tQ\uvVm_[`wfdjnbTnYq|Xf`\oQQ}y^b^OpXpU]Oi]~u^|cefYf}UbgTIlZTcVYhbRQrbml`swqmeRg_q`zUi[rklt_^rjcJ[`gvzrwPi~pBg`^hMdcjg\zdykpqjkUcpdgu]wxQ\hbm`kqjsu}~lvzs}qxsyrdes|euhjqgwx\i{`_c\m~q`iz\rswdbxhgkkyVU|kcfmbbmbvqft_fXzlyrfjj~jngZRSr{~|ev^|dbukkRykciill[djsw_wi\tekk_[i|y\b|rzqto}fqsriwtg~otzt}io}hunjoupytwtrj|kqvxmyolnyvlml_ljxlarrjulttbhoqsbunmg{ygrn{~bwroc{jrdj^io}ivvrrqtvkhsvf}{pgkhnunlqtVhfj{hekn}rxkfpvfcktulwglp{cv{oqs]oemyegjf{tnlf`ghvprewy_spr[l{uktveumkzx[x~okxytxrxps~ueY]xrznxk_zbmsrn}tarh}rblwnj}pcm}twfgzu~hiyuyxbueuvql}ZvwUuxvhmyxlVwvyc{tntznx]\lkfrou~tivuwrmlmkkg\js|{dbwy}nsjkmneoxmzpcx}rhj{hiarlfppjxxjrxttjes}igxsj~qu{m{rgou|}okookki^qutqq~~cmf}f{zo_om|fsdttcrnixrp_bef}|lydslmlryihontz{ltpvz``[jlnim[nesjsqzq{inps_thmyjbqnxuj`rknxls\vjrst{zqVmnplryegsxm|qdozyvtw`xrp{lvqoqtljmynovrwqngjuyqn~erin~w|md{gqiripi_}n{d|`udwy_icr}samh{suyhhsfgu|mtkbk|sj{ax|qn|qpuqzjjqysxkljrgdnvuywqalscymcrmyirmk|}f}tevpaywvpu|ludm~suvhf{luyfgulhtmuweeskdkiyXllevtkjpebqopupq|]prx{ohujtr~jwlhewprr`olZ{rqnjgmroypojf}T_xtz_izvovunqYebsljw]lqqdmeuzu{rvhf|viqepxpyurgfimvrimdiddkscWvfbswwwzVvmlhlgunZk|ekakvquVbrirskrtcm^ul\ejecbequythpj_sfhpj{qT}{hsjxzvnaorch`{vccvggxkenmuvia`}cf~jq|w_rzqw[a|djoavljop~{~obUvvciayqr[cnarTnstcakwfsnnmyctflg_}_cpswjljl[svu}ypiykmUbdoopqyYmYbgiv|^t|vnxiu`by|quinu~gt{vjifotqap~lvkzvihmkuxqt~pbqf{nvsyqmoppih}llujdszritkluwsyot}fsiee_phqi|cstsrp}l}qdypmnngtqnhtlmxrehm~}}pkrlyrju_|_goqgtznoq_yhqibsnesyobefvnwlrwosc8ytvkksrzouwb|v^jenyl|K{llmeevi{ohtstkdvnwvegd{o^uouezwyhlxsqzirwmtf|q^wjiysktmuoq`~~v~waVx|zr}wrfooxeyj`ev~tl}{s]foupqw`c{clw~lkqdsppmq]bscRq\~s{~loppvwnbw{y\zpyu|h}qspsbrbjsjoobtTzk\|mfximw_{j^wqr^cb{trnr[jtginz}t~u`xrhuxindykkqq~uwga|j~ozuyew{hkrltygjqsy[clyoduwirmjmapm_nvovcxxkxa~bnj`rtuv|Tumkhsrvs|xetrssXhhyes^g{jww_izni}cnenpvvj\heg|Qvjqrsssqtqv~z}zm{qdahxvzyipvit~fpiujqXeklOzxmzykohjUsoywqpnwsTw{pqdxtjj~pkvot`x{w{q]zs{thbf}wjte~m\tqZaltc^r`zyqi{s|bjrq`dfoaaqeepskwn{a\{U~dY`wajy|[[kxlaRLjllEqilj~oijpqmdHUxwghinY>pg_\mMliVcvl[i\zgptDtzZjt}BYmxuZfO^^WVec^[qZadngj`lPy\fwirngd{\u~x~cdegX\c`tdwkmmcZhlakvqb__gj{Jknfn^c|ishxshxumtr_isvamyhivhom}qzovgkotqfhgwjqemhkiorskcmixomunru_zfl~nfnpdzcdkukdumtmxxl|irdc_Ztix|hmgstq{jo[tffuudhvuxmwyehhqlymvnZuzy|cxhpuq^sesv{~b||strksnfcgymntxzomwueyq~zhuvydpkXhmn|iwhdtxwwtjskrdqb`u}adsjtszjqswkc~gfktrslw|hngrmoosotiqYfom|ns|j~uY}rlfinaeiitxmvmaujqzupbeufwoipk^]eqhrnamuZ{zzhjvoneifjyiu}kr_iyugkb`yqnik\ezzlsgzp~kx~o|c}nszcj|afjqfXi^ceqf\myuvirnq}retkxscceJijgtkmiiwbrnwww{{yxsww{wu^z]snsffrnk_hrjiqeupxn]Uvxebcgoqzjemqf\~nuvmwhdkc]jkzwyspesmen|dmupoqfkdlkmqlylnntzrp}tukgf~x\hjuononlmlroe`jowtiysrq~zg{zq`\zjnj}xgmnmnizlssk|fjuoz`jtqiwywk{vcupmpwm}mhirnrm^yrumsphspryzenimybhjvdljwmxo]dbdblfgtoksnoyomyhgcu_hokpsud\sivracpnrdiuspxlpc|tw_j~dpuhmynleyfppszw}jxceofk]rnyuorgawpryzq{nve\yi{ogg}kbvh{Uzmirqinud|io}pcv{`}pwtf{byyk}nupvkkvsptzmsSvfu~_u|gjpxtbng{pstbmtpnqnli{v`kqqvvqv{uggqifwytolo}owlmjhplunmgyhkmrlfi{cl[jzneu{govdls{nk^wu^jrvr\_sn]tnatfhuim^jpox|legre[gpauokmccVqif`m}oj[wr}h\k~vdhpZaj`^^lmcRjeglrqhvpvhlZhg}vrlq\vsk\^myiidlrkrgzt{ela}{qZrxxapsuzwzga}svjome|v~`ghv{ihlWY`po\\aZjhukmxcgkmzsagv~ows}rohnjhmyjxigl{zpshebsmnymi\qro{_isyjzvsl}xzym\sqyqpyvvkrthn}xcfoncqpspqkqe{cpjnkzqonk^vnj~y{pec~hhlrytZsyt{dfeklehugsmgnjdnlryhhm{mxjkyxs}ntnjlmqlVopzjp{uTsoh`icq~yw}ieumizednr{nzaaX}ghmukktoprpvz_zji{zxiw`fjiqsmkpXnb{qdwedi|njp^nsjv}oap|fyxnhjnlzclWfgxgxsy{bof}wnugurqsyztynojrwdvvrgfuoxmql_lwnZvdziygljkflfzx|bllhrssiwevn[tziqbippafd_|uyje`ndv\uink{`o_wonw}t\jqmatk{||l_jof{k{`qg{vrja[zqui{c|\kue_nfqournhwn_xxgkjtp\ts|lyrjefziaxneqhkmdZ{jsmzvrtphjfbifnxjqtumpjtnvqmuWhxh|}mnwfkwhxzq}drcoo{m[skdhppvvvlsippwxsmnkihwkjh{qhl{lswemrgcj{}vzomnndtn|[uvnjjlysgk^^}qiecpourv}wlkuukjodploqorotolqnffnwkcovpuakgtrmmdvvq~qsgvrXlksfmmilznzmqylunz^~bgscg|xsmfyvtnzhdxbnzsxnqvbgqqboaqjbg|vhpnkwo~Whuh{hkzlxi|v{{dysnoeehk_vqzroe~om~jbyhwhprpuq}qpzYhpyigw}lwcgYjihtzpybdtrqjbpppgtsf[ggmgpmhv{guzlVtolqnrmotc}w{ouymvhhtvkmrZrreklm{pegmeta~lmmkdpdynamapwpovrogyfpldrhqmkw]tudrmb}cxirpxo{anehuyjqj{aqpnx{myz{tysefbkvp}smhXhoendbhftepsgisrojhuvgrz{}r|sqiqrhtpoyysvsl|jmwygk_s{wrwt[jsxhemijjs\dfbbyfmxfsjlmmxir|}Ttrlgftqolvhxlowruj}r\nlwu^pchhqsuqrbuf}rn_pnl}gq}dslthvo{}g_Xvhwsxgdg{whgovemdse{dg[ff{dqsqldubvzvYmsfolxxlaiox`r{we{su_v|tkgrjg]lyk}p~n^^{ozx`|{yjrivkbvgkcqseYsyol|kmwjprzcrgh|sjy{isr~rplywx{myjrsvtXo|lin}mrlptqwnvzqw[bkbXpph}wcylwlxfxwhhVivtyokoonl{mrzvw^vhhvebzjzook|pfxmsqspn_~vh|wggjq}{lzlqfinzrnmuecyymf|p`qz~umqefqsknvt{leqy{ygnmZsoxirxixvctglu|qxngomqyg]e~k}uxwrtyqtrxmvevnjnoxgn~phmz|pxq{ukpcubcie~|^wl|prprvhqmauoyszxfoan~_ckvqmjhgoth]gito{nufXzRqwfzhptvrwqkmttwgn~cppb{~up{kxks|xtzzw|pt{xupsxpy^unr|}xzkq{n_v|ox|}uwrs{vvx{ntmvifqkwux}zZby|n}{m}phxzhn~fWpaz{ty|}`j{rwovxquvuyu|izvm{mvih}kvtmv{rp|krwu~n|jowffwdsna~yVpg|zy_me|mksxxl|jxcrd}ud_|jhx}jxqylkzuwpnwrn}wxmde~kzbc{`}Spyr_uluvk{ogzz_czxt{vmtrninfqhw^tleyvpntkl^tuouitpgyiwl_{q|oqytypYgks|cgjdtznpwxk{kedmq]couoqnnYms]`fc[zQtrCPuztvWpxmjqz`ggqusjeojiuwg\nWqkbbnchmx^hjWbwekmje{\xkscireuSjjWk\cidbvbx]eaqUjjxZ{kmuavdYbcewd_b]rcZXYm`sreOfdmW^kimkf\eivIty\t_`mx\nbhsf]aJ|kpbihrmzqeyMyi{ktkdc~gl\flhwjqmNccmks~_wyChwdxgvbo\ihnkaoiaijdyonoa`ty}Wjqlm_~cssonaYovbl~p~re^opjmirXnowuc_Wlh~lfwpjtivpq_TShqqzceW_bZxuv]xmrjsQfhec}`aklsl\`cvgmxmfvPqukjdasn`hokTlnkdlocb|pvcpcjrqlrqrk{lelb|v{zagrqsolmp`k[gpbu]itvxjwlzu{grhnsrhzissavdpnrrunrhomxpq`k\|rbqtkttngyjtenyixiwh[[s`wuf`tortcomsXad{i_~kzpsu|pdqap~bmr{kyo[xo}er{semzn}g|ssensiya}no{kkcqmqxtktrwtlswjnkyhk|fdruyqaouikst{`tiofbh~txbUqhhwshgrrhotylxydtng{{tvrzmxilafpemuj_lqkbifjbui~srgjpnqftxghowwrjnjqvpkrrromd~kgsxnk}hanxrn{kppzd\xnpypeucpkocrjwui]oitn\Wdcy\p_weAi_Utu{`u`B\ZjnufoUgOlqzzqww}ujVfef_nozDPv[xReU~Xp^ogddsSuzoAzp}~M_b|n_`vahWkScmqssukV}pp|lczx|lhUit\p\MnvaqU]s~kI}iPSWs@{mm[aQje{ckpwu}pe]oggkwrwcct}rWm{hq]gzoo}|\khxTcxyVlos`xaf[jfktUhqrqx{^z_xeexqhsuor}n~nctm_pYhlnmcrwnsnlppjlrl~ughnww_l^mbhjTcguctfkG~jk{cvdal\{uh[xrcnytqwuipwan`odX_|jvckXt{_{Z`nszw|oktmnqjx|pnwonqr_dq{wiz_i}}swqxhxssknwss~u~P|}w~jiyrplYilco|kq]nyjgxto]stgoimndvi}urlehjm|{jpu[zjmsfztfx]yvi{|yPcjj~f~sr^mUfxy}zq\usbmz|p~tns}zwkj^Yngipvf{u`qsg`j|q}gikxnmivlkmloxq}gtmv\^fet^cpsva`hul^dsYv|zmjl|sqvbzwtl[xpgot_lplrekhlldruyiagkxulruvrjspfqzrnmftZrkq~wqantskej}yxsvtrqisoshvl}bptgzvslnlXdgj|kxmk~mprpv{{exkvp[~~yashqXjpyhwleriqjihzhdsiqecdipikvo{pntn}prwidzdjkjhntvit~dmswktm_okvcgbpxpihdrdwxdnrniy|fz`}nijql|prk{t^kiusorhyotr{rjymjcezs_`ylpmu_nndpkzsnjkh{hjpscmjt{zkqpp\fuwtpwswxnrt~xbwro~us~uj{punvun|{orlesxzvwwlowkmpkr|umwlsjyojl~nwauvqvqmzxjo}cpjzluasbzivull^jmwu{li|mtucnxxdtm~lvsq}z_^zyo~zvnzyvnnbxlunk[eeumqcixle||pnewuomft}\q]`poj\wjhfvRlvximqokr{mr}o]mkm~qxt_wnpXfx}jrqcqgejsupcvmU{rhPXssVolcdb[euhqd~jhrslhXtredsjgputnlcqg|wgmstlvjhflt~n{xipu}n}uslhfr_igpr_ifqo{e`{krs`|k|wtjW||hqirwm[gkpiw}tx]}ripwW_nxugsv~iijq|tum|tvknuv{ksvtnrfqvds~Z[cfiqxiiazgjk[lg`un|s|bvsyq[cd~ssmbgbojpztx^aylr|izwtp\vjcqyjy}mlqpvtv|iyhn}i~YiihfirrxpeqkvxsvjxbrY`xatinykl}xmsxvugtaufqhkqqtwmv_snzf~hnhrwxlYurvpnh}{ks\mnmf}xfpSyolhfsp|nub`prlwZtulflql~]x|buxbm~uxgmnv`{ovzxgm~xfzgej^epol{ylurw{kym\llvsvh}pi{{cq_cq^pitn]myluvs}`hqyiowbflhonoovgxtrxd{x_j|leu[wdnd~emhv\lvufzchcpkeywqruyunxi^|tjvsirhiepoejwzypihiZejpm^ig}}cxzv}naqijnpuz|haunxan|prxyrv_fdhespyck{bcinejvcrrgjjyvxufqotkhVwmlok|shrfgukoyjvpw}|viwr^vo|wqsudwwdizZnafxsmp{~}hu{^qofrhsslvzqmmriprfv~a{mtgpm~d}azvvqkqtjqq{v{zqrgdo{`pvvfl|rpuastvurirpqzyxmvqqksszjlozs|rx|wm|o}zrpzdshv{wfqsyj{grsislsuuntwzlzhq}rrqxu_ytpjbnsrfhlmatjotxiegvkifnf|al^spyw~tvxnwnntxb]Zwwvmhfhwlc}zstdksqnwlgasr[vonn{cmhepwwnpsqulT`khm{wk`soo{Tosoztm[ogrphxcchci`sv~|chkeeZpjiq{iYjmxqmqksj}sXorq|ozi]sTvc_qosqo|f|[ozr[s`hprVibiyw}plblYbw|mmwfqer\xiokgka|u~qdrz}p_cwzM~n~jTgjx}zjtjkxsbnp[vvg_`ljfeykttblsswq|fkcnztyrhq`mxsozWii`hop`__kmglWskbmnq{uusu_csJ^y~Yfvi\}bwk`te^cojjrUkrpVjybdwa}rrj`qgomouz{^uollt[m~jrs}ebe}ot^pkjkx\psfnmzfmm\ancWvcmjxmxozsntuOnf{rhjm\dqh|jm]ty}nsiZhh~mcumi{kwkX~wj}vjiomYmlfUjrz}swX_vjimu{bv`mjpostnbfsjYxj|ikgeo{h`{~zfhajuhpv[yp`j`hwdgsomiYyeq{mrfjnwablprgbuup{tr^}`\g{wmynkzhzqmlpydkiiriqjrowxnnpmmiqyPswjofujvwk{iqxln|eoi{soez`Xnwj`g{ftuitsejjipt[_^jjhnsMZ|xWpzknyhmwwt[qeec\[fzbllle`l\`d|shqornglj{igmx`~j{als\g\a|fbiv]wYpukkpqgdJgXio\Olp`g}pTj}Wx^mPzefjsqYlrpgk|geur|byg`btsoubipjges{t_vhxxclmt~iekiLviphifdqvsuuZprg~joiuvbu}w_skfsOoyzr}nksgzf}ho|jptwnzkZtfn\jlmammnhum`wmrt{my|ixwno|okkcsuztq~k^Yu{pkojzj\eugXYuktr|tusxxxz`ezpk^funhhmi~uniuoki|{shfe~{sfsp`kjlpovthxjbuv~xxiVpqwfh~xqix`{lnhz`wkfqe[p[unpmbtmgovuZnc_vsylWqjoudsawr{ngbokrfkz{\abslctx{]~j~isjylSnbqmosaVfrljppqwrahwgfspkotvkgvohwfvp{hqquvy|{mtilyoilfq]rkXw{sol{{~hjpgezikZnovkjhpg|m[uS\vsloroglrmstirgj^adcabvayxwYjjwyznw]pmhorptyZikhirbngmfa_|sfZqjdyuhczkrm{fquk~wpnklxntprrkophqm{wqm[otesfptie{ifdrmwfnqckcrdfaykyyolvwec|ulsahvjinzwhnjYpnniudm}smntnucnmsk{ozc]}v}sel^ovlks^ll}a|gksdtyolpxhuxomjn|wpwooof~kotwjwYthvorrqofh~nv{`htnoxrdoU}xmh{prziljnptxykt{qk}z}sdtn^lrgvojhqsxifp|migynoasessa|umtx|qrolhvby{mi|epwd^fuirZuutyqymwodsytihklvvveuoug`{nooi]bmsnluz`zxrpjzgdjuntkyr|kWt[yy{no~ob}equondmxiwqgmuahim{gu_tul{q|ljrqfyipeirmu{k^poqqvv~agjg_njl{lx{lysudvmoffvkqxoclxyljywtuoybhrdxvry\npk_l~{snbirklZimtsrwiqrvvil_q^}lurqlvqqoi{rcyyg{|wopshdkpnbwfge}pppmdnqufyukvplnaqtapgwfrmomlu`bj^yx~wpl`fe_ygn}pczhayztfti`j~lo|ldmk{skuvtsofTngpnnU_r[mnish{rtwwxrhk{tcvlmnxw}\gfok|Tf~ri|djwmqkrpr~koqqrvqmj^sb\QjgMfsmppd`kfxkurXhssafvdyZhujrkfh_ksiYltgXm|}qrzg}bpfhgwTmR}}nkkr^~}ciuosiauphffu]lsvinfk}eu|k}qmo`kurl{urnj~rzpzqtn\~mtrq~my~rptxj}lhrtxbt~fvpzwmsy{tqnepwr\qvv_y~npsZklmijmxq^|jw^xwzrq_matpoj|sz]fullb|jkvg|wwfefz|_lol}nhg|w{}qm{kjmg~yutnrtlxyy|raq{nupsvcwhnikywrmjze^pobhzjdquxogc{rstqrnpmxwjxdxvri}ysjmul{tWh|phsgpmlnsnrrw{qbr{mvhxxjgsg}x}tux`xq^gbfprgfrnkwsa`oowmulniu[l}vfouujdowkhZugrjq^jwpfvhozpfp{pvwnonivlkjhynoi~nrmv}}l}wfzznsyup}r^tk|vi}rhwykul\flmoojhcghj}~srkezqdqmhc}t_xehhw`tgwouqspmkmqslp}smukemgooWrtwjv}fzkyhtvjpmywk|yqopvm}g`lPetnp]qep\wmkjjXsu]diohpusbqkjv|_gzfzpp{myhvzbsxdptr}sulgopc~}qvobx~hovrutuwnyquwyeubxgwwZhy|uqqshyk}mftpv|qnlw{auo{uztk{jv{josllk_\jvt_oyeUro{z~kyphclwxjszuprjxwlwtXjvwsmkmevqpgu~ppnokwxn}}{`jti|pw|ipvnoi{xitpp\potqytjqg|r}|sgvjqkpqniti|vyqnaqr^kktj~llypkoeqfvtqlxjyanYurvsonbrgviupkprzwqvwekcz{}}ejotl{vfnqpqfgoqv{|fvhukrjuxvgxnknuzj_ohoukgljokdvzd_|qqbyczs{w|mxz~cimdeqocb^ufnspdqvezf}fqqc~jugtlljg]inoomuorcsnlRoixvzrkwzid`amYmbcsxzjivpk}xvkfxrYDSjzojmv{o]zxQiW^ykmz]|}sy~t_fkpRntyxlorVkzsuNekdzn{qforpo}eomzcvvk]h`pfsvughmdjhdfucyooomXfrutmolm|ruzucycgeZf_onorelmztdXaudqrcn^mf{~vskzfakukyuxdmqxloPa}ucxtptmp}gZpajgfhfg~oO~dlsZhqmt|roXYgngpvwjXRfhoT_zqeue`}kyt~[yuykbvplslprtctqgzgl~gumhumarqzautjisluqipi_ej|mp}Ymzrmnunjpupitvj}`itugn|~tdwyjzvnlhqtmockdc\ux]u_vuh~fom{kxshixvee{fVird{nyg_olqfrq{ova|y|ynpejjz{}vrro|kqzmgetttiunuwjm[ql{iqlfrj}ox\ndyskk_bhjyteIt^SpstzamewjgirhwovixS}supWp^kd}vsbc\jl``n~hsbxioLi~q|Pbhklzuixnisdepdl]nl[~{qupyhpxovws_b|exfqsrjk]^^dhmP`aw{ycmgot{aoulZsyfn]mlgzxfhzs`kxzvtunmZuqr{quxzuoqhn{bytbtyjyivk|udrtpguuu||iqjxkfhsofpy[eoy{us}sjokqlig}jjxhkkpvdpohkxttvxq~zjzjxzl|uxe]aeiijxopa{pv|qjfjrsunjdm{tspctPwwqxukpvqp~{li}fnmsl{jjk|~lnvfnrr~orrnm_{qnxthuphsrrwvzsnyjyw}wog}nylYihl\mpdkj{pq{yqmvql{oyeilyuss{cntqym{mcdavn|pZtrfs}lngmhilolfjp{m|verxg|umlpoplunxcjpizt{prpmrtisgyrjqgius{ke~lugixgp{odcnwiq~vcl`mwss~vk~{whpn{ybnopqflkwgqvqhh}c[{lv_{rj}Wsgtmx|~giydwxhlctxik{rb~rkebqciwijZxisdooa|Yrvyrst^mb{zy~olvT~}vxd|xlphcfteqqx~snv{k{vzlftxpxopzsgu\{}}fmmmrx}max{xtt{om{irtzgqxdmvx{oxp\rhx{Ywjrmy[uzpqjjesyuo{amm`hp{g{p{ly{ji[yltehqzqdmj|rxjkxvpf{mnrqplqomynx}`ho{ljwoj}ppsf^~fhd{ctkxodqv~psxvln\uoqxknbrmvjrqg^go}pwh\m^o~j~}dtmhjm`s~ohwzbrl~Vpqkrggp~\lhh}kicnwerWb}sx\owzt|]pPrgj~e^UjkrWgpzuhsgo_qs~neogplZ{xnojjsgcsfc{Zr`waipywtvzfmZcysgsdexl{kotj~z^ev{f{SzqtVghrqmskul}[]kih}owjjjb_|fnagfuYmd~ibrqhopksnrpkvVyki_mkhpixtmtwrof`shlsg_pvxbjvhjzlhsfwlpfiez{{fhaqzrzzopkorthi]lgvwzu]xjemrqnhmv_pvpvqruxbljiopoxlidsm}okXev{hqstr|naostkhxkllmszxnwj{yhcvjlf`no`nk~seogl^yp^vuugmQjtkq_zvs{uixol{ronlaqU}ivn[agvpuqnoomqvwlopge]y}owwcofsrd{upyipwnsojbkqunqgbzfolgxlitk}gtx{{wkp}kbajqjrupgkmij{zp\prihllsnyq{miwu]znvrpu}|annyyqurk~yl^tzuh{|oalpexnkwrd|sXqvojnh~kp]qmiuimgnqg_}pw]kkyrkSzfkzxmdkwqevizqqrwryfsboeqXqan`oruphr}lk}sgbvjo{st\g|ovncoeiYnyu`ornlol`vigrc||qfgbmvpsov{l{Yxug^pkoaul`dkxcn]vtylxpnjfmng~e{wpjux_oldqpnnsinkvltwrlho|s]jefjk}mquffg~drjfprlp^Vlctwjyhqhnnp|jnrqerq`qupbnwi~xvgelbyitruqruhezhfwidmnmowrmuy`xrjwksoe`shtwhuraq~mviul}vdm~is}x{pgun^^`c}ovvjtk\}w~k]Xvyyrk_jb`fgjggs_cfonQgbmn~fovm_czMxsyvfgmyxw`wdhqixSkvulbwcipazdnlqwXo~{wo}V~g]xrhnjwjhfmkwvyqpc{g~`Ylwt]nrVilr|uY^pe^{i~lgkwq`ut|knhggwjbji~vxhjkrjolzwhkiwwz}uclp\vp~\jxoalwRpovjngengos~sookccuww^ejehw~q~uhjqwnpmui|~plmjxqyrsgyodq|}xvvmsouxomidwixwZu{dslpnjkwrwkto}k{}m{iuxxlniaiz||e`yxpystpzjulojjil}wkhnvnprdlru_o~shqe|~ujfrtrmij_rYgkjyplklmkt]giiginyg`vlaq|mrfW\xgta|uw^jhfxxgrf]`mkobzk|apk]ocfkhfVljjojlsf_tkptmksxg]}ulujolpv~seZtdqm_soxpxpvbajnm|{uku}e~mboi{yyqpzltqkqcy|qem}nqqwftYg{mvcsljrri_o}lW~qfevmi_nll{jjnjk`munbw{]tvxdxaa{qoxn~caShlq[eumi}munpczvuwe`T\r}kxyvgjchhl[aqlqc]q~el]qpslv}yipxruj}zwprfxmmohog|ukajqlbedhtptp[dqi`lkrm~uelqqhvq]@tu{Xr}q]tkbf~~jihfgndqrldirmhxmqqmtyrzm\oZupvxdRkzosyfwt~ivcrjzubeto~l\]nllig`rgkgznvbtuqnkvndisgpgxjg`ojrnm]|bxrtUyuvdvXdnkwmfKush`hvotazn~ktliqsrf\~ix~tlph\w`qk|qqsbKmrvvrW}[fxpc}ieZebpjlcrvos~yre{bpnptvuowntjg~q|i}cgrbrxgottleuqqmjlhzetlyhohw{yem{wrd{o{{ic{p}uxr|]atrjvwjddvirkc`}e|eqfz_mflv_kbpvhlo\wzl|hgtjgxkxl]zlW}swbYqns[tsf>vytknxjaQvrsmgZgwptwxq[kmltZoepssthZekko~^t]z_Rljh`laTckoiqfyo|qpcynso{kSohx]`qwzohl_Qiji^ojyxfWjfiK|fgiwwwWzk{mVjdpmelusochokx`ahpvmmf~{bektuVqv{qnxxo|{jslrkuwyilspmgynrllvg}{lpg}q|hpiykzrvrqqsw~hw{jn}kvvguwx}h~vrq|`xtouksgpes|jbrqoeswb~obuRqoj|hulxvzzklzxv|ojvzuttswtztczswjvuhwinm{kepm[utl|uenaihyrinwlzqw{kmms_zgsd|l~wciuurjv{^{wtmetpvk~mngynnttkypl{hsk{`rsmit~tgexdolspnaavgmkaqpuunsrp~]qkpv^ovuioc|pzlvnqory`nrjs[kskpsqssshox|nmkryqm^simmzqpq`zkorxjufzof}Zvcyj{Thyz}w}`diqlqfwnyymr`wq~xdtl`qXwhjfszr\q~^uyu`fkqkezRq]n~fuksnoho\zrulqqlexfopuXaorMikrkwfrkrd\}iwp}t}dfysgcuxg\{skkxnp}qmYsu}a|nojvuoTeva`djmzkvz{lgoeo|^timsttwilpkg]b~gptumjy{^hXldjeq[\oeityc_ohvdz`to^jkjvsb}dvwlwgwZojknhz{X{i{jtrjp~az[p{{snazwserihg}phkogg{xre{x}itlmmeMewsffjgmuwhFhcgh|eoWa|wvlm_f[rdfjw`xp~p~sq^podttvyp{aenhxliqkgt`uoe`amfpiiartfllr]wrgscnvuq|yvttb}hlpn|jtaugud]ugmijjsf|swyx]wXrVfggNmprtcpo}]`vqlofh|o`baVk^mWksqzyZ]dsjh}lnjcvfoof|wakakephu]ioVwkotmpolph`XdnXqgnciqnilci\cexnjmii}qlgqklo}izlk_nwsus|ystp~~sjjwmyvu{Xxxthygwqx}pqoqqsclk`urm~nn]qubzmxyn|}v}r{pbgyk^kghltpijzqwyrsrywfwnfelw|uio|chz{mu|poRezmhgstwa|gcr_nd|ksm~v\~rfhbng{~x|mmg_kplleqyl}ghidjpg[Yuoxax|{qlkqevujticsh}e\shoey\~wk\lnw]lvplvoftvo^bp~eZdtXuapIjkcl}mrz~rvhqgqyZcsyebwpih}bouovfdiqcakjewoYpogyj`k{opopfllpfmehhuhxbacvgum^rnp[mccvysrxtejkauv]z{uh}[l`vgvwMdcwfe|[hthb^zvYpskk}rm`d{gvcijgtymm`memvz`ohqdTfkYtpmeksbcqwp[fqdwb`}v~jW_d|nvlgpkkvxsn|}uVnn`wgnpt|^`{z\jgwt{j~jzyt\v\lvoxoiy|oef{nuosY}{hdd`dtqaeipqlqsrdkmrbq`cs_huYwfqhmho^mh}m[XguuwQib~|rha{je_wpqtop|zrf|zbhsexh`wmgv~bmhu`hlfdRmmfs{cbbotaw]nlo^Tfrgcfgammf_gfryyyVuoSisxVhz`}culep\dgddcjrgnmf{qedPmjk`wYmbyuog}imelohzpswmo|rh~pmdlflzvupiU~zn`h{xdpblesZouuw^timzcml^`tmu~pyuygruaoq\tmj~m]n{rf{vxisahtxglafltvc|tqm~t~amtrtysk~szlcon~zymshoosgbprqvkkegpunviuw|mzjc}c~exutvTbe]vzu}wWjpqsg|egxsbsj~Vtb}swwyjozkjfov}luro\zfkiooi}pXkhawtw}vjvqnfdqtq{hw~zmvwZluvoiiv^gpliqvlnv{zmjkgl}ssizo}euvnor~spl~iaffaunpwuhisostrjupstndem|jplm{xc}~_toqmtvtvrwijxply_ghoqzmOhwynrsqbdjoUzq_uenlwilrtt~~wiv`npng`}l_hyvo\pfjir~bVij`}qn_xnos[huekv_fngolzernspltlj{o}akmnomigh}qfdryqSkgohzk~v\q{cfljqjpZ_xudj~tsghkr_aye|cypglif|tgwYsjrhdcwrngyd~ojw|kpavbklszp}fflfg_}bh^vkosTqcpdi^[kxqxp]fe\{cna]meOjwcffslj^p_eseoq{\hv`qcrxosso_~hebuusvrmkggz^wvtrmgbnZhp`Zgkqppkuee\qfzrkZdjogsw^ggldnq}rfy^riynjg{alnyhwvktyrcpmalcifflpqenec|r|tzet[tlrrihsRuutjbfehuozfwrnut~z{p~^woc|haZobawnqpi`moyyj|sqsmi}plbwjkxhmopqv}wwr`mvroecgtrxnvnfkvyrwqop{}^qnlkjxslwizj`zbohimXnwzr_^niruymp~{ovyscwom|sescl|^fgs{om~tddfsxt}y_htddYzt~xva~kflu_}iqyaqXjrql^qs}puhukowwwiwoqddzYnjhad~fsar|zpx|x}ilsv}mlqrvzpkyveuZylg{guzprn^eosu|jqfp|kiw]qojv[voqumqpkozj|l_{d|`rruwozylsqpwwog~sg\hus}ixnrf}qp~jj}rk}gfaf~s\wqnzkotqtjckdodlmizg}dhvwqhptxd`mjzvjqsbe~ksxeh\Yoo|yul~}viqmbgzfgwunn^w}{wu\yscq{r~uhq`p~nnvecjgvtbgnsn{qtgs|pmgpszqvfigyib`mjvzorrqzhopnoxsyybgwpjzkXmswdjlgaj[|dp`wd~wcb~_p||^opqgl]flkpde~{g{as_dljrpgm~o{iujh^roiha{dhcausqqgxwnsmhqobspvjslubfl`vlouqpvg^vgfsqzv_xkmmnjiirfl~yhhmmijx}vtYcxsyulvzmktodfnzn}lzhw}qwuSvuiqj|kmnoizur}dqlxeetq^axlxhf`jjrtnop~m}iksxhohodnyidopkytvgwla{muxnjrwrfswvpgpoq|fzmylhfl{lsslbxtfzpn{duymub~xmozpYjpbzp~kieh{utob]s`prkpghz_f|nzvs}svpsjdomji`cwxnrV_lcrwirp`lfhvZretdb[buloYxmajqx\vdhh^_az|YfeduUVvia}w~do}kZyg{t~~zjtwktyesjpqzmsrnk{^lsoxuqW{vpetwwi`o{igka^]\mvkhotv[htrcd~nqznlqihkm|pxqjnXasisqsmmjgdgX|nelpszmdvpqezhh`na`_wwn\dndjh{}hcwd`]y|ko|lsbmosgiscpethrqtmm}snl{eho}lot]gXr|rxqakrvdkevhjqqtulixriYuvthfdk~tsyrekf|jU|gw|v}jao~s|rVrxqmij{muzvjcmqoajvouw[lpUrpCglsphx{gkrrmwpoibhlZfU[wy[hkrccOqodjghsfkgwp\lfnhmlhwcd~nmbkgeh^|zjvkur~fzm\sl~wXsdiyoit^biius^gaktsdfI{ahk`htrdzo}fo}o[djfbl{me{rn]~ijezrxvwnrqzczsvtqntjbramxgfixnrqmu_lkn}scbhqtwnuxfnfsjewjp}m[wyrduixnmpykln`y`qSTlmeho|fzlwusmc{ydvZpzlmp}daemvj{bvsth`nrkywhlsku~dgtp{lfolkxv|o{a}]s|cqvjowlyqflezmihqqxqio[nlnp`hxtpoklddui}cts[wn{nmpldquwnyfdk{f`rdjponfkzmhpwomyhhnjqwbtldte|[pzsiu`ugwfpbpnjfeg^euyveiialngt{vrmhw|gxhn\tgahr~ojqx}izawpuoeukkupmndlwlyr]xbxjZqldi|pinqsnZ}Ntay{faqfgT`dwhtpstwqdeY^jmbf\nk`hxxlgk`fdtjiqnfnafg\yqm~Vpip]wdllyZWoalcWmtriWWhr~edXmlazffvsd\kf^ucnr_jejbocosx|fn{_chcqc~qrbzyv^}lk\wjn]wrmg|deV_poi[U`s~_\Mfvguzaueekz~un^\gfhgapmlwjd[jgsfsssxt\jlimlghqovqfrctxz|f``kwemsp}bmayShzp{nggxa^qmSlmeijkgn]xp[blepjzw|leqyzvnkiNduowv^Njrhkp]jnhvors_lf}k{uroqxamypqgbnkjk~sfkq`f`png{_{sroihcth|}tsbofydwxqgujqxtzux{hjlpupkv{}ftkYuc~ospprmrpf~hgmru}ztv~rougnuymdmplpqlmXkks`msiUxbuzihjmnppushrnjnmrSjtjuurjphyzp_iwfnsxvoupxpuvmu{sxxsqtwyeh}soVnrheagqxpiiwnvtmj~jsljekmamml{`lswxoql|wbjwmtfrzwtmg}j}apcwpy`hs`v^ghphxa`jwnypmw|ki_ibouunv]l_yjmkdtcshqlXepjdipSrrp_vprelrzyrkvjqqqtfisjmoxgtes~berptrfpgonzr{dj_\Zlskxn}wglnzirrfZlumm\Vhoukrehi~rlwvlvxi{}d~oradmewzvtweo|uvqwrrl{gqm|l|ipxkvrzlre{yvnsci_vlvxknt}rsnvmewoylzqfzm]pasftgnezq|{ck`|{\csr\}Unk{pjqq|xiiq]i~bieqykwpupowier`q}mzrxvjpsukbvpprthfhquxpocupvqVojmsrnYmjvq~hvtwmwoxqkjm|}w]wpfuscnxdpzt}fxgv{nuZplewvg~mkxfxb{wdzh~psjcm\clnikmn}~rmlb|imj}]rpwmrlwmrpurzfxptxo_tovonhdhtmrrmkf`YqxhYqlms{du]hpjkilk}qtoxtmxwagp^|s~rukgzrxhkokhvmd~tzqcyo~kbisekwuktgqedv_opmXfVlohk~erqOgq`uxqawamvuolrvnh~gorhtavsousrjymgstxytpgv}qovf]ntyzkvl~r}q^c{simnhpct{k[sumplpheroqppn~svqhnqXrnspjp~[iiwjjnvpumsr{}m~rzuyj}tkU~lxkyyvuehg^dvsq~Zqynyrmz}mmgpnoqvjj`[edropxgRYssglfphrfs}ulpsrn]uxgumjgiowoq}|arg\volg^j`tmvrck~nc|`dp`ew}`bxez{}lyeh_dv\kxZznwom{jrt}wwsmqntyjtlmlt}n{ipuvwj~beomqnokpjisrSjd~ypsofoppfdvsz}mlgrapvrsnYtoqin|grfhmif{hjyutVqodgcob{|gl[kppw}y]d\hmle]lqVznnt[m[s~fnuv}xmk|lvrvnmlZzqp~{kY_qqxlnyoxukipUqnviuydyezWomighy~}~pmevzvu{|ve{oqZ|xncylppmdhc|d}d}sugqf`ltrefpZryjmr{kzwrsqlj|kpffx]rujtdcoss|jdPkZelsse_cmqfmyqtnVkakpjiyvkrqeripj^tekuqolob\nosglxsipvSajy~ohrsdn}{dvthrmlhg{ginufet|jrrmhtd\ua|rtqoky}totsjvawy{enmn|kcj|ljxzk{~nmng}dio{t}wsilghm\~}vka~Wuox|rmq~iiviyYstwlxvbtgfzokqedhwueti|jlrlli_drw}xs}vzk~dm{rq_zkttnlWkvfcbmrv~vjpk`skn}cvec\tmogxl]okqrhZ^aucq]zo}ac_tqmjusepbdgnyqpielekutqdhyY}uyeX^fniw_ntrZyub^jklasismbgrxlrcsmupssmgyngcu_zuyuomwjouocolrsmm_hma|d\vXity|zfykdap{^lrnu{srmrkZrc^rkno^d^`nx`V~~hjuqkjamdfna^wmdinzidmmqqiojgdWxlrSvpmrefdzm`pibpduorvgwVsqtfy\]oqJrpwxckv]hg~be}tcgyzyrvsepuZngnovc{wxa}dZ{nmjizjcVzuummqeba^wrngpci_|ehy{j[nl{olnatpdxii}~[uzrxid}u|hmlctuqyuonwkw\jvjqzq^jkssr}mooxpumq~ljiudnj|rsl{cfuwpfyyouepdesxkc{bemsxbzlbvoza}vtafcd}pq}jqmmk^hksrshlvmmnjd{ydssu[{|pgetzfsojhktnmn{a|n~ktlzmzloz}btmm~hthsenqbfft|{emhpcy]dbno|wvjtojaairfc{qvhpkqwlsYhtTwwqdsj_w_Ssmdj|urpxdxvgyjsee{fnfzr]{sjkipcu|{e`wxinsktizqlp_^pxz~mYxXoViidqx]st\osvkrmpkowdqujvitpohtxe_ojjk]g{yvjk|ys|Vner|rqjvvbemxaq|xw}ugn|qibzlx{~kkx{pjpkdyqqjxqpi]ubwg~smdlmoz^xdggxqYsropqjVhrxbhtehjuk{x`eklp\k|kvwpo`jlarvvhmyjeph^nidfutymiopruvuspqkirpbifemXyjlgoaqcqcwmhvxjfo\{r}kqcevhxkutbmflqx{}ksmikqpyx^`ptfnikvufVkhpll_hcmfrnqbvb`^wmt|dhSp^\p}`x`eqicp_pxqinwuipnzh{~_rcpbuwjikhmrctshouqiflljc\_s~{luxwo|xfvugihs|dgvxqlklpzaijx`bn[~st_oxncnhx]Opdkghmy_swYcojg_ucqjfjwdsstfbs|hstrlSodRtglyrfmon|mtcinjij~izsgXrpnt|rxgh^oxoz\wlmq{l~tidl|unojegniz]iaStyfkjzwntlfq}~eb~pljr~okja~udhpt{xsl{jekofvpkthfrjYflg~k_sco~p{uqu`gul{}nwvpx]iin~yo[qnk_lbr`tlqomtbiombuhlcxzpj{fpzy}lmhzrll_z|ixqcpjfztcuvrggajcrb^rsz[xaj{v[t{pnigkojqulrNvnonua`iovykhtmqxohzpddja|polhwlwsuUtuise}q^phimvwthwhekvqs}y{kjbcsilqmhxsmsqmstnypcv_qqjkxnplqbscn~jnifoixnnjk[ywv^tqzmmjzu~dikntnorsgj^notr\r_k}^{zfmzmlq[vzjxtdxrgcpqh{xzapt~lcvugh}lav|ogqlpgrkmbuoxfYjrobxni~qgvo|b^s|tiomwZrt^jqrgpdzknnbz}{5~lsfsvwoawofjY~wgfrqg_xslxkrs{yo{vydkjrye|unrgXrhg}sw}ltk}qz|\wehwnsncybljqywomoqtW_ll{pn`dvllpk_daxrocNtbkqvyw^rze~rggguhuahzfvwd~co}kqmqpks|ht_uvnvtim`{k~zaswvv}omijovorkuijuisw|bqg{fov~ndnnk`kc|qpiq]mf|illuupnrtn~huyipwhpk}h|rnxxqo{^^twqhvsrnxpl_jltsggmpdWkkxqm}r|vislohf_s}gsh{nn~aypw}cmat\{op]tryayzrgjenq|tzjidiqushy_rhznpkovzw^fgmmjdupvri~ifrx[cdqlsrnkipfevosiux[fgmu^xkiomuj^vrm{w~hhxwkc}n{hxgvssinivozyzizjo}xtlnnlsokpkneuoxghtvxruemqr{{vvjlsgmtdpqefsuhhowjkh_kpQqthiuoszlayals{m~{yfn|rn}ksdjXhfmhlwv`ovqqir{fnptygojjvgyks{mn`osfqsv{wdbatvy__gtyihlhp{yntlsy}qcgphppluafqh}rhoqek`unongkdlrqsdfo`ps}ypm_mjroqnlkgsmypj\v`ymX~mmkmlorm|toqxrxhoXksqyo{v~tp|{kuZjkZjir|mkhy|aw~vuemyf{tmmxzkyr|vuueve{f{wysrlphjrhgpnzuiraoafpx~voooixwdtatpyj|wvakm~xidm]~ryxrptmlhikterx}jdn{jdmuyjtilpdqyuyqvpyohyllyblgtyrqmqhtlwlj_b\Olrjkzz}nksxqRz|uq|gscljsnbwcl}qkwjuuzmnoe{nopipU`cudsmwuskxmyr{uoZnsx`uht{totq}ckgmq~s`{df|g~{uixzzrbc}slt\|pyzmwvuU]|kbq^zv{fjsdoelapojheqrxokofmvfd~pq}|f}wtjj||hjqyv}yjxavmzn{^cahypnz~smjtgclytqvuojnfisimq^bevwuqiYf`ZnfzinxumyhPswksqwyhtyreeaappgw]iswopf_smvlsnps|ooljpmenfekmqmr\dcdn{pah]s_wc{}l{vtyzqxvlboqlkoxyli}~hvc}nwd^wubpd[yh^uwo`yZmqfmlsx}tmmr~]xiwzcinxprpxyylmYawjz{ku\WTomvwYtywjrcmufytuWukuV^ovzghsiyulqgrejhtjqikos{qgppy^_i~chp{ojk`esrignw[eZovxrkzeuaepl}gljfxl`gk}_oxygreXw{yjrwp_umppqrkmjxgcqnaijirl]|wrmsa[av^k`obt|eflocpphuqi[}mykkwqs~]ods\blxferxjg}uodojovmgatbb{pjfcihmutxexlpdsp{iecxypoXj~hnsy_op_vgpkgspg_xzwh^stm`}sjtqremhmwkeoqgnxn{[|{fkZZfedhvxkouv}hqfrmnuxxqftrcoe~h{lug[rxh|axybssdsemskfeqbhMrykXuvoixssbofjdXtronmjyeciohbWximvfmeqa\{fylUfqzwbsn}vnkuvvouggktp~gchgl{y]{gdc{dngbviymtzfaznev]enflmovmruliliYyrvq|blhj]zpkmokgeoplnliqijl|qpmpanjgjzmzbVv{xfx_s^ffkgfbjoi|]kpmksdy`iaood`rhrenyYsgamk_mdabkgl}lu{ucxxqgibzgxhp]wo|wzifhfrspZtbkrspi_{aa~_^ttmfmg|ijcspcalomfninu_e^dtpYysrgr^lespvoyktsmzkrktordutukwtalsbvfocp\ptzfb[oZixht]ieQlhmcj}SbaUzr{shgfq`dg|hdjrgsbV]b}irtoqkngxnnksprxsqirovgjopvqsmsfm_oueexsujnlj~incals`m}]r`neh^zffiBtqmtgpf^ymVbyksbxhvlcsvp`nppnrrbo{th_vl]}ap]{havnopmum~|r|ftliqa~mv^hxsgl]r{]rlvj`h_\m|}Zuu_angkyfhooh]knfdu\hsxgapt~h`nnoxwpqlgnrxdjncs|vvcsv{li}nnmmc{ttrllk{oxust`fil_hrv|ior_ybgxthrm}htc]u|sysnpjg|vsxsrqshso`suhrinjit~inp{mx~^snlylvs}l{xfntkioj{tzub}{teeapjmfpu~lyztkwguz{vlc}rrboywiryrrklo{mmnqquzncqp|~mmknyquosxfljKztllmxs{ujkcpm^ws}}bckdxswx_rnffp}rtuyvR~hovoorrmkuh{]i`ljprr`nZusuqq^m]icck{alabmxizimXjlhrqylrkkboZbu`vlZfonsqq~kil{]yjytmzgurzrtr~jcshyt~f`w_wxwijfwe||ix_xjreS\ofrtVi[\clyVnnp~`tkmtwrhyeeaT~sljnngra[uplp\szzohfkdemfuoorne`|[uqq~{Zzstoqp{hsnoqqhpkvy^\ujo_j]sratnpopawafmf|zkcpxddf[lsamvjxaibouilvwwTflxoasW}\mjqtvlndi^t`\g~vsmn}pyqzty`}jjulteiigltqqdaombebSg{kuqdplkhzs^ktkdhtzfp[jomwijgryiokqroYhwojvchvw[mo}niwy|`oY|m||kno`[rxr|pfe\mok{qotuhidzmdbo[o_{uqn{fey{_Vauqpp_eyk`]ynkujLlo`rq`j~l{zevterknc[{y]tlvmqmpsnot[vhoie|b|l`~njccm{lrkfnr{it}`oscwgmzzsnxh]nzynxxvroilzytoi_oha}orrhcnaitwul~~uiruyangovigwgn^nzsrqluvsyhfp}rpezturmvkujdl{uyxnravlgsjusvydoxrQ|kruzqkltkpiq~tgruvzr|vtvdiuvmdhgika`pi~kuot~juepejggfznopqqjoukpqm\lnwjmljrrpv_Zryst_\oluOhlnt|vq`tannnydlsOojkZar{nrqcoWfeohvenii|otsonmmirvxb{eb~xs}jttlrajnptjUt`kjsmyo{krnghroiwcnhrijwfsldatrwvvvx{gqo[pmkpmvnakdpgWlslelSsinzlzznpgathtvkYhkasqliqh^uxvro}glWgqjitnnspspphm{itywZikizzwujrjuptnsoyv{ww}gpzwsnazxorttepxpksi_ulds|mlmbmvt[gxevv}ze|kslpqyivpnldtk|mqsgksts~hx{rz~kqxnlw~uyvxiuo[rosxsr{lksqkw{mwo`pwfgnqrumywfxltlhhi~y}mivxvzzyqifelzeduvnyhssrh~mzzkd{bugpelztapsvqhk_\\atynpsuvyeqeivx`ktp^forqgmr|fwXfrsr{utql{l\ltfzuqrxriggznwkuglokjsrziplvn}ryc{g`rtpn{zxhwloXxkgtwmvlpdnjuwsykqfkzrx~|x_~xsrmmu|[v{zi[Z|f{mkyhkb|rmsl|uxrcwyintswzxj{hofop|Z_}YebkTc|ekjzms~l~qsmcy[t{bamwuw}n|cuxoh_wsqqdqkvithx{dbucii~mkjaghy\cwtviyhwqp`vep~vdgxgixtnx`gmekrpzotc~jnljw|mpwyqmickquvobgm{swjrhhqauvilhtrkmvu~`jeiimpgqow~wZZrhyVjwzugq|rh|lk{}q{wys|}euwsz}ixurpambokoicizsqwvxessone}|uxnunqxe|zZoliobzxmkyZpbajjvn]towpbq~{qvRlnk|ljipiyqdknWgrn{{hroqekpY{xydnus|kpurxkyml{}vzkqtgx_govsckurdhvn]plqal_wmi~jl~fkukej\m`xjjl{zXoklpikrnuo`mralx}{hxhgilfhmts\i|~gprjgxz{snh[roy|lcupjyzsy|mshooq|~zyfhmsnmkltyrnUhehtjemxkkqmykq~suyihuftq~o|phioWa{vwmfhvmXyf{[j|ruonbSymqm`mtshdtt|nnwwts\cmpbpjv{de_wtttxq~ftl_em~dseqy]t`~w{qomvhwkts_tvfzJys|_quqk[s_gp|duteoqoitvuczkvybgen|pyn~kiv`uvXo`nrbqxXjs^ylsmyykezlsgNqdzfcwsmppio~]krtuk~gwPk|hxr|{kctrprudkpzvkrrxxoyak]qjhkxm\vuu\wfjjnhldvyj\W`m`\oippSyxzt]wmuzlpkphmv}yxi]ifkfowton_neSYzp~m\[^vto~ay[ipbzd|xYesre~opa~}omndupfdOlxl~xllgqjrmlsoygrp|dyqnznkvmyliXrjlo|oijj~dho{to~|h\zdvl~uxP}hwhwhv{tssmrqlqkhgsk{ztmtxsipi{ost{v~mrlwdd_xgv_u}oxujuzwkxprakptZ^kcsk~rmulqcviy]xtzvzmalsfagv\ksqapotlmzz}lg}kmk]qnnwluunjxprpntlp_hryoywj~_jnxaxizrs{luYll~zleihcuygcu~`ctkdyXtpllsddld`}xlkdsku^wdjupbsv{w~j|klf^b[Wzjc[pzdpcde^q\cfmn}eu|znhvtUr{}pzxlfcehgnobfdrxjqxvi^slgwvxckm}jrfur||mrgt~`w_hwneia_rjeebsfYjg~gnrx`wlpcdvsf}Zqj_wbx}~zrrwqnZiilpiphmnlvwqekltnhfe}rw{c~^^vrptiol_{iqqj]_skfp}omubcbsdprleu}hdnjjqeyuloa\z_rdltjnekmncirvrmh}ur^aKdlmsjthYwuiTkizirkpvv|w{y^sYwzxegirfotvt}~opprjskptnnnhpof{grfagtZlngxc~suoinxpulg}tYyegqek]ykpol_tkzxurgjqjvkcwjkhsqcwfjqqizsqu}s~sfs_qowebmtmibxsnipsf{nq[{luepqrkxik}nscxoie_ejad\cw{bdlkmytftglqbyqclpa||fohXxtinheOde_hl{ekrbmuai_fnsudfl\ctywovgiojvcidj`ltlr}inYbzztjjh`i`w_feuicivbycl`nkmtnpvrx~eh_iiqkinsb}gmdt~jbvuijypit}siuhfofw~{bmyqum]gleznlk]vleprvyw}zovnijxxihuhwttvp~fa}ow}insk_zqs~zqghkusoptet|}iiygvxjjtq|yuo|rxylx~pz}t{kciothkrskey`Zl}xmxmynolrsysiitV`q`cwqkepoy|}v\t{nzqbvlmcx{szh}qtnumloidnyhry^kdumxxrlfmjx|}uvn~cvmqfoikgmzkneg}|bwWwttfqVkx{{huz|prqkvxkYmWqrkom[bluitxmlmryzywsgmVkltpylqfkwbjshnoqt^Xygpfyhujfcsi|`twkwt]ucjnjs|qstqu}o|~wu{tqhrltnttgspyuw~ymUhXokqxso{iUqxnrxklzviesk\|vthyccW_}p\utfkki^y{kum}eeqgoljhcd{mqr|to`vovtf}q`nspmxsfthx]rqyn^tuq]fqnpdctqzaenkv\lwzocvupsgb`}mhxysdh~xceoayzjkth_nqZzr{ybr\zrdfh[lqgmjqyusVx|riqwykfcsuVZkronn|edpwevjumizvyadvky}{xeurprvpsy|lkostujlqlqkullgjg]r~olfrutxwfnmz|euogfsbwfgcn_~uliqvwvpyzkchijyr|p`tlple{o{zs]kaqu|soqgtrq]f|zuixildllq_d]prnLfkkjuo|ipouwtssnnijsrtfk}c{ektjlqunswg|solhh|npt}{reflfto`ok`wpnsc_oqi{oj[\gaopmgsoupswxrzokmcurrqt|rqzisVdsnx^^qu|sywelob|~lldwv[kw|vuxYgio^aWl_n|tnepzvs{jg{{tepbto`s}jqqnaehl^jylqw}Ykyqec]]nnpz{dqncnyhnlja^cd\tyngmti~ihhp~lm]`jtLKbeblfz]pmnhk^gtyjhaygmr~k~ix^i}milozcihwce_|qbblasjjnkafgcoelycudfzxndvxmaykpuuripkhhegneepwvlnotssg`hzapjrsZd}s|iksnrnX]]i~l~ndx|ddmr[dncZyffszji{kwt\^wtbwqm}pskndz_tsm~cfypqmvx|oqnqrdrWrlPxtwx~tkktt{vdqsPpeZ`jxe[|fioskj|gddshx{wfi`ts}ixlmio`ssac[tmnc^pf^eccwvg^s\qynrsqymmqo~jk{]kmvojnfhvnnsjr}nurrcvojseqn\vle{{om|^ony^roiwe{yteUmxvjhmvlj}oimoztuk|{sqhzgqk}wmyylm|mokuovibnokmjkvdqstiphu|p~rpyhqqy|mzcyz|htuoqywo}f|hxfsqyxrgmglird^oqry}t`g_vo^ivibk]mug^hurj{ormpjkvm~xbulrvrUnrmbhgs~pkfov~by^oloogwo}m}berfciVd_xkih`bzn}xvuvbm[hem_iprr^hoktmvlquf|mfsdiyuvawylwimfimqsrqw}mPhxsnt]gmmbjpuyssewlqzZndcqecjpedhdwd{usypql{Slonaklzmmv~Zm~ptmoZogjv__jtofvpnvz\\|qjrx|ztrjofr{g|}henzlposgiguu_nwit[eod}eWetg{YzegipzmsptpZuljtdx|wsrthlewzmlizrhy|g}p^}rrpsujvk}|mwk{d~m~xoq|yfteiuhvxcztqhdp]qrpvmwu}{]tcipueskzcevz{}mmkfsmf{rglxk|^ltsYptquYzuyypp{gkv{saspezvoygeog{loljo~il_lhmftx^hymot{wfiyTzmdgoi^nydfrx|bqury{cyu{nxksxc[pxhqyvqrsw|^rizgkyqgoTpalfqpsnoZ~cv_wdtzvvhs\eqijqGglQlryrmfru_nxiuarmgfur{qYlgyfzfi||syjcYipjkqliVr\caevyctmjrxgilqfpm]tkypqefkf_r_~e^jfmwumdZkrjmlwo{~s^nzvui{fgf}omvmzkfpvf{qqnk~x\rm|djutboqvlwkyioxq}vexotkookk}glxhrlvfqoku}}xduovttiguaZbhpuyxymxtvay|nm|gmqizskbhvvfghrm{^}srlrkyj|dyjZrxprhoyrd|k}^qgehrkcruuckbpqvqkqujxx|qgnrporzrpplomtvlxwuj}kwdwn{nku}d~rpw{k_kyey_ti|{vej`{u{xbountrhzq{vm|pe~q}`ss{efaepusyfrq`kzgwv`}Zd}|jvxlwbxzvu}[bMsvr|blnmqg\xs|Y{sen`majfrmbmnzjhh|~vmp[h]w|teanwy{zyyVopzd_zq[hwfqqjaojmjrasbkhwzykjitvotuyldhttkdj__vffzsvaxppzbzzr]}ekxz`ouqiecsillmohvpldkqwyoohlpjvvrz_yhfpzwtk|`pitsW~hjlzsnnluW~qWusqeljjj^jwwnoitipoopgwdn{a~`k}ohgkz`umhnqu~oi]zvzskhvevyWsfyzj}sbd}hrq~`ugpj|isxpiqgavv`bhz\nmcv{t|yetm[lipni`opqojdssbZhzlp}gf~uitgmnx_li]es~k]jojfuhnfk|uqdsft_lojwgvlnqdlrsfyg`auncpkufqtnsclqqhus^vwirTkhllistpm_izk~xbbputssj[sp`\`jtlkndsctufcngokkcszkp`g^s}txy~vkqlbwpccwrs{uqwXvqxktuywm`\vf`yptzju]khjpxxj}zntoimqizzoxgpgpqgnuv|pgzs~m~n_iiq_z_j}b`Xig|fjv\typ}oplqumm}toe{zjaxtvwvpwlcm|fl}khypYmbl}fukh}kjlotmt|rbadhwlygenkhwobgegzmquqiktrulbryfin~tYP|becWbu}rpnmpkcxnvXbXt^pXykztvixnZytgyZhis]`Y\]hkmfoxsgkqqpwfskkwqsgxsn|l{ueuppQuZlqhgxr}q[~rul_w|nros{on{osyzko}emig{xpopqkbknp|wemuomfotoxurwh{sn~tts|wu{vu|f|xwnvopnsoabv`lnkkoqoqnrujgtwypRngvrx}v{let]{xbgm{~rjr|{f}zr{kqvksfiuomuvrjcpqhvjuzguwer~{kgrxyh`uvszqnqspfosr|Zsncpqyupnutjiii|rimootuinzitxyvtvlmwwgfqj{uw`hos}qrmxiskzvthizxr{vrtod{{m|tch}so{rwxlqd{h}xuqv{slxbbrjo{}hdWx}ea~pmwhr`rnsierkjhhnzvcllt|tweuols|}mjeovcmkrjfbyisxvtk`fjrpmnjtfn|uyuy}pm}gv}hqdreouxyy\u~f}kjpkxqxv]fscsljp]fr~dslpopotuYchqe~itgirjrJuud|sfy}nyiqlpaXywqhpnrtqe`{h_~}\u{_aks}ktuZoealoszpnwvq}hgkVtgntfnv}v{ybpmxpogqxinhfvlm_iljqjejjolvqxnrxy~bfq_w}ttj{|rrnn}wirg~ajhq[molbf~hsnjyhcthtaksQynY|Ukznowrf[wjnx{sohywnpsp{qT{{fjlqjljviaqxllp|~tdj}llydrimznypjmlg}sywzlnr|urgywns^|kttl~{rqlwlghhXoruoqvqtihygnqqrpcswZnqggyzz_rka{jgmkndmiaghblktuvu`boyhjlgkchVuuwcvdk{rnfietewwwuwtsj}zzjpjogixzinykyiaZ|nk}trgeclojpfo_mittpvnqoxohrqrpqnnu{t}qhtiz{pklrjXkZtwx~iefarkztpjlhrpnnypn}[oejm{~owopky]eoziukcvpovmqsipfkruqe]mccy}\`ht~knksmhuylwmnh\{|}cijolctgu{|q\jrq^y~zkpzITTY^_ZsPhsQz[NB^pmYRsj_`^R^\\mvToHCWnjU\osqUKXUbmaRzbBp`_TMf|eeYZiLNnX]SQaFIhr^^`jLfWAcDX`ibw^_^YdfcoXOkiYr`qOhm`jqVq?lYTZbbbYli]PfMee^[[WRx\Zjr_fcI{GbbuGZlL^hFSS}UTimmYUk^cUmmMxlrc[hSSqgSd`elEcdVhTqlJNbk_}qb\eRWf[Xc^SSc\`Vi_\Oukhxvk_mY^nbuh\`afienl[vnUrrrfgejgfb\PRe@OOuZzrcR`MeZak]XKm|a[VZdcfkTXUEmTaSg`I\paYghah`LRPdxoxqSfZtZd\Wi_gdV_lXcW[WaW]fdkxI[oZw>m[dqkQ`U]ae?U_TP^bYR`yd_fjqVL{eWnfa]deibVaz[]hesmnfevk{eUZc^iapq}ccs^lhQjngCkfYekWWcEM^{XQTfphcShwW\jd_^M\NalRj[HZdV[PqlTLNlU`8d\_aghK;pkc[joRUTczhW[QJA^E[eOfJSaMkUCZv^dNQn[_Lux_XOxSG_wTQW{lPHfcLiYtglIMjnjSWNYvf{PdUe]YG[kTRVvb^ke]UGgiidufZwVfRNLN_GONe{ljghfSjXSYi^QJk[mQkmXbYsPz`hvAfdR_VWsXjZ8\TTNHHdIlgjIiI|Xl`ijffZyT@`UKBfoqs`fRVwYZKnuKhhSXUK\jO[`Ihh`Y_yUfU[N_wibhaXrNuH\DOisdWjYh7qmgzBfi`Z_[Kps[|giT`BkRzbL[\`~nMjYYV^\ilnOqnVc[KKc[]cOON_apbwV=vWga[\^pa^ogc`_cdOc\rOT[]]S|cLa]kfcfXbStmai`UXakhXWTQSieanf^\hfdQdNoo_gco^n^ZaTQYYUlhYeZsmZegdkT`YatnpmRf^UqXqukW[Z]oZRUb`oeWSzSdOhTOhduVpe=WP[s[][jYUeewic[[MSbnp^[Ya\Y`w^YmZf[casb]ickgRVjVXdPdceq_qTVXCSSq?:shXQk\\agWvwV_Jw{VvlcyeheRbqlpsg\V`c[FNR_]SMhstMjafsR\F`od\LZYwWyW[[PaHy`YTcZjoyqn]jMhXeVjSaAe`efVadjqqdqTZOeF|n\_nXfaW\u`ohmZnaF^[YQVruPWenkhXk\q_NZZONjhUZUhjdZZoDVcOckZGRXNfYgE\gwnLDTppfTLfaebtcNqMWAiVEF\Sbi:E\aPPnVXZnhXdCVk|QoRWwRdXpscuRy`dww:TiXtTg}pTSjuHvdyeMgbamMplMRYdlYQ~VXPUSYXwK]]Frbqkm^L]Xig]a`bNLuP_]ZbgZkaXbYxT]`ZhFjWw}TZ`vOaTEb*pLEs_bCR>]OGee`QihUcX[PKnWcXofdi]MLh__[wjHUWffK_s[LQ`K[i\ToOPVUn[sjjv]aObS[V[PjXmtFpnhjo}mahlHVWZntUPrlitZWpibmIyOmT_VZMwSFndal^dfZUITiIQaSdWHw[VjQOCFFaU[c][ONTcYmqPdIeaOPX=NeJToZ`Zr8oSGy`F]{Or`Fr7LUJlX[RT]\`_`keF]]Tb]`pXV_`ba^geppqdYgqt[Ynewlv^VcpRdUf^bQ]e]PV_Thsmga~sdX_|rfhdHbadfi:We_hRa{hPr{W`4splmXFcg^PdnXjlZk^Q_bcf\Vd~hVH``Y\>nbWRqZiYc|oc_WtTY_xIoyemzXlV[`YfjfN~_LTcz`icZ]Jtfcl^og@ZdCnEgTQWYo\qYShdhWhej^UqfOsb^xa_Kokc_[UZccRSi\XZheccWpgwJ^km^gZRYU`YZnd}bNaRn;RfuZpcTtk^hY]ahcbNRgNlTSD^adQpZW{ObadthrWlJWtnoxj`ZKXjc\sagbUh\i`\oUYgjZbUb`KhV_`pRUgiwQdYN[KkxLhbeW_df]7\TXZd`^fg\[V^c_bpVn]fdf[irRHjlTRel]pcrqYgS[gbicYnmUbcLledugXc[hgn`_[Vp`WpsoNemd_bYRsiXS`ObtebQLzwX\aFj_]sd[[UVW[cbkh\hf^eninxmXga^vpfi`ZYdrK]Hm_lgm`iRWQ_]f\cic`z]YfaYd`v_StfSmnVlV{J]etVhlUt^c^O^hR[|UdYdn]mQZj\a\a`hifiQVhbZ^ggx]plijJ;bd`QXudS]cdaNQGXQcQ^qAvnZUZLdjewHU^idYYumsq^`c\RRPN7`q]QOHmoHebmMev\ME`bqTVudrdWbAsEYYpP]`xmQOwfXdYg\T=[we^^ooog2PRMwk{PShgkmYCaPWOZYrIKr_Z[nX[b_LVipXhLLv}vNHNoPk_Qga`M|bsob[iIljcxXn|v]hUcw~UVZn_][[_aHafW^\nfTYyQNKVJe^maPVhbZW`d{XWfkXeSjfn?d`a]N^PTb^{bfoaUOf_`i[Wi}Ig`][ghSmcXUJVjcdpSWsP[Z[YudQeMNU^mfGpn}N]kKWqmxkSb^jaWl{g]HYJYXb_Yq[xXrp[[MxUiZNTWoiNTcUJZPkRUqbpv[eU\aiSepHVNb]d_Z[Rd_MgQjxnV_h\cFUXYpVrIGsRo|3mZ`lsfGLouJ{}YlQrdhTWlx?\]Q[WcxuW{Ml`fjVZ|_WlL>fTS|XXtczOTnbGmGLWeVJi]xDjFroF]uQkj^tT@kWgaZmpzjvKEsfUecLiSZoMGusogmk0MVWT_kST>zWXK]jPaUaWVOJ^^av|J5`gXXalWS[q^NldX`pYwiOY_dVcnboDk[JdJiegRqcl]Scdc\loNPdVPVR\XP^giXaolmLih^sVVnCqLjajZjvQncIX[^}TY^QWigqcldsdpH^\Op;dhjV[_pg_WhT^aacmq~ROdpOgTh`Rb[][WxTqSseiXiPIDZ0QOi]}cFxWOWZ~;KqXRK~gXp_jSYgMw``NcLclrP>p^EP_\XhkhS\L_gkVetEjt`VWdP^;^^TXOFWTZAkVd~cevoMWM_XcdsWEUX_jcbVO`Rab_xWfasjkX^|^YLxd]sVwMW^Rbcfm[OhZZhrbjeQnhiSh^e[hRStQhi`j\VOnV[TlTe\MhqiPPlM[nkryUl^}RPalW=`L`vfm]b[[j[qXeefjn^pWl_\hwv`=PgkeREVg\\]^ge`^`OUqX_cIdc}c[a\Qmj]ZaVUms[VfMwabi_a\y_Y]cV]d^WjdafbP`\N|a``ilB[i]Ye\^^^Y|i{xluW]ff\jqocvUmnumzd[RaXhvalcw`V[SckccXvIoW^djmTEbtSlV`^^ZOXhb^f^Ten\fPV_PPOnPVfhl\tcudPnkcfiKmqPYL`[phZUimaI\QfccY|lbSShW=d^ezyWphX]]ZIi]fXhh]l]MeXYbR\pNvZf\ria]iZzQJWFcNG[Sdcno_d_satU_OgufPlN`cfnTPFh]oWk`Upi`q_eZE:_QOM{V\\uoxNitkl~OXIiocO`nTxe_HdaoOrXrom_Q}cbc^{ZlT_]cTb`^[{iNrScR]ndidhjYchiphZdWm\acbcotK`k^hpdozYSbfiFU\h\u``ffgl[VqbQW`W`aTgVaFYeX_Ul\_Lghk_X[[~fLgg_efodd`tVaYn_nw]T]QagfRpZUoU{Dc]\hb_]\eVniO`Ukdv{^fSd^]}UUwLmeam]`RegYSdepm^WfWVnR`]KbeRZHP]iz[_YtNFXSiUjbZ^gtQMJkPp{muggPSafcZTZU[PMknRkjne@fT\mnUUq`dmrD`ynfigQ[Ksi[XRLjgX9KOhWQPnt\TgmoWwp`fufejSgojRZWWZlt6`Mj_Ric`]Z^_Fkk]ViaY^UqgUXdkVI^aagkocXZq_djifoOOeqqWltcW[^UOsWofYefqX^d\VUbjbgq__T]mc{C_HlOc]QbacZNccTec`]jcWikUvWbgf\XnpSPwKgSUeX_Sglecasrnskc]`dvSkZqf^hhfMvuwcThtnj]hqSc`ILn~QUNno`{^Mr_Qkz^c_nc][RVGb`gWopJieRsfVWk}P[\QzVLfIbkOTeKWfNX]clNbwrfranWSV]Y^XoVm^dXobORYMSMeBQ^Zj]d\rncciS\gr^bPfZ_xb[OWkl`hx]xmV\YjTn\kjgZYRTaTBp`]ZheieP{hdopXaRleTfnngkf_Xz_biGsZljGZxXSLZbRwkb\atQdS_bix_Xb`_[]bQhuYXm]p`VrFh]]geMS[k]ggohfTcN\kb{m\}kOTKcUoahRkQ[eic]yPq^[js_fWZYYYWs[}Y`fSQfdidfqXQgXpc}yhm]v_m]clbfeSagkgOaeeNsmjXJpchaX[WvjepXUdmcktY\naOUlHnaTmZQaej[AfM_mgLKvn~ZrK;3Work[RVGUiN|N5pH=lUIfqh__yJTXwlIY_`{u_6KZqn`?HrE{Wt[XUsV`R^]Q{L_bUmBq[ujIm`fI|{[pUa\ZVQi[i]d]OURg`oNPFPI9hyIHJnKxdb}XXaLyMJlEQZrTn\BFR=BOINNwdyRl}dCkKjq8\OwXbZ>AjCq\DgmQCHRc>LROi:CltagTBK]bsOlmfjDjBIUCeYGz=vEulcONXfdPszc\LpZzAaPOZON[hZihHUvf}S:esY6G=dPqbgSURTHdGUG8iL:NiSl>g)]qT=Z0^~kQlN[r[c[rb4mW_ma;W[QWYgO\txT6tLgJdTCvibI:3E^ZgjDTltN*adKKyEZygapednHmMkWZj|afynKiUk~h[mqtmxE]ccebfk]vZ^kkwoYWeiUbXBdle`oikim^nmlWdQX^ghKeiX_d\wcfboaaNcP]^n}T_mUkhSvn_cck^eghrdodmspmpWm[gYd}ji^k`oR`WjAUZly_ZiZvgbkhfzaW\ed`WZL^pj{d^afSfehqagfaYjnVWWiZPt^a]cy]`hRnz`izZ]lhbZTZMg]]ie{Ze]dOd]kjWral\ZmYXTdYdpi`KjJZ}o_YujWw]gTtVXkNgtV]Zdl^l]gNcifqoebgpn]eaWYh_lXhrwdW]e[TZbYTpThFghOdvgndJ_yeCtOV[TV[W]v_bQ^_cNhbfOtJ\ciUcejkSRuuc_TtQ\dk^Z{UZ]eA_l^l^ShZQZS\fBVTjj^lWHnN]ajouzRdsXTVLR\UdhfKSh[aYmhV`r~T{pZjlodhZD[dROdvlgXgthE^`hrhwW\axdbljbdmqX{pZ~a]acbWc[UhwkNUfxSRW\NgeajIdqyebjpvXZxJV`SV\|i\cc]8IR^VX^d]ayehkg[fp`ZNcd[_dd`VTd]]RGdnqYQc|cXZkqPjKucOfJPWMHEhfe^ondKEp^MfddidSN\`i_tvPGcmK[okvk{fvBxkNiPdNfYkTfkctc^V@ogQFZw]os[~^Rl`UNCsrcpofo@NfO_OS|NYjbLCA\KP[j` b^rjePO[bVbnnhILfZe@f|P\aTl`rTZzb``{Y[UkEr~NJstP`Gb@WxOhX`Q/\qm`l`_esQipSbVYx_nWRsjSRTkfVUj_[dbea[XcoOWveUZ`ac\Vs]qWVXPt^PfcQ\W`IrJaZZnYgDlZUcZ`tLoEt_cUB^|Yhye\cl\ZYiW`eSsfJjZdeV]U|oN[ZhsqfWdrb{eVpYWbalETbT2lSkcNaV^lYhTHqo{[i`Td[]i_arPLd`bhfYouiXirl_awR[]U[]aTb_bef\rWo\mkcOQKRUWUVnucmaUsU[[`R`cyR]`KaUo[sgWoZ[CuXb`ajiaaDZwQqbaKZgrV[_?ESSjmojmq\eh\IcfaMTrtSeSxhnwdigMqY^Q@c8ysm`dta_tdcvLbTGg[ObW*\mXhxa}VbaY`mxa``^6@_jbdhnTbbgfYeeRQcoR^m`W`kUyhxe]ZgF[Z]kReVfboWWH[lpd]g[VfcQmrJVvYcN[[pL^c\AaiRghSb[aw^RX[X[_YRk}TP[hmmhccnw\]Xfk~^f[qYcaoSLZhTiKgc_A]fcUgSl]YLL[ZVU[aj^_Z~ah\mjt]PWngRn_L@Jjcg\Zf]e`YcbMdbkxjbobhpoVkG`pZe^bqdyDT`ZZ[sCaXyfvV[jd\`LUSseM]bV``ngR`FctatSYejYNWYbXLY^\bz`rushRgyT][ZoQhTVlK>\^^\aZcDmfIdqOodTlgKSpUUleAgSq\l^}koU`lNaQ`khVe_V_q[dQw\V]\ncUq_nIo[l@mqu{RU]>W]M\Nwd]OY]]QMU[obVlmNz]Tb[ah`XZ[dcihci]e``}iRN}Uicl`R`bEav_fZzcihbqYe[c^ytgYo^ExezV`ThJea`cNYWcKKPndOg^ajfjkTmmkJwb]YwZX@q^ZcP]dV]Z`kn[P^eaEjGqbnoM^ObkwMj]^TsXuKTXdte~c`Qwdd]hc~^aV\`nWqd^TsuhXYWfpayUbT[l`Z]glkkapfrmLadFZdVXc_dSZoble]PncVdddagg_`[aq_Kh_rbd^_gWu[Ykd^lccfYbZZYediva`}XbXU_bHXbgr^Z_^u^pke[ovbX{YlfMhVl_j]]Oa[\WzdiU_Qk]]^ebqW[TXgP\Y^g[Yj[XhS^g_kQcjfg\\P_lsgSRZ[`fnRi|Z[zm_\iZ]fjf^rWafo\fgba[mUcfq]_nRiT|XmiF\^U~sVxtkgTVYl]bTdldf_4O\YeapVngDc~\[aY_\pYUcvROLLhligdNb\aycpu`P_xPaRfcktcyc]lmncu{di^^_nF_>hm@y\phqoMdq\}x`kgYbL`NiHP|>uk~cvEYHP_gcZqUHr_TT_uQ[`atTqs{UId\ck]`UqIYgDNXcP\d=7Wg`{IcMXeu\[fPV.nVWY^YMLcV_Nqatd`]vd[hmPkiSlUs:Tk`\Y^^c_npeSdSmlYXmkppb\Lz\[\plilVoT]aInXQScfXdnIy`Oa^mVQKQhe[cfc}Ut_qNls]RagpPZWu|lf_o[qom_]un^bGbEgpNla_V`Uf_QXtW\UFi]ljTUojeZV_X_\QeE]^u\fT]W^O`upL~dfElNWoX_L^WSZog[^eVjycmtVvlpUbYe`DkamPb^cQs^XbHGp\VWRWyLd[j`LiZOndeYj__cjnTHkfvgrb\YeXaYUf^tbSqq_aHda`sTmg[qR[S^`\uCR]]TeIRwe}ahrQRtb{\~I:VcWzsX{dnkj^pIQqA^WAosKD^bOi_x9~dd]qfVRphqtB>OB|ebZe]KgUj-\Bayaq[kPj{fjHMj[jxp}oQMpCv_pUdGsk~Bo^DQYZ\bVh`PgolX]k\WP\hMuZWVVeZGTGtxcReNeCijqMieVSWXZipWP_dQvde\aZdVULVsXn^h[_tU\EtrJqjW`^PW]ln]olSxROYQbRt#hadeL\`ZQvk{kTRYXxG?fk[RsfrtkOkt_?WU\}ThUWXujXMjqaGlRSVg^dnbBS_XuvvVlaGrktU5ifxpk:`Yjl)DWLf_tcRjZdcHxbGTdMPeifUTlL`^[QOgPWz]M\Xh}afZdY^iuredO^9q+>nOHN`S6St`Z_igQ^b`@Op]mRfjKGWew\Vcq@b^7XSYJ]]KqzSxp{[KeHxIju\Az\>Vcqgkcsf?z:sbOkx`zkdUM9if]ScYNt|`QeNXReUfsMB`XXccDef^yqQ}MKqUj`efvTr}\fsQvr\M_kkObdMaHhNwf6ZQKnUtweXoOj_Wdj?Lr`c[fLWNhXVxiYrnxk]S<6jmZ[khZbkaa[dc`^Ym_tWfPggTdgrYiY`SabmYO]CaEjN[_gOiW]blgweZPZPpQb]e_ARVZjRmYL{_IboX\oYbYN\SSRNeajENRy`YqcVJ;`jmZqjnSU_pkOaUg^SilX\i_YlwenIdYi\aceOf\bMYy^ePi^TATJ`YQLX[rT[AOsPcsgXb_fqa_]ZPiRd|]UeSn~S`eX`lQcSbbngUgaZdZn_ItaWSdhpNq[lgjIVXFQd_QSjla\HQ[JLdTWOKnyh\PyFdzXjakrYus[q[ra`PUmaYYiTXlcXRPN^gPqd>lhj\LYuOfVYPnofamlt^kXW`Rba~WavaXPWcobOQK_`pAdWRUlTa]`nJNWaeV_fplZEP^vYdk[Tlh\IUS^Qnbj^WX@g]l_xdcqUibcmvxnh~_QwcKtcdo\bVUoheZlfZOc\`iOirbT\DiNXfhP`f_STyaf]^S_VqaY\PqijeRdSZX\]s`qPrO{iWm]NbjbBXEXjY_^KydrZ{Ydb_r\KebObBN_SNYi`UWZqjbZdcQXoaZh^}MmVQVRfggXlW?CbVZdcfd\ctgFTb{VX\k[q[jYBo_\CR]Obd|ffP`I][^__gOe^mB4\pQcU[J[}XHT`vjk`R}_ahY[aW\gtogY`P]]bOb\XcqejSS[F^cNXc=p`c^NVyfYlKbKug|XVaal\^]x\ie|RC\ed^U`obXrlJ{Zy^QFU``ViTnm[kpUQYYddqfKa_scSciaXSg_]UJoWjUSMi\n_f@G{bRa`bdd\pY[Xzl]WZmlWdfQ\Sk^b\fWy[J_fldp_jQXSckLQa]YZ^^YXbw\ZxhLJhXX`Rnagu_gyYVWbHSoo]oeSooopSfkbwmg]\lZzfU]<[Wam_jmWmaedASa]pY^O^ffVZ`dbi[ajbm_VgMNvQaUeWmaOdedPi]nu`b\_`^sShSua]igfdUW_Yw]^SbbtRQZgUr\`_tGZe^`jk_mb>KUj]iuTY`dcc]NxQ8a]ibO]eMj]`S^HoV^JihkW^ElLmdndu[>esqscOdzX]^[`e^EvgXRZSiXdrjY^LQ\frUsXR'Zb]Xc~lIiR]\GYZYjg]{Oa`cpHsbh\Va[RYWLYa|mYaZbn`sjTOr]hjho_\eThpmn^pVp;]uokC]b^P[hPVfmDhNtpyLk.`e`QyKoPbDbMvaI~kVgOg\aH?gzvimt_I[PWxFjnYxoyRlqhKDoZCLKm}oNf\PUsfTeVgTfja=eAlJR:e_E_pbWhllDGiggb{a[\ZAkalXVRNd@FWT^Z]lGXh`Vd`lj?malChS3dkbUQVOZ`qrV^tR]jUe`Ya:3Xhlep_T\hZ^XelYoeTZZOYpfk[]zOcd`lUZlRSqZ`xbet[IdgV_jWlrdgg]X`cYbLco\bfabz`[bboWne[Qlh}^\goPYr^jlQXauy^jG\Pams]mtoetUiSfua^]nViXfPaOy;gkedai[Zubn][Ynj[]WjIJj\ipqRo[ddufnXUldam`Xamhg5mSaZjpa]_Q0No::jHcf|bbm6Qod[ujR4lhGYfZcYoP>N@Ue>cDNAlgMYoia]B]iZUPLY@l[Si=Z`^]]SloN[W^Xe{YllQSYD@Njpvh`Oy;ShJZgufjkipr`*hcy2cBFIbm[Qbcna`jvjk[UiyKcrisy+SYahHd8XPf2OkrehlMZpU_B_Z8PSB]AOu]FeGalfW^BfgT:fK`jw[RtpgbWXBJpTzoUHrbYLbhdkYKawJROSfjTvsIYcgBVZje[^\dlZkT_alLc|mh^bc_xYVkfLNc^clZVJOIkGYfEJc\aycyYqb\o]=PhXr[nb`YLUZUx^WPdm`TT\[]bj[\abM[`jWgwFja]TXgke\pku[kYU`nPaOjByuaUlT]gMf\CcHXlYP`lgqmYTJavSdNmZO}euUcia[\ZIXeatqFbbN_jK_`nTYTXE`ql`MXQSWZRZQtNqfGmTdJqem^oi^gYb\pce~Nr_oVeJR\`daNZW_RZgL_TN`ry`ul\ebbRgZVf^Y`\f^N]]ep}WdddlRaegkjZZZlr}Rr[YqXmfWlVYRvLa`cXd]Ve^i]Ohqg_aoXcbTgyap_Rca_^b}W]TTlEabZiShYuE`TX^ijjPojZZ_Q^`ghhc[ZcorSqdjigpblbmXybnVXZ_sme\f`Yqba_f\]\ZjhfiiaM^^\]YUkiTjkQnW_akkpjTMd^jbQddhlaVUdiUTjd~vaTigbftsax^fYpVgW]gH\ar_Vm`ilRY{Rahtkfog\ijgbku_egc\XW\_[c^eehwi^dj^p(ZQW^_XSrO^cXjmUaleyZacali]gdceCUShteVLhY||rZSSax_@mY]nfQ~T[f]^S]fip?bjb\JzhnTf]Ua^fuhcNHq_niocj_fmp_mfWRTJSXf~icZU[jWWeabMYPjciUcmZX_Zrjdkupq[fX]fc[_ipf^hhpYuo^iiPK_tddrndsmn_]iV`Wdg]Va\VYlTc[j`mYao`kbeL_WaVezZ[``^T]cX[a\vh[dagc\]][dU`Zvlagc\[lTi\j^SkNTfSTTbUXDMkl\dmk_chfa_V`YPjki[eju_akhmjbk^fgZgZliMXXkofVegjk[dThjOVWkZ`gTmj\YjoQVfaig\hidcjb`YQ^kdigeZXhk]ZcQ_b\RTUQf^XYRgZM`ihUWcqJi[|Y|G]`m\^LSuhggWp`lWgcozkOA[mQGVyP\\`UaKti`bK`ce]dVxZ]`\^^`HeoKahjVprCapkAQ^t;RKEvPXQWc~EJv]a\FSpkPUffjXJiXx6ViX[Wf~Vo`dqj`eLA_ERonddb_QQV]smU_OYkJlnZcK\[=Ojc\X_cPWcNwQYfodYeWcYwY=jifbL[eJoPXdIetmaZK\c?k^bWbH`eZs`G]]iYgUaZlxkhLUXfgOeYtqQZ_LbtfYZeudYclcluaiUUdd[ERUwG`dX[UQxhmp\hFej[aY[[XSPZTlidHg]cRRWMadhotPbPYzYaFf\Ugh[e\^cJ^fZXIb_aVhqnl^wnue@u|SIf6]wgraRgWNZcVh]mdlCKXtmlhmdkH\Uce|tjc]lmj][i}otd_}SbYq\Yhi]YdeY]jPHZ^[>^\JJ^qad[{bbWbbIwsTkPOKhboiiiOI}}IlVifOQ`rmCHWp\hVg\flTq^YMnXbgW`bYZvwmo]qvUsuemt|lezz[~nmopU\^d`vcONjAYNWSYpZ=~iCmb\]Y9?wmcXHbsc^imFhWXJ||upujVMXOu[KaoetwYcDIY`sXpt{q]Mib`P_\rKFh`sv`jUeRQH]go[_mUANaNN[?aFY^_^Qdabi[Df\i|_`SPyLVMtJfHpckYH\Dt^KQQdr`8bi\mX_8]KilTUfodwinBxApqcVX^zTjZrcJywdH_`[fbt[Yv[hgIGUmY`ZaEaOYkhciwb^qFMx^hRgarUdir`sYBWSU`{]BVgce_mm_fRxaT^~INgEZidhYxnX[_\ZSkRUZSMaZt`faaZLR\bPWcEZjjQDcMV_`\Rsa/rx\cfw`\`dOgYQf_nnkbbPfYOjBQvggWRchT_ngLEIIO`X`q_a^Lbm]^cm^Xel]OZQkk_gXXiocQa[bnHedqu_^s^a_[Xd]vjPt`laV[odWWl`]ZTr[]VoYpnMXmY[hVd`S\O[k}JWjfkf]]XgogjWMeW^gc`OX]nTeyg][Yi\m]YYqcl^Po]ocPR\V^lZ_Tsy\f`bamRIfVcSfpZ]Cr`fbTr[Me`ruTZbeZ`kd`X[URkeDMgKYK4^IisSSwif_NR.kw\o_^`QnrujgET`^NqbSslXObJpMOecots\VT{unML[Q]\PHc^oQeUd`>gUx_jdIeVeeCCjfTXMst\c;YkckmgWwh^LUdWDnWohLnWSq\kk_mN]rhLaU{?_YRR{X^WT]GOiX_ql\pUkTW|hfu\e:;}_X?lkdl[}BqePjaTPWmRlnSnq^fzDPPdW~sU^[YtavIw\y[fdUnSys_dYrYoQYNr`Ybak^]c\WXJgSaf[]e_g[Y]]ge]PXjo[h^ZkNhZY_^FaR|`x_`SgQd~yReVZN][}]^WKwg^afeeZrM}WfWX^VRihamW`_YmQ^roplb^YjOTMIaYe\HP^WM`k^\nleTke_nmyiVXsZoco\_^UiOj{dn`\pizchicscaX\odtRf[jL~ZiM_a]ieedeejPbShcficmT_]rU;qs]KeKXWZU\dkTfXp|pfc`cj_dT\^gfh\hrdmfgwm]YSRYqaRkSM`PbZWxnff`MxcRQhjfkfomTXQXonlYM\iT^whejhjTsheYa`lnQhm\aWsQSXczk|]hUjojg^fhkP[SMVs]Sfieik\NhVeOpKy[X`e[bc[\gjcrxjdR_ckqgLXteU]kV[PvpXSrplaesg9jx^jXokjv^gfZyxSxeSmB_pfszhal?Su\kE^|[xXzaZuo^YpHZhkWq\c^aAqMNfjZanVbqT^X[yH[^onBiq`KWOcmFgMIqj]qWfNY`fxmql~ePnUxiXdGn0>\\kwgR`PbehObK=]UGQx`VicS]q`}hUodaVOYaBjqBgYW5RfkGt^pD]oN]gR/aGpmsmxMNTTV5{qiOQcbTcMKbRdRIfQ`o2w[mIkfru\JkRRL~Y_MmjRlDV_dfMHhdV``XguQgaowMmkVXX]cf_KeoVwAGu^lb\_a{jun_pkGbX`ix^ffVl8qQWdZ\VPgU]QUvi\]rRRVnXjoZW`l]cK\fXh]^e_RSlfqt[ZjgwrKjOVfPQgoYak\VdQjTZY`n_PnjmZaUgeVN[U\rc`jquCoplQsUup_ZiqeVfhdvFwk_eXLpUfaM^beppeYdX_{V]hqwQpdwf^aWT]X\RkqRR\}HY{J[[U]\W\bf^{dN>_a~uy_[S[bt_`\iOh]\PRG=\]uiydcJh]Wb@EbN`lVjfVeYGfjMH`KXggF`]cfiH`fagLghNxcj__c`E_ibnCUqXoyK^]po]uU4`k[nqeZiatpSdhNRS^GsZU]WnhTYn^mzTnwr}E}Yifcgjcfcn\[QU@oS\^KiU_b[v`Y{vJf[jTbVzP[?YUc_SJWkzCdev^]w^G i@ll]_tsvr_bcJX\]X`\Z\_Q_\jKV_tquQw^KpJXh|BvNTiheK@Rho]xfquaZeI^GdReQ_tQg`caPnfOmUG]Qc_dBTVTM[h9^c:i\@q\fMTl[0WfTclXi|`rn_Lzjh^}]{OkeeR_Tp\^nVtUckvLeUNVObfW}_dOZVbkS^f]fgRbZzco{_agldlOPhSBbTg^T]^^sSeQfeT|Pl`bYcIUSyVli{dOg_l^Tl[G\ik[`oY^m]G_wnUdfmdTbQ]^c^|gh~Xb^M[lOJEXhnovnojhl(Vf;Yi_EeZhk[VdKeShi@lWf^pB]FjUeqhiesxc[lZkgfkapVzs@_OG}Uw~{_EfZhcCfHZ}lsq>`[chnr:JwZFU_a`Tl{Rm^}LguVsvqTPScOgcej}`ny]heT^c\Z`kdph_qcfLVi]_e]eQticZlgWbYMQ[cZ`Mcg]i]`chjgq^CL]hl\ienc_VVcT`[QfTiQPdh^fj]mk_flYmokr^itkbbn}SNRiX`QbTZswZWRpkPfNlddTNqZbmhf\hf_oXPwNOUhYx]JrZ]]^rfKvhgdVmgU\xxQ_X|lYOw\l\WT^^gUWPcba`PWec]cbkk\1\cb`rNaUQ]MWqV]XUuYTQT]SnrYjn_d][cmbZ_MZ^Sy_TQjcDfX_r]hS_oso_n<`QMdcda_ZQab]Yd`v`dbte`^pbYgmYg\p^6RoX]fkMwijQZleT_J^{daiQZ^k]X`T^lm|hL`eRaNd^^P[c_Zi]i]`sTEl`_H}P[T__]Y`Dva URVlkopSEy^NGnwbaO]eF\XN_ScMe:]`\Lw[^amutsTpnSPqaHf`i;g[?_GnWdNsHlltBQYmdy_UA:J5bmq\JDPba`gqcVofad^FWSzVqjVw'_Usip^g__[fiBY=T_leb]WRV`UVOLaLRdtZ[\ZF\UX^g_ZqTTaRwk`T_koMtbffggYYYeev[JJkqLG``[\ZeeA~itQOGBry`YoTWnv_f]JKbSZ\jj[[Bghabt>]nj{a[M_RjR_ZPX]Dep_icXjVS_YsINcggcM?Pmh[QV\T^TfjYWghiBUSdhXaf}VfgWhc=T]RVDb[`qsYkmej_\~f\P`OvspbhU_Y\Ze][QhdcIIS`Pn\a`_bgq{Vps_Xf_dGUP^r`iM[lPL`ScYdaLajWMfZrinj^jORW_hrVnbW]gap`]R}SVdok]_b_Yd_r]ebTY^`ZeTmcqYiaXSaeq\^Za[qfO`SUSL[Ya\[Sbgpsb[]\ZZ]uiWme_ryScc=Wb][`ameY\^a\X\jj[]ooPYUUyY[H?@mWfTNSUPZu]KsbUZkWtx]krjlp@PRlRKjSRjcgZS\KqjTleZhYdrOnXpmeWjCe]RmRNPhj2uod~Ta[=\J\K_a|bGgqK}Ppc2xs_a[\DZ>GNbouhyXw=SpYiKTmfVIrd]YfmVRP|N=PUR\{bIZFuV]j[Qyokgib\k[@Y_`k|RdceBp{oOgp`TTl\eiQuwiduakmeCtLVdc`\YeE]lcAZQ\fOrYRwsfV^liBP^MO{jx~^PkRNrUpbo[QpVUg]afhcsGiv{jlZ`pO_CzbiR\?xfggfy`ffcwfNwlFf^s\xn`S}oZRwdulbPTkMn``cOP_;}jnjOoU]ZnmiZ[[ImXgVFkR]cI^h`olwXMTctR_baKzv|i]hebigNknSIrRc^bbVIY\z[MU[Dhojg`ZYrUUX\H[ouZW{ZXLpHYh{]XkRKpbd^xTs^eTmDCichzv[MoZYXeIdK_Xj[\_k|budW[d]KmY[ah_LG[]iQQhdjmZrgihpaX[I]S[dpjd\twp[uN`\kGTfXaiXUkRmCFSscTZZJNUm_ZdYOZLFNqkgiaITa`c[\|yp}svLN\qPfkW[daojt`FFjdT`{fuAWMTV[SfbZJh`grqP[>Qn`rtXkl^BKZ>\YG`XXWjfKQmfh>eaYfOrhvfUR\Ud}dULgng=kfZakflgV9x^tImiY\jsbqf~ZaHG]mO`xlTb[jfSTXWW\[\^OePmkX^WbmeZq[Y[\l]-[dSSp_Z`[WULt`_n`us\pb`Yj`RriqGbLhvsfVXUb}hhNS`cNaeXacx[T[Jh^YZ`Ue_bXrLMejPX[icak^i{fH\SjdWUi`xe[J_`WXhG][qls_ccpbcImnPb{eUH`\huU`L^Z_flfZ]a\e]jia^jt_e\ogvWuoKdYNM_UOO`YzfQo~`\aejY`QeFjhLlhSf^ZjViLYYV_gWe`SU^iR[]wllpNe`WbbdCpqobaOUUJOahaLSZhOgh^Z_Vs\aadapb^fTMikPxaRaUjr`J]b\X`KezpXewaf|V_@aa]kUSVUfVpfEg\hZbXm_ZYS_ST]cXauTtZ`sC[eVYZUcrTI]ehg[SUN]pGqFcnmdpI`pp]\bf\WXlmch[abLOJaeG^pHvY}qV[lYNXaPk]q{~dZdhhdR\b\_^Sf^n^PjcbWmMQraeibbRQRpVkshkjd[cdx[qUomd_`_Yif[g`lYX`QZaaSs^WgZ\^eShVMcYubg`[fjlScXfegdWjeXOWY^iXgfXZq^g[abWObpwhZhhYWcelda[`VhaaT]rpVL4STHsZXINkweOYvcj]h]kcdt]cbf;m@K[[scgScbIbbnKSfImRciTblvXtpg`cmZ`gYWhTgCjVtpj[itntUVclefknX_cXLHOeWReD\NhSmhhPM``QVhZtjRcawZWo4LnDDa^OR`[Wa^_^ju`j\iiTa{e_o`[a^@KYf[hS]azfTO_reoPh]XaXgih__^nfTr\aievKiaZVYeUofRPfjePYsgvVeZa_UUbr[RMeeaZkfiSeidcsLMuiaYiYBYg_`gdklqeZ]cb]HwuKeicjcc>qTqhr\hXfugeFSZpVt{nn]hnK_km\ZFTsgS[ObXS{cb\ZJYcVkN`Uqq\fSdda[Pqhabxa^Ppay_lOhmK}h_cmb[y_\VjZoU^it[kqSn}C[U]e`vpbR]THhV~I^pblkg`lp[jctP[b[KdY_jZ^Vf{_S\\mcu\MYXacbiZrak[`VS_SrkP`d]]eOh^j]gDycQi\^kw|cel`wiUq[ST\TqSXTZeMPfUmbY`ZWjTQfTcg`pW^oa^S^{VuOxGUWQ[]S_^_Dza`oYdgcZrY[WyqcL^YM]bOkljZMeyO\HMOVUSMlUVNX`HWt_^GlwT_WzA^qUC[TR`mUawisUxYGyIWa^YaSNe^7J:IWqKecKg0^pb9y|NMRmaR<_`=X}jMjU4QRveamXkNbyZkERvS`MYgdjliecZxTOycSnbtjxITgM`JYYX_eXOl}YaGSnFeiY1PVEjdWhg`kgb>aka^@wgY{WlfFSrcZgwlfJzPzzczgmIfmP^qnXnFYsv[qHaTk^TI@illICTOLg]dxSmlunmlnA?htTRego`YFq\PDmjf[ppv`ZX^e\nTZ]bXgVaunsiT^QNas<}|WwKq`b^OddSTP~g<@R^qKMTDl[R;EdP[M\zak_N_E]rab~icoZdd/l`dgmXlYjcnqQT\QOadriQu\jW\rdnh_cPWTYh^eKqg\cPggdGbs\YdvgqWTk`mPsOnRS]ba^YnxsHW|XabtXqFaZU]ZbcpmCc}\XslqgTfciYYtXwa]goTDetEYT|ouUooewUxRRdCc`ceWeqdiffXeH^fZ_fiXagecqvUYiL`\KIgsX_vllm_gkaj`hcUx`Peym@jgbvDg{ZiYDSgZW\gQe_SYXftfJig_ObjxXNzkRZ=bjT_WdOWdgkLt_[GZjEPVbs\o\SWKRhSJUb\QgVeTQcX\]dXJjU\oWcpPc[\mXjFZnL[Sudn]U\`rFmr^[QUH_DPQi_bP}STL_kn^cXiF[NYTU^mlzZl[cuevb^ibOZDckvjeHYYVdVRfV@khW__`BVni\_CagH^NvgPgcc^Xen?[ugE|\XbU`KuR\[Ntrgi\UiWXt`dmcoRuHgZU[of]nTZS_]ewgR_FWulWtPpnoU_hb`FPOgUCdXXZLYSWaxslPSdfbeQYgTs^Y[idkG[G}qfV=hzXjgrVk]lWQQZZiDmhiQrDqqlaGaXUg`Xs^VndhYV_MdWiQAm^kMXqWOpkYMf[S_dP`i`oQOc[ppPcXa{n^O\vRQ_U\^NzPjeuHS\[bEYmaRPlKupaM~[Y^aanmY]uRo`Y^i^YLwe[[WTOtgbXMdaXYmv_|TdfOzrwjXRa]hWX1[Xabfb]mlXaYn_YgLhpEfKiOXgdoYI_cQnbkT{XbWaa[OPdNqVXcLsU`kdm[NjSrV^icLO`\ciXVUHR`sd|]jiuXGflkXnF]r_dc]nYutKnNpn_QnMTe]wNrcmbjrkg_ys^gc_Zat[U]cVukd`kW]}j^zeYsYOgvjgUbO[h\iQugVW[^P]qLHTag^tdDFhW?ihrrg]dSl`qbv_eejXcY^ihUk_yc]j\f^d`JRRwkge[V\IZbZFZv_px_\zcZPrfKgng][O[TSkjkScfSXnQPLny^ZIbwb[almZXbqZnydObaq^qZa^\dOcpc\\eYb`ebPthqGcmYiX^_ByqjkfaQ]h_o9_qVsiy[QX_d?QgTSdPRRy[u[aaZwW]ZReXnFwabaTe>aeg`k~uclZTq_eqKsd=oUNMW^nn\ctLslcNz_rMcE`Za_baZ]bPDum?WCOwP\iPPWbFIlZl^fgKTaZP@mSca]zRWOs`jXS\hYUjOsdWYDYffc`StZiHc=bSbM_Ze^Tp^`ZfPwfTiP\bT_ymjfbppTS[jOg`_^cHSc.[\JfW}f~h`[Y\V[RY[a`xbgpj_Dq}\SXYTKJbT[FiNQ_fTVnX>`lRBgjhOgXsLfT^mDJ@\gfh=|vR{tmRLT}P_gmu_ifS[prTVGctZOxBJ\WK>fTZdjqldnk^vZ>e}UV`d_lj\dIxS\avbrdOw[[W[J_zzVeXNYU]`hbVYmvLJKehT^aVvOLXflmd^nbXy^GgsYg_uqbU[\mqZXeWbMaIGZadETouROxa[IQuJnd`UP]HcY^d[]\kw^Wm}ytfgWoXcvj\c`VlTbsXr|[hgY[YIqLhipaUGNtbS\o\do_pMpqj[\eYL[dZi]~uhXp[d?hdKMf[akb][gjurh^ZtUch]dkoMzNb[barr\mskbdnllVROP^FVUfZT}_j_]nSRe_bofXqT[D\S_RmPEpabjfsb`xQKlomkiriaOyZ[Ql_q[`XU\\SpV^QwXT`kbbjkXlcg]_UaV]ZTJ_orjn{{n\fbbL[^ibcca`pPJOhmUQhYjUPmM_cV[icWc\^vvtLMQfX[[ajUithXYnOXU]dOTbLO`Eja`vqeQdefN`\b`WZONWlhhrm_fn`coWo`cTXdi^YWYfashnfSej_Rf]slHceQkrjdjw_Qj[odct_{agwUU[RlsNcXHux^KNMoH_kf`fYahWk`UX:O\SEGcd]pO]TuURWtUM\pkTn]sL[NJQWoSzWjToNX^rZOQVRc__Py]\ZP]`do]H;TY\vROr_QeMSeEehb\b`Yim`|kne[UsWiLegKQf\GfXgP^Z[eONl\U[FV\YVKfe=eiezrQ^MhdgMcZYZia[aWP_UPem__^OsneYXvwbR`^jUgN[QdXeSinYsf]j[{kMuZZh}CVliWaeeXhXXfWF`VaVivkgiUMrCSH\W[gsLXhe^ejdHu|PST\_`\s]RA\fW`a]Hmjc`f\u_TThMx^s][nfmmR[XYYhsjvsnotZqb\]hZwcscS]]\oblN~iSPkfG?`SbbRq^\[\fYmaNqayoelK_G`SgNkrA}^MnWWd`jWjkVHa^Sf[ZQT^rbcUSMg^kbhS{\TT[`XUdj]cyszZSif_yLP_ktSrvFnbdl_g`zJ[WSnvR||d{ixqUya[ux`YZ_jf\ka[VoYjm[bPkUKXHfV;`Rd[LgOqWJ\kX_ljYimqLeuV^faeR]|RbCTN}\TPRrjcfYy^YcYq`xVULasWa_fii\`XZRw~myg]Rp^keWflWjWK_swfn^thWNepWrY^jjcmZcmJXXk}cWa_biym@byCcCxlk_vwcgS^gS{XvOuag]ggUmifhPodNXrTtPi_M_y]_rpRdjwlXlV\fT\FeY^ZReePpa[Oh_hft\dd}?gzhbmjKalk[fqTYZ^Ocxbk[idzeUT_p[QYuVQPvJcqn`XdoTfYTZ)UhdKoW_YY[ch|VfhdezhnPgMcju[gUjSNbxudMV^]qihZWZoh^^qqtbgi^`y^XYdh[[^b^YfJdVs]jpLWSu]b]Q^cf[qcyUm^W{T]bbVeVeSZtNc[hUdirpz_alJraJU`wZed_ndrvymXW^WmZoTTXboq`^h^^tVCLpbaR]^fv]jr^RcfKkaaMu`fa[wtmKnMB_agcdfQQMwcz:mxB{EP^fvAOMJTWw[UjYkR{YfnoVjYpiu\Cq[riAtlan3IoZOv]WVvYTkWiciqV^sCTZXcLP[Ytd`YagtgU=Y\z/T[8hlIo\Ye3c[s[+afAykug[J7QiX`|L}lXat]^^Q]rdScT{eW>avZ^4D`<>BUmPNQ_B\kdNiCQEKcvYS^cEeefVMY_jh[VSYjTRkgfWpbkU`M]dkhvjgMh_sUKCaHe|uihYTaQaPckG]|g[NYjrViA`]mkjumzhLaQ`Mnfi`w\czbo~EeS[jazL]qZwbrjtchtd\k_SngWLhJf[\beCo\dSkGrI`V`U{~n~RaIIkbehA[h\[rYkbhOJVh]MvRer^PTV`HRUUCSFUQ|XlqS~]WYYjVzYo]Ks]pWeo}h;nUo\SbxkdVrbRpkf]P_JdYZfvBz`isYd`kpYivaktOLdercaVVoxsf|b`cROVgiR\Z?_MM^cJ_`pmoumXUPuAV_hi7QNoGukYrvlOZYes[fljb`pyml]U\nYJofc^M_duF``}rpYl[j\Td{pjenUR^jQ?uf[YojXSTig``iVl^cVjmYapeNbbALVzuTaP\?T~\f`\vuNVhT\cR^nj`uO^Y^|\wa`Sz{N`xnVgcbSNpd]vj_je`aQMUi^o[Zlh__[TZSoU\ucvugdWjt]ZhhUNeZq^i];juQVOa1SPHVx^lsRZRgdT[efg`kc[VdeaTRe]nbfM\_ls[b[lmaTA\ZZR\VUR_EaY|pn_We_U_]`q_cbacMgX[gYJKansdROV~pbUMep{g$rjkwLtmu~OyK^XoVe]hNcQ_~H[tTP?kQMfdWu`idbgdSSSelbQWpoYjlc_NKaP^ebgsRMSSeWPngfcgheXe[i\o^u\RT[xmlaun?d\rRWVG@ROYoorUsafWvdi`WP;Y\NYPJb^l\^l[]jQpNd\k\j\WfogRQ[IakV[kbg~^SlUf^\S^PRopfPBtY`ZSWflggLiUbVJg_SbTcEhlvVoidTVtVhjv`PkOW?X`Le[NjUikqNadhhGXZQY[SRVo[`fRXfIU^fpVJXd_dddlEXPw^mDo\RhOob\ceSTMRJ\umeUsZ^zJ^|d{UUVy]\ElbHne]\v^kTk__gSTheiX~\SmtqsV[Xb}]pYhayUfcgfqXcf\Z^SeXkWu`wrb[ujWb`P^WTe{S]w]w_^Ua]oTcO\RmnYaeW^fEfkppod^WK^Ro]]]`eMXj_Za]\X_ir`o]Tfa[a\_We\bj_WinfOlgOiqefPambfTWclah\ccOfajgqgyqbadjRemQlcOacpsmWU`jLSg^Tl`m=KV~`yf^a`k_Rqw`LRtXudag\lubpoPiie]f_gihq`]MMWimNeZa]cEV_`}TcdihZCcxhcTTo_dYhcFx]XJSbrYTJi{_bqL^]jiZ_VZfg\n_bWYheTSY]WXbfTaxUY\\jktXwT\^_PgZwattUuLjwNkxgpeUXhuXpM}mW\`^^_LhZjWPZKXcbOglYVe]}}icZhZigfnSYWV_caBMs[^dgYqZHQWZStq\e\yf3\NWmG[kqKalq`>M\T]\w`ROgsluVYbZhgY\d[NNrY^D`YvmGa?DCr?grgT_hW{fbQXPai_^a]Y{EyuxmJh]g\ydNPmk\iSzW@^qkZfHqKaXsefpoM9h`zwc[dWnWnk][S|vpmcj_a8|QeU^ZL_gb^bQ\\vyXZJ|GecWK]\YlSVsq^K}S\kYYgCm|Xim`TUaGnKfaKthvW2]dpRMc`ILaUIVqbdTU`e_isqgRrKq\H]oQtsrcjRlGqUWOocUkl\\l{K_gVZnvPqAHlOtcPKXI_c`wXMTOKe`fS]wd`YcVLW_XWyeZWeQZsdiKhaYpplLjnWZrlUZY]vZ]aaeMjf_xdxdciltRd\T[]k[WK[eRhah~TLnajV{YnHcZbcvwOLiD^m@ms\\\of]fj_`OZg\aS^zJuce\d_izYVNefSk_Y\ToELHVqf|k`_XsKZMRYMoYVlh`jZZsSrROJRtGAgk\_wnglfT^iq[tGdZvaQOezkLE:esYQa]eWNghNwLX`le\mretoac^a`m^Og`\kd^f^vrUZe[wfZSW`^djeuZib^pmbji|YZpU[zUK{[ha_KUY{Q=aWFPOS[YMOL8QcfDUBu^uUhD:dfTl]TqpXjtc]\[fqg^vtFfrVT]TrK^][YW[[VMj}LfQ_{]pcLaaK^|U]nhtkU_PN/:auS]ghgcI[ha`IUg[jkGU[.gPSYMfc`bzmawT`.NDjTcVPj|Hstk]?_OWOYQf[OlWlm[gZp]bkZna`gO^rhnrVhqVvckkron\[[asOWad]xQal\^wcme^s^_mabXkLgwKYi^WSiXTqhbhcUV`JXfU_LeW_YXV[hqb_wgfupr^gemURr^d`]_Q\jTfuXXxXBgmi_[^WUhSwcmWb_Jo^VffaklO[Oejm^[n__bjtipboZuxlYmdUiqWlhQdf[m]WxifVcQ[OtMsZRT_JrXZhOi{bP}djItxtaXgQigfPeU@]_SeFwWRN\`OOD^QiTP^k[^eOiSbjlvrilsb]^VcJYOPYe^k[Pbl]ybZdp]oUE_\Qddel\xliMTULhT\UtUyTba`W^^TZyLff__^mj[g7eoouyjX{IVicfaXafdkMlecOxURXhh]oYPR[k^RRHh3b[q@oxsNYA]P~lO^RTM_EGt`nXzm[E}Hj\hp{ohbEIaZxdZ[`zivZne?U_@prs`p\cue?LE\^s_XMVRg4_ff\0UQ_QS\gg?jjZa-]RUhMY]RemfJ^eI9eEfgmBdWp_T\ezppwV-OUe\tDTVn^fefb\awcT=n0Qdsdy\T[E[BKOaN)iaUzblRPkaYabdb[j`_Uei_nHtU@rmDLLaDBi}Yux[dfXSiiq_qV}[PSZ]b~Z^kcT{tfo_U]tfm1VwjW~]RbBi9X_e^flhF`pmCmbPoh~hgy^`Uyui|FMp_m|ctCYw^WaRkJpAr0YHGnb^]^n^kXmedYmc_]g^IdfaaHi1TJk]UYjSGmbSvy\jlLSivt7bGLIZj`\U@fcm^_W[rT~Yen[__h_HgYRaYgbVh`JiYHhhfbPaRmli_tTSj\cOj]gWCXFu4|dRiV`SbE__XYkkunwg_r?diLPXlkIfghZZU@yFaZbTd_dyS\Sbq;[`cP|gjUh?_QfNgmcVIjf[adbl\_e]@xjYklm}Ya_]gWnggNRUeYPDWYMZnLMSobOcngU|ZpUeaQJZXrQvnxba<~IKQjpfbHCWlUNQrHiPSTIo_Rk[NBC[gVdRE`J_vxXVWRnaneR^_d]]W9T|w>HO1FdbQEngkikUVzV]Mf^IYzl]IE`TOv^jMLWAfR_uIJS{X[zb~KFYJ^sOlf]e[mmVgbRp{EgoMchOfbOcaSNtcLTdQd_m[`YycFsdMovKb]OKZr[PSobMLe^zmSrSkNX>Kg^wZCXggZXuXBb\ZaF`SE^]SSd[d|ekxoIl|hYPp|JNgYT\wEaTZYFMNgsZxKsOuE?ia\^9JPdMk`]K%y@`Vc^deLFIfZ}ARoPRf\FarhuGR^iVU_aXR{MzEliRBM`gQeZM^euC\lGg\iBd`VlhfYeXbfOwBXsSHGbf4lNv`gNfnceYvb_ybaRdaTnccafb`gj`YjAdYYajfjXRUWO_bsfi]LkIfOdnQh\MOahqwcguYG\Ug|[_uX`Xch[hp^^aYdsMTWxE\_XspJWi]]VqfhnamM`sZubV_YglXZhSKbc\oykm]ewnPda]dsnI`VkT]GhsUvzoqFemjLfW[V^PePS[Ohb`xauieyycZM^GXmPxkdb^ds\df_^qQ\lbVUheL[f`[`ogvczsejeNU\CcTxaVhbNOW^eg\VgGUXPY_G`ZXR]eG?AJfbTshFj>\bcaYs^ctq^l]W\Wl`XaVaTAnC\UXTW|QbrqXnYX\vVuTPIlTfBRobs{[CZ]kjT}fSfXurXVZdi\\Um`\V^LYomccH\EThkq_S]ncmR]gcNguc^XW]VchS\^XZ^\d{vpdiiJbkrchefXjWP]WWYR^aT\Z]dqcVucc^ojfgiSc\QKUVh^rVeVz]Pa[e]gVFKicrR_|iueZhbUiXW^og`NZP^hb_qjqgkV]giTVea[\fV^d~_g|`jhdgmN\]v]P[abrX[YgqjS^md]fZM[WJWHScWHc|oinUYTvHKN=CRMMM]Rh[\fuwxT{hEJueoo[]zUPSpMdUnp\kW@kEMMwknoF]\o>jYLKk^T>>S@BKIS]VK}dm[XxHa[UrqzQ]OkWfsZ^[=\n~e_bny^FbOCZq^[r{BZY`=DMWl`wiidF|VRdxffHlMD\viUFlUHq_YYxnlabLd}k,QusM~vPBWjLycLhjrBQ@hucN_iLTFYnYiipmYwMNAdi\kTw_~XmdPIM>paV[o_[zevQnUbVZScn]kVqaW^=YteISjhnGUeNjU]l\gRcq[FfdoiXnkc}BYeWk[jcXOGpOs\\V]a[gWP?UXMq`nWnqbQf}rgCMji_V^WBL~FR;xQRgW]Y`b|uZ_Xig^_U_lycfWf]SIYe[aej]N\^aVbKhfUWyMTN^Ce_j\b|`jcdhh^iXcYlfbVQ]h[hIh^mKahzglbco\dUrhO{jwSHmwpRT^qo_kfgL^ffafc^VW\VcVEVZoUOcg\lWii`scgv~T_YnfccuXp^qlYsdXLakbc^gM]cWZ_TXVl|X=oqrMaRoR~Yrc[jNdjjOSZZL^:ZhSdI_UMXQJhUF\9nlb[Kplpls\_WGcgnBxWi\ebVggESfzZp_fnwxWTnghgf7wJVWuSY`UTYRVUUsubZ^yV`n@UZdjx]Kk^WS\mU`\HZo]NmWhoCb_dXb^IiWid`LWevsda_NhbRf@~cp]j`[dnZ_OWrZhxiaIoQoZm_WwFxWOVTf\Gu_hpUTfoW`jbbiaflX]Uy~YP_cXqr\O_XTO_Xfqo_qb`TX^lo^jkvW_S[YqoRcTqZ_[tarhbjW`~RnFdlgakbQmheXFWPlwp_bZcbWgdWbXVYfae[eKur[VvbalbkRbqdra]pg`abQfR\SM_fQil{Sd`lhh^lxj}hO{TRTakkT`hnlU[YZqr_sUoiigNeg`bP}SUZ_c]^J^eUagTJYDhM_gZ_nEcHXHiTCU]_bOO_eSIfV]PctwQdVVNZknPI_l_R\`YbIYQfg]P]JpjZ]U^`\Rp\[kf\dVYavVPu^s`m\ZjRpeyZFb`]XGRmnjqRS_cw`@\YIvGh@cRG[bJTy^Rne`^TX`QR`hf^cstgFfT?_Sg[h\_Yokc^XGpkotXLk[mSl\eASUgeI^[_f[azef~PIsirshZETp[XWLCfXthYo|Rbr_@VXWbVeNbUdoObko]_ef\YVIoMe`JVbLfYaeT\jhedPpjOZ]XNPwn_UobZeSuinrXkQn[[PgPE^bf\pXjL;_ZVGEgl\^uhMeab]dOe|QsK>apfSiXQkb`\lUbzYyXTiUnCP_gec_`dcVsYiafbKamsfajmTstl`QkL[[^jioel\pvcc{p[VogTv^dOjmUhf^|OgdpGQenZWegPc[Ik_T`?b]r[RhfbeaTlM_as]_nIfZdZSx`cmfzm^bk^X[h\uUmec[HcMGpigja`lU^_TccpbSO_phq`jbl`cQchia\JmWajbhQcy_iwihf|cc[mu]^lf\]eg]jkilgT\{mocgmfhg[_ay?V^tewqs[eIq[Ql[OXWp`ajocZhdMj^=ZX_Yi`SYreS^edeW>X]brthtigdtWdaTg^cb^apdjZX[fTl_[biCHiif?hP[nV\cfeajXYtXd[fVhrj[UfVaTPnT^Ydj_XX|eVldfSO_iset\]vsjaW\^^q^hoqgQgficVl`a^^dxZjOQc[X\gPYg[vnjRlYs^ZoiXccqRgfT^{^LXiLvYnmaaQp[`DbcT\rte]dbTOUo[MZQpQc^VXM_Tu^WYkM_a\_gGZpTdDTelTHegRdpuUY^wbV[h|XQQ_dnjZbr\i`Kdmhh[I[UVep]dPc[Scb^ilTTRwpWja^mpfbcPlobbThcZPVLn\UYMO]`oOocfxgz]QmgZMKRUZWmY[PX^HUhMOYdirkvXaKePX`nKRzHigUXTOvRmle_iT[J`C{n]P_XW\Vg^[sUV_rTOh]XFiecOgZbda]fa|hT\PtgN\dY\TKlkYMYjKSsZj\T^aD_|bhZtajsXPecsfiZGb]_aZ~Wit]TUQuXm_SiehCDZ_PdZZce\|f`]XYkXIlPYXXlehlkxmwkY|iz^dd_s\keSeP~Ufkl^`mo[c[ivW[_^fibcXeNTYOugWHRe[`fmqa]nXtid`t[[YLTYsZXjjbeTaXRjF`aY[NbLYi`PZkE\cfaZoKTnRRloGf`_c[`hdjOnZ`ODlYbglX^\fRYZZOgo^Z]cRvW^rXFZOS]kXWpK^nopYbi]kPkWXL_QcTi^^gLg_`n_rPa`gN`XP`olfQiW|YRuZgMl_YiWZZ`Zs`Jp]ncjYllTU?`jCKcccePV[bda]dYVr~RhEThjYpVUXJ^S`z\gwx^cZP_a`XmV[cPKueM]P`p\RigfZ|sxbmtldmoqktncsrr`lZytirvmzfzsf}uro`z~uvmmb}gt`ogson~tr]wpsynsjgeyxaxo|wtdizs|vitcwuhov}wxnqkevmgdpkyhQjsepkn7iGaswf`p~_mVobg_olaepdddywcZooqohcu}qyX]miv^jldjqnzwfdjrNP\[YKbcbaLiWVaUoWUESXUhif]rhYt]_U^XgdSs_n\bf_sJqY[^mgO~[]di^WjjzwbejY_JwSbVu__VM\`W`rZ`udTanCosehhs\^\ZKlrkzbzsjZkQhKYVpdOi`pd_Tj^fhxWaQr\YhUg]khlSjXKVnuo`bPdhS_reTWi[~\\TdiAWYbbbXzegNfZSk_dQQm[Xfc]TJStVh}uQe\`_dahb^lZccXfhlP[cZX_;`^g^KJ]aJLUZZbejTUTHLh_fVGKKZdYD`\^IYkTrxSmTsHRQYQFYAvRg]vN\VDllMu\FhySUl;d7^Y]i^\VSL`M_Y^SUu^aTX`e_koapYdXlacoiRbfvUahh~roQ`mdKS`\Y?X]eevjSskynmad[lpVpylsc`co^bNRkZQeHeZZ`Lj[qF}TQs\StaV^pjg[vh[]MgLgnhZU[|pX?Qer>jMdeRWTeMU\VOPi`sDLj^hQVR^xgfXrOaeSrcCXRWpPwdXqNFT`qMgpOrpodPeYbicTX]M>pFclTURnYgFngf[]YYXWciWsc?zfkXyUZqQjHk[eMv]l@N|dOFWd&IO]VZxYWTYQ`;bcE[l^LG]yP_>K?[jgGmbf\WbsZ\R]jve`biZ_LzlQNFdb_ri`O_^vna``QfK_aWXaH`hfQeEXnN\wl]TR[VW[?_@df]XkRKY_X]h\ksJjdmbejT~wcMemZiTWvjbRl]looRg_]aat^_z[ed_muQxY_`aXp\iks[Y`svlwlGXWjeYVbx\>Ww[`nfXgpjJf_c^dmgggZuhew]h_ac{rmqirYRYM{fdVmEpnvqiSj[zqf]cm[ZmmLYYt\dxWoesKfl}^][utkL`ZV?ziZioqnejnRnut`aFnKpoDiwOZfW^Ue]\SMdoTai2olgUYw`ucfPcfdnP^mvRXvVhTM]Shetn`v)aF[_fhGbdUcWiYjZOG][mVa`[9aj_g]PXxgjge\GqeeaOVZWO`_NIafXduJc[OMoSLjHgdyo{Tl9Y[iX]\hRQdrUL]mfT]An{JiIildU]jOLvZa`VTUoR_SJWgg^ldT<^wX\Pp`_Y~eQOGs_POZc^iVZ{`bsdXu~SiTngrwdcfi^VRSrnXR^@RSYdGxPZRke\LPoYfmkt]LgLompddYo\TviFWTAhsV\VBWi\f`d_bYy]WU^g_FhKTc^p[_lhzhOm`TccZbRjYdOHc`i\RyH~}ZP\a`fUSchjSd`dKZZW]PgX\_Z]OQRMMVNKfTb\Ldk+rqhoa]Tg|d{RuUrbe_mss``P_iI`Xhw[[\Rq``mi\mWofha:iolqhegolIn\mSV_ajcooc_bHsPW]f[fjkU]fc^nUUHkraZYjSRk]XmshrSePhQkfgMskqhscj]x_oe^t{iZD}YXL__aWkXTLjmubZkpbPeLjQ_MiVffhbUtfdgYZ]oUPk_^c[^_a_q^xZc_c[[kS[Z]Qafige`dF_peMg^uUh]rm\iedp\h`q@N]^QpQEo\_nlkcgt_YacVehfFYjgc\]l^YP]Sc[kEU^k_[aVoac_[HXec\HRa[jNI|inz\ZZt\MQTXhKeHlsRsaaaPLrhRT_P@]]aXOOEe{_ncUynQeUKSnluWVTP]ZYZ~Jr[OrHgPrLXFdhgX[xfQVT`VVQUDVeoYM\yVqD]D`dUZpmvm[hnIs_TWIpnT\c\=pzjano`iYN`Xj~gIXoH][qRRZKP`M\|]JqlW]iciSmgb][ZBBM`Y_glUiIp\gaw[phjSt[3`fNSVYZZiyY`FPjJfJ_b]P`aCWcukXRlkX^iZmhsoY[XVncH\YrbmWUNeXafwgTtWhl\V`hcjS_nSfkYMbbBUUinwljf`[M^IfZZlYZT\a\WcS]asI]Psrc\jod`VQXGr_b^NW^vrG_fZamRW_\l__]m[mqa]_ejUd\[WZ\dfg_hUhMtmjay]Lg\biTYedxZzmj`Sci`adbdlGVois^o`]nwh_nd]^pc_LqdmSbZtdbfrKEu[gofMyWqdwZVkhfjeevLa^MH`hhV_tXgRmRdsiUTS`W_b`]jiIchgVpjidehj\deWVcXqAkgHT_X_R]eRJyS[fPn\afgPpiTaXfgb]adkFn_ZaEV_p`hklYVZ]ocepqPdcVRbk^Q[_nybiufgQkp[e]]jToKVqe`lsiTefS`V[iObjS]_`hiibwgjR]UKfI\VeU`lbhVZnU`n`kVWor]fWdnbWMZ\XNdV[]uwG[c^anveSKPd^rXdcVXXVRc]aub`daj\lQaV\[mcUOss7NYZ[xc^[RJnIY|g`^UjmllbLRaCZTl[cXoZanfgZc_]Y\msS=un]cItyRcblR^gX]m`h]acVjYVfh]dleFSbUgU_e[hi[YXL[>loVgHjwce^\d_uPzRJiTifOhB^CYq[]celL_aTaBoWk\cqmKiVTXmiqQkh_lPfyVZdwRoZYTd^xUaZbcEYauRJEThTvTjGNZc]^lZheMaSxS\mm[]y{QS_keXRYWYXS\mgscs^bBdNxdraPSa^jX_MYgYePKWcJk;]Sh`i`OeiTTUZYfM^w\QMQcFhgOY}a`JoRfxT\aIsoxU\ddZiTX\aasDY]haO[XatDeoQ[^KWbgrs`g~Rdle[YdTvoqkRM_aWYLftruYYekVjTOqjibcj\lZm_`XhbofZoaaqoiUygYVagdm_gdqlZXKW^fZZbcbv]^u]xkTQZPPkj{ctTi]alQVa\a^Qjh`_s_dT^h^NXjVi`f[Y_WZe[aexpW^\Sdnb]\?riYm]hziV]d_^OdQXagKbLHfS^aaq_`QfYR]s\daaTaI]VW]d]UiZ^n_nd[yzSUJSXn]^ojtLKcal\eujh^WoXli__bcxRiduZ\e^i`QgbPZqmEyLc_a\fPgOkrfLCOck_`i^Us`mOSmWeJPYd^K^oeZcWSSnf^UWY`ORcqYhwacqgYiZrkZpcVgQ`YVcoqRXjdThdqHabRaUrhYnMkbulaYkob`i_Y]Q^UZqffzbwi_MXZRR`gYXofih\`VXpee[onggad^geW\hwvVU_bgSWVma]RpeVff\bY_rRe^Qd^rpSg`Yfn]bl^bcq\Ne[wgc\[XWvlRcoa\]iT]laia[[__kffkg^JYaYVmS`mgVlemnpneXcecicbchafprjn\Y^Z[khlcdpa]bYbg}l`UhMl]T^fa^NgnSimf^cZPflpWc\aYjSe_O[W]UqOPgcrX{_beSc_\nYF\mZeW[Z^l]Rkl^ZbMUc`dtfnbEcWJZmWsViad]XrxWPbfnbcZjfTTkY\_`JhW`Wk[tlXckYlKRKTK`NedZclkof^pimQPVcdaR^O^fYgbWXS\miiQ[rnclcZ\]PBb]WFpX`XooxL\kcduY\8^e_H\bQke`G]gp^lidnkhTtRfcoh_xdVkY][UsXT^vsOmSYN[rkfZVijXhPi_\fSh]Sajiwef`qOciXmpYmR[nb[WLYkWo^frVl^^`laUOZV[Z_eZoYhoXaVpYZceffd_U^}uIld`Vd\jeaiK`Vt]rnZf^PXlaSR_YjPg^Sfhc[Xv[Y]\dn\ZK`oos\]S^^gjOFqS^NMkZ^Eb[SZgqvW\Tch`i\OYWa]\QbT[vxqVBdMRfWfRo\Y{TfdLUAiVmcZ^rLSiqPVjg^bba_VOZkTZNW\D}VvfrSj]{``yuf\SSJUTX3PVfO\KWCxy`mXmbe^pJNIILMQ[g{_hXYXd\LnaRVs\zMl`|ii]UtcLRe`XKdYaPnjWa][W[OAcjehWHY~rp`m<{Uhedk_sQbLUPVjTZ[Rh^Okn^bqVa^{har]Sfm]fYUfkk}H\Mh`[fgb]`tVAs^_[o]j_Z}_[V\{XWif]\\nNXgq[p`h_mcOijx\dq_bb[_M^dkfabbu]ViVSW\hehm]dHcwcwDeDtUe]MaXUOE^^SggOWu`XjhN|V`m`aku}R[cK^RXiUfTZai\njf_lhhPYgc\dSc\\ildXj^pmK^aqzUbdPbcJRo~{MVB[fTpOer[M^_i]YXSCU[JaW__aao>jlSqbabbid_f>yXk_VxdMb|cGapNUefbRTl^[aalbjT[g[gdm^m[_\eb]S[YYLVTOsabhgZZY\YhZ\fcTuzMdasbN_OYa\]^iaIj\cV`_ct^`t`V[eO`tYdVck_ayMZnh\iMrPPT]dbjeUZj`c_PjZefSYh`D>ZdUIYO[eWWTg]dql_`]Va]WfZaPGjThMMyLhhGYw]aY\ZlqbagDgMg`dHicStaViMVPpZ^Iuco_nL[pMgjmes]]ldYWlLZmd[[`fKihgc`e^J[^YeSzrmy]lsg[pn|`SW_dZ`O]egOpttRXO|\ZWDR{w[rYa\jiXgO[_hXV`J][[pZRugjiY_V\v_h?fR}QmWWDSvogWSZNahhc_TuEGZWJhjgmhvNNZ^}LgNXleFTf`{Q4OI{e\mjSiehG[SeWdVURD\da\WacI_tuHnEXw>JK[l`OfkX`PZcva_P[L?CAn@c[R``QsvOkZGIcdgS`x:RpOi]`JrX_dcgYV[e^OsumKMzwYLQbC_ZNe_aX;[fq_`]]pwYbdN^\Sg_zg[gbT\OemZZolVa^c[ZXh_alWkliW\l^YRqW|[UQSrYVjTObU^[iBR__gZ^f]PZ[]^v[nMZri^A~_xUio`]e_hcXV[`eaovXp^f^dhXr^QZgut_dX|obsRYklWfaiJ[l_;gkt]Z`k_WRhLAdafL`hacSUia]}NVXZf^if}y[SYepZd`UhX`^iPiY]`jrf^mR`cSdmYI_XOMdia}[jscRhY^l`dajaZXeUPHk]tdVbY`Xq_c`VffYjS`j`p\fUnacqb]nWEa@WcgaLwfor[SXp\ZhoiccaoaazrkwX^ZdWFNLndgi\]fcljvljWc^Y\hT9]iawo^xeU|Z\zgahnPFIY_[oWkLg\XbbX^\UTUZrjndcuW_uzw[YVwiDUtnfYeSbe`TUChqqmhhhVneUXfWXZ^]GnWqGmbVQam`vr`[erln[bbZif`WdcMKSZlkwfXZqiTL_aHm]qzZtu[UMX[JkFcYfDTho^\LR[^FWUYaPkdgigimngX`TgR]]jmcgLKQJWl[hON`[[Odb]]]Y_l[hpmhqO^PdVoVcnwyW_wZ`ikKV\s_n_mgedgg\L`na[i\[\mv[lOHikpyj`[Z]K^MY^D_oT_jX\idrQdnYnfntIbYfWIQX[]|`gW\RNhjIbdZtrY][MYwWZvvKhsV^`x[dyZXUzg_QeXcPggUkg`ZRodNO`]KVn_uCwjrMhqjwXqNVgfXj``MVRgjbMQad^\]hlWk`]Peg`bMhgeeaObfZj\aXfWKeU\paaYcYOhi]n[tnfooiEOa^O[~m[b\_adYj\Q^`b]YQ_ILE=]y_k\M]ZnlYVyUkNluZhtyPJn^`eVYj`HdjYgfNz^decmmNK`[qKDmNs^ioXW\ZP[^Fkbvof_YD]mhVNObss}oPh_OVrQaW]Kd^{]^MUiIQa[\sghdanpf\PabrV_cYINy]OTjLHH^nVNdgV]VnGN@Q[Jd]\VYzVXZPx[L]feKLb^UJ[oRqqf]q^kQ_RebPoo]rfJqz_ecbpkmf`oZK_\paxEr_alE_PmSkh`k^ZVVaVRmm[`nppgfuR_w]]Wc]]]tTTZfgZzXmpjMva[bUgnagXPYb\ltj}{WooQj_oc=^gapfNfZXdBRNGhkrYgUt[^hfWw`]kaY[eg]PUdWZ]^bZbe]jaGeXnfiMi^hlKWce_bKgZipynUXiogi`isflc^[\S{f]oZlgj[gTp^ThRYe[\yLod\j^eN9Ya"hYh\:V{YMSqCWZVu]oEcmBeti_MkVloN`HMJ^fmcjnnb[PewdpZXi]bpVnbi`cfdbOL]pjYYdTlbUw^p\MRb^Nd_SfN~a_\bZxXbwosXXc_mS[]h^QlVrftffolqZYg_lo_icaeoOf^jlU`]fXd`L`ibqnXwmrdjdglecLgh`sO[oNaTUa>_UbkZ[bXe\Ym^grVbXiYbSpQ\KUbxhec[pwbXlcfb`X`lXuicjZeYec[qidmhTNhTlJccsbZ^he^kJfeIkpi^M|uhgmcqZ_k``X\sod`igYj^KWWQtiYYdaihjP\MMLT]U_mX^\Ufmh]_VMLJpd^ih\Ot^hdWY|sUDOMj_`PNhOiXWij}SVpWkg`^otle_^tcYZOUiigP]aaqpLg`nllRcQUZXaobc`W_imd[]\f\bE`RWkjk5[[ZVbeegVWfmXnen^Jq]YNpSX^HiQnlaOP_mRBr\k]\ma\^^^kZagaR^TxiJ{qK_d{ei^]Ph_wQWIy_jJczcsdMXNXQoyjNHshcf{bda^jmscVZ[PZZe>}hJZIdic[h\NYKtR[kRZ^VadaRPU^MV]aQXK]Odgh]fNXm]m^ngkqVzcx`M_jasdgQ`zoOQcsXbfOddV\DUdgMiYOngeYa@ch^nacFnOgQ^QJL_}a?]tvgjg]d_VfZMeZajekj]URgTYJaWSsgef\__Ne]\acRkst]Udvj[yLjNx^xiPexr`__cZ\fYTP[k_V[Yxa\qCyYl\VSd[^WnQyqctegQNa`\hi_kjr`bb]lVTMMddQs\oF^alEjw[SPsqPgj_q\OkXZX^mmTMwndV^ehSdoYZf\vqJSdlz^|RcUhHg{T^e\JZf\eEanZhgYIQken^VqX{gigmRVMTc^[ZplXerfaKYrayb]YZe]|NYX4t`W[j^[Y\m^PichUXmgVta`L`mY\PKkpl_KeMZnNYR^?d_O_HMXkkc_lq]cl__rJbXuhVVlGMP\qM]eh_k^yvb_\hYk[_\sOTe^mebhpivSOa_^ioTQe\^g[ZoUHjNZ]HZ_K]k`RZLp]dVodp\ZJki_^d^ofL]nbfXYWtR^YX\t\Nfe`INZuZrsr[^RQ\Yi]dfSFdiYbislNqY\XYdbnkfekUf|oaa@p_\__adcWdnb\nn]b\b^ZdjQ[kdcacsSOfUeforey[ifGcQqoXBgMNVeKkRuJbihgXlHufa]S]i]sG~6IZO[Fm^WVJZ{sot`[XYXlJR}VphvaekV]ebYSWcXBggYo`ihWy^\wRcmkib_UKKK[YUXZaLnPsnY]XGMaSqq{YTcbPexdi]aTIMNbWuDhXr^J[LRoZdVdvUnY{7O\][>sjeKUeU>awSeey[ZanaETN^qaz}`YhkY[VlhSc]VfTYhneieXTaef\dLkaOaO]qnlqVbiTaYSdo`hUskfc`WUBglUhSee|OZ`w]]giW`m\~`YX{WWjgpj^_cq}cjP\WXeaTem|coToPTsi^fh]QVX[URqYWp[m\omWqU\b]^[ma_M|LTf|povPchbp`RhHSY_j^dZ\xliEgRp_qsN]bL2]kHAl[c`nd_cLbilhndKSpXdXZjdQykyX?g)DeOWNR?]k[srhyKdg^UUY_AmWLkQTgRgV`bXi_T^^mYjUQ_oW`^SJSjipU`SDRyHX[\Zpnnx[pj_tHfMVSfbX]YTVTInoz_ai_xlbJvmTdg~fl=jalgk[h>US|PSrmHwgPf_bXLUGQEaQQFFfsJT_@Vj`N_KirFDnYkUmeYplc`k\K^vajHbdl[gihVbpPg{IZAbgdhcvfIidlUJejgLORddekVc\tQWV|Whdl`{j[cn_Ys\d[VdN[Kk^Oy8_ZW]_hrcdUXmdKRXgpceR`Y[bT[|RcInlTm@hDTO\\n[h[PSdRxienWnU_IdZIYlhbshT\KS`YKN]Spogqcs_]`S\jNpa]]n[ald~[dXPa`_`Q]rUghpTd\`cgfUe^rrhLch_\Y[h^ebgTZMtyj_JbX`b_Z]]pHqg]^^dQzg|^occ]d^ZyVRnRwi]lu[WdeV{jU]VZiciRgKV]csqcsOif\R{TewafebjeZ^ZorjajWesUjaqgW]PWtlwcnhgk_orjSg]eRpZZkYYdfc\laRS`rlXWrYYc[mgliYY`Y`]gzMebZfLbjap`cpcaYXsbup`PlcRdYe_afSy[^UQoiSp_]i]n^gcxLqm`XZi`n`e\_Y[p\_laR`iWmdc_vVV\aY\^ZWYOhaYxU`gYtZWUT\kfVg`cjoPWamdSa`hnlY^h[ihbZr^d`jf[XdrRSoe]cbUlqORrnWgjakga[d_cedoWgki]\eaOmkeacf\aWcaYh4SVXWbcPoSZa]nfRdg[eWi]bbb`gZcwIXZfsgP^f_eoaQ[UVuPQg]boj]Y[f]_UblgbNjmc\Rq_[ZWaUfXWkjn_Rl[budejbZdm^geUpOdjEezobgZP_mXU^RaQWQlaoYa\gWYWko\lcuxs]_Vajn^mjdZY]`e]u^bhb^UTej_hi]hdrsPh^[^jd`[b]JPaD_f\`nZav\e_kRbYhOSrUSgQeU_h\XdS~ciiYln_`[`fY[fppciZ`Yg_c_mcXXTK]WQYkSZEKqgM\dkndca_gX^^X`hs^kZqdTnohmhkatacgb{jTbZle``grpl]bhuicaRbS`fMl`KqiiYXfegjY^nqflm\^`bu[kj_~YoWgPdT]egWIPJVlYU[RnW_rr\dXPff\YtUfWzxkVDs[\HNvjah]fn`QYfVpzjMNJKTG^thX^XjFqRhj|aXRelakdKhYMca]fPThhKOW^QZcDTi\BU_n51xW_oSjSXWtNTX^FQKUWZdheYX^?gfh;dp`RSQkhj^biX[RRpfTmQ[lfdumUE`kuB^Y[lHd]QXJk]Kk`sRkN_HdgNgiE^zZYwUlc[dS}||\jPamjXYc_OkqUSlZreI[[iQ`QTxvX[`ni][tWbPQqvUYRUdx]Opdim\R^JPn`^SXw_aiekj`[]\hWZLN^oETrs_acZohZVnQ^aZnYUnRNd`n]jZ[mrYBQg`iCnj{TkfQdbSjLxds\o_jY[j^PO\zbJQEmgodpii`UcaeoZOi_rQ`j_SOfdkeRbsBPgadsmh`e6e\j^rtbonin`m_jez~dOxVacdi^us^fYWcq^dGVgOkP[VPQfvsHa_am_n]exRa]RRTtlhntQXe{T\sblwHJmknA[oXbpkj`S]\oWP_Lgegf[TCdqo\pjwmUmwlcsusq^LbyZvu^mmob\^]VbXK`iKrUK]\lWQr`}r]OhhBBjdQI\HbS[rkpbEXKmceVfcYHV_w`Zek`xme_^HfmWRfncjWZeac\VhpPXeRzdaY`kTMZ^_n}deeQWKX]hcwXyHR9LOY[kcSdOWf^rlVPLjQZobJfSm`eULi`UoVb\X[niNnijkXSVYWegRmVh\{cMqB[h]Pcind^fegWahrS]b\gataR~ZmcZG]qmoWhP]WdVac\fFgcf`wYfjmteP\kWsnvmtN[biRbeVQ^ysnXz}TaUXpXX[obsalOM`SbO`[P]grR_[sUPhKdXQQ\ZZhL^exqabToSUK^qeohgcT{d_OilaMbmjVktkgc]YQUblmmzSIakq\\VgdU`mjefMlfL]a\LbmkmntxhVbXfWvUQ}]tfebfY_chimS>ZUu]_z\`^p`XiMKpV\ipWfEk5NYXRTZxMiPd^RwhlSeZsY[TwfwZln`b\^UXIW[VZQf]XVf]XThOo^xkT[aW[^WpTnlgf^dntYgsXNkJV]CQoff]UXSodwPUPaTLldf{R\emcHRlsXxejvTGsep`Q>[\XIM[ukViAmXqgIfjX]\^`\TuXUZkuaWSphMfl\dmhfWPVgb\_cYUgtYV]WczbEZoanrjbi?T^`opX{uY}bkI`haEiv|fvS\O^bl^]YeZriXLVyQmMoY`c8a\Qthj`sS[^`Pdjhsn]LhtehVWcgfWQIVQVmgfWmleZnkbin{o\kfe\ic[Q]_YjyjgoQoZ[ViYmd^Yc]`X^lla_kt[TnNjmTUTZj]`qplbhkeg_twaTcezSVjYLWUb^YReVhcWpXazx^ki]eccOkigb_hPhNemi`YIlRe`P_YRgVZf]xb\k_dmSVYeed_[{iVVnQ\cd\bqfdhaXfa]ngtb`^`_sYpUyox]fpRRe_holO[dZbYUebp\dpiXXh}nQ[oiqZnSPnkbWuVcwdTYlfol\N`yPYtnhRes_i]ZTlQ`hemn`k^bS][yn[uroqTfGe]YQnrQ[`i[hffdZbKuRiOgKbT]Wcf`c^[mdVkOggqiap^piJiTAje`w]s[[jdgzROxTodetsSnHk_sxii>qfeB=R>q_J[Y}NS_X`wahPiarZYsUOVW`_fbgNwcQWfRa]ePRlcUQak^b`_HfXf_InkIZ\gfeJqW]oPqhmG\KZuGVOphs{mYQ^`\}kb_W`wJXDPa]vsF\uH[CjuZcef^ib^MO^S\^ogEUWaVWRS`^cQ[f6bdlpawipI[yUDVU\ahooVW?_hHbWcmedQlubPnqs^g]HXqngOPXS]JWpfZgZmsCSJafbqNwVhf[[pKacXXH[np`]]TlfXlcdqmh]\Stlk~]`TZiNTfkdZ\p`TVGRS_f`geiany_{p\ZXZ^IURieab\aiQZeUtS]pY_ieeb\\mhpbv]WZeguVYmV`jptU_TjJPPi^a_|_p[G[ngaSQf[j`S]P]RefWWcmkZ`YY[hnf[bg\Kaf]aYj`phuYdi_`oWmcPXc^prDpXcbYi`QSd]dnRZYQT[__`[fnKdcmdQaINGkN^SRJRDkXe^SwfX][[XnVYfweoqBN[ohWJgWYa[_M\\JkX\dXGSZnVWq`c\hrbDe]TuDLgWR?]^pNghKZZldVZKUhhSzFi^bxnUlk\A_]QWC`o^cb[TZLTBfBUOZXSdT`\KkcRjVE[bSgn]SSecTX}HQctTT\a[kvW=XhVfpWqT~pHpftX[nI_kLwZA_lfa[EbP9*gSijMUO9p>ICBCSMWjseWz[}hWfLYc\`6TkoQhUjRbWebthbNKmblfaUeN@i5Q\jnVs}C?BZKmXRZn\l[qWZpdbFp0Z~SdFigsJvqSIpM~lh/O[Sr=bybTDU8yskgZKcNfdHtrpae`Vm]msOc[gbiYbmdqbjLQ\dpYf]cOjqgW_Qg`p]PddaRr[jecacTatl_VLTEnvihKa[rc[TdRYeqeUocZNfXhio^_`^LwnbXjlvgZaxRXc]SnWVxejai[`Ghc]Y^U{zap]axbmXabkYr^\ZghjPRmdZjUc\cha^RRNb\elmi[^dojQjZjSr\TsYYn`[cRrLY\rfLW`ki\\eYm`^Whj^kVQ_is^Z`Uq]bUTunismhPV\u^TX^yO\qfjy]JaHdr{]J|dZWjLlZl_mfbJsm_eZhVTTTudb`lhi`WPfFXgOhmOXfhmSqc\O\amwZiaqeoVOPyYlm^JPS]r[`p^YjmobC`drhoQfeipiakVa]rkmmHM_hT_fumTOYgQSgVcPg_Y]SeRolicjlndcpfRTSa^o9VZePx_Y]`YVRth\kd{oef^oc`gS~aqWbXbithTZSYriWPP_\FkvskccsYW\LZVd\iRV]QWlHQd_RJYlfgenl|QCQN__SX|ot\aP[_Rc\PaOs`ioajnz^OVWa\`haIXjepm^fTWnafswlda`bcVYYvfiw`admo~Zp\WbkGCZ`Q]`RjPLajR^Xao`QYZcV]^GcpNnf_g_l^ifU[rZamXW^cS`^a|VhAcxRZlVE~ezj]HUQP_dumIfXPQXgT_cMm_ZNQf\[T^^jusId`HXHj]tSQeeYPQ^lvWViixb|QjI_\vhUU[^cVL`FQXYdhQeYZASi`aodNcrV\OTjOXfRWOepkTEnXjkh`XXdwBhNd]pa^Owcn\gq~_ZkW\fhjdeSUUMhcRekNm^f|dNpZVTVLe_nq[X\lVXcN]ZWt`Yi`hZGm_gZ{C]d]XSTP`]fknrw[ffvXibh\cNZ`WedZUlaPRlnhWabSV[[{S^[VWXofqQVcVhZsibhpeP]aDpVfbqdQVagU_UmcYWfafXeadVVio_d^_^^ai\_ggiUhdV]lqgZ\T@GRpcgHQ_vc]buNdS_[deYxan_ftGWDF``ailNP`Iac~^^W[oQieYnnaagzriWRebabhTdUcQqc]s}X^cgbVMV]Ss~eSeLcn{W][S]Q^efelYljtYWfZmLO]qjLdbdYIlM``UWWZeLzPVXUhWrhlV[b{ffSPeUjUZ]saAZd]\h`^Vndb`NledheLYm^WokXpbyVYo`cVhscgIU_U^fd_qsIKVc^YejjO\jc]ddZdb]MNiMXinnQaYpplOYvi[\RBU[eMkiibdfjXXg_cdtmT\V]jz`NWbhle]Xjvooj_VUaktjs[aXu^JW^l\flI_bPkS]WMlHY_^HjgsjWj_]XQdXXRcaZpd`LfO^NhTmX]NgtP_g}dWZeRd_k_]hMkYuar~Wfm>XecMfhtcJbJPrWwQojhha[`gcFqchPbeR\g[`fflcjzgPWXvhlQWdGhbaj[ccy^UgcUdm\S^hXl^S`am`\J|]`ek\fuqb[rYud>qXgT^\cZTNcxI[XR~X_aa`lVeiZcY]cUYmgY^`ST{H}dyOKbdfgSM\\``sfUfs]IW\TeL_KYIorkS?\ZGUSMK]Bf\WJkiSZ\U_iTcHimX[P[gTrBITU^[__[g2nGgRFjd:|cWYv)tgVh]|LU[aihhM]ER`GaiQheKsZC]RXPSL^K3cfOS^Xg]K_9bwUClpXZBc[UKSgYd_vdlcn9W;JmW_WV_iR=jfnYT[[tR`PgEM`]j[QX__eNX\]eSi?cy_yPciTZ{^bgd_\lVoni\bZeMj]VPm_FrC[[nU\GZe`YY_SmpiSWZWXhTtfOj`jkB}o`KJYHmZ]kYpdd[`maM`iXS`hqm`[ckSba`[XxZ|^`c_^bS}SZ`mba^btV[`h]LO`Ub]~jPLh]nNP`dchtFRdRQTwf\faTUWVh\[zhYgW_r6mZfRtVs\pXguJGkVfbfubWq^geYtdia\j[cYZmd^Pqd\ZNf^^Nnk`[kmajUJ`^YHpTb`\jXYcWjpy[U{flej^hSufQXSp_]heF^teXupdX_ecljfnP~]`YsMKfgO]`myoIjvyz^sSqPXbKdk_fP`g\hjfT\PS[KY`atYt]dl`a]m^Tkf\ea[fjsieNQxQojcm[x\>SmaRrwb|KVilBYilPaYfNcWTmqWQVPeHcXYTjaYadb^hhOdmWlNcfYhaptN{ednvb\YQeX]]OQcggWifRPW[g_SN^XiLVZeo\VpV}_aWbioZfUTh^Hnad]ekrVfj_xdZPka^WkWbYqQ?djbRWqbOb^sOk\_e\h>UY\bY[Y`tUYp|dc_bb\meSRWcZTZgYpoS[XC`f~LhIbepmg^SLy`hPef`]bXIbe[^ebj]^_nnRmj^NgeQyFnjt6:SfXoe\a]mtljR[hUXnXXxvNY@\_lg]dVWxabiWo`[fFK^QPRT]Nqd{g`n_g]dlzkdkd[ZWY``\XCZjrs\^ltkKKbj{lkrY]FgN\Tjbh\e[^XpVeX\PeT_]g[_c]\jceaJWd_pXhY\zlTmn}h[oad\c^jbloR[mU`WgdM[XflSIJ]jQm]yVo_aeilOdDleZV_paaxlb[qcXV[mVh_PKjBmfZvfZXrP^d`TeiS[VMM|g]nibnnnqjktpXQYjnr_VWpe[hg`eaf^aSkg=YtI[\wbhngTjSnalh^hXcgQdlmkc\M]RZ|c[KHVmKxa]Tb~ZfXeiU_PPSaVS@WXjeTU[wMMYub_ltY\i[kPOG@[XcU_Yf[iRJb{SZROZCV_cobeyWh_`nf`FC`QUh[LtWQ]KYpTg[fM`RTnlm^ujhe[]qXYa_T`XUiP]Q]_k[]b^Ju^t[]KUaf[O\_Ydd]mhS^Xpc\Y`\XThVaW@YPQkm\eacl~fJJtx\_TZZLdfZT\ZV@joOhn]qEiqT{]UhTXSX^[ZZlvKM`GFcUm`Wnu`c[OyTYPbE[VlGBcTZ\fVgFdoKLT[Yik`Y]NmUZlJjLxiXaW`e_\[`dUuw`\aeKbhh_]hOaRaixj]eajY\iabpz{nIy_]jb]WsX[K]_RJ_YkYOg[^aamslVVkiraujR^@YapL]bIiUT[_Nh`o\hteQLiowPfPTa\eZf[MZiTcbhRkX\jYidXcla[kde[{^i`n]OyMhRUjTbd_]V_ieNZVYafgnvuqhMekWjcn^RcicaXf]Sb[Vj``hb}G\\|Y`V@XpqgYtTUVLXnq`Qhhu^fbxab_U[qhVZmw[XYXRr]fOYeuX[riy^caYug[Yjj_dhb]jokj^WYpk`oWhZlbRyZ^^f_`OhxnehxY^Vhe_hggbX`f]]oQkOqu\VNeqsafWlhMlGcojXllRddX\U~QmMllZjc\Xpok^Rr`cn\OlNg^`dd]XmotWbw{m[ifhaW]Xd_]`U]nMvmQW^[qmlW[`qHaj|^s[\gkXc^saQYTQdvSg^imqYYdeZ[TbbRxM]^vLaynq[SeqzilZ[O_im[]RPJNOVWQMYbSrkl]XbqjdeSe^skkrYmpTdbcd`it`\Lbgb_|\KME[[]oOa_Zb_rXXX]QWbwf\\Ycha_`mZ[Xjhm]ZhQpIb^ZeZUdo[VabcfZ2^]ZdTdox\lkdi`T}HlVNcqY^jbRSSn\YgZN^fVPcNRNcSS|\UsSdPYne]uYkfix_pNkAhhnS\UkLYbmiLgTbhijxQPh\b\\Xv[uZ\JL}lLmZ\izatX_SM]IpZbfaPfhiq_`djWSd^uVjWB|UPe{Xv`bQcb_\K_Snt\qRbjImMAaXikYvPebz`{hZPIWuG}Hkcu_qp``WX`=esUZ^aDYlNf|eQaeP\m^_`dpvdt|jMnKUb_h_aNL@HrresJZwlxaZR=]cSSTGYL^Mfi^fG]GRsRSXQn]ogKoa_mZflevRb^\\l[H`^O^pv]fgPVY\_YwHg\_Xibig_avyMNmemO|Vh?~qF_G]_@TdtQk?d^HflrVQ=HJ]__iXrbaTtwmZ`XUicg[^Q]kXQ>`[MJ3HfuDH[Rpy@QQUJpmNPbQFJ8`rZ^^j^aRfZWNqcojQ^?>VDPlofRhuHnWaPf^uX_dXbnGJ>kKX|fi\\IQQXFW}DUYY^Uolr5mPK\Stv|]YDOzLnn_^U|YqR[mp\R~j^s_`VD_^_e]XX\ikXVjMqgdW;TVg|GMvVbQZockR]Zv^nS[hh]jnpWQcCjTUUbRidhc]ZhZfYs[rb\tgkdq{MRXLYnrIlNQhS{\`RWKe^j{YaB`\iciOhd^YL^QMUUSmnjWJXTSsbk:fe`}ehhX\PONgdaaXkVubg_TNba~_o`kSfnYVKb]_`_TdeY`fm]o_N^^wfy_ebZiY[}xU@nYWqMqsoeQdk]d_ZeGdUHfW^tNsWdrk`qhgXYLZ`Sfljg\tVQE\g]iobi`cOYVWqcq[\gjt`KrafihrTU`_gURkgZdrwgn][bfqabUeY\jcV[U\l]BdobYMWfdbWm]Zc]U^[`bboIwPms]exoUCljTdaQ][]kVJ|Xl~l`Qw`I]tRRdf[\mdVdiW]e[[^g\oV`dWNlbiYRe^mjLSXQPg}l_bt^bQjkRPc`Kac`cr]YlaLqRxGKerQz>]d\chYgcmHWQjS_hrSZ]RS]dWzxElbakTui[[\XNV^[NdnauH]^_O]mldcvlNttMSp`SY]TQ[\^JhZceUb[p|WcgQ]s_`djav^]sYZWTmeYfe\b\=bn\|_Wwo`leK[JYdlyR{[|kZwE[QRcgS[aqT^aKvX\QZc[eh_bH_npY\h]e^ehmaoLzh\fqu_[alZS7\xPTR[~n[vi`qPxSV\n_Kf\RJ[ek[anhYf[\ncbN[``TxPf`YXPVYPYeXbT^]^UUj^RR`XkXdSiQfYYlNate_R\Ndn`RW]HhfVV^^Oe\UsaeeTkcuQfmWb[wYn{Wgedv[f}YUh]VVlkhm_STyWPXLhogiW^T^^jOSbjYpo^\_\okgR`a[fnlaen[W]UijEOd`uTdmdhfSxK_[Z_bVY^Qn\[uhhdf`^hWQRm[VaV`UjTT\c_r\r^Fa^Xi]fdqfSXTTybYf|mgRNf^[vg]TqjUf{ili\YVc\bJ\bgXebbf_pvic`^rQnPObe_xhfhrR]xfYshi`TpXdYNrPaymIcNsC>^oqbVQFCZacj_XcFggfJz<{UVB@diVf_`iWUannUq\_}]_j_Y{ULlp_rbAS]Y[YnTg6@aQ[TKYePeVZ@dBR4QZf[b`xHTbiHYXsv{RPkj9VbiGocgfgrcQcQg*~oOaGvWlMWjmooseRIPiktMqnvyulxbOK^dyahQ=hW{jKMgggSu`YmowdU|PUpf\}^ndGpcpoi{h^Odg_S\eaoSVigNdfyjUqbKv^rEcOjv\P_S^^UUKa{Xh`Lcg?RrjRY\R`gSicUrbYnePlkdSeU{SGq\acwnhQbXz[AU|iUzcvbTbMgWu[~bd[js@fVPf~]qheVTEccyf[vj[kjxdyokdonkfbf`Vl_hnOzmb|vYyg|b=ZMTLq^`M_MvEabgZYrdMmN}IRsriiOhcsb{d4hgFb^[`JY\SKbSQTMZkbXm]msZpDifphobZ]`niaWc|YbQKOmVfqJgwTdXadqliWJ]ZZkZdo]PzXUQejcaSr{`SY_\[gRj`i@YUO[cdl^g=VRskqRXzEPb_bgofTZqoOiejYW@Zlu_xMbW_mK^HLuE\bjLlz|HnMUSql[[bWZ@WZO^fsqhwQOhI`\ve~}jLZYX`M`oQpktqzpghTVgKaopdgf`ki@TfcPztVVOf[ZOZkRY?eLdddQmogbVZCtkMlIE^lSk][MPbxncc]\MOl>OQkdqPxa``U[XNSVam\n\u\w_dR^rEj\{XnrwY_^bcW]kyhnD\a^Ka`f]d^Z?kw`asxltJve^^^uW]K[JHJ_JW[fISTWL]pkdLjQlQc^PZ[To^xnT\`XqVQ`mqj`QISrfUEgXgZSR]`nV^WJcQieSgVKmpgej}[[TXdl\MUmc^[`dM^[iXRPCNo[PG\bo[rONdQSYb`rVJqlcHP`GadciZWtew`cMG[fdIiPY`wkZS[RrTQuiMy_k^mLitCBQMciY_au_f\Sn_\Sbqk[WPE_xS^F\MIdofVkKZghXLuKomgZeX:fVnMddUafWO];vNIX_SoaWpXsh\cVciLPaXcbd@Z`jj_fMgrYXEjYWL_PgbZ]e\KS`fs`KdTE^VbeO|dcMO]VfllbXMjNYDjcNGIgNcoHejgevSlnhe?IGn_p[ZilZQEcQ^mwuqaxgr=iSZ]bKBfVi^YUNQ{F}ThgOfN_s_JN^Msn^jDYhL\dSV|TX\GR`WoF@v_VUVYNekTIZ\bDhaDlXps[ge]iUEKvJadYxhrUPeDYiX6XjgQxq_n5eQgNWGbg_Q[YgovRq>hQHsXndk;YNVVtD\wLZh]pNRmCHuRc^e[4s>fClHI^jYeachRPZwTPNGfHGeI`M_Rl[V[VJVZeneRnMWahGd^lQOeBBWP$>RkQp_K`XlaPBqmMSiUTScfTS;O\]nWKgVyTPu`eO`Rh_|RTTxhNkMk@@`[Vzf`geMOaqX[N[ORZ]clW[tiQUZd]e\gisWBeK-^=al^gl_yVMnVLoligc^jnXjhk{Y|rekpp_Kz}_k\ODhoKf|]W}bL|pooL_Hys\fv\tpdjzsPfaidpa?nXjnTxyIv/lkbct]Z[l^Njkc}``cf[bmYmjqW_Zievwsnb|>eZs]`a?ac~rwYnYvq\jk[[huO\q^qkxyzdRemz_`bqmeddp^]ygipoqubhI]WZoecI]jmae[t@XRg\L_Rlzb\NoXpLfkkZDZP_lrWeOjGJxWXhaIXf\wodYQOGVgxD}tVXcebVMVhbajaaSZrn^ZrGPwoglRVjxfPTXfSGZ`GCWhbHgQPUd^Xp\sXaiTNIbsPmZLDhtUisvYNPRSIkuXN\d8LahZnb|WKka@DPYViWh?i^WJbOMJZaOTdkCajgbTVqLS[Zm~NiCodrnoi=O_w]hKiO;BcZLoobYmaPLwRW`~mU_@nWOy^p\ZV[_h^AkJXh^\QR=Dm\vy_kef~hKDWn\JKp[gHiUrcVO`sRkOhIb:\oe]\gpi~Sqcm^^SRg|{[CTb`r`eIdcHVhirZHmVjRXLbWYBhmysXVfMh\OTVegWcW[ce[bOh`ceX[Z^YPUgSWZ[^iZicdifcIUoeatZwjhWp\Vkg|KRXliYRcK]jWIxgp\gejx[[WUYOdhj?vas`jafvakT_scnhdhY[ek^eh^RXTjT`e]kl[]VY[MjaNVlefZadfXv[bOg]SfjqclLgkTxiTk^iUeOPf;gjmdcbX|ae\l][pRcfTjdh\\gjqNZqSUIkYvUmzaaaGfqyIya`cLZq]~o]VkB\VfkB_\yXXiUccjfjmcSpsabmsidZ^hhdtypm_LSLloW]eaNY^piK{XjQ^`oplRKRSsTkhKXKhSyT8RayacldKbP^Zi]en[fkPbtPlQfe\Y{XMSjYkVexp\gmZTLuk]^FqXHgj\j_z}a?@mRO[e`Sr_ZZen|ZakgtXVaIMXkdfC^hdmAK^YgHZVSMZ^oo`dOZ`YibCc\WcNJu}E]JTXtRJ?eXyOWLpqCRNag[}USHjjdK`n[mefaTa^X]p0sS`hWp~RPp[_IOCUvj]`Y\}QBbbXnlT`rN|Z>OSXbsJ@CDRp_Y\ocXfZ_]ZIuiAUlePFnaao\nO`cRU\Mv[WUfSWq[[eXqkXZWWclSBZXqX?YR?UmIbdsnOZrni[\V_ZidaqibfRsjb`bbXq^]pRY8q^FTaVqGsa[fXZpX[rYkPPu]L[Pgk7qhkZVshyUH_`FrUos[jZ[wUdaKVNU\Rg\b^^wj[WcAi[cOmoZ`qd``{cuixq^sl`db[aY[yOwgIsZTvT_fz_D_^cXbdulNEaOzq[TLcRwncSQpY`fvMtc^VVsCho>yc}|jU]rgfihZYJgS\vMf\aLa[cwcaWv[_w\]T`V]xkS]bYJ@N]DXK]W^qt[aWVWf^^boYy[^ZjZF>ZzVh^LhmdZPoteQlRP`F^VDYzYvxJIMImpOQRT6fP]K_4nW|WnavRqNj[_Y[iOfbhdyQY]WoQYa}eBkTPqfq\Q^VtSimc{luvYCiKNSBN]xeWZ[[WXRqn_m~jlfbTiyl|_fae\hIhy|HXLiuNsLops`MeFHcncdWRJ]vkUdRTXkOXDaeFTqOXN\BZFhkGiLhXgm:]fOgnRQw|]kr{PXcthY[iYfXch]6mlUrpmeHOngK[{]DjgO\TNfGrof|UT[amrn_]jVuda@g[\lzHRZ]kW~iTajT\UgYlhtVxCdX]ouQdZlTg]r[jI}ZpHoKCXQbl@\b~\sTYMGj~hVI`pbj]]vfBkYzZorbFqRUQMndgS_cX<\\TN`_YUbaOKgalgQue]hgV^_gbJrh]GVW_9eW]WPI_d]j[qbMqhe^ssRlgZM]q_Ef\i_y]isjKrgXq[eqLTO^kmc\vscb]OgRS_Qg^haW]jni]dYRbaNiCV{lUTdjt][`lYg^afXkaNnDcmcUOlbTZ`PR_osJLqciovTTYN[YzSgcZbUMW[TQuuYkeaal[ZlGQllY_sS2ksYRqHpL^JrNNXUTL`bjnYodJ7b9RX\IV_v^if]VR[^XeWds[?nTP`QdrXedXRlmvYkU_`UA\^YVKdH]]S>f\l_ZdXXpYgU]e}zk[_hKnbNaQUaRSgiKTU\q\UZLCOr]\epRM[NE'eZ`as^iGkpk[h{qPRWVcWDmxWVTbRcX~XR^|bA\Z_bDOdnCA[WWlLlFT=YMYjRtnXrFl[mXfQhyvVwQqVcUu=OcPd{vsFWRs2CdLJ\FZbFpU}_]OsSDbxExe\amtD;ehOO8Z\Rc{}Ndv?eS_YHhqfsLjGpp_uxVTltXVatTN_]a}xYb]ekO`tluc_aXuUbHUTfigaX{MY]uHaQM[qmj\LYbkPMX[wfp^Jyhda`ZVijyjrm{]\abnycqpMk^{mU[rym[Vyl__sUNJKCQkX]XxzK^Xjt\zaBhjVPb\okunuobfJY[`o[YfxIp^TCXgZWJL]npeYjYrXc^lqz|J`i^hUVgTMOt{lYgksWcTH_nJ[uvfSFTcMbJXNVlWgL_LRQR`jZR]KAUOafVZKl@kcq[QR{y_e__Wk^cpcdGQbLJWsupWOc{{nZW[leQlV\pI\l_}iYe}MNhwQgIbmV[~Q[KthqUGPdlrZfXOWkP]raYZL`qMOZruheDZ[[U]GGafaRY[i^gv`a]FdGe}T[LWrP\`_TXLj]^Xe^|gX|UrQ^ZGJCdbKwBTojSkST0Jm9\xZEQnQreaQcnMp|eoY\WRtdk\V\fc[eYiW`Sq_nVac{lS[\kbPSd\p]RYvdtZe[mqxQ\}}XVP}`YnSLThTp[qIjb]xROEVHlrmeaEOGZfhigmIkaQmS\^YsZOr_{dORhzZaS{SX^nEIe\YdtRQWeuhbne}jpTu[HnF`_Zb^[zdf_abb_WWmdhYqrIgY[zY\VmRWpf[fMg]XRLdwreGKh^ZzxG^QF>dILVSvji^SjZcaRRbyQ\]]sVURZ]P]]iKk^^\V;d[U\obNfS\o_P[NOlfOBsns[x]nUWfT[_jP^YtgJcan@iRUlajf[MZYFX\<@aX_caT__[XnjNYfvKiY\RVmg\`NUFq[PSY[_aWL[AzYjr[XbGGpkTfhObrlO[SVPXWZaMGcZp\[dX_clN\YYHhi[c[MKW`\Rbjasp]K_M[]qTgsYgdcZbW^jdhWpT`icW`pGS]ghXekmRhiY^jRic`N]bnbkhnQhg`jQkX}h^`ple_ZrXNb_ndak_lXcoQWolj_hbuUjVtckVd[YgTYgx_^`[aSfPh]^UwYbO\TWulQaXes[aZWVbnZijbl]_jU_\eWnLPazk[__`\X\_[l^eVUaJ^Z[Xc_[V[UUlU_dviZbRiTdVwfLaFgkYZ7]bz`[Z_Rghlk\sVm`K9UpnGAo]_f\]dV]wqY\[]Qb[ch^RP`s\TOY^lZ_gQ\hg`gqiSsPmcdbbJ]GefxSZW|SIcYkfbe@VdYj\R?XJwipdhfXyghcjPHeY]rh`OxgV\TWoYa^YfV][l\NSJLbKayZ_a\XY[NiQY^sl[VB{YMe]inIYiN_fN]_NP[\_[latPIdn\URZmvK^VjwWrYQSohaIVg{aIPZXR^zLRjV]g^Pjmlgt]nBX[Y[uP^_VY:fdTeDOd[l\EnVJ\^{Pu^KemajZUu]fPd][\^\]fRsnden>Z]MqchThse^_BIC^ZZePrdqPWmoETSbqgXGwbjU[NRs}t~YkevLfc|yeZSdNWwbZo[i]tpsa\B^Q^_PSfXsVSYlsF__arTe^YLFZObpxl|Y[kwU_[VgZRoROrdbPb^|\a]aa_iYa^O/[cSivsi\|^\~NU`aRrPqr}cRREO9@~yuKE\kmU9tn_VdhKZh\`dxnCJaXWbUhbwh[Ldrshxy]`cR`a]lRFGWIw^YkUUAd_fcletUdSh_^^^xpZ=h^c`daW]]hd[wNRliMdYayYoT_H>d^BibdhAC\WcggScm_]VPxahh_khh\_vUU_w]cmVZgb>[9onVYTkqSvim`eW`sHRd\KVcAdlaTZZdN`IQ`r^[bts[jabSaZ\a\c^c{XFVjY[mcaV[mjk[bYqdXWW[S]^m`f^W^ceD`XfaP]d[ad`UeYTJ]kSji]ag\TkirxK\\\O`p[[\iV`_j_uZj`fc]v_b_WNfdOmM`qIknZUegdOLiMYoQXnti_OfR\VHqU[scKYt[oo^VOc_cis^H`iR_`ZeZem`\cSdmRlro`bledLf_qj\U\kdOfdR\h^c\i^YXgsoR^aFdh_VbZbfgbhW^v_k_[hRVv|d`xbaOcf^wZosSnbiuFvmklUOhl]VLpx`[\ckakg[moobkj\WY^WsrX\X[ghXdmJnHYR\UV\NablTR\UTcS`VKVePz]D_RZuDZbimoeVZgejU[JTWk\^U^S_]ibm]_PF^mTiU]YMolIStEZPSgNm8QnvMUnfHfv`mIIgXkVx]Yymo_iD_cfTWQZg__hacQhmm`hKXcRYiUYdHaZbGYrf~ggYWZ;_Zdi9H[oSwQ?bDY^mmPhXiqW_a_z4jpam]}q^rqLdgh\b^o\WP`QCdTPaXk]g]RkaG[nklFX[VZsZnLu[UgRPHRSX?WlXWLhOYcDeY[V_Z]Ud]_ei]\`K^WWgS^i[WkSVaNcfyU[\OiXZbweRhDluYwcRd{d^edZhlcaT_egVzKU]x^IsZnPT]h]kse[cX'UekNlR_TmmQSY^Z^_Li{TdViix`R^W{o=QWfK\Nn^y\]XvOSnXigHcKd_bZ^VkV[vg_W^Rcpqe]maUwRea\mgoLo_R^T`bI_bhhMzc?aadMRamekgjZW_VbH|~\GjakoNK[il_uJy?^lXzOW[Ptii^akhhcmXVW^m[YFkdkpLbkQOqmpYN\Q]YV\tcrhni]fOVS^R]SdYfXlGbqQs]jW`tgSIkcliaGZZcIsaHwiwYFRY_jdhTpY\ZsUklYYQgYp`rYkeRU|hlZu}U^TpmhZ[cFdXYSTdmY__NZsi^Mq|Wp|SbeavvWhXOk^o\iYkS[cf\`_h[f`_QHcWfVbeOcW`xZbf`_fVQV^n^\ib[e`tYoezXQjrX{r]ZX`SYfNvm\^UpfgbYgonXgkjPZ`PRxPTce~`aZZck^XjXocheXd\^cnf`dc[]_Zhj`dWVZVuPbkHdx\ccffcL]SlkU[igifm~gVT`shUml[UUtVVYX=dFNNP`]kaZNlVcsaW^I`gZ[U[n``Sw^]atS^Z[;gYislXgLTn]Zq^pccX]}dZgY^iWY^MY]S[ebdOTVlVR]WHU]dr\hZYxbjfhjiu^`YVa@ceWSmfQ[[^gt`^V\B^|lUUnkr^aD_ocDbTt^AT]mghcjp^]J^YjPe}YeXgl`_qbThd}]eiljcdg\Xd]cvkSDSklRNYq`cR]W{igfed{]]VMoVvz[db`_nWb\^`smcZrS_iXUKR`qqYaXjd^_YegddvW\_[|f}mbbQhYd\YSTydXzd{kzZX`qoehYapdcxecjgfSYa\ioor[hdh_IcryqgeaVsife^LPeZr_t~g^gY]lltWjgcOeWPXSRzVZhV\^^mXeqeo\hbbe_DVqcXSen\]ddQiWNbQRL_bhngug;|cVf^]lftkd]azNjfcbqXcnnWb^X`maLYRkT|\tf]_n[zaOSVUkOY^XZlpfk^i`WhR^h^>bYS]QbcUWi]d}jgSxaVf\\YVE`dUU`L[cju~Nmt^\kM\_\WRVK\FlrOCWigHwu`lsaZtoYl^cUyr]gQWTFwn_?ZnVXX6dWKRd{frkZaemhLUEmZcVaY^nN6nTN\jdcZbqlVMoEDXTTLWZpmlTSbSbTklsPT_FfHPERKc[ORIEsm[fSWzrKFUUPL>U[W`]eaTdehfpWZTPRkfxY`oZXbqLRa\NgBNoMSpWTZURW>TV_hhZSZseaZZqW_YSnao^kSs@djS12P`XhLXmPdO^V^l]E~cH=B?_NbWuYQPsZ]JIhuU[RZUwanQBOBW'IAScIRsn[nhU8dkLRXBSfUquGQD=bdd3Y^AcMNjd^edgHYRfW`dLcnxpUZl\feTyNEgVNsiVjVbhxzTzl?\]qTTlGs[nNmKbZZnUl_hSMYbpl`h^__bFZEMbsgIWhSiEt|N\\dKSU\U`^uVE@sWW`P4^b4clVV{gFeR`MYP]hiXf~hZqjVIpWMri=`_jUNR^[dgW^sUO\m_qsdnWfLL^]gQW_Mzfn]`m`csS]OdUhpmDgqxJe_pkeebg]_p\lcilW_rg^QtlfnhQkea`kTda_\kNnhRjduZdoyP[RMcgag_dakhpcJp_skggVO_ftzOYtxlfFqZQ\SYfiQhK\TUr_eomdelVapeX`oVlUuWkMGa`R]Ymslwm`lyh][m_QSiVs`dk[^V]VknckLFv_ZxbCT\bTC_UglmlYbb\kkd^YdY]X[]^PJM]yV\UwkY_edhZ[\Oct`nPcYaranCVPX]uf_jaoaZbGkK^wikha^Wrmve^q\Ynreb\Zp\ieXUplnakz^oVVK\SVt]XXXKbYw_H]aip\mlUJzOmUb`We`MmY_f__yXLUqu7UhYavGSnNgQTsUXPgYhljEhd[\WZ]VpQ}vKNQZSA{}]Adh?ml]hvC]g`gkUmdCfMcTXHLAu]acTS[RkFXQK^aMl^]Rsclj[hGhGu`smeXmaS]MqUS`wYUkNZYbQbkcUvbfseNo[HOqVImk^HTdrTG]WaiOhW{dsfXWRPmUXoPcY`HAythfWcCNtGYhJUvJpnraR___ip]`XhBpW_jjQdZKXpjSZ\mbUqqU\ZWqhf5&U;PRghSFoYcWEkQFQPhkEKrQIbWgKLbUuVVdbRqhDl[XliUTaS}]cbbfaKlIrrE6ZZ[aYR~dMygKUOcjoud_WAeTYVQ}_KWYYqO]Q]mjUR[PZ0izJknYcd5m_=OhfSZ^z5LTQtc\;X_Whd`=g^]rQznQHRcaNib?fIZ]fib4bMpU^[_jrUfgYYjZVLe``yMGc^olZVbkM\biQ_Tq]PY`tlj\T`ZVJ]Mvad\Rc\OmYPYVqe`RQiZfu]lt[V`VQaZP^wpiK^yP[n\bdeclRTXe^TdaTmds]XaetwH[jrtQlUkb[uO`dveP]tHXqT5[nlb_Xb\QRnWR`[mTXbTiOVeh`GQQ\_cYTzXgZklh]wNpQhX[WdS\ilZoXiGhWVdU\5bj[D`c^~Q{lRtQNlcaRliTg?WUiObhPaT]hck]dQkQ]fkvwc_u_`eMbeL3gdL[aQ\|juJB_pe_motPbgrXXlpg_Zl]Z9aKg|TV[ghwtdsTcbXnf}HXleh|b}fYVbrVYeRVEUW`nDqSZ[ZnRV]ccfwUQoxcZ_YXaZ]TpVMyZUcaPlYTNJC^\hkXc\TgTM\jbZBhQVZF?_W]D{`Vu]x[ntbscX\ggkd]_]SQE]Ul_dSnkQcZAQ{\XtZiTXY9T:aYl3Ro~cUQCZ]6|U]ofZwnmjeqyXWlSrRVV_RgnRE6L[IkWffL\WWKoxkEMji}XOrsN{j`[_Pk^o__NNoPlmKTU~\VHf]WjxQekQcnbavq^lb[~lOkRPnU]H`]ecWf^nj`^WzMV^KVaSVQzQ`ic\c_OYfGUBZvia=`pa]gWa_OLRNZUn_?b6XiUF_GoUibe^M|Z3qLiTU}ll]cR[O[xi]e`meZg`e~cF^a[OdlYVjdpqq^YmKW[@HuzNR^`jazWW_^vvBpcQVPacWxzSmU\{oh`[UY^}YVeUY]mQc]YWPI\UJQ_PehiHs[ApIgesmld[XbioQD`p}adlcMK|V]\5YaDs_JxdXZhgs9WFj=jAfhVl5IGN]E`NQ3dHfaqRjmX[TIJ45^hWY\gGwfkS(M)9JIGKjKlHO9[Z\=UdPDfVWFYmWYLasWuijMm=Qoln`RKYMZkk^YVJW]L?wTZ[ZMSFcXeIjPc[FmVdcWBlKhgHFYXiDb6Wi_lRrmbSffaNVK`c\NT{U}dx]qb6cyfo_Rdm^fgvZb_eHPucZYk^\e[Ri_PdVG\I[llrkXdXVpc[bOcL_VqN]PLlxJakSV[gkjY^igeebnl\EZmqQSU`Y]xq`ZLb`>nj\WPQkeLfa\naehHbT_ztnj[ngL_\dPpaOgM\Lex]xUXTK`pj[h`_Tma\bubUy[kkVVZdU\:hi|`^{[huU_TXg^^cdnfcAvekoQ^V^iXUgfhoejq]X`g_[hdY_a`PyNjZukPioVe[GcqZUPa_RghwVnj]Z_ZZ^Td_w^__jY^ogve]hS^Rkgplfez`x_XSzedk]Cg\gyaoX[osw\fXodara_dx`dJLcfSbvb|]aogd`ZXd_tXcfdnTqROTVdtZd_KYYb`cdaeOae\_V[jXt[lj^tqo{YW_BGDjLlfMBcdgf~kdeIs[lfLcr<\Q>[gg9Ohxbf^]SPdqS\\iylpft\TJcAjDfjS`W]`UbWkeacjmamgtZz`ooVrOmV`[]dUWwSwPaegPUq[bds_Z`Pn[^u}KkiQaOLlSb]jZbYQkuqRjbg`WQxgztZekRyd\ZObDg_eW_QfGmXZGm]IXu^a]b[cNaUDStowjnzVLmT^fXftaEgeMQ^bE_Lniy^WYZfUxJXZs{cj=AZjhlZhY_jwjkkcIJcJak^NabbXfI]jl`]ZQm[oWCNBg__v]mdbRacQD[\HZf|w_vXa^IZWHKkgfQWq[WhYLWfHq[IV_EU^bar`lOph[YXBp`e?RTN6|]|gB_`Zz[|rabVbT]ZNlfYPZ[kjtrmlhLMbo\lnWMm]MVKVdORX\nSCYaWiiPJKL`jfUdecct[Fngh@Xfsd@^Sac_[\`VMhYxURiZsZRUc[|g[ZSP_rv]\ZZ<|eb[iwsQ\TVcZq`oZbXynUh`fhNbZKYcVi]Cefg^imMZb_Z[qdSb[Xb^hjTG]joa^q\yTvbGfaq~J`~VMbbiSIzPg_}[UoAh`W[a[{YbaLvUGmgNvTIGtDVr\jiUkPYRo_X|cxdkjh{OQrSoZi^PTSripRUmgCfB`iPSjokaWcOJH]H\fW_UcH\pflSEC}i_i[nsYiM:vhgV_aXLPSgtvYzV`iRyVOhQTJj}StPXYecfeee]]@PmvQcxJW{pgdm~uOZ@l_bqbbXaZR^lrVWbam`eo_bn_Ncf[ZUnGjiGLK`o[sngThROU^doZ\Y_binoPPnb`fWiTbQa`ugcXicXbl\ZbY[Uq_`vSZpwf\XNKWUpOTzqrnX`^cgb[kk\RIhTlUOb]Mr`j\ngDjQ[aZP_qdaYMRUln|obm[Rod{I`Z^PfhSbg]zqxUZXfQzS[`Z?ev_it_5]kmjvYV^r~OB;RKKmYXGfSbYto]XbuXaKQrDRZndAkdlcOl]WNYo|ZLn\`{rPUb7FCbqegVee`fTZcUOGlfOwam7S_VegFlZOT^\@_dO`VbcLUrgO;sTITRjG2cV]X[P9TQTT`[TrRt`XZkWBvrVe]Sn]ljOtsg]]_LWTn^Y[d{bJUNcoAOeI|AY_WuF`[VrLXpCcilZ6XD^`hYwlT`d{Cvc{iPbabdcglcKptrWMbXSUYaX]BZicX^uPJON~esfMxUFa1ZzOGhVa_Sa[@VrdKspbT`KhhllX]dt|W]O`[LWiinRVrln]SXE{Z_qmRiq^hWyTf`b\rjqO{`X^SUWocvVWEoNkmVdpQ_jeW`DRt^cL`qjWt\mkxcMhSodUaZgsNu_f[[__l_sablUOmVokjgjS\GMrYTqcpbmNfgDiqNVVNasce_VsVnWc[oXYQQHVIKSNiPaRP_bRcoWVZdX_YpLY{thb\rYRJZ^^d\~_lLqREWEJf[eS9aHgqEF6\]xy`axl_]RQ4\SB[cV[nhjYN`tpmTsfgriWPfVccfcQwTXal]NasD\r[eh{k[WIU_fqotWc\v]``_`SaljWg\`QMYr{}MffbZ[beegqGomoH[i`cWqQJ^uQ`GGd]UcXiOE]lRbjZg`Wh[WWVR^\UnXWZ_qao[f_lZ`edSf]]oz^eIWY|SbrRRBeXf]YwbQ[de]^hk_uheff`NaikjYF`fp?ZylQuJ^fUv`@3tvWV}sXDknj||mNpIlROct[F8\]_EFn]T``eX_}}YK[U^usfxXS_RTltfjKgCyaVkSkU^sDPhNuXojjmWE_wkkbq`qYIapgZrceJgU\DUCadmIUjn:ejads^f`a`OSdrnW`knttufkWfV\si`mWlel^Z^ffaGT\{ngqrvdk]bgkC]y]Qj]__RYxlYbaYZjkZb^r\nVTTf~waznk]fKNfgm[SgXmY]BjP^xu`Xyb]]ja]MPS]^^jctrhbl_lg[^]k[{jjS`][jf^oa`imdVwHv\_abrZ_pztvxQdig[]bhqMjgXUQy{\q\{xe\ghRgTgpfXTr^LU`L_gefprlploG^[WfUS}qFjukgRXbV[MK[kQuwjk?_T]Q^rsBvg`fibgahpaszjmpkZw\\GmC`njiJv[hnnhVY``ewZq[kiIpUSZfbfYlT_Gp_`e[XsKh/EcgOd^^_[r_YG[tjqZuklCWanQrXt=gxg]fQvN[POgPY`yehZahX]d^nlRUJSyMRGQfYRBe]VIa\]TQR]etHzjP9S~X\_pkf_sXPXrQMSPx{[eS[S[TPIRjWcfhbtZKYdeIGv8X{B[[au^Myp~@/p^M|nn][FchTTxO`tp[rU`QkVRqNbCs[{^}_Lw}i\g`oHa^LaY\YbLgf\YYe{gmQVj^XjcR|oNXp[FxDnreIQNWZ\{]`YecYojwRj]CnElXoX]\_R^j_]gTMOdEuNW`\t{aXmjn[TT]`_WQUiskoj^ZIYXqeRdmxi`^]dbTVCaYXWhr@\nlgn\dYf_\u_^KZsGv]Qeg\cEcVqaUwZd`\tmsJWdftZU`nea[F^\M\YjZhX~tgewdWfsefWqRnTFLGgJYahg[P^VentMXFYishuzdYg_}MkN]vkgm^gM]dLymbT>i[aRUZMdcgwcBUdfWOnJaQjSqPxTaUc_WvdWjMQxnao\^QMhDJvpdM\lbWJaW\wTp^ly7Z_vJLXkXY]cZt{kWOsmahu_jUZaZdnJXiwEiaUMeeVuzn|okNs[_gbgWIbhkWUW{Wk[fIhaYEZjm]lR_bzSbTxZR[Oibu~Wab]fgfYAqpqkejm_lOehd\^eJY][fPq{RVfbadTf_`|SQ=`ZJOYxi>YpbhJVcUrgWltF^Gd^N`Q]JfZUcd]hWAXNdor`iOcZV]DJM``gicx[WK\d\Hf>6]LjFki{Qy\p`KZnFyVhrfZ_bMDfhUTXfXskfMef]Br?RnoUiWXjd]_oQ]grt`hpb`MFY_X[cyVYkqseXXpeLVVr[cNlgH`i[LAeThl>yiTZ_GdWpbzRGAk_gX^wdmgdjRpviS\i^}s\h_JR]YV_]`NJ]sWuTrWsfWU]^icSqp{fNbolowrdfXTIPkjgW]Yfe[SdTez`LP~fXXQfm[ccbVaa`[blOeXj}fb`wRQb^Y^boVbrje^buKVgq]iU\kZ^ZhVa`]M^UuSX]|namk[`^WNTUqY_\je_p^hcbxfeY_kj^OaqTb[WIOU[hXPk`iSg{ayjxftf\HQWXZbBnLh_Inqx`^pdghca]QTjamJvVY\QeWzIfs\WP^^p^mUbX\c^gXMnkKUVZxXPHatBI\xTOnVbf^mvbdPJ_X[W]YkO[j~zVxnpaL]pYfSim7PobJ_llgg[WiUFqX9qQol}XkREN]^>iW[]LtKRU^]|^TaPXZVTompdvCpjswmzm[ezdkbTOmIs_e^Xk|z}[^OpachqYfg\bz``|^\NXLYrX@ffb\ey`jTShkeguIeLaNK[V\hoMlbV_\FKm_XvnQfZ~:KJb`jKUGe?PhZjHZcm>QOWr[pv^akpdUqgoTLRROaPc]`\^eHpTG]`YRCHfzfe_Vq2kJ^GZUWRZADcabebFO_`m}IORqY^XUcMgQeXHm`[v_gK{Cc[JbJoGiPM^XbD\}bGr\Mq~bcW`[siTMb?]ORbTF?pvfLOK^dCq4RUeIPvloekXavItz|k`k`GUlXhUKjgbsWcjP}dbZjivDi\FPOK[\kbBR~e;:S_QaZH]?{PblKndXaBT^rhdoJxZsiOngwXwhcOan]b9lw[`TxtZcLQ]=CKJMx`Qbpnd[NhO`WamsipPViWJP];X2yKOJzRkSkTGl]Is]RHb}@d\NVnU_kKrkpLlhBFukJwhHZm|aUtN`[YftVakaCtitec_QZcbrJqHu[|}OGFnkkTe7dHdb|h\aYjKjaUd]kXY=WKRgbpJxXpZmkjflQzjeVnpn_Y[[f_S^STpo]Z\d^KpSXN[vc`iiZojw`rqNES~Ieq?LLR`dmJeV^`pbqW]jVVXXPl[\RTQcbXUMd^\ZfUgbiis]mda7i_zS`dYe[uef^lSP[ksZXTcc~UeURoL|klg_xd`hcM][]RoqgiZXbTzbXyalQd]woigE]XWa`Zmb]WXiRk]\nhTWLVlYph^N[Yjeg`s>k~egKhWf[fbpeTmgSqol_]a^jUf`h`fj]dmZLodUpV^qbmnSZgnWecclYT`QXNs~ddVXbckfVjuCfjrp[Qcnacg\UduZjg\XDgZ_F^hPvDbUh\SZiXrYmLQpwv^jZ[fibPqYUVZa@cG]PZjwYx~gbOgNjbxcXGIWD`]_zaU6aTbg[Rl[\gn^J`Vp_jwWeVlpRS\WUZM`gNDJCeZSfbdfWwxn[VfXRnaNxWdTRZY\s`YlllLRyad``nqIi\TQTJa^j{i]khPf_WKD`SXYtUSoYmMldK`X|OKq}M_Jbqxo?TZlBpIkcKWpc\rYPNVteeR\7kNmdmM\j_\anjZS`HS`[bQkack|tY^T>bKMSbhfqRfSZZfOreubVMWSNUPgLyKK[^Mgijt^v3o_EEcbXn_ULZwpjnWN\Vba\d;{Olo7WbEH^^HlVYeSbiXeSM[LYlP`mkNs~UpThcdgRP|hpiw_PIiRVleQUTxmIOBqK[aPgcWjrcyf^KjWeUXK`VeaRfaa}_NP\kWfceLUing^fgf`X]`iY_d`iYi\K\Qb\S]qeSZk^y\NafaaWVpXdZRKTLgZlWbfo[[yEiMapga]\ZT[pKp]oUgav`TiajQYrah]UWqtfMYzip[wkXJnmennZea`ZKDf_dqwXWfxTab?`pTWOLQBKD[PrcNrQb_RIoIwmxxslC`SbkGl]V^Il?UaPm^\hT@XIiR_[b]ZvjJj]BxM]hie7j`NdjTfJh\Tji^]egkyROXSnu[lqTA-QXVZSwbYXwbR^]e@oXYkTQTx^iWKidL~^NU[b^PkT_\6Y]?UV`KV_S3nMCo^1Z[`GoB_[KKTHRkeMv\|f\gaT>/w@sYwqJ`2I6BD]CW~y\jcopzVmAY{Z_j;gc{SvmKkq`jv^QHI`pW\xoeT?\AvLY_T]*HhQSYV_^InoeUXUPkmpbnR~yb|d^fmnEUx\sr_G\HGx7Yikf=LeX[GVXUT^I7'zTo]JyV[YR]\`hhZdscu{aQV\imRoelagdlYackjjcWlh|MvIbslf]_QZ_]ELoQngW[LUhbXK[][dgeakSHfaeP^`^O{rZb]q[rXCSWW_gQP{ofX`hUQchzW]\njjt]`^URpw[g`D[enwJb}aQ|FXUhhQU\_IglfdikWVca{\fXnLg]UydUcXa^SeOKS\~]B^bejofVjX^UWVrdtORjwj[XfqjZYeCkaXs`pSD`hblKUjYaxgxleZSUaRfSZjZTpU[Bwap\_IKcg[rH[XhWqwoaalibKX9df5^Xk=Zgt<~RLAqPwv]\fjkh_CuSnhvjgR^cq]Yhf]Oqhud@TvmgVOm\oK\ofZPgr8`~HULm>grs]R[[m=NzLbOf[afOeC]hh_SjhjW^hUKQ]`v\XiPcGf\oQfHfcPXbUZ@{R^_[jcgjs[\b^YY\wbni[hOngH>lZJJc^Hw\Kqln`Cc?XIzoF]iXnU\\WRHtcNmb^QNUdocGup`lfaOm\^VcRfXMbX]M`YFqNs[\rVcukf^`rNTIHPQh_{iR|PwWTYeMUsuhZd^Z_lEdckxlWfFeUrsINYYsNwqhkYKmpq\dbnRdO`[bIDr`X{0bfa|{fUVeyZXilSllX\RyKdjhS`Wr`cNPXpn`ZbQat\qtj`^RT`N^riHgtBIfh@ys~kFe5RYKrjfRa^e_[f[@ingMbmS^fv_[lcFIU|j^[RqXeWanQiaobSlmafocRSd}Zx^cUyFAl^v]jqa[seqpmgjEedhRYtXaKs_n=gjYMp]rNMNoygZiYmRibYtq[t`Zev|HM^YakQ[TNSey^ZriTK_\DkHe_YS^nrD7_WBIRPGY4yj8Id\AaRZi]Je3mVVOKLdQOS_^J4kcd^r4fG`\7aTJh_XZl2dX_UQwfYXmb^XNGNjNgbPTWLjgOPGKXPCZF9Xe:Td^b^NbLZjZ=j:X[,lVM`Kd:nmwHU_lLW`ZA]hGiOYfQKH[MRQVFbQY9]AYfZkXsYbeVcahgyd_X\Wje]QK[ZYUZ[_a`Xvdmo|sYX5\J[hlXU[kxXcOjRYIXmaYWQfD[[Z`[g^``CUOUZRSbrvnfS]lMZEfSFTY[QVcGqi@oWDgIWN\PIZ`{@]c^EpeX_rNl[UiDjSvjinROnYpjSVG`xmW^nRKE}Bhiy}Q]tltXbkEemfLQIOZYjiawV}Ve`YVHVM[\\ibVQlTELJihIH_Y_PPfdTirYi{rhN;snsGXZ[mV\VfM`l\RSPICeWWYv\v[NjyCmH\iCe`_`\W\}W}wUI]c_XmrWTQDiNZfj`YZY[vQcheLcTdl_pMYXZY`s]Q[cRY^i_heY_[\XVo`fVXq_nkJdrfMLmoUkow]bVb[dqwg_ilX_gfbdRYbYNmbla\a`fNm[X^lnU[cPPlbZhjOdie^`\Wa^on{wzy_Tdeg`\[EZrji`R`xpkQis]h_xdHeYoAdbaRjkgWikJv[R\Pjmh^]aalOlWgRewNjfVsbviXpZ^oZgaWfe{ZYU]jb@rreTORSjR]\V@`THI_idkYXXoiDvxDeaLtko[Ib\`]Ih\_b^jXZh`LF_\pWfX\SbRc]h[jnNg`UOPZJXe8[[]jWeYJZ_yugFeZdP4en^`]b\kWccpkp[hLzBMvc_fUj[[LW[]>VMj`V\TiH[ghdT{Ot^PVZDq[UVUuWd]MjUXXPOCJYSN^Re]PryfAn`XL[^[TngM\k`af[TgqVS2_X_fFc`KdaC`Yz@j^r[ZaOTWcTQa__YcQURVbYRP]g{AUadkKhnYjtUuXTySYaasf^zhGd^T]LaPEVNMVj\SSXWSZQc`\H]Er6zfc^kulao_dT]aeTbjJX|ZFqU[aMshVdecfa`Hm`WYYKdZmXYUcwOWZWpJs[{nESWnQjafZMmhLSYevsU]SM\ndf[Ubgm@a`abxIbP@hot^aOjX`tiVdNu\~Wfmsd[La[a_gkk`l`ej\cXjcId`b^Godg>?bkNj^pgZq{WeNZvE[g^MzkY\FR`[gUdMk^{bm^ifj]^]OgYTOcd8\cq\WgaYk^xu_ijKRN]`VcXMH[{YcUm^eIUkvVqtZeHfKY`nXYn`OXokVXFYOs^_aVUWcYMgSjYCV]Sj\[_LgtKzQpaYr[k[io]euiTUg\s\dbMU`mibQiTajNg]mL`eWTWsWlLqj`M[`\cpw``m]^gdlZkdaMi@gz_ee[ZxTGS]TeOTTWLSmVl_jhy^eTljaKP]nza^[umkaTe]kgp_^UJnaD^w\keuW\oZW\__g\^_[kjsWnrehmb[cKfrZ^SS]raugUN`URYddb`FDanjVF^^VXF]czPFZsddrfV\_\IOTJcYN`TzcQlWRbH]TMf:U_\}ihtGfLbTshVBiMMeK\diJSWwEkbhJ_JHqaqUsXaRqlViYMZrRGdC]T[q]b^TxE]ed[fQfmZUZr`gl?bjT~Jta]kVI`MsqNSRSec[wTq^^]Z[H3xl^cOS:UToVeRo;8ZdFphSdb_zOrOn[kVVOdd\Sfv{GJZCOcd_e_jsb_wlyWYO^S[V[OP]CVpZGwajcOMXuSEeV|Pcu\HXNUPcZY]U]mkQX_9FJqa]dKsQXhqeV^[oLI[anbrLmai`fDtGZefJ6_ZOa[F_jY\gfk^J_qmo^ycIOGJovBf_J_h_ZaXe^_Qca^cTny{\i;@W[sejPQ`lm`ZFl^azeg_hTf\WqbXd|_j\_^WMSR@hTjI\TenOcUmhtopygrzdYv^SggUK[mmbie\Vkg_IkbcxeQTXzZu_0Yor]fkOEKWPzsYbjWe\iva]hV\r{QJfvRUcXZ~SWLOmnXj]fX}H[ZYwc`Wqea_prXbln_OVV`WRPbWp|UrLewfTYPe{znxPjY]^^f]hj_U^Wk[VtRYJcXOZjuWZ`j`OZFmdU]P^ZlePYPViSpsQg]fdqk_gX{QfqaPcTd^naZdofpsXO{zjhnXh\VsU_JSKmahQ`e[]^\gksj`hdGao~h}XefjZ]Zrg\\eOkmRiXcdx?c[Z\_uUpYoc\nff\Sze_KhodnqmjZb}S]icTkXfZNHKz[S_]ScaPkgkW]VUg^ToMdrOmDxeeZbjaeWko^WbNeVMNeYL^jWjnDj`dx_KZ]XliQ^jhZV^f{h_U\tWPegFbnV[eRh`djdwnv_JQhhcUo{aZY^eYekYAe}anX[bnb`m\pKTVlMRo^ZRkMElDCxjH_nEFidasVuk{z`aLbE`suIXUpnJj`RGvUaU{ay`_znn_Rfk\IOM>zf.pJd]vdj]]=EL{O]Yo{iWi^nguuckOA_ilFYT>aGfjwarSjsml*Ugbn;xIYjHsMRm`didU\ghwHUwvJWQu@mYmm{\n{QaIluK_h\T\p@[P]qhJhm1pgv^Q[cntx5h`hUfYicUSkBbgwDHvXfSM_?`f?QiKU1JJ`{NLErZ;ozQahKX`YfqbmnPeyjb[Etn[j?Gb_^xs{aacCUPfzj_PDs]deyU^s~jqLjlSJH_lWZA_o@NxiV[9T}{TrnVn{BP;AIks{`XNlZSTNxvtMzEYzVaZFRqfZ`]MRK-HnvBEcwkl=@BN`gYAbWGDZOswEcabv`PZ]NSYfm\baIloQ^^VTXT\b\\|SGO^YpoIiH\eL}ggGaMpWUjUaTT_lj\^ee^a:heWIYWvp\PS`NPbvAflivitjekiOdfp\iZtRni_dDReiv|Pyn\_coZhRPfcZ_NiDgM_tiWmSkel\WkNMdZQ{CMS\\kVeiSQUfNPO]_V_GY]aT=p`itSdmbx^_Kndapah[h}\KQYleh_`bq\YGVxWyi_Voc_]ZvTg}Rf`Vq[jmmLdo}fqjWofbakZ_a^epYOu^ZWDsnTc[Kk\_Sj^ctZJ_kgsAaAwbjlZQs}cAj^\]_VhYRmFipjkt[g_hmUckRavWR`jZciXba{][`eZ`_hi_JmcmvbaO^arkG_\zCdbmBaNgURsMZO_VC_U`diYthYUfIy8Upe{ejYpG_oPUxoePZq@VgePbTWc]@dHe{C`nDXpe_UBYYC][HUWPnZ\JuOZOaa`r9yZqwMSfG\Udj}BYtR_XgTvgoVg:K_VY]g_t_S`MwQnyb]]\W_h:VpKdidWkf]ddUV\\TeBe_^sXl^][PTgl|OQoYq_|`^Oj>ufhVM]gYRYRjRUiiWdIw\XePbcmbLCDnR_RTuhYoZWPtYN`eNolTS\\atVmvlb[dGYhb_XjaaYzBdZhMVQ^XWr_AmdLVNTKLPkb\w;d`C^X[JWbeTWbRipYiYW~yi6eiPMPI^mMpY]fPkSiN^ibRtkDkeZbbSxXmTdwW@Ig[YcVY_zUURLjefpNeIJgcP_o]NsijcZpt^b[V\_dzfrdtXcQ]]hQVt``Y`raah[wN`nIX[]QbPa`dv\pn``[ZWPYkY\g]gxfON`_ndcfUMv[_]nd]`I7mMdhZ\`vg[bDolVuaOInfbpsbXue^VaK\FH`YUf_^vVskWROKibiQZdnRw`hik_Muwisqwd\Ym|SnocwfgxoucGPX:lSePYX_`SidMINhLWOl8ou:CZUBhV\NXced\xetoe{]uRjccqQ=kd_\NeQSRQ]R;rSPwe~Yl[UPuNMS\uhB]lSuXfwYCbcZdHogZ\Rui_sKGAWgT`St[\Zh\V\bg]]MvxTTttdaOfNQkopVI^d_Sm8BW`yhoa]^ufXEK\[G}\]Ffdigqo_TC^Pkwf^DlsWe]~RaU\fuoDb}RhJdwRS|oNXV]Fi{\gUFacUdxiLUdlOlEfP}L?ejHsacbcUwUN\E\Rlp`d^pm@Kb}^{b{dRbE|bhl]gTq1]^llP][^PZRgFUe|ISxMcWUxbefZ_b3eaUzb]d_w]Oj\VhNjSnV[gJmcqgjryHq[TOuH_X>ricqnRnkKeXyTeauYnWXWPaBeQDfVwZNknYsoMn\kl\`u`qQYa]]jXScWclZGo|\R\TZ[`[NXS_]P^WAgXU`saSVYAXbRWjPcQ\[zh]QQQh~NZbO]eyiZLfr|O]FX``_XnakVgUTgSmegU;KRgdWCYUhGaZ^ewpX__IQ[neiAW;bQgypy[\v]ZDaRnBHQcjwcuqSc^aeSibSSH^nYJ/tzhkUgShnhQq`Rk}H[\[KT\igeQuD]POgOS\^zic__B\RcZuKVc]cW\EIngZpddxac^]__Sa_b`9AnqwZSIwTeoXr[SFfxY_cmZ^bnYX^bZ_wS[Vo\m\bXfkY_`XpQZ[USpLMMcG`fW[dX_XCFYaSj]V]TapIeg}_had^tS>\rVbtjdO]TwAMu>Pt}^ko`am{_jLX\qZgbXjUIobe^YrFKCOrjUaRcXmVeddrsuWAOKZSDeXrUSdjRgKr\[QiSIDNXpgop\LlJ`YhYulh]dKecazZdzcW]j}Zo[fZ|gbEUYLhapKoy_R]pOo_ubilpROpR]knOlqkC9KpQrXGZqsCh{oqXXi{uVnf_wjXhlQgR}WLb_YkmUTs]WQmYchWl[hZr`ZRsLeRkuNZ_gUl_mVfWBX`sXbe`eG[gHqd[ghUaPnODiktK\hdj:JMTMbQ^gxVekan{grWsrH[zq]sU_]`nO`XqlEwFpX_`CTQSWg`_aoaQObA^sc`{'\IQEkwaHyDzxcOE`AdkKZu[tT3wTV]vgcj1ewjt_U=xM?Rfr@0n`toZQ@TdeFRKHL\le~anTT]x]`bGyNfSLtDjUaC2\Xu`aXMYf\eSsibRPVyafN^`XtOkX>VjHu`Vb7]c?dJRjB_M0fgyl7AhSEJZyjuJNqoR[b]xGo[kGqJJwWMcumH`\G3{;spg]XYDcH>^cTMjX^WU8FMijH@HlZYe[`OxQ^lSsW|}RfBJEC5j{w^ZXLum[iYnCm^AZLa`dTnsKH`vgnpbp1HjvhXlWlNNTWe_G_sv`eg4c{KwHJ|KbdkDkNUo9Z}l%]_[EWCe}T^YcHiTafek\r_\SAShRsg[X^lgVK{`Ata``ZhfYOingc`ckdpahJR_a|[vmrOZdclhaRb`bnHqNu_muQfoaVTW\W[Dl`[AhjUXfz`bUtTVlOXUaiy`ggNcXfqU`ojbdpPh]ajs{aScVgwnX\[em^ifyarqiVW]mbP[WexOa_q]h]ehZNJUgs7:vkYqGkkbp^TlRYiuZyKphasr`dt[HLYGJTM]ua?OaRFoicK\hgd]7mgVAOAWHC:JoPenc\6#WMmsc9tSl#XiRJ=N]jecdcwkBkKyiXeOrI\[nZmSq7rURzh`ZM@eFXMUEc{P_Ox\adOSMk~hXcPuVgKhxp(guq?iBvTQE7z~rERfXvoJ]LUa2W]`]V7kWRE9NH_GRfYLGXndegQ^oxcaQOoKPdba1\WaVXq_JcjjhMTWa^`[`QcXZX[xLgUxAM_BkXd|XT{RNWVX_jer`wgfkPnqMtChnF[mko_]TdKVN^h:sgM`^]b\hBK`d}S^nhjL~vro}pl{~j}r{slpZkpxnhmyulrpox{i{uezkuvmxjvzy|wkureqypw]|j`cvzgm|iox}yt}wszqrkgDXkqsa)_^byp}tppcndrkemstglwgqidz[pYdkwtx}vm~]lXZgJ]HBxO^xkdSOq\Frbjl[c]aebeUVirdz^c`^]prvkOvX]Ti]H]Ki]dU{`d~jHhXZUelIWi]^]ONqEJfWfrfj_[=RTggqzcvoLM[kcylef^_sj[lWQnMxWla~o_yUYagw_m\B{OP\u}]eWGaohDUkQg`YahPrTWEQj~gt]SJZObJchlZ{gLRvXWqVRpbRLNd^?TNcSLbT\m]SiGfV=OXc[VWQRdbTyHOL_qkEVkve__aAYRXqD8PdMWVVQOnirLsqmDO2jo^CJ^qPAWEEc{>WHJbmCcl`Tyi]^roENwP|JVIJge][:lDMI|oUcikjCFqZQ@^:`M8^JUYbNfI_GEd]erjUOjEBpqESPVHts^HMH6=FPnjeSS^y{U]i]ZVnYQUmYPBfdgnGAjBCIvlO:DckV`5LMseFMKDWsk4]TuoWClRT?aQJL?cmjR_LkV>c\VUMRg_jXJoT5hZB{Bp^wSZkZgn_Sy~dWYvsf{a`uppOmiecbP{_pdkaZYX^mZd}xc{WmssgqIbpfOjMVt`rl^lL|Yqe`zm`_d`e`}hhaip}auoiqlg4sg|\f[ _Fs~dhlxwrl{wrrxpwz\YL~U;Veg^ZQucocbQ}{rasOUuy[7`[wdttL.IGV}\sQ5GzQP^VlkcwPYyv$_W?dtqyK.0@`EWQz^PNDeiA__aRpRJ\jM_TF^VbsUFI|Pt5[ZJfpq|iTI\`f7aK}Ee`hBJZRgZh}v?tdfhmIcU=Nf@^YYROJS^J>Q`kQMzyY`_negMBdLSapzloz]miDHm\rDci\E\ifk=Nqnne\-AHlOmfYMmbaMNeKMZ+ZcJSrBK;YYUfPLVg6lV^c}aqaH?i|`EfHuGZX^VN]CSHj?pe]]PhwBCVm]K]jRqn[E0=l`yJHZXMJUwEhqqY\fa~YXUhCz?[sTpZM6ZuRw[l[]Pp]UWaig\Y`[fgUva_Fh@VlXWncT|Q{~Rp[WD\_TDXqAIjgZYJd\swR]pTjLgYaElUOuuORm`BjcMG\wrSePKfPY\RjcdQgcYjk_GdSSSS]]pkpc[kAT_W\p^ymSgs_UdrfObQY]TUd[hVQsyjh>gMsk6ZraajO]G>ZTGEYuNp[0yrbV{hOVx[Jb^uTaeSpMUVgcZVTK{ZemIrU^^kw\RLFaQkxxX@^fvPcfKoPdek>2Wnc`aV;mOm[raZqV[tfpT~eqkWRjc;YcHm|dsTKjhIMbum|KlSPg^f[aoy]\>)]{\QLcYp]khkjeeMcgsbYjaqJeXhsL`pgJ~8cq[iGbaPbPieiM@[UKEec^^fMbi~i`^bY?HSN=[ihpWGoeJD4]sLuUHOne{ERSz~{ghYbhnE]EgV:YFMsNQibVLJGgfl~bsVUqc9QLi|pMfaBdNa]_vcbwT[TRYBDKlvnhchXT^oB]ffATRreagm[?ZBcpuQxczp^gWZaXYXYIXhVWTPzOsWJXchj`QMcOKSM`@UGl\iaf:Ke}bN`UUBUV{RwIljSW\SRf^U:KHV`YhavnZhPoqK_ETamW`>R^eYPhkjYp_xGp\UjpyRYsgC@Xe\eM\fZmdZrSc\TceId^`XsWPvyUoYGU_5\TVJoi_TFH^W^Xj_uWUwUzLlG`j9ZIc?Var\]aYwXGUih`^v?wf~xwhnKKar|edpI\kYqIj[Uu^R[.aotg?OFghiYvjkYuYAneoThAZ=rITlM_Qj:z~U_\{ZyHM=r;\V`Wfmjg}cqiSfMWqZeiW3y}DEk[INviV\dYbV{qRS]gXjVv]a~]bXJmZORUX`3q_nOWpU[_W>^Mhhd`gg[hn@HrA^pUj^Xvd{Kd_GbtgVglft_oPcrinwoSgbc~hPYIXnJrqGqxWOhm{XBn?S@QPSrLQahcdTjiac^JJuXeSI|xjzfUmqhbv/u~{bPNmb\]}q]<\bkuTgirZSZsthgNwhiiJaNW[]iyOde]UGMZUaLU?ebHYcPV^duWb\Z@Oe?IfLCFV}bvV^{pdQIo>RYkXWM\~fvS[WqeabrmS`_bUNmQloPjYXQek5ok]AhgcRYYCf^[PcPfoWNbPauT~S}\gduNaN~JXW]RYDNP`lU_OszgRv^PYQtRglee_;P\XqvWKNYc`tjmbjs`djHocN3|yG\Iw\l@M]X^[ankeTnRXb^`hsgg6Qhu_Mq[YrU^^S\yto[kxNoifhiQn[vf[o][W^vZaSY-XaymnJqVHh]SXJmtjnjLbZFX|WRdZtAbUQrYZB[IdH[eNo3Lvhg|FO[O\]aYRGeD`TjhKsfNgNFYVULS}mIR_bJk_0HqU\`kIDHxDNsxDhJ,TUHUZ~WW^iL;_rexwe@\~J_Z^W\?fZBivkSQ{_hIbmMJpcHL?PYK~l8ddU~{[JjTAl`T]oferVfYe_zPdp^I\e`Sb`EY~r=Sa6egyfVWXbT7YbUOOhehkax{bgctmkzcl{IdwNnb]j]G`Xkv@{fbhukHBO:W~\n\cyUmPUtQcSR\xDamR^`krmvP]9ZhvzOj7`P?Xio_`GTdd|ng[?u+YXVie|C\glhQpZDCumzLbSc=F2_\SfmvKGjTfc`mI\dXN_[SPSfe]KKTVOiNidOLCBBpVZM9Meo_i_jXsZcwd:;e]Q`ztzOtR{fWaKofW;JGPa_UF}zXk|s[NaYQWoJLhgs5pRo\R`nsq`VChHK>T}TIEU}N;>VQlhX/dZI[TdLi;`k^^OITdfS-cp@u^bIL]xVO\Yhagf`h^ergKjJxQGNdYoKXokNBdQUoodqf?xPnZoZSPTf@}dxRio`\_OD_aYWnhJg`r_gL^YkD\_pg\Mc^jrldllWdad\teOUsqGWG~iSmkD[bW`t>zhav^TPjMVx|icCXQ_s[flXOtpUcQ_d`fi]mnmkPXem^eBX[cLMe]VddAP]_pbYdrv\nHa[D\LN\fOXRdvdMNcgKie[sVJpQX{\VMaNZVaUnY]elbZH_soT^aabY}y^FmL;rD];SpRRfGJl;^HTBCJirT^ren[PLDJIUYj:kUK\}QUprG_]XkXd]OEuVgs`_RmoeOeWtKYoqXiFpiDWgau^hoIQN\7]WYT^bVbghbZCkplFpsJp]_IlPZI`lolYb`Flr>NmcZfbIQ[[OspR[kCiam@{oIAVTOWJfCm~?Kd>M_[RV`Z\\`dLX`YnhJXjDfO^VF]\XdxTKZRNIatn]W|UyRfGjvuoSiP^dwcoj@PUl`wpgNZVRQ[\\hW[pmqdaYdU{`T_[ksbaeh`c}XxeQZphmYtBJp]Yhy`lVldkchlRgF`Idscy4yTofd[|UfVRb^pxXhTcpe`TIW]`re[WmjZhDgl\NRjzpcXphlPcmvR|ZSg[[gITlclkXcdWMSVnxPdpeWDflsoIu`RdZ_6QRjqP{cJJfjbYml^h?JhgdIT}~RJgXNwWtlhATObypzi]{akjuhm\{Ej^XvebVrFdK_a`_~k\qUk[Kxcs[daqSPbM]c_PRK^e\uo`[c~~\Sa[}[^LcH[VnHSKhQTJcNFXZ_r{WtyaLcbu[]cwWbuTRYw=~{LZ_i@[rad@PoVIQ8BoRNtLcQ[cZ\mSwWVdbf[M4aagGidl}cOb\oepnZkqvESh=~RE\UBcMXSe9Z_Z'YOUZeXqqojXhRrFx{ThfXgHQjjuYNRYMYxQrhhk\hYZ?fHP^\i^mJFC^ISZN[p^eNcPSFb``{u]a_e\]hPlg[vSLol[]LuUpTiiTgQdMeNK=v\SLhvz^n]E]VKiNOoE]hPNeFEDkte?Kr~H_{iY`]DRXSxNSm=P\nOi\qRdgpUgkffjh[elSgnWOOENi=mW?ERiEtXLi\|jJdcTjWVQKsTd\se_ZVM[TLWdN_leIxtafkZMXaf_pXYXSZqSbNn[YoR_SZYj\]`_yWIym_PaTvaj\vILQlMqPx]Lj]uiET_^vObE<@e\;U1_eit_dXI{bdNwM@OBTck_oToOfkbYTYa`SgULSKVClnbnlpSTE`aksnh\ZMohOT\cEcpFlipmUGfe_M``_gYWfJYeCUEuke@Oh5PZWlM{V\o\ZiZVQcmyyaG]J_bvi^NUGahfUmndBWYFRXuVWkiT^u`S_MdaMTSN`nLVBX[zS``gMdLkg]j_ZUXKLkfnqyXGRl\ixFSSO^UR`zZNH\kR[Mk`Rc`\hXSKKNQLFRS{]CaSRCGUQ\\6SY`XAbledRhmKhiQX_QPe{XqV]fveggiz_OjORVH\;HI_f[ifgx_jNePs\R|`c\^dLQUedkemXk[AfalY6-TjEW:zWNNl][gsfgJpa^[Y=[Mo}j]mTR]iXQkh``gtQAvD`LcZ`[`H^9\dU`ZZdi[\GTivMkgDRL=hRaGWdKVrYPGbFuqQJq^hVYmsU\NeV]jDZ=bpDld_gVQRhykIa]Okkdk}fN}_dg\jxNcjqKfQ>tg`PbY]\QclXMcnDU^[Rsk^^jP?ocetUPaJpjE`he\8_Tu_mla[oQrj>YM[[wAp8fB^YRD]x^RicXTcZkeR_^~vapOQjrbi[\tEeg]zaiRi^VAVoZ_rUQSY_Ma_J\p^FrKXjTaeGAI`)BoVCj4oGYLD\uTO=UL[ecbjN[AlE@O`Vh[V_`PlncpsOdUe`thb}_yUbeL8eaNmhOwovObY_cIu`eMe{_nXfzM_pqbKK|Veia\tRf|gu>kYjcrWj^gi^[\X^d_Zt=baOfV4Pigfvk;bnp1c?p^]m^^jPWGLiDdlR`mcNtUCQHhfr\^wS`cfhRaqgw\`W{jhk`[x\jb^OnTfi^HZRfycQ_ud__d}TnchvnPhzGXSdOsmbYooLUWrYTD\i}VZ~Pg]RBSSwSOI@eUORij]f\sovOU^j]vSpfQp8Dwgtgov~NVdu]fJ\sYh9?V_sY[}OYI|pNNtU\^e_ymhRVgr[WUtTfKr`KnnQYOg{suFS=~rV`^]ek{jbgSbdlmWWM\gI]H]ce\KDr{_EJa]~~iW^UcygaPXr]DVcU]^@lW]YhbX9j\RkJPf_ntUjU{6zRaNQ\o:Sl=E;/QYcWUES^OLuhIHHbr;Nc7;uH^Mwg[\mQ|L_~okZ]ReA9{>EMY^X3GOEwyMiQR'qSKWNDEZu9PJWk6m9jTZdDD'MXWkkaxTTtXvJCyeW^BXYmrHXKPZHR\OD{@Ud^4dOYul?_d)\W%oXS|D9X9`Ke`7^Ba[iVI`i]cHTeYZd?VGs`lPjsiQplIlDP\URlgcYccfRldGX\T}vocKbV\p|H]4b_m8_MNylh7YqV`D^hJ\dX{DacPZLhjXd_mB_LBIR_1MWWMwz[YXJA\v^JsTyaiXB_QIKTY`Tk@Pi_Ymt\oD\UVbpadRWKGu~tPjixZ?eoW`[P^lvwSapMIduVsZQla`zgW_g^^2C\QgWnzzxgocdaejRtd[s}WvocZPNCUirctHrycJvtaL]aaIk\nlqZZaVWnciO`\Tg_bOsU:HZ_rm`saWWYYahIJRmi\_Odecg]h2RLWKgk\fQopYWYeUTf-acUhREaMhfK\TR{@[vmJcR>Q1Ufq+`mfTjW`mOX|PshbQYFviZehQT\KfPGYvYuIFIHWPmpLZHGlaE`n~DV?rRXrK]MHaNEpf_Fv`S^X;oT[YLKOJ{q\WTHI}UWrhmAnj]ghUXvpoQTd`ZEa\uza_NnU7LID[`j_qfniGXSra=bCTkQPod`k\LKp}kdaVPl[OecagPE_[_]_NueQVOwMNdg^a^w]imRHO]_p}JpYvVy\LmpgJ\TZ}VXP_{bW_[VNV^cD~KWfMnoeIO_atJI>Rd^pCxUPGovTc1ldlbYeN]9pCUe]h]doba]{~VMfUgzgeR[tf`_On;TeLagfKaKGMX[sQQMLiy^c|bpNsN|WjOlJ\tRcSo{Z\TYo[]Q~l\R?cgXmSyJMYmOObkNRW\YjyralMzG{I_ccWv^o[d<[plhi]WKasdo^oZdDQP\g_]b^pDH_[elI^[cnk`OXd[hN\WzLSlMVYaZ^RwT]ZfBBjcS_FYeRC^\]f8Raun{ZkOiANccC;MZ`mgPYX__N*a\VWT`AtRpP_[e]RcB|QJcO=ah[amWl^umc]ONEo}X_AiXdoB]wQjPnci`tkUkvQZyYKQg]Cr_KZTjaM~K4^i_i|oSZQIUD~j[FaU[tQ}JW)WxhvXDRizV}uiUqiAgQhkcfW`gOM|T_wNL]`UjSl}TC|ZbQpYGkO]gB[jRdYY^zvf@gXqcka0^tdgWabpYVPEScPYTXkoKOpybd@cUSSeSPqp`{L_cdV[_]hPotfqe]\oKZbWkj\qo>ggtZLnyxUce_5Jr}@uSwQW|vg2^q{vO_Sr]jhUS\pd[ZNa\QcmUFja]EjkY|qstioV`UMYhCjmbtjSceQOmtAYNbvRHPPoirJUPb]]WoJWRRobstwbP`QouVpZkY`TgdinYyZMFT~KkhdY^cDmbqrhlZYkq|]g`\Y^wcpe_WYZXe`ogsckOL`VlFtSWeYnbJjdrWP|hmTZODl_t|\NZW]cq_COgd^LoHn^]`Re~|rXX\R[^QvzRaZL`KJ]CXRzQhCkaZS[DBah]^mqYYE@\Ifn^YR|{kgEo\o\fIpYSgfTGYJOsj^Nb@VfLXgbwge\aUd8P__tVXb]ytS`ZTlaWeqTRLgkL@`1e]WrU=_eaeiThlFurFmRkOgMZ{stHXfMtnTf\jTYbNmL_wf[i]RTgTc`yN]GulmaZWO^\ppiVv:MWJIP>z\]eZJ@YZWp[Up5]HJeMUqXjWZbcY_GTT_osMEfmVvm?kYQMQDdtIG\fUVMc_aIWUq;nFWwUDO\Re_bC=lIRm>lNK^`mhUQpmUj`J=kfV]qoT{hZL]cnRb}fkc[rh`f7Ah:{an`_YPhB]aS\d]\QUUQaNZSm^lWd3L\GXpNIR_Cg\U`I\9eKdpSU\?DQ`s\ho{elgrQXlQlgeWe9ZTVgbrv]^iqNgaRfNk4uI`_RXc^smO[kzefMmZemdMf[n_xdbgkWUgdsZmKSP^_Z\wb_bPD]zj`eNLaWaVxYigh_jjb=YyguKbw]d0PWbXZod\dp[y|XmsdaiRSiUqQGiAkR\Y`\sWvhjagYtVX]Ydf~=S`N\NDUqivmu\ird=yz?hUgNlZ[xRyy}XhhSNPnSXZ;Vna^dWlHnJ}x[bKTeRrGUh`j[ckD_dkZdgobUUWbQTgad?wS^iqHgWuZcjtBzk_lvvb[vgftoTBbahZ|qc~hPFsXviVh{ultotWNTMTYcu[ZUdcLiOr^bv=TkPKU_YI\]loKoOHKT[Qg^Kx\UhGOHapxvEgxha_jdQW^b>et]ob``oP[]9SFnXx^TaKwPMH]O%]Sn`l^YgYES:RIbtV_mI@ur]SUkcdXX:WKtGb]pfm[ypnJTQ_TiAQeC2Um9znN`ImoqDeV[RryPjp_SCCOZQUhd_6X[Qy>]{aVK|kqfu>n_ki\S|SZruFsVYgU`gNQIOYs`hKQOYWvSUil_rUJ]O_Bj]T@fis_KdWrUQk_VCc^Z|oI@Za5uSen[\ugEK=dm@tdVU0{[@aHMNr][\iPx^wFUGQ;GUMdc>pn]w\MkxejEX4vg1~]OLMge]c{g4Gy@pbhJ`\W^iebSMn^D\B4d\fWqmpdvKed_pPbgqMpZRzhcSeZ`QE\jhhv`RcJ[I|OTkX>TRkQmpNlORflrpTSNR`\Q^X_bsGrWsYZgi\VdbsFfXtLqsTPX~b]_bpqP|OZvfuiliezffQdkGT^a\Lcf[[\UYEqPidokh^NhafbUqj_UdKZEsOS^XRdnHSOUgedjA]nlVNCr`W`ONJ]ZUTqeEjS[cwDfYdLPMSjbWdVojfV~UlXlV]tjF]Xp[MLmsYVW=VrPv_jMbamUNiGK\r`dKJdob[dVPsZOO[\`rZlik]iO_vqc\YKTv_HBKjrW\jF^jHaa_xxmg_P^YjCUtM\irmc^Fvj~ba^FPNbwStqL[YJEaK_4dSUOFMvDJRU~|_Tydas~bWNJngg>NlXNd]U\@LJQWRM;bZEI3G&JLPbDC_YFOJRa4RhO7MNIXDH=GSaaUz>T>^'MaLFBRMa'.HkXJM@WIDJZ[1MGsnPuHdAp_oH\PAH#YOCSBGqCkRYf-WB4F:8RZAYZP]EHFV][E+3GgI]\V^LbWsaIw.KBD5PTJlUY%JiS_JFH=JI]AKR`aFGUVIPr|OJUa`WfUVYdWwpLTyVjoy\ONYRSi_hRWcfgZbbuOWgSanUnsP]dR\xWluex_zXfZSjYu[eiRgi\WnZOlK:mp{jsb~bcLxBq^\Po{Up\9j_|sQG[g;o;_HW@kE\waOVUVA`ryUuOUofuRNO@EjL`nfY_ha;VwYFZ~\ZiZpc~GVf]KbORl{UPUfnCPu\{hgi1oU_iK[3W'hbuWVsYmvcpq6iOmzfTRRC]ap}eRbb]rp3aYO>fYad]oU[e`CPjSgWHk\r]UDDC[[ZQ:_PWOTiCcT`^P_dmfoisz^dc`{YGsetu^DXUjQ`Ej_gjoVRfMb/ZBg^eWtiXCNTYz[ScOlAcRZBmTlmfN;PEdvVdPiaUY]SxbW}X`]d[!i|=l}pglKHVg_W\iQq^lIpn]]UFjJhTG[Wedf{z^UUI`kqNV_fx\cB`pmxBoma_SjlgMVw_ukcjYximTfZ^rnc_]Wk]b[hmpMaW\Kcsqha`][ZTs`a]LseC|c_eool[qinmdatpfAPy_hOVasnkUs`h_hOd[ZsYmEUROciddR>YMyyngYhUubE[@W}oU^Pvg^ScBDcoSzNJTezfhukWg|\URL~4IG]hTyaAIwRnOgmVPmnS_iWaWmEtTaQvmdI`YTWJ\aLxjlw[Mva[oqR][Va\Y?}SbY^TOBmRq`^feO_epeeh\p[^gVSwuSuWFa_Cvm_VcV[^I_}cX_fyboXo\lq^zNnmliT\[\YbVtPKNbKMmnPFhR~eeGTucNHjSd[swuigCTrTn]VdtJKab36db?fP`fgcRc]V;QKl`cxWUYaIOV^LUmiZzraM=^2V`W/dHgL`DQkickghVmUy{HQV^VYjcuoniZmWsYPX?W[hZmSd``kGeo]|eMSepaTU]XjWIJ\tLg[Wg[Q[TlXYLdGu^O?YZzS]ROWcdP|d^}b^]Xj@oTTSbehosghUVcd`snPS]ZENDX_g[V_mQOXhTqrcF:GhzjYcxvjiM;Pkm_it\hWLkQ]_a\[@KW~]YWfqJJQ^T}|nOykUQ}reQPt/pqm[mgc^q_jfZw\`[hkJP[bowavTSbhisPlmd[^jWtiV[v]KnO_^_`XRBa]{Yh`mZm[Mb\a`naUcYIpQCUA\h`hYRdUlbU^G^qYif|QMVWV]U?F^N]|[V[`]\fO[eGdngbp]^sZQr_mleaVB?v\kcnlgf6l\^V]bv\_MRMWEMxaN`Zj[ltJjJS_eovXu^oOdejbUmSOsL\]HkrMJlLOyAekgGSsbb\lwrig@X`Tm^uNuMT[rm[MacJ\ot]]rd^vYbaIrNzSfeajm~WHf\KS_bkfijvmvPZVXcVRiXnaJUbq^]uVQalgRff\f`fruft^WjyS\[amUkF^ziwsbSq^ulNu^UhVl/lQNZwPmR_juYSuhbksOVYhdgVZHihngSzMgazSqeM?VpI[dirhZN]g[~R`nJSopWG|_sokBSfTgtdYhpR-XJSEq_P]sn}kqmOGnqTcm?\bIblsn[lJ\\RXw?fY|[TGMOeXcZ]RKYuWf_rjhjo\OYrW^cZd^ZT\j@trridRZZ^woZUJYO^wfioXVkShlTlSShyTUN`ZbZl`peUcX{9Xzl[jkjLKceplww^Re|Sb>QGqhML=q\OypTaewj_2F_]1TyX`pUP}rz]UTEYxHMVkwUZ\[VVelQ_cTVY\qVwBGzORj]|EQ:ZXbInXx_iZXP^rkgzMWmYaV]OSJUjo`jQlfdS=JT]Yloqj]JhXpXq\nWTeY[DENVX^[Daii[sZ]e[PPskOilljSw^Pryb[ZMhcs\\LCxZfXXke_Q:cO_XTlLlPgcUmR]{c[wLU`UdybYYLux\xe]fJgrhNu^`pUkW_fx~XJ\aY^smmNN\]v_Vl_rfEXTpgKLhZtjnpwMLYK\y_Z]berjcGnm|^m_y[dh]\}q]ePwY[e]\`qvoeqB}fW_g~^pRYY`kbvhl}N]Z\WrnC[Um\~rcIroXbgYeQcPihmvZ\ou^6smlRWmSOO^cdL^psQe^TlSXM`xAKaHr:mkOa|LVi]`b\ToT=^m\]q_fqObZ]guXZLaWPe_`YWfNe]e>jhgk]bsNH[uq@ZXcfreairYSccSrSj3`?PfjdRNTd\aiPG]QavE`OLidQ}Tq[{dV]RaRYs_dZKixRoIVwTFiFRJm[TO_WN`diqwbPzwelt^baZZQXehHnVpl`h\?b[dh|=YBoZb]M|h^YQ[W[dag`f_vU]iXn@eT_cgot[USP_hg_^Vf~bUWsZhI\]hSl>NkRVlVZirTAMMd:\[hVTO-|Y]IH}]:vLJkbZdFjPAg@PkFa\,xka[^jq?HWxtJ]__ZUN^mlNbfb`m\[aBPnatlAkr\i_W$\Lu9uLpmW\teATMpPxzNaneddA\~tc|@RbbUsVZWb^zlDbELMam}vhf\Op_VhoVdv[gspU=rkmb`}cv\zqs[]zaOzszou?T^UQ_,vOZqg^a]P2|RhunUS~YoMgteAvXnb[dyzl[LN]eaOjIqdY[N`aTje4TNTTf?aX[lqwvyLkyRuW]rOBgcTbv\^cgs]}vDpvqhHfsVNdg)fQVaf~`[hWZnIz8pQNT]Zp_:lmj{]dacedt`cgpPai[W=RmsAfww>oWpbhecq]d[Sphl{XXUkn-_,Xb[LZW\~eV[\U}PfMuIy{{yedQ`DLdq]KoYjgWmsEpqcyW^^@~iX|v^rV[_yuTjViejCtoQG?mjf~b^>>2/`jaVoVLLIcmirSBOQgS28`$ONpiVbO};bUDIcmj4\zYhi[rGVqKDEtH|Ym|yiHjS`fKKDjQzocVZt_=qNXjq^nivPg[qH\=\d{nQ=M5^V_U_Vc|5M^ek]]gq]KOUiL_]gZ\Gzj_ibY]jvjK|zOUOe6[VWnledHbQ`NvOibaoRObOeQ}?[^OMiYPlOXtk}Z:qOHaw`}jd~`Zy`}IlvZ{VbpWVtKOPkbuPvhn|]sm]worBI^RiYf^fBa\iBn>Tc@GVO_aqOYl^XjkYt;:xmd6JNMRfnDk_oqJe^bvpkwfdX^MDEV\UffVvU2VLKgPErwOyk^V\^asgBWW]`JXgsSDv[RbWLd?kuHSeU_\]XPKXTdQodE:OrfabXkacal^H\HnWmQZ{ObOUIcrUaKCW]ioVchdQPI.JLgS\dZiY@UFQG`^RrdshUddmgKpgsriH^i]Q^gAxPkbhlQXpF[p_WgncSP]cifqftNrm_f^dleW[yoJp\gAOXnxQlZvVVgohFwURJHbmnRgTYZ]7eZNhcnT_[CSdSap7ocYX\ofRfUhMu[dssekrb`^ihPcuVTJakv_\TZgv_i?aL[]TaxTXbfeOpojzxcjXfT[qNQ*[V~0fjhp{Aw``Tudl?TgWVUZrr}Y|TI;AIsdB3hpOeYh.bNoJTclz9WWY[TvaLBheg`ZhR_QiVTPiwmXA`WR[oUc}?\aZAXrCSqPPg_anQNW=6^_8mEogOwRhmN_`]uXUFxz9^CkW`YVYrV_oPCdd\cvkga]lxtsoDK[^CRGHdpUUETsZ_kio[cai@`WQPpaYncOI]i`Yqj[]^Eb_yVOCaylkeg]@iZevJgdYU\bd]yegkjP\KtSgt^AcsSy[VkoRg`_rsyecTZ``WlQXfbg[aaX6gUceqOFgYi_rQ^V}TuZZ]cVKuih5cgbRfpD[lQbZ_gVN_^@g^BmhGIBu\ddMtlTO]opjSvLRveNMXT_]M`jIdenNtHjhry[Sl\kX5`VpqQhim@mp`l^[YMyppDUJKP`XykQL|Z_\`tdVGzYWSZRfd{ngVhMlfpg[^}Lgz``[bu;RM~PqVVTpR^jtbkMWpjOyH]]myeZjWvhRSlsPz_L]b]alqZIsRKdglM^Vb`kwLLucPW`cpHKtjeHgzB{JnIb[ISWQU_bpOUJhceW_R6[t@le{UUwpM=exrrTOFo]kAevml?Fl2SzkyPrUMHJUDrKGMyIpd_\{iEIAh?eqwRrO5uqusnGwuQaFxWIofnzFtjV;oaL]vb|EivMZ^ggo~hMLZ:H6mX[sSDNRpIO^\hWRd[eoYSe`jrtm`\Y`O\gTpxudelo}Yk[gZvKY7cej`loiRb`S|ff]VtjJYzsokbSy_jzxM=_Ti}N^cVQlRfyxx]bhG]SYPu[dkqQgmSXldstj^hzd{hTRaRVrcNaTQhndNlnMTWTNPjKRRtcTWpb`|jSxOgQu_bF\ed^Mhm]MU_QdhZgTZdtggs`Pm[d^dSjnsHVwaVIl`Q]ic|mkK_JGZiTZQcM`jji[h`Tx^[fU[ijqa{Pzbk^tILOzj6Sh^S_k|ana^SYbnt8[ZwFecp9xSGQq[Sj_aSws}WAhl}XoUXZPvXCC_dOzq{OFfypecdakqTWQjVplISn^GLa`h[fMdwsh]VjZ\\qiYxFgYxUM7_I}\jaSLhUhWKkSHdi`S]s[w`^LhbTwOqWfPOMq^NeP|MXGyFcLBirknhYasJzfoxp_sxf^j]`NrrdkS_gWT16dUFIRiXSFmRME^KXSjnmW]`bKVhZwG/QeNqFnnNKkXJ_iXSMGqR^XUj|OVbcRhueeJ t`R_[RlWOqklVip*Of>nkaHiK]k;[\dfzeddYrf;\cHXV[nL$m{U?WUC^:PjmFPGGCDOa;J[Yfj]G(h\\Fu8IHck>nGUa=YVT?QMYMY\hXTfSS^\MFRtRbgO1NOMexF>=QIFLPPSJ$9WyURRXcW^E2k*cKaXHGmLoBx]aJZV`OdeO\Gx?XXVtHG=Kj7IK[O`J1KebU:7HPJBLzXa,5LwL=DmcEaQpW[`ZvTmQKYbTFhbFt|LYzGWvZv>WGes]UFJb\lhiRx}VV^QRpQySE_oco`rgTMWIrFiaiRg\GaF[CJhUf[Z7=\Qqd5~RW[_gQhFtKPlnK^rK`BbKO\VZhoTTpO_V^^TMmbR^QL\.pbl`o=9l`g^E^4LPpWEgD[\NmSU\Uegm]LfLb^RN8gcLPR`Trw\swypjld^M\sW^DE[\Xsk{[p]jrTc@C^Sg~Gk^dKx`AWKtO]YGndTFjPUnQWWclhTX/zXr:sgKV\aXM|dFVgVIKTVmMtod\f:f@MJQ[v{`T^OU{aoSF{v`uxxRtinginzST_WiUdW|cdIT^\JFcoBEPzWQlj~iqgbry\`ZJoaVqJOM[r[cdRNsacYIa`MPKhZ[TNYgOx_f^tcPGOJYYRNVLeY5pOboh|qMrQaZ`f{TqfjrreYVJednvrb^KbBp`9LqetXz^xWeCR_llHeTRSPQfaeYYC]ezjMflpDsV]aCFY[s`yQmmKe\Khq[zdXU\aVWjqLTy`u?]whkN]@gULL_ksrc{mzhgtMvaIeWSe2xX;XlRdfcW_ap`Z]ueDbfg_/gXoVg]Y[mbUudQVcjZdUWQZwFWhRavdPdS]aoGZPZWhGNCnx]NWVF_U{^pWfXYbfNlWnVJNXkyJll]YLZY`ac{OgPoYZvwbf^eIVhqkCJTYatTicjQWcLjInrx|NhyGJLZgBbVGIkT[[WTU`epgklp_Ydg`fZ|_v~yvZTlrpobZg[dhxadP]d@Skh]iaYmZ[|^[cHeefeOhUV\QdW_nNdRgj]cQiFe[Nk`zlxihbMsx5PTd_kVvLrDeuG[A?|M[nRxcEbcPMa_9v_uUePpCYkSrZgek[NlfIMd\gef=r\jnKaLjXk=WnMthcf6_V{kT[P_gzpY_Wo<9`^le^Tx^gei\c[XBt[NS\i\_gfnUTwJSe@_:]cfSgmRzQYTlWA\a^MUnWiLrNsTnLgGqMx_Rdb==BOrNnUyJGaah[Sehb9AJANYKcF`mYXABRcMowT]QGFkd^e_cL;WYmUdsoMvSn^_]@MjU^M_crlfGXxa\cYRVyen^`9h=\YQOC[Uh[m_mq@cgbl\_JUZ]OVX~WHrXjRgT;qoRZQ]pIcTD7NkBRR`XRe@]HpL]:stZeopddKJXjZcYFnNfYXz\QC]Uf\V]wNP_aF[ZTX@nQbTxLR?XgBjceg]X}l_M[kVT]Uib~et[Zh\ZYdemxMdmzXY^n[^hLtLhzYOLLxViao]kXo\a^sjVtB_eaPdj^\RWRdYMN`QGLmdCzsm_ksiKt^oKabnvfWf~bkos]mgV^ULPV`SKCne[r}dUSdcOfhR_emoLaZzYWYmAXVz_XbRXAi_IYVyVWn^{\JPbyYrFaId\Ydk|Te_WdQx_^N]h[de5XlbCrcTM|Vc_}MeVroVNQLztXmBQ_^VjvR:cLYb^OU\AkaTmU0ONWX`JVSQ`UDgkTpXW4OI\pH``kzuZWEJ}ql9RIZZK^WLXbjLIYiN`PlxPrtitDXfJkJ#uJzh^h;SGKO]MzTffu[h]_OlUc]?zdp_Ra2iKet\plLcL6UOASUR[ZVwlukGNwsSHZSS8W`Stpmba^]oWn;cmRF?ek\OC[~nbq7YZoLtdESpKT8TxNFW#_sacWTN_@NT3GNvpaF@kIMqHo]2GXOh_O`QPx@taSEfRCbK_\t~TdK2AmUbF^[OpYS\dAhqocFK_bns}D?gMX\c[K;_gwElNfVrUMY{t;XV\[vX{yDZ_LUEXZ^cm[sctWhbq_ky8WfW~TThn4CL>[h>t:eEymUk8AMhepgOXd^sXfmpbZpSol`lFO:qXUS}]ZuugsdR;RLhj^ua:qTgMjcpVZMQ6:VVVd\B9Ng>{`nK_mURO8Isjcb]yThFl{ZvGxcX_J5d^qUZdUXbbjLARAroPaQbnqbc?(ag KNakHQ;l^OnZR_aQ_P`bOkQqZ_]nW>aZcx[A\g\xdivDtcvb4TqWXpUaUoLt6Ltuaggn]nZOnXKXE]k`s[j_JK_pJjCRx\Yj~Dx]pq[dke]cQYh_miLhq\[VUfSdq^MIkOr|u]\wZePQWfi]yzbZbZVUdMutFQVJqSVNZLhmMxGUyvg|e^|Z^iqecodO@[mb{cm?`L7UzHOXaOq^tFd^WbOjZcl_Qi[OmyW_}qQaUntDJSEPbPdsrecReuZUmYUISY\>]^gg\UF\P{r]eoaVePe|waVpbdoW^ppihXeR]OJcaXqRM`eleb[Kh`Q`WRkb^bbI_aeyRrc_a\qLLa[OVipcOg;`VZeI\9rKafWXSl\rXXZ\b`YenQXYfbckT^gHod{fLo_dERpWWeid[lZoR_kUiVQXsVyP^u\UQnL^akbb^[KrQtE{cq[i]Ihhcm_lNL|]eHY[r[\\SGGXUnoXMSoj]n__]f\e]h`Q@^hW[mJbk\^|gTd^jym^hlhldTU'jZXhgPjn`OLPP^Wdy_Zu[pU]kYOxeZQha}WWNernb_J[cnRMJ]jag_`QUne[na`n[|uibUdaNOV?oYm_tTB|eZFYTy]h_WmJxczgVpshXD^kdenfm_fAiWl`Kd]]YYRb`yg{rggZk_HlbIQUNotdVpV_eMsqgjfXMrPufjl]aKz]9bEN^oh\>^eaYiabyZCbHmuOmLYQT3VLnrng^MO~JKkWZDNrU?gMXjWBbiajnZHQd`i~~tUZX^@eSqbGXoHM~wdW}8X;fUchfpffRdsk]ZYQSIX`]UEuh~MTQakD[RfnlJ>OuggxcrFilNE@^vhKSjabQ]ceZZZa[^XQ]]bCakqkXURpc`lWwqy[eaiR[kg=b^ZW^M[m^u[YXl^SpUfttdhNIfz]W_be^zmYdTUNP]l`gS}v]Wa^AbWpafYshQhwbnQssg^[=S`XbooW_uobd\raRrdfbUglM\JW]i]E]]yd]tIut2YdsepbbCzWkvjzkJZwtTLy?fLORti_PJzTC^iawrwJf}xJatPWWdcKUyRSSSE_;qkZg\AUiYF]iOWP1Bm&1GX:K`Kd(n~_L^ybBPFtS|l>BvRhh5HJLm\d79:RH.:hO:d<}\HP;Ttjb(lSOlLEUV]=eRVZ?|Naa^POTPj`_VZ?Vo[VPjPBcJVDaMubD`ZUegyU^seaTOdIaIvXhgIedxvh/]6c`T[G\l=pgmOLchh^A:tlj^XphWYl=sn<_zVpx[TfSJRWn_vVXdpUapfKJU_JsZPGZ\_wcnUK>Z^PPXMf`=P[QN\vlufch]XZfYUMgsOQL[Clf^QX[DQXonOJeRKXp8q{RoDHd`GWVewRJfYRLALbfX`Vk`c\;GO^^VX[{AOhYvuXo5TD{JZbn9dfmDeY|[OO>yfF{kK{hFb[p}QlOUkMmAbwP^`MJPaMZHl2cgZu]LWRq{ShX_YbWr^`Z`hKwsg{`i@XfEgfiXYt`bNQ[km`Qumzh;Iaowf[kaZTdmXUQpOE5Rjcg+^STU_`UvVvZdQONWxr^rOm\QUb=^UrbP\sSX[{tovcWgY`km]]EegeefkwWQ?kVX^WQZbImMjg3V\@VVTK`Y}`eWPvPNL;hlb]+L7Cm|l`TPlJZcZK_\Tmpk[ZGh[gIHIEJ]vgWmP_Fvf}[bhwOYZFgGYYlc~anjqyZ`oXRE-}hZqYvM\DeNfeMxcmXimjY;gGade[RSjmMd^V]5]XNgE[_zs}daWEU]bChMvC}\Ypgom^Q_d>QjqHqG`gGJtrZKWfhF\]\^cvoVnsc]aZ`XbX\[CT~YYlPN[dLb_lWMU}jgc]Xb\@xVqOXc\NlKZ^[rZmZg`x;rM`YS[]XS[ZW`\i][snrG^]LXpkTfR]|anHmiWL>Z^ZYgX`nwWY~WqMohs`Uh|VpKrmqb\YK[O^R_a{p[UJRXRg`zb}WURgJ]jK_Yw]slm]gjjGPQbb^iEHJJW7L`g`]a[_WM[qWZLfqI[[\gZAF]QC[L~NZZJEN^s5zqWvZVyUWWBjqZNFVzIH9RzNPM[Vf\WTXxIVPaa[_kXV`QQgjBiqZ]ZJ^WIFLv`TyVg{]aXJ`jnld}gn}IMcT@f\q]YpBBZyfLan;MJU]?Ogkn{XV^Y`zadjBIJ:ssI5bD?cLQ\QVfX\hNPhNKLYVJpHU`Z|tF[;Xf|T];hWJAbi{VUG\DU~@jLuQv|KD@|g_[Y^oPhdCemjKEgRec_[GRWQqDaZ]\xJR;{YNO[jgMoW:p^hv_KkfxbPcy_GIO`HafWNV_YSTS;jIcT_)RZ7ubMNiNeTz_slhZ8j}-t.ZaXkiXgav`mdcrMKQK}_bGu^KsI\cdeZGVnoMgpWSvQX]ldXBEvI`WQTfS]ni\}]OGq9Yr`AXcXYIu^]M[xe`:LQ}kOHjrKmrpRugZhKQHcbUy[MXMqyIY_WTkVm7:W]bM5ZN_Pb\L`xjX_O_X^qS_`}S\lyaKGbifBZKYabPXa]q^\_X_[u_kR]MpabrY\xjOlbVOnmBTct;\w^DG[O|`S_wN^DCRXgQ^u}lN9nY`^sNZ\XhzR\\~R\fr[bzMRVf\f`eZaeJ:[`KcjeSU^d{gXbfm`xWoHiL^CG`ayWQiN5jez]wWQTr>ULdhJm\kqtZXf`cRaqsSomO]b^]PS\YQF_}N^`js]XpbAa^cDxUmlpASN`_U`ca9Rla?@oRcI\bMmZyYXc[~\\krRNUjpUko}q_K+efCPote^WwKiR:o]emVT`_`g^#Sra6kKjZmg?_g]JlY{;uXRgadgh`aUmVc^sA`pRZkGzKhbfp]OKFxR[`hf_~w\ea>d^YjkWDBH@h^Er[glaghOmQ5NZ|UGdQ@rkq]FKg|T_`[vbs7aNMtnDaibd@`G_[z{eT\iAWWeN^Yv}VgkjWWi__qnX`EQ`xOCDI\AahzPY}ur`j\SLCkPbVsTbleNkPrhT^kSskmu\_gV]R\FvbeE]o^]^s_jhrp`[[\rj`nOgemS<[Ui`OR[^m`Ld`[hc^coa`V[Irqz\Uc`moxq^YpU[\lhRVkUW|qgvjdcSShnaLbvma\`GiapNoTcu`stRUtWccaATIdjZEQQ_^eMY@UDN^QhWofTPqNojdKAbbZZ^YAe\Vax[:h[b\]bsOSxyhIEwU[P|cuskRXITjBXU=\X`TSqlXRKMPbajOoxrz}ihPaNhp^wbfoLPiVvnjhneEqvWy^WbhTpLk_L_hROgHXLEUIqrZJi`rp`uWVnQljRk_XlfbX_Yf[lT|e^LUfWoRLj|XaVbPioPoamnhSTZNvPmX`P\juhthQLZlaXkXdyQ`ch[dZVabB\~c[]MYTwa\_mon]SXlZBTX}bokNf^iROno\^Yboya{GimkWVoejhcZb`jRr[iVh]ogMcXo\c^MVcfnaec\ps]PlZTdZrcJ]kUXZbmZjmTkaesdeZjpYM[k{esp]UGUwehgePcU\KZN[ekVRir>S@YhrUYPY`mRneOarZRQOfm[]^VkRhvavdYx]YRhcjdWWZd[buJqXeMZ[TddgrS]kpd`v[^AkXcPbQhesdH^oel]LdCOYZZccj|PkX>_apRXMgf?OZsXat_W\PkUs]~LcJWibbQpTjYk{nVkbXuea[FPTdtgWid]KTkGS\BdP|Z}Z@aTH}WkNYS`XkafpYfFHPNfgTLXdbMh|Bj^_O\<_jPM^txGKNVe\ER\eCTlnpVaIpMShEGheXlWKaVj]d`W[WK_lnNBfcOpVOx?\>ZOw\e>\ko\pd\_VCk|TfoPM_JzSi9cd}zWOdN\igbzPnkVhjU^jWcCdV~P[iA`km^Bi[atNpTi\ita\Vg_rhvee_kOfnrS`wkLdbW\QqeZbiRpaMh]{Yjgk^m\_V_VctddN[cXdXboOh`NTWf{H]TwXaqae`Y[htZ_sXui{Z[ShrWweG`UgZbdeebgvtc^V\ba{|R_ahQauhmtTtZqXkRpad^[Y^[XTPadlmXlXR}bOf}bRZV^N`hd[YVaZXkR\Qkssoeactde_\\ac[cllpieBZPldOlxYof^AFL^_}f]kiISkEg\SVaVP`_`oQofGCkfn[LtfcRQRfmie[nGpgqh_ejv]aph]`Y`_ZoMObHg`SM__oqZ\vanKVOuZeU\pofgXb[Q[[nwse}_LYWf`ZXnbYoVvUb\S]_[eUXiIjj_uvUbhpE`YfuVamY\c[KUckz_jMA\abj\\"`Fa[SepExWdt_RNmJ\jTpebac6n]DiRcVk@e}XnYyb[UG\cxMijSdg_tLd[A]V\QPofpi|xQPPpmSiWcWRED_|HgRWLQeTth[tm|X2utfbBpcN`CcOf^rmk`QXmC_hC^Ohkko7U[GXTEcaMeRZQxhsMUeiEYXo?sKifGVfvvodnol@ZE\rjTMnl>oZJjV`?TKwPoeCd`JQS}Kidh4a]Qm\[ZYiplr]XRdrXZEpxMN`YSPZecuKZQ~=fVWLUULymgVOHFUr]ffU{`lO[[nchkJjZXrXjZxXJddw`WtPVEZjiT[]bwjgP`UoZro`bfj}aI]pir[^QLdjLrDpkjkwYfre[]_pcVeQgcYEbf\^WfccY_VZY[{J]ja{dcLY_ntuIm^g_w|pNkiTbe_^^Yd[~O\gcaWUi^nYWhW^_d_]WS[SM|Rt`Dff^UkZSgxaPL=`LLbHg|f_fSaeLkp]W|r`g]WcxZUljd\JcTHUUWxmIAmij}U/iTlmdcVgjsA`^^NBKDV]ktKXU\QnO~ybZlni.rnKVcQazbw_VhifV@NLWfumcNU{[|wbhzDbdiUrjS_FFkrv]c@|nYa]gOXiHVebarfXb[^p^[pX;lf}dXXuh[Pd~_oEMmQ;xYC`RVpHKfm]mEhhVM9TNUmUUiGQMcb^ga_dcVnub`E[]?nR\opPew[cKUoijXbqglm^b]dCt^XAVl_g]t\g^bYkXCaQZReY\fqkV_SJl^ij_OX`^ObqedZkfli\j~Wm[ZXdBUdWOJHlfE:YZpmkeVVcpdRDqqwN`bgPfYlrOcamgQiiXNviSWbljpc_MM`NjhaXZtbvamOhmem[a`U[rbiYNe]eYZH|p\lN_O`fmgQ\aL_Tha]TN[XXXbXH^qRhktC;q_vt^X]9E^]VTm{bdd`Qs\[cXdNamjqTli`^bLanYHTlMSRYS?nSY]ieWefn]ifYY[ZgbQajm_Ps]b\QTxjN^]RR[g}Tac_]dbVb[aYuj}ba9SQm[]FikYUYaglQYN^zOXRnQ^\ThnWeZqWMiWpmUhZmP}kz^skklrtttmr{murgfmxpq_p~nYdw}s{r\rspcfwiytpmqipllwyzvwiyv|s~ksoynkkoz{fzpfp}jyskdlzwi}jb}qzwsxu}h~vegnpBlio~uzl,dQtyrn{knjv{owpbakdzg\syui|myukZ]~usmmatcyksoqqrxqihHlaToaVV=alz]p`nHlgW\jq\Zee[^Zf\_jcmepBpLUctfagTNIOSY7YUVMRssThVaNZOG^f^IR_vhdSem\TUa^^^A^^N]USf_V^vcSRhkbbQW9aco~dDVUdcDTYkD`eS`^lbQbR`V]XXcEWklfW^^VlbfpgbKNiZSOSwaVNbY>N{pVoNfH?}Qm_YX;]OJM?XpV^G^_C]QQ`[]iLUcd6PIlq\^WkRPel];MyVeCXqsWVcMc^9SjLpyTb?ZYNSRZLE}eQVJuWZ~};hUk]Xi`jzd]cSDYlcUgcop?ZUR{_NS`isStZzq`]WV[pc\:DXlVcZ[``UGjK_?biUR\xpXX\tQoNUyCk3XYn`~ai|RZjmpXkqZI7gYOK8`\ZYHHUXCxT]R[F4nRddhCEuhVSpG[=hOLacep[ddjp[]O[GSAidheKWW@>U\wdNhwk[giYlbz`KTT_`gitn\QTf>_E[x`EmKnhLd\\I[socGfa_\d8aK[]N65XaJph[ke~VDX}HaEFagN?F\E?dUokcjoyjWpxZX\kOCMjmqspYgwc`bwAeeIpnkmyh]h_^cktNVoe\sQ\{oW}ktQjpYzTQ{]Co];egS~fRyNUAQaCSGJLoYl\jrmdrRayf[c}_`\FW_ktgEe`oH^7isZasEYRnauf{@yB[Lsti^ehOyUs*tOzRsgzEDebLsnqxfLtXXNS?goBZsd\'Qirr{TU}WewgOIGIWf_W^vWi9jthG?RWmaPNYVYX?KhM8ynkdMKhnpWemBG\nbuW]ogVkailmYadirWUaLnFYbQRVeiV^ybMiU\chRRvg_``KFUTMdXXZb\mG_c`dT`goakAjSkraUUl`X_ZRhcai_^bwwchR=Zu`exFbecZZiDd6dpdi_=BLcwkPh]GxIkQ\aaXlWjJ[QYqbJLtGa_bq\;XFcXzRizFbXmdcYA`\PhmZPLvkSh_\O^eJ]VpEXTkMig]Qtm-6Kqr}O]JpLLKlQummbZXSOVaKW\yKdy`u@J;X{Rn_Tla_P_DWexahvx`\InY_BYDLZfRZUTMpZ]il`gYpsRjpbaLnR[e[jOrfteQP`wuCaHYOef9jdmmdMX\;Qcl`CkVhh_apYccYcaXg[gcNkUWXffcV[iep^ND[VnpmZgv]`lWLZ^o8ZVmjMdugkYRHjehTimemc^Lg[]Ze\Qpab]>llnmr_efae[^ZkjfWSm`f^]XkU_RdMmbLaQIIj]dP\SWcZtbQb\WrTSa^imUIbjH`VSqnegSSVd>envhoeMYhQZT_u\c_Utub_ik\u\PhjeXY{Y_^o>ljXhVogAyxEpah_^dT]ILGV]CgdJknAq{`Sb\M`qb=VlwqMhQ|IgshyO`V]vq}dIpGUhqtyJZAp\_epbiadkakf=\dgSYj;IP\zgXeMOwP`]\VnR`YnjsU_pmh\U]i3YTXjmX`cKdW9M`qhvn_`b]Oe\OmYTRQ.Lilq`sjd_Utw^VwIGYbsY[zh}ImRfagocYQMavcjEhySxMsf_[Va~^`GgeqtbJlRkEBn\_x=W\]`TflXIr_]TOOnsbhoBdOoqWMJ]bbb]WLX \ No newline at end of file diff --git a/packages/backend/nsfw-model/group1-shard3of6 b/packages/backend/nsfw-model/group1-shard3of6 deleted file mode 100644 index 27b144f06..000000000 --- a/packages/backend/nsfw-model/group1-shard3of6 +++ /dev/null @@ -1,3 +0,0 @@ -}CQ_UaKxWVEWHejLib]hlae]woNVzhakMdmbT^pad\Vhzvqmmc^kr[qr~R[Y^`{odqhb]O|`|NmdvUe[uaPmqhIQ`YMbPubbtU~]YJnsHjBbmBmggPELkTVJT[dYkhR[\YBXX[hvY^o|ud^WjmB\aZZsamA^XHrachw[iikzKTbQbq_cIW\ffSnYXmWR~iiMhPSonhj{CW_oyMSF`DheporjipsT_dti\ndfFwbrL]]x_iZ^OXX_bGcOe8jfDXbwmM``^Aacoe^prvlrgkUfs\Plh[r}fIVfoNNZSWLhpdv]dS\uPZ\\Y_wbXyP^[JF]WKTO[FPb[xYF^^p7cq[Xgg]Z^dqe`mjLITare^MY_bKa~aZdQk_MOmeEP[|{NhoyaXiy{TTVkt;ol\YcbR_\xYk\QPjh`[Y][r`RkUk@b`bZeeioickhZVRVgaVQXoefdWSdpPdfcdXT^iVitirTkh]Yfpmdhv]Ml^fnjmsdTdeWnGLUXkMejIc{NhPo`jVMc[W?NUdacRXrocbac`PpbaYLcdeV|Ths{pVwYhMenIrgjcdV@OSUePPXES\dXd[zr]^Xpbn_LYf\^YgY_dd]tSf_k`B^\^h`cGQYqSndi_k^lU`saqlMXrwoWj^BVrNqoNT]anX`MuU:aOu]EGXF[{Xac`Rb^WutblktUHUt_f[W]ir[abJbYe`CxghfEleg]cHNY^dbRdMUtVzxcja^ZdhJIVdEwVXe]^bpf`rsS]Oqsbs`qlvkXj_?k\_mpPqw[Pbf[__[PTiMKcgHdt]o[k_`[a_\iffg9`kUJVVd`o`^SBcopNitAYcKMm]V_HJ^KMSTUeJSeWm`P`[i_WQdkEnlbW[5bj^>a{eWXy^]LI@ZqaPZXuZ[PJ^bJ[bTZudWI?_]JZDODvx[cmPekUk`l>_[^gC{\RVgemPslkq=kkWhJGpwfXbb\oVZe\\ATvbOlGSMIRf`m}cY^pn7Z_]gdSggtWg{qQE[m8ppsMOZg[]^`k`ObyZe\quhCNRWxhvVq}^y_rbijqXZ^YridLsQh]dhtiVi_VmTjKJh_ju[ahl]Qba^Vhrl[iuloZQp:RKrQTZggXajTvd^Zf@FWqeUy|vIQZ[df\hfKfTeo`eK{U\VBYJbUnISexx^O[{fnheda_hmCqw`VVsMa`PKA[xb_tZas\\qgZhRWk^ngR`WTkcOVejaVbx\VYkEy_bguL{qe~fvulupXjZgTSW\WVF}PPQcFJ^PYM[@c^fD`[`Wwljgj`iUxhUlh]JfUnIsvQiioStSXfMbxkNdZrOrW[GXP_eXopQ{E0LjHi[bT_`m_[Z^PdZXjk_dgG[j~mWm]QiMT|P]amceV|^oRVwU`[WIW[X_iO|QX{rWW[aOLf^^_FWoQYdE[Q`GcyuWOr{Dqq\k`dVMqUcOYhV;GTaEslBHUiG`nfvc^]Z[c\Uij[XcWhoXaZObjUykVQXSlh}M\an]xSPLT[y^fb\bT_`OVcZYab[c{t`~hh[aGR^T^RbiXOdrwWbePd~]I][GXr\rZte\ckfQmrhnJ[>eKiUXQerbbQgi`7hPpdVnp`X`ZyKQcVhZxZqi_Tq_Y^[qcCvccSs{XWeqx_ffmcUhq^X[i^mboskI@Ln}aTfgcZWuuslSxQ\>WSlveUoXZo[VfLnmNUr[ai__rgX_k_X_bF[lrkhnTlQg{afmStJmjjUYfV[hkl]n`ktsfRdd\Xb]V`HhjhvoC`^rbKTf`a^m_]YXT\lZT[[dqHfjcS_SjjwXfcAV_IxQhjabi`XVhiXVoM_gVVnRhu`Ycy]UZ^YV_QY`eeXv^{nWSLVR`OZ|dri_b_]sukdVOh`XlXqf_PZviWeXy_dkamsi_b`hWj[bScI_YANmfW`nY`6|^[kbQmg[cjySeGJ\OafjX__QhYkgYYkYsniZYfw;i]ZP]ZhNq\ZV\_blaXS-[\Io`iR{}pj]W^c]cgxamVgw[NYlS_^pRmHyY:[FMeZYQchHX^QYbmG{zti:tfFsc{XUcipPppf\L`_}Gl\c8c[]<4_zA|7@[kT^UX[Mhrb4jNabXwHZOP[Of`VtVeXj\^ZjgzMXdcGe`WGTqflXWXF_lWfeqLY[`lvZDZbbbUfWcnfguhNebLUUmWX^wyVXTuVXYWpc]^W}qMaYMbMjscsN^Y__Pari8m`]lm[YMMbPRKhXULmXh^M]mZPu\cDWhhUX`SpC^WWaUb]LQP\RUWOS`wWtcyaDen^bmfnu\>f`U]IgTQSagu`]/RSyeD]ZUjsbo_RyQ_R~mSR[cDR`qpWv^O`^[a]b^`kis]\KURn}n^Yf\QlQOshbiK\p]LC^~hOleVZJPcZ~]m_rjuTbVLrNU^`ijOQl[PZb|[j[tWkXWNS\xRghZKFXlw_CpZH]^m_rPXwgSoQ_tWztPMic^ZVaDW_gUGmRazW]lPgR`aB_[V`]rh_V[c`Xequc]WWMNlWeLmUkohYrkkUElR]F`gC\TNuW]i]|dS@]\TlYEyurwehddOb[eZolqtQZ]JXGajaTY:Z]H\TRuPmnZIi]}ne_kiexjFSpUP_^]pkU^XhS_beRR_iZ\\sYSP^YEl``f_t^RkF\R[pfLJYd]LN`S^kWBPSThjTRDeNV\Ha}`NtixfNeZWt[Q\rtzHVCYgTbbbcSVXqLr_XQV[qv]abmycal^kmc\UkF`XUp^_ExfZVzgvRg]HtpaOa_XVabcYXHPrfkwPMUC``golUWyZ[we^JSlhcG[oaoltXMZh`nX^K\tgRyQOlYa]sVe`g^VqYSglaP^vPpfX}^asTjNWc{QU|cbkvH[te|Vm|mRZMrr\[ah][QdPTTRb][k`SomJgdh]aTbJm]rQYdkGhgfuhbpYOfbg[tc^bU\`doiuRUae]pmqh_aWflX^LhoRQYcRYG\MtZOkkcYRfkWp\qsafYd]b}baKc^iJ`aHWV]ZoEav`adioZdQiZnRmWooWoiWGKa\aghk]ckdVb{lStmpZ\Sq^YqZjQ[T[JdTXURkamZTPkYqmxTvpUf\XaqxqetTaxhwrdohign__mk`f^jb^qe[Vfebl^iYnYatfgw_h_~[WKqSyjtmmjdGs^tpVg`HTigIUO\nA][zYpf|UccvppcPnUll^mTpbUYdaWbadeGqVhjUVhJZk]Qo\KAMZ\{h\Uedg^^Vd^VwNWYNfS_bmiiTeX[h\Uf\cYifPYZIm_O\c^WSU_]q`khmh\buasm^lidfO[`RXwe`aZxmteVQ]j^su\hmk\_UoZh\gS^Obi^Zhi~ZbvgbNjZlk__UZLWTjfnnPiri~i_p`qbL\XWZf]X`aj^dzkua^jY^jk_ipmJUdsd]^ipkfrdZ_^gSKs|^Mk__k[hSNQUVc]_b]Y_pdZe\tmc`alk\bjSUwiZeT]]oe^[V^`vtwseWobQhf[ZZgSbbw\K]tVEkpJpWy`O]]sXvXgepXkLLfcidVTPboWu`QUenxsIki\S_vilZRna\Yr\PWSh^XOpZj\bVYcYl\duc`khqRldQ[[YXodeW\e{{Qk\g]w__xamfdv^kgOT[u[gV_^`h[VbfSmpJeUah`i_[jdi__NQcaqfOrileiejcmbVbj{^^[Y``Mir[[{VRrbpUtRiIx[iagYY_uTexluXikeZbidXfNW^bXk[NTNWXcoxb[rhZqsbYZndcyh]n;WgehaSUTmi`nl]bZjj_RZ:XghlimVUMHH*b>QIZUE@PW@X\]\bPSX2D_UZMvO\LDBUfFUX]EuMZc{\kNoMMoKNLPoWVYacK[RM4SP`c;v=LCTKZV\hYXJ\rBMNbny]fM\E@CW]Ib]dllreQwTLR{KQ`B\ejOQG]b>Tag\e5X_k7X[YIY?Y2Y^okJ[gB>RhHXH]jhAKAa=I6ZIdZ[ZitXasgfj^aMTPcUrU_vSb^bxaLRaVgmMzZnUwh[qSeeFVZZc^KdnOg\d_[>sWd]R]r]hu\[?[^iTXZi`lO]c]s\VmUTS]eiWaU=^cYVy]KZotx:WDY^^iWzZRpH_nLfjZ`bmNql\?_FdPO[a_pZfVbl\vgnkiRZe|ba\ggr[kgpaoSd_R@hW^__VP_dneOsrntIkvLcYE?LoMiOFiDdTBbf\ZdTeWYw[PShZTtWibcYvs_Z^I\?iRug\aVa_lfdnqqcbMr\OJpkNumi\>LcosrTfTXWVI]zd]acpMi[pWYrj^>UyT]VQX:jWQ\[b_TJfU^fa]yVjYTTRV\iY_jM~OgjlxhHo\iZO}Pw]X^dUhcObTbYcoi[\iemBYLYfqobQO>g^]xZffojchaldVYNsenub~Z]M_NV\|]fnq]nopSnXrQgcmJPJtjcVpQFEenUd[Qka[d}_saWcVUYUwYKtd|_[x}ZZSo]XmrM\IwrU`RZ]ldh[bkJ`ajn0fCbK[Z^UZONZyE9crkoXTUjckec^Ye[blMfbUUY[pctmpa_Q]rRHlVJ]rXgS8ldYp}EZ{c`@^L`JN\G4N6ImcLVCOX[PbgB;QtfS|BTBEW:]]?VT{mbXV~]sdVq^9Hy@MXaMVi[gtE_bGlRhN{TQ`H>qpX\`JeoOg:^qO`n]HcQrem[oWNZeRpV`FNXoXrKb6NhEP[`gE9Yl_iYmG\{M6|aM^cqMiJapwGb`\u`l8XJnSM^_VfkNb@S?e`UegfbgV>Q[\k\oZLkPArn[u`dpLZdvEQT^O`_naU[`yFWk>lXOrNRPvPma]X`TI]IECUUMyldCQ_XkRP_DPjj[ab_\^oJU[PyhhU[F<\XRk`jSv_YwL\Md\KSiBWemd`8[XpcPNwbGnwbr[V^z_]ool^iTTUgdoWrIWClbqdTYrslRdjYalk>Zf[dwtsO[c`J`jqlercP^lYfgpeWQQgdY{`_nk]geabZ\{\\j`ZeY]q^uTh_y]_iAkqfgY]VkdGq]Yml^kig\MkYoZGq{pVfld^YpcanZUhb|ddjttZifp^bQbSVdYqboOqUaBWQxVS[gqnjZZXbele\oolcg_bx_khTF`@[uXcYjZag~n_SS[S`ej^ojcmVUd{nwCYcTnbl\`cA@b|kezTadgdyAbWX\`Ra`f\eei`Q_^AXe^ZXvT^JtjMae[NvZQhcGIt{jfkUbihbpYYuMXggX|_LYhiTRgguxpylZyQFnj.ahjhXnZ^lYaHMaweqe^kx\ogZhkzdwUNb_cglt[hKWqd\QSia^cfmceqcaVlRlh9aG]gfkWk[^V\mYY_jH^ombRWW\qiVcgXiPPJxPV^QGhaNa]cqpWZVfkHkTPaTkU^\\dnc`jV8YPG[b[AbWnLaZc[SzwdVQYXqj\cmkXd^c\ac[9VXElYWYrbNcY[vj\\ZZbSqjgwdGhSpMI]VY6eYWhd[^flb]VRXqUSgcXi]\iCZn]d]lW]wdm\\bc`jbUTe~>Et^wQ[\feeqhebdh]lWJdh[fi[f_l[Zck\s`Jk_hipQTbbbjP[]Tk{f]ecdbbW}ddTceyf{kLkVVi^]e^rqSVumoQVXgaNcXlfY``]Pyp`Wi\OdNm_]g]xBefGi[]UGb[mri\nIXjm\[^eLkkdUZ_dwj[mYi[_ZIUgVTb`g_VyQj]aplhV]exf]lYceYo^kfQbl]mWTeqRjgaaYlQ]RVvhm]IPEiZfn`zs[_cbl`kQl\QzBQES[rBWyafWFpXjL`iX_Nhz]yWMSeSbVWY[qpaijd|geYdGecaHpCgiGbeihwfdjM?`L\UB`[lS[^^kugUhkYh[SKx\fkTVNCnRUoximYs@\rGxTc{TVpZKF3S]kmUrEGW=XldW^erR=G\\iZVdd;m]r[e6PTt]MTCxuX``DrrZewda;_dm][pMZVf8`THgXf\J^ckSUdUqWdJ^LRgqYtfoWP_>cbg9SSZaqBV~MalNhbFZF0\iZmgvMoTvpSPeiNlUfTMJO~sR`dOdYCM|glEM>kCY~n]Ngp^zWWVcWTt~JR__LovPVX?foSYvaeUNYZ^obnYqiL\C`a^pf_iPHRd_WR]`WrYjfNnLtFLSQxi_qackbV]LorBrPg?Tdk^sNSW@ihXp`tVgiPi`LROP]Z-IZk_oTRfDZAPsqTfsiZ]]d_TeDVfKb~~VQ`Q]ImsaaUVagW]Z`XkTnfRVWWaQSYnhVJ\wa;WSgoZ_\W_^s\``QVlcUkJkX[siflfeX}MfaYP[bWWgou\jme[_eebnIY^_Zl^n_eb\bkX\d__N]Uk|NgheU`iiircqJTdZtgl^PbPbWm^ymUYV``^aIc[kWbGnipr^b|\So\UcmdhjkeUX[dvoPJxPs`R`gSdxfabgY]Xq]thRakZnUsQuSQk`]wagW[hTeUsfcf~YTbX]KrhRtoVGKJRZQZxnraaN\YlXWSKUdb\hDnFiY_WjdjwGsiZsQZIj|q`[6^GLSWcm_aqQ`VBdYVd\dX~QjOMXp[MXZmpMDpPZXGaQqwaXW}YIVhrZKb|^cLq`jd\VQAfs[jUkqeqjpNPZ\DXT[NtcV`VQ{N|dBAlOFu{iaeUWV\Mgf%ma`h~sUWV9cWVpoe_ckKfppdxH`NGovmpYlVtc`YtWK[@r;L^YWk[aZahZxM]GeEEqjjB=vjg`jlFZI}]jYxRvhdY^\;`\``\uWi[9alNbpeV\a~kWEm\w_o_SY``faeOLUWzr[tXHi``WW\^[PnkRGgmTNlcoy\`s]g^ckd:D^IZhhgybUZVWnb`\\}j\[Vn\dYNZ`cWvVzZ[\[duwYVYDJh>PcY_A`\L\qe_6b[dciqVSgU[4c]U_VIPvPuK8nnqf.^__^U0PgyjJdtSMx`]WRNT]rYUE}eNR{[_rsr^hOt`gQW[gjSwROF`^}OT:TEQ`esc_;NQXbI`auN^{lji_ecLPbxTclB]5dmdgfx}ae\VXec8UPgB`QTQGXePgYcqm{e^ee[^jgNIgfrEI`\gwi_sq`MRZevyeUHXsesGmHX[\TSLU]RESZteV.r_NWcefYYKahe]GhcBRTihZO^Vblrwg[b^lu_fnWZ|JJh]mm]4jg?MVSRVTSrFkt^>UWIlbibQD[N^ksiSXBFLJPI6_fZUZblVqQeaOfSUPdZUbcgfXT\lU`fUjR^olNNcQRWZ|X[dMKgnzna\qFoa^mgQktj^S_RXgQRM\dquYpPjaSQ_amfi]>jZhNlULkcQWbPdhRYmUigj~nadjV^TYm}R]ciXRZXPcnm_TUYXbguvsYPhcSMWWap]\X[TeIe\TTadcNXgHdlkkObi\NQGhnddT]dR_VyWgTEkcaevHd\q^P`_aa[j`[ddny]zez]U`ZU]rwOfYaOWX`ljX^N]hTr\cAybPxV\iYZN[fec^kkhLhXH_bG^z\mQaWrc]]ZMgu|^^UITb_YG}W`aa\Kk[rcRQY\_dfdQVjvacCW\`bB[joc_Y`d_\\WqVCLfZ]ksWbaUUCZk]M]cdpWi]E`ZdvRU^lqHPKmNWOQVq^`VmgYaZt]>rbdcmfHZZ\YnRXch`lOqRovxUgVqlWPqihQu}f@GkXUZOW`Zum\iI5gPjWQuJO`~AZwu^R{^eac{SD^RPjtsYEDi[gZw]v`jSgP_AniwjWP\LXVSZHXUbAhcwhNZifeaIhu}ppJo?ZJ[JpO{=M]`Z{PmKUKZci]JDJYtZTHXlYytdEBH>VdqfJYiQ]SUj_cc^HST`^Wv``CDbL}g]YP]^zXQee@SmO]aLOXk]_Vs_gdCdjYbgL_Zb[QKkl/axc`lj^G[ij+dbqP`XBlXTnAFY^ey_hr~^rZpqoY`T7iT_R[bgc]s_RdTyQgG8hoZs{kipH[e[irem|]_ZhdfJ[gsjirYT[geKkS`PLLoOVvHcoSxV^dQXZa[XShYbRWPPlS[hqn]B\e|`_`i\dgdqkY`dhPp[YVjLECX`TT\iLYqNT`eMlh^XfjWS_`W{mS_jiX|KaYYaPXee`{No_W[`dP`JZ_muda]g`p9cmfSilILM}]YXnqeMnf]r\ShN`TvVqds]OUS{iaNnQ@\VYfIbX[bZNTwlS{dcha]lSWUlVVKGdX|Md\ZYNky=QxiKSWZsdZef[iebsMiUi^IhU]Oefwie]mz_mO]IVlGvceqpY~ROUUl^hN[nzp^km@x^il]bjPZkbhK`hXcXWzR^TSPbYVqNTwPwrMKeh=W\I`ideNOphmZZyNWa_XvZQd[MZGeSR^Ml^ZlkkTMNVVWO[djiTbDWrljZot{lk}bavkKQmg\og]hgfLlyZ;dcXNbK`aoM`o[^Z]V\nbzXhZwgdk_]Yj`qZ[NgfejFwJrbod`Voix_h_nnffSWqlXZ|]uYUe_c__YyNb\auRcJalSbfxdPGrcyr\mGlQoZTkU[uwbiS_Qb^]PMR_r]jOOjmcppZ_ks_XiyOM{IXiJ9NQi`qjU\k`beXjxSfi[NMXYOm^kSjeckH^RhZMS]X{omxnMp][lxMdfaXj_X@^b^WULHU[^olikair|]bV]byjgiLisIcjToULhjWgRN^[iYaV`as`bZboxpQg\u]huQoTO\jmQaVYi_S`kVP^[KblY\eqZWO\SBjlOsDipX]z]iilIxQaTRV}aO`Q^glg}\Y`plIGJoMlsoXIYC[OiJN[Z`l^eN?rS[\lHvJ}qNmTfCvWeU]Ree{}HIk^Ovdy^mpl`vebZfV`K^cYb]ZocfM\akYPoVRZsLm_bbcc8ZkkPnbZgPXOnqYSWvHgjfeScX:z_QD]VxSW~UZU\oj`dIXMyMUW}\l^z[tKJYbhYqfXYPvT]=VXgN^_xXXwXP}lqIUXuafTox_JaEMq_]m^^etU]W]cyVshEJ]n_UuhPVQUP]bjj_iTYbrthTaoA\hXlUdkbenZXtxYh]bdeYZoQ`hd[[ZYuPRY\fZ\\Ubv^^v`gkOiGTTmSbRLLV_\zkTYpmmVda]e`sxQVIkiPWpeu_@^sRjYchW^ireoJVAm]Wf]Qg[\]Je]\WRC[ckRWjRwrMZ[I`lNOoahse`TOwj[OS\j]KGfViVSlq\9bZkQ>KmjW{a`HhYlS]PwqV\gsY_X|Jm[h_VPq_jiLi[v`mUakpn`:kYPazrfgbc[h`z\zZgoU`rWae_cecqgl^mcei^eb^YgfhnshcWcjb^li^]`nMjakbuTl\rlcSfdgU\fSVl\]n^ziujvk_bTSm_ajY{_MwVbbbcQTchjVrbg^}]kgbPqZas^iYV^{^^k^]pweLX]auqeScu[Ydk[K^SOjweVWhcmK`iZarxE?`fb^t\g_Xsip[k{Ug[_jwae^`gWc\\mpjn^mpXOWzWZnj\oa5htkBJTSjy^W`]Qk`li\mfVpvpl~qauPl\WWwzYL\NjMiRDx]reMhWe^d=^{e`cWVuVugXtvdS\_gSZiiE\ot`_WN^nPkXusTXjfBO]URyJimpkM\eSqqgOaIViaXUaRWmRin_RSd^qJa\D\]L]gReZFrhaj]nRYnstk`Z`GVJI@OUWg[Pb\fS[le\V_}ebnZx^thlTR]WTf]bZZj\mPWVnWaasGVBln_TWVbWbSRcdQ{o`t_uWUdZiP`b^WgoubYa]UrVYO[qr@`eflXPTVfWjcRyhVbmT[\TmVg]{ZboEshrZ_^WDsj`a\di[\OUesA_dP^OSYTk_ga[bgb`\avYacUb]bhUhwcjhsVi^_Q_WiEidXkQYn`e``f]`kx_TdW[jif^XcQ^gdrbU\zWSWZ[BfosgZJdPdiQf^plfseWogml]^\Ox^nQbesklheYlkvU^XjanZmWrRXPaVinY\SP\Sm^p[XpT]hYQg_YXrdZQ}hgeXh[dIVd]BUc\d]fddX^ff]d^re^xsaogU\^zXrnQWYaTtXo{UZjTl[`ZioWedPe`cL\NZ]aiNeth[[WYfTC\Ty=dZxukV`Z_Bpe`g`eCI;^w\qFISRDrxa\wiNh[WXHJRmwcNtESnoW[ZcO\^Re\/KLT\ctSUS3`NYJ\]\UgKC\gMpcXNfrM_Nyc_\^^iVKMWWQtOj]kUJb_XP]\U9sIilx_rdGq?FgOZL[i<`6_uH`F^WVoTSWlM]Tge_BPbxp[FLXpZQxy^sQZcK^TK|RPwOnUgcRYNiin[`R(`X_RhjZh_RV`Qonjb^JGXnMOl5\KQax_;hsB`HQ]olq?UYih[syeST[YWVjhHqMNeS~\W_ygU`^i]UfwzISUpwePaZbmPq]f__`mVjOaq5pQbKSH_~VlWjjOXwrUj}\l[?^QpvaiPETaZ\\dnifjIQQZBQHR]rwcEfkiPXN]_]biWpSqB|8SI_qTZ.X[bRHR\\lSpMXv\\jd_M?hX>{YTSgRufSxaaWYon_XgckWYu]\g]SleaquySphmrc\VmW__kWY`cj_jlsVmYBVTbUsRRkfbuo:WjX`XlfckkXU[_wuT^W{gM[][k[Sx^_XfRNoO[^gQ:fVl]hzba9GI?Xf_YubO[eOefpymkpctQgDOT6hL\qv`s`\Idg{JOtuIeh\kkvyaS_Pnccni}chTbe_vaD7\9`~hM[dV`LzeO^^l\jGfSQE`sTPBh?aw_^dQsPmJZk`VveOpIlgSRmrzjayN5esGUSAfNScd\bDUJdYZj~aelR`gf_^`jhShBb^jRfqlcXU]scedcUWY^jW\g_dUlqkWlhaXodPidUmk[\gk]h`PIIc`khvZvad[h[lxvgWKVIVgVaNadi_]\K[NkfiWScQTfXYsFqdiZcqr`eWj[b[mirVxg\\xdhZP{|iWSUh{nXu]f[kgeqR^Ta`WYeX[[ihGhl[r[fXhW_hUgBS]iZV,o}E?|DJDXfcH}NkxEIvUobS`tkF^=hJeJUb[SYbX+n]c?^[m`{LLElw]HdwfXSzcLZ\lGpawKReVif\sELkYKS\`ajn_TT7bJL=lkIdeG^abd>LRjuzDuW\Z\fq^Nl\NwhVuKHpq{TM=ZvxdF[v~MkQkRPOhJ_^bOONzZeiaHl`\fLuPSUN_QQmdeQmUV\LKu~U_rekRj[bn^YfdehLF|dTO^]MhA`gdd^^Wl]ni_kfl_s_Sc^Od[eiXephmP{mg]~REoqVLg[lLrmaRVGbT_^]vO`V{nV`Rb^^aA]s_ZX\\gnKlYoj_adjGRucZUWCYlDZ_YHRflZwdnadMZxsePUhn_inckbdee|Gbt6`_naXEy[MagWyvjqw|^YsqVv^\pVbgu`fFlhXS[eSHQZ]]aRiF^^iHTzdmdWg2a]dIY`le\jKjLMHb_sYWRegsLl_VvZfy_We\]f]hLpym`?tpYi~iamcFzTSKZlPf^rcN]gQWjbpZvv7mge`]tfUpRXa4a[e{Wjcl[ce__QLv]eWYMaZfz]`SjB_TmrYW[TySYbSO\^iZ;llcUEcooo]]gMXNf\ScCpgh`imW_Z`bT`_PkT^xa?zGWz\cM_LjxUf`gusRnYal]L^mqMD1PHWQXcIatTlUk?htd`ThZyLbKV:^TtzdbVX}bpkTamuYMgegbobVqc`^flgY[OXnciRZyiufi_\_XjfLX^[iu_cda~VwhV{qefj_boRVfiKO^iVNhsbtmdYM\UPtjVFiUZaloT{u|PkNZS[KZjdlgGSWbdmbn_fhnRhrdk\`vh^whs]rQae[aXrd__YGXYlaVKcQ^iJWc\t]toV\daq`_k\dWkWk[h`yXYegXU[_wayjZei@jpnnmTOFLAWlZliJINSgjROfyboiAYYarlVANPiWO>hZdg[ljOqsiVa~X_kRKarb^fsmW5`GY^lgpRUO^\lVpwXQKZpxNM[dP`sT[aPpfkEK{]_Samo`JOm^HdXi]j?hUlo}qRuh`T];^NCDlS`uWldSIum|Oju^7QUNg|vNm}oOQnsN>MfJk?w]]GJ[kPMNcahSWKNyVX^d{^b[zN\lGP{Mjrr`qONU`zUtvU\V}YbeOcpbKQFQbxHZsaIiORVVGUOY_vkAl]`QM][fEh`[o_\[K\X~S\fUZ[aZc`Ft]RS`^qKFrh[iVsXm_mJQm\\ckeaVFcsYJtht\V]FvqZ_MV_`NZDkPSikO_xRVYTWFgfl\SHvGl[VY`[[I`]]jZhWfTXQqmNg_m[RSYKvbioZ^^]V^Z\Wdf]oadVWfc`rCsOvtf\Sb^nlj]bUjQEKwg[\_iabTU[bU9sD`Wh_Y]bcV`^YvQMwlJ@XtjpJcWhRqjos`emtd}locuabe~O}zBikliNgktaWH{Vbima[MlYXKeSKpccqdam{diL]ccPW[Bc`qWgf]YMPkiNZcceUh^[gnhXUcTvL_]qS^]fZ`Y}c\dHPT^w`aOnauWscaVSwc^ediqkmfWVZdXcc`v]Wi^tfbs\g]j^lu_fBfkRRigjpb`SlNXSaYRPAMJ]Ql_kTX]_Y`io:_k^ReMh[UbjSO_dGf^WdZk`NfXithg]^z^aBjrPHSa|mnb`ekV]oceiSVrn`Yg]dSX\u`tSWa_dZP[n^RgAKiWNWbiaj_qfJ]alM^cdqJflAOfYbb`ZUUIPUz_hVd`]p|~cR]XMFQ9aXjzgdKoc\eXWQfRnQk^SnMrvyqQXE^ZHld[m]jm`_HHechiprcSxWV^fVSplfcP7`HxXCyrf{c]gqhYOcZsdUf]}[MJo[ZZ\\lU`}YneflTXQViv[liug:\yTe[mkHX[oEiVunfnlldRsUjjn]uOT`iMOIVNbYb_Ym_TdjWnfVUzGf|bgleaVn`\kVO[hc\PROWWegSlkj]lbSPbQJZbaj\Ai`aPgQmfOOsK|jjdTSeYejinQzICXgliLYvZnoSv]z}GmhiKMRnV`|x{UWUd?cdYaBpRVoa?H\U`Ha{rhbd_Zjt\meX`m]jm\[ijhRfc8RKWZ\mgjmX?`tve\fiVfvkRc[kgT]UggUpYdh_NiW^[cT_`yeBD\kbfukG`hcXSkhhb\Gh\QhT]_arOMZWR`m}ItbdpN`Wvd]q[{dIXYbfjRbYh^ZK{Z[hoQeirEbgglL`Z{kJg_ca_Ie`Y[xuSZUd{`P[gb^`a^rYrgYYo4sOKDre_jlr_q]eT_df^yVmT\Gdmojc_jRz_zLadofeXoa=dr`nT^WfrNbkUvZIUVZt`oP7iYbRXQJ_]dm\rLEFwYhvc^phbKg~\{]LbUdiokckWlafdkIZr]zELkjCRUyf]_hs[eb8j[gR^VS\dTk\bUbC}kNaqL]y_uhPzaeXbmQbRVh}d\ov]nImVse^vm^pZizUaGeb]`~`FkYY\h]te^i\]gt_agbKlhrWrUR>ae\rxImajhIstSzbz^^YTJdb[qcTmjKd^OaQi_cU`dD\U=ml`[eeLSse<]^qY``e`jQWNNVl\cFe{nNjM__]gqeTSYQaoYUUn__Jk[h\ePRk_Vy^Xbeclkcw\yejOoUuRdTjHYVodbw^TaZsdtdT]WoQZlcrzUTp^o]N\ZX^ncUWb`McGQ`M{zesqVVbUof^NaidkTk\^j~VOdzToPd\qNKl]bgmoaN[J^}Z\\mSSVhYWVebMPZWV\eR_fDegSaPpdTcBp]fN\k`UULXadKR[MXtjW]_w]f`^g]cP_rsbVoLcht^p\akxWOdQ_[EIcbmu\1hfaS{`h}epRSUNari`]aiRb_q\lQWQs^|c@HhlQ\wnfL[\pmmajlRWFXuWj2~U\fp]P[THbno~aKXgggc[RLwYoS:cL`\TndBG\xpMcbwnUL[s^a^ENOTF[bhWr]Y_vd^gZOUgXurpa{Rc[USP]\]hY?\VefSPdehib^\ggbonrr@h=]\oSmirYf]Yt^ReUpxmYd{QUwQlemeV]dsHjeifchhVe]fadhcmx^WM^HNjaLY^_gmpjTJ8JjIchaaT[hA\gEh_PPXbg\sX]jwcSajXHf[U[ngXljXclnXUYeiafMjU\mbZJ^rPb^PgapRv_aoT]TVM[c[}jK`egLvaq|hQkXi`Zmu]Y_HD`cWg{Gvgks`Y\yqHTNiuGX\OL_MvWmUIUUjOPj[]hrLW^laiS[[g[YVfdRrQ^Z[ffcp7eOi\>xvOfdDnur0x[Y]udsdcqZ9QP]UXXCzavbQ`IPlgstgRogh[IRT~W;?U\jCa_bK[[C\eYAP`eWR^M]mVUViv]]i{gEOPmUWi^ubYfep]UzMGdZqYkYMmf\yc@\OkaPkVrod\jZwVzYLWnePgzcSTXj_tSd\|lfvXuiVXTW[\C;T=o7~>R|nLhbEn\V]k\db^]ZwQZZ^aKe]UpMhilFpkKsTa]N^PQ_UnWg`aWQcb\iKZi^X]bS\k_qXog^VVOe\dRXQZYhZ_SXjrlJve}cfSbbgjarpeU`bREQVYoZ|\UPdEj_P_^^UiKZT[L``EfRUegYL\ZhmnTUd^t[ijYbe`Pf}um`h\VUQoXbjePFWc|cUbM`Tqo``qH]_Yqd]V_pVsre}baOrg]ZImPWmv\WcaB`YTGZMtM^uc<9H^QVfHrQE`pPWF?>DRyH`vJmU}DEaTlRsKKUbjGJ\GFQYC7QMV^]Yb[_6N9ajKs`kI]INEUQ\hoQ7GTQKPhL_J(^ceWL]ozfaFQ[FfXaKUOYXgNebWQhi^^_}FiRa;GVUeYPHAkYZOl^YrXVcPzFADBULTDrh_7S=q<8\Zsr@UXo_oqMc[^\WbliMghYttVIVehfiei^s_O_XyIP]tMglf_]gzXdaNJuSN`]WcT`k_Th]esa]MNNYfVsoHdiiVQ_v[l_acl@[GSlBXiCvbhWhU\T:dacWZXaK?t[Rifeb[nXB\FO`VX`b\I>lZaXpeDwTPN_^\Z\giXfcb`YLQmSZRPpRMT?PWzYNndc[ZLNaV]\Z_^uZXpFg?iXkN`YhkshIW_ZT^b]X]bhhUFh^YTfXaS\_eLovRyPqoVWhbulffYDbj]ZUild9[Vcja{oOX\]kashsowUgge`Yh`ILT[N`W_qrsk]jh\tda\Ix^`VyOIrtegOzYfPgw~ngY^]MSZZc[RSsRh[cWos`WNl`hmRc`RUScGbaYgJhiW^^hUMAJdUdLRakd`ho]Pb\XjQTmSXGi?}^nZT[lnNR[XOnHe?cahVjmt^n^cNru^Ypi_p]^UOnbkTSV[qfexegcwweCZbm\lMq_zXWJY^afYNVJWSgJhW_ge]X;maZY`jejqmbP\rP^RmpYtm^VuitkLctokhrldvah\weS{vY\bRhP_WgT_TWLuW~qR^vcNPepUsV^SfYzoXmnXSO\NXi`o`XReWTMapyNNsMTbkWMkO:]MV_aAh[a_rOeqa\ba[;hvN]fLYkm]b{\gruhiNKagJ=Nlc|bqrS]oQa\Jc`ip][]kebjb^JdT`YFqjmEhYGUa@VnehhcRFlLjNlpNZSiQj\rw\blh]gZ\\YcVpcWyOTaaRMZcLYPcZWhanjRc[_^]pxmZUS``jJSaieTgVtamTffEw]\R]FIcOjkhlV{i~]`^gskg\TI|]TfWNX`_Qh[FdHZf]PXcfQPP^bfmb@\\gyf[VASWY[JX^PfDfaxirVk[lSk\YizWTajti]ahZcdj^_ZriNpYsb`?Ljptmh\sG^PMrTt}]]^[UUMaVjgsjr^]hjsT^dYMPSVTRc[yebGzciQw`fcp[TeYO`sPXacMNw`ZbUO[[YnH_UKTjegfbsht`F_^iCjTOpCeN7`Xc`_lXhexg[oaSW^i^aLyrx^uahOSZag\[ZORZk`M|VZkenQXmhtetfIk]I\l[iTabdeY?Vmk\^mV]l\je]]h\\niUXroIVX]`xYnfihY^TUQpkWTZ[\Feuyh^l\\q`xoIM^nefjbrdaaYbT_BogZmUajMOH`dT^UPYsbZURVWeeenYjWtjhRkoM\kb`o|qujUjppaZcTXZ\mZiMdbQ]kdLbV`U]TbffLa`li[ZfkYha`YjmJyeel^L_T]Gcd`h[zcu[`\S]]nIVhVYnZMzL]_n6ZUViBV^d]pX]]@^cfB`[o;yZZlNgbDiWeZfDkhf`OQZUXfSJfZumZF]W`_RjUevUNjt^@NibjiS]LoYpd]H[ZY<;qYUfq\\qgqYcica[L]TO{I\dKCTZcFjnPWcPjJVXkJRiaYqY>ZCpiOe\]YVZdvlUVlg\FaqPYZZREh]AYjMhpd[Y_`MVU`LajmDVYoKOVe=}WGtMlSQkOB>QNXjn[SShfGqAKlWTXSmWZaD]RUccWa8\TX[T[\plSObVI^Nj\?fYX[oQsMlqDF]g^QEWbHTc\iQy]R_K\HYZLiY[Oc`icWx\GW`YfSk\VkSuLZXfYVTae_gXj]LdXW]YSpN[>kCR]fpHZd[KRhY^^eUSgW^[|^taXbd`I\SPYh~NncvOPZOgVlaa`HYQRbLO}H_lWn^TLUN[vhPSOK_]~V\]UQ|_o[rafe[Z:9LO`_njq\_csRnhwZZSklIbRc~UTPIVzj_ic~kieX{V^Meij^YYYv\afZaYdnhas]^KK]IuRRe_`ep^`uXR[Skga]K]gRNaqRZZavJnl^qgf^\a]j{OL[fjSaZMkZsTVU]idVUOgKEepgv^YYX`9TXYd^f\]jWU]br_^qT]mZnUjVmnOJ_vL^`]NnVd_uiG[WSj[X{p]ZXmE_`JsC`SPP`b]ZdbYo0QFaL\kZjkkYZ_ULb[[`sYy_^m[gvSROisJlQ{muOWTcq\UpiO}dlkca_[X_mGY^jg[YSd_Ng7fWUh`_hYNTITvYIfPo^t^]J[[Abps[lfaSth~uUwlaJc`nfmgjVQWU\STcW\BR]_YEKUrNZh`lgL@I>DVimr{|`[m4tshAjlS`LZbjfVdKNWZW?bthJdcpvj_[qhcFre_^`mLViVNba^T_]csalPdtbYRKaZdQRm^ZOveXsGRKHRdfMUVdkXLaYodKou@O^f_]DnkN6TZbgvbYcnjsKglU`j`V]dcn_fw~`a]shf\^octafkoOYBdcXUdhcj[KcRIReWJWdvZdDTYdWQQteof`YhRGUD=mN[\mg0GaNZbUXZce>RY[@gmg6GNS;TNmfdJYl`X`qJ]lY`RQCqdbXXRrTiYUQXS\qxHUJZ`aMJM`\PPk-QMm5wa_RhZbo\?RGVVVXl\OPE^]a[]SEy:acIVvG`bR2ha3\^V`lRI[\g\cmiVM]uulDdh\tZep@_NwaQV\lrpBUgG_IUR^Zi[S^oIh\gk`cQ\nKIYWbr_[\pn[eFBsZg`MuIlQkgi:dFhWWJbrRFwTl_sGUOe[_Yd[OSchwVSVHPlljjY_{jrbW]ife~kbFJZKxMlXieS\\fveZY~VR^Qtcrk==CfNVknThZQ`FZ[~Eip\UjSqljEVSanTjfWbVbgRahUar;]YCpnvV`l^Drs{~KQfsZQQW_YmPZ}ajrui]rihoiN[fNT8SN._NnGsB`twcJXWXhkNNPGOS_O\t`~YO^Y?`vUXW^2t^{KtEEarqU^bo`mmetkLiTgjhVYNKNcwhiimrqqNO_?s\rickg[^bW_ieOga`i\aSpWlAQ[goU;b_fc~toHSo\ULg9aVWStlFVZtZSWfkfdk\cqzRmc>k_|[gcxckfXLya~AeiiLo1mXHXSN`RXO<@NNc`\aTNOhs@ZQvlJZTOia`~jdZTln?IdojgO]NQXr@eW|Yq2cQ|Spe`BmvcaSZ^Zz2PeRBW]Y`LOT.Vj]gUcV^XtWdDJZYjah@iRtsabXETaZbiaPY[}DmT]_cV^SfbBXRWFwVGd6wlp]]W_[iATDBbTllW[NPNT^MEXIXcQUg}QZbSXlgjGxbPTkRd{bYdlIyteTJUewVQIb_iN[LgNcJmn\Mw^r~NIX_Nd|OcsDZaWN`\cdJgPVudO`am}eb\TpYlPnAhlPUQPb^{:g]]dNtPI[kWCVPc^jkTSPefndQgYq^WahlX][TfsQbR>seJh`p?boQa\a\e_yUYf_efsfd`fP\bm_Tdiaoz[HYA\amvVmaiZkdc\9hq]Mmh_qUheNeubrfR{_q\kNgf{\aXJfdtgbee][qYUn\WWS{g]g]CbVQMebh\QQe\=qBcSa^YrhekuuJcdRQjMdSdU|ZlR\ahjOOQjTRJv{ecf`OplVdwYqKi]lYbd_^mci\sZR]XebuJiigFIedcaUsRuUUuT`L[OE`EU^Th`vi[Un;dVW@SgO]Z8YERlHpN^`[k|ZiXe]QJreSHVcmf^XnJlZ\`\PM>O\g~WFeiWglQUWvWVd_ZUlXYUpf`dvLohhQR^]`RahdBndS_QheLe]VAjeHwaaUPyc^NaqfQqIWpfYa^eMs[HeoK]]AaXgzl[TbqMQYoxYPkPcKjKHC|n~NN3w\X:_LzF<^YdQEKWdeQHGmCk}`d[alit^fev]OgZY}ZUUwpsIZcTHOQ^N_VY?SatnGBJ\VURb^T^TLVNWqd]D>W|eVbbcrYLer[]OM[Y_TfQ_KfgFjqOSsXZQsV[LOiSqgQEnRYIFIoMWUvEFtLVsWu]n``Ho]AN[FZ[k`ZcgVhgNmevtPUaSqa_[XYso{Kq\^mg[}c`mCpvoQVfaOS_WUUMGJXN`xP`O`RiS^][mgVXanxndaeOwZanlYY~HXl[gcbr_f_kad{o_SN.E{b}iWnV]_GoqWjg?J[_g}RY^sYmaWYmIMgPcea_xflXOn^^OY_mWcTf_XkmI`J_lOVbcfPlYp`ekMqfd\zs7_c0fFX[^rdsaRZFWfSjRXax\@h[H8S`JQOaH[`L^T^c`QWjqfzPfZSvV[UOFUcdWFj}JSkiO^rF{~jkejaM_^fZXZ]R]_\yThh_IUrEjDzqTbZgQXam\BMO|hHNgsm{tH|?OQ`]ISO}w\flyRCI|Z^bZ8TNK[gNRWT`jY\]TYt>KUf^V]dh`DRkIQ`jmuaolPJ^d>VYPTCNRg[mCjaUPVo^pjQfm\Vj^U`LHMzPT``d;KHnncWUVG^[]K]w^dYTX_@eW`sW]feLTKNca[R^l_`]PT`y_wYQ]jxNW|\]Pg|`NU]P`cmGZ^NetsZ`]XtgY}dWJ]b]Mne]^iUfbRaqPXOdrVqzqnNUld>[^jKfdviGNkVYj{\i[y`]jgYiIU^XnZ[[h\k^NiR[cYgkWmQDOnnnBlu`[WoPnoqmVaSHjtZFLb9YNSAYQx`\CRIGjvvGCZ`^[HYuf]Zoom\cpHI^Tk[`VOE`ZLuakbyr]V^PZSmRtNaxhugkx[pQR`chrf][WJzOTYcVe<[Z][tQUVQNaj\LQOWUE`GjU|\WJLBp\mZ]WJjSc\UV[_CbOdbKVybZMWtbi]faShcMc\{SRd}jY:VpGeIRagPol\YWbjLOOeNNyi\eekG]yk^p[jXiiemXU\VcOze3kbS=k=oTkfb[aZeT\XrgZOj_^rLvNRR^Yfb|akU_eVbvNKieTbfi]YQLQXWhifUl^tQaXKfpF[abr^p{fVdbjj[z^\`UoxG]lHeYWTfihth[R`YtsP|Ui|JTjg`ldtiEaWhTvAZGqW=^^]gW[YhOln[\_jFab_Fdg?bZRTcZVYTih[[VPXcT>W>UYMKIdXQv`zzjJYVodZVw\cvVhnP{sZdkFHIJZPiana]h^G_cFoedxo_xG_TlmmbXoqdyKf^pfmc{XRrucu\;OC`jcobZ_\VaZaqRgZ]9_`c{HUX`]t_K.\mTTC>Vuc]w/k_e_FhrhMZYeglgSqLnX^KQwaJ\[OnoXZVr@Qluq8\v_UqTXcuPqUzJY/^XCbs`u[`N}uknYQNeS\ckB]YbbKoYWZmhIWTjKtru]NuPXLenf5Xm_gNPhqhSW2iKIp~\Le_IchaH`IcPFUPem[^FSQLuAov\UwEzCIjnR_/cYdZc`h[cXUD>oU~PQMQbrY=upd\XqdXlIEKycbWjTXtdWNRzLf^iWTXsTpJj[bhb_uEMcLFcR]_:ZWYbZ_JrY|M~tKVEUPd}PObFis9\\Ok`Pdlj\Ypa`b@nSPW]wy\`fyVbdaUWOVpDTiaR[YM`]lye|Sgeb]swsdq^_J_Kgc]TY_tkYvWl_RrJlx`fbrgLMMdi\{oM`Sebepcgnt[bQp'rMN_ej^[a]doke]IRVqdKQcZmiVdMfJ^ZnfHaqVueLUcmklVHiiqXYZrOz\jd`fiouVbgdp_mYUlZOheDw\ar[cxmh]V`lUS\_~[fzV`S^]IGShUO[`Chuy[_JZsjrKFPsB\mi@\N^tNicbXSP^pEM]W~PdOMqheTU`OUeqjdKuDJWq\Z`P[d\uC_VjnMfk`_]VjQXVfxhTDJZ9bf^OZbLue`d^TfMUmYfoeKr[V^X`YZsoXZUjNXReKmTLb\TcjBYWfWjejgsO@gKSgk^Uukajg^UiFi``IddJHgiogrdlWHFIUlOLglXjP[fxjYLWeK]jo]kjlUeGZpcmWgHYRj{`T{bFOzxlU^JB].TsSai[iMKTiajTLZ_fFb]jq\gj~pTh=`MqUegPabQdXK@>`ZR^hC`aRqOxIkTteT\WXOmQQU`\gRpt\GcNT_JekdOpxkVTuS`cZb^^_R]Lc\SJDMJVx_baQWhbhbpcWbPZ9kVdVSb_H`N_yN_ixl]fbO^Z]XLchqXGi__KrUo}QmZ{]Zmf\GrmXVedTUlLgNmUW`O]L\e5[yBUFwN_kYaggWnE]RC]xShbYlUTV]kfb^Tj<[xR\hbSrfQv^aeK\gRnQWTIOiAveniXengX\`VeKTEXt7HXiXVzd]uT`_f_boEvck5cQ`|k_SfM\Fo^Qa~aZUccak\cc\YRli\iWobVW[q``Y\[^YSuICSXPQ[VjWQmsrjUb\UvJneARi^PqX^hIQ]|\QYZj_biY^mTq[YcldcHl^SeOn]\idj[LXn`jux^abi\ghXTcvakTTQh]qSaNPeVrgd`jNgdp\_kshoW[L`UnliYWqabXyXYUxWVuh`[hctrhQdS]\hipbeOdqY[]n]\UzdbmeNNtWpW[UcFebiHVo2ndVp[YOmPOBkIiRdgj3]\VW}zMVdYaX\ZDbnj\gGWkK^`~g^Cx]YTfRYgZ}epf]hHkaMXS_TJ_zu^a[`Xu^Nbr[Mdj~VYcQc]tk[i:cftw`k\t]kYiTGTgcphhG`L_MY^AIXWUYjSRgwepb[]RRvCO^aXqbYpclY_ig\^eOg_l\_fiK_hWf]Hkse^XbRcm_TXVaY[LUX~Mgjh_iZu\g[\Q[c`Zdlkh[c[fcoRRcaKYsm^hVY\pg[heOjfYgk_NSXdZbkdeXiYIriaTdaozolSampVfY^WaoXufhScZdTgfb^enYWdZTWaqae^fWZ]p`Oab]\jn]P]a]aTS|_h`EjkfkUb^YnZfKnPelixV`XVvmjzMKbo]MjbT\hT^fu\O_Z[g`[SSclOdBbSk^^NR``o]gJVIqmibl^ulbYiz`UXRrcfVsTrefYgKOyXffXQ]gXw\vDQS^?>fdiiY3rjejZIWJGQZqkZL[RvYYerfJZIX`UZ[tYgni\cVbMn_[df]]e_EgShT\U\``NsWck=ZUaoOMipQd_ZhXORbQoh`iO{TgH_G[VVXzXau`OKW=^tQN[LfSUbq\a^D^GlOLZ`\dR_K]WYO^YiWXj_yHjE_T]WSXicer@fiZm_OgInf^^tfgKM`S_gLdbGlEdBUI_N_uxpw\sJZWpxTbpRS{bmkf:\[uxM8Zc}[~[qZagR|kORZdT]SkYLMpfzT=[fgTiddYUe`ZW`]keofhgoPbsXQSwTWgi[ddhdci^qwNdj{bcsWimU]]dSnonde`eeWQXx]\`li`aq>]Yb]tyhn\Ueg|[YkYqov[X\yh\ujOWJe]a]^ndgjsXii]ZZZ|LSgu`liacodeetXgTlPbVJY]WW\^ua_YkljUl_Unh`TYObOhhjVvPYlaUnfPVdXh|grwdo]g]^\X`jnpaRoZdd]gkoacizNXLNNneZmoOXZV`baZnnXKaa_cQjgX[edk[\bWTTY^natlWjSd`e]okcbZajk^oW_\epKXdUsfVVh]hrddPq]g]n][_X\qhq`oY^cSVcgcdbhce]Oec[X[e]eahgbbW[a\T`nZFXg_tcXmckS_eco^YY[]]`IShajaT[QXmiO_d@q5t[\_m.zu[^\_nTTV}Hp]alkI[TX_NcPSYu\MT\hmrjKgZ~`GvMpd_\UWXx[AcpLeI\gl_biUNPdtL^SnaWXLkpXm\o^mrebXZgvhSMdmYmDswFXAVKqiku}VmClUPf\nfwlNMhLPdCmb\nEf_u|z`{lNWH?iU~w[MMp\lofllkZ~SYOs[x[`[soR`\jqq_[KRkkjlbZf^pvv\T[Pgqvh]wTDjbO\TDUZZM`SRfRW]aoWV_bYOJQON_eeiTGU]gRqmhqNpJrNarQ\WqlQbfcedll][Mn`^Sovr@`WcjTZRcvIdivlTY|aYubSjIeYcMcXPkQ_LK_n`VYhKaYkfOQ\{Ya\mdQ{JsY{N[pyhQ^TaljasjZZ`\xbcgZMRNge`TUcocSU]fzXpbQScdxeQTTOav_b`aipRjIia\ug[`q\X]ZrkeoWgekVWpchXeh{^\cUaWScm]yiYXQbgiiSwV]\pljL\hUcdWfSW]]x_d]Za|pW]aVtX``_SY]Qe]T[_]sUr^SfgWSWUtyXWaJJJVaHlgU\k`ZgQfi[X{gp]adas`YTVaqnUqVZQZajXSDiph^6b[_cWtH\iXMmWW^Hf\TRdW]]QPol^Tl|rjpW^6b\P]Sk]hNbaaj]a\JsO_^nhZQi]\mVog_S|N\nJYigHYqdVXiiXN}XVtlle^VWZ}[`~m[o_goeW\ZYtYst`_xhNPR^fYTeU\eEMd_ZiScpjSk;_^acBeJBIRNcQ^_IOmTUXt|YOR^LeXUehooV^j`NUZYRdTaacfRZZmjKjjWWfmbfgz`oNUTegIj_c`g`gx[v\\TTZpZardVd_lZzx`vWgOXlJnkkeZQgdbn_aU_VRpUGd{c`o]mf^@cfKtu^jiShXhcea\Zfob]ekmQLggQHdeVZf`QgTcOfegVl^[\UaW[mpQNZ]XQxkiOfquXiMrgkhPWqhZmYfO_^X^j^XJ_b_YW^dcmmo^kzTFckz\fho>ReIKUmokqzW^ZZV~i`iO^\Zd\do[ls_h\aXJSZ\S`WL_hbaeUYhn_jRjQWcafe_kfn]arZd[q`mcNkjVfbnhggT^geS[\U[cqipUkP]ecM_RlgRhVUgX`XGk~XaYjXf\UoeaZZsbiXl]mNY\r]ymoq^qjfwhronqfiptrgs_uxfgwd}{owUqircugkhzfpholucmmdtn~g|l|bqmtzi}okglysxbph{lfto^l}etifswx{tpsg|krpihs\Okap~mmDcSmy~jbxzole|fsgutcoluyhawzvcgypw|rY_{qxsvS{pkopdfxsgmeuqbB\huuNqc\JV~dNl]^HtZTThgJ^_Zc]VnPN\`^_`_jlQg\\dUV]d|i*mXcMClnNa:`U\HRwyn`g]{xfZZloZi\mKmXHZRfl{[_r^lhfEXaERZOSobaV\prRgajRmaHzgeXMTg`IhnmX\fWT`ocX>OrsdcGUYymUWff`PViTsXk>]YIPcuSQaoc_R[U`UY`fssS[RX[OGTxmhe]_Iij`OQjybTn^XlFdh[XeZqaYYrKQVhuYkWj\PZodDQ_^fOg`iZQgHj^I\b^VgShM]w\^Zagfj_ZRG]PU_=a_nsSbWmip\Pg@_`^Q^kui]OYTqdX`VlY`gkgmWmji\_pl8OamQUXYk``Z^Hn]\hKZ]iuUslbchM`[M{>XOYVhefgXYilT^lcNaRFWGr^LfIS]ViHiFMqqhRNfhg]XqWUWPafSrgkcPgSgoc^Te\IntWQcJJsdJ=G{qelTPCbYW^VaF[\VguN]bjihnca`f?S=}[gykP\tKYEq?|^XagZyTGmTlHURQU\hiw_nGXUFE`_`u`ZbSjYMUrfQPddb_}gcT]pXaQAMnX7^VQPq_g]V|LMayJbfjdeUJNTJVNigaTliXwmcb_nQoq{W{ftRkjWeG_u^macbhwja`mjliYd^XbyrkgXXKnuj\ft^xKqULst^imjuaqcgh[_kmGaba_flZjuz`xDSpamwii\c^U]jr_ueXPWrfqngTqdhht|a]kbK^ijeeJarWddp{ib|g]Rx1cb[dirRiwe\mjkUg]TY>KRKOaeDUu^Y=o^phlPXmWq_kUTQTO[eykqzVMc\u^M\BhY^WXTKc_;McUQzkbUGI^W\ogk\`^WymhHkPC[CrGXlYS_e_FXbRgYJ]grM`QnAd_Xd]LThjfdq]]XcNQJlVgVaMYpfNUu^ZZYelqu8njUoeRUfaUmZcVkVbyUWyqods[\OenjciYYZSjJf^PVVOL^cAIYUViP_KDk_[T[gxL``ZWOV`^nW[eYnQnbUpD^Tf`bkhk\pYmXobNq]cviKVXlkXuent`c_dWYa`tZ]\e>]M\jukCUkbRWZi]MYkD|SfTahXY~hZJam?quc}[`\hnWaeecocli[khyc\`tf\bWrbWCgB[HFRUdYtaobWinrWi^WkOOwzQKiKDtb`Ygfdk`d^dXaNVL\XT}WmN[RWb^LWiqc:nd^abpughaXikcXagiSkpXeh[UYdkmv`NTcWOQs]Zice`UUY[bKm[ce>am`eeVE^lfZYnmVo__^kfl`k?kcloAktXof]kaXh[rngg__T_\gbj]m`\\ZL_RQ`bZ]XUtdiXa[kbojiqQWgVQbS`YJUeo;^^T]gufT`]`;qp^gozWVm_UiZy^YhVmkhPawcnoiUb]PXeSagdynPfpcgtm|cSygSy]qf[lXQ^UKZsWseVwwP^hjeh_PgqhFIQnd]^RojmmynkV\[aoo^jbTZcrnqfMLERhVmrZclab\dbT[mv@^aAY[Vhga_V[oSVTT\pqrYg^jX^`in^OYgC]]kclkO`Sd\RQk`\l}[MofXgmQp^eT^A_X]`TrT^N`akynyUWVsbcZufsQygj`r`^Wccrpc9nsQeShfmdoeZuWS]`ietpAwWk<>x]bvSTb\fX^nQwHkZc\\_couewNdW`[SNRbTZ`bDgWoMfhc_YsJFahJesF_hgk\iafrb]Xz^ndcl[X^]_]R`Valo}rihmDQpaj|`aX]RlcfosQe^Zh`}RckTeOndU[~l`_XRbfJhZiaVo`fQ}mAk@vm\ndpM3SwWcQchOQie^Vom^FILb\^fhuhoDidmrXkOb{Zk\lUv_\[bZiv_Wild^l`vTMbTqVmeVRm^X\jWtLGXYZbcdcXa~V\ibNx|Qc\sph\VUq\PTSbqWeVwqoWlQOhSejtoYmed_^WXQbi\fvnRtUi`SQT[u``fdYhWVeupFSqgugqL^]LJho._h[PYXRdaOBgRcZi]fdYommZu_`gh_U^_ud`k]a]{qXq^dh;m[eU\yn]q\gyecW~dkhllwTYbS^bVnk\AkfSj]umjLsZjmj``xtXzh`cPadXUhPqGhVNh`\|afg^mlylMYtct[sRL_`cT{R`eeVvm_P~@Wn_VeYJUcriZfVTUnrw|gZ`^U^dWjdmop[YQ\nXamb`]_^slLjkM`W[drRsn_hX_QzZm]WFe]iZd^_iwfq~kbReRi[p>[Zn[ThXl]kngbf\zqkliK`jkRkS`aXu[T~YigQZHb^D[iNVWWcW`caOEd`XXYQ]c\liap[p^k_VkbaOfO_[_uaVKPaUJVhjSVYdlQmxagU`g\mQchDj[aFvgjcSyYZk]a`g^]\[Rk_`qbnGcV\Zjim]r[fjg[d_afWY]ksbceSaqDh]fHQ][dUi^Y[j]_[kdj[jrTc]_amqjf|dYbxWzoPGWdx[[^EcaMcWeflZVe_^STQjgcN]jb_fmn^ebd\U[\fXp`qen}idfc^V_mVqhfhmQSUSZ]RbWKXe`Z]aepcYTkWjlbV^i`^n_bXa`v\bNa_MbeqihdBZ[hSnninhd[ca]EHthv|p|Rj\ev^Uy^\fqg9wiTW[ZePKwhekfbnqmUr`Ygch`_waxqj]X@Tb_Q^Rcfgnjh`c_Y}f|Mfccjt_\ew]j_cZU~\fXrauagiQQaazPSx]]gW`JIPuN^ikuf\dhdzdUEAB[Ww\dijZ[ZFU]gbPU@ffIt`\e_`kuZjg_[s[amZcUWgbtUvk|hSglpXa~cdebO]\eMUIEcobSWa\ZNRvjo[mochVYmRlj_gy^^si`_s]dMi`OmPfRpSLL_aolJppbgeyibz[P[PxWSabtkbaMN`^WeQUadebbcWbwhfweaYZlW\pcV[kYT\pba\|Nm[^RavqWO`]^bXZbjgYnhjcOIUd`Oi]XfHYaUldOZWlXjaL{_{`yYx_vx~cojjWaWjh\SYj`ZY\YmM`omgVhRbZhpobUv]fpgPoZ}rVfZSam`ajen`^h]etflrbhZjaXc~KMgF_ajbee_\\nxpjL]MeNk`qZhSY^sfhYUienibvEZ[VbsfQWzSV_]jRn_WvguqYeYT~srPSZ[dPPp\`qS^YUWeojbZvPX[ePY\ql=WchTiZ_x_\LOTQgsc^`\cfbUaofycvYg`\gg^bZ_iY_dNmlghW\p[ar[S|cfRa^T_\s\`glsuN\bYVoac[^LYcaXqj^RU\inbRlrl^wmdQ`oer\^a`ZS\OQ_PeWydbbe`[afoZatSRdadpgVbZkm`gVf^JUabHVZgCd_eg[KXo]__In`egRW_`X[ZiN@Pvgr[Go^{SGdWZKb^^U8RTUgQfBvcuo[yiJXTx`LPl\[`JThPLXe^Mk`[fdUfWv[gL|lcqWamrSV_TmOccMcRhN^dugJggXVhQjikgo^yeRR[ljalxnCcVcNsnf@__YRVjnWot]_]nY_a]sZRq{XvapeLgfc^_XqHbsWgg`[|EdrVUxsTi`Rq^gdnGk~g\dj{KclePYPKa\dakg{TTGhfZg_Y[f\Z^YiX`f\cb[ln`WrD^H_e[_n^[WQQRXnGZg[UigZoggZrQQanZ^a`YKLNnW`Sdfy^YCZWaekmRYZsclm_jazxZI]c^TYr^ckjeeSY]_bO{enYSaggjTlYvlUpk[MxUxplgWla\kcu]cKJgcg\cb_vdpsPZRVyfgo~bolhRfYUfZ^ybNq`e`VWOcbKH]~gm]mXVix_TbxudWWYeP_S[O\sXMaRRng]bXbai|sVS[YWa[dc_V]HYajxaY]Yi[rner_thY[yhcZ~\d`cvkgTYNh^jUXbinSjwuLfJtf\fcV\kSjhOXnO[a[]d`_Q\j]Xk\TRfTga]adRXa\J]EPXg`UmChfJhNVbklh[Xl_ZV`^s`iMWi]tfIz_\bbY`edYx`yo[l?Nldj`x9ipSQMQ^oknaRQqwdYQFcqjZNYKIWfVCJ`louemiIS_ZSDqOJRDMDr]zpfoOfN`bYjmKT4c=bO\cXZHeq]RiVzpgm_a`X^[VX}OF}aKjTLdnemafdWb^Ug\}ObWYgsw_]LdTkbR\ga_\mNbh_`dZda_e^V^OVwm[XrM]RfWnhVa`\s\Zs`gLggWca\YomHtgkPVgZjcZooOltZd]jcZg[vqpZejcrmkr^[}WsZTeoWdZ]`NXidhUa]`RdakoOfKjaYUT]^\bq`tgg[YkMdaduZX`afdrfQU[V[Q]fYgXifWibcQ]N]ejj`iwTq_OkcSlGN]ygT_VR_bXjBWfxEr_hzng`\j[ddeJ]\d^gLrchYjanOTV{a[qjkmhV]KJ`W\dSzU^TyofL]]RXNoanZ^_T]_csMmjsG^kW^ZaarafelHghVc_bCr[a\L\paKXo^\YWs[^xdbj`kV]hsdqeWfZkPuiB]WYdG[GW[TiNl\L\T[mirfWfm]g_b[dX^Yf>c[\`XgW[Wb_[TY^N[l__p_bj\UEf]]bRgg_hayUbmZQWpw][mU]cVhZ^_S[CkX_d`dfZegmJ]_Waewfdtcao__cYadfaia_n[in^N{Ykg}rslhbifamkskhigQf`Wd|b\OQ^Btgh\gx\a[iYhkgWnUb[ka\XhNwedUOgphM]jPRcRQr]yccUau]r\Zk`Ub\YQn_cVgVugg__iZOdti`Ou_^fRI@m]\__sjXiY_Ln[PgG~VS]\[[R{jdkHbpVlRRdl]h^cjoTTXG_P`y[PaS\R`jN^iyUaWnanNbc]TRSV``WapORZfy_xWqSb]eRl`gcZIbHhc[l_VU_Zwp_vdlh`_XpdoacdTb]_obYbenTqZasTg{hf?hWtSWddgwdnTZs`ZOpdWihc_mxj]Y\tsWXdejQijaacoWMSzYy\{WZRYkMidpTUKr]^xb]Fo`XsnXkYRydamLj[rlrNQnaeg_VhmzgnokSPajk][bxdQa>WVZ`K^`_n_N`epOm^Sld]na^\cbkZveZebffVaf_U~RPMnxnnTyc\pfw_hmcNdbWdZlNhaE|jcZabcKgU_?dOn^`M]]^XmgtRbTZLki[sk`IkJdU}ZekYfjYGogTZnrR|e[haVVok`WSd^Sqigvg=QlH_^i^Zkuibbc`NNkfrVnbE[eldbWVXcaayWat\]dZg`kSYw[^l^H]_V_n\|Yc_gv\bnc>_T_\MPzz[BdK]c]{I^rXw_YroGkmPndhTWWg_eTgT?FJaL~~Z[NUVPS|hfil]lZaZTSroWftcuUTqifNeiurt`tSwlPo|_dPed\cxdXlVrcdfmYaeTTWUUXSmXWjfbwbXV[]V\^qRY`hhdnM^d`d|cC\eZetXZ^lfke^`UjcmhbdShNhaaNyZX\]\mZ?O]gs]mdXk`mgHK^hbZchd|ucZxeZbI_jPv\tRh~hd\i{eZWh`TgfeXioIenqnoIXPn]^R]fbaR_k[c^{^k=b]ekXaqZXdjNa]ldIdWecii[lsiM_hoeoTU^sgkgk^jL[m]asVbOnmWc_adQ^u_gi{`bnj|Z_Z\R`eUTLnYtav?c`^jO\fvaeckO]fal]xaR`[WZV`hm^gPqW`c`@Vcb{\_^`jWZ[Zf`\TdYSjgafGrt^_kj`b_`fZ\]a\[fShdxe`YZU^e]fvarT^b^dd`finVhhXdZdhhZUbd\a]i\eXvj_ii\^Rt\guZbQ]QnfZKY]^\hg`dAbbXm`Y`dchZzWeSZZQ`f^]bZ\Z`d_UW^SnhiXzeq`Cd_cRaRJ`ySelezSObPJ`_sjvhb\^ib`RYn\rkhZ^WeuuwKegdasfE]fXgQxfsoMdo\efdxlS\KTzM|FQo``YUacS\cmbA}cUystX`_Q`ZLYIq_bWhGX_mfoX^fs\\i\XKaidp]RM`cXf`m;hhi{Pg]Si`dl^fTWghdqXRhtVcTp]q[hu`bYdYZQZrmbtHyVbaahLisb`mTT^xhc[Ytb@sV^e`V\T[mOV|YaX^\W`yd^T_h\ZV_RLUhv[`aWrHThVh[TSmTOWdcheHXY|YadmcNrsh[jXf^UOd_?c[yQU\PTjgqePSxuc@planfkt\q^sYc^_XMSPPh]^^T^]W\YaWX\[djph^THSWlhpq[gUc~P\faC{UZT[ZVdcb_\RUIze_w[[kuqLJSiEcZYXlnhWi\s\`cehv[zUc^ZWB`YJqfmT]LeTfkWXPVf]h}P{Wghso=mMGiXep_aii_NCjTW`]K[taXohda]UKg^\aWD`f{st__lOd^gb^I]W]pbeC~oprrSlpieKm^ZXWdPjPOX`YkhmQSQkqZX\soxi]chQ\_OmtUmqWlYaS]TegYI?hgVbVZhcf]\lgon[fYhioSSgTff][kka\RY_dcbSNtlT\[aSYTVZUhchmby_\\LeX]unXF[d[YXe[[^S9V\ao^tbKSTq]\a`WVd]iXWcRDdUTUavsS^LW`I\Zd\MjqyQHt_][OSdo]kUZtl`h_dnn[MiR{\UgfXPOuSeaebrEkfShdYSZ_\gTSUf_Niy\kiOXZbhQegYJmpeKpIYnSXQSVeXWpgUY[]bpfuRrEph]Vf]m`aL_SmdZrteYOn_aj]frb]dseogfdTD_bk[W}hR_inlbkqXhekV\P[g_m[RYdHlTq[daOLfchh`_^jm^iI_]^enGjobj_Ydgab[\hv^RgU^rZmh_`^\i`pXbeRNdkto\dgfAaochi]lmVxjhkYa_fgV^aloPy{ss>\jaPE]NNZZkkb\ak^]TSjl[umaS>p^qT]XYkVeL[eJSiyH^a`ZSd^ag`gadp\takqbxMrSWkoYSubVdsIcoekbjj_Xo^bn|]_sj^aQhWX[ckm]ojWemZtom_fZcMlIv_de\K^l^XribQUqYfpjYmca^`zZgm[SQ]WmrtgTfXelXaQdgiSMh\_TPObX^epj]abUNhc^]ZlUu[Zi^fUW]`Na_^blKYlTjngcanihiYbajXiX`wTwhbYV`YUiaZaocf[bgbu^wta[LQqTKfRnpWS^htP[RmieaV\lc[UZefds][^JcpriT]\]u`cdl|_S_yQyc=Ykrn\lWTZ]eNUmqt_kMsm]eZU[jXph_MdjJP[j_lOnlW_UhTTUXeb]kc_]}a\g^sn\nufQXch`fQUGr_meHk`iKVcck|UlO^aveJi^GfSmUtShzXUfadRS[YZzmXpUsaWhY_f___YC_Rl^[V``\lb]pSNM@Teca_`c\e\scbWVUiU_]EhYXde_m`b^\he_mYg[wWTnYClaWVbh\^_Z_Zj_jbrpPaxZdaRlke`]_ZQ[odg]YmpfiZJ\`cehc^[^__K^c[U`]]Lgp|caiaqgVqjb[dZddTI]\]]EjwizieXbiblt[eissL[VgSdTSdWhZbuem\xUWWcaWchvBL^jZccp}^wkkK\ki`Uei^iY[UlkmeMG]Q^YaVmY]`hW]Wxrc^TcmcblZkyhZ^s]dnmcKl^krhldYU\nwTyh\]UhU\^oeQXd_TakU[^lb^[eh_n]RqfRX\UNkejZWcJexmjfdT_[vaNf^`UZ|^dZYm]kUkiS^UeN`TiDjRnl^VThZnbi`behXfhWYSh`_bW^T_br]eUn`rs`t\kiho`ke`Z\r]kJgfgrQb[eTlrWjj`eVf\TdliRZZ\VZoaHm_rX_Z_df\ZukpdeTmj]f]nX[md^td`[fcgUd_gfb`^UrX`qalYi`k[Zqb\mI`meQiUTUVSU]d^geja^lbWZTWc`go\gGSre]nnYVTiYrbkc\`dlL?bPjUM]UZQKYCOIcAac_GJ_TKKT]Qklz^oSWEQaGV]^``FShNc_MaToQefhNmdKqIjV^Fpn\h\NLKcJDDSN}ZHhDKMXOHNaTxJkIRa]]T`rZXW]H_XaPE`lJi}`^Y[\}NM|8QcGxaWpn^_SRJWIe]W@PT`,NnjQvL^ADK`oY_dy[D]g_KW`_l?UmRFMMWYfRX`naYebe_\gZfUQ[j\Vtbotcp\O[lc]w[qa[Spj`xfXn`NZ[_bmQ_fbgSYjfLpPb^_fm`zaTVppPPTGYudY[[sgrFVrS]ZiLcZ\f`b]^bMZbNXXi?gXnLTEwrjj_QE`Cm2mc[SdcBuVhudTNdjOifQnc]^OXoaQW?j^Vlifk\FQY_YVTb[r`O{kmpxTqTbzxH_]pZq~>Y\aoeI\\PWfIRIZYcZha\fVU:QXybtc\R\g[MzmeElUGXJ^[l]KaacdZmn`W\eNffMh\]rKNOjgp_V_mGg][c[lHNVdW`TT_OaFM^`DJbf{\PgVQ_V]fYSD_bSzjJeqgjcVmj]PZmytxlXZQdfa\oOtBc^Rkfku`w|hxLct[a\[EIkaYZaSjfNcSLtUeobYZ_[eImyph\Ksh_Md_YJ>Qk]`kavbgWVbHRVRLceMt^XeYS`ckiUqoglgheR`gf\YOr[XdmjUk^fclpegmhg_gSOobDXgXnf|kdYqXjUonOg^{^ShlYjQcnaxhj^ma]dq_lezZ^mevihtUnLm_[`fjclP\~hqaOqi_[b^kh[l\]Ukl`W`e\fOYhd`[pMpUVw`[[]iYicz_ZN]egJeeHitj^hgajfYl[uNdb[TZmP[cYohhcfZiYhhi^ySjk^oQZWT_eWhGLjqOiXThaee]_Z{XiZZUclvbjfYdcwTkhanc_`ehQ[_\Pe^hyD`M\Zn`Ydre_Z`_RdcQp_T}vjcqPQe`gSmX]M|ce_ceq`emTTTldTdLYi^ij][ne]jWDV]dmNb__k\L^krb]afpsWeehZuImt_RSXb_[q{aVWhSWcUnoKT}WevfW]HjXsVab4n]ZYXcda[^eXKZ[Zf\RZaRqUim@POkl^XWjd`ZN`nXjwmcXLbo]i^h\cLhO`Okbicp[V\[UUlaQc\YxNpfU[sk`\tZfjfLSdk|pTXw]a\d\`RnqJ_khpd~Xe[vgQPfd]WPmfMN]yq\no\a[d]yZ[PfN{Ddey_L`fQmTbEc]m`wUiUj^`WghV[d`kVZfL^D`OZZ\ZRY`_So`TZgbrK^][f^TZ`bZV]Zdr[lY\Xifn[kfTefSXXZakZ_cdWjhcUzWURKt}SfjUkaniVmaXLK_UV[Wbaf{Wa[G]TTvwV{RYcE^qXgiW_eLYjyZbgMbCcn`iZrmaNeXWLaZ[aVcW[d\iXkml\KP_Q]TSsnOcYdko\kqXj^KSe[ePPxhwuoUXr^Xm\e_hUiohjSx^m\]eipd[g]XXW\afnkU\hha]Xni\fGggeYhccbg^cookN_ZX`cacbdmYg^bh{a]Bei]^h[Mks_rRk[\aZ_k][reXbjgiab`\fSc`SVo]hlOWhg]kdsY``Pmo^l[ofjbVtpVbnWjWsXVc]ijeYiXj_WdmoZ[b]rmzecg?USU_XQ`^htSUadnzK_xhSY_s^oZLI[ceM]cRwAkccaShT[oq[dhaOgpN]g[rp\VWira^R_BclcalhaVaz`WVIhYLY_RaTn~PYq]QhP_VTPgLe_]\qd`[qj`Xq~X^dZOioUbbbS`UUT]c\Yaasoj`l\Wpj[rbP_Ti\Qg~cSPT_YookZtHiztg_feTgu[jj`cdbSXYQ_\RhjaibTfXcZbNT]w^WaZm^]`T`Q]jxf]j[[lbSeeguUxf{pMSWa^YtwgcZZXU~I^iVec[k[p?Ve\^wfHebXs}g_aXXkqZ`d]cahef]ZWt`Fkeaa^YdbjZ`QYOQm^Y\amhmQYdWjjY\bX{a_TyTf[phi`NpmCWYhcWuNn~pj^aY\aodVkdfMbqb__HxgcVmlS[g``iTrF^S`Kr^_vi^WQcq]fkxRdr[FWm\\mm`_hh_PR[ba\}_X_ZV\YfNff[Wcinlaw_UjM?[VH_ig[AWPrs]VmUf^hiSjtYhhmSfpmNSgjfTLW[OgT`SrlhMe]n[dfoeSb[hc[y^^jXlmd[sudCVXZZoqhlbdtZYI`uP_`[ha\V[UWTfFZhUcoeS[xahPU^^mFPXQ^hQOjYf]d~di^aVM_cl[Z~eZc]D`cghfPC[b`WwfalG{e__Gaf^X^rRaLc_[aRhXhjfcWYcPf_[n\Oe?dYaipPNR~nrMptSvViXJxaxTQpYNZGTb|wWUNdpOZgNs]CcSVfnMkj{VeYqdZhqeSgn]NbsuvPHQ^jHslnlQYLUQiVJ`]]_fO`PopZ_lhgsPfOJYdhQvP_`\^pt[d{Oe]Aegb`hbPY}aw[NTR]syXY]RvNpNYS^cpZjXevpNKuBilXn`{JVIeOPodblfmXFX_Qdd\iRPsc_QahJcgiJc[X^EiSmf`payePW_VXbadh]YH=RfEd\hoQwjhWymgf[h9_VhUZ[kU~cVaWmlcAgVgnhR[Xe_W_}jQ|dqfsRgacVPFTRb]fjhmX{aWIfqjNlUVVTycvTeZ[NaiWp\KXvnQtLSYvLDfkx]RhkeU^nWkbN`_]c_edkc`L\Lu\icj^qRailsk[wXY_[kiePbjh`qVZVYa`^YjpeDrgnWA_]dT_[JntTNefgdwj][_c]YeNRe\QK`amVrdYg\eiZc^QjP_YkWTf_flZUcZcgibdR`heXfVfYbkgdrsp`UMdqli^dbanslb_UYajerWl[Zsa[oqYj[fjZbcf]_dVa]myhWOiHdZ_bj\jDUMdUq[jagK`Rbf^WPdoZVR_njoZY]pS[m{LW`ZaMY^M_sfjquhb]UW\ma]Fbhd`VXV^Ucbg\h=F]PQdrcSz[`glc=`]diknQ[a^ZAh]WdjOM[nX;kPi]IgpcNS RprZ]nR@oea`_A[ctWqN\h]vgie``mhmV\\qfZiYopdXbhq`d;ePUWx^diYPN[fCb]u_Zjo]P`WTckuXLo^YVtiSUW^ZbcOpHiXF[`ZqgqFMTUY^DObgnfYfKgNVsbX>^Rs=N]c`lnQctwKhe`d]eJUe_yoFoQ.`lWIJXE^MPadrkUk9bRF[sLqd\yHeblaE[iLa\lPRdd~cehvcOqrP`qcUtdYeYbnmeu]xT_ms0jWXMUZNsDcLj\JaIMrXepHIZacm|fl^[ZI]9e_O\|_SYbagV]dLYXR`r`liZdka\bae]RCcP}Y^lWfnUVXeqc^dS]aupu\V`Hn_m]lYWefbMS]UlfV_\\gqmgXaf[dX[e]j`DjeXZhZ__u_ddRu_Pnbfj^j`voiiSThai^wNLghh\[[YZQfb_L^qbhivfr\V_dTK^XedUh[IczRdKade_gVcbXxgjsTb_aY_Vpbr[VbcX__iKbURbnfUiCf[gUZYle[X[ygVjdbr^kecXSa^[pejZqXTWf\jicaRS_cXp]^Hg_PYVzhplWV^Ykg`oqf^n\Uhf]\hXx`IW{hlQe_mhp{]UTU^elXo^d^`_XngokTdTcVlXmRR_n^b\W^WaPgcxllP]cg]^[{\GbwbgmdqW^pZUI_v\Je_j\bcdPXO`Z\ThZtP^PwnZNDRY[jcbb]uEnal\hg\e`gNSmf`{ai^XXCbkas}bqebbT`^vU[LQ^^b@?_nZb]QcTWVRXOA]_]cXYO\fe@ajkYUaM[kgujfNX[Wf`nfcw}]ETNkWbHRm^ocHo^SSr`vbQUdUEg[N?lFhGLTqPdmWcpX^[zzb|q_oSaiVdsS_GQMwgKz_]_fYeiLbLfxtcnHhT]\I[ZfdcsaLL[_Zrom?\Obp[cWXd\gI=U_d\fZWc]hn]YZ_ce^jfN[TbaPd]Vgsd_LpRagQkh[bR}WTWf\`F[Ycf__aM`RaUGZbvMUn[mcZa^a[ILIPojgOl|`X]keuWw]\UjfRT^mad`FmabbbX]cRh`Pj@aip\^clcXsp\`Uki]QWhKYJQ]VZ>qTk[_n[hXZTWKj@pjlggD[adnOYX\Rheahql[J][oVjfYVRmTJkncY~er[gP\WjQSYXftspryJkNYi}Z[Q[be^hT}U`_YiMdYh\i`j}afjz\rj`scgq\MleJ`i_oeFhTemT^Tgj\igLWfjhST]yhhr~UpVsS]ZrfYQdlbGnbc\ZXTh_C[bPOh_[gWr[WbYFRjTgQtTlicZ|c`_aUIz_b[abOXNZj]kzg[^f[Y]OVwZ]Vi^FXI{h^_[dWhvIkLGz^Rl`moWbaghVeIaRZqVafdeMat[bs\gWelqz[a^aOS`ma^XOWcRb[|bZzkb`ycFiqUbnd_X^VDgaOU[`e\_YosmT\vHhhkcehfxTdaNHMs]mZiS^\]_tsYTX]sE\T}gtXrShOgaah`zlX[NjXWNUNoHn]^XXvZSja[WUrUiRn{NP\NHgdtoU^aonZg[XpTicQbm\eT{mJR^Wggdt`]e^`YRaYfY]Sqft]m[\jrdtMXYgZhbkgiYSXD`]|c[^^`wZZd\ZTY_Zkae|XmaQcRpNiejTPXU}i^ud]]^qqQaU[l[O]qLeVBdNRmhzfC`fodo[PUUU\SXei\YbUU[fgd^]SZhhU[YadaaS]k^ued]YNmIa__^\ucZePYLc]qefT\M\]TqTTlVNdY_fK_nN[_b_iTaI_RQl_lif{IrNao^kWW`Mm\cXZZpV_[P@WQ]TO__^slP_loXV]N]KWnBnzlQwf\Xe[UeUMleonsdcnlj_hieYlmp[^_pVgvdjl_qYpmd`xdj\unzfepRfgdMi|felndlZr\~dglhdT`d`c`LfdS`\i`Z[e[baeZhf[]yhr_]ZfW`WVZZQ\q`tpimo_SZSkpftTcjcJdWlRbV[fwdb`HoleuhcbknO[V`_^hYWhO^doeYyUlt`dyV_p^hQp`bZahi`hfSl\Q_VShijlj;e[zK^bY\hbSiZ^sl\bRgVWYi[gd]]]g`Y{Rih\f^Eb`_N[SOpSoYfHoZ[LXM]Zhg^pqyZ^T^nhnrcctcoUSi`_bmLSgQbUTTi\FAYc^ep\qbfcyx]FS|txiygj\M_UZ_X_`[]NYTkPVES]Yd\ddblQL\p\s]]fH{SadR\kXXrfsaRxUunZPcdhhe_tC^fbPhZYJWq_ZdNPhK`[bKV\mQ``beU\ZY[^_{Y\BHaLeY_\`[TQeSkuiSXMkZfVvSZibkeiyZhqxp`NfdSWevPeRa\]p_b_SZSu^Qpeeo[QulOinbTr^dfN^`PdZY^O^FbL|a]lnoRXcW^KT^cWrBt[ib_\Ul`hPm~bhqYIQgaYUbko_OTk[DbhWLc^[V^dmP\hbaEb_Y[iUSbbfrRZZ|[YcmnlfyaO^h]pYa_`jIuhnbot^XYaraeaXd_]E^S^v\oWgGhaco{FY[Ra]`\S`YYri]Ragkhap`dj^Lho^`hc]^a~_dz|ea[ofZIgedYNUj[l\WV\oP]\f]^klVORd`Fh`no\NUW`YXNZYqWOVb_[jZkiWahh\nMkcSifdQ``a[_L^lxIXYaelaNcuPDMUS]~pKklRVejpnMjcmefUaz_afhhqJ][dntVcc`e`^deLR_\M_ckTRjG\xNjoSWvfW[csgNlOvofq]QTUbcRdnPi|oZ]WlOXhjiVdSTeSNYl>aubVq`YRb_J~ecxU`]h[cYyq\eVXORPlXaUIgSa]Xkd[ndZZbd_riOgjfb`WT^UZaqfZdf\o`acg\a^eVIF___Vdx_dU][VhfSqn`nax`PgPbWgYo[]qk[`hb[dV[YXqjCdf_eY^X[bSWjYt`bdb\[]f_TZadLosTmhldZ]SPqef_^hbi\o[XdqJ`eWNeTcim^ZoeevgYgY|Xb[\hc_aihcvis`fs`j[a_ZWeTv`am^bcgcfakfZfs][\XW~c]`Xan_ndlh`WTtZpPOfdIZcjgXRgYglUecjgnoUZi]]i`gZWw_[`e_gkvfcWfel`]_gijbn\nWlUPS^e^fYO_Z\_kXkpY`Tc_i[auf\lTapnfaO^mbZebrcLZfd`_]hbR_u`b\emfWvtgoccXdvcj_X^YahhWplbdbH`bc_aq[^og\cb[\ZhR\k_`faSLLg\fQY[PURliV^^lRgXevXb`cdWV[zqk|P\`^Ij_cecWadY^NnL\TjeQ`OZe_Obh^cfFcMOSVmMmkebMwMfVfrXUcSUVfFpYd}UccO\Po^gb]exkUaPIXeT\]m]XNmjTWbmYa>nVkXd}dbtPYC?^`[mYYlU[HiUVVKW]]SUk_pL^Vd|MVOcmnmpsUXNoa\ibjhYnjYPMcmO\fgoUZeo`r[;\S^OEASca]oail[W^oiSVDe]PcXjTZpldY_hlZU\Ih`ZNU\bOjaa]kphiV\r`zm^cdWpupqg~cdbjcnjiZu8^_[_[d_ivT`QbbZeOYRrYVZTMbcvlS]KRhbvmU]TiNVtmrWinVTTZ_c_YQa]_^tHtNh[Q~xdWleYhoTffWamXW[`loZRotYdsXnoh[as[f^UlyYqbbN~fj^Yap^v~wnabTgbUSpYVMQ\vm_icrhUrj]eomo]`WRls_n^]d_eeVWiifXp]k{YSeZaPVsM\RgmU[JggdbRpbhAupkbLbURSvvpm@bXhX]bo\eeO`YNxw[WgUYg`tLraaaJ\h_gXgoj^GsvBBGZCyhfhmKf[TAW[Pd[Q;RUia\_eRYD^^RqiAPKGOpc?frOPmBmrDbITbgwPT^QUX]nHeg:hV]abx]c\{faeta]e]jLZRiiJQTqnlHgkpgT^xlleX]_LaV_MQ[vf[eRZ]=EvcSgtjgV>[`hts]TH@QVH`d__c[|udccE>WLbw^hpXdt^TRbbS`dilirYlSr9fQfubPFNX`YM][VrYbPxf]_tobGMmiFpWcanN{ancapM[hzSVmgf]ZhUli`T]rp`_}Bhc]oTTgpZ_\kY`hjlzchZhsbGxGW[[^ZW`xkPf\cm^YPffdc`U]XMz_Cia?k]sJcQ_\]oMo`qf[Tis_bJ[Sgj]\r^L[XITl`SZlPN`bmVzoc\ReiagX`^igc__\uddGS\[b_iST\YNiplmnY\YkalFS\Qk^QWTYhnVbgVbYm\Mi^dc`]v\L]dWoj^fcoQYP[G^^dXnRcdTTa^Ka]vnyN^WNiu\bVdjPZffLhVedXc=jzehUZNWzUhUy\IZdnW_Vmej]mINTfei^k_g`[[_`wqjY[qqWYw[oXnq|GeW^cPpY_nM^SVUOQOWee`~kmDZabYRu]rpf{gI+f^dMlTmj[bT^Z7qpp`ceeaX_FmfM^qw@neVZnqiYR{Pp[[ntdcfapbg[[Z:^GYmfmD^bexFoXdkgdpeTgqGVMOwcbcWzSeo]MubdOdOedbJueViAQ`VS\o]iZ\WH]TT[CA^Q6bfabcmQ`Ei_qfjlj]Ocbiahr_mkZ`Z`_rc[vxT\VRhajagZ^_TfS_Qcee^`g^tpsMle_`b^g^m`kanga]HO^`V[`[bbcUq_gkWbYkP]OQZ^a]`ieardM`_vas`YSUZJiSUhMg^aSYidWdPk[e_]RpSdke[elx\^m\jhHo_eiejoSmcab\gF`Sh_cVeOM[ujLidXr\lh\_h`ubQxQjSokLBb=ZeIun`][GtdYe[FTnb^GN`_XW]SZRHKb^[^QX[Zc3]pSca`gZTJeikLk_iNW}UafPa`m]vZ^nNjq`pNVwbM_[/[fmigiRAn_PIgyFYeI`Qb[weZYgwV{Okwhefn]MveWa[VeANdfpRQRmn\OdRo`NM]q[`_ZHmsT|t@dk`Mm^\UR^XVmS\kYe`UZWiYgcYmfmbMaWf_h][aWe_WT_WmmZkfbrk^u]qeZd[[ZTZcm_^tY^hqfjlxfWopj`^YQb^umbdSXqS^\abYZkf^^ecuWfqYw\VglWhV^]fvV?eRT\xb_n^[bUe[[becj]IbPKtWd_^bR[dXbgZ^TcX]r]h^XYcpOiV\XoWXtbfwgm[dlbnVObUURepvf^Z\d^\e_gyx[^c]qhKby]dVehdhfW`lrUQ^hY_}\y]BTdWmShl\N_co_ZhdOPS\iXPRkb^UO_X_Xcd_Y`_bhVSUkgdZTffayhgk_Zo}U`hvc`_nMjf\ZXUUhSc]prQJXrXabSbd^^dVgbhhIPe_jiR[XKQjiglaYWZz]sZb]l[_f_^q{FkRl^_|kW]bboLqXUckwVfcm^opXmyliUq`h^jP]jerHQVhyKW]kfgWwmbaZPbk^p]kkhGslmiQu[epU`UabvWghkipfbpljoTijRsF^Uk}pqaf`e^_`}aViZYXgXnpZxkZb^`ZjE|n_XVo[qQjnVkZf`G\uSnj\MMqliOrYTjjiBzftQepqYsa`_R_bRY]qhY[@bbYg_`PD_nKaSJmKUQ`JYujOVnmLbWrh_mjSPWbAndkfk[RaNiliZNQcfjZRKeUXRb^SUZEgbavXiLdWZd[c^UgfaNlRcZ[VQ]^oXb[`W_[^TjjMOaOW`SdcUUjpp2g_]f=QR_ipOg}\j]dh_RQUTUTZaolPS\Pg?jTggnTGY]]RmmSgUZfatU^]Y^StPd\bflX`RSg`P^b^xvn^y`UneYbUsQ_ncH]teXgTg^lqUXlxhpWncXZXhrZ[|dQdL\YkWg\e]rwdgZd\eVI\\Vc`XY_UeVbIk[bmqXim[Zl_Um[knPRcMtvZJd`enoxnWVXZP~qEin`SZYTH|A]bQ]uaMhhmzvbT]X`hbamjeV_^`_V\ftUHmef\[hfSvegVc]]dp\`jY_i\pnmvf~nMkkWyWN\_SYgNsV;oY]f]Lbelr~cf^\elNWZdjoViQKbQjuZzgemgef^ikTP\Xbyphj]n^dX]_ykciSXtpcdKR`eLpPXNmalW]JvrZaboae\Y^`\NXU^V^Pbnb\_TicWq]bjtVde\Oei\VVfafKfMlcY[neZ]LWgtjqi[OntRlluvx_\fWNX-_W[^UzAyph[u]p]eRcLMkVpchuZ^LIj_WSj\YaC|jHZ`MPYXjmgRVcUVX^tnmmfjcXbql[RnxOua[nZgnbyIqVeUf@WbqXcMqTbpXccYX]Um~oaq}[mVU]ndWSPnKe_kG\oEfR]M^XVqZRUx[i_X_TZ[o^[NXccZpg]T\RY|Y_{dVfN`k]gt`Xb_hQXcCjev]@Zlj]]abeJeJPnXj[go[c__nd|Nbmco]Z`YqYqieGoXUCxNjb_dSuj\dsbaWnc6vxhZd]PXu\b`[d`]aYc^feU]c^bfNELgb_Y[`gfS]fv[pZtXsTc`eK]T`lXWC_OLQdYq~dWQ7YeS`GcobAR~ajkdTeQ`ZfZVHPsM>_EeUo]mabsS_gZb\YT[zfHVrx]ZXwE^sNmYajdmsmkW]gVckWZaZ[[jN`vbc]hXh}bSb`\fVgQRm`QG\qfSprJb`{^ByRvbc_qVT[bniwaj][`e^ZcihaNe\`jaVqnoWUf|Yegl_ZBN`Zp^inTQc_qW`VaOflIaqSCfY^mU]b^aUXCLYrpuhVp_bagmn[ebkbLc\cEfNhZ`OX`yjW[WdWLIPs^roqma^kZdsjXdMcojVYMdZFzaodZRfRL]bUyL_Zy[[jHcdvbYum^ZdWehTd\i_aYZnjigbhajdToP]]CXivX_WnpZqVfb\]jTdaat`cirYaats]\Pat^k]aPiaZWXbUXSfnZ_dydJ^PQnY^TcmW[_\_NYy\\_oUa|[gU[Zd]r_VbarPWWvsYqpajQYyq]vmtX_QlX[QXTyNoZeOmZXpowXS_]hbRemMJXLZei^kKd^lh_bUzqR^[RQSkJa;TiW[^P{^\brQPsp\Vfg`t^ffdgicYbkrXe__ZYzdroS^Yr^a[miX^aSvPZVjYReQ_YVbaRNRYTdb^Msae]KPL^Ydf]PcbbjZEjpe^ZR^QcsNr`TUtVdtrop\}]jhhoWqPUq2ZNf\jVM[[OfsO7]^TdeS[^\oROM]e\`hWwXCGQXUdb^\Qe^^AEMlWjMY7OnoKkY]NiyWLZTFX~QlpRfgUfwi_lPjuF?fY`TnWTmJggad^]T`]itTiboa[g}fhSroXjWkZVxyW}uZjjrDvaScO\NtHyqGRlbppcdUwoQueRY`w`[~MrXp^jgipY`drVjbdT_Pdev[MJjRfhWer\hrVekqxhOXCoYYt]MSSa[Look`Ofvkcmi`\RdTPZd_Umnj^omd^qZygG`\Edoam`Jd`_{WiZi__dcSa`ciKi_{[`^YibmZJGUZVMkZ_ZwjgP`Gg]c`C^IW~Rn[SGW_fnSZTnYnYT`avyMXd^v_t\[ch^fhde[bbaYnqPbySykY\hdlj`YPiXYch^bco`{e]mti^_^\c`dWhOQ`mi`Z}cdq[[`Z^O]al_C\VkiVeWlb{bfWm_X_[clZ^rT[P_tjmaVfh\^]c`fbap]VicgYqOcc]iWo]c^\bUN`dNS_U[eLZY_d`riezghbWrYgXaQ`[u`jhla[fJZ_kyfg]aZgVTn7pmXqcYck\Eb_QObnYSdae]Rk^gnf~MJSQfoJKWFX>_Nkl\p_jeR`kgHYsnVbVY_iQ^WkoAQHSQkd^WEtSZvovMiiS^T{aw`ZfbXbp^R[\qhgeOlNhV[ZdUWVflYsXOZn>qang}\Xmh|U`a|5g^]Pua_hflaWmTc^|X]a\@L[TureqQh7cMZpirgfcR=jpeRTnEcdgShr\i_igaMFDeX~eFZnnXRiOm\ZinhD}LdmY_cVQjXjYaT?pREQUcbZYe]meo5oejF^^au]i\hriqwGR\YTMd_P^^eaoQcOsCkAKPzmrewiSDc{Msjpj]]ko]oSeglmq\bLPRThb]Yvan`XmnCTb_SA`_rFXRYUjBtWI8ffqeQ\wcV]X[V|kWbfmjYjZWbVZk[LkoSrv^qURibbSacMPYXiYI_Xh[VVcZuO\wqZXcXWZZV[WqNqxWjZhUfF]ZFXr_bWb]bUZ|a\Pase[qGepYdNVXc\ri=k_uefh^nW]J{YsSqidfYOffx]WpuhVXVEZw\]cXKTK[VqYgd`R_h\^[\i`byd`]ZnLpQWY^^]T^_\eac]ecWSkYXR^iZaRVJ`ikqUZjd`_bna_q_YbWdaTa[_k`PbKhWeY[_htcj][Z_]TPiyhsi_^W_\Y[OUIj`kZhhZX_a`da\o`donPGSwc`_e[bVri\gfZlveghnb_Rxc^~KwlPd]mPI`_{pXXIa]ngXk_Pd^pblP[lk`xpYsokc_hkkQ`sW\mrWrheRTRbjXeUhh\jcQnl`Td_dqHansifPSigXq_\_Zb]afdg]if{]ggkadtTfYaSmoTfcXa^i]ej~`TgheUu]peflg]oY8kmLY`w^gpl[TWGbYPVgSWZb`_RlfjUj]iat1bgr[Y_SaeT^`\WQv=YYVbhkc@ci^iT_Wj0jg_OX]uaXeQgqZS^rmamdXmd`]a_Kk`_caGg[KfmbX\~CqJQcGM[jchiOs^VQXqYUsjWMdcELlZ{]`gJSPNXXadVWtc\VxifjLIIFBcLcrdlbTUjqba_ScMdTuSs]iVLpu^iPi_]bTeYdgargJ|T1]do{jonKo`PopQsRlh_`VMdHghGsfklReZbzLtUq|Xn_]ZEpXTjiMdWXqiwbMg]IPXPbidqo]Weya_gWb`iLknpK^b^gu\QifT_aQOfQy2GU\[`oRaMfb[VomxfiSOTn]^OzOcdvuTAg9]Hh_r_gdAoV\d_oVaaoq^w[]Y]MD{gNjduUiY\vEuYHX]arbhef?ldxu^KMRp[R[TdfKgipRaL^Xr^fV]HKmW_ZXmkYamUd\gNUa{[]bK]jpRYbqpOXXlAdk`k{n_dNhm`OgcnYPcPorn\\QckcmCpt\`Tkuqj`MgVVAu{ZXZfYY_sdh^WbdLcbL]Jh_mXVzpXd}DuV{KajnYXni]ZHGzLYeG~zfJphafmW}beZc`VYmSdaZj]gm\h\[`QpQme[_\hPlo]_Re_gbcW``pVWZQQgadUSZgZCblpVdYkUno[lhk_fYV`ZYVigu^_RfZj^cbgjg\[ZfNa_Qf^UqThfqiTU\acub_[Yhgga_~_fWomp\\_QKwYQee`[aJR\ekbo\TaVlj\ajOc\pneYfRoPclhgjZhghm_VydQi{][]kaHZgZQkZnf_ivk?QXz^GNWbjY=W]lWRYMQ\jbaRjJo^^ZO`Pi[9fW_Hwi]S=cbP,TSJVaW]`j.ZE_kMySWY[^_M]enZWj\M`b\HfAlg9^WXT]bfbe`L]Q]^rVi^\Xfh[eiZJcl\]`uXdVZ\2OOMbNWEXmOTTbR}k\\I{NPX;\ifSl~UVRPPhON[_mxRXVm_^dOjZxRPdaH^_le[aqVirqmki_V_dh^P\]WkvYbdVcfR_wTPIR_wKOd]UkZmVq[fumknocaocgcoacEjf\][^Z]UQgUjVjDceHSf^ayQ{e_g_gK^KLiRm\W_oj_iPuheZS^W?UXb`h[`SJhMuSgZ_`X_ad_er]qRYur_gOR\SqrgQ`q`eW\T[]PohFcbOY_\bZ^WTqiZnPpBeURVi]mhpXmPWY]WUdQZZzgbfaJjv]iYMZZb]^Me}ROLohX]eejavnZ[mX[OOq_fPh]ck]z`JWdnsRY`okpveXild^\ij\^R{aG`k[sckhbpmfuZfLX_[`PpZR`ojeM^^aRll|kdNjWPLW^`ZLLxUrWZVgjciYPeOif^vYcQ[eYgY\vb`eRTnWmPIPl^YS[adXgnUkOm`SkcnY[YSdz[n_tVk`WqP>sXbs^OeSdxvgiTgrZche`aSogLgbrY[]^bX\T\hjf|bSIWYmpadRSJxTrVUKfsmeqUM\ffca_q]cV\_e]hre`X^lRhW]Sgo`^YNTbZgjUc^ekDgZrax[hie|bR^by~tVeSqgYXh[b}ZUock\q^inZxYfdfhbTtK\_mteun`YaNdZQ`a]j`wu]hp[daU_[JT[X_Adpi[C^rwTDFXfc\[cSf^VTVjMj]Z`n\beZb_jSXf^]k]LV`bb]RvTj_fiY\^PpKeetbdm[nuouzX`dOhZwo[jVaqRksaY]jpeErifXYC_tpN[c`[cXHWlgpWejk_M\bYkvkXdscHe\Fh\VV_e[j{Gt_rRoW]PkUSa\OlSWfdU^]`j[mn]]OeehXRuNxW`j^e^cl]Ce{pKw_h^[IVWOQwa\Rebl]saSUik\JXwZTb]WTafX_\baNbv}aHNSa[J][d^TjS[\xSbdpnb_jmWW^_NnX\fXC`n_YShhjXcTR[cY<[ggz^ihWYclebGRjZ_bVidfJTpW_kIhF\ZT[fnXRhjRZLpU^Isfl`^gkfT]_cdjKXba^f_fp\PsogXs`je}fUXQRNeUYSiRXfav_erIKg]\\XUaR\TpYi[jae]U[Z}_RecXjLoYM]d^ftQdQdfVgccQW`XlTLjPgTk[qb[pGUvjkaaYXjccY^wO]ecbWX_\o^j]Jf[gRblUr^^zaZ]pgY_e_WSsYahTjhf[a`ogqC`c^MO`Zaf]ofjfdbUk{LkBbP_acWfcgbatMWo_odXg]pb_]UoYcT]pa`WqmXfM__Ncb_iR[O\VdadY]V]gNagXkW^ceSXkP^{[^rmudb\uuqXRdYajXv^iS]ra`[pLf}_fPd\z`\bRZujc[c`mNc\YWacRRobejMcYnLfeaSNmcsfaaEcOVqCKiPoaV_`}Kri^_VZWaWT`ibkfR\i^VRVh9gLtgoRj_aRXVSkIf\Wk][XhUdeNdeq^f?dfpUVaV~_aVjsd]EPPX`LeduW^dIdigS]f]iTeZP`xghh]YmkaJRTZ_KkQ_:xcaRfaLZcw[Eb[J^Ph`]rSqY^aUTTZ\Mp^fjZLwnmehOf\Q_dMYfqc^rfd`tSiW\]TKS]WRg_IPWZOXU^KncZlU_Tjl__HCLclpfeWg~Lp\GmaVX`mW\mYgfScT\mXKh^`OmmM`rdjgcSbMnd_NeagdURU^eQTrlT`U^kPJvclLilRhEUJ_YWbF^vtK\hZiNK[gNjSYdOhR\g^laL[itG]S^j_ahPeGcMbZELbU_jJm`ac_LOnb`S\NH`XiDhdZPwgepZYIV`b[zLVyN`QKhfhZaWkZQVkWTc[Rf~EgbRBkJNs`ZX[=bZ`fVeISVq_kYhlsc~KNTeR_MlrdMdqv`hDNb|fU[X[RnRRi@XCsk_oO|oiZTgwX]vXfgpjo^\pRN`UXkdKLLuh_c=tqY_aVhRRzVlsfc^_ROsUDUSTXci_Hb[vDs]_fdaThhS^~bcr\fUxZbXhPX[g`c[^[yYVOUWOiZ__tX^QTa_kbuyhepoha_jzclP^WXcoek^^W]teWTokTjsme_\lgnT\xfegX^^MccZkSbicegVX]yag_MGba[abgVZ^ghZcZYfVY]U^?zrp^^nWY_e_mdYtp_hmvxKueu`g`KIPM_\c_JVdbmgpbQcxXb[a[d`dYdeVmb\_[YnbPzQsY_[R`mkrRZS_enn\iM^[_]oFeafhlTlr]xTrc`^\jdonOUUheiL]iMKwMc[s_UfD`siXi^k_DJoud_^Zjkr]WL`bUgWQiJG`VynWqtIiK[bl[f]PzgVYhUqbVPMsWmhcbruV\fWj\bt`gQujafPedybkeM~]lfa__Vt^dl^hMsUflbgg`_mkZk[_UpdhfSg[mQhiWh^]NCQSzVW`[\cg``WUdhSTug\^ZQ^TVLlWZ[`qm\d\WrYNfb]Tq\bd[ksV]_waLV`ZNRNeYWcozPgaad^ic^ZOT^c\aeSS[kSWHsVYYadP@aHefNb\X[mYhbbc\gS`]k]at]ScarWScZg^]XCWd~hZJ_kccdu}]kg`ZbdoOlc]f^WTVNbIJ^P^UW_YLaf[KRXphYfkN\`kalOUoTQYcSf[WtYjl\fgergfPn[^EcIijjd[pka^_hTm^nhbjZEaP[[b_gM]bU\LgjXPVZq]WKOTTeod|qx_ebWbObb`lYofo]ZffdcT`ma\Kwj[XSVMmW]iWrmflanZY`\emiqVdfRFusXLhg|R~oVlrzdeb[_rScl^cT]afVpZXcvjYi_YcRc`Gdvkfg[^dkBcVU[bWadjg\WTwfdOfodhNg]_upTpm^OTl\oHliwrZQhaVYg`UKfF_c\@\\ZGcOEYdcQRGS?NZe\ZpcVNiiYjeQgY[]i]bamiX]VaR[^nWY]ptaEy]]VTo`]y\dPs]hrtRPXN[^OQiWHnZs7Y`yRbHb@QSmjW_dd\aJ:gZKehvojnhS^kOf_XYOThaw\a@rK}US\Gc^k]eVKeRiOKh`G[f~~KPj=Va_{nrpcYhWqleKa_\NUMlvgoga[fpbMWwgPp\clcrXWaakPSm[YelBallia\XaX^^]ae^[Klt[b\OMrdPfho_ewctaJG^hJf[O^]kdwY\Zx`KeZ\J[UjcPufpaNEYWkbj_ckjW\nbZOTcrbSWXg\O|qWIZjhsmMSk`crSLhtfZkb`Atci\[gIjNVUuLQcifJoWmRcnXSoZze_arT\^SP`ZbkZ_K;cZ_Q\Z_lm}>=A]RSpEEDONzFZ\wViee\aqpbYbcgPWYtUVU]KeQ`JL[[RKpexROKHiSR_[cYQGJN\O]2sifJlbOhUigC`Oe^dVwRYZUkYx|aeG?ZQac][mekiW@cWBaeV{^jhRekcH[o\VO??_[T`cTo[fKUgf^YXNokgcG`mXL\a]]\pbHjWPZUDaghhV_Vk[`W`VVZgUoHWuLpmaRMWtmW=d_GueffNiV_\HcaJnw_>Q^P]TTd_byU`KH`XgZ\khj\I\cWIXXNkglDd^ywRW_m]T]RyVmihYgJo\dF\jfI^T]Pu?WdtTSXmXg`]bTc\ahY^\fesW9pGyx^lcOuv[UNUkYCqxSHhXccm@Sdffhgd;RQPtq{sxhF`ZRvm`3e\kx]GP_m_LsjbebWd^SaeGj<^iVSf[O^zqWhzcrtWNc[Yv^^SgVpxVY\dfeahkYdRUM]LY}momW_bheXuigLvfWi[KgbKujmkZXvWpXaqUj\]iW^mlcrs]be^ma}dRYPo{`XTdje^AW{H^qae^dYiQoa\fuSYTlV\[ffVdjj^izf\gWgjQcw]dkaLj[gYUflWl_uVlc[R^fdyxI][mqb`[^Urjy{`za`|OUY[\djY\rwA]Y_[gg]W\shgXzbHqpdifXfqTac]pYgZO^`udXhZZg`ccqZemg[[rhcNYCpQ[HZdPsjYZifYX`_ycmjWllUUcmR`PUf~cd]Yc[_d`VaV]mkmckQ[nSY^[[f{Qj`ri^S_jhgasXwRT_SYIpgkSaj_fPGk_k{SplWqia[\aNedGWPVOU]wWGliwnmghciSEekzgZQxif|i]zQagNphYaeq^ackbOSq\yTEomR`iWtkW^YY^_W`^SbehaXhaasnkkajueTf\S}fi\Y^o_TiYflIh_chij`foT~aWZSl|Nykdc]bSWlW~]rUN`WjGVOsYfbd]U\^s\_RQZ\o^NcRgTV`Zg[\blaeigbWRbl^YVnfihMpMY_|Zucoj\aJ^qgNch_i`V\rb_Xe^Z_m^iiYRGK`^p_l_UX\MbeU`|ui^bXdtkjYXTag_^^aW\xQjlife\nSWz\^p_ylmj_YfYp^U`hVkwWbv`Oig^eU|f`d_j_zeOh^llXl^Xe[bb|a_YfkrjMhre]gojl`_W[^obt[`^Rei\PLajqeUMYxVY\_YPScCW_nmb`TmnUmRa[cbTkwUH;]P?W^^j[hWJiVZbEnngfr]Yn_kR^jRXna_x_db`Podlrm[hZ_n[sZXQfL[aiTb[mseiW\Ndf``bfdkpic};ZX]l]`s`ZzQuP_Pk9qa\Ia\]o`WYU|tQh[fQcgVwzFf[KiR`g]eM[c`S\:c`HmObVn]xl]QOTklpr`s]fX^v_[N_JTPPlVY]diW[bZfd`[qzZMCZeUT[iP\jgjXapScj_USjoke=affSqweIrVm^hT}_cdae`WLnNhJXWxWoQ]VX_Mm^dZ[\flfXeWeZbS^aGcTMYPgkOlnfc=WicYWp9\dUlj^sWNP]gra\NEpPTYgWQ]_\^_Bjqh`aoPXuW[ftgYNwrsXuT_]RLWYo{Czh[Y=ya_Z^ljJflqsXPNUjrK[WpQPs]kQgpIgdNS^K`eGHEJTlsaNggWaIeldbsFaH`OYeN?gT]fahd`rX[:IzXueQMOZ]`\g\kggjcTPXSScalI^\Uc}V]VsRZeZXhhY^SKYGg_}YlJRdPQD`S`JRAYadGTbYSkHXjnbRtUf\QtEY]IdxmERTT_`\pavh[{Wa^?t`leGhrPMfz]\pTKRKWmbN\TDZJh_esOm]w^rfhvo`tGxRZZbTie^e_e\k_JaWu[`abS{]YMLmheobXhIvXC\exgrIYUoq6iUXXqZjM^UV``XOY\pZLXYb^acdQ^XR@f[GZnPl]Ua]NZstcT{n~^^u~UGbeciuTsIesaTaUN\_Wwj_JpmQm[adddRUZoHgWZ^Sd|KSH]KU\8dlBNhBjzaO`PcWr_ALdggV`_PPXTt_aU[^_agpQXTSeuNZ|e\OP]FvsvenYRvR`IjVVqIWgwlahe\TlPe`f[WhahUVa_PjfS~ftYcPyQ\gaKZpUabVclj]\mSd\Ydjc^E@ZZPX]QOROXYs_iU`k][axnoddEbe[fTKRYl~\PdbaQX[\bT\JXs_P]Mglg[dg[jls]L\YZd_iRTqSfqXZcD`n\oatMJhVrd_xRV[[R][PcjjVTgkohnlXHRYloYdh[_sP\ej_KSCs^lTWsuJ^}Yhe]PMHbBgo\u`Ueg^RdOeE[ep_[\^mfnZwtMW:Whf\dgc\]qbEYak^mP`dOUiZf\Og[]Tcsa_YrUvo`}ko^P}eRl}^gjkWT]aVia`{MliXXR\:aWbLe[ZUrtxsjtXnWvS^iN^ThnP[agzeVV]cY[a_XiUockiXbcZ^dVoa_QINZdUOELs`]Sh[aTTbMaloaaa[`SgK``Ej`XY\S^Rar\oYZVbgXhVVNWtdFFgmtUTxmkc^[hd^xc]JKNpcUeP__]`ShJOPjidSckkeebhRjOBuipsk^^Q]}Lcb_Qd\PRXa_c^j]UcaWPTnu^kstaVsaZzMUN\WVKVb^phX_Hwn`NP^^omOePVDpbqdbfRhX9qlhygbI^g`ivck_XDjkUVsW[gPkufgsau^[YJ2UgXpXm_xhsUVoSkcbedfEWgWSPaW`HpW|U`=uKYNJ_dW<^RNZmN`d]ekYbVmZaZNAca{GJ[\^]aHbR_TpYo>VLh_d]ceSIZXtaYkl[\v^sBZPonM~a\f<`MC]hG|`VM{hkXqjfU|jYQLiGoQEKYb]TnCiaWxa\iZcZ[NLd\e\xZisNWpVVIfPVv\OLkKcljpJ]cEn}<{fHPZboGxyvVh]UYUfhSc]RXbuKKYgFSu_`r^gcubQ}Zrkm=XV[zhjgzg[bj_V\mxjlp_Zu_jij`Wgbg^[ghb]`re]ThXT`VmQQVV][HVeXdr_pkXcacoIke?\_UPd\[gdW[o[][Za_W`T`eUqdX]qZgDkdLWKh^^fal]Zcdkttvh`[jfa]UfZlp~]c^f[h]g_^JXYgb[X]QV]d_dQfirS\[T]Zsdqjk[nfm_cSTbvQUssbghg`jdifX^Xma_fd[Pe][Y[mfZhg^Z[_Y]RSK]\`Fk]\YTdFyab_dlsP\Y[KS`ZmcpN\s[Tra`himTPTTHi`uIvoZ\bhAPZ[PVXobhz[fRcY`VX^gmdmzdT_Ra\YSXpVPUna]luWcZTSorYd\bwh^g^[{joQjdO|g\VmZVTmnyhc`kSfIdSw?zOSkfbhjiOBOZQUqlOIcazC]SWhtrtwK_B>pZI=n]]V{ZdjtAS:FnFJIiamnS[Y`@Na]\SMUO\PNKZhYUUUYY]tYtlSf]cnEd>SsjT]I[gi`M`pAaWPRoXiJQk`[_eVu+aRVaL]KDF|ywnThRRGd[Tj}UXtwBXSRIrp?^dbuJcUbXTbxUQ_J^OiTjDQIX[e]=I`|aLctg]gah\\faPifjl`P`aZ^Wmr[Ynmfo^lc\jhM_jgmlmT`eaNa\jWjnrZ^[ekSaSmUQd`T[gaKXY^Xavm]UQbquZfc`jq[XbnqYhcHO[egZlesg]k{WbvNU[yutdOgwie_`ehe`do^[bd_haKG]Sf[\]t_do`dE`bScdgSeXb[b_jUtUSjXCciO^Yn\trkjsdnLfX`n[leX^hZjgZldc`Yi]oV_O^UVj_[e^XR]jbmjbdR[Mc_fUm\\f^nmXp\XNmT_tZpuSk_abb]dlfg`bhg\ocj]acgLXgXmp[[U^bpYaWlRtWp_`Z]W]d^q^]bRSone\^agobJkn^dW\arY^d^cS\aW`dvGMYYZqZVmbseaMT|UeI]bT_Oelcq[GOGUcSRwgF-lgWs\oRWY[g[[NiLgneYgfX]i\9_?aScUKpSXh^QYgk\QvMj~``mIDmcc=cqIjaiehZkjFYQdrMdYqVV\`iyapkg`vbz_[srWYle_Dmi:KPfL_YlWqQH|hAg_VnY`\dX_nDQT?ajxYrUfv{sT>W5cHha~NGkQssrbap?scrPwW_fXOcaYtY_ymM_Dbr]hp[GYCvp`LjTlrXtL^NEUa:kW8Y`[Mc]SFkZSjaZKIosXljqTboofQbTbhlcqRhIh;:jk?hR}LN]`_^nVSsDI[YH^lRLgK_[UNSZ`8_vps@VgTwteiToKML]gTTdr]8^M`KVSOpLkQ`[MDioh=W=`BVlp_ywfr`}]Phepdk\UsWfX_]ZSYtk_Svbj`[Uc\YdUcgohTUbb^\laXbc^`ZfGkrpoajfYX[RflfwQb`aiYrelXyghgocNmRSgjJucc]X\jqiS_O_Qkf^KXg]gdP]eI_]XRdZOScuYZeZpY[p]aY`[rXf_P_mDtUd_fSW\PmvYG^MK@Q]DhaYaoTd[\bnPenppcZVnkQO]csb@jNQ][vaCMUKUYluSSdhgV]Pd[SP^fkajRWUYoOg_GI_ma^`mv[JRWZbIzeVdFp^cNuO_lHeW{i[dS]mwj\aa`J`Weq_kLWtfK[chisYKt`^Ce`VauZRx`oNhmcZTeb^]MdXUjf_U]n^_ga^bTFUTYj[Fcag_aDic|^O]QO^_\TOXdIN\nYk\zoFReMWZqt}rY[ivXDQOkPi\Lt]_Wn^lsY[PdiXh]cyiVRKHU~L^DffcRZZmWTF\Ry`NWfP`bdjrmipZWc[bndcVeXij[b`f8TV_e<:aFahme=eOo^JcmbZU<\Ynjnfijiaggf~hWM[UGJefhjgdF]h_V\UUEoU_oRf\ijs:f__`KaiYXacab\HyxXZb\q_P^eaMR\]gejPR^]WUbZQ_]jlcxxSEZnTg~bDSy\:_tqedU]RcOl[fNnZtke_Sus>ZddPKiVmVZSWbOXk}pPP_hs_wjSDaaojdmjrrQox1VuXvmNmaPVj_aoPOdkeQ`W]fj_Qu;`lk[cY^^iiP^ojXgZilb^Vkb_uWpk_fcvmUTgXeKK`Jl{ngppUknpuveiowruelzl`lj_Ttygtkvjwqwg^b}Z\buq`jpreoXng[qvistdglw~werpfbpypvcxh^dfq_ukwudehhyuptxur}qqm}etzUIt\cwugk=^[Pyjxonrofsmumicjjxwyxb`vhove{nfncvvk}izf_h|ze[Y_nsgYqzuwo?WdiTtv`PNsV{OUH^YUO`a`Xhm[oRZ]l`VdjbifTXv__]cVSc`Y&j]URPmfRLKcUTAHrdbm\umSnURaZqX~^ppRMZlgxtfhOlWeGJa0{ac^nflmSouWdlfbd^:ttug5asMRkqwolmKDfyh[WmtdpgN=Flu^Xn[mBXePSAp?`dCdVnSO[`h`E\tF]RcpgYY]?U\S9HJSkiklkpSEAVORfjsgNvTW{lQ]S]Rq`RhQpybekUZr_]rzcMqaOY'^VMVYSfNgaoSGO{\cTcXX][b3ijx{V?n_]Cfpwfc}[S]`Xe]W9g[ekhTIOrQ~amB\QNmQhYcJ1R^lcncYoUxYTPGsqUuCcmbhX=WCY\fJZd^eedlmKY\]vlL_fpsJRDfn^pPh\Rzs\EDnDYGmkh]QO;iiYlgcQVPaOpn_T^{gau]]YQnNW_GoCkmIfQSktdehOhOXSQr]loZ[XRx[fTgyc`j_wkRqqN[gxkHSWh]Z`cjgSXSGcNZdHV}jigeyl\WgJ\uvt=dYUbb\]^cM|rDXy|D`gJKH:{S:kLJRJj[ZDExpYMVWnmE5[YOZPe`OTEilYfVzVgiVjRYfh\VZ`S]fHVm^j^uLb]_Nizm[WHUe_\U\drogrwLb`gOAIbxkjdO\O]g_`]_`F_TqLN`OjNT^FXQlT]rvPdYQHf^ewabR[[dNQwj[To[]cvgYmghVTVmMimOP[WRmXn\]pUTfjM^oecyMXKVJ|EioiMjNkc`nqbZYYXqg|ncP`OpVIxakhnoyy]vmu[ogaeaRo_uXRXeM}pd`VkrGm_J_pogkdhepUOjzQiYqcyhVoUV]W~]t^N{`pxYb]nZTcRT]^t\?WogzQcMwaYgkZyWYEpogk_@`AWXRZftXkYVgVMv`lNSijqdsgl`o|ORgfejR\^`zej`[tpLFi_Oghg\frDfdesdSRj[M@s_OYZoZMiZzWvujwuyvUohZa_]pr][kee[xFPKr]9Nr^Kyg`DVU]gNTmbdb[PhlE\g\NCtPnoOQkaZ]KYJkn@\X[W^dn:}uzR]l7SVnbUdfkSj[f`ZJ[QGOca\Fkn^`UXJss`Soo0l}LdVwf{bNSl\qpboh^wnjK\Xc`\]T^oXp\\QUHwhmkPS[XU}{rT^[BUOfJ\tG\p^]VRbnVljp>WSTTm]W^HtUb bmeTrppPuFbn]iu`U[]pdWeznScYak^h]bfcqcN[ZWhczB[[kmNFJi\Dao_bX]_ygShf_FQSjI\noq[f]k|XPnx_ymPsbud~camso`]tnrZ=ZGZ?C]dgST|`lPbZnxUhNwjX^iNeabtb^pg[Y]Tbmb[QTNxjvr9b`Wq[ca^Q`^~u`b[_f[^efS\E\RTLNcaj[?OhSSimOnO`dwdhaX\WRZVU_cNPRhSfJTu[_cKa_S4[`]smZcI__O`[odhp]reVb`o`z]KPlcRZq[Zog|RUbca^|e`XRl[]l_uegudglCUlNrPqcSgHn`t^ORmqG]iu`b^f^{XnUerhXmkq^jaiNibx]rkZRP`Sf]ne_`hZQtl[\c[e;]laZUPhZe`]b_N_YeZKpcXghd~iaUhoacab[^ZcajfT`MmfXYDhY`l_\HtfNqiBgut^dOdcbFqU^W^hg`g}QN`jtMhqnqMpH}c\m`PQ~ynz{s9VlTgOs]WYlnjldK`YrYhpEg]c@Klea]NeWeLTm`jNu}s]ce}_q]rflSQQ8NHxRb`Y5XmkXi`][_^PSQsDgQalmc_adWnjhFrYuaehV_ZmiRMtUimcQcnum[f`p]hmc][Zs^jzX:bcjtU{ZahS`DwY]YfY[`_ofX[g]fM[^jV`pN^tYsVjv~W9PrR]Tu_Y]cZ`^vwnGNCaoXTp[sw4uURr^jV`~VYd]Xo\hdbOPlZPnm^\gZlJXkRRx\alT[ihYUZTsWPng\r\gmYWew\yhVyR\WpoWYNQePQNWvja[\}c_en[XfQjhg[la]`SUv_Y^a`seOgbbQ\HSZji]r\fhZSRo`uLXahqruNnU.RWeSxWgn\gVyFNbBfSaQeaSqPO_iaaLij~dmRHb}mWKjq?dgWa[gr`eMYxdwdVjpf_sP_TLSXNvhs6xpOh^vw_EnVew`[pg~yct_k\BVcbRg:]Y\]Qf|nhmghelwJ]Y^|JZN?_wX`_}ej\^YcZ_r=Of^kdKYQO_]S_j[ZkjomoJKbS_i`ighr[fIggnhxU_eUbs_dmlU]nRgb]YF_P^\?PctUlo_]hcd`gexaZ{VT_yCjcshxaYdcifclgsepcb1NokV^_^PJl[hLb[XN]OV?P^StnTmVKaV]SZZ_hWBMb]k`n7UImU^vkl_b_caiaVQZIqV`Ywo\^Rky_rsXt?ituZpQceDTUbVh|s]I{Etih]\^hg\_dg_\khmS^Sh`_VkYo`mvfYZbbW\N\hhdjfQ^fDZ`tM?cWmQOpjcXZe^dTefYfnWbz\\irgh^g^gw`dM5VZrY^W<_sQb[edg`ShabibI_ogP`fbOXpk[_VgbZl`rVgZjrb^^inZQXjNnss\gJ]UW^ZVXTad]L[p]gc`VRbginXhae`gddXZhWNTTfXLnddhm>Dt|fiV`adwnafjWeiy|gzhTaPpmpa{WbNmrWRbe^CNZ\ujRjD]UaZLeYb|rh`\nO_agOAejbRuOfl_\@c^V\SmpoSuh_bzTTSPMqjbrchbEVojVrpUG]T{`aeRHWP^JFeaeXf`YjeVa\`h\MNUL^ki]Ld[YmFQqlX[NR_pOmt]yY_jkas^Jtyf`uccZA`u_cfhr]KfdoSk[b^EZ\heaYIayaHL_SIbIzPv]ndqeY^jV|i\]jXm[tZegPmONcW^MiY_TJL_\al[TZkb[kaav[YDZXLfc\xYu`SjaNdcNqS`hUVXdlU{oXbWUuZfY]caQoZ`YjcUiJuYtYvq_^N\r^\Sc\iS]mqo[ZhnaeNGHReLdbhxdZJNgPZXWj`hkJmbsi^fxzfIeXGtV_i~eZhUvWggd~ck`UjXngYmO_g_^gl_}ja_ZWiaeOUy[UqMftXuQiise]T|egNrDmTt_^akg\oXkUURFbpN|z]B`yivudLia^O}tLZ\__wh]OmLX_^tWo]`_pf{bN]Y{peNVeS_LJaeTWsgY`UivkdtXtmaka^mq7]muRbell`MIKZ=d}RYaoTne[_lauZb`T]hOXRgsdLnMojb_:RtcijTVy|PbfZ_Yq^j{kzrCjb[:Zos_kUJ^UiWbj^ZWgl_1ZXvqemKprXuZXIPKYeNFl?rabT`UST_^vbpIB[Saka`eS\nPle]fGWWi9TX]:lTjif\IHu[`kzao[_`X`bTVRe[5Oda_cghmknT[keJabTb9nrsUmsZaDs\_aqQ|`klNFy]rSkO_DU`vw_Fo\dtLvk^dg_[_z[d]YbknVbTbYjeZ[gU\_gLuWZ`g\\dlpcY[TNukehhRZU\^}Y\d\_jMPuaeUjo`e^]]rlIz_ffXhZlcMbnMpn^\Uo_TiUperdvb\qpzw\MQ_TR^[a_YW_V\`\iXfHoT]YkgSkXyY[\`aSZ_qbkXaYP}U]c`gn[hX_NmaNPY\S^]pZaY_aWhWfEh;UTdeWnYapRUX_IfXEuhrTwQUeVUyWvgWDlkmziSUelT_YZWXwX[SokmRrmfH[]qMXxsPb_f_YedZipMyVi\i_iYqjMYUhsmUeok\aJPyLmtfVLdYeiRqiUqmtOsUNTzn0TlRg[fV4`bfjTleidokq}j^RJygPb\WROi(cYX[NvSGnOyGaA:aJH[YchV`kWchT[a^Zi_C]ibWXZU`ffi[PQfP[g^[[]l]RIcdd_Edn^ik}YfkFTisdPtEUd[dYbGHVGeP\eehfWg`ZLOrX^c|[olw`gTihMTjPTjQkoZ``NBc[t`uvXgcRiccu_iMdfWWojSVUZ[ema{Xp~WjXjXNl_YpQShheNFjiddhNaorhLZQLOsUKSaNvf`gV{d]SZn\R`dXRnTXXRy^_acpKUkyqiIq_KcRYJvKUn_mY]iGlCfTL]JbScV`gLubcsMhpRzTFn\jOQfiUUaTO_N`hdOdMYWlWG^hLl>seAUnZR_K^wcTN}pSP\]U|^y]MbX]eMVgJXYsnsiUglSQ_H_ZdnibX`Ythpb\VgXebbWXTYTkbv_[a|spDdfeSau`H}XfYIxe]JdW[pYU`jwwxcO^qY^`g[SkdZcdRB[`GfUqTa\]dVd^`c`\Xfggd^JnnZvuRc\en`g]MW]an]Xd`LcraQZjbbhsWS]R]bdfHSg\aPDbUaXbXf_Zl_oe^claZ]MBHeSkZja|`cdV^ehLf\afvV^W^XrdiNve[cb_e\^QJi[cYfUBw[aJQV]U\QSJd^kcZN]ZiWkYq\WKXP^`dgmtAcN\]{ibfQkaSGlf[honQS_bf[ddfq^[Sl`Zmee}HNk[cenBfmrn]vn^_HqknibeCojpe_XbaYVmXUb[YdMzivKZwRji[=Sg[EbaS^jgdkqhfBsWVhe\rnSNcPTkgH^kah[\|TH|XwJu^dkWSfkJZoc7SJP_tnI|]NXT>mqbk\gjWdWiPba`WpW|}X{f`clebs[tPdgRfnTiKShXifmlY^jhbub`gtEdGZXDD\]QneBol`_mRrc\YdZTbYke|>[_gfbzHEjTenN]dnk]\FpQhYpwhiRfPeurOgecSNjfNTjlZRQnfudrdK9ga\ZoWV{]RqtlRN][HuvsImtmbaYuUVl`Piab[^i]hgeimSEQN_fTOme_`hXvgazcnQonNl_i[OZkdPe`qWHp^fd]aaUqXQedZiRGcamj]^UkXR\_hqlgWs`^]anH`l\]`ekXtg]ba\iq]UQo\~b@bge`WccjZje^Vrcc_yNS`glE^XwUi^Iac]WbIMmhuY_nbZ_XRpthZLfWflfZcLf~dZ^e^ddagScOghf]akhwaaXZ\z\\vWraZ_aWUhSm{NhtKa^~WpjicgdrZrmhYWaseQFj\_VUOZ^nhW?bYc_[^giuAl]V^R]kSYhdEwW[QHQh[]i^JhUbYLmoIQYiW~i})\l[ee[siIv`]]k[bZmNo-_hQ|clRdewUqbnb_`\c`lfq{YSV\n__mbfcg`ZjMIcU\V[frknnnQRNcGKaU]Z\>Sdc`Wsf|JYdLVgVdOl_ggSg]A_YWU^gbPXWGdTiSjXZnxymK`hGbTIjfYdomegYfKg`lTP[UqoUfYcOHq9\ekpPulBl^hO^`fbI\S]YO_ergeSU^pXDacwGf]}Go\WrT`YKl~bW\~M[TclvcgK~YbgWe^UXh?a_pbnOdrrQYWw_aRVerSdOfenua^_X^dUURSSMo[gYfmft\mcS_]hc|c_`lCThpYfXGKgeZl[rTjjK[SLp][xJqeofgTt[hj`hdmZ]ZQcmQuf_`VdgmdkZrtTSwWfeTZKbv^mm`[VTjmcqY`dkf^chqYdqzCol``Z\THW\tihhe_ZbPEik\muVX\j]Z]dJ[imfsDUP[UjoLkbaUSXR\h^ta]nj]l~j_Q]UPmtYXkmZlHZvWsjqaXLkcIgm`bcm_UT]VX^edhadZEXr^ibtR_KqHjX`[^c^OWWmd`c`RQngfrjWiTc\hjkRhIUXe_ZchOaXcrd]N\`_STk`_[^cqcN^gbYRYT]yl[`beRZ[ggkZJeSTjefXbZUfQbwllOpZpgjkjpTlB]g]liU_R[IcffZijme[^k^nVn_d@@Gk^0yfiWPnvrji_Jmndr_[ivW9bvilKfYW}sn]cd/_bG\g]v]RjS~S3JtaU\nQZUMW@ZdghVgQpabeShlUpsUGkh?NHI}1zMKp`w>T^_`XE_@ljXjtVhf\uyyV{hmYjWQ>S`edilsOFl]~bF]OGbcF]W_mLi_z?{ZdW~cVE\p]p[u\sd^[fU[h^Q]Ebe]e`Z_oNhb_pZIBPPUUhfbd_eg`fl]X]^`ef@]fQjqasdJf\q]V`VanfTPe\Og\Qcj`RJpMYf]cXrzsMg{XaX]n{i[bRYgw_KiOtkWnLRb^fvVbWijWZ`dNaSMXCgox^^Yii\PqjmU\d[YP=S\mcQemulaDijcm`fro{NhbUXiiT]]u`TpplqvdvaPr]\jg:^dcb]tn\WRRkyRLiu_ljT\fdu_ITQeX9_`X^ebyN_Ottf`=^qhe\_jgAe]_ZbYn_ugfiit`VugLe]\XlHiU\g`m[cY`pDXmd\kNtlUkUNbYHsNJotbLjGjr\[n`Bd_jDX^Z?bw[yVZhph\pHTUo>`^[HqXpkeO@_UiWwY^]iM\eWZ\mccdUVcokrSeUd]ym\q]}jtffqiZf^rliMtq[^Vy[jZ{dRh`Yd]c\TiaaYY]ZaSb_Mj_r[W`aZnYXiqhpPf[_aOqQ][YQ~d][]Y}`cgZwag_IrSg^tiKg`c^ShfjcJ]gsP[_S\^aWTcZuhafibcMUMS\_xca[Ndlt^ojVWPm[hz\xg^Sgk`=S8|bjOSWNEKFEH_@E]nVVTXJNdP[Z{gsCk7LSXLUa_Qi[PUO]Wjc\HxmWL^|pF9X_cKubtjx_Y_RSQ]\YZFhDZ@ZC|B\ijaS9mXfjZoaOe\YkSqvYq]XUXMhcOoVUmJn4MIInXh|aMagQ}fh]^BRV8RthBHePUNSsyeMbyGSVlRGa?Ur4vVQGLHssENbZ_YQ\m[nYSdYfYRe]Ff_`g~SVV_]Ujq\bR`eewda`[^_^eVaj[qWU}cPRfWXmq^jsO[LF[rQoWLpl[aOrr`][\`kYI~UfaJbgDfi_dz]uGaCWS\av`__wZalIg[Sk]Tzxg2dWlli?fxYtxZaHZ]SgjiQVUNe`X^kijunqr[{`VRVVMyaZRc`A`loWY[{`aPplUUlFoE8Vqg`oiWV`r_kVMUapd_OZ]jJaW[jYdJ[_hWmgh`IcVaeSa_[RdZK[dN^e]jfhT\|wIiYOnWYOe_yZga_nnLja]S]Z]n_eXks\npeS_cQbSRPsKQ_QVVpWW?jq_MZdRaY\qiUVHVeNT`ay[]^dSn^\]bIVkepXgW_jPje;`s`w^^X[pfJneYRrxLmQRklThVb^c`oj]rinOgZRhaVgrm]DLdqOg|KeijbhThi_]YjWFjj`P_Qen`jOUkUUuc_gpd`k^]d]p[gZS`T`\ZqsiVsm`i\cT{hSoz^m\iiZfbprmjh`ffTffUcPiY\[T]]WZjos]`fiswizSHmgjsPicffRj^me]^^rSydifj`dUYLI`S[OX_f]ZYZmYYk6Ve}gNjLPKZUeHMvdgZUXJEOisVkovEenaqJJ\njEts^7RLRKr]fn][@_m[u=eT[_UOicqZi7tdRTVn_faiVcLaqpr_RX[[fQ_[WLwfJyO~z_QPl_dycR[HkMTNnYNzQqcdbbgmPX]QYGPdiSis=c\_nzHnRRt;JJ{ExXd^aiKtVNSNQULHXjaW`^nTcVXL`OXhTTSXXG@~xf_TXXjLeSfYLTkiL_v`DXfpWc||TA^YEETzZTQQwxLcnc>Chokn^j,hT_R[>PYAle\eV_eBQdVnDj\XBObc6n|dKO^f`\KamqYFIs}jd\fabwSiLt}bVx`jaLmgguMKchgkFaW?UQuS[>eFI\r|ph[liUXcmd^RhWb`UqTreZdvGbrBagS^hVeY{i\pZ`\|iZ^QG{NlkPYmugwlRiMUiYabnrUe@UyarZS[NRqJVN`d]^jdRf^qtbe~TqXQ6`keZGcvgpTlaEffYujmdZeOsbjRLPJPlUbkraa]dtfH[fdYoo]k[^p]mg^tcetYjyncVU9;Zu_qeMhX_fnMWX_duV][PM]jkSae`J[\RnTpHtUwcA^gXPrXeh^nJT_ik}\[hXZ\j^]`PUmuqw]eXyqn_^YY`zuzZwSnbhGWd^rjib}e\_LQeS]^pr`dgiWV\`llo\[PTjVkLtO^^jS]Og_guV]VYdoVGZzbvtSZf_gbUarUdtQeE[K_Qel`MZY]YHPkjDQUOjmQbSF`a|gwdVma{\lVbUp`f[dZfSh]ff[a4KQSZjazgIW\\ediZSqZ[TmZaJSuXm]x]TKe[dCCldPgRYlb^iHL]hCc`Y]i`fueckqdiIbQ]PSsdScRegi\skoRyJ|^jbNFfb8sI`IkzymQQO_lsUe`c=pN^aRWV\mnBIR]tVhb8YtyhcZvaS_oja[meOmgqgan[WV_xOe\bne^IZ]bJjzYE^Kug^}^[dMShbWRQkVy]^ph_ZdhjjNRksrmlEcbkv[^ixYSag[`eLwmkt{FlU`PQfL=dkfNe[aUhWtXzggsshdcQalvR^{gaEe]Z\RN{jw_m\qfQ`]UQG_RdnkxVRdXS|eea_\ddeWfv`N`b_KXUv[XS]hcbVdhrldbm`VgqcBjfNWeejc_dvYfccbr[XWj[]\\X[K\kcg[iQSf_akR\kxRbfj{agrMgYnZ[_b]`nQecpTHqp_[RUqkZdZZeScZY][YYTQaSeSqJlQdfTcM_iZoVkbPSb\gP|ZeY_qc^cnfgYYmdnUijG^\qXN_egmhkof{][d\paHgZiceTJSWY`H\qiDGTW`c\ePUahoKXa_[t\jhcYphUcgazfQ]eB_`bYWahIRCaWbQd[ggnFg^Yt`bh_]d^e^`]na}Re_kNkmh[`Z\]ejTQ\sdX|LUcZr\^`u[jeXMRQU]JTggg]`llwjRi_pfcgeZ`pQYu`h[W`b`kukWf`UWZO^xSV^KZxQfbLh]gFbkJmd^__\\achgaRcb\h^a_[HjW_fh?MK`]MZRoziqoHo|]Thwr]NQXq[_geZ`H\MT]eddt]YIOaQVdxWPWjse]p``jb\N|UfqeRUjWfpXPebdR`beT^gU`hhs\tbWWrkPRU|JUUpZhaIPond\c{OjGY`Ya]dQCKlTbX;Q`_UWsietgjTfi\wlwcbhkeZcVOxai]Ri`CYrT_cRUbl\IeNf\_XVJPkPrQtei[TTpbxehhF^^h_@o^Rt]xcdi\f_NcgVN`ogl]ayVYNbu^Y^fctdtc_aTZRYeQd`p?eifjO\\^hiSY[ZaDS`WfHvel^VYMe`fbddZViK]j`[fQT[]YZtkbe8de\kOihld_mnd_fcQYLvmdpoe}Mm}luH_VoTf_b_`ygRFXmguQpKo`a_Ou[h\bn]Dc\aciwOjgG\IkYLfa4gvdepYUd}Qwdl[lzWw[b[TQr\ru\JRZkDewyU[gZ5OhwV^S[Q`_h_ces^_cchUQA^SkQoC[iShYNbyNiKLzS[ZiKTmzqpkNbstmb\u]dXZ_B`UediBqizQgK\vWlQwW_|o|AIzMci{PbSssGUYYflL^U6pjohTK^gfNbVTYC`\iiipWLUXm\WZu^Wmg[tR9ao?[[nyPn^hWxgidXg/\S_R_ZvSKXaLvy[GXg`eYZ_cYR\dTsmarZDpodRUI]N_S\joRpcZQgbbJl_MOOzJbHbDkWoPpVHYgYSW[|GHph{eOX_X_jiij[OccJdWg`eT^TfPvE_`y`xV`XfZWRiVK\R\cjQbZdfj[]^^h`Y\UdkJfl]VR]^U]e_KlXFP^[b_ui^TWmWXp^Ya]BMkdePcYSfUfj[igSbk[ewPtae]iS^`Y_h]\iY_ml\df`\^q_ksowXZS[hog[dc\}qmjgbMeVtlfWbZd]\[opTh_bd\^xdjYcW]ljpp]_iJf[^dg[_MdSka`VhYlY`UQr\dGcdZP\suf_]c]{Q\TZUhnVzUXmRvzqOw{eKpRaNgkP?qNOWWXO^dojJ[UNJm^]aNQzi[wl~^BeqeyeW\}dNTPyrSHHO@}V~aDt]c[zLDK6^sYWaEA{PaoL`iZUCYKqxpt}uYYgymoXBsdhfRYiGeTs[JPYkxff]avDM]iYQ=sq^PtPSTdb\g`MRm]sk}XGM{oXWUBGGjY?JVem[:SVGZ_BU^W_i`U]jY\|i`=Tpr;QViV[MroRHdPrqw,PPs{{?tS1\mjGQ^M>eLIqRdWfF_RGNpM[g\2]ulFSBk=ldJ^\Q{U^arBuT^mqUfSxRfytXVeSv]6bg6aTWEeZX~Jr[bVb@DdEie^^Uc\izwZ_S[QNXZYQgleqf[aecYpTacQ`Pk`_jlbZccaYWQlDwRr^]_ZT[bOsgcXURekfcbVjMpXjdk`aptd\NbW`m\_[YvidclbckPfYY`hWGfc[^jYI^ZpSrkaqcVW\bWtZarfeLcj^iPqPQafi`Z_o^PbXdN_peUbn^q_RbWQJfjf`Ige?`g[`PYZ_h]SijKj^n^X`mWaWdlbdV\iZV[gYe[VYm[cgNeVi]`X_ZZOezaXiehmbafW\VQbKj]lgkfNYacsZfdSW^SQybcOm[ZwMQdrsU_]qt`ajnW\o_OWS?acjWlqautqVbncBY{SgTJV\\MDY]]]\oSn{MeTOicfYEdZXcigYqfNV\@aOk]JXq:XeYytaTt`YLYP;cdeR{d][fYn[gdQbbS?rgqSNLLzR_{uZvpTlZLdsQdR\vXeYhi3vtYaAEST\gV_giUbIWYqsVUkTe/cnTwIIc`YtN)QtNclWkfg^gr`qj[\ONXp^QNDa_kPYnCH]o]Jgmy\YreolKNtsamjkdQROccshU\]bplLjZdwQmdphNb]rrU[wa3uqWLIMDQlpY\}aaoQh`k`r\mBjRmzYlbyTqU`O\oy\SaJa@Pr^f}yDbeL~gc_slI]pZcxPsXXCN_^fpAuhK=wzzByOnuOMRUewrx\xdnh`Jth[TXN\zSIUrmr^MySBEPMcEQPx^Wce^ZWWdIcimgh[~3RVYYRkLxp^[bpK\}\jdWc[Wnj5Ob_l._h[maW\ty>ap\dMvH)ZHF]kgYg_rZVLPScddjQ{oep?doaVnZ;b@\Jj;\LR]`VOhNO^Y^qnFlL^hH`ZPYX\xrYgZVhUKafXVgrga_^PiIUQfBUe^a[]KbvcZFXLqfJ}mbN_lHii\]G7]\XIj]OQgVZr?YanT\^^>k[TcgjNj{sgk\YWge[Xhlt[RGZQZpip[[Td`CgXhfLFvapM\i]~MWPsY]`Sdds`M`iMSMp^mXSS|ddkKSXjcoa[S^c``b{WhZm[qdixTeTki^BhZnhHTadcWqugF\WUsUXt^NgWkrkS`ijeWQd`dgVvCVbLiRk\R\TPgcN:odiu~SyiLju^[=s[kg\GJnmanMXoaX[gR]e]X_UIla[vsiK^LSX_VgbfinFx`WZfkouhdt\kjS^m}aO{WbvYhQZxMGfrVP\[ijb\_\GZSQNe[tlz\da^yPYjdMaYqJrNhAtDiWZ[c[yalevXtne_iIkaWPgjVo]VqfZkf`TsaEQjjOlEYcGPagiXErgzdkIRcvlSJTD]g[Zcqi]mYlk^UYPzhCp[^is^ia_[}f\RdmK]pde[AIXPSLuaIollWMaN}Qc\YYViRPx_cZjhZ_mT\_e_[XY`dbdeuS`[^krcUhWXPXWLsNV]YWPVoe_eXhmi|ft`ciwhck`A]cKStklWMdY[tQkDgYohjQRduYSVefqnXfLsVX_mrSVe[k;exm\TkR`jOfdVbt]qf\fT]c^?bXT]_mXUk`[uh`VXju\Kc_heb_SZgfk]Tog[ce^dtdLWMW^]X\X\qplkGyGkJ\gaceVu`Xpj`[|HofW[bb`_aVe\VYh^ORc^rzXiemAs[VVS_\dgi]Yld`Yemnec@jm]mp_eKc_TdbYWXUpgdZjex^mfPledafaagdTaOHXx[sUYZVYVHrrT^T`zLkYzM`ApaaF`d_dmhmIkNgXUV`hjG]e[VWpW`tbLgQbuLeIgL9aE;conwV\dtkjWbi\TxdJWsNnLphQDY]lg`rcd`mldQh__[^WaoY`]iZar`iZM\bbrofjN^R_GUZ|ePqXcpXj`VoZ^VT`HSmMlbVncoJ`ojVSY^vbvsYFgtsxJuaixMPu~@Ub?|`Mcg}LMG{iNoKU`ERCL_TRFRDjEY^guqBteU\h[{Hhftiur_RD~JfdZQ\kd^]S}jn[\`l\]M=\itXSsddO``lO_jMpM]Wp1_H}^SCq]jBjS|QYa^i^U`[WNQd__ZKxaNcpRc`T\h;dix\YvKt\r>OqpwyomiWaR]WkW`uUboc\uudbRhbVjgne_feYxvYslle^~kV^cdRMniibmaMXR_^Y~fm[xj`SpYeWjahhcWcg_`HgZWbVd]^c\\oehNW_N\kmTQdmXi]_ngWIgViiqelggglWSj[gJb]rVq]mEUSmeQnVrkun[r^ecHT\X`V{SceZgV}iK\XsqZdoXhgwkkjw[i]hxkXehP~XYdRPfpa\YcCPj\idv]^ZNlknYbViYVJh7\hE@}ljmd[p\kd}`PLUtdO>NWumf]g?k\p[hW^bm\XmvI|cawd`f_aOikTd]SuQhGViMVeN[mRkPNJ^^hc[a_qh{Ie`E|~u]ZEmcoKcK^`rT[Yoe[Pk]XIpd]aMbtZqZRPeQg\W`T^R`|gf`Ur^YYY`ZrVJakNWStbzoY_rhTQX94U_PmBGb\]WgIjkOdNfY@m^wZ[iROj`\eldtlT`{[]UlK\tcYi`\oeQSQw]Bm^a^ldmqmW\j]EdZdPZ\]ZQuK|dNnjPUuPh]m5WYVvaiZYLnVdb^dUZTHWZkU[X_\cr^Xr{LYkkMvHkwJVj\u?kjWl7[]jlnTlvRjxlZmWOeaY_JRzXNZLWSgkseZXsGOYbRg}ebbXRnjVglbe~lpFgcfpid]T\]cZ_gjolir_RtnVlUhQi_PQsxyce^gknXYnfZn`jmb`RljaewYZW`U[fTdZeego\rgjQlC[mTbVd[X`[n_cGf^_ekLcbbVob_ockyYQWTekVPoWogcbn^]XNWbqX\dVfcTWUvM[_MZn^SXWkfzcaYMdQf]ezb`afj_dg^`^oijS\]ZY]|[bU_XiaxXKdnqgetxsppO|]J`sUlSYZdaffjc>A`M`TY\iUg`LlzRh`TPS^fgSeRJ`cjg^Y]eeQdQabP`dV^}cfmbgq_ZZsh_NtLs`\dzXQ[Y_R\YobVYaP]ShsYITjbYW]rdjLdVRPVRXibY\RpO4mQXKXjicIdTgZ`EoUhG^nIZ]GxJq8ScQDb|mDS>imYXYXaai[zS\MQiSQqTrjXfs^`Y\mjfgX[lpXQYpbka{jnOgT]=JMkbNkQmt]_fNt|]biWaT^JJU[LQdpNZN}LSf\qBhX_NcuNB[ZaUjUOp_kXOfXg\`ViLOKdBX|^az[cDe]ca\acckf\}rf\Wm~VnL][Vm[Lm^[Yij{hnVunWcLWMajYOos`d^t[mGQdhqOx^`rTUYlEKjeuTK[h]wPigj`SwPkWi\WTmKfcNZXw\c[V_kjKf_\WYgmHfgO\WUOVZkkVpGgnhvvab[htZ^wxmydcwcX~[hSeKFrHj7Ytefihr\<[@{[t^XakcSY^M`OYr=eh]VDtP{fN{TTU@lhj`IT7jmZlbMgc\[huIAPKuXWehqnUbcLNyyWU\}]@huZVXNAWZYVWh=jjUT[ffR`HCVK_^h\r]qaKagXWV`hxiEx`Os`PO\WX|pYwjZi|UU\T_lhfmiqgKOvNT_KgOf^ctXTYijWqiceza^dd]]a[`Ne]NcRlrqnTqlfr[iaFdYZf_]^Z`WaenPeofZXXplnXiM`mY{`cfQqbvVzWVqbTXey[`ughotheq[[^KV}^rcgcz_s@V]KiYemSu_mZYvYgwcaaUeUnXiOewkTc\VUWYRuVsvL`hW\P`UK\oRaagXx_Y[j]`r^}]ckQZu_^@[kdZ]Yo^jnXb__vj{X^jam^`Vcn_fDNajSgXBhVWl^fXUG[zzkNLcSvibvcxiYjdiZakQZ^wWbmcTXq]jlYeXXHS[b`mVbc^affgX_`[eaU}TUFUpJYV?RMsHcWFaeS`Sf[Nl]k\LVPfcgDEDcb\vkacp`I^A{tW_aWTxrnvfnXaO_TYwTW_jnTECTT\YLQj]jR@gXfs_}Y_hWFfCgvqcjZicesqmfUdX_^ol[VgnodZn]TaYSaeajNGJByk[UYMmw\\lHbaWw\~^cxaqcehaMiS^cmeXSnMqsYPjgWhr]hr_bP\zrzdS@Pl]O`nPdnTVKSXbVO@b^pXlpkuhy\RSb\b{[hU]XU_seeafk]JjXjjd`^`J_VVvkK{ghnR_W}ediPv]iWdb]dfFxmXiYh_bGLbiqiTydYc^bUZdUxSXR@SaobMbful^j|lR]WgjAcEgcMvIXdX]^[R`uJ_k\MT^eSd=[}=XWVNmUubaRDNUhM^lZTYtk`ZbW[^h?S[uafRJ=gKA]HQTHyM\^bHmtbHP^]a/[{mXfeLKMFZdWJTlJMk[feXj`Ovi`Tv^mTDaTtP\keZp~eT`\kQHeve~{hfyg_fl_`fotBdg`Ogejj`s^R\{Ug`^\_g[h\rqiXZhh\iKhZP]ghnM[G[kb_lajtzphgd_3hQX|FhUim?[[_Qvc\`@cc=_`tfvecfUdP}nlS]albsghFZ]{Y{qX|IZTCiqXW`^[jph][z{^qPhRg`Rbbeded^_]TlZgQWT][dSnRo\eLZVW]W]_NWg^`ckLaga[XPLjeW\G[idWX\b[]^aedtd_Up\`AN\d`Lc[cybkOZk_oSTVyYftzY`xeWdgh\lcxWC\wewfcT]kekdU`J[c_eOf]Sgmk[OgsYXbiosJZdSSWQoZKS|_pdL_sji^YQNXqhb^cbY^d^h\YpX`kTScRcIAbo_h`Num_cfg\X]fW^ytGVYta^rde_pqfqJWXk\maaYhPgh{wovo\^ta`bavc[MsggK_R`faLMi^U_pyBGXatkvAZ]Qfd]QHZ[]^pnODShnTPwfjt_hi]yd~Ob\_NSuMfjnribUQ{C]YXGqUqrJXag\vTbyV]h[bk||QVmeijSgWohwVad^gua^nUr\OaZi\Z~YUVdl`ra[mcRBYcBV]lKZWwn\m_SqJlD``c]Yhq^QUhV\J~Xna_]esMe`RYmjLlWi_dVi]dekk[xwdabf[^d^fg\lB\jxWYXgSeLZ`okZ[lsllh[RjKLKm^`bqau[~nYPXaq[^vqUd\gaLXmlWwc]bUbx{^XS[[O^[]V^\fsoFv[z\eajU``_aaGm^combaXs`aZcfQZHuyca^lYi\^jZlVgkYw\[bUZrRoafOb_B[lfl]?hkdd^YN_~^FNX\k`qW__JearOYedfCVa^_OiciPVn`WdlRo`Uc\ykXcTRfTfagidXbqkNXcfmSjVUoy^Gh_sgVXXWgiYZ\Mc[aUVbYhcXc_da|wHdJ`]\tKtg_VvjZdUvWUUjcocZhk\Y[bKfSL`[Z[uSendJ`ggT{_nUbeah[^MhMZ[b][_^mdhsTPn_^\ZVbKeN]epo\ZV`XWlnVSWWnzXpTigk[cf`sU[[]ecRTYlZfO[^CXve^lilqOQik`\^^gJljigUYeeaVXtYabtiQe`kg`nStaWZ[kgr^rbWSYqZ_^ZcemahcdsoEQhhZTNWYk]`VzZegR`f^mKbT\YdQZftOXz\]z]mU[[Sr\_\\kNTU_u[p^T{SlKVMk^\^jTPXVh`hSTXg]U\mPi^dewSPdYZ|^c~n`h]ntobHZc_W]bYmZmeQZeqO[|ibJRSmY]IXwg_XTfjTf^TgZgFVidY]VaUldlndW]mVvPV^`a;p`P?QKu5P[Qi[kM^fe]mV`qRnw\_f_QNFm@O\^m^a]\bNIaMpUlbQ^mrgaXi|W\a{PSJy_iShZceTST]sYcJi^DcP_ZU^ZULcTd=[XSksapW]m[PMSSf[mhOE]~Gsi^Qmr]QlMaKaVVILVY_ZRIXMmmbq^IZRZNh^^U[d\pldOTcX[hATTs`Je{Wasjh\hMQb]VVTbzXH`pfkc`\u_hbNf`ThRUAPMnnzn^i]gVVn`diYqXXoOdeWxLQvRJdgfWkg?^eUjrd[_]ydkaf\_fBWlWjVhnlWT`j\IM__\J[eKK\Z^NU>V{_J]cUn\GZz^\K`fN~ZcvnTpa`jw@[aeXx`y\VjdiaQHJmRahV|MW_cBL_`a[dQWjOe?RDkdufRhhTO\hMF^j`ePUaenPWJ~UYvp\ciDy}Y^j]GjcIajaWgJOOTrfoJiS^`emhjpEZLcYiYr^dXStgj_1IVrSH`ZHTovgUN=oduEi|RGghBW]QR`orXit`bMRcoW#,g[lSrYeT`VbZdc]c\_Z`Jr]~bA?iaI\lWIe?JjEbuX]^bZnma\`QfX[[_asKlgUWiZ`]~V[D^`MZXf_dfaWQT^gPlg_opiWubpclWp\cYokjq]iPjqVWx^Zelu\iXmm^QXs[We^PZZ\b_uWgwRb^YOfu]avf6eoLvfjWZQkkH`SVYW^ZTg6^xnt^fVbcpT{h`kpd^mzsWemvMxgDOKAZ]agEdae_TceN_[p^j_Z]wf{xcpPj_fcRcwRVwZ^pQQ[^hkUgESPcLd?S>`2hfb`LixfOoKb`WMp]D[QgcdTeJbxZ3sK[OrielTtfaM]_p[DSyXZI(ed|nTedZcqTU\Hi]Rk`WsSS:P[kaiTi`ejkpoHR\'HYGqcu~Yc[jUYE[_fdwtbbcefFMLfaDp1~QHeNji^kuNuaCmzMZQTRp5eRqaYZ8NMEcPctefPiJc[i]E`mvZvQLr}MofjhsnUTv^mbhSLQgTx`f[gJdCDPXlg`dsaFVREUXXfQR_ptXbv<`aoq~alW_]Qrha][c[RQOZvpax]\brpTY}\[uU\ml}dgaX]UUjUVgqMPRbl\_Ze[nnRgh{TJcpdqYYXu^TpcoUng[W]QQcsfpWIbYe\p]gWfoVdKfZTemeWizaNIx]jdiYlu\QKqpLSgZd`]^[ZZTmoUFSo^okCKlk_x_Hjgch^kmN]_sWVZTjYN`nRQ`g\UXYfpdaUMgRseiaiZbN^Rq`YicbXwa`[W]n^mb\MFdL|h}?T@UUpQTgOlYY`m`TXd{dQa[~KYflSwD^GE\^YRVTrGQCf[WZfVZYLIDSI]eZu~~@`cMXWbe@]TeYhP\QUZ`__t\dKIXFY^s^L]XjRVXOOk^wAXzWYeQPRa_TFZD\TawZV_\aJblS`ZRVlYfwobZaIaaXR[iSAadIYNK\\qa[tfluUe`b]?agWhVqaben\lY~ai\JW^O^[amam[u`XTaHl]^LYXZZZeNhuz[X8MleWmdgbbd]qPOUM\e_gW~xOpdRf[mr_bWhXivjUpVr\RPbs{f^`_llNfUb`Rec[EAbYsScNXG[h^SMYwaUWU:hToTVHLe_IIuvnfa^wW^[afbLz^b\Tre[|[csZarjyirNBnEbHtx[gZyXciXt^\|ngeqeXmcjYcbge{OyMnqUanxPbWIXma^P\>}}B[ib{SuE`OONlfV`oucc|tmuRfa[^`L`OmWp>qeQXXkW^bnPBW4jRSbfT_R`dT?lX^_^RUs^uXmSK[afDOu[aheycdQl]^vq`TeeBgajf_VYfnaNeJIlNR{q^o\S~ZuSepepMkppgQp\M_Yw_\ZPrnqmSolaiP`QaES`]IeeHw]RfejqamFuX|dab_prl^uLxX[ZgfjM=DKQx[Tgjpce]zU`{ecAa?c,qOiAV\Vjhh[rnaJdWsusj7YwKXULcdV`jmgzft_g`dbYIjw_drefYb[n\!Y|[j{={TlMe[q^V^pHYfA[dS8ctPqpOFhz@5cdoh;d?lt[sQVJ\QUnSfb@fkoLl_jgxjfgXmMW^drKRi`qv`cncbhPReafaT`a{mVdceChaKcbSUwLNLzjZceo>elXKeOM5CCujb]d`bfMjjZNmbR{ooodka[d[W0];)iucZQhvKY_NbiYYaXe\\ng]ma`_gdX>jSZ{E}ptWpViXu^][gN[`O2YLZsinKQ`cq\W6\_BntkFCdME}GaN_:jeiDs]KQ;tuQsY]FhaYfjXbWrPSfSqiMzHYl]^{bYcZ]iYU`lau[sXmaQZeiIfa]7fcvijVLGE\XxcZ^L[BzZAwiscbmIkdi[z-kIbTU]_Q\ZoYP_LwZ|JRe}CrPIBmFM}a^r=WY=\nfpt;VPQZV\Px{oXL;dqNK|]R6jtwWSv^tk\iQlQHccVykHihjbeeU]h9egWDjWTYDVb~lJf[Sb]][M)NGqZKJ{aRb_UZY_WeG\WiBZ|aEE_]]qjHU8[TQK@]ZkWNi_Jfcjq?ISH`lb`ZibPem\MZblHKk\C]VaNJoW]KKRrNM<_WNZWQYgdfHclVH!WbHhK.iREC``WEPd8amTU\pcZ^zRjnXhK`Y[aIe^UcV]VZT_^[S]MJhoPScVOceQNRHjWUcDovU^\{hfqQSmdYc_wegUcNFayWY~VkhW_i;aKWkaeSjZiU\8]_kW?gebV^U<f{lMG?grPl_P=ZVIguivXfXuTIJYZbhiP_jYgB_mXSWHU^CVjen_dZejmGmUnEgtWe^voA^hm[]A_qO~nnI]fP`bKeM1apZYodh]fW^~lblfYSumdoWqjj]uikO\W\dh]_aIfv\PVj_Twa_R\S`_aOUlvUSCZXTp_^tScc__hHfVQ\ViQIheWROjkpWF}dw`]nhoNXpX`_maQfXo\cdP^R}g\j`qSeTb_ia]Nk[QNTVlVBicUY|RFU]LYs_TifWWZGe`pcioW\Z_Jfy`nkRa\wnehOY^peGX^cMeF\bWUhig^_Oddb`U]{]Gc[dceruNea{e[eaSRZkTdtaTtXdabu_c}\{jtlBYe|hiX`fXgHUYXaxfcwZc`]\l_ikb[yuLNKhjYK[folWc]`vaz`dgga`OAk]P_dONXirQX]_n\^UdfZTUdcY~cMpgY_X_Sa\|aZ[[\n^mXsnY\iOisX]RT_XPNfQUZPhRZpsWsnfVmcpehXjzsisHvlgeR^`yAcGRXRmOboahDtT`ZOaNmNe[jladHWXTvdolcWYmcnaonb^m[\{kob^uMp[^d[vh_]`kfU`tk`ejeNh[PicXZWYgcSkCGP\aeri[VykUgD[`rfZRSMaa[`c{[_aWPEWfqH}jrQJoeug_XS`fhpVX^i4bNVmVrV]]VVab`ce\WsXcHhhLYNZef{lp[LQrROZjMQ]i@n`]u^ZZ]O;jMUYagkV[OgXFeOfS^SNNsjQ{[]]^pil]bN[Jm[YrcSebLAiXXVUsa\IlTfuYWdavafT}YEW`X\jtS\]ecVpb]Oe_\edUggaCMe`]`^pneX_n_jZPRc^qLCdrkUgZ^hzYWhWhqVymU[_gRd`hTgRfnZpl`Vvdj``Yio^tlhSll|YZr_jZ^WiYv=Z`tKasee]fSFpk[fegl]lnT^dGp`dgeVLqYtdmqW{]HThahfn`^iZxRhjSbX[MOV\Yk^Z\VcfbhI`tm\W`ma^pMYfZ`uZgfXHGd^CkO^_|ipbfZM^wUir]dSXjWWpSHrPqTrUuPbSVWtW[dS^uh`^r]n{PmaOmlWY_AUdqI[^]``NWIUk\Q]h[_cSS^gZhGpH\GX][OL8Q_SjRY_[hh\Idd^ogRVUPmmek`x{]`aKJT`]\aoXVn`aShOihLS\l\b[ytTc[Sgt^[Pbl]Uf\j[aK]`Y_tO[oy^`ZXPsOHcrTkSke^^UEfZkhU`Y`aWn\k[NoYRkWagMPcfYhkcud`KQ__gZlqnf^KpQQdq_VefTXbpX[sScf[f]nVWWw}Q9__iqZbSYRVb{[s`cdVj^P[FeoYosVeYmdlj[W^]ZJHbkjhJeWbdgXb_QYe~dNkV\Tb]iV`ZM:RT_U`kWO^UUceRVpMHYUkT@oULZ\UX^^YbVWZ]oVPifNnY^{XYngP[f`pcM~RSScRiNdPZ\_w~XljgKkguYQbl]R[=[WGpau[`Nj^`^c{FTIi]{ijNSkASkYlX]_RZUq_UYgYeYWKvg]GdcZd]a`i\kbTNsOgaqoF]V[OPerPr?pemhdxbSjtpNfCS`bj_zsrS[pY]o]j>hkyffccXLSedvbZdZ\YeZ`Fl]JZetjgmc^uhhi`[^QijaWpiyskSohSV]g`pbB^^itdSuej?jTTobv_ZYOnX~GjP\hiSoNdT_t[ctSbofbbYWgYUeWjQmlfg?k{ciPWcXpVdtMhj_pawcGnd^djh}jdzxiYcORTvfkWP[_rS~fek_TnaehWfnYqiVde}legcFUlgXw{]p^hI^pz~Bg}\}YNIJAaaoZJ_vEVpncpLo[_^pkO]d]li^fehbqb\rbMg@fRvw`q\`hoNoTUh[W{R\ez[b^\qj[vQ\k\mNdjqZoxadXh]eY~VW^wVbcbsVihPfRiUUxpkiY\l\gOaobce\btRzVWsXslXl_Yigofloaz\F\O_Qlyezzi\[sVDgsU_K_tuTckSK`VmahQxtQQu8_RHaYovOPOngf@c]uQYPXWfb[[:\Z^ZYdiIamg][UVf{QFnZERXhOfZ\`/sphIX\esYke`ebVFRz``h?\CbY^YUgSlpE^Mdj]u^eKbaxRaeVs_[XoNpbbNYehZU`X`Xa_ZiY[_VQjlTi`Xn]pnYY`iWl^_`\RZsYfFfcO[`[bbUXX[[W_lueT`m`iWpZgZOXonceZ[naWV_TZuYQunWKhXfijRgkkYTV^gdgs^lQ\SceuqRZil]dVcLp`YfWq`TmfRglnd`ndNgMT^Zc`f]g\rThMRULgcalXrSYT\Qm[nZM]dgVgV^Lgch[rFdYKSl?Ip_`srTgYbSX][\i[wta`T@gZOThbc``lXfzR]RPoVZ`cx]WPQkSc\_]IUiqdvci_cYZ`gfO[EEeTLV_`[]VnTYc_ZQVXXdcaJ{O\]JRT^Rgi^hSQX\eP~WPf`TVW`hjUM]PzS]\[T[S|[h^W_\Z[YSVXLxpW^ldWiXaaoXmjW\aa\bqme]et\]ugQkguT\fQcYQhSHfRdWh_eja}XnfiV`OidDgW}K_eTEgWWj[bb_rgSZfYkjoVrjq_\Y[TZqR^Vs]XI]kQweVShaaRickZg_mTffdbeae`SOKYWf[\a_S`lLyZnjdWjPl^emTbySXaN`RpW]ok]uUYl^Re]jZOUgSaRQ[cpZVdThTmt[W^PfaoIbXf[b_Yw^dZibp{]aK`daPc\\OwbYW_am[_QtaLN_jmajLO^X^ogVdv_eV\UW`i`koghRbU}gSioUSU]XnTbdrZoRnNZk\hUth]c^_e_fha_djmY[qm^^p]QLRafQMZvYZYHZcenhj_cb__fcjRc_s`k{[^KielQj]lj\Z_mgZVX`^^cSW^nfrgNZxnh^WgoPggt`j_\cUi`hg\RaLb~PcYaXY`NpZZmcheNrX^Weno\WWjl\m\h{iOMkMacokU[]a]kqQmnZfW_OHl`hS_e_cqqfVSchVdaH[Og_`WcYga|djrc`fY[m_WSQjqa]HTdarmtrW[]c\epXSWTicsZllecCSoYmhcc^a^kT`dU^ZJctUSl_hYkrirlTdZet^\{Yl`}nn_gd``zoaicYcfjs]`zlnb_YWsi_kdoLi]eQjcdYf]WUTX^PSZWhigej[pkXkXSZfilmzfTW[\XYhh[]jitelOqeQ_FewbrrP\`_]XoYc`dYOm_fujZqXtLRdnffHzoXdVGdNZ[U_KjYd^jiT^V_Tc`hPVjiRXk[skhce[XLabgpZaoZi_T^`Uf___peleZVLnaarYNZ:ZapVrfQfGU_dakeU\^ffbU`jYXUjWKZe^XaTYN}LaW^oToKCQIs}gbdmhSgSN]e`edajS]][VRnS[_xghyQaw\`^[anZJZUTXOZfRlLXdtUUWaIWNdfhBgaZcaRNk|\a_]M[_lVH`kRJNod`]2QHhg`JTKHGoQnTGSS4ldfXTfL`U]pUv^Ydi]Kdeu`NFfnL_WL_ha?eBtRkg^lWUxpI\]Wga|NWl_ewgT[NZgMq\\P`aSncPeNe\bkZsgijN}n\T`TRJ_PMCNisRYbS[TcL]GOspj_cKbRdTZSGi]o`WUUZT_lsV]^Z`FClYWU]gTceZPpZg_rojZidMVdKG]f^Lb^{mN`bZL^^g{MTtO]ikVgg`XbPPMduVknR`dDNzYS|`lmsrMGP[_[Oeh_anXN\NYgZk[c_lPlbco\\QklM^]`]rgg\\H>ial_]snnQe[llW\cLxocbOjuSijunMV]Yo][kU^[~Wc]d[Rdnl]^]]][WdqOl^zrfcfZag`^QIej[slcba`bYK}?\s_\WRao[Sy]v]ikThiidJS^aaijRWk`RTS[`i[\gaPfUPKovX^f`IHbob`ZTaXWVVhd\qU_mPJ\feFibQKYnhVKTjec[bpgzK`rKlPyxCM`Q\ofN]\IR\nflX`mRwW`Pdnl_a^XFNVjU]V[Mmcmk\uiZqXbYJVJ]a{VigP[PXgYo}`Pe]Wc_YJfioZdkq]ohNzaQistS\fH]OQtQsTZkhhVaa_vbV_yejZQ\uT]u}jR{QQjbZdVxagVdonnWWTXi^NndKXe`L]Ei][lbdMu`jT@g^PhaRM_K}nuWblVhI]iRZY]}PwW^Kg\oK`ROgZJYqifsLtiZPYoROryQ`ZX`[NZXwTGaiZWn[oSe^dWbZ^OWb8R]XVdwTYc{Ulr\bQyjboltpg_\[ydn^Xe_mam[U`l^[QcptmXbarVRraXVY^Z'`B_Z_AtoSNd`KQVZf_YDUdkIt_ndy]riz]maL[?PoVM~gKj_S^fb@hWVam|^d]nEse_?KYieti[\ZmWMyzUbIlmoXT_UdVeWBhwab`usmigTyEl\S]vb{fk]ohmXrnTv\uEYOgWXPs_[Nf\QSXmZWYWaP_Pt`qDoUpi[]Upc`Ti^^YdiYJe`VYVdKd\Qab_T^\]x`a]th]VYKZz[Uicaj[eWyGgdqg^R^dSIae^Y`RcsSq`_h\]Nr`pecg\On_Whxnj^edSZ][`{aY]]gajYoR`Tf]SVt]bY_TugASlUi]Y_\VcjogVhehzieG``SqUmXlPfZZ]fmZV`ZQacy[Wg[dktYcZaJ[V^_\enNnaL_adcncemXarX`M_^tURRJjb[NrgpYUbfbaZMZ^XaabRhY|OnoSnc^XXU]Pn~]ZEp\berxNZ|XRh\|VVPqK^gpu\ZawUurZR\gziSV`aj_QcbXp]Y{TmiacKXaicT]{Y`yVYOm\T`_z^g^MX`^^YccQoROg\lcvRd]gana^cV]qP`gYP]AN]w_\VSjy[nZ_UXzdT\NbM^gZasSu\YT]R;[\bkbT_ZnMYRf^\`]bId[[Ton]XY]^WRvif_fSZuYZ{XiXJY^^UIOeue^xDfbjN\eVf\TRqbm~]^WgjgWeCShcyHTRjci_KgfdGSrqJOhN}^g;>ddIVcmoWqzufx|H`LYaenggTjV^vjS\mni\^cbffkiLYU_T`YVmbhqg_b^L`cTZri^q^gY]j_]hidTbmQ`}l[\dXWo_etfrclsiaXXalOlc]fOavwS[mKjb[ajVYT`SY]odZlaNNXRYIcVUPN\gomkk]`nfnLZ{RnmmsUxWI`fbh]UN[W[ORqOs^hBXeZf\bgMhSRhefjP]_S`qbt`^Lw\ph:e]_^jybnj[h:hlnvj_wUbcNj_UVm]gwtk_g\\hsshezlZTfRibXXrRiaFu^aWN\U[wfaXbXcalctmHdKUajaVhlxTduqhqUe\[Wjjb4iua5^\g^^dqelSV]qlka^GgdXfhWTbejlnm[O_dhRZR`lc`dioZHXYkTaRW^q[gbR\q_hVy^sNaLV_`ifiapuh_XwUY^c]NX]TvolsjMbgcreerdNiUj\fbSs_T`dPp[ZibdQOi_MhhHedewafdfc`j`eP`VE]tb]XpJpgbV]]YN_l`cSYcYh^]jfTv^P[j_dZcYae^p`fc]\kk}_j]rcRPXW^i`iM^d_rtXQV[YlaWSpGRVfiZwUnOoqTs>Ni\]YlVTXmWw`ho`bgjmf^LoPVzS\|buWjSpWgdWUeNocddIkTVWQ_jQcT]ea`r`]Ri]NIjjm\b[`aX\`RT[b_UR_a_plkd}gffKmQUD__gUIv`\YLZ`gUpgRY_cbLWce[XZR``dEbjRNdW[U?Zx^edR[RiQ`bb^cn5]_T}\baasSDZU`_JZ[[POMI|^YlPh\ifQYuQPm_VWbffVWovxbDh\[_kZdXbbmfaR[ohWqQYp{Pla;S`cXrj[[RSQCeU`XX[h~lMU`VegaPYXj{dN]ieLe_^Gi=GS^^^OhVWXgM`VZHa[agf\9^NIQVzXqDXTZwa_PSbeUaRglahaYffQaLi\S`VH]k^tP\Vh]kA\Ye[Msyadq}fwRjmPlXN\hZk`XfuNwM`YjagY^ciNa^fk^MbQuSZe`hYnqciqgQjWhhmYYaGj\aYnkg_O_ZvxUcXUbTa\VdSdhgskscWpksiH^nf`N^`qYbcrakfbUla`Zp_`WfuiexbXT]cSdJKeIVMYT^SofcVjkdcTe[TFfQIWldOckjXaY_iR^]eep]^bk`dErVN_THx]\aY_]QYvbfNNZXqfyVY_FZaQTj:VhRX^]fUNL`cZRhQ]]h[Rele\c[rq_Yc`kiURS^RZH]aj^eY[-fSeoNYl`aKSlpJMQbdeJ^`>X[UYfrWnNcV|fe{l_Mn[b`X`^jVUoOTo8_TeUlbQ[oFj\W[Vwk{TV]P|=idZi\uW[XPwERrQdcdcbHeaORmLZPT`chTpgWbCbV~`PR\eUY\\fNYSkT^T_hssfPOsaTpg^Miisw]YPc\d]FOtRQFdxqVI^b]_RjbNf`ewujiRiigrNX`QGv__maiUF}^<_Yi`yWa]Yke^VugmDk[ebQ]\Z[^iTm~WPI^QVafj[Vfe^UX\`jLJra_cK}_YcS_mt``\Piki}VJ^[OXgVHVgbhWWRJnbSjmUNelXVd`h_vaY[kf^O[_dkMLYXZhibdBW{ycMZWQgX_[[kqFlOCd\KQ[bomXla\SnH\MMVkf]VtbgQpdI^nIbpgUC}T[[Ua^oh\qdYGbe^ISb]XL[CrXc^Q_VjfPIj^eZPSoj`ZUj]g[acoe[XYalb`bqla\j]ZhiWMYNa{SXxkWPc\]NLRVS]WOZfUKI[TgcdctRsjjgDcjbRd]XTobhqTQgdPjekTb][^^kTTYd]\X[`WMg_nojd^tXae[beoqpnc[afZs^kZdMb\c_hQRXf^^y`[wZqmZcXUg\gZ^``cdcrnd|P\Pq_PRlU^iY[YPb:S_ujX]S`KwRg^b\{VlXXlkSZX_^`5Dh_J`h]XvZZ\PX]]dZhdTQcog\\WO[UVyK\Sg[hkMlX`YXgGaWUXi{lbped?gbrf\QMRjfc]]\mZY_bd`na`iWTfxROi`mRgLdTPUgaQl[[dL]iqUZbuuchb^_LUSZiEkn[f]Tajfaa]ehykZm\HPtagYCSWgYod[\dN]ZdVb`M\k1SRgh^_Z[Yfbm`cdNUaZX[d_dYJViUZeV]@dhc^VafUOZY`wjRRYSZ\MdOOsdZUf@[SSepaUKayQSW[WLeXJNjXVe[VXfol\\GZykQqSYJYNZW^VapST\lOb\[bK|]SjQjc]_ndm_KNhdQV\JObRmN[jBUaw>gQXVNeWQr^\oSYgKagMOn[ek`R_J~[i|KWuyOWjlYC_bhKpiXhcy\Yh\DuEUfmXgN^Sd^VOgiS\JXffXnedX\|D}oXZbh]SSVbh}VPbdZ[Vdkh|`ZWx[z\zgSoRjNQXmcSb]oYMVW`jJif\Yt{XcSc]Zb`hU`ioZX_UWQVZURcSsUqmI]q^hWOqiuZhZaDiTK_rTqcjV_rb]XZ_i_^`MDjXWWca]f\eWj`WpYc\XPTOf^p{s`Mh^[hVR[WWNa_hvppO_jkdsi`HYVphZy[^\Y^cTdpWVllI]\\bd^Na]e=yUHMZaSWdfV_qZfKfhWTV]cmb^HS\[MIZ]X^uD\`oH^]\TcSOvT`cYme]P\|Yht`]`ejigonbPPigSdPnh^lii^_^le[g@gSg`bMU^Oahv`Rf^q\SE{jnZbgl{]SYlSg]NePZphT\WeGXUfWihdKJeXnlmWaN[\q_zYUs]hStuPhdh[^h\`J_gsQRk]l`fWYSJa[iWbgTpOTQfWXLrj]eo[yY\ZNjOcJMtkXkCllkZLZhVHwYaDphgKVTQP\K_Tq^nR|c_a[S]q`XQqPOPfdKRfGc]\[@\}eaRlOjTmc\RnBQxdfbigUoUZO]cl\uXNbfe`~Ly\_WNa]TbWT_ni|VhHWcIsx[eYHjqNFsXfKd\]ubYk[W@JZf^^yn=naL\wfkk[^_jqqxUZti_dH]ZdN[q\Sh[ZPIS@^ie/r|?_`QI]eEYhRYlEnOLPoVlfe\dh_jyYeNr[nkdVa]paGGghyMWb2yabhetkhcWvtJC`bVKOmoo[PQNrr^IbQSBXgY^NLZbh]HTwU]m]O{J\aQbs\ePMOU^RkIhVNgXoiDsghVgRQgJde^fbqQjS}zdfjUYaYda\g^^iPRStZ\fU`UQkUF7mkVYlJhT_hp\iaWLmfgSbVcvX]dSj^ZysWWTjein^WSegUemUb_UaUaXVc\n_cbp\S\XnQg^tV]dqPYgXrNzh[]uKYT[dRacYmefp\e[UTUifXcVsajeCIXYQ]iyxeyfgLjbUhgrQP\efmaSkIWQScYeUNY\cTVMF~g]`RXlYlzc^cocWfybNQS^ldVjkra]WXhoD^_bY^XVSXhbibXlOS[fjl}LdQLWSp^\Z\`Omz^fXiG\^PbgdOOigdU\Ycwpaim^XYPY]mjxKVkTbgpaOYGiiZY[bSL`LZk\`UVdf^]YZZehbV`bZmUwTbkPYSJVU{\xWai]pb{j_ghkrl`bdpx}QYkeZabhKc^lwf`Q]j``bvcQaUJ\|p`c\camdYLSaEBPf\d{JYdMbk_ORvSpao[RU\l^c]tTinrmK\{c]zxGDocC_ia^]dicWPdWZai]RaTmoaGjLhWONTX_\fjfki{kUmctPfjyUH_\cTh`]YL\a^Zgmk[QsKgNJlt[RQ/\ba^b`ad_XYr^Ml^[P^dVhcXRd^hpkbrVc_kNbahfQUY[_dJw`^tYYhkVnaRXkT\jPXe\aKd`bjn`T_tnyQ\q\h[]nc[ZO[cY`t_h[s]haaklXYiilL^RcSf^p^TfaOPXhIWgSg`xkOU^zZsYcNfpc\bXRl^jpdaX\pa^^XiJnb]SB~l_gn]tQOh[va[HPg]s\P_E^RaVRV`^kXSU_S^X`av[ySXeSghR\[f_dZ]`}ZPZa`w^DV`zZK;Midow[kW[bTaQUq^VheQgk]h\\iZqWZcoVWdiTe_Finf_^UQfyRUXXPs\gcZeXO_YbbF=[`^Zrhja[`]gRV^MgOYiXtLNZbD\dVJbWaW[pLTi]PRfe[L[f9Qg_BMUanHAhMZi]Gcs^^UkSQfcZaMR^c_fROeifb_slvO`Lkoa`I^n~N~T]yh]SZ^U^d]FSU_jYuJ[uYclaZ`VeJsj_UD]WB^Slgij\Ytaem`XL\aSufAbTk\crcsnP\k]hqLOJSb?gT\{CKebKebQejlP_]dtOTjR[eOoWH`_SVauSN@udQTPfn^naizsoRr\iG[i`hc`d_Lyf]nY`\R]WcW\befNN\H\b~_MtkMZ`T\MY]_gfjXfhkgjT[xbWnU`YXeS[lhY^aamQ\sV[qWb]]ZhX^NOU\mrkf\Ziie\s`Sbg^^T_a[^]\]LZl\cI`igT`Mctaf`^^Zb]]QQi[fiXdM]kOzPU]F\_Vj[fbth`uYS|sV^_|aWVbZdZ\iafV;wgX^VJiN\xioaQZaXXJlsUPk~obNeaVgY[hXdRhW[`TiwMXijdR\[Ecd|h|CZLhTOngbl[adJZlaUueowI^[\fbe`kWSlmYPlT^ebR]iRof\{[eWJwaSk}r_nRa\c[SkwVa^WiRrhf|p^UOcis_w^\I\\ITgYwocTf_L|tYYId]qehwXql_cYj_g`PhZ\UQei^i^e_Zk[Zfd^Z``\gafWV[oZlwDidXeMxnSVgtY`Zdq<{zTlceUtLUkoTbd\:`\_\aT|biOc^qbvWXL_[[`WiXwYdtYPj]rb_dZU^RWTYg]L_Vbm]ljdvUXcq4mf[RTf_^CSDc6aS[LcbL^xrUe1R*APNC=Zo8gJ]DHoDI:@jcZPw`]hXbRZ]_dl^`q[gYlttdoWWRg[\niRWnZktAySnVXMBV^hd^a\[R_`_SO_nWKSYiiejXdl[OVp\baiatMV`wMgUZj[eVPi`nQyffbcWas^kbfm_OoefUbfMR]]ew[srkWp[^YQkVeQL_wOVY^c\s_`GPQyST`Rbfpk[ukj]laJ_[[]ciR_[hbcXiWkMwFx{_iU`_oq`[}mxmFYI_huOK}iJqgYYjP_IA_aRtGen^u?]^LfPIfjtNfSdic`oQnmha_oUlz]\c_VQOirG]XxO`W[qMdJVd\n\mDZNeXizdrmexYWlPPTUe_\MQkPdScNPUOjqO{jRYvtSaVF`|_Uw_IlcIZ[m3HQj_RNjjT\`OnfVit;^b[dTt[fbcPQcPpdMmPvVVRdeRtX[wqfYkcmSNkdSsXNVXK]ycYXh\spbehajdVXW`Vp\vgdk\_osimV]uRgM]]ffnwaxT^Rp\e[rl^`aGSX~vXrhh~TQZ`[OnWZ?rb\i_gM__gf\a`YcW`e}\`cmpgbsro;dm`]j\ln\ow]ibaOy^LZmaZSXZ}NTbi_lTakva^mJYS0]^Pr`FVHOwX\>^ebSCdhQU@Jckkc\uZb[m^jkn`dY`fYG\[Y`\SHZngKR_PixZwtUAX`mceTUTr7W9Gdc^M]LzjiOvqQW\Ls|_]y]YjEa]KLV_^TZ\]McWNeU|k]lMpEMhTd[TUSW]^NX]e]fkmxhiHO@c[`YyNZhWYPoFeJci_dl~Vzkjg^bbiovthRemVi_uhyvZg>FcMT_?M[YoSiQbocZXchj_XadiPi[XX[`qSeoQPfY\sqS[_rWhhoa]j_SVlnv_Ui`jPmrkUXcoaT_^YYpX}eRRxdP3fhZkare[`Z]WcVVhqc_hagZ]N[eT_^U_`dNkU^Xwwg]_cZdvgCm_T_\`Rh]vm`|\fRmhVex]QhXc\VAjdbVhcntVoZv`_lDYk}KZqqarsgmlSTY_bhajklp\T^ldjeT^i_\d^b`iXbome\f^ugnenta{j}^L^[geWjeXZRhg}W[h`sn?_Rd`JZ[khofeVmWa[^tgf][UT=GGpal\^OmZVi_]QJ`g`uZCUr`WXsldN`IUi`_ZEqy`ToS`TbecX[RVW^rpfcei^Wk`][aWYf_^_`ccP[h[iaC^Url_SMZNkOpeCMocWhfk_P_R_IOwOUhPVOXW[^TbZ^deF`MbUWY^_fY\mdLa=`WYd[VbXe_SoTYi\HpS~j^Nc]iU\vTTjlejPFdP^ID]Khbjbe\odRe`XT^eGXc[XN=WUW^dg[WfomnVz_kebqh_qn`~_tii_R]PjjlJfCba\bbtrcUsffR[oc\_\XEWxiVcu_yV\eO[dL|bh]MjmicdbVSaGdkmarXQ~~_[Vdbm_~jexXJM`_rf8RgacRhZwWNkQNlOZ^hNFjXCU`RhCpJMdeYdXo`BVN[\\Zi_OdzWWq]CLW\WPo>c\EF][Nc_uaUU}mZYSU]\YEb]3EO~oZVp]jURCJHedcesZJa_\pSeyphZSemTcpjfEYLtDS`beGU{_SUg~ueM_`X\aK~cL`fqi`TeA\YicAZtQlbpIfh?o\^`Tc\F\p\_[T^ioc]~p_^d[^]b[YgxPt^YhumgYvGkKjf^Obm]scOTVZepjjZTmrWQS`\WmbDk]hPSZ[jPlNb\?`P`UhYaTWahOfckf[pnsR^4bPqdVmc_w]Wg^\QS~b5\beGfYN\jDcWRYih`P`}vh_f{I\s{_cXQ_n`TcV`^`Tr{bhVIjew]bshT[b][]PTJYhLfRgkWelWscUoX]h`fZ_WYZ_ZcYTXThiUq]_P^WgdOg[fc_ncnc_guagIeQbqkT]jnY\kfdggqaarwlRt]hanUXvH`_ZkPVWi_`WO`~w_ZnVkp_Q]j}_`Q^_pUoadae`iQbNnijUX^XZYcWcbmVXZ\NEOPdagAT__[w]Yaiahi`r\]cdrbllXbX^Ro]Yc]gN[ngESmUGkT[[Ye^ltnK]OHgkS>ieerSjhb`^[^QV[bblZYOUVm^aU[`^VO;eVZTWltT`OVXbZ}iiboeY[S`sZiZUjlbsR\~^K`O^MZT^Ya\XyhUJv]bRk\OaU`UL\ebWScget^v^RR\GhmaWRrOmlfI_]VY]U_NlTM\nfRTYb^dX`\gcrYY_DdoKSXhu`NcN`H_cmR~T^NYZ]chc`^eeUXhdp[thf__kUUcQTbq[Vo_pnhXUbN_XapY`jlVX{c\lYAef~^b[R]TXPcmufSXNi`f]M[aaqeowy_napgdpb[]TaOgm[mX_\iUq|UugdKycf[}M[gXSYXm^_bQbQUPvYOViM`frNiycUcUXo[^WW_cMMN`wphYkoO_D\~`ReR_\h^[gTXnYfXVRZiWY}^TUXi^SQ[On^N[jMlYuYrrnqMVoyX]aldn@TlWhakG[xQl_aNiRl]``c^\`bWw\g_m`PeX]`MljS|`J[dcW^hgimnLdZQbngedVOevVeJWnGeki{\NOV`?iVOageSgQqj_^JPgg\QXgicUWjeSeWSV[yLkpUekzvdkbUfb^^`eH^Yhle]f}ZwbxYU[UZV[ZxZ[SkhO[V]fPlnR;s\]kTiMo[i]navfd\e]KUTV[UUKTfWYmYTi[]gqi`Ue]pt[ckeUdjcgYc\RyGXgd^t\[gaardYbSZlw\UildhXPoeahi_cX\x\n=[Gff[cIWZZWP_x[bk`]]Y_ZSeL``VUh^[FzTbYSqPpXhUYc\hP[WaNmk\xM]`[VehvPfQkiPvUqjsbcjqdfMIkZesbSwbdSRrRaaMV_mqI`ZKaWEdqky\YejeUcYZi_Poc^`cVfibRUYbaURg]_fcTydffTdaJPimVHZgpUHdS`PgNWbHf]_iZy^OzePec_d{I[gUcdZiVSeP`gj\LR\ZZSsh_|DfxBMe\hdbTlciJZ]kpbYSQbhl~i\`e^QdVc\Zl[WFbR\Wm_pIjYeibbd_NtckGCjhb]]rmPpzSe^dQjF`ZSQ_]uYHGauImvIkTl_liiVG^OWWVgO6iBwNgHwcbVjTMSh[^Y\uUW0\^[Zeej_UP{^gdedJfReOM_WKYcidTVe`b]oRfP]S]g]^xpa[]OUiVce\\W_`aRVirXWlg]a|vKRZJ]bpbrdVOdgxwPwgdTjB[Yd[Vbl_]Sk{^`fedZNQboSbZ]jdcYYQ^^Ij\OWX]WZ=ic_\X\s_Pe\bP]xk[rcTzkWZPcvbNSYLLiLZTfxenSl_`gT]gbjn_NoeaYSQk=T^]WhVmqNC]\fTeLGYteWoWblZpLM^a_3dmnQTiCgka\IYNanbUe]ZJP\yVVhup\H[Th`pYaeh\a`pe[haUVZf\qYtOzTkIgUl`^LfbcWNWtpVVThganZOiWbiySWWmTWOZdbU_IX_cUKXl[U`_bnSmNlX`jda@i]Zi\ardigk`a[eNd_WeezQd``O[XUnkXFbRaf_l\gmngjOHktj\ZQdUOmm^Zcm]\n]aRYf`jmY_Z_WfQbWjWU`{mh[dfX^^Qh[Y`kVs^^S_^UfjoE`^^NroNUQOSLZuSQYR^c~`\oQZZQc@Zt]WeNnE`OaM`oD`fYfjlPoDdgD|cku_mwP~mfmeVflmb\RK_]sbb\kmSe]kSYWYTmxP`WhY]>_ckWVoUap[\d\SvpggdZ]M_jPqhgh{LdQhjMP[I_x`Pr]pVI\Xrj`[[mQmV[Yda^zibe]S_b|tcQFjan`gqcu^afcad\UmdrbYNoo#Os]]hZ\hbMr]y^\zVgckRZQNaS5afkRSb]c\VVDUheObQNG\_^eolVToSi"ibnTfhKntXka`vjSWAY]ZbV`QuubW\XNbLXThcl`]auaf~bjbMNNOSLlgUpvcKZhfPTscoZ[lkSXggXGSVcaTjd_klQ]o\\PTSXS_fXOpq_PRrcPcdSKCbHY_IIjRUPU\gPDUci^e_W9Jbkb][IVp8TgXUjPnG^xkYxeOt]QLif`ngLCMuYdg|qXCX^tgOl\YaVWjehPdHJHSz`>p\g]j_cjlnCl{_eUkWcrPcW[fUR\kXZedafKhYRe9iX}YPl\ZmyiV]gXgfRnbX]UlwEWdTZPhk=kS|QcvP`8SZISkcV|T]kpamVVPS^[Ij[chmWUjRefNckfoVkdjLtYLY`;Y`ObFuCpkb?G]LfyaReeikZfb\PgU_:`XYabj^Zb[X_FfSV?ngWcVYfysPTl[Z`ZQt_Vj\u6Den^egTWeQfRYXmV^HR~cqZyPkWbVp?ijRAZ^pB\l_iyfeVpSctd\KmdrcLbOxi\I\aBW`aDSHM`aspX1VVOTWiXB\IUHfb\R]Hhj>ZbOvfh_\eOp`S[IfofqXqcdvPb_}X[SIkVhzZZN^YQ[sf`RZHRV^]YWha~dYTTPAb]zUXn[^[X_Up[gPf=S^Jn\ia[QTsRTkwwcf^YBhYfrYZJdbqkcvRfXQhdQQTNanZlR_d\DjDgquN[`bhgXVaj`lX`[pbZTWYjaVfMWwbZXbegtpsabOkaTYOogba\^ZbthxnIvTQi]akjiKqe^\gi`SbUdZhLy_e^QeiXRIhgW]XcO[XSafWRRg[a_Zdl|VaMyqNrYvXxlOaX~RWVQiS^]opn^aSZOYe^KeVq]Bd~JgQd^]f_OrvgV\cW]gpvlW^[VrRLVmPWa\Qhdsdv\FhV]WfKFU^cW\ZI_w9gevGO;^`]]GWZ]\oYTtJT=YYduK[QeA_^JcnNJ^qaOVbsP`[JGXZdzl`V`^ib:lf`_fc[FbNPjMLX|<`V]_VT`ee^hFCYGFneo\SR__XdciOFfkQyUZVJ`K9C^bXj]sJHBicbZdiPUR`uRqQP]mb{VdSXFJkX\WfjMS^XqRpadoKhncYN\/<\GetXV{F]O[OW6WSX)_m\;[`BAOHM\VhLlKkPq;x]NGXYgaCx]~^^VK5sRGL]Se]aOR[_au7V1_UfXRQkcTU]NM2M\YZ\TJR_dKZLgHn?XC\YbPOm[?gbO_ilZGP^[WIfWjPd]YnsM[4bIJ^scls_ib\YlTSSUqTp^M7maJeOZSpj]Y_SWSWs]c[Vhtudfafk^WdYTHZWQY_STkXWagUjnXZ_X[RVmf``sl]S\ZdW\hg`bdqkXb_OVRUVVURCdcbqhe[\o_mbX_^[[Jd]QTJTQbWQiuOT[mWcZ\VafVtXnFam]_fZUO^eibblZwbap_c]hXff_z[dAid|b]hSH[S[Pb?\dtSayNd_^WlaOYiTYd\XV[hgsOK^_K\b`[SX\OPRmlG^MaS`R]dZIOi\V^]fcUWXVSxGY@VYhLMSLhp|ZpV^cKZwKT`usYIkU\QzZ^WuLVOIw_buQdunQSVhORgphaKNLScd\cOaua;ii]_cW[YRjURlZhMF[RUSb^aiNY_YrSb?ZdrYHLoceOSbjeqFd_C=^e`lYQ{nfY^nVb\`T7UOePNr]\Yf`LaTgsg_OHdXBQK\:Zl[PhQFZch_Z^\]_Sr_c@Z]VhY`Q[}k\mSQ\yyZ]eaYZQ`edt}MonkkaeZtWYqKY\qjx[WNBeeHgb\`beghUkonkkdcTROlMOMVYcqhmRxfTUy\l`=rPpba_a[[YZ}iWb^OR[e[LQMdbPY\|zQ\Tkj?URt`_tbI_XavS[[]`P_f\nd\`orghOcbOREg`gYqP]a^`gYgV\WngT]z``jeBdD[h{h_qoW}tg`IbmimoX\jHuhUjZlccdCNVIWojGgobfcGfMLYX]G_IWsESVirpQIRbcpPkgebg_`QSpWhj]bnkWp@l`ohqT_If`bPKQjPnTeJy{orAl\ghd_}g5\UX{eTbAa`fOj]nUeg]eZRZXeU[OkLoYgWRLdLlU^rlM]aNpcry]_eocOo\hW[jYgPg_\[^s[\dXZizYnVh`[MY_\sPaYkekaQe_^d`gLudXOieXMgTvk|RCaQOlaY\]]ia|ggTvWfPerWX\\hNEdW`_lceTPZ]Xbg`W[ORGJ_Y]`a`ckjvw_gmpQ_QRj\ee]_cHWbjQ`X\bPYYecjlYYq_i\acfWfNjjuh\~ea\b_Yjd^SgRIbeFZjRHaUJPiJC|cTWkT=`V@aZ9OJ_crZUWOcSciUBKO\ZKI:KDP[=N]rHLC[S^TDO[WM>f\JbQ`C^RRdGb6HX9Z`TTbK?sJKJNvD[VDaR;e9AJVUDq'eN?ZTjSVWj[caLLO^R\UVd@_TB[VKV]4SWY'Gb\BRTgLHHULt_[?OVdY^KNGh@ZhLbL>UOqKfWRwZljRtTiR\atZRVWE\gXJfbIQU~`lUqMdsmmvX\a^bZVeNyQXaThD^GOT]k`vvYmywf\TuhXuihRtZ]saqYv^eChcXtrW@caedH]bgULkoggx^fSja^[_SbLR`rdfoIMW_RpRWkpyfcnQTgixMlVkbVMrpJunj_Zx\fpj\QizfRdZpg_I^]\kf[9UdKRGf\U^fjlK[eivgN`QQ`u]Ka\NfONM[d`\fPMb`YVBama[TUe~_qNRHTiAY^RLP]XPZ^cti5OnSx\mir_abPNM}[UTTKDLP{Q^]g_IP_^]_X_`UXabeJcgaTYN`P^^]Tur^]JTV]bxS`YGicUyQ[ffYypPOmhUXRN[xv{e`YXcqjqY^OhJSYEVaT`P\`kVm[[rYdZfOSqU`HUJ\g]k^oC\WN_oPSMefc{^\p^Vr]SYYN_~oU]fg]`abgKf~XfkuajauVgfghP\hvaFT]YfJi[kNPsqbcsajeln]bZYZVPmjTL^JjUdHYi_hhAVWegWQMZZZ^hXqhg`]jR]QY\QY\TadfZpcUOSkpa_l^m__Xs_ig\[KJUZucRwdXmMSYO]jL[Yq]tbnXb]_jYrelfOf}lY[MfSblqfKTbb]`cXTeSZUNX_mRWSS^^SpgdYgf_pjvQ`bILph`pa\Z]^c_uWaca[XK_iPLlfimUaTfpZRbVZpVMa]tdWigclpd\TXYo}TeWaqgacVSE}exVcXSfoJi_[pdcnOgNj`bkwl]pRWp]`\h]fgXNZ[tbpzfp]_dUd]O^mbZihgvoYbNgUaT[MiOplf`_VP_`^O^LReWmT^f^pfmTU\aj]R`f_pgernZch_kR]_f^oZ^X~ybMRZa]P_XXe]_inj]iaWdSp_^[rcStza\bfsd\p\Z\Tlh[lomPnXku^cdlX__ahXmU^jf^X[MsXWhp_xh[imlvfo`cWdckcXgSphZd\]]`lUS[gqUZ\Ud_[g_hcgc\LK^wVWQ\o[jVf^VckffjUXhZpL^f_b_S\`dr[]\Xd}tcM]\twrqqs}}vxx`rZvnvkngYdklnevi||klnz~zo}zokhilsk}p~o~yhljbf{ovryluni_wrms|vynyeZxwm|m|xurqiuulhel~xjptt|oz]ttoutqmafth|zjzrmkbjwtsj~mrsaxv{|nypa|okvvgw`gktx]lpd~mkzqtkrvwyliokMdNWPnbj_b>fTlte_bKudfYxrxSPUSf[]NigaNhdTYbsYZ\hAe[cjgiRh`cVWf]ntW[NJfB]rt^]cl[PUcj^^e`_\htbVZ]lobe`saYQ`TdQg_dIX_Xagpffgc`CTLspUgV]bp]O[gT}^U\US^\W\w_cWSgngaqhbMnecb[^]iwhN^f[c_\[qWSeY^Vnm\]Rs^gYnJroNhkr\akPtL_VS]^VOg^LL[Vc[]Q\Q_jYocPtabaJdupmZelxs]uY^bnETzel^duzwYSczJZ[MTSjnv_|b\`aaw]Ik_jROzo\X^[hcsUFpIjgg\dvY`T[THD[uNohLWi~vhbfIdbSgdq^gnbcT\Lak`cb|`]gxQgc]oRQwbMWn@X=VB]cmd\cH`VduccRR\clQkH]e7raPSrbcYXuKcTejjN]dtkIV]ptGnRcgmS^ZDeaYSi]XO]]{ClV|mJUX_T_eYNZQK`did^drVGuNdfbi_aKTaYYSe_dNUTtCaOaDXdUSOZZBosN_]ObqT]f[TmiYUVRPcKg]\ifdqeYt]`_gjw^a_\O^dCbk^jOkoNW[\fhqmld^lpsgenY{X]cOn[XggvRbR`W`T]Xs`Vtdgzp^pX\b_lpTgS^eWWm`oc_ti`igqqTxgmKdbWRVg^lj}\aZdT]]keg\nT^Eal^Px`meSfuhegYjYqgefgffRiMZqhbr_]jdkpiQzeVll_lZr^bcfNdV?RM?bR`d\bz\OefZhKyDf\qbyefdd[$BncHhbd[fK_Kf_gnkF]lOY\BZcWieL^cyIF@I_g\mlibzpZoSY[CXv[;Qhd\CW2pY}T__z=Diio\PP_^OZfLaO]MWeji\zd]SiNfalXYWgHqU^FGiJjQs`hX]`jUpc^HVfl_^XmygOXm>Y]m`Q\aIY?hbUWaEZSXXFml[}jZPKYTr^F`dObYcXf\OhjWPBidfVNHOlUZ}b`^aWUde_^]dqSociZ\YKcd`Xlh<^Rdw[Dy[z[hoWV`gQWe]oEPs\_WiSW]Zjz]QSdPiXnmQBO[iQ1XkLg`i]YgU^0zPGZW@@Qa\?]Rj^[[i`[pdL`jN][s\eFNq`IO|qRWhzTmVOR_UbkZhqlSdb=;WSbY\icR^ltQdfc=cg\RWSVW\@SsZgV=dxSyq?UdJVkdr`bbd{fg9^g}Z`mWOYaQG_ZM~rLdU[ZaWvaU[[h^PLd^oPWa_aMacBZdaa_o\jmW_edpcWT[LZ^ZfWklCaVSlUdcTh[MTU^VoZ]b_ClZw[[]Kf]WjbYhbLpeVM]fZ_TOhp_L\m~UMVONd[LWwdY[pKy^yi^VgEJ\^O_PhNZGOercXtbf`\rt^UnIegP]WahY7c^CYZXXkZMo^PVgah\s[ZfjiQX\npd|^UpaLxgWmUX]dNvYLOSVUXYp|PH`XSWOkLU%H;ctaLo?bpZBSG[h`_~bG?DnhTB?hX`YPFS|bKBOcvl[VgXy\fVbbIAF5Vg]^WHK\HWcXfdSJKaUOYiRLJW[K?p=^KMaTSU]aCiSUWBXZkSjJdpQ9IEZSTMxAofLj^TM]M?eaNLXPDIc_ZHR[XdeND_VzNZlZKiK{\RZv@EgcLSYqhcc^v[Ck^n[c[OR_Yal]eI[doS_v_faJ[apY^_WF^f]aeKWfO^iXgh^Y~s`bg_sbgBtXc\KI`bXP=g`YWZ`MaUXT\`dmUK_[\cMdJTmmo`VojGajg\ljgmohpGy`ZP`[_QQpi@[UuUa]Er_TVvmESqmRS^jQdiXdbViZh^m[_LgalhufUizkaRcQVVO[]sbRrlao_rS^r}TvOruW\JlZpiatX`aUJIbig]ihl[icogPwE\ohlsBdeljf`K^R]abYSi_JgdaTS^{qdtcKiXknRbeVimu[aZ[jXR^\qzaWx[e]YZ]}ObmYWVaaVnjpPiE``SlUdfQYja\oe[[`OnxN[moy]R\gVesYXeMtmUOTJ_rj`hyRS^gf{`I}O][YWhd[JWCcNWqYGPsYshgc_ciddT[QWNNZf^{3dMea`hcY}VzW]ePlDjVtdfXXR[doMB\InVbQecMRUG[iGC^7gUdPwbZoeU]YmbZeT7Q_]o^ZZTqnPkoe`hI~WlK[P[oLfkWXqS@SVd]nHZQeV]aut_Zbc[^Ws[hOTrwnaqbuvqU[_sjbN]Pf]lJCcRd\_KbsvySbgZ_XeYYTGbjPYfXZFxOhjUb^Y\hvuagQSgHUVVdc[\GTl]sY_naOncoiRi]EdgXch\sT]J`UTY|hbUbhbjezb[w[SXvbXDG`RQnghgZU^gxQXYU\YdJMEd]^V\nuqgXeAJNdaRMUXS\bGkO^Xlabysh\YNhnT[V[^kcn_S`PaM]lazdnepZqa|wiHb`Xay[DXUfPX[`lqy^eje^ZhJ__NimX\ibgEY`XeptV^aieeiT`vZbgfFZ[hSuXdl[}WaSXqPN_WUWh\QQYPPUgJg[qPUSiw`Z|mTb`HZM]cFZU]N\daefP\Nc_\anln{GdbT[[jff^lcPz_\^^KmDedZNZ_Ejse_OajXL`kz~habcggXGoTBU[N_qfk`XnvXaU`We]idK|e`p^aOf[lQkZOpcZgm]m]neah^^YkTUeWfz__XbpfOrk[WeehYRgXegwfLm\Mt_]]tjg`mcWdKhN_cR`LdajTpfh`[VsbrfS^g\nT\lPb`o^qZcyUQTbjTghDiPM]Pd^ff`^ao\NTbV^hKgSsWTKCgtbbKRcX]lLmf^PhfXQQd\hMdu^PcJT]T`qfZ^K^lU\]V_\jQ_gTVuUxSM^pfQOPhf_j~YMXeIb[_bwOkS\c_`[TxHgpRYXh^mV?|dkWRPJfmOadRgN_fba[MNkl\M_iXcgalTWb<_YkS|}iVtWFJh`|xM_WXSo[ey^lJLfSaQNDnedYnve^WeCf[TrplZuk\[Y`ceXPUlhcJ\RVGzhos_Q\ah]SJhcU|lxfG[c[igqbjneXUKHnTcQ^KryT]Mee[nP]_AST]fnfWegUnVgeaWgo_DWmcz~OTQWLut^R[chTOYVWipYuP`Ok`\^aNV`]LjpifrLw[_kbZ^Tg{B^\_mbPUH^fHd`2eV[]FhZ`{F\SgjtWkN\bXllcqj`]\^T_Ffl``[ahmvYmi_ItQbU\X]eWt?d[meWVd_iah`t]QigUSemEZPck]e_QkSHScqMoKbbpma\udYmjjPK_fePtBrJoa`^fLbIZU]a_NfpZh[gdQNVcQzaXXk}vJ@]Uz:b\vSIaphihSasVb~bTqcr`O^TiVrn\ubUlVvbuRY[HEa^e[g_aY\ZTb`NZ^[R?ir_dPWaUUdiWQqZeUdUWS^^hlhXa}ccZmhPTZYImGjwITgWljTZI]Y]M```:]^f\[\^MPZVZNrmY^UY`[SfV^YLYeVg\mnPXYknUC\]PpDRaRVT\\acqYlaWG][N^;bdQXtZBLUaylloSgceSXhUW]]fBTDbcy]Y}KcYileVZd\_bY^XoUjU_lN`ac_[aWpjyP_e_bPrYtdyggmdlUb[MmZ\UV[ijlZmQUhpfbUYcPXhg`RLxeg]QL_kSztgxSd}aX[]cWRZ[QWtWYbMv][UkcfadZfO`SefrTWZh]KUzaRbgQgg\mY]hJ~^qkSaObsgc\\S{c[YapXQMYvg^_dv`gOMgTZ_S`_wX^L]SEb_gO_\SqkdNpfVc_q=UcdakP_VguryIQvWYcjojYerpHITPxQYnJyVqcbKabOaLqbOjWCr_Mi[YSUoO[WnVNac[\JfdeNSm\^YXTMhmexkSGk\cRZVZXJSt\U\U\bGV[IoUhYhvvSTZ_]ddZU`Pe\k^qailoa]WNdtd{Kql]I_kt\eeL^UdbXhpNaTlfF_Pnlj]m3q\nd_`b`S\`vX^n^QOSXhiG_WHbb^_Zd^k[lhn]nkYlbo`kbj`l_WYtRKt\\SM`MTmtVgbcc]kjK^Oaaccddp[_^uX[ihZ`nYctbg`]zE_sgmEhUYqmjkS}hTbeU[ZFZ`T^u`aR`VRjsScjgm\\qmOCbq[P[iNbdzc`]LjT`RVkhYmKyPh`LZ]jRf9Ofb{YiVraamRKo`eUsW_|twTbUX[fc]gMYVZU\bnTpd^dcNN]jSP[YeDaQV]mZaDAb[YHPZmcQXdhuZnp[YbjeUlbSbU]TNemw]u]\ZoKVxcPIUoz{[SpefZdhw{`UakWVk\lj`_Y`Z_Pfd^dfS~nVf`WfibQ[S\RlWW]VdZRmU[ORR]vlQWw[X^WdijSX[qs`ba\[tidlf^`jab[U]egnhikObaRjWk]_ZZ]ho]i]VObU\NvpdXpLU{][Pe_flbe_dtutfhZsihsqYIaafnqdUlXleUsZX]ZaMkuVTjgK[wob\M]e`WizgZ^aWV_UQqYte]yVWbXT_fW^KTqPiWfVdcjglUrddk]n`[X\dnbb`m^[wLOW\__\kpb\}TNhn]VsawmXyR`ec]novpGb`tmWX^QacfwdijBWiaW^dkNP^vPbqgcyS\Sii]_PxXTdXbc]^`nbkxXVi\\_YbfavcUne^{xP]hQJRblandoVnsie^fZd^jZwRqLVLmZd`upYjkne[UUjN^SRkMenRN^QmQEFbdeRa^kX]\aaURpUVIXLUGbTevil_gI``a\~}`UzUx[i]TTXZvQXSwed]pY]`XWX\ipSerbPDvWdSb]llXgd_dc^fi^ikhd[c~mMaO^WfVkfsBj`SUgSKnXhWdpbOvNeT]]h]VUpp[YRcN\lldijSosq[WTZi`abSYldWZe`EcJ_abiVPMsSa`ROdfrOLPZ_pQfQ^QbVTL{XUVaPrLZjjSUXj^`go]_qZh_[w[be[RaaLP_e^<`gXfYPOaSahbTacxVdXKoMebKWZbFiVZTUVPb{nVNtX]\ioRNrO\]\rsU\TUskg^ndUhfOc~[hf^MbNk\nVDQ_R\RU[fj`KAERaNpo]\UQS[BIV]Xk[a`hkTK_ltlPuXWRhTUX[[Z\iNJcM`meLS;FDXctP>@ma_O`W\blgQG_h3V]nW`nVakan[goUUj^eXjae^X]hofacO]bqsqoa^WWdXhgu\X]ilo\Z[UlgrZn[aadb^_gV`e\U^[bPs{R\XcbcUYW[beWc`sZ_tie~Pswehq\qR^sT\uRP^e[c^IQSUtq^ZbVvXYy_bjTRjTpkohhbaQTpfHlx^fZ\ZioZHghgS]\deUbspUc\l[hTcTdnUrhSLb}Ty`PQRZWpKkbsnJix`i_bZtcpkxVBZmPTtN\Il_paqcgaNucgZYd[tW_]_pViV]X[fH`Tm\\c_VllYS^\TRadxagM]|Q`XddWlGew[xQeNvGu`nJ]`d^g_mHnZPeXpaiVhdYe`l[d~etXdekhucKij^[fZa_~dcOlTg\UXapl[OnKUvehemj9rRDw^Rtaf>h]sfWMW\Gq^lOSSuZoZQRpa\S]WXrFied`iAhGqd]OiP=eT\SeXSob\kj^@kOnj]NMmSSpR`j`VG_oOqR]PZPhULnVZF^M4eaUGgRRmJaPk8aZb[VCM2q\V]H_]\tUVSjS\U[|}K]awhW`Dlt_YG^YY1OXdYcd?PIXeF[yD^ReLTk\KjZ_HW]DXFdhmfhX[]c\nZgaai\VpjifY\XtWQ^[YYsYYfiJcMP`aUugc[`pQOGoUYSnuahe^frjywkWSJqibZxWLadS\[l_YePg^U`fP]\aSXggievu_H]aKcZ[[iV\LXhiaX\bYPZz]egxOchkZVTU_N]]ijDPjB\^UhTRirUIX^J[za\rre^dIYhQfPYE^\Pnq_h^RLe^cQ[bTXfhWX^cTnpRb[RT\[T`fYU\oMAedTwQiXjVOIg^b[RkRR]l\QcUee]U`kciTNbdfWB_`P^[[W]lTt]hY[bAogZU}ss^P\_Xb]FOrrTZRKVJWS[[ZRdLGYYPXvHR]^MPFCWR[`ao_M`XMeWS|MV`YhbUdJ]Y^fVXOhMbaeLSmYgoXctI]Zm\^eX^Y`\d`ddvgKnlmkYq[KT^oO]nbQs]i`bve`tdrpnjPRhua\K^_Wfjfa]^dpi\t\hL\Ya^[achydSSUgmOV^`ooemVaph^chfan_SOsb_ai[OVora^`juX_[ptVQZZgV~eUdjdPXjc^Dvi\^_UrlZhn]WcMnfknRXZMIXmWOaU_SfliQ^ipYt^hcdalae[rHZf[gTf_c@fBLYeXESqoWHxPe`^PAjKO\]m[`:QCJTfcb[PdJrdj_hYsqY^]h]ZUveda^eYCvbRL\^Of]LK[J^zLXLi\Pg[[\Y^d_z0d_pj[Z_Wr[^nlsW[b_kn\rxzGrc]on\`_rZbYOVTMiTjRSc[OiFdJ`en`Tc\`Yw^iUfep^kTvF_]^]`fivWmYIig]bUXibjVWqg[[gVpTE]WVOF[]e`]eUTWROjUjZ^]ZJ]eYjhhnXZn\W]lZ_hR[`gacY|]akjqXYhLZ`Ypab`pNvLKYw`rNfXSc^_VZiVbYYZc_dTZVOZ`evRZVGm]keZgm`qp\VPuebU\KZ]qSWY\e[c}`cbYfSUW_abnX~XVPSQX]jTdF^_f\DOWTeDaf`gpXLvVgekM^F\fC^\jXt_Yfb`JSCV[PYrURd\UpKcW[h|hl[UZaZZhc[]aAJ]`i`mdePJWVe\]efcHpEojU[SknOUIl^^dkfNs[So]uff`iYZccdKV\KaadnI]]d[]aUMn`\eUfocgv\\nlhPdoWdcU`daq_^_dKXgU|[fWUekXVGUVq`WH[VSh^`cHXWYUhN\YfTdcgfPj\cf_^JlV]lf]bjN\R_kak[VUgXiaZj[^d^V^^hj]UPZlQgfbZDToMXYm^DcsVSj`cZhrVQX@\^XYeb[^nRbbScGPdR[aLbOTy]Z[`]axhn]f^SRbx`TeXOSfY\]Ps_]G`X}ORq[l[\OcYRNXcXimQ^mzaTc_Y[o[_SXSoYf\GrRTlp^qbn`bv[f`]Ni]sNKcw_kZk`h]xPScO^dQ`tF]]`Fegcaf\puq[pq`XbmbZd[euj`b`\pllZz[he^SUWSS_EJOzgonWnecXAosXfepYbgTzYWpoFvfbll]wGh]YWp\[dhVHCnVmgjYTeYkakXLY]VSH[RSgH\Q^_`]gD[khWYht_b`\MZXsjefja`NrcWjY\W[aeJp\Wi[xZhPnRdcYuYp{YNUZagdfxTVV]PYfIb?VhdTgYkucfcSdh\AI[Z^~M\cOUfTpEOSrTd[]ajaDhiNmRYNeROe|JTGOhWeIkWoxbt_HmgqptHlEVfho_crlTd_h=]fQe]mm[fCPRiPq\T[]sNW`ftWeYiRfwVWQMNbjl[[R\ZZWZiaje_fVSeae_iZWsaXf]]abhMY[ZiXY[K^]\]VYeJdfGU^TeTZbSaZkWdgTYjY[^XcifgaKcPYgtoS^OLfVak___saj[_d]UV\TkcWThe[hg]U_[bQlhpU`cW\TW^M]ge[sX]Wm`Xfwe]^R_Lgtf_OiZY_ZWTgUb`d_Kl^]_W][UZaQPsR\_V]nVQ]mSkWrJ`QgVva^>uEXUb`L_dXn\a[`l`vfUSl]jn[UcpJYk``UZnwIMccdvYeWVmZ_wVjeQGb[j\gYceHJJ[`eSVNoYrIh^`eWpbSOXTenKZgnRrak_YmjiZJZfSlJaaT`V7\Ke[TPe[iV_[PnSWMSTBd_eeTQdXgglled]X`a``YKKl_TcrT_LSk{MmlLOvgSXbVeEs]apZLNy[XZSPdq]J`RkgYwRc{_[MYiXhyfqrZblhcWaceWSIozV`ZSpUfckW][Xh`d__]Se_fZb\g[@rM_rRUXZfa\jeQUT_]angc?TM\]USNIQXqq[bZa_^ZTFeiiX^kPnyTWYW{g\VUSuWddXh\wWSt_\n\aQwU]SVhdOqW`gccS^IkInwaYWd_UhoaWSY[[UT]U^aIVfKQffRQPkMfY_uLAmYde_UW]XdubcTGVj_bREWYgi]ZWrVBIZ]ic[Z]SKgOKFgPabZgrOpVAO`ROfQURU4]SGVUakasP}vkOn]KbQKgi[JVNiaUZkI^hNcXPjmGyb7:pVb[`rB`waS^U_Zq_@rfbXRNjGdbRZNmf`Rf_db__pJl[[^_h]hx=ca\cWo\X[YYdpFZPGerqjfPjdw[urRi^cRiXi_aOYeZb`__[oghYf^\`YWXbT\_di\fuT]^iW^oaeRWdX]Jce^M^xQekZYT]a[gYpbhQd`a[w`djM[jcb`\Sd[Z^dX\e`[ds[]_XaX[fmcZVaV_^YnZ]f]jV\ZdpUklk]eP`PyfZPlXe`alTfhe\SgWRkQY[ed[_Z~bYkYZYW\]lg_\[]OVWaWlR_[NWqfYhYjJf`WYx_XWKXgLQeW]wqPxg]gcQVZLdiYoXFKJUiI]_RY\obcbv\a]HdHZWwyaU]SgU\ZSVVTbd{jzW[qaPXZpm>YJIi]ZYMpLXXmSOegZDeQQe_PpKo\QjPSWnLlc_kT\eohQwQCp`VWVW]YbaxLMyOV\VVaOtbqRVc^XY[]]fdqhZY[qYeg^VdPoYahsbU^rdhw\\^V~^\nfqadZg]V[k^U_\_bijddV`zX]\Y\WZOsdc[QQPQ^ZQ]][`Pg_dbdNeo[W~l|kYb]N]kSqZubeYTv[onYaeY_DhhYfhu[iU_me^weQQUdR[JWfjfb[VeT_cvm]pslZ_bSjSYb[LccfkgrmfSP`eSWhd]^VWQObQWUZeX_`_Goi^\PPajtNT`P]hjWu]`cebrsZ^I\hvL]`jQoedPUbw]k]nkO[j{]gq]SXW^epb[fs`STV[Yg\knh]Kk[~aQ_fU`c\YudWUkWg^iA[ob^iwbbbaU^Ys__XfkrgoumX\^YXQYpkO>^zV`\a`b\dga\aQh[l_cU`gpqsk`cSjheXYVtf`Vlaj_fXhXjg[[[`d`mnbaygVZgYdNeam[od]g^pUb[bUY]JwIg_aPaVJpbk`f]eUtPTZebi^RNam^c`balY]hPjRackE]\mRkldr`WgRVLVa\dSo[aQ\cehV^_INnWKd\[ep`dYgwhYwo_KgSPj^W]HfiSVN\cqi^u^SZ`c]aeaUUSe[lY`we`NSeS_Xhioi\[Z`[]ojQqguZVpdWimrrk[Nih^gdYxX`TxomgUaZ]\q{Ul[Mg]_fqi`|uncNW]_RXl`nSrcagb]fR]LVVMWYSVV^kbcZhQ_z`]lOXnjseePWIDVTvdJh~bkbx^ihOm_`uhnyYdcaXXfLhf]b[jSbm[brRYV`knkfNfV`QOd[[mVbSfUYgWVOZl^X}`^ZMbzqfckQ~tijZ^NaT\fhfka^~`VhlZkmegltuf}U[Wfh[fVbVPbcj_f\fOg`e^jk`b]|SfeqjPTR\fZ[hlX_Qckr[icaY^n`NR[xrePkcR_aSURf^h~s^`ab^dexXM^^yf~SXi_ioVc^aLUU]ZM_ifLNSXiQIXWM[QQbuVdddjkQdkmeWb^IXRcYJef`HQ\]bl][Lhca]fOT_^S^UPKQ?X^NCRJZNVoV[t^ifxhM`ODIdoSVL`j\X?W[eU]PYI]IbcXcqiZVd`JfiiaSVWbvY[oe]fgbjebWbFRTq|Wel]wHmjPSdSM[^YLlbi>NQLoNYKRzcoYaOXx_rkpTgRhNCaacwrNRUJqThfbbebn]a\UVahifY`_ZXZRXa_uaUY^\bov[hilPDRU[jnZaWzOt`UiPdt[`fpf\`TZW^idb2RWad_jUPlb\bhzTTTRvUiMTjZkSVJvYrh\WZgM[f\tUZtVIp^O`Z[jbq_]LQfneWR]n^SSsQ\`V\lWuS`o\HTe_\_^bWeP|gJVXCamY\uLZFWeMLnnPOe_OMkdk[LXUoSQOIijiVXaVKZmadiv^a]cX`XOPpaQ]^pJanZa_emgUYUO~bMfT^SairEYJaxrP^lZ`emrlda^po`OWj^Z_Y[_jeaWX]W]dP\ikbeCUZiTbrPZX[`KRpyUeddfohYV_cUXh\wc_[b[cUvdh_[c]askWwlLDFP`f_QvgXm`UPgbWcR[mPsRXeegdYTEWbgFhknae_ag]lbaj[jPPsNg[gZ`^Pch\\cgbe`l\lpWffpIydcmggeJgTp`li`UcKWZhaNMkYKQUr]Z_`iIaVzUjLjOh\jQ_db\]ndSU]eWTd`hiLRNadY`bb[O]U{j\c`_W`bYb~MTeOlg`p\b\j\kZVfj]\dcd]eZltbabg\`^tYqpYpQWs[]bmid`XULVY\bpS\X^`jiSqSa]e]`Paa_ccZoZJZeY]bRiVWi]ep]k^btl{a[laOiniagOr_zgWbZ\X\hobdhe[ZaSmdbbQmbgE_ddPdZ\f\WXeceqfk`_|ObAibrZY]OmbZWgJ\n`[YaVvZa]U_jqerGZqZqwX[]Uscag][YsY\cfeRUb]W[UZX]YiTiW_eibatYkmNOg\odeUpOQcZSE]oWd~bfb\Ca_iUJWgRod`RMafjZay\[[O\l^QZedlcUX]`a`QWXkLHfa[xd]sIvp`Vg`J^n_V__ZrghPcT^deZYYO|bJ]jlZsIsYV[OjTSTYa[ggTfaXangQ^bIgcdVbzRkT[ch_HgUTcLzVhOyghU`YZ\qPAcpyYnxM^PcF\dh^]RS{jiiTmvdci]e[Ec`\QV\]rcJpk^LTf]ZAcXc^dEaTc;]dfqhnet]mx`WMV_crcfSv]^mfYVlsx\neVdociMaa\PX\Qihcw^YidXecPh\j]UioWY[rYt^lUYfRd~aT]cYWy]_kgcbihicXkWY[_NrhgcXS^eBVpYYcecrQWU\TSU]cNbcUXQW\YRZWW\Y\gjabV_xyg^MWvV`idcUnKPZj[abS\]U`_^nVse[IYaXbU`cSXby`JvgaPU^`^gSXil]lSTST_dZlUncef]^Wpfgi`P|]YZXW_pYSkfFn``fWu[voW`bfpocgw`VkcZ]vdYSY`[MbQjRTXZ]fhj_I_c]YfgAXKSXr`P^b]^NbZooaPd^ks_ducNYb^YegYsdaYW[|N`e\UbmdQVfcaTobiV[_jgkX`Un[WV^]o`dhcf`\\Bhh]z`WYghgNdCaPqVDZSMh\_c}s^gZ|[`]_[RhS\`Rj\a_gXccgtoR_\mp[`^UhdTZdZa`djd`^X^_ZWoU]Gd\VdclO^`bmXk^N^[aZ^gMbcOKtaaTdSnaah\dUakaQkgYpPNFcYHbQfSWQQMVZhlpaeSp[>HUVYb^XJcd]hkWZea^`v]QrQOQ[XMiNiTkX|]VdWeYj\bYs]fkgjfd`^j_RKRY[WlMSvgUZIxYXZYTWQm_c\ObP_S]W_VWe^eNbMf]RPkQSLqqihaX\iU_l[_T\ZVTsbcqaidwf`cCaR\Vdc^NJ^ZP_aY\TPhkQX\QcUWXf[`_xQ_bk@a`WUj?g^m[eHZB]F?hRJcXY>dkBQM3]_T^sRV[[Z^QPGhKbUlg[qXTS`9xCZ^?R\hl`Ou_t]z2ZFYr"p[0Tph{`gB@L;oZ[BsYibmg_`LNs_`{Up'sbV`V>EQ]Yc0fEPNPR_F\J9w-j,ab_kUmY>gR_^xZlfb]jdXmadTZaYYvm^^[fgXTEWW\bev;Z_TYBbMB`osjnRQQVV_{fTP]hg\ehVoMVYNg|XWSJYRdH`hRhbUUfffIhOQn\UFTXLQhcn\QqoF_`Ug[zRWXiXfPkJ^gjRX]TPXU_WUtXW\dkQ`Vt`bhMEZeB`\eTagoccsScbqrc^\[T:u\UPkLcjnZ_oM[{IePYUnSLkT\_RSSlTUFKfb\PpXd[WOLHgBNSgj_daQhmHan_RqWh@rgU_]oUhWhyghQej^VQR]Z_i^`mcOleKSgN]fR^LSgV[eddhV\tRRebjT_Z[rhmZgd`QzU[s\^bKSjcnZd`PXic]b]ae[sRUbPqVWTc^jbYTVUs_rVeUYg[{YTMU\TZPlQd]_Rhefhek]NeY_r``Md^Y\gba\m~yS>ks]VjS[OS`SrmIhi_eddjfIj^cnz^kbjhdhPg^aomfVRQwWig^a^hid\yTYcn[QUVNNgfbMWep]MkQOYSenXvX]^iWqGuabUVqk\SWwt[dleVm]eT_\b\]rg_T`_WN^efOFT^YaMZhnpBjfYSgg`PYYbtqW]nagacjjlW_f\NZjIPirrTbbe_au`\YHZOfiWihofnbSXinrrlTh~VX[PS^a_X]l^\WWoS`a[VWS\rVnVX`M^bXQt[Wb^d\bY[maUesgUcpZYXRnZ_eKQcaeZhZiek[eU^Xh^eSqagUatTzxkh]Y\ihjmX\XO^aPba\Z`]o]TkZhkel_dZn`b^\Ymh_c^XQU_b|jedjQ_yZ_SUpnL]TqY`Wmd\ivfVOd]bcYbd_Yak[KVfLsLvkdVa_gOcdU[WTUB\TR_eVc`j`fidld[ZgPnbNXwcevUkal_\UYkpcreUkroZ\`QtXxY]tYbaVTyS_hbalYWL\ThcnaOHM\YYX[fLS_]UDK_P_VMXw``PeaUPZncZW[TXgSdqXdKcNnh]WqY^jQf^bdS]NcRgNYaedu[gb^U``Xtat^dE\]T`lVXoS`Z\_\~tYkVjO[thQ`dwYr_]m[K\fNO\`ZSuUY`ZTbh[r[qVKgNX_mjrqfQP`YWhE^tYMc[`p_HUo[h^YXahXjOsNrPyRqTjSm[tkHVsW`TOdVIOccxMa]laJ^cahZh\RWhPZqgaaxl`fkZmakUa]P\yZI^[]`tP_GQX\kUabXwfjfbmsmMXXeWNfZfQaIm`eK]`WKd\elbdMfkkei\m^WSRg`pUDxmaNjakklJV`V\`\qVWWqMkbX^dZJx^adSlWO{hgdTQ``]m[^_oxWap`Y^_l]NXZ^\ZAglYaOmpisarS^dgnXdluJfMqcXj]^_`fLVWvTl`WYb\a^Z\j]__Trcg_lXScblWr[hj[E`O\dgK5[c\QssdZkcLdMVj^GMLLdYXpnhjaW\TlPhgTsGoZeVghX|N`nfFXkmaPXb^fXjeR[RchSb_ZWhf^msQdiTg`ZR]f_ks]Q^gglamVpMgidMhLmag_pY}AlhQXe^W_UcT][m^UV_^bbfVWlTczdEeba]u]qV]]XoR\USUPbhve_jfik_{`wLlme_V^tkXmnu@lk[e_]Uit]_SS`Cd>OYmeepRWctQdaAN2TX>kRHe\lhVL]K]U\Jb]\CVVi]a\QpMZiOgGVRSPXZJXFlj``f\bQN\NZ`VDShtHcWSchb[rfuL`_LXcYYNWl{no_dSwYZW^\oUFKXZR`RwaTSiJMelV`XLi]\q^d[defIVpjedEWazVHGVcf_rZeWDy_[[kV[]JXihmGfjgkesbZshganUxfRSWaTeHS_XbOox_]AWbYjLTfM_`^hc^_oBM\K`WZnNYaVeWcedTS`\caQJpFSZRxb]in]``l{shi9QYX^nhs8Z]X^f~[\beiJ\^^a]\`d[MseZejTbJcN\TodQtN\_ZZ]bTd[gnWj_\kcthwwlwi_ZjdTdpsY]aYP]bjwaIRwasUaQPkfc_]bchIPeWk_TEwDT`Xpc^`bWqVNmv_[Oms__eWQPiklr^]d_iOhboDUPp]UcgmjYey`]kcdRapow`b`aSf]T`lr\dj^p`]aTVn_R[K[jc`XhX^`^`g\^mYkZiWbkj`]aeLtUeu]hYl_XkWdnYXZilUgWxRTY`hdcabbsgceWYkaZ[eYvsyjblfT`X^P\`jyaZbSbUX^gDkaabk\gYnSe[sj][If`jfekcetPQa_P\emnnN_MddP`YXrndKKUiYWhO]\]Pm`OlhU^krUeW\YNfHL`LpihRjUY]]xSPLkfa~\KXbgQ\k`^XmhSTogO_Ymh]~\j\bad\fW_^Wpl]vaj]Xj_]]`^]^h`kYfm]]m\kfT_SnblRS[aa[qp?JeKiehdb]RhOY\[Ui^`^YX]aTk`]WpMcYabU]jciUlrp^\?xUab\gwP]VWmCe`eKpeqbUGeU_\k{SUiUk]URdk[OXST^mmUkvgdXbau]mbAH]PS`N[[wi\Yv_uqbhrzeV\NjRV}eUgrhkehYkVkMdhTpdkNh`qbOQhniYQoeJT^Xpc[gvXMQrT]TkOsZ[uW[QSxnh\TodzYVW_NnVeUbbb`kXXfg`HfrYjTqp_l\Z[SRhqFRVjSW`Tq^Ltb#z_azhcpWD\'pjNLcQOLHOqVciX=OdrbMPbWPcxwX9YkccF]Mh@[mN`TATYVd7cIA^_`YWEWSUcrffMMqiwnqaH8q^sY[{enK)slZafMYeMSkE\Td_K_Z6aSEi%EHavW[QfQP\ZbnU_MteVMUvP2\aap\cQLcich`TVoTKpj,ZrZBf}UT[S]|Lb[N^nbBrrgvMpdXT``\`XOheI[\jZp;Td]V\Vn\`NKwlUderc`QKfXcbUk]VoSNi]Xvf]]NlqVemZGh{klVNrU_Ne`\edVQbc\b~[hM>DmeUh\eU{mhT[cP^QbXYPPOHYAhP{fcL^vMYqMVn`TKWid|nU[GZh]sGcI_]R\mGIYd_i\NWEfULXVVo]d]sdolJYawXgnta`LH\feaXRWptyxd]QeQaW^Y`U_ab\lY]QreYgQ_XUubR`SeZ[QlpmYfdN\jf]_pjWcaarsQrObiZb|pubXQV\]pQFd^]Oe[fh_ZSj_vc]YLooZ^te[iSdbNgndEer^loa]wLb]O]ifO^mfaja^PaX}Uc\TaYeYl`fYd[p^IOhMpuSGodTL]k\c[XdtqzygXR`XPlUPVTS\\ZZRfRUfawU]ojxnhi^wpnYaYWh\VaxiMmN_b_RpbsX_dce`OUFUecWbfdk[QSdm\h``]_h]][JUOWiYUKK\^X^PVma[Y`YUf`YSuJSaiY^WSEpUbfKl\l]hM_P[^fSZXRhdhupJgKYYRemRjdf[Pm\c_g]H_m\bbReNVjWPqWNJRdSXchQdngQ\bO]\LmmomRe\`g\^dnp]V^[odXbjckY]`pfaTdZie\_zj__ZgRWY]f]fhiuPOgVilfBacJuhWhaUi\PyyWOhZjnK^aQT]LjXo]Rfbvc]SYWZU`\bqTnsFWcfdlm^q[dUgijm\PNTorkv_Yc_Uf_\teZsa^IoL\VWlcVae`f`]Y[VfsgYTihWEtc\T[]Q\SYlpV[of__Ovb}WHgpQ_xUlS_Va`eNKbjSPjmDYoSnSWViQ\R_\RXddchavdht_sj[T\GWX`VukbW[_W_hkU[SNVZUY`fjdY``c]URZfa_TUY_lgy[XfpM__XURRZ[G[Gcda`YVZh^PZigi`\dSZqshJ_PkeSZQYVZ\|mHZqmeZ[ZjRKJdcUih{Vd_{jep{pN]_]bhtTl]YVXQbq]PfZUUXds>j\SRzX\QfoM`joa[[_mSX\ViW]_ti\_afWQc\\QSZM`^\^xP\xsSk[XXeYlsS`]WkKjefZWzO[USgLhhVgf\Ua@VqUVsffg`RkbDZi]ad`[`l_Xfde_\RYjhedj]fGxYRvlPLsf_EeeRYvQ?SeU[__[hbaZUfYaD`UeJ^fedansaKn[WOhN^\\Ho_Ja[gM`mxU`j[`_V_]]Yb`gZHhr\]j]WXYjXW`\bLUS\mccSxV\pT_wQ\dd[Y_a[Xni\oTifRmc|^G[ole|AUVjXeUcmhTXmhc\UVgbbqoLCm_f[UdaE`dYEma`olJ]ZSTa^_]]kUy^[Xe[iXgmedO^r``mWVSTZiaXfgNPmgbehSr[PP[eaPzSaUeoca]QQTWsfFWIpcnXKVYf[@]cmfU|OnpMMFajK\hIeOJg8R}QatWg~`]iS]XZVYMVdReaTiOjR\OiNhze\QTWw^^\`Uh^?UckZBdk^\Nf[isR`eagadkfgjShaT_[agZ\\m\UTkepyJpT=gat^dkWj{s[fhlVY[Y_TbaoeWlQgdTOZZZMZeKMdhP[YVURfb_[N\sl`\MzH|XrXacNM[S]S_dMXX]qab\N^\]VoQV^a_UYtOs\fgdm[priYWe\dimb}cT^SUh`XX]l_azVaecbty]SrOi\gZKQ`QxE\VKx@flkHdBXdbGKaT\lgSU|NJY[XcwR`TsReD`t_Rmn]r_fX`^fcYKfLqpTXx^g`JjeRTU^aMbVQ_W_YlD{nlTfUbPUqdPIe_GKbxX\ekjg|`fIQK{DgpU]MBfL\\sj[yWUkYG_`tsOYN\tqjQZbY\aaaWh?I]_FJj__[aZtV_cWSdSnlOi[oGPSxEd^O=_pYYQWNPad]ehU`oZ=^buKgi1Pb][ae4R^iMT][dFa[[_gR^DpLOg`Y\`XEREVn{RN_KJXp^_W]g]Q[\jTMPYk`N^N^XZNXclOcZgVdjd\[bm8[sUhckZWK]cNMKKo`ZWQhr\fY^DVRYh]Od]R]Zue`[XkgplSY`tiXY_fl`J_.]c[f^iR?IR^lhwxooiSijJQTUnWcbS<|VZ_Xbguabd]TS^_qei]Xksoeba`tNiZR]QYV]Nd]_k^W\a\ilHL]^cQ]qdSdv]V[XUgRcUc_mezm[c`TQQWT\XVM\hqrg[O_kUmmYZh][Q`UXwXSNT`[RyyKcWsTbTOn\kimXuO_bhVdZ_S[^r`Zm]lgXq`pM^Zng_ncsOeZjiPekN]UQa}M[atQveRdrSJ]mf]]effxWd`fhSjIHOPH}MVWgkeQZSaqQMcfmnKq^Y[a\[iueYRVNmOO]OUBUHwQW]`nvtgOV]dTrsSQf`fde`wRiopTmY][JuUWVSu]rkctLPmp_lYBSUYeaq[`}c]Umr_jpJdJxXekbdWhUWR^dVn_\TVoFUB`d[fNbdUk^DLifqqWVkLZZj{PLWetWgYZcf]k`C\Hgl^oT`Sb]WUZg^a^qTVZSaO^N^lpTg`OO__ao4]gbWVaJUPXYl]^L]hqg[RYkvPnW[WNUUdZfxrJZYc`b_nPg\]YEizbbXYjemQHEs]aUUcL`RmX_]ZnNLQheYV_[gSnb\rU^^EbOac\pLh^]^hdbYQRhc\]aOOMSRXYY_]TiZuTaUk^l?[Ug]Wnbh[V[xPY]ScXcuh\]M^]dbrPl`geRr_hOhXZmX^d^nNK`ue[MwrkaaRhVeguUcum`}lehMifm`}TZZWjiTiDQf[]WReXgjaXkgbjmW:kTPZgIVOMdUIRPYwg]_Pe]W^Wke^dOIJ}TgzKhicUo@l`KfkNcYmK]]b_S`cRDgjk^W[pzg]mibdeR[lXdVbUh_amdlfrZkbjkcSq]m]WY`_`cN`a_Zlkqwj_YgSWXQe^iftjpef^^z^hmcZS^`ohrbbjc[URU^gPbvjmn]psk_kvpQc~b[v\jisn`izjpqnjPhljPabijJUZSYZ`\Xsig^TOdWZWucWXzSnfi_ZK[[eTgfp{Xg_x]tiXkOcGRa\IT^e]e:Gd]k[IPxfGlVhRjVgkwegeQXWR\YVjUaH\GIaQUjPX-RlUJaMJra\FLTUUVYg]VcV_hGS`RPa^^LcL`NVXLY[_SJUFiOOEc?Ma]:>V^=[O]cEbIL^Z_DYa:Z:TY`c:V\^Diid[Z2oOXUgWd_gLYZMNmCY^gSVeXR:TRZ_WcWYfxbctaEm[eUigjaNJi`foXZcYY]TuaaefBaigVdZcbPfc`\FvRia[pBgZMXTma[rR\qm`]KhmdjnpXlaSrlY^XkfPQh\VhpQHfLj[Idq^Z^Tn[^cgcV]gaeVr_J{LQv`YlcP^e\c\aRvgdcWYgm[WX]qSbdbfPO`tSZf^]Rbdddrh`Z[Mu^YkBfhu[d]eJYSU=^BEdZWvr\PFgZQbSjKpThUlWX|lvb1VYWHkfkN:jbpe^Sl`MY&MDYX[OksVaVF^<;p5lR'cSccfbQ]DLR^gpiu[ZWROVuebCdJc[WNZhesckC^_eeg9jMEKk[ec^OHDi9TgxEdWkCPEUjUVQzbaUbP`iKES}WgKNUvnjZ^OWWfKRXRKZnu.^kjpLbCTUUOj\fR[S`Qag>I`^cgkae\^MVd]_ui\g``cvOQYga]V]QrN@hNQcfS`ZNOvc][b`gZRTbygFbT[aTa\fJTqXUb]`WVQvRPSdfS[]yP\lOYJn_]FSmPYadkfp\aV`XFNEViVVnh[Z_TLZZ^Na[X]S[YbjXjLb[dpavZe\rkedjXUr^LTipYeSUmmb\eiCe[Wcf@FYLaTfa]Rm[Jm_~DjLfUhO^XUV]kXe\elfSlT[]VU\Rtk_tN`^Xg]chLepWThp^ZMlNZwc\giiadNQ`faYtdRgdlYWdem]UbiYPWWZpT[]iYmdprQZV_kQaX]g_cIphaJ[kD^g`e`IK^qcrYZWSqWTPYPljtS[XaU`_gq\^Z^MrbT]e_gX^`wcT=QQ>VavLsbNXS|HngWMmZgKAKYbV>=ePqnXcQGrpfMTOb]WWIn^hOclPtm[Jna__][Vw[[WJ_j\[^fXES]Si`fbOS9Cd{LXXY]AK[gSW^]fKiFWYUrcbmCb[`MZvNCnwHblWuMheX[TSPj_F^r_inTku`]iN[RQR\pZeaXeV|kXb\Ua^WZX^QEPjwYSRb@c^b]^hbk`q`]Xf[k[e[kY`RkWw\nldSpcKbW]WqSdb\[Y`Yyjfgi_Yj`\caIqKzga]aZVbiRm[gQOb^jhXZk]t]WdbZp^Wadbi_pjfWk]UlkTfaidcNZReqYgoWXl\Seil`lxZ[dh`khW{c^{[eedojnsR_pfArnVjWYrff_]UZ\Y`\O^MF_PPkfSoZRin\dPiJbTd`YO[Z^WckV]han_aTc_OJ\Mj[^_`ZYEIviq`fZWUZne_jR@C_uej]]^d^n{oanRZSngdSfaQYY`_a^s~vWa_FXQn\SeSOrhXazV_]Vd[b^JSdakY_ELbISbRyp^rQhTpkb|d``TbTW]ddiIQmTeb@e_ccZ^VUUdP_a[PnkVwQILg[k[_V_iPPEufh__qlQ^aVfsrRZy]ugaem_[]h`bQhhZma_`wbku`q\d\sfmjXork_MmUUYbPf`b]Onaq`^ibdGEOlfYadmaYeY[kmtycm\][didRahRbgof[Ic`N`e\^^\ahX]YXmQZn]b]uh_tWX^]Z^X`^fccllCYk]^TKNwn~gfdiZU_mhXvlSgL_olR`ebNUajldm^dkpmUOPi[alegb\YTN\jhgZW_aYfcNl_plldSqZhfIeLUk{]cXzWWSYNZ[nRXNXW`pgO\\mHnkbPGViX_h[lS_M\ea^jR`gpZTWIlcWXs]znkKXPZOmQj`NZWQebt`mnnU\[\VRWVYUO]_auXe`eX^bUkhPbYfT_aI]niUQ^AeaZcu\g^io]WZ]`F\]ndM^Q_`bZ`]bYcLUfTCeaOofUSc`csjhL[hSYYV`]_VVacVq^f\^^ZdObOd^lbcW`spS\R]Piw\{_bZwOSmXjteeN[hWS]^_WXNWkcaYdenNR\N^Mf_yqL_kUS_S_Im\dbXe7]gcvsyYb\rTYUgW[YqXe@KVSXTmZbULcilbb]c_pMdji[d\vmkeUUs^SKedffOVLQe^^rLqUwfUZbndn\kaTL]fhRk\rdghZnockYCcchJ`korfcVQWwi`aRqUhWefcNb_iUHijNcYTRhPYUqJbNwLePKodVenIcbgeZ^``QIbfOSDZkdUSi`Sc_cXXrJj[UlYUe\VQ\tYPaTOT{jWuNQbcYLkelhoTm][gi`pFRXu]ZZ\PTsYnhnW]OxjW;Ps`^JTu]bZVL\]RNnX9TMYeill\zevcXS\Ofn^[ljzb][qkheRrRmaR]dlX_Ii_`~i[KmjX\ZbipQqTHdW^H`Ybgbg^`eX^ymSTeQYqHTV[uUlQeWQ[gG~GTRatht_bu^^iCLadG\hxP\qc^baYm[kZbh]g^d]WptWnfQNyZHhnRl`embf^yxkf[_bZmaVbhwaD]sdCpZeNSBksokFa[a\mT[hYc[|LZTgj\NNA`^gI[am\jkfkZVSTs}}gmcgMxN_e_}m9XSrSSf`U~Yg[\l\L^c^K~U`kZRXNRbyS[dblch]CZjQh[]cf][Oj\NLN_MWWnVxRYNX]e\cjf]]]\ahx_N`pJ]S6[en9VQc^R[YSh`XP]]V^dd]Wbg^]fXP[L^WnL]SNvslMSP_osOlWM_r=VeZRVnSsNaR{\xsL_bbR_C\]cW^iZabKhaSG{bu\mh_jOQUVVh}\acZSUUSR^fmweZMbHxU`}YfXWW`LFCW[o`SUUo_XTueYkV;^da5mLd?Vb}j]gUQyeOQl~UgK\tbROo\JYdX[NjvwL^YXqq5Pcld*Nh}cUlOadqaTv?iCYFSKSqfMpN[sZR|}M`Tm\`\B__iX[^lQSa_XIaUW\miL^YPRwydYD^abVfAIuBmfXPm}M?R\cRMkNJVb]XXT`XkP^YakdYjgS[P`gee`Vq^TPb_[kUU\ne]cagUVe}@jXnmY[R~hSb]kWf_chbX]pLlSS]_fVOe][f`tShU\_R[aNqkZRmoqu^[[MjkWc_]lbVTUjrkaaQsb`cybrfHpt`e`_o]aQ[JL[T``[^e]Pj^SbdhYqpon\d_``Ypr\}hR__[bYWTVaTX[gqaReZiO_[FJ_fsEN[X:KSVF]NlMh*UWiNwY;eqcVUWX=gdGqrMy\Z\%FUWYgaol}nVP}?In.QgMNM]]@VcAAA`Ra]qUUbP[pPlIdZZo?]hF-eZZRgP\Rbj]cXZfP>mf7j|9d'[OTaQMd`r+WUhvQ`eGajWVjTeR?_bRaYf_]`]meWDjk`VSLdUM5SWiOsZ\]^WVQfaYX^eem^C^^\Uf_k\goXq][}YpiO]WdF[fSSk]hkf^[lajURp``eRel`[\WzfQJhY]YwVPpY^XH[l^TeZOY]PXcjtmeIHeWfcDmV`j_igMamBise^]k\[r_aMZTUfT`jPpTX_Q[XcRGb`\Te[OdvTXbbSZZci_\WV\to[cHTZqUpR_|{^iEjSbhU`aodIjvfid`WdckNhSnvWfKnbrl[n^hU_cXhdhkgeiYW_nWiIY{hnuJomo`ZPW]eWh_q^ZjhTje_OdUxj[gaVgancRZ[`aYa``|^eoa[YZenU[]Zf^c[Sn_^h`bUedanSfZdR`fT_XhcQVkeXxpaPaZiQbuqg]cPp^okug^dVfpQZXMRsoZck_RWYYklW[`efg[ZgRVVRbfWfhTUwXfl]^[LR]sY_PZPdx[v`n\LTVcoa^bbz`abNcE^PVUhfNblqiQhmYYQZvsad_`X`cfVm_YfaWfqPoVV^ftObgcoxRmTDrFRZmOdX`[dT\`vaa\RN]fidUq[XTWXdYFrlgb|]iSx_hU\YmcQSZaLSgmY[^ouWraefJX^Nlgr_YaPfqzcNjkWejnY{i[]h^\Wt\g`bhqYTqcda\Z^Xbw_a]rbjbcVHjjTdt`SWh[fbmc`_a_c``[iWiaiT]j]g^_]`gdf\W[^USWfpBWZR\hbiTS\W`hdudcgwZ^bcjM]ZXvVW\hQ`f]a]gwR[QbfgbdzWmayUKf[dtcaZ`^iQ_Zirur_RedvbbVRqppaYMXm8g_lZhfRj]KXZbZffpRY^XaWfaWpkZhWaUfXTgPilYd^Mx\WVU\\PD[[bkw^_ar_VVP_s_ygcWj[f\tnek]MWlb\^dYgrETRP{LrTq]cYSfLFIq~XbTe[P|7y^bbPdWROLcELGarWYa\hKXVVRmciymhcASuc\dYsaf__\;^`KWZydUTkn`\YS_bZV_XPM\`aUVNjQY_FJ^_iQWPz\S^gda}tQXNQRijJxCHcaYT]c[M^Y\Kdd[PnSSSpaRfdbc^dc_^OR\`LjqWGEm^`ycSCaS_oV[[rcSYjW`o[YflbN`n^\dSIcP`]XadX\PV\UdaZfRZ[^YjvtUXTQM[UV_WUNZjY\GTifUjYSeTlRU`IMRQkPj`[e[dlR`j_lZ]^pcRX]mmoVVbPn`_Ryls\ciT_mgPh`pRF]fmZ^YeMgTWJj\YsZMMkWRZZaJnx\eeJqv[inZ`TPmcXSw`[_XXkgCZcbR\~dldh]ty]baaHUVsNxTnvlrfr[pi^ZRs*\lXal_eUciWVR_c]`p`dZpi`QlinaBTj\`aRnU`^ociYKafidkXW\nheaedqajcavZQaelciV{w_RYjiTtcryeMNiadW`j`sY\ZM@l_goev_ail_lTYcb[VWUan_]di^^fbj|W\UX{T]khT^NSsIqWShhYSjYYv`a]X_XZfJ[`aZXj^etTrgeXmYmo]~aXh[akZgI_Nj[qS\rPYkZxMbRsXaYOsSZbbRNjlN^l\jpcqwea]Sp`_ldSaUUQP[EXeDs[[Yo_yNHKxCQe\g^tYYlicb]R[t\nZt[aXYWfbS[ajgmaOJMaWgchMmW`TZ_oa^_[@bik]]UnRn`GfinELl{T|q`vPQ~MUKcjQm]ciZbS]Sq\c^auVZj:]@NYTDfoVT{RbSafUKmfJgh>fJTUWugq{YXtSl\bYUjUnX~XQeWYdNLOkIKY[ihuac~jULVpqYMiZrjUoraj|KVn}fZeiaxLhbfod]cSTo`f`OgXy_WR_ozrc]WWZ`^WJGZlYTeg\\qN]oNf_b_ahkckgfVrIm_]XddQ\hkW}gMXlNnoeedWkGdIjbX~rUfWY`gSn\TXZon{atSkUSYtc_RMek[mydXi`bnghYYfVpUb?ZRnO@`c`l`s]fX`Y^YRW_Yk`cDfP^c]k`hqoe[hOXknZWLfUsX]UNkTrO\eaogm_hXlh{gQe_YenUP^YsZQZ`ch]Qf]`_kQUZcRcaNlmY]KhfUiQpV_Jheag]]lU\`iZVUla_`zjTjTncYSdT]^^ZcLjLeR_U^L`[oMeHgzTckhd[]WZxYNfZ[aSlkiZhqX]JaGZ_^V`fXyUaYefU[em]]wxi^`eSRaY]o~VTtQ`rgWdlYZSabm{qhX]n[aVjbH^YZY\\hbYmzgfc[adcm\VZV\K^hiGgZhXVpnV^hQ`]c`Ng_RUheYQKXrfn_aZG?^mlhbYfSn`^WuedTrgLmSy]qj^^hbdcU`^[iaL`aaTLbkg^WPsWi^Q_Uc`Gbj]d\]akZel]kY_ZLPR^WbS]TUk\zT]`Ra=IfWwbe\WolT[bJ`ociXV[T\\O[_WXVrcXU`eeWUgj]bWS[fbdgZme]k]YR^]U\kYhYQqOp[NNbTdVWd[]ak[E]`ShbRZTLgRLanYcNbQ`eVYkq]NQNn^YjPQF`igUQebZY][Red\V^[`]spXvlb^W[^UvniKp}bYw\BRcMxfW^WV_c]Wd[bjY`g]JZdH[Xeb\Qkx[ZSatkYa{eYP``az^QVXUeSnSbQTrZbNkOoidYX]Sj~neU^aQPQximXkVVaxOh\N^^bcuRVdcT`nYadOQVUpq]TcYRrYcZse_p_UafYzdTXIRSsmiL\qT]H_[Yqpfl^aVjf]jaZ]k]cXmvcU~VWZ`aeiayYdO_Y\ogOqVRga]MxbcZfZhW^k_]]\keTV]uemXW]^c\cfbju_mq\jlhE]ZXjSccZ^toqlhUjYhWjf^gYZdX_vhX]crQw`U\vBhnahZ\wl``Se`]nNXVdecWhe[QsoXVZPHVm\pd_efPok\b^m|gnSMeR^Pc^Hi]Vk^deR`ac^_ahTY\k[g`d`wTRcceYkKfbPZcnh]\WjZaeZ[mra`XW]TkVld_jnqUOcYSWdPoh^^bfhjZdmen\ihl[rWQNX[aidxV`geh[fS]K`ZSXMm_]XU]iIL~hbbZNhRyN[ed]LRccNRY?QFhP`fcxb][icwo[afnanhZ]jJP[LepSZ^gU_[tGNmkMakgjYnb`[XsUj`e]cW_xNW[XeujfYhbod^\pcSVJiW_e\bzI[l]]tLSYJiVgmbPnOWNqPf_QQmmZHdrJez^_s[O`adgHOYr]RaW\syUSsjQaQgcbd^Q]_RdQIPmgdgOf[]cgJb_U]g]VM`ZVk]gUbue`E_tg\aW]Lu[xc]gmrbKSa\iJdgeAmW]WabOYjgrcSeFaUTVhZ`XScJVbQ_dZ`lPYpGakUQWal]mQtN^|VObVb|eYSUYORRh^UnxKlon`j]Y_cOe^sbCbcWgQfV_c]QPHgbMK]gpP`UWOJLKbQZ^gpoQ`N|nZP`sSfg_mPZ\XqmSw^_cUN^QCPeePfJE_iBpfmDTIdAzQY[XIn_VT_XWs~dO^\ei^\bgF|lh^f[OTiRqfrVYkOUaVV`kpYplynURWYUl[qlpZiiFrRo`aiQlqg[XYyamY\h_ZvEnB]Q_Y^h]l_OcYTchZEs_fPm_[m[XNTMl]gZ^pbYiLiVRcniGeydPaPFWuBiusMS\sJVlgxaw{lhQTZqg]hy]S]XYktQ\\_snWtbWTTaQQZmVJekU]kSYdWdmwcU^XqkXo\fdkdfZo_rQ[c^jfPVufPWZ^h]Uf_cnfnmfRpdwa[Xoet^ZghcmwiklcoGYn]ea`i`9TmGcT_el[dh_]ma|P`jkfz`onx^Vy\q_[bYa^]ihx]PUX^U_eoo`kjjqY_dV\clrVjsbhion`_cfOLVSIcWRs`YogeYgjp]iW^as]hYhTug}WTje\hWfsT`ReYe\\j[\[k`J^uN^]hbW_T^j_imhjQb\X]NoeU]aSlm\Rdib]fm_QpwV\o`jWTe[RPu]b^qf`sgU][Z^e~oc[gXcaiIqN`}rqSU~gnmrWx[tXi_ebSgQe[rzhgwnbleel]cfa9_fbfW`wQPNca\[eM^XaXQl\^cYmlbnaf^MbIQhVPbQg^^YcZ{\_[UWqXeF]c^eP[d]bPuhaWbbeUg`^LaJbWdFcm{]GfT7oUjiinr]oUifU_`aXeU\iUj\jlTvRdc\Nivu^X]qWc\MQdRf`_eR_R[lN\_mYP\t`H]eOoN\VidjRRpf^oXIF_[id[OSVVUV_Laj_T`oemj]hRhZfYi{pU_cho_QPKZbYPYjUK3]`]RXhrUQab^S[QX^femYOcZegTUWYdQZedvu^S\fRVxQfbsVYOm`fa[d[PhNTU_`fzWWfhxLwdg[hxRftmQNYQS\jbWbYjcsglX`mP]Yd[KTU^LqzL]X]DZjTR>WPUir5Z`]cu^]W_b^k[_sVcnKV_bo_hbgbXgcpbfYN`Tpy{ddc_Jy_eaojf`it[cVeRefdoc]`[b_]XTObn``\b[lceMaYkiK`XRY_cacvbdsXggXcxajjZiS\gWatQW[m[dhKVHQdkVP^Vu^[mdP|SQgVh\dWZc_LHTW@dYagLa_`g`A\^YQmWeaXNetQs[lSa[]]`^^O_TMWOl\sXOOOzS\kdbMt}MX[Wjrco~Z`LOUS]f_^baYh^^oXc^JubQ_T`glKMW^`bxeRPcb]c\yNPZTZ~kO^[K[SbX|QbSYmRCOVdSNbWHjPUVnId_dBPZhRbX\`ncObVXXRY[ZVlUiI`lNTWcldfnVXxlhgYD^JQYCnJ^SU\S{hXQdV[fX[\n]RfLW^:LEqWGTamMmegX]UQw?VPmEbn_^4@\ENsh4H;\IH;9P]VHNcO;S][sEUBhP[WP`O^iaRa^JHLUDDLcDUJdQ9lLW?8KAkPFAJKNRGaWHPjCZccPPuGjL?iSBOZSUJIZGHfoF`lfi\OwT\jL\B\YvmMQMhbUaU~UGIPG]MlXQIzeoU^[f`BUYpmYoXpmQgUhZ\FReYlaeY`YPqpYN[UI\\PoLcwQ_~XVVHXjUi]_mTyVziX\TQ6URqgw]yNPNX^UiPU_MYrjeaYUPWpL\U[X~UXdeTcaPZ^ZVV_mXkWV_=\YdfJ\_jWo^PLcXSXOibiU]YooqjIgV`\WeN[RvZfgX`Z_vzjzoPh`]_6RbmZD4UU]^`aYhWdbRh\W]vOR`gQLwfleedV^bfl]XUFV_U`aakEW`[eXWP_RcVVcTmZSdRLrQ|e][P^:j`nUDebtPYRn^qa`pj=SkOzUmw\\bSj_Pw@\_ZSoRneIqfOTUyNg[jkpNSRalaeUYVQp[\HQaZUOyb`gSP^\f`_XefAJ]l`kcIUohbh\OTe`OR_fg`bYZnPTuY\lknivv}Za_bJgdn=Rv[d\^bRij{[S^ZUQU]uLk`aR\e\VtYUikV{|eZtgdRWL^tr_WjPkX^jtg^rMbQlVR[XsZ`aUlh][=p~WobgZ\ThtsXrmTfnal`URR\e[qqjpvOJIb^\if^K\So`g[Hkg\WPpcVeUf\Qp^WlD\[dYfiQpdJK^bcuiadTYZhTK_lQSgi[x_`Sb]mRylrfdY`ZZpgfX7c[qlYfVjSXYrNdXV\b^oU]YUs\qWM\k_SuMk^cSjhNcqW\RD]h\ckV`\kZleVbJ]HXM]^gONRXlNkdoVfka`glod~]QOMcMeik[hl[cX[^UbHeXoXGh`OPkQgbGnaWbC[V{YY_U_Efj[_ObfO`j][][e[UVhUr]^YsRme]]Vb\nbZV\RcaUU_ZVjRXXWgWY^sOpObXQd_W^U[JEPevYcU_b[Z]`Idcnmp\[Y~Ph]YbQ`IPMRgejO[wpphV_ebgSIh`[RfZ\ldPFUV_L[Ufdb^_dRZQSX`aShZp[eVY^mZHX]SO^mZTQp`_[_O_ajkSvXMoWRbZfaJ_Q]TiWdQ[OoLvEVXNZZE_XPL6^gScXoKGddf`RhWSTWLjPTar[QcP`YdU]h>aHddKIaVV^~ShmQl_i`Gudib^X[n}YW^ro6TfZ]`NfygceNMW^g\TtBNh_dLd\RjPPtUXK^gekpbeFb]`_]]WUHrmcK[UTa\UbJLMNRD-VZlRJeKcoVniM{_SPc{EZmb\jMOLcc\IvQO{\QYvdSRq]l\bJ_gTUY{^``C[`oUV[Wg^dy^Qb`Ldp`]uxo\^tShjhXdbuleOB]ZV]HZTfYZ][YpNgUAEagfeUtekmeL[BRuTWNVn`OhzRaPbtllfXBeO^KbXbRV^^jPfOce^_f^ijp`XaM`Sb\ka~kSFNUcS`OU`ZwbUsRejfj_|i\[dmV`kMOOimgF``q~n_i_m^sska_cCQdSTUfmxp`ihikQf^TuoTSfSi|Wgzg_YzZiPf^q?c[UThR]ckT`_[rrTUTaZlmb^NgnSXyJvUhleBte\grfYXeLVmP`V?O[SZiaase\\lZEfRbjHfCj^gR`Pi]^VklYm[o\sPZ]ISPXdWmXiV]p]PkXbfcQ^riggibhtwUdlwF^jKZgIYThET[T77H?`]O9NO3Qr\W>M8Jo[W@L_OCWhG3avZB7QA^>N8\Qs&bG]JT\f5Q;U^GQ3ZGaYE@UV"DZ@CSuKOAWR=kO9bLQBCW+]g8]IBJJFNB[S)cV^F:k&Xa;7STBQd_LHPM9gW?SIAFF?VLGKJSKL^`LNWVKyDL8NGPIlb,FT_HQFi^[SXXqc[_fNQctdtTchrh_ea`@`dZjSN\bnOddWX`\n[Q_[O`fyT]XWQRjbfgNi\U[P[QWdr^d]btmbI_lSdgUohLdUUMQcP[`IV]TjaaI`gX~ic\]_bQ[Z]eZ`jkql_fnTZcRY[]kUypWtUqaXViSNlQiUiWuVuaR^NjPZWZ`sL^[m_rr[\UUSZ:[esjfZbXvfUohW`je~]jd[x^a][ZgQYObef^SoUxPThc~Saf`SQdqoSfzTd]bWRB|fI`b`JrblX\sYzYLqdilywX\X__b[KbYTigBaY\dheK\[y[\V[RdlRg}FU_Zar^w}Lea_Yeg\XKk[ZPQYvXP]jhW}ogu`tpWMRUoP]YRW_SdfOUZQZZq\a^cyY_\UzhKFu_`OUkRF_Z`H^PkibsUdjaYpyjjTMfg`iVAg`XXNQpYR__jFMR_KJk`^Oa\R^Lc[QVYUaU[GHSZwiQeuOyTWR]JplNs\ZbPOO{MT\AeIUecPRS\aZRQjQX[\b\RWy]`^rWaaiXQafDqThUCZfU^`[`fkUTUMMRSbLTQj`Y__i\pTGW\__hTTY\QRLMSZR]GsMwTOBhsTaZQiPgI^RLfWuUPeOb[o_QmdfdZSIQqVXPkKLK_PYNVfWhOPT\SZVUU`XkUWimpr\^`X`YVPWQ]YeSJr]bXdT]Ygphcla`eUy[NMWlb_g^f\ei`][`baKY|_d]WRXOHgLgeD<]ZdUVMUbfk8glraZdPObz:iZTM[V_Fb]wW`fYeXnniaGK\_SXpkZdnqTfcXiQg~cjbY`W^vRXsmJovVcSll`gjiWg\XvPRr]W^bbqJTVX5HuXLW]qYff^NcgDnCZaVaUdXMRWl_kVAgkrGRSY\^ZZWxceMaWKSZu[SoaRWbicoplRT`k^ibhfXp^]^UmVZiW^Uhr_tNaymbUkWidVn[lFZXgi_JPUOMMOXU^i]jiej[\_Un\fSk[i^J^S\eco_VWfmepoJ^Q{MbTL]gbg\hjU^]tOiT_XgXVOU\\YlbmYdKjX\P`Pj^teZ`Od`cXqcpX`b\ZWKgB`\DVcKh`\QWVwgcYv\[]c_cecg_dUom[Z^MQnkRVeuWXmWGX_WstiNgMX`h^qYjntV]bznqZlHfZdcKdVUcfSbXc[WgZ\tWf`ZS[gS^PbQWfTe\e_aede[zS`Rh[[ZVeUccQ]o\]Xcfe[gVeVfQfcOZIee^]U[`hO[_f`Y]e_\nIP]Z`Lb>XUoXafWZtaWZZZ`r^\iTf[[`krZlnUbf[db[NUvNbdZsgXi^@\XK[lWQ]aPSdYS_Koig~gTUQV`ZYYdcSYb]meRbk^da}aZbb]jF`\ZVQiOO^^gC^POyo?]Q[UNiJbS]tkFiZVDYVpgRneReUWSPNWpWf^V{OPHeMGl\`HZVN[iXiPpZgXONehXVUPmkWM]e\jGNXdSqJLfG[[Jj]YS^Mb]QP]Z{ZKgbinoRhNvJ\hmiOiWYjO`jgIXjQca\N]WI@OJWeWTdG_iaqhcnVPaTk^Pt[`ZZFZWZPRdiVVXib`kXRZacu[VbNW^dW_kasiVboWlWgCke[f`ve\ZS^Zp`dNUYe]fK^x_c^dfemebabOm\v_cZ}XZem{JxlQ_[XZ^bYi`USdZ`]P`X]^VOm]Ya\J[MvsoQ^]NYxgdMl`gkP`c_]oU\pbokW`tLXYdsl^KYmnSq\`]`pTbSf\YhaYr^WpL_eoZjZ\d\ahYpT^bdJZ`VZg\kapjdYb]_aa`lwfM_emd[\jid[lgaibgeeaqil`KmldfveUmVJj]Zj^YjP]htWW\eO]gfV_PZT|gfahaaXg9|aLYQeefw\^wr[k]]X`tjXlWdjoc`YmgU^SqYUaXkpflhp_V}]n[b`u~Lmjd^emrqf`jmWm~gZTRZw[Fb]ZjsZtYS{d_hcoH^hYMn^asocfZMjPa[eejconU`TJS\\RKbajRiQM\aQfidTSpMiVlce\^VaRgkVahkbEWXY]O[@cxl]m`ink}M_N[IdYiiZ[YW^eerM\[jNYFSoRQ^qd]]^Rsl`iSgvVTKtKKY\dOl[GlIdeed_zarWWxET\NjlcXrjWbgoUQTe`Q^\^baXZYl\XfoQsc8_Xld[ZbifZ\e_l`baReaVXB`k]hMWOYdifiSb_ZtNZQRefdxU^u_gSbXgfKOcfU`ilBilYUcuYWsiqiYSmLok|][jlAaNjecb[dp^hWWvfgPdR[ngYbjngVUaJXhZbyqT_xcKlhXawYjS]e_iQa\Tecqbh^P@_aS\^rpkvcdqFsXmOVBJiITZ^cT]MW^SWNbW[bcdRWXYtk`ZX_SSgfSSr[sYjXgQ\p[bHHj\R[XREhOnHZTdX[yLOcKg_]_pQWTQO_Y_\\YZn`eIldQoZnPiQTg^]SLpdtbbXSgelaXf[RMqRFdfJSI|OZ{WGz^KniU]XNVbJFjlhMp`TSZcMZBSTjc^Rs]STFQd`[jgWNxTNfUV]R\gvNW]ebeO^]ZbQZPvuhYiBdGegTfoVWiUNolZdeTfMmUPmWeSXVZzkNr_UijqTgppW_i`aRNqQ~]bPMNXKTMkkjN?SYpSTLsgWQbZSuR`ok_jchOx`J`hquU[OX`bVQqu[PRm]eMP^e\`ZV\fctVsbfpUif[Va\SnXREa]B[_RYc}WcWRRfe`oMKaMcqpMThaiS]_Qh_[p\b`Vg[alZS]T_[\WWzYY_hcM]Mc]^ZaVgKOjSeR}Xqe`mfLmHeQ[kj]^ZUcehVvMjYoR[V`l[eWih\bn@T`_J^Q_oigSca\Tf\PfMkhVpQlS`e[]aaNeT\UcqU_J_X_J_aXbZb_OeWUSwX`X[UFwujUdNYcOQfTP\_sNZZRYRMhTDcGJfOr:MOjLiah\[YO`HU^]hQ^hlhV|^pa[[S_yb^pf`a^OWf@XLWag^_Xy^qI]nhVUxTOYC^PqwIVYqVWMPZWKmYantKa_M]euJWRQOJZaaSeQLaP]8SbFd\`8EYWRy[V>Dde-CHX?ZmYSNFVGf:W1P?`[6PY[AJ]EqmJjnM=S[=hfRdrcVQjTIqTLmGXgREPXxJrIXZ_A2=TIivZja^xYrV]aYf^bbxbmWWdTbj\dXruobcgTm__a[YV`g]suW[YgVieeic`i\RZa[fOc|P[ddPTQT^tn]lBj_[[muWvXcciXZTTaafElUQg][]x_a\dwfUZjaW}a\XepROXWoOd_vv\sku^`YZSiUf\]\fjdNokal\dRHuJS_dZsU]_]`PSYX^mwsZ`\i_`Pyj[[QY[O{kivZ`VefU\v\QPTcP]`UYjzd}ZibUCTn^cm_xfVRKVdN[jU^NfTa^mLT_Q[F_YpfieZV]hiR\^d[leghiUEa^R_UcgF[@Q[O\L[eJT[XNOfcTYbP\g_]lMtdabNbVhPmnod]]`g[R\K~fVXRTqX]XeUmWQVdSZSmdbT^^UbU\h[rcrr`Twtbpi_NbVjcidesYgYeenrXcvQm}_^g`]U]jV^eG\S\hxahoVaVaPX\_\khuKfnUCZ[__[`_WtbhagPaode^htdYU^lOi\i]h_U\QoT}qY`ha[I`rbrbwLdXSdx|_h]bON_TEc\YVkaOdaOH[Wg[hVcfVrccb}OeaMd]^yqh\gt`_nV`K[aWWE_W[ccZY[`VcVcPglc]QUhdrVfYVr]aQh]nog|a^Y`KgbvH\`hQbYIiPzUa_aTRRbsXbs\QhRbibk]^fcMS[Uve_gpiHrQqkP_jPYoZ[d^PV`XmcUegWnTdbabe[TQn_g`[eYXkfX]b[_]fk^R\c_^\Tf^`[unQZSbXicOQgbotnQeQjRnaW@kYRWTg`unR]c`i^L`xZXXdthami_^^^a\bgadf_RXZenSad]SMIrMOfZN\\MdVXZpglS]\YW`_sgYQlQl]icd_XWh[hUs`sD\giTmeOpZSekSZSsZdZc_[`aaj]fa_]Zj_[U]YXkSh`gfa`ZkhlVR|SOoUQJL`_cXYeuem^gWbWwmg[~[U[ZZOp\ba^lMSpRYcZeciUf^abVsV\tas_^\W\a`i^c^]p|[`u[}UeOkfy`ThbdWdc\fIe\XPok^rqgfQZ[s[Z}cYahcj\jajV_PW\FfW@ZWfd^\g\R^{`aSm}]dfocO^GLVRcV?_takkpWfUSbmfv[Zp]ecT^ao_jobcQomhueimWY\m{p]bKlxba^SnQZ{OdMg\pOga[J\k^HacfQVfsjZWbRnt]h^gS^Xn^dhzjbgVSQdUkXl\wub]aY\g\^Z^`O\Hbdc\rXJ\@N]dcYLietMb[kf]WIb_NTRcZfYWXpLuXUkK[YSPTnx^e^bc]_PVOnj_^fOYq^]Z\uPlqb`lcoh_XhNRm^Z[aLgbUPLeT[TNoVYTQp_JRF`gqWq^_n_L_]jm]tW]RVU\HQROb@UrbdEa6c`rKVWf][^OmdeZm`g]xwZ`a\F^malf^dftXWUkOk~MdbchWVpi~dRlZaOg]UvVafofasjcggR]TW}XfVhffS[j[h``Qdq]u`y_VPaO\rk_S`[jeR`xX}kVIPYamt~pfgmYh`tyY\bZT^]jVbY_aTsX`YemVckaUVvGeXPRl{`eQTX^J_\SIn_G]g^U]m]\QlRY[aNZPjPOmvekVf_QE__GemjV_^plIXaYbaqiYdNG[aV`I]mO[O[hTm[\`UY`@VdPZW[VmpQV_aeb[`^^gowHY\O]ScgNYYN\HnIca[cThPLhFJSfEXJP^_]fWIplzmSvBdYZkSegjYgmb[i`]^YZenSMFpYddRPdtT\Vt5pVYpaQ`gRcWQe_i|MmkjWTS|WxNJ_\NXqgaL_^Lb[NUTmuXWfbpaHICPYsSPT^gaARQfA[KXUdGa\eWj^tUK^`dbXb[t^^Y^P]WT\pBTfacW@T^_\X\SSJYj`PixTZ`Pf[WFWY\]RSVVMOdkT`G^ev^emTWVU`fVrFfWWaRWf`SkcMWfhbRF`Tmb[cmTnVu`HM_df]Wec[]RKhh[_U[a`_SZ^JNZeg\XX\`W]]duljgSKbEd[^`iNdSmWXjkmgu\U]blcNGwdY\[ZTcdoV_PKlYfmeTdqOfdV_nBaXHcgJH[[boPkXsQjOdgWbmp^eDSte`iqb\fOon_\]kPQJglYrc[UhJnn`WMU_zcfZMR\iY\ddY`\PSbldpYnm\[bd`JR[w~QuW]cUXgek_f^\Cb_pcDRUfu]bmUdZ~vYeOPX>VcRgYfgeOS^\[j]t]d^`lmJps`V][`at\bXPRfbeVpQWYFTlo\aTVaQXv_Z`jVjj]^gS`h\duXdcb]WhlM^XZbkUbt[\ZRZ[khi]gfoqYUBZc[[XgsYTiVbd\lk|s\fRkmXGsdboQ[XUX=^NpsdTVRWf^p]fQs_`lNhcShQRT^cQYnVWho_Wb`iYeZV_R[iYGGhN\XDeZKRE`UPEhL\LIjHBUIaFV]RNNTinNW]VTYhk]~hSgp\tgNXZaBHO_QuiU]=YXL1\cRT_PUJ_Z^ZdblYZJTIncuYMEfK{]pPXU]IaYhnUXdXGVTJ_]IZKUc^g_naMPuV_OQ[XEaljTQ\^dwEVPV7QhMJYNmQnMMUoKbpnmM>J_XW]ANar?\dZuS:JT\OMgSnT^N^QWXf\_VnPcP9]=PnRU=]RlHMRuV[9VkT|RVgwFJ;\Jb;N^gafP[TUQBK\aJ\WdIPY`bQ|OcFSY]M{@^SI]UY\VZb[gakfRX_dWIUH\[XGUL]_D`hPWLCFT^eNkh_iLOXkVenZhn_D\X=i^{kLefg_uhZVahbUeTOgKfdmcwgUZ[XZUeWYX[nVekU]h\^ZhVff_`amka^Xsit\ZhhPh`m^ctYRnoZdcYUjT\ZEcb[]To[QjZimt`]sdanm][Vigf]EwQSiq_QQYaIXMkbkha`]tlMoiSh^B_k^YUVZ\VVHibUj`^ZciQXPffja`aIFYfZVchdY`YZtS[qQbhHXZlTEytkXh]`\s]PO_^nTatggCdU\[S]juU>aOsuHZw\^JigFjfa\Dev<[NgsK_KeWrrCOid_`uiGbOtc]`tfoW[W^qa[CfEeta^eWb\\g[h\gUtla[g]TPXpK[?RWcy`PiW_jF|oMTYv[TQWMcaAgvTZIHMOpER^r]VzSlNIZWoLgSPeLbGa`Wc`T]_ia^\ojVmjU[f[]\]YfWSngYeTYye]]qerOaVOf\x[_Jb_\nh\9UuncWfh_^eZct^^iYUd`Xn_m\^ddQgY]gV[X]atbgUnmGjf^nW[ORjQ_ueaMVU_l]`qb_sVuXTZ`QVikhokmVQalqcUu_cdTUSe[dkO_sgcb^XdSsZ`rm^Xbq`LtV\`g`TZxNCQPglVelnUjjXY\`SOGEhene]YGYhnXnq\Wa[UIemSTSU[ed[SUc^AOZHTYUbKqS_bo]pYNlV]PXXsLfg^XiRkakaYKsTaeeOSY\jqRR^g]vTW^Ibi?y^gc\Glf`kDi^nZW^ecPXWYOnT\TV[pUR^KTSWk_PNgvrnS]I_a`WKagcPXU^O^Van\_dnNWawXT^UN_ga]wSV\ca\^FXiUp`Y|UVujdtZ[KgtFX`|nRdXg]gV\S[eUk_fX^gQUPnxegf^\lZrHmZf\tfiKZah`^SRi^QncTOQsWbWfXkkgTSlYsamrWi[WYLe[Uh^f`XjrhfqqlkbWeTYm[e\Pbfm\SXKlSpUhZUFSGd`cM_c[hmYRV]SWhKZZhamV\JeiMQF\cNQbX`\ajjXf^agLfoheW`\okkZkIabaeVqUVdpfMVlalOBdBmgYdZn]TRWheJqDGTgZk^fIfdP:^n[kBR]MZqWLmM_RPHY[SQ\fQ_r=kU^UiQ?OiTXdJO\eWW[eU]uT_ainfRtkhqmY_~vNQck^_]MiLdFDR[[ccUclVhiOU^EcR@TGVLjdd`P`]n`JbHsM]Ygr_UrjWVXLP<^nTvvRjRcQa}]kbTd`XpqLhNPV[WeKh\haZRgaQfcS_Rh\rki__gIa_^xblSRYnu]feYUNeQLpueG\^UXKfj``\SaUWrvWKcXdnxjnkiZqq_dlIdIf_Zd]hqjfealvaYpbWPc[oRZZcmTih[X[am^jS`\Xbd]dOe]j\X`Ts[j8ZdnLPeMR8XKGZfQK_FG\PKZd\X]?Sb^D^[^VaeJVCiUB\SGjJKDHI6L%YbU\YkFZZRiPHZUbMZQTBGbMaa_Ki^^b`Y8>_c1JfhaMfhXL:GSWTaaNms@NNciXQmMj\VN^JXWTnMr?oKo]hP\l[_VcmAJWacHKBF.6ZF+gYPZMEhj[UJbF:AWBOL<\H+1UC=YZL<]80eKH,7\B]+D9?f ?WTD1VT7XYDXVW@CWITWGF2<[>;KC~Q5LR]FUE=W7g3TH2NUZA9`;N6HRaYTKT8UKKLOO@RSe68U[QUm^_SNis[`ZcjOfdVipZdoW;\?Ia4E\SCIHBOi[:2DXViId7IJ]SQZR1v9O#B\OQFYJTBM?cV3i_XgT8Bk_fLVj`Uwi^gG\Xe\YUF\DSlgWfODSZWQJeogWf_Ncr[^YYafnZUsgB]Z`va[lcKF:WkXO`NS[aYLIQlGeMYFd]\RxioDPVJP`fNOReTbSMgXnkS[w?^WVQNbURHWUiS^jGljOdVoJQdPJOYXma_RXPRO\lIS_\mYkOdgffWXfkl]cbqelSP_ibKjZZxsyWuRZLlea\e]aXWh{\ofjXST`dUrZTxvVXY`Q_eahYYLbuXa]oac^_l[mMhVtv_`wyidUXdEZv\YvZdYze^X[cSorzhSY^x]V]aIhSV_R~ZxdOcxrYzcdnZ`SJUYiTV[YgiXV_^iWdWamibWRXhbSaThYZQIXc~tWJ}S]UdhOh]Sz_yzuokcdS]^hSjSPNNcfajPYiPaWnn^qecdwu_XaWl]kaeaVRZfRHlajQnaU_Ya^O]wbc_`YXsIToepbj\fmhZg]P\]vr]dNTgU]clgck`YMh[\Q[[c[ec\Qcj^Yh\YrVa]bnXdSbRaWRgRhd|qt?YPg^Rs{d_`WhNp_]ghf`dnia\hy]LmSS}d]PPd`XacMb~eKb`Q`aQTigdTah`aUe`TgdeibexZc^]eWk_}nTJlNcb`y]ZQgNek^NgcTZ^\ggHXTSXa6XkM]RmvOUZNxzZaRXmpC`^VedDTEc^I]bkdaW]dbVXaSxNnp>ckcjalfldkY_k[j_QXLahwfgh^dZ_ee^an\ZDu>a[jbcPZa[YjnUcdhypJMxSZ\wYWUaM}Z^d}P^cPIbcfFYLjsIqr_am_\Q_ckjXNchgDMqJ|VbX{g_dbc_[\^TTg~SSDLfhqfo^WPctSZhn^TX`Mu\YcdOjpf[fGcrd]sZ`g]QdtVU^x`]oVPNla_NgbXWNaQ]pmJgQRjcjbccSXYigxjITbwdyUcRVc_ahaf_[`fai[j_lNZbWEWhyDjURZa[YYUOK2gOQMXPSNCmSlcPd[UOe[XFTckbdPL`xb\Q]cdJQ]SekF`y]jdlYbYpWZTJic^wlvRnTk>JV\`R^RSNXQphX]]\nS~\CXjjagXZ[eqRBjUd@iheeUV?F`hUYcvE<\^K`_DYOYdEYtWj`fROxr^YgrlJepexgm^VlIiQYMp[exbRh]rZT[^VYV_xhRY`dXP[TNZd`xewYR}cYBebccia__jMbOchZbe\Qh\skQ[U[XaX^^gfi[}keYOai^]bMK_ctg]ae`hXk=_R[Nma_[^geiOuoCbrY^TmbkZyunfcYdfdKVircbatUYR_d]aeHUcZ`rPd`\kfZ_ThNM`_LXNcvUsgOfcNOXRnlb]VbgjNqLSYyK]TXWdabUKL]oZ`p{Ws^Z\M_@jcWg_fkn\i^bhXrxcdYol^~ZdrcUhgkefVaP\w]bginKyiXkKa[f]XuyK^l_T^NqO]X^cgAcRlTqfhXj_oKin`_aUmuSVMY[biZRlzW`^TyUXW[a_kOSf`\jfXx[e|fZm[M{]mm_ZPdblm[qeNmfrc_djz]Xg{ki^bTi>MskP`\ZqYTojh^jmnXr]^HdZgNngi]ceitcO[EVld_hbX_fa]a_ju[]iZcSomb\plVcpY`LPdc`lRgc^c]eY]f^uVWj`XXaeXraa{VOmibtRZW_FQq\oZa`[SQheV~cm\__VabzcW`PbV^apajl[baS\\R]ngfcnVoikbajcZlfTfYkXV[aGprn_g^lmQSS^hcfn?Ljqn\aOdNDTTTXVix^XhwwfgXa^RZ[jS^dxcU[mapmykLTmFl{mapWaR[Oo`o^fRYcl]a;NaNn_T^^hnYglal]hUmoX_Lcj[^Xfa_a^WL_SQXUj[[VUU{TaeAxcgiQqj\`TacGiebSRfaKcZaMrkUlSY]aMXwQTkyj[fn\XZUh\eXabhqvWcX[e[efidaqbbPf^Cw\SZhgkMeuRgW2\hR]n`NldYia\TM\ZjSjjYW`{zhinXidUQ_3jhkRXexdiWt[[`Sb_aecd]ycDi[frj][PauQMXR_PH]efY[bj^gY~zcSXsr][idl[OppR[khe]`[`U]Queb]olNbVomtmQXxV\]oc;bRuZQ[YW5v[VWiZON`TkWK_W[UlNOhDIJaYUpT\TqZJJ>seM^\ieJqMcCWP^RTZg[qSbfdtcGvqa\T[[VOdNW^XHQXUV\XWaaINZUUKPWzPr]`TPlOablERi}Tq]VboA]gNuC`Rj`WZcfc=YtegZXDWzZ_KH`iS^U_cVGD_WSVZNLXVcmknaM]fSWjWX_`2*^@B_V]F@^H]]CR>OYbp;lYN]W=L]XHMgJRbi?P]JHPB[nJw:^iWHMH[A9QUX[XS8WS`u^\+U,W?gWDQ^ZKWYBE8UI[RIOMaW>ZNbS_1Y>FXe?FdU0hfKOijRJW`NRR_eqGIULMUAe6TI2DQM[`]_N>QOTMJ\YW^WULDQTl\ZbZWi9/bTTUjTN,CCVZdcq]cpSOmYRXWoRqd^MyTf]WkdoX\QTOmXUbyPibUa}hl\gdnNaTLYEeVeW\YSh[TNhLyfjHVROQal\]pe`GdY]ZhZdVobgchiLTS]ST\UP\upYbQZe_n{WNafa=]UWhdYSP`aWhnGXL]]\_PjS[IkJjBk_bQaYYM]Rp`Jz_meWwU]MO``]hmn_\bs`alPRcU^ajXfWiRZ]MXo`T^jnWx`J[`Y[_\jigIDHeao\Y_`_bFOPic>ZBYQSVhSlOblahlaiXiNKKXg@C?PdlLYNnZYqWiY[s\]fRt\~eEa_NSQydUyFXPIg^`\c[XxMjbKSTgVbDGjSTx^[TdDQ^]T\rZsjGz`V]dffDJVV[RdekJN[YdHdV[akaFSjbc\m[eJ[O\`MFHYrjTTThS^RQaaKT^]`KQfKWge_rXM]7mcd[YXVa^_\czUZo_w`hZfS_ynUJYnUNmRVfnU[Ue``bBi[\cZ_ir^XRNzbZ\e_YTmhRLUc`Lffj~sc_Vm\P\T_SepYnQiYu[QPZmVth[ljhbfqOgedj]YUkQeddXYeajbcgULMp\wRrUysWRm^ozbPVubGe]q_Sdd]pCVb^s_]f`mkRbYVYb``hRY^q_jLKZVSthSYNPjFW\Spp_ddiTTVNYeO^JGaa|`lf]XV]JqnNPgprX_P`pcXT][WIcdfYPT^p`Thaefj]Rc_`XkLp\\ZicskQr\`VgR`T^__dY\m`XYgwVpve~d\kyo]\\WdVYdh[wKisW~S_`bSoU_bgMnc]ZW`Xi]h]p_ojgksadSihTZ]b}PeUYsdTqVnid[Vc\cSInm_NYks\ULWRmb\`MP`TWZxYX]sTZhprX@SXbOzVb]b_kgMfgd\PfKL6\CIa`]_SFKlgYMWedkgZW]qZhyVnRTNbF[WVLU=TVGUN[UcYHbW`cUYQjMVNpUXTybYZP]W_wnRWWa^SP=^ZZOWhKuq\N^QaOT`gXYFFaEa[]4]mk_O`[sk`\fY^gZX_V@XN\dfE]NWbW\bST@`POWWOdMh?cF[LbMXf`Yx\P[OxhW^aOa\^GFxPia]^VbQ\XTIVdT\cYV]c~T[OTbOTg|kTj^EHn_hkQtlOfYibr_bMbi[X[hOUhsKW[Y^_n\[MezTk[g_i\WW\^dUdUIAa^]]c]pU[Na]Lj\wb]bi`S_hR[Womgf]sdVdwkeScUZ`i`YVT_AUccP[VR_SVn`jU]VZx[o[]]^Yr`PmdwZblec^pT^aT`S[LKYcAR^PB&ooR6n=ANOSP^SKJQAWRKKKcbhEEWJeZOUALSCQNGE>ADQB=FKR8BELM`MJNPRPMNSai[`O;@A6ReZji\[_RKeR?BOS4ZEEYT5EL@AnSFcC^.D[cCL_h3>^[ZT7XW\2bU7UXHJNQCSQ`wg`hgsNSFWLXpaXPURSSWQWjOQMpUmYg[be^`XYZj_baYWf^ZoP_[^fb]Y_oyheafh^nqf]U^w[`Jpe^_zU_`lUbH__iTfOTheuQFjlctLKo[gh]\U^_[[InVzY_e[oaQRQ\bZck[\_]pU]\]Z^Ik{Wh[b]JPg`Mgf[XOmopeemMTfdaL_UkdkMhWbiMNSLQXUH2Od^eaYCZZD]fK`pTD]eY\kA2fSI]J]JSdHM][/GW?R@W\RSQZ\VXW^QFN@[UJBTerTSLQiU^=EPI`SePuhBXc?=MvYR/Cb?;WJR\ZZOH?bGS[TDTPULGZPT^VV?LqLN9N>5b]MUKTK_`RJGIEABM|MJP[SkbNe~gOc8{pdURwjSihYmlfYae\|j^[SWdh`aWgqet\a_gWZgcWdahznqfmi][\^YYY]md\aab]lafnN]\SI}iQWYif]h\chcmxaTk^heYZnpdakdhXIUXZW\je]_e^PhUchfd`d`Qi_{\RYT`Z[RncxffjM^reXbMYm{ogpafT[n^_k`\bPWihI^acT]|pur]aY|mheNTtQlcjr\{\S^RX]\m\T]UlzX}bejxXT`gkgTRPb~SbQia^BWLkg[PXbYftaZ`|dNcnZb^r]Nig]jc`YUU:Tf{UsYo{cJfqJc_MrQc[fZKalYng^tfPTWnTYf^g__ZU[liSPWgjhmZ[ZjccSGa`eHY_CgW*jcHgGbj|mgZwKU]``aPRPbdkm`hbWPVfucrkIi_`ZWsUHj[PtY^NXZWhccS_kOUfU[OiVYU`acbZkcUhjJ]dmeYgabOd]`VOg`jvMuaUe~I[yYbciW[\T^_Q\VJC?Ve^_`cVWi[TkR]Nk[~Za|UaTQhVomi^ZZDTdcwf`iRaqUZUm]\ZpUUIc\NZQaeZh\S^ifz]XhhOgff]_eqkqhfKo`jUDw^_odT_cZaLWL`YjeaGL\_{bcdWikfpJ]mbaIca{uceTqf[_bR^XZbLTaNfO]dUmUhqZ^_F_Z}pIxa\\]T`ZQQdZ^a`mipncWRKbi\_jiMhHvnX[tWtzbTiUYYghfbheJ\UVd_bPM\lcRZbnOSZUfZ_J@haft^m_]h;n_iWiZNflcaim]m^fmYykc]g_lZeUcy\HkafM\\hbrmk_Zkb~PZxt_k`VV[kqp[tR[foKdbYtorhdp`sc[`U^Tml_a{lOalZebFCccVo^ot|e^kXVW^ZrrvklTnQRd[^\^eUtbaccms[haZf]ijX]eSnZUOmsQMbj_Qeglp[Y[P]_S}VVVbJwyPjebjo^Y]\gZVlmm]ZnOdSdkZhW[\c~pYWWlX}]vrh`Wy]geW\ke\wSrcOjmq]\]qnJ\QchWEfS[Wh[[W[i^dlue]zWePcL[pa\VbV[^tSQZ`eGsjRplYo{ysjj|Ub{iefgkCSjrfljVnb[jSby\VZrPaYh[afbWeZmjTdU`YaeVZ_ZLdYnRTNO\p[fQZ`_KYpWHur_bdlf^fO[f^\`WjrYglgdQgcfV_c^]SYV^iaRbb^\bMg]_WVR[Y`e[S`]YVN``VcdUXWl]kclYOXdjh}X]^g\be[_v`ohsb_^iQbgZVPf\SiaW_s[]qbNTj^L_bX]l[O\u`^YevtYsXnfbkq\h[ShKUpt[cn`h`W`[VT}UX^QSQbYcjSg\YR][\iud_]ntYrddbrjgzXVaeXgmQ\aejY_f_Z_\lZgNQfXcVjOW`[MThpkroPKaofbvp\f]igq_pFgcGH[okQSghoocOxV^QhUda]UjSRlW[h\eZheeUVf^j[fZakzekqrkMh\vkfdSX_fIhahS[j[avNhJVddRgQq[dh_ddThbeP``NnpOabqb\_j^cubggSWqgtoQR`IjcOWUkqhIdmrSr_cc]XdTNpacKePh`RZke=nYiRf`ZL@g[XUnilnT^{fhnqfbeVXccla^\RYdV_daom]SO]_]_BZcHVQg^[jPwdXeUcbmWJi_YmO`]aUhleR]m`^HneWakhsN^Te`ZP^``K{Uu_UayWa[]_gW\fU_YrTQa`PRZUZa]zKhTVTjlOZmNKbmUIegWnliC`ho^KAXbdJ^_TYXlpa\Yn]aRYcWQfYcnGrUaYSo]^vm`mEvuPKb^h_W\`ambiVjP\uj`TahKQ[jZQYjQSiagiZcRdFU\gXPSYaXM~ajP_iz[ph`_lTUkIlvO5PNge|Z?P`X`[iPeQXRZcn^Wtbh]iUSUiYQSZTjYS[CW?QLhPa\LW\jeJT\lhjZOaK_]_TUkL]`__O^SN[Rga[WWYXlGDMiKUYsgN`qVQas_jLd[eS^_Ja_i]Y4=flcPOIi|Ph[SbReii^n^fX`pS`gkONO__gYJvdV^Vs]JQgQwQJa`YX\g`]bSRhYRNTbqVK\NVd\r]O^IR\XYT5MqGkf]eU\bTPlFVZP]LQlKBVSd@\RlZMcHTmoPLQ_^dYALXEJYmY`aLwPYLW>l`a^WPXY|HIRK]?Um`SfTp[\\^OOSVKTQHV`_=KbIq^IacqdnXV^\z[g]_U?[UY`We[hoHUmTL]rgMEcGAhlTlPySS]zWT]QobZWjc`QTGYESOEDPXoO`k\iKa]l]]lgU\[^f^bfNnvHYq[iZ]X[_][QVZhZcenJwdouUUVU]ia_Xquvn^dVcgWq_`bcj]7mnuYStXM^_\krVflqIfCoxbPsRTknO^V^bUOLObcPV]lfsql[d|W]Z`bje{^IaZfLX\frRYgzU]ZZ`ad`cpbZRgSsq}p_[lgdfudb`TZxRPgTRhAN[O[LqT@:AUH]i:DA:9XbQSD4ee>IH@AhP:U]I=@N^;4ENBPBF9GaEE.EJU^KBcRaBm?USKVJk7OYHMB5VHMFfgNLJ;YPPH[MI:5BN;Gg6U5CEQD=b@N`lLqLWflivbWg]gN]YKWOypcqYX_hccO]YbbUWla]Td[oan_s;Oi`Si~OYgjSf^bcbeFKcgb]^cvh`a\[Z`X_mf[VT^pTiWcv^rYTOTkheuctdc`WekOXPmVd_SVnZTPatT[Zi_XSW\pbj_ZZaYP[][iaIa\[hioojncl\dbcUTu]p_ahfocWpl^eUtjj}h\sZ\\hoW^MVdUZOZlITaX^_JZY[tdOhWMX^NUuU^qPmgR\hoT^XXXk_jW~;MbXLXZTJHIHOej\\=IU`WndH8RcRyg]g\\EB|CQAbKT=OLK`N2[_c_;QVL`KCKmJOTlFuR_mULRHa\VQBxgb]Wg^XNJND9QaVhNaAJeAN`TCHcKt_mJi]BqrTQe]\K^ba_EZJhNG\WWTqvWm\U^hfPXVP=IP?__KR[vbEeS[]XI]x]dLTKNlS\aP^^X.eeh`Y\kLbYdYkfV[`]Sebiu]QxRRlqqm`t`aeqi]czom^_MUQx]bnQo\a`c]`mbjk_Yfag]TFUgVUiU_\bailSzaki[^laadU[U\[T[wY[fIkjTmr[dZVbgh[OTl`SNb[^hnfcgYpYZ^jeMiYm_gi_c[gbQWi|aZRXSSg{[mQbjcp^cY\K`cjNWKweSTjdw`|m[GV[\V[kVqf[VUdM>W[jNgldm\pX^il`aHL^hiUMWkRsF_VKqgkkSp^ZcknQ`h`XbWUTgYfOb]Z`WZdc]^V`MelX_sShU_OHi{n]^gcmWrfgYX`qUX[osNogXY^unTySa_]^}[`XrY[dBZ\QWbOYLnVRdYhnQ]Rm[aUVXPffSY]JoZndpWM_mPZbrPo_Qw_ig\K]Wy^\jhoa_r[Ub[WvtKOhWZdZbgkV_D[U{ywZZgj\LClS7XO\Zd_\RPmdSW__ZmWXNPXPag_ItR`[^jmNjdNM\d~sfBT\Y\^[ZZXggn`ND\rcX_fc`yWUt\V\Pfi_oHjVp|_^dbUaKRj_iYPYdXKVytkbRJzNZgS_^]hDVdYhPlbdd`uUl\[XafdZaBSX_Xl_bbOnci@NpNhhTd]zpG^_FZrjaPeXMSXMfj]VJrO_LRa^aYYS[_[Iif`u`ZY^`v_ZU_XNSkhUCjaImWX]]S^Y[dmYUdiQZPNfef]PS`bD[XgRW_]NV^SijaoZJ`cR_T`FXikTNYkaSaX_cZfPjbcJi]hoa_[ORaaqdnVkdYeTAY[_mk\_GOohn\n[`WWyJVgMG^nghYnabTnNXPjRzi]]ndV\[gQW]LRVb^V_WDZcKg\OYXQdWYTpgWeqfVl``RVkSYNWXQXiQqIW^T@YU_IMdXWeNkkIjOSM`eU[lOlXRauXUvdFSeV}rMQQcU_h[Q`[^Ya_W]ld^k\z_KrnDZ\c]N_cVyl`VXgjLRfYdZYl^UZ]bd`MV]SZYZPZ0lLZhXOKTU[TiPOtZVd]eVKPO[cP]UN[iPW?iO[Y]AX[YeNXPhP=^UdeoU[[I\bSoOLRQ_iQn`LNYX@QZdiXSTL_aKN[T:DKShA]6X\Re`Ig`Ut]dNjbaS>yF_NRG[p[bOJYLhW[r`nFiKIjX_hMAXPOaAVQcevQ]WSSB`_V>BaZ_U^Rnq[Wb]Pr_dQUYoVrxhgNcdoaei__aDa_jX`Mg[ggxk`biaj?BhnQgFUp`^H[_XNXRjrdcR[NkfZ^NhmTlU`LfKebAm`wPs\RUVX\eLZ\yOiLcJVhffN[iiPEbeslyU^Y>bVphZd[TbUqnHe[[Vz;MvZScbWa\s^c`uS]a^WM}YsBa\PQMH`~zyx\}XVTclS`hn[RTY\s^ZtMYQqlgZolfNV\hP\OTQVxKZegfV]WKXgRUihd]VZxUe^_ckoSZTNoZobL_j\mU_Y\^\_ehN_\TjZZ`Ig]a]NPr{TlhTu`n^XwdknQXYVZaiQ[_dd`g`b]hRb[__cY\bhSVL^cXhg[chvaTb\pdmlFq\s`ge_dpVRdZdoXZ^]hYZYagj\IZUocR]iZ^V`ur]Yb]m`xEP\lhJdMrdXV\]ea\XOGVga^MjJm\e5uWdURXebcRWbntWLYTm\\~]_R]gKYNNlVy^S^^JdhRsTT\MjrSLY\TXY[]e`k]ZIgob`aV@Zqe\]oWKG\\Gd[RTH@PQWhJYrZaZDo]aParfVeQihn\N_eTM_m^Yad[\}TNg^dRncedQ]kZa]\a^RgYm`Vdm^mWsiePvkIvmTNdLsPjUpiicbaarhXZXZbncSoVWfd7aXwlkj`UUemggrscjc|Zdnej^j[`gi^_[s]M[^lUd^soIaXegbXcQmUfbfVg[icPQVbeumO\_[h}`tnYlcimUVRpQXk[J}Wi_cec`V\MchgVdfkQccSbXYoZphSjrlSPagUVpaYoghg[QGjkVbMynl^mVeRYP\XdbQm?IfYvbbOw`biYSjiaaWlVl}dRy[\_fcUk^cj^]fe]TdebgbHXfiYScb^]iYbhbl\RjelaGZZaONSjhYy}vkYS^e`VY[O\bg]czaw^stbY\QuYLCJmeVkmrfLq]kj`UPq^^WcUWdsVUhXL^jlb`eoo`ab@^pWWX^\]|h]]YfU[NnjEoTNWgu_^Zy[WZ[cdYRka]g[b_\Xk_gqN`a[`SX]\YaqdXduU_XdXYOkcd^D_wcYb_^QUaIOmlaw[mZ^V]z^ejm_`ebhY_v`aejU\}a]F`a_dq_ZjpZkSwW]r`QU[pY=tbLXvfgLJZdbgafwTi`SfTFqXvi^WZUV`]YifVjMNyN_cwgWZGfiHd[UaOmSLX{VcZsO^N\\pV^cWR[{DXbWZdZka^[S]L`tCYTxXV^Z\XqO_`^^Z\hHk^_\qeXthgqQt~fvOqsLseV]XdPbgwfbYqY]a_M`ajfn\T[ZQkkRccgiS^VZ[ZgW[WiZ^b\]cW^WU^hHWn~iGPccY\^TndQgOhe^gpUMXopZpc\b_gVbIjmVbZ`wuUZ|idjEW`i\b[]mMwO_`]ZTfyfUpjeZgV[laPepkZ]qfam]d`F[mBZYO|S`XXeurmVhLdVZvYzdc]^VOQhZTM|oc}Zj\k^P^[jrlb]LqY^fgefyOWQWy_`Xk[c\`V`Y|gZzN_]mQa_VmTo`^whL\wO_X]VSxeWZtUQSPSRb`Mled[`xUj:V_nhCF]N[b[aR_tbDH\l[j[SNUKWnM[JrZOfc[gfdJ@p[gV\<>HHO]Sgq\yh>OS7bjHJO\YcUETc]8ypcg\L_]\iiNuehYNQ^FbNYSP__PDyRRBh\dZkdxLhcc@U[@XLfGndRU>\hgk\bkUVgO^x\lb_m{^U\\ib`brg^zZRf_QP\]]l[`SZHdcM^[Ub[VZNf`_achgc_\`ZRhk`fjT^e^oagodLaf_]dfciiPTVc_W[TceYJUbqf^SYd_aeZh^cnYehXaSceuL\a_guX`][lUiX]_H]o`kia\Od\cVoZsxjsW[VbabtqR]ac_hWff_VShpPeifh_beTlbYfZ]^xc[km[LxujkW\cgV_SbQ_J_QbiyhVN\TdfmSUetix]kh^g|?hPtjzX_SQfXhiV_c^]cy^G\hWbazl_g`anXigjyel[LsIe[fV]^rPQ[rZLmpS]`tQU^d]ZQ`r`r]Zikrw^mhXPYTYRj[g}dfYbK~ZnudGad~To{sbS~fmr`LEOYTrXl_diwee[AP_O[NXanfc|\AMX`XXhUTvSUNUO\vXd[]lgv]OQkCXDRhMg|ZPWMoz_Lb[OT_VeEOub^_aVI[ac`]FiTXP^cWUWXWPW`[NNBKPBE]X^]gf_XSZlm[b^pbS^OYKn`lUYlYs[OHc^xQQv{PrdOWeVqVTl[aL\]OVX\dZbIkhQVO?`V^dhRT\jjnUZKZGcSsm}QN@Bbg^hRpkFLulhvK`ppbSe[IzrQaNa]]KY.YWM^dQbEGJKNB^o\MA@Za~_cPQovmeUTONecK[uiYbH]YV|Xc^iSRdYcc_agdldYamJURhcyMfZX]iNY\w^\evgQY}i[GeB[Z^RQRdIXXNsy_MxNZqV_os^GzQPdVnP_1VUjlaO]ZX\[PSExbhOUQm`\LQXB|p~\]cFB7yNVQ]V8TFUWP]b\vVP_aLnPdsa?Jk>LuUChW_BbjQsCaXdZ]Q>kYPPKI=iPWJ]9P{DiIY+oV\\_FL@ro]XDbWZvVVSPdzaZ}HfjrrU]LcwvUZNcg<"ZiRm~TWTVkD]}_`eWSXjPjPtIXQ\OB`xaVbN\gq`Wb`Ye]NSrkj^gmcR^\ka[x^bekTaTja`\m_mebpcQVqVdXqsqhhbixS_ffqrVxfacoJTXo\qk\_ScmhSYvjTZ_vl^peeotj]mmnivVlg\ZrN`ak_Y[lpYZ{uelYb\ctY\hXaLMUmtY^`{cYGrfaYg_ZFY_TtcUlmgbecki^f]TSaLUYvaWfR]PH_qF]djk`RZypzMaWaIP_TM_fQf^?DTRjr>ZaUf6<^^_E<`M?fpTG~OTLZUcsrsPFti~XQpVYt[ZOps|~jYmpU]V>D}[Q\qSUK@6zZk[RKJ XWYeO>rD:Gr9KwLSqdODKURKo`g]nFZYdpNc?Te\d],^4k]rgU`BqP[rqLFhVpuUere|bhUVq[`_iKwXz]l]^dnEs]MOZw^WzcQ`a`uZoivictlfETocpTRfWOja~O]`ypjkboJORgXMNLq^g]TQdLcFh}Z}_XdzgB`muZsgSGfqcfxi[S`ta[qnd`aknZSzRe_nSY]efPjzd\L[MfAOihIhlTslbUPaqZePO\RjXs`g^W_MYie[XZVTbV6XWlMGpG^JhtWFbKIUrOHhYuMIxS\i`>agKTi^`l8ZSQ|j_llZUKSagdavbi;NgzUVKXjXTlMB^HbnjHWhpSSdI\lZahZX]?WLVYaj2efuZd\Fshmv|[kG_YqlmXchzEkafllIGVx\d_HjWSoMYX:[m6_Qbhe^gBS]]glhj[lKHP\HZNsghpahf_T]ac^W_iX^UnOQ_TNEObBGWXgnSj\RCZaDs[v`OWR8CgHlc_yVWl`XN\R\iJOxaWlbX1U^~|ZbeLNtPvYDRVZp8WO~rRgOdJa~QWYSFWfe]gX\g^[Dyfn^Y`\NprcXRmishZ]\W]^aPW``caWKBvISq{L?gQXL_UYPZEIDR|TU_Cla`f]EYFkmf_R9|ZtoKqIdY[adA`PIOjinWfmdmZjlWFHHVB(TXa\UtV_Kok^xnP2dQXlVYW[\bKuM(b^lT?dlkRcc[cneY`y`Bmj]aRN\uUUaJecQbYY\STmzYV]]^s]bn{_cEDlbYM^CiDk\w\XZHbadl]7[XouWps`~QPjHVs[JZLgNNgWL]Rgkgu]Kxp^_WTJPaeih]n\XjdY^KkqTkZQedfRdUr`C[[V]lYW_WIhHcqhk__jYcb`UvLgVkb/dgvuYceLSNf\xDcmLSQjYOWtTaej_ZqJCwUKiL_WXn}rwnMo`x2fhHPJajpVo{XgoVId]`Umj[cTDfR`CqrdGrf~p\^ZNM^qPx[VJdi[yvs}oTsaNCa_[c4^NyP\yb@haILqhiiW|?v_IMCvY8~yrV|gcp_H`m\G`|p^huftvnhoqpV\rO[dgYaLNFJS+MKVKEa]H3Rh;LEK>8ykeID2\TOLY[P]]?UiND&_U=wXSW=kuLWSEN[*92{t_`NT1[J%SKdEQXR\PD`_1JfEv`yYW\`F:oI>[SaYe9DFYPM0^N]WK3W:R]UONbx4I~RU\IlSAJBKuN8KcOW@KiXkFUWviqzMJk}`\dn|[j]gfvhW}_C`cQdaYMXRgM\UjGahxPdVRQ_dj\nAj]heFmJ`rfpl^\p^fTyh[jZMuOe[[VYiYZ]BJIE_c_Ou\\g^tq^aSVykdiij_ZmN[^ODg`j]l[zXq]bFu]F^`~td~PQ_OSSjSU\_]bHA]e^V^bNX[iHQY{d_YvXhhXHdIW]sZf^{^YlRlHZFauXxLtd\VpOohMWT^RUnZ~Zn]dHuPHCuqVaVSDXQvMft]yXV~uvelVRNErW\eAaf[p\KUb]d{ZD]`kX]RcM^tOkl6b_]wwhzLd\d=dx\\Dlg]bLRq_XKeRTpcwofXON`sPggSPg{f`hhJWM[ijUZY_hg^r`aVZf_PfFGWXPT_U__UlAl{FZR}U]aPZjZbQIzchDHJ`^`QZ|?RlnsAXkac_\n_`AUN[c\kQfeIU?:zhVcOf_`[Q]OW\`NDfnUGXI[D\eYXK3RP^UVZRLXa[YUnJRUNvWz^XcgcuRqLCYyVbYYVar`XDFoBX`]TKaPUQa]_uaH]^bjTi[J8S~ge;phqERQ]WgWSex\yVc`hDNFw\Gr`[`s[asVIjyTgbTng\cQcX]R~SU[p\wXenPT^\lVe\v@Va]pM@NHQLWWRTX\[pkt|\^UNYjts\nZU_XWCbMNT\hdmf>oSAgUXmtleSjULaiaZPX[Sm_KS^fYwpu[VLUWnObJ^kbVsVh[jXiVnT{k_fVfjAcgGQVM`]ULZO_p]vZhDqRb`n_hd`n`ZZIW[qW9^OTc^IWWgmy]QZWln_ffi_x_]jsiP\5adVeHjZ]shM8YXiS_eOi`smUYYmUMce[_Q__r\VpLdUO\j]EfUpVksQIaSfZkNVmgUe[hPuZVb@\X\fV[d[Bq}t\h_dp^p>ToreWf>cIzNXXX`peO_OV^geah?sYbntjUkuQS]ZkQYqfPf_[\V~gphFTOLloMFeldF`chZTKupYVVRdUT^Z~tJWfUUoIgXlVr]YegV|LQW\iWSK;e^^gYOjkGV\UKX^?xbmtbOk[f\_PQajkYRQPR^7uOYSWRNQueTmd`]VNGhp^g?u[gjYV`NkY[YzjNdnq_i>O[UjDNnP_J^ubPq]@yNndHWcz^Qz{m|pZE^In_uPhSQ]^rDn]]Cyz^VUUDeBHkN_RBbhBphwQVh\dhi=m^YVDWSWQWvTn__u_hZVYdabY]RLUUgN_xOntZejWa^Z@ofUBamSTeQXqYcGWZ\`nWOclMtVQda`SdiIbhgf_a\YNloo^n^aeXQmhdP\]oqnaTXRNq`[cXh]fbh\RQtrgYVQ_]md[gZibdVQMdZZaap^s[\VZVb[S_[bPehorg]gpllPSW^ad^wWfetQ]Zw]QR\]U\hTb[VebF?edVgkVkfv]hbQ[][kc`z[\Thk`V]jjWf\eVflXc|[gh|e{Jlifflh[\]SdXYl`]rLqZomWYeOcehdwH]NnoX[aPmhWFfe[cWjx[j`W^w[Pp\fdwjlQpTN`bmugVd^TZM\mZRXag^_VheZUVne^eajTy\cMPc|aj\`_lqbKSUbzoC__Tilg}`Ek|```ibYibcqgaffqagXJVVVpawgsIfUEPW^umgWjWX\RQSOf]V`nWkIlQatcbj_UvX^gW[J_nfNSrIbXaFfw^hanhVtUlRTbd\j\\EScWcbiASqsRaA^qSHTocV_DeflgR^k}UDZgV[_bSSXPRiO\azKq_isnkSZN_D[foWS[dvmcZ]hdXVcYREfhP[WSS\XaUKZ]d`U^XksfYhwc[fMT]UqtDMOZxZbVU]_]lPk|jNoVT`KFl]d[eddm]WlWZFQRXZamZPOgceUy_eWaWqZTPLX][qcxcS]O]aXhVMg`jUwjneanQfU`a_]jb`]\jdCkp_y^hOZgJMfdV_V^KUWiRonc`?cn^@bL[QM\UYmbZk[g[aY]H^LTIS`S^QeXPcDq`Y\hZmbZX|yqC]\}lMj``]MidRh}dsif`Xag/``VNRgK`z_gvYj[up~dvcdYoj=U`Xo[NdxdLad`\\WxB~mRmUuWYRNbt[FXYURbbu_OTQ^RmPPEqYaSx`dYeSAXmZG}WR_dRMdgKTYb\WDS`LVVXfoJaaZaa\rXdf[]e[vZA}L|Jxe_Yq\apPdfW\[QiR[}X[o`UqURGecXsU6tinCQ`bab^eiCVkPlKagVfyibYXBId[j`L~vnPYGX`NVqWX}nDQ\VcnT_WmAcWa]TOZT0eg\asK]Uc[{o^aih]L{e\wphsbU^|\]}InVOkxh~T^mxMj{fNWKZoj_cO]rz]CCJYWQFdac^[|G}@ZcudtkaQDxto_VVYgRXaZcyaI]qUTCzV\Tcjb[fecdpWkPu_RTSHYjauagdfms^wk`YFhdbaydfPXbVbxdeQxufTXlar]TIS`PUd\h}DbajTdvbgc`ilQlbmiU]nGZd\TLP@^v~\s9mjRUuwimU`JiZcUQ_dfGcXNj^h_s\wpcyk[rcdZqf^ntGMTW~EckpW}_X_VU[g\PhX}qMxXgePbJ^L>~UqYeiYR\X[R]U_bdy`lPOS_iavbaVNc]Mcl|Ug`VkQUtKUOAVLkaGbg[s\bj>FgIijr}uCEGA^NL_DeYaa\o`EOWVF^MkQX[QRZ_NJW`XdV\wq==ZUEdP_pTV=LUf_WOO>;eSFOgpRCk[VllS}_qm]]W]MuLZbXhZn^O`@]^KGTxLjUW\~`eOhAb7]NaWLaTdMY\^eqlXfkUaiG[Hw\aip`UjU`h_hD_lSf{[_c~GachTQPIN[xnhZeYN]TFP\QVj{YQUD=b_P\_OjPp_rgd?^zifteFXdTAkOmWdh]^Ur[Y_feTJwj\ptTodSb{`VScVgXXg]YUmmvaIAfvq]nsb{L[ZWZyTOVP_Z~r|rhfSXfaXUge\VRSHSeUMghgG_p_=cv_OCOij\`JeTd^ob{WgmjdNnOedxM[fdFWcZG]]sehkaIHM]Z`{dK[PfargWi^^QQ\^sijnbsIlXch=a|SapW[pdVdmWxgiKf_[d]miX`dTZRoThYZr]avr_sVO_Lfm]WBUY^iJcynml\q`Xbq^rdrWfgYU`kYehee`wWbxf[]SXvivXlUqZg[WUrW~OhGqPqavUcZWohPqiuX[lqqTrjDadh_nEiPh\g}dWbQrtLmi]TivT^\kcZbUXR[Q@[o]_RV[PZwl\eXhZqKapmXF[[eTg^rZY]aqi^vXVm\bfYRajlX`e_ycXU\zcZrrUc~^Y_mIr^_R~_zP^fYco]WHTJiciLNSj`?OXVz^adQ[DTo`kZYciMiv^]Wo_RPSfbQKhxRPQb^sn[@WIr\fgbmeVSEMYDQXK\cWWJudQovp^NMWG=pmcUJSTAZSHckPOHR]^Q\SdoiZGW_bXqW`UNX{MT{zWlihcv[fZPIVqWmnbb]f_FoRKhWWcmTpHbhIK^9a]\qjQeTyJ\Tob@Le~yQVcLXNmiMlgrb;LfEgYz_Yvbib]^kwQQgp`ZOgN~nGYUZ^eXcBCHcRifJZdLgZSlTpafZV[`ricdtQScXJ[^womZO4V]Qf[wVLp\cguSRSTmIvSPfAx_cZTe\[yAa~Ujjdz2Rp_B@LbjipXgJipf_TLhtGeGn\Fb`ZJXyVI[UdcTfif|Jra>WX9dgmNkVvQ_\d[hsCcs[hJi`nM9dC}PQOMbpSRiXJj`^\\kS_eYMUw?trnWb^bSpjNaPYkbR\RUUEfQ\ax]oG\NTv8IdbZTZa~ymUilkW_xfZgSaIaj_QabV[b]`WdXQ>R^SOkfSb_ZjUXkfZbckfbfc[NbcNYvsl]U_a`fK`V\GZ``t]cmr=WUUXJb_gnfahd^baRnTYhDKIZ`\VUUZ`ZiJk_V\VMeZrhZ`U`IRsr\n`QTc[VaOO]wViO``t]ggvTvgUZ[egTPbq{]QiqU]c]^@VjJZSdMVfgIaVbDpLlWGnSgqP\jdqXAPZQPop\lmVS9`rQickOJmN}`M`yL]ee]wHbkLlp\iPvYjRjL[Zo_`bi`]QVinbQpk^\rnl\nUp\Zs[[zVZq_WYTlcN_^X[glVUuNkZ]\uFoTSeNjvUYiarWXfKmQMj^qv\gtS^heV_aUdvvM~=_fpglkaf?OmklakVeb\KZbOk?hkEz`mL?XVeCT^ovjhZpeO|Hb:GM]ZcYk_YgiHiYfHI[R{^ZkUSVf`{QpkVWmQMc^idWtYKdVNlvQrNXZ`Y\4Lj]keWw`dPgOhi]`]mM\Rm`hdQbr{cPX[aozVHLPYJew:XniMEeQn\ThnhqboaI^dYbloo^RilrtjngZIkcYlOlr^kus_mX]qe[n^hGWehcTcLh|i9c}0iJ^}XAq]iRW[MgnjuYyo~]XPrYzTMmHHPy[_QVA\xOQVKMgVVWelZ=GJemVSKYmJHBT`SdWWDtUeV`a^cvhQgw[qXfRsXWV^VUQ\mt6[cXcQ:eeUcUJEOBY_bLatQqdJy@_Bf]TxqP]lQSMesa\QRdj]Zd\NZM]_XqKd\OZBc\OVaqKVdwoDA[azehhTGc[emYN]pYm]^b`iHDsScMZcXilOQl5EQcrcdQ\\`M]mnfYUXjFoZ\cqSa_im^]WjlZIYeEzddayjVx_UY]U`[bbXNh[UUUXdGmtYYdQXXaUU\BZdgfb`QxkZWGnVvdiZXAXv[hTTfh[Vff`FaOTYUa_Q\mt^\Sme^`_ZduebanbYdQY]]P]cXBUg^y_geWc[ZpS[Ug_Z^[\HNEQvYXWb_itci^HVMJY^rRlVlVc^I_FbiI|Wbn|ZXVcdnbs^[m}qg=akc[`Qfir{hnIG]kM_WpYYRFamscPUUR8R{eRnl]ciYj[OoahhfRHjdWVufJXyLdd`die\[I[Q_ippg}QRe?W[V[XdSaO[Nhbkl|zoaVilCN{kibC]_^XDRJvyfTNjLTa]af]lb`?YiLRLNSO?cb}eqgjJRcazQ\Z;SIfqVC;VI\ZRWTGX;Zo[UhMEC@uKJcBS=IeZQhO=iDTn^\P^[V|NepW[e6dQT*LCbGWWS5CQMC_cLYWGUIrQLWkSuj_F]J_]aF_bJqUHd>UfBi\_|SRoTWKNQYFOQJS[N]huUE[kITIPmQ[gNOVLimJKLSMYtBOePTlFm6NS3dRgVHJtVtc`ObQu]VFVOUfPcZJNs]Boy{O\pMbZSdoXfrsP|YnXrkl~_xPdXr_xnO`=G|xqUhsiPXVjt^lgXFsH_]hv_Pakedkt\Z\Yv[kYba[]sbnsloshVmjFg~xfLs[YiPqhjiMraQ|vjVrdUjP|o~RYHYOx^~{pbtaydMYqqn_[wZZxlg[iWkOOUzZ_tziUX||qy[O^_LOhUR[XIm}^gX~^jhZBxnq[gWRfVHnv|QJbnk|BZbIPdgVYZQPqjOe^Hjw^QIc\^\pqs4Ni_YM[dQ7]Ver=[w[JK}W5m\_T:Xi;uHpbKe7cIp^:HvhPZpJK>T_UyhdBhMlkXVIcGijOm~\S^gjWoLaShcQ]VMNVaUZAMml\O{aRYf|wE`nj[jX]7PP2H^CNVOp;MyuYAwZcKI_7|D\TkZ]BO\_gkVQi_SNbha_p\cz^YO\M{[Om[XeRVg_Phjb~OxYPj[{VMCb]UeqMLYnwZUOZiNoUUd\coTwibHhifVgbjRmKWvz`Dn\iZnZriOb{}nIN_[`eczjaWOaQvfiRhepTjT\P\M[l\igWaX9lf}dX^hrSbL`ZVx^_rfXgeLW[pL\kmTVjlWCeJ^MauFZX:aBkmj\kJhtTPWZNDc\mcu]Y`9jXongbY[Z[P[[[XJoacF^>[uo7RZHLWUYkutw\uYWSclVYV[nK_rhin^te_XJza{iv[Ch[u|kOS_UfaBibNzSmcfedeldfN\L{rQuiZPnY[Cf^yoPoZRSTjm_hPSdJuP_YY\Pds]`hY[FtgbYkpWXF_ih]T\GKlh`iQ_Nd}Kb@_~[heYV`hhxauTuHprJdVwOWHmGPXLYo_YvbghncUVSdgaG]rfc]`dYeeZVR^[WReqaJx[;WO\RTYmWlUkG^o`W\iy`SPXYDcEPrclcdko^jjbuzXoepkXXUK[jm[\OxTjg{Y]NSJXaXXkvXfYSK`e_Qa`ZRlZMZNku@QMikRLkZ[xw~e_nSskMgbgWb_atjRu_|a`mWpJLZbo\_MtES~_xuXj\jp\qFqyPuV>wN^yib[[u5`ccfM[X*lY[SOcxQTc{WJfdKlM^maSOf[NuYcpI\OdZ+TbUmQLe`qmb[i]FEXr`a_mcYHbdSLT_KhXAIm\r[QR][__sQHFI_Kj_z}Obbia\dSVW@^MN[bbjSibX]qv{ffW^iWtl[beqdz]dDng^TajpX=ukjd[fazbWeOQRliFnnb{l{ejfb]LxgYzZW]]Y`Okfor_TxZpcXnWu_XY]WqReHM^beZ]Sfs^TbX{ub_Xok|n\abNdy`ewY_N^OQ[pz]aN`LYNk^gndJ~oJPWoR`[PCNw}c\LZ]ddZ\w`SUs`SJU?OvG>gx^Yj\LSbID\MqdWj[bNKBrsYi^>JZfpNPbTXZ\`PM\hsbRBEVPg`RZEiOQ_XH`qqlYp]HTfk\dX:ULDQQl_YTWDh_SikeXgSXp`W]fVbVN]jWQ]UgbS?uB\VTMk{ekm@RmqUu`Tjnl`NWeZe[nPcIXTtNgpU_SOcFV>]rr_~GhcXQuwsNFdN_[rePO{icgWeqZmd^aV[_dCWRLXRVEJmZcPRj[gJ_lSsk{r\JssxH{huYdOR`a]fhbdhZU`^dBU^\_oSFqZa]r^KpXkfnfUcoRPaL`mYz_`@m`N`D\crPpYo_jxRXn`Vd_LLWZeY_SSXVKeTssSiv`]`lcY\nhlLa^K[[ik\TsVP`=s^f^e\T^PQ_fNG|Z[YiIjp_aidYLheYP_pWOf\XUX^YmI`znki^lWcTT]TXghlv^cZTFwdq\_YeYIwTy^k^WFCfRkdTiW_RZ\GMq[QUPVfLbzzk[p|OMPl[fc_foPwRVdOptcw[caXTbh~rldfzPhMdiQfs^NUd[sS_]iMMi~eaKVHnaiOK^uHJNmsxhnd>Qb\ybcc_cMYcTUmUiXT[hF\ViVTOSmcOkWhfTfypTEIURVUwf\_XPkSmjHfYbfrTO`PNcdla}heNcbmaZX,qsmU^^dV^]hLVSoRSN[YLf:=M_gcXJpeN_fWeNr?NPHOj+H?E]6ZjjP6gn8{K[/LHP\gX7ZdGVLI4=Tf>J\JPkn+JjA8oY+NXegjoD>K?VZ\I_]`Mj]Nh;>kqCRPjY\w{a[IC9G2XVY*aE0DG;WN?R*kuQpKsK]N1bLE5oWZJWDQ^_,NVJU|G[aOmFzWQ[HIVNl:n@^FM]G\@?ako[fRPm\YujDKYia`^bXyHhzfaRUSL^Oh|hnUONYVOZrUZ]MbOWuPNa[UwUMgL^L_xd`YSIpVtL^Gd\ZN{C]_L]aj[_bnXxfmElieH_llcd`{JWW[QC_Zc[HjTXdMNe]b[QO=lSOxg[vqngnXRY^@jSL^g[h]\EYqXp^W^dt:vEIyUqikI_cccj_OWYViLt_JL]Z~amqf[JU>iiMmcPoabsXUdp`b\_Sqn[OSUPHSFVkRQtNTIhQarQiaOZxioiclLT\ZcbcKiJbX]lcgWbdT]Q[oW`JrWbdVUttWUTUU\[gbWsZ]9_a[Y\PR`YTcdiXXvU`Fo\c_dQYkU_cUcW_^PVgPN^i\a[GnhY_XkUMgLcSVZH[_UXc\WeUeYtcinZkP\eQbxfg^M`^j`dl^]i][ZhNd\TWi\N\P^RKOHPfdK[fsZa}\hia`ad]WbXXJSa\]LR^ib{kk\ub>dTlX^fDC;VGcyhe^YV0]GTX@[gclRd_YlXgQoNGWV;lVhs_TZ}FIyWlfPToU[7\YVE[\cwh;lYEqUd_]furUG[w^jMZSsYUhl\OUzi`eQvCd~JLz=eXpIVc2jXXS_[\QP]?SdFdSN]W^Rd^oFSOGrIU>{VDWcW[ddtyVkLnObbo\DiTgPqGIFe8Pyi>WoD<]bD_bTyWVcS`}bbS[|nlbH[AKJf]Am`SZeJr[tBVXTbVRU8DRJVP`YR}`euyy\tQiXaTHXmh^kgP@g\aCK[QP@ROjMVNNXpdqRK\aaqDc@N3V\LO__Gvlrz\YiZ@_OQbJJJQkH]UKQ\PSra_`wXPQRQVYVzmcuJsXwQS]iUt_YU__EXUdO\^RIbZyViXR`^xvqlcV`IjsdX{r|]m`I\\Oep`F_HqIre\=]jxinU?kY[aWO~Zu=jubiO:fDg`LNoN?DQNBmgXlhY>iK\\y{eLdaW^R9LqGtRsCV^gMbzhobWM\adZpuUZbJ`T]]|hfepijNDakI][dnJzD]KhMgacUrsanp7~BTWRbmg`U|eBjpmlblX:[aV[hVGnPOe\[[QHIp;[ARZvK\LxX[X=ccWVPLDefDsf^QJvOd`lgbL[gf`RkPdc\\T_\q][^`o]kVanG|SS_D]]n]ObfIgWlO\_KZffy}hJhaJcWXZ[bij\Yut\bkh\|meaiFR^SiyQ^raX[nc_diUW^_^[g`aZjddXW]_^h`ZjJObYb^]gQj[Z]FZe_TiY_^iXP^^PnRMOagCKZ~[Mdc`nLQUZYiZcd]kO]PW[bkZS`UURna}o]ohWPu\`SXc]_kYgPrVU{ebtedjmYj[[U[VAlVXf}oOW6Y~pVQpG`nFzMVGae_N?YajU`]_WUZ{sk6]`Ui{[DQkvulbVaNrPbb`SgkSwgt`Yk}mibdYKkpborZ]l]iY^V:WYlkEVrQ]buger?~epqq\-SdF_gmj\RvFNcksWvR_Xoi_eX;bUImHGIrnfmhSK^ZQloQZ\`qbGWgTjh[Q`EX_gHq_bZwbZKQzHOco[dLXxTd\M^ptU_mqjbgj_LQgg`uDiUNSZi`r^gW^VZaWYX7dYbpphOF?[ZVUd{YK^][}jel_gkov`ZkhKnp`iX_vYYNLabfbd?hlhZMTS]_HuQmU[YiVD`IIm|E\AROFV@nuPcPSpIbiaBTcSLBSIfN_2gcUe{E]yKDUMWPl\XSMUNnp?LcrViYpVUANmrwbra{_pSJ]xVZMXqycRZNbvRYgRcUVhiiWjRbE_b8zKSlSSbHh\t`cRP]^Qqe]\h][iU_ggApMmpjqrYWMR4mZOtca]h^^bbecttm^`Jk^PW`PrNk]TpoUeb[[Zktf]CKbrUYlOme_P]dbitJft_lNWhn_JS\WgXOQ[PDWt]MyNWjfd^Xgo^kmjPO_hIhWYhdZd{cQWrN{a`z{zR[lzag]jhafv]M^V\YKgln_suW\KXMNiuxoekPb|HXhfnldeUte\oJeR\cdY\F[dVdoOWpUId]RiZWPSa^dYen]Jh\XyTvh[S\WiLrSMgUd`tth>]J[dO~`rOdO>VhdfyrT[mz`]uo[TdULkNL;b]]h]B_YVnXLYXHyomWKa^Pg]en^kXcmWpX_lj_W]ow]fjdT^Xm[\NYR\hOU[SWtpej^K`Seuo;Yl?^LpiPXoJVajNdpCYVM_fTVSXILYZdX[XMbY\SX{LpnF~XamasnjOdziR`ISNliw_\lY_mH]tT}c[Vh>`O|_JNXqWHarW]ZniJYlsYQU\dFFkhmLkwSUqrPV^uL`VbuH\s\nC]nS5\]XWoJPu]IYaPXX`tIcbaiUqZhf[m{lEWSgfnjkjUQWnZIZkWkzqqcfYaFeWeaTbYffcUfJ]yS`ILVKeLfvhPechbvd`pcNhlZmu@W[ev_OFU]Ywumcc^HcmZU}kmVRc[b~EQ]VkidaWH;E>_ed_^]ZTHq`abYhSQthWa@6qcxI@b|Nj^N_pVlGQZ]Oj}Ot[avic\lY_y]KVHs][-K[jlefYLSSYg_lmOfo`a8V_pgaXiyuPJK^-u{xtf\TXb_OY_Q2hmS_Z6hOU_ValcfleTUgp_\rjZGgn][XllYEWf[ZgFnm[vXasggX[fZPlt\gbjaHXi]oYicpuSY}{hUvoNX`nb]Z[rNbZug`cJf\ljp[YdbbWU[\Oh[edkV[CfksefPeVx^eg\xlSlb^dtN_CUL[eFZs^\RdmS\b~c~rpba^XwWg|_cyUeV^uNVUXl^EVQMn`]eVjjOapZQ[[M[wWGh^eclmiBo^W`kUgj]YD_uVs\Y]z]WR_eP\ZTBLeYZsbnXbaEVOXaPktVaPOvVrx_sxIugZskp^gI}YdSkPyobQRZuV^l]`R^VeI_dwOPc__PXWhijgZT^an{df\UOeUgsroJgSq_`jdVS]QwWV]i\tS]aR|O]`clfJUIia_^ZXiW_[oUYzQcRHPeHM_W^iGUQB:NOTe]YZk}F5seqPc\Gg_Fnh<4XtSJRRYZbsf}j^plGnZYLZYiZqdPFjL\cc[cvN\UaLT^iYmu]\ulve|VqK`MHU\^IfIj[VgWXI]Wl]RDTRZQQiPV}R[H[PhNo\lchweiyiR[K\SYWgZZk~aiA[fXpQWj[`K`VUcdUVI_]Qv}Fe6jH\ZYYSbbMjEeeeKdP_NXn[FtWbaPtbvDQNp^ocfWQNskW`dNRH^~nZ]kjPk[NNe[W]d}\_d`deb~giu[XKH<\vFN]qeGUHd`MQC\lnLqalqbl^XmVnPXJb;_N[G:Mgqm_Eetmqp_Sfkbjia]iNihinP|jRs^RUSu^ZVRVXYRoMZ^ebwR?UVP[c[`{KtbYlafKs`jemgJcY]ca`_aRUlPOxKRKl^`kdlUUF;NqpTZYWMZA^KAdIYDnWTh`]ZeKdJaT`^\afeLR7ioQ?cLMK[a`_Jd[cPcLhFeXZZ@Nb\LL}OXVYdGU`xQ`[~TJ_yfph{ZPKaRafXJskCXNsV}Cq>jiK[TexgL8ao\uFGA_I`RMbZhPfiZ{Qsq_bdeXT`m`K_TG{WK^KhP]hZshD^Q^nscOPUdeQ\s^]]ezLMbgkocrvzdMfrVbOk\\T`rTSQZrhubeXV]JcyZaikm}LRT`PiURUl]~Xr]Qu`bmv|RUqTWNYq^YxfybayZ\|J8N[hdwbKfmTWS\ofp`eZcj_OPfgHqsGsSQhNDcL>ooRbZ_JW\XaVQeOKDOv|m_jQn>mpHOhc_[QQ]nnTxa_GbdgbF[VovZaV_fofUldf_sPahWXqetp_gTjYfNjdo[M`XqgjUhfyGyxgz_dcsbt]TWiTa\ikvn]d]S|WKegakia[jYdbXfZnNg_fRrndrzcVPbhyQ[kGMZW_tXc|^b^UgKVm]PUj{`X_goYZX\Zud`SaQc_VFqdbpsW\^}rWVCLeNwUVY^lWaSuuYdIcH4fn4PVgWeG=OlkWFYt[QfXiKwV{in\neU[ZXWaLp1jYVlm^lfN|PcYXc[uK`^NIbKxW[YP]ZNvwh^YTVmXeO\haeGh|EcY`fT\`TLF[Y[^^*qWgc^YX{d_EeK[UpuJcPoM^OOlGRbCdcX]j}/[ZgeOYbWRlPnmqHfWWsBZ]}P[_R_R{MgbSXfUDlVJPMoX^iWRb[Kf[HlU_dvuKp\^PkkmqUl]S\Oj^xalRocXeUeEi]pQIZTYKn]WNbRrZ_XneNhq]h`glLKGXPq]kbpQRVoWGzkm`]KtdelR\\Urf_aYemXW`hEWabcdjc\U]LV[cWkMSVSMdaiZ\e^XZdc``XNbWfm^icjc]\he[_\VJlWadNOTQ_DUr`M ki[FMZYI9WTW;RW\Gfl\Ys\C^UrYkZrhZN]Xnw^Y^[V]Rp^gj]UobY\X`d_UfadFVbdr]Z]heWlZXrb[iYdl\Y\QXdba_rAn`_d}XHR_iTOiZYckTK`jgM\eNh_hNl[co]aU`Rv_]_UwX^qXd|Ycc]ecmY[j]YgM[d[[hXS]Mi_NfSgRfR]eYnVhimlj]iRe]k_g\KZkmPgU_bIGN<]GPb5YwnjH6RS>^gkL]oSebSTxmQF'9LQ?o\YF!bNnAL8RUPN;JElCntt~s[eS]]RMYFKUic_NQ[`:PZYSPsSHkXX_e]?QW\XegUGYbjjlSchlB4gdKfeMknhnpI\UX\s>XmYZPbedV~J_|qWPlJdea[X^cPcQd[_mngBwWY{]iaPdj\b]o]uZkX~XrWXzpJ`FhV^lfVeplcYPIP`z]tUgkf^KSs[eZ]cX[OSSckXWk[zu[fX]Rb{rqqoQd__@ItFPqZi`cA_mvNgRShj_O[O^~e@YVNKhWlhUMLfInIFvTgOedlZDJQBjRtJiZGRZ@dq\RtXyHECV]j?LlgW\lZLemyl;CdvH2NdtmFJByMTW``QembT{]gWUOzQXPYXFPfFdbgsTJ?UVmCISJ2bcXP]^[BYQ]TtreQL[ic;`_[HaVEM]mvYaiEBSTCYTZQqM`Xme_beFZQ^IqsOf\~SOhVZURwijfoQZ8=qXNeX5zXXdpQNyofk^_\\][_cS[Qojm`fRSybVKkS_VpYpolqWGspQjlXGYX9ZRXnayYnbOGa[lM[bU;ZMhQcJb__XRUZOS_a{{fTIWU{aYgdTURqTeEPs;f]{Q_sG?O`GyIQPq}pkb]^fOe_UxvtbdbSRycHVZTPbYUSX_eRO[U0ZXGjVHxijozWVZ]lZiUa[`Ic`HT@f\T]pj_kXz\NTnA[JqioUO3KXmelNV`h_E`gAJXQXb[gD|atOShjiggJ\RJO?XRgkR[eOKEi]@jgH}baaB\VXjOZ\DdTXgS|ZU^GJYBm~jbUZPcnM{eQU;FARSzNleLx<>k[lVfOD[O`DheW_w2|]@MQLr]J\f~BJ:lujYRvjO]sLtgoZSnh{c]VVTetZXQbfbmYdTaeb`hEL]nlpjWi]iYLzT\agQp``V[[ckUcrfW\JJ`S\ts`[`WM]p|wmEkbjZeG{bZoqmZYS_ROZej^f_paS`Xaf\bjbWJ}g`~SWaO]W\Tlf{`hG`l_U]R_bpeSft_WSc[YgLZgPIbEsWe\WQfpcmbw^nIYen[``}nfhm>ihMNCjeg{GS_Mqg`GmQlXI}skj_fmWEYdqnz\qgvdUuod~UPgjLEylyiwal@Ny^ibhrMadhUa\[o_g\hpncZ`\l]m\hjPDSaceec`odUiJa{]Z[[f\i]dm_Mxek[eX^nUOdZSEinrXhc`XhpZTZndnJ_cW_k[C\]IqmkMVYiRYhdRdbp_K>[RfrKCHpSGKbWVpQN\HMKHhY~>dMXEMF?gYWYdc`~rp_TYjid{Phl]XPWWH`VOW[fWNhyV`oQe{_iH[weHSZZZJ]{iaShgV_q^]kvPqbH[[uVO_i][Iv]nmVf_UOlSFwaNfXPPOgaFfw]epnW}XN_@pdmmmilwkPxjXLe\]{CShNO{iY`yOWSPLiWgsap8]\bRzxCc^QvMX\Pd[FndPQx[fokql_TcckIGNi\]NFQiJXnZYPeuWmN=Ta\ZdTV{kqu{bhWEIF[rtV_oO^eZOUoVi_`_TcaNiSmmUggnhQvehb[liqsORX`r{q_h]S\dGhY`]mhT^TXYZOPW\]g\Yg_cfpXOW`WVTQXelTY]H`WZYfkgg[cU]aYUR][poiqlSqMBo^lTgYYUZ^dcUiTg[CiWr\\^WjQY_JhkfQ\LciSUmchQxgDHYknfeR]_jOoJa`SXa[eahUKg_ZIXbOrxcLE{n`^tb[sr[J]d{esgmWY?ozqVRm^}^J\\nLbYRw_NeaSzG^\e|FdV\QnV]Tect^iulZXB^OVWf{U`hwp[HU;{Pw|OT\whpdzhrXJfNoPnQePbjxGePQi[@eWHafKQPvab?aeNY]Q^cY`aURoZqdj[AZfD]dtwsNhtAOp=jQYul\cVZ`B_yhiRwZ]ha}adPXibQeahUonw||oqlYbgnykbidgNS_^rhp|VtQmUYZ{qV^GcJ}[]u^Quio4_NDv[LvU[cDlmfGYhhmlpQQa^MzOvToQd[KU[Y~nTZzUtmNpcN]G_i]^UVovVVhTKfT>qo_`u[ds~rXfZSblDj`h\ped`KHKfcd[z>YI]lpZZ\uZaRgQYY`gwVbREWZ[[WRhdeYU]nR;[^H{JwZWYxdbS_Fd|Ncfcg[KUlojJcb^RXwfapPnb^kYJMb^ZVn}Py[S`VioO]jRI`m_Zpem]TSkgm~n[Ifkk_|W\mj\V_WYYsfTf_OZA_hrQV^XDVgV__KToZJMtIBW_QfqrHJrbcaXvRRyX`_jWk^UbdI[zSUclWoX^oXNau]aoX\cfwOXO^d_WS[^`zWCkpxKoJptaoZkJveRWU]d[gcZc^\`d^L}ZVa\li`_fgegb^PYZ]k`jjZho`jc`kXR^[aKxScjQQ`eacdRxeb`\_Y[rGnI^n\ix_d]dS\T]]ZrgSLSgsde_`im_[`f|apbW]jL]bkqek`^ZQGQMhzRgW[l^W^vZ]aaEWLKnrPk`TX\c\]ikfYb\KkMoLEI8vPNKI}ksR[_Wdd^Z\lIprC}e_UhAskY_rU>rVaNteUIDP{^jvo_dT{]jiywZbpRFYUnk`XZ[][aiP}Z_KT\U`bZGaT]^bfYNw[R@aZ\QTfkaqe`lZNvadWQhfiD]hvdk[yV]`f_S\sfdDeKf]df[jP]ep[\mXW\p]fcnhI_WS[\tOfDJZTJIeNI_sRD~YW\r[OH^EuYAkS]KsW]Tnvc[_FQIbgTjZvKTceFC\_\T;XlRhhS_RxtI>UPc\\GtbzYrgtOWw`iLZTaNKiJNUlKZdTQl^lelIJQm^]gfo_fu]\McmuOVfNg]9mN^Ba^eef^NTJ[]SgYyTJXt|^`s_deSVBi^pLI`fkZO\a?FWqNemZLRq\Tct\k[rfn\tgELi5qfeX\\Egeb_L^UccfO7aON[dxaThFbulgXc[wTkII^wYWADfPhWDqiR[aHEAh]zUkJt_tnNM`~QVMjalU@u[y\s[X]m_}klUk_DpYUvewWOL:[Rmedz]oKr>Rlc_gUUMXMQ4ZOieTQcjTNhTdtpXCVnP2q[n?ZhsYp>LhHBnlOi^K`k]OuaFdojduPYsFbNp~rLjdmmIZYyVOnS]ss_bCZLaZACMSUykH[\~I^xqfxr]hUifXcl{cya\nUOh\K>lJVZpfJjy?Cqoo`Ec\YC`z]eaX_sUKJGHjcqk_yQy\kZ`cm_eiL]a_l^dj^ieTpS_}oOY]VpVc]u_aexlksdakkcibxYo]^bUdYriT_k~VmWgkgiW|mg_af\at`lqig\jfpVcgU_jiZWUac\PkKtRW`DKYoq]TQJ;:^B8SYu1jLZeIZK:?OP_jWU_S\emYuL`4?T6]ilE4dcO=QPDkHeXdfff=skdVIm]fxpmPD_scmod`fnfcoefX[QVddbWP[Mb[^\ZBEnWOOmfb@SvJqkeb`K^]JbLqksaRH9TcpkdvWoJgHlgYXheYM^Y_XaRganaVRi][WVu\tVYkOhadO^_XU}ZzeQlf^t_f_]siBvS^\\WfJVWfZkao[Smo`meZ[d]w\kV]sioab_YXqXWcap[lenj]YeXjir[VR^ONlbb?f]_qupYmX[]u`liSXYf^fjjhayhrJYiawOb~a_tR_iunx[jaecY>_?[{eV[`hboNUioWiSb^eXhNGVX{\Sd>Ar^idcF^KGwgaJTS]{dyWjjE\RH{h]ek`fteSQE]fgW`bidfOek\XOtknI6:TgoZriej_XpOHMY]ThRkgfolK{^>k^?R}?pVigSEYTikdfaLozzVO~hLN^Rif1sviUimXUATFSXfD5aWlOfYvOO\Oc^UsESHyZW\ri^wqLY`UUw]ZuJFdh_\RRNBQT`a[f_h_NFSitg\]kX_jj^~gOFf[LutbSCujwa\H]SYh[USkeYaedmnscYkjUdrhT_TJlWm`RqC_RhcQeXZeZJhK`wxyTbYh[`OX]ZTRw]OLOLe\baOu^hXGYJXTZhN]d`[jaeW]fvcQ^l`HW]iekT[OZ]pURZkc]nU]\^[eaSXSnZS_PaU\\`jLYUcuS\LLU_hNMQbk[TtEkOV^n[bcUWRZ\W_cb[[cnaKfbP`pgOQ]^m[\|^W]`b[UXX[ZRYdldk]Rpc]b`c[PjEtbco_Vh]hMe_f[^j\UlPmKjicJRQZVRaaXHL_r`r`Q\UNdkbbIb^eMYstnMZc`Hyi~j^|~lbKVZa\pga]D_l`nubtU_aXEltplvW^_fcsZSUrN\RLMXOfleUafWV\I^IqlWVXgNrXbP_ej^`_p]ecYurna^QQ|JrbgjuEyrpf\o[dbpW}SfytcjQMgeW`TRjMYQavRMPxeVSePNJeAkcX^o^Y\jqh\XibofqZQp:ZESKZ[VZhorXYLUMcJlPdaXsmU]TZ}Bt]qlWice\kUJbbxDEPV^UQzGvO^Kp\|X\]^XWbsfcfpQjuc}_G?vlQtoB6qR\[_i[jQj]bnP^svoXRatkjc3YR\_RP^rXSuhrecafeBNc^Bb9RVSZW[|S_MqYYSiv`{Rn^dh_gZbiODj[_dWYsc`^cSiKWWrbb`ewuaZ~L[^tjj_mf|{j^rpzfUS@gA\NhQmSsmqTdzvfjND~[]NCea]Wem|]YahBuqmgq_a_d_jVUZWZ`MVnRgH[gMdtpZcNjSXHk_OcunSlPXYV`aqWj]c`_cz[YESVlWL[g`odc\GPM{{u_^VJpVjL_UlgVTb}|QYWU\hYR]qWUmjWQZYORfVSrhw^nL]xySgV`c^iVJISwMuSLhZOb^dqh}a[J_Y^dXMXka|KXg[XQKbjse]P__eV[iGdaMBDqbgapbgJljgeK_e\fUa}YkbbOcnwQwKnYXeRfWmF{cT]DVhoTPTaNz@aYXoJX\}cXXKXTdm[``S|pmXdI>]j8Udh>fUHeT\l\kJbEwgVhdw_]PI|QXmV>bmkWgViXTPULlpbVh_]TS@0S_bS^^[bFogFTSmOxPXY{OeJ^qZJ\T]hXwqIafIGZXhdHQIdS]dKg`yrVHU\SS1]lKWeBTT_>Dc~oojLRxmKNabHDkJV\aLmN>beDXfFvLcHc_EP9aSVmJ]NZ`eUE^[gb>bXb]hZY`TfoIWBDXiNUO^QAgLhgFbeEHUjjMveA_scaWNY^y_P@L`UtEh[f|aflhgb:Tbv@]Ergmjdw[TQpXCdM[==cKuF]`fOUDwoef\elXg]dZZwdgdGqsdAiyc2mipPiiHkIT[ccyhy_fQ_DcUlYYf^`QOdddqUU]KSZixKTdTjbmES_VP{IMrSI]b}YStMh_r\E\]FEtPw*\JRR]D[uzwvXj^JUoO\inRnOic]~kJPXviePigX[TSZkN\Z^p^]defaoY>]qOOrhXwJZfozZilqq]]PRqi|tScwSc`}m[mJj\_dRXQTaMYVoeKcDr}PXNo^vjfVagVXmY\mePT^wrNq`ceodRMmrVjieqpOucQ\jeZZ_LWTciriNiImagWzblLZ]RsNbDmrVPb{ggSEgr^[Vle_U_`YTU\ajtJGV`aQ`LiXqkUZ_]dSaR_nW^wNVe~UmI[IEYbUP_[ftXMfQcgxYbJ_WUUKVsaX\HZdnZLedPRNcsOj`sRrcI^n\g_VK|ddjZELcqbSfu_YJ[qIvhyaWGee]cJ\YQJR_{N_iukbb];okQ^fpHJ`qK`pjd_gU@qfJM{l^VfYasalI[dh^_jQNjrrwUt}lUsVOl|Z`bHf\URtswK_WnkZH^RUfY8]U\_k9bNyqcbfmcvpe_s{eZdVZoifeg\dofYV{}\ObKyYbUz}=qO^yhMcxmbhppThVdxgJ`aGe{Xl\dj}duVn\xoSDV;^K_YmSh[nlVlY^^`fmKbd`^gcTpcW[\ffGvqmUQf`TjcSKjl}hRaOasSbK|jzT][SO>_^fdLoM\{`sq}EiYaaJNgZlXZqHc{uKjXVmaeTdoVYdTcndIv^U_bP{Zs[?qae]iNdVWleV_dvPJhQv\PQbcjS}ff_KggkJYc`Hfpo][{bjs_MONpnWIgnxO^j__=_VgpOYDebkoYK^cReccXa]ebvbuZfVUoXbQT~RSwabYMYgfFwbDqaKT_\_]\yPUlVqTLTbeRhYTE\KjVccS[eemZS``dP~XSdsbYd_UdIfeiBbe^ZepQW]cCUilQxlgbZRV]in\plSxW`YanZ]d\QbcPZCiccVliTbvSjRgQgsLI_VlH;kcMdhd[MISjaWpjp^hVRrUKnWlUS\]frjY|ZH^]W\iSZ]FEUc`o_J]YYOV\sHW_rS]dP\cYi[cN[l=V^R\dYT\N_J\DXiD_Ab`O\UVLwnTYWYacRQ[lZ_]]]UiSTyrdoJzjP}cL_^IUkodoXdoZpmPQUk[]ZRRU`ngQ``^xbaL_SU}XlapX\cR_dVo\ORnEf`\eG[ajeXTSfiihb[\W^RFcZwXtvSJU`eYVnp^iteaafX\]coFMaRZW\XzLuBnoUgVa{{Xyskg_cTmNXnm_`ZO`UWWm=Hm*ZYRXTTglzbYiSRQWnQ[kas]CXe`FNldZWpWkh[`l`kgVnXoZ\oedXuPMW\bn^SZJiTY_\``YoXfmHo[Cv]`e]sR]CV_hSUaNBPQPUXXZ[P[\YaoR{UXaFgSIVVQhVl9ecLUJphqbMBL=XYPYN_`FsToLUP]_kj_W`XaoeMZs\n\eaXsebs}aRaEl`]KEvgk@Q\rSk]YlWhFF=gNdASn\]PUWWPgK`cLTYpo`TUIkruGTeRJX`ExjhrR`u:GnY[jcc`mUYkveTBmzhM[e]KoWbdd`w~GJ@ahA_[RUjGbblwX}kSPP~T[ONEpcaagjPWeWlfYOZkfc|[]`[jVR[koA=^N_MkdL_fNWbbPEHhdl[Qc]YUmXf\ZuKWX]dRcU^vQ}Sa``\FS]etVRsYg`h[\PukazmnPUfRL]oRreNbcchk`u|ap\v^[fIMS<[\Uokdtwjdia]XYiXWiAY[TY_i^BP{SOYF[waZbqthUQM\~\[M?^HNIdK`obRS~nbT`^sicpbO_pCS\Pozmlk^]Y[NGThmzWjk^qeaS_k`r[VjNbmRMS_um[M_\vnM5_zP_N`bwRZz_PjumTe?Xl^dOiejWpPzBy`Pt`FpfVIjpbyv^{GQPk]e=TN^H]\bkl[nI[l_UdXpHXcVzZ\kjYMQh[X\`LPcljiw[IkmdjhVY]\}mTPbfaXY`RyISRlfcvRQ[WiJ`_NJcWRdVVRYxdzNAdZZPVL{SGXQpILuUYz_hhPSJYaNZ`HbVv`^kx\E^]Paf`eQTeYpgZhPeh~XhMXoj\Vk`OYgTecLh_]aR]eLlf1eagX`[G[HL@g\\ZkQ_Eq|[?g}`f}Vhf\]UgmdTPZa`?bUYVY_Ip4KdgS]{~QXW^EQQXv5KoaW>[J4wj[WMncYBhRnH\hhgdVLSsQf}O:OjmJ.\ETi_qQDCiSXTSm\UcbO}KvoP[GMbH[zPvfvcRdzNZ[yDdQ[cWPZo]acNWFjYMusoVhWrvHd]Uf[^\Ra\mvGq2`hkgOugfYo[DSyzwqfb`PkJY`qcdhciTsjdhmn[S[KriXT^f_mSy^\S]bR[cMV\J\r[hujmeVfh\MU^_fVnnq`\bk\glgM`_dVU`]ts9ccfYZO`Y^PVcx`\p_ug]_gcyecTbYsTxdpyJmfhcuSgb>sUtJgc[lh^agaX_hjUgheq_aYlYYUfwEajXhZctp`SB[kYcWixUnwb|^\kea^vZajbRy`iKqi[HZSI\VF^[asygJj^klqWUmeXhLWZ\[D\rkgVmzUW_E`iTg^\X^z[6`nGcZeOyXS\krquWZ_DuInHZ]ScwZBVe\SteQQrN^epcZNdlPRgefUuelk^LLNjc\W[rY\EzU`nnL>[Vkf^eVYP_^XUplPE[rbvc\oToZa\`ycIWcpoXMLIaY\ZLU^M;XLTXYdJQPQWl~UXPNU^wiYMmX`fgK]amcYeeu}\VY]SUoOm]uZNAtXXW\^_YOVcScaW]\jqq^ucuXhkV_peBJM[T[k_WiYga|ck\ZLe`l_[QWVLk|Bc_fuUf\RRST_on6TY]hegZ|YgeXdedrXh{TTh`c_tbraRbfffbTO]Zly|^iYXMqg``nndb_yVd[qV`i\kdVk]Zb_VPTdjeaTbYl`eO]\ksL\Ud\eeZgvi^oX_dUfylghZmZ\_XhqUO]nUccGUWR`mWP[_x`aca`{S\fS`]^[[\[SJZLEc]YfWYbaZbI_USMf\kc[A`vRxejRaR[OY^UNcZS[_xSi[P\^N[TskOqJV]Ue}fm[hNY^]Vm^_b[__Ufg]gZAeoRjO^aqPQSbgalqSZ_UX]NtNUZ^[{hN`XLJ]k\PhO^oX@Sds[qL]`=sPT`fRaafIKZkpUci_pbZdZSU^RbT^hLiOcgQUX`}[agXbdmk]VGSEtVQRoM]QX[Sm^KaQYd\MUeXMsPXb=V]l]gIUOR]c^f:WNEtSGTYzNdceTYVTqDROhFTp^V;A\ELoq9HAJIF9NdZgDXGTO\ZXWLbkeLdYJBGTDHPf@YJcR9pQTF7JKsQG=IJPSElSBNfC[^dOSoHcB@iVDFUNYKQeHD_eChpfgZO}W_bTWG\UwjMAXR][oaPZ^aSLAL>]bg>[DMVkjKUjZ\^fSbT]nhms^hBVk\YhZoiSg[V|W[bzf^thYZ_Oldu\|[{Wh\VT`TZ[_qWfawiZY`{^W^cepULfcaInQ~ZucbpU[rbXaTagXbtw`_q`gfhh_Vg[fZ]|Ocdii\adhU^]sScnhl`XgPYlkdeeMa@I`ghxQ|ujf?W~ZUgk_TlKfn_Tge]Szlobin\f>R_gkk]Y[{^bXT[gQedj^V]Wnq^Xdi[dP_fQungTTMFLTJciRXXZaAD_`XWBS\PNZ^G\MYXcTUlkqYSelgN`^ZYmYfXUlz[vTUTOffVXp_}SW_TNX[OHwMXkbVW:LcbcURTJMXiQAj_KmoK\`EUKmqg`gMWaUomnpQP[egfQbIUXp^`h:lKh|tHPebVpb`k_vi`_Td\dU`]info|sWb\tsSqiSVVpVbw`M[[X[Xtkxn_p\XP`jmv[NaeQldkna]]wehogf]`Tgb[\WphXrVRdnZkYwwhn^\dkV\gvhnd[F`cc_jyRfezpbXlcWZMerWfhbeWmagij^W[kf_W]TfH]ohkRpt\oY{siY_kQTW]a_rcXgfieigdXbelZ_m_em`Ql^vR`n_^Z^ihZdKVWqRYdb]`RJw`_V\Bfj^]Xax`gPiTQyuaOhJRb\\dkYh\eJNi~^\QMiiW`p^Lu`DcouV]\eiJ]`[cM_pLQqTRVP_]bf>aRcRig\GijnQ}adI`_nVkRlhsAbXblkGMdugdlM`pfYU_U`ePi\a[c^PlqYH]YBLXRoM_tS[qXYgHVaKj]lpV|[wkSfLWCM\jnxd~IGLWfQg_]X]\uxi^]dVKlP`JX^uWgnhV`cW_KWVLhiWSg_a;KWWnK^\i\}`NVV[MWIbjeU\ZgqplLrW`UV]H`ZqSZhXZ]^|rmolQbl]`?N\jXD-eTT[VeavM\^QtZbQ{TRdpQI~pgRea^aka{fZNHS_UcXWvJ\f[^UZCW^jR_g]j[R`RIsY~cxaYK[Cbih\F[`r[VWrRjhavqBYkPV}pYUbYcYTvYW_c^m]f^PtWiNLyQY]qluOMIgngmWX_Ri[VOJ]ZOIo_`gTKZZcdfUdb=g]e=cV\[YcVHen\bTc^RWoZig`r[_PbToM^XpSlef^Wta`\NXO\\]`YhcQkX[UV`TYcrUwO\\Wj]]^\YRNDgjKVX`gfZToImYidfRNY|Tnd\jR]INU`okxNaphqmW\_\[LOY[\MeWiqhTKYU`TcYm\Z][qW^JP[jZRcdo^uOU`rVFZ^MQcp[]PodbS_GegncRpJLnSZb`ghSaF]OjWhL_\eSJGW[d[:k]RT5Uk[^RqNkXXccUg^aR[M`TSSm]SbM]d^OV_@dTv]WCSUOZXepTXb`cQpkee]Y_gb][]qz5Pi^KYOcklbMOabd\I_CSiZZPXIX^XKyJHRo`b]x[]I`^^[haZULlocL_eS\jSaKEJ[[I+XTlSZkHbbZuaRycJUlvMdXn_YIOIceUKpZYr`UIrbSVp^hjdC`cJU`sZ^p=QgjX_\Ti^]kZL`XGordWess^\[xnqYgeo[aQ=\Y^XcG]Xfa|\QRToa[ZDMh_jjNue_f`I[FSjV\[Zj[QcOb\Vemmf[DgNZGRRbTOgVRf_TmkSc]eeZop_bHeXj_^^tkPXYW_JbU[ZZnXRpJpmo_ffjYVwtUX`PNQqz]Dkhv|aVi\gZtTXhTd?V`[a_yhnfisgdSf_UtfXVa]isM`yfYXphkM``k6eRSWgO`asRk^cviOb]bYpq_]UepHTyMrT]u`Iq`\`hnNWirQ^tRecFQ[D]hw_eQZbi_:UOF\\K4koU=;UHVJI8]Sa,gSiDX]i/UBTSNW)\ITSIBTR%K^FOTmKZnM^c\V\Eec[PPy]]Re_]PNqeheoR]Tp_TaaBmRhQEXaW__QedqLXGYTNhcFcVaZ`W\ZTwV@ZQYbjV^\gFIQADV^oLvGNZQ@hZX^SdijQ]VYfTfXM]E\\gfYlephcLI[n\ROiJDTeRYNHxehhRS[ZUcKUgUhZYeiho]b^^_V_MYN]ZgMOz\aT^WiTauVdt\dy[mRYXVd[O[ftakZde][c_ZWz]h\YbVIUjM`dF?V^jOVHaaenHZlk_hbRYc|=__TWMT`QhaiTebVf^gfedMI[WaVg^exjkXjkV\daqpopWe]SyOZjsKhWhVipZdgkV]WXvV\l\]Wg^|SUhU>E{TSUVpWZaX^[YErPXd^mYgYQRSu_nVMmhsKLY\]WeUTge~YR_XRSXnYOkdVPl^lv~eZKzd]bvj^fUp[daXoRbgOjWflWlJ`}nTV^_jh]^^bT\RTiWFM\SXMRTb\fZow`h^[_SYXiOqZi\ZWHje_c[TS_gdosEWQyLi\b_gecScjJhZuWkQ`W]VUR\cVPk[edlScL`U]QZYkbaYRfYffciv[_gaYTUkFbXOXdQn^TMRYuffUpX_SWZbmQ^]abpdYXXIUikTS[pOUdTJ\\RooaYaI]\fXk]jmuYHaso^aEghXfOaSSbgP]Wi\[d][xgiadV_mM]S_PTecb[k_]cZbY|\bQkXVVaxYe\PhiV[Zm_a]gVgSXOffMcHqY[bWf`eI\hddV[sbXoK\T^ZMf@gXqVSdXXkvfR_WX^pY_dGe[`drsY`|W_^OfVeId\I^cbi`V_[EWYPTbVPex\FSYTQ`Vx_kusWWUU\T]\[gWi`^^bSWsag`^Zdi\gLXed[WlLT^]hK`PPud?OaYHMiGfM]liIl^YJ_QwWNpcTiSWQXKQ_UmbTtNPIjONp]dAbPHapamSqYqZPP`\VU\SjgOM_hWqJLXkYkFTs?[YUh`RU[UlbbUPT^wXPaq]g~R`G|F`cmhT`YXnPgrpUUkYd^ZP`]OJZNZnZ]bL\kSikh[_GcVncPm]YZ|fQS[RDIkeLYPipmXjZE]`__l[MT_[WR_btoGtkv_VZ?{]Wg\iTfZZMWX_``VqFp\_famW`eZd[^[cJna|jnm_\wpv\`hO[elb[YfitueVhYTaYn[Zu\l`tQPQpefUVgPpkZY\_m]W\]\gUkkZp^on^RfMalRqYXcTtakRu`gittOPI|U\fjny`mVhjpi_UTZ9gbafV]j`R^wteqWughg]idUJhSjbc~UV\ZePQQqf~vacSgouUx_tuk`hW_Wcnji_zVB[oRdkQfO}lno_eiY[lQWrb_d{jO\bYhfJL[ZdrUy|d`]JU]RYgyrmfZY~N[_Vjg]UkdbemgeTf]Y_XcheVa`xdkdP[lBddwYM^l`WZ`SXv\tXQV}f9T_]ki^`N\rmkl\\^odRTugejuhaZdO]khOecdZBn`EdVWVXUXOSQ\^^OVthRRYW_J[PQUZgjhhcWQjdU[_t`_RXNLTYM\aoaj`tjvzNcV\[`Vf^rRQS^XjrXGG|ZdFapXP[]]UyUl^jTVdp`MM^`K_VfIYN]^Vpjnb[RVpeTz\[OJZ`ED[[UsrZO[YeSa_[dYojImKUebLNYY``qofXW`dVduhdT\[V_WakRc@[fW\\WZimpfp}WYdN]mp\`TWcVhn^cYsY`]V\Z_[[hhIjd^acWbQbUdZe]^Nhkl_affkd\clh\elP`Sc[lcgtRWQbfiZfSolQh_iem]k[`QZUWM]bQhgejQ^\LYkSVrq]T^]sKbdVVY_Ta]QM`RkLtWOUiiMWP]]W`R]_ZYFjd[cihTZST~jUb\^[VoZa_{ZmVjYdY\BQsYLSW\G_{Lavan]iXuhbvbbama~;_Uha]e|E`gaeYlfNUNtOskdOjTn\V}JThn\UW_YChZmLTRo]IlTVTzoNVIuoXczKYU;zf`KSvaVU[XIcMpMSQbS`cUUVAfTWemFrSM[g[WW]]\ibnLqkIkZ_JfUZf]^YImtxkiVVf[]eO^^VJcZMoxOZEK[sVE^Ckp[WQMb_RH`eeKva_QYbS[JJZka[T|YPVPWr^[ic[KoTLjLV]\XcnKZV[_]XY_[gYXVr`_Xe6eLmfXipVT`_WzddmbYtNqVEce_[_LRulT[[QplhWYraZ\nd\LNaj|cdPOUgRUKnkhI@ObkUULfeZT``OeKd^uOeerPuiBcalqJ[]eUn\Mdz\TVeRdNbRb_pWY\hirRzigoPnc]\dWgkN\Pc\DaiRZc}`eQORz\gW}EL^U\sdJ[ecdW]dTjc_e\TfYccdoW^[QpkYYZo[R[Y_LdR`]WZhOjWRfMe_y\qflsgGdGwVXgh^QQRq]cpFnUjT\dgz^g`ajeerPXfcHb`azn_Q^c[[k[ZoLkqftTy\W_\TfzOk\]]_rPf[T_hF`_NaUj`HP]LVxXXYYRFzzrVWHYaRThVLaYxQ\UUsGIt[LqMNnPd?MLbVeog`[]BdP`ZcdY[pnWerVyiR`OXpf]mke_]P[`]S}S^Zc[MO[uZfubJdZeffZX]^\QO[Wogfplk@pLjhAfq^SoXch[Rf`bybzLle[rXcl\Ta[XQmchg\]gVpkUjYW^ZllmW\hgadWdbj\rjTZT[SlbUUjfqlsWZZaLq_iDioSZV^[xjW\eZm_MazU[V`kifdk]ka_c^`eZV\`Z``mjTe`\\LJTWYXBR[VoSW_q\pNMR^^Y]xePQcTjdkg`iSRmdeWZ_kG_csWq_Tq[S`mbcOhbageYS[lbeceh^iWYyU\ac]m_h]b_fg^gihZZwYW]TOKYaZec`l_eTjQeHnlfbYkbcaSfZgT[fSQiIce\nmj\h[U`foXnfpk`]^`[\Yg\__Xep[[o]|`jcrlWQeedTynUZ\Hhq^Rh[Vrt_`ObqX^|fY_ehg`lmuNTMSeH\]?YPi`Xcbd[VvvV[Yvflet\P[RT[Va[BbtYlmfQpST_jfwadqfjbTT_r`^kk`TmkUldbwTaSqmjMbNiWXd\Xi]gSdKmXkWhhkW_beScfe\Yih_^`cPwnTlbwKW[jZfsjXcZY[eNrYFMxsb]ea^mgcYcaTYM_i_UnUUZJNkb[pbEc_hMbYlg[TP^mV\\i_g[VWnGd]QhQgb^QT{rS]^ahdiNQXmo_[pPUf]YWZO{icWrcbrZ\iSRkaXchLjgcWO^V]P[rPbTajeP]E_gtO]][]fIefnn\n\aP\di@HKW[@Tm\ZN`1dbjGV`ATj\pcDVR^]PdRgj]CVOgeh`e`[]lbp[VONNqQWHBZT`LUQhIOVG{MVoYIXIVHe\QZ`b`hHTVoP`DtfUf`TBlfG`F]N`bqNr\I\d`cKQZbgm=Y^JdgeZZQq[cJ^Ua^b`YgYlO^F[gSHko\Djzbf__\`t~WZZRd_oekFPPjaU]ktVjodb_~~dOWaXLZa]tU]ehYnbaj^Lv_c[ZXYVcWVbys]cHgUie^WjaYk\]iu_cehgbeUpWg`aU{obQecUZLehWl_`oi\ZLhiefXXJXVQcO]ZIcTSMZ^^QyZoY_s{aimEOWj^]u[gSTf_VkkXaf^J`LmWj^TL}SaddbN\XZ~]Qrjjbr`H\^f`b]eYOt\oWS`OZfVO^dMsbZme_\cNUG]TbdiVeMkSkleZW{[fmgqu_te_me[vxRLa{Yyh~[cTRm\Vt_YVqiknLTe]]vebj^b[c_UbXlW\UNoZ`XZlYkYbg}YjWgcNpjg_hkUYemUheWi_csflINqjdaf]S^`pjsDh~MZY_lb_iRkW^]ricSluT[Yn_Ug`j]rg]TSTrYbkhfbX`cRdXRQOkUh_[_U_[Z_lgZeoj`TcneaZ\ubjxd^Z`rjTQWqxZse]ZLpN\U]ozY]`uG[pfo`\~bYmvcTVa_Lfi^SYTapeQsQakXUYl[_bRScWXTYRmgv\]wdQwTXUfLlOUP_bgapXdVhbi[UsMXXsOUzQ[gXRu]daScR^O[`]QVv]gUk]Xjaa6PfUyZPvsc`V8KPRY[N\SnW\iScVNW\RHdhRf`TW^\`ncPU_ozS_VbWWmfeOI]=cusRnVgox[VkLUGSXY^TSJdfPOVPaUM^]S\aXZYdZabQSbWoj~FbpdAUHd]Po}fYbZZUqMUyaH[e@T\O^[UQR[iWSS_b]f]R\^dXWTkm`cXcSXFhRLhYDZh`m[lf~gRMX]OKYWVHhsnY_J^Z`nVdXd^QVTvYPR\^SL`]V`VDYUUneeXm`]ri[_OW]\\^De`FWZUj\hS\UZ`[i[ra]KXeKgjYzpJMuMNENe_TLYLsXl^cjoerXfiauUdlUophiF`ewK\VOWw`gEcJtUbHM\]Tfuee]k}^XYdsZ`c]FWqUinZ`^{`RPyFmK\[\^VYW_|NdWZS]]ZrX\YnyYth_egA[hVzgebfh\[\tXf^WVg~]v\uYJLYTgo[eLg^WgX^vWcWXX`lrg{ocgbNg`j{[Vt`Pc`vReYh`UyUd\`hYj_\VRkNcPWRmx`eJYlYJVRQRf]Nb]XK_g[WB`NbU[R_RmVTo{ieYbdT;MYLiviXPZunJWbXXfndYgGKUZ][]Pkm^P\_[v]lceQu^ckMje]iXYMa`WT]Y`gn]S^]_^gTTiVcbUCCkNSPQXXPQMiLSDeQWMEnNCVMWBNUTJK_^kQN[^Y^exReXniRnZPc]aPJa_Up]W`:\VJ5V]OQ^TY8dSWYl]i`YLPHVjhXZIbK`n_V^LZK^WghN{Q\XF\ODbVRMITbaganZQOmTb>RebI]ktYPYTel@VGVElnH[eSkR@JUX\KhKlKmiVUNQfk`SiO]Z9_>QaQZTJJd>TCML:I`ak[ViFIT^jXHSW\X\TUFGdX_j`JoiY_e_G>Z`3Lad^Wki]B9NNOX]dJnv0AgelOXjN\\ZN_V^WPaI^9pCr[|Ufk|^cQ]i@@WeeN@GMUVI\iT[BdjgQZPG^RGvSSZQ^b_PJbP9LeORlWGVILXPVVmENa<@XiSn]FwPdMKPW`bYB]KPYjTL^OJ_PiEXXX``ZHT^`X[]]>p^Ym^Psb[WH_\^TPc<]WNVQHtcfWdcVNpK`DgbD[}j^mbF\ebhMZ_Ac\[UW\rdO_eJU^^UvQTlf[UdaPvJ\_K^{YaN2ViSh\QXccjdq|cWYQZTxRZVtaeXdrkcWPYI^_CWYQwiSYWYjb_gJGlxBGKSUgLeJBeQ^hYUjN^kgLPcv_e^\evZ\~iO`oanWi^rQ[Y`k]`[PiYc\bP[\etnndXm]yZfmkifVaSXVYIu`f^kMOhjo^VUFoRbeZQg^mjna\dXd__V[MN]kescZnl}^]@tLW\fubg\]tiOtaOX_fgMiymlZ{UfkYRfad^bpwd^qRZN_^_cQKfaU^PXhcS_[YXUVRUcKaUc\NnbNd^R]\Qjh`XVHub\jccR_Z]dW`z^^fjklkQ`\|WJQsifVPMX\q|rf]Z_n\ae_o~o\[]XRZRgmdq_UkeWpKP]yZv_][fcf_i]bbfcddWibhTabb\\SiYm\U[Rb~WtlufkCgcOemh_fgtYfeXXogXhddXST[mZVcdUXjSZban\qepbepZ]feWQZj`enYn~_m^U[XjX]MPYR\\_fTT^h]MxgVOaVUbq^Qcf`\cijaUeeMl\fqS{^}Ne[\bjU\]Y`^WeVcfN``h[^ZSo^lLXQdY^p_necjZka]CP?U\OsbYh^OhMl_gcSS`ZVLY`K_cTm]YIeppOh^gZef\Zbmj]_s\V]O[tcVrZWtOWlMXM`bUQakE_PUSOa`l8NbhZJ]gsWZWL^_YY\_mJcn\W\iYStcoMW^R`b`dPXcsPTf`j^jdUggm^achfVW]^Xnvg`i\\YkiOcclpZ[]l_XmZi]dliadb]MVfKihXiN[of^hr`Pxjac[SpT`UVdie]LeLb]pSfThOSl]tNh`auWZcc`{ZabfjoaUa]pfYcj]S\mdbR]/2fH=(>LI`+>9;_=\SECQO9Z`M_TWH;Q9UUDG&7WC9E?wL0QR`BUA8S=_:TvD3cRIJ.a@R@I_BTKGO:KSKIZCFPEf<0LZ[Mn_fVDpo_[dgcVZgNbrS>WL^lcNYI_Ne_]o^fcNK_WZSeGYaV[Glf[OZokVsyTNWy^\VjvXQaPbOQ\b\XRUYVObT`GcRWQsmX8lhNZhLU][X[M[bXxqlbuUsggcIXTpMicZiNKPSgceHdaZSXcSkLW`;ghZY^fIZkWVjgU[\lND[PMNOLKh_m``T[W\SXShP_gtnXj^j\rCXudiTbr]QRRUgjYg_clZVguEMTZYl]dOTweT]S]]_[hUYdnaRWQ^Xsechrnc]aMabMaZQO^SadaaraTc\^cfUmchXYc^wg]d^baetZg[d`ke_kIk^jQY^R`OdVguZc\c__gg^XkX`TThdZd_KZ[O_Ue[`{a\Li^Z_vQ]IJ_HUaSWY^o\Ns`eYRXdf\_jVkg@i`aoh[aZkj]h[NXS`qT\]DP{qS[U^dim]Uf`XagURUUdVaxbTdpNXVQQaICTieiWlas]s[gagUc^KYPTTesNaWTlRXbh`^[ORSboOua\\`tYZhfV^aMfXW_]jVOgGTWUM^KF_Nba`bmqSWk\_TV\RyoSZNmdOhS]za]LPrSledRzZ\ZZ^SinK[chQfimv^bb\b^ijpSkRbgXkw[Ye~nawQ^br[tf]ep`Y_pJRcQjS[\JVZqeU]QcdgvSUgZonfYoX\Jincmt^V`\\ilsmeW^RjLZh^ZcU^Vg\hb^dpdgRd^eWPTf`^e[ScWk^yskigPtu`w^ofiodWcd]mkV\ojfOKa`YY`Y[SXYXeneXpMfldYfRTcbdRcZmT]TdFc_ZahWgZco^qlg\fcaM[b\jj]xZQO\XVdo_e]X_dZeaoXXvelXiavgdIQbNZfVahXXH]UfgqYE\cYY^K_WPZeRPX`jImaRjnPMVPPYejc[__Yb`_irdk_PYWYRhq]YcS__blQU[UNW_G[RR~\Si\fQXKnTVPmRXY_^lLcaSMlohcMk[[`gVVkV_[obYe\y]^`hWwJbKc`I_QXT[Ri`NfXuL7aMWa]dpi[be^YWeG\^QP_Sml^qOkbZX[^_bCkJUVZ[qi[Zw^mZSXUOfclkbIJckuaXhd]bVVZZOjiWR`PtrWJ]dY_oYTLj[T]^POcA\QtLXeSaFrPbfKmaRVv_fteZpZgXNWRamVcKbS_kgehUXfiWP^XTcncWe^Y\[ZZaXR_\cbvc^`'aVn]T\ZjadbgflMmXTSW\hY\IgPV_dR^^]Yd^`[fPbd[hY^S[UJl\OfRinaaH^sogQgdh[Yeqibj[X>ag[fQ]_aVSkg_hQT_^lkhiYg`\bg[]XUfRJWZPgRdQZilnf\h_XkcbIa_Yh]OaQ[TZbhdtMf_ikZd]YSds^VQUTRs_ce[NC^HQcD__]n\d_cqQkYs`TORZ]_deakNXcLm`e\TZgIXNcPUDag`elKbRfclQbF[ctPEcsZdMSSseNbza\P_kj]aMsMTZMXdOYPgAKdEYSmUaf\UXLATZQ[gOI@o_G]cgSQ[anIbYy[NikhNUdgT^\RG\]_YejZEjfXbYfNT`YFFePqhXUdbokwXN_~}Y`j`kBPhm]QUYevjoSTZdaXGmg\XKc]`\RVQcUULtn\RkmTdNIMf_fTmRaN]qMYplj_cTZYhQebNpy\fQSV`|rh^Pwh`u[SqaE]pk^TjcVNf`TTXPhhWnfsNnSu_W`URNYxZYonuRbMXGPUWj_L_faY\jZ]iHW\[_Q^io}^NUVQ[GffR`dTu`RxdZ]^uUIGnR]cbgfT\]f|_f\fva^`T_jZSlj{Y_Rf]\Ju3_To]PgoZ^[~VUra\[^Qn[lgMjUS]v_biudyuWdWWJ[m5+D\VkHl:NJcNK^U5{?XZIX`V*THV@=K'GGLUJ\GJ@Q=XR7UJXeR:GQQY]hdEfqNhnrTWnXRHLYnR`dZSGW\qMWd[{RoG_ssfZRxappbYeViQ[\ybUgS`us}^O_Qnhb`dXZNRa`hgcZT_fmXimTt\P[SbWgg[aTZWdpYa]migMYiXnEkXoldZ~zqaVSaD\nTSrRkVueebS^RmlevYYZ[u[QZZFlX]eS^_Oh~m[xbYqkfOORbuRW^OamZWkbm]kXfogb^YtbM\]gY\SPVh{v\N{U]Z_iffkP}gktljZfUT\iPdMVIUcn`jS]wGh[kifutbntsbWgO_drc_e]TR]PJcbjWdfZTYgdPjqgZadS\rKVo]v]c]gkgY]bTZYew`iHXf\\\scWj_VQrQPg_arV^`_b^sQZtWZjZq[a[ZfS_YkQZcSiosmxKaG_bWn}c`b\_NrUcgpggYkhhTjhGhVW|\SNOY\YebQ[^HaZN`VMani_K\_\\WnfWkbldWwvai[U^Rjly[[HmQbVk_f^YmP\gaW]WS]]ae\IZR\\m6P^M[RcvSTaNxnU\X_l|@[da\bQXLXRKZgwcX`b_d[Y]YnMug3ql_dfk\klsWWjWheMWNi^kifbgaS]nXj`aNm?aPfa[OZa\SdpZ\Wd~v\JMlt^oXq_Q[\]xS_f[llMN\bfJOLXkMkj]~]bgaK]ks^^N]^]NXUNUVc}p[Z^QY^Y^N\i[NWJdco^mc]Rf}K[mdh\OdOcWb]Kpq^T_Wcre]hedT[NiVb]yb^fLVQi^oTe_O`Xe\epZEcVYmciYsiSWsokxnRH]kkxevWNXhe`k^hfWj__nmohpN^Y_GempFlX_cnUWeUWS;UVYUUM_TOdUi\Sh_YM^^YNKTmcmTKlsV]JPf^PIWN^mO^l^p_h^]deM\RKdgJxomPVX\:KRTcT]TJW[PiaaT]]lOZ>aT^`kV\\{iNItZ`4df`e[JMPWVQN[I@[[MYWD]NVfUZqdicbORhpd]dnbUlkdhgeQbL_U\RqSevazUXjXnqa]bPkqaXjeV^ZfkdTkkmqTIifx[elQ^aa[[\vW_hrZ_T^gFlvcpiPjbRUhadazeiRVn[lzTXj`P][]jX{bRlLb^eSiShdc_X`uhY_[pEmIs^`zlY|eyJa[m]beLjebYXXiIW]VGscWYSjkbk_hYT\`ZqWQoUJjtlgc=dVdUlw~kgldfrnKsOaZ|O]WSY\`UZESWjM_oxVqcWg]lEamafd\jdXnapiRk}Wnbfs^TVl`N\mf`cQcBhp_\dgdMrmRcI`Ub[]pjD`q^XXKyJX[Y]dNbTb^vbmKUYqHkZ]n_dr|SHV]]agRGrvXOe]iT]WWeQfUPd^dfaNpXcn^Re`Tt[osfaHq]Xneo[Jp^r\gcZoZW]uu_j^SjrYQrlSnhrmePcie`Ygdp]^Xoib_f_afpmYzbdAZgWQUpTg\^l`LmnSYXXI}qaSMg^KcwSgUYZeTfbclQmg^\\m`uYX[XZcTTmpZtbUdeeNkPX^[XWhh~Rc`WcPkaIvmiJ`dRtZ~[hQkOcbgirj[enY_f]Lapcg^yYl]]Ui`nSxoXnu]PZXiMYocg`ZgnVP`o{ig`hKNvwtfZQhZLeYc]PexbQmtrgfLg`MU^_\TZo[[VwZkvwJ?gDdyd^lTZUcQtcqPbMjz[e^iDZU]ohTX\mlXkecs^sPn[W_JemSRgWaY]RxZQvMRT_hdaXP^~Ym~dFm^gfLiij]UZhNmabXQV^PRWdJpjZqOTa`JVkZZtygdpo`d]WhVw]\nX~i]cf^[qfhccsOnwV]^hdFb^^g`oLZak`ZWZt]^QYC[i\Ofp[t|_[Wula]gdh{jjWlmjhdbr]`@YfxPIhwrcRdH[dVodYfgUOTUxhjoZ`Vp]TaW[UMYP_koNccfspilfLensVJ``iXZ\XZHdmsXJH[l}hlZiGSZOfeSZfmRWplh_O@L`L[WdMKons]feVbMJ^Zkcb|NF`R;TbghVQbel8NPWMKTpVRO[`ZXnVJfSHY`hj]WOfOeRU{UWSNVNZ`QVM^XdPpW^HDL[_ZQL[aKpKapWYVd;A>VTflEX[QXbK`iTgWo\iBUFTNMglUOHK^bQJj`PL]EhEmHRd`M_OVLMVTL^~U[fccVeW_O_G_XwpbfYq_tvkj`\Xi\Xp`m_OfeLW]b`O`fzo_gb_w|Qp[KiQhUamUdiqV\]rfJkakimhVkhhmXgcceQ`kOXkTN_Wy\[TiOU^j^aMd`hnXRmpacfu\lkRROYjQg`TbYb]idQGjSMelRbeWfOgh?eY[mmV`jhd]WiqM^rblYfX^_`Xrcb[vlS_ahmsuVYzK]bmP9\VrXYhUU/sSW^sYNQ]ViYIbU\\iGO_FXS_^[lO^Qh]FJ?sfCTc\fHeQ\HXWVITVdYjP]a]h`Chs[_RP`YPcZUaVEGSTQY_Od^PJVS^UVVgMqUYQNiS_Wk=SlzRmqT]f@`dLfIgTlkX^_cW=Lkl[\SJRv`WNIa\[bUP]]H?f_JTVSLR\^bvrWKe_[QpSX_]3']7PWVcOA[B]\BW:G[`t8PT[aUM?WVap[_+R&]AkXJO_YOTR8G6XK]OTOL[`?WP^R\1[AEXb>@UT/lePUelOEZ\MUPS`iAMQOTSQPOM?_gP^TPZKNV}dZ]]Pl@.dVT\lVB&EB[_q[yxXuoPPbbVXcoJldUIwYeV\^ax_[LXHx\Z^xVflXcyanYi_vJW^C`I\TkTO`HpTQK`^ra]VaNURqj[Usm_XF^TZO_a`_qqyjV{dyTQP^QT\UOZffsZaMakilnSXn\VJVUWw_^UFcYXndH`Kf_e`SkcSWlT[?je[R]^KN\^raNs`Zh[nZiMRVk[ghc[SVtc`lZQaOcbeXj^_MTkD]qcRafsUqhJebPaZVsbhCFQf[lWSqaY\ENQf];Z?^ZM`nVjPiljdgWu^gMLKdiAHBQnnY[LfR^Xi```c_dIkYy_KW`LVNqiX~GXNIoghX\X_KccI]^_XdDIuJSw`_T_LF_^OZZmaQecVZpdg@VT]\ZlRiSH_SqVm[ZcgcGWlfm\f`i~MLU]bL8GbynRWW^U^VOZcNS`SfZfmJgdcZxZI`1im^WUDOGBTa_1W][YaJSNgjYXcMSYQpsVOQbNU[SkX`Z^[BOkvc]faobbU[USWckVaUiTVGZgZ[OQ`Uzh\wOQTSjLfASW_\U]`qVPav_k[[XevoLHXVTRoXM]oWWcOchk8i``c^mk}aUUXy`[ngcWei[dOShhNde]xh^Ro[b]TaIf|WrZjc~`\PVYZlaW^dmbkmLeWgp_R]rVeb`W^gjgn[a]FLxWtMg\v\QiYoxkPTqZL\[y\ParPeMXZWv^nl]l]Za`T_ci]iUpa\jdIWZaSaibs[KR_M]dYnq[[doGfI]ObK_DCf[|aub_aQ`MvwLXitzM^MXjbc\^\YYijf`Ngf{pVOl^n^bKdSee_LecWVp^`XUsVZ[fL[a_ZN_Rh]X^X[JjY`[RYgQg^[Za^d_a_a}q`h[rmt`]_mcl`k\_ecfTgUVgcKQUbbo^tja^JJ`bZX{lKTdlVd^fhSacT_]O]f`Xz_kldoQ]TOW{N\`khaNhUhb]f[b|jm^`@fm[p\\ONCgnI2l>:GPLUYCLRQ3NP?SS?>?>BbWJi@a.E`bAQrj<@cYPTDVTW+_P8NVJKCRALeT|[^\m_aa[yf\ThZZdoWmubWSfUSLm[MgemxkTR_[VnXefj:oZ]rSZ:llXcjWd{oRNcc[pthM[Y]bnBinrZotXVdeg\_[\McJo]xTS[f]XicMpYhgRe[i`cYYhmplnkW[mWM[YdYh\9`emD\YRklHZiYacZqPmVVBfZZS^rus[`sj]t`^\^T`g`Nj_SNPUSTNS\C3He\icaAQO:YiTX|RC_jSWn<7^P=IH`GKYDI^Y5PXDU@ORHULbUNWY[RJMBQYC:WikXQELme[?H]OZQcTlb?Z_?FM{TP3CjC6SHOQ[MUOIYJSLKGYKQCMSIRVRQOLqEJ9N:9a\VSL_NWeUQJC?L@Q>JN7IXboHJJkbMZQ_SSSgR8M_KXK==R~@W[WW[SkUq]hcXT\iQMXjykfgtZm^RN[Rbcs^hYei_TQeod`PT\[KlfGUkdeWWPYgjP[\UeUPQdddWWiSxfEhVhP[w]baL^bK|W^hMzIUg]WZ`MQYvi[OYL^Yewgon_f^Vh]\YOMS[^m]X^c_APeO\OeM_hWMa`aP\V[`\vVPfU_Zb]b_lIV^cK^eajjbqjbIn\_de]nhHaZmTWPeYQefgPcT[^hYb[cO^Ocierv^UjOVpaeaZXYXdas^oZnjkXjqW]hlVWN^cZj^VhjjfS[VVdebt]McXgZ]XoYd]gcDbG\`adfdp]gk|aO`U\KTnmiee]^bKHQjX`nUq_[P`iZZe`TardNT^agfGSUVK][leSXUhPX`PNhZ``]XyX]MTbTdCMUgWVIXjZHiLgy_rOOU]R^OOg`ehpWXW\ks]QRNsXObMqfS`rJrXWQb[VqchTwm^mKQlJZXQOBbbY[_R[PK\`\zq}IAfP@_YU^^V`XaQdcgj[V]ULkgF`M\NdhVe\lgPbfPSK^GZfPa}YRz]_gZ\N^mYWj\XUog_]^pGWNk^Hke{iP[I=exTTPiEvVXlaTRYy^Of`^c`j_WQWW_sWqlg[IvpoIf_v]q_ib\ijYWoxYjqXXXUAcKlvbp`weWScaaPzRa\VoOhdWTV]dY[ZeTthX]wpd\_ovbtabhwb_rWv_G\dJrcusT]fSTV_B|yH__mqn`\yabdX_`Y{kumYilcUqQb]YnZgY]\VsWk]^YUN]P\i[Nq^iWpuSZQlQ[TZobZgVGLLZjZZjdgWYy^bKoS`HegjM_IIbUyHUXnc|oKSTSRcRK}IrdW@xvSk@Hpsek^>Z;YZ[|^fd_aPTsXXTf`{ehUU{a]taWghX[dh`kc\]aW^ghd\fqlqc`bn]decV\`jrll[uedZY]_gY[k^^_WbZtUhmWUbSMwnLhjhcYbfffqnvkSffqZZVsm[okd``O\kY^a]kearcSbca]aeaaiSxnhudX^NcU]Kbq|jlzTXncL_RV]r[]o\][WlT\deS[MRmrLXgbQ\mroh]as]Yg]\`X`g[e^op_\xk\qZV`YXlwVnTc^~iMcb`mkKbeilb_CY_\ndQlVkOa^Uv\TbagV]iR_]th\t`cjbYkY`;g^cKXW__VvGbiYcT[bhh^s]aaejzZQYbaXTTQbX]T`loaUhamk\qiHhqyO`Q]aPhSRha2mXVKfkuKYcvDcRXiXKXs{n_XscUURslcbgOl]U`YjXLn]LzY\PTZTgZcRZbQ\SJ[UhPQTe`edXmb`ghKWdf]W`dbPnY[LSfVhmOpW`xM_ndXbghf_OaYUdQKH@RxYbgcdVcUSnU[TnqvY_rWaPTamYcc[XTAZgXhe^bZedX\Mo\cWtVPSb^PSAbU^daPgiltaZccJw]dg`asellGwodTCz\db[Sgg`b@[IhcinZHKefxdehd\i~p`qS]i`dFX[tki3Va^ZZ`AcL`\TTfVqeZigf>ZUs]Tgf][Q]cRXgUcULcTnRhs[caIdSviGto_a`SeOVOe^VWbpntlYXLNbsRZmgSixHkeSlsZo}\Ok`^aibabmaKXZZZgzcNGXfbUVemMOU]kUbKJ`gYuWpcUeFbOdcrW^fmW}`]TW]KqWkf``a`oqaXkrdNWZn|xYgWkYi[jw|[jrl^faf6eui\~nSg]MaeOcf\cg]ei_^ceZ^Y`X]a[^vtaQl`cc`EndKb`ncevPlt}mcf\sWbfylXYZhn_xZdmaZ]XsibcRckjodojd[]fX\`elSQlU[oosefZSbRqsVeZWVuUHnSSbnSCW`B_i^ZHbL~ec[T\NOZReRR\PQoGYRe`_YXJObZF@fIb8f^^g^RVb\{c{Z`ZYAGSQe=[XCNsb]M`ZQKXb\VQGZLISU[PThOHKl]J_VOa]tihf`aSEUkqYqj`cWc{laviWI]I`YpnUqeazi`^NaS^eMcP{_fVbGf]aeh^Wm\bfNWRow|nWZq`ebR`jf[`\bXieXV]c\J~Z_eUTPtfdiYWmdMJf^miXfqa^gV^Sk\ZZOYUberg^emPdPq[alYRqHD^|mkgak]~xQNl]PhcmO\Px_TatOibGNnPef>IeT`i_qZXhv_imaUkaCDwOhjol{Y_Oe`[X{^eOcSlQlYP_Wkduq]coTli^WWUdPISLmSOdQtWScemnY^M\VV\v\uj]_c[Pj_Py\]ck^\bm[q]o]nUV`xPMSQWiZZgZTcUr_e[MXW]\H_ZbepbJphIH`Lhcab]O\dY`ahWUZbXXs_pWLUbk~ZhFYYtO]\VQ_UrjbK}bcc[RmdQhO^X_Waz_[n]gRfHc]`QVUprb``Oa^boX^c_mgMKNr`O`amQqKnnQnSl_I^Yi[]LK`\UW`g^ZzVdekUi^ilAAn[kuhpyxi{`tridvwstkodk{yzlwq}~bqjgx|l}vt{lx}ztv~rcvwxlmvttpqwlt{slrshfs{iutqetxhw{pw{ln}vi`wmfwua{tzxhlutlotd}rlkvfgdi}{wvkwzkuhixl}ttepqron\oxmn}zrmzcoqrp{wspp~yyoaehs\TWj]kQi_nQdaTUbgGlW]c\KY}ns_SOiXLWljSPiXOi\jahQeB^blkcWehePX[YR^aaqnUfiMTpc^VjPeC_FLVUnmOaegbVSRYeoGX[g]ZwZ\VrhcG^SPaObcnSh\`\SPNbZZ]kPhsvx^__ad`[G\fV\dWjaSV\\W`[[ZgjVmiVbjf\MYo`JS^{\dXaxz]ichPjhvKcYeHXKcV^lbTkaaaIagp[S^aQRsGMlaFTLQSY^U?GgVZhqcUQeRefieanpwn`zc`Q`W^sJ_jU\u`yScvMYPQTiafsbnMY[\Utw{Ffa^TjJ]l[^dSi~mVXtJs^^^~p\^h^fEEcRbxX;UUgrVSdRXWgiRe^@\gh[`VMa\hfn[]aheNeh]}_^nbadYYKekbiV_ellPWcM]~^_Sxemgejdfhad]YpqatzaKbExYXaseeebmKj]NuskbZIPbrPopeX{fWcO`_y`fF_`XFQagesertWeUUNmhojhLsXEwz^SjY\\]^ca[^qRPdmsObejzVfswNzb^nQlxKX^nFz^U7{{]V^wfpQxJYUYkqX_ck_HXRg^^\buX]jVbj\]`c\`mdWVWd\QvsZoE_tZ_TojcyWcQR}cdY_pUSQXUtS_r_uQ^yqYldfQ`XajmcxZ|iYVdSeY_}gcVhVJ]KrXtQTldr`fujeSTbHYM\Z_kcKilI[Oga_Zd_NX`Uboj^[MggLOgXfall_b\lclns`G]n`eqffain_PgmGnNXoc]f]^_DmXaSXdbwcilbL^_X{MeZFKyTnjjjcm`_kjX_ompaUBnS}]mvrmU|W\^k`ZSaW_cxgoU}i`ReWNd`SvUsjSubibi_qupK^_h]Y}NjY^Wf[Y`XobsgacuUibUeVfqYS\uc^_bp[]`jkIkbOpfeup{m_kpXbxt^gar8\aketnvaeaUe\WaVfiJ\[l^jbfWjXfaSjPYPboQSZ]JjWsU]PPWgb`ROf_MaaZyTutgafob^bMTj\U`RkrThkmfMlf`WVf[dSaX_efN_ZWdd_b]XY]QZX]r_PXdXbKc_^c\X[Ph`lbh[S]`bluYZ[c\UnV`bn\ke__cY_gbZNhZMgaU^rQ`x\H[jXW\XXcakOSpi]\jxyUsVvb`ewVfbWjbRZp`fm_fim^l]_laYlV\VUT\^]WZqcaZbvngqWqx`g[oS_wgnWY\k`cy`VrchbeniQaWm_^Z__XaaYahpnhlytePdaf[bbrbulfmiebZ`macSm[a^OPxpdfk___U]Uij~HoQli\Wkgolo[m]]YcobXZkrdekeakNXg]Ywr\_]LjjeUXi^`dUZHQecUfQdgld^^gVighR^XJirZ`]pc]_gTejcgaEWmmnuONR>f^UYWmioDYmmYr[]]nRlWGr_ZNcTrfJO_iIjUTCkbYL>aiV]v]jnYd[ojqv`X\ZZnYee_c`SeUbhe{iX^Ne[a[M``ITUs^U_UvbcqKgdd]]p_\agiY`Jn_jVab^fHneabflxJS^_c[TY\aI{Yv[WYmWYSUYc^h_W_RpfVkwQQSZa\OKX]R\XzPWkbQJao_Cokc[l^j>c`zXT4[]fLY\VXUYy_\VwXXwVR[ZvOiQomOqU_ZTcYVvjfvHnmXQ[U_SFTifl[ZpaXYhc[QWlHR\mQJ^_QRf[_ZT^^fJVZ`ZTQeX`MwhtRYVlX^nfp`SK[DdkU6RNgds_AY`_^`Td_]PTbm^Qslh^\U^QyS\OaVh[TTS};SHmN_jPZXlKRZ{ddYWbR^VZOSpJYY_TScP`tPigYXXYSjGJFeKSakdVZtkOXq[bPeUfW^dNbUpae7D_kYQWLwdZc\a\O_slgdViVZq\ZdbLNNY[bZHn\Sc\qfXaVs[zOMba`WXg[o`XFgbZS^[dRQWI___t`N\KR]SWT@RtIradhVZXSPp:TaN\@SlHJaNo;gYpeRbIVeoKLRrZXn=PdETdl]gXEs[_V[=ogjY_S_StO`]DPJ[hiUf^dU__\LB]OHTNOL_i9MoFpKDZrbob[SUXtUWdgQ8XV_\UcZknJ\jRLXofNHcS=`hToPsPTX|[`caOa`Tm\XOSG~\9TO:FS\q^flRpTXKZTVg``J`Q]\`aaitEVdVpie^\cPcU_Ti\_^gRildjXZlKRgNO_tkyePi_ecZk`VXfkQP{ala[ka_cXe]f]bViPSTWeN^bTuZTf\`phVPZ]S]OmZ]faqedjZYO]mkZ}W___r][`bkZfpXd]dfZ[v_i[RX\[p|uoSlgb^ov_[bZbnP^MfbALVC\VCNB6@RL`q?Cb=:VdQUF8d]DAL4FLII?G==^IG0ENQVCHYSCWKZOBDROebY^[IV[WoWL:OeQoeVe^[IIoASC[FU:OJQ~PO7[]]]1MehWHCMiAUMiHwKcmGRXGcZ\PFZn^SUUQEIL@AWa[fRmLM\AO[OQF\MrdtAd\EtqYR]^ZQag_S?^N]PA]YNRu{WuYS_q_JVWO:MQ@eZHP=j^ImW[WVI[OVhPONHfPWcJ^[U%d]g[NZlUaVy^jXQ`jbRZde{Vby\]gxemri\e``nTdoqg[RLUSmdii\t\i^^M_ublbi_aagfRPWm`lc[\^LVob:rffn]Ufe^p\\^Sk[bsdbfVljFgvXV]PXszZ`Qj[_\UZ\d\WVoVnJ]crdCma[aj_Igai[_Sme_QM\SMhZqK^]gaR^YT\`dQ_Dkhe\coudhRO`PUW`gPgkiM\deP^aeXqnoq[gSYaj]aV^Z^kWMTiXtHh\Nef_|Uj_^k_}T_ca]dUY`ebcKb_Y`_^eck^a_L^VZXrWvL^`JHmh[bcfkZohbP[`idg_ejVnjYeb\lK}M_X_^j[^apR^_;W^WSgMcMrWwJa[^}^TTqTi\WWJbjSRrJhWueoSDOn[V[xOl^Qx_co`pPUP``]mrg`rWPVYPhxNWbZdiac[nYdJ[Stem`Zgh_W>lV;JQ]W_cjXKrn{P^[]]qSYR}MuPSbeaPb\_RWplQkhGN[hyzgDL_Y]g_UmVgafWXAak^XeghYzRZoZacLjaiOgY{k^[dbTfGQkZ_Z]I_XSaktcZENKYc^cagkIY`]q]g\g^dj\]ZYdSoeUaCXR^Zl`jdTqgsMOoOeidXSpmF]]Pmkd`Ng^SP\Abc[VMI`KM]cySYX]`^Omaath^Xobs\XW_XMX`pPHjaLlT\ieXaUfdmUPsoXTWRckeaJQ]cDUZ]Q^_hO^ZX[hafhIdnX`QaM]kgXXVm`V`UbfWhPgeSOXYkm_e[Shf\PkuYosf`[d@a^Xif^]E[pof^]af^dK\eBD\ah`]S_V]lRRYvK}rXZWaa]_hT[dFQY_Z]_\AQbKoLSSWOcUUJhlFro`ag]dTWoSYXP\RafPvBX`W?KYXSUlYWfLmVKlQOT[fLbmMnYQUzZOr]EZbiylIPLo]bk]NY^aLY]U^`Y[ndsZKxdQZb\_PccRvbZVc`kIV]SiWXv]QVh^`aNNT]Y^XNW0fQcacWMWPWSd`Pc[P]NbUMHM_aJ^TSUjG[@nHacD@`YDUSnJZC0YOTWn\Z]DVb_]KPJ@gnXigWOUU>Sb^_[JGRdeOC]T@JGdhJ`DJ_WjhPYlZgYUJ\`a[DmcZjo^gbV`[pvD`[g[x8Fk\QjZV_bn]f^uK_YfV[dVo>dbM]SJawz[qcZRckOb_rbPQa^sf`oDZRnbpUjk^GT_^\]\[jSwRdgipV[YPTVOYuh\`U^~e_t\TcgkX[]Kk^qjM_eRlckb_`^WehI\NRc_\eYvm`iSPn~YihXzbrfU{Y`kLSWRQniOPXVdc_jZ]g`RS_V`]WYcNTPRjfbnW_f^\^iS_kfPhTideot_pJ^nbdlS[a`jVU^`piWMSbdaM`idbX]{jUWe\e\pGRbnnTaOufbcl_cca`PRS`a\PaLtxUZ>z\bkX^\_aWQW}cVT`Q]_ap]da]eVbLTlWt`X`\D]^UoIRXSkEM[]VU`[ZkZ``YIilgg[Y?_tcVh`YRFkcJaYRYO@]z^PiS\rX`WGq`\YbRiPdI`kkcV`\T^X}SQnp_MwWNcb`bumRghRgq`TWVgSZi[dlVht_}NlqfVsdEkvwQ_Ns[gXqmdoVb^pwb]\S\gXLp`d_a>]Kjrgkm]Xqh`cskjla][rVk__X\ml_U[tZLZes[_VvkNpRsdW][XpVdh_^d[bcZWb\as]Q]`\_\gl_scjgTYQoNNZVbtM`iki^`c]IefjPcYeTj_Mk_QkYdWPumlSRnMRUu[]shgYchFojRjTw|qao`lX`O_YsgOe;N^jyibVpdcnITii]]`bXbzgZz]a_kf[ca`o`Qd[dNecbiaSY]gYQo__arQ]n`oQT^_sZM[_ZNPZdfV~o[kWYf_RV]Ra`c\ivT}f{xY^\Ss`L=UfbQa^nfCacnZ[SMr\[]kW\YnWUibKSjm]c]gkW`iBYf\\`T^]`kea[gWePvlEn^ORfiW\dt\Sn_h_[Qla`g\dVdXu]_j]_gYkLO`eYcuaSkyG_fVOZN|[ljS_hUVh]WW]fHTgk\nSfjSYYkc^fniX~hiZkkab[gQ|`h^C`a^`eT`ksQeZkRaySXM`jLF}cH`kbhLQdcbiblxNp]_\VOr_~lbdb^V\dWs\RfQRxPc\ruNbQfkYre\`UjZGT}XigvYYX\WvlY`RW^pCXd]T`]dY\WQ\UcqIWOpXN\TWR|dQabY`ccoB_a]ez]`tff]OpsToSwv@`]RQ]TfjwkkZte]k^S[ggg_b]Y`YsdY[og{H[]`Xbm]XZlYh`Sgn[\PW[hATwdhGYcaT`XXhw`_Tk^bZhZEVrv^jWS_\bda@ZpW[]_n{Odl]bhMZ\[\dbScJrOjf\WX[qZRojrSiR`feSl_^nZg_`l\`rMXs=j[YYa^S^ungvRb^TiTlicYcUMQjbSQ|ugnUu_keS`agwgWbUoYaapdeqTYU\l\^Xug^_[j\iWjgdcl^g{O_^\w]gaflIT{M`bVRYu\RZpcPUZXTcUWU[hX]~Ri\^cgcAOaLd`LYM_h_?L`h\iWUEKJZ[\^Ol[Hf_Y^ATT\K^vXg_\i~aN^kbjY]KOajkvsVRXcH\b]GQnl^NUbeW`k]nTTAPFMIxNGlfi_j[RtFUj_`fYTheb_\U\hqRNSe]ZO{kR]ds_wPTnoMOX_bogRa`R^uiiNIdZcXAe[E\_c~ZXcjS\W[jX_RBMvHj`^QsQii]OOwd_tMLTddg\ivoHq^_cZCL^\jnZ}iSVtc[f`qJP\XaX_aS]sT\]de4XeacbQ^\J[tL\f]~ahNbak`Ugj`\{[\da_SRTk`ZyZ[ZYehg]QipRpdO\oTQZ^bjuYpXgei\jq^j]sgYkEGLPbUmeatnrsTs_Xg[e[dtWNW[S^gjBc_ZXY\hcjNZah_f]YYrjYQMYHZOk`jagWNkgQWdmscjbddX~WdPOZrhakkY`RNYbcm\Y[bc\f_fX]s_`YTjYZeOrO[^St`Rfhsm]Ka}ReLZW]\[mVKnefaVMTo\iZkdb`sUzVlcNrbCltNRQiV|kz]ly\c[keOpLR`_`ndzwV\S\V_cag{gMV\YqSLg^v``Y\EU[\UW]Z[^w^Ubo[lYLkQgjpTpXcY`ZZ]WvSvm]hcgo]IOqQRgt]J]WObnMxOaWgiZT[sfgE_]PVYUyRWzPbkXKwD\}VWlfb[WYdWjTbpX`[S_|kf]`bl_dWh]nfabzQ~XGYkNZSgOi`]a]DYb^dSM]\itFLof_\XSNTLLSUSif~qla:dU\eRweYm\vFJ[eOu=d`1SYaiOODrBRajrLIh`zN\W:I[gKJj[I^K?_X\PkcGXmZ=vLX\?_aM[LaeYkHDdbpUWujUYApEgfP:jgD>sVk\W8=U\MNASAU]U]r\rcFQT;ad@HUMaZcEPob`gTce|s]qZ]uTbmd}ao[GwRi}Wd[\^p_PUqQPtqTSYvHd^bXYW^p`dV^fah]oW_SSUeKp~clbjafP|djoeJib{Mgk{_S{lmx[JDRY`{dlfZgrc]aMcbLkU`aiaWzVAS_TYQekV}SR]OW]cUXWZj]s_WTfQV>\mOf|P`POoYdPheOX]`cKUpj]U^TIdVi\YGjX_ZhZ\[cT\TY[aMxRIVP?@bUebkaZXJjkp[k\wR]`\VKyQkST`Qv]JJ`[~PVgzKllL`fTh^SrQb][_aMZ`i\d@lku[JCW[bjiTYWxYaRf[THYMb{g\>=Afi_gXmpTdomec[]e]eZfjQz`Yi]WVbK_K\bU^iP]XoQJRqTcJcTYIoel`NMNc|\ggX]kTXGrccdOdVwUejY\O^\lRKYYXc[vbrYKcx`\KWR[qgOU`felhg~zcyLW_TRZQW][bfUvaBbo[qTTnPITu^[bwXQ[h}^uQ[x^nhcNWYb[`lJJ\j6Ibqf`rYdmjoZgcPOu^U^g_naQZj[cZ\OUgopn\h[ZWekfaydZV^ko^^]XijjfmZgcWa[gb\`bZYZXiXkqTXVh]kUT`^\f\`ar_aboivRpojx\f[U^]Ws\_bd`a`HW^Spm\[[Ps`\tgieWNuOifjgba_VRcaBfy]i\Pjen^Ib[fYXV[`X^psNkajX\OSR]rYs`[T[zqvhRQXY_uRcOxkSgRe^WVm^wm{^AdgZIlTTPl^rcva{l_O_VedbZVnTfVflU`UU\UYNhOTaXWjOzg]S__GYje{[rJ]xR`cgX[nQXYvXnLzQ^em>ehl]\[{N{YQqgnauIhjWVSiX^`Z\_fhq]ablc^^M`a`ZVi[fXZ_\pk]LmGPe]cbpl=|NApWO~\a8YbedVUUYhc_lLWJvkgVN_ig\Z^YSmLh[^gcBiDm^W\kMnbOSqqu]RT_RZSM@sQ\ZRHPMYf_mWR_TGX]IPpIQZfISRIQPcbiacDj\M^KWnRTgTgcVnFVdWckeO\BrhjWRnUcg]dlK_`k_aaYaYgcmfhk|YgqnumVd[TU`nZ`saNgVUg^n\huduja`X`cxe^TSbM]nfl^\dr`]uckU_Wg^X]^hphWZTfcNXeZchhcWemu`qejif`MDmdecaYPWdt_UmajOVTkpTWb\cZvl[[ecUR_aaMu`T^TPnim[jnO`joopofmL``STek`NdW\MZtdZ^pjTi\\_\ShVnUtMQb^gRmfb]ZKWX\WFzUldTKrP`aZRGfHOa]s^z2XBG]_kkWPXPei_hgUrqPYbnUWKUkfd`fKDzWNTc`Rd[GN_NawQ_LeWXg[]^Tdc\h1]]lZUO`Zd\ThotHY\[gj_tuOjc\bhP[`nbcSVYZTtPhXIw`PcHeNgeiXK[thTlWoIibxWe]wI[_R]`sqZibFgdWg]ScaWXZu`d[iUtP@\SSQPZabaZ^Z]TWUzYqZe^RLZeQlndlTPdW[\mV[i[]yWaaaa~\]ltw\YgScjXubaaoTkOIYtXnD`VX\fcVZd]b][]nV`Q`i_YdbvLZSGk`kjU[obggk_OshdSZQ\blQ\dXaacq_gbNb]Mg^ebsSyVaNPROUgYZHXe_SIJ^UaDan[asS\oVkfkV\C]]DR[fUqfViYdQQJTVMPpRZp\TqVeV`gqgaY]fbecf_Uc^FLXgh_qftHNUWd[_`ldWq?oqZ]WrsTZQmUhd[dSwnNj\sVR^m\Y]_VlYgJW__uJXa_Xc]UKxf\]VbZVm{W]kemtNuxZ`bNYh_m`CZf`oc_pWY[Vin^NLE^e]YCaWOg`\hxEWRYRiJeghT`afaMm^`iahTi]Xfc__kE^ZYv[gSUWdVg[U^Y^R\\`gsc[UN^kSjl_XHWrRS^edTYl_\o[^Yjc\XYBeYU_e`QX^Pj_[`MS`Z[eWkKSmc_[lgih[hclaWWewW\]\SUkXS^Lb]YCm_^~\Gh[`ZZS_iWI`[[Z~X]qVWnY\Xl\^IUZochaPugRpgQ}hldTW[eeUTfcmNIgsds\m]rVqWZdOb[UgrP^g\WjiofjRoZq`rrhTabh[nY_eneldXoXnUbh[fUV]fR\8MIsdbsZk``VFkh`capeit_Xb]fkT~Uglvcu>iafa{YgViJWGaRbcbTT^bsWiaMSbWY@`_\YHdIf^j\mdY_jU^rm\lo]ubUk^n`qh^EqaLd[XUYdfMi^Vf`{^qpXrRliVqY{}][YVgdam]W]bZej@iK^NXKc[m[lbRam`GX\g{}O^iQTpPoSWVnLcja`l]Fij\gTeTYZRXjKUKObblIxWl}^ugTSmtm|RmFSrlwcWzoV__p?ZgTfbed[nR\OmVceTQXbnT\ZesWVXgXtXTXSL_lnVb\bhX]Rj]dA`aXNp\d\l]rf]Uh_eibiRJbZccTPQQUY][wY]NcmUbZVYYUbI_Z\V`dZX\\LZXYd_UJCg_V^r^YNThXaf^`fw[kgfd^VXYUj_XSh_]d]fPZW`]f`mVdTnmZV]IZiU\tff`jYUb{ia\RTGez_\Sj[TW]X]aaY`c]PlZ]SYje[[NdOoY[]P^iQH\l_nHttq`YbXvXSBG\]`cPjmWlMa\Uo]gi\Xe\ksWP[qKcbv^XM{pIK^|\qZ\U[kh\wUnqVLaXRefStcNMPaVjP\XmXoDeda\MffOUWQWrRHboVl]Z_RvXn^SjXQPhe^U`_E[RcaYd\Sd^eXOuWXMb_QgWdjXZ`Xe^uff_ePhh[]Yd\kZ_dtMcKMjIemMUznRaiW_dl^\nUATxZVB_VbwbV\RbiRfQTyfeWqn]`pq_gOjzlafugb^YO?lR]S[OsSlZm^YY\jdK^WVa_cUZtf[k\BeF^wMZN`lWailUUU^_Vj^bO[NYTZAONRhf[Ze]cbQ]\K`odelYPfh[YaRqn\\ZUn`al^gTlSQV]SqhnOy^bUk_^RjX^iajV8Unl]mi_BAN^KbMrhYW`npZ\\zMeWbPxl_MYog]NgEhE[lib{jV\qSiN}8bKXMlYcbf]We_YabU]`]p_`bd]ZBbnP]\am^NhcI_UexSSaUixMJrTLShae^oUd[caTNrY^]5URpYarYA`TKX[|fOtqZfIhSc^[io`aQV^WjSYaYa`Z][[a{aa`UUKSa`^ylZVeV_vmlZOl_lZqe\V`l^hz]`dfOcarh\y`enX_NenrobijaP__Ld^HTQV_\|kKZ^f`vYctY[XVH^i[kh`TYL\sHaSe__bdyeUlWL{bnvnraR`jU[]qa~]U[Kc`cZjUc]wcndZT]QgPd^Wk[WibW[ehfd`m_anWc^h`TXlWZXKSclMKNpr`RlQtJ[^akXh^UfglZSjda`sg=YwZWjZHgcSnbWTbRclZaceI[j`Vdjub[{M^f_\LgWPt[RMUIz^Y^ambtiuNpP|JbpT[K]^aMcnPbToSbfecYY]f[]_KJeNQ^ZcfoeIejiQd][`_`W`damiaYaotc\_caatRbnkVQ[_dSWTWgL`vzpNbLeciiisMz_W_wcQfs^aaW~g`\M[pOke^sddYXNV`gagX`l\C^iZPZdgkigXdMbU[clW[vX]cmZds`sn`a[a_nM]jW^VY:3jZO]`Re^?L=ZLVYR]QbkYSPYneQHLp{TmSDRMT\OlSYRTSLNqb`mS_eEP@]eYi8mCt_OYURV^Y^\^U[mbV[M`Sfb:NZIXYlZaOagKzTcdRmceQMzjXujcTQS=eikQ^gPhStfShYRUhw]RMRSY>[yOYR]srjXOUawN]ezRmWgbLN\K[S[uRchvyXGdqZ[h[dg[TU\YTO`SnvJd^[^[ZZnaNA_aPWocUoE_Hib`cR^\jp^sfSe^b\sYJQZpe]dgSSnkjxhYZd_Njl][Tjuso`QWnUj\_^aWpkVcYuiOQZGsjcOVqXbmV^Nl`Xd]QmmUdV_aucZWOTRvhZ^]fc`sapgNWg[V_}ZlfdeO^Rn`MR[`Y^]ebSUccGFnec`L[rWfGxn`fdFn^cj_[G^iN]^jXTlWUX``]]gQnbzcnz]GldWnW[TY`]Meb]k[wMdrmMndWhX]u`fSe_ROX^bq[^NPrgWUir`bfOQ[WZgWpuhUQWqTQ_VidbVhKa\wLhUh`]fSUfTf[aoljZfU^uj^b`o[_cf]XfbZWXnQ|UWZrn3LjixZhl^NJOpUYWtIi^\glHDRQhdd[XY`]_OiWLaZGhd_PVOJ^]dVeXeTsQW[hVl:nMUa]{uo]yOahWm\QeejSfUYXbbgj]Q^ebv[wQ]\I`OOg[hX`VQV]ujE^o?VN\]YK/rhLZKq`IgQdRWTYZG^h^PJM\I\thVxW][UtkpMvhfY`SO_Mq[V`}j`lc][URWbSWosURSYK^VWeijd]lbR\\]em[cvWYmW`RUSic_fZ^SYWhb`qiOaQ\YkWa[ZV^d]nQcsZ_ZYg^YY`jeOodkWjMjTg\\\QXHo`gghfg]Y[TU\mYZ|IYImihRukXlk^Z\XYdnwWmaWln\j_tYnXYW]cRaO_[hboN_k`PitcJYTs]XVSakcQh`iPXd_Mi[YWag`fPjcWgO^ajlHUgnRpxWZ^[WoYdXY`^vT_Ygi\]b^\^eJb]^WYQsS[ykkep`helejbokdkW\\bNbZkm_WXmVtexgIfdl\VclY|lsSvZg^`f\VghbK]MbY_^~b^PtZU^fRYmkV`Vno`fZe^OOjkfq[u_c^hMTbWd^nPd__fhfj[mR]dwZuU^if\NZiam_oVl;gKeIhkeZ]f`H_yWL]K\^V\YJYgPO^OTinVQDrDfxWOxU@jhaZ]SV]VfPabV<\u[[LOaYgcUSN|U?LU`]fZ\kYOdPGCaL\q^fkN@AxQh^MZT_\cSlN[Z\\[BKWYo`JUESIxa{\Ude_KcfTePf{MFZfQVeXcmJLgkKaFsVYSXvjoZXHPdRXZYVlTMQINcNg]sZjVPtYiNTai[a^\ZkbDefcgWSViYd_UYvnIMcPYZk[gw\nnxgdbx^mqkdXuYV[Sej\F[^cjLaeQPcmleYN[kVlkzQXsTSkQJYZsiOb^W_hWiRVZVnfe{QVMRmeF`iqYiQRfFibZNQW{QhT[_Ome|^f^tljZ\SkUirVXP^Vkfu^kSV`F`UY`de[fJWqbI^vLY]UTfsEOgZBrmjaNga\ESXIg]UgQdXhGml_VTJT\`U@hR[\RmYgn]WVl_jMZWFdeX[f]ZYVdeTM`QfFn^aedWlQUkXk[\\XGQXNka_]ZYG`Hf\XWIZ[]\N`h]RCcYlc]pSgLU\JUXeG_^Z[dpdi^`_BQYYLTZE`ThjPhfgW[ekSRRpYdcjMfVY`jhVjVf[BrQQY]>RWITl]Ijg\|`QGGp`ql`hf]aGEIDnzXQdnv[PfTUXJeTciXJCZLLeO_\|U,TZDOUegflObytTxXSbNOlonPJ_sVbRhRo[HfYLmvFnTVGWYStNiNun`mOmZ}dIcpcW^OjCmaQROzegPg`g_WflFHW]fWuhip^YlQee\fiZbn_k[^^R_VTV[XYwkaQ\QM^WWPjTZbn^fn]_ZVgPYLO7@di^vcZ]NO[[^ekl``_dXa^fQ_SRW]ccSlrTV\Zg^dIUdqS^Tf[od\]glWb]TUPlcR]wUbisq[V^YcYj`]Nc]GQNk\WV]sWWcqUkIgOdV_QXbfdafmUWTkVM[JbemTYJaeUb_j[IlUlVe[`UcfWaP]dPoh[qXdSe]dYPWfUZjiZeZYsj^p^eo]b|U]pmUj_RxZ^`fim`[UMT^ZboQ`M]aal]i_cZaUi[asbbbUoY~YfVXg`o\Sk\mlZjb]|msaOh^J^r_[iRsfhdl`[VXkkhdlg_V\YhfnbUob`MddcNfVXaSS\fmjkdicauQbAklncRWUm\P_gZaYd_[^\yaXWU\]qe{H^oWghMe`[uddlRTcsPUkfTZ\a[\]Y]S_L`I``qdllauRnnNRfZwY^^nMUl`_GWdafYlbXVicbhEX]OradPOYafh[yg_XZJcb\t`ohkaffYd^OhiZcgf]WvgUeXFaX[tIbn\bYo]^sY]xNkekR[hF\hpaat`mq[^aRcXgchPbof^U^~jQsieTeetXL\du]PeWsVq]PjYab_eZvQjf\^fbc{\\NTlVWlCZkV\[\\\f\YGad[b]n~[g]fgAfb~W[^SifbigeMONhTEYQcr]8t\\7XUgqld_Yli]IVcekc_SxR]kh\WikcaoXQmunhI]\c\U^[kfdmhZphdc[SpZa\^\hX\^p`picWTgQit^^_bZVi`fkpffrnc\VpPUWh[r^hddWacFauU[djrpV][WQNSe\RVXMXThZ[ZWNUZ_^ak`fWYsu[luGYqYcbXfVnTS]_RWd\g[VYZWaTusPG]aZ`]^i\bzxK`mNS_Zingaa`iYfj`_\a\TWbbeneIiX_hbjeSVe]rI\KQaVpQ[Ov]RkYiU^}``eke^WqpdhtYTbwY[r|YXZWd_ZobRSP|gcSdWyTjh_aiWGjQQteem@H`tk`poNWW[d\|CUh`cSkeYbZjaX^pawt_MgphL_lNOWpaeRVc\^Uf|WdadjiVl^jkZkVZYE_f]}YaQptcMXVhVvYPROOhQWZnuX`ST_e]UV]iXRrlanYac[[rplu[a^^or]d]Ln`i]ll__WjZZWY``^\kXgMeaPZheRgfkeaz_H_QjX_j]~bYRcaTYgPXiu^YhMajdRfbrRTH]VPjL[P_QOSX_ej`ecy^{GQWcUYRd]SY^`Y^[`]\z\Z|^R\_eStKrU^^RsdX^We\mXnWpaaqrdt`]f\`VMTiQWwIKzsjTWCsK]a_O[Nn\c`LmST^VTWP]lYeQ[X\VQUeRULwlngYYfb[Tdi\YK]FX}cViWo`|fZiTO\sVlR_WipUeXLjc]UY^PwcSaarWTW\bPKgmrZUUIc[SYWSbkoVYLbh_evJMaq`kcQQubZXY]SaNZJpT]WXfbte]^TZXwOiZSVhWwMaTTVpV\Yd^S[V^IS|YibZ[jbS\n`]pikQeO[HUmio_WbJ_Rb\jfok]RLZlYq`SXy|c[AfezXYWRZoicMkCNW`YOgbcfvrValjso\]]enbqQdnd~TXqira_YTSl{\[aeiMZdgticlWhZbXWh\vm]e`]kafhkVZ\`oce\r_gepp^gaUibicgNVXZV[laxYcZf___aWMphc_UbZcR~laloRb_pe^WghXdml^sd^hmfb`RJjPf[h`XJpc]Pq{zecKYht>eKV^lNSjYcWZ`[_[\UZaPZVhlO_QlSuLhRN[VkLe^eQ[a{hKPOSUklXiAVXYZZ7I\T`ZQdYNX_P_aaNd`]^WlaVyX\YscScQuu^ZSN_YcL_uTZ^^S@KNaaRgme^dTchKNUgTbwb^MJYcjtbwpGuKfnaabknfRUkb^dXlehn\[MAqH[Rah]sNJIjNkFfpW@jbaJ_`TaS`bWd\cJKWmWqKSyVha^[aOTKV]OL`Qp[XpORe^MMMd`\aUSn^McM`bbZ[^[]RjM[sfdWZRU{[JgX^bm]U\SZ\TacpDaFBfaVhT]dQXJ\OaTrVmpXXdVh|UVIcf]^aUdjjIQkesRiNef[_dZTciYsanPce_VDS\Raaaa^bq^MC__ydli`QXVWf[\ic\aXVURbNDnQ^_YaXgo[[VbNPXLGaWkL]UJ`SDKNbqQMWcKSxNZZWe[fI^dN``lnRTVdSvjT\lg^WXcbaRWp[YY{XHV_SYI`F`GUdsVhYegfbiTUMmegk^\TWJ]^PsvazQ\2jlbVwHYZH_RLZq]bK|MbMT}nha]N^\]FdoYfVG_Xa\{f[^PXtobs_^dpcQ`ktp]ZcWcSZ[dZmMc[f^Y[ZiRehZQdeWfhe`nm|cVhVu_lb]g_dowTUcSpTidgxQg`Zhkfdap\ZmNq\XSYjY`[N_pXKRMMOORdYxZ_cgpZa_kXYQjOxq_ZObVZkpt[FaibW_iMcvPcPahRjiY^bWPojr_SPgOpf]daXfZb\lKXebYx`bfO\^g]FkME\Y]vaZ[NNGfQY^\_RlnWjk\[bSWdydYbfkkLt_lVYWa^Z\_WL`rnnZ`ZZqaoY>a}dTESTVW\UT^S[hYYqSXgp\d`gbVW`cXuKfs\]SuhMX_cdc]OqgZTLcicnbRgbd`pZOYpnhZdfZ^YTcYc]SJeJkdXfTVcouWC]ZhTig^TWg_|__lh\]a]_TV_^tgToadpSneYJcKhVmspiRQpfSlSRRfnxkEjnvetXnqT^ZTk^WY^dcft]Ta_q`b`@eWoesgdbicffVXa]Y]_RieYYUbYTb]PhWRofc[MNeZPhkl]gLQV^iaUVfneTcTZbT_LStchTQF\hmkh`ZU`fjfnab}dOPaUaYWdv_hbZfr]\HXXmXZhgW_aYXye]`\R]KK^jeXViYcc]ZbkZD`JeXlZ[oz@b[M[bKWi]~`ud^juQtiTr]RdYhT[jV\\PTRaiZwmqWleT_VXfgW^biXkhmqa\\Td^biKWI\ZxYk]oWhaeom`M\fSVhcimWaZbJohWiMeQpWlLkkbnfN]foX\kBOSaYWca``mHZWkigHebcb`c\hcPCKaI\aWUXiVXc\hMOchVedKmTXcSSViVaX\XbhsdXidTW`UXfBaW`oUZUaSboYYGUXc^\R\jafWU[[Y`oijs_YMad]XbrMsaS\eVNVNpRcuSi`ZgXXOVdVQ]P]Ygh`ahocAKcoW`UX]GbS[ea^dm`W_rUY`Mlrd|I\fwVst\n`r^jfROY[rtk`rbcHqtbgR_V]egsT_qXZemfkX`bRU]afY^__hQb\M`m^OaTiiha`O_fXbd{hIZfVWEpnSP^kbYVhBocZmgY]a}T]b]Uca`Np_hYIYS`zSi\rgfYaWMHTpm\]dXgce]a]`TkPL^PpPXBQWZQY^K_p[dtbsUe`e8c_^Pe7U@OhfErjaM@\m-NS6aSQ_qTWZYXNZV>oIdW[[Zs_UVZ7iGjYIO_}ySEdXi`l9ZDO)r[,Cmcom\J;S>xWZCnbgdzj_e@Gx{aTxaYk$v_X`ZHJLNZ\6]>QWWMdCXg1&b)`iZnTh_aINQiffa__jtM^fEU8KZHi]KdajVVG>S^NkPRieQHaJHebOSidLTp_bk\ijQY]ZysjbwTXVQVRXhWlP`DiePti^J>hcffTP;gKYfYcMgkfe_mqSs]g`bZbIbQoHcMSeYcHiko=ee`kMWaRXjdfUd`fYUZJXZmqKPdS\ZneSQN]Z`sNSjDSWStadWpV^\]g^hp[ZKUbkhh9UWWKavFefddbQ\Of]_fRdOpdSamWkIT\W\_nQ`dXchik^ZaSqiKpXZpqwWyYVs`^bm\UZP]Zf[_WPaTcT\mcSbQ`fN`hrJXI[QF][QcVUA^OdfSXUe{u\vZw`^nY_j`hadj^\QlscgUeakhkYQp_XYaY\va`sccOehol]TXsb\u]af[MbkhaVo\glMchd^SpULY[\NcbhYXoYTXPboS\cijceYrcKoecP^hRawQdacWHeXkf[^b_a\iXhZUk_jc`rIcod]aP[fRZcbV}xtXUe_PjZXSa\opUatVU`MP]EW[VVWJdOR]\apb\EhOa[I^\xfvYd`YWXbf^~CjVgSO\dbTij`X\dbIpZSdaifSPeoI_`x\dV]WOl;QaNgahcsL]`lwQVMib_nZK]ki`Ydj^OpbUUo[NbXt_a}^e\d\b`mT[`^lmZj``[Un]W`kWcahkoarrWXtUggSXdionKRY\o]qkHG~hNl]\b\]V_E[T\\fW`Z\SX_Yt[_`rUaVgiK[jk`\jyi`V;zNlcKgvS[ZTdNi_`Or\^YJaQadbtNUmYmnf`[ZOm.Z]Zc^^XN]LZe`VdWUlbX__ZhUn`Wb_e`fRcV[f^eVXc\\JIRrsWTa[TcR\LJhWZVrZfYNOhObcKY_PRdWSh\KlgeSVTaxYd_Ws`^ddYE]^NuUcVV]XWW[Sfh^[`nVXVWQVZN`^pg]Ea[cPYLVdTe^XLbVNeqcg[^W]]?KmNT[bjmMY^zU`_U]Wh`jPgELs{M`cNE_bc]VzV\hUTQRrKRsUN[]T^bHnQ[Rb\xwYGdZWIVaiTNcS~s[s_vPPkhO_GJx_QFS_\[cTa]FgaInqYqsrhKQTbJH]Y8QRgsqoO~9nN_YN^V`bL]KR[ZQN_TPi]lfWG`][iLJc^wQtF`yr]YFRSFloktZ]TaC^F`aYfhVakLJ}mYUNhMrZurZlX[F[pQ^aRStQSYD]`}re`^gOhpgLoe_J_reeoUKXizhl_V[dfQb]\WZ`_^]wedU`pUdagZol^bY`amebOLieJP^cmOar_a_VhfeiSmefifhMvbV_J\hcgalbco_p`nZNseep\MXo]dec\c^[VoAUcSaxljZ|KpadhTuXISaLvKIflK\phZb[~b\[Z_Gb_oYUcfe``S]\cKWnlyjum`eUuIrGU`t^[qk^c^M_iV^nb]_`[ucWlSb_[ojgSd_QbR0lohbyJNhPTjVhxZgffqUlec_XL\guiaT[mjW`L}ekVikW^DVj[akah\qZ]ZV\d`QYYipgM[ZvXcUkeDC[GgUlYjSp^^KaZ^BqljmjVUXShWS\YJjey{kcdfRgf\df\mnYmkmYY^Zy|phY\dko`gi\Uf]SdF_`~`bY_rZals^jfPdoS^Xp[VbTeOP]Qb^[^]T_`o[[MvdNkvfU_enfdT_VgRG`seR_]qRcblereun{Vok\lbeXknUgY_cf^[\vU]acfSiyhdfk_f~YI^eiWoWg_p^f[lsqn_YpPUqkf_n_WOiKVcTXWU^SU>XlWgeXsQ`]WLbqK\^eeMPVVjhS`_YJ[P]bxbfhTZ}iSHgaUcN`]VgpskpOT]XhifLpfcs\]oXPhPlKYKWVdC_Tb\LbVMsY``TYWeVmU^xJcPdnaRpjX_hSX@eogdeN`hj`NNUMoI_PQgkbP]VaSJOda]WXt]]TYqTP\n\Ygo]M}UbKkeh`nbUTZpV\tQliYV`Vp_\YeXNpFTdOk_gaYbijlI[PXlWT\qb^RhZkDetjbuhnWe_kgaafjse_daZlfocX\fm\WxU^Tzluw^idZUXjc^`VfjpPbhc[odixXYWPK]aXQ?\gisW_PVShcfr\cXT`_wl_mY_mtuXRa`QePYnYV`TYb\kfPpbVNsqUc\ZJOcRQROcQYc]fl\XXlF]Y\binTgifRrO`RVN``U^XvcVT_nP_YpqpjaWa]XZLxPYjmajgeZkX`KVc]]e[NkVuZ^XY^[\zbWTi]K_XV]coPKMIrhaNm]ej\MiZfKNig_QVYi^o^u_^lrTWcSX_rxfZYqgl_r>UQhO][e\[hic``hlfdT[VJvcZS`[gNg\\lXdT_QkifYkRqXVTJtL[cdTVwngs_\mS\iX^h[robvWi\Ydg`egYQqenmR^btZVcxP^GlyxknJnUKfcJep_WXkZ[iUVW]^XWiX]ZnON`ZZgOG^NQa^kUngz_Sh_Y[vw_]UZSRZZ_{caX_WWM[_c\_cUcimJNgtfmPg[Y\Wn}eWV^c]hcZQdabUV_Q`^w^Yfa^kWeXbI^aV9[XIi)B?er]dYa^HY[gfUh[lg_D[l=3\_`q__PZ\fVmMWZqWPre0`yNGgXKkTYnPU[NblTOfchkNrjeZ]\[cdDkZP[XjT{FThIhXbmfdW@ojbcorjdSIcY]^^}TYkeHma^xi^]MaueahYIrtkh]Sw`[P\a[[aYHleTXjcGNGjlTqaiXsTrWO^Lb_WUTMMKPVCjTy``HjP]tVGdWXVQk^yjQW?Pd`vpnH]omTlYO]IVsYEaUmbP\\AW]^ihriGSf`qTrss]pRTXa]]c[gpxqsbiYfVdd[f`\WVbcn\\QgafjV\gU{riUcWj[SZiche`_]\i\_cgi]ecaxmWjJas`|umwZZM\jYoSQ\\eUb]hr]WVgp[\VX]sod\lf_lMe\O^{aS_vUphf_tHsVLXbs\Xqk^gq[a`hYeYXabhwv`^UbVm^NejUivOCcgX=chP^U[nkf|zcd__ONeeJPg]d\WZ]bI_rIwVZrojuniUpcd]]h_`lU[tlTvSZ``Jkdi\WZZa\QUK\acXX`opa[T^l^W^[cTdZWeSOCWnY]NJ]fX\RU\cQO\^Y_aYLyMM`c]WdN?|`fiLjc_XhbYST^WMMWS[jbqsZaSTOTejX`QxUIohb^a^QhdhlNUfOYf\RyVSIX\KX_cO]xZWa^OeTJpqmiVbYccXqffe`_hSs`Vh`afSbfgdsee\bbh|Zh_cUaT[\\]YdoahYNc[\ki@]cE^[l`YefUzm[XlfepL^_WTiPc\]QJ^g|dNSc]\VibdeMokA^]\]fiaxhbOacekdFOR~jo|b]g]ik^Ushcsj_[cRUNUlcVSk[c\_\^Neu`ZWSbnZNmVcGc_\Q\cbUfpq\_TxaWMPtPbp^iH[[[]]WLUbLW`hHYNRnR`[oRdVTa\_Xb`_Yr[>PeiZ`gWr[kSg[XbUeL[IjaH^sco]YSbR_efReYeFXHhS[gTh`s[ha]UadadQUZXf`p}PPHsd^|wITjWRpkwklYTqf^mnu\_YQbexhgx_][V]Qki`dSQ^dingS`TXcW^X^UNV>RemUb^Y[[f_bc`ZzKMkcYe__aWwNZEq[ee\]H\SNiT`XeeWzUIH]elYhPgdYKSZVS3qip_oR[qWkAP\TSofUaPVfVMRXf^eglSU[lm]UoiOVafduMYReUWUpaWmUhdqSuSC|avc^Jjag`SNeqY[Yef}\bfyuuHV_dzgl^T^ikn^Xgs]U]O_ehg^TceqqcdYbiT]aSMdr\gTbnYj``]\]RUV^`W[SZUkim]rNZkoY\VeZ]k^azcnU]onpA^bZe\nMecgrUeZmieW_Wd\PW[WhbMurbq]d\YXf[[rv]ZhfMruZonDnb`m]`nhoSehc[oPT]SxbMnR[aYKb_]fQnx^c[YI\MNbVvtSmXmE}cdcUrrVnbYV]oYkq}QnRqwcaZokw\Sfivg]]t_B[Ym]Bcf\GrUuYS{mLDkX`MiXX^fr]HV\eOhZXkgWrxW`^XckT[aP{]Refi\cMLhfRQ^q[M^YXc\_aRWpGSbdf]iaRdbqTlVWdi[\UP`]NPhRa]i_bKnq]RgxZZVmhdb^SmydRY_VfbY\d^mY[]]S[dYhkvl`KUccXi[m`Y]KPowQfchj{l^R[cjL`j\pTbTR`cUv_e_Wdhkpb\WTE\P_`VTm`Vp}yXW``R[PWjUfPccxmdcWKOcfAdh`b_eWa\}f]aUcgOmZ^geRbeSai\FgeZgba`hmmNl_i6na``dFYVBUEdfM\`T^k`NVK_h`]aTWlghU^PtdSfWrWS`vlE^me^Z|\TmTUQ`X`bV{I_X_^zunQc`^WckMd[P[a]SxeSaS]rPZn^o;YV^SxO]PdnDilrpc|Q`PS[lZeSZgjiY[Ul]XdW_SXXPcg`UzNbmlYriQboW_kbd^WjFhcsYZoO^gfoZjY]t]\Y\?bxTVvo_gkj\OsT]\vWVo]v[H_OnktafVZVZehV_ar\TachYbfHYSOru[UZzfXY\QQ\o[WM`ZUmcUJccUgkgTRVgQ_gPhdaX^Xcb[]WRg[U`QaoZ_\eppdY^KTBzXa^X\X_Uu[Vc]mjZVeWSaUf[XTVipa\YgcK`Xc`cPZ`[_[kX`rCQON`kpYYZgVunBUZrPG[lubU]US\obKuKDn_nZce[ce^\vb\VoYXJascPJcgH>UVXqgmruYeNTzzPRzTizPhT4ZO[Zvv[]TfRDYjsnPaT\qfWXVW\aXa^YiANWg;SklZUi[q\ffWQ_LfoQfQoHKViGV]VD_oUVTTRZTRbdSdjRBccrUlg3Lj\T]a4P\dSU_YYCkdWbiT`ERZNhe\b`NIVH[lTI\FOQtNaV[fWUaYbPOE_`dHlQ]RUOYj_Uk[eRf_[XLCc>]rYlffW\S[sRPBLg^YYW li]gRYC[XQk\Yg`R``cf_a`jmsa\^fjs[YXkjaM_.Zk]gf^X?LQkwazzhfdOb`NSU\r[\cOHVUXeOpy[\h\VX]buWoe^ivyi_ZZiRcXPWWaPk]\Yag_NVc\hcN>XZhPa}i^dpTLTY[eSZZY[giupVe`}XRNZUcQ\M^VplXtTW_[cbc]c\aQZX[ubQRS\XN{qMhSp\`cZjYhjrVePhjeUXgYSWfk_Sg[VaRfdrRaNjr[mdoPRQveU\eF\PZayUY`kSnqn|u^QNcRKXH~KSUi_Xo^`V`Zi`J`MakXiR`Sk]ZWR`b[gkR^MW\Q[BXegObd\Oggbe0Ig_QZxcJ^YV`kXUP]hthSHu`nFoXmHJ^__[gpjE[M[hhajOeXlI]goc`qQQkisYiMSccPX`WU=PNPOc\iXgM]Hh]L|k_dgWlkKT_`z}]YdYQ[Oh]FceuqmbgpcWR^VdlFaRRe^`Gwg>gZPc]aWiZeblbzOjSQcXSn_\^jw[OXgDP`YJS^Wgi~P\dWNYzbZeZ^fKl`i[gj_WjPhZKVgWlrcdX\Z[SZQYRR]WexaM\PeaNdUs\UUVd\Ohkgmb[\ex^_^WORL[Tn]g_fd^fWB[BRl^Shq`RGkV>aTpPlTcXjeXwjoc3S^[C|ViL4jYbflC_Z[bJGWaYPn]Xf]D[;Bs.`X PIWaiWTYUQR]f|\gpT]UPIP{adJgBXMMW&^t[wmp>XZS`oe9j4\UJd_Vkl{2cJmqLeeO[eZPeG[WBZ^u]dbc^oWkgEcetbRzDGgXH2f_hLb_[[`YTZT`YRab`oVHboaWj[oYdg]pXau`qfO\KjQacP^a[de`RZh_eUYmh_PgqmZX\g]SJl[XqxNOpPdcQSt]Ve_O]WQ\dpzd`IKfbfbGj[Ydj`fK^d]iogYaa]gn]_SWOJd[_d\pSTcQXYaTK`]YXb]YgjOYZ^`X\d`a_SZ_VOb\OR[pXjVacYiR`LkQ`ib\R\bwTZbfUUZeT`OT_Uk[qepdVnibpS]Xeek^[hTqc\jZdW^tdTs{^rS\US^cZmfbSZ`u\^c_bS_Vh]e^[R_anWM_b`U[bYn[a]fi^[ggcUq|kTO]k\Iz^kG[X_woninMYgm[Z^RQ\^pl`jl_c`OXh_]oXSZnpZXV_c]cqr]xTdZcUPR`Wc[[Zf]Ya[sy`]aPcb\]rORSWl^TdjIFQSvc`_cVOio]`TYQ`rbi_tqK`Pg|sklksamrlgKkIUTwiK_klkWZk`YGXqtigYUTShgkgZW_aRcOs[GZ[l[\k^oyLhMGkiTejTY[keeYa\kYcLOagqiOo[OXWJgbGn}nbr`mAuZ[SVU\_YWX[GPZiUS[tsZz\a`QITIgmnYYhV_^rn_jiPahrd`g{TSecVSr\Y\heoTW~\_YY`aPdzeY\ohklfOOas\_YaG\gahYf\VdTZemgZjUi]ea]eVdcibi|^f]\^dSU]^fJZV{^`aedWZ[`bUataU_r\]XdlWYZZjFfSrQ_bceY`yQYXaYeRdpWolwTxRkacqae\\^`sbKfmypcUgct[`P[i`\j\egTRiaF[r`Ygli}XmfuQbL]Q\^cltlidX^S[tdcfeabaZlOR_PWjS_VPYo^Y[]Uf[MYiX]nTekO\^\dl^YYbYWITkYUg`ogSMkefi^[VUnbTZ`rVMOlZROVaAfXar]neh^oXOlKoQ]^kc_ZcPU]Ja_j[DbcUMY]ec`U_O_f_XYW^j_{ad_]OwWU`SRVWXSQ`QaJTNmU]dzMi\Z_LZZl^Y[u\ax\[QZX{fFzEKcaZUXc^PRO[LdjQjcSUKpaRaee`TfgdrfOPZ]\mjjFHubWiXZRh\blVUXj[UWv\fq]]gcYSfnd[cQH_^`ZcgaVdVcR[ea^nPScO^e~xWn[L[RMR]TWIcjXgMQn_]q][_``PRSKPIU`TlfPfVbnR[Zfu`N`qUB[N`lrZSYXekcFhab_~dW^kH^\iHes\STTSY]WibR^PhubmVMj=cSQTaic[cNzLQSUhYLU]Y^_fhdXYgbaGRc__`sfteXeJWVRRnYK]dQ_hUNdaRtSddfP][\e]vL_]Wob`YXWbRghfj`WrC\Qijk\\L[d^m\TTO^Zi^VHKsmmbsJ]clNfXbt_beZN`cvghdxzhV^aabz]vnb[U\bdUb]tW~c^OEklfgrpaaPjdbRZZkRWWGZjdSekbXagY|T]TTwHhjiYZW\gYiQb[jTUg_XtZc^Rd\WdN`UZPSmgbtQvkSgbVobbv\QsK_wmce[]Sh_qTWvMYZYEZQ^d]NSS_Y]VOjfMi]]hdUoxndWRhj[hfVdUYZD_DHjLmV`XfZ|SmJrIT`Taevc]hqeZT`qxUwhij`PQZfdpT]_mbkROM\[ImdhASfdgXqfMd`B^Vu\eV_YpaMdopPRnvQvzd}?GhQaH`jXi_pfc_jcTnqf^]_lS]f5]BYV]JbqYWSlV^\TQiZToq5aV`aL]eSn\dtX\XeKgS_m\|jN`XUYUU[iKSY_\ke_p]hSIcjdYVkhpaOuq`]J[o~oc`bgu[`aprbcZYVe`[gLcZ|vfR_Yoyir`YRPQQbHTdmiQbhbmjJ`eNUecaXfbhlbaWiC[]Y_]Z\wUnpUtg?R{Fzs{ZoNlSJEemQntrMlV[ahOhcak]h`x[s^jW]\si[OWabOew`R^\`mx]YXYM_YiNVQplEaeg{dra]WdQWYQZV[obaUZlX^agTZttjZaK`liU[HXUiTTTVqJcM[gXpcgojYilnimScaaYgXQ[cj[L_c^W`Nc^hg`LQUcZR_Ki\[XPcYUnPm\[Nmff]_VhUXdj[WVkUfqT]QlUaYY`cZgWWYjKeL^YWRaMeXeL^Gnw_dg_dVcURQQfQ_sP^ij\bnWS[mFY^WT^eUqX]^]gWW]m\_yyla[dQYb[]nRTqVgw]\U_^\Ocjkzlk_mla_Zd_H`\SU^`caRrfq^cYcboifYW\dY_s^PeXoVXplI^eQRflZJb[NP[`I[OZpnhT`OFFbfd\`cfNnTdVshiFtiWpWj`ap\dnkgb[b\QkWOTSfVRan]XQTw]gfRX\dbJcpYii]dc\am\]T\jGYUic_SRVaohpQUdLiCObYy``]KroLQ_Joc^YUcUX`G[[NRayZbNVhkmNen[^^RWifejOfoUn[W^^X[]cXhcQyS_SU\^SZQVj[\erUQPgOaVZe_PajPVd[`YTmbgSRtnVTLIi\[`VTF_re^Yih^\TaN]cUU^bXR_z_tulKXb`WIonMr|`WvgL_mnhMXoVKG[iZi[\gYWPm]^awZ^j`XH}fdh}[XXeSfjf}RTLdaQuH6KVcJ[_YcmencMjVUhbVQc\`fSXX`W}Vh\YU[_hoRXNVYRVLdZk]:NQn\]N_hYTT_eWmhXGjSZSY]XSqVVkd]]V\Xoyn[TRZr]_kabQJaTe\]XlUT_vXBeHW_cRZlR\YzL^Y``VEU`VNsc[dJ[DznvZ`c`v]QbU`^p]VXbf\Ve[duSQWPVfpdpdA\i[PYheSqhYMiiaxMpogSbB\f\^ke\o?TalIfV_hjdVn^PkWiMRa{teVM_dZ[pRies`bM[rS`Xb\fUVrR\giqRndYFzEjrTLn[kabg@kf]^R\ZTeYm`X``YUYfcVki\YX[\b^rY]_[j\Z[YesNgXpp`NV^OiP@mXPT[^_SW]daUJcZmLPXW`JprSTbMgaoh_mkaXc\N\^]iDQ\_k\jUK^NsdkVf^aacVQ^UR`b[fb^b[NcpZ[WmLSfb[aXSYkx[idkf`^XU\cqZYWc^lnrc`oXjaabZTM^eSMUjPcpSOgoQu^WlYtlZeV^_XdgZQ]bOF`^v`kVgggq\RjX^`]gjmOmqI_piPX]Wb^Y`ehflJge`ic[fVeoY^pV`PcnYLvqnoSMaum[GxWS^[a|[Wa^X[XzNRX]]VUFmlj`d][gKiE^Qfn\UaW\o^cRy^K\WtTj`OfQkzVInbXUnySsfJr\ascJoZiacQWYdPT`_[IOjM\iiWmgNXmNbb_W]T`]\FIY~Ykff\lFtuYd]\`Kqff\cKQeOAVWnDal`TaZ[]dbnnai\IiYp]T[_eOKl[UM`Y]uSej`\bYoP\bsW]jcpy`rrOjTp~zYiVXatpabGpSo^hpcfbY\ue[rrUAZVW]bj`_RbVtrYn^pjkbtgY^i_hua]h`sYj\gUgVQ]l^XZXkUiUox>nZ^odibPiaciY[XPu[_YjZ`crQmQWlv{`b[nPsq\cToLaU[fg[eavf_`^[fX\lScc`PY[`kXWVV\RU}leUNkPXmT\CXib_XkUQla]Nawp[lb|SUW`dqlLXHMg[t^aXglWjSNe_e\ba\VrtUp]Vmc^Yg_gS[K^glQsRhYqhRc{WPmhj_aYbMs\[Q^]mV_PMpOQ`^ig\hr`[cZsbcP`h\c]`]YzgX^jlJhXMja[LiilWSpa^LQakpZQ]Nc_eQda^M]m^bbY[]cZzmX^^Sd^\S_jVNfa`SVYbnS}nTi`[U`siU]W`UrTmZfMY[s`j^Z\kVdlYYtbebZd[a^yh^^fu]baRgTlZeaJeZdRgiTO_aT[eo^~hZZTYRk`jcseS|cohYeXnj_Ww]\_MrijStLVkZmvHbZ^fK]WftVMc\R`ic[_Ogafbpwkhhke[_aWkWpvWZi]]i`Qi_SbX\wSkW[nbY^``Zw]`kQhYWaaTXxhgkPX[cVfbiOd\V\c[Z}[b]HKaWPOYcPTFZ^LcUWV]eaZX^bU^uljd_^V`Mci\cYrymnSb[ZqnGZ[Nd^[xbndqbUbebTZe_UiZYWcdY[`lZwbVZbQLjggW^]SgiqvVw\acgbfkabR[_^gWra[[U[QX}ZWYbN`jg]quMO\`_P\MgTKWhaYtboY^o_^f[SX]VKoLTPrdXcU_p_Wdl`Ro\_h\YM^j_bnW\W]XgKF{F^]Q_a`RfZcld\j^XdMf[hqggdebJ_gnNKjv\vdjVX_SdreWfT[]fO^oabV]IW\i]\XVeeS]d\SdZnd]}`r_n]He\Pr_dsnfPo{XFYcOak\YOrSR\diNQ~VOwRae`^qcbPIcVX^WVlbc_jrdTQ\y`]\]OTL[hwaO^VSyVyGb`fhliaUklkihs_`_}ZZYj\qcsZzgbamlKdfkSYbmmMZnw]cX`hWq^SBhUaS[jgcIo`XXhhkWhld[bW`iVZXzi]NNdemfg^cwrkip``sdD\x]PkO^_ZhXulsf^hfkTUge`TVf]u\mjO`imQi_[]r?igc\VZtVkSZje[lRYQZdd\_aaTznZ_`WJWkaniajeRlnc\_qnmnKLh]YPYcP`[cmRh_N\]`dbUfTY^eTcaZdsVP^ceRkVi_Q\\ek_\Hj^_l_Zoe`ca_Y[oekj[oruU]bZQRjRae[a\ffjY\pegQsjkVmYR]]WXZhvV^lae`dY^W[SP\Pcb]\VagORachUIfYRUa`R]]P\uR_U8TOZMb\hr[`dobo^\dcmfih_\rP\TNfWcek[Z[NLd`fNUgdgSkad[Yj]gZbchXWrRad_blfjOfjjpPUu`W_@dOc_ZloMam\hePYS\oRdd`SiQgUuUS_bKvm_L\fX}duXcra][V_cKOI_ZS]Z[li`Jhoe`xi``fmN`cdb^DcbWgoPd`dh^N_Wb]km\AwsgUb^f\bzo_D]pgWjaUWv`x_`hpdaNQc[gEmYXG]W^TUerRZbik[SeY{f]VXiW\XTqZVcOay\WhSWuKbu[RYalgoVlVio\R]Y[}m[_]_KZ_jY]myIjmucuWOggLa_mVM`f]fKecX^TKRNpZUJbfoN_ZiWHPQb^]hafaW`NzraJgoU|UochMXfOKjPi[dlTDYPoYgbC|FClh=tgiDSUa>R~Vb_TJfgLMwPR|RW^R|jmWccxOrwzWaQMXtOPXlvVKrS\d\_htm\jsiZNa[Pfbtqs\cpEp]p]ehRhLhRe__cZnbkeToQmEcOY_WlYsfKqFRgoQTflSdZisPOcUf_\Wab}wZpgjV]faoB`jHeVIamRjqiSQQYJjgdu`}tag[Uwjh`wTROTNrsX_XVwsct\WS^bKS[eQTTcYc_a`]ldjn`K]KjnXl\pg^f`VnZpRN`ajcMTy_IW\`e_aaYbmfcqd[pfnkWWnjtngegelxfd[ezFeqbcdfc]?]oIaWcnmXgggbb^q[`dggYa_rmV_giRfeJWZmkiXO\NbV\fsrgqngxY_[uZckvVjqjZjfrkaVpb]SSMJbZHu\Rwya]\hpcfRcaojtYi^g\w^Xg_[lXgqY[^\dc]Sqb`_kTNcoSYXd]YbY`nPfqgKcZZXPwmTUcRsm\LbgTYc~VWj~\objoWZ``QPlY_X[nYoiTWYXbYojPnZideGr`]hs\cpyoqVsas`k^g`QfJiQkvfnvc[j[tgfidW2bkfeZaplKIbS`KbKYfKbWXYUeahgkdcjYLfCWbL\aUZXWZcPd~V`VXzWd_\G\fR^Q]eWiStfbVc`bTbb_MgOcSaLbix]L_RDk`hjSom^k_snUgi^^[SMiUpZi\JhWukZIkzq_][v\dXI]gSfgafX__blZUa}ydVSW__KiNZabWqk\jRbiSTNJFcehVWjaf^_MahMcj[njT`m_PXWVc^f_ZfrZ`ud`f[UbZOY`jb=LYGOZo`]Z_ba[dULVjjLQc[>YUfIPsQ]KRS KI:aTJYOdTbXcNgRoSebJXK.`OFOWW_GY]CblWO_s^WQVjlYeMd]XaPacJeZ\ZQO^ZSPXRJcwPJ[QWjhhGRqWZXUqcG]rNm\Vi;PoWX`;zhX\cSoBW[bYxYaIVG{rjO`SLQlhCWsbcVbL_]Z[R]RYJfgnmXbV]YZDtI|>r_]}D\UZT]PhfNZnsH[tce_YZRjY{QRQ~EU^aVNdEh?Y]dL[qae_JvOdZ[_lpWR+`Zrln`so{a?ccTE`\m:RYgBdM`YhMwfn^l|[iAfhxrg`nYhX]e`a^VfJ^Q\c_LZZNcO]Ue^\on`YKQYSn^^uQbdb_`OkUV]\JiSCeaJ[Nkdj[Nzqu_jtdnObwZUX]RL\_jWfiPRTw[JjcwcS^WYVjfXOoM_XHRYZOMe_Oea\GR^MThr]f^XWQRb_r|hgVVdWKgjahfWa`jo^zN^^^w}_`WLwG]]VWjlm^bZ\b\Y`XwYIc]ckeng^mgn\c`WYV]ZarUPvYV^eqYgxgo]ngJ]alaZ^fM_jJUW\dth^rYnic^m_d[\TzmXRXdZ`N_^oojh]Zwkm^gdneYN7qfX_e[NWge[Y_an_U[caYTY\aU]S_gY_^^OfQ^W^[^}ltQogRYa~ehqcZX\_NCarQVYU^U]tl\l`aTxfglj^gz]uLobddWdelraPOfWbL^hiiMmO][WjOiHW[el`lIXMTynt\PVehudmpjTk{[UrkrSQRSsSbYT?meY`iiQ[bON\aSxYiztKSleb^\\^TsHCRiXhDchZgNmkRbKZuhQyvS`aifiR]jo_fV]Uv]Q[]jFpkW[LcUYteVZ@wPPu_X`p|XyaoHWpQ_ellp\ff?s[qj^Tg\U`hf\XPiuyYEb`jOWYT]lVsVO\Z^rMYZii\fZgURc`j`VeNMSqYXd]]\b_gPtdcemlW]mVmoq_Wa`iHiEZepnrL{kKMaZgY`dIs]eTY\mQ\Pam[YgPT^Lrihr`ZadZda_MV_X]O^^YjVR_d_`Zc_lW[e`M_]apxQ}PVTcRfoh_dQ_sOMqSjZ`YdmbYhSh^\Zrad`D`YNrP_\f^^p^YE\\J]]LmHrUq^[yi]iMb|df`YkTin}qZYKNJH^hS_Zf?MCLVi`[YfUBvhkV_dddOg[ZSmfVbQdVdqNahAYb`\|hGT`cWj5SUdJeXOJpdXV^ogW\hd^pj~]M]mNdQWS`ecaTcFG`[TmvgbZnpWnB^dzs[NaG\a[igc^ee^IIXbh;taqUNq_slZ\T]feblQ^n?bNTfZfS`]\^V^dbk]Tc^i]qeVcO]m]yzicNOtVFVjNRmmBkhSjXjWaeKA^PQ[g^`_PRf\GbWeLfdTSta\wj^]WurcS[T]KiOgq^Z\]OBkYUNUf\gRkSQndNWUUjgG^FWOZgcyV]My]`q[YW`\W_pWmc^_XaeY|Y[rqdRYW]mXUM`inVBlipgp_Zq[xb[\Ocj[udVTa]Okj}WdSjVY}fm\cki[_KgojrhnLkhmc\n`fSYUsYqAYfbE\t`e_lKFuiWyd_kogyKa\`kZoUfen]~O]Sfe`yUYPD`VkbkYLg^vPegS]K^MQ[|[eZgFVXtRh\ahi[Vkwi[vNRpf\tXkkVMGqtLynMSdypreVhR`yZ[ndhV[iW}\seiRbepTXNOLZz_WpRoeYgRKYlzYp_Uda]__L\{W[_L]dWSGQkgMeo``eOJZgS^XoGLVaM]ULGO]ZkZzY^ocaE`nkhjRRVIvwnkgt{_Y[WEZWZj]l\\j`lSu]aiLMRYn[`arSQgUmyYMW`ZZQkZiLwgKb^URwA_sVa`YUn`aptKcUf]WYWIbZufYSS]`QxYfgEmf`iU]ZF]`cc`bXp_\LL[\_SlpnfXJpSS`qZjgcbdeuU^sWj|Yf`iW`VrsTAdb`tVaY_Wbfn\j`jXcpaI_GZj\t|]`Zi[d]bMWfZJ=_td]MjU^aaVgcaYh|eLj\YPLogb\[`?TW]Vio\UdUWd\Nn_DN[akIBxRvV]Pac[_jZOa]iHT``DpW]|TajjJIe^grW}c[SfQo|aQ]b\qYupgM[kNkSPhVHV;cevSl\xTgMe\XY[nATPk[on]V`mNOoXgOzvhUwa^^]aZbXeP^Z}\UTcaQ_Xh\7wMi\Nf^^Te^UN`ou_p\[niQcblV9AXiU_Tb]dfciIdtiW|mW[haRal]jbLY`o`TPNccnc^OQlZ`_]AfgiBmmejcxr`a]d]rZhLlVcLCgRYYUOnY^azYIX`lSNQ[ioV[Zvh^PvCxKZzUeXoXabcJe^_UqgfMPLaIPVnUMk_P}gYc`UhWg^sahX_OXfP_TKaiMa_Xp]sWXfVhTXj`anooIYeVftiaVeV`YoObKRSx]]ihYqVt_*tViTTb[\jePrZq\[a`aZb]rjaNiPkb\gXY`YJfc[Uq5cUXVmLvchH^[\icabOUdgaIFmjvY[g?ei`cl^]]ZN_okOTifp\[Mm+MQ^Zdlr]}\^fTiVptE_QcZrfcF_,eJS[^Wg[YwWgYXNaRgYR]jhXoWnbXxc]bb^XYI\odj]egvIagvj\v=e[ZXNoYiPNGQiG^T`MFQWqs`]e;[joRIGYnPbbTJa|kh`YZkfYVw{nKbH[^XcYiV^Js`bZcqgKN[rk[oJu^c\Lkk_E^hASeT`gSkZjE@i^[nLpF`Ze_^^ZMKZnBbEZZZNFNN^ILbwE`]uqS^^F\5WYURDJ]Yk\RHO[VJza\hn]]HWrWHX^Zde]NRW`I`V|SqMaYbaofd[TcyarcdnrYdk\\Na`PYTZhZeecfWYP`chUsi`Gi\W`\TLO^cTWfkR`eZ[Q^Hfrm\ce`^PZrsnkghrgR]d\M`^gSeYbUiXdReu{W~`rb`X`Lad[^h^pelsmRbTdZdO[qWZ|[kcqf]kcVcc\teZnaw^Y^[^huT_^aTRPbZYip{Tf@LL`?[age?\PwY\ddLjpgUrapaYohYUGYQcbudZXYU[{QcqtV_a]Eqcr}SsJnVa]rB{@aabKag|cjcTr^H^^gbkcWShbdW\gb[[TFc`WfPV`Wz[dU\fXVk_auZ_cb`yje[\K_FJ\hTYW_S`\WhvnMQ^q`_~xfgRKDv`]VhPdblUiZMclDQb]da]DeX]ftgucN}YyNOobT]Mhjduv^^[ksaXo|ibi`yZdLWoZ\aY[xbm\fx[fGt_OLX]TZh[]PZbcGJ_=Fz_AQliPnCU^\{]\V_\hvYukTTc__askNVyjL_dS\NVbpRMuV\D\obRkYa_Uq[iOcXdxeTgoiUL_tYeZgffTUPSV_ZY_VZX\ajXfNaal^XWe]yo^qr\JVOJgM\ONZ]ZgY}_[V^yxgQfTMUTfVFZZuaaRdi[^j^Y^ZmTYRcSVKktc\dynr[WRxdXhbe__r_^rdfbai_cRklu^eWMU{X[uf^cjMmYKlpQwIltVuKYXd~VlknmcwUcoofjfbUxgmh`mnLbd_k_[]abbZ[P[Qnt^SV_q`sYgfnXU[WX]SibpoVno`_kLt|muY]RWWZbr[ymxbjnSWV_sd[bcnf=Jj}tP^d[_po^iafDRUR^`]jZb`e`hNYUWPnJ[~N[logP]QpuOGSWU[ccbTTbijhno`cPfdbf_ni]WiAt]dtUS[Zd9][_QugeaWZ[af^Paji\u\Nfv`d^rIpV\TkeOvNisvvX{gaXL^nb^y{UQ]f]}hz]PjfZLljjieH]hR\fhpqniVba`c^OdbY`ifcN_rQsddbSjlSm]hzgo]iFYisSS^hhfgmSdTO]TW_WrbZRbhU]jnsDigaa~SmqiKg^m[\\[a[QVMfUPKdhUscgc]f\d\PpR\TPkbS[Pevz`YHYjTn`YOZptyWjQd]VhcKXk]sKpTNpUIfS]VR[ir`HXdLgbli1HvlugQ^WlIKM:U\@AW]Z`kQ`vWQ=NUa]aEdTUs[Kx3_L@SWoxTO]]`iGt[xNQTRT]iaLiZhTQVcGi\qddWQc_xSBkdIRLbQnfdK*p^NUJagdHqm[DcUUJwf_aL/CmebeUvOmgyBJDm`Oy^_[j]n]glYwa\SfWfbfJT{T`[`Wd\fk_]W`lb[dpRZbbjTimZ^diThg_^a\al^e@Y^V[^\hafR_nf_fmylRdoeaWcgiY[mnidd`sgOZkSiUSrpaG]_mdbYkikb^Wbb`jnZnRmZb[xnS`osc{S^SyaZ`Su]Qbf[fj_hbgnWnWka_klfZn\jWaYY]\\dbebhR__]TlYh]`Qa`YiW^K^cfcnLaTM[sGGb``joRh[^\Y^e\h`x~\^QM`URV^UfVhba_hUQYQ^WTl]kW\EakT`S^VC\fmhsh^aV[Yb^k\WM;o_UTWVkdZrYZ[ZTRXNUgg^lIvRWWSYVdPgdamMQq_]UrMEU][NVkkmQP~\OnShhbXZWvWfVe]_RXR_VPUpo_dg]\bZ`feWu\^`ad]`nib`tT]~iYij|ceb^a`RTOJ`Vffn^dh[z[l]NS`MofIgYsYV^]IpZ[k_PYctn]Y\_icsSmxy^UW]Q[hRg[l_WVSrVwj[]c\aS\{auh[MgPm]``lheaLISZNdaVgXQhjO^djhLoSi}T_iWdvXeiOq`XgtfZnU]afPcTnaTQ\\bYYGj_VQhZaUh[Y`ZW^^tOeT`Tb\XsYhWf[q~\^M[gbVd\_QqiORZXrJ[RmXG_ojj`^VVXVXgfM`v[{X^ZGYhk^fiijPh^vcWmkTLZ^\iX`ejSn`hKlm[lPs^^U]bmX]^YY\hia\hv\]i\ZJMS_QMZni`UEUghakdbfhYWcZnKlb{fhvZZah_wXg`jg^R\ncU[mafX[VU\h_^nZYe^ZUbgTlhk^oZQgRudjbdWcT]qVb[eRcWTqShiemeSmUTW\lkV[RVld^d`{aTNfP``whkYW`dWjtKg[cWg]I[jUnVt_h_mh`X^Q\fMUYQXDWWbhbjb^pZW\edaUZppWFZhi_WP]mhiwbrTc`|mnjSnX[l_v]iun]KSjSmlb_aU`iMaZ^wbOfxy`Wbcf^poajvUcWczjVz`g^~mudbe\]\tgXwfV^tqkTX\gu__`jjeWi`eTbhmVg_lKWYYeb\YTPY\lj^_nQpbZeY`]ehqxgS\P]fh\jUa}oxagK}b\fPgvfoz[ca_QZh`a\acDwUZcoW|RU]be^gPzjUvVGNk^]\t`gVraUeaa`Wi^{bgO]w[hdVg]wtY]hvZG^]bnWVnXtVNe\cb_YUnShh^RMpc]nWaZ>_ZsP{TTWHQ\]ds]Wa_kanRhia_JsVQcjb\bVMRtOcUagThGPMDiwW]grpVhPHTdfieW`U]`Z^TlX\_xrcpLUuSXi]ajcLcIK^OZlX]W\NlXe^cOOSh^iD]Xci[KScslgi`J`blMCbkNQObhag)XB^i`N^[HEgMrcGUS,xeq^ZkM`YalNe^Z\s_Pe^qVPPNpQ[XKVb^G^GnXi`XlUUr_>`ZYbaqNZ^o^q[ReH[cMkg^^n_SviXaTn^cjWrgfe^rjcRgMFT^KDTOlgQSZU`L`HYRVu|eXWEaPUOTUX`\wVS]jX[nkk^_bXX_Gr[WYVhXdWRLjYcUlpgaalIxdBEV_\V[i^xVa^X``fiPYmJYy]dbdfXYXGLT_pTboTYfOMI\XfotmKBOSeUPthYln\LlPTe]hX]baVjjkjVeS_kVbVealk^N]CmFboWoj|Yc`pjYub]dxeJetR`\u`lx`fCHiXilj=QglDYvbMbe\dhmkge\brmmN^Kc^mOfkQRd]fd}NlWXvSqjhUZbi_Yod}^U^tnwVse`KkpdeHYcNh]giC]jhNGRtZsZfadTZpxRhfUZu_`[d^wL\\ZR_ifb\}lqcYR\_ea^W[XLn^do_?^`]Zbjq\mUh_i[kYKeU\egdc\Spcw[J_d`enVc`[n\^_Y^`nfYRnYBge]]\uQxe^YfcTTal]Sgj\T\]dnbWzZPZscfYe`[Uhr[ba_Wliwcfjr_nSWYpiXe[W\emlTPOYZkgVQpNLX^j[vXjThh]sOUeabUcbWcuVoZtsTbpZu_XDpR^yQTnhlQcPzNZdUPrIfqakNpUQWWScFYuYaaa]hXXQe]aDsep\XRdeYQe^WRacFTmbXpjm`chlOrIS@afaQKoWOOmh]fNiiPOecbSg]gXYQ~T`nkIdhbXZWeSg]RWTEai]oZhQcnd>W^d^RtRcj|w~MUtXg^~L_h[wj`ZyXjTiShcgfZcbEbfk~YSmJlPaZ[n_pc]xxfVhXg\bX^YOfZj`uhh[gcUhsXkYX\fTR]gM_bexjdX\nhoiMccoSRVlnYiskjgf`SlalfW`bSl{u`p`U]]o^fPJhG]T\XZYkjb[nqa[O[bTD\MN^x[Sbm_UZVUdQZZl\qb_eiQb[qWUdbMyT^RTbcP]fb_HHZZpbya^]EVTXXX8XiUVcd_XPI_\[`lKf`iSKxrf~Ug_|kb`aUk[]WSdU]RWilbeXa,gXdpKap]afXp[OURcXdU_]KHi\e|cTrH[dnohvthSagh^[ldmaSmRPm9`Q[adybVPlJgZ{{[Tgu]ad\Z?fePhXuL]V{N{DP|RrjclbITUCN`PZMG]taKgfSVSm_g]Ybi?UY`mHaKe\_Xjp`rlMNsNWijhPVas^[W^Tb[HZkL]KmrdXTYV`[[p\MkXvoii^lffkGVbZMscfl^fRMZ}_daarP_a[`kiVralBocecS\X^^yTjXoTK8_Ry``grcc_X_]ZTm[ZQOITc\WUT][_fnY[YMosTmQOsUn_Urhl~m\t[i]Xu\ykBU{abCWY@cYl{iam^q_V}[pW^U[VfnBg^_VJegfWm^G-hXS7]bkcQfqtckf~djswgfyqP[G^oslieWK]nRT5vWjoOeraFz`h]OmQuJhff{fPY_gckgQZa[t?UrjGow^fq}faCPcaZefFpkaK\hZKyucqYPkxUZ[g[S\a[FPYgNYfQQgYNKXSfcgXxRwbjgC`bZVb_[[af]veMhl__^mLaZ[[\m\Wa^YWZ^a^[nZpldeUp[Wl]cYnoggn|VihY}QYYcMdccSaMkZn^Vle\dXsjV_TdambY[_eca^rccoX`Mk_POhS_sOg_V]3NZqeURROU`]aedUpNjPMjeWT^WSl@V[ZXY`^ZoYXQfZQ]US`iUTaj^`[STdRjuO^\b`bqHc[YeP\BVNVPftYiW`dlCmfw`dPzHbi^P^atfVbfintSdj[Y\iYYsgdOk\dEQXofSqX\cROcwPbangi]fa[L[OV]Nuar\dYZkecc]V`cqbZq_NVjZ[OI^Ym^p_XXTiQT`WY_Q_q3RMiiedc_YgeylZNbQYWSQ_[gRKQgZaj_OYkh_fT_od=]`W}cMYXT`hX]POmb^S_gOqXKjTb^i_Z][VegDdm`\O\nTzHgx[BtYwQgbXu>ae\aPNYUTlUMRdYidKWYE~eZSzrQj^^[sRQ^hUr]hi[P{UU`W\RfqUqZ`Nj]_nxgS_\b\NtRiRiTZiU]gWl\SkYY_Sne_g^ORVbnHZY\l^C\{N;U]aSYY_h[Q_VBSlb\^`erp`zdWc`icfb_c\\^dOfaw[Yq`ZVP^Mp[dpZ[rv[[]ZORZz]^qf\QaczWRuV\mnaXOQQg>qiXdXhHI[_S[\BFVQIR|YuaQbaj`Zk[_^ZwWVaPTJRY^bM`ZrW\IWN_PjLQninjRX^QXHG_nTvYgW]dVgXMmgLAvcfZ_KYectQ[PWOfMUpKamUWeYFW_\\^X]Q`zT]\ZY]panGaOVPmEdo>oPWQPXXTgmVghRqL^fZWYrea_dU}OdLVSbadP]XwEZYMTdYPPQBtZu^YL\{ngnl]bc{fgdgW]JfgPcQdp_bo^hfWhfcpIg]gk`WscSk^}jKkSnVOOvbn`ffavYUYrRZbTeU^qkYZQiUTX_UohiEQhSpkg]dTdan^rNQklRNkrLh^mb_^UZ[Xg\Wj_gda^^iGWZfUZ`GgPO_\M[BvjTQpUR]acVpXiMOqlBiMjjcaL\lVQGN\TvdaTWSXlXZdWugoVw]a]YPZn]c\yNOX^gOT^PYh``J[obj`sW`U\c^KnGQrVahXdRNgUZWm{_hYnZRuucR{OyU]XV]aNgPMbd`B`nHQr\@[U^WaRKSqW\^UIhr^bc_fYQq``rkcjgnKI_]]ygebZB_XPZbIRg^VoIyhe~fXdTOUjS\_sQ]WYfcQCkFjPdqtB`Xh`XIUUaDkafp}Ok[_^aqRYRMk_Y[f\d]XW`]obmW[ombWeZc}SU[mS]Zlkh_^heZOt`NXZ]jQ`WZ^dXmXQ^cU\j[a\=wnSdUV_WLj^TaXWZlz]jjYfquZjmRpMYXVLl]iSeT]g^fvk^ad`[ahbhUT\VyeX]wjPjd^uQlOrWamXq_[]^CRLaPOPRi8O4_^ZjTdDB^^L^WVW^HQ\fURXJIT[[TeNOPJYUPLInSLEQL\Ue^ycEQfi`Xa+[HJXOa[flmSiOYUMhVScRZKnuac\dTcbTWm_Zi_pfSx[fd`gr^gc_USMhchQWgW]cvhNTIvg_JYfXIYWhkRY|caOl_O\jd\p]P`lItUxW]pTZN`cZV`\[\XBdpMRPgf[fgRc[byJNb^gdSW^^bYVcNcgJSl^Nk`cHX[ldXOOSnVjjaZXe^kbe`_TcUTUb_easSfhXkSr\bVWSbX_~\VS]_cSTm\v_XRfq][aXjYK`^qa]aj]ffVY_Tbg]eMreYm}ce]dN[XYRn^Z`pDnNPRYaOr^aWV^d[xwUSMGfCPhs_PO0ObYhbb`S]`Vh^MldZQWbYm]RRb^rvifaU_dfWkadkQUc[dYTWfctSOnk^f_QYqZ]_VSaSZDpicdlSY_nfUadfb_VmYgWS[a]lygmb}Q`bTkaUcfjzF_OXPcgyjShgK_[iJEZ[n`eRXkwYudbWgn^iXfVz__fal_oue^^YhMrb[VCq_ocT}JNbVTW`RLdblTVoo^e`QTUegcVXQeQl`naqTV\_TgkTd]_^ma^]\Va`\v\MS[q]X=Rhfd~ffb^e\bYcqbIhfQpmSgW^i^g\fZjHNeiXglFpqhYeZIb{UTZfOgZq`\f`LjU`kJ@Ye]]nhef\_\l\TxYLh\XfZkPSTYLLUTXg[faUpOLdc__rceXmpPkDrsNq^xc^avcYoSbhh]\^]ckde|bjixxCejWVHPjfz^ZslgRvb^]maSu`kpX]fTu]tdMYMmSSMeofjaSkdVWi_kn^MnZbj]GvgtI[Yhbm`jhSxP{YoOZjZpBMVUehldYjUjUZse[K]\ebigqsLwjX`M:Ecjh\Heh5wUkii~f,K\\[I]|b_scd[YNYiOgNKUbaYi{N\XeqgM_HXRTMeZ`bUYNuufLR`l[fVctJ{mZib^OsQTggBeaFQ_\YLfQ~ZZWihpdoWUFa^`ZNaYw\hjWYlZmLZ_Ww`Z`_\THKb[\m`kqoqZa_c,hfUSR^XjEdLSdn1`FdAGeQR:@:ieL[abpGN\aQSFG\dE[Z^]Q2x\gHTkTFF_XnFBeMAMcPKN^NORNHjR0>HbEPBQnXoTKSXN`rUUZItMLX_VKa?TFX4M#L}dTeao[]JFf9NbXfWJXXJSNcM8HM{UZTaKfcN\cR^LM\tKQnRZl|\YooaEfiufXeTpea{bbbotWUkkQOk[irdxVhSumbmk}OVU^Ol_R^gQQLaiZctz^~Roc]f`y`PQ_MzJZd[dGP{XYMczqZQ\fd\RghT|UUkbaIn[cdEpvg]tfVlgI5dVwY^j_l\DmUapH_qbK]p^qiScVJcRu_jz3uZaSJ2irU`iSA\B]jEasR}azrG`VggT]FeQ_tTOjo[_7r^gLYp]jI]kbst]lYsMm?LnnINWfgjXIGTqt_ahhVXMLkW\`:^l`Y^fPmqWc~TgQEUsYgRbaeuhhhdGYv_lXYaxg^]agXdSstfiXPpdqalldYc`_S`W_QZkS`^io^j_ctgQh[`gYcX[_I`eNYRYSWbpJnbYabUifKlRgbaahpU`facjNpRVmgOUor^fRf\`gqhZiXsThmm\ViIe`\hQY]]_\^Phw^`{hh}eR\l}U]Yf`lXcfgun`R\^EjmcQ[]RVVZT_dgY[`c_FOLn]kAWk_SqiPfnTadZpRJ`^uhg`X`RTUo`ad`YNZqg?TbXIsFcV^d]fqxJ^NNchh?hjv}VwdddebhU\X`Wo[`S]Uh[]RaVbcPGgY_QWTuRVFUZjYvsfto`LXDbVm_TfrerYZjJcNgRUaY^\\ToVQItfdM`bF`\`YU\^`UXZgYo^cYVQkOlpgTYrP^s^Cpe[]Za[gnPZWtcWS`g_][c]^_wM\hC^pUX[srUQlXTRRjfOfsQPS\\c``jfeOc\Zn[i\fcSqbZ_PIfmtVlehhfVVcLb\bs`}fnncfRYfUgbj\`YPUU]Sa`}jwWNSvgXcW]]`qavtwdsfkkg[_ccYVpgjUv^_TnXHaRb`Nc[iZX_bTHcWiYclEfs[wcdMSagc`bTbqc\qRVPgehh_aOhVYPbhJdZaudU_Yq_ZpYxhYd^W^djTySaZMcWieUm^XhaDX[R_x\\_^bK^RO]uUIRZ\WULe[ifZDhWia`]n`[]br\jTX^Yu[aaXW[\tfTddh`MkFMVphUQ_hWpag[rxbaFUcQZ\`u_VYcUfrgYZTaGh_`aiQuCORYaUXelZZchZgJwHQ^b`_Zv\hrhfN\dabhYfqqpj_`b}SH_SXLX|erL]dUwTepbhL^ecUnWXZft[]dMT`UQ]qQYXX?a[aPWhItncX^oe\ZcxVJ]]aiH]Wb\M]fU[pVbhfledu{gMWR{qo^[hY[dy_O\c_ZqggS`M`WWjYacV[Xc_KUFULW;ZJ*`7_~uDX?CcanLCSTOT?OOYhSVj%=thDJVFS_^=CTriX\X4qdWhUQg4~qNLRJZlkbgnM`p\r\^RaYb^Xhe^^J_P~YbafcQ]\[lOloRynKffVZbmiarkKlX^^pfa`VadyUgN\rJ_l^~VOK`mOdRT^]_V`Xuvc^`sikbXfjM}w|dLfW\P__XQGUteR^]mEfoXqYkefcc^P^VOUg_WDDRrVWShfY_`RFP^mWdbiUJ>kiSbU`pjlRmN_vzecNa]nWR]XM\dc`TYgb[HmZfJTD[^L^ncoU_J[]X`e``M_afU]rXWMeZclA]kCSpvhmpZNf_upbwb_U_J]YeNS\fb[Pd]iakgVRbYnVlW[vffV\V\mF\]QXZRTTKl_dW]YkTSk_USVplLo`Jpm]bRkp\NZGAZcM^}KcoknT`neaNTmWeV\WdibYUJihI\aUVXYTgI;Y`kYfRLIUcTgbUhbURMWW\1jppNYWGYfaWKNzR^khX`DSPPZhRV\lviQVYmcjebbnc\fh]^skRSZac^amYmXwSkPRh\zgiQ\eik`XphXhPn`ZW`txUG_ec\joMl^qcc^ay][gdeh_f^O`rh]vbPfpZT]^UhmMh[jCl]Rh]aRMXelLv[]QOqaeleZddmVO`mfmuiSqvgT^te`\VfX`[lXiNfZ^_YpgcM`VbU>SJQcSSVh_up~HC_aZpufYJmEsmc][=lZWX^x_YWy[XJSQ`PQd]~WPgQcNSYN\mVZ\YkC\M`>Xj@cdWi`gQvIjcJwyZneloKTf\w\[vr\ea\Eh]bfZfpcQhdnU\Zd]jtR]Re`hHirnJSzNOoXVfbUxetXT[XP`jSjij^p[`Qg_RQe=dt^Lw]uQLRTrj^^WvThUh]hZ^_f_WQXlfqri^Ggbwfcgm`ocX^\moscd_}tegN[dm~Qhx\jk}f_ijuspe[_ublVVijsQhT^fm\\QjjpjLkilTTx]baYs_ ivV[^TA]dKMl`J=mRf\QCKch\`thrdmbwbllbKhGVmRSuhMdzjTrgd?^S]Wdk[nclOsec?Kde ej^TgcgQUYaNkiaSWM^eZ[\@^jVNlWYedWKrHS^hZk_pmc`ccINaM=VW\C`XiOJMee[eYSDIb\g`]F]e5cmjYjXjF\vbSmcJ`hNLf[oec>PKvNaivhY?WR_b?a]T[[\enbJoFUtFQq]pDfcV]tarhotBmrcqYkEdTWfY\rQK]aTZ\botJuSOW=lUq_Idn]h}kGZg\ilL^K_fcfXA_g]WMWdC__TfqPZHQSBZoZ\VoesQU^YTNzZcQyd]bQ_iegVStkSumGebpbQa]QV_YPZ;Riq`Xa|`TIR_Qz\G_HbYw\SSlUf}]VbZMWhjOtftYk]NCmCRqcaaO_vLRWXfu_V^E^NccP[|pd`UlQhnijRWc[XPxK_U]ecuTTUi^L]Q_HbaQPQMuo[gKEfqccWKfIwXwh_Ie[bZ_qYWQSJ[awVuX*QWaR_pTz]GO=jehG_=fe@WaOwbf`jjEr\OZPajc\VmkV[b\p^`SJmOhqUeQkVSVOn^V[ULTciZ|Unk~kKN\NAMb|SWaS^X`_dmWeJeBTZGWVmcVTRbzZ_th]eYoH`V]uY]Me\qciuUe\QbeYWONVg\mXjbcMbHhuiGWVphbR^_`jegZUkaYTWab^ZaIu`a``ifslIk_Op^JRTjgZ\\d`asdvPeWSc]jicpRn[\Uiu][aX_`mXp^mpP^g[jOnf[`ibL__[_]][MqY[]^dk|R^PrvKigy[ufQ[XZS[_e[[Ysgs`dLdTLggKe\lYJmvD^Wi^ffccypo^Z_`fikwWW\d[l]DKibZc`HolhbzdLlWd[elM=S6Dfa]gTDQHcbGbaN^_a^QYRkqXJr]iI=eZXhnWN/]GMbb{vUqch[i__ZLyRabN9nZKhZTYypXYkU_aXkUb`Rmptf\^cm[Tl[SBWVsZ\SU[UJefTys^Z[OdW\ivjg|e]Ob\`RQjf^j^mddj_]UQLSXZUB]][gawfYmbf^dW[^TFg]Wy[@_DY]RkpQ`Wi\ibP^WcaS^Ij`f^Sb]O]j`f]voU]apYd^cOhqRxamBYdtk`tJHlQWZeLcnrIaQMgr`c^l[VliWaaT\WfherL?a_HaY`ZOUcF[[ldE^G\SZ\ecXFarOK\]`wWSYMchHRCMUeUMOLcunXbQXmSYF^_ljWNpJgHdSZJRJPnWbrWfpnTUWuMYgl`^BNVWfk^dMbfX;\eeThaZWS^WQm`|OHUWig\_jOZZVcZ]E[^dXMRth]Ouh|bjS_X=:a_^hOKj_kY[nWf^tY)VOSVGvYf_g^PeUep_fONnTFNS{7[viViZV[fn[kZNXfTegZ:_`SdZYG]mlZYWTi}n`_c`lYUfdbqzPwbbdjhXtWRkXT]ypy[OaMc\J^WR^kdipVeusc_giRQZeGQ]XWdgvkTzYObV[p]B~MlYfelTcaTur\bpIS{s`WOM`[VddRu[XOetIYZgI^vdHfIjYPZQUGZjUh__[n{jbZgj`YDag[[gJ^^WeeS^a\[nd[k{f`_d1LJgdbVlpTp\Xe^koovUd_[q`bzJWZ_iFO\RIrWDg`RqXdbQPVYOOfJhuQU^kle\NRsXxOPapXjXdRTuUfc{KtsjsDqYDu[QzP]YHTTl^hZgS]tWk^a\fehL~Z\VbtfbfXMZhToNkTVWOcia^[WbSkRh]_V`P]jZy^k`[c\Qqge[m[XhlTehgsi]h^Wske`V]dqcc^femw^^Y^G[ZdVjfvT]ffeNtlZ[hgiKd\`p`hkkZZYvWatf`gdbanjtO[gLa`Nku`cWeUlWq`Y[h_adw_xWcaZccWYfD`flma\scsYSALgMRHVLrodIeWu\P`geuvekimfzdGzZJ[USgdPiWGcXOXFLX^aIaxlhZPjZi\[hIM`bbbmgPWZFyf^YhfVd^avZjluVgAkjpThSjd^^NUiXirUHnabLjok\^^9XCUubUaAibmYlcf^\c`f\PV_iOXbiapfgaTLYKfIX]shG`eFuedvcfkr`LvhrQSg^`k_U]YvQfZeY[fs[pWbcTMX_bgI}Xl]eVRoeb^WeO]_G\b\LjSnkoREZ[ZieUb^fjhvdk`qU^U_rYUZUb[J_Widb`]Op[VZX\aVW[O[UXdVfaecm^dlnY[|kM`JThZk_V_eKO\_N``]WP]fale]\UU\^ZlcgIjQTkpfVtheRy[ZgWg]gPMacBU[MVXDRjFLwaQW_M5OSGcY4IFZRmVO\IcMQgTGRKSUHB>D>UbBKeVMHEPeWJPRP\VAq`:e[[TgPIj:K:PP:=cJThNZPelVZsd`nQSOSBX]Tb8[O;VYI[[ACMW1IXRHYVkXQFVW{Y=MZbo[QQDeE]gGmQEFL\R\aYy]N]ZNcqg[cMNQ\cpYpX^aJ`^XdwIOojqqaPQ^K|[]cWAuTu]]l.{_`anRjx[hkSdXnMdag{cFdhqFRfcIm_INmSg3YTogMJ`XYIXgTb\[]=Yk|Vgoqdpoua]PhIBkWkE^`ld][DXHjw7VtMM\`CgO;VxbXAqzwrZSxgUi^?`S_bleZu`=GgrZNYYUDl\Z`aedXMTr[rmQVTNVrZeaa\_NfK_`WdoUMhQ[VCRY_^XXeMg\PPJLcBiUSIX\mEQ_gnp3MvI{`sky[`\DSMOTXOILAQ|XdYhjIIbJKchiMVP_xc[SmPSO1[^JsFbRXW[le_BORZQGJJCZPPsgaBXiSHYLs|YgjXWTj[[~FMDXoLYPZViVXRc[\g_WZ]TM^[dgfjX[nYTMU]`wu`gLdw`GXthe^VHnaH}gQZ^mcPpekrn\eXa^e_VqeZ\\eZ\FyT]JjyZVYKdQZXpYXZl|_]ahi`jKZQeQMPjpN]jw|lxg~R^`ZXSGoNT|]`ZYRIMeUKgbXp[[irqYyVcogpY|RjnbpTRhWmnXN[sX`V]hle]brVqJcKbXYpM`HPXOVw\\lZzSyQgRmOlWUSddYkfQp_\qPZmdO`RmY^~NecmZr~qI`n`Q]eY>MrNb`Wh[mcf\WQkbrkobWdeW^X]WbXUSxNcSU[\_I^\VfdjiWEYMakVBbQ_gSaieNc`J_XbbdMXTm\ldfUVmoTPV]e_zPSXeOW]^pkWSXJNmd\`ge\^duWYQrOJtT[KU\V`DdP8O4U|OeMDYM\]ONSReyYWTamSOb_TbMfd[ZfQ[`SlIUAn^Ricn_gd^VEVkaVPz_OSWMZlX\[RHBObTNf9{FSfW`Zdf^R{LWkqv\ahXOboSaiXF_K{k^od\PaJXWhlKYzv\cTWt]\VQU_ZXc_Vp]hnPeVQLm\J\ZsYiNXWRJHRnUj[VWkaV]au\X^]L\W`ThQdQS]oezda\sdEhN[UqicYW[Y]iuodd`VWXKl^joSgkmdS_S]ZTgZZM]TZWdZ`gYWZX^^`m\dSi]p]mzaO`]\gw_kfUejtWPYie^b_Yc`_efwuZ^tch^cblZ`pdVmTXNVqlanV[bjWh]KwiOQ{e__a`jMRiU[J5ZTZjZYqVUjjrRdTcK[\boYdVZ_N\VMoqVfi_rfUnQ^]cWYshSY_Plg[c^N]ed}pVX_PlYOwi`pNVxVlXTlma_gXd@_di]e_jsjOTkVJemTZtqZx^gOcvgYMlcPbOVrXXmxYUW`[yQwa_gPcQZcTmZfKmbE\b^xuXVabmYZW^o_YT\UgWPe_i]r`Oj^E_`TjaK^ybOSRsefjhrYPXHO]vvP^gbb]\`gWVa^ubcjakh\^wYZc`VdW^je^m_f{p]WwXO\i]^gXZCs^gZicWQ\[MLwVhcl`Uc`eilfuaoQN]ew_[]_RhSgf\EkoMaSagcQVfWcaZlYigibdurigb`\]VV]Ynr[]irOM^]PXGMuptb\dSXVaTccddTiUU{bXVa^Pd\ck`i`\lrlflbILYC_Ydr_`^ZifnSTrOdR[hObK}_RNYiS^Bq^Mg|nE\cVxz[fkm{edh]_PwV^:VdcRWnJa[Rf^iOf^_I]iMaSWUqjpXa`oVfPMbSOp\jSc\p\gjOc]Ry]W]PlS]LQihWLd_bNqQw_^R^WlIQ{dgcbD]^MfekaV^U`jmMbZqmYP_[qSXWePjTSj}zJVe\SYX_haM|aQoWnXdtLPrdRZiD\QifI{h[hhcTfy_`rWTeYj^m^\nPliOPcZpyrBlQ[abli|h^_fUYUpxVTGGSlW]wa\eK0\QO`o\lbUrxRYTIczPXcQeZ9s^q\eg}RKKmPgSjTbF]iaZSoSTdN]iabrU`kbP\nViLkzcjYQd[Soig^aNE[`bRPRi[nVQUbD`p`adZqeYn]oifkM\Zz\lIKl\\Tq[chRg\^]y^dbM_{aKTYyZWfm_`S]hQh_Ttejif\SwbFS]HhJhUbaa\TG]ib_f_\boqeuaVbWZdbVPrbfs=ZeUO\rh\Wde\]rbW]X`a_\Ycxgba]ljnflfXXB^h^ZXSbW`x^h_ecRnyw__hQNayebUI_ZtUwN[^aUjgxgWelZsfFVfRUg\TTebY|wOkQq@chjJ]PVXSLPCaesTQXevPpi^mSWjh`kjXYii[r[[aagdcOl[OjOi]p\n]kd`T|\UfcnZURhr]UbjgeZuKam[^Rdlo\ro_sdm_a`o^ROiTfbSvWlgR`]qGp_nV[uj]ObnW`vLYeeLkloWLg\f_]dYSH^_YegTekOfhi_pjkOTrhpd_VoiK^Na}iQWYf_rMhasBVnFWefFnq\iCfjSVXx_Q_Pb_`j~cNoj\QOxpBqQQbmYfLeEVJXUXbfgcfpnN_\`~Tj_UI>`nhJUFcms`[c]O^NfLb~UiG\jgRcQHW`fPMnWScntnmI\cWm\p[ymhogRhTjh~YVIN_ZfpVSco{ohM`d~c]6Od_[YWXaJ`Z_dOYhbOVO_K]_fYt}ZbgbZa[tSWYNpj]TyaXXpoZwlQ_aj_UWUZswyd`Q[enltWOMmMMZ@a\ZYWZee][VWkY]_gGTrY^|C_N_hWohoJ]]]\qRRYZrgzR`maQm\bZ[B\kbciZUh`YfKc~QghddhUtUxcabWNkP]PP^RcNc^btLuuWcjgk_kqXa^TaUXZgZP]PoZbNgfVk^8YZlfVPPsRWcd]wbcYX\[^XTYSS^Zia^cre]RPiu`kf]idg\cftf\UU;U[kbU}jRnoUdE^gShbeaubo]eRar[nikfUi|eghRh[bdiXWU_dahVWScZ[ULXSjTOHWV`_PqkfSdpQnioXehQIjZeoljQTZ\[n_j[eWLXcYZqfhq`bbVxMufQbqXT``pb^dbfdon_eWaf\WWXTuj]mS\Cljp`V\SipMtTgvd_zWg]^YejnZ\cVOnQ{^kLdiWJT\jeoTmbZX]h^\eff]frhqd~M[[rE`bTLe[mfc[b\KbfcsXinGVTT[T^g]kqtRX_mQQed^mxaU_\rq^kTNS]\h``VYLQ_[h_fTYg[ohrd\c^N[GwN[_lgUi]^WlghelYeeUjg^fcmYlYhpTce^e`a``YiTaX^[YZ\p^Upi^y][adgsnmaeZZ_e`VcPhcc\c[Z_oRN\hhR_^Pibav]aodgWNG]\YQWr[hVdfZbSgU`YW``lQ\gYlXT`ZekV_dUfpdORmp}dxyotwtvlsc}twiwppmZjsbhdpn~th`nwwst{xyrthxwwu~|y{atmwecmrzxzhkwbu}{pwrnummhUrxrx~l~rpvgp}dnpi{whf{qsra}t}xrsouanurzv_prr|l`qtwufwpnmvq{wutrogxlizugveetqprlm{~nuqltkx}nemdRMR]Lth[_fC`Vhuh\\Vmg[]x{zWWRZj[VWij`Uh\T]aiUg^kC]`cikn`fdjVZ\bmvaf|X\bKea~Shg`ZVZ`o[`iXaObtob\Ug~egcgr^cYa[oVd_fKYeRl`dmieY:]QlkV]`dft`^enPt\QZXS]dIZz]WTLggp]iqwS^te`d`]r|nN^d_b[fenR\fkW\ksRX[k^RaoLib~Hejnc`p\wwN]^LYZRSYXDV[J]_XX]P\^_qfxw]fbGdplj`YqkiZo\cUtKQpcdcX{g`MirFk\YSMpTs]prOdjd{mk?g\b\Lym\T_`k]nUIk@ohZjx\[XQVPCVqPlaRVfyseefU`^\beoVcl[\hYEcnd\`zZ\i}S_eZjfgdjNadVXidgjXf[ipV>QgM\vMfddcfvUThNLnn^]naVlkTVTjPiOQd`U^VApT]znc`SOWVz@|ZUem|adVh]mbkkMQvj^UbwxY~XWhs`U^g[nZ~s[cEiXRgi_Os^[^`lmTfroJb[fhVl^lj[rlgT[][\lQvYXVgg]acUDxoTZSrehHgP`TG^}VWoOjQjGi[^rbuYouUwZqqgbt`jSZRkcKgqcvWqpiTW[cmeqmcbwtu`ddWxRS[Qd`UialLfYd]k]ZXehYgpn}hUcVd[[gkXiR^qWNrji\Zm^]a`ri_rynQb`eZR`\kpm\e\U[^]ce]`d_VIYm`XbrnNSrdkd[b^qjpd\gbViUasa]nhgoubhnwOp]Vlq\kOz_DZgS_gf:U`hg\WMP\jcA[hQEjxU\YSacrVkPe]O`db`D`I_I{vG]kbCdUcjounNVYaS[\hpek>jHIWTZQfLesYfbRgQi\]hknfH[VEVQ}N\]`WTgZ^SgWzV`\WmUmg[YUlVlVR_aHZZwUQ[giZ]`bq_\arg]Thl^Tt\]ojdWSWVbbb{ZKjSR`PtaXejIYY~j~clT\YkPVieSRUv`UhdSXayWh_PIeVj]^_^EkdZRfhUcseagTZd`[g\^pTXvl]Uf_t\e\k]uecQihaRf\b\\nmYbdWZ^i|bT]yt[Dah[gkoM`p\kpn[Ya]fgb[SQf|pThkbhm[YSiYhxdgm`[Qk]fh{Y^bcX`f^bM]]WcURYY[egqumZVp[Zgpn_RdVZIpQ=Y`fLc_aLW]Qs`eb:`InmM]bU_wwTdhmOjNwltdKYsfZrXHrhpZdrfedaQffpeXVhb^akhQ~WxnhfkGinIH]wkSjZRsgkgWgPVdVzC`VULSSau_SjVeh[_buNwHnb}aT__iomaohXF^wWRU9bXmajReK\UQzg[ac@VrhDDUY]GMW_adwSRVSUaXYQfWjjgJfVIZfcg^pXSx\YNelsY\ib{o`c]RjjQUfWXoJyheV\]OWSWiKFzNVRVHjZJ[\lVPISP]keLOrrXU_ZlhY]pgSz]Q[WXeiMamR^PUoTnc{mica`\mVieGlpF]_uPjc^f]]hqYeLf`NiOTVaqRLiQ]pVqqUYZfdRbkrt[fj_mgP]YYGVWoVC`TO_WbejdU`XZjGYbXZoYUGY_\_XTUhKXkp\R`RRBQjvhqgqc;aYu^Z1k_ZAsc`WRV\[`[[kYYkY@lasPNgowLd^sQjhh[mgyfPtUhsnd^SS]VVeco[Jea_RaH_^S\ld;lcZdbTmPa_c[WR[asVJgRUgTtTkVOniS_x_V\eVUVlK5BNoi~XQTcpUVmRjEWWR[k`X[Z_YY\bRsbYcoIoR]DU{DoJsZeXc[e\kfXTZs`bNe]ak]LYv;XgmWXVaM|BueRY]N[W]ZNcj]seUNCbYoP@U^fqZdhkcY~zkjJRehlLPZE[[[valfSflcYdYerSqciQS\Orfd[hb?fZloYJ\Z}nfSMf_rZdYnSMqdWc^YR^Lk|[UP`SdeqpIGQ^eP9GgNsjb[^iOZ%|VQbQ>7UqSI_SzTcZgaVjjOUqP\Wt_pYNnVKPjtNZkeQtSgL_SkflhfsUei?Ed\^^j`cXelkXc`_=cMT[QUZVdJTt`rSCd~R{ubGWbOQfflcXZZ{a_5WcZ`yVNUy\MJb`UiqXcVeYhTqlTUlBfJPc[qJ^`eQDr``=R]StfSoSGbLf_QkihpQ_QZi]Zj\zQUsL{ea]V|gnWga^dl``[UsMPdXpUS\dYnvi]n^fUmX?_wPAeh]Rkw[l^`fdYUvVo^]^vDCcfxTNR[gU]Z\jmUcSiXXVW`POe]kebre_^e`i]ZX^lVmhRcrxi[xWZfq\acgcd^ZOj]rhV_fPVqr__b`mipTfVIX[QFWs8PIZOPWToPVwEBh`ZMEdZ]ZTIUtYSDLgZiSTaMsUidaXNLHZ5QlZaGAM`NT`Yb^\FXW[T^jNNQWVKLc;eIIWRXJP]IbNYSER\fMtM]uL4E1O\XNoGg]So\RQ\ENsdiYzo`Wqg^kfcwlE^[UVdG`f]legJFbm]o[gk]Yo\y\ZOmRbY\WsM_hma^icqcX[iaaQl\dY[\g\^eSSPcUX{c^enhP_bhGVUiYTYefgpOgqhbgT|fdmnC|LbtahcbFEcVkXaqXNbYyTC[\Sksb[XX_ccXcl=`eUli^r|t]jRZa``^_M;QUSLm@lYPLVXj|qSQNRSfRf@_Uk^Y^gWRNW[OwSYBKMTne]LTimXGMJz[N@`VJJgnShW]lHReNd[Z_G^[]XVOlMYYNNdceSXhPZl4ZidhZjXYYtLeLwnS^jViKYZI]fKAa4_]dHw_gf]UZcf^ZZV6Q^bwL^VTje]pc]Y^JC9bjS\QQS[bPUvRG[MagcYc]TPnczt[SeTX_SmTf[Zm_g}kbZce\dfcccTJ_T`SGO`m_c]\Y]r]pS]Zg_QeTU_kg^lT`au]XoOTWQV``r[Z\H]DKmXZZjSiLFo`pgP\kCajqebgd[=ZWcQpXqRgHUXahsk[M[m]^emgMcdO`oY]TQkdmene;IZ^j^M?ik[tql]nbZX^gTks_XUVG{QaTTHuJdTg_csWceAZSVby`]^^XyUcWhp\pWJ_hcSdMdUqr][WjsPPd`T\dWlRqeBfja`rLa\_Rg{camlz[bb`[jYsEX[cx^SWL]whIi\p3iS`Y?qWn\nM\\k[uWqF]kfjjWogUZLqVQbQcbWWa]ldhXhuTIOOo`WXl`U|rMSemQjXa^PrXonnUP^mS`ldEWYiq[\jReULNXQjQbbunYc7d``chF_K`[V}7sPkR]\i]bRV\s]eZO\rW^y]g]PRdoUjqXZnzyM@YV~TUlOMcwcge=ggV_r[]jio_m_KvO~jZs`[9Zk_jSa^PDa`g[h\[^Ra^eaMc``RGhg_iWNh]^h~n[xlfi^W\VYT\ellOTn_gaqlDN][PgApwSP^\iaWOIgOUL]`\E_^bdX]YNWHjTMle[Y`aa]QgzWUgGX_PebfbRVQm{YNW_RfLT\I[XYUXaZTiZXB`cTak^^mR[yX@LZhwr]pS`]oUUeVSY`fBTHadrZ\dF`Oan\XViY_eZ\ci]ogghPhX]YYl`paoQb`bfTj[{K^|a^jhnWcTS^]hjT`e]mk`TYanXd_VXGNhk]USmerSWTYaZkdxRld[d\ZmZVYUIuUUXQ\bebPdth]U_mMaQf`tLX[kVOS{[T^{[rc_VW`t[wUhb`qj^xbkaVWYlYboWYSRt^VddgJO\Pbe]kQO__DXNE^^aR[\NrqbHq]Y\h]>e_ghnN[S\m^xQwPsbZt\xlkZZjiFCMLYWOjY|]g`_[dbPjJ|qUgSBt\K[]QLUoOM_ebR^aZqPMXrLPhbV^KNQ`ygydjHx]`]UVW]NWplQXQ]_JMUPrVeXbamTb\^YVt]kTFf_Z]{iaU_i_UL\{b~TvbQWcple^ZNTlbeetiO`Uh|mI`T`hy]d9oZs^\chca\\m\gsdVJWPLncVeXZ]Y{[ZwlZac^rphbsdeqh\`mcgWf``dlSSh]^US[VWneWmfd\YqoOhS_c\`aiscb^kT^ob\`fTavcW]QqA`l_bH\NP^ob^L^b_b]]a[S_hl]{^iIZUPk}QVefhYUr]O=eVWGVZI^gt_^vKaXVO_uc_pX|RpgRddg[gBGcZqYcW~[^sYUty[^hJca|tuOc[WiXXcgmbS\]WQiPn^gckXFZhLP]\aXpWZ`_]bKIebaMSLt\WSXgoRgt[\cia\mZJbX[OckoWs`TzKlXNweZE[mw\RngZLalj~]QdoOUkmombXSdb^Z_m^dhR~nSa_Lig[PXWXL__\eS]\VeIjXUM\ulWdq]Zz[o`jK`WwrYZba[vajjaWefWVWV^gsmgjbS`_QaZh[Y[Y_TwYnb]UdRSRm`^PbYT~]^O]^enVl\afljbm[ec{etWPp^jboQ[j_n_Ss]a`W[QitXQl_O^sqmaT__ZYmqrghbZ[kQSh[px_Zo[SoMP^`OcKTzQhXwX`^kdrUuc^l;r]SbeWgukXQlTknkdaL_ggU`]VqYabAOa^?QKsCBCWWNWZSSrhi]UQ\BkzGO\\Q`XQZamgPpt]VdaJtbE\MIO\m[Yb{eXoeNby\^a]_Wn`_\YgffoYu[aPJTU\STZNfjpe\v\ZjcU^zWcNLjfn[cTj^C^`{aQVjoV^_oYtLi``FMLds^Veejao}Xox_iJ\dfQdhYUQeRsne\X_pbSe`sMsVb^d`MXh]h\M]^JdGHPnC^[:d`f\]ZX_VWsc]|MoTfmdkZh[Ocne[PrZgLrVdgL[icilI]avO\fgjX_VaUcgXXWlec^acyXhbdjiShdjjTR`XmabtldWjzcN[cPfheY[fUZVc`KR|T_uhdZtuN^]goxme[X[\_>~XVUm`GatX_a[giYY\t\_LkTsefZL\biyxWVZdai\vZsenHi^lKyae_h`b[nlL}ncU\tt`Ysmz\c_^j]ndeQRXxfNUieSo|So`Zlknfj^bXfh`_de}^bSqk]cozb{^jZv`|X^moXi[NesM`xnffUgapaAi\Yg^]vfazkOoSkdaS[^8_tZb\WrcYZdko\sQPYR[XZkk`Y~XUkW\Rt[tiYsxUbk[`qjisrC`SgoQ\fX\]lxcceC]v[_j\eNJepcSh^ayXVZlkR]Rv[_aUXXh^[m^jx\Os]Yg\\ralag]YVkWVjIRXckeraf^brnQfgXhXg\sWf[SNwXZrnYdalhW[ZbUQPQaZ`kOSaTlJFDUoeSeaRWaYgRWJcYbaXDSGZK_wgwdaQa[_PY{{jR{XrbvaSMUcvO]ctXkYKKY[U]LehqQ\q`OKzUgYO]_pNWc^fr_bl`dsgfoc]hHgMZQjThmvHe`MXWLKaHkLxfe\vOaXf]j[WJwkVVMcPUigensTigXVV]O`VUlXatW^R`fLV_eobbZNhyYeXNQWVnxWLITocEZXPP`iVB{a_Z\DmR_nhWQ`fcMidhnf{jeke]bkZcdTV\Y_Km^^gYSwVpS_cnW\]vPf_TmOn_\]YY@ffRNPNV_~kWXq]tYstWUnUcTeboU\YZyl`S\WmigO`yYf[_TgKgX{[BQZ[fQVY\i_INR^gU[mciVRPaPVcRYR^jfPj]GbhfhPuVOWmLYWSR]RjRKfRfsdSQQPUc~OIKkYfPAOHcCPMHl^IYaVLWhaeonvhk_]{fg__c^VSdmXgY[vb}ZzfcYbc^QdpfYk`n[`Oqdukil_n|ib`s`xjnXcgcX^A\MhyieuhVQkgTnjolffffe`uQMUDfO\[OVjIQ]fbltrh`we\l\YOLo^NTpMaVRY[ITq`moH`gfrES_VpI`WZrajZXa[YX[uhiIkYzR^K\oucSmm@XbYfbiibxRUvZV_aiQ\JVQOeXocRkRbfU;WoxQ[^p^e^L`hX[jgyScTf|Z[eaN_\}MiPpQTin[\S[eeWk]_hT}yb~uts|mn_azO|mkwz|qp~}vvn|~xxrvvyyrqwz{wMdv{elq{unn|vxpolwxo{}mxohf{}uuwxwpt{lw|}y}wyu~{uy|~vzx|~zz{|~~~}zzq~|x||yty}t}|szxxyz{t}vHnn{wq{}|lsf`z]xd{u]ytxwx~z|~s|pxxu}u{xv|}}s~{|~{z|qw}wyywxss~{~p~~w~~|z~{~k~uzwwww~x}}}|n}i{kqyyxvuyqyrwsswiazy}u}rq|~~w~yzu|z}xXyptvvz|~iuxzvxy~zrw{zy}~z|}|~}yu{{~}~~zy~|}~|uybxi|r{dXvve|Ntyyc~ru`qfr{vyr~y~yzxz}{a}s|y~xrvz|z~xzq}uvv}`zy|r{px~|v}nxwuz~u|x|vysx}t|{x{}z{~||xd|ysws|yo{}py~~gvnzngy|lyj~}yxzzvzsnzytz{x|~yzxt|wts}{{t||yx}~{||~|~xt{x|}x|}x~{~tx}y{ng{}zwl{}nl}}}y~uz|~y{xy|q|}}|~z{y~~~mvy}}uxuy}{}u~~xwq||~nvRxy}x{pomz``~wrvq~|{}~}|{z||{yy{|wyw}||~y|z|xry~vy|yst~{u~}{x||}{t}yyw||t~u~{z{r||xwv~|xwyqrpv|vvs~sqs{xt|w}w}yw{zzw~s|yy{zy}zsxusrzwz{f|xeq~wzyt}|wtwyy|{z|rs~y{|~|~~{}z~tr|{sse{{vvuuqv~|q{|y}zz{|~}w~~z~~s{zx{|u~z|~{}~{~~~}}yz|}|tvyxquw|x}~xzu|}|{{uy~|~s|znwtzmyoyz~{\vy}w}r^qyuv|m}auvuqz}xyz{xzwz}nxxtg|q}s{{xt~}}zv}}}w}||yyo|rx|{w}zx}ywu|x~|zo~zy|yuw|{q}zww}tx}{|vrzw|uzxz~k{x|{|~zmozwzx{r~v|}qpyo{r~~pig~y}~|~yz}|w{{y}y|{UgGw]y|J{y}rtsceo}lqy|wzq|~}yy~||{zw~|tu|z{y}|zu~yv{}y~zw{w{ztx~wy}xw}m|o~ux^xz|{{~ahtp~~|~tvz~r}x{|o{{o~y}{wzy{}xs}{}~y}}}y{|~y}{y}z}{w{|{{{xw|{xxvtxvi}~|{y{w{}~~~wm|zp~nxwp|rUTsvytxz}sz~|y}{q|w{|mwp}zynxov{ycuq{|~}orjixursxxz{yzuz|p{yyt}}w~zxxz~{qUs}dd}zmlHwfzba{vziUppttuzwzwovtyz{{}z|wmzpvf~~x~{{m}ur~{}w|f~{o|w}{|vzw}zz{~{x{sxx}yxs}w{yuwyE{q~lovpO.~|}~~sw|nxuwvz|r~wp}zv{vsxuig}s||^usxs}l}t|~}y||~v|~|~}z||y{x{w}yypsyp~~twd}f~}thuw|v}`oza}zs|~oz|yzy~ws|pz{vz|zs|qyvyyz}v~~z{sm}|xyv|yx}|~|{vx{~zu{x}sut|rvsuyz|lx~}m||}zzuy{zx}xz|v~tx|wyp}u}xuy~~{|uzxx|yn~outyw~uzvy}kywuu}v{~t{x~}tyyr|}{|z}u{|}z|{vU{}{~y||||}~zw}pTwv}}]rgszy|~x~ps}y{vn{|Suqy~wwx~ww~}~{vz~zzk{w|}}uu{|yyw{v{zotP}sx{yjyjqvik|~o~{r}w~~b|zy}~|xx{zz~l}{y}z}zsx{wy{xv|}s|ks~xyw}{pxsrtqu|}~q}u}ww{x||tvz}}|{x|u~{w~s{z{{whyx}|zxzxvyy{x~vp{{y{n}xryis~kv|~vzy{mrxr~{p{}sxdoqx}yY|rt~dwxunqluzu{t}{zz}}y~u|}|}sz}yyu}|x}|m||}}}{~wt{}~wt}}s~}~yuy}zz~||zlwiKv|yuxxsrz}z|ytzyvx~z~{yw~~yw}|{xvt~xzy{}~z}|zpx|ttw{z|usz~}w|x~u}}{}uzuyrrypyzzwoyyyzyw}t~t|j|ztty|xxys\R{vtuqw~rzvs{pxuW{vxy~slziqyy{{r{r~mx{zv|w|wwuw|}~tu{z|tv~}vyy|y{xsm{az~yzy{w}yxxzxvwlwicc~kvymVz}wx~y^\|mbYww{\{{wxq|wy|vyyx}}tlj~hrr{|oz~imuoz{{w{qx}o{tbzy}vxvx{u{xy}~}x}}{}y}r{}wyr}}~w}yx|~wu}}xww}~z|u{xys~q|w}|}y|}z}zzyyz|~y~z}uy{~zzyy|xw|~}w}}xtyvxxsotwwur\gvv~{lzuy~}yuuwzyw`pjzt}|znsvxzmy|wx}y{zz}|y~yvuwz{{wxy|}{xuvzw}xyzyv{xy|yx{~zzvxsvx{qy~z|qxtw~|||dpoyy|Swunxwyk|]t}sKoyz{yz{vl|zx}z~}~}y{wgx|z~dyxvt}_xiv}~}xw{~}{xzvwxs|uvzt_buwv}}}p}u~w|}~|}yyq}|~~|xzu{xuu{{x~dy|{{}}rs~yws{|t~z}{}}~yg~vIszpbdzv[qk}{t}mfbx~F~}vt{{rtvvy{~rs|}x~{}{zxy{nys{||yyz{zyyw{z~wz~}{|~|{}|u~}w~~v|h|{t|ssmwv{yyz}w}~{y}|tltzb|ps~r}wp{t}svxxZvxmy{qy|}{w}uyxx}wx{zs{z{}z{|}zw{yy|enn}uYuhzhbujvyq{xwtvtu{yswry{~zys|nirppt~~v}{~l|sw|{|~|{|rz~{y{|~vyvx~~z{tvz|r~rpqz|t~pv|xzv~w|~vlst|W{v|xzh}z|nl}cwunc}}snyx}~u~~y{~}}w~tx|u{~}~xzzy~~}x}w}y}{|v{tr|t|s~wwtzoz}C:wnl~u|q~}x{tur|~c{sn{q}n}ettYmd|vsrq~{po|x|wy{{{}{|y{l{|}xy}|}x}t}{v~||pZd|{Lwykzsx~x}zu}\v|}vtw}v|y~s}}uux~yszyy}}xs}{z~~vytkxs~}{uy|~iqz|k~xwzzz|pv}s}x~}|`ow\rDx}h|Fzvp~diy}{qy|yyp|o|{{rr|y||{{|xxiv|v{t{wkr{wu{p}mzx|~|sznyxxt{yx~vx|}}x{z~|}}|vy~~}~u|}|~s~t|~z}|}|{wx{zq}x}~v|z~||p{|{~{}x|guuwu{~qs{}|~nz|~aov.w~kx~vq|}v~zxe}tzuy}y~|~yx|||y|yzw}||z}wwy|uKrys~|pshzpt{|v{|I{w{}w}xuo}|~}|oxztxcx{rwt{vut~}y|z|~{}}v|wz{yv{v||s{xy{{ytv}{yyyvwu|qu|}wz|{x~{z|~}|x{~y|xv~~~{ztpxzzt~{}|}jo~~phsws}x~o~vq}ytyr~{qw{nvv{vu~}~z{|{yv~||s}}u||~~ysx~su{bvy~tpvx~rv~uwRyzr|snuwpqw{|uux|~z}}c~{~{}ruty||{y}{{x~{u}x{vw|uyyoy}{{{}zxv}ytyaryxzt{}pwo|zj>w~{~||¹}krwv~|trzHzp{v|wz}p{|z}|s~ynu||}v~{{{}}vbrz~vam~rgyrzww|yldye}zy{}y~x||}zy|}{}zyv{~{x|||~y}v}y}}|~}w~~z|y~u|{{yuzsh{{ymowgVUq}}r|m}qzrrxwvwer|y|rnruz|}}zezdu|tvwq}z}yqxziwydnymzt{x}y~}zv{~}}~}}yrqt~v~r~||xyzy|~q|{xu|{~{}szt~{x{yz||vtq}xsyzx|{~z{t|~ssw|~y}pi~nywlzlzu`o{}~vzrzv~~~ztonswt|yhwuwp~srz|r{t{{}t{v_o~yy~{w|zvrxys|rpwm}uwyw}ztux~qtzz~xpttwwu{{}~|z{zzwv{}}{}xz~z|}yzz}}x|x~~|{}~|xy|w|{v~x}|~~z_t~zrr~}z|nrml`{vs|ud}Ty}|}qv}kwz|oz{swx}xx~wmvsl~}u}~|}~|v}|}}~z}xy{}|{w}~}|x~ws|u}{v|x{xy|{|}{w~}yvz~x|}x}{y|{t~~u}~wwy|}zz}|}|xvwl{juzyvz{x{x}|{{|w~x|{w}}z|y~z}x{zxxt~v~z~|kz~mq}X|xy~}r}zWypruvi^|}yh}vwy}s~xwur{{v}t~yxv}u}yx~t}|j}uzgl|y~vsl}u}v~r|{pujyt}yyyssyvjwv{}|t}|}x{|w{r~~{}w|xyv}vwxzvw|}|~w}wvy{|z||{u~wuwyer|jrvx|svyt{w}zro}~|zwu}ra}zysnsjw{}v|yz{|yt|tzwy}un~fs{sarh{og}gw]c~zyk{|xyzy|q{||ws|}sr}qqlkx~z{ypyzwt{~zj~zv{|z{}o|}vx|x~~vx~z{wyxhx}[{zZ~woVwolvqtfu~udwu}j|}z|}|~~y{w{zo}~{|}}||}|jcz~x}v~}ts}w|zwrcxtszopr~t}w|yvk}u`zwy}z{tssy}i{{yxy{zt|t^srtq{vvwYmv}cvuXtw{{zwv~}}l}zr~tnrto|z}wuzoztwxrowxpiyyospow{zsmuuv|i}wxc|vkp{tl}|l|jxz}|jelewqv~}yyzstv{yozxz~luyyuw~|vw{zt{x{yx}ov|r{zz}tyuo|t{~}s~mzkrppmy{y}w|sz}|ywv}nrz{z{u{xz{pzxyn|{wvy[l}xyussv}{}|{tntyd|u}tp}zr~|vw~}t~r~v~wx{||q|uw~x|{|y{|es|{|~vvzs{}wqyxlkmpt}{}pY|yntwgs|{p~~{{z{u|~|z}{x}~yx}oz}{xzw}}u{y@v{i{zmcy~zlyq|em|j=|{|{}}x~}t|{yxy{{vv{}~}~}x|~qxpw}t|ss}zxywz{~}x{uzzsx~s|zx~ry{\~zvz~zrzwv~v}tvqw|}x~yww~x~|~{zuzv~xx{{w}y|w~zn~~mv{nzzuydvf}pyx}{uq~vywtyx~~|ɤƕ{rѰ{~u}|}ɰ~y~w{w~z~~{}~}}z~znj{z|ux~}}w|}{{~wt}v}stqrБz}cmqgxŸ{}vz~|~fxz{{ys|}s|~uvÊy{zʽԥ~|}}}}{̇n{{~|xft}Ćvvzwzv}||y}sr{~~xr}u~s|zzsԂ{t|oyw|wsy{{|uj|np~t|~r~y}͖v{y|||yxvzytxrzq~puvz|~s}}p}wxy~}ztu||xzu~wq|}zvy}w|~xyÏmz~||v{x~zyxz{{v{wx}~|{}rz~z}u}z|}~~oz|u~w|tnr|i{xz~{z~v|{s}|z~}|{~s~wyy{w~~x||||ksvd}}tovjmwxy{x}xy{z}{~y~|tzix~}y||xu{~~}xvymx}ts~hxr{xq}ix||~|jyzå|Ō~s~n}~|xy}~{ř}{zyÌqjxsÕ|zzҗ{z|ʅ~po|~x}uz{zŠ~~t~qxvwztoÔw|v~|}vs}v{|~qxwy|y}}zt}ptw}ii~tysy}{wv}q~s~|}ziwrzwx~||zd|xp|u{~|{|zps}kxpyx~{}}z~}}|}sysuz}{~sƛrwv|zķzrswʜ}טtw~{{p|}}ttsx}}y{}}zuŘś|~~Ď~wĉ||}ww~`y~u{mo~~xzr~h|vp~v}~{`~rs~gyw|}}x}z}{uy~ky}~zrux~zoy|~~{ypw|}|zgrz~uzxtxoŅ~z}|~xzz}}p~}m{iz~x}s{}}{z{v|}}sr||st}WyzȎ}wkvzcplz~vu}{w}{{vvqШzy|w}|~ywxe~um}~{vwv~lwwss}}|x~|stg||{o}}v~|z~u~~|}hu~}{{lx{zũuizzo~~jvzϦ{vx{~{zÒwq}j}zpl|q}|z}~{y~~u}zz|~r~o~~~|zoyzu}~fuz}xt{s㋈v|z{v}q}y{}ɧwlzkqoxƋ||n}tzvzp|n|}x}{~mx~y~sy|}z{pzm|{~w}{}}|v~}~}xy}sxq֕}~yƂvy{}~t{~{zv}v~~x}}|q}y}zzmʼnЍ~~uzx{}{†}qwzs~q}}~{}|~z}{sxly~}kys|~|y~}}wz{}sw~}{z`tjx{x}}wxipaoz}~~|pt}~}{uo|ntϾ҆~wyq}yz{}}~x~~v|ws~sy|{w~~}~ury||}zx|qu|{yy{x{y|z{o~|ysz{xz~z~}z}}z|{}}vxt{yao{{r|uZy{m~zywqzonx{~ri}utzzm}~vn異qw|vts{~z}~ʂw~|}|zl{||ttx}|z}v¤{vw}wzxz}z~}spv||sz~}xs}sy{u~s{}zz{ypq}q}rxqv~~~|u}{~~~}v}z~{w~}x|}{z}|-zw||~~{y8}j~}zxq}{~|wnԾ{wȠ}vyz~{z}~t|o|~pz|ʉܐy|~{vtzz{x|zy|s~}}}{t~}{y{l~{}}zfxw}ss{x{yvȋwm{Ǚu~z~o~t~pmt~{}z}›}x~~{||ykz~z{݋s||}{~~~~{}z~}t{}w~czrzwy}zv{zr~tklo|}v~}y}}{vt~}m~~w~}zloh~{Ϛ{|~|}|wyzjoˏ~o{w|vrh~{~Zddlv~~Ĉyď{||x~||{yz{xy~l~|qo|~}{{{~q|zp{}zzwztv}u}xz|}s~}yppuyxk}~xs{x}{ywzwßt~u||yy}|}}z}sxnspz}|x|v{w{vn~{||{~uȍx}ty}q}|rz}}|z}~y}}}s~~t}~w}~}~m|{|~{zs~Ø_yˇv~yzp|n}x~i~m|yy~zrzȂ|uw}yz̐ȓ|||jzxz{~Р|xy~|c~~~ywt}z{{~{{~t~}~txwxŒywvtm|y|©}~a|ے|’ƥr~sx}vc{||twsp~x|zp}{lz}{wor{yyu|{yuuww~yƊzr~yxv{}||v}~vw~x~΄~yy~ysx~|rwqt|~u{ksv{oc{wo{|{wv~hpy}}q}y{}|{ylx~ymgw{ykw}lyrwz~wzt}||rƋu|w~y{}zuf{~~}|~nj~~x~v~~xn|sp{~}ywr~zf{|u~}r{mq~w~~}|{~|z{sz|}yzyp}|pyf}{h~ry~~|ʫ~v~zwwsw|xvxxq{~xz~~yz~}{~t}~~|}~ny~~xvy~x{{y~u{zxwvyۑ{w|~{f}~|vzwy{t~~w|q}oho|zwnvzyz~r}~vĎm{u{yvxuvw|{qr~}xp~|~~x|vwtsq~y~o~v{v{qz}~ywz{x{w{~}z{s{~z}vvyˆqt}~~|{|}|~}~|xt~{|uy~}w|qvy}zs~}wz}z{||}~w{|}`{}~}~y~||oxwz{zxtxrŗ~{z|zr}~|tt}~}||vzz}x|sv~~w|}}~u}~|{x}~~|pl}y|x}|u~nvy~{}qwsu~zz}z~|ysyo|l|~zmwtpwzo{p{|{}~z}z}v~~{Փy|z{{{~u|w}{v~pz{~btǟy}~|zy{yzzw||vpž|w|xy{{u{|{tt~}}v~|p~wtvw|{y}~wu}{n}sk~yy~{}}֍z|{t|cw|~yk{˜ߗv|uuiwx}{|z~}~zv~t|py|}|~}xy|{{|~~||~o}{}~{~|~z|~z{}z~yq~~l}}xz}v~t}{z|{{|||w~y|~{~|}u||{}|}~z}vr|||}~{~r|u}zy}{|~~|{|{|z~|l~ģ}w{|x}~z}~}z~|yΘ}~{}{~~~~~|yjut~x~z|~zݕyy~}x~~{}{z{|y}w}tzx}xwp{~t~}~u|}s~}yv~}y~z{~}~z{tyu{|y~yx|~}|z~|{}~y|{z{{o|t}|~}{{{w}|v{{~w~|x||}}y~y}|}vz{{~~}~}zy}}~q{~yz}~u|}~~}{|~v~wy~~~{x}}|}}y}~{|v}y{{}z}sz~pw~uwx~~~}{~}{zv}z|{}wzu~}t|zxz}z{|zy~~|||{|t~wxz|x~|z~~wm{Ô}{{~{||}Ð{w{|vz}|~sxyzy~}}yqzzx}}|}{xw{}w}qyvv{pzy}{z}}~}}{}~}}z}r}z|p|s~|v{{uzx}}~z}~~|~wy{}v~{~}x{{~{w||~~|q~~{ruzÝ~z~}x|zt~{yywzwv~z{z{u}px~|}w}{}suwz}~zyp|ww{x|{~|y|vy}|xq|x}uzy~~y{ybr~tx`wzx~|tqxwsnxmx~|}~~yw{v~~x{}{x{̠vv~z}~~}~p~xz}xz~~y|~~||yz|~{u~|{}xqw}z|v}}}l~orx}|qozvxtyt}v}||}~}}}z~|~|uy~}~xze{|z}~~rzytz||~s}_}|y}hts~{y~z{|y~v{~}}~|||y~~}zx}~z|z~{x{~s}~wo}|}xw~}~~|~|zz}{p~xv{x}~}y~{~q~|}~v}|zptt}vzzzstvpqv|~y|~y}}qyyw{~sqyoxtkok|w|pr{tu{y}z~}uwpw{|~}w~|}{|y}}z|r}{y~y{|{u|}ozx}~~vn|{{yzo~wwwo~qiw}zw~}}zm}|xx|~rtvxqqixvvzxx}||~~xv{}vl~w|w~m}~w{~}zh{wuxu}~xz|~~|||u|x|x{v~~}}{~{vz~~|w|r~y~x|{t||rw~~z~x~}~}~{w~m~y~|z}xz|~z}{{}xxy~~z}wz~t~|~z’~~}zr~t~}ukpx|y{zz|z{{}}{zwy}|~}y|}}|{{vvzxzz||{zyuzww{|~y}t{utzywuy||xys|{~}{|}~x~~yx~x}y{~z~x}~y}t|~wy}~~~~|~|~{}}tz~x}yr}z|~|yvy{z~{wwxtx{{o|}wr|w{x}}t{{z~z~x~~|~~zv~yzz}y|}v~y|}y~|t}{}|yylw|{o}wz{uw|yx{}us}ux~{{}vz~~~|{v~~w{xvmu~vrtxrw~uxxpt~yh{vu|p~~oi~yw{x|{z~xxs|y}vu~|~y}w~~~z||}|}z~}|~p~vsv{|~zЕoх~s}}}|~z{㜑ȭyɞƗ}y~r{~w~|w{z|www}|y}|~~nlmwreo{pwg{n~ovpgf]voy|kc}}|vvtnz~zknknpqav`lzuurwsgo~xtzzryzpy{rzthUpsrtxotmxnz{vmz}}hmxwy|btmwscwykorqkvst{oezs}kskywk~kpxq[{vg_qfiosxqmil~rrfwtyj~chjmriolvjlbwn~|tkgozrp{u~uuz}~yv~|xy}~z~~{zxxm~~y~~~y~}~~~y{|~{}uz}}|~{{|}}~|w~zoyy~~}~u{zyz{~}}m~t~~|z{}y}|vv{v}wz~~}x||{{~rz}v{~y~~{{~}~xqq{}|tyymsz~||zrxzx{t`xzyx~k`ms~|rlykapnwzPt~tfxxuippxsvrrg~ueizxugkmxistwb}tdknwmutyukynyurVzV\o_bNsX6|thx^SaBGvM{YZYmY>drS|`TggPc]1T5h1K\lkrdDVr\NbFN]kDQRi]^&Wvy|]oB^r]lZieKX_iKND?~LpgYY~C\csiZ5frCi64<]s_\Slj8O!q6rokZqVXjhl]o\fzM|`Yq[cR[cMGM]XWVohIY]yci^`gYips?Lzrs_\Qggw88V^`qWoAHoapxmQ^~nbvFkLK[W[l[bglpP)c\wVnRGw[wr\O^WcqCTF|eiiYUfoTYcrkT_ncMdPuQQnH_Xd]dN{_bjSj~evweZTf__]j[S^XYH_Zr]dayksFv]uq\u~I\FbeK\SxDY@Q]VJqeccBTQeZbdUT[W{hHRIMhYcOD:II\|BBX2a[MW>Veei^\APg=_RsVucLHK[]Wr8aK]|iNmXCWElCBl_|>ZdkVQ\l`rsX_OMf;IW=lbumfSpGi][J^4^niRkfqM@ub\OQAeZ>HcE;}\\C3OkBcpXhcpxUS=C1ip7iBEpKi4HLCj{`?O}[hMQZ8Hq]|J6XVH\YOfVJ1]yShiY`CFqunX]Mc8kqddnZfowPcbdHK`3sDbdpOtLULKbWdc}vxUXB@^`[nso>]>ei8N[ZEV;KLVtk]Km9[`b[iNK`A\QKYhtPmZikoe`olPTctnqeYdjp|j_UHMpegPd~WBbrWMYrRE`skb8LbZetrRv=qHg[`o\lgWmmp}_m]XGuK\p]^bVhV_KD^oLQ[qp]_zucxa:_JmcgUm[h\]M{vcj.7QuWXjOgL\fdje>G^\E9qf4rULsmW`uDS|U`ZxMkpaEQNUaPrQCCW[OwdMPloKnYwmLvPIVd^I`M\0zhfQ{IeWoa[kNxI|D{`R5x`k\xwVT~8q\vZbfdlJmY^[ZFxuYKbz=jqmluzjomuOmolUfUrYRa{[Ruh\DZbegUVV^XXLqf]fJ?p_Ralh^lgPrSw^{l6SsTVatgoKHSi^{pkl\grx^p_^ln^taIzPrzpNwI?jd_hzpeRuVQivjVvUshN]Kp]kfUmntXg`eRVq}bV5wHLb\MZsbmkn`\tt]\R\iXV`LtzaH^_Il_lf^B_a>qtYUOGZ]`ZocSEUnRjX{jfWyX\^`rarJ[OEQ?8zwX~gdYERmim^aeSnlmRZSYR`Ocq^jZ]`cWQMO]9yjpt[YBk[VoiY^VVcT~Zwbd`Qx~9^ypzP[oZoZGpedelRlt]YqZkrtgEZCcDe\m^y_bXLuiTTb]MbDwjg`dqtySpIXI~s`nrSiakplkXkTO]D]n[iZoqjeIgm[tVdZmVYrOrd`WZgncc}XNQSQ{Xv}Sk[W\VZwvfam@Mb\aYQuCSdf@^So]gf\e`netqx^jyYvmae[yiBlU=]yk\SbURY`Xh6YFeeKR6L6hcN_CZXgb|_Tv`oVU_`BV\eaKVfS{mLWOXfR^d`gN@AYFN;PppiB^S[tV`w]]maLrulEsLYDX]OSpPhjY6QRU\N^Y\clSfQW`hf\{hVjadkaf`fahZUfoh`ra6bYu]oQx3A;hn`iHmiPqVidkzmLFqj_KeYg{iyj^?`pjSpZiZ`Ps^[EgeU}tj\tQaefYVzCbbdncTe{YhhqDEsqgubbVixqwU\n`WnjZUQ]nQEBX}\exDll_pROggbRibhjgO[dYfNZYob@lylW{imiP`jl{PjdMTefnGbFL\WtXI\QukZrDX]jf`Ype]zgMedYyYb|hvU\aEfvRxP|]]m{YNIT|P\:aQ_VqoLoY^GRXP]:|X[DKVbL\U^QjVfvpXfs|OiUraTzujtStbodpHXOwXl^\LYIYgl[jl=beWdcs-Wvx>PYhOlPkaWm6feSOLcRYvx]cM6bdoTYrcOmdvQed}Zc[|NgJSxpTcjkpfWQeTHogvrnWrKKGheWYFAXqwcamFh_ONiUNr[OMdcWii^TaN=CIXST8\]jTs`UHW_dW]amarBfX~]QhRDQcey^mbZxc]aiRzQgvKZ\geWnVe_Tlrv_uQgZ_UoMRPdWgI_cvkjxRnn^Rb=\g[jmR&\_s|3R\tI`o=VqW=TuftWC2MHslJ]dTg@mYIRmRu_joH`i]n\hifASNQO[jMZ|TgOI\;P_NqT=bM8Fbimn`]5ZR\STOwWvbE/Q}[LHYjpRcvpfG_X^rQORVpcc\hQ__mPhG_SnUtZFPKf[Ah6{DF\cj[WRVi5L}dc~^h\eQEq`:LhU=_rdDWVKjDwYEN\fWEH=OaYTWVbNXk_W[syWp_ijrcW|~?yr}`t^lJr~kcMd_[qBAg]eQoeqe\TUwJI~Zj]ke|v|Cpcl]q]J`sZPfvek@gNYWLvuzfSl{ae|NUs\Cut\NicoeSdb[}{seBxZkg{^lpzeEmfj[xlWb[~bmbQ`XUszk0v`~6`jcm]vgCKdP[JxzR{wpNv}U~_Ff_zim`gY^SASCZbttMgaEVngL\wak]qGPOhuSN[V6PkQTZbDLiaqc^;ScJCbmiqPljhWFYIM{V_Bn[^Njt\__HNE\B~Tn]`]bRk\vUVyydliXen]YYBRNZkcvcf|aZLaPc`sj|h[TsvZ`^g]J?gBfRWuhaKkeYoZGqnZOW@OrZRHvsR9vTn/]i\l9oSFRjG`dl?ojO>Bpgjl_\|T`WU_ZRA:=mePTul[E|}yn_9mokPtLRfOFtxYBbxQO_Z]ra[al}JQr`DjujdKnspZSp[T]JlP^ly[kdW`wKPIeT|a]verYIz^Xpoi9gOvec[l0i]vo\63ON>e[K_nV`Rn^tYihqVFM@4kWHcaqpCH-j``XmaZFhO}\aleo]NlqrkGP[|Qa9D?aDeL?>BghN]R~MdYveY]bCcn}_}Glx?gRYX[\bwsl[|jmP\TCIeM\QK^\_dN|GMRRLjbgcVdwygQ\dJBzJdYoLTLUysRgrQO_hYWh_XxajgcQkkoEcQmeVe^pV`mZXn`]MmZuyka~|]cmVpYnZnvUGXZF\]eKZpWveapplhhyzTUmXk\gyXLlar^qrX5^j^cbrZ^]ZzWsf_zMTlKZMunu[om[[LB^]T[eVbN\ChZi]bJsyt[TLvWXCItC_P]X_Qnd]IhecaVqkZ]]@anfH??`CBglSf}jFUtF`kjUwiDQ-r_G^lPpx\~gIl:IkRKeAnwFNQgPfb5Hab[fRceRyVS/Y`X`Hs^afsdVsZ{VZ[^eWXsMcjj\]]eSkS`/gVcED]ZztiW`U]x\qila_\PcT{tyjvTfcuuFuTSNIosMYMTocCcXkPW`hf\VRrVU^WC\_\ffbZs\WtheCOb`\_HNkOQa`WpIlKg^~@Cnguo]`6Cqtek{zgPjmqUUeUCjTmT_E[S[QI\bAmZcLlfvUWrZngUVGWne\_GT^He`Gfb^e5iN`6ZiceZqQNeew`fUufjrOd_kWgH\Wx_``VXMJYr\KTQ8WOtPRw_b^anL=Kr^qigHed<^m]{K}jIZWT\jTidndRa~ng_YuQZq^M^cisJg_\LzxLNdUbS[KZwngOMf|UaIW\{cBVbTI\vVvPR{mXh`e_YHMGL`W\tLVCrXin]J`DJamWSgnelWSn[R`IZWlc{ogYjig\uVbaV`hzxRaRZ[^avo}bUDVmYntBXTVrOU[>I`I~rrgSm]ZejPUSXwGUzKbxo`o]piitZKk^tffOfm4ved[8X^ikkCl`Y]GkOr[itSXXhf\dliZR\YOw\_H|Z\XZjR]VWR|dcYWO\aS2Rh^RV`kTgQsf]`rhORil@`_BOkSkm\Mk\Qx^n3SHVWdfdtEEda`KiLKTg\KfLRP^UNqzifOeZu&bHW~`fSN^c{ey`skg`}Lwl1fWjm\^XVfF6ZBboS~lwtj<_;_ANiCtZDVpZWHVvccbKRcxVVZYq{Vvhz:hsrTeeqKPXqSJeQNI_DaMRdoVop|jp\tIGNkTllnIBjPLYYVm]IatsXyiBidhOZx\RZgjVENjLhbkwWXqRp[X]SX]b^SjIkh_dcULPPI\jicLu`h`RHY[bM`ZTS>]iZlTkMxHh[nYL|Znj\qDxcSN[c\]zlQmb]eHuB3h_MS^h`MGihRCbNrVPkzkjQT[VqdIZWXS[uo`dVKb}M^aZYgQQUalpOBdbTU[bS_aTOoZwvrLYYhwbmmdWaV[L_QYQifePdia^k\RZmJo`HFnbzIgdEsiU`>UnijK}XWZhkZKWJMU\\V`hQ``eTefo_XoeiY\@zN]A^BibdNXaaN\gSWdYiFWp~jR2O\bc@2WEQabMiSQPgFQbciV{ySWTr`QhBlOMOO_`rEZ?IP_jLF]MCYAPR*LRuyqQ[c]hrbO`YZ]_N^[mQl_GSEpdRe\[qeXX\KTjkAx?_h]bJNR]Gad_eel`PEPvJ@fOjisr]_ZOS;VnsKU]\}oQOdW^9cX[VdjfqS`tBQxPiNKdVZaT[kxLeRnFbe[aRvurkQktmJNuUV~gKL[YPSkeb`]Qj]HlgPGEG{p\cbMOJw?cr]-MZ`}N_h\oEk`t-M]vHNf[mosUanAlABtBs]Y}HWX|UrNBV`tfR]P__imPF]tmVnsjlm^fbVHVI\^MmakQ`Qqn\ua\h^Ym`iQg}h{VbZETyhMzbMkVEa\bh]|qMo~OKirztZib_n^TqO_dTT`a^lOn\YgPA`b`pKDrjvvfuhYXtxoTtpgcV\\aklf%AhwEskSn`bfsQvX\XJjWthfisaOsdsonPC{sVFluPZU@ROWtXfM\ronP]?GceGZRnZBQ\wpA]XlVAPffe0XVwTQzaPyySl[fjXgZT|p]`F^yVF1VNKitGbFvPpawX;gDJTSgswIWegZutnQfmx>FglpZIdcu`dnm\XbKkj_I_OYaeGhg<`w`}XE7TT\idZPTfWeelq~Obgr]GhshvayJdSbQq=khRUdn{yqfVum^L\rCiuD\R^i[T_m7MDYlyclYhQlIRVa^bUfRq:Q_TzBhonNZg[b]4b\wh[kgRVT[inqncMIds>`CEKb_qqb[K@pfCRem[^_UTJgV?nqd\Cj\gWzK^ofhbeR^XrWkpj[X\O_^8SmJ}RcLLOmmZg[yTMTT[VWCvol\V@~l\Kek5ouZbhw\\kA^cf]T]|MhZnuWdOfCStWcX]t^W^@UQ;4TWRVx|[L{S?dlhMn|ETsUZ[[u~rV[MYJGYc[gi?iaRu]]dXvu]_JoSUZGly>=ToLpo\kM\{G`LVLb2bY^fa@GcTpchSRbKbuUSFS[_lNGZGOpFtgPdUk~yg]KPscUoLTZim_O|sNqWnhFoVOKPZoK[jkM5M8glpg_x`]OKJScvOMZJZS|t]DrcqL}ENg}dVlR6zgH^Z\tqPqinVOmapeTWjlycua`aBYuXLIR`E7\_XMZ`m}WiEzI^VjPbZh[eiBf9X|chZf`iRzsiewkVVQfmb\qdpkoVJISUd\VvBMpJm[`[Sis5qtW]piDSo`UU<`]jjFYN~iZNB@\O_NRof]a`wYPbeWT[YliWWjeI?[evUWyRUb}PkWmzax^oX^i{j_wmxCKc\tb[|Jh`gmrzb_^Rew]YR\PmY^ooSmmX[b\gopuRYztkhkY~HpMwMjJhd9XrVxroJPRS^qQPWYA_pdiOn^=cO_\Sc~aS\sbaXX`jhevyed^YdSk_[zMKonoeicS`SYE]nzcpmi[^J`lQUo^Tfm]GYZJbrjkVWmhA^AudfqQ[QRL}gURpkPR|z]?][`_qOilgm6dXvtUUKWXV>RorXfdgk\l|mhaV}hl=>OEyWzi?]m`vi`A\cV[abwxAdoM_Nqbci[S{yiJXlb`U]G`KFJDYmZQgT}U]bK:ic~a|]CZKHmYRkzn`i]=Wwdv[K=Ccn^DwQc\cYlUN}m`R\uwLSESPY@cZXkK~jfeld`[XDQIHI|dWbWLiZMppgQyV?mwoc_hPfQhPEH;|`k\hO]hWcP}yd:mxaOa`fNShqaMRlYXTKTWSA}]JlSmvce_[r^]cbGTaVM[S[K7eapZ]vztqidsakahjr[QYoi\gKxwE9K_X`TAr^quWoKYX~[YlMS^W^}ifXoi_^xxBv|[_MVpQ^YWMYp}wxZS]kUe}Y[\|m5^fbQPvdFZUblIuQhw^U`I^yoeir[RmlbdFqmlb\{kBYSkEDXrQNdhzcc_TdkXmZRll{fKHX^f^YkUieG[mSSj|@`TS`PbJ][Vt[^IhYcecKuwybEOg_YOb[kljz[cHIYcsDepc^cZWecP\G`^}}hc}m`SoH\ZciJRUbOM_]kjcZ9V-NWHDlbVub_fUVrNXdhyy8Yy\]n_N`YEZn\tQOfXHHobo [T9x]b_WhJpJ[MfKm^qgxZBJ[mz97E>nocS=onOVxoMUZ[Xw}effVrXNPg]aBGwgMJT9]sjUb^eJaG>JffoXZLfwc=ldda_dXmNfQYEsecu^KlYNU`O:ad\`_{^YLcNuxU`RcNXVkphMRTf_ImP_RaKJcuMMLf^aifoSljfUyHnSVgSZpkSLOmi{TeRP{FRlYGbb`hRbeaFXUZgGXs_Y*TJhacX[jTDViiFeQG]sPpYZaCVagE}IjKCsMca`d[esdc`fHLKP^Z{gPAzqgIldXKF`teMLYbVIdv`s?XhgcbnYhmeR[T[oGWPMlhNf=|Y\iL^PHrzIe}fOrdZNdZYm`Y}|{bWeh^LH|vNva\TY]wHdVjoPxrZ_PjjEPDbMWYlIQOia\e_>d_\NNoc\}mnoUalPT`}ZJe\\NkXRWfwHrR|xICo^WYTp_qsSSq\`ZuTeohIX}Q\[Y]=wQlA`|ZjzGckNkTmwhkQn{XJd]_ZNV[ONvih/Rjz^Njzt[Zf`irhf]akiMf?|wRVbQ_ljk{@cdt\F{^|caGePi}lUnWndcSr_cq_ohvOXRyuxSZZ`^[USLa]bV^}XrTYOj~fvXglT]RU`JCGLKGH-jefPlfgqGJkXNaM]eYuQfIWzvgdWJZ{ph|~QgcEtauRWsw@L_g`SUDMyb\@z_nW_bYRS];7oh6OvdDOsofXcdG|q-\UmPZpWNQ]]>u_UO5siJUMYKZM\vodbua@cY\[vOTli;xYkZ7jXQdPIeP`V=QC~P`c5OZo~Py\^plKc\XvCS?zN]dbpHPa[LiqY|7sNeDnExfOZ(bs[=XeUpbY8\{hq8weS;Wtf~7lNdWN_SBQ|uiXjPXt?>Aj`eLd{uTgO]~YPSn_[]A\qcfmfeLtl^cpfjMSMT\M~4l]Lc[HgyvpeLOMJcnBjcjJykJlKvcGVBdWqza^khcSu_VO|2WsdSyHfR[JqWp\UXMYV0tp:Z_UB^PYQ\wdUhH[c`YIFEpi\oYaMRO~WkU\c;OoKJMXasrS`dgYIWOCyZvlQkZ\ZVikL[Z`[ORy>^`OiRhEZgg}KWg^gnMfG@cyhL\S`kjdQjz`Dd^N|VDTi^d^Cb^mUj?gLYCPGcAY^u_KEY8Z=Olb^fz0vA\IeDa7aZaZEPoxRQnenSIae{YOeJZz{kjeSPPUbeIrYr]O]R{ZfRYlXq:DWsdhZWecTE}SWtTkXVUP[EFjDHkg=~TCVgg]UNtoj_`ISy_CawYHWOb[`@|kdSqnPyLx\XQfc`SMolXoTlc`zt[ecozvrL^STZ^uxSCVzTc?YYs=objP\WvQ]Va~hhQjeMa_AjWa]kpUgSLpR\\C|er_SISjU\^VWN^var]cYgqqgISNRYoPr_HX5aTfJriJpdVhWnhfbcuRbfahoq[_kXVxVz_ih[YO}|iiqYfEL[lb[hVovaaoZk_^_sVu]ElzPfihqjhnsk|chYdElq^_luPiTY}ZaSWRtfmdfcSshgiWZsLhEiV^eoaQjfm\mbjIf|\Ybpdr|]XIYpYbntu^e[`woCe|nk^WKhZlkwvYUdYxZ^QZl`\^HZfobNuQWpi`[UaGcKaUr^gLceT^GshdnRYLuerSLcmjQbGs\theplXec=WoDvVQwaWyEP5Zg\RJOt{q9_qMvn\fH\3W_gPt~W_mqa>S~NIhrk_{oQ]eZPdlUd`Sz4lYLV4bDT^er4mr]VTtXdlIRZgLzrfK:YYQYPJCeAblrdbL@qrSXspdxdRkYucydae8RKb]ZTokaq}TYj~djQFxqiXNbV;aROWbSh{7GD~h]iM.kZSOmJUONcMPS-uqN]]YQ:^^c|\T?hDRP`[Sl[@FHjH:tXP[xadVN}[\jSw_Lb7KdNHrgiV]kXKNHTkYVdHa}`h?csOcMph/nK^y9wLXaaDEGWKYYaYPHK}[_jNcZnD^H}^9SgOOuhM~^PTS[PVDCJSltqQ}NISUqrV]\jVnPJ0NRrsYY\=Z&W9xlhi`hLUu_cziUa^eo]Pg@kVmOAL[dR?JIyLRkZhdEk||tU@eYqf`da[;iUsGd9_JnXNkWglL]dDYu}PNUWoueh{TNUGFgc^]\^{GaWNCD^fSWs^XoxNO^WeT\xHZpJ[g\fpTv[Uebk5gMZK`oRjh`ceInRMW^bmKywa^WW]ijN`Es|IVp`ea\piThNX;yjO\a]SW`WgWx_XJ\eMfrYxAx^YfItRZyO]W[i~wJ[yZXuThXhV`{[Ur6\YRXWng`_I_YrfhY4fhiJiV^q\yibcXfI{STd3DxZP`YjAnhnNVRlRzWVN]}gVcwLiuZbilIplEj\`bjmVQiZ]zJeYdPfRcaX[Thu_fnq|mRVP`kH\UbccZ[IHNuhk}TF?M^;IauNEBziWrXc9[kZR_wUUpx{t;eiROh{`_nV}WjiniuSm]AeVezFvB\fi{OLmeX[Q]IYj{[L[w/@eMJZs]XQgcad\oJ-]Va]Gw_r]sg}bifQgeKZGfxgN[[m`}Nq\r`[{EEQP[`^|o{b`XH`m\{|xERtGDS]NYRWKaswHEbTNkbxi]H`ba[ojAQ_YmA]oOgLIc:drtKDrc6YV_qXmnPc^G[K]YESQZj|oUaedlLdiJlXFe?i_CS[cgxYwp\dRZGQoOYR`TfjYi3W]mnoqyK{R^W^_ZQag\c3mVH^qMR;R^m-~nHmSWslXEPQCkcb^k\$nZmafPT`kimaaMd@dq]blSXUvbaM][iSEYkFWFQbggIrvFPRcOwMQJ[PX`fvt2PEBHmo>/NZnkpnV_SphWclqO`\Q[X]Icl\LYiin[{Vbor^s`ZkqbbkhK9?hdhVooL?zT{JVLcul{]N~Hn][jWkOa}3UpGc[cDYeEsMlH}LX:\WF@}cvt}[>JJnOcrzfZYt2aSzhL\l\9e\dokrLJ?XRkYrKTZNbkYq_c`PaqqZKT_wfFR^SLOoe_OY{aTx~HmH?f\spBTdoI8hGf{Yb]}cVUk^VVC^OUapZkSR{^YY}akY|PY_gG]rme:`bKYg`|pPAQnfhjH[TK^wdTiT~{Gfd>g}kNkBteYMdV}YbjmGfdWEZTVtvtln[;ME\YG^dnrk^I`>@kVcTz`qtpbmundTMaqa^X`RvW[P=JpXhaixmGm{ZCV_pdgkLcdEoe`K|CeF%CmPiW`uPeMIii{wjpjW=VS^}6[dlRJhUkkdHO_hx^yoZO`_wlV{MwxgndXKKfJBU0bidcH`rm^Mc?d[AY{iLd:ZddVQi|.TuY^ebVsKP]WKgYrW9c6I]zI\X_-KCM>bVorxafx9jT4kcOil@lbfaLcDDn{dgMGbQW[ploJHBIWdiVUOxegZVcXFJLaxocK[nwPeZSYwkVsVV`xKNNJCjTVmlaNZqZpDgc`iVB]TJu{|Q^^EYPUU_nNBx_J\c~_ԆraW>LW`iB|U]eR[xRW`dRoTeXWI\TLbLvZIZcTV{jIZdp:y?{;Tl\WQrItmw\WfZWbs0\Aw`jSddHrx[lMxiO_mnJ>L@prYw|YnCAhX_WOLqEtPolEiWkRfjn_XoxeUtcTP`aK`j?TKzxhGzudwo7m{]TYfVAPpbj)UhyS0jWFabCeMQ0`Tjlsdw`SXU>gNlaVa.XeV;=y_EYStVcOoeC\WipacPggvmsx?awcxoSX{eu^y\cq9fdf]L}IjZGOa~iUQQVZ9Y`n[i^g\FMW`G`RPX\[e~G\ZDb_Taj^|]bOWTQahHb^hr[8z]MhkQ^oyyWKc\icC`n{_]EK;q^oVFfYR;u[sRz2Fc{_p[`eJMfOXkBqHScHgi}HirWLnXGPSbh:chO^e[:eWXkWuOgovp[khIU^Ij\^mk2iPSHUpWKehpg\bVPgPSlIIg`VgTZHexbq[Y~6maVibhUxkWRSh\OTcgqi=tnOoj_`BW^ohaiwH`xM}xTAuUe^BcYf*mkyfRhmopiaPcvV4\Mf}SZYJ PyLcYvUXzb?dh[RKgmea\aSlg_``Y\uf``nKKFmpnBQZiI^kTmG:hwdiUbGm\\sY~ExTUdGk}ZdTtyDtrZNrlMG[pqcTZ^zeXb^A*e[m[wVL`ehPtqyUL^SwdYNNC[e`ujqReEqa=iJ]bgbkvRL^YKl_[`pTmyak>@)EfVMcb\NRLrvaW_jV[{koF9\FQ^Y_VUhg\Np~VVcicXGZslIlnvZvnU_Qc}ZyiNikpjhUYYLaUW=fs]QWiw~kqrEWsJrHxNpiGT{wqsH{ozbmFOXikko_TqShxtPkLnW]WcOfr_pFUm]kGjQfAJeZzYjadiNZh\Xw{oiZ_hZpd_W^v|whOuQ\Gwkbegcjiakfg_{g[Ubgn4ZRQY9wxWD6T[`QVazZjHlQSm\ZUh:PTxfjPGf|dw@f0HK]fpĞSMdDR~gc_kjaFF?jo<`QnQ0VO6HbmXw{RiSZtj{wl>tMkRWK]PZtl;lZtGULU\f`aea?uq?jhwcWjkHgo2Y\R]UY#]}&E)Uv,XVbU^pXZfO_bZdmdar8N}_itWEs8dSWgWHhdeMMkZ[u{PvB{XPglDxLOa\QUrbzi`rjehGJCcQT]aNdDcbXA_rAAImp`W8Eu[Rt_Tatpf^y_XOYf;rsUqRK>Z{w_Wlxqc^{iU]p\lcLaVGyphiZURzWQHbatWkbNhUbyLr`ciTRTYfGdQpC_peaLLlM8_CnJG^FMGfdO}F}aa_g_q\`et]s]AZ\x>fwmbdrTjdfs_vjcbYy^\NLf_H^lVSmPdNh`]ZYWn~{Cqaq>C^ZIY{oZndJWjSlnRa]j7VI^hIgs9tRqOSeDpfeYei^bpFDmL_RS]D^K^]lQXsTNQc]Zb`E{{iVqKfk_hpXWYsDeUDmmPU_xfcZeoebiUKVei?[eqfb]ypqQ\`VONTe[J^ojjxgDE@skynhqqTY]COhZ[YrkzasfP]XYz&t\x_ULXpVjj\me`gPp[``SWY?gg_`p]YSi[a\h]KOVcC`dG\`VLOhZ[QMpYSORZZPe^rtQXOc\qwdThYztyoKeVSgalXqYe_NWG\Ua_qJKwtt_POkY0L8Iy^oUN\EH^CohRqRfq{SoJD8fdm[}DvSPA7OVCSwv}LvdQXCKPoPN^BRxNVxOcaJbMiaF`x{RzZx]VYRWdU\EqP`XZwX[alEogO;]ZgFW_peg`HVJJ]YkbmqlVd_Tk@`QYag[LEmk[Qmojm[=hOMTXh[ZPZcVjOgL[[`hNhYb\de]I;nl(yVJORQ\ZUUGke^mo3VvVB|thcPaXoTTXV`o^vRo{iH[gLRm[7oMU^uPY[MjaWhwj;tkaZ{abtVq[YhbhCwwNttgfOcPe[JdUX]bV]`Xjske[NA\(WtEUfec1?gVm^>dbpTYRz{SozdUpHR>`badgPMX~P9ekL{niv[HqsJjm\zkuR\gjYyxkVOcXj<1ZSLeUzXW|ebfgC>Zut`RxE@GbYrGZq[`IWbuSIaNfvc]HTU[x@mIYZ|jPThETWXMbbNKNxIMUSemqWl}9[bORIo8P[fibKZPvaRjRXg|E\hduXFjRNeWol^VXb|EKskgUZDf]jtLUG;eqTUyaNURY5du_imvk^mPkSBf^lPb}yiqfm`{ekXulVQU^^mZMkVesmPed[mSYkQlsPd^ogwKEg|Y[dGgskcaUxra]UHrfcN>?buM\ZZiV\FnrehT{lYsgVX>XQSqOT8rgb~HPIZrQchaOF_{}aipc_YLH[`dm`3\/kklT\`{WNQRnZlHLZXbUeApUbx^EZjDQhHe]KkHURQ_MlQpvjR^2sd][k;yrQiOod]HN>\cqcZ\e\N^pL~chot>MddkakM[gNR{chWTiNyvZXUMr[_KF_gS]Jeue|idaL|j\ig\A^QhkeVTodgwa:;cbge~PJSJ{[[`auie]SIxeMTVDG_\^`oMmjXEdKvBhnzW^nn[qNn|aU`oIQPWVYsMZgcbThXz^Sfw_qTxtVg}cuPDzaa_acPmvaOLL^dZSSQhf]vioL[SkUoHy4^xJDWImQjVCl`mddz|pTICxjP^IoeZo_a_iNLcPHteYnhQWMaFvRjVu`on\jfs`^shVd^jNs_ZU_TKgiMOm@U5Obm}[UEIVURIyWV4tHO{uhcaVoX]DN[idDcxX{n_HbI\|`gRHp_6hnCZ{?fBne~dEWc}V5nAx\mcUzB=V`FWnsvGS[Vihi[yZSRX`AZ;rQGaGdduGlkgqfaHha^YL[hjeGt`MSkQYjlJI<{_[eus][N^{d~MrxnnbOA^\L~lmSLao:jm{iSi_n?^:`qXXHpT-XkPWdJOsKeHUN<{gneL\Vnl\cTyRXbKkgywAZXbb]zyDkpeiSnZ\YRtYhKRkWrjY{|CljfWwedmgg_CsWPhq}oM_ajMhY^nbaOjeydYR^[qhnvjzrf^^_RPtokokb|V}dkrfPkhoZNNXq\fno^W{cy}[YVOBQewc\Q\gQNcfz8i]9Qt^|BOhaUF\omepmaJdn^V^e>[bZpVBYt[a]c{eo|cgwkiXoreZrNogXuss|dWPa|fooa[e`yZeAXUORia_b^tRoaU[]RZV|MGDZbOOY[nZ~_]dlrSoUj]`nPbQJ]MlGY7bYhA`e*rQ^QU]j]]J^^XgPc_[m`][\cYJKbTQk_[\pm1oOfqmrG\wGEsQb}l[>mKjbelCamJi^kUYH}yx`leDA\gqLf|[IRoDEswIZQUN[[IpVncKu\QO[cv]ZuwoPQnQYMiWTmUwdxVYO_z\p|d`zWl:edDXsTV[LRHaoai[Uwk_PT|m]bUVZk|[Fi\SMd_jM}uKdNbmXOXNPb\aN``bZPXTMfWvkXafK__TcwiJaaIhl|waRPigcR5PPj^YOdHmbY_I\V?hTKeOqkUZWWiSd<^9onRdRg^t^UJ7p?W>/T[bYjjIcDjLHcZ]pgwQv]iYsf`Wa_h]z\[jXXl|K6usBJyZW\]SHZ\SYjjGttl]IYb]eX_RXRhpl]]oU\cDzVZhia{MTMqZjVRqppjgi^]Q`U`XcYWqKguTdmXvzbfnuXOZXYS\Q\O[wqmb`ZW\][em|]UV]`qjbJ\_`^]e]`[nsS_`pOU^GmeZVe`Ucg_eahs[bW5E~g[XjDmjjj_Za\bqRbsJ]asYQger]DrX]kQup\dNcqp_ZSkSo\~TjCqp_d`FD@MXx}|6elOkYP]f|Rm`CaZ6MPYZhT_L}X6dkdnRsdkAOWcZN_rjvZ~hhrO@LKhMC^pbY\IQ/7XulXen%I}HYOuXuZqoW]xiyxjYUpKg\=~\OVLooFfsNUJxOfi*XiZpVjIQZJlku^9xQ^fRJt|[i`fUbZa]R:plsqK\gk]|bVIuUEUhXU[[tf|nTHgRkn}jtoLqWUiBwj\kHdIW\]ocKTaCm}v]Ix}:OMbQWqbEmB\go__hFRodC^fF^UOGuUSeY\Y_^bIfOA`]X_X`[Pvr;jN}>Wl[flJobMmBXbHQpmagfdB`QqLzSrjLiVv{JcGUTQiDa^MzhX^gX]Yf@}hC|REIZmdFukA[Q=BrfF]nTh];[4vsCSPEuwuEBcmyNTElKn:t_zxS.nReUTfo]s>@WVZVnY|{d\QUW^dUYmgXcefTKRZFRK_Th[aJ`WMVbcXZOabpCjdTfXm\{m~QpOd!\HQUgSci;dcwlP]p^pTxMZhoYOTyDXc\iafY{n_oav[KYpRnx}`h_gN^hCG^`^^Fbb`AMNfXRllb_]eNDSfj{q{^dux5qAqF_r,q^hD@eR\TLnYNS[^f\EfxSN]aBePm_n:SX_dHbm]YJMOt_\cVaKZOiew\Vmuas?hbQ]SLfN}pVi|QpDaSJdxWcucwXXdif`SQxPXShP}WGQh[glaT_bVTSmz`aaKIhGiJroehMh_gUeVJJ@{[Zv|Qgp~>iQEQJz]V[w^[PG`X_bIcdc=YrTbSgk]\Viib]ekU`dNXHp]mfxYFUjobIWScNdU]_\M}Zw]yfycaFGaygQ]Y`eNkt][Nilmhx~_QbchR\[mKTWNbTL^hiZ]iO{WcbTayg\J\fQziqtUVOOhNJkV[bwL`fEXUoXRfeVb[YWQg5\OfsCk[]AjuzacvKLnYafA^M]UMDW`t`h@WdVeSQcY\W`^zxZcipbheTlQ|yMmdvrZ]Ew^d{bCujOZHJ`KgTMdUCUN4TbzUlOHYiS`YZYreZ~eY_iNw^piHv]]FgcO{]li}PSjt{`HhvrSrsmsMl_TUje\VdW`HOOjN@Pr>J1ay`19pil]gjabODYJS\NULadd[wQTdumj\}mgYx9b`VhWac_IoakK8msPpJifXy6v@^TZOsiNkZedhnf\gxKhhhskgNSivbtjXiigfxUnneRnvY{qqWIm[V\[|[^VP\aZ^s[zxRSH`QaXi_j5ZQsg\eNcdk[rjoYYyiifKmK[Ug-PPUR[_v\gY_YmZaE?YdkSPjt9h\yZiWNcN][LlljLjGH^\Ya`]_g7S_TGX@pdSgbRkNgYok^{SXGee^MTw{Ka~mHWkGgOZU|UYjhNYLQNapNUq&_U[:XRjT>jK[}cRxm\cJ`MC__ddlWcYYu[xhGUcBdhqjVrhmRZOLGZLknwsjqRfZlZ_VPWLnPECOfrOpTtlwcKaNn^P^p@`rSf[;M`P{fV]ZcVi~dqYaOdZnnFlx`m\kAWnTOaStoiTKj_OLPH,lTcv}UejxKcujrPmQZPf`MGFmkLvwxWPsKgXjq?WrrSMNTjTPocjlBZf[HYIfbOjHSOT_`CUgxoXM\}bKPmWYX`T\bnc5gT^mJju}gbUYEfk{QRp>ooWG{dYArkoySrMgkh__gK@ed|j`^Zq^QnItn9[n@mYRjbVjz~GGXb^eaKkxef}zJzxOuk\siZ^`fWsSKUif]Z~]b@cRJN\hVZJPJ[eFb?Qmncv[N}OoUQ~xPRZdZsTjmOPUlUSCpMor^c[ZOmuzPtv^cskhm]~RZalYetdfUXeQQqSktfrcY^aID__cY=WsbRUA]hUQT^QlAXJQpls|e`VG1i\gbfJd1NPvsLzKY_{a_SbUhYUZeXZP_YfuMw[lMthZMatFY^ZkjRWMaYs]c\D9jkXehrhOM_wWi|MilSqP[Uu`VIpoh6{afysqc[SbeXeQH&Uml~K^jgYcHcV[SUUy_Kad?`LeaXfWgNdoZnmC^^hfkTJU^RW[XOSddjp\r[m_jh[lfQSsjpHUZ[fvd^_^GW]KOS}qcpMYkW]nb`UrdNQk^]hekYRPN`LRP`RZ>Ofag_{rG|SZ[IMnm\}OhUfQMcft_}vJSuk`XdbVUiTp\SOyl\DvT3k`ggIyfen[{RriH]pvy_`Yb[bgN\`TsV~bUWnmWKjPh>LKwpbHYdm[JSRnZ\vkB{wf;[hZafvmi_Y^hnp9Ht}WA@K\g_iULbYsYaTxq`]OC[I}WYRyKo[MHomfVkzY[WeZ_JFfJno]A[tihqajWXYlnZC\X[^l^q}c>i`b'Y^aplS^jlmjS<_rf|ZM_Z/{OUvgkdlh9K}`kEVaJVppOYt`Shd5YSdWirR\jeS_B?iiEv~VwMrQyUsWhD~\W|{~XdKr[J`LeYe_mDuR{l~NjfWYJBXqQYqdJeMPAtpYFZsfhcgPR`^ZVYqsOhJIGWVfY[B~qm\feQIPzf\gdQLnXJxlXs:UAKPrpOYd_CYUEcQL:Xxaq\}>bXTZXWct}XNgzZ;rMwoGbCsgcY:JQlyGOVMPvKSOVXsknZ[GaSN`[]nPbYc\l`v{[e^x\Z@TonjRQ`Z^QUg}xePN`|mhZL^mcJnelZX?aYNX`egxSLSR~XjWWYZPTDYNn8CSQijJr`cpj`wFPg\]]Wf}CyJXpOU{J_]kjUbqd]cdIT^[a[YUjFtunYYJe>=iIOaspmUumuXoXwDbHII;_}dTLx[Hr}aZSZb1CeXEPXD\PhcZtb^`QsfWT\hPXadMbVOXWh^\jWTn[YgHdA`ldN^xn\Ra\8KSyKIOnrZwdbhWd8KScTmw]VUC_ghdtsJpWJN\IPCVmyVUVXk]hadXSB\DBGmnfbBboRg~\ArrUXxkGYOe\Hc^VbtjUQ^rG;^hY/Wlp|v]PTfVhe`PSruI\tYniTXPtLXbbYNrBgvsOSm^^iai>zTI{_KJjcGcqza__\b`kPXgrIdd|NNzGd[]jxpfC^jw[^`R848Qa{_L^+WBWd|29H}^peNQbdRPoV\MTSdRdY_]GrnaSZPMP~;^V@ihrKSEWM:_xtje]^UvS_VCWNEOtiX\eqTV`}]^_XI]mC]+iiMzhKWcZLsENWZ6YHORECSssgpZuA`[SlfMqhNVJq\KdUKbgmVeyR^tYBpa^gRRi{UdhlZ`m`SzRYNR{ZDihcbt=ZygCiKKeWoME`SXMsmMmffQhNWhe_wxZTcyUyS]nhPVUO^8jYsg^US`vkqaqSAukebkzqQMS]hfuaPZkggp{bNq`\WPP`my\)PiJXxac_`RU_XOb`pQsVe>aF^nte8OXZ^^acSS_k@YUjlMDPjiXb\mslWLMIaakJTuSKgg@iQYe4TLcMpOnG@s{u^nsqlg`n_RiQyca]`pejDS\4]\Q[`@f`_XkzaLyPc]av]fe`yYeZRHxrgibnYbaqtQcc[fPX[Mo_HSGKzozPrdtRk}XWARphJthxPotalM_mY[qk[ya{5ZTXgeYYIaayc\T|pHYyUs\mMczp?sLSyaOvjfJcQQlSi^fJE`\csbcqrspnCjKTxaVrd^dYCwYrD[]wWw_jVQtqOS\]kr^`bn]U^cf^OTWlSYuSRRlUPtRRVQFdbT[j^]G\ihjsRbd[dJ`]cYrsXXs_U^SpijdOX]]m}}J]`ZJTVlYT]hH`\`^\RsRTCm^MMMw[Swi`_regRglZZ\m{[RPX[oz]CpvUX`Gax`jXR|oZe]QcSG[ZNy{HjFDDdW]cyaJdvWTqdmH\zQ9tZj]7hZw9VrkIQxv9HLN;fwMdg,G;cPb[O_ePSAZWi]VYM`hSjdNkxW^Ui[ZzP^]yUebUYBmm>]^dY\Mi@Sna`UOg`itGXG9eb`GdBEnWF9V~8rlnRQAEemNQnc]iDqgk4mZuEZPCY@[Ul\OuR6gEdZT=r_|IDmBopX~l|~OPf}\eUAdb`tYfu[UU|H{ZfaUuuXgs6wzfbfvRrKnQz}X|?#Z`>uq8eoes`vHk]_^edkHI[nbn{gUBGuaUyezRkWrqt^@[DwTTLiVOG`ogXpk@}cQ`lAvjpSba|ApZU])7gSWbSNfULyLmkQWt\Fx1^bnlvVavT\loo_jlftZka\kBmT{`UNJhOmhdVcp]Ysq6SqKuWzrMK^fn^N{bg`aldc4mNbFJU^b`[uGC]4L5M]djcDZ^TPSjp[IiV@>kaTXka2jjq_]l;UWDzvRYWY]^[El`sTOiyZBOZWg^a=PfHQM^`E?MIWUrfbU]HJ[en^KgH[GWa0oHXUSe]SbUOGM9YJVXPjT(jOSKXSKIohjp8pPSXHYsYCj^KdRhfx[RSKla]TfLi5dJ^jQewMnrMqIah8I]X@NBbP~cKHH7hMHqvUjev[_NkRYKBhPWHn\TXRwsWii]k{OMmDZ]r[HfVNYBZmMbq^NI[[YtRaj~hSQ\eti]@Z\Y7>WdCcUqx[kg`JZ]_eaxc]U[ck~;vaU^t9fTZbjv7\fOaQUZclXxaelUrfRb]]`SlnniR\gaW\]Q^}?gViqaRdBPe]deDVshdkQuyxJWcGRpmMGRmhSkYeyXHkH.BnjsOn{{aNe`\qRZZQg\kgqjd\`[LX_J#[PdYa~C}z\HxZnPb\`UTYq_KpLk[HihIc:dfdT_oL\skdQZlEkR_S<[dnI@UqXb>UTX~@]mOWgSkPVO`e;gNOULgc^l}V^ZjYYcfbgf_g]drFXXR\Y}JeaWWcPhplP~S[XsAOkURXsLSW3PVchTQiTql\SQwWj]inLsdYSgnNJJnycD[Cac_\iLU^igT<_PZaO^ojasXFOKY\GQ`k}TtC_UCpO^{bVNPKM@`djUV\Pqpv~GBviaU[ckHQ[Z\anWTLEaUBYW_LU[qJEgVKcLQFQYOd`w4UmKElzslkd\@m^wnVmcogjoDAZ9RxY]XRw`f_k`ecdha^H:PfjNHmVsiQJocIxlb^aT]Wc[Z4_jN|tO\l@Khn`U@IY4_m[eLdq\{mGMVdjqgjPeNfxgRpH-FSzgKod^OKfc__\TXUHkZ`kb\RiD\h\KEsGoaUQQq^`_WdgYdhWUiXdKJfxum[f[T:PXihrPWkCvQvQgTeJb`_fibavWa|>\ojWeSLYNmfkU}UWRUd]e]obRM`5aoo\OVW/rlIGAj_e~cQ:bPSuM]RbhTQT]UvBh^;r`opWjrSrxegP\JgI7LPXVeb]^kHbSeeOQ|{enqQKuAQXRjbQjEISW^KRW`fak4O\na9G]cUykdC^W^ZlKXSY^gQ]PZYFW{^fXUv]eds|UO~YXdQTbRIfhSOcVHQ`nPXvNa]ZdbygW][cCxd0p}LlXQvAitFvQZoGRSx_\YohMOmd9R`_dav[pb`FfOKcb\KhCaZ^wEQ{jCqQ2jZ_VFwl`WUEa^fPh`Iycek_J`mUfRWhLW]\Wuau{RP^_Ahvstzh~aSXSGig>egkTdhn\gz{XqiNoE]rPkgzb[]^_jpdSHbTzkHLJ^\n}D[n[Vg^~ZnaroeZa\xje[ieyzdlTXWZcctgeYKMucZ[zlb`aGTOX_^te]Tqq{_wgbrPb[Pokic`Nnk_cS}Te\gq\IJVAlNYzqeD\_hQy[]On~k\WLRyPR;[^ihY:KMBsdg:DOyc^STadug]rhyHcyGWp\aQv[FAeK`HsW[]_jZ]_nh]O<^thajKHLn@mmUuNjy}HapHPPcdWRGVpVx`t_pi~P`Ob[d^ZGbmVGYjQZUgLWezj\_aFd^eh}iWdj|Z^Xs^TKL_h~IXJhNobdo[ccSnPVb]?eZ\Z`nIJ_USbZ\Jh\_LHQa_WLFHudPRr\kuMb[WZV_OaWXON\~faZoIWjXRdMd{\o=mDMRrM^_SV]{Ug{O}\P@]~N[graV]CbdkfkiywgHfppg\`9AOCS^fSha`q{iH~O^OCtQ{}ae\lgW]c:JgGbfCkfPLUmCzOhWD|W^h_gr`d^XF8b=a|gN]jnqeRBBll`\CRL\oQZS^BcN*~jkrbqeyKrje[cpILVh<`JZBLT|hxcsHRrZMU^P{rUpQGJ\uYlc@YRX6mQLtTIGMZ^h\XFSsJe_t\CgXxpgLaVOyNbhp>uAskcka_sRr?ZWYTv_[}SIfRNJVZZe{tfmwdx>Gl?lpf}EQnK_Zz=dl`XZS]X_Q2zteTl|PwDFMaSutpiQKV6a6M:Oex]0uQQ?zYfF]~kC@[bdUolC;W>AV^bKtua`(jAi`\til{NRV`]KCKatr{hUs`haR\lKdal]E[LcXZ_c~PHEjUGZ\ya}]eM8qGrciLiZpRhbqlVyK]el8^W}aeYYZ2qreJ`Z]M]WDYI`QN[\xi[jiJ{s`W]kbk\VsJr_U\~Sl}dPQeoL4pZm_xhwd\UgQMhOofWabfdRUfwNVzIrQ{V^O^XNYlWSmdo[ePLXu]G\TO[h[r^eXeadr^a]k{vUU[im_`lruYW}^ZpoxmOjca}XeaVokftaORES[ZVVdbWd\{^\\^`XTYObefWkhhkkXcfiZNo`usaiXu`LO^SWF^sXffa\ccYZlQ^iuOWtebbsmXjPJZzje^hoecb|Y`pjcdlXff_^moPOoYWfO]TeZf@Nc\zGflOvUs\gYnuIpVyHnUn`[X[yAwT\\\oYYGg|_MfZzreWSXTo{\TeUinsteblZcKniyc^fWoRrtp9God?mqzjdcZFsmQ^_WSIeQ7_K[nSnollPVO\uUPWZqOhOar}{X`rQThg@kwjNJVpg_Pb@ab`aZWhoHOX[hXaoVcfiFThVbzLbPkc`ahsVdTcw\DdejOmW]_I~jF\SVa]\vV|nmcbdbXwI^MHagpO7`Pf`pntJW`sK@x]qHUy[V`UKmctXNpE~zZXaohXdCLtQlG^wLaY^g_yoYGkj{NZwf`mevo\ETwqwKTtPMeW~^=]J`]cUr]LHasyygDiW_pbcPMWM_Na`_eiOQdbGaR[_U]YZU_qvm_Xm^XX\up[]Z]_TWnS]aKek}gWHeMiMKy\\`tT__yXyWlSO`d`PUOhqhi\jiHS[_UX[\y]ViiPhMTbaNya\o]doSj\\Wd\hE]HfOXi]`ZkeSTXphW]bgmVoSZSUwU_l]pBWXU[Q]dm[^g_kb_h[P]Mbrrb?SPTfNskdY^bkj_M]|jqyu\dsYvbVPuh{kcbiOcszrfRsq]]DWjQXsYnioVX\Uk]hijmElfnQbzxjj|Y[de}XThy|}]tRyi?lmrZ~`IOo\UjUnodroJZTfZk}dDUSiuFvanOSSTww~dJjNVO|mfRdo~`i\{lh`Z]^C]guTnQm_YfVk`f_Q_\pr}pkeUHeglbxd\jjir[\TWgVncXkaro`MRYmQMKW^pUN`\iew`baH`}}ftN}aK\[SUGTZMbXfqfmbVZcavagQk_g`sioorSg[PkuNgwSXf?ouLOtkyV[fXVUQ__iqdotugvc[OW^YabfZkJg_EbjUZkuj`ZYtSkwMtnd^\dKRrKVdg`Jfkp][_hq_ls^YzYLon_k`WecfVebgWE^[a^XhVz}IUpxmsris^Tae`\eU\ajjwfh]ZhxRoTElqrDYmo]eMYgh`e]NnVqSTSSkxPc`acT~SjYcfbdbWYekoiXSeAAcl\l]tW|dXcONjiT^ojGU]`qlabvuR]ja_kqXo_ovhPDv{^eU[vmXbXSaKg^^]{G`ZcScN{UIXtb^]sc|wyafj[]nwT^[^VxeHb`[o_hCPVufiPqsfN`QeVX^G_uxgUOjrdd]ZTa]S__OZiL[_iqlboU[S|Lww_WWThrXapS^ikchV|mI_nf\bYJPROWeDXWajRY]]ue\IWMQZ`lddeYrKkdvd\^]jKoTL]M{c`ISb}YlhO|hK{`^bQtgp^p^j_YGjdfgjMnWc_hUNNWLpiqWdZKdf}nhRa_\gmOXec^vYqrjQ_^NYopUZcpSZ^\bRo_k]oalpga]Ji_JMxjy\|gkyiZWXfveturYwYTjZ^jVnkqbd\[fmLXpnXjVGJZbTQ`MraO_UvkcQg`km_mOpafnx?|jlmjLXm[szV~R^knrutMV_uVa^XClZfd^ZuUUqQ`\^^X`|ePpltaY_^gRiuUldL_xTbMVwQVIYWYadXbVVYGncdNaqhO`VKmog_]eiJXWYDwZZc~MTFKVh^ysfTR|pN\W[flmep_OZYTlanlm`jXmUrdVU_~T]sbVkaIob|`m}?bGZXRz}fg_XbmL\fb^OmYYRZq[Tj\XtqwWTdLZe_kf|VQbXuR_ubISc\evlgbbdaeyZR_Wmvm[fYuf]Pn]tdy~dHldRTj_hXpej{a^eRXaadW^^UOf_IVljb[Vf`XISaYbhe^MvDZ\x^_CjWPVtWoZ]^^cTzi`lyQwVKpVV^~go:`qxWX|k[^knQNNF^diYhKiGkPmg]rC\KNbaO\pbc\nKfwQ?U]pog~ER@j]`Wsu]ZUlOZtammPSrac_r/jjh^eSycNZ[swegVmp]Y}UZhqW|L]\XC\YDaGIhVhXb}q[hST_faCZjViqwXof}tW}hJY7_Hd{~ao|`xXUILXeS\_IU]WXaEOOje_WlPqaXa`GaoO_wfaY|w_]WFed^afQZ^hPoF\GiEZymTclU}hvebYwcobqU{YmgagZ|koXL[lc]hOOc^o}_Ubut^\]\Te`l^a\TS<`dn[enbacbTn^nfT_cef]e]Y`PZcaTwklTUIPkpZI]TTX?Lh`U`cekr]Ymp`wkZ^Wb_cbqnZOhP}_cRlGlScSpi[]ZO~NpglisIoa`Pu]gpvuy]XV7kk_g_cbU^dqjexnK\zaYmOZuhQgzWi^YhvldoXsend\ajxddnrpXZSPTeZsP^ZixtT`apec[^TZrpiThhO_qLrXXefi^WQtnfef_b}fejd\rfeNdjLxfelQ\Xpe^ddad_{Je{`h^tOWPVMTTYmdmsUY_dOipPtY^_|DQ^`[Fhty[fdlhcfoNdV]grZTbx[[mU\ObJccaVZ`V~YfjY]EqUrOP|vQMQQGqb6XWMj_aYjEeSRnz^^eXUWRiXXfPYOn^Pdg\_`Na_ZWnbwWY[fvGphh_ti[\t`IenWq`kcd`KZwqkj^wXrX_[XZadvgOLgga\dxPRtx^fTbma_]P^uQiioVepG_pnPvfSfhiNfe?YlfWVcUXdXxRde_bgKg`Vi[qWZbeXidqVs]YwbxZhlciviU[S]d[o[OY^V`TjVVhjfne\HkDRXf\NYVreUx^`fcY_^vr_g}VTcZcfSj_UeWc_X]`RIVQY\iMzQcV_tbIZmn^dz_O\^bXLPcYabqRahrM[I_TY]wrQiSc^nPXZpJpuv`QNUxdJG>Y^odzu_Pd`Z^QYmXg]^Jxd\rR]dIY^O`^Ib_gQ~`cUigxnd_u^KjK`ptr_LWWgmuUxZtjD_Gbmsdk{uVK^]TQLuZqM^Vy>dL_ThgbecWXUZOYajnWPh`tVZT^QiOkVudlm[yMbSbp[Rkkpv]p[l[_]NjRO:gYaO]rotuVq]WXi]ZvgU_Y[hn_aYPHXmrXX\FRtjgbt]ku]wmm__Tala][^TbUkO\kp__Usu\[^HU_jP|Rh]\dSfs[\iYYU\OrPPacxLR^hNgeQUe`]SYkbONDRV^EbXZQoBlcROw^XSjykkhd[^i\[de^fqbRHwxVicVKfgRkVQ}N^mhluqCYkfVU_XcTXakYttmePb_fh^gAH_Umcij]VtiS]PQnUYWnr`SiVKe]aUSaQ{Vgni[ladZUv_YbomvRrhVuT_~iTki^XtRd][yfkWJZYThdejs]_WqfXh~_Md__eePOvbOsesPrRulRjy\xi]e\SMcSgT`e`rTWerWU_hb_WmXWqpXO]e]tO[amvew^gkSVFTkn^[^Wclgfe`o;[FQqFSnMlnSVwyd[CGn[]l[V|cVnaDJa\NV`av}lfhQ]ibuwtZlm]N[ctaDTyM_Kkg[ScWP_R`m?k[qRlXAoQLcgYNovIUs`oQWneS`Jh`[lvBsueUIjmXljHHnwZfhdlxZ]wOQ]fdpr^Jh_klnkb^ZaaM>gcctzXlekcpRb\^UIPck]^Y[aaTfl}|tbIYicJigroPEa[gQ]r}vhKZ]nZdj\U\dbacmepSvtRwuhzXej^`e}dphjaYXonjYV_bfnMVaRohRpf]Qtb~VeRSZVphUorX\p]zaVpbu`cSVflN_XRVRPicb~PmuXbcnZKZdarYG{lG\pagY`^nbObjrnipYdY\iqQiO\QVer]msobtibcHkYeg\{cgd[awgzXwezkZvZsZ^h@lWlHhuV}q^kjjq`F`vaXTdr~qbXKdvgd\lqxi_mSMlTWUTr`[ih^QFd]ZluSb[Zy[x[Ygl|``XC`O]Yd_m`eZgrk[aVheYgaWpoYPU\`Tgfd]a\MYOTpTZO[rYOXZidso^fFH[iWRx=ywirZtYif_xedfUzgadtmdch\\efdqa^d\shJY`fA]VUbTkYOLp\vS`pmmljoZfbYMn`^nh^OZfPQeyirsCliY\bekkVkcM[\]pZ\cwO\vgWenVadkdoNfimaUdjX]bMMWXZM\fyJw^lfaeFhP^fXXfd{Xeqt~oX\PRjGeUXqqZylYMZVqO[WeodXL\^i`bV_c\Zco_mW^h\n^Z`m\yNaOh\XVUf`mcP`otHjyY[[xbeKj\YgTcePEq]VjPOXKYhSRTQobTS\icrkgeaX_`iqdPTm\[sv[=ZfhZZVMfM{[GWPwYhupUShVUC_UmgFZgf^f^QgfpxGTvx]_YlXhIrXnrljcjPeibYQgb]ewSHyegFYrSSTPhsfSjcU_hNebmfWYachX\fKVv_YyUSb[oW`RdZ}cTY`{a~YLNMYcyYjxqa[[gqnjdo`pecZj_kV;Sc:QKa[X]UwI`yWJy`mOUp]aqNmxo_duOs\_C?aGs]XXfag[lTosO^oGlvgMft|gl`MUVuuAQgIN`pUj`TYMr]xRidTUrRpaYgUhnvR[NaUSmWb[WfvdO_OisvDZ_nZjjicVlblYeeAb`Q@xXJWjQOg[r=xjp`bhfWgd\UoRe\:nbsh~dSYNk`yXeaZ`OW\fW^kNtvej_cfjgaZYUJ_bWLVoIm|bOipWFmdkw^NPe]jo^uWWf9^JZ^wOMxJAt{[XV^Y]Klf]]MoJfsKqiD{RieKtm]T\Nhb`LsFd\]mas`WloeWuWY}l|ly|ibXt_BcByy`\vfdqtZf~fSuNKjieQX`dXX?rhR^chJpq][Y^faCoRcRvjol`X]ahajZVZmcTzLNU[q1CwXdKdOUa^hii]cUQ[ReaVl_Xvhw_YE`Uwe`[[Wj_T]_ySGYg`TZqmzNNaoi_jvWkaShZGLbaURJJ]GUbfQOVckmgUHFsoTVH\V_|^ckg_vbs_So`ru\jH8nVT[giPYY{`cSgTe`^`RlXRXWmrMh_e|kV_beZ\bpdW}XO\qQ`W[OaYgPdTrYZgy_m^dqVtb]X~u\zo]]SutkNcS_NUcZzrcR\fpte^^`SkjrpkLspPXpva\obViWE]_Qot}QoRVkiU]walh[^sVM\qvW{acTdmccqNPWTaFtfglTojsfYWZbkfmr_yKkWQbaXSAjYd`QQk]qYChid[\cTPf{hXcObrukap]Tqmxfhlsx_^XS[`dXmsOSgiW`Wq\jlXd^TRydCMyRPar[~heQkcbu_i]gXiekkRgO]TufMURr[hYdYvfZZgi_nySDncZHOYYn7gTwW}icbliUXOSKP{}gVYbrVr{W]umjKywWw_|`i=^lbWbWtAPacwtc]m`X`\qRhe[dKcUn~sjEWpEVXIqR_Mb[`hVKQDx]]^tjdgQbgtzH;[bMUZe[kkXIgfgxwf;xYeKaALlUuqdoaejbRJPAdiCZXiFUXnV^_fGjYNO_tOa~dkXM\^\H]zXcWXpXcmbTGPl_T@nf\UaUan`qTxValwm`fq\hykQz\bmgkemsX`M_Lofa?uX~iZR]fR`lPMXk^Su~jYY__Xap^riO_eihcih|Xk`WcV`XtWlVX``RdVmdZXVbZSZYmii]ROtla^bY^oGYqXYNpmbfbZtMu\mYCX`oXn\hahkXysWqYqU|winehXTpEXociogW_kVZOEXTgn}gbnjPuR\tTaveLST]VjsnYm^]Qcr`t]hTo}TBYgSt^EcQ]UksgSdheoylacC;WUaRyln<`qbzgjTU_[i_[_N]b[cvpirkTWt~k^USWGhQKdlYfXcf?WdakXynj\VY`Gjmb7sVWIwnqehB{agZV|fzdWUP\~QTlUbnlSa_^pifPZvfOpcuL~fX^`_N_ZcZZnjPfmRmkKM^`Ukli>flUFN[msthXZz^oWmM^cWRX_[qO]UxvgjanhmdGitJ}To_PV_dXcfkOXx^Tve]kNQWUfd[nldvdeW^m`qiLZMeUfYYla_jbgh|f`hiTYt:n\uZxSfaj\VaLM]a[Rhhgbb_hbso]SahneZp^Z^WZhuo[_HZ`fNbOTe[][R[Wcc^Zq[eZXSdThZ[mRN`V[]bVpYh^acbijefjd_RambndPccRTWRe]|Zhpxlx^zZOlhdTg^WbZk]lOhngRictcz[cjVtTfXhiPqiy^YYfafipyZbt[kfaXugx\H]ZVYcRoqv[GXxdQj`yh}[_[gisPywlQsLOR``xcqdinyog{bejZ}Y^lt]uOYx`lTPZxPSHU\DHnOkc]ug^Nx[]eneNtkgYZa]xHd`RX]SfN\CqHdbTfcQPWaUTitcVnG`7xtXTjnTPbZhvUdOdaL+k#SdcSDY_Ru^ydV?LKrgWhnX\vwcS[|XUq_SkUeZhFofcqTuu_cUaC\]PqSVXnhZ_WLUtC_gU^p\qp[V:XFChwUSckaxZUekVOshklIekgtULtjjmZ^eyVw^V^xaTecbbuuLP|FajivTVfY`pkUxiu|wpgguzIXmpCPpTlhVhsBSN[s~IYlkJp[b=srQU}k]`\nRR\Lp^kiQu\U`WaXiT]`ZdWxb|HX[xWgvluVYzfd]aYg\U^XSdIWJxa]XkbGuUeUZ]_Maaw\Yag_R~HWfWQckUHeSbXN^9S^adUMbrOTKbSV[pYXZPxPj`Zk\w|Mbixs`[wbJcTk^TfTg`js]cf[]K^Ueg`G^^Sh^XTZbVMgrMToeSgp[w_Ci`rljP]}Ydf[ag_VJ}yOZcaaq_ZYfVnSjUlWeRMVyu^=>RmOccZcjomogea`oUa`iXLseVDU\ubb^>jxmi`YN_h[adl]MXdY]ZVriq[Q^UJZUhRheNTd\_[TR`MceyScqagjHfUs\UdguXdbwiUUpQawsgvFlcXTov^ntrbZM~qkFbawbTOepSOdqUTh`]fqV[Qko^VnjhVPgt[DUNro`gZ[nU`\SZkDf_VbNzXiaj^izRFOVgS_XTMr^bzjv]a[jm^hgUO~eYce]\~[UTNt]QTyTd}l`b\Yrt^nlcYm_fV_vTuJcS5hTf^XkVSigjPTTeZV}odSmUk^akZB_\=Wd_`TeVuhuu^rlW]jQr[gkIEibaol_jX_:R|XSeUTbi]iteqbz[Q[ulZUha]cl`[SadozyoTzwKrPi[XUf[MsWVl[`g^PuX`G{OXVgiP_|MQcY]MR`PQUZulm]UgcmW|`Lj5Oqh\ajUO`VaLutLekZdjtcabhLMekMQcjo`UX^N[JfT\[Lbq^_L`ehknPmbmbP^GafKNvvTn^wKXQUid_MVPbPs[bKU}RCIs[Hm[xazrUifL[KJ8]^]XRrzW_eTrUIfdSJRLJ>en}n=T8TiJEi^cb`YZbSLRK^0KW>IwhsXZQiWFYaPwDZGeJ_6XKG;e~XGrl>J=Oc@Zof;qLIHplaQeHRsVZiwolZ2vYUb6GtqtdT_9OiQZcFemsTQm5BLRuGLzjHhrPOBPZGpNgLjouuB^OGYd`TufOe_UP|lXWq^beKsXJNZ`cVXbEJWd|MaV~JLvJrVVIDrVXcpy}aGSrnfeznx\ZNjPlRac_u^UP79\RV[eyPsR{jPiGr|b^Dq]b\{paupnieV|UX_UaPvwm}Yy]tvqSusNZZz_Pf`cYSR`H`asWpotrqveX^Yg\`zjul^Unukx^`WnWg^_lmNtG]bfFxxQclvb|ofnl_@M[jxylrsGXnpPFkjXzlzNhltTiOmqcvq`ZapSPpzKXgxHaXlsyj|ea~wxV__pzM\aSzBP|HZng\JuOeibfiX\gSsxlWwUM{SkkOSHIk]dEEad\ggOYfg]Z\PPv\PfYeUXyjUKVUdZcPjV^WdM`Ym]XwSd]o\]UMNWaVU?qmn\RU_i>AVbv]@mg^Clj?iac[O[`jgg\^_jWtwyXNjnlZZk`9GO}]^[YJZT^`VY^Vld_Laa|WdKZ^MRafqm_ReVfjsY_WlxMtq\_gaRfYWjNlbOeElnWjskxdKw^nea]NhYUWQrZ]mwSbXT\dmf^lwRRTja~rLEu|lnbpZ_cRnIJc\o`Xs^vXd[tBmYce_YnTe_wcP\l^dkfflr`m`UT[pmPiij\QLZsPuoXqPVV]H^`dZc`btmZpg]dbP_`;kmhpsuZSurhXo\lbxIbZ`tNilVUx`cUwXVzuRVu[I`^]xt[lijVXW\`YXmjglUvH`u^hMpOKuITeaRqrRdWpdgQfQn_e[_LOjpv\OWbXI\IjgfRj^figXQlt`\f}aPStJhgdaEFSWUvg^_ZuRinh\ohnSMlVnWU\iO`}dqmd`kYy_R[~judMdiojpWssdiWOn]uV[PWmPwt\]jB[qZQedvy|`S`E`ObP\[WjJQceddV[]Okbh`pmv\czhdkenOXjjyHppjSax[d_[Ys{a?^iy]Yg`JhcZZWK_pcbjZ_qmgon@SSj_etokWJabNuzip]XVMa\Wex]rYlO>[rmSYm[tqnkI^[nyHKbZiXP`OvjevxeJMYepYjoUeiici`VeVjglraKd^_WQgYg\UlRZjXUHbeO[PSugmDkh`\XLM^YX^ffRqTQYh\H`SWF`magT^f`ivY_kS`YL`{[i[^AUZ^QT_c|c_od\fW}WkQhUeaMlRgBnq`bSU^a_zb{dlV[PpWlOhVk\eU`mdNPPW]^kQJt\mSbxitQnfe|]YVYk]TQKdiZlnoZV]XlSbNnP__uZV~dU}ohnZhegX]\jxa\^}bt`joceinPacWdyoXfgG~Mvkdgc_oyeia[|jez[agesbUnbxiQ]FjK]jqMgH`eFM_uPlR}pg~nTtK^fyv_xtnMsc}]]jp{icjU\{gVPUWeeui^bfXtVTPuXptP_vIy^TrK`bhsdvYXZsL]oY\me_jW_lyeS`PqT`\d\Ummaftoc]XibgkfThgqq{fvj^S{p_Q~]t]YP_Vu^]ZJajTULuWNggTZb^jj\lQ}Un~ocGWQ[h_YSygf`ydaeO^UbiYQbd~eFLgQefdNhV^f]od^pi`ofwi]dlK\k][[YTkuWfugNf~Dm\YhgkeHU_qekr\ncuabqRcWoUh^Tsa^oeqcXN{aS]]^RX`YiI]sVShKSuf[uthcYH_HTtqHmbUpCpK`fneYh[uekguXmdZdeQkYplUiLVSdYQZVZYGS`gU]^DaTdaUVSiVytuRdg`ia{zA]Z?SYyPnWq~NpKskd`Y@XYnMgeL`ugcXdZlQa:co\iPv`dnWhpPjvwab]dKh{sS[WZhedT[roV\XxAekdmrlPccTux^^mv~frrNf7UgOZwi^o[Y_sIUw[UAlgrk]tIYuG|r_GJK7\ZZUU^ha{uw\skhnrlafsSapanja^UVXU~m^Bh`OCR\ml?oRR{g\[dulPhjlk{[QtamXYalQvdb\yXLfgkEk[WTn~kjOEZhZFZybkopOL[rVgjv`=[y`XhaVpl]oWuj[^fpz`DWjmapku_KaTu^DhcgmY\dMu_ilW{RgyNPd\ZdVgebYffRmGeNgT\Q]vMbdjqQf\ThwUOVETU]meXg>[FYTgXpyadq]ruh[__SpOkRbXKGtNOfau@fZP\o_gaCaWRnR?HQXhdyfrEmVVt`nIOOkZlvTgeS[PkWX_TavGw]_ZFlhNdaqRqkIX]Kg\ffk`xbcg^LTgkVNrnVQWmJfYxpe_kWg_d`_UhbWdaUkbLbI]yrKONemDtV\RbX{VVlUV\sVSiUThR]_`MU]_X`RZjNwaWliVZ_\NTdg`PB_Nn[g[USf`cKeWYeaO`mvb^YFMwHZy]_kUHKaioio\_cw`htTNifd__|WU]vcJj7`PfcSIQjZhb]xh6q]xhFipsl}i[kfYRMbf>WPF^yQOkxX}TWctrRTIX^Vaf^fz\Lf_vFMKebUpRbzEs^OWXofjv^qIUlZV\l``ifVZ`f}W`Wk`bpPT`Jw\Qq}jecn`oUb_uoZ]cbLUjcA[jRepYbP`WuiRWgpNXOVNJ}ucL[nII^iZ}pModXaUicS^9q\yajMezh_qBl`qTj^zu[OQ_ab]WlUmcRal_KzdoS_Vc`cOqjfcPiUbocHhkqW^n^Yv_ZLwXCUSqtETzVokHNgSUXvLo`oSO:myOYgid][xF_Xhh]alg[f_Ua\=X|[oZbZYHT`b]SZYifO[\WcYWwC_]oXLcPMNY_j_i`xRlLu]~uRSpyVVbTcX[cvQRUKpTh^TLhpbNLHc[eme^XXa>nhsPLTbhuTX~tfancRiefTUqAaoSSZmfjyka_ZZeU_{WsEfqd]EvsJ`rdhon|hXMhWpJwVw|kSYdQc[mtpWJ]XVxdZhZcYYOUbe]tRmIbM_MY]@aZy^CX^l]YjxcX_WM]h[ac]RkXcc@Q~aMvYBMmYnF^ixbR_ofNx]rcL|qWcuNqVrUadnKc[Kko\}>duYOjJUfiM|ZuU?[IYYZq^kk}lI~j{o\eQc]WgTlekDPdtEQeO[cb^aseHcvY`ZSk{_au[TY=jxYLb_BmOzkgsfhsjwYJnhj2g[}j]Ny`V|]yTorc}yhv|SdZy_vPwgU_x3ykMeprkW]stkKRszq[g]0so}\<:az_qed|[exLrqqYJOo[OTtx`ac_aDugQtvbufq`Xo(uvbsawrHsuxbZg;J`pYupttw!Nzuw`q_Yz]_fmnt;^b\XXTjCliQJUuDnSaSYlRsZvhepa\RjX\lZyUszF^{cc;~_][^T[abfxXFiNbdeeZdTHZQK_uFgSiZkYoSrmj`SdXl]eUNYqe~vQ^btY]eOUaQSg_b^WhX``UkihYS`c[XbndzWl__Xbfjlu[_`]YZkaFiWQbLJs]bkPS\Z]mmXdky^u\Ze`ia^jaOiiIcifX`RgW]dNg[UsVpeazFqowfakfgjYW]fb]YaWdWuis_\vmTOmGYY^[sW~WavW|rc[]z^RXSoefbfdfZvmiK]eZYUhkioXYXpV][caXujPVdfiSvaKhKhnfk^midef_H\IXYn^ckZdvPVgcnz|~nEV`pZ``Q\q`W?gh_{exXtZZAUrsKeVTbbz_][kgnOkgfixSsqaqRN_[q[MvNigmdhS`_fV|cj|jShh\QpXPxMdr][`QN{YkQqCPW[jm{Xl{HbTjZ^PbHo[pvZ^\VdpUglzP\]N?Zh^WVoigqbxahtc[YVilfvadMgX~w8h]xxZX`pmzgxog_lkh~tSxpjbe\]^{Ezpq``H\c^urgXqk}whhhZbZVqlkSbmOVf`dXybmk^kZS\ieIkSTg[\TaYgp\_fUblWD`nuPcp[^t``_Oi\`nf]kME~Fgxm[a?sSNjeb_XZZyZmWKajRu^tmsX`ZsGY^UQUaeeblbYeukTl]meKqWOkZ_^VlOOjgnjR^lxYssRaZddaOkihXZjUQ\Svqwf_UdtVsjfaeimeafGhn]vrsxt_U[ueg8eX]WlOmpc]EvJYh\s_xf]kKevu[m\lw]lhXqMi_lN`p`^PYJ_ehU^`f]`ctud]khf^ih\iVaZfaDg^utXiUl^\PYaGmMLXcZfXXSLbSqIYYg[hSjjf``oXRD^QZ`ScR`LInkxibtPTbqYVbhd[ZlMK_ipiMgkcYoVkZ_aWvr`][qGRcXtigRoUUeOT\UXp3PleTEv[KbHXJbfQ[^wOcP_HdchCRXilJRoS\VviPjZUUa\Tq@^VhUlyhcnXTkGKmkLYMchUOj\bRRVsaUYxmzapJTid_HhoSZsO^RXP_o<{ZHRR[]BUsTmD`YHla_]|aUIhkaqrpOXzdNGytRico^kdgVQtJMK]NfeRi]ywRggtYm_X_dSnexrTo^awbXGv\VKn_\nSuQ~Xgtd_pQV>AxPXaZu~VcaZgZKFL]Yo[rksdC`cChgchZbTPkT7g_wDafHb[Ll?m\a`V@LcbZl_TeiWEkOcNeTdFpvPbjMSMTvbWgWYGre[TZU[Tb\NGTP4nWmxUd5qc\FcarOZf*qloUuo^scSJZZNj[M=Mio_\]nSZR[^eIjnIvhlXPvUg_JiUg^dddh_UiEPTQ\ghfrnWSrIbLONd|I[kbY[cZfplf{z{qJHbUYYtJ^kPjqmQK_P`ttW_OT[fYjmZjrSa_wXic[oWSPCv^`hZxdF_nDn}neRyXO`BiYa\UTwJ^ZdPac{SmilkZf\pwSfotWUutVrCZ|nOP\lq\YoWid[QaSc|^ghdgowctquPfunXo]zljqcTmW\Qmw\`cG|lR|d^a[hh{`dXVYpcN}lveQtUaZVj`_|cigLicual_^X|lXOYBiQfMg}k[WNcwveUti_brsvrl{l|odNTYPqiaiKSUl[_fnSdkcRkhbWKjZ\WSndeDv^kOpfWfxba\Z[Oa`x_\]`nnkOsnfP]f7\r_eXRepewLZdpZUZcddKsZk_`TZUYQHX[V_dlyUHy[VuR]DcZUXdSN[lgmQ`rXYQ^ZXdQ]]@_pJbpeyP\\m[]_~SKraPPoaQshVFmYSZdcULQsabcBPUdy|P`uYNSg_rgRax^sXPcUfYWWX^OebKhh^[Vei[hfklcapnbx\}j`X]bbafUtsnWOZqjii]T[i[hZWgOjxmm`]qa[mfQ}gY[loQT]VljIg^qQcxMslhqi{QSHjs[gm_~pauOoqnjSiedmY_mPmNGZip]JUVXpbn^jYjrYfw\gZllV^cTNdzan\pX]T_}SfYb^pn[^vxuIlk_^ZhpT^hSFGbloMXN[KaU^KgqYPLxlg`p``UYWVgZvSOlJytuna\^TTX`Zi^`q[tMAKRxOXn\[_P^hac`cddUO`el_d]gUI[VgpQXgU?uwecflWYh^\Tpkhcc^jea~eIeby[gZNOYYS\hRmeZIPgb_jcXejwYR\YneqlqfkQIgjHooNgPinY\UveT~VT{Win]ZjhY`\feRYLl[Jnn`skjSRDKij[B^jvcU}lvtX^baWrCocSuA|yZQrdgbwthSTaLqWsV|[^duV{~]jbZ`Szfi[PgIZoOrFfWVu|k\`uZNeWVcZhh_{sgg`Xtkj[^XOd`yahPUUWMoedDv`\RiiWjGfXniYIKwpd]oqPi^jcY~oWzcqwXn^ZarSYa_Yicn\^bh\bck]igofz[`v^b_`HnSzOe_lj{W[bLxkpphPmhZ{pTdelhOw`svompjNdi`cn^`prdRYiqdbd{MR_PrVPkSQ^`UTiUYj\`Zogld`pfpjji_PnjZhUwdIledYpZfNrqdVVTimeS\[zsZaqOFeMCMz[pke`Tn9cnNHgosoZ[]qae\r\`of`yinT_x\dYkUjiXJVoIjbqvVfTdF^akKoX\Mtj`XlKOVajiV[rXXe_koo`os[ovWmdnGZhcrUrdPktR\hXrLozb`kVmH|USmcbgX]zed^;_X]jPWHVjVdXW`z]gRYolhtX]bZ]jbqVt]qk]tLtfbnkV~}Vnia_zlfemdTdV]Mic`Z^easbp]Ws__chU__TWVqXgJzR`\GmQj`eYqvdncQXdkDeYgsZcqhfd]Ud[zMW^_Q]T][^WS[aQGgSc`_Ut^vvTZ[W_LuK`m\flz]hJgZR^Z}Hd_{VZk]~K]VVlrhoXOrD~c_`fqSASY^SySt]sgef=khZfijxRZfiao~h_xj\zfWnflpbkdZH`VPcdkUQTv>K[_^moX[|cYjXPsl^XwSDkcqXqVazh\MaoTnZf=QpcOuXtuiWce\`fPzc|hoUZ~YkYr[afn]iUXfn~[E`hQ\oZkVhd]SgGnn^i[gQZ`ZJPqWfbYU^Z]a]ZgjetbM^`hDiUX_dpif@``hYju]J^cT`YWSX]c_ZcYcTjps~Fnae\kfXizOc^xeQh`O[Kqf]ncViejckS\blbSL}dmiZhc_yZvf]dJ[XvWRkfceameYGxUacdkCMX_h\Xd^}`fU`ra]M[beiq^Yitm_hW\Z`FXSijR{QZyTSwqVVccQ]cTZJj[e^SX]afCfOXfsPRNtP]AEiV`\`deTcXh}f]RMS_gRXhQY^sUIh@{IPIabXVt{SxTWYm`ZLWbA[io=~PjsVMuTfNXPsvpg_RAoUkUz]IDna^Zd[It_c^SarhMiKmq[Vq5gPeaFbc8S^colOJ\elVHqWtgXjAfZ{~]vW_ahfGleirQIO\pgPLd^sh|Nr[_NekUXudkh_D[OT|eklq^XkI\rmCVbOUyL`>nglVKcLabpbdAcsWg`<]q^MSXiR{QMVf\C{eNPqpUTqhKfX_pT`JXpsjUt]SPjrYWaUkx`ugVlB[mbHgdbngRKkwekpaXY[cOg{FtekrcSRjNiOl{I}Rn\il{J^XYkiucXRbEY]^mYNd{H_g{eihYhaZVumISkKWR>VhZkVlL_isgRUZVKLo{lQehecbtl[My^SkRYxXgKS_VW[kbxkKr[ZgZbFhM\blzYW|r[CQddQsKou]k;SNfYRRlvZjkjbScJTdUYS|^G0c`[dZOai]tsj?_dRn}nTr`fNvcaoORuyxhf[fgRI|^x]FztMOv\VzUi~kTxeP\Omo{iP_bM^ljvU^hi{a`Y]LXVM[ZjhWz>ecjQjMjr^Ux[}[UVV]]CVmVm}k`facdtZmZYc]mlXdQKxjl]nB{[WPmclfVkrf]YRpWY{d\TmdtOqkfaNQj_WuT_^[bqymc\ecag[~`vmG|fzU[^qR`d^[ZumdX^Ukd\urSdkVUSZSLnhizkyoY|{JVV|QYZcUgPjvVfUmXqB`KXXqvX`NdSlj~Z_eruAjQh]\jYQ\eO^aWV]agzmmhBCM`Xzh\m]Ydjmbx\{aUf`^_RSnbbhXviH^}fKkL[TKcSWW{DbFTVt[Xg\Th}zq[UbaQZOB\^u_a\JL^iWTYNb_iEYVeC`TRZzRRj^X\ap`[ew`lXaP`uT}Xh?_IhXbMdJ[ZpX`\\OVldk|TnflaWgqcW~ySSqN`nazd[WqWk_QWfY__a]XcfxUw_bhaU_Sq@^\gMmjOQU]QgurlmZiKnVmrXg][@gba__yZWm]fOSV}kvjcjabfhyR|l]|_`bHWdZnKpnTi`Twa\ZYtmo]Tp^adqcXvzqZmbODTPOa]RNlgfgtOYJ\LT^[y[b|eONd^MdWa]\UK[ZbzR][OdwTVaznn_gsaUdeUAlnYZscN\ef\~eUl[kglMOcu{{PLpw[VipagTq[[ivTaAcxQC~}no]lM[k_dAXApCn^JOdSUVN\n[WpleZUbCrcp{lcxqR|Li[SKD[SxcyYguJXMcKZdnBfIiashx_e\__Q|w[^jsOrpR[h^cgq_[SfehObwfXNkXT`lzqWcTbaIHn`fofAf^zaRjdhj`R\^e[`OJatFhic\o\{}afcjPls|oOGTT[WKYdYSEUg]i]nazcTUMaYPneNNNUd\CrHstofPi[q_[MT]xVkFo]]Q\WR^LTd\@YqxlJXXxkLkwf[lW\\V^o][bpn`onrXekd_`nSeYlne]YjXuqoFuU\Q[Zs`wazoWEsdndfolbTEd[_``]blpkVSastR\l[X`X^xcmpWrhjnukkYgb`em`zsZT\b`h[kDjVebeppOTkna]UmUVT`kpcXcp`aiotb_mG\jZeZfi`fm`oZsZwNfj_aWVsaY^IWNSWzu_\YWPZsKdln``bzTfcRfjiGGRrqRRXjXYUoYQ`\OIVgb`iq`KssKBFqSgkEKQ5RV{sMrf_ukrNU[ciI>xqRycaS_X_lRhTbYRVQSguF]k_GmW^cXa{T_;x{vY_cuYw~wZRR:pVRbjYrSKQm_rcqvv^ghjg]fRgf~VV`IUVZW]nV\sINPZW[`dCugwOi\\egoOYYikhC`Y`P~>TluTRO~]mJypjxYg]gYKRrU|WPmv[ovo|hUkZgclbqIasShfJaQdUhrKZkyp_G[iNh\zSdiXXXTehe^XeapWMh`EilqmjP^]f`sfmhM~s^dQWWeSbUu^hyj^osjVpje[lZntax]iqfXQUfjiiUU[kWW{Qd@KwukTPQXca[VTo\gffRhbXoTaVTpghcI`aQmUelZmTediTeLjcUk_qkPTJWVdgxfO]XYUPef`ZCPllk~PgHMZh`xS[JHT[l`Dbph_VyWXfh}X]a_vefcjjocTewiO[GcmdTYalUtZlb_mhERrw\vbmjd}Zmllhaqjg}w_kcYU\bUg__]Z^cTZaf]r\~_ezCv[O`kILbQ_U`xeb`WOq\sMd[tXzipmol^ZnRwjHS[Tb[VmO;`pNVnV[WoefNQb[GVPQr[J}_]\fgjUgdeVJZeqIQ~WzT^pW=n^`UmuX]TTYeMQWhVChg_l\redg_Fkjg_{bTRAeb^sRPiwYyQ[XHLb\idWkZxwmftGl\VZXD^UZWW?Kd[Ne]NecVHSyPs|F]lskfb]Kcq]LQdr?LrVhrPfd`bllc`GUbVhj]PKir]dmTKJWvvSNTn[{V_fdudjUwLoW]okP]^mMUz]nZvhXTP|jTOreP~iKFgSiSfoc\I`bcBTdyehoiR]XjS]acfZV[pW\gmhb^PWlp{bU]NXq{dZO[m_R`[=cVd[nYtuLm}`KKmokgS]Vsm{\ed_E`[Z^mc]MhAc[]pstSXaYiO`ggWX\dJggXXSKZncq~aoZTdQbXdvKib[o][kT^_^i```oaJd`tDQG~jnGS`b}T[WVZaD[fFSIp|SRQVmliedjZX\x_n]k[hVd\R_dozRmfpt`p[nUgRnh{cdeTVUOvZQ^M{\]l^HjmZmRUc]eaRq_U]^NbJXsRzbCWmSxb_KagZ_cd_O|h`~iS`NcmlGl^`tZTicXxn``[PbbjLJSVmHfMWvHSuwFaOg]IJplcMSUaadMOy__DdI`]Qkzlks]ZpTUy_qjnnW_MXdPeMSrwexI<]tYw_}xchgf}N{lg__^cIhsai]HXVmpda`x^Yhyj`eegzNeinkbdRSNx~jRVSxn}GrQA_]^RMis`GOmhabTd[]glM\YbDvkruongNhryZaa[DWDZBQH|i^[zKOQadsrE\SgT{]?_]bzT]}XMYmj\[ldYSAgZ]Rd`pWWOZPo\ThTZpuXstINI_e`DZZW]nYffdT[zYXmXQhhbYXYZaRYdmcVp^njTOY{bpOVi\kac^cchpYY[xNUm\ilM\fy^LL\objSaZTwtXoV{YSmiUdUfaur[Wm]`}yWD{]Xq^c`cYPXXw}kjWWIWaBqqhjX]pnwgfBfTSKXg|adcTu}[}@jo[\~t\kIm^RS`{b\TX]P`_^ZfxTbrivS^sTRMfvg^X[R^ub\\MI[\Ki`[d[qNtGth\WWgncmRT]KPuidVkpccAfQazlWZPvm_GUrt]WdknnZZTUQUgi[cghUPckql\fm`ZZWe\lE^XbUn`XmQ[jieTUaVbvhnMri~qggmPTsgdlN`VnZe]zkmwSh]_hUxPofK^p{mc\x^XY]yZZooYYY_yoTXjufUgcy]gba[Vj\^laVZi`ROVZRt]]Sancfc\b|g`][`OuinWUucoN\d]naTcjdip\lgf_MLd\ssecOQeda[qzs~edV[dDrrkrl[[na]dTbpmIhgRX`kkSd[gvl[pbX[lQNocn`L[{_iW|pQrJgh[YgTePlKd]_SU]_lOrNEXOaQMl]UrfFS\|JfxUO\_5cyr=]dvvR`K\JOhUfKooh]_^mqdeuaq[ka`K?wskfRVNhayNPcfi\a~Xl^n^WnZQKO{RecFNNFYf[a\]\iYUcs_XS>N\EMfGm`ZhA[gdwZ\ogbnlnnRzb\uNe|aPM\TU[QWdnXT]G^dep^NN}G_nmmndY`pfZpUNqYZvY_CZfXQmacpcsO_zew[FhcalW^lU[uuaRdXUhneqs|i]m[fopdqQRo[yibfmpqDM[UiX_dvXYWbfQ\^XzUyvU}Nem]hJz`]n]@CFet^OrlUuqkR[aTbZOZZlYXSSdKNaaL[X]NQYVUcT^Zfp`aGXsggfWyT}k`VZpV\hQp`kRVliefWbHooSD^\o`cS`[_lS\Z^w^cMmVj`SnaZZqJkhjlWkQzyGUqItjZ\gf\w|u_]tfVMiJ_xoi_YWOW{FnhjUbVNo_hp\iercgoQPUldpPtXUbg\vXZXP\IkXRlrkYW_fzke`]ZkbiyVaujd]tup{yxmYsltrhg`S[XmaN^nwy|k\j[lf_bOhNVkbaP^asYW`_Ua]tQVc|pYhM]c]_HqYtjIkgofphHU\g^zemZXdvfdUXaz`c|`[{PYqj{w^yu}L^mjMiSk]gbsuc`bMSUVbQWu~idb|`W{PWVGXEY^uWMXkuKtVFq]DnU^^{i\Vupc_lZvIZxP\[Te`XZm\S]ZQdlXUfxtdGSUcnYX`yzOi}_]NjZqRShhUOsbae[iarGsdYLM8_ajiZyl`V[RyOeiawEgh[hbXWU]nlchY_ceITbbXbYZ`ie[^|f`knz_XXrBWiLQw_RUXQgsngKf{nRai[Zbn`ZT[mv\s`hYdPMqCX{ldjo|}gt_zv\XXacq\^dIgUxw[nFKm\[pqjqsaaldN]RgihiF[aOLM_fSTPE]|uTRqnMh^_[btxtOrlQgV[lva~bfY{{lGmW`A^^YdpnXmdS|dE\osvg_^xXfVkplaQqzBcdrpeYpxem\SeomidTeXwKWwXrNYfPRV{XW|eqtLKgCZNbeUVWt_ahUGfXoGZj_nUs_kjSUbig]_xz}kl{kOafm`a[pHhUamiv]eqcjzbffndZ]cXrlx\RX`WpgMRTUGo@aoiio`dtkiaKf{CXlWj]Pr\aO7{udJdaSxjnlgQcJka[pmYlcMjume@k\YXpSjWJikcYvGGxWV]YTIXw_SS_UgP`[qnYXlvgwq\gcq_h[tc[ZzalNlTnYjBOyrzUctI~rm[fQsiT`yfyVUoo>ONES^AVT_YZeXjxv\\eNUfVDY^yyaIpVJh^`PcXlnSXKysWrbO^dhos^^]KV_`TR=LlpO`P]DhiRfiiVwgjufPjY^oOmJasIOk`mXYzdNW[ibkZmxjb{}]\kj^fnD_ocuZacy`nxv|XD{CkNbd`vZci`c[WtWk^Xy^[YafobQdVDkVvs`vVzW]|^WP|_WT_klX`W^`wbZmZSUhVj[UZp^_qJrclQPaiaHUt?ldehalZhlnanbeB`KZrnXF^Vql_b^E{Po_gZWd|qa`Jd\eIsyVidELV`qaf7Qvt]dgr?{Yv]bjbSeVGaZlp\5|LekY|B~mlfidw[~XiVL]JJdPvhzrUDhs5\M\=|yg\UGYNYqJvUPitzGSzuux\blnvOxzaUiJvDWsMouN`jJ`[ihjY_QdQugYet`s\hB;p]kHVqY9wT[WlT\MrdP`bV_kb3ubVt[K^ZoqLeh`SZkfbDMihZmfsHW`SKPQ=cpcLP^Xa[l;^jXgRyNmPZ_muRww_U^MCnrZNqFmdXeUaEpgE_aaULr_opWyvt_|sZiU^dU{pqXQ]RFPuGJeQ<]dE^yI]\EcBe^\Y[qKle[uZmeXujzbE]bheJjL3aqtjZWngaQf`Z\u?WHLf^`]I^LsqR_\bVeR~O`tWoXKgTqTT}fxYRinmrEkY>Qj\\eRkPau`j[h}?YtbyYc`mmSbfikvhR}XQZSk_ZIlYo_JoWerj_Df^ddx]uhx_c^|W]_QcrX2iSWnWIAyZgOiuk[]kZmajkuXtfDdbVtvRiadEpSEqIgUp[Xe[6`[zsYZGYiHWpbmjm[PkuOK@]Vl]ZmQYYcV\HbU`fV`T`nkeQNPSk]LYTzfoNcjXTgLSaRV^]Wf{V^TahG`ubUp[RTWQpg^QugVbU[j{fgMwfMe_Q^S`nk^ex]edSLoPIb[fJ|{oL|^MgT_ikf`Q_Or^M]nRPjhc^dp}{IdmaI^SVqVUXTaFad[iXtkaik{ZOZz_gbdMuU]LX`nk`cGe\bc]^bjYqciiOnn^kbVp]e_\cX`p`f[encethBspLbqlVwnehslcnT^brheMmgVlokhah\Po`^i[\{gZmR]h\b[P_~gXfns]Z]Y\omedh]iXjS|nTQbYdgc^ebQZLt]eDodozTkW|o^sRVYYb`ZTaQdybqje|lRtb^sURuJsmnSLkkvxi\nMVpf^]wXioFb}arbkf{hx\pbRDcYIRi_SovZhNE^eZW`Xf{v]a`^btbbQxxd^dWoOk[_tXg`Vtikc_impUVR\wbQg^Uo]i\vfvolpw`[jrtOrsn[biNot\XKbnR^tTiMcXsSELlTn]xz]hXU_rcjjdSiVUkSPhiub^jjMaJSSW^HWqOhPrKV[K`moRZegU[i_ob`dS{hImeRhmfv\Qi}?zt\RfTvIjcrsY_S^kZGda\m_kphRVxe^_[a^drmaqSbWR_fe_v[Zq`Xp]WN}X^YaK]QYe}YcOp_~P^YW[QiIRTPfef_}S}^eUU[m^d=PWYmXjSgVTF\aWCJX[[_cVWvUO^nmTngO{Dbh`ceOxAUaogXKqxer_\Rkcgs}o\NwZTVjnxfhnPyoePTuN[oinw{pf\vQyFgemP\mHeSvbyo`irB`W^dZYTWGO`wb`^WpR@jokc_i\PiKOhX}X`MYBa`z^tSuDXE][h^MjV\hitbYwt_s]rS}fuWa9]?nXicgVWoUTezeW_X\cxFsgge\tp]hddC_pi[`[T~ukXjY]]rn]op]l+uv_A^QjNelTejX`Hbl^osOlboeGVn``OYn]f]YHj[\g_bYcP`qeUuXb=\]mLW{~p}l\XrWZ[\SexghFb|P_Uaod`yf`]pVW|st^[M\vZxM`S~bdb[FdKSng|K`\hchiMPqdacrLEpY\\aaI_fece^tn}k]}pivdllasinJj}Oihme^z^]hQgmNlr\^^^gj\QZXSaZyqY}RjEZRo[j@wgvgKOMYVlgVF`XWJ[kXbWofgY`JXlk~ha^KY[Qbnec]SVnl`ac~RrZUXhge_]l`{\^iTHUjej}mfj[`\vhGaoNRl_RSo_jlJ;hTjLv_i\fjSenp|YO_pnlQTseTHZQfab2RfFgffeMs|\bh^]k];][VnRaNJTUGjXpY}sX[k{sZ]GAhvddit[oa}wfSuVMHEWZblmm`hgqbdSopf]kaT^r{[g[s]_``L\ljbfdaagmSM`jNalTc^kebRIvtaQln[ctNZu`DiYZ`T_oeh]qeV^cR\LZp\[hcb_]sdxhTPqI[`_dSgaOVccbvg][zZ[diUZRN}N^zbkPVnsXbWXjTSh\dK[EOLkUQ][RJ_PhYT\r|__JfpSei_XWW_gbW[VToOVXkiflrcWgq\RROimh_[lh\g_Qf]bsakjf]aegWKlN^R|Urv`SV]PoJ^NlZm\jaMYpOScI^RfchRTqvTwi^lpdmRHKqpNd~k]]ktd\Hpb.bgX_O^dkkgYq`eeMn\[ytildqq`[_TgWcqW}reR\iTq_]eeYweXqgiT_KSFlSVbT\c_YnfkWac[i_S.MZ\LfTgSllZd_\YZz|KSvsFZ[nk[j\dUbz^ar_mkQPVn\Tgjc>mcziq`SVYOjrukg_qpwYofXrYaiqplar\TYipjZjk_rfiTUrTjfSbp>`PVZawofXxoiwaRgY_Q|MscpGe_j{{EKjTthUmOm^\hdZrbJHcMPwqgIna\jD_[^Yeh|U`ipeVpaTuh`ZTbx\[oeVgc_Q|omjc[`QWVhiY\lLwfYcpVYQkkXgVnZgsblw`SNheNfnd_cURxXYQ}@\XfhdZSg_rW`gh[bCpKNnR`[`ThPVo~cN@Vjd|^m]pPTk|\ahdeijWd_lg~o_iTIZNehYlkeqffPTT``]eidsN`ZFma_cd_kadapmOx^_vqf^W`_~[cqpDUQbrnNUJ\xOwIi\vf[sjlm]Xh{]_lkY^t`SeohwaUiaVekV^]TnY^USpieQ[eRB_dja]qlGUbV^VmReWDj}hKSXP`WmOvhkVaRZt[TUaI_AYo`pw]Z}rhWY]oj~UpfmhdqafavHvpYVtX~\{ZTiwplqg\XnG_eclbhp}uiUWjlM]phdUZXnN@e?_jbGib8invZ^XZgOX`G]rbfNc`kvsnT[nXrTK`OcccJrg\gXVinlz^IvcSkYjkJZ]IP\EYiFqsfiZJy\ebf]bdXcYlUwTYNfV]hOree`bWTEk\kLgcg\Zt]HZq^efmTNKEi;gTd_If{klrnrbZ?Q[RtVgvU`qBz\lfbM[ZSBV]ePTiWdiLU_Y_c}xr}y~ZgwiY`j}xo]ZikRrZYc^`bNqWXp\YfWl`Df]e`\tbwFfNe`Y`g^]S\Z{_kWkZ][Fgd[\zgaZXsRnbxgTdhlqz`[It[]Ku`ll_``baU\n[PUWgcq\G@`]cZmpsYg_ogWVirF`_UyO^Nvskq{T]R]XTObxz[\_gD[XPlUvstc][Rl`Ig_QfjVV_w?]pjZIM`TM|}E]FUZXN]Q\xjYAXou^Vh[T}l`iVeSsooUruSPsmtaifqSMLjNRLZCPQWEo;ORlJuydqTsr\[gjH_^A`OO~eOkfX~Rq]nRheZ]_Ze?VdWd\_Wjs\SlgcIum^YYWl\aXfoLJVf`pl\u[eZmdmr~i\|{O{olIajdvTotzc}xUcLJcq{gkSr[Pb^`L}^OcU6e_EoHYgkdgUvdjFaSbY`g^|hkmquy_^k@dLRpebh4nUxj>kgosUoq{Tpo^gmpgpZLVvhGtr>\]~aVcUxp|Zkw^pTVcYvjR{doTX^ip^Nibu^hxgjSujdpgcSPp[~Rbh\cZnwXZ`mjbjUrLwmW`n^i^ebmu_gqPex\gdTtSicermRdYOeitOgYa[TuYqu]rl`dahasdcod_]]caUoZjd~cIe^a{hSya^iWrdoqOZczZtcppNzafjkct`a[b`jdhcqgMUrd[cq^yaS]fkVqWnXjoc\qvcc^Ztzoo{v~nbfh\^iQrm`bUuc^x[X|^glgde|ehyn`_hayTPj]ntp[]mm|b[]pVjp^OXaPifvR[Ye]vKVn]dhcZboScQseaaomAp`lb~ZXju^mcAb`Dok\dKLdTPkfk|k]my\[e^^ai\mgtPOiWnsIQXumihUtROGgZZjZtqOeROXsOWPV`\sT]|_[G^uwn]oO\Pv^o^yPZgytONlVZPb^`PSn\pXUPkaXtgpbYmRf~h`[HZolhXXXgxzf\Ya}oTXCh`b?g8a[ZTNa[o^fXI\u{@[KrlezJub|Ro\i~s`QP>hn]~kibJV^gffNkE^R]HMBzH|JcrEaWP]PT]bTY8UeZuWrV^ZgxMkeJYGggeUhEPGIobGyXTVK]Vunayrm[HUtF_Fc[yOOGcd{]ruxwGthex?hde{0TMPkpKamupIun:qYIS`rVqsxJNdktInX``wGpaao7pO@;Izib`KB\_em~ltpqouiumxNgBmOgO]mk]b}LeNw_vY:JPRScUNWu[IYxPDbkqSyfn^Z`MGjFb]Wzl[[]fsXwo_DUUnQsurXQam\hWjfyVarWESSfTYXfBPNteuPPaboo]^^ycLfZcC~y;K\\|SkSeGroexg[LOXqm]boUVYEY_[jl`f}\flhZEjca[Wc?AJadK_pVpx\``_Cum~ez]DRWo\gXkmb]cfk/RZvqSf^Rc|ijTi_Xw_{`ghveO_etruxqpwX_\hJcUMbO^`ZeqmpkViAotZzi^]xte`o\`fKT}htTfmgioTSo]ui\LVKgb_NbY`gQqlL_ScK\PR_jc[NP^[ic^m~Toz_obflngx[\]kk~_vdsaPW]V_b\jhTae\UsJm6VSJ]]lmnhiQ\Qd_Xt]wdwVZr]idKYjcrp|zchUo[zeu`cTjN`m_hUXLHl^fY]o]ZVnW`\YWxaYghiG`Z^pPldrwLso\ludto^iTrr~[\f_[ZLZebaQen\^W_kT]]lcppkq_NYhC`fxSbKhqyqjF_daVxrZaXpW}ggVfdpTfY}`nmdisjEaVoEoUvIoXPVpadwsd^a^aXj]Z``h5`reVZr]SRglN\}\RslnjP^gndqbErfYk{Z[Ti\pQRXulQtZsEjLwaWMRtQek5UHSPYQXLmXVg]TRYaiNla`hiYeskZ]MeTljYP\]wP`_YOqVXd{U^Z^~PkWYhw[]cWtclQilhZ[mfjYwNsMaZgdfbZ^Y`r^eVcvxT|s^sUYTqSsiiVyPM}ii\Waggac]Vojt_Myeg=iClOxllpVPm\Sj[deo_XZWTVpazclSXVcNRgbhalsknsbU?S{eWX_PeCanCjX]}N^bke\tINNTK^qNfae[lf^Nier^XtLWJ_foI\o[fa[wpb{`omdvd_WUe_Z^xnkTLvzgdXcyvLjdUcPScgPY[eh\a\grgnoTRg`TgY^J]Ql[h\ViV[TiYQY^`mQ`x`Ua\pRc_X\jwrMM^dvjNm\`PFu^A\E]VfjLNVSJ`SQrwWYoc_ZOdjPUXj\C`eJdlV\XtlYOqUekm\]YVc[tpsW^fjPbmV^j[pm[GYgyqKhkebk[zRYZoVVaOe]NUOXh\WtFjn\IoQTn_aaPgNEfok~reCOancdnaCWcnZDAfGlegn}e]I\b^N\cFQ_fG}uaklX`AnyTbWls}pld^u^i_ivvGYaAu~Un^vhddZcp^dVeaceemrw>PXjjUmQiVpNUunq[EDVj`\\iYZX{|xQ]hcQ\rcVaOu`N=KdMVK\up\`hb|o]gdsckSXYO[YOyfRrtbtjqFbZQXhbhZRWe[cr]^\rk^uZonnK`ZM[oYhXPi^|pbuKnTq`ucQmX]~nZdTeT_WXhOMmRfs[`{w`Bce~kS\qhlQOwlKb``^j\^aOmi^RZaXcZ[glegg`pRfZ`POv\mtw[OmNYOf[u|OTaozO[AtodoikozX`YVmhfogZXgmsofJvaQctMQVUGg[Rmdp]qiM[nc\Xb{`N`azwohbdZTbY[PfExayoQ]f]WtjfMVmnYh]\w\[N`mQZV]]TVoK~z}Wvic`RXvcDgZmpWXDcD`TT{g]m{aNK^Q^MRMcnu__jSk_nTGx[oX^[UV`{\jpbbVnUeXkp;PIk{LyRm_fX^```SqduWdGacN^Nfgf_t9tQb=^}LcLhVaCsdijN^KLSjd]~_a]Ze`[|qjgYWRVJdfi@ZY{ZPWip`jU\]fwXh}almli^TaRRdmPcbhXN^Fd\D`gjUYBb~j_dWRlV[ednb]bXoNdg^bU]q\~gNhUM[hfec[cZm^ddNu[O`bXca^VYYfq^`yF_Syz[hievkK`gZMigjqi`}[mVXx`eeflXKcq_fkf^TfXrbhndInUM\{]ntsQee[]hYIxWd`K^yajHoddyR\zZcVamKstgXGPU]~TtzmP_VkfYGyL\d|majb\UU]L`gQqcSoedMbpUt`L@InY]LbZgnpMFkaqQ__VyfumseZo^euZPh_}ZfPh]H~=c]?e\VtOsJJ`qghrcX^gU{|beV{~TgsjeQkblO_\ceohgi`vYKZ@St_e\p~IVkAQbnmpOpoN[OafgkWXh|[lj{cQtf[OHZdRg{aUFZW[p]\h^gNku`jbymeN[\sQs\SYlrznE[fSUU\V`Wlcbtio`difhkesy`pgdQmd[cmSbeOZ_bf`c`OORZKVT]mp\m\xTwbV|[dVynL\[Z\TgJs[Wnaw:}sfo[MLLRdZlZ^fxcWmw_UkyV_W_EWlKZXhUo\\ORoScUY\KmEmipV\\aeS\HYdNtyfSvZbuS~rW^OR_gHd^clWfhT[Y\`pplbxogsmm]^S@pY|j[SdYfCYZjXMcf|c]{X`_`_clzRhWdULh}QOhcYTidauRa{`uQ[ottSZXcdT{\VPDuzSLekjO|ueWFYsHdF^rROMeg_k`MhYk[yWdbabj_`U`_ag]oXNhibNsb{h{Pd8JOi>v\Jn]c4Nm{ftQWrV^TfqoZf:h{wLt;tS\PeuEhcwt[Wu\Mu]^gxXi_nmfYkGlWb`k\[ObVlM[xSgLgUaY[fd[a^rTcVkm[Uoj^uW_}\Q6e\sZWxLXr_SGTuZRQ^YcQUOUSTpEH^YRPu[aITbG_gKYRXMcidYprZad^uTKtyvuo_Frn{aT]\Fb]^ZYNL`keuhfiGNxa}qgkRqKL\cdh_|^RikhNRdrDqcfFRMTad`P[faaVnaLRaIWZ`H}giKW8aeQQNONHQTSToYZ^lmajoGWeEcfaoV]sQvHNixeT_R`_US_lr`bPad]Qata^~WMbph`CZWKeMUbpaZcp^]oZJse}@hY]U^mpp;Yw`jg_AjWZPyS\iFb|`uWLaRditUofIcj^uMtdg]C]PxR`fUX_ebcnnbqLgSxZR[}gYghm\U~Y}c^tdfsZPhixqo|qxm_f7VZ`m]l|LgTuc\TP_E^tYWvJmcpqmIyXV_a_hf_Osh`dMUjlgZ`nZdnochZ^lbhbkhUmRVebVZtWUWvPkdUOWW\zcLt~[b\KqX]Ur^|w@ZEnc\X`X\fSlih~nkV]Y`aU^_T^\ui[jmbrcfhRRjaO~urSrTVtOm^XUljLXmlf]`YYcredjslefJQgZ_SjPfnbbVCSYa|edcdM[dR}YlRSlkVlV{qMhmMwc`i\j`UqR_tiYofkaojj^^aukgd[V[wpbNiecllYob[s]p]n`]tTfgUdnrb_YwlgeUT]bmmKlgqeaNfXucjbcbazQiV]mk[i{pZhc~dVV`W`pfk\Nx`M}]Ydfn_gw@o`pjH}nZbkbjdl_weU`gHP_u\`]WhgYebbkn@ggq^dOZgZj^Yg\\\n]lT{xecZUf]WmegwWZtJZ_gz`pseFYc`GiaenE}te|dZ\_WfinebdRKT|cSQr`i[ev][sR\moqnuV^|hzYsy_brzBjZpUVQNS^WuekkqcU^\duTqUDdiiFbopbWVmOXbbdyl_[VyrSh{beiYZ^Rc^gpr]UUadV8Pb]lG^en]dsd[bcOQSJD_Dlhqd_Z^Y\dwgj`iT]^jGPaRnl_YZVQvYfW\`f6a`P\TZx]U?nVeu_X_POUc\LdVrUi`oftl~PX[ranjZuhTN^Wne|cUvd]WM|ZRVWOkjRzevW|a]k{TqVjUWgL[YSeawdyaPnXNsy\dH^iWZWwWcdzPaaXd\ObhcKQF{\M_bmV]PidR]RZ[[[TtqXojJhz_k"e~efflmXrX]tYXTvak\jpjUY]b_S`Iew_U{akE^k]OW{o^seXPi]inH{H[b]qvQz\nlSzpRQwT^^wVLH`sdtvM}zKnItq]]JPSOtpqbbL^nhT^nN\oZwFU\S`Ngvg]wVe^Skfm`pcmX[iR^TG\_{f`j_RaDk}NZ[vhbjTgJ8qt>[aONXQyeueddi;^ZPcoLh^T]VcbVhPRgkkXTh^{n[V`Thn>fj_`KStgkPSW[fSshrW@F9fn]zR}QwdOfzG\\S|RjV^eZQEZj[OZpdwYnUlnoazReemR|]yZ{jRw\\GnaVlYpUN@SCN\eHL}acl\P\otMcoarig_vZqz]u`xX}e`Y:jw[QRJinI^[_Ximo`c`uRuJjY|`YoktKa^rwN^[ndXbpppagT]hfwZw_UdUwnllebZfX`W`f_hNfQT]\[M_A`FEun]cig^KS`Swiio_nPI^vmRgTMU[VZaQc{eVf{njaQmMSD^hcVYM]ePlgX_NKVf^XqB|kRVtWVkkS~lceifM[J>bhkeHDjgNRkbMh_pW}e(xZR[ml[mGllWqSa^sbTRaLXs\TgArstUgpb^hg~cc]Yd[`o[lEpeXGx]|Q{@VMYo[\3cP]dcjqW\ohRS_HNgQwff\jat\b6dY]`S\lKrwfh[zerj|krKsWEYtViHmmQ[UTjTN_mBjqfij\rX[{jvbZ[jQe]c|ZONmchsdhgLKhPmdf_[ZxXgtQVl__WUpWc[PLwLlW^OlcRPK]Rlqe[rk^d\^N{XJ|_XiQwegAObL`gO`hchiGc`l_b^]ctd]N{]WG[nnTNG\vcAuiLLkQignoPuamUqg}gIn\Sd[^lhOXr]fk[krb\QmYY`wfLxtsg|VTxkulVltaafhGl_PrNWTZYXSM^a]fQ{`Qrn@fSyupJWx^xmhBtTnkYmUfMQTUXj\fYIq`L`oZSoWYJYfRILe`XYG:kMX}aMvcOTSnXjZOZqdWYz]gNXQAWYCHUXU_]I{|BOQYPJb^qrvsZ{byhw>cWNJVx5kkfM[^Yaje]m_wVK>_PKQj=VkLsrVO]q@k_\fOBP[5hpnJ\ot`WafwR]JgCvqb@~[YcmeYSTXRyiTGZldIuscl]R~aR`Ene_kVW]T@gjO@pk\qEQWggq^^K]Gdk`eehcb]d^]LSM`YoK[]lYDaROQdhYXT][SmxxOTbaWWK_q?TSY`Au|^8Qp_XWeVShYn|ZvgeRIr^bga^i=ktN\~{k|]i}TZNJ}FDYlVxwi~xIrwr_hYcSdE~mzd[MW]ffWuyUokx`FmNoZ^`}vhelceckhhNcf`Kdhg|do6mBmxl}U`P_>WlafI_Lpd\]cbD\_ufnludFZ_|fc_sYfxRt^;dqT>[kaPvalLpbqP}\RGozkhUdqeJ_cLiEjunLnTogjn_qwe]rZVoW[qab^TXoP`gH^x`X``O_cdmR\_]e[YQ~_VZrSjvbrUhefmFPckDVeeg[igSNyRWr^U=mg`Sy[i\\YgcZKW_lHhd]PZmHIU^_h`caGEMX\km?`~dElVBJFWUTbLVOdNr`dnM_^X[pwe{QWM]S|]]R_bVtUjrTv[Hh_f\ehqPPey^akmoJxyxxSlaQ]CuURbuicxrglbC[ygfbx{fYj]eRxRbfav^nyXeqbXKBguZmM|~dd;H\lfT\la`UZt]Wic{eMnO]UpX{`kdeiaM]iYrP[Ct^NmikFysQdx^YN}jo}{q`{YMRhh^ivdPOO|n~XSgufHNvyaZPU~\T}fk]l]rl^n]dYlT\vwmbuIfdEX_2\SfEFTf[Vrl`qnMSeU}xaeYf\sLhr`a__mdaWV~Um*uNXEemZeZbW`WVveFu[TP[an}CYjXpKHwnEdh5XcyO`QUPAMqRlEi@NgCA_lDeoxcPzFx;iXbZXmhld,yohDTkUjadRxX=eMsZFAvqo[nZ|LY\_IT@dHRWzkq|{ZlZq`KmUTv|OnXVVVd`mSyWwH[N\O_i]n`e[xmRYuicbvO^mamhYYWNW[XbKo`K]o[Fb\kYuHN\jhyLcZh_SQdULcNVqiZjQd\Ll_yh^VoJZaeOOg_Meli^XMZZgyokWxlMc]mxFRQcRUnTVheUUnMhWhTbFVTUunbnkF_iIZEai^XKZXIsLJ|h^m^OPncoeghlUMdLyQndMvBW?gLf^n}hpU]UlpiXelghlyq~kdsQc^N\hgsPruYvZRVfJLcWiFoQR`tWa]]gibj~L[bbk^unTs[reekYnsdmR_fdQLYiubOZPXPb|MP_U]mgocc^xqVq\~RvYe`Nyxl{gdS``h[cY\^dgZTk\~w~vtaVUlT`Xgb\\iRuhrqaMcrqTdJsk^|tatdo`ZeV\_}_^_[]_uvXVR]\b]^o^shvhP_wu\[yluch}g[RMXTl[^YWXeR_Jqqv|^}yQdT_sZkPSeaTiZThJaAKukOndg]s^^Zjn[`nSpDr_gmu]Y\`chg^au_PNyuQU\]L_T_aYe`W\oV]^xry{mccRelxk\JifSTIrdLc`YXSLnYhPggaByU\UWxJbsfvqutZW\Fp?PUNnQ^eoZeY[~cl^FaQe[g^TUShokkbdxxUXgjk^hS\U\V||XsQKb{pshIIDmaWcXdh^e_rs_zsV\WKcMjRgYgVcfS^Mu^R\dkVOHXO|l^aq\oMafehRHRu9Ve_WjVP]dg`YQ_iknu\Z\]bbZTalu\\fUYdcbbL]m{_Uc\]OkHV`]h[Tm^Nzf^Q^iw^fYkoH]kfjqWel`rccQPYgsWhzhpZyvZcqRY`w[flZdbmZhhUbvspnsPzYXV[eakbgbqY]n``gqyz^\gdb]m[a_]_qw^e_o\QtPXa_ro`sYZpjdRy^qtbUtkmKoWm^Uj[YacnSSt_OdFePaB]agcab[C`kVehTaZVkNXdzz`L[xRnRfodPGnXPud^PhRfuRW_N_ova^nbi^\VkkbggJW]^rTzPfnPTUuc[H^PW^ebU~usVvSXiSWfvhOTKlavMdS\NWfI`Xgh]|lNthQvd_I[^brZ{jNSgRiXdch]ohEFdZoR]lqash^rKY^_mX]rzSP[QwIWrpRGaf]XoJgQRa]_rObf]fTp[`aO[z{dSSanLM\mSe`Tfn5hgpYYfyQzQjkl^hIebYiUjec^LsPcYil]k^Vjvr`pTOhfhRYYNrdPOzMb^uOemtbSfIqg^twqecfoqVrvZei^XrX]eRa^b]\kiaTf}T|]Ivbw}juVxqo_[\Lmnv_`uSSceltor^yR[rWLyQNy[KYthbrOlkSd^Xe\ksZjezK[EcoZgnbb[T\\nZs]]igdyLVfKV[ea^EYybglXZHUAaeoNqMaubfL^\ox\[|kHkqcQbcdrs\jdSVT\jhvsKuXhpj^o\nUWYcYaFx`Mr[sZTUXxePPZ`oCgOcRigZ^jtcDUuWh[OPA[hRmaTMPY`PcI]dOlYRWxZUd}ioy]^MgY[s]NXzmUCpbduCdyXhHoLsZr\IqgnMpQeoFgjUtDucWOu[d_bXn0uFcnWi\bSuZferKUeEhtpH>^ZruReV_fGcren]n~o@wik]cS_Q\'llV]O1K~mW[aiI\^YiymTTZGonwjtkj`b]pb[TqWp^iyX~lscnazfddalZc]h}g]j}Wek[YrV\k}?Zg}Sadc\bWbZbalHYsa\fkRC~bknfbdWesyn[_M>cK]chhsToEo_kZebbVij^\tHNY[zg^\Ku^`vpLkSw^YjhrsgdQ[jew^e``|QbtRmzrmt\owGvk_iSo]^y?@Th[GPc?j]]YGoR{Wy\YPgB|WMmNmhe|Q[d[^ToVS]\SdM]cbSXtQRWr_LVQGeRTaeX`WTFKo~gYSLptppYlVZX[g{`uNaPlfZovc`ZhtmVYXQN^}i_dg[^[Kn]_Py_Win\]}[aadTQYpk]V^Eha[ZBZYUvXF\WJsnTfcZr\ucRETXOqQQJPnRefXr]aOPTkWr3YUag[orqiZruWnvgI|s`{\m[V_tLQ]WT[jY]SqtfYVcciXTZMtZkRhbu~UjHnf~RhObin\uO[^aIon^Ud`jMyWggc_KqksSnU][VB`mN=pm_XNbnbpjdf^ixgXhe`zqKbfud`zMZYoceZ`g_PPY`WmRc`YevkhLa`GsXQbnRP_lgkwgeLje^PVhnXSPnbXi[bPiaLjq|VppmJeLVol[rhIiuY^tz}MKhggiXS[~reQuAskhpQK]JvyIX`r\cjzS[tfZoam`tJP{zxu`qbUkhgZ}ma]S?i[eomp|cs{T]dgdcS[e_qFZY^eoyhrd[ipB\SWm`TxhdoBR~Z@PVyZkgsaWMZaSQj}_yf]mJPnVdbbizKJu\iRVibzraXg{^Bf[VCG^yySxYdxPO\\gZWzqksVq;|FUPmzyNTiqqgbmfcb\QglB^QdZkjbTpWMLgkLDkQkUaHKK]\P_[Z]PtO][fnb[qm@iSvuc^|\bd[RZXi\\k`rIsWrKXIXr^SeJsQLXc[PJo[lZjXLz_btpX^j[>ZseriiPntWfX]}>f]nANca{{bvhLtX\dPV^fl[jNiVsjdWlVvZ`U_|RPkKnL^[mehLhLbt^ockdckdjq\Ilks][i^VvnoOZzb]_z`[buhl^fURP]aRjok]Uo@gcXeX\|X]`GjdywPweukbgbbh]up\S_m{wX][UciUUQRhnudbZ]YxGUK[fZR_SZHfkfa`>\v[MnfcjgorhWg[[lngPkW[y|\UWXsJc_g^WW^ene~^ZXp{iXXYajoSndzTrrn^xcsneilujTSgMQa]beQpe\^Y]dqvoTd]tuJhcic\i`eolEVxqVH|S_WaiqYYUoBa\Q`PpbGNcmlS~Oq{wZiV_qScw{jap_X_sjSXh`n]^e^_Uak\T^robkqpmSk]XZ_fd_ef\]cwYW_gdsdZi]mqiVt_kevlhUihXfoieXVvka]g\o]r^ZhbcicY[ayc[rZzqkys`Zm___ubh]k^RU]j_yk[elr_tbbjhf[d^egdebrYbd`Gd\a_Z[phc\gcni^w[}XbjW|X]ZYYxNXOXSZ]abmfMrhll]evyze[`XbcSjXVVg^TGilauaaUvOUzY\_eV\Roi_lZUeVUZPqB]hfWokXidfwRXSl\mqujl{tpVce\ih_{hUepg\^XltVlahtKlPOreXjU_YQNYn[X_pU|mfls\izvDnlR[t`RcghMcOURGrZVg][z_ifw\pUaUTLoa}W~lWm^\nciiali^_rYdl^dxofbdWyWdlZ[ebi|fgn[_cTS]]cuUdmZ_LxiasZVqlnKGPZSN\|{nhwSaaX^eJ^B\oa^c}\oZ]jcDb^i~pY{PK]paiix\dZbaoPt_kXmXiHWNUSWVc\_i|Ss|`>`XlTtbdmTvQSSMhnW|[`_T_^q`oZZQa]u_TaXjimei]V]`SbiJVr_TgQZk|[pbjdi[ZfWmcNWfEaMgtUdhQRaWojcinE`ed^ZVWz{Q\KXY}\i]PcFJK__IQdF`nSyd[Rf}OpTcRlxmlxLYsTdaW\`LxaXSGib~glgjxgVXlKoJiTSNQg\U``\MlGZdOYZnlnX_VdW_eaTalO`ZlEHS`S[dV[cau`7pA~HbaiVowto`SdllVatflc]Q[fe|lhZdTiKXQh`XaNF~nvendShVcStdl\amSfiVavg[flQnTV@bYBZ?r_oij^eeUcQlaZEbd3hgX[dhJZkx~WXVXggjSj\ccU^YoNYvmZZQg[zQfa]jYVL\t^vf]^w\e^r~Xmdds@ps_kPScdVbNa^R`kBbnigaag\v]^m{n]kw]vx\srxmlguIT~\gcWklsbdswWs}VdagY[Ja{UARSCb_znl^k]wPaFSpOSTiuibFS_ytdinXNrcixg[p<]d`Sg`R\L[m`swhR{jIUYnZNVMMQp^q\N_mZYnsIlyfecXXon@n|oPS~^``uZPJ_]^[wSNRS}eqfbPaurdOCHr^[c\QqvNeRVPconZ\lib~boZOQVWdyqqxnWT[gm^nu]SdZmXy]]siklekObTXvX_\ce~`dEi_wPycaSeIlW[Y~P]LVc`UVz]vR^kujZ^[H[[]VN][_n[aNniodknp]rfnt^^]WsVHWxdRjcmyg^^RhrCNXRH\NXc^]Me]t[Y]XaanvXmgfQ_udeWVnqq\[jI\NhbUrq][^ojM}MUg[ZzfU^gjg_NfuesdXYtVcvjhgQLkT}RZdXhiZc|nfmbWmfOd[R{X[NV_Yz\Njc]dhg_edhcYk\^dPXVjNdTYkSsgXX_im`bOGa\iIjbUnektIsxgRna}WX\eXm^gW^XEaozSUjqWaXpd^_jmfimiV`[Lbgjcf[liy]RvmzInrgjtuR|WIzNaW`WfkfeWze\lfDjQ[scnqcX^oiVgR]bXptIRplacf\Jwx\OY`\OW`PpqbMiwwX\__vKWOfh``c_f_d_ArMHj]ZOZsJZ[Swou\U`ZXOqVVkYrTcQPY^VefQej}dMlPvXLM_fQ^pPN`kxV{rwbZLTaKRlaQgudXKrgklyKZvaPnNoYwZNmi\kRmhWl]degepea^PmnxbReWV]a\PgsOyloeNkdss]{_SMadhz^]eVqroYWTm^U]cdJnP~HtlYbgg~ag]Iku\VT``Vaa[Q]ch_h`h\dZ_Qf[bfW]ES~_qVWmgbmbg\W^fOvEoWh]BmXZq|woP@WRSSmZm`jZX]jjTcdgva:_hVa[XbgjSLmgTcWa`vLj``]R\fTWVtevi\sb~HMl`mXdavfkLTVPiWpV{_dSc]Z_txHjjYQ^zf^cYVePWaSTmYdhbB|ptTRopNHZHfkg]_\{jl\ctiT``M}\PLf}ivIXn[[QcHzagshkRT[PYuSXbptoJ_cQaOzolHpsQhz`ZoU`G`{UJsw^kSUKc`go:`H]epsu`UDXRUpgJZihaea^iV=JWRrwkUfY`]FE[nc{>fVQhTDhUxVZQ_ERCUaU4tQa^cZUg^iSMfnbYSwGESap\GvJUvy_b|xcbq]fiYdboBSceVUptQLPi=[`P^Yeu]t\sDc]]iVJ{_eS_uvUcRaWQcu_Ph]]VK`iataXxkQUlhqehW][UapbabNkYQkkRE]XYtjhc^JUfeV}qEB]LZM[bGUVMd^SrVHS^_xdDe[yJVcQ`TPrr;iduVwItHmY_^VBXUEVgbjw\krkhe^tipXeYS{gGWd`e`igSV^TfLmVk]iA_Ia_Ribueab^fXcV]cKmbRgUj^UF`~MunnphKkyT^kAPnMZpfrieP^cgPYGZOjZeliPvct]bbskK}VOTcNYVgy\B^b\oY^VmVMWdZ_cNWlvu\QZMycTl]pfYgT_aYumRjb[iUKQ[g\jLISh_YdYmgMl]fbkMSneYs[^TuiQ\olZ[UQlpP\\ejkhUdPbXWj{b]VZRjm`Q^X`{dcXO[eakgYRmcbnfk\RUVYdKjeZ^Tdb\p`dXZdVUdX^lUmPPiTc{WUtkhalj]pcg_{]bZQp|`qNsnq^rc[SCgmb_^dapjVmWvaPTVPd^^iahj|a`a]_kVTpdbdSf[XUt^ka`PlfwHxpTQeO`n^e`lU[Mbmu`_VRcrZnffmjdjoi[`|opezr]Yk_O_newabTR@eTiiGcI{rc\^OedU\m[fUOWX\XWealvRoZ^moc_^StM~f{Zc}TSPaR`Lg]`_g}g]h|Kqjh{m]aXl_|_`g[whO`}WUWkKn_eQ_~gR_^dzugNhiSkW`vduNsyFbqRFYWOS^RijGh{WZmp[ZjjfiS]sSsknSzg_a~Xw`S[mdJUUik]dZimkfhoqcrRjeXkcujhi\>lcLShKdGng\bQPk@NQfD[`Y^Qfc]_Ow=`cd_gTl]Pe\^W^]e[jdmmmX\oRqvIPRZc_r`x[ajpmlIUi_Yn\rWto\S@]QX`zuhZW1nmJ>jaQbn\PZ]uPTVbdiUVcbbazTXg^uZiXphn[V{IlWKbJ_`|T~]tV{H^|hf\gm`GTfRbW``{iz]m|Y`TpsfkgdIzBcx{egd`cZ;eJiPOc{laMmVpdaQWViuamikkW]RJMsT^hQXm\wutZoHa^qCW?nYpxubNU^RnUNA{g}faY8[XbOLgb{@lo`~u_\kONSkVmLoYdfmovcqaTANxruWXTarSrR}hYMsZSbnXTQhI`qrroRggQ`Z_]ccZ^gmiVmlajrSoUSrJnWhnpPYOQroiThTlum`p_f?qp`hRfsZW]mYcUbe^ikCmnSff_FJGgjgBdngqcVwXteYpLbQrNZwu[paV[cZG^isCnRbFdRgldcTskG`aU]eY^ZkEKn`8L@{lSZQQYVW}UMmiUgphoykLNWjmA_hZQRQ\c~Z}_b^ivPe~}PKkxQOUkl`PKUgaQ`IrDFqbUfW\WUv_N_c~g[XKgZW]ohaXZRzLW_\euhx^WbTY\aQtLRnkQSJStZ]p[bKFgiS]ejfv`[^j{HcMhnvfpfs|gaDh[lcfS_YtCLt_dXNabmgqvhnPHgcye[PN^QWaU~^eDiYullsoPoRcipj^FNHLLPcUeg`gVm_]yYmR|nDsWnVoSM_kf^LHWZaoXf\bYLRZlaP\lSelqyi__X_kR}Ign]Omioekad`{gdUgNEURrUcZWokgpRXlRDq`gQPY}ao`[XMnSTX}VQyZrI[Yi_T\b{}kga][URTKWIYacc[ZzWKorTW\\g^fUVX\tSg]ilb]^fl`jmcSYlbd_`dg``jv]lcttbb]mob^qkwY`fZSpadcga[vYw\Zj_gb[cPnX^duj\`jg`o\euvazVejQ|cXk[[okaWb_l`ic~XRi_ayiekh_hX^[i]ngT[]k[ZS_lo`sajdbYpab`cN^`C\lWlX^Z_Y^e]gfzg_j]Yo[NmtvN\\TboHP^hVzWgd\}e`]`o[anXRY^dcf`dfeaiUhaxse]odggUepsY[jvU^mZ^Wmehtax]^hh[bVbSrZYtle]ai`dvfjp}ejUglSZX_X[ldcWgbkZ[bz[]pXaygdagbm[hZiai`WXWkda[_ruY{goZaUhYahmV`ZTmm[l]Qa^`[oWa^pjZRRMy\tmYR}BUaUnkemKpnNcfvDrgY]K][VT~]tmTvbA}tWLKZThgYTMtoAeRmmq`EqWhnZZOgdXc}^Xcp\K[PeYMo`|`Qc^jNLixsRvkZ`ehdaVPyjPHkQ__vv{^]\QQ]rj\]NTW_ZaWJpTbOPiPmoeSrmnuQWRdYvj_qpufzxSjj^Dd[Veaj`fYtoa_rTdIOh^_vZeeX^fpZhkfctZoaPWN_WbDSXUKTelhhUqaw^\\Ppfm^`l`fH`l[=VgPQNN]gndycy__npk_c_g|NHYIvYUj]iUN^NuXcnsssNpy?ccxjmvLlmiVOk\VOYIxiWaWdzAvXg\Cn:^hmPTgWTbfinajyeaUWf4\[^tZpSWt:YEl^kSqoVXcb[ZZ]R_hWZxUSTeSixTr_hb|omUOnJWES_]Xi^VVJrqRycL[ncWhk[rZrWtZuPvcNeXTV~DT~PMDSOt^kA|_UgkQ_n_FVwmFQVm]f`\O^mO[YZblmfjgYbdV_dZ]gY\RSh_X^TXiWyn]]ZNldt\hpFlNzL\RJgWQTUZzsNbZaQhb\fS|SmnyhheUaWg\r^\BMnrR]]QSfVlVhxUU`^cOrSMhR|UdfXlabcaoZ]oWl]a]RQdejWdJuac[XtYjbLaqaT[XuB`SoXSccbblq^SXf^lEY[TzXW]sdkV{]~cYZdW^l]QS]|U_UtZU\^Q]]lP_tUlhbUTzg_X[adWfnOelgaxUQn^oHF\WraXeksgd\^XoRZvdVjY[saLQ_ab~uUXMYYfq\[d]UR[aa_P`gkS^{}\^QtDQZs_\UswZedfWafU[VkTtrLjr]bNRfoRggTYfe]oKXRwhdQU[suxf_iOjgcnjfmfYclPbpgZ`Qx[jOiyNhePWYZk\WbjOoT_W_beXVIQ[^fsZ[gJkmU]WSiT|\_mEUQcrz~o`lgFe_Umlcn=ZYKlLLb\g]cTjyi_seunbguqlZRh[ts_hRer>cxB]icibkpft\oldFpr]nKNapBLxz8R@bttMlHsSrxXbWo\nlQkgLZkJNkP;{L{ecHWwi_qMj?]TQZsr\re>jWnoZcZ~njL|Um\x_xZdfPRTT_V]Wh[RKyuOoLXk_XcNKhvrUxlaybloiZSZ_pfZ~zWSZKYqc[thd^c_s[~cRihpnVW]_gXMf[]aXsur^bpO{QnaZZgIKqwaaZrVfa{LdgemSaYYsYfyYaj[mdMq]bjSVx_zU[J^oNwsw^eiaSTxVvMnT]T^ydnas_ghsagPaj[uaQi\KJYLhKwKknledgm]zlzkZ_H[BXrcRMbNhWuXt~o`UkPJy^as_ltpndaFpWJ{hWZQLZul{r]QzimOZiKV^>`PCkRxaqeQR~jn/iYf9\\qYCWS5~WSut\poQ>d[X]g_ZviLwg~ut\gkwsgiPOSEeZWeKgEVJTr_gotrbiUfNlFYvhboep|fkYoYbZL`poyjbjmXSd~mudZX^nmVUQ[]bZ\ZXuRy]shSOmWNRXi~SdUkNQgrTSo]Xeoe^`QeYrnKdfZEsZH\aknV|nx_|W`ecydghM`^gbb]a^zl^axghwycoipjnker[HG\g`r\nyeiavdaYTg`TgHxZvNxWilf`W^t^i]LPdg\aZR]Vbvpo`ZV~qnoSNrmakZUrOn_cN^k`so[aohfz]dh}tUieq^hV_ugOJaiHdf[SN[s^j^a[Yk^pXOmafYvgcyUJkYe]K_XK^byWqeaZk[^OgG]`gqUXbN_TRjRs_lzqi`|U[ja~~`mgabT^Zn]]gcNmyUyxed[aNi^qgbWRXa_c[Xg^`TXK\NslfkkNsg_qsTVfs`P~o[TrkaZrsevFaM^^j]cn^{RX\g_Z^aLTqSYeUrPfZ^hMeabPMswaL]^nc_Xe\R`~P`MdTVZYHRdenvRqHlbfHN`sIWXIYeQq[_sfmWVQjNXVXesYdvKiz_[abblSWeFf/{y]DYV}nseYX_^X>alcRyiU|i}jR]soeQaU^]kTyUbOql[jg5UmM[U]iZsUa=Q\b{Spf|hHTVRhdZq^LgtLcXRMw^cejRdoaXO\|]Y[m^W_LhdZb`FnkbhQ|QasO_ySYg[dapI^}[Wz:YiXyN^GoRGZaQYeOUglcx`GTlUAZlOW`rmc|[XT`RI`lfjbVMWhdpTVruJOxY}w|`mzYqeUf^ZtX]cYVt]}hZsFgbKzadvIc^fwBge^WrdwpLjZ@[d]wbm^Vs^cb[KBNJaOacRjkwifYR]W[cX\jdttnm_[Ylx]^nUlac_TY~[pMp~hQcXIn\]SokO`ckaOWFbXsTNCkT\TTbbHJfHPckcidcso]xtrQtwuh~goKvhP`N[N_Ukrvzvi]clbhyay]Q_pZ}sfc]Q[V]ldcbdYOW\tPc=XXonj`aPd`ZgAVrOV]VVflR\Zncjrj]Sv]Y|UsdTSaleB{ReWrv`WYV{bos[RkcUeowtbbW@cSrNbrga_gStykxYahbg__eevGYZmjxo`Snhn=yndeYbLdO~WZVTMlirSo{NjasN^f@bmab``fTXGjW[]\WrT]mgvRg_ruf^[aKnia^gV_jaXfdreXq{GVhj`_pTXOZqU~kvq_lMPZuWHZYSzZdEUkFMht_cpTQ]ZqrfnVjY\[xZTs[fVSuQWN}mPVu`zNoSEml_[WNbWDchIVu]hyUflS{|eMEXrl^_mNa\ta[Rce]o_nIrqWZ{ieE]Z[GrWG]`_s]AVhvS\kdurwdLZwzXMaHROO]~k^ehOe`Y]YmWhXVr_phQ[bcQsWjcs]VrGn\FwQOhIv^a]Y[ysVpZ[omjgUfq[QGnDJ[hR`jTQgaarUW_Veds^S}UqYiWp_h_R{ym[^ujmNbfaoU[Yzf]XLY^`[[w\IcVjwbSzKsnTdXnf]nXl[gVriZ{yhxujY^pqYdlcUQYI_oQ_X[}LiqL]xdRCfRiakypQekgjcBYSkqxm|Ldw]X\ujklOw\Py`E_YNiKRIbOZT|Q`WL]NkzlPuRSVmpnxk\Lf8IsPOmZ[xVUg\`affVaepca`KSWM]j1LOmcmN[bm~wpt[t]gQM]W`N\sYYhr]`Vt[aW`oZgnexzotU]eqWl`TWicWdVJv`eUgfzgDHISR_SPh_gYjy@mUOw~VV^AyV{hKdrXhcTxZNbXvTnbKZQhdWpWnkdtZTZdkdKd^Yj[SaaunefXXVz_a``jXgljor]TlMayaLWj\q_xhUckXak_brInofqe`U[N]Mo[MVheNeggtdVhpQ^ceLn[YOJ\pk\btV]V^X_xxrgRoN_\`]^uj]k_`Wznbi{_XnUrjJT_nNgGou\AV_]MO^[^^ho[cj^Uw_KSlk_K\MxjjgQMgQd[_LcVlz[udfLKQ[nhKotGz][^j_Z\tU^\[BRhiXpi][`Sfrig]^bo_^akUqfWd`Jz\bwc`[Nz_smZnlaTnQ\_kckgUhffYWMilV\ZAW`tKHZV|L_[qSPjj_Nk|Zo=ctei^OgsJYL}W\^ackggK]PrYhZipudZ[CUd^BonPldLNNyahNrRsa_u[qSYeVeKnOhQ^OqV{frnCajfhKVbpph__l\uSNe]fYrXKorb_Xx^j_{Qf[uZPNv^UUdiWOEKrb~jm}\[Y[djfgIJ^^kngdX_UXJydj__sP\e}bNjzl[SiwHdlSoJMdvgpdcUjEZngyfZTbgI^xGeuM[XiYFa\hSt~Ns{fTmj;nUfg[RYyvX^Iu_qgjqZu`O^KdTsVnpf^9F]Tc\d_[dGXSXNuLSiXdlnjScQlZgNebXo]vX\g\2YYWwfgdM]lUIO`nftQbWac^XuT=rtm{yU}^jvh~cjz[[dgtm^[mQTeVmEs9Q``V`CZb`bkdOS^gcO}figIMZROG_}XOOrwffvzpcyOuu\Slvn`ksWv}VjwPo{Ew]lYaadRQUGtpeitYQdXooVqOcN}hWWxEZTsxaovg_3UbaYsPPQPWXSSjrgXmWfFhcd]f`wSsj^mG]GTMjdccdjGtThgTVB]Hhgg`YcaWSSKZvoRWQ~l__\gf|cO`pvf]L`wTce\f[a]VV>[`Tl[[aaWfaRQe`~@eaVYK``bQ}prn[zeLMnce=g][dzAmV_qXPU[_xm[XKoS]ZgZ\ISjaajmsh_QOCzhZ_R[TYmPGZYdim]hdPWret`^djISySpYefGiW}ylQRdlYR]ajlWdUu=e}c`{sGOT_T[Zq_jYl\t[]iN_^nX^mk`[SdY\c^mOUiYbpTd`WJEoUhXtzVOMg]}cxn^yfoqeJfN`LZVWtpcpY}KQIZXZdlg{SWSm^G`ioi[NYbwz[kOPpM[MG]kTJaMehr;bwaxZX^rTkXqOYejVX`\|a^\RHbnqNZ`zblJRTXTXg]qpjKB^zd\W\\ZpRdVa_q|sha`GMZciXQfc]=ghZODOUra^c^XYc^^cTbd{GTdXw~h__tpnXIko`XPagoojc[hYaS{PlcXnRT|Z{LhCpyrH^TgokuFKOhKKpVkIfqUMRWRSdWPolZhYTjEg`uzbR_HQJIMV{_P_IZbrgY~YoU\[^IXQS`NoTXhOpSgjbjsql\keTUTU~`USo_MtWq{HUsJxcZuaRYXlh`LfOfj[jmYSoy\hNXbbP^_TSIMbsnnifzKJVLvC|MJkXbwk_XsXQ^G{G]dTwXYqq]U]^z]gpSjZwhIi]b]l\l_qV]|`H]jmXr_ofp_s\fjF{f|~QQZZ_vAj_c]_WThfiLdiy[[NLvkgfjBVe_]jdtS{a]Vge]lfcRfytThe]nr@R7ZYoigEy\UkkIK`?j?9jMFe`uajd@BQfbOztHRcqn\xdq\bSkvv]Xf?W]hLLeiG~NfMYdGplfeY\B_\VTVgXbkmZneightYgfhsZxbm`]q[hp^vf^iVk_mgWS`RwqztwVTm_co^df\lT\OWZfw]dV^fwm_d\jXkdjp]lazUujZnZcqr^\glgoxglX~T]gm^{k`hxt\jqae`}`c^hbcgl``Zxbqakaf_adfqgZoUjfbeisU_o``bdbfhlbS`cm]`gge]yT\[nlexcqb_[b[][gnx^Ub^]jaKYdv]j\`VWbZeSW]u_YOafPnRYUa`f\f^Ruh_YPjknhUrkH`X_jm^c{obo[esQQ[ju[imbg_[tTeiXU\bmdrZbh^\_`c_gomaOmZxaY\micili]tW[ltksc\dahZmud^^UXjdf_Zj_`VP{`xg^]e[hmmUVqneajy`^qNrKmOtj]eThF[ocoggYgdQIiROuMq[_\|dSpaeYbOadn[J__enVRlcnejrR^]frVpTbRaXTUaihk_djQ[{O_SXWoPwteWV]^avPWi`VoV[qhtOfoq^mUik`a`]XTQ[U\[pllM`fWd\Vt\bhutbJXLe`Zia\UHVP?egMyf`tuR`_T}Nf[^`jslcbJ_TPhecephvhPRagcUdHVWEcXMxRSZeUTndZ;Ul[VPk~u]ZWdK}[pdpfTKWdUOuZ^WbKeQ_Lahp_iaefTgb`t]cffLi[e^]UcZmj{XVnf[mRl\x{ux^NmQr\mZQf}q`Yms``p?HmW\QSTe^e]YeodvUhPgzl~laTE[Oatd=TOXe_vcNMWnF_tkimps{gfJYfIaSqnUYZpYF}iYTiXqY+iuZdfGZeuvWbGSl{xgmONwjxYfZoCezlVz]ipEsxa}s7[Swj^XJjYaU\kXXbHZCuXoTL`fmZgSioTeIuB^^Xaq^Wj`ScYK_yPedk]CYcQbm}Siq\e`jnSf@[z}ldSQqMhkePNHN:aSZ\Vp_~nW|alY^kfluyUa{ozZoIQ\ubZpf_VFRsdoTsecQWh[nDZPlXvi[\W[EZwguXyiQbVFvql|N]hj^Tf[gFdmE[qNkM\L;KkT_Vf`ni_`\Y`m|tcPgpSgPR[|V\_jqj[vj]ZP`KUXr\iHPZcs^OgUs[iO^Bqsbk[OeT\oQdXS`]xtEaa[Y|PpolOZelYRNEVjb:@f|Nm{rKcmkp;j}bLmRK@bWlZcVi<cx}Ny^qTek|Z]\b[ZNSZZMcjcOzd\e{Yt`tcVmUj_^PasbdYpyRc?]ij[bk`hqUpa~qZmEq]evaP[iU]ocYjTKiXVKPUlYkecu`[jt\cbeas~IXr`l_RYUMLdc`Qf[clUktok^]U^rhPQ]o]TieetaTihZeUi^qSV]]Rciatifnkzqgqnpw`c}hZonn\ViVqs\ndD]_`ObW]cjsbnJUy_VXO_qPeg]_Y{YWU][fqje]ofuTUWrjgVkQQs]cWh`b`\j^tSeUZ_Lgbby{y_ZGpbVbkv_PVkef[izX9RVk[\baQVbici9QTwMbLN]e]SjIicYh|SxOoRNfIQ^WgGQPhSv_epwzmF|XW]bVtNippibjSeJkOSi]NwWxIVbQnS8SMfavSW^^`WYfdk\x`p@VdfUI`Z_oWahoXlY{nZY_kSE|KvlfnngdjLmnLjUQNcZU_XNv|vupxvD~VaWgd]WQjkkida^WaligxWYdHs_pef`Zf5hSpdyWNqfmPm[ubMcgTWhiRaq\dglaSVPZXKY_YbioS|WSf[cgVhlV^l{DS`VfrilMrikMW^sec[]dQn`YhWd4^KUqbxXjcge_VH_ZZ~@TVYacdf7g`sS^XO[huiwfhcVPsmRmQ_z{QUuwS[l~ejimH`TbVrItNq`Rm|j|V]hqWfcjeuf[mlhsk[uxXUj]oRNemePWK^iG]pgXemGopNlsn6]lsoMj}Y`Xsnta\y`UGhlkbelrvZ|z^WfS\zwtkSl{0{WprhhrLf]wj]rYn[VLRnS`Cg|aZSdXh|D`vZogKosOPtXQzfntwthdZhbFJhO`r@npgvrBhw[Uqe|a]=fYfQs_KAlvj[EWdpmsz{twdNrbw^]]c\~Vlh`asbniSi6p^hE]rr[pjvh\`xJLuxUt_~/jhds\czgYFfQ@`hx\grwyXWEkELbxdpQVj}?^NZf}Znh[vgUPeLfoXq:nVYRs]ZiRhibXQjepWo8gok_tsa:j\qa[wc\\E]g`pL]ealdW^`h_cpQef`bkhVQ]XSee`Y\\fcfpceo{n]KnQOCW`ongiZ[pGbkmc^atQSOrNe]H\cXU]~aZ`nV{h\zi\{~oHLqUL|cSVeMUK^8RbF]^tVisXVeS~[]gdpU^\{eibfThVLeRPf]zTch|bWf{LTNdLY\iexpenFR\kRlXwfa[Xb}ZzWi[k^hhf[kpZrodlRbgSr_WN[USs[fS]`IcGeke^kfWd}cbsV]UdR\XjYo`SwZuYY^hQmWyrYa]|W^hb\LtZl^YW|YLcWQ`sh_]^bqcq\g~HpjrPZiqQmRKYbedecO[R^hpdbbbcE]VjjVr`pqz^XZ]geUb[ahjnuXQa`fzmcaY^ZqlcVV^BWkWZwkPrivdVVoSIcjNaWwKi[i[SYym\Gm`cRaZ^XphohfIASawu`RsKcGYO\x\APXMieMz]b_EZeW9dstRHXc{az`IxVpSea`ZfRu^vCpd`R{OKqRm_dgae`vUMwvRth|dQWZjb_tj\VqWWeiNYU`DTbhlM^OH[PlNMoV|``O`f^dinNvoMMmLXgvwazfqgMqY_Y_RhnhiT_\`ehr]Vk\uRRSjalLahxa?~ti[kWO^WiUYtv\WgbwLltf_uSjhZ[bbmqO~XT~`YoM;VrBPNrPnQohf[sXI=XV_Xf:S_`d`NY__HTbZ_}Fxm^qXb:gcLc}nlapbSrY]folZxa}jp\aPOX[}nqF]k`oaq?XW9`Xnn]`hYucd`caV_T_~VZhYH|`U]X`a`drkfXUTmcFYmhsW[mOfjftJs:LiUcmXdtlTIkqbXkR\OJZSrw\ooZzQZqXo|bMKo~rGPo[Mc[ujLEZ}^qlQNb|sVcnL?c^iL_WT]vsPIV_}dOgy|ZV\`cOKMY^UDd[}lNlgUuc[gZM=ueKnVR\SNdGYd]yUm\BLe9mgpt[|_gWE_K]XVtQ.Oh^LnwbjbQKJqyPibtVfawXb~]DN]EjnjQ]sUb:ewNuRRloWZWrIkmJWlIpvRn`^Vg\3SJ[Y\9dwI\dMkTsvYpEHiYXmfL\taZ]][Yr\csp_WfNWhFL\R61gc6LeVX[ZXnt\ShhTXeHTEoYJMNpG]xuPfyhKDylfrhYJn}ZRb`eLs\V`}y~`I\TPL?LivJhsGkYDQm]fBuOPjod[xi@q|age`RindCWVgVT[p\^sU]h||]`bfiZZbVf]gETdJhKGWVahNdH^vr=qS]@UmZHTonTJcZivt_YaodhBgPS`icj~cZkfgcs[]%]q\olnxgEfFB{_TTLlZci`JV`qYGPPa7RzULs|ON@^\XAOpi:Qj]QeuTRpxeWJ8qFxcMlrj\E^Fn9r]kEhs\e^axkiQgU;[\kVg[i\p_VLdNXRufPNNq_I_DZGMUeWN]H[YsvCV_c{7cVowkSY[NQ?oP[_[[JYSuiSm{cCYNLRZAlZ[cjf\mj]W\eJDsHVhFteTSrfCgYmFp?W{SUgjJ@be|ZkcGi[TqM_qjdhN\bkiR^sx{}hp`jN`eQ`hmR]UlXQhPQyPQaCQUqU~VL\R7K`AcZWbSQoykWs\dlPo[:N@NohI{e`VvnLFcjfRU{XE??ccjFYdYMfb_aQIrvHRQQStUCnOoOCn`XI]v`[aefouI`jhxpHnc_``MjNv_RTK]TjH~OZac]wYsIcK{OcGWUwnTxv_vmPMNnnmqo_tUI`BEmu`ZMx%]fj]xRiWT^g[YUNR_kksRmjhur]STlodc`QQ@KcM`nSeSx\`mqcpY[syquZi`piSyKIYjRuliqplYteFN]`e|V@`yTqwRgOG\GydSwlhbYyGqpfjtp;ZqTjXsXo@_9`yy)Z]>U^J`ZlccRvj]b\OVkbNrFUkQ\H\RfdbiSkndcop`S\`9aYgWnknFp\|eVbRxkP?Kd`P^Pa:WiaFZW\av}jPj]VUnXltXrvHkVBvrXfDT|VdoXnvPZeTwxVRXWhghy}Xc\@MQMgkrQxVzzPVgqZifKxVU[ZUf_pNK[{]^~jlf[^U`ON]bbR2h\gN_xrWNbaSF{;qjWGLEn^suJvo\mYrkA[Dcs]cWtebhq]|OZtf[x8wPjXmhgwaJp{|oCtMt}r>tvWhh\Zo}vN=R[jcpqQzbQguaRhTtyjWe\\a`jtHpajgEbkv~wa\}nvVmsDdtOaxUYy]dHY^opwgsN_Vh^QPRr~vIbJcWbpywrhfr[WdctHlggRQt^_l`bJpyjwU]l_j{W?dqZMoeKjxScxhaqmmIEem^`\bfjka]~yY[sJXKTGl]`teRgfKrEOSnPOo\g`y^>fdOa]WahawhpdvjF^keYVpqXiaaoZHHXwWdnlg_u^OelgD\HD}eayXb3QW\[RnSi^ilJfgv?bAGnKFJ~V]yhZgOPhtTiZeRWNdb[Bq}lo`f^?vc}VTS\dEobb[}lXjL[WV[dPA{QbpjzMiaMd`XxP`gMmYg^etw?^T=@QbHfPhyZflZQ>kz^[jhn]^So`fedjlJp}iBFr_~XTXz[c]VCff\dgzgdd]Qe`bwWCKZZbc_Uh\\aWqYqZWCNUiZTl}q^ZEdlMqoUn`PY~HYk]bhouZpMmBhV^hdY5PPW~_gaSUq_QlA}_XRFyee\tM[fM{hjKVPehRTnYcU[pim~ZwxM[U8[bRUV]ajQVb`WzfiRi\vqtgcNkNVV{XPpbfi\c_\tIZVkq[s{bidong_T[gWZga_U__;IilWudW[rl_dLdRFSm~dTdfoe`.TWTZTcUcZerkXkO_vZaQQYwi`WYoigigPloPKUe^brZ[deyW`lexs|opzonk\WIs[M^^cp\bRJdxwffZVW]zkIG^\by~SotXhUstXlV}PbWYfUyp]uD`]C]ZNL[W`p[dj^jWiEq]ON_NBdHvTTfqUzLhUXd[T^bhZYlWc_WhIKzWRM7fXj[WZkekpa_dnJMGYgqKk>OwWC]\VKgm[sM_Hr^c_WoIfdXa\KJZ^W]som_vdfukeTONp`yuJjRMPNXDsyVBdezIW^QPa^]]wVg_DYl[bk]]W[warnbgj_\oWxvTUE8\ewmNOEnZ^sFR_VpXaZZ[?`LcUvhj>cJP{Mzz|V[^nXmWZYksr[TC~iAVjcOb__]cv`O^@XbA[|aOiyodYuIVsvmS`gfQzcL]jfSSHWlHWsikIbi^U=dm]hHS`WSnI[fXX]QWP]oFe]W[{n\_bppN?dlpw]Y`V\O__dc`XX_lYgTTPw?fpJ]C]_ulnbc_Tfcap]RmLeT[Nhr\RXveVLKRFc_aMjV^\H;YQ[n{czQkd]GksYQLAdZLffEYoig}YZ`[\utzavQrfw?keZ]wSLAhVaLhT{@^Z]USi}n\wsEu[VdeWcjY>v:TpdxV8KeuVuzUqZT^Wyjk_jUf\e@h_^K_bluaSGaoobc}KeW\gYl_hOn}kmv`tXwGaX{Tf?Y=WONXmjOdWS^mrbnz[_7VWDjYPP[r-UWXYb5NWY[cyPZYGn=_hN`hfBZipYoKFdjZNOURAby^YqPTWcKl`d]\U~TpKtPe^ZwHp`Uaj^`wgFnalWbZhP[YryajcJOWcQZGURivf[qCsXq]ahr{sLeOehNUQlyEW`^biXZ^\f`fkOeDaiF\pWg\zl_VYbT<^En^SWPiIYGPi_whVk9RtlahI_lbOqQaheqfUPdZdYTUK]KfncU_cSWybzuskIfUW]qhR_RTOhlRc@]l(dho@SgcqbQA\f`w==aMiUZXMkkNU_[cgThijBbF_:[OdWJ[HdlMHcdm`kxBA\c5vkjzBWp|QEdb}UV^XS8KTZpPlsPh]fmVkO6{c\YnSf\PrgkVydbqJTd{b_rexN^@sUgZ_sKaX`THThU~HkkgLX\OZaZcb>giXAq]hDuGTand?{OsZy\rF[W]dGEUUie~RjnOVHKcw]T^mvdETbeN_\aaLZ\]mxwarf`f{qafMMBZq^D\fnmy[cB``DnE]\rllsa [_aZ_dg^e_fp{aRFvf`\YeEKbP}SOirz^S]h[aqs]EdbVIcOSrgS[=UcjTqreUgSqYh`G^WRkjVljp`CYQfl]CcH;Voc~[}_CZp_m}Tj]`Op`]WVaVYjZVIPY]ObwoUxejSGRAdOT[gSgtgYH_~MOfOQyt`JikefOtqHSbgVKkkR\uUWXLya>OiWVuJA=ii`qaldX~ZWjbdvBbgJWU^tvOcZpZ^iZa`bgXeodZDYf}ZjmbgOU>=]goaf]US]Yna?izmrgcQhtJunai\La{dakVQEfPiZpSH]kr_KsrX[^uvX}`enWxkqtoOyzXNhrF`X`nVj~^wfYXHgI=|mlcbg>jbcykVmceuajlFo^Xaon{iDglNRdV[vZU]dR\f`LkjXtuTSugoN\OeY?yiWSU\R^}Q\_bI[h^Fhei[zgNZNXsriRuWOv\vnJ\1no~OcmiTHRa_a_^qe_fatkml}EeEVnMyV^Af\L]GV_QP?]S7bUhRg}VjGw}RfrxUZV]z~1acJv{YvuXl5tvgcRVavNWB4iMNZ~[rdG^lplVlobU>VYZN}t[N*OZv_O_\9oz\T_wCZkP:I`9Qm^Yqeb~QiTqekKvqiv^?=mc_WZZVF~uw4kblriQZ^nIcn[rGR`RFP_DeVdFPcee[]odPB|Z\VxccAScOWgHrYmFWg;KmLQGnF\YSfXzgj|kY>`xaLIgPZl`FlkTxollzpHBp|gvTeeRe`LcqbuVOEIgRH=[uiuJahLCvXs~dhdrIN\WYY\W|{ZXrdJtVWWvM:KsbvxTjWZXs˔^~QcnjJ_d]]tw@`Sohv<`yQlNjYe`w[_@[~f^vyvTWeLVD~NUmfpHO||^h[OgX]Zn`\QOhMiV.@^abFNeW_UuLVXqdijabZ;WqUj_MOqQxt>WkhaJkdDSZ`YXn8qjneWxo@v]McgC]`_^pgebfF*r\VgVL^Qg\VZKd`oQF}cpbexa{kai^cbXXf]ncJ~7dnif\^ZdBglIbQqWdODS_ZcO_sbXRPVR[|Qb=RjcXJ`E{\iibOVE]a{d]bYXaXNTejIjIgc]]SQU`[o~mWefihjzufBZaTv-py_\Vb^zFh?TWdw`LiWcd^C>X\]`_jNST{[og;Y|kQZJDNwkuJbZ\lX\TZPYHYCZL@_wrePp]lj[xe[WiE}]O\Wr`Z`B[TWPOOXdRfcifMmdmpQ[Y`V_d}]ta_lPybYCw\O_HpWrfYYVjT_ukUFlmHgaTQk~z\]R`p[`K`QSX>eOymNeSTgGO\godVb{w\_rbRSNgNYbi]R\?qq\|aGZBifTznkYWnVq{dY]sYWrWMXore_YPhY]Zu[NDFjgci^Wtp|foIYeXlYaYWkCT_if^gIfs\Dcu`Tal`gN^]EX[bXZJozRdj\\MZT:P=wVu\pc|Zp_kvcxajXtG^af\nhQaOQafxPURndSN]ltiQCbuvhfS`T[_[wIThleajg_tjghMbCSZVPLlvucGS`b~w]?Ik]XjO[TXuerhhw]a`a["b[`\jUOQtepZ?W^n^o<9cW}ic[\^bSdfzpd[YRZM\ZU|_PXrPsinNClqti[f[_TXa8^XZv?MM\pvQ^tabZ_e|Z\]gjNYSusKoTeqcOS[^^{]FOPuyeXSz{]Oweucbi\alvfFifhxie`d`KVrVbc;X/HPW`exb\XtBQIqw>_tSabmjdmieM[y|Z]e^`xrZ`=\whY_QWwN_alba?`_@eaq~twZk`~FgOs?[Nx`NYbfzwqimrmcUWeZeoSd@arw}ie_Kj[oAU`gnHbc`oco=d^P^ZeihZ|koS_^Ej[yfhC}\{_xd}LW}HmXix|Pp`sPlahq_~rSXOPpgjfQsdiRXmPaiQiyfV`F~cwTaFMnPp\_b_b`Om`[^kLi[f^lXlX[jiXUQ[UejQ|pUikwTw\I[h\lZea>Liu]ibSjScX}`W`]ByVxEcP^sboWSwnezcmjISdVibZkTYqHvo?aT^_WbMYF_D_a_b]gd{cSjQtX[f[\aj]OS{dlpzfzb``ihXqpgmYAjZb_sUWs[\^^kaXlkB>qsk_T{]BNYGXtj\:uNo_NlvwH^nwSsTENcli^}[9nCHToPNltodvY]_ktibbbRl[uPq]UdRlIk_gwNZhvYrU~[VUw_^PdVnewYsmf`grqhtaQbbtLhechZ\_bcT|QblVXNa[fjT\c`oI[YrT[Ww\`{^xkRZXaRocAX~\Xba}hT@@`gQjYJXu|E_aY]l[vBUpdP^OVwx`}Ycjq[cFQYkdPfVkiadn`UIReYOr[WsmrYQ|`er>c__jVzd\hHjdmnaE[iofGXSi@Ui]mjbceh\qPP{caTUV_hc\\P]e_ReZORb|brO_qzW^fgrqfo\^icRo~jfghRdO[s{SekT^Yh{ESbSLZY`curjqO`h^UYldo>JWdygghxnkYjUdZdZzGNp\iTe_\jfTdStwVjtZfo~bYudXXcZ^^ebOjlCJffk\Zl`NYG[bVeUQGoTJn=vGt}coTRW{;bxU(stgEXtX)fvHetnvWeR[JOOdMjf`Uuuj{lX?jdQUL\@Z]kIngUS]R~\NqRLTbX\am~Ee}VLX@bFlSjed^dQYa]id9oH[ZZzxshkU\SQIa]oX[lTODUqycP5V\q}oJbc`ySL[\crgfnTJLXtNwnYlLlZghX_[(U{APhVPhloPtJRJj|bbCn@UVhfvSjcEb\}gLQK:HuhA\mZu\]=Trqbh(pMrLdekPqV^pLZVWEgb~EO`VSbZPy9lr;_7PKo{\lvDsht]`FPiNcUgodVys]xro]vxY[pc^LdktvZl\\M\cb\_tYfashKa]obmOYbNr`fQV`U[mfq[W]L[LZZeUq]]uRPfVthPRYaY]Xyp\WUZc[^Nxrl[QJf`r]wxoJTae^keqSaVImV^gKF_YYdydSBihdWiXngpW]_ZfZMF[c~iVt]bt\vY\iWg^e^xdMwLf]_\b[bcffOnU}NTWajHJ{uZ_^UqhGkZon2|]JoaXaTT@imwTWb\dxpanrfKn\tNiLpkHRX>ndQj`Pqoqhf\lCGjnnpU_pClEUvkbaf\rTdxw\[OXh|rhGV`cW_hV`b`lV~NOcO^PdWTv;hxU_rl@DRcgZQWE[oKdj|\\VzdQMLT`VYcat^v^scocmn4XQQSOjQarudZTHnWE[lspWIVnKCH_]ftbsXRS^v`|rkbf`ew_Ub_VlcoxaqjfVZXfh[Y{QqblfV}RXXpnEY]pVpp]]elz~PlxPB^WLn_iW[ji|anl[v^_IRWdgYl~VAWhbdqlfx~Qo`gwfjj]gINUrvcUjQbe[PeQDXW[dYhVhfY^t]ZXZZU7`kjmgC8VMS^{L]{jYfc\hGV]p`VE~^zTMnb]diFy`iWvUgkTbTnkeXhZMXn]smil_bIcprbRTq_M]rk``mkoqRxOJpKii]vkdn8UeZ^_SRe_rWIWlJfXTPUdYpMnRGi~cNvg]\iFJQWNVhnIPgLkUWT`[O`VkovHdynGWq>^FZ`t\jTIPuajhfwJh]ZXTKbpnenY`benrcu`~mQV\ucUZickq_@[XPhckdubaRjg[_kceKZ9vPlEN~lVM^_VnmI}`WhTnjqYKbnUgcuSXA^gWTffrci\L]]Jc[ojRk^/_YoyHi`k`dceei[Gp[M_jMeox{eTjbchQakWsRyXtUmXbP]Pl_NXhS\KW^bUTpVV`Xs^I`^j|aM^UndbFxa`]TZ^\nE^Wl}an;RaevVlK~Zlaj]XHpl^iX\[VEfQhZSeTXiVD?QGwacc\ffw`NTXR~rmjQiUWbeo]bHDbYavyPrUAbmeQSZMMh_aWSrWk[k[bXEeaul~]igEUY`TK\ep~o[Xd_@eTM/iX_Xmdh`V\foR|BQeTZp]SleW^XTQTdQaILlyb\q^g|m`Nl_MjgWLp_ybdAVpUYQk9\i?g]TSb^n@nV^n[o\b\f\btUbOv`RnX`veQK\]deffN_bYT[UukYz\zDTQSSyiNfvlcXPcfbgd[cwY^aXvhgRXSXVQoZSsajLfWT^\Oarns^vXIK]hhl`Z]qkNfPWIvNaYx`eWtnTFV[U\nTfvzrgbV_jgef\hsLYH_J>y8O]]kMQI]iq^Q\Rmqje]GeZgg|XqUV]cDbYxaXr]DsHnOmZs\[eOC[b_Rhbn]|iNljfZNFLIn_k\sbS@YF\`:VguplYEC^PS]>x3]mRitlf~bgxud^Xfl|`Wqa`FOlYLyWcOQQTrf[4hUhwsL_eogIyUfZqfydKJOcRc_J?UQaQXf{`dHL|otERaPMsVRKY]sbtph^_ij\iJ[OljpyXxs7oqvi]OYjmTw7VeZs\kYGbnmIclVOxQmQ>^Q\]pToLNj4y^YBW~uKauRLQ>Hc[iWgUIaPm^RT^ArKUKb_@oqg-_eVmddyC_TU]ad_jUUmcwtU_]VpZh=[\CbL^TkCamPcBkZMzVQRVs[_]e]bV`ED^mpS^`\{t[]\cagSaLJeSrqY\S^mxSuAYafc\hcM[v~rgLQ[VslQn\{gddKnOg^V5doPVtZi`KWZpkaa_^eoxuibdb`P{_t^`k_uTnPo\Q^PTZb]]HU]Y_r[Kd^An]FVxnGKNNuga]Sm`^cm~rYrmtZudG\asTlftIhm_a\uCVkvmol^hoSsTcErZaNlg?{k\VOl5Vgr[i[o_tb^iKLigjhW`onLb[JSgX^m?Mf_Otv_k[gwhU~aNLbm^pRXV_uPvmWJEvp]^ZTKHarP^uNmTAh}cXaLPMogVi~kQQ]E{pie^HgOgFWl]WyfKf_uRdc`eFxzU`tQdfw7SVdw\ljpqP[l]\kwe]zgfdqzapmC][qxcrY[fxZiLmpNQ[[MjM=UlSGmf_QtZikYG_KU[fQl[]a=_jspkYJ_MuNcNXGajPOH``IekRkgvWN^xlNScg\hjJf\dCd\TZogkkSPU}_[unfF\agc~hRoXfYVUOW\Z]JV_RToh\di\jbajb^RuVPedqglhUjpdvfXcZR`Hm]fcOnV]\SiayzVjUvYdTQi^KfwlYWpYT\PSjV[pX^GgBvb^^kttaRMQWwYXszWM`qhTFs`RkZP|6^LUh\uXdfhGiiZLb[\Y?k]a@V{VqkTV`ESRMi@Fa`rQca`jbpCVrlT[aY>nA_M`b`cnlqakOn@C\U[eE.T_i]dJNbUbdUej|SurqeamSWRgamnReuRj{M[IQXl`e~bnfR]`X]_SUlL[SgSQ`^ecMNe[7qYnVxpJYI\d|W_a\^TV?oO_^bR\>jglNKeE\mQejPXfOYF^KODlsdmXQobbq]@m^]qcUWz`v`UvonSUYg^n_{aXkhUf`YXuvkHYOWkqbb[\[^tkqZ`LfQcQqKWKncTfOUo]lI[ovVQdYqRnueRbhhlQ\bimYmlRgp^KSMwVwDsZcQpWdVZgihHZJ`]kgffUp8bkvCakhV`CU__\kakTR]a[WbUM\cClXYkwjTpceNsF]]c^JywqH]ueYasGkqXkNOSfKPTepkvmFXRJruu[\aWpu`Uo]wPdWV_v\OVRb`k`nm\fWbOZktYfPYlLk[vaiaactX]xSTmadbVqtu|AI_xbqEppb|HcUadXDnxEINnn\h]Enpq[Ow}rpiraQSqmVOUNBKMmI_cabNtwj}FY]JQ_wVTdVec]VS]TXVoIPQ_p^EPzsT^x\UOSLyjTXmvkfjTxm9Yi[elYYZ`RkZShtMZTT]t]Qie[Zubls^[[WsTMUJc]fui\VkdOVmXuGe~bOnjrPXpHcl[jWOP?LeiYS|WlYg]@YXtUEo[qs]n`bSawggaOFInolLLfInNdn\ZrqjhXmZSmqQIpge|W@TY_HvzU}WXvET]eH^xVEgyOdiZbatGcOyMJaiaHjg^xWqQW^F]fYwsgK`oT^_mxLtdx]\Jdph[rQuAtbbYPyQ]TQK/lx}[KC=DnxaawWJmhOzleC]b|SqfpeTVdLbnVftQIqSh\UqabXeaOimdK{QgKek{Q^`sdUhhqX\UoDJrKqQty]d`Q_^btXUXkbMvoWeqogK[vWPaPJfc^YNoa\}s^rdoGka[S]W_Pjd]O]aQg[mwbIsjeY]ljq3\izfgPkXnXjaK[jIbFYhQrSWj\5|foV_Hl9mibav[kK[ccil_V_s_yhlyTumvPvjoZbvb]PJQ^{UaGUCcxZfj_xjYbnfZSYGiud_JcZ[eYnzpmrYvHQX`tOmudVhGj^qrre|MXhuDm_wt|Sancm`QgxLgHZrYYdbRnYLKX`[Y_WdtYy^bfUkkZa[XVXaRuhs`vo_SbnL_[cwRuzkP[yEzvwcj~lMonMlagejhO_ZgLY]]n{WW^Rk[\]W?ZPIlNg[\ZeXPeTkg^_FOl\kptU~nXmcR]D{UXShURTY~itaCOacY^jaj^KqZqmuzcm[pWQcQmSX`LqDVficAW\tqiKep_dXYS|wk;n{d`W`WNXYJ{HlaPU_[_jaqw^{\h|suVcPl`A]LYYCnlhPhRXgsj|]WqD__R_QcnGp{^ZgfgSVaaSmNZKqVnzs[@`YyUevSkrrsVr_ay?_aWchcI^TGIqFecNi\ix[se]u]ygcRTi5pmY[b|L]hY^[Zl\sXYd]:_efZInZfa\Z`UiZnxl`IRb_YYti|ocoSS[dgR^`Kc}pYWv_|SIZdYQkU_cgSkfkY`aUNud^``sLYjkjWUNniwr@Yik][_kgm>F`\G[gOjuad1zgu|\\Vo^Z[{\Mv]WQ_Wb}PsZW~li`PMjTgoc9cblYhh]qoagach`Xl[hgIeeUWUp__ANrkSKbvOeGUh[utV\TfxmsexhN\l^wVrSSNbt[M]Gopc]uVl`tTZdyCPm\EDG?PapQjlEnfcX)_VhnVUhF\LsuY~mO@dyXZ]}gwtT]yxs?ONLiYr^XSUknXUOYePUlVTZ\sI{Nqm[qQ`RGh|nbUgJgYNN}bkXa@R7{aNahWmVdK\q\QLUkOzQ{Qg`dGsBo`vBjA[VUvwjZRdk\Cb_x]AKofjbrvLu\X@DJBRHQ]ls^hS{Oyjf|tVO_OjXhsVtcaYnYtXlas@NojFNQlYW`svXc}phcyXub}NW^\if]mVUNdgnatZYy[il]`jtZxxjsWTwko\mExb}eQcmpgieZ^^`mUQ}lCqeprnhZgQXfKcQzt\d`Xe{Ozr=tyQXwpX_ic`i^^mkWvTIk@~illwfqfaS^IblhYf[rV_UQbZ6]QX`LGmRhUlaQ]\IN],`tm1ibutjejfUINdPX]tvhcuVSpT]oJUcKZHVgTSx\jUXFVaYgNUVrmypIM8KhdpHX`gKeanxUPMJirq@O^_rUYhlTfs\_UviTOYiYA]_gs~Xxpo7CM`oWeV4PbrhoWRCZvXvYsIcfCYaieMjdlqdsen^R|cWTTkkR=sMivlrg7UwfsDYGyXTWIoxWbml|\J\XbJpQZPRNHpa]:][QZY~p`Re~qQL`dNm^WgSsg??JCRn=Xg_f[ayfUaX}nCjLQfYwIFjozzAplopTvd]ggiYliGjCjIXRVnMcegMoZ_STKU^Zf{~W]grJ[ElNkO@Jnf[v[x`xXirFJ]BbiWPY_dyNilRDabyWPkAssn~OTYpGXzRSi6kc\VaM=WsrZiOwzahXmS];wZYWV@XTikg]QMslwDudXfecf__MK]gjyZSO[XVx`cqnhRbfNede_sf{fa_\laiRicfQcV]Aq~YgTlm}ooselgYRbxCuMRtVu`FjoaYe]OedTNV7fs|ekdDaBXn|f`d_od_qQkege^[`bzm]e[^pwSiVitgPbNhKMoZcP`eS{]ODXyj`\mDaWsbJFJQT[]tVYdQtY~mXeb;Wfymx]mRzOUkXQqRBciVwiQaeMNYHuhNCYUpR@{VNjsKUT_jX_lHomUh\or^yeZ_Q`Y4TQmVoEa^JQYLNYrYeodGl@dzZ~JDPexqloe\9[u_q^]]b|TSdaU\WhsXuLg;M~VeBeOpcWuqrHmx(qkxifwNkQWsXYNlA]sKnaZ`zRWYlIrxP|dlaZjKu|XKURKlV]}tpdhxOvp]qMRWces>jIpYrd|gy`]iOzxf]Hp[]sje9YIk`sCvrLaYv_CIO[gQbj|Us~flGE\FQcaL\IXT\~znZiakRuMmaVYhwNcVSZxo[xbk`K8\WQLYjBY_4iYuuHpeXMKq}unce{[R[WSriUjV0dVOXTmYL]{TGks}hzcM;TI]WtYugPfJKibmXn;tsaYK^jUTwSE`bV6UZMQxXMvVi=iMs=yYYdzb^>YWIcgTe]raUX>h~joFVfj^^kLUZabGl^{dWscudd_gdsbb`dld`Wf[_VV^Xi~pf`dkoZtryR_kmmN\fuz~aGbeOLx}kaYlV`f_plH~HTR`gi`RjWaXnYqXPtX^MsRXVwQ8aPC{U]eEnwQLdV\i7\l3RpP\WHDp_@N_ui[YNpcV[Ljw_LvoPY^|uhP^kaC_ab\W[YtZQ>aee_kUpbqL``OsVgDW^{mVYR_AQ?dRS]WOlNikVf\fA`XJyThx`eoj^8cxi_wNj[a^xtgR\uTaUd]GcP]TSMT[ahyWaMaQR_ejtEP^c^o}du~PNvU]KI[RiZub_adHbnmgHJfw]PkKEfWGhjndDHxVHn`3|LPr[m~V~dO]Wcha\POyhgdtdabgrMwgObOcl\U\lfrfRGKbUAcX`hjwqKnrKUMhqkhjhh_YGWgM\}QZnglfAaReekZ^f\u^hhTdO^ZiTnnZP_bnjha`IWapcUuc@cmMmmzgVPiAhpZolEss^R^k_k_XpSTf|qMg]M@Ssk{hiWW}\K[jjkdP[POpSjmy^9U]SO_>EjS^Uedr~gVZZqShX|XgiEYqx\nVkMgg]o`aquLdBT]d.gwtQYQxdjixv]P^`abrsvg`cWRa\sVglcgPsKijI]\wK_rtYS|bWQEZiS@xs{[]Mr`jSNPvXbm>g[LFlMsXxeaNb@gd\o\KjMP`[mkQatQamk]ofq]Msn_IosesQwdRZ`D`Sm]nSYwaXvhYV:[gsMkrgwSXcrLPXUox^U]ctUbjf^q4[khR`aMiXC^Q\seX|`J}yYnGa[Wfj{hvclPaCxSkUQmx[VpcVdeK{T_dVXllf^OcM[YdfKeFMl]q[tG^iEkird[n{P|]^ntF`cdOiih_vM}rb\eIZut^I;mWUZ}rjkcrjy1j8_V^KjFV6S[rOG_ZsisAexZW^[IUTgiG^H[yGlZS\lF7UBHfHmece]Du{wc_\vN]N9GBU`\^vgSf?|JlaZsXVPNR_smI}Z]DHa{iOnGYNGjQnchisTBx]oxhaY@Ht>Fmogucd_EYuTMYzS}EegnkJgUS`j9nEikhYm_MSl_bf|?iLfggn0^cNNkGk}gdd_kjs^Hkj]Wd_iaiaebWgj}ZSjZU^U_eWyfjskhjnZXf{cdQd\LDyumPSQbO\UM`eNcwVomUZ[LuluVhO_bTek\dUgW@xXyocmNh]qbjWZKDTp8Xc]d]eZWaxcoXrdssv\KS[xfJfehRc|]xXhchMc]^zNj-nn_FXDaYDZ_i>`T[h\Yr`lfHQB^[rpi~fc]PIGhfbYuSfRK\]aRaSyqYs_`ezi}LLs]}azua}i_QG\uT[fcBqleS|i[XrYcgoawYXdfhhVnRwmehg@d4P`\^_bd__K`P{szgNm>iUx_Y^LaN:IWpXejRd^QPLe{Ri~IpePk\e`NXmiUm`GRxp0oa]SmSJ?^\`makNos\OTqoLiu`gSotwVbjbUhHR]KgTgqsketrW`VWelcutI}St[CUWkojWlTZf[Q`TykHhbS`[]Qb\d_o>\LUkPMe^aZn^m[ZlNgrs\ZesTcl[mwgYoLHTgxn@NdRdW~fScXtec\UP[ZdgpO_ef_YVIbDso=JowXgYjD^{Ud`[SIj\Rumlp\R`YMf]q\YxcdhVwd[bMWWRWnaYhPg[lF^qYpNRo\PX>@JoYTlGZ~tQ^T\PN}i4VfIyhi{UdQ_mdQhiWqnbORNzVW\7a]JYh9[RuucYIhVX1dRk>s\jUoV[q\\ZXuUruj_Dd9_[ijsdk^fOnvCnhBL4fZUYSJTQgKZjpP~ahSrZCnq\SY[uFbupq}zBqPg^tnaqWXN^\YH\vRLU]QOcdwX{QVuXaalUBcdaS]gjhc[q[_aXmli[W[j`ije`kyX`hcdOYWdWSc]Tgdd`G__jkfczga[W[BoT}a:tf]ksdnItIVU`Ovcd\]d`][hoC^dHEk`JFme\ocn^BLiUNad\q?_jp(quL:iaZvPk]bvIoop\aCgXTbsfTdOfMbnwuj`i^\`r[`VfAuMMCKIjMZkED\okOalDjhvpthfljWUofSUkdYWx=bdgxbIfkN[bc?Vae`tVIFIbsTFp^YnMiQVHnkTNeZZnGRO^aEqmk`OnGZbg_sS`hs_X]pSnOgTf=fiz`iSKjyPgrYvl]dJeYMLf_Zlh5JvoOqpWL`{wwqs^HlbgjaBhnRIQQCjimdciT0lvP|V_ShPN{{Se\fQ?leCjuRkU]PTLM{wb;oO<_L\YCK_g`Qhl[:TjZuKcNLiNSMLQj_lsUih^oPa@QmoKXtUZne7V6Bfdj_Tmro?yx VsV^eQyoaHw`GfZ^fq`Om@tZI_f[eaFQW`AV+@NLYVUS[`}s_Y]]hpM\Tij~WQ|cCf_Ys{ucX=d_`yObSPeXq]q]bfBPPNUDSVi\Zd[bT[le`LcPWhprQnl4VTSEovYr~[cTuiZb`beU]VQ\HdfwIZSguZO=sczLhPi{jV_UVssq]umit_bKRiWUSf\[mhzlm{Kp\XhQchVj?hBP~`nG]`^NSH]heZ^^gW_SUgNhue^XUV[\T]b3OQOj\\}_h~kLO]WSZUPwaWneosxMgclOWhVgx]NgmPDn]S]YY{^efUW`b=MIpNX\XZYnLpn^DlhOcgfgm>dZ_JXUk`S>Ozrsy[UXVvWrSvbrNHRn>dPiXPziZQn\B\eOVybOPVb;V?F{?\zS[l^cVstMKzqZ\`Qc]|d?I\emtjsT\ZUYbneGdSTu}F`<^GS\SindOoeiofdQL__`98WXQEi_aLsUbJ~W_\lGTH`XYrr_\ma[hZyonUag~[oWJLytNWbavQ\sN|bWZVDR[Z_VRVbjv]EsexDTg`{TZsdL\VjtKfpzgibJmI}fhC\ulrxlca{y\_qVkYV\PWYi^TZNhc]bRihNkZjn_[I_k]YgvqJ{fqG[]fMerV~xPI]_famdOV[QbiTchd_DeQnbmS_iaDR_[abXYnPLQUTdk[c^_Y^Otda>cb[jYEY[dlLWSxvvWuV}\^UThICjjvNVr}p^T_VrgYIu}PBcKb9p^pYW_`?XYfYwvi`_xAnrteEJiY>WYRt\Ygl\Ka\SKrnssdKbSu^nTWLfm^bC{HnwJNRi[]WUBSiRLp[Vc[YZeUgRi]rjN[XQ}pkXoUag_{`k}\rNZfZ]glOEonmvLtkwedr_a]OUjzZd`[^skHgk][uSWUW`mnG\OZWYmdvQ]HjlP^^Fna[ULZxUeDP}oSsa^XS^]fP^UM^^gYrf]_uWXX`eNUSav`gGhC=wR`JkNo?FluWo_RZXdoNbnkZ[cisZhnzWVYwCa]WV\[WXcfVrUH~gfRhHQaxZnUFlH=GvzhLVBdaKV\`fhS^UVkaJ_c{FyrMK`YYS;{Sn`kcXkKsXOumheiR`lSi>e^W^\Q|_doOQTTOoOfk_d[HZZ>tKKs|Rv`a]e?cUQR}XqRBgnzU{Xr_V>jhWZ]P[:pf?sl@>Vpe{twjb\fcRrdNqnZR;bfr[i9Ga^S:wKt|KX;bwdQMHeb~qI]JfZ>ZlNhSrj^eln[cVx\Ss2djk}}[rq^bVxmbgRc`oAdidd;9cWf_saCmdOed`U}\_\]uJUtiYaXDYg\adVinUOMfDTb`PaOfR[diWMlG9`sTD]iiRNcfV_gmiUMUcz|`[nIYK`^pifVm[fZGmmS\RcyR{b\Kj~a]`YkVhuf\\VzWiPJth[[]HN`OTcJbzlYqPbiUO``\uNjp1pR\Y\[y`lsc}{tWZ_bKhwnhMZufrPoTTl\]jhZj^Ko[cZR_^G@kOoSlQnoqoOzxqZa}BPbQ_dbXei^`i\bVeNWXA\^F`bm[[a`{z\l\\LRIaea`XYlTWIegSq^^hRicWv`pfdw~yAd|kYskm}=_up`_=qbaMpeicas]T~NaShdmuv[xfWUSEKeWPU?wJ^uk}JwYjfgr`xZ[[]Tv[VTK[>_rilZTP^_\w{B^MfmcPSoYeBT=cot_Z~iK]ggaLmXhVlhIJI`BcbjedlTINRgyXlPQSuuOInWsaPpEGuLJii^eKt`YSlelta=u6]CfeMgQXfity_VI`yaewUD\N[]mMUXgeQ{ZWZ]U}and`W]cb\zlZZWtp]uRrTqbc\RkWcnfVLkhWEY\wrOqwmngRor^qt_o^ZCeCb]WUob=}_]}]qIuumm[^W]\VTw]ambSXUdaw{sSlcRTSfMljyYoVofxa>@zG_'[YSim[TX\sbpZeadRUYLkLycavu]i[_gPYih`eT`q{Hf}pZUaPp`R|}^X~dzTJw\Wwp\g\eiSorXcir]a[]R`gJv`]wmNpvc@Tc|lUrvg}kU[VsvLP[7oue]Pmfn]{ysNQl^rfRxl^^YGXTf]djPuhbfiZAmauwxO`LeOG`LsL][en{YnsjjKjS^aam__rlcmebf`fSphYNwWPk]XbRdw[Y`C`qrd^ZZekvcs]Unh_QN_k\~ZicttkUehOabc_I`im:w_QfYnhHcf|bAjUeVgpspAemcSfipZF]vns]>stmYnqSdP\acYjrVPmp5zsgXbknN\^mkibgO`nN^{g`Yh]hidVWu~]Q\HZXlWfUbEom]YYJeNgSYngIQpcX_b]s`P^lw[vywr_aMaeMjSob=]yI]Co`^Z\RYcefWasbbRe`\pWq]xkKdNW^ep`sWYX]oIlT_DUPO<^fi=usjR^`eX|wG\syQ[R9_THNKaWUgTSvcy[p[TkueS[PlN\yybnWioIWW\owYa]WBgO_jP_b\zspjhQtY8xakhm`RRecxyYQ\docHSwQZcCiOn|VTMbXyitpiW]`OScd=hUfPlNicg[RYZ=ktkQplYU^bZkPXTjta>odu=tX^9gkAvy}ixXiFSqIZZchfyldWpsQ[U[XUW:TJI_jw^u[WeUqDbd]cb\Ta<[SakPrUoBHOI4S_Uzwl]pfrg|zo{]JbbSVOsEbxpTNeapwnJh[\ecrlsS]hxJfVIdtWy[Z\uT]iOnyTRTpmLpT]`IWRa[\fNoJbWj{h[n`]bHmE|Jl{euwX>PTNmavKabYpy@gXQ[DdJLTY`^LjXavc?n]lLOPMthRkoTTX_ca]aMP`_qVRKjwKRv]R`_xVcKjEY\mY[}JZnwv\HdgcaLaPDJj]XXeJ@ZeIQdaoKQ]trRP_UbhS:dYtibARp`tRLdSLOxnCn1fhgXohgXQ`vMPn_Tb`yW`WktPrgiawlF_Iyl\sjeMcWQjnyOvrZh^fSoAFRIXPqR\ZXvlk^]phesWP`rIvpfmRS[\ijPaLfeSvnTs}aww~RtjRdieXufW\X_rejyt7{=Wrk^OYQk<^uxTdch^PUcQWQVbMECmd]XU_U?TNX\tlaWQ|\^s}Re_lg;adQTum_X`Mq\Y|XI]ZIHW`fyHp[ECva_YjfcfeY{^uWWa\]nc_DdKj~aPb]\=bUv[`o`wMfXmRWfSHhSjJ`IXQqidy^2iea^=GvLpy`^YU]hRP}t\\k?Vq?c]xsyk\tZm7_OhH\A?jYZtSM^}MvEGgdWToWZepQIctzinf_tlOPaeEXn?DqgVhTLY=\`yngdHxd_aTFGrf`b]NIWzT5DuY^_T_ucV2eZcejUgsqdX_BoYVWRXm|jPGaZ\WQ[\RY2ZlPRXfFdFJzh`aMKmFZr_oH_O[L`kQNb_Y]x^wNV^SgQu^RFXandgWg[`mi[aOL^?afMhS`lg]P``sT\o[ZtiT_ZpQZ\boqbhOranYx[YYj`]fYfLpHzKZWTgWW^bcccz\WVTZbxgNtSW[@E>teOj]b`JPERWIgTQlf`vVwsts]cwygkXwLgkh[`jYr\ZKakAhOdxDuckSJ`vbOpfxZaSOiBY^ZdS\k`Sw\usNJbbY^kFigiheaVOeqdI9Rdcf]Qwmmc6yiMkocXejwkgvdr`jD]y^caoguSsbj~Xr^`vcmjYmdodtThAa[qy\ZwsiL|dOfa=hTieNNjV[Lhj[d_g][UeaRIJUbNX[\bw^g\HFTVYRjeXraqpprvbZ_tngxZH9KQpRY\ZrgiVZgja_PdmrcYRWlS\^xUQ{ypcuVbff]kJumN_Y^dwOcL]\bhqa`jFSkpgrQaZZ_\BJNT}FlLSTKQP?CieUKLa\eQ`vh>MXmSkW/\B|WiOJ`S8`f[ueqbwZhSiXcascNTXSXYZU9NaZaimSk]D^}`^T{n]J]PTvVaYxXAkT{;LrQoUuTWL>djfXjcVmwOmgJP;UdSZgPTYIUQSmczeQy]aNkWOjoki[q]f\FXEnYke\KSkkZ_^kJdyurW|{|^FITWS9odv~DZWMw{kpvZhtL\`u_eNSVd[Zd|KUSam\SXFe`wuWa|PHf^ZCdbn]qGxia[dRW`sxaQ[bQ[XpOVdLtP}b\vfZpbqjHings_kUHQK_?jabMJ\es^t[nLUxeZ`fRSmlTRa}`dOhbazRL^W[XgcxbZ|Vqs>nbQ?EktES[gJviaYTKYxZZG_]POJPR}yIeVZRbVsqbjT^jj{{p\lW_y_bQaji}hY^Mh`6NahkaijWjYD}\YqlyO\uKeaz}njfVVboKQwkd`{okkS[sb[_pada`f~Pef_aoG`zreP}Cbv]m]Zjow^][tdaUytjhEcje_fnULMv\];oP[j`ckQS=`[YUoRZ9k`PRktciLOBFn>qnkF^y^quxLvYT[uVkp^jEnjsYOVt]uT{fYhswji?TfqimWUSjqhMXXxf\\VONb_p_kRmPnSpHr^[c:ZHvAhY^sbPvJI]gQYWbhgvjYbnZZcZ_lWf{bei\bsQt_lfuev]\`Io|UTT~CuXn^LXWnfRnY[d\nyTcuAZlRgj}Kn]wcZUmrFpJyjsj~}`iv`H^gfi|iEN^ip`c[^[UpkWRco``pK_psufepflUtc`H\X}vSmy[gRtCnHKnXTpUjVnt\\gn{UsfJ`mb_[nVdSp^cenx|iScNOfi~STPUldk9h@[`]_HZ_iitenqmnWY|yt{}JmMSglYjtjraRLJuScsbw`aR~abQZmMPY^ZKlQXfWGA~NOQvTn]dX_svvdaSgZ[Ntz`XUmUg\\kubNWoikifIY[hgO{Pabsqh9ggNKTrkbsYfX_icmYaynlftG^_bPuiv`_Wgn^^byIWYbRcUT`\`LYT]^LTkp{]KvqdUhydenSd7M\UYiuaIeoZmVHgYJyBZicqf^{sZ?^rJ[mJV_[{S_a~^g^XKlaty]Ai9kYTaF[bJhTbm=fjOCggXQxspdi4z}SYSuOjrM}YVWGPUdB^cesU_m`]}koQgRLbj]FMefkqxnfsV`QVeJjpfSf\gH~Xcq^n\aIeY[Xi]r_SkuvfDrlWoyqWiojpkSj]CcckRun_ndXb|`_Nq{pqp`e_uY]u[yUiVNeggbEaw[n]Yi|GXrZ\if\H[dOaA~Y_caDOrd`mgUOP^n`mrUQwnwdb_PVVPaEMiorLgNfFtbxqh_mHNkJScNUilxBt\di]rZaiXkZIcVxEHORZ]V:[YIdzqvbwUr_c^hQhcUVLna{b~qnclhUHrgar6itiihC\][p^dKXaZWic^{fUKtv8iNRlp{L[Qi[z}W6VhmrcjM^_LNqNR[dqUg[UeWohuZC_VU__nPeQh^bWzsLg=gkyXcG~HnpxbaReEXCTCbggNWkbclcLwOP]iajeU[h^sSPNgsoIJ=]gUf]Nnl\XyGjpIO~xsfeay\VZr\exThjfdi`tCc[SZkTJfELZWMhThEdjoGZvJ\VPVYWndOOdTLvpaZYKysB\is]eeZCb]~SNkcWJnbXx]kWemkjSqulSFYt~jdtN_`Ib:S^xSfukC_^mF_ewyNLfiR@roFA^Awwn_gNcM6kzZ\VL=jdY[`aZz|cBy]_MSqK{FfELkV@YsYuA3XcFaHZfRXegwR}d8;H[rg`_xQnxn]ymMoVCsX`]}cyfVQM;\aXinXW3elzwJ^eRFf@PPOboiKcxY_[ev|cI]Iki^PJT^HMN{oSeaZZO^mBw\GfoUf\eI~ikf`k]VD[_J[mb`LccUq]Il]bdEu[WjVe`Q_liXfpIWWYy{jy[oQF]xY@ViKajNLkG`X_XN_`EleY_Sg[rR\Zbh@O{yR\SYVykY@vMjMomxhM\[dx_OoSHHSdapCoTXU_cVWiK]ZMahOdXbN^bN\^[MOLOvPc_DkWfSLnFbfRyqILIfvaK`^_|SY`|gDvoK}LpUaWbHeTwWO|_gcX\blelpEdyQb]X[onijKQfwsZgEXmcK3WOcbp@R[qbRXeblKYZVkTSqu~^sXVQitPa\PWYyCFsIIrIjj]E`NP]bsObZzd^eRZ\ofZchtZamZopFm_NYv}dqN_zHWogYRZ^Q_ZZffdbugiMoa^e]Gu\e^;lb^\xfa]>Ja[bERG^B`.m^'TZk0u}7PamZgyeJmny`iSIHda;kOMe[tyJdpUtv}jYb`mRQjojFbeWm`QYWk_IYlYaHWyRX[[_l>h~u\_hT`YAkjmUd^ZfKSk^y{Q\NUnoPnbOclm]*VgNtmaZ\_w|q`[diI[cjxUXetcTSyx9nreNqoI[{pXQPd`cBwjHmMiB_bjRekjDRl`]RmKiy;Y^GebeP_pPwQCjYUdp]e\WWSNpmLSW~\nQqPu\J]lrdql_n`Y]a_JhS`ylhpQgRgSxjPhoUSyqsD?R}Y;b\jsky]^XjN]KVcLX]sAUTckigO_\YjlmWUXkeKSHFGwUwfRTmwwvPcYHh\aHbUdmpfOXoo^``fmljIXcaqmz[d^dJLOJyub[WJl_reNuckn`PfkG}J_hPj`JUqbqVE_SLMfIHTWsTU[XoTrnU]bxd\vfhdjJTX]S]NhttRphAY`>cFcqYkHU[SYppLNP\]Jz{ejTe|laQaUnnSoqWiLnSmVPL3XMUYWukXtg=T[W[EkX}[NUnVCLzL~fsqHYsZ^iHcVilZtVhEjzFCD`v|ipOKYReWAo7CfPkeUJditRImxCqF\GiThOLohsURtEpF]bVHiRckclF`ToDnf^D`w^bZK{kWqLb`k]f`XS|~lgZ[[wqc^erTfHrz}R:Xk`CyreXeX{hc:}-fkJ}ImbTgk=dj:KkfC;LTO~t^_iOMJewiY^e]eYb^elvv_`cCudXZuBR>ZiqIeVwcngj^nKtaBLtxHbmURgdg~\gB]tWDdhh1CTUb>eYkxGUPR~f~zBWkadJfb?bvShT`lOjaXKSdZcSUOpfRxsGC}PyJ]jjZitbkrKG\o\qpbuIaoNO4Km\Sf_8aipq~lM|hTM^UrY@u[XO}cb\OWMVeY>XFkB]go@i~OSXorJ_fa[XVYPZMUWR`C^gmIQeq[niTEiYD__aV[Ww[ahe[cosW@yHehGc_Vcoc_j\k{srSJZ}sJnTmp^rVavS]pNgT`lf^QSKdpSdfWZbSPadmTNFeYBYd\T/_Tb_p]JmmhZpk@afj^pgLUK5ZVaWz`bhCe[Gn^he>QUZZqpPqXIjVWZEKU=ds`pTrHbKajNThH:LhygOpjWGgO~NFrll6Wq\lTuVwtW^YW@UE\QphPaWhdNL\E[`hJVVbUvY>ZNPxs_MFbb,X^nreIUxZL^YeTcQhveGTM{HVm[^V]SrnM?E\MX\b^JQ_iDO`iMdQWeAqf\@<[yRsQlWifma3fnvmeFSgo`NGxb[`=Uggfkq`ZkLTf`{D_q^P=aT]OU^jR8rFOdWt^Gf]Pb<~_OBpKcX^djVRgNL}AuYWeSZRRcvm[VyOMGhSp}gZZ^m_d4`ahoFnmeW/KQ_F>XLZY=uqWXjwh[PTop`V}JUSnfZ`?\oo[YbqpKKovq_djvyMAPkW?kFMYN^R[LXYkW]_yQOlu{uZ|qX_NnbNs;xaoNmZo_yfOd_Yq^szksax^cNSyfNW\pTdWPvD_gZV`_L`hiWK8aY[xYNMVOeeoNHhSf[VSe;Eo`m[SpmpSlTP[__e^fU_SpOkiReHEePmFtWbklP~RZY|i^GNcifv]lZbhVVQgfIZtQOcp]ZUDhuo^j~c@Y^XPc`nuYkSTTwvkk]t{JcmSJJvg\[=TrkfLZkYoBiLDjFSrYjFUS_=WZamj_VGco[hj`kudZ@Qk}S`oXjh[k`\o\^aCa[VBfqUSEOj~yYu]Yd5GvFhHhNYlV^Y`NViQ_gZMZ_jYXedomad[[[UV\`VJaseCHodV8SVe}hyZjemXKJUbpOq`\v^uMQLYP}wg^cX=jcPLoRATYir_fi;][Uckw9U_Xggepa\M`aewgSL`~FOQVj`bTciVHTABWkPelb]ajXmqRldYfU]RchW`t|GdYkX_qXYaw{VveyWE_ilTNYV\VdjbdYjtnkl\itSibo\_vUNSfXFJjRUtiaeW{TdZ\NKWoaY]`~ijh9`C\_miTaSGVUo`[L_nXOMeXuajWLWFQecf`~Y``bp[YDjQGXZd^TT_UtXf^XcNRWUtUb_a>:badfTZk{nX}mXZW~\ZuGhWfclR=Sf~ahuRi>OXQ]Pdgbg[XZv}icgsr|jYO[NL~jhgsjb[\Cth=O|B\k~QayJVlrGjla]Jrkv[h]]niTs^ZCJdE@X_Kqr=dSTSl[fS[h@e]|DehfnnmZ\UGfSYi_[wWCNs}MMRlho@oY[bbaVQgp~MxcH]ZVe]kJjjCWbWZtvbc`doFCfgeMRRqUgk]htWQ|_zXZ\XpTskShshJMtPKWLgDPWn}fDcRWpy~kjeyeHec~iuhgSa[GY[RTY~[Hbd~WgH@o|klXo{UStertHEoW^dW\E_UQt[hebH`jdTIHNfXVYfSmKIyy?cGs^dByeSNvicMNqDv9OOaIVGWhaM`aPP^_TjMljwqn@[sqGcj+pFJ_vuQ>qpg~ggj[VyJiC{QwbqKkYk@k|seY{YSRlgxbd]TeFW_gADcYGreZbS`{[Cv\hncaSiYLLj:f{^nMTO?L;k[vapktRVN>V^jltFQgtJoNPq9qRo6e_tJQ[MV;WP]W}tUY{Jin`[TOn_cyK\R_pMhgiXXM_fQhDRf}QyHc_u{ej_pKpbtSZZUxQZRmhL[WXAhaY`^`i_cRQ{j[i:bgYzcRts8hSVlvJvsUD[sbbIYofPjn^elQm\OnU}jSM6NoWejWeaWyn]q\Yndj5rlJ`qQVeolhDMcp]pafcRmVfgrj^YpptocrTvgWOLqx{Q`]eaX~wZ]{Xpuexiglh`ge^ZInNO]Ml_aZ|ptMH\{]|kowqt\qmww^TYUcwr_RiWJzqZH^xqBYQi{anc]qOQIjuxaNVzgqV^[nWZTkn[E{rddpubiwgmccw[`al}^oTrcY3rafn|u`ihqoc]tbKmhhub|Wj`edTdNet~TWYe^dXqj]TpS_L_]9\kcRdmRj\KoNmR|V[|k{pihLxpaFlSafrfP~jW?WW~fOHWvc_XRRk@kD\G]TmV^LSWacdpvUfX_g[Sy]c[u`Yh^iSktLXccbXZdstGr]YKRtR_\SeycQkU,Ms_jhFaN[~wKscKSo`_ofvTYmj_]ali[ice]gi\kclkj\t_iVnkpkh[n{gbkbymcfbyg^g{|]qYwTeaoa`^JrjThm]V^yYj\v\fRmmaZQrgUishsrehVa_isUYeeejk|gYYWWdqb`_VibhbqufZ`iib`mZwrg[^ooc]jthqVraZ|X`evgl\\nd`e]~Xt^\_a]ig\cef^llwlwiQp]dbdkti|YdTnfeWyj~r\W^pi^`on]ahfgot^ithMpwkkN]d\yptXs^eih\rcdba_Z^eoRq\eg~`h[lbahuYVOoYkufmghqko_c`rnjaeeue[Zly_dgvj^Wi`sxcbeh`t\d}t]w`ahk`]TmjQrYlXfvi}grMihirgdgxxin]\up`Vidbqabqf`h\]leiucSgxmZ]U^fkjedgzlp_`khfkkpWs|~VkifdVXr\fvfRromVRispcpfcWacl\^ehZyjTgj\Z]gYaxi_^XtSihpXalqgj]edlY^ydah~\ioxjmdhe~_dtawvhod_joqZYc[Ie]`{fhrS^jc]_qrd]eiheWq\`M``hgulb]]_]zvieuu\jk`pa[ldz^[qk}pmvKjYNolj^p\ex[^caa|ybXtY_}``btmobgncZcinWho_\rleaWeyqgae~}jip\gnmlf]]^`r]j`v`wq\Cq~[_a[cancgialohpc]inY]]kapnkjp^flgweti`okaag^sdoks_keeUrit[zalcyztLfl~]]Yw`XYeiqzbsUproVlfeweiki\gccS`a]\esjZutZ[dwhXak\cdedZrvpa]]]`Yul_Y}XKshKpaij^QacZpodno{vhmrs^slSaq|makdn[lUf``Y{Td^mt^c]Sa_jtejnpZZ{ftkYTwnlhSmP{|qg`gP`xdw`dg^t|wzrxem~XeclXcjh]ZifVfiojp[puagkrWk_jhfYW]^`srWoY}[jfxpanvTdTl^fpui]htZsWhqtwm^|Rtpgkwhcqlikagw_qXewThejmr\tatwVtv_jnbeyf]ieUZ^g[dvOcnhzVrYlqq{Gmiemxroj]^]cm`TvYlbfi_QtgXbb^l}dZq|lNStYdtL\t`mocJZ`hcRcYYfdbpb_j]mj[jh[hboegp[gsu_ljodffier\ka]htqgmbgXWwgbZ]krs`ghTmh\yVon_tc^bd^juffc_gXnc`txhwfhe`lw{\qkhNhr~hrvWa[]{`h_pg[pava]d_cmlksnG]agYhxadtahluusfklm}ieqgekfkl\dn_Y\\fbngxk^mYen_gz~a_oi^akaad^ogpj`xmohcvydRoffm]i\ahp_TgxYggm[\mii_g]m[^ge[[sX\hh^y]vcsoZ~hcnh]iraYsWgYhZjZodinkn_`kihkY]crgxniqYu^^Okqr^la`hdgYc_mWj^_`psbdcbrcgbuWcwkk]_iiydakl}be[rtk[btUldWVasbg_odklopK{~emWqcd[moimp\cgbevj_]j]\fiakPhfhLkg]lRvdaqmhahk`faiqUdonommlozxohvYnabqknfm^_bV_YipcfWU`]RhmKYedkeni\hKlfbfwUZpg[q]cafgn`[YclnubdW`afqpiZ^g^_[qblacNVfnxkuwZd^hZZm`i}eseqgl^lmcao\bmkYkd`_dbopkcecUf\tXToedeaXhxh_bjo[kac[OqikscYzccpibiacTfpP[qjnda{isipfvk^TgZ\iZWRaQij{kcb_facaa\_fhenc`o[Wdrekig\bjdur`mhY^p~o\\pXnaX`Vf[`u__cZjr|enr_lbh]^erewr}_de]d]~xefeunpru[kdo_kfbr]Zia\hzbnSgR\ltcRfanfNTihcy]rrctYmolcwRTi_k^zadqg\cgOTaqeTH{jWavcOpfin`nmc_`ridgdu|v[c`Zd_v[^YY\WqlXZ\qis_N]]YrlXiGbVQhjbtPYW~i|dh}oqgiYi_[Tq~b_gQbplnq_kghe_l`[]whqgbs\hudi{hg^~h_Tz\bpehJ_sRagY_irV[jPlYcv`OrmQfOjjfljshf]C_QhnTj\^tLec^mppaepoc}gZWzgRuWWqv}^zlaUdg_~dh^Zk`ai]`jtheefo_dVabaaqiXrkZ\Vjn_\s^Zbbaledzbt_j`V`vbQhorc^^taoMuXLZqXdf\hlcNjZwthkpp\pjghlb]Xhiabe^bfcQgg^ZUfqTaqgw``sacQibnc_eifYjjrfllgX`]y_yjcZrfkdjq\urnpjdkomo[mkhn`gisdicwviljohcus]notnr`_eptdqY^zeciccmwjdaegm]v^a`]ki_rZker^s^gfrlpnXgppwhi{eOi^[Zn]l_Z[kLgl_flkfghmg^QwYmr_zaZzZjkn[j]\gb^Ycqb_^lfry_bkXx`lnqaikqnaablVgrjnhl\g^[phir^^t`le]]aemsc^ilUhV`ZixgislWag|zhdteccammgncbj\ThdaOQdZ\NbcnbUgbx{`SjUjd`kYSvT}hqyhcJhasJaUoygcYdggIjkNQ_kTi]klqorb_RecjyfYhs|dsgfZ\`Vlo[eSheu|eQqcPOcclajg`hjnpS^a`umwzihcV`dVS^LYtJhUlkt|Tvg^eSR^RXohhuvjp]chkhj_XRblpV`keehq]afYtNusni|Pe_YWcntNcq^[lb^^`X}ea`|H[fWkvxS]lmrkfdXvjb^ewnish^jbfo\nsaP`TVdaQ_bm^Mlm[jhfjOe`phqtvnwq]XcYjeuZiYchordlinkzR[_[\\XpocwslhYk]`zJo[ne^eUdgdYU`_T`hg_QkYsiu{QaZfd_grecibvc`WrfxrWpea[gm`chbdfvg^b^e^okilXP``\b`wRxgsh\cy\NXq_\[^\dcmhRdqyhgjccZSVes]faZcualZNUq_[[_cQfe\\YlXXophWqWc\_`WUfnqmaaYhfdfl|XoZ^eVUYukjyfbfdW^YvbptZZ^eT]ippci]dl^Uh_`R^Z\`UZrXonmt\tsykkb]ve^iqkkrWj[TujjnQjt]Upbjj\g{hM^S^|edphYqneW[i\_Lpni\MtimqgkexQ^uZH]aftWZZeaNuSWanmh^kOcbo}^haVd|_lbjb_yumNcsord]wn^foYnXsqoo~s`XhlSkudc{g]gy`fma\e{hoYfi^{atbke`bgfnG\nZbUnZUf_^ndlguqfae}UaU\]of`dbaglThZi]P`\h|Ybf~]Zb_fYV]crxU]]o]quZqdlmkcqQllficXuk\jl`\pkZg]awio{upq[[gXrYgpmQQu}b|gcqhVjUZYrv]QW^cmmfe\Rhbchcyaxurg^uCpahiSzhtFc{jvgsMphbylfVqoqbiugY^lb]mq`puewY]srsddmV^Zgodyd`]|\]b~jskrl^XncmfWbmrn``bwk_mg^hm[fShxa^tqcogld\]v]mj\Tkgsa_eilrts\emuklmgkZ[l[\ph\[swSd^]nefwtzh}iPnh}kfoXh_aaQmg``XZL^wtiR\{\inebqTVga_]bfeh``gjsaojgf_`fgkV{kjnXpibmjccZgpl\bbb^eoakq`^agtyYtgn_Vj`kcb]mkwkWg[{^htWXb]vmaVu`tqah\OgdVscz|ryejbzisksu\WdXT}yd\cj^uai^oo[pVRa^b[ei}i]ae[aaeib]QhoaUm[a`\lw^dintrHqacho\]podyndgT[dXf_bapsj^_vm][xIb~dWeYaeTZgaxfb^aYhZeKeaT[aro^kkXg]j_depjlbdgGfncdwclrUU_Z\qakzMn^Zge^pRJjQ_w]\lX`~kbmX_f`\rl^wWefyi^[_aWkk^XoaY_fXcmqrb[db`Uk~aYkmbkiWnLhaU_[jyaiuoab[h\k]pY]imsgbsVcjYomjkctqQd_MPi\fuDYa_degrgxlUtjcgddPa[okZgm[`\s\a\]graev^fe\uaqXtlo]yR`XhWd]qZjYqYqdgbX`aazOm^U^`\dndh`X^uXdqVp`fgieci[\WtN^pmYql^j\kb]TfIYfZbezgbib_Yn`lb^[}ZmUee^bfdlTegccdwh`e^al`^fw`dod^h{m\x^fmadhqo`rWr\gs]gjgS`_`ih_^wj{arxgbbXdhtigk^entecbYlhpjc`kknp[`bfjua_VW^csTUpvX__im}k\Yeqzwp^bVlscji\v^Yi\nhjbccamWaupVW`gwgl|inkXcam]Q`njidiiXhsbZh`gmXcee_mg`ibd}[yldwqik`wYXfYhfdcWbijbrlfccc^nnpaucL[h^yh|toXsrgpflZaUbe]kenmUW\lPiYgkZ\\`nup]NjX`mqmYe`a]j_hYe`ZsfsPVggcb_[ZskiaehcmWfj[Z[R[vYkqjfanyc\`PwmoLq_mNneWooe`aX`jzQedXaip\eolpakgnf]b_\qk_SW\ji\yX`ZcRnXolh`}tWfiuqk]wak_cbe`@Sd_hkZ`w_Rimp_hl\mdQRn{c]nsqxOa{meh~pg`\lmZnqpZlseocyll=oOlj^beuPdao_Q`YR`dxf`jnhezfbhln]ckpvcbvdj`Wq|^kb[]vjmVmQOffrn`i\WflbdlgX^yxpszUkkcgkvmWiYane]rijphQqrrpqZze]n]hwoaiiia_vWx[e~ho[flpUbRmWf_xdtm]^b]sg\i_`[q\gf_mreWlpfZeZf}\xs\tp]iXh_jh\hVVaLhThhjzWkku`Ui`yoprvqWxyVg_pfw\srl[^ejkl`dhKfrglkpeYiW^QkMooidbUnqTZqSXj^mk[cf]Ya]^{svasj\gcdTWWnaX`bk^t_`o}pRdmee}g`qc`bd]hasExyrhoQ_ZLmqVkSQpy`puko\`ijomYvXvfeW^ph}rTQ^iKgtoZWj`jmfwvyhkhf`_Wkaesv^Zfgsj[^ccmhd_]TusjeSq`^sjn`yk0sx]oXbI[jvQXaieNrT\VZ`rWwYV^xMnd`vmZqKlrgiuInSca^`R\coghrvH~[w[hf^kYYsdiTn\rwzrg]avTuYhnsVZ\rpVjYbrol]vozk`Sg{ZVuUblP}lneTnUgTpbydpkeh\cSfgnUim`u||ackQ[X`UJ]_YTh[k[lNlfklV\juihwZr{ekdougVgf^qmi`\PXXh_Y_`skgU^Z]~u]dhwq|nj[jcZ}uapshdXoc`Xbvc_a_Ki]p_wmd`UYeGncvaUUy^Y_ija\be~mdY[nswNYXj[d_j\Qaq_`Yw^iw`kqdwcWumZg\dnevnS\jojjktVce_j^]\qqieXcedq~ojmkmwuhf^bp[gapf`gkmfbb\Wgtaklnnhhx^herpbqYp]ViQo]zonimhk`rnlkvli^hYmmuwe{t{eqh_gabpepeamtYi_s[cm^Xa_ibYirag^c`uozdWc^pc^`gS_o`[[goXj[btgrgcief~fbllnedaujwOgP_WePdo\_qjckt^npnZimavbgcbVnW^^dfhVjsjq`iZ|\jXj_draf]mb{Mkvpiw\dQldmuetfcoahg^ckgcRRbpYl^claghj_}bqdeQeo|YpeiaTgfXs_phZd^}zonmlo_ckdi^]__jx[pfeO_ghp\kVv^`fYscoX_X^w]sp^gc{tqZ[c]U]ViYUboriUnysTaapXzg{`Z^c^f_V[cqwkQw^We[olscfmlI_fhxh|muj[iZ`Q[fabe^Xb[mSduUqob[hNmlYYTXcTepZvmfQf[lUjuOaYeT]jNba]bYlsjyidhijptrVZi^bQUwfjZfbZy_}qWq]cbaVyOfidZahn\]Qgio`uUrgWjVijS]ece]bs[hwtm`kgbplSiadYrcocdxkc}^tfxZV{q`geQm`c{]i[erYdTaetnmjcqdXoUzrbqgXV_hUddkulc`bdckch^g{afdcieXs\jc\iwjoiZXipfteds~jYlppoogfjhb[ks}obaqg_kgqURT]edjUFysfkpiqT[bs\YYYcbn[ov_cVT]ns^rabbhm`rme`gk_faiY]]gqYk[}tkyhMRuhp}jnnXonilXWXef_g{dYqXlcpkva[[eT[zeal]aWz^[ca^diM^s~`jgsVtlc_`nYred_eddt^OWg\foschm|_tjkSeX`epobkghomhefkihjPnY_bhxw]_RvkvXdwj`r_]VnejaoifU^\tfS?Z_M_jn`clob]sqqWqVe_`gkYW_lYvc`uocT`V__doWVjXe^jIYqPa_iUtYskai[jdc~^buAW^\f\f^lbL^awVY^dojRi``g^Z[t{x]b^Y]hbXLebgpxrgnkpZlQcRWRXclahcSaeJMtvg]]tZm[ddcNcOf_ZeWh`kSv_s`Pq^fnd^dt_TczO]iaLeeeYtYed[w[]tXdHFZgfJR\kpeUV^gq[y[^hg_bYXae_g]bkrbbM\bY^cTeeg_`Yh[YYfu^c}]QpO|bnh}wyL`]W\kZhsdbxTXciSh~N^Ps`dkbUmiQ`YaefPbXa]\W]grdb_Ooe[svkmZby`_``rqfXfXfYdalagpqg[iiom[nq\babi^ngp[_krzth\`geY^dWrjnbjmglpondVz\WkvY`jpewbmipgftzvcihsdW[oXfhbouuba_evec``f_hsv[m]atQgW^ZatZ|Zei]igc[^eh^Wabaifa}_e\g\kT`Zdhu\ggoepVjhiOe\peNirmtc]dojo]qcv[\pobcYXhlo|h[ma{no_eqssinfktWXhhg]klhejayejbsefjjp[]jsOgWr\bkhrZjnn`msjSlc_aiTrs}g[hhWZkXfmX|v]dbs]Tkc9]k`moTnSr{O`S_^mbff[xjnm^jcUkam_iZeamj]WfWdgTsir]kcc]~[pf\aqiYwodnslYak\yobcQZsfn`dkWe__kXhb\OY]qMipl^nY_`oqf~TSakcumrk^:kdT}^qwqWjn]X^ircndDY`j`n`[cbOtWxdIpgfwY[sppj^U\lrjc_p`jUfgnffmfjnmohax_kXcWw`dg]\yKambaquxc[\``oZKXdnr`]oNS`j\W[`Zk^T]PedYUR^beReYkmgl\Eaq]WhTY_n\sGM``Ur~nnlmjpJ]_x{^nnksRyfdx`o~k_XYanYkscYjffVh^kemntK]uep_qmabpY{iQlkr_czdXoOmv^]smpTpbdU]^s`n}aew_ikdnnfos`Pht{Z]ko}k|omw]]kXvmUf[K^cqmjZUYRkgiiu]hpV`xW^P_`gjrvgNUMgZke^bW`gcfrUXco{[t_]li^NojjU\cymX^_dnslm`\\p}imScr`k`wZl\a`cn][YeUpXWb^bkY[YnmibmdNnjklS`^`]idVd]ur`md`cufzxsYZsYbuhl_miZ[ebg[gwqj`{]fpbU_kNiU_ifbawjSpcgemj\PwXbwdnm_f`gvh`umihU^\dR]dxbofmXqW[Wsg]fpokhVqgw`d`h^Qprb]hZmswd\ciZSiUniqcueQgZfy{W_b`_rYhpHblimY]ZvFegfZbpbfg^iUambo]mYckaij[cT^exd`\wW{tWhcbmZbShmyeeh\w[kljenshcnhrmKgL[`[\Ru`gZahgmafb\e\^tda[[IWuYnib^ihgpQjjki]fd{c_cs]tbkq^i`shbtRefegp]{mahl]_\Vl]esOkei_fZtjdce`mlUhhpdr^[|gr^bbs[uNrQcrYeepugRe{cejfsarwe\`XS]I_\Z^rOgjald_]qU]xZ]]rlbleLfm]oiQ]bivi|W]\b`ibgyrefew_UskyjcStffnookfelbbr`d{wj[qtg^X\]{^VVYuaqUM\lhil\lwpSWtaWtYyb`d`Xqh]vFfjTMT\qlQUs{rgmcNbkqWeeb`nlnZ]{dpV_Okrh`pWltmZluqt^WdX~ajkYGdIg]gfjOYTldwggu{kMbc^N{gzVuR^ls[`jQkOgRTZYYic_SsmRo`^ddDodNPmiWugdchmtltmejckPY]acnS~]cVt\ibdVvWa\Gyg}^\xhwi\teJXedmfbz[ZhkrdQ\^_f`{vaOjpooaYeviujgavifnmv_R]amugjYaaVlhfjeijVcciUlXj]\pcmijs^qkxubxg@Zqhvlgi^_ZZXq`nog_h]oad\\iiZbdqhzjp_`Ubrtj]_rVkt_f]^ie`[VobkWjqjm\yblu^mygrf]wnhokf]fVWOYg\rdxvfj]dlr`Tnmap_dPd[^|osKeZ|tucleecpadqS]SbhcdnVb]\iuYg_qUqm~p^dtac]qsia^g\sVrvXipjrfnkuViaZnpna`^jqycb]yS`wP`sbc_vlez_jr[Yoeis`izT`k^VT\ddT`klcplde]~aglfgglk~`iidzpvag[klijYVlio`lljbef_bkelabhuZn}beQ_^^_a`coZchsf^dgko\g`Pw_iz`qcd`iurheNvo_|mnYVQk]jlooharl[Xl_kveXbjbef`_rjYqjgzgdkdrbk\edc\UhwoUpcleb`u\hwmNhfg^`{rpcqocr^ga]kiP`tgTbY_[dXmuyWqYebis\s``h|eaY_Xal[SZq^_l]gjXuj`ceg\isjei^ehkXrZZgiYa]\gs`^`l[ewgyrkneixias]obikkZx][iTebZXjd]bblkesW}|r`j_]W\ushgiueHaWgcuZsb^cZaahc]gj|_`icepv]h\ezLqSms^j]_|avaiikpiro[b_^f[brQhr\l[nejqkZolUjf_r^m]_drVZk[n~srnrahvzknbp]iavYbtgb^xeccnq]^YocTvelUd\fl|fbhgvnb|vn}chpmZij\stf`yeudpSoelmOipY\e__y`e[]~lmrcgb`kgl`kWid_pcd[[nhxXufacfVZk_leh\|luu^ZlZgcg^fl^omzqdgdve`ux_}h[\bfmkYtblqphfZfqjjlmauo_\iUhmhmWncehRct{|X^emomT[kYs\UgXdrwYoP^mootmfoumOjbjnUdUg]Zenf_b}fVUXbnQicm|`mYWXHsZaah`cchmnWV]oqH_W_V_l^RDiffvsrs_bjvPldgsbiszcVZfaajlVTscQkqdDhRa^e[[Xmlceeof]geqYh]duY[gf\YRf^Sh]jn|tfd`iVaorr[_eg_aecotjZ^[`bgg|e__`W^k_]Xlhe^hSz^cvepscx`effUogeWUuj_riVjtccahjai`ggTUnoq^iib]ddaViXgkYqwjtV`gRjgYpe\r\uchfahx]q`hYXwgfznRaddkYa^dtZca\XbS]hYtkveguZRhn`_khiZYo]iW\Zhnhrc]lclkyXfe`k_dXRUf\_bwMTahQnrZyu^Pthbqtkk[itmjoy[mnkq`aV_^s_mZekkj`]mmcda]{uY_kb[kexglVVa^\mS`{\Zmbqde|koreeihqevgfdmpaYcvkljeZaRyjWhv|b_yqqsdgsjfcn{afffnrc_o`Tjq^d|]bYbzpgkk[pp]d\hhse[}nccjhlp`hdXi`dmsoj`__^fee]cXgjUdzumrt[`bpcOgnOf\]bjY`_gdhX\nrfa[Yebtij]ealYkamdabxmflcOYsiQppfYgokluoYcd][_ruY}]ycpubbRngiTjhiTdP[^bL_hd`gpmailt_jolpcive{h~lu~hamabh`akSdimlrg[ndepqsZad]e`[`pfd^ZbtwVakd[\O`maTvVvnkb^ll`p\qex_dgc]dwNfym_h`vWqf]fukbkqg\`Zjbq[]`cVXg]cthk[oTtbnk_Y[ep^\hm[lmrg]]Tejorcwebmkypg__vZiRfrdasbalYfZd`pjZ^eiV`miaZxS\]sglkTc`aY\qk^xfmrl}k^ZhpqudNZyhRa_mzf]`ddrbalm]wWete]^`lucuKesa`{_nbdfqVdnkbx|nlRifhubdhnf^akgtbabmYiXUaebnOn^hX[gr^cifiynvvrgScjlhvdVTkihVZct]l|y^YgxbghmL\Uqfcryeb^`qcsye`g]q_c~RfnX`riarbciedem`ul_Yhonlpefrdmk^gaigiq_Wel^^WZ]i]trbxxaldXWXde[[^g^S`vdowqbc]_ZmZls`ngk^[vilc^pzga^kvq{]edeNn^dWgioi[nckclVvppictn_tlec_kgrkdjXdv_{lnvdyUy`e_`~mSshx}rqgx[u^[ngcodiquyiShS^eqb`b`xn[@T`kh^trebgil_x_YmVfr_WdsmdimnYxUlpePXq~_crjmWtgic^jgR{ZjVlng[kj|cpnlWUdngksfgng_i_aSjnl\i~j[lakxmfgY|xaX``kc_zXrdcmbn^bnkmlhfbmjpgvjXdmjndt]gbbeccIndnja`ZXmlmc__{llrTjrjjlwZohwXZhUlVYhVZudmVoyqbYkwfewepk[f_dfRgai`sYm\ikogjhfgpodWnV`guq[qlhvandelm^\d`~jp_Tj^[bzoibk^g`henj{wnimeznirlYcmp_jkd~bq`X]{|ntnPXuzhtc^ghj^Y|hn`\]bPg`g`oic_apT^R^f]fk[lbetaamQilaUbX]hbghklWPob_ikpUivgqc_hzioy]hja`ecbctbVgf`bSuVRQonskm~cY[bgdknXdOckirmvzfkgogusVX^cQg}ch}j{Si]qT[oOc}jd\bj_cnndUm]av\pwin~edaSbnrtpZ_rc]obZmQfm^woUlfTlhO[meteiir`_d`^{^eXXr\`df]bwdiNeZl_]achejgYbXvctq[Sczk`chiwjfojwPh`M[aip\`^jkWlqWeWwr]]kmXbWkd`up[]f_lqeoo[a\[~[c\a_iqY[cdki_mlhpv\gh_pmq`ikmd]b]RkvpYm]bpgsUavjpheVijhdn\epp[jRYh]pVjeYa}khYT_Y[_zdaihW^r]}YVfpYs^Mgff^{\lr^SY]adgsrrkcodx[ir]]hi`_\hc]fadXg`\i^Zwj]jaWx]|bdypehk`rhst]Zg[jb^]`mjkR`sf]WpYccfbncYZNh]ZYfR^rkaiz]ad_W]S`XeqT[nd\kZ]{j_[ng`gp{s_lx]xidUJYc_bic^m^{|onY[semhXo[`sQybZ[auPwksnl[x[lk[__trNrfVbp{sgjviWoamh[d{rrmeP[nTsmgdT^lo]Tl]vTfvvY^[btrtgtbb}rkxhygen[r_swzzwsTYg]fipsxkYiuhyh^ebfWq_cSUitZSaacjyfmkp_ki\ll\wf`lkejucevmgY_bfz^hi`h^dZeqiXwJbyed}]ZtR`l^yup]jVsajkor[IiiWmlgcidkjphgRu^|fmSjXveU|jubb`eo`aPghfltksj]XceV]d`[Ygb^nnNxOzlqqf\b`^io~IpcbrPc\^esZe`{ekedklw_xT_ZWaSpamkbtqadpwkN\sebW`kccHn^[|bRjpil`aoQeVYneQmQRaf^\`]_nizfmhlj\NYkib]dOb]DRc|[geXvq`f]u|gYzjcZjghl^MYihSa^nkP`jcwq^libfkWevTl[aYdv[Mr\Wm[acmi}~Ii^fwbTdRViqefchavlFlq\SUZyP~ngjinr]]mjj{ncf]tQdYincPjVM`mlfZVW\pUgUek[Rfb^ndc_v^ZbdqbdwxiYgQtr^Xw8^fghYaNukbjd^g]]IrkSaZqc`|gTKf]_iadPObUJqbOg]W^VaSfM^a`X`yjYgcjxugb\fk`_UY~dwq]`jab]z[hvEodYsgwN`lxXkjObTfRnntkYP~fY_ik_[\tm{n{bees}\v^`nonRmOwzZnUew__fihVzG]h`jg\`~_Sfma\yiOjYm]xcJbTYadiocbnUb\RLhncgteqefYTvrYn^Ul|mLc_awxxoUglcTgSa[U\VcZu\heiOpreXeag|dm`hrkWeuqogndSTsYSl[uNhkx]fbaenqYqwnQkeksvWdMbwtYmQpog\s`LkeP[\`_`m_`cqXcwtScdmTfdgbZl{V]fd]_glSX^b}l`UdbbqGtlXYYvdoYITSdYdZ^Ncip^v\Xm\bdswdQgebYpyclom`fb^W]YWUje^oygx\|VhZapdYr[}jedUq`Pqcs]edyfmch_s[hfV`_hclbkmClmbQsnjrcakg^mmWbo]oMgfdcaZfmg^blby{_^_]xcOWadwM^cm^egbdQyf_fnmfu^iodP_aWPKWkba]trhj]ovXaa\lakWRqOh\Z]bbfeawpjV_l^sdoPbgmif`oZlcWlgogSjh]afhsic]\bdrsTYnhl\ayjmxcaRXgl^NdlhW_c}`Zboircj\qWul_zo`jXhzV_dSgfgj_Xc`yveOod]dTYfji`lztoagow\e_mcwdakabebgp^qjjiWPZmbe[YtwTyhei\g^Z`gcqve[sTidsnRb}uhYkNj^csW|`adj]yb`\^\as|XkdXeaXVzRbSg_igjjab\dRpUknlf`^uZfcWn_h\zbngdalq\_ks]aYzbmdge}XkldlShuVw`cZZoecg]\|hj[eyStrv`rbt[cXsYzogdc[irl_vs\ooQiijfhic`V^ci[gdmif_o`l`WaTVdnkgr\[n^Xif]]hSW}f`Olhe^rXceYryxp{mw{`_YbqbubbfPoS`d`e^s_jhSengueqZMaxcfalbqi^_^Yq[qoqrceleekifjQXfhaViVub^w[jlkxe]fiY|Vrf]`zy_Zvr[zr^\OUd^wqkksedRc\[NFehechliYTPZVlULiM`tduSQ\b`o]`xhlQmUWRjZm`e\WvQhctTdy\LfKotrhoqoeL[rlbUYkn]nrp^PJSz\bYk^_vBhj[Z]}fgmoibTWy^dRldrtS{gYabjf^YfvosjIul^hjUhV^ZhfjmewcioTnkamqle|ksfgEoiOPQ^_g_]uhPX\br}ed`Vfak[eciduOf]rfq~]RT^^Kh]fp_nUU]Hhkshtbsn\_Zswdn[pqgroTwfamnc]cqtbnXqsjmqt_^c\foTm`bosgvn`cOdjTu]hs^bp`Vm_^hn_^TVmlrXZuWWbglairdxZbldXnl|d]^j}ygp|gaTndg^omdot\}a_pfqFkckRjYl|_t\m\wkohfklrmlbmdMwvuotmwafnXYlw[clkujVizyasV|plbotmtxpvR_t_tuzph|otgzmXPgTmhbj}W~^aX`wn[Ybm]saglfrgyegg^yclmbn\acghoxl[dscsgQps\\y~yxeannfqrsnUYtkjO_zjo`vhickbl_pNb[arj[IqibZ[Zla_j_ZQcheln|r]gluaYxo^evn_hgdtb[hcjhoegj\jr]o_ekhe`bb_}eeycfmko[s[b\[exj\Yleh\andkf|tbh_js`Zbh`hsYbjudXfdcZ\Zjralji`fklowdeicjlpgpecSbpVf[`ppw^Z\}ji`gnnopigh_LkdcXadbdd]cingyenYkr_bkak|jihv[aakZ_bgbhpcZ\sck_ccW_kpvp|eTv`johfnXt^dcpU^pic^ZxWYfs~fdvn^ybuhcTch`qkgjq[fVienaerlj`Yje[bnthy^eaebYdb\c5spvb`_^Y[\ZzTa^ZfUpYZdWucag}^Yb_X[W_ndoi`kc``fniuz_[KevUcannYvcJeohsz_Y__bio`}giXibuud`U`kZ]Q`kach`ukn^fiaxSLVWxLlzFMvWXi`dYaaSgWHwcjVtNh__fdp[^bjSV\YdjWdlvdd^fYji]mgYOYcggSm\xb^aamsTtjicgiV~h`s[hmjXWahhgYM\{cgfXlUwifgOhuTMeSegTR_kgt^hQhcU]f{Vch]bij^g_Qf_jnt^i`u`Xdf_]dbjh]unrhbS\QeVpecjUJRvdkf_q_bqos{e~ZaUdx`iedj_\cexlbj\r{bxi_hq_fcjmdkiaZcbegabks\dlvbwd_{`eyqd]fn_uVhllk]_hTl\scZekVeyS]e^Wec^rnekvtuposddhisY}_c^oYoTdehX\ds]hbhj]lpbhcWb`gruim]s~iiob_^Yjfj[jpmclokaYS^ahg^cy{nwZY]mzrjZezgkobp^avvf]Yhbdrls~kkUhoVmZcKmug]fo^_wrmeoYiol[vjeoYg`^]go]Y\Zn`cakqfgyy^d_vnahq_inbiej`l_tjnbo]{`r_QPf`fsJgqhkVV]S|goSlfcgdwokenyrb^etqopXl[qmk[rfpqytRmZxnaZi\waiU`toZmg}ecpncoejewjmi[_sYhToS\df_hwgqT`fcepekj|Y~_RokZepObh\hlzZvebd~erdmgrxwfvpZZn_ebj_jTd^Uvdp_c_pbkpj_\ZZtXvaW^ZZyaiomvb`mgktahhr]Uakv|bqeafmqRabl]h\g`scw]`_pph}n_f[odZmpgKfjUzkyevuuhoo]]gjlifXTdXakYrcbZ]j^[zlRkckPo^ptraKbm_Z`Y^aVW`Q\fabXZgbPTkhggcNYqXZYkg^iQ[lae`yj\dfgmdoYe|aUXvtmbaw`[orWfpzvlTbeYXdxnxm_LkoZiwr[lgi^txixj]VjlXatgafh}siUXllslTXolWaJkaopjy|cc^dQir\eVcZmfwmscrjewaolqrfx]mogry]sZ[\ecddn^U_kgkgXqZeUunUdc_xlUqh\{~fZ|yrWyVjh~k\tztp^kjoi\f_gfhkfpyNlkqXnqPimf]qoajc[piufYvgdz^buV_UnjcbonrrOfmgcUisrkjm]ucibw^ekq`yqqhkjhwmh}_u`yr~e[lqYp`dcip}[XmZbq^rchUtXqYcqpncpIwqca^cbIXdacflfbkViQV^`g`^\mafcS{`Pqf^co_^^]xqa_hm\nmZjnUyb_v]lf{Xig~ntccg]yiapu_omviP^egVhcZdW\ZT_O[_^]U_WYW[eqW__oLxpgjbUq_XWc[rhhWVZQ]b[ipZWbpgkgbgk_XlykHdfdu^gMrWlojYyjXglISsgmaVYhWOxnkbZr}go^[xMl[WSUGd|qgdaX[l|}ej]fiVOg\cnt_][`kl`Qjx~SIx|`mXa]\Sba|vbf^eaWhQotYjjhUTX[ucsamXdWZ\`dSouWg_gNeS]e^v^bZ_kjanUlke]pwcdihi~djgYiwVg\fbhZv`zghm]{vfmcn`rclq_igebiszplUrqn\qcZsp^obw{Uedge]yb[t[rm[ackvSo`RqgX]ehcce\bnsetVecsxibke`lbZjf`j}tdSqyu[tKpjauaff\egZcPakrgrgaL[pUXYaLWpVapZh[j]bienearccci^pOlnR]bcs_iobY|ZSu{caf\k^wgQ_SbbcJaguijWsbYpYaekud\OklZWWX^arZkxljchW\}fonfahvffijo_elfs`_jlgqtrvtx`Taffp_^wdof|bKlpkXeP[gEPffQ_Zgj_[e\q\Y[\nmi]lg^xbVxYSbfVpuTfZtrpdb]c\\Whsnxi`]V~`ks]`\^qorJg~UbTJ\Sg_\NULtYRaF`ka[_Pgd^{]hrdnhXY`f_]qXycV|cfri_WsIgi`e{QVh|WQjGfbvbkb~WSHrUNbhnYW\Zw[QfUg^p_u^Z]`usbbd[o^[feWb^iwWXkYYY^gaTUgmcjX|W`]WWSpfIljbgbf^_cae[epXn|ki]P`XjZtWgbl`gxj\`hT|b]Re_j_[of\[dtqWh\sVuimPgg~eOD[du\h_`]jcVYa`di^c`YUaj~hf`rqZ[e]Kq[fnmuijukswilfe\^gfc\Pg]`sZf_npvcwdcUk_`]dogdfhxtph^jhftkh^zaXad]~jkp]mZhew]Vobb^koh]_`tk^EmR[jnsuc\a]i]e_lcqjYgTjTefwvV_ojpqXg]XYmgpaddScylYforp}anneoo^cR{\Vgdddc[kmkjYa^ik\qbmZheelSSUVnh`rQug_ogvoqtbp[nu[qZvef]i^^{or`b_f]Vh~`eHV[pTbsbzm_c]]`k^ekkVNda^qndmqx_cXPu[\ehm_Xq_oW[k[fbhgoebpsWbahYc\_{mrhUtWlnY^e]Yspix]h`RcouTgaxT`zmkNneVj]\g{kZht|lebbezf[hY^]_\lfcfC^Y[[oYbfWZ\v`dXaagehtil]k^slYlzpcipgmfirhs[~iq_gnxoqhYq`jRijmU[fscfd|diejQbm`fy~krhdaslj\bpUm`c[pScmcneTlYY]oY`Zad]c[[pnvrcrTfdvz[q^Xgxre^{_j]Yuhinklkl`]bg\ku`it]oocmjlmWihgk`ncfWtolo]nypuoiYzjnkfdbikTpe_W[fkdidbfixnbgcoWoydgjlibzoVqhce^cudpkZc`ZOkrjzlraoVcpdpia[dqyrYblrqjwd[pccqjeh}jaDlruoRphZbghQgtgkZlliaf[f^dfbboZt^TX{[\n|pxD[U[[cknXobg`k{hjviUeX`Ut^qZdojleZTm[cVho[qx]ckkZh[^_flfmkkZlomShgdmdpdtykk{UbZnqsZg`ZowfuZ`sj|hlm\dlqd|ZQ{vqLw\]lZauN\fdykZ}kYy\h^}fc_g`rq|h]pd_pqVoqvildnrwmjuusadksrb^jXtifcVqebnpYYe[]ktWdngVuw^\wh\{fonewknxtjugclViqfiew_ubnmdbomaVhrXl|dqg^qebimWd[k\Wd]e]boYma]vfe[cOmkLapnztlW[Yr^dehXgc{Yj`[U`og{^koj_rYephdetphiZdf{pbhkpwPdJtg\f\oT_cegkdjgifjpscbwgbabx^haj]ghnmsHJbvlei^`[ghamafafqcXatfS^chdhdc]]vb_e^Xfdd_]g[ox_[ilxgmv`dijX|gmka[]dg\odVk`\e_loddcYS_la^iVn]j]ibo_aelx\ZmSlidmj}drpQdm^ibejgabXbg^gimttgfUn~^arZrocfpjjinjaWqeilxbxqnXdcmj`hrljaahll_bfjtkpYb[ooqcmokl_efgp_maV`ltl|nq`ljcofdbmlafcramselhdigbf]bsgacd]`Wa_clrjtjY[jsi]fjob~gtlqZZ^[bb[ffokqod]ZiffadkMnggSmYmeYe\geg_h__dkelTlc`\bmcdedtrmiYhScqmZbqw\ztb\`_fj[^iipfajfigc`vigijoV|zic\c{hk^_sakef`f^hcUflPi[c_t`^vo\injlWiwgilcgam_ke[hhlnuc]hpU[u]o__evkneqp}kjlnnagapjtc^hfkUUfx^mWalX]d`aeof_c`eZ]ec]hy[gbnbV_oiwbzqmiWsms[xYX]\[^\f^[V^dgsi^epSUdVi\YtjibbYjs`sZhbeezcbg_ZlnfSiZeI]cpfWYqamhmuqVkbmbaUUic\qZufdjh`UNjXYefm\dWobvcXoYuK]Kaebm[kpjVph_habajobxRvk`c_gahh`]ceXyiqbh_zl{\iczVR_meYhZ^kpierm{WkX]_drvj]fWcdYfbajiSZXeYjXfV[ZpWdpm[v[e\ZaXShwUhi]\`gseephj]aU\hwn^keqk]^rak\`lkZ_elogpnPAc]deuJu[kjvfhnjvUzbdl[a[a[di[iiy\NV\gbejYdge]hrx[aufgNW\g{Whdio^VqXjZpXxdsa[drajf^t\ueXh\yZ]h[ckl`qSapY`{`hrwbapOdqfg_qplkcqNqWmfn`vepc^i`gvl_hhqaZ\`\btaemO]q}njgi\VhxoZhvn\vdc\`qieo|lye`rmeZkTcmfl[RdnDx\|^uvhnpavYg^e]eefKaxVlweuPc`arcenZhYghgkw^XTu_cliQj]npub[T`js]YegU`drk^rnUmOkjncvaj^_j]qUit]ngjokkv^fFUucdbdXboR_icubigdoZVfbkVZdl^XeMdn|Z}]irm]a]cZ`anXhlQ^dlpeElef\[YjZ\f~[XWUeYUWXk{b\_Xgitufcjgpgwflm`y|dunXlfels]gWq[qbchlY_`SrwlYqWk\or`oFj\etan]^[l{`apuGXP^L[WTVYVfzz\TgdZf`]gaX]argXaog`uijeldsciWqisidlnXb`]_qMvtOdTdgh]hmljaeSqfg`hftbb``JUnqdXjicqvqkmhe[tOtcw^afyVWa[momcn_Lk]YphRStWWlcTe_adj]idgi[qhnfkcve\_lctdjfhnXijuscXkot]k`o]`mphc^ir\lckwZodmgZV^`{leibob[h[gYm{fRl^aXfeb^{bmogxfoja``]xY^anq_rcsn\pgf`lU_g^|a{gUnegjaaWcipf}aWZd_kWhfxdhnrimgjoncld`dYsMGLtWigsZu^cai^w_vmikk[]{mYwjRcv^hNb^mpcomqbj_t\^`W_abmZnda~bg]Xk[ajY}yUphp{limxd[\bdiZghbpme{aj_h`khhqqe]fl~jkvdlkV`cif΀`ei_pnhoRg\jvp[]qcQ_`fRqgWkkhWmqsh\tyS\e[[TzesXpa[^pgQjsPu`kk|rfcga|vb[hikzvWkksNe[jUq\nkY{pqPpdtZyeaXw``hbg}\hj`ypoMcd[a^\zmaSe`cXUeie[XvjVgab[xjjkl{o]SgriooR`PpWk\uk]VghYyjrhj^b_pehlndhsr{Uqbj^{mgMs~vmYgir|zufvoa_tiXf_lGmp\]urw|hjimumpmbOvYiYWfe`wXcXSZr}bjWkabyii[S^wpyrpb^uwS`\lnnambrUzgkfx\lhrT`bgr{bcimj~aoeQhcdyX`gShOMbh|nhiVeny|hlhump.b_bel`_Z\Ue]_ef\cielnpbjmasv`[Vkas]cgpjqtidmaVg{T`PjbcbkYecgi}{ifkdVgnZF]jnet}_qhd}rlqjtcgabOoYgrW~^qamfg`jbz]_hpeq_NqdnPda^dX{\`htxWX`]a]jZ~]i[MYh_}kZ^`[^VYc{qmc{efbaSekoqyW]ZrghrgxY^pi^m_R^c]}i\rpyshqKbg`kcRlRcy\tmjzp|tqudoshfgUWd^XhbmYViLJahau^qnm|vqjoa|OKgc]rl[^de[qWc]ukiWiXZr]gWy|mvadilhqOdVriMke`e`hg`ia`\noda\]Yc`bi|_nZ~lqnnxdhhhxvonX^gcelbhomn]Wsgecqnmzu]jeradnxmcY_m}\`\eb^enromi_aga}hix\[b]nmkhnnhq^d`T~Te^^d`yedvqynjjdgdYctZcbj_onlsbceuVd`{oqQkak[eZeam`ko[hbgmjOdbbkdbsXvYdfe^Zj\s_]op]h]k^g`bdvhcNgkb|[nLcb^]xffTl_VaduVajnhWooghggzi[[g]`^fbf}dfoms]f~hbTu[jdc]\kgXq_i\`e^`fakglfWqapfaiceobmihsV[n_lZrrniesamZWei_TadX_nf_[bk]ubani]RivuXjoeaaeUWa`bh`maeZZs]gnj{bX\t]_deb]lk]`{zraWdip[c^bk^fdierxgia\{dbelh~rumg]Vn^W]lmq[_euhp}weo~kesz`htjddei`wa`kktnoR_gYla`}pnc~ec|zoiotgernaac\}bSqczd[Zzomj`pow^V[if\ZWnrZkcc^hgd]Xb~lmgSZea^hXrnf~aVgbfhUbbhajvckagkt`ucgkTSpdm`ZZuoiicjakfqXchmc{]cUXmke[]ZZedm\_T``_br\bXZm^\Ywjpvq_y_md_`dmd\bk[g^gdmWk[|^`ermnfdeWnn]VPP]^iam[qbvf]jepY^[ifl_\jnvrk_iadrbmrblcy^k^itq_sa_Mu]rfih`uVTV^xo`mtjlp`\mTjqhhk{VevfqdiaTPcfj\dgwzY_rfbTXfd\[nSmNql^ClSc~f|f[bNghs_rjcjYm[YprWYgnsuD`pks]fZ``qceafj^gss`_tX[`YSc`uTkaTdjpr^lzWf|{~ZM`gcj@]phjaVqefY}zgejr_mrfiLozTa`hpicdxoqYlfpV_xxlzrmxbfx`_iYcqm]pbaZUh_ma[rb^fwfnrY]rg_ti^el`f[k`zcocpfTlng_\YkUZ]R^ok^bdnTlhbQ`plhghk^ic`^pUeJT]deRie`^g`udZgi\OgkOfYZyarlS`hk`Vh^m_Ze_vl\Vidihe\Zakk_okZnYfO\_bmm\j|\o`klddg^mg`fYjujabanp`m_ctUeq^^r[rcbz_]VQ]\lje^mx[lxeqWch{g`oh`[izu[^b:t[pguxh^_xaflhshjubeh[c^Zahdg|\shTq^ckWhnpXW_jbqjcb`plZi^xfh`qgegagzn_`PaUkc`ogjzzgn~ijjannnevtfmf]emx[U`JUfPfmaSo^{`tkyaS}^WfVbbahd]gXn^`_feljVZad\`^Vne]rjYoa[fgj~ybyb_RetTjYk[T\K{kqanYcQb\ct`kedWtgl[i^hiddoOoXd`\aypdodz?aj_SkXZbdfidYjuxp^mUrjSP_mbaYcFby^o]X^dW~guzgunWbnmhfa]dc]]odh]_gdny^iqbN\nbji|ZsiUt_b}iW~q`jaehe]qqj{algdgWquRrjTWxnlZeli`qghbdwbmfdsnodZfuguSeUdA`iqm]qipjgm`co\shSdcxpdaWaS^Thak\Z]\`UtdcLU`cllUk\R`^[X_^k\jY^oGV]gg[s[q]w`}q_Zsuoa_ylbnpr]mdo\hafcaauXrooglc\]kk`eQhbjed]ono`Zjm]hg\y`\[ab~~xh[suiXUjawli]_[p]_pX]oPgQhYmtZnzRdNZgilyjX{nToTfX`cTbn_ik_{iZYS]_lU]ilprc^itou]_Rf]nqjdYlL\W^n`gVgN_iOZ{gW[ecbgQwnszqZdkmspWAWn~fjiS]j`~k[bZh]Tn[jUcj^gmm]Y[Ngscl`rjbUPpblN]YlhbmmNn~igL\qkix\dsbnfaPchfljbN{i|baf~cibhUazU\]U`yfqkkZkdd`^~[zVYfe[fjYYqme^vc[ac|a_\thxlkq^lRofmhfgg_m^keito]W^Wse\e`jXkdpdYeg\}jrg_cdbcj]RTsnKznTf|epzcaiTnomfUrg^k}RXkXhtahbag\obZio`dTsfy_ckbiw`]lY~acVf`eHZkWfy]hNjee]YsXwndU\cLlcod[iQig_W_taf[syZa\lct}vRvZ~kpom_wid^Y^cYrWhozdf\VM^dilotl|Xoaslidt^\ikc}mvP|sa|ZtgjmdhpZYCrsv\alscYURf\\[vbkgOa^^bgvZ]kYOZiwb_[diP}UblZfXi[bbtg]`Ttowcr]gWg]s_W`Pi]dJUVcjarZqii]oSee`_VomffvoskpfcLdnlritqWplh\kLhxs\km[d[dlOEhWajP`hP_jpgwzmvllebkXKXj\[WmghflpdnO^XuasVgTqZ\pmPozdlchdjZmgeTqr]ctLihsp^]TYglRh`XsnTbkdue[yljUeekYgs_\h_Em|e_UQJhh_x[s_bjn[]ctZbd[ku`]kgTjllS[\gbv~aa]]zkhVTT{rjWaVhxHXb[qwmaI\]`_P^uXakbJhx}bu^T\Pcjfv[divhXoknaff][^]TnaWbouiaG\HbeO`jWdg[^\ZY]kdsoYao[p[kefUZQP]ld`^`m^bjZS\Z\pdos]__U`X>o[[leYSY{QgOrYTacEfeTalgqgv{tdklq]eWSU\]]hpad]omtf`dc\V|]m^rkh`gq[`fl`jZsevXRQa}vzUx{zaYfmd[uzku;c\Rn\j`by^sdb~ipe`Tgmi^__\[mvjycg]hpom[pQhibhSRemaVh]reQi_\oysVgzhx|tFnmvhbiu{w[rcjnspj]Diaxw}ge]j_gzpe|~isnbwqhplpzskq\`wagTlqppfkhdpynkC^qZ^fejhlmZaKlTn]ng_aaTog[m]`oqfoP[[hWh^eWgcuxWftlbuj`aTr`cps{b\QxjZOjeyZ]^}uqulo}yq`iXYoiVX^jVo\fnnkgHf`Y5a`gmf`r`[n[]m}cbS]Wg_vtmjn|d_xgwjVa|UWRiinW^hqqegQ]jpqcfvj[b\onN{Pt]ibc{j^cLoPeQ^^]d\tdur`qcddmef]dbhkiW~onj_wfn]\|a^ut^nkzdZ\RkkpgtdiQiqtb^__Ugq^p_\cgwvmh[]n\Vmjxecihmo_ejknmRqubY_Tngernemk^]arMZsXWaWpf]uImYUkjr]ech`_gi\_u`srUZq{n\uxhmndS[uwWb_c|hcUf_fjvS\g^wYeTa{ljfiVlPc\vmfa\iZ_Nhsamvvh`nr~uh_a^nv_egkPglljn^d`]\jb\TlVJgkX]gqidpj_Xpodfm`P`yxfpjaZioahSifj_Po]_wTazVinfnX[mdyb^aks]iTj_vici`u`cg\h_fYc_e]WtaYOa]Ut[d{f]apohm`fn[bloYtoeYVRXadp]iuaLwbs~VXdbrbjbnZhcldl^cjrl{[bipoavX>wkcbYhaj^[dmX__\mudYX^gq\g]a_eYxTZo`r\Pm_bcV`ZXnaqhsaakcprYYqdfJcXif_`qk`v`tdZgfbt\doX`Xza]Yez^j^Ra_akah]o`XU}Si_vVZ{h^dgrnPbh[abip_b`wlYl]oT}_pYcWbYfiT^`c[kgfVr[dmS_`m_WXuchfU]`[q~YlzZiakfW]jb{kajZYafXe`TTd^mmxkD@wcohpxba_ccvlmgjWmqQcVe]arTjSPl_b\djLfc~g^wq]iclY\Ro[^nmc`rKTbxok^jblg~[MdqYd^g{Wjhq}Vtr]deZOlmqRjac\oL^X{jgdrv[dm\cjph[ckxt^gq^e^f_tl|pdc\uk[Zpfel`ab_dRgQ_Z\pWfsZaN}mlScP]Dng[\f{acjXf\u[{jwhrjineicTKbkeYcQfjXb\[_UhZ^WmZri\ppxckckZjle_kidmc^TgkX_[wy_blkfa_RnlgZym_fd}`tYtqR``Z{psjdn~elphn~qVZ\`vXivTu^l`jKpcs_f_f[YmfeQUiZNjkh`YimMvpamqT_f{k`mZWewecoo``kk__]p~bxmrpzrPibbq\tpjzdpjphhelYhjcjuxc[sdxeqZX[sjvkdpvedm`ajord{nblcpbhXpjlPkUb_he_a^cyaQenu]anmm[luxoXti_cngokgbg]jjajm]jiZ}braYQdafclZRlYpk`X{u\c_]dXYjdnitb~pgatYUp]ieZYdlnYrh_^r`Wnh]XfwvUghY^OkpP_dmhbxbejrbYnynZ{sV]dmx[o]molecpiTtt^_t^csd[on]bhl[gmlpgcdWdoga|g~QUuiOjh]T\fk_gVWgbkkn^fdU\bdecfo_fhWZqbcte_e[d[rWmff]\`lg\d^mSglpS\cSgdydg_lapX\LTonZjnbtfJZ^Z^Whkm]xY`TW]XQ]YZgScZ[\Zcgua\TgOjiqkea\SXnFtz`uVycJamuv_esraa\^hkwkopfTOl_blbeSrfF[jc\YsPkvrjXC[kffVjjesf[_qoepc{jKdncV_WmWXd_l{`_ph[cUwVZdimfqQSgl]LinOTQie\^ymmrUz]eO_w_gT\`UoaNlpyc[YUoxiv_]oV`JYmwZ_V\u|flxi[_cn_OYan]oe`LYmZfqn^Pdt`jpy]TaKT[ZkRudjnp~nj^abbPhawcWecqqN`htisgaTiurbjfp~rwmsJ^_aeYucRWbsn^isZxijjXbqbg^f]ZceecYbbm[mm^rofpo\|gUaaYPc[pohdiRbloyuhPxEgcrZfqibmpioadOm[Zj``oeYf\caulf{gT~edjtcsThznmdhXRdc_``_kZcpxQ_g]J_sd^stcjhekUoXVZuXYc~pfbkmPab|xPYce}adcsbc\rfPgmZds`]c`gz\hc[c[tgb_shRkur^x[Z^jWRngXeifjNLUWQp\vp|^bWWnYgfpYj^dZarj_micoWf_h]Rvs\Zibqnk_`b`Po[`vQ@hhipe`k_fvtwfQn^hdc_bqpZg`\lfM^ZpOzavwfm`V`hc{\q`aj^MYbyVnITko_Y^lp}mpn_klhcpb_[V]mlXrv_diaf{i{Ps]ftu[aoekd[l^`aZiw\f^Yine_ipRqikfsgrYvbcco[sjk`shcUa^nrub^_c|Smepd]mOhqckx`m`wQlcq[shdc\bvcvRr]jgzjgkukje[h`VrfrbfOkfVm]`xsIZmuhaglwf_`oTYadnrU\ff\}nr~YZl[]jdnc`i_\cunafkfnSr[UePecfcf]hhe_jioneojxZ`selaq]mVTcckDFNkZimi[c[[lid]cuo]hgiWd`eZee^fohbh]yf]dqUgVo[yXeam^pol`jcmlpehgl]QeKNji`Vmxka_gHgjh^eS^jdtZe_Z`b\l_rhecfmdi[gdjhiUWm[QXiU|ieiemfdjb`ktttm}zWxpfbx^iixmpgm^YfkQ]nogkbxni^trpiiipcegVpUfep^o]p[mcgeauwO_hfP|aYhm]w\jegtXhTX\tU]RT[q_[caishaa|tT]hq{mti]^A^u]]]_oampYabKhhbaWWk`_o~vQW^b_`h[YjgwcWhf^^|e|a]]]WZiedigl>joMacsEVd[fYUN\p\]`beK_oSVDcdafmgbcY{fdg_lhT^pb[t[qV2P`RIWZgcdcWFHpZcvQgRmuldbZdenax_lfehOf\XRkeRQXtXMceeg^sja]Zp]bmaTSg]bToT[]bk\}hybSf^_dsXUDgN^xS{^\jo^nY^WpjnYZi[sASk\_\baU[]eZUqIPy]tm`dmh`ur`WmKicU^{`]}obdjYue`Oxjt]yccRsIfgbaUJlTdY_lccmXsb`gwhobvVVigjhktY5kmwlccWdj[etgPeqyekc^AsmTjvUjUbeb`drgxvnp6[__lVVbgPX`tsK^xjfydilXSTmYcRsv`b_pWvdR[Sgfdephslmg^dfjvV\v]cZr[chYacenqjsfLbzllmli_U[ZYEjhm]`X|]bZ_Bpd[nRmnYlt`]e^hkw~l_\i[a\Rb_Zja?s^tegNfhcsr\yXwnZnlSfbPmhdXUkfzlYanfoaam_W_fW^]OddadisO]tXd`avW`\_dm[Xrgqbf{mc}mdg`mk_noYfpexVh][`Sac]i_}\efphyYt`cXLffPy[jnl`mopN_S[ipdjXauVw[[_koKue`nf{r^e[dx[\^]Ulaa`k`ejhk\S\ih{a[ea\bW`qWfqka\qwmjbMa}Vii`QaqoejY_^kPo^Wn_c[cWa`he\vU\k|yn\pfmoTmjikYfVcX`Pmjican[z_jRaiQgmiediaiZYg]dofWo]empa\aSfGwtjwsqcbYUYmypdjuSY[dnkfXn\jdmrYTeP^`tdEzce`WTthtqy}r_Jp]hRR^AmVahmSKqgknp\gQ`]_caSlNcaUr`tlgfjiYgJtj[ccg}`_QqkbXi]hmmtkWnXak\URiy~qb`ulcoYmgScphd_u\gQfchdTm^Tc_c[ONyhhufbgdnrjzWhNsYgV]Rknlfk\iqUbRWnmhookb[slpVtv`{gnap\YhgfpSkhfiw]]`peeq}awg[\eYYxxxlaagoe~^npokhYpbZbcnhWgoacZ~WaeR^gbcUniOjYY^edf\opza^rvoykkh~`gndZ^\aUic^mh_^hnnbVjr^rbiej]e|dnf^Za`oneVI]{hsp]eT_gtZnr\ofptxojcuem`_]YasneXdh\Vc~_^ghcmbiboLsb\ahr^rlmt``chXWglckmnscbifYfecglc{gpnrqmtXa[bXgk\jkbr[__iaf_smij_UaewWZdllks`cZetrcWXm\o]mUiZ{bXxt^QfjZ^lattNW_aaKOlc`gqctgSqb_esqeg|ynhYfYxgeb`kvTx_if`n^^W_rgfvdrenxhe\|un^cqvVbjwlk_gkh\cdbfavxbuXZmXo\fYdue}lhbksSVX\ghoo^~nsYPXev}zxSJfpXedjU|u]dpUPferbfqwTuijwkeuf_`me[{vt\i^Z[uoXblgSigi[U[{fauta^adknev^qlpxXrhxuY\e`bbZfV{_gdhlprebmfumxqqf\ulgeq[p`hqlpThG\hVZaUat`^MgrckscXnRVpZlibdbWn`dnWzsf_psekwaE]W\\djkk`{L\xhvjz[cUYwpUejxe|ua|fKeXrZt[gcdYgqY\jwdfi_u`iaXl`gfmildYUuomruT_]ngiavUXmclelnXVS]f|\uWuYZiYq`gclp^sgj\XjZbY|^Yrd]aZsnhh^\gd]PwaW`V`ic^izf[bmbedh_aUrnTisX]bnfcs}ZzwmLmIlWishT`g[pvIm]Lojh^rinnjG[npbHabbjXj`jTQsdkcpSjZ^RZJlam}[[nlix\l[jHc]UbbcZgjet[vpRXmdiYfar_ap\Ue]aSW`ccn`||wpd[kr[[hhcaa\smj^jq[jshUfnib_sbcyoaqcvVc\]XedmUkdha^RNck|ZgedjfsJkefniafyl`rhk[`XsZsuh^reYfYsn|kgn{qWbig}TShei\VbJWgitmX`i]l_uHaWotvpmim^fiXqYhbfbohp_bclmk`nbv{Xfh\gnnb_eq]``Zcf[`f}XdYfffgMfboleX]euljId`^jXgnigkz]m[ocKo[_`bhORlvc\mVW[maddeWmY[Wgcc]pd\nbOSg}~bTd]oaqqplf^cX[jTbajcpm\Wlqzmqvef`{ezMcjTit^`hYcpobgktk^[ofbQ^dqghRsZ\r^khbTbdNe\|]v^hlkgmrz`vqhqaUh`moaiYf[bm\bg_q]YqYe`g^mm^mbgkedaj]`gl_pn[b^`Tcj_aivmaqhmqrbTirp|jt]dgjbnk\bYUW\jseoklFU^wyhcaGjtWmlUX]vccxirQWrftr|guf^Z_[ddTybP\ddsma[b[Ykbu`]W[ikjW[n^mZU`as}kklxLq^hlNmUq`kb\aOr_fTbcQ^h]bodTVo\bh_wgVdYqfpa_]n^ha[_|bgRlbdx_UgKh`ugerplYnenle\LYozinpl\d]miutheZlg|geioCbe[zx{fhPYar\q`Y}{_kPWy\cxmdsaTar]qpW]v\a`XPjangdsdWo~m`O_S^s`nglsjnp^rsh_q`ax_ibqapc_zoeyeaRner[jia^ki{oc_ho^^dVIbSmd[jj~rWsmnxiQvWbUbR[]XnYnec}usg`kmjk\s^Z[sncsjde]hPrlgd\clpVW}]X\ggvYQfVdzicfmon`o]qcvqdYcSQmMtZfXWohpcgjjjXXb[ljij\wHUpUiml^_dpvbfa`m_j]nqaeam_aocx]mdclk\fkl[Rppta~e_z^Q]iec[k\uiuU`zXmo\^`yheZZ[ihTl\sadik[QelX_ijji_hamtsh^k^rerwnp[gtrnxacckdamWQegecbhaP]buUzohtualg_ctfeZ_lPWzbnk^\[f}nlqye|ybdY]mYcmbeuygreoa`[jnf]^VnUUaXfclfhgmj|\dgh`cavehVEm_afe^V_phfVc[pfobXp^^c^[ebd|ronetT`hfqwynj{^_njmZemhli]ailWWkh`a^dcfpgpfmlqUjeo\o_oYo_f`mbWjHr]xpe|`i|^ZrcZSpf^iod_kfeXpep`baVqdpJ]WijcgWVm\^ffekaeOwfihbkgsfaawc`shmZ[fr`kriT\ZeeitNmcfly`tlhzZjkeqxno`fp`qoXidxn{vxhcaz`c\Z_eido^f\ibk_\~ng_Zuggad_fktl[YmVTep]n`_x[gsgss^ubcg`[XY_jdXPejatw]QdTkq\gWqnja]`jk`Uj_^\]qZ\Xiace[[fSpa][eoYrj_\fesj_k[llncelsgpkdh]e`wvamtWfnieaplsa^_s_op_cie~djdhf_vfdbez[me\kqZjf`Zh\raodatubih}jinkgojdfZo}gjeio]c[ildjtugUbUmdk`r``SbjpxWcdUhmftbg[{bi{kjjtouYg^dmf^nwaQ`YUbc\c__spYjg[[kfmighbd]kakcnV_pvuvdoQpbg`_^a|f]`ShZjNcqXicVeifnQn_oflfamgt^TlnyHie]okchjiihWs_dqr_fzii]a]k`amiyVpXztZemUhmZjcd_ik~f\oqt_^ZgTt[aur\}f`nhfgaln\a~swgi`msncogW]jl}^ciUjabumsdoZyspjUebr~geZUm~jdUYWf\ilceclLp]Vos_gd_xWgaZgXZcvh^d_cXu{mqmnmakxlPcjgbkcci]Yvk`bmcxSUqrwgSZqgl]f]jqcA^`JtqotX`RcoauhqvY`g[Zx|ghpeianTmri^__jUiiphekV]_mSRL`aVZ`]]]nx`azhnQuc_hQjfZla^mGxv_\ccpg_hX{d_[V^mtd^\k`gDus^abVt]SkR`akaog\gSj[XdRt]xSttdz__laejzdYhrcaea[igrYbec}]Uj_{]pqnlnh]jm^]vkkieF]ZcWi\SZt_r|njciZdcZtYgrn[[qdiaXhakUsnllgfZOlhl\rofZq`fshoW]Z]whf`ctd[iSgm^slV^eilcudghewqchZqYfbXYhd]dSgsaqhh[e]omojUcc?agaqddkj|^uebk^biczgz_ZO[w~eem_f[rginWaj\Z`qjooomdqZq\oadva`ef_eusp[rY\mnpcjnnuZhnUpdqpupjYVg{cpk_Umlfya]]W^k_Zdhna]vmVjbdnW\_bi_b|Vy^p`pi^lrfp`okauyibhWoe[cPkbppggl_{wp`qjgsZsgWifh_xf[mo\[V__w]q}U}\a\fgqffOilibeW[sfiQdaaVhXg[nQ|oTbiarvZcqV`y`Sls\ik`_`mW\Zekhr]g[^d]libhf\muhoMj`V\OdYeiQUhfaffKdmumZu`jonpmcaibniV_pWmjemhcVchR]Yzj]m`zmxv{\[xgpw^^ysLpvukt{d{oXpuVSwnRtgac_sPmgoSaTZb]fdixc^vgg^ig_nRbWywVZ|guhkecqltkdvTYeqc\iycmOXRyjgWrpg\\Y]je\tmtepcZ^\celgrYaS`afghZfe\^fu|[Sjerrfgcjjcv\iScj_z|m\zgpac[d]ljufhmswOkrrYjxnKVnecbddW^dqqg[avu]Wdqnvf[a\qbfYTekhfjmfLUYv]ctu_ojeana_]ztfifzggliadXVArbd`WMV_pvi_c`el}ko~n_ePxXji[hpudo^mpWjqLenaacqGpmgtbfk^oRigsT~osrcg\aiiwMhu^e`}^arzb_Xc_H|q[hXk\fRbkZ\VHpoTS]oZ[}VolZZd]M}mVXeeo\Qw]T^ddb`_^^hqNjjarwHtkgVpicPp_tTat{bO_eqhAf[RbrZfUebUa_`ahgSZU[WnkafgjuwRtmWbgig[TZ[zrmfxnj^Yrg~Ljgm}Fv`eTnqf[_OYjfda[\yeYZirbsd^_VYfrg^XmlPff[canYnhe`_qkf^bloT\gd{xShmbeMWah[knPr\vgkc]iWeisrekZbhgap_^aejQib[kkgdsum[yp~|_eep{faiXZmpe[Zb]edS^zxhhm_d\Xh[md]deoVjbfgaembg`NZ`T]yfps[e^jrcf|Xolrb_UqkY_d[Tjen`vpfWd^_iprcsbjp^zpjh`T_kXrfhi\_O^`sgmm_{}{ho\MiUtWl_seVvllydfdroxxmiSeV^^alebllaqowrNthgsknu^We_piX`_a^fhYaoihjXlb]eddy_gr`nN^ihtbQfp\cqgcc^Q[idQ_kgmkjdZtatjigrfw_hw\gsczqXcSa`qb`\e\}fU{byh}uft[k[]dcdcY]_iilWok]g`_V`oj]moLiaorjnamnposq|exq]|TlsbamoYYbsqamvualHbnlv{r~ki\}PbZdjxwq]VsLefakpq{lhedT`lno`vxnXcnlxVui]mK~aq~|x^Tp`PhQS^yu\\cd]lei]}wornrZmcmldsfw]idar^clWcZvRdfnnlka{mOrmks`poO^lcsaa_mMfnv{cUO[ZYkZeZmr\WSV`b\nZodnp`p`|qXVc[YcdgWowcnxpOapQkUa[_Ygno^H_^cvW]pilnlihb\\kln\kvkelVwv_Ykmor_ackYjZjajYgeiyxlomnh_o[jb]`nvte]d]rwoogutneqd\cWW`tsopflq|tmtwhgt\khit}fsmq}e`hZdm`hid^qbnhgadca\mc^evsy^aUOWimSppotlfk_gqcjkfej~}qUjqdYpsegffabnpyofeYahqWfmSd|~rgjfeptfaekuigliqpvYoh^ifqlq[a^qqlbgYs[S]ocgqn^kS_qocZsohmdbumajaerg[|saul~gmdZdk_ZckaZrld\ghZfipj]jq^fW]_\ga`W^g~ftyjggdodomOUl{kgZoiW[X^kf[xbtnfaRbglZ_tb\p|FrJjggV}6ahp~OlyVjggr]nPYQsfYc`ed\edxvalza{Z{]q`\}RwepdddcwRj`icZhrcfZq\h]Rb_j^plnOhccycca|ugZXA\mRgefiqpXnS]jji^pgr}fda^Vw^smpsiUzk\yxd^G\aj{RVjlqQhjqZzpY\]adSyZbsnhl~Rcpwt_lvRoqoa}wQXo`pLnUtngb^gtlYgmUAgYZqPw[N{s[[drhZsyR`btWbbpbSkh[thp\kc~|fv^dp|nnR]U`ttnbrCax]X_SmrZ`Xoa_ijglpmhfscgi[ghncWj^nyL`RcgUaSfZ]s]idhtndb_g{gJtk[wiWsnbakcmq^dX^albfiW^\^\h[giya|mR_ajjY^[kqW]Txh[\wTluNdbSNn^xpZFYuQg`^lniWnqZdrvU`jkqGQt[dixbTt{lusdPbbwX|f^jUllh|_o}Z_o\w\QiWfZel^i_vtnu\dbZ]^cdk{hjmbomM_e|faymu~m{iYaeOe\ggmXZ|ZNninP_azyijiYgTlqndoWbYkRlZc^caas]f]aiibhhPS]bqv^t_fp\WRX]^[W`a_jdeOYZdtkwShee\`uk^]VZdYa_hiivj^j^h`]c]`\X}cXaistP`c{y^b`uU`XxYggkUbdgnw[RYhe`PfqZVlY_I^fdkmXP{`tZ^vaOwgjlZWTckldlThmoaZlU`TedkSod{hcLtSnkilcgkcyabnscpkJcV][}ljiYUGe`wU`ddd^]ejei[rhSV\`^o`lg_XjeUlaMmeT{^vJa{XhfZGcXpd^fcbeaif^ZbdqQ|jeekQaYgl[n_^Pmh]kl{k[wYgkffgcelabctzmnccmk\_feIzb_j_b[]Nhkm^_eY{~v[bjoUhh]]kY[SObklUqZqU]UdjnkgMWqqpemW`sOfkkffgc^nn|Yq{UXfPD|\`MbZo\Bd\HQITTcooqks]\p]fu{y\pa]\y`O_^rktnQveYjmlgPlvUidzinX|Udapal[cNXo{aov___U`kgWj_eebeqbdWXt^eyklYRhpVgu^kW`d[[}b_nbbitodleulYzjPf`wK^pT\G\gcejkEfr[y^noY^A~_lc`m_[dUhcnz^nSXVXfRul\eoTbuYjig{`WZtthc_sd]dWne^x^[la[scWPxcQbeeschciuX\W^dfSjzg[Qgjggnack_apkZVNa|kakbe{jb`^plgb_Y^gjX`_qfX`pgd_ggjZX[iuvua^cdikn]mUZl}x^^``ba\_Xcftoonp]gfvkeejSkbivj_erpVYUoqooh^\a__\lXeigWi\qf^KvhmX{]gsebVZxhcWjTaocxUae^Uxeljq^[_gwgdUeqdXt[Ud{}ltdZ\s[d]tp`jg`l_c\hihgYhhYwsiYrT{ankj\l[lco[X\aZjnqmXg[tbbecblgrshV_}hTkg_cd^X\vo~p]|^djn`]rif^denlqbmLs_calsgpnhZZ\Yfqxgddgiql\fbpyyjZ^qi\Zif[ptVnfjqhcmanneV^oqglf[X]R{Xci\cvzfmlb|fflt{dY[iqgg_Wmj`hzmqwRa`bxiehdbkhWe`\`Vrddmkjc_nfV\imoScV\`saod^`eaXNm]j[fndWlkY^usbi`p[f^lnfogeYTlZ_W_gddZP^buapl]ak]][gmVyYacmgR^[Pocrfd`qlYb{aa]j}jwsWWpkf{ZQkdw\^x[\h\ax`UdhjeZhoU[baWccdmilkdfc]aeeig\eVldj[`gfjcfakP]pe\^UNgn`gc^fcghbcofl_^abcz[]cpqVgTvr`_^oYfU^ZYl_^}bbSbk_`gbindPsWdjbilhrYpk|h`be}XbgcreO\dZfdiqaXfU\]^\]grpU[riqSmt_nVGZnq\va|^lfx^aZtffw_W[Ofev]hS`\sdpi[[NcljtuYjYMhiRaSgt^fg\QpnebZcxd\gO[qka^m]cjm[hkyfmkX[Q\orS[wnYe`abvi\_\ffmgl[hdYjdr`\\enmfWmiefo_i[qrPcUswob_f]fdk[vZlyVW^qRio]njUfa``pbZgeahb]hdOwhiwt^p_UecYeinhnaj`a]xk\yhhbf^mkpxro`h\p\sdbfWbN^\Og[\_`T}qhnlXUci}T[wufNjM]n`OU_Q[_aaiMhb[Tuctg_qfkfR[[fkOb]ocmdhlc{oFVka]xWfhYklcvwN]jwtS`Zblg_qxSfcY\d]_Z`^gTdlt^IOQ{rlgan_edt^\faaatcjdrRkONWHbbZW_[YXZfRGqvM]rtwV{qvSiyDm_lwUutw`gmTujUwZVmplejLZdahp`iXcQ|IWkil{hIlm_alQ}lL^oeQR[[L]~RcrWsOo]uTWmOfwtv`m]jb_yiLqPa`aOU`m[aZcYi`arVed[xe|^TZfhqi_ciegYkc_|]riWhgfcWQSTjoYsmegejcPvj\he_TYvvVa\dbqWpHSfdgehsZft_\^qoiT]n]ZqUzjct`jb]`fm\|xgH^or_FhTaUZaiy[e\aZ^eW`_ayjcYhckg`\sapeY{V_W_nmPn]ipchvYat^``lvYlas_{[hUie}dbhUpbi_Qb[htd}QX]uK`qQfeoj\xTecfgVd_UhX]Y{Whouk_my[Ou]Yu[PNti^]cwtph[nWni^po_~]~phovZbv{X_gdSm`R_uoecohzi_tWTbWnb~kY__Sdopf\gfX]klgS\zVimMs|gVtPWwdeyjmYY[uzkhh{xm_nainuwcfmcqn_`t[oedsliqYhhph]qmvj\Zb`kqern[efjcebbbdyg`ZekmrWcv^XlhgZ{aaehiYknlmtcUan_ldbfkfc[YpndXqzxX`ZxjacbhVccghSfkvhqlXocwd]]hsypkbiTowswcdkea^jkaqfVh{Vedgj\n]^ah]flcnfalash]aeloeytsaiyienbrnvd^UlcegYcnfeqwfenqffi~c^\af\[\^|oaehhhakicdkhk`l]^p`tfichs|ygYkoee\tdfkQ`vjl`\tj[nWfjb_kjXih`YZTxXfaXV`~tgssarThh[adlkQT[hi_ibqlbVw^l_aiXVn}ljkbd~W_jl^^Te~]bVWlauWgkoqi_\qlcfih`e\fnaexhdaif~\MhcvhoxR^lb_]eNokp`i`hYvfZaoebU]pTzegij_smXlmmRn|^boaYVfw_Zt]~qreeR\ycpeZnpbfgZv_pg]vkRn]ulcYm\l`qcffj]gq\gthZ]WU]lsojRais_W^mdijg^^]bzZgfz}hjmw\ZboqWTillfpNhYaL^`jxhZc[^eieVkhrgl]VglkeXfb__hed^a[Nj{j^|axmQg]Zck^Tfwlx`_bnUbpqspge~ic^hm\}i_fiepZYd{rX^}lliraib\ohV_KjejddifcqmVofpnea^O\XqpcimZlhtT\ficUt`ejld[aezYnkbkn`jaqipc_jeeyli[fff[lamvivmUlmYm[mX{bcsnjc_gl]{iZmilgaYdkcmY`wrobdPidj\ln\p\r]ic[e^x[_[nmqecqtk^^bQ\mKgnr`^`kjmw[he^|s[Q{W_lWoiVycsYmii`hcmihe^iablraf[e_pfnk`mnU_^hgejjrsXrc\`qdmi]gc^]QrfjrWckbhowQ\kaglh]Zrildnj}\qXpZevPb\]dsXI|TbZf]bYubkdhp`Vp_ohR{Sr{[aK^fZP}YCnEsdai{_dcXbg_SuIc{xPmlVbX^`Ym[ZgZXcVlmbwaigZzofcW]][hjhHcl]YK[qc^^kYceoJVpm|o{fgcgXsdn^H_cQi_kY[gKPYV^ijTfYK]sw^i\O}ZT_dZmduurhiIeiSdsTT\jVNr~ijgtme{J__wgm\aidi_Oiba\[bY^_]io{_mjcZ]fm_kc{PPnkoYsd~hefo_hhO_\vTKoz[WZakdXYp]a`a]zdYes[i]vessc[n\_aDjg[]gncka`YoneASae^mmeskemT\bjW`oux]Rjwv^iyd`gy]lQddQcl^defng]e]vaYa\g~V_hejz]tVcbhi{aqmfbbaahjpe`Tgbf`ckc?bUlo[k^TzSo_WmoWado]i_b`paaafnevdppYobSf_ikoW]eddfcbz_k[d``d\lmmjcjpvwb[VfvbgxhiipKYYc`]^P\U^kia]aZiYVif~pzh`dtb^Xdf_ueYa[ca`[B_ioRmx^ehzg[iY_`vkL[gY\hSqw]Z`p]\^Rdgm|ahpfi`tbWSgT[obY`]wcgeh_le\kdnPTZzgQgY]nq]da}Ybn]cna_ZcOouj~^]lpe_^c_ngcdZfx^holoupXa``b]`maTgfke`XVoPk`^YWgaoc]UandYet{bbneloUd\WQcvX{mn]aecWafk^Vr[^he^axl^jlepvuh\^\[\nY~Wnau|fdjsnZ|faUebZZhpibgbmifaWce[WVkl^]X`RXk`bkkWreZab`hkVsYOSa]jwliqdkdNegtU`_i[hidoogpYmdbP^ZtUc?pv^cWZr_kuqbhdl`ZZodg]anjrbZlarmgcLk`d{_djdcg}irfQsd[dyZZuacecpj^yhV[Wfr`XdkbXgVqwb[h\R`al_~Yabnn\\o`creLrdpfifdng^deRPbbbdzYsz^joagwpZdc^dePijbkbu}r]dhjmXaaTpc_lQbyTdr|[ajqfiubiRucoUrZdUaiuaR\d`]Xy~VZdbk^n[poNtP`tjKb]l{~Kj`soX^^U]tm^l]Olw^iZSi_hewoXwV\\]_XbhXuf^k][fsa^l||i^_W\b{\pu`\Xfx]_TgI^Rkviod`Yjpp_bRb\an]^cvcZb`hdcsifgS~[drPa}mgw_]bdfhydq`O^WwT`[^^g`nncfTsTZejwjYqg`^nx]Wdkip_jYufjtZdi_qs[ckywcgz_hXZomikoGpRkl[Ykaata`[qkn`Jibff^|ffm`YidvVim`\\koeXa^d\z^c]JQjll_elUXtgv}in^fb_bb~c^mqiwXac`p]sV`gfhfSZsXedortjZntmfkg~cjXiN}cb^mpd[o_^Ze`r^n^rQZdSnmXR[umgkUdY|]mXs]`\lU^gq{]jqO{cdWofhdaV[Z\~YYwplWdfaIW}YhiujmtTUfdhhf|siZOhsY[Ox]xdVejbqkZPexklVa]ahW\jbekb^|ybdhtjg`qddmVbVmyhiy]`u]noeWv|ZRz`oNxg`romtg|{isrbkQfwoVmWXd`[hugh_inebmbZdVqnsctXgr`bwtdQ{cdnqfhfkkpjx_X`dwQej[]kffi^bp_zqeosgvWmWWqhvNxs^nui`j[SwYe]_\akrqgdchcighkh`dq`lXtaxejcYddy{mYd_WiZ~ytkbgS^`^`Y_i]yOVinxcrddh\]|gTgnmm\[cle\nfoUnibYijdXkci^eYkq[\kdfkokm]cl]}lhrgZWZ|khUTtfe]iqXeitdn^Xiqok\atdl`kaincggegbk^X|G^aPzXj_md[chid]|Xm^Z{jlgZ]baV{X\jpdk`Y|eheW^aan^a``^dV`qsilsa`^KZog\[lp^beg^kafgl]^kteeRhviTrfgkk[gmzcc\rolgjtLaaTebaqf[crYR`Ilmo|qvgfraYmgcdnn]]Z^YXtlnnehnvc`\WWicYb^_bcc\maW}Xdg^bxRb`m_Wjcl[]efqof_U[dlgXLc`cas\m_xtkpk}i_agRalenknh_k^pe_`exvhw`rWRut_plbuecd`g]a]dp]YY~`bh\]]Nserb{e`U\_maoy_ocd\hp_m|en`sg`_k]bmkleVP[kagcgaWdefmoZV\iqiy\k_\eja][VkxZ_f[lWneZoIdsydiajvikk^[cX{hjW^Nb_cysb^_]qviiVXsU^mexjr_c^`wbg{^d}YjufdKWZeSakue]b\ktXeeXbkrqYrnljQh]hh_Z[bnr[kqjaffXTri]Nqmmv|sl_Xgjg]aqqn`Ycj[t_{~Yeh\bscd^J\ck}SvuS{galhVja[Zhfxoidpecdmt|XshdlKnq^gec_[Sw^yz\jhi]rW^mdnKsmo[eoniWSi`YUvbamcatknipklhVyWkiZlWaY_nnzksaattbkjlt_lvQ[\abemeVUqLVejjt]\o]Yhdn\Y]Qgcyeast_qdVpXeZt^Q\cePa^ghe`cpsfNZW^itg\nJsycLeRZmLrZPv`Ybamb]}qT|nSWEsoc_\\[s}i``dhZZ[cpde]TRgf]Ub^dYe`trnsaxlqZY]bl^lifgcFZsSkbVd^VY[]~aeeldZilrjmaWVztoSslthtXq`]R[|`SxZ^n`lYchlYU\dX^ncbceudpMT_Q`fhaeinXdlZef`^whm\pYfnvX_nTPg^veOMiWf[{ZigSipQq\a_bkuebjkStShjvjqmi_Yao{`hqnWm`S_glJd[PkloofcmWai\UzgfnuXVYoeks]W]mViUskohY^jyknJZe[geYpVz`V}{b`kYOghbZlgOef[u_ffnkjjg]hg]xXhajYchrs_ppua`aW\Yfd]`lsm{oj`vv`Wgos[wdVmdikchpka]osnvtfi\`ps}][bmtiaaldgOo_i^k[je\\f[jQl^upmpbpo\m\br\p_odwi_`hoZonw\ahhlnbm{mfhpj\\jkeosihfemyYlnrc[ll_nhXcf\iha}nl`Tjj\plaXcijwrrh^`oaY_al\gmm^`azj\[gfgkhGnimjaldi`bbahW|mnow^kd^adXhvqa[jkavc|aghefha\\bewffXe_fvbggdzla^juauf\_WJ_ZkZq_qNFVabqjiW}gqP\_`cd`xb\pX_g\\I\peLT}hQ`m`[nlw[dbX[^_Miqme`nhhcdlqTUWaUVX[fvko[`_tfnFTWW_\UYMbwlTrigo_mpdaedpifjN`akaOxYnk]alaLshjeZmj\`_\]sob^]]cQb]b[xthg{cWrn[Ten^qzfsu_Vi[`jb}hY\vqWgWdefadYZsqnb`Xrumklowe`q|^ltlyro{jh\_mYfzrhntXggrsXNZw^j`bacw^s\T`d[xsmdbRfnjP[gpdj^kbb_TbmbSgcqzslPaff^m_aLapfQu^qcg\hTUdYclkc\rWZuiQbX[Qq[kYh]q^oiRivgmkuc`]fQ\jIj\[kXbmfYpqi^pbocgpbuoreVZPPWef\XaoWccYvl]beShuU\ehtk^N_kZR[SijjUb]r_^df^bWUc~kQWVJ]cY\elXbndb~q_mI[n`jp`{ob_]miykWdelikri^XgXr[Vkgs[bckZ^bqejdmzXojzVhVnntqZzbredg^R[UkweaZ_e^cfm\jugvkbpcojXXoNjj^_jamfSc[pg`cpci_Z`rl^bbigeelcci|U]ibg]`sk[rmTxklmfUR^gYfeY[l`nhwdgw^e~miQeY[flalqnrjrT`P{kYvWrbWlqeMxeZ\m[bw`]rv^a_fel`zmYehlgrkogv[cqmbaheaj`obo_xi_u[idzumu]h[]li`hfVme]q[kan]sh\`bdhwnieme`\a``qUd~lheeg^odcuVdphhcdhodh_qc`bngpgif`Yj`pipk~`fePikgl`\gxdajz[hW`obgif]j`PlUl\^g[le`p{~yQ`bdheh`ee^\sjXp{b\`e^crp\{mTe[eegpyhur^Pq_dj^vylRn`]l`sW[nwdmX_foafyefgl]Uv`[blWs\c_^T~WY\qm}X[l_cgu\]DM|mwVVrdldYUhNnetsr}qlcYYfcY^bn`paibZpnx_kfg]iwrhriIeY]kxfsea[wraga[Wkfe[^er_hyfXglpWrbwfigajSSmgdlemojhv}VremaboXe]]ej`xgizpqalg[k{VhsWtfbumvau^WVqJvkMdlkjmpltekiscbXjr\Zd^^iedns]Z]ogim[s`mR^Vcj]WTfzpwpkjT_kt\bco`n\cvohfIgPip^YnahXkpt}UhUcduOmjb|cZaaqy`mSYigWXYKkp[p_bl\af^\ZjQ_aZxXRVYrlh`a\mGhXocfhVQtZk{Vp\_o_qlbT_q[nY[zg[Qia]craN\Yfr^_k[Xf]mVdUKQkkaps]aWk}SUgkaS^Yar[ch^qe`S\]UgkQec\QkbXnn]`q^YhfWZVk_[O`UZi]fV^rVakfrwxcgS_gJeqMp]TV]y_Z{]U`qhYU{SR[iqaXt}aVotkYrhankZVfZzdz_ncOVcUnfsZd[aZw`hJye[Qm^dtc}WTgkXMt^ZT]ac`rX[x^QT_kPsabrmh_mZoP_\XsVk`aYjXnds__jmha`Yaqsidesfk^mI_ccRPhk\cfjM]PgriVcd`pjfVouaJrtYZdnww_dS{[hj\sxpzbemWmbOWacabuqfR_g`koxt_rfbSm`~iWSYU]dkdWajvaVisiYq`RYjfbWoVhaccg^\WWOscom^WVhggdVhh\af\auj`adjfv_fcbleZ_WiclYS^[dn`ZpiaSn[`bNmbxZlV^WYXO|^bcfZ_ygbhUVRt|kLaqlkMcTuqM^_n]P\p`fcfV`cTsJm|[imbjkbjUlvgZb^X]ZZlyZrn\WdS^]RaQWkP^gchqcab\sepddo[_|eqkhhby_bRhhUcK_UdcdWjRUmn[vp]lYgky[bSrfMh`la]RbmQ5j[nlYj\h`h^YglySqrX_coru~l]TyeaSU{pXSdeXsbVlte^fimecoV]a]Za]daaVfw[[R`ensl`o[^Qjaiif\mbXG\\aWokMr^if]cZYWbygc[nqwt\_T]_ihKgsxnTbmca[WbXf_tbv`\filcrbsmlZcZ\`d[ajfTkaW\TpabS\sdWpborfld]vZ_dRffTaTgaJN\jkdcVgNtuhiLmd\[hmiUgxi\h[^acTVY`dwm`W[VPg{U\txZUwW\]o`gbTn_Zkdchbg`ehxiSodja[kb`hjcXon[ocldSbf{ff[\}Zptdhmaf^c`_gfoi[i^iv{ekdsk[mhfoaiy\lsmtec^m^oq_]kombfjluja_]h_cbfamlkdlXapgmfym`\eYaonqj`ad^qshiYubsikcj_fgjhgbq^cemtd]rlrrncc[adnnmsc^\eef^Yac_ahXmohfx]w\ZRbr^Yferic\gb`sheaj_ec^vcnwd[aXfjdba]_V]\|mqfpzgdf[fj\XapmjnzYl\mnpklb{fofd^mhyc\azfl[`i`abct}louiZ_]mhbsoi}hRpRfW|]tobimk_jngkejkcqtfjwviioddcYcZceakUhYq_pehbggRat^Taxzjr_\bU\_YixvTghXmhcrcpblft`orX]arghqr^v{hNekiZadbfr_hRcd\luiqwsnipYeibZgtgtbeZ^X{lrepTcYRlkeY]ha`vRb\`|`bjre]cjhbif_`doYwkurdjhjjVhXmibaic^vo\nTi`X^n`|w[fbgycYf`^gbf\^akpeY`^i\isfdensYYcd_jgawjVdHl]vlZjiq]jlyVx`f[bh`gfmRizd{cnouxcjo`^lnxja^xYp]el`klEiuc|pfeeaV[[llqYyUZcpcRWRbOm]_UxnydeheiL~Y]|jjNkaWqgbsy[ggfgQad^fnYqbdRKnojiPhoY[Xk_`r|]Xcda`qvumlyhgUyfn\o|uZLqmskVqKwidc`WaYh`o`lzLRe[Rf]]XRlUot\cfV]U_^flXmqd]l]ug^iiCltkVIa]klg[g]ewgZmbcPhxhkWj\_NhXgPVpTo\RgzohrVblip`em[p\mXn_J`kRjWa\\dS\YscSMmiccQ}jeilVQ]ito\HClQbQcbwwzEjffZ`kaN^EYR^qdYa]^gbQjb`^NaVhaPdZmiYs_`TY`[S`mfn[_q]jy[iYTdgM`ZVPajftoyfmXnb]]k\[eiRYgt\iVWa\Wbvag_r[d|QhzojQfhodozlffmW{amwbsqbVleuPrlbhvVTSuop[Pmh]\i_i_bqng`_Y_dY[^Wkcuinj\heva]I{Skbe]tlUtjdb_wyVjhhv]nrXzb[Wbpfirhb\cjjNebjYfnvkcjefXvV{zn]fc`t]fbln`VkjrZbbcuxipfpbaWdlj\fpdgpjc_|mmlcg`h`~dkvpYeovjZ`fVe^c]sdl`_p]igdE_bYrTfs\qrdKSnli^dfb^[aYdiawgpoW_{vjwk`g~hTeb~ktpim_ZdjiWXdtxbYqhja_q^[k[[adXhnvZeo`wr\mdHtzdbgc`idh]agZoh\lp_X~kfb`c^umYsWotSpjl\mZah]`Q|xmYx[`pjdahczgge^pZkm|bXevsHair_WanfYgnybiftzlgap{Uapp_kqcdaV]caswbKkdNrroYh]`t^e_cshkqdlbq]TJaesnqckuYgmrbbXgTg[blS^iNXT}jdon^XNf|cZ^XjrzNmnQ^s\_edfEvsqedm\d]pTwbgw{dj`ppd_sjo\wbXf]jfmSdnjWj_ln]aQW|o]Loo^q}mnapVc}iWpfgUobe`etb_MnyYmfoilnh[`R^T]^zcTd[uimrbYes\hxgek{s\Uh{fknXfmrnpT_^cwflcYugtfVlcgbfoap^loqdl^c|c_mmdgnsfrg`zYlh]\qnZrkkuXeifdnlofrjlayhcnYpow`ldc_ig[d_ikiYlx[pikWpafdmabbUs^ZfHMnbUcm{g}g^tilXfVae`hedrbmh]oh`eipksc``c_Rpwiv]dc[gwfxqfhjtgbX^lsPmjgnc]jfR_vtkgrbagjw[deznjbqohzf^i]Rfj^Rikshdohbbjhshjc~eUo_dfhkmlfbbdZ_n|omjqdc`ywYn\a`SfgT\qdpS_^pSSTpi`\Oa{R;ktoyRW_`QGzZiMgbk`aoa]rgg[gjaYrXoW^_`]\ibme[]Xs[_Vcpfl`YqUdQgqi[yj]H\Zimwe\]`>uKee[USha_scbt]jylddhds\{chh[g_RnilVgae^\aZa~Kudc^km^zalfij^WaekfVVfn`YU][l[Va-atdt\YoT~[[imfd`z`\bwevY;{shnuinWmO{thfTfV\NebdhUeXfa\ndVnM[xQTjwjh^idXlbRvSUTHsadfXd_nkvFVkkrZRk[m\m|S`gzwu?`b]UqhcWb_t^eVMaf]p_[ijomogjUgjjcz[VVelnwhgiM]^ljh^UNYhvYwa_nfnScm~WdTqmnbY\hxmnzi`\ckwyt]}^y_eZ^mqktgn^lZc~fYan_ifd`^bncdouWb_gg`j_aeqioid]w\mh\ninmVanPbff]^nXod_nhjfa^dpbmpggebgb\cqsx`j`cX_Ysokm{tgrggg[egbwpfrThyZ_|YdUdmcTl\p]^mbsemno^`fdfZa{a[cl}gvYa]nkfll\o]e^^hpeujWf}Zlkcendjquk_d_`dbXmVoks^\_^ihvb^loXofqx^fp^d\]kr^vcaTy\yZ[nmcg^cdda^iy]Zj|ic\hlxtbfW]cqk}hf\brUdqyX^gefkgzdk`jgh^h[bfd\bt`ii[awwW[ljtZnm`]lxRiik\rn\e[tblfYmhfaf]fjiqgf}_d|yawvd\nqQq[^fn{n\n^nrvfpnn]epRrodOhp[t^dc`l]fm]Nabahbabjjc~amOSo`\tzLojr_lZjohtvxvi]neblbX{asmm~qnmem^faPnigYblkdbZ]ajvpbg[dcegdwvmSvjnnd{dcec[hsqehvYoqqhb]sd`c]]tnWtgwmjqYvraqkb|Wn_jiWvcc@QYnyk\mira`YeqMW_`W]^mm\ne^mc`hktpa_uomr]d`amUY]Urd\dl]fV`ipYfOu`t^q^a^deaerccdbgmkUjZ[YekajleemrWeVmcggorj`g`wj_]^{gtqfj\VuitvitUelw[dXmpnajdovPpVVeISlyhclhrMvZj`\raa[Ghdi]{[e\a`lK^hVkqatanW[rbhS]ZljYkmacidfeQyXfengikcbfa]pX]a[pjeXsYabhSmmfXhsgc\ng_ht`aSwafX`tnsean]gefffmcxjTRjsditShgpxX]bZPaU[cX_\kdqolefUUdYnwSfrW_ZZh_c`qqXd`pcWaxbd]h^lfpcc{^dt`S_qVbkXcac|Qd_jui\nicb\}eJ]hYZRkr[Wbf[cisLiO^bz[\rm\XuaiQuaou]_`q^chT]]b`[zZ`qfqgYfkb]ejjhg`shZ`hqSe]]}QXH_\rZdpbiy]znha]e_ratjTeiVjlfld\fihoujdbhs}_f_TecPgP{erYhkacjX`Vf_t\ub`Nl^uSUkVyi`i[]fSmt_^\IgoZa\irTc_h]x_bbmlgkpsmme{gRcZzmoixg__g`ehZgdgf^rgnRs\iie]cm^qculZsXX]nSTtNyoqic\fKmzU_^hlf\RjhtUP^cht\mzPeTmWeSae`Saqeg_S`gkrzTX_Vjk;co|q\GcRodw`aYqlXvY]p[[td|f[YSmb`rd\[OXlfgocggorgaj_[iZZWgowyl_dgWV^jcbY]hnbhofVcYXUwvm[bb[lm]a\mWllaea_ESxrfamcZTLcmVgYaUedfV[ZfmSe\OU]^eaegui^{caW]fil^T`}\ohax{bSmZqcWT{YwSkfOueSTYbqhPhkypaz_WN`ldiplb]\Z`qp^nJog\qpqayqmY[hrh]dm~tl}c[z|t[esWiohhyiSkSbYclofcb}ldyil]hxicYZagX]koglktbomYZ[TQkio[`edrd^ca^QnfS`fgghcenZYakr`bre\_Msf\s^enm^fnYffaf[nkdlnnjf]^itYcuT\Qdbw\laZlYcfqgd_sTeeXwqt_whmjW_j]W_R^wi^j]vkf_[gVqwstf\Kh]mlVqr|jZjnmPfilzaepci{`kmsOnbm^cqotlqsSvX\k^a[_xGj_]Uqqfmoimp`kijw|\Tg^UkhaWcuXe_glXahakydjoxweks\u]Yfb_XXbhjcf]fihejjspyXrcafdXm|gHcZZeu[fuf[`qkguu[jhdV]aidqbWdX``hlNUPvc]O^ShhhuhnroW`^Vporillh_Xz{`npve\midmpfn^lyZiUh^UqpVdsh[ei\shpaVY\mkgaagl^kgtdiPnd]iwr\XXi\{uk_a`ecdgfhyghjncl\dlaT\^n[ud[ks^_keqxQT[]kftc[bfwtcWcj[_wtbz\\lg[nkmf`ds}ozjYfVkUdV]uuiWoj[Xhs^fd\s\T^`]bV~XkRXuesN][lkU^f][EnTbf\bros`SM\Voql]f]i`\YykxnmiOgSrV~ne^Yb^rfjvnrY_gX_^r~ikok\lV]^rh^Xzt`Y_wfHxjlygUx`f_s^hd^pqjyf^ambcrjhiXia]^d\bjTnmjeiqfVfSbg^gblihUwpXg\Xfdmgb]pc^Qoo^jh]skS\dmlcpojphbZjWaghZUodvaaciaQsdYhSj_`dcdXTswumaxd]pcc}dfhJsLtYfo]jcq_vUb_df`xu{olnsz[\iet]hhezplqrn^\^yopTuq`]jueihrYxmy]bpogjfKXaj`sauf^Pk]hcgomboc~lleoqtq\d]WzakbiVjbt`hbbcsfwtbmaYpzkcO[ufYKsO]eanc|Fm]cglnWiSaThhsjKx_`yzXbm}{;bhgqoqZx_`l^ec~ZnSdobsUvbaKzq}]WmXJp[UC`vX@ntcbc_psfngg_rdj]urOk^W^|b{a[Z[YLlXjwb^o[bnqI_ekh]YeNjgYmgQ_jUz^dm_`trPYh\rVPVzVgdx`yw~nW~hVjnOo^__vpqW^\zXVvr~tlXUun^xZS[s\oI`jb[^^dp|ci`Z}dwfYd`vkwkQZrTf|mgZa`nradh]S[jaxs\Yisbegc[llkX]hfbd\n^hsj[g]GheSr|]\t\Wl_sRfl}zrTogdnWfnkf`UlwlmZ]qaYT[ziseqXI_~ofeVphZheaorWtPqer^pgxSrXrlkobbilNdeiiWmKSkoee`c~RPsnoajakjlc]wde{Yopf{kumWUKaVg`{XmrkgtconYf_myu`fibZgyZ^{iq_qPuo]wgVa{rl`PuRvffhUyNJ`azabpfvYen]agtt|vtoxb]agudzs`kuXymbniM]hkkrxZmckpsk\s~zgouX_d[zcuzp]bfp{recwmdjskcsa\cic`hsmp^mvZgv_s]dX[vhjvvze`^|eft`dVwlxjgf`qmYjVcz_pTiivhWvdbmfb]osafvqa[rg[ahx_^nV|zf[~bOaVcqieto[Zqcbwlyjo_ugdia|jiqObcli`cjj}gK^`lit`bcqpp\dooiVpdjbm|b`{gb]o{`h_~wXYkcPqpLZhbe`\^]Vwigemo~rkg]Tcoigbq`]l^cndenwmok\xmnfgbz`emXeieebcek]\Yt]gtqmgh`yav\fujkcrijuVlljVv[mwd]Vrl\sXaY[h]m^TfrcUX|_\d`ifs`jmr]ineacYdd[{a[q^LWkmhc]`hp^hoNhhljii]YqjcesiVXsaVjf|wn`hghbbUk|eorikXi^mp\]vbneQbf?sbpZcdWoWfo^`kbaeeroidfXg~jbbq\d^dsybucccecah\gclfcuRq~ychl`cf_zhmmVjziopb`fvvcjq^`is]yUlferjSknjb}a^hhmknz[cYbbkWmkfhuP\qb`fa|d[nymgh}Z^XVk_hvxh`gmljilgWwY_igkY`btX}`s|_^sZMmh{fnuzy~gi`uggjSdg^e{aSqqpklgnaJLYZo|henpgpyrhik^Zsdhkn[j^]hejk`oVqYda}bg]Mf{l]rmbRbbXogb^al~fgqmeeopb^uc`tydzrkez~jOeiu_glue\dbYimj`efZs`idggq\a`kpbk``ow`cpwmefkh~paaZg{ke\ggilkiej_bb{oawso^hljmf\[dgnhoqi]qft_ynjetgkkXijmmlfsgmje^cbWeUomdxcmzgmW]qbn\`[ciha_eul`peX^fhk`oo~mn`ycid_zsbmmWkbchnby`lft]\jfki]_kXk\t\pdfiYjrppjUdekap`gX]dale_|]vrmdlhcmfjg`gchj`jsofhh\^mbjsusyjg^_danp`jckjqjapejmugippek^jc_[c{cbsjpmag^jQh_fhhbhhhUiaf\s[uX|UoT`]pfgb[i_khmdmt`gvlccbpaYhexfobmP]jjjj_mqkhgqnepeQmqbhilpalnala^xjhcXhvs^cplyijg]Ulgck_onebaiflkjlwkhUUdmaenuZQZom]mohhmkgpol`sbjxrVglgZ`diilcnYil`boitsngfrZ``aZcspbiWpYP|Ypye]rm\lebdipa]gYhTrqyo\fftLtlefQniaUWpTheeuwevUVVffvujh_^Mleikdu]uYRahlgXf_qrrdpXkgapWc{d[earb]`]_Zm[moX]XobooQlKzUXkqLfvf{ph\Zxds}i[Ll`NmQ^]d@hOdeYbqexhc_iXhnO]`gmqVnu`kpaaovhe^hfbmejdxmzngjUlVeXqkeU]fa[ftTo\mb`^uaeSluSjn[i^_oc]a]aggigVmarlXjeWaf=ck]aj\qbbnXegcXilikvhbhrew>YshjojbjR{|[jU^[[W]hY_rgmQwgjafaPa^`nk]]nYZ~|vb[miUnjdgkpblhk_`h`b]M[dqhmdccj``ago[g]gc\vn[gtX\^ZBOuXeih[dv_}{h_NkXd]ddc`ldP[ndd_gUZjeb`ok_i]lmkhK[iXwkaqchdgm^bYhY`]ce]^dkgnWchca]Zq`kq{Z\fpllffns_Wz]wioXd`qc_XynWwe[aigeai`nq~_mo`g`^hajhXcuhWlk]ZllUYenlqsjVn_tppflfff^SrpRikv`\wP^`U^lkcah{l`hNaYf_razdlWycoonlhl`jqkc^_a\^maZZ_pblc^h]][glT^pXgcaQYdc^K]ondd^gc\]ofblld[{fi_c`pwcu[Z{WZv\e`x{ls\ygjzfv[nfcX^Ycl^rkag`oW_gxcrb\]gcmbti[mecsbkhRebZjlbfm`egbcfo[ewimopQk]c`Xdb__n~e_m_daW_Tg`xhw\jgnf[|Xha_R_ffliaRvfzrnqiRejYdghal[rmvtecaeX^xmxyb[OwcefhR`kexVx^n\qVc\_ou{`xzh~dy{cph```]~{QnbickTjWrUWaoLrk^emr^r[]\f^\kd\_j\]aQl_s_gnopi_ai`UaZs\Zq|ef^`Kld]qeph`[gbaxrxlfeo_n|o]qWWfc\kamhMiu[o_eXplspbd_ToidreYqphaof`lf]VvxV\lho`vth]udah~f`Kohiih[lgswepOm{^obddm~ef\kghZmrl^oSaj_fpthpkUXbv^bwySihemo`q_mdebroje|cXbxi`gsun_lgcihVe\Papf_bTheeZrn\R`ejZsl^ngikeUU\]VmmakLh]nucj[cg^p[ekh_n^Zods^ro`ldQPiV^TU`aZur]o]^ThVebk^`]b\[sieWYfjgTNpqooYfX^keYe_ZofolrmZvpf}Zsh^tshZubUhar^ctvpo{c]dnno]W`p_a]|bs\^vbkd}\komhi^Meebkl]djxYgix`igsZlkg^erVhrakVjQ`dR`hi]XUqvfg[a\^\gsh`otxytda`iUntf|UgLdwcmt`XadWk^\kjWdafcdhVS]M]u_Zhi[awcgkhTgfcokaqZl\gbcrdZ]xinjjdcQ`[u]T`k\m`udVqM\]c`]DZ]hcfc_pYm\dZ_bRTfpfegej^begdcUwjV]]ecczyb~^[k_\hgagoap^ce]aoon_dXZ|_k_hdxc\]WdpeUXSdrUk`QYs[hWfdhrqf[gd\caav^^m\am`t`leyp\_]lSpUjborsWeijcphf[darey`vddeh\yazkfh\]jq\defgpVbjo^[fdXh\`mkQ\cglfaToU[pXehel\qiOZ}X_jhc]dij\i^ffr^chxii|aq]fntnbXVU}rhrrvisrk\dyaenfzWdYalXV`blVnmfmoTr^gcTflXggbwhglhp\]ewhh_`^ZwrhT^X_grfch][orXuWgjYxh}ZjWgndmbgf`]hRhpkqbJmzcXlws\_idhkeovtf`d^vw}twak|hgnq_kntac~a`snik^Tm_zZii~hwxdmo`^hakzg^gaynyooqjtchkhsif_]w`xjn_izKqXUnjac\xoxXWyocq]X_e\hkmtj]qmhpjnUrsrhcl{ckkPsYZ[^m`{fggjxYldZut]Ybt^NObi[dqr`ctjn[oajdgwookinV\\hehmYhzx^^|qhld]\a[g{nV`Nrldici`cruXW_tq[egjtleroyXU]uftbPbtgi[rcerb]bx_lfgVpl[SfZsz{]OXeTvn}gwR[isWoVf\\YcwaaYhQ_:`_\hni[p[`oQeqtwlhdZffom^hT^fb~^mtk^aX`fa`z]lerde]cx^WhjiXuoTfphTcTYwkfVmZq]mQ`[`ez_g[UojhwVrhfesapQrqi]`[W\jZV`r`fnSV\`aY[i_^uo`g[YShRqyKYdWmms]^Y^pddrrnhinc]r\\jj^hdiefec[ZgcYtUbWmnhtgibivm[m}YaXXpbY`echbi[qh\^ndslShc]hysZ]Y]^a^me`l`q`dd]csTW[Ypaxid]{sv{pbkf^odVgmxsku[^em][nqV\]sukz_Xfoiio`ygWe^lgq{^ohbqlUi_h^XhlZUVqtrysi`atxV]lqdw`jSn~tfxhycqf`WiOshqcVX]gbwp~lPpd`m[]_bjijn^fimag[f^ytgfunjJcjXfWmmlfTd[nZld~hsnUcf\bdXi[\e^guoamTsrb^\o_\Uhtdjijw_sYk^ky\awfgcfXioxogZkadMayWlNYh\eSld}d{dfWTGzd\XT[l\`YWHSYifjzX`asb`]Zk[cr^\lpQwldig\glYaoSgi`lc_X[Xb~OiclbYXc^f`{Z_emVXhT]Pee_[\avTnriVdqa`snFifcAE^WSpXe_hefUgkJekP@^iyPgq{caxlZx\d{[VZUTKWLz[ij[pY]B\_aNceIkham~gqrww[TrRRFL_S{xb`WBbXsY^tncPsn]WqLeUkadhU[``g[Rogs\Pnimd^pmTKS_]jojfuYbxt[it`bh_ah]jVggCoe^YV\n`]l^aq\hZpbsbo`k^SjvaNdzlfifZVUggdfnf_iubeYadfvq_ntiWZ\p`]rzgXnc~^eWddafucqWtkbgXPzkdhWbpghkJd\ZtZY_QtfNrvSib_id]pLe\_blb`jsc]ccwd]rayahbl[mnn\ilnjjiTS^jxn~i.Uli[^tKW\qQj\pu[nfWawwfsmci]__dighly_pepecg_XUcwTlZoboaler[b\[\fOfq[Zuumj^oi`]dl]_Wd`od_Via`eTZ\TVrZcjaiI`|o|bvdX_iRcct^^XTgDZti_``wsY\kmikVV``Xdmqf[o_gcZen^qgn`a^x[{`gmpekjvjh]\Yg[fzaW`bV^\dlp`de`gg]jdXbkigzvnUreYR`eg^]kqeWpchd]gRkt[j^Rfyq`PzbZfoXoqY[i_Ucry\\qnSof{SQIaarm\osvS}atZdx__cr\fi]XcbqlZom|U_Z^uN[fl__Jog{YXZtax]kefinolk]Oxechfd]jm\imj[\xean``cfh`nvZcoXdenaSxgZde^cmf^hhx^_nefTeWd]uXjOSuw`odldigip\cUkkd\\daqp|\vag]\Y^dc[l@^DUMsqqbrcV_TGHfuXeupbXdjSz^i_rgu>fjYpX]tRV\dZ^fSK~g]Tefx[mVspbnybrZVJRlOwO]rWbo\Y]S]]VskskTekudwVqEddIYZfZj^UQunfRzVSIsXchN]v{bs_rV`ZIelcp`aRfXn^fcQTpNXm`KVfbYjMi^UXbZgZd[_ciqOaOWVhacTe[fUeqdi]gejAX[a^M_hPnqUWVWfThQo]dpRoFRdhc_UKYo`^jkV9k_loR`imhkwTX]n[e[|g`fil]O`Mh\P[q_vWjXUVaMplbhhXhpwnoytWvgZjlbpgX_crh_mkkYVbercgqlqos[kwMmaj]ht^d_j{tTl_`_|pu[_bczcpYfqeir`ie_kva_qw{rnlozuo{XxlilXhoefbUqkennWhch_ka{_\l\dqo_fr^Vldh[YngbcankiWOaV_dogw[}d^jlPxj^Slpbh^gwhn`je^abpn[dwbZ`cqaUWejcZndckcb]dRr^gxgZbdzbo{lZmrmPbzQqgoY_iw~pPVhqmkcpe{hTyq]jmel`Xmp_tnndgupaguWavUk]]ayt^`sfd|lloas^plx^f^hPickmgfjmtiu^neOWt_yxOjcr_VixtVa[ed{ba_aWtaVb\Xga{`Th]ktOgaacesb\PjTitWs^\\Y]^cSa`TOWsW~UZhafeconk`jZgemTmk^gbfz\mbaZa}]abYw}[eggTe]gbnW]_ke[ibH\crik^\VoaRQU_rtXWcZ_pdghXag_djnNo\gtVhxi\thlk^]zcj^hn_hnph\plk\[ywin}X_f]dfnef[n}fjejXhack]vddmtopXaakN]ei`^uZ`cZakpgv\[aaohbc\Uvzennlcmvidm__kap\dj\jgui\gVfjjoTfac`jb^mfgelOkoTXqzVaeQj_hQbW_pRiSaemqQWjZhJNr[\RXRhybm_cWiueYU\bWVcVXcf^\\cx\wXV`Y~ekz[PUYK]IgeOfbronLyg^ZcWVqXrhqgYkV`U_b_lkqvllctqTN[XgRjhfTRxkX_lVTgjb_ecfvkdV_[ml_jWXQm[bZZhlNl=hcwrWm_emMUc[e\Ydbfjy^cq`_n[dvnbil[k[eatdc\s\]`fjglcQ^eSZM_hXhOn[]TS^bvfdNw\Teld_k}\xWqccanldpdZdYj]TnrckpfXUX\\SqSl[Vzb`XUPnVZ]{aiighEcjoiu\]ggu^j_Q_`iHU[\Xpdqjc^^laZUgYbXibc}]gZterpofnTpiZ^c_mkcScfZkejjeh^`xec^L^mVp]fgacdrp^fh`rnU^]jwlTlyXff]lk_^y`gy`wXklbi]df`bf`s]^aqpbgW\mp]jUqT\_Z^kizdh`XZcXakLvmj~VY]naqgbegkZxnn_ykjl`{lhij`eTccbdqhuqg]\fbn{~ZpZcaSyaml}`b]nsWfujhj]lnhi^tabtec`cssZeb\S[^]VlclVrlVXbj]aq|`uW]kh~fY{caiesx`aqeg[^n\tXbf\foajoegvnXdfmoryosg\aY|`ect[QGeVJy^bavc~Tff`^vehfN[liyk|dsen[W]qepv^qVTqSns_ZbhcT[oS_\J\WuuWKTJh`Lb\__bm{t__`[ekcYp[XjTicvvO^KoUSrieYRe_kd]ihfs[qqfz{Jh\cabeg_Uxn^ceqZfpYfw|gaQmaaKnlRk]fviVah`{rdgtagwqseR{^JbdlyWoa|T`cz]rn[LlhkWimomb\oYbcWSriq\emjfMUHeqc[sWku^_kG`d]gVd_jNdepdpkribuUdifaSdxnlufuWocV_^ajZSh_fvgqNQW]PZa\aui\br`kwlaVZbdkehjltL^VhlhnuhoQmh\m^sm}jsgntOhdga\[iSddv]_eLrilxzmId|uU^_wvxSUjfqcnPb_mvbamVbrb_u[YU]qWr]_V{h\dZlin^c\nqbQhqmhsuY]hRecgUk~ea\\b]V`l^_tixiObpNbdm`qI_pug`hhg_Z|YovrWk]tm`Vi\XXzfwcmt[[ah_ukebj`codU\jZO[fQldc_^vl[ho^g^xxloklo\pYgZ\d{w{qpZrETdxihfoan]SfpYrm^lq\[]hrskvRq`w[l^Z_[K`hqTexnelaT}sf[jtn^bxY{qoXfeSwZuap_XZwbiLWmYcQ^uMsVko]_jXizXncedei_rcobZj[jdecaceetWgm]jtjlc\]btZpXf[i_wdaV\}VlUu]`^\yyq~lfcrY[VtsexZrwhmgV[Tgo_bo^`XzfLRcxfP[lPe\|bXohcTYe_Xg`l[]ld]ydsKjmdRmiRlqoch`fdfs_nwMRlkhisWbsY`htodsLg\sqdghNLhpqgfsa`jjzft[}vPkkpqjqSjsVNcPbkrdijj[togdcuZZvt_Zhf\WhOkm{tghjdt\_hDqs~uZXi]af~jpfYVifi{f{a_rsgfveclVntod]{egadYvv\j\ypihqg`]_^\HoUgh\krSa_b`nix[ut~o[dm`YwhYhLdWghS^zNdrUhYj\iUenY]dghx_nbbWdX_mS]fcf`kYgdT_Xdhtha}f`QmYmjca_`mbZY_djgWWwM`]Wo`^pfOauneS`enhrbRwo`_uhpVaVufb_kaZv[^plO\^d]Vbjhdhfh\_rbcnhanWhUh_qdf_b]`nmdjjijaf`oksRj^^\pnzulfnahe_}[e]`wj`ehnk^hfachqjA}^kWZ}gfkYoc}[smf^mw\ne^XpbrfXdgkvGY[f[pdjjcsm_li`micWm_VierfsYcXn]d}nsc_}aeksre_fvqcRqmhU]Nqtl[Z\Uk^\hdnR_\a`Zh_InfawZlpWihj\kikllaQ_k_gio[gnms[ih[hmckhlgr`_[]go\Zo`mk`PYgXbf^d`cuUnf^knj_{c[o]feOXafySaew\V]Kd``]mp[gjS]Ys]p[`b_^ivPs`afn`feunou^f`ki^gic_jf_meki^USqZhnec_pshSjgZXkfYcZfafklwbdadq[rmklccifkxepco\SjYcl``chjvhXekSigQ}rj\ukbcaZZj]ZafZX[e]U`SspSWtj`rfYhZ[xsbfydc_Zbe[\WeN[cnyYwaXsipp\`Sdu`mbiuzeTd[_aivmdebh^IWbb~cpbZ`[kmkXwbao~]b`ihfm^l[p^OX[[gVjbznqaZarZ`_]XeV^jlXbVgkYzgZnb^^r\d]\\V]Mrx[ge[rwS^fymel[b^bU^akfqg|mjii]a^ebZi\q]jStoebQ^belhUgsn}`hy\ds\]Rbmi_kmqihhW_aXVlVtVji{yxo]XrSa]ZY^\X~hesxcoqXn_[]_gdfitMUZgclwRgv]}N}XdVu]ccay[mJSzT\chRRrio^anoZFghUvjenj{[krZegXbjnvrta[eht^WdWpljr]}qYm``gM`SsQb^ai\`j^doZmWhWdvuVqtnchpY\ZOnnWg\]effvmlfdch_aUUbfmeuc[t{ibmi`fk^JkUkYXic`_R[xSddyyZ\mvcodRQ]q^cVei_[wht^zOqcoUhveYyLtgNkluZkwqqq_JW_bvP]RrxnpY_]plxxZfhefei`qbg_WkonSi_[anhGnZ\Y[tq\cmm`ZRgmkUbddxkbe{ONcfkVb^`mVqycQiopH`n_^nqjx\rpoosoafeZmahRbe__ije^EVgfuTgKq_Ym[q]eu\\Iwhy]TbYjSrgnipgiOUdlbdZj^rmgeneVguwSli]Rebqbhogf\k[e^jph_i^d_rh~hRseqfccn[odYkdZgyixTb`}j`chas_nk^iTrbaeO}itb{V}mmncy\nitaXV~aToln[YUnY[Un[cndhbectjhq[V^\vj`hU\Y^lr_e`U]][dTde`gx]djX`^qsgctnjlz\qm[XhV`f[jghXYmi}get]Wpcv[sd[ahbevyiVSS^VhSjbpqzP[wtzc]uXh}f`f\bZ^v\V_vi[[x]ssm^kjXj_vzgmaoWgjnRm^~jlMZmRPbhc_]yfqbg\|\cOnxdaR]|T\uUS_gxmcLR\r_ogma_RaXay~hkbg`zgLQa^vYqhksf{puaWUgs[p\l^ioXgakPoPedeos^c>Z_ZJ[^_tu]itXgqlZdiaBta^YknXofIbTej\jlmg`X`]ZYfY[V\xtkgY`cs|osRmlE~MxGZp]{|j\cbjgf^Xbi{pqfiuy~W[fo\eY`^i_]H_RzcYodo|XfhucpwuegvpRoi^frUrrjoW\YysTn^Oafjf[hskU|ggz0gzcj\vX_R_higbU]v[]YhVenbqK][bqkbpoi`r`|qlVte}}W__b^rkUvYgb]V^]^l^tsYlY]rf`ZahXfc`hck\f[s|Ykpa^{X``del|uw`abJdkl]q\W^z^ebcOg\b]c^aWw[gPks[Itvk`osa_PiRditk_XYaZbNcgn^jQ[iX\[uce{meepfuPcZ~fj_T^\aohXdfjX^`YfT__fZ\~`}_`[ndjl`ngyjiZefg[gjgpUzJfr]rveXhrWYleflhles]X]^}^ayUWitiP[^Q_VJdjTYgsoxn^i^MgqT?fd\X]T[VrGkMckusa]\`|gutnnjpsgpmnynVLkmZlSVnGcqP_NgkkrienWcnyryTmpcnjyupluTUu`mVh`q`xeq]WhQonlPk`dx]`miz{ud^[ucdq`h^[amfdv`i]gtXn{kij}jZppecmPbdq^cbZi~Rd~tL|`qvrfj{ut[hekcihq|rjo}]oUhLq_Yulyostrap_^KhaiLPtSxocfpZaVwnfpsppJPflpIfwX~urZjqNoZo`apdnUvIUTQg|vwq^^lwVddv^Vw]djxnqtvzv{j_si`cTVXodp[j|hx^abUdkXY`p[qrwYasxcUR\]\bNgczocWtbep^eSk^lSwpjwSd~`WlU`Pqp[ckWpbiumteuhjp`wg^sedX_\[cqVfbZ_XcqnRT^Yoqig_Mil}ks\gZaa{zhba^cUSyx^rrrenWana\l]_`nomR[]`sgwuYdoVXdYxpxth^[LycWjgPGivkoXZgefdbOf]Xnedzjjzz`u\TfjN|aktkjciiW|pt^b^`U_ke_sp^bhZlU\xje^R[ui\i`fs[m}aYSmRei_Vmd`X^dc\pfXm^_luYTnqeb]gr\ftrr\Scz^~lP]ezg_n^ixfTWzUhgV`gel_YccmilajncccThzMT]sadml[V[eakT^ro_WiWekWkj^gmKccRh_kxZRVbkhbgNSl^rxYCmqpiS`TihbZub\wYhi{XYbP`W]Z`niThdeQdnldcgkhXc{UTqcZamjXZsSoPWjiUykwmeeekWg[IVqeqWUjkqlgkce`dgcYnMhfg_ofjlKS[VfaijyjgVrekgW\SXctm[xzSoZwUXnash`as]clbeh{zhZ^h\i[[c__bNug__^`}tc\Ugajzi_T\]ehfheof[cyfa^OlGri\alo[QYbOQ`ei[usUx]XHZN]bgkglZlmnc\ciyaTdwnSE_\Raj`uiqeZqol_hlYYk__aumjd^_m~bcvSht_faklWi`cnWc]wf|ZUfefb^on]r[mlYsdofx_l`[yixlndV|caic]vmhdLe`hp^YoZ\X]e_UyjQhPvk~iciylieZf`~^_[opPZ\fmycffbo]^r{nUkb_kas{\ywYfcbQ]Vwoe`~YZ_^XWfe_cadMieuxUz]b_etgsugk|rZWiXac`ghcph^]jUlioftuqdlG_tUo]fQ^}kXiXkabZ`jXkXnf\MHdF}Uglh^xZlu`c=iT\ok|la`|hDj]_[am~Uke]YahqfVVc~mb[]fYedZXkg_X~EdRdhjVOvYYZb{YsPe]g^ybmcscvee\fYwW`sfSlwr\\dju[cjueWYXUv}OX_MtqmhIX`PfgVrl``mz]db{tZbb^QWaWmLX\UhgTaue\kb`ocmyeWQ~f]vgfh^Vulfa}Vhl`i_epm~mTqvWvUpa^Jwr[fZUjnebhVi]UVUcbgkp`ieX`rSZnNboRwWjppa_Gbhscis[fdw`bo^^ifsemmYrjO|xnYRjsZ`}}aklX\zqQ^MermUt^fbirohjwdQuOWbUhacbkZfsU^h|kga]kgYS\qaoO{[efga`vv`tfZRVtXj^etVTqfdLQ[Rd[wqq_{sbhReaapQmDWWQhP]`Tw`ml|\Q^Tqq_vpjS_md]aajxXhqxGZUmepegfMaZbfhfngnU]YpNsrx[\TXb^`iiknqe\o_WVcfa|_[mpQm^badPYbagnhTcagiidTfl^svfm]`\eZwVeMzcwZeZm]CckZhIcdwpjg`eZ[Y^jjZhvq]^VkkjsjZ_pWfgqRZa`he`sndcoYR[PjvilueUcjmm_i_dtdfeXWqqlXOdWVcesjyrziXQOfBfguXkvennO{_PThZkUkSZ^mOtTZ_mUm8pl\twZ}Lp\mX[[_eRfuzoKyYml`fg_b\lq[QiRqjrdnwWtoWyZakhQQQ]gbdg\daeQoibsaMdiwhRTP^ZS`anWM{YaYYbs_~aeqgik[eoVndUukqa^e\bmYTa`xmXfkgXlLRuj\XXsm_VvYkyelki_bVj`XkqkhXbYY`cT\^_dcWgZal\_i\pybshir_NevlXycV[cjTYaxN`N^TfYwni_cWKfQ]|m]aWWx^Yhjt`R_ei]gaZ~ef]nmOg_mNS{\pXYftPdgYlblxrX`a]qOglS[lVWctWacfXVbs_[HGuarzZidfemuxh`hflQUpo`]bbllek`_X\e^xha{V_]aedcwZocacjOW_Pu}\ehVjdo|YsRhj|goincvX\_xyTtafjmkV]bYntjgboqVEkUnc]VPc\idbyY~woAdm\|PmfWffL_`^{eqoes\c`_XUthmUu~kU_njjuWjWWJd\huabW\dbpb}[oY]joZtN_gixbjT[Zb`aYlwlabscg_hZnh[\uft`n\fYZYbf_knuUe[jkq_YYXajbhUeu\|z]rjMefhbwSeHe`e^qaI\gspQwiioYalaaQxxhqy\eaXRVabw`renadhQSvfi]zbKtxksxcekBIr\iVSUUzrpat\sXvKi]Rjzyoh|wzNcenYjl~leZcTjbXQXohWeVY_r|nY][fn^YY_zY}U`hiNcJiWW[^LdjX_IqxeitaxSgCdm`_Q\hSv[taLmdYfWtR]gxdZaUjZrSSYkm[q\y=k]hTTgda__jln_tL}_ocgLoYWSz_^RlKfaoe_M[sXzhSkYXVny`lYrhRULme_lov`^e[aiYXLkjocthnX}fjrT`vYsXZck]TqlfkdqhTqtgmji~ul\NrV}ucqaqS[bnadfpsgYOoaemiluq]qq~bpZedgnz{}\kpcU`mfkbeingY`es^csX`giUf`]adwfzjnj`Lgax[}ez`Jsl}l^acuROteu^Qhni_gv}bUZTWKwVnk[gcU^afcljXTlbqn[^od`mi~jYyqUq}^^Zmh{heQ`VioYst{rTWPa{Zmtwj[UP[vsYp`bdtR\daf\\]oltgjp{bladY]yozircjU`]bSrfjzqmao^{bwVirKcpiZ[qclkjQkiZe\]ps]e}e\Vm[\_`_eZlhqZzz]Srh`oum]HfZo_].S^CjwhxYgvcg[ekMWiamJ`UcP\_^`uYXlWf`WWj_CreJnk_dgYMjgN_rdRk]i_T{Sjc^[`gNxVmfmJialeEiOmRJRclee^WbNp]`ywl^GV_[bPVJ[Enjej]nmTtQucYNe[_V^cjhZ@`ffKiYsVfWVfRPwVbQ_U\fok`fXgVpNnpXh`ia\SX`XbiSckg_uUczm^hcWsH^NVNeqYMXyiaXXeo{]ibjqMgS`a]haff_nj[Z[cP`\s\dnRf\UaTTkuebv[fr^GtrelicsmKNabfoOccgdoPYOnVpfTeScZLgtSvZ[`SxlZUG`[l`ZLJoVp\^wyRgkoP_zWibQ{fZj]kxab]ejtdbchq\gzVj^cgYaOrXjkppjjcZbz^OQ[enYhmfiXfmpjhRgN`bmLiyju]`^V`qsirbaf\tX]`wQahfnqiVjMyxXFfnr_nXtvn~QnY`S^kNzdal^ag][\Y_UlOzqyYgpjpvyinSUXZ_pgo]hWydW^_Z^VwoR<]fjljfhigk]\bjeehrcY[a\lm}YUf_nqX|cygY[iptVSC|nljstk[iTkgpYeupiibhefey_p`dmerZa{\Yu\Yb^e_qWhwjea|hUwyMzn[xqckxhe`RjW U_\aph`Ulpbmk]WcaQp_efbNgDNDgco\ZblfWp[VXjP[iUmdf\s^etwPklVbZgRgxj_]ps\bJl[[bOYpnR`YWLN`onTWbbVbXjbmvdvq[hWpismSgrdgZY_lpWGWZ{K{fhosQng\fhX|SmgPI\ac`aXbj<[S_eUcuYJixqoudQby`fPgy\U[^_gc[ZredowW`pjsQqT_f_Pbs]xU`qce`bbYMEin^jRqoklkaUSQdgQSag_YZkHa_a`fdJ_WESYmimeWBbkI\ZGoz\bmGanaenmi\ffjcYV_tg\ihoLj~jgk[qmcVXdRykjgolxlUac_Sv{`A\jkdbxnpfi]qN`f]nbSsj\WWwoaYj`kaf^lj[gib\qbbwp`qwldqnG[ea_S\bmc\k[{tcR^`pqhkJ_V\rplWS}sp]adZcbhUs`libchfqgbZS^tkaYatihuieY[ZjgXur\mlZSha[}L^o|mUds_tZgkZTVfcql]bx_cMggrqVtx\]T`Zjg`dhdbeSVjlXjN``lXgd`\qlgeW[ThsqlVgVoiqqkzjsqdk_\dg`^^t^[VV^nbwjihkk\ao_egVpkU[jXhveYjQjIgf`cW^NTnRgii`h`^~R_S{]hcsf_cf]Y\oSlfVXdc\oqhV~l}`_mcheSfUkWn\b]`[|ZYkXN]|nRdlwedkqZb^ZnUiYqT[QpcUrxoSe]fZ_keoO^rtiS^hewqi^`Si|mb_l^jzfZqaPdGVm``XyVYl]\tmXb~VK[em>bg]Y\noZ[XYUdVlNZSUd}ZWZgc~cs_SoOW[hMX\ciK\bW~[[[fl\[Ki[N[`c`Z?S_g`pYXne^exaSdObbWhppqTlOYH]|cu^t_tisZyaSbdtKbYi]rcmifc_]eXm`e^mwHY`j_^hm]gYUgil_WOWdV|N]w]at[wpfdfg\yje`ZEXvgSjeqiUNjeoSg^OsdqeegoxQ`dbbvn^DQU\sZ~c]unkYV`aTji]hWk]MXaiX|][hj^rmah\gd|ZfywSjTnaiaacpdVlTnqar_nnYbt[QaotIlYX{jwXeeY_sX|]fjkZZ_atcbl{^WenGdjfgt[[_fdJ`Xlg`m|bq]Rqjnk]mVQ]C\e^pskh`cogxYj[z^aVwughqx_axi\bc^Vrl`UmVd|aaYpmfqQfVfMbukbaX\gtkhleZkhl^besjfla\jVa[^g]Umr\c]Y^\i\_[gjwZmndaeck]Yaf`o^bjt`q`pvgalckylwYZb}dlbwTtw_ll]lghWg|[cZ}_|affmnkI\^csfd`^kf\L\ngyqki{he[s_fhgeniUkwg^TjptoYlca\o~lhfgUiY`~|WhdaRvh`k[_pG`{cg`mWop[rfJ^e[hy]e^_Yfdlkw`bbjya|izjcX_cpeyd`r]pTehkm]]_cwj`aunlmv]g`ySbTU\ri]_rofp`Y{tkmnQfjn]`_[T`jdgajhpp[{`[m^Ys]t_Yq_`lVTXpa_iywSX`]_dilzeie`egabkdcVobynjjojK[Y_j`UrQW{~xriQfb_gb|h^pV\`]wkc\nmapTmqcTi}Rs]fpc\]r\c\if_X`bhkUQHoevjaZcfc[xc`hYoabqCsaU`Xui^bbe\WiXaVoWi^Mfgicbq_S`nVo{kUi[[\GjYa_vblamjmyfviUW]`~ZasbgbPi`t^e^ZYgjNq\]Sf^XrZagfRiYPc[fbmah\RWdqiS]eZ]hEagp~pTMkWbsldijmqcVUk|`Q`yv`abV_f_i[xmfQ~piojebrbcl^iUyfrh[qu\qsYdk_jUhY_whknh{bk[UasbTboon\imWfwf{__]q_bk\e^YZ\lqw[[Vlfm`{Zf|hyV`]Y|_jk_]rinmZvaY}\rXNnp{a{ZgYrmwdg]kqaf^daz^[cvxom}hYkqchdbi^nbcmaZm]gVbrZb\c\rgbiZ{cnxXdzoeueaytkl^S_RoUvTkmg_Y`i}f[lmRz`iYhn[rXkVS]peeZ^[bj]xcuta`e|WUnmjXiuko_kX]gmdRi`yl_xVxhtRSuh~]^buYjkg^UeqUdk\lp\SdRkx^\Ua~ivionjhbyK\togifka`gdqf`^\qbjce|[s^U}^Ueuoc`fhhf`^jg^fjebwdm]bcyr^]qdb_n[xYjlqekgemTU]e^X|SaqndZdvLQhcslmhd`zp|ptkYuaclfVeVdeRg]o]supd_qqmgZhk_\mfklSWhiZwng_[ll^z_xf~`^]YbbWikgkan`[jnYeWiofhpdg|pnfl_^[jcxowtem[XbcXmhikfxkaPel]\ew\VaqjfYupmkUm`m[mh`|kjacY^eejdapn_s`z^_ZrWikg|]ba\MPSya]&khjvg\Z}VhPrSlOsl[j\qXchYicdhl]dUkRcX]WdgT]\[eXObn^{SZ]fm]gari[}jTJrbgs}Klaa`ov[{kejqorhaNny_]SZXmVgsi[`iPrPYQ:XSeFGVch[aT\PLrQconoksNaDchZMZuatRp[UUO`eYzpirOdc{IccUQsoLNYgWe\xRn\ImqTvlVnacqkma[k]^jPLaqleFVomiobdy[aajshvdg\fS_fdO`OyxMYM]^F]u~]gmh\~haTHiMjhjsysbghQjkna^e]]we{bTR_qj_wKg[]PPCn_ueWhn`eYvoToaqXel_Z\__r\NU}k]hSfuto]XduOxUksdtnfSfwc`c^\qfi`p`unRq_wrj\\se^Samoh[bb^dZwe_ciSihZ[]^\]gaiqjkvxovksidugy^eUd\_WuRbyo`e_kc]\pdubr\T{fTUn\lkXxasznZbZ_XFfni[bnldq]gbOXWiaoM]ltmY_\i|pqK`ctuil]bwmc^]X\WenwZbgh`U|qZK]kdOvxj`pkrkbXYsVgzeo_[\bf\`taTlcnichsz^gnbuaitj[b^R[tovWm`r\o`gUtcWiiXHTo|puQXvSi[RU_naycgqltmkknX~xh}`gOjNsj[woiiwn\pn{u^[Zd\Lq{jdhmbiNthcxmmdvqZjYrF~Ri[dhqikmcpfZigecxatmSrb[_mc_Y`]e_]fmlk]}glthvuiUsdw`]dVfjk_dYVSdbdSi\um]yqQdbkfXgldLi`wfgyVgalvpulpxVUL^_njkvh[Vcj]\cgsthcdhtsaW\zWy[uqbi\_faZbtY[unZU{jtY_dXQYkvXR[a^ilU\i[ndU}|^{]dWl\f\WX`vTXeaapUOW\`]^Y|bl[Rugo`rkh]WhTYmcwiXnbf^ZvwTLh]p_`xvllc_Nov_afesouZpmtbtsd\av[fkrq}egQQriuukXkzp]lhLo{\TS_`]_ed{uluu]mvsloabqhZ[Jw]vprvkhzsZalrcdPfupvmxqphyMjn_jdZadeoykYZZdibwieJXqsb{bliXf][]X]cZg[bfek\|gxdxW`cUplfvuo{d_~m[[_ed^hpS^u^vswShm^[aRhzu^mCeygohvflckmncVSWZ]iiikPfcz^bfg[qhir_w^}\v^effow`yYz~rUrurYwtvmaijWb~hynMe_|lk_\`gjt^Vqgcdq\fYjZslickkay^bUllgcVfjJkRlGgffcla|lt[`dXUXV_`^_TcanRdb_{Mv]ZqkhvZNpYi]kpc`vpr^bs\s[[~hi`f_NSWk^]d\^[KObYQS\]\_]UUILhlUvpgl~^|g[plcW^chmkL\g`fj[fp_{vjeb``aocTs\||Y^gilW`[|cXxsPiuVkoLqHa]Pf^g\UqjqYpny[wa_r^\kOTZ_aVt|p\cW_p`y^SStdSh|]_ledzcT~iiRovtV]viNqp\TRgRbp\YVRgbgl[|kZewfOR]]p_eeldTfYkfnmSuc_^V\Pafp_[qNlpUzZjZr^tgvzla[lwsmgkDhce^lgyeo[Uxvxg^]tezvd`~lhSrmp`pcRbdf`vkokUqvY~tcg]kldtac{Xuhf_abQq]bn}QUifcee^N~pnnOeZYlgYcXc^cfhVuacnWdcpn[ji\}{rr_XmigDbm_cejlTfh[DjJNfoqgqjgi\QVmesflxbnaY_rFnlT[c`~bq^b`X\urR_gdQzcU_deeO[tidy~jeiUmJeWIq]f`eejn`bpWm\]b{padjafmlhci}zR_vcuYzqnl^okVvmYtia_bm^_qlhm_]X`TbwliW]i`\`IOMbZPl^YXt|U[>_`dPfsr`pU`URrvLq|[mW|t\_bvMijtgz`~\_`p\|g_k{;zoXsiZJRl]rRVHg|U`PH[gdkNxdf~]][fNuH[XFjl_ZxRnVek\bvePacTN~iRm]YLqXRo`V\il\MRdla@sf^PaQUTanh\_p\c]OaxufG]bf^idfSdWRsiJcuGT`cdTlY\eeY{Vbdc\p\etBVNdgx|[h^bk[]_oTjvjbfbZJaOfvYcqulm`YnQOw`rHa^_]faT`PmSgniS~ilk_tUbip_KSfa]\hXgT]x^vp[o[V|lTq`edZj^askdRa`nke]Xh[UqYwwrrWi]ZtKbIQhXOle~fnd_~]qQlS]zai`_bp{yofifWQa`dvkiR^}UygavQmaaztfdalePgv]gnihsjSHgSodm{v\maV^dnYlzf\bYZL^ufVafaducZsjRccIpTYtnnn]VeqkecnhYS_aau\iagfXh]f\tYpYm`kmcdVtlxoeha`XQn`rpFcdWundrrkg\mjcPr[syjgiMcrrhZ\kkb[pvQVFe`]erfnrkdfVpdh~llbSW\tf_lqmfzq_TmnhdlWpfWhKfa_jnjzTfuqprrZj`pcbVlpbsahWmeO[gbalms|sdjqd`rjX~t^Zxme]wY\UYYnzRamFljXVrobzhVXb\ZMt`]U^OaU|ZWi\cf}fqbYaqXkwksVfnrufZeniginhm\igbstni\fkuru]cc_Ofhsh^W}Ry]`xrniNdabamj_ZW^zodcdmtljdhTtMbeZzkkgjRn_rUd^`\UlZeumprtlOgtn{|kg|[gxuskuyffibYrf{seh]cia_Nl\lkf\_YmblujYbln_gr]Qw]Yt\Tbi{{elftVpe`kVqoYWcblln_gggenZikg^s{_aX[QktBngUKWdhegedfafXesvmjt[TYzcmVkw}t`Vyc||jHcLndeZDm_HOYyv@wWfTbjTg`NYssocm[hfofPaT`k|eLRx_jhZheB\[Kqovpd^e]qpzoQwmg\Ybblfhyn`ltk|MKagQqW^kc\oXXiob[ggJcYpaFeedfdahhWnugl`cigJSbdbjh^YU~floY{Vg^VpketvpKtl{iRog\hTfagolnoi[|^pZpZZlVxKejx|p`h_hjYwaq[h_pvox^^mWbS`Sg^_gbYPawthSmrRZqXfhRvmSS|g_ieNi~uo}qn\nhiuvffzn`hhbcar[lnal[N`{njRggKliheYg_Xst{Pbma`S_[Hcbhb[fIxesdZcVoiYm_z{efeQdya_kiJWpcYtdFh]_^`}lhTj_ex[T]lmb`favovrjRrPhBpTTa__qS\q^p^k`YeilhSzYbM^u[wvw`Vrzq~pUhHZcwjlkfbb`Wp\vaabV`pc`abmwiauJxSe]TS_Ye`ThRltRXp]r[fodvlh_figcd_MYb]VrdVv[dYSu_fbgPNPicc]PeuY]Xh`g^S[flhTk[QGZrfVxsAmwemg[Ub``PcsU\avj\Ladwgg]kRVz[j\pll]VqQ]r\zdbnqSbVnoenmd]keqiPkYlrW[^w}rgoy_fb_`[qVi[RTn{hfbffelmU^cy^jbhexwes`U\\bnh_h_aXfh\sX^`ttgfg\qafq`ulicsn|\rXTZeQP_i\WobjcWaacoPaLrtI_`d^QhgiuskdbgkfevUnZc^bkbebqm}k_b`[i~jcTunxi\[UVklfcej`Wjh\LiZjkibrgc_h\shscl^oy\z]wXac^ZX]dN]fd]eVh{fp`nwpk{ZemnoglYimgkTegYnVShbrgmTrX]gsoxsqh~mahsm[`agqpi[yclYJkYiQsmXWb`]fbQYx_l`Havehv_gih\lWsqhTrbvjP|hW]fdTPgQVlivXXkSks\ctm``YQ`a`tV]bXQTxjndjRgtqZpy_Vske~TSJdR^gug\UsVuep^Rt\ibnUacWiamf_[sgnPo`Vneq_s]Y\shbqRtXnKhaasUusbcakfhc^^]oGg|WUcbc^_Rjl^UftuVp`ag`qkyXQ_\ePd\NapkbtdpViVUdmcpUcn^kldQYndhd^VgajMeTUfW[qiWeld^OlR]^wW{Ydal|cZbx\dbbNa_nderTeckqUscY[SbbsZ]_mj\>^ch_^HkkinxeVtaZtsL`i_cUt\srY`jXkcTpe_Zhfxg`_csekfgYX`_cci|`YrV_Ph]xntUkfatSbfgbW~v\NSjkXnqqj[z^a{NcrVqj_njVut]zk`kjfbdNmmgYzdYyvajdjlaa~jY_hi^jTa\haevgcldk{g^XMtnhahhpaucU^qosMZk||hPg\ebwQgbkn`^_dN{`vhp\kak`mKb[uTnWdOamWft[`dmiowoo`qWp`jTsZ\Xvefgaseikiywlk\tzu^o[bQRjwt[~kZjdcf_hs^cZxlxHUSf_jlYib_saW#X~nZbbVot]ro_qk_ve^]\ceUjphiYbShmk]]don^LU^ORlqbehXj]b{U[[[ohzSlZUff`aW_cRVffYUl\c[hO_cYgxx~wb}cX`m{wWhcLU]kfgThuepjkjthn\]u]idra\PQx`cp;]aVld`teRcaQ`ilOfRh\h_baRjZ}r[Uj|S]e_TkbkdkhlbttXXsWiglg`[prc^e]]WaeOgnjhsL]\VgrNbqntTiLwmjSsZpiga^bNkfV\\Ud]u|jYe[n]mn^{Vhhu`ZicbukzsgS\tolbR]^Y_fYl^VdwkT`Vqhljfm`qrjkwopl]TX_|Vna^_jSuhsht{gjjVmusa^viiXij{TcXl_T\fhgfnioRtchdIahWkeT\hq_{t}lp{avljdej[]nSah_cacflbyrc]`OacaqidoW_yJlgnZT_eljsP_Wkesdotvmhvoiofn]ja_pg~Wh_ZVthaqc}Z]f|_scjnnpmf_k]ah`Rg[ei^]Suialoyh`omgj^L\x`kChiQxkhP]j[lfXql\t`pbbvbjqadevf\^OpX]siajymffk~jcddmmncllw^JSpt{qm_blwra_qYiplXarjUbaeUg^Veglauvd[dfcM`]XalXernYk`^nNcL]atedWqekiVbicjlcU`QOlhrej]v]wam^alzddjo_XLi]VmnrYV^au_sh[`LKj`\lbhfU|eeU`{`eUQg_`n]j_qqe[bZle~|WmsgTmkZ{QaN`hWhU_sRkgxhaYvz[]U}jjYUXeXp`airocublfk|z\e[\uecYncVT\tpab[eXT`b_gsR~[iZK^|pZii]nW\]\Ejvkbm^nc^ldUoxgQUkjopgxuxwdhyMaplhtrmf_Ogrvfhdf^~ddpW]\fk{[d\[iWdW]qfbjOS][MTmvrh^R`\kacfdyudT\i\vhXhclTUX[y^gbXj\g]nlrdStS|]KhZk\VzocepjbWZ\r_Wbf^|lqKfOe^dgtVoUA^hjZVd[ebbPZbYqwy]oipsW\cZieX`ar\jbmrogmeaYS`vacpXRLd^WV[nWqOPde~Xa^Nsfm^UlnC\c\u]aQ]cZQk]`x^f~]ihldaQdecq{C`bZoW[Ubi`_[`bme?bb[lh]bqWuadhPcook_Xvhgnq]ai^mhzg[lnhUPlMdx\Nif__f_XVyOYJjM{]Zkgfq[V[XXbUV\JXWpYHg`sji^b[M]]ndRZjlbdWghegL[cnKd^bOjsbhWmXxp]a_bT_jxP|adHmxcjd^lxqbisjocad\fjopWUw^spTxyhtp\\fxbXR\m^epQi\\kprZiZm]nXz\TWprbo^uieqbfJVTyjebgmUZc{ora|o_]QfiI}heec^pmlhwa]ekZnZ[i__e[qvYzabhfrpks`UXfYtZ]nky[]Ue[]VjlWUkwLcLWVh[^]otmEdii|SkA]Tk[mecCbZfbtMVPquXioN_jfpN][[UegmfbW}tc\u\ko^gvVbghZVhmshun_p[QkvUit`b^pageWqc{PljroSN[{[ge{rvhdg_fW]StmjXnW]xmUUdc[t]c_scU^{aZavvUaiUQMjokUdbo_^VeaaqthbX][UlXPXYdvrsYvlVZ[qTl]Ta[^s`eco[a^Ym]mn_mulntyiIt_NSrm{adneXsmufWd{aRj`bfc`filZlmohkPefSlMi`WWxbX{VomRowU]WjQ^laP{]k\Q[vjsmhexoTarjVbYn^u[cfdNa^o]Pjac]WYh^feMpigcUagmaOkSneukchZbeqW_``vcQoiX_diaxhh[gaj\y^mooYoaZUVgxZT`Y_j[dd`YSc\ez\bW\hdRXmlmiWixdmdfYacaQdbViVnhZblTqT[he~djhTLmU[OAiecuj]mZjeUf`fahTl|qlvbcYxsvfdfmpsl{Di^yhcwnnfjZ_]u[cpeXcrEYLr}k{~{veX`gdb|p^`j\fopclavX^WbpXc\gzVeid_ck_R]cgUarXiQtDT]dttuWbaPmVei_gaieO_Rq^fUerlto^qgkcno^^ttZ]w`ik[Yye^amsbVXjnc}bwb_aaak]jnM`w~[ihg^o@`bnkelccioQwa_rhRnJ[iIek]hhfarklji_kWa{Mfxfodouzm_t^hlfhc^V_`jgKlZd`jjhQ[xdwcbX{idr`gcUk]Qg_k`tl^t\hkhXh]x[ZefV`bf\tVmbjnbpXZgj^keSbm_hYhfYR`iUYp^O^dphb]nqm`kb`ZLg|XsXXYwj^NfhWeT[lyyk]hckfbg`[pOVbZmxpUiW[ijigp|ji^aeqWk\\[j`chgiscYnedWNamlbvch[hYvWp|q_kvHRqObnbZnmYpwTT`Xhvc^wnhhferWi]SbUTZn|kjbx{[N`[fxphf_qjnRXc\i_xSjW`hsduR^dpajltj|ua\~km^tn]hkofd`c`Xqrwlb{ffeariSqec{aa\{oWcb_dlwnsWqldkbhdSoTdT^_]frXyf_|WHpnW_W~]jnbkT_ZqZVWeu\aP`pYf\baZbhnrdomdfmOurft]amkvbh_`WU`S}qdio_kj`jTzoiqgRV`m^Ppk\co__D]bifk_hnFkgfvQ_f[jNnXnorYZzviuAOYqf]dcmgldyT`dSbWlY`jnim|dafVfZp^hZ`aj\Y`bSdkcd}zPg{OU\qVQd]kWgkvnqzRe_^onfftVuig_fhebVanO_l^Pyf\bk\emnZ_X]ngpn\irbXeddeci{f_^][ehO_YuRkcZgj[e`ZpZgandk[[`ZfYveQa^jX{U_N_dZd{N\e^S`^RNc_c_\caqTJS[n_g]]QeejmnUqfd`bpbipWunWL[^bgYdo[}avcasVeSj^THUXYX^g[VfzZew\bnaVVZlgpu~adT\vdTQqcmjf\q_^}^tpep\hbTnUdYmqjk~]^`baefc_^weea[LObZIhcr~idseZdUTlObo^fvr^Ou`[LgUrYoQnZal}J`dcuaX}Z]PmkSmrZb\h]ndUnrjqo`\[Y{dKP\or\Zm_`f]lu]cZfWsShbUmp[XWj^Uh\`sR`pehY_OhYgEbo\[nikGg~diQ`s\m[Ma]]Nbp`Trehfbbudq[d|dMecmhrlV_Tasowkfchg`YbZxkfnff`^heabcvdeq\M`zng\i]}ncv[cbyYhnqV`j`ZnadyaotjnzZ[h_jh`{u^qkStlwg[_Xr[asedewbYhmUcqhq{e]m[wgbdxbybSa}bZY_kkPpf]pMUncaTYijnxeHimhc{P_IkOb]ugi`_kVUdXe~W[{xn[kmeVcldITfTslu`g_wdL[qs[]fmwxZWhP~udj]\ftycfmhu`\eZP~zTdieYXZ]ea]cittgotPhh|hj{|~pbid]t`jV`jecza^a\lutT\FongYbvs\glEbheZ~Y_eH[Lp_?k[`kVPaio\aZcgYd`fkYbZRfXeh|^OWm}_Yu\[VYpad`eC^fSOt`dd[xUpmduZmVaX[dYwjnmYvtyaeJdoygpljbtjbMnMUsu[_VokT_eLEoYUWPn[MXWpbmio^Wf]taC\sW_XZvgjN]`k\Q_wmgynWz^ilWUWoel^ffvVcqi[qi_e\Gb]xlf]ScZ\_`YXucgXnuy[Skz[hSkjhTZR^fhgCgdWQWc[uSmf]f\Yj_^fso[nEjubbg]Sn`g__XiiSqWVTZhkrtR\Qk{]TaYzE[ddpp}zc4mb\^sY]vwWcq]IoQRpKZcbgtd_mdtxf[lhk`bizS^qdhdW`^omd_kL[`Uu`\Uk\]Zpk[~U`kJ^k`[ZZ_\\VN_Lo]X{ej\jjgZ_VsbhkoxZc]icbQh_MnhT]VnPqfe\PX_\reVdTcedqbsnahm]g\fQBjSjNglrpafb]|U^i`Xlca_piz`ihsdbUjdg]tgkzVRp^ijCpmy_[YllVmlqkTi_\[t_Zpa\^fVe_l^W^ifCl\_Msf_lhda[cpflaSb[eQYXt^UfsaggeXVdgbmk|Vh}pboayUmcn\J\zwrZwduaRsXSSpuxo}fU[Us\gha[T|llpadih`szZ^htmlb^o]wrbf^tZciu^cYbn^ct`X\cz[h]^S^faY[cb\l\zXgbgnjhY^czSuZd[cczuRlcb~]ilV\^g[mai\bbKj]l\agdkphn]njhphyaooYlhm^\TnWpgNWgvb~Hiy`F?ja_W[__nl_TsfkiWTk\YY}hdxbbxgu{cd_KcfgnFmhK^^at]up]cbRrpjWecc`hzdUfQm]bvlccYmS__dO`YKpdog`sc`faSpO]Y[^X|tobcxwpgV{hOrJrrtbeZfTeRZYdikct^b^[pfYP\SXkpY_LgzgdV[Va]Dacqfdci^iVjWbu`vKj~WYaNUhOwglwekTcaKc}d__inZbxBaRTckXwcUfm`ch\jt[gea^Xj\^qwvguaVgkY\d_s]UWYVdtde_lJvd\]Znqgj_aWRVYxrmVZ^|lG`}]bgighngpm^ab]Zbey_orcchpmaavc`gemVmXf^ndhj~ddhbgscLjhs\o^T\n^fpq_QoM]J]j^KlVxvd}TomibUMjOZsYsihbQileQUNvZgq]uhoZYls[Ve^^aX[ulgV^^Mm[ZydZY[Z{mdeq_^fn[ktX]ngTbm]Xhi\RfOescagfQwqpDaRdc|}\]`_dlcpwcgkcZMpnln[brwQa[eeeaj\uZgmPVrcjidRogk`]crbJ^jYTXWePlT|Vfjmkojx{]\vbfElKizmu]mh_p^nsf\fm}\ewaq^qhdPijpm[j^mu_]ftZg[puirv_bif]ejwlRfciic[woWb}u]nhudZsgg^aWngTTdhrm`|DqQguM_@_^hg~s[fYefr}pn]}w`nYZWS?qiumcplYSs[jQ[jd[jq}f\UZzSonjYgnl[`a~n^ze}`_edfguXgV[p\tXh`Qem}XcqdfofdAXO]Rg^we{ewbb`sicMp_liOQWlgKiawUU[lybtuLt`i]xawh[SdjqPnYjuWeg]nrd_^ecv[\Uy[sNg[q\zhcqje\Te[NZkqbkocXaYXjURcY\lib^_HnTeTt`YUoakSydePb`n`XeX\}_asmXc^eXOjqgU[Z^eOgZKsWtVZXXVXnTfokedtWmZSdUaikacKvnWaPvnz}YPp``\]x\Mwbia\{\cPbVSWh]wbtr\{bk|eFc^[pSxu}r]giOSnM__|o|NclMUg_^P`OggJTa^emrdnupH^WogdlXXZsodnKHmn[`]^e^dunj{{KZP]wPtq^e__eLaYiXqbfgmtXctbGrQTk^hhvntcj\qeLZXfkdi`XsgXlmdsWuWfc\obddeT_Ji~f_[dnuNjveh^y`Rj{lpsqleatwfkpUYuLwaickVaY[VpW\\dltTdi]aefnYjq]nt~TosXbRPSo\Pm\hemubY_[clgSn_ebnig\]SXQdrV_`agYkS]SbZ`miZ}nc`^bnwp\^pltbXw]]llUn[wnpji~qhJp{XR\mi\ryjb]ifUtjnZjSdf`dYWx\c_TccZbe~eeWgW\^ecrLeb]d~[q]mVlYS_jUiiLi`phNYh{s[c\zbNTP[r}WT_ec]VbIUT_sWYVQh^VODe\atdtYdVbTVXlbq]fb[aeVTcteynQSiLb~l\[V^j[xgKufOrq|Toxrkzrbt_K]Vag[jtceaEXik^XkmUm\VFTYORLn]kSJiZeZ\^ebZ\fbxX]]c_tKe`_gn[^h_Ufhjh_iJaNmadOnbbxRZliUSnaWyVLqvXUsm\kPissfYZb^kRu[`NmaQs|nif[gL[fe|afkLXI_kxU`^XqiKkgPa~[m^OuOf|W[gWD_miv]`alisdjmpfSbaZYT`WXMb{wwdUb\ddbP]aRrcjcnfmhocfgX;Scjeeg`}lmUlyRT_jkY[fNcixj[rS{k^fSk|yfme}`Ufff^_^_tafh\nk_pJWomUOW]Ql]kq[cZfdjYtlmag\^_nLmXY[Uito[[\sYgp[]sk\f_mdmfekjdhaxfaapUd|rf_\m^qfZrodr^`pkW]zHWboy^XvTbcc}Wrba\YaHyf\gZnQgcqiZYbw_eiy~aYtXTfnRZ~nVPbUh[w__Vv{joZjeZLo`_VsdhhaPZpu__]u`a_RXjnw\hf_GVMp`hHW`}d`cW\jY_Zm^\qj]YI[e\[jYYg\]eiDfpbiqVTRpfzbxtU_mezWJ^^eX[neg`dTthfna\UsWcwyUxigggeiXm~kYaUY^ipP`KIp~gk`TgmjpXrucal|j^~]kTdhZrunoiUighXu|_qwp\S`tok^phgigfLnodTZkrfSk`Xqergys|[dqjc`f_woak{tWbbfjdlRab^y[RiaywOuarjzn\Y]_hcZGbh{afh{OhQdlincXZ_gpTbm_^s\ee~dgYsfZnb^_q[`joncckpgKZXdjY\gRf[eerzy`]bQ]bog`e^geNQzeevyT_F`Ne[W_bhnrkWSgcp~`^hei\W^kcep]egXeh[VOSeb|oacWhJ[~`fOVpVqtjNk^OMeY_PqiOwa}gd^_[mS\UqVkcciods^u``cTjnlq\UWaZakp\vnhjge]fZVuos]bnue\bo_[iScg``ly_itjaTmf\^[[bRN[Mcjkpm\cebcei|ymeosLsh^gjY]]ujoasNm^bPSsrg_`mgdYvvqYdtmiuh`fW{]hkjey[k`emO]uPv^YWirZZfiravob`TrSYQxUlO`]efd^cXfTlnZ__o]mxefi]SelduVUZ_wonbpU\qf`[fVV]lvmWXdog`ZYksfvbfsT[`hai\]dd[cc]lipdPs[MidrO[u\pVU][_RgYPkYVr^oRcffnbVgeb|mYTOeeO[dnX_fga_Y`nZM``j_Zn[\WaeV~h|idhbUoZb_bf][cgca]f^\]lg`mfrWf]focfX\c_[[k}dmZpQfYedIj]T^t{gaoqga_|Lc]r]UZ_mfu_bbh[z[dnlghekcPb\_TVWt\eWmp^\dj]dY]ui`mPY_[\iffd]_f^Ueq_`hQpjSr[[kgaSpJfWr_ZFfZi^mbVLd[p[`\c`vblcjo\k|hbsVc[_eic`S7_jps`TdZ^lbpgUQcgu]i`[mxaagiqMqgo}^[fqcq`bVd[ZbRomlj^q[dTN~][hlw[V`YWQ[Rrg]glj`nm{\^ZZc_Vk_gZjer]wQrj`j{aWVkhe`YXcezUvjmk`jS[^T^aI`YgXaWomSXhSnqktKddfcjv}nddDpmirRmgWabeoWN`Fs^mWURuZ|anXiOd_bQlyYfa_gdw_]hsgLkQOuWfmfuYf^oai^lW[`kUJ{_T_n}\cT__g`_Zhni|Wsm]csbccqcgKmMWxhr]_\bXVX`[[ddeyqh\\ldbRSdjYaTkwpgUc^_p`cmbYabjaleinCl\pepzaDDd^sWZZebsqsjiThcubZ`XbiwbVUZ|Uqe\j[palkcoznpkpZ^O^cXOcmkdrbcf^gofe{]`l_s[d\wbkkVrigsg\vcTjw]lWpg`TfSYSuS[{_|gWJd]_baeekb__VU[fbyjuchieggqfm[ghokpqbonYtm\\`xlwfbrb\rM`\p]cjVpkTJbNgQWovhhxuftZlmp?VU[Z}Rfb_dke`caxif]_SYwdez[oi[bqem`XegQu`WkeZXeqbW`ltfhzvonvucwc^bfdgbPdj`l^[Vec[jxhvma\dublf_ZfG\YGltr]c_keURlstazldhr]Lz`kUpiYfoVhogpw]\{Ns`^]chqjfoelxfZ[ge~eadY\jdUm_eTldWWwt^ddXdT]_`]orjfXazVndrsdkWnM__ccdYn^cY]xVeSec_ba_TYQv\b[\l[dXri^cp{psbwW`qcllaVi[eYehpeUXeuaTejmlhlclh`x_gm_R\\eieSFVlgcguplchgWSofplswoupaskoZVaReogYYamSSXzP]eRi_jdgeq[[[XjVmr|aggugfhVdbWZhqdro`lgW]`hh\^sZig{_da_TagbZpo\|U_d[fjd[e^c\_^lcVii\tgbk^U[mgSYUW`{Zi`V^gbiftIpe^TZYdn[bRaZCThfb[ephYbfPynk]]xc`r]VanuggVhrzYmeVbgboPSim`pnSYwvTkdsgih\xmecmxroQssh]NaRiSm}vt]CjmmorLpu]pFrgmkUsqgqujO}}{_Sofrlb^a`|qn]glZrU^rffX\wQTlpMjpvkgq]dS\qffyl~Rea[Vgim^f\]_ehO[[uXegypkR_kalk|ttf\l`maVww_eO^\jbpN\gd_nVcjiw^g_KuidJmXaeosr[plZYfcaeShN_]Vt]jLhokjphanSek^^eYNsOiWppYW\mooicC^aVZabuk`n\mWz`h@][WwrgeiXthdobScixXlYZgZTkj^XnkhgXdf^iv\jUZ[af`UXuQrmpaxQZZdOwgaGfoRflzkO]`_XjPRixjYHU}qadjl\]v[ZrrbcgM[cQ|]hTUZevebiel_]Vat^bWLi]aWl~}hUOeY^sia[d}qyX[rBZwvt|m]ohhuJYdjf`jia[aKcPhXMetn^Zj]}zgPTjsR`]RhOh^ckEZadfySrM\caTie{h~]nkkm{gZmZ]eh^lrm[XY\g[og[Icnj[s^fchYiScZajSezb{{ljghmWih\k]c`imObmf^pf[GxvtLazmnb]klI^ghpcodZachXefV[a_d^SA[lf\[Z`tewHjppd\zZ`opdsufbuTfdr{hjf^[LgeUt\dy|T\dWQprjeNaaQqmgrYaToWwYocvji]dvWbVhvyagfoXWd_]d]`^qcVqxlsb^afvQdNkPc[OTW^gbmeXgbdT]Tnmk`jT`ls\va\me`g`bmqVaj[lU]zTaclZoVjmK]oee`llfb\n\i\_R\_igfb]XPQXzpid__[fgwj]eencki[fScWn{jfWj_hfa\btW~|[fvbfyaefgcdwNuy{m]j|k]A\dttgmUj[KtU~neW]e`gUcllj`a^jcnYcied~d[pathslQ_Kcmpuh]Zc\eRfpdxtV]eg\l^edbbrQpqRoVkWbw^yitaOg_mn~[YdoYsdsdUZnlb[^Rc]EMdtisfQT^dSmf\_I_lVrjZRchgregg|eZ[k[~j\`cUUZdTjUYTroh|f@ildann`eWegtsX[^_gVbXhy`cjyYsVjUOeZ`ecZ\jQvje[Z^Gbhx`kq`SmEZdI`_]dg}eeeyjsikqp{YtXda\ebiQT`PpWaXlj_Wmlvm[XZWc~s_ho]iPcdpre\]k\fo]f2schtl`\hR\aiXlWhhg`iXn~cZxfdo_SXcrhrGbf`_abkg_llvgU^|s\dMf^YVKXumpluVaXnHlfkrQPfbceXfracl_[^gqg\cOps\uohgbbg\]j`SLTfxeemb`^u\lcoYt\\SjN[c_hVbeXukzlG\QcsV^Wh`sftVrfia`Zj[`qqh`ccrumU}d^^bokrYPc`geqmYrUa^n``atfk^grXUof[YlVce___^haqe_eb`RzSTyMVrhg{jplfduymgneduTdcg|OZwceh`f^[atUrbhi^o^a[gvjav\_d\cSiiaThfskRTXuyqMeYXeUKXjd\qenQaZtP]}Vqd_h{bQ{reei}pnffzZrwfcjkhmoaqr[]lM[m^SVQoUcYvcf}ee}Tszh_sbhojXugcf\~TkV}d_Zlxyd}xa}lfchkn]cietnuyag^|tsym^V]nSsahSs_d]aQXxT\fVw\_`^meSonY`dhf^hYf[h_Xguh]{yorkXbXjlv{^lodhMXx\gZrZguizjp{lopp[Si\Nh]ffdX[RvmYzs]cuGpcpvXvjbf]vpa_cyc{taq`j\h^XiseAlnuanhj~[u]wzqmlgeQ]p`_b`rq\chgVh_reXeu_og]oSb{|hY[rjKufmYih`gqtfVHZhckkScVk]]Vmdvgalapjij_fX[hukj}hw_nim\afdgcSSkk``d\\shnWT~c~VUbb[K_kiiqvXTw_RRfWk_or]ceefmyT}P_hdbaX]{g_lr[^v~aD\elhbkIim]cVujpO]wqtbWmccqV]Zme_Lm\aa\ei]dmkbemcxgVoV{UlZmZfYj`eWRea_c]bp^]bWh`r``da]kfmininevcg^scZsrkbvtslc^fhliXTbSp\ei^rxenc~q`mjhep_\[hza{pYmb`ghn_hvbsba\itg]^uWa]`]scXhTlnqkmcWcrWzdQ`xwgd\s^gogffnbdiYdh^dThoqihhiWhVhXXcmi\mlljg]hu|lsKd_[da_bZeeTmCm`kRfat[RixtpDlVZ^wd``ehrSoWebhibulW\nrbtR\dekZbj\fkcmba\eoqbo_jSuuOddlui`aZbr|jevsV]XuZZO`g}Uy]blY]c_k]_vlb}pYMZuXajYbPttuXom`lR_oguii[vj`zjXfp}^_sJi_cod[V`qemgb~fX?yUYkhN`^tfOm_YKPXgo\i]l`Jekcllbzcvd_]ixmidnQ\xYj]V`fvhwsRn|mdV^uNe``j[ecjFZ]rp}Kbfanj]py^ril_Vcp}adLa[Rq}Vj\bmVajyuaamVW|c]f\`kOj^TUdfxdDda__Slci\HkWgvee[`doO[kbdXYPw[^[XFem{bA`~]YsccqDy[~][Ua^sH[owcbKsWYQPh^oO`gV`i]sr[nfv`_W~ie[UrTou_ZkcqeX\fU]nlpwphyvts]goj]Yi^E^Lkf[aYYrLdswckUTqs\c^Qh_R]PgKaRhjqYnlkcc]ZS[vO^zYcokedVT\USepui^b_gji]i]wdoaSfga`eddlndr{^fekWfNckk\^llY^cZhVpdsoQZPB^zod]f_kvYne}^RdU|boa}`gRwkujWp?a[V\h}Tfg_MPNddfp\wlWrbe]ducod^kxb\lSodPzXdofURec^aBn]ob`bUoZgkMcPekinccYYhdmVj_l\ouTlj`^rW]XfeWi\akgsUp`T~u`ohWsbfteet`wNh`atVY\eatK{Ziisq\ZWbWpglUxmAeK[`ffpYmgWc]\~XjWnUhdaRQDz[\eYO^XS_h\nT{v]^tWkn[Sdc_dfeui}tT]RjgWWk``ZVXopgYdxTeedk{rnvPf_u`khmuk]TFctU[ZXzun\WlolhThdjgOjZt^q`bFPcghMRzkh`ucZrdgle\ivU`i]m]eapp]erZue^lWdi\VvfriXxel|bw~nfUmhPV_rr|bbWvid]hlTa`a\vd_mg|o^tjha\[VwYWZkdhgtdoLJF~bb^[_Yb`Vc`oX]enr_rjlduPfzr^TZhWRimgcoa_guxadb_xsklfru]Wpbm^Yytmamemac^^_kxeyewcQYXpYe{cLmh\hVVpSa\o`vOSpsn_Rjutj__khysVTYKYpx\gl]O_Rmjsj`yljjcXW|flvd^qbc`\^`gdcaj[efVY`orl``ii^vhxdjebd^^qgp|c^rU[ceisT\d_bZsU]^[tbba|xUo]{FU_skna\qdbIemOa[x`[ythiZXkmys```t^seSkT^|_tbYja{Vihw[FXi[\XlU_]xdWO]jodbVae[iaQknVfqcqpf[wcXNjhX\heayY`MtpkHlRQTiNi\jm^bXf__SScgkPia[oj\rOraamsjZ\e_edpdoti`\hv_{YfqQm\g[Ued`h\]WW`ZuzaU[vlYZa`zedcdssdZjiqJoi\\\m\p[ieu^cpTZikgaTtzt_b{g]ewSTkXmxMwZpkeygds`PumfboZ`pi_rcQd`b[^YfoqeXn~Tcxk`jjgchde]f`heb[YYnZiUQjwhgbgqd[_^Yie\vgj{gicWafeisr`[glmTtkwdl\[[]pvbg^ribczlcokMY_WaebhihvcjVj}lpqqceg^zijbR_ueIfcic^sYf`cnrrxufMZjWmRqWkXVp^xedcvgvfiwYoZg`pxTH]hd}rlHhUYv]r`Y_qe^Vfk`WohgcZwcsY^qcm_OcZ_vWbVdf^{Z`xcOdfX^\RVmbUcMkgjju_~`s_c`lcir[WykfXqkawctqp[X\d^YjWofMdakYn`jmSiT[pZi_[mfjjoh\qaajPolo[giq]Yaw`]VavZddaskh_cjR]dsazwbY}P^cnYlarjkb`\wpahs]cf]dY_YzlmKjdN`_Ym`djkvaZZWgojyhk`je^]vLo^Uc\ts|sYgnmZ\ZWzlebddxnpl^ldy^ma`fr`fl[qp^fYVg_eef]KkV_c^gugSse]waSxw[RP[Qabv^h`hfTlyXh^e^Qkjpha}`~\UfX_MGrPgpbm`lpyxw]mSJ[bxY`vTmiecdidolm`c^T\_d\o\i[vY^qqsnc^hb\ekefjenZSazbZu\jYnnbdZlo`a]\MU^rjfgnjZgvohpyiXLZfxibS\p{veT`sxwfdbvTkbqnkfn~c{nhn`imZdupgix_eZXjwMq^]Rpd_f^hjaYjMSTpgTeprsL[^j]`kYsthSrm^keygf`]_ufrd\a\P]gncelnhbkfyljqVm]`O`kZUtpfSpsgmpfVfdWj`anl[XdiRdlbXVdWkisJa_lMahjdhan\[PF~afhzrmoU\zng`QtX]Vz{`|tl^tZmXklsqi`aglrz_d]jb_vijZga_QegRM]wayl\Zbmwh{mmeomdVYe^Up_dghPQgi]cMo_ZbkcWl^hqi]ecUzeRiiusjek\Yd\{ofSKfTifQVKigbt`j{}^TgWN]n^gaavi{ch[lf]Sdg[ei^nb]^earatefmicz]f]`f`[d`Ngy_Wg`giTfjmsbsde_Zrh_[bbca^XnUa_igh\tab[Gb`UYPpbRmadjXda^h^o][nVhV`m[a_n|hygtSugYhljgeynYroc\~q?Tv_fRs`^gVi_elhW^`YVe`a]Nc[lur}b\_oiUg\fo\eXZXX`idXVcbheYTjg{r[t`kc\cYRtTHyW\`MTjddqfakucYSa[eZs^_ziuVnk~`lRperalik\tXXWb]s_efRT\abc\rO_sk^qofg~gidhQwYjlrXue]eSl_{jkkYZV^dt\^]neqgd_fm`Xo_hjnbe_{XomxcygBn^KSa]v[Wd_{_]hl^gn`Och_lo~eiek\Lic_bxvZeuo^jWx_fhqu[r]]\Zgq{mv^a~UZfc`TM{i[g`XOad]VokXln_avZljh{gPh`diYfnsmiipvzlc\eYeokoXbdjn}clQSmxnpT]f_e_mmhnfdkjVd{MhnWjZY`f`asoUa]`{uVYghz_Ln]iYJe^V\lekLMi^_QY_cJahtccMvqR^k_dwiciNm\UcR__d_^doH[kjiS`hup[h_q\_YgOvbjbWjWqvyb^[[[`zdRfNbeVKYrg\bincXXucLpe_r\\XigPb^Ym^cb[urTkYU^gVlbm`ZjY^jhWdgv`S\dkhwQ^RMiLbBM][RZVuQkRhu{lXUdpTe\TYRU\Wrwgyac^^]YdSs``}_`Ypv_mtqOlLf[psYaY\ZpfXUs^`vyi[a]ZdhcXW__Mmb_xtya_ne[eeeVg_}badmsscmSbithcRldT{eVfqb[QYnkvhbNcvjzr|hWjn[NZGd^HLjVbq]mXY|]L^\kdks[bgZvSslSisNtcZroNLVYcQofmu`QT_Owcg_qUleaC`aU^po]_UhfcmL`ZZ\rd}W|VdOiV^U_XdPWeo`x\mXf\awchW^WXeb`Uw`f\YX`^b}\f\\fdW_fsWbo\ewj\X`gbym~XZcTgaYYyrkH[^]cg_W]afc~XsfkijZYedZeYYXbqYT\hUFQWQjjUwOcYfkUl[cfXfxWmak~[hotaP]bmZmcSs^Yq[faPmW`vWRRgjVvQrjbXk~ka\Voe\ljganhO[mZhcjazq[kgQYii`V~``Ne`ivb\e}beuar=EPq]`^Xg{ppiLfqpeT]~o\]\UbiPWyhn]_x\^Rb|kweer]xYnxtWtueoZibnYYlRjnrVqvkw]^kcdliLwwgiltS[aTZxprrhnwip[N]a]ijj]ydsPnSwoxIid]nSUjSfa]Y\MZrXiY]jY[mdyWud\YXlrvyjQnghvFZX^czi^]Zxlmx{fct;[_]Nh}[vH_]ZsfufUIp`Z_NgGgkE_cjf_gk{YYaw[chmZjqmqWqdk]wiXcahj~wwmpXm{]aI~`ikkk}u~jfbVcvYwWVpqfUUmxx_YUgq~uerdgci\eqfd]]ZwjSotfhemcTpsY_`jg[dheSXlbplpgwQ]kcgMgnlZhciuf]JgfiW_zpv|Q]`qr[nc`\\VanhacXjchb[y[pvi?paTfZQ`peq`moh\\Xkck]idbTcTWJpcbcad\^c]hej__dSSpXoW^gj[SsbSzOnQ_FiVUsfmBj`\chQRoOJlkhmfmnsffyg`fxMdZZzliiqaW_dal_h[ZktXZtVWfRbfNQgnOUuohpbbgra^^ZbWtmTU^wjq]Pp`cdkj`Uhh_kWfaera`h]yf^efgz]|X^WQkp[bt}wYd^midV\ad^OPz`[b\mqeiPaWV^bQdp`QfxbR]rlpp__qm`VeXf]SpaLhad`o^oWmdXddTYe`q^qZaYqu8|bQd`Kbi]cjKTbYd_]{c_udFUWawMkhe[vWknU{pOjSRi_l_HOVThq\jKdjh_MXdhdTyNdnwbjP`zee_y^^kIisoOjR^nKbd\`wcse`dd[Es}`[ul]wjjgUZfRd\bbmg[ZmcJYk\_lLgTzfd\aeqVbgmTfda_^g`w^YVgR\yPrekkXiaca`Xh`wY[cRRpamdjg\ovgrWa\Ya`ZdfygcwW\_W\zff^fWdLWc|]mzQS__^YY]ufSd[Ya^^Dcx^XYil_e]YaZ]O^_L\]WozWOccbX[s_sHfkjoeUeYsfWgTmieVmk`cage]gZcLbbWeVxkjg_qj[kj_``cRsH[eXsTXSbRe]a[\kdQ\WUgg_LmlVa`Z__NdOdtc^_xNXjL[Nf]g]ESSZTWbJXnLcs_ddcju{LSjbzYs_uWcow\YwQcmi\]mkhcn]c^XKdIiX\PveN]RYreZemf`a[jylyWub^mN]dXMWZLnVN^^glWX_MTvk_p``mdmu^RoZDg\NVNgQVTi\lgzn`OUSpq_ZEcaht`l^uZiZl]XbYjiZCZ^S\ZXYvu_SqwphYj\]mXkv]RvQVyk`^][]V|}Wk`Vo_ctDfu[fj]\js]TlbuzYqit_okYSqrU~RQsilYgnX_\gRco]_ZUSec~l_Tj\kddjg`oUlckUyW\jPscW[_jJf^mYXm`asTv_nl^shs_kekd`O^^btpuYs\mfg`vqTbWhQdxXef\`TibW\WnR_VXb\fHxZZpr^Z|[bUbaUdQ[zU`YWh`\_X|PboigqmhkihidrrlbbXQ_dKr`WUfbkcbstsWNbL^Ysp\Xz[jkSfudfeaJgStuc_ZY`ysOpv`dn_[bf}omV]cgu`Yhwhksi[Xypjw]ikuahymoPXrddqSsYen]ikTs`qKaVmV{wbfdf^XyS`ucfhp^p\hehNlP_Ydbff\hjf\~xauoY`H]rlfMLljTvtiOl`qbjdi`eYjPhbnk\k``Ms_\p]daZrgvcfkdBki^d{yvmaZnbTv\XrXfPdY~bhbRqK`^qUqchokbqhlV^[csrlkekYvmigurac[_h]hcac]{_kiXb_tqt}zf^WjcCVQlue^Q\mYdlYbbkic_dMQ\Wldtdwqh`PlV`qTqtyMdnZaOZ^lgr`ygS[wPbddZrRNvehdXP`i]eR^[Wjs_ef}nWMQbz]i`whZRv`cdlgZYx^hb~hg~}owXieSfnVeZekeve~pqkunmsua_hbQn|jrldcW_erl~ew]diesUg^cqfaajiQt[Y\_g~UbkJfRvep\feTid`ojeneT[wbXx][bRocUoM^rQ~t]mq_RbYgWhd^uxca^nx_Vxgdjmpet`Qy{``vpnd]Zag\Yieqf^kzbuf]WfZv]sv}_wdoTc`tjaO\kilqj\]dcJPf`nOUfV\fW]q_oqrn\Xrs_jdsxejoteeb[Q]pbyozjOkQn`imqXdhros_c{gX8sco_Ycq{l|p]dtkf`Pqoldu``\{bjiwjZfYcgsVip\cmofhgisj_tc[b~j|abufflodpWoZ\nlzpappjkvVNgvpjqtNhpfcpiffwygydddjZhVih]hdKlfnqh`atafpmX]v`phT{su\qu\sk{Xc_elUHrKRkpXerhUNgNgZF`ntjithd_naEUeJax}ZXWzoUadfvmh[rhgZZ]hYRmPcgj_k]sXowokjTmX_thliyjophhceZfgr`]b\vrah`ympjl_]Vw_ZmadcilkWYhrW_haRxgjt_dfkoiZ}leof{^l[[QaC_aajWqajPdjOya]iiT[qji_{YHj^ikd_PccX`fYZ[q\{slkgsqvnpmd`c~[aZch{^]qY|kmZVhkkeWVnXooRre{q_kX`m]c]f\ruXnWxd\Wg_lc{[`ZUbiqdUTlZslmru_dRqin`gytdflcundUV]]jkefb^[]WeZ~jYmwn[mcTiicb_G]n]|hjqaU_dsfQr[ZtVi|nPf\uogtg\T]oWOklnZQdrj^^c]]`TbcnTasjSg`LfkfnnalXhckfdPV]LXnc_^p{^mvqihUm|fWqpfdZ_dcbihk[rqNc\W_JXQ\bj`TTi}gnlXgwi]owWhahU[jk]kjZ[ggXWc`gSoUlXy_^g}kpj]s_hikK;Mrtybnh]`M^]PocZ^eUGdwckp]yjwY}Y\l`QahPKowZkWYhOjdrderfxYeoc]pZ\txqYPmi\S^YJdlpqX{~jFftzdY]dR]nb\pxZNl_nqczSXh`vYXoBWzb^mbbdbjq[YoanR_Z|U__[^[_^faSbeZNijoeg_n_qsb\Rgj[t{izaldpTd`f]{_MhpuXku_gU^qtic{NTO[QY^cf{eZhem^|ilommm[qscwl]vj}Nok`rcvllVbaWYruSeXhdt~vXa[V^aojr_iXZaqlf~g`klUoZi_mh_e`\_xhgkfjTdXd]njmlQwUYokbid[T]txxj^mdmXbab`jeamvYfXYpadtV}\swbgZekx^Ti]od_myy`ynl]krasi`b[tXcapshtLwa{}U`sX]foijXa_YwarMs[`ahhl^^iQo]Mjtrq]^jjgwXbHSZdW_\kg^Zvg]mtjfycoeXeYOomZdtVSibnje`zdRxRd|jolz^k[evuoj`g\ayZ`aZ]SkVyhnrqhbgwc[mbdtNy\gZj[k}jbrS]ggkMVnbf[`]pv{e[me[k]`hzgkQgbgkhfdnvZuyih]uduYucYj]khXprton[[ljii_ofUpoedllffsgi[xdjje[nS]lhWef\pUeekhb]a\^UhbaedckcpgedgNZd|gUa[^dTQsjf[ec]jii^]qdiN[Yi]d[pk^cm^cjljW`ch^lm^jn^Q_g{obLya^Yt`Yigt|WR\fqrmmpkb`jbp`bhn^f[`emjmcdy_i_[V`dZk[dmq__yWPiUggg^Y[mn]}\dih^w\h|Ye_hi_idUZhVYR[OyiZbu]thS^X`hdSiaWTLuPdjijRZl^}ibZp`nXuRvtoejj]ersOaocWrjadoIrk^^m_XcOjflwyfpn}^eye}d_rUjTfZXanmg[ih}dqYZ`yVXe[l^kcYo`ew[lbZjYieh`i`T^UQXg`fxud[Pgkha?tfYui_edrsyliRbgtR\c]hZl\X^Wo^RTab{\q]dI]rwP`oz\uPXn``ZLn]k^^TsfakbuNUbZxh_b_[RhKsof\iaSbjhedeSt^iYWUlzdoeeY[ljkd_hQVs^mmRSWfdlsY[ga\l]TXVtwX`^bhHj`nn^hxskhfdb]gaWOfmbmP][jXeu[TSjeZbaleVscjanUricWYt[Qa~z`lnodZQUxS`TaX`^T`m`x]bMcqoZhje[SngflXj]Qqi`mskcRoO[\gSpjhrfhnfiSUke_iut_jj\VS_a|RfZbPuwb]]QDkps_xeLsi\jaYebUO^Wqamf^flmqurfalcYgeiX_dYgQTmevx]W^ahiXanuqQzUXv`]SY|fW`isgljc~qhhpki`^c]fdlbWVtvs^lyY^jukjo]ff|Y^Zh\c`]RWtUgeYm\^]fb`[W_fRoKalXgooon^[mMefpr,RS\ai]fjwo\}zfMlNljoNbf\]n^dQNiau^St`bhtsZcfSwMka_YNaT`lTgb{|l}\h[scctbmr_QZXdessa[n[Zi`hsaa{poZWjbd^t_pkKcrbX]]VaJZXB[Z^efljsgk\s]dbs`Rroqpyd}kvVVd_TrUvdqRdAaTnqZ`_Nd]\VQm{mTrW`arVk\jddj]]cSSi_[jWzftm]S`[l[ridebhvlaXai\hRqWd\mLrXR{lV{`ar[make_Ooqd]`ravVjc^u`cg]p~vdaySb`PBfhg`djMld`kd[tIXLk]e|j~JgalicxX\fq\eQfC{l\hiN[e_\o^SP\SkehTsnkYc^WZ]`y_bOh]vp`Wk{gbkQPtj]e`n`\fe^sfgZdkci{\fhpk^ZV_hhaijihcdk}[ibpt]YbbyccglsmIu\cRc\x~f_\[ibRnkydrYms{jjZ\qOhX\YzqcqaqG\t`_^a^r`s_QjuuZlq`jevntzcjeqVsl|eQdc]nhN_ebs]Uvce~?\_itqkaVu\t{pd_ahcZaZxUqozlfXgpxWu^akbTb_fdY\fo_dngk]rqwjes]\aUOy~vecb^a]foLjekqtsf]Sf]a]^Yjbdz[nS\Vg^xtNaW@gUn[{hapaNZ[XtbcNZuAheY`augsKWMmcj]bV[mPSUiYLaRemibWScZcVUiz^njwekiK`sfUSZ]c[Jcooa\ZcVpXVTWZdGmZZhm^mi`q\oaTbiY]affT\kPa^b`Wffy]Yhoj_lnzfoy`ZgfmcmW[bWjWjmuSdxeQ|bvWjpek^p[vkiRdcakdjgl]l{PhUvZae`LKl|nY]]n~lu`ajV[`sahvoypmwse^Pq_Ro]^\cRVblzXddm_yks\esg~^v[u`p{rhcO\eooRT\xWVedbhWPd]TWW`o|xf^TjnTimkVddk]wi[qc^Je_`^S\yWpem\Yz`Z^maZ]chhbYjghgVau\k`bWl_hU_RHTNY_i^q_be{[XmsrebfQch_SXO`XgaX`gec_^in]lKmYlpeof_tvuHc_T_bXc]n[UZxfhU^f]\ibd[[bNS]WUgvV_]X_^LgHgukip]yb[gWjirke^\fciXhWSqnyeJ^OhadqaOIhsd\egtbefl`lUceod\ahscp][YYgpe\cS]aheq^ohlUvqaXiaOcbhwnnakl_UTa^_bi\camhxYRqebU_drhlr_c\oYwgmtdif[qwaUwqckkloafY[^lTwqevclguXbgiyz]lUa]d[hpZw]eijaW\o]QB|dSWlTSyUWljTlv_QytVcchShg^X\j]lWmpam~Z[}_l[MjZa|lqewwYbwcwkhuxZ[bkubdikrXj]WT_Xt]eek\nxqohid_]i`edTYngjU[`c`o]s^`^XfdZ\Yde`mhghgrTg`Ni`n|bouip\opZd^fzjcawk`ZgyepXZl[bam_sqfxpmfdgql|NVcjh[~fckTNjlXex}S]sxp~bq`NlcfZc^gltY]rfaeWqnjRsi\pazSQ|z`dY_bs`wtZpOuejm\rlzYzU_c]TeTf[lrciaZymc\uCdfZg~UWh[PrVrXfegajbfWfg\lY_fiW^[\cusk~Yckfvsnmg[Rbccm^rPVuucb|[Qgg[YTliQj`Scbni[[U^nfoqmfZmXUnpm^]~uX`bSjoRl\sihdhryk]dl[WvR[jPu`T^r\gm\UcfPrw`Vceedpj^h_Wpb^bol^TieqXRru`aRa\doM{bf]\^bh\PRt_eTdhYhYwUjQlUMauprdV`aj`bPkfjIYpemc[WcqkXtgg}hcb`crboSGie[Sn`qXEpf[kQYa]fHo`]`b^YR_e`tw_OnvS_{XjkebLQgJRyZc^f_djo`XSv]cWXig_Zm[d]t~`W]]cy]lncaedl_ZhS^gp`mGaMXZX_chX_M_a\Pl_eu_ZUc`k]Elwh\bPV]V``^^\k]\R[ancO\\jw`a`TjPRhWq]YbaUeCjnQ`nSXi{a{\gKUlgVLoZD\p]j^~z\O[_alfbnYja[jmg`|cbi_YhtwPaTuVe[dIW[XYlab]kUAjcTYjh_ked_c|`XmVbe[cI|^`giRYuYTljXVccZnZoXfcxc]ikmf`_Uf`dbcpcs_jT[fWd`ijgfb^VlTni`c[XZoznyqbmS{gYYZ`q]V]q^`r[iruodq^l\AhVgl`lhwFSqg\zlRriYg`]^SL]X@]bjS]e|kS?`]jwiqhjVhefegeh`Yrc[_kqHaUgdkNUpWgpYUV[Nn}eve|j^nRbpyfc^GXx^lfifdycSbfXmlb`kSk`_rYk`nQZr]nhNS{qZx``~fu}`gk]cdjqkfnc`eSfmblniqirll[oshrt]_TjXj|^[eebQpniuj^d^hdY^Yg^eqs^hZqWwjioke]gUmhqpngU]ijmjkVjWjwh[n]a]yZkX}\Qswet`sqotnkkPb_`Zoyrh^bic^h^`Xna^rsh]|Xhe`Mc|\JN_kc[dS^Qlylen`qkhbcrcdiSTbd\YOZ]VIjemhjqvr_mNMkIUehnY[v\datncnfm^fZ_]gUdVb~_po_fSbs]szzthxY_cvzjwsfviF\l`xgg_\ji^ef~pg[lYbpy_lnsTdnjd]f`[PxWOUb_gQMkro_]N]d]nVqmwZ_Pdnf]Vhpj]_cb^ig~eWaVupk^[[[zS`jc^hnuPnfxdYkzlrgwJ[c_wo`~`dmtidOaxReUelt\d^Xzupm@nZ]ePia^`\Zi\dddeYpqtZWm^jdgc[_dVjmkelWuq^cWiRjbvtng\bZscbgtR~t[krStQeXbb~[hXZ[_eqbhZ[^[ZbXgmle\bgdrQWycazHotz_Tlztcjjk]zpv\Z`c_m]aqtq`atgwfhnba{gf{h\ZmX\fnncdbD`NyugacvPnrkrx_gebnj]KP^qPV_xHjXp`[b^QMm]\j][gnXSjikvrai_tzi`ZUm{p[edRqbxxo[mkViNifoz{XQY[ZXZteq|xemgWnbo\Kell]YZqVzilh^TbYeQecimXKsaVXqRXUfdgoNmkQYi\ktlkQ_rbbQlod\qQAaggY]c^YOdA`iWUe]UN^y^UkZaeKaqcIOpajbb]q]tmfhdidOn`iSf_djU\QocaW[sm^vjSubbVil[eRYkaZcQevvmeOX[XvMI`eonPbfLohdakqDRZflxaeaXmd_^hd~K\\]fSZPkjav[aX\U`m_ehnQX{^ek\IYehI^b]yMlqcrm{{n`^}p[MlYgYf^VZ\uddug[Yc]\eqaXlebuRy[n}ZecQysZeplL~rPijp]Sbgt[yeYX[Xr[oZYnia\hhoZe]zbcbVVXjRP_Vpjegcebnmtdh`a\jhbaon`[Zgj~mP\gsrbojXX^UXocZmj_[lymQ`cw\`j[rvjpZcMzYjpWoi]ql]_vj]Wfj`imOnZpxc]gobUfd_Yjz]dlipbbtxa]`mnsizi`fnfcLdcUaNa^kbnertSxtjUWaR^]bxUhncJj\x_gbj]_ck\iuTl[g[mdM\otfhpook`_o[xcm\`jif\bb_Y`ooY[eR`b]nWmtXjeaNgji`icy}a`bqeShpg^in\kShpuWzkenWvcn`p]fi`_rgS`g~JgciNZ\X{h`^vptaprhodg_Yczu~p^Y\he]gKgqaWkheg_Uq[am_xeeeybai|m[dXb`rzbrX_cf\Zn[Qo_`i_rc]aili_qZ_`uqfrb[iNV`_dbxb]iYuTc]^Pdea^wYQSTPg]gtu`bdeYwpaXdkis_dsUlgShajdNZvyY\w\id|UcYhqdh`njc^cenuWfZlg^sgOzwq[icjp^YALsrrQSzciQosmT_fbscmddylbnjj^_fsVXU^pwfjgOc^bnox\Re[mwij\VnvdgakmuvZagi\cV\`}fgfbRjhhkxS_h{sRYaldpvTjfikYhxdhwX[juqbUoq~c`tSofe`djYhzewValscpa]sy^djj_\nOpg^dhdVgORVacllp`hslg\d_fo\_bv[}S[nU>cLl_gnj||lf|YfamdqfQh[Ue\oq\[obohbgyXhlcnWl^Ukk[SqXvXWfZ\ws[d[jiwQerioYaWM`Wumd]w[fkvh]l]edqif|iTgkRr^]`T]eYoYrje]mnoll]rsRipoUSdxvhXcp]a\udbyhch^~]q[j`[^}Q[]`^n`qzRU`Ink_I[kEGjaf_Zc]YffkZbS\SqPR{pOcnf__zswVg\yXiwVhSoV]x_ffkfld_Wn`g`jMhO]mdabs\M]gl}ohZ[iQdSUb`JJ]dQjcNs\Sh|\cmfmetIeg_qfMe^``gQZgJ[YjOjVklfc`tjp{jld]`Zai\VgycfYqfe^fit`LvQdcVy^dtS\a\`cW`ifm]>gUjmc~GdbSakjpWOV[`hejeakrbNqbVOaS]fNfb^uh]_d`h_Xy`\WVt\fgf`ffyR\d_iz\ebqellTY\eypH\W_dxqhPQEdMUZbjUg]kbb|Z^V^beU}cXLuofd\kdOY\V~jg]X[Ndk`mc^k^[X`ToVo\rpjhZ[ktopgdVegkcrXsVec`adbyx\XgSkubUfqomWdk`bRva^oj\ndkhW_[[dvmso`mtgpk\kf`c_`yR\\b_cpacT`fi^o_iXcbr\[kjmrdVdxlWe`aYZQZxtZx{k`ka^h\qckl^\l|u]`^YgfX[lhi]Zn`zataj]]^[b_~_bdiml}gph_[m^sie]xebjamhrn[^~TiZ]bjbmphaVpZo\_dZwu{dmuTUnpzXm`ZkhJ^efdd_Ra\`]VWnm^e|~`jYav[T`bnYbgifW\hikajespqfYbUh|gvjc`Z`QhilI\f`mfbo_j_kjcaYZNl^[ZsQuaTnugTlkVhhQR^x_jdg]fr~[gbsZnp[dgc[pW]hvog`hu\Qgb}`ddke~^YeqshXmNts{~oplmz^qH[ikk\tsnbrgdshwt^SY\H]`dhvcb\rfnq]m]^pUZiwX^PpbhU^}[sskhfUW`f[a\}Ypl]bapWnchic^ka]uNciu_kWefVlp`]ndfdk^fpegeyvj]q\shiiaxlevs^irl]ne`vjgeYclkReZjsdYYonep`btTzdwgSn\Y8Ubvj^fffsbfQlehYip^T`ZqdfbTd[hkV\e\fy|lijgT]xiT\[Ezpcp\ed^tdkV^cZl]whncdYudLY`ujbmcomWmU\^jj^xhh\cg\V^oZUdngcRhfytN\]]`lVfLYe^izpp_fUsSk^ldl\eifuFbhYZLYmotZmfmQYomdemaYO`^^WVXM]ecQizkla`_`TddaTJQ^t`^ePVx][oNo\uWqg\ugb]cZsa^bdvRdR]i_v`aj^qcWZ`rj^jbiin_vwxgRhl^d^wjn\_qmhw{gK[\sH[cSws^Oi\IZ^afq_Uukp\gw[nf`LP{i^w`dXSc_fsm{h]cPlX]xmRnojmJs\fqeczbevSmhbbRWUgdfrjvx`\b~wYe{mJz]nXYUd`p_pylbihUabgepZsm_TWupVacl|\a][UvyQ]XagvofFtluoTTv`_^lsin]t|TcYqQUjV[QOVWq\Uegk]m~akuxbOr^Voh|`ThgNpk_o[Ygqlt^_`NWswi\SYh_[fQpFbnqdYkYdj`eLf\pJtLnSfZdkl`lcO^Bm]r`UaypLqVijQqqjZWcpnu[sysd`jxdVi_xwojqaaa`swbl`\gfbkrunmufnK_goypvpmi[\^rYlkVxkphjdfoB{wfmN_cahfoxhf]Xc_|YYqYa`jcU`ffW\qoijkTYdiilx[bg]jzhT`X[smZGV^s^__dWli\nfi^r`wQk\itqY[ghWrrvUa_enxj``bol^b^j\hMhVotlhXccg_r`afX`ac~vbuhVXY^VQXvokUfghla\ticdgckehf}X[wfXcddVg``qYdmSffd^Ykr__t_j_^ZmcgdhU^vmW\_[ecm]]pqQm`akq\UlNu`Q`k\|Y]c^kjXaWmsXXdnkZgo\[XUgbhedX`dack]d|t_wk`mhjYmid[YWx|XYhcRpmid~wzPr}b`klcq`WnP]Z\Uuepim^lqotYc|fVL_m[^ZeUu{g\fgmWXeVtoYVdY}^fgmePyuEcVd]^ectahVjQlzloZQnkacXfjnQ\q[ijfc\ogTjfmlg^Xbe\^tOdVm[p|sngollpWhXgIeYYf^^bmUhd[iaCee\lhsi\gd\lIemqtvrlc_]gjh^v~s]HesnAn[rsdmo]mw]rubQng[pza}ipnXdFe_\jNVsVjToYf{bryoZmfcZvswge\dWbb]YfdlPq?_caWcikcjpjel`~eLti_]_Wtc[[[da_e^`fr}najkcq^glu[YhVwmXklQtinbftdZn^ed_\Z`|UIk_`e^k[S^z\cQZcsiejbNhVpYYtxeXbwPyufgi[rhm^Xsdj\tmzbgFgSgYaigH_y\cVbhngW`g8`bfzabalcmrJ`[XboKFctiVU[wgvgmjr\eQc{Hg|oY_`[c^g{sOh\U_]PfqeSXgatb\U\cqnbckUu][dlea\\}d\bg][hj~__elfhtZLeG{UTVV{`Z[hubQvX[hgxmvgfVmRfchTbSZhVlZLVFgb`ZfiHrD`\ionUi_YNVJgpp\`Z^XVRe`n]dUoUh_}}~UaocdO`kqgX^dlXZrugmn`mZ[[b^[aY\mzjdar~T{yjxafvav\Wf[ddc_]qicRtiopvf_r_cVahhw`PhvngcX\YZkSknScXjma[veZaif\rklX`pr`PytdmpmsfPZs[tPmft`mXfra{v\_Mcjyfqk[SRgrK\Qc\vSWebidgfWeVgc~\dsHuatWijQdYw[mVb`c`Z_ehiqdGTlqbmhRifciphQhYr~X]h`nZxhorhF}]qTYdTfhpZ^a^SocmZr[aZc^N_muqtwWlvia[\kGjmvZ_ZiljjoYhdpjybj\^EgyxjWOWloRT}Y^OW^ywhtk`f^rWZOjP~Ofpr\nsU]nn_fnucGPZkmrp{bdbMUhh^BnkPsob`gVjnW\~z_vZhVFFTmcDeqghoaivfqgp]T\`Veu]{eY^cjbfmUgYWh`pfZ`lcT`yMa\`mpxiWpbU\Xk\T`ibXt[]`XrNajcb_R^zGY{r]sVu^_z]ltkW^_eWgzlme\vud`igv]_^fooOiOgPa_YN\rUWyWljeoo^f_sfgdLZ`doamY]i^jgbt`Y[a_cWdumQnzlmicBn_[klRn^nU]Z^jdYd_cm[d[d^XYIKbPmdd`Spmf\rjs^neic_jWomZnogd^cekYmSndago~ar`]prU[gh`g`ggVof^UY`d`o`jZc[nYhqjkmulYYg^YeeagIbN[kmgocacU\vklMgiNeUz_UcnFhp`]oo\UbKTkdeqedgXijS|p~k`]mgwTrjdS`]W`Z~Usg{ahhWeRScgidMsm`fpSjpVZdxbRe\[_m`dnc\fa}bh]\kMOh{Xo]}|fqt^Qam_pu^eVadkscpfdoU{e`_Siaj]`dzknnWmaXs^riduRTnehbS_ums[\xja[`fjVQXXxiwgT|faumjazgdRxhZSwockssa[Xo\z]~ivogaR_u}gS`d_lolhgqSd^m[\iZcxpg{[SbS_reZlMoh\m_Rrv{O]\}^bn~Xc_jih[b[PZj|`g{m[uxi|rUcowrWhbk\beWv\xWq|]eXkUZjS~saW\fn]Z_^X_`czmZy`XVn[pdlciLOXkk]kogjWjd|xCtd{f^frgRb{sT}\b[zRjf{{c_[xo{agsbekchoVxg}]vknNg``^fvua[md]vuj}moqZQobbUYhpYNg[^WnvaYup`ia]s^ro_Pe]vio^hame~]]jorhrRjH{s[pVVRh`Bg`t\bmkg^hSXo[iwfkqvSqm_dkmocfYlHqsq`cXZbXhdaU]v]v]doeg]dfidhisL]h\}i[g^sWZhhW^el^apSgkt]i^Z`jl]ieiUmrXbanwYhpc__~_c]kTimpQ[guQu_l\YNkmi^h_we[vtlfuUIs\Y]yreoexX`jo]X^\nXlQr}d{eou`deOkgJaYdewe|Ou\ty[lxSSiera^{v~ei]kb[mY\aUp\dj|lSw\_kPd]Utrcj]mowhZgacVuX`eX`lSev[eroZiYWolkwZf\chn_[lypaV_V]ZsiaeqTihfigfl`mhW^uxlr{pqf_Zephikor]b]sZo`[XZpscmfgqc\u[\qa|`mdkxctfohbXgeocccj_[od|cb|Yff]ajdp~TkfRknfjb]Tk`faqil[foq[e]h^via^`^dzebk^ceh]efWu[spgv\hu\WU^nVhWjTdc\\_floegb^Zgks\cix^``W}^fc]wqfzfked_opbodtaWrfdbonk[`mQ\[~dlyjgUznsolemTfbTo`\[bamay`khnf]Yaj^]eYi_kjjl{ggf]_gg[g^^bh_ikZm``j][ZyldZldlyilduj[d\e]Sfx_h}`halsWjVpi`jr]ZkNPo]iWsc]G\\|LYXvc^jx\Xc]|XniXtofVZlkpeekk]mPeJVQdrdiUshwl\q[Tnd_jlVzRa^ebtkTbnseb`TpffZFzdYzglNVg[qulqrlr^Wgcp^r~gfeLljdgfcL_ifkThtyfcf\c\XjiSh^kc_n`obm`du^bnl`[awirgfy`jcbbe_Uvj`b|\`qVvp^Wf`ZheXSXcRnoR_Vliur^j[wmo]efXqreXa`ifU`hmzunQu^u|ftXdUya`bgzmkSO]auaZOpqfqlj]az`r[]qXocbUVTZ`GsVgyn\SoktTeClaZ^`Jbgdiaca~dgi]Oud]c]ec]Yn`q_Xb]r_rgdOTswZOr}\wk`z\rmeepfvuSc`IceOkkgoePRmX]Qscy[LfMdlggM]unbXdobk]gfSln\c[`HW}bXWZe^hoky_uyWnaPseWXfzdZgv\^mX[a_SVbyY\sifVpqpT\xvVwgeddt[jjj__TQqVg_tZWiwgM]VHeg[f]`agSmviWYiaOtpuzp]xchX^bqN\iSLg^tVih_feZd~^nxnfVn[tbVRk[IROK^S]ia^pvm]WWk_ghgkoWadpc_exHTwYSg^]df[hiqfcL]Nqmy][bVk]pw`cncTlN^kvkwe^ckX`[cPYpU_idz\`b]on|}VqpOqvWMiPw:Z_js\m^j_oYlbQeyp^~umnUXcSLgpd{wJ|kXdcfNj]dqsodaxeylneyncc_V^pZjikaVtVr`[mYhgcqjspbnOhTXQVsDsunmbhR^rjh]M]ac]]oMYkkdnp_gOji_IcvXb_[aT_e[bMgksf_f^xlZhi_}^kmbW|hf]xml{ceGnUqpdkagldvbesszr\|racfUXUlsoqnVxwPhYhp\g^`SkciceYleZtMh_Zeofkw]_gih]RVZ_\lnuMqWbRauoZhkwwj]ucs]nkakwnm]jddr_jmtfj\h\nnlU_bIjh{lfns]q`kgo_cdm[pZe]a^koQRfemmm_Q_ari\mqkmToWo[f\XaBcc{Y`yf~wwuigdxYr^`]dgTNY^jTTdnVgr^fgtHj\tdfkRekLoZp]GW_^pjg}m]iXHFp^dkikfWfhaXdmpg[dgYngsdWygjghj_eym`dZTl]n_UkYRbq^l_mTZShncYX_jXo_\hjK]ln[jhScceOmbusbh_[gkagWmejlh^ekmmjbV^kYrkfZzYaTW`YkY][oljpe`kumefxgcPsasTmsi@S^\dlXkSa_GmoeR{ehnjPassmTgLYL]kjekxc~KTShRv}a_d`_Ypj`gG|aNhwRawWiMtTbYqn\z}mzTw`}f`mppmyN]ahf^bTWKdaYYh]\xa^{g_jTUknpRaafab\fTFDfghVYikkbURSPU]q`}eea}g]f|n_mhlDp``OdR]qi^_jcPap}]bmEtN`oxo[kelvrP_qtshZ`GkPynP[\ptl:]Zknl\eaguqRje]^daohl___OXxbUXktiohitDOhagldki[e[qqqXdgO}s]OffejlaaM^\gaXndaedgvl]ldUpSYvXcree[wcf_r\jhaulftie_rakoeU\rzonrmeVMc_ncCO{ZchfXYtT_RlhgT[Zd\ndXlddUjWedOif_`bp^waUwTjboT|_aW[Ver|jkqbSl`Uhfah_X}`RhcWb_gaYV`\\gU}tseaZdiscWoP[^KgfZRsWaJTlevnj`bgod]aq]df_ev\sPocvqKaciKjab_]heTV{fWakaWebgk{]mlcfdUq_mfb\O_kdZfbjrScntdb[Ycf\^ioMdpkeS[\oapljll\pZgdX{skUXcXa`S\l_coYhmefqwl\`oao\NPp]HWlf}i_enebkQmck]aoaPU^dgaYaWh^catjmakdAfdQpUzc]ydWV^WjXZkhPg_vQxRW]jegkZranOtTxcQpdgif|]yyhzkecTb^Mci]WrZenSav\hrWpcl\atyVhch]jcxmlcZ}]txo]acaUthgXwl`gXbaa_vYd]zfWYmlhcj{[lYadjkylnn\[e|i[}VWr][uoVX[]E]cWvye[psdonKqixoGbV}RcbUm`M`rdjNgjwT`XVrboi`Un\Vgl\Zc^edofrur]\k^y`W]k|TcQw]Wyt~_\kZ_ae`kt]lv~hgdbcvanaj|]Vk_ZpfpfnV][dOZPfbgRbfYQdyhy\O_g\dnbmcb`d]dTauke_WawYaq[yaoqea_ngdm]WxygT^]|gh`c`Yokdhk[_ljaobk\p_`VugrcogiP]eaWubvWr\hPnf~ZhdZmakiaqca_fZoe]XcUakSdYiVxhhf\\md^`\d_pk_ayd]n]bpclhkWakV]T`vi\kXm^y_ZwwcQw]ZpgQiZdxeikcec_ela^`Zs_a`e]rugc|ZV\acVktW_Seejik_e_`edh^hffpNYjZ\ZZk[khfkca[GcdRl_qXqduaEUsnaX{u_PQYV^c]gag[cYqe_SdW{vQWkped_We\X\r]`mrhtka[vtIYlTcbz]cPvhhv[{dQw]Wdylc^w_bZwXUo]aZVaai`O`zgau`j[YSkbdjrbhf\enb]YvTTeY_kYrlq{tcklm_MnvZ{R[ftsyhb\l]m_iagkaoRYhvispnOpu_~Wh\h^di{\gzv`jb|iqwbRk\c\dPyaprVl\^Ys]]mvrzcop_Zfj\BioiuV_YfnaSJXfY`ck_ZrhqgjY[\cf]]svhd`bduxdc][^kVZc]yRoeK[[p_~h^^aNNd_lfYpt`b\Z_SbePgqeMkzcZX[uRp|`r`uMn__njn\]YuaWo_Ti]uQi]^]ibygsbK\ogd[QVnopR]?j[KUa]gRRW[njhdeciXX\eqRhorRW\mbNhQn_gb\fllW\cMQjX[\XYa\^rhleccbZqEjkWf^`k{[MnNiSGZPWk^jV_jnb\_`ZNZp_cg]cdN_UcfydXOte^o`ehfb^bYje_e\`fd_[gvMmY]dipfmfgkicunlWc^hVPdYp[aKaZmar[kj]`h`Rh\rpf`hjlfPbcYeaWum_ohfekZ]lS]YjaoWf}Zq]hEe\W^\ZfL\mRd^bLt`Hube`mlx\\^fj{c]i_je`]Yoeh_h`ecVnprfjS^jtew]TTxcM`aW\mcqKXKUO_~aUgaefd\ec^xvwi[ecZoqO}atq^V{]WjgRgh[dernuYd`vy]dZhbnQ`jngbtPykl{_hZ~e[ifbWrTmv^xsa~m\}ndmTDRcgdqjZIZkoI^t{Y`cpopr_vyleeaUcNQo~[bdpmhPagzZeXjWPXf^clbf`]lpbg{XOnNZu[l^_g[]ghqYQnrgkbptkdvf}tkxWesjoh_frnreQbj\gjp]}m`UclUgpT[\Mpm^]gjJl`cSSmXc`6YhrSc\`\vRSWkhD^dadReqc]_[\gWv[W^@r]w_Nri[d~pmkoN`\iYdKWR\csPXN^elapbaOX]etgdeZTgZ^]\b]IofOC^Ld^a`cfXw`]e\UgX^un[[c~XftTIe^`Vdra[bGqX^fZTapdU]JrWiZh~X_bgNYj_Ih_V^^yR`ZaSWizSJ\WmkudKeOTXe=iREogZSVqkUiW]]eQaiWaaagQmckf]PsmoYR[`TWl]wvse[YeMfeo]qvJxVandhSS\ekXV\^]SRNc}t[`S^aVNPZd`]Yn`gaxXaiYtmXdm]jfi_QwdmWUW\Zi[cxk__gadidjU_FXptb\PU{lPVchtbalMrhfjhWjeg^u`\Vq\[\NrkbWoy`mw~fsdmUaRc\WqTqPbcwltlUbmv[lj]jO]hoxtakQ_\ifcfa_pPoXr^pbWoSQSpgSAMqX[Rhqbb[TleSk`gUcdko_/kirryklqdp_bQdjbba\hkgTckQsMktQUpgcVo^rnZaTWfdw]\kk]p^VabYbkSiabb[Ubohtdflak[c]rY\_bh`Rg`jhgWo]cq^vwTne\j}sTkYVo_YnnhedPUba]gmht^zqOF\_r}gzjgcc[hppxneansairc]jzf[utqjUtmjdn}_[XwtYVs_wm]djhbsuW}dOLaybYZcekX]]\\XqXc`gbdfcob]f[jYgYegQlr_lodjZmhcxZ^lrVTh]]e[ii^_]hZ]OZ^nXybYl\Khnma~rwfVl^Qjceef`go_f[g^gMfVcc_oXedX`cdbacohbM\TabUfiwSw\airrdPgdnzgwlbaXzgkm`suSIfbVWnYilmVm\dci`g[ngefufrv]ijh_gdidk][sfmlddeYe^sUXbs`Vd^\y[Thoy`Zd|_`ppSjz^rZhr\WI`aXdXkuM`k^QBuo`]yjr`ksbXSpkaXS_hSgbe^jdXxmii\_Nx\bTk}f\e[fqreWo~tX_jiuhiJpjwqmnwRyadeusvVxbbU]f[f^[^[ivduYiflinTiR\ogV}\xgeooe\o_Z]WvY~coTpVdb`_UJ[ZPmT|Xs_wpd\_pkdUodujpfd^]lk_YsnghVdTirbM]jVorqsav]fe~T^ZS[sTUmhEe^pTxdTsYqkeq_ls]Toi~rM_jty^nrTyljZfoqgT_ha_rd^`sm`nqZZ^FqnttVTnggP]IKOShSZ,pojH`qfW_WfVGRVX]TviUsm\U[[bZVYmnSU|gWYbXhU`X`MeplpTf[hKcSPO|OhTXSdgeZvmxl^t\trA]fNInM^VgXi^nW^abg|]PYT[WUQcV[DSEE[RS]S^nScmSd``SUdnTjSbc[fQiSRbffZoj^FZi`bVzZ[XHfsbbdX\g\]mpZ`C]L{M`ofqdl`bj`KUTaXm[[eYk[kObf]\[}PLbe`O^nhLMQaxg`hgfmp^mPUW]]eNYDoX^Q\TSiw]\[kbqX\ofdLWk[deXW\ilSW_V]fjWNL}WdbgYbVmah\PwQQbfg^n]agZemV]TqicY`[dlk^OlWYpo~}|qigfiZqq[fZVfe\ac``sam_ggebmdsm^gQclkacgf`beYhYgqmu[kKhaXZtfikdVoklo`^aWoldglvkij_hcyeynbqe^ssuzghjZSd|ammZ]zp[_[i`ici[ZZlvmaUecuWf[jFIinprc]_Zjnh_^jneirqjXg]atlWofn[fkg^PoglXR\kUTm`cUThyV_g[^biibXebu\uug_tmX[jhfGh[wd`Wfn`k[}qpW^^XTSYfiu||l_elgsjWnw_fiZ\m_kap^unZcqgqnM[ixv`wDsd_hlmqRobte[Y}fkZkQUQvdVMacflPUwaIW`d`Tce^LQZchUy|T`PgthTgz~n[Nrja[qUWy^aWOWEohS\WwGQ`\ZY^|oii[ycThhOZgo_gjhUoW^fFqVdiXigQamjh{`Z\j`mc`VmXXVtvd|]vpM^lfqgRQjk[akrh`aPSVkCVdeyYcj[gpj^XVtYhtoYv[t^]t~\fvabb[d_ThPrjbl{dRpg^l_TSNuoXPcxaXQlf^S\b]|aUPYfQhjeCiq[fWOcEueQLb\jWY___lE`{d\PQLez[bRrWacnf\Z\bmjliikm;gKTZlM`yUci^of[cw\Z]dwHn_iVwskj\_fkh_xkqZgeaG[gna_dljV^^NjIkq~fg_LVjX]jinTYlXaTjcJSR}]mfc`s`t_]dRT~\JaT[ZpoX[bg`|[emcR`eggkefHb`iSSR{dUt\W\cfZcif_^WXVbZnkw_iptUzpblRKXXaW=sfekWdXMTberSYbVMrjc^\nihpSKjfYie^]{Vophs_Uj_~boegyelShk^VbV^npXcTcaeWcm]`fc\XogbyOY`dlh|g\mgfeaeRo\jn]`]~Ftijppna\ihliFmA}fmJirajkc\gd[drWbUtV_saylei]TfhrQk|s`_bSgbvfhehvd^lmyiahmkyzoog_jp\k_jggjbAdk]cKlhN`ejed\txd_^XZ`PhbjnbM_ZanP\snyj^fmqVgx^`m\tlf[h^V|odl~gWy`ceZc`^Z~haW\nro_t[t_jxuxTcjih[kgTr}mPWsmI]^oQVrQupnd]pbn`jl\psmr[[b]Yfmze[kolYhRpdcgftYezhoPQibf\muh~D^gntf}ySPcbfa_xzc[e`^URV^p[hne_dyacy[eyZlrjYbdcXfpYhWaanq\k[_^mQhukr`[WN{fmsoj}elaXw{[]bhdXpf_X[i|{id]lyc]QrSy``bR}iXfpcljhSRmqjjmvMemerVcpgtgpXhXdmUpoaUYqeo}XVmQpa_g]fkjZdnkpTRgPVbaqd^`{\hwh^Sz]lrnX^epgjvVWV\dpqvzc`~amquaupjpc^k\rjjpeocd^f^kwWjlThmhVqloY{Q[_kfievUo\txrtlnufb]vkqbtTe_QUsvdbhfoS^Xheb^YoinYyhbhm~LZk]ic`taPcfm_htefhqjddfvj[f]jlyhgwmiwxqgekfM[mubdg{nlmrVytkMfoj`Z_dxkm[md`P]V`{baum[gZnnXjoXks`[dkffsTNlZTZbY[`ulbcghrp_hM`^agjapnN[[\j}qeiwd^u^ii[SX\lnW\^[QhPtk]bm[qjlgXw`om^pUkhPYjLojUbRY\sprQ^X}YqRbenb^]egp^KTrfTLezm`t>V}iY`\wcmPmlfk\Q_xn^p^ISmbhZX^\dWVm_XXjmxkZSafpbjs\^\`cnXt^dyyZ`omnNRe`bwTdoilpmZ_ygd]VnelYiVojYp`UUZRk}epc`h`TsN[^|osfXZ`X[T[SdbnchRmMjm_|_rc\Q[mUnflnqrfda_lgnajx]Ge_wfmUsoc`_dn{_Zajgnu^O`iOa`^WYaecbtlgma\J\gdefl\`cgiNRdssfccgu]l[uh{lg{rZcZbBdlT`RXubjjmiTVUqWxj`ggWZ]PhozopT`_QePeIXgwK~agjmUY\p}TXpsSZomigo_Of[pqfoiQZh?oa_`mzrtJnsbkhfXmb]gSarPgcdbbaT[_cMjtVnia`cp|rcd_cevd\bQaVkinZhVjTjSnMfta^SshVVkl]m]]xZYvZjfYff`LoYlsd_nbbaWyonYjZq]mOrfW]eFZXYeO^UmgSag_]anKlV`bFvtkhi`[i]_LcbZk`wkRUo[Pepifri\^yeQghajjl[jnY\hifdgjmQbV[ri[~aebSZmWce[]Sr`bXhK[MKabd`Xnh^aWdfmS^[pVQrYck|i_^gg_ZVncdaPzxlcjMi]eV^~do\Ek_^tcQ_Ngdacn]nTXbZ^kd_Xbep[IQhqZ}xZvd`io]jdWk`UcnWsPV_pZXvVfsfVbbdd`myb_e^[l[YELtcZUfobT|V_xdbGU_V]WwZsK`PqQYMrjenbdN``nmNZedcpdZ^`jUNnXaw~VmW\]VqdXUgavvkq~kfWaaj]xvyTVcp]gm^y\hcs^irSXc]\UodTWbZ`[xjo_hr]gb`gjdkj]_kXcgjO_d|nwYrYla]e_kRWiV_b}UtZclcQW]a^t_kvQbXx]]rgk\]gltrlkbgl`^RdtT[eqkoYwoi]WeWkYgXkbfuZfv`\otahWr]WaadTql_gwYuV`p_ilmdf}tIsi{jcj]Rpae\mPwbgLVtk`amW]q\Wglh{TvgrSui^icgeZg]]Vnmc]eyjktiehc_X^hfipve[ZihalpaW\f_ylZcn]Ncjfb_XmXZTpcj[afZbpal|``qc|adhZ`[[kbNZUhjrbfpgzcoOiozdnX|_SregmkZZoiiwckOk]]maUl{[j^]sZvgTe_od]aZ~dlje^fgOJ\a`V\e`hma`_[nin}glZnwnreV`VM]]o`tqVhac]\Yx`ub|ceVbrgoSqgyodV`YQghhwUa``vXonWMjdOiowXap^ijYW}colg_pnx^pTcpeaa}R\Z^\juTU^cU`dshsGRmof^sh]bfa_bQ^bbVyNT]fSrh\]tc_s__dv^ym\o\Yhm`^Nlqt`uogl^knb[{bkl[][^Oc~ZWacRc]em[caYi`l^gnHyaa`mjX\itVanlXKURbnfwRbu`b_AZsb~ivaXQK[NbX[Xgtc|bgMYgbkVNh]nZ[uNknmYiuuQ^VtOi[Vf}]rWz\VV\a`wLyt{wUbfdyuFF^cp]kNU_[\efKJWanXn_NkXslsf\WqUX`g_mYxTjazl{gjSTgVug\ee[^^aNYcmk[Yh]fYaSNXYUgaNWY\bfUmei^s]ZNR\Os\bAh_|SuKiuaTe{l`g]Xkit|kf_R]^Qotlbm^FZleYmVlPmaV}baV^{SUbnbf\gU]seX[hoRbt`ZXrshVX{ey[ZST]oj_nc^`jRcWlbaoXPcMzp|]t[g[Zp_wkUk\infmzqcWeZtb^fqnY^v_JQtvncr\jkmZjdbinqlO`iTJpftIcdYX\JNTmYh_rZNmaWObd`doaV\YQ{p_j]\Yd^dftQ`gofja_g^Oj{hW^Z^mhqVYfh\lnmiUinwnm\\luuSqWqSkoWPo]\wMq|tge[mUovmqcMdfmvRYvejUmzkhdbmevXhZog[WeQYvem_}jmg]rZcblbbkioayZiZgZmgoNiYsWuun[\ZQjmf^\^Pe^d]RoR\Vtzah^lVgiu~mkl[aryb\qoe\w^ckmnnmh]UYo`^hdJm[bdp\fg`oN_ugggZ[aY}h}|eS`F_Zo^sldarYu[[My_Y\lga^nciY|njtips\o\adkfeq\ndoZeiqpmbMjfbavocabhiUbl`k[zfyeqa]bcbj]Xbgji`fXvpnmbdmzQU{~j^daazedXoV^diffkhSK[gQaSgbq`snmfmmo_npkisr[elurp[lkXc]gadbq\^cNQzRjpvWn\c\h[[RcdifcyVe_d_ngn`zaojWitXVRbdit\ehYgrqeWVdahZpjUqdebcieUa`eqqal{[S_eQejkc^fkbfm_[ne^bdiyZjpb`aWZdwMja^rdinzVwTg]ZS`uhZ_ithlnQanvn[kV]OlE^jXn[`Wbr~Xoj\\VXe[i[lqjXcchY=siXR^nnxnzhhJSX[Zmhikjk\TjlbeXcrl]jxhWYf^dbhT|Ql[ytoofVps@wj`dHefUoiQ\YtV__pghYugmhiS^gnZPi`ycjpnjeheeUnxX\N_\R_hf_bV^ef\ifEgShNsnkr\Yhdeua|^qecQiU~[V~{ber}|rUeur^Rde]_dpedqgqrsYdefKfqm`a\usgoegng[nyjuj^enVV\rVvFOZy{YWbZ}oemUjmos_[Uid^zrcn\gpuPdhe[pgJzbUjqtzs^^Ypubglpnm[ZVgY^P]xod]s^iaacTpibmaYX]c^t[d\vmh_k\R__\|nYfZl^qgUfWe_bb^VrTnU_bZdgZev[`{thwzjw`apz^k``d]ey|mbldjtfz[rXly]gWqMY]qbyiqciu`badXgXtptgXU[[phYph`cg_cTWivfawiobsWXhhsJ\VwxeZZo_dmmnDWngp_elYl]fnx]dmXaJ``bgZ}Uul]dX\\twlj|dedWuexdLk^ga{fa_oGhb`[aumRle^|[ZnXoYjsrV`jtfXyLkd[nnshabp]jrlJdd_WmifbWrj`trVgqTnZV\niPo_~bUYVp[jinebWisg_ouKoYkUpuRbe]^RPYjb^RvI_jfR\gfncai`epgi_g^d_npV_wi`pS{{vjddf_]Z]^mo\TceFVhw^YhaafjwjMf~]m]lpcfq[seUl^oWjokRxZYgjs\]d`cbW\xPSljcjUWnjmsd`DguWZ[m]bkPpLXogmMiktCcO]]j^SU^]eJojfiVddX]TcUR]n[kSlczWwpohYg^}[PThckaSfhYi[ch`]gfl_ZlP^b\mXhSfvc[mu^oag`sNHgn`tu[b_qul~lnqmrupghUT}_\`]gs__g^ceh}lt_db]iWq{\[d[gf\VauUx^_`ea_l]j]qeQgxchn|bmmdTV\[cXm`XWy]N{ilo^\tObfdY`iad`fy{fcgqgeu]xacuen`cfmMYblRnli[_is`hkae{lVnhlqfr_gaa\c^atbctkUifqK]QTeYxkirk[zmd\_\[Ziu\^xuStKg_[Tyczh\mjr^X_bjlc`Vm`k\gqohl^SG\[Xd]VsvpXae]|S^k^ZYl[}iYSfb\Wnd_eAeNWjoqeinvaqdaiPiYga_KS`X^kl\hw\_Z]Zll}wTVhUrT]nQoui`VFfbmff_m\zVlxQXb^oqaYgqcS^gS^|QgqSqdYmd^Wb]{tohacsyk{iV[mdcwd[^NXii`bvptscDkk[]tncl\dfl[gk]oKk\z_gU`_aw[S\\^faq^gX\}lfudmQebx[UWxa_qgNkO^fpa`F\TkrVTqXseUV_wGknhlB^oY^fmbTGt`LfXkqsYYTYbcpUobnWabb_e]SaY?vZT]ovcqmcc\RI\pedvdjgbe`St]k_cqh\DYQgsUc`ciWT`aZRohjQnn^_ahQ^oePe|uubXfRdpy]uXtW[nowpcoac[Zea^bblhogi^lgWl~cpmkTXbTRpNvfvWa^ci_]^QRrksleW\g~cg_WZV~ZuX^y\wfobMWMS_cZQi\V\n_lPa]y~dnyYhYOv]YbNpdb]i]ca\nLsXi_W_chWUqehiej|XdhWDaronei[foWdpkmbTdizmnV`ig]nFtsZRYebGvi]q]rpjqFSWl^itWXaza\fJcU[alV]aRfcUp\jxJsV^f_aV`p~nvfMS`Rvm[``lb_[JW\PadagV^cgopX[_Ukn[vb]\`peq[\xnQaZ]a_n[\_sH[Urcfh_pk^_qfZoahjUukjkWhgr_S[i`dVddqcdk`Zg}YWZfx^`XMXoi[[UZqV}|bsJ]nkaceeXgL~irRntRMYnaY{NhHzO\h_Mk~zeytWSYh_fuaYhBYuN{_UeXNr`XoN]dcYuxeXyrpb\YSvWdUlNaPva]bVif[rv`Ac[rPjt]k_XLjhxR^eepuobQNDnf\hM_Wbpm[r_Zlbpduj[rbmjah``O[Z`Qd^JR^]Z}][npk\`uKj_hUZbXSe]Zip^XGhv`o}rWp[hUkSeYikmRiXjdteeYJ^UTrThAje`a]WMaago`YfNZbc_vvZs}doNeY_bKGbc^bdxkRVkXpOiifaRyfb[dhOa[mi`f]^bdnZihd_\jeV[cy~^R`VPyd^^l\T^|]avplhmCqSeUi?ccJO[`X\[}]`kaa]zaw`m]eh}a{fZ_ljlbeYO|SfbjcqhUanek_WYrhRibOjY`E}x`IvXpuaQyopVoTncTYVbuaokd{gl}~Dkhg|cKf[{YNvkXqngJZjJVVh\h|\t[tZ[`W\TlcXhpUUIgdVOv_re`aeu\mb[]kl\xoIRUfRZR`r`dhT_lf_`fVbKgb}d~myZtf[WWgZbOrnJaVgZ]XhdrWcb`Zsq_\uczpnhh_gd\Mleox_iN`ePqfmUWfXPtVlR]Xw?v^myWp^hYZ^{cwkZmDLgl^gYcYLmlehZjfDi^vXWnhY[YP[dqgue`nm]^ZLkdezt`Z\TkpSx^xWrLNmgKdnx{R`_^XHZ^\Vlh`vN_l^Za`Hd_g^H\dqdz~YjWc^`amJ[bOeud_GnJXMkjaUWb]KhpvqahMQXsbcMU}Kcv_q{j_UmOnejQfdXVZcUsXVR\V|PzSZjS\]`cZK~giSY\ms|^dncUB\_[Ni]\`kL~_sei^RhZyJdkCd_XdVud_hW[Qz^Fn_^a_hOmn[~teaXT|c^yfaqJUO\sabdj_g[fnqTL]lnkOi]uZenXvdUApkrjX-UJY[QGQm]lf[cufsSUfa]j{dNj_\mg[cdu`E``_Zh^`eFgTZh]_IpyZi`Woagsj`Xszs\M`Yc`UkPd\SUpVSe^bS`~quX_XqdgbTc[skLespfSudiZejdLR]\Vz[qc\Jmm`k\RsmARXjjalaY\KQ}XU]]oQY]pNVbXbT`EY]]Id[yhqgGWVfiZkJdbWjbbqiZ\g\OapXqhD{dfe[WvSqkb[KU\KlZo]d|hb[F}X_eci]^Um^lwheB^Hymh_naQnVyeUca[[ih[pddf`Z[bXMtwPjU^gF]cWjhaNkiZcncycq]jr][h|nY}_YhbTdz^aeaebe`acsjjj]}tjgqcnboi]`fjdasXUdkbYbkijek_jtXiqZgueW}zd}ydvgtpqwYorWcgg^cilh]pfcealTK`Ui}leuo`k`^VVk^abakBmf]xjXujanCW\`kabdigp_ijoWyaca[l^lmfa`TX\xq`]d^Pcf^j_XmmvoY[WhscTdRs`foOYZdkopehgpnU_bXd_otZhzkVPcxdueX`sx]ZiniakU^qies_ncn_xtgqSo~jhcdltn]fnpkqgfb{q\bviaWp`Tfer^b_pwS{jbSfSbXdbQ`hoO{Y|o[cal[^u_\Xj]VeXg_^dg]_lbrb[fa~]eceYcbJig`zqT`hNgZTnoXW]sUM[_b`|honbP\adYmdhu_^hezdeeha`bcqSgbvkQXb_fOoZl\q]VbTOiTr_X[_caX`YVRhzd]`YXu[gT^jgL_im[_fpfnfhktoY]m^gi]^haffdbmasfjayguhsYZax\cfm{jRntgsUf\}``cmm[cpsqYjY`WfujWbmMebntwni}c]mixfh^fXjld}u[]g]`Gdanb`hZcXknmslafjV[j_Yj^aWxfimlj[iQ]nkbd`fXVb\_ZaTltNX6WSa\he^_^VSoJgWjRlsanT`_gio`eZ_R`b_[][WS^_mLk\XlechejNKXQeV\^EYcmZYB|rk^meOsrOwZZZSeD]afgeu]con\Qf^mCcW\AigYSVm|Wbscc_jwPO_X{no\\QYjlqedQdUYafejVWBPd_gRVXabVU`]\WaTlPVjc[m`GSZ}xejzbZHV^a_]t_[X]S_kb`wtX_U[ubOXeYWIXiuet_gqagnYktipodrAv]`UZR]\bYfcxoMs]he^XggOXUI`^_aM_`lbHTPRWckqZ`^RhhdbhV`ZalWe^GR`\QfrNXlbdc[i^sdFj^vSYX^V]kUTbeziuTj_wlwf_lgtmcZe_dngYd^[]hfNVe[Vg__f^cn`vf^niikgpfeepgdtp]ya_fmUZt^agbqOvi]_M]cdeib[kUft\iech\aSh\zO]hfMpanomigfgbg\\acenO[fei{`mejjidq``yge`qhmkamYihd]qidjppfHvphjZ^SefWpcinhhlh|eXgk^Zk^vcd]{n\j|`iaxgucb`]^ilaRosacsvaYUmghXgbwUp_ZSac|eatZqni`ljjT^qc^qm^duq`nfhj]YhiZpvxlplcmaeb_lgom[`[_yrcimkkfqbcXpjsjtPevk]gcp_nXcmjbUtzekOv^mdobcdNtmgfs]^`y[j[wY^X`kbbYa[cnhp{nesc^R_icNTk]fdflb]T_Y\gdaV[sg_cfygy]ecacflVsfcb_thX`do\eSu\atofglcl]ew`[aebr_V_j]fnZncjnihf}jyZZy[jV[s|cx\kafsjWrlaU\_eXRtgof``gimkWbwji[`xejJ^b]rjoWo`jmX]wh[]\R[^ee_gSidzUijj]ex`eeUWkamrnplZz`qZgiqrx^dcpgcb^ha[fkZVdiize[it]hpvs[hcnff]\_ijKxeidgsozciR_k_mfjl|ylnfr_hkliZhkcn[pneZjaftfaznOqxoY]a_euongdjk^kdeadmbU|tr`k`T`[ZyUcu]WqnoW^n`wYgacTaboZ`fl]ruba\]c]eY_udghYvTammU\nodjeaXgf`l`VmyXhnlqh_l_{LYq^puspgliqj\e\\Nm`o{_]oY_ki\_i~gam_ecPzX_Id`eb~k`Z[\\~pe_uahlhm]TnatXRsdp~xMm\T`ggorP_y^hjd`vm`VrU\~j_hyfo]xdkddchi^fmebnlY\Rcpmei]zz]repdflm^m_bpYja|^pcyxgEiZ\eXxZsYbc^bkbr__h`fh`cYrfomia_bg~ct]]rgcbcavggjhdaqb^scm_v[v]n|nFlmaacmfSd^pnhweqXn]k\i_`dcpni[grZW_c\^mfaIwmUdeoobk_bj_mqefsoeaaV]`uhhY]QomXr[ipf`gcQv~[qnnmgfks\tnQ^gt`cg^ldjVpge\[fUpd[__W]_nnd_fxWbinXdqK|hejUeR|umi_gWdrbnifa^uvp~lfi|]jflgfk_[denXkhhdj^veme_jYegymmSUeVmkvXqbzWldoiequXmUlgkhm_Ugp[n\aiw{bW}tYontfx_Whilacd]sYgh`rinx[n^rlTqv|~Tg_Yqy_^_][RaiZbqQ^qffUkg_ddsZgaavx_jlZX^lwOjooe_q[TmkU][Yn`[o|jRMqVbpQ`k]qt`WaktdN_`Pe]gm\`y`nh`idXtjp_Zy`eujcervkeef_k\^]bevhl^smZZujqY`jkoj\kVvtWx[jw_sdj[clorYkmUdTpmTwrmo_]jelvzZpr_WdprkewR[c]pibg_kbmfnij_[fjenvkFeetavaf|]fghsrtejmwpdioilper]pkh6_\lcg_wfhpSZncdnlj]ukX^vahb\wroekwnjiyezpcZ|sdghf_`foXS`tehgmZcqnsZ]Uibdl`e_sS]l^Vrkp^ns^zm[k^`_ppZa\a]hU_^wbhrlgXZ]hjj^Zjjfsijg_o[cRklo^odcg_^[]_h[i_Yjpummf[nZhbu_dffg^[_egx^iqy~deZkdk_djaoh`^Ztblfk\llaWo`damas^c`hbi[b_dku}o_dpYYm`kfZh^^Rej`sTtgkoidlii^bkcqU_norcllijvxjpac]dwhsxuqea_Wd]ht^b]WddU`gRYzbgrs`igZb^[rehkWXj`sj_th^g]tTjg_w[N^eeSaip[iRZjh`^\iWh{rdYcjlW]ZrrpiWedab`h~VW_dW^p[aQvlkJbQvctkegclum`ttUphdc`ui^zcRampYfrkRdekdRZrsqqo_jfgwW^][fqcghbnfhmSod_u[ladwe`c]gscfk^QX`lr_df`hntR`lh{Qk`a]gTNkeerh]rch[rmcZx^[Xrc`[`[kfdo[fqndu|alf`XhcZ`]bY[`pYOahVnsTyne[ygbokb\hptg]ly_kbnmi]]^brct{`YhovkjqochacnvU\_Ukwjsk`][Xchk[cZ\n[qlbxtybetzpsjref]k^S\gbpfe`eh\gvkehpn`Yhilrifpfnegrl]fbltbhcapqw_]hcM]x{aeiclljZf]a]or[zridis`o_ZfZehlllido\ebx[k[u[Zgh_szlgjtelZln[|kSpY_RzR[hqk_Qdgoq^dghbq^`_Ybc`phhlV[eZlm^]ybN~t_LkgsayfM_iSXhhtQwi}bnuf[NtqqTiekVhJ\^jW]jc_m}k|zbwklouqdfxhug~qoxwjv`am_zuP]dehseekq`xop]hghMeYjpm`n`W`xuPcvpX_ZXo`^lUzmbn\wjjtVhdpch_^ijv\yol_hbug_ljmmb^mqhXFakiscbce[cqSa`ho`lTw}ntqWV`[tZ^]rebrre\UU_^gjg}lgnz~yaPamYjQqpc`j_biVp_i`nnWPZo_^oxackPZbjkpZThLb[Wkcbt]mlfzta]hclwfVef^T[hh~jbcali_]iqcu\`kbYX^cn_ySbl_`w_igaeuWscdgo|lj[^_dwdoqckZldhlcdihdmXQ_gbrjTcq_[feogamdsrsdv{bYZglmmgN_fccZOqk{`q}gVfrao`fRa^lb_rxo\`cnctd\jVlc^q]jc`Ynggu[icp`}pqv[jp_UglsblfgoguxVkbnb~fd^S]lbe^Zjf`q]cwancRSWd_[^[k`jbmjmridY\[efYho\rhfi`|ofdbqv^cZcwnw`^haRocgRcdooVirp`eXrokc_qpbpkkkWiend]k[`{Z{xjtUzWkYaYcobotsisjmZm`Zmaef^jrkxe]h_dapXd`oki_@O`afZhoVXg_uyemg\m[fvYYborvi`x`q`djoO_hbgqnefqd`^aqgUwx_q[lpl\clsq_ktv[\cscdpecifUi]bVbq^ajrbVidhiq_fc[tr_RZn^aijNm_hoey\o~le`j_d}iud{c]fmms^p_bTmtY^OpkhpYaVcb_qWdivomcOnwsejcg^xy`uS\g^v_UgTc}kanSo~br]xp\m|dlfZf_z|jgXbmocqZqddhknhqelmp`Qn]\kwmcrcfl^sihdceche{ae_bnXl_vvie[q\^fqg^ui~vihmw}lmzdTbkr[lqfxbj][_{qqlb[jpdt^aftle^vjkgSback_czbkfg]`}OVtYpf_kd^q]XtkQiQfj^U|iVljXddbj_Sre`lhd}]arjdfanpknz\fkj^igcaweZ_eq\Nv[\Rkeru_UWbe`]fwiaM^eczcfphgb]muU_ZXXhw_i[nWpZuN_t]Vuqn\bd_`lkkXk``oQvmjd{ZlaVYowehd\na[}hVNvYZfbslM\b[psTzXjTv_fbkXVb^U_hYWnW]b`]dvRhOlOf]gMa`^le]dXtkqlSVYybcZphnhhnc}Ir\Lbjim_dZfgcuoZcQhs[Ueecnhgiesr\Tldnvdqdd[aWqaS_c\mizd\v`cbYbfjomedcWinijj_e`dbeM]nvakb`wgpOcxpkcefhgOcg[cvs`~p_c{dX~QXaovfdXUu\VhysYkpYUq_z\Ngz[bfWisXW}en^fU```]nv~lsjl\u}t^xjhgfhdi[~jNshhYcgLja`qf]gg`RldpbkdYhjwdefi^pkef[hioXl~`aWv\`^`]fic[YgacT`Tig^fX^i\bRbXWeqVYdckgXczd`kio|\[ij}O_t\|g^N_VPasaSi`sps}[\pffh^jaczTrk^bembzdiwli}\ooYm\drJqkdelllmdTrllqXi|tpqdTZySgn`o_z]yseMiZja]tV`Xdlmmmul^po{sxhbjaicjohutoT^eveb{juvlXch\u]s_fTrQfZPa]ZRfis_]liktdtc\lmTldUgihnfc_tuna]c\clT{g]^aqfe]onqMdqs[qlXhd\miwgkli\meahio\Kwr_frgZo_mnyyfgsfiWqbpPn`i^ZnlcU~Xakb[Wisl_jjyscHrb}P`WY\ci]ZauPm^geg[b\fQjgyHrlwkRg@fmn`bb~tlagmjwnYffPlTbc_haqgaieunX_wmh`[tapHhZYxhWemRea`pV^_VsgRfRO^bd]Xb[egq^WrjgYZblgc_KdbQS\oV]ffsj_r\spo\fceV\f`jeVWUnUc\bgY_mkpm`qe_VdaglYgWc\h}VJwa[ka^aktwNka[z^`_HRgp^cVnWsiDsuZZPgz[ur`a`s{c\mne{yhfVlW^QcigTnS`Zilk]V[flSb\a^]WUX[xjv`tZ|bb`m]iurhZjdrb^[tX`Tdbl\caQX[Cdr^Rg`T[vwcbcUrfPjbMcjmst\cQ_nQqoZfa[HNs_\o]fitvKWrykxSdlVq_[_[rc`SWQ]b[`gr}a{nsW[gnXsi|TNbf`Rwhoc]bUgkcdUaH^rxcOPuTffTXhgXqPpg[\p\t\z^`vXZtobkOjqc_jatlfW]rqeLYh_ckZjkXhJp_faqdtxS]dxwcmhhijg\lo[lJ]gVd`fmmQfen_^ceiQbh`ow^}T_bmmnhfe^qkWcwjmoig\e\de[cr?`Q^jUlY_oSlW^emZclmhfXmjjacgc}msUolVdhRn_`qu`Ti\Xbf`zbkZiVabdqtela__kveZPbrk_xcnjeY_^c]bi\_^gojcY`ap[ecVgnpg]dshbYdkeqm[dX]kXOKU\wYcu^ejqtolr][m`P^WQThVe{sh_uTZcVghm}ijjxX`iiRVdRglkZ`\~ph[ea{xi`kcdL\]igLo\[F`Yjivaafm_leb^_Rh}ixZ]guetkadbkq[fYfoWegwnuySge\sZRt`S]lpaaiXoRk`cV|Ukqk`bV[onVdcqgldgqhu]_Z\Qdo]u[m]di]QmmubZgKbhgcbxabfvg|pma]^[YUt`Qfeprmqg[mzd`ujhXcQZbaif^galmhZWabY]Zo{\OjeXh`^bkefqhPgY_fgcneuVV]cnopnle`fQdjp\a[n]goXoZosQ|ik]gTmUkEfqgc`Zx[lvg\s]eh]W_em`\p{ipsW`h]g_]Viiambjmjib~dyfV{hc[x^c\kplZnvctuXRdZpf[_rhiYRuik^fPV^dom^hHlkikoakvfWd`eftkcekb]gTMs^afy_fngotalgdq\\ghUeo]|j[vhm`eitkNb[Qf^f\Tj}XjtZafe]dukf^{aoZw\[YZeprb\g_UT}}XmYjXlhs]jkWvNfk_Oa[fpPfbv^N\a]Ywhf`WVmtVg^Mk^sgmk^mRZO\RVjqOlecjeV`n]`li|jhg]Zeubmqd]Vgh^bY_SaPfy]ya`Qe|n_e`g]dm[jfiaWl_bl_xgopQ~^ctTXwhbn^]cg`cmam]UmYo^_^Yc`Sspda_w_Sem|g[^^emsVV]eazgm\rUlrWm\\ou\ehwfWrg`_`ld`dcSjHlqeZiabn]^jlkbmKhaga[re`n\RjbuMj\o[WdoQP`\^ezka\PWdknzXhiNWjasnneRYfXf[rcS`u\yZ[cgh[vNldqYgPfl\c`ettwUldclapzfwPmYQs\|qq{iWseUQmem^qfoOTjVa`]QXfodeVbZtce`haf`e]`aY|_nsQ~UjlkkgZdWVh\QU{hiW]n]}FUv\^^pthb^Yi_s_pxi`hHfd^]Zq]ua`blavsP{Pihmd\h`e^J^hdgmS[{Xe`r^q~]rZfi^\_qvhqxZZp_unh^|VYn\tYuk]pgcnbt|vdkatG`ccYl\YVhSjod_X~jl^jrVhqNjhscqU\veZypj_p`[rcfhqi|mt{\cfl{fisk]qtfmP[mgvfY`vevSztgXUvmk_lmcnxieh\cpcdZ[`gZwcjga]gdjospXhj^warZ[afcefoi[`XbmS~wvdei`_aZh^gU\_K_nh{ozd[f\T}n_`qoqXL[if`]jzTgmqatnyiR__ibo[ef\SnfjtuehemcZd`e_]Q\vip^ZpemcwpX_lstlZ[imdj^jk_Xljihif]`\\dnvY[uUgj\X_gSs__f]e_qXea[ovpd]\ngR}Z]iqgl\Ys\dgnWZckhdpYaZ`awcdmo^{ikT^c]b\ixc^Uwaqkn_hdosrdaUjqhYpdYi}\ihkfjZkstisaQki]h[ZpbYdcfSiRvooiqxdhu`Znkp_ohb_a]_bqwhddgazZY_\hlV^g_ufz]UtfYwSlbgp|WZjfX_f[s`[antiktc`Pate_Fl`[gv`wcvfnon~i_opZcnmnnbido_ue^[`sh_tUuU`on]d`u]a]`gj^ZhVu^a]zheo]eYWmUmdW`]`]hav^ffcjgvajvhhduavZfcpfrdgeZYhemc\laboe~l\Uavj{Vhe_dsaXV^^yUY`^wShmUdZcod[ph`smhjcV^c|ksQVPW[lumjaY`}m^o`\X]tlrhmhhe^z^]ubTqWneleZRWp]hakdg`a\ZhacRctiegrsk`fcgla\Rfol_tqgn^e]bdmIbljl]~lzX^\chcenqv\UThel]yl[m_\Y}jgaS\gou\xrWzklosTejcV]hrssqdbfcx|ggfkmxdcSfomv^`b[HyT{^ehc\xdex^jVxlekas\b_ed[Mo[djicyorjoqkaaxVj`QjQ_Wgvovwul^ujkinqucj|ZV^jm_h][SrZ]l\Ww[Ze[`dfhNTlGhka]pwZncYo[eYycXbffTaeeedz[dl[R^\emjb]pHat~fRgXakZjeWr^ZYYgg^{hTyiYRN}vcX]fWovhackdc^b]paehXJllhRW`d^kgztoxclohe`vXYdchu[maX[tXkcWkV]_jR~Y]nco]hlwkhfVUsmnNsixdkTm_`YazZ[tSek^\X]cv_e]^`_l^[hZmczR`]]``ddaijgfl_b`eVrmeZo]gmoNS^RLdbnaN]j`][p]]hWqYt`hb_izhVla\wVcj{hsghfZfkdlj|etdgdYkNjT]jnfwrXib[oVZvdhknTR^k[ct_\]dUe[ppgiXhgwboQUd]dcZjY|\KzwccmUH_uaTkqZjg_n_g^lgp`dgaWexagcghhlliYpm}c\pZakh_bjeshrvfwoj\`ljepaSjragidlxgf_jqxanil\pox_^X]r_hhlkgMoZe`kTe`[SankJbd{ukqmrh`lYen^l_heyqilriTkrlX[erkpdplcee_SVdscypepkafjaixeZraa}kY^e]h`_{enmRluammn_]pjktlggffkZ\dfaymlbW_g[ap^jicKocnbXp_j^fhfm[vpkivjnfaeaYi~kh^hnpqi}Vegje_XdVfpzhcb`coxfbqedVmhp]xfTi_O]ZqZv^crRORb`tjeQy^qK]iaZ`ax`Zs_MqgaLRvjHWzfObiT_ffp`^jc[\\`_jpg_roeahpzVfTf\SUXkq|lVfem[nK``[`aKoTTawdShpelXjohccfqjqmW][\]Ot[ce]nyeMkdq_Zrmh[rT\xp`bmTbQUV^Orlefzc_ybXUghcchysaTmY^daop[[yqdfhp\cboN[mwu^ddfleshiedxzbfkd~qjrrpc\pWiruoquVka|uY`bkaf`pidoZ{Ua^caywg[`RboqLikpdo^`eYa[kndO\Vix|cTg^l\n`eMarpK|y^vf^chffk]_hafdd]ZxfObT]Ql_w[]VvWncSzuhxmtvbeekSZoVhXf_c[hg[piebudk`nfgdlogcdOV[weWdef[cc[b_Y`Kfpaeemgp[W_kcaZNiTj[Z_faljg_[_ZcxOWcKckc_Yq^^cW\_]taGX`po`t]ZjZhlrc^frj`ddw\kqcknVgiv\^d`]U`inXi`tOnibf[flph\{WtVii`JlUo}bgdh[_\[`XSql]bf]`T][vranmaXkaicR]`t\kam`rcZ`vn[ciggblydYdc^_Ubb`\piTrwN~]bph^S[gak\U\kWeji]cu[erxpWae\labv}ceohU\YocWxby_ckvfSme[Vx]oxY\lv]eT^ngfn[\jajfgqg|\dwg^d[lVmapnpdqeYeYigs{n`hc`cviopMzm]}]jYkcmaXcjadrksjk^YPaa^jQXpddXd\s^faaWgjphmtg\`\se_afmckiXjZa[dnra^clYua\_h[ena^jz[``crjk_aZdYWxLdc[d^`agnt[z^_hg`a}_^dc^wm[ssd_[O]pmncsd[a\fheembf`Vwgmn[wuluXea`e]kWQcuUea[\ejvb}hhmaVjVben[p]j]]R{VW^vry^]khZe~c`OM|jsGdbm_V]aalmzz{url`d___Wbl\t[e\ZtuzhngiclqsahdSYeaejeke]]}o_prj\ufbTWkldhxaKrptjygoYk\efUS`UYqfjpu`pXwdmWlnQomWiXdpagvojagPlpKihLv^q]xo[~QTYqRpm\fnkvowp`mimltgiXs~`Udpb`dYnqWUYhfebKpdgO_YVm\NRmugpuWiZgySlZfitWcgqwrH^Q^}VayYjyO]lsq]lY[`jMqn^onebfxanTSei^UZWXl\sqadXadXjUlZ_bawcM`Wgalo?XmZnt`wje]_Tf\_~ZhZ^k_mg_T`h^chUwdWYgX_bniQVTfm\Tr[afXoh]^P\aiNf^ZZg{Z\isbWXQdmObdpev^_a\daeNmsh[lmahX^cn]]_aVYmhkfRacbnabUYq[cbclvqlV~^jKkfLbiUYbxZfwgWftd[XrPYbcpbXxWTb|P~lhppbeb^}ruM|dX`j^wqyXh\X]o^gLfiaPuVajeOUg`hhs[`YdXjcubkfW]UZeJ[ejXjZsVuRg_Uu\o`^Tc[c\qVYh`WLZafkj\esdl\p\cfdf_gnjr\aVtTu}hXlYdjgaYok_Uvu^Y^iplfHhm`lg^lms~^nq]n[RR\U[^ohQX`jnxcregTmPxiTZUfeed[c]fx^U_uVyWYXnd`ae]bY[s`]fcVZikkeh]ZmtYlRql]XrVe|bRSkaefZm_\Xa[Y[eelZXr^_mQpzhe]q_[tPoabW]bWL]YO{Zoel^_qfaeMaOpt`Shojn[dPqk^_ccQ]Zj{X\[d`]Y`{ImodXhWrhgjbZkq`^fPX^aewslzgXwR\R`\WVWQiXbe^ooe`fWxf`gem`Qvjkdndx[tbYPanQ_QdS`Y]Zm_Sqkdu~Tl`geuWjUmoW^claR_godZ.leiy_\ifbbdUiikSx|QYkgloxT]ubiUQ}raYhed{XV^vpa`miY[lXYgdZb^[TaPb}ZcXYagaxVlh[Jigckball^E\YZS|kfQoc]b]_WPj[pee[vfus`f^e`kgEorgxZXcbf^We^iY{fsX\b|iwbnck|v_nRWgiWTcrJdb\]So_WY^lvTw`\wbsdV}^WZPgoUXP`eIL\ufjzgQeVwb_bUkadZcwkTki`gWYS]TX]_a{fZ[_ZUt}Nu]ox\SuOR\tZf[Wkg`jdT\akcXmnUjaig]hhVdc`biqZ`jbtfFaefoW_rglwiligmao`S][na^c]`vcgdzqcdfiq[mhkmnsgg]g`lm[^hclKpqivjbaeg`bdi^igqg`ab{eytbph_bS[{h}mcld~]koaj^~UkjhehXjlghmcp]XooiWbwnzoedm`ecmrdwbbUelw`dka^bhR]hb_g}eVXgvZ\_dmdd\j]`scfhrb_bUo^lmdQ]_hlifZamcXfniukquh\jXcr]Xdvrhlbghglboievrpi^Zjp_`[sfmf[dbUpeurvpzl[gdplimghaXtbh^kXougncofdsuolcx]fs{momghwfe_ffVduSq\k\k`cekpl^GYrjXfwxuql`POucSVqoteecXioamc|^rWyfjcZZ\l]nt^sueNik_a_qgft\bX^`_jueprklns`tj_Skkmkie^_^zfrla[`fTt]k\Xe]XV_sYb]htkdgli\ic`d]weoapn[`\pp\g`kgU]lb_~jacY_c]bo]t[umnuZcd`ZWqebcUnsXcTW]Z[uc`is}d_bdZYc_{a`cNgbubXf~mYiuXy_eh[rla`uW|huc~behytZ`icVtmp|g`bvTi]hnhnrMihc|e]e`La\hjyc{a\hmkUVXoFralPiw|][ep^[Z[}gfbvbOki`s~\bLtvQdYahpYiZ^RUpeljG]d^cUlbdsmj^[Vmfiopylt`edzcl`gn\[hadg^oSnvhYWYZk^J]kqzTXfWV_\PRPb\rx^foP]_V`aoffmcThVvgerpQ`macQa_bhbWk]bwhVr^TC_t]WSi^^LsRdE[fSp]TgulgzOUmbleorU|Vd}ZeYGbkWdYb]zScccVhaT8qy\`ZdqotkXLahqveIHrJ}ZW\\uw~In[fWelTmrfISQbkkVb^rlgKdbaYHbWylcdY^cZua_YXlWM\lrn[^qXfmbhRYoeQ`WZtVwc[^iyrdjR_hXfgYYknTXnlll^Ubg[hodlYtWjLttniYfhlZp}bm[h[xcgxbtrbVpetZ{l[owZZVkue\Snqj\^`eft^rpha[Qeh\MaQkhtii_^c\|h][pXoflXtve\iflbr{MdhaxbmoYzTaVS|hgh^afervToe{ejscqlh_^gRsU}qcegoasblogvb_ach^ja]yznl[qTaQnun]dr_nu`Z`yflbbl[_T{bjspZatrcTalUX[ZZo^p`_{]bghR^_emZ`sYdpcUXlhshair\S^dYWolkukX[n^qfa_vf_ecmlkun\TY]kVV]z[Svene`ahV{T\`dV[in]bwqnjc`Pvvmj_^ihdgafnnZvhgpplSfoe_]Ynm`p\noSukhxbetdgSv|q`jdlshdbfzjwnVifrozhQjk_QXsvgXXliZfno\p`~tfnbstadvlUrp[m^__i]bTRhWL~sq_bgerZcbffptdt]ru^VXghzoy]k{^fipZpVhik_qjJgiNdS~pfgy_YOnw\RXmgry|Y`f_Xp]jgj`Mjcpif{^g[i_w]jww]pYkhghkgoms_YcoehuWqkj]jkmpfdP[ttiVOyh^ftfnmrj}f{m]zkhNh\naZfoUfoZp]fjeeg][\\]cesnbiQyrqocU^jhgyadnn~[Iqqi`nebn}iweVkd_lfnj]riweTga^b_qal`jthXdYgyiWbbgeWniygf_ej\ZueRorohU_udeqjnhrmtzkjb_mQnh^ivkZo`[bnglpYf\snqYf_wb]\UjWuoO[I>n_ZRqtl{rehqdcechhaPk^\oajhffcoTjgmvnlcb_Zgq\gc[YfrqosgppficZaa_gppjhf_`iTXynfangZnmq_hc}ro_`lpjfnXVm_dgZazjjx`xqdilotSfizrSgulc`^myfsboY_e}jyeweZgztfsXkgXYaOcm^n]^dl_XU{pkhPao`Jkxf|NZk[WJq^n\cVfRZxhYrri^fulifbvUfe_^Xl_njWbWshuiS]oliV[lPZRYt`fula7ZUptxk^RfKtM]ZcVWhf_anorZcrx]akj|^sb^oZlgN|_lVg_c```Tf~FqbeSel`kkkoln^[^`dhYQepfOg`]yVRr3z`dkg]eT`_udWadkd]g\g^7v_luunjXzRuutalHgTg\inZjedWcm]SiQ`wQVcjpdfi_WgnWm_SNH`Nci_fdviJY[qgULeSt^sSXclpBV\\Troa`Y`xQdIB\dcl`dn`__wa[VVnjd|U[domjolplT`Zb_c\QL\aqdjX]jffUWdTp\lhf`dYupuegu``Ygqg_um}k^\aylg{vlac]eqfbduclpeYj^s`qrhRdghh`Weeesksqb^wZmrdea_dSZoX`hgYarcmfmhZah`g_gnincemc^s\dkqggtZ\`Xpgo\wvh`xbnqTn_[pmfshvingb^XfjtQaiicfn^sjnhNYei]`h]gjgsvnsrfY[hmkrjecy[\dffkgfiRV~[ncf`fsnrtqlZ[csrUgUjo~rwjc`p\}rf\arsQx]ls_aiW\eg_Ybq`]X|x`imQjcjaVfbbjcirbU^uafdiu|becTiqjsj]d`lZklqO_f\k^g~Ytal_chouee[c^ccbZksfZbvqxTmi^cdtL_hk`pnu[pcm\guij]^kjcXbofkhnmdiux]uuX^gnXnfd]ptgbw^cwxumnuoastQnxpjWt{i^j_mePnd__\VT]^`iwc]jkjaw`lZYqe]jPo_^rb`{_nktlnceh^_jXeprd{lhagozkoeVndgWgngUiafclhyggdbX_iap{h`uqooizli^eckuhbsj[xklnhojy[qhYhef_ggpijWyncv``pRrhpePpc]?bVmnj\m^jS[S\{X\gka_Uln\ng_tX\sscm`ijkpvccjaz}]jYO{m[ebj_m|X[`u|i]cwkqnx_fWfj`dpcmj^koUb`_d^aXid]hgcZ_fwYbelqid]_ymaZ_vcojXb[[tty_lajlrgoZhwnegbjkUhXhYN]enl`hqvKy[kfckal`Cr_f^{bd[]^iU_vhlvW|foS[kXbUh\`halh]lf`bbZc]hikrmhf^dd^rYNc`xwbhWtZp_bZkr\^zte`Yvi]hjhdsVlkk_]nro[Wh`nlcemlaq]X^btkrvfgcs~[WfZW\cee^`Tc`orjkgYW^fdu`bmU\W]b_YYqvVv_jiYewdbZhhvjn[Vr[gxqacgn_`q^bXejSW`g{ka_mpfaZ~^N~gk[^Oqp[[cc\cns[aQ[]`^tb[UyfaXpiss_[YgZb`Zc]ge`oVdthnd]XiVc^mvfci_Xfjr[g_cyWWC^\u\iw]oz\}ke^me_`qXvh[fmYejdnd_]`jln^_Y`phd_[cXVlZ}ll``^TcdYdVbWtfchdXr[}_XfVyn[hZ`d^quaXbKjmZ[\fiFjcd\{afa`q\mdqpilnoXrc|qqgfUkk\jg[g^sc^bauWzrlYe^ifZvdnlYj__jkSUXbZ~gejoaaTreY^dXYVjb]oUbjlv^pcanVwooe[pctqcQ^fZgjcmbt_dc`\XdePwZhj^jlhhdqhoddSTghqq_hy^`dm\nYZmbwix^s`ning]age_pfrz]__geXgYhmsfqZtXRpZackp{ZXhhXmpKutZr]keg`kbeaet^vknf{ghg\tuhdidaQiacZog\h}j_Ycefn{hnUfa`jfhho]hanyW^z[mu]rknclzadpb^^jxjZ\fgYZ_e^isuY|tnOcqol]ikx`k^Y``{pVwifn_qcZpbi\]nc|ajshTekgkcbsxfT[klos|p^gnWm`ah``_[`QvjeapjqLmeg]`uk[`S\g`uZSm^^XtolvfgZ[eR`ZVbS^ifmheZYuRt]pl_ZZ`liEp]_l[hXjdroeaxbXtairUuxQ`XWa]x`chSq`ud[mht_ahh[bxHrblhchnjbjqashn[fYgospi_Qj`jWtiV_^^dhX_dcx`m_kV_tois]vRXogrOpZoW^iojpsofDafebnnfqh\___tZZmim^cUud[[fQps_ba_w[fwhaldePmdvSWcfFqdf_fqYjl_i[Trfawnnliv`jc[bhh^cq\wnignr_Sap_Ig\gVbY_gphk]Ueucvjw\[ga[fsx[fb_YXc~ynsUofbaahbopRhtcrjh\iZY_[_\{YdcXWkivfmShvoUb\wp}Rhgw|fellbjfUbkS_gni^_dXuWo^dVqiW`obna[Ucjq_aX\oydfc^bfTSk[Rjid]\_^\XevacnmhuW`_k[fcicoqeeliidgkahUperi_]_^fea_`]caniwXkeZ[b\efpY^do`U[ehaUVejmmoS[u_ls\hxpaX{ijgkkxmlk\Yc_t}qwhsinhba`s_Yi]Jkl`xvegnYnWkobvud|\t`lVack]eiq_WmublZYrgs_f{opzhapmkX_TcoZnqoXYdwYt^s}ja\cg]r^iibcmbkxUh]ddd]cwdbhjhfeZfkdetZudstfktmrd^aSp]ravermij_Xi{WdhZhcdq{rh``lnbs_gndgmbu_ajbW]qq]k\\`m[VlTrb]bl`]jto^WyuhRbmc[hbifrOkbfdxchY^cgQufqh^zwXdbx\uvVgtsqexU_ragnYhfwPObjn[_RcPnvoqazouWimnYKxmxxee_qrnzSXQUwjjka^svuqpg`]{o\^nhvfXh]}|m]e`isiQZfavqhdXgNZ^jwcq[akok[`wl_|Xyht_dn_TadfaZc`jngvroTvrncgmpk`bT^^h|^fw\}oakbighbmTrmrzbmhjUt_SwN_`hlgVrVeigt^x]}agoQkitkgiorclY_^ZRidaff\Tjmfm]^djf\tqla\kWs]fW``uocUebhc_~biSj^\v^^k]Ymek]bbZxjpc\clqVRnfgOdiUs]jTfhpjoxgj_TSon\OZtYnn_j^V\kkXhgeb^T]cjdyWm[dhZjuxhlXT|^b[olr{bcZcUis~tgk_fdmYm[hJ\uoWTiidne_T]ovcNfTa[]pchpcul[kumWvogtd\^vZ{[]bxi|c[Vaim`e\kZhufjxrkqryJjyVah^arw[_yka_xfurjZrjzchjbd}tftqr`W_vLUrpriYSe]uj`rgx[`g]U`PtEma^kZxcYaaYeq^sWdTW_pcbrijccve]VbljnszfjMve`fLh|nmjfe_epa[k[adcd`kcZkfqph`s~Om\bdRQ^dzh^eo`YnTdt^E_kdWeg]WuQa`h[ddkhArrXazmWTc|wslo\jn\mezcfVecj`h\ngficZdz\nXzff^Qche`cohUbybsyvqeqviwjtmU]_gernebgbhakUfgnYV^btvngvVao{[qcocm^f|o`jOikbieh]eq_leajeha~l`{`Z[j`t[\pgNiW^icf`aaGgf|hdo]nfflpcW~aiVm[][o[Uledhbifg\`ncXcq]ddZ\[V]ufiim`apYcvadU^Xc`bkZXhj``X}S~jka_\pYdg`^^^glyQX{Z`l[qtdXTa^n^ce^TikXuqneZVuja`dPdnamfZth]V\geqknoY^yOfpbkcbXj[kahxbnSf`^Rn[wmohf[kbnYc`]Zp_t_gnop]i`^eXLgbrjscej`chcabP\abZbqo^ow_tfdYZWid_fwa`Zvafi{Un]^zceiqc`rck`pUeoR`]nVs^hxgx^bb]\X|\^svzsc~zkhZefW_dbsmchwhPffi[ekektRaW_]jwilZWSeibq]efPXid|U\DmmtZdudvgd^TTOTmbgefYmkviuahjl^NcQfu\|gjaYmvridfjmiglYh\]]UoWfeSek`m_qjTm_lS[d`[{kX^Z^pep]iccXRlTW_zs\\kN`gMcmnYVoo]cYXing^\c_ovtrca\~jptqhe`_^ueoancn_`jeqXdW`b}`ezfcUp_qib^ljba]fd^^axZ}`YVs[f_Z`eZqbjOrpRZUm}[lipemn]]bcgj^_iJzigdhfcDvcfmfcfjX`eur^ldn[Fskzbes[]F`ei[Tg_`glfqv`dgag^\`j_lc^lbalR}wf\btacmfj\m`\_^f]ef_cfgbq`^`axe|dia`lkZlneq[mjht\cspm`jg]ofmgnb\p]iqdgm`U|^savonYffmjb\SfZdgW]rZ`dbUmgTv``kj{eyWOT^yk]eUj{_ejm\h_Xb]^gXjchgtS^rUaX|p]uxfq_i`jqfUpfWgrypm]RchchY}hPwLpllWoWehem{nV^eMbW`zgnelUdnfm_d^W`|SbowdnlUmXTk[lgspmphXiQS_mz\pkaUMhuabvdv\pyfUwdsD`Pcun\y`lilPqYuYn|jpXneil[m]Wb\uwqhRdg}k{fkhhtVtw^p`mhgojNciWLJ_kTb__R]l]h[ebwdYoiq_jhSi[erhRs|bft]k\PaST_^]mh|ryZ]ndrlkqiu\lqqbaT_|YNmbd_^ctbZfrbiR^beSpY]qa|XddrpwuzhyXgfcdkqYbqU\ik\eqc^tjtm\|xprjflk]hgfuao]O_YkkdsWfn_isvgWhxat\y`sqmaaaeVlYeljPmoeWjbldTwVPaTw]Slqoumj]wco`gldp}hgSS\bf]eunc{FTi]ifZ][Vmi_ncqniY]Wjg`[gqvuUQjy[vcHi^fjlUn`kbaqY`R_[U]kPcbjj^caTjPZ[_`cebVaimzbRhamtafpUp[bbXt~`maehz[u^eliq_tdd\dhrbkLd_Zo`][tauihElLXclkqmfcg[`cZjuzWlRrWk^TfXgkqVajcidgfdjc_h]\Ws\mKtC_g_MqZy\SmobioiebxEYew|dmfqaTmMeVctshkvortktj^ZSiuNZtgZ`quJU]^u]uXi[Y^pgmTgps{mbjjapifdpo_Wgmz~kbSUT^ssYelnbc|k^codj|YhaZib\Vwmeb\TSffdy_ZX_snfxeiepcng_emjWhabajfribcFvZ\pkp[MhccZgmj^U^|lKbqvvh[\mWGrgHi\jqoY^\kd~cZb__NnqY^kl`c\pc^mragyqkgaskUx[VknblhWjfjf\Y]UUKgb_nesboh^\\ioihfwjP\RP`^Ufb_\dympxohciveaiijQulZl[S_bhiTcbZi]aaop]ekgkoJ[f]d^VblaxvTXUhjMVrcb[MVq[bbUxtglTnn^kldTpIiehfbd]nq\Y[afaY`rtdnUqdYbZemoXi\g}hfbLVadhYf\}ke]p^`mafW``tZmdz_`Us]frYi{^_\jps^^eo\Y]hjVbcXeo`[daYUZWPiukYaveWdoVj`ojbi^elbWudktkeSZujioWaP`[Lojmuc^jfmp^ggnllbYvFga[m^U|UNTtfYzeveb`Nk\\dorrajcadijek]phbYmmjTnhV}SUf[y\Wlckkhjksl^~kVcj}`i]wobvi[SegYIbgvizq~rtW|h]_iPd`radm|clY]esS`o`{h\ef^ozf]Y~hseohgighg][uiismgpZdhxjq_lbiapdkakpdoQi^jflzeglj\WuNcTmYYlWhbi`pkmkspbmmktXopcs`hcVc\y_ewyf^kgunp^jlUQkfXk_jclbj^pRnR[gctckq]ofroypZgPqccrWye`q]ef~Wftu~loshtugfm`q\]lftjTpuwhcY`xhcmbZ[_je^hTZpa_nhPaewnyhucdmY^n_cb_miqU^bwcpolXhl{q\oo_Wnxt\\oohvlcxRvd`e_ddam`luR\ikewwr{ohkaV]]a^^hf_lsukdVcl]sok^y\khridXdj]ZnZi_eWbe}cb_scoo_bnmlod^kk[kirZerdgnwjl_kWogmrfQkdhsYlgkiXuknqWjuhgdabh_]kj\bR}dZ`inYvpdepiiVof_uhVpele`WYjfli\^[nhjwxp]R^MqkeQgWklme^`VcdVn`rZ]oTMd_qhohbgubms{ij[bslilj}gtygZen`_jgfhdpgg[t~lbMhbsw_b[cg\auXVnnkil\iujr}n^baVXPk_dj^uYSb_ZyincibogOWfOcYkqaamjiraqcbxcjj_h[fkqXa_`af_p^d}VTuajbdaexnxjgymfejh[dqd]o\hieo_loxZlfraw]b^_XlvYddlvgyWsW[YX^ticTXlWj[xc]_aWuogeifjcMlgnmlidza`fgmqU`hhlkic[h{tTYmth\`rdhnu^k`^wnWkhX~hj\gha`}z`wibnfkbknc[cecgnelVvc_hzdfd^h]]YMdakg_nWck`[_`t_od\l_hSSXo]ipfX}Xm~v\rhpdbcqleaivUgje`Rgf\im_SnXrl^edgfiWcjk_jahgVcZc\c`x^_nMa^]`jWbc]r[^YjgjoXdoiZqRqv]fwfgaT[WjfhxptJfX^dWkb[hpYsciLdYflfP]Y`\]eeai^lwquUi]qMjbk`Obefklq`fdaptciX^df\uokmlgugZhV`\hr^n]\\Y_\gmiZXn_WfujXL|__h`hQg][dbVf`YX|`YSXeb^bhrrjpdmlc\ya^j`mYdk}f_hgXqbcQ`biRnWii\pkbXjtYesYm`glNl_UUkt[jecviLsh_ipWxYgZdp][imma_p~eWhbldau`jco^ks[`n`lPWgnq^fij\mbjka_bXv`ptu_cdkvbgvruou]juhjlUk{^XhexpYjkOvkip\cfafij\ss_\[giNgcdgTMwk_bU]f_Sel`qSbyunfwidharXdaYgcdkkcqVwie\r[UxXzp\qpa\ir\ee^eqK^^jRcsend[UainlW|higmbegq[c]rkZaaadf`^YZ_``yoskh\diSfaO]Ste[QmhkaZ^nqeYb_^]gsQe]x{`nt^ZcobkgseflbfrXeaa[er]hR^~ciiqthjWgVdd`}b]_jRdjf[j]\cjlgU^MiaffdOZdQ\]XfVgrYz`yT[dKudj]kX`g_kc`bkVbaY]n~im]expVwVUu]YeSieo``dkWwnWmfoyaard_fnWgc\irMVsaeZ[cgnqwqgiaQexQbjhdebcmlssnW_dz\ghbo]yVbagZsgnfh^}|bguf]lWhhoY]bSV[skYZaiO\eYliSepgo[muTw`bljleU_cpWRTubgrjrXdid]kacgRmhia_gwocQPrwk`jn^zZZRZWin`axZk]_lT_gci^GibaVkaOVoad}Q]hb\ok_jdcLN`aYThRmpj[Ys`ekem`QtcnWjgrWjhOiWqlefdib[W|``o_gc]e^p\hsmt_aiqoZp^_mpe}h`qWm\Pcjqbz]jhU}Jcm]mm]XdP[Rm[_`wSc`dUhg\Yac[aqpg[ep[q]\Tw]ogfrbbjaXbZm_tcFVc]Jtfqaclr\cakc^ha][Wrj`Wh]vOXjUvKino^E[jphBacgkcZoqq`m_]NWeXsab^eSv]gh`jSdhjlg_joedU\[Xqo[f[inkfr^Po\Llocdsalpafjl]lkQ\VgeD`[VWZ^XZ_ec\g\qdPPtbtgfgb_}Rj]d`UVgrW\]\fdmcZxPo^l~xrYTNUUhyd`lhO_hS_apJg]W_zkbkRicainxpWn]b\Rr]ysqrjU\bzuZehnZZWsn_lpilabSY]ogp\`mdYlbieXIjnagf`]cixTNRegWSphZx`~ck^fm`xcac]H\wdW_wrj]bfcnYe^eihdX^TrpT]jXaa{\l@o^T^o[d\Uf[kUkfV_hhfpcmeWe_j]thflhtkcdjpxIl^dx^RhWpoq[j]fRh^\glhriopqj|]{SqmkffZju`mY`r[YrXeggmO`q}YcZ_kocaZaQlfU[^Wbcq^^YgbXqwjdg^molg\fgN\JcVfnuipqdXowtrXsmuaeTnh\jpl^gnwfg`a`zs^afY_Yilvv`nXnld^tge^f|ikWhhZdf^\ec`\f[owg{c_ZYb{\jjpVtuU[bU\[Ycg\g\kbz|lX]iZZcqY_paoYj|\`hdo]jeqglob][ZpYagr`k~`wgdmasik[hr`~{cmema_Nbkueofagtd_Vdw^||egjVpV`^nnofnagho\Wkm_bYYjkeYi]qnqleVfj_`sc`^Til`fi\MgJ[dcmqdfZai_jT_V`_ud\Pk`fbc`xaiigwTmeo]b]\khbtUocbkaipga_`UWhb_rj{mhjVpgYfPboiiRZrm^WjUmpskpghd{iqgnbnkdhfrcmoWm[atmvrd^eeoXf^dp`oe`~qytQ`[`bqZfpjtQ^l_`gljRPk`jcmbm`MZnbhS\rTUv~_ufTlXZj]i[bU[g\cvjn]ea`mogn`iczTu_yeaZr^t^q]gka[cevf[b]rjerpe\]cZpb_Tac\aw@wcZgcs`^bus`MhU_kPf^_[^ku^aaxkAZ\n]b][bdgeWgga^~`af^dyfp\[cWbq|`srs]Sbqtd`^Varm`ph\]^^Yg\_\l\gfgjZjfWkZ^jnccpVVek_TbS[{yvdWRidet_el`gNe\Yrfbihejl_{]fg`[Xx]^Uooi[men~igvWqUreitds{nl]_^[bcd]mtv`jii\nXRXhpndSXkV]jhMk|fufc`rfYmW`Rf\sr}jZdcyhj^cs]Nc`hS^sXkflXdpryp^k|\`\^lk{b\j[du|gjk^l]pfiigjl\iu{vbjns^azec]m`bhjjjeX~cbSmjldbgdXhi{lw`zj{Rr\rehpqirrulmZ_d^uXV]okp_`Xk~Wang_|Zg\fk]s__m^x[_XbZY]_q\wp|qYk`kmc[_flTfgncvPrQksnes]VvtgvSmqle[hizdbcqO^aktVlwT_xcmdY^tkZiwKe\ooo{Oxnc[l_cVgiwhbgfsZ^e^yilbhmapjd|dudssXdkdlac[ikjWf`aoiu^W_zlZPzgjpgnuethwlq_jzhJ]`]liOKs}c_fbeBaqhb|rlajrm]Ohnzduei[^\xsX_VjgajjQc}qngYvoe\m\hYdp`oee_Whm\^jpyYb}Yi^kzxql]WtjbauJbaegefeZ}Whtvfa`comu_~jYmY\edVnfnfhstNXlqwZezWfpbvwcujhjZcihZunZ{vbfhj^Zaecsm_ahbrZcYoXjg[^aX\VXOVML1jn\ZadrY`VaVpPpk^pUa^hhij^UX{bNRkQ^Vk`]m`Xj^ai_kzwX]TYq^b^cU[swcNjmGtsQrXbdstMe_fHQjngkh[ZjS^SS`YDnaYhnL[bq~dS___VcpXVhNTxYNaCe\kU\kbQfTjXq^fdUxQUgbT[JWMhNY}uWUrRW_[YScS[XXQV\]P]Toc^cxf{nUY\ul^kracXzxmUFKqx_aR\ubLtsgthkqnddfgjZ_JSZiV[_kib]LVJRUgi^^`Rrr^ZYVX^^__jkLldZMU_yabfmdY_[fhZSfoYbLt`iSQT`X_fYivpo\wngUod]ShVj^mV`VulWi]bxko[YnqVcfgrhpjW`_jcaWMfh\tbs]sjcw]es~YN\dgyXobejgcq^Xer[bdhB]rbg[SYn_qcfok[wmmzmX[^dp]gje_`XbUfgdSheS^lem_j_e]a\K]o[ejizbgpcgq\eQy|^gU_f`hs_P[T?_znfaZecmIPdjo_oUc~a\uiePY{ki^X[^`rU}{dhYnnfohaV\nbS\o_Ljjl\e`fyaf_i]g]j^VjnYWkPhgeior^dzosabirabkZet[__fklf_df^l\|akQ[J^gkeNddedKV]cUrb^nen{kpgZqurjml}jdYOx`Snylkzawnr^l^cl}[pPlhUiz`fTtm`jiogfa|ijm`NZUuZZjmhricZ_`Y[ccosku]XdbcjhfdhYYi]Yoqjpvkhy}ojh`xufqc_odotgPgYQm\\`eLs`llhtU]djj[yh_WY^{`dlf\jk[kajotsraacihchoh]_qe`ql^dmaehhxlrkpwWZw_rZ_nKhcUik`c`Zdkxdvi`]ptfPTz_`[Vd^dkjhmhj_ddTwzkauRpiidq`c]VWlgZlhj_kYUdYeSi_u^maPleatmnq`Qm]b`_YcPjaboimom_dmffm^rb`Y_e^vyoknelaeT]_blepl_Xc\`ckyf_fRn\naaqy`fe~kpdcJ[`^a[SZoqw|Qbugw}_eXeh`Sc]g{yi{ef_jf[[Myfzqu^YitVwl\cxbdgbViots\iWVrcfkb]R^_]kn]chccU^[Udg]zigedcjqqrjpjYgq`@}{cgdawvvaVsx^Thmk]xi`h{oY}rVqqcheXYs]inIUwlteZcha_[dpQoYsjgpjgslUqzZaeupohsujpe|vjgnc]l{vg_ygz~g_i`dchnfdpp``pjtUhhhhr^v_gjgmfaZg`jnt\gXgdqZw]b[jxcqV]be~nbwPb^WQZXWb]iy\mgonWpQ\mmcTo_mlmpyiXgiblbfeohjdd^iyj`h\_nnfjjnfjp\|zdl`q`QQkqTq\Y[V]IMaKpe\^`XTSVZimYrbeaeogV`ocoYjkeyj\`ceadgnhT]vf]`gZ`TVSnjiHZglwb_^v]ggmdfn^irQdXga\iThQZkfZb\b_svYoeYdU^TV]^t^e]YR]hgucdRbh\Xae`k[d^WSqXoLijrhUhjSd[\`WdXYzg^nZ\kZ]Wvh_pjmlQcbhcZg[kdZdef~nbXeUdH`\Z\ah]_eUjw_rWje_ZrzmpiwYyrc`_dkne`TZ[bZwZw_ldZvtmuj^iscbPgx`^XpsiquuVkcYenvbtblpbh^WaeSir_egYxiOZ_iZdXeifYQod[_jl[ilgmwTdUYuslVPiff\h|mgdY^Yxz|hbdbi_Y^]ThjYe9_u[OtmkYvsUMgJCgpqWpelc]OWiksX^s[jsgLlP\jR_favdheq_sbKsooVjTbVhYNcZetUlUwmfu~n_nfwia^lo{\eZa]tld`wbWb_Qwb]gcc~chmdyrXbl[l[qpvpgZijb|o^]ncYog\^s_dsh\e_Zkf\ZaYeu\UiUTeVagap_bb_`XNlUQjzWlg_pd[uibnj]`]{xr[^f^i`_\`yzjo[`vrhngp`Zwzw[nnxp\^XgXsVSKoTnTSRdl^a`YxTZq`]X_V^_]hU[lTbfd^_a_e_\SqJdXgdx^ebf`YaUV]]dgteb]aXJ`mgrb^h[i^_henbyWeUcyeYg[hNakb]eg_dX^jlTZkfU]_^^pJJ~kb_M[UssRmbk_anQchdhyiicycqn_hZ[Ran]ohhafznzey[\]^bcq]XcokIXf[L]VTajfX`tP_fai\jbuVKP_av\deTaZ[nOpcdncewpkZuZTd[wwtssahkahgb[^igz]n`qnu[gUhg`cfQr[Wp^ibeOa`j\majt_ZPelavjisi|YlZ]g|w`cUcbnh]eaa_Xv|h`{dhRw|ix\aYegXW_bbfg}odb\eZy[^odPf^qPdoul_i`bep`nciYgRsTe[qmmVbmw`agxhaW\`wcWU^`h`r_bf`r[x`cl]v_iOzub^ts\FtcowZmXkc]\oq|ljcYs\kbq\q`pY_}kQjQdZ^pxceUmpmykmfrug]`YvkmnxbWXdtqeflhu_\c]fmQhd\nuYecbahevtxdMmfdpfkadap[S[edm`cfPolbacc\^hmpZh_^dhgvawW^kq`do\Xf\Xihkqxa`e[Xxm{plf^lZ\_mqav]Ve|dbcc]bgfl\\`hfqdqejcoasgti^gW_a]nhkbqqkvousyVafmhQ^jb`bdX|gbc}gqjhXdVZddkdcdiPrjeeR`nl`sfSlRylukkg[fhRa_}ajd___d\jpaokl{gdw|{wUi_^gtkf{|eq_jgW_Sj}bbaamXc^^fkia\tfUYUohcXPYpWt`ci[]gi_zjybjjqczqdm_lfao[bceXkd\k_z]xsb^^iogqckndeiv__iYRMgvkr_egmdOfiuyf[vwEickqtj^jupYaui_[Zm__ecc`llOUhgvOddcXah_wUV`m`oieOg_cghjOeLe\WKheeluT^U^f^rucgk]luu`vq~l\j`i]tm~U]utt\Z~f_\Wm~``kban|hnM_WTf[{rZPpph^le\yhd\fes__cm[chkVebTev]gnaZ_`p_dceccgc`^a_{ZXTg~U~ng~ppvoXd_ZckdW]g^||ipn]uSa~iqje]_hqyakdY]^tfe^epcTcNuY``b[\^Vls^nm^a{R___gunblt_mS`g~miylVr^WpfihduS}hqaac_ibaVl\favbguZ`hcyY`seYThPPYYfgpW``wXWbYghPlatpfXfrXlbgd]bxikf^QfOsx]src^h]hUNjik`p`mp|fezkPnRiAoi^waYS_`Xn_`s[bhddo`myeZUamfmddgmty]`yOmNn]~wpm^xiYYq_Xehbe[lcr[a^wkp^]n}eo]`Qb`]aZfQbs_UuejXfv^dmbgpceeXUR]dsj[`ukjdafgqYeQX`becm^wn^i_[\d_Y``fn^rUYh]lgXohT`{pcad\ZakWheaj`elifkkigjaapqW[V`ZummaWjh^vR^j}qjntZeW`lcnTleUZ^vkeIecvfqU`Wx|z]ioih^_iS}feaPWkkq}nkYm]auZ`qthbkbb]h~gq_Iuifcb_[mP^]dXmz[Zfqoplch_brVakji{gp_^X[\m_^i_jb|ddffZ`pi\aaZog>khhpVfliWpn_YW[ekd[[rtg]Td^_`ik|jaTVmyY]`xpdi`_^l_cgheqngmbb]jwop[[liTwtg\\jrbnVdl]}fr\ebdVVUk^`im]q[ayrjbirllel`amflmkd^gcZibggs]WV|fo[nbZnkenityzkdicfk`e^fm`Ytes_Wr\jTmhbZ`gTpr^Yj_`fYbvc_pcaebVmYemcYtilffgVf`_k]L]WZfX[STaNnpdVfif_eYMRgqZisXM[uly\nVuqn[rodR|a[o``O\_fhviUhwO{VXvxX^O{h]bOmrdk_gkXcRdZYZ]dtavlfeQZbYkU~SdT\e[gbqY_i^{\mZhUdVowZ}]PbViZijbcdSewtvc]]mobwnk^UZUhG^aOfVbe[oHjZ[P\ko^fyN\d`[aem\q^QkasP`YVfhSnzgUil`dVcXjPh\aek`ohgMhha[WlbedhYTfPjz_qaemXgWVc_c`lljQSeJe]mKqpbagS{mhcSVoTeUcajsYS`Tp\^bZUffqv^XndxSdjq]oX_qfr}b`jQ`|P^]echV}i}`iqZjgWX`{XQa^Z_Zkzpk_cnhUmqSs`hdSqlZq|gu[habhSlggni`TllgpeU]]d_`S_mhgrT`[tqWk`ek|kuuZjmTumjV`hrek^H\cfgTgQ}j\_semlqN[tdbOV_e^q`jvYk`rdq`S[eah`YMca]i_nTrpzfuigKlZuVgWm\]^iabsc\jfkqmj]Tkk~RiPiOcfxmfpUUjiRyhdgm]j`nXraT_hatWQhbdceVKWlecjaZg{kksgmn`_lk`]jo^_dg[e``^qf|Z|NafuZdVcUcXr]dtbZbtm[PXZ`SmNTwMixXqbVa_e^kZjYW^U\dqo^vltaynz\ZclfvRe\J_g\glP`bgdwZekSgXsVpiXf\Uon{hyMbkbkim]jZhfThrp\SMfRg_AXX[aqnSfm\[b^ihql]rfa}aakt`|mjyykj_lleckkgRYdKao[ZuFeO[_XRkonh]^TnX_\kVywWdlZZ_h``aV{_{}{hyXkTdOmktcaemhWZ]lidkgaQ_gSeZRT{]VmXhO\ZafT]VOtfgosmro``hWs[a]b]\}Vdekwi`cmuhiuwjs^oczaSj`j^dbljqi]caVWigumulkrjWqitUfYn\o^dcYdjtZmgx~rtocgqTf`hZ\Nfjfjm_slqxjj`Vci^ikao[lvH_fZS`^fl\zgLUvjfgjbg~cfnaifYkhncpq\s__cTOrlbhsdn`d_zchcymeh`YPlXXpqU`he\X^brn`qelikafZ^iT\dbpZoeVybdc_n_jaMuaRnSrbXlty[Xfhakc]c\xYX`cjYfhbmlm^Photejmjcb^[kiiƍn`lX_tanegXe]jXXaYXdWikcd[mek[nmo^a^XZfd{YhpddsthX]enoWTY^_mUbQsdblYyh\[elYcTimjj`lkx^ghvrh}ktum\[tl^i`h_`qiZ~h\]ZQfdWkfh_idbcY`ioZej^[VielpgwtdaubjytSfpfprD{g\hfobqTTeaa[p`VUjn[\SX_gY[fg}g^gnp_hbf^hqk\_kgphjXyxR\`yZn[fcsVc_juotW{W_]^]ue\`haY]_\X\nuieNuladeWshpb[hbb[wid`kU\ad\Xo_jgJlolZdgSayi[hdc[lkeilcVYjY[Qjsk_p\XgSalUw`jSfefi[tlq}o7gkb\tes}qaqh[~^qVnveaZxrlfeaht`Jgo]d_}fqrqigdSbsxqfh[fpwVpS][[pb[xTYNUdWSb^ffTZafacgv]huqRckZ`]_Yopam`wo{nddnw[rihzd^Lgtgia^cSqYZnh|[cldg`p_c_QEcf`kU_^jFgidme_ufjrcbd^ZcfglPFdhscp\V{dcigcvmZ]hev`^itj_lVfDiel`SV[mtnk|ZfplpjkRldevO{eHqdSlUcgx_ZZZYNs_c\ecjdnh`VWg^]_\h`XqRTi\sq_W_gFW^lLZ]neTObZewE]UfrTkr_d^ud`{TbRsg^dcVL\rpTa]jxqdgyZbgriQeot]xhn\rkcltpSf[`fo^lievhyV^Mwr\STfrWsoWkmhcuqzXi_^_{`X`bigbrlkaNgWI~P^gfdcquWdjYz`jYsx[`m_mkiaebbiidxl]or`znbTobg^NZg^|bXl\go`qgYhVcrP\hbN^Y`\p^nfY{jRaUWf_YY[qu^TmcScRcAbZc[seuWx^d]hXR^af_ScjbgcZzb`haXfcihkxlhkodiz\WZTf\}gSipaXzmlmbhipf|ciZwh{s]jej[clfhWSLtij[x{xl`whjsajughZl[\]QckWjaeYkidSYsm^UxrTbWYLeltbgefs]UllZ}Wmg^]l\]Zrb^bWYshlkoUTPsjVfcakMpia]u_[ccwhqec`ppwka_tyOavmmae^`r{lapn^[gtgcw[nbtVpcnhm]nlabLd`m_}Xgr^ns\pZZs`\V?\zfayhY]^Yhg^dp`l^djfp^]ibyV[crWkZ][\`j]g\K[k]cfMjTeW]dbc?fVfWjicj[TrhaqacibVjhQj]ewqpikoimgnajihqXY__ipj]YZOSneVc[X`^Xsjg]Ufl^^oi_s][q`nW_^Zimkd]Pc[a`fZi\j_bV^qa[dLSci`h`TaYiif`eNlpdhve^Zaioggbgfnqp]eX`rgmaXkbsak`hfeYai_irObre_ieQ`aXtcqmrtjgSi^nh}jShcYUwse[uWW^ddXx[n|^csY_cg\d`\d[We^scfU`ahud^TIifsoljcgdUVetrhIbd{\dfosiekdb^msfnYhnja~shkttSaZZ^azTgkcchsehhxUah][fligGj^ff^ocb`eg_y|fV^glbT[XO`|^fhiapiatimcl[y\^hfjl_mnYoenl`ad[_\dc[bkpbgcoY^gkt`rOdcyj_sehlem^|r{cipavris_ezf^^g]ddcdnchjnYi[ltnncScu\mXqkYSm^LJrqThbUp[ekq^af\]XbkVxS[^g^Xe__kZ[\izeh\^[e_s[fmVKkgugfecX[]oh\uoVcdVhm`bdQav^_rlwfhcchrXY[htbgYX]fb|bgvz^`rGacErlealZpv\Sqx\^zWffbk]|mSiW`hZc\~uXbck_gZgltZ`bggZILZZ^Zn_`Ugnf`b\W^g^_fauoceamjW\b[d_elqndm``un`_thkaVcfQl^none[v{drThnsjflkoph{o}[VaqZmZcmXgcgzRplq]cfWtQjek^p`FoXjfRS^geYRhmo]YbXXllgycR__XcYqulmSiaWVnfdbm^bYqZkh[\iXnUeXnfU_ka]\~^cl\uudNqL{ZbXXFfTPtsvpGi^lUeij]pkie`hnjun`dX^]bklW[wogT^bSkjla]omgwxi{tPZ^sbj[bgg_cY{pcZb`plmZay^gop]_]tdwotpeZsUj]he`Uf`fURl]wx[bXmW_\la{nP`n]TdkkmXrcfKS{nrcji~oh[YhdpWwcgZfZfnk]hjlYmh[^oVejPZlgj\`W`[L\oPoeWkVja{aXT^^]fw[V]fVbU^jfk[gTt^syOOc^rUpajYz_kfbZay`\d[qT]elmwakpgVabcy[jRNoZacyn]P\jMV}SxRmaTHde^k_ngbb]za`lfcckcugWXsneclo~Vqdejc\rO}e]hcmeYsTninh^]j_[cJeaipWYahicH]kcPdllouXnnoWbaepYX_`l{znYk}vfUrOten`udSmbGlXb_U]zVswDQpZ]RlWoYSrvxtcaIrlmP^TmuaZ`UXkRyhoi}gR]ZebQhTh\PmX^dabJbefc[aUohUPisaafYWrjoRdyffV[mb`]pcehj}ifUX~glegowcX_nhcpa^^miogia_k^oelY`hfafh`iZ}Wjh}daf^bf^[UnWm`_}Wn^ukldiZkcciakWz]Vjgix[ars\gfc{qmsa]ins]``e_[mne[}^fojl]{judjasWvWkpyoxbiczX_TWjrTkudgUhkZpTf^onjaRdmkUxJlWdyfLYabZO`rObcNen\eqk`bUWsSj[^OWefhmj\fRwheT][bb\toWfw]n}y[i[tgcksqqzmq_f]k]}rQfidZghmUwgqs\kjksPVixasvjfVrifwfgo\de}`gk_`t[\6qadWl]vr]fh_cgd^vX[dgr\aYd_Vc\VdddZ[T\XejVM`O_XbNnp\k_\bnkfYnf]c^en^iUb^^UXi\hhtwJs\|{\e]cfVfeagojwdmUhgb`SZx_hhZ{_XbX{Ucu|[eg\]hcf^YuXkmhwjM]pud\]liaaYand`Y|RG[b|fcs\eqj_Wo{jdgmUrWahjSrrkj_p]p[agd[jav`besqemTKUdjTedfsqjYde|RrmiTdXgmoLV]b[knEbiTT_[iVZobeba[x^W_l[dsVormcej`T^kX^a{Ygc]RZnrkx^]^filZ`br}U\hinlsdb[R\pcrSQfjpco\RwptOSrTljhjijbgrzjbNsgg_^idUX`^qgc`Z_hjLdZHaZqkoOlg\Yln[{RfgWR_l]M`iie_W`fqg]k_mX_b\[j^T`i~eq\hahaRiV[liVR_sel_hcV__Uyndfkjh}da[mw_hidedi_JfdwacbnZtw_iqslkWe\]Bg]h`m\q^kbXfhZZfni`gO[dyje]}d\`VufbrjdeSmifsY`\gzWS`T^]hcn\^hmRXU`VWk`cat`mxW~\rIzg^c^S_RffjituVlgehpupdmvfUbZlWd[Xh]tsl`nZelbjZ`Ultjjkmjb]m`\`g^e^spqgsaahkktdhylUebikeolgkjhTfzcecd[nh[xc]Yer`nSj`pg`l`sRaeUuodbfreqdjW^c`V]\Vk`]g`f\afc_a~cfcfZgya]Ug\_\`]x_fog_ahjkseejKmUgh`_mc`bSfnY\f_h{aaGkb]Wgbpdeb\dj_f^opj[`rgmkdp|kv{zebie_jcS][MX_[tXqhZf[\bvma[d]gbogUes\asesp\fTrUaMcLZS`~[otc\bmd^Z\Yqecld_i]aZa]^e^q]_ofpafqUbhgSiZ_u]`]vfhlK\_[\aihf\Z`mjg]ZoeTgtfbb]nep`h_c~jg[igm[`_]a\a[fafh]sdYedYdf]d[fwQcb]iddgXYfgveXY`s[fbUfms`mvbzjmd_xc[depk`R\`Rc]iaYoSolWniabndYZ[Y[arhtUbdrm_YoXmhQlY`jbfhaggc^paZa]ZhfpiomeoZdz{Y_aYk]_bky_d{dp_[a_ub\^Whwferhf[nchq^gcel\lh]a^spamZi^]bteWfb_knma\c_l]r`ema\_lcW[bgh]`bzka_ncm]ea`f\H`cWnjddlgl_b^zakYbpefmkMghVVegahR]ooxUmp]X[XgXzd\adVidrvhVbd>{jnnX]^YUY[_k^fhps]Xjm]ebheYiXgkTMo`qZTe`baR^d\oYeiqdz`pnjsWXi[rPqTeribki[tc~a\eb\pMVzdo`oUa]epg]]b_rvk[^xl^YpXYiiTbfxsjewlZ^iYgcana\lrqiduJg}i`a]Tpd\Z^qdg_cDSV^kLZue]Y\ll^^U\xVkxvKjvcW^Z_aVtcxp`VhCZ|_XwfcYcjvunfTTnYn]t]^k^jevG|ZoY_dae`g]epU`Paff\X]cTl{joVk_a^hiMd^fdd\ga[tdtOIapbg^_hpseQ|rRS`at[_io}dqnKk`dZrxg\D^ch[ngbaag\_LisWn\n_zTKZvpcXeaaPjg`fW]SzZbblp^efaciW[XGdcRZ\`nXE]{bXnfQMxm\Tvd[oa``^fg_s_\owpWeV`fI^vhVU`fkT]e{Wil_e@iPajYisg\koS^ejfMZtvTNk~]YW~k{cp\phe]p_[osopdVSbRhmSe_q~bwpgbYmselUw`VxZghncfmUZcYQczb`EQ[TbnaeTh^c`fa\^kn[Zh\oVKm^gu[yYZJ{zjdiR]ga]IfR\ypvpVNwe]Ymo]pjc|gZ_^s`ghhhnfxclW^`ZUerq{nssq^VlYUomhR_td{l^ghnW]uJdlbNckXkTXiq_Upiqcifygeo]Pnmh|j`rl]cp]cf\dk\pax]SjbTU```[lgmbUTwZjr`_l[\vszpgpWea\S^UNjKbe`z_`elm^tcbXirlh^X[\cenVW^h{]lbmflW]d]Rq`\fj]_Wxnd[vhhekjbmGsdncgotre\xj_Kh{he}mvgffqXnkjgh]agec]W\p[U[e[qb`Wrhj]b_fdiizcvc[^u^oa`giXfqVigXQ_fljRhslPzg\WSWlgmYJ^cSbo\K``hXjYTRpZ\Y\gT[cYp^`d[U__ZalXahZZed^^dvwfSZhMpdkmd`XQ^eOeRyaaglUY}e}cjed]Xf_gY^l|csrYPO\g`Ybt`tb\Yudkga]_agnS^r[eZKikeqc{[WY{ZlgnTPn]n]mYuddhly`QabfsQe]cUkZZ_Z^_RB^[mdyQGmuPclqLtYvbzd\Nji~P\_JLbaejj[f`]V}\tlfjfyZ\Xjpr@]d\\b[zwOD|dkcWmXwal^UfZN\eYkfUSiyp^ZeWUW^wVM\g[t`SXatqUU`\YNf\]vXddnmdbnkguX`GTek^t_lht]QdmYelo]_eeY_djoQ`dYrpaaKg}i\^\pTaX_f^bfdxeaa_}_pf``wkbl`QqY]d\ug`]cdkp\eetc[XlUj]XgP_sud_MugppXZbffceg`{eYewfopk~f]_n^lne[aXmgW~cfs`h]YeheRljS][ojLZkhndsQlec_]h=ojn\dzHhtukYn}}V]kz|ceyhZdkS^cf^O`gi^l^}ed}czt^ZSOidxZ][UfV\wpYbh`W]VWcq`[\{aRM^gm^Va]jo\nZ[nQZ`m`\thjW`_m``e\\uQ\\UN^s]ilXU\l\|d_`Vd`iicUfa`bTn`mmY\xi]K?cUlQncmyX~i_bpZnY]p_XiQ^TbnX`UTpjuaegfaemgeh|oYfb\hrgW]dWmzYej^s]lQlvXoiqpeNgdWTldrs^b`jYiMcZfZevWxhbdwgyc\wbgiw`wjoyp_h`WbhgfuadecNf]XoiUdfong]tstNebLO_cfeyaoqj^oe`^S[Xgdgb[db_deKleW]poaTs[iyqI[bsi]hljkZUbPcmJco^`_iYh{YPcfVV[xWhYYvge_smloidkVKZe_[^ijzcgc[jkkxfkqbcb^e[hPidiqbtYX`FV`ceekTSX^`n^nQapMli[Z_b\W]TgJtxYf[pbeaY^\Zoj[dmgWifmTwn[u_sho^NYd\evcbkb[kqnb^aYWhnRc\jhuOYiTj]Wbfpf[bmYloob^tkgUMjZP}QiQcledgfjlnVc[tjgmkYpsfnk^cZuifjXiad^ackVlXjhm^cbnXkeiub\ab|Po{tm_fTpUn\o]]gkuXrp\^[hZUomiZcZfcfihjbvWehXafcX`hajaXg{hU^ltlh{b^\fZ]j^a\^`mgpdZiuf]lcm_ZgiV^P\h]flRfeead`zQ``jioPf`^Ygdtl\_c>\WirtJYkZk^`\_vljjX\W]aqVCk^v]cRhd`hcadU`[MZqaYk``yZ4LUgIaem^T\a-gfspmglmdZ}ZhZdi]eileaoj_e`ccpjTZhamO]vmnm|v\kdtpddgaenr_}Thv|kX`wfh`d]_kpVjWe^ahbcb\X`Qz`axyjadsbmk^Sqo^jlq^ielic_^bu\hddd^dYnmgo^hjZgdm^iieWjbjrj`sxlgi]cibfnRpZV_bdFj`nrfsz^nrHeeFjbVjdYdewaNXbq^`ugaztcaonp^joeheQ\nRiSeyab^^\hjpsarr_\hgL~^rfh^upaxRknec`dWil}RVRb]kXylWm_Zddvja\krojh[^hguLjeVTl^``acYk`[iW^_S`aRb^dj`}kboh]iapcXaiYee`exles_QtuvVXssmSpYo]Fh{tgachOX`s^`rmQorXTjT~wXa\bipd^_h_Mpebi`iU`vlowcbSrJopmdlRkjzd[qU`tXga`ipZemxza]Y`sp{jWXfmmav^WmS^mngcpc^cxuuYineilminunfSdbpT]d^rjQp_`n]ygnTs\daec{rcup[Zh``gv]lqSim}[ufqfceodcnjrzOxfi^l\qb`KcvYju^ka_kZhija__ufossemghk_moiKeX_[Z^hg\iYgh[prt_iSRXldUp]jb`xwvndjpRqnU}Pk[\hPd]iblnrm~Uf_RcsifVqs[Rge^_\kjrxdicja`XqSn_gXc_pgc`mhjmb`pidjrSkaX_aX__PovnXugciRmVTtXmd`omOjkpYiqaoUedgbcgV\TTihb]way^qi`{d\ZaQ`h`hXfbbgbangj_plR^{]XvbiXdgwiddp}Vimv_v`m\Tj`ZvufdpdV`|]Zcdd|]]i_]pXisZrh`g]cbb_[pgelkpPslMiegepjdj_^`mfpcx}bRexhfzNPc_`c_ktX`mkWudkVingX^Zjv^{]vm][u\Wqla`^jozhfo`i]hgWdX`zRf]i\niQmhj|oern`]L_uhgok`{pasmfgbt^beZbalpesgfmM][Vqa`g}U~~aalyhTffYjOi]`xUrdkZ_oad_miXcfTV[^f[lXu^ZuhdejmrZhg\hvse{Zgxh]n^YVuhg`dhl]olm[ieicbqie[uu]ftfkcWcdknp`iafhngYalrr|fcZhjjnjerkvgwlzfoyUdjj[jqwpsvxkhkugWg^^ccYig]foete_^fbXu\klunT_rk]^^]hknnqhv]mjbfmex~hjkiZTnhcmbxinjgsgambbZmNiz\`tuv^bh]oeeVkhu^U|tmy[nbo]xsp`^_\pxsbfZmVZlnfji\ijc\ubcbvsot`crf_^]hjmSx{huwuzqqclZclcnqlhrfe^delbspnc]l[^^Pfc^cah__kybh~[d]]odlVn`bl^m\ed]_\Ugjd[T`PY\`]`\OfVd_fh}RoXpec]XbnhfRel\[o_~hgcm\e]op[=wfWZcjmihn_][meXcWey]fpXh\f]l`cm]pgkn^jiZ[\v^dbvYcn[`epdbkjly^jbd_g`ihk\^xtYZU`Y[VX\acmQuY^mk`mgYlp`YcadVYW\U`p_diekld_Qo[j^fWWZ__gq`fykYeejkU[^gq_z]jsYrfnxUVk_adi\i]Wd_cffOPmpYl[dZOan_tkwY@gbd[iepb]he[NMZfj^dadtS[_o_qdfubdpe[mlMWrURfQWgxfl_csilRWe_cbmijbdl\qgydQUk[hbdalYf_Z\ilmb`ZSaXWfjaec_ifbpUm~g`phUryj`ngjkkdX_\mkq]XZP[gneUfidld`Y_kbUkkh_ejZQ}ezfh^ai\ff_]`macbaobXcndS]hRg^]Zrm^eipxeTfg`fmuV^]}\f[gWbmy^kn^`fY[dpooZrqbxcWce[oaaqe\dndldoyg_cVez_ldivjllcqg_odlpbo`museeRhcqWctTYVhp}_aM^iwujZdZ[^kdhjkaogagWdnacSbd_aaW|bbmbT_]ojlYletifc`YeWWeuVTpcpPWaw\Db^pdVat[h^WbdhViwaa`awbSkXc_bZUkA`[hd]]`aRb`h`UWtVeif_Td_}tcdbSVZrcQfN\ZfaWhjY[oquY`xq_Sjq_mjeZm_cja_][erXim^WbW\aQgnU`av\dac^cjkpWTNhc~nNg_9[wbd[PdQZ^tZcmqh{m[hYqmc`al`Y[Ysolj|gbVfYeYXnhdqe[`wxXsj`YpZkhecg]`h`]dGal`^rZaib[ae_j^dbXto]henk]]agj`gd`mwe`^i~rfVf~pqY^o^PmX^aft_Yf~d_[`b^}pswotbbfVVg^^xZT?Qote_kebZUgu_Wr\ai|\kx_WWgmaksXMSSlXopVVefJ{ifSparcX^_WnapWY]lnu]P^eVfqegepbl_ZZ_bY^eqP^n^}\ki^Ya{Xp[yl[s_QUqbi`b\lYmucs]Zi^eSj`oU~][orbq\^aqthrngP_YZLmbj_`fw]hjeVfmjZ^chcsxvandk\c`j\d[`edn[K_ufqsa`VmaYrNneutXf]]`a_z[qrzZfTg^_[dsZ]a}XfwIzab}qSg|cijVehoonsbWbdYah[XbyiaSmn^jd^WhLaVWslgbpz^HRtikwZkaks^lwacT[SfqoRaf}`lfUZp]llLuu|bm`Uhkjfn]hibxX\UQep|pXWcmmsrcQzkk\WnjicdKZ]`vYqzoNir``WqcZo{egse~R]bjXwdvbdano\^rmUdjjohfXfDioOx[_seVUYue]Z^Jivgh\a^Wmda\efYoBUgvg_K`vmaqO[Uq\r`Rd[s\lgdvVgb[YT_Zts^`S_VUjrgsQlNcX\d^Sppg[]SdTjthym`eZwi^~efZ_aQ~]quW\[Yy_`ZbiruejYihq[qShmMgkwmvg_\fia_Kj\\zbbt\_aimxhgRqpjWcdcr}~jlUjT`d_`\hu\pn_rfeY^ylbajv`bsebgXe|_]mdkb{Zf^toYenmxeibqq]Tb\s~L_lhvOT`ghig[_O\ge_Uj`fnf_ldw`bsddh]xZVSeWvXndkb^bRYr]jNVgbPrbZTdqihQbaUeaihPogZb`dci[f_giaN_Nr\k^faaefpjjffLhn`aId_cOdihadcjTj[gdmkk}ca[iSjt__xl\`ki_ajbjfkX[T\Ske_ihgV]kgjfmhebO\bbfY|_eUYp{eip]`SXmm^p_fYdObTaakcW\YmQbahH]``eNrs]h_RcyXXU]hWdmnaZY`[W\fRbofohetgTa`iaUd]jtlO]bdidW[ObWsdUkhjnnimlgh}mbh^hl]\buDU_h~dcYmZZbZZeb\dVQUphf^re`_uepc]uZWcWd_cggVXcn`kgb_][VbVqQO\g[ehjby|fsaevgqcUcO|i|hbkV]rQlb]mcbaW[dUfXoTjVfIsh[q[dnZQbb`a_OvkgVaXb]a[`QdLog[aZ`fmYWiI^rxccn^|rYgbRc^TxfKSUb\TPihZ`fgZU^TzZfaYaceSdYd`r_j_ZqaddZEh`fae[[wgx]ye_gYhZc]ftdYrK_o^XZT_qkmk^f`abgi`aydYY\d]E_o`fTreVx]S]yzbRtnXYij|`\c^_fj`Rt[qYg_YoX`ZVsb`_\_`^nOjltW[Y]SZeYSePhha]i\]kZc~lVoegjpva}[ebkW~Mbxfgeh[meclh`k_ZY\n^aj\Qo{N_|a`^RgZbVaUXiU^VMrqd\jd]Z[Q^sZlFqbea\gUl^fWtZq_jl|s\ufr^mmjXWsVcra[saWgsonf]hvf]eZIVSfpfYyXioTgr[c^d`gjhpSdZxZqyQk_^eoROvejx{cEcenbWnbdb[[lxtrgQyolxa{rsx]pzW`fFngjeddxUr`kUVj]up[nj]awc]Xievldfedbmb_vZjpil\zndUd`^pphTr[WoS]aepKVqxfo~z`hvq^fgeup^nFihsa\rgp_k_kuebajxuvbhltPi|Vt}wqmZ[fqdgQea\b]sYs^h_\aTmSfYtm`ikcnxj[kac{uyybp`bVthhgXdiZcZhabgb\Ufp^lbqjvohdUl]d^Jwiiaa][dfdmciwZdg\YhX~imnoqq}s^ldo`flo[or[xq]keauj~leofUph^a{\\rbyai_\qoxecZ^qZkjefX]SUk]g`i]WY]oJp]U_hccWqrwqyeob_jWivcd[Qxfibil`fm]bkgcum^dde_dolpf`a{gYWRhra{]lpZXYsbajili_SXeTbWa^Wi_NrjRZye`jVinW]t|Y\rZ_t\dhtlmzttZhNbnawqTm~n\`VnZZb[viX[cugoi_rmQi[kZwebUdsn[jd]a[as{M^fshcZUij`iYbZcfn}NuZ{jelq_`gVseaWaegn\hQqYR`Yihk]MY`hg^mpfkmjfW`mqwY_thq^km_]`psmnVu[XuR`Xoy`c`gk`k]nPpaggWcbsha^brtbmmbTiwfc`aoPs\]oevldrv\l_YgYedqje^^fRkbced^`c_ecsy^|Q\ba__tPllac\\N`hSfVbgx^mpmncpb`dpa\mhadr[l}\lagaiKfx^\WxzbXdxd]_tdkhhbU_mpV\__fibanckc]fir^ZQjbq`\kfb[kghpZx`kbmiPlW_wtej|_ZbdWenPgkp\bnu]b~gaekqbyv`YXem___`U_UJ]d\qaeftih}nm\kv\`l`akWdkvZhc[`eeS}v]e`_kT[vhcd[a~hUbP^paj\\`r^_g_ureg\he_bn[aeff}nZtccXW|N]ljltftfi^l]\_\noOXwfMn\wU_jlisgp]Vpiz_es\V^Xyhhi```qdr[gdXvrPogY`le]dyaq_S]gdYfQk`UW]d_x]V\dh]ljx]aXSplmSlWp^qhMX^gykn^Vcfjm]wmasWpkYgQl]a`Q_kaiuJ`}OghjerjUthT`][nqkrkag=[VWfyP^uuXQ|zbYmiefZIkj`a|vd``aWf~Fc]gYPhT`cSjnR[TqdgPicjhcP^KYlVt^j|em[[jg]mUr`ThqXZVs^pW_Y]`]\Lco[Z|YuXo`x^~xjCZmlPsbgWfgFYi^Qtgd<`ffep_syj\^apoMUmdua[_mcWhTbj_[wRfO_lWV^^hkac`ljgeYglTU_aoedTkcpb\[`UbdfsgiirNyJaS]avmXll[aVencmkatbmeuaoo_dtegm^QormdWlr]YttMbt]w`WcwTJ\cQlgcdmNh\Y]Z`s]d`[opW`Sbrb]qQ\nfGOdgiUeIY]k`k^bUatQRTcn[jObgjgZjtf\jm`fswliVWXdm^mzfslgep~aeUgd=qQVwf^dri_L{KjV_^h|YXtf_[{[`bWU_f]ZPnR\^fiqvTqehg\`cU]n[fg^Wo_r[mjxieP|Sdfd`b]Xouf_T[a_aotMctz_djtfkv_fOS]X\g[`fh`WZDuXwaRV}klMtili\a_doqclioyn\\``bV_pYOYbdrWiqXhghgMT]b]d\\giZljozOjlrik[Tf`rhkV]lmcgpgm]pgcoqkhVof`nkTU[{Z^XYU_uUsj\c\lZgiFa^XascneD}\cMulmW~b[_Xeq]fYSlUq|Sktdm[k`kZijjSzikmh]ayO{gWcLXgSgOZqlXn|opcYkTo`bXInvpoVvgg]VtjnaTsuf^lmiypnevfjx\UReaWmy[RcWpw\URWbRd]qVdbi\[cVejl`m`be[`Xij]ZV]Wffm_zo`wztgnQoqdSorpfe^`fQr`}vkmU^fZ_Yak[_qmjSkc`ulQemqniq{mulZcmZkcSe`\dPbjajh{Zu^sc_^m]scUrYTqkGjUueV`]enX]TUbg\Q]`Vky}fbSco`}iZrRS]pUWvpUm]j_Z_^i^Z`nuhf^z^mgWVcw\\`hcXY[YKfa_vb|hxVYzXeSw^jg\bdrdeaZkbaxdXfYmWapSaVbkjWfqp]m[qegbZ_Ra^V]ZfZsYP`gsd\grapbjYewWcOdai{yZvVqefo[Zg^eqgdn]kQagjBg^ycfiQaad_befays``dWb_jsWhsa^`bt`tcZif{Ypm]Wb```^`b]i`bM]_yekdf\`nhsfuQd_u^rZ`ako`PkYwh_ec^s^bcqpemTj\g_s_pkiv`cb\neYb[fRfiu]dfanWgm\Xg^]hsY^Z]meTlixlfp[e_gTY_zpijjc]]zsalySqmclXaUne\^a\keYmmqTa`{LWxY]hstncbY_kks]`fb_ZllfcVt`zzYYpcjqljPwegjWZRhSUMcZee`Osxfdfcmbs`wngm_bSZg_hsdihopvZuw\Rg`ncdasixztamzeugq[aghg]e\U^Xbshmnm]th|g_dY_lY}cjflWawhhn\tabgj`scldf^fdo_`bdy]ep`j_\\b`dt\]nxchkd_{tenhlYxMrceecdX]~kkbiccflh}Zpm^kZhcnpcpyge_jfbgscdXjlmOf^am`tjnihladTZ]h^dYf`iqX{_mWh`Ziq^dk_takYkhfdkdookf_clvgXfdo_g[trThmt[hgt]\qZXni`de]YiegkmV{c_Yho\lY{lgVcWlkdwjiY__cv_tbvjpgekgnrjblbek`_^jcie^\k^^edf[ho]vm_fhXTnfthi`p`dvgcbgYOidSa[cbQeNuy\apUmdfTP^hZ]pdanZ`Xjdkmv`qjuggYhkcoos|pkm`g[N`kh[ilaY^`lgcJoyf^meQ]TjnlvklmftVbiZfeih[m__~_XZgUXfgnidik_aXidgkZca`g^ftTxt]nTbmlZf^WcaRDocpqs]YIgwWhVm[Zi{Uqeanfrqyn[Xe]YlanUeUeXbid^TYe~]z_l]Vs{]xtvdnlWO[]WTr^wdTbzcn^alQas\pstg_^Vf|]]m[iaNQvui]bjNbiVm^bcsk^Z^^siekja\]iokVCUithlKh`b]`[`Tcm\_YbgXj|]izfnt]hZbxenf]a_^k[oTYU\Wcyd[`c^Yjiamcq][yh\o\^^azhme`}jhyeb[[UWb^Rfif\\wlktkVYbvlZfg__]pYVdOddSkZwsSWRp^[chhm[esarjd\aSN`c_eh[neWHaX|\yfgyq]afg[[bXmb[f}|YnobgYgu^~_`uovn^l_ikirqsd`edURjma``\VX\m[wecaaptccauoXafnwjUT]bY[_{zyh[nrgbbk}l[Y}Zepec^mWlxnXjy^htsvjrbidf_`[Xfif[`k`bbbfjQea\[]_a][^QfhY_miZyc_iZ]fss>Swi_ebTiitnc`}bX[Y[pXetlbrkoN]lYS\xTbaoh_fRWo_n]N}f[]ion[ejybb^e_c_ejcbVdV^YtxbafZ\`SprliqvkeSUjif^t\jrGibV\c[haLaXFfZ`l|lnnZmhN]iSnkfTwgXo^rYlW]cTNrViS[\]Iu^pWViT^aeX^aYxWvg{fbY[VZgtkdpbwY_nhRq_Zv`enbWSvQRbng\T\gtg_lhs|m]J]E^^mcsSamhW{smlyfuU{`lVcoWjXrc[`ebkgkdZ[rfQydZliRe^Trknt[^\^_jhhRsXk[tZatvoRzovvoPVgTq^~[h|fv~f`obSl_ZRlnMo]FmleT]p^ubYhhSbVidl_lbv{XTqhcZ_O`ojZXe_ewf^{iZ]nzcikgdsheh^aggdsbkpPhjaZd|~ZaYazeuZahZUZW[egdVa[hdar]u`qgl_lc_jgYqegY~k\^_nToq]`_i\y_~U`tqd`Xe]belprq`zZo[oYQ]rex`UfrYhrfaqhXXPSsja^[vb\fyU`fye`YmbTcqqc\bcce[\gieZq\qbn]jhr\cbh]ZqzeZnrNegYhrf_^vjlc[fZt\moci\NadhfZ\S^zh]oNnZn]aWgK\YMfRwatrQsYOb]XvOgK}a^LYZdj^vf}^kWlep`dX]\^O\`nbkHWscYZcmKiPr]jammUiq]GYd^VxUfjiaUe`nle`cq`axGQ\XdSVydighrejgbib`ZhjdXiqgT_khf^zj[^bYma_kod]Vonc`pWkfcgkegX\^aiZqoUkyfcxYw`ZlaszpkmaqPfhVpdp^`Tmt^k^h]`_Ud_^ymQ[\_hygcjYr^x]f{_zngujiZV^_^|\edx]bjlbTddg_|eaZb~g|pneb[]kYidccqs~Hqk}le_mgUM^^ZNRecsjp\RImd{beWWZi`quWr`[Vr_eaPcknvj|`uoxZMxdeW``|f]WkefkLoaPaflaiUr[i[YHDLUjljaWf{`fukcgqRh]Q\b}JS_ZbRhuighccgelaUclXrlhvbbScnN_Wck\mUY]litT`a[VYlwHFbUZqbG\a[ghUbdYzsA]pSxs_pm~gNe[mZYK[YXiYd\Oan~w_XdmmRnQd_inTbmbbhubRlSl^`^Zv]qqs_le`_jjmm~M_Zfw[yYa\v\]fecY]^txkbkZt__[]]f[|ZV^heff``SP[iqljeOjctdjr_zP_}nM[bz[kcm^cvi_zhgOXul}ld`eZRun`Qk[a]e|k|bgsge]`j^I~g}YWofYKzVZXnZ[nt]ke_^d^cjgtTi]]p`cgjk|_SxmcVVcn]pe]Xaki`}Sl]qskMbYg`muqsbep]m]`g_jafgwgb^kjnbzwW\jYLgZ[{^{V_ggaYgOdb]f\oolw`fvufoeeSixcdbP`soj}m]^fR`uiOuiZybs\ibs`hlicNiU\r`jdwcen]]pbgwziubXmpksijf\bjr`ffhXiidz|\YsaZdzcW`rp^vkZhoxvXqln\ncnboyQZsj_g[]Zij`jewucjlb_LZ]tFukedfI~aUZjgRYfo^gugV\Nds\[__rR[iLidlnfqe]\c\kYShbrVobegY_uqWhdOhm{yceaUgRr]uxohU^kij]SQii\cYT^UUd`gezgsei~`_g\ln\ledridcjdhnaW{lk[gmqlhesfosbTcwab]aO\iUsZjhtrjgulQXiSooZi\nobver_idbrTbYkcedZabqWRfea]YlfWn`gqlRT]jcM\X^pdnu__ihs\llkWZj~hjdWkZvec\\`UFjrv{^VShc`Ywgj|QUhcqRmSQ[jYVg\^_cnW\mYm`kZJh^XbTgmchiccxubWqOVQ\g]gI]rNhtUzl^fedhhNPxsT^]jgl^RYhc~wpVVa`pYlyeXbgdXghONksljkY_SvsY]tXnRfMZ^nSYelmb`\cY_]O_wlTbdZ_lfdeq^n\ZY^[[QX]^UbdbgVgP\_UhugWciRYMsMx`ZXki_l\qg\xY]U^_N^~g`\nkNX[XTbwiy]gf_bc\[he^[bi_[hc[NgRsXegMnWTWgXrm`hLQqb_VtRq]V_ja_kaS`QrcLse]vob\nc:q_[h[hi\[h]q\uaYkhcnZgklsj_ecwkmZa[XSizncV\oXe[fobXUfcmnqotO{du|U_\Yz_[gKSeo_i`yuggZk\QhZx^dz`mc]nsaltentaWibq`FUqYU]bbimu|MU_j|pgZnkbW\v]nm[^\el_o\o]za[mxRMd_R`h]e_fbkem`zaide}Dr|_egaa`Pl\c]gsMY\ehbl\]cadSmi[[uDajW{LSp\zu\nYWc`\LZUgema_Thh\o_hdYBpdYgc`l\W[uiT]Ujrhndb}bojboEepvl]VjcWsqOjWj`i^[S[ipbXfyTdUY`cgS^\\[`Zaefe^e[Yeh^XgS`i][V_gg[feWthy^_d``f]\^I\YXctw^bdZ[\[Rbk_pn`Z]Yaoidk\^d_E_U_lP`hwSmGTmdZWsgn]jt`Seee]ysK|]norWZavnohpe[_irkkSoviTaig\o_cs~^[xfswge`g{IfUahjjDaZClWsj`mfo\]\ZYhv~oc[ncpMjh}Xc_wRT[i^s`heBOPgVaZj]f_csdyRajy_bjUx^UY[\m^fccneb^UpdoZwcTZbm]ceX[][avlc]ST_hpkiQ]lgbcdi[`SdhnshYma`nVmfOe_rRPn`bacahcVaqe\XuJYVeXcZ`^^^cqcYJShY]bcluLkzZa`^]jUfx}j]wpoTZneqbgWuph^YVj_Melnidj`^chaXZWng[odo`Utap`^krKbb]`j`Hn\XtWT[bXft_mptheWvjf[lcOnfmgVgoccdi`RggeelhhZcZha[Yc_cR[g[eQgqhXw]iq[TQgSfRZ_`X\SvsjWjyPX`kT\tY\MrOpodfZbk]lxnQba]bwyDXuZr\\rge~xjqj`UnBiPf^slkgn]aXVubYpihaY|m@[T]saoQi\rvcNhc[yd`djUaUV`uJucgebW`YK_u`aQLNcb_ZWjav`imUw[Vwepn^fW^Tc\f^rq`NhgxrjpctrmybPkby\^dHS^Pxtgb[m}qgjjbi_Uhg]vmwosVc[kaajiV`bLmaXmRKd[n]bXik_txmaIYV^hsyWz~jpc]`qcaBleRqUtMVW]wRf[Y_c_^ypqi|mIX`cjd`i[_ozTke_]UXjbfbgmsQkP[yb`]oo]bmX_qfg^lH`SoUa{A]^[Paur]UoUKdqef^ur}XUyfqRceogl`g\uE|WsWO_kxOMLfdYlhh]ot`siMf~kjSafqZo`mha\|xYwmqdWNnhJa`biibskegiuryghok4]usY``wcFqkUfaloez^HXnDqoo]^]r~em_jxny{y\lkm|UeWdr[l}l`ThWfephVSnm[lrbtsS`mS]X]er\[oMm~Trlqv]UVbgr~Zn_ugflqr[lZsooiqbd]Nsh^{hptYpks~d~kiu@akhiqq_YYbaZdYfrv^en^fhcZs^CauxgYgy]hto{kh^pvzW[fbYkm`Kmhppti[aatRdfxQdgIe_[^VlayoY\d[v`]SgWqz`W}``^Zbeu}ewjke\cg`OmY_\~i_nWOa^l]aqZm`^gg`^Zb_bhqcgT`D[eojo`cxV[QogTjgX[rXoex]cdkhh\dx`c^su^eagxYg[U`q]]dd^cqL`gLuijeE]gsiehijdh^g_`X_SZpjO|ajpVae]bbpRctn`jpeXWhWa[TqgZfslYcY^mhLmnPk_sgv_kZWcmo`gGagsH`^vQzWss.U]qdbwdfz~~omd{hY\hzl;w\WIphjvryokua}rbunmrUubWrvhuspwvtk^qbytoznpxwxwiznrx}t\qki\of[c]ckfrguoqj`{`pxst{ao_rllqkyv]j}ifqn{l|fs~zxvWjqkVkefv~yrgo\wR>mjkovYuluntP~v_nj{Ad}GvvjPXkrs~l{wclocn\wc~q}qr\fMquTzcyyuquzajlfqhYw_ZXk]qoiogUcYgocgq{wJnzed^zjaaSZaTe[c`blb_tV^__cyalmfWxbgxrPYRaQ_facxpcY~iXcY|twmoichdSotMujVU_bfbfbYhZ`bcwbMXwhe^ZagVjkbniVjsaohidv_~dl_tjNfti_aUZpb`TT^qqpgZVb^afftSuhr`WaeyxZg^]jaj__d\jpb`Ue^{[ia^c[i`ljmm[fyqSoPU\l`mdbolrUedZ^vmsaxikYbwk_oXlP~`i_[[elv^d_^uY[bh^`Ypaj]`Pi\iX|`^c\eaepeq`g[mon]S^jggX_gd[oo\^b^g]sQxi]yr^^nmhoUWwfbdle]ifrjW^\pjdY[bp\`QfyGYmcd]YpW{JYpal\O\rkVYaclUWbYm{nZi[^aZd\]Sbfd_jhFOhW\^Mtes[[dZkYjXiblx`c[TQZk^Z]frf]{kYg]dc`Yusn]tXbQR}]j_k~h_eSsW{eXh}dxc`fk[l^f_crhi[Xca~n[e^mlZXgU_[nmb[wXeoLe^[_TPkz[aSNh\_mWkc`dt_xn`g`hZfaen\_ek[`e_hfx\Zflambbei]NbrgWVW`Vp_djgrcTaaWbo^tmd[wZcrnf^oiVoao\cb_MWefwtqfVoMg^jRRRZYiTqsJnkfkZ\gc{[Z}sqbJg\T[{`iut\^hfnr\`aeVXifgU^b]ozh[jPf]Qb]a[OyZlaa\^b^}[TZ^_|\[hSsa[yg}^k]lYeKUa^zp`\kfirctW~xhh^YYUs[fqPY^\l]PseVqZjdpO`r{lmXXhRiemH\`OcWywUb]\_Zvg\]b\ybmt`rpRSoolh^a\hmGYWkefXN_fk\][mj_]jeYSel]j]igbT^eOcj`X^l\i_ddTn`pbtwUw[dSWgg\[ogaeuPego[Mi^aYhjoTJVb\N{Skd^PkLfribU]foangiflw`]ZU|]mc}Lsb{cZmazlTVG{NWT]kiPWk}h[ZMU_kt[~tXafSZilTMxkqbwen^hokkd```sWdooajoi\S]mmiusp\eViUuhIg\MyvjjOaYQTvT@u]j_{hk_hjotx[__Lxou^dY^fjToaiZdX`e]zqkpXZ[eZcg\jxLmsrYmUhfqjamtS`r]rwedbkfa\u[VN`lr]`bR`gaBaZnfh\h`knieo`dq`q~baqDb]pjgWccxkc{e^`xj\xbf`isba^njYb]l\q\zo`pc_g_t`igitVcdWaOOqpbu_igioigWZRkc[xQhyyxjcK^`ja݉_Qg`gceq]M?gb_[[tUh\Z^oas`ghl[T_Ti^es`LUdm]Hlbhf\]muboubWBYSVh=sLbRP\OU|Zq_gfvaZ\Vkehx{`rg_{ajc\r]rjw[smXdjOvzh`cYY_damkVaSpWWV``VMkXn[glUVZedkNpPPQbxeavf`dLfXcmNiu``ggIbngN_Yepotg~nLoey\mHn}noNcfye_oxrXeug^`ewqkfxj`ZtwjfkcqYimvsgolsuaYkapfnrlvpnoUdeukN[j}rkotsacwgkzcZphf]Z[]ppn_gie\aa\NmpqVciakt`f}nxd^~}t~|c][lymWyeb\euilj`t[dlR[n[||Nj|]feb]jcVkhi[XriYwtky[`Xguakamskzg__YbyZhkuc_on[wbut\jb[`^fthcUhD`kabX_d[mtj_qadlUUa~hknxkasckon\hSbxlztyc_qg]le\fi[fce^TfdyfI[hVb_gf}`\ZZdU^URVfXoHyp^Zd_lml[fdeUfHLNWqd]d_ubtdZd[GZa]bjlTldihDPi`esOraV`q^Rv^Pif]Ys_WpkOXkkK]Sa[F~bqfcn\`q[^_qks\fRSRa\XhjZWjWhq[lme]~Xf^iiV\]Qu`_mXfcfYbV\kmomgYeDvpVhsba\ced_pYrgt\e`qYUYm^rm^rexav`V_Umb^fTrad[dF|emsgfm[UjOfxSpb[dp~ck`gg]xbh\bvQl_vcl{afdWYYobhqSk\bhRtlS\oprxdgkOihqe^feVV]Nl_ZToD]oS_`hfcdcwf]~rZn{_pfrber`bfkpbTo\VyewxgxpU[g[ccjabjmjrUynboNZQ~sYUZ[prri\TukZeyefgT`na|VluUg`kdmqc`jrglWeodqlXk\e~eagt_kbWuuXjihzyow]f^ktecXd^rfav\icmboj^~YqO^adc_Pg_`c]KeiiogbvdVa~fqiXdmhic`hdjqo_j_WYbb^I[\qpOh[`kfkj\XSm`cwf_\_an[i^nbWs~x|]fi`dDinD^lcdvkjkn{mrk[[W}OL_^jj|h[UejPqncYT|oiqdOu]kT`lnhulbRmh^`Qry^Y\ljrgUgpwjZk_hf~_P]`Wm^Gc_kpmSdYajZUzaa}_aZXdTeo^U^j[fVVtXlg]}oesZ]`uLh_k^hj{hkVqufhdj_YUqckrsjsPy[aW[Ygk[][tm`bChiVcmlWmlqW^dZw`UWRT_[\kcdb[meOk`hHhfh[h|Ybt_hbr^k_cUifbYSfYcgupyodgR]p[gJRocV[Xq^caG`obb^e_eo_gjaf[ne]\fdWmm`h]fc~^R[e]emzik^^KTwriZbhcZv^d_cuPUncsZ\bmTahZ_`Ya]RQflbJtmiW\bU^]`yfa\ics|k_me`XvUes_hRa[Uob]b[`qsevcV[[qlbgYhejlX`u`[Kohhcidqoohl`wo`gZueO[altjac_snYkqYjqdwUV\W[vtcf`odveVlcu\hcSadf_h\fnadhTedLxkXcoj]eU]eXprrq\kcf`\hfoeZb[^hzUq|jtci}paZ{efXfajwdWUcanbddZ\QTR_q_gemh`l`Mjbm^kbxcsdWdcef`x\krX^si_Zi]IYif`q}``\wjfahVRbQncPZ_]_V\Y`fZaulzbct_]Zot_k\[}^ucYc^`l]fVcbyssSYfa\d_Ydg`h_[[yib`jSe]iahes`zXM[GNkucLRgrkgYuP]uUlfegh^Yd`e[cVh][qaPoZMpYTv[vv}a\Lpg\i[gYadoX^rlZdrdVj]QZdm_QjWaniaLzWof`oOj]eaaOTedp_vcgxaappc]n^sffzoq~lbnnNZ[TOgnz_`aggen_hX_Tooorj\]TZZj\TZ^KuYYY_lbPag\dMogdtZvc`Ssol\`ogcLT_rTzSSYPavm\{VyPIzZphXda`gm`qkhVpfYmjQPj[[\b[fqkXNukd`m_VepV[_veS^fzuVtb_sreO_\[S`pqkfdWVScmVU>elMyPlSPkyWcbbchX]aigXTiq]f=l[labWjalsX]]cwexlU[WXRoU^i_edE\`rpjlRzYee`Roh`qehejueqeaT`NX^[jYlehno[fslgrwcaMwlb]Xih]^k{iK_Z^_`jLfRTVeySf{roddgoW`n_Wxf^]ugl~`_\[\kbVg^o\WiYPg_bklhg`]RT[ikjjaJPddohhhUVeXNelNbpdvebiYmnt[fV`lg^[TJm]oWkmj\h^qo_hkaLYggR^iuwYR_i]UolUo\^ygLVR~_~]WX_VJnyaRqR[P^gSbkviYt\zamWwaGj^e\l^Nqgv`[ffQa\eGZkhgdRq{__fXnyhn`rSNdGl_i`jIY_]kqi]`p_Ujqoe~gcrcglm[[oheQl[hoaUYQxdqvus{Ggh\NTee_r|kY_Xn\i]}toEWRjfKeg|Qg|N^gnmS[M_pbigy~bYqmbpTrhcI^hfg^\pk\gZiiid\TluccR^Ie]`icXul[hOsnmd^VV`}nSgrkbiPeMfTkWWj]a}]qaSSZVUmdrk\Lpg`qVfjtpWeO]fhRevib^ZjlReodtVbmaledkzXxpx`diUhiWnYgtccl^]fS^{\gTaeg`NiCggWY}jyTWlsf\zeZ]oKmRidfsb_b\crf^emTZgcj^bSxElom`gegb\mYi`pnlohbqiw]`lmoebhsrw_RGbdXR]vfho~jn^^_mWj^[WidSvdewWodliid]xdf^asthjaxhnhfc]ntmhhVib_|`t}hVckw]cUg`\Z`o__kccO_^ee[o_iin[e~kXTugfd]pnnXbmes}\mdgjiad_ebQoUqcq`gzrlNjfZk_[__iMllgocnhnba^aadagtfp^ltTtpysujYSip][nViec~fjXhc_^bmdxefdy]wbppojbdgionkomuigsUpWfcVoghb_sSTobe`_YaZ^k_atXV\[esZ[ljgokgjal_hvb\grr`fsstZbqpUabkiodZw\ukahcam`voeacxuefqkWpeiS_ff`kcjbo|ip[^fsYeycprc_ikjav_a^\Qam``bajijrfipgesuayejjsonjo^loXak_qgcckZ_[rf\nl``n`cdW|vgUcjj`tjj^gi[ekadmXdSmd_hfgV`jqm[o`et[dukfuso^ndkagecfjSq_`yubfZ\deaWd^eosf]jbprXZmk\a`\ecekgqk[i|fj]ztakdtg\nnpfrwj`dhaa[bhr`wlORxqs\K]tyb|QVO_flZbpX\xqf`hV\zXmcdbfcQM[n\y\ebznR_hQhit`e`b]ZA^bRfuuc_maYf_\uS^[shXYe]}`mfpdgku]xan}aVxWfqaqtfnmj^aggkimWfcZ`{b_Kouvid]qetrsZjk_a|bhRzk|Qekj`oqoddmffry[beEfylpddkfyp]gQ]tYkZofrbkr]VPzel~aaas]jUv[fkjZ{d_fzYo`l^Wofgt`tUcYRZpXbpWypine^eYdfiXXppmy`e~bvulhpjj\ngW\ek^tRq^xsnbUhfiZ{Y]\leZSKNkVfroRcj{]dbpgtd{t[W}Tjd_c[h\k_vbZs`ad]a[bzSdlp_mcXrDglhiYYr]VkGjgdiaWTgNppXZted{naYklXgTjXeyqa`Wb^kaxhovY=`pg[jHak^u^eq^_LbVVkaYeXJ\ojTjeppnn|PgV_]pbhuMaWbr`oRZiQzzdrZgbg`nf~}f[ovhVkV_cfhRgzd]`kTb`jea\o^iXnfRYfXok^e_`IV]N^T^oe^P_M]Pffmbadn_j_puhhaajVdfyzZcZ^OUcfgSoYei]mh__ajPcrbxbcrSkO^[_z\cjql_Tta]paXZ`VSqWbc]`bwkpcRhqpaek[saqccrcUcQyfo`fOlM]ebWh]|adtemsbv{eum\e]y`bmbqhgcRViw^[^xTncofOw_dy\e^fc`wclrQZXavOV^U|R_a[kK[eiUUd^YUaw{h_v^kkdTojRwWiRisx\uobfyrR|jmiXsl[j]|YlqhwdbXTn]Noakmv^Us[gU|\hgTld~o^]pkaVVqkncSKabien~zggijl[cbU]KnbQ\ua]k[qviibs`au|w`qapqb\nsadneU\Y`adlttxrXofhFht[[aY{VTzik\P~`^tclinxLiS]wdjwb^Qmagdcgga\ai[ZuTaXy{[c`}fVq[pWgoVs]rVoXY]bphe^`dZlcb\eydlc]jlRjXkkjYi^q]qkSe]vigc_gbbgko`ftdTciZk}S]dqU_Th`ernu`bySi`_vaipsb]aokg`aoy_pYaq`t_jdeayUap\O_Ypk`\pYvuxeZgj\cwjjbjnX[fZeqe_cfj]jzSmfdwpqTa^yhZ]Xi^cof`U_vTVrVQafhhvxa_tdhXPjuYdfgX\pj[itabcXjbimWgbhnSbgZfecXyzX[tXbVVbbYzwr`mfhXb_]S\hk_WkxYemc_WZUPMba\`\xq]p^bVfbgbmiXu]SaZulTan\U~iWf`[jUoz^eucmariV\lUuv]Y_jk_oo{hTUJXoZYdcagfVhlTi_`ViNS{dTSgYmYMVfVbxk~cZZyWd_mjUecSV[SpSmVKThhV~jn[entRX[q`VsZQVff`X_Ul`SdrdJgovZ[bxqjc\Zq|o_kWoTdfVQb_\TaLiS_Ycl`sWPcc]Rg^kfy`[vVc|ge\blki\dVEY=oeo`|b[t[giee^m_^TcjNis__[_k^[]cTayJrdf^_^hnUN`|ohWdpbSffKZ\^gTjiZs[eXntqOS\vS\jlReaYR]mXYf_TiQ`W_WgR_njw_lbXWTZTYp[rondiao~jSTmzUVT]fohbqX^XX`wYacb_vUT_z`_[y`cqX`apv`VTWehSUz]R|UkvYaSt`hTwdtW[ThtYnhwy`YdghIlj[wucpbebttXUaketjfEmg\ategbaa`U^k_gXre_khk]]`ZoMi`er\hbamhl|xYpagd|[qQ_opW_bb]koTkiqp_nl\f{jVZar]p_U{M~nZnjfXfX}_jqdXYfmRp_Wqg\X^iRmfcakkd\gTe^efphVjcg|loudqkXeJU^cmfem[b}jeYmlad`ahnU]hzXgmvdcdQ`zg[`|gawdn]vl_iSj^f\x[lel}qj_VWnk^tXcrj`akuxdb_jRXouSVfkT^[ld\^Wam\h]]f\hJiwmdkW_b]snYxZakpiam_flixej\T[xah[bU_n`m[bcbhPku[e|}smpebmke]Qcbigz_Y]pY]W`hnqWsz`_ghZ]vm^t]ow__dgSWllc{ggcaffhVaredXhyN[Zc^mgahj[kN`wins^dbtfgodRahehsrW`g]d_pfsfqfs^bcphhZYnfxeUffsx]tvzkdXcO]jZygidawZf`{gkQMhUs^`iqma]Ygo|fkUnd\ok`hci_kcj~mwdigbyPhYolXadiY^mael_yj|nQvfnb^lpxaogb[eOdieXkhX|x^nmkI^olqOitKee|vdm^T``wkdeX\i]ndbbo\crVir\Y]BkYka`iu\e^n]anfR``hd^YQnfgkZb`eiOch_rpkcdsVeifl]wYf]c}__XkddGtQZUSUhhbgtuc_x_j\^fbUoXXmRkUw_bhcng\nXRbYogY`o^xbXqh^bjfKmmbaTSfehKm]]c[_abqq\Mabx`_^cW]k{Wfti`zMf]gdfWp^ekam]cr`_Xdf]dx~v]T`v\_h\ZewZQ_|kiizj^wmgsbjafca^ae{bX_bk[hShjkswbrl|htbY]kw`W\`q^hlcUx|em\cUc[hYZUScckntjZfcqf^bb\iXgfuc_WXr\dfi^nfnjjtlcjY[U[djxssVc_]m{j^f\bf_vq\p_cdtronirqrOho[`Wp_emdRumW_XWZoVcT_kacvixhqnl`ojSqjp]q^qgohhb`]TrYaWvk^]_fo~mfnxZo_jJdcZt_qbcm[xdjdWWs|]slrZrvggd^gjvblkrd`Vm_kdqdcxbmZg]`{`cc`]a}^\Ym]]`X\qlNalYfwd`g\j\f`l`gpZ`sbhw\dqZahTTyVnc[_^c]pjcigrhYwXgj`dt_o_gm[ldwrbmWrh\gdhgoaLoc^hdfmwi]jpccVpY\a[]`xWLkhakidVd_gcqrm^hvesnZoY|dg^p[pnx{\bemxetilhzra`g_Qk}bmZ]li|uUXces^Wpsu^r`e]VanqbhYg`]poSuceeco^[cufnup^d[n]sb}`ZZcabbdpmefcqkhWmmi]pmfceh]oirknXTia^]_bhj|oWjQ]cdcic_UgqiZ\bs]xoa|hYE_XbNaHbhnn[SS\gWYEpHhRhU^jRY`kUgVh|bj_vgr\dUc[g\WPahfbWaldrdWXWUlbZ`g[undcOaiDtdaw]dHrvSdZlJP}bxngdkYX\^Rk`Yp]RdbfS\ivO[k^QdjgPR~WYacNTRTZcahVeOfpNkMc[fLfejRmmGFLIVoORvzc\aj_MfXKQymQIvR\[W_]s]Q]cvnmdfVkZejfXXdvzyWHOhejPfnj^tihsf^\zhbeaac`\FXhMWSemaVUKH_`mjjfgqhbfbQSOeRiQrKpkci^WsWSasZTr_b`YfWis]rQxh_LRNZ_]gcgggcazqZx_dW{UX`abkQQZuZcVSbhh^`Ud\\zZqtphjZ]`rV_`V]aUa]jYm^ppgb_YUqfhvqV\`a^^bd__]veYckHdeShWOZ`khjdkqin~lrwdQciordbbNUW^iN]tZ]fhZ\a[\kqSgWKrbOLcQsbaq]stpp_ccdCk~ZfclfcdzMUdRebwi_MX^`dIW^hgco\e{hlx`kOapmTTG^hUMgukZYd[cwg\Z]m`SjtdTkbpcWZcTlbbg\Zq_KjpxjfUd\^gyl]Zmam[\gjX[iMhdgglkY_Q_[g\uXT`ZUNT^onORgZdUN\TzMqdgf]guruToOtlieimhw_gbsrnkl{ojtaii{neYgebbSbwnQircmUkbgngmeicmffnbUyj`kadmmeomwfhakfdphbdb]^\^hqjzVZnchfj\kko]gmoviwudZdoij`p[XcwRu_llg`^d^e\sy[ielU]pg}al\bgfag`rPchfd`eqpr[aY[opbfuedZfd[hieduUoewbynmm_Uv`i^gvbkQPp\d[ylZXumejeqcehSes_[_Wci[e]ji`k[d\krw\ieqjaji[xV`hmcdojjcegda\dQWcsZpaXwy`fsh`edo_g]iewua]k]rX[deT^a~gaWca`af[ws``cZh^rH\fPoyV`b_VfYlt`UOniftgfpgqfp\ujniX\_cWjXvWitlRUjoPgdhk\Z\wN`Qojcnbi^hoogrw\Vaz{mdve^kxFprfWj[a`smifeiT]ptkvdjLcunjnftn\zTbR]aicma_[nra}Ubgg[YeUk\otoikhVZlY\ek]]tWm{fQokvOem[i_VobdNWWqg|^WWb\ZidRWlS^^ngmg`]xPYPzdzkceoegXxj{gdWYh}wwbkojgfgkjnYZdhkuoojbmcvbfbqnlfx]cUdlj[Zxt_wflrBkKtmWZWn`b_pfwjZsakfST^hbj\g]d\aq~hcb_kaq~u_[gQrq[j_MWOw\xUmqjdpSdnJo`kYnsnivpvXekgstysaf\Lchky]R\ZOV\\QtlU^ZHUZ]V]w_mee`kigVipw\prejpZzrmqhotgbosZ[loo_YQcrrY]bmpcYy`TrhTj|WfGbdkef]``acxnbnylg_fjjb`RUTirZkjcha\ved[PZtoZpjcy\swiPhl[YkfjbfpAbXydYlPVo\X]KlkY_[zhz^plYmV`clbWwggiJ_vrqVIlkmnakSwgmGvm\ioH~QslbLmkxlwY|}[dobhjYXd^`\dnhcYds}`bVtVgrbmtdmdhpt[Zl}P_WR[itlXbn_`]cXTscy[bf[l[Xc}Tt^hjn`Majm\nvkgrngx^n`Zted\ciXiqhof^ckw_Sofen_gW^hUeQWm9ghsVX|ZaG{W?llZ_vfUXaMos~g[oPpfQQZIkcdf\cipvude[]~\Uvf]SfX\ekzbV]nmY{W`bqZ_ZPopZg_bbnmxR{VfYpdjnnyl^|_oagt}gXgwYbfv{ecked_{ealeiZ`yTWzacsdJJsjeqYboOgeT`dXPpV^o\]ld|WgM]iufgaxfcNktcWxybl_VlYvzvcYhYqZcmdoff`d~`[vz\c|hHpn^qp^]dgTgIXV_]_GTc_i^]qpbVPkOQUPEY[J`SS^Zbcmm^t_AtvFuWoySZ[\]jcYYlZq]iVfWfWp^>cWQ`dh{;`^KXYljKmYmikgMd\fW[j[KZZPiq__yRVc[\XcWHJE[ksk^^`ctVa'Qcd_iYa^`jvq`egVdvSPmWehnl]RWdegb^KjZccg^tbT__Z_\`VzmbYvfXdrRnefO_SeajhR{LV`RacZ^Ufda[[MKeb`}Vigi`fkTjhh]hfge]ti\rUs[\sa\ZP_Pdgd`X`][WxZSjm^VmgnclvTjgn_agL%c^qXPpemUL_M^[bqb]i`UdeXq^ogceZSfWc^bgXs_Rl\^^Mpn`_Y\[g_crcXOn`f_]^YU\RfWI[_iRa`SaCifaMhX]^hgocnQeabSf[_`_RTeVjZ}memm[o\rTfljXbzoYrT~Veu]]QbmX_`jb_gWerPVV[yk[fehP`|eSRi_bMhdQcQqdut\kwn^]Y^cnasfYumXWaPaWU`knVne\PqrWrMp[\wlcZrm\ccoiaVe[jlkka{_]]h\YQtS\oPugU[`Y]~NaX`XhnmbYj_fgXOgvv\yGPc^j\`[ckQp`hgfXgSbNQY{GT^|UWQbLWV^^egY[TgMdeRfnFMSbeiYQ^mp]w\eeedLizU\gVa_VfUse\aS\sadOP^W]`h_V{mxQioluZcdRiHt^ZHUVTO}k]]ek]Zbct]PjdgxzCEYgc_^iv^kVbMzmiYZ]KZq\f]j`YWvalSptaUaRlaipbWi\kdh`^Qah^rjblc]ngfPe`Z[n\~c^Qibe\c^s{}gfYM]W[libhwg\_pN]RUSqgjeTW^ZcVGss`skSVnwhc^qm_ih\bvb[]\q_kgE[if`qlXgDmcc\k\tvTSfQLRisdKennpZbubuj`akq]cN`XWRoj_mWtoOuR}`tidske~xWl_j_jh{ahqROk[l\Ulf|[^_qbz[fifbSjNaYiaYQfaud`l_az_gP\eGdvR_\\_uv^zY^hqji`gzt`aiWQWb`[Zdepscdptbbjffn\hjdZiqdi_vs_RotccFspa_vmuiib[^]bWOK]piRwjo\gUmjad_fgWW`tefwdXdXvatr\tv{XcQeR\msRy_e[bXMmGmqgncP{mye^kkoa`ZhVoIYbzixg_biPjXlWx\tlt}So`uw^jd`TScqhnhxtxUf\Ytc][{[rei]djocmVh_tv|_ycergfj[ykr{sabtdm|pTmyWPUb_em}}qVb?\kj_Zn]OiZwvPhpeubogmfog{cnYXb`Xxgsrcgl]Y}graUZ[fZnkccVaS|`gb\kaUot\usadhc{ZYfhihvP`]hh`inecQpxog`^^mb\_QlZW_tViqjcYib`gvma`sbdivrf^j^WPgbUfo~YmukXocb^wcefYPpedcjd|hjd[jZnaUqd\joN[^sikRiV`YhhoSxtyViXWdglUZdIgYi\PKejU_n]koa]}W[jcIU|jq_kh`bVb[SblMsWmnrmXgIWZDir\MY_`TMxUxd^_[g^__fS`Rjf^bqq\iYjKSRa{NV{o^bVrshde`foi~rbXxSfhU^hlbPkaikkvjmc`YbnZnnrYaVbo\`cozUajNMfc\bmfk[miK]hdca^Ng`jW[cbpkreh_@HY_rc`toZJppzCoXjg^Z]nzKuyk]iVVxYgayoh[qi~ZVmYq\`cgbfc\qX`ak`^]yf}omqb`fZ`M\levsnehndidY_Tbhgq^is}P\OMlil[]oY_rqagpcbRcs|]jieqpinld^bw]eZccohm_hf`baggWfSezbj`fjhbpk~hdc^d`fYl\WoFegXu|SfTopfrQ`pffssj_eMmeob_Yjq]Xb\c]dywT^]iZ``Vd}ia\w]^_cbuPgh]q`Tmhe]nfiffxmaUrehuqxmbu^YYm{gdkOaxidw`e[^o_du`fed\aPtT`ehgvsc]cbpQyxqcdm_dXaqoNjjgTV}YdtuY{bzSPGUPlz^CiXbn_`EKf\UQQg[\oWNPdadp_kigK\_`^X[nV\dRH^nWjgkvbSVtSo]qjeo`\dscn`E~[ooasbhkcrcZbjRIgL[\[oqqRhp_CRs^n\RhpqcU[J^Z`hqajYSK^jcNHy]_]VuscafTkW|Mg^`dpSjkgHZnfk[a`qWjL^Vs`_mZikL?UnyOhS\RmXijm\m]j\ahgjfoeUiKYOX]Tlk{[b\jPn\pSrtggj^LhorcbhYjYZ^\dcqex`Li^|y`j^NiwgdhXcjgUqocfivYWOZ^PYc^^kii^Wih\oe`_di`btW[OvVwotp[s[ufzdU]W{sTjm|UqnuXs_fc]{YWwswaVdjbbolmnTl[YjsjO\md\Ubxf~`skm`ju\Uehg[UvnvEjwq\nrvij^aRacZCXxzURkfnrSpiiW]lWb~en`~kkUwSSacU{]{aYesW]maosk^yfhxp]Xe\>rep`p[fhUkZul\X`acTW/stk[ph\|~gmfzpYsjtyk^b|H\qW`XkoamrT[tR`ynnT{lhJriamWaSRYJnpcyY`^cpegqhSuNzmfQOyPc`P]^[bcfnZTnus^yV]XUmUefjXlTj^EGl|pogfWaslvTcWsYdqdx[Uw^jdm\idi]VgllZ\QYgo`i]xwZf~_jo_s]Qt]RYYrQpqYs]Minxcy`RXc_jfqpfd_eXrcl_bXS{dcdq[ejpgapu\zyjrcacsQScga`piYjcvYa]mOjbQtk|`kf}QYgegn[cph`ft[meRxhcbf^veYqjYTUqiPtVtniithbiaa[_bg`YxkzO_`vetuX`SU^[j^VYPmNZsgc_cc[TXlolgYT]wd\kutehKbgkdZZ\hkgticQc^Tlsq[kg]pfPSl\]qzZb\aS\c_db_pnpZiiqfmeqigoo[hgf`fgdnoZThXUTm~e`\a`UR`m]fnVwteQeZUOeYnUrUoYkgre^bpWWd^\`mYacluZv@qXxdwV`VchWuzfjxlccpGc\axgpVgoh`sR]eVbmZ\VodO`y_hlooVs[cbTp_PXZRRmocn^hjdXab{jbih}\w]\Z[RQ[fe_[o^`M]^]tg]eh\^]XhwtZZphgjarZ~[mZaap]]Z_aheN]v~\srUVQyR_l}f^biZRZnRYRX``f`hlWVcbyZK`slZ\g~gctk^V`SekdfXNk`oka{M`nv[duga[`}qhGZd_V[^ljnaXYp]jdbeiV^`Z\`_odhr]mlaWkx^ePihmeXZeqjglahdPsa\_b\zenc]vujd]_[bX_bUaddbvm^iajgafqhehyUamnpV]ffl_b_kc\]qpgakWlsiYT\`rfjn|iqbil[n[_`lj`eccy`xaoddbUck_a}`hadhr[aUaimth]cujjfo[hdmkld`t]_\_O^Zeh[allaRgthwm\eg^i`p]^ebZrzVjdkcTy`siselm``o\ubqjlilv[ieb]i`ncj]jkd^g`jchZkZfqoRxavxjluraYPadt_ablchgYdj^mdhjq^k`Nlvjai[uphdcrk`nhn{abtvjvlcayQxdao`fo9B`q[wV|ep\]dpaW_\\lDkfuXyZpxajVgdf]nOkngiafzeTgb[pvnSkgwh@\Zv_kaqQNk^y`QVf]^Sku\oqkW`lgd\\n\a\Ztpsnl{_M_jkXnYq^jdpyWJhTmSd`dam^OvXMOxZfbTq[ckm``jdkbbirGZ^Zq_u^d\fzGdZZioRkfpaysxO^}jEfQd]`dfMgzwmumiZtg\Uv_SZ_Om^]p<]t}VmcuqbUe|cSrqgYKc_gWgkVSxmtZS^ie]]}en]_Zdf`]rN{kNuSugxFj\HamWfa>qE|ph{r\c_dTstTdubY_UYs]Yiif^j\fk^btqiiiZom`oeUhmxdegY_Y^g^_rVkwnmTm[`ek_hd_b^^juklfynZQpvSWssTU^XsRfQceHb[Ymcupa[i_cXajhdbXgmme_gZ`^`esfho^rn}uicf^`kpl\bzer[\[gj`\TcKwicav_hmyVZ`gtaYsqjewpitlbnavOR^t`gNfQXX_`ceYa^XebUe~_eg`jUd]jhfmfujjm[VcYec`sibUZkfr]wvWsfphdme]drW_Tfick[pj[\]n[bs]ex^mfc\lhWZcXvddduPYXW]ycjY\uedv~yYyV`UakUchVbXfjnYZrYg]eZ[Yfgjrcc\_hVrq{qecqcXfhe`\qkZf`d_ZkqWbzf]g_a_caifdhdcsjl`lyjo\bbZ_}h^m^jpb]_w\l\ljgeYXXYy`i_b`]Z\rkkhglkhV}_g_jW`qdjbfTljgd__d`j_ghi\soedcYabW_el_[`Z`_eY\`{Z__x{l`greY_yrfZz}hharWmd[a[]ccZ`jp[`\lpS]fdp_fabqTcYXj_OmdcafhbeZ_`pb^mXoh]Zd]q`hQie]giVT^vT\e_]elhdjYhcob\Y_jdfil^Yod_hadfkdjl_eYa^a^fbbiaohmxberqd[cVaUgRnVcnbJ[YWjcm\v{jeVcl`xafc\tgf^XknlQ`kyVtfWePi\qjfZgpO{ib`jdfpagel\b|mxWinvgdeeZ^|ieJvi[w`SyhcrtNf_ak[yqqY~]Zavy[l]dlexqarrhkqhmdYi`xWbo^_fvadypcgb^VVv[qnh{ddTyf_gvo`ghn_gaN|iTsgiZlxOC`zZssoehNxtw`^ny\WzoK`QnUoXpr\_l`LklooaXdjmoRamqfqesljD]^s^kek[K{^x`nMd^`dRY^rZZU\TTXfy[PKfpq`{gohxbaacTgkphk\qnuloZiGpihvslY_{csocfb[Uhv]lodoXYbZogd[du[Rl^WsspW\tagcl{bfsfxt{e`o^V]gmVU_\VhpPS]jybRjemg_Tgxv^oldajgc|Yz\\Wc`uxt[seVednlmRuvi[i[Xnil][^]Sfmkl]aTe[ZprdfmsznaicY\ej\tgZqnomffUWxYtd]Ocpohi[RM\rhmSOlUmahMXkzX^`fjfOq^fWr[{SmW{[\`UeXmxegltrn\YhcThUVcttc_`ghoQgp^Hlfa[_^nem[_jg[aml`oalfqn^nhonruUvc_qP]tlhqjabsllidp{ghom\iE__it_j\_n[\\yqe`goeWaWKhiiYX]aisJfiojP|O^wiiwhZa`PQbldQtk}hUl[]PzXm}\jVS]wgn^NffKznWaWl\oTsd]hb`ydbdxT[Zdrlt]aOoWRc]Tb_eipUftp[\^`slaWlK\h_aUK^^hdoh\e_ae_tLR^h[f[ooaZeibqdk``pyv[tembwm_`{\oi`huslP_qg^fnm\iblrfP_ZYUehjYi\_nY~y~Z`mpZimr]Zk\hYmRUdNq]^ehbmNpeUf`ihIy_XZh_lncXg^T`{RegciYrmnUB]aosYec]RTedj`VtXUjF\rgrTcfaql`i\yPudbhvdwi\ckZWogiqr_bR]Zwmoacvbwedi^\d\l_`\Ro]ySeOebmiRLuh{}hfg^mlcOqeYuqWgOjfnaQLychtnUO]^TbVhYchki}ZZHZnvgv]ln^W\gJdcO`Xid_ghV[Zgoq}OtafcedUgXjuqlMp[\]`fSnpeYudqalh\_A`hdzanS_f[||VaWaKK`giol]gfcpa[dujOig]aog[bm`h\{abpittiyeuSdbuigtm_ywt^`~ef\_gpma|guxlgWrP_M~okZiqcmUs_qf`hYufxgx\Vc}u}i`tf|ndsZohrpj~d\einnekbm[ij[[aj7eo_]\kHevWUv{~^`cZpccosgwd_cQnw^luv|~aPcj{swm^{dwbknlgT`Tdcltweu|uxjMmtT[e\tWVfiZkriacX[mvj}|pupmhykp|n\t]mfToauXpZrjXzgNxmvdjrXe`v}`Tvgpojp|blwzhhr^g]felXe_v_cpgan`tq_LOmhYjjwaekjUkiXfSXq_`i^ZXcRojhkpf^hivhlyZ`^`^oYypa\`Npbf_TWq`hcbfk\\VffiobUo_wbOaYaKgfehtkTWrh_Yf[jU^f_mWnvZQtgcbfgvW[qhcahiZ^ca_Ta_klp[^`_eZ^fix\l`[Ra\k|WrmktjN_W`wied[Uwh_[kXrTfxOmfkVoakbgUrO\`Xe^mNd\W]Ob`eY^|dc\h{imwgbdef]cffqa\jqpgdanks`g`i^gJihyzef^g`bbzjZeha\yXjjcaZYalwck{`tX[^hn^a`k[\UejXz\iW_nzei`Y_t\upaYkvZp`bbbTY}Xh]eyhicd\TibvW_d_e~anc`ZVdbZppbUhWe`lfm[mhfn^bmbftcYbVc`ca]bn\OYlm_Soi`_me^h_ia[uR[eT[VnT_gqykoWU[gefRc`uc]\Yg^_SfvhnfiX|QheZc]gdolSfg{ooox]cciYdJ[lfUadoUbcU^VgspcjaicWdbuldf{Lj\_[v`f\_j]oTX[tgmqifY~jlpggWe``cgeWjlgZagecOuQN^i_`rzfTksTYdSYSjaaV`T[ikqf]hSgV_Ugujl\qa^eSibqpl^ezox]hzpgIg{]iRQfkLm_a[^St_c[`f^gyi}cl`lwaafisjsWYblbyadeb]ic`i}k]RtbUmhQvjNtVx]QYk~fmU^ZxYgdqpZffckVimiamNW`WMjf]NanWjlq]]T^laY_rcZjvUSsKnSwT_bag{\hZoZ[Ie`Px\mezhQldNf[_no]ffrah~tVS]^grcUQcYwkb^bXLn_nfdlcvc}]cZr|kQngo[_Nk_`g^gidhq_clRU}R[WWd_]_WnS^bZb\il[`h]ZQqcmZ[jlVgtglc[Y[VVauncS_`jrkdw`oirglcgdTag`nbbkKn]]OiXobf__fcnt]gbk]_ZgYR_Ml[T\iNizc{`zZaibbVse~__Or]weThQJX_mpxXjf_aXIkpjOumPdcb[ZmwahfiS[rW}d^IpWb\cR]udiY[BvhiR^jUuMwm]PK`m`heamcOqk\V[ZcYfj_Xlc]tiVXTlY\dnis]u[tPebr`YfV`fldvhpi_YL]bend_ljTnVyf_lqVlN]]_~Zjs|hGf|aUqve_bjtXeieje[h]aSp\[I`OubWRm^e\]^accbp]d_^hkgUTSb|mYjb]f_nsZRlai^gcZjaOcg_ceR\hkmZdvp\hZhhXdWxp`_XZx`ke\ipdtv]lppqUme}XsRgN`knm^Wewr_s_XdqXmu]lmLjeHvjz\iuWSnKwq^idj^i\w]udSlaoc\qqiPgf]Gclhnkgmqzg_cksaWlxzRaqg^rrp^hnYodGcYobjXhZf^_Qodrutgf[]fcnbYVonnbf~kP}`mp}kanhg[mRMSqbZmgaIduks{]it`N_i^a_ObmzkQgk_kglnjpbha^gXgirdhsdZqzalpkZrGnfeP^UqrM\iskfXm}`gxXcc`\aw_ljaXaN|nnu{|UeroyicVYicZnQ{_iYcf\cqg]_fhghdcbbayhjbccZeb]npZdZWXakfza^fVZ`n`ekgj_o\bWqVZ|wjgvjgbgRrd}[c]Ys]skegVYNamJKdmhZkkp]jhthxbhZYm]hWUlZishvibk[uXh[kj_KZg^YiQeb]el[vRbqfjxelUmjjTdiX[Z[vkpZeW]UhwcY\mkno_]gjfoRi`Y]`bc_Wqcza]^_aX`gc`\d]ge]egTwj[|\disbcY_npsl]bVo]\glfYgagymP|Yd`]\seceYbc_Xriwsjb|jnMacb|pcaXwtq_ct`o\fcmy]d_Uhi`pch[{Tfld`h]iuiY]m~[iKiblhuY^xvfopffTajYhf_WcnldyVegT`kXmerpd^b{Qeyjuovic[kWJygg_drS^b]qeJotogef{YbPXgondon_xigcja_clX[g}Ye\lcuXbacbjmZtqkm_ZXeqQ`]oUOtggo^g\T^mg]rek`\aj\fn`_ydRJW[ZvgYmgudctsswuoha`[g`kSobnWVgnjhfduPw^LulfcWhv^Y`mrkq[mMXeSmu^q_rbdZX]cX\^}\qi[q`o_akZhn^fsakdb^me[oUpqYYe^OU[\``galGhyp^oSmeSd_[ae_bahcWq\][`w\mTjabYbc]W\^Ym\sbZhZbdoiWQbXqZrk^me^lc_V^aPerT_rkn]mnz][fqdZKav[thm]cgaVbd}`fv`PXzYW`]otWtbeejb`l]glii\Y\cZWhXejmnVe_]nfW^leliXQ[e]ygcYr]bRlc\`]\]imjg_ccdr\^hesokh_WadfiX^aiXsmdpU^Yoglggb]i]_b_^IbjYlfaZdeLpwmUjpccOUYNd^kXhYw]Rey[_^f_^o]la|seqd_fd]LY`Z_o~az]fftaleh]O]co`flVwkX\odfaj]Y_f]jcakmuYkSVqYrj[bc\gz]PqmYwUiyRWpXe\~\abWrbkbZff\clsbifba\o`Ts_ifbMp\suwj\ZYake^qebjtg\gl^daviaZalucq`lMkg`\mvsb[u~dhang]DjueRiXec_fhfgW^[atg\cvl{;[g^p\WZedj]elc]_pn_X\wumm`rc~`Zeim\wkwqkbgx_pcdf`hBgk_Wlh]hhfriu`mfw^_kxfshmV[Xru\T`gZ_cwZWYkVXZffe_tU`VKx[thqYojbWpq`dQbbZejsqlvp\mp[q\^dhmw\o\ua`h\w\fqqhibli[Oakfca]gKYq_RUi_eYzqkcmzgAc{pf^fthbdUXalZZRyesadwTe]gm[jVdXt[idlw[k_scPidgkxmc]dgz?bcoiWsgPoiwreUjZiobg_]i{]pzcTN[}iu_^axyc|_tvcwSgp]Vndj_vdigkaPfxwho_qwkY\ifjhzn[`KpuccZijddTQeqdgv[e^iTOTni\h`ggOaki[@ZmnkZic]rPvV]iUakarevf}bkwWjk}N[f_egukPhm\Xdngp]\]dlgyU^hi`qafg[^bf~lvQwdZep\{hs[W[YI_Z`]l|UkheaPsLmvaVhqeikgnf^fXO_mdefcmq\`nbSYbcYYqncrns_^bo^s`a_yisjnRZ_TKtpyulZXWVcbqdn\Sdj\~m\|z^_ngZmdf^kZjij_WaY~|i^i]GVbsag\b{[aweddhWko^cvdaN}NvfjsujHlUX_MePelXo\__blLmfTZgZgtqYlUpoiOhg_ZcpSsipiabuVfzfnRmdYbjpblwhUreU_ccXSS[mRwqTRfkcUtW~Zyd`mIdVhiXe\[k`X]ooikbfwruj_db^g^iwbKXqptc^]b{Yr^s`Tgmphj{Tufmi`[uo[d_dXb]d}W[knWhhpslZmcce\iQkMb^cdkrZ}Q]gvwgpYipEXVozwV~ocQYbgmmnkjfo[]pT]giW]cqU[hVlafgfkXe`oSX\m[`Zi``]Unhdf`e{U\h}^J`KmidXg\ebbbt^`UdoGahtpafWrngXb^sd\|d`rlnX_fcDt^dPte~bagjQ{Wq_huYdjfdxZYiMYUjXWhbX`Wq^emjuqZx^du[j`Wz[lWRi\n_ikbea^dYwi`yIfb`j{bnxVxakNehU]`ecehRlshq`daaeNUOnp^W]TS[qRc_dpZaX_]a\\y^dp\Sab^sdHbeqkl\gv_X[fPgUjjiamTRj{bjbUj`pU^xb]fiaeb^sRXnJalftZ]vnJZ]k[Whe`UVY[jbOx[ofjgUFgXrYqO^l]P^fW}eh_ebe^iP\^Ze_yff`]qpjBYf`^bniye~\pTWTa^RSecJ`lW\]c`[Zb[m`Th]]bR_DxhafZe[w\wbdRallZKjk[fusU~\iu`pldttYRedVdZbhnTcW^ZPUw]xNbbdff|m^VwhfZWYXQwhN_d]c_cMUc^spmRYFiQen`\aswLi_jPlo\^txM^Wmg]Q]\X[sfXbKXkacYTggazZyW[ngnodcFaeYXYgvoradjmkk^hd\[^tZUbf`hLS^TwSgr\Xnm^gyvtUNYtu`UW\g]kjkmjeZgYauht`ZbpTond[Z{{hW\^\vm|UVef{YV[oe~k|cIlWtdfrVZeparruw\ralZojia`jxrjt[k|RaM[egynSffnficm]bqV]ugu]_mcVzluLqQrY]aUUlm[[aSZnOik_idUo^lXc]`Sb_wbs_R[leSfR^ikQzjf]LqmiqvbScPjWqepkH|Z]g[igmgUnRgP\`]ZmidalRqX]oZY}il\vnRb{usdYfceKpeiZ}_Y\{woeldeb~]fdiwdVG\riYZjevfihmbQNeTkgIvhvyhOarjmWhUpqid{af]o{gs`c`h^^[ecj^dp_kt__ajpQasth`bU\e]mtqlihtnrQZjicTct\kfWyiXV~X]QtUgusvTFkgbBmSVNunWdbwWTlcodcve`xcX]apwUEK]Q_\fUWMmlW^o_d]Zh[pjUaOorhSbemS^_oWji]dPRl]cex|aoWgbNhRaIb\fSRsivJb\ebc\jeUeZRnjer]\d~lqdx^Lx]klsehcgYSXXa~afhUhqghyN\oJ[jaXbXUWylble\rbmI^nw\i`]Obo_qVWoh_kc_YT\dgeZWOiefu`bqsQfokif^Yf_]`_WeoaFXbl}][Rgi]@\dTpmxxjh`jZdgi^T\TQiceVfPngnxpk`Xaov_gWNR^Zq[e_obp`poaW][DSg\`kRT\[bCkeOemYhVk[DAj\r__Zji`j``p\YWlvP[[gLYVhmVwrjjMUfigMQMTSyeadQshc`LT`s^iZCoazPTfde`gU]_cg\pRzDocdYHcpU`jqhbeeJ\Qgt]Xl^dpciqacvb|eieXcaQiX\F[u`P[YaQ}`ek\_j[jhijlcdZnhbe[mdoWinf\onlaY^\Z^_ec\SR^UJYlwQ{\O\jitjVToPYSUO[~rYVzUgWaelkc_cZJSi`d}PyXOeWWa\hn]XdaPpYdRkjaP_`dYz`dxnjZd\iKaWemg`Wb]NQV^oqfm\ypeIYhnePufcldMfh_t`^XWZgq[Biy_hYYhtfjwp[r`Zc\^UqVj]a\i^ZjVlbVNTkhYYcLehWNjtRVoZp`_qXTjV__\kZkWtm\fwaK]QgSb\\_HW\p\bem^okkP_x]pQYOmhO~jdm_^iimMYedFkWX\YZOh_XL`Mpy_^NikeLau[M\Pip[`\`[a]YYYM_wJakSebjq]QWeLXwgd`fWucm^_KbeCbzQdg[`]SbXnophiO^W~lm`\cheM_`u_oW[llXkjgeD[eXY\Tlfoi[r^qimYfgdimn[tI>mcp[coTRgsb~_akff{Q_khcp\[e[YebYk]iibkkdakxdMv`Xmnmnnla^Za\Oy^pP\fe_dhiZ__y_h^uko[sovd^m_o^uhdbWdTq]a^hqY\gx]qRgqkfzwakdieThh[\kkrhwr_dp`cPanZ`djbb\_YUq[^jcjcYe_ZfR[sQqg__Zrj^e_hXV^[aVraap``^c}dhohgea_zkfmodttfco{KaecJykTib`m}bh}rVZfWYmomfQ_`n]joUZ[fYfLhfeb^]_w{NscZnUY\{_ifln_dgbo`MjbjNaPlrghpp\tlid\Qqvk^esdbca_YOpy]`_aj\e^aSuvj|[_]jd\b|PbZTzmme]ocNfU[rlcU~eYZbiZfem^nEQfjS[ddZPNsb\gekol_nojZkfc^^Lbdf\sVb_qbbcgbq\ogpVbcl]qe]nlpYZTcwuVjPp`[u\kR|Ua\ViPYTebxhrf`igahd_e[_h|vmT{izfhg\nYKMZ\`tVnePtTwhMckhjsUaOXjiRQ;glg_ak`]iWrP[dq^d`]R_]Wfj]mt~bQWf`rjyZ~f^mpTc`GW\ij^dhVl[i_|[fXbW~jtdhodp]xYQ`\YwbgZ^fhsYT~if`miX`wjtkknXYuaYJmqsnmnppefQa|Xbg[pet\_djmmoe\_mvvq{aiVedhhic]feW^^`qlrsYp`gqfflahchi_jcrXgdggVl`AmZ[cwdg`[`bgpgo_Xd[fwlY_ps_qK[cZg][xyZfQ[[QemUW`fmi\Unrggcr^Onzhod]Xphj_ngufi]iecyaqvdf]\`Zcic[jdu{G}Wtadj[^e|Xrm[^^s[^wfohdScg[jXcQU[cXukerowatSmjd[_qlkYeoledamfl`g}u}S^qTZ][p^dShke`idXxZSufkdenXUyhUtVt^orTuip_ab_`}``\\icrWeqaYbejeoRlaw\s]rzfaV][mls^a~_m]a`{`V]Ub`mP[jXSakw;X]\~lKReY^lPWmbrrMal]ZmWi^ddrjWK^kmrblqkdgqikpcnctjvlr{h`xbh]_[Y_\gXaWbkc|bvcvbMe^yz_]aagsdt`vqfqgj[XK\ndqci[_j[kiIces`ombdTd]bai{gg_bZxZm^rmca[la}neT\kcel^U]DbXrguchTtsPDzfYW[hgUkmXWgpoy^VYh^wU]geZ_ttox`de\HkhTlYmLkkbuipdqVRmhUi]s_TVc^ehTgjX_m\[sOdIHg]ph\g_\Ulqs^rSPk]x\hlzfTg]k_uag\vinhj_X[Iioe^c@cPlDleQ`Rbctg[i[[dZeVfS_V[e[ljxQuV_\q]]gbreYd\fu]fgoaiW`[Zv]nT`lddV^^ddZbkVapstnaST]fa_Tojff`_mC[hQbh]qrecKqiXqfnghIU^fck`Xb[dxj^bZjueTd]\gdV`tZ\dykaja`j\fbPT_m_{exu]f_gTgXl_RU~\VXnaqgc^gbrU]F^Rdn\LX|p``vgndc_s`Zzd_VcVWrS\J_TbqtJbPgWcuxWom_joZXbgbYbY|t^cqa__Z\jRawIi~Un[a{VN`sdtlZjwjVeSllS]jLR\[[sZf\MikafhWgK]LddigdgcOGRdkO{lUu]fTian\h`vThuaN`eb[MfT\uhUwdReYM`s_QaYUVbj`YU}jalX`uhiioaaxWP_^`]\f_ekbUq]jeRbinw^[\eVfpyIpU}sVWX`[co`O_s`]_OkW\i]KaTk\Xfppdl`lgh]WYTYrYAth_EsKWTqLq[\ioega]eiXcj][gc[VanVbWvHm]ld[eoTuXqYXm[iVRLvRhcgW}]cfjncVaTcrrings|iZybVgfhral[xklc{ek\thW_Vf\r_clbx]Z[YtYsc][[S^ofzhd`Wer|yrahwoQW_Xc^Wcb^eicehkYmZqehpfWafrchqYKabpjSZh[aXjbie`u_solgeokxphirlYql^Ug]Xgagi`[nqe]__dWp_fjbch]Qelkf\dc~YldsNcu^uc}V\gJZjcijb]ydlrnjm`sZmmdmcfhZiijvlcUd^QcfpjVVgZfq^hZ]i~dh[qfhg_hXL_tlj_anl[^h\lYse_Ul[ex]_jYlf\r[T\jXThqbp\i{UfP^ja\jM}cVag`eP]inglpp_XOqWcja[d^Y^h]]iigwnpedlbfgivqbnnuJp`|krZXXb`_UZYa\gdePv{\hgaSb|fjz_g`Ylh`_t_Ql\YeSn]Z[vi`aYRq_md[^yhYaoVOS\eUhWj`]V_\Z{b^az[LkzrZnVzlpXlqdcjabjPOpmc][Ve\ib~VgoXnlX\oj_h`ihu_^jlYZiaagm\mdxj_dq^`fmabe`x^oadbaftUu]L`m\iXqPd|TY[^Rkx`gcShV^kPoZcUV`afbdQVXYsU]k_ll\ZRjrS_Y]g]qzWqboeo_bdch{lXwm^apdSobdoiVtSd[^c]j``uWkZh[\{hlVqkdVm__k[sakZyiko_wqoerZgsr_HUZSvwXMJs\TshbjXZ\u`{a^bj{Sf[Y}bc^bqQY`ubsc`ljkVfYsNr|TamWeS`v^tgky_aYXfjKvfYbs`pATfiThgjgVdNye^c\e_eUWnan[fM[mfPRd`Vk_avfdjlRn`P^nlgRsicbcg`h{j^]l^jqKqg`UeYqwdfkvYXhWtPgabhf}fpHkyRlMmq_cwhVdoksobT{Yqx\ZPkqsepmjbRgjYl`WjwfS]OzWpribggzsluXl[^ivcupjtpk]muQd~cVA]it[KaTxVnZplXb]\aiktj]kvfEe}]ncLgefNzhrh~_gylcdsXpnnRWZi~o`cdwm{Rt{x[aquoj\gajhNZh}tng]kxjlogH`Xjgwh[tedgibNV\ZnVl[m[nphZTyVbciulVXjmYnZgiSfg`[m\gTeZ`V[ZPnUnZ`gm`Zph|jciUg^UWkyOgb`eT_gdgfhtl`dIg_fmjs[efogY]m\x]_i]p_]_kcqYji`cdiohFUfMXZ\QwlfkO`cucWnbYlll]hbfSghNiasoiPXk[ob[h_h{kQ]Kh`^q^[_hw_ciXhj_jhmmk\gil\lh_kj{f\^dkmc`ddVaPgj_zdZZsgbcdjYgc`lebnfapY]_^]Ttgf]ap]bw\ajc]ou|j[icflaheggh^_hV\fdbln|d[bwbZsjgq_yrom]__dsglcbfc_vwa{^faedPRV\OK}W]d\S^lX]lZ`iihSjl]`\ihilqdOad_^itbg`PFkv\[hqMdo^Zul[dkW`cfigvLU[]ngi^qZ_jXwcNbSl^_kimfeeih_^jWM[fXm]YsZlUcXp_eg^hehcGklb_fa{s_qbfd_kVc`Olw_qijmf\bE\aSbffinhi]edinefuo`kh]iayaooWlT`cftk{po]fnihUbdlSjhsZ\ep[otvn|[ijtXkj`Vd\ya{fP^rimfSjti]rgY`j|kZz^kS`Xoc_zosfqp`jMedn^k]epL|g\p[m`dth[aZ^b_WaWifV^i\MUecYsgsbhjbi_kZ\`xbgUh]be^U^e[i[ikjyregaY]YaX_p]WNksg`kZfymWb^_[GZdocbphkcVc`^cmdlZ`]]|gojzalx^j[ufjtej]rlc[^ctojah\ejnlT_vioevg`wnkbp_\cWgc`g^kmcjqnWoketcY]gnakVb[f`VfajbH_`T\MslujVXgWZi\sopRbfSgZeq``^__j\hxpldZ]gkM`Ra[]S_mskeW_db``vangoX_^ewcfYZ_]dOabcn[dWkdci\^\R`Xa_^h_P_`eboo|noNtahlel\PeZ[\t^fTbXinITwuNg]eZc^UqPnUytcZcNv]m^w__drTMWhXpygkiNVTq|jak_qV\LKmicc[oladXgomcTdqkZRZ``d`_afcofd_wd]WuV[gkn_elaa[XdQdcuYclYV:zoKWrhWpq][YgOVc~ZY_TFbegdngdWLvYssm{Wgqe\gqnhfdaWhaOigjTi\}Ue``RZRR`umb]ixQLjT_d]UlmZabjq]\\We_aUx\gwn_c\YyBqb_i`ZcdSe]e]pfmhqojVdap[]qob_ugqY__Mo`m\UcWbhtW\|\eT_`X~buelikaWSXQx_fa\}gIYdehfl~[kl`i_bh[kXo{fq[Ulj\ccZf[hbeR\cPYVVLxlXY^\ihQJY]|f`lXTxhbdpbYFtib|aKWkVr[Okb`{cmg]gh\i_joPxZMi_xZjyb~xYTUjHM`QwuhaW]lhxgOo[Gci[bk]\kf_]Vgelc\nmEkP`jgpioqFagMaV_b`Ob[^ZaTg[Zh_vW]jWQbe`dnjzfZX`\_eO^ch\TnksjppXvcbc`miWVTfXc_alkfIyc]hY``cul[gbWYnpa`aW]YfPTSVju`aYo^^kn~foZe^d[d]olpd\PQ_p\F[o^Z-]gil`rh`jUjhXr`gzNVbQaPhdmTPYiiWVHsXhnNcba^PWngd^agh_]YaYZiQg[Pafj\kWkQ\RrMf``YrLX\j_[Y[Yk\S]Vj`Y^s^hUZdZNeay\]]ibdbfXj\if^[tiSAT`]T\obfRVZmXqoYl]mOmW]Usd[{U^[KbcMj[NMTtoOaarl[p[XngceXn~aQHbaNDcLqujyfo^`ecmVVd^NPnY[Y^hVnWfmc__bTS}qT]VZ]plViinwfdYUO^meu_\uZbwlcmdiLOUlwf^mOYkRfVSmQg\e@l]~ben[OpephWZ{~_oofalPWd{ihdaf^^v`omvs^cielWzabaWZxcijqY_oitj_ds^hYufaskcpo[_e]gdfmoa_g`tdyd^ton{YcPgtgcln`bDen^bhWxd[UeYaincebtfZomdr`sqjminkZr`cVaye^Xe`hcYmRVdgSyqmTYyb_^ZubjdY_mbbXh]{hhr[j]bW\bd]S_XZ^XPXj\^n}akbq\bh`WTlW]biYZ_tZfewpg]cfgafdd`ob_\Wfym`[WfwXthidi_ejpm_nyen_Ku`l`^[c{h]ocfeqykiVoYhnnWrejj}fmg^X_]Qc\Xef^ikdmg]Yajkdk\gqpd[Tdt`Y]\`yva`|{oP^hqhvTP^mfofPgbe_pa_n`r[bjimXjoqa{^dkjmha^tglmvSvprT^XWjdpOcgghn[pZUkpcpLd`Lqkgf_[qp~jf_fUbokUgVfexuuit`ytnpkwg|vh{p\l{de^qscZeg]s\X`knW^aYgSqBd^deap_]{_TbdXZYoi\hsqa^k{jTTkdWTnQjVn]vpu`^Vjv\^[^k\qdu{pw}fgpjfV`xYcm`f{gbulajXvqepeSpmTw~hfXbZ[pkrjebb\eg]YbdWdh]jYggdcUnnOW}ZOlrer{KXqprnnpdg|W\U\Sohtyg_uvs`k\gikX_KnWyyalPhW\Xughtk{jwmnhI\l^ggkecdwv}Xcf`Yqhh[hegL\Y\^XSo^cs^hzPjch{jskxfcoiYpef\caIhesYl]onl]PMFrbkRQoUiX_KSfcsdTvlMOxkbWb_bUVcQYL\h]x~hax`LeMxhUT[sk\tsX`^bQfhpu[a{kl}[fReolNTU_XiSXoft^j]xO_k^rZ[uQSl^iw^XZ^bJ[ub`q[WtZWD\KlWgxZcSTgeqYjYfaUnkkw`Zo|hEGybZpx\i~}xaj^r{`nJr]yjokXlq\ei`cm^TkZgXh`~g^f~onnUt^]htVsRgub~tagotkfcmf]ZhWq[cxgjckrV[_vg`pc_[o]yeqYdoiuqeapkbZ_^fomdWpuqckfpZsU\e\m_k^oxcZlhzk`wihdys^naqhahb}ngV][oXhbc{^^kafVcwcgiedkaUc[uroWvrc`UgZ[cu^ai\dqrvhX\suwX`hmllkNcTqieUdYm]kwNxwbobfe^M]c^K]]c\pWifx[frglaTcaev\dduQvl_bbfqYZdtf`Mv`gjmmdepieZT``Vjfha`g]`v^[Zp\Sdy_]gr{{j]qb`Xi|oRbniimmi^p`lRzf}kzf]]hYwbOv[uwYoUlZkHeq`Reni[{olh]joobsesf]]hn\edbUnpLXvN\WZmWnmyq\~Xv`llsd\_e_[zzanT`esX^wSI^^^rj_kakjuVcljSRlur{]ThCgPmghd`^wNf\li]^aNla``_\SXRvhlZhbgTbo]b`haTeZijTmi^f]l\e`~TbzGbmd^Z\ec{nj^eavhupe`_gQg[\u}asob[vmf`aZR^fsVjkgleqIptdged|ekedkkpUf[mb[jcfobgUnedTh\YZgh_klTMX[m_UVe\uec[eaZkTiege`kGOcnfojhS]af_mPT]zbbe``^bh_h\p[bwdSf`VUTwnKDwiwhUzX[]_[UWR^psuLi[pgRgP|xY]aikWgSwavfWnYevi`Yl[sbsmor_w`XkgVdXa\j`ZXnXAdQ}vnr{tUa]__`]z_~^nbTr\mgVTe`^tYfO_iaCko^k]VWX\tb\c[aYecx]fheQbeOr^o_[dTf^_frVmf~w[pTliiglF]f_uQn`nWg[hrcldzo\[ilJf]axccd{}Z\^z^n[on]qb^vnhZxfhhuvXeZxZXnvObZYihdi[YdYsnXKGe]Nkd{^O\VeddjqVWbOSei\raWoR]cXg~mS^V}fTiShdlZS^]odplle^U[Y`XwUgYeaU`|YkV_Y}op`j_Tc[l\Xh[_H\iXhSnIl?T_\TYfslXfQT]gf|UlN\dfZnpViizOeqeakT_kaeezmkj_]`_gb^`^[gddgvbW!ncm_if^]f]xmNXuwmiS\U^ucKl\SqcS_sU]p`mKPS_dfjgmTeel`MjaT]kdshSY_anqTd`b^fk}ng^Tn_ea\ma`ql[Tnk^jSgbicfZacatk[sQY\T]nedhcN`SjTe`g|]dbiaf|]`_iUff`^_ppdYcmebd_SorddXYKgzcecicXTR^ReXi^xchbcd~hglboZ[mgh`l]xif`bY~ck|\_gXusaWf]ri]^iOWXmb\mdWdghv`X_cgmjojgemtabnjsgkc_y_]hvRbuYgemiamlYfdp]mUZe^`cbaVntRaoqT\]_|}Ufrnlov`edrTUrzm}_iwqiphbW`g[_gfigghohayY|[VTcj`uZok[}hwhfgb\m]{ly^Np]f^kbalrZYbbkQdqbchpj][~fh]^[fli\dbr_cbevmskkr_XTbeolQQ]Vjba]l_cuzh]~r\frYb\[e_coo\ccpZse`cmzqc`_Uxxtdj_Y_alm^zTPkZsokaZ_iocifdg^lYZ[~Wqj[s{\pjais[d[deo\Xbheiym\lUk]abo^U`[m[UdigajeoeX{`]evkhrGlpd_xqkc]h]oy}uewcnwjKdk}WTmRqdmg]u_ZhZS`Ui\an{Vjou]vqca^\speYsaaSl\kR[sYnjfdmeTWjqe[pmvbcVg^S_qsUV_Ul{Zmqeodjhcesfeeccgy]lkX_hck~kgcnaXp__[aig^gpfipY`fbgec^yg`\Xmc`jcd[cp[erIdnsVUg[T`bO[vjbb\t`fOVlS_r__U^cc\cUU\^vja]^cmwcuamtWrpTOeLj`iTab_ia`_ziXa`hy\uggWa\EU]kiXl\kiYeYSUhj]nWflahXXTcQagzpkSfrphLiQba_WgTf\\\bbRbe^_tbwNP^byRaQywzckpjk^`ezhylp\smnWoWh`HcoxtcIbTYWmn]_Z^STnh^W^~my[cdd{[c}b\XczTahofnewf`bheXpmamcZrays`iRb`j[lhnsfw\X|k_Ql^px}uW`VPgyl^]NNzuZbsjheMemzjt[nncg^\v^tOZfUh]e[\nvScch[OBl\o{edsol\RWf`qaieanlh_XPwmQrbee{V]EWY]G\PhiYsfxTrdpT`m_gZ`ceaOnqa^floSabpiqPtd_jPUhZ]jri]jqUbjlkkT]gScl]adV]]Rg]]^Z]lRcoY^uueifbpbbRY`XujceMqdlolhngWPvOpVee`Wf]cl]ygWJ`jndmelliggpjidt{qX[]ojtkelyQ}U`hVRpqsf_fqhi[JjdVVfPkPnyZuiQlW]v_SqckZj^^bKRtUnjqYf~Gik]x^kfcsefm]m`Z|mberjf[oi_T~t^e[edlsccjpOaj[_^`dndwhg`W_\XfNZVZ[y_gpcdio^[pliOkfbkVnScgg]ojUfuMarxeQs_]][i`]Yis[_wugog\VkIVclenaf__eg^]idn_aajgaTzoViXYZWOfas]qn`w]]WyZedc_Zjo^gmZ_uibZ]we_ma_roZ\o]qYbsf]bajWTiqb_cfkq\lfWbcdqgmbW`\uqfy``l]jkaibb[eg_ke_dap{k^mdhdiihe]R\dYodbbilfv^Pre^d`R``]GWedwea}`Ukdo^x`_VZpg`q`vZukXbpbyUjiz`qI[qi[VUSWTyben}SM]kb_eh`lrVgpfXXkm]knXmyb^uZ^ib|hVndc`fs^zc\WqJQh\VgxW`axUafhXiYd]J\lc[Pc_ajlfxXdWX`Uv[}sePsdadL[konJ\joIx^]\^WQbn[dlQ`Qedjot[YQrqU~xh^eoYYp^]`_gte_UpOoT`mmb[dyrgR`i[^aaRrZ\bpLkoqHc[lgb^deqejlk^vru{]XolYetp]\^l^QShc_b_YgpN\Ol~Lqdosg^gb|ffs_qq[hfRsawtTk|c\QigG]Zxmkjmd`[X[qoZX]eQo\cZdebwe`k`sqcfm\pka_gp[docdX^pba`ldxfk_qQh]Ws_\o_dla`nZZU^j[ZY\aqZh_eYZm`xl[i`giYj^Q_ckdb_mZSl^ig`\\hw[YshX{ikh\Giy|\Zksv}kc^zrgmVLXlrngdnoqXvg|UeRfh]rqSxh]i^vqcl`Sv]Yeseb`e|Wx`uwd^l}WQhmf^vxu~_f\kl^qZ}fGfeVb_q|q``^mmNLX]dgpNmSmhykmPa`ohkIcTcq`e]cykjhl\Xnpr`iacia^olY`jbdQ]WYei[a[`fdy`Yrfn`pPeqp[flts]}S`pygeurma^wVcb^k[y^ahmn]`mXjjeiqhY`trbzkstjqkyh^OVb`tYta^sh`xoRdYdubekrS^z}]_e^b_palcm\[iq]sn\^aWVSilytUTZqWcclyeNktg_`qhe]b__`vqR`j`lgZrorre`a]q]nbrT{dlbPs_rbd`jfmeu[amizfsabh`eZczgfkrS`es[g_\WuX~wTTi__ao[_d\XZY_luhgmiRe]rVjbW_dndg^qziYZ]SmvZdVVpblk`ajQh]\jtYdoehilghaTib\\^^qhwuo^[b^_UjZo]^`hThb_Ti_[eaJ|`QVqSO^p_fbJq]cDYk`fWWWdcY_ejxZsWZZl^^u\bXzd_l\a\r]Fde\nndXrlfhGkici_]XiUZCwpRjrnOLZ^cecRgzYV]ilSZbZMbrUwhferdrdiXqnVbpjjmog[|tNeksK]pcZbl]en\judfeZmaQfkmev`dPV]dS`kZUeYsemX}R_VaXVjifp`RVdL~^OhQ\Znt~rn]n_ccb^{gmmMtawVheeU]i_d\bcS[Ne_Yk]ecn]^x`l\eZR}kWib[ond\X[RqOnQ\n^_OTmJnLakX]gwk_dV_hZadcPTjgbcvXYpje_miq^scXhbZYgiTQc\pqbcUhcmc~Sh_Up]k`cvlscapkaTgX`av`gbgU\YmpHTViEWr\j[O[T\Zd^ac|nl~jW{WkZTmX]cYie]RYd_YT_\_\ic`]tZ{k]Pm\l`xmASl`VnjOWpa`b]Wcz{ZgFiaYprebdsXrVgjm_tZXdUqcft[y[feAc\]Z`Y^~\iw]v_MnQSwcehd~laSuh_`XgYRh_xdft`cl[T`tsSXtud[gcoWTVjb_a\Vd^[aaaeavcUeMUccbgld{\dfefbfi^begSa^\^\`k{_edS^\{prsjUaelqduxOdeVZ^pTmzbXogZbP]XVjin`_ioTiln]qj{cxUkbm]XdkUG_j}VtXdXbXbYXc}eemX_lRcb][Zvrri^ZcSfzY\eo|`hjl^_kur_SkPlh`Qefar\w_`Ns_fgakgfeyseuWckb\sdwYtxzYcamns~oTe[hveYcgbigXyjh`Mkclbgj_\llkdaeXia^i}ogefksQ|hnxghZS`jngjqjvn]bZfuM`|h]Txx{kurnkwtauelehj_|R`h_ef_apW`cjgobWn_o\gk_emjjtRvQkiihgslfccaW\\pW_^aUl\hVkwx^bStda_k`Z\eTf|Zonkcf\Zd^g_nwataeao\Zo^nf`OTbsU]OW`Z]jTNWcdXfWvdi[\dYf^e\aybixY`fvOjNebXYWdJJzSFsn_y{jVmuZYmudcaX_STRXa\RhfCf^ZWbvJgcmejY]laShZGaRijvjavd[u[`NeYrvW][Z_^bR~ZXeUZ_Tha[^XyzpoidltWaf[VNQhZOs_agk_h]|QN_cc`Mjd[`qQY[lO]TlPNhc[\fh[vVeiZmkS\^bw[PimXf]^poardh^]h^evi[nnEf_Yace]uwis]x_[eij[hVTTb\Tba\SZejiijh]jsTvvQc`kldjsr]LdZnQ\swtyjSsXP^vZbU]gYXquX\llqvRW{PepY\ln_cUkmVb}]RmfW[kdxTW{h]uS`[yh_pIUpU`r[vxWgkcjfnCgcUrk^Z`cicg`fn<:SgkVbxW|\K]`rzf`Upiwq`vbb\slc][[YaLoN]`iX^oar[n[y_LXczQuz]MeEZilplfmQwp[af^jm`__QgWxgoXitchL]svvK\_rog^Ognqna`tgkazRXX]rZCyt`w{hVctXd_^Tgx_^Vhr`bjUzheblYfk\W_d]\]_bfhpcqZi[hfZsMVf^ZrZeVnkkcmeda[nbgu^b`b]lrUQbc~srebJOd`^oFZlUUadX_^]kbofhPX\bklqSn^n^xl`[fc_j[gcinh\cYeh]IsVj[o^Otng_yj[nhecil\YYviY[j\]Y_d\WNfaQq\jtgeqZVY{Sq^hpQ^fU\l`dm4_lhbkSddeth\Vv\a^cYk^nStk|m`\xeXjqhWbqYcRp[iScqdfcfuT\]orgjWy`ejXkcE\k^bWlna[[ml^^t`f`LS_mU_dg_ZXVeYq_eikV\aU`eknsWUfcigaSjeabXmbogqnqioid[oeYQue]ZwibzaZWcehb\lulZlcGZpuh``agaUTV|[Uj`V[rb\lYk}Yc|qkRUfjoVVqdKaqqeP^cfXZY`cae\onn`}rQriabc^ou[|lwZeqoapnh^dYtg]l|mai\{dg\Xe`Y\n[\i}Xuf[P]htvbpQehZZpkYx[hf_a[`^`dczYXYkkVb_ecjojgVjm{z]i\pvirpgzRWfyl_{aJa^_mfinqoanekLwRmhmVZguY^xdcq]ZeZ]\dgYe\fgfek\cWhcc\nghbfZgblfvRZhh~URbXuoq]pWXrjiWiPZe[fYk}_lnngsfdggYigco\\jeWafmg`enYZb`vZ[_Wcf[vl\jaQ]re`cmdxsg^l\Wb[uiY\qmw]cZ_flff^_jYceRgt~m]`aukednbpq__qbiii\ucl]mbmdicseh^_Tbh_`qUjof~X^ha`sbfe]ijh_oxdo[ek|\ikd[^`[\imgkfvdc_Zq`c\cYxd\jjfvgYlkxo_ha]c\WQYZgwd`vjge]\cfSktfr]jf\oc`eemfh_^ekdaa_[kkcimfqqrdV_]ZYhtgoc`jkohjde\Si_fg_ili\\]ecZhs_hfabfdcX^gcidvW_jjs_SMewV]Njq_`UhThgedSjt^Zcqp}JhMtoWoiou[nhaj`XjTwUiboaii`gqMe_jjS~fca{apVioxVgTVhd`^lhZwaeI^`YhdehRXuaiv_hnPg`eeOf`^dRnxkWTVZgkh]hbb]_gxq_gkv~eZYaVUavglk\jggd^fU\iSX^aiaVi~y]Po|V^caiIl^f]Yoinq[ffi_ga\Z~^XogNoWjyNa^XPg_d_pg_yrpbaXrueJ^ddn]ODo`hXO]f[`^w[hmoigfd{]b]XkRno^WVeocj_Zd\E^zdlUbxKjIdXhr^kb]Xc^~\m?csaYhkPLgofz\dSCkjhDQu]e|Odgl[vUe`_tTZdreakpkVqoSbgnog]eVbXjvVegggsm`^qP{mI\_c[h[c\b{xUyw_ijiQbe_eKi`|eRmokka_w^`WZnvhI]_kYa\MkWefwg\atgj^`\tTju^`Sgq|`]r_TWOWS[rjfM`]|i[Tc^ibxVbdYem\\GOhdc^i}h]chQxaafwak_^hfageU\exSyWbY^vXf]wjfdtlhM}jt[STR]gc^L[psUkcdT\Sb]dTooac[brq[`k\^pdkg]nhi_pWfjTdW^VbV{oy[mT\]cmUS\fcm^poXge`Q\S^wcQb`~Z=XT[wb_hysUvE[ZlhmkiZy^]^qlbnMb`qddYXXfw]yhaY\tH`dLhB`RfjRL`eTcmktY\kPjqz`Yc[kukQh_plhfU[uMXVghippfHler_SZbpmwkjV^n^an{hsojyUXod^^dkZxdgkRkrafgg\gWdbct]bUZrZpjUdltspvpddnrvl`ZZdMoRlR]wnPb|fG{U[bOW`nqhvkt]nwZ~nmefShckvrbRplefa`dcqVm^ifmZ_nX]j_oYggilava[dpmnn]{[\t[UVmgUsUinNUl=^_jjRwi]~sf^np`ghO_g]\Ga}[[uRK`gYU]Yhb_ck|ZLS`pNy\bOXy^zIVj^YvhY]s@pxelfS]hNLZg^XYRc}YnaCr[hSZ]oUASjqLdCjiNNjhRESLp`bqfgYsVek[ctMQZ_r[`khpUIaim]]jBV^rscZZiughQR_c\foc\O]UmueoqwWesWkJQmcbKXYPNVR\jbn}jSvWaa[RQ]AYw_cMXrkGycYc_TZ_iT_YgQ~Wedy`R^pjyX\YXZVahtxknY\_BjqqsSsnMYac\w__iY\ilwX]e`TJ\NX[]VLl^RPUZd_cLc_pk}YYid\[fb`iglj`[~Vtd^MaZrbTxgY_XdfZedOXLXybf[_XoyWXc`ocSeBpplgYUc`zv_yZsg^cdmd_fm[on^fjS}zccZofVtTUgd[qVidoYxdjZ[WZdj]bWZXj]o\mrbe_t_d]c^]R~QZJc^rUXs\XVt`eMYoUZXfk`e\Yfe\_MY^RbtZX6^fvm^}hctqooe_\u\f\]]RTekZnpU]UiuYThjU\]kiW]nd\aluX^R\Wqi^edd]t\fY]fUQlWlVjkna`UrZy|^Rcbo\N^_Y\p_onZfsXnzkVtnckvhYeXZmSWrtpTbWffew\p_Yt\^i^ac^b`ycf`cSdp|{ifYWdgXidOfdnc_\ges]f}alhw~aaYx[^rc`[^Yrpcn}axW@Y_ebfS[N]Qqfi>cc^`TbX[`ij\X_]tVggVcS_ogfZ_o\_dubiu_`Ysj[ejhfen`VzjiVaeXT}bLvbA\`|ri_oTRqoKhjbcbi__mpOohgUrYMEmp\lmYeghgfdllga_Xkp\LbgjQ[iqlsl[IUlWnxq[Si^~jgvReeVMaMh~KgXYmjPc_Qja_aahgf\dermPnhfmfP_k\_Pr`j_xn[p\gaiZ]iYc^go]f^M[ouhfl|U]raV}yd`l_LvRUYnefsq}]sha`VXUcgr^cdZx|bv[c`iXcMMtmf`qaVsucU`yaisSvgbtYlnYSwdZyjV_gZke{cscoy]s`eUeo^kbcN`f^XEePZvlNZw~wrWqZ[^oe`}UTv^h[Vf}ulTiYq^oft~Vomw_pBV{j_Mb^fbeozfWfiLsfL]i]Bla~~tnWthqxgsaXSikqoVpleI^jdp}XXeyOOhDSofdiaij`cwmovKl_vsa]\kh~m[YiXxiQYbsdZsrTuPyUrSjkc[Y[VUf]aP`gjcdRk{loWdalZS[KKY^QU.fOj]]udh^dk[>VmGUTmqYj]:_TvaBXzWN[hzXnmh[nPeL\^pl}M_oUZj\SOdZV[KIon^chealhMot_}r_VU[fSbb[gMi[fcb\[MYfeUk^VKE]xHbcZtC\qXduQh^qbYs]SVf\_RfWWMUbT^dXioSLhUSeg^TW[nlQ`oMQt_]mhamegTrZ[g_et_\gtQ_S\]Z}snStegZ^xUXmegVYI^ZxglsX[j`e~gW`^mezY{dM_efRV\D|WMESjYpY`zfgmgjJ^sMkPcuVqxUZam`r\^aWrSNRVc^bWx^ZYhTcSfMNViaOg]SrZvcZZdb]^]|r^cb_qehslosff\ojThta^Zd]jf_]Yz]\Tqppic^dYkngg{tklxajlUdgfyVXkl_s`Sn_\RYPirgwb]x_b]lY```cdutl^]od_^ujmf\_rlKixvnskQQdc]cd[]XXeUZg`lX^bfbnhZQ`lu[m^eRHukd{X[[WVYc]Zdsi`aoofcoZfY]{vibTeydeHZvkq_QcbLcgae]`ftcSffplnbzbZlO^O~i``waZWcihwJcVda_[htn]Vino`eHaTlcRalngdm}ekZoimckcivZjitrotRapdmpYZ_jz|Wj|gW[wcZdQi`dsW^]ny[UiXJyRe[]owZgHak\[Z_d_bn\fb`obmr~oV[IipdZe\[xfi`Sgk]y^ZlZuX[fcZjfgbMV\\WUdXYu{hc`fdO`aa\kjmrU[`Pcjbs`_^]hdf_K]cf\g^dujedPe]\lo[ebasUhZfn]pkTZZXqQL`Y[goSc]{W^rbXd[b]_agy]wpMoPhOZ}jo`unq\]]Oi\_dNo~TskdQUe`Yl[_UMwmR`]pwYcZeeddo\nlVeUSaufjOeqRdfRfHX_RanfKvcj]Vwd|YZnbYS[atwl[Plaj[UdpYgir`eutq\n`^dl`]_WVfQk^wThmZg^cLiZnhfjv`Yllgiqywqfg[rfTdQmihThoY[^PoXhvvdjch`^\_Vtc|j_au]^UX\KXL}ba]adjajfVSQakXHbl~LLli][YkXbnl_rbwXQ`_qiddYqRmYOLpsQxjddmdY^c\hZ[Ra`UnZr_c]ifds]uU[HPV]@jf`kkda[ObdsIrYWiqblXX]zgkWRv^_`\baVwyqn\]Y`|an]xndoccuSWhadpxbeT\qaZtk]b_ff`gwt_^WUYabg_eee{e`Ytfi^Zkidbm{^cZfaq`SMdic_YnPkge[mj_wq^kbrrb^X]Sqonrr\ZSNQs^smkhh[jWj^fVpf\jc\ndjiU\eigw[ig]qpaq_j~m}`asOpcxgTadY`\ncftxemclagjj`]u[SkrcTBjadr]Wrqdfbc_hxcrj\q`h\hfeznciUvomlkajR_hVhUn`gdR]|nevYj\nviuab_grUebhoYSjXjg[lYVanWhc\hVgfncqbowtljhq]e]^evk``YOdl`kYbdbZZlPjmmVL{uf_l^lYvta`bh|jgg]j_lekkzcmZafc\_maYl_gfqcffwQViYlgh^Z^bXpypSb`VUi\l\Y]ancgqm^qu`VkW_knjpgg^\zYkhR_dYvjoU`a]qqhlnouie[^V{n^^`wwb_]d^ojiXThzuvcg^Thgs`aY_llxalbb\Wmncu_z`\R|\tmcYb\bX[TXjcdWo\\rTGk]zYpaXtt[jfYnb_W|qc~m`WkidhbWUbQXga^`ncnl^wriiujjW^mk^V{muc][bNRnbc{z_vdoMll[pZnYiOse\i`ierl[pegxrv\}uanwloZaU^gmeh~`[[]boggfY[udhTsthnWeinXY[cUiW^vlaqcbcc`tcfch[nW|gy{isjamfgcYp]_m|eaolnffpiZnp^{dbcdnY]nrenoa`gc]Vizkbsb_ibaf[cmzwtuob^rnls`^x[ldUpfVad`cn`ldeTdh\Zsbic_^dQb_q^__{e[bicnQ_qiZZ]\^eYyedm__`^gh\i}]a]ZmezyZZgy^mbd_ll`bu{UY`kniz\yTaZheQe_^cYjg\lSyhT^y_^oq`jYcdmZjdoia_ldhbdtbOddelXysmVptVYcglvjcr|be]fericfdkle\dcPd[ectweasUh^fclthYhn`i_ia]v\kjTeutofRiycXifbn^i]erf_njdQWhWValhukZgnr^hIg_a^fn_\a\RV^p\skUYeve]\ju}knehb~ogghbvWarqqo^Olxoh[Wonnc|[v]fjZ`\^[ksdTQcalp]ygS`e_`khz\behzez_Z_eTrggwTq[y^sqah[jVrYmJWW]hfmquTSdopXb_hhsp_qnh^eas]mzs]_ob`^gMXu^sogbZXd|uSTn{dbfme^htjo^odUtcTe^Jphk_buzsYuu[qk[eee[Fg}OdibcopXhj`fuTolut_aim|ufrSqX`qRX`]r]TqUidm]]AnfU[kweQ`c]WxZLU[pYWm^jmx[lc[``huhOa[XfNjWgbjXjb[bbcakiUi_\Vjr[ZjrefnI~[kw]qqdkj[d[dbIhh\e_kZcSjU_xQhqrZoppVYieq]YXkb^h_aez{h}RbSipzd}`j\Tashhmh^fhkf^`So^d^iVlfad`eAkeSika]a`nVlhlcSesUFK_Yio[ppgliiU\kn^zdxeoiEjdfg_M[WbNis^f~[qahhclbbZ`i[O`gZhd~si^FeYQXYZo\Ucl[_OcU_aR^^at]YgcgOfbs\L`XNgKoVUTvO\c|Oo\^oaXSY\H?P^aYTZ[Y[]|droaMiGjZ[W]Y\[qi`j_TSaWmciyZ}Z[YgteX\aYivfl|cp\iwkdmUnOce[ck]k]|asViZSY]j_d`jTbj__\nhOeiggMgqgz[jchUrlYX^PYdkwiodh[acpmZecSdbfe\]mgVW_ghleU^^gct\Xhlq\blhdnZu_ZtdaVYoP]lrgbbyxyYdgYs^R[fdgkXn`UUkhdjZh^YmcjN[vnj[tekhQhebYVpeoikhewhZXjigUi\i^j?ZYW]clel]`rmapgtZogj]eZcokeZdaj]Webpfkhpnkic[apVtShc^jZug_hgS`Uff]beR^ed`]qd`pT`TlQt\`VwdaascozkdikrnXc}dXnyw]eY_icecfeu_c\pgke_\raPyf^bx^b]c_g^^|`a_lS{}odeln`cQvSxo_^glnQaZvio^J`tv_W^sgow~ThmWndmoqZzquweedcX`kgsy^tqe[nmXtY}hSyrrd`VZp[NiS[^UbzSedibsnyO`dcFk{qmZunsl[Y_vfxWjqdnfXqab_hlw_e]gdj^\do^h`fxpt@Aib^yZrw\JXptiYia`YeUcXUncQ`SerjNgvbf{llg^h`XnJe|wumto}nbmW^[ublcZe`jckRYceDqddhaRmVUgdqkr>fYo]XhYQCPVmedE_i=`d\NjzW]Xf`kFwPgfWSYVX^\[wcVteX[~o_fOlUmNqycd`tZhoskg{MdMpbEOvjyftR]WVmXmNqizTUPbtrD=]qf`sTa[w]V[UZWhZhYRcupfcbpXmib\_a_Qi[UvYiOkUcDcTizNjwfd`hT_Hb\^nNTl]_sXiVRaScEhpa\\Yp_N`gjGMj_g\S^Mr_}Pg\Z^Hts[_Xfmxoe\OWd^|wTYmaIbcRjh]lZ[d_mdWcducIlaGgUfajiaia[qMhflW^vgVUs^lgmXaXu]_xZgYwKXHrWLhia[jUsk^Zb_W_XsSZzmo_c^s^tie[]ugm`_ffY~VQ\ZlghrVZ^oniVk__]biaL[~Yiscfi_][\TgdZuZbh~v[`ahS^ed]iwdeT[kyVRH[ZcZGXUmXsdmVMh_gYsaprdVvVferg]|kYdW]b[`_lq]lZ`oWYpy{Xa\dam[kTQnnrqcU`TiYbaGg_lmn^aghq^m{Uupk]l_L[OYb[gTCYUqqcs`^S]cmT]fqcrfk^rbichgUdr\\^^Jp\hnqWU\Vqtka\_fX\^zc[ZPdeicfd]Jh`zqqifUi`weZ[]WrlOWZVpYz]Zcc`[^d`P^jbjd^ZcPoc[ogpgbfbcscmYJ\S[bnYnidljpjXm\wZcZYha[[Xucmaeyb`fbcgVfkuci`zdcVghgrrg\hgZgkv_`gZfVjqdvYchfqj^e^p\t]i^tgypwiokfbkra{ffsbasupd]ccc_qP]`Wpk|d~mckPchkoWlt`u\tmdcvoaQh^nkZRrnijaZp_XcXqeew`_XfVw[]gcVo`dbl[j[dfZYao_[^e[fgjfloZgX^~aNWYvibh_kw`k^qnheaioaVmcYrlgg`imWcg]^fi[el_`rmRcltg\X^qinkjugkR`[_^j^XeXV`mBw`]Xpjm~iJpUeSeN|fg^YPpmhmrW_bqktRO[mQcejjrNVOfvvaaenO_i~nibxcf\MSjl`Pfq^U\^mYftUNYY[jehmY[jiPpe\aKd[{c^sfkhkuw[vVybX^nvjubgj`UeiQhVgn`rafYVJkb|im`RZUkoljbo\\Qjkndxc_hci]rY|j^\QsfOjZflOGY^vai^Z\SphhpihfbnpdeS^q\ZUQb`]Wfoneej~tgu]gTaP_e_cj^gc]ldoWLoWHgjzdVb[Zm\gfhQ`lbTaUbKfgc`bi^LapcljXhmbYb^~~hbeqdh~tMaUpgvdP__ldlfNfZ]Y_}lgZTerwdh]qzmV[OlS`Ogta`\jWzy\ecpW^X]iQf_oahZu^hcjid\ZS{Thf{eXgYbfNoSePpRoV{gk[dmiPiw_lvgvua_ejlbnYggZhcgkkeqmnih_{XYSHU[ckucbm`oZ_mjfeUwlrQVlnRdk_lde[XZ^bqj_hof_Ym[f^}}YZQkg_fduci^ehcPWdsj]qiam`bizicnLeTZhWaa^orgU^c`ihbirc`\duj{aUcUf_`ddnkSnU_R``uSq_nq^fX[`[bfN]n]a_pSbX`n_{\{gulk{f]hibWk^jm\ye_kfa\o\sN\Xe`Sf`~dQ^dg[r\mkhRpxaeYuji`agnRgiZc`ha[jOtoc\j`l_djfVdh|pafkbRpmglever\r_Yefk{tiie^deYXmlh[v^KqojSrw\fXXaYUp]ehxg]}^bgwaZoKxfUaWifUo\mU\fgppdu`i{mgnU[pjpdvpGkeJdjba\g^qOYolug_lvL]lfa`_cbS]OfZgpm^Vr^o\^W[_fekR`fq\{mjx`^t`bY`kbcd[]ldc]di`esbxhyde[plNY\VjMp[jaS_dbWf\]vfcia|vjn_ilrerpq{v]cx\nflduhkbg_fuomTrczjdmqhbcaWeP`[pqWe]ubjkqw`mc}bekZgdsof_kSi`{qn[ebd]YiWwfwYYgscfKhYm^gu|k}vbfkj[c\^c`Wk``fdw^Nehhed^fTi`\wixsgzj}\ccMscfWsTarsXyhfmob`mwMcWdgUdg{krRli_cjRd[c\chSf^j[k\efijiLcfd\dj{`vi^K{ktX\[_vpicXweaV~ejX~]dlRmX\WWihtgtc[fgkI^pi\dOu_Zhyp^Wbn]mkdiNXigd;Ww_dQdv]hldWcY]_skvxO_Yj_Lk^ciba}bObegrb[oiyROo]UfsaupfZ_W]TvWZnomt]opjeWqeUikZlZVF_afkmbL`ObiacbNV}XcQalfLj\]P[b]YWlm~_[hTsQhU[NhfZzw_NY[`bbcoaX{^lb^d?hSaKfYc\Af\d`U`UaxsSjWkT[cV=_nNX\{vGNPj[rXVUmZeUu^ScGKqnp[T_NQRRRYVeVb^PnxiX[fcZT_Z[]aX^]`M}]gicTGUpcZxXj^dgsY[_Y[Z`IbQcksdY^cXl^\]lnbnvcb^f^fRnTo\fgP[ba`bwY[h^]T}hW^nSuenoOiKT}_p__\^ugqedYpsmaUcU^MwjkyM2tbb_bRasdYX{i[Z\c[pmS_jjq`oxYjjeU_j`i}mV\ZbddgMeemRijiWYIailVMbs^WPRbQJ[jqOIqVBSnRhjVZ\Qfcfp_vT{mxZa^Vd`YgOWdWln^`fZuVYgnafctXal[mhsj_mkrYKtNevReTVj\XuQd[kSdQ^:Z]xV\i[]Yz`ukh~WZ]hliDc^jX_fvbMp`^SZh\`bYvj[zgjoof`fbzPhljJIVHUPZt^d}]SoY\bHUpplfoV]n{QYeedaLOSiXyY[^QVTt^i^\^WiT]kPsNja]]|dsek~gKPXgbkbss^U\k]kdbTN``f^VYbg`Zd}[Z\VKc]rX\Paf_]~zL[NZbjcW]i\WiMkPWVeiZQsnX_\pfleN[hdZUiLW\kl[\Wa^Z]kk]SWwg_Vkd{Kz{QlanbaX_wseemHLg]iY_akjhdRKbYWdkZ^T\ji_aTVag__n]mfNqZpgZcjQeaxW^fiQhg_sPaVn^SlduliZhd}wauj^X|eneb^P[`jnab`l]^dsgVhc\i_gloZah[dShfXZpOhq[^I\[_bfQd[fFvtl^W~PQbhkVdTjTnUsbduKcxkl{lad_cZmg^]gbtaUcfgqncqf^ahrRO]b\zgj_umhUfY]rZebhVd]\UTfascdiu{l_lVoT{^kdf_bRc_Lioo\pa^_fJbs_dUZ`ay_dgVjrlnj^gSZn}ekf]_\TalbNmmLNv^sphoc~njdhUp]xgdh^XiWhfgY`nwbY]dscI_`\^gXmsae]wemlomcbY]i_wWT`^]UgfejfsjbeRZ[`jVqiytgtaTQrXU^eibvUaSaex[TW_g`_[^fZr[UjWhe^koueRu|ZhlfajggV[[pRcqepffXsoZgfl[jhVdpeia`_b]bfarQ]b__Q|v`dx]LixfgXpMom_Xdibdi_[_ohreh\Qj[Zff{uOkioin\hvzfg[zWTwfYs_^Rfbqamdoik|gZzVeVq\`ltYwuk}hgYusIo]hgTbsa`Loi]`gnenqM~zd]fvU|]~uiQYzgX]oUJaRa\^jdvY{[p\UernPV`~`7Senjdcn^fP]N[vivZicYy]Mw{OZRIfppYj|n|r^mds^^]NwG`^NnU\vr\g]aeYavh]PcWnh~yhO\ml^cemkxNWW}lIqzkea_\^bf_hZXbdo_eb_ua^Y[TekUeapYTpge]KzeevK_d\[wgVpcgeXdzkkbJFXXjAz\zZYbck^h~kdq__QVVssaggOMjrJgvpTZwWk=TQbUmvq^P\fawFKh[kWSl|jumbT[`\aihvZUzNz^N^{JMdbiUe\^|aH`^ls`qVI_nVUcOwllL^g{wdlQXmQJeUeb_RgjosocmxZcTeSTeYfdbgkeIO]WgcoifjklZekKla^x{ggk]nPz[lif^SVOPan[]bMe\bu]tifm\n`OQ\RnasI_iflNgmkOlZdhl_RYlNdo\lgU[WbqoOkSmfhq[NtNgUTmOjdk^om`kq.eIneUfPcm^ce`apZl^fadbhtiKjiOg]a\zd_Ua`Z\rUgYbfTjZntbUqi[hrZHmik]v]xbyfwnMceb]b^nYeP]jOlg]vWlhncmTd[qnip[jgwnbpmbjPjQW]qeb]eWIZevidUVboSr_{N|rKa[d^ogeen\Nsda\VaPWd_TPficcPbagQlufkdf@V\`cWhKo\[_V^pndn__[jto[sjuGhs[WnbxngbX\[Vriyreog^OUk^ZxU\Q[Y`wrmZ^\vZhgkl\YVu^Tf_f]ogP_aa_j]ZdrgagSvSbcWhrfa]^Zhjx[yb}\q}[qbh[`h}ewdiiKNczW]pb_ddk~oblZr`_xkawjokglefgk[_oeip[mmceX`[jiO{tWhlQ^yY\x{wwqa{x]cu{rtgjkTpagXpemWmfm\]ggR|`gzi`fdXflTVme`ogqZZbcU_hrjYSYXZlm\}icQjma_dx\}dpQauksSYYUV[npl]_cPmjSfSUdjsa]Xa|xb?TegpkOlSe~uWgblbeZkZYfyang\kcmWXVRwUkhOZjS]c`lz^XiwYiyhbVg^gsjv{Qz~SV_abbj`jgoXke`ijiujR\RXt`d^mt{imaVafoXaiWhUdhVl^NUb_NWqhSd\q[piy]f^\[nclYue{[ajldvZuRvPchq[jhUki]p_^oXarZolM^`jYccZug}f^cf_]_Qjv\qhbb}Zp^Yjeae[diWgvflnRcVkcYl`bYqjYZ[HhaY{SSucbfeSRYxg^^vO_[iXe]\Oph_V_g^VmX^nrS]|xigoe\[X_ekn[j\konzl^XfopgfrY\sXogYhngyZlk_JfjbwsS_ct\RaR^Rb[I]bCmfvj`klniT]p|aX_Wa_l~qV^khUrqeqTif]^wacgnb[n]Uunaa\hKn_[oihbgR_a^ZiJlR\h\Ua^b`k\^eQRW^thnzioa\icSZNhNOulki|zZzORWOgb[ha_gvp[Q\vdk]dfktimYvHDV^_hOqi[ZbY^7g`NedY_jYVdYXUZ?qhe_]tg^{eFQdU]UOHPiq]UlqfRcfVdfru^Wpdi_jr]NPYjhehZg^Y]l_qTbE`^RXYcTXw]nX_EZI_LVagng^P^^krdet^b``keVaQcjR[TkRfb[w_gulraYhncOIaXphdU]p[k~hX]\fd@`Z_[iHWf[ceknUTjXVcQ`^a\[kJOTZYWXNbaL[KN\lsinkaoTZjin^]a\p]ijTOWZU^oqqdrgub`ddWce^^hXa\ckr\gY}[dbcY|Xcgufsf^hbZgiXkiigdViZ\cefb_TaRfeybbtdg`z_kjrWimt]gTtilsgbti^mgceacgxfiK`lagUe_hfxhknYgl]e^heoZil]b\gsdibSuteamafkbabfd`la`lWqr]wdThu\Xjaohddcgaiddp`qaN\qnipicc\dwcWihb^]n]_jilqm|]cerhcdTfqjnqtciv_bft|[pijabLfnb]j]bl^Zggl^\hnfjbrZOeachzofgfyZjj]f`^]k{pWpl\ctf\agff^ddt_tmr|hod[kyYWhfod]Y\dQkY^luzk[kfkf[}w^\RYhfctalIbXQ[pia{`k^hk^eYQ`Hpbgmb_Z\TfXqekO\ZphQkb`g[bchd]sl`xhS~qgkWcokyXaYUca}f\aPfdph`kgldsiUZ{kFudfiQcph`kt`i`jchhgjqvX`\bgZJulLnbdhlVap_{YijkkelpncVzWWa[~kRodxkqikiqt|u_FdWabfdeq_QfkZjbYejhiei_f]U_Qt{Wmeg~_[pcecUZShrfUei^LzfvfjpXedUhbfhu_iuqhhlcodhlr`gZh`ubi]ywZYZyZJeYhah[aekdk]WZhbn`fZ\]_K_zzTbaT\Yklk]sdT`Zjp{o_fo`{ugVo^Z_^ea`kZ\aihsbxQcmtVb]{vYmcodfqi^^r[jjQZ}fih[ah[uNlaVSwiYdnbh|\aUaiqbeP_ft]pcb\[c[i[Wjh_mXbYV[as_dkidraeZlac^mYoybjfkr]sp_]WubujhXg^hk[]`XcdospVed^ffTjy^u]aehpXXckWaSkfhiwUey]cm_]xsmcw]ahb\ulqgbUbYe~riejkhecggrO[oZTe`hveefs]pjjnXsu]zZdjZ^aebffq]_pncf]Znen_fy_mnf^smzT_XdjWill_SkhnWtr\Z[\v[xdnhb`qYauUk`ob\hVvjdfqbkp]yin^`rvcravxgltr~_pccidubohtljzYTf[fjSrdRn}r_emnn\lYd{gxeiosmiih_]ouWb^OUu^TdYmano]`Yeu|[_mrlZmmfj`hnmuPknkpkfxPacc[oswc`lsk^jl|ejoQ\gplasQYn``q`lejPNlora\]aZsvrpXpujdmh_bvKtvqmhkUk{aoUYX`pocqjf^wtwxhjpd]]i^ZkbiWVic|kg_j[asgU`iY{okjRaWT]ty_ok^|qgWU|gXsXgemc^s\Yddb`^^]gvgvjtXlfehpcrlhdRba{iu`i}hnncn`ii`jm[tljm^jpo\{aXoXa\jf^][eiZvYrSy\er[b_kmpqjtjcZf`^Hbh_cp{fVtrS`SVYm[cpkfZeWnXsec_qu`Vjbx`\deTbY`w_ff[_nfhY^r`bhibOji^XwnfPa_^tPkcifqop}cciVXgd[SNo_dliicZck^Pnc[f_Y[bdd}]lj`fffwiw]ay\kcsipaaUgabhviohedbefh_YW[s`]^olpcZ__\ldUfYh]am[dj\gd]eyc^lubkd``lYpdcZjqrNaZapgfdjhYdnohwghcxuN_sQfhhbol`n{dW_rrm`Rtk|klh^asemtjiOclWalsgWZYWpz]njwZ]Tb[aboEidZ]WshWYc^mxmreiSY[tegpmidc_^`|Zcudaepg_WzcZaNcywj\^\^kiacjZg^opkti[`]kigblrdnWaqVYc_}\fmx^WwMabYJfi_aedZJvfei_eacfmMg{UrnmbSlosdgg\jfbocp`ZaWdb^mQih_kh^]lhr^u`d_W]m`\Wb^\avkl|mmftv`fh|aT]_gydtnvfa_j_sW]hjZYicpVdhZ`lrSqimZjfi`beTjd_c\j]Xt[en[ijZfrlgg_ad^kdajeTk[Zl^jadSMf^}slaqghbgcljLl\lbj\UeuWZcbffXadi_kfiYdmcwmm^^[YXhmfd_UpbWw]jU]OYkmnaQmm]c_r^|gtncan[igdg]XclmRZo_ia`hfak^i]ofocaW`kW}gr\bZph[[^^hic}n\jcZn]cnrn~jdVrVusldcWVhUe[iobdXcZgNqXukwnlWsogaapd_ebc]b~cdccQ_d\Z]gjgldsombhdmbaZ_TZ[vidmvjtgcaTag\arvbiYenh^~[mf\vT{adjaek_sTsEkv[Y[kT~Xh|ov`a_`e`ffntyjmvf}hjci^el_lhdt|gQ^lncapkcpQckf_kgm\`PSgcsZdpSXg}g\jNpcsck\s[af]TRHk_ikdfhfrnch[bkxcThi_oclqu_VevjchokseiTjR}UVchoetMdj`v`vnQnhbXYc\gtPYY[kejWx]`OXiXO`vx`[mJa|fZiqwXPtk]ZT]`}li^Vjcannu`aYfoinhgYge~cr_nubg`T]sfPkd^sy^[}lgIgdnpmYmlbaXkg`dwYd~YTVn[fi~[[^[rhsJwsXViuwQgclbqh[jbcleagjZup\TpbHpk\q[obkW^]zddlll_Xrhba{dmEp]^`Zc\h^jeifW`hdsahfkgm`sevRic_prn\k}\gdgpZde`a\oVbjcjljil^gacz]xewbgilVjkchYl]il\\gwrfc_^p^ortjbiU`e_m_sZxivTrn`iZ`bfXw^Xl^fl[blcTaayIgfYj_nft{ni`Ydzprpt`jncbf^ei\Sb\``]ebgXnM]VbWzsdp|ii^p]~qkay`Zbslsk^Snenc\miIrQwolanmjtoptod]n[XR\oj^sTbnpzej^ZesX]ntYpXSkTRXRbgttcmknfZSfglUtgb[WiqicdpdpvkPjZiGk^jri[eyan]p_zeuxek_huo\WrbKbjymyfXrpqlrykmjgzgbp]pl`vxEll[MJWs[b^``\c^`V\aydaajl]skUcgqmiStrecoRd_RWOJdcTqkusYbebjpbuaySgtsc[`|iydUZX]efbui^ki]jRV[jSq^ashVc`wlwvkpsYc\dk[mR_xb^blgat`klvhjUtirbehj]jkfV{dOaat]dp]csatxic^j]}Y|bqctkWckVgz[`l\_ipeYdalaRw_Oh\oh]}nfuxa^xWkdCYz]t[u`abbhmcl]chcZjLbnif]]j[hjmlnric\pliRyhtUiemcgo`Wjh`kq]YVXqh_jkX_\QtR]yae_`rSZ`fvifWuimtc\ob\a_ffmj`po\mQg`eVk^klke{bWwVattZ[`kOeZkf\Piyy]sp_bXYIabmmQ[p^]SUjhfqo]Zo^jVald`caUctheirsggj`bY]gX^hibjfY`d_Yuakb}Zqbd\xegfb{iqbmkcOrcnrjLwjWRQldQazV[klogYyu^ZeVe^Sn^_z]^\daWbsSi`\PiltwVfOP^r^PnPWyUQaheSf^k{k|tahesovg{gdiTjdgnW~llebpsf`scJ[lpa[k[inYdntt_lpei{c_pc\n_jjq[ecrb~ifsVgzjbhg_l^o^lq]puffg~lwahv^c^|hbhx\ogch~FRjWroWbsbkglQ~Wkb|xOvy^pufjoxuoi{cd~prik|[\ldznjrumyXbfQwaslOSn|fXlu]}XgU^_\[[;hdscWl{W_j`{SmtgwzThW_a}LtOpQ~rujHqco[wpnkksSop^cnweqagns`zh`w~qgtgwklzTe]g{xmwTdkarigkTM^Y`zbmt_^aog][VqdfEmlieWnkX[Q[[^fXd`fol^u^`}aibfg_]le^e[_|pSjZhccy`ph^uMnwpvrlj~aqiepr\X_Pbajcg__VShojVUrWiwd]pOffoaafgl]cfm|lhcefk_~q^h|t\ZNkkcg`UfvifaQ\l`ughwhRg}RiamkypZeVOmckhf]^_pospaV]zZXgcpilZulds^idfarLVelR~epwkjeoYvxolgYoV\{velamZ}oaX`Wkhh``ef^`}lnh^[mg`YPf_eRng\VVc[bhYzXxZf{lWah{eib[jaZmnYaWfsUxPil`gphe{`{fPjTVumZV\aahaeZmksn]nicQUY_QeeikmTv]f\igigkZcj\`Tgi\eaZc~]Zahf^Zmq]Yncb`fbTSeOpZZ^qTj{qS]Umq\fkjbma]xkT\j]mR\ubasZ]jTZ\clqkmoof`lVYuyua_W`ZgMe_XyogmWohsl`no`_rkevNWcUv`Z]\brhdniaY][JWrw`}R_Y^ZWgg~miKpjpgk^Wp[rj[}^\hanX_fctvhoy^jacdrh}xck^g_k[hifdY^tl^YkV}aeeSakn}lY[\`jhnrk_z`TzhcoorZcaW`a]aPX`oZ{d_qY|rZg][X_]Uck[kVc|i_aVheiY^gf\Scf[dc^tbmc_fjjrOkh\YY]uZeZvdi~dZtduhlb\olTkhowZbVfp]^[filZcwcqUxtik[lnZ`bhfe{frJdqircuYylpmXpl\lkkeS\cGfWSkhWYl`{idljgutfe[iXmaURgcXX]Vrxw`f_raW}hf[^n{]dm_q]h`h^ca~pd`d_XUkTZ]LUc\b[c[Z_]fZkhtx\a`blfVVd\`_[mjt_\hsg]bjbR}jdjg^X[fmlSwnddml[tXX[P\gd_enNV\cNj_`efolZ]vj^Kl`caaqoqU}TN]QudpdNviy\[awto_^[w`Z[NpsxkcibavRyQlfe~\glUflJia{Rn^dfeXi^ru{\jh]`XyfwrgWhse_gga^u`tMYbk\rhX_cR|uoiVX_S\w^Wwfbiey]WozshiciWQsax_jcdr|IgozdklhadozpmmoXfY\^vzRsA{o{exheVii]p`afb{UrVsfkZttbeoetTPg{ncm^L`bk^kSjTjqGNusgrhhn^nsao`ppihabmvZgt`f~e]zgdnOuWgYmx^qYoy_MquesRfv[ara]`e]Yl~[PKnstup^fbfcgob_`[tYVcajxqnlcjjmZ˃cbljUeslVPWra`PxXs`b^^ckbd]]S[cbpjiurLbayfObldqUlxkbl{^aVd]VhRnOXRPXK\fUirx{dSjZcvk{nm_`dekdjXyo[EZ^rhjmke[^ktay`iSlNcZqTo{qdfZ]hR]kc\ahlnddlYb]f^enexY`mEcZmhO^g_U^cYc_Z[Xqi]armZthLcc^KvZi^DdkWeVckPnmZdVYghbqdqfc]^dxUkipfLc`pcxg__\fX_ri\_Zkca^ytwe]le`h]etyl}aZag^g`udYqWd[cZ[pio\^TZsapsms4Znd^u\aVlzuWctisj^naK]dccUdaV]QrbXrbYbGcbcrbTt^daigaW]`Obk]{Veuenvd`jb|g]lfh]kearnk_oessaw_exn_^Z^pcihhzaeShbmp_]pb|VV[]aVfq]`[hbqRk_h[{jnfjvkkgysh^kiWs\xivxielpX\]\g`[RnlVg^^kalc`nn\teYrmjs]tlgeccV\`gs_cagd[fif]edshReibpk`cpmM[nkrkhm__adsTuqSnegYc]cKeZZb[\iqd|t`R`^iUl\j\RiNT^tj^e`hQ^klkuuqW^zn^^fb_al`cd^_`ly^nWY`ixp_p]afWgnY^qZ_vVoene]U`r]`hP{[[qfoi[qifme`l|t`aSmW]q[ie_iRz`fZfoumpPTbpazgm]sU^Zk\`[ry|\]_Voqcnlueev|i^\law_lTeil}RdsuZl{fb_nsmSpXij`_]Yabk^WYda~gifgto}Vl_]tekcj`op[_[]m`jnp`[Wm\h[Ujjkhe}fa_ZqTufoKnPbU]nq_ebneqcssYd^wdbo^XvphWvQ\Yadw`kxXakgY[mW\jmj[[_jZdPimfa]Wqbrlpv[\W_vooaTd]oiPmcmPh|}Zgioafcwhp\mRck`\xp^Obffz^VkSjnnildR{ofji\Zbpiwla]bZRSiXyRhTgXPjhUhkipy_Nc_qF[aQo_wlwXkXdRt^Yxrunjrn}ielLqj|niRvgsrH]^mshOvTYZajaQUfddSd`rZw[{U_bgfV[O`_U_fSlq\dOfs[dvkwi_Hv`mWhJmXZ{mN:a[\\YpMYjr^Z_`\mk{JHUdfdidtF|eZU]p^Eh^sisxPxfYvZbkidNgdWSkXbWhH[hfngTebbjEgNmVaskhu_XhXhOkooapT\gYhR[djdbJphwpUnySl_]~OkdiOu[}WRovbXcfa\brnveovzn_^eX|b_usrbR_qrlqjoo[WhZtiteveaammfZrccbixxkqqj_amgw_kxbZL\dcbhm^lqiIdYc\^kp[ghfRpan|jtd{`sqxws[glfPogsi\\hawgrvUQ]PVjgwvJgYcog][tb_ufWZ\oh^svsw_}gKh`hwr]\]qdqqYS^^v^okwp[mt^gY[fXc]Xhxke[UcvbafX]ak]^wVcalgdhY[exkokVwUflY`i[nkpdVksz``xV_]ngongf\`du_Wc\`hkTqvjUifWa[^^zpxbiwtIz`QRs_lujWpLnO^EGPRphddn`s\cdfTPddkb`KwNdcXesTfgZtaXY]`J{aV_o\gjYVVG]rsOc`sZX|\ccYwR^wWhKk`pMqdlaFrSvTM\~l\qsYh@eTW^ld\bQWuRZXJ[`ojlg^lbObSX]QaiYbR`eYqLCfXc`ihq\kROtXRoLZ^HZdkepXZTyyddJedZwhoVZj]ccclVap_dwQkdipgZ_oGc\MroXaVwc^\otaQeOZgMkXi\[imq`_ke@\WiUbU\`V`ZXp_ZWsZdk_fus_s[[gY`kj^npsd_`io[X]Znp`ulUbeiVke\ciafkrj^``Z_[ccmlcd\^_fV_\TbpwuiYHi[ZgheaZnY]Sbo^glwmdYbr^hoY`_b\TxtoVmoesWvVl\ohcdgp}qjf`d`maijlyviehvab\V[oon`TTmY`jbMqjZgniclk_gO_Wdbml}i\lr~i\\aveS{jtedT[nU_d_e_heq~ucppbh^Ves]w^j`j`z\YbQmTa_`ermj[pyrYms_^q_a`lM[nkhuaWs\_]i^`[ag]_mfnqxZiix[r]yiurqifpncoVXbZvccVfrcZZqwQbxj^yXaQa`WngdiU|[p[cZUT[naxutjZpohwlYZjn^{gtgaTs^lqjhr_^nrl}KnmgeRehp\bgnUhictVjl^Sp`jag`tdUWkRkXcjptUmkh]bPSyy`tbc~\chc`aiXdd[jpYrf`~e{luqUjdfcakcnt`_ije{gg{eahm\Shq^dkjlroompsYewbK\\`imSKypbX\nOZ`Vwauvd\h|k{``]bujpXnT^gqr[kZcfemnYkkkcTsdnguzRb]_c\wg_[\tnabhvuwbn\WhT`roomdXk_gfmU\i\fghaR}bwnsepc\evslW~hWqYTbbRuedh\ovJSm`g^qXbsfnnZ|pki^]`[Wrj]wg_rm^ihd^qhg_hdq^a]hZlo][fdRXOVaKU#g|[ba[ow\aYkakT_VdiVT]kodjXkVlh^blLbX_\_p\h_cO]Qsrw^]_Yeg`W[\Xq`Tk^Ixb]a`c|xKX_lUWxofwjc`t\YgPfS`jfaoo`Rav~SP_XO]`kTOVUpbGdD\ZpTYpodYg_hR}\fYugpVaegP\OYRdF^wvWYqDe^VPQmq[VM^ZSNTUwe[gvl~rgcjjrgyie[Vkr`VFDj]mDctbilpStdknhdYgnrYdcXZhb_Jkzna`OSPYZsfbd_bg`P_NW]m_gwgH`XeKXT{[ZohgLek_]Xcaoakj^\cpcut]\mJbcccjeYieo_co[`bWnT\al_aT_X^pmWWgUaOY^uqUxb_t]onmbnaccZkcyeVblXUhjbb~mPna}u[gT_``j`fgrn|wkcZkcP``ani\al\mcTi_Vnq]\`f\dgfT\xZ`hb|[`eq\d_heeZX^liTY`KahnadcYgUi_\]kl`elQkQaokRspfxfnacX\nf^vohqTgercfsWIekj`adSnodTbjtS_RdVnZjieMJO`]akVfpZR^dkTZmhch[PdXdilksWskb]ccg^]\S]rsUd`ZZTerol}aZXftoYYg~wV[dbtqa[BS]tir\Vinn^s\[jmlLUlQ_gdnyr]ebnhh|HklraeehZZV`ifieWfjeZgVNgQykrWq]bZ`k^[ia`VeuSZ`lnjX_bkdbkepaec_]ka`^hzobg`bikTlO`eaTUgl_h^\aWe^XscdbcnXu`o\o`WfebiXs[Bc]dZdlhvp^h]cnkPkkcBd\gmlczc_}\cqc\^jd^eRTlifblzUZ[\mv^siagKwigpcca^kNRkZUel[hUUedL\ah]^daf^odbuLeiRvmhdhX`Uafzj`w|Pm]qqslpfjvdYabrXeuZPmTkmldodjt`q`ZVeiobocjXbb\^fcWycwnzjqekyx`rbrogelXgqkthcaj_N_wUiSo`flZrcgOgoZZlivqsbm[dZYf\lbQfm^kgUV|ep[`\]`mcZb_g_`cpaft`cfeVqdRYWd[\Ykbqo{juc\jojbt\cfXoe^hh]mmhdZZseSnW\w]\Q`gT^bRhmlj\oaao]aicUYodhfYpwrzou^`gm_f_ZdYVXZdjXq]X[[_nob__dfh^nhcc|iifdytVmXkZVVcNV[ZngovcYgfb[]aYhaYmcXjYkoiVXhTp`axnof`kVg`c]mahmdc\rgamQbRdWif^edO__mhhXf^Zdhddd^w]n\sYfr`nSfjg_b[biZieeol\Vud[cpcbd^gadmSfeXj_Rw\bafs_aQnnaual^nbegyuqzseg^]Xbcnnb^_[bcZjc_pZoi[m^\bpcRZd_Xfs^nUaih\dn]jq\ghjjwVh_a[iglgUhP\ibtp\smicWnmQo]fgkXnlupWXzcw^[_n{\\n_[ncdkXiZ\hii\ljc_qdXbXhieu`fVUjj`cja]jwdnaahpen]cmhgfb__\hol]bkxoWSlexchcdla]Yi`nsjbrokXlie_jXpgc[feUsXR[eh]iZ_tgtSvf[UbWg_~^n\ndsbjzkb\e[Dvpns]W\]WTXWockjgheYeo]pllZNc\bkPPkdr`NbZlTXadWpOjjr`wch^uz\aobfOmWdvmw^fdWqVtbemg`{G]nkj_q\WUd`iaZcZrsk_bpm`]lOUdpZUoepr`~bY^pY`hWQ^^njffsQ__^\^Vo\_[]iYc[cIXP_fPek\Z\Xmg\_TYjOrljYse]]ST[[pa|qXRgMb~[^mig`airvebQSo\hcrUXmdf[yKssXmeif\\Zh^bgW`XWdb]_Zf\eyxd_o]Y\lgFd^dZhOenpzayMF]j]gMbriqqOcrcRcc}aZgevrlKjveqvao~^dTXgbQni_YjX`jSfVoeoQ}XJgqtrU_XXRisfsa_I\^^gpX`gfek`UTMdhHQfinYJX{W_wh^WOthfYp^`tjkmZ_tSyU`skb\\T_cYgoiXUi`[YYg{V^_^iFZSdf]dyfJel_ifjjG\ov|IJx{gTQnrqbs\_ugalgWsmbdhYZ^ViS\mep~dsr^m[ppi{VnTZxKukz|`dv`R_IJcxYfEY\Pht_f]m]ZVgSQefieYlUeSEhZqra~WUd~}cep\ahb^XuZV{kksWUdfkQhb`pklymeoQi^cYnb^kso\__gf\F`ckolirrZ[dX]pmklaq`uglcvhf\yPaj^[acRc`HtzeYSvZzggdekdXizwiqbnx`f^_d_kZmc^vb|_djZU^\wl\gkxbYc{YlokglWXlm~ysan~Vj_TYfTYjL_fiyid\e|cclgn^rrr`]__]l_mW_hqobmZdi^V\ZYoZYc[wx\g]uncaswoec`]ovQqplbijzggj{gXPcthrngf`ghwSljheg\LejiZa]eZda]dka^Z|dbUghZf]ewmj`f]wyndbn_[o{YacXd_SucMXjfNmmv\RY[ZqlVLftaSa\fW`glceZTVcbaY^qU\neqbY_daY[[brU^sXUbdXSVy}`TRcPdms\gWQhoX[lS}eh}npY`[{miaY_NmWbiZks]io[FWZuU_gdi[^\{XfX_Zhf{``W{SdWUqf]g~YdltWnosczOtj|`eVd^`oak`_bbln]j^hXv]S\fb`W6fVraoNHcqgcosX|\m]x`_WhZrV^`KOcU`fX[\g_TRwqgodoZbQdghNcYJka^krTIZml^q[uk|ciV]^Pc]apfc[dfsK_pjbX_a|LS_bZw\TZlkf[aVP\\^ZdkU\byog_{bvhu[N@\jl\lfvixeUYfYg|jlT[OeSYgolX_cZl_tMZk]`^hSkb_padfok_gcj~fjrnxZlycZjeTjOaX`gccbhholTU[lV_VnWefd`Rgq^bVxbxtoX[b\l_[djxr^\sbsyqzfTdh]mfqV]_aaSf_m^ga[em`UghY{cansZ_jcs[r~\cXa]TbLeglVhoKgyn]^muwQ[WUjtmcdiQff\]Vb]eevfygdulsz[^p[Vdh{V\\[_WcvhRegdMg^Ogsd|[f^SN]cn^HcjoZai^biY]eh`^zbVT][dZZhfYqTQ\cQXm\mYS\SjfymdaFk]imth]wWb_U]katk]iymaYF`[lKv`tbvdaes_rU]w_kgWfVdmagTWrn|]cqdfom_kismauUUjcf\\eW~p}hitZdnQot\r{iqviQejZNgixpc_U\eg[Z[hkVa]Xwmbg{XdetbeklYglipgVdZQ`^mm|W~_jm]kaZbiVf`qgq^\fimSbe_Nkb`axb{lq[tbcdTaUkflgVl]VeaVlds`mbZlbYasNWdwoc]ph|YWSVelIbY`]cf{f~eGYlSe_q_`\`rogYrqeqleaZSR^VlfpZked[gkofinlrj[fcl\k[qicjl^_`XLfaZhgn_^[UZoWjObjR^cjYclTZa]l`zpRlOla`eUfi_pbThegeffdPdikW}dvgWUc\dyei|kjichWbbdijtCeglnoW[k__dZbgjg_dcYmdkd]lbeYOrZWL_RYfdZi_Zfjecc|q_gozTmdebe^S\exodkYb^lg[bnctZnjdXbZjXemVkiff[~Pkpgf_iZn\apYf}sfni]``eWRbrf\ljiTdichkwRf]___a_fok}mXc{uY]kvfdy_tVdW]rnecap`bivgWYwkZqtaaZr^ba^dkfj`Xaj_eeT~QWgqjiYaa]Xgh|dSc\9dy\cxoO[cjq_fkejaldR^\\jlUCpcr`fVb_inpkbX\[I^nod`jlun>=\kCebYc[__48^[hu\bcY`Zrc\X\^Wdficb^qUd^Xi^Krnm]q\aUt^[WMN``sinVkgadrhf{z\avroSsXlK^]bWwofX^dczf{heea`hkkedc[H[bglLh[fwae_gamSNVL]tcmihppmXla_gYqq_kS]]do\jh\|ekokjLw^hdwZKoBokSVa@zRjet_`jnrna\eiQmZiaYVjdhWg8glpmfiDIrcggi]V`ymfj]DwoclreXFbbewZYgsffjpAbbb^ebxob^Vc`^Pwnm^b\\PeUlYXNhehkRd_osimSU]iafk_fYvjb^mbx^`a\rlR[lfneXSHbjkvdSj`chblcO]_aiobqr]dhchohjOqehjixpjeMthjlNS[Iagc`U\CSzc`RJlS{_lhjWdgWVasljwjnl[^pbeW}wUga[wghu`a[g]eZ][eBY`Y_w|_Uat^ebgdXiX]lnwoWkwZgsdpOacYOpCjgskG`~ej}krn_WoylrjrjifnajcS?ajng]d~xapSmZska`~`_^jyagXYaxMisahhXa\Yui]_`e{j|osXfofn\^Ubtsaa[]g\qhhm[dbjjlfpmjkq`b``b`ld~rcmq_\bdoebiY_]zlZqcgjnkqmbiaUjmgnymvsflgraZ[c`VTflZhVfk^`eSRmohie_gcbdWl^ldhf{nqhhapYdrre`tWetinkd_kcdabX_llpWcmqt^paaqkl_pkfrgKbtblW\isjVkoh`b^qh]W^b\kRh]kbfddjel^^_eY]kce{\k^\Zbofahid`elQd^`l[mdZtalecfw^_hvrkk\m`X^mp^hudcekfal^l`lhghbt_\`hxblj^fZ[ogribYQVcbelwZb|TcmitUidhWndY_tOhw_ggT[fYcdeWbgtgusiheTZVh^on\gzja__oe[kfc^vccU`mco{gW[Qd[W[mwcbVR_xccbowbbbYdQpphNtf_tsPajafc_ch``_^Sl\eVPchUoximjlpng]wWjhT^Tl]dqdbbaro\fcamV^ppcpp]^`eVe\gmY\]kVtdSceljcqZslXgh~Tfslfqozl|n[ucme_bU[ge[j_cYcVmf[_Sjug[]liPjbeedff|^^qZj[WT\ft^ZhXZvVf`\xge`oTfeeZd]~h^YZW]Xb_ji[dp`hVc\]Yi|cQflaodolXlihfPa]Qk_Xf]eoVjcRfpgP`~[ddXaf``x[[dZTbKdYiima\oeR_qcvfj]ideo_`VbeehkuSqg]|m[chd_WYMc[vu^jfwZalo~ua]Psbh^zodOobp`bZjo\sqkiKiUNgoMkkaZSabv_|gc}uaav`emyz]Wh^j\po_[cnm]i]ojPdklZX^eyNnchqjyf_lg_Llskhq~Wh_vWo^hwj\^\\[TaafZi_tlULZhh]mltx[be{^_mzf^s`IfSb_lPplkgd^zXaVwmlT]azpW@nlbbjlkfuaUYnXZe\eVVvblgc[ch\^k\Rzhh`]a]ZYsV^Qpmhna}]iqen\e\ceav[ohf`jaegcSoJe}t^Zhe}sag`YWj[h][uhgpudkp`gdqW_oWkWeimiaed\Tmbplz_diafq_Y`jTYSj{XU]VpiUl^V[`h_ycjYx\aaebjdmbJ`mfaoVdaY\k~ihTd[i_`U]qVjYdT]a[s^_VU``[thhf^mpo_jtSkyjns]qc`va^T^w_a]yg`]gT`jQ`noXktaf`miiwX[il]]_ZejPfj`]V_eicmjWharZxrwh`\iRvoad[_Z^d]oh]dfPkedoaS_sTdf[_rsiJ[gdkp^YgZ{ofw\Vmd\ufeU_beeXgvf^u^Oaukedcz}mkXd_kJxYdttrN[c_sed_Y\^ojU_VZbjSp]YnjpRjjfo]rYbd[kXodtS`^wcWe_nX_bl_YlVjtbecVWza^_^acCccZZclYoRtihmrduyZgbtV\xdu~itirRYa^cbGi\YdpXfr^fdTZwqp^ZEsRLgWV]a`U|eXj[ZmntZd`f[sYhvcbxe^ogcfbnythw_kYo``bKhh_OySbjZdu```bicb[`ojX^^VTe`hjeT[OS}qV[]sbii_pjphb]ikXbY`c]skdpk|c```tXhmElMvk_lkkhfWW_jV\jgi\sjh\>_]ml]b^_W[mV}mVYNmRBYb{stY\fY{aoc_lbpcuqmotocRyFuak^fc[k^rTdielVjofdheaZnbdpNvrQyh_O`Xdx`ambes{TZk}lmmbYcco{[Rj^`oTMv^fyqd_RcdcfoqU_}wkg[Z_lkbdZ~_\[EsfiTtan^hanNXTgzdkJsg]lefGbhjxjqb\]bn[cCYkico\cbmY\Ajcace_\}h{q`ie\Obhkoctk\jM\a]`cTfcqsedqucefb_b[nlJbtiYikWWdqf]cObnixd`dQQxgjoqgd\ablmU]amoouppnU]h\mlh`ii_vm`WiSh[mcqcW`fXebwh^cgYmofhnka\fe^kgRqmjX]cjfRf]`d\fe]gjgedVfgoUiMibkPZhonZbs[cpfbYwbdeaj]mkgbbfml_dehcUKZdc_irg^Zecddg`laiWx^`_^ucacYYae_`g_aj`bVRarh_ds\ZjmdmZXeZrlidta_Zf]i^aw~rekpqmlfmZeesedUYhfb]afoecnelevc`dlR]]gble]da[Pl`WV]xbcf``Udcckbmo[nxd^jdSwL`bv^bf_nneqgryk_jj[U[ihw^oeWjeeb`kf^mb`heRWpmjlzGbk^[]}[UbYZ^``SZodQ[vlp_j\i_srmf\jyib{jvKqvYncqgabtc`d_biaidfv`_bkibrqlscnmX_kWyohjf]acuXtdfm^Mgpmnstdk{hqnaabhjT{opd^b`aquidhff]t|ktX_`^]gvRR{Ue\VegZ^Xp|eNpRV~neelbW^dTaliqp]djdea`ferlb\ftScZ[aedhM]Y`bn_k\njeSfe`TlRZ[a\\W~awcXWwAnmowatYblWvP]gpZ[iu_ere\kbtp_q^g`\re`[Yokloequfg{j[kg}a_kksc]RXXPSfhchjndbj\Winsdc[l|cXmhs\Y`|dcsbe\QqR_mVaeYiqhdjpjeke^h`|mb_tbrTkijhlmoVbYg`bdXmhjeeYLmxuXRze~\VcOhRdkciiiZ]fZbm`mYfocofd[Zt`lczUWY_R`kjakrc]X][ddj^YdsnRdknkbsjcT\hukX_iiq`UfQeu\Ub^`ngcdha|T^oOobg`jSkXtmbiHgap\^WfXNcYpVy_dtoiiblkm^mdg]}iluXvu[VymjgUg_sSkucezeYwaflvvtaMejun_gjS^]XYmgfaXvQbd{vw\fjrX_Tfzcn\da^UgojsUfbXeZcgDR[y\{_U`hai^dZhfWzatZ]dXbXReTNtUnobglaeh]beVggeqPbfW~lxgpBqblrXaa\\ub]Wc]b]l]qUP`qegG]hce]^B``eRbOebRa\hQZotXbj[S\_R_fYYyg_[`dZZQiv[hn\wcjo_lh]indzX[nnnbgik^lXgX[NSlPzKprjdehejbfse_ud]YP[h`bnd8aVuZpUcicW_ame]iscen^\vq^YWckwWcdSPajhcUmjcVGJOeo^ZYn\TwhXX\SXEilZX[^V`itdjQmZgi\b}jbdZ^Kk_hU^a]qarlaft\[Yewg^T\zlPx_XRc]vcq`V_ZTp[phcmklj_Sbgcmm__^dYfk\]XOb_[_pj_`^bWv``en[q[kaVeoc~h\`lVq^bmpjeab`WmpYua^lSYabe[^sWp~vbaZW\dajYR^uY\_rae|MfbRgZXrxZcem^hFiX]ZeovqMfjZmz\kcXrdy}l_dwfedOj\ugp`]X}bGVZTbgneprgkya]f]pfUqrZf_Wf]biYes`kvnUsTVs{dUTYn_crgFYyrem_egSsebT`P\l[iTSqqacuhr`X]Y`[igk]dglpmncnocpqfcl]chdY\_p[r^iraZw^Zhu_Wfw^jkhYdfx^xk__\@frdTfc]by[`}VZ{fa`{_wncZn_vf]fBbeohqqSqnkZkPhgjwvomPUabZfp^YmZpneS}c|kiZce__jfaqraU]rtmV`o`_G|ccXWjXdhbdiQfjpbsYVjiskez[^dgc[N`bSbq^xglZsgYfZlPe\auramddx`jl]YcpmapalfsnoejW_cSthbjonMdwji`kYbko_ijgWb`kaj\asqP_eRjjhc_aMVcWe`hr{dZ\f_\Y\_R[bq`aoask[g^yt[QaNo\j`_fh]c{c`fZdsnqbXepogtaZ_jU_`rpSZT\`yvT_tf]|qiokggVvceRj\ttcdq[RXmjeR~fYyevskfgFnhZcmneXbQnozWf}ln\lwZZq]xs^olfiht_k[n[pUWpemqimu~jbik`dZnqoUb{fqiwl^jUjgPZZp_g~kfi_XUnb_n^Yf`nhWfke[fowda{pghRadnMdhRgmuietmjpeqAfcqst`vgc]ccWedWzqiddto]f]]b]oSjmZcP\}kmam]gnmpg`jjWehpM`hmri^\yuXnhj\`~jcV`[Y]phe\jXRaEoahotfipc{tjYBtcfdt\q_l_Xfnblqaabage]etschb^Xbnrbnnd_pi\ia`}fji\[g`iq\ddWh]jFX`rl]lscdzPkj~IdhOdwpj_judEa[j^^pqfrakjqerf|dlQdiYmp\aWcubbd\bbuvltxWno^KuiW`blUkYYzOmkn|`adllvV`[Ugd_xvNmhLcqnj\dottf[PLgmjHgbWWpUdUggYZXg^]]RUc\V]SZ_tmbxobikeoQ`_]__`^rr]tJQroWetrSVlYGr|e]m_oO\KXhpcOweYdbN}^YidbquWacbXX\lfddZ`|icgccJxWcryka^nhpq}Y\mUk\hfg\e~{p{dVa`Wspoje_fgjWvaZt[_visZ|gZcl~sZf{mtjqfzhf\ofp]fcXtkTdZWeoisacQ^S[puv^}speh]^bfgcnlUdgzYtcnlec_c_flnyOzcgdpwgcXhPeoLh~bhk\v\fcoec\r]xnaTvgqdTbvgPlX[Vmm``\q_c^fjr}xhh[Qgz[^kdilXvx|lZVkZru[VlX[e[abgtrtmuTjhS^|^uXpx_NlaXXeyebnckjhf`cmRz^^c\ffek_abgeV__^fdgV\mYdrce]FhnahjcbSt]Tq_k]ftcWvel_akmrRhhdZgk\XX`bo^fthymyVeOgd_URj[f[e`nlc^pfn`moTeo^Pnix]ce}nieezwa}ntYrc\^[X]Ytty\k]i]Ybkcu]khb^fUwmeknSbb[XgZcp[ndgiOroXe^xano\k`l`temm|la\ipmbgMU[Y]_ihe`lqdhelSjjcU`[`lctUluc\uVWxkf_Yjb}pbf\dYbp\eMeQ[`cblfM`narpqkXbVFf}megg_{\ZitQfbhc_cWcghpfzdpd[Yc_g[Zfx\h\bs|`TdaUmThc_U~lg[^wg_gta_eaS_cejclZwV]{ugdmsfpXhcarxmtavYkS`s`UWmkTd[``smw]_aiehgha[moaghlkd]Zkfzt_d`pf`ia\rmerbgYab{qb]ygqiw|tgwpdc`_dkodvpxfpatbRd`uhacr`_dikxpgkm[[xuetlnqR`icb_``toqxkhnRefe]equ}jrgo~Ydrohfiosfjjrmgc]RrEllgQwkuaindhqe\cf_RvvfxSn`nWqwgc`c]oquX`dgPXkl`n{cbqYTmgbbxj|uddwbYj]Ylpcrfr~yllokePWnYbkfmsdebjbo^mkungeda\SmveRehQ]uygbs_kOaggiYl[e`ibXfqf[eYqeg]U^V^^db\XRgWhhgfxQ]_rlkay\enhuT`l_Wf[vaeZebifoia9|Ya_[oicih_RYt`X\^|lx_gtTb[]^ph\le^mk]o_n^Xu^egtZa]^kojjfkikp\h[feeahicccvkbYU]d[X^d^`gUwLbjzbtg_lld}ZdWeI\N_\Wwlbe_dvT`YkXhch^[eg^bbXjqTk[dbYSWhtf`ipZnb{tw\T_^[jldd`c^_iccOQdfQc_faUiamiq`@hba]s^li]odcVPXe\`hfppUQ`p_yucajbf~x``tuRMm[ZdKQjrlgbdinjcac^rajki`]jXpmgW[i[prj]uYn_TX^qea_ZTg]\dg^_iVh_ax^frhbwjOwljefkmjlZfWamfhhfWTYgn_Rjaiggh_cc`Rkhffbf[P|^rhs[dvSdb]chit^h_`de^kakMkmQ`a[ZqZhacvoYpk\eblVheceRnabeohbi]bh\gYjgiayi]rla^a^iej{j]]kog_xxrjqXex[majhkfajs_cpjmsdackpp_fWgPsZik]ZX[bwZfM`ozpg`h]_`jdj]e\rdknZdli^b[^Zb_[}eWsg\garqlWgbnko_aZeXZlgRZt[uVZgjaTZ_|_\cmblcYfdezZzmhg`ZjfN\U_\\\[fDdY`o\b^kWaig`[Rn`oic]ap`yr\cd~\MbnlS[L[_f\\rad\svlb`xpcNqsgsgnhmZXkdZd\`p\bi_T[WgdGqjkVb[YaajbcmwjXSdh^tgRb_L`qa\ZaYQc^ydgagmzfUa]lddcfteX\joopkdX]cVYMVjjkkYYYnvRktqUqXlipmfSceZaiLUuecn]_ekR^n`cZ\eSpqQsj}b{PZc_``gg`q~Xecgtznn[g|so^YvbVo^]Zkue\cse]{_q^^~pvvom`bdbQdYfv_P;Phgfld`wgWXcuT`l\ef\ipf^yPxah\foZUdTp]g{]\\gQr`gIkmqf\Sj]dq|tZ[W]ho^K`bV[z]qaidcTkc``[i^jRe^]t^tdUT^wXiVsect_T]s\iibhrekPsZZo^PWc]bSvg[dknk`UlvuihkiO`RgPp\eX^Vi`^^dLf]h[Z}mbgrtWlba`fdzgb^^^[cnXLX~irsa]UnQZHqWqtblae_f[t`u~}Tf[odWblt^kdtWioKwdeqN\vaos^m`dims^[ichdi`|gm`qiaO_mXo_c][IdWbnwea]tWOMvrbj\j]d]Xqr\VW\oztPf]hoxjhWo[frKvtq`c_Smhb]oahb\|\\LUfnzv_Sijosw|bVpf[Qxobcl[Td_wXuilQZg\^Zn\Yqimx|aQfea]{kty~hgqkd^YlhVifigfZVWGgzWMbebY[evr]QbBppfk]ccQidV^[^[`MSh|Z]K^pg^fM\bsbtm\_UrgrepibefVcTZ_yvXlQiMarie{EjMidZb[Vhpm`ahfaasZ~hk[]oWdehedLuX|mvWTcUrfd]cm{{[}acpk^c\dfNYdrshe[bkbceWg`XlcuVU]_z~lzYrva]ai]owikZ_e]kemijnYmkRjjgdalgbYsmihij\dZmpi\hUndR[]wq^Vnsion|j^Z|YfmyFVxavuUYhnfdv^XO^lffXcdOnbZecjcbhl]ic_P\gWsSwfpk`gTgmdcQXmdMqdZPmnkeVb\]`_rhUrZc^aTdW[m\goeQgYnieUf__[_qimHt_aLaa^o[R_ebrlfohZedols_^nn]_hddnohS_Qr^af]tbm|gbvbbpV`b`h\hRc{gZ`_bilbd^Zo``eQQXw`c`\tckkmc`\\ad[UhZ`rmkfXu`Sah^gcccAZZasa\eplWmad}d\U`a]PfcidcnhjY^mUY]xN^TaN~cf`Tjjulikatxjhjqb]aQT`VjUd[sOmIbibh^XK]\rkcZ]`[jnFfTNieVcgqSlYr[s]iOa~YuW`kYWWm_UqgrZYSprYgg[kMU_fxWmgZQsgfVMaqMjW\amc\aPkxd\ZUVc`ZRg_djzTmvsXjYu_RehXa^ku[YiW`M{j]XmY\rTom\ax`Xthb][dra^UcaWRjVcSod_dWXygWkfi[cXgh`rpuYTThPXtwfun[]g^hjZzhb`\WUcP]aj^kysnVOicpYfahjU\Zg}bfyapWWfqfke_\V`kpcpbbKjY``d[`j_\cpBhfbUTfYgT|men__be`UVQkabfoq`][N]`[\fo`cb[pkRZdn]Kgel}hTcoeqb[^]cVw_Fnhm`j{imhbxtWpZfvWg]uMa_h~fgNkRbcW`aZjmZaStsNVzgeUkcbijdXjpZhVb`ja[ec`rlccgT`eXhGScXZghggesye|LXhcmaYXP{b^bpNeoYuicekl\bY\XeMfPoVkYx^ah^ac[Sdnb[_Hma]R^]]]__]NgwMfu``]]l^c_hHcli`die~iTbk]h\KyiLUNaWPNgaXgp_Z]iZv^mh]X^YQ_Xmhr[u[_r`Xj^;k`ZjebZnemX|kjd\_jWgaddmYqMovaYb\YlsklcdjiZbeSfdbS[icVVlXet_onNze_cp{dWzh[Rnev[cfn`cnZ^w^xYj_QtZy[ZaqYdiibaeu_cjnff]aPZf]M`\iabVgZjkSatnYebjhde_W_c^XjJar^fkkamn]hhcm]_^^nVd|]`ixa^xTX\WlVZUaSciXnZVntmchh]TbckdhdWqZ]gN~dSoZwTpdobznuksbxgvjg_[rSai^X`dVhijgjbnvoXRoVRWrmkW{Rrra^pkf[\^idpoXbgf^ySaUWccZNqcit{hN_`oy`VxmeeiU_mjrrqZ}vowfmnruWkxTbhRqf\`_`vXtgl_Tl]wlarn`_n]WNq^x\_}dq_bt_Zq`hmtmUnlMfhZthZd`_eyP[cd}OQlsljxxpajnfr`cquagH[_slZoik`tj^l_lgdljp_ejlNeq`itsuqd`ep[dRcegjeYn_gcWcLrPb\}cqeoqscY\`ftpzyania_sfj`_`ja\^tWceYahciVr_o`wnd^\ejcZU~jiee_Xd\cki_zZXpZ\]\}hinf`ljdMslhpWyewpWt`fplWohisj}iVqZqVvgc]o[xXecb^Tyk_egjYclhgxhcY_ZWoc`sv[Wc`h_{c]ZjdaVoompxlx\imWYvha`Pnb\]psiffa\di`jadqZajgmijgd}c`ZWuj^vTguT]biWc_lii_\_tS``Zd^cbIb\\_wb^rRuhS[smQ`kb^zdau\mutiiMUjUviZeuUaVhbTlUu^geakdgyals^nbl`jf^^apiP|ig^ZZ^{ba`bkZZnpgjedVedj|Xsc{qclfkecTwqdOcqphkpTqaU^[e[m\Qai_b]gfdifl[]eitzc[xtqu^mjac]kicSspSZlW^Tcv[bXkeQjbpYhgbkPojk^_evtlftbjUesjcfgmZoX\bkccetobif`dVemvjicTcUk_dda\Xq^adpz^S]l]eaoWleaXS^RdcXl[^efefmohb}kValg_k]ZepahbeZcjkMeqbd_vzbPhpe\cpieneXcbqrZXa`id_fr[egZ_lr^ZTi_maglbfiqjhvcwgkaknQj[\ufizg]^e\ah\wifa[rr]btiZeftf}rmiabcgXec_Q[`S^n[sXi\osfxlh`gwbXi_akggkn\bbd^[c[pY}_h`sR]ofofifvbS^N[h^`WYevgUbekffecndc\rcXgjdtx^ab^dx[bnhhq^j_nZX[VmgubVLnhZk[}XVhdfh_xRWcgknigaP^_xf^lj`]qfl[dc_jRhi[ihlSaqe__K^asNl]fW^hT]fpW[b`de\W{^b`ZqpqR]dm]cpQ[`nmim^b_\hg_tj{LctchQx[ig^\ebh_jDkkHfqkiomZb|R]kUpnegyY`8VjUixWrllTO|zZ[uhdwiEpkVxsbcatedhL]b_WW`\afFWmrZXOpqZKd_ixqyXVOUW`}bvo^mY[Z``iWscXpqbX[Tv`lfdZngSdTfmdc`o[o^xff[|jfI_nefsdkS`]I^eWZsXaI\Z^cmXr}k_ej`neeUcojXY_{hSZdabV[|XkQbkZWdkisQ]ifhX`XhpWV\hv\c[]ZgdX_g`dV^jbhfrMlJf``fsi_coVaUak\lucx[`fubej[kmbauS]jf_[blzfpdJeqgyiYZ[]`[Robj`bVdf_\`cYd\`hdUaQ[n_RlSNccPMi`eZjHcidal\bV`t^LT_bSpUWfsu[gt~^so^eroogT_Ohpbani{njfjznf`ma@bM`~hdiv{cQT]TPbl{p[Xfh_\eSan\VNoyb`JqVhfg]jsTmlydS`f\^rP]ObQwjchfqkaUwUkdhfj^YmvYsKO]gako[`wfga|i]sahSW[_PfX^i_XZ[Mq]ehVVh^]sjik]ffkkzYrne|eW\bZeJZrbebfhaR^nRgm_TrR`\e\jnbjew_f]wQf^ckcZWj[jbg]_fhgfojpZcqiXt}iUnbXqk]ZXyf]ZdrOenZy]e_`y]emJXgeSsiq^=mcLt]^|_[`Vfqcn^LlUqx\coinOe^fk\esOvgitrpXewUppTaUWi\hUPufbelnofeaYx\`\Qfzex[ns^TcojnjYvj_^garh~qnkrqihZPO}YjTqv]^_YZ|o^aTY_]efkW_sk]h`^izfdp\`bWdXqsUVWUYhij_~ehqyvg{Wkq][nlndm`dlNtfsn`kZf[^gUbbh_nmaZifhmiSdnt`hqxrofZdl]jc[]d\vTca^aaiYi\n]eZqXmeZm`XlnO`^pa[iccbTd[Xb^ZTieYtrzedMoofq`^pZYY~TVm{Ofda_Tf_tYe`luanWtbdg[Z`o``YekWYj[Rpa]zcqt^gwadYr^mkajgodkg\kdZxYaj_kZ`qX]UcmiG`iikecfdk]\gSb__\Td`n`Mgesd\qsXsl_YovUYRcafq`yhvmbm]dgamxgcigaYe~ahX`bwchfVfYbavkffox_Ve\b^dyYlnffYhg]~iYjgvZpcidew^]\`__d_YjY`]khkibb^jipqgTb^vb{^ZanohFtYifbi]`oQh_pven`mjkck`qqZsWZbRil_bdg[z^ro^caY^cj`Xhe]gpYX\]g_[mirzdk]dalb\d{agkjb_\^nmwrZw`]mSfSd[_Z\YoXamahRm_sHXpUXXhpbRaYcklfadaVeOhiee`va~x`dkjhmqY|PpakjZ`UbVS[gXhdYQl{ce[aifh]sbcw^U\`l^izYblbtvfsyWVh`l_Xagduhy_jomgo_gbe`RddX\eZhai`lV}czndbafnW_nYhSlrejqOldReeetZfcc_htkg^geggqQgek_c}T`eglmthgjfjty`lahcoMi_gjab^X|fo`iehegpqYqj^kgfclcXlefbka]pkfdZir~lTq]ctfxlfdcqb_WPihdWYa^_i[khl`f`WcigahglghWfgeeb]qfhifjnjmaYadkjh]lmPgik`{lsagoXTtbaabZUbftlg[wgc]lbXdYun^Y^Zmj\vrn`Yk^q^fXw`k[esbtbdbb\h]ab`\mfeXp]nfn_cbt^qjTjhbSlanYq`{]bbmjs`NfVTjdfaVaWxi^nvakemYR^i]\jjffUhTdgm_m`vnpkYf|`mlsgdxyikek_Sd`ledu^auajeXJkt`dtW`iXfbbsjgfp~ddjUweWgUebkrKTcg]Vk_}tefqTjPkamlVlf_rhqn\nMd\ao`YhqUlPWMk`mjqf\D]md^R\e[f~dpeoooslc_eu[fl\f\h\e_jocc\dhVtUg\Zq_qeqgmqTWqfeTyakbjdxWk]clRVtNfd|g^QYer[cWdaV^tpqh|[iVt`pRoVbZvjdYZSz|olfnh[WlriXOelw`uUn]ef\YYOmlN_]dk[fmUiw]j{Vi[gleZjV[TdladWY`ZX]v]Ze_`jjgnb`zVgvnYk`gQ_qe_ngerlekbc[SSYYhL]alV]blhte][dhwVci\\gtZ\aQvh`tk]wqT`WpYglfbb\`udY`okXWS_lc\aOweaVambubfmkne{og`abed^cuveiadeZf{gocaomvh_m\o`fllhgbheTNhebdbXgYXmYeWfdm{hbfnsTwdihneSTZ^^`\srfeqxeTekyxXV{Y^g]fZjXgsnarp^fg|{ofj^oaneYX]\gsdZjpx^[]apS\jYbiWZ_VZFhk^bggip^^ZRUkpo9Wzg\cdXacwt[_wZ_^]nrt\lo]exluMXhdSc}Q\du[XhnYxQhaf\EbS]fijYngq_]Ui]egXria]_Wnbto_\iY[_`sorpmpox[Zibecr_mkQicZVeV\RRbYKf]^m|ml\WjjPa_WlyjOytigi\wZt[ckVJuWr`^_gMi_gVRkV[YecWhUwbxf}bg`Ybhkv`jn[o_b_aOr\^|^igfSSlUYWlecPebtmbepnmbR_NaXm]iOag`[vols]|Q~\iObmZfYrZb]Y_mUcjZ_pYb}tTqmbaOTvibzX\Yc^acoQrUfYuZhwphYrlizhZSteZqb{Q{emasn_hbKca^RhrdlZUiimQ_ogbg\nc^i`v[bVi`{y\XmobbT^egg^i`llntW{cebjza^fncuhdq^VbjfrVsfWcndb`sUmQgrnul`rhQ}Y^]jjz`Pkehe[q_qdwieaims`hmNx`^Iqb`f^qLioV\Yf`}l}U]|i`a^b^`mzelqugqdj]{`U^i`sXVYrOt^Varj\`TSlYg`JxegwvU`or_a_`oQrqsZtcj]bhYbofTq`vabbdgsdmYk^]lnzbXte]baojvmg[gnc[dd\namokmUYT_kd\VRrd^uVfNe`fi_NcgLgWhc}mYp]YY\_~QdVU]DWf\aepkzZ]Uidpid^ZhXSge^\dT]j_VY[gWdWbridge_orcBVgbPWjgb_Udamk``TkcYpLUcJ`_\tbc`}cmkg`a^aiYe`o]]soZ]kY_h|f[bYfkgibo[Up{o`vWXfc\cfaZuZhX`[dk_`xkntRw\QiYjptfsZpLca\glzfWWup\hbrbXU]T\juRe_jegYc]j`y\bn^welinYWe\^uamlm`VrohOnl^n`veh|osuedkY`fe_]Uamm}Mnfxc`\zqQV]YmRP_]xkodONlhr`c[X^k[sp[b[agdepWfblthnght^Efpe\ZVeaWr^eiSp^RlclwgX\tclSXBKXWvclV\o|YkliijtW]`LZe|DXR`^Ukw`fjs[dehXgUhggtq`ho_RcgUXX^flsXMWjfa_WY]XgmFNcB^djLgglicQeU`vgM_qUspWfmzmY[aiTWTX[YsPj[Y\k}~^Zba_SaPfegcMZiYdfhguSa`iiagQodpqkk\cblhho_npY[^bwZxVaa`beksUc_vmfeYt_c^^bcRu\YXybdZk\a]wPhihqpaLp[nlhugpSemMUb{Te|na[ftnYujcUgeos{nV^e\Vwj{j[_Qdci|]mXrhi__]i`N}_yUWmqZVp`YT^a_\odku_`[[_hmrKa_NjgbnpygRud^dOlvYm`bhlh^\xSo[b{sYharlpugmaclZvd]efa\abyjcclgmb}pXWnXPq`U{s^r[ddjZ]hV^gWb[vqfjbjnnqqgiX`paxWI_viqvkzf^gWjvSWqfUvglYtemelsjjRhQWlSt`pdZgg_gWjksfr[Mfong[gc_bafd]cetVi`dny_[q_Qb{]]\nij]bqjtm`shkWh[`miv\cup[l_]\ejkz`qsemegXO_ZtVsjbWYVwbRkv^kYZsjYk~r]jJ`s\`d^jYanX`keparkdi`gW\gz^xZldef]g`vUseZbi{^hba_]lWyo{_R`uyji~[\sj\ZZ\R]Ok`]empnado_kmYwcWh[`nhc^m`gsOyUz`mWju{pjmulskf^]ucd\]N_rax[m`l}mhoZ^P[Yvm`nevhimpcWmrjyebSjuicYjbo_R`gbYUleNpYlgX][KfpO[\_d\r~]fjl_gepURb|ciu^dVpj`]aTdEflzvi[Znjig~tsqpc[gbmZqUQ[k^W\_hegpRXgLhfa_L`Z\^WipYeSjeviL]a]VxR^b_mSgiPh}Wyg[a_depS`rYgk_sja_a_g`k_\[b]i]`pit\ckf`eZpgoiu`WcUoZhnflY^L[TcX[vgZd_bj\cN^wX_d]Ycb^jfisZa[c\^gSqZhc^chOsPUP\il[kaL[IoQqhdZis[rXc\my^[TjRVe^cVotSZet`b~do^ggmUbhooVcjhn_gjq]^_f^wboQde\`sWjgcNBa]`eoYn^Yb`fsQsjRhS_\MQSuad^lX?l_^w]kiZUk^h[pVZZZniPhhpijQzuggeYWaQ[^kugcanct`iuV]VdhvybttQ[xmQ[bXoa^jjYZij~lf||fzajUY]Jsgfocn^QmsZq}`[ljffZ_KYd\QwSZ[eorHD\todjeVZpbhi~gX\SjbXe[[;onrd[qVVlo^huicsZv^\UlhZbuZSc`vge_b\_^qfYbpzw|pOdMe[V[b^bVff[]XVl_fSpnmsYm^rndl}?fj_f_\VeycbdpUJ_so`gFw[[a\YeV[bqUpXtqajilXRvYseWtMpTZpHdaa]hb[\qwIrmigg\mVdudsjntlnVstSpoNSasvjAg]hbsLw\[]VbmYcWj^`]kXy^VUef_YUOzRdHsjleZSjlhkm]h[|Vl{ef^ZjzL\|ZSULdodEOg^xkWRze`jcaghbUajk\XZb]hXqk\\ha[~fiP\_lIeeh^Z]oeQ]bUbXigGY^eb\^hMdXl]XVpgvejJd]bgiUbbbi]pf\LXbjigq^]_Y[jetgtcjilWj^kRuUb^]U\Tj`N~fUZUibTame]t[dnhedP`s`RRjhJTYZscevgdXqdZjmZlaRcqeYQbeO]W\WVa[tcfs`YXd_U|iMvTaccC\xwaZc[xe^cfQ\nqaUi`adv]a]kaV\q^fbsdZ~b`xV[bk^mdNguk]\h[[g\dc_jhngdowgclufh_{de]ocxctphYZkcqs[`i`dbqlkolZvsi^bocagho]g_zr[_yZlmiZeNjhrmoggbb[tka`[vjae\W_m{hh]wjVxujgosbetc`eifgpkddgW[ood\aRUgabitkc}\s_Nmo]hY[^l`[a^hzcqt]bSd[SnxaWWS]`^cQXjgT`g|huexjoqLXq_dlphkdimVillW[]bvhdgWddxdd^{hoo]f[XmZhgyjnUXawjlvXcrjQyTqcd[fciS_mhiqmrfgYpljSzan}k\_bbZ]m\ZYXYirXdfvocUU`r]nfjpy`dUPx][gWkoffewXbjfo^nRbe]cNazrhq_jvnx^^Zm_pjklnql_TWcU^q]v`d``vet`gYYog^Vbkf{oeA`iNnd\bp\UT{\bf\hh[ymV\__uYhdgX\]bswiz[m_iZuisgjjpP}ih[ikk_avPlTwl\m`^c^mqGgh_wXuhbc]T[ebkshipocXNlng[ch`h_euf`ig~nuTtapce\ZjnYnbYa^{l`^ufXcwbYe`]xvYewSh^`bg]bVs[bvn]TllYefptkbpkGtrl[XRtM]dxSkekmQfm[X^bh`]ggtZS]df}eb\k[W_gV`gfk]ia]n{nagdeTh]adxijdU~^[ljdkr|mss\]~grjNu^T|Y_hkkVwso]vDd\aL]^eib\RhWb`qS_?Ugip_`xRbfUjlt\YnhbiWhW_jeJinekaUUfo`]]IRo`edhSMldZWY[^`hj`nNPkMmkXblauU\gSk\gcRxdacYYKQXvZ[rJXyf_jaTyf]Rxoj_\lu^i]KZao~gScIsWXU\ZgiEfV]ethfl{^WR_T_mLTSlffSobaeGRMchNeQs`dmVme^a\RckosRXm]jeLNccZVXO\{f}]X]devqnbl}mrimVscku][dcofbXUb_RtWrU`ZiW^|Re^lWdj^occ^sLqfhugsppOmenayghoolc_fa`RPqtZhjdpZqdrpU^bIYo^qjNajjdj^a_q[Z\WWtngSnhs]_ftbjsQSjbqV_Sjv_\gViUdmokeXvc^dqi[ZmeekYahOtIz[\hUS_aceksQmmfYrpbXRheempsz]Od`k_jvjWpiYbeXh]c[v`}a[e{[^o`rjPghaWP`pl]p]opXheYVVYXoYajZYasNadicjilha`bdYvdtePlwcdsumjhan__RtSpmrhleZaV^S`f_pobTcP`\kgXriSNiU]n`c^\npkj`y~IYyj[a_Znfg_cg|ksi^xfu\{twg[fZ|`O^fqKz^n[u]Sg]TexXwsfk`onsZti}q^bbb^tbdYbqX_m_n^RjRe`nrap^wwZpaopM[_hZ~mSf[VgmW_dXBb[ZsbUdRecxhjwlemZ`irb]\VipnZowibXepkZ`anbiPvrZaSXW]npomu_bRzskNfPa~y{g\\Rhkdl^oYZQ`rvO^]qendkm}brUv`hEdchkZ\_m^]xmYrqiV`scx^_LXvfveZtriy\|el|lrnkd\o`jhl\j~ZffXsXj_fq_[xajeg_gspscYehmihffZtldlkaav`\jp}odyS`khdn_^^emfe]TdiefghmY]nvfhyqploWco_OdURl_pdjyRp_UcsdPgiyvZ`eop_iburkiehb`hbpvmTmp\alYenShvlq_nq\Xkajee^RYex[`^[QgPtQthmdr]W\fjb|l|_nH]`]dQRzbpfi`zcflfmUoz]mq[gchsqkoPiskczc^vcYny_b_ogacfkponvpk^j\VR_rqmZqs\wq`bnvgf[nj\jYiseR_iq_qahsTmwb]dkdjmgidbkog]lb^mrxly_ogSidhbu[Zp^a_NVVSgnZGYhgPw]vgaUbk]QelY[eY\[YUgWabZZexuqdaYM_X\\\\bj`Whajps]gRrjfW[J]Dcc_jpfWOWWrwy{f^eoat]^VPTT\^eZshoSTlcQaMiolvZiQcj_UuTlQc^Pm_Vns]`khZfdk_hkpdkjiZ]RhiZ^rs\ih_h_`e_V]pgg^_qcnwPRkptcTWsjtRF`i_qXixNbf]QfZgK_UiZfjab`Zk_fQhdVZlL_hhSbqhj[dlgT[]}][XOuWYk]g`gqlc\`hR_ZksemiUi]^rlJ`T\`plgx[V|`kQZRapl_`f`mglZV`i\ijk\bnnahZw_Dalmwt^`[Zaldeqidb`]QcooVmVum^\_hiuigpceVbgbajvsfc`aii{v^hhYes`dfrukfaf[\_e_agdcdfhtR[Nmhsgsi^mh`cigcf`i`fxT[ix^`pWjh}aSo[coib[_c_g^TfcXmzZ\_go_UR`vpXjugbj^nlTs\]nk]xe\uia{hdZkjjt`ieq^hvgk_ub_aUbWtbu_ijb|Zk`bc^`qgbnobXxf\cljx]nm^Yqfyr[Zn^epn\jmdpkTg]hoajol__c_xlpjire]^^_j[lM]chWXclaWgxp\lwWkm__bhfV]gkaW^aga`effvkdpRgvpyjZ\[vddTqVNcSslv{]_grdjedq\]_dVXlgalq[himxxW`gYa`yX]ad[lo|^]c[adc^WW`m\SajghTjthYqjjmsjYrm_f`^yrdbWifj~r|rczfruN^`l\^YYg`YY\nW_`_YWRNb\`kqVw^wVn{^b[bokbdnblXubqYldvlz`n^Y[fddSwqrgVjtnPke{f_ZQ[k]ekilYkcgX]m_ZZgZc_cTrjkZicceggjubcsm\i]ux]ZnesahWqckl]rf\v_fgeVdyNmhqaNh[bC`[kh^XfRZYRW_YSvhXadelYjVTZYjlvc\ooh{ltlmk[lld^aKrYibhido]kknhSejdodgd[diU\kmebf_hWnfXag``me^oijX^\{RYdppiXhaod_iYjchdRlTIkWwypi`j_u^_Ul}jeqe_pW[add][ck`fhsSdbcYlYl`Qii^fmd]ThYhViy^]zdzcuYWMnrcSVS_`^ma\diZfhV}^oQkgZmXndgXy]O^eVZajanb{kZe`kcaYaep_b^ebsZuhndWfzNZisdb^cq`prysFX\g[s{Y^Xdr^[[VI\]e_kYatQipwf\upmNfjhfvX_]UY[li|ktVitcbc`RVhvoS\jjeSzhewinl]kn\^quk^ciSSYzb_mUiU~syPdivkStb_hbkk[aXawZkwrsS|udbxjXjcfx[\^socMhnqhgMnuudV`sbdak{[v`pMeobbYkcSvU[[caZaiMhWnj~jfdZm]c}YiRf_Fwxge\\^^oc^XnWYfk`iuOaXZninSYolfV]il]ZZUdhHi^RZeaZuy_r[QXMedcS\~iKtegzM`uW_qkcblgu|jpmy}Xq{uqkwsfeda`aduhmmXo]od`wjgvsSYbvYgojxYhejXM|Vxse^`baeNqoeaM^`_kVgmhT^}]fth_fqTl[b`Qfasjehkhd^T[dwamoaXggc]p\u[dq^aVWflYmfaUp`eedZ\sazPf`iegU\gaarhgoY^ahqgjU^bz[cYeXjUe``sy{d^_qhbX]l\Z\]do]lm]_S]nFhubefX`mn_b_]ZclUmb^wdc[qgb^g`]Z^qmbtaN`ak[l|kXUj\o^QcfW_hjav`j^kOcWh\`bkr^mee_~b\nfs\T`j\qYeZa\f\QKcf]Zdaeci`RnR_fnwevc]ed`wf[frfUhUpWk^\vvh_aMf|[Qkqk`uh^ywqXgebgkXhuraJjW_]cliee]d^ojYbjchcwSZZWiSm]g\~jjibk[cif|b{_RgVecbffQxjKeXcVnP_hfadwjmvj]KQe]V`e[hvU`w]qdm^d~``kovjadh\isW|ZTIvreuioc_ahepgqfdTkeazbrrmXiYVWcp`4jhj][pdtw{VhV]ombv_xhbajggebuunQjdTcNot`qg\mvW_jtexcwmztY\ce[rZWfoQWcvcRhe`kbac}ohctkdj}ohT^ZUegcdT{yZk^tcF\^SVpVdglvehqThdZgif`Z\``_]^[mj_V]egfmW]]hi^lhZsb\\zjejh]humW\emqq[eNSZ\hwXgjpjgegbWd`paVXgmwTlZb[~qxV\mYqhfedox`n\PmtoqcqmXZXfjgl`gP_sfineaqtdJ^^^kTa^SXfht\`vbfnimm^dSjh]YueX\]pvb`[v|yc^bZg;bk[g\vjZ_ag\KuTOskhjgmnOba^vaX_kpXqWLd{T`[ioae^kqalI^\\sYp^[nY_jT~a~T]]dgaYVeQrgY_fUgj[h^jdbj`RiKpb^j^a}Zl]cn__RpPghfjWoYnZVRhYzgm][T_\VTcjker]pe_WP[}e]\ba^ThlidX\ehdSrr`zkValdY`hecoNhjjX`jwRwWw`YuZs]huge\]ppcgyoVjbtforaYmpfai`vsa]~SqWei\\XZaX`UdgrsfgdsfXjndlmqmiluo[fo|_uim~imV\ocoba^qgfjgmawu^[Vtv~g\[ec[TdX[^r]wWd_o[cgyWbwk^eVjc_kbuH{l`l^\f~lgddoceS|knYihqm^Rrrde[F\]wugrsU[Xwa^qo`atmqr`amhNWn[pi[geVpbktj_lsTjjVkwjuZxvdix]dYh~Zgmi\\eenfdZl_jxkhgVfB\fxmDE]coX\lg\p]SbrQcNpilieWhZqT]]ebm|gcspXi`][UE[cnxlXmb``S^^pdgTlhXqecfrUni^KuhcrTcf^@dddKfcf_TXcTgbxc\SRXhfSslibjbgcYghYRdj_sVbQ`_jwnxZXgre]yieY{XjfHPXUsJu^[`lll``VK\PihWSkrh~nmnWwluugadlXVOz\m_c}\ZghmhnWz\phqp_KRbTpXegVX}W}edoUq\bsdepNdhxitkW]i\djbqzQd\bjPeokf]\fsrh[ow]kpYSdca~a~WWh^`Z_Zb_VeLgjPbiZgiafYy{Mqqg`\}w{ufqiZqklrhpp\aheuZj_he_n`tdCkwShh[ie`vs[imU[]vNiaaVs^cYibirgQXX[fhac|RdD[pk`WUVtal{qe[ph[kv]vWwjenXl~pigxMeQSgb]l]se]pn`LuyrWfhhpqMhra]_`WhhTygr]oichk_ctdZf`sJt}gkkXcpfUYeqiDqVWno\SqhzWgrj^YfhTRmqiWb`vxcVxR^^na^}mTidiffjWiupZun_a\^mWj[sk^ncg^yic[m`ecX^xr^[W_rXr`TnbafmV[[`OPg^ykrsiq]k_eYclWinbjjd`[dcVjgraupkZwSann[c^Ud]hkcunZtRxhg`rko]QqcgfefiYjsgQlg]S^`hqlnx\[_bi]mofk_o`Ymegf\keWJmyRf{dpsbxp_i`UnkaklgvbsbsjOZ`jT[_nUeojWx]YT\cnpc`hz_V`Sr`wglNhn_`oMgh_ZialV_fUvhsZg{^kdSHm]]hywmpaoZ}PVe}r`_[aquV\`fygdqadrmhZugb~YRukbT^wTvb[emitrs\TYZ`\Zj_V]gmfTds\\slSjw]fNaudgbnh_bYektggmxUzpoafeduRiyUXdXQn^Kl[q_ycsc]b_M`{[[fh\dbZnWjdlcqjiZgJrwcalXi_bbhzPfoafbZs\\loZj`LedQiW[{k[xgligr\_^TXd]d[o\epv\|_\_~khi_{bV[bTd_nwXUighh_^\rSbguaPj[teiu`ZntlhSfumphbclpbkSO_bfomiielval_jZ\]imrpxezeWkrxv^rq]j\VbgZkf[Qh_vj_kgwZ_eUh^pmpw_S_svmbZXLqcc]\WidYdmXdW\lTabeZ`i`naa^bb_i_b`]hf\kln_pgcj`^mgnpZbYrL\``^hvifXXde`qd`qb{Zgdi^ick\fh^bvugcxoyoNZrdahgeq]ii]no`fVntU`bjhgdhd[ZQedfZeryfseioc`hkll\`ghjmrdmod|ceh`lVawpmmge]rmh[XYt`olrnncimld^hiuq]Z[ifurvZZtue`chl```kkhghjgjcY^Z\lcXeYd[PemvrjeZ]llrjmUygjb[|\nkpwlellj^anjipjvkiped]ohda[tM_\xZj{tcRont{hRpZgomWkhgU^s]fnyeZqaPocpk`gbaicolmzecy\k_dZd~reVjlf`jndwZq`WfrZid_umfxiocZ]jhb`dj]umb^bXgmcPev`q^^bv`_}l_]gfd_jXWdcj}Zl]\pef]oaah[lh\[^fdk`bh^pl^eZ_gs]gftvkejNnoOjaYiiXe\jsridlzL]sxiekTdjajUssSsi]aHhhkkcfgqk]aiX^blrckeWl^akssgTpfow[ct^[i|lb\bXjtakl^mrbVjim]c^p_bc^csa~pkXeXcel][ihd_fpukjy[ftbY`bjdsid[o`ulMlVjbb^jm\wm{of^_{`fZTmYjpgwjXsc~aT_nbyb_l^W_W`mkohjYbtcel]]Wyfsthp\pj\TlZg`|de}\ehccVhYXfc``jnk_ZaUqgei[O`cubjv]ch[fdiks\l`eToXiX]VU[gotfnajgglsZclfZ_`gveZeaegwpSk^njgmmeuD]gezdAMjV^]|hbYIbXVb|eg_a]eT\aSgOljo`[gsyi\YSrabV^klnm^^g\fd`XmlibyUaqmmVe]`ii`Yrd\qpc]IvfYnma[WgQv_\mU]klgico[^\hZZ_^H`d_Z_\YLWResWgeTZgppr]eU_]w_[fafWT]WhXfc\dg^YizpZfnt\ykZ`SWS`Q[XTMhc[fhTu^d]X`^[jmgjqj^\ljanl\Wn_GbYq`Ycqqhoc`c^}r|nziMfahrfloqe^xzaptjipdSjYiEQkhy]f|aedsg}pvrNv}\nbddj_|QYXx]Kee[WgcvZSafipbnWbuklZgfbbjt^ahs_Za]S^qtmu}odmUwbOjppTUejTrlaivPqn`ncdng~zlfuY_c\mM\{dwgtddMc^o~ntn^T\in_]oUpu_Y`djmZvZk^kpYVh|nNS^tWe^n__c^ko]eghdoTbh^mTfz}_mcxtUtfhknjiSd]pvleYfsheked\dfWq`bf_~t[|idR\x^lUj`arncavbrq`dPofc_j]Zzfj^jaWhtYk]i]oWm`_PXodgTWxqjer]chea^lbhklen`[ndvwhrgqeek_d``ap`qZogtY_Iu`fZg^Y[`mpqjWk]bW^apyjidxbqawlicZl\vjfZjW[gT]}loWncitjc_uk_ehv^hmbbZ_YZnSRbkKmgdef\b]g`sgat\gRc]zVY[hdjyhjicZrZXfagjacpYqXkP{m^tRYfcNh_qi^kklo`vpdj_n[dZVf_\{`[`qifWvVZZtrdgSc_Srr_Z^cWX}uOcs^UbqfSa^dpOqaWxcra[yWsogaW]day[g|\d]Xkfd^texWbi^dM^^l~wetjZsdichW\^a_a_[PZgMxnao[\apJzkhVV_heiWzmj`kmrc\wykfyhqG]ixch~ZXh]bolk`pWRfnVW]pceafYlnearfThnLh_expd\N]~QnbswbbZYa\_hT{bSodb^flVi]S}z_NbmfhZcf_KLmc\XPm]VQTcxnyXVcaYyggpgyg[hVboa\mVSwo\S\qY`qlZ^_bu\oitbb[^pltvkdowelV^|VpdTRtYb[`ZpxL[wuv`rUYwgnfxsXi^^eTaed\fXi[icmthtvlsEZckoZcahfXf`w^Saf^cqOi]jj[]`W[`jTencmgfbg^aY^k[[m`\ziL\xpb`~^bhSRcq^\W`\cj^U_ps|rdnfN^XnkNWsfc]ccd`][b|mTISYdfnxQhhrptq`kLYunQhrVwh_lSfi^EyciWj[hdpqVxgh~db`Ys\U_t\e`e^h_xYV\feWlWbt|klS]]{o^j^`dMniaew]eqMYadfjZecjtp^i{\f\_ey`nfvguH^bWWdnkNeh^d]sahRohSg]gyeXegmngXnaxkWkjN_rj`^lhs[mck`Wtd[cXjejU`okjmUaiWja`tnVS`Qc`cq{Ja[[k_WSkQa\^hhbZbwgmVTdZch^taMPei}qVmxXdY^h\gcej_T[]kiSUiw_ajfinpf`tkYehdctjgbfpopRV]fp]Rn`ToyXmThe[Xf_YqUbgeibne\rpyh_sSxktgnQXfgUhqVf]UnafhzgipZ}Swmc|_dVXnPksnn\bU|\mpYg]]fPbdVXv^]ei\ZaibN_\uvb\ciZhavgYfmmgtnqanp`oXzgtlhlhZdJm^i]NdlbYnkipUe\uojY}diIcnpw^`iS_edWu]k_dog]gaZkbibaYf_bqmt[mVhhbcnw_RuhxlQY]i[[bu\TgjoKY\Xeboamonyvsla_jmeYfabmebfcaz__pfVdXhaiRs\ged^ijskcl[_aq[[g[]nqef]g\OS_`dQAav\joXqmvlfa]sZ_\kj~zpS][cl{lT[rVogd^w\ojif`dn_{a^ht[e^q\`V[ad^tfauhvLdsdiwYjjYieeiesjkdaleqqln`d[kc]hv]qdehdbpisf`lcxiXplbhe_[rrd_aidr\WOZXXvbcnmh`q`Y{ikQtinkRm`oYZvcn[fhahlVodWZgk[ecacqqbOY__UV{sgc^aoujocbYdh\]iq__cXXj`_pdmii`Ybg]bZdraeUoXxnilYVZVld`_lvZc^iHj]aaZlcqer`hUtjknXbcncu{hfece\TmagdWksof_kn]flhtdunOfiwnoa`gZp\dZjea^bqXxVRr^ebUj\tlZe|hbo`cg]U`Z_fhikZPijbbjcWfe\bMlh`Ssqcfml{]_bkl]``_g}di_a^ftt]h^ndrWTZjfhtvm[fuYX]]fUqai]\phnmYjcb_trfG}{nhk\~Tv^aYbko[ec|rdaef_ZajmiTirZfvLgRitl\]ce_U`i]dhkn[m]l`agTjewdg[b[bwbmb]]XV_{qhP_mXdTmiygcd`JYa`[j:dlY[kdh\kiXedkWUoekU_hKmy\klyfeZfeanfcbYgmtf[^`}Y^hc^vVbfZZefbk_maccd}c_SQeXcU`p_S_ailyt`eiwe^WkdQc~mZQmk_^ggg`ZeaZioORkNShWXep\mPgi\bXmajVjVkhdg]`~kWQUebYaUZ^Z\o^Ukkc\ke\\[lV`jgecarfcjpld\jYLoe]fIzUWfcedbxo]j[^dRjTlkl`sfcWgbmavhog{cXfVbnfc]\NU`lLs\ndaJmZk][pc`gZjl`Kkgdcdep^ee_jx^fibfag\d[r`ajwmbbPvTZghZojj_ck[_O|uWhfU^majZUZcc}abk|n_`ev`jeiudsd`f^dkxlR[jzm\j^XSoe|niWb_drX[ZYXd}cbnWmeea\}^^grfecboZgk]pboqbonVmeh`gecm^lgxKMod_VYrq^dpjT]Y]rr`bkZnfP_soetqcsPa\jkawdn`eSYj[T`j~jN_a{Evqy`jdihol_gxdg^bb[b]u^`l\i^an_Slh`iS]Xdvrob{Zfxcriek]wZo]blo]kpjei_ilhZlcf`dgZiIbqYzajb|[c]xZifmt~_\jel_z\duiUdljekYW`Gbb^uP^L_sk_XVcUtTFjWiTXPrlXmRM|kjXnYNUa[ffe`ZNocgxd`ZZg]g^bc[SpjXckCjbw_`iM[cYUUibMUaSki{cSSccfeZQiO|mViNkXITieOW|PRcilms[MoeeNTkpYgboaeang]ydV^Lg\^nWLRd|fc^M_idePRVpX\piZKWh`qiS\eRYq_cS]k_RbZiPNW\i\rgTp\T\gj`\Ay}vYSf`vdtlTflh^TxUZ\uizRbX^QdRg[u`Yb]\a[hnhob`dphoxfqZYZ{]swe^WqIVcnfyyxUT[^S\VRYS`QPojV`Q[]qQP\Xa`XTMa`R[j^N]kl]^sYolmjt\t`m~ubZxXg]bYYWTSvwh^ifypadbjqfeNzZ^Wd`[`h}UxQcYwUTf]_hwb_~brvZodOvkKg__qVaedXjoWQ__c[imRtbhQm_veggWdn]rhhcXsSqWa[]YvbXRpoiRG{Y~NWti`W[G|jfb^^QYbjbf3fgpknthkuro}c[_oVbWq`XR`nnplUt6bvQ_iySg^oqekiaZ]kpgHuh`ujHdh^xmYtX^_lfaZ`thy}PaX_il`ejnldA]iqgzVlQ^\n[{j[forhgphTYu[]xgiX]LcXhZoca__u`^UdfmmjmnVUWblnfezeqZpOywphjtb^~^dsXmsrtYpmj^`unlqvZafOnnoctUK`]eoUYVvk\lmmYKan\xU^dWXalYjWee\bi|d^Pdt^rZckbhoyrc_[}ajlZpWoce`[flln\Mhg\}d]vgZXTydy[b\T]khwb}xr_on`a\krhiRfP^kSV_icahacegdiZmbak}PWTdc|^gWffs[GVj\wnZggaylu\grzcaeaj[gVf[fVysatjbs[iZmgqhvecmf_`jflgnbhjaySiapy_nalbdccYec^paVlzsbeknf`vc{sfvVgmidTemllpn{d_gubRmds[[qfpw^if\]Ugq_H[d[bWagwdSpw\paMqefdfpl`TgqbrdTlpjbemfmflPj]lbc[dhbdcpuozOahekRPdWaiLXcjvmfvhl`dfgavmCVc^[`ho\wfkqfdehb_jud[gykna\V]dZWW\[o_xoi{hhd\rkg^VqibhemjfYfaadjquPOtYqiw^uTfP_onm^co^rhi_gWomctfZphpRiZl]^ZfcebinvxS^gRhn]K|vxec|mze\\haage]P[`sg^`OuiYoxVp[YamrbRIjbkQSLSH\jaZRzi\lp_dekeaYYNXeXb^nU]w_Cf^kWVcfeeQbybfbg[sXmXzcpo[\]hWaWg`XUl[ObYQQbaWt}nhT\`]m__[JGwZe__^m^h\djZhYhW\IclOgkVWVYSYZ`RecnuQpaIdhnXepo]sag^paWmbGe__Zic^Q^Z_dVkcxQZy^lYy[GgSbj_^kwQTNaGd]`tzpS_tfRk]cUYWhgnjXs[wq[evRyh``_`Qd]YYbfcb[Wfyp}Wm\`X]a^S_[^YaWke^|uMo^^^j\\Zh^^WuiSdieUhfWjYj`qi[KhnicZlw_jR]amfTjX`pOZ^mkd_aUU`fV[_Pbaf]ZV^`aRkdmfqZg_]bYPaXPZqbmtoY[Zb``[^lm^mo_S\d{sioecibdKXUbnFZa~[\XZqZ[Zgpoff^fnld\wsCmas|wV~_hnohygjladjchGeezdOX]]m[hkt_ijXqlcg_fpV]Yf_cfIfjCo`ryhdg`bkaVZvx}pe_e\j[d\`c|QNdqim]deMJHy_`c\\`ge^kXp\jauhZpXl][ucV^kbk^bina^QzcyafgbZbdWce[\eVcs_ihVPcgv_Y]Sme_\WfWYRbnyvt``gd`m]f`Xc`fbLjk_^ZxcklQ]h`fNuMcV\YYZ`]U[_kfaLn_bhf\poOt|]^_cofddvkesjXXmap_W^hwXbaKfvPajm_hXnoheVb^idXbb]_\krhhweXc]e[idIn^Zu_Wf`XZebjphd`vl`ikjVlnsiPnkuef_WMme]i`jk^hajcabhjQ^WeWgXX]mTpXtahZZ[ceg^V`YfXptvZls[ackZ_z^aMy[sliqVkenepoQ\cagsFdQtcgj]hzxkazZWqBe`Z]rkhifV`Vdza[pjcnZtlKYgaqWxUj_udcOlaxRm_inz`YcYaIxekds|SZ\M^j^eRMSdXq[Y_`~lnkSuQav_nbdgZaTc^bYhjh^jcipmmemlex`W[f}X`hORbcjuhtn]epcu~jffOgaiW}coan[d\eYcvgUZaUhZ\_IPaaaWn_thSoqrdTYX[[wqZuk[`]m_a?jlQsVhOTaeoRi\X_eaQ}vbymScXQd_uoj[_vsReeYm^QmWbibwlMYKagddbh{UjfWcm[iv^XGg]ivTb\bN]npTHsVOet`lVkYxfafiamiudQcoffdfWbybi\cqjWr}cac[cnmSiTL[Oxj\`YhiStwsTrXjd]k^i^ga^emViVZa_bxyXRgbz]\Spl_GfoQ\d[t]ke?absnwde|pcXndtm\s`[chlYlmhYXfild[]dzZ\pw^Teejp`i]Kl\[akp{bs[swica_RRZWZ~sYoj]i`sXXcc^MhsHUPSeZZm^`cNYSW[qmScdf{nwnsmY}a`^aegzQgZeVf]`ldbr\afinihVzMpe\gSn\VW^Sfgt[_gQH^aiqjzo]ETv`ena_kqXswZSXt[NSJXVk`vZY{hcUVYmcpoleYQN]uigdZn][]fYckY{]hmX`>V_WYmpzfZlcYt]pZgfdiRqb{zpRinb[V]ZXj^VYoTlgFRfd^[cd`bTLXu]bick[s\JQYe_]VsyyyRi`tmoXTb_oiUdzVrmygfa^kXiV_lZP`cdbJnoi\Rbi]ZVYvbiPuZQojbyeb{Kufl]gal`Qw\[h^ZsbS\dncW_eSbNtiah^e]jx\xchcVJdV^v]WcCaV^vM|]\i_slq_\W]ahtlEt}m[p^tbLZZX`mRNRQqc\SdWT[dmca{_^YafpgczmlLoY_zSi]We{M^kgab_]bRf__`q]U|sShpdSjbe\eekmpiklQX]V^CjVQmX]y[c`biVgrXh\bUkaZgWnReqNukkiPcWcj`\YPqU]fga_gVVauTcgmWtcJ]chjjV\^Q`PsUkXTeM\gpZbPZfZaYfd`]^aonpcXWdo^Ua`^_ZhSZ_gX``cQgo`evQn]QdXapMpskVU^^JcQka\i[dPu`jaa~RU`_c\mw[I[NoSlgchYifnj[_ob\fjXjS`]bcj_]anf_oMgkKVcYa__OgVZjhbpObPja\[cgcT\cqcQfca^`keilqhnfsvdhpljnbvYk_fehsihiVh_jsd[[jcuhibojcdb^fuhWqyjzlf~mfbjxvwnzvKosjWoj_edi\d\`^TWgewVbjfekeWWudbh^nZannalkt]yfbcSf_qi\a|l]ejeijp]lhxgk[bc{o\\]]_ZheiUidZ^weagagjdc^UerkhPd]x^luWiVnd{`drVwbijg]nhld^oevicU^`hnVomwUjSgeb^ik[dmgZ^guekoZvwgralbnx\_it^qvgnbtm\_n}Wk_d[glc_][hljg``w`e}Zgp[_ahbtett[b`h]qpk]]]Zmeww^kwt^fido\^mcu[diaaolWhi`w`r_Ug^f`YqjPdbbQZW^thmdgfak[cbmw\rxbYq\yW_\[kfflbPdYro_iedg]|kmYidY_bZrgYoc^Xk`Z_MW]ls`]m`]xfgh`bgSxhoZYkbnmcjZho[gmvZoi`c\aZbbZWjbgrkcq^^lZ_k_g_esf[lm\ksWp_`ehdoYhxswm]aj[h}ff\oTi]iip`apX\mhwlc\d]cpj]hoophU`jlnSgjYb\ldju\fi^hgcam_eUiiYvchewKfddgf{bZeZoiaaYVb^ZCUXX_r_[}Q{jQWfSaWb8emSx^[dn[S_[WhgNchj`kjppc\[Tb_nWg2Lab\CVpb^VjEkSzkwi^{rQ\RotoXMIuckPapykjjgesVYJmZSXfbjHVd^BelYVpr^]TUgwclMZTfkckZLUta\O[euZfM]QkqUTpep>UN^_Zh^a\hhjZvRLZaambhiMYhfz`^T|nTPY[aRHf\fcfXjeV_djVNsnlplL]v[n}e~o|~uTd{VW]sMRR]_O]bSViWdbYlWY\R]DRckZTeN_WN]X[`aqgaNliXme^unceQkueoPV\oB_jleV\lnicba^eP[p_Y_l]z^gXbeokaqaclpqhZ^rZcmd]ldWgjXgYggfq][VdZ]`e^uhjcyYain`rugP{[hh_eYl^[bmeZy[tl\h[kihgXbQggrq[~f^f[ka][dh^mr]zYX\x[nrtocYjjbkWVegao\lfnepzdxbnfo[aw`xiOi}rpbfz`Zb[\gkahsrjUerspccdX]^cUf_nguWpoilykea[qprn~oj{ipdk{df^[^IXjmYg^fkir[j^atr{aghea^h^_e~Y\p_ofkpkYnbdk^pj~g[el_u\Vmgesgfffhzm}joj[p_gf[b^tmqZ\Biqcaoogayddfdlni]c[|[ahbx\`^ypmdksrc`m|Zjv_TeUlk`hafac~bcIo}\rcvt\\ru[iiw\okjnernjf]cbX[xhsTedZicuh\emif]]_vgtc^i`bpXZibc]\snagwfdfgpo^lgrjqioanqbbbbtWqdfbjffbig^ieiskigo]^s_UXis^j]hefn`goo~\Xj]bO^|be\beZZeUV\rjbrna[iTfpTwgn]vy^e[fri`iqlXpziVeW^cvcn[udpmd_{`cfokc`mrjkicfuf]nxaZeX}\cTtem_ctf``iZkkN]h^cijVJfQt^d|_i`agmhdi\calnxieeXko_cj]bqaca`Lg|f_`[YlrnXshib[jNhs_e`ka\\kilibacezssuZ]rh_yhc`{_tYfgb_bXhambpYkbf`kwaVfiXv_sgc_d^qb[[a]UdfRlxghcViNbh{\_hudkYq^qndvqijg^w|renS\]hlwfz\woid^fg\SWfcZUteukiZtHafVPl|rZbbV]\\TlW\dcweqo^~ij{pgt\hdYjz[kkeimdi\xnvgcp`sq`c\ta^m[`pcdy_oZjT{cki]VkekRpugdlugdWo]fz{cmTnkflqmytqto\Qfwhi^Op\\khuZ^qu[`L`zfXyrSll[hfbgYfdm\f^\Vf[lsnzhi_dbwYkjZfkae^lmlmckuh\dKZif\cfljdm_Nczenei_Wllmi{dxb`ullkzYjVmjjthmpdph`]\tefq\Yr`^nSglikg_[jktY`cylgKdco}ujjgsfga`huefd\bhWmhcogc^vbbhvptlp^ub{bmuklp`umYUi[OhltYbUke`nv`LhvYZh\l`wZubqdV\bhjpcm]^k}ZkUarZtcrwmxhi}_ykogTrbf]]jbx^ehb`md\mn^XbW`j^Mcmhvhg`eibh[is`gT]Svv`z_Mg_GXSdcz{iyobd{|jkoadwhkY^kcpbgpmqfoc]}^ilOiwmRtqiiwb^t^bcujjWbbkclhiy_xnigXijgx\p\u_eVfouf|iV^l|PZ{o]rZadrSr_on_S_\hnmofmmoaQ^i[_Pze]MgehmjQdalmZggyjmnigeZane]Rtde_Sbop]nYlirggXsUedlb[odjs``]QdlebbgmvbZrc[eocmc]mYgkbgMph^bsmk_ZfoO`rpsfpj[yogy]Vflq]Ymhhqcafchvsgf`sZ_u]gwz_}VddY]op|gtk^hm_^W[vsyg]a`ycjYg[mVZhidvkggiWflTym`g^i_bycetqsnfO`caZhtoqwf^`g\Y^`bWk\t_\qjUc~jdeyfNboYj`mIhZpXnpfT^sSXe|_k`ce[mzjgXhh`]}Pdro`bpg_Y{]jlYcyhze`]b^gechP]bfl_[]Pwrm^gsambhqSgRa`gxjinz|pw\jlf^km\e`fbpwejcp[ZdfjRcu[jkW_V^fhbcmZogrf_YZUclb`hwfYerrUZdYy^rahjjVykam]pYsnRnk|`nsfvps~^}Qn`Vr_y~`\lheQj`cgcXjRnzta\pRXrcunnescg]pon~ph^^cambdgco_\Y^ndrr^YgdsXhlaWcmhhZ~[_cY`fYwrun]dd]d\kX\|^li]qeilVcnY^^h[wX_]b}}\f[b][y_YnUkKq]dqYgbqepsfYKs[Xm}y^obauXkhd]XlmYYwvY_llabj_ueagfgabeiW[gmaml]_uhTebTfdZspTr]Whlcvcdkj]iuontfpqXbgnpahbdi_\\Ldgev\idh^ymdjmi^km[loicocn`ggjXoxum[rncdhf^ka_m_kdwoXdcilfhbf\aaa\jcsuTjoamwVjxWehbuwp_UkFi`m-ceQ]^aethxWu]XQb`pq\^k{sjixjs]ecsb}^ox}[\otZpp`fZrhicfWcSc\ta[PZ^_ynXucibWVlUiJPXdfj`ttaYdneOadkldWteUhnsggnc^iVS]^ifslb_jjgkud^aT]`Nb`e_Nc^VXY\UXqZvUae]nlXe]bu`U_clica\aPY_^rXbk`p[Z]K^}f`_n^afeiSge_hnnM_Yhgdy[ukR_cVfm}VXZ}^dlf]{{_y_dUjlZwX`offhY^jl{YUsdSsmio[PxY_dTRhYObohQ[o`ipofMdOoghm_pfcuvbrjfnfdcmpg`RYsgbgo^nRfkfg`ufakqdmjcobfwhzc[zcd\e^af`bbclii[haix[i]a^vhc{z]fqi^\bcjncociu[n_Y_ac`V^pei~v[krd^di~m`qoeg\`neg`otMdoloc`hikehfj\_bsnbj_gbWtb}dckpYkop\iiqlgsgcj^Tpa^]^]lf]df{vOgpYv_}_XzTlq`dp{qf^`bmcc_qf[h^g]kbbk\^aj`_whdclshj{\dp{jscr`iZedvvphf\qyvqapiec`mgu_bj`ghggrnicqZRSjwmkjVlq|wcY]j]w[dwji^btUjg~^_Zjq\ghIcfcouks\Ppdbc[\T_lgvrlpdJq[rKhVnpgSrPini`eT`ge{Ur]Rejge^^^Yavvrcinbmktmem`\y[qYNnyUiRsqaPZNd_[f`da`KWm_[juwTdtP^YSd_]eYaqqXbnbYaXQjU_dieobYjS_avfp\fjdxcg_qys~YHfmZbWi{^jiYfZdRhUuVbwj_tITvrmhVwZjh`PonhmZjaebs^k\rfqs\yeel^gf`cs[sVfQ\ehWiT`aVcbv}[srYmO_kjs_~srydVaoahWjzZjS^agqWrqtmUXffX[l]hwcs\le^|m\\XVlYg;gR`xgl\VeeklUY^Qnkq{uXc`ZbSxhspQ~hgf]kcuJw\s_eicbnlZfsb`Ygl]^aVaZOpjeg\tXsgtP`fuiIYxfR_p[cdanUkZSz[NtWiWn_l`p[`^m_\?cpScagag^]X\pbeUbdeS`nf]]\ebOojoZ`cehUup]gsk_`nfmbbp^_lnRS[ieq_xcglciakZe]]g\ico^Z]adQcYpuzqdc]`{mcYWcg`d}nxgSqv`q\gQkgjcTll]_tcgu`jggq_XXZ_cjOkmg}\?ofmbwkrkkecrbfPmgSQlgck\b{kPnsPa_Q_af``WebiykbwlbRn_pQq`c_ydWdnjl_uthXqicneogbluha_ro_er\hm]hkipXQg|\WbeWjg[d\gd][fud`YcimZsi[sibvrjdeXuuYZ^cslrPieecp_p`nrY[uviamf{]iluX`ki^]taZfigosNzisquiaWbqSQcXq`Rc\gcfp\WX`kpR_miWa_chvwyU`r{|n`yntihf[iVcrOM\VdqmYvdah]k_wpebnktjmsaNjdnZz_eSZ[ccXcSnactlcriiqb\lzan{k\y]q`r{dhZX\pz\g^Yfg]}Sofa`o_T[evWugdbigsb^lXli]akmyc^dTmy_h\^``bskbmhnaVy`kZadXhecbcfkys^_wth\kmd]xV]bq_tO\lupOy`_hYoxtdh_`b]vfanafYc]_eig`O^c`kleabwa]tjeffOZfm`]eiU\gghhkpenbcu]md}sSo[df_b[\d}\g^WYin^_jtpXn}^Tbnwknngb`ih_lV[ehhpZads]Yzo]h_pzmj^h_{[ecaTawTnm|_k~bu^sgityfpVi`TwfceW`ipn]fegN`XgYelfi^ylc_covpmZ[im_^TldbVh\eX\bUhdXnwOebqpvaPpVYankVkXcTo{hon`xX_mvizX_n`Nucdce^gnceTmtiVabe[ZNnVjr^oej_aWH`fp_YUduYq\UHc]|pswanl]qlir}kznoXgXy[ir^GfebjhigufkhMngt\hdcUgTjl\jmbudffWcTWdTerh]jfpka]Zf~er{tp_Xb]xL_udkyqSndZac\`qk{jltteYb[zqhXihzfiozg^_QZ[xhsvQZ\_keZrkm\Pr`]slQnig__idRhSiaWbu`hYuk~`dlsfsVec|iR]b_jWZ[~`lXf^psktR\ofawzkM]YolbQvNbZukgbhX`cY^_bhdnc^~i_hgqid]oeM][U^]potekrfbXVnoucerulne`\]eg]cdsjaffnb_aoi`[q_^`ipndsk^kgrqc^Xnf^dnpemVZ`aldef_]b\fqWpdwsvsafbrci][eslfpRiliodfhu_o_q\yckncc[VZ^]YZiwSn]monpueokknbrXi_imbbj{Y`_Yqle]fthn`|qeZ]if_txff{poi^gjapcZSbRf_mjWnS_UpdgWjZdkfv^oppcpnbohfokelm`n]Wnjiefinckch`qvTlgsnafzd^or_nhmZdgVabpZri[[XbYfXhpR`^_dbk_ebgdqf]PZkfXZox_f]ueuhn`QugwoYj_omWjWrsj]ckephR]flwg[xhmv_Hd[ebnG{^nebloaug_[rZRdXdjsu`_wu^cy_kUflunhntVtZ\YUNrkg|QjS\Es[\ad]xtviLdji`a{`nfkheu`_^ZljjMbxNZiq^S]m\pfe\b{Wedmx\lJfv^ciqxYqi]uuk_\osrp^q`fel^hrh^]Yd]TkgI_Y]]{fgYxic`ucfxgv[Wimb`Zcgldndqlnq^Udjz^pnS{bwe^hQ`fO`fjhi`~^dojoPgjix\j_^uVQipemqmjnpofwWa]^cV^^o}eqwTWrucalfaticcwnSb[ecwY|elkgTmepc]eeWla^vpiuaTgqtoSe`~e^^h]dtxfcRXcVrbs^f[^hLpYY~e]Tjmm^mpllrg^jjc^r_|tpUa^hXqi^eWmamPu_iDz]bp}_hpi_]]]\S]l[bgqceZTWkd`j_rjjWToUpdZR]cdebHS_XbWRjvqSZieftaW_]ZJqb^`>hfkZgX^iZpjZMc_wi]vqok\ndnUWtwdheorlamTWdZWb~c^fjhik]kqd_ZsftW_WrrvmS^\gca`h]io\^YfTc{_v^k\UvqsfeCXrVlm[RW_qjewkxiKoWR^Wdlhp_cdSnfkSmwBmZmyc@kT^YeiWUi_fepWmVn[dbfmc`fW{e`]hgm\weqs`zTbkZR^apk[YSjjjgQsigs_^lqcSYfxv_sm\n`aQcmmWc\htrrerf[oeJsqbk]hxzPQbR[j5^{LSXjgqrYUda_a[clgi]\bcRjlr~\Sd\cmkb^OVRX[]YYrlqhJY_gqtNsnvfciccjXjo]pc`tl^Eb[nVVVba[fRbSPtsTo_YcYvY_kdcJL[^Wns`\n`qwettlwaKLjTs]YhTugeoj^ng_gype^mWg|aXvdsm]iyj`mPy_n~UatohfgXlfe_`|aUhmc|_xdu^koX\rb]ZkjTjn\jwf[[bhkqlaneolgoRtha|d\rjirigiee^^{g]]svkfrlcZpmaeWdnqX|eflhfgmpeukha_h`cOmleloavQq\i\[^hqijlwZNjpjr]u_haah\P_j^U~g^{[bfokm\`r{]iZlj`fYnne]eWbisP\YnWlefer]p}ccMil`qXfmcisy]h`pahfjgqaegag[^QT]khd[cd^vUcZkql[dwekv|Tsmeoq^h[mdbdb`qO\\r_i{cfkbp^yYh\nagWiPni^khfwb[wR]^no_fkewbokyjbTcvrcneXsb\V^Za^Q_sSmrZIclnxuaUr[lbY\ehmwgjW\rdTe`emd__VsrwWheeS`[cYYsglbYZYjb^Wp`[`^\olcjupOifdd|bclmkbY`JdZ^b]fih|^jrVv`_byvs_Xytgfkkfgfwm^x`S]^[rbbfPWxUoodSjVfhWWwr|sehz[qjklf[tfnactZpSud^ivbn_sP`]ZZrPfUiZdbhwdRfk[faxNu\a]K]e[os[uckmVh^Z_iodsVok]rypyt^\gi[cdage\hbZZdiiYhbavU^eterK]qkbnhw\Qe`sgq`aelre\^j]yunpmjauatftZ{vp`id]w]cTdmavudn]Xtolteoj~|`Pgn`n|Vy]jaio}eaciwdkumLyhhtma]h]j|mqxp[jf\pzmX]Vaphrwrolb_Robotefz^cqk[pdv`kk|[wooc]Xkseym|nUiayq\|idnjrru_edlqi|nyvL|atcqYabbPT_s\adaWcuXok`ZgOkmncSiuh\fUjij^lXi\_\ciVwVuXxi\xfWjtzaNrRgL|phx]XqYil`egfP`rj~]gigmkjPvfyodhwlcedW|Zqtlkf`^uOND_qKd|gkx]ps\YojkUlO[h`_q]b}Tomh_lgsT[^WQ_kcUhv^mZ\`YWfXQefq`i]w}ne{WaTsN`ndxijQ`hk^WrR`j\teilceb~qocgUU`ioQ\mOc^psgfiX`O^aeXVbcW\`MgOPXjmZWj[KbZcisM[Bc`_oE`Z}fxWueZ[Qi]Ro^V|gS[sgtdaTk[X^kVdXcnwOdn\kNIZb^PElden[\sioPdSQn^\ce[fh\eVOkh_c\^HtT_RuhfTr_VP^]ajhiz_^ktNijgl\^tgrq\jbYVqliiaYMdMKcrJjIqcmbb^x[fGwQbDi]j\ePml^dVVUdgcfhilckVY`W~[efnX[b}w`p\dcke_vhpaji^knfUjxg_Woejen]_mt[Xjhcokcadg]_ghsbPyd_jj[Zinrt[inescywxccbmag^q[k_iwkh]jc``bbdnfeW}t^midieg[kce[agfWebb`aWbnjYfdh_jT~grcY^pP[Z_j^_`h|[wmZjaqKWajgRc_pojY[rqh_jlpYWgwS_`pknzrSnUiiZlhreeoe_`cZdSi]ixgRbw\tjjdkVsdjmgbcyOwesgjlpmdajrsbkyUfvehd\mrmtddlcUdh[lglXedc[_^ib.]gr_bidmeja[bdWlft]_rO`cogzx|lgN[]b}][R^S`dR_ffnZnaf}_xaqfcehoc]pqZV^qpsfuWtYsZd]cajrNebYgmPZOOfs\pqpclVwgca\x{ttihT]Lk^jiu]lRtcnl[ag]lnff[\eaxQfdYb|WeSVuskt^Ugsiqica\\rvragUd]xgmhZXXwme`k[a[vg]{u\exnZXomhkiYgc]quhwWQbkadedXIPTjifij`a`{rcnfUYhck_[^Xi_q_OPZ]ma\XJ`q^s\d_i`[eryxkjqchco`Wjeso`brvl^n\w@To_n{ntuij]iYW_TWqdh\Ydengchwja~Zg`l{[ckj\^siRt\rsacdhc[]tY|`y\|_^fgCek[`OlmqYlwho]ab`YwlYqUZ[_ims]RZ]dthpQXT~Yv\Twx[^lRvg`t[_Yo_mcyXa]Ypcjj[bVsdckwudeqZfZf\R_dmWc_`y]qcVnjsbhV~l`x`n]\`\nmfcke]n\}[[d[YY_[k[UOT_h]^kd{zcoi_kfd[^RahaXXdvoaqbd]u\gxelv^Pcelj[Nk]rXMS\ipXc^Jc_djcfajhdRZqhon\euHfiajshR]dmscjn[e`Uhd^p_{o}hU^z`qFrsnek`segubYwuuUgojXLtr|mdj`X`dlme`^q\pkcZm`Vi]_ek^[f\blzW\b]ZvU_jKP_s]me_XqY|kNkxdjksc^Yejo[Yq]_re\sukde`rYtdiUtghP]}|]WV`cbtje_l[abm^pRfl}mXp^sqg^lV]axizI\ny`q]sspVZeajhQcNW~_no_Y\bZ^QgXQivluhr[pRf\d\[`hrbymSgc`iY}vplzlguiOnmmYlYh\i{\d_qz|VUUm\gEipgj~[atke\daodemhSblc~`|wY^]s_rPi}W_ajGZRnm_`ioW[cbpjpdZXhnNqj^dSYd|SVe[`S~|d[kyS[\~^jphjdcynrg}UemV|sduwTjlrqVhu][\ebfvykZ\\{wjr\][bSUaffp]i^foXahtd]qt\_{aifZqh^SZeTr}sZTOanYUcSxsPn\Xip^]gYsUl`XexbEYyjfTm]ai_{]m\{m_fekzUh_Vd_l[Owx[eWtS^h\o\iZoi{\`fh[utymjZWijhjo]Tkya\YPl_TT^bullhdJTay^`Yd[YpZiUaV`Pl[ih`hdcThonaXTedqzYff\Z}Ve^iM`abwii^gpaZY[_LUwhiZmroU[`Ll^YjoXgsKepmfV_lvw^rNTh|zOPU^g]~`a]e|\MNZiSSenINpUkediijbslanvgcyaPi{a]`i|eoT`lWWZielfIt]Udgjex^c]aadpshoda_{fYU|RvxG[qq\HWR_VtnnkPaTOciwmeKXYmqnqljiwkYve~aghcodimrupxovk`^drht\iuifgnmod[]WmNniia\opizKogZ]qeseTcwobNjqslSrutVlndj[bd|iulsW[qp}s[c\fcr\^axlczwcieodntMz`bwgl[kcvjtZbyxxdVasx~bgd^Wfwea~{]ll`axS[kvnyia}iujvivWZhir~~qo]zZ]Gu^{qjruotobgRd^Vvkc\bou^bQZplldkmmy[Z[Qcdvm[hfkx_Pf{d_copzrPZobX`zW]jnf}bf`blgupn\_jfdenB|fquS\i[ajswVdFf\^{}_TluZaZx~h]Zfmghl{bq`xm\gaYs^}kqpamvWi``Ydhpag`gkpevhj{qwkVt_imk`jlkpe`\fhV^eWjff^Vnmmgihjenismjjrsd_uefP`jsqWsh\XWR_rWedg]ptglc^_ho_irjdf{pw\c]Mz\yuebwfm[\fe`nj[hPQkf``Ydcrhkn^kijnvY]reehcpq`d_iaifWhgZhebeP]qhnpfb`s`}cq}YUla`gdjldll`rbWbfamZmlW`fhz`dge^n\nhY[rmZ{feVpse[[js[fko_fk\hh`guf_mVWg_^blSZYCfhZVfpqv\meazk`hfMp^TU`kbf[]gubYdeZbU{Wiv\VeiZdrq_Uif`qcc_\GvYWm`E}o_jkm~k[pLfGTz`hiYhdd_Uf^h^N_[SY^iPamN\eusaoh|?\fJO{k]j_\Re_PdhR`Sld]^T`qlfXqLkafiAbXkxlh[hBge_c]ORWfb|\nVUV^hmVjiwpdk`bysR[xoX`eng^RG^j\aPdm]HdkdjPlskXdXlV^fLdRmYa`pwsfXUR]ZfyagHNjmhXo`Mo`[Xlk@O^\Y_Wo^vTffMquTj\dWo\_bvhkbGPaXXeagnXykifvXUaZzc\`deheW\vcjr\Ws[lV{sen[hckffheTa`fXQl`\ofpbxacSpqy_fZm\kavNrhhe\VdbehTmrUki]dZd\loef`llffxp{cgafjkTi^lbfUqS\\]`hf]gZ_kijdwvf`Rjo_nli]jleop^lK}`iZpan_xoS[`Ta|elY_wnkmdk`odya\wgirRaSq|fmg`Z[bjQntmtXfdhnTe\cm`]`gbVfouojbdmRnpYucfb]euu`YZXgma^`WpefjqXcftZ`^kmqXY`jeoafsfk}R|gnKZZZ__[`qodbFdej]p]Tc`WYhl{Tatajhmpwhl^al~Tcnpebvao\yyceYwqn]^Ulie\mtwdTYl^sdjjnkgvf_g`Wl[d]ZIdoOhevd`Wf`^csXk_|PbggZ^uQm|Vw]h]YVad{mhigsrg~uqce[|niqzYkfY[Yf[abVfhpfrTdaYizYkniLWjc]kcpv`siSfko|ufcdtqO_kdUpgfcdj}s\`yqguod]j{p{h^\kfroeqmhZfcikusehldkajbIhi`_ccfolmwZu\cchh]q~Y`\felkjncaWQ`[ddiPfqvY_akc\TbnUveRsYW`]\kJ]ueb[ar]vKPkQjio~Uh]arcnpal\l`knmnkdabd]bWaycwve_\_[N{fqvX[d~io[pdojocazm_kT[k]g]bkhliteZ\r}pfyidilWib`khw|]oadaypPVarevbdnngmpksplfh_k_smnkY{keofpa`_PUnmvgic_n[aidNV]^l\]{qfmZjffy}ljn]Smsmnhmkbq]do^flqoapecbsSodjQ]\apqkkoVdi_Pvei\Hqi^nepjQ~a|hgtb{ts^TrvenQvinvno{_lgodtqdenmpm`tmnnfqoYnam`xqhphcmh`uhh\ghmlrPmgdvefm\fnjZ^aafolRSh[H[yR^>Y\{lorhY^_ccZan\nhldrZ\splvgZ_uTqlkwS^u[bYfJffkblbUOiicT_~c^va`c_yaty{a^dsXV|m[i\rjcVmZeAivaM[\\\[lgyUrgNia{lVmt`mdplhnohQZJLalpeXRqz{Yaddl]a`{eaU`^qj[bUx[vjg_vaRgfVfrnm__\YdiQhHzneddtca`gZ[D_\ncdoZhk]pX`YmQduasd^iX^m[_Mb[cnYhpkq^ZcXmaZxrUcdb_ajRltjqu`^[`nfneebcLt^]jse`e_YrMnVddhZT\ifeiie[rnbIk|shkgRv{]rpZXigac^axRthh_ap`uvxjWakz`ibpybzaRc\j^|yXsc\`rS\g_oc~mf^^]cgygkh]{kK]WmsVl^M`]bU`h_dhf\si[j|_aOjqeaccgpQfjrVughPzj~bzqxlVTjWaSZOhkvY{enYsqVbkUM`paa^Yj\Yc_hVxUeoS{[clLaYgnkitek``}rjvaUqrcktHleq]H^_Y|_iCljqrpWel~keMgs|SW]__plIaXUgT^j`Yoidvidt^crg}gd`d_vpoke[kaptegjghmWb`fpc^|aiuaNpd\[mU_zNS7a]__wo]YUrqYcr^onl`dwbymhrYYQmw[nb]Lfmkn\oPaZe`bsecWZqolivZdr]Xel}ek`lSqPW`l\e]Vdb`mgN]WWYrMjxOjdcTb_eWaYm_`cpj[Vm?qW_lzQnkuZR`XOijjbbafUh[SnTscR`XZW[fYfpu`dT]acPtUblgfb]\ccJ[wsY\uzdXbU|gOTysWb]\Sa|lLjpvfsxjf``d_emv]kyac[MYVmYpfY_pdukbhjaXdngLU[tTmeTiUw\tXdlaiYtea|VkxqWIO[f\TemXdPeO{Vspeg]{U\_XQWd|ezdf^gj_f[e`bbr^bdup}xl`VoYZWf\jUmVmph`ipYpfgep\]`ma_dUf_pk_\tfXygd~kd~f\ob[~kzgyaRnhcboi_]zjMsgnjre^Yhhfjow^ahjiUw\kns^Zcbk\osfbwZenlb`b\qthbuPncqYNunyzbjopiOlhd}Ta^nayYoaq{[gdbUJmkdbhp`ZgnYZsboh[qamhjwktkexc`ary\g[aa^c_Ydnub\cJbhNgalJoo|Q\iTubqe^YoibjndcbUkpbrnYnl`}l[daLUgYu_N}kf`jhjv[O`fmXqr^skm^]Ioghxf]tQyz\P\_Wvssv^te[Qm^l\Wri^j`\zs_ltebjZm_ig]cpbv_nmwRYbksmaqOpfW]~lce^^eWz[ab[iaUWefjm_m]uzpuss]naenpjsqbgli\p_rUhphUVUmdlklUnZg\`^hWhYd]\po^fft]pmau[WnSbqn[mdhg{cpaMuhbWj|lmSdxZf[dajpqjVPjlwYttVkuzjYaadfuOojrx~vhi[pfr}gVfNfub{PfW^TNxbsw\vcosgcgsmmhpdncgvsXgk}ojmX`dgPefXse~r`jgYeVqbesrtbgneen]n`Yrbkl_Xh`a]\xnabax^agfYeidZ|ytfoj}`o[gaY`qji_vm_PyssUQapaY`jSofbx^\c_`fxcZ_rbm[YpW_]{W[qvwv\dRq^eepfeqi`jsmbgeOcunVu^YNUTlsd|Gk]hWcg]oWYjlnjv[hga\k_cg`\hhVomgq_ob`leXXenvZrjiZetf~}mfmigijfbU`Uf\r\ijclVlckpdeoagkdJ}e_uk\]gmchjhkt{Zmjasb]n_QikvldfpaomRnrpX[mY{\h[_wT`qO_peocYXcSdmkQ{ri\\dzagk_ida\wheVc_yeqT^aga^hajdi^wljgnsfkii_ijcrXreZsejr{mSYg_\mdjmWVp[z`r~um]g\dm`Wdcztx_Zh^tYkSgfhvjinfmZafxNjldc[Zlr]\kgeZs[os{[`t_ei\k\co\ndkRc`jgilokSvji]e~jiikXcjfWbcj^}dQacVYtkm_^\hokdhsU_z[[hb_[jmbj_YZkpZq]ZYhefk`xcavYalj[]rt[fcYadobk^T]]krZ\o`^dgdxth\dhZdf]boecg~\e`bRdllggiocid]fzzUapegke`lh_\`nL`^ledcpmr^_db`dy]ta]fkg`jb`TV]_roncvoyY^r^oejeobmZ[kn[Ymlk[cdneeikplk]Y[\b_ubx^g[]ryld\b_d^ikriricgeebazalZaogmge]difbfg`adl_eklr`\dlofb`am`~xdrktT^bazi\`omj|ccq\cricj^XYe_Xsocb_kZZ^eok`Pvie`gpfipfmkahYcjcfabiamtj[nhR_pi\_j^\kjfr\^k_eh\ajgfi`__poTc^vu`mPbz_nielnSeibikYmil_ka\ljeojuj^alog\tvjhrn`xk]lfifdxyg^qjjerkhppij_irsmnsWlibdjY\bYihjgXa~g`ZhlXZh`]_ocaY`T]faqhe~h[ce^jka`l[lmlc{ZnM\^m_]OVe\\`WaqdTkrZdfa\e^hSech_ghbgbZfX_`{_qkfqgkohhjTrTngqbrfWh`Sa^fqi\^_WbmkSea[mYZkUuceSUW`kvaijp_TdO[mV}VZXc]eZTaqkPeRr]a^WtcZg|XwsXZ_]^jlShj[~Ol{lb[_Yihc]kc[QoTd]]T[kiZz[x\ZXjbieyf_gUekjhh}v`Whs]k[gSc^k]^p`^jV_keg^`tUV`ckuZbf[^gocc\}kUgn^Vm_guagfnpgbij\_fyqmZzVOwWPcy`z^lcnhidz`k}o_vnVq\UUjee~Vsd[UaUWibocc^bu_m[emYhodppx_npUkif{NeTp_|hagcqjr`c_Lhch^^laiY\`tigkgNcj_jngj^c[ykZjjb}]ccg\}RgzXa[mUhctt\_tkkfr`^[gofjdcjdn[_WjnhZldfZtjdVlptg`cUFmP[hX`wUmhm`ig]fr]f]V`vZejbdQstjjfo\W\|kcl^QUPcVSuVlSm\jl|{h`kla^]blj[_lVannyRphkmmjV^cgq^fyhXVpvkavbkYOT~tsao[rbc^md|[k_[w\bSdZtff@Ui`aq_Xp]crZuo]b_XheZkqROhRmq_sfhf~Xrh^r]f\`^qWylV|VL`idlVU]mb_`fNnv[eZLXflkhhs`X[Hk~_a[]lcZtgfb^elkUYS\h]`praQlzw\crM`gNUaVtlmS[pXWjnhY{kgkgk]r]hq^ftUa>]^]]jld^jrq[d|NWgUne^_eqdbcz|ZsaXi`jdkfX}m_lUqa]a^g]JeiQw^Z[_Rmcgo]iX~alfjSiqu`bsY^jZdHT{Zklbrkcp]PYjeif`q\d`Zke^_ceTk``tn]NShHYj_XeXVYlebe\bxerYy\Ztj]kXjXmp[inVulcg\wj^\wq^wgyucewnhfilh`e[koStn]uYagXfn|ibpmVgtzYknihtabh_fWbcX\~wXqcd\kc[auSi\k[]~ngrcgnc[^^dmc~bsfXr\k^RgbgbWXobTnx_uubzg|a_hpaqhvh\n{W[epjra_xiksX_netZl^]eglasqXXn_rpaRt]pbeYoiomaatpnmrfedcqWbgc_h^}leelkZjzZdtpiKuf^spnOU^bpsg^lfq[c~h]ZTicjcocdaeTikec_Za]aqtbo`kthU^wbkkUap^Jy]Xfl^jekdanWyfothggfSmbvVVoe^ofkliXnj`jkRwb]ctrnjnrnsh\c_p|]{rjWwunZSX`tc|yYq{rxyg`bUqgoWreZWif]]f\_xrQjvd\Ym`_YkdZZshNjiyQ_rTmyjSyW}U`k`xDpeU~jnqamYeqTVpeZgz`Than^fYdYztsMik}|]mtK[nfczQtncmxvme^e\P\m]uOe]god~^q\fdq{ximby_b_nkdj}rR^Nbzankc[igcnXU_tlyijWd{\eHhbfbibpJkbl]gmnUbXI_hoi~uYgslPyaVYdprSeSY}nX_`P]eqkwwej|sf.ad^_nXiby[r}hrkh~mekrkjrlf[ip[Se^\mgghwRe`[^`kylSqjucgdvdWbSccybRX_e_NZqmhbfbmcv[qbcidZ\Y[`_p\nLy_Yff{s[h`dyiagp^gQd{Xa`fqZgt`mtsJinv`Qu_pgkkRPh{ziggrgdBmtq]gdrajj|Z]fjecin]Hiisrng_^Wf_k]j^`[m`QXiipkqcuKi__]cTa^meOvpvjt\ih[hWdmvyjIovjR`dsPc_eRT^_hetfma{`vicoWMce`vp^diZ[p^ladf\VgbX_Yhc[^Xsj]achT[disc~aZmmbqakWlgsnee`aNVoyXserhqsshowWkiao\t[nhxelksir|my^g]olmbZwjjhUuZlVpYaZZyebxngZenjolT]hv|eijiXcccWZnbSg[ejicibehXdqufqf_f[mpa^gqa_so^bfmflagbhetcRrbfufxo\^|vbcU`b`Y`YlfbThmtU`_ahWWt[malg_c\u`_svc]cyf\VhndgkiqUqgTkaiXadVcylllqi{[tjXdae\Xetin`QmkaXb_oYsmuvvcXaaXjha^v`ZiZt_rCZ_O^fDyG\]cd`\~Yenueiljh`QoNrgnpmmObyfVjn9Mmi]igiqhpZfv\Gyf[oyf?EQlwehOpjkb[pC^Xfp[\e|SbBkeZhu^qfiRYe~nn\a_oclVd^rpdxV^fjlt_eooZfbdakuVhj_i]ViXLagcgfkoqSksS_yWU`mblbZ_eWdgjXmPL[c^qTyeRc_bq_e^ktconTa\[Yrn]RWvOculY^=lvSgblwbcl]hrkjyOVrbVY}^i_vYh[akRia_]XSi\X]Y_Zh^jRZxRfcSZkra`bYrw_`mmnghPkepXab_njUmnkvPlpagqdc`hYs|pfljuhlpjYVdSulmm`ffx{RbZi\^hnP[]hnfhhXRrpct^Mqsced\\jOZs[Sqgjuiq_jm^oSXv_aat[]e\lCkk_~Q]mXhadzt`_oUcmXroWYZqaRf`VZ_mcUVilno[o[q[dghqcagf`qqn_\u|zZ_h_dX`eozWaYd\eaebhanRjhatcfmYrarwmQikm[ubaxaX\vczzn_ban[eoo^yttbeRcdmcZpju[\Vth_j`f^xpZeZj^b~cdubUblrpQ]`QysWmxrOLjlafpdalaebcSVe]hac\Us~_[kp^oihiJVe_tkfZbUqm]llwWjuZZIadTUujfagfbfgxq|bXkVpc{Qoqlqt`r|^tg^^OpejXTTOVnko[qcXk}dfsYcrVtYhik]jU]ewf]nW^etWWYmpmtvc\rgufasZZvmYhjtcdpbpbjj^fpxX\agiyQk`_ef[UjnhaZWoRplyvYl_f_pd^t^^gaRjlbh{Vef^igxweV]igd^xoy\gh^d`ZlRZQplUlrWs^md_[^Ym]]jokni\_oihaipcdbrW_pt\`iecWj`ko`bp]Sf_]fXfhNwhdd[V]flpykTnhdgh~YcZx\rVnbgbi\axZ[ZadlhqSaf_\gWQfO^eLcje_qjc^bbcsd`]mjrpgaiablXW_lrdS^vu\[waTWX_gf`ifrTmvdjsOopXeakb|okypa[vghV~ejm~epXvgthhrydwsdYc_]acj`klValcjbWs_cTfgbnjfkYrclcgeaiecfmt[]_egYYRbnmdfuq_nkSeP[_l\nk]_trado^joz\kg[U_pmp^fbmMliramXkx]tSaVXjj[ubwatuqokbjZY_[}sTpf]^gSeUOeu^ugmY^ji]xqxYZ[\\_c]nkmli[daigTbn\kg|kY]^lq[`jdc`b]q\^^cWk\vhigvbeUozXPgn`g]|j\bcS`lpYZT_dgkgrNdjzkbdVZlQ]\fj^`l`kCm^_d][awwjea[hhxagWXSY]nt`^\cthvt^`kZhsluYvhldbnzcr^\kausge[_m`SkUowkilueibo^qd\d\X^_nYacbnSqsPoja\ZceYcbZe^Y]heaZ|d]SUuh_^p`i[aM]WoWthfcqkaof]`u{kkj|yYpfqi[\ZjhbWzsn_rd``Wrjesk_c[j\s\abanc^XpY\_cZhmdSY_lcnbhpnaNUal]eOmied]ycihixqe\c{PUgFgXbb]ncqtwjbrjnjnynf|jYVaefif]bkZ]ek^ja^f\Uf`mlViZXhjVfuVLbQcffhyGdng^fn[Ng[w[\lZ]ZZglvgl_^g|Z`mT}ebsSXLlUkjeVy\asS]hGifWW]iibprfdfifdlkrm^emcXse^lh^iV^dbz^cjnp}jq]\deTpoVZWgjLq[ajm^dWW~_Z_hwlmc^`w\`xUqqll~`^XiUg_UYmoUGqIe[doyXdasS`_\lmmmgjkgijbohdaffunlt^}nk^acfWi\_fZhtC_^T_]pYfKbd]WijobhS{isO]hh`hoeVbTVafo_gec]]hg[j\u]\l_mdK^n[VhTcfrddjifcU\urh^nbdqYX\q_fUhlkoYevlqCa]jOk\p\zwakdzmf]jU\mg_[[jR^h_ogiefybvYhfegqRaZgehh{tXXr|kafPljk[_c]\lmk^zmpm`Pi[f[qjce_X|tgifurmike^^kwfkcpt^edegZ[wbl\[h\Yimsfhg]lwemiYvlk`UMi\jYgcXtfs^xsbpmZkmudugmmh]Ofii_gcyjqsZpd[`y\Vxrgk\_dcogahieehhQqe^c`qjhgn\kmchbYakha~ksci}ZE^d]g[\OxRoqswW\a^geo`_ndgk^`h[ef\gmpaTrkjch`WjaeteeRi__g[i]ladcgfa|~Rs]ff]ie_W`dg^qeadfaL\h\pcUma`KRRn^lqY{kc~pbn{gihdZ\HWhifnVTijuKgk[VSnc`}lhajihX[cmRxiPptbaZ[]jYbSs^bdG[]a[bXv[[byfqhb^flxr\qnfpljdJefpksmkdeV[rbcotreXh]Roaa\izrU\h`lzbYZgRo_Earmmxc\W`cmpcj_rTbdacp|bZOy`^jvocprXcZagtoaeblueptiparuuQ_k[tmb~^tZRacXofntohj\jngeab[lWYzubam^\\ra`gUakanjmT|lqXgdVaKVikmlVlumaqU_SibrZi0bXV_{[}bueid_jaFcomdgYc`BPSbTumo_]Uc_c~Ph`WYrkiXcj[]iGlR[eZf[h\edOz`l]ipXl`Q}cYMO_Od]aqi[SmadU\aa]drKj]bf\iF`tZkUQoabfjZMpUlneZa^c|ydPZQiZgdakPRSjUe_plQ`LbunijvulkVlb_WzW^RxcebOXuf_bnekTTf[qQ^foaSlUs_[^lkj_qYx]bigdeatWaafccafY]nneP[qz[^jici_`te^bm]p`bibVjgdc]eciiXhac]fU]pf\|fIb`qWWw[fldoR]RgVg~mhVedd`lah]je}rlPqgd]YroebehZcsou\qeokdiZdevR}voi`owxVhfWj\ceg[\]iWirnpgwaeRlfdtfgpaegjhgdtlQ\]PScybXkZhWor^s`cdgXtz_mNmyYi]ae}qr`o^h_c]cpdts[W^cbZoi^{pZtShppbdfXeeotrfvlocuhqiqpQXihh\g[bxhiv`tcx`\RrYXgi]qjefm`t\`ege_kZqgZkaof_cOpjX}zspnk\mllo~WkZ[on~jgm_~cQ[rnSbghk_ocX`kvhfhc^{\}lcra}W`eihin`[as]um^hlq}ohh^ftYTsX[dze\W\eQqUYbbcnWcY\[[xeaOPn``Kfe`V``MehtndforYg]{h`e}YwP}j_gN`jogme\T~wfbi_~ghaxhrwdZlnhixL`}Wcfob_YSnmgkhiiujybmcPk`eihnzucemlUy_`r_[atmotfXhtXobg}scRi]akUf_jenzjgwhXNne~k\wk~mcwoUjpyh]b_noed\iQkU^pshd]lafixhyrZVZZdGVdefezc`iaq{SifeoWsujhnYk`clWaVQSThohpWbahafsloksiUOgwkcrQb\^jXTYYpkhYkiS_sdi]nbXg\nnRZch_qqVbhb[imkagZZjU]gL]igidhL_uZiekmaXZQqpugXdZkVjgbds[_ZbdWYqa_dZi[Vf]Zy\cU^Ndgl`^fhjag`]SmQYcm_Uhjeg{i_fnfgWZU[]V]Rzi^Xcd_ahYV[]`yvbeas]kUdmJlmeeb[[]Yyk_t^ckegVlpzXiqU]gtXean_jb\`Yk]b]XacpZhtfs\wNhcmbul]awkcjddgc`bGZnhbjiZmgVZoewost[qQhh\qXdjrlah_oGnj[jbch]ShSafoXX]r{{ahtu{iXmacudl^[X[SmpQ]d``je`v__XiWt_]I[hoqpsI]KnyklhjW]}`hhoopgkuWlVQe`meljmcSggjfuer[jg_dl^TnWTjYcq\`[NgyVVn``_j]\]mgtaXc_L~kf]hYTqvy[naUml`b^pa_C~ZcUacXT_lpqbcgwUOWdYaXbvmkkltfgcrNgWgh_sQcnNa[x_VG]_aQjnkln[vXklst[_brggqTPgw_c`i_W_ovugTfg[iU]inj]mokjS]NPhrml]rabR[d}bZlQ]^nmUoQ^UU\ZT\]qmcgj{qYm]`l_Uke\tztfYjhVcZVlqhJpclVScqisTyBfuTiTaqbZhiQhhntTZa~aeIiVeo]rT[f`kbl[{ak[dju}kubV^on^_clnNLcbov^ewffwVlwmah`gdc[\]TTiQbcXyh^`tkjYcX`es_jU\VfbmZ\aZdl{JsXoj[andfjxgWZljzdjO@pXd`feaQ\d`g`ZVVTlib]gdUUpumlq]oqhetQfY\SUabVaOkfUaeO\UtkXsesphr`W_dbYWqfSbULbRRV]e^noVTcb{aj_g^__khdePtd\wbjWn`\flgr\T\]_VfnTiWw}nXr_xduVlY^cfcbduhYex^cvzoge~]enqiYfujoqvkctqVpaSU~pi~U{~keq_hkgf\icOmgdjbt\ipvuidzYi`phldj}dhicmmahkiijabwkchthgj]chrdj`ae^_zmre`qvbhhbpi`{Zbf\{dnmfbc{Vjexjtidwchm]^bii\jYhkdhuvc[dl_{bqhdegiqepc^fpea}ZrdWhjninwWisVzkWdjdxyditf`h`pptoowerj`eXdk]Zi`hnxWdWmaefjpdo^tm`ccblcpyziejtY}f_kbdVbggbbcha|rmTdldck\]xzgqeoiVccbcmjZusbmo\deZXom`W]bmahegz[tchpfVyphbaQfkvnmn]YQ``kwhg\khiZ`Z`Wfs_url`cWroap_sc[fsixlgx[kl[flV`V^WgplmhVlz_am[e[S[WWqqnje]_fVnnv~`l]}{mbn_^]x\ajV_omjikuUjgb]wYWkjrXpXcr_u]lma]ZRc\aZaVtMbhapqeccbeb`i[`zpuPsm`nrmfi_mhhtjXrfgf`Ya[`bUc}Tqrb{cqcmkf^d[{mumufY\Pvffrkf[T`^lmvfszcsYmYjXclbkm`mhV{ncpvUpfla`gn{[e^YmjXmsahZo\fjfZwb[wjdY]WVg^\b`j`U[lh^\`i]c\xZwix^f`w[RfeZmv~iS\TQsp|vt`as]hphg`ebVp^H{bVUxk\hhlYwXdgaXouffeppcBqdcl`YCwj^pa__lokD]i_UgYpj]LtO]mmtcH`ZhphzUY[jgh^Km]QTllh_Tq}W]pb]Jd]rok`^Wgomm]h}E\fZki[VN[UtTRc^lfU^qbz}KXaYg]HxdlYoSYai@]gIc~Zob_`{mUGtul_MYiUpmN^Slihcgp\tge_dqnyNqZtebaVSe_[`^xbb_nf_UYUdHdZZtoS^b`dYn]o\nbVbYesc[t]c^XUi[`OR^amlq_Estn`k\|f}rhA^XespUmg]UU]WGdVf`bIeft_ax][lsx`wlgdYh[gc}r`ulU~htajqeKkvwfoW[c]Q\dikbdabjniu{mYg\fihiv__\mubU^xb{W_OtVkepEdWVqZj{XvU`WgkLhWg_l_}\RjWyX\hfdeUuhq[obwXja^sQyfj\b_\iaZQ`ef\gwpbfs]dUuzqkazjWqTWYogfSucYzyaeFORgiz\gfobpi^pVkm`hhWfg[sUnnb\a`iNTZ`L\hi`iubdOZkW]ptMoh`\uvrmY`pfpla\uOc\Yibtzf^{`mjcIgi[sUjbV`pjam^KWfaTgddgvlcSjyorptlnMhoSh^re\cnblpkYcuks]dojfOkc`cXnWfjlYiccbcRWdwT}gfbgdpmgjh~W]b^cZxbkb]vWqq[gahxqhT_^cq]pr]ckjTZejamlUn^L]_a\ZJo^Yuo[oedseexs[sjg`mk\acY\ep\X^h[t]fpgob_l]jikgafrd^l^bmvipdUazifT^Rd_Sk[Xhd^ZoVjca{mx|^fhgplmb\u`sfoqakhj[fcWdw`^flP_lk]rkh_]oi_imcmYdsbydgnxmy`mrQK`c\h_fd^fYh\V~bcjs`gafsimdjgYYxp[dcmxbehn[sXjwcbciYl\\deex_crcgofppU~^hSYbXz^iNna^enWZyav~nSf`eeut_U^jnpZ}db^\`ngTcufwefst||ewjd|bik]mcasm]fj^]nhb_mkelfwZtla]`baemb_dol[baWMySbnjh|{tLXrjmWhiUar[kg\e^Zp[\_zh|o[bepNvwtnnsZizvzhgsrkrub^tZpqg\\inggirmav{_f|llY`_sgk`u{Wp\`cunieiZX\qv[lbpnmkeleTnekP^o_T]lqbwheajbXiunw[_a|jgawXRq[b_p\hSdQW__U5lg`EcWIhUomoeN^bTbsam^j\PSPk^h`bvienwlaeZKVXbXjgkhmeTiq{hibbmq^eZ{UidWsU_c\Pkpyuebc\tkj\XpkVYeno{szhU_WebmJtpdzaMaesWXqc_Xo}Mee[xd}ged]a]uhodhcUfac_o_dfkc`wyKdLZk[\qitsgo]xlpRqqvUcOg\oi]ZdmtLkSdcQV_VrJkPZXrZqbUJkWpLds\keN]hoQlqOcXlRihkbdNRl\Z[Tkd^ZZZW[in[|WikiTbRzyob]aMgo`OMhfhPlhxfdXLfaflgk\eaebcgg^zhqv^bieijVygSZe^gcl^XY\yxlc\biav[[fo_b`tec^Wk`lglibr\kzeTW}l~cb_[^]meugd^ijga^igglc`vL\oabZsq][bjhMg\\togtokf_boXdr^chfnw_appg\yOlausZsbhogd_|aicga^ZW\hhn^dgcZRXwxgZvblr]srcld[b^al]}g{bYmnehfbgfR`i]iueotfeha]gdaXpklb[palaq^Zevairsl`i\`Uo_gfewabbbeobhqm{jhs`xteZbbtd~fskaejgjYyefhx``_fg\cjYlZfncevd\ayqlWmZpgddZo_ca\ewYiky]tPfowskaRvj\e]R}ij[bTc_bl[casaawl\dopZnjfokl{dmapqi^ZzgcpWagcmyf\herY_WejbVfiv`gjqijgpwjtjcksUx~W\]c{avn`kok~ijnngttZvqfaZaWwlffiisl]w`i]`gj]ripp`cgrci\Vuz`cqXikteZrqmucrkp^`dcn^duvfoUmidghjh`[]Qn}ftd\eehybnc_jl\nWmf^ehz`eqc\b`njpi\hqdl^~b_X_bh_h]uljWkfm`jbnpfse]oKsngY\oUWRj[uq`kNkPc``TS]tnnUfogTu_VjYcalux[bvtgpw{cZpjXZc^w~glfqPei_]Zrqj]htcne\nt[_apdpvnmgrrebdeS\d^hhebygTbgwU[nknsf^ajiW]Wvimsa]mVg`{njk\mkz`pOmle`gkrpidVb[QWgvhaasRoMl]Ptci\\naepy]biont[bibkmaqY|bXh_c[ei_flhh\icpjb^mVl\gfmlZ[ZSWpbTb]qpnTZeenZ^dibRorw\\r\\dcg\{Zjfs^[juhZ``]UaZcengpfXh`s]qn_acho``[\a[Si]VX_jSnlw[eTSj\ts\gc^X_c``Rjo]q]mRap_eblae[hocx_Ws}`Wutee]_gdX|^`ZihmjRgj\\smjSwnZK\Tkgalgp^hi|Xdt`j~^cf]qOjprcxhj]wf[^aefWhjchi_m`nyjkjUZ]lY_ngflfuv\bYja_[`Vhgc\eXk][jPst}ev_e_nokSojaiPlg]duueb_j[gjpnpZfmsiixbfj]uib]a\lvQ_ai`O]`_sbgbTn^{rjcfdm]o`]`keed[gSpX`iZokFrvrWlrobb\dgiyqoye{`idvWjjujggldl^ccc|yhr`YiVk}sZiibpZ}nZ~YU{RQ5BrrY]Z_^xXToivReY``RoujmMQfdkr]ppfEhqb[bZerjb`}fWtt]hXgddLfgiy|Nz^bhXcVlehYxgqQueNgX\dUq\jtzbTnQ^yQ`]cPk^imiek\f^pv_@]ppWcmqa]ikYlg]bxMeg~wkZbYchbey[^WaI_ftbscgVi`X`_YTp_PLdicKn`l`fsqd]hMeXjkmHeuNUi`Qx^`]aN_yd^kk]carif__q\tbVml][o\}qee\`aZio]epcDf\]VKbkwQdP`ZQRvoft_icjS]c^\^apv[iOk\|`t[qmicl~lurkuqcpyfhYe[Y_cftqb\igecxe]XYqd}qgdtdj]wdPU\U][hr`}x^V]ZaZ`hbSgdmc_Zm`_ggmolbf_qbjYh`ebZll`qgj\XHbcljitmdaazdhe`a]efb[cmbjfnwgqZSEOZaf^kjvsUoeqz^s[b^da`raQifocb^dPWd^Hd}}i^iSmufts]s_y[|khwYbyWtvu^_krYSam}n]\^`dvS`qlwlqn_dZl}e]fb[_ZbaV\cwoPvg_Ub\dde`lZaiqw}ljV`Y`jfiMSrwZypirWWbYb_Pdas]XVhq`r`bhcW]VnYdCdie]^bWbqafhs]_tn_Cd\Rby{gjqQg``ZTczt]VT`Rv[R\nivbb^YXQZotTdwKueamkyipP\XqqdZpVzN[XfN\wkhVrojnhbn`|iNWpWejdnXcm]Zz]b\cO|_ZKadLbcek^nyDmxlhbPV[zi~hPxjekkgZVppd[rRuLi_[WZcmfgeXt`gusjodYejX^[\Qc][gVdd_ahfab\njiy`aye{W{xei~[`y`ob[m[|nUf]Qqe_vUL]WpcpUkhsc[FcTtjjeOYemOcS`aE|Y`^pl``wljNb}y~dmcfzjsRUptkqp\`WKc_pk_rsQpzOxdYnofjcgkhvoboUS{b^oazePbhccY`gSzl]_bRjXkmnSs`qnsdkq]cfs`ddzlZcmjecwp]\ecZxaXSUkiPjVXngrge{iZ_bQzihkogcVf_kxdle_fhmd[aZebaj`kmetjdfkfWgeos_^pmm^oY^^Sbc}cmk_Tbmfdisl\b`mknlc]hB{aaudV_loin{vieg_xkcXm`qfhTrtX{pghfitratrn\X_x\Ygvchjhclpmecvt|nZ{puhijg\^mpmiQXcencrlm_XjcZy`lb\jz_vh_cdeYdvzhVe`qkghgzbrccq_^\wpX`svkdqYhqT`irp^VnViRviT__ob`]krVLh^mTYekodXuNr[OYrldZRutqlVloD{xyVZo^\oWuikWYsV\e`heO|rXZXb|h`_ZihR^nQmLzdmW]ljQZqjYxajace|fegLaexvh}f]eaqbRdVhc[l_e^kkd\ea`\aWv_aqo]~lqlWnfz^vqmahY[TnuZqTivoYkmtyUr[s`dJRWZ{_ppQjn{o]noSrGpk^^qwban`knXSlp{_flUoho^Vk_dnckd~tf}]Nqh[f`jd\kkTu\Whqck[zlav]dqZjk^a^Qoknbasr{jex^XdiTvdflVV\ocwrsK`gnnXdanT]il|j}_jmXr\Zfkocnej^l`sJf[bKYYftjex`[d\MwpbbT^RfkglfXfxYVd_peghtadhjio{`iy_mblqUV^oi_knkosbpp^huqYdbioiog}^YZbJ^macog[fnknt]jvksw^mdi]gzjmnS][aVUtkTgw[\y}w]i~`dco\eg}anjsflumhtmgUqovww`^o_ZmsKuckjudjVbjs`]xmt]ianht_^silp_nWhb]bpaaXcahoSshfojlX_sh[ssp\ub`aepnmulccphlf`SWoblbkede^fkpa`]jd[r\khbc_]bce_unXeqt[f^xto|Uvgg\_hlZf~o^OcaX{hsjejlkidimkq_k_ihfleTcgcdqYji{\^ohjdZ_fp`ouwc]h]rq`kc|f[][gp`jZ^vaajccrZeddyXtq|xdifd_grvnQb_Ta^^wgY^[ro`apj[afXnzgwf`Mccfg\}g]][vghuskfnihyUb]`mRagcjZfbf^Wdpbl^jtq[millkjk]liibp_]_pY^YZpehfahvTcs^`i_SwnidcghkzjpiWh\gz\ZcdnVjkcgi[VbXixhdaduRrfosk_mrmSfUd]lkuc_bYc__l`dkiOmiXqsbongemeqWs\kgjYmffainbga]lySeNXpjb`bubeSmmZ^jPoYdx\bbg_kges`ri`ewfXf\oS|qedtlV]RxUniVvkY]\}Wv]Ynw^dht_\X|cra`_p]mnf`aofmbe]amokwesac[gi[n_bho|\ihxuobikxaYktl`Y`vhh[qobih^besf[islhi]`nfaaSx_Egt]XdXptieeebWNlfgk]UdoWzab^ckSwdre`ch\gooztfYw^dsihri_hoS[s`keejem[jk\Z_qv^|lck]ktcemKnm\h_Ydpetp|]Xblfmsa^njlhmggmjjs_jcqhhkidfsi]dp\gkdc|blmgihgsm[`gy_wmdcbhoal[lcpiqjljamd^spelZdqffj|^kk`\poc}llrkf_`fneri]gh}na`hwYm_abnaxnhbqVkllogchbSweboYiohOfm`bgxWvdhepb|kittlno\lk]ctjocr_lkilktU^[pdgfmboiYlYgepsoblfaiPnchff_n_dvvk`]ebejsu^mahl_dmeasjrua_cg``esktsf_rcwvgrsjkmchempr_mYrdfefkd]ga[jgnyZZ`jq]e[bU]qbrh]yybawjp[xgaW]lomqZ`og]Zu\g`bejej^bj]mld`o}bmVZxpev\ivmvXwfah]S{c[kumwskdtndcrxcZcT`omlX|daolg\jNc~_m^cseY[u[hjea```gaclsnkIve~sefoSepmq[n\~qpj[jfV]ldSikdibWjmu`\fv]hm`hogggWYilie\bgaj[Ihybgmsc]om_c[kc[_N]f\didjvnyrlaU{g]\Zyci[cihy\`n__dladb^eiu`ci^yaWY^q]cc]`wZzZnlagu\adfgrYjcZWg[`sgcpaul_XZfaPde`[dnqHdaqZijpnofeU\Zh_dVsYePQXgQgx{i]nqdeb}JQYsZNf[\`lmZegjyqef\|adv^uZcikSQ`d[[mmeNU^a``liylZhpigqRsPdpM^S]qn}gVha[l^[\Vfw`mgchjZ_axs_wnxctlpkdceRuqeZ[hjxufT_Hj`yjuR|YmnhzJ]X~`llxgWgMl{zf[q`UddeNbeGYb\yhisR[|lgcsdw^jZx][Zbc[fWV`qvb]Yie``o^gjn^idS[rcW]]dZgRfn\qaUzV}sczjmWehxi[Kc{vqj}qzfVru\iPeg`[cuoj`xeVohl|xYSd`mpggdaXnm`ulhqtl]Z]nq[fcyg]l^a`vsb~qlkrTd]sbuobavZYRr]RzshWbbamWb`fsudmmnjYWj|_ct]bV]j_oUK`me}xaNeipoq^~RloWYhr]ne]fgZdlcnpodamv`fefmfkifklh}hi]\jfn]i|nn^ni_b]tlkaXe_O_FZru[d^bY_[cXie`^YVSXiy_eocfahg}phq^f[be~`j_Q\en`ppc`_qry\_[zbijsWmod[ooYc\Whnw^nCa|W^wg\jokfgXbezk]nVahctenwlb`^as^]gicbkZpuhj^lfcs\hgg`dXpeQgzek|rgVkv`vbibi^hfeiquxay^Tbmfid`hw]_vwogQsare`m[osa|qakifeTltqzkjWll|dqc[W^r]i\y]qOabdep}rlgvqeojmp`mkmrr[xmhbQ_d]xZ_pmsthiatj\gYhmdeuba`u\reYeWvT_snv`fgfdQja][Zf{k`ilZaV_|ffh`f]a~dikqmtmg]lwbm_ajhb[qpkfQaqoe]ybb]pjho[q_in~ekenda`qjZlfeeWbec``VinX}a[btSmWqosc[fsWsea\jam`^~nobVibcfsab`r{^Th`]`befkNQFX`Libgqwaqeicg`rxblhnhO\rl{yrwuTe]XxtbN]bZPcki[end[SidYFdaX^rpiquaodWU~[ci\oZhIwgbcfplXV\njwn`Y]l[Iq\rWsk\o\\c`P]anaW\keRvtadQXfcfYN[fojceYhihXPUtxjwTt^\rpp[^b[`sa`xojn^xnUjuFiceU]pk]lr{tq|c\X^hzZev^n]qQimleqdj`yrnzZVmeZczgidc_\er[[eY|mckhgihq]etklZOdZglj^rjNcyhfnN^Z[[jh^XpsreY`hrrMrlbNkMU^oj\dObjkZ\Z^]ZlV|}ieQVdFcNgbw|]Yy^dspcahju}qognfet^l[bY`ygkmmmkp_Z[fMW``aftf[SUfUqgbQRbfitZYjkkl|[`YUTw[ebmoqk`XgM`fX|acXmjX__Nzkdidakkc^YkdbWddh\eXX`UojX{rbdlvrZacZaq[ZXYlFc`kUzgnWpUqvhQ]hbqn[~fo^fa_e\nk[s]peTg]Tc]OdZze`dg`YYbkZYX]uZkuizpeQ[tlzYZ^PffoicddfVh\jgdkkmhP[eaYb^nbhaUt\bm`bcZ\i^k}Lj{z_elfhbf_Qb[`_z`qmm{bdoVbNaMjnbyaei_z]e_fybxijbwqi\}_U_SO_kkccihrjn^br_b__h_nuhcWbz|kqVkgqV[laOsklZNUg]bmiLme_cuisnttSiagXmEZnam`vgjhtQjsi^Uaghfo||XUXkbyeZs|kccnStorxl_bncmxaoToa\NtcgoWfqkPfUk{c^tpwagch]OiXxfqmlnnf^oppklacZQTdj`ujWV^xfevW`kdY_mmlTrkigeVgbcyk^acf]ftk^a^wieg]ewsembrwbmTvc{Wwb^otdlvb}y^wR_UlbcOu^QbjSXhtak_v\eezfkv^ffQ^bfz^bcfvnmctcig`PegiddzPbdgRfjs`wnZ]buwd_^hdm`pcT_Zq^yYRrx^YtSmakfgUZ_u\_]txm^n^\y~vrSakXqoykw`hXyPn[zfz]XvpKhgbZ_SeeYqmZ`~brUiknpojheew]fin\pjgaa}[lp]f[bfhRemaqnxacd\tb__`ocmfTghg_^X]cvlhZlQl\fT_Vgm^X_jR`crtX}bslhh]n[bjfnZpsZa\S_l^aWeTW[\cqkkd`_UpeiXVfOxui_bd\gkl\SZdUqi}eb^pZ^oc]gayeh_n^scUUgiYuIV`xmlr^anb[Xabh~^pcsjbdje^msTfbl_rcwilrclfgceoh^X`fZ[mkh^Xr`_c`Lr^Q`\`hmjh^lsl]v^gdWdeR`]cmcdbbxdU{ianXdncsViTna]m`ckN`bg`es^kiYwWg^frfbfafPdq~jkqeZkegn\]fj|Uf]j}omiewcoaY[cVojdj_Wh`s{xl?hgWWf_bqVXidcmqsna[UpY]t|bStvhq`hLeodR`]jfYdkq`qWg^`XsT^ac_bjfz\wSmc_Yaum`nsrrnlergiilbcgVrlj]cgamfm`hwl\tiUZxkcW]jex_occgq_ncWJoXQ`8OfM_dURNoencwklFjcgTF{_juW_qrc]VekktX]amifohZmv[Z_c_wfpuJgNbipkozsgPmYjaOqjj`rbasb^UZ}oc[Wtm_ffeKtUORkzRRouxV[^cX^h\^y[<`h[]W]igUbfWpMjfd_h]^iJp_igNTo{cr`LP[TbZ^p`qc{xP^YeOegYkUSdNSniqZjy`jxlocwT`W`a[Paz_tvXYc]@s_dkzyjS`PmSd_mlpphgMgnTbeP\xNNe`Mji]\Q]dZWZ`ibTUtT\[=gWqtcmuebq\iabO\vpK^T^`voQ]p`Zsbx^[]Zif\bWapigRs_|i_hs}Wbd[Ue^~TiPenwbtcfdivjsru]oZsfcj_^VhehfNzzmfrdimcyaf\cXf_Y\edfY`mmo]mahcmYzj\TdrdgmhXhmlkZ^krja^sic[kgyYNvn\lLxa~hlgNh]empvhfr[x[kj`fa{bhxQSg`htrYoqgcaWl`lUdsi__ytslrxtWv[ijobhcjejj`Zcnt^dR{bkNmWOsVZkTgpTri]^bhUd]kckhekk]Uv[n{mnjeVui[wgefjcbgaV{vqigrpSe]}agPgsta]|^kb^[[pm\Yofw`lf[]HcjecT]FvtV[Vp]Ucg]^iWUWSeXqKRqec|wIMRN[sy_nfsztUwTj_gm`zmu`oYanc[Y_[h_r{QjYafh[[e``_sY}w^epafpok_VceikZndqlV[gird]mlT]~uq_gureUJreo[f]km^l~~Wk\jLfiulsacGoaPrdmah]\VteVanig]rchvvZY_[z[dPa{[nE^LcaOkbnls{Zof[Ud]lO_e^`_qJmpfmNrv`ZYnTfgYvYXb`c_WjT\be\^gcseij[__Rapap|fl_|jgaaXj]jatUTRvWeYjXW]NWs^LqqU]k`daM^[xaRnVabmYfGV[afllZ`}eornrkR}gjwogeimNxfyXim]]_aujm\eVjf^ZrpthckftZUTQ`pY{hwv^\RfrW~WVlIb`fotslwoqfgfXti_pUQjjhf_q`mYYcfgW`mXa]had`icWlVnxe]acd^sOeIn`hZYeg\waoNO}pe`TVkehYcMmVgbq`g]bcZlBc\bUoe]g]{hpY[jl_aWQWWh]wgll_nKU^jbgUxdtkOwjs_bbr_H_tghW\ymiskrsmSjhlMfW``mqy^tjistohikk\O[cknigsk[n^djXjq\fjbWgPVkUPZa\f\dN]fnXVkd_ZdMOYXeZhhxeclaUlpWsqbaidt^`zhdYmaYm^_vRT{nci]|u_p]fZ_Qbe[lwe`}Yjhcc^QkiaR]goZDfvWbViqSV\`nWXerefY`iOemapakkkes}qbjydg]wWkfm]Tfc`gThVOoo^[TbZlaonxne`tX^bnczic^VhWcdflzlfS}ReYcZ^sjkrce[a]ckthq|gnUU_qnh^^qsnrRDx_scm}Z[`dfsUc_ilsagltdZ\fX_`nQq^`fgrei[j_xd{[rm]dpcogxq`UuYit_qeenlng\k_bVZbm^jmx[iiuhdg\stmcsNTmeWZo_t{bjx{^XjkZY_sqdYarfxef_Q\b[hpXW`^[ga_`ibRmsgYlZm_\Mlal`bbf]mY\h_ed[wfphdZzR\iUgcdkeSgkn{iVcgYvVMVXf]g[ads_cmqlhxVgdWh^cpQhTrlvUd_ccq`]fQf]pgk{XlfpbOlcb^_idcnnqmmel[k{~aWgc]Zlysy[dbvks`agfgkt\jxdXMbVv`piaft\jhfJy[eURzH[YTgid\beyickjcm}kneh`^^l[fg`{edgVbMqXtWU^[_jjq_naccdk^TpJR^lpe`LucuNOYVOmwjk&{fsamgfZgu[ZhfHkiW_\ifd}iQYZfR[r]i^r[oake_VYfehsahctZ[mPWZaz\XhYfcab]fv`xoZmp\\^Wlbh[ehzc_lufyphhV^Z\aKoc_Vf^T]Nhm_ormVffU\Xl`XaulbeoadkOwc\kSWl`u{Z[fpkZdrk]i~fVms_zVf[{`ii_|IY]^JS|izrmbXR\tUaZqa^fxublWfuZifzklbhqMTqZ\`m}deRHXm^}[meu^rmmUYVdgXcbwTy`ZU]IVe][ahroQjeomxtYisiyi^Y`V~k~ZYG~e]iigZa]xXPgpv\][u^j[rr_`qjYYgeZms{Rifpx_~n`kvaqoZpdhqnpeKeiPeYk\wagWz_fn^ceof^sjckcxYRqrzsVsWhezfbpdbTZcvP_cllhUrk_rkY]k`ibRjtvfeuq^amtdTjR~swmd\tuWpTufoforcifa^lgnk{fZdSgbWa\Va\PydQ}e`omgbos[u`dcdklggskdkahTm~^\ljSppomwj\vliSXYTa_m\Yk_UzmkobMckwwqQrdR\b{_NRflV^a_^ohovh^]cXQ]e_lm[_g]Me\atTRU^bRmgeygp]gXVRkkv[]rhUgXj{VRh]G\q]bx_tXwpbk^mkZapl\lY`kcvoQ\TbsUGcyk^d\otcmYZ[jnneWbgYq_b~emmk`kWdvwa\a~cbmbgr]tpg]tbh]m`kXkeUbmcpa]cajZ}Yy[Xaim^^WQ\hayRTvWiwmUdc\sw{y[ZT\h}iYmziYdsb`_dXigtVKS[z_p[N^ukdhbdvZjbYnZr^ieaizfgfincdn][fhhb\_jibgglqorz^MVmPbwjZj[_^ct`_pkCZrlf[[ah_ews^^[m\]sNcarrv]mIQRqtinu[jt`}Zvb`ZckPAXvxaVdg[IIZhlfw\UllfhX_pRbotbgP[Yli[Yxib[][m^tOmd`eyhddeoVravt}i~Lom\dP}WrU`geYZRT\TyUnk`in^agVtmvM_w`SJbTjg`{q`fodkaR^YWaZmaqyeHf\e^b]Z^av]vRmV[Zefj_^M]^m\bjdbp|maacrfioYl]sci_efkwae^Xq\hNsf^X\v[Kzn^d`td_\kjW[mZf[ccbqqreW`]nwk\yyb}`gwV`ba\^wtbi|gZj^ZSoxUt[odfV\{hu]Z_iYji^Y^ito~Zmbi`Uiug^]_wOh`b^`nhRWfiRc~khtifisTYwmohZTwa^c[ddrXe`iN_pamneimIhdkirh]]e{]ip]^S~hfSYZZipXjlkoef_y]}iyrjd[WYwq`zvvbom_Uhj{[\_lNU`^ekglknfub`zen_hkmbe}trrj_]itrnpepafyb\qzuhTgZmg\o``ZaQf^dkho_QbSbVPHniZa`[qt`ehk^v\ezWz]ss`[slVeQDwy]cT^bfL`[amwlgV`mSh\gXtge]ynVsusll}fLWkuseyygRZr\noXtcjkmd\_sxvb|]irXvxa\YkbWfiYb`cRkWru_tlp]n_f]mcRflm^Yp_c[nxUZ_z}j^\c]hJn^joPbXjo\m]x\qv`^er{pblaa[WbWVllcnTWUkuhbek^Y\`gXT]e[nbhbrefW_lmijqmhUz`^Uq^Kp^V\jaZrkcp^f\TVscaSrKJceuwUgYnW{SweWpl{eSa]^essRsft]p_N`PgclkhsZne[]Scg_cp{Zl^YjP_qnnPltqPW_bOkbuVhYual|T`isugmpfivjr{bZwbg\b\iWiZxghUm|XSmcJX[TcamaaaRSc[cFtg_k^]ysn[^V`pfdxkejgfpTdihanm_oWJ~~hf^TJnUeVsgkrccnR~{q[p{`Qasuy|Ifcj]mnbNhzdn`ZE~gqrjdZhpRuJXanbV_hmmubajcq{l]bp^\g^^Nd\d^fWdX\l]YRZVmqi_ef_WY_qgia`p~L`tWhqi_X_uvPqRt{\W^gYfb`^SmisjlWggRZVeUkn_jhR]Wp^dntccm]fqYnxaz[gqvg^{l`SepjcjkdiXesvmsfyjileibQfgbea[phfpegihUt`mpssvezJy]y]TZmQ\Trcbkthv]`udgXmpjqeMofYZhfpjXglcfVfosaunN`fcgVx\ate^\]kr][tm\^_b^df]paxTrl]abr^hqjVuurju|~ZYVgdfp\fphlghVhTjfwpa^cafhjudc_ZbqPnWv~Xvphri[dScfZfjVfu^Oe\q^hZnPTb_~\aum`c[t\guceqfKbfhpch`Y\ldocto`kufianvoelV`u_pgkUVxcch\NevUd^mo^Q]PcsxkWmobldtmx\Plgtjs__Tc`P]Reopca[^nqsyqa`q_enjVvh]RjmjapkYoc\TllWzebq_cbXekpofsksVZkrk_~YSi|cfTocV^P`_cLn`er_gbqpkyeYxkkjRX`hjhlqpsur^^b|cdjpXohopXlncTnf]qailhccU|[ifSldkX}cU]X_l\i`ompe`he`lQefPd]{^cwhWd[[]]Zrr|lc^WafYe^]nk]E_Xm`YogbM`h]kk]Z[WiYjdov`xroilUglfUtXeTX[]ke]Lohnmc{gp`]Vyb^\ijjws^^Z]P^bTnje`Ta`lgh~bpe[_[x_~epWkmdgbg~ZTWrbbmyjunSvqtaSc__bq\[hetic^ZKnefxfcnbk^ZkpiwLlpZcupio^_Wqh{aV\_mx^_doVT]_Zgh]`nqdL^_plXbkUlsEUVb\pghvh|psicfzlubdjyihWaxsg^fnWXjjr^eglidsZs[zfVUjb\oYClX]cmq[Sad[gfkzZfYSexZrwelfqnjWl]Vabe`rXc]m[d]phzgZdbbcsc_f[ahhrY^Of_noifjxiWbg[oR[bdnjidum[`Q~fk_ujjaiY[VokT`_`XaimOb}\fikka^qlXrain]g_`hkQbLiXPqpbdafg^jswSkhxac]\QhfZcf^^lo^apv~jjfip]y^jX^]^x_n`hnqgTh[d\eXkYpb`[jh`_uiUwuw^jcondWkb\Z[efkiffXi`e`\u^kkgcYmlniWkdiYdm_mU[^W|_yzaptXsqdtvwYfg|bxqXgf^XSck_rcsl`SW]XcvpbWuXcpadmamNlXYdh__m^mhedJgT\`lma`ggVh^R]aj`VbcqxUaZtYdbZ`mdhjpSMi]]dj_ltep^fjclRplXruUh`OuhujhXmzhcsg_`torg`u]dXn_jbTZcUexVk]{|cpbyhmYg]Z`kkpYjgoUeY_\aIgd|cf_mnbmnaSYTj[\WavSjr|lnsok`YcajogtjeT{_d_fjdYraWnimcjlX~^d)aoYYaiditiUrhhZYiUgjs{n}ywqiwUefaiWdnwb]kyQevZuQtyypSZqXQcggtEipVsl_`vqpwju`nZVJgbaeQxjp[noUZ[bjdY\wo_grdvie_q`ZKaoy[wvd\[shrjh[fhlk]gVudG`jgTk`O^]}^biVpc\__dLaRVVaggakTjQbamt_oPbcR{Mi[Pg_|`bh_T^Ledpgc[jagncdradmRntY^\vonoirP{egXljMn]W_^lRjaVdno_|h`pmlhY\loYUhRtbqlbLjjohgaqqc\dlmgk{hNryfjprjowZfsaY\MumYaiWwVw|qgRakfPwejdm~lh^Yjg|Q\X^``ibbTRXycpsk\WnlVulsZucfuqbnig_U[dZatU\fesmlnMN[kPGb`^_xekfl\ibt`]zghcomoSe]qiPY`efacjd}`nnYlf{q}iit^P^f~w[nl`epjpsioTvfMcZNymn]fJrQZiXel^`}^qknp__pbJraxuRYcj_qktVcIRddac``X_Wctl[[gtgjyfar^e[sUdSdjtrzcrMknnsQzYfTbg~cWbk^o]qnia\dU`Gdzbmf[[gyw\YNaVp[Me}Sf`WoQTR[jex|u_Wd^jukwraoeeZY_Tqm{UtuwQY|PdaabfSn_rotZm[eewgcQu]yY\o`I_jd]moWv_zbpkyo_sZjuZ]Ww|i[[i_umaCXSnamifd^qMpoUenohxcUzb\rWvjn|wW{r{Jq|iVIWbYI\Pcjkci`XrqxgffmiCrv{n]kayUEmQZ^h_nUpf`_bQh`Vkai|ukWRdkmeq|mieljulSvSe\[ombv]xTz|ZqiXi{dkhdrhxcgXdnqOh]`VYoLtQwod}R_TucxjfcWpk^Wq^likYlnu\jd\fY`xf]sgpdWtgxqgafaEdsVsRvpWhbvl\\kkrU_lK_^edkNXQkreu|lvejqnopZhgxO^jagjrUTzadZdhWbx`VhlNjZViaXcbTgan`a^csqZ`t{]owlYbU_g_^fcduc]jUt\ZggQYewdyj[Zrh[dd_]^W]XShd`on_`md`PpUfgor]jV\U[SkjeovNllgq`}^eoeekZjbY`kgzof`[c_y^]HcmW]eofW^Zx\uUxXY\bZld`Z[aVjbfazbUyigzwPzgpjUP___lipqunjxf_`ck`R]Vf`mwpaXYVUvxafnQgqqvv`m_YVjg]]\peantiLiNvn~dwZzNkaxfqfVxbhrgpltj]^oexU]|spcNqgnbdbulneaUx[lk}x\h~{rvuiZmZYZesh]c\SdeatvpkVhbe{ccemmii]{p]zzq_ltuxe^_kjrhpYuoiJjttpcnc^as[glnco_ip^d^binVpntkofqOdnkYcemwxjfib}frTYzbckYewy{ryrlthr_VqV^IdgvZwl]`m]d}~atpwqU}g`\q~^eZhw\a^Zm[X]\txgznc|z^ay}m`q^ot~xQb}lZoVpgkt{R|d}_peytyt_memkmQ^^V`~boz_xwe]`pblbmk{bmls_~YukvfTTfWZfgmlkaXmkZ]\svgv][k|ciX\kfR`Rih}m~Uvf]cZvjn`cZirUcYtx^K[U__qz\ccp[S{mWV}jV^zZghBqntocPcdUfnmirbr`n^xf`csqW\][nYS[R[rcukZenjsRcieMm]N\rmtbr_R{alidR__jznjiXl|\TraXqU_mZaYMhf]_qbfhhXxd`cd~LiiRj~y`g\UW_h]f]o]|vplp\]gjbgYaoj\~_]gc_qi^l_Qe^bHv^`Re^aUcfug{^Qpt`YgZpe[b\WpweRgiXzPzqmcfN]\qb_KegQqkiad\dihmYfrtb]qfgdXOtIfhQn]i`mMPrjfbiUfoQgTa`^Lq_b~mljYbUkklcTdrccoaNjTQklSDeotS\ZIkhgfhOliaThiO__WpVthSt_Vm]_l]hsm|ex[^XP~_{ofaZaViJsZPst^Mei_a\XjwdV_rhRWX[qoF[^bk@f`fe\^WNRwrhoRKk^gcXkyecUMZZYl]Zn`}niheLicm]\jrm^h{siofXMetap^[eWo]ZgRCYtquceftcyejisyoUugW`mn|skYgU__qi^rVml_ZeWlMkWl]p\m^ojRewkX`\XribpvZnbh``acny_Z~s^_dgUQmialm[Tvl\o^Wm`Xg\fesZqvqqh]t^hiqfT~_Wrgkaca`YVoXcjWmVR}kr`eyejowjdhjRM`j|uro]jaiiUxT~mfbqXdUcnamlaVcs[]moSXrSwmdxqlvkqYZPsnZQiPSbboyf`dnk[ap[Wa_j]yuyf\reswj[zlj`mZYVhW[[VsaoZ`VqZ^Sx^ZNwrd[ec^f`Yfg_j]_`\miazo[a``[itcnhi\ecukZjowdkYu`iUWdYfcaJh[O`TTYZjlh`pZ\`o\TYomlfuxvQdZ\ghix^i_ie~eOfwkkfcnstZUdowq^`ckicl|_cezZyg]kU[mZqQiOjerqshbyjliZZk]od^ufv[lq}rqs\ia]p]g_iZr^]TgUbe^cUTXHVl\L^fcqrj\i}kv[tdggUoZ}`ga[rx^^b|T_~lV__qppiY]Zckki`kNzhi^hRludfihgpmH\n{jtQsffZf]X_ps_ScQbq^QSdfft^l]spXaiZgsotK`lCfZn]bUWnvZbq^Xou`[bg]ral`bp_]icgdVwbYXXYvY`Zop\SrcaSXcafjtgRqxhgb`aVifS[Usnpns\Un`gXtmcxqib_flPR\bw^Mt]mfcLZhh[dgt[e_XndwlaOg`urK[tf_TMbmu\srYZRnVpJxOx\_mIj\]rfir\XsaZylrx[p[eikZgfnkx~rJ\[ce_]adj\j^SifNzZdjelsvj^gU_iUalcefes`k\`jfTfi\o^rTQkCkZ]^^bb_hLdVO[__eldXRkt_uiY]cZF`_gTl?mLpLeYp[TijSXU^u`rjggoRCbmpWOwxYa[cfl\s_dZ^_huYeejnZ\|c`aVi`[nchytjkc`i`Z\bi`f}`Z[`^_scx\YWKkawoi@ewaanVMUbsqd_okpX>ioQX`ZkZ\b\nuY~d^dN\p9ndZteTlIaT{_m\Vablldldp\{Tcripdih|knWhkm_pyVqvcyUht[]c\cbmTkejXeSje[hhRainsZYN`Vbhf\cmcxWs``rhX`fzm{kdgdQncPaRamrfZwhbl@fkf^^|V^oTKfegVMwb^ae^`qWmku`TSfSOefmeP^U_ceNTTdc`Pabi\m\nljoTsZnkdqWI_]raqbD_^hHY]kYbaWb^TixkpbTlQyUZvXfNNfYJg]SvfvqZojotejeW|gJ|\`QbtX^ocl^qggfkmm|qfpWnrLp}kUliSqVqhqh\gmVdZYl_yqjvXXj^ezX_gqcbelWUac`gm^gsihcynxZU\fdlgySm^Qh`^_in^wbT`^mzYVhQojhbVhdhagXwxkQglagm}cLlenmjrfb]dWf]bpjqZprsvnZvkkhiGUcnew^rl}tOW]`dcppki^Vkb`^dhblkZ}u[Wrrld]H~ZuWfmrbPVfl^xkvmbah_a|Z\iwsoYcXnblm}mZppsYPsi`tXh\ddjNtZefi_c\_wUkqzF`]\qXsicdfh``uXod~bVg]ellpp}Jrce`^Js_kh\eon}jWiWYphhb[nZx{_YKhhijcVgj\\hc^T^MbN]h]]_ji`NlkqNbU\ilw~qUh`o`jO^pjhXjk{~^kfUNa_tioes]rciY]mjSr]N]miY_Y^delf][gQnibwslbQShaDVgefO^Slr]mjag][Wp~dqWZicf{}T|kUDdWdpViX\raje`JVcm}RAocloN|EodtZdftW|kunhuOw^]erzbZhNXWPLrQ[XiJegl}dOjjVYpJddPM\dplt_nk^`WhnX{{X|kmLmyiNi_go]KkXnns`tPx{_hNWik^N][ZgwMoX}_wnrbTnkShY]W}wgUjp`jx}lkcz[}`xquohpnV]jbj]]`t{na^[ie|`l}bqkfgTNl_apugp`^[VhdccsaqnlZdgvlciq_uvo{[nxG}nb_d[kfepysmyBmh[udYvcaeUaqbZ}xbw__qlf{h|_szY}qnlekicwiV\aqrp_{l^rpbob~njplXXU]qcmZXgo`[bk__]hgxa``{~mpHm[f]wdnmQwliihIlZxyf|nwpuu[XhXgYzeemnWfXdfiggKMsnnhSnbWxYYQbk`}h]rcUwaR^oumfVh`aTT.W^^elh\ndlmb_hj`]m`_mb\`UmnNfkY[kXx_^a]WJyhRo|WheSZt}QSntRd`bURvahG{_\uSuKjxjf~a\ZFhe[cJaTaa_h]kD`_itk\aJ[M^i_XYXFctiisO\fO`X[[WUoXkWcXamG@oilReYbVi^`eY]UQYcSc[hjsaaYmRVbGoa]xhbc]WaVqhd_Pd`b`t]csmakYalZjWZIt_[SftVb\`iqdLlbqt^r`pQlngihNhwqd]`[eT]aS_eFXXXYLXjbk\vRsijAlqhpC\tkpg\kheK^jbfROVIMkeOca|S^ki_v\`ZI]bLSkhaVMdaWWb[]elfkmdVpvQ`a_^Tlvka\}ncq\nmfef|\rfeti_vr]YQg`~ciq_]iufI]imeenoWka`eurgJgifdfXq{[g\{fhwbxxmicbnck\aXbpphpk`ZmhVI}de{ugyp`Qqqjjp`T^aeiS_iYdZ`qY^yhchetrxr\\uP]VXpdhxozS{`Q^eilIo]_Hbav]qfblxpZleu^U]Mnknp~aXuF{o]x]~]\daX\c]Hg{hae}bSmxRinbPjbyjrxlnacSyggffjkt`atvqqou[\tmfgTfpVZedT}pYlxqMf[nVqfpj^hrg{tXxdepkp_Zs`Yv^`ZiOmKkUtlym[Zam`tbT`jFY\il]dUNujsjaoe]]cckvTo[eQcdjMfjX_ojvROpcYPPFok^PnaXJNleeIttXkSnc[Vezii^aaloUhjWqNvj^`{c`pojqYnfmZ^Y`Wn_gYahVnO[UErtlrSkfkmXhfmUaC{j~LTUaeZ^bdePqvTghei_hXXlyX^n`khpfj`jXWhYWvdm_WvqfukWSZ[gchUlolge~wiTZ^_g\g_BAUXlhLNb_k[Ub]zugx^cm]hfM_ea`juf^]g\_TltfTW}eYZQetOWYT_ymv\imabohZWY|_ym^]fp_avdmWz]geXo^f`Zdveiq`lijgsKd^m\jgv|snkh]mcVfqz]MdgWYUgd[\SjZWorjtRhY\mfcOjn[}mhaalvcp`Hid_abmgbdgfcoffcicIRqw``havdl^cvdb^zjUU\iiX\cvPsdRhm]a[gjgsgYpcohuc_URohwmael`V^XtW`la\}c\VtPbaa^ePu[u`pg`wehm][`U[mmagfRr]pa[FlzesMh}dfSe^jbYS]`bddWWg`TgcoMGTrj_YmweiuZ\xRcg]`YT[Z[t\jrcXdN^dZSrdqc_^`yYgEwlHqaxgb{hV}l^JrjzqW]ipuY}egVaeakx`_Qt\oi_klgidMSfYrV^[aJsVXJo\n]XmdO]^azaeXi`asltblwbcgenxfXzaoc_s[ojl_iVNo[hu\^Wt\Tb__ti`\dVemvsHqabfWad^cgwPtU_bkge{Xkzfz_bi_jrvafrosk~rM]\igVlebrggfhWt[kTWXpgaSyazneTiHmdYjgtuf\bdsqbsygXn^h_nhaz~\[je`hnnii^jkSff]f_qagnnjWa]Ztahg}\hmpfsr\`ZhlrYgj_Tm}W`k~n_l\SyX^lgeg]hgZt^kVnw`l^eof^eoyqpid[h[e\bW{[_qbmvfhhf[hhuciSV_^kZWkPihYdachcn]kg`kgljqxbjdYMjRpd_Ztu[l^cinfnrXbf]u|miYjrg}[_z^m[lijkpYg|seToacVehihvn]XfuekTqY\Qqfdcbumqer[idorhw[TVMYd`P^alt`ZgagdQNwSnudefbaWii`_eohjQkb\umepoasdUikXtiaaodxnehidVumo^\`l_fgfau`wpX[kbpl]^Jgq`fC^`X^gm`tjS^k[eaYfZ\ee~oeiJ[^_cd`c`^UMhYbyvpnbr_pbudpYZenhdj`W^Y]_lpthlab`}fsiZrkgYYe\f[edRjqbdbmTwhiydf`h`jfejhTfhbcac|ldaejZWkkznOmkUWdurci\Qr[k`m\\jVhgZVXhfhkb`cg`MV]xU~h]d[b[fNbooeZalfb`x]YWt[[cdiTZY`hhagOkjkpnPf_p_siYnk]aqt__f[m`ZWwsnbU\sgdTiW]TK`^ea`PQb}muheXtlcuYWWS^lg{|deavrhtPmgYjlZe^bkcXsZ^g`Wkb|ibm^OeW_bqndgdbadtg\_aiqmcV\fmzV|dkdm]gj\r`{c^lsxcfOdcdqc\QS[XXTh]memvGhYSp_{Quw|]nZ_\\a[noVavg]voW]deVaWi[ujgz~wwZbQ;Y`Xq]haY\^^YY`[LdakmivakcpiksT\mii`[TXj[mmgW|Vct]bYql^fK[_VbOi^]\cWTk`V^VpVFQeK[W[\QD]atlHZ[QjZlbhg\kLjqegiXap]gj\ekZjZRz\tfp|_\ZxnX[^ucodg]unf`bioecKeYbY[ebjor\KiS~]gnqT{cw]d7VvLmzf[npaJij^qg^qomlfsoUkpwZ\ZfaXlbaZut{ojdxTj[h~liha_Ucfg\akZv`Rrcn\K`cRhakemYa|dkXL}d`ibbkM[iAsaAcMZkVaiXmo^mj^WJ_RdqN|rmnUpn\g^[Ss_[LlZtekTOvkhr]a~R{i[`Euv`id_{}XxeVtgWc]hVl`ng\er^p`TcdUfjo_r]_WLlZabh]kgi_aA_^o]RcFocfFccU`ccWtsykl|id^`[jOV`_e]jT`A`fqfdyc}xZGZieidel]krtZqqx]ncaXU^\liWjlf~e^skkhthY_cdcJ^elde{YIebaRoYfZXXnztLPxedgfmxlmh\csePVtkmqf]jh]oi}XVregb_k]nbaxk^`cc_rVlf[NkX^c_jqi]YXXjbkr[nYfqet_qbbwi^xYbbkueQb[SuxljZRaYicseqQYjzh^ZuohgkJmsScarR^gqlcUQ`oo~WiLYaPrq_[|^]`eUUXpfRZz[othiooPZll\S]ndb\UyedYUb[bdejcpu_gw\ekMY]O|t]Hqiwuhyrfy`^_alUhZ`|c~lXcikinWdegfszmZz`eneabm{_X_j^gp^Zydponffhd|bg]OdcplbWyik|bZEcf[YkekZbXTYRpd[pc\afsxQupshjeztdhkzlnles]oj]i[ZU\ntpjjaWLjP`ijW^_czVZkfrd`ptSvYkwj]ibeZY\TTcvemqm[[spcgPtp^hdg[g_a^mmu^x|m[`faVh[nkeix^ihYUdUjg^PX`Q`ay[YgxdwidxXuWdgae[j?V[glh\lalvx^hSgo`j{nYa`aesYbWh]lo_fuZWr`y^ajb_Svr_bw^Sdr^fikmZi[}Us]\\PcffZXVXoWohvstbkddj_gklc[X~cMlnv\ix^amYPOg_gVYidvYpcoWXsXog^rhjbOl[hZsbom\lhQY^_{oQ][Z{zh`dgl^psnolsrrzk\asX_jZosc`qckd}VocZgXh]iTnWj\`]csv{elskr]Ulddzn]Ulsj`f`fRgX[rStIumgkZj\gLQ~`ku`Za_kRSY\fUbmZ_eI[abDdohX_g^i\w\np`rYf`mhX^e^\tN`lgooYqifjb]s`hzN\bbi]VU]uQWt]ikZf[ki`^cg~wYbZug[_tf\][k_j^SAbnePhcubbR_ih`lVfOubSVxrlVd_qfh^Ycamm|`[XofmXdcQ_[agncqUX~ugzW^diafqgiWUaa\|jv^]LzmqhWa`oaFwYg}o`otiVQraYW\jeQ_eHNhEXQr_URwq[t\zdlV]yfpPhO[hfnnw\VfRrh^[WowZihovEmWhhZab^dPre\my`[Ye\k[dch\Zycf|odyfT_h^``boWbsNatogZ\Zdkbwfmte^fr~aVjoUgiRZ^yVree][i_^arjuqe^l_p^^Lc`YjioZXjvPXlY`]TidrsWjMmceV|sTIdhnqVYU`TqZki]\tY_khSeTi}inn[}i`WXt|s`vkQ_tZhieWaf\]ZlbSh^Toiea^^igVll[]kYhKaYh_{mxhVp_dQ\oY\h]TW}eL\bbqfglTR`di]]va]geglZonUV\^{e]yQgg_YdYfp__~lhIZeqinridngn]clg|mUOakqlujmbe^V@dggyQNaT[XhEmHr@lO^`pag`\gOgf_Y^rq_^YWtddZeZQdaVtXWmPlo_[^uR}khXfdjhTelqiibRZaoi^YTaXbkq_NaovdGXmezKL]}h|XvckTcip^cZYj[Trfm\a|]bKYpkmW^ed[tVaqdYvccXOdEoTi`G{TPuQonhR\yMftlo`NcaYViMo^abUebR_XWR`lFhnS\tpxnvdZf|_fVgaa[X{QUlbWZegPnV_XezqXCS[Rbk`Yj[N]eYQhpW_TW^cbiJbe]vesvbi\^T[jpgebS`e^^isn\`[vsdpu]kb]YXzXj_ojnc^f{_]Dd``bfRqc`hc@]YkMTheHXhieTa[PSoalTKMra\X[llZSt_]Cb`PyYpd[UZkUSi`jsugyDj^XN[^_VcfdY[xx`mbc[{czjbYsgK|iddjt\|cduwL_P\ptesMZuYW_f[^da^phiypoiesyhxcgZu:i_RLudati_eavZkkOQX]cTadVoq\h\bSVhpgk_^XgHaKcYhgn[Sk\}\^XmcKbM\Zjdyctjm>egfddkivZkQmd`\cnggkgYnfd[}g`Xpa`rfifzx_oObke}[spaa|xzkNac[q[sVcjdjjharqoen`QaRP`cLmbScU`VXf`afgm\}l_oprlpV`Yk_veryeYlkqghekmpfhRa]xm_enQl}fqph`YcVznjmln~mdmqmifQa`o]fsSXn^`LtqamXkibocW\jro_xj]lsVQ^l\kiWguvW`borsgomggWZt_^bglmZfpSatA^k|^e^hvUkjhTlch[s^a\c]jggsze_g]mHvaqo_]bfgkeWpZmt\irpspe`MjfaWr}o\Yetd}`MHOq^oI_xf`RcSppnmSpexcX]n_|nas_ikwpeknembwiPkhLhX`Piv\\knxwtU}[[VhZjgof\PqleYc_geas^oesndW]th]]kSi|xk_e_Uih}^i]M\]lojh[]V`l^qg_`YqXoTp^aatUnYi[`Ve_cUfVgZ_kmq]jedfPih[nlw\jnAr[]m^xfUai~sc^_edClTUZ_befXkpoMbh^fjbZfVcZOhl`[nXie_ejw`saJgO_s[[r`xuSreeqoZTcWYj]lq\ZpfYiUU[mjjk^b`GVjce[_jUepcWjkbYWHbmfjeEeR}a~nchhprZZdhhqktts\biN`eQfcn\[sc{if`{^h\ketiosnj|qe`bqOc[eh|ptYbckdYJvmlSgxzqlga^|o`eXeSpjebYYRn\ioqb\^xbnc^}Z\{\aYL`j^sf\`exsyes_if]veOblpvVmYbsgig``SldqZh^b_\rt`kNghbZmIZprcv]_{TchkfdWOham`f{n]p]|VuRtjrk}okloSd_ff]lLYSir`[\\tfif^eWcZjNs^jrTkkkcci\MgmX}huhQqnkd[ia\qgi\kdoWcToo|cka_vfbrWxY|bd^q}b]l}GWnfhXwoU]gRhgt}qUZg`t_no`o|iblR`}fajz^ZmW~cXuXVsXi`hplz]_vhaacpfjf`ebh[bqvj\iYxZbyebdl_Ek_Xkh_lat]mdgf`ug^a_NfxVWf`jek_IO_njbmo^_xkqnlc[m_ffmeiaYesqY{Qhkervdi\sjnY\Y^ilo`V[hfgcs[g[bfo`djtnpaj\faW]ie_e[pV\do_bZYgdfiU~\mhswdecdfqlh}hg`\Yad_qfnrcelQcfhlXeo_de[plfratXQhdbWoj\yqhMpdpbaixjajMb]kXecgZi^`l\_WX]dWYZQ'SmGbidz[e_jfo]pb[nbTXr}tZb\[p^Tgy[lOpdHe[bZTYiXeobZMcVa~wYQlUWfhRkgBqksjmf{WoW[RRlm`l`tk]X]i]kPMtK5bjd_cuSZgOTRjkwZUjRHqhSaUkLrObV`]MpXr^e\YHlsdWgx\aYY^:]Nh|}pf\kZg[VS\baZ^xfIe`]Rh_mTduubeR[pnnav|X`m~iCG{eYQQbn`Yfs]~^OoOh]\PlhdM_YyLd_lbZj_AVX{qgi\Uuq[ai[fOmMi[x5^VmTY\fgg_TgxZR\PaiYrRi[RLEXRVhblufh_jidzavlSZZ`WnwYRWxbn]U^rw][TrfZ}_dgmgfmdcrOg_[Zcfa[l]qcUudllvQkjjU{r_p\r_c_b_TZfi^rkVdvhjeZZqnspkjfXpmlxcY_pouid_XZg[eT[c`dkm`cdWj]aXi\S}^TVd`kjhyb|mh`{tamD[`rpg\\rSVaPa[xejMZUrj_]_emlw[]tq[~XVimrkml[ZVNeRlni_`afpcZY[b\VrfXUdhmk^[gyf}]\Zd\p\YkaigpXXj^UgbbYkmu[shxXg]Woscq^j`meeqkRpW{dbN_Z]dYZZeife[r[hIzsffqoam|S_kpYndtxsgtWbi]vv^^sjslvkdbfmobnOkorOjrceRiSVsmsbk^vXljKm_rdU`j^hXe^be\fuo}fsxUahk[pu\dYv`my]_X]hg|x\s{v^UanaZ`g[niV\`VpdjdWRpin{]zld|Uml^_mnO`ZngabY\asdkmgbom_eXYekXaokSifVjf}bko\aysjplu[VvcgaedMmlX]cgcqZ_ixnqh_dYeaW_dXgYcakehkaPoscHzx\]^aegfw\`embYaufs`eff`bfRY_nYz\_jgMigfkN]rYa^omcT|gkN\svPVTo\``zctf\r^oo]_xW\_m<[VdueldgQbVfa|ppiZm^yqYzgpx{phyamWsHJaleMZZenfroRX~mounmoxePgaeclopzwgchbyhHprwk[hprWrHk_`n~_`ipnvi`a]qp|Z]TeksvpdaYnfhQ_WZZc_diVtsfika^vdi`eDgwq_nR{gtnPdzD[`ig`lkIXx{XrqHdd^gc^md\WuGSmWzpKrbfjewkSkgiZZ|ennu^Si}le]mdeuqtqvYzeq[f_Yv{t`a~nhWcm`ZbiW|phlhsoWai{xkZtfpuZ[izhjfWnsfSzfjZ[asjkyWOb_R^hTlw_meghDcW^S^Kieehrhslcvmem\modY\cXoodbTYa^Yi^bgdmfbU_AhslaN_selslsfblayocW]^TM`_kc]`j_QK_cNhdTQkNZSN_k\}phOtRnufPilfbmu_rkV^]WT[svgakvrmM]k`q[NneiveWyxamSi|bb`lQkhYuwYn[_iZc]cchsp_^[sjgwgtlhkR^`etQybt_oO_t}sW_Lpk`Yhl[uK\wbLwRe\\bajy[tU_ZfNOnjWm[PbQi\]XZl]`ank\d]uijq_vddTWXpvccge^dYhfri~\hQab_[jgayrqoSck\`pbm`rgajhj^e]YuFjTrzYbcwvVSm^akSnl\ufTnedR}Y|dYjoihXpOvkia\UU_jgwdcwfsNQhhkS^ZKlVRBYfbS`lhejephiYZe`Qg\iYdwtR^_gdwhhm\r|aU]\m_kKkzf[zilmbk_w=F]oyjibnYXKZzHlMcdMbqiBVLQf\jomZkzoQwVM|voUtuGqLr`Sb\j{[pTakiy\ZjjcbVkntuWMm]c~fYm^Y`g\ijbukkjkc\l_Re^[WdpqumPtb^lcaXegjZj_Xuettc^glFqgj[jXslT^ UU\YfmNcJhv[gjfk`Sgkg^Xo{cVwvl]mWdLnnjhXgq[\gakdSf`vpe[bT~Gxj\pqxfbbsL][s[ORTSh_jtaM|\mUbWY`TMNi_Zal^b_zgj|`X~d^\eIomhxVznicTemiMXjX_hYch}]S]g^hZTuJboVHWQoqvZC^el]QgRbZeudLYJGwXlmlXgobidpRNfHdcxkjf[H|prpFWJ{klckbUhfKcUs]_zYcLPY>qVpYuZays\r_yl[nYfb]YpcYk`KaRfWTr\dZwZp_VsI{o`Z]LQQoYenWjlZ_VnhthcZsx`ajbc\Zhmfrsioxbfh[flritaRotrNqd_cZa`CmPcsfsxpQX\wReLj~RW\jdsjafm`RRncQtyeacdbfdmx`mn_smcdqm`XwkQtlpkqrTahjqj^kee`iedwLju[XU\YPamk_pmq]|hanig_dtpacbz^X\ik{spimhT^owfre_]`l^|R[bv|OlUYbvmlyjj\czuTTgghqQm\vZj[|sw_iahs\n]da^gnWavtTX_g_Nk~_bCl{iMic^qvl[kzYgs|fVWlfbi\kky_gPsddX`^{aYjW[alV{odAjvzil~T]ixzYEkvur^pXy}P`aadnzqrylghTlWvZ^mxNiy\e|vtle^bSs`Yk_{Uv`fV{hp|Pdwi\YsySkaM]v]eckrlc`hX[fjORpifx[jZpe\ap|emg_wwwbiehn_k]_l[wcc]finfpTnQ~\Uaje~Gemgu_cjgxOoag\gkucbomcnka|]pi\lsa|[|q\leu\eefUmwkeTavwu{OytW^krtrp{lcpXgepthgz`kfi_xikbfMoZh[tZeJc[o\n}kS]iqifwnqmog_b[tKUiil^XU`Xedd[nnmlIufUhNg]`\\nuD`kPGPNVSwklmYfYlcm[|[UdyYX}e^_b`cqockkbs_u]Zl]jYThjJTpxjsD`fhUP_\g]c]l[uQgZ{nWibYd[dq_ZH}WJminfxVoohhir{sr`gyjymLehmbdkm\Wz}egfluf_WbUctMhn{|PgUilfjj_C^^RlmlP_FocYH{XUdpd\^xeywkst_Q}V^padOhVqObnS^W^jft]Irlt{_oYw`QllVYiccwlmkmwb_dz[sUie_XwRa`NnNpLl\\ec]YUtnaj]GKbgd^p_}wVUa`Xgq]zNvh|wiI`Y[g`Zv_roWchmtdlna]xljbduXflwqjxmYi_zoqVPlo`[YU[]DqhfeglewmN_Yjc^n^{k^NezrZaAh^`t~vh~f=bibnaynZc[l|MMfndTdXvfz_nnkKqY|MiwIrmXRboVdfdgUvXPWZ}jffZOIcht`^rt]iiW_`YJ`frsmsYqrQ_ZikTnS[]`Z~kwku}TTSg}`pZ^L`NecXrO\wPnml`Sjpbpjbeo]i`IcSI`cj{a\d^_f_jf{gaTe[VYSffzfiyRnWV^Thb_|^h[T`WkaZUkPpq][UWWSZeY]wc[gZp_l[cuVvngRQ`fTakhr[ZacuUrN^vvqeUfbfpQqmkl]UYcp~UKear]uXcQzxu]rp^^NT[]ze`}\chk}][]iZyqne}}io^tYhhj~YQqdrwcY\c\ck\acgYccnqp\_nbjbk}_[d^wuiVjmfbq]QZqXX~p^xkYebfX^``toRn[YoJmNgdmpaZ_}sg\ipbf_La\k`jirlYe\j\o\dUnmp^g\^UbaaV[`ieur^\]h\dnedfakqedacks`a:fo\lomcTZgelc]Zkn]_taUsdpgW{mTgma_^xymozeezhZW`idk~eTXyrb[rV\ue_ee_zxUltYW]dKf\giFsefdXhaPo\ZSlW^dg[lnjfhYc~gb~bYi_bjbjfMcmloaqggTVWnaR[WYmX~]buZVtmRfq]ca`bWwgcXXUTe^_nhNwpjZnvcVvkn_\rVedwcoaQ^lWv]jmohXQqdakPjlRjXdkTu[\V\Zk`rbungrSc}]^qVTTMdd]j`\zi]RTgg\Ofkg\rPuPRVO`Tjb]vgdVhigcifbq_q`r`QP]i]VLSefufYnR]bc]^br_h~bpufa]`m\gVcjO\[[PipkZv|_Wrf\c[bXfrTm]^q|cnrKW^mjm[zhOinQXcWqpohnepbmWUj_e[octSAiO^[yghmj{fd~fuqhTtpZibZMjcikO}`o\^cUf\q^olPrbmVugjZu`{wgkeSeikKlRdjyQyviye[`i\X]jubWgRjWd`ilio]qj|[xwefa{b[xgaxqal`d`_sl[YndVVhaigihgeiim\sYYbe__g]YzegseX[tkpx``l`}nr_gnndkmNReYWNQcr^_j_Opdx]kk_]VVPmYgdtlN_XeiYeefqajV^NSnWH^Pnhzxmn`UgcoT]Z_hOa`_Yn]ffbkgfhf`ok~^olmS]rgnjrXi]pXy_hqQwQyTjULfTmgbXc[Zsj`?abYev`hslXlcmceNac]de_}ZKuSeqc^VnW^bcVoe\[jYl`y]ccTdZenZYT^xZU[Q`^nV_[ippvYdh[]MdgRp\pY{`pXS]_f_nMZ@Sk_gth^x[_rpb^^kWV_q}Qgi]VfSlX^oQjhcalg^x]l]eejnZdEedY]Z|V]amzrVbQXi^\hj`je^efrUqa\x\qtdkeWeBhbiO_QhV[xeVxP`[VO^N\t|mPrPciWpZjgj`c]`hjZJYKiVq`bpRh_jUgfgceW{TmzXdn`qdnX_|b{nTNNuTXU^mThSoWT^X^^kfbu^ajSmSr\`wikdW]dn_p{]lxnv_~igmHburiYj_b`qbg\ojh__Ylaepnc\ehPe|f`QiihrN^\np[gj^\}^ya\gn]ahrKW\zRbhsa[]^re^^^}lllsfoWfvV\k[Op\[efpZSoh`~o_opv`Zka[jdaklmsLpl`r_X|p]ckhifWZnas`klbaRnS|bo}gZYl\h[bR_qbgtffa_e^Z\ikhpM[l\lhgWktUyqJcsxpSZ\tlmWm`coh^][flJePVYk\ah[qamXnratiohiY\`dainma}dkgamemaT]iY^jZ_jf]]bh_xg_o]iq_df[`W_moGeeuXcy]mbemaWXWTV_\aiqsZrgNd_\eifPkX_kah_{bsZdtmdcldkdufP_uYPuwueUlhiTYNYRVyb_|abZbrnWWij`BN~^_Oobfhuhzi^Zmk^\pal]Yd|0`Wb_hfg]``iTZavaGZc|\QPo]eZTVeYyilXixbh^_bahyWcgi}tm[lx]`XeX]\bmFHm\m]_hisRKAymjgp]xePV[]WnodjkewjchdRhqderGiogkj{dxinR]nZYb^^YaabgG^ezLgkgPddax[YPxl_Uy\dbuQYObh^Wt;Dli_liyJd[mcsl\sc|gWZu^efZjqs^e`q`nlorc[bprsZ[@beWG_cYl\~fdcmiXQY}qqhdil[uFzTK[QQ]adGT^X\KReOXQa^g[pQZw^~XifQWc_[q^[\hW^_ZvPnhtZWfKZrf^aYx_pdnk\\`dNcvh[[`Pg[jfeiPUNZxvUjZrlb9fpbb]Uma\ogXMkY`^np`>_Wjp[XKgdfYYk^_jftOfRgicgSkLg`^YUIPfc^l{volbknZsGdS\cX{`Hckb[nmtSd`jLZVMbbhY`__^u_avt`[iVUWbeRwTxDaYmuaPflgfUj]dGXapcUr_[RO_~gogZczdqOzYpewrfja]CUvDuembyzgkci^[YX`[pdga~jcefastlr`lUhamttt|XyibO~vI]h\tball]lnerhiIYlaJ{hQY`v]]eFbOGd[YwX\U^b`gYygkjNxsd]zhekqiWdmggsjjc\wqeuTyghbUWkhp^QXh\puVte`SskfWj`Ue?[^[}[jaa`YhKVkamPqYZWvzkbmyxK|aW]_w[cUcQvjof_egosKYcac__lfZ_Nba_k_Vu]gh[uYfYdeue``WHUXJCoi\kkstYetpZ|aT\uUnlUU]~^bUfjMFFum`YzkksgcQi|hq]p`\vpV_l`Wl[jfcgr^qdMrQdZymVM\[Rcjig_re_NXk\Qc]rMqU`]`\V`Nh{jadh[kSxrV^_ThTSmpib~hciipWldjp^ioqV[i^HVo|o`lmaRjwjr{ccocaWcvtug^kcVMi_ghjQ`fWYIry^c`v_k~btr]Opqd_\Ad|g`jeY^[np\nminmf^x]qgccNm]gnSg_YUYTi\]RlhdPik`]sdMejqwKe^]PnVYhSYvaVe^UsYpunViiVptjlebh_jekbks]akYhegRXka`iVQmfa]YN\iaW\bmp`wxcldfdaXTdgegfPdaR_`vYvhgco]]a[eYa\FgrqXqc[mgengZUifdkufZf_wrs]oXb[fly^Zi]tmoTdil\`n`L\``[JcuE]nQ^afcn`hms`pXzDb_|ccWe]lWrzW^NZ]]p][cpU_ln_UoW\f`fd[albg\minceczsYt\Pe^aqt^ked_]JgeV_opq}glwfmWgiZjkk_t^e~fTuqWduIlbh^_NUmnqclipaj_va[qjj{iKgXfcbzs_QfOtkj\cilp@YZZHt\hqXYtnampX]TVvmjkao^{zjfvUSvm[bdapTcl\YPoc{[e]^UrdcpVbap^tmogjzanztj[l|stVi``jfpeakbRvesjecloRcbvdzfckhVhYvhQ_f_S^qeZ`bZ_qifqy`r\ff[`qPwZZZoZXcbdm`Rk\joneja`hk`\mQIZ]^m[eOh^bfZvadfSdhvhfY^`cXglxrtdVhsZ_Seblp\]Sgdcp|VcbjFU`ZiycVhqWTlOBlohuGgXd`aga^sQZaPXbcfVfZoS_\xuqlXriXdO\[p^tcib^jYqX[WTfk_]cqx[i_]jc^al[bkmUeukiVoxmbsVlebg^cgkjjWU`{tXqQdwicjp`bj]rxp\xtpi_qp\isfq]jz[bjmcfNisph`_OcncK\ZacbeXcmfeZ]sXl]_~tWcYal^^to^hp{ndv]ceUj]]hqbyzx]^^fguVhfnQgZ|j_wU]^hfeIpjd_Z=\Fpj\vZdXVKgizSukd~cdm^c\bgQ^jhqsq_[snPoWKcQe^dftpjifinSXob]StlkXVehbfcb[kI_R^rlVDf`\yvtm[iU|RhV_yihadT|swzb]Z^efNpc\u`aZfVkfay`i_cSSpftik[wc_[Wc_jg`YgM_`q_nE~``q`nwTcWh\WfXeawbg]Tq\pqelU^biuduV[`eq\KPqYT[Yc[p\gfJiVgtLYfRjcfH_gn_JS]N`qSsbU[UaTk~]ozbF]R^zdZk^d\^Z|`]`JkP[{h{UUiRRXb__^f{Vqee^i`pkbvfof`fPk\[axhde_ZeenMv_sgVq[QpjsVh\rcqfe`XhS_WmeqiY_w_NSoM`QvcqlRupNW[\lVbdkkqw]g}mfYiO^bdF\X_y`BWS]zdd^qVriWM{Yi]dl][cr_liUJ]lgQhQpdVN\Yoc_wam{h|WWlYaUmb\UM`iZfObyPde[rNeQ\grBgp}UynjeXfnuHdbkkfdilb^jgjaduiikO]z_jgRf}[]jym[vw_gajksmtWh_fr^hc|jrg_hs`t^n\sgg`dc^f^eWWTdsf`x\obpcnUi]gdjdkk[dabkbqSrwoZjsjfyj{ca_jvmW\^mQ]toyd|b`jg`aohklsa_p^hkndl]\\xmb[[knXcwmo`[gUo\haVcfdqXkgcgj_jM^USph]edbiSb[Pjhacv`oaqjmWcynAQj^{fpa_N|cXGdb[``mdnkTOg}xnZfzositu[oteamn_StnWhfdXaOT[W]bWvinkKYm{]nhksodXbYx_\e`eZi`VgShgRS?u]aJcows]kSZ`t\]Md_lnPVvdeP`WVQlnvZprdgdmcs\jbo\ei}uLqZQlebn\]m[]x_Wvm_bTuZmalafgt]`[f^YikWgp`fvsuhZssSxxydcLecdo^dlWbymSYqWZVb]te]R\oh[kYrJUeZiWjchLVSku^^\YXzdoZ}`bSScJ]lkRd][RavaUqgi_Wd[Jmn^kogk\ihndaXl]Q]caimhk`r`vhobYVmKoiONYTdco^X~z]Z[]MkNYx\al^xjYocnv~]|ycjbi\YZYjc`vjhZ`_JcahaXechzgW\flvnRdPmky`a6`\ye^Q\jgiYhWtkW@VkPonmrZbUiZ{TsiNanY]ffsV^m\`j]gcpjlShoY]zWvru\dfb[e`XYfdTZpadM^yhmjaXQb|]hkebabRSVdddaurVegad^bVWf^{~Pfo~cdjk^__^frs_iLcciT|ezcdp\]hUWaje@hg~Zjkui_YeUh\dZXe`pgdfZqZoVf^hZ}W_mld^paOT]flMsxddY\el]oahaNihkh\bYeh_lWcQc_fTidNfSXjlNybKo`kmrUi[]Xc`ZPLZzecx|agx\Ni^uQYtzc|aKWW]Yf_Zk^vj_fX]hgf`z>aUexjf`cY_ZdUXY^\d\taj_h_ousilipwKob^e_eqosuSW^xVaTeczaNldeZrn_vTf\l`Wom__]hexXuodafdii^wea^\]YWhnfcguFNddRWv`Y\]a^kijW^X^lhScdmso_oVhWhzcnjboVcb`NkR`LrmylVtk`d^Vf^m[g\khbXmcgpPZteM^m_c^amn]ignSjaXOizag[I\b[j\lfReXUYzrSZP^_dj_zsp]sgXuyWlXvNkc^]]RYTyrdUbU^dsmVkZW_YWtm@^]at^c|TrbYyn{_cZKWhb]s`la~bc_PkgY\U]Vifc_V_bfgRbUOloTesbfSdZ}Wodk|mvahs_O^cTbKkmvofbY_laiyl[iXbfRoNj}PHb~ZmIZ\ZoaSSguYXj\n^jhp]snh]hhh]MijkhpQSYecnkUaem^\mldirrJfj[]bdT^Wc_hk`yg`r[h^o_gRlabRby^p\QZjg[|e[\nybXjsTneieyb]f~tUZg\w^Wcx}^l[PY}TS\gh[pVubQsfft`ed^XeXgeTehMmZUobZex{sWhq[u[Ysxgns\VPbmrZ^jjprZnzdXlbd{j]oWHoon\hilgkTp_Niga_apikc_Y`bmUPUpzibg\SdhbcjyoiweTad^hgioQ_aTxj{fa_wZ]oiX[adX]tRjuVd`lH[P_jWsT[]ua[`cfNjZjepRi}qXr[UksxrGaedU_`d{ha\Uef[wzb]VvLk`klgrVX`tk_lhqh~MgzR`dRbc|iSgasx_sbboVk]Xfw`nx^xty^jqv^wUb\glT\TznUl7YPbtebqiTl]ueIZiV\_sgWcn~]^RWLRp`tYRoDn}_sT`rYYwc]hfgzabsVTbmalR}WaNaHdUk_h[dOG]]gj_WZ[Xjthsizhde`cBde^[bUq^]OSfnj~_aRgp~upoT^ak]d[sZaxU[nltDiwkkfb}haVfncPsUucma\RSurak^XRz^]~zconP_k\ajYg}XfPk\pf\mgcyWljoXX6kmYRfTZYN^iPsrS[pqSmVeni]X]mgzYShhQUYKguPa[mQ\l`lReiX`gl_LJ]c_ZecLZX~PXeScSQXpxcY^[ahlezje]roc|p__oTdl[\VcbkFazp~wZfbSkzfoldt]uXgHmiYmKdrQceaD[dlDUrIXuX\bX\pmlQb[mgmS^cZXBiTbb_zcm[aYgSldYdcVN}SfsxgnVQcQXekUjn`c`ZWlUekaUZ[YpZZ_kg`Vfg]ilswXW_W]pp[MqvVxZpzeZ\P}`neiJtjkYYu:{pmgWw^iadrkh^umZlnxfexd^mfWda^bg`jxQ`\ZT\_diXYdbb[]zUeogqiblqbx|{fvyVy``^cWRiGxjgonbrdxVmvQrfTn`zfXe_Q_osM[vr|pdk\g_UmqX`naNkdqysTLogq`jp|S]ffh}[falm^~|bVfw`VPuyl_~sohhl|Tjouz]tbNnryKZjhEdjmVoY\`j`q\]OqY[qycpVXkfSkao[bedW|iz_[eshjarO^idUtbnPXT`Xha=XmbY[nlMRgm\hYPSMc_RVY\QyUe^aOSNRcVckd_pWWcc^en^qbIP_Oapq_BRcud^ZRtUwwfdK\hcjspYgROcZT[bv}PkkOCFqcfMZorrkaWN]YRgZh|aaid\QOg^dqk~YwclZf]|T~X_coo}UvYgSi_lWoLyhThY\Zb\|TIdiN-f[nep[Ijb[Or`SeXt[r`\MjbgYtR_Da^Pf[|JYYaU|]ZkpmVmc_TaouNjeYc]Rrd_X[h{T`^{^}aFmlTay^\cQOldRbukaY\gc{EDV^aiSaZKgnWRfdUhXPSpai_jcmhdeylthd8\kl^]^fxv[Jembciilr\ZUZb\fuYcShhmZWU_hSajil\aWeu]lebfbdd{YvoW_e|\QrkVp]_m_]fhdoo]aUdhpchVfalfogO`{jj\EqtnrjZiq`c``]UvoUge[XY}j\mMUd}azSYWmh^|]_r^kh_s~jUeU|qjonRQkeZrTmhW\e;shab]T^g^Zhqno]\gndku[kpbjW^Z=liYmsYfint}cmKcyYi[]mac\ZUThVZAdRjMQhan\Ti\fINg_dQLe]qoi]TJTbZhwiee[kultgq^[nm`e^e\^bgQnjkrdea[gbr\[bgenme`apcncVpif{[WThOlq[Sge[atlzedfffgl|muiiap`waYbO`b[ZkravdZKUlfqVtt[m\^aQjRX^kyhxJTvjjT[ielhe[qdl_`N|hoWaj\dRisedm_dg_jlbeMljgfkefbwdSgmgbj]s^Yd[L^eXaqNjZXtRaeWiPacb|^llJUl]_[^Nod\cjwUYRhvWRnafutsJjozYai_Zlpy[lsiXt\|i[^uir__nL\lhbt[bcXdP[wmwwbd~qffhdX^aufv^vk[[`quUN`Wg_hddm[]mm`WHdQ`okWYlpmed}`sb^mgvqgeV`p[lZ_qcf]aXjgldbu\fH~agV`rTZhh[Sr\XfSZYSzVTgZKgdsph[QWrrZmuz[l^whahuiz\\p\feilitVvIiKUu]xbzhv~Xom\ucmvpyYey`wilhcguU`fqZScnbcvsLZgUkrcffZW_XfceW}tNZ`qjk[Zgel]~qbhoR^reg[ynrqt^VhXeziad_Neojl\_dlgdW^bSgorhmuVcucZWW]hrbxaNjQv}\gGv`cWZV[j`Yrt}kT_gmz`ZVp^tia{]ifcbbLwqimxzmQpeox]biqSlWv^i_cZn`jHdYja`i`ibpotg_[_Qm^wqm{WaZbUZ_VkN[dY^\kisZnhZmblSyiYumXvlb]bLReghe[QbcepWeo]eUh^P]wq\pat]jkt`clcZlV{j\_ToqbTdg^^ln[collP]nePlTQqceyWds`mtpa}snQnqeN`aVW__koc`R\[obXdmurhPOGnoZOldU^fZbgca\~jYiLYl_cqQig[afqhYlh^}cgr{R\^ibTnsm]ihRQjn_WjSoylVzOc^ZeveW[[dZXPsVf~TaujNVl]rsWdgnilYfqYUTdWup]hVjekmnbUzBj[iWq`\`|ailjj_T^co]udVvmiejWd`Qmfpg\\ffmV_ZfX^anscYd_Vl^np`a{i_o_XSliNNYmumbQwkXUSVfWxogdZS[P`XmgptfW\_XbWXk_bpnW\g]krc[]]e{qnOpriq`gRdcIiqZ\iYdubi_XVghuavk`nS_fgPXP~zSZVkhjo[\gt_Vhel_ba]r\P^sdZccr]dq}pgd\`]Nl`DphgXtSd^dYgknisvVWQSYofpadkd\\beYaTcuw\{j]eZucaZbfhw}Veoc_n[]e[l]\^kg\fam|_cfr}ZmY`}x[ncMTVjtWzs^uhn`jyRZhoi`^]d[ZMUoY]Ne_yXthTSZa`^neVgSmZckaodk^^jfUe|Uhs`qbtostX[nmoWngw_~_}`j^YoZaroX{l]\jPhYTS|`vnlhrM]zhhogb`_dchKhTicgn_{nSbnmZnlidXMnqXfSu[^rme^iJOa[Z`wgufd}o^cfaX}tpco`S`kgdWhsk^la`h[`\birrnXugbnZlLd^\[hSgd]na[odWSfPV\[gX_[p`MdhZmw`UXg_x^komskab^_XLoNTs``dgkrd^c]]`nje]bXkbamgdauacde^V`nUowTxbO}mdcg]c[\hchryxf]skKg^\b]`auk[][fe{f[`dScVlcemeUoaWbqmgi[F]Xd{yi]HjaaWSM}v~ZfeZbgfa\[[gTnhp|lcM]]bY]xrua`d^^wkXh_ucJTkk\b}Zd]WbU`ShbRenyLa]ihTepn_fe]haaPq\r|uc_io__bdsu\~^vpbfnlr[XWoIeggSj`R]fk^Zp^Q^kn\rflar_WRmRlnH]dgRimi\cR_Q]`afa`]Vn`Hkd^tpbk^YnkhY[ZT^kgnkapi~f\eoycYWvjfniSx]^h_ay{jfq^`V`aujYbKY`iji]\ddSvz|dldp`BOfa[Yybm_Zmhg_cPfr^_N^neZfu_Xma}`ttjpfig]caf\n_`_jUa]mu\Ubv]i^mdfymiiS^]juWXmxfie`wRV_jilbeZqjbcl`didacXq|Upa]c]oj]bcqP_ocgwYae[_khyX_amqtYjjhjcVCgqt^^bnQ^^uYgnVNUSwZbllodNXYc_Ph`dr[paZhQgWRk|jaii^hYav`ggevh_sicsVVh^W_oqX]YU[SXRRnjfk_\dO\piyk[X[rbelYZbYq^\KVk[WYa[sfYRHzaco^oruhtgjcgeQbhf[Tm]]fslpd]tjl^bVcbmbbRchkVfsu_aZe^pfsgq[YeaWcYzYjfT][h`ugpVhulfxhhgqkbiqLhpa_wqfl^`O`[t{uRNjMih_[kT^d|hZplR_smWeQbZI}^frfUy|dclTg_bxUeo\r`X_^mLhoK_k^jrt]`XsumMpbe^osV`eY``n]bq`fRjdSYcmnj}nI|b\}^db\Rvv[usWYhgk_sksgkUkhSk_Yy_ggTkXlgXfVfht}tacX[[i[frX[UbqseYKah|~oYfmdilYfhc?xpdccZrubW[ag`bn\gybZi_lnu`g`xfTiQbQ^`geUvd|^Zjp~jQb^eTbbiut_d\drYj~gR`[]kUVnUncNj_imDV`^zRjcc`PffqVTOd[vZeMZeSli|xj[cadyf\aTgonZ^QddfvtdZZrqnPaeptdiUcQG_TUvgdlZtaq[be\mEnWHNn^UZXjYbdkgUUVhiuqfjdY^HdQh[k[ZrncnhjieY^k[W_NVi`[bxitilWTcjmZZkfel]cVswei[cNs`cprqH\\RC^_^XnhZkT_biYXjbmfVZWo_RepfmfMeTiclnij~txtagxwO^Nsqefn^k^^\`Rm`qmPt]MtdfcTxhqzXpcYdfDSZa|XOQNlsddlUkcUbN`NSxUp[uhhaVcfb}RhzLAa_Mh[]`bdgsevd{YifX[cZ__icWQUZph`^ha]Yid[zRdbm\QWf`genrtI`t_`_i^pN[}t`]roeffdMaqYjyed|~XWfmbgy[P^MZbth^|jkcY^]jqgch^bW\`rc^`[PpOZ\VAPfkQYtTo[oefXjc\^~WWUe\[Un^Saqrj[`EdHRjV^elbJaimegbXfyec\WuSdWVmgg[tgZZ`tKeS\\OV^Qh`dibgnxi[a]TZZjj`puug_F`Ul_hOih[`_RWTodZY`X[gTvrZ\ipbuktP{7QXf{l\_hxJ[agm_[yFXvYx_N]zQikp`_XshRHq\`ts_YcWcWiwjV}n__L}kL`UYRfi|``b~tjMw~SYaeqRp{h|qjkqZ^M^_pr}XxttybfV^\pWpycbwbhQ][[ms\RVeo_Nq[9hc^d_uj;]ciYUi\oefeh_`Sc}pSi[`cn_v`]wQuemo~cZvRhViZk{JkF^`Mjiy`cSMcW]MZRikndy\`[Wmm~sgRhN|kUrfgbe`pjn`[I]nztlt}q^pXmsKXkjtWt_vtkt_^fta^HfV>HiZmclnd`Xpmn}mSahWkUoUdebea_nwtMqxjcq__hmlUwnojz}mZ\uwnhq_alqV[fh^Yjbw\gg{O]\ksvXrytnxSXmmYWhMeQlc]fkmoTfMhahy[jl\Zub|uOTWh]g`{UklyZ`_h]`NV`[UckQIno{haYgZfTvVYglm``UjW]gVlyag^_xVbFaP`YblimKnl^P`^]j^QYcXihjtp\cdoiiqY}`[jeS_vlp^\VrhejuTgghmU^sMjZ`\cg\_d^WlZjpir_tZbi^p]O\uaZdz^`hofsbcMbj`h[^gfXb\jXXsd\gujZfWp]VSzx`e[eh{hc\pi\Ln|hgudi\T`hZjcyTcaeOl^mjQdnpto[^v}lgy_YR\XYer_`^riaUwX^Ub\LI\uf`yWO^Hy>uhZZU]`cfdUL_LnipgWoaq\]acucapXhhnaXZ|uXxm[gHW`OxcdcP`d]lXaQkElUY\aW\lJhgZ`YUlSb\TeeWP_kiOeV_aE`pLkfjv^fdUcflo[Zraidfbccra~lldsScVKLbnQZd^aXxZc`\wkhjfhQY[ZcecuWX[SFXkiNenbTqebb]bgckZY]YF]jcW`]S]\ruzLboUa\Za_vcWr_`^Ye_oor~OZYSZx`e[q`Zc_i\YdJSlwRu[^Tacqv\Wc``{XWiXh^xJT^V^lmVfnoV^f[`c]ZfoabX`scQdhpgb`Z]Y^]^L[rSlo?pkgm_cYlpTZrXtRg}aZ_^Vg`cim^^vdf^XXV[c`Z_SveYg^b]Nk^l_ZtX][\`\a{ec`vciri^PVTZYLw^JUVTuc]yer{gq^gmnqbPW]]]\dgfUhY\TfoWYd[Y^Wi\n]]Pd_lfil`\\X\b]bX`Jpz\^aZ^^bbYQ@lyCXgXljoaeM\kIe\N^j_OueTbk[]cTvRnZcVeQQ`tZcjzygY^ZtW_`^fk[PYckgf[^aEtZNlaAhU^a]uhp_{]vy\jccVh{m^yo^{Cbgff\ZZXVfk[slljjcFWs\llaHie[UlgiUdr_ig]Oyyfbv^ZPtZneeOlU_c^Kqb|fnW_ke~]Uk[mi_^i\j`nwofNu^^pk[^\oM_\qVl[]i`Z_kd]]gkSrv\kl^UcXskTjmtYyochf]t]\[^uoUgZebcNpZRf_k[^_[Zb\XkS\]rX]XgqSbd`ZXoEvck_VbZ^Ta^rkqb{[trn_riZrqhjbrNOhe`fL_[n[oYg}h\bp]`Syl^dwFoKT_abj]qaoo`n]sRujGgacg`YXb}wxtI]fil`}gjUhMpmv]llJymkzfcw_]\s\leXjgdjsjzXu]dV}`^L`sW~rVepgc[zbkqhw^ipl[rdiYcqhn`tVeJ`]fg]bYtmefyHevkoV]kiSr}wrXdoifsXvdfjZSdevjWWg^`x[`h\^bbYvgPnscXlqT~cqlgVjuhYY]ecWsgn`pWPOUrVjTsXk^cVghydykYmWWpimrsU{aTglaciIU[Oc^ZwdheTnr`wlejkp]_fdb[ZXtTi\Rr`jh`inYhXWWYefe~[h_liaZpdpfgtY}lLob`a^[[c_xbsjWz\h`rpiP^W_eajg[Zpbp\hg[`vfltnR^tYNxof\pcCd]cczj\b|t]OpyvmtshVglLct^dq]g\f]fhcZ`Sdffgglg]WlfccndzR}oYZagqWqXfha_eh]Ti]sj`af~YceQeRdYXoQW{s_fcVobavutUUj^[h~dgxclxwfVeMh^dhPergXUZ[UY[Nfv`XcrZFidmbCvleivPRcmkCnlwkaSfydlnmu[jbfim``d`]`OixOTno`u]ak|frfUT^XcPdWnscVfkp_cXj_[dpoik`p~fvVa|pxhRi_kqXlU^pv^hmb`kb[ads^dfog`zzW^trbOlWv^m]b|pnvhnxs]s\jYictjrYr[Z]ojoeiYgobe^UhUomnbks[nZjZzWa^rxnis_r^sdJjhxnax\Qcp\W_snxifOWhYoTgg\btuwi_optWXpdgXc]\qlXfen}kbu`gnfK{dXdX|YzxfhsUe\b]ZYSjgpwlSin`QafocfosYa}~ZT\|bluoZVY|gaYknv}lVmm[\vjtr]gXc```nfebZcjmhwekfsqoxibkivcggFgXp`ZVkf[gvhKqkWjicsb[cmggfns^[gTekpdii^}fPlieU[fh]iwassnlWhaQqgVmjlMign_~xfedbcWfcw`UOvhTeJ|DjYaXc\bXeZar^cgfTGPm\j`xeXpr}bc[eTa}}Ux^YMbXj\vfU\MYNcWtV`b_iK|_]ueUmm^o`g{b\l`_c[oT~T]\VYxvie_\g^ZdXephXce`zVf_mqeTWrbVmPgpOxlbpja[jmZ`XFofglu_eLm^MsgSerx^Pr\[ci`mXO]ng[\WT\oTUkMXZabZ^cULVa~fKbg^^Jr]yuhljXL\db`jmZ][gpfkrU~hN}ZWgr[bPeONeO``cR~[WSpYsen~Tx_vDamoasjiQceE[`XdpSiJdXTakUWr}b`gdomaRgj]fSv{[bSQ\i]RyOww]ZuWi_[}Y[jlbmkYYs]OmToe]VjYb[l^~YkbTfXejerTkJffky[m_`_hW`YsqUvcqYnquiV|rda}SSjmc{Lmwvmv[RofhqhKYyXUb`ZeVSnaWZaq^pfdhU{r}WRKUH[LoMWqj]_tt_bqS\i_hfrtMhpU]LgKi^RbXf\_}X_sUhikiiMcU{ialqiejy^jrMORBzT[tdhYx`SMmUqN[arjs\^laYqhU]kbSXaydYVsUbbd_mcyZ|XccfKg^_gwrcUwc}_^Rr[]RuW[mfs\eklla|`YkkjXwgZsjjayo\{iiM^gmVt]digl\V]d~hhi]`uqi_hkajlt`phgcmswV\W`Ubiaj`fXonNZqaRfiq@c^j\\YuZSpxvkov_{cZ`Y[[d]_fvbZge~s\bggaln_e~]qfedbf_WobeVTTz^idfdb[\{V\icnQgauaj]yfejNaqlP[mRT[lVnU@jdhXlixfL~pecjukRhqndemnUUoxhpaUDcg_kUvs[rusbiycmfdkgRmrcsjnhiUb{m\ggZ_be_Vo|cryTkvpo[ZQ]]hNkuagfohs`a]`^qp`_pQ_tkUaYW[lmj\^fbZd_epf[^ajb]cfsoihzfcYztccgxmfdhgc@noomdxYMVafSl]k_urXiykf`_ciwh^ypvYj[fnjmf~RP\Mcsj\b}amfrdsvjmbUZcUkjVEm[mhZd`n^X[XUo\_`cYTmzjxbtpQrcbvb^wq\Pbs^bZSQpjhtc_bTuaglvzjlZhsq]e`gpn\laVwjWl^|~kUmnyXZLyqqpLaysSybjuh_x\Qgwa^KeJdb_hiW_sboZTHVfa_[Qd_cblg^p^eVr{Wf\cafh_qlVTS\fgsWugrgsuY[e\myknatgVbdgbTognkrvUfR^fl|[hf\aU][lbW_hh`W[phjMdkjPwqOda{qenQh`]gt`MnV`qZSb|]jnqppUa`lZ~[abkedO^arjaca^vO]`g`h\d_ige_jk`kRbcRhgbirp]vYzqcgY[jMaubV]advqPe\^p[kkuei`Gn]Yiyh\zZu^cgpm|oftbjuX^XfV[sYUq_bp`xblVFRgiZ^\T\SZpp`Zi\S_k^lt_{et`Owz\i~Ws\mQoeXM<_SNPgZlZcZaXhy\mhh\hmgh]Ydacc`[\tmbl`txsiSdT|rjbqunrJjlkj}[chbvZW^MZdeuxeltiXf^}a]d`a[|VYa_Wk[ae[i^^naatb_Th]k}ncXjk~knu___q^cie\kpzkm`b^n|tYockywS_`k`Vkd[zyVhnTlmuegjZiga^uh`jeZlfgthhlcgWarrWhj]a[vfz[nm_Y^TsalYoWfk`[ubZcgQ_cjUhiillc\hlcaedXxdVd[cdseU]adc^`tdZeombj]h\Qn_cic]fkWjZe}e|XifetnMiWfmYXbUbdnznYUYXzUqbvZdb`l`}]]^j\p][Y^h\ftfenha_]]dgWgqZZtiYgZ[fo^^Qjh^]|xIvc]`oqYZiJwgSnpSgb_Q]Zwb_q`fz`oQVgoc`Xffw]deubmmZga|}v`tiZb^oY`sa[ZYga~K]wRTqoaZbqnXsdwmi^ho\vjbw]iXblSRSph]ucludqfuM_^mcb[\Umndpn}l[^{^o[e`Zd]w\_MfTj\qQgMio]yN[T`v~d_[q_luqc\TspP]Wsp^jd_ldY[VT\VtaQOafxYxpu|tVLb_clQu^nb^_[n\lsOfqc}_mSLp]po_\uZ^TYS\Np_tNi\sVsYpGaWvzWMfWrr`n`l_[Ue{uTOXP{gdlk]kjwacRcjU`PelY`{IbU`bnYc_erqg^rMUlj]^YYhXacnnaf]n\`okh\lgfgnZmbnU^n^^k`zan}Ye_Pck\fSNzXhe^{e{]cgdhpXgl`XloeQeHziUqpOkp_`YnQbeS^S`_e]YdV^ZSl`d^sZNf_dLVerbv\lmbtwgk]ffdtnsabmmvW\cLT]mjk]Ogfkkk\`azrwzlbtcecbZTaX_bP[_l|zmLnZk~kScwcT_`ht^XR^a^Xdkzva^Tba^rwtYa}]Wi]hc\agkfbwudn]tjicYl`je_fVngY\gbhcam`i]`cp[VWYmXnQ[{zh_hl_}T_Nlkfs5_{hpto[^dXb^Wl\^Ufspl\d_sa|jahLribN]tIm^}xa`[Y|O\Oo_Wt]MYkecPpluY_bijdmnpmXft]hWxi_s_ZV`g`RmavjulXf[iRpaM]TeaUgSjXiTe_=tc`po\sc[XyRioP`rdmvpbUh`ohqSaf]Ta_p\hpiI`Nj_ca_npmk^_lnjqdgPpfQZ`ol\e}Sbc]JiSjKVtecwxHZr{]Qfp[wTV|rdVoanG_~WORvT\NlcZXnqfzYePwZgPpjem]uhU`WfZIlb]]knneo_tl`[XWeRa~OZu_`lacRgL[Yc[UtfqNj\jz_G\xtVegmeikkhbfgc`\gd^XnfK]a\ocr`Xq]tWhnj_fSlY\^ocouYXmx`YYVzbWdSbVakSS~cgyhuQr\Xjdk[[WNvtmjPfgYcaURS^xciWcvbekcg\VqVTHmwru`Qbanelrx\tW`Boc[R|JfKUWqd]ftcvXgeWoUjnv`^nd]hkfw\Riqriaz`YQ\RecqpcJVnKj]sYxpZ\CZjhp[OmlU_bevd`kngt_ouziZasag[vY[r`hjRfnj^ahm^`ntU^r|ce]yfRYWbdnhc[tsUH_hXccg~_qSnU^xilWh_e{h^nKvkTrQYg[vaP^c^k\}j\VjVYs^]W[Wy\_LPYZjZejeYN|mWiivoeOOadofjPSht[Qnk^l^injZoig`k]FUx^Xz`steiochip[cWrdZmLhZYYjSwhbgpd}dofo[vdcqbGakX]`foffZppf`Xj}ea]|jesxHhmLVbpfnq\_hedgd[dYQ{le_j^{k]gxjrnmx\tS^kZ]gghZVuq]cg~Tb`LOKjzy[_cbv`vn_kemcSUh]lk\p]efU]|?whppoW[klcgucZ\c]nuv\ndz\sTahmhb^chkQTydIl_gW`wcanTciqjiaV[kal_^KgLah{q]hjjhqmg[ZHoXwZ`djeU\kcV]\ji_fTdr`xXX_VoTa{biYkciXQKONKn_e[[eZQsj{doeTedEZ^sPXah_Z_V`iizbPlN`_ilXsc_dkbKeoXi[YddnZQVchn]baY`hhfdMcNZ\a^\i[cV\d}ZZk`A_iVTqdUkou\bZhebNia\WhY`aWxqV`Tmr[`T[h]h][i[sgi]y`ddiilu`xhcr^kd\fpbmX]md`SVYrg|Y]ax`Vah]U[ies`cn`wd`^Zn[_vgf^aducZbYh_fQ\xnXifKv_[jfzbfmdtkP[hphf\XivcQ}`gftqyuUci]gbnvjb\kqevmnS{bqkb|YllaS`z_crYpE`cPuqf^aeilRkfhpgiqkS[a`cOwbkfcclklUWiLng^W`h^Y`l_]sw{VZUp]r}evjdsdvhRgjeRst`tXYb\ZitbVWm\T_fT|uImhTbomddRu[YeJjrihou|tnf[fgkccZVZumpfqrcefOMlQYal`idkVpkggjlpbMklmv_cjohZg^hh\zzt~e__hcolU][abosq_nlShjvs~Nhup_arZY\Yshkqarwtxc`nikXdkSohfaeYhhebvjovbmsUvu`nKbklgooc^]JsfTwodgf^g][^pee_N[nbW}[Q]aUqNbNpuiu]tci_we]nSbesi[OZbzehu`\el{hhdmp^cnzzjiMWsef}X\wbVfZ\VK[cvt^_fdccog[mewofsg_joxbX]cwSqXube[sm|spfblsZkYaxc_loS[]hn^shasfnoldOXPoc]l[xxkrzhNjdpvc`e]uxiTo^lO]]n_`M`rXcbmu{hK_WxQS`}qed~p`fdjx]iiwf[fovfebobhab\_]OTUuxh_UQqggqiput_UlXtWfeNg^gVhjf^in]epFhYb]M|dbY^gemhdl`lstufQz^\hYcMe_Nb{dZg^Wci`P^v]cZgkbaPuUm`xqysZfPkdhhkrsgdV^ihaig`f_USPvpw\YhTTU\Qk]\grl_dR``VT`ueWa]fgalWiabc^fWrYXWViei^_jaHZRU]S]mR\kM\NrxHegX`fe[iUs]a~pZb_eS`zksXirSUZxaR]xfo`_gc``nZcgrhRrg_k^qIUV|`ik\XnK[anpnebWPNddap_\kgS^znpeqh]u[saKZNdhjfbS3qlTsefWgS_age[^dQqusbm`qxkg_]gmfl^\[Scnot]hkhkxff|YiSfXwfeSnTxifhoRMba`QpuOddlZFc\XapLhXnWsZj[k_joUdjsbjvo\[giN]qqb\WskaVPcdsmlWdkmo[tWfVMakYpZ^^V|`asRliccXcco@qiUfh~ZWhhd_]ZYdkk`Xg\YYcPKUI[Ugjaiab\`YhFngY_G{y\a`s\R[_S`f\oUUfnq\a^T]]iUaiGpYP]\mamb\^vi_uc`gj^jYIk_Z`okhl[evdYb_msog}I`Zibo]vmP}]bcYWTal]dSNc]GjZqi`XeWZ`hf^bdfkP[i\lc\hl\dsp[hxb`namRjXc`j{mw\bZPwP^abfkWTZ`joMscclyeUr]QQeKgvmbqmu[fUjUegyrce_hcYwalcYX^udrXDb~[i[^^`^h_Xl\ZFqvlOgWghxie|dngpsxkdgb|Zd]n_pznm_UhjkGX{lspdsjgXWsdRbHw[zev|q[nSaxtn\olbrVd\vW\hsgvYdkt~UgV_e]Li`pnV`jZi|m[rp{Yc^tlid]]j_ZcQkzRMn\W\\\s`|MJt^Xj`_nk`rslj[]btW}bkuOan`^]ySerr_d[RctZKiXl_qgWxS[ki|ZbczagdzVkdfc|gWpVfcPh[grMjnp]a^MKgJe\\aTe9j{dadj_XQVemdbNMs_q]SmhdhhYXOea}hjc_nvUegj`rfi\\~oOXzVdN^rq\g{?^Id_ZT`L[R\iytdYka_nt]ofgLfjWpKvZKQnomPi_TcZ~prmjYgkdPUuaYWd^lm\\msS[\]RkcigojPYa`RXLkih`VL`fmie]PRSZvxei\dfY}SmTes_XWYUWZOdWfRkqeXTSYsuPPGYujZWj][W}|_|mShfvW`ihfzQblxa[ZeZ[f\jXehKidfi]T\_Tf~keX]PQZy[fcu[UWsQlm{bhU[VYYMnFbSqrOsS^^m_OaXjiebZXp_bnsfeongVpc__mfhoh[mkShfiak[YhS_prW[_vjacZsykhQZ~adURZ^g`q}Uyc[nRteZ{aUcdefrcpieZhfNqdrjYiufpfh_~nbVJoag`[jSk]mhsdp\SqQojaZXc_YvLuUlkg\_bUXp\aVazo[w^Oof{e\OiRcaPVcIccWk0cRoclqefkrs\[]Vn\hUbTbYgsefxOfUct_TtfMcZng]Xna`bb{YPZkb{ajodkbyskgTg_ZX^`ghn}[v[i]yoWcgvYP\_ln_ubX\j]gy\qeQdn`WcIZ^kLUn`_VSa^fj{U]ienPUSbecqloc\[_jjigoa{^k\p`aiid_lka}a_u{\`mvWh`q{reqb`ndOia]rqj`{[[^ned[SwgY\hukJdv`L`k\acWZS`OsZ^[`TJdfov_hnftfwjbrTufh\mqie`b_f_aXHduDshOafcbm|vqqtaW`hV\dpddcmad[oeolnHxcVTgdVvbaifbOgjqf_^bd`__RccRpkqv`zPY`rnn}c[bk`nceam_\uYZ_]Yitt_nnwxdalkqrWwhzlilykpadkenecdlh`wgi|`\ZtXcaf_sZRwXYZ^via]v_cvmar~gds^Xj_Y]pgk}im|\_dd^UtqbYU`dclxHUd\lPOkhXcR\mnsdI~dphP^PtmZ`rr_Z`hTvX\k~v\Wdiq\y^spnp_ehPfdchxxht_]rszUYYPcnZTkzrcgkjainziif]a~Qbj[pNjlaRnsib^Z_{oNxpbuWte]gwgbL]Pqss|YbqTkldWdb]Itnqddne\hsjN]hUmoo\sglJi^`eo~rli}ObkYQoVcc[o]oncWW`hwrYlh[z{fdhY__;jpy\]|vcYnUkjklcaZ`hzsZoY`cooeYSCipud[O}pPiH:Yb}f`8rmay^^Sju[Y`g?grFgHnqc}VWQScVRcud\^y`xxYbd]Ucv\op`dWecg]jGNRhUTkYQc^eOqfYpm\hrfOVJeab]Xkp`aYpdlgc^PbQf_IpbZLLlQ\\Z]_mggXbjja[nRgdu^eZwh^aRlcCo^Se\XwIXZ_cXgheJ`|Pds[pL_bfjejdMXSf[_ubwYp]fq_KoO`abm`ddj^gQ`uDcyMycfutcTNioW\onr^VDTUe]^cmIvX`QhTa_^TcoUjhh`ZWrqXXbrdiNevJWffiecpuUfU`K[rI^T|[WblUjRixc_Y_lNMhkU]fccplbf^UXe^Z]grwvXgIsVm}tnma[bt\toT\Jd^kc^dRvnycwglqqka}by|Zar|`f~hiu[gp_whXawb\iXgVD]WbtbxohSqnabcZhfihdzo_me`rmZnYq^Kjs[oqhkbRZbWab``q_raPzf\uZigmqnpeUea`ds_WRXnp_ri`sg]VdZZfl[k[fqc[^ecVPw_wokaigq_[sonXiaoRcT\][}g`oibaSWkzaho^X[ui}VwJngamaX]blaPghUaYtkXgZPkZLXp`bnga_vmde[_}XgXamenh\ny\e[j\itUkTc`YlajqTZjb`[gXh`|TwqNucfbfhVdMiPammskGnsRT\c[]kbp}cXl\Z|ho]cM_spRXelsr^_a]\mygWfivp`kmw`deQZmTbPd\YLk{mdWhTbe`ZidgxP[eP`ZsPR]SYdfxWZx[puzNaegf|ft_OFNhm\{dp^gh`jfb`aYYYdfkRWG^ylIW__Tvb]}\ndh^kvofqgfwjy`Z_flqvVfhfeeMbqfezmWJbS]xsVt[aQRlqbe]Kbe[aiex[VnriecNVZXpsQ_]Sok^oV^W]ql}nZdaam^Ye[kr^G~fismEu_XXaZ_Wyee_rjxm9faTqkk`dhcVfjigudhfdhrQygZVqjqcdsqwsby{\|@gdRleqitmb`aSVErZRuMod`{ifc[_^Zv{qZjXVXWYNYW_vi^UtZldJWEavQeVb[Djh_UOjX]YvStRqUV`aj`bWTmNva]dpi^~l[Y[ghe}T]QkZ^WYq`ulhfodbwQ{TWQVbOBraVjhj\c:]_dPciqeujqaoojhbYiogEeXdb[qms[H^ngPvg_zpbwibqWjqRefeaM_hSQViT^oggjkh_or\^okZoO]npica{bbk\goal\|_XfqlcUYmq_\fpTicWgfq`qaVgU_lpY[_d[rZlisbbYYcorbypvV^jVhLp\z[Zvo]ajpsmsjmhhxdccqht\qkUlmbkpN`x`T`enyZg]rojd}]UQZQ~recq\THkir}NXYvxYdn^tbpRYd\kye\dzrrqVr{l[ceKTe[b^Yp^kbM`tPuOqWsihsgS]^bvoVt\cta]ibqfOTWYf[Gjsiditvni{vknf`qhRcj_vl{j^^py}cWm\g`d\n`[ko\orag\qkh]Z{zhH]pjYdhdpjd|koYxgdav[{]Yflpit_`~vPnk^s|qdd]qTrylS``dRptj]chkhYex[ooZNnj_kaonp\bWglqY`mZmYyppZnfYxoastotodbBlbbhlvXZUxbk{\WY\rlkf]{J^o}c_[bawzv]oRjyejihuWe>eYijlUfJc\Y[`w{u[^adplKn[Y^bdimaj^kk`^Ufm^vbk\tlVkc^fiMxeYkiiifZThlumhjf\dcj`_txsxUEl`cvNighOu|]fLdjhzT[h_Z^aia]btytl^p_cdKtbch\mof[cgV`{c[WV[`oe^}`budZiliUenkpdgcrTd_ymi]aab_]^p\icueedjcyauzt]uoi{midZmf^T]dPj|VjqXog`njfcg][]~y_cmb[^eOoY`mhaiWdccoYrpq[h^Mauiwcqw]VVTIWlcfdj]{ye\eTj\[YlUu^TZ]Vchkd]fdbnfiydgYWh}_X\gZX\uqxbhka[bjiovScdW_ftscIa{qmSfWm][n{]n]^qurWpis[ppkjhjtdh]TpnY`}8vlwexhh^jSli_kbThs`^pb@dxbgbamYgtOjnj^Xbtc[md[vcVqWvbnOdhZzUlem[bphPfljtiLtnjinh`Nh}WaYe}RpcZgq^QobfX^oE[xiUwXfchbGIbwaoarfnf_@{ISaVeYVpZn^gkZqZ^wb\cUbhrlvm~ghlozWl`db\Ryi^RlepubxgXidtZd^X]Yl]nlXMYljdf~qe[Obe_m_p]Yahctq|^Uje_oyUdieTqhgge|X_go`QZZalFiqSWhseW\Y`bdcisXf]ab^eOnxonZX]Q[W[eccztdmYjPQdlbReAvd\npngarWhmjVaHb_ebnZncZafeabke_fVmjdbTmVbtY_^jm]dX_[dTtuWrk_fdfcaj{UzimXWUY]mto^X`U~xTbhZvyg`je[VXvcR\ZU~[VZbYkN{aCh]gerW^bV\ik`VZtip[anoXWXf[fV}UgalhnqRhzkflt@x]vZkzcq`]lbV}lgh_|Ze_TKRZySszfqociOkhclgo^eSYaho^lzbP`bYra{l{VgmkUhm_hZbQ_gqz^eUlYKlxGX[baMR]cTnme[`d[mXenpN]`cN`Wjt\nUhrflWvRmjRXkPi]j`He{edcW`Qf_Z_^c}bciWoZQZ^iZrlWi]cciS]oP`\C__PdYRbh^^OVYcbR^ZZ{kgdfgO]]rN9YV\yh\jWkK``jRqW`xd^T_WRTHsaxQ[MeZ^pcTa`RSOntcQYmTzngZv[qWCYW^r]O;\VYjmh\VZbvkgqfwUldNXczf]qSdYgerxrOfc[gd`kfYWcj]TU{\gP`dqnu^epy]tjYgl^||_Vfe]fd|yxlWzjS[k\mSebXbcsaVVc`K`ejbtd^iedoKYkobQndmdfoK^nZicWn__a}^s_nn[UvS]EX^`ebmVlh]hieqdX^_c`YefxXgPcl`ObUmc[eZ{tOd_|^w\ZVeq]vIg]pghDmtjM\jroa`kndqdlQzbiSii`icm[oNhekflpkseqgk]irejbwOdigqf}Yb}U_b[I_[UgiWdgvIkt^^pLm`zUiWgX`d^kkXacVvizhh]ZVfv{dfdhc\a_klinguVn]omqnyXK~go\o[e~`ksheSo^]ielmdU]OxmiRV\\flbv[b|_gZzQfUNYymcMf^^`i{dbtZpsjgpVxlk``cfZZnrlix^b`_edapcgo~zYjetssb`p\UP\]Wbccx]jMlljjrXX^iP]dUbUq`^d^Vwojyqhqimpjlhkbmb{NnhbZriXZWgcqgm{ioMQjikWa`qrisjo]_fiTejMcaavwP_rg\ev\k\pb^_ko{IVQwgbaWjlamRfaFqgnziYsaXrbccZQXZn\Z\f[`_fi(bkKXW`ekc`_]fa{tmUTl[cI[~Ym]\RKei_WfXd]\YZqaaSNgpet_{m\oQ^\[WjZ]byL[bo`yvij^ehWD~\dX^bucfmaXfNXmUrgaOZS`mbNIcgnicW_Mtg[h\[[hsffa]l[n`[Q`bbI|SiY\Sfay^sc\]ZUde{eUao`\gZVaS][]j`UheVkyWUTLRHhnQQu\_c^at^p]iMRjmQiRZGZ]tMWUW}fXjm]Z_gbiv\imbCVcQuiWfU;VXUp^UjfbWV\\hSe\cZUaoPZemcd\[d]Xp^d[jysjK_qMymnO_[{_RuPtWcK\MWgWsgl]egnZmgUcZadpym[iw`]\rW{cud]riL^ge_`sUUYf]qQz^_gufUgmg\`XY}^kmXGipdefOYdf^`gb]QY{Uh[Ibh[[e\]NsYhnJxmerZTec_RVNm`bX`nXi`yiTkcmQbgfl_zf^HZpda]e{WgHkm^fajihW`ecMokTZHgeqd_jma[npEThdg]uLRvsfLdgUpp^pwgFdhigwYgUbb\j`yvnkpnjeSsllt_mlv`{`neX\vfq[sZhTfm[T\gQol|\cdc[gRuYJ\U^guSidaYnlunfif^iisfevbd_ij^\hqkp_mha[h`clmW`ga\TcYN[kcWfnxmb\cVq\s`VgQW]tcrjnlwsuZkSTucmmfiXs^mOzY[~bbqbb^Yp_kwe\hicL\c^lp^_~m\ohnn\c]h\qlngXx[rudTl\dc`]cayiweo]ygset\ye{[en{gdi^_efwgZb\}hzUvpbQV\igy_Wcokxconlhglefffuuiffgkl_dl`XYn_^m`\qWdWukfkc_}me_tYWPjfjWbtWYqWT`z{Ys_sc^ZL_Rcspflce|]\]w~cTWofQ]pUgxqgX`mk[[\Wdpf^^wikatUpdpX_e[vgS_dvb\ai^Rej^_P[\S^M`^jjs_`j`MCZ``TrogU]bdciusNbnnn~O[\rU_p]mhiXeKj}cQyf]ZS\mUjXoL]U^h}fO{b]b\mWcu~]Yi\[wg^sUl\yebthiL`ezdl\dqnZWVxdodhfajjsiq{YS{]ifdcbb^i[ffa^UvThqpheZ_PftXJZsjgdfosftrboUcljcjv_\Sg_Y|S\]VMgV`^tYYafmfx[gVaZ_bafb]sQqcS]_glVcrofXQ\qsupX`VVSTvbbrrlbe^y]Uu[Q`d|]f_eiVrUgYU_fmlTXGi[^nThl\]drrxe`aTjOcflmXhxke|fbgRjoTkWmVfgi_O^VY]alhiZThdb\dj~p|sXY[m\a\l]iHhifch_Z\pmaZb^i^oXiZy\dajibqjy_fe{mpciQpcQhibWzUoVtq\d`enMe}Xhries`\dd`i|Q^gf|boi}f_usscaiXLcbrNggkhtejdfvvaeilmIvhcO^pYemvmpgc}afWXhinx[hZRT^W[_rwb_U]]p~chtZj`pd[N`qgqgi_idbibti]VMY^_ew`[vj]TT]]v_ajjnVcbwhaZkshfiehf`_l_bOPaoKpgk|st[Qnfbv`e^alXWYNXlUfuzko[bbroV\`fkWjojWlvd`kqs_uNfjV_]vLcjxg[Zig^Tmdv^U}eSbn^chSPjngp\Te[l]nj]{pX[[bTV`ltrJcjs]im[L]diwgkf^onzanmuuu]goYcVb_Z^gfgqUjn_WtpgeRbh^gppxbpSfmjaOx\auVbggqjbcc^xgm}wcjfeOeTeTh\^igXg[Um_YauVYdfg]l`paZgX_ji~]__vblimVb]cNhYhre``Zk]eL_cScwU[{rnugdkbcscnkZ`]ovrRvvjhTlubdk`o^mhYdwv^X`cieN_rqbtuXYdi\iXdi|gehpseZXXP[epxqmdnsclfaYlq\bntdkyflzYx]^dWvxc`jocjR[XWdGnI^la]kbhiM|giha_dlihj[SszUiQ]m\ha~gKrexvW`ipYs`q_f_cpdc_oclkQkjTfXR`sz[`nZSSPpXVlehb[hEa~{ilcz_qwe]Xcj\^^keibe^bYdonc`j{NuWahXctrl~V`y_]fvmlXm`Tp`dfVaY\o\\wT\N\ihZUzjvU[[ZSvfdaP]i{kcPPrWlQdKm_i||gW_{dMdb`bdVfg^OZTmhn^]GiFWkrn\wfnUs\_aVb`nc`azrb`ndhhfnZK[^mwfyoYc`jleLrXf_e_q]_caaewml[UUq__]]kkp]`_cI~TIzt[^^cp[X\k_odbjmSUc|llex_mfW^TfNZO~foxeib[U]hgUU^jnhPh{Kl\dgmM]^d~ejYn_Sky_fq^Ylqu``eIm]UhlWOhpcUc\>^Ncrh\cYw_OUiX|RcijfaX|TBXa]buOqVaIbSl_WlOgThSq_aRcUySULhgiafEoYuda[jb`Z`dqzVc`tx`eirltdhkEngjtPySzObj^`u[vY_dl`aYeor[}ksjfP^tsYqk|kdgD[`yWRTfvVw^aa}iscXUgqZubUXlo]jp\jNkjep]shiQXxgwJbSnfYUUSV]UrmdmYJr]VSnLoxg_\dg_UZecZp]zncczdiQZrj_]gtjagzc`^cYcX\qVi`_r]iTUpiXW_ZEdu`]~_[dZTSgoQLi^tRcNXV`fejfmokjiz]\]VZZVZkkfRorTLjMf]R_igQdlcQ^_kmxrkIan|HSldYpGlQ{gpF\qhv_zYnebgQVceb_rXQnS~bulK}^iX^rnge[sjh`oeffsW[W^WgT|bKh|qgc\UXkQg_ncbd~QMaAqa_TtngYaWNotsebVkvv_viUtcQNYxfq_bgIQMbjgP\eq^_k_^YZn~tgmskt[`qeMV^prmP|}gSkxSm`d[McmiaWYhZsZk{aObXNmhzuq\UbgZdswXa`hm|y_c]wVemoefb[[xTInZn]~daV^ft^d]JR^feJ^Y_[ienfUFfsYqe\k}PW\]]bSkiohwWyyVYkdphUTzdcfUQY]Qgvo_htJo_hY_YEcr[l[debqleaZTkMjf}dTemSuQi[TnZniWllwp]`lqjUgaeS{urcZ\edWlT[[_arboinbZcg\oacxdXnaba_]ebM|VqgTYKggaYk]bZe]vjnZcxcV`]`wYe^wM`k_nS]hdllheY\h[xSqf\r\vUn]bmUbskiobbW_VjiZwnke_m][qhzixj^_cZlQlJnetog[pe`TtV\_k\TObs~_ge_ikkiXcMoshdUTRombmjUbgr`oOwh\xp[aZTP`Lb[o[m^bU}\lnSWmyerjC^qoZfl\keTdf`\eQ[xfp[JbgUp_heujh[f_fXjXTdVisbvWO`aiSLQqg^gkshQePe`ksKv[aJi]niWPeQV_X{hSNh}bflHd`j_{|nJnZsP_b[_hpXZuthZd[XeccGV]^ti[geL_a`ZacddwI^eug^oFnOgejibRkfQevyVdk\Thkjc]^PlYe^cor_k_[siacifcVsed[Zd{`Rpwgdk`VfSayPMTRirfp~[fbTcsvaud`{cgu^Zb}Wbj~Ok`XwnKPp`OaeqbT_YxZMOq]WRf]\n[;d|ttqRq`f|lddkqqXoZQvlkV]iXVavkqYftht`jfwu2bZfkpmb_QZlVYktivbXg~e{dsXylI^_`W^m`acfqYccLR}mMWHjfRRnjoZHJeVivoZ\auq}}~dxX\]bXcciNXTqgFlca[a_Rjwspl`qg{Lrza}aZ@pkef[h\rnWb|TUVbhPO>`YvUlrmsnl\slYQEaj\WI_UjSxedeUQnkjx{oQXUNi~Smqy_ceJV`{_[N|KLQVpXse_SdwcbvtkoleuY}wYtykS_x_RbIl[YO_pghi|IOaq{KfNVkYZXeanfdROdfe\SMkbWPdxbajZogvMLcSnNjn^oqngZUcYYf^bGDVQ\M]g|c`G[e[odhStYUob]^}hfclYaXxiauPVRDfud]pcUXW{\]`_[_YezYkkrLdpa`ZchnPcH^y=waK^WXq`rZ]emUmb{j_i`]zfQgSWkzqSreGZdcing>_UhPYTUP_TciaeeklWnfhvw|{YOhZjfTaQ]fc]mqcXuW^dQlipYm\PvZT`dFl{^Rpj^olkY^mW]pfZ[uagZVMdPYbbrcn~]nYi`^cg^fpilo_hn^\eZhZeoZT[kXhlfY\`QYVgg_seTPcqhfbZXhYbq`]^R^MP`oTTa\lacSQbcUi]jfhbVLfoe_iSbYfcOYQn]`\]RRkgpvtxL[n^TnSjrdTgS\]^|ueff\~Ychj`fY[Tjjf^KcHtViWccnbLbGgbYb}tiQaZT\`_LflV`gLq[bYh`P\adNaej^cXjAs~Z\hNZklrfz^b`ZWW}_owl`\oqh\hbpYjfu`rqaggfmel^|gljkb\eWfrdumoT|laVb]pdc[w}mruZrdblht`ziYct~a\_`imhecdZ^XTyNnr[gWdc]j_Qnkrhlhk_dmeatje}\mvQYVrxa`ni[\nZda}dios^]XXdqlZVVXSelr^^gsGe}\cbO\dqSdifYtsQ_cjobmT]`dkzck}XdUcLO\ger`]hUhf]ezXZpVhpka~e^walZ[siVbppeSdlkdun_ze``l^{yZbjlWah}ilYtgXbo]rdf_Sv\o[VYl{kmehpX^gTou_ZjlRnjplyYg\zT\gxq^cXj`j]fRbl}_\b_sc[cRs^if^iWUu^lq[^d`\a`ubSbZo\akWa{]t``mealnfd}`zz\Z{\q^SacZWSg^Me|[ejVh[]\YrsfXf_Y^bQplec^iiQ`aRQirwnco\i~Xhe`fbWxdblXb[Y___djgWnrspbi]tlZYaebI|Xpssm`iSjgr`a^`aqjtcXtga]njuL[bifUYgpl``[f[q~\W\bUf\uqjnd\cbfdzTm]\N\_ucMW`|abeoapXqfY\lvpqxSdcdjZc^afXdifiZdmUgqjXet[tMbcjYY\l[oeY_dV^[liTy^]^XYwT[ReJgx_\yr]lmF\NzJcn\XtndH]Zmm]ti`bX^Qj?STWdMden`sg\sLPc[ohcY^O[`d]PW6wf_`]YxjvbdaloiA{hPS_aeabgmi{N^jtukW;Z_t[eGcVnlZlhohv\VUJZiblUYMUW@TbknHd`ZkRXEoT^anbmqOXe`r~``{}bdjkaP`PdoVSa}h[Nd~gclnQwfUqhcUWWZ[gommabllVv`qerVTdU\evWPX\dW`dgepq_[Tpgok]WA`\dXXTAZcMn`H\rujnpeUnboxw[UONbY]rjUaOZfzrk[_nS_Wcaj_a^ic]dn]~Web`dORoUovzZk[arWdm`fkSiru\opXjo[^WmTdUrm]iYn_tMprhasfuaoTyV``[xaWp`jkxZg]kdkMgtOcRbhiXjgQxaOf]gc\\aUaskSuZ]bgpg^raraZ]jlV_pig^ichoo`yTpex_gY~k_hffV[bTgdSUdWnqoiaWt{kZira\hr\bgkwe_p[ql^WUdp^sqebnrogl{[nj^XYdud_^j_Ucech`uvamiY__oTYde]bk`WkkvtkfVUlgP`pUhdgh|tR`lZoe^gmsxzagwg[qn`c\sWkkkd\L{ogfvul_rhfdaosdbkdhXgfRsbfYrokkacvlk\d^h}iXg^wibiceagw]fRa}dc\uo]\lj[hnnbmwlmdjsli[qcVcrjfYi`VZfv_[dewb[`hpo{agk_]rb`r[dcaeljghef`]nd`jcqmlmm_cx^^c]x^aobejZhN`nfdax`keigWnTd`asmw[gc_lmkdcxuombXhU_YY{`\WXcZdb^[[wb_e_w[lSWiW|um\jvai_pyjhi`jYp{iYTek\wXlZfnhgdXoZ[gmgnafkoqfdnqcYts[Zdjqc`U|lh[ank`_iThgZ`ne]eiYTePge]gWbYT^qh`leachnteb`\k}S]nafyalhgHjwlh_bYhrkZyk_iZcqRstgZqlmZceblq^j[pysdbmnezr`Z~TiXbpf_l\x^[\yeden_oklbefWg`s^hckUtc]ZldZciSmrgaUTnZ_nc^_fufpU{eiqetscbgaehgj\cejrpg|W{pc^^kb]R[b\U^qg~i`\kKgebK}jxpai[UaX^Uc[[_dq`|fdwdcpqmYtbbSjx\foa_oTgS~kxnbkniobceec_e\gidikZvVnUwehsecmbrR{kwmWphc`Wo`chvfhY}`ccsj~m|p\Ugylh\]u_Uf`x[_eabTlokTriwadmjnil[[eefr\_ibUbdqhfwhi^cexie_Withf[gskxvpu`a_Nd}o[dmpeZoYMT`Zcc][^jriiv\cclp{Yp_rbrnhhscrjbc^a]gY[xgdfVmbcqg]^dl|[cmtc\k_fwchiqqZmSZijum\]aoYsk\lhhawhXakpqib\p^te]ognkhoaVPigXelpd\Ydc_ps\TdRar``ij{PtggfWeYptsju\Xnvfic^oTshmvoowm}VrfciTuZkdXihxfci]^jhhfq`S|d_hngVZasqhgfdn]q[mnb^Ybdske}fWiTKVQeagpdsvibtqghfSgnnxMehbnk\uxqupua`td[k}Nbnop[urinwy]ma`_mma_ldn_odfqXkaYkdgl]c[mc`]mtr`ujTiqWY~iUhO\amWfgffcShfj^ko\aj}^Oe^_^BeZXcdXffUhXwrZc^pclodarXcfij[xdZXS^`lXh[nd|}hWZqhcf~kdYl|_hhe^[Rhhbaifgk\`hj]gfcihQo^jm_sJtf_bl`uXWbg`buyfbdf{cvp]aX`bmb\`ebcnS`^]ip\e^n_du\epTwUvbYYkjvcjn]noec]Yujmb^ckxY^Z^YqYYp_en`b_qUchTrqa`[sdevlfv{rzmaWecubkkqh~gk\\s_Sa]aXejw[`pgZoufcsaOco[oitL`Tc]tkjQfsZ`f|ce]bdd`mcgYdl\e}Sktlbdi__\wjpdNhhy\]_leah`pZr_knh_bPnfe``uhnhfk\gfbkkw]kf}mtn`uea^gkQfcdZ[zg]ej\\baiXXsYplZWMefjWem`nbqn_}gZefoZ_uoea_jn^MnUy[mb^djYuiagSn^viY^okgmninnvvgqanaYs]ucgtdhXs]gWZUlNf}WbiRWs^zQggu\gRmfeyuh\Se\nng]mx[ccdgpvl^[mgl[hcbUhiamZ|ZY`\^rPvto`bf\gX{D^w~fo`jftkcjf\oTVbwjZtXcck{r^fb^`\d^`wbmLqZ`urXehn`nvhXJnad~s]ui_Sqbagcgl\cnm]_an]qccfk^\enlehkXXlrgb_bfviX_YcfcT|sTy\Xvuaptcxfibztw|mqmZhh[yebeeVbTdSi^Xt^kjg`tvufp_fmki^wnYsh`]ok\cdstpTthfdfenZehiqhonl[kmmnokllUja^XpkiwQ_ua^zbtuRjb~dkpuf[rVuipQagV`W^b{qrtbxWLOcbmde[luzmkrbu|[j`wqc{Vfm\ck{Wmv`dXse`f][gTcTlWhS^bUpiklhboZNs_f[U`dhm\lr_V]ojSh__o]gqh\tmeeksubaYZc]ngnwgve^plppZVd`[fH]]n]P\f^^VR\Wdk[o[Wkdh_LcThx_Ic`\ecnYh^VVbyX_h`k[\cOfyYbb\`lfld[dh]_npaXWnd^qVu~WUgZ\li\aWugiodau`vg_PpiZg^^~i^Xgjs[lTNx_N|kftWVwb_[X_cZNbllO`pk_nef\iQum]gbmk]zo[qi_gfahnf\cWWgticiUd^nggeVdie]dmian_e`koprf]c^c^e`iT]bn]^`hiedrboUl]`i[mibpqcd^halnYi`goZq`\UofeY\iPot~kemg_lcyqdtiujb`q`imphLalyag\bfdkqfkYheqqurbl\^wrsw_ki[hnu_ljbsUkcfdk\Sj\d^eTljeabq{Rig^udq_[qi\ge`ng}}cbnlc^dgs_eccbbTcgd_fmefj_YvoigkaspnwMlhrVohvegn_efuucfl]go_ncwdacpmjgnjm]hgV\hlqcuYhqt_\]_fj`Wtz^rec_WYawba]lxZjbSb[irgew]Mih_[U_cis\wlud{jJfOkMd^ku^XzVj_kdb]enbpXbTSef[hde^]dqqehmxjjbxoYigbw]n^PgsnSjYtoiR^QiZcd]s__\WaWT[w|RifV`^Q`cgd^asqSws^seWa^IfUgzhgn][yRg]]kUgbawhfXquz^Vcj\[]qhjuU^XbXiTsRgp\qMbrv\lUUoh\Nmnjs\qmdelflW_czg]r^ht`]fafiRmY]GRcn_dXdYYgall\wrQqSb^dud{l\vo\]u_`SduW_[YbbsWoigV\boZ\jbigo^kX\g]fTbcRl@wYcreh^efg`oU^_Itg|YVY`YgbogutNdppfWphjJo`biej[\amZkz^biftn]~WW_TS{_bg]lgx`ecZ\j\Ja}hz]Ycin_]qae[aySitHl]pZ_cp]^\vx^gOduX_igXrd`TVgZiXYbgbVbrXb`ib^lhjTUaZ_UroRgkp]djbjaYrZZghK_Zbar^xjmk[]YolhTd][kezSRX\gOg`ts~gT`[Wsf[[bdWoZvcqjVkaiXoUlrw|iLomMieegjdmvqlcZaX\W\Qk\pwc;nkdsxfrhtcWmdlXf^VShjowg\U\qt[YfKdn_]}ZXhnolvgfc`nlvRthUoqn`gfqfcn{bagc^fcueYrhi^utbjsjhm^iylts[`Yy[[`g^gZ^mYg^g]kmk_UgncZpcNs_[mmc`aToTZbj|leKi_R`mddieqZZp|vZkn{mnns]^nbc_p_[^ocopKb|mwviZsrW`r]jbQ\RslafdcTdvpQ`nl]XbisqioY`~s~p^~zmncoRmb_m]RXZ`clStU`[bhbtscdnjyklwmGvhu}Rwc_fbb]pWfcoZ`qfkuenq[^sflrngfy_ldmbmY[ho|[rciYkVsOmg^kg]U`myRbkejhlZT}wWvrZrnqp]`^_eofeZ[v]_]kl~[bcjeZYcg_b_nmiiade{ebe}r`vdmgladcYxg^rP^nrVmgae_j|ga^ad]vd]ofdW^_hkmjTN^Y_hoi\g~aSzo`keV]etfVfhd\f`lejil^biseg`}rTr\]lTkb]X~[ma^U{hlecvj\i}bY[groordcazldPk[Y_hozYUf~]_pe`i\ihs^``wddie]ii^qgzsrw]jeimnruubjZNvhkiPYg~i\dqs`hZaX_pedghd[`rmndV`_ij[Qt]`Rga`cehv`d][jsNaksgn_Wt[T_rtWjV^^ql]tlfoV[oolYNgUYpp\U]^gubYRmnwg`odh]PKrZbtr_phojyZN`ec^mUjiXdZ_ZaZnwuxZodU}lhoxfqit[^gzbbeiIdkcm_^fhVagRa[m[fvhY`Nz_arj^zjhni\fMWa[bsjchpirh[\az`rynk[biRpQZscliNmmceUOkua~jebz^UeZvtcRpl~^jmh^`dXRVzohvEgY[saTunoZXt_W{^Xwniabwb\cRlgWhsfc]rcr]Wiohp[odiY]dfnVW^lipZp[kyg}Xhrrzlkoh[d[]fhX}K[bqnc{eejarc[fk\geS^qhfy`ngcbobVb`Sgb_xr`]etb^Qpk|gb_vuhcceS[sd`fjj\njmeg\qc`[h`akeuihm{[kpqhkjUsfecbenbb[[h|_`mhci]]qnXlt}jngpdx[bXYnuucnYkg^o]g_wgugmh`Sjpe\Xe_\cO`gyWq]pcrjfvrxpdq_h\kjcYjrf\VSnae\[okqa|yndYddyf_onqokqfqfYjvge]_X]Pfedh]oQcWdZ`^f[gooxVqngmhommk`nhipihgcZf_uqfXhd\ksdUjk[`Tzqbhzm_~s\th\gagZT_a]lfNSZ]fbS`tUceY^ao[`\pdkhfqy[ioZ[u{ak\~YogpZbqcj~_bZujVd_}mk^_g[jaMg^vptvjuogjhJi]iZrH|]irbceklfaOma\lYm_tlkdwpalwdeWerl`nbqNmWkX]Ozh[sL^P^Mn_TYf[ztenRfnij_zdj[jacq]eM]iqeRauN\ofeJdjdyhcbezU[cvw\sFq}glnpmSmsbpvbgXo~mmengbedbbfd_\\_g_w`J_Z^ofXgdnmd\qgetav_aiicVY^efiq]nrud]ya|rvUdiYcfjqVkS^_[qhfqs_w_jvfkuUh\fyhg`gs^Z]pYjpjdic`sQqmi_XiZiy[nzM[~ejetknrdaerhYZVcikUn^mhkX\Z_bidc]nd^pmxm`Pc[r|Ul\wuX`qw_bizehQi]ZtYnMt]aoP\[\{]kR`qeisz~dbjqOh_lM}pxuu`aOhU\fklQcgo^ZgYvWvbwddskaR`_mU[qRXafmm\WUhr[a_j{gbXRgKib^QQb_kfJjUh\WUhogQTkjjabAYXZLhg^i;ocjfnZf[Vsn]LXfs_TkqjaSpkyN[sgnlhahk[db_H]fS\{eZeclheal|\nQyomiXlspstYWgm]^_cf_~chReZ_rl|[k_UplxepH]pUim^OMUl[W{pm[m_\eiUfvW^k~TotbbRgp@iYfidHrTa^p`YTg]cag`s[ie}bfjehdnausm]lpo]vcp\iZnkZRbPrkgT\ufaeWobww\c~hta\c`jedTyoqkqJteg\lYcmgq`lfYpeTjvRfQnzyXQXHUZRSt]F_jpqy`Wfm\\NZjffdcgo`pzajf]\Ua`e^dTWW\VhWVcns_CYbhkpIfsqwZs[fd]obUj`nxrkF`^u\XZjX`kPY\Ofn[t[Vb]\`tfgFBm[Fg`Yo[vlsemyolm@TncVtdYk^yYeaecmy]fqma_tbe|e_s[cl]hqihMrlzX\lm[b`Tjff^`\\kgYrcrd}ejp^d{Z^[hqYob`sdnbYhlk{lbiynvik_ukby\ZpcahahbXV_\}pc[eygcW^Xng_]barpcbqj[b]zlclgoNlsWeSiocjggyVg^gQXbqiho[lRdmr|`kXdea\_\bfhSrieenjr`l`kd}ltgwh_m`mg\aa[kdoZhSeP]cfi`Vkx]bVgqcoYg|obpx]h`kcdjfsnaeTinbi]Nplca]br[yYkcjxgffudpp_uqjz]raq]cW_]\awN]]o]_xegwgyhmSkXi\e]qRbhTfvrr_YqYePpha^zjxecnvoaVbqrmk\TjbUYdkmWLVsabw`Nchhmve^|nxo\]hrkefh\vbXPdXfqmznaYxz^}dibheopd_repfZkhvg_UdaWYeTfbmxriVmlpqicikdbWmTZPf[_[losblffxZemllQP}thhZoghcfVp`OPWUkSXbKk|Kcm^MebqTZs]nijc{`crq\fPob{c_yX|\tYcdky_arQZacXxFgZj_jrfncmfv[vhmOy[c_Vahgdg]h_c\Zn{kIhd}j|[qZ[ouq{aglcak\ge{Ubncbdd`X`b^|hfcnipSetfolashVmavetgYeln\[cf`oswne`yatijX{}`^~hbikl\fcewwpd]bltonUssun^Rpjas^Zs]`\_d|k^euw_wqoDsfZulmkoel|qjqs`rv^iqmeaTcsqpzojt`lP}exrofwd|^rlXpyf_lp`olfldXktovotfKtf}mjqrZ^osopYfgkrolksvRlz`s`|oQe\`X\brbsagVojVhjLafW_nxU\dll^iEagq`i\imea\h`xTgXlw[t_aitln`{bcTqrnu`Vm]agaee]ZXukXmjexj_Yn_zWhypfb`NqXmdrcc__{QHBY`U^l_}`nqdScqt\o]d``UramkSjmh_m`siUYOY]kl^VxLf[YdDUeX[pqija^c|eeV\wUkP\ijZujia`prWRt\^gZ|X`jar^aru\\TZfhgS^eYa]khmobS`V]U\TI`\sYfZYgPIQo`T\ehM`[]lqC`N]PUsNhkv_hav_[UMc]UuaYngUXymje`MeXldo`a\hhkMdchPJFiVJExki[ZUojaKjQba_Wk[^`i`jgZpo_nacJkKSUedc[ebZ[`ZbjakvRWjQm`bl]lOof`dY[dnsaa[Y[dNIsyK]TpgtcSXqrYjIrR`Th`nZeMie[l\SY^hb]jfb\iWVd]y^_lmXZ]ytgldbbah_llu`lndidk[kt_cXndkqe`_kqU^lciydc_eiaccmn_Qx`fdbSgltkzdmrqx`yzwikfi^fZfbscptq_hf^]eiUYksjUu`ldef`ebk]dj^yel]fW\_[Uend[jaVYhYz`re[_u_a``lh]euyevkacizUQ`gjZjcsmhZZrnjkolwT[dUmdqomryd`tP|meaicpgdpc``]dbLxhaltgSowcxel`dMvfooigZvIgfmfkg[dhsenlgiqZ`sm`_^mpmc`xiUWh^okdWobe{Uhmrpksa^ZIjg^h`tvdobvu|gWkZXj_bcYTjM]]uNw\Wg_xjfUju]XihXxxqShwYkhZsQSb^HYg\hlOvcfCxX][dSfjY[`e^xrN{U\rcqs_R_e^O]nchvvpotmXhVnnrs`]iToIe[\`Wx`]l_oselbw^]ZfrYnuuoXM\^Tytz|yFNrmd`de_vnyc\_tldxpjb^pf_keUb_e`rJdreknfiZkl[[Wc]ehdR~^tgZpklXrZ`Jpsovg^dgfaZfkc_ad]euYtuiXai_ihkjl\rriFWlNjhkW`nhkX]Vji_^gijNelnYxlloYls[c]qUlhWmmkab\Xklyjejpdjvb^iyipr\jej[p`shmqkqb`l_k`YWswbfm_pk}esRmrtyggTfng^[YfUj]j[^loogVoZ^ah~ui~emgf`~`Rhw_kekg_Hixqz[e`k`_vXhyMfj{O^srsmll{bavU}lc}Qeqb`\_q`vh[j]pcauR^Yhkerlx^ZkskQgjiukjUSoYbla\hnejjgf[ljgba^noYm\ahR[udoimhq]yfajpdocafek\e\iegf_zgx`^meapiyg[hfgri_hicjpZWhius_S^_rm_lLhXVoghfXjtheanocdOX]\pl|XjWctVn|joa[WRaf\[qirct_\daapXbo\chYdWciaSimTzdf_buhcsjm`rg]Zjae^peQaijgdefrt[q^mdmxeip|\e`i`lSoki}dn]Xcm{|nMmkokj|qjdmbXktdkpla`hreXjhbgcrg\ege\_eeh~Ntemmif\e\[vk_ootX_ch_]^zec^kj_qklobhcllntcgx~\_i~zIrTo{bllhjV_bX\}f\ll^beiRbbgc]uVj^Zaql\aZ_\nuagX^abjhmmnmaeo[ui`sx^UZmcgUi[[tladjvudod]`^zbmxwjl\U[xpoanjgcnVphthbmenuZgac]qfmoq]_kgX`^XunScgbgXk\y_vfisg|Zlmfthl}edm\khmUR}XY}zsv\oaafh_Kiyd[[YtleeW[Ic]c[hjYqci`SbTjy]{oh|{mloWg\gepadwgYWY]vnah[u}uhjtJd^`sZfrb`d`cvaiaTvdlVXk]b_jxZjdkYYYZjvYW^cj^hepeUf_bccrYauodZb`XwpX[uaiadoX_Szqi\cdjitibbhjatZYjeUhUtf]mbnwtiPy\yajtw\hmU\LZcV|iiW[voUiaWRqdt^ae^y|jZfybc_erSr^]auffagYv_ziei~{kna\OToo[`^ZqhVghqeRmk`xjsi|cpms]Zde_a`_fm\hpuWnXL^fYlWfxUpQ[duVcTb[^rqbUtoN`jS^M]T[jh^Y[fqvh\j_tnhZuz[Rn^IeglenpgnRtuTelX`VRn\Wch}si_][bT^fdsfolmQ^^T^hvXepfeb`oHb_febjSp`Z[_oo^jqapnlrdwefad[mZfX[pYl^kR`eZXtijvjhUz_he]~e`ugk`ogvhedlha`cc`edtklpmqoxeateZ\gd`TSn[_ckhU_bd`wZ^][bj|pg`psVukpuli\]hrj\Nc_jokgrmejld_pp`mazmajkplcZdo]hkcixheim`keZde^crw_rffohg\chjh]geZnhdhifqmh]n_Pd~hukbReennp`_wld_{_n_nca\dt`af`YfZbngQpdb}xsq`bY`uUkZ^^g^higrdie^qmlipq_X~`U}zYHhkq`he[j`PhimdiYyVdOg]Yxs\Xarh\mYtamazfOhjpiypgl_qw`kmhgz^~udktWcTitedp\sdfZmk[`id[kudd^mejdbc\ttd[TmlUWsm^UMbzZbjYpxf`jrxoclUgp`mbYp`ws^[eUhVwv_`hmgaUllcQcZhbhnUd\ubhJWcZga\snhytnucvp[U_yh[[_p\SMh]jyjcpYk_g{fCYbg\g_akr|ctRntnmTc[grd\YkXY~`bindfm]iM]hctTfihg|[vd\pfQ[]`ase^X[YTnf`w[`^dgb\fkd|t_wUTf\f_\rk}v`hvqmabPwjfcvlcRlffdkdec`m`retevUfROllVbb_hW`^_j^jnoahhmlilwzhe^kg^u}NSl_Y]eggdnrm\fQxobgt\m[hc[nmokQYmrix[[XvghYcehc]]obbtkgbf_mofacmgnp]iuiydhk\jy[mdbg~jfe[elnZsfjia_Vsdg\js]^iVLePii[`htcmT`X_efe_h]zWeaWqabk]tepdijz^w[gjj\^d`ckg_ifgjk\k]_xbp\gkUfaud`kgZbclUelxigt{ungy]_nem~um[cgq^benhura\aoqUi{uxfZcppv~gSgclf_ZIcm]jwZajY__dXdikimiii[WYlUq\hf}a]eP[Spled_\_lkim]okYxyazjkyTtbh]ckr|Sa\n\eswhkbvgZa]_jdhbvnokcjet\hp{[si^iX]ta\^dkaZigZhjeacl^mrmk^fnsfczXg_Y~_wU]heRcmkrnj[h`gjod_\lRilk^a_}qkxgiqlNq`_fkY|rd{__pkb\xukplxXX~a^a{mhSppruenbucgihZaip_izeXaphedyfcgbke_qSahjnjf_aTNrjh__qbqzg^w^\grkxcinc\hvfemmdge[oqh`pRn[ebdxrwcJbltb]byeacchcpgZdl]`Udqggvnu`oP]Wp[lkobliPqgr]gieL^KogZgagtZ\|eghdehujh^afkuouc]g[YoasbYWgbWSeVQYtrst[U\cl[Yf^q_d\jepiovhtRonpejcjcdagrefpDnSrhbUj[VT_itUi`biizeliHSrgashuq\NWT\gW]\]g`biwUX]k_ZQ`xwfOUjQprXZhtvZ^kh^c``U`Rm_LpXTif]vonh|y{NidaQ`]lfflWo_dcp`Qn``_Zaf_~a]oA_YhmTdjpno^_R}[dgRpkrcifZaa]bhub_s_bgnVgoicZn[\icnpywbfU`cp^sdTdq\wkikRY]Ra\fY^[_e\VpmreWm~Yijgqv_mrehZd\ciZgj|l^`x^\l[vr]kcpgtVpccivsasjd`uo]\Z`tefsdj\T`kcz[`TXg\`ly\bidhzopfr\qeYo[V]^f`lk]ZhgeycVqkgiWawm`uimDsriVqXpbZdd[asUjbmeYa_|kXijS[ZiSmsa[Vgfcl`Qa[dccgeV[`VbdvwfaomdgadtqaiWwWXbgl]g}egfe`T]amgmfaj]se~bLmdph__\g]\ul`\lyWeph_rWbp_muYyimjkjudQlowti^grXjsjXUeuemmQeiTzwwq]VRjYPa]uVcYpUg`agoc}wXfrszhjdwWZpml`yfUelrknoh}pgc}cVb\oU`Nh_fvb[}ogeXkQPo\^hdiaWa]g^p[rkxwhmi^tbXQ`cXgZbciacjUiYPyeilxnapeaz\qloa\tUkhu_dmZZvi[ygwkj\~`lb\vsm^zN~iaiqx`[pQmvfdGarrT`\miVaoe[`Ze^jfTZhekVn^h\vTXabk^p`qkpnbRplKh\XpewcVxYeiaj`UdVtLdbe[phh^yhjj\ZuushXbkjd@m[_wgTtfdtyyQRUkiSFrOJ`Tcjvvl_gmhthVm]WejWraeOeXJVfyQKUUhnguR{io_utVh`Yqip^KbZy_b]f^]PdThfej]Uh}Pwxg``m[[sPSloQhlptQWsibbsXMhOpnoca][`|eOs[jbrZgy`pgsVKdim~jakpn\d``T[Ym`vS{\NVoofaU[Ub_VZa__V|fcTod{T[taeSed[hp^ouV~]bnclqVnkfvhf\YWdQrpsvnVu]R^tXuq^VXShX_NYkqVgV^gWMZRbecypYibxXptd]Us[r\TtN^k[CZo_LMnmIN{WUjR^l]tkKxZagu]ljlWzjhcbYUdfsn^y~ewbtZxqhdlxk]pVyTmfdFp]clTHKhmfbjRnO`_nRqX~GoblTt^Sh]ThtbcYcyih]Rl_rreZK\jp\MgtWn_WllrUki]gylWqckVn_SUd~aULYWlbnXk[fsfVS\m^FRXtlfubuq{nfg\kX[iQ`Vuzf\simsee`aa]h{Y~won`\wgdWhUqXqUJioWPkdTYk]Q{jgPY^[^Xefac[vaXgi[ZV\Pdt[[aDfrvksmWTeZgSrURbeeObkchnxf|XRctdwy{ceeTtabO{`c_kvc`oz_MUHgd\U]veexitlcl\akpn_pjce`WXr]ZZncYda_\Yo[Zd^akR]u`UZd_pei_W`hUt_g\i]ex_EoekGM\bZuY]vnPiiuqftk`bYYk]\VXhysfXkOi[^klcwXkqbJiaZgiSa\Saa[el^P]o__Rorad^e_g^ZV`ZuXZngv`ilWm\_l_g]|kuQjVTZakphWvjibpXY]gUffRhwdljqte\a^]j\|]oeujwzcecy[yujmH^kd]e``gskcZheYedickd\tSi\aRjdodDdseio``k]nPg\htihpud[ej^pbbjtgsYm_\Yws_h_b\sbl[pds_a]V{kfzduZu\Y`_^q^[Zlfz|Sd}[aR{VeVdUn[bnfkY[felo`e\WOaqw\dYRr\`fa^`cqrqdXb_z^^Z`RXc_bhhSu[tecTpTnqX]gije[fnc^u`{i\fa[hoo_tukctUdytgeT[[_^ntoVbqeQ]Zx[vtahls`Q^xbv`i[gVSULenbj\tst]qaZma_cTU[Ygnbqa_u\]lcU]`ZZxqo_o\Xf^[`l]^ftYt_\TgWg[Ti`aWmVrmsrlkbt^YeeZ_j\P\e[lbkkvWb`Wdsi}lYVc[_kzSGhtZwSRxchMuWkjfq]o^sa`Yje}Xj\QfceQSugfflPR]`qdeckhebfhYrhshYmegtshVZg`OZZicTQdb{h`zmLSj}Zk`l^cr{ZvW[QZ`qZgdhbX``eoiaZ`Weue\fcaqLk\tO[Zc{pgegdaSa]aO[kmdYhge_ZhKmw^pebgekMrqakLcmjt[oLVetyKgMbfYx_g`fsLQT`thSXc|sQZ`Yckcv~^lo]ph`jle[yfUmw_^flylfFXm]UOcfokVn_]cgmu|a`UcUfmrheVYnweZU}QytEgq}\V_ciUfwjfKUORbaymeEcU^vklwtxkffc}ffjf`qgsbktkpnp^a]pbga`uepkjn}dUcauSqjusqu]ayOfmY_|il`Yuvr_^efg_OnspXoyaiakgye^s~gjq~vu\nbcxi}gfY`px[qldpaogugx[{[`tijUdcrfjV_awzjPeduvxZighWfzrYo~X_e]HuMZrslelzWxquizdcmokpnnQoTkDjh{kj}kgnj`\j\Tvne^hzn^cVLuu]fpep}eZ`Wegwl_geumjXhqkZprhtkyP[b`ZYuRXefkea\sfipjng|ejfhhfLnrqZVnaigf]bS\[Wwt`IenX\enqgTTei_mbvgra|\ebXUr^obfnX`n\pX\blhaanekiilhdxuokethi^iskuiu]f[VhY_egzlfa[cp`c_icughsmgjjnpNaeg`zXalvfejo^_XSUo`xkga^okhh[\`ajohwv_fky_oTTt[vf\`_ggWSih_wieZ_Wf^^idZcihrmYgiqnyeilcjhaztiqed`akzanb]cj^hN`nnhemlet[waqsYWmmgh_bublb_pi``]dndgzVcooxcWkg]hbd]]SntYqxgXdqd^YglckrlZ_l\ki\hui`qY]_^`Znb\c7drXYgZucVWdxmZb^SqfUR]znjZzdodjhcYg]hs\ky\|a\aZgk]f^ZjdpdTn^Kwyeb`\Rz}kibThpn_pJkJX|vkkZocbfYpSjYG^ZIbncVRxrLVaogWg[p=]hSJ~i\g]kPd]Yinn\_ToVi_Wg}jdVexV]WfgCbBelrngamDfZaRWo_YsocWpMeYiqt\WqzmvHfl|XkjrS[koliMXmdTkLcg]]Yf`u\in_Ra]i`^m\[Rs[YznnunTdS_[atY_EVsl^akUFieRUigL_e\fS`nVg`fUPo}Nh[^PnWbZwjdON^`l_jw^rezmxY]h\xda]]oifecdal\nsmZjHsriuagnkmrdi\_klUXbqVrb}boegyUiowZaao]}hdmRyr`ee^]bki\xqUhs_lbUWlop^alrikuuoaj|lk^h[g]lYlWTba]fdcfYSdbm`tgjZUit]ruwhirqfbilwMzYoRu`hWqdY]bYacgsWdxrmYm^ihi_r][jlcYgXfpljfT_gZeCd~itahfaeNlZdm^YinaZihkno^rug{nctf`de\vhajYqgeXqXd`pklZbaoTib_`_Zb^epifmohlwUokdTRRV]}SbSjqdXJdet{^ob[d_^niZ}QXicQggh{ecRfdrTbjZcyjbo^wvenc}rhddRs^f[eij[Zv~_\ncxxi^vbcj_beYgaQZeeYdod`faVNar_bgXa`j[ciIjgU~q\[cVdl{ezqagpm~ttf[Ywajnm^mjXU^n\g^aeliiuNgfZdkZdofIUaddv^nskriVj{numa_\bnrYarbX`do\`~erSdqkef~lu\[d~oabf`apm[oqmVlZipovojtnq\o[Wjdp`d\jq^lxQveebpeax~hW\rqcuqvdc[Wg]X\bidlxRjd[^`Rbu^lfWv_VZWWdF[{cV_cmfzIRkSmhvu\q_dnqhbq\hWr{m]mYqe_[dVaui}ri\d[\d{lxxTZawbf]fplkkb]vpsuTcg`d`Z\cmmu^cY|lh}rU^mYlchhiu}ZcimxhpLkfwiqefnohdkcnvedtj``|lpsRscVsdrbWUTUjlyh`ehj`ijjNZ`\lec~hjiUe^dnyuo_^botykpgpZsSk~S^{ndki`YgU~igUd`^ne_mgkgvRQi]qaFuleu^giUpdsudwh{xqbZuoVnXqrupmyafpanknb[evzsrhloannjiZoZoYpiz]ln^^wbt]`atqxSjagwhsf_bmdc]d[cl]QXo^I_g\[BcVzxic]N]adaVfr\ijm`^xY\rpmtiY`dSuxbmShoc`mhO_XpZafOJtrp[WPycYmndX_nazb]af^N~gWh\i\fd[R^Qgi^HVQ_^Tci_bb~Me_mhdpp_ed{`gmoc^[iiZebTakf[dbfZzKm[V]XcWd]flcNh^VZzp}`deZyienjjeWC``gtrcTE{lfZYwXmOq|f`cwT`eyaadlmnapu[tl[^q^U|ggc\nrbTy]wZ]lYctkeUfuUtrj{WfigY^hqpkib~`cdkkedXN>fPaP\wxrdfZhsWTS^b^`lgibm{ocUaZPchu^bgagggjm`jTjTe_u`XgVTy_ifdmoklqlPcehVyZl]Wn^qnhk^mS`hl_ee^\cbl[p{Zjmzg_X]d^\oVwWnjaYhmZ]c^XapjWnpfXwXwtUXjaa^[kdb]Srphc\_M_nriYxnf\[\^VmoP^u^XT^lcMtf[zb^gd_`hi_v_fjgbho`kw^s}l\g[fwn`]_bbwffaoSqpiWYNUwYjqj[sx[bUZgjZlnftiiuoRijXktayoLbek_\romenvf~\]hOciYsk^gccpuaVcu^WUj[egrS^OWUodlUSqd|mTfet^[^ulMy_]lnbcw_}bhk?^r\PseeQ_l[|n[kr^bqNe_mk^kg\emeN\eUjgrjnaXs]Ia}`^^egVeUosZmV^mhLX_ojkud^bf_k^Wh\kg|Qfu|nmhW]^cfWWy\_jhffckY}b`mV_WeX\laXLm^fdneg[guWbmX[^dKpWWpf`mg[m[bxYvYrhdYYKe^ogQovr]^]nu]xeeYM_t[b[[Q]mg_m^FzY[jW``[ti\gxe^bWgapnWiXedue^_VPcolgowdjgD\d``tm^tw_Y^afH\~YZlbgyLfNTcnmgyVoVxicg^\`QfWSj\oxijtebve`eyhnolqkPebhhSargwLQcoUxeuYg]XbselnhslCgRqiYwrY[`oe^kbfeXmagmjp\XZin]ktTTtwZ]gpgaic^^]quPeYra[do\lWdh]giex^gmVi^av^k`lW[nlha[m\dqejjYpVfdd}ko]lylmWTae``p[m]i}xailsjjg[hjn`]cJS`]sAw`Ua_Os_|\ld[`vnqM{ivyecX}ZYOsSnZpZRUhmlnYjoWTmze[j\gmnVy^iqrnJsYcnl^sbxmdqiXZ^U`dc|scf]vdyWV]_^_eMh\Wg[zjYgbkecti`nWcxelparohaedkhYbjr[Uhr]tmbl^edboZfjZnr^rjy]bhoqZchOmrfwlU\w^V^WwZuncWadZclgWUPh\\[[jTr^oNklYl[d_Uedj`WkYyyid{grhl]{jqYhc`qg[ptimKcofkkdh_dXk}sedju`hoii\`Qqjfl]le~Zehl^gp^Wf`wifewT_ltev`LvqimegYicW\VV|tqolt]tddp]Pq[^v`ag_uVgmbwX[gcmbrsic\vZbk`u{ldYgtfQk]YhdhcVXsfqgSq_k[sj^b`^pedoslg}`u|Y\iUfObg|bwXY\]jgb_deggbk^^]_^oWn`fzlQhbjehUbpkiRqWxptR\]mV]cmZhlc_KjfnhTu_l[u\hnhTk[i_|j`jSdhahlcueTY\}oaeUTipYi{qPYWseixberag`iUWi^h^U[[nuf]msWauDjTmlUVg]cYrVf[vT^txm{mZYuZv_kfdtgeah\vm\eeeiaq[ujbYntZbbme_XzilurdZfXdk{s_Y]imnhbnlg`hubXU_dnqhaoWVxZg;cbc_qpau]bx^cfodhkTstTW]hgj]be^w{i\`Uocrlr^kRd^Q[_~jkkbVkfubiich`VoXUw]jbgRxnP`ncqb`qapdapqYy_`Yjf]X~nlsftolrdqpp]dV[kjb`ejMkdTc[gkXjngebtanh_RjXZc{Yba_gwb[lZ\ai[ndUZheZw_djeeswivcn^ijZ^_k_x]k^Ylkb{amZa_p[`bsZz`lejiqkgr[t_jUXe~`agcd[Sbe\shackmofbpdbeidkY[k_^cg]deVpVaejcamr[Vle_[kawm|`^Wq_{]nlm]mdqbjeojSe[g{fTd^nwnFjjV[cdui]h\blbMsgbiqu`_lbpeUg]Wedgias]aswi_e\jchrdmxmvt[j`e\zpcdwzafcrgp_tiye\cbk^xy]rmT[U^flhkofgRcgmLj`ddotcwnadero_bc}_bxoeludzbXle~idV^^_^bbqc}b~my\owb`dj\fupWfmgQbl~sisoldnmiSS\Tsgndi}fZaqwmorgk^n\_rsa_xqeYxXWgmuEteqe\dobjT|h{vif\hqyXU^zfihh^[|e]egjl_Wpb_jZUnddncQycagWsY\pd\[dMbV`hqeks[f{kb^aWhl^rrekckWjah\hVa_ihboqYuiMbRvlkqUncZocnedSungv\hVWl]j~ngY\[\jymyuvSrskZereQqZ__qo}_Tgep]ycsaeqbl}_gj}r]^}tgqUi^]wtb}Pti\VXdhj]z]Z_aZ`jWp`yWVPZZ]bUPbvj^a`iYjua_vnohYrommjtjWevfa[M|`nfynWljahfPe`mmhp\evlksk\Xcjc]Xa]vXalaURlkoiidnucJ`dvevkhZy[kYgej[YlTYkS^llZuqqhbdtkvceqskjhmL`gVcZhV^l`NfwgjlU|m\bnTf]YyipkhlXcX]fuzguyjcbpb{c[|qpUqg]\[sneii]oeakIaq`_qXfwdxOrgj}\X^mZiTpjf^kf{_h[b^^]vnt\ppuqcXgpV}Ykcg[jVlSiXVcpf^c\^^kWd_pjX|[|hZtbisbnh]N\]VfUT_qfq]Xhj_UqhojmXdUu`WaXShbeit\Nr`rhgchjkdvd\nufpXXegW]`bzmp\wqah]_Yjgehd`mSdc]dh\be~wa\g^ogXXfk[a]fsxeg]XtP`Vd[WjnqdohX[ioWZ_uhaRhogsjpjlcaXs^Y]fnWln]hbYZkierhp^\b`cZ1g]SaaWfptgbcyn\jc`dJjkXa\ciza]}QakgjiWYst^hWd`cXh^[^yocuTh_~]lcuzZxpccRu^Mh[xafgjRY\UYfdpci{oxeXn|{wufreqfmba]e^hgTjbZYpeZ]_pvab@nafX`TR_vgoYm`H{`pe~ca[pUW`YfdbjdfZcP][se_Wch`lbd`dUju`cvecmem[[]b`]W}lpSecXYRh`mzZqkSa[m\[^uRWa[`oUqee_U]hgm\ZfioxT\ced}chkUhq{hhskfdcil]Vblu]cQ_\[^z`nk_^ratVhTulk]tgedXklr|[gfj[^`ZWecyymjUoaJ_q`qW[g`g\R^hklq_aj~_zoQWiZMcgsxfnU[rdl]ie_Xhw]c]UYdg]Za_`fVhZhzgrizjR__tqpZrqm]efTkCUrn`bfjx`hSd^n_SphiWTgoivCkedItcd`NsdMfd_V]VTigYogiShUonxxbomhkXWgnbhudXL[fUirzxTet`_uaV]`ejZ\jqa_xibrn^zeqlvm`qtjavlhk\Waje^a[`}OP\[drghWPK_j[soJshaxL[k_[aswdbr}zaoextg]fWbVMcX{bwb]kSe[aajdoj{YrZ_|Xcn`r\]sW[nYVW_^QiW[dh\_e^Uaicbj\gseeLY]zqo_otf`cZrppmT^Y\[swdiWh`b`^rOddj`otjn{cakaaxmZ\U^R~Rzcmut]VlutyiwqzgunVk_Xecjnr`rSlrgf{`kXbe\{hsYX[YZnhaccfijebb_ksn|fWiiYlbkh^e]`dgfmh~d_W^ezgflYrhn_bb{jXcct}s]oXXmZlqevdnnbNcjba]da]oTgZslqfQVR~k{l_gdxY[nTcih^iZbge`c~\ujmmrfpX[nVcdZdphgomegYqtuWy|eYineeVoe`WYaXmefMY`\blyqnW`q{qVYlhjY`\r^bXXWii]Zd`Xd_hireigr}bdlhly^t\evufj}yrRdTMbuZre^nkobWU`ZiXNsv{^Oxd_Xu_Zuqx\lyRWig[oWU|_t_ema`v_pqcZr]bdcUfkj`^]\e[e]t_a`]by__^jYdgjdabe[ci]l\fog\`Z\j\q[_Rl_fQjlrWcakldg[XYo^^]Ylciamrm`ZjZh^oevtX^jfvk_gVailoX^h^g[rjUmorkcb[llf_ugeyoT|\Vnwy{jWaktnrgod\]Qmv`ch]p[dammjmnpnbdadcnzYfdl^qn[Y\XgWcdfO`vqitefZ`}g_wddjhefqf^^cX}deb^\izferdVd_nXf^xZ_lajdKTf|rlg^hWph`n^Xet^iS\mkk\yei_ddflsWgedgW[fSOyd[fZlXlo\e]]\raco_q[tUjv\Tl`Xnji_dW_joPabp|^mlc_l_cm_yZid|hjiur^Z_[V^aOqkYjbc`cs^ho_r`xumeoleaf`adcQ]`h\cNupJd\qmY_govpvbuZ{K`qZ`YmbJf|bsXlk^]]oWQTgnWbmdhtj\RbV^\h]d^dhi~cpb_T`]tg]ucZosubLZZjitRaqag~{_cuyje9^lZ^h[fmmokb_[q_mNnc]gjP^eag\[l`U[\qS`eWrk\\k\bTVxvjdalS\kufP`oRommljZeznjojqqZxOUybQbpk[\_xacQvuZ_Wlz]Vjpvg\]Ujdqkacmz[]rc`WU~lng_f[lnpaTwjbWrQ[mn`rojeM^g_qgWapfcf`fmWpbeoRm\|p\oihb`Tfch{OwfgigfsjoN`rVmng^T]qokedo~hazwyeVmuTUeWl`he^OKkoeSdgfci_nzf`NZ`keSWZnuhkigeip_a[ddWZmWvr`{^x`TdbuiiShfrWc_msiuu_dqinoeZfxj]wpjkrkx\iliYhThX_KYgZ]l_[WsZzevTokdfmcxgibWpnckuefdeU]Wgleqbozjfqq_lb[Vw]^cuXacl]ybv\pmgXUophh{`c_eqWq{jj]he\aixzk^]dbdfn]]ab\q]q_V]jpj_e{j_dre[bffZ_kY~X{hlh[tpdkrejdT`q~dVbugXh`ae\cdeq[b}se|XX\iZcb{a_i_hefjpebujfghZ~ll_p^{tZ\co~[boi^pdOhjhdn[PRrcirWjf]m]caQdt`czy]yYjZgzgdRTbxmmiy^_l}rg`^ebpsW^XbcriUq[fzhqawtb^Y_X`kRcobbacnppgc]vyWYS}~~\j[MWfP_SkicgSnbjzRTkjZ]fqjs`VXntmruqfhXvl^_obitXmYuTsiofYpWe`WwN\fxd{obeZciqic}N]wQ]wkb]mq_ulg^aSm`pwxQh]]fc[UibOdZ_dccvxeZ_jc[upSYWmVyf[h[Waea^OfovbqrLW^iil^eU[VymtSshWeac]dZVtdgckkX`wXyYS\l}oopRZbo~njmTngasa^gr\`^p`sm]g]i|P\na^m|cmg\lgLpkVo{tuS]qtngQbz{hfTb\f^W`a\|_=w`[cYUn^ja]h_Pi_nudnSZvjWgg[kfi__So`Ur_jndpf]JhqpsTmlh^vQ^yrke^_l[l]VqqmVu|YeslilkXcflU_kZXdVy]`[Qnd`InQX`gptmVVilmSicVk_[f[mtNXjahskbdoZtv]gZ_e]nWvQj`TfocR[cgyyb\=GVdUN[gUNl^RQ^^UiYU\VaaHfUd]hxVcd``kx_U\\tRcEl[\jr|[pkcYn^{TeepkRll[HxsoWRah[a`W[u]anqS\WtTVXEVgbixOXgcBV~_][s\RftidhjoY{aa]komsM^v|]ligSqN`le\thrhkqv_^gO`sqtl_bf\p\^^h_[_vhXcgWe]nldwp}m`w_gZr_Xii^s]~TOtx[j_ktgsicyRZKeTu]fa`Tbfi``\im`laoTatPcsni^[`oltXqsskdeZia[mo`fhlcqVhcYfm^pathx\bUmauXfZc\ZNtdp\[_ZvhU``me`gWuVXZnefZlddf\lhichRd|nVYlhY]\_j[ZZoe~oXb_^\usic`~fWcl_Zd^a`xoXl\ep^pT]dlvfqfchlcifpYV]v`_Q^kUj[il[h\uzelXo~wSgifhZzp\qu[tdbdfpgmWhPY^ri_`UiauZ{hh|ZroX}IVR[~o_SW_vblfS``mtgi``ia]jxs[lf|ta_ZpfkmnweWwf[pdlkfjR_uTwULb~rjkhLl^vugdx`pubfabfqde{\dLx}]YfgmMVvgwbqQ_TprR`\lrd^PNePoWq|t[Yzicbdj[^yrbgeZXfL^_l|leh]a|gkXknf{hq_e]fbi_o{Iwfsg`nilddlbn_feePkRri^Nnao~flqPbkmzHITZcr{ee\T^kWt`jabfqpq\onS]n`mah]df]xpoh[hkYU^fflgL|ai\mglWfVgzXmoapccaijy{{fyd\{Xl\[ieYj`s\dp_[jykjgin^k_`zahkrmVgcZc[lbxfhmnngocZqdon\ZhVfal`[hfq]wtdqm|[asZrm|lre`tmfbihcbahj\Y_Y\sd`lhvXbi~plm_wQ\k\bgYmvTlwc\bMll`osmtnbbohXnkdwli__wiltj\^qO^n^eZkbrakb]fSwzmff|xab^r_jpfcd\Z_bpkenYokgefifxgh^Rgf^iw^fjh`pccbYUfshstmo}o_hcpcqqi_fcZjsecffdeX^okhd\k]bf\lk\^l^fvtgmtd``fcd|^e^Ufr[^{aTowmd`ZnfUnzgYnnf`aqajUr_bMmfVX~clR_tawim^r^gm{`hiiVfKcua~YuiUjHuq\ZjZMS[ewo^abj__tU[^yucZakdSQek}gsr[mjdgsusjiYdPgnYYWPTefphZiobOhZTlk\tZ[_]fi{mYhvd|zuQiOzLngS|k`l\eTdb~wZscbhr[\QfiwlihiYfpgqlqXqeau\r|ril`jus]`d_ldPapJfaZ}Kyd^uUbc^fUiezlo]VKxZkGTvdYjldnntciygpnhmmrpw]mpT~pkv[X_]oZWcdgickfmglu_nbdxeLfixoiTs_jm`g`nxbiYgbcjXj]knefbmkpXrbon_`bvVqyScr[Zei^laaZHmufn[_dGaduc[whqk~_Ydfhbtgj[ZJd]snTcnQu{]dbT]tiocbLeaN]^Vq\kjPjnclzpYfeniP_mcggyz]_gjcn]ZdUddajviRaVlqd{Zklgcss\~UhooxidtXmjqqejmVlpalaWzecl\f\`fap{[fqo}r{r[vMh\e]\qY^j^`|p^EtYmhi]xj`pY^hlH[dpih^hw`cq]hjX_wZgjZVbbkYu[ddxr`[YVWTWffQhf]lMpgersfSm[ddmo]tqV`selSm~amhUf`_dPOg`Yd_f`T_^yQogl]Jf[sca\jgqs`UtXhkheddhrgNjw]_efcln]jWSeoxoh_ajynSfld\b[imZVmZ\jfkqmw_bXlchaPlYPKu[yV\[bbu`jk]bUVdnXnOTkkpZjofsVcQncohinWd^lgc]gb^cjlilg]jnkRe^cl^\pwXameRo}KYWZwquqx_HqMhkdvg`UofQe^~oeqX~_yQgn{c]{`iegh|fi]trilq^Zr[MS[lNm[q~U`cYgd\x]McrnYnX]ei^aabxu_e{t]icpqSNibc_jim`Xw\nfXXadc\kZzp`cdnh^q]hm{XiVvcwwZZ_`]fU]oue_Z\kTdsjTjjQjVbJoOkYjRRL\ecyhjfclhT\YOUkqeRXw[w^bsfa\reOkzonifzfkthaomeXg^coR`o_fYlclxtpdmZ_x`jc`[hddwmp_fTdrkchloeX^b`b_ofba\sbsuzZ[gev`gvoUaYgbjfiii`iVhWf_^^n[_{vj]_{ZWlbdiyad`NgngdPn^Xokde}[edQ]ojfvnTywmz\Pg}gIcSi`_Whqwee{gmgX\Gh]Sfjhsjgi^Zmlmgjeo`n[khN\paulgz_fbfiUn^pUeydkhfu]U}hgiknUwvfUgddmiwnh\atwvkccy^shfSsn`aYcfZ`amzmY\]bkdu__b`Ioyghwmakhhj`Lmdh^dzhcZ``jjy`djia{k[Wdffnca\o{t{sgxX_o^_jwg_jh]cmDpGSn_lrjqdeN]jfYieoi_ed_fudok}Ojnddi_mkKlugai}aiG`Y_wjs\kU^Vc]kVdbmfa^rdbgjnaln_\kqxx\@]^dW[Quuc^c}gz[qnZ^hd`ojtSmj[owiqcboM{yLma[eevhskR[ZWkmYYtknhj}jijiXnXXhg\dQsbSQbmX{uPQfY\ii`kTlTqcX`Xkgty_iKXqe`xjml`iNh[i[ug_`[l\Xv|eL]gTb[_dch__bgngexHxj[[^Nj`r|Q^idbioeiK`k{ehqsroio^dn}kmatjuXkZZnoaaV]frMlshb__Y\]q_rXfdpu_s\sjx~^gZXj[]oldSgoVYel{sYbbPiaodbZ[^edWZck_^hhjUsflf\a[Gh_qt_Nq_f]og]`bioaRsXk\iffVwXsbXcVdWjsbeV{RY~cjp{aygOW]`b^mscas[|_hQWVtWacimrhVadwahQ]l^nTagxhbZ`|fe\k{_cjncardJRiqx[ilOuY`]ecrpjd`iXzdr|XZcko_X]aez\\vgYie_eYQcRhkd]Zef[hye^]QqrwOdi\eg`UWcSV}|pT~^s_ZTSY^s{d^fgK^cV^qloaih`_pqoorgIlWmdln]j_knrbSkegebbpwnr\Jsao`i[fiwboY[u]n_pib_TOz]mP^h^hmkbX_l`^l^dXlncffgu_Se`k[wkQXtcekXh[Rutxh]hq}oeTuS^`c[\d]d|hjIjpbxpUpcbJ\jfteX^tlWbkozqcjmmf{id`cjgjZoceYda\^hnfg[q|dm\N[lhoWdcXlcgl[ojcvlu`\r`cb]r~gW}fmQ[p^ddqkXfeohXNkt{iZjVjsbjReZRo`qcfH^aE_wuWfNbJWpfXa]cd_^X3jkJhLisd_RNOVu~c`iuh`cT`sahvj^bgpg[hY~sZV]e``iZJW`sjX{ZVeWZKjkQliksXcW_|vn[\Yb\jh^}i`dNaqihSOvPXYTf\``ZShhgclalfTd_VhbvNiahYYtnpSmY]sW_x_RdW`ovJeVRcpU{DrWTUf_gvlkihbRtq]^V>noUdTR_hLu_hRQjP_cbT}sV^oae\]X`Zacd]YPbSV`zd_SRgZ[]aeRTYlf[fRf{e[`WXekdh_C]oUfae\ckTdasq]ald]sXOabakXi^i^XzP~Wdc}mpXKhgMks_Ygb`aT{VqbZ]kgdf\bfyPfOx`icTjbi|fnllbt{]izqfthd_ak\]\_f`Zge\Xme`^oWkm~nmLwgbfyp\ruswbXze`]b^_]gXxcaMfnxia][p_ffWgwbIcxOtrMfaJjUXk[ojdejsmt`kRjc_gZbe|wKd|^pddUTKOmp_[YeRYVflngjUhaVdKefio_^IwsfdsgeCc|whVYj~Vn_qVewkcXnu`_^phmfFOo[i]fnfg]}Zohmwdljh^tXtohvZvag^[p|Xi~V^ganyit|nVg^YdznaWoZglWVzagQLZgUiZ^t]qqkvvsadjS^w[Z\fyo`tXmcidij{eie_hUlg^VgcladZZj[g_]ind^YcLncszg_aggalbskqummzk[\W~kxtl|c{a_Ofcglpfgdhinqupkmdhd_digjtaZlahlihb`gXpZcatqWxonkc_o[gndjgR[axhic}izZ]t`zbdwmcp|ad[bl[tpeek^yocYgjTWachn`_qiurgtngcjxb`gjnpqrkgaf[Xn_ebjkPsoh{TmVifjoa]hvadxR\kmz^k`k[r{Z^mt`x~]h[Yw^q_iey`cfdw]nguz\d[r`e_^`jzvkTfhbZVgclk`i[}liL{a_p_W]fnwkhXis__aj`cdtpQedQ\WRQc]\gnappb`WjU^^|ofbjhfoyagXk]\lnicdS]qjaXg`_bXdz\bsXXddHoMgXzdPae`vu[_iZbekxZkyY_rj[ybYeaq_^cahnl^b`zaicno[k^nwhpWhbapn[cca\~_Z]Wd\bXjgrqTfXTmVjt^h_VhcPW[}Phggira_laici\]igzedbdnZhZXf`Rk]]hheYpofql_kKjb^{b\fSbtyYn]jTXfbk|dbc^ZmvikTd[`Y\pjaZnb^Yval[cogZa}jaWyasT^cdU[_ce[aXMt_e[aRg]s[qmj`\ifujOdqpn{tqcm]^xfu_]foT`Nn^mg^`_RTiY]adiuS`oj{dhyw|mW[[qdi_^|WtRff{j`d\mhspaqiQfZg^m^qk\ekbcf^quozhlj\i`]e_`Y\\dLM_Qx\fjmdbilWkbrfmZk]omroXgliifs^pnfy|cjUahR_OvLkliryhpZlaveY^i_XxjqVj`\jugmpqc\meVRVzibh[neeb_c[Yahn^_rLaqUWlautakcMWujftb^`iapn\\ecYgnhe]e}]g]ko\aiganh`]jgiZa^oo`qo_obiVZrg^bgb]sji[jj`ap`[i`ZdjmgS[XTg^rqyfpfffgmZhYg`jdclijpas[vjbf`ekX_jvTitpmbVheix_r_qh`zrbUjjf_qRYe^fj`_jWkYydekhW`Wf[]fvqbaakZg]]eP`Xklifdh^k]k_u_fqZ^_uieYfvZcrqUt`ticVoi^kZiiS[jofpbkZnb\hef[e`kj`_eh\^naukksrfSqsPfbkShqcgo^cp^mo`hh{oTmkgepuq_ghv_^fkhYj^oV[{mX^j``fdli\Y[mbh[gS^eXfiP^or]}bfp[\_]unVfza{map|mycXko`|hi\aoa[Ze[Y^gqhg`g[jmgsSY`efsXiyq_Zm^`bilegml}x\kkz[bdd^lpsfqib^sfakjqZfpgjjgXrkvN\`jaegYoe]TYglfYwwlih`nrwfj_m]serVVg[\}l^YXsdicigionfspR_iufS_b^fewWd_tTtRZinWezgaZ]YciYafjhwgyybl_X{[x{ua^Zhsdnfkwmdccjif`b]^zfVktk\hfkhbjHvZjid^nuooYx`jngXWYoaJX^pX`flh^fnma_uZ_shpG\zqFzn^lT_ykldwtu^Yci\eQnp^g~dsUOVURPtYK\n]bepek~Xhlx`j\`u[gshbxV[ToiomdViYylhri]H`eoXt^}uYgclMgj`uW_YxZg`XcdRk`jRkt`RrnYzl}ccirh_Tnpni`vodhInsxeMmf^uoYgo[UbXPndt[mpij]tmkZf^`UV\EmXeVk_yVcieganjcouqotm[buumd`Xkh^nki^`kjpc;SQYgVXo]NZm\ncaj`SSueHS`_djRbYc_TRgei`medY]Ye^bWdRyTSS]Z{jnQRvohf[_jwTh{unvqyydiari]zsnegqo]WXwkiaenk`cqychjvafZglxmakxd`omnzWn\gte\nas`aX`f`idd~vqbKZszdglX[lLdqcXyUo{W`cjbYVfbTlZzb`cYLpiYs^onXJtSbVytRlbk`RceZOlagXkfkXbmthbbarm`[ltfQcc]```gfWQvoybz`orhfM[noxZonWaj[cnm_mjZe^qY]cev[[f^bRbmicsimg`xkfWfQTxdefcabzqNc]Qk]eTqnWib_NU^omtduM\ZxS\dZkcPeahkeQcacVfinXqVpLccf^cpoV`c~aymrnk_\ctqadmwjagzSWjen^VYbKiQaacM^op~x`j`_\vUaUf^ahU\e@Uco{kwnl_ZSRoh|hWwgidb`axawVXXujYieai_Y|]ggY]i[jsoScadnijfletY]u^Yg_`kgZjo]h^_t_bktT\mqgo`idahrvbMfgMcaj\aQiYY]Uho\bc]\utb`SS^nu[mWqleLNc\H_leYZSgpnfY|O\ZUaP`Z[mbYvSXL}Rgdh]ef`{zSR\`hO_arnd`rop]cWjhcYkfonmL]mrSq{eou[MhYTk]fRmg]ZRb`Rhotbjai`[coUWhQle`hV`d_`OdhyzvfniuadhldJq|s`WYkjedfNVc]]bebrU|\jyOZeojXXnm}YXRmVV}\UqSVaWXMYrZlTr{lUflUYTkYwo`cRd^jafcFkamhqYRWjeckUjhmk]iebmiyVvny^cqcQpi\]d`veddsO_}\nemdc^`kSU\rjQuTnnqx[^qaqQqYS^g`NjWwa\m[Xdlse\d\juc_\TSiZjre[^kupxL{aalcid\Ygjndkdc[VVn\oct\pxl_snFmppZz]jX[nrhsmZcv`_vp\hW^vlgqauYnsS`[hbef[OmjmiibH^njjT{ZJhncmstgf^Xignr`vgXba^rZ]LVUKwhrJjQcyfDqG\awe~wvUwmUoObcaY{j`]wsZNZLZ_WgPf_bvkLq[Ya^i]dd\cxXc{sk`madYxZebeX``jtpqQl`a_nlj`fXbkZo^iiYemiWgcX[[h_Zt`ltdYm[c\Sh^ZajpU`m[c[Rilu|bbe__jifc[\hknYhd^fn]i[s`nd_]lO[g]OVlgkPVWvu_YbdeEijnopZF~xj}ur^funp|qbbjnphjbt]qdjbyoQ\^_XXjiZkiwgn`9Tarkac\R]gZ[gmr]YbZmsgbodgigpuRjcc^cea}hgp_`]svVeU~if[`pfve[[[b]a]Ve\unzhw]ngX]v_Z`uuNcahWhx`^[bjR`f`vlgrhQ]yvjUPgcddkchcc_hrNiodfbyku?\Zbmtrnufwfbwy`^SgVbXUdikafinibm]tj]_yzicfWYm|eo}pprlrV_f{cNjkIK^Okkghpd]Xkktlerxoju|jqzY_Zqnbqjhafyb[opqhIheij`gbZ`_N`XoahfgXo[c_ESay\Y^ktV`s{nih^cQVccu]^tmb`YbK_gWbY^TkSeXe~bjUddahV]Zfgjcql`cj~zq|WuhTUlkh}njNV{Ycuccg`ahMqYdjSa[WtQiVjafngjWYid[lFbvYoevRfYjjkffjylfnqieecYevjZ]movf]ch]UFmkpa]wK_]h]miZmK[\]z_tZ]QwrdmdgY[^leMgRWb{Wt}vkkU}\RfubZaeRve^c`Snf{Xk`bnzsOnusT^eoNsWj_krqXW_TS`qIgc_gydy]pfdZokVcPfWgRX^vRNngZ\qZhZd^cig\[giqPQQmcmUVKhVObhdVN^aYKtjactbr^e[Wkmmgel[}pbVtmmfggicl`QQYfcSbY_Z][nb^gf_Pjfv|ZomjST_rreybyVtbphv|TXbEeahuVM^Zq[jdlSjbY\Mefo[`usR]bVh^mMatLZ]uvK}g^{pdab^_dTnv^jJifSXqTaYc\fqZhY]]grobetWdrtcjix}`jmZr[ke`eechnpdsficajezYihvrq[~lq`\ksceimqjgdotksbwq`k~gagdwebgeehdi_mIVf^mqewd[_bf`u`Y}_a_Omcjqack`hc\Uh^\jxrlXgeVg`\{mmYasu`XcOmscfacW[beekgnq`[|lUYSe`laccevde[ibffqqeTXccwmpaWlXVenRovrb`{^uu\brs`cs`bmp[zZu_czjpfl[gqn\fcer]wXnu[jW`W~fTb_v^h^jgwe`kk|R`kl\hvkgctphmkodmt`iq[l}`hjl\Eq^rWhUhmc^dcglVuumlf^akwa[MSakbncm[^^Z`cuWzqcbs[]c[rhg\ej`uPgjcflapTkYcdiqXsRbjkb{]~TV^i_atboX\v}SZaJdfahbsn``ca`ey[vkavgah`k^h\\pwf\obczhVyaeh_p]jgi[Xm^^`aXphq]m``djine\fkgTyY{^ml[rpry|bpjfMxsc]Nfjszgl_dWmzWfzec`u~lc_`Zi|Yndf[kfcb`fdTbVg_lco]TRgbw~efcc{h`hfjVjkPT[njg_^qVdgqkOfffchhgX]qwRsem]ex^[biivoaVeYt^eHZWcrqPSjK]\VclaSS[Mda}mq\X[d[]_bM^kDYeZd\^_seeddR]}\gdeHZL]]DdfdYcn[xUndhlVkfU^XNqkbTgJq]cei^}~aXvve^`Mea_``yalXs_Y|fUapt^qYX\^ZjMZefkb{[]Yh^cSKZl^k\bHcXD]sma]g\mbhLXd]mpigm\Xai[qrgionWawmeSa[zsaZa[^[bpYi\VZ`i`ffbV^fXZn_wQn\UrYgoftn\_kOlxsk[hcdO]h_jkobTolW\ldZ]cZ`VMiQrXSfvOdmml\^nj_fkwifoWYe^SpZk]gVRqndWubarl`ccoXUZbra^vfo]dofydbkRbbiiaag^]d^sptUgkUxrwf\hiixV`[eYc[akbx_ajh[puikrddZs`ghdzf`oaVqhc`p]~e`gcSfTghfdkfcjdu_c`YzXd[^\nsn`q[U]wfmkgvgXgmijdVpsatmhZeccl_^ob}`vlifeYzzcp`ksVhdV^jdcvsq__arhZen`Zmj]cqqhuVoic^mzb_]ahdnxclnfqg\ebx`nZ]SrtbejThdahekstbgeckrlhi^pf]l\ijiq]q`fjZzbgTYphe}rkn]g}sZaabnsnwttr^cmUq_ROHEMOLG[N9KYLLMPGFEUMDKOJKJNWPNGLFOCHNHLOOIHOTIKJOQMPRJISBSEMMHLFCKRIQNUIOOIMLDJSJBGKUPNHNSLLQIMIOKGYUWLIPDIOO@IK[ISGNO@PVQQROEAGFPILQSKCNRL^PJPNNIHGLJOKV[MRIIKKFQFCHHR:IHAEERLLTGNOFPELLQMXHITISITLVUXKYFPMPMOQNF`U\ICOQHJPPUBLTN@GK?NWGQLLbPNNUSLJJPKML[FGMVGOGFEPXAYKMQIKJJNNTMYR[PRQO`JKMRJOKN?LENFCRBRN[GIGSHMKVICWGRTPJASJ\^UGDQMWPBFTGFWFMLGKBNTKRWOBJOHOEFHPCNLION?QDFIGZKHNIPU_D=J?GZGKXJVJNTECNHNRMMNHHQMGTFFTNNY;PJGTONFRSSCMKEGNIHPRHEJLHDGHNLBPM=T?ANNBRNONSP?BUXYPOLMKNSKKMWIVMFGHNDTFQJJBPB>KMRIHMDKJKLQEHMLFELJHJHXGEJVUMFSODEHJ]RGVHLJOWPOL^LOW\MDNLJJJULKPCGMMTO>M\QNGIIGMVCIOSHE@KKDLIFL@JWNMGHKEMAKCHIGVJEVPKNNPNQK@JIOORNOFOOPJMNOMEVUDDLBOSPHNIFQOISKALRNQRGK@HJOLFKJTUKIJRCOFEDOFLJXPHIMNEFHMFOGQYJJPFHTPZMPRVKFNMULMNWMHNMRRLQQRRHLIHJPMI?HKOMTJS[VKNEQIWHI?OKOGJNMMGJLRSOCQLNKHCWOHVKOEKGPOSORJGKWFSNUJJIQEVPJQLMPXLDKKWGNVNGILHOIPKJOUTJFGIPOGEHRV<>PO4V@HOQRJHGUINZGPWNUUSS@AGL^ISTBQQ@SSPLFYQWKBZMGGKMELHOMMDJMORICLITUGR\ZI>EVQCMM=NHSSGFBO^>HGTQIMKB?MHIEQOVPL=IFHU5GGISMSQ?OMFSBBEJZWOMTLMMMEKUQMJOAC[OeQI9ALRRHXJM[RXVURPOOIRJWIDOKFHPEMNLMTS@HHVPSJ[HSIHHJP>VOPHVOCQUJIUVSUHKVCQHFRFLUWQILPBMIGJOERQF?WMKUPNJSUZLJGKKFNNIUOIMQKKHDPDMGKWWNOGNGPMM@ITPHEUSG?HOMTTMRUOPQTUNPHECJMIMKQRFGITMLJOGKOMJXHHPO@LHUBJIGLVKFQKMPJ>OQBFHODNHDIIQWLRNFKMBMSRGFSIOCO?VILFTMMTGQSIMKMHLNIPOPFSPMJJKMFPCI[GLNNR]GSKITKRJCMGLJVJNMQGLENEOD>VCFBFPRHMLPLSZQWJGGMXQJOB?HKKLARMP;RMLVRFSLMRODMIMRQDOEJNLFVSMXUFJTLHKKIRLGNHMJNOOGJLIOLILELK?UKDJHLMPMJFUGKFQTDMLY?VPJ[VSSDIVLGLKVIFDLTDGKHHXKPPM?LLRPINHKRULRKMP[ITLK\LQMOGJKNNLOFIIQPNYAOTKJRSJCLQMLPOKONWVSNRDNPRNHTRGFMJREKPLZM[OILS@OLGEKLLTPNELXQXKIGOMPVUXPYFILKLFHFMJKJCHJNPQLKCNSTVMHMHPZITNOOJEKAQURQHOKNNPIKNKRPSKAVAELLNEGENVVPDOJNNSPWMSQITWWLFSGKGIMNPJPJFCMMIKSIZXLRFLLQKQSPNLENQLLUHAQFKZ@JS@PSNQHXRMMORNIIBPILORTLPKT[SSQTLGMEIQDLMJJATRQMKQGSGNTD?HNKKKMQDRHOKMRHTEPTMKJAQFRFTWUTPMONGND\HRLOKHCMJEHAQIQQH\FPZPUWENOJKLEWPMQJJIJKCGPIKLRRRLFOFHCGXMNKJVFDPBPBOKEPDJOSQEMXOGNXVOOTKNIQJNLBDFOUMJEQHNHONRGNDQWFDUNQNH?LTEFQQFUSHHKUSVZPKFNNKRCXDPESHXLJZSLJGVIOKNLKEOISQUTQQMKUKLUSMIXKKOJNI@_R?>MHMSWJFAEVGIIAFYKTREHKUJRVVPL>_QLQBIQJLCLLNIQPKCR[JR;KOIMLEJLNIRQOKKKIJBFKIGITM@PLAK_RKNWGTMFMJFMSFTISHEKIXGHNBRYMMJFFLDFQLODNJKRESJAHKXNNFNJOLKRMJCQFIPECP>?CJA]ROVIOPICM[NEPGBNXOKPR;VBMMIMIGHIMVVG[?SLCJTGYOBLJIGLPIPCBTIOJGUGMDKVXIFQWDMQUSJOGF=]GBKMIJWHAZGGCSPRWRFOUHEKGOSDLTKSKPKXQWWKKQ^EQPFQJAJMPHCYJRB^PHXUCHIUPS]YFKRD[QAGDPQVOLSCVNEFLNFNPH:AOHFXJKVIFNSXIMFHJSREI[S^IDWSRRSUSL?SNJKUUHRIMDAPRETNKSIbST?KTPPBKHKT]@HTKMDGY9PJVTLQD?MDMMOHETAQMXSMRLUEINXNITKSIPRISFNRLNMAILNL?K@PKESMWDGQX]FRZSPHM]QBIKQKKDMWXMRS@GG]E>HNTOFAKURLZ@ZI?UKJRNHNMMJAGGTOKHSPBOYMWSQJR6DXIE:QJHT:LRPNPUPTSeXXPPVON\LM`[UTSSNJHNIUGQQGaGPLHP4WJEeEULOWCGRFRPRMJZDCZOGLMDUE=PYYIZTVS]L]USJQLZS[VUZOAAZPNYFOFI>R>PGJDUTNLNOELDKNLOFGBDTGJU=RKYCGGPNFLIXCUXCJUOFTLMP`VP]UPDGRP@MELKP\KPLMQSU[NQeSINKJLOM^IDGJGFQLLOKSMWEMKWINGSALXBJHRMQSLFRLPMGJ[MOOMCSYYO@NBRRCOJJGIJPMECRTXFNaUCRiLFGJHVY?FOOPTGE9HSGiYWQF@FMLXWTWMZTS:ZIHGG\LXV9LWQCF@KRZNPGVGIMTYWV9GCOOIAQQMRWLCKKFJKEFPBNQHUMSQJI+GII=;JNPHANTMFHFRSWISPUNPCFRKNFISIHTOQFDIIVFCF_OJM[LPOMPWFJKZFN>SQCJJFRJFLCLIPSGGBJAQJPBW;LNJIFNLGI@SHK>IPPNMUGYKLCIZGRHRMEQNBOU[LJ=cBCJEDOHFEMCQTIHDNTBMOKZHROYGGEPGHPLHOCB[NLYQJJPLRMMKMKSGSAPMHPJMPTJMQHHFIQRGENINLMMQMLGLGVLNSLEJ>LGH`LKMKHUWNGMMJXPTMDQGKWPLHZHMIOHOPIYNPOEPPBGMMJJTLRULGJRMWIWSJKNMHJQHRFHGHKVOQGNOFLPJMGMLBLIORROOMLKLJIELPIGE\FOQIMEJ@QVGHNIQWEIOLGQHNKOMWFRUUPLGNLTPHRPFDPEHXJJHUCLPFGPINNLBJO\HNKQILIP@EHNJLKKFMONKBGTGMIRJQPMQWGQTJHNMEHBPM?RNPWPPNENROKGLMFHLFQMHeTJEPNJQDIKRNVTRJNMAGGKLN^JOBSHCIPSYMLMQNMMGBRNIX`IDNUMTHYOROSNNSHKEEYLPSQ\OIJ`UQTXN\LJPYFJ>RPHMPNIFUKEIGSASRJRWOGNKATXRSMGOZWQVYZGPLLEDHEFEM^BRWNQMKDH\GKLGNZSBLNLKNNKNRJUUUPQJKEIEDQKOQJMIKOUIMUNXRMEPGE`LCILFZQLIQGOTBBMLJNOGRMMNBKHCJRNPMMMNK\GMGAMNIOUHIFOPfKACSMJOHZJMLGTN@IJFKKQQWEHRPFOCUPNGPIS]OEN]QRGDJRGTLKLEGNFNPLOSQPERKMOMRPGGPIH_GLLKF^CK]QNHPKGOPKJXLOMVUDNJVLNJKCKEKLHJIGKQSKNELHJRHIBLQJMIKWOKPJILJJJRNONFNLIORNOJKMUKDQXONNINJBJL^ROE\D=NWLJNJGIUEPNLMTLJMGHIKQJBMJEO=OIEKKFMGNQTIPQNIMQIUKOMLFCIOBILMCEQEZXCNMGFLQOEJRNJTNSJCRGPMLFMCILOXNEAM;SHKGHQMHQLQJVNYIJRDPP;KOIJKOJSJNGIODPMaHTU[NbKVH@NGMYR=XXKRPIJFFS?NXISNGRINTJCLOAIKLRTADM@ORKKQ@OLQFIDKMRGFLPTKGMRNKCMJCTOMPQ@IIIJHEOFSWEGRUKAJYN9RIJPOMN?\QMNKJJUGKFHMPQOI=JDTC?DKKUPPIZETJGPMOGIOPFLNJJKNOeXQSLQT_NGPIGWJCTUKNMFLHLRLHHFLHJ\MVUEcFGBMKDWYMK=C?HGDHNSMPLILOGOLJ@QMOGKJFOIVGRNLLVTPPIPGSMcUMDK_7LFNPPQKCNMEKNBJSFNZCGDWJNNEQBLPWUQEEGKPRFBWP@M\RVHLTTOFPEFJPICF]OIJI[TNHGSVB?@]AHJFSCRLXDIJDXFLJIDWWGDLKLCITPRFUEKSPQPNKCEKDLASSMTLMFCQXSIIRPQRCMJGHHFHSGKFNYRLHCMRFEUDQDE[RJMTO\GILGROTWJANFJMHL_M?LKPGFRL>MQUZQSKHHMHI_JIPHGSFTTINQOFKTFRFKJVHILUNWMJJJKINPHIEKMWOPUINRRIJTOMHUMLFJDCTIGLGFLYILPWICDRNXKINPIQFNPEJ@ORNHMIKTNBEENMIGIYMIDMLFZLLOLODFRMMQQQMAMXVHXKLQMLJSKLGJJNKNUMSJENJ>LWJMVOE=MOMLLPYELQQJQPISHSCNH\AQCOQHWPSSFR@EA]LQJF9JKGHRWOUTSNWRYJSJKUJRRIP@@FGHU^XIKCKBKPHPNIFRNQIFLCCLJVPP?HXF?QN_TMEET]ELDKQBBHNLKGFSEBCFLZRNWCZKDNORMNINSNQNILHGM>KWSMFBJVGFSDQGQQLNJLLJQSJC]IDR?JSEIJOTJU^@NDTFILQGIXQAE?RCMNYMBMLDCCKIWMESLQYNPKRBFJ>DFNLXXKCIFAPKKVJKNKNfEGHILJF?TKVHOPFJOQIHJOKOIDNKKLMGSPJMDIDQRNHFTOTRGSAIWHTNWYOXD\HIWDESEZLCTPKLJKJNMINTAHSJSHVJTRMRHMJLILDAMSKBIPFHRBRPWLRDOANQMJDFRIPEOOWFMFGMGKQDEFOMLSDKNQMLKL?MRHQOMGGUJMDMSLFLGDQNTIPQIHHNKUOXEaVKHNGONFILG7TPMZTAILPWKH;NGWLKTTJK:JGOVQOERRTRDE[IPIHWEMMRLWPQIT@FIAI]GFLOQQNK?WLOJMMJONLZLFHDMKIXNKNMD?UOLSIQWMRBGTGMCBLESEEFQKULLAUK?LNJJKPTLJB[EFI]SNOFNWHHQNBOLJTGEERBQ\HJIHJLNGOPDGLLSDMCEFPMQ@KHMNLF?OKLOH`JOPHZTNNIINFQaFDHRCWNJJXMDLOLOGNDEQWHILURTPHOKIMEVVNSFILDNQDLLPKLPD=NKLJTSINKjFOOYITPHFRISHOFAMQGPMJPLBPJS?OOJMEIFC]RBJLMIEOLIXXFGRHIKDNMIMMSLONBPWVUSIOHbDBKPTO>MXESSLDVHSIEGOPPQNNYFMLCJQKISUFFJ[FUQ[NCLIHJOMIJEARVURMVGNDbLRRH?VQNV=MFKLTNMPIMRKKPRCMECTMBYNMQSMKILCLLC^TLICKGSKILCF=JAHFHRMBKPZGAJKGJNEN>FIXGSMME[GQHEUQKK]EjVIOS\FSPKMCQJKMTNSIKFHLMgHNFQMPOQNRVM6SIRPNVQLDLF?IPOFeVMOT>?LWPLMFLLPKRFFONLTAFTFIJNIVRPHRFHAVUSBOLIVLRL>MPLHNWMKWMUJQ?RB@@TDFN@IKECN@ULhTHRN^IEAOHKNMDFRQFRGIUNQFO\RKKDOKED\GMELOK[BDNCGLHVCVOIAMTjRHNIDHBPSFJVVYGJQHKJKKTKPKIGJMKTDK[JUQKNNMMJNLMGN\VLSROJHFHQLMLIGTMJRNKKJQALNKJIDRZTIPKRNITOMEUXMbQKLFTGHOFJTSMDSTNKMLPMHMKJGRHHUGRQRTRTMIKMELCCQOLQKLKMLEKN>GOZKORDM@FCMTCRaJJXADGLJJVKL\GIKNMCKLOGKRSHKHSOPRWEBITGGLIHJRIE=LSPJBEEI@NOW@`IPFFAGSGOOOI\HELKTDDGFPJZC^bURJRU_BLWNIM[CLKQHMNeRMJUSITJJKQMZMJdUO:Y[P\GNNQQKOUFFECRNHOJKZGBNPHKJPYOAPRAObNN>TNHXSOHIZOKLGFZPHQKBPO`N@GFRUIVQL[OLH@LDOPGSYVRRMKUJICOQVOEP^BGHSNMHHQJMOOLRPRLW9KPJQNGMLBOIQPLEUOMJ>RX`LARCNJHDKLPXRPFQQQGOGGLQOJaFWBARKNIHFJAOQRCOKLGGFCAHKRJMHVIKKOVFXOKZGKOMMGEJVEGQHMMIKJPLDSN?OOUMVKCPFUTRISVEHGWKKMKKQPJTHRJLTENELGfMJHBFY[KLG:JFJIXXCPK_IHKRNJKNDCPJHGKQbWONITIL@JNUIMSKKIGSWGLQGKJLORBVVPKMNDMDBYUNRQUILBNFSL>KKDGNGU`MTLNTERGEEIIDIJKMNHILX\TGJ@TPECPBIXNLXPKSIKOOLMLIRGLFFRKGDSJSOWNPHNDXVKUYL;JE9J9JIQKJWGJILBSTCEQGScGJPWT]AJIESB@RHHL>JIABCOEHQPEN[@IGVFJNNFHPLM?EIDUF;SABTSPBUMP=;FFKKGHXS>BOPWFBGHEFKMDYFOgYNLYEHJiDLDZQ;KMQLIJIETPT=YCdRPCSOCIJTCBGLIBQCGGGEOMSCZCXFKcHJMTT9IOJFLPGMWSIEKJRAMNFKLQRHADHNEJPLCJHGLMMHJN?PJKEGOLKM`YBPLSEGSRMNNQDJIMSOEHKJOLMVWPPIMNDHGLNKVQRPAOPMMTRJRWPIMGTFCPTSRSAKJCGXPIMJSEPFIRXSFUJQNI>LJLMHJLSSODESNLTR\LKHMIDSWR?KHIQCEBMUHHJMFBPLQKRQIGVIQVVILOH;OFHEERHXNVV@PCPSSNSBNWFQEHVMBLCFMDWPJSMFOEFIKHNRIJMIXPLOFEONPNRCLKOLPKFKOIDQGFNDFOTZKLPAKLTKNE;FONLHKRHHLGIJHKCIDRO9SETQFTSANEEQEMUHNZHKMPLLGFONLBHSNORBLDKRFOMRKH_LIMNQILQWMSPUNNWLHPUIILJFKLQ\QEKEWLHRARG9OECIYKNXFBJBLBWVVPJSJLC@JPLFIJFNEDOXUKNJBLKWI_L`OFHLAKIGDDQPVYRCTJQDGDMCKNUPTOOOQUJNQLQPOUIJVDLKNMFKLHKKKDWRQTIQFJOV?M^GJKTLONRKJGH7LYB\LPU;CCSMQILGHROIRFNK_BOHRRM\TUEBPIGJIYOQ[JKKJLKSOJV\XNPOKEEFUV^MMEAFGXNPUKXGLCMH[PHFGETKGNGJMGGKJHMBEM?JTGPBPLHRGGRLKNBLRPNL[ICAJJOJKQDP\MCDJUICNJEXWPKEOGONUJDMTD_OTQNHSRNTAF=SQ?GKRSJPNaVEXQI>KPGAQQPGOFCBLNKOEJTKNQSKCPKELMZJMVSJEKRIOMIOLRLRCSPIJLHPWFKMSLNJADJSOOQSFPQMRLMOLEILAJLJNKEJMIIGKOYSFOAQKROMUDRKG`LQPRHOFJGIUKMOOPORMFORDHGBPRKSLQLSIGMHFEZJLOYHUJYB@FDSIRMUKIIBJTGQORPKGJRH[WSaIMEXCSWHHEFGWQK@GOSHLKHOQEKQPJZQTJHENODALPKATFJKGOESOHDOJDKJCKIICNHKRUGLPDTILQPC[EMIFFRDETVGNJFEMXTHHEHPQHSFGKWSJMLRPTJILLJQL=VGTDPEGCMWCJCRQNKTJWKJMMNQFIGU@GHJP;=BAJWOHDJKKOPISOFOHPTNEWJEUJTIJQJwURNXNGJSe]HNUNGQIUFTGLM>;XPIROLFIWKJHOLBNW@GJIXSBSIQJUPMFCMPBFNQFJWPETTJO[XQJEFNENTLREYIBIKNNIMAKNKRIIMNP^OLTGKLMVP[GaHMNFUCTGOZDJH_LINRLWRNPG^cLEMTJJBJQILcFIb\F^LKNOPSJ?OIHOH\aKVHIE@GK;QTRRSQQKXMYLTGHHIMKPK]KGTCJLNRRDO>HLQFGJENOIQFKTDSPBKUTIGOEJDIMF@D?RUWHTKFZCIHPNVG_GJLDKMRILMTONMNFQGWLJKRVHMGMHNDMELQFTFJKIUBVJ@NGTMGJKGFLHFKD\ESIECSNEGPNFPHH[TRPPFPISND[HJKQCNKUQKUZUL@L7CEMFUPTLUUNVRNR[PKPYaA[OOZMLVOIURRPNQMUIKKJKMZQKLINSNRRCNHUMLNNNURSTFCSGVF\fQKTSPNJLADEAKFJWLCLQMFOTMGDGlWPWDOUHKHZYmJGUMDKACQVZWG[E>IOQAHLIMORKHNKEKDQHUGJKFHPLOIGMIGNDGVSGV]NNNLIOFSMXUOAPOWQQAGMHSQSEOEMNZPKKPMIVHEQOMJMAPJKDLGHGD@JKTEMNNTJKLFGMjLSBPSPFYUHSENHLHHJNPLSNITQHSGLFOOIVLDJCDCGHGNDKBITUYEQTHPPMMGLJGDKJTIJIGJFEHHUHJIJNRSMKTBRLNQFMJWUYQROS[GIR\MMNKFMDRPOWJNHHFJPRPUFXOJLEM<[UNQSKP[OPEARAJ@JKGPGEJKJJQPYSIGFNJXURMLIKQMSXRPILKSUWZHf\NNJMCQLLIJNIGEDLBSGJHFKDIQCENNNONHFM\JQLCDA?HDALOKVGKJSJFUQISQSPMIMDDMJZSNNC[I@T@MTAYUOJNGIUPSMRLMQXJMRLRFINMQRCEHJWPEABFVKUQMhRUFVOPBN=DNCNWNOKOKMJRXNLRNJNE>VTNS[PGE@X=NK=HEGSMFNMKKRAMPQPSISXWLVPRGMHS>TUGUCSPJYLINaMFNFMRFDTHGLHSNIHUN\ILLNJLZJU?IKA?KRaMM@IKFNGDQOLNDSRCTPFONSJGPCUOSFY[QNPLIOT]BIOMMKMSFIKQDSJRGKRMLPGLQMDMEGJJCOFOMEROLAJHB@EUN\OVGMDHSTIMYMHIOS^LLOLGMFDDFFHLFP>UCFMKLFJLNNKGRREOFHPNINKQGUOXQKQ>cNTQDLQNTEZRO[FKSGaOQK^SVH\CSLTDKDMUFcNRR_IKNSMPMTFJM@N\?LINGIOI[XUKRHLMMSNFETRJRWTRTQD[SXCIKULOaMOIZNQSLNR]UUcHIBDIQZIfES\LLPTJKUOIKISOWCOMRQIIVMSQHObXG?VQJYJVIOMITEKPH[CYKMHBODXRTOLY@bSMPOMUJIHTPBMOTFAOMSSFXTRJQITPQDNFN_OJEOOILSPOBDNLHIKAJGI>GYIMTUMKMKTMHRRSEMMVNMKMCNPHFPDYHIHJRWDRJLORLLLNLJFKNDNGMGULGDFRLELUJOIDNNFGUFMRDJLHPFOSVTLQGLSRMLTLVIPKCQNJKFGKEKMNDPOZSOSTUMMWRGLQILNOH@PUTRUHKRISMH\NKWNE^RIHULLOKMKPAGJKNQNVNT\NIFQOLKEEKILUNRGJGHSOMJBIMMQQIHSVJRIEUGJIHNRLJQP@JRPPRRMXJeKLWKQLWMKN>KNSNDPKJJVMRHJNMEFNSIRLVMOHJNPYOENEMMGKLMNMLHMKJJNGLNJNJGINBKGUPHJLER^FIOGFQMDP=SEOPDHJ@PHFREIOLCJR[RPVPJJSRRGGCNOIQQCYGHVAUTIVOZNPUHKGKO]EHHEILJUMJOHOOQGKOHR8SFHAMM@RPNJGAJFPTVC=SQGHNGRFMVJ@IXUMTFLWEERIMTNQJJNSOVTJIIOTDJYQOQKE\LHMPHLJLPUYGRLGEMUO][MNINEGJPOGARCKBKJGULJHPCMGQGHGHKDKFOMIBL^NIDHMCNKEVEVPNMZQDNKKKKQLMLFK>PQJ?KgGF[DIRBRCJR]NBTLJBMJBVQSGYLKNYQSRGDEI?HJ_FZVZVKNLLCGWNFNN?PQMJWBJHLUMKGcAMQDCNJJPUHSNFAGLPMFGOZQaKDSKXGHTKCHGNROQHMKJJT:VYIMV@G^GUWQELQCMIGGMKLI@TPAKLLQ;LBMRMPMOORLQMUMTKLK]PTSDGIGGLOUDGT?LMURN:HDNLOGRVNUL>OHHBPHSNGFMREMEMM\UOFLNIKBORHLSISIKLJTDPPJOKLSRPKQIJQQNLbILUFGVOKFMMGPLNLILQTAL\QE=QCEPCVFMPVHKMHCFUQPPLNIQNKMMISNIMJYGMK\JEYPONIJLOLRJNNKHMSOJHIGPRNNTFMJCRDKQI_[TNX^QFO?MTHLJHLGLNNGHHCQTNEPG\EFBJPARFNJDJKMECDHEVQOMRLGQROKNIHVNBHOPHMIFELEMTGNNPLKQOXIMcCRJYKFRGDDERELTIGIYTIHQJONPPPJMKVOEHLKDDANMQGNKMJHIPEGILGUSPIMMKBVGNHFNOYIKLLGMNRDLXWCAHOIHIDPGRHHTINRUKJFTIDV?VFJDKTMDIMRGSODRNJNJH_>JH]RSMFCVPNRCESIBFSQYIJFRPO@OMJ8KHHDFVJLHGYMREGL[IFEULKLEGXHSJPJKMKKUSWIMNPDINAJTWMBTN@NXFCXIQJJLFPMCMSLKOINAFTFRPCLRKHYGLRPXOMGTXINBNDNNCC=JPMNEUWLTMEF[EOP=JMPR\QPUMNYDITSLLS[RSLZGHSQHODHSMIONHLBBPPSSIRPPCBJFSJ;DMMGKXPWDNVHPFJMGEEUVRRN?LONICJFZLOMTIZLKTJH\LRRITPOGR@UOXMXWDIIDFJSKIMPUI\UISJMULGRYLSLSKSKICLOTFKFPMNMNMOQCVMEPSJK;VVJLJJDULOKWEJLEIKSJMRKLZKWKMQTSJDMRNVR[HL\YMLIEDKDWKCGKFNKXSFGRFJPJNILEHHMLQPRKEPLYMLFEKJ>INGRS^PhGWFYQMQhSGYNQOPGAUHR]DAORIXIVZWK\[jpWkJYQMRTOSLOVLFNI>HSVb:VUD\ENVOM8SJQEQgELYVV^\NPTBRcCLMAMReFXNNTN]LId_GE@TENDMY@T\HQH0V(BITNMH[KFDVUL>GRBWOWPAA_M?BR5R:YNCQEZSPK;ZBKCOQGP\D\GBRFJYI[b@eBH<8I[Ta:ALE5DRCRTHNCS>AS[?JIQBNCQHIKG[EJjMPVE7WLLXNSJXc=BCLBOV>/MF=THR=L[IMGb_[KL>O>C;3SPAFIDMd?PD>SFWRCK\S;UT7@HJVMGINN@HGBNISWTPBMBFDFIA?DKQFQJXH\\ERO[IYROK=FLLIQKRCBTKKNFOJJHBEPDSWQSKJJQBPKTZIFTIFDPNFSIMLLQOJLDMCQMMOO>AQGPWQLMF]UHNMZPJKPMYLUKIRJLKMRKTNIEEMHCVRMMWIFZLHRGILJGHPBMHLBNOMFK[NEGLJWIMJSGP\MIILLSGIOFRLIQSGKSFNIQGELMI?DGOOPIKIKGOQGDGZIPIPMQMPOINJ@NJQEFNPGPJMD?PNNNUKTFGLNNLLREJSINKAFQEIAGMNMGMOILMQENRFMDKJDMEHLNFHELLLTIGKVJQJHKJNJLDONYBSGIPGLNT@GOKIRJRKMRX@KWGDGCVHHHUGHGRKOPMJINROPNHPMOFEQGGNAPRIHK[RIILQLLMELQKNJ\QCXOTQHPIAGEEOTWLWPKRFNCUCIQMQHKAMTSRTHNHGMKHKFJPAJHQEHOVNOVIEINRNJFOLFTKJT]RLGJAQDOJHLLOQPOORSNUHKNGPNERTIWHGGSJIGHNaYPIQMMG>PVMHJJVPSKERRM^JMKPNGJGJLROMOSJNJD=ILITEQQRDOCEWQQWFPUSHKJNJOMFOBINKIJIHJU@VGJ?JILHTRT^LMHGTVRKKKNILIJMQNIJMLFYLOFOJDVJKENLJT^@RGPJIINHKMJJfYCKLPLOGILFGDYMIPGQJLCHZOMHVJgDNTFJYTGXXLJLgQFHSMROFGKMOALIKIIHENKUAKOND[JJHGOONHP;JKFLIXLIIJKHHMHJKJBWMZWLKKMQRRESTYHPFOIRQLNHCNINKLXHLIPILJOI][FZICHMGKKJGIZ[VNLSVFGMHLKPISMIUH>IVHRDNTSFGDTYONDQJTGZKLXBUdHGTLCSMXCRK\HONVKQHKRVRISPGKIMVMHVCSQBBHJZKSYFQPHLSSJJDMVIPJQZOKCIITQFNOG?L;PMMMMUCQPMVLLONLPKGMRFPJQRLRFIHQMOSEaFLKDOVDOHLLKNGVFOHKLMCJNROHUOMKIHRIEBRKPHRJPQX:INFKRNUCMHMGJKPIMCN?LPLZLKUPNKYaNLLNDHSPI@H^OVUMUPOWXCDIEHCLRXGIPMSMFKCFNVKdILPJQKEHOLNOZ@PNHKKHGDOCJDNDIMNWQNHOUTHCKJDUOOONKJISaIFDNTOTDVCPGNRRPRLFXVAOWLLLGQQGHJDSSPJKBNMBIMLEJKFIWTUEQKOPQXRWLCSPHMDGKDMIMP>FI@OHSLIRXJICLIICLMWOPNNHWOOP@ICFHKNPDOHAAQGKMGKHAPMHSKKMNOUVTHLKXNHENFKQLCGHONKUKJOOTNPDSHEJKLLUMMNDHKNNOEPOOIKHMKCNTJSGOOJQKKSNPNKFGMPIMHKKGOALROMGGFHAKJAKGOKJHKHIC@RPFSUHUKGTIUTEQPUNDMHJFHGEKTPVHTUODMNDHXL\QXMRFSFMEHRQCLJDPRINM>IMJHFNMJRKNLUEVKYSURLNLI\OK?BLEPNIDITULCM?IXMMH>COKLPPV[LESPFYQFIOOHFTTKOHCPRKKPJHSKNWIRMLRIKJFSMNFSHEQMEMIFNQJEKCJPHKJALYPQZPMUKLKDOGEJRHNJTBBJKPKGMGFGMEFVOJNLQKANGRUIUPQJEIAQVMAQ@TMU@XREHKP`FCSOLHTLPPSVIRODCANNNFOPCPK\RNOFHRUHORNIWMISOOMQKPGDIJMLLOBNGPNOLNPYIKGDOXFSDPLPSSSJTKRMETMALTINGFIIKGOFTFTPTHLLHRRJYM@KLGIMWKMPFMMMLRPGAPIHEIHITLQSEBOBSJO=DRSKMHVW?PFIBJQFFTTPRAIKWLKJVFJLIGJTIOVVHNFGOPKJKNFNLHTOMFH@QDEBWUKEHW?PDAXSMQRJ]PYEFDWGTNNOFMDO;MOFNINJLSSQNVPJbEEKMXLJEJGIIFEQOJKTJD\KGLUKD?PMLLFNDPIIDQSTLNFJBONFKRQWYEKDOQQFCJUGOMJGOLKINEN@LEJQYMKNVPH?IML=VRHKFGABB`O_WOZGCKLQMGQ\[UYX`CXY@JQKLKQINUmTJHUOHFKTEKJGGUV@LOFHMOCLGNHKMVZMPVIMU\KU]P_O>VKPREDPOMJPEXDJIDGNFPOQGKVRWHJEFAR=LJLVIXQLUAKHLLJIFMRQMUSKYWQIUPGPZSJRMOC]KJBJKKWISIMFGNKTVZNIBcOHPCIBTJMRYFHOUGYJWLOQSAEDLOKHL@I>OG_[SFRDACTEQXWLBNRN>KQKRXADKTMQPOGMEEE\TOLIUPJBLIQIMLNPNJLHERMFQFLKDNTMLIOFK?F@LDKGLNFSDNRASDPVRNIMMRGGMRJV\KOGSLGMUHK?SLJT=EQPGO?TRKEBB[XDDMCNTH:SJQKGZPEIICHZKTOUKNIKIOHNOAEHOHCMRMHMDGECVKNIQHDILBHLOMLLRKRRLEJOMXOLPPRQLMMRQJHOFYIPFCRJ[JNOTAPVR`KQLX@PURTP[ATGWOJNHFUSLDSULTKELL:SCGKIJLJQODEJFF9VHRIIOKJVQNYOEMBDPIMUKJFRP?UPLEPJLNNPSKIELPKHMUMTFPSIOMNFQKTJRJJJCSH_HRJRL=F]V:MPP=ZKeUMLVSGLQ\LCH7FDMTH[IVZKOVHNGRNLCSB?ORGNNI5MKKUVVHRUTNMQCGLSFKLKJDTSLC=LLMJMXNUTPDDHHUMdPKXEMLLQRVK_RFKTPLILSGHMKAPDEOJ>XFIGGK[QKJLK@MKURDFWEFOHSM=PLSNSLRJPLKDDORNHMNLNHJTUHLKD[EKOZHHIAQGGRRLNQC^MQJKJPNKIZCNNAICLRLKMQEPOKPRFO\ZIRQKQPX9NVMF?IUSLLIOXQAOPNMJESMSSBP@PLKSCJJFK?DJGKQOVQL@K>RVQFQPRSRESJOMZNKEWSO=KES@RKHKKZKSKYBLLLDNVGHP?TWCKLNLLOOPB[OEKKO@YQKOJMUJDMPFFdHI?\IQLGFJYWGTWOWITJSRHQJSERGFOMPWGLJQKNLMFSGJNTJNBREPREIRNDNKQIIINQDNLSINNNIGNGJPEDMSJMRBKTMJIOU\BILLIKKJRPRHEEEIOMIJHT@@LJELDKHAROWOSMEKQJJRQDRROLCLJPQEKLNVNVMZEMSWRUIJGLHIQJJKSFYRHUBANEHIURGQLJFWMSHOYQRRYJML@INHGDNFKJQ\IH@PHEWIEIONJIQLOGCKLCNNICHMQJYOSHFRIJPOGNODHWLJAJ\OPJVKOLGNHPIDM?[KCMJJXOHQNSTMHBADVEDQKQUS\TNKC?CGDYPM`MNSLOHNMEUMGQHJURKQGISFJYFLTNKIVRMCMPFPQHPRIQKOPAJJC@ICFBEMJPFGQH?JBKN=ZSMANNWMJRN@NYLLJ@NUJELJK=ICHQSMTNHIOYFLDSTDINLMMIQHC\RML`MBGTWKIVLMTBILBFD`]ISRVKIHRKGEDLKJDHM\ALKOONKNIKCDFJMTPGHLFUNDGRMRHNIDAMJHORTQNLETMGJONGPBIIVGHB?GJIQOKOFNJIKJNPXKLGQPCNU@IMLJCQTOSHJEKDQMLMCINHHLMMHQCLPSJROZKGVQQLHYKQRF@IFQKFTPPWSMKKLGPEHDHTKIWKMMGIGPLOMNIV@NGGUOLLPIKQRGCKMKOLNQJNI_FSJO[YJFGGMPLMJFNJILY[PKOIGLRFJGE@RQMTCJWFMJLSSRLHJGWIFFDOOEGIZCLFRPMEMHMLKYRHMQNWKOGMKPRFJSJMPJGDOOWFKHPATAFGGSVROXQGLNRLSQJU=JGHIHEDFKBUPGJNDCRWGEKRMPFPSFPGGN_UYB>IWFEGWQMHO[IIJKCLKUOVDRMHQNO@HLNNPGHKILCIOPNALFLMMEGEOPIQGFZJJGNLNZLIRELMQEI4TMICDJSRXKPGESNYDGPTQRIMEE^KFLTLLDFLLMNCOAKIPMGLGFLXKKFGGZWKYSHQMMLHMMCKFCGNQEFKOKAP]FCLOSQMNOCKHSTUGKKDWGIBGIKGJGD^OXROXL[LRLCBPOYLWFQFJRCRJGDMIHcMJAWLGYHGGE[BKTQOIOGRGQSBKQMUNBLJTIYGOTJQVPHBGMRLPNKHQRJOXMNUDPUOJMQEROO\MJCNINNFKECPUOMENCEQLOIKNRTQXHBbH[WQSJCSNRGTMIGMKJDSJQjQMHJJRGKEMLRROUHTRPIHBI][UTHWHMJGHFNRHAWLKMTWNJRYW=SV=NVMH?SLSJQFGPDJKTNBLKTOKXVQOGEJFONPAHMRBWRR@eNSQFGIG=MOQJVLKQNOWTTGFBePTAOLKP?ECVKMGOLTMKMDLOIIRMSMSFDH;VNMIPR^TCPFRGG`SNBJGGXRJBMOGWESJCGJJ@TKMNUIFIHLPCLSPQJPLINIB[OKTOCODHIMRDNPKBGMXSFKMSWWMM@JMCRJNGHZKXOKQTSKNRLHGNELWP[DOPDTJORMAGKMIJNMQNOQGFJCVRHFVKKKMMJPJTK@JJJC?RGOMaIAaHPRNKM?KIMLGPIQOTPKBEK>Y[TZNXJIIB\R[\OQOeGOYQBGHK;PLLGA@MHICIGF;GD[\OI@LLUAGFKIBWOKLOIGKJKNWHU@QIFAKD@\?;ANRJcORJbTRRSUMWSPB@MDKWEFEBI=TFPZHVSYLT\GQIGKMKQKAMSM[WEF>NKGzTWKRKJQNXOJSI:TUEPJPPKZJFQACUS[YCRAIJKHZS]UDHWZK8PWHMNUUTKFGY`]FHHLL@OJKPS^HROIPNGN=PYCNCETYIPN_LO@VLMVUJYMOUZUHMNMYE]LDPWLIKVAJPIGNP?JOKOGHFCUVDKLCPQMP=EFAXDEQKLMFOK>VKFCAUDOQZOGILMNMI>>[PUALJOSIFOYHOOGGHGMPTFN>KTNOMWRPSTDRCHKXBK@OBGOBEIIN@M>[I=QLIINKRE\HRAOGOHNAWNTUHDPQ=VGKIMIPMMHK@SIIIJSJPGLKFUJQCYLJKIZNQLTLBVCQOIKDMMDMPNGKLCNLJPHXG:JNROJQITHFOCCFKJISHDGFTRGLQTJQBIKCTMDPPIYDMDHS@HLINJRPMGKY<[CINIJNICXEMMNL@JPNRTFUHVRHEMVLM@NPTOMOQTPMKJTDKNMQH]JEVN7SPONLSDYFNEKWDNISM[KRKXONIQ>P@MOUHYQZALNEHLROLJ=QNGSOJDM:NODTK7fNIAROQXEPPJHOPKMGRDQTGHUJTFMGNJLLLIMJKSKYIJJNPTHXJOIZKTGOMMDMSRMNQEHSINJLHTKRBRSEMJUHMVOOJPIFNORHLNUNJTZMTOGBJNTKKTVNFJPNSHMSOUOJRWLTNGO?GKIIOKGREDHJDHMOPENKVYGSSNGHGOTLIPPK\RJSFLOHYPTJONOE=FKNHEKNTNQMLNROOWGN@a@ORGKQJQLWRWSGQQNOHXRIKL]SEVJSKMIPFRTNVKG?K^IUXSGINHLKLTEKPEJRJMLHKENKHFHLLO>OTHMPMIGOIVDGGPKPMKUJIORJMS\PJOXGJTPPAQDEKLNJSJLJMHUTJX?NIFKTM?HXJQPOMMIPPWFWEPLGHIMOJUJEEIQWKKHROPOJSIIJYDRJJPA:KERKJNJLKVSYJLZQO?NSRFHSJHPLYQKMPTFMQLB\ELI[_GQDGMIHLMRPLMXYGFILRKAPKK[GSLNIGVPOHGLJK[GFQJFEJZCOQJ6TOOCWWEKLTNJKOHHHTMNBJHJELPKCIHPGMGIEELZEQJIDEOLSRJMLLQURUFBNMGTPOLSFQVIKMZFKKLOHFNKRJSTO\GLRSbJHMKG`J`UQPWURRBLFKM@LLIJ^DFFKM^IQLKLKOLdLHEEKLHKRRKcNBPRPXDMJLHQHFXTQTMSNWQQE?]S[KGSCMLJGSHTRQLOLNKQTBIKLHNDFAROKUSPDFDMIDRGCNKMHRPUDRIQK@LLLONHLKDSQON@ICIEJJAIUGIDJMNQFSGJJXR>KJBFGNKJGTMLKQNQFLALCIJNSHMTOAOFNRWEANFIMKKMBVBZFHEJNEMJFL?ELIRHMERSFHLIPGEPIPJ[INPPUHJCSIHMIFIPVUNVILSPURPPHKBLUNKN]SYOOPQYLPNRESRKJWYOMOGVEQKGGNWMOLIWRBJOAJFCPJRBP\ILEHNNAFLDPSVKRUGLLXGVCFIWQM[MTGNDNEEOVUJPSGWFVPILQGMEETIPJ@QHQJMTCBGRLDGKQKSWHGG^NUJGRPT[FQBFGTMGPHMOQROMCPMEUKSMHJAOIUL^SFKOELRJFONKDPW]RQRIZ@FRQNKRHUVUILLIHBOHKU]I@LITFHIQTFKTGQVISLNONJOFPGOEMQX\SJAMF\FKUORYLOOKNWGGEJLIJJXWDPRBMNZSEIGIWLJBLQKMGQHFKDNGTJNHLLOJ\MPRUIKIFINKJMKOQHGCTKOKMRMIQPQGWN[LNGJHHNJFHTME@FL\NRPE@UOGLG^KFJST\FNMJIFJVIOILKGQNQUORVKFEMSHAFPGKJCSGUYHNHDJIIORLPNDGVKJMOMKKIEWGDLPLLLMJHFIJIRJIJQIGQPINGIJJQJGSMMHQNOUQSXBHHDQTLTSNXGJHOHLZLMJJDAFRMXGaSWWHUESKVMIKFRVRDAGPNITH:YP?PSFSHJGGT;SQBFTWKRWZWWSNJGSJOFWGTLVPCMTLELLVOKGSLOGEGFPUQHADJEQVGPS\FHKIMPNQJSPNMTPLWAKSJMMNRJKWGHA@EP;INYDVXBK\DMJJORDSJRKMOJEHLQJFKYLKJB=HTGEVHISZKMNPITMOIKMJKOSRUJPOJJQLLRDDFQIIMMGKGMMMJPHJMTKgEKMFSRKQKNLRWXRKOL>LNKKEMIWCGSLZPPUKQOHWHWNILGLMMQVMNETLWOKOKWMFLMOLQFWHKGGUKLSQISQHQDPMLKKLNTIGTQCINPE\HMHRGQNJJLGGOSPGPQNPPKSSJOMKOYYAHLDWFGTJHANIDU?ULGNHOQO^TGJQESOPJ7BEJLDBPJJPNEQ>SUGVMKKXHNI=LKNRSHHEGKQPVMHLLHLDJNM\MMBMPHEGLFMIPMJEMEJDPGYRKMLTGMFIORRSKQN?IJZKNNN;FERDLFNGUSR?DKGWQMTDNRCEM>GJMGLICGFIGQGSWNXGLSNQHQQLJLWEKOPLVKJI=KPMROIIXTUNL?ININJNBTER=RGLNJJRJTN>DLMFOMSSOGJTHTPK^NKDEGR?QEMSNBNEOGMKEEDNAIHFLJYOHJHMDLKHIOONFNDRKNDFMDRNLJHSPOMJHEJTWCBPKILPHNUHNNIKRPSRYZELLLCIYMOBBFMQPJSMJSG@TMDKIHGTRGICRGN>IKHLHYRQQVHGLAPRKOIKGLLNKGLFNNLEXPPUROCVUQONGQNbGUIIL=MGLOJM_J[JYSBKHEIKGMEJSFNMSPIIE?KDPHXMNOSJIPVKKTEIDHUFLJGL@DJQUMIL8JS>QKFOMTNbCPDPWKQQTMYMETDMJTKKMTZWGYNLKLILXGJJYITQPN@QIASBNMHJWHUGMFNGHQREJPFWLVHSJOQMTRIHSLRSKKGB?ITKCGPKDMIPNQRETMKDQRHBOSGLNIPLEUGNLPPIKUGCJLRKJ]MPKPPLECHUKASFBIOCKSMNWGOENENNKOROMGINRY?OMKJLNJIMHVJEJLPHMQUMNFPQNWWKK?IKRTMLMMCJKODLTHSKLDPRGP>VLRSLKHEINMDNFUHJHYFMXJMVNRMLNJASPJNZNNLPJOHRN>@FOIHNLQLO9WNLFjHOINEIO[UAYFOcKIKL>FNPRIDNUIDIONNBBIQRlRPUDZEFACLP?^IGDKMIDGLKIOORPKKLA_COERLFEZT>PNALGNILSNFLXOILGAYIIcDIGPSGXJDPWQVKQIDNMtVRFTNHFLEBDO[ENHDCFJ[IXUNYNPPGDLE[COBFLHONFARKDKB?QTPIOAQIUUNOGISWMA8OJ2MBO`IIjP,FPDVLPP@BkE>JIVNFMbXFGVJKKGM?`RIP>f8EVTOCTRPKHMLD;SKIYQRKLFUR>5KF=IIKOLG?2JBJKDM=ALe^CVGEE_SS^HE@J7PP_IFJXEFLBZeLQPAGJDPTSDL>RE@O=NV\OITOSZSRRL_CFLQALHGSBIGHCIOKMLHNNMGQEJQEFRNRKN\VPHQYNEIIUFQAOGMETWNJJLODDLNIPJNGSLOFSMQHOMCQPKNJPQXMKIQFQHQPKENIEKOMGEKJOXLDJQZOKGLLNGK>ILNTQLJNIQLKLMSLGBNHUNQLQJZISOJK_TNITOAOJMUMEOSKNRQ=KJVJXEDTHPECMHEGMGDPREKHRPGELTEFVNHQUKEHGQVMPSRRHUPFEEMMBMFKISRDJDHHCGIFYGD@MMKIROELNLHj>POKMIK[KGIJMJLC]JKTXHL[VQFBWOXJPIQPOIMQLXFG>DKUIULGMOOLHHGKBLGISO?OMMJWOQYGREGKOJNKEGGZRVRHIHDLWLHMT[JFSKHDFILVVREFSEMOVLQWHQOGOIHNLOHIEIS>OKIQPREPKWXIOKTGPBLSDLHQEELOKGPEEOKIXQFFNPJUJ=ZR\BFVIOMUJPWKMJGNJ?ITLEKDOKLMPPYIHMMHHHHPLO\NMLGAMIRJGMCLYVGWQMDT-AEN>NETVFTMSK\L_:W/LRYRLQUNNhSAXFSEV;MNOTT0OPCS,V;RP1M``GXUXNNPJSEcUM+`FJGb?ZQDPNRM[NCT8JSTCSZL8HH[BAUMMKUb]YFMI@BPIQ:OT8LTMRHhUGZFF\R[CeUCKYQ@JbKRN>AGLSNPVPQQaTCXWPOSVDFNMVMNDTIOOP>VSSGILMLDE^TRCQPMHM\MPWAVSKQPOJRJHETNMSFPCE_AWG_NZWJDMIFFPMYAPJPKUHGXCLXEKRISSGQEKG?DLIOTMQPQXRDCRVORJTQGNYJIHQAKJDKDM\UNESVM_SKLYHJSMDK[NR>FOX^ODXPPNEPMGKQHHUBOICMVTQKINIDLMPZQJQLNHFGIOHGOJEPSMMFORFENSSVEZMOJREAUSJU\VKIJ[GQM?HLLCWLRTPTGCKPNOGLFMGNLRYQAOPCMJOGTLWLAJSZCEOINGPSGMJ9CJKQJQVIPH;JMRKK_V[TERLLROIIPZ\]KWSKKRQQE[XHRCKQHTbLJUBPLFCKNQPUgSNL_HMMNVNFJZQRLPVRHOPBKTI[SIKNGRFLELMOHLTNFNEMaNPDZSFOHQPYBFLRUQHPLHNDDFFMNWOIE@LISL]TOOBGIN?HZKGCHPO]NRHGFNHbEDQgQKILPHYMSVIRR\RL:RKJGWIKEOVVUJHIbKIFJQOFEPPGJVWFXX]FKPREIWBRFNR@JOUHM@PNT@VNIPFEEMCQOUNRM@NXLRUSGNNUJPPSKDVOBTDUHNADF\GSJIOLGALGGGQRNWOTJVSUNYNEGMKIGIUFIJ\KEMAKROTEGNU]\MD]SVLG?GPLOQPUXLJKBPEMGN@SONBEELQJ@PJLJPJMKOHJBPGDLGPCEOJQQMNQHKQPALFZUK@UWPKJSNHJKLNHKPUHJTQLMKEELFILMNJRLAFIOUROH@FJLNEKNNDIINFAOLJFOGKSJH@CQHUQKH[LIRNIUNNBOLTSANOBLPNHNP]FLINCKHHHMFGMGBMMJJPQQCHLIKRHRQ[KWHQ=GGMNENQIGODWBKXQDIMIJLNHIDIEKENONQJGMQSKVMJPUIPVPKJJLQFNLKNLVRNOVXVGVQHPMCQFP\GKN?LWNIOPMCHMIKR\JLPKCDHJIUKIMWPNFQRIJEQBHKOWJJLCQMJMPSKTQIHI^KQ@DNRMPKPA@UQQRNVNFMLPO\BHFJLKXIOZBOIWPKCIGEIISPGTTIQJCLHQWHCAU@N>LIEPTFJWSXJEFJOKQLSFEOBMKWXOQSCNIIEKQLLOMMIJI@QNNHAKNOGHELdNM^RAVKIJLLO@FOFHYFOJLIMPDMCKMITCFGDRNRLRJFFJLHF_WLQLGJNHQOTIOUNOFLSEQIGILJ?YNGH]REFNSNaHCMFP\JLRYJHSIL=QBVDJNJRRBKMNMF]M[PEKRAGKPBCEXXESPEERJKPJ?KGQLVE=RMSSNZW_VXSONROENNRKFLJIQPGEFPGKERFKTKSSBH=MEHEURLFIRVH\PILGOJJJ@EJH\QELHKM:UCKFEISPLDUNATGAUXJR>J\PQMGLOEWKECViTNEJMJHESQGNGDIQALSGLPPNKKRAdIJQNDBJJODIJITFHKGMZNBQDMDNRMHIIFOWKQLZUNHRBULNM@IJKEIWCHRQPPMRORHJXLCLIIGLGDQScKETYJKSMMPGPMOHTIXMOJEVPNNEYTJVOLHKO7FNGIAISIKPDUN;OVCMRSSEGIMNMKGPTSSTRVCLLLMMLRPLNKMIOFO9OFXHDBJSMMQPORFPKHQ_RNFHPEODKMHPSOVMMHNDGCSJQKRINEIJGHUEGRNAHLIENGJJWFPMQWKHQONJGIJJKTPOHROQPUTIHFYLaUYCDPGFROUITLRHKELFKOMNNTQL>VY]QBPTM@IHXTACINNQJJMMIENOFMETMMKDIBORMMRMNIMIEOVRBJHLIIFGKOIVKRPOHELLOLPWNQOPNJKQJAPTIKGOMLIXRRFSMRNHEMTJPQDGMEJENRDLHK]OSGJOTJLGXLSPOJIOLEHKHGSBGJFGBRDNEKJLANIMJEONGEQMMWHBWLKSHJNKSKRITOMTUWI\LTNSQXHIMMLSNPMNRREPPGHPLHPPONFLJPKSLIK^BDNELKVLGNUKOJLGTHJEMFREJJQUIIMPFIJOLJRJNGNMPJHOGVVLHGPRJMMODSAQhJOWUDJNLOJMLQFUNRCLPBJOSOLSbOVZHPDOQPOOJTOHVONCHLeFGESUCI>MSQKLAQJUEcIUOOXWKPDGkI]HFOUNLHMaK`RSIYGJN_FRKRBZQJSRQPKRQ>PP?WA[RHSTX;OLRFTJFNKLVVDT[GGHHKUJNMITFRFRKSQGV@UI\INLKIHQLMLMNXPAHNHFHHENASVG;HEPNLPKDMfRFHLNHGERKNPCMJPILIGOPMKSTOWLDLJY@XHMJNPURBPNNNIHNKRIKISNNFQDHTOYRTXIILOJNNAFCRJRGDBPN9XFHKCMHMOMSCG@V@IEHXMURMKPOWNMMFNXKPNGUICQBO?KGETNPUTPOIVGVON]LNQPJKPGOHFNJEIKLOOZSIQFKORPKKGRLDJMIZOOFMHRFPG\PAEJGURI^JIKUOSLTFTLNDGPOMP=LPIFKHPMILJEMBENLMLPQMHNOEFSL]RUFBPEJPLFILNBQITYMNGQJVLQJMGHURJINMERMERMRUMZOHMRD]JF=BVX=DRGINRNKVLILGOMIINHBBKSPLKLJMEJKGOPIIJGQHQIIMMSSJGMJOLLZKLXONJMOSKJKUMOYPRSSGLCJHYPLSLLPGUK^LUPXAKSIBLMON?CIKROMOHEMSNBGRIRIPRMHQGOGFEJTIIJJOORKFEKQRNLOEHEJCFJSGTUBIONEEBKMKJFH^Q`>SHLHL^L_M?PGMRMNUYLRGXJTCOTQLE@OIRBKIUIHHFWKGPPKQXDMSHRIUYCBSUMTJEGQMFLLXIQXSOURDNJHUHPKOFPdDQIGKRSH`HCMIXJNHNCFhJOJPZKONTTMJN\QOKKKGJHJWYMSQJX_RM_UNILYRJJJZMMPIIEKM@OKRRRKKGTXHOMOMMLOJQLSDWMLINKNL@RVSEKGLMKJGNJSJKQMJKQGKYLOVTVOR[MROFHISDHXPKFKRBMKJ@VLKJZSTa_U@BILRQNYNIMSFRGGGDLG>ISUGVDFMEN\RCUJMDHJGHMEPWNKHRLSG=LJOEILIPQLVPL^NPNTQOMOZS\PRQNANLFLECQCLILOKaILLSGBTOBQFJDR]FOBSJLRMHLCPJKSE@HOMJXTMMPDQHRFJGHMJ[IFSIKLKMIFMULLLMIKHEE>LSKLVV[EJNVJFDIIMSEJ=TWLEMGLG@MTMMFYXFLCWOSEKKMJDIJUGSPKQRMWHKTQPCOQONIEMSFUIPPLQY^VEQEJJZPJIHPKULLUEQORUFKWNNJSIMHJNFI\IDOTJDI@NOP@DAQIPFJFVVOSXJFLIWMFRCGOOgRVFMKD;GOVDORBEZPJK=VGPHLMKYTOLdXOQGCEVP\HJKIJIRPOR[LNHYGIDBMUNQNONLTJFLITG;MLJLKLWEPGLKLAURM`HLNDKULP>DNIZVRIGKAJGUDQ\KIGGHQWAMAKMEKQMFKMPQLVYOWQJMUTGREJDPJPNVTOJI\KJL>ILVROPHLDJWEHKNZOPIOXTO:OOUTQIIMKLFGJG?KIGAKRMGHORSRGWNLFGKNQIPHJPTLMMJFKNHUYSHGN@SSFTO\COIIEMOHAHNIOE?NECQLEKSIFUEIIFITNFMNHMHODGIVRHIBF?GJPNNH>P\OMEJLOIGC>ODSOIS^PPGDMHRaKONJOHBOEIRINMSXCSMWLGSIONIPDC>QULTDGYWIGTORMGF[LCGORLSN_POLFSUXLEVTZLLMJCUOMQKOJTcNNGOQWQF@IIKQNPLSMBOMURLHSILBEHHOJJIJOJNIXRSBKB@YLFGDWNKKMNHYFIKSPOMEELMNQGNKPK]UEEHO[NKNa@NKJDCFOHOOKSeOSMGPTNQMHPVHF;MIEXD;NLTZHNUQOSZNTFHKEOLWSLMILKMMD?EOTSALGGM[XONWEPA]NUGFMCPRSEHVJ;QKJIPJKLCGPLHHFOFLTPNJDQEIFLIHIQPHSPKUINNN\QQPILJAEBGWKCJHNCISPKNMBJGJPDPRTTUJPLIJNLGLKNLRVO@HPGL>EGHGHaPNNE?FGFJORUN[PFDKIDMHHQKQMOSHVWUQHRJNY^HGHLHKFBHKIWPSKILPYILFJHVKLOVGDLPMKZKBOAKBFGMJGJGGHGLNCODJQMDWSSSXQTSDFLDCKIY:JIJHOGQI[DDK\ZRWLSMMOREMJDLPRWOSTKQAQNUGOIQI[HQLNXRHDJ`N?ZIhOLMM7PVGOOLIJSHARRPE]GJRPWJOF@JCNRLKPJUNIOOVJSERLPEJTPISHPLGaNMXJOSCOLOEMKVEMLIJGGOTOQKUNXFHXSIIXM[FEPNZRGBOANOK?KIEGE@QSFOOTK?LWMKIGDKNHPKGSKMPLMHCJMKQ[DOO@EIFKSMNLHJF>]ED@OKMKNGSLIGRJRHGILITLG@YOLSAKKOKHWFIYWKECLDNNIUVKMMOMLHHLHIORIIIGBOFMFLMMDFMFWKITLRGNPEKMQLMIDOJFRJNIMJGIJPOBNOGLCHENEDFOOOPINLRIGOKVTHMXYNTHELIGJFIKWQJAGFHDKJKNNOKKLO\PYLOLINHDJVCQJEVKJNJJSAVHQTFHGLJANYREZEGDK?MWF^LKNDJSOJI@EHAGIQIRLHINCKHPNKMCQXNHSLAKQGKPYKTRBQT\MRMRFOEKKJPKJ_G[JOJM]Pd=GANOTKHRFLDFMMO[M;LSMDGMDGKJKHOMDQKJI`HZEHKNLJLMHDFFHPFCXGXJGMRUHHWENEJGRE^LLHZFJBLG@NGPEWKULPTWAD[N>RnQ:MWSTLJCGMJRGVHHe>QPFQI^MCAKQQOTTNQMGTZFFXLKBLhHQM>\XIEKPL[\:?KSTWS?TB_CQTG?WVZSYKQOHNSINbFL^ZVDMECGGKNOPCP[TDKJ[QQZUGDIOUKUKNBCMaFGOMLIMT\IHKCOKWJVHOKRKGC]>JJNKFIJBLKIJMN\NFCPQ_]FIMKIKIQOPbFRTPaKNILGMVMQ^MFQJEOQPMLMGOGJSHF[JEJIhSKLPLGTJSMBCSJSYLQOIJHXAHIJOVQXGQIJLKJRQNLJITHGCFIMKSKFMLROGCKFOIOGJIQGKKFUPIPLJHIKHLITVJ\PQIEOKLUPQKSZIHLJTLHHGKOIKUUEJJ[POHJJPRFNSJ\VEJKIHLFOKPNRHKFGGQOPT@IJRKNFNJQ>TOMEMGGGKZMPNMIWLFIRERJJIOQSNGNSJFDTFMJQLPGFNUMIOTJIBJJRAPTLKRIKMKAFHWM>OILUSOOIX\JGJBGJFV=TKBMIQJHKFJCMPHDKLPPaX]aKPRIEYXGTNFFESCTYKOL;PGJRMOECRDWFJP\KOJTIDDqGJU_CJGJRYKLLT_KUPNGSE\`XKSKI@UJIOUGNE>KPELLLLHOHJHIjQTFRPDW_=LPKUHGSHEVRLLPUQJKIDIKMKHAKL<@DXPSKENLGJKILIFMPSTELJLMSHFKNLISLDQIIESNLIRJ`HSANSOLNZFLLIJMNMEIONNSVFSYKLYVLHLMGKJQWDGGKSJJMMJJFSLQSHIHIDOJVPKOKLKKFWPDLTJNFHGBVHKIXBJIP@FEMOJJPN_BFQIKKRJCPGKKERKBNEHPLPIFJMODIICNJGNHP\KKGKTBDDWNKGRGJ]=KOQODDS=RJg`EF?=MNFS=FGSPRID@QJQQBGDUKGITNFVXOQUEA:GNB_FJLSN=AMCHPQ@MPCGdFS[INZLEYHAMGFJKPNDXAZKLVFMCFUR]OYU]ANQALLIDJ8?MbVOHCRDPSQTPSN1HV][V@NFN>>ALIKKLJHHENH_BCFIRKCFSJ=FFNJMVVFNHEVCPCMRZRIRLJMAYMOFI=JMJOSOaHKNLQLNSRSC^R8KKHHRGJHLIOABMHRMAM?PI`JQIEOGTPJOEa]]OBP[FTTJM9D@WIH@TBELK@P?IOLSNPAKAJIGHL\_JKMJHTS\DNMNKNFAIMWTIKVFVZIJPLCNVGLDJE[VHCYHABPHSJY?EKJAMKUIDGGLDSZLMJIMEMDCL[>EOFCMLQLUHCWW_HQXUFSANRVTGRWHKKJIJKPNERJIIDHSEJRGHLALMHOHJCVXIKCCaILFIEEMMZfVZGDTKIJHOEVDKONPSKFFSLJQPRMONRXNMKJ?LGD[DHFVHQNRIHBGMQ\HVEOHAIKCHILHMTCKFTdKCPUQROIIHDURMKXHMIJK?JdMJNIFPLMQKKDVLKSBCH\IVMD\XKPTNJJGGOMNQXN`LNMGIIIPLQJXQNMJLFCOHFNVPIOGPMGDGCMMPLLULRGLO\RJXOP?OLIFDDTNUcJKLONOMHVFKDCEMDMSFQKPHKGUNRPGJMGDJPGIMXOPLJJHIGONNPJEWXOPFFFILbHAMNFDAQLKBIUNFLHPOPVHLMK?LVJJKFPHQENRP?QMOQNNRURYOJPGBTGHBTNJMILBJQLIQNHLQTDNQLGGWAQSINDNLJTNIKHGHXINHIQLC@MKPRNMIDPRSNJEL`OIKKJPTDQDSNR?HZLQIELVJGUSHGJJFIJJHBSYQHFHLGZSHONO?GML^KIPKEDNXRGL?EDRIINSDMONWG7LOHDLEPQD]PQNHEQLFCKENN?OJHGSLKMGIKNFLHQBA?QAK9OTLJPGBKALMITMIVSMQJLISYIIXNVIGK=CNIUOMGOQJTMGDbLFQUXIBEKFKXSIFEVJIKMLCHLBJJOMXLLIOGDLTHJHJCUATDOMKMPVVnEQLP=U;>MPKIHP\WP@BSRIPKRNI?I>OQMJPNXRE^OFIMGLLXAKKIEEULNDLIJKN?JCOFUHJKGTH\NCSJNGKIBDKHOLZaZTFHODRP@TIEOL\ULJIAUMHSFFQfCNHVPGDINPKJPBOJLKPHSHJYEHJNJKSILPIGEFKLCGKM>NRVLPKTGJKNOFMDHGM\FKLHESSIPIPMUDGMJLEYSQLHINJNHHPKILUNZBUOLMHFHIDDKFFG;NJUOFHRNISOWAQUMNKOFOKJDGPDEPTTEJQHHQ?HHUIMLCQIILOSNRNJILLLEMIMEPBLI\\QJJGKPVKOOKGGJJLJGPJGGLFCYSIIPINFOD=QMQOYG>DODCI[OITPDFNGDECGOKE_LLBDHXNNNUORCMJNMSJGJLKZQBILFPFNGMNJMCQNRQ>EIPJCMHFFSTI@P\UJFUKH[FCUU@XK?QGOGRVMXNLLTFSNXQQVKHLEHQHLCSX_IAXPNQJOHNWI?R;PPTNIPIMMJXAGBLIOLE=I`JKJDSK8ICHVOJFRQHSQEGONHINDFZI^INBERIGGAHH6QGRL@ANINdJORNB_HJEBCJQHCMJUKLXBOJMQ@NDFYSNDTOKJPHHHP:GMHGJJMMHEJVEEIPKIDITEHHJWJUNPNEDJNTXPK?LMMDIMIHLIDIOY\EOGLFIDJLPO>PUPWKLC\NLHDJLMF`HRHKZFHKSYIMMHMKFQWLKPQLDSOIFLOGNUILJTFGG_R@OSLXEVLLQFHRWLDZP[PCNNNVFFOJNTFY]SLPKZNO]ST[VLTSFCJZTDYMeQZGIITZNAPIV>OZP?PXOL@IIBJJCRU:NGFj?DGINLWKMWCHMUPHVWP\bEUJJJIRH[PSJBILKBWF[AEKIGO>CCKRWLSROWMMLMSDMKG=NTCJDHDB8QVSEGPPNSMMPDRSWW=JMJJGGDNIPCQLNKNODHNHPTOIFJBLGJUMXMPHEVKHR\KRSFOQHVPMSGUEO@PQBFJ=BRXEJPMNOMOEKJLGGX@UKFWSDPHP?THPQLTLJVOWIHFGNJQKJVOLDFBCJNWSHKXRHKNNKEDIDWLPELKSJHKADGLYMPL\JCRPLNGDHHPKHCRAGDETJMAAJJGOQHLSFNPLOLOQILWRQSBDPTNRMOMMBHPMNJJKJOFDCJEQVGQ;LKADESQRUMXSJZMZNBERKTU^FOJQMPLVQF?JGPIODJFMO[GXG\JMESGLTRLMF]KAJOSJPGRLMWFIHGDOT@VLOKJILSQFRUHGWPOAEYMTQFQFHCBMLQLgIRKMHKCKNRQEKJKMDGKOINGGLILGEJKHSAJXOHSKK_RK@OWJWKILOKRYIQ\RSDSfJBKQXXEGOIOCENQLDJEAEFUPMFBHUPL]QYId_JOFVHMXH_c@LVKWLBHDHGTKKABRKJTHEOJLXJDUPO@JVLJVLIRbKN@T?WLJKASIEPWHPIGOUHIMMQJKGWOMGLDGGSQEKPMS[NVVGPGMGOOTIRIFUiRONGGQIHYMFPGNRQV@GHHHS`DTKCGKNVWMDFGXGSCSGQSJIL?ODIPORJON]L[SHZNKSKRWJEUQITEOIKDFIUJMBKV[J[[KRGUOPPKGOUCOMHcQRL]KYOO[FMLJMUTJNDFJML=ZVKYN\OLBAHNJJKLOHNQBIJSVD?NPPKCFNMOICGFDFGMPFCMRVBGA@LFDCHFGFVYRNPNBHHGKQJSOMJFHKTUMJTDPSQUDCEMRODKJRXBEJF[KWN]JGC?[HFFGQKLPKLJRHBKZMNOHCJKNIKKDIJFXQHDCR@DCIMNCXQOQOBeLGLO@OUEFSQPSNK^OPOBDJEPBFLDNVM@HNRH@HMIFIO[D@OTMEHJKKGRLQTKVFGJOJAJNFRKVLBMJENKNIJ;CGG9JTE=RJ[NOGOMGGMQEIHQFMOEPLV9HFFJJISGJKFJCNHJMABDEKJdKG?QEVBFBCMTIQLMOLFHVFLPIRD=UELMOKSJQJFRNSSWPTVEGQKNOSFFSMJG>SJIGJFLRGOMIOTEZA]MHLUQI]FGPUQDMPLJDNRZFHLEG?LKFFSLBICKPLM\NRBR[KQJMARTLSPKLLIPNF?KHCVRIOMHTL_PPGQIUFORXWPR>KFOUMXDMIPPRM@PDPDRHREJIKKF:N[UKOOLHNDEO3GHHLMQHR@VNEJPGKPBITECOJROSaKIBNOJBPHHLVSEVERPRQUIH?A[GJSMFJHLISOHLIHNHSBFGLFU[LLKSEMLOFOGLMNNK\CGWVNJWU>XUPHORJIIFLLEHJGLMKKKCTGNAHJBLKGBLLaFFMQJOKF[LIRQYPOI\M@FGHMIGMNLHPIUGSOORSJNGRLLLEKDSLJJNODARFDLTFLLVSAGLFPXJJ]JNKENJHMQ^OWMCJHNNNLOIKLWFELKIRFPDJHDIGDBIJHEKHBGGJFORLMRMJF\IJNGIMDLSFKPF@FK\GQ^SQJHEJMBGLINNHRnPEKJLCJNONKLPPF@QIQGUPFFGSECILMJQHNN\LDQCMGHKOWUJIJRKMNILII?NPQXKSGMXMJMLYLKIOLLXIPLNNMKNL]IHIgKGPLQG@MJVCGIITKNIGKAHGiOYW^I`:cLD?;T?OP7DNPVPeTLXMgKMNEMX;IK5]IXrG[GGN+QHKQaPIK@CP7>O8ZL8RYOMFI_YKcE>HQUGONc@INEAGKb]QH@GQU[UJG\ESGTBPI@FgTjOFUFLOAL=BCKJ_G=T\UNQQEI8CMZGH5G?KFCN\TDP\WcDOGCN[bWHSMGLP^RXAG@[K_SL]OZ1MMQAHJPKNHJQNN=LHBEGQELJBIDMRMNPLOENGTRSOUMKDKJGJVGUNQOHAMDMCIFNIITIECVNIKNVOIGOTUEQRNOOKWFELGJEMERTSJWRSGQJTTFRNYIQHQJBZONLJRMDEWCcJDOPMLWGRLGJQHFQSRQMIPJENAHKELXDIGGD@]EMP\DIHMUQGWMHEBc]ITGAGPJLUYJFUKPHUKEFSJGLHCSNOKPMDQTRRITRMJKXUJLLLHAJPCZBQGIKPbHQNUHCUHMBT:JEERBGKKJRFL>bDMJMJYMLK@LKBRDIMGOPI?GCSVRHENDKKBHNJQHIKNJJMSMKTZIM:PLNQPEJR?HROWRFDMHJJDHZGLFHJDHMG@MGLBCIJDDPNUIGVKOKKLPKOFHNHDOIYRMKDQGWHLRJOCPKBOHFGEHYCVI@SKEVUIU^KIOLQOILI[JQMRJELPNDCEZEVJPSIOLJ?LNTNGJGJNLOGHLRGKNKRMFOMRIHRPMPKMYJNJMHLKVLNBQSMMDLOQVQILHLFIJGHIIQLG?HIOKOPNKLKHMLORJLHJNFLFOIHFRMCKPEJEKPRRMJIIGJTIPDNIScLJHOOOLQMPPHPNGGMI?KLDKHIMVPODPNLNJSLHKLLLX#SCMSLBIPNEMGHjIIIGLRIFLBPIMKOHMZNHSIDVJANLAJMUSKEOLJNONMHQXMKQPLKJMGOLKQKKVIQTGQKFSWPKMWIGMRGNKDGDACKLBNGIHOJRL\INKPRNBLDHWQJRNNFScNSOBGPHGcOWIQUICQIOIYQH]FL]KMLNMEFOYSDONUkqNIHQK-CACLBT(DGHSVNJJBEJIC?RQALcJZVCaKIMoZ_GIIPPMWQTPMDKFOZHJ\GDBNKGLLGGVAARFRNPOFRLfME@EAOOdFZKIITSNOTLJCOII@NJMOELCNJ]QHUSLUSTVQJB]NMQSDGGMIJQHM?IKQFDM]GES>JKjMBEHNP]YGKFFVP=KDJRQFF>\HGGWTJQYHDHQTZKNGOXNJ]PVICUTDTHCKJQIMBWPNMFJBIMNCHTHVRSPRAJHXOIXQGMOKQLRKJJGEIKJOHOMLDJJ=QPPPIJ\TOFDLIGIOPGJGWKJI?LSLNKIOUNBMUGYIRTYLOHOILMOKQFJPT[SFJHLTIMRSRLUJOBMOQEO]IGKWHGJFKIUQIMGJJOEZPPIJNKMXMLPQOISQJYHJKRWMKMIGHOFQTXYGPHFQKTQEJUXDOXPKNHHMReN8RJM[ATXRHRQMN\NDDC=VOBEXB?CLRUWEKLJPYVGNjX;REBQMYIFHAF\POSP=XGNKSLEKEBJSGYOPFGJRJO=BNQTEKGOMX\MAIGHQ@UL?IJKDDIE]K[`JIEMAJKJOCMMXLQMOLKKNPQFIINSBMBWHKLIHTBGUFPHBENBUMBK_ZKCZHGJCDHNNKESCMGMTHCKSHHBNIH?OPAIRONJNTKOOHJTRAOGCOOHbMRKRG\CPPYHGENPSGKGILBEEJCKLPSQMPD[IQIINNUNHOKLOJHJGScNJPNPRNHKILDOTKPAUQLJAKLCK@RIIEROJCLKHQCHISGFVKFFLKYIQGHHDUAP?ML@OMMYNSIRLEMNDHPNFIGHND>FPLMGNJOLLEKIPRNKEFOLNKFV?P@UPMUIWPONIRBHQRRFCRLTKDLUFJFJPQ[QFJHPJLJPLRNJHIMITXJLJEFTCFGHRONIJMNLKRIPDLTNPXXPVKLIGSKJNGPRPQNhGIDZ^KT[bPZO`QBRBMNEQ;@lBLaOIHBAGZA\>Y?SNEEESSMESLQJGCHI?HMPIEFIAHJC=GBI[QH\[LY?RFGUENRPUVR@QCO;NJ[LQDCZKIIRXRQVIPMDDK@CQR;MPRAGFEJHCRYGIAFBIQKJ?HNMNKMQLTIQ?M>HLFFK]AJHMCH@MJUA9DR>K;YRI@DLMOAPIHURILF]BWKVLPLJIRGKZO<;[SBAMBJOODUTQGLDELFScDTKHIFQCQGLBMLIPPKRDNDJJEPCYAUKK;KNXTGWZKNR>XT=LDYOXYLEPGLKWGINc[YJAMGQJBGHJ=JGJGEWASITICPGDEMYRSNIJJLNOCB[GQXSLDJQLDRLLIINGJSNDNKIKMGQNDNPUDJTJFKSPLHOMGINOTNLCJYHJFHMMWOKMKJEJMKFKCKTFXHFRKRSLKHIRELKMOTIGPFKFMLKCLMBISFJFIWMOJOCJEOMJRRNFQFJKHOMQRGJMQGQLJGRI@GMGQJHROLIAJDDQSQHIKOLNXvTJNVUOJKRASGH.LPLHLRHKIMOELJENGRKI>KMPUUCRVJPJDOLFNHMGOMFWPONNPL?IN@GCEROLGPK[NBLLVKOTWENOOKOLJNNNIZLEMGRJMFKCNVABHJIMKNUTQGKWKRJJNGHOEFXKDURAUQEF@?GN=;=KWHG`GERUeRTMSCDFAIbdSMEAQVOJOOd`Q3?XLcLDMFMIV21PE49EUTUQ>QQH9NO:FIb8:@DIDXbH^>QtGGPZJ2KPPU=NZLRBOGZS@M?WTGDVcFD;C=JE^;J:L5IUV;LBOPOH^AELP>r9CF=RPGH@FXKJNGSAMN@KU[FDLUMDQSAENINGQILKH7SRPFGILGWIPEVAO\QNNNJSNIMQPVFJLHHEGJAKNUCQKSOPNOCIOALUKPMFDIJEQPSIMMKLSPUFJDLMPDLMGGAQDO@LKLNPIOBKBKOOLNHOSKBMRPHKPMMKF@CVTWCIJEPQGEBQ6PVSFAEFIJRGPMObJELCERKPIJLQE:EJLRGTQGESRMHDF9MXBD=DTOCKPPLKMDAJIGFKHIOISU_=INDB@CQJKOLVGRQ`R?PISFEHUMU?JENNIG^IWONUGU\SAGNSDJCDJGYWYBSKUWGRHL?OV?F]KL=QMJGPOJGHNLXIHIJOLSQEPEI>LLNMFO>KMHJDKQEGVHJIOHPJLOLCSVNH\XL?GGZUKKFMQIMORLJMKJQOGTLHNRXNEHZGJHONEEGVMKH?@JJG@`JCHGSHMRJMHQKUGGQYBJQGJH_EPMO@LSQHJKIJOONVMLMDAKGHKESKNNFINHUSJG=SISMEPGIIWDMFKO\LPMOPWONEGPKIJWKNOELDMOWHZSZMHK]EL>GTGGOPRHMNJWJNNXSKLUHKFDRKVMXLHERGLLKNTUJPMLXCIPQUK\AVTOAOWARONMI^MIEELKSMOTKRNJXVSUEIEHMJB]FJLSBHPHWJSOVUQEFBOIZVIQH?PORRNMHJNHJHKF>IPM\DDPHMKDIBKPIRZJRLKHXUDHV@JPUSKIQHEAEGCRDSKVKKLOJVFLH?J?KMHMIKCKLHJPFKJVWQRPWETMTKRL_VLEPPLJNQSJHGINQGIQEIKHXOWMBHXLKJOULGJLEVKCDGPTEMCBMMFNSVTAGHI[LIHFHFEGVWTQLLVCMMVUFGRQPKEJEIQQBHFCWCN[LQLWKK?RQHDRMNRQBGNCNLMW`BMOEKMFVNFKQPVNOKQHJQGSUBIKJMSCERMTBEVZEMKHKYGJHJKOIQLISMNPIDKPLiNRIMINDWHOPIWNIGYLNDGRMTEN[RJOFPaGNIGGQUeMPBJQJ\KKXYOGBHGRMRBNHSKMCNYPGPCOPMGVBT8XFPMM4XFXI@QLBKJOIHVDJLYJBJARKWKQNFXQGNJMSNPLKNJVLHKFPKNDLQIVKMFHOMPSACZ?MACGKNELNQAPTEDOO@KJSLVJ^GVPDNGHWJIOENNILBDTVKOMWQGDGLGKPHHCAAJEA]ScSFPRJKFOPQINSGSQJNXKXBPHFJEBRRRGCRHMHKXRFHLHEGGQKMIS[SHQ@CNGFKDJMGLGODKEIMGFEONMRSSWKNAHFIJOUHNOSGDHOQEWPINSTEGOLYMUKNILJGLHECJFZJMFV^P?KIHKDP`NVJFFPQOIJEGIT>HAGGPUPUFPLJLQDEHIRGLJKPMWKJ]LKOF?FMRGVNPKQLEBMDMREWEHFLNDRJNBXGGHXDO?NJNJAIPbKHSNHZCPJEDIJ?>I^JHN>TK_LHJ@MUGWRPJGTPENKGGRLIITSQ?LBNNAK@JLNJHJQMKYFCEKMOODOTGMDNRKNNOAHFJFVQfFSFUMEPQFHFPFUJKCD@CVGSFRDHQNKI=EPJJCI@HFNPAVILHP8RPKGEMMOOGJIJOBHINLEBLOXKIXUITTRLPLTOTKOKLUDMKOQTHQLNCO[OIJPMLEQKJAPHXK>LD>NIMOHSQJHGVFMENWRRMTFLZEKDARLT?IKLHBLKLIXIEFLLQKIMNDMOJ>OMOEXGAIQIPQ=O[WLQOOGOEERJEEOYSHANSQHEFHNWM@SHIOFILANTUOSRJNTBLLYMNGOQRZQFKKM?GLICL]OFKNMPCJDGKYWKGPLOTKKLFTFHKJSGGDGDAGDDDPRQMKJIHFNKTFKIKIAUMPCMLP_KK]>LMTSPMKHG[NPMOKYR\GYFVJOQIYHKRRJDHKDYDRVGIUIELOLVPMADAFBBTFGKBFGJREPPKPJLG@LDMRI]IOSSGDeESPI7FOWBQPOEPJCIGLK@LRJSGLEKNUJO?LSDKNHEOPJdDOKBPH`OFIMKPMOHYCHLaYOOMHW[FIHCDNMOSMU@PDL=NFHJGTCWKOKIOHHN@FP_TJNEsTMKF[B[EILOHSXVL@L=KIJUlUGPUKJKKFNCGU;GLMLbAdR@MSRFGYKECVFVPUNULMJFTKM^BNOHcNYKNRKNNZLK\IKKIOAMPKVNLMILJ]ITVEOLPJQGK_DHVUTDUQRSICQWKKTBDIOOIPJNAVFFXQQMUMCANNTQHGRN?ZMOKC@KJBNNLHKXINLGOQIJEHLVOJIZFIMTNFGJPIVYGEJNLXR?RTMTWJRKHCKTRMEIDI\CTKUW[XTNSNWLQISRQYOFZE?VIJ\=PQCIHQGGPTVIVKXF[YIUPSHUEOTRMKU]I]]ANJOFo;HMKWEZYJURS\H@SNPJO=ENvEVMSOJJJEBLITLEAEJJMKT[QQFWYPLHLOIOQWRKQSDKJALGRULNPTUCOOLMMXMNBMMD\AOS?OOUL=JII?=SJKHUEJROIbNJNXCEUGLGG@CFJFCKQNXHMVEKSNMJLTJSK>?HQLAHH?JMSDMTIjNSJOFHMGHWPGJDNQMKDGPFODMIQ_PJ>^MQJQX_WILPFJ<[SSEI@EOMNFNFMGFNTJSIDFBNTJ_KK@DOMLQOPLLKNJHOKGCKMTLWWOGGS?LBaUKVONMIQFEPKNUMUFOOLEKJIEMLS@ISGMGNC^QTKJLMGGHGINJSDWTUEGKLFMLFLCOFG[PQJKQSNRNDONJRJGCPYUK@SKCOJDYJRBHSGHFIJSDPLMNFGEHEUHHEDGGPJQLIP>LFPPHAJLRHQKI@JEFGEEJJYRETJBXSHVVEWYJILRAMEVLDU]JLJPGNGFBETUCNPFNSHYDHEUTTOLUHAGNOKIRZHJDJMHXKPQLENFKVPFGSXHGGVSCPIGOMIKFBQJDGSIQVJCNJKDMRKRKLIKTFONJFUOEG]GEQEKJSSNMHGB`JMGHQKOYMQNYLLHTPEJ@BNMLVLHCBTLMfE@MOHG9@CJNLSJEHFJFMGEKL]RHL@UNGSFHURPPJSRIIOQIG\\FFLDLKNnJOBQJ>ArCEJPETKN@FHLFRKQFVI;UM@@MR=DGMMEMGHHMLQEANDLJONMMD_lMCJGMOBNREAPZQECMMDDLR\RLNPLCFFKtDRMZFFLI@W=LNOPPMEFLIFLKT=FLDKOKYNGJGHTENTBCbKOOIRCQPKRYGAJIKLFJHSQGPTLTBLPJSZL>KMNOJMUGCEOU\bDONNGHAICRSFJPKONRNMERRBUSE@QQF@NJFRSMDKLOOMPPPBRJNJNZPNJeLFGM=LPHS@GNPJCNULKWITMTHIQCMK_HKPCLOTIQETEI?LDHWREEIOTQIHNRZRIRHILJTVNHRSSKVIIWAHEFNQIEK[GUABIYKHLR:MOBQYCTDFLAYJHCGJZ]ALOOMJLOKN8VBRGULXJQR[MULINQAEV@BOQLQBKBCIHHTPSJLOIDUEJN[NEDF@OA@MBHMQG]_QMNXLFOG]BOLHKWM]R`MIXQDSJMIIZQLGFKDNOVHKLIVAPN?GAWH>FKHGCGRPILFPH^cDUKMXLH^JDMOMUIHHQGHLPNUIJCIOHMPOFKIC=JHIAL^TRMLLOHCKHMIKDROWLOI@ANB=TWV;YQMLQFGDIHTRRHHLGDLIQAHKJQIGTUOP@]GMJU_LJMRGCYFKFRPKNOXXJCT^QJSWJC]K?NXIQOKLNMKDMDMVNGIAMHLJUUQLPERQKLJYKRGIUQIT`NBRROD[HMTIKJGNSQFADGHAENU@MS@FNNTITKQ[XTSHTXQJOKKJZHERQ?POMTQL\IKTKKPXG_tOd_?PGRJPJUIJ[RRFOSSSOKM\SSIOVVMHVMOPSOCPMZWDPGIHU^RUSZKGOJIXUCZWASKNEUHDNJDLHSQVSIGVFO^YNKFMMNCCLPJREQJGFMMSHFRSKgWO@LVPL]PONEPDOTMBUQV\;WbVOJNOSWFL@SFFIHJPFOAMUN^PKJNSCVGGKRUHPSJNKS\LSEOVSLIN[eRVN<\TMKOACO\LbDUFcFUTNFHI[KONHBJEPJKEUDIRNIN`QKDHKIJPAHJCSLVKOBLFNAR\FPNCQWSDHO6[TIOHEJN@SODMIHPSCDgWOXGDBHWIEMMGIDERKJOCJIMUDTMIISLQJSLKRKHAQOMLZVCMLLEJOQHHGHINNJDJDJIRJIOSJEHQKDSJaMJ;PQOMIHQ\YHPKHMUGOMEENRPQPTPIMKLKLCMOHOUDRNGHU]JNNEIKFLJXNJOMNMMFQILDHF>GOBFEOGPNQ@SVGDLVNDFWAOK>MAXK]NJOKWKO@ZJKKUGONHO@MCPKDJNRLKHIVEWL\LKPVAEJIF@GOQSQ@NMPAMBaOSILWQGOGMQMOPTHLB>DBMGMHBUJDELG>MJJQNFQLWHTWLHIAQ?GECETPVKK\@YCMQWfMFQTR_ECGROFNEIOFMVRAAaIMMIDL@L[LGEQBJOGRQJLDETJTHE\JACW_G[\GIIaGMFDMMEXNZAHNVQ`@IBY\??LJWFC_FJJMIoDBCGIGbNGcAWPDam?XQHeBMPJNPHRMDJMLKBFJEALCIHMREJKSEDGGPGYCQQFOJLOLJHBDOMKHQSEL[EKPLOCMKHlHOLCEIH@QHLHMVRIFQFDHGROMNYCEM@RPWZRMHODNXFKIKMFJAEKGIQv?KPFKHNLOJLHWLPJMR?YIFNNTEOKKOLENXHNQJIKNJGBIRLLVINHMJHFCFBXMNCPFAPFEEHJSMQMJLNJBBPLO[EVNGIFONDNRRKSNO?UKPXMFD`UJJEN@FPHKPFPPOALRTFXAEKP@OWYDZJHPIIVJ]CT[DPIAKVEDCP@NNTBLCMQMLSIEVYJOELLILJETGZOLHRGHLJGNMHi^OMQKLDOLEUSPM?FFGEQILJiHJHHLFM@MPNKULHMHWHKUH,\GRNQPHBBHIJKQJH^QPKJNGGTHSIAADH]SL[MGJEGOWNDNJGSDDIVVPJWMJI_DPJHQENMIOJOYHG@EJLHNQTDYMP?HIJHNWMKKFKM^a?COPEAFJVNDTUPKMSM?MLPNOGNGLFJSNVDIdMWOTOLESFRFPJHFUMJHIKKKNKLJRPTNMFOWJJVMOPKWLUWMJSM;QGSWRMGFIJJKMEMI?KRLHIHDNEOGGNUTSCMCdPhMFHFSNQSFGRLITBYNQIeKMLDISJKLmSAXIJEJGHGFEILIOKDDONXHJLLKJRSEJVENLJJOUSDcIOSKJJGGSBHYOKHLNNRL_WRLHKBMABFMZZGXNRO\7EEPOHKDQL@RAJQ@\KUBRQ@G-AUNIFKFCHhOOGXQRID\JKRDKIHAcLHKDIPIGKH}RJAG^IROGSFAGONEGKOJKFNBQLTTLLHMIASQLPLTNOEHHMWIw?EMLMHISKIHGTG_N>CR\PbAWDNGF>DNBI[OFPTLUcPRGLOSQFM5GJ]@HIPQFFKPIRMILLHJNOFSKSLQ`ZLSHVKOMQCF[JJXIBKNIOHLLJRNFMKKIUTKGKGHMXJILKQJUKUSEHIMNHNOSQPESLKRMFPODNNOFMOKDHFGJLDXRVGJVRGKKbPNJ@JNJKNBLHQJQOT>QK>GGONVBQWLJMMOSLSLTJFJ^BLZHLGI=PTIEKGPEEHNIYHOPPFLCVGTHBDNNLNFLLJNM?SEUOCLGGHOTLL]EDIE=GJLKHFJPLECMJBHJMIC@\D@WLUFKLQKJGEOOJHUJLKUR5ILKOGKNNSJMNGJLPOEOSHL6F@LFS?JILLKIOLRJUJIEQSIEHL>NNIRHTKNNCKNWMHIUJRROHIGHQ@OGKLHENMCMIBJHVRPYSLTRHJCFPSKMGMQONFLLIKKFHSFONDTNSOOLRPUILHGDKPDLCKDOMIFIFIIGGSLGSGJ?UREJKDKbEUHW=SREPDTgRVLTRPOHYKNBQ7\RFJKIVE>EFEIBGEEGHNL@QRJ:SJLNPDJG\NPDNSIUS[TIKBIGTLCWASTHFQKFLRPKN?KFVV_NNORFZKFEFCEMTBOT>HH>PGOEMWJSQUETHMPRRHNJR`NbIJSK;J>>9:E\VGJOEU]R^EWDILUF?KGVKMIM?PKSCD=A]IGMKSCBb;8H>C[KTCQJOOOLBPRULJJLL@B^EWAKL.aUDJQSFGDCMPGOCKZNHN8F6PIYEHAIBKO=NXCFIBAKEAF@XJcUJQZBMQMJEM@?QRI\G^KTD;HAGCTMTWLILAGPS=N>CTPOSAPkRYQWMYJ@MZFHLBOAZTKKMJKY\INDLKJMdQHEJSD@HIRC??IWPKF\RECDIO]QTPRIEIOGKVVWELBQPEAMGCLHKLMSRITKTKQIGUSXFHEFXFIRNR?LOQJIHRAKEHIKKEHHLIILFaEOMIREU\YGYISGQQIRROLOKLSEJUUYQIOPJLDQJLLUJESAMJIBKHJ@KQSEPMSFKTFKTKWK@IHQPLWRFSMRL>MKIO=JVQXLCQOCHP@NFHKSHGNM@ILETLDDPGHGAG4RK>OUBZNKdAFNQCUUAPISQWPQGEEFYXOAGWJQU?ODRAFJOAUQISNG?JGPQALNEPHGDPPNXO;FJGNEJYRTNR\EMBP>WOBCS[GQOGRK@GSIMNELN]TJJNFCGDHJLUIFMTFPP?KJSSFXNPNMYEH=NZUDUKKXSMKOHQX\BIFREHNZTRM>EO=NIJIBMDUMHGOEPRVIQGQKKLXRJIBADPYNIKFHHMPSEIIMP@SLMZLHEETMWLMAA:JRgJQLIWOPKIJNLUHRDTQMIOIJTMPDMMBOMA?CEHNQJMPJROM:SBQJWMM]JAEPCLNDMV>PKLIONORGIBIIG\KJZLDXGKMIACDCJCKH=KENJS@CKFfFM\G@QFCOCFKOaOJ\RIEQAEHJGQc@JFKNEIEOGJSGL@HLGDkMPKKFAKLEKFHHSVOCDBMOQPiIQE]CGMMbK\_@BcFOJJCQLK8GBUHTF^HJOGAPSLJ_VB9WJS@FFMBCMFGPFHLJKO;M]LKGISHAJEF@BXPKAPUMEFIQH?HLHOMOU^EGDLaIIINKLCJ^KKGVCPKTOCYOFMLJHHP@GSR>NML?OGI\RBMI?PPRCNMWGQQXQMO?MM_LLLPQANMOGGJQFRRDFSNOPMDFHMTGDD@CINNPY\HDEIRQPXPGYMBNWOK\FAMLMINLAEKFPBOPFPHHOMHIHFMOMJNKPKSNHKJGLOOKGCSM?QFHVMPPJTQCO=RMRGUMMOTKRJNNRRKPIDPINPLHLLMLZLRGHGSPPRKIOIKCCCLKEUBNSPQBKLNEAMKQ]GFKFMZENLFPGSIOXNCL@VGCKMSNSG?NHGGFHDFKMJGONTOZLDRPRSOEOIJFQV:P>RXGDIUKSTILSHRQ]?C]O@GPTEQLGKNQDRGJSHIHQENRKFKBMNVOLSHEJSMFZROMT][HCWHKFBCJ[IOYAVAHVTQNV@SNTOENUKI]W:RKJNOXDNXRNEKR`QIEGKKZEAWVLIR>JPVNLLPGLI^JNGF:NNOIT=FJAIQVOV=KMAISFETKR8_KRcCLAHPHJL\PVVMJETLDQMOUEQ=< IUOI=LPIQWUPYDPQKKCVIPJKFJMDUS>DOUIIDCOLJKMRTEGLMQ?MLKTZRI[XNMHJJGQDMCQLAFXFMIINNMTXXHKCJMORP?IXTAHHLJJJJFHMMEWZNHRETLUGMH?JGMQKDEINQKJIKEdGFTQNOD_LLRIJDDLLSHGFIJJOHMLLM@VFIFIEIFIPQ;]SBKDIRDONLWIGKPCHNIJUNGPbNORQ@NNT^HJG?ITGHKGJYQTAIHC\JINHEJKCNGGIIGTRAIJHNKAJBEHLANCHGK@KGFUEOJEXLGSHTKIRQFCKKMHQENPHTAMHCBQMDIOC@A@MKNMNGIR?PTVAGHHIDFLMNHLKLQDOESMSNbJPPVLFLOYTKIWTUOEDTJLTMOLCHGQHLAIOKOQNLKNNSMG@HNMNSQLOTHUOONQ@OJDREKI@LLVKMNCFFM_ILMBBTVKDIQTPFJMKK@JPPMOGI=UMGTUFEKKOZK@F;JAPONPGPPPZJNILGEIIIECSZL^SUI8UYEJMALSMGLEGEUH[OHQ>MKIDZMFFRQL>HNHTPHNOROPBMSQNDSLTHINaP@JWPQKN?NDVLXKLOKIJGFJ>IULHYZLECHUKFBOITIEQTKTENPGOEPRKSOPHGCGISDIFKJFNHLDRJKQJUENJUQ?BHTLJAX?LRIPWLDTM=AFZO@LC@KGLHFFFJFM?DNOK=GWDJULODJTGNHOFOKLSFP:BLNBLHKDHSNJ_NCADLJMMC]X>HFRGLPNYBFJTKQNFBF@UQNEPRTHBMHQBHLC\TGCGKDPHI^FIRGFIIAOLSHVMGUM>HHSKMLMMFBWTJK\JKMKRQEZNQPCQOFHNKQKMMDCNKMQIGLKNP@LPSMEUMILQKBQLKKJPINEPPBGQHETMLHLGOAJGVGAGOIPNHCKKUMOQIHWEYGJPNGLPNNSXKRGNNQJIOSO@QMHPJK@EGFIQRHYDOIHOFPJKOFIGTFMEFOJIP;GG>JMRGFLLIKQVGINJOHLNEOIUOPGKCHBSNDOMHEKHT]PHENIAKJHNFCIETK>FGIKKMLPRBRNHINIYTVQIHTQGQEDANRIJROHFTQNJKEIJPROIDOQTQIDMKJALF;RMP>JKHIQMMNGJNPLMHKGZGNGLNUJHOHMEOJJJVOLJWREMMNJNJHILKHOKPLXMBHVWFPE\WJ[RQMFILLMAKLPTXBFALHYJKUMDPDKKKLOJFLILGGLJQNF?KBIJJPGNLKHFMKNNMMPINLMSLMOVN?IOFFURHFFGLFVFKPDJFHGSIKGDVE@KKNAJESHHONE`VOPYGOVSOSJPIKREQEOHOYBBRIhQCBFMJIPXFNHJUGLDMDJSTIEJ@UDISSJMULBXPUEJHNJaOMNKUQMXPQFSAPPKLL\GKVMIM[PRVTEEIJFKCUEGJ_dXID?ODPLXB?;XONKEUNJGIKNTUQUVNP?UFACGCST=CU@SGKIQY?ENUKWMHJGJSVKTB?EEKRHIQJHYMJQEIQPXRGLHISMEHRQHAFHKFLENCHFU@NIOSbCJMMBJNBBMUFBMbHRL[QJLNISEH^SaZNcJIJ]IVLMSGQFKG;OAOFLFIHCRG@LFLUM^JFMKAGINNFQRLPMNFJHEHKIRJOMVOFGJKQKUMCV\VORIHNNQHF^LCFUQGUTQJEIFJM=FSFPNJ>GJSIPNKFS\BHEBGOOJHQLFNGOO@EUBFWTGEGDKSFRIFCJJD>FNCNVK:JMNHLCBNKEFIJ^JDLRM?RNFIMFMRKPWEJPMLMIAGPLKH=L;R]KDSdF=NHRFZ@DJGFCHEJ@@QOYJEQKHXVFQMCQQGNJJR@PESH=SJFMICPUIOVROJGP\IHIQEQALUGFDUHARSCJRKGMWZKDNDVIO?SKOAU@PEMETOJBBXHN?OXJRF[HCPFFDPFCKVLKBJE^HSGLSCGMRFMO;ICBBBIEITNEIERHLRVINOOGBEQHJ^HPQFHNQPQFOFMJGFLPKI:ZRNOE[M=CGTOQMQPAVDQR:QS=NNNPHG?KY?eVOFJZMCHSUZHH@AJNHKJDIVMNWAFDLAHOIES?FJNQFIBP9L;TUEII=RMLVKBCUKEETQKPDDOEQNVEWJJRHKRQF_JJJRNLPFKAJZJOAANNIWDN[BGFLAPKTQJDILGIaQFFCSLIKJ[SKUSN;HSHGHKO:OJFIFQRPE]CeHKOC>KMETFSLiRSIPI>HRGNSEEF?@NVJ@PXPXTIQCGXMOD?HCGVOOPAIKJQLFSHHKLRSEILRBMMEPLHNPV?FWNOTekSDDNOIIC>VQTOGJL=@\O\Or:IB@APEUMWNQFUM/HOITFCED@;PFVRVOZJ&DGcJGHGMKKSLGWRKKHNEENIQTSBBKQQRGJOTKPHSNPDLGOF>IEPKOIDHVTFYQDT@BSGFDWMFNC>NTN[MAVLOHDI]M[TOUSKZHCHPNDINHNQTRHCJPGQOARKUODYHGGYMNOGDPHKILOM<EOMNPLZN9IOJHOBLLQDHTRICQGMGQUPQNBQDLKDHKLDLOEMFKFOLKK`NNRMGMGZJQFMMHMBPUWNVH=DPPGIG<PLRD^BdJBDAB;SGTBCAKEHIH:LELJNMOEFNFMJGOEIQJHSAYBJMEuV`CGGKSCKE[BTHQV/IYMQWENKRMQI;WJXJH[_QIFLaPL\CMSNFJWCWHEpJWK:LfXOS]MONRJXFIJRCJJOISKISIPKASLCLDJMbI^OdIGKMYHgIIcMGITCKIUC=KFMNUJUGELCTEJLTR>GNDK>AABJcYBJEOZYGXBPKGKFTWQUGUV>UMZcJMS\AHRM:ECK:WUU=WI]BQGLKDEHAPMALYYSAMXFGOO[BKQPMXJSDPEGTGLRJUFGOQWKISPNJFO:GHGDMLOOJLEGBIMSXTLQSGQQJADDLLQ@NOQIVIF[LFL?S@JGIJR[`ONWKIIIKQFF>LLIMQVLOQMB`JJCEOXQ^PHKQEIGKMFJHVQGGNSI\^QAEAHIOAGIIPJUGWMOMEPRMSI[GLWZVGQLPMI\LNOFMWIOHCJEMMPRPGKNMPAPZFQFWIIKHNU_PRPIQL@NSPGRPOGFPMK\DKSVKMVS@STPDMXUKBMRNHP@GNMYIRNAGGNMHOOEEQGJBJTFOKGXDGPHQ>QQZZUUMMQEJJOAB[ROPMTSP]TKVXURGPYLRNGNGVP^[MLID[PZTLOGJMJXJMYMWUMUITCSSGTXPKOBOaJQ^KAGRVVOSVRSIPLEHVROTPIEHDCHJFKNMDJFWPICINU[KaO]J\RGGY^IVUP\IY[PFQMJRSKK[KSDOG[GObJFNDLRMBRT_LWPHH>PQAHJJQWIDPIIJQEMDGMTE`LBIHCVGMBHJJQGMSGJQIMDSOLLFPFLLGaOJLWAQMCSJOMTRHMEHFOHLLFGMSAUA^GJ@TUNLOGFNKY9MIGYKMJJPOBDGRBJFCIGOFORHOENKFEb\JYXNENSJLO?RQOUD>HGHONKIJMTFFOOIVPIGQGWTSM[TMQLVLNVEE=NXHTNFLMOAGTFKGOKPKKM\MHQLVFIVPWLDDOXOODMFPIWMVQWDTNHQPJ[TYLLXWFUHSWPJUPGPQQOKKII_SIREEOMGQUMQIUOPFUDOVJKMFGNIUMAMHQBP]NNLEKOAdFEN6LXlNMPKWXJRJOSRM7IEJTOLJFGTOMUHYPJC\SHYK>OJKG?MVN@N^AMGGPGDLEVRJXOMVJQIGHBELKFHISRPIUVODVCDIURLZODULQXONMIFFHK>ILKHMOCNHEEI>HNNHIUGFUGJVQLJDK]IJ>NKRTJAHKF@QCLGFDFSDUETTGS[GFIGIADQMC?LHH^KJFV?MR\KHV@SKQDQBOIEPKTGKJOIQTPSHRJLMMJBGOISRDGGVDKOENQ@VMOGACGHAKHPX]NHNANSNDRPGNMN@ELMNXJT\NELRTREISSOCXKNWKODOHCcKMPEMLR]?RIIXMIGJIPGKIMOQIIMJQ`GKRDFNOHITHITHRIPLOQFMUFJPGMKJTTFQPRODKBJANXDJWKORODGQJIR8TAPKSP@LVERRGLFNM^QDXHUTIJOFCCOIIJHJHEOKCF>PZKMHIFHGMNAKQPIAFDLIJMJKKILSQLOGEFJSNQEJJNJDALHR_ENOIINDSVPKRIO@GLWNJEFJJQNNNGGMOGYHEYKLGHGLKSSGDFTNGFKMMKLNBPLJLJPMINEJQEDFFNESHLVPLTXLIMDEFSLXHEP?FJJEONQDNPHXKKMLNRMVJASMPE^mOSNRQEqGITRJDJTAHHPBQUK^TXJSMUKLXYQNTOCNOCBTHFNHNNVKTGFJOcJTIZRLFQQYFNKVE@AKTK@VGBA_XMLSLFJ[@NQBLIVQ>SMIBXDLRJHZHIJKQTIK^GDTQEKNOENOHVKMPWQKDBMOXHSLMGWKKJFJOQKHONAJMHQWMPFJ\FFRNJUMSJIKLBOIFHN=FNLMOFLHH\PDAWTZOKMPXSQKYK[XCHOLOH>EGUGIVHKDIMKKJTDPLULQDHMDVNILBQFJSFYDHBHPEULPHNEGFTEIEGFMRI?RPXJGLTLSKRCQMOLHGSLJIOPFUMMMPUBMQIMGMMFJIEHSM\OZCNN@JnJWKBSHEJPMMPNRRDVGVLZKLLHPQIJOPZMSNCIJEGFG@KQTDONG^=OQSLIKBIDWNOM@JSLJEV>MOOIOKQLPRXMMKMQUKOTWOQKJFWIMNHDLNJRHHMHZKLBMMKATOCCXUTHQIXEOJSMLDUCKOLCVLUMISLNWIYJH@OKHIHWI\PIWNCPSVKFHAGFINKFGaIY[NbA?GJHDIII?HQVNP=LGOJECEPMLCHOQEN>MNJBX?ARMOBJUHJLMJMKHKE[ESJLMJS_X]VGZOQJH@ME@GLPKDOLSBUPOJFH=AIHLKEKWFJKFWOFPJKNTHDNISBOILM>KKQRLJPOEESDIWQIMLJRMMVPDFFLIPFIJPMJLCCPKMI?DKUFJPDQVIHNHIOHOV?EGQGQNQFMSJNQMHFTGJ[PVUDNUHLQMFNULMGHHDD?RRLKIIMGCPKVNJFNOEUZGDTRQJRDPDPOSWPGPSNICLLFJVXUIJQKYJW>JRNEPERLMOQRRKHJOKSLHTC?NPSPMWHGTQQRMTHQUG\KHFKHMLRGKSFSRGUQPTLQHPHNTOFKPUGHdKHHYQGBWTDLJS=QNEMPVEIRONRNMSTXKCEJQNDGNPKJYQMBPHFRGIBGVMNFILIGTJKIMO]EIIKTDTEFRQJDQUMRMIQTIYOFL@JO;KSPHLQOLFUJDXNES_PKOPTENQCATOIMVPAIJJKZJJHGLQPHFUF^KDCK\JDJOX>LTSJQMQEGZ]HGKKLWJOFdJGNT]J[\OHREHNZKUSLTCKWYFIJVJOHIFNMMIGLLLNJOFQDXAIQUCMPHWSDKRGJJJRLLUJ\PQKSDKSYPHQKTQIO=ESHLRWSHIDKQKEAQLOSVNOYEGKPPLQPIQJRZPYFOHTNHICGJRSIKTPHMENMMIDKLLOVPNSHKQOOZJXROUKO^UTVIHLPMKNKFLHFJHNKEJNHWFHITWOFS^WODPOGQCKQMJNQHQJMSICPPIVRLPPBDKEMCTIFEIRL@WBBQeOILDAUPCA=NI8HLLM?YNKQNONORCHIHDFWEVZDWIP@UQYKHQIRTLHPEHMQQ_JJFHRCSBXGDWRXGPPQ_RMLHYKPFMTLIHBMJO>ELI;W;D>IJOPONGRDPPVDHDLUGKPNZNCQQEPREDIMKYEIDJTUNTDMPBMRCFGFGFZ@CDOBWDIDE]LIDM@UAYKIKHbOOLJAFDJNOGKHPFA^HBSKGKMKHGMCOUOMRHRMIOcTKJFLPGWNDI?BMEAMNELWQFKEGXKYeMMFF]RFRLNPCILMB@LHNTGKOJQOLVLKIPOULIDAWEDINOIUBM>[PHKIDGMWMOOAKRLOGE;KOG[DGH[WLEQICCN>L@N[BKOHMHANVGSPPIPPIIIQLPKHJDMNRHFKFGMIEPMOO@ARI/OA;RIPLCAJOHB@PDIQ?KDHFHHEBDGHPbJNLBENJLGOHO>GNC?FVISPI\S@FVmKLGG>HNSBMKMOV/DEUXHZXQCOKQL;M@MRJ7HOP@CTFPCKKTIKIHHMEMKGPGJVSdZNXIB@QQQMFJINLIRQPLMVIGPIG?@FQMYQGOTOTJQGJOZ9DDUVKGIFEQJBFPAOGJOPDRBA]JHOHBLIGPOCSHJISXJSJUKSICF]YDQGKLOB>RJHQ>]HHROHDGFLPQRCMDQALD\JKOVFECPJF@KAKRKYBHSOJBCCTGKHHVMJEUNHILFLONHLKWMCFVDO^UHTSNQLHIHCG>PCS\IPHJFTWPJKSRDIRERHKANTHRVG?XFMLGUQRLM>V>FSKISKGJQCZBISEJ@ACUQ:PQVL@=NHEPY>HL=KGE9MBMXKC:cO9>UJ:NW5>UPRG/P\UKGDGLMMQQMSOCcGOABNGLUOPsGTkZIXDKBOLJCAIMOPSKEIGHFPRT[SM_LNMJdXLLJ<_JHL?GBERiLJLNmJJQF>FJU@ONRBLQcTJMMITQe5TPaBOJLCJRIMDHNRKDKGE@Uj=JELXFJ@KMPJFGFDQFNEQD]EMSZYKTLWbJAGNHLJHQZODFLH@IK;CMLQMHT9LDNNOQXHGKGDYO@JGNONLQPTGIFQVGS?A@J\QEUJHOOHRPJIHQPHEO[JFdDWRFMGGYWCPONCMLGMIPPIPLOHMUEFNKOHDRGHNUHV>KU[UFLLLFNDLUEKIKJQQEIKGZJHUNFJDACIPCKHKGLHAQ?RCDFGMLHDGLKKTIBYISU?GMZQOKLQHEEFCMFJVBTRJGLGRELEGJQBXFP@CISMKNJHUODKMRPPPLWHDFJPHJBM]MHHNTUBJCLIKIHABJHISUKKPITUHIOMLBUPHOIUHURHJDHG_JEEQBQAT>M\XIMPNFNKJJQGPLHMJLELKNHGEMAQINKKIJLLHKDCRLRIJHIOHTCWKRNGJIS\KEPFGPJILMPDQMKIMFIIQJGMMGGEISOjTGV^OUYEJUNIFSJLLJKJFLQTAPNHTQKIIMLKKBKSPMLLENPOFNPENKHKKJIHSNLCRGIRSCOIKHKKEFXRJNPLLFDIRQLKEKQXOJRJNMKGHOJHLFLBKRPLPQHD@ETOHDCC\IEKOEAaODSHCOECJLBTFJHKPMJQPVDHPFHLKJMHHKJIOGMOEDQJMOKFHORWPJFXULCaNJIOLBV?NETLKZLJNHNMIPO@@XOML>RCJFGLEIJIPLFNGJPNPPFIOQKXZHNZ>QAQJVNSQAMTNJIPKTFFFH`RONOKNUXG=RF@M^THBCDE@JEBOFRNKGNTIJTJWSS]ILCORJ>KLQ@N[TUENFP_OHBLKIZLLHOHBLOMMDDOGKX^JLaHEOFDSNRITKOCLI?FQQ[IVEIRNMIIKMPQDHEMPNR>GVPJFOMKPF;NAHOSN`JYWFPIVJOMESQHFQFYJKKMCNGHXSQDVMF?KQRGID^E:NUAGAJK;R:IMGBCPJAVKK:MDBJNWE[OKDHMBNPK\EFNEOGCPKVRRD>JIJUS]OKBLSIMF:UL:NCCMM>HGTUO?7LKBLAgTVMCPDLBP@P@JJRVQYLNJKJJMARMQOYHcOKMGNIIYQOIUHPLOTNQVJN^JPHnKLQARMRPUGKKa?BKPTF]NLGLQRMBJODNLGM;QJMMKIJISHPAODR:KE4fCOFHGKNeFNIFJNIF`YJYLNMtNLCICMDCKJUEfTE@FKJONGIeWKNOMOFJ>NMRWLPL\NRMEHPHBIdU\MJ^PNINWMQMIHPHJIJACMHQBUKKILOXGKHRIPKNRRSRVGPKMIPIMKULJJSCLNOPJLHFELGPISPGIIKMIIKLJSOCKBPOHOLLQHDILUMFGFONLMECSMHQWHSCJHSIKQQGEIKHDLQVCJLKCNKOG?EZLJKWXKMPVQHONUHn:QRTSKaIImMKFRcISFLI\HOGPELEJMMb`?QJ]IMKZROKTLG_IHEAbJASGBXDEDALE^PB@j@HCJ9IGS9TQWIMF@@[LfLTDUJHTZIYRdQ=NFEEH`ZTI*FGJGTFMOLHTHbP\OS`;_AJ_HWSKMMHLNLMKONVDWTWNQPPHHBJKVKGOKMBMOMBNHSZZLPTNRITOTOGLLGHFSNVHJBPR?GIQINCYE[PSH]QDGNENUKCLR?eRQCEWJGBQH_JKU:QEGUCZZKMST;DYCRFO0HSAXK7KBJUFINU:;LHKAF`KD[;GUFV@JUIOFGC=HSVMS\SJUDPPKDSLDDDIPPMPMVJTJONQANKKRMW@TJXDIRJRCMTUVIJ]HEQN;NLYKZDBQPAIMSTHSUZOM>EESOK\H8MGPIUKOVPCKJRMENLMQKHNNMNINGJFMKJGMMMSPJHSJQEMUAKLQUOPFOTOIGJI_WNHV9AENNONTSNSJFNGJO_ULINQJJJSKGKXKOSMJ`HJEFUVOIWUJJ4OKGkKHKNLEN]QNOKDMKNOI:UANIUCMJFVMO]\TNQADOLLKSCHMWP?ISMMMJMmHPLQLNQKKKGSMJeSSHGEMSOLN?DKOKI_KILXFHQINI?LCHVILH\SJVKFRFIQNNQAPTFGEOSOP@NLFKJLRRRJNULQLQSIARI?[IDKLCHJIRGEHJKGKOOGKNMICKCQXMPLIKCNOLI@MMHENMMJMRLGEEEHKLHACHDKG`EOLOKIHFRGEGMJVGTTEKUWQG[KIBRGQ@WBH@MU?LKFDUOQ=EOFBFONGCJNGKLDIDKOPUUPDKS`GHAVNQSKCHHnJGRJAKUBSK\CXPGDVTTHSDMGGMR]IQNQONKLBJEJPBRRRMAA=LJQJKOKIMFOKF?KECAHPOSMMHNNAMNSaP>OLYL>MDNMUQFJMHG[HSSLCMTUGK?GIPW_KOPGNKeKHMZYLJRRG=GHMKB\CFEDK>XUQDFTbI[SUGYRUNXcG[VEGufQMCTUQH:YH]UNOb_J(/fJ`IBNNW+WTQ=VWQ@WL;}N]NGDZXGKX[W`\6hSI_EXEVItDFRP[BKXMRXWSGBQLITFWIYSK@VU=FTCUMiLQJMONWb^]lGRGXCG@[WEIVX?WUNKNYZ>:Y;CW$LIRNKOR8F7X]RR_=IXLTD\J[WR:YUUNIJZKEOJF\LOOAJOPLDHXMHOWIJMHZLHEJFKFJISNRLGEDLIIWZDIFLSLKREGQRVMIEXOILEKCLHMNDIFI]LSFEKQOLJHIPPNXKO]MKKHMCKNHJQLBIARRXH^JHBPJTLKKIHIOMPKRUR_UIELJFTNZPLPLPRGJWDHLPXTYHEDCJKJJLNCKKHIJKKPSQIGTOZXNJEGJGDFMQJBCPIHcPNQZXZLIN[JJKWNK\FE[MIHHIIYKGMCDZNSQVJFBLPJHFYDNJCDUKPPBFO?SHUQEVO_SOPM@I^LNIBOLLJ]LFGNDNH?O]GTACDMZMWIIPKLPHIKJOFPRJHGIJQJLMCWEGANO\KCTGMNKOCISIGFKHDYJRR_NUJKOMSIGHHNHLOGXTEGORFFPIHROBG:HQOG^NEKJN[FATOP\`\UFJAKVAHRKIEDV;JDKMIDG@SBI>GJDOJINBERRLMXCILPEHULZCNU>\IPREMJ[LRVJMA=UQIONRCVPRIUOMTLHOTKENLHKHM[AIEGOIIORMDDLJSTTMMIAIQLDEHPKO:HLJSMMKRMIJMPPJBILKVHSUHLJWQCJQQNOVKLGPLOLGKOUMMPDVCDRJHXbRHRUKNROYJNKUCJPRTGPWQ9YFK\DNNLIILWP>SJJBMMIFUFMJOPOGAKAHNLKVDBMMYQSDGGLMQWJSGXCIEPAOORHDHYMNIHLPIWCO@ZJG`O[ESYHITFDHOLEICRF@JcKANQOFKIDJOJKPUORIRMTOUH[SSFSFKPGMHNRBJFJDDFIKKOKCPHLOQG\CMSKMLIHDQPL?>PIVPBROWI=ZKKHMPJQ[LRJLMOUNKAHIGTIVRLLTLERORIMDISOLNMJLLMPQBSHQKMP=DEJPRJGMQQHCSLX]PMR]?HGFPOSTXLWHKIGNZQNFOGAQPPMMKTHNJGGWHNOJSHIKTHCRNONIJIKJNBN4PWUTPNWHPG'LGISU>GGPFMNCWDKMOEEQMKWNKIZM>NFHMFGP,J_ISKWPSIIQMLMHLCVKMGNTSGNUUQOSGHORECHMQQBINDLIHFSNXJKRPVXRLOOBJYLPNMNKBQTYXOCICNJINULCMLXRNML?NX^JVRHYQPWOQY?=QSLKZ?KLPMSPKGSZIHGLSGOQUM:WO\HOAJQRLWFLPSLXLJYMLK@JRTDWMELCIDJLOUKZLZUWQWEGIPILPCNQWBO=ZPSK=ONDOTMILHKBOC;UL\?FNOYYEBSNBBO?NFMIRNZFIFTOHEWIAFKCNVRQJ\M^O\IVRNBJDGNRLPFIROIVKWOFAPVINI?FJFHNLVKCMOOFKJKULWBFLDLPPRJKGVKXEJMCDIQWKOAQDOLFIO>LDGLNFBHKIPVSOKBOJKPEDIKGHHMAEFFJNXUTIGNLUIJGD[LBFaIKDQKWHFNK\JGYIRFCQPCM7NFGJHLHQLLSPNRFLQ_SXIJ\LIBLERCEQPLNFOTLLHHIQYKPHCOJOKGE=GGIYNMLMSIMJR?LSLDHGRPK>JGHNTKJRQJQ=GJMKNQNH@OGLHOKNQFHLQAGQKPQZECLRdJNOPKPDOaOHJQFFQK@XJJGP_LDFIZ_FHDLOOCFMPEE9NFFEKGaTINFLPEFQDIGBGRLCR@L_SGLLMQELODRNGROFPDDF@MKGHCIBFTNGDIIPCIYJHLTFKeQUM@RQNA[@:MWFOVK[GO\>FYKR^TRJHILD8KFYF?VMME>IAMIVIZRRQSFJ@EZEQ_PNLQ=P]RKHDYRXNAQ;JEEBEQGGEFTNTQGNOLMBIDLKLVHSQdMQM@DC7R?PBJFDA:CHUHSRGHJeJFJAFMTBSLW5ORMFUOVHN+KIKBJSJ?ULEINLW>UB?MNJHBGUDEWFKKVDDGNPFRLCIF[EUWGDIZD?MMQLJCKJ[GXLRGMDELLKE8GXHODZETHFG\DBNNUGQSAJBMER?IMBZMCIHETCQM@HQIR^PPK>DMJIMO\EGKFLFMEQXWNFJEPSMMHRFIEGOLHR`DIaKBLFNYDcFGMNRQRAQKFKTBRP=MaSRGHILGPSGGJFGQLQN_GEIQIINQPUDH\KEQHH;]FJWSQSPAKCN@HGX@OWMGRJCSLDXZDGLQQHKNURHZKJHMOGQORJ[MILHDXRMYAIBJON_FGOGCFWTNHVKFLZKGTXHNLIMFKNBPKTEFTFI\DKKSELNMQFCIIV]XLQTCSOLNHCAGWLQD>QEO`]DEMBRQEVKLUJIOMRR[KJHONUGOFKNCOPAVKLSOFNFHSPLKALNCBHMQGPTHUUHOFDJTDMHHQJLOIFLJUJKPNQNDFWJc`LFHMRKLJTBUFQIWEMHLJ`MHVCSJS@IOMJIJHRR?SKZOVJPKG;JTTMMPJKKEQDFILL_GE\JKPGNMRUFNIRNHCHHEKJKMUMeJJGFLJQEEONFKGPKIXCZMKBSeOAH=GBHEMICCP>dGNOW@DUcQRMCHW8C^RGPGMCNDFNIJIH>L_=LHNK;@IFBEMPcKO]DIRDHKZGSFELKMFZMMXCH>MQKTLPS@RMOUIQDOT@UMSFG?RCSMONeBJSNVLM@UGR@MJF^OTMKLGJSYFSRVVUT\AO\JGTJKIJGEKFGKOEON?E@HOEILEKQJKQMOFQODQ[CTQULKATO@NUMAGVQKZLVFKONTIWKEMMPGCQEQPOMOTIDLFYEGMLFPS>GHEJHIDMGHMLJFBIJLEETJTMHEVKEHIHLLOSLOJGKNJ?JJKKLQYKNFNHLJNUFQT[DSMKRNbMRKMMPQYTLORK;MJLPLLKNPKGRKLHQAQSKGXPILPHGP>IXSRGNOEDHHMYCRMO\IJ=GWKJAKJHMlQDPDAFaGQHZLWEBG:YNbH>LG[BGcITCHO?c`BQUDUCMJRQXQHOHYRFHK[SEJQG\RRRJKKIFQJBTNKEAKIHPJESQNCANOK?QUNBRJPBHKEQI`LJDQHEGFE\O]WNSYGXIIKOTDHKCEOALZU@WIGPFTNANLGFBOb?PED:HFULTPNGIILDTLHFPEVICNNCOYDSD@QMPLNLKMNKOCUKFJECDTQ@RSN:HUH;R_JKKKOLFBOBBNHAHEGELN?QOHEALGCSDLYOKJQEIFHGHJIWGGRJPNNA\GQJZPTYGPTCQO\@HZOCFEPOEFMENKHGODLPL8HAKMPJIQQRIJVI=WHVKIERJKAIFJIL@UDBGXP?ZCNTOMDJIIHVJLUSVFDNP@DQGINQSJKQTIPONDJIQNVKEMPNXOC[MBE\FZSKLEX@MOOVJCQLPOLUGNKFLIFMFVRWCAPZLSFKBHDAHHLP@aIQNK?R?QQVDNMDQH@LHJMCKRIKQCKLLIEOJdLN6VESENPI^IC]STMJGOSSJKC@UGX@HFRFLNRKFKGCDPPTRNE=SYQJMHOIIFHJNPRNOFGEKILTMLIPENJMJFKRJGQPLJKLVULUKGSZOLJWNPTTITXMHNEYGGOIMNPLQJPIPBLGPJIFRFLKTHGTRFHILMNJHMMNISPSLSMSPMGGHQLOJHUMEJKNPMKSKVPEG=IHWKYRFLNAOMWXLILHMKPMOLKZGQKRGGHJTYOSPPWFRPWNHMFQWJXFMIMHLBKE8RLMIHKKDMOGGRLCPFLBGTKFNPK==GXMIHQIKN^GSHO?IDIEPKQGCFOTAMWFKFFNTXWTLTG@KZGYMMJHNQFZTELKOG_ORG@QTKPRFJLIJFHRIHHPLRPGNF]=KaHGQUVHQCNPERKSOJNDDNTDBOQJHbRZQKHGGMJEDAYL@KWICKML@\MUGUQI;PIGDNQIWSJVXOQSIAFAIRJKJPLRZLFMQENKIGFJZHHGPHRMNPXQSJNQEQ^HSJOICEZRWYIOL@SSCCJFBKKKLZJSG?RMPXKPZAPPOTNPOEJHHEE@PIRNLRXSENEWFIHGRBVKQHFOPNFITTEQIcGIOKUQIGJJ]ME>GKQRQLEALGTAANNEL\BaILURTQENXCFNKO\HYEQHYFKBRDFIKCI@DRMIPFQYCKKUQMVNIHDFU>VKTUKAEMIF\>R\VUSMSPHV=U@ECRPPFTF`DOGE`AQLf@P@LEDRDPDNHKODMVIIOOKLQVIXYESNNILKSGONIULILNDeLGIKLPJKMMFJJSUKJJSSTITEQJGFGIMNQHKGHSIMLRPKPPMLFDIJHNCVGIZHLEJMLNLF`GGWUGOSKFJKBJIEIDFCF?KPTP^OFHHDKUPJVUJJQOHQYLLHGKPLNMWLNO@RMO_EJJLLJEDOLGQOMYAbTSGMSF\aXTJ@PWSFTGUK_DOCQRIIDDFFBMFOEINLLeQFHMSLJMRMNHSDUZGY\RTLAQFEfGFIHGHMRNNNQRDEIEFINNE^IKGPURGMSYNZJNRPU5NQPCQILUQQBNELPCKMIJFPCBXIQPMHOSLOGTHPLIBCTG\M>OIMVGSSM`ONLG;HERCPHMFEHFSFOXOXMBOKNMQJPKKSGMFKO?L[RVUNIPGLGUKKEMIMILFLROOOVRMEIYWKOQPSMQJUQOVJ^LN\KHUULPHLTLDNJKOOOQRHKTOEQDWFBMOFOKPTIJUKYMSPHQUUJKOREHHKIHPGPXNHDOKQQUKPRITEGQQCJICJMJNIHKBYTJRTKKKMEIPUDK\RLHEKCNBLKTPNOMSOQFLLOHEFPJYLFASDTPHEKERHLILK\MSMLIPPPLJOKONKPTKPQITULBVXWBNLMOSV>GMNMO@KGQSUHHB^IHTOJGSJGRGND>OIAWPQNEMJMR^GVDIIBYUHLDGKSMGGK?DGHEJCLPDCLSFDLPLOOTIMNA>FQNDIPNQQJIGHKJJLLKIL[FUXOCTIE>ITHQFOLTMSMEUMVT[QPO^HIPSFBDLWMOUHFMVNGCGVWJQHDNPCEGEPX[M[RSXLOLIIINLHTQYKFHPAOLOELQOMRJSGIJYIAJNHGWJCJUSBATQJLQCONKSDLBIKHRQGIIGDFRSVSIRGFHESENBPMWVKGJDOFFPPGHOUGKFDPTLGISGXQLJIELJJGISHJT@IFHQENMNJOIPQLJKABSSPGEEOEIOLMKKJKENEL@CVJM?SOU@?FOGBCDMIKbHUGGDQTAHCOP[TALDMLIHNVHX?ENTQMKDCNGCPOABLERPIIHMH\PFQGOWHMTFLFFLP[NNPHGNNJLLJ\GRJNH[NFJLECFIILHMKQJJ>RBGDUNMIVLIQKMAEPGIJUNUHAWTBCXXQBQOBKNL@GM^FLRNOJUKOEFR\QHBNT;RYNIBCENGAPSHEMH>MFKFFQQGKKJJLMFIN]SGKKH>BZMMYJPCND_JKITOODKQEDHFBUVOKWJD\FHRUDTGHPIHLPL;ZOCQJCLHT@QDQUDHNEMAUYO?UL\SKL[FQHJR@FNHTIXCPTDGIJNOIKIMST7IO]KUHOD[IKDJPRJBHDUKKGTMWIFISLRMSFHHXRX@\HJYNZIPTCNERYpJ\YNH^_FPNMXWHBEMWZX[BqM`[fZURNKCH[WOEtTSMJFOMETHL\JML_NKHJRDTSSQnC;FDZQLF^ECFFMR;WY^TRTUURCTL`cGXPiGbAJML6ME]XKQSBPNAKAXFJPC91JVBFPJFNKQFEFEHMNJTJIH^OODPBMAQGJNOISJLAKQXM[IMHSOHSPLMQJWKVAPJJIFFVZKOCOTRONDKLLGJRCD]H`LSFZHLFSPEUQT[TUWDOQMML[PPXVELECMPQUNPJTIY^FGSLORMQFIOJBQPQMIHNPPHKJ?ADSGNJ=KQHFFJUQESSVNIETTHKJSKOHIODTUJGGWUGYJJJHMNIQCJPYKFJIIHFDB?ULIKERHKL\LPM=OBSLKRORLLNI`KQJ[WVAGGCPIG@QLOINIQLPIAGJKLH[SHRPMLAFPDOJFSBJSH?L>JFZA:UPRTNSBGLFH9RDSJBBNNJKUNAUNIGQMGLHMIHXILBVTRO@FJEENUMWWMSNPGDHIGHUP\JHUNLFLBILSASCKHINBVMFO\L\OZETIOUZCKNPHIOJIHIMFTVLFOMVPMUNJOOJJJOOB=DIOULOIANSIKMIJHIHL?=UIPJFTRJERVRPKLK@HJNMRJJTTKLHDOSLJXRWKHPNG`Y_KYLFFMRAGINPOVMYTMWAHKJHHNIBAQOAKTLGMKOHNJEQBTFD^OYDQOSNK=>L=ROO\O?UKEMAEKIRMEWHFMQOGHiHKGEOQCV?FL_?JOPPKAWSJHPJHaVETYJ[MNA[LXQ_TMIRLW?GUEOKLRJO]WRFJNTIAJI]CBPS_CEMXMEHNTGQEEHA\^MNX[RG?FPNMMM?LGJ=BNUOLJLPGLN^bKLBLKHOIJXBXNCL@TKMNXGGJHQFKCKHSR[OJIPSUJGKIORQGXJVRYRPNJKLPUPJGKVUKOQNSLHAKIHNQKVIRPLLL=C>MMOSIHMNN8KX?KSRKMOVLUKIHUIQLVMZK?LTLALHPLWQJYzLGCQOJKMDO\^NVLLMLGPEI ULISKDPPL>LBJMQTLQJPOLTV=JLNQGGPRJKOMZMMKMXQIGQWFIMGFSJMPGFJEHKQQAQOMJUMOOJMAH]HOPFEI_PRPZIOGJIKNPOTKEEXIGETFDNMKSHFEXSKIOJBAXIPRWHH[GJZHTJIFJKPOSHCUSRPROJJHEKNJFKHBCHOTGBZNHLHNXKMLHcDTJBIOMWGNQP?QILLENNSXINRPZKKEVNRMRUISTPB@KIDIHHSKFARSI>LHPBHIIMBGVLJLN?IJDMIPVQDGRATJWCIRcXSWHIIRROPSFPCRLBHLIMHFSJSBNNFNVM3GNLKD_AMUBDGO@EBBFNPH?QMNOKNNFJILQMQ?GQSI^ROPQSFfKJGEQFQQHISISMUNKVQQHQTGFDOHWT@OCQSRPJLIULNLHJSRLCNSDKDPHHMRPHTGVPBJ:JMMCNHQQINTQWRDEJGUPRHVHGOKNjOI\LLL[KOJHVFHIBCOWOUMOG_LLTFGWCUKaT@NCQNAFW?ZTJMWDG@HOJN@JQ=HBE`TIC]=UTFWJMOHE_ZRMDA:P9_EOGEoO]NE;EPM^IUVTARV9KSN=CXI@@JKBBULCKEB9DIPQ[VOLW>Q?DDJEKTIHEKNdDS4FHPJQHSHKJQKCLMLD:PJVPYTYXKOIVDOP;PNZDDJ6QU=INNEYTTSMQD5PTZM_DBdJRRPFNHQFSRPLCSSNQITUHEEGML[PFHWLLLDIEJUMJH\=USP4PPJGWVHOPJHFSMIWVVN_GOPSVOLQPOJ=MC=KULJMOONDLJXLMPLHMSG[?HGGDMRLSNUJMSTQNKPRJKNNEDEPLKIILEPIOKUIEMNLJFIOJFBSSJMZMTDJGO`TRR>=G]CESIROLDMLFOL`RZPLHRXNFJOUEFAOKIJGDI@ZCAPNJWXLJNQ_NUMDGHII>RHLSKMNIHEKEJCEJXILJTFRMNGKMKJUHGOAMQTJDKMOBPFIQMGRKGIPTRJCRCNKNWENHSTFJMIKBHUCLIOGILNHQG@PPNVPIJLMJSKNGSKJJSTQECHFZYOPISMRGIGPC?MMLHOLVHMAFGNRGERFDLKJX[OKKCGIOLVKPEKMTINVPLIHCGNMKHONMH[IOWENONMQ]LNKMKL]ILMIIG\QON@MNCRGMPFNEPINRJHENCYNaBKEOOLOGFNFZKPQCKESFVD@BSFFRPT?ECPQSRLQFHDPDM_>MBKK=RIQTRKRWSFHXVLF`UMFTGYG\UESRH[QFJJCMENNJMJJAVWEPKDL@NJCWRPHFODOKQHG?IEKCPJ@IJWDIRKGKBRDKGRDEEXMJIOLIDMEER@HLHJSFKEKNNLZ>OIPQKSOaPSSG?@NBQLPJRJHQNEJKMEUBONKNGH?BUMgQNUOTOSKZJQNLSSMRPMPWRHTOBHVTKHJHOFAPJJPMPLWQOIHHKR;ENTL@PHILN>OLPN@LDNJKE>GPIMOQPKNXJOFDHJOFPVO@QQEIFGHlKKCCNGDIKMNMPJBGJSFHIMJRQGMOIJHNLQGLDLQQELQGVHLOFMKQLQDTRPESNNFBH@N\BDNLIPP=ECRHIUNRPFMQTMHJFAH[RTPKEVQRCFLILAPPKYUPENHUKENCMMPQWLN@KLLNMFMIQSJHFPIIGINYJHDQF`NOONVRRHGSQQDYUIGFIBJPEGSLIJKGLEEXU@GOIGMFJKMEPAEPQHQDKNFMODJQJMcDNHKHVRLAJGLK]JLVJ@?WJTKQHLOKHeNPN[P[FHLQVHHDMONTDFEFBKGM[DHAEDMVXDQH>E\FQKGSTOCHPRMCVFQKKQIYIORFG[^HGIJJIZNNGMRBJVJTFMGU\YVPGM_NMTTSLIAQHKI_RKMQJSOKMRICULHJNFPFGGCEGMDRPIMCBRSXL^GUIIINJJSKDRRPLJCTIDFGTCOIGLIMTTKGNEBTJMGLKNCO7HNK=YSRCGMBJPMJTNREIB4NDNBJHMFGDBDGJDJMGNNIM\SI\JIHOORMYNQQMEYTHPSUYKLTT]BQGPGHVX:JJHQ]=SEVMQU@CWIKQNGGNGPJROMMIFJ@PSHWNCEDWQUBER]FFHIMOJLAINOBQUHRHHSOCWWPEJRIISKDKQFHHFTMPJP\ODT^VFMBPSKPMJHD[STUBMNTK?CMLR[EIQHVE:VFJ_IQQSPRRMIQFPOPGNXIaBKOB;KNNJOLJN?TPOQQFLNDQZURSOXHRMHRCGMKAIPVDETGQV[LLMAR?DFKPCGEJFBHJQJODGMMMDULBTLCKF@PM=^NQ:RS\AHKIYGBEJTOENLDFUMRKLCHKCIR[ISEBNMEKGDD?HQN:LJMOALKDINPKFRPNGRRFSIFQVDHITXPKHDM?IIGIKXVNHNLBKDKIIQOEHPGL[CIKHMVTJGCMIH;O@UJ]PCFGLNJFHIOEGOCSHKKKFLEGGJJKDMDJJ\GLKXGLFIXJJQLKSMJLFW>ILNNWJLHOLGMJPGPFJKQOHRIMPCILLSKGGMBMLTCNREFRJNPEIVGILITHP?KJPSJPQOHRJJQKILHIKSNTCD[JIGOERYFTEMMLSCLORLJOPN>OLII[JKHXFPFMJJSDNNUMGNNQNDFKLELJIIMOJJMNOI@GJVGVLQROLIF?OHBIDEKTNRPHKFPLLVLEIQVLQEQ>JIKQHSMLXRLRGHKCGLYONFIJFDSLFG_?ZMJJSGVDMEGJIQHHIVLSCBJ\UOFUDIFPIPIEEOUJKTNMPNMEBMEEKKKNMEVLHFGEMHBEDJ@RALHGRCKLGGDTQPXKQBLJFSMH\FNQKJDYPGENQLGJSLJEB?IPELDVIHFYFFSVEUNDGGLSGERGFMVHNPPYINHII\WNJHDIHRHKKYIVUOHKCSIADEJNJORJRLTOKMHQJOLOKMJCDBOIYOMMJLYFH=PTPKGQCHFBLIL@@GQJOPMJULOQRPJJFRMPHSICZCLFF\INQDJTPPFEKSCGUGLDLKLAJMJPHCFUQ@FBGLGOPMWSPVFNgICIHVMOJIFPPIOJRBPEGOHHMRVMUFILJKKMUIMKNKHNONPXXPFJYLONJMZTIRFSORIT@OIQBNDFXW@WLCHFBRIAULG^QORLJ^OLOSGLTULD@IPONNG?BYRLAPEJWKHGTNQRFNQCEGLMETFCEQOZGL[WN_TQKPbTUHEMNF7>VPEJBTKZKQIM=CGARHKMNGJJOIEQP>KEG[DUO>GHDGOG`AHGESWJYBIGJONVPlOEKMOPKHQHNPJRHHROFD\S^KTQNLOLJMRJNRQEIIMUHLQCIDUMIZLLNOUKNDFENFbhLVTGCKOLMKBQAHKIX;ASOEPWXRINHWFMKHLMLXOOIKGKeKWKDQKRHNELGSVMJITPIkHNRLJSGQFQLGNLQEAJVSTSHGGI[ILKPKGfEEYQZSL]@JENJOGDAKGJOI\Q^DIMSIBKG9[DWNJQTEUDGHDKIHQoE=KbFQ[OJIIQIBJPELIWMIVKZUBLZFMIOGRKUVITSQFI\HQLUFIGM=LT?ZFXJKT\EPIFOY_NFVHKTIDUP_OZ=GOMO:NG?KHTJXSMZRQ@PQO]KHJZFRVKBMPFNJNJPXLQP@MGaOPODNTJNRHYSFJ\NCUDcTCHLLJBRP?SXE@ESFQRKK`XYQNOMOPKJODLFMDCGDZKJQKMVIHKOQSIGNRRIZW]LPGBJCCG@IJMPJGQMTAJI_OBPFLEEJGGFESQNPLNGSKMOOEAALOKRMVXIJJFILDIQHHHTHI?]QBLFHGFLGQJLPFPJQLOMNUGJKFMLFLBUFICGJGJILGEWORNZJRSU_T[NZFEMN7WIIDJ@JMfILTTLFTPAYPQRCQQNKCOMFGMMFM[OTVJKC@HMJEPMFMFERLLEJHNTQAFSIQRMSGHTONMSPMD_IHKLO?PXMVUHJPCHFQNPRDJVC?Q\MVLLGPYMBJO[TQUPJTRIDOINNEDOPPKODGGAKWT8FMODJQSLO@SKN;GUGRHRUGZMRCOMOKIOT>KQFMLEMRWEPUJMPOIFLOOLOSICIIODWIIMTPGPRDHAPOINSXOELQLVJEPGGXOMLNMPAHTWZVPIMMLNTBHNKMRTOLEBN>>CREQAGQYKDKIJVHGNDKSBCPOXIXKHOKIIMCYJHJV\NE?HIIZPLKOPDNV@WKMKFMSRORSLLNSIXPMUHQFNKGINQFCOFKPCBFKJPQLDJSCSJ>PRJOOFIJKF?GPIHR;WKSHMQ>ICQAIM@BLJLIIIGIRJR_GTC>GUOnHGKNMGAMFGPDL@QJPJNBIJKK[DGMHR^ISILA9FVDQBFHBESGROAHOPPMSPBRMGXICDQQQOFKQQLJGEWILVSGCHIOPOKHDKIUQYTNFNHS?FMGUKLSQFPN>H@ERHMEKGMRGKFUORLA@SNJPZHWJKPJHNMTL@JANCILESPTFNSNGGGS]IGWPJKE9[NB=DXJGNKJATNINBDSDCFIONCM]BIUHDRWI>PONEIFWIDMMOHGUNPQFMINCPGNJRGENFOIXS@MGEXAEATFEMTHANTQJGFELDkPQRMLJKQAEQOSCOKPFIJJSK>JXPJOJLNHIFLUEMNTQMEROGM=PTLXKDIVOMGTRHLSG[JNKHQTPJTRVBYJDAQNH\EO@PMOJHTQJGI<[GY;@IQGOPTVJJEPENW[]PH\RJOKHHMKSKCLLKJIXQFSNHMcCPMI@ZXFNXGFQJLTXWHUGGEBJCS?GFCXNKVL>HDUQGQINIHAELJGJGQRDLLBVQUFYUHFKMLFNIKCJTOCVO[QLc>LEGVPQLFMQMFRJLNcSHB^FPJM=VGAOWQXSCO?PDRSR;\RDRGRJNLDFFAHIKMGFFLBLPYSIHEVCHKQMOGPLMXPNMLH\NRQHCBPJJFKLHFNILU?UFO?IUGRZPPOHPIKKI@AKGMEQaN\[DLGQDFSOJPBYAV[XFFDFMEJHQ;KYTRMJHNHRIQSDWLGDPIOFMRW>OMUEGNIL]KNKUOE[VJM\N@IOGR<@LEIJ?HNIDPKMOS^NIUMNMHCGMLEBZGXMSASMUNE`BKCEMZTOQTRFENDHFHHHDXDPUDKT\PLMRGTQJKBEHRJIMDHLKHFOONI@9OYOPKGJKHPN[KOHEE]KDNFHFKKIKOSTQE>PNUCMRJQJQFHOPJJKOO[JAOMMNEJLQ?QEbX_GIGVGMTNOOCG>JO[OK\B@HCNJOCINLhQBLJSWENPEYNSKCDXJ>RLRGWPJEXILSMGOdMHM>T]KJGLLFHINFRMLLFEOLKNHCQMTNKLKLKeKZLH?CEMLcKTIRCFNQPNQPWGFXIIXHLP`@Q>IHKXHKTDMASJVHSOH8MSWTNG]FEIMLUUJNGZLV@NJGXIASEDIDEMOKXVOJENPLKNTIGAWMQDHHWLQGNRDWLTFPMNFQIMQKNGHYFFMFOUC?QMHRPECOKBMKTRJORYRJDIYTFEOIAGDGVLFLKINFAGRWHGOIPGHMNGQHNLIGOKQHGRaBHP?QJLPMKP>cBSOO\RIOYHJCLRR@ABHHHOMRTI@SHPDQ@NIIPM\GHTFIPJMELKQJPLNLBJQLPIKLFHDOXWMLMGINJFG\DOFLEOIKNLGSCGHHOHHMIQQTQRNPKIKLQEIKSKNHYEZINLQIHQFDOLHNJJPPUTMMOGNIVRVHULH\IKLKGOTMHMJMQKKOLJRLKYPDSFEBHUDWMM>KLNFROI@DI[NCOF[O?[HCRHOHJ_JLLJNXDKFZUPOQHEJJEOHXDDCEJOVLQNEKYNBQLHOAIAJPL_LLF=CLNEELFRJGIPLOJGVEOPGQMKNMGE@PJX_IAPDEJ??NHPGFFVKSJL`YVULPSO@>WaHOEF`RP^8PTWf?K;S@WQKQ;SL>CQ4DNRPLeSbd[FMQPdWIMORKHOMKW@=.ENZOML\HXXKFQcJRL_BLZ:JPMKBXPHTCMQPLMK[U\VPO<6QIQR[N:KFOJ@MNN^AIWTX_RVRV7XR[DS?CDPF3BUOKOGQHPWQEHQURCPFMKOONORBNGOIYFNPKLPGEKUJDIPIC[PUZFKSNSLNHGGAG[JRIMIIIJTKJPDIIEKIJNLKLULHDGJLLZVLJXMJSGKIDPNOJQVUTQEOLIFGKJQKUKQDDOMTIBXNOJFSOHIIDQQNO@ETUIEGBKHPRKWMC^ZGKGHCOLLHENGIIOOMJJYSDLDQFF`LJX@QNJKKKbRKHTLQKEGIIGILVLLTHACFCIQNKJCKJIKhFEZGMBVFJOCHHX`FOHQPEVIDOMOKKPPHENFFNIPEHIMRCQGSWHWDMFOPPKMLJOACEDINKLLHOPVEREKFLJGTJMFIKP_BGNKSGQHG]LREVCOJMQFO?LT^EHLIMMSKDFCSHMJJjKBFSHGJL\MOQTVM`PEOQRQHBXUFL\ACPENPNONLMIMSHILCDTUNQR=QKM=LZFRIPIIJBRFFOHGRK?QAJIHKJLIGUZLWIMJHHCIRISKHTNFEMJLVFXTFJKXFWIOKVMFJOJKTKDHMPIILBHLISLHAIAWDMLICZMRTRJGMDPKJHNQKRVUNPGIMJRJGHKEIRMMFJMOORDBDJRROHRLLLLFROEFYTPWJQNBKLNJDOEHKJTAPKDXXAMYVSJH?NBHKIUEOJJKQFMDCOUV?TQHSOSCZJMBEEJBJZWXTAPETTLKQ@TEIGPHCSIGQDMUNAGU[QGHFX@PDNTAJKQ;RFKDYCBIPTLKEG[RMBAPJR^HBCVLWACGKMFCDPNE@JN@ODUQJLO=HOFTTMPHUJA8CAWGCNE@SHGOJWWJJOHMLOOFKONEMORNJQONSRMGLLRNXNGJKKKIOJNEHOLRGFIMMHOPEMGOKMQMJKHQLJGDMSLLOLNNJNAJMCAPJQLCMSRGNPRIFIQNOJKNSIJJJRIURLK[EQIFPERORLDOHQMPMORJEK.PMQGQLMDHCOPOHLMJBOJQHMQjQJHNYMOPSH\NB3OMOOPZTGOMXJSIFYFIKMLNIcMHRFDFAOGC\XLT6DJEHDFJPSSJSILVHFOVUK@BYQ?EOIMEVPPGKTLOQTNHODLJLINNCLKIGRKTCP>CMNMLDJKPQKCLN@CLJJHOTCEFRIFHNJM\CIBSKOKKXFYNHFHPKAFSJNPLPNQYNLPUJMMRIJJJGQFIXKKMRQ_GE@RO?PHUPQOMVMKMSJGELHCQXKNNAECTOGDKLFOSSBTFHKLAEEMHIOAIINI@PLOGQFKLLGGUGUJHOMEMGFHKDCVRKISQOPCJCZKHFGHLEDKJJPHFIEPKESEBMIJDJMAKZHJYTPCEHGPNOQGMNHHAHOSJMPLKDIUJEALGTNWLF@JIOHBQKPEMNUPSNQMNQMQQYLDM@H^ESRaQCNJNXTHKHKHLWMKSFLI>ACLFNHIEML=QGROHP?RWNRBIQIKGZBSLPDMUTLKDKNNFQNKWWIWCBDBOLJMMWEFRDROOKLKJFQaRKMDDLCOKEPXGRHGFJIGHETFBSGHPPEKJEHEIDTJPHYNMIIHMOFONQRJOJMHXOZK>GHKOMTGLHNKPMGNRPRK^DOJNIH<[Z@RBJFNDSNMTGKJEHJIJEIHOKFIU[TKGOICGMININJGCHIKHKJLEHDPIGJJGGQHKTD>VRNLJLJTKEGISDIJKOEBCIOV]JYCNKQLJTNS?JTGHFEKNAKQEHIIJZOQLIOKSSF_NIQMPHDWB;FHHKNJFUFM?SIMKJOX=FHK@QNPDTKHMUKBTYBGRKSNNSRILpKKOONVNVRGqNQ)OLGIFIMOFKLHOJ\GU^JRMNMFHOGNKOQEHEEJBDPRPKDPHFKOJHLLCUCAUSJQILIJKGHKCIKLJKFBDJNO;LVBNMMLINN\EKV@BKCOPHNRFLLMNXMUQGPIPQDPLHNMJLDWFj@NDDMNENIQ@^ILHJMVIIHHEHHTIJKGIQJGYHFAPKMPNSOMJ(^OJSOKKSQIPLNQAFJHOSPEGKGLHGNIXGMLLL>NMIJNIBCMBJNILEJFNDGRIHNQDBLOQJ>KKHHDR@NDTGMSGEDERJBPOVYJQJNFMBDLNJSFIAOFQN\KES[IMMKOC`OKLFTIUJKGNNKFTUNKNLGFJMJCLNJDLEMKRTQWKDHbLSWRRKNLOEO]HIM^IEMYMOSMHLB>NXNJMRNRFNRFLMNLQKKKIJFILKPNCFKIOGOLNHPEQGKKMOHJNZHGNNRCGHS@FK=KMKMMHTSNOMTTKMMCJHMOBUE=TUDCWUMOF?OOGLTTOFIFNJH@JNQL>EMJZ:MFMIL\MMM[FTREJQKEK>LDQGMNGTKMGENQGS?JJR@PTRMWROFKPLRHVMIGPK^HJRDIONIWNJWXBUIQ?SLNHdLAERRE=Y>QGJTQFJSLKQK?EIO;DFKABNDHHGIEFLFVP@EIFJF?UOEFXHEKC[LOJMCRFD\\FTBGJWdLHIBFGGCNMBKODMQWBOG?JHHNIRFQSENRNFH@HKI@MMNEI\AMeHHFDCT^mN\IVNRMR\MM?RCPSJRcLYLVIKYMN8ECLbEOOUP>IXYUVKN;QM=UKDLHJOSRQLBPWPUJIVONW>ZFUSC\RKOFTHAC>LEDGJGFGOMWQQYRNVQMPKKLHQEDM@IGSHMRJOS\GCIYHCBQNKJFMPQPTILQFVPELZJJTFTYLFDPIT@J?GC?RETLFQJJFDYNVSIIMPMXGHIRMRJM@IBLDdIGKGDGIIIZXFIIND[HUIJFALIXICRHTLD@JJS]FIVNDJPARQLCHQRF?IIEE8WMw[IKLJO@HJaDCYDEAVWJCEQDNKK[DBJFMJTMYMKTDJEFMPK?Q[YGPO_XQ[AKDQ@GJPGUP[MIbHGTXHHBNJ@G6HPBMDCAKG>EQTPDJI=F^[RCWbGMNBTFPRbJRKIGJNNFERUAKNVXDCHKULIALGDOJDKWLHSJXTLSMLMQRU@FGLHLCRM?NR?\XKYSJQSKQKHZHNFFPIVOELVNSJFHRcOOTSJNOPIGZL=KDGIPEPSFNPCYKNYG>BFJNPTPFK@>FMHCPHSNGIHMCETH^LVHRKFDHDZCHMYQXHYL>F>IFEHDEMMKIZKDNJOZXHK>GYQFLVKPEPKPD\GGEFIHEKMUSGIICPIWNAHUKQPKEP?TBUQTNP;BEJFQMIJIJ@EIAPQK`LENG@L;DMD@E6GEOKACOZGOOIDGLHDFFJMSWKGPCJC_QAHRHDEEMPD?IG_FAJIX]JCBDSKIXIEWOEJJG^I`ECSCKKIHQEOFBOESCIGDMG@JOHDI@`MRSFM^HPKH=NJHLDYJDW\JGVUZKOKUHFRL[IUVZRNDJ\@HQJHVfMUN[ZEODRWKKVHOIQHHHK_D\IUQLKO[FJPFKJKHHHHMKIMYR\MQRLOKMLFKIAOJGDKPRDLOJNMPJRDEPMLNHDLKUQZQIOQDAGEGJOQJ\LDNGMNbGFJBSHDM]MLFJVMGJN]PJKUZGM?H?JCSJTJPJARQSCDDVOPGILNJQHZLUGALSFJJKFLQKIPLQEORJT=IIPRPNWNH;OLQMONDLSBBUQ<]SUYHYXTXKLH?QJFAKR`@QVKRNT@CTFCJOFEIVIROaVLWGIIIJQFTDIKMJQMONNUNQLKOFCGDPLKSDQJMTJ>GPHNGDKT>LLGQKYLPXJGORJHZVJEEGNMIPQREZIGICMEPGGTROIXFNNAKEMLRCMOH@DYVMQNEB@FHMEHMVUNDSCYWR[DLZJHCLMJRNI=OIOLFIKNTIGVNIVLD]PMIOUSSZFGKZCGKDKATODHMEKUJ`PYLJ@EIOMNOZMMKOFNPAWQMNRKHPMWDIQNNM^KSKIFZKVUXGDKMAISLKLIGZFUKCJWUHR>VGCVEMMSUSOMAKLJSNBWLNOWLJHFIMOTELUAJJKK_UH>PILCFKUWHNSCZNPLUFEPIOEJMOHXHE]XIAAHPN9^TGEJFIQH>DFOPKEGK_QIWSTXRBHIFMLHUKUFM\CQQKRHRMMKNS@CVNOQJKEQEH^T@FT^FRCTMKNGGK=VBCMQOPQJEHINIXJQKLPGDEMGNQBNJJHUQSONJOSFHKDMSGKDRTKMIJEXFJQCHIcL[ILWIREkNJX\USQIJDIAOKTHNMLJIIYKHKL@KPCDNG;GZSLT]GCLJCCLGIP[RJE_FWOZKTLWKPRDIRNEHKPMNEOJEJMMMLD`MYMF]EJR_YOUGMGPGTQNSNHJTGPXHEFDSMMYKBBANJDENPJJPQITMGQNDRKHHETRPPR_RSM=SQORUMIMDMJXKDOSSGKLOZCOGMKJ=KFMKJMLTUWIGLIPCKLPVOPZDVTNPNIBMHSCRJKYPNXKHLFWJELKHM\ICJXCKHOS]INVSOK==PRQDKHUSTEEODANNNV@NGDBXWKTIQJTSJQESBSVKOKEOSBQQLMMKJUPIOG@Q?FNIKCMPQIHIQJJKJQJMJNIIOIMIEAMFBOIKSFIKOIJHYFJMXOAOO\SOHGYBMOVLFZFLEFMMLIGLGSDQ@E\KULWFIKALWIJOQRCNPFDXJCHXQISKLQYJGRH@FIIWPOKOLBOELGLYTUIJNJLTCHLSHQMLOIIQPDPSOMKOJDHDLGUSRJTVQMIIOLQNDTRGKFCOJJIO>LLIJGDFMCTQLNPLNLaJTLSDBSJOTLLUPFUIVNJDIEIEMLLQKMCTTEFTLNOOMPCNTEJQMTFGKJLDVUILNTJRFKKKGKFIRLLRRCLQNLNLOJFXMLRRNJRF_MMSZBTOYHLRFMYSIFOfISIGXEJGRIGMCFGGHSNMJPLL\UNPG\]HKVHINGLFIFDGGOOOFOVOKLUEQIHIKH@]IDQIJVLKDTHJ>FJMJITRGNLOQHRLPLGGJQOMLIPKJ?P\JRGZQNYNFWSRMDNDHLFKQMNPMMGG@I>GEMGSEAYMGG?>L_IDGJIJNGJEJMOFDMHQMIGJWINPWFJBILMLGQLGDM>ASNXGHNLUPQGRUJMMODIFP@NLHGOEP[LKAEH]JNJOHMSTIA=QNVHIDLLOSUDOUOQL=PEOIOTLIVI@IKQ@ENXXKEWJBIbMJJBJESLNKJQLOCFOKWPGFUDHM?LKWAILNLKYGRDIJQJJSKGPJGOPQHG?OSCMO]KJKBJE=GEDPGGRAGYIIIESUBOFHLGGGSRaJPOPWNEPGIELNEQNYAUPE^DL@JXSOFJHBQQOJNMGFMCTJMLTLKIRNOJOKNSKQRTQJHIN?FKSMW`PHRNMCDFTGYJLCSFER[TJOMDLYMSCFXHHU]DEXHFQJSLELPHGIMIPIJRGLIOSGO;DJXIOGKAAJJDPQXH^YLLVEIIFHGM?KQLHJFCNQHS<\HLDIDMPKLOSEXNKFMGQWJNPJRQRRBMGRSKXMMFBENFFF>ANERBJMOM[NHHMVQJMFMBGKKMCWXLMQJHJXGROHOTGMLV[RL\HWXLNQBIJNHKGHFJPJJENKIFRFIOGQOUKDSDPHPNOIOKPDIQIMLQOJXDLJROMAL?QWBAPWPZRUGYI\SMFHFYACPGMIJCMQLGBLOFSQFK@CD>?YFLQPF?NJANGIHHRMFbISILITZPLCPFXMTUPEPMEJFMJ@IGEJCFLSOQOGPKJIBKMSMUL@USGPRMMLQEEX_WLOONFU>JGNMMFHBJQFHODALVNLNPOJQDJ`PPLSGPRNSHCJEIIPOIUQDKNF@RM@FIKJPPHKOGJRESJMMJMFJOWMIPHBKGMLDMYOUX@LKT_RHIQSQK\EL@PQHLYDHRHXNOQHUMDIQVHSINGJHNIHMLKARNENPARS8NHDZMMKRH@NQNFIBH?TQZEM@SIIMKSHNP]EPV=?UHMQQXHGI=QTAXE=FDPPTR?KFHEVQ>EPTJDKPIKTKAOPGXCNJNJMZGJDDSGCKIMUEO[RGXLTGOJOHAUIQMODALBHLBL`LLSQKHRHFIKHHEMNMH[IGMTSMMUFLF_PFKKKELIKGCQ?SAIQKHNOI?TOMMMAYLOOFTOIEIUKCHR?FQKFNG[MUCNHLVGEJO3QRQKPTAST?LWPGHTFYPP@PJLXLAPLLJOUOWLPGHQUKKNBPE;RMCZHFJHKMFGFGJ\EKGETGGINRIXGPTD?PFW<\EKPTIcOCLCVFAGPKNTQHLEOICKKHMERLOMRLMQIYOLPMNWILLFURO@HOQMDMKQ?MEPRVMQMNLQ`N;EDEIKHZETECBKHRINQHBJF:EGVNKQOGIMK@GHaOSROFKQQDHSDIEPEXNEFSTKSKFJJLJAYS\OC?JKHGMMMBUPLSBTUP?IFOPJJJDIRMSVWQDPNMOMFFPJNDVHHHS;REaFJHACQM>JKGMMRJMMJJVFVTKLPHHHNLJHJPAKOLHN;LHJ?IQPKQMNMLKYNEU^GJNIRJYEKYJXALGPXXFL=PIKH@JECC:TEDISASJCHNNZIKPLHORTDOKMAKRM>IMKVIITMOIUSFSAHEMNRQFOXQJOEJSIINJMKJOYLGICFAKLLGNPSJAOQEMNFLOOTOGXIMGMLLOFFPDNHHONJLTFVCOQFQVPQBLVJMK@@KLDOQDGGHLTCGYGFUPRIKICOPAGJGHJSKRXQIGGYHNJLGRJFOKGGHAFFF[PZGOKIZCSHH@W@IKOI>I]LFITM>LOKEJIUKJSHPUKQFRDEYZKPNKJSILIFBKNMNNO@Y@HHHJPDW\OCFIKQBSUOFFTWOHJJEIGVVPULO?OEIJIIDLDHJJKKSMHLHLFIJDQLOOQDJLOJIOOJGHKLHHMPTOQNHPZLNHVMORQGXPNLSHLIEKLIKONOOKKNCMGQIHKMGKQVEFTQIGHIHMHIKJJGONIKVJQOMNLKOPQLJPNDKPMOPMNIXPGJ@HFYMXREHMDOLVULHOGSOSPMIHUHPMUKJLQQTMPKNVFVOYMFJJTXKP@EPCFRHEQ]ILPLHLQLINQLFKHDHIILPTD?]PFFJUTWLJNQKFLCQBKZYKIKUIHHOFZBVJKLME`CMHHJG^RHHPEXDJDHFJIFPUFEMSUKLNOH[CPHLPEGJJBMYGRNJDMQGIKJQNNCAJEQKWEWXR?WHD\JPSHMLRAJDGIKL@FUARMVKL@BD2IOHGRNEFIGGLDPUQQRHUIGJHGOPLVCFOWLRBOZQJLKIFNFJQJGBIXOGPLGQEKHKKIK@KFUPPHO[RNIQLXJIKNFGNGJPJFJEMGXXOQNDMGNPCJWDJWGDJIFLIJNGGXJHLETHTMPLNEHPJIIKNSMJJLDHM@HMPBMDPNLLKMJLPFFDTGNDVQEPPEQNWQNIJGGNLKI?OJIKKOLSBBGGSLDBMLIFRETKKLMICJGQWZTOJKNPQKJGMUFLHD\LKQQKLIOIRCQNAQXKMHQXQYFNFRRLXTCHMIEIKFKSKKYIJNDHQGQIGQPOVKRJJNPCLFSMOIG@HHPFEWSRRQOMOPRPH[QLGQPQQMBWGJMOWULHJJUISMHLLMPJUDIGMFQFNLTIJCIIDJSDSDCQOJO\LBFJNIDJXLOKbFTJINHORNHLFRINIGDQJHSKJHI>IL`QOL@FRLKLKTF=?>PLG>OfRKKGKNYEIMPPHUKQPJIDOEJWMITMMLTKHKHAGYMEXJCWGDHKLR[GKPPOOPXNFLNUPFHOLGQFMTZXRPPJDHGQCQJLMRTGKQRLMILJPTHIB[KNBIPHHNSLJKIEFKNHUDRAEKGIFMLL=KGJTNEKIUHCUEACIBMCP@I=OVHDMM@GFFEZ\RFH?JVNAMVNNGGXJYYRZNcDKFBUOCONLH@MFNEFNNEL=f>QjCKaKKPCOVAJPbPFKMKAHFDKWXTLKHBMOAUNLY]DILG?FQGNKNPJHECMFOHUL>FJB\IcJOTYGV[PNM[DYKURZANOJIOGINMCNGOOTZI\DK=NWZO[RNIAJKERCCRGJI?IL?LPKRGNSJNIXBIOJHKDTGVJHRFRA[EEGIJR@GLZKFJGJIUC[DEQKKARHP>DKGPOIRDRUZOLTOE[ILIT>FHDNIXASIPURBFOSITOUP=TISNFQLLFWTVFGLDOTGGFDTH?@ECGMFK?SRJINFOFNGCJD\?LNKIMOJROGLJJHUSJIFDQGEJESISR_>GGJLRPGNQGTSGZHKMPUHJHHZDIIAEIAES]KIEAJREFNKGH@VKVOHIKBILNNOOBO\BJSEOKLIP;SGAGHPHQQQSJLKJYGPKJMJVDWMCFHENLQIZ[HGTFCKKI?EEBEGNTBHMDGGXHPRGJNMCM]TARQUPGKKESIRRTJTF9MIXOJJTKIQLKVCLSPNmODIGJCQRFPEAKMPVUX@NFTUJJJGaHHJMFFK?N]NeOGJNIHLRYIHYLJUGJPRNJVHRVCIDMJJKOZOBHNORMJFJGATBXXL?OUHHPFIWEUNFHISROWMVQRVQJJUTYPSLHSPGUUKFHBI^MRNKLUHIONHPHOJGQSQVLYJHFVSKLLRKNOIMCHOMOPHMJMIVVLM?PHNQKLJOISIOFCSMWPNMGBLPRPJPKIMJSBUPCM\KKNOEONXRIPJMMHNBIIHMPQ?JJPLTKU@IOLhKITCLMQUVYOREGOPGISWKGIINUWHOKJCFTIWHJFJKSKOOHOHDGOGMMFRNXNQPLDOOPHLJOON>MSLMGKKMQRGHZJKQGHSOLFDNJCIRUIMZDTMKLOPMOLFCCJLKOKBHZQFOOTHPXEUGRJHHFLGWIKMNLQONDHFXGNELHAHNLOHGLdJGEE]JQHVJGQFADIE@JLQMNI=RKFHKODPRXNIGTJGLFLN`FUQFO_SDJHODPPDCXFLM@LOFMQFKKAFRMHG@KJKGNTOOKUFJIGSLKUONNLJYPKCIOJIOVLLRCOYNFWHFKMGMCECHJMHFKGOMQOLLEIGJKFNDQNNIHLOPVIAHVGEKPKZJPRFUDQLCLGIMHMSGGGG>LGJJLRJKIKHKCWJKKJFWLDFROHHBQKORGMMPJECWPJCINN[DFNMFGKQJOKUKLR;XUQPHMOTOG>XQTVLGFNMFSHTAJ\AFKLFLNGWBEJFNL@IMSQMCHJRJF89AIIJQKKGKDGPHETJMQPG@IPILYPKBMWPLULYXGO=;KJUFTHTVJROBGQMUNVQaNONTZPJRX?XO>PNLPE\PK>LKLTIFONYLVHLTUT:OEFVRVFOPGGDQRQLL?JCJI^JGLKECPWRJVLKEHIKDVUSDUT[XZO`FUQHPKJWJLJGRHNSJHMWPICIJQRJZKHJE[ONM\MIKHJOI>MGLVKHFVINOLKaKDJLNWAHWQJOFGJEJOGGRMQCJ;FFSDJNHKKRMHBSRVH:GKPERKEGIFFTVQKIHQJEQO\GLTDW9NTTROHSYAXIIOID]MUTOHMeEXSXKRA[EETXO_PFQJSWK>DPKOFGE=MF^@TOWATNE\ZIMPM>WRVIKKRI[RHiCSHKHEW]OH^NISXVVKQIRFLILKH\WQOIIRQMYISA\WQKQKRDJ?[JUEGQMHOKHGOWOWS[QKRFUSMNOCbMJMTOJKNIJTTOLGNISOHSFLGRLKSLNUNPVMPKQVGLMQLLNMHHEJQFJKIHIPOTRGNLT@LGQ\YKJOYKTGGOOPJIQGMWLPDRKXZQPNTQZZDMIJRDMHMPH\HMBINOIMKBGK[EQMLQTHMGQMVLPKNYAOPISCKIGPHCLIRYWLTFMIKIHT]RVIJDVCGYDTCZ@YWQPXE]FKLC\OPLSPDFUJNKFOP[KPL?DJGCaTIYSbJPHR]TUGDVEBUQKLPJPIEDEKNFEUKOBJBEJGTZHKL@VLHUPKND>QFHRAOKGEXKTNIVSMPDFICDVGKFPDLULJ_GBLOHQGSILDCKKSDLIOO:LDFQOJ^HHQQPODKGGFKLLGJNLWKCUMHDWZFAARKLEOPJSKPTRFOULGPKQITRJWJFOCDKRIPMFPJDYPLMEHNN9SCGORJTNF@MKSHFBHL>CQTTDP@IFJGOKREMJFZH@`PMIOQZK[ODIQSGQRVKOESJOTLS^VXERNRIO[LLKIAEGMLTUNHSEEZUTWXO`I^DJK?=LLGHJR[RU:R]NLOXVJHYW\CZN=_IVCTVHLYZRHJKXDDX3DPEKYE=PKGGDQODCLMRLHFM\D?NSFLlNSNH?]EUNDXEPHHHR_O@FPLPO>FNJKRHTMLUFLRFTLJKJNOJLMQEXJDGMJSLYKDECKNZKRMJEhETJWPDVGKQMRINNSI@FFFCYBV?EF=SIJMRMRMINCJSFJDHJBDPFOPCJVVQNPNGTXMdYPKJMKUNHRTJOZlSBSNDT8WVPBBBXUSHGFS8UDK:JGJVQIGKGMGWIWJNRSEFFHURX]HEKOFTETRLOKKMKOMFFVDbNHLQJHPIIJQDEFDOWDJGQGJK@NSQHNB=PQECUUHQTKNBNKFMB@OGONDFJBDMCBKLHRLXHPOKPFNIEPCB?DPIGFUMPDHPFGOJIPCKIKJCJABFNPJLFLGHSNFEDMAPMHCGEFGPHYOAFOJFIHYNRKVLLFI>JTLNbHPKEDVQHITHGTJWJaHGPPOT^LSPFQYLJ\EKKHTTO@]RM=Q=VRL\QIQJJLGJJILS?7ALDFIQ@OZKNNIVAPNGMBGLI]AKVDBJP@OCBGZRNYVBLJBRRPELLWOHQQN]RMZVLXLELN_GOIGICHVGRTJVFEGW]CMH>CPQYTQYODKMIOTNIIF]\NPJKHJSCCaBESEKR;IRIPNMFFIYULRJMK[LVPQHEMMPOTHSAWRPP>JLMOUGKHLIPJHOGFNORPYE@VJGEIQPIWCUPNDL[]TNMPMKNNTTCRGBMJHJOESPQOMHGLKMCUQTHKLLXKQPIFJJQNPCLRKWHKUOVaQH`EENOQYKVSNXMRoHI:JOBMEDDGENA[H@ATFJEOG=OPNXIODCRQFQON=JCNOHMQJSOQOPLF@GNSLMYAKISRQTL@VETOKEIWEBEENIN\OAB>LCWABAMPGOJZHHRNCNKUODIAZHGWBYFEL`[PMJVIhCJAGEJLHM?IP\GINKJgCBTIFOCT>\J;=VNJCH[hL8DETS5dTSBSOQVDMUFAM@IZHA?>HSiFQPURHVBMRG:UKLLVFLWCP>GVSiJGFSXPID7@XT@LU]HMRQJANK[YGL4OLXSmHUTUUTULJ;HQULRLCXRDAmIOTSV_RKFUSU;U@NHIDS^?GPRTMEKQTNP]:=CKPHlPSCCHRLSHEPN:JIFEFRRNXMWLTLKTKC@HNSMGEGTGEUOKCLPEO@SRI_Q?WAJQGT]HFPNX^W?CUOTTJWFPUBFdONYIHQT@GHEZFDKP;KOJWEHUEDLFTLHMSCHLHJNM\CHECAMJ>FHMHKJ?eH?NGG>IFJGIOOTIOSD@MCTIHMKROKJOARZSEDOIDMJKDRMYEIJJOCKLGMPLMNEJASURQIKGMOM@[IZHHOUOIGP@AGFDHGCLPYTNPOMTJCA@RFTFE@QMLNLQLVNKAKSFHEJKIXQNDWSIHK@COFHJNBJHGXEBQLHBN>JD?:MMNFSVIHOPLBRNCJMLUHLNCKDFJVZLKNWEGI;MNMTYEBFDLOMKQA:UGIQMXXGUGOGDHJ=[cPJZOKN>ORQGQQMILIDKBICGEBKOEJOM?PDP@MINUEERGO[LFKHRP\QINPCLNHD?FKOQCJ;IJPOJLUHOJTNFFKJMOJANVNHZMMVCHPHSDLFOMLJLUIKLSZJC@KIRJK@DPR>OPMJEHDTRQ`BIUIMLPJSRILENILRCPPTFPDFSDFTEROKIQKMTGLPOVNKKFQJNIMNRIB;APKY8ARXLJUDKTMHPKKIJUFFLHORBFNHFOPG`JDQJIMVKGON@F_BDNAPIHNEOMEEQ@RNOGNONLUM^J1OOH9IFEVHNKNHNNHMNaL^ODPB=TELPIKPDYODCHGJ`LSZJNQRSRPHGTPLYDNFMS@EUMNQMIEBFK?YGENBMFFKGMYFQMZD=^HM;WPTTIF?RCSLPPO[DHPSUKJQDILLB`GNLRX?ABUQHHGKO=?KSVI;_JCS:NDKFPSEPJ[LWNHBXHQCCN@DYEKIKFSJK@MLS?MYHJPERN=FGSWUEJHGYQMHEFGFOGMPL?GLPTAFGOIBLRAPOSH>GF?C7I@JXJMEHNPOSNCPGMP8IQSY=M^WIPPHQKVREHNLMQOKYRNQWJ@QZTYQDRKM>FKPZFJWHPRFHXAJUFPKRHMGXKFNQRIGXO>@JH\?[JJVMLFRRPENJGBRDJ`OOEMQECHHZLP_AJNXCESMDKQEAKMFMMVTUHJSIWFQIKJGOFQMLNA@UXRA@DJUFKJ^TFOMVHZK9FKHIHWJJIMDNRAFHQPJ\QGVKGMPJKGH9JUGVOMKORIJGS[LLZJSMPLQZGD^FL_BCS[MIOQDPLYKPN>;JRJLSLQPEYMQKKRLOFNOTOCLFSNLTWHCMJMQRQSTWXNDMHIHFDJDPLNER@DJPTFTUKQOYENLF@OKWGK?DVQDXVVLDRPROLHEUHN>NGAPONBNHNNJUHKSKOQ@LJFQUOFGHQMNHMNOOUHLVNOFJJLMFZDDGGWKJHGIENICX\KZQAJBTTRTRHGFGTKGJCEIQTILHLOADG[\TdtTZHCYYER?XZ[K\ZsNMHL>JS>[]@OLJGILLT?YWMOLDIIUHFWNGLIfIWIQDNGOKOLN?KBH>dNSLNH[[JONMOXDIMIGVROHKLNFIISMEOH_UMGJARHNNMKIQHULIL]@GKVAVNEOYHDJBFUUFCHDPNBFMSJRLNFJVGAEHAJMHLCOIKJWNQKPMP^MJLPRLEHNKTUMBGIKS>RCKJHTNQQJNQCGWMWGCIDJUIHFLHSPELQ^IQQKHRHCIEQLTEKFNMOQMYIFNNTWPPIMTKEHONKFQEKLCMHHO@SQLNMSMWTJUSTM?KOMCWIVQQQPDYMM>LZEJRIJEFRPJJK@WFLEDLVMULKKPFKFMMACNYWICLUMTHILNMEPMJJULJPLGKORAHKEOVNOSCDNQADJHJ=KBXNFFUEDZCILHMMEOIONLLOGONFDGKAKOQ>OIQHFMDRO@RGXNHJEPMUEISSS>J@I@EWOUBQ[ELVGTQNBENGFHID?NQ6IORg>SDCNUGJT@IP@DDCVGMSKBRDDDEUOPD=KLJOOeO^RLMWINMCPEHPIMVCH>?QJKOMGHBTTNENDIPHVHMJSIGNKEEDOMHBDISU=@WM@;;TIJKEEGDLGJVURVESUMCOEHOWI\OEHRMEEJFDFGHNODLeTIUKIHcBTQLPLXMJEEJICFDESJOmHQTHLRMNC=JNZHRJL@IEHJMX]JNJO?OOBOGTYHOJPSPIQXRQ=MGFJFZQLMNRRBMIMCH^JQALJXPGVOEKAOPQKNFCDFHSGJEXJRLFVITOOHRJZQQWJLUNMQMLVOIVR8NXYJDDM\JALPJJMMNRCRSQCTHPHPHEJTRDbUJVHJG\KJJ[LHJKNNBGBLJHQLFP`S:LT=JBCHTKISHNKEVOHWLYHOHDJL=CMJIIHONBEINNAMEKMXIFRTYKNXIKLFOPLNFIJLQJKOVPBAHOGXMKDPLTULNT?CSKUD9GGGG^NWIFPIGJRHUKMIRNDIEPJFNDZFESUKTQMLKHQDMTEGOCKTGVOKMAHJPJIFEKK>PPFLIFAUPHNDJKHA^GBQSIISDUFEMIPRCPUEHKMLBELR@JIC@RJY:MQH@^NPFNUFNLSXNRKPPROBUAX\YQMMVDMH=QGUSEbLRJNGN>UQ[PDQHJNJILJEKUJN^MPLCPGLNIPOROF?ROUJJHS\MOSNMMHPKOLGPMLKMGBNKMLKNF[PLL>ONHWFILUMKLILID?QGPIIDYQCFNHR@QMKKML@NTIH@JNNIZTROOOQNGFHDQQEEJRK:RRP@HPQKAEPHHO@BEKNXNFRONNNFGSGGJYQILQGL:OKOMIIIJLPMIBCCDMOIQMMRBDQJBEYKKI\@QHKPQAT]VIVMMTZ@OPMQLDPFVXT;NJQURQKLPOCKLNDR;VHLJQRZAG:MKKOKPUYOOH@NJFJCIHCK`HMKTLTUFZIOSNMVT[KGTLDNHZJJWHILBOKOAUacQGPIS[D@PMVHPOOLFIF>RJFJOU>YPNILRCVUOPHMS@AX=VLMMGNGDWBPXFKCI^BSQPUTQSOBOM^UAMUTGPBZVTNJFFS\J[TML=VOYRVSHSQJOBGXQRHNFTZWMQG@G^JTHGVSARMEHLZLFSJNINPECHUEF@UPKFOJQ=SHHBQ@^TFH:NEYDJTEGFKEMETIQJKpPLMMO?HLFFIAJIP=LZaDIWO>IRF=_REHICM>HRHMN>OOjIFF>YKEFHBRGMFTXVtaLaOOQMJKHBGKNKISHTNKGIPO[FRVNONKKFGQV\QLAINFfCIZLOKWHJFGINKCRDLDPLMMWNMKR:DHGFDLTFIIBKTP?RPOHL`@QQRAJOU=BB;DLPMBMEWROCLNQ?7G?PKSISUDFJK[OGQJTHPQGJUFHMLDDNI@CTHGQSG;MKGHIKRBXRUIJGUG@IB<[RDKJN^HQSHNFEHNDKYAPKH?CQMNIJVTA[PZ`HELTIIPPHMPOFEKTTEWNRLRGGNOHGQNLEKPUTVAIDKAPSITMPEHKCHN8PCEGNJFSFIYAZQHGNPIKM=FPEMGMSBEOGSGesNOC@_ZPLOQYITEUECcLN5DAMGKGG]MLYLPSKFHXNFGGWIGLDCGWKPN@PTYUJKQFXKDJRTEOWMU@@LOVFFOIBDFKTAN^>HRSQUKEGWP>NRCNRFDOSAUEIMMKFLHLIIK@LLABR<[QFMYRHCJWLVJNTFL@FAQJRHBOJKYYIBS`BAHLAHNIRCGAJLDSKGGCHOKSIKEOEJO?DWYMdHCGVFMEM@JHFMTBQEDJVGSIGNC[KQKMJUIFN^TFRXMBDQWIHMRORMZQVKWMGOIKKBNZRGOJRRVJMKBNQHDQ?KLNMJIRIMPKKNHEFHQXFNOIPQOEFHRAJ>NGSLMHKYEEMHRMCOQRRFJROQIHFEBDKQAFRKSK\BILe@QHQLLXPCHIUGFMJXRGJEYIMJLHVGDSOJ>DZQISOAOLORQQZKKJOLOEJVSGOMQSPKKQO>RGRJWLJLQHCRDINU>EUOD@KGSKLOGNDFKIXIIROLJMQYPAISJESKJDDEJMTF>SPGCFNULH\FHQSIJCWNORWIILZTQHBPCEOUEQCQWZRHIPNSHMCE\GIYNGOKQDJSZSYCFFUOGGOQBZLLXDSIOLKJGGRLFONDWUXVLCHDKH^FMSCHNIDFPKGNOSF@XQFOINDSSBCDO?DVSQJTJHBN7GJONGKEG@PKKQQAGLVVKIBO?GGGILMLKGNDEGEJNUHGO=]LATQICPBKDOKKUIGMNHOLNKGZGHRVLDTLQK\FSHNZGNFH_RGKJJFOKNMHBELHHTCCFKPWLHD\EKYNGIGXKHOJLI[IOENFXIM@GIJ?OGSLPCMLWNGKIKDH;MN[FKFHIMNH\KQEJPPFPKN\T?WGG\LQLLNPIHHFCJWCNLGE?RBIYVFMVNUKTGWGJUEOLPIIKDMORRLJVG:WGH`FIJGMRJBBSGMOV:PG=IHHPIMHBSMIAHRKEDNDKIITRLJFOOGUUPLFPEOPKYMGQWKFROMGM]KMEGDPPPPFCRJKMC@LSPOHI@PMQEFPQLORGVRHI]LMHGKJIPP@IDKMN@FKJJVOOIHLWEHATSMERMLNRTEIEGDGfGeAKPVSSKLMNjKFLSSKKFMPNFSDKJ\?DKJN>HEQN?EHRLIPOBMQ@RSYRSJOODIPPDQLHFGEGXOGSKQJNHFFBGJSUDTKO]QQKDWTUTDHSIFUQ=FKPEVJHMRPSMLRICT[I>KOGHQNQEMKKFQHJWERMSMP[JR?HKFJIPOOOLAMKHJIZUOLYJSDSbECRCKGMNODDKB[=LQHIDHMIDKULPNMY=NJGGVROLHUUJFGLICLIJGIRKYSKQQKLJ?XDPBLQTIQTVMKSUXBL>OSBEGMOYYS\RSNJDFMEMBVUQMOIQOQJ[NSFGOMMQNSNSLFNH[]ENIVPKRHMPMEPOQR>TAOUPJQOLLGKKQNVMRTDLFKFONLMCJMKJUPHPLYQLJONPbTLPOSIFLMXYJLPEBKJLIQIERQMLLFHJKN;WeQQUXZLLFHREJBDFKLNPXJTBQFKDKKJNHGJFIRNFIHOWIR?SOROOIGAQJHDJCMFHCLMGJIOCUJQCFSDDFBLNQHUHNGNNWCDIRKNOOROCRPKQEEHMRTQVYCMEWJ@FDMKZFESHP@XGLHIJKIGNBI[RRPJKMQZUMBNGPNLGERJUKLTJTJINVALI?VWAEONHZQXYGI\GXkRGFfFUQNMJHOLIGHKPKOAMMCNLJLRUHJJULNGDXPIV:BVLYJTRPE?`UTEFOMLMK`QQII>KMPGRWTJ]bYEPLQNHN?OSHVZTHWQFUEKCRKPIO]DPRJJP[KKDPJIIFLEM9KOKBLH\PRCGJFaBHMLBYWTOQNZ@CEJUR=HIGJRJIMQMHCWJOIOIJCKXKFPEBGDOHAUHTYDNGQUPJIHFADHOEGIOKR^FICQKUOFBQCMQXGGDFIMUFKKFPMNPFK?PASSOSEJJELKIPMXFUWMR_IDHFNOJJJSALUFISHH\SHPGXJIPKObLLSFV[WQMFOVTWQIONPGQQIOGOMSGKONTPIDGEKIJOKAPAJJHGKPPQONTQHKOLGDNMRH`S=LKIKWIXKELELXUMXXJRJQEUXQOLV_NMJDIWHECFNUTGJMKRZNQNJFJPJIJUFNIAI;OPRRQIHSNMNOKSAYWVHDXXJECGPJCNNINJLMNNRQLACBNsYgJQQHCRHFNBKKhTIBIO:L=FWbWKMXCRQYOMPODMEPVXAMTxGDGP>@VLARDJNCTFDeHFRNc[IFMRSRMPEKGhKHO]R^FJLaFBJERVKK:IHEDKLBYSFJPKAJHGJSYLH@IQIKGIB>KMTISFUFWHZFGICHEGQGWHNZUOJPF?L]]QFVLHUACKL>JMMXFSKBPSFJOPLDFILFIMQDKMQ:RVCK[LGJDI?PHRQGO8GJXNAGNOKRQNFSHPO:EWQWKIFIeGLNITPLGKFNGGMRMOQDPLFGDYPEWLGXLSKTHAOGKXFYMFZJTWHTUXBDHGEFLGaQTLDAIPWLNT=MHIUOLOGFSOPOMWM@FPHOJ?>J=RWFI@OFKKJFR^]KM=EOMGDJPKN8\LFKMIIUGPQKFISXFRRRVOR_VR=IGHBMMKHDJM?Rl[=9bF8SJHCR\9LDFVCKHL\PNPJPJGPkP:fMLAmKPDILSK?NG9GL@GPKD>[BMCIJDEc@[K@>XW\D?UGJLGcHC@I@GNBZMEBRBEC`DHRdPVFFOE;5=QSM[NKERCOKDPLKNDKE[ZUEUKuINGMNHFNHFOZNIIHAEN`DRDKOC\JPKQN^WXWLEMIJPNIDCOWFRQELHLLJHOITSTKJIMOI=HCTLJM?IQIFKGKJCXNKLLQPMAMHOTWRLVJHYDCGPNPANN@GSTTHUKVHUM_GKEEKSGIGOSQOWIJKFYLIEJR^PIIXJPJNVRJH>LJXJFgLENHPYLaTMSVEH:LMDIHJKTHeVKCM`@OOJNNRHGIPCKRWEGMCNZORFEJAMSLFILSQNLBLJWOEUOMMOPKOQIPHD\IRMM:MWXOUSEDPGGYFILJFRULJXCOQWMOQPNXYVINPK?QKNGVRJMD@JLNFGPEFOE>BDLLEVCVWYTWGVHPUG_KIZVKbQUJ?I>L?=NJHMNAYDJVGOHFKIWUHEMFJ;WMVHOHKBCLFGIJS9BKIPJMFMUPCCJKN7OTU@HOBS]GJNmG^GNCION_>FK:O\HXL^HDOMPQZHHINEVMLKMOLMGEHMIUTHLLMPAWUPYMJORICPHNFUNIRFCMGNKMSBIHNKFDDBBXSOJHUUKYDNHHFHCIPHIAJLRFDOJHIVJCAKHLGIFPPNORIRQLV]XMOHIVHFPHSIOQHNe@LKQRHHGVTCHHFEPLAUCOMIJIGHRD?TOEOVNSKMZFIMFGPWSWJJRNOCEIMJVKIK\ICJMUHEHMNERCP[BEDJNJMLKLNK`OPEGJIGSFOJEIGKHSNNLJLFILHMDQBJQJTI@UKLPMNIEKKLIMKRTKKFOFNHRHBPPSSFOCCD\BMDGHHPRPJSDNEC^O]KKPMOBIPN=NWPKKJNFOBFRgHWHIIKKQVO\QIHQ>LGKCKONJUALOCIPQUKaFGCNMPeMKSJILOO>WMESHKGEOJ`?QWUNW=NJGAJCLUP^ILKQ?@LFBJFKHFOEDJPMFJIQM@IEJKQLBOLKQQODANOUDFTELNQJLCMTOHGHHGFFWEIMZMD[TMJ[O?TFZFQIEMLKJEDIPGFFPJGLITAFE?FHNSEDWRFSK>OPcCGFDGGBVAKHFUQHQHFGCXFNIRMKOPO\LKPOHEMWQB?I?FAKFCTLQFDPJHPLCEAFNPJPTDZOJGFFKIKHSJRMMRHQEMGOCIFFILQOUH/FFFJHKJKGFPHUZIXIJWRK^REPFISIFLKNLCMF4LBXKRPnOOMH@CQO[KEORFKESKOUVSCYJFOOSGHGRHKYGRQKK@POJQPLWHGMdKQLFTBKLIDOKJGJGWNTNOHNNEF>MFIPGKMNLFIJEOLHJSP5gFRPFZFQSOKLPNU[I_D:^PNOKHDBBNP\NHGDGGDISGINJThLKGGJPHIFKHOOPMHOGGFINPKDGQCDHSDOHSDGC:IMIMH`TIVEVTHJQMRHcTMLFGLIJ=K\K?CMSISIV8]ZMMYH\BFSODOSTDYHFDSR_PLNGEFR:RJXFLIK=LFQFLCOFHBAPZP>@PFOTPLKP?HQFNJU=CRHQMLRMCDJJ;HGLKPVQLJELSGDMFSJVRBHNMAHSJF_DCBFWHWLKFLJSGLHJL>MRSHUDLJSPWCNVKHHESXTKQJL_HGSXP]EGSITGVHKMMYMBCFDLCNUCAUAOXMSSQLK\ACWGNEKQXRK?DG`S\EARLQCQNIPUPAKBFVLDaJZINPLUIMEICTPL[AGDHNPP?NU\HLLUGGPMLCGOKCFMFMAFELEUDPEONMNBNJXUHMGTG\QEHL;KK@E?BSNKME@MLEPBOFSQTCOIRKODCNJM?SKGQPNPKWMJRDTLFNILSRKCFHJJFHJXCZTILTFDFKGLOCMRQJFUYKHFILCALOGHE?OMUNPHHHVIVJQJSSTKLCGQRLMHM\LNXVMFNROKIEGSQJWLLOOGRJSEHEQRKJROIKLMLKHDJVMINNKoKETIKEIHPMVFFMHEQJIdEONCEHF^GILLQ;BJKCRQNVBARGSHbOIPHIRFHSCBQlIGKJPCHJMK\CJCOHO\KGGJRGnKSJMLAMALMIFPEFDjXF`KJD?KKeM@JLFBGMLJRXJE?MMPNKSIHIHJHIKKMGHDJMLU8JI3SDJJJNJPGMHHIHRCIFKFKNHKKRB9QFOH9@N@QKKPBQVIJMKHGJMI@IBFBZ_bLLHKFEKMMFKOOLJOHLGQ@?HOHICOSM]NW]XKYTQHIJJ:EOAJI=JKHVEPKHSLJSIKAEGKOMJ`KZFXOL=JPSQPHNRILIZMYZOPODZEKKMPLNJNDCGTMEEF@\DBRFOXEKOPRK@OYZ9IXXUPGU@LSVPIHOOE>KPWMNR@LOIGRGCTRN?K@MKKPHOWIFDITPTMKXDQNIKL?LGOG>LGV@QISLXHPBFQFTHLNJHBZSDGVEBcKKSAL?NKKJO=SYPA9YN?ALOOKJ[R@WOWHGOFTO^DILJXOOEFSYULDRaEBRKASKIOEMNTTIFKIJMA_RZKEKUJCJKHGDIWFEMYMIJMK^GNQPKDMMNI@BMN[LLPFiDKJZGA@TDNBMKJIRDGJHm_XSKSMILNJDFOTES\BEJIRKOPFJPYMAKKISKJHFSMMYJOKbJ=RDGSRC>KIBODGPVJO]HLHTDND?a_HFIQJTJCQFE>FNIEGKDNWLQFMPII`OUDD\IKNKGEUIK[>WROIKEWJHEJHEUTMFTGEAH>KMHOQ`NKa=?MRHaHMLSHWDF]EIGELFKBVJOQQGTORKLIECQKPHTIIPIK;PGTFTGIBBJIKaHRNC?OTFGLKRIKBHNGHDOGQHNGHXEAQMEMMGFPKIIOLECGNFCANQTLPYQUFKCLEG>QHCCNMKJFHEHPODTJKIIMOLLOHPJRCNNQLONWLCFQTNSLJHZJUHMKIPNLMBQPHQJJ=SOHEPRPQUNKTLPLMH>HIQ?TTHMJEJKXKXQFLXNJQXK[HTRMSDAfIGKMKNHHPQQN?Z>JIHUDWXMNHKSFRZKGBULSMJKPTQFCSTOLURELCUMKGDOFMFJLMKCJEEQNKH?KVIKGCUDDHK;KFNPJQQJWGSISJHGLVGPNCFJ9KLTGBM\KMHRMNHJFGNXHOGKKFTFLGCMRZJINWWCGTRWQJkNMF:KZGBGNIOCHWSPMHGNTEGSNJWLKIF`[IMKGFGLSHIJJED_LLZKNMNHQXVLDFN=INMGOHTQKAPAGMFVNRLP_UTHNNOCLFFHMHIIUARIPIOOGDLAHEC@LRIXGNLILF]MLQXICKIMGMJMOITJEDILPK;HSOIGLMDLTGUWGJKXMSNNQ>USKBLPLOJOSKFNKRCIGRTOPKYZKOIBcWXPLIPCHJEOONXOQNETUOROLQLKRYEMIKKPUQSTOOPYI@\FJBSASaANORITNL]UT[V[WKHLHRQbULKJFLIPKNLM]WPDDWEMCTGAMUE[SJTKIGYPL?VKLUPUCOLHNOLLGKKHG>MJQMEFD?OS?AP?TJMGEFPZLOYIXKOMEELHHIKXQR=OICNVMODMEGDCIMMbjLGSJLBAOFHTOVODHFO@VGGLOTKAMLPTMOPARTS?K?QEYPeGIJ??NKHRWOPHHVMICICPIDZZVRMEMKHNSL?BKMRJI[>EOYLLDHG@EKRVODOHCUIBWNIHI@ZOFIEHOPOGBQVQLNI>SSQRPNGMCPCEGMDDHRF=IXHSAPWRNIHQNNRKNUGMFNTNJKSTDHVHKLKNEFKELVJIM>JGMOTMLNBRGKPMJUHFPM\QJJEPJBHSGIFJFKLTLRX^TFLCRXUENGDMR>NUHGQUJJN=LVLNLITQITVGVTYYDEPEKAGHDMIPWISKRMMHKNMGLRUINSOL?BNKCJGIGQFFIHIGIIT[QSULIHSMPBIBDKRNHRH@LGKNDCIFDEONQ`MKSEOFLFAHC]OSMGJIHNUTBLGGMRFIK>NLEFFGHKEEMUJG@TYKNHJJBIJPFSMYLJ@PTMC]BNLGNBTFOIFORAGIM@EPHFMHJSAKJYUCMQBLJBSQKPQOPOKSKILAMQHLUIUEHCUXTLGI_RMWGMMEBDJGAIABHBQM9OMIGL^H>AXJIPBMJM\FYZRPDVOYKDNPDIORPPPFNIOIYJQNOZWBQEJMNJERDQFKKMX\[GISNLNBLRIMIORK\STFIKLHRL`MNW\XGMSCGN?RRNEDJ?>UNDQ\J?DDXTL=BRCIW[LEQPXQEPPBOEOZKNSKLMMPBSOCRB]OLZJQMIYVXSTWSVGKLVFDGIYCMC[ILFEGBSAFGMMFE_NIMLeGLMCLMBNKIDNEDDHWUEDBZ?FIa?ILBDTAI@FTHJQDEQfLMUCIAHHQACGMGBLKEFPPIGJXJI:BhTIT`IEPMMBgBRDDJDFJJBiIZLMEEKQMODTOROTFOTKJUUJJDHhDNYORSKKYGGYMGHBPFJERI@THKLONKQPMSKJEBMGJG[HS?EOSZGCQCEILMMJISTGNILGKFKLTC?QFMLXR@?VTQXOUA?FKHRRFOJBRFKLUMTOVLHCKFZVLW_AOZ@MHKTBCWNAHJA>LKHTUYSKAQCJL]LQEIKIJFKQBH[BFDVTHXQONBXKNPVVQNQNCBFLDLMO]XSJ^BOBDGJDKBEADMZAM\ERRYFHP@DFPWUJX_LSaN8_PMFJNgLJDHINHISQLDJHLMOCKCSSJRMI9HONLJHTMLBFUPWEHOMKRETDR>HRQWJGTHMEI_HTIIHVDMOUDGQ[SNMOVBJB[BHVEFVZXWWHR^JJOJJS[ZTICLKO>JOJFVITPGMSFKNGLFOAYIbVOTJOOMLEBMTUWAYGE\RG@J_MVS5JHDFPLIERTRFQHMIGYFH?IGNHQS\MJPNDUA_EPPGFKPNKVPYJQdXD7KIKO.IJFMIRSFWOLCKdE@QJPSTOSMRHWJSB^LKIMEI?MVEMM^CINJ\H@MTMQ?KPORPLCOTTOL]SMNTWAHPJNHE=J^ETNJHUHOFOOLQPHEIPJJNLIDSHDHHCH=HVTJLQEOXFKNGSIEMHJNGITIGFPPKJRKUJDOQUEMIAJEPELCPEKFVGQBRLQI=RMUJKKWGJ?N\JHQTNGS@GHXHPHRLOITRPESNGQHTPCJN@OC>GTLCHVQHNRF`OFRPQRV?XVK>?FAKNUIMPOQU@@VRELF;LNUQDAQAPYFTLFFFGEE`MHNESLDRVIUTJFF>CQC:?C=GD4?RI@HBRDbEOIPO;ODDJNNEFVMW[HEBJIHKPJEIKJI=7JLIDDCLKLHBNaOMRTHLQPJHEKMLLFM@EQ^TNFNLJWMPIHSJMMLP;IHEAEGSSFIFXGELMOLLF7RLREKDCQJJV\GK@PQJ]IHNMNEBOGUGPJTAJMLLPRILBP@=QWcKOFJFJIPOLOGPKI_MIDVQJOJJNCBHPJDBLEHFEUFKTDJOANOHQ[BWNTMONLRL^JXK_OI=PJHKPSHMMDQFGSOCJGMROKRSDOLVINL@DP[EENPXTXBMMD^OSKNQKKOITAOI?FJPcPHCMHMKZJKLIBIG?E?DMiOTGSLIPBYJFIACEHFLLQUFM?NPFO^HBH9R=Nc@GBOPSMQEAZACHLUNF8LQPWLKT\TOPLWCVRFHPRBRNLGEWPM=QYQFFLMJGVSPBDIMTCJNMIJJTELDV]NSMEHEMC^GQYFRUMMJJDJ\PXMPOLJXFQJSNBVLNHSFE:KIP[HIQNDM@KJAOLYFPJNLAJFBIWBTNCPNSEMNN?NSIONJLQCAHLPCKKD>EDHTMZV\VI?KJ@DDKM^HLOPECEV@GMCNLNGQKM]MJFQWGKJVHNIDQNOJSTIHMHIVKJKP;MDQOPNLGNLQOCRIPHGKGTRCNLGKFEVKLFHORL>^JOSKHMSNSIPBOKZVJJDJIOEAMNFTFMJWRWDPJTT:XNITORNQMKGFHBKCEHCFSMT>VEPWNIISLBW=QRGGOPIMNEDGKNQWSOMLODLJPTSKHMEQORRAUNNHLO?GZIFCWKELDFQLMGLNOKQRKIVILGJEPEJTNPPRPNKENTNRNMHKKMBALKZGHENMPRGXOQ]@OCXDTONKCTXNQO9QON[FLDR\SNPTQHJNGNT\OGLRNLRJMGNYTDKIHJIRSMIKFNTLHHLHHGMD@HLJLHFJPIJUHXGLL@NEKDJBVNFIQGKGSMGWORLIJFELKPWGSOHZIRHFINVPIIJJKMQMGVBQIRT`3FSJRGMGFHHIJGHDRRVIUJNEFWBRYKEALRBOKGEJFOLgQXNNVNTDMBANUQH]HMKMSAKSIQX8VEIKKGOOOUUF^SQFRHMD@HOGGHTCCPMGa?HQO[RFPSAKETFOZMMME?PHGMLGGKPQ=UUMW@LWKCJGDNCYGNBASMQHXKKFQHQMdTQCUGHECXHMODGKMNRSNRBR\PGJQ@XD?J9DPJWHGOMOBSQMDAKSQENOKE=IMWiGLOIRFLI>EDQGEUE;IIPMPKBHDSMVIBRSPMKSSHGHMQF?SGGULDGEHHPEC\EEHJ=5FFMGWFGNQVE^PLHB@AQM-ZWJUIAFGCI;RD[JHLJZHKFLJ?CINULLVBRGGQK>FKUIKQMMEJQIHDRPNAOODRWIFLLWBHJ:9EMC[KI[VC>GJDCAIKIGIGKSPVL9X;AMKCSSRIJWIABOMFSFMJHWOOFOTHFMRKNPPT@MEJGHYFPKI=KLTIFSINN^NRMXPRFMLPE??FFNRIKTXIJOFDHTTRSSQANHL[ELNXSPNLUHDJVMI=PWMENLNEWOMGJNLD]LJB=RHDEHR?HRPJHTXLBGOJQOMONUNGJHTFUIYMAOUDANPEMHIFUFMCGOEPLWMOKNLRJKWIQOJKJMMSSOHMOJEHGNPNYOUeGRJAMPPIJTSKUDNL;TLNTJSD]KKPIFGKM>EFLNDMRIZXIIOV\NPNKKIALJPFNYKMJOKLJALBCCKHUQHFBIROQbVMDTILQ`EINNLANRHOG?UGSTQOOXQQ?@D3Md>DOPY7KNMWZTX^HIQJZEHKRHBMJKGJGL@IOPASUH?SLLNNJLCJPZ=MJXUDP=KUT4LFDJMVX:RHMLFHdKMGKJJPObcLJTD\MVFNKWCHJJHEUJVRTIOQIMNRPIMLU@GJFITMJJVNGWLJLMLJRXMLKYNQWNI[XRPJJWDFNHMJLZKJOaL@SMKIKJCGKHMKI]HZLbNNIHHWYCKHLSCJCRLAIDj_J=RJMQEEYFQZOBHHEBPAVIPKTT4MOEIQAGLJNSPGHOAMO=BREMMEPKILGAJDU@O\ESUDFU7FHILDCGDG?INREKGULTEMOOJGRQKGDOAR@MLKAQXSGEJ_HQQHKJ\I@ALKROEIOQNEJHIELORUSADOSAJPAHMRTJbFDOEOTYR[;];LKLHW3D@CSFSOLIZ@EWEFFG8AAJILUZN;CHJWELJYD7MBKARHC=DJODHfRBFPBNJHFHJDGFM>>FRTNMPELD=aOPKUHBTHM?NGcdEXEFDJIJFGNAQBPKNIKBJCCTJMIIMFOAJF>C?=HLQLJI:LFUT@CG[MDEN^HLDHDM?DVJH=I[A\KWGUHFLHJO[JNPKCQLKLJAIGaIBFMGFTHHF\LCKKL[?MDJMSLMGbS@NPPJVJOMTAPJMDTSOOAHFICKRjCMCOEEMMD[WQMLNQFKJYWKONLSTMLRUJPMIHNQKVENRcFAJICXMJJ@VBIJ^@VJ@HcGIFGJWROSPUWLISG@ICIFT>GLJJMN@KABJLWJZOO>IFJLOHMFHWGLYDDTZWDJITBPHTGKHGBHLFFNQKM];NQaXL]DLLSCDHaHEHEKJMUWZaSCJBJKKGOSVNKFRVDSVKNM?ODV@EKTFFUZCJQVJPEVQGG?LKHNTKFRFKZEMPHLQUJRMKNLKVQLGEP_GOBPEUG]KGNJbPQJTWXIMRE_PSPUMLUJHFKXQQYGTZFJKN^\I@KSEORINAKHGKUMNKN=NMVKXEOPK@FLWWEXFMQRVDM=OELQR@IONCSCKKKFHVHBKPDGbALJRGMNGFJJJMWGFMJRQDIFEBIHNSFCVXFIGHUD8LOLLLQQHJQNFMFPIJMHRCOGDDXPOLHVBiKHD=I>@NMUJIASQaBIVGTLSGDQRFOMIHNPLIKdJU>NVRXLRCHUNORSDDLHKNDUIUCXEG\GPLAgLSXIMDB;MUVEOINCHHAKFHRNJKAGMLSDLLHOKMM@HQeSNM>UdILWSGPb;KJAGLBMHGEBVLORO@KHASC@OKMNIPO?HMPUZLHJQ<_LGLSAPUIGRNSGHVNDM;NPHALOEMGQHSEH`UAHETEMG@ORGL^JCKMPRJCFHLtTNJJRNJ?KQJXf[GGLG[DHQRKH?A^ZJHVDF?TMD?DISWCIGIJJLQHHLQQICTBWBHMDMPIEDJKGKSEEDF_Q@SQQZOL\KZNHLBSTGFAOR?JJNSFA>SHJQVA>HGLSAKJUSJK@O?KCGRRTFMQNOKVFJKNZLPRZF@ELVIIECMPIUQMNKIPJRXOIRP?INUHUCFBFGY=EHPGVWFARHGLKXM>@QJC\QLLUFIHJ?DEASPGNPUFJXNGQQ@LGRMNEILELRG=KLREIMKMF;OMOJL:EFZ:QDLWQYOFFXMMLRKNQLKDWMDJLFFMNUERLIJANJSHjGTD@KIWHSHMPS;IY>JFEFSHFIUHIMF\CMLROQGSHJGMNLHF_?WGOGYOGOOKTGTOPLW]INHATLJHGNPMIGJJGKJKPELDJKGPIGHXHPJOTO^RQISMHCQSEHdENFDURLFHO8PIGNBI>K>DVIGL>ORRQQH\INVKONHQSMQPGHLPXPFMKMPXKGOKFLP@M:BMLTJJLEMQEOLBKRKGE?VSQLICFGAFHHEBGKNH[HJKPRQSBBDIJEGKERDAENDHLJHMRPBU\UDKQUNECLLPMEJJKFTOTUAQIHGTHQHRURANICTLVIHN@QVNHKQLEINTHMQNIG=MI?GFEIGSFDLJIRKFHIIIKPHJOPLGTAFNTGQLJLJKLRPFKGSCUGOHBMLU\QPTOKHFS?KKAEIPQGKJGNENYMLLPPKDZDNJLNJCDIKCQGUKMGHTDZBYSFODSR@HKFOUVEMAJOMLPQHMTXMIKQFHGIJ=FJSLKQHJMTKMVHL@KWAQSEMUEG\[VZJILAb=OKMFULNPHLMQQJTTJMNKVB^WGWHMGF_]PGNX@MIU>LOHQLAOLJJWPOQHMTDP@HGIKTC>HSPRJNGIEBUEKEVFVRNSTHNDYINKOADL[@KGCIETTSL>DL]AHXWFO@VTPNDHMTNH9GYPOEPJETNK?P^aSUMUDX\QHPPG?JQBQIW6K@LJIYI_\FRFT?QIWCNWPJPOJBOCTOSCRSMFPVDJWDNJHBLIOOJIKFKOMVMOOKNLKQOPKEMUMaCJ@F@NOVCHGKBJFDJGXKBWIGGGOKU@ELG_DNJQJ?JOBBQNOPSDSKDHTNNA;KSSMMPORCJDLJEJLKUI>CHHPUJ>FEVQFXIMLK]WIKLXFHFbDMLJZK@TIGDDRDBJMHIEH9MIINQNFKYJMPFPDELJISJOH?FNEOXOjJOfJITELVFMCPIVOGJOCNKKQKJQBHLCTEJIEUXEIBHLUHU_IJHNCGJPDJFKBKKNKFOGGHQNOEMJFGJTRWKPKT?DLMEIKPNMBBTFKTLEGDE[MNGJINDSKQP?KIJP;RUI]WGQVJG8KMLWIYKMPUS>TJIH`aFFSJIHPVPYCMWULLRPNIKNDFECDW?F@NIBRNFFQKDHPKPPACOGKB6SEXW:P>OVXELEEKRGELJLJJUPPLGLFQMINJWXONM\WoU^`NGFIGFLTPNJRVWONARPVOKOIQQRELH[5CHONKGI]CHKKG\`LGIIOTEGJRQTVOAT\W@RKMHMObNKQQPIHOSBQQJDCQQMR\>HFPQIGJU?UROFXSMJKORSQIOLBSIEPLSMFNJDDWOXMMSMFJKAFH=FAHIOTLLMTNIIEEOOOJNDID?JTAOIHFLLDK@QSTPG\PUPPQJAQHI>PNPIVLWR>ROHHOGHUNKQIELTQYPKRED>QCIKRPPGLeXQVMWCWI:VNHLCKLOENOKUN\[L^[RJKZMRLGJRCKBCDOIHJOMPJHW[IIZJFWKSCbKNFPQWISLCICELONFR@JaKLSHPQHLIOKIPMH^UAGKYFJJOHEVJIBDNARRS?RGKPPP[MFNPGOSJIHPEVEOM>RIAREOQ?Zc^[NJ`IDFRQafMTCIMQXOObRDZLKRITNHRHIITRF>BHIQIGRLTNIZVEFPRRHMPUFBQIQUK@MPDHXXILVFEEUBJPPCEJ@VLNNPVWHHIEADB1IJLOPRJXLYJJ^[KKIJJN>VDWPCFLJPVKLALBB6_UCMCHBIOE=JJW^^MQ@FP[JKBAJLKN]R?=FKR?MJHHYKMEFPXFEQRJEIVDIGMOQF>JIKKMHJSUZGFLP\JFNFKICOMIHBJLOTEETHELJMIIGU_WWJCLQSVUPRSMNL^HMKS@EMBPLOYRFDNPLBIMHHJELWMFSRWDZMGOKVTEMLPDAMN?QAJURLKMAHIUOIOlXSQCDIWFMEJPLJUUPEONLISGLMSFGGSFEJG@NES]KRHOKQGBX@NRNS?OeTIDCLRKTMTEHKSPHNVJRPPFLI>LJQYGCKJKJCKTHVPPFWJAJ@RK\WPQ[NPDVPVMMJWLEL_HLEZWSW>OEH7PMUXNHUJ]YX@EYTTHKOSJTAMKGP^ILVLK;MCEUUMIJM_KINXIHSNPGJOKHVPJIJHNE[>DKRJAYAQVMDABSBFTK;HFLCV_TUWYOPRNJJJT`ONJbTSJRCKV9UATGMT?HFJSVNC7FIEBE]@f@KSRa@LOOPJJFIPPKHILIiXKILNdVHMILTDNHILLSJNLBc>@TdAGMRHDLPNOJNRHKdM`FPJRdHKPTFYGUVQKWKLP[-^BRNORF\ZGF?MQSFGJcLZPIBQCCILWPAPXGGMWSO[MHOEQJPETQJIBPVKIKMKTHIPSVSMLUHERDDP?DGGIGFFFBZK@SGRLLLGLKHRCRITGOJC?CKMMPM?JFOZZSN?JRJPIWMQSF;ISTKRUFJZSBMFTOTQLOJIKGMKMKfIPEXHUIIJCQXF?UGIIJ[UCHHNJ@JVCJHPL@RIPBNFDZAQRQ>ONTBLYMDIGM@QLSWGAUNSUPKpGKI@IDER=KJGuJKJELWPFLPJJ_FPJQNHCUZ9HERZMFaKJXEH\ELVPTLROU8SMGEKT?JMQOLBOEBILW]=GJMIPPDJNXLGDDELNHJROWGJKTH9KCbQ@IXPNTQL^OTJTNOHFMM>?J?CCMGCTDPLNKYJMJFLOASUQFTRBTRULRSNOUPVLIPOFBNPL[FSXeYYIWQIKMFDS7RULZfWGODN;PWMODIOKOIORAG_Q\VOKOUMQLOQPHDQLWRZJG]JANKFHIBZNTIFPIHLFQIUOFLYOKVaVNFCHIMQWYGSaOLWULIOTJOeOXEDMAXGMHLITPJLMOSG[F@NERIQPHHO];NGTDLVQUBKPLMDKCKIKQEXMSHPNRJNHK_NIBPMJFKGSP?LOMZJNKYHPTIKHY?YPDIILFMMF\WWHGFAV_IHEQAIMU[AD:aM]KRVIXUJIQKTMQKJQBDMIAOpFS]NJTHOL]QUUJOqNVCROC>GFPE_FRQNLBIKUL@I?QUHJLP\OAHFNNQIMTGLHBNURLGHKJJ?VXFNSM]KGJMCQK]JRNHUQJMHFJLJRLOLYXGINI[CGIKDMILPHHRVLVFRPJKGGS[FZRKLQPSHPPSLU[VLDRJ?DFJEBBCPRLJGE8@THEOFRFNSJMQINEIMA]JKJLNKIJCQDJNIINNNIIXRCJPSJJUJIBQL>QKMIEGSHINVRJNDMQK@8L[NGLKDL=MK@OD=VALFOXDONHKHIKMG>JIK]CfOJPE@FJKK?IMEJSTAIJLGHOIKLkZKDDEDQDKJHF[BQTNB>_GKBPLLCJLFLJLFTDT\?AINUITMCULbKRAHQBJBAEOQSEOKMHK=GGAPHGLYQN:A?MR8H>>VNGQ7SFQNUNMHEKG@FSEM=KPLTOCTMFISDRV8ILKSGXET;c@WMGQLNTP^IQJGILQO?VPKAESDLOXTIGSCKFAE_M[`OOeMWKn@YGLS^PN@:IO6SRCNG?WOKeaUYQWMHOYRRDIHAIOCUcFAHEQI@MIPI7[RJFURCPON@K?OJLIPGFCMNFRMUZLOOQLFEJJFTF4JFLLAD=K`GW\UFGgBYJTQJ:JKOFSKMOCLSFOWM1GUEMGAFQPEPLBSZ?DUONBRYFOISBNKSUQMO>OLDGHMDTIBIMKRFRT6HODLGIWJENUQASE@MFSQKdBLDJVRRGK?JPLFNRZISUHbSRMJIKKNKFEMHO[EFK@GCFKFJPSNEMLENEMGNMWC7YMHLVRGM@OJCOCR?LFFNNORLDMTOXOMPJGLO3DLHPLKNGCRXMKTNXDOCNLJMDMIBKAQDQIUHQ?QKQMSPHNCQZWHHJELNOWRQOHV@HFIQMMSTIRISFCPHFPEIPECLCSKFBNHMSIBCODK>FJHKPMPLODUV=OKGGN\RPGHTMAEDNDAWMMV;HFMHYJFAPAODYHLSQSOLZHQFHABGNGREQKLCJPOMOJLbFGKQKSOADLKKFEIRMKLFDC@GSNEDXQRL<[SQFJHGAS?NIKKGWHJLaEYLUAO9:PZEJQKGIEMNRTOFGG?UPJ^@JBJLEOPSSENNDJVLBXS?WVMERLOBRGTIMMIOP\F?ORGSLJGLQEWEZbOKPVLDK[UIM[MPc@KOQHTWdJKYGSMLVS?D?FKMJU=HPKRRE9JVYYTI\PHFMKPWCOGJDNLSVNg[QXPKJQ@H?I>QLWLFFJD`MBLXTSOTOPQEMVRUMHTg[NPTTBV_TNQMJDUTMIKKBAHHTLGHFIGSYQMMIRKXENFKNQNKJIOONWSUINNIDDVRPPQDMCEWHNVN>VDK^AS;EQQKMOKDQCALITKMUIGKYPTMJGSWDRGRK@AbIRNWO^V@FMJ[EPPIKZPGWENDLG@?IFNXSH[NJQKEQO]XIHJMCWKGJAYPXPUVEGFI9RIIIKGPHGTKPEKXJEGXZHOGCM]HFLIKNDJRLSEGJOV\QLN[^has7MZcKYWH?UF^N:HNOD^eL@SLVFUbXDNTGTcNNJLEHDLXMFLCGX-9RFJWV2MSaRYBD\OBcQh`G^SVOXPwLYRQZ\c]IUX^LK^NUIWOHLI`RQLESLrAIITINOJRPW=M[I]JJ[OKG@VTVO\NMDKJNF\RTGPLO_DZMUEGLCDHSQSNVOFOMPNMEHGHBNPGGHIPLWQITFQH8CQHMALGQNLOHRJDMKQRECXP@F[ABUMJKIHCRJgMFFSOOML]OEKPJS>YTPBTUXNTTMHRJ?LJMGSHOAFMHKRJ?PQOMVQKHQROSBESVMLJNTIVEHBIONSVOMSPIPGXLKHVLHNWJNJJNC[GNEECJJOCIHSMSNOQTRIJNYMOMGQMBOWLONMDFSZW>NMGKPSU@QHAMLKGKOAG8MORPJBRJJRJPRNJNJMJU`JUQSSPBIHILWFOLREIQEMHMPKDTMK>OGJHMPMBNQMQKENJYV>INUOCELOHPSVIJKDREVRENM@KTONNHHbRMUCJXAWLSK>QIIP>CKWILARJRKHAEVMTMGOHI@DQMDIOVTFGBKMVMLOU[GKNTDX^EDMWLSQPBEUJMO@BFQKPLLQYPD=P_LFPKNNIXTWOULbQFeMNGPCIIOMRHRAMGMUIR[EP>CHJDJXEJSVFLOU\FHHYj\RFIEENUOWSKJFPQSLZFJ@UFIQKMFPMKLMIIUSBJEDRJHI[ISPFKTIBMRGKU@IH]NG@LVTP@SQANGBKGNDIYMKJMFEMHPIDHFIEHI\=RSKKVOILKVKFPRCRNMJOLAOLQIFNSH>KENNXKINEKBKQFQPSP^OGPEBVSILJEGCCNE9KEDKXHNJIWRLaMADKPWME]JGNLTPJ_HOK@AQSJGHEFHLFSKD=STLPVTNHQKLTHU^UISDYKVNLRL;PYHKGWIBIP=ONVYKAIpUCEFA?KQMPOINMB=CLUPZJSFPJLXPNNNNQIPIJDPHRFLIJBROPLJIJ5LHIMPXMEHT_KMCYNJN?DDSLTcSCLW?QTWIG;ELJCJEUDOQTWQYXW>CNQFAJFNYWZEYMGNRQJLJUMHOLKHIQGJBWVAFRNRPDKPOGKRLHIMCQRWC?MIJQ^MDN5IFJO8BJFF\GJYbBJ[OFYAO?OU@TJONUMGYBDBNILOTGMC@MVCLNUKJPPCIAJYMCMMCIVMHHOJYGIQXJSSUSWLEI@RNP@SKKIVN@^ERGOESUHSUJXLJBIIICGFQMJRNOY]CZALOCQPOKKR\JORNKGUVPFTQEMFSWSJDQLOUFTJGNLLSJ?JHNRLCZFQLKPY=HPLHUSNHeDFHYLJESNUJeELMESGJOKJJOXHORPALKSPJGTSJPOMBGZFSILH:D:QQLAKDJNHHGKXRKRN7MYJYEOWDKDEAUKKNNDBOILNZJPHNF_>IGQBiDAINGHDJPGQKTRbjLDDLSRILRRFSLNGQURMGGVJONMBJO]SPNMOGLKNTRI=HU\NCNMBJOLLPCKNNJF^KGLGMLPS@I>PLHQBKSLKNFNKHKDQTTQESJ[YHOMFODANIJLIWIKOWJMJG?GVEXDFF>U>OUJGJHSKQLKAONGYKKRODHINE[EDIOGLCLG@VANQ@PNCRTLP?:RPPNRIIRgQKOVMFYF@QTFJHQSPOELRHUPEEFKNDMPQQHGPYY@ALGKFDSKRKOJNOIG@P\SGFRGIIJDAJIE]UGDDCHQRFJTBINNE?^CNRKL9ERSJSIC>QE[M@LBEMEKSPDQLJEQMK?UT[]EPDEIXJANKPNRVbOKXCXMaRFLGQPYFJMVQDEVLDPKGFIG@UGGNEEG=@ANHJFIPKYRRLMEGG]GJN\H;IKOKEXFMVMNNQGBJKPDIPRJAIRKIWU]WTLKAIEHIJCWIMKLJKfADKOU?WGQ@NKLFKWUQWGOJWXGEGQMD?HJTTXEK_DGYLNHJO[KbNMUPQOLRSIQPKOFZGKOHJIMMKIVHFCEHHPKPCRLQOOJJPNQQ?UMVGFHDSJMJ[SMM\`YIFZXGIFK\^RIFKSMGIKGXJHOYGCGCHUJOJHEW^MNLGHEJUILIHLNEYW_SOGMXGLHNGRIHNLQLJQGQDNLJKLKNCHGIIQDVQTRI`KMXQLUGCD[KDESBLQI\HSKRUMIdBNGIGQ@EJMJNLQIYVHAL<=NFCKIUJSHLLSMRLOOTHCH]NPTA=OXMAPRDZ=UNOS\PUM]YMCNJEOAQZNRNXFHGJRQLG[MKOAMKPLGMLCOQCNBDLGUIDLOFTYQJQYCPEOKGBTANSTCJOKSLSNFRMJFHPEODSRHQNKKEFQVG=JAIS;JCA@IaM>I>NFK^UZOKYIKYSFCLEGRZMUDKR;^=SKLEPPTPOBRTKEVRJUDFBMPFIXDMIOQA>CPJSMIMFWPBNMJIIMOSKFNEIBJZOLJLFJOKREFHMXLGOG?ACMFLTFODLLNEWLLOSXONHCOUENIYJR3AHIJD_KJULL@K]]KQTMAB^HJ@uUMMMKM?JMOCNW9HE_ZNIFQCKFILMcSGHIH\DBHHWJDFSEFHNBUBJFQT>IQTG?UWPOWVALDLYBRQEGPQCMUOFCHEJIMLFRQUG;QScSJHHNQBPUPSTFGBJOJA>UZJHBOKDTS@FXKLUPIFDN^CJFVJ@MRKVGDKXLOHIKWWIFLTSA=CFLMIIKIISS>N?QIAHRM>_BT?VOFJJGONFOC]QDKAGWZKWFIZK@PNLK?KDJOC=PHPNOQYVNMASDH\O]NSORRHD@TSHILQDKO==MG=MCUNILRKBMOLE@QWEOTRLGFJKQIEPQQIINESH>SVPGJ;QK8UNSJPJIRGPMKJAIGPNUOKKNUKY>AJQRMNUP\IINIVMREGJIHQROGFNRJLGGKDPOQIMCJTKAKFMNJJDM[RYHOLKNAMSLPKBEIGNNGPBDPKIOKNHVY>FHLQWDFMGMPZJaMDMTKDBHO[EIXGNFKQKHLT[EP[JFKTGKLJQRPPQ;UKLUMX>N^NULIGMAZIYMCSWEEQJDJVMW@SLGD@QWJQITMZGVOKOSFMTPQ]FMeOVPTDEIMLESPBMPJQHOQQNJOH\I@NMLZKNIUJO@QTJPOLXPJNLJIOIIITQIPGNaWMU^JGFJCPKQNDPNKKPQ=JMLEKXSQOOKDNMHBHHKMKEHNJGIMJMKIUAORYIOR\bIFSM\BK`KIMRMKUFHLLEcLHFIDE^HLZBMK`9PILMDFMLLKNGNKTN]GSRJDJOOBSF@STOLSPPOAGLMJEKGHLMH?BHMGJSDI`ARPGeSEVLQNSRQ>U-NNUSJSY>AOKJUNMFFOGIPOPIKFKSTZ?NDMALNODO>SXLZ:HKSOZUUDVNPRHMLDOEacE^DGIGNI@hZP_JJYMCL\HMNNJMOLQE=AKNFJGTFHZPMVJKFWLVPFFOMQOPGI=GNNQGJMFBGTCQPANUSYUGKXNJKLFUEQGFPQIPQLHGKRLFSQPG?BIIHRI?KOY@HBJDVKWAH=VQS=JKRYDKKHUK@TSDJHPJOQQF[GOTAHTIMQBJWLAMPQNFPHLERPLOGJLJALOYSKJHJ@PFHQIE@NDSPKGBHXOEOJKTLHQKK>HJSG[ABON_LYVOIKMMWJYIEQZMNGOLKIINMNDAKVJPZMNAKHVWMHKBZPKTBFENPOJSERKAPTMKLODTBEMS@GFLULHQLIJOPGORLHVPIQFRWBK@HCKCJ?KNVJGQLXSJLOKKTZHILRJURXJEHGPROBPLO^JKTCHEJGRJ]PTFQSIGBLXEGRCQ=JVPUMEIMDLLCNOEPUPDUSQVJNKUJACTWMMMR_IPGLFTPTDINKNL:TJFMIHIBJFbNGHCKVFQGTKLBGGOHAN?DCKILGVA9DCPJBVONJJJK^LHJIHHK@SR[PCENKK=HKOHEFFGOOMKUHOPLRIIJDBKBLCEKGFXSJBJIDPKEQQOKAFJKLLHOJJH>NDJKUMREJBAULQVNMIRCYbHUEYUS>UPKCEGOSFGT?9RGPaBH?KRRPCKHJLPGIQEUNCRSOfMDIRNEWURJO=XT_GO\ML]>YLIXUO?FGTQUPIURYELQMLMHWTBbJNFYPPNXUUMO3VTSFBJaDH[eF_XDrFGMCGNHWDMLPTHQJCJHYUJQJIONU]QgUQfNR`F\CYQJOOCJPPFGCXIVIUDLAASEOKELFJUH=JFKBNMCJ_KEHKILQNMVG=GDMGMCPEJHYQAUSHIUQKKDJaCSIFLOM<;JKFJLGMF@OMLPeJC=QJSM.PRISG=QBKJLOEAUMP^JCQROCSNNRUVGI9FDOPEVI@SQVKMQM?ARFMJ@FCJPJKG;NJWVPPJS?>EYAKSNRIKKJHPLSQR=XUHRJAILJIHHKPKPFJCQSQHRVjGMGQVHPUJSUKYIJ[MW?AMiLTJRJQXREIVRB[RBEHVWYJIXGXF@MCVCTPWOMEWJRMOOBRPPOIUaMDL?@HLGGXYNLG?O>RIVKH@NFJYZMPJGJLIKH]JPB?NUJGOTIUFNNJRLZOPKVZTL[VLVOTTSSTUU^>GQNWOPLGKGEU@JNOMHHGL?CXSFVGRJQWPKSOKJKJVLPVLGKMDB^NMCVHDIQCNLILJGGCTJ>GPLHMPQSGLGSMUPbVFP^OGRGFYMLOHMHPJRJCPOWNJJQUKAMSKRG>MKKNCMFOQRJMLLQRIKLJVOQEDXJBJVO@NGLMQZSDHLOVCXKPUXQUQZRXOLMMSIGFQFSJGNCJHGNBIOLABLHNWMUNNFLS^PAWHKOUOIONJHMIQTHNDZHLLNTSKCOQCJRJLHKORS:XJL@Sg[^BFOKKEM>ILNEYLMPNNFEAOQGMXAZNOJPIGNTAH@QM:CPRCQBYbRSPQFNGOGF?S@U=ENGMBLSZRLZUIQSPFYJ`QKKEIKQ?SHMMNJGQC_]N]>TNLMHUO`PbFYLDNVJNfHUKROBNJTQAOD[GALX^LSSFKTPWNEQQTLCJLSTIBMLOQHOMQJVO`VNSRJHHHWNNIPBKIQOYNNRFWLQKJODUKDQQWAZEVRKPDDQMLFCPNJKMCEKA>MPEKHL@RHULNELIYOOEQKJPYTH]TAMKNMFQWPHIJTEOHQJM@EONFKIZKIJJDLMIVGUMLTNRPLHFDGLMJJN=OKKNLERIPNOPYRIINOUOQDNECJSKZLQIIQGUWNGGIKRGHSNNP=MMOONEEBNKSDQWHJ>SWNH?PL>JPQHIA>FEQBIbR;S_REOMLLQHGMKOQJ^TFM>QNVVRIEZCGIO=LNICFMJDJOLHETISJAC\@TAOIBRIOZNN_DIARDNUFPLEFKCIJMGHONYMHNMNTPSOSIEBBLHNLKQZQLCQL]QOCNKNNHGCOEHS@SGKCJMJUOPVBQIALGHJQNEMGLLKHIUMDJLBIOMNERFBPXLJIMaF_BH>HMWDHVNLIINRKMUQZFRSICQDXDPRKIOKVNKWQMJXGNJNLKCHGNRDRKCOGIUFGT[BHPSNDOQ_EMHOUICOCN@NQLIOEQPMJKNF?CHHPDEY;EJDAMFEAPOWI`BS=L]MDBJRN[HCWMFMMPGAOAJKIOCEAR^SNCHRODF>QMLLFMAJRLFS>JMG@G@LHMLFNSJGQCEKZMBEUOLWKFFAL=TSPJAJHUJBNIIJLCSWNOFNSJFMLHIGTKYKLBINSNJPQ8WPVMHDEJR\UGTQWKKFPLEDFLINTAIS@UGNNIOKDSEHLQEIIMKIQ@C@FNMTTPMLHKAMMHNZQRMZHI\RJFJNSMUI?KZMBKLKA9EKSMILJHGKVOJNIK_IHEUMIGGCVRPJHHUI\OKJFOFRBJPEJJLKJMFDQSDGIHMFCXLMHHE=OOTNDUITQOANIKSESKSKO@O@@MLCJPKK>KNXMPD]FLQI>TKJCGTMU>GMOHNRE^LPRBJILIHFJbIYJHEH:GG]@KSIKFTKCLQUIT]MBEOMPIJNZQNJQ]OQGNELNSEIPHGMRLCZGIJQHLKSLLNLRSMAFKUMX?ENVNXO?GMPLJlNJJHW^N>?JHERCQKACAJ\H;P?DKNC@LLaMGMWHI@LKFXBLRNIVWKSJ?JKZGHOQNWSIOMNIPHFGKQNVEGKNNL?SSKNJDBIUCMc>>DJQEAILNNQILLGKIIHMJ@F[PFNLQA?JOGTMHLOQZCFSLPMVEKKKL@FUNMHNOQOUMKFSCVJNL[DVGVLNEDFUP^FTNHHFHRAEOMNOMEMI@NEJFIOGTJOFOVOKLRKSRG\ODHQA_EGTSFYHMJSDELREQGGKMGHSOFRFNMDDNLWRFDAP?MFRJOHRUKOSEHQKLFAIcCNNGCWI>HTINPIJMJL@VKNHQBMGLbWCHUN=PHBCUPESVFHLRLIBIOQVVHGI>JONJX[IMQI>HSHNTLQCRQMOIIGHIGLGEURKWN:RI=PFTGJOOCEEGUPTNDEJHKECOIP\TKHIKPMLHBDBYIIDADAUCHKXIIWHVHJLECPNJGFLKOUJ=MSMWHLNHFMHEGKJMITLGCHFRDW\XMBRESJ@EHLQAIDIDFLOFMIKLIWMLYGEMRNPFUJVSKHFWLOVZGRFMSQNONMX]NIKHBNGLEDDV[JKWHQTXSPRFCJZKIRIOVMJUPKMLKPOLCMKOUIERSPCNP@KZQMOPKQUKFEUFFGSPNILMMDUZNHOWEGPRLAHUGPFVVPELAKOJKVHGXVKJIENSRIBMIqIRHQM>DJ>BDUR@kWSFLMPZb@RKCLUULOOXJ`GWWQ?WBZVLFcPHXMQKBCAGBHAVJPMSOT[L\QNSCKNIJR;BOACWN^EBP^CXW`YREWWU?cQPUQQUKPRIZTKJcTIAXmOBZ\MMIKIZUDTOCHIDa@^YGSOXQ`DIPGLHEX[DROUIV_NJRO[UJKSVSKMPPTKNIFMJCXKATMOLg;CI@DNLT[OHSYIKTGRKMRMM>SFNTJJSFEKPXFcTS@=NTLTBJEICIYbO@SL\=IEGL@WFQ^CDYUEONNOCXSOHPIXKHFERBLCMSYKIJM[PPIVAWO:JNNOTKTHZCNMKNMFETL>?ILM?MIYOTFEVZWXNEAGNRKIKLLZKD@CELFmj[nhhpffPucrV|hXk`os_csjakarnmKwkzoslea~dyeiqtnudfteprn^rykpand]yuqskmvq\cof_f_sjlntqu9sbwYZx^pekqznolcurheappeYzqms{mQ^rhq}{`~plevlevyychrd|{{juXn`bodbp~mhkTkgo~[yldhomigrkiemdprf}bnuigeoqXukjyqxexjmfvskxjklikzcqori^|ptfunokfodxncxwXhczdnXqklrrqjgie_ssdnfVbqldlj{hysdrjYlqsgh|nzytkk{`jwqtpptfftlookz}dsl`sylvhnl}ns^hxuWtdinevg}o}znputlhcfmypgido{wpxa^jaiimsosijkoRqpdeaak|ogm]gsp`Qwf\`eeekoakubjqlqbtvDdokmi]eogh_`vitd`pberd[nvgdxs{i\_M}`ihflqoz{Zj|fqnhh}inissnhqoqnXgl`{f~b_mYf~hnmqvse[qMxpboqNlimuYt~jyztokswpi||qobahVhelstusvlmhhqmrnmsvaasexkuwgseuohytvsoonepdpivr|wmlcihj~shppdlmosdjoglhckqgoc{hzdtq|qqilmonozp{tXygkfwyklttinglwyrgojohtnjolpvvobnnrvrkqyqallywkwbuvhpuvxtokumwx~wqzvqr}ojyj`ovkvkk[riojkkjdbwfnvlyidejtq^[vlxtjhO}huwqyfc]miywYvjlnxljr2jw`keid|xiW^dtoqv}sYG[wo_Za]siuf[}xVw^gabkqyh_kyofpnpfn_yj{uxf]]rZ^dinYfcexrUifxjr;qez]xeXvwuq^effrkszb{XovYpbddtohjdvmsqorkkurk{rk}ktmmfYxwwxgtunxrtzuwerxw}qustyhrfhsohje]q{tkqurob|xpnyppq]oksbiiukpsvkkq`{zqqbz~htgifp|jpoun}_vxgld}uuppmjxdz|qrneisagxtmmpvqgqaw\y`tyjtrwpjkoyeersljnpmy{nirbshopglkjtxvoopvdhlcn_h_s~us^{lt_kiqqcsr`jklaqjnknwzl{lrtp^]lxwXacamye{arugxgqrsvwV~wbtrvup\hkwLohghaojfws_vfoqnmysrkswk{k_lwskkjegf{u]ckpunjEmsv^kdXttnwJsppsenjlkbolro{iaI|wgqfkxnox]xyvdypdswkmpgfirozr[kaunsuokysmzlwlmltok}lunvrnlwmnlpvwwnstdkwkwqxlikiekfoscgzbrvgrjkiskfmorwjvmndmqfq{nrll`etqowrskjeinenkrcvgiishknnpoiwh`okgeroswgmpvmouoPpp}efrxinbkqymqstqgjqkmlsgjhhk`mfyq8mcsUqjubvankgivnm{gpfphcmjklh_q}g|~pgZw|~qtsluTpwglyhawyqzfegrroivch\gtYoq[gXkmmiszbrcsbb}anfq`gzhp}n`vrqmbrkbucmmsfycng`ul[jj}eWnnwXmg]jaemtt`xbvwrhzfonciehnmquinkqgknnuosmpgecmtjsxqm_lnnsrhjibelgcsx{obfdqkpeklsjrrpqziueepjmjhcshsr~nm~jylalkmuxtxkjmjwde_ubzirlmqkyoofqqngiamv}itddmq`fpmnpkqomp|x~a|yc_nktlqph|o{oxmwr\hftjjmupvrcmd{ysk}yjnqqphluvo{cqqlareSulkqrnlqwakfsqjlxfrhknfp|osoejrpykiruefbqzmrrirpkkriuow`takvxXwjowjpo|pmxnirugmpolqwskmrgonig|vpnekdnbimrrroy}qnmqw_gptpomqryqfoyvskhri{ow{imrvjskompiuhwlvlrqrpwfgpnvlmFd`n`Q{siw~loGks^ofXv_qYdovwqo^S_gjsa`fvscobtretMdui^}doda]osmh_ZbnKk]qhn{[wdirpf[q}lnzojdw]nlsjxfkwx[gt|ohe_o}jsvkdmtNfoxVovuXV]zzxozp\_to`rprtlxxito~ex_h\sizzuvxsbjse~g|uqt^qbxl}wuixgfsslttvgpgl]jYflocrkqnkm^r~jejorouhrkszijjkqkwpj}p~}vno|Dph{veinhk{i{zwlrwvbgx{qtnaung{tvwlsn~zr|X~dole^o{ur~mf]]wYdaTkl}mnbydmlx]mqmk|oefqlwqrk{{qrzemnvxqXopkwjrp{sxtsrd{qoitskduotbmrkgevqvmnetxipvkjnspouxkfp|Zqwpv~fjrnha`pqmszflfwl`rXpgitpcaknvvqqyszytslhfpzsl|q]wntvvehjcmyot]juutmkfSe^{sslpYmjljcceu_atwonznepvjlmpsfmpqqashg|t|gjmqmcJl~cuucmv_uwsqfovbktzkhi\pemtn~njujmeYgohYk]ffah}|iimn~pbthZb{cm_xemndll`r^iPouffvnmpkpw_dzrskugyIdqtvnnc`]aazxyurki|bbpgcg~qrmrdzidznlVd~fn{bfspok{xye}_s_kVq~rjusqwv^|nfbZlSn]}tobnhjyxx\Yidrbqna|ilnor__nupu{phnt`uzttnbuornqejo^]qr[o{ympgikdkwqm^rrtpmynrfbpufSmkfgglsibl\v~t`xykodnent[y~iigla`rcitq{lpnylmfqtZltxqxwetxqh{zobiszepsskqksownqljtmshqjmtqljouvqenou^vlcmirlrqppnbkmzkyyzoujisjzstkrg{Wcwsowmmqtndtqylyjjwfvygpqclikmfssllvtvmrukuywjmppikpocneirkpsolxngkpwkbmksfpvfsq~b{btsmgr~xkhliqqyrkwsxz{xlptokmtjq~ciplpflourpkjkojk`ywtxiqxgtv}ipfh|hjnqgnpwoegcrdnvjsnlkaglyhkozdilxvsoz`~\ukfpljjtkigioqjzeuyu_zizqwsipjgbjigsyhmghwnpqsk}rcme~ddspcd\rzisarl|thhvbY|w\lcjv~himnjmyohpn|vujxp{zilfee{onjuwedhf}sstxegpl`jRrhpkiTagM|h{fvfXtsgahyqumeryoj_~kgxjig{lkxkz|in^Tnhksqkqhf`j_wcbcbu]wkzblhwTns}dgn{[sqeerjP|dlM{eq]i_cfo`qylfcjlmhdi[eq{qoj~vr^qz\^YwmpmPitwkbh~|ljjhtlgdnokpt`gvVpZvep``nd{ssYtqgvno~nxvneoUg}getausqbcVmi\|qh\mkfjU}rjlimwzthmtstsyimokhZmr~tl~m{pknXkvtikmoepiotcnxijvi}e{pzfu|wolpf}uya~rs}msh|byN\ez_vyyup`qlilfnzmxsn|orw_Uuyshrov}m_gl{qp}ytrsyqPgnnigb}dzhgmr\pnw\lpjglxllounwpf~entoocitmjj^vietoeqg[rugk}nyrhrqlHnhjiw}{qnzSro\}Zgczn_wtmjhmiuqjnol`i|zhioggk}Nemye|ecd{y_afy^`pgdnoWollyPdicszZjsXcuwisrnHxcglr`Yluthskmzinuhmeecxajs\b|lsky`nzihnywq{`gmuco{eifhinowgr_a~yjnclopk^alhougvodvHotcs^ript^Oz`kfsmzvyrk|ortjgqwvuyzotz_hp_oplf}pjfa_jeqwgchjjyuhoqq|axkpw^rquqS}boypoqmqg[viq|bivornm{urqolwioiqse~|mwlhjulmrth{qwiezwrloxobrtlmd|nxlohtkxtnnioihmtxyup_b|tktuqu`x^i~tpyjsdnhav{_m^~_lpidrellpccpdmrqyogrgjrrqb`xermjzbpmfthlxjrdxk{y{ql{`whnhwsujijnk}q||uvptumsllhrwxfntlxoogjalwtftgkkoupZnztipnxaoxc_jnkrudi[hlr{jrbtzmjkkwhnoxbooogfmrkfjutdzitnnwtdsy~sxkm_yuqnvxqkufdm`cepzllosuvoukobptmfjupkccokwxik|flqmhmsrqpvcxjkr_s^i{kgtoahljtrjjmvmuxiwqfyqtosh{illh|dqoxrjnmpiig]oyfwt_uymlfmqvtiqoqopnpi`y{xjdkok~ltknWpj|xuwngsih`cvohp}fbmsdxXsp{sjeemxoqqpgau}xkpgamlkpdp`kgvidfdniosskdprofig^srkhrfhnrnmbsvukoohgxrojymvwm_t]blrjqkwcmtjqnplwqqnypnso`fkviorwfdnunstr]azihkt|{xd|e`zuqrfjonqojdhafpmyejueb_ooivyfkwWjvencmehle{kunbbpjvnu_nup{dqmiqd[aobrvdlj^bnlajzv|yn{iv~h_fpo{ipoqmgptoth~glogzZnkkvkxqe^cei]plj}ob]gon{^wlpd^gc|`lePumgvcji~ogdgfo{bt{mad{nrf{ekngq^|]bcj:bqk^ol`K}rcngt{ioh|cblgpq[wkms{lt_cZkhf_b}`sqjq\xmYin}g{ulb|znj}fvgqSldb]ShSVesliYvihd\oxsg^iijnUooti@n|ejTlqeoveppn|qih[ZchtxcV`iwpoeudrunrveix~novcqnbslwqpzakeicyqrgwkkyhhognrgi|ev^cqawrliRo[tQt_m]vmn`gopgtlpfmfjzrrlourghpaflijs|dgmklrinkqjr{n~nkhy\lKlclcznqrsisnshvy}~knunfpqrwdfklrys[mdgzg~rhDw~pmVpiyyzxypd{pac|Yhvkcj{axyyy^xsbrmWopw}|{p^u`frtl{gov}yigywZtdR_wkopZZwgks^kpuhi|RlTo|fngrrixUxomfjhezojvwqkjj{{afeupss|euo|?tsrqtwq~xvlpbpe{jjiL{zk_^svXTivXkysmokZ]pahmrn|]o{mjrqfnSedqqpswgpgzgi[_ge]p_qno{VpcrS_j`tn^laxpk}niqquplvfl`mn~jomqhjWajgnWlyosmvgyesjipjz{rlslsivkY^fofbkmnztis{|eEb\lqwczcpgx{uvziaqqqYbbx{iliekotapsykhsutw_sntxxuguhts`~ememhsnp_qxuou~kvo`xtlXtcuv{hstzesi`kbzyfs_brisnpqrt_ryqrtmqtkenixrriaqefgg}onvhoi[hlszsqe{ifegrtqwshudmtfeiqvlf|Zydszrw_g\qmhqsyik_\nsjtdvpbxnf`\qmrqusrrlmn\fjlt{amwZtvwglzuho{hxdsnzftzmmmrxo}kmouqnppXkxkqfeZnonqywt}mrpjqos_}bpm|c{nxkihhrhlxoilkdp|cpkrxmcmgdfmt|hisdugawnqdccqpqdpmsps~l{ryyhMooostfvgjygsamlnojtsk_\mq`^spq`elo]qjl\nnb^edtvf{crnomaidqrqiqkdymrrhkuqvs|uiyqhy~nclh{rn^tsppjttp{q^qx[vfmmpyS~ofmeokthi\q{ifmdsqurtsqubepokiw`qarkoiwgnx[{ekwojzpvxigwh`crSs{i}rwmoy}rsvainqi}ifwtomopMtpkrqvlew|ptpds_utvtulskhTxzfmokymtrie_hmrturbointkz|uga`csr}nrmxklnkv`~siaj[unddmetlhvgvvutxp{hgz`zlpkylrbkpehiuZkuuknpkdvkcflu{u^z_jko^ulcartnyrfk^~jtsirt}xqZli|msttwfrqp{pjovstfsg}gSndv{sxopkx]qhqrmv{ur|qbiVgvx{pynskq~jrtug|btcaeojpjmg{lfkobkijxiqslkxkbsbgqqepp\pbgdpvnhmlWlv=kkqwtln`wvstudlnq~dkonnmjmusqcsnhoqhezcm~i_orjksyivzb}wZpnmmxnvatjduq}x|qsliepgd}bdcjeqymkw|rin|olmswontlwjsn_k}yxlydsmxvkp|wjxVWt[hlvamjdoibqqfysoshoswY{insjlbximeb}hcmvaxspyXhfaw}oivygl]tcw]pkubxmson}wipjqse~a{hrmhzzrthpr`oDwx|vofaqaXtithorqx_kfmrftyViiugvtjswnoflnh{lumitvcfotvktmorfpotfsqirfyohkg~kqujigiqboex~mth`njzonnr_vzunnwletilqpgjwcjrptof[tljpdpjwv{ngennmohipsrqZgagvoiesccrxqulbcfsjkki`iujgmfoqwifelruimmoosprwlln~htqpuqklvghszl|ofi~p{nylsprkpndq{m}jyllrl\mphjrfllwmsptntopkjjmpgqgtqtqvnfixgn`rcnptk|eofkcivqoflip|ti\qsb{s_yhljfpuptqxbilygsfrgjfpppemslleprnqmqsunqln`mfhlg{ncqyrqpnncsnl}ztqkmldot]gwgj{heamnltsvqlmurounge`cf`gy|%rlsn]wo^kvuxtewraexxg)eYptkonzXojs~mljuucnRqweaoj{eewtxgtkgkYzlcckl_|jLjn|klpX]llxtujcnp}igpzZwoosfrbrteeuanWc]ebk~oypRx5ki=spgomuttbfocywo`fmfygi|qvnrrVze{mi|n`Zeo]d}IvfrtfuYq{jwdi`TYmdpstk\iiy[Zj}k|oZsqk[eqsoutzdoh|[ag~saf{ulo{lVrk_^j^tj`iu~xs{ppgguruYfo|mkp}`jlpXp]c|eqitpgmwric^arwu{hYocpyqkjqokborjvvyljicc]gzfy}~rlgYj_kpos^ukZjsmov}nglRzpbmslyk`yrxgs^SujltgyYiO^cPn_gbr^pnaydfkccq[]djthgsR^vru_mfl^}mphvk_tanygqb`afRrngiwp\kwlenmukdTn_wVqz}xurPg_cqgml{ceuckmod_fklmwWngd\y|woemzTw|lrxVjob_lpsx_srsieju\uNt^q`voanpilcmq^ehfpsknhm]dkq\pvhfbabgg`b{}bmy[ZlYfp`sqxhvjSpoklfrq|_tufbkoxcnfekkT_iot|r{lmuQinfsz\taaz~oa~isawpbfkkWrvq~ptbtZtw{vod^ymujqokp|kprbzhmrrgs`fxnrvxstWtirnkrqmtuirlmmnksmnwznzaomuqrqlimlrgfjmxisoahvjqmeputkfsol_t`]zvoooimtudflgkdhlwncnokpsksltjmrfkkom{nsqqgmnzxqlrpcdlqkwsnqgs`krnkjincnijo~mxjlxtuperlznjnOgZavTaiwntdSx}e|`c|j{rcc|yicmekbtIuEta~oi{Td]efbe|^jor]xvzxpk}qis|lyj]l`mq{uu~plnqdxlp|wnmbtaormfjfsks~S}htwrmmkWjqf_\d\[ec^u}k}i\pyct~hx3pthe~ohxvriodbpxWdZfv}dgegjrrkj{lxzpxd`berlcvsqwroeen`qlvn{hXiuuqg}ntqejidmcipktuludciyhgmykgkrkdYlttczaoszgxkot{qy|sifg^[[}T{snbgigsiohv\b]ovskrtfipahrcauofskkdsf}qxo_hkmwr{lgyl}oiyVz`rolsfwulvqowpvfcyr|wptfdojpjxc^gq_pv_jiiainaisri}lgkx_cpfpeolkothkjspziw}ntrvozoqvcnpisfqkhslsgjomvpxodu}ha^qb{mjoifsdqhrmqxkskwh~nqqwgsljsu{njxywwwfihfiswipzyeaxicqbgftvpjfjvzeranutkYjkisnqjpqwtqbr{dp_bglmpizvfhhkr[cjhmulkzdleju\{hhznqnnoloph~mqczuq}gunft|tywxdth\|njpuh`hlskesugzsepki\ljQxljmwisp~qagorjjSmme^_vkvipnt~ij`hs`uvstudZjclfvqku}qejgfnw{gvoilzoudmlnuenicjwjpm{dwmmg{htpitcwfzhsl|vttniivkgU~gnxqykzwkoas{pfplhga_ir^ixoecklu[oeoxjnmstc[vikzi`ih`lqjdZwug\ldlhjei|o`crvjjp~lgl^gdgamvqs~jbrm~suUlgjmgcdnMztmprmi{l}nhmwf~|ylj{tVsdrykeqllfhguaftpldesmszvgxwwqjnyrpsooelsr}pgkjklexhonmzp`sogcnZncMVh}msnm~df~rxmfs~Texvnhngprswsgujrqn{p|oxhlgZr^ipuzonvbntiqqndivWakrprhijfjhykbhhmnosorsoe[Wtno^xlrvlsrni^jme|knfnlkjoqogpviyphmsxjmlkpmglmwnrmk]m~jjeqx|egrrzkMslc[hj|e{ufkp|f\vi]bwippyeuS_vZhkitfFaHeq|qfqvvgl[oxiq[k]wfwmcdqe|cpcglepusdjfu_otwb}jxccqmxwkpf`ssqb{h}tg}[VVelcw\otRspa``fgricsyjiluonuvzxvalY]whifvdj[{hdtyokloklvqvkgnjbjlgppotivxk{mmgmmornkowofvqzzrrurfjqgvnwqtkols~pmrulmerhkokrkqtrnjk|itqpqpfobfqqcsiqnckmpdurojhnfvbqml_jjenaimpvwlqtknguqktoyeuvtoqvvqjfzthpojtmmooulmmlliqs}ojnjtsuqmwfrqgfdrkm}hfhn_sfklslqnipihuuuggpgsjp_ihxpyrronlrupir_^`wvcsilkfcjkkh~{sdqpaqj|tdkchiqvqnhllibdlnhnzmptk`rjncumfjoyjuihxkl~y{itrlp^vkouov`soiiwk~vnkrfNys~}pnqxosjpqchlmxgmc|rrg}lionkprsm_nko|gtktojhzcomhqn{zmhhpvgmqgbotqidvku~kmpqircglnjbmhjmeo_znjfjo}wjpniefvlqmhqkjs~ptmgksfkslprmmjjoawnrgpldrhouxlronjnfyqfhmnifztslactgdlvpvymhvhZliqvmsjlno|qkhxgxjesjufp`mj`gngsZatpwkfv\gka]r{ierargaetVmdm|ooqyejscu[jdeghawyh|rkuqgn]a}uhbuv^qWlhmbaobaltmpzrhlsvfgq_~kuoq^gt]f|xnngkfzhumk^ej}wxz|duzeezoXjz`}vkNjr_lgntvmsmp`VqLrrfn_tgoh]^e[tbhs~kmooo\kon~myZk{l|dMld|ttm}tbqh~i}o|tturmuu\nTodxhsh]Yp|{`pmdLmSwrSdev~xmbrepbiip{h}oce{Yvielmunls`hp_u^oq{]f}phrgvrpx{bYis}wn|{Yjipjhlfnpjqg\|vhlspumrjioiOlti{knvomqqzhpdo|zqkkhpwYb~ni|v|j_jgt|n{urwwocpvpurhnjitzllgnhpazteuojmsyfmrotqhqbHw|p}ln{ocup\mcnrjXvffjjhokjim|wrag}q}drrqsdnrei[tm^nkmy]jfjwwwcna|v{hwufyqmfkmnvsjturrqmmwqgymwvypkkmfktvogpoovovorbr\w|ijocjilvlhixqoonglumolfpro~kmiunnr~pahNqvkpoxk]pxhoipntixgvpugwljvhxeytw|tlbhhnutklpqospcaqufrzmipvkbitunmjxlmlhetsapoa~ol~rpmuwzyhdpjtjim_gwpk}oigimojlopkbxyhkXku_m`yscf_tirsXg}^{og|qfz~vomtknby^eqpjbwpvttutWad\KkxlZlgyynnnYQRVt~vfmm\y_FkrO{SgigYvi[k@lvaxarOx\r[_wgv{rhlgxno^v^ewglPkldmyrlyfiprk~e\UpqujnjZvlgYv]~|Xsv]tvaLrekpp[Yougn~jnQrphws|qlzxuymqnx`rnpQsn]qO~ytvNtq_mk`YmbampbamTrl~zZiqdsMtohVs\]pbfsy}p`$w^lwl`ptpcxpq`upQqf{mitlMjcqhg~^f_r^fx}cnLihenj]ixCfuQdle]|Zgyfl{lprwuu`yY_~Tza`dtx~]tqcrppmkrZmpljvlunflgom{izsbfi^vvmrskrgmzsba\rftvvuifsjcflyprm\moygm\ypZkt[eqp|qlovkooknt|fismhit~you|xpd_eertgf|ucwioef]eu``dgpcfhq\wsiy~Zdvnhdvrwsueohpc[oncpuggtquolUrevxjwzdxrikilpoklz_pnw]mfoto^kn[nsppkpztmki}jydgrtfsi|\oqrkqhtudrop}wni]x]kplqx{vttmnhjjwwgiynstk^alnsl{x_poxwlvxryn`q|bnupeqrjkgomnjorhjn|nblpqpjvmkmv_jmqfvjqjukslpmadvvi{vilr|nsnkwcarhyhjrfoknqq\ewon^j{laRmdrbycfak`o~ji~h}i}lrssitqcrgm||w_rkrVkevuJclM:uo}tdrnY]}fqh{pkWgzsm]9mpiW\Ll_lddloTt|oyjjsjavgrueQijVhkgzqlfj}oP}Vuj`F^jgdhRe|pjG{cHer]uZsZuTomr{ldv]xa^ikdk_u}ps^gq^efki~rkutiafuxym|dzwedlzgnats{qfutuj{ohp_`itlyzl}lhq_yulo|gtobh{qwqvkiyobdexhm`jnrojwbogpgw\j^qekmktxhqoppogottipohpjbo`[fyrlmncjcgvczinvdoemlrmi^urrvy{wucagpzllktaiulmcWhg~~c{]ef`hyutg`lqa`qhksqqnzqnmkwhqics^tdcw{pddQekbfiovonzv]iq|Yhh[qecbqhqlfzv`k_npmkynpwmn{uikjo|liqbjcohxvBxzNnoq~iih\lv}i[{YZexjzoomk]qm]yt{swrkroqhKopx}ujgjtthgpba`cdbfgoqdii{fi|Xf|ln[mmngebnehoCulm[crlmolunh|sjlgrr{yp\nzeehmi][isnjomymg{n\nYndnwlngbntnktrvzkin_[bp_j\ojbklk}ftgylrnge]egkdkplirj}lenZjuwaidhripw~xlapvTTreatjggoquiqhvwhvtnrqdlojrfoqqbnf]ykvigroq|ieookzwkqqm{_vnputfzokxqezkxnvgo_urrhupmjqoleppdojthls|`knbsdwrvpvxhhuuofetpnvjkpvhdrrnn{s}qwjylfjntcrlrWqqbpukmtnwokmofhpnzsxmk{p{mq}gsqwuipppgrj}dsvs]mpukxzemewkfi|\n`Lsb__lrdlwiavwmqpgsjRbohzeyhjxwmhwmckjtqh{_epz}vfmalWk|fmjkmmyyunxsiqcnqp~gxgis[t]evl_yollrppnatpzkoYejklmlbochcgeon_|bqyxfoemiojqfniokzdpmje`zbfofpnj}qwZte|qcdktwnm|uywu_|_qjpmjdkXlpjgiii`rhhpykwYbkegexgkkxujkwwtruel\qapzwdoioerppdmn~xhfjlcvrw_{unqqoq`qcnUlyr]rm_{|cutansitrsukkcruqsewtqoqYrkzhe_shjglawmmwowlomhrm`Yzsp|}cknt\gqrrojs`oqqsgixbo{nsu}zbeifl\frjysiq{Yrjzdgsqojipdw]okldhsuluklxncpuUcYbfox^~rrmvxhYsbvlhrhkhvqioctOvgm{tlgsgtrmsmluuhifighs_jonXyWmfukwnosw}viyomdbipemcbe]rdnm[opnrxsaypgwqy\Z~wywcoup{irxhi_iiymmsmdkqjco`rftfmqlnmi_ouu{sWcbrbvlndropxpomg|\jqiswqtyoy~fulzcbxcrnjcyymxpkq`Tk\_gkiaiz`\eqkdkcbsgtueevjgeyoe^oolf]y}ecl}dlgohezp`gqinonzprstgzw|xvdikqcgbhpu`t}wsq]hnvzphqqkbooxrmnmsrrkmnsnwasdjhv|gsbqenuowwwjvlktfr|teismjoen{pgvoggvkeoldmwk}qwrthfqol}kqhogupyvxuxtveiiumrinjnufipkxwpvjtizquukvn_iyrdhpkieqowrvuesdqx}nnpqdsogueejbeznkjkdmdvobtxfquskmvkppgoheivjknyenoXnm``qxmmrwzwxn^mssrfvmvcv`xpqv~qkmjlrompibo~fwmrmeLjg]vjrukqI}qyzha{]rafzlkuxatmxretbsdbxdupWrt`ocgoriZsjlslyjjchkrqzqsvvrwgmvfEybueRtponbkxobzhnbkj|gahhrxswjphy{mocj]tsf}j_yfptlimXsxwkrxgzq|ldrc}mrllkukomtflvdhdwurmhjlvbpoxjthklimdngjbhi`t]ehQsghetypuk{m`}ukdbznjm_okjrqmluqouiwoqtiWqxflr|xxqonhbjvi~ehd{nhleitic]}jjtlptpjipvqillgs_jizpnikogmut|ukxslii\sxstsnudr~eotoyxorqu{khuyp|wzrfgmjxuvlncpzjmpq}qgmsniki}krdemfttqlmwerhqvzroainporylfqdeiokikrp^m|mhl^gfadlkmn{}mdkorblzpuyrezpsniuwnkc}l}rgqysskqoxfikoieqnjmrsumzxqhuvrsbmivxzvyozrtirgv[}ih}elnblkcn{ouunpxkoismsdpdhm{mdxwttojfz|qs|u{vkhlaotzutv~x~srmlooylvwmvq}rrkb}dtmvvkne|}}{ovihqyrpxlp{xiltwrl_djrjmnrkupotyqrjwtrlms{padn}u||ktrnyrtiusluuaiqio`{sg}~vepc}\tpqyxon~rvgrk}kdmepdletmejmgNnlpmyb^sm~n{twypwletnznumq}fjL~hTUho`vmqbmljipzprunufqmfo{xUwvfm|wmwr`dz{gwlhs^vprrWnu]zj^uuhusjfxusesbrkwlenUdoooyoroyzwd`yimn]\j_fgmievQqfmbqwvi`emmsocM^frhltnmdiprii|fsb`s`{qvsgkfhtrpgd^qurumoylixwjlqgoewxw_pviqghr_qsopqhuc]nogsrmek]knlql`jkaibOiqkakrbrqiwdxvwoxwiq]ds|{spnamu{tyvspeypornekkjhtkjkmrhwYawprtplmwZKzokypwj]gUrpioY^kt`|jbYfm\heuxfqmn~]epvXolcntwWllniykUrlxalk}lzwn4scntiR[jr{lzh|nx~limnrXthvhpgxfyzbShx|nrtii_qneuyp{opbinkwupvhe^fuYpjkvJpuulzzjrntiuk^yv{{g_Ycilfkpoplfelanjighqqenigwjucb[hju~jp_hlmvj^lffcgjlpwmnjdbttfchru`q[\`s|t{ng\[fdVx~q`uubjwinfYomsxqgtqpjlnswoohwgfwpofwi}wxyglmcsqYi{itc}gmS]dnoignimfjsecxgkZqrYdg|dfnqoxo~rizxrtmvpyunp_xqjbzuemxxqjvoawnpqrhjsoll_h_~oci~utTnbdmcskja_l]_d`vlnff_Zy{\sunkpcqjwum]t}ftc|aywvsnxq|kfjhtlqfjywvt_ruqug^qvrvq{lhZcU_ls|gxmn]hupsugxpWrskymdosnnewvpij_`nbmpry`mupdouvcbl|ll|psnwL}prubmhifkyojsuqmuuiTksjm{Ztu_egl_^gnlkhvblh`pyoo^zvxhmmtblkhq_gjysuq]pizkqelgeqmkitq{no`w~vvalon~nopYpsfmvp[ziovvxoi[t^vqshlsuvtiboAqxe[hzuir|buuvqk~et~pzavixbpfa`~ffwkni`qmkhxYotmQkhdzdwbligrnoyqbxaiecikjrj`fpf_{uyellwvct\qmcy]o~dgfkbwdeYenvtjwntdok[}wkcmxni{]kfzquhrbwjrczphuovmgkbjy~{jitrakxjnsmgjdmmtl{qwvih|~xhyuflpnnynb~elznt`wovvrnfqmocroixoirwjhqkpquah}}sbdnakfqo|najhqsfmhxtjrmh|jrvymhwrfaspjf{zdotopdwicosjbVjrq|Xpskqpkmfli|ryxsnqwhvfh{lfvn}k{hlndm`|pzpn_koqsuijdsesmrklvntousymgkosutpjcrt}nweX`zrmfn__t_}hojrnol^izvrsqqXejtpcxlpnhkkwdw^ms}vq_wgohgf[frtloeaupkhkmrxruxjSw{rslpe_}gifpz[aptg{vqiqaoqfXpslnzmbxplhu_wdalginqnmqmeoipz\mmmrpX{~^kusjprojlpolVuqtt]ottvrlnYrod{k}suwe`r`qpcNkcd^sjdwcbnqcgo|qhkbw\cmmvggunxvskprkyBipfjkiOaixojoZdoPgXae^tXuwcl`dRiueXacmvsjtvq]wpcixmrtd_ihbmc[nYmztip|Yvwdxofga}iz[cmvtbkjeiifataxXualjgwtkdjyhwkliitkonzzcsuzenj~rgulivoluetbvkrvprqiprpfvtnunjophmrpqcw\nissxllkpqnffgjojwrl|w}_}mjoplvupkczjhYrwkkggheijkqhkexemjqo`pgmqiiicsglnwmsz~kkvobtukjq}mdm}wnrdk`ltppkrmpvvqyrgqhpjxlyqwzoupJ|qtkzwzv{}~}iksuq~hatllwle{qntrwehhx}h{qX~jz~by`zzrtuvoV~klw~{x`yhsXtn{tqwY~mestcr`}b}tnxwvvmzwo{~~ucl}trqxqthpggy]_mWzsvh{aolxQ`iovv\mesxu{T|txh^dwizoel[agxgb^yfrofnZlfbs^bppjqk{~|sXZrarstrtwveoqmoxnb^j{iRmjRpuwnln[c[]Uyya_v~avnp`btZ{pXXnn[nufrGpcttfzaulwiyaix[pgyirnstloYhSxohj8jrmvtpY[t]ccldZjoggqofdgekvlllpnoykkkSroonrxfdimntnY}Ywh\[gnm^bphukqj|~u~oya}khosu}ifSwed^keulkvqvplknnamdi^p^|@sbxpob|ew{anti|nulmwm{bUrsnid}prplgf]umovo{\o_ctmn_llf{psnfk[isosojpwgrfjRkrztcql{u}qkvznkhjrrgyri{nfohwzfxyurooslumhyap\mkxkm~x~opjlovxpwlmhmksj|gouqsqbjMrmlnolsigvhgonlc}wyofqgrnfbnwkohnjljdsumltgoeisijllnllltemrzgqrklnrspcvpxmtb{rnflojnrwzvvuomqsqsskgnqfkhgpqwlgpit}pzsok~gdpkgkpegcftlohke|rlghnnmn^rvj_gfyogum|kowuv`hlbpxcffktcfklwvncqistj`sdc|`~r{hqtembtfp_pktdztlunjsnhkuqelxmkhirsmtpogflYvgopmk}tgTzkk_nuqmqc|bhbunn}jyyrj~khvzjwikgktokhi[uvthqnibot|vpioSqjpXvsnimoqfwxXitpfpwawqlzncmehokva_qekpguwneijluhi}viph_g}bodmTwlvqrjih{zuu{]majodjcyksRwlpppjmskiopf`lnvm_iepkislnzmip^iokcfukun~`rj{~xnzxiuxarhflupltknqvnoihZyd}q`|vrookb~xuutvscn}cjhnnvrwkzrnokmyljzxjmzpslinkvhakyevpobtlpmcX~qwdspuwoqdlufkippgxr|{uookqhimah_ml`vonbqhp_ti[ubqcqxbsehwqzmyjtrvf[}rlcjzuzoaoooftx`mrmwrfcvrimkfqinqij{r_vlkondqt~s_rkpw]Xnas`{jywkhwPYLr[sjjhcvqe^nggL}ntZku~cqodv\bcu{e}ejbgmKethkObrwlVvu`Vmhapq^gmsukcng~bpeub`T`lw{jqqqtqZwsdrp~_hZpktlisseEaOtj`pdwj\qhjmrctprNmap^oqbxyr[{odlfvh}oeplasrmdp`vqkrmrmonjeZwql~ixerois_d}pghmml\xksszwZqkhhljopdxVqplgeMxusUVizfari[pdbselhrlmf_lwulstwwqusjoltxerbc]mhreguWnwqikvrorgwhjszrpm|cukjjvhr|llzmjsisfbtgpvhmhsotvo[rnv~z}okwzxbr^idxcxpx|nidqpsemilovsi{{ro}mlehksnhuk{\fnontkqvo`ilpsZipsfuxe^cshulerjkznqnranklj}splgenmz{gpxngnokfnyhrxvvjsgpjqtveqn`dmjloo[safxfoqermyfqubootrznuvvnsyvitvpsnzvqpvk|lqugf_vrrmiqm`uejocnspxhrpkwfbwijonp|wdohtvreppjwuidqhir}zpqdfddlrstqcipipkg{}rmucpvrvqnbymfohrgrqz`eyjbtojkthpnelfhjnuqnk}ufgszorgrklkufzjmisrngmgwfH~nmutkqkpm`rnpbmsruwa\gnxlnyn{kiooqfa^khrhpIosmugwrlxhhhzpkwhi`mbcortj}x|nncprl}~rq{fSsloOokudpay{lfX}oYqrmlkpZgUcvsnpflnocdgrlhdfqg~vvwxYeevnvitfl{z}qs|oroI|i|lvkfgkmt|krsYl}{twtn_wzqh]ilwhj~lenfqs}jnY~iujelig\_kkilosjekjtqtamlqjymlefgpntg`qch^wsmpni~mgj{`neiuvhua^ihZy}||nyemgtfmmwjgebz}qwcwkhwjs|nnd{a`wZ{vbk|gwjnmna]olte~gsro^rfg{k`\glwiOYlqlvaoeyvdddroyhsiucqlhhqnnfkmgoowx^ph}lxmrolxxpor{{l~kqv[nqosuk}{z^gnoltUzduh|dduoonrobhlmpixjhasxvfpnm}lxuwvdmpqjnbklegkoinhgwjlroxnn^jtxqmsqnrogghfkokl`j}s|mbrorfpnnpnyuiltjztumph|csmispyfwlqxzp}keueazoteNc_wni[tjsnfT]lv}v{}VvgxqmUbfbv~hivsqef{k|on]gnwWswfapvkaX^peietvzjwybuhvgtkkqn^Mkhc]ehx\f`jgnogjkfupdmhxx|thzgj`klvoumgjvikSusqomwmmkheTeddt{[fr[rtlr]uot_vs`adk`mrp{xuruhnqo|huhjpjptklsttqwqz]usnxqikentniyoqoqesui{uftfefv|mvnmorntpmroqjkrojrpk{^vnmptvij_qwddeknnnllsjuhesfkkltzamdslXmdzooi~i{jwjrhr|lw_nrsttwpkysy|kthmprellkgdfsocnmtyuqqkqiuovkWbmujsmqphwqmTjhzfqnnpktflqjzwytmxtomewposp{qloxnurlzssxtff|dedbbpqvfssostnxv^tgxl~gogyxjpx`pflspeptgdsgnmt`pmchndpd}qmmhfqlgtknvwzmvovbvopkjuqwncqeY}jqewjk~nqorvakl{yogfd{lztovlrljtutp~jn{ckzmzqnxgmuumSjyzpvsyrwqqwkzdnsnhfitsrxwomu{igpjnrknsxprntnmckeosd~dtrgoop}np`pkpwoijrvqskljrkvqqyo_gnxospolohqlvq|zgo}nzhxonj~xqfkvtltyyqjklknfolqyusqqntykrjkr~vnpjewjpnyn_xior_mtyqpe{otsmrne`eigho}vwqhmpreqloygtxujjru}wwgcwek~fulypkmslacxrqlkrkjisaokoudufnzsrzixkfmmymnufulmnlxysrtjrtskuldjgrjafmpsfwikzrwgdt~pyggghyjqsp~nsfrinoyg}ogvn{`vfj{h{kxp{kdl^f~eqooasjg}tjurolymjfsiewyecvrvjnxqthdizepsmnbaq~sdcx{rzgjgwqpdlflR\c{ntkhn^ioufa`csnpccpptqskleunlsiynlaq[gvfasug{~ugYziioppmnl|n~hwrbhjkZtQruZe}mmqlkxpimj|ijzdq^mbu{omkbwrqhp^q]]zdcw_\oinvlt~ppj^hxwmsnywjogptkviZkkez^nhhirSnyrj^mryzjg_pnjksopbefwoqedieow]}uiuq}rv`htltmkvjtaok{dqnbWpnpbo_cqm^Xm}VnuxnscydunIjfcpothp~wtso~sznrmelksiofQYiu^ocrecs|k}m]WpXnzv|jinmVhsf~{v}jhgrhz\fjojufl}ok\{rb^hmumjnvjzappzyrpqljvosxu{[slv~~hysnic[{hjfq\|~yxweY_uYqrmwTzam`ohltgdce}pnurm`qmmfwoic^n[opi}j|xpaneuu|kwuzrqwoogUqbnpoeukfi{isqmmkqpuldflnjqUkne|uugko|midbbpvnogqgjighmhbo`jrqogoyknqdm|fywjooivjruostuiknZzvdlthro}pooqqtsrhfsguxouiuslbjptwohqgom}pkelowutlvjiwwrio}}rmgnqotvppndsoghlpgkbnrxqjurbthkzsnwweq~ohqmtsl}grnkt}qlm{|nzr~ojr}vqeklurnntm{rofnoth{}lmjmgc_mlslnpeyykuwxtujotmmzzgfsqhmyjrgtwriuqjjtzynqzsoppesflrp|gjdrwmiim^ttvtiqkzmmroujps]kgys{upiolxhrrrqyykql{ioksvqronvhqroy_tkmdosmpnsxcqbp~smfjdyvaYvhnu[tkfilfkxcrZifemncwatxtm]|ejuqej{\hjqqxeod][vnukuxlvXll|nzFc\~h_|ktdPngj]j`tzpa]jdlfgZqrgjlqs^adjxvxg}ndgrgXdcsZwYbhl~c_fxrnhem_g_nhmnvfpmfangytj}wj\qsvqg{lantm{ahrgi_hlegqmkejlXkopiubqmjZeprkfdujjgtbmmqtsplgkum}rhfy_tk{i}i\tkpinkwnkjosningthis`lhkfkjkfrpegwmnufk}t`ug~lviwmgln}pqjv\jtqqoorvxn}mniwfkwq`pjorbpopZrvksommsvmqeryytm}kjhn]tgjhermLrcfgodTiof`tjltwmnj_io{l~ophdyqfb}xmqjhsvaitd|ysowru~pxt\riyYuwr_jrtroaj}c}|tNbes{`clixqjv}vlxThpzjiRrkghvieclfme]ejkd~kvobb{eq^t~rrah_zlqdnleug\]lselog}jpojvxvzoeioepmp|lh`y~cpnrfkVhxqvxqrq{vZl{xwtvrfgr^e|xpk]sdgno^ds|ki|lwipoql_cj?kjgjX`x|Zqwzqhjq`jqsgdfgq|rcdplyilgjjudhnki_idgtjegl}nomsqehgiaoh_qtgiyx{oakM{ph]tqiwygr}jdokh`cygcva}oqmrkvWyqinwlp{q^gipzjfmzq`lnojhfoj[g}rujptk|ilkgqkgovzfqrnbppdgxsokojpjchqsxk}l]mgt`khlzszxtqmoguzobtulzprd~^gqgnq{ntqfrkjjokuvk{ezibl{pxrjjjplogpmmwo`rqpsohojzpmltrkgxpsectuek{mn\e]zlqhzteq\w^|behjnqlogvtuje~vsv_nvpkfpjThjap{khwwmn{p|V|kqxorZoihbvXtf[eoem}gz`jouuhphfydegegerck^krixrWtsnlYrzkicsfct|bs\cjfue\dniyilvwnfsolp~ebUqn`pztxbhDkiizyzksvlykiphmh~}bUkkkhdcxiqpm|r|_tualhmnhl~{lkqvvtrrqfqi{txhapsYpkv}yi}gw]kjlq}fmuVhelrieiodpeloyjoj\mm|kvqpkuxfdfwdpjaz_nlatcbtkkf_ishfknp`]kn~eppsm|_ts|`oktlX_vhdhvmylwoeutnihusWumgikrlrpofvu|gmtpctfswknnhsprqhilounmmdnrjrvnzznwhcjlf~kznlhjloqyrnp_wrfjjyllekusyxeuqiussjnrvozjtkfvutkkhlmfrptukpmt{xkkirvhzexjodrilkkmqwho}xqjsvlhhrypdpf|jyymtrerpexjizqjnukoppakrs{rsullknZhsrxp[gmxkwhzir|snbu_vgc_fhkvpojhxwxduxuxftmw{pg|ripxffl\qx|isvowweo}gjejvjwaimk}qnekliflhohlvwonfoh}pboquvuqrdrrwygf{tporqy|ygahq|rgnoug{re{npashcwhgeqqnujhmllurqelrwqppu}gwnrn[hjhrjriWirccqvi{idnfQtcr`lqpprmgvr\}hifzpmukvguwcvtsnh\ral]n{bmxxozl^\NEjrfaccYpjfn}b`pv]jttxd{}v{xhspc}[sqlzyh`jcs{afjvjwupmre|pzapdj|mli}`letWyvlfswn`rr[{vYvg~medYlwxupmqkebm{rtqqtm|ad~hiskoqim`dujmvmj_k}hpqitnqkoh^td|fmlwqk_uwhmmp\jloihhg=}emec}vnm~hdecjmvttncmjtnkmovjlrnrj{kgfpxtpfqtpxkliomz]hjojhlltrxowqcexkqfmfpto|ykwjmlkepyg`|qgrjlasj}uitnsmifepkmkotro{ourpXhxll}kcw[pvgasm~~flpimqdz_tlfs{nqo|^dem~mhld_T|incfrSziejzdUsoihrc2rZpZu]|kunkjohttvdnzn}z}ucps|iuejsjpfqmt}{}pnsy[c|s{iwgolaf`jcwlbhu}k{yasonrxusrc~txrk]|lmmqofxtjusnqiuoW~^mtxumitmlqxw_rkilokynjv~mzuqhsu`uqsgjigYszndmlfgyim|ssjjadkhl^jmvijjkiz|i~mydvimioohndpzygnjqhi]llluzxl_jqop_xsdkqtlmntcjunrtnerowlnsjlpwwrli{llyton_hknif|esu~jqm[epo|uYun~qqgsuernht\kkmkjxqqc~|vuzsi{ivy]pfypluiwoc}clomtriqytusieowlkrpj}woemewcwhphexbo{Tekynpvpsycjjtfng~jtci`bicp|jysibltcrdenvyqpdrcqjlojguginjnqosmqijl|igcqjwqkrvkq|glherr^ismziinrkhf:glvvqnZ|fachl}mxpYxaq{z_vbtjg|vlvi{onwh~vcfyiYZeq^c_wivq^muncgYl\ph^|datgke|rmhzYdw{Rs~wYvcmpzdiLrxdn}_ksjkdiZwnlpq{kmlbjVjVtmnztrgpqmterXnmknhvfpnXo|gph_uop{krl`rdsnzsrnnmmqZ{kwsmnogsosrb}Z`ymkyuvufmkkn]qpolr|mskZouuvlf^iizgodbndiijxkjargdqzjrrhsru^dozvonvjsfl{qxbnhzl{tnokch_ecdy`ouduo]wjso\wvjj}ksqnmopqumsppodkus{uilqrwissekkrn^hy~iujfzdyyfWykwepYud^qlsmdiqclidmitXb_y{}zrptwv`lk]inmmsuirvapnuhytilghoielfs|{lwytg^qc~nrzao|siquglruhrxow~cgo]emlmq{jsjehksYfhwrkyomkmi`myymzokjuufxlpvzbXnkyxmk}rf}rtuxiktslPil]tghq nY}gn:suqgn)ZwJx]jkkvbcwemBeMm4XӜoVi`do|gxen`LZyiflcgmykfxGgh]QfawYqQfi|TOLfeFgmxeJ~aI%ldmSyfl|dchgkqDKbiG[g(Rizvj[gcjWq~ubbuorkq|l`noouktuoPrisjhoXq\tnsqisndckfuxpzv[nyrfxmpnjpxw^wmmjb^Ymhrlx{mkkpkby_kiojhtpk}fzhggkomucvqih~qkurgp~iunm\x`mUcnrqtyrpoWsknb_fmm}o{{hk]rjqlsrjh]o|imgidtjlrxmronkwprjesl^dmildnrkqtZcmfpnkzigpikxoolwzqhpwkjhtjitn~phqslseoltudikcspsj\tssbccuysqkfY`wnquqoiqqbyfw{rmtltkoathmswgtgone^kxn{mqkiexxkgvlffphvvoqe~vqutb^[k|z_~oiioqo_jswroohpntsrmldki`jsrofourbwlohxkegglf{ykuifsjlxhnvoobiroflonlklpmcgitszskmvp^_pggphskin~vix[hngmpmtwnVjpttigisnd{gvlrjshjrnbqluvupvjnphkcwllunjdryefvrwldnpgtsxprpcp}rtfmjlisyxmygpkppfevxqkhwxlrqowarp]ndpqjmbrxdvmtpsf~pbqxkofsp|qma~ojfkslkececvssefzimvwikstdmrllnnpniyeans`ndjc~yabmniqolqluoqjfaxg_tnnkln{sfueriekp^]ukgsrj}tclhpqhdojglfrrsrjj|mimkfmsuqwi[`d{igekbnk`rfz{ffbrpdvrjjrkd|pmt}qsukumiohjuuzqqhz~|sow~kpcrysxoomqs_npk}slqyells{r|ztmwxsqnuullqqkjghszentxnpxr{pxt|tnpwtlqzyxonwmvny{xvgruisxdypznelpo~rwiqxusl{gsntyo}~rvwlvpxmxdxqfkioxhllnyr{vll|ukvsmpqnhrqmsuc^vnxxohhkycwu`spj{wkkiqwmytqo_l~ykhqm{z|zioiplkc{sltpei_pkkqhsqniksmedltxt[yijkpbnzp}uejjozulxsoxmslpdnoukik_irntoevqngiehfmjownl{mevifylvnjdpl`myjsjfwwgrlgumqsyk|ugignuggp|jkwoNcvijsnhzfdI~]mudmkd^froau^ot`nhv|svsa`Xjrzlaza^n}Mypgomo^acl~pXjo`P|}Pbjmsire[venaZ|d]poggcbtckqW}iV|]pjdepggjjnj__`pdqo}hSVoxro]w~hkmibslLSjy~lzbn`bg~e`~ruyoame{mhmpskr{ppfxwf~k^jlrwgzgwsizojkwgoqocnwrmd{yyqliingnmfmymmklr~oumnicomyj~rmfdkkgmzmvxz~kswtuyspoceonbobdogintnlw`v{lv`uhlxahwqgrygf{au~coakfojrvmmxw|ovm}kjnuoikxxvsgksXpqvqwep`wypfxiwwsbjfon_uyzunvp`}nk~uppczmchcxplrgvqiidwxlxudnbqqizsqhriynoqhpmegxgo`mroaouimeensfpq~tvrV{}ysT~pkeom{qg{{vtnnmt}ulumjkcymowpk`hkv|}gct~pckxqrmmphr]napoeslzpsmjhuqrpliezgvx{mwuiqfmgqrlp\lnmqlzhorqxnxwmsktod^c|bfssn|rxhmvhqwozeyokmloewllurqosisfqzktqqngokttqznqfwunott|wfjmqcsp\mslnmowrltiyqwmqnrnhmduc}pgwgqdfdsxuskxqoqnsokyejlntkipmgeuYqhomxjmfoeqwyptvtp_vnlt}qhvfokhvpyijxummqsvetXilheZ\jqt_}iV{kt\eXlkv}rp|ruY^s}jooricuj|m[uYnFcjeilfqmy|lkl|utcbw{Whlrqj[UKnqc_x|^t}r@rerkquTy|tVqnsyisujglrxeinwyr`szwXomjfmmftyddu~`{x\hzqnX|~wspzvfjyjqmrjZk|xhtlfnnyxsnq^domwo}k`sidy~Xn{|u`}qislwnkg]aqnsrt]w~hcq`_~epnsmacmyq}`wgquhoklqblgcanftn[sinatk{xsjpz[qWomotz[qqjfcrjitdfhlbjuqutteoviXrec}fufwmqdfwpilsrx|beli`pr|]qmqvqnq_dt_xlehqvlpsfhimjbprjafpjlm|pm\i\lpoykqzlriigojwl~iu~sjmwogqvkpmupwprssrlawmvltkfmjpmhx{tgdix~msxyfmdomkqzdmhsxvxtouppqhvnkbdvqosl`loksonoqftktgkkhjwooxqurocylmpyaqn|kokvjvugi|sevlYvknbdgrkrglppp~wy_ua}qysjut^srlrotskrrmpouwgir`cbprbpzmorsflsjlqkotmhrlnvsfunvngfjsjin`ug`y}`n\hpimkwimmlfgiikmkpnihip|bsvglooo}drgdork\fkkow^jn|lv~_ourrngyind{ybqlvh`iohblkyikpquftptvkZszt{vlhlmktw~~lg_fiobmtvuzoosh`kqmdiksvniv|vscvzf`dlavjaqcyudk{~qnnryyq_zhhfnhtmixwxuvxhpbqzngk`k_{]h`jmcmnhlhfkrrqtqotyqqorjmhqe{msssbjne_wfn{zvteulm`kulgh_oqcnkneobkcgdnb{rfrnrfe|lqveevpmudpmymoyvffnsdzi`{qzers|{adddfosmeqfdnijwzq\xYeeqo{wxnl{rfUno`kg_wctrjpujjfqftj[iqcpxeLqknmu_fhpputiososfu~itfYlFqo|y`lVjnmnrkkvvrzxbcb~vq{futuywumjpc|`s^r\isyqvromvgecilswnhf}{kquhvnen`Zpkol}dxqamhgj_[rdiwnvesjshqjfqdhx\plgYqkNmculqhiqiscjWgklusfqmkQxjk_lkvvwlivlprfgojpcglhgocgbffklsZe_svbmtiormsfeqx{deRifYkhaiuumn`c~^pv_qtp`im]oghkrpryrcazkbkmlicscu{ymmulpcbSpoZquuqumws}ugsgocgRnqrkjgn~}jiecgurmnatxtnenl}\aW]qikkXkbtquqpnfoprmsebipjsjuge{ggvmfkpnhksimnqabmexksvympa}rbplzmoqhlwxppjgcvm}nrf}mxr\jykkzopyvpkqphprthrviikcacai|QoVufYxlcmoX\nnpuq^sVuubz[ijdr[m``ltml`xi`ndm;_nriq{YTrdp~wbnumnWif\`|nzdutrecsair[fdn}liia^jY}uyVfvfxxklzsg{YIjz[f_smTleRlt?u8jeaytlqzr^Uhgup_pgwhfujacbcvhq[aceqd{k{u}zr|kScaiZd{exudiijjzwycv`XzsKPh|\bwoaofwz`|hl{qVzpvfn]Lo]_l_pfhw_tokw~kkdowvkfDdqnlnxv|rixqg`gbkwiZgl]umcVqrhhaofbodgfnZk{rncprmi^Agloj`h}qbi~]klfrbqnm\}gfpslru{{jqvXZrvr~edfrnfhgpkeohdksyn}lmqagaptzozcthkfxhcoulmfbibwvjs~jnobgvmz}npufx`druo`clhf\yvh`efjkk^egxye{bnqjfo{xfqb\phm`edjm|piukctpamwdnIlxljf|thgxb_tbjtrkfliepjkv~j\mnjkmtiupugpo]lppmtcj|dhkcma`mkqq`mblttjveectfpha|vwf][kpykokatf_{|b\oknlaxl\gcv^p}qj`onvq}hrowsnygkmwkd`moa_f|kdneyjmlf`ferx~gpdbnblolrv{{n\r_xrllklojhi]iibkW_]pbgpxXkfehqwdkxoncm|eksjnquldg~vrbyugkqgoomqtpsuajorrhfxdbpbmplopk{hln{cn`ulkahhmei{nndjrZptivkteyenmz_ri\xhqinorigytsnqepkfmllgpukiywfjmmvpsnkiktlrovgxp]kuwvzcyiolpj]ojqnZukx~qxqyltjkojjppqpwmkqurxbj{xtwmokxkgsjoq_muozmsfdkloklnrcqnmo]dr{`}pcp|lgnflpfnimkowpie}kv~rikbxepr|btqhryrqibzpjsxznlijhgumxawW}knnzseoprcfhi{zeqgnbskfxm`nvatdm~u{vmvepxdhp}nu}eg]xeyblxoognscuv^wkc[`s]xflqy]vjr\r`pnuflb|fbzvtlskcflixpsoqfkheqtttfsqxgiztibrrfeslgenf~mblvjmaZiuiscv[t}Xys\foi~xh`}toVakjopeubnu|jlndodhekxmxvhl}drj|ojZftzslr|xlh_wmrglhvtxfuxwsueh{kogswti^gwntaghe`jqtuifkmter{jxzgv`owmajpq{kbw_^ucSfmpao`nr]Zlre`hfw_cmqmF{{e{pfp^hpXamzVe_qOcj|qd_{fybpinyf~uXfj|dltodrdraWfl|nnjihlxvxtefvpk|ZmwgthocIYqohmv|mXpg}ms~lieqhacmi[k]kymVgo~nqk|fyufklnkk^btdghwdtqnz`djtltqrjnzt`}mmpvqjddirpkhihnvvgqktjs_kllpkh|j}d`}w_ifpukkmYo`xosspoku~mrpuoZgv[s`uVsimu_lkenho_gsfkgdjrtgnhsntn\logqjisljkuimqqoenqqiyoqjqqy]qsvpk{tt\jpwupqpqhblof{Yb|k{p`dknpnypqrxvdslppjnlbx}{vwygk[uktqkfomoeowlhj`y}xoskow`ninsellgm`fpOnjrbp~zpg|ro{|inoiy~otjqvkyaskxawnswonphepegru}vxffjod|um|Umdfsjnqj^qgljnr{dvzvmtoptjr|hqvgpqlydxkmf~oxpmjkz]zzeepxl_qwdpov~mrvendbhrsl^rb|t}p`]fslfobulwusxlfufpY}oix|{ssirf}TevdqyYffwqnd|vylkjkgttaqfcoth_hciSjpjX}gpdivq_T}p}dngTsmbjVvmfkdSil~p`pkrriwlixr{ekgjhsgppkiWjxktuhuya{j[obgjchpthSmamenhmcnopjnazl|ddsb|~|~op``sjoy^mq|Vg[c~spqg|q{ipmybtWbri|`eshsnketiweu{|^uoqrxerid}vn}`hznrSrqlryrsmkh[jzdwmo|hsdlo_lMvtypauljurejnhjzmRwhjjxgirzzptZyssZiqklclyklgqouqcvygm`^Z{amt^nrwkyblzdqykqmfktr~t~xf`hkbnmmrinmYxpnsgjXiiojko`idyXtf^p^sdmdfvvkihtqiskij|pnbghdfvcgogt{ngerhuqodiynncrrd_olurm_jaikZ{cptrn\yj^pgsf^ipYhrmhcqeqhmk\bxxjiytzslbh^aqibt`vloalal|u}chpskkknndyxYli~jot~phsjnjoq|pgnrb|jmdh|vvjeegicoylhbfkjha|upfiprm|ol]oqmjhchkko}toqr}wfnf{ol{rqnngkjilnnjblpiqauwmi_\s_rhjupunkea|nsquyuo{ckbklim}vmwjghtohpgfpnnelGWrKnoctnqkrZspus~~blz?bvdil_cnij]r~Pdnq{__howhjybsfrafp\ylk}a\rwjy\]kkltlkYmjmepzme_eycuh_WpqTc_kohbOfgr}mjqsgvaktu|oY~mqtuavdhZneVTy|kytYI{h~{cdst`rfgk\gk`knmqr`l^^knoc^txnmdfnpnlkjuUrlaooxhgjufo_iuog{mnepj{ukh^dixlkjpRaqpkbsb[l`hk|vp]linsx\r~ulykhmtkjbvojjhjtzye`|hqgsWnjm|nt}ithksghoslqvznfmhfYcrFzhvpdRljeswuqvdgjtjnimoburfsRg{hfrtgqwodipjzxzkiYsupki}ct[{uhentsavjsuih{rey_rsuogx_Zrrxfeflfvtkfpdnrprtqsiqpqmdkvxoxru{atitfdwercuxt}}txtluklfuiskrkqlpujtedspnykg`j{siko|ajmmguyXufwxk_ptnxlqj`ukcgflkiekyns~imclbneejgfjZOvp}lhn]yoqzwzllwwydok^g|jehkrNncavglpQmZzvnwil]l|efc_qhk`nobueilxwd~^kYnlntme^svq{F{Ww]``k>~]_sxyxdzgjanvhtieg~mkgiwL_o_zq{{oirpqvrbjsjhjcWeofxntl^eux|{xulisufxrxcj^hon}gjyjlpiapm~msbussift|sw}m~vtyk[k\hpjsiwmcyllh|rXlmyncYjcuylizzpmqlgtcwzlqmZs]ljhy}ksckblommuZcijm|{prnd{tslrxui^xamu^jkhlYmmx|mqnxpkq_sseo}ponmawYkslxrpxqj[vb]}`sdglykmsnwuje}dehlh|ntt`yci~hjvmskeqdowyw|xhlqoivqp~rvyvdidhfmkx}g{lq}xrwz^ykekbfn`uojawvreye~jjqlob{mroZ`fl_pojq`mma_hnotfgqijnnnqp~sidgidlfuuj^jiu|x^{qdfgchpokjit{l~d~lgnlmojikr{lpstd|vuj|tmcsrsehju{}msphctcqgjifzhxpikwnimjdg_lhdstsm|weoth|kqldlkzomuqfegkpgjme}ijlnplsippsmbxknpsrnkkcmfjjesukglxobrkglmeYhkivvlrqirswjj{qpaqfgwmx`~syhljtyxlgtqtnzzrsnfonrojodnsptpoUfzkygtimspbh]|ylvtcklhh^fklehjxzcg|m~~nftlksuxdeupofjithwlzzj]inur_^lyqkfjXmgfgscnnhuldpzpvmrdesfo[_obqtikswdrjlsp[fuhhqklu|gikdh^bg\pptu|egislq|irsrrmcyg~Zfyulgmoqdlipbrv~if^mltmZpq\gjkap{yysw_anJin]}nXqjr_rVrlY\gxyuzdhubU\w^xcoYmnhwYo\^vuS{ZRnoZo\txwxmbaDusrZcqvk^pQ_iwgheijwjg\e~k~|a~`dZ^{x_meb^Ot^ab{s]Zac]atwWx{pePromZamydgixidec|_szhzYholrxxfc|pyveoka}oM\hdpcw\p\Arlixfsyv}exro}~\YEbmk[|h}fo>~Ghp~jVifvtubvymc_[`itTJ~hzp{ZEvqj{zisdf\s`_|x^evtjUo`drzy}ZgqLR_mdkvQeehb{QhwmtZgs~zl~wbmQgyuagpbcxfRqgp\{Xozsgeqlhplj`ouciMy`esucvgsntqurtz^jatrmrtkkhnwxk|qjZfepbfhhkbm|uspnccfeunZsHxg|f{]sZohm]obn`azwcrgymdjn}oYnm~udxjslskpkiedzqshgrykRtmanqrrqoqpo|mtemgmkmskdvosj}{pzqiqfeiwmdk`vzhk|ketsolueo{gkpnajkzcsosivnlemvtkenksbtztwgqhhmpgoktmbkbstmnto{qflbjhgwt|kooufid~]wbvk`lntz|zopoinnglnjke~bVtfths|qgfvhqkqffqsnervcrxzt]zruc}aosqpfykrigpzdxozwq}wsqwmmcm}hsgxbgjmnyblsd|cmhuvmxohwihjZ}i{ijefqgrwinqft{hqgv~eglpymwvn_fkbadwrjuexpvf|zefgosqjqmuqmepuozkibjqwdtwniemmb~lulm}uifsexhj]oplotq\ofgwxpdmmiwydbf[n}dmljhtwivsjYtzmzofjxyjdekjdl[ukhqk_ovrjjpc]owqjkprbwnirytl{}jtjxiut~Vhtvqk~nomitminrhnpiisrxmzgouprfkn^tnodrmrnRoh}nlrw|wuxrfrkzwhspqaatosvukhopZnvtl}rnjropolphggjmypnzzhbjrnokxqqmopcsamnwkilhfvnlo^mfkqs|pcnmlohqilpcjoornxtg{mdpqkwvmgq_br]wjddVu_ovdnfvscxb`_jkvvpmdfY}fnicsnyri_tppYcpkiwurvs]rqegwfxqt|hel}bmui~gskfjinwmhcgaw_fspwkmog{cqcn~evmprlhgsswmzkn`kheoenn[kvdghbje^`rxqincreraylmZim_rdpnncpwvsl|kgYdehgdguwkwdorzlzwokshYpdnpivvpzhknlospk`prpnqhr{|qqjhsithromimbkjxuzwxtnjmjk~pmmkc{rzfppulpngjuvnnprjji~wmqkmtkdpwwnpfnpnpeshlegjruylroqlhxirvz{mmqsmonxskphujsyg{njspvplfoolvujqr_lrsrguslvqpll`ux}gpnhiTfm{nuqwodsteilmhgiujowfag}quea^jbwmfmktOvfmjsrwkkmn\smtqeugmyrZzgZpqtfwhxvlxsquYtvmxatatfmfzjlmofowj~oirnhdsoqtje]lirhqsygk~`ifjpjkxefuscey~p}qupdylfpoouevpeoytu|qtlzylnYsc]eWchnoibnri]nctYyjrmjjqsyvidkX{rnght{ok{nyq|]|tvo^kVw`worsy|vqpmdfjn1v|l[y__zdzh~~jc[ltcvnlorx|moilhpominzfhtozqhyihjolxp}o`teh^ehalmivkvb{olihjo}_~ynoSwmknlgolj{lpnVsbdmddvmrxugqq}~q}wkmp]criurgrywfr{frssu_orlgpn{n}flhpkmcjfuofmgnivuulkqilohkt[yqresulmqQts}vjoiqnmmfdnnflwnobvqgvsbflxktg{nejsqexpmswiqlghlssghsx~wbswnkhxt~omipkpunxinmrqsgqlpbzwohylpvvnfzlmizttzwom|lish]jelledrjtqqoybb~xug|dje{WghtfeqqkxnxWwnrntQle_qaf~`jcwcel~TphlXan_foko_mzvw_qxkqgnmfqp]iv]{p_vxmgbnocdw{h]vdn_lbo[ejqsuoiT{jszrbUOg{hftW|qhlhbolrRmndikchVrvoeszZdu\px\wbrusgmdklwqougptmsij{rohnnpxvic`sqkhhag{akxiokntTqjowkr}cwygokfnr~evxjlnuelnkqnbxcnYvhpovlk{othjqhtff^fussl{Wdjhnurqlmyki`isj|hmdlbugkzooTyhg`opbnwjxdnr~cxzdamliqvqyq{ywhnjiagwkx|p`pmdqyxmyai|knsumq~l[iwpppp}lkyhj|mqzqd~zOnttxlnU[ts~nmyYsr\eznHz{lhenlqvqMoxb`kvqhovzzhrbtnptusavhkmnip|kifchhev{zlnftkbZrnl}romqvjjc_yxgvd}tkd~nhpoq{q_sgrviixopigo`qpap}l^ozom`gggsqwokoojnjsilt}wp}x{fmelanhturgyxuxds^mhiigdXmtnipdmwuknszsqqnodmmwoisleoariokli[gvsvjmisnlhzk{twzzlprnmTxtpb^mfzcrwrmiz`iifunrid|nyudh}dk{nwhjk`oknsswnirmvlebunbzy~owapo^kpdv|yl|qpcymmknodvdpxo|}jturvp`wvnmptm_ygahmuvkpe`we{ws]ghthxrrd{c|fqppojYienhxbchpojr_|ajeoRokwdrspojp}[ilqmphfbydpQiplbXcqynuntp^nnmnklnlfjzmug~ofnpmyqukyuhuznssrglootrmhu]q|iiqxnsfltvpzl[{tlbrninsmikin}jqluxjkf{sptwpardutflpxnfwjpiq`pvtpojwimft{lq|{uulpncrflqepjgcj}txhifr\shteumyptrhlpigrotlwwetpjlnu]trgwogr|ptpvyxrsiqcWltts{hr`nnglijfrYpkcqopzgvrpr|trwfrnvrldhjthosmugosknlcnu|\iputi]z|]xkx[u]oohfwkavn|wxulymYgKt}kvWpz~{itssruujwu~q[pqtxcnvv`sug|`vucgfgtjn|z]uzwj^cT{dwknawhkboto`jlmu~~dbvvqnxsl[`kookTueyvvp]lwy[gkvjphsjqpshkakurnpZvfo}kqehqhhdgkjjpnUcpojZxebol{nXz`awjgftkVqnkped`zWtomLTXqagzji{oxZpqgj~mpchnuzuuh{bbwzaovswbZlkhJnjiurvoiw|iC_W]ixss}c_|_aj`o~stjn]sappbqs]samgxulxayowgonGnauvnafpoliqlhyrdbycfvmX_uo^}c^}wjkksqmTjcxm_{`jftuxwjmk]{ahs|fhpsqI`{jqo][zkt}iz_vxm~fc`yU_wqnyIvuejxmzfnbuhwp[stvqXkrcgibFv{mj]j\y|fakrj^mcnxutnu}zwim}_n^ttnYru`nz}?v~ooylivhlxojonazztvek~[{kq}8Jsgpll]djOtaks)zu~fpqambshkrosx@\sYm^nszXk]Z|j]Lcru_wldwdZNpv\{{c^pvk^u^[VpR[emefdPtktgocsko[szusej|Yqdatrl|]u~kYqp|Vvvf~i_t{zmu|{fYq{m~mgqeKxhnwlkvmtpgakikl\tje]niclr~pwhhnofw~osj`plz`gtukllgivkzanjodlk~V|oa__sn~tnqcwpunwzrgfhtjippoorh^skimwlamfmpnxcylipifunrxvwapdqwrkfp`Errr{rpmbkqpmrqersiitgvpv|rfwqmkxdbkp}huqgioikkatdsqjk{]gkbjabkjls^~wsbhq_uv{nyktpsil|engl\_|hkhhqnoqfsr`lsqk{gvtujqm|kc~sabnt_xzmovi{frwqvfwyqgoqg}elrsip\isfmos|doyhowkdqikjrrlnnzmp_qpfft[g[mkep}xy|h||lyosn]nqrgqs`gn^ibhhyvxtvpdfmx^uljrnrlqnocrvharkiayyvpoble`grpWjaxn^~nj|e|ZeqvQie\mtigtkrmpw=~}ll_johjguj[esjoahvqng|nmwkhmusyujdrgzonvhzgsyr|x^gyj[f~klacngew[skc|x~lmok{pqbmvcbni]mpzhsflbkjcb_oqfwjk}hjlkpjdmdjfhlmvio\n|ilmsswnwengopxdy~nboslgqsnobnpkrcpocsvvunpgg]s]ig_xh{xjkvrN{ue{drthipkkkiwqqmijqrgv|fcyvouto`emxfrvqass~wkqhurhg}laqocsusnbhqhgomnuvkkjzlsduldypkoyyllgjpwohkx|stpmokh`lkcrwhtmpmiixwqnzml{vqbyrejfpldqpfthtjiaqsndpjtdm]odnwphfw_pobjc^idvnnlpbu|rxvfglqscnqdqivnybh~pupzdhfitkdszhvlipzlsmioj|wjcdps^ngwochgt~mtmtqgeogmwk~erhrvskolpicjpsrqnwdjoqimlpwpz|khshnvr}hhrobciyovslxrkjssoitvnVfyckwyopiftjovnkowemushyzommwj[jaujqhnjyou{unxcmttnpxlsmnew~{Xmr{vipjmsbmswlqoznn~llmvj}anponphxtjo{tsos}og{n|mr{itrjomtspqfqvrolonmnnsorfrmgcexg|nfs|kuqgpfzrwlhnthfcxmv|mp|mbjkmp}m{tipjrlzrlovnthYvfphdterc{orhhnlrpklsyx[mejirsnnytgsan~uqhqkjtwxdjpjqvscjuos|ukrpqprnvw{vgulgxrtsplkn{yv~qvmooten~mcjscdjlyjoih\glwjdzkyket~ukuyovn_qrvizj|bpjwuonixjen[|jgotxukUi^bp~~axpfcafruvtzyjgfktaekmtusnohoi^rmkqwckjin|ws`tjon{o}uylusyins`rndqvuqooymcul\wisjwjOpoxjtcTx~wepkheabv|ovcbyjvekwokshoWwdyhrpvknphvtnymyvppp^vpuastoto~xsqgxztrp~kstp{jjwjql`boupopywqfztkqz{ro]luvdhrlvykhmpsdxqz`rtpnhot|lplxkb}vvyhngusrpthgue}tis~rknkeksmokwqis]xgptn{iuukjqxumirtqoyqmnusflugmklfriqpkwqsn{iqpjofvllerzurpcsofiowlcpkfdhy]nzquksphx\ldyms`hjuqvebpmilne|nzpfwqonoXsygrlwxnjixvSmetzqjnmixmh{hwxxvjwwroulvyUq~m|fcnqjv~jnnnjn~l\unkawocsrpyainqqvlnupsxqmewjkWnqptofsnq{`ono[rhmznojieggstghUogkq~nngtlocjettmqpzvfjqgqozjaotutxsrwrlv^onxfjqokrnxefZchpktgzxllthfzkzk}dqkryprylxmjgjvqkuisijjljdqkxewajladdpehuzkgbxspuqlyqcalj}iqso[kq\jttrrisrndlawvhiorutoeofrs\uxkigrnrgotrjj`uelztbksurjfmgqpkjohhslhlnqbn{lrntlnllonxlrnw}nnktxeyqqgpoureremvyrion^owubirikwmpfxpstpiqpmku}uqgknowmvtjropnxvx{bk_crltnl~ikscbzjlnrsn|qgtwxkkwnjhmixtuqhhlmqcjhf}hjyfrn{rniipcrjmgznsmrrlfihozf|uomhtgekqjjqmeemnm{~oq~_ggn|jcjrqlcpr}kwj~nlniqitkqnlvnnkmklhgkttqwyoxptjxjchx_zg{nlu}nllvqppicjc}ijrhkjkja}nyosillhr}sbuvj]snnnmodwiiuigw{yfrhlqqtjsx{rhihrrtirgsempqtt{unppro^ib\hnnynsrmtbojotrrqhnwkkzstopn~vrksztijrnijckunxmummpjwjpb~gzadxpXrkmldnutsl{jmqmfvzonbjznhjpmdomcnqfnd_fnekrnklpwjsftjujpuqqtyuyvzvqyxmkohtpytnslcmnsozeokgphpdupwlnqioi_cm^xnmscqng]knzdwllkv`e_krmpTlkhhiyalhp|vvfdRmmp}hejotpnf{pqhrlvmkisopdbe{jkKw`tgoowwZygd^p~rppx{foje|bqffkbmnvyitucszsetj{[owvznjxwroxpjw`qm{gar{umkvxqnZjzulv|otxbsxpszu}gyxfh{]zcg{yxcjkc{ptxoxmWj^unwlbeqpmf{nyfon[qflcprezhm^nscehYqphhzlvkgoxwakqlt{hqtwrnxyfru`hSh|euxbimnqcrqqdpuc}remojwyrgvgnqv}fnqmrqcvgywo^jvpivvfjY\t]ulVgidul`hgrqssgrwyiqsp}qqrpiuhg~]weruxpwtdmjpo|wgv{kbylnvje{`gfjwosrpmub_ukijusulwtvmzmaisY|l~f{gcjckgoourljvjmmmo]}xkkqssomlyq}knhmx|rt{wk`mcoumm|tdszrnmklaacvukiromljhnqZnVxqunqnknxlglpueernqswzgpfdsovxjoqtqinmmqwpvglrommJvhsusgljmufyunxlwlzioophjvbunmkn|oolyodvept}horsrfhkv_xiroqn{i]m~i}sunwfmeqismolxv`~gspofq{iekngrkp_frSj}pjktovbmthtzrpug^z_isuprsj|r|ppkorxmejpluujiupukm{oujudtvocehpxilrpkanbtjhjp_gsjljrhgrw{x~qbq}iy~ls~gmjqtlrtspqpjmowjw|jtqfroxynvyjmlpdot}uobaptd{zleppi`rocjn|vogu}qjqox~gcnilr{hqkixipk{ohvuuv{sgymqgsikllpr~bhp^eepYirkhmogplyqu^||sznzfvitoymohzwk|neujxrwjklsgimwkhgki|iqlmkglmrrwnigmozns{pq|xnfmq{o|xodoZhyurtfjormdtevgxmomknohptmmelrkt|vulsisupnj}xujumzgcurldhfjoqxneynmbiogbkkqnpzgytlygwvpdzwwkflisrpknooqtniqpkhnrlqjkphomhjkllnpogtr]ix]cbuubzptyjhwkh]rj|ihqplj_|vvkrshvwmjoumxpgswm{gvpqr{uw^tpflmdgyjehni}n~ivxiztr|trrutjdhztsslyrmrruljuqqt\kjgfajstini{]rlrklznl{jf}ggjcmy{cynghltdqi|ptjc|}usigdlbvpnfmxsmojsuizqqqhphop|QkmrzuifYhXnqufpvbhkkqds}mrlprldvpwzavnriwlpqqqls]bmogyifz|mdadegbolhvpabwnxwycurq|poxczuhziaymY{hofodeejdqsofcnljmfqmosnpqlr{}chqp^_rhw_dxfpqYwqlqwitomnocqnbxldq_Ulrskwnjflidva\dplmpy~xqbvbml|^`ofgjhgqXdmvnj\hwt_Yi|s[^xvb]`hjnrhvkdr^smxokrxekZLqjwUnofwnwsnnkpvdllhuapyjrqx}p}uvddznuk_vwawgmroVrplkpwJP^}xldftin`owcsystytz^e}wt__w_i~cq]rbp\xj\Voolxizzz]]x{bjj^c|oxbyYWok\]Z_shjjqjjVvxoThph|d]v{owd^}v[vUrTe^rgYos_tmyxz]eXtlnhkzqbztj{u[mowpyWmej`qqqh~{~qopkt^ghmhpqrjigilvqh]~o~lc|Ylsarmhh^gcW^rtqY{{Y^m}\tmyoqilngj{mrnaesspnlfk{oostytqtkilwrntegnfdm{mnarlq{vavbnuuppmhwgpfdmvpqwlipX`lloxcqsk}shXvXkedgvoxpqsqtkekqrrz}rnv{eiobodpszzm`mjobn|lrjhzskf|nevnqhnjxnoqqvnfv}pwonnjmnfchou^lvv~vujvpwtpdnwfpstpvkpzhophjmfpssm~ktk}crsxnpwjgnqio|sumipnnqqnpurgn{qmpsxyosermj|vstfukmnlqtavk~ruglwy_udw^pmlcpolsp`ghjrqqromnlnhqhk_pepmjthufjrekulsoymxypzmowawrlnirn{vhhmjryotmrqlqtvshl`swxznkyWuotklbmplisgofksd`txvwvvipsqnmdrxnij_gfhtpfj^s|qnlmvisrfcol{vlcrrn_rrnjop{{kpvmn{ups|wbhowlmtypcv^megpfetljrqopkvjpclqygphvntpipjwvoisqhqdppionsowxjvueqrl`hrsvnrzepjjlnis`vgxtttxi}orvoujxpkzlqro~}|ihbnlo[hkhysgnslfinckrkpkrgppmri{zwwutkitljnhln^hvoz{omknoukglqm}nofpdmrvgksvhiecl{tuymwgirg{cpjgmpm{drivfvjpiaiiofxklltythkdsseemky}guxvojbwptqoukxnqnypnvmt|fasllronyqypoypssmqmpfmz}nhkismta{ofnvlkqmk}jktjtfdcitq{k`jxlztsg_sonarkedfiuzhqlmq}`adxqrq|`nmZvrmhfknmoeuZmtrcvpptnuRmzvqurjmzof]cioxmruji^nrekoqqxxnuvqzpgrw{lpkupmo}hvxkeellkpwbojvaomhhwhj[ojpwjovjqrqjlnnmehumwo^nj`qmiskm\|qggrh_lppybqqitknkl}_z`x_mWm{zznoftjdRqoiomsri{Z}gm`hjmdugrhmsuif\{oxfnplsqzxnato`qqxfer{oydqsqj{mvokohodk[`kUUeuoihxzomcnklvklg[gxop]joll}Zqpgodokvhq|dmyg|jphedjlpypn]dnospq_kmnpnmhjm|vzlekriqjdbrkgpkhskufygavrjeghscq{nqgckfuklrt]oiwn|dogncvo~rqqopjtitngguzgvnq~kpulicmpdrpkrmho|qtpqclvqqsutgyepLhxipikvo{reonhlvorpqmspf|oepjs{jtpraxctma~v|dRo_rrsxpsyopgmxjq{bumnkf`juu}uxwm~ooSqcgzk~el[oqtbiruliczxrYqnlkmf}lxVrlplvmp{aqbjqisxjcuxplrkkvz_nwrkqejlpz{mvkvmoz~zln{rxphi}ktqwmilsnnnwcw|zyizvyr^utrsllrkXtwr~vai\smtwlto`Xx]rihn|laZgdobvs\~yqokmptcrgqxux{mnkoed`h\_gx`ztnsd{knigbmmqkjfewjitrsjog}nupe}nhh`cnbbim[bkbu_yomypsd{gikmxkwxnsiozwzrncnjfchiylthnxs]oTdhjvs]mgnvfv|qw~lbppvXekkwsy`[fs~qggmjets{utuerfrlpzmnveokfio_|puikgohm{qtgzfwokryonfsm}lm}vldsxmlw\ohgunsrms}~sa{totp|umqfuzxmunrrnfdsnpjiwfwjonm[lflrmsoyghicchroxoisxzwnti|gjsar_vk~qrhlprl[yknxbtojrtolwqz`}vb|h]ofyurmqceo^prvu|nlqomhenqqvjsnusgvcstujnkhokhgsntsqznersmnpq{\g}jdfhninpnv|oqsxxneeoq~knlwrmwjten{ldqajogto~gp{~^stgsmqignkyrxwkz|meijtdbfjzisnty\tfnz~rn|np|qmarwvsslswguroutmqrxkmmnldqh^_lngMmtj^rmjghnkcen}jrgqjtsenidrijxidyluqognoxmzpltrj~orlbtqulmkzlliuweqlrhu}Quduo|yfzjmtowljgjgo}sluprppzlroqymj|xkfhkklsim~k}~j~zv^tinroeuvttsgtolfsZxqmwwozxvsmwdxpmstmtqtsgpr|Osuplpfpfyxrldwlnlxhqkwxsf^xsrdjrqnosxnugqmptuviimplwon~l{aphwcgrwykfttsgyth[_e|xgcmg|ghzlidoonfvsqwdtvs|qjkrnefjlng|\m{xcinphrlgsfdzgimpou^vlmcypqtjkuyY~nzxvhryvpbx]yvytiouknpn{ouqvqsnmj|c\tivtytrrvfl_my{sqtnlmfdZmkuunxtwotxpqprljvcb_rzkvvbsmsikoejmmqontilnigvqirvkpietjmoj~caop\ivHppqooio\skknojsukohympumgvhlrufcnxnunyjrnmrfhlkoivudukZw{]supxz\ydyjdwfv||{ptzksfpdqtbogjjqluxburodqkaxjz}s}jbpqqwygrkperog}rovxovVoxsiclu]lpulb_obUinqptnt}lvikspjpqq^hk]{dbllq}heipdlmqs|b_lrdwjvlnyjkwni|thton}pg|_cy^kcanaywblHrsyip{i_towckmulddhmscowTvuXjx|qybruldwaypsxmkpsfflntjjomhnytqm~kzmkheqgdilpeyqbfhsuftjgtpvqdrptrrwpopvrvoxvmjpnqrqnmyuitqqtglTqmt|jotrqljijtvpisoqstu`dwa{molukgvlhwikilrdi`onsl~bmshmmzvmgsogijqqpqlthjjwxlvjrothjkrgmwrppn}lxmf}eqmmokncstj|rsjwjqfrp}elqluqjpjrknpvrclknawdprrmztjdqlqi}vljw}pgek_ren|tpiim}omlfps^zjfflbekvsu~ofmmfmdsonlmgphe~rnmhrxuvg~olppvgscikjnoxnl`rooohlhkok}okheuwxlymihoigmbhjorhpzvmfevivwpvnetii|gwbfimnhzkdzdlrjfsolohsonqoihgkk{{rbgcjfrlt}pt|stokdur{j`q{halnxlvolprz{n{jxutgtihinfunvvxkkxopnovYmojl~yjxmrtjqdhssl^z{j_os{}sdmwuh}uxm`~tyzsmyp{ooopokzzyemqrpl`xp|{ougdenohqpfmgcc|papp`[gi~inlljqi~al`fb~{t`dqXa\fvpzbyr~x\]ow_jssjkciYh|i_^tld~qj{iphju|tf\f|~sqX|nzpnqvee~nl|kgowlmmzZkk}yteqhttvrtPvqpvYvxpm|{smuqswnryunpiajpsi]trnvstdomalklnuolwzpsshyiosjmnhcubd}jqlfvidofnnpk_{ytijdrvq_iyoenylllx{gmszdhzimftitsrr`Ymnu}knc{fq]qsp{elwedxn{{gvffskimbwecoirolsftimmkdz[yxikgi}nnfxef\oaj]Yiumnxolsssz^`fs`pqxuysk{epxV~mnos}\tf`\wpq}munykjfaqsOt[qagrksfmp`tq^`xi_cvrcvqf^dicfrijjtdjjj|_lsyY]w`gz~e][jkbngrsroce]nlrkzmizobcsgejzivlg]mcenlof`so^ihesnje]imxgqulwcv{\hvjiizl`tqanw]zUff~kbzckiqpompjtob|beskdr`d|neqnsm_xlli~kslbowdgjmgky~fe|pk{cktwxrpultmjmfo`ktmonfcokllmfgtvvo{xrrgiVldVtljkthnlghfqmu_lhsobmqloybuhwimhdjbxtojrgwh^qrzupqsnhtemnmmnhjlwxesmtjmtlmcxklp~mpjeoovpangr~^|nnvnrenmewlxvxk`}krpnzgkr{jtijxicj{l`opdjkkjjj|hmuq|`k_lpd}itum~ovszpmktvmpftrtjfuhkgqzswmkimlgq}lh}zsx~grsmtxgunnguhexmqim_saseb\dqYlftxr]jqbqifsrfpbwir{amo{i~knnddrgvmp}vg}qvvqjfk_kkipZxynfvowjnhgfq{ygtbfmojkswlx`bf[_aspkkfuwkeqsionwkbahleigonipmhkrrkhvyswt{yrat_aUay[zwlfexcvyhkjommfnprnnwjejcimpehwmlvig{ktzn`h_g}vkkexdz~nhxjnuklnvdtnnntrtdhxqw{ikpfmlogvevrvcopf_pggkl_fqlijlj|pc\fekzu^mnzngnrjujqpqtukrsotqltotprzgsissppnfgzqonrw|d}trxbfmdqnithnhfkelpnkloixjynrquupcvjysmurxrvmlhfiemvhsqqhljnglffkzqrrhrlqxxhpnum^nlxnqmjqvznqnfw~ormgslqrilljwax|{egdfdmfhulmlh{fplerrlpkjsxtrvkom~nuyzvj|pit|vssxnsm`vftmtihhpjgomt^xugpoqcwldopijoozlrsxl|kjnvee]zodaaqkxjupwokjefkipngu{e\paojkytj|WjcdmwwqtmmhqxymzuqwgjbjbpmcXugrtnrj{wqhcsvbserovjvwmhzjorxp_X}nfizqwuo{im`msrlluqvqdhipaa~lkmlf|[uqmyfpirqo^yhskoki__fvujs`qgmUkddm`n`up{figx`jwwpUkngtl~mitvpwabqoocsmuli_y`ec{huo}mmusl_ixlworj}qXlizoxjllpqmoudmjqnlgmrr^r~mhoe{uvxoqvfluu~urqjdeqincpjtcsmj{{[tV{pp-Snzin}tdnuo]{}ejsvoofegy~aqh}mk|fwpZ{t}huchhqSjysuqdoqp}nztphczWfropc`m_mkjgkxgtlaivnrndeabssrvrwxonm{[niqtbnrpigk}zptxgts_j|ncgjvzjqfq^k`phfxrid]Zktfgntlocu|crmyrivrjmttxg~bwli{pkn^ymyrbgrqysn|kw{prd^lpvelkdd_zsdy\nbgotbym{rgvidrqTlnaiwmp~kcpifrrqf|bzntozvdbcbacolj^cw`ejfgsblmzlxbnwrspjudzzoflhiphkztligumnqqlvpvsmkpejbmjjqsssqpnbrlmpmofnrrkgzpo}gr}pfhpl{qplgdjoluwpktksixoelgljstuukirsztvoqzvlwpdjnrkllmhepjnhrfkj{ayj{mlojefmfbfjs{}kuwkpgugotpzovzrrtxtrokmuskxsqyyooxu{pmkppdluotomrottkoqliri`cqmnnntejpqjzqfsfmpulkcskvowgnthqtpiksxnf~rxivstrxyn_g`|vejufkkk`nhpgtsfnniwb|~vpgogfpmzxhmgqjlhrlhryltupZkkslsq|aep~knpsvmowwuhoqtiijhrnrzboklwh{|}njrmZol}nlljtqoolqqpkvlmixrsr|vnkiiehozixxksrjmpwmrycpui~tvwlrlnjmlqidnqngqstgupotmmdZlxlnktikjgcnvsmnrruyuannheugxsivhp{vuu}rerketoomzviorpizomllmbrhg{sjqpxdoesjtspsiznvljgvhbs|qxzjmo\opzllvln|gpyokgophwiq^rgnkhalwoo`untshpone`vkshenuqktqfsjlwq^~toluguh[rrjjhcwbiiusc\xqrrhytlgqt}h^rfkq{vr`umlcorijqqt}vflkt{nmcrjq|vnrgptqsgykqhporktrdipocwqg~oqit^ewnjxqo~rnfrwfcfpioqlkhvkqsesm[punklpmfqfjkhfvynkmirxqnbghwvZpoz~d[j{wevjycg{}f{tiuolrqiqzfWptgznlyvkh{kzfSoqg_tui|ns`vZsl|rjnuxdtdwcp_wxceyfgpyv[nbxgfynjhzpn}sggizkitajuvswstctcsuk_QngpngsezvRx{kuamps~jksdrumprpwpqdottrpimwnbdvshpujrthvvokismqrmststwwmkyms~rlwpnco{kmposegdwsef}kmdGiwmrlmwqpokl[gioklud{kshnmuo_rltvmjkov}dyummcsmWjmemfvnc|\hsawqw{tft]}nzppxcnyohclqxqnqukujunpinhdurysktqlhtwv{obwgmulcqZnq~vhvfilmjytlztqsuihxkmkmrospp|xtqptgsvpoc_uqcjpwwcxswmqpnmdyhdkrWrplvctkqovuofhinuakwmvnkpmpdqmogppogirmoo}pmpumajljmqvcvj^wokxyopurswukfsthdvepviwvkztonphemtsojpofZPqdpdrpdhufmghghimlltmtlrw{gomlenjghmunitwxjnprtdmliQrq{jkdpsu^rjzd_a^nqkwhggne]|xlqhuextbZw`|qvo]pUuojnknflcptxhkt{lmseupqlimnjfsiislkoqwqgkxqpokwhnbqhjziyxqrsqkbipq|fcxkvqghgrwlvbZj{`qsxvnioc~rtxvhmzo|}blfkjqmc]xnslm^}oodedvz_shjlhmnkjuletlpi{skqg^xhrdmctl`tkrl{qy]DlZps}l{uav|~vovehVkw~fhmqnbxfjmpvvd`czjckzokt`~qap{v]tzerdw_~_qjdvhmucmjacoqrmxpidqglmo\oDzqp{dsgg~oqr}qpjbfa^qaps}t}|lkrjjq~qmWuwjof_z`^vh[cfozesobohlc|m{nkqUYg\_dhpdqfmUmxkQ~eo|druenn~gw~Z[sc^htvqqh|zitingsuaheXeeqeffximk^hbmntlrgsfjkismjimcraoxdjmrgb`kuprtjurjcovkpoqiw`ogjldetvi`kvfkls|nu{hltnbzqxp|pplkpyiakqjenip|gkp|tkopitbt{jfvxvnvfmptypyn~rulu{eggbpjj{brppvwsrxnrrkarmfuvpdwshlhoixvf{gnjsl`ltfz{kpprowop|rlqktfz`ylskkrk{lsyrbkh|qiflndadil|pply_jwd\hnrhjhktp]mxxon{mifaj`{ulUjr~zborrvvtiyzmy`Zjglwh|nweqnvjfpsyljp|ub|`Yvtt`lttynXqsYirpazfnemjsmfnz\oyy`bowz^jcujdzctvk|ucjpmuczrjrk`r\ul}gqajuql`Wpt{tj^usdrrs{ojOlftmmqssgucrqbuqgfjmtumdhkfpjipqoikfgnsxqmzqcizoivvjtsuomg~yu|noqlj\eniwuxftifpqk^vmxomj\fshtmhkpstujoi}wYwlezwjvevhqapaf\sglovhvenik}gonosliz}cllcsyheezhtpl_jhvpautzsZn]|swjfmouxsrnswrvmnbjr[q~klltki]kjyyexipkezropebsp~jmihoskopk~kkpltlg}jmbmmgepld|Wiuf_owmxureoy~\br^pqocttudbotkv}jt[rrvirqilrmuz`jnmkznzhhs]nsmpdtvVket~lghjioi^{\khuwnkmndoogozosv~_ohvp^bluzktmh~tjsaqupp|iis]]qtWrnKzto{^ogk`fohp~e]poqamqPyocQp~~N}tSuovvXQZpqujogev^{l\hs_ekfo_xmb~wsoTod[fp[cnage^rm^lEoZqejclzh^q_eZjnpjtvZcm_iwjgodjx\^PZf\humkenwnzhx^rsylkjmpfuqesohnlemkfkrilrisgjklpme{qrohnpbjujphvyd|oeympwqnjmtlapuwnobtxjboonmylemp|npnusov{fqnljfmnokrrjgmndqq}lpnbr}ltqofsrvopiypr`kpfgfr^iorrufsirwnpb~prnlytrtec{o~msopjokqogkiippsmtns[iopmopukyqoanmkoVpqlnehwldpcp~k_bbsqmijlnou`ljokmdqv~dpud~urkvbnnrgf}einfjrkws}qwim]^y}fss_khpu}d|pigi}vlm{lxhdmqkrs`[rq`swliecpdbso_`nzpeidhqklzruokc`lxrowxfoUdunpezpipfvxusm_qpll[kywqkrq|uzecfinuifrbsqcXfxnemiuydliuum_gooSnggzihmt\ffwbUfbaxnj[awwlcws}nffmmycg\}i^uoyitagawrjmsob]d\bpm\nqnqdkqmsovrsrdnflzlky]}wh`^oWvn^pypap{Ztwjklwfaq~k{hthspqgvpjh{Vdirtallavbwpsaiijaglvrjipsfktoni`qsutkgkuuhhgpgqorjnjwj{ciolloplnllgvbuvzn_n{`[jfxm~wzhssn~qoipxoex`lqstpnxkxcidzmmj_utssiuhgzq|lmmjnoskz|rmfkvddexfkuktxlnngypmuapnjeqzirgetpszs}{mstkrslqe\zzqyfbjrfuuvjbrymisfotwihzmqpcpnymqeoqffqpmlonnrkchsguefnpmrplnsdn{jmmpuuj~xsiloajmqjyuaplppjgrtqng^irw~mnstdipc_t|ewiiwkfxh`urkcgquxgcusmnttmmmokhoqtnf{jahoprpoip|sx|sknpuepkpqmbgztmlhgynrnzikeninmrljhwwkllmqtg~jrgmeupkj_m]dmmsmqislqianprhsm~olptzzxqi`kymhrcbnulxowwxkmgqnqmokn]ulxku|xzp]qdonphsetqkg|muwiljqyidrwtnphrovdjncRjojtwyjgdlvtxjtwnxdqpzj~udmbcengc{xmnpd~sisvkcilkv]nj]lqwituupuftvj\mmgkung{og|shgkiwlq}kgiqvigVhwwahwrsjex{goqk\nqvrthmt]]edzrklcsnYzsv{^wgeyokgglrkhu_zvudrkpxhpm]rqend`kpkzpien`lvlkihblfswtlouxq|ush|voz[gpdc{nipvcvmk~l|onwuicg_lrjooppynwhpcqujtt`scmoinnk~smtorti}symhuiqlneinrhryoq{jryizuqtqlxhrqpquluklooqejhycolsfnldzipd^vtyjtlig}f{th~g~frlqg_kjmktmrnspxouyrpdcqlpjoypoit`jrwinjp}pmretrljjigsqoimrlntvwinrfrYrijrsenlelvqtvopgjlm`pjqprpbprgqxt|xmsmmswjsztwu~{prnformpfhjmn~kqgsnlisnulb~vkseqelqvnpfsqgnnunr}keoofpnrkcrfgwsrgojwinwtjjbefbmosmrihqegouen{tqymdok|gmqonlakqmbnxnriwtwgkkmh\prrnluqnwxgortunoujv\uwvkzivqdntku`x_ohmsefqllyojwYo|nmljjvnRY]jcw|dyrzrkpwtugxksh`ya^rij{o`ssr}sobsyplftj|qte\]fppr~{n^tcvfqoqfjp^~Wkymuamuh\kgnkonn_~eturq|kswhnjsxklrnhmjigzTp{hxs{txsff}ltclqrlwp{yqgmnlthwmzvqk}ssqvmvhulnkttsatssgboikakki`kqwngmevnyxuysuwttrffeoqhqprzqglWrf|YYjl_ldzamnlwwtro^qfpwixzjoxazkq{zvi|im}suulioyhqq`oxiljpr}oso{jumscnjsjtqmniud|}tlosbpvyxiizgqif^evkdhtctjovmiypvffcmjwiwrepcg{|]ltnxgio}nwq|rqwszf|stdhn`lmxmxz{xktl~qpudovebimwnsgrsfjonmkjlyc{ipt~blnpfjjbubq]encprfoo\j]grbt^rmfr~brtvoxhu_fdmrjxumhhksx{z|ykltoiomowrx_oepxljkgmcfok~rj~ono^wpdkmhhqketuxeefhlgbjb_\lu\ctrkwtijc~rgxxf`wZpnnv`xbh[grygkalkvaolxprze]dWi{ekelhuvuqefjkh{krmonxxmprsmt_m|zlpsfkrmh~w}|w|wv]l|xhfjqm^btopmlqx[p^lovlpqpqttimek~juif]]fnfjvltevrfkekmcclnwidxnnblllfc{lo|lq`^nl|rmvqmsojojvikkjlschmqlygn_a_olykdgTop^fomoplooomjcslstxqqkkqtck|ingwxapev`nbpbpigapibqrosfwkwr^`knrid}kttvfjpzn`unzdjsbin}^`u`[xqxsiorrrpgposepofsia}mloh^yaijzhzrrfppdkkvqseknoydlfqsp_lljoivnh``cdc_homztgknVkgkfoqjlruh~rj~ettXkwnnzfoptsmogggp~smi`slpnVxa~klnzpitw|q~jmifc]zf~bqzgsdrimxrgspaXohlwuifjof}m}cndeshfkbroskbpsnl}mliaqlvh{nrgUxgwnaunitqjpsp}dl}pmkc_qz`plpf`eqcmwlsrq_ujch[znvr]~mquxdzfn|dowhukhqxyvtlvxeemtcigxmehkojWj{~iksprm}shnjooun_ojnfgsn~o~r}reu`\hjurptrfphhgk]]vmbrrmuorliwviputjjl^uc}gnjrlhlvmsqj[nZpzihmuav|jwdtplrsmcw]c|v`nnvkpj{seld{npxckmlmejmrrkrtorrexjrovnkhjt{orrttihvmgcd|otnmxvnlspnmju~oqxxltvxpz|sqrxqqfq_vhvkfmhxqs_pirodzign|noasfrtxyxk~vjyv{wqvmlkknnqesjnte]`ksf_|ojnlppkriforfqvtdgwprwfctkjVplipowlmycikzwevwx~qmkror|uqrrulpxkd`|jbvpzmnnmguxlybogkkuuxekrl|yerlltmpk^dkywjig|mpilqjwoitiffflovklbkxrhhngmqnncpmnqZiixklgbuylog_uwtlxficxnvensip`lftpailklqkrmlrsuwmue^utkyqbomulcmSt\i{rwgZqm}maoc`V`svicfcyyvrvyyvlmxn]wsvqippaqdeolqc`mrYayj`wgksf_sxdmqcoktpmd}dgkcrsZumpgqq\luXqmqfrrY~p^mnz}mpk|onltlncvqysiayhf{zsqgeslafhjurpelipkbcgnftil[pl]mopozdjceplrp`yj|ltpwsgetrnnjlRtrwptesiOiv`kyr{W{anUjsgpiqciv\mycdmfXupy`o_fvlrqnolmr_gf_psdefdks]`dfiknooqenpj{wmmhwm`w]lcgucrmojfmbo{zkx^fipnyc~azfjueummuqolkmsrrpnzdpftnquijssipdsgooss|jz_mripupvwyqhgmllvqykgw_otqqurpltxrpkn}gngmzpn~v}nuglopiqlpefqoo[unlrkdiglprqokfujonknjlhnujlijlhmr|svrvdp{vislpnmwnsjf{n~svvfgmkxppctgmqopsletmxk}v}~{yrbt`Loowvwitr}Pq{pc]mg}s`~`dqn>w|~SJgo~kxzUw{rbws]~sqvrqvXuVhlvn{wlnG[plwzd{_dqo~yw{mtvpig|q]s{oiwp{ojvoloKLk[pkfl[sH;dpntylZ\m|nhUsiffoog~epkmjioolstibxx_qmniejrqefnhstnfzxzwhsmo|xvrnzeq}wffxrln}mjrgmgat}wvguZ{ddyfipp_mm}picbtagxx{hfpuoaqouudmulo_qgsiondkpee~splz~qxxs}|uinyrmsnl_nnu|hsxg`jrlcshiqtgkhmuxuvfjrsqisxovjxohVvkkm{h{emx_hnvhlseytcd~rqmxckkfqnwpwyimyybh{zuwoyxqiqk`s_o`fpsqhpjtidrhzjujmmb`nKpopttsipgejcnhpmirvecxdzioxm}odjklwl{r|molqbascfzuqfbu{guspohvdgwtlpnucrhflhjqt}yng}jzs|envhlhlpjllpokljxflxiavvqphngqrqkdpcumxpnqtxtkjnr}xovimpzxuiyi}kqxqvogmZtlnkmalslvipbrjk{ojgmjmlchvqgqnnqkqeqollxhqhkrdbgtmjpmotnludqvfru~ljivrxmznnrdnnhqgzyoskgkqujisnkpxpfnrknwkgbgsot}||pookfrothogqlbuakurlszknpmjqvuvxri`hzo|wjorupyfik^l`mn{mhlhmprxqddknkonqsix}d~rdhtewcnk|tgsqgonm^yrjuleqqoqr`kwnngnnpkmuekpkckmolkvksqlfokhksatbzquohrjo~on{qn{`mifysrvq`k{u`piZd{rnooogxqyikr^qoxep|yiqmhtpgtsmdl~oijanful\wlxsoodmsmgkqtoofholofj|{vxfmguti}ywdbq^xmotrflk|ng{udoeexqdiwguqxfkuug}rlcepmoijlvl\dentsypvijuerdciqpy{~eayrwx~sl{{lr|epjkvqmlnhvrqlqih^{gz|iimonrcknttsu}cmtgfmgrspvkmnlipqwhk~tccpsisfiikbjvl|omjeipw^gpvxnp`xvwnok{mdjjhizyvukinnokjpbfpmsgoeqdlprfomc{ikrswepqgonsjxfspfcgshpntrmma~lzsjo}_ornzwqf`tjhpqhunhot|rnplqqnij\zypzfjv[liYe~nsi{|jytkrlpWn^m`mmlqbjleaog`Vl`vfr`km`mnhdrg}frmjnekflnawfTc~jkofk]^mjfr}jthppmmirinZqwsmtg]lrnxslhmmpdwjuo{lcbjpipgdhnf^angu`ua_qmupftnnk~wl]l^~qgahcmqpre|ymmlunqmwmkmsiolvqnolykijonplmmjwujyi{juhqwulfwlxijsilrizgplckuicuzpijrj\ypmf}kyRv|xffkxvqf`h{^rp{jinkqmjjbkedurqjrpjnqyllqyvftYbf\kvfescu[shqunpjnomyntwsssnzgynqp~nit|shqo_egul|pjczjX{r}jqo}ivzw[iyxknhcrxjzhr}egagwwrpuihpya{~glpekd{iik|glcrsrgrimt`nnxljfwa}juoTehamimkbdq}nugdlqc{jvzk^vllxqopcssfhplq{hnuuhnpmtlisxcctombseonfqvfbhxjzhakpntynkwoopn~q_uslqlnmkoknunhrifismhwjpqtpgcyampdpmo]}fmqifurplkrwqbwvkyywjppltqufmnfursnnldjhmruktd}htlrkhr|trtvhstvtVzrbpnopi{jmhzko}tapkoxmnlmik~hbcalnjfuzgoolpnniotmqcyokhtnropmhqeUtwzmmppukq`loknjoqvugdklpvllfzjctboynmvpqmok`asx{zbiwsbdvnadyh^h_acjkbmqgok|ttodpckk}qpqpzmbq^gacnoopgcvpoo~ozmYqyobl|Qizkiaumowg`k\^sabi]kpZdsjgu`~qvjypukgofwsww{vmla[re~jahvzhy}tlnmv^lgq{mqfnswlrsmlcpjv[t_irxwv\}v|}wzshfr|bj[drekqjuolqrpkocmesrqudr_`rxplor`hXeyzpojtipkvekobprdlbc{c^so|}kdiffjpskhrq}sqfvysxdzyfvh|oykdgrv^Vokl`pumv}jkfzja{osivhsenyjuf`|by_ZhhqoN^r{jslnmrpnijfwtnkmknlld~pljzijtsliukmaruviri{vkruoruibonvs[uwakojtvu^gcvuXmenkp[kqilzsz_lpvtpklj`rmmktpbcvmvyjnptl|xrlpfvn{lq|p_vqonhovopgk|ohmk^jgkdpmlr`jckdkvijfnmqqvnycndlfmyyzsnrhrlfx[dtwttkykwl|qtunhvpjiJfnhidj`mkqa[gu^non~ar`lrq`mqfworetp|nghosswumfmnlxqqltmf[em}nefoyvth[}d}`x{lfgjwjTpixcgocvcgmlumzsqkpcmnqpavwmlqkni{okj~qq~mlcqrs[oq|t~slswkadhevm|m]ljbkyfqhs}}tpeqmmdjlYnbtvsoqpiumrnyrkqidpiluq~qrsioyhxipmllsshigmnrnp{lonkurpesgm]jmrnqk_outqnrygsnhpfltrmspucqih|krjddrvgi^bchqpnqjunhrngjp{wiv`yncvc{qvlzypwc|qriosupdukitypgukt|lzfsgjz}coiogdlwllks{lwswmr|rjqmifptkrjmbntgm`n{thrkoqicpmoihm|}tqgly|dqcpuwhos{r}xjjsnvzpeoygbgkenlwelrzoweuzlgkqiuwt~lpwjjs{]nrdvtjqs}fjhpnmdmlgnuailulfphfpliqqq|uzosquhsmrijsxglk`sfgotf`zi|{lqstpihnplgjnlvnuruyoslgsnsuviqxclg}ozrsuihcmmLhplsoovhylykdmuuosmmmkfqntyrprtofxufeq`pqwigkpjv\j]txh}f{vjmpjklepvholeqgaio}zr|fohotiprroolhcvtmfogoiqrkk}xvnssm{kyv|~kvtxuo~uphruooqismipkusnprjgu{}mioeqvwmlfojvgne{jk]xktig~mpspzkjp{qinimc^pegrt~}tmxvpktls}hvzvhnvquwyn_oco~lyf{mlml\uc|~wjmyspwklnmlx`ynvwroomsmgorsnpp`nfqqp{{p{y^wsph|glloqpikvhjq{q`rkolhyzvkvmm~hnrqtlztumkrcp|yniwgyrrg|{coknzxxuoyfjagtwyskvvksobhtqkmosfwloipidzvhdqxppnnmlrkijqwpxnikw{kgyophm{svzfnguf]ysxskmyqfjh~fmyjvihyphgdslqsrnmeoujrt|snigiotjhohu~lylgatehjkxxjmxruizzfhhyo}io{flxmjqjp{msnmbpfkzbjbogrylphm}onnw^pinmfdrcXmfkupxpmzvfm{usutyrtnaqhnsafrohsdursbkStqcpfmatvvj^pd]kkef[jnprnwqnjbzfyzsgicqlntq`spvt}jlgwqq{pbos{oiqkdaqpa`dueuu~xtqsgsg{{^fipgeokkjkxyhql|vxvsrthkvog}qd`_oxapmgkhsu~lkodUje~mlsijkd`fyhsuqnnmprt|donylnhapof^zk^dsyrmpfpjoihmtrfrnmmqm|tnu_ldnzunluajfesikuzua{ynukzcwb^s[jezmvmnfofpiuonhsj`lsysgonqdtpornedibvhorotlrfhldqgh}wrt\ksilp\vbnskghh_izk{ltyhoeuewfnmugqWfztlzvso`uvvnafguxsbmhqoqzebulizkcum`pu_}wqolxhpujpjirhw}yymsqeupfw|`i`lotqiqlu{rrljomjpnqmiujkfmxydohj`oqmmeipqxs}Ycwxukpxulr`inlhznoe^wjmtmsnjohyydvmmtmhypiriop{fxiqwvxxjlmmgwjfrptyv~vony~mrmnerixoq^qsujjpwhksxgocli^qryjor{qqkwukflumyvlfssujkxqvhk~dtjqw}lkps~utlxhuqgrkhmk}hngqrlfljppijobghuksprwor{_mhxm{vhvjb}mxvqfivlhwucdtuppptqzrzvhuklx`rtwrojojkzkgxoozs{otmqokphmolxfoo}^logrlvbixoimmg{wrwrstaghfooqbkpxlofqpjcin{jsgui{sueGd]xolxszeVoeqitznu~}jfrmhar_qlmoim`zzfejupt|zjavaxh]`gmmuX`Stvjttici|kqcbbcvneok~frj}srijvwuidbnor`qvmbvmd~`xnhmpgckieiehii^jslmdrekflksmdusuqophwdkuutsgdeuttmbk{iwg}txcqkmmrsrtgtkqdml]kzpql`jommjo`gwduiojwkmtqitjcsmyjtjtnannwptfncsu~voflxorzc|kpfqqnpqdmkmpjutqshnzyrijlyjjs~kkqvxbitkhoeqbtfur`bdloo]acojklarzzbdpllxtpmdm_blignnojcSdvlhgpp~k|y{vfgnl|u`fl|]p{fmgiuonwky]gbluinewto^e|i`es\ggrvocihrsifrgfkmd]hc`a{hywomjnotmvykiqppcvrym~letbftqmeqonrpmuwkn}fifmipqwq\Zjqxcjsm_ochset^tj}ppo_ruskrrljyol~nnkxtxqbuhezistbolql{k|p~fhlprgggQvufdqc[}zinslq`hgdypofetmrzqsf^okjryp[nfpbjrbnbejk|qcfdnrlzpphlldbjnkscjmny~tzthx{Y|urpfkjn{knmteluxjnm_jf\pj{gpetcw_ulojudypqxupik}oev~onhfymiilzolbn{jikegojtjath|rklsgptnhpk_iqzrnrrkmsgunpoifrijqk~hbqndxriuohkm^xtfturqqtcudhojjwrnmpjo^fjrpxsjlveqyp||vkjstvfsenppuvavtm~~urun|qpyzcdtrtlmlmffehpuicjpfy^lt_hrfsrjufmogthqeo{xndjic|qmpkwvmhpogrkiwem}q`fumksie]qrjygrrqtkuzm`sumtr_rieoq~m{sm|j{uwki^|p{ymlqj`rgnjftrbsot}rqfgqlrvttqiwlkodqtkmgioxlmsrronoupwknwuxppoqx{sywoqjothliglnylnzyvpioqqolojhb_pikxkyroohgthoi|ukiv{vznoryyfvle|empibibgmuvio|phiqqnusjrppaaonnoqqrfhbgsivyrood_|wtcobpxorjktvhlsqnjnxpqivukijhhglnmrxmh\dgwqu|pjv~uaostuswim\mqo`wu~xuljvvmtm|mtlhrvqzqvrojluphqqnfojwuirqnrlokrljjixlloiswuqr|xpssgceldyjwynhdkzonwttporvjkgwqt^rlvsy[hqqmrpollmmsjog\wruhumklfhplnltmp~qlhginfrmplpglgqmsqqxg|p{sqjxptmintomqkspxogoszepzkygr{yjyqnjrp_nnrypuo`toksgbttltmcgmuoligmru~hbteildcpjoeQnjkpywmcopuu_zhstqjrxvaahompbvqgxnlisixxc}nfngxkoqitxiujikdjj`ntdxlsiaihzqfikzivm|bytnlcjmomoonrtpifqk{rp]pztswqmwcgjwcj{~ciwsrphfhedsusl}vpwxikslhvi{zbgukierlnrhlpxiktcah_^kjxeruxabjhtrvyommZwaodvu^R}gowzbcnozgrqcy{rsqeqnrrs]Snao]qY|gsudZhklmrqo\qvkltjpo{uqqptp`qjqcqmoxqb{ygbiksjtrjvirtj`c^c_ixe}npijdyuy|wombse|qW}ifomwonhnt{mruoimfjtoqndjxjd}slinkxqhfdjrhjmmppgwkiojlooo{hjcrjjhllulilokmwufjqklechUrlbleqiqyuolcidjexq{on]rmnemrqrhrtqpntympgizqnfusepl~cqny~_qfilcmnqmfhmjmzi~dpoftvo|ilu~juthvmis|jhsjmfnwhlgzmlemkphbo|oliptnwhsesp`gqmsfui|z[jxx_nxpqimhelqkhkustmm{jojmfolnqgjada{oryrpmznXmj{lnwfZphnh{i%ofngj_mvzkYjmexpdjsmzzmhhoirortdmqjljrlktu{jhlluddctqyzgxfqtd`irjll`l{mwqyxctupr|uoat~poii`yqqjrqeo^soqjqqn|hZmo\usksktirhoubwltqtprjjoymxunzp_tmtrwhmX}ztnndbhlgriscbbkmiuTlcdxi`muxsrn{lnmqqhzjdniqrtq{jirfnfqglkynjgpljq^{obltxrkjmbtuk|tviymw{oplfh|sksiiqtrnsgojfzfmol{qlsylnlbkdttu`povihmyvnhlgu_nhmkmmklcgqxsprlxnvpygtnrlnmhqf_cgtqyjnopgxsgogukujlyntiornitnqpksnfu_bpxltpvm~kktoovjufwnmdpkjill}ljqpvWsdmlpnsnuiiqq{tssdvmicdqxvqjpkjl|gclqlossnoo{akbfrww_kwciczostoxlqMlnqmkunhcxdrbrvh|gdr|opnoqh}rsqnwwn~jsbp~eth}]`c{\mjmqqn[wwfp]_ridsjyd_rmnvlfmywh`fzy]rpr]gqtufhlmqpioofwkubyldyn|slrmhtql}rk[ejmppq~qxkhglmvZnkmtdrkupkqjutfntmesogwlrr^Zhjrwoxmjrqdt}slwjsyglrlrwvosbrgptnkghqbj|nhZrwgxrljika|vousobkxiubpmoqiigm{ihdyuhreoskzmiqkjmnllxxpjuvogtn|yomkkrxqptldjiiengatjovaht`nhtszoanmqmtvorimunprrwprniwruutkgmvuvfwljguv}wgywmpulvdnzl\qlhh}peoprbphznp|npyrfmilx_ehwsyxr{dmqexi\|gpqimpkj|kgh}j^loqnqmilklvptosmmrtdjkhqlgjuuolwiwin{iomucmwpmjn`psfcf~rvupjfloljo}y{pjmvpbmss}jonhtpxzkyu{jWmfolspohviym~ankpzutic`db]hH_uhzbyXx?wUZita\{Cxvuva_dhmeiNH{bfj~npNke{-zdcaSstrflTz}zbqUzkln~kyU_nzylnkgmn|htvcd}dnmtxVdf_etwfkehlhSwkRi/W4dWq}QH~|dNdaEqylzsffwWsma~xmnXcCw]duR~wmVl`xynho_{`Zknzplrzmhdsxmukx{ijngdqr{xppwlootjvuycuymfknwiw{}ewljdef\gwqgzwlijlrumohvvmvnfsgi`umrthklrponbmqzq{iqoqrjkrgiym}nvizlk^kcvijkrqstpqmgoinqqfosum`upwjZsumkkvg{iinounvaugelj~lvtnhjlnuqtw`mojhulkerwnmkipj}psmtfomvojtvg{uhrmkmhaglzn}ppgthoin`jzcpfjluvmatov_oslsTnpimottfvx]tptmozxmjnbw}sj_srbtqXoipq[|xiojtna`ulopscbinfvtsjoesunus]bvzxtfmrtgmmynpns{nofYlmnlht_es~rqwun{lumd\{zocjrowppmjpf\lmgscriylhcwrvkhxokwhqpmlrspm}pkylkdivlurswnllhpo|go{zjkihnotkriemoxntm`pmtjhafnnfpqkf}{tppovnphofookowwgjtlpjhmjphiyptvtqsu|q_~limprkjpmretqwmtupnimywbjrsoj}sxkf|w\shisidhpinshzt}qjopniwrhq{myfluynujhqgeytibuphgrypiWqsuhsp]qumqpvzilvhwisqmqdmueglitaktswk|hlivgcu{earo{z`uei{j`wofsgjhimmmrgozlrhomhjnisirnhyxksvejgjseslu\_Vgfqcsslrskognpsypfretphlpcrwmlppelrnuqmbfr{munmknnulrvppg|xnsuwlkqooxbwxprqnqpm`xwwlu~mrvvshfwtussgwimq||yiupppyqsy^{mumvpjv}|lpmtxwntce}unvvf~tonmrtkphyenoiqkmsfuzmwlm{pnl~^fpnrsstmxnllnpxmoskjaoxwmw}lkshvdreyyrrgvmoj}nztinnviqlqrmqovpkehvnkk|ieqpnzswjisnrhfsqjuujsklkiqgzylofcejgohnalfnp}mpjkralssogekgwkvikrhbruylomrwntmhkwjnhyhlvyljlqqkqnunpkoocqmoimulgphu_pdozcppqujoctesl{tsljjvwkmiorwtvpt^ljphroqurrpixkqmluoorgkdgi|seif|aflsijot{{gedgtn\lebvh{ewjakrurogzzemdg[n~vrcstvbynre}s[g[htrhjmmmckjsmtZnhuhljgjvhbv]er|whhdpmv}`htwzdfrvshstgYhdhkkojxwqoecnqptht{ujso^etwrl\khih]mpj}cqxjbqxipyussvjjqfjorsn`syikqnci|pn{mshcegmv}ut}~phkkxupnnzmwnouwx{pqqvtvpptieiqnvz{pqobpmvevsrhwxomgmombrklir|mghkswotooyfnin~ogjndzc}pxfburayapx{oqpsqe|sxilqymik{|okxleekelfhfevumgpplohh`mkpnrh^qwcsi~pdoonn`nrpnfoxzttvgmmpuwtalqlsyfrjy~qhen{lhuhqgkmqnjoceyhuwvolVslyolkipxrgunux|~y|wjuuqkgkmqranjtufsul_lsjhkpujokkmkdm~pjgqgjcdxioo|p}yjrwpj}jglr{knq\aewzu~ortupny{n}orltosoktlqn~kxhmriemqnrsenwfliisetyhvpjmolzt}mpk{mplpalstkitltqkyj~xez|xbpqjwtvrtprokqe}iossfuisehvhmYhnqgoelxkqjmmhvtjlnqsoklgoijudditftmrjjkolrypxrxshlskknpszhamiroilekfhnulswmfvnwzkmwvhqqfl_hnllnimxocov[ape}f||zyiqoqozkojTtlrqndad}jvtjoa\pzh~q{ptotWZghmwmq{w|gYynkqw|sq|orp|vgckGiw|wsdicig~kmqzanq\ss`hEdwuonjlulddhwsjeooeroyYsklhvjhlrtvlqtepjoavwyrz}lkfrhesibyzfmf|toyx|]ueilxjolo_dgenjim}dqqifnpskvxwqjirobni{isqgrvny|ijmrtm_gukppwiua`snusjv|qnjokusrtppaujkhy`ohoutsppnmsjflZhj}nali}s`oaujombdiqpx^xlwvxejrlrgp}lqhsjebkxh~slxhfZxrgrqebkb^pmirZd_{slkdonowcccrkeqgiwit{lumfsgqsrzfcjknvgymr{bfoontg{mljhytn`ulhnmoolfukwmlwgm}ytmpjkulphyip|fdneksnvtomvqhkhometpl}ifvluxojkpizkrhoazjpgfuskfjihjnq{posypenlngvfqooogewgyqr_qmnffswlptosrngreogkplcgljlthxtog{kvbio^pqcots{gmiuludqxqyouolytkbnnqcwjzm\nyfpdnsqriuqytorjgqovz~alfskjnpxoh}coqgjj[q^oembttgzpjjqqnjwjsulhoquqkur^nokvnrjmtwinaa~qmnrnmk{xxkfwmzrrbyteztq}ifsvk^ptli`qswfp{pjmq|}omhr~cvzmj{fan^robotrgqdZhqibmme~lvejaybf^frwvjhsscquhbi_lhipovmdzjj}pofwoten}kyqtpsyhixiaunaypalrntf{ilvpyt`ns}oiemndj{kgtvvpskqpruV{vhrfupbqpuZkslwsjtuioywaiovu_lmjm{fdmdcxn`qte|lmjqnmehlxsjkim~edrofginsmometo{lbhphtctkktvwxsssrqnlykvxlrolkijqvinwlpnqvkrqprzgqrqgipjnktzonunempeiqlyzsjoitvtzohttzogtojhqwo_kotoirxs^uSnjwxyqig~kw^kv|irn~pntlmttrfahtpeigsp~jdvrvpty`k}c{vvgqunufl~jllngjkehjqcsfsghclt^^hkekamclbbtuqyxkmzzhu]wmibkqwwn}xtahontdftsZi`triul{k\ikytzrikzktnrdrudhdplmrkonexgjsghx]mjcoyjie~mchgvZqXwnhgwtdggpkfsqtcihpfp_hgrqyphqrgjypxyf{we`oogjsqctmlokzfkqi^pzf`lysluqtlbflbmlsymykwxlm}frfliso`rookrqpu}nrvppigtoijrhlmioqrc\Yhxwlpkndrqh|vlporrrhslouwnmqsjftwjhwfpwvzqhiqpglnhdmp{ssoqqqodp_tluzkl]usssrjkgyntsphoyjfjemgpl}gquouvulntmqvekmqtseoizmlsnjv}mikoeqnvyo}itqijhnqo{|othrjQcfxZj]qritmrkkawwkhpf`]rwpbjx]bwoqke|ovxqmincngpuvsnXijhmjenrnnexcphenwtkia_Vdwiq^yms}mfpd`l_nl]kesqoQ_pkqkxhktundc_kmfqhpjnmobswfrcfcjtv{vetxj}tmm{|qkihibjcjultgr|qxbnojieyh`cpga[kwrljfi}ayksdmres~pkmezqxhnj}Qrjdzm|hkxegoedu{wqpqbrnqrt{uy|ylmgmvldvd`dtjkltp{ngfxmk|rm^l^jongh{zsmghgstfqveig{wrngif[x``jts}qtxmpxltvwvotpbscyaiceodmspvnrspnkkemqtfmo\{reivgbfvuoyghihcrswytsnksokcmmqsmo|zwf`uytjm}}qonnanjublgpwlcbiygupqqtkl|hgivlejtwaslwe`lqhxkpuj~nrdtvxmitebktnuuhemsotpxhrvjmrmtciwupZq{tgwjlwu`mvseylulpqikwjwqy|orhsih|{xddikxdk^buukouqklpzholgqljvtimhfops{skkam\uif{zaufvojrksohremuptsmlilsdmnzj}smmgtrpl{rtjounsthwo}gvthcxkllin_opon{qfezkyxbmzqyntzqiZjougzjcokbbjsmfsinomnczzxhnfmu]emkdtjliepuljqitg|nqgmhrwstxqeviotoyugr|njndlprwpoknrigouj~sukrpnsoutxiumviahonsll|krmrpgkqfpelptlkolootem{zothqkrfikgljtokemirlqspqtukrklkwzgoorhkmr{jk~tsomqxndkldjjxnv|log}kpkkligghmioeymthl|fcttronqxnnvdpnfcjeygoqcmjrr|gwrrlfykpqasrrgnfpphpecsns[isfrnnsrpqt|vlw}kbmipmiw|omjdnnhnlst{sqniuk}qoysqkotnko|nfsugmoojmzhjnb~n~wrx}plzpzagxwktgsdq]heqngywggkdpdjkvnypedhbqkqhlk]kcqwolgqx{i^alfpskf~tetp_fsojyerjqifugwugqpmh^brasqllgojfjsfmildqpouhjj^ulrsjtrvgkh|qui|kwzteljyoohktnsspptxlgnafvyjy^oifipc}jznk\hmfxnwssjnwicpdiugfmkghchilqynhjpmhvlntwboltwynolm{cka}hvgl}hpo\vi{mrtlwljxjYjmobqlokwsfhheZpdcsj[r_kulsmympmepQdvspmppktxulmxnpjl`pczpszr^qwjhaddrrqpYgpglpl{|p]qbudqxidkpfgr`xqguRioyujlose|kdxmnql[rydtibajguUrpleYmwnib~uSotbZ\uxtgkhd{}nstgddfylcgtfunuxsqrepkjioijichplmrlyyhqcdzhsjnnyh_minphsftmwvfimpsjjnbds`r{tvlvmtjqkllokwrlptpl{puoootitdpvoosqlidpltkykpigruqdjpplXjspbopgxvjd}fjmrqt{iinlvsjluxpqqkntpkwppyujigzlvnohs~xnxunqpllqr~etqiojkrs~qrfpr|rnnwokjqjqzxhlfgkjlpn{nin]wwvoofnrhruwcuqafwirilqsjprrznflqgvkyrithitzPgpkrxzqsczwoqmkrtqrnnf|woptugnsodajk{ipw~|zib`jtxYxsu}aiodmspstWpodglknrukvymbqlrpjcYsqmatmdm|qos~|ieua|hjorspcpfujgtvdfzmhakwxzoxp}ujwgbifpwsurlwpooaiwognwvpruqupufovqwxkoljuuqtuyos}zcfvtjshoketmqp{ovyf{{kzlxglqb}rrehmnjoylidhphppoy{kmumxmptpouampp~vwp|siujjdopqkossjexvzkqkgilhxngcyukojpzfkduvxj{rqnmieoukgo{ngkdeikgcmmmiwlwitnhdserunwftvwemsopqjpruimspppgdsxsjkhivpkmimktrja`kmooyjtgno_u~iliqnmngnkrsimysdhrknf|mf~|xa_Zuinp]}ktgpn~wfbnmgpindslqh`zfsmg`oosyolsichjlmmqsilolmagsscl`pnmsh]me~npqinimffmzklq{nitrqorhnipapubgkVv_hrrppblfkphndrklqigeokfklagvsqpnokjmhpcsnydarmnqthikyuqlonmlrlprlieiocfok{k^otkmbqvhxiudqkzkoqjj\bjfurodiipuksqidoclkgymklligpcllnufnhgmxojtmgmpsil}in}rjksiikqvnhqwoqlqqlrvnrgnxsmipidflosk`jj~yspbnl}kvgijxrtahurjlfplmxntjlhhgrkr}nnqqomkryhkq~xpmighomggml}|lwlqnnxlYsntsph}logmghshzpqfu|umbijktoqo|rjrdmjuqnaegtwsabIpmmj\lyusftljqfqpyf|qXjci{c`bopkhelcQrnilh|`dhhuq[px{^iqykeesejhpjfdro]~^dqkqdgtfnka[h|le_lav\e~qddmcXeeiunn_gjuqcssolxdhfss_jwj|o|xar`cQqr{~ldtenj|nWueqxZedomezqoYcktdkeimqsiolrolqnqtipmghllkompbooogagsqitmvnuvrlldywl_ovoiejrnxokklsutcmtilmqWstk]ej`mycuwifvhlihlferx}zondpmpocxdrqvcl^ipbqnksrpk|ouoqzmnplkq{wf{jd}derhZjibtjshgdkpgjicrlrmuufjxokdqqv_wswfjknxmlnldnqzjpjrfrltymrlwj~vajqs}pfpquooaygsvrensttvn`rona{pgpxutouwcplrsuvtbql^oiqligouqnupwuhzpyz~slpc}qtlmlpqcpnbponhlznrqiutmegrihldanhkuhqridfinrruno{ogrkinnsipxp`lormf}rusdrfnrlpqke}ltid{nuemhyrgcmhuhbptwpedjnnwkwmmxnfrtskyXD{LsxucnkpcaqXwnyttwttpwj{oldhuotwXmipizzzda}Vrgtts|qdg^npcowikpkuuf]qlq_sossnoltkirouog~vdwo|jtmpi\uoqgrphhur`sj`tqourowqyjgh||sxkpxep~resuknigmi{mk`mfpwucnolo{cgprki{rippylhqumyoims}jhdlnptqltpmrsqp{odmnsrcpuotyt`wlogtinlqrpvkvmq{i~tniqnzeqymwkvgigqudusyleyf~slzosrghfiiqjig{tjwkmwsrqltq|xhonpi}_okmnrjuu|jlhbmridkliwucofqjsnmtnqtnnq{ztpbpuohvhris~pnsykttpitqmpr{rzihnpnrhkplzsfmtilwirtstrooxmvtiygsussxiugguojqsrpxsqqkkupkrmlrnhjugqrjuvgnnkllbmmllskkqgmksstcxfsdmys}krmtumpxcmpqqhodmqrqvrvkurvvfh|irgktmulprqotthkkkzlkkivppkfiqiptonhquggctojkjntatpld}wlpyh^umtrgwputjsrmslnqbom}hmpo{pzf`lnqmogrjzpnntumqhlhcz}ihlorouihqvqlnplonnshlmdotukeiontqi|kntpniunqwllned~qmjoqxlsdworlnnjrhtdwpzmplpfnjplminm^vwibnmecdmxdr`m|oqlpnsmofkml~lehztc|iiooppduxskl{rvffirnquegwqyorokhtgkp}goffvpjsn[qjdyseq^|}`jwn|mqjpnnytmksumijhpktu}kpriaom[fvrkvglqspkhkigoihsohpzutdevzqvmpuxpomo}rzfqptsqeyhjvwrjbvl|rtleij_ejleqsrovrvpdhmfdsrsnuk`dkj_ajl^ekvlnlpf|eY}ulzYqkimNylk{mrgg\h_mzwzk^loq__}yxdzlggbacoji_f~hzeptlmmbwhjy}kx|cekbymjhpvozmljdgnlfkljwddmemzUy}pnt|fiin|n{g|oxggm{mnlbvVnnaos[d_~i`Y{Yds]rfrjtlrnu{ce[|lwhdMakNmmcsai]]jxZl^Zbt^whrnl}jrhg\}oag_rkbtiht`riicqmmlaqRunz{paYgtoxpofROug|sxtoohfq{brghhlxnjuo{|iTjnjje[dtTffdfms{ethssbxrpumtninrPxvx`8c|vpWugjkUpqdhgnxpraopmhz{lphxwvdm|\wskz]mueykrqooumnspkpkpvwswnspjxyfwfmjop}wkgghpmjjv^ttbxuh|rqxkojhujhkov{f]lwrmipmoaipumsioenqkqopicqkrptewigkdhnmtkh\nvkjo}owuuhpokkgxjlkjfh}r`j|bkggmeq|ldekqpntomrpjceyjqrxamlwpxq~cdireiepjqi|eoq|gjpoqkux|iahsqipdiroayrxincvjupmtachpcfvfyqtvdgkshhajnthifhjlinwkyjjuu`kppiivcoggvrwqgmqfsmhlojrnjtoouhgveudapgyrsgoil]mprpjqepxmxpd|qogewitqmufihhlrtasffklmkrhlnginehhbikzmkeigqrlpptf{nojnj~lidmspptlsoarikwngeqxidl}jwbkhplcppitjqjvgqpfrkpsllwtfgpmrrmmwvqu_cxeyjleqvcx^imqr{nxqylgilp|jp`mjipiejurtqnlgtgpnqr{ksdmk`igin{fiafroljbnmjojnt}my|tyhwxldymjhrmqinpllujjufiirukswiss~vqlzmrepkqehplmmzxyrgqr`tviysrerstsqftpkpndxihufoxgr]po{vbqxsq{oxmikxk|\iujteksx|vlvrtkoqumrzoqygm[gprt\vnrtqllikjmzlmfglmrdnque|smpnzqkzeomfrfichouullrfqoltjurtqbniqhqnkquulpmlgu{jwhritlqmiewoomwpmyurczfhpldupvoqchmyoueuig|ynkfujgnpkpejqlhkmpmuphroswyvej_cnixintqnsmkmofmpizxdmnjmmxwtun[jhckbj`]`htwxlwsiokjtrwpkmhypshojawwiafepppjstrnkqxrsllhrpirrtsrehkZjoqkhkqtsjtowksjqopiop|nksokxjslrorsfopnqjamcksurwxrnjrvfqt|nuc|nmbdirmqqjtanmivnlspvhqfqt}jdrotinhlmuz~oifpojhvnjqlkgi{kh~jrdttkpirn|hoplsql{s~tqcziypghhuns{trshomirshuqmqtmmpwdpphugpftcnsdxdmmf}wrknj~rsndmhpls_si|sjmngmpuozsallrjnktct^prngwemwvkmowpsryaedpjzwntfsrurjhp}kr|srf~khnjwnetifmkitpjuulxboxqhcapkmgbrpgylodtfrrpzkfpvvpvqnoinivtugupr~xsbqtmxqppvseu[ymuXvqvvsb~jsdjujxk|dnrnygwv|z}ntpvyqvZsvflt|yrqhpi{tkgqetn_siimnifhtptmosnnljbmpk{\hpwnzwuFyrpg}uz^nnddukmnxpynonvnpokqq\hmu{qhkspnk`hf[wWvptkrjqfsiomnomm_o}jltlqh^}t`wlrswlqnq{pnjgklwlylhjoromwrjjotkm`jlsenjgZctjupgjpnnmxxo|iknsopvdpntvuksmdijjhxulschkopwlitrqwpvqm^enmq{tknfhlstnhnrnomnuk|mlubmspwcvytqw|levtevkheolnjsdfnrmzlkuqvoxksvirrufirnmhmpxkklhnlctxgempouulf}txfuzslkkofrootdmk|^~mrtjrnsxjYdop^}gwak_|krzqidwqpfhovmerpvfsx]vgkn{tilzncbdxcnpeq{_qmq]y|rnnpusxhhvhod\jwhsg~cgkppes{nouyjresp]hmyZuduhdgn_oox`jxjiqjjmzjpqbqojdlzyadpkgghirmqjfsqod~sl|iikknsjt~vquoksufye|emnasoldjyseygwzo~nnwlmh~upwtlmtrnbq_frgnpsjonepvfetnnokisnjnbomuk|qrpnqrlozlbuflmhpywjkiwptltmnqltnXrphmqetLqextkjymhptYbiljxnq{hxctn[itnnZpTarkqezqqb]pvwsv~p`eqiovuexnp~vgyhmmposkphunlg~gpcqnr`~{o\qyujonrkmkeoupkqk}myurw{znvvrosjlmg_wqjomesozqmaodtmpophi{^krti^kqpl{ixkituslvgsltiynqus|psgp`li~plwrwzoipkqkj~qqosZesfpwutophx\zswtlkb{pskvrgkgepvihkgeqsyj`h`^mgefitppjtsx\nme|mphlgfjesro|mtqyso~huhktgmgnripiodv|klg}hvulerpcqpscpiplrzlqwnqkuetqnmygjlrguugqlpynrqnmwpn{uhjemlqmohqfnu`lpxznttwsc|}|mjzpmlylwgghgekjijqcu~bnw~mcssinnpkzcpmd`rcslfvrlfpykomnxikeqfnwjY{htgtk{tmdhlqlrrbhxsrqjvwrqbyvhfzhvkrlffjp]rjsgpqtgjunuhtkv~mohvrfwcalvpetljet}ulbnbv{tppzwojnjqrpytjtuphk\qzicmdicesvtg]hur{llsxqtqirrbnzxVrqitykmnPrwmy{ughoqpksfjlwzrkfpomrjtenrcbsn\xowwxsyfqdxjquogjdheltcarkwqvmpjxwzlqpjnliteui|ckrmmijqj_plqzl{iihif~ods}yqqmvtkpvejewljkbostjogjgWonaplqhymllyehjpowvrvfqktqyohmmmtgopymixwrrnknynnork\otroxmzponqsjtsdowqyrnwjxgjdsbtnbmmtTufqem}hlgsjju|fftkwlw`o}ipmcwoodwcyxtoultvjldkhjuualmbnho_`istjkggbilgmqmw}txl`ilo}be~gprpsanusgm{wrynZcpglwlftfom}fzuk{zfesnghudekfos\oohuurmlebet{uppjonwu}lqkmovjnkyrriosvjk~lwhkkz{ssnklnmvsevxtptmg{gxvhokcjtuqjquryojldh{lnbuumccmjnris}jrwkxpeu`klol|npnrsovkkpkv|hspsmnw{mtvtxismuxroirc|jamvbjfzc^rwdwkpgwogquivtoegjamvtmnq{pdiuvaqs{ahyrnluwkdqletzsoeqvuilbonmsfrcmvynoekvhyvjlpywmstdwkjxszsnlqworojpwldmool`svpx^mtn{`itkzmucxrejjmfsuYqms`phrmvoyntumsivegpjh_qjg|kslursmkk{|lxa~rzvuvguXoimmiptjwqbiljvwmtb{vjp{ri`nqwj^ozeitgdrlqcjdqfp}qunl{y~bq_mkmool{sK_{pfkmo~mxftx}}}rmdr|qdrhVewrsp{lpSmhyxuev_vpyfznrmgeqfyikjft{kjqpX\vjrjpm`p^qfvivixvmndhxhrqzktrvnmdpgwv{n`ofikyfmrpxlmi`thqsvdcomogsmkqpgmuribnhkyeidtiubsljwtlmqo~bgcjpypfrsniqnnpgjmpshowojvtsrmo|lclns~kdhkturi{p]mtjkpnj]]ouclxnimloppuspvjtqlqspoqqkohg{pxolh}kirn{nmpnlgygdn{ktlgo}mtomxrczxmlouc_yvqdprmowqvmojmtz]hohxrkkqlfuqixcgupsfksnkqmtsgshypjuuffkfqqxnntjekvuqmhsppgukww|tqytlnfdjjvtbjpnvipqwomq{ixmkjqztkttkteqknucvnnpjrkepqlu`knlqigpkmvfldjpiqls`k~us{ujavbavfjwonppcscrzonk}nooekjml}onihfxsohr}{qfsjnrwvpjttegmrgpsqqtnriozmjhnzjmYjrcnejsjwirslqlsYsmgyucopxddlZmvqowzmprzyjewpeffmqvrvoruwjusmjhlszw[yi\kyqrblmo}m`tpvjq}qxmhemjqqvdpp[qgjkoni~gmnrsz]qqrcgmhjmyjprhcpvnon~xqremw{c^ixlomiptofiqhspgkak]ttigiokjmpjjkensohxqft|mvzahlskznlucnhijidvrotjlgcv^szncgmstapqfmkuuqubwkwedtamiEurgvkfzweommgrlqmylaaqrdmirrixrbtpnlrikjqhlshissp{ojnlwhlrwt]rmgoronthukkkfpnrnnnvmdwvncumsptqiy{jnupcjn`qvzxnsgfq~ippqjvu|hdtzewyy~sjY{hrjpktwhnkyxhmftoblc]hkg`n{mm}{llrp_hkdc]jzlvrg~pijnqoszn_ckm[negyndulmge~~iwezgf{humm~qslgk]lustfkogfwmyygogkhcpfqyxpklurgbjmdqr{[htfprljzpivnnnglryolmrpsgmrrr}kpousrrWqsnfo`qtqjgkxp}hpvsvqrvwgnoiklqrfsh|kngu{hit}ft~crvxnq~f~uujfgkZtxn{lz_dkjeweugymlqazxRlspurpfip`thlqynxflqk~oqzghcpsnds{pr{w|v|whllnfwybputlrwqgooqjnlssrpvopgokpvdhgpdluno_hnnaeuwxjsuppdtrsx|psh^pjihhcokwt}pzlo{tgtsmtjsjeskd~nctmghkv}jtpgoekdzfukiuqnvrhngimqslnmiorovillkww`lswtwpqujorntrpbfvtfnputxif~qzouu{rvayktgm~jalwtnmkubmoshllneulk~rIzup|rirotefvtcr}dlmkWv{uhnwhffyskhlzbyupv}xkhdhzl}uilnYfkrkvr||gq\jywpwnmlOtixomsdgqtgeufcnwrptowooq|qsss`lmxkeiahwllpjxqkxedttjwbogwdvomreYpkllzlhd`xxxr}bfynihkrkvvemwlktqjdkr~^xkdprlutusgyxpi{l]ftzrnhs|t}uwvurajtuyyipjlowpyiq~rfl|pkn]`{rzqjxvnsjlhinqzugqxjj\qswiusbmbppkrgurgldorspkivubobnqh|pgjolqmaskn[tjqpn}itvleuuuontz|zmrum|tdarwrjhlkrrnhkdvxukisxukggillotrsk}ieqogxkgrbqr^ywkjsp|jioyyiuebm_rhrsxwnmknnoqlzmcfwvrjm`tsgsmvZnppzZroxyitlepomelnh{kxxyx|xsylsdmYohrhyikixqis~yempxqYf`|gcgshjvnvxsftxu^e}rgvtWcojhppqwmmnxhisfqzipjpitopj|ncnvjinuplifiviZwwlsvhkshbsim|}rfsztoil|gzvseYjkrmkrainhtqhjujizkumptcucolntw{ovjenqq~lku~iqnizqolgnqkjfqvmjmmdjdrfxgvf~hxlm_rcmkfneymfggmtiulm\tn^hmrusmllupskfrpvljono~vpkujsperd}i`kvonnhZubkfvqhlkj^oqlxuckpg|ymbskmmozdhqudlvfpmpkn{kwpisv]vs]_qs|pimjlhzmbjsmjp{`{p^gp^ict\uqv{ev\muopkghkm~pql~krqubuturlfedytxajxkmpxf~lqeponxviwwvtptipfgz]brirnrtmsvhflkmsplpliflhrwullhpflzs|kfkkzh_domxlxnmxsljga{fhxz{n\kknqvqgjnnx|mkqqkuxggks{jlljk~twooinc_sgkssvfpwipjrl{hhvhgvwoopjolsmoojfwamhjlps{kktjwitkkiqnpmfrrp]vnonkhhxh~qyjmv|^mdy_n{_qnpys{nmhm_htnjnojpofns{kgusrqjpd[kmqpspqtisxoq|d}ixpxpr|wugnuqsiurhnemzpstwbeujxdulohzklmcvstiprc_unllrrmllvorgqnh{zloqi|omigkeujgoshisbwkjmyuzjmlrngunnwjqttysvyswtv~xnhijuo~mpsdgnoeoymfkjwhiphtxpntqsklunfqqdmccvq}Rxxesurnrn_ltbkgsw`Sx`ui~{Q]tlo\hjn]kof~ddkfqnps~snujcugnfikxidkhqlstcxrik`t`dkyqm]wpln|yikeeckep|lvtr|m{jxvm]v_imihcq~xkuz}gnunxitjfiggppj}ttr{bsspaukps{oqmzwfpp_gkhdWl|wuggrqglggipqgd{u{mdeoprmdbdoeyhi~~eojmqnpqp{hdaezrofdmdzcvwkyvblvti~puxrpiv{knvphxju_zsxKjugr^l`xzmm[inhwgynisjlqvlhqg|^ttn]livrlorcj|m^j]eg_rl]gtgnmcpcnnhpnsspzpwkmvjxsqry]y|sigkucd}fdmfiyjjhjwqqgnrrvvitinjstbqpg~pVpb\ubolpopqwnpetfzdnjximmqqhmltmrsljlyqxrwp{wdkjoemvthwckjbfvlplnywwpalrqxqgcyrsrttxtiuczu|dopiqr{gcmctjvmkwiktnghopenrr{qubviouhtwyjlqmstucfo{xsuvtiia~ttwihfdsodq}`|c}m^oghpeypnptuzmiyssqlpmwXeckztneutqxxurnkpj[hzj|vjqqcpm~qsvo_rjyhgwgnipvkbdrehwktdmvThymqlk{oofvjmmwtu_\qjqrfdeotowwQl{kpofezxlmtiqpjqql|qolnxmxod`gnjxelmdrungcjsrwnpjminvhcvxrfssslnr~sxwohgqqmkrosx{voez|vwybqkvuotjokor{{mromgogoocYps}tmdhhhnrtgcgmvjukjinyc_oo~sdrdryniofnsv}uulz}v}oypwpzj|clmtkiplnggoh^nlmfmh|kinv~{prtxgzgjarnfjomoxiu{irsvk{vsnroxmhunmpm|qgoxysmtiingrxtpxtfngmmklrrpavph^vntkojiimrkpzgmj|tqkrj\ihn{cmgjwlmvpsfppomlqfz}mkalfnikhjfkpnlkrqsislywakrqljxdyntosdytkdoy{nfnfpqqirorumsesjorjoqqny}hitluykfslojiwoxyyhtyikwf^xo^jffgfpklrpnnbvinwlt|vzWkllsb\j_k|hhxsyv||pwcoitmjiv~\gfqkduyttotsslslpiojjux|vsqlmsjssmgeps{`cis]bqpiavlvh{voagygjwqov{qqarrqapsmex|vlnkbhyml~^r_pcthmupxjmwiij]onnepshmlg~s_pxsrul[fgloj`kfksrjlzsrqhuqrv|hf{ywmilsooYg~kpuop\tivkjhjwpwpfejgq`mmwxu~esvuesddyg|qmw{wyyqqohvrtUzkkhogegldbopbuzntvotmnpssrlup`jwt]Wu^gxdjrdrp]olmjubqurqiern`wZuxXXknutkqxg~hsnpq_peZqm}gysadvmylvfnedl}pzprgofZxhxy]{inoms]zVWpeznnt\\sqtyewioat[\_fZmnp^b`gsisjlr`Xjuommg^dxZ^lfisPmo{f~qovwfim~uvxd{veVijjdmvyft\p\]XeYibavil\konhprtlngf[q|^qRwmvrlpVcdap\[YuuigYq~okjptwsitdjbpOywd|lgx\fjXiptkxWckqkjnbqxwdgbTfaqwsbturTrxZxq[prrkshw}xrxsx^TlycosTlhgmwa^ner^nuucwsiqny_oaqWxoohdcn`cdhqwf}vSqq_fomhlNvevclMkd{jesska_uyjorxm^jlknoutqvmmnefjxwmnzlkvnww^vfqpsbioehknzojkkvfteos}lmpl`kioptv~viZlnolwamue{kaxvjjfzbqnfshurqkxjsgkzd|lwqbjkatxymqigjmjuuqbkgknuij|hnxocqnxnotuwhfn{sf|x{lkkckiljqqv^eorompowgrdkxvljemqorhumdimknklwruputzn{qrl~yrjjxino|vkprpwpkkmwmngqzlcws}syofnlzhtuhfqnnpmmo^rq^iwl`smslhgiosbtjfkqpivjiprulsrlsgkolna{cynivljmlzkyxiuougrts|mwtoyqlhoqlslblonqunnypzknsxxohfyotjfmfmlqklbolm}ir`ilk_ysppklqmpg}ndjxlkmpjiwwyrkgpwmjnwqmhjkkflqzutbmiogloruunstsqsletidyizls_ftvtreppbgnqsqnkm]wpqohnhwmmjggzqormsidxuktmcoiqxylwvszipsapnibkvvjqqydnkilqfkl`eyvmuq|otqhtglli{gyjrrxcppjnnqchh}pmoilkdkrnlptrseutrnpnjskyitsl|mrnhzq}gxsijhssejjapzouzfnppp^xtlpjeiznps}xqemjrmhfeiogngfwjylprpfvtzme{{lvrsiulZtqulojplfwvdk{vt{reym{ypmxnjqgmxhgrcnwr|el}boqiphvfvxilhjg{ep~_sglmkstqrfly]ynhyhcmczdjveifjtyeomslmgwvtjlutzlsk{erkvbbm^uolispmocnhkQfspg~gtgdthpmumg`amirilnojhvh[_lxswutgqXkrm~olvpzn\nsomlnwworuspd|nspgxnmrssnocoys|icouopsfo_urtwdgxporvshuuigslqsw]sirTc^hdxb_mcmjrgxakqZtm}`|errwrdssrzjrcvMfdvflqw~fikigdij}mSlqpx}hrhmrhjdvSsvwxkdi{yvmnoprxttoYmmg{ospgurmggizum{zqvlljeimjsRTpolojvvxtf^njvmlx[u}ks[phgo`smddxtrujixku|gimt~dliwqpa`fazu^ijvqv{sqwssrw|ggohqjsmurupsfqcfdj{sithwdbn|xk}isoozcgvv\zj{yousypksp]fxylkdfzqsespgrqnqguomfamofeori~h{swjzprglzrmsribhnylHhhjvlgsf|tgfkhhl`wnpuij||xorkhogsmoilmygstc~X\rm^jtzp{pjrrdoiojX~qcmvsrtyxe\~gvnZtpo}fjXd|leranmohrstsgjnspgqwom}qx{qZrysigkbjpknumfqiskumgb{Y\hjwlkfstjuuvtkolvkz{qnxoy]eiolxsvzhrtgjkyauy~tzr{q^lm^osntmp{rg{`israpomvo^qqc[l]fk{oa[ovfulogffPue`[rgjwrmoa|jxx`tvllqen}hu^snqWquptbpW_ni||hdqldnlnsqxwfq]ompvmerx`mmp^~mu^ui|sqbwppjur{W~owyo|svumor]kwZlo`uuyml]mendvs_nbkffl}ru_qtrguXqhrqdrjRenqeXqohofxwwstelnvjjrviqokdfhqjqpbphrepxz{wwfbjpxtmiwunvkbrcu^ikgjg}hysyqjsW{suq~p\nnlyprt\aermmx_hqghh{ltmoejgnrywxdqrwl^c}pkp\rgvrnip{pqpg{bkyki[xqve|msnod\zhs{^snjxicj`rt|w|gjukeniqmhrfiiqktlsr}qulrgrposdvnkowdcuwyzzwnhpkx{ynizteolmojokZdgujiqh`rjuznqttuiv^ohffykhjlrpg__fxnsymzexkp|{sov|aerh`ttmqkr{m{noqxienbrdanpsivtwbZlijxmllseazll_mqsvvmwcyulmoloqsufqwuybrhe]okpiwm~yphjanwru~~ocupolqf}cpnowcxhdm[rwlmondqooqenumuqj{rqhlnzhk|wpzsqsdodnn~mbrkxabvvmwrhqjoqrnpgXywlwodxuitsxiikjlznjpr{pro}{l|o]knfhleqzowdvzqkzz^gvWuonyvl~r{]otyvoqhmuvjmopsjd|qxies\hdp_nrbos{heuojesqb{n_vuopqmxg~tcnv}qhcmdzsvvhltrwkvyr^blspuuqrvk~|mrab{kcplfdi`xsvxkvzjlglsrdgpv~ovpmlpjyveiwdytakmhnqqhlwimgjmtmcwlkdxl}lhfeg^jkvwrieuswfr`xuxYh{sqYvvzitgjnpnokp]\spoavdleoxfqqjnog]rokli~`mafestqvh}ugtrndrfaprdgupypltkrrqujmrkublrbofjugzplhjonljqmmlhfos}ikpolnYnlnpljcnnmqkhwfqnxlhrcgpyhhfziqsxuqsooddtklgxkjqwosv]qijx}ezc}memjrpt{wnqavuuejsvdjmngtpkyuntfoohrxkRkZkiljoxtnnpvcme}qyZdbdstzpe{nQfpg{hmpkjknpwptnpcvbqkli{miamdpwnoqnssawefm[m^pqbq^sgbsjllh|ncivwpfb\stanjlc^husdceopfss{nesptkfmkjkdqonugtWqq~pws|k\o{tn~dvssPonhk~lwilgemynqqp{lopicqoonxxp~ourpoilrurjpoftrt`korsflmvhjftwrot{gojihzpep}moxtikrjdXnsisrjskmvqignvjxklqq]rgcXj[|qqsxfgo|mfjehwqwhcpkgrx^qhmgrqjgyr|_kkorlounh}jpsunssqercilgljuuomljnfmjhbqgjnorjsxceyjqtrpYpp}w{kjioudop~wfsrmrhuwt`sovlpmt|pilgexkik|sfikmnojtovu}llqtkuoncell{c|oussjookmvnwgvslhqutddponfmuvznjjpqv|qrf_konkwnx^txrxok{nchvo{nnk_sxfjqlhhdrfjtbrarqponfmgzxitdo{nmjjugtldktoguogehqvqypjfn|pnmpooog{~si`cgj}otgh~mgtrwoitsmn_p}qillqnh|toi{yn{^zusvogglkfpmqr{urwtqqvim_qokkczltgp~ji|njr~~qk}vhlgrs{~tdh{kaz~yumfxoyzgoshrdsvz|{yu_vzznink}n~npuf^{hecmtiexnjgnkrrnnudX_g\{npp_pdofwWsajxeE^kYeXbq]bwu{h`Vkwvvqujbhn|kck{ibmyfttghdixg\nm}qucy|hakvo}cnlyqqznqgf~dwvrpkhyx}dvmStnq^{qdsw~twjgv|rib|zqp}x`eggrqmqjqerdwi^blyrqwzdg|m{rjstane^WvceiljvrbpqjmZitftpieiuyujjzofimn~nhqryim`weetrpjodgpqmfgukrmejdzsgitrr}df|wgjqv{lqimyjml_eohtgvuenguhpqmytasw|oiiskhvfhllen^riztsuq|lcg~v{`|mixpcyx{ss{Yqcy{mffv|XxhhwmclqmYhdzjksuvvtXatbmhzplodg`kb]ncvjdgpghjbTrrnktanmap`zsrdr|gawxdspcwxfsas}{]hzrbl}umze_fmad_|lbvzj_Wg`tosoobloij]xvvjohbjiqekpbidozdp]armvujeg~v_bn`Ws|\~kjgljskprrqmrw|bai~l_nuwnhhttlvouiuzjmkkhrtltkmtwznmmwo}bfuu}yvu^pqmpf{sgmrfmjfopvmjnliospp^rjpismoYnslusi~fjctnxjiflq]prqnwhqlgetledasorsllr_qqg^top~quqclkkfvgglsduqlojkpkl_`jimrvnjippigj|ndb\rtrsvyreopq}oxwsv}paiwxUXjbYui|fxcvmohxoc|xnjsegpfaktopgmeqpbwwgksv~m||m}rpdo}mftxmoc|akmlepnwlqksoe~mxet~vzkhfslw`qnmxrd_jwhsyybd~a~hdjTtrtp}`d{|m~ljfcuvdseurgxsl`ykiwgfdlt{ianuwifwbe^uhgywg^ndlbotsjwvvkarsnwntfqt{gtnhuhnbjxpanhtfn]m_dkghvjpkmtpg|p\klkbrvsyoukyih|Zjkxznunrnutkrispqlzlcrlphiylhltqbl|n}ojp`d^vn\clq}pqhbue}e`kpshaorlpremmkwjujap|ofpifkwfpsfdasvqwsztfdsdjjqbgrhkwot]quh~gmwm}kqpfdwrmorxaiiijgrjjtjngvwwfqskirvknkbrvhklvowqypotnrq_kmxmsdgg_srtrxhrjynnhtpqlpipjusmvovbnunnqhqgwmmnrghsjifmgi~mrggnjvqq]tijsamqktlmnm{qnf}xonxiyyggxjjhvj^mysm{gfoxulwj|`~tskwhxlk_p{lqqmuxd{ypiqsslymkl}lrqpoqyqnceljl^eqvcqpxffqdnqmok~snflt\eifzjsegsi``khdjgqilavs{ltpnbjjntstss`jcmstirwjwxaobiyniysnfprntyq}hpivkcspge|lqpzsjuwvq|jmkadtybemuokwmckijVvv{pht{cwicb|Vnpiovpegqu|buwdkjn[htslsujcjmojwwlotnmbcqrtodismnc}bl_ekskqcskymjttvyukgocqmelrpuZ`psqg{lmmigqyrnk{cpj}hgxbheiirmkqfwRoicmf`erjk{huigimqippbykt}]\s\id~m~q]u~uodn_kump|jrsjtlkkoqqoSruha}ig/_rz{njyrpdg\{m{huwkpihmv|fopjon\ky}[}{puklui~Zuc{xnutlwboyzllsrxbpsXsfvtnnguugmqljnydf|ewlnwfsalil{`qvzxrfkzspoj~nxo~[ln\n[kileluwlxojaihjsrmd]Xpncc\ivzquzjj~nwpbqksVgxg{ixdnthmbn{kpikpgpwco{mcv|fmickkrvmiseashgwvmrfqtlopwoazgdlsqdlddtht|huqigsrjotepwqywjs`lihjfhYkz]]piewoefkse`wfmxp|mpqrzssofifglmhsrljtjkjnuuivrymtnhkjkpxrqfro|vpvsqwwuovkrupvrpvprmhmrvkbilsf~tpvkulhlsulosnohpisyujojf~twvjtvkloqoqwmwjvpokrmjvfmhjjlibviymtvi`enqgkllvxnvusmulorlplyqqpwoutilvsnlpojnslmqrrmlqnmbl}hponhsfeymhdklwggannxqhyjjmkzlkfmgtlnkm}qrihqnzkkgvl{ginlnsegqlzds]ywlhlmsfccom~ttrprpnrilfxrn|jvrfpnjllhmsjkj|rvhnra]iljbpjoqllmmm|oqruloxzn|kgnosb`hjgrm|ssngmf[rkqikootjleoojfqounnjuerlqogiheihoqmqorehmmjrrk|}p~trklwrmrmytprukciwgiquuufqi|odrbkouoeywh`ogki|ihryqmrldfkciitmvoum}oolmnrpjhutrtpsksnkktroijugoqkqufwxvnielkajspsuuyjsdowhgxsrqfj|rcpkxsml`i|^otkqdjqqujsdoogpzwogvo]ljxlg_vungrduasnlkqshc{suohgypmrbvwosbohbbkxjqgv{rquwqevoctnrdgps}pokowjbml}gkth{{~mjsijsznyck`korazuwdr{rnhmisohkmj}uo{mgpdvjeorb`pfdvhjgqj||pojsgYgrsxkdopqsuayvojrplkbrxzzgpbitvratmksolrh}alburamtuwkZv`hdXvorjhYuXreatuu[cl`uLivry}gewidq\qoqjogbtdshehTyeqnqtp{yeyjokxhtk|t~`p|foTnw{thyq^wcfllrfgmqnqvx|tmmmqgooz\~inluivwufz^{ezasiwpoubhkxlxjrsymrosjtlmjuttvtjg^wqzswtxzvptkmwoy{oouxlwwkm]ofxu`noc~gkgmj_hrekflzgmgJtt{ncpjtrqgjtenchmn{v}zptorklkyqvijqymft|tqn^tn[grkjhrn{yamqaelp|txgqrvq|dxvqwlpislr{xgstlkpdjllf~pinnumnpnyswsvkoyvql`w^vrjtzsilskh|ronuowpivn|fkrldon~nrngvgmyjwhW}spekkcjmxxpzrhnlmsmqfnYsqwwuqqxllxufklmlftksrrqpofhmwscntkzsxmopqwurtjgklmmiojyjlzqvspotkwt{ijtouipo[otdnrdyknqlnwlgszn~soqcZ]hhmtkos|xNsecbcoohjvplxpsaqkjpRmlec{|`umxnqtvu~kkssnbzljfrdwlnr_ccf_qvhsgry^zvp__]gipj`tqwnkveiPsnhj~mbcqfvstjnj}pt|srmnokmn}exkikofrk`ufsvmpi|{fjzhojr}rrxrrti`tne|s`hmuwx~wbpzpk~kmqjovjocukykxoqqjrzmlxr_bqxtoh\ffdiun`qttfrzk{kjqjtqzq^mjczkzrufiiyivepp{dtlmiowkfoiqltqyHsos~jw]zdk\aw{yizheemjqjksihtjgnmletarupslcq^uhwk]xVclhokkvc}rgcb|knepkkpsddlntpsdYvwRayrp|vhiuwpkfg[]tlnpXwh~m_fYxyUeesrZgkmjeihknxkjqrp|krv`_wc{Xnh`p~wu`~\okegbokp}kcjonwujinsmzwXwyxhjdrpuq{rmugri_x^keUfxerxqpm{_v~kugn|szojfmwgYfeqelji{c`i[gpqdnjtfwVwssj}itqsrduvktdojap^ffmprsslsotomluitbxnq{vlustjhhqojqnd|k{mhilwthrlsoixuolkmuxseykmnmhvpm~hqsuptkviepooqobkzbrhfssndltkmgmflvtcyqrovprltjugr}mlihvkln^olqojzexjxdnhtxhfvwps_ohlg`dffilpq`{ddpybunhrzokovyregvmsttrcmkpnipmebhc~knopt~Uytriqxdpmr_tlvdyfvqtkpcmruj\[[rrzyap_flk^cisgxiZkufbwpkmrh^pwx[ditlgqtkiziq|uvinkkn{cxpglsds`rv}eu|caxnol~mustauzuujuhnomcKnazjtjmm{_nicnqtsnq~oriqgnwdjnmmyx|nrtwnwobtehowb|vqqwn|xnVtqnlmnsZmgi`q_sgmqryfltmlooqmfogk_gljovxxowhxtco|rodfqh_prelcp_qmbpjjwbkfrmtlvordydsfemzz\j~pthnkmmq{clprngjutjwgguqousitumnjm{zfb~gnjl_rhqoirjhkmeqfgl{bstVaxejxpkickihfmjpyuwteswfgdsmtgfyoqc`pjq{yjnkswqn]xkplkmmjzltlircsmcykljwvoh}qjgenu~odroq~dhkng_ttfygtzTlmjjjrfvhi]{yfbpzdilmji\g{tnpuzuarpkjp[epu{spz|l|l]fxxvoj{syvdblxYg~huxtvoqtxozuo_{^YZm`q[jprez]TtbMs|szXR^eiiul|`]{q^yrg{lrmjvs`hjvbf\ei_^_is}zjkc]__h{qkhEi\cshfocv~snwemptdzryacRggmsqa}il`ZO_cqqhlhhod[ebqyozZr}ywgpe_wzrndqsdpplwizolyunipmnm{qvfnpnzkopjzcutplsrrymlkumgyfqpimderr~kalmltvikskugpjkwrwrwkelotmxonoilxrqmgpufr{xln}ipmlsmpkurvqojcnnfvonjikfnkiumtmkpqqllnmnlzrukf_{moxikkpgqjpejhitvtwmmxclujhkvcmjwpq{wdiy|gofjjxwcslsl{skqocuxw_lpdqcek~rgzjztgs^msoekVpxng~|ucgjmlkgg{Vvcqphsqj__vop]wetgjuxselq`he~og~jmjjwsmibtshjvpjvuohovobqhojggsgwfuslg\kl^hp~{xypflaxppglkrocbypqokpliirlooxsrrvhxiilql`bkl_uwsr|k~dnovmpgQqtrfiizWekSehtgpf}beaY|}gk~fnakuxiZp{undjmj]hlet~aYrqhvach_ppm`wb^xcdhtm~kmefq{pqytmlik~abwmikunv|waXpruqeftebu\vtiuryheo}xttyetnwr|{hewYftjeakt_tkazheijhzsusrvobmfzjnskyrnqgvnfqpumnkdrupkuYklvkbncqmharco`adskwz]prc`pgsm|ntjou}olfuzqdypknmzudwelgjiiostw`rqyv|ojd~njiliknelqll{uwevqildqc}kbmktVv{pkgdjuwflcrgrrmmojscsqsr{hnzknl_mk\v{qvosws^q~|h_qynomgmjxnbvqtqejpwkpmkmdsg{hfktkffldzmqguxlb^m`vtrsvirtmxrmo~vsnr}qpikpetpskleblmhn||qhqtpqttkp|{lrp_pygrgkqgbvflodhfglwyicmuqg{tnpmhnjpwuhi~onjpvmksqt~nqcyllhk_khpqccfzfvodh~rrrol}phkilrxwipoxjtrovkjxqspspriujpwo~tsxhnuvhibnqlekjrmnfz_noklihnhhmc~qtls`vj|fkcoepnufmsapr|ls|dedvojsg}trezptx_fmouk`qposnnntie}vihknotssjjatunlpmthviimvbtmgsn`nnqirilrmsmtzespkvdmysodwmewlkzcusuuwdgw\aubcmvxlulhh_lepsswpoosrgcuzftrwpdoqt]omu}osln{`fgm]gjreogfsi^nsp|v^|rieqqjmqdnaqwms{gkeYgiYt|mro`^noltmwkmqluelehkuqxjglir}rqin{svlzfred{rdss|l{vopi{mi|qtcja_hztr}xvusuekhoutkvwwoh~cpj{Vvxulwkcmlvyzixgvnh_elksunzokhwnjjup{mlnqunopwpnln]ogo~ikfycniqltp~snjqTvrcghgajovtwojhpnknekitnugjtqu~tjrvu{p`sqqfoYrpiihyxcpjr~pnmlrxikfpersohrtkq~cr_sspdvfjlncllxjmpttzpthvqcqgwlwnnw~rmlrrzpnnqgus{snmmxtsmubmnoimjzhnrbooksntlnkvig~olpqphqtqkpjuoopnhmqrptkhnvmpmr|mprnlgjlnbowqrhpagcmoxgtnjtldtsynwpvx{nvmugqu}lpj_{muogwqnmghsyjhpgiZqzlwouuyrr|g|janwszndlhuilao}nhkrfemfguqpjvaoqgryyqfXYjbybzmW[{kx_|Tzfl{sumxchksewxldamyvuspvzz}hloubylremu{wvg|~]{mowe~mlqjcxpbihdennwl{vvvgvmqrcqrr^ugwgvpa|ufnhqgjlrf[gTn~zu{_~jvePbusi{tyujwrWjkokggkhisxlk_oteodt_`pmkqquqxqxmtuthggnkeyn{qfyjhqsqozwquqpsvhtfqyqoqvdptpmm{hvYknkufvsjjpstpgvhgpeyqjzxy|llefvdnjwyguxkm|jwnkmwxgxjvknrnlenlzyb{msse}tjrfpnkpqeiy|rtermljhdfhtpk{bpaff{lwufldpltpikf|eohqsvz`ixji`ndqjjclnp}nrw|mhzjownjhmwxlwrssmmninqvhoto{tbj^wkfmmgsgiewhy}xgdvvbtqxgiygnbhj|oirvjxmYqfoWb\grpmnhlrqch{daaltfuxpizoozs{gutsm|qpsqshwqwbvojheujau[paylwp~qrcgjzYkgsfk]]yjojfjkji_ocuiomt|dnwsa\lfz[_odwpu{zctaftjhinm_hwwwkbugnxrgkleukfZiktxf`_mj~pkyokrmqn_rjtZlzyipuqougln{xx{mcguggVtntgowsrjpbkad_qmroquzrmsldufk}cvjbdlllieqjnqnyhhnpfajxq`miwufh|uanrsYolpjdat\nmxglktlvnhq\trpmsxuklp|`afonllko]{oqpt`vh}g{qptipubko`vvtnglvkjkuitkfzqvhqwjirjphj{hheolr}nrnmdsfvokcmsnl|amaha|khlcsUszsglr_kk_uuhl}~pwnmls{gmptqqc_imyzpq}njtpgwvw|Z{o|si^lsd~jfskhtfqijn}mw\xqnbbpqrf^pxn`oekZzvpe|Ulwnqanjw|lmlkqiiesvg\mjcbbnflnkjkdjhsjs`vyphyhtwezmknwl{xjnyc[bsf}weotkdsghnrnqsgnukptryg]ysjzgleqmckbmamjikgimmpsqkhzry`nscz}ov|ptsnoygrkhrk|dtjp`rr}}pm^l~bh]nuibnsnlrcXnercvv_Uilyxlaru`lsh{p|fetao|lnstnpilvroqrnm}amghnhlyyoemniujg_Yrumugxlnztryk|mhknqtqppdqfehvv`pxeotgmkuvcq|tlotlrtmt`iwoposrjqcwrxtowglwsgohgvluuevwtoitpsal\ryslteyqp}jtykrlxnafokpmqcxnwcniqvcttlrqkulqwstnqqspsnblt}pxgnu|qnvyhpfx]gesyhycrr}ltotnbn{fsdklofjimtmtljjpsz]fmhkwkpfsvcksym}cttmcncwxq{fnnqebnhtkfaopkoolbx{cpuhcplpljalotsuiegrynqwmyqmzkvr_ljwtje~|{rgvxqoprmrkvemmehyfmpmlriovsmhtymkzlgowrqudhdit}nmnpnaoinvlyfjjnrfjjlyeltz^g`fflrsjipqsej]Yksexohkqlffokun_u{u_mpu_Z]lzhqbfymwgsdg`mfyonlfektl]}igroljyerljsxadnosykpkiahjqiaWcqvskml[O^udgcbbzpvxsfum|emgek|xfp|hslrehqonw}_edixe^sodyk\pvlnwqltnsl\ejeog{vopqhn^erwTkyibzp^vk\jqoxqnrovriol_\slr~lcz^gbbih}oheimljp}urwqrcogdmotnTefhkbxwrvi{j^famtqsolrjgc|siU\[mv_qnVevs{ilcrhrq{djv_S]ynnriYl`n^rvrongmg]qxnupmqbqpuwvooba_evuhcmgysfudlqrluZsagqdu{wie}kxloouzbbfhsgk`pnyfpbxxewUhrcxqnkksfojnqmpqkqfnvrrlltgunqizkklueoxoqslstrnbuwlmsq`rdjhvqhlsxuq{rgtcpnvnjmxtujpiohpukvjfibqjgtsiqjsrkwvlsvnnpiexdomuteiotftntpnllk{ohgphdmpuvtkshpx|kmkqlsvlqibofyzq|akopuxsilokqvolleronrdyzpittYc`opi|qk~b|wBozVHkyohrcetUphWtuqr~{n~xt|tyuvzlc~|ttzMqtfv_gIc^}vl^K{ro{ax`[}qw|lplxim}z}e]Tqxyuiuq}otlo^XToinojsfsyyEypmlznZc^zlznmytwmjd]r]e{jil}kihckqmg`sckdrvuuzvjlpotz^quksovkmx}qnXccqr}dvs}wxdnnhzuytsbiutuw]}^cjrbslr~ljlftborrsmvgd_b~k{shwqunssmwinwewpi{i}h{inwxhozdqvvdrphkqxyssm}rahfhlnhhs~rknhhqzzhkl^kmvnwulqnxhuggxqxsdinruk{|rhlfratvnellglith|pyuiov[^wiuhj~qzpvalp^jvpothptpievqpkt{gUq{gpdg}~onnpjj~niwmjkspmtrc`xessqrkozliiwiurvu{khgshhubtdzohdxwotvmvqcmqohrep_ksnkezjzt}pohkpio{sxqinkjnnmvwnyhojmpmtheztuspnstpctwqknxql`mlisqhshpkrxzxkjux{twsrxynlbwnyqoidwjhpkndxpomlmqqkkullplumrtolikfqtfstj~utjtgcnqlnljxkmnijitxkvlbtpulpksyeiwrhjsqrnuhgtmnqnlnsyoetldnmk{spumjzhljh~vmqd|qcestrukweqjoujjwmb}phjqlcorwq|kpkmkrmky|m^xlwzp[jlmtgoq_bjkljqonqmpgknkjsniuehcomtzejywcyrg{jfhntrxmpfexgqfnoishxwelscbp]itlucltlcvkf}pmt^}nlg]ofnbpp|jkzirwmgzkxpqtqwotrg^loyqyuzppkxrjesur{ojn`{vrtw^z`yquionrkmh^qoyvioqckpr}xejkbtjrdlnlyvgflwv|mdoonucipdqpyoqtljoi{csp~auhljnefmjydzkinykzpm_~kwijpnpgeWajkjgjo{jgreqmc}lqrlxrodnpfwxbenmtujdllkh|sicklrqdkV{ios`rrqtkdloiqmoyfi{tslqw}rwozokuyjaxl{pqijoplreajmrujnrsklittceeuvzqnvvfdkfilqnvupzqtrho}plzqmdtflphqhrbvssgjwbzflqvp`nmgrmrpu|qjqi{kyqguksrrpkvnkqu`oogrpshddiisvosrmnr~xnbkooes\wmZQkp^otj^knhkhapdz^hvh[ghkpagsklnprnheohm{fsx^[fpYzoqishlp~ghgwdlmtovtZjvjad}esynne|r}mlmkmejrrjsiluwkncdfjjwrkonznao}plotvsg`mxaYplf`x]alb~_ka[nnepuci}ofdiaqqi`bkqujkglynkskklvjmtpvxokrnmqapvgpxn{wbpytywhmnorxmmmojpgyhkagnpl|gdoaypjg]nlwgspivpwWyttoqnfgh^Ylmqmhh{heqqojfmp]wjrjsxsenverlnqkzqasXnt^j|flzkzgqqekkpuzhurt~tq~smtmssdrjlruwmimsueihtluzctgll\ryk`nrlvhdqypisyehnrpovk~y`q|v]xvdneoyfrrgqigkhanmq~bon_ehngrmzgpjyggfcdxulxnfcpgsfok`vvpz`ifoqjljftfuujnwulrhktuerdihjseq|cnomgupg`vfrbjfriujkinnwdfglcuwVemjtmqhklujnwt^oudmnrdymyhhijtbfrjzpnhpi|pcswqtvitkqhygvkhlkZhwjzjgutncqfpprhudonrgd~alhkkcgfshipfket|ryrtitpgkxqtpnhslzlpptehprluqjxsbqhgvklhjulricgtjpifolljcrwmrofr]l|pfk}vtnqllrhQs}kgkqollqutqbomi~rqohkrkjjhqrlgxpphpt|jfkqocnwbfjlolgcf|epfhqrsv|}Nhmhhmnpujxzspkbop[f`safrtuhu|[ltci{\\urflzj~otbr_ofcmlpUo}eh{bigqhlP`llnr`xle}~njeih}nhwq{mic{jxy]ekbnsslywvthmsYlbr~cpk]jvhruiunxs\}llwq{xr\ofuotigjhwdggzaslksfkyj~~dlogrohkm\`huozpqwwcrunucpdmgkgoqstrfudmgvveouvijukfminiuymjzueg|Wqjzhncdmqtrmdgsw`Rsktpbsootvuiilgwn_gqdf_aylst^Zfua^ifuiIhfzrrmphvoh}efktn{ngopaepxuei|gxmj}tehZkgndq}gtpqpb^ljq}jylY{n~vqx}aomhtykdplqvsruhpukmxltnwnoln|qnnmwjwpnqr`nznVwuu`vgpwqnkmwuhpl~epikwpqqojmkwudqobiqyl~rn{rjhylhqbfctnwqulpbvv]rogkzu_tvvbhxwiy|~zowfufifio`hiqlokfbbcuvwissYchmkij{sznhk|qyzkkkt_jixsl{dtnumldbYzjrJvkojpdxm]agxtneuwu}ukqphvVhzidfyqlnakrU~lthwovr~vtsyjsijjwvxx|lunlqvhop]pkabpltsrtsrpqprdnsfsslo_kd\gxgqj_{lfzcpfmi^km\krmshyupnmcpshmo{hrvmvwmsqhzjptlsjlkwlfyqojljklqrzxpvwhynevfsglsnftpxnfilhymjljsvndubijtwm{lhqnq|xijqizkoogsosrcsrtijvvss{pmml^`qlgxvl{d|vrjllulesm{|ypmsmz{p|lqhlpxinr`agmqdh{{innwmglchpilqxrytssotxuduzkrfmc|dxkxttysejohep~~cvmsircredcndwlfvqt_kpxjfgbvprjimy}mtjutleqknqomwjtqirjvjasz|hmucqoipenhmfoqnjt`ehkjsiyzgnpqmmxcqmkjsgfwwhkqdrhfjnlxd|muonlw{joctypemkouxjanluhrgmkzgozjcrjc|otkkpgdwovsyqtwuxui}spyl~trp\lunhksokmikqvio~mikhfkqolprovwa~jqrami[tzfw{jvtduhrhg{koqnjqufillq{posqprmmrpurwyongmworettrxudn|szou|rk~rsvxclskcov]uljpxrsyfq}r]pkhnksilqgksonbh|klkqvqoul|i{ppnvdcr{tkpliuy~nmjqgtlh{ju|nzovwjucih|pgo{wlduh_ogjrhxs~rumytigkexenoiirpwrcsqqgqn`rftkovqlztpkmdxifuwwkkxibujgjnpfej{{vktr`vk`jowjsdtelqjqtuzksg}pnodhopf~vmbisfqmpdrx{n~srnek|g{rjosrsfkoxzn`mdymqrmhwgnoZforjpgihtoajesdjfxvsnohqflvdtvqoglgpyp_uaiziubtqetfrqsj{nuypnpyuqifndszeqnoqwifo_okgwueotpgeso`kcxm|bosqkxqysuqtsxlvi`ewvll[p{khtrqjtdourlnvhh`}jNcpwxjzuhqnzvno_trsiqurpe|khmnnmjr^trqzP|ofldfuepmm|mhiejhcyoekhullaqveqrna`jmlkokv[xz~oclkmlinolmstlwfpstzjwybm|h~rkqqqmeh_ry^mloioeqwjd}rnpg`vausxoittmfsg\[oixyf{okpodpwohvtdubwyhjrjovquetiupg]dvngvroezirqomoz]hlutyzkjkymenirnivoqrsus^{don}zgp}iqgkadpklvm]nrds}bmc\}_yekkxiqmlkqjXlllocoxqq`mogb}ntymtgahjyhfrttnylnnlfxcjd}tiqUiwkoqZ|gxtvkdgn{sdmsbuqpnpmb[pagsjhmec`b}morpglx|{vooq|yquiwljron|s|p|t^|uwsutmowm^lmppibkwunmymecgjyzfwzno`okoqrnsjjo[lfeusojppgdqlvpkimhevtkfeypvpwYzXmxvawksufa`^psfwepaxwjmmujbefjdsg`tejqk_rolnvwx~tt`jutlsej{mkrtnqt}yotopkrwlirktzxujrwstkhgujdqmhwpkyk`mptx{risjxtvqhlumj|niktqtqgaypwsyui}ikcollyqmn^nttgnj_kn|gqhpvjboropwru\cyovuuumlu`rhk{prteasyubrsibsltisrealro~vlqv{ycldt[o{hslihsfgvs`drhmluqrkuxhmnkiwfqh_stkunzdyrpfaofweyttghszmnvmjspvf|jo^dpdU{ilprx{vqhuIhXies|iewqhlnuoqjrpexlfem_otdlur`{{bpavr{xqimtepdme^gduntavwl`orciuktd`pjoj`tt{ypqnpilgq}lxdauzraqi}fqmi}vkqnyqhhpkqncvmehgr_ydiid{mmjexvonvxjskinhkyqpf`g}vs}onbvf{mhieqjy|nmmnjj}sdymxhjdzsstvzoogjkoufzxpmmqlptmwgrp{mebeklr}u{lrdlxm\j{rkx[{hsZkqlscppshqhrqrlpkqcispup}nremedrulWrllt``vg}eon{jedjskhjtqgpymxmctfhgkc_wlpojepcmshgj]Tahwuwoyvemttkdtokmni~`hhiiegunurola`jndfodulozkvshzwhavabdqxo^ffmpyevausoifioxp~aterwe`ykzurhiwocrw}upodot{alifjyi]|ustkvlztzkikm_aootm[ckrj{ukoTifhnbjwpespmatumygvsxthqfqxi_werw}dmbd^schosooqjfelnlqnpWvvnjgtzf^aqmonigzvuxskohqgpgwthieevc\jildfmarqltosrc}qoqghvsvehdlidejkp|npfw|Uprmzeiidctmljimqvylj_zi~qhl`ibvfrcvuz|wcmqwsvjrpwrfipctfaysjhloenrqkajrgxi|jzYignkvuhaikjvqual{tl|qqymfhsmkrsoqnhvfxyzxengmfwrfkqmzretkjooo_l]llpwntyumk|ugufwp|sj_jjlvmcptynvqmyko^pnndtfdxvjvxltqenh~nmn_ymxl~qddivuzpmcqjupptkchwvpwbuqxapn_n}uquv^uqlwlqbhwodr~zouanaujc~mjtspzgiumhv|rsnuuswkkxb|gq}wi_pow\n_roustxgqpt|gwqcj`vqqmo|hdmpkn}nt[rtao|xylarxsxefhppjipspl{uvgstahmh~{~oihusrzqgsorhqovoksjikylnu}|jyusemftml[dgzo|kbywynjnmfi|hzoklzixzelpuuohmkfhjj|id^csvktolmfmvrrqopfsdhjilhlunrfc}qkrnrlqduylqo|^quoenilgml{qnhijrmmty{nhqfghhjo`tlkftsuxiantbrv|ssmnpamps`fvwpalyrnwoopsxxokplitrjvpimrunhiqiwuuxvhmokpk{pnmpnlmjn{zoopuinbkqfokcwwsqrtlijothtrzsmllpnzg|twleo`jexhnqfxiswta`ujinpmiyginpkimmo}ofpf`pbqou}mkvmtpompd~}pndixrqivtuujjhxpwslqszg_rwwuk|npywrrlq[lshwiqvernouqbxgivto|cmgikfnv_hfqvjktwrpxxskpcjoz{rhijglY[fgupvpw[z`ijasgns~oghj~vfsrhpmnsqfmnnxekwxq{dlkq~heo|rtmndalowj_nh|nategtrflolompmiurpde{oojuVpuswputqfjardwqdejywllo\nggnvrptovrnvwmoaexrhus^hUtvl|klivqo^n|pue_i`_oiTgphvrehtugh\runhnoj~`rkoaaunfslsruvajdlqwm~vhbmZjgf}hfyotkjogiwulRbgqejehlj^{{tjniltpgzbj|lofyijalmeoxlcprZllfbab}ghymxotZhx{pntohblc|khWWnuptwgbmtdsqruifiowsloeoctwyolnfrjefbjycgkyfuwngict^xjopgfbdltoilzhmpyk|hngi|wkQqgi`imtmwbndmhuqgoilkpomflvnrsrnx|nljgqymsgjqio~xlkmlxfshmnhizjgkmpinth}_xk`npulhrngaqltoltablnqmenrlukZfnqoimsdgvypmj{yo`mkjykhnpxd~nrilc}jro{omsmks}pnqvbr{rZonkpbgiawmtmlnbe{s_Q}lrutmtcigu~Y8pnkezwghmjbZlxvhiorwr~dsoq{vqigpsrrqrprnwbkhnrwnwtdcklinktzzlndtqtd_yrenanuqppw{`bqnqohocyxlnuhieb{rrhlswumoflceYisqllewosslm\{opgsxmke{poxllgxjwifbktvj[krselj{lojnbnngjaawcpledldkdwmtkqiynd`odkgutsooqljvmgogtbqg}jljoayjpmm^iknxqplowmqkky|ii}s}ujnrqfnkhvrqjtskomsidqhxfyjmxqlljx|dqidyujdtn\yslqjpi`lsmommilmkm\pxmjmmzowlenfmYoumdwtgguvprmpblhtph`]zjopkzqtnjtlpntmrjjaopz~ytodxmyy}jtqp|jhovkhfofhoonxp~sqzvSjbffwpp]funlskptpuhtsh^coythjmrrtylgikrmkloknt|tejvngulxvfodvvutwdzghzwdhukujuk_fmfyZzje{ogfqhwyk~twpcwK`wfqzcm}ojxofznptqmfsadGzkwmlzv`|oppuopmqlmpa^hyoorxwem]`np{qimdrvpnekdqm{^tzdqvrobwlgsqqtkqXlfcpwhj~k}phfdlzZljekrklyslnyuuokmzpqi`brou^}j^lqcikvqsndxrnueunxjpyrkv{qfn||tndlnsslmeeifuuttlsigo\npsuqctjtithemtlmhqltpkg{qodjlvn~xukjvqqor|nkxmlmnxqwqkwjjuzsmvud{hj_fcllwybmkmgvvxpj{nmwovstjqrjurqofusuu{qosnpkvssnlsshqk_mnqrtykyggx{{tfiognipqrmrf{Z}izuzjngiscxqvx~ljpilggi\cdsmmtkejnbfrtVommizooukdktoqungtqhhmkml|utptuhdjojmmjdnkqokmdo_rljeoh}sqlmsookfyunzrhisi_jks~sforrirpqyf]vduVhditytqdimir|inqdpp|bcnaojZ{qgsnUkn~udafmg$w~hr~{gnreda^N@xpR{nWdeg.tgbilWqz|Sdhpu_Wq}maoph^wdrkrvm{nd{sUq\~nqGpqe)\rZcpO_hinqwryf`nd}w[j@sh,uQo{XUnluCteu~ktsjmqq[yn_wyqoXo`qn|qiu{dhqzkqsqdcwg_ltxokrdwv^rsxq^|tjqfkolk~qmvuslrnO`yrzypgnjnp]cmp~pygnjms]fln~ihtukoh^ngx}wlltokszfksctqrmnnjkhasmcihssuvy}l|hg{air~{m[wthcWqktjh`smfai}twhsgrn{plrnuqn{yipoiutkakifo}z{m`n]c{gwtojdnndernnmdpdsdp|xwzyykbxi^ynuhx_flofsplkfzrhucujklcqsosktkOfrhpekW{rnewz}fwZr\pu[tnXjuve`nk[`enmghkipxwoc|nm^f{kfuzs~ug[mq`|vcnnsyj`rpekjiypg`xb^v|xyu{jwr[ao|yrjmulopaunr[rnbjYfmpjvhltreprjkthftzptogkfr~fcjksp|{unqpuo~ucupvpkhobm{oliWqgykypdrnkwuskplgma~vesuuluntsqkqfbgvguuj^unrbhprkZsn}hsnrtfi|olovkkruevesxvtupdhgy]tktuvwvl\|lfplwdlkqmoixhonldxwapfkvmljobuoxipjj|eevhadogghnl`Yr~hoys`prphpgoegm}hixjfohggcktbq|lneukxnekqlfiijxekcer`j|k_lp[qndkujr{iunjhfhconksz{rgt|fcgnehrg}cebewu]prdqpjkgpimtkitqaudndmgulkptsgjiotynmslzlzxy|zgiookiik|uqwkqf}iq}owq^upfjt`|rvc|zeum]aooxd|hbplj_pkstqqwennoeyuotfukjliqognld|jrmyvxznrnfojsnuoivmmmqinbmnz~bgtzthdzhrspdph{w}nliqkycqleki{Zfnkxtusd|rc}px{jxmulcwoowsjnklf|pwlip~mklvnnagwkm}olzvrpnjwwoqugo{rjzoomhynovjpqazpgtfw_pilsajrlols||]]qfwolgkphhuttm{usrrrnhhv`hjmjmosgktcjlswvqnuokqkmdnqiwlldtpuhivwtsvj_wlho|zuqjmvttdl{qmoorumc[nstuva_n\h~|uuir|zrffs^rglnscvpgkicbojram_`prvl{c~ro{rkjricP}Po`]otmX~coljifunma~kii`rqYr{ngjo]tYpl]cqkbijwiwmjyq`qlpvwbyimthia{ucraebdzkagwrab_pz}jkivizflittn[nhdmem_jtouc_if_gjfdwnhqnb^ehnzzkp{helhbqtnxfmvkoijcx{hrsq}hlkepmvwqvcvpllqwjsxvwqdotsxqpgy^sr`xhclw`qlrloihin{kketlprh}kiqr^jhrdnvoctmczmunsqwo`q~tcxq`vcyywZatokjcowxkvhneqxn{snv}l`jtme`oijkjnh_nk_xtqhYwoqe|ekphlife}qdugkhdulcxbrsjjmfpknnns\jtqyl{fwtq_rgj{itverndlfm_nojgtxtumqgnisOtvhpfv`gtjhklmuthwyjlvpbvvpaprpfsecwhkzdjlj^qqkqmvaj]bongfuiipStdsklrgjoanhnnkin|pch|bdnq{ykiiossptilujjnunwhmjsknkqrkmdlslusjrqiphuxm{juoprky}gqopnnqigeniqvgvpsprkw^n|u]zonritlxltuwudxnrr|jnkmejw~qiki}segdritktifnvgnkptovkon`kwdfizgpniohhjkz{ttlojfjpugnvnhrZmiq{w}mdmtjmqimpmrqx{xlqsriitpkfpqwm}dqyjippuqjkogjgz~qmzltog}ez~hrdyyek`Zkrfoii^^ktapwmd_we[esnuhmknqprnrnpxntrtwyp~ockclVaqczm|^nhrjkmqexs_tnmxq|fQe{ea|rozofue{ut`~gqlhkgj_uvwkYlu|pro~expY}}rwut|lnmjzmi~douiqiymvoauh`levthomudrhk}ejVtkdmjs|mrqsoyo{qyetumspo`kfsqnqmqkrjogse{Y]msssdpdvoogvjooopcndreukvtpqobrqas}^_pnkprnpt`sl]_hlrsflvjioric~quklknrqel|w~nwlgaZw{q}min{h{igyxpmmif_negbsfjvnhzgshhvcuftmqlifqkx}}hrxeoudivrrlsrmsuwgpxgkgkopf\klosceo^kpi]j]gTaZtvvb`q`olrmdpwvjcpzkbm`}tjVhhhm|vxzk]hhlYxunvhtaolejntozvbg{kmh_lsetn}dcsvcrhhemo~slsv^wezoitlimk\znhmveizpeawbshnwmjomkvplmqhrjsfplfjqiipuzbiouqserqml}jjvpist|ggontuhjzgsltpiprbwiqczuwsimmykn}xpqrpvfo{iukloncockfeppxnttiv{fmkqnkvlkt}pugoso~rntnhrtronnt^kswposglwpolkqkxvqjzuisjsweqtxm]mt_nhiqo`pgppjtxltsc_nldwmp^osbskn[cvmolrkvj^ndzjo[aXi^mewwgpnsn~wgiegggip{vkswknlzem{qsnruuwprvjtjhojuk}dtjjrnpljgsmwrfrm_}kbkp^rsoqktr{mkhjlpYynm\t_qpqukvkrvpyotldrlqor{hjpeasgh^hotgbifk|rmyqsvuapvphrdehgmajmgiq}jzuon{dtzWfwc~exhkgok~{|unzthn{phcfqumpurwmr{xkooxsqkqowxqmfsmglknccgnfqhnslprrheeuest{ofqywrgmoavttzn{qqsgmxhpfx`ymqfuT{~oylr}edj}rxjusvbgy{oyjquiwsjhcxfrlnw{wknme}anwaooXhsoeyl_fkqn]bjwbbVjaxzlstefgjethscsdamkwjyp}i}v_Zze\|rrastvgeositvfwjhtss|\`yfy}nlvsoznkXmze{]Sxmmmjghli{u}\|sgkplZqoqc^h~ghjytt`ymbxpccXpqgf|qltklxgple|yz|r_\cU|nthd}n{eg`mun{j}tsm{onm~yjpznsipe\rntnf{eou_txnmxsfqiXtuuooukmvlnuijkpqtowzyfrntlxlam[}umbfdyzdunmdvk}kvuQ{uksmsps_whpm[a}nztc^o{gsxfdeoqusuye|jqffqhpncmaun[}wgftnfqm~ptkxajtngRppomysr}swckmslr_olpr[{ebdjjvskcwj{zoylqtqygirudmcyU|q`}p[dtpTcuzlvrluZ``ralvlk{kswgobp]v}}iuofwnnxswx[rpqkWahnzvcrppjgpu{kpwcfnolqyfv^lvo|g|tqkqyl~piyniin\vqijsrxU^mlsfaupr}\yukfomoeqtnooljnrdppijzqRkjlgjgehU`gfmkqxguzemndchbkl_bikl~rtelmuiXtvpp}tjk|ymrdvtiwtu__rfnorltokupsizlhx_dr_{|sydu`yvtTkuhczj^sh~tyj}bishitwyvjdh}ylwxtjogpoglh{{gjfgnngwgncnsjek|Zlulpokjqwnbkum_{ntqlcxntockilemZgwffplqkqulmhbbnnksms[j^hms]rootgjekoYjhiroyoerju^kopvsww{ibmlrmrrnijtffsxinsjnibnkrhxlijjjj{dnsstganzeq}}p`mplplzpgtyeoduvmq_tienuwz~jzaxoeg}rhtlj}njrnrsck|fkuhgxdj{lkoq{evll]jsy|tkimrpgjsnrmlqy~mk^mkqfwob}lhns`oveejjlndly|kaoju_rsdso_ffls_mjoy}z_mqxsppbxx_zszuzsktqmoiouu|yurppjqlkrolgerllkkie|t|kppvarnvz]mrlojtyhcq{gslvinrpWjnnl]qdssfxccyrlitkuVfxvhcrgphirxtlgxvfonmlif|kwpshoiq~onfswztqhimykqljqgntsuohwhqsmhswpnfyzvhcmuunpfuhm}sugsq]mdwlulgorkjsadtvotpuhhijnmeeqlnepdoumiokw{qmyutndujvlyql~cmxjdtvrtangsk_tlqqucynpdocbmlhlfoenlyxovgxcop~{rhqmruosafvkxi}ondjxvemwngYvomijzuhkbqkemreuieht{tqsojrhvggbvwnw{djjghrtttkxcnulvoienv}eipdrwqofcvwu_lyjmkqfinwiknqxkwtrnh|xzrvrheckn`smsmfrhremwi`spehihblo}ffqhtvp\fVonjiutbnugmjrntktmmp[rp}a[cjv~wl]~shu}qfuenf}Psarht]dtskYevll|oopiteo|kcqxeoepvnglmow_shliundtgj|csmfkfoahbod{pfvodontey`wOwfihq{puiyvqnhfgsa``midzhmevk\gl|uhnvyk~wikp}iunlvdobijnqomtiqrm_wflxfl_ietbuggf\{QilwjzV`fplz{agzm]dnnq|zpum`kfxsp_a}xvtrqsu{pniivlmlsonavveex_`i{|ilnYyzxl{yg_j]uhjw}rme~fojcirlWi^nvqszod]U|dezpZnuluym_yprjgtxrsh~glhqfZya{zyoezgspuYxuebfmsbluawjyqmYgjfkffnpsivxsooczzdsmdvjfnnZzst`mkwloig]uwkilgnttiognbghuerbqywaoiqovjp\snmoxoplodscvvuu}gblnjshnanktqmkogmit`}{lpjwoychZs^bdlkrpbqsqmoznklxwVqclsflzihvuqhh{iqhxio}{vs{yaqst}wcpnsntkpxxhjdtnnqjtnudhyfrhtdm{ldkku|jiliqytnkicsi~indvjaowtjojoic|uhwjhqoetq{uhlhizOlsennsxex~Xuhfclspxlcrykrvvelqqhkezohw|rtjeecrnewniw]pud{onohkcwp`mdqpxekssputvotszbbdkm_wqflwpzlrupqmaxhmtvpmjuvlspblm\rrm{_kpgqfwjxqmhimdooduw~rwuyrmuxlu~y|refmz}]qgpyrtovtogaung}}tt}{flomxnv\zmwbp|yfuzrxigkqk|kfmdaugrej[dpbuon^rfdqqraukqtqlfuizxqzleptshpim\t}tqjxqjpjqdmqh|oueatlzsyx`o]pztqopivfUojjkqzgji`ajpj_fqqi|sy~urnjV^lynmyvk_jlbljtmplc{jdrinpfpvoua^mkgjimun}bdlsdVqtrghhfqnullgejknftj~otholox~vjd|qsKoq[e_nvpgzYwkofdxxmkjjkv{tc[sevodarmhrjdoyhzgdkfpoeugql{vnokdtiZ]}qhyzdelxerusfvjp`qvm}f~nznmn|sgpv^qmenoWisgyknuak_gmhgXpeypf`sxgarijjo{azoxmpuqahypplrn^idqazmen|obieama^or^plojcwnyiaeshc_t{ltfsxkacvibzdmjkhep{vkioxoipwjdqgikowkndqqhrcsljmrpmvks_qvmgnrpgthfw|hugoeltptrxnkboqqngpt^ns{kg{f`c{xunsclyi{iwiloeqk]yjksotnjhpffhvsnixjcspiwn^mhmzri\{bmv|pqpgiinwnntkpqsqpyqktyvcspqwc{suwmh^}dnjiithpih{nuiqo|npiooiwpqczix`mh~{cknx_r{yztpl{xkrixzgwkj`vkL~t[O\}ttqvpY~``oaw|]R`ifteabmrhUyn{ppa\tdgewszfvUvhYwmhxJlqUcjjkz{wivp{hvYrSscvlxSjikanUshlmcnyvxuaE9:xV}|Mlmfw6=qwq{XmzrqsuLonlbkwqnxnonhskqh|pkopbqxjthd^ftw_ipgip\ckz}w_j`kfgczjwngkskprhpulswnil~skjsqpxjmekiuit~u]nrbxvmkkyyvxkxpnneg\kjvhqkpvltefylz_hptswqsqfmpizrps|}snbxha{agguWqakekkrqonyefjsck|mrsdthgtttgjznqjnrmrntkrl{hpmsgqymsyowmrvspodof}t[wsrrv\qgurojpsg{skupfngvvmvquvqlhbmxp}k}q`ricsfzxhnqmizzrqm_ujvzslp^prqapqsmprw]fmkjk}mpqmrjhdgoppondvjjtntpgYlmhmrierfo^jfkkwvd{sykouqm^kkrjhsbwpenrpdzltfpsqtqlXw|`wvw_o`sotctl|d\glUsv[wc|^civeq\xk}wkrqnvtvgs|~nitutpi|l|ormt~onfsvaarjjsyubrl|opl{qfpwpuf\nsim|e{vleq[ajtzpr_gqkiorrleunfmpskqqvcqppwkwoo~xewn{qpuyr[zmmuuq{ui^hjtmkbpikxyl_ekqsjjvtsolhuhyqayzejuj`qx}`jgwgp~yroyjpxhloqis^rdpmzhsgxojmojuo_zucohnyunxpqdko}bquliyvli|roytmisexgqoronihp`tZimtlcpour~kowu{sou|uwjiiprokknaidstplggja{pcuavrtwnjojift|sulnuiliiqscpq}wgxsjbr}ket|hrojinkjrrfpvy^uospihotvwwcedumypovltkztzahtnmmjmokmkymqu|fyp_pugfhwphfykqoofeijqjkpn^tlhmz|yltqrgrxuxhkmdzinslyslomvitemqfymmznsekkcrbrrmniuizlspjikfwtqjhsluilkpkotvjhplgqquzlckeo^ohp}zlt~h`sunppjoipwnsoipgnygwopsholxjwjcqjuktlqfroklykrchn`{}fgpjwzxhiqqimlpgkkg}cgpfuqsqaekqjrfusttgjjtueygnwhrfcvrqiklvrpt^ilkhsj|mmfknripeklpmdoVqsksxq^dgqv^j[srcnxpnmpeuzspcfqp_osjspmmwnwodsqtzmdbohrg_zkjsv}oZ|eqlzsi^grmop`an`^zpistq\e~kqzrt}lvtmqx{gkkylyf}ctodkhp`dnklwimrljwljgilg^smpckqobmmwmxwrrle{mzjigtvpfzhjvwomgnisvcZqlejigcrbewqejrpaahitd}dgosixq]gnnha{jfy|fojwdhkkfxejloibsdeVtkihYms]nnez}hpSibasyclquX|`k^xjjeqlxknsf|niznktnmrgctmrbbpgif|vk]ckpb\`uogjspmhlefq^t~xbtwfggg||o}fqk`iirqbflSTjbeikf]qdhhxrm~bmowsrg`m_tdgq_seyo_{my\ppackJ\zcTbrlii_uxxMiag^fS?t~eqv`rtaXdg~fe{{jqfp|`zc_`tWig|mgvrhlemlry_jUulr}`jryOl{gzpetail{ywbs{ukosHnzoxu}hfj|pas{lh`klmZ`wlvsZXw|alRV}asu^{\}r}sogjolthsfqwtgtomfmgntjqmukmk\z{v`yuosj`oqragnncnszmoqswhonl~zjkmm|rhX]kqoivPunpu}apcsoczqwsc{ijlfcj{zxhforbjpcvuimmpuikthtfjnvhrchq}`juiyn`asrbhgssrlgm_zxqizjjjmje]{awjprdfvu~ulhgfopns|livtvkqej{xfpiqiqqovkjm{lkqxlxjgpuhdsnprqunlf{gyhuaknlaftocmf}wwmgehgmlloowktugyluqfj`tlmgp_kktshrnobuvxogqnkvieqejmuonlekrlqevt{lnwleusetcoojwn|ixeonrsrvlivhjhoqxgn`tmpeoprvuvdmmwoutv}qriorh|nvkhbh\fijnux^vdskwjrjpiviwxou`wihuokkoWTv_^z{plbyreZ{`zgqsn~Yqyyhhbnaeframrthv~btdgj|eqzt{d}zg{gssttt_txismfsh|xmmkxl\_`hvqrs^gddZynlklcpppmluzqp`nlgnkiwpgjmo{ngixa^tr|kygvrntynf{Xekojxkqeptsttmd_~bfx}or~wwjfkhdsly{mlljolnup}w_xo}W{l_ukrgr{xssdejsbbvqlz\fpbpgsr}sjtniy|lxjwmwdkzmojrpxtszjmonjpnljurnjzjd`{sl`yfdhqkmdllno~|icncii\xnpjsgoolm_ufmm]dwlkglus}mn{dipi~jknuojnigksq{jlwnln|gqskgsmxovfefgnjtrzvghyeiu{rxoioxpxfappq|prjfv|xotrgytwk]xoilnaftlmyox{zumpxic_vyomufrwtp}sdlsvgnsyvqvks}hmnqhpmofv^_lmtqrsrlzrqw}ortiktkoeplnsnoplZskqsnknprvukulbemjaptmpqdgjRovuqfem{kguvgwflqwjvrwljthhsbqpkpovkmteouawbirrplqrkhvlcrtyuh{gi`lonhnqtwnsmgtlqlj}hudmlqiemwsprjnozrwnikwuokkngpmoll{lptnvfmtygvs|ngqe|pqptzwr_odxodgkmptxwqukroirna{sbnrgcoprfpogfdqdjdlfbl^nsq~rmvjslwzlnfkywcmtsnwrxgkwfkloreqjyipdvevlwfptkhksxul``\xkqksummlslow|mu~nlwvqnwmqpoujcflnlrayimvdp~pnliuhs}apueymjajwjovlbqvkeyqnwxmlzwwvhq{pztpikoh|qlwmpdijvvklyhzgjjenswlgylfphusrkqsxchmkwidtn_hnwmddk~teqplcjovjensw}lukvhhtstsqpvsre{ui~fnttqtltwgb|hmqzskyiuqmlllYhhhumm]urprfhmxxhvmo|rflq~phenyii`dtrseuglpjorxllztwsii`ctlqqr|v{refswmyonpbmlpptqtjspsb|tsimvdllzwldow|pbwww{zjoszbs}pkzmmkjro}mpqkjwdcsirdhmmtoylkdnnmkioinqqykUoljpuqrsjorompkg}rlmizh{bkhlinqpiy~nqusknvnqnh_iqkpvxgdgqmth_xlxiouyothkxljnrmkpqiuvlgqbkuzuhorurupowoom{kbhx}dqslpejme[vqympoiwxxibvqnqmzwym`kumltrqukzryykv}twpurnflsyxyqb|jpe{qsozkpzgfwpjtsgkltmwmqoqpzcfhinkvqm~ovtohkiznaklykenzzoomrbnotunqkpixphqyaxtvtuexwjbjvfcugnortnnl\n~oqznnomqronzumqt}zisnnsghmkl_yrqcq[rnr~fvsoucojsqqsuvfsqdtlm~jtrpnfyngm{da}slpWvijmgancwxnwv{hpmitokup_hgdqhm~|`ls}tk~drskbq^wf\mrhkXwoyxonfoijpYeejn{crysrjoxikmiWok]xjr`qbotl[puyttwt_kvklk`hdrqipoqgixopjswpeijzkiYhwocokXlpuoiesjbxlhrsfossmuuiitoqlurnh~tshdznmzitcrum\zioiocczsanjmqRwjrstermmngl~kpqynkfphltdris_litho|jtwxakuy~lmvosh\\ndjoqtofvpp_dwbdjahwssotdvlXw|ipx~mvft^pkpknbwahfmqyfo}q|rhidspsynotppvswlyqfnxlkihioobbmrjfhjowfoq~crospdiuqxsfkqmspryyyyrxffvdwtcefqynolpifnkulknxofjnhdknpgavlnksidxyt~kswqcp|ennyilnoqonyqYlslpmiyt_ctptboplpnutfsthgzcl~n\`qwmrtmlflqhnptotrdmkuvxmtodiisqinmuryajirrzkssvgdpkqolnshmrf~lovezxdksrxqvjwpfb{|{kpitshjz^utyvnrb^jtgptdsujorltynqrjeupmftsmqg|mpiueftyiteyutlookrmowhojtkhtjkqxo_f|pksspvctvospx`oiqlnptsxqiopnpirdmmtnsehpvuyutnd}iurgh{nktecsgjgjrioqwkclxovkl^gdjbkdjg|nirf{swdu_uippiruniit~h|zsqulrwjjxdpgvrifdmpsh\ecba|jewvp{podwrdptqx|khdttilpqjzotsnmj|phjvktdokwkpepn^h}mxqzmp|ovluwbnyp~swomwfzl{`rrfvnqi{gkgrgonmxodqwn^rpczovgdmvyj|ur|riqtgqpmxorxwtmhunosq{|prrqqPom}glfikawng}zdspgpqxoloqxh~pw\krevkwyqh~drykwt_rmult}rmris~duirwwkSvyrvyimbkls{wbmjwcfw^sttpguux_Sjrnotlnkron}dorph{kgnkslscu^clhrhuvpnhkmonper`Zmenahjqg`rq{pwzqrgo~m`|lgX~~jkihs|jqkbfl]oyevc`psmpcl}luqexlotT{lxiguonp]pafezcmr`{{tbn~^ikhspfe^wcwk]qXy{osjmgfxmmdmsjs~|libvcyvq`|lknvnorp_otmqtip[vbosolarms}zblrtset~vzvudev`WrepmhnnhitqxpjqlarpvhX~owyvgu~|pmfvsvomweskcbpfumfjkedmnoh}Urvnunm~jqakhzp`pupwhd]qpgizmoabcshngxromc{ntdnmdkmgmlrszwkzimhypjuuleg`zdsfjxw|vk|sffpfnmmosoksmrpem}s|n~d\dprjweq{nlgys}sxfnstgoln|qcyrr|jlvnrqgrlh~ui]tiwq{gv}qzvfsndorjtmw}kjfmuszdi^rhglhtmvpkfklxqwrkgvsf}]tlmfjlkpxu|kjhrrpnltbhgxvWsskskx~cxmprrmk_upmmsegnnrfpnqpkw^dwa|jsxwgsuqdl{jhtejurnsrusknmqvttqnjnh{piomksorxglrpslkYko~azidrwpwmeqmszjrskqpsskrhkpbtttnrmnfh{~{swrommqjxjwdzlmqwgpwjloqusthnybKvwihojsvqmiurimxqndj\kvkerh^tYnvumwnlqxzvpgh~sanoujqrdngf_zfrdvlmorhnzVro|ltjnvqgijdwj_Yeef[rfspognk}lppjjxintv{zs`iruc`pkzhieicfku{ivl|emnhmi{jmojmklswg`elq~{p_~bonqdkpl{qgntmpuiffblconfqk_miZqsjutpebj{sdwweuzs\kcpuqfpudpfpmrbhtftgo`upklvp{opqunklrk`uoqoyrq{wcuoamiy`mtovvo]msnxnkssoxborpomtmntaqrXhj`ayoteakutjUmpqkxnm|anntvuvdgafbwtpuyxeks{otkperbkglm}tqrtpgkkqui~yrrwkpkzskihxfvpsrmbfrn_xrkddhSmtloot]Ug^krum}taoj\uunjrxf[ocvaxckfdlu{ksgrgqhZjfgmop[YpqfD{npsrfrpyj_pd-litek`y\`u[zo_qkkbdu_bh^hck~iu^vwtpjXpilclnkyq`\^ijmnw|mncsu~oqimshjg{WpolWciwmvqijurmpbhmskhpp`{ih`nyztconQwswkhygqovo`pxrihz~pq_qqlofi{tnoiulskdsrjkiY`^keYi|lmozkqzb`eqffikeejgslchneu}oYdktjgbk}uwgaxfhzuokjsflutmik|gtiflmo|t~blx{nyplwraxacpbnmouzmpnrenij`oqcfkiqnu~^rnftojkmknmf_^a~cjc\mlm~shjwb^rrpZeuo}or\mlsmv~rttnlwtgpa`|eYegta`mdnhooYodbgfhf}^{gdfnbAgcfnvy\X~fRq]}jljckes~jaollq\goffzidsq_gwffjqrtmRsSn?cnnO{anwkvzvvuVjowrnpsjklnYfu|nsluwqs|inithyrekorl~pwsdboshcgnutuzyjrxuqchqhqyshydjnqwisoluevdijjuokkmev`lk^skhyptofdijplwgpkkuupuokjhkh|oetnifsftovlpwyZgrvqnqitnmrpsk\Z|vocsmyu|jksnwl~q}grqynltcny{skdWfkobkgydawopt{,lxxif~ihofll\Ym|kooyuks`lqpmcok~ebnqnd{wvbs}xr[gnxld~WoX\fmqYRaPmrqzf{[bbs\a^d^Ftmu|~kdknkcleZusveasYcy`jeioVj]lzi`fVtenu^zqt_{njadaijoue}`er^Vq^jg|etvpspighttlwqogkm{kim`x}xog{k]lrvpofmqr{qxtwugev{~hhx~p{kkwizequxjopmp`j}istnuvjxqmqhcp}kjtqpgSlkmebmlgalinbhmv{gigxzxoerlrg~gpfzc}xemsXmthulgaxdzfjxktwxmdnvqnoowwpequn|sflsrlcloaavupp\ejosolazgubhlrirfgsimqtfkw|fbqmlmfqkt{d{zwfhoXuaprplg{gsjuwrhvtNqiwkgZgsetnxV{xlnUlnrwo|qaxrlMqfdvjesnmsxqrirppsoflkzqkkfaohk|vf^rnu]oEmvJ^oecupjt{lv}ndjjk`q|Zh|cUxyniuoajtcyhinpjxvvmvsfnpyrqglgpkn}iWpu}lrofqrhfgykoqnoqyzncohsrpfatoloqieplhpjk`y{az}gkkp]uejeompzpwu\fhowhruxlniexnkoqhlnbgsxhmlrhcdzlszhvlvrurfucgmepmleinpzlqquRikcpmrzililouumnmsympmfttynsbpxtydeuAo_ilyvnpjboxVyfbgwkSrjtsydoalfvzgpfxowjiokzsajalos`mpj[tYw{dvqees^ym}cmvsm|_\hmms{vcYtojukjg|uk]^^gxlqyk`qncgrmop]qpv]jnoql_vYbwgh^pirTcfy]dskkuVfgslefnymcjgt]bksdjjpkzhjbuwollmfks~oafulmjrncurnlphdmdgyxxk\t|ytq}qkhpn~klt{mqs^kgpwvgrgqpvp_s`jzejmurd`rqvfnm{dlzugvsjoiwpmylqnakmplxivpjzsnvqojnp}epipxklxwf^xnujunf|qlmtpcfxw]fwellv}lvnn`gjgnnphquoqonspsnzmjrorlWvrroosothgumnpgjnvnulqe{bbo_prwupgjontlo_qwjqmpnnkummltxsuepnc_khxxprlmeonvov|evplvo}pgliijusj|wjowhlglutrkkjsompsykwqsuglpwkvrtrrocsirwwjfitlr|nipoxjm~frylumnmefhkynPA{y[ml`f|semscmcme\iwymyhvVzpYqwadS{moYwl{npwc`LuaI|]mp_pmpifft}scgiciR|tzpmjods[[hvzinVk{sllvhtpuplnbtmgiml]ud[}o_pk\ijkzihedqHlhwZpt`egywxvzz{qZskjesznjc}yjb{~{e}fpn`hnvr~vrkkodrgiql{mpe~g}lZfnpoZsg`u|ciqjcokboavt}xfcdktowf_rpqho`r{xtvkivnliligp|qwrxdwvxIgjq}n{pzotqmznjazps_uve{tvmtmsqvuorcunimkztofzucV__Yg]^oj|grd_vbmo{vmtknfqmh[lrssqqtfojko|sqtr[|jvjsfy{m`yrspcqjeqmkedqhuvktoiyoihier`kq}nvrrik{mxdjfz~oimwvdklpol`tqmtlhrpzp~mx}vqiqPhry_whdjsnplrol|stublkp{nnjnk{xsykngpop}ryjinoxjZl_|gukgaqflr^nepk\surtoxirqrfltqovjhycq`~ownrxsq_tncxytbmlwvohm~gz^cj^YlyouksrxokjeflpqesJPpfnxams|]khx~ooed`k~kmmZwlVljd|vY^nnpj{_Yd}kux^rua]rkltuoFbbisswcj\gdmlpuxdixewgd[Yiepu=jfgnsa\wssjahkqobxzrtloakUp_owgwuly]lV\g|gzvu}k_mfljXgpggixaaqynwtedznhvrkaesv~hkReuuwwiezj}~hwathdwwpnooWxf^fytiqwanacxnhuhwm\l{sLi`{jd{^j`vxederdfspmykdwlkqphgtlrlnjaxmggmwaorVsfhnvqrruhndyvy_eqyqtpmbwjipopwgmtjrjzyhpztn|vltnppotpclumrnthhlkoh{hztiplrzvvxryfnosmXb{julnfqsnuommzizn{^nsnykqlhkdnvwnzhvprlmojujllllophmdfqrpsmqwtgwu{nbpounn~axo{hrftshhqt}jkrfqnkp}ouulu^uouvolsq~spjmloskdkjwjltngtkpwzic}tgvqolnfrwkb{gwsneomf{msbonnpRqsjhlikdiwi]ivu{mzpuo\qls{hgmqarfit[}ixwitjdvtoqdyea_oj{pdrmbqknoknxmbffeirngauh{g{zphltvgungptjmbnxndekldynqeltbkvlswhu`inljm}y|ooy_kd__kq[wqlvwq{pkolmg|\^gdtvaaeajdxklxkem^^gcjsb`rmkqwrn|s`tliyjpoVul_ugmh}qk{~g]r_gT]khr~cirp]gZnti~mttuckyze|MxnVbdgbfpZ[xfgop{jlfnnejwl{ouj^assVbZt\rtsZhlbanesqq`jwnjjvhhmQupi\xtlupsmvkqed~e{kfhi\ni}qn{ztnejjnsiqhoadnfjjo\hz_yqFyl[wknm^oslvkw|juqwz{ijpkvwxpvsqekojjygrrhS^Jltiinskvuyluxc{kuzt|whptfw}wqks{hlykizZhudsrnysl`ofqmfkwtfnjmtskRvrYsswut~\nt}{eu_yhjxnsRsng{jp_y^icukq`^Zm^cnwi]pfwtrwprp{Udsnsxzdgulcwoqq}^tr[ksiofyrslmgoi|ko[g{`mpvs^i~mw]\no~|q{l[ducadvwetmncovsbd`aWhfK~mgzxiisx_ewshzgrevoS[qto~^fmxpsw`mcYxwsr{mjVimkataWksh`jnwrfjhdhxzqtdar\_Y}lt~dtolzsakuktntbjj``ragmgssrcj|bu}nemgZbmnq}iwlfGfuheVmodisbz|skdrxXyxquzmqoscxfomiwmcis^isgdczb~jkjzwUlnrvtiprcbr{Xyvtq]yujmWoytgvtjyocgctiixr\dqznpwwyogpjgzxumctw}nj{nhr|ngtrvvuigxxwkfqsuwsaitjewogjtrputuw|nfhox]uuv{cgtqqikukeskaxzfmhmojgwfYmatpthhmmjskjgpybyriomyrnvhop}vfbvgwfkvgnljwkzqngcnggzvzqojzmknpc{hjkvmotozmpuzwtkliuijbdnjjnnfrekmfyknskwhscyq}rnol~mhlulvjsqveg~k~koipydjwzrwahjtuuutpdglepegpqueijpuxudbzb]oup{y{]ein|r|mci^ckyyiwkpluqpvgn^zrkmkh|pwfdpgkvslwua~qtmyip}qtekmmh^u_m{j|rp|ckpfkz_m{ogxv{{rtsksphqhlhibxe|nvrpoelfokWhnqpjcoojutsbzqnn|lmjngv`vhusvstmsjrwsz]zyqonmhdcsmspp}|^lvkhJvquqhadziyv~iqjmplldmesmjafu_thtodiwjwno{goqojwiVoqwjmu~iqutdfy}tvrpmjuvkzomm^ly\bpkeoszihzffkkuou_t|moondqmul|nitubjejkdnVwsyewuqznnyrpley|diq|qurrujr}pij}kbm^cr]omryzp{o\[`m`fcjggfrbi`cjmolYsvszk[_qcgnbXcszi|dqgzdhng}s~|vnn~p~hjbeppzid{qmktotivmduuhlbXnplwpnrrljim^drykiimorqairucbzv}rsy]r`UmRga|aeelrxo\bfifvkfeyejotlfijxp|_uJaVrchp}ebfp|ljvpMrunjyXjSmjpagn\jpm|ee`nyyhjrozkdep\`d|dpxic}we\lyulstpgljV~ul`mVQkwghWz}vhaZgp{li}eznnVejlrZlweYstrt_nzmvtrviowlja{s^[gq}odgorizojqp_ylyr\o`orqkwjjundmwYvhb}kkvhoidxsl|bt}sgkolfh]yZmrr|kZluPfvsuhgmimu`ojqjpjplxevYbjtjfwzftdqmbfljzjvwpziiXr`km?pdjncrornnoptmfi_zcmo}o}uosjexjejnyrcuo|prH[igsmazrqffow~_{}~`nqgj~kehqsusqsvjpcWn{MsmpY{ujnjkf{jngkezwxlgbgqdfsgtmhtq`jchkCrwhsZUf{qtmcomp}r|qj~gftpyxww|l}Kia`ptY\dquqw|jyo~J{s|o~jzwIyxh]sl^`ogn`uo^iz~nnUhgsXolmq~q\^rsfjdnpaeKsgbZhvmue_njw`qmr}frd{tlesolNslhdKdgnl[~qkkznvvlnax^mllv~mmxagjkn\goWk}ntvsnpxhhslx[utpkzjtf_llnie`ugrb|rx_~ibkvt\qfn^pl{s}hewao`mc{rjfne_cebapqbq]nttpmdiqlovhr{bheoqcgjvlr{mdnymwwntunq`y]}pkjxljhhclbbox]tnqkinngpq]wmklpm{hrWlemjiqrmfqeueqizownk`ifzuskigivpel_~bjpcxu{ogomucdvYqimrmn`lfqbpuo]ru^^lpgm[tgnzqjd|lot|lirhvrrk]mslx|osqqX{yu]zmpnse`kwpotpsta|trs~teqdotr}`^ynmlrf_gvnprqtvvlkmnnr]pgoit]vj[tcvl}nnzr{hugkq~fpixyncmokdlpwgnnbpvbpnnhjthpjpannqtrwavpXvkGxlrwwg~o{cq_~jmqlmwpikqzc`oj{hue~mnjodnts}xti{f^guhtirwdnskmjghTpujhqs|{vwebyuxmxpoiieultdux|nk~}vqm`l]kejpncXur\nkipnsnibogNsjf}hburjwi~gefd^vlmedt`rozznwo]hibsfgpo{yb~{rmqwXfrLjan{fwolst}dvxylkxn`qy|}muipVlokrsrenjgodup^tiwjtotslqqXxfvimvz_wrf}ouwsppjoxlxprn`ts|yudlcmutolmvg~drd[umrpqfmee{jvnnqmnaest_jkywvtmo}gsrkjlfupflk`itpdiuewd}xcvqgtrhetosndkk_blpufqkytyekh}ndpt|kZr||gmjqirm|ufQsf_p|jjfz`ovhmpkbomivex]_rywbvoiuqitkkpcp|meyuadpqjrkzvpz{eyuhtojpgjdnw[pheanqojgsqjnZVpxhkttkt@jtr{{paalltvihgrhmmwdrpsi|etevjlxtcowlXpnlippqvmlqwTlfktui`rgdugqr|tmtcrmwh`ehmgjfohsoyxnlsqojwunhlXuezkmplv|i^nthq^_jvft~`otlimvvJmsosaYkuwzmjuvdlicrumcshua{qhrecztlpfguudxehld[omonbpeptdZqnvqpxubnqvuggyvtdqds^zphirlcs{mzwolvmit_{gmknnit{o}bkntkwrmjttqkvf|dnthjqvYvhelru}fljd|szvfgloyvjsxpuyqh{snrpmnqhlqfmmrinlerq|ujpnkqisnxponwplg`kpoujmjxlunme_lmxgshjdkoojfumlxamorgrj_aiaquzimcbjwnjigk}osljlels|kpxini|oglnqukplojqnpslat}pitwjflnnsioosnnhomkiqicoithswersgftipuqUlmx{f`uylfnktvlonsukrkmbojklglssroof\gslqhinigpd|qp~}pmhmjwnorr_\ziezstfojnmkn|encpgtglqmbjmipigo}qiqrypmkofckphdysyh|unvflznaqzg}{oneplgczu_jdjmxfgheopjupdliytmy[twghb`a0}ohjfhhltqoyglhr]_hudrdgh~^ulus~ibzq}yWoieqskqljhEtgm}\y_up`Is`[[nbpmmtvc[wecm}`gy[cn]|akx~|o\skqkw`zomlkvq|R`xXChdg{ozoKo.skp[jmrrNvjjg^une^mlv`hevp]h}sxxX`hx`iZpm~gs_lr}t{o|ogvfliHUgnfSomdid]cnQ^hfpsVmtgnbn`uzxqzl\v|Tpmocuj|rhWykeg^qlar_imfvnpwapc|acjmnhkzwoem\]jzqjdo}zkniTkpc[vkw~o^rbssqptp`y|p]r[~fzqpidw`lnydoiqg~zyw|gj\\pd|zn`r{\oqLv~^nsrrybtsl}pgbubbmyxvw^~lUyc{f|awhSwqxvmLgfgen]YbMd`sg{Ydmfj[ofj}`dzljyQlhq\cjshauqw`f]V`oa~imclvefhopedMjzu\xv~vtty{fswigwlhiyxqkfw`sU^tqm~}wmsrkkrmhhW}TigoRszkwaeuu\ahZqljYt[do`xpxtYbfblzZfdblk_ibn]fmSouznc`ok`_eitvVp[zcio_xzxfcve}sjhpqxqt_^eruXxkuf`ql\a]loyyktglolid{tvoXsd_ttkcvgYdlmdkg[rt|qmrydit_yq_xy_nglkqkmm{trjjmjclzrawpqktshsojojrw`}orxvxuuirvsplqmq|ad}nxcco`mqipkyjn}lhk`lyopqhxuqvfd~qrol~sv^zwqtvjqrgmgcskhhmoepiqnpksqimukeimrq{|gtupmrgaxqpmn|_kesj}ykm`bqvjjkjglpf_jop||rkp|trps{sqkqznrqYo_SppstknsrgZyaOp\jsocs|vlpft}yTZmtijxlT\jugr\{efzclkcsky}uyjm{roi{l]f]q{|ntx~^afYsz{do`y{irip|dk~bd~ju]Zbzcs]rmquRskU`n_ocbie|kzn]^~hs{hvpgboithhyrjihkj]b|t^bdj}zLkqnjs`sn]rtixyiVSgzeykte|u`ppv_bg|bjdx}}lGouJ_vvdtifsodamjahdeee}{nevb[itsvxnukqlk\nv{bkwycnZlnmUmm]`Xro]s]usahzlmdq|h{Tbdzwnct`u|iwpd{{g`z`sdroyt~fygjm_rwpp^vlcsonrq\jzltcmvfugofurwcsm~ggrtsz{sXhk{hldd}{sXvvo`~NxuUjmlulg[yohbp^zbffyuw`~qhnnllq{pkxt^diprc{mfkikVmwVgsjmtrnffds{e|t{utjzqsojnyetWittsh}jyidlufvdhmrtlgqpvcdqrw_ektrpp}_euoowessudhqz_vbxvtreofujw{kpwlpiqaphpewc[skwikmm_qcshnWemjv}pij]ibqjamlowty`ahppjpiedgtonszfmwikroothmej{ezwmvkmq{~bqkcolfk]pkZsii{lqqhhfwqnmkkqlnpqkpytszvjtpkto}lwqokolove_ul}qysohw]ytujpqnftlizogl{^kri~kcpgjnvgquljsfqkpkdbwjhmckiulphhwiy~xvmwfsmkvqjxphovvurhndppvitqiltctlsiniminjoefipltnnhujkjqmixqos`cxlkjzlihpiyiGvovosikh~mjsrgfjknrh^knloook|qmovuqlvrokjtRmzpwvurhjpvtlvlcsxacbstgoizdrmmTofo}hlegWixhUjn^snyh{ke|Put_mutkhdstihZmomgkdp{ghjmnirev_kx}xVejy|xhjfo{zluqvqpSybXftmpglruwfovuRlxarlo_n{ihpaoqllavgbsvykhcyszpvgdnl{fajqpslimZgsoxty_msY{ohe^jxvf~oextc~meulmjgrmiaifkrduej`e[pqpy|ujmit`}vfscbcdngwothamtrub{|fgr^pz`o{pvnmjpfelif_gxq_uVphiUl`Tjh|iEykesuef]nwhjfpuyugftihhvsergslhgqjfw^vsobvwquywzhaevjuk`zhuh{yftxghphp}ufptkn||vlothiyuqgghpmqrqxjnovqjkwyojwyozczvg~crdlcprbhqknm^hj~jtporruhovjradupuvmuljuu~i`srlv_Xpmtiolwonwkoojswztih~^rpalkqyhynuxnk`kYepmxt`Y`kc{zcurH]vrikewkq\opmbmmxegbvtax]qmhkgXi`lVY@tldqvgd[V[okbuuqwmvwqn}qHh{wk]knbjcrEruqgwnqvi~thstcon|xqzgpdestmiqhp_pcoqs^n}mhhjnetgkneqait]|r\p_b\ofdvYc{nvnogpnvu|su_vm~rckxkjrun{xrpuiokydvoxq|l{cif~ggtlq|wq~kmrouixrntohmtgrozgpwtkvsftsno]``hmsrgatruotifjmunqnlhbqcbpb{mmuz{nvpp_qdmmniritvmjkwutna~msuyse|zoxgtnsvrjmunhmlp`kqyknooukbknsowkit}zxqxtvq\psxi_jwp~xu{wllslhmqpgvnnsymjhqbobqyjiroxhktree`b}ryjtq}krrolpalomuhptski}eqijjszipwfppcudekrbloodpgqdclqho{ulfwpmpx|muohd|imxrxo}rfokYvgpcymqpqspzrikpsjkkhrpkipknmppiemxmdpfjskxq~s`jugn{~xwu~xjvywuwsjbjzqhwmuwmyxpamjkkimijmqmqrtkungoto`dhblqin{duulv]pkivtkpoigzgnjgnvnyrwvoyhmtyvqwuqir|k|toskttlo|pj~}rkn{pkp~riksksnirpptvrxwkuruippntmqlfynjtor_dlmu~{uttjmbwlmiplpknkokwswlppklrpsvnttvqpwr~prlk|sho}tlnrp`jhoweoxysohtxkkoikwglzkemd}whqqrh}ueulrpfyuqlroku{krnktkqnfvljkjd`|uorgvnsblep}jhnuoulqqthlv{wqlmitpqtdcgtgyi|owh`nsoru~wn|wiqfmwd|kajquvpneyxuno`evlglrkmlhu^dplfrn`i{|_dhrsqad`hshqoksSoe`~mnzjo]jsvgbq_jhenqcubrmcunqy|pbuimnlaad{oev}ipkesymqjkklmjWfsgVrmkcsdy}ne}kzomrmwzcrybc{gngb~dlqtmdzipkmwyy\j]rcWlpttjyvarnmseoatrtjxnomeamenjn_plht{Oxeof]g|ezhe~splmosdkc[jnd}cjmtxh^qnYf|vtahgrmjosdjblgacqm_^tyetazlc}sqwTk~Vvsmv~psdkdjjDkkdtrwmfklundrXl|p}ppkqdlgR]ycxp]{sfrhcjko{z^aoskfzbpy}fzWrjmb^aghspsmhpystyza`qjqpmljqmiwurrprr~tuv|vWbqiwpnkrjfbaphskt[tzcr_qP^xW{qdoWqfhqhh[_lfvgfy^{ut]q`k\uxp\fgsZmpd}owyxj^fwqacnveqylthW|ews{mgiji{r~inmthkhfjsacrcimhfjkreernexfpgzsrg{gl~zwngomogoy~qtipmfkrlr~wngkopxcmkr{ph`mnlawynnmo_ysluviyerbjwgqr{rqtsanqkmkbrmkqzfphjnwqwqrdjrqfxjwn^efoxo{grjo{bjhoibegdl{lc|mlekj{tnnulr{qmn{ulqkm}khnqwkomlpeyeonysrrmjtewnm{fslpccynjywjqj^|mmrjph~ovutsknql{xncplukj|oszntteu_diiiq{jwjitqbobcpm{f{mooqfqniq{svkok|rtnv}nrxatjyu{emyqj^kuinpvti~tomwkokovqxphrsfluv_mkhxuj`ilrvoxhmaUcgpiqnZwztaiqpfz[myijxjmg~jmumimUnhntlzkyqiajomgjth{rZ\up\UooviqsoqlhhCgVbgs|g_ykedk_lvidqbtoihjRjtwzkpqt{]oaytrdmrm{fvlxcdej{Ymkk}d{hxrpforZn_`ldqqltphihfszzc~p[{gjXxleannmt}vsssstkjvkk^kbknse`pclbvhfngu|zjqomlgmma~hxpg]ctnqvulihpiwbhi_yq~froldjoulz}k\ptlgorrjfqnlyoo{ahnmyijcrezjecokhlywqjxcdsovqstpuNxopgvvd~n\ppvqjfqqsgqmmfnrnn~jp]vgvzvg\yclp]rkwodynnkcgjZiqxujnfru|xsl{yyqukooyowkclnunnrryG^rc{mwvfjssnYbtrcXvlZgnp{{d^azjziykokdc|vznfvjnUevoufJl_xmujecqb{gdmxnoltbvbd]``z`umiih_qsh{g`yr`kkchwqcr{jpnrbvz|hnhjdiors{`rkrnykm_kWh~srgouioZtmmsquuvjnhTemauZo|kvcmdcYnlzjh~hd`lplgvthDrl}o_szsVimrllhlwopvwqg`rgvfkkpkhhghp`brkijiogwgfptukbholaegnfpsvntsvu{tjoNoupwXuh`tbaroctrjalzjhprpthxoq^qqzirp|eyhuprqovv{dlkemuwnr{t\simygilrvrqp|_lsgiimfeimhpwyequlpqj{kf~govuomdwo~pfkbqhumwhtewlsifzrpxkfvZfndqqo{hkiptjzhrisypckrqejcvl|svjfziqflqjivgfrpstulortkptrgsjiytzpxc|onudznZZ~vzfzi]{egrvdvlfd`dfefvf]}mnxhu|XgyiwljpnxhrnzczmmgknkyddqXxatvk`dvSf\tmk{nsleqweYsnjodmmVYcumszkc{alfkv]`orewjluxb\pi`kjTvhjYnkZ\LkmfZijoikvpOx{lvivtqQdneohqr|i]hcoVbzzqjvdirmekoxzsncuhsv]p{bzm[umk}_x{kxypxpgli[q]bavujirhisihls]rjdjrgoclbnsmsuiohYl{vtkrgvmehtWqjfj|^qrnsjx[vmkw`dphmldpgcix}`ntp{zbiubvkm\bomjnjurfqk\xcykmuqgt}idphrstf}ogl}onimrg|vnxveoqpufqkjxinltemsuwhyt^vckqjrpviunjqrgppqpfkdxnxonro{g}|xegljqf|qkrhmotuwcfvnjuldkximxunkqst|h{jiui~uzrjdpjujiqqya}xrxngwxsgwsvngnoxn~mktt{egjuxpf{inqzufio`mpoqjtterqi{wapepo|erqixhmtfm|\{tljy~pyopzijkim}yu}tamo_YjknuvsmlmykYnjqtrlOrrqpszdabm{iguqnygbrr}edlqkhptjvxlh`pmi]pku{fwienp\vxqyrxpvpw{n]x}weubi~rzqwhumnYvjzw\ggyupjrgnsjtluesuoxgopyhka]pki`moae]lxzjboq{rau}vrrvskbnohaw_bynainmtwmjefdkwl|Zfqwjlwj[ducwobr`rgbscyTwe`lxtqyjamahcttx^g^lqcfntsvvhismsnikw{y~iglvvlbhrb[npbcgok|lxlypgihorbs]kZm{kecokc]cb|gdiarxkj`foqnzbctm~zlelua{l}unikko`hgeyoiin}othqcpi_|rnmfighk|vib`suogz]lth|tc@ffqZvpn`kclwe}lmrr_lt|kr{nnigbqhtrqv|ufierxqsjhotzpkqydch`qljnql|fpsqgivkrmobmnqwqvuekqywegqncdt}mdnhbgjajkt|njnjmo{pk}tluquqnfioimdngmmylwkpmx|qqukqywyar`ou[zmoxtigmczooom^Z[Mwgolpzgw]qyTNkceg{qu`k`yY\nr|kgru|pfkwv~tw}dx|eslqrupfgmq~xrxurlke\zst~lzhrdkm`|edwbi}rxmvsellgvwjmtiuqqptmgiisqvvuqy{wtfpkm\ssvsxq~eprdf}wmpm~`sqfmmuecwmkjrr|sjhgsmhUvioagtxhxlunslhkd\gcihcflhziikztjgmxgseojnopwcrrmnojycv\fqwoqvnaxcrsfbmgjsntpqkkpvosjgmqwljuyqhyfknksuvpmpnjlgrjii}rnqitmfmjntsjXorewzcpYtohgpqplpohktjlkmlitwxstpoz_l_totu|ou~icmkgrmn_qxyrf[ormrvkvysnzksunlhhkelm~{tu|vtwzfrrqsrdib{robkjgodlzlztxjkw\ocmjwpPhpncqounoglmhjdomloqqkrxlhdholkdvnr}wnicowtm`zzsau`vl|rs{odibfokdltyxnx^ggus]{__gmlsmezye|weqk||B_wplhWx`[isvhvnr[l^Gw`sjktbqoolrz{eokxl[luptnos]]fqreoMputogZikiybs]|qktwkrqlzOi]lZhpvas`z_ikdtYobmgclwmfWi|esiptkunmo[vfjeodliqq|vkkokmfxs{h`yslyysfvw}|td{kvjvpfbjluuukvxjfdXvyznnhsaci{gdjemigngxkrhwhgajtm{u{mmne_tmamutnjn{{orjbsnh{{jw`o\q`fnbysgzjyetriizcwolzokojrolqhpmnlqktpjpxuvolonlkkbqnxzlvig}iozu~nfjt`whwnxurZ~cv}cgjouXzgvy|ynxnirkh|Sgkhozyjqsxcdv}_ogirupromfxfv{wgswzhrvckkktvf|vidselqq`]vsnpwsfvWfhrtop~dfetdln[qgzsmulnjeg^dou|k]onoppnl|og~lmPgsze|oj~mj|mjuvlkjdpz~ff\izx\|yU~sbjhoSi]{i@[rJ`}sV}ZdSp~%LmxcMp;VlJbGmS"[p0xXfvlXVS`bl]ziZ3gym~|oqswcdl~ftynfcsjSkxsrjyyeqmcllxreu}lm_kkrhkwihvqqlwtcbnuzuda_ilyisi}krlqlip_hhprchlobednpqnjimiqypkpprtxislk^g^ya_pikeultujtlvp]mi|pfvzm_TqgrlrWnrbZnyqzewepnykmntsvivlym_znagfsijeos{Zekbqdwikrnknqlbtnguex]ldhmwadjyygz}nwrpent`j{snxeqr{ieme|tslsO`}smpoilwoorkoqjm|qr|cixrh_o}_wwcjdoiiadtqnojmieqvohrmbfmjkroojvtus|p\ds|p]ypidglncr}oxpjngqqljhjn}novvzphiqkp~`lsviizgoho[k|hl`jfqtskcnpdingdvmkriqlygnqo|nmgmssrsrmvniqqdltvaglagopwzaXsjxvfnaxkirloc_gmhimqnpxusnsjjhdn[dpmhvwdqqfpqdujctntxpjorwco|pugugncmtzhpzujorldsbmepngstxlxx`vkisklmoddoprnmqg~ucptnskkykekqgjojnhfehckjfchkmcoiqkuljmqlpspohomyijxjiinpc^m|hrxrrftluhgojtykhjn~gtdrycozmgiv\iiinqkvsfnikld]gghj|zzr}jliklwirupun_`d`ux_bl`picpecslnkgs{pskjeifuionp_k~uuwzupeor~xzrpszgi|jsixuzqt{kqwovvlyxoqpspllrmqtxwwv|x[nl|qzmnkonilm|kvtoz|xnyuast|tr`~quxqfpuryk{{y|w}u{pyko{nwsfyjhqhmqowg|mjfyr{~hhxlr}ns|qxwyn|spn~kmoprhix\xlm{xvvjles{xnrpo~pcupuxoitodkmrhoo|dvqs|iel}e`xmjsuhph~kllhgqxetqskmftiqmq`zlhqduiccpsfjmmta{zcWpktpujmpx]rwchmvnvhfjqkqplkmq|}limdjqssn|mskdmh`jph|dk{bkgude}n{ttobxg_mwvslbcwxtcj}olvx~lodegfkrvZguhmt}sfsqqwwjms{I}njqlwab\^sslkki^brl`knqvfocam^lMaee_[g{Wxgkvll}}imu|Wma[hz]|Xwnotq]oulpdn_YnvnnseXztglfe}p[v{tcfnmmsdlif_acq]wdxlP]tupTrrijiiowsOp^snovZf}sbsjr_teho_lvau|{`Zkjrujw|elpafuuotgtylmkomiywvqlhrqsvpurvzygnrjptrl{vytoeqvhztrmtlppllnbtmwkmyhkf|]fpolrxe{igokcfnkdovlexof{otqmthscjxsbrqb{djrygjdivcgtjnhoZj|z{utiynbpkrkjktjxill]sokp~|lawmtgonnhvrfkst_wots~ltmmonjqpehkniploxZqtpmqpudfvm`s`twftzl~ne{xpjluzmhlqoquoqrio\wifthndaxxj{orszuiqxqkam]aknzqgfgerqhpax|ehkqemxpopsn\kgsvh`lzupiQqkplgqt_naqkmlmumxqojqojouovhfgmutvwqixhdlstnqknpvgzimzowjnswloniubbprpkpiwzglqintupnqqiigoncqlqpmynuunnxhisv`kpkopwkykkm}uluopp|ktri_oumnlqzoekexdynvgks|joifrpprqdq{fdfqjsklowbptlw}hppdruu`nuqgpTtvqkyodkodtuhmnyoruyzomp{hkucmekxnpblyn\rxnaeYbtaZrqpysgjd_gfbftx|\mVldn_|aro|htesJ~phmwhOZhuqg{sZhi]immolvjqwZpou~uRpnp<_\iyTceskwrperherytPWqjfwtn{ne|ctohurss`gvuVriulbsdirfqRr|skzv^r]||m[moosfvozvw~dx_cqrvmtd_alouvhkmkfhjzquwxwhqwerivlvyfkdxjzjrwyl{j^kepssgnbv~owcmfmhsess_l~~\momcpkvrpxkgr{p}c`s^`lpfiajnfadlkre_hiuplkpussgo~a|aii|kxp[WSr|mqilsqudznrzfmak^jkpfrbmwopsslmmzjcfxqptufilofuvlqwtnomzzp]k{lwjvvmwhhoppqkmo|ksrjg}nitpntkhklmqphr_susrwvmdkuz{or|rdcfmsilknplljom_med{kxkvhlmwkupmhfzlgxph`jbrttrpjzvdpkinqcqtl|v_frhwo~_pmwkosrjjkqkurb{s`nt|mjhgsqcwrutnp}yr`skbjx^hm{namtxspgvu~zmujttfcxl`sueoq[py_heijyhjlmvqo|zkuwgytwhmhlwjj\sicjhdd^uh_ejlhouhirgohskqknqmxuxfk|omwiwomouh__sminrokqrz^euwllogzmqftbdk|i^l~b|icy{gnrumqlxshqmctorwzlqjZscketfftrhmoo|jbpubykwljhlhRy_t{fv|iwy}fbkqmljxjalzenv{nhusiutqtqmhlnqvgobndvbx}kosziqf`qj~bpxhaxzogvkgqro~}miqxvwppofwWq}qkfpbormjdvfpnq{}koun`svg{mnrcesbhdhvfjqWasnjnfqsnattiwqiehyXmjghpmtm|vpmfxr}{]Y{\onlfiuq|kjp{o^yz|eorfzprt}\k{hemurtisqhpsu`jkgadyff`Vibnkw|bgouoxhympf{jmmrfo}pzmnklxp}sqfV|Nwn~cor[mnr{f`jxuswr}fg~xwu_uu|xzxshytxacuasqYxxxpqmmocutnpmq`pmnmhbcs{wgej]pp^dmksdYTq^booju}tkrkpqgjqznnvpwrudjjfsm_nu_|a`jikpchwlpi}wqfpenydipbkqp{|rrtx]dmZetlgjekom`_rhnh|`rUwtlhvpcukpninqmmnaej\lfdsqjoijhlqff}ooq|nsqaicisfl{qqengxcygifhdq|`sspkgf`Qrmpmmzqsv_uxmbxkikqPqrvbloi|wuyqcxpmnq\isvkpepxrhZV]wwb]qc|xuqtcstjmqh^n}ms~vih~vhnncftkx}adnzfpx_fliwywkyqpmqsvfjrsoakgsp}gvmfdihvpscsllhgkkw]lhilwvoqzsokpmifnh~hfdTy]goxztyo[eknllfxUfkRkyZ{joWrXYuh\vjja~]r~`zmZ\l>fpvfmt\VursrnXqx{Ykjdpjoykaoi_k]ce[qopuqgimcjY\yJfpi~j{ljdstixOiu\dZanZiUVLo:r7g\~nnovtz{v_fmZwpg}jgosgdjbZopkfiufmmp^ljaZ]gxq^e}fnhti[pdbi_vwfgzhcniypdQppZx^dqlz}nyixtuxWx[nYbkVbk\Zqnhvk`sgsjYiz}nq}afmoyyayqmptrblbqdXc]xtfjUqgepkvfck|`dchqlrfy^egrleyk~Iqksdd|mn|`nnjin\ntf^uliek^~mugdmsqYng_omd|m~l]nmdm_eecn{nXozk]rhfnsix]{ilhUjhnbnsxcli_t{|xj}qvvhalqspvn|onld]fcrcoxkyjjjmpkligpiojfohpw}uYeqermulkwcmmvkanofmapuvz]nq_gw~xu{nqipmwghridpblupsliyehwjj}zb\njfxcgjm\pnvgshiperpii}yq][wgkYwqlcjjkZstbl`incedr_rjqus`llhYsoapjdkjuqUmhj}nwwafsrymu{j{t`vkzegzlerybqtito|fxhowmikmceoopkgbwtngwjzezwqhcpynXzliq}kpXgi\oQUcsl^nfvziidfdyhnrssjhmgcmeldirrpsh{nfotmfhqotn_rh}mmubhsunoneoyrhjmfwiZqstzyxfhknfcloensvb]gtqvnlrmk~qfommeue}xsmfovapzbj|puerbmfllighutetrgm{gtopo{pqqokiz_onmvjsggxgswvp^mesi^rgz|lpbs{tbhvccmu~^nlqslpgnveovqqvrommh~Y\kocw|obnlpskprcpZkop`emj|c{gcuanrkcspse}f|jjrpmfqozqqodxuu_k[yipibhwpoioforsv]wip}v\wlfmlkxuns|_vkfowi``jjfvxxyvgaprkg_p|pqq~]mufxmrulwebrldozelpwamad`o|ojqmapl_jjcf||fpXcopokqhco`ltuh`qgmezihqqYoj`kh~rsyTptxin{vinz}m\owuglfcfi}hgeuplfk`rsy^Yy|bsl_nVf|zrsynkwwgY\ah~ygi\jqfi~kcyuoXwtktcmjxrg|enpijsgto^akosfmvgsqjnuzrrbqjhwrqwRopnn~hxn\vlqviwfigawowflpiiwj]^QhuRidba|bp]pd}sn\tncklycx}rr}kxY}yu>z{~vzw_tto^xdxqTw|lt\xxwck\`Hdlitipords^[gcqeqwx\mario\tpfvjsjpvn{vwh`pn[vbdvgilwcJ]ny[fzoyqjhy|pt~dds`u^qiijwXppleiturok_pphoav`akpnilvj}mngnssiktiquggoo]|bs`moyoovj^wpefjsouluqkjlhgvzujpzudrfyysdrifblhytqougqr|ks}ojYjh`tkrZsiuvpgqfuhp]osouiwptjPmf{jltmmqaynmzmnjuqmhhxyrnvlqwzoitdrx|bs|zpxttl|pyqglnrfvfmrzok`znyxmzoxhjtdpxhgijj~egmwz{^kfey|srtdgkjmevlom]r|hrjnvn_xkisljviZunrh`o_spPrwmpr|sn|z`zjlnlppnkcsoqxwkwsw_kqjwxntxssnlkvkg|sk}Rl|juhztpd]ol`ogtosijwumykttndketpithZhroqtvkrjw^gi~lfjrvfmry^dv[prvyXsqrhocopf]f]~vkrpudzjjnss{nzwtn^vftz_ncz}vrrurpivjuuwrxj|hmnoX~ey]j{pjmnivta\qcqdvm_qkujg_jeQ~hhgegXsqyF{gk^rkgkaqpkj_}tmuekh`xsrmhldtv\ojhkkotckuryv~Zj[vlkoppnhmmpstyhtuo`ewpe\cw}dp~wrskaXlnmomya^hcrfsewnsffksstt_wda`neioer}vZjn{t]sqtpvtgdfni`bhyhmwgjhuwdqufrqjjyrj\llZbeugfRsmmhrlgyuliimkszh[Tmigtujx|}dseyhjubjikrmwnr`sfu`_fmmZV{hyf]lvt_y{ojivj}lurbspqrkdjsekonmcskgvWrpolrXdjplcmYtkiwigdkWkhr_mtthvdsgkjcpjwrhfeebbx`{gs~n|rdjhkqujjv{vlgmndekuyrbiuld^`ybym~ip`~ibtjo]]mdfqsqiqofnztces[nprwnndwlapen^oqzqnlrv_~x~ekoq~e{oonyrk}jngqmkgutchessnnsctjvtymfj^cntkgcfxpgrlnjrhgcmoxktsldgjiminkhl[eenfwqhp`qefe|unpyxmoffgitikrhnsdphppszfaw^lrjwtpkpjc{bn~mvvwqq}^ilrrnnwnnvangpujeicqjkrb?dp^]\erwhwpgVwmtqyrpvgVnthfiy|gqrvxOzumaoPCghrkdfx}N]molrjy`ge|bqdf}V^mZxpftz`kgZv]h\\yjshjvzf{]\\psuNfbv|k`|pl|dcsmyg^itxdk`a[jfxYbx}ouybfvk~nNchdTznkihptbbsjq}[gwwajocbpiomcn}\vpcuul]bwn]ge{ikRreedrlc`ajmsnt[bYxi|t}cWj^kau_zffpmehj~llRhikmg|l{~jz|obvwldy{~n}myrgwjgpaoojiyfSpqvs^|mlsfowxgxkr{p}qcgrduyfosqZtlpayra{mpppjkoehhdozvopoqclomqesp^n^qojky|ifqktil|eqkiok`vr[oulbQsmlwkslktkfj\psthlmgnckgpnpSr]oasnhPlrjvztvrwf^vnkps\ji~vsror]srlmhy~paqmm}[lsoayhe\ghzdr_jhk\o{limrsysj~hpv{ww`kkv|~ikwmojxtkU|[shocitgmdJms|qq~cjqr\pkmux{r^\rqrxcs^s`mmvqnswsoXqhvu|qqhjm_`nylppsml}f`R\lve|u|~vhfnrqhUozopq{`tfmWvwqsohhsbjpguudrvtw`hpuiqmnuf_g{mhyezrkbl}opkwfpivrv`kcnqms]nklajhkqjfmpnrxlvqipntluefxgoshn`xplhjiff{frwb{bweolttypvmWrzkhmouwg{p}sotwpmf{jhi~rmnfwaf|gnjkaumfjcuj}qsmxeh{si|gk}n_k|hhlgmlbekxzxmijexyjuelruzz}vonriujgktmxszq{l`gy^`nvfrptz`t{entjhxrsyxk}lnZx~mrhwyejYvnvmdlaperp`}\eleot{attilo|vmpwqoespldc\ozrPbywq\`frlkvmnjczillv{mvodmqjquivl\}k}qw|dxinytr^optqoln{kocoktmv~m`pqnrsnjtUsuld~jnnmmkesggity}wldlywou`_odoeklushjvpqop`lvltl}qtofgu~hmysp|kqwemz`mpwpifbfyosed_bZvgnwwznp\pjihglppqgdxfn}tfsssqnkwtmhiqvnlplswre^dqhwxgzj{~nyjjembtfzg|hq}bpwZmcxakuckxvtt{div}ppmnrqpmkv_lqb}cxysxgrc}x_vbe_lg}bxkvmqiv[jlkohkwqg{|qTjtrf}gd{lZshUycZmwgzm|ekbdksg|eluh}eloli|i`upijiSvfsSolohukjqovqfrq|iakpwprpkbgfxolOivmeyclrw]`inzjSklgkmi`lqzwRn|osjhjmhrui{foicthiftulxndjew}m_Xeh|Nxyafpppgnkm|inlgitZrqjH`rhlmnQqziptY_zgwbgojy}knfg|dgx|mz\q^ohinlkIqlhuoazdhpMY\_tmrhaazYudXlg~vkdh_ffu|bnkb~{ud[tsm}ixlhXzhpulpnp}djepYzVrjld]wwotWdv\wm}iyiwnwZNr\uiwR{corug}fnnikcip|t^^xoos~ywkithuiveqV`hxuja\j[fvzm{Dyrcphfwcn_obr~Ppmtj^[kt_d~rRskSjef]qshfuxmleb_sbon|g}sqyh]b{nedpyYwKdur_jbXjlrqow~ur[yfYfh|liwczt;Xrrgw_xlk`somVcpfrtTg|fw/ppbvvL|Iql_qetr~^mwxq[Qyidufd``ru~S{gflybctf_Zxbpchm~iCvg_mv^gc}cSoqolmVpi|[jaylbvpo\l}Cgjln\}qjyhlsyttSpqhriilqFltvmqh}lgjj|obmr[nydftajvhnewsomijqptuhniugnsnphsu_olfom`Rks|aozlbnmpw}pulo|fp{dplejkkkv{`s}j{ltngwtzkpppyftgumbsclnkl|p\trny~ssbu^Hpuoirpqczqiovdjr|`kwa|ninumjqlgvcvqnukpglimzk^nirctjiny_s_y~ssubmnkp_hvxkjnu~dcxhen_Zib{gbji^gyweykhrp_uoqotmTtikdj}nkhpktedu}iaxeo}lwh{nnmmlhbmgq{uu_hvxpojxOgskpzjdlsyaoqqcrkr[[nkipbgebn_dqrgxpzrq|nrmrpzhifm]rivowgdycu\gxesXl^ekllg_rkzgiush}^`vrwsokn]wm[w{tYztijxudgunjatmuzkimgzfo}}jnozf7pbkep\lo^ygfkmxki~pk}^hcnygtlljgykvmmyzf|jrysvkbokWeUgpcdlicp^hoomqwpyqmzyogqftfscjskizvnvyovjvryyrr|ot~yzvvv{zyyyyz}z}tuq|u~zxw}uvwwlxlvtozz~evqt|i~wn~olpwzo{ys}tswowsxe}~~uzyrjrtbqmwns]zu|p{w{w}{sz|r{uuuvr}jwyvqush|~zy~uqyx{zw{nv|pty}yx~lxtztxtvw}yk}|su}|xrzrzvzrr}~pw|}v{z~zt|uv~yntwwl{|ty|txzzyr{huumxsswwttxtt|zxm~r~w}qpvxutx~s|}qw}|rnzvyvxtwtottt|}~}qn~wsp}tvq~rszyyyv~wsy~z}ywvruv}yn}r{|}dx~}|pyv{qr|xuutwmyv|v{|{~{{{nx|ypy{zuw}yrzrmyspieuw~z|w{{u|ww~xqssqs}d{hl}sv}|~}~ym~h}mlsvmrsPxtyim|uofwhqvnlq{ppmxywjxqrnuzy~fx|jyoqpzu{yqyr~Wmw}{vfNvi|poh|tu{{zs{x|zw]|q{}{qwukyj~`lozvb~xwunpuu{}~qvuuvuw~~k`gs}z|kqwt|ktzxytt}qlt{gqztrwi|~pyjppzrt~v|nv}jgeqxrn{u|j{wrr|y{pkfy`{t|s}rwutmpnyv}sy~ovhlvlrw{rx{ysp~w~n~t{nqpxry}q{ntwpp}p|vw{pi}|t}gjnzzgzwy{vw}z~{smxx{oqcvp}xyrP}y|tg~zszjxxyitqz|}~vtlw~zts}qx~stuss}vsh{wyqiu}v~utul{}shc~vwx{{xzh}|nzwqt|}r}jkxx|p}t{vo|uw||}ymx{kxvtu}y}yw|}zz|vps{ww~{w|w}}{}qvtv}|}vvivqw~}|{|ysgyy}yrnlqsv~~wsvtylz{{opq~{|z~xm{{|qtuux}zayfyxxtqny{~rxvxvxy}t|zwpr}u~wqsvqy`ru{enhqwpyhswhsp~tk{u}s~nqztsoasvz}}w{qzvw}s}|xy~w{klgq{{atYtrmpy~~j~t~q~{t|mo|z{ww~om|xz{lx~yvu~xw{nvzyut{yvqotkxj}ur}|yroyqs}syy~||t|ros|{|z{}ohwxw}qsvo}}|lww{ty~i~vz}pvo{m{v~rxupvz{}~y}{zwxv|~x`xwqxxz|pryxsxq{hmg~slurvt|xfpzwzy|{br_xP|}yyvzcyrmwky[qzk{^tlwnpx}~ywrrvvmqnrqz|rqxwiypywdwm}}}kttvX}uoh}xzthamwpulwm|fzv~pvpwxsngv|{vvj}yoc~g{txxmwxlslr}\Mzipuytkov}{vlqYixk|ztxist}{_r[t}v|]w|z\voxsgqff}ewpw}lotwhuevxozzz~{ylnxmrtwfzprwnv{yhznq~k}x}{kkzgtvuyxvxtIexgv{r}rr{uu}zutct{s{}j}ixztwx|yrtpxmuk~px}{oz~pqwurzs|~ytrx}jrnvk|}|rr}uzlizumtqzszvzkrmb{~w{q~sux}{xdy~wvfxwvmsklw{ysu|ss~w{}mw|vx}uvs}{pvssmtxvmmw}w~~~m|fyw|zwyyw}w|}pqtvw~yzqxl~|z{vtr}}}xso}~srrt||}z{{}{ylvszxw}wkxnk{|{wwyule{rwsqtx~txwytqtx}w}xv|we}yzks{|}nyty~|uv{}{n{tqsvv|}yofkw|t~wzvxxux}|xrt}xyt|su~r}~yi|wwszu~s}ywx}s}fxlqm}whwqr}{yyxn|qt}z||wy{|wwo{tzpuv{{}szms~}cwzyz}|xs}ztuwFouvsszl{u~r|z{xuzz~xw}yxw~quxu|~{~oyv}|}y}w|w||v~}}}uom}zj}}|y~~gx~|sy|t~t}xr}vp{zxtu{mx}t|sruzxz||w}uq|wxwy{{qwuxqlyuw~{sr{zyruwzynwykxz}xzs|~z{}{v~}s|y~y{z{rzqyotwqlywo}|rzyrpxwyz~||uyn~vs{ywr{~|wuzz{sttutu|yw{ml}lnr{wx{zrworx|{{|v{|yx{t{{zzmu|xxx{rzuws}j{wrzuyzzwwssyt~{{xps~}vvyqxu|{wzn~ox{vwzwx|rv}quvovzx{nztxy}~swytvv~~tw~txq~xtuyzxsxzozv~vu~nzur{vysvrr{kuvr{py~}sv|srlwot|{n|rsyxozvtyt|~vt~~svq}}utzt~vpzntxnum~qutqojpl{{pz{~q}}ku{y|y{|x}xuwt{iprpll~u|xvwumdixssovw~y~rtksrk{_zqyouvvxnz|vvtw~z~vnzzs~t}|ptkkrlf{mxzmv}wvszyzrtxy}~}sr}vw{}ztpxuyukyspztmk|px}~q{ppuvz{jwiyqrxtaumqeyftj{adu{{zmuyw|aye}oqojut}yyykozxpts|z{psx}yvuwlcxyt{v_ov{phz{iustom}txy{ymwe|r\rx|moz}woitrmkvp~x{jvyyyuyswwwxv~upkkztzujpu{rkovstjvur{r}zw}}}m}lrzuzzruxqrxsx~qkoa~vesvowpq{xr{srztxxwt||uxq~w}x{}yzzvr}srw|mwr{{syp\zrzrtlpsc|s{xyozZyvNnjfuluUojjys|{gvp4UgqlVjye}~|w{oxhzv}Ai{j}ocrm\w{kw{{zl~kpPyunuvocrTrh{qrysIlll||}|x}~u{ep~kt~yrruw|wulFjgqs~rvrs~{wuzwunwzs|tzntt|xv}w{s~|{xu|s}mvnasz{uvxvizryuy{~rkmxsqk}seqoy_wvz{~{{pvxs}sxu}qL{sw~xtuxlzU{twnj\kwmuquixsy}u}~{ozps{q}pqrw|zrsun}stwwe~w|~x~yxvwuxuiwntryvyrww~pww{~quozvq}ypuqvn|ovpxwvqy}|ixrrzvw~msykqwntx{px~xlytr{aszpswr}{u|qnxx~qwv{yuz{gmxv|yxy{q}xr|vku{y}txs~ruilssyrswxwx}zovyy{ysyrurxmxyxwyoqxlbsqrtzsuoxekyy}vt}vqbpynirogpyvmtmptxxȌnzt{xz~Qyexxt~gt|n_owrnuznTs{yxtpvpmr|~ttzw{pseyqqr{q~~zlru{xqsu|{|l|zmqvt|yut|totxy~rwwxomuoz{zsqlgwwu}un}~vfsy{lwp|xxpfox|pxys|jzmq~gt}u{yqnx||h}iul{n}xv~zkxs|zzs|xw||{yukwt|sr~e|~|wzyl}t|t}y~n~ryx|}}zvqwyr^v|szzpd}lkyp~qoslnrgtpuvvr}jzxy~vpxq}uusxtsqsopktusvrkwrty|oq{txtqviqsxxvzx~vwz}uuwkjwtww|vlqpvyy~|yws}s~~{yx{}vxlu|uyyst}psytu{pswu|nukzymzzr|~p|{suwpxz{|sqw~voszxz~wsj}zxvl{mxthoqvtu{xht~~u`pp~suxqk~ytzrkus{w~yrzz|unw~wty|x|i{}w{t}swx|uumx~h|rsmguzwlvwy}~^vrywxq}jqt|mh{ntrsww|tzxr~xv{qrzez|xsswflspj~z}vqsvl||qiswwkms}w}{{s~vuhpo|uw}|plxZwv|nrsmz}qu|svz|y{u~~lo{t~utyxvutu{wvupuxvww{t{zrydtzrx|yutvxx|uwwuvx}urx|{yvwwpwuwyz~j}t|ur{xy|ytz}yqs}u{{xuntzsrrzww|z~uru~uy}}ouyu|sxtz}uwy|y{}kvqyw~q~q}xw|nyyz|uww{{w{xzo}n}zuwtnu~rxptoqq~wvw}}y{wj|y~wzu|yoyrqwsyw|z{yyzpswzxy~qvt{zxx{rpxwnjyxkquu{ssr|{k~~yrzpz|rn|yzyy|zr}}x}vjr{ust{~swn~w|y}y~wnuyps}}vyj_vx}xou~v}s{|r|}z^|m}r~eq{xyvt||kwl{xyxw}{x|zvsftxs^tw{|up}xsl~qtgiskpt|tn}}r||uouss{pqwhqzzsuuy~~}}vuxxuz{wuzyun|ynw~xlu{stoqzvnt~xtz|zwqb~{sw|sxvl~{qtu|lvr|m]{{trou|nvv|ys~|sr~q~mys{z|xwpwynuv}uvrpgwwrlo|p{{omw}{tsdoyhvxs|sstwtu|{vsysy{oyuy{zt{}y{wopot|y}|vr|xlbnmkhyvt|}vnsukipknpj}v{|p~uxxyvzt|qczusevtyme|rnxxvwspyfwwrs|x|vqd~rwnxh~o|hs~WprxUspe}Sw}p{{|oryfvttiw|xxrkgyszvhw|f}tnmr{ysvrmzfi|ryst~r\d{typw|zrrp|~m|u|s~u}syt{pn~zmzxlipryw|~}`ompzlxomkq{qxauW~vw~k|qrxvb~yyuv{p~viZwurx}yjrtqus}xo{rt}{v}nn|oyqpw|tu}wqnrlt}wssqmpo|{{tjq}vtr{iaonqh|qxdjt|yzlji}yxpuswhyq{o|spryqxdyxzj{w}plicdx~uxlrzyj|u{ynuxvupvxmxratityww}gdj|wwk||}zwawo|pnqt{nrz~uuyvxw{utr|xvw|rwy|wpq|rv}{{wu}|xvsfx{n~xtpm|sp{z|xonx|wx{xruy}xyu}|zpqw{uw~}m||zzsuwk{x{y|rxt|{trqxz{pvwzzs~trp|vk}qxpo}uv{{ur}m|ytc}z}wp}sy}xtzpv}y~u|}~zlq}w}qushyl{y~{spl|vputzq~~yj{wr~z}|}xv{zuxstpvrqrz}ks{tu|{rtxusnw~ztpwom|pg}zonwszy{vpr}}{~pvzr|o}dwyxsslyzyuv{t~xpsyyns}||{w{r{lstqy~}~rqvywwkp}qq{qv~xsp}zt|{tjvzowrtwvtko|rvjowv}}s}tyuyqrtxzrv|y|s~rrs|gvmzrzxyw~t|zukzouvXov|zdr}gu}fus{iqeQv{srQvzestwu~_w}vw}u|ty{jl{u~}ztts{swl{oiqlu}ymtw|~nxxirxuk~}yqhlttrju~p}}hzpts||_|u_nier{or~~cw}uoscqnrp{tr~zwxq~q|{oy{xwy~{xuqf{yr}ys{kuvsotnx{|ym{|pty|qm|tuy}nr~|yv~p~stws}vxq{l~yylqvw|wor{yx~tsxyvs~vtwprowlsrng}uzxgs~mxqy{wx{~v~xyjzmrmrS|{{|urvunvz}{n}zs}}u|sotxzsxpzx{|t{ywr~sw~z{|{{|u{p}s~}wqvxvxxyzxwvx|vf}yos|sp~er}w|vwxxs|r~wwkmp|{r{zuvvzq~||vsr{wrwmz~qtwx~w|znrr~qwv{|xwlusklyymzxyx|t{znvrqv}k}sgzx~xzms|v|oj|lfsxfqcxtyurrkj|vmox}u}xqwxpg|xgswurxrjyyu{xqwy~qnwqxj|szt|uxrwzyyzvypsqzwwjznot|wpzoo~tqyqer{zsnsupwy{wgvtq{rmq{|_z{|xy~y{wuV|ty~~w}wvwwy~{u}~yt}s{~mgvq|ezuutzosswzkzwsv~hfvvvytxspzto}w|zx|b~jpxzv{zszsx{|v{ju{ulw|t}{zr|y|x~yw}wrtu{|l~t}{|}vgsviy}{zx||zxmy}|juqv{~z|zwu}wsz~{|x{{|yrmwsvrux{y}zwstpfsmuqx~xz{ysyn|no|t}wpoq{pe~x~}ttix}w|}|q~~y||vzqu}vuvywwywrvw~m}{x||qwnywypzqw{yrx}n}{xuwmyvqy}rvxv{yrtl|txsyv{xy}t}ru|zvyyx}}sqruvm}uuxo~sw{|szv}pzzyj|w{tpz{|zzuuztnyvqwswzrzwtz|{}xwy~vlzyxxw|pUwwvTyOxr|r{^mu~_~{qtokyqYzq{vuZaV]zvmp}[haxfn~pwh{tQf{x|yz}nf\m~~sbyqnxvlqvnhzirewrn}~d{lobfto{{fz}xxsuripi}|Zvnrd;jjxmzuglu{}o{}|xh{rhw~p~|sw~qsuuuln|xw~x{znpue~mqgvuqyiqrv~|kkuw}su~nRxZkitp|szqoutishkpltg{|i{~aj}pu}Xus{r}{lp\syz}zg{rwlx{^{hr|vxjex{zgyto{~wchwy{wRyudv~{mz||osy{xot~u~nxx{~iz~|f{qjn}r|hsxv~sg|zmezuxz|zht{yz}m{yxytyyw{}pvvy}~~nzoww{}t|~plow{x|wltw~|}w{{l}sq{~ytl{h{yzsmzvnw}~ptyyowxzrp~|w}xvvttxw}z|rztruys}rsztyp{v}vx{txruqsojwu|o}~uxz{phttqum{~v{x~xw{|zwxws~zt}uxsr|}|s{|mmry~|tozysyy{~xyu{vx|shzsu~usisto|o|vrstzvvosyxop}~qw{~xouz|ypt{t|ztsn~|i|vlxyxq|~~}xz~z}zvvv~xr|~ssvwq}vr}}zssu{yzznquwt|xyqsx|ttz}w}vx~kj~xxy{vwv~}w}}x{|nt{hyzvrzzqzw|gqu~qtrlttvtdtvtuftpottrvxvuowurtzqtuydyncqwrokxypu{{zsumve]|xzuvkv|rxonvsslrrl}wdg~mvtvrynupyxtvzqxtwtlzwv~}uskzumzxmftuml|{is~x~|qwpgw~nlpsOulx|k|nyos|e}nswyrz{xa}pyp}qzjkw{do}cufmml|qxt~s|qttsxxptnjkvomtq{ywmytuz{{qwprkh{pmrr|vkvxrusu{k}p||vmuuwqxv|xu[|yxqYklvzw{{pjt{pxwt}yxqtu{ph|}ru}{nsxynur|zlz~nlsoyzu~~xuzovfvzplz{}tnwlut_ws~zwxxw{~dxzfpwzu{pxmu}zxosm~ont|{k|r}t{utvzo~vvfzswvyzpuxyxyolhjv}u{v|s~wustzwmswx~vw}rtrduxht||xtxy|v{vw{vtr{eytw~z|x}ysnv}vy{{tv}syssu}sxuvrpnvs~{j{n{yuzxpxxzzzrt|v|pusy||{w}|ttz}~{zpvx|ztsvxyp}rv|snk|{}zv{sqklm}q|sqzzoxqwxt~q{h~wh{rtnrevjhp}xxlvktyxfq{oqw|u}csn{nf{w~~oouspnotyrvxqn}kj{ko|vlus|~rw{vztxqwtrgyv}y}so{z}uou{gosptxtjyluwmqmy{{|~tu~}i~z{Z|wsx|uvvVvhu|~gv{|quu}|r~rts}}p~}znoobvy{kpvv{s{|qnu{zgiv^yyqx{yxv~vsqvv}qx{y{~yq}unxtpvzvuqx~rtu{~|mrvxpzr}xym|mzsn}{vy}|ujvvplou{z{wysu|||t|~~yzfi|wp}zqxxs~w}riowuwuq}t~{vnyx|~qtwyosmz~x|}~s~~xzvo~||y|~y{|uyn}}}zpu||~tq{{szz}vsq}k}}nyxtpzr}YUtyip|tooprf{|xroxzu|k{{xtv}n|yyrqr`pi}st{o~xwym|z}xzuu{~|}wz{her{uh~oupv|{zr{h}wtwxowpv~yspx|zsvm{xiywwpotvtvvxj~qlvgrbph{}yza|scs}{nlsor~pyr|qsd|^pxlVogax~~fxHzukf|}Yv^grqm{}rtazgtwnx~yI|q}}\uh{nyqoq}lwpujypwpmvtr{wfjq~xRe{}lp~usnu{zl~fssz|xquxx}ruhpp|zv{zw{ulzpnbwvvvivup{ypxry|ye\pxwuyv}zqmlmypsv~}uyvitz}|ovo|zvzu{uu~opzjq~uqvzr}}ux{zzv|m~|y~}tspvsq~xvyuzs|qs}asbkuur{}txwwwyqvtgvuezdt{uox`zvy|yzlulmwxw}txtj~r~swxx|{sy~nkyxwz{|nww}v|synz}q|xt}vx|wrrsft{zsz{shyjup\zozkxpsotwzxzyu~}|vwtwnbvp}sk}xzvy|pZxZyy~v|rvoxqyns{{s~wzsmm~gbl{~fwz{}vsp}~vvkxxt{sd|cyts|}y{tn}~vsjgt|zpu~uz{{ws|p|gn{{~vy|rxwxtu{t|zuhvvvtfzr{{{w|rrs{\}jynmz~rgr}s{tr{mvyznyvy~u}|wo|}vn|ypwrwi|}ujj}vm|wr~{|wtkeyutr|v|jf~q}tyv{sqlj~p|z|ny|{hu{vzywo~msd{w{n`~ooo~uzltv}npzjtt{r{nwww~vtgzuuulwmq{}wvysw}uyt|ruyy}{|{sx|tv~twzunstunvvlzrnwwtuwr~sx{zwx}ritvoutmt~~q~rtttyu{{xy}wx||zuyp{i}rvjyv{rp}~wpv{rk~x}t~yyxw|rz{wSxvxkxxeyu{~trqhwpsesxutx|~xsz{suxrqr{ht{mwyxwouysyqtuwml|z}wM~|vtpv~thvq}vpv|vt{|a{qv~s}mtcrt~{x{xkxxvvxtk{}zvnroxzot{ozuvxuny}j{~u|wu~q{pzwvutv{cyk~or~ouqjqsnumowfwmp~wpnuft{oq_muw~\bksrsqn|}buhlz|}qpx~kuppyv[~opskyxmq|knxysvxqoz{xrpxmhu~^unk~ufnwuw}ss}vzoy}nzug|mtupuqynzsuyqislszmydxdq|hxvut~ndl}rl`|vpws~pfbcll^su`be{kwn{q}hsnps{cymvttWv{vlf~|wnpnl|~ovt}szzfUnucpqfwryutwv|bqgqekxk~wtnuu}~tsv\fz}unnrs|u|murgv}wknzyjubYxmX}z}}~ut|nypsvkjilpxnisouyW|~mlQ|jn{}~~z|xn~wuu}tepnuzrpmfxvrw|o}wp~kyulyagk|so^rk}~~mirdxqmfwvz{rvNq}oztzeq|W{\n_hlcvMhpvlx~v{~j~ljt|npmoQG}y{pmo}h|zwsuxou|lztx}w{|lztxd}|QvZzvxtq}lwzywnguvu{pakuzxywtywfywxvxyxxptotd{|{~{wywiq}rnw|x~qvpypcwsuQphztvpjqynsxmqz~xrjg|z~mwtqrzq|tvqy{uwyyd{{|tykrnxyy{bnrza{v{qoizxtxyqvnxcomyuytzsx~up|o{to|x{vytluz}wyzwq}|sw{{yqrxzxtuuzg|{wsll[yyv}}phtmw{X|quyqYxrvq{||vu|nxox|mtu~kv{t{qu{uilxtmr~zyt|xv{svfz|zf|qtzw|w{~{qz{zw{{ss~t^{tvwpxqyy|r{vw}yspvwt{l{}ksqwr~|neyrx|tlwst~qksgp|}s}trx|rlzxwonz~x}yuxnywp~sw|}r|qz}|ywx~s|yslwypwtukr~xpsryrq}wq~}gjimU|{zr{zkyz|~sszyre[v~|wwzpaw_jyqvh|vvxodwkx|}ttuvvtsxuuvl`~ouz{y^o~|mk~unl{ysqWvotx{ntwnz\pwppdvnpxgsvzdpmsz]yn{ys~usy|mn~vcj\xrpz}a{zcv~mu|gljwz[npqcz{anwfmw~H_ye}|szfs~nxxrv}twxamw~jqy\^rztd~|q}v|mgr~uytl~tvx|w}vpqzxv}y|~ckztk|k}owqpwtizlq|k~czowsxpnyolvx{wqss{ry~^}kx}~{zr{~vu}w|w~mtjvxzux`quxtsq||ysx|tqxfz}u~w|qjy~t~vbet|Wusytunphvxv{ut}mozz}ywnyxtis{|vpYsvzknxwzc|z}srTzlll~z}vadrvi|n|ktlkk\lzshovzM{~}ugsrzkx|jnzmvxqxvtjlysu}|fg~|gtngqbj~}~hs{|}qs~wsnwy|rqt{rvs|xtwezgxmvowvusj}{r{x|}op`y}xyz}}zWuw^mzz|p{s~~usrtrpq{u[us|gZ|vyk}zy{bnsvvtmxy{wxyy{~y~}w{ry|~j{at}~zlrMdyxx{~wfqpyz~zcopj[cxw~bzopsv~mzp~o]~yicdyw|uYzfmx|{symwl|q|zx|sh~reytqygom~q~{|xowutxmxv|{wze|oy{ytupl~kmuwd}frxq\x}ormt|qqmiXny|hj]|wr}vzxivZ}XqrNqu{mpqevW|tYk{z]slrR|{{Wwtu}_^{nfguyozro~xaJe|{potu{zjnoqxzwn^}tWxq^rpddnvqu|`vvx~qxpmpwu|}|uuu^H{~v}yrsvcoqipqtmfzxo{|}|wmfjYz`}w~nsdky~wOy{~yu|Wwwotjqtu}ruz}\`r~Lj}|mzpxpowu~qw{jlrrxtro{wk{{jzz}|~uxzw`x{zyrzxfuydrqjtfbqz}|vqwlwsssqkb|wti[p|kyZrq~mtnruzws~wwRwy~pxxtxiwezoukxuxnx{yv||ox]vg{|k~|}mx~qxajxz|rxvt}j|wkuhlshujp~kwpgx`_ysxjs}n~}vx~rlfjsnv}y~yxmqsor|d}iy}^x~rufnrtukwtqtnbxu{iyctzpvdi~uruvywzrq|zy|rh{~}{xr}a{xuqczvo|x~v|xgvzx~ktyu~z|uvyyxvrox}pwtt{y|uyn}qzcttvxwxqwnrxmuzq~yo|wyqlpqnowyjy|tsnwyvnmqvzx|~}|uroo|uz|mrw||y||yqywptztu||t{w|xro|}zpmoosvvoso}q~u~}t{fq}tq~jxsqtr|rwwywoy}uxxvtwyzoyuvu~~wmvqkt}wu|~u{ly~w|xmrs{x~xwpu{|q~u|lzy}z|u|qy|}nron~vwqxu|wytxxwzxsyvewozu~z|nnuqxu{~ltx|w}}z{x|}p|o{uu{ywiwyrwwp}nyts|{osy|uotvx}||{zt~qwuhqwjmyrsww}vy|{{~qv{wosy{}sryy~vyu|tut~ux~r|~o{xuvsuwrpnxxyvyuor{vr~xcuzrohqy}wvn~{wrtrm{xpry|uwyvmw{zqy|n}rotqxpmnruwsrx{uZouj^h||{hyys}}wtj}_zz}`]pshgr}uvs|sx|s~yDrxmu{syspmv|tsq~ytvdz|ur}fyt{zmy{}vuzxq}yt{k{q}xtuuv{ytwtn{rzyxz{}{{n{gstxxrjzrt}{nlrstuq|xposp{wsu~qvyz_|}{}Yrsurrnn}~x~s|u{}}iqywsnu~g{z\~uwwxbnx|xx|vxWwew}hk~xpvn|d~{}q}Zv{ycnz{`ujtywsqx||~{wwu{dtw}wywpfo_pqx|zk{wtnx{wztsp_xxaxguZtrmwmujq~pvZhzs|}tobivvy}ztuxdpr_nzjxuqsmxqnuv}|}p~yyztpp{nqm`}l~||zzzo[}yugpozikj{qw{r|uys}h|wstx~qyfyfwoc}weixs}lwxugwxPjpmdh|ruyzsku||qx||sw~wgzm|y|zsh~j}wz{k|tm~qzow|nt}mtgx{nruq_kyyvw}~}zvmzv}z|uoqwxx{ynvyvz}nw~{rs|zwr|s|t{~vwrsvwwtyy{qxxzuw~y}qvq~c|{drrq~zphv~swxj|zw{zzvzq{vlzzrqyu}vrpiuqp}}|zy|xr{ytwvpyqtzxpnv~qpvywuvxrxwh{Ow||vzmylu|qnixxvxvyxx|Zo{nzxxytey}guorkw|xrjyjm{xT{{uwsuqot{zvvuyj}mvyft{tsknihwz|}}{hrtp~qonsmo~wznzykjx`vkouq~vzwl~c]qrszY|rlayffx~owstw~vwr}jz~s}z{|sshzvruyyonuywywttp}qvunoj{u~mxwxupnyvdyxvzuzzvjyjxfvyz{p{{qzp{u{|zznrz{yyonyl|n|~k{xvqysxyny|vtwz}{}}|n}wqqsyu~yl}mx}vv{uzyq~}rdquvy|wqys}nxuus|zxzuuz`p}y}txwjtz{|~Z{qzfualzrpn}puxy{evqvv}n{~xaru{xwpr|vzy~xsjsv|y}wwky{u}s||hrpv~owxxv|zz}qh{}}|n{ffm|{r}rvYwl{\}qMr~|z{}zvprzzkwejuutyuUhrqvwqmbrnfu{j_trgZvlvvnpvskpolmtxqemEov]g~ukxry{i_wo{hsqlgzqqho{{|zvws~u~yvn{|~ztwwurvy}jr{|vmy~rsyw~vpzxsxq~ywwpvms|lus|}xzy{xsxvt}qzt~{pw{{zzxw{ursrv{q}{|y{vvrp{yqxsp~xv}rn|zzx|xy}wuvwz|mysmtmjwg~uhsswmbyts{k{jytrzwmjlwtoor~orjyysv|xxdv{ovf{ttxt~vsms|~zzv{ss}~r]zjxkqp~g{wzz~ub{flwsygsmtfhwtsestf~zvm|uvsvho}wwhqjxp}w~}xxtj}lwg~xk~ugsrm~}x~t|J~h}{yc{uzTtnpp]t|{talqqtori{vrr{d{viz{Q~wxpzq~nAtup{|fdy{uuhu_ozdbur`~~zytfVfgr~ru{m`vsv~I|fmmitjxzytqyz~v|omtxxpypjx~yzv~oy{xtsyy|n~yzwipzgug|wx}uuxu|qzlx|kq}wvlvvwjk{qy~v|tyyw|prizs~ssztunmquk{v}uys~{|snsvmxwwtm~xy{{bszxx}sx{ywrpzyspgxmfrwm|vmv~|ivsyi}tnt|~mvvxxzzyjxcuzqwqtxmxwyysjyv}a|zxxpol~wmvywtrxorzvx|nnnvwv{}j}mwluk{zpyznpqnlf}zuvqovum}vvxr~}}mqtsy|rwtpw~sy|vxvx|ziku|rw{|zk}|wytvssstrt{zpwy{oo{mv~onosussvzw}wzpuorhz|yob_|{{v~x~um~j|{~|zt{~}pq|twq|hr}y~|s|xw~yhs{t{uquuuuzx_f~z{~uw~~w}wvlvytt{cz}}}v|tvprpw{rwx|{uz~q}mntt|{z{\zz{wup|l{uvw{}wzxzu|pwp}|{r|zxzrpw{qx~`pqv}~owuzxszkys{zpq}y{ytzux{js~v~x|quor~u~r~z}xs|kpxznpyzyyywyv|wwzvmrj}|yyvm[zk}|{~zsv~q{{cVu}osbwsxzi[xowpu{}uycris{kow}xv~szytvewryxzks}c~hbgzvq|xm}||wxvorvev|}usyssr[ysw~u{ryss|hXy~lwxtvitoyn}z}zn|ygqwr`z|zvyp~gptuyvo~zxml}{t{hsjfemvvvwy|cyczqis|Jv|~vut{k|leuet|}|wgSfyp{st|kwzv~Ys|mzut{yow{}x}lxqypzmSm{sjmoqk|lther{uspaowrvpVihi~zn{lsxyvuwnjyvq{w~|ux~zxoixvnkiuzojyrtwzuuStyqqvukr|tu{n{npsoclrolylkzg}lvNgvrcyz{tlujyqgqxqYxxj~v|wmsxs|~v}qzv|xy~o~deh{|rs{{~}}mxdywm~lor~~lvm~wzszmt||txr{myzxz}yp|qlmtytwupnkp|x{zqnzkysv|}q{ltydyux}yw}f|pxnwzz~zxuuywxvjzzwtr~|ukxvwfust|nuptwtsv|shw{rwtzxpq~}szg{jr}p|sqtvpk|ypvopw}vp~pz{~rt}{nzt{qy}|sq}xpjwwz{ovvw~yozvpo~tyz~olmypv}vzqom~|xwz|kz~y}pkx~znwzr{ffyz`lql|u}xn}~wyr|nzv~wyzk~||s}s}zy{r}slzthy{v}y|v{||xp{}suy~tztrvz}zktnwuzx{x{}n|uy||rty}zq}zw~xxy~{~u{mxxzzo|wuvzrs}v{|x~|xw|xvu{r~m~wqpmywm{{xx}spczxuznrtmoyzvw~|vmy}v{lnyz|}vqro}m|rfmm}~|cryv{m|i}tulmgwvs~yvs}ul|yro{suz}}tuuartyzzwwrkdnv|jqef}xzxw{|{ttnuaxwpwvd}vz}|xv{y|uz~n}{}|y|}t|xty}uvwxyw|o{wwzwvxx}yqqzsmttz{~}x}wv}tzqv}|wyu}|}{yvvwzvmn|qp~nzrqx}pxx}zuzt}mw~|xtu~vpxvszwon}z{v|pzr~uu~v{y}|}u|}pvuurvqw}t~h~y|wlyxw|{{ut|ztxor{~~qwzw{x{{izv}}yxv|k{}yv{s}~rusz~zwz|{xx{muszn{{szt|yt|toq{ywoli{o{q~y|uyos}uqxtmxzv{vbi~yzurunk~uv}{~iqu~{zzvvw}y{s~wt|sevxxtrnynzkwpdowvyyqsxtsxhwytz{gv|uhhx}xjy|~}z~w~zzrwtcowv~|}}|j{}ulsztljq|w|}wty~vm{i}zswuv{nzzulkzhurvk|wwyv|zxzwws~uxtzqv{zyqak{t}w}{zptrn|sludwvylozw{yuyynfzvvphswqpc}ww{rmsdis{w{|~fwyjuzuxxt~roy~gynyqvx}rvo|oz~tozrbmm{{sn{t{q{o}zzwt{{n}}vkw~rzztozvs{uwdw~k|~psvyy}go}z~|mwz||nvu|r{xwxuzpu{pvfxy}ytp|nmyt}qx`yvzp{et|{zncv|}ywxz{m{{|{y{{|v~vzqm~ty|yyft{{zpuxzwyw}}yhpmxy}p|ry}{{k}~tm~|tokwxwzuzjuotwhy{nzx~p|qttmms}}v|tv{}unvh}zg|zkprwz}vtm~yw{}wsks|x{}|ukr~nuworvsjmsp|w}txzwrhvmws}hvyh~|}lhqzyypnry{{nlxu~k{w|w{z}|{rsx{xnj|~uyoq}xuvy~ns~}wxr{pxpsqwxtzqqnnwoywtww~wnynxtuz~y{xy}trowwxzxs~vwozyzutx~{zxu{{~}szytzwwyr~vv}zyu|uwwxzrpxwiptqfy}z}e}t~sz{zoywtvwxzzw}rx|qxx{vx}mt~u{|v|qvw|yuruvpyn~~t|w~~qx|lzztqz|vwx|uy|}yv~|x{{znznupzstxxytn}kzp}pv{m|p{|tppqx|owvzuoo|wvx~wwys~zp|{~av}~uzy~zswzx{wxutgnq{s{qcl~zw}~v|j\yb{{~~uqnq}rqru{vu|uuw}rwzrnyqjjsuy~vkqw|rsutrvwots}bytofv~ywzuxt{cjuq{x{{yxprx|p{ns~evvwvmut~x|h|busyx}fpa{uktxrrkvq~uvt}yjs~xuvzorwdo{u|y~~usttf}rhylnkuzwy~cw}|whn~k|suiygsd|{v{{mssdyy|syns}qywxstcmxyyyynwmsutwu|tsr}utw|swzqusssu{|pujvq|jfvszpm}qv|yw{ryzvthkvsw~xwq~|n}o{uv~|su{ytx}l}zoumxv~nv}xtxswtomu}}|u}w{~v}lytwkv~p~vykygs||zm}}wx|swl|}|lqnzw|~onz}xvzz{|{ny{vyirtzruqxpx|z{gptvwm}nxq{t}s~rxnw|zt~~v||uvu|~s|~syyl{z~q~pqn~|{w{roy{oxp|xxoj{}g{r||]ve~d{zqqwymfo~{{~zt{xvzrz}yxpwuwvx~g}zturx}vywvu{w|jx}zvu|vkmu}uz~~{r}|l~lptn~rvy|qtuxuwt{}t{zlsyrt{vvpjhv{nv~yr{{oit|vv~u|}y~|lzw{xvkgur{xuvsyo}~w}M|v|trzw{r}s{uou|sr~ztlxmuzltru|x|pwq}{xyy}~|}x}uk~s{rtotx}}yws{}vwq|www}you}mzuuoxv}sztr~~xywx~xwwvz{d}wrxm~u}t|zvpmp{u~szyov{i{xop|myr~xtrrsut{yr|r{z{|{z~w}n~szn|~}{u{}itzsv}u{wpv{rysuvrwt|ut~v{|tv{ztryutv}zo{}lovnsk|v~wtu{tix{~}w~}swzx}v~e~|ztuvx|}tuwsw}zyyz}yu}uv|}ztsqx|vy~uyqq~}ms~vrppt}upo~}p{}{wo}ynwxwp}~ou{}}vt|{uru~rvw}xxvy{wvq}}}etqs}v|~~sxzlpmoduxz}}zzv|z\yws|ve}kr}s|}wu{szsu{u{|m~yt~{n|ryx~}|yy{wush|yuxv|{ptjvoly|utslutjy}yy{q|xkurtyt{s|pnrvwt{}rkuwxsmht|}pt~y~|rq|h}fxnzypt~rzqvszzx}n|up~zqulxolsrvujs|~{xwt~t{x|qy~}z|x|mypr{zvp{wtxyvywxntwvv|uzz~xxpwxv}rxmirtzvzrjuzdxewq}zjbu}xsn~v|zqxpyprxw{lywz|vuwyrrl~zm|}ty|xw|xwwafxzyxxwir}}x~xnwzi|zmrvzupyvqxt{yq|wywz~oxxy{nxp|nr{yulvz|ur~zzlwwryo}~wupuozq|vy{xklp||tys|s}~{xw~{yyvts}}h{{tq|xp{|tsr{t~mxlwozosxnw|wg{wt{yq{|{xyq}|{wyzvjqwsu~|y{z}zyqrvs|}z{|~u{zuoxzp{qtttx}w{rsi{~ozm{{~ss{ymt|oni{nn}Qqs|wgatvu|~}mw{wstrtn|yoot|v}p}q~tqxOoz~pz|jpv~{ozzxvplc{qwthv}ju|ta|tsu~|wp|uuvwy|xttwx{u{wvueu~v{{swsrtvsj{ysrmx}txxzoqwt~~zpu}uwwvy~rxyury}twn\qv{|s}}t}pyroyyn{~juj{vthyze|rx~ozssxvz~ovpxxMsmtywwuzguU{wpxrziXmqrksuk~uw}|xyruszxw}z}rnrsxtxyq}~p|wsx~}w|v}~zx{yosy~n{wxyoy{ou}zqtuw|}~}{||o}nnz~v}z{xrj~ywi{{{~xstu~nswx|xuxsyz}rw{psy{{t}~sp{rju|{qzq|yt{|x{~myz|hzrywwswq||{qxxwxwvpt}sxo{rw{qt{~qyy|tymlzvt{tv}osy{{qvq{ssskwrwjst~tr}zyvksvv{psyqxr~wio}zsw{{zx|vpupoiyoekotzzl}jyt~zzxp{uxi}hy~sv{qznrjsw{ry|{oywockzux{v}xywzsnxqqrzvpoye~ot{dyz}wv|vpw}rppx~}{pnyzv}usuw|j{y{}uyhyyvu~zjvjsxvtqu~{qvvstoy{tgnow}o|n{}c}ruuot|uropxv}|q||ouv{~iy|vnzs~|}}zt|yqyp}lu{zg|~x}~zp|v|xsxzrumsw~gzzouuu{m}jiyr}wtbrtrrrtvttnvs}uk~rs}xy|~jww}vlry||y~yyysu{xvv~vwgzsyzttknznwz~xwtzlmuvuwu}zh}uwwwy}~zy~zntrp{x|jqvqxyv{}yttor}xzrww}wsjyzqvzur}{owz|rutx}}xslsq{wwqyy|w{uxv{v{|yuzlj|zwu}tv}}|qwzup~{p{qw|mkxzvp~y}tzlq~k\zsvi}qw|t}ypof~ov|{tkysup{vpu~zivo}tyxowzm{l}prnf{{|}}vqt|xsns}s{zuxzs}~zuz]wy~nq{qrv{zoy~xpvo~y}{|yz{{usjpxyzip|}r|yyiyvrl|z~zw_wmyq}pytrtvnor}uuz}~x|zvp|vryxvasvewr{{x{rv|su{{yvvs|i{{wz||ptuqxvj|~x{|{~o{~yvszl}wsx}~tuwvu}wmquyv{smum|sorvqu~wmtslwwz~vy|oyr~psz|f}xvxqt~wsqp|~}zvnwzps{}ywp{s~y~pxvv|}rvjxzx|}h~{psyrqs{qvnwxu{~tzsxtt|{xvz{upmyur~{mu{zv}|wx~zx~mx~p~xtz~lz~~zsy|wsxzvlpw~|yt{|y}z|wzx}n~yrxmrrk~zzwr|{~r~|s~pu{svy~qg|wy{{~{tph~oqqo|n}{yv~sr~euyvkwv|zqzhsx{tvvuszsrvz{~pwzxdoy{z~yuqdwpyztuvl|~ys~{poz~wsyvm~ux{zw|vtoyzyhug{~cltqysqokmtruqpoi{{qv}j{yzurw~yr{}svy~}zm{qz~u||pw}{wsjzq|~lj{}~wzvyzu|k~xuzy}vyxvs|z{v|}r{mxnvvz{yw{w|{r|xzypz{u{w|l{sv}nv{zr{vu}u{liuz{}rwqqwsvy|z{svtxw{sy}y{r~yw}zvsxgxo{u}g|}|uzmtplnm}nzrt{oxnv{lf~jrylo~zwy{sz{xxpuzs~phwlr_zuyuxzmvjoxxrixm}~s}czduvxmmt`tumjzi}mvz]uow|jtwjyzruz}\wvyoutrs{u}gn}\{unhvxqkktlk`xxvczxwukj~|tjzngzrtsp{zxyv~}tsyxy|}|~xwn|tu{lsymyttixttu|d{wz~~trvsrzuvuwincxqfy^~q}o}{mzuezqbw{o~vztkhx~tpvz{spw|wtk~t{nxn{xqyvjo~vkmqr{wu|vxmquv~{~vyxu{x{{upv~r|z~oywqxs}|srmvyuzhu{rzk}z{}ysr||{~gy~v~o}}xs}{qxxoxu~}|uto~tw{sqmtsuywu{t|xx{v|zxz}uvtr||utvtlnzvrmlxx{|m}~x|zzno|ywntwzxtow~rixzvxwwz}uxtmxt{yyxzzyzzpzup|s{ryvxpzxvzzqyzxx|s|u~|yrr}||}zt{}{}xzt{r}xzy~qgyyoy~sxz|qy|~n|yy||wz~ptwxkt{s}sw||z|~s}zyutqy|{t|w}s|zjtxvzp{xwwt~pdl{wy{wrst|zvtz||z|jtzm{}zw}u|xvnvztz{vlgx{yx~yytsy}yswlro~ut}tp~jy~xqwn{xr|uuuy]wuwzqxio|soyuwr~z{w|m}urujun||illljwltoruzxrvvqz~twmzzru~vvzvhvorv}tv|{xtzvonylrpu|~vvq}~tww{v~zrxtwrp{qx|{~kxzlrvcyx}yxx~unzuw|{ru|ytrs||}~mqzvnsr{qxnrz}}{i|xoqwvvzt|ouqz|qrwt{o~yn{{u~rzwrhuuymwiy^xsxo~wquqzw{|rozyt{~{{xvxyq~s|w}vyvvzpxx{yhm}rtsm~spxsrozq{pv{{wv}zhyxssrwzr~zuvjzjzl{yqtuuzHpreyx|rx}}tiqx|ykuvxt{r|qsjywvx}z|tj|ks|uttxvoxk{|w{{}{tvrx}}|kw|wx}x~zt|{wu}yvsp|tox}{{zx{pszs}h~yis~itspp}zjvkwsvywtt|x}}wwzwypowqwvw}xsn~xputxxu{u}ytvuqoyly{{kkyhz{u{u~wunxw|zs}vp~}{zp|{}u}}wxrx}{zpx|x{yztvrzxxyytz{pux}uzwzyzsx|}uqyvt~m~l{lrruxuwwxyryqs}s~|y{pqvusn{~zww{r|n|u|mtvtx|u{u}ovzxu|ov}sxk~jpynsmtt|i|zzsq}xt{~~sploxru|~gy~yw}o|ykvz{zyco~|lt{w~mkzy{pxvn{zbpt{xypvxzz|qy|y~zz|xxqvzvw{|u{z}s|}|tr|xxt}u`qu~vwz}{vpym}vnztyquwvyzttuwxmzxjyx}zy}wpj{qzrwxz`~zwz}~vzst~zq~ru{x~ywyvtu}|x{v|w|yuqueyx\~}{j}sy{m{rx~pxwmuexzryswzmwut{lz}}~a}qx~wuzzt|y}tv}rv~}u~xxv}}}y}|z}zztx{~kz|~swukuwztzurzuyzvumy~v}ju{uvv~q{}|s~|twx{{mpytmy{y|uxxzwyu{luoqw||{oupyq~}qn|}{ytwtwuq}e{x}|tq}}{||qz~|swsxu{yszyxsr}xvw|j|vzx~txzwevyx|~r|u}}yrwy{zryxpmuwtyumx|wtqtz~xykyrrv|z{woy~z{vnxq}vts{qyuwmh{xp{~ruw|z{s|wruut{uy|owqwzt~{xtt|}trwvnwxxv~x{~qwsy|{tqwu{kuxsvexk]etiy^uwr}}sznugpxu{fuggwmwwbWnuwjqg}mop~nyzk|~~sb~h\kmyyttxup}`ex}jv}styr|rjupm}wq{{nrw|mxltwjssixtk||zlcgylmlvrsy{{}h~x|jzyzm}t|ycxfrwmyxma}u}s|smtyvnyx{yx|j}oztw{{tps~{zhum|vofvg||rqzokyv{zxpyt}niuvu|[w}`vnzzjw~tyx|ppv{futzm~x}y{p}v~~vwno{s}vtd}qr}t}vxrzvosn{zesvunpmwcmwsoqx~ovvvwym{l~qyk{wwss{u~{u~r}ipzzpsrzyxib|~wn[}\xs}|y|l||up~vn}z~zs{m}|tu~xzt{rsntlm}|t~vuuyxxpw~|wum~}|iiuxzm|wr}kv~rl~ttwu}trx|vv|}osq{xhyzvv}zxzy|yt{yr{pwvrzuqxrwly~{wzyuwvv~u|i|r~tvw~vrvtxswzw}tw~zv|uupxs{}xtxun|~s}{~}rqrs~}~{|}wwwkovwrwqwyxzi{zwzwtursr~knuuvmv}wrtmyh~~y~ss|~x~|tq{}vutz}|~wz{oyu}w}u~zensp{sy|pq|ypvrvts{{yywpsoxufx|}{ozjlq}ek}z{nuuu}rvxltt|zvrqyzvp~ujukyctvwwnmwlprootptwvovv{uo}wttxr~}vnrqvqvt}wnqz{gxnju_vwprvwuwr]]vtytpxptzmpytlwooixt}i_myyuv{ns|x~xm}rzqs}~qkqt}nrsxk}uwu~~}kvvtn~syu~mrqpj`w}vshkwyj}gknsqx}opwr|o}iyxnwyykh~tt|x{w~\fcvtl{jvr||x~zo|sj~ysyoxx~tlxxt}{nvrpwztgtu|tuxxzpz}ytvow~ryo}~yyty}wmzpr{mp||ittwtt{hlolu}uxmswog{zwttu{nvrvmt|nwjst~ym}}gzmdzr~rxpy}}~~z~uor}{k|tpsofqjvmqtxmglrmwv]izsrlxzuov]guh{xxyyvt|j~ln~uktwjoxiilp~n|nxysvcvwqnzwwg{|z|zxtnwyxu}|tmivvmr||x~r}zo|ziyn~mvxpy}zityl{jmvuyo{~{v|ss~rxp|~y{f|vvy{}tzvtznu}pu}zys}ws|wlr{_xvwwduixqzyq}zrscwx{~{u||tv}v{~}uy|myznu|z|my}|t{r|vv{upuqsyqpxWyow{{ptw{sp~~xyiwrxvjzxpxs~tnwwsz}x}tmrwvyx|s}yxnyt|z{p~wmkvz|{e}uq~llyv|{|qt}{z{r}yit~|n{p{qry{zysqnrnkqotyuum|sv|wwvqulx}xrnyvrquyk{ziswsuumxxx|}uzhq~w^}v|}z~{q{v_vuvwRtx~mrw|}xqfww}}h}zyqntx|~}Qrzx[nwxyyvn{{{zhqyazwZtyZzpyv}}uzu{{wmv}zpxm}|y|lylw{{u~wxtxv|~x}ss|xpxryyuxwu~|xtl~~rq}wz~uw~utu{sqwxwz|u~wsr}yv~p~}kq|z~nxyz{sxvt~uqywxs~uvoxsryptqhp~xtws{ox|{{{}|~~}x}~v}zzruxywwptw}{jvx{~v~}|xzxq{xxpu}vwyiryxzc]oxrzzzzvsm~qrt|v~zy~oxwpmw~ln`yp|t}y}q{uzx{~~}vtuyu|}uxuxtmyvvq||}yrzvo{s}guyzxx|ss|oxsz|||{yrz}z}}fuvip|}zzuzsxsxpuWlwxj}|}gmpt{yjwwytinx|snyttm}psnu~zjmp|s~cuf|yy~lzvny~|^iw|qux~yso{~rr}s_luop}}~tx{mx}u~a|}{{z|ov~wly|{{hquqnxur||}tlu}wkpkouxsr|~x~~q}eu~nyv}zr{vxt|vz||zwniqtrwykyv|}xx|{x|{x}e]~wrnwpqsnotlljmkw{qhvp{zw}{i|lorthq}ysw{iowl}~u|tw}~zuwtrgqu{rpvtywsvzt|p|vp}v}uk}ytwziku{r|wmrwo}{}tyuxXy}|x~wxqmdjo}yvv~~u~o|ornzyrsww|wkwy}z}vq~{qtxr}syyz}vu|tr{~qxjyp|y|ywzxdyqyqtm}}{}}vru~{~~xx}u{x~}ms~x{to{xrtr|qdvfut{j~uyrx~np|{}zq~vq~upxk||hy|uwwro}e~spzut|y|y~~ywz{utxutayvpmllxt{xrq~~y|yty}~ttmn|o~~rzo{yh|tutzgttsxyzvtrs}|vw{xv{~ww{wrtz{yq}pxvpyv|vsv}{xvwf|qqwsl|{um{xo`xlu|xytyn{uoyszr}s_|}{wzruvoouxv}}vuwkrvqwrxv~s}tzvszlyzr}x}yus|k}tuvnj{z|quh|uxrz|tx}uwvuuqvym|~tzdtuxw|qrn}|vx}ysypk}}lrrwxw{svvvux{{zqx{m|xvytulwyqqzuwux~|q~|v~y{yxwzpjst{w{n~~xruyxy|z|wqpx||v}prrw{px{{u~}tqu~|njp{t}}uwwxvxxVoyuqlybukx~p|uqml{oj_mvvr}{wwwwz{n|ok~rjxmrxtvou|ltnn{uuwz{uL{w|ztugvrxtzwzuyuaq}pyr{ryr~xut}|~xo~ywswwrs~ry{{xwizxwzfl~r}xu{~vwtuyw{~t{ruzwiwr}uxq|syxvuwioss{wzxy|o{vcvq}zzmrysto|}xrprzy~~ro~|{|{|ws{}r~vpxoyuvrq}wttyx~vwo_rt{wsr|}|uxpxtvzttwyytszuvyylws~{nkpsgz}x}~v~|yxmtsrjwirprwv|}ox}mqrrt|wzkxm||nnu~~lonbvv|pum~ugwbykl`ukknhow~mzzyuzc|wq|v{xktwzhmtxy|ztzwpguvuv}|o{w}ppxyxuq{uu|qplftzwni|k{p{|w~vttu|uqv|xxsytn{nwyr|wl|sr{x]}tiywtyzutxvwlyqvrd|zuz{|xzzslwnyk}yu}xu~wzsv{tntq}hrywyruuwx}bzzhvx^znstxx{|uprtjwoy~sxltfv|xqx|os{vqn}wz|vltwzsp~xm~w~{yydsqnztqwyw|xueawwrqx{}z|zwwnwto~exfxuenujNhgumzrqxmrsxuwitb[|{vgmwmuhxlcq|wsy~sluz|wv|{yqz~{~}xz|zw{sxr}vsiqq{~kzx|{o{}~vpy|r|jyztletw|yx~rrk|{}zuyzu~r{}k}v}z{w}nzy~t}z|||{sy}xzzx{y|xfttyor{pot}suru~ywlzx~uvppq~yst|rv|{wzovy~zzzy|z|{revxyu}vwotw||q~wpzmy{hvrs~r{yzytvnp{~upxlz{uv|{wyzogsqmtwl~guy|{{}p}|}wzt{{vgzzmsvjwcu|v~{ipcqx{x|zwdzlupVtuzo{umpsptwk|pwp{{psom{kyztio{xoqw~z|rttsyjylxpnw{rxuywwlxwtw~zz}{f|zstrywlysuuvzso~twxwxm~u}nyfzyv}}sotkuizwr~u{qu|qy}zs}p}zy{nm}{}pyq}w{}tzpsus}wxztzr{~x~{xv}}rxwy~qt|urtywuyqvsv}~y{qxj}vwyo~mh~wmv{|v{yoxHy~}vzl}xx|t|w~tr~tyqswpln|}yv{s~toxjzq{sx{|xruwrsts}u|}kwrt|~xvu{uytx|w~|{}mrzmtzu}~iv|s~}xsy}x|z|up|tm{q|truj|kurw{vpqri{zpxwqynxnqd{{b~}vyx{uui{xtv||sqmu~spmlld~lzcktjcop~mpzsyq~xlwzvw|vwfucpiu{|}sy|v~nz}vsdvsfsyxzlkts}u]rtipm|t{swxkvu|oj{sxqyowt{t}ty{xxqmmxv}}m}uuxw|tr}xtvm}uxuy{txlss`}wnww~ti~tmqkvjsx|zvq}gvzsp{o|nls|{omzvpznq|i{zv{{yyhwt}\w|{xrq}ptpsm{}tz}tf|yztwvxu|ts}}x~wptv~y|vxzy{rugvu}~w}wr}z|x{twyulnzypyw|z{}zp~zwx}iwxpvvw|||y}p}xysv~{u|w||s}wyu}|}ou|}{u{outwn~v{}|r|pyxw~{py{{{vv~x}vxwwtupsvtxcvrsvqvsyszz}}oxsc|zzwpwyxy|y~xu|wx{v{}ysxxtt~{wm~xh{|qpwoxjv}xrtw}ttv~qrtrwd}|v~{ty{xm|m}sox{|udwkv|vu}pzvws{~zb}xrxjo}yts|~o}q}t}uwkqnozy|gzlwwxt|ww}}~zz|x|x~yus{{wl~y~xw~q~eu|c~truw{|}|yyzxv}~xztpvrdywvp{ux|mv}{w|}w{ruxvrls|vvtv|mqfrs|wtsmzvxrtzs{zwpwc|v|pxrlupt|yqilspqlu~a{~uxiyozf{jwtxbtvlwu{hwyipqy{q{rx|cqymt|vyyxfxsw{|u{}sywrzorlk~ztq~yymintp|ml|o}q}it^tirur{tqj~{nmqwlp}z|yw{zp~ylxyl~kpzy~pvqyzu|zyy{k|v|yxnq}xqxwqgmx}~lfq}t|poryuvy{cx{ozyzsxw~wzuq|{}ziUuu{|sx{|}xt{ys[{{ggz|l|lt{|nwnj~wvulymzuKw~zsz~zfrmlVy{uxowaw}u|yu}xxyo~uqvvyryyws|n|us~zmzxysvxqzuvrw~rt~s|qq~y~xs{shok~{vsxt~ypyqvxgp}tw{ozyr{w}zu{zuwryzzwv{usyuy}{|lsz|p}xuzup|~ztxxy~wqw~qithwl}wxw|w~{psyxzswqr{z{qxrnuzzzus}l{}}z~{ztxwwy~`wre{r}oo~{xsxqeyqvt|wr{vu{wz~}i~v||wwte~{u}u~uzi{pstxss{}Vxuxjyzwwz{}}sp~|{v~o}{mts~pozguyz|kxzsxuqqysrripyy}txj~tzvvryvnuwmsuvy~w|vp{v{s}xw~w}u~w|vvzi}u}^|~|m~zuttwio|iyuz~w}}iwzv}xzznt|mqq{{ruv}qwqyk|xwzuz~zy|{us{tz}|bzyytj{{{tyxvqvzpyqz~m|}{sv{{weus}~pvumkus{vtuzrvw~fuv{obrs}y}z{utxwynt~{ovzumpfvyv}vsz`}r~~|w|z~uzpu{norl|wz}tptqnw~pxn}lvmv|m~}zqwyznl}ju|}xssysuoqqybx~oqu}u{utstqvyxrvyvnxsxspdm|~^|{ttzvyzin|wpu~vz|tkp{sunvwj`v|wtiwvtw|r|zwsut|vh~uxuvuwjYq\|}wttzxpxv{hxsxzwu{pl|uz{{p}|vux||p|{owomosmzro~wzovfvwmwzzhv|uryyts{s}~p{xyt{qiuaxpxywxoyr`vn|orxuqm]u}orpoozfsvtnxuwyy{fnt|^u{zp^msqoqj~ixwqx}k}}jx~wens{z{tn}h~^ik~~lqstwwhyx{~v_pzs~}}w{~r|p{~k~Uxy~uy|cx|}mousvtwuwp~r~{ojnv}vt}nkpm~sqr~ylz~x}w}yqu|l|z|v{{tnqduwx|vzqosht{z}jxunmu~|rszsy}~sw|zz{bp{z{rtswxezuow{tzz|z~`mp{qxr}tt|}ult~rv{ojuoywtwpo~iosxzxtvu{rwrmwttistztrwwz|w|r{|q`ssryxrwjwjmbrzuxzql|wusut{ynh}uyzxsxuqu~w~vvz~w~yi|usd}u~vpprkxworwoytmvvjvzvjur~}v{yzosx~ir~~zpvzxx{wx{vuztpdsp{v}}nwv|xxv}r~x~vyuusywxyt~prolxt|rotu~zjyntzloztuuyyvui}yp{z|}y}umxpkxvs}s}vnntzxg{zg||mxm{eu|yzotxvy|zyuvg}uz{qtyy{r|nttonqzpvs{yjsyj|vvkwl]em~}zxqs~~vt}i{nvesn]}}eewlyt|l[w|zxus|}X3tzwumo(vzz}uzlzfy^rvl~~{~qlqjXsgv~~oy~um|hzouux{xouss|tw{}w~xy~t{t||}vu|vnxswyr{ydmml}{~oxxu|svpvosxpv~ur}zz{|}iyzys{}uqq~z~y}sxw~v||zz{|vvq|}yzzrsz}{i{~~tqxs~r||q|qzo|zwot|{~~nrs|uxxszqzu{wrilwoh~zftxz|n|cu}}xoljursqozylosxzrpy{y|wnlzq}Bs~{~sxpmzpqunuzv{xehu{tvs{vrgltrfyhtzxlkt{Ylrlhvpvz{rrml]hninx{zx}r\zoTl~vrwylyjvpWnnqxws}{ttpxr{px|vzrvzqsxitq}wwqwt~}yxr~mx{rpp~by{bqsnhmsoUu~zv{mxvli|rmu{~oy{nx|ipywt|wzyzupz{xs{x{vn|qmxqtwvvm{rv{yvy~wovttvsq}x{jzpt}s{yyxxywwp~tvz~yx~}woy{ny~pu}}wtz|}sxzvysyztsxxt}vxkvw~p{zypwuyywuw{tsx}zu~txwz}vyzryw}vym}vwv~mr|zrr~sqtw{sx~}|l|{y{}}suyvukjpn}mrosyvzn}jy{xpnl|w~w~xwqvourwtspnby{~}qxzy~puyz|{~{qtxsxpw}}s}f{~cn{~}tt{yezywwwxqzt}ymx|}{k~{{xynyzpwssxxuxz{wtytmor}gi{u}}z{zx|gqhzjtmp}vyw~}zzp~t{yv|v{vlz{usvxoyp|lrr{pyyt|}vmyo{m{qvuysvxvrnyptfsuslwrwz}~vpyqnpywssos|z{|qxvs~yuvtpuv}qvzy|qpxz{qs{|w{vpxw~vxvfoysvk}x{qyn|vvz|xtv{ysyfzykx}zot{ottyt|]bry}z}~|usvvyrrt}qzo~syr{v|wm}tsyqso|emrr{||suu}u~yy~wmrwmnz{u{zny{yw|lxp~u}y~zwwz~zyv~lk}yyxqui{{nw|}zzw}xxs||zv{u~z~|xyzspxrvyxu|vuvs{tyxrsr|{ro{z{vtvzu}u{~v}v}r}~~q~~xnz{~vu{vvqyyvnvv~mvvziwr|mzzyquxvyun}~utyxwy|yzwns|ur~~vqspr|mvyqywj}}xwz{g|~vprzpvuuxq|zxwts{z{~}wv{y{uumrxpvts|p}zwv{gwvtvzqwyv|txupksw{vsxt|~ypm~sxws~pxvu{{xox}xwvnw}rxq||~v{vvsyovpfqy|uyqwysuu|zsrv}k}{yx{~{yuu}sqvvyq~mvpvyznz~ztwzuf}}}w}xhyzzo~|zw|~r~nxu~|~{u}}z|}z~rx|yW{v|Mzm{or~nykvqstn{y}h}vwd{txx|tmmxu{~rxm[xry|skwhxi{tzkqf{~a}o{xv}y{x{|vofkqz{}ryssnvavyk}}twxj}}z{r~}r{s~yruq{il~|}ynx|{qzzlrvz}wsvxo}q|tnxi|xuxp~}p~}|xvlvmn}myur~wtsdnxrtw}xuu~|}tpo}txu|rkxv{wzlsw{rs{|xyvqpnqioyzunpqwwxv{rq~v}{lq|kmk}{hkv}xqymwvtls{y{ouuutxjz}l{ykr|}xurrwxfm{{pr|rsvt{d{tzzv}|~}o}oy|~tq}{zsyw{kzs{qwt|yrjtxhx}rw~sttykysg}lozyuw||rpgiulwxxvpwzxywrxpiqpyqxwwyyyvrwiv{u~wv~nvqrut{w~yqouf~vurkuqp{}yi{wpyp|yv}|w~vuy{|sl~~{~yquvu{zx{~ypxktly{xs{qvxsuzt{{wp{ywvp|}w~vxrwstur~twvxzuzmo|}xvt}vzsluvrsui}zxvuz{vc|wt{gtsrvlwuyt{ixxnpx{v{{pxvi}rq{o~}wouqtvlt}sqm~yyznvmzwt}}y~yxr~uw~y{akvm~{o~q_k~q}{yfvpvl{lvjrompq}xsm{}svx|yyp|y~v}pi}n|}jrql~|{{yv}cur|||xqxyr}wyrxsxsnx|qy{qvvn~wz|mkx{snv{ntzxqxyxqz{mu|hz{i}|swyzmsjys{r}~yywsZy~~}x}ptttqpsw|{yryxz|xst}{xyssz{wspyl~ynt||w{|mswv~miin~vtq}nvws|z{|rwxepvss|{q~kfzrt~vkxv}z|zzq}|y{rv~otouzuxwwzt~|qvxu}tutl{ytz~|tqwryu{xy{}~}zsvy}zy}o~_ny|{{nlqz{s|zxx~{~w{xur{{t~wxznyrux|}r|w|z{y~{w}wyqs{ssx~vzvvy}kysysxvw}sp~lpjxr|vrwosx|}v{tly{npwpwt|y}suzsxvpx}zlvqxbwuetqxjvryqzt}z{m~~~wzqywu~vx~vxvn}|zxyty~}sr{s}uzu{vn|vyx~uqwz{{|~ytvp|s{~sztmt}unxlxmu{ry|o{sxslp~}}j}wopzx}xvyk}ouhmww{mvruwv}i}{v}~|wm|r~{misujp{x}hxvzyuzov}n~~}~w}{hvhqvo~nyzrsv{vyu{tuxolwv|wxsyoiop|zquxtoyyy|{x|pzx}nvwkycwwm||~zs{swjlyzrpznqtv{uyzs~z{{qp}mrpq~|uwzwxwypwx}{gpkvxyi~ut~wpy{yvitky|vo|ykstw}wowtrp~}vlrvxxpswwvu|uqs}vpn|ww}urvm|lyro{y}umo|rwzwzr~zol{~{q}ourxxw}zuwyur}}vs~qwsw}|uwus}q}lpmxyzvywvrwq~r}}ptks|g{txzzs{vwy~yn{pyruz|pl}ty~wzz}ssgvrvorur[vx~s}vyly}}yxzz~pw~iwy}vvkhudxpt}y||x}l{{vfnzz{uqjjzupuvrnuyywu}iluxpupwnwzu{oyy{y{ur{~tjzw|h~oskyxzsoznzuuyjxkvzw~vjyreyzmpvwywxzh}uur|h|sy|ph{zw|nzx|omtv~}x{uou|s~pnw}w~vqi{v{r{ywtzv|{tsuxq{ztzsysv~}}sttv}zxvwuv}nrv|wuoxtrwwmuuyt{s~iyxzs|sylzvwnur|}t|x~}tu}rvwwuzx|wzvwtwpzz~xwqt}sy{xdpy}omzmwvw|zxcruy||tmgnlu}owoyqts{ywnw{ywunz}q|prjwpqwxwmzn}qpszvoypkgu~{{rmpr}s}}{r|{vwvur~}u|kzjupzxn~zjqvwyrr}ryu{m}zoxsexswlhsoy{|urtuwz}zjmwrpnzzwx}s~du[si{jlqxxrxnr~yvw|tnupze{stwznj~~sxyxu\~~txazu{gqxr|lvvuw~ux}unuy{y|zp}vv||x|tqmptwvzs}wvxvzuywsk|{lxszn~|qgwvz{ppo}~zo}n|d{z{rpq}xu}}vzvvyy|wo{uxwtzzwyxmor~szyt~j{nxre{{fw|{n~v{zq|zovlvwxzowzv~xzQztt{expvzsxvuvqr{rpyxx}sy}r|z}swy|r~vrvy~unvxpw}wtxvrrytoytlryyw~p~yvwrnvwwt{{{ybvu{srvxy{q}~xhravsuwtu}uo|zsmz}|p}}soewvtxzv}k{z~ytsx{|qnu~}yljwlstxzvvp}xzt}tp~{quo}g}wrr}x{puyyvwsvuyyrxzk{uutyuvotzx{ywrtoqzqzyhx}{ofxuw}vj~}oy|ezujs}okov|kyowzsw~}q~tyy~q{xf~dtxzrz}}kzr^xziyptuuufs|rwjvyysnhudiuuf|puwwjxyl~ilvwst{ny~{{wutpvsvykrp{myz{|ko}w{~wy}w~~xszsmwi}zxqwxcx}q}ooutry|~~{kuvrmzr}~o~lvz~{u~}ysw~|qspwvwp}ujsv}|s|z}r}|soxxwhruwsxwwp{~xs|sxq|owzzxiv|x}zw{wz}xxrwol|rdsys{u{~vzx{uz|yyk}uwp{u~vqjzsx~uotr{wxX{vwc~grl}z}kzpp|wlzkwvy{}vzuu~x}zvt{~xguvuzu|xoky|w~srnd|}mzv{h{mx~uzy{svx{zxv|y{p{ykvpkwi}uz|{xvxp{tqxmqy{swnsxy|rrv~qk~wss}w{|wstjky|skgwvxsw~{sn{~ymu}uu}wwrvwzy{uuzmzyvrps~xxl|lszh}{z|yqov|ktw{vusv}zwrytp{}msrqo{vo}{~yrvl}w~xur|{xzz}~pw{tvt|tu{mjwqfwy{l_ktwvvy~hmzqzoxx|srnssyrwuwu}xqqqndxsyztzryxm{qttS{awjWx~~||uojprryuisov|s|zY~{hb~{{xtx{k{rztyuvqmyrulx{ypu~k{v{tppysxu|l{quipfvm~orpovy|uyvvz|uiwpmv|}vwh~mps~tqnzwtxymusz|zxqv{~wtznxww~fs}W~f}~s~u}yx{sy{q|}stwy~n~|upy~zwpwwyh|uo{}rs|yzx~v~{{svt{wuuwqz~zpwox]slx`znft}}t}nutaxm`{}vjs|rfpry|ltasx{oxt~tm~kwo~yzpnf}}uwzxhzr|sw~r{k|pYp|~C|xyzAuk}nl|iuhyxwourlhiz~v||`o{y~tgpx}iushty}ok~vzuy}|{{{{||~qcqqxyso|{y~ow~ssw{i^vxwztxw{wwiyvqq{i}|{oxpv}swoy}|x{sxp|wt{]c{t]pjzyvu}rm}{gvP{ut}szuprvz~t{uwtvxp^slnfswqt{qutry|epyvqt|}yzjuysy|v~jvwuubshz~q{py{tmsppsppt}|wb~~vtgysqjfvlw|z`fyjxtp|spp[wvy}qyt[e~h}|q~xypdxzznhzur{vujzttkzqvydy|}u~}zg\zxpy~{vxyqukv{{un{x}|u|}T}kvhzrwudlsvxvszwz}|ut{tzw|y}{x{~}{x{yyss{u}{{upyu{uwwrzwys{yqxs~|osxu~v|zwo{twooy~xwy~nxpxxvr}ww}|q{z|~yl|r{ytt}xpuu~wxqy|}|py}{wwss{~ty|yt|y~}~{txqwz|yyxz~r~x|t|xuzyxyot}ovtjy|qwwowyx}q{x}|rxpwwjs}}y}yvxl{}}vtznwmzwvsyouzzom}mr}zz}uvtxwuo{rrwtxjuu|x}zp~pvsrv{|xvuoxxxzowtvok}u}sux}w{uwwslsztyl{r{urtwq{ovyixwqux}r}y~{|~yw{t}wtmxvywt}vspwkl}}{}|zn{~z~~~wuyztzlkst}{yvq|`uuvpszsruy|vtTwuxmrmwcj|t~{wj|qvz}{umswtqs{tu}o~tus{nszypz{}y}ynpwynryztw}}u|yuh{y~g{~}qsqzxz}w}usvoxvt}pvuwwyvewyy|wyo{seyo}k|wczltuosvrwrp|u{tq}zpmcyjznzl{~gxiytUxumiu}yvnxvvvwzvvlz`xmv}|w{xpyxwsq~rmn|yyrtx{{p}lyzwnqflwtsq{}vu}~yuvsoswq{qlxxtxnswywztst~|qmftmzvtz{rovbxow{}pwuzo|xo|xwsy||uwmywxwzor|vnsxxxxyyxxkw{mhxqxr}suzpzu\w{spzzvy|q{yvxlv{vj~r{ykz|j}{tsjuvxqqy}}}~yx^uu{vmyvy|vuznlmtr{x}ym{~{srh~yywxi~|iwnrrutQowpzx}ym}vwt~ujumzmrwr{lrqzztwxynvrrz{}z|~zo|vwjjs|prsxqkw~oxptpsrtsypu{hzqmx|nge~{xuxww~}nqy{ttnwywwpzxsx~wyvmtuqq}v{zyuqwwyuo{o{sws}p|zp{rqwmvzq~u|n~uzusut~|yiz~z|kupxz}exqmqwwj{d}tto{|uv|n}q}ty}xxur}{|ysprstyyv{|{yv}wzrcxzsxzx~xtt|tor~ytz{|ryv}w~pwssjttz{oxr{gtm{qtvt|Lw|mq~rbzivYq_uko_xmqgl|ymwk{l{ol~zxg~oxvryyrox~rwup}~s|vt{mvzux}qnx}wmwln^bs[xv}wt|yfuotlh~v~y~yvxogym_ecq~{yw~m}nusq|r_}y|~lwin{|rwuwz~tlpo{ytzrtwu}~kp{ntrxry~m|~vvsyzxmrsqqmjpr}wzvvrtvyvmv~q|zj{|~qptryqupzxf|qokq{{t{kyztkzvzt|wsutlyw{tqz{yroyp|Yzrz~mnr}sxqvnv|w^|o}kx}xmwo{{ys~tse|pz{oqvytm}ix}{uptzisyow|mxjwau{ojw}kxznqrly|yorOxmx[{l{{~{tW{}yry{z|uzdlwxxwxw{cyoyzkxnx}{u}o|~uji}{||ac~nvtbslurl`|pZ{ivuvst}|rn|asxu~zw|~sy~}~vqktnupp|}}ske{iuswvsux|n}wxroy{{xz~tqudlppvuwz{v}qyxnnnzis{lz||nvnl{wr{t~mzwws{muyqsuv}|q|n]yqrsuuqoy|mmxwxootznus{~q|}y|{|wyrpxz{oxqyrfqzsu}t~xtz{{umy|vpw}|w~{pxy~}tzo|{zqyoy{}rysu}n~pt|~x}o~tzuwm~mtwrxuo|yuty}qtsmmjttzyw|qvsvypxkmpprkpvzfrrw{spzreajsxsimc{^yl|zzzquqno~}wy{tqy}sxq{}{yjtxx|nu}worh|xv~vzxv}~ix{~tvqvormw{snozy|yp{w~~vku~hwo{~npo}dvpqrs{v{q{wur~om~x~|qzwu}|xyrwqqzr{sszrowxyfksuzx|zput}url|qqxwrwwxv`|zxuzy{y|yyhkr|tio|vry~wxurvzvovrvwu|{szqznx{yzt}o|{twvrvs|w}~rkfszpwpuyymnwx}uvtxztxvzjtszslrqr~russqs{w{xttt}jzy{zwxsrp|{ppvu}uxxkuxzmqlzuwwzwlsjyvps~uvusds~vtxzjyz~qyzzxry|}~tyzrwzp{qqxrm{yytmavyzvqp}yzwyz}yr_ms~|swwwhqyll}}smpssx{r|br|mun{ku|gzrvs}\wriwcq|v}wtmtpx{uMtw}rz}zvqqfty~xzqx~|xqpxzwrqfxyq|{}~wryt~~~~zj|{mvvz}yxgxu{~utz~vxzwu{u`qzxp}fnwr|xo{s{wozuynq|q}zyr`zxyvvq~wz{sw~q~owzx|zbxotwu|}qztzlr|qspynftnynxsuu}pt|wxy~fupqvmx|wfx{vrq}{uuyxzuwkrlrmhxvsvywzst{wyuyw}~~x|}{iuwwv{}}tqv}yt~ywwxvzx|{}x}r|wzx{gy{~vsh}vu{ysqxqsy~|u}{ozvwzoxq}zm{nob{uuz|uvu{}uut|u}yyl{lw|u}ulz|}xw|}ynyztu~zzuyzuy{wv~uw{}x{vrwz|dw}xw{vox}|uryw}vys|quv~r~qvxyutzzvpy}rvwxivsuuwvzx{q|vz}yk|~xvz}zsy|zwo~uww}u~y}}{qz|xj}xvv}qsqzsyt}vptrrvvo{}u{su|rywzys|t}|v|xhwytympzunvuuwxf{tw~w~uxq~y~wypsyntz}v~nszqy|tyzyrwresu}ox{o{~vosrvppnwn}{pn|w~d}{ttmqxqpx}twyl}rui}zv|{v{{upz~stous}}qsv}qpr}qrztx}xvoi|}~|enzqs~~}v}xw~qtvxxw|~v|tw~tuzpuzu}wztwuruo~{|~lx}twpx||siylzlp^hy{{wly{uyzmysutj|uyt}yux||ryxz|zvzs|wcvzxzz}u~Vvlz~qz{~~tqsvwro}s|xvdlvlx{xx||ypuuvnmtj}vvnwvvx~ggnzrwrty}nu}yxoxpxrivz}py{qlcyyoyvsuyt{v}yer}suxppat|zw{vznzugvt~gvxwtsvyl{yzyo|qxv}swlyuslwwzw|xv||rvxtzj|p~rt|tzsp|uxs}xr|{v||vn|x}szpyw}|xtqznpzlz~rioutoq{~u|z{xxwrnovv{vz~y~vqy{zmt|s{}cvxwnut}}ruk{mwdxwu}x~nt{xs{y~kzxuvu|uy{|{~o||umnf|xyvvtywz|}upiyv{|{~}tyg}tutx}wtlqw|wydxk}tuyto||nyrjsjx{wyyn|{xrsn{gtwoqul~xzptp{tu}klm{vovykutx{~|wkqjz|}rvxou}qxr}v{whoxvw|s{zv~vv~|{zz|oszz|}psu|wx|ywyz|xwyovzirwv{tt{zwuxvwu|wpwtwutuu|{yzp~vswtr~xrxqqnsyzwl||owz{qzuxpyz|Zvyy|}i|nu{q|n}wkxxzqzzevmuvyzun{{wmsvmywyvs{pytto|~t~bzsts|{}urkqquts|i~vc|xv|~xwvvr}mpXepz}}ul{v|qy|mps~]tun}jmlnionizsxsrpnZv~uzsryzk~{r{ztzlwa[cnvuuvjz~u~t|fvuwgmnliootslizz~}ptt~xtpz~um|}l|{ywhtcpmzp~xs|yvt}dxqxwxuxro}uowvz|}s|{x|uxyryuvv}x{ql}zz{snw{xuz|~zmrzumy}}uqx}|||}r{}~vi}{yz|ut{y}p~rku~}x{w{wjxmxvvty{o|qzuuzwonux~splszwozxf|uqqzz~xilwkyy}}vuz{xwutypstyww{pz}}w{rxwuxnz|uxi}r{p~zv}zw}puty~qmxwj`_sy{hpy{pw{uyswv}ztpw{~pvzon|rzxwxqfotqw{wsl{xwz}~~{wlyt|u{vz~lzyo{uyzo|gkytzvlqvhppvus|wz|vwtz}z~ur{ql}|hntwusw~tq|xzuyx{exzyuyyzynosxoqznuprqvluu|t|zrutrwxxrq{l}yu{p}wq}rttxsyqvvrs||{vm~zw{wstzv{o|nvwtxljtw|kluv{wipdgk{{xvwoyz}qx}umntptyx}wjrrs}tw{wm{ookku~jyxslutw{avxzz|usjvpisouparzhmjz|wwtuqyqjxxtoq~~{vv|r{{]|pi~n{z~yuruyk}lxpw|tfo}wxzbsssj|nwyox~tyy}tv}uxq||rlbqsqv|x}wy~toxxrvpzym{tnrytyszvs}mp{lurj~{xtllvvyufo}vw}szrg|g}on}msqr{}pqhw~mqu{q{|}wovewt{d|qyh~rw}uvvpunmsniw{w~|mm{wczp|o{xr{qw}o{xiutqwyt{ywsyyvsm}urxpvrutsww{{xx||xthyym}t{{uyyu~uszrtrx}sq}ux}}urxtlx~oyx|qyxz}vtr}w~z}~}uxyzsvk}u{ivywguzpj`~|yyu~l{|{r{xysvptr|{hz{yyu{wx~|tvnt{p}zpy{wx}q}|{u|yt~t{wvujlmjuoriyzwxx~|{}}|uxu|s~rl{|tw|ousxynzwxw{vk{yp_st}vkuvtxkxkytryp{~xo}rx}us~tvydyrvzukuytyqxp{wt~z{kxys|qzyoy{yvz~juqtsxyt}xzzxwuw~uxx~xz~~urzomj|ouovrtyhmytsvsxt}i{uzpvu{{t}z~x|s~k~{}lwyx{xxy|qyx~}lr~xwxz{v~|ha{wtrss~zwuvvv}q}{lb|twyr|styt{ruv{|u|r}~zpqqo}z}wxlyu}ms|kvjywvyjuqlty|ot}zo}{jYo{zm{v~pz|s|ozupz{m~w|mse{}suvun|w}zuostuyv|rpo{~yg}p}uy~tnyny|tpmuyx|w}xyuz~ta~j}pwujuwy{{cvqqurpzgut|yx}x{oxzy~ns|lq|~it{utryy|nv}~~nyu|z|~vq{vylzykyiw}v~z~{ut|rr~t|uwvs|xvxtxv}~xz|~rvw|rxmxy|zqw}xnt{zux~zqyrsyywvs}{zlvtoywj}x}wqn}muykmw~xoyvv}tqv|sqx}vtxspu|zswhnss{zqup||psyyzv|wrj}~qvvv}p|pzqwug{quf~nxs|us~sw|l|t~ww~vx~tjmvtxxt{r{xwuqe|twpwxwwxyqr~xongs}zzz}pkwzwk|{a}|}ouet_yvxlxzzg||{ua}x{xzvw|xstq~nq~}~~|rzywty~{ssyoysw|gx~vhwwy}{yx{~|}w~mwpysws~yptlxpv{sxpy~}yvukwop|lkptutx{svp{vqz~{qzovyuzv}vvsg{jvti~um{wyz|zwk}lur||}k~Xk|l~{i|r~oun~wnwxwomywqqawy{o|~}d{z~|ivl{v{|xnm|t{{wk|zvzxz}qrnz{yzemnrx{x{~yxz|qq{z|szygvwvbqry|xvvsyyzq}p}z||{~}vw}zr{un{}|s||h}zuv}vzwvxxqr{uhztx~y{{xw}tkx~}w|vj|hriytzgy{~o|yxvxbt{vvz{p|y|zwfo{exzym}r{rwpos{pzns}|~zyzpxmz|z|}y|v}tvhruim~ulluxttwqwutlyixuyuwmq{zzhv|zrum{lwyutxyv}wspu~|~|ruwstz|yy}rnoTojy|l~xt|y}z~p~l~ys~~vv~}}{|jly|}rtr|tkj}ho|}|zswuu|uirwr|rsl{w|ix{tqwwzfqxwvux{z}s|uqsrwxtvu{qxzz}uwwxnrzjxruvm}v}rxruj}s~vsz|xs}l}~xl{}r{wywu|^t{p~utqsx{w{x}vwyv`xsqpmp{ty{sqyzqyvso}~{tvrvesr}rtwvs}vx{xpyr}mz}kzdiy|upy|qmwh}sv~ztsoyronppwxt`pxy}{~xzu}phvmwyxhukt|}~ttobo}l~y|qq{y~tmyvj{uyyty{qtxq{{s{rwovtzzfzytu}to~}tnp}qypa}ye~uvsdrrsvluvzwytsxiv}wh|x}^omqx{|v_fzzwevrrq}ptbyjk{|utyqm~njmpyvnzx}`ljxgp|iss}r{{st{a{zx{u}xe~xnjry{p}yhy}}gu{dh~wyx}xargvhv~oyz~vy~|ugvlsg[}u}|~wqmnyOyxymivy}vlyrx~~zcw{xssvsuvlkuqqdzsgwtyq|h~tyugw]}x{nyq|p}gy}v|vh|xy|{tz{stxXetu~fkRtvz}h{iwpqhqvzurspv|s~{xmp~qqvyxxy}|wxpktoqbut}{z{z|xqyxnxpfrnw{rruzwj}|rrpy~~{atxx}xu|yews}xzpq~f{}wznsxw|xzif|xov~vvu\}un{|{|~qz~zqtuDry|z~oyt{s}{unyw|{opnhv~k|qrv~h|uzvxrzu}{s}wlm|n|~|{ljozupn~q}w{^~woy`jxqsgq}ql}ws|xzyyslpuivzlxjzcyoywvmfr}xxdykwy}uwrvzwp~|wyx~tw|~zu|uuhzrzwzsnqvjvm|{l|}jbrmnqwypup~tuqyuv|{ty}vol{}pt{{}vtuqxxuvr~{{}w}zx{x}xtrxp{oxx|zyuxt{{qwwuwowvxsryzwzz{srlv~tstpvz}z||yxxzuu|rk|vzxzz|}ypvw|wm|r~ut~||xt|}us~x~x|{vv~}y{yxsx{ww|xuzrlq}yxoxzvxmusu{rt|wyy|uuwhww|t~ypyn{~xwpqq}z}wuvnsrxlvzxx{trx}z{pusytryxks|snwrvvwx{|zs|xrxzzuzy|xt{osq{|yxrmtm{ww~}wyx~qpyvvizw{xzq|}vu||rrrx|~twul|utv|vr|pryuw|sxzm|nk~zxz|m{zuwsyqnyzyzz~lrzz|{y{v|zxtuuudun|~~}~lzqhpwwe|yruz~uuxppvqbvxsuwunxoqnvyvyvz|}{wvy{xuy~v}z|~sg{{olp}|tt{{~~}e~ruql}tywmqzytjk|}quupot{vyvxxz{rpuczs{j}pjsiurz{xyqfv|x|omizcnvzwxs|izzz{zwy~Rrvymp~z|zvvix~{p~mtv||mv~nsuyxu~yh{|xzqjqwy|~wvwuzyq|ipwxppvw||zzxwu\l^vjsvgzvuyotuy~wxr{sus{|sv}xquzzym|r|frswvxvq|~mpsxususxrrzsvtwupoo{totp}{xyxozo}oty}twq}yjqkvpqxwyvsi}ryozyvvyjqmzfh{m~x}yrwt{uzyztrzwwvzwwupzvyu|}wyuz}fgw~yx}u{rp}rovoryuq{{y{yyks}pu{{^x}}vzzvpiwx|}}jyizgkzrsquyvmokt~s{|zpqzxzvlym{xv|myn|to{jr~j~mm~v}g}mppywz~sytrurrqrz{is~vv~zs|x}uqt}o{t}|xqyru{~r}wwq|tp|out~wpysuxxy}~sux|}tpwmt{|xqvxmuswzxm}ttlynvsp|}qpw{n}xlr{xysw{rtqzw|x{w~stuq|t|~qxpt{vxwukz{~~wy|qwqxkwqx{}{x|tq^mrvr|[r{}qv}o{~puty|mttwrw}llwsp|zyuSz\l~uyusv`pvt}rtpil}rn`xvuxylpsxptl|lq}vp}yp}u~psrxw}yjy}}gxwqywm{sronz~vjt{xdwunxxxvivsrsxntpiu|h{u|snwwykzhzqutpur^w~z|xhm~w~wrwxq{}fymwvi|n~{|xwzdp}jvqzw|zo{~axvq}ntusznxmtpaylr|ztmzzx~hi|wxzw{{}}sy{xsp{xq{ot~}do`pkyqeyxtsufw{}suroz}v{~rzt}xzzpsuvqwzpndg~rr~}kvzxw{~gw{||wuwupx|~ww}xr{}puxsusw{p\znstqu}zryz|n{u{wyuzwtzwct}|}|v|s~{zysjuy}|ww}y||z{|spp|ojx{qx}oxytvxpxy{z~xgqx}rhsjnbxoot}x}}xbv}|zsxmyl}x{w}_xy{ceZuj~myh~|w|\zr}zymtpwo|q}{wedt}v}}nXd{vn~tyzrpzuu~rO}{uqyv{~{m{rx|kmoy}uyzn}vsxq|wxuw}zc~ywwvuwyr|xys{xx|vrv|y{}{x|{zt|oz{u{rzxnyvqty}u}~p{lf{vvu{|sk~utmqosu~xys}zwr{smsittvouuy~wwy~zqyxrmsvz|z~}twx{xxuw}zyvwzou{s{}mw{owyrtxpwnnhpvz|kuyo}wo}xzw|vuhi{s}~zjvux|{}{x~tdvjmmyij}xx}ziwzulizt}{c|ownuvpxw|zxumq|}pwwls~|oou}zZmt|s|yrnvpoxuqxpwyzx}x~rwq}qg{yumzsov||}{ihy}vmrml}}w{qwjm|yi|[y|~vsns~z}psbuyxltlstsh|yjzew|zyu|pr|nqxwe{}syx{{wkqvtxjvsvp{uo~s|uutzwvjsqltz}wx{uvbfx}y}wxmw|{tqkyo~ow_cmss_~z}qoxt~vyrqtoxs~zhzw~}vwtewqp|d|w|}sjuxh}ptuw~x{uot}jst||wuyo{t|x~|y}ho{zs}|z|lpnvlx{z{p\szju}}|yfvkgfr~u}svrp|o}zxwyrzsuxms{n}w~ou}u{xusrhud{r{|{soyvrvtqv|r~tiyztwl}mtpzt{rsy}vysqqvyzsphxxwon_}wxzwwvyqphrdgujdmyhyvyiv|upq~yuw{vhtqyvuknuvpt}{qo~~uxpptj}lru|}y}nv|h~|vvxtw}i{qnv|{z|vyvx~v}wyyy|pxyz~w{|yrzty|~}}}uo|n|hvpuw~y~~ys~n|x|wtgs~|q~vyszwgxxuy{ppw}syztwux|r|z}oz|w|~txsgz{o}xom{yyxpy~wz}{yz{yduvy}z|ttr}rwv~pv{z|yvzw}z~zuvzt|tohw{tr}p~xxwurz{k}qytwv}rzwqk~vvpv}swtzuzkyyyk|jsyywlsw{vz{}{z|vzvjy~{}zowyxwns}qx{xors~xwvyu{yvy{yyzpzsqvvywy|rlxp|vqztus}vrxi~uy~r|uu}|wxz~ps|s|tuz|{zttzu~}xxqto}u{wu}uy{|tw|yxpmqx}}~svo~}_vrwvlyxwzcu}|rwqqvwx~zz{zpuv~vxzqszv{y{z~}x|txtxw~y|jz{rzlqssu~qswxupxywonzxw|uyx||~}{}eiqtzup}syt~}\v}qwwz{wsu}|xi}thfzzretvuwsl}l|uz~yvzrxu}{yww}yqvp}sfl{sv|{xzxlomzctwrsrpvtyyxwxzz{vgxyt{|~rz||ihsizyxzr3t~}ziuwtz|tnqynx}|tvlx}zu}xsz}|pwrotjxzv|}yox}q{tu{vxs}kyyv}s~wop{wrv|wrwolip{~l{wzywrsuwxt{yqotzou[|l~uvvd}y~{ext~|r|ye|toyq{}xptl}wvm{|pw~s{xs~r~zpyyrkupy~~|nn{vl~vxlwp~wwtw{{zhwrx}vrztvs~von}}w{sxrnpsrpym}qzyzistz}x{{wvyj}}tz{yqtzzsy}usuxu~z{{xvzrztq~uspvsqywdr{p}|r|g|nww}rlvrlpzr|m}svvu{zyhqsswrzlq{sx~~ywpyz|{yqwavvsq|tjwuqzvqt{x}fvsy~z|uzzwk{{w|vmo{xrwrpwrt~}{~{}sly}udrtxr|{qvurstvvzs|s{~~{s|zvuuvnszywymy|t|t{sv{wu{lmwz~t{thptvk{yyyy{wyzsy}vt}qt{{`nuuwyzp~tgq{sv|xwz~nxu{tp{gq{tqp{uznxspwmz|j{{qwtyrsp`ywvmv~l|won~zuqw|f}xlmbX|fsz}uy{vsx~woy~rtzkx}qtzsutxxh}x}s|zx|rkzo|}~pzrv~~yyw}wuw~~{txzx~}||nsj~u}z{xxw~c~ztxtvtzqj||xjxti|uuw}|{fqrwtvs{x{~|vvu{q`s{vzqrzsy~r|~x~yzwozxqhyqhkxo}{t}sjzuwxyxn|v|grtzypnwltr{vq{s{{fys|uzwwvmmwx~i}npuizow~myzu|wzuo~yttotoxros~wyywvrgw{izqo}jvfiutt~r{p|zrgv~rowvklppxqqystyxzyy~vo|uyzw|s~|q}w{{wqq_o{nsnhxhrS}hykkix~kvyfxnd~w{san}}sxcqu]~Tg`ioc}Z{nsswyw~wKg`n\|msi[lbgv[sovysbwnuyp}{frx~kesgjjq|hzQ{ztmsz~d{Truzyzyoce\{|qsbg~r~npaftyhl_j`{x{izvx{|vylzzzwvfq~n{mhrs}s~goyvtytvzu~lsf|perzgy}qsoussvvetkw~qy{nr~~qt||{eƱu|xzp~wfxu|~vzzxi}xnqv{rtuwv}|~|ss|}qkogzkop{xv|pzwikxr{c~krc|xge}rqvjuƁuoyxjyky{n|gw|ompuyp{}szevmyvn`{xvvstypwznvri}n_ypvldzyltuxnwpxvmss:~}~vpmyq|sxj{souipxw{ztj_yrqps{skw|puyus|ukszzlnppxpyu}xm4gyyuwrwsvwqmnv~z{Xzv|gsyvrtjswg}}uyxz|vxkwn|vus|mqy{wtwi|nxxijrht~mxpwcvv{uyqgoup|uzzlu{uVvy}}wvyxasiujwdsrrznm`zY{x~vkx}uzspxwtqxwv`ugwnnurpqtw|v{x|ttfyju^|{z~u{{x|yy|z~~wrquxow{zxxwtyu|x|}x{~{{pt}{{x}y}}tz{vy~{xwoxvywqwl|{s}r}rr{ut|v~wxv}sy}{{sp}zvywxfnvzsz{|xytzx|v{wjtsuxstuzlzwwwkv{di}xqqpywtvur}qtqzsuz{muhsl~vtxypuwixslyx{xrzoyuxukwhtow[~vyz|vorrxopk}ljxyjrjxxzztx|zq|uleyvo|~nznivu{o{w{qgzxltkkouwwvu{trnk`tyo[xTwhzlysrzp}oox{|vbno|wqttq{z{g|a~ncktuh]qqd[ly||o_|}kpxxhkyqb}l~_\Zwyttxqqvjvat~ltzU`}w{urruqujyt~^r[{u~mvbskxp}xsvUvz~xzt~|rzuyrvEy{||syqwxmw~ys~ttopsx{|ypwsytxxwomxyqju}{g{louoxkxjvuvpu~|wxnz|xtuprto{huz||p|nzqtysxwvqo~rn}l}y|fzrz}wzzfux}yx|pvhuvsouym}qy|ssxnqwwhv|ztnuq}syznvvzz~^yfsxq~ftzoxvvp{jjmllqt|ywtlry}{{yw~jz~vn{qpz}lzmtz}o|os}_~{~|xyty{{jx{hwwiwhsmpsdrrlnm}}wgp{ioxxwtqs|upj~~|qy|t{zww}pq}vyzpksx{wn}rrsm|xkr{pvp}~{Pqnxs]\uj}ujek|qzz|mlsvyzcyvhskwuwrl}}kynsvndloi[re{t`rnjx}sjjsu{yw{qxw{vvyuwu}}fkxxin}{zzu~`zjwgqvb}uh]{npdh`sisrx|~w{~mq}{voqyyrzg~xgzjxxzwsn~j~vyr{||rox{{w{w}xqxr|l|tnznqwz|x}vsztxry}kv^|ypx}tmosy{~ppxnn|w}m~~uu|ovrvt}sw{}}kpwt~r{qtpo|mq~~wqowpzsyozr}yszjhvr}{chbQpufk{X~|pR{qpg}rjiXtszup~l{xwjwpy^lohfdjp|uzrx{{^xg}y{poagzopsgtjn|gmhpafvmyhqve~ionptwmucpvyhst~}yxukhquqr\~l`xwa{nhnfy^er{qdmu{i~f~{sjzreveyre||{qrvvpyuy~y{}sxez}|trlxss~jrxzzxu~|z}jtynmgu|vts~kimp}tpwxz}y{}tq{|zsq[{o|{soadyzsfwysyx_twp}sj_|vw{lon~e}o}yrv~ko|ssvjtjotqvwf}v}zwsy~ux|zpun~}wcyrufm}s~uwqzmwscqy~||{}wtuxnsvt}yyokzo~}xwwlr~rytwsttuq~V{vlyv}wktz~ytudx}{yqrr|v{rbx{~}ryzvw{n{ts}ny}uwy~txpy}~|wmux_zu}vxwoo{|gwohztu{p|vsoy|qsn~sy}u~gr||{xuuryw~npimvt{wsx|y}yr|nspjqnu~{|ozst|hyu{lxx|{{uz{~r~wuqw}xttwwsp}xxwxtd|t~ysyt}|rlznz}tyytiw~x{opunrtxyxspzty{ntnk~{|wvz~{s{z{w{~iuuxgsrxxs{wzvrt}|{kvqsu{}ku~|xu|}|stv|r{syvk~~lxptuvx{uvz~uzriyqtl}qwzwwspzotuz|}vyru~kxjtx{|}xt}qg}}{ytmwx{prwjpyo~u~{uuspvznpw{up~pvurtfyu{x|yipmwrztwu~wrv}sxq}{sS{{mtqyltw{u}xuzW}sxztnzqysspnyvm}w}z|{nxxu{|yutxx{{r|j}p}rv~u{y}ov{{zzowy`|iss{xzzv||uxyvpasv~v~vyw|ypzm|tqxxjq}usnwxxz~qzwr{kezu|yxu{xv{syvxzzxu{zs}|oi}{|z~vvxuw~u}|~zzjx}p~vv}{|nxsdwzz{wlvn||}~|u{ruvxv|wyzr}{zypuuuovtxnliidrsvx|twxmwm|ytwj{~uqznzvvVsvzy|us~}ozz{rw|zw}_wrquzwc}u}p|p|}yyBttjvu}f|viyptywl~zmu~quwm{zx{}~usk~kltx|btqfqrpwv{dl~gy{}rqyr|}~\|}x{u}hvtyd~}~t{{zsx{rvmyvwl~~stxkwd|t||oz{tw|k{topuxse~xv}tzy~|z}|{~}ssrovxtt~y{tuto|{nzu{upsvoxmlwxapxp{rye~~puop}{|tdhxuwvkz~u}m}pzxwsqft}~ov|wtwz}rrssp~|yx}}qsw`kh~|jaqeylxrgzzyp|mppwt{tbmnv|}oz|szvtxndtrzmhzmnx|lxt{`uw}rl}wsz}ptTtriug}{z}|syvt}xmsjx{prxdstvuwpn~oxt]mttzxs{szz|zIigirc|}xyqx^zositvvzipj|fsn\in}utr~kwznh||tvqr|cfvUqwsdkxd~yw{|duh`xlxynX{h~oJxy|{y~vwwy}xvyxu~x~z~}xgywyupvi{puyyx~otn~t{xq~vz{z|wrwz|uuz{|}vwxz}jxqp|s|{}u~uwsyo|wzvgl}jz~ro}{s{{y{qxv}{zz}uktxoyzpyyuwxu}{s~}zr~sww{wtwswz|unrsw}zm}Sxftt{s|kxsrhuvtfyypwwws{zuqx|uwiuqyuwyzxpkuni~}`vt}wrszixrn~}pzrfpzryuvq}ksv}zirsnYnv{rlxv~oxxzwlnzwwzjtrunt{{n}gwr|{vpauu}phzsognpzx|ronsxzzz~xnqzw~~|nx|}cz~pt{wu}i~|ums{vshu~{~wn~xmwuit~wpyzx~xlwsvuysux~zuhjuurlJr}|yv||zwq|os{tnw}mzyri|uduzsiqz|xp{{{|rx}vy}hqujn|~o{k~utzdvvn]o{my~uvxh}}qws}qtxck|tyxtyz{p`ppgumq{~qhxzuz||rxzs{rim~t~y}usp~cus}etwxzslo~qsvyds|Vukhxuwkvx}mv~rytt|qr|izsys{zypo}svo}{qp||tijttu}zw~yuuqzzrxmjtyyh{wl{jy~|}t}ohjxzgtytr{iuyh}rwvvtzuwxqv}z}uhwsulvr{wztsppivqyxlukpzsynqu}xusrxszkxt_`x}{skxlxut}m~n|nyv|rv|bwyur{t~p`xx{zw`zxy||>~t~}x|tbxmkqnwtz~{xvzssqu{uxyu|jwwxqu{Kxvut~ruxwpsy}wxsr{w~vrj{rtxlpv~vswu{dxw|x{{qoyxsxym|xtpkkptovpnkzr}{zhqsxxutzk{qrm}}vxz~jyqyhr{t|y{|z|x}|~q{}prs~vutk}vzzq{p`stxys{zu{w~y{v|||rvz{wyvzmjrsxsq|{kn{f|vrtmpxxvz|}xwuw{yxpqxvot~{x}vs{ktvuryq~~|s}|}wsxuzmfyxyp{xumry{zn~zz|xmq{mmzr|~qkyo|vyw{p{tuo}vxupx{nnnfu{qv~x{yovpz~vnu{|ps|xsuh|psmbk|<|qxvhylou}wxmNqpuYxqVtxU{Kx|m~jf]t[tUfykpuyybl|ovggQ^|xtoxREz|]~.Q~dahkayht|sx{er{nR{[Y7qqw{lxmsiQzx~mviEY~tz|x~\yZ~Z}]jPsw{q~lvznzvYqV{dD||wqppzq{owusr{\oyzumnvy|gvvle|wz~vwwv{tox|xtsz}vz~yxxut{z|itywy|~xql|rxrxspysu{uox{~vvnvkouzsno{q{|yxs}ytxv{rsquvtue|v|{~y~~xospzyyrsty|lr}{~|yoxxou~pzpvwws~wryozzzrwx|qyzmlcxvxxocviwz|w}rwuxtqqtv|u~xyzxyvp|j}zz{zwfzwj|y|x}xmvxzysvupes{zur~yuw|r}z{{wppwl}y}qsuvx|}ux~uw}|uqhqqsykwltz{wzqzh|{qyy{wyyw|puzz{hsvmv}x|{|rxq{quay|xn}mp|uvrobp}utzw}p|otupowzxmiutykotey{{quyytkmu{{yz{s}yrtzt|x{mz{s~trurqpy|u}ororLv}{llw~tegpkxyzxoyw}~tozq{{n~u|r|ox~fvqv}woyrmuxq|zzjm|{ypxr{||~{{nx{y~vyxt]xtqjpTy|lkgno{mpsu~{}hi~K{u{`txdrnqyyuwntsu}~}r~ozwnh}zy{}zrwrxqxzvzyy{rzw}us~tt}{ezswxe|w}xxtt{yzpj{rrr}~u}hnx|tx}so}qvprx{|pXt|~urzww~Dxt{yk{rqy}pmugo{{wsvcm}lqxxzv{}s|{}~xjw{lq|xn~}~ow{vrpu{uvzyxrgqxzjwxqnvwyn|}unyyor}xujwws{|sryzp}ksk}~kv|ypq||ov|q~rutzsxpx|tkyyxmss~soryhon{{vyruye_tsv}ly}nust}oyqmv{uz}tzxwzrotqhv~vptvp{fm|{}{ppost{}zuopo|tdlj{vx{~tt{ptuirpvwnx~~sf{vxquvyr}tk{~yy}tuqvpqTunxo~nsptpsxtyz[jyx|rbpzppt{uv~vt|o{l_}y{p{lzituso~{vrtuuqx|x|turyms}nwxgqptgwouktgk}xqtwtsvv}tqzsqhitp|s~lu}tuz|p`orr}}jyitlyy{zt}v~rz{~~yyzhqdwmsrwvimttnntvuuz}lzvtrunwk|v{viy|v~{mvou|f{~jwvuxaitmpuz_q~xuslouxxtwu|k~guz{mpv~ivs{}wtruwvr}y|qz|~ywmyw{wxy|{}qqvwzz~|x|[}kyjvo}s|yp|r~rvy~yy{xrxyu||{ppr}zwsYw}{zrrvoq}sqr{y{}x|~~xut{yxzviztluo~mtntyyip|xxsprvwzz~{vvrmxzv~vw{xtspu}{{ystvnqoskuno{p{}tswxu~}~v{s{h}wyvnsj|uvzmwulmsvtkc{nos|x{yrzwyt|{yq{tv{ml{xzytvtrwnpvu}tv}xv{q}ucuvxwuvxyx}~vtsvq|xt}q|z{z{xzu~vv}t{y{u|s|v{p~t||v{~zputw|{}ux~|v~z~|v|wxzv{|zy}z}|o|xut~wr~{|}|sxyx}~s}|}~yr{wnx{vx}s{xv|z~tyyy}wy{s|}ywlw}yruy|{q~qz~~zzyuq|uzy~ttx|vy{wtx}x~yyxqzrl~vut~wyutwyzmtq~~rwvstyvv|wp|sr~sky{~|yzwm|ey}x~yru~tqx~~tz~w}voqu}{rvpxr~|qvsqx}zqkyrso{vut|m{ywrspws{uwxxmw}|xz}z}}|qwzsq{~y|wjqtp}{vv|kz{kvzlwxww{|u{utxzyqunpky{yjztyvl|www~{}yw~k}{xuw\x}q{gnx{}urvz}qzyzxyzrwswp}xxzk|z~||tvvwruz~x~uu{}yry}}{z{yo~up{uqwv}qyxk|uxtq~|thyytwypwy|zvyv{x{}|txqr~juft{vku[yx{vsxyblgqp|t~q|rmln{tj{pwnrx{m|~xxkv~kuyso|xqzuzrx}s{uunuvjqlquy|{u{|su{~uyxmqvwzvryzrzyyzhp}|wj|~uwyuyzr{jyxvow{qwzmxz{}u~{ymr{wrc}xo~`}jo}s||wsu~yyvqz~v|ys|{}~ko~oy}xpy_jpNzx|hyym}xs|}ruxuztyzjm|f{s|xymr{tmwzv{y{n||svn{tvwsypm|su|{s}z{tup{ltmuux}{}s~ourpytpvlypw{}wtxnpnvywq|wyyuv{twxy{}jzuxnrwpwn~fvwzh}ywt~twhztqyxr|xth{~zu~oxtwwnwt|{ww}{~jw{zxtr}}ppwrs|yz~vyv{y{zxlwz{usn{|xzq{~zvr|rw}nzt{vzxu|{svxpax{x}uy}udwuz{{s|qp{w}{w~lckurp{uzuv{wyv|wmruyomxuo~p|ouyn~oyyxuwu}{ro{uzr}vut}qszvp{o|us}}y|}xsz{}|s{v{v|z}v}}v{{ou|rtou~zutuu|yxy~~mt~~utzx}y|~ot|oxzkvqxu{~yustwq{{xs{{{yz~twowxt|svq{|vxwxyo|rwyxr|wwx{ztts|~srwzxs}r|nvxqp~to|x~nzynz}swvtrvy~ot{xrsrvwzyw|z}u{hxyks~t|pwml}sw{q{qnuz{xlv~yvdzzr{xl|{|fw|zswyu~}t{wox|zwdyv{~ti~rzszwmw|z{{|vpqpx|}{pirvmtu}yr}_x~gsZrr~sxbxqlpqzmom}wjzstuzuyinx~zgn|xoz{txzxrd|h}mu|yf}{ssz}twpr{wx{o}vzuntpkq{znzx{vqnxm{nznxqm|psqxrott~znvzyxw|vz{on}tt|u}{w|w|xx{qoyyutv{~wvzy{~~qy}vv}xnswszpzsvy}wrxvqrzvyx~tzu}wssvxyv{{~z|xyuxx|y~zwru~mro{yj~qy{{tu{y}r||x{||x~z{{mswv{{~onsl|owyqsrv{ituz~{txyw}~|v|p}pupx|{tlxzupxwyzm}~zyuwm{}uj~vy|z}xsu}zvxuztsww{{v|{tq{vox{}yl}p|rx~t|zrt~xyqnxx|~s|~ixxvu~xywsf}qsntzrsyvqwy~w{{su|t}ksn~}~wzpxhwn~{vt~{zy}oyrr|w|~zv|y}~uvw{}w|uow}utr}|usvy{stz}uzr{umzzt}v}wv~r|{x~vuu}o|rrv{ysqnv|vyr|yszzvuyypxt|zq{~v~ynww|ow}uy{{u{~}yr{pyvzwf{xr{z}~sw}vqx|vt}|yszvz{{~~symut~vwu}u~t|{q||z}vyp{p~s{yt{wz|usyvz|x{xt{}ys{}}uvvzquwzoryw}}wxtxp|{yzyzyxv|}x||wwyyrp{{|t|sqs{tlw~{x~o|v}vstx|utuwzy|tx|}ywvsvx{rvryvtr}}|ytunwpy}{xzru~yvzz~zzx~z|xvwu|~yyx{{~xw~spytvz~yzzw~{v}t{zyjzvrqns}tuw{zyt{u{zxuwyvnzq~ywzpyyt{x~~{xnw}spnypw|wpyzy}u}wxxw}|{trpxxu|zuu{~oyz|s}}~xq~{~{s}yzztv}{{voss|{x{}|wux~^{~yvuv|e~vn|yot~|zwy~oyv{zx{~uwy}y~rsst_{}wt|s~yjzjzm|z~zxxs}ztxvx~{ovpf~p}{~pxyvkyzw{o{xvpuu}i{rsvt{wnxrw|zxnr}ozzy}|o~vwxvwzwsrwy|w~r{pr{wwqr|zt}nsxrvzrwnqyyrtuqzouxxxzxyx{~zyk~}{}ssqvin~wsvq|uzrqzzzopnvz~uvmmrynw~~uz~v}xxtwqty{snowupwztuux}qw|{n}zw|t}v|qsyp~|ixy|ov|zqz~tyswfn{wznmxx|zvltt}rtyxz|zzuqzyxvz{zs~~syyzmy{lktuzorv~}nw{qyyu|zzvty~|zvywu|y{um|uoly~{tlvv~zvytyuvx{l|stzvvxpux{|wzv{txkvprwpy}u{u}twu~~{svy{y}nns|yq}ruyr~ywxwyuy|yo{{}o}puyvnszwkztoszssux}~{tv~yzxtw||ruv|s~{xnyv~ysuhvww{uw}wtz|tttwuu|lsxw}xo|}xsyuwqxxcwu`sjqhvwups|q}mwux{|t~ltBy{u{ywrux|~o|s}so~}~gxxuu~{ut{trv{ykzvwvlw~x|wvw~zu|zuscpqywnm}~wo~qvpq}xuy}x{xsmqrzv}{}m|{xhvk{`|tmukrz}x}tsyt}tst~wttz}|suys~|~y|rrqy{tywuzq|l{Rrq{{}mmx}|swvyy}sxt}{wxss{zytt}qpx~w|vzqju}|{[vuv{qmqrwb|{r{|wyt{y}{wutw}vtzxwt}xwsu}wt{wtx|u}vusz}lxvu|u{xvv~y|yuyujxyzw|w~yqyuv~t|}s|x}yx~xxpz|t{p|{|vrr|uy}zzyoryslu|{yvv}ynswu}}}zqvw}~y}{{|uwxq{v{xuv~yuu{j|j|yq}t~}}oxqw~xy|~l~xmtw}{y}|zr~p|~{~|vxzn{{z{zxrp}wyqvrvquz{{vytyvx}zy{~ktxozoz|~}|u|lwxpxwsu{xtu}zuw{x|yr~y^y|yu{vs}ytu}q||zjquysw{wy|s~wut}rssun{|{}}yxowu{sxtrw~|qxiw}vottny|xr{|yyuxyxqtq}}rpyy{wuzszuvl|~vv|tsy~yq|yz}w|y}rpw{qouyxv|~yzyvuqxopyvmnlw}xv{wmxvs}p||tzv|zws|~uuz~}yzvyyzz|trsv}qwsvvvu}vvy|wx~}{yz~~vs}j}{yxuvtmpqwu{xr{n|pfoy{}u|vvsrqwzn|w|w}x{}nzus|yrnz{tuvux}zl~~zuvotr||q]{xqfnmsx~rwosvt}_}sriw~~xz}x|v{nrx|}|{j}tqqswys~zu{ox|{sqvtuxusytyt}vtxy|wyuqwny|xuy}ouutt~}}znsxsyxssx}{u{qy{pw|{{z}p{z~rxzsrmxwp}yzsxvpzv|yqn~r||~turrud~}ztkyzs~yy~r~vi|{zvs{xy~z{stxv|uxzo{t{yyu|{pz{uzzwowzztsysxz|xurq}}zx|u}r{t|{}yxutuyvvz~}|u}|{kzvrpvr~uxm}~|ytrzsx}vuyupz{u{}}q{ts|mwn}aymhuztuzb~{ude{z~xzwpuwsxvwluzywzwuv}{t~wuxu{ek~y}y{pwusl{yyw~z^m|rv|skor}u}kuuwwa|swbw|{m}|gxxwl~z~pjzxtqtyx~yz|cxss{uw{{j~ruqny|z}}~|iu}w}bqwypwpotwytt|psVvvy~zx}sm|vvryow}zzzu|z{wy}~rpzsrxwxzt|vu~p~vs{u~ts}ut{u|{{|qtsnw|z{{~~y|r|~s}~rq|~y{nv}yi|v{|xzx~~|ovu{s}wpy|wz{}}zm~iwmv|xspzuzyp}|}zwz{~{txvws|zi{ywtx{}y}t}xzsvx{{u~zwhu~tpxsz{v}g|{luq}unv~qu}xwyk|u~wstpzvwwqtwoq~}trsyxzjpyzsuqw~~uw|vwtnz}rvt}azxur}zwwyzy}sxfloquxypxs}zr|pwxpuuivwzx}v{{xqy|yyvyuxsix~m~tursv|pxysxfwmp~|xzx}zy|~xwsoxo|~xwx}vqw|spziuwrs|}rxtyx|w~z|wvl{||x}vsw{||wzu}st}t}sowssx{|}px~}rwrl}~u|zz|k|zy{wzzyp~|x{w{kuxzqsx~r{vk|uwxytz{l~p~{zxm}mzrrr{ryxfvwultms}v|vzqsfrmprww{omvsqswwqwzyvwywkz~|hrmf{mpyr}ozxvrnxvrqvwuovo~o~ss{sl}Muz}smhuwpnrpdywpvyxntgyvqvw}vvrmvpwqept{}}zht}~z~zqtmxyzr}x{xtwssv}q}y}wkxqns{vzwoi~}lysuz{{r{s}}sy|tzww}}vpv{}{|z}wzvu~s}tqyxww|tz~wsyvw{qtyrwv}}qzwqvvr{}tv|szy|uz{|izuvxtr{lw|}{ym|x~rntus{twz~pxvrepvqz|stmmt~~t|vv~uxouv~}wurrq|q~zoxnszypxv~w{uyv{uro|wvf|}f~v}z{zw{t~rov}u{jwyys|rqbuvxu|vw{s}w{u~nrx}z{}t{hol|{v}{umkp~t~~uwqi~uuz}es|l||ut~{wz~qzz|s|xw{utv~{wz~u~wq}xxu{x|r|x}~m|opsru||us~}uzzdzwz~svtjx|}~x{yrx|r{wyxn}y~~xwzyv|j|xynwozmtzv~~x}lttknvuttzvy}y~v}{wtju{xzrtxzstq~sllvranxzq{yrx|mzxcrvvv}nkzwypwrv||trpvzz~rtwsvs}oqxvur>zvnk{~lt}}|vwuw~tuj{txfmpsph}rnkknxwzr{^|v{qz~yzr{msyu{z|}s{uytx}sqvtvw|r{l~nxv}rtsoynvswvfxuwtw{t}zpryrw{~|{|wxsfty|s{ur~uyhsv~vtwx}z{n}xp~y|xvzt}gz{vyrxzqr~yuuzzmruqi}~fxyx~y{l~~rtszuvwow|}zyt}x~qpmjmnszu{osxoqm}zx~yvgy~o~{~p{v|ptvytur{{ywyytvu~|twxsr}}|{~w~vs||zz||tp}{y~}tpovqxs~pzyt~t}}xsspwunrxwy|yxr}y{lz{kpx|o}zqi~r{kys|ux}u}sx}suzlmw||z|ul~}|zuwzvty~rhnztx|m{tzwrv~wvx}~rpqx|u|~wx|||u{yyprxlmnv}~kvspu~r{sw}yxzqfxzwurtqxnztzvss|u}uwvvx|y~vvtwi|wn~qs}svzrs{{p}qps}}}yvnuyz}wyxxqysxzvwx|zmusovsyyyr{yt}w}yvv{~ruu}yr}~xtrr~zy~}|v}nxp|_uwq{x}t~vroxr~{pv|}|}w{~z|w~tvyyqxywz|wxz}vvxy|xztpxpusxt}tuotu|ksmwy~xux|rsh~~~zsvw~~vx|ovwfzqtvv}svi}wxsvwyjpyzwkuiyvwk|y~s_zzw\s}}{~ws{syw}ursoyn|~vozyww|jyytzq~zvs}xry{u|h}srqsluqwosoprqpx}y{pyww{uo|uvrvn~r~yppstz{x{xm|uoyqvzgtvwzs{utr|[y{w{y}{ux|{z}r{{vrvv{yvtw}mqny{ytzux}wrr~usb~zryr|xw}~zrou{{~~wmt{xvsuzx|}too{usx~wzv|~v{}nuvzqrs}ysx|xxsrzt{usw{{qywrx|sty}pp}xy|{uyy~yzrzwtw{qx{yypx~~wtyuvz}wxu|s}po}tyk}suxp{zl|m{vkswp~vvzuzpws}r~wz|t|{zx{{}w~{|}twsx}{|yw}}zoyux|t~u{}swvytvz|xzuv}lrzzt{{vwq~g{}szzz{trr||wvz}uvvt~wyt|yx{~{w|v}zv{o|s{h{yk|oxtwwvqyvsyySqux~ypu~|}q|~w~ztyqt|wvvsu}~~t|tuwx}wxxty~ysuvw{uqvkq|rss{pswu}ywr~u~fo~yw~~{uzuzvso~zrpw~uywvxiwvq~u[kxwvkuz~vfq~xtn~y~xlx{ftywv}ps{yv^yzok|zvipylyy}klv}|dyykp}zxuisqzkptw}pvxuqqjnvy~}zvvxosp~srvu{v|tzwo}{woyywrh|i{~y||syytmn~~rlx|qyto|oyx||uuz`uty|uosbw}w{ulw|wusit~w~w~w~}muqlylx}qwwsdyk{u~sd{onprtw}vzprd|sr|yz}||~z|ovoirtt|{iwvotw{y|yl{{vpuvwvz~pxmzvn|s|czonwutsnmv}~zsvv{}ptvq{~tm|wy~{xzynx{uxz`mvxszqxq|zptswsyuz{nq{}j{w{uvzyuzrrynx}w~~ytv}zv{||v{ttvw{x{y{~zzwrsyxxn{{zytu}x}xsyyzxty~mssuo{{q|}uw|sykv}}lyw~w}s{}}{zxotttqrtsqvzxt}zzv{z{~}rtntp{|xu|v~z|y}mywy~wm|zh|py|uszvpzyr}u{uryysxt|urtvyuqyqpy~~|~}rv~zww{vrrxrw~x{z|vt~ktqnyx|w{xxlnyowq|z~xytw|tnxxrso{~xut}||z}xqpv|u|y{~tyut{|oysrsysrqtpzrsj{pyninkx}puwsvwlktvkrlryr|sulwzyvvwuuzpv~kpf{scr~wmhtxwimzsi{xlza_zlxrrr}u}q}uroxlyuhwyvpqpl~xeZly{|t{sxpryuxvgqwtvoy{wy}wssviw~lttwcryv|vcquuzuz|fuzzxstj{}puupnrjs{gqdp{yvv{iku{tqsivtvpfzq}ppzjvr{v}cnwqsvz}uty}uznmm~nbdz|yv}v~qQu{t}zy{{{tr{ou{q~qo{o~x|t|{}qyxkympfxp{}~mu{||r^y|udyxz{~x{wtonn}}y{{xuyzzrst|wvl{yvcqwhxz~||{}{t}n{|px{~rmwp}wv}owv~}tnxyzutzqvoz|jotvyw{qyjygyxs~pxv|pvy||uxzpkp|wygu~{s|woqpww}xw{|ysrwwzluvss{{rv{}t{rtxzx{|{vm|~vz~{uswnxvz|t~nwsw}{ywzyzn|wy~~|v{{pyn}vvy{}{k}uxy}z|{xxlqzzy{tuyypv~zywrv|{|zzrwwovxnoh{x|y|lvsy}}srpz}xxtxsv{}szy|x}{yq~zrvryvyytv~~sx|{y|vizxxwzxyoyp~wqm|r}fbr{wqru|pupq|k|ypsZ}|~wpkw{zzy~uj{xqzurs}tqi{muvnyuvnir{yvr~wrpqxswpxrunxp|xequyt{w}n}yjvyuvz{riw{q}}f{|ttxsnz}}ofwnrpys{w}|uyux{nyxuhwyw|kpzrrpv|yrzuvjvu}uvxuyyv~m}v~yqy}yx}wxww}yzmtvxwz}_w}}tsvxy}t}|y~jwpw{y|onwqmw}Jxvyv{uuw{wuswzuvr}xyqew~xuxz|xyxq|olt}qvs|o}qpx{fyywy}qxx~xzvsr}yowq}nvz}wq{rfq{v{|vly|t{vmj}tvr|{tuxy{zs}v|sm}mwmxryxztkynyxqxzimp{zuyyv}~xx~zvxwr|~}vvvvcwwqgr}wwxvkn}wn`{{usy}zzwypvwrrz}ur|z|y|x}{|vvktw|xuq~zyzv|wv|y|u{}tz|t{{p|wngw|uzxuvr|~qmzyv{usw}ylt~xxywtzpwqzysto{txur}znzsx||s|wyyp{{q{vwrtzzswwtzrqtzz}lym}yyszz}~{szzwy{|turvut~xtrttuwty{{vxsxjw}wyn{zt|ziw{tz~|v~vx{n}vv|uvn{r}{rurls|ywlw{{fuxyryk}}|y~rs}{~~qwxwkroxwqy}swyu||qkypzw|uu}{mv}zu}|w~}}{~vvs~vwx~nzw~p}swrpixuvn||vt|u|oeuo{u}zttztx~|wsys|piykwqls{xz~|q~|lxzy|t~eqwszrx~{v{|rtyyowu{nnsws{w{mx~\po}w}}tyrv{|rlpwsvwu{vywo{~uwz|c}~mrz|sviq|uw{{zxv}vjiruw||ysrxts{|zztlxzywzzwv}`|xsr|`yq}omyrzyy|ytppvsx}zzu~qv{xuwp~vvoyzq~t|smzq{zvzmy{}ux||uzm{iuyztxl{}zkvpzy|{`}rvw|k~lw|{xhks}sswwp{ow|tuywr{xyfrx}}h|~puyxqmuo|~fx{pwvuws|rwu}w}|s}xy|uzvwx|~Zyug}j~xzywxqv\nk{}xlw{}ruzr}q|zylw|u~{x~|ul~zryy{pzp|y}griyw~{nwt~wrtvptx{n{twnas}xv||yul|prwu}}rqv{zYz}uo|myvz|}v}o~pfo~rqpnygyum{o}t{}xp}tmXo|tvxp{z|x|lukxjxyk|h~puzh}v}`oiz}w}|t}swxwv{}zy~{o{{uxwptytl|{utwrtzwpqzzzz|w|}uxs}}|~szsvxwqwy}|snytqw~|wu~pn~o|z}v|{xu~u}||q{zs{uy|}{zj~uy~~p}y{y}ws|qzxu}sxtxw{z}sym||x}~}w{uu~j~x~xu|x|_nyz|wwvrs|yw{~}yjzr{pj|~s{nqvwwpwv|xtztzqo|rz}xqzqy|~vopqzn}Rv|wtq{voy}}ruw}y~rr{vz|zywvu~x}u}z{ww|{}vzysow}su}xyytmyzzk~xn|v{w{u}k}yzp|}{xyrvyz}vxwuqvywq{zuvz~|xmuzr~n~zr{yp{tr|xv}{{oxs{wy~~vzfy}puzr{ys{yy{{|autyrtxzw}wyo|ssq}|p~s{nxvs{yxzrx{wpf~z{|{}xp{pnguu|roswwr}{r{yrztpyy}|uuyq{o}tvrrtswmrxny~zmrqsgwz~x}l~zgwquys}z~tz`x|zztu}px}lxljwmruwkv}|ry}tzwqz|}wwyou{zmsvzkz}z{xywy|{wwt~~{{{v|xx{xyj~syvjry{uzts{ynxr~vwokyj}vzzyusrtsvottsr{np|{}|onn}vux~ptzxw~tm|y{ssn~ytt~}xr|vtx||yvmsv||t{ziwywzsowsx{~||xw|l{qypz{u|}|tqvu}~ubvqy}rw~{{{ozw}~kp~v~wvvmpxwq{szwe{oq||d}shtvpvw|~ss|typ~}y|rz}rrgiyxots~|p{ywz}u|~ztj{uytq~vryvis{sfzswz{vg}dxsuskasqwt~{zwyxzpm{yv}q}ws|jz~u}qqz}wp|}{tw|np|}uou{pyx||{{htytnw{xtnu|s~p|yp{wvw~q{t{}j|sw}yruwzn}}xs}rrwvpr{wnwsxwq{zr|vyy}w{xyuqtxzy~vu}xp|upysjsq}}uvyt{sszq}tu|{yzt~vvwwqxxh|zp}xwqz}u~pymls{xsxwsttwyvx}yw|thvxvrtp~wutpxuru}~}~{tvwyx|{ws{tntxthw~vxrw}q~n|u{t~lm{urpwv{tvovyrxq|uqrqyozwyp~unzgttwpq~xo{{~z{ptu~ouwt}t{nxwuyu}v~u}}gn~}~s~syw{{ww}wmy{rzquu}uxvwt~tvwxnyvxnu}}{|xzmo~iz~v|{}nxtupl}yx|zz}~y|wru|~x|vttpuyyw{tptu~~z{txs~zuvvr|y}vyvxu{{y|sx{uzzp|xs}xu{{g}|qutwqvw{w}{|u}}x~{z~{moqu|wuyqwz~n}~~ymxtx{ruvsw~|n}oy~sut}tv}~vssu{|~n{|x~~~wx|nrsyq|two~}y|uybytruyt|vmt{swsssvxuutnr|zyz{~}}wvu{luv~}h||rrk{wur{yywysuwj}wxqk|v{r|f`yqrqk{{{}j}{x~vww}|y}}u~lttzvvtyvmyyw|w{z~w{yzzzsv~nlnwz{wo|w}xyx~{~oryqpi~{wrx|qyy{~z{iisy}z{wy~zzu~~x~|tyf{~{pt}iyyowsxtyzz~y{}vwyz{pwmzyz{vxww}{|i~qs~~}}syv~ss}{oo|{lv|{x~|vxwr{\u}{|sup}}yws||x}yvum{zps|szw{wsyvzzRfxygspwyx{zwqnwrubzxp|pz|z~{su}wtt|yymv}|n{ytnx}~ajs}p}}{z|piwlzj}v|wyvwf{~h{}}wsx~pfkjiyhxpS{{vzwz|txpwr~v}vx|s~{|mxmutxqzr{tvzq~wzvntssm}~rwxq|{xyzvllu}}skn}rw|vtwxwuzs{~qzvxuw|soyyuxu|yw{uyv~wsvv}uyqrsknmwuys~u~oz}~oqvyvnuy{~wu|zqn~z}{~}xyuuwz}p|}wdrqz{rwo|u~qquu}{mq{}|xxyp|n}jvv|vuwqnnp}vzzwwx~|}x~fy{xqvu~xryj|{ze{ulyvzxowkxq~q|wiyvi}uvr}zp~{~~y{v}}rx~z{syt~}wtu|jyy{}xro{w}|{tzwtwwtkw}ny{xyyuu{|n~yfxzzqt~|jwsxs|gokwtwk{{suszwmrryxxrx{vqa{~yrsuysuswnsnv{tnbtmx|{uxu{wxuiyw}{{t|{p[~{x|lrnkp_}y~pwrxyv~ewouut}|squ~pq~mxwqte{~uu}yvsu~tlz~yxsxrrz{os{hwytv~zy{r}uw|tWw}|yw}~qnqwqwxetk{{tr}urxfw|{{x{zrui|wzUl~}z|s~jym|\y{ux~yty~}pxrvx{uxx~rzxupv}}x~{xz|z~{whwwyuxuz|tt{yx|vyxvwxy}h~{ts|p{r|{oyxtwtzlotztzorsj{pzsdult}z}pzpz}wmr_gxw|ntzuzszrwxtp{h{psswt~vo~||ut~ry||xszryvtdk}u{~u{nyjw{|m||tnxx~trz|}v_t}p~wbw}op}unk}|n|ouv{|{~qhzrxtxm~uvsvynwzuxxzor}|{r||yttw|ywyz|ukywvwywlzzwutns{ly|q|wwzvzs~wt~}qqw|y|ux}fw||orwny{lwqrwtury{uyttzyu||{n|{{wyw~wyy|tmpz{x|r}}m~wzwzvrstiz{{p|tty{sz{~zt{vvtvxutzrv}s}~uz|tusp|ruxwqxzyuzqvwxyst{xv{x}liqtu|~i_sqyups~mpyv{trpwnt~vyss|}opyyqrzoy{}wu||toz}x|v}t{s|{y|ytmszo}|vqwvhyzu~}wwvy{~ux{{m|~rxzrvkzluw{lyx}yprwz{xrxwxxyw|ss|n{zutsonnytwyru{sw|k|pws~yumtmj{n~vvmqt}qwsv|url}r|vw~~{rx~|yq}oxlpot~yy~ou~ou{mis~pww{zvt{}zzml}tm~rrqwxxrtvzwyyztt|h|}wt{out}ti{m{wttu{p{znk~v~r{}xu~mwsq}|xz|}{wts|lto~|wzpzqusv|yw|~x~q{m~sz||txxzmny|vzvtqr|{{ky~w|ixvw~tsdurpztqwqzztpw{{z|wvu~xs}y{v~wyyls~|{~w|lyvczt}s~{|vzvwy{z}{pzux{}~~riunw{yuzz}v{guw|}xmwlrwz~z{yxum~{oxqpwr}s|}}pxtqs~sm~}xxv}|~rpzxu{|ttgz~{pt|w|rvuosyrvow}~ro{|~w{twy{|{w~{~qsrtyu|v|y{v}w~u{ss}{|zw{w{krx~fxpryztyyy|t~zu}pur|~x|~~p}trlyvty}|tanppzqxr|yppwrytpq|}wf{{lj|w{xsqprr{rtznr|yzu{rltmmtprruswtzlmvvo|xwpn|{nvutxuu{lwky}vputxquiwttyvwl{|uuw~vuxl{qwy}sswnnqv{s~o}t}svrnw|vsx|z{s}{uuwspqvyw~~zruyt|quqyxynws~yitpuw~y~~|unuuqzvmz|~y}z}mv~~wnsno}}vs~}wysxnw}p{wntz|zuu|~stxoyx}y|~volztrwn|xvyzxuwlruyn}wxxwr}}vtvjtz{x|txzw}usyznzrxpvy{|ux}y~xvv|{grhi~ytvmzmhr{su~svykz|w|qw~zyrk|yqtzetvry}yty}huwwwwsowu}yptu}y{ujn:s}u{wxhdyn~~ywzyv~xxynz}cukvxzxqvyppoy}}jflvwsxzpu}trvz{z|zqwqrxo|zqpw|yz~w|evnrs}u~tj{{{zz~zw{owu}|ntoy|~{u{xxwx{vxqlsx~y}~q}wyy}qxsxnt~|t~x}wzuv{}x}|yyr|umxr{zzswzwq}|vvwxqrhuuvrzwytpsq~vt}ryppv|sxui{sxow|uy~vpo~|orvuyq}|qpq}ip{urixm~uwy~x{{vqwznv|kxzs~{ynw~}z~yvqxp|yw~v}j||oxpy~ux{}yu}rx{yyetrvqrwuw}xu~v~w{}ywzqoyj|rikm{twxu||t}{|~tywryywwyxs}xttqs~rxux~ux{tjvuz{wxwtz}wr~yswm~zspvjsx{y}xmuq{^x}{uuuxzt}ozekuonv|lttv{}rs}xrpzsus}vouu~iztyk}}ztq}uuzyjpk{wy|mnvyy|tpjyt|osw}ztc{i{nxo~ttl|~|t}}oyg|uip~yzqoryyy{}tp|sspz|~quxou}wwzzwo|w}~xss|wvru~~pi~zqyl|mv|upvsqqtuzzpvu|pqq{y}t}|yusy{vpjztsxy{zvpw|v|{oyuyz{tuhux}zzr{kw{vyuys{zo~}xkuqv~{yvl{d}xzv~_~umi{vwr{szWvy{sva{v~xtjw}~}ywzyuxxvuywz{rs|yux}{yzy~ptzo|{w}wuwwxuw|v|~~|gstouf{usuvx}ny{u~tw{mp{tsrkuw~yyvtx}{x|{sq|jry|pyyxj{wwtwyk{y{zt~w|lr}wxnwskvpnuvutzuyy`t}l|rwtytovzw|syrwxtlroh|usotvrrrvznyvxstv~y{ym{wv|swy}w~zyuxxz||h~wtw{||}}uv{uz{v{x}~|wzy}xvouowsz|{~{|ry}{tqxp{|wy|ygxuxrwxstxzwxqu}{~t{x{qwrupv~}x{runyzzy|sz{td~|~zyuo}nmst{}vusuwzw}u|ynt|wy|yzzcr~zy|~wso{zxtv{y{zw|t}ptst~qv~uvvry}yxywsvxvymwytwtrw}zrxwu}txhz{rx}rkx{xkuzr}~zv|~vr~}uu|twxsyhzxy{{~v~ymzu|uyq{}z|y|z{zzzr|wrxsmzmm}}qr{xrtx{||nxpn~n}s}rtvxqp~l}}l{}y}~~{zpyoz~syovy|qf|utuvztz{xwpnuyvp~zq~s{|q}}zoit{s|}{zlzytdyq|v{yvz~~u|wxroqkwyvyki~qzsuri~{yu~zx}||nvrtn~{pups{~vxquunxzmsm{{~uxpzxuxu}povz{ymvxzyplx|n~w|t}t~r~fwqr|x}syuoz{r~{r{yp{u|xlxt~x~zvqsv}hyss~a{zurvnzux|}o~kz}uqw{zsrw{}}wkru~vn~qi}a|sxjrup}q~pyvjyxut|xvruyot~x~vsu}vquy|u|ov}{vq}p|kqzz{~xuxxrs}kek{xuu~y|mtlr}umqwvs}ruvqxssuxkv}luq|uwsvur~pssuxmsy|wil|}zxx}wt{i~r~{x~qtxp~}|wqzx|{t|z~sypzv~{tusr~xy}uwxr|u~|{yxpu|zvvt~tt{}zxzux|w~t}~x}qy|y~o}~t~wvw|ryozo~t|~}pzkwyzqy|y}}~}}w|p~t~ovx}qx~nzs|zr}{vyuxuvt~tm|y~sowtw|z}s}szxzxytysxhy}{yuz~zxuzt}qurylrswqttq{s~urtvoy~vmmktqyxuv|`y|swvtm{vqoo|slxyuaj{tymwmxy{wtk}pxor{rs{pts~ptqtvpss~vz{zwz{w}yxzw~z|n|t}}}wrorr}{~yq~}sruvrxzvx{wv}ru|~|xppxotn{}p{{yrvwu}ynw|wxwx||zz|~jynrvo{t~vx|mrvsusuzswvruqxhu{q}}wwlww}|wevo~{{w~vw}ptuq}|vvozyxyvrkw|wzo{{vxvv{ssvwqp}~vv{trulxwz~|nvw`~~rtyy~|vr^{~tzwsy}~sxvnl~zqsmownmrvyt}z~~{yn|}nx}m}tsyr|~x{ypzrfuzuxzxvuswspt|vtt|yxuwtuuxuu}|r~symolt~q|v~yspysu}usw{v|u{tso|~o}zx|vttv|ws{}{~n{z{xwvuy}uvs{z|yixtt|~}z|o{g}vmyx~~vtx~{yz{}xz~vx{x{y{rwrwux{w}p~z{zorlou~rptqr|sttupxsnbswv{xx{xtwr{z~tw}v{pxy~|}vvp}{}lrwsxyyyrv{}vwuv{nxz~zx||{||vy{quz|~u}z|t|yt{yj`u]t}o}nwo{nzt~{|sxzv~xxwozv{zwyyyntytq~szoutyz}zy}m}oqnyo}ziy~zywyzyu{ust|}vqppnwywsu{zsx~py{skwouufo}vt|ysxzsmyywrxyuxywutxzy~q}}rs{xquyuyoo}n{~{~{fq~ztvwe||p{wxvt}|ly~zyqluxy{tw~ysuru~{q~}y~}v~ysxnmzyl`eozztryhr{|q}{iwx|y}~|xvut|vxrlypxwktusvu~t~vzoxyp}ow~owvnuvwy~q~{{zw|}uqus|qwnlpjzeokn~tzsp|hj|lq{jz~xzowcxqjtjyu|vs}qrythrtzysrumxxz{x}llyppj}qxun}wltwyzxyvjt}ylqzrnvrqtjywsfwlvr~vpzqi}wxntt||~|dspsyui~~yxmpo{y}dtwwwwy}fzirjkzskox}{xzrsd{{zf{}zxwwnyyq~h~x~o~qvxtrs}x|ww|vtrj}ql}xyv|lk{vycyrvpyyys}x{{ytx}s|s~|x{yr~~tu~ujn~~|wzn~tvxw{zq~~v{y|}xyvxszvyu~|~{}~tvxmyp~ywy~wz}{muvjfsmw|s}u}wxrz{y|ry~~}zxt{ssl||hwywj}yw}nwtrtyw~}}xz~rvutwx{~}x}~qn|ztxuy~wk~zxv|vsy{yns}}v{xqtw{u}zw}xuzyxw}{rsd{x}twzyz~xz|wwzotpswrxpyvxxr{zuuyszsws~{vxy}~{|}svr}}{qou{r~~ypxtyyyxu~zyyz{yvsz|yxp~p}xusvz}uyzyzgwtv~xrrt{|slx~rxo~yzyxxoy}{xn|q{xrzz|qzy{y~|{w{wy~zrx{tvrnexm~m}x}|zq|qy}wvxzl{wxyu|xur~{}}ywp~l{syq~|~trsu|wy}~spq|y|wtz{uwoktvt|{xd~{zxvz~rmzz|zwqkvwtxt~v{x{uv~qyt~yx~v|yfrt|zn{z{yvwxwkyzvuz~|rxnnx{shr|xwkxuzs^vyi~m{zy|vt~u{|t|{uwwzrzh|wwqtpuxwzntsyw|{|xt{{s|sl{uvzwx}vtst~ug~zxy}w|i|y||z~x}mzwyzsumz|iyzvui~|x|w}|rr~tjwxxrwz~yuw~q{j}ux{quv}t~s|rxyqq}p{uwsxsy{{~y|}w{{xy~~sxonwyxn|wl}szq{}}w|xuwuyvotzwunt}y|{xzvvzzyr{xwxqq{rwtw}~uyyn~zqytq~~|y~p}v{txz}{yfwzsz}tzwsznxtx{|ty|zy~rxptvx~jmz}srx}zmux{{~q}xy~|quolzxwz~{u{wutupsrrpz||x}wvuxt~lmjymjxb`u{tsvt|{yy{}wte}n}xurxp~rw|ujwvqwl}u{vsv~|tu{}{{wgxmsvzpuq^rowevqr{~~rR|krsuusy}{ystcytsvzzsvyow}wltqfvjwqrvvswvxr~|x|upmxwulsvo{l|wpsvyxt|pzj~xn|otvym}rrrzs{{~oyxtu~zzv|wy~k~urxy{jysrxzxx}v|u{{}v}t}{zlpi}s{zzs~yktyrsrzxy|yozuzqx{qqpyuo}}ipvsp~ul}yz~vywl}~svswpv{}yvgxzyizlnoyy{{xxt~x}vvyrzzq{reuvxy~y}npzqpwx|w|~m~zt~r}rtvx{zuirsw}cv|vm||uvwz|nw}p~|wv~{zu|zniy|}p{{t~hkmvrxkyv|pzxyrf{xqwx}xzxirgtvwywjm|ypzsuvo~|}|~ivp}}uq~xy|pxwi}uuq}qsksr}z{ytgyyrx}xw}wqwzz|uryvrsv}j}zmwzvqx||w|}t~rw{ytxyyu}rjdwvpn}}{w{~rs}w}ybjttf|||}rt|}}uvwoid~~~|{`vtzszy}r~vwxvr~xsq|lmnyvt}~ysz~{uvvu~xjvyyzxy|syto~mlxzvv}|tp~w~z~yo{ygtnuzjzwxqr~q}vv~up|}lue~ztwl~w}ry|y{r|myjv{qyross|t~|z|~xpfkutrnzv~o{~}suxqvu~c{yqv|mx{rqt}w|y`vuoo{{|z{w{}uw}~{x~|xt|gwnz|y|zlm{yvww|v|rvy|sskqrnpzzzujvlssuyutv{oss|won~ju|~tpwt}pul~joxnp{vx}}rh}qylqzvv~up~nuhyw{lst{urvwuo~xv|~q~w|zrs||pz|w~urzZoun|~|}sr{~{qttsnlw|w}trllzrwk|suz}tmvwkvspq}zsqynxf{uw|u|kvrj|ywoyuu}uswpv|rjyqxdxx|wwy~gsz|~tyxx}}_{nkr}ylywxoy{z{Z~{ouxqnv}~vo^p|uw|o{sp|u{{{yuxu|ytx}lr}xpuz}t{rlmxw~~zts}orswx}v~qhvn{x~~rvIsvruqmtkt~lz{k~usxowqpulno|x{|poow{ik|{vuvn{}w~vqvqcvx~z{vq|xz}vy{srwzpwYzx~sxyg|szxy|my|syxux|yyzlzse{uk~x~xwzx}avv}j{t}yzuzjts|Yxvzqz|sypzzy{w|yxsq{w|{kunl{oy||o~v~r{}vytu{sx|{~{tvwwxr}nuywxu|my~{y{wbx~vzky~}mgz~~yw|wz{}uwttwww{h{mz{vvx}}tor}s}f}{u|qyvx}v}}x~zxwt}zl~u~|yxyz{yzrvt}pz~}rzwz|r}y~nztrrwvvyskcxroz~~wmvzvupy{~wq|xru~yqy|tqs~~{s}{wp{pzoztvzywz}wzyy}t}{xvxx{o|ztsz}zvwzzu|jzz{~qzxtz~jv~ywz|{~~}xwy}o|{vt|u|nu|tyt{{{yzy~x~~|y|}uq|zsy~~wl{s~}{utwxww{{wt{{ysptysxu{q|uzvx~uwur{fzzzx|u~yiy}m}yn|}vxwnmv|tw~~~loxe{}}nzw~u}ywrzznyx|uz||xxqttl{om{ty}ju~xyyzpt~s~}zrztyy|{~rnkxzo{{rtuuyvv~uqu~xwrxsvutw{nuswksrmysytmzv{tzyozu|tx{wyxv{z{|z{~trvyxoz}r{cq||r{w}wm{tzvo|ywwi}|xh}}~vvxx}x]twsony}yjqzowmwzy|rptwzywx||{xpjz~qw|uo{xmvzxstq~|{yo}rurztizjuwszsfsxytm~twzmrtus{qzeuitogrc{rynm}xuxvvpx|quskjxlonx~zZx|lvu~l]dk|plx}xnq}rz~wswtzvsjovmqwoz~utkri`ayuuztwtpvptso~{pvkywwxsypous``luw~}ywxuvquzzz{~vu|~~{vv|ry~voxu|x|vsvv}wrzyv|p{{~}jz{x||||wqzz|u~zu{sxmywy~{ytzggwuttfyw~sq}uyqz{e{xkxym}}{{}tlmzqvy}oyj|zzzrvvmz}lpxq{|x~mv}wyizsx}|xzyut{szt|vywxywxy|w{}px|}w{nyvklqwwzz}pvsj}wsmuy||yr{{y~}qzwzoyuu{|mxy}v|uq}xnuwuz~t{{ly|w|pzz~w|wuqz|wz||y_}sz{vytwzprx~uupvqvyyqtpzx~~}xusvt}pvq}~txwq{mkqurpxw~~v{zvu{}qy~jspttzyzk{yvkxxsvv~}}kksorq|umy|pt{rp}{qq{zwu|xur~{x}}tqstz{rtswvyzzwwztqw}su|y}v{xuyt|s}jy}t|svz|u_evuutsv~vxvpsvy|ewvmjo{p|ywlyyzj{Whn|krkegq|~wwi~zqxbbu{sv{uyqvz{wj{lssz{q~{vqzzqzhxl|zqy{nt|wwezzmsosssxqovzmzz~}tqn}x[yumwmprv~o}o}{j~wyeotr|{mxo|mssmsyxq}{~xrzqs|xzxwqutuly{yzw~zqpxumvs~vxz~w~R}{xp}~jqu|dkiiitkvsv}qzmzrnt|xxutzmyorz}|u{yl|wny}||~p}l]x{xylt{z}sttmyty~|o~rr~|~w{yxt}zpvuvryxzmguxsxxk}zwz|}|myx~xt{xyks~u~xs~z~zvx{s{uxtycvttsv{{t{x~~~z{}}zwy|~~}}n|o|x{s|{~ssuvsxy}~|~uw{nwyu{stu}n{rz|wq}rwzwlutzwo}{pyzttp{hmomrxpr{~s|wqzxyw}|tz|{u{~vwz~{f~||y~yz{|tuz~mv~m~{q|uwxzyqlwsovovrzq|yszwzjyw{{xo|kwp|{urtr}otzuyyu|~ozxr{|xz|tzlx|ryuuvvu}sqwv{zyvyw{vxsr|ztlsxw~v~|tzvwrxy{v}jjlz|}x}sy|wq|twtssstvxrtzv|usruntozutqslvzvxxv{~qpx{nz~uxw}{wzr}pzo}vs{n}znutv{ttlyslvxzvi}yt}tqwqywxpt~rzy{t{s}}|{}qpnqumksq}~yzzhr{nor}mwystwpnmrrqyiw{zpzzxxttypk~vsofs|qrvyz~k|{w{yjzvuumvu|~sz|{pzy|stwmzp}zy}w~z}nxu{pnzuwxv~}lyxviywy{y}xrpxxxnvzlt~|mqsytr~zs{|tw|{|z{p}rq|wmw{vtzu~j~pzy{n}o~rvnq|o}wv|tguo|ztw{zxytx~wv~l}|x|zuknzyuut~|{ukc~mnnv~|tyrssp|r~tu~{yqzzlyvw|nv{cs~zx{ug{v|tqs|mxw~rrv}yz}u{u}y~~tvyzzvv}pmrzxsxj}zsuz}lswvygnxpu|sgzxpgv}{zkwixp||styyto{|m}uz~|wtsnw|ymsuv}|wotu|wgik}y}wx|}irlypzqwrxmuouqe~qw|t{xqxzuw}rx}suymr~pstyrsnlvzw}yw|{yvsyrmjvwwqpxvvpz|{uv|xtsotvy}xxt~pytxpzwuysvzvsuxx}qmnkxu{sspvqq|wxv}nz~w|wtxv{j}t{yxrzyv{}vstz{{ve|v||xvz{~x~}}wy~zv{tvzwrpfs{t{quwrs|rvzgps}{tst|yq}xzs{}zyz}}zy~x}s{y}xvr|p{vus~iszuw}|yxef{vivwnnwy~|{jtpvv{wzxuxvwl}w||ttu~w~xystyz{zw{uvv{vspwy{soyu|z|qr|o}py}{u}}~}vwiwt{sw}qvz|~u{rws|j{z|y{zr|zyxy}|m{uyqyuvzs{vpxw||{{nrswxtn~ow~sw}xxxwp}xutzqv{{{zwlvm|l|y|w{pust}w}uuxzyywwywrwx~}yqs~rsxy}x{{t{tqqu|}|{{~wvzw}q{t~{yrouszw~vysznwuwyrrwyqvp~xvtvy|~t~y~yx|tww|vz}vrtvvtxpwyvuvt}z{uxzuy|ytwxuo}wy{ywzvrw}iwzuxzvzuuznwssrowwv|s|ztivztmwwwnt{vzyy|y{t|s~|zqm{|}zy}~{txu|||puywk{pv{{zwx~os~vzxvrqws~xwq|jowyt{{}tszrmz|yuzwzvv{w|wwvvxmu~|rqnv|{~ze}xl~{{wyxvicqw{yyzs~txxq|gluur|utxs~pxm}qwxme}j~r|h}w{}{w|t{ytbwtrystisyswyyzzys|~wy~u~zhzwpwhxvZy|wu{}rzxumzyitxt\y~vwokyy|svpewwsx}o|wp|vzzpyqtxqsz}ytznrvy{|{{up}rwu}zt}~ovkzv{{yu||w|r|xotyz}|zs~kbip}|}{mowu{t~{~w~vv~~{n~zrs|jwvuv{}zzt|wzl}u{{wtzculyvi|ru~u~pzrq{}xzpu}tpz}zqtt}v~}{tor}~~{rmy{}o}{i}yyp|mviz{v~|{vw{xxxyuq|{xnkxx||u|yw}y}~|yqv~xsxzet{rtttvw|w|y~vwxws~|xwyqynyxo||zu~zy{~woqmm~~|}sy~z|ww}othvuhdv}|zxntzn~|d~ozz\}w|y||yvtvpyy|}oul{~{liqrlvsptsv|tt{{~ss~w{z}{x{usqm~r}qmv{vr||qxzu}||usz|xzxw~o{zu|v{{|ytwz|~{utx{qw}xvxi|p{v}{rlvw{{yyrxmvytsws}wyjvw}}utw}lutys|z{t}~r{lxxzpuy~swyvwzx{~rqmxs|lxyvphqzzwo}v}hnwzbzrt|xzgrxq|}umwurwlv~sxfyxs}u{zz{|v||t~s}{~qznjuy~qlzxvkstsx}{ix~ma|y|}zwwtw}sm}qzx~|r}wq{~{e|qkzvZiv~pvqisqlxryzpeozsry}ms|e{{_czrowrucxftunrxax\gnyi}n~utdv|owyumtfse{|wxz}s~yO|{a}ufyhuvpqr|yss~pr~k}h|}tcvx}v|yt_nzy_fhzy}uppvttqjtyvulclwqwlnnux{ju~v{lUwt~u~nvpsU|ept{\qnig|trt|zpxurp}ptuqsw}pnjuw}ir|zryzku{p{}v|~|u}bz}|khs|tsm~ymwxpm~qqu}smfg|ozxuuv{wfp||pvwV~l~|w{vvq|yvw~o}xm{fw~|xwz~vv|t~pyuo|zxe}szyvx}ixw{or|tlnunyywyxnQuvtux{qn|n}zzoztztdk`~gwzt{}yr}|}xiig~puxhv{{1uqpu{xnvi}pvyvfi|toqepq|yp{tmwij{izp{tj|zvxwsvwzvexvrrxqwwyxxyngwz}oyqfms{r~p~syyrveyzpsz~sltxzz|mwzxyrur}si}}zlnzudrlxjm}`wvxvqoyqm|}n}luuwotpmxrv~zn~u}vvv}{utw|xi~vyvuw}xw|xrz}vxjzvx{v~pt|rpvywu|sv|y}zyyuyw{~xxw{~nz~vyz~{x|xr~yu}yp~{rwrqxzo}{y}{ymxx|{{~uxyv{~tx~qvu{|xmun{zjx}}vxyyx}~}vv{xw~utvnuwvpy~oyxvmrxz|wyy|s~{vu}x~|yxosx{{z~|nwuwu|uvr|{h}wzixqvk}~s}y{x{hqvs{x{yt~ztvd||q|uwmm~pw|yx}m}wr{~rststu|ouu|}u|rr{}srzznsqytunx|rpwwvev~ltzoyv^|o||qkxzq`wqy{S~mm~t~~jxw|swerZw{m}~wkm~{xpy_{{v~xxrz}q~rw{|yx|qysvy{sz~sqxnnj|tssok|ywu{p|won}zrql}osxyvZ~~}uuxryz{kn]q~{xnlwyqkz}zzrwyp|yqxoqmv}p|r|{zvxvl{yzz}{v{yv}svn_qptnvxp~ydx{}xgxr{{}{zulxx{q|yzyziywzo|puxuzx|s}uyjjytvwsx}zwsqu}wvzxv{ruzzx{usy{mv~vuyz{|t}u~~kuztuwt|yxwixziztyizmztxsuv~yrxrrxxzzs|uylst|un~|rmryvwvysn|r~uz]~ry}vbzq|mvshn~stszshmsxr~~xyyxwr~ywrmz}sv|zy{ldtvzg|fuqyt~hwpp}u~rv|b~t}}q|wxwr~tuz{xzxw|mq{zqwx~|uw|uqg{|krqkxmt}sp|qw~t}pt|sx||ozytpud{zw}{~}|{|y|kmv{|r}weyz||}pywx{|u|s|}~ut|xs~t~}}y|fyyspltr~u}~a}yx|iz~xu{xr{vsz{zzyy|u}ohbx}}t|y~wzyx|kuuhxzmvwtsy~wgooy}qzrqmrnizr|wtwtywz|j{{|jurzuyr~utvzpvzm}v{wx~mfzwzh{u|mvrgsuyxolt|rrxrvv~z|xwyjryw}vuywwytwyxu{oj~wwu{x|wxq||vt{}kr}wxqz{ifq|y{n}xuvwmyxxy~u{}uu~~{yhotr]zuhuvzrwvp|s}yyuz|tpk||vpnlq~|ziz~u}t}u}~zx{}vxx~y~}~xww}~ets{ywxu|}yhvu{}zqfwqsmuzrzjoxxtiquxzy}w}wzso~tnmwo~i}tl|z~ulrxywyysmxuwy\}xnpmu{xkvzx|stxzhnv{w|txy|~}o{xs~qz|{vy{x|yvx{wpwkqyyuwpvtx|xsi{pbtzqqzmq||ejmt{v}puw{|xvsvyq{||ju{~x}x}nqqvz|twyftir}}l|v{}k{gtrwrfm}}x|~|u|w}gztw|rqy|}rrz}qzy|vv|su|x{{{ttro}ny}~zvX}pld{{ns{zzz{ytyww|isyxyphp}vv}}os}r{|~iytmkxviuvur|zz|vjxyyvum{{tryuwxu|yywpyyr{x}tovzxz{{us~yyyrzttv|w{r|vxrpxts|w}twpqpxpytyv{rmizqqz|qnq{{rvyzkm}w|zyuxuyspy{utztw}uwrwfzrr|w|uwryxtvxs~jzv~{}xzp|s|v}i}|{qq}}|q{vx|y{zN}xnuyyn~w|~{}zu|}unyp}zys|uzxwy~t|pukynsr|ytyrvwvwxiwxqwsh|s~{}}{wzuuws~uxs~ywtlxpnuzyqsxstx{gxzr|vkmr~quxzo{}rt{yttrvl{xt}sxv{y|~}o}zsozr|v{sury}{{qwpwx}zx~tvzxzsuztwux~qtwuzix~|juwqwtryvuszty|r{uzxuutpzyu{|~xt}z{oyyun}plmqputTsfszsyv{|vxuoy{tu}xqcWywyxmry|nr}mx{jxr|{wyyt{l}t{|lx{vor~v}wudcniwkl}yzwym|}zqy{sutzx}t}}\s{kulpvwnovvorsyh}o|uvuoq{vywq|y{vggy}|xhuuw}||iv{z|}vu}{{x|~~k}q~}xq|xxvgwuut{s~{nzqv_szrvtz{ryxxv|}}}}xkmx~{]{ssm~tqtx~x|t}z{un|gt|xxfp|uvw|jyowz||}~|}zxpnvs|ww|suwzp|a{vxw~yyvlxxy~g|~s|}vh}vz{rkzis}]psunx{zzvsxzyiv~tclrhy{o|~~z}rw}~rusyt|}pz}wqup}rb|x}~xwy|}rhoiuvkz|uvv|cwy|{}y~tzw~{lZ~fsevpjxw{xnqva{lfq~swpw{gzo~ywpnozs|~|~potk{uo]n{qy}ovwxprj}yh|ndqrm~|xsp{cpzqluzwO|uvru^|x~o}phe{pj{f|ow|sw`pu~{nyu~lueq|x~x~~rxym|q}~vtwr||ypz~|qrrqqwts{|su}v}{~zt{u~}yw|}szyp|yzu~nvu{pswy}y~oxqtj|qy~gxyyswuywk~y|tuvxw|}ss{}{vp|q}{{zw{v~}x}z{yvxowsy{o{s~vt{wx|lwsmvi}my|sw~z|~oozt~j~vnylty}ytvtt~yv{|qwlvszt}xxxwyytvfn|oc{wt}}|uhf|tpqrqyvvb{px|~nyz}vuzk{z~bcu}|~t|}w}vvrwruzl}yw~syuun{vuyw{|ust|{pnoono|z{{x{uqvw~yrw}jvp}uz~pstxzz|uk{ixru{}ttyumqu{yustgrz~~uqp}wwxyty|uvsl}oxzzrtut|}sip{stNyq|oopk~}rp~}r~lx|xxvl~xwyvpmx~kk~|zx|{ytu|v~v{m~}qpyw{rlzozw~ms{s{zwy{v~{otqytsytuxsj|}{yuyqxwbq}yx{t{~u}}{ocjd}{uox|~yw}by|}}|xyzo}|yx~lt}zv{|u~toi{u{{eukosh}yuyyY|}~Weou{|qxpz~x|ywpo{yxx|~yqpuxvyzww~w}yxvt{pny~}zww{|z{uo~yyyyx}y~}ux}zsv{~}kmtxz~{xw~~vr~|}yt{yw}q}owqwqptnx|zfq{nqxyzqz|vw~yo{xlq||zuvyz}zz}zvlwqzxzvrxw|t{uvkxuvkr}|z{wO{}~{~}oxyqlvx{sr}{{zvz}|l}jxzvZ}|zy|w|vuxrv{|sts{{xwxw{|vstv{{wrum{uxonws}xy}}yrs|frrx~lhqyotko|xswywzzly|yp~ywzqmyu}|wl~wuy~x~y||s}otykxx~k{pr|y~z{{zsgwvk}}v~{it{~~pqx|u|upszkrwz}x{xqz}iwkuzutx}vywoqpp|~uu}lvgsgsu|q}xobx}xjs}i~}zz{g{~}nj{swwshzinrzru{wpv|w|}no~vx~iqv|ptnx}iuulx{xpvwit|obqwrryuvqg{xo{pzy~vwv{||yxp}vaiwyouq}yzruo}pot~tzu{q|x|xsu}tp||ynyzuuwsvy}{spwxqpp{eryuyw{pz{zzz{veqyvwssuyuwuyoyqwssovkzyy{yr}rtwyx|{~~x{vzw~uzoym{zwzxtk}tq{spy|uk{{xoyu~m}yuyz~xsz~v|jsxuvzxssm`nz{q~pv|q{{~rvwx~`t{t~{w|}|pvp~nn{mwzxsz}qtusq|pyvwq~y~hpm{|wpr{{|s~noou|ohxtqw{u{rqry{swx~wthg|~x{orq~utyotwxzxzuu}yqzt|rvy~|}o~zxv~r{u~vtxz{z|uz}{myov{~|z}yto{rtrmznw}z{xjzguzyszz{xtruty{ywvr}zwsz{y~ywz|txtvv}twou{xuzymv{}ix|~t}vz{~zrwvt}t{uwupkzz}yts{}x|y~vv~su~~u{krq~tmtqqssu|wwr{yuxryyzyxususr}myv{wg{ytx|v|wqnywqxsoqqwxzqxtprwhstv{}vxprxth{y~|uzsz}l{vx|iw}uqxzv|zzpuysxup{|ssu}py}rutwu|z||}r|~xs|pyoxy~fzswxVv|q|}{}ky~qoeyzyo~lw{}~{yrvzsymvwylov|xjwoylvtvwzaoywuz}txcumqzqwn~x~yswxnuuwzrouq|{rouw}xixze{{uz~tmpzkwq{xulo}x~|t~ubwi{}z{yuj{u|szzzzzx}r{xty|zooyrtmwztxqxtztwydzywvxpsw}o~prx~zyyo|ukvos~~v~d|xzopuz|uo|U}qrx}tz{wqr}itsx}vqxxp}lx|wszmxw||||~svuqj~w|zvu}gryr{u{~oytrtupvyhymu~qqvrxru|pvr~}~ms|zwzrr|w}|wyyvzzs{s{su}up}sz{{j~|ss~~uuxq{{mx}~~u}ylywmwy~ys|zqrvrpsvqzwuyxnyyut{fqgsozumm}ux|xuuyuy~sgsf}~s|~z{uxpus~r~qxvx}}nZpwxt{vvvwym|{}zqv~ovwwyiu~rwnnpxzq}{y|{Swt{qx|{g{pwxtmwv~~z{mrlvgyl|qspqutt|t}~yyuv~zuawrt|xpvvrmivn{r{vlkysuoi}xt|{y{ox{v{yqjkyjl{i|rn|~{k~rnpq|o|}]w~yxvq|zy|rz{|vuvnvhy]z|yjnm|~nl}w|{wsosvv|ysu|~s{qx|mu{vz}ps}mso{z|]{up|ybxspq~rxdgyx{||wj~suyuzuxwvpxmzv{uww{qytwwww{xtw{sp||t}y{xrylk{x~{w{vxuyyyvno|zxg|upyzwxutx~uyv}usuvsu||rrxruuzux}}||`r|wwzu|y|ns~yszu|z}wyp}rq}}v}o{y{xtzkzxsp{e~rv|h}mskw{}opl{xm~tnimn~q}~muzp~ytz}r}ay|rwynf~{m}zzvrxopx}sry}ym~op~m}syyow|~xqrztwtw|smoxz{|yzl{sw|y|n~torm}ry{ttuytp|t~|w~}ql{ht~}~uw~x|s|vyt{~tq{v~y~}}zxzsu|w|{xqvwr~wh}}{wr~l~xtwxsq~z}q~xv~y~|r~u{yyuu|~o~ut}zyyz|{ptw|}|hw}}vsrxzxpuwtwut{|y|wqwvvxuo}ptqwqvy{yt}mt|ttw~xvr}}}|v}yeypn~vrsr~qpv}jqt}m}}kssyyzwv|xdqnyyoyw}}tw|ri{rrjyly|mwugxztsxno}suwxo|lulnwj|vob~xlnrs|swrlzrswwy{rex~ztwdy|}||uwymxwttkw~}|xyyxxvuqqyzstz|tx{ouwgx|rqkhvnw|v}uouvo{tpwzqqxtzspprvsrrwxsntr{yuvw|p|wt|uv|nr`~ypzmuyl{q|{ywtrsw{v}xv{xx|v|{sw}}uzxzy}ul~}voywm~pz{~v~{l~|v|x{wzmyyvpr{zsypzng|vuwr|tqu~gv|t|{{z{}|x|vvqx~hxswzug}zzmzoo}gzkhspvtywtliirpn|vxp\}{vy~~huzts~xxv}|ftot{tretnudj|yzt}rw|y|}||rz}xlvvo~k~mp}yxzzvx~sos|t~zWsxeezw}|orvnwvywl~}i|qyw}swxmw~r|vw||tzpx{pgsky{x~zgwwszr|vqzm{tub~}\y~{}~{zsw}uw{seyor|weamq|prtv{~wvq|y{v{Ynu{z}xpxot~yzYxytu|}tqqytosp{vzstv{r~b|s}kq~zqve}tj~zs{qwnyt{zrlt~rpkz~uozs~p\lyq|ywgwq}wonm~tsu}rtwxyts{r|_gzqyktiy~ucuk~~rsw|~oy}s}{xqvmrrt{stksywxym}lwfzw{~~rvws|v|zou}mzzt}omusqw}ys{tk}X|}zzu{wqs~}wwpzwar{v{ouyunvzrytrlnmw{{x{{vu|}qrxywljrvrovktu|]x}{iy~t|nvum|kuyqwrssytn~tp}m~zq}w~s{v{{t{wtzuszxy{qtkz|sz}x|{wssttr{wmyzpzy{{pjlttum~soqqwzwqpsr|zxqn{qxswn}r}y}z{p{r{tvxs|}x|xowu}u~{upzy~}wu|z{u{lh|rksu}|uycq}~zjuwsln|uru~w{ychz}Xzxp}ogzwxwuvgqysxxzpzxrzru~qlxasujwzd~r|{f}wwlyr{]qulv~tq|o}mhybt}uo~yjo~vxusz{uvusg~qrxpsp~ttf{zevppyvwswtzytum{uvtjuxgt||}tvirx|ounyst}zsvx{xu||{fzmz}qvu~rmpoupsz}qsny}|ysw}mwsoyvypntewy|~sn|u|jptxly{xwtv|xwupl}lq}t|i{mxtx~x]p{~qxm~o|yvs}}yrzr{u{qxxry}~rt|wyyo{vo{|iywymoz|youmvwx{rvt|vzumt||ljlpuzwysv}}ztq}yu|v~{s|{}~t{~|qstryhzvs~n{tpvv{|gsypuzo}~ukztspvsmvrtxv}zzxszrwow|zw~sl}}re{spj|sl}{vwiw|}|wzwv|r|l~s}xuzzvsws~v|xi}ovyz{s|itwyd{{q~wuc{ynv~z}zui|zlr{ywxt{{qr}{zwyo~~q~}pww{tsmuvurw{y{yzzzzkhsz}qssy~uzzz|uz~lr{xy|xwwwwxvusttzy{rnqzv}xvuw{syxqp||z}zznnrw{sto|wulpxwzu{v~jxhwzztwzo|Zz~~{}jz|xk}nvmqJ{~~nss}yw~y~q|vvksu}~s~xzzwuo|tzr|txy{x{xwpuuwyprysvtus|wu{w||opmrlxoz||xpvuympqu{vnw{wny~nsvsqw}tx~vuytzztvwpw{ursvwv~vj}st|ost}wvvy}|vrwuyutxxmx{r~y~{qrtoyn~~~zwrq{w}r~oux|z}v}w|~||}{u|xvv~qw~ruv{vytr}t|}|s|{wv|mlz~y~u{wwxu~}}uyx}vw{u|tr~{wtw{}{vr|{t}{yyz}pryvuq}vlxynz|~xvy{sw{tnup}yy}~{~ykwxwxry|n{{|{xw|}zywwxpunsoz{sx~w|rx}{|tt}|twuszw}tuxyd|}}tv}pwrs}r~}yjx|vyt}}{yuoj~xwp{|}n~ur[}{n|}q{~vwsqy~pzpw|{w_shyt{m~t|yxvvyy|zsx}ru~gt||o|xux|uxrwy~pzu|uyw~|u}sxtvg|vyuutyywpy}|~pwoswh}v{htus~qljz}yvzl{sr{ohpp~y~}|xvx|}rwtsqplso|wp|ryqrt}t|zt{wv{{|qxvsq}jk}vz||vroxmz|o|qyu~xz{|{wo|urixvzlxovsu{st~sxtpyxvpyuq{ux}uxv{r|}Yzqwi}xlb|{rsrv~ztwxy}r}ttz~ywz}{vtxvtrzyv}wx}yt~wvp~sztkzntwum~vvyrv|ryyv{qwwuzro|~z~s}}}sszppvzs|s{y~yvmt~|tyrxutsvwl|stqrxwzpvq{{tvux}w{vwns~xzyx{uzyt{}zvvxoyxyzxvwos{nsurwspuzq~~u|wq~|xqvmystz}yszfmwsrw{dn~z~xnumxwxm~xrUvk{njf}rxstw{{v~pqpv|oo[p|tyW}{|~so}nygy}p{wgvnh|hs|wx~z{xry}py{vpqyp|i}tstum{s|vn~||ktnw}s{u{nwwtsyrynx|ywznxzo{z|pswyt||z}t{{jnsfnooo{q~tpvr{oxtyv|tqgsw~{vsrpzqy{w{vqvvivs~pJyst}iq{kuLzvw~|{zvwvtvntq~qw{y|yynwtvnotxxv{v{yyjq|yv}zpvy}vsq{}~xt{trzzsxwmu{}uvozznvyzlzotg|{}hwzwytxrxrt}vvvwuv|atrtwmqzz~{~rttvqsk|}xwx{ppwzqvy||x|qm|wxxwz|zt||{r~x{utyz|z}z|pwstyn~vjtvy}Zx{yvzrfssy{}zyrqxv|n{x~wkuqnvxestlyr~wmq|rlowy||xvwmys~qrvq~rmy{lppsq{vrp|}zzosvg{xz`yxk{{uoymmxt}iu~v|y~z|vntxrvyxp}|x{rvqyppud{yky|kh|qr~iwz}y{pyw|s}t{jm}wq}uw}lsx~ptu~t}yx}prznxsxzyqx~rvu{hp}~z{f{x|vppq||poxv{~e~rz}}nt}{q}xwl~~~y}}tzxw~xvxsoyl}uz}sszxxzyx|p{v{x~xtzujys{~kvyut~~zt{rhqt|vnw{r~tz~su|y{|txqwu|gyt|y}uu{ytx}rp{iys~}odrrcu{~{{sxwqsu{gju}ryyvx~ywzyz~~xvz~~{qrwzvmv|y~nyw{vsw|wtxwjww{xu|xsoz|w{{vtu{pwtq{t}|uzty{qxox{~tsrvtn}vikurw{x}s}ulyzy}z}r{vyxrrsnzpnxrz}rq|zk|sssxmzyvn{upnz{{xzx}~jqxuurypqynutyz||kvszutxqy}xy}zwsr}vlukx{qyy}rwwsyuzwu~|}{~s~wtyzcxwukti~|qux|vxpxv{~v{r|}x|zrt~z|snuxmcvtv{qsvpzu}~px_ymh[{r|jvgou~zxvtvrwv}x{xruwj~|~rudnuvv{{xz{wk~|^~{q|{xpsxfxosqmtklxwv{txw|qxrrsow}}x|s}|dou|uqyr|pz}xtzz|{ovxys}|ssymxwt|x~suy{^v|}ryvtzzxl|lxxttzn|{xvw|r{sy|{}spun}yqesxyrrzsuxpyxzxu{rs|{v~wvz{ty}~nwv~mxs}y}xr~{vts}y~uy}nww~r~tv}t|qszw~pu~~~vz|uvwxyvsywlrvlwv|wps|{w{{|x~suz{k||{|}wmw~lp|tr~xruw}xomuyyz}ywnuyyw{r}x~zou|z~~~tpwt|ym}po|t{yr}nvvzmfu~vxwwwunpwsn{x}p|qyt~{wwxrkuwxlz~nnsw|~|ovmqrt{yztstkxrlon~vwrvxz{}|~w|zv|yxxix~woxtznzty|xsxgsx}w|x}{su}to~yxx}zyvvxqtmwr}||s}w|~xz{zsx}vu{|~fw~{y~yrsx~v{ovxun{xlxxwp{fvrvw~u}~tlpz{h}yyu~}yu{}|}|pwnxzh}|vxpzu~}z|ly{}|rp}|o{uu{qqptvz|soavj~|mrmqisyv|luoplfy|}uppur{v}p~ih|zrqhjywyjuoqx|jvfnyxynd~}vtm}gxnthuqqyluimt|zu[tyuttq}y|{xquwqvdnom{yqnptuxz}}t}b{t{r{q{}oygp}wqqsjiyswsornvwxzwps}wo{{r{asqwzzz{kixrevxxqmvvll|xr~evk~~zmvxxu|vmevz}{||votwqltxrugusslixvprwcoxpvr{~tzv|ncvku{}yvurus{r|truiywzzt{uyzyowtyov~r}{xw|yl}|{tzzykwxvzwg|uwxtw{ruz}w||{trx}v{xm{{}iuo{}xzrqhuuzvztk{vsrx|q|u}z}xq|zvybq}x{}vml{uk{m{y}|zrzwuszwtrrzyy{ztl~yxzyzvyvzqq~~uyz}}}t}pzur|{ovqv}q{mvwoqkyzxzwyzrx~yxvrynzs}|wtwrtquw{t{wuy|py|wspoqwzyzls~piutsrzozxj|y~|tqt{{wvw}{wyun}yrmjxlx{ynxu{vo|wllw|}{xysqoznpw{qxy|dwtl|rvmz{}{q~~trrttuexnrwxzu~xt}uwwwprojqvilrow}r|posrx{ri}xr{w{ztkyx|hrwwszzw~qvn}{t{cvuuomsqmswurutuzeuyyvylwvtdspy}yvnuypyv|rzf|pq{s~yuz~xu|pzxw}}qmut}ygxprpzy~y|korvu~jvxt|uuzx~pum{u}z{xvnwltj{uqofnmtv|z~|rxv|iz}rzzqztyzx|pz|st_mtz{xqztsss{pt|{{s}sv~xxvqr{jt}tuwvwv~xlxvofpmt{yvsy|yxs}{}mxyuwopv[nvpspz|ttvjzj{d}o{ugvzx~|yqu}s[q|yuo|{}~ty~v{x}g}x{{rur|s{xvwtvux}}urswwuswz{hwuwuury{s{}wstzmty}x}z{ztzv{vyp|uv{vpo|pwyurwp~wvu~u|uvuyyvrkro~|iw{yq~}xuluv{yx~nnwyv}~vxtxonz~zwv}{wxxtxx{xtx}qsyyvs|v~uvlyyxsw{kwwvv}ur{txwwzyxrxz}sytz}{w~}{{{{x{}tz}~{{}r{y~iwy{vqu{{z{w{ygzrt}yz}qtsu{vq~}}|onyz|yzxutvtvqx}oqplz||zjuv{vrsxzw~z|rxqx~~~~mwpvn||exz~x{ompys{p|m|{s|r|{x~y|xtwqhpoxtzxt{q{{zpwwwiztfsrz|pkur}z{m{rv|pqvyyv{oxxvy{|~xy{|tlpvw|yvlxyrvp~q~|n|wmvnt}kmufwjkwzkw}x~uzszm|s~~{~spwpqzys|rwutswz}{X|vu{|ns`wv}p|pwwuhnpyjo{swwx{||{mytuunuvy~xu{jvb{{Y~x~{l{nmvvz}|{i}z}~vwuyw}ruf}{}uytwu|tst|~twy|tx}so|wt{|q~l{|v}wrvq~ysy{i|w}|wtytqzqvtumz}y}~vyznztu~{y{m}ssr}|p~yz~xxs|vtws{t{wzzn|zsqtwytv{vun~~n{ptmpzvw|vxuz}muvu~p|~wws}s|{nut~x}}z~~|svs|yx}oxzxuxw|uuwzy~zq~tv}}|v}p}|pj|yv|ztp~wp}v~~zo{x{yv|~zt|rzvsprxxm{p|rzx}v{pvl~~kgvrxyrw~wwswwx||pzv|||qzozi}my|vvvz{rwsoxwytp|qyqrsvv~|w~~nxq}zvzyuvqj~yqlmd~t~xzykbnu|uyx~uwgvvwllwg~uwww^~z{|wyhxw{}|zw\wx~~|wkj}suy{{w_vrhyyunywsq{{wt|u{|n}{sozzrzj|jzr}}}\{x{rwrw{zp|~ielzsyjum|xyjshodpzskxtmlo~rq|{ysxw~s~tw}vwyp{wyvouzw{{v|uzrm~qpupfzbxxpnyxjwu}}tqurrlnu}u{xwqyuolyxt~x}{{vro{vswwx|}w|lxz{br|vm{eti}|}wopypzf}v|u}fhvpzzyvowuoyprvsxqwtn~ws}}zy{~{{q}lvufux|iwqzu~}r}|uwv|mfy|ww{yvvvzx~}soxrzo}zt|uwzmgmwzywwtuyw~x~yy|e|yzwo~||q|pvxtqyrswu{vu|mry}xswxutpstzn{|{b|vvzxp~tq{tuvvu}}w|vxyxnyw~xjl|p{xq}xxpw~xtt{u{zyzv{txtzwxr{~dvtl|qs}zuxysw|quv}~v|wtqxvy{}}{wgxyx~qxhz~nw}mq~wuzsisw|zy~xrjz}yzntz{uyz~owl|rys}wqvwsx~wmzrwzwu~y}rvx^yrw{~ys~qsy|znt{xdxu~rx~{ory|fr|yrww{w}{lk~}u~xumxpqpxx|y`woy}psp|orviqop|uoytsk{|vvryqpws{vmw{uuskun{i{kompvnnXzmls{vtzo^dqxr|z|yuxqkvktl{}sqrrm}u|s]ozyyymz{tzyovt{ssunzxwvqpvmrwljstlnvwclo~tzr||gzxzpqsy~yrenwj|zlpgptlv}tzt|}{j}jwzv~xwa|o}a^uw~dournxuv~txpo}n}o}}qm|q~v{yp~yqyx{flw|zwrykxu}qq}r~}kudmcv|ttutt}ezooexvvx}nuxsyrsdpr{zt~zvezrpkru}vxwo{yxvy|l||noytiyv~w}xu{kyshy~myvwrs{{wy~xxztuewsvy~sos}wymkuuoqtxywguxrsum}~x{x}~wxv^o}wxgr|w|{p{wupeyoy~{|t~kunsh}xu{v~|}~lvvuyzuzysy{lqrocx{vvnvq|us|y|vmxvz{x{on{rxu~pyzzu{x{jvx}ps|vy~|zpj~|r}uymyyq_xv}ysjup~dw~vw^rut{q}rznzyr~~|}t}|zlxzq|sxty|z}tuxrkzwwqt|lxqvn|zr{mzs|{izyt~rmtwuznrrs}|u|zmr~ruvgykvumvwoqr}}tywxwvus|zouu|woqzx~zlxuy|ru~wuzsvyuwv{xnvnywsoy{qy{rxxqjv{ui{p~uounryuuzy{|{vzvxv}~{r}wuv{{yxyqjw}ypgqs|zs|q~~u{zqw~uzqynvxuqywyvw^u{}~uw~wzzyyz{hywjn{v]tyqq_vv{wgwuv|htnzzy}zmq}s_{~}x~sthZzxw}tr}}ap|ydzo|z}w~u}}wus|ozz|gux~zz{t{spx}rz}isqqpyor{}{|}{}wwyl}ts}{}wq{{|lmyxtugvn|zqwz}y}|uvnx}~qtu|omq|rqu~xwxwno{p~wq|uzu}~stvywxy|yv{xtxxt~|yxxvq~}}ztp~}{||zzxy}xxsxzsyyvzzr|{yf_{oury}rvpn|zq{z|n{rzjyrozmtVgv|vtk~~~wwz}x}|zu|}{z|~rrptivuwo}~|{{{l{u|nrus|{{zvjrr}yxmq|t~xfxxwgzniyy|wq|~f|t{olqw~jsqsyysxty|{m{{tzvs||twvjsx{zcuno}rxqrydsnqxxo}yxqwr~|uys|o}\pz~~vny}qhrpyuvqstwsvv~}cvxwryp}|}vuurz\tqmr||iz{xvzuq|u~vxxz{rtyuznp~wxnlzruy|ux}w{z}uj~otyy~ltl{tsqs|pjqyoosy}f{vx}qktxng|rvqhy~x|vqjnorlzzuzhjwyzx~yn{xqmun{{o~~w|ovrmsuepq}k|{yvqzqzjwzyw{yl|myz{y{yslwu~}vqvs}sy~~ttnqyrr}mxp|uwus~vuxatpw|fy~yjmn}~{vuwnuss|n{t~|rx}mxsuxuwtwm{~uxpoy}szw{~{tzu}som}yr|wy}{luyqysuwo|youversg{suqwqs{xsqyp~|vv{}rzrvvg|xsqj|lcuvrYtrwy{wmr}st}ryvw}ypwygkup|qxh{wxl{tjcvrtz~yn|yjs^oy|z|l}vy|xz{sgdkutv{w{{x|ngz~}vptaxn}}x{~|xuy}xa~ttuqrvx|vvwqz}~zwrutsvrz}vkl~x{r~~o~pvqxu}|n}oxzujqtisuw|u|tsu~{|sZqw}lxywo|~}zsy|tgqsy~vsy{~lxuym|ux|fy}|ry}j|vqwxswkx}yqvtz|zv~}yssyo{ssft{ry~x|shx{wy{rzyo{ryqwz|tvxwt|yz|u{qzo{~~zoxvxgu{z~uxzzvmzhg{|r{{zzvwz{{oz|rrxyp}|vyr|~zrn{wqtvuw||xzxysu{v{y{ys|sju|zvpt~xzz}zovwu{ww}u|zwdpwwxwz\z{rz}pvhmdyzy{zzsyxzs|y{oxy|{kxxqnp|zswxz}wxtyit{zlzLxv~wvsuwu{~||y~z}v|}|yuwzix}ouwyy~jv{sy{}|v|uxyhw|yurq}~u~lw|xxqz{xkyvzotrz~oyyvvi}kzzpv~u~opryuwzs}vwruuqxxvx~xtvptvytu~y|zvr{y}qsr{zx~tzss}sqw}yyvr{yr{zv}zsru}zpup|y}}wuz{yjqwtziwx|}ylylk{^u~|t{}vsqu}mrzvmnxskmtzipm~qw{y}kdqirpryru{w|~svttnruyrjxyvxpwi{h~sfssym~~guxz{sm|ul~wtppty~yq|}tlyyzyzwx}|~|}u{}exwus~oy~vtmzturlutpvttlqw}~~}sq}r{yqvrov}gtklpxuyvryy~w~}]sry{fv~wwsql|ov~~sx}wqn|}}wsytxw|xt{wpqtnszp~zxj}xzrtylnzun~vulz}u~yqturr~t~v|ztzypoy}zoxrxhuvzzttt}qxwjyslyx}vioqw~jqxku~s|f|rbutul{ysy|x{sr~qsbmw}w{uq{pvdx{vm|{rv|bd{hshxt~~kiotnnmu|eml{~xyZb{}wyyocz|soirryxkxq~l{sixv{ta{evywxbq}mto~vvvjophrrhlsnww}xvqlvv}{oqu|~~o}n{xvk{{mzxz{kutskxmwUe{zqx}zlzuzuzwj~f}w|up{}{wtrvzrrptktww|woy~pxqx}}~roquywtwv}rzzuwiwvswwvss}u|t~ymz~|~|x~sstsc~~t}kkqtxnxzpum|smvyvmwx|xs|ty~|w}rzrlnw}~}~tzmzxhr}rt|yxysx|{rrrslm{xtww{pv{skmwsrholuquzgz{w}wrwtjwjzuxyxrpz|wussmsqy~{~qqt~rtxtw~tvywry~t}t{twvqt}zgzmwk|~xn~{syezqzw{rwnypsuzkxwtyuythwu|{kujpzpuwnxyoom}oyy{}p}yk{}t|lsyuwtypdzvtzsnyrqt}vkyrp}~{t{rzu|zzz{wpgzj{uvzwzulpyjj}pwi~z}|x|wvzw{o|~|xt~mnfu|x~r{svwmrouvsuvswv{wlhlp}cozzqhonxooz{xzw~Ssqvuzsoqv{{iuwgmrbl{ieczqt}rlVq~xyyp}|kw}u~{xrq]{yzro~{unysuvy{s{zvp|yuq}ytklavs{qqk|sX~yhyztqw{tabstsnzvdzjwyyoxv{csm~uk{~r\xtwfq}^[w}p|}|xvzkpbq}pg}z|z{k\r~ysozswuyvq|mtY}gy~~luoq|uxqvuzw|~uzzxj{}}z~qjtvsw}t|syfxrywyouurotukrvqvsrszprpp|vyzxypd}cxysvtr~m{}vwwozxww}ysh|rs}vrvv}}z||sxypw|suynsztiolsjzx}sqqwhtttvtsp~tw|i||xx}oL|r~hrvyzvg~w{uziuylv}{rxss}t}qzyit~Yj{t{osxvuwg{}{v~~swvhmy{{wth}~uo{nvtnypw^sz{u}~yut{svvzwx}{r{rw|p{}et|z{|pqsrsmuyzoz~uv{wuy}ypixytsvywwsx}w~vnwys|t}{s{v{r~}nzy~kz|s|vv|pttiusysfvnvzsz~pruzutrtgr}zrzxsfzvuwyuxuvruvxo~|~n\{o~zrt}rx|rxytzyvtt}z~yuitvrmr}~wqqkpwyzx|zv~txuqlly~|upuzt}oo|lwzf|ky|vqn{wxp||ovpp|nv}|ouz{|xrp~{~}x}{~~|v~{xtz~~vgrx|s{{yyxis{}zzyuuxzzy|s{zq~zyx{k~x}yuz}wlwnovpkontzwwgz{{k~{}{|urwdovoysuplzqwqtjv}wro~}vsyqzqsxlts}vzuvyzwy{hbt~qvokxpvl}wz\^z}u{srtzy~y|up|xr|zx}txl~uqqtwoqhYq}pu~yxmw}{vxmzup{nso|otyxsv|hulm~dzruu}yvupzhlt}u{z|n|psvww|vc|yyys|n|x}xmqZuz{txupzvl{sr{jq~nvuvqfy{ow~opuwP|m}Fusu{y~{i|uzix}~xs~uwu~rzxxyy}|zwu{yut}|}|rwu||~}xqpo|}tvuxvvulu{s}puup|}nyxycsm}wqymsu|xll}tztrewirzrun~wm|zp|wn~z}wq{yw|ssm~~yzm{nqlxtszn|x}v|~vq|u|tnhzquz|nzxzpwzvty}sv}yyssu}xht|n{w{z{}wsZ|ywv}}x~|z|qbhtxvs{xfzuqy|vqzsvvtusr||ztk|r|tzyy{pyyvw|q~muzw~a{o~kz|{|{{tp}zy}~}xzvz~v|mryyzusxhp|~n|rouwpxz{~qu|}yx{qquzp||w|qw}x{sw{tprxqug}n}}ppi}zsp{|ezzrv~~tzw{nt{|iyrst~}}qw|zxwo|pzvs|{wyxy{scxwzzrokjwywxrrqwqxow}}~|uyvvtrpttzstnux{{ttxjwu{mrvf}sn~vyqi{{x{{vu|xv}}tuuxzqssiu|ws~|{uo}z|^xxtng|||zl{wwxu}mvwv|tum|yuft~hvwzqyvuvqw{x}xzisfy}nhhvgrsxx~or|w{j}kv}}zkuwpx{m{gqyxysunmo|u{xze}zu}z^msunyq|l_yvxk~uoavyytwYgmwzqnz~|ptvnw~|nvtz}`w|y{s}xtmvoymwqvxwksnz{wkytyzqx}wyskkvr|zx{m|kxtuzhtq~yv~xxyvyPpyo{r{xhzyunkyosyesuv|}t|rttbxpzz|}dwxvssqtshu}|wu|}wr}zw{jy|wusiw`h}ws~o}y{~qxylpsyul|[mffpyukmw{zoy|[otbrozznwoyxmj{oz|iuxyj}sr{n}|xsxwvnrxw|xsnxuz~|r{{~tvwsurn}z}myrrnzypiu{vjqxp{rqswprsq{otx{yuuso|xx~zmvw}m}~zxsx~{ww{k|lv~{r|zu{xtwvmz{~vhvpzwlxusxr~wig|xpu{w|mlxwv|~ww{zxvwomzqk}n{}zqyyovlxukfvnuh~zsoqw}mwqZ}qorsq~x{unnwvn~qvpmnylf}||owz{{qx~iv~sv}r~pqyzzr{psrtuywozwopeu}yjukptywtyo{|nvo~usy}tstyp{zoytqsvywxqzsok~|ultxn{}|u}vsus~xxt~rjb{qzn~~{ov}pq}{~wry~~hyxw}{y{~g~xxwy}syutut~wzfwylzlw{vv~{xqre~j~y{szs|}m}yzxxqr{~y|}woxzwuwku{tzkkrx\vrwvoxuowwj|jwv|x|t~kt}txy~sxhw}fso{e]i{}}m{wvv{liwyojxvoxq}~q|o~ur~_rnrt}sr}fUx}jS}mr}zs|huv{|ypwxxyvvoruy`zpnw{{po|xinxnvmpfmhq|yzz|}uvqzz}z}~v|utwuss{qtv{z}lbvyq|py|rqt}np|zmtxy~u{u||x|{}p|gmvsxlq~zyzz~xyys|y{{y|vlvu}u{yu~i}zzopm}~nypuxx|w|~pryxg}|yufy}jw}Xw|}}ruuvv~~ppmow~q{tsssv{~pvopxjh{~lvjp{yqzltx{vcpjsm~gfyjyiu}zMmqtpyx}{oqzv}luur]~ytxzlxopyo{vj{tiv{mvuwvqwpn]wz}zj{lrvysjrp|sutwdxxozvvr~l~ruy}tztw}tuxzy{pu{wuopzvwtty|~izyxqwsytpsm}}|lrs~Lus}zqwwq{wz}ho{ikwyvy{x{nzpsvyq~tzzuhj{oy{zlwyx~nvl{v{xpnrwqs{mryytnzvuxqvvuznsww{quwj|{zxlq}iozpto{wultx{rl}y}}ix|ky}mlxzzv~uyt}|~j~{|hqrx}{loz~w~juwopopkte|r~}u|pyi~|qxz{ixtu|zt|urzsxh}zrx}~qwv~{euvp|u|z}vuynp~{lxwxvvxxvoux{uu~owtmyp{wsyusr}yxe|z}{}rma|votgt{}sw{sux{{w|~xz~mbtvvnzv}u}~{tuzzqtso{wv{yzvxrvypyy~wksyn~{~{{tst}~sux|wwvuz|qu~yivrrp}}}vv}q{v~tuuyizswuz}yjyvu||u~svt}|yz}izy{nws|xvvuttun}xouuw|ziyuvoxygsyvto~v~t~{od{kwrwnzol{wzoup}xvtpg{pnqxt|zz{swyvyz{uw{||}{w}o~v{wsurzyaykv{v~s~tz}{u~ynyvuv||y|mnpztou{utru|xirxtz{\w~{s|`no^qn||wpt|{pjputytst{q{tqwywwg~x{s~nv|qmz|m~{m}z}~x||}qnzzkv~twv}}ysouz}|mtswzssxs{zcpq|yuzy~zzxz~{tx~tx~wzuw{uzt{r~rzv}|swt|xzyyql|{ypqt~v~{~ut{yu~xmvz}~u}yk}v|t}v{~pxvr}wuhvx}u|x{~{s}zkvywyzt}t}wnyw{}rm~|}xyr}yxmxz}|wsyuyryu|pt{mv{vurzu}s}vqp|vxwr~{uz{t{vrtpprrz}xsw|z{r~qtpyi|xyt{~pzvqlzxzow|~vyqvt~uuxssrwsmyt}yqlz}xpz{zt~wiit|ynstttr{{|u||~}q{zi}vmvu}kyrytsv|v{zvsjxxzww~|n}x{|rywicpu{|{{t|~|tkvnvsnjo||uupw}twyrysZvy{~znKytexo~w{{pukwqw}p|vspyrx|wsu}zq|tu~qr{re}xqwuzq}zzquw|loccyxz}v}tvm}}nwp}x}yw~yvvwkyzg|mvy{zyzzutx}vn}j~rsrrsml}zs~ln{zwm}uuy{zouv~zojqtlwxt~siwwv{u{muvzj{zr{y{g~swsvytqrtzt~y}}xwxlxzivp}ur~{spttsqe~o~q{vzpuufttiwod{xpztwxypqrkj}x||v{uyu{{l~vvxtkpvs}luqg{nzpnvvuszqzxxqwotizqwoysrxyuy~tul~{ut}u~om{spur~sw{z~xtvn~~twzowtxxs}q~{resl~n}rvso|pn~rr{ot{ruxtmvmrpwivy~qzxqzuukoo}u}}zgvtwo{gk~t|lzyzlps}ti|~rrsrwrql{wxyv|~vzqu{vztssxo|z|kwvhy~~{u}xwo~wyn}vzupy|tptt|rvzuy{|u}{{zp|y|w}vzy}{|qpi{vxunsw}wSqsmrv|uzyx}\{uwzkk~fvyr^y~xrnqzsxowxqz{}u|vuyzjw}qx|us}lwx|{t|~}~r~~}npx{tuq}hm|ov~uyxf{isp}~|vzv|}lZs|qzx|Yuz{urvqsmr{htzo~vx|tnxrbvrovsxzavzqy|z{wmt{Zuuwy{vwsti|vqnyx}|z|wlo}rt}{jzp~u|qzyxomvz|qu~}u}tswk~|qwpsnxtrtrz}|nwwy{znyvwrx|yzvpwypurxxx|nqzty}tstt~ywq~y}{utvs~q|qyq|wVsqkyhrwzzhy|u{|wpx|vu}zwyu|sv{zuuttsf|qy{yyxz|vxqwxyscu}ql{mxy|tyzl~rtow}ynmvjyz|wm}uzw|tzoq{|yxmtvw{~|z}|z|}v~y{tvz}wzzxy{q{yz~wvszyuy{qznziv_w~xxgku{vuz~z|rywwxzosxt|t~{yywvm~tztypyxvtnxxy{w~r~v|ywwztty}yr{srw{oy{nr|xunltzkrq||vsxwwwdzoqownkv\fzrr||r{t}{juwq|xstvy~}~y|yiytqrmqvtvso}~zx~pdyyvvpvt}xu|wvyn}utijrsvwxw}pxtsys}o{u{~{z}}yyqqsvz||}rmmwoyynrltuprqw}txrqy}|rw~zqnqp{}}q~rqwqyxswtxjuqm}ouuqx{{tuuvxx{zly||vwv{~wxzwfpujrqo{tzpu~yqx|ni}q~zs{yykztoy{ryyr|xyrt|mtrx~vytkp{uv|sgpuluvx}q}seyvrq|zozzyr{qqzo}jrw|wsrpymyxs{{oup{~w|xt}|mxqnxj}yy{yzpz~upi{|}x{wi|fxskopvx{wyxh~pr{|}hvn}w}ozzq|zyzxuzyxzs{yu|pmt{qsyt{wzunu|c|zmw{s{xzx{yyup~uvxq{oxx{{s{ry~qtsvrxn{zwwvouu}vwxbwuvzr~yv{v~}yz{xqtxvw~~ry}|wtyvzmrpsyp|~{wyu|sz}||x|r{px{f|{i{kz~z{h~{rrdx}suyvp{}|rxu|xnsmpzxxorxtr{p{}||~}qv}yvxtv{cv{zij}btsutwrzt|ysw|rmwlwyzg{zp|yx|jpvutm}~qsnjtvxwtksjxut}q|||mu{k~mv|wow|mfo{yzpuuz~~y`||yx|w}wt|xkyswqw|xfuyx~vkym~t|qr{ruv{tswtt|x~uxn}zclsosx|q{q|}v{v}n}vxx{}|x}pxc|{oz]uwo~u{|wt{ut{v~rv{zyyyjs{{}upwv|n}|ws{xn}{o{|isy~z|yw{oghl}~ywi}ou{{yqyuwnlk~yyrpuwszz|{~v|vx|y}z~xuit|z~iyt}ypzxtiizuo}ltmtvqiw~|~l|{ryn~xue{yiz~}|r~xxwskyu{ozuu{l~t}yoky{zqrpwuz{{uwoy|`orzq|{~~yqx~i~wyt~qqutu|qcturn}rtx{[xyuspt~{spxlv\vros{um~|l{hvyu~n}pw}qYm|f{ptywsqf{urp~lwl}t|lzz|dxsjpo~m|s\myuusrqw{}tjssuqkz}skwt|z~u}|wtxu|xtry|suuytty{zvv{yq|dunz}zzn|mzjwmwznz~qo}vg|putsslxwx}r|vuehzqtrtt|{rr]s{h}rcnwy~pu}|}ptz}|wv||}~wrqvn}lu|v}sovuo}opus~|yzwnu~tw}}|zv~ywvynmqyuvytoyui|}}twxpx|~mq}{wne]rwrryhwvps|vnsuulmy~|ytmz}~tv~xn|ov|yvms|pwsv{}}{}olspw|ku|j}vywiqws{rut|{ysdor{vt~vtxs|lruyb~vrnsh|rvy}t|rmwps}n}~|tswpjxyyy{yy~{xcun}v}w||yu{qw~uaxswk|ozwmwwytwt}t]r|~xrzqd|xrk|xy}n}uewt{{}zlqzqjku|~ttyh{o{yqnv{vzxjm}uwvtjjctr~vy{vnw~w{|rwy~y^ytyzx}{ivz}povoqlz|t}}q}}xu{|tvu{p~q}e~zt|y{Msv|||}{nwxxxs|x{xtlzpwkvxzww}txzxjzuirvvtzt{ovpwcxpt|nvyxjnrwsuuwlv{hzluv{u}d{wny{zwt}p{vykyusehr|u_x{zzr|_~vvqxwy~q~ysyorgqj{|p~wvzytt||vuxzxpqv|}muv|ypsy~mlo}rrzqyx~}qy~jf~|uhz}i}wsuzp|xmrrqlxzzzt~~s|xuv~m|xv~tytuyulkwsuxuxy{vurxy{{c{}ovxnyxxy|ynux|vs|wys{rqzrxqwzzsyy{pvuzq}}tyy~~zz{uxo~vtyxsryxy|u|qswn{sppwrtttzpx}|}zwt|sy||yuyxk|zxt{{q|lvty~zz|ekwvy}yvo||r{`WvWzwyqnylnzsxupwzlj{ortzzvyu{xdjvny|}frnxf{xsohalxjy{tvgzr{zg{zvpboytrV`slyv_{vqvyvwvzjrknzqo~xip}sxvnsxtzxxbft|msytv|~xkny^u~|kyv||txrvv{s}~n|tl{wxxpsgsjzj{ty{cluzzitt~y~}u|~rgyqst{}y~|xpjr]|{xmsv|qxeei||t|rxnl~zx|}vzNwyy{yquzuo{yxr{u~zpr}x~zoezm{rwtryp}zUz|zryurjhroamvpxlqztsxaqths~oy}re}z}l|zyon|v~}{rxgdtqxu{s~nmrthzy`mxymw}swy{nt}sly]gZw~m{?kopy~|nrilt}|a|uk{sx{uwphutpyk}kyuzyskr{yol}sg~l{lsy|{tsvmiyuv}tu|y{x{ntxuxrW{q{mur~g}xvrpr}xmsxz{xu`i}rm|yvxn~rt^{y{~qyxxwyvznr{o}qNvxvvx~rzqpxzy|dxt{{t`rrnyu|wl{|z~izqptusyq{pq||h{y~qmruu{qwypzzwzs`|z{j~tv||\oqvzrp[|s|~~|yuhw~`]n{lxx~mkr|xruruh~~w{yltv~vz}ewz{xnxv~fwnyv|yo|tlv|uwxrxr}mzw~typyHyzpmvvvyofyvzqt[{uqlx||}wo{zyxu{mvsx~www{wvpvpxyu|}{qv}yvvvvuxvlu}uyuvvwowsqy{x{wvw{~jvz~n{urr~|yv{zyys}wt}yl}v}v}mwx{zz{vqt}}ztqwpty{r|s{{umzvw{zy{}v|}vpyuyyrq{~luwykzy{}s{sxwq|{{zpyqlzkww}uxyutyyx{~vsvqyoqyxrz|vu{yuwu}wy|sr|v~vqwu{l|ymsystpqwrvx|yyxk~x|~wxztnjouypzuuq}us|nt}y{yyuuxzxp{v{uuuzvtu~y|quo{twvnwspvz{o{vwz|xloq{mr{oz|myvxw~wsxysp{xx{v|{}~{x{yyzq|r|svx{vw}w{x{p{s}syuy}f{~~vstq{wyzyzjjtwwl~rspgpx~xxzss}yjy}|wtx}tf{vkoy}wsrvx{hvq{{rrvrxlzzxuv~xwwt|}j~uvrpoxxwtz{qpz}~ww`ww~xjnxxpxuztnwnxsy{i{sunrhwhrxu{ynwx~xuzx[tsyqpxzyyu{|st~x{o{vsxwxuuss~t{nusz~xw}wwmxuy{zxtr}oxzpwymnwzpr~|x}{~uwzmyom}ovqntzxw}yt~rzxvs|vox~o{p}o`xwvv||~yrq|tzv|uz{{{dukwvxxys{isktz{~zutyw}t|xvo|pxyszmkwriszwpyuwk|qopqxvoznvz]ssurhovxzuzl~o|zx}vz|lp|wv|uvumq~vupy~|t{|zysvloyz|ott}qsyv}w~xwsspqqps{o}eymzv}zvuuqqyu{z|rnunrt}vvtkjguqojq~qoktzm~n}yfyfzyp|sw}pi}o~qr{~g}{w|~strszx}}vl|{p|qtstyftt}s}uztu}xu|~|xxuq|~~|xz~zlzjyvoxsns|uz|x|}qt}{~{qsyov}xst|snvsrry{yfrqxry|rjlmthw|sr{ptxtylwpy}|nwvynhmmwvywmxryyzxyqzjfvwu|wtu|strlq||wn|}ugktdv|swzuq{wv{m~ysoivlt~zvy|tnswzXtsvus\sokikoaqvzzzs]~{}s{dTl{txvyh~ylf{}y`|h~{lvl{}quyvqor~t{r|}{ruqzuxl~krO~pt}jt|txh}osayr]z}vvrzcbvxqxswyprwqsztquxryxv{y{|{hkzyyvtvu}|nqcusv{sywv{|nntu~s~rp}xru|at~t{up|uqqpxsfqv~xovzw|}mmyvxwr{v}wtu|swzu}wm~oemuu{vhvy~zs~m}wy~v}mwxwusmyz~|wuoquzpl}ux{l}trnnuvx{{w}qw{{wzmuvvu{wu~rz{vqtz}zq~a|pxrk~u|xvq}x{xzw}|wxqvt{}whe}|y~}wtyt{krxz{~{||wmrz_t{ty~z{r{{|{ow~q~~u}y{zyjwvz{xwzwyn|mstn|dy~jx{|urbxwynzsy\qxuu}o~r{zwpodxwxxvuvzzs~mxoiycxEuqvrxgsrhp{~vn|Trer|nk{rqezzywmszrlukxv|{val~S|cu|itjgk{{g|cs|vg~}svvyxy}l}~wt}xquy~zlx{}}twz{uy|wxywtizyx~sn}xsyw~vvr~xzxly|{u{zsxuu{xysspyzrwy}kuu{}qzvtzkr~koyts|x|xvyy|tizyn~t|~}t{~uzyus~vsx|pw}vqu~yt\qvp|uvnewp~wu|jv~vpywgy{zptzvsp~rzq}znksx}mY|irvpqs{}ptlz}{ms{tsxqpvqoj~os}~x}~tsy}odqpt}r{ret|odonj}fx{qoxqqsuwz|~k}szuq}rtnvnj|yzx|tx}}}xo||~sppkr~oyqypzwppyvy{vwq{xwttmu}moxxunyxv~ozwo{uqxouxr|{nvcxtxwsujxz{utkvx{y{qsyyrztro{zxrqsuzrszys|{sptt|~tsx{yrwuvl~s|ihoqyix~ww~k{p~vzxzy|m{top~ynw|uxyoxu~zysgv~xtiy{}r{z{{u|~zwxs{z}p|zwvxtvou~yvwzkvvv{}p{xzopx|nf}z}xutbwwp|x{~nl{v|m}zy{q|y{yos}s{~muwrui}}z|wuw}vtq{mxssup{uyaqzmwt~p{{rwhz]oum{xwjrxo`|p]xrvp}|kzvmsri~pxpegysu~wr||~sz{{}u~r{kqa}jgtzpy}jmuwt{huo}udswzszlvu|n{dryuyvtus~svz~rxxpnwzt||}{{t}_}k}{rwyu{yytt}osxt{uyx~z{wx|{|v~}jo~rnyq|X|vn{h}}mgzx|zyzd{qv}{y{|{jqvvtov|_{wp}z}}mkryxgrzs{~}~}yhcptti~vdxqy}mrqtmvu|~yjyvruwwxszw|xvhx{qwv|wxv|um|}~}|q{y~xzvumx}yr{tozrz}qzz~ywvu|nyvzw|wq{z{zv|to|}xt}trvq~y~xwt~xzthpq|xy|tn~}y{|}|~}v{}qoqqs{zt~vy}sus`~v}irzwk~q~|t}ju}zusw{rmz~zzu||~ry{y|q~xq~{yu|zyx{qpy~zy|zx|wzxutwq}ontkuyxrtrz|rv|{~}sszst]vyurzux}pjx{tzlmultrv~ty{{svuzpy~u}zw}w{|~prv~l|x}sty}ysxv|}zzxxq{u~ytvyv}z}jz{yvz}~xpim}w|wrzzt~ts|wg~x}}|}it~}vszuxp~{ul{}y}td~jyt{xy{}~ylwvr|ox{u}s{whywt|wswjlz~z~smywvtjvwyrxr}sssrcus{xqt|~~|s{vuxytk^xzu~v|~twtzusuy}y{ts}wjilqtzvl|pxr{ztrz~vs}tpy{{z~{xpuqqlwwlq{}usmq|s~z}|rtvuw{lx|xstqlvxUupnxy}v}vs~xsiraYw{owzwn}z|tiylz~q}vv~rtr~vxqtvqruos}zs}s|qx{}ruyy}y|wwcsjzvyvt~{zw|kx{~uyot|masz{}yy{}~lsxxzyyw}ox{|xz}zrxvl~z{s~}u}stlvyxr{{vlx}s{vtwtxzw~polujy~x|n|~qjvzwswjrt~wkuqptnxxy}}~xn||x}v~{g}{vnw}svoqspxyyp}{zxrpxw|ry~}v~pqq~wz~ttxvqvnw|wsxyy~htzxqvzyrnjwws{yzzn|t}rspou{y}zsu|{{wrxq{mz{|vrxwvvzyg~lw|uumnztmut|unyrvvq~vqswsxsftuwuy}xttks}mbtsqxqu~k|mu}vtsvzuurwxsvvzd}wmxl}q}zdqniqmw~oukdy~unzo~rjtwyhx~}savdrmh|rxutwrswty~i{q|jsn~kywsr}uj}{wz~uwruv{w{rywu~w~wu}z~|twx}xzuqyx}|ms}ztwz~}sw|}oxxvxyznxvkzmt|tnyvreyysydr}zr|}||no{uzwyvu}~v{xu|vtzp}|vx{rur{zzzt{wpwvo~~{yrno|sxz|{hq}z{}xyj~yktto}dxzotvzxo~mqmsrl}vdirwrxoixinzp{rm~sirwdz}nu|{kvudonjfn}psvg|vmzxZt}nmwmhjlstzttly]yt|{tmy}^x|{wqwr{purqntzps]vjir|oZrs~mzpyuvuzorrxqyztwwy|yk{qcqxuv{R}osvwoeUbervzfq|}wus`ruqnawr|tnusynwk^x@lptwbsejvmyqps}}vqetvyt{~orknxizh~suewZNy|er\gp}upsyxvwv{w~wumnvyb~pswrx}zis~uu~xbzxxyuusylozxlytwnxzsunot|l|wr|}vynxwqxu{stxyxvor|suwy|hut~~}m~utjz}xytuuq{swsu}pt}|ywz~xp{lrrgou}~}yozru||yzw~|o{ld~{ybdsul{yvvrzj{nviwv~xckpvumyt|xuqprrwgmwuwh~}zslncsegp_cyUtawt}oo<~zwtl~{pho~txgyzmks}xzqOz|wUtxzpo{tqksztwuxqc~lw}GUuwlyiy}pvityr{b~|zzzr{stgqor{{uwz|uwkzywu|tqlxtspt|p|unq~q{x|rotgdpp}uouyztv|v}\xxxoqwvurzl~wuxvuupqrqwvztywv}rc|wxnz{pntsdzt{owzwq|{h}syvnyqwkwzvyqrvl}yzmw{svr|xmwXw}xp|wzwusz~xr~z|jwi{~sr|zwyvu{v~pj~{{|v|vt{stz}qz||ri|}wi{vttwtzvwr~zyxkx{s|ytyyr~{v{|~ky||{x~~us}prszxzvw{ypvyzixwq}{r|txzq~]nwzuuro~sm}yxo}tox|kisvo}zqz|zpx}szvqso~u]osr~oqsw}[trqsmzttm}yr|quqtx}}{rxwoq{itwtzxdvorr~u{}ow|o{vfzvk{o}v{z{tmu]w}Qh|xbz}uvj|zvzwumyQzlmx{{qto~{v}xjg}rowmyawemy~yrAecthuqvuw|bv}s{xwtzfr|qrx}Zzy{swzoryx~{|svawpwy}`t}suuzyqzxqx}|zuy|~wsst~by{pzvhooq{yywuqppr|yhvutzxisu{iyolnp{||dumv~}rziswozw{wwspuy{psjz~gx}ozvk~puoux}|}w{~xlv}uhuuox~rxu{r{qx]oztiuwytzi|i}usuwkw}sk}wqyeu}v{rxwtup~pyzxt}ov}rr|j~nwu}nsq{ryt]spxw~wt~ptsuumzf|ls~uozz{xt{p|mwgt~tuvlquwujjj|}nYp{gzrq~zz|u}pvrtljzx{tr{xz{||~r|xytxbxuvvszurwtyrsrn~{ut^u~{gywr{wudlrxz|qwPx~~~g{sxtq}ru}t|{wxr{rk|yd~w}lxe~vrwm~|uionsssszx}cqvtu~sn|xyv|inuutujnwuyzzvw}~~pV}u{vm{ztuto}zunb|ijvqnisviz|vsvzwuyzrpuzwh|iq}}r{v~m~{{qx~uoswo~utsvyywlmwv}tvp}}~x||yxv~nv~l|~rxlyvx||wssvxy`kovrt{awy{o|~j}}|u{wwvrpr}y|u}}v}sx~xx|s{yim{zuw~pn}qsq|u{|qugfztyy`jeYsvloqNx{gwQwggd|wneiXtsyzriz|qdw}rxchvg]hhnwzuto|wy{]y~|usuebexbourlne^vflak_pxkflka}nn}og`vwwqwrgonzk{t}w{ippmbevingwezqmpe{gfzvpilunlzqq|ll{ozolwck}vrvcwuxWwpy|s}xlzpkysu}sizyjzow{}yvvpyyttrrpx~}rq{{}}w}s|r}pupwxguyxpyzvzuwxlu{xwo|yz[wt~a}zxl`klzkq}~}rlv}ro{q{uqfwvxosvvy~wvssuu{nyuux|rzz{}kjsyz}~srvw~|auxz|bc~|sn{p_}g{zy|tsnejy|xwrvzvpzvvsfu}xlfvdnuyuu|mvwqzryop^up~~Qrz{m~pgl}yzdy||zv}gytmyy{w||~y{~~u{tiuu{uzvyz}uspnqy|tzxk|kp}}uxpwqguyzu}|kbzwx|mh~h~tzg|zxxtxrt~wv~nx|t}|yyvtu{zuwh}|xnwz{vsuyr}kzrtmok|t{|x}uyhyvhss{|ytuuqq|xx~xtn{~wv{~|tszzwqgz{{s|z|rtnwtxtkl~rqaxzwyrxv~{szjuu|tv~oc|uz|v~x|so~vtZy{l}uw{p|zyx|zwxsxznhruqsrgx{oywqmwxqmqsygyuurwwy}y{|ysprdmxl{ryys}wzx}vto|mvnvwxpizvyw{~~zgy}~xwwwxlsxkzqyivvv{rwu{qtnyznwxl}u{~uzu}||xii|z|wsv{{u^z}xvw|wnwtsr~wx}x~^}vy~n{}v{t{un{w}}y||vkmsr}xw|w{y}v}zztwu}~}}qsi|vm|p{x}ty~yy}}mxhsxxywg{jwvszuzzry{~}mqs{rwujw~pspogoeppvtlv_v|uvyxi|~szup}pxs{}kpywqakt~~|wsy{m|sv}|zu|qxnqrf}}ltr|}tzzqj~twrwoutzu{ruuwy|xqswyuftx}{zq}u~{u{~yvxuvzvotlnrt{txkqms{{rzx{ytzpzwo}^o~vk^t{o|xuyy{nwm|sx{vwlyoqsq|xcxzvstqy|lFyjoz^l}s}cz|xxy|tnvzuwqxxmyxocj~uzwjtrnno}txqovy{nsq~tlhzzs|}oyw}zwuyxzzvwu}ppuvq{g~qz{toly}k{}~}rsz}udry|mpghwo|{sot{yzwy|ssx{|ygo}rvzu{k~{wyywz{x{o{uxmx|nr|~|zqt}z~{quw{vv~w{myku|rwpwx~xprsruqzuspwyiywdwxtxznstmiiutxmps{zvxtt||ojw~yrhrphvxzm~~yvwv|uz}hxxpzr|}u}voe}tr}|yxt{wu[vn~{~zmwrmqy|ztqy\xqtZwrw{~xrimm~oj}]|{{lrpuzqwuqlwzxrqscwmo|n{t}p{u}y}wimurx[qtxyssovuhoyomx{ydavbx{t~vxoxusrv}trgy}zx{jvqjqcu}xfcwqyz|{~m}j{qw|uu|{{xq}srtowuhxv~mzxvyz}{}wwx}{~x{}}vvxzyzp{ku~rvpqyxv|r|ux}|xpnz{kz{{qu{~wrp{yx|wsx|x~xroott{ltt{ptvquz~~x}}{qw}~xm{zwsyv~ypzfrb}zyvzzvurxx|z~yiyvmtryw}vtv|}y||svtqrpmqxwy{}z|zcxesqxz~Wx~txghksu~ro|r{g|wmr{rxpxjer|w}v|uxsyow~{{ur}}pjzow}y~{wtsyy~hwsvqv|w|tmk}~xz~mk{twm{zwyxx{xyxmuw|}zry|wlxm{vzztv{zwsrfyqq~|x~oezz}|g}t{tnss|{x|v~wx|oqqulou|zyptswryl}u}svwx}uxwxovs}z~ol}s|nl|~{f|lryok}~uzxv~qz|syz|}{uyy~yjuq|uuwxo|qttt~|~{vxpvpugy~os{xc{]{{ytxyvjvvq{yvywvx~y}}|yer{jwxw~olvxzqza}~vww{s}sxsw}{snvz{kyyx}ysnwsuy~mxrtmrox~{{xyzi~nk{{svtvwr{oxj~|j~nvpurfy{|srxzq|zrl{u|tkvyo{orzsumimdxto}xmurxls{~ov~|tetynpqlworpt|lwzkoq|yr{h{qy}m{xtzuympu{~~p]sgwtzs}wwhi|w{cq}xzuwxuxq{{r\}uyuzy|uwv}rwov|y}{}mz~yuzzz|qxnu}ow{symxtm{|wwr}mgrkevxpzpvz~z|orvw~u|urst~{tzx}xuw}~uwazx~zewx}y~szlzw}w|uxu~s{yyy{~yvtquujw}~}zh{{d{{vo{t~nvwlklvwczfywv~|csx}ouY|w{t|~nvzusym{wlp|zzrsrxslt~wxwysuu|z{yswsVzguxm~vov~ony~wu|vywuw}swmtjzttxrw|ptzmzfon|xupnszvtf{}v{uux|ybywrpkzy}nwxz}xxuxrmurtsiz[tx}wovrrx~vqzp{~k{}tkpq|fxo|}qkw~usiw|ucqt}w`wkxewqwywvwryrgs{nu}pnt}|xlu|qyuupqxo~upp|jlx{syzz{}tcz{wz]ksbpsxz~zx}J}{u}tXxu{yxzuxtz}vi~xxpvgoqkpvuxrtgrxtz{y]tzity}}{~iv~mfyv{}|py{||}|swlnw}tryqzv}tuwvhy~u|v}h~s{we~w~tqxy{nwojyv{m~{tr}}srszwspzs}}Y~gsysvvx}{z}oocc}xvzwbzv{uws~yvq{|rpwknvxwnwsypwwu~stkywy~w}t~x|fyzz|zlyzqwle{pr}yuwvpknv~pxixit|usjznzts~xzxutzznvv{yx}}}ztqm{smwx}uusrvxyzzqrtzww~wznmiywra{}dwyyx|{~sutnv|xyzvuty~tk~~}~|yh~s~op}tvwzswvjtwzr~zpr~sz|~|stpotd~}w{ss|szrwy|sqvbo|sgszzquzxw~rr}vtxz}wkvylut|zmzqynskvv{or|zvsjort{wytmzfs^|uxp~|twth{m{xwv|xjwwv}}oy{|{y~{u}yqnu|}yvwutgot{xvw}hytxos|pyqvmvpsyyUu|}|thm}{wn{g~krovyu{sz~y||dthslfk}oyistwjprqy~||~|zf~udrxcyw|~nx~tymw|y]rpkpp{i|wwfqyoswW{~pz|stwm]tkyxy~||ww{|v}|}|~xw~|{}Jzy~r|rrvuvxuzwo{tysv~oxwzt|h`~wwul~|huuqklypwstsvzx~|{z{yx{kttyvq{xewtg{xx|rtvs~xtqxxMe{|wqz~tjtpvtuwlp{w|\vu|wvyf}||y{||~w{pv|yvtnr{zqjsxooz}yx}mh|xuqwsvlxm~{uz|vr|vsrkelyjox|xvn}w~w{~vivvxvysxssosrwt~|{|Wout}q{{tryppyupwxzvvwk}uWk{}x|it~wpusr|gv|}hoovqljm{}yzyzxm}lxz~}xnpozyz}x{vt}r{ooekzsy{|gx{v|vgu|mnftvsyosuuvq|pwr|{qxmrx|ushuypxz~sisuorsz{}~k}r{{{}uszx~z|{|yuuq~tm{jdzxh~zryjtppvrtr~}t|uzt{y{yro~wxxyutzlnrqoqwwrmjmrhlx{zvztr{zr|somp{s|q~pmusfy{rhow|pt|lvxz||~twuwsz{|{ptowpx~wv}jpyxxmlxsr~mw{uyvptn{t|z~|jvw~~ztsvq|yzlu{out}ak}tly}s}gu{tpztvysusv~sxisyqqzzo~~nt{u}rrq{t}|wnrx}zwyot|zdms|pwu}{xw}zztqtyzwsw{x|wxi~twz~x|ry}ot~vu|~qtz}~u~zwtvwwzzzyx|lt~y~ryy}o~tp|{|}pxuqtuzx{w}trrxyyyvu}os|syxr[upz|xtqctynqwzs{u|{wvqnqugstztkw{x~||xo|dq}|orojyrwi}xytkysxppx{ty|vnrtvu|rn|{iume{~{kttyu|vvsswzmtxs||pzqx{qxmrxsqv|rtvl|t}{ys}wr~xxl}~st}pq}v}}uw{tx}srttwyzrc~v|szp|zy{o~unp~|y}wnqzvvrsszuumuy~y~qzuqt}ymx}}yv~t{}u{{zus{wptuyp}tlt~zy}qvt~s|ssqx|k|{|{rxzylky{|wzw{w{wz~q{~yzrh|prvpwwgprsgkryhpnoy~twn~}oiouxyn{u{}{ri{}n~wwwp}~n}{}p{~qtuhmsv~zvqucs~cwvcxupr|yz~z}z~{tnx|ngzww}ywmintwq}uwwtzssomyyr{{mn]uw|n}s|wzn{sg|mywmx}vtTs}oxf{|pbfyrm{jqr~wh|twsvtv|vyx~mvstiwRy|vXylsyvwysuyrlsqx}{qpt{}nswz{m{m|tuyrm|slw{rxyynt}szmlstr~w|oisz}ityjvou|r{vusyp~{tyutkow{u|uvwmnos}mp{oy}l|}{plhwuj||}olrqtwxwr}lyrz{s~ys}}usp~z|}uwzoluomw}kszx~xuw~x{bwtj_xus~ynvyyyzvxzygnrQ~gvvto{gxnx}jxx}q|yt{ytezco|j{zmwnmszeJohqze{zzuxup|vq{zX{uxm~qw}{SnT|s|qqwxq{jvo~tow|z}{zwVxdvqu{xsu{owtrw{~yftp|zlfzpv|{gqozy{vzux{o{_owssxuzs{xtzdyzn{vvj{tv{w~twwqwxt}|swyw}~wnyy|m{t|mp|y{gzxlru|z|sq`y{}q~yqxwyis`mv}u{rt_{{~ytiuyunxxwyxjsx|{ysswxkvky|~v}d}t}yz`y{y||s|~vuytb}{d|isqz~qdx}|jub|wuz{{xujp|zyxvwn|y~mxztypkxaqmtwn}tz{jtqwq~|tatrvttmsxvtwh|{{qteypxylls{z}pumpvzqp}upvszt{pxxsyx~rwwuqwuuwqp{xxqyxw|plvuozuzwywuz{}outszuoqusq~~uzoqxqyzr|xnp{}pz}m}|r}s~|xs~zyxtwpuwvvrvzt}uw|u{{u{v~~mzn]qzz}fqxvwszutki|ku}|zg|umf}}jVyyzojpio]~j}z}wrczurysyggz}qvxtdy[pyo~sW~tqyntu~zzxszujobotye{~qg^nhyy|v{w}~ry~z~b~}mezzr}bwy}il{lyelupsmfofkqzlzlfwchxqlz~v}rdqx~tcpttzrwtyi~yXzsukhtU}jxettx{rwtzhrk}oy|q}yhr~boxmtsw|nx}~tym}~hy{{mozwjkxrixyqurnk{uvnnp}p~m{|vx{mryus|}wrxzpxxzuswztwy{}xvtwupqmu}}vyx{{ssj~jsq{lx}l}r~|vnx|{wo{pqz{yh|y|r{ytzu~a~~ywzot{xpk{|}mgx}io~zts}sktntyxuzyyqu{zqzv~u|s{}qu~usmyuvvxsnqymy|{q}|vk{k}w~u~{wzw}y{mt|{n}wpuzvq{untzx}zrzltwu|||vwox}tew}v~wvvdvyxk{v|rn{qsqr|{twtk|wk}jsx~}tov|}sxrumt{r{|~ymwwvpsluuwmwmylm|wsqstzzqnt|~x}txwp{vz|rwxx|{qvyxrxylzysw{vfyswtxw{lvmv~toqju~ww}ry|{||{qy|jvzsjyxsppt|gt[vpztwq|zqr~oro;{mtz|{xwyxm~~yu}xusxz{t{|xyoxlsswup}{~v|yz{v~}t}yzvz|u|psvw~{myt|yzq~|wyxtuxs{wy}tzuwqzw~}ip|wx}yz}~pwqxuykzxxrszsxryvzznvvzqmzuxzlywwzvy~|{rpx~zv~}uouuuvyvwvv}vy}hsopvv~|}|olz{l|urqr}}}w}y|wt~~w~vzrtnvv{rpsz{zyx{tm}uw}w{}~}~}r}xwrppnzzzzsuwszr}u~st{txt~{zz|vzv}}|x{}xw|v{mt}yyu{wxxr|q{h~v~qp|zxyuyx{xy}{spt~rmvx|zwpwwx|{{u}xrsyuw|w{}usyryx|wzw}zrztxsz}rtyyzvy|s}{}y|v}|wnurxq|rl{}}{tvp~w|zyvswsz{v|stnruz|zsx~ttdz}y}{~xxsq{x{~l}q|z|pym}~}xe|q}mxr||umwusxuxt|u}tqgstrsu{zwv~j|vqpvumsyytut~{mwkovzvxxf}sq|w}x}juw}{sqqs|psutsozov~xqszntxjkswvyzz~s~uypq|t||y~jxy{qz{qrospzruvt|}v{~rwvm|pzuys`r~uy~nxzrurxmxsxjn_no}h{l~oqqpvzq}rn{pnvov}~u~rx}~s{\w{e|yyn~~dvzl{zr~vxwnvzuvkxtura}rsusxrruvsz~vus~~rq~rwstx}ktv{z{}}s}rpvqv~pwuz|wmr}{y|pxyirwxt}~|zorwy~wtq|}|nwrxu{rqmu|ul}rx|vy{svzprxz|~z|z}soyvuzu|s{zz{}{}x|quvvytzvwzyn|synv}}ni}pms~qpwvxfvt|iy{Wefzx|nxpo^oku{p}v~Xh]l]VZ`i_]{_^ch]^]f]\U]qZp\`Vd]c]]\Yt\]bp[]XZ[e\aV^^Xd^aed_Z]V^da]`Wh`U_\```[[eYWe`\i[_bYd^`Xbab]a]ab\e^b^`_`[`_ad\Zb`Y\^dd\``Y`]a\\^^d`a\_baa]^^^b_c]c[^Za^Z^[ba\\\`a]a[\Zgadaa[_Z\c__ah^daf\a\Z^jZdZe_Zgd[a^Z^ZWY]mO`\U]`dW^YZ^\_^]bc\_VZ`ZWf_a[]_]Ya`^`f]`d^YW\c[^ei^Zfcb[ZZ]]dZ``^d]Y_W`[__dc`[_^`lgS[`bc_[_[`_\[X_jYe[aYi`^^gbcZd\]ab`]XW`k`XhZ[^]V^dX_hf]bZ__\__YV^X[ZX^`c\Y\`U[a]V[abe^ZUYc^aaWb_][h^bVff[\fh`eWl`\a]_kYd[d]ZeXUb_Xb[b[i]_X`e]_^Z]]ddfVi`^[XejeD_YldaT`_de^^ba_f\[\`_i_ea_Zac^Vn]^^]^`aai[`][ceYad\\W]\\b[[XdZ]Ya\[cc`^`_^cc_`_cRc[[^_]^fa[c`_c_daaei\b]dsYe__c_[Q\`bYgYX]__dcb`]p`\]i_\^_g~X_\`d^p^Z\_a^eZc`\ekbcZhg^]\`b_bb\\ab`Yb`bf^cc_YZh_k_af_]b_bgaag\]aZbc[][_ba[fYa]_ZQ[]ae]`T]e]`WZ\e`c\aZ`aZ\^c[Za``^Z\`aa[`U]``ga_`^da]^b\ZU[gTYc]kadb]h_a^^ab__abZ_Xbb]b]`_aga]\^ZeZ`b]ac^b^T]W]\Uc]ZIab`_\ec_c^[c^Y_bd]U\cUb^c]`V^_[b`^g_]]c__Y]^l^^jdc_ba\adbZhabg_miZa_\cYYdiaf_]d`a__fX`^\ia_WR`Wc__`cab`ea__YW]iYTh\c]fX\aj\m\lc\b`ecc_Zi[``baXZ]`S_`h[[`fa\g`WU][Sb][YZ`a`ZZeZ_]d[^g[^_g_ge^YZi\`bpabYca^\d``g]caNf_bVb]dZ]g__Z\ad^Uci__^f`bQ^\`efWbZRcb\cSbb^`]Ye]_Z\cd]__b`bZZ_c\T[[c]_P_ZY_c`ZlYS^V_^ZX]^iRVe]YTc[Xr`dZ`\fac`a]XW`Y^\[]_ZW[_T^`a`fV]Y_``XYZa\ZXUglaY_uUFb]f`_dZMqZZef\YdFYkSZT][X_cab]^a]W_[NJU^\^_`ZY^hRW]_\Yauffe_XP__VaY]c_hc\[fV]Z`\Qa\XaabX[]\eegb_]c]Z_UYY`_]WnZ[V]Y^cZa`f\X\YW[Sad\^X`\[ba_`_X][dYoW`^b^^]Y_hfe[ZUa_`gWac^hR^]ad_`_Y\kU`YS___W_c]b\Z\b^`W]`a_XbXg^Xfg_Z_m^Z[_nZfdi[br]O`d_^`]Xb\][Y^[_X\Y\]X\^k[Y[^[gYib_^X`Zf`]l^`X`[\P[_g]W`ib[O`bW^c[e_`^\X`]\J[\^VW[h[[WfZl^Zb\YWY]U\aZ`akX[`^s`]aZ_b[[[T_Z]`^a`]fjX_b]gY[aZb`][_`bS]dfX`XfjYYXjXa\`\_]YaTZbVf][^fZ\`_Y_]d]^Vh^b\ieYZ_^`bi__Q_`^_Ycb_\Y^\ZQZ`s[d_cb]^\T[`g`VWW]dgX]]gd_e[[cfb\aa^dhf\]fce^f`\\]\]]_\b`fWd]ZbY^YZf[q\Z[cb][\Rb`WW`g[\Y`\U_bioQZ`e_b^gd`UaZh_a]Z_\b[UbZbb[f[c]e^Z\c`pYaXY_W^[[e\XR^bSa_`a`^Z]hZYf[fp[\^[vYY_^U_`\^cWd\a^_aW[V]z^\uida`]``c\aaY`]YZY\agmW_[bjZ[YZ]^R\^^^b[Xadd\f]_da`cU`kfTQ`dbQ]]]m``Qb[^diiVfU[j\Z_ce[_c`Y[]^V[`j^V``]b]`_^^e`R\`elbgcUW_a^`\_YXcg`eY][VefZ`VYieTY_V][`dc_W_`fWYahl[[_Q[\d`\UdbW]\`fX`^SY][e__Z^a[YW_ZWcZg\\W[_^\`cc^Y_aaYebggXZ[hd_Y`PgW]``]YaZe[j^``daY[N\abe[_dY\XX]Z_MbYf_^```cT^Yc[jYdZWXc]YVZ\Xa^ZaYSZ]gc`c\YaZm]W^Q]]ZiU^[e_Wx\[g^[b]V]X__W[R`_^Y_[]W\TY_dYen\aPg]LW\qK]WZab\P[^`a`iZ]NWVU]]^Zc]^ha``cc^f[a\]Z`b]`Y`W[a`b[g^]]\]^Ua^_aab`cUa`^]b_ZY^U``ed^b\ha`_[]T^g[[f[aa_b`^\\g]]aTf\`X`i^`]b]_dZea`^ab_il_g[dYZ]^fagac[[^gbaeV_a`bZhhnc[da]`^]f]a`_a]acX__h]]\ae`a^`Yf^b\\\]^^]akaZYb]Xd\^cde^c`_c_c_`Z\acTm\VZ]b_[__Yp^^]`aa\]Zb][gZ[]`fb_]`YU\ZV`d^]W[\m]a]Y[dZ_Xn\b`h[m`]Q]V^_b`_[^]cg^^]Rb`g\]_dt]XimWX^\]\a`]a\a^ZXh\_XbV[ak_]_aXibh\^c^X`bX__j\bYUdUkX]fgca`b`R_\f[d_cX[`d^_`\^c_hY\\V[]\e_`w]VoYX[aV_`[YU_]LW_a`Yg[b\l^\Ye^]XX[]\\ace[[abg\e_`Ybd\^_XbZ\e[o`i`UV[[\`\`T^XgbT^^w[WgTYbbZ`bY]_Zk\fgTVLc^aZ_c^`]U]\^mVW_V[V_eedVTBgnLQ^d^RZ^^b^V_\bUg\XVma_bW\g]VbZW`ck]X_eQNZdabZ^WjdYT^`SfbVY^`T[dc_b^Yb]fPi[^ZgRV`Z_X[^Wb`bdbXb_Zd_^\cZ]e[]\bbWcbpVZfbZ]dfmTLe]bZdb[^aa`_abeb]c[^aa^e_ae[]X`Y_^`kab]XY`_^W^`k__Y^c\_g]X]gXa_g_]`VeZedkVdaj[_Z[]`heaa^ZWbbZcW[_eVXT`]Y^[cddY]]^oYX\Z^`jab___[Yd^[]f[^Y]_^a\^xbf`^a^W^[\Tfhd]o]b^ejZi^f^`X]U\]g^g`GX^\b[^Hbb]bg^]`[Y_Xgfc]ea[W]^HWTY]\YVb]a]b]_i^^[]Vd]_`_^XZ\^]_baWlaef\_]YhP^ebTXc[debVb[`bRm_[_Ukb\Yb_[b]uZYWU^XYZW`]_[e\XP_bV^ee]dl`XW\df_^fa`WdUebcd\]V`^fnVb`bT_^k]TYZhKY]ahZacf\[_]^a]d_[ecZ\i`\__]]g`\`a^caWZdY[m]WZZbdP[\Slb]g[cfY[`Ybgol^b\^AbX_ahcd^ZWR\]d^\R_Ze]\i]^bdY`_^`W`gbQa`bUafbd_]\aafa_Z^Xc`YWTecd]^l^aOa_baTaZ_\Xha]`b[]\^b[d`Zd`Z_`Z_]a]_]d^\[[[`^\Yeb^[`k[^\_[_\ab]^aY^[aY]jacc_Q`]`ed_Xd``b`^]fZcY[e_\[\g\`[``c[]]fZ\bc`a]\]`h]c_`\\[a^^X[\d_`Y[XbY_Zc^``e[a]X^f\Z`\f_g[X^\`]`_Z^a^]^U^c_W]]dc^bmd]Y\Z\^dX\]aea^\\`]\`]Y]Ub][Z[]bZc_XiY\[efW`_Ycc`X_b[dZcabae]_bXUYUVdZTd^`eec_T__^`n^Y\Z`b_``Z[WdZ\YYf`YVlb]Bc[`Yf^Zca`\_YW`]^]_^fcbVWZZWa]^Y][_b]bbbS^dc__Z[\WdWX[[_^dkc^Yh_cZZcb]eZ`d\UNdb^`[b_bR_h`^_gVZUcc^\Z_`i]`g[Z]cn\``XYb^[[`[_b]b`]^ag[^\inZ`WZ`^Zbeda^XT[raS^]X]ff[Z[m_V_]_b_a_d_WZ^aXflU\f^T\f\_Mbral^Y^o^]S`\XYhbl[l[e`Y\^]]f_d_ciedO]]Zg[Xdh_[`gP^O`bc^_Zd[Y[adc\WWXa^cZc_f\\`OabX`]eTZ]]a\d`d]ZbZU`]]cahYb]_bY_f[WXWm]^g^b_b`m_]Yf_ecZ]__]_\_]Xd^`[dbe_c`Uga]\b^_a[`a^Z[^^]d_^W]``\Z^n`Yk^\^]W[[`Y\Ze]_c`cc_b_`RuXf]a`c[WdXbh^`eW_bfW__e_ZXe_^\jfaWga[]afebdabb_Z\Y[c]cW`a\^Xec`\`fl^]ZZ^b[^aZbYm\^XYiN`a|\\aY\bX[^Zc^Z_\aV^iV\^aafhgb^T[`_`^_d_fhcad\R`a\]_^[^aY^ReObe_f]V[eaYh][^ceaZb]aa_ac][ZZd\>cZYZd\]eeb\]^]lpY]e[`_Y^XVeSiZ\ZoVVbb_][a\^aYac_TUZ[i[Y[]a\^da^ZXa]\iZ^jZX_d^b^idbfXbZ`^``]daOZZ^^`d^_cZ`^c^h^`[`bY]Yb``^aZU]c]_[fa`d^_\c[c[__[\^f[a^b\c[Z\^e_fa__\\Zb`]`c\[\V]_\a^^_]cg[Ybdbbc^[bYX[Wabcg\`c^a_[^[_[a]^\V\]bcac[a]^`ab_``_Z\aeag[T_^^e`][__^e]]\Z[`c\^`d[a\`]ac]\_b[]VeV_^Z`Zac^g\b_]^Y]ZWXXb\Ub__Tg]_]Ybga``Z]bYbb_``\c`fUXXcYc\\SabTbZG^\M_VZYd^nga_Yb_c]c[_`X]^Y^`ZUb^[^aa_h^c\c^]]``a]ZX\ibb]^^^^WoY_cdfZgjcZ[kl`h\j\^bV]e[bW`ca`b^`Zac`\^W^\j_`]S]aYh`dUc^b`\[]cfWTZbVji]^ac`XYbeac``ZeX\]]aZ]XdVe[df_`_`d^Yc`^^f[\^\]^]_ce\b_[d[ZeZd`oid\`jd]aeccfb^W_]\]ca_g]W]W``_`_Wb`^b[_[i[cbah^aa[^]]_^f_ea]\_beZ^jb^\Xcj`faZ`[^_f]a^ak\]_ad^a]dk__e\a[_be^k\k^\T^_``Wa_`\\b`d^ge]a`^YY[]_l]c_\\YgNb`mY]a\hZ[`a_c[VVZ`[scXWdeYcb[_X[^e^WgVZ\ddf\]d]c]___[SSTd_fW^ab^Xfda^d^^[fZWecWWZ\`\^eY]Uad\[h^[`O]dc]^Wc_dm]`WZ__Z\__]V_`k\[dmW]_a^]^e\idd_SeYhY[^jW`]c^[X_]^ee[[e^`eQbYc^W`d`[^Z_\bg`dbYYVa`]\]W][[_^U[\^\``_YaaY`_Y^Z[dbZd\`f^[h_[\V___Z_[^[]_^^c]`a__c`ab^_\``Zcb[Yc]^^`\[cY[^_[\`^^`aWaZ_b`_^_f`^e^]a_[`ca]]\ea`f[Waa^[\ac[^d^Z`_\\`^`bY[W^_]^X[_\b`^aa[\^_b[]]_WZaX[[\_aZT[dUYa\b_WZSX`_a[_X_]Z][[Y\Z`dac_]]`c\^^hbVacX`gcf[Z_\\f`[ZWZ\ZYmd]`WbeWV[\_aa\^b_[_b^km__V_Z\X\[]dZT_c_dZ`\]bfZaZ`XYha_V`S[_[hYd]f^`cYf\__X]U]^]]Z[[_n`][^cYj^\j\RdUa[WkbVh`j[b^Y]V^_Xa[[`bfY\^Zb[[X]f[^\ZU[aqYYaX_^[^bY[Wda`afb\^nc]YgX_bX]^bd^_k\o^^[cl[ac`w\d^b\Y]VZgu[`d\p[_`ef`ZacSn^hZXYXa`cieaaeZVa\Y`g_a]\_dk\_[XQf^eWbYO`Xb__[\ag\k`eejVIa]Y`]ch\^[a_\gZ__lWld_VY_[lY[\]n^bb\]Sbd\d`]WMh\WY^f[Zlaa^b^cY_]aYZ`c_S\_UZb]Zc_^Y^XYZbcYUbe]WV\bf\aVcd`lVZfh``c^_Y_`ZXc]]kca\hg\_e\g\\\bVebP[`_^jbaZ`ZbW_a_a_dcZZ]a_l]]Z^\dYpa`e___b^^cWadbeY[Z[ZZSdW[U_TS^e\^[YYZccbWZfar^XYaZUb^Xbk_V]bT`\[Xa]Z]`]ZZbYd_\a[^]^^^^[]j\_\`h]^`fdd[e\Ye]V\ba`ZZ`^ab\bcX_jh]_b`\Ych\_a^ZaaWddaT`ac\a^Vcc`]bfacdhb]__aUZ`_^a]_`_]]]a^[[]_]ae]gajXY]\`]]Yh^a_jb`eaYb]X[U_^_Zi_\W]^ZWf[d]a^a\[Y[^Wab\d]V^]c`^_[\^[aT_ec^\\g]_Y^\b_Yg_W^W[bg[cb_Yacf_^a]Y^YXV\]a^Y^]Z`\\`[YOc]b\[a[X^\^_acj[c\XZ`^bc\\d`^c_Z]aYaWZ`\][c\X[]R`Z\cZ`]_Z]^]Uf`ca[eTechYVg[__ZeaY^\b[_adQa]Y_]e_`WcZd^XVY]T\c[ZWlb]KcYV_WZc]gUWnYZm]]_`ba]Y]be_]a\a]\`b_X^a[e^eW[kd[`YXe\YdbbY[adcd_d_`^]eb]gY\bZ\^^Y^\\X\a^_`_[fad`^\`be^_Z_a]bea_d]d][iZ_\fg]f`k^]]``kge\`[bca\]ebd\WYbba_c\Yf]]_g[Y^ib^`_[h^`b_\dc`[d[Vab`afZfYahca_Y[d[\^hc_^f[c^_]`^g][g^X]`Z]_\^\]^a\_]\Z^U^f_\adc[e`[cd[`\cba]^ZeaXiZd[^\Z]c_gb`_\]_`_[h[]bbYg\_\_c`bcj`bU`a[_^acfd]Z]b^f\_[`Z`a]aaZa^c]_X[R]``V\kjdX[][gd`\_d_f[N[_b[^_[Y`]`Z]_c^W\_^V`\d]aZ^[\]aW\ebg__\][\]fgazi\^_m~^ff\__]V]gab^YWgZUc`[Xha]e`C`[g\ZR\[[Xd[`[aV]R]\@VfRbSJe_a][`Z\Xe`M^\Y`XXVh`B[^]]`\_p]e__R^Y`dw]^[e^ZUY_8fXj]ahaa^d|SNe]eXZd[]]`Vj[cV[IbW\`_Zb_o]f][cV`U[^iddd_`fgSY]]`LX]YjY[cZYbTbc\[Z^__]_`W^[_]Z]^`]``d]c]ba\]]c\]__^_Va_]]\]a]^]\a]g_`ab`Zg\\^^da`a`^_`UcX^\ck\Z_eY^i``[__\be\]cfa[cb^Yaca`\ca`_]bcaa^[cW^_]`_`X_[]p`_][[d`\\[`cd]_XQ]\^t_^`^Oce_]h_bbd`b`Z[]bj]]_bd_b\a^c__e`^_c\YagZ[ai\[Y__g[J\^X:[^ShX]XX\]bb]ZdWG`\^\\Ua^f\`e]e`b?aV`XU_`]b]\cSY\^NbZcda^a`_a_XHa\_a^7]\[`[JOOiUVc]^[]Z_a^]^fh\bZ_d`b\`UOVdcV\[][_Y`[]mZ`Xb`Qga[eWb_OMdXX\e^^\]fVYa]`OVTU]Zb``Z^_Zg`_[e\\a^db\ea_ZcX]\e^]ba^^c]abb]kZ`\_\`Y\i[^V^^][[fZW^_[aZ\_a^_[_z_c^]Ra]``[^b_[XZ`_\eba\]ab[^YS_X\aaeYc^Wb_eZZQYaa__\^h]d``]`]ad^YYT]b\[b^U[_g^e^\Z_f]dZce[[Z]^__\^X_[_]\]]`abd__UbawX\\`W\a^aae^^WZXge][]^he_c_c]``]daV`^Wj\eZhX[aaa\Z_`^`Y^cW^`\dea]_c`Y\VXUc\b]a\eR`Zd[`W[ee]^]_[\\^e`^Zd\`bb[^Wj^]b]\^_bUXb]]^c]cZW\\]gX_^aloqfX^aaT^XYaYg\]X\\ea[bY^cYb`b[\X_`Mfc^Tj^][][VafT`keV_]`UXd_d^b]iZ[eW[V``]_\\Z]]e[bV[YfZ`]^aa^g[__g^WZ[`]aY_\^Wcbl`a`Z[_|_\^\e]oWbjZWRYaY]Z\bYV\]cq]a]|hZgY\a[_[_[XdaW_]d`b_`]`W[dacZ[^[^_Ug_^[^_`_b[XY[iRb`a_X`]cac\_]hc]\`[sZcdbR_`dY^\_`ba\^XWcYe]_Z]^]aY[]f\\`Z`X`g^_`[[Y[ZZ[baT\jZ[V_S\XX\ab\^\Y_a^_Xb\]W[ZV]V]a[g\Z]_\aZa_`ZXXa[ZY]X^[Y[ZYq[`X[`YZ\[c]W^c\bd\_`ic\aZ^Z``_hY__]\_Zb][]Wd\_Z]`S^bWQ]Z\`]d_Z]]Y[V\]`\U^\f[`\X^[VY_Y[b[[aY\V[bb\__W_Zd`_]^R_\Z]VYja_h\]`[Y[a_a[Wej]UU^XWTaYn[Whe^]^dWeZal\hTb_UaZakjZ_V[cYY`kK`n]eegd[hWS]`X[c^V__^fYcc[b_aZ^_`eV\l]Z_ebMf]`^`hW]c`]bX[hcd__b]YQdc`k^WdbYUbW[]Xadl^]LYX]ebZbY`]\kd^_YT`daT^`YY`aT\i_^p`^^_UZPWZ^Y\\WTZVYaf[_dZWd^^ced^`_^c_RVcY`b_b^\]Vm^n[d`dabZd_Y^baZWWZ_fX\VaX\_bg_]_`X^eeO\c\ae^\_]^c^a^\\Xe^Z_Uec]VYRZd\da\ba_bMh][`_X`c]^ga[\^d\c_\`Y^^Xf\aa][d\]b[cZb^[eXa^]\^Y`V_^\aZ`bf[`[d]__`ZWiV[\^]]bcf^Zc]afd]]_Zd_d^Z\a\`acY`X`a``g_a`]e]^hc`[f^[ac``]_d`hV^[b_`d^]d^_`ZcZfZ]^`\[^bUee]`]`h`_`c`]aXbd^]_ff_^b\__^]_X]__db^`[]SZ\^\ba]g[bY]\]]d^]^^^ca]b^]X]uXa]Zc^af`a]cb\]^^_`^\_Y^^]\^_^^^`_Z\ZXbZ`SZO]ZZZWZUeWdVeZdSj`r`c^dec]cVbWa^Y`X_T]zg^\ai^WqcZ[P]ar\Ye^a^eSZaZ^UaVm\Phgkc]]hf[[ab]k[[V]VM_Xnc~\\[eFZUWVZdX\T\fY^Y[Zf^]]e]m\Y_\a^cfXYp^b]b`TX_U]m]~aYTO][`cebmSYcZ]Vc[|_R[^V]c]hVda_[Z`T\UfVaXYc\^]\X\_`Z]\]\V]^^]mT_]ca]^\\ag[b\Y`Z_]]]^f][k_^^VdlZljbn`a^Xa]]PSbZ`Ug]_\[[[\d]`a_[^q]Y\^_c]^[\dZ_S[][]a]^\`Q\a^hYZf`eca]f\[[Y]]b^```\`]\fZSZfZ_^caa]`g]b[_U\aYr]hWdd[WXa\_]W^[VVid]\_b_```Z`a]`]ad^`e`]c`_`_[a_]bZYba_g^\Za^Z_]Y]V\^^f[[cZb]Xacfdjb^]`[`a]aXe\acaZ^]]cc^ecVZ_e_\\`W^e^^T`XY\c^_X`b]]^_]]_cZf[bZZj^\Y_b]Yg``Xa_cZ[c^f_k`X[dhV_Zb`[Y\`^_[c]_Zad^Yd^]^`ZY[\\[]Xf^ffYYZ`__^bVe^`c\fe`eV`^e[aeYiaX[cde^`]\c`\bb`ce\d[^ab^_hf_a^fcYZV`Yd]i]bXYe]]c`\Ybc]_ZY]\b^_a\aV_Yec\_`f]ZeZfd^ic`Z[_W`Yg`aVd^\`[b_c]Zc[[``bba\\\Y\mg[Xkb^_gTZYbg^[]^`af\Za`bZ[YY\_`gd`g`YcU`]b_`]^b^bb^aXZ][cZ^Y``Xfi]c\bafXXacaeYc\ZZT[VWXc__]S^a^ZYbieNaTadoaTZer\Yaat[eeagcdW^^^acabZY\hYc_dZKUVgX^_Yf[]\_VchX^Pdc^XWa][`_`[V]\R[dk][`_e`a`Yah[[^eiUad^^MbY\i^af\deX_\c^Z[_Yh[e[i]b]]bX]abY^RV`[\`^f\c\^_XY`cYd[^X`[c\e^aa^_`^e[^U]e]YV\]_bdaZ__g_^\_c\b\eZ]\b_^[_aYHc]a^`aa^[Z``S^cWVfZd[__ekaW[\^d__c_e]ab`\diZ[c]oaX`YZb[bb[]``_^fZa][X_bYd`\\[a_X]Y]o_Y_hca]Wa`e]Xc_\`_b\`[_Yb]j\l]\Xb]Z\cZ_\Y`[^`Tbc\``_lT\^aaf_a\\d^e_Zib\SY`^c]^Zadh\a^_VaXcY`]`]d_WeSZTdccVdS]YZXm]UWdZc`][hg^\U_YeXZWi^dUW_Yccbe[]_]ac6]c\eQ_YShOYe\`]]^WyWecdd`eY]bT`g_VLV]\Tor_Z_\]V`j`VVQZZ__YV[YZe]``_W^XcbMWd\`Sam\X\_`ZV\[iXa]_]_Z]f[\_ciTZ\Z[aRb`Yal\ah\d]`]Ye\Z``\da\[hR^faabaFWV^bjXb^_fj][\oZ_]SV\YU`[][Vbi[d]^]^[ZZd]kZ_dZ^S_Va[][]^Z\iYZj]Vb`k\ckcbZm_[Y^[c`g_Wg\l_Le^^[Y\e]WjWZ]\Vc\[^cR`]kb[DecW[m^\_SgXc[cghY`Zb`U\a^cbXW`_bZc\__^UXYa^[^]_fi__TaZ_^^Y\b[b\af\eYdc]g[q_^ZcY]^_ad``WeXdYa^cZ^^[kdfX`Xm]cZ]ca]_a`WmcXa^T^ma^xbg]i]YTcd`XZ^^X]kib`^d__b`b`didZY]`f\aUX_s_bX_afX\\lYZZ`[`_\[[cWcXaa]_p^^Y_^a]\a_b``ad]]]]\a_XZZ[^^]_\a_b`]bb`__e]_a`^aTb\_]]`d^dX`_b]da\a\cZVba^_^^d]bb^_]Y^`]cc^]db]g[`]YY`cd`]]cbcb^_aa`cqc_\]``[`ab_`^_`dadYdc_Y]fa^a_`bdb]Ya]`Y\]ZZbb_a`\`Yta\\e]^Xeb`_]Wcera_[`^Z\Y^f]][Z^]YWac^fb^^\`a]\_Z`^[[Yc]`\]]__YbgZ]dY]baZa^WYZX]sb_aaYc[e\aa^dXee_b`ca\g_d^h]`]]e^]W]c^ba^Wa]`bf\a^_d_bV\_`\`baW^`Xk[]]\^^^_`X_YdT^b\[a_`\c`]]aY^Y[f\\[jb[ZV^]\`^[b\aa]`baQ]]`aXgfY\Xa`\dab]d^v_b]_ZVW_]]aT]^\]aZi_^]V_[]_Yf[Sfdjcf[X[]W]W`X_bda\_W_hcZf^_X[lWUb[__[X]__\W`[_`^_`cbaaX\^][^]v[_^^Zc_Xa_gYXbZKa[[Ybc__ibYa\ac_Z_j[_\YVb]a_^Z`aeedb[[bne^ZZ_bbecVS^Z[X_bgaXf``Xad]^]X``\_^dbh[ca\^_aWY]_pbdY_mYYYYg]]``VYR[[\\^]XrjXYeY_``_da]XYcbfe[djPXb]_^aSRWQaOU]]abZ^f^k^`[]I\cM_\YZZ_`]c_Y][^da[Sh`faadpeX[\_ZfYbVg]]e_S`d]\hj]ZYid[`]bXa]_Yhb_YZ_c[ZW[\cY`Tb]aUdbaZWTbXdYWEb]W]c]Ze`kU^XhjhaYZ\TVie\obQocc_j_]a[bkY]dW]YhV`WW_]X^QbYabQqSd`Y]Wc^`[[Oa\[cOZTa]aY^Zk]^a^af_\`YieZ[a[U]Hd`QSg][gZe[bsZ`YZBZXZkXXaY\i[]X`RTclTLcbT`X^_Vb[^Z^]hTZW[`_fh_Rg[ePd_TUY_bYVcW[X_b^aYW[VZ[QSV`Y\ecbb[dZZPZUT^]UN\abTa]aZfaZZf]V]X_x]j^c\Y\hU_^a[UaYc[_X\aimX]T`YgVZf_df_^]ZbcTn_W]Rcdi`a]bs[Za[Rfa\[_UT^\g\rbXXZP^W`[pU]YabVd\g\][ak[ZafW^Wbdd[VhKciYXYcgY`lVY`Zyb]WV_`XWa_i[[b`W[ibt^[\\^dcb_cWdW^\eY^\]U\mWaQY[beWZXfhW]^[cfQ_^f\`ca_`\^bVacg_Z[e_bRU[Zidc[_b\_\U^da]Vnde]aVcXB]qk]\Wdabk\eb^_U_XabWa_TfZhY]c[]^S[[a[_e]`Z[^\ab\^laUaZO[c]_fg[eVkhXWf]`aXh_]i\bfZXSYbSW\`][`aWWTf_e[d^aTe^^coiiV^V`\\_fl[`Xdd`dZY[`\e_c\_\bT^``bb`baebY_]b_^c`iY[[Z^kgc]hc]d[^IXnYZ]`e`WX\f[SdZ[_YdV`Zba\`\^e_hdcX]ec[ZgWZga]`\_bb[^ZY_fU]]h\bidX^^kZ`da_Y``d][_`aZ_^[_l][bjdaV``bbZc`[^[[^aZbab][ZYbUVTaa\\[a\YX^[[\Z^\YV^_]a[cUef^b[_^__aSaZY[o[S_c]X`a^X]a\YL[`cd[[X__e_^\]Ya]jZo_`]\X[_`aZ\_[\af]]ed\f]_gZ[V^^ZZVa`a`XaZ_]X_Ua[Ya[Y]Z]^][_[XYea]_\ZWTe^XW[iU\beb\kWUfaX`Zb\W`XY[[][\_`]X`]\d`b`Y^W\a]_b\_Ze`^V]\\Tajqe_\\tVl^fg`\Z\]M]^bfdd^pj^ehnab`_qdVd^N^SjcZjVZ`^kZhg`haaFecY`aY`k_m[abX_b^\`]Y]YfZi\]^_]B]eaUhaY`dk\Yg\bmYef_lZehfu^Vd[hieI`caZb\ce^egp_O_dq___Y`[_Wn[]b_Z]V^d]]_UdpZF\Vf[YX]ajkbe[_hLc]_Zeb]Za`_mWV[]c^]Yajj[^]]Y^[`[YdjY`[__cXdi`_[[Zfcf]R[`f]SS_\R[V`^^[[]X^[[]`c\cX`gQ`de^aahc`\ad[hSg\[Ub_b^m\eWdWX_aT\af`a\_\fYec^O]bcc[cW[caVXcd_Wde_\pddVZ^___`^a_aXYaW\Y__Vc``be\\U^ehj^Zf^Uba\d_U][aa^^``XZicbb[e^[^d][__]bV\_Y``^b^b]`ad`]kgac``_X_`\\ae[]^\dZ]^`\Z^fb^]h^ddiZZb\ZdX]``a^`[_f^\Q`hj\X\VbSa_c\he]W`Z\]Z\`eiP[ad[]b]ac^adWq]Web[a^^_]ZbYgh^]R^a]_dbY\Z\W^c\`cd\``YZ^`beZ^_dY\`bdf^XZf^l_W^d[_YoY`abe`_[]_aW^MZ]`a[o`[_]_`dZ^ejb`[`_adh^`_g`\cd]f_^a_X\_cd]`ba]]^gc]`aZi`e_`dWba_f]^fe[Z_^\d`_Yaeaa`cZ^b\Z_bUa_a^`c_a__`^`^Z^[b][]dfX]V_Zbfbg\][gb]`[`_\_[_\e\Z[a_U[ec[\r]e``^`]^]^fZUl`ad_^\`d`ZYe`a_U^`an^`Wc[]m_[k^^YdhaZ]``kWaVVb^gb^Yd][f^c][ac``f__[^_[aTU\W]\`caYie`f_a^b`YSY_^[oaocaadXVZ`Xced`^_dgbMbZ\[^Zae\Z_\U_KWaaY[MVbTh[\bbb^X]Zea_b[maS``^^`daa_^fnZ^_eXjd\`Z^Y]Q[Y]Z[\\[c]Z_eaUfa[WUb]]Wc`YUiX]`ZcYf]W\Y]ZVbVbal\Y`WXfbSY]_Z_KTZVda[`Wag_]^Y[]_X`\_\]fX[a[^Y]_X^]`a\_]ZaZ_YbbX[^Y_W\]db]XgXb[i[_ZV\cY^[_W^g][_\`^X[\be^_[dZhX\h`YfZ``_UY_]cYLa]]^gb[^]]bfbYgdb__a_V^\ba]`^`Z][Ua^Z\fZc`d^_[\^^]Y]b]Y_`]c]am^^\\\`i_\\Z^]_d\SaW^`a[^`^_\XX\Yjf_]``_h_\`XbU__]`^Z_Z^Va_gaab^ec_`ac^]V\_^_WV]`_XZ^[^d]`c`[[VaY\_[YWXh\^[akX\\c^^`bc[]`^aXba_W]cv\]a^]Zc\]Z\^]`^Zde^UU\]\\^`ZY`[d_e`c]``Vbc_\[_\`[^]]WY\ZW[g^]a]e_Yf`_Tje\bi_ZUc`kY]^g[_bbbb_c`]PW_i[WX]d\\\UaTjYV`Yn^_TagU\je^e]]i[UWWf]YZSV^g[bW^`[b]ed\a_RWZ[]]_aSS_][alYYXWbW]\R\^cYc]bU\eX_`\YbmadeZ[fX][a^b]g[d_^[bdaVZba]_Y_^]da[`_gb^XZc`][]_Yb]b_\^d_b[_^^d\^^^_[W\]`[]]R_dad`[[a`Zb^Z\f_jb^]Xfb^h^Vd^bWf]_`_^`hfa[DX[^deba\gXZZg[`b``uSddh]`a]`_\dl_Y`^^^Zh\\Zda___\Z\]^c\Y]T^]c]^g]`]\[YYK\`Y^ach_Y[]``c[`a[`hc\__[]i_a^\Yd_^^cY_d_a`\ac]`]]^bb`Y\^`cf_]d]be`a\`?bb]`c`a_^hc`ach\```Ze]^eacd^agcc]`]\aa^cb`^d[\cY`\b^fZ_d_aca`d_[a_cba`h^\ka`W^Ub^c]YhagbYe[aa`\_]XeX___]]^_`Za`]lbcSaad_e_`f[`YbYg^_fZl^WR\]hbaXV[UOe\\[]bi_ggS^Y^T`RV[bY_a]Y^kNcTfY`ovcg^Zd_]UgcW_U^_]Z]ifZW]`\XcrRUc_]Zicr]0bUp`U\[\[\i`Z]`XRc`a]^T__Xc`X`OYWZo[pVY:[eWP[dgYVV]Y\fdelac]]Ycabi``chXc`dTZ^WTY_XbksXb\^_ha\_V`afgSr`Y^\`cc^_U\_^UbZ[]YYZ`kU8]WYTX^PX^c^[Y\`_beVVa[Z^]baaW`]T^\mb^X`l`e[\_U\aWXKVfc^f`dad`d^gZ`[YcZY^\`bh[MVUhTY[`dVL_[c[W\ccZ`]Wd^R\U[MbV[UX_[X[]bWYVe\aZl[ZWaSZXUNY[T__f]][V\ZUX^w^^`eWaf\[^d]]g^_`cc\][`]`_]ea_]Z\jd\]bU_X]PYbabV^_db_Yi\rY[ZX`bge\]dYb`Vf]XZ^g`^Va[a\Xd\d]]Z`_e]][ba]c`e\Ze[^aXd_aZ]m`Q^VNZl^_]f^c`d_b_fb[\e^]Zbla`^^U]][b[`ZcSb]`\Ze]d]Y\]^^\Zdd\[\W^Xa_[XX`U_Yb^[c^Z^Zb[_c]^X]Y\YafZ\^`\]]YV^f_[c]_[[^_]a\cT]]bb_^b^Yd`b^__cfZZ_Z^^c`a^aaW[_W`dV[d^\cc`V\X`Ych`XbhZ]XX_fYa]`Y_b\daT^[\^h_h^XcYg^\]]S^fYgYdebdYkegW\`^a[`ZY]ZaWc\V\R]VXai`g^_h^a[dZ^\ZVe\c]dk^SZ_U]a`d]\Y^[[Ygb\[bXa\^b\e`c^d`Zd`^W^dY]Xb[d]\e^\a^ac[S`]fYUbhaX\ea`bVbY]\QlbW[f\YaYZ`dX^Z\V`]__[^haac_]]cd_ahc[Xc\X^__d[b`cZiYY]c]hWb[`YYbZVd[f\[TbkQW_aa\a]]Y[W_W\o\`eVf]fb[Yd\]a_`\g_`^Y`XW\cc]a^^Z\Xa_XWc_Y[a_^_e\Z[[Z[l\TcQeW^Vc\[\_ce]Y^d_ad^^b_^\\XVb`]bW]Y^bc[SS[^TfW`]TI^WXZZZ[bSTS^\`d_X_U`]\Wd\i_^c^\Pe_[g[Z][Wa]YV^[e[^fg[R``^Yafb]Sn``]YV__a^ejZUWbQd`]jUbY\`[V]^McV]V^VSZ_W[[aP__e]_i^\`]^f^_eae]]b\Oaa\aR`gUX^_Z^]M\k^Vd[cb^a_\Ykm^\b\dH^S`dZ`YdW_]aY_f\YOdb`[ba`jNc]afg\VmbdeT^ff\hcfs^UfbVaZV[\[\ZR]echX`W[VZ^[]`Kf\]ig`d\]\m[O_Y`]o\Yc__d`NiXi[g^\cY]k_]bZ]^_U\d[a`q`aa_\Xoa_[Z]Ybb^b_^_db\a[ab[c`\a_bZa]X\agZa`Z^`T^_Y[][^dhdXf^^^ea`_Z^[a\af^g[Sc^^W]^TZd`d[bd_^e``_c__eY\d__Sab^_Zade`[bZb^hb\\_]f_d_g^`\^e^^]eUi_^f`aV`aUf[k`_gi]_^cbcb]b\\[^]W^[]SZ]`cfa]`\_\`V^]adaed`XXZ[c`ZZ\acZbX[b[]_a`\eVhY^^_YRjW]ba\Zci\Z`_gU]_Y`a_[i^W_]XV_[b`X\]eajYX^]^V_[Z`U^XYV\Y[aX`]_bQ\Y]d_[^]aU[^`^[aZ\Wc]\Z\[T[_^X^WZVUa_RYU\[`_W[_fVQ^a]a\__`\[f\\ZZ`TZaXg[]QR^aV[_^X^`[W]VaZZa[fa_`W\\`Y[]bb^_\_i^\_b^h^`]_ace\^obecZ[W[\Y^c^`Z^[\\\b`abedb^eb^^aT_ZbaXcX][]X^bZ^]^XYf\^]_`[__g\g\^Ya`Z`i^`[`[ab]]ega_Zf[_]ZZ`^`^aebeb`^[b^`][^cXca`e`af[^``^\Xbb^Zob[[_b^hbZ\ca_[^\a[][aWd^Xh]`d^^[\\\]\]Z`Tf\b_\Va^_^g`_^`c_e]^^ZY]\\^_\b`aZ[_Vak^^[^ef`[ad__][i_^`gUbX[g\`^_U_ac^\c\_a```ga_e\]_\d]YdgY[^b^`_^`\Z\baXdZ`[`^afl[_\]]`]^a_ba`bkY]c`^Y`a^b_Z]]\ea_\`__^e]^__b][^_^]g]^_^__[]^d^^``ef^_X][^[[_`\beddV[cY_Y_ZS[]\^Y_\WeL_eUWd^aW_`fX\Y``Y^afX\ReYYbaag\b^_b_X[SZ_b[f[a`UZ]]fc`]^ZbbSic`be`TgXT`aj^^^Zf\^XZZaiV\\_f^]YYe^`T[[YY^`i[[^g_ZZ_X\kac_`]Ya[a`]bWKk^`Z[aZ__^`W_YaU_aQ_\\aaT`Wbdc_V_`i^\^a[We[_d^_fX^`d\Z^h\`__f[l]a^c^[_d`]a_\[\]^Z^[`\ab\bZda_ZYfbb]bX_`][]^\[\^_ehaa]Xd\]`[a^_Zadb]\^^[i^^_`bd_[c[`_\\\X\Za\]^]XYada_d\^i_\X_\d^Ydcca_dX[^]`^^^baZ_^a]^\c`]Yaa_Ydc]]]\]_\```__^ci]Va\a^_\^b^Z_m[[jfh]W^aTdaWgd]YblX^Va]q_\aZY^[]YWc___XYY]_ZZkf[bRgdkXPh`S[U[ZYU]cb]fUYTXbbNU^_UV]ad[R`Yg``^XZ\dX^TRTV_Z[fYZZ\VfRpS\e[TOa_X]ZdOiaZ]Yb\ZW\U]cWb[bp[^aS`[ag`V\e[]^ae^fU\a`XQb_^X_[UUc^[mT^cdXc[]]WZeZZU^f`a\bY_X`Z^`\^\WPZ\]V[[XX[^ZT]i[Zc__][X[\[[`^[]Uf^^][]P_`]Y]aWXa]Y_[Wf_[bUS[_XZpb_ZY\]aW]aa[[Z]U]`]X`b^c\ah^]Z^dab]_[\_^idY^a[^[[]a^YX`]_Y]`]`Z_[Z]`cOYY`]T\QY`^b\W\[NZZ]^]\badggY^XbX^aY]ba]b^[d`e_]_aa]\\aa^]_Yc^]^\[^cc`YZb[`^]][_b^`Vad`_``]^b[``_WY]^d^]^`[`]^[^]a^e_X`_]\f^d_Y]b_^^a[^`^]_`^[c]\`\^X^\[[_\_`^c`X`_fa__^b\]\`^Z[]]Z\d`^c[`e[^^Z]^b[[^_ZZ]]Xa`c\X^^^_ZX\_]]bb\[b_^Q[[aV`_d[V`^badd]e^ZX^Q[SZ`aW[Wbg\X^_`X]VXRY\[UXZOX_iR\Z_WZkZ\WSSWYf]WZbNde^bS_aZ^Z^_^aQccWf`Zab^M[^Q[aK]]]Y_\Z\]\VU[d]`Y]Z[^X^S[ai[ZRhZeVZY^[aZ[\W][[\\Zd]Y\]WOY\[Z^[XYW__UZa]OZY_XTV[]Wc[a^ZfXad^_\^_`b^^a_ZbaZ^[][[_aX\e^]`gW^b^e`f``c]`^Xb[e^bca\`^b^]`TcbY`^b`^e^Z__bcb`a]cc\_a[b``^gYb]^_]^YY\[\jh[ece^\b^b\\h^[]\_`aW]Y\`_]]Y]c]^^^]b]d]]_Z\Y]`Rg`_]\[W`\\^X^`aZ_ac]^a`b^[[][\Ze_]aZ[^X_YdbW[RcjbSZW^QXaW_ZiWd[ZY_Y``X[h_[`dZ\_Y]]d\VZ`V`TX`^ZhZbWbfT_Q^^e]bdcfZY\b_]d[^a`cYZHa]]c`[`ZceZYi_ZVSdQR]^aY\Za\fb__]\a\lha]a\YZaP\gea]bZ`ZZal\\VjaTRhZVk\a`\[TfU[_VdVX`bY_e[Za^YdZgYVb]i``Vaa[a]WUghY[aYb[[`Xee\`a_a^\^d`Uc^bf`[\\_Z_]XZaaZY^m_Wad\`YaUi^Va^^c`a_[]ia]^[X`_b_hg]`^ebb^aWaVaZ\d[Y^^a]Yij]]\a^k\g^``]X`\^a[`^^d\Ydg[`_]b`_`j[c]\`bbYcbf\f^^^_^_Y\^f`__aZ^c^]c_]_gc]ebde`_VXXcb^^cYha_\[[]V[WZ]\_`Y`Z_ZV_d^[`d^Z]aYf^\[e`[a`gU_Zeb`d\_\_\a]me]\fad]l_jWZ_bNb\a^^TZ`e`bkXbd^Q_\_`a```UbYMiXX\}WZZ`ab]pV^bj^c_[^_If^]\`]Y]cb[Z]fp^W]Z^TM\\f^fcaW]ga_bjY[f_fd^]]Wc_]\[[b{`c]XaZR\a^^`^ebc^_\\^fZ^b\a]c`a\\_^[f``^[`Z^]_\\XW^e[`aYc^`da`]_cb_\ag\]g`aZ\Xa][]dZ___^\cd]c[\`bc]^Z][b__h^``aW_]dd```c\ca_[pe_Xe^ea`\Y]T^Wbb``Zbc\d^V^]^\]_]]ad]a`_^U]^e\]`[`]^e[\^a]`[__Zc``\i^e]fba]ZYa]\[\XOa`Zdd]`^][_]c\\`icXc_]_b[fb^ed_XS_\__]YY`d`Wa]_d]_[a`b^_^]dXd][_c^WbY[c[`bY``Z`c]ZZYbV\]]`_b`\bcd_b^]Y]`\]_Z_^_Y^]aa`[`Ybg\V]_\a__f]a]Y\Y[S\[`b``Zg^abc^W]b``[bWc`aU^cWd_j_^XXScZa_\[\dZZ\_][`fd^big]fhY]ZcbZ_ed[Zcb_XS^`jcka^_^g]mcXZ\ae[ieWgdaV\\[\SdaddW_]ZZg_]dZg`ZYZd\_[ce^d]bajh\i]V\hZeifYjZg]a[e\h_c_]``__[_iicab]m___[bd`\bdiaa\cb\\idg\bY_\_f\e\fZadb]^]a_\[dg`^\a`]YY[d^kfb]^d`\`a]_a]Z^b_YY_aa]d_b_[^_d\abg[_[]_\^[^Z_[Yb]^`e]\[b\\a^`aYbc]_\]]_[b\][Z_]^\_`^`\`daXV^\`edX`acY_]^ZZ_]b`]^bZ^Y]Y_[`dX[]c\`^h`[]^[]`a]^^\c^\Zc]X[`]W\\a_SaZZ_b]VcZY[Y\`]`[_ee^\T\eX^g`\_^`]_][a`d]W[b_i_L[bafb^`Vj\^\]eYdR[f\][f_[Z^_b=^Xpd\`^\]_U`\`hZgbX\gc_\d^``g\Whf_mc[^ffgaU\bWmda^VV]XUmY[^_VW_acShgd_PSaNb[UxV]S^Yo`fa`]]c_c\q``cfjcTebTZY\c^_Z[Z^\Zeb[ZSeT^d^Plb\Z[afb[`WXYc\bZ\mTd_]f__db]XnWga_`eXY\Wc]]\X_[_hX_pZ`f\\cbe]^ba_iVX`g\T^lba^RgX^`VcYR\Z\XYk]\Zf\ZX]a_ZRb]_SZ[[[W`_c[j_^]\d]b`XYZ_[\deT^[]`\`m[Vd]^YcXVhb`Q^bdYeZ^__aY\ca]aebZ`eW_`\_]Xf_^g^^Ug^ZcUe_P]fahV^jW[bQ\XYb^_Y]pnTbS[a^jbW_U_;Z]WcX[p^fOUgieLRU_U`]aeMcnYdwaZ[dc]c]e\I[`Q`Wd\y]eb`^d`VcWe^a\[YZa[VaTh`R[XY]aXhcfV^gU^gm]UcoVU\d]ZV_g^`^UN[o_gXX*chk`^aXaWXa]_Z\Wd][`Yfe_je]Zd^aoSg`[][aas_NdyifL`iZ`\NX\Qm[VgZ^XY\_b[Xd\cftY^Zc[cgg\^^]^]aWfX`XZd^Y[_]Wc[hi[[Z^Y[\W]bYbVYTXQqYVR[WV^[gXXY`]a][i^_]dfWX[b\oWki^YZT^UXYbb``]`^e`]eWT\OZ^]aYXWaaZeTl^`Y\^_Z^hTN]UYYckU^WT^QaY_XX]b`\^cjYV[[[`[`bdf___\aeZVX[^^ZY\\`a]aa__c^]_]da`]`_U[[]``^^\[^^`TV_i^_`]^\^da`V_`__[]XX_Q\f[_^aVZ\^cfa^X]]]bc\][\SW^\_\\dVe^_^_[`^bbacb^Z^__][]`f\c^gk``^_]\a`[Y_g^YeY]^ba_XebXfd^]b]_c^_gc`aaY[b_`^`c]R]]`^b[Y_Ye_[Z]\]ca]\_Z^]ba_ab^bbYg\j`]`^h`aVa\]d][a]]`]^f\d_]a]`bY[cZbcig_^X^f`^blVh]kg]`\e`\eW^]eb`_\aa^Yoa[_bc^^j\bbbbccd]b[cba^^_cc[ff_Y[`d``a`bc^]e\c]e^bee_bUb[bag]_X__fdba]ida]fciZi]b\_g`b\bc^_c\ZZh\aXcX_\[[U_dXd[^Wc`cXQ]`[X[_Wb^cYZU`gVa_`_Y`g_fhZfF_b_W^Y___Z[_Se\]^ddftbc_R`i`c`f[]Zc]_Vahd\YcdYvYjc_Y_ZYcY]R`Tc^p[SWZd[S_XibcZ_Y`ih`h]^TVd[`\W_]f^gaV_Xgr\V]gaI`aXXcY_\[YY\[d_abb]ZZZcVmbvV]]\ac\b_jjTZ][]c^]W^d^h]d^_bi_Tg]Xbfdadacecd]dUg`_ce_T^bcXU]fcQY]]`]Ze][]Uq_TX[Z[`Y_`d^d`Z[_d_^^_`[Zc]c[Z__`VXWU]aX]`aSYcZYd^Z[VY]`bb\]^Y`]Z]TbRaFi][V`e^]X_Uf[Z]XdkS^cS`Xc^ZU^eX^_dffYa]Z]WS`h^\X_`Y\a_cU_d`YfaX[[a]\``dYa\T^^WY__UYY^^`^ZZacl``^\a_T__[]`V_`[`\kc_ad]Y]_hYaXWM\]_\d[Y`[WX_^c`\]][ea\]c[Yb[\[a]jbYi_\d\`]l_Tc_^Yg\d`]Z]]_W]d^\cbdX]X__aYe`[a]W\cb^iTcZa^`XZaXZ_``b^]\]Rcc`Vd\n]^]`chd_`j[jZ\beb`^[V`W_[T``[V[abXm_\[^eeZ^`aX`S\[b\_hY^\da\X]e_]ZZXh_TZT\Zf\^Z[dad\s_Y\\_Xqb]a^i^gfXh\\e`WeZ[X_ZY]XV[e\[[]c[aX\k\\\R]]`YbUbc[XgTX[Ua]__e]_X_bg\^qRZOVaa]^[a_[WX]a]ZbdoX]Y]cO][hY\`aabj]aV\U\ed[[__ZUXY\\^_aXZ`e[Y^`\_]^bdc\eXeZY_Zb[_d^\]`ga[]\`f_Zb`Y[Rf[Z[bX][[^`[b^d[\]d^Q^_^b\XdZ^[_fY[_^]_aY`[d^YW]^\\c_i\e\aZXZad`_[V]_^__\`^cXd`^[_Yb\Y[[]_YhX`Zn_`]^^_^_[_W`cd_Yb\_W``b_[\^^i\`\`a^_^d_\]^]`[\Zdd\`]lV_cW^^c`^a]b_YXX_WaT]_Wah\YWU_c_\bZab]e`_^`c^c^`Wc_^[c`ac_``T_^cb^a`d`beb_`[`Z`d^]aee`[^b[eg][`h_a[]b]_dZb_]`^\m\hWVS]j^]_f]`bhVb`c]YY`[\h^c_[__Tba__]c^fb[d`[]\fm^\hjec[Z_]iUX]^ce`a^[[a]^\^a_e^a\\_a[_\i_aeX[\deba_a__Zc]][_]_a]^U^Z\dZc[a]U_d]_^^^ZZ^c]\`^_c`]`^Y\bc[``ei`\`V`[bY]]_aZcd]c`bW``df_[]]ca[b_^]bi_]\e^c`a_]__Z[_g_]`]c^[_agb_V]c`Vba_`c__]^j_aX]^^_bc`_m\a_\Y\^\_]]ZYbY]_[TW`^c_\\\\]_bcX`Y[_T\`RmcZa[\e_]XZ]\\^X_iY][W^Ya]dcZcb]TPd^`\_]aX_[]g\Zbb\UZbZ]\atdf]dZ_bOb]_[eb\Z_e^Z_b]_aebYg\Yk]W\\^Xi]q^\_fb\a]bUh^dgab[Y^^^R[_Z\\e[[ZS_c\UWWd_]h^[Qa][aa^[abg_[^fcW_`\Vfa`\abZZ[]]d]j`^[c]]]bd]T]cf[cb[]aP\Ub`bba]i^[ZaZ_h`_ccW`a[hd_f`a]Uaa\``^c`d]\\e`Xa\ak]]__^]a_b_`\ad_i`_\^`a[e_Zq]\V^W\YY`]h]aea]caZ^Y^ceU^\Zaehb^Z]c]cV[ba[__cg[af\^^]_db[c`Wd_[]`bahY]W`_Zc`]b^fb_Y\[bb\Z[^_b\\]^_bV`eda]_W_c]``Z^]^a]b^b`^Za`[\c\U\]ba]_Z[\_d]`W\WZg`^]Y[Z^]ZZZX`]l[``[^`[RYd[Wd\^^\[\^a[_^^a[`dZ^]WbaSaY\ff_Xd^^Y]^^[_Z`\`c\VedcVa^[\]b\WU]_bZb]\]a_c\^VbbaYb]]\U_^a[beTac\V^c_Yd_YcaX_R]XZ][``[XcdXZ^lVZWa[Ya_[e_e^bm^Y\TOZ^Y[[a_ba^Ya^ha_WYdZ`^_XeZ^`\a^^\Tc[[`p[Y`]^\WQ_a[T^]de`Y\b\_^`^YXdY[Yb^[VXaZX]Ua`i[aZ[_bbYa_b\[X\^b^[^]Z`\V\`_^^ZZiZae^RZTcZXa[\\[^bV^dYY\cR__cb\``_c^_\^e_cdd]]Zc_][_a]\]_W^ca`d`]_bb^`^\_`\^X`Z]i]dX^d`_bcnab^__\Z^f[^b]Z`_^ZbW_^_Zf]e_]aZXY]Z]_[`ZT_]bY^\`[]^[b\a]d^\``]a\]a^ce\[^`W`sfhaa_Y_T^^[Y\][`]^[ZYb`[]YZej_\adbO_`^^_WZ_Zb\^]_^]XZ^ZU[ce^iZVdihabgbV__bdRb]^Xb][U`[_^gn^dX\]i\hajSZ`daid]^VG]]Y`Z[_UWshf[aif[]Yncb^Y`R`a[_jfbbbagi_abZm[dVaVebdl]\bWia_[[nXX^dh^`emfUec^`[fW[b]\ka]ccd[a_bdhedpLZ\]WaeW[Z[YZUaG`_d\We\dd[bf`[i_^aZZbXZ]\W^`[\[VVPce]XV`gX]be[ZfUa[[\eW_Uf\XYYa`b^[ekh__R``o`id_j\]hbYbb[XZU\]g^jXe]`[\i]TX]h\bYb[[_`_[_hch[c\aba][X_`f^[dgbhUaU]_Xef`]addeUfbZ_^bXI\cZ^[[jQ\^lai^]`]q`ca`_Mf^^c`dn^gab[XXW]Vc_Y`X[f\_[]Yh`U`[\fY]W\]cZba[`dnaZ]Z`a^]`]\acZY[]iU`\`[]aZX_R[[_d`ZZWbX\a\Wdc`b^ZZ`]eaZ[b\ee[_[]bbh[j^_[[c_dT_d]k_]bWbgffZbV]i`^_aYU\WZc`^[[X[bTZ\Z_`Ua^Z`_l[_]^\b`Y^da\ZbZbd`T[d\_Yd\h]]`[a^_]_h[cb\_nca[_a\b\ge^Z_bb__^[aZZha\hbc_``]\`c[^_X[\[b^[\`W]d\abKb_n\_baab]\[bec_^WWb]Y^YZ`_]Ye\Zba^_aabfK`Z`Y^^^[gYcYcZWXU`c_a`faagaX^e`]bda^ZW^ahbhha]b_l^^efc^a^g]^^ZZ^b__]__dl_ZU`^YbX_]]`Ya^baXc_e^c_mc[g]_`]a`^`a`^a\c\`]bb`[b\_Z]f^]c\^]`ac[\ZadZ]]\^_bc^c_bZadb_ff^V]a][_\^_b]__a^`]Y`ff\\^em[Z\]T]f]dc]]^_fY\]Z^Ya\\]\c[m^[\][Yabb]ba`]Xa_f^^^UYU`Z``_\[ZaZY_Y^a\_^^bY_Z`]eXXjc`dZY^]dl^`[cabdfWdW_e^cZ\db]bdd_XWkb^[b``]^dW[cU[^[aamdpUbb[[ddaaaRddd\[UhUc_]Wb\\RibcYb`ajaX_f_WWe`hX^c\aXzZea[c[aR_g\^o_l^gTj`aSefadYSWV^J`ZYUgac]][_[TbZYZaT[eia\s[`df`emifYd^b]OgYjXihUdW_b[`aOY[]ePQjiZ]g[b`fY``Y\aa[]^Y_Y_^a\[b^_e^_b_]a_^g_cb[d^\W[Z[W_cW][]ZZ][_Zf[\YYb]^]^h_d_b]h`[a`aRc`]Ya]Y`[\]^]ci_dX[_e\^[h_]Z]]\Z`Z^f[\aZc]acXdac^`Xb\_aeT^Z^]\bW]fhXZXUZX]_lbg_[^\^]\YZ`ff^[Yc\`[X[^f``^]Y]cde]X^^Zbc__\\c__T^X\^d]c__XV[i]_Za]bYVga^WcbXZad^\`cb_Y\`Vd`dX^_ZS\l_```]eaW\cc\Y][c_\e`WdkkcZZe^[^_X_be`^Z^_bc]^Y__]c__^\h_fccR\hYZYVge\b][\]aYa^d^X`\^g__\c__a[\^`^`f[YZW]eY`a]]]\^`[^d^^`^^mbW`\]^\\ZXYZ`_[\^`\[]gcZ]][[_TYbcXSYab]\b]\YWb[W^V`ZXZ[Xdb`]\cf[\Z[Z^T`db][]W[\Vb]]``\ef]\]ZWU[ZY^^nf]\k\XV[Z[c^X^]^^^_\[_XUX\\Xa`[WX]iV\^`Zg_Y_[^a^g`W^`^^WaS^[S`]\[\dY_\^__bZ]^iY]^a^_`YR`ec][Yg\c`][i^\Zf``Zfed_\_V]]ZZS[]_Z[a_[[[Y^[`^\Z]\[\]ca[^`[a`^`Y`c^\Y[`[[]ZY]`]d^]e\[]\`\]\__[\YZ^Z]de]]\aX\X`\\^^^]X]Z_^c^`^g[^a_[YXZ[_\Z[V_U[]Y[b\b\^`_YYc_[T_^\\ba]``^_[ZXaVX\[]]][e`^Z]aZ^Yc]\c_c^YabY^`\Y____\``[ceX_X[Qb[\Y\iY^_^c`_\`h\ge`dY^_d^[Wa^`k]ceda[a``n_^`bV^\_U]`a``]gYe[Xj[bcc]Y_gcZY`]Yg]Re_Pi`becdcYeVYbe``Y[T^>e\Z`V\Ua\\]WY_`ZX[a[MNY^[_Z`bX[`bVT`_[_a_c``[Y\biW`^jzda_YXZW[`aZ`]Wa]U[\Vx_`bWa`aWc\___`c`eb\fZY^_a]\aV^[e`lXf\R`We_k]ZZV`]g^g\]Z\`W]^\Y^e]b`U`]cnd`]V``\U[ZYX_dg^`bdZ\\ccYLX_Y^UgZRdaa\`gWcc]]aY`_a]fcXa^d^cUU^^[ZVleVY[h[]qd_U`_iXSXfX[_Ycb^^^^[[[R][cfZkagYcb]SUY^ZW`V`V^[[l^WdW\R\Y[\\[YU_ZY^d_ZbX]]`\\aQ`Y\[KbX^[RbXZ``Y]V]Y\W]]_V_^a^b]X\[^_[__\a`V\`g]\U\Y[]_`U]IU]Y`\V\\_T_d^YY`dbdcZVdTa^XUWZf\]TUXU^aVV_S^^R[U^\`W__WO_YT[X]Yg[R^UX^\Z]]`_Vc^[ZhXZ[`XZ_b_ac^X[[[_V^[]^`__]cd^`a\^cZce`ca[ca_`\bV_g^]\]^\_^\Y`^dYeeZ^\Sa`[]]Z[\dbY\]b`VaZ`U[^YXS_^`Z^_\^ZbVZ\\\Z\`_]]ZZ]^_el^_``Yda^U_[k_b`db^bZ_jd\Z_bYa^fXZX``YYfda^gX_]cZdZaccad^`e`[]\`ZV_^]Z`^_c`^bW`\a[ab]d_^``[]]_^X\c_c`a\a\Z]_aa\`\c^]_Z]^dY]]d^c^k_[_]Y]Z[aXac[`\]ccr\`\`b^e[^`decZ]^]Kb[\`_^ceaa_d_[]Z]bc_Y]_\[[agc^_^\Z\iWcZ_X\`b_^b_[[]^_m\a\_`]^a^bj]`\^d`^^c\`[d]b_]`\cf^Zb[]`^Z[^cY_^\cY^b[cg[d_a^\\bZa]a]^^]]`_]a]]c`_f]bcla`]`i\_c\b_caYb]bh]Xcccaf[`]]f_Zcc]``cid_\`ca`d`d\X`\_e`_abWa^__bddb`Za^fe]da]b]_c`^_^d`ab]^cg[_`_`\\\cb`bc^]a`__^`_]_db^cb`]d]``g\a\_b^g__[_`\b[daT^a_^Y`^_Z[c[]^]]e\]ida[__]a__\^\Y__]`Z]`da``b\]]]e\Xb]Z[\[][_]b`^b\`Ye^X\\_ba\^c`[[ba]h^\_^^e\^WcZ_a]a^]Z\d[]ZZ```[^Z]f][^^bZba^\^_\][]Z_cdbZYa\]]]`e___a\_Uf_bgdc`^]c`[a\__]bdc^]_a``X`]g_]]\ZZ`]fd\e]^YV^k]_[c]^[Z]\[^hea^[ab_^i^U_\aaYVhY^X]]S_db^k]XZd\`Z\Z]g]RX_YcT[\a\]X\W_X_^]ZV_`\`[Y^_ci\X^[Zqa\c[\[cT^_]W\eZX__d]^_Z_]^[_R_]_a[eU[XbZ[``\cWZY]]c_Y\_V`_[Sa`X\\XW`]^UZQ\_k^e`p\gWbXa]_]Z]_^Z_[]__aZ^^_e[`c^eb^^cZa]Y`c__Zaa[\b\`aa\\\\_]_Za^^Y]abY[dd^^db\_a[[e^][[ca]c``^`Yb^]`_\\^^a^__]b_[ca^a`]]a_a__dbYfa[`]`][b`bb]^\bXf`]_k^f_c`e\WZ]Z[`[[`\_^^__[\\[e`]\Z^`]\\b^c[a\a`^fab[d`_ad]baU`]ab][\a[cg^[\^[_Z`\_]aeYd[Z__Y]bY]_b\eeb]X\[W__]b^\f^c^e^X_]P`[_^^W[_\da]`^^^`af]]\_[]Zb^[_]_d_Zaa\\^V`^[e`]]]Y`e`c_\[[\]X]]]Yc\^_cX_aab^a[aZcX\^hg\^U\]`Y_][]b^_bb[Z^`Y[`f\ZeVaZ\Zd\^]d_Z]^^cb]bd__bY@abX^\]bXYc]c[badm_`gZe]_RWcRad`Yeb`Wpb`O[hYde[]\_^^d_^f`e_|_`Y_^f`Ya]`\^aiY[bdW\_hX>Zb_]_ZdoYePe`Zm^ZXag_a^S^[YVa\dWb\ihcdW^N]Vdfa\^dZY[^_\c]dZ`]akf^b]^\[f\``c[ZhWK`hcdXs_dca`h\[\Y]`b]cnacW]g\_Yfe[_fa\\dNZ^dYd_`^``Z^Yp^\a[a_RbPd^^eZ`a[[^bd]Y]LaYY\[_eoW^^Z_f]V]_baYdfa`Y\elYQihYX_YXb\_^UZ^_Z_YB]a\_Yb\R^b`e^Wc^mcuaO^X_dgZ\d\eciG`_e[`a`bTdf[ci][^ahcjRa\y]^b[^Th_ca_c\Ye\`d[`_c`Za[[SgYdXYX[`^_^Zg^]]caSSc[X\k`ZVf\ef^Sa[]Sc[UhPeac_W\]b__VgdFcZ\Ze]aa`nikZ[o`W_TZc[J`e^Z[hYZc\k`Vcbcccccd`_]S\ZgZja\^cXc_eiZR^Zm^cgn_T_h\`bc_ajb]cbr\Ol^Wb[]d]^m`\Z_Veh^U`Z\`ihYM]_X^`g`e[a[``[pd[`W\`ca^a[\\b_b[\^_aU\]f]]]\a^baX_a_afV[X`c[\W`ecYc`\\f]`^^P`aa]`_d`dabdb`__\\Z_^`^cXc]X\ba]_]^^a^Xb[eV`ad^b`Y^\^f[V]\`c^bY\\df__aY`^ig_\Z[_a__\k^`aW[\ae]]`^_dc^_`YdYe^_cZ^eZZQ]]c^a`b[_dW^_]ae]cO_`bjdUZ_]d`h^Yei`c_`_b[^aXf_lb]i]Wa@bafRZg^\Z\U\`am^[]X^]X^eZUa]`Wb\]Ws`PeZcdbZ`aQUZ]Zc_b^[bfZUi^_aq[]l[N]UXc]]_Xv]\Y`gpZ^]hZhal\Zhh^a_]bVUjd^XYkn_gPXkY_b[_S\ZU]`^W^c`_VglYV_ZX_SY^`gjfvW`_^]^\dTYReiv_b[SjabSa[hZ`^cdXOiaK[[Z[[YTa[\^\dcTYbaXYVWXTRRjTU^\[][ZVJV[WhPZga\^eg[[`RWaPZd]MYbad[X^fVgrX_:ZMb\XY]^a\MWd\W\]cbQX`VkPc_a[Oc`XR\b\`W\^cgUcYiJ_TKa\XU[TgWZaY]eS_XaXt^KRm_`cmk`dYWW`YhcaW[ZbccZXapa\b_Z]O[W\\f_ZSec_edeba[`^\jWQa_bWcYQ]_Zfj_UYfX]LY^g^ZRb`Zdd_a[_[a__X[]Xgj\a]ZV]\G__]a[^^\di_ThWgTXagTecdkW]k[W\dhU[`bb]^^a`c\^`cYSXXaZh[WMV][^Y^\]aS[\dYbZadWKZZebm_a^_][[\ds^f_hVc`a_W``[`SaVfY[`b_ga\YZ]c`ec\a]To[]^\hZZ[]dP]e_jZea[a[YEdWcY\\aZYbmaYdf]k\[Vac][]f__ZQb[eacaasbZ_i[a`a^__`ZYZ_Zd_[[\^_ZbW]W\`nV`\eZXdYdeT`W`_bedpeb`\_[fe]y[iQ`Z]e^aa_^`k]]U\b[\e[egcbS]_\XkYec`af`][cc][YdG`[\cXX^ZUaWeX^bZah_Xh]^]Z\]XP[X]Vn]b`Ve]f^[OZ[fVc`b]aVUcdjgTdaUWZ`\YS_XVYWa]Z^g[]_^gZX_\\PdW_\b_[`ZPWeaZca[XcgV\ZlT`VcZba`YW`X\_a^a_Q`VZXXeQZ^l`ZZ]]]`Tacc_]eL]TXX[[RaecS`]Wie`]aZbb_^\_^Xb\dW]`]gXaae`]Zb^]]a_Rca\^^^]^cZZe_X^_an`Z]e``g_aeaeb_YZ`\]^`adZW_Z[`h]^ZYcZecZI^_dh\^]idf_\[^\`\i^f[]^Y_a\^[]f\`^[XQ]aVcWbT``[c^_\R]ZV][`i[WcZ]`][ZZa]WYb\]]ec[]]Z^_o_c[\[[a_\eacb\[b_bWV_RecXYcY^i_nck]Z_mfYfd_T^WRfZ]Wk^[U`Y^ig^TYfcWcXV^gfbYZub^`fYXaYbVZ]b_Z_Zf`^`^X^Y][bZYZZ\Upce\\[VfU^a\_chVaf`b`Va\Z`UW[VZUU`XZ[dYb_aWXg\e\]Z]\Y___a_WhabXhVR^a\c_Z\ca]cdeV_e]U\db\]\ad\UabXia\a]]^__\]h_\f^d`]]a_`__^[cc]]]ac_`fc`a`_b[`ba^\bZX_\\d_b^ab`d]aZ_b[\^h^_^_\`b[abb]Y`_^_[V_`_a_aZi^__]`\\^`d]b`][]^f]\_]___]]X\b]ak]_b[aa^_e`]^\e_^^\`c`_Y^`^Z`][\^`__[^_\^]`Zb_]\``^`]_b^_^``\_abW_]i^`fdcW`SW^]Y^aaZUhdZZbdZi^Zdacb`h\cbbX`Y^di^^^X^`YUfaNba\gT`\c]d_`Y_]a_a]]a_W]k\h`Z^`_]fW^`]Z^b`be\bceXWe_bbYdX\`[ZcZ]e\^]aaaZ_h`b[[YbbZ]^hb`_\a^\Yd`c`Ya[XZ[ZdY_g_c][`Y__f[[\g^`_[Z`[ZZda[_\`\_Y]`bdb^WX`^]]]]^Yd]a]_\^cfc_ace^b`[\c\\\^d`d[]]]ba_aeT]`[^[^`[\ec^^ibb`Z]___[]c`^`_^fc^bZ[ddb]_]if\`bdbY]_ac]a]f]`b\cd_``W]a[S``^\]\^a^a[]`_d]\acZb[_\a^db`]bY\^^^ag_`e\`X]\X^]^daY]Yacc`cW^]f_c]\k[W`^[[]a_Y_b][^a_c_]baZ^c`Y`b[^e][fa]^]]]_\i\cae`\___\`^aU_`U[_\[_^[`^Ta]lb`a\\cW^b^X\]e[`d`_^fa[^Y^c\d\[_]i_`\Zb[_]Z]hj]c]_S]a^Z\]_[X`VYk^`j]i]lc]^\[_b__\gfb^^_d_aY\la\^b`h\\c^dg_d``a^_Y`c^`Y][V_d`_``^^Q^`a]__f]^e[a`\e[bU]\_]abac\]``\\^]]\\_e^`_]`_\]`^a``\e\c]Za\\a\__^\ba^^\\da]a]]\`[]\c][_a[_[d`ai_b]^Y[\ZaZ]Ya[`aX_]^aiY^\aYaa]]_a]\]]Z^^]`\[_[_X`Za^\_bYa\a\][[]Z__]^b``\]_[]^b\Z]]c]a\]``^aZ]a^]]^a`\e_]V^^`^ba_a`a]_ba_acccb_^a^]`dca^]faab\^__[^^`\c^d]`[`_]aa]`a[]]___a_[]Z_\`b^^_a`_`bb\acVU_[a__^`^_j[^a_`]ab[`ZZ`b_^\c_]Zd[_a]a^]`ab^_X``b`cb`d^^[`a_]]a`d^aZ^_]_Za]\Zb]\^]]e\ac[b^]^Y_aa]b__\]]^\a[ec_`bdZ`]]^]\Z_c__`c_[YaX`bY``_db__^a`^b^a[`]cYac\Zdad\_^c_^]X`X^Uab^b``_ceX`[_]b^a[Y]^]a^_]`]ea\faZ]_daZ_Yja]^ded`e^[`]\Z]^_]]b`[[\][]b^f]^\\]c^]Z]_a_d_^\`_^\[a[ea\]]\e[^k]Y_\^][`bb]X\`bea_^Rng[bbca_Va\cZa[[[gab`Z^\d\\p^[`^d`^[\\[ccY]XY___]cdc][Z]Z\]\a_]_^[`bXX_[am_]Xah_Y`b\[^d\]\`]e\]f_Z`_]ZX_\^YYcWZb_^\^\\Y^a_c`b_UgeYbga^i_eYd_U]_p_``Z`]ZbgZeW[[[[_c]abX]deab^_ckYcW]bf]\`\bZ_dg_c[[^\c]ac_ZYa\gZ_id\Y```TbZ^][^ba^_`cc^]`a]Z_[cX``^^_gV^`_``\YZ^d_`[W[_dbee`h]XW[]eaga_]Zda__`^bW_`bb`d`_b\ba]h]\^eZZ``\_[e\d]``[__a_`\^[W_f^[XaW^^aagc^abZ_][`c`]b^baVY`_ZWh[]]W^b^aZa_cf`_aUd^_aX`_^b^]]\Xcn_\\Z\[^W[de]]cUcb`___\i\b```]Y]_^daecXf`R`XTb\b_db^gec_aacT\^_da`X^Z`_[l[Ue^YU`^a\[c]eXb^V`d_Ymd[\_^_]]aRaW[`mf`gX``bZ`c\h]Y_j_aY`[\dd]\XYW_a]f\]Z__bZf][dce`T]aba^_ZT\Y\^]Y\Wfh]_kZbj]`[aaY__XJ]^ZfT`[``\c\\\HdaahcXg^cWk`bcb_YZb[\^aWfbh[bbc\e]^[c_^_acQVc`ag_`_d\gaX[[m[_i_]_ba]g\ZZ[]\\WeeaddYW`^[_kb^a`_a^___fbcWSaagiZe\`necVec[Zhf_`U]bbc_cba^_]`]^`__\^`c`a]Z^]]_^``\_^^\]c`_[]__a_``^``ba[``b\]]\^]_^\\`]^V^a^\`a]`_^_b[ba]]_^ab_^aV^^b___^a^^^^^[\`\^_ba_``]a\`]^^`_a`^a[a^_`h^__]__\^\a\`^\\__^e_]`^``b]a`a_b]^^_a_``ba^_^d^^^\_`[`]b^_^``[Y\a`^_d_`\_Z^^\\a[]]b`b``b_`^_Y__]_d^[a\Ze^__`\\^V\^c\b]_`aZ^Xa\_^b]^^^c^a`\^`^_]]\ZZeb[]]]Za\f\``^[\Z[^\Z[^[_]\ad`\e`b__f^d^^_bV]`]b]WZab^b\]^Z\ccXdZ^_[^\dUV]`c`[Z`bb\^f\[[`_c^^`\bX^``eW^c^d_b__Z[X^[]_]_[bY]\Y^f\aa^a[]b\`ah^`_^[[]^^b_]^]]]a`^a^bW_[\``cc[\\aW\[[^c\eYbe^^[\W\\W]`_^_`Z_^a^]cZaZ^b`g_f\]^^^Z^^]_]db_e_aZ]^]`_c^ca]`\\Y`\^`\Z[Z^b\`Y\[^d]_[Y_Y_Yaa]_b_]_[_\`\_c^a_ba\a^`b]\`aa]d^cba__\Z`a\^`_[\\]Z]`_d_\^a`]caZc_b^^`Z^b_ZZa\_\_a][\`\_``a\]^baa^_`]_d`ba\`_`_[`__`[b`[bacb_[\_\^Z_\][[\^`]ba[_\b]^_]af]`c`aa]`a^^]d\_`Z^``a]`__^Y`]f`_^a^_c[`Z__c_]]^_^f`]`[\b`a`_\\]^[__^`]]^_ada^`^__\ab]`_[aY^]Zaa\Z]_[a[\ca_\\]\^^b]^c^Z[ca``\Z]`]^Xb]`]_^b]a]\^b]^`]`]Z]__^^a____aa^bb\_aZaX`a\X^_X``b\^b\^b]a[^f\\a_ZZ[c^ba^^bc_^bb_^b[^^_^][^]]X]`_b_aZ_]a]^a\^V`[Z^\aa_`]\_\_]_d^c_`\^`a_^_\`^^`Wa]a\_c^\[`\^[]ce__cb\a][`^_\d^]`ccZ[c_Wb`V`_W^]baa``Z\]cY^e\[`_dY[[`\`\Y^^^b_\^T`[_c^g]\]d]\`\^]^^[]`a\dZ_b[_Zbh__b_b^d[ccb]\b_b^bd^ZdZXXY]dZ]Zd___]jY]`]d`_^c^]^]_Z^aa\_`^Za[\^^aan^W\Td_[^gbYG]Y]SX\XW]^VQZlZ]cZe]bb_Tb[P`WlbQg]jWcUY`_Tac^iU^j\c]bbbciV[TUj`\d\ULXZZhaaWUb\\X[\ebMhgV]b`W_WXc]\W][cjhcdZ[WV`mwYZal^\Zb\_hYbb^cYVbWbV_ZYTbk_fg_\UZVa]]_[cZ[F_`f[[\d`\a[Tgal^_ad]ah]\cYlaWacc^b^`\]Z^[\`Zeb\dcb][cb[a\]^bdda[abd\Z`edd^^[^aXd][]cdb_]`ca[^a^d``_a\^Xa]Y`eaYg\cW^gdZWgh`a`b^^^baaZ`ac_ageb]b_``ekec[_^`d\ceZ^afadcdha\_bbca_e]b]a^Z^a_ac`[d^\^f`X^`eYZbh\_ce`a`g]\b]\^_]c`\a``_][a^^^c[^]Z^_][bZ__^^c^\a_bca^^b`a`a`bbY``\bcb][[_abbb`_\_]_[[g_bf^`c]\ae]c`^^_bO`]bc]\c`]a^_b]_c^]__bab`^ZWaa^`Zf]fZb_\[c``]^bZ\[]^`\[_`]^Z_a]__a\a\][^XccW[]b^]abcbb^\_]_`^Y[\`^b\_``\_aba^a]_\]__a^`daa__]_]Z^_a^c`_^^]]`__b^b\[^`_a_^[fa\c_a^]]`[]f^a[Y_^\]b\d^\d``bb_\_````aa`_`^Y^_Y^_a^`^`^^[`\___^a]]bY[_^_[[``_`^a]ah^^_b\Z`^a_Z_\]__[_^`^^^d`\b]\_^_^aa^\b__]]_^^^^]a__`baXb`ca\eb_][e\_[_^e`c`^][bZZ_`fb````\^_]Z_\ea^_^d`^`X^\b`^^[_`baaZ[^][``^_b[_^eb_]a]eaaZ]Y\^\^]^ab^_[]YZaec\b`d`]b^ab`^`b_ab[^[Z``db]_X_`_b\\^_]\a^`_a``^a`g]Zg\Z`faebb`\Ze]`^f][b`a]Za^a^]_\_[ee][_i^i]db^_]][`c^^`\o][b]\U`_bWa]cdY^\`[_`]iid`\^Z_a^]p^b\^T_a]_\^^^_^`^]W^c_Zkl_a^][^]`]`_a[]be]c}aV`V`g_^^^^^f]^``[][]`Ybd[\`Z[[_ab^^^^^]Y^_]xr\re\`Y\^Zae^f^``U^^^a^X[^s_[iZZ]^]Y`cc__Y`c[`\``\`b^d^``fba^bd^`^a`b]^^`_``^`]`a^a]]][_\^^c[]d\]``_[ab^Zba`]]][Z^\`aW_[][U][ba_]a]\a]]d`ba`\`h\`_aacj\a^\^e\^]^`Z\e^__\b_[]g^_dc]bZb\jaZb]`___c^fc`]a][[[ba\^]]Yb^`__ZV\`bc[`]`c`]]e]__]_[b]_hZ_ef^b]b_a]^]T]Ybc_^Meb]a[[b]V][_[\bV^a_O^Z_b[`_icZ^ZaY\`_]aa`ae]^``X\]\`h[f^[]_[_\Zh\Y[[[cZ`Z[ZYWS^]c^V\[fXX\_edcad\]fYdWje`^pWjUZa__\^^_[bZa`c]YZXT_fWe\U_`c[]\XaZg^bW^UaWea`]d_W_[WZ]^jZTa_[Z]ba^`Z_`[a_^\b__^^[]]]ba^__^^_b_b`^\ac[_`b`\]aa\aa\c\^`_`c^_`_^\_\^^]e___a`[``hc_g[_^`^^`[_c^]a\h`]\\]aa]Xa]_`\``_\baad^^`__ga^Y`aa_]cf]_`]^[^^h`\`][a^`a]`\]e]]]^Z_]```acd`a__^`_\`[a_^`b```^^Yhic]Z]g^XZae]`bOY_a_Q]c[V]X]\Z_VeZa\V]_mU^c\TS`Y_]e_^XYZcdTVWW\\\TW_V_aXi^U\_]iWPYT^e`^_VUa\Y^\XTbWcY_Z\d\TV^\^YZ]^f_rYZ[Y_Ue]eUge\[\Wh^`\XVd__X_`XZU]YYW\[H^`Vc]ahY[\`^ecW\R`X[`b]fbX[W[\\Z_`a\a_^\`c^`^acWaa[`Za\^\na]_d[[^c]d`[c_b\ee^d[hajcd`^gfaccdedg`[\\fb]]ab_]\Xc_[d\^__^b`Z^^Zcb][_`jgY``\b]_e_]`[\``a]ZbZ[^\_^dbdf\Va`^Ya_a[be[]_\_`_\cV[a^c^Y]Yfc\]c]e_c^]dibZ^][]Wc__^\Zh`__]Wd^^[adcXYa`U^Z]\_c^[`Z[[^\Ya_a^_adca]_\c`[^aa[^__[_]\baa_`]`]`bb^[a]_`^```]__^^^c``a_kfgbd`\`]b[]_a\ZY`[X_`^bam^Zb__aV^^``[]^[`]bX`b_\a]__^^```Y_b_bXi^b]`\e]^\]g]_^]\_h__^`]Ybal\a\b^_a`^]_Za_Z_aZaY[LddVZY^hbg`a^[YX_f[ggdTfa\g`i^lb_c^mbdlae^O]d^`j`jc\Xdc\\^ik__Y\W]Yj]Z\[_bWh^bTdccdea[Ydcge_eYdgX^TbT`kcabha`_^_[Y``dV]WhX`f]ddWcZad`\\\U[c\_]\eX^[_XY`]]l_cgV]YaYe]ZZ[bY`\_d_f[]b^bb^]`_[\]\a[c]```]_a[da^a^`ic\^^b\_[_b`V_]a]_[^`]^e\W[_`^^d]c``d`^bf_^[b[a^_i]]]`a^c_ac\e\b^\`af_c^]^e`^\T^`]^`Yda_d\b]]ZZZ`_d^^]]d^a[]\^bXZe^`]^^^b[]f^Yfa_[_Z^[g\[][]\]]]``]__]c`_a^ab`_cib^b_]]\\]]\`^`\`_[Z_d[\ib]_`_^[][^^^`Yb\]\]Zc[^`ad^\V^_]iaa\\[ZbUc\_Y\a^[a`[eo[\\Yf_][`^\_[ac_^b`\b_^Xea]afe`_\__`c[`\\[a^acba_cX^`Z`\^a]_c^__db`]cb^\`^a^ZeW`a\U^fb\\`_\_]Y[\`\aa[a_b^`cad]Y__[]]e]_Zc_aa^]b^b_b\ab][_b\^`````a_^^aa_]\_c_[^____Y]]baa_X^_^\\_]^`^d_^a_\`\_\`_^b[^`]a^aa`abh]^`^aab`T]]^e]^\c\a]^]Z_a^b_c]`\]\ba_\_^_``b]a[_`^\h````_^\\^d_Z`_`\_X^^f`Y\[^__][_b`[]_^`^aa]a__ce`^b]]][^b^^]`W_`^c\_c]\`U]\b`\``]W\]`\Yad[dcdj\_]_a]]`b^\[^[``afW`_bWccT\\ZdWda`^aaXaa_bd_``a[U]\_a]b[`d]g][cWbf\h_c[ead[db]]\`ea]`a]aX\ahZ]aZaXbc\]^_h\_a^Z[a^\gY][\b`^_b_\_d[^j`a_\\^d`[^^^^]^`aeh`aX`\\bd`Y`_ci`YjeWeaZc\bT]edYad\_^aWdW_h^^f^ab\\Z_\i__\ai^gUTYT[[\`alhW[fcd]g_^fVUV`g]fXbYee_[[S_Z`\^W`cdXcN]a_]pdUZda_Te^`cfabaY^daZdKVbadbfc^`b\f`[ZlmacZY^_bYa^cb_VfYX]c^_^a\]\b[Zc\YX_d``e^^W\ad\`Y`[[]X_g]`[dY]Zk`Ya[W^YdZ_Xab\a\aZ^X_^b\a]\c^i``XX^U^`Zh\`Z\`Z]Zg[\WVYada`]^c\ab`^]aZX\YZaaaYZV_[`cZ[__Z^_[^Wbb^Zf\aV[faa^j[Zj\`V[^]^\b`\]a]X^Ye`e\]`W^abg`Za]Za`cad_dbS[f_\]`_\PdeafU^^^oWa\b\a^\]c\`a^_^]ac]\a^c^`\]_babb^\[]^^`\]`_b]gac`]_c^^b__\__ab_a_b]\^^f]c^^[_a_b_a]^a``Y_b^c^`aY_b]]a^]Y^]bed``b__d]^^`aa^`\`\^`[ZZa[W^b_^]_^`^c[_i]a_]\_ZZa`_a[^_]]c\_]h__b_`a`\`[_]g^\_]afa^`]\a\\a`^_Z\ZZa`dd[_ZcZaeXPacZhaYd]^]_\W^X`k_ex_T\rTa]W[eaUa_Q\[XhYaaZZlYg`c]e_]Y]be[ggdYbTieX_[WcW]bcY`_eZjOccX]c`c^\g]cb`[Wdf^R`RYb\fhKadXZV\i`[ZY[_]Rmd`NVeY]U^g]XW^X]bbS\Xs_YbaZXKZT[]ieea^hYOfZ`]a\^Vb\j]V^Y\_]We]`_e\]Y\i[^Zobaj]l_a\``Za[Ig^b[][_ZY`e\jT[^ZjVUc[QZQbUW]WXX_Ye`[_gZ_kT\\dR^dbfQ`b^cd\]dX[_bd\F]]Ra[YZNqiTVchd^fcV@hjaf]dZ\^Y`dfbffXY]bgYaZja\Z[_fdM\g\]^^Wa^bbaoYC[Z_]aYg]lc]_[ZeX^_\b\[^]]`a`[]^^^^`_`^_]^]\b__]]^\e]a`_f`c_]_]][_bc`]a]aZa][_bXZZ`ca`c^\a^a\^]a__a\c_Z_[cU`^_]]dcb^``d[bXb]_\b^^`^_a\b_]`c\_b`_Ya_b^_c]\b_\[\_`^]b]YbZ^_c__\e^a_]_`^f_`_^bcc_^_^ba`a[^\c^_`\Z^b\][Z]^b_`]\_^Z[`abb_[^\^Y`_e`_]ab_\`_]]\_a]_bU_][ZZea[`^e^_\b`]]__be]]`Y\^ac]\]^]]`Zba\^^aab``_^d`_]^a_a]ba`[]\b]\[oa_a^[^^[\^[gY_W^\]a`^^\_Y_da\`__]_c\[d\`[^`eZ[^_`c`_]`_^c\abY\bZ_\aeea^\^``^`]_\``[__\]b^]^`]\a_\__^b\_\aaa_]`_g^^^[l\b_``a]Y^]]ada]`Zc^`^a\^c_`_\_`__]`^`\a]`^_^^]^^^^\^b_`c\^]_c_^b^]_c\[^_da_]`_]aba]^b`_e[__a__c_e^`^_\^ba]_`b^_\`_`[bad_`^_a^\]`d^^\b]_a[a`]\a`c[b__[fa\`_d_c_`^VW^]VZ[Zcc^Zebc^d]_Z^aba\cWZ_a[Zca_dV^_`j\d`aZ`T_d]`V_]^Q[_[bU[Z_chb][[[]]^_bg\]Wb]_ca`^b_b_dWXfSc]oZi_Ye\\c`^dX\fTag\Xea]e]]`ja__^ZZY]]YbVaY\\Z\_a]db`[_b[_`Xid\[a[^W^daZR_^l\_\`ZWjf\^XcY``c][]]b]`]\X^[[eZ[[e^cd^b\\`da^bZ]b[\dT`_Z^hc\a[\kV]fXXZf^`]Y_Vm\]b]\^eT^oaeZbU^]g\d]WYZW]]]j^XXW]\laeZd]R][Vb]dhj[U`bg^jYibg[c_Xc[g_eb\Q~WaY`b]ZZbf_\j_h_\afY_[o_R_`b__f_^bcbZ[dZ][]WheZZchb__a[_]\ab__``_^[_`_`b]fZc[a`d\^^`]b\\`^^a^_Wa^]bb^`^]]__]_[^a^c_^b]ca^iaZ^\a]`]]c]]c^ga^Yb_cca^]bac_^[Z_a_b][`c`a^]_]_`a`_`_`]a]_\\^\cb^c`Z]a\\c\a^a^^]__^`^a^[`c\^\_c_][_\_^b^b_]^^^b]^`_d^_^`_da]T_blX^c`bZ_X_gfWWfXcaVZ][`eRVa`b_`}^g]i_c[a\oYaaXaX]__Za^\cUalee_g]c_\V\]mbaf`V`]UaekgY^^f^dZc`an]YmfDa\eY^blg`lZZc`dY]de\j`oVk\_Rajb^\]V|__bk^a]``f\^bddZUZaaba_]OdYa]`\Vb_fZjY\aXaaU_g_f\c_Z]d`W`^`c^][c]]^`^`c^_^[]\a`]`Zc^h``a_^`c^_\_]Y]`ad^`db[daY\dZ\`]ac``__c^d__Z`b^[\ca\d[bc`]_a\beV\_[f[cZ_a^]a_\Z^abb_^Z_e[_ea]]eac^`h[Z_]d_]Ya^`d]Z_\[_b`_Zeab``b\`g\`^]]ag_\__bb^cZ_[b]^a\\^b_a`c\e\]\[e[Ya\]``_][f^]Y[\_Za[[[`Z_a\T[[^`h^[_kV^c^b_^b[a`Zm^YcW\bk\[iead[VU_dZ_Z]Zb^_Zcd`cXZW\cY_[`^]Yc\[\Xch\Z`a^kbf\caX]b_]`]e_bd[[j\^cc\^e\ZcZ_cc`Yi`\Wg^\bf][eaadYhia_aYifS_^d]gW__[cZ_ka^c^^`]__^^\^c_^bZ^__]`]`_`_Z^b[`\]^_\^aa`]_^\`^^\``\d`\^a`b[^`a^b\]b^]```\`bc_^^]^`_b\\\aa]\^b__a`\[^]_a\^\^a_ad\\[]_]^[a^_]^c]Z\^ad]^^h^]`^]``[_]aa_b[]``_\`\_\`_[`_^^\^``^``dY`\]^]__]`^]^^a]b`_aXa\\ZbbZm\``c[J_b``^_WZc]^Y^\`Wfa]Zab^]\d]Za_b^[[acfZ^[]dZo^Yc[_`[_a^]]`hXaa\cdc`ccYcY^ec\^^]\aWab]cX`aYkc]\cW`Y\`[ci_`[R\V]]Tg\aDb\X_ZeY^]`T``T`]hf[Y`U]^_[aW^`Ycb[m_bZWaaUZ^p]`ca`^_aZf^[chZ^`_`_b]^\`^`__c`_]]a`^]^^b_^]`^]\___]`_[a_\^_ba]_a_]_c`\_^`__^`]``_[_^__a]\`]__^^^^b_Z^__`^`a]^__^`a`]_a^^_a``[__d``d_\]__^]_]b^`^`^`a]^`_^^___`\\_`][_`c_b_^_^^^_^a```[_^`_^Y_]c`^]`__b]_^a^]^[``^__ad\[_\^_^_\\a`__\]^^]\^^Y^c_a__``\__c^a__``^^]```_c_]`_]``b]a_^`__^_a\_^_a_a``aa___d]^\`Yb_``]]_^_]b`]`\`[``aa``Z]\a`_^`]_`j^a_`_]]_^]ba^__b^^bY]ac_]```[_^a^^`a`_c`^a_\\`ca^_ba\]_^_a]`^_`_a\[]_\]`W`_`gc\aab__\^]a_`dY_]ZZ][]`]`d^\_\c^Z]aa]X_^]]]]b^ja`__a``^_Yb\^_\cca\_b``fd`_^c[a_^a_\b\\d]^`^b[a`^h^g_`]g\\[_c[aZ]Y`^TXi_b[___[^j\d`fVad\]`bbX[\a`]SY[^^`]][\\^[a^\\d^`kaf^b[`cac`^[\^c_^`c_^b_^a`_``]b^]Y[Ya`_b^\d^a``_`a\Z\]``ba_[^^^d__^gc]a[Y^baaVaaZ_\`\`___]]aXf_`a\_a`ce___a\b_`_aa[Ya^\``\^`b[_]\`Z`_^`^]]c]_`a_aai_]c_^fa^]_f__\a_c^[`_``^bd^^ca^^^^^\^]f^\XY^\_`]^ag^\b_]`\]a`^_]aa]a]`^_b`]\`ca[\c_\d]`[Z^`bZ`ed[[^Z[_Zb`_\Zc\i[Y`\^`ja__aZ]]bb_]X^f[^]bd\]`eb^]]^_X`[a_]^\cb]YZc]^`]]^_Z\[\^[^i\Z\]d_`Wa_]hT]X[__d_]bY_g`f``f_^^ZZf_Xb^^]_][^]]a`_\a\_Y\eb[c_a]_^\Ya^bbW^`^TX\defWa`c^a_T]a[]]^\YbX]d`_bcbd]\daW^ejU]b`bQ^_^l`YV_PaggU\_TTcb[a[c\\fb\a^]Ta\b`X`dZ_a^^]_f_Ua\ZkaejYT_aa_]fZ]]Zb\`c]_d]X]Ubk`R`_b_^_if_ZV_hTWXcm^YXb^[hg_Xb]`cYa[]a]c\a[e``c\fZZZ^_SaU`\^Z]^ab_^]_\]`X^dae_\_^eb^_^_f_aV`\_]Wc_^^b^^b\]dacbc\Yf^g]Y\\]iYW`aaacd`[aYacg[a\\`b]][\^d]a`b_T]_gcc`]hac`_[\N_\\_Xc_bbaa^^a_a`cYX^ZYe^Z^\`Zec]X`Y]_\_n\b^]eW`Va\T]\Xda[Q_^^_b`eaX^]b`[]Xb_`f_a[c`\fYi][c__^\]X^[]ab[jY_Z]_[Sdaaf`^`eZ`Zg\a`XaY[]\ccf`[caca]gP`gS_]`ah`daa_bh_]aYhZ^[aebac[`ad`af^bdc^_hZ^bc^Z\]abad[]Q]fg_e_Y\`f[gjbaej`_`\]]^`afdZX`XY`e\`a[fffc^\c`fa^^YfZ`hdaU]`YYeY\`]d_]a\dcf```_gc[dce[]a\d\RWc^]^^`]\ic]Y_`^cX[b`cZaZO\W[hc`[_Y\\Z\a^_Z`\[^a_i`_ba\Za\[aUgZ]\_\\bVb\c`V\^fc_`[]jTVWd\cZ`\[``_ZYd\`^g\eaYbSc[k`Z^\aYaZddWeVgbXZUaYba\aaba`g^[Y[ebZf]]\gZ^`\a\^agY\f\W_^[^fc[[m\[[^Z]bU]]^_N]W_^W`\abge_]^cV[[[Z`]^_b[Z^hh_e^dPbdZY\^\Z`ZXl^ecXW]\]\_g\\Y[aa]_c_[[\W^e[_b[dcbeZdgV^Z_UbW^[Z`[__\\m[Z^V^W]cdb[bQa^NU\daV^_S_bZ`^fVi_]Ubaab[\a]WbY\`Yb^Z\cVM]`c_[^Ye\\V]d^gfV\]V[ZgfXaY\]\cSfg^g^\Tab[X`\Y`[^`n\`]_fRa__Wa]V^bZ\[a\ddk\fiYadaM\bodccgbX^Zae\^`]cd^Pb_]`aXaWSga]cca`Y^abG_bnZf[ie]^Zcdbe\`_g^c[^^c]Qbad`_SX`iZY^Ybfh`bbj_Zba]dc[ZdYZ_Xa___gdh]gZYfY\g]^]e]YW_]`\]__`[`\a]a^`a`[^__]_ab^aa`\\`_]_]^]Za\^\^`_aaa]^]Y^b_aa^`_c]_`_c]]^\^```^Y_\\b^c^`]]``\``]_`_a^_a_`]^]^]_^]]b_]^a`[\`_b`\^^^bab^Z]]c`]__\]_`^a`___eZ^cc^b`__`Wba____^^c^_^]_^ad\b__a\_X_`]_]]]]^a]_bY\]^bd]dZ_[`V_a^_a^eb_\^bZ_[c]eXa_`[b]^a]^bb]\``cY][b]d_[d[]_`]`X_c_b]]^^^Zbaa]be`^^b\]_[[^_\`d`\b`_``_]a_`\]]\\^[Z___b`d_e_[Z\`[b_^b`cb[a[da\^`c`a[^_]``[c_ba]\^ca^c^][^agb]^]^cac[c^c\_]Y]_Z_^`b]`_^^bZba^`b]^_^]a_gc\g`\^_\a_`\_^b]_\^_\_[__^]\^]b^g^a``]``^^]b`_g_Za]`a^^b^^_[^^aa]\[]^_^_\`]]]_[`[_\\]\a`^\b``^]\`__b\]c`ba]__^]^e_ce\_\\ab`[_^f\]gb_[]]^\[^\_]c__]\[^`\^^]]_]^`]]`[`Za`^`_\`^a_\___b_^a]]`]\_c]]^a_^[^]_^]^[g`[]a]`_^d_Z\_`^^^c\_^c_`b_[]Z_`^\_b]]_]__\a_^_`^a[a__]``_^_[^c]^_]`_Z[]aba_^^[a[^]`^Yh_c`b]_gZ^]^c`c`_\`\```Xda_Y^]\bb]Zb^`_`\__^a[][\_b`b[^_a`^_c^_`aZ^_^_`e`]_]]e_^`af_c]^]^[bZb]^a`Y[c]a]b\[b\`_]a]_]_`a_bbcc]d_Z\da`^[_`^`_^b]][[a\n^\bbZ^d``R^ca`c]__`d[a_\a]b__\_]]a_]][^]d`_\Zc_[^^e^cV```^e^`^]b\]__e]a\_`^\]`d\ba_bc`Z]_f`^Y[^]^\\a_^`]`^Xc^eZca_d^d[_]__ba`a`^g]af_^\b^fbc__\a_]a^aa\]`\\^`a``b^]d_aba[__b]_`a^]]^[YY]\bW^\]aW_feb`___[\^[b_aa^Zah`^abba_ad^^^d`^`[dY]c\`][`__]i^`a\^`_a^g_\c`^_d_aaac\b]^Y]\__]^`_[c^^ce[Y_`ca_d\`b`^^a[_]^a\`^\[X\Xc`]`cZ]\]WV^_\f\bcfMg_a^eg^dXdWb[Z][_^\a]YVZ_e^`_]TYOYZ]bb]aVb^]c`\]a^TX[e^jZf`cb]``ZaX^^MZYaafVW\ZcdbZbagQ][W^Ud]`XY[[Ub`c\UmYUg^U\^]_`dgaZjdVbTW_\^Yb`qcZXd]dbca_`XW^^a^kca`^a[ehV`\eVX^Zdabc\]\^_]_`bf^]]\`_a`^^eeW`\_]cX]^^`\^`_a``[ZY\_^\^^a[Z[[`e_ba`a[^Wa`^_]b^\^a^`^_X\bd^\^\fZ^_`c^dYW_Wa^b^]`ba^\Z^^a`V^]Z_\^__]`e`__`]b`a]c_[^\b_X[^[Z]d`bcc_T__\^Y_d^]_`Ya[`\bb_]\a]^^dYb`Z^^^d\icZ\]\[^XTXYS`b^ab_fcc[Za`\^dX\`[`]f\]Xe[]Wgddd^\eVh`]^UP\VTd^^\_[m_]V\c[a^ba^^]\`c_eUWgW^^ddS_b_SbXd[iaaf`a[_a_^Z\__VcYT]Zl_bcZ]]qe`\WcZ[aQaf[dZfc[[]`eZ`b_]eVeWhbb`Zbd]h\[b]a]_h`^Z[UTde[aaZ`^`^_^c``Wba^]\\c\aZ\`][e^]b`ca`d][Xb\\cX]`[b_`W_[]\X\`X\^v[dbb[]fg]T^]_Y[o[\g`^`fe]Zd\\\d]\f[W\__e_\^Yac`bdh`ae`^[XkYca^`d_a[bW`fc^V`j^cc]_W\d]\b\^W_ZW^e]][Unfbd`Z[ee]^c\U[_iZge[Y]]^d[ag__e_``b``Z]`cg`__^^]c^``a`a`c[]^`^Ya]_]_``]aZX_^^_^_[^_b\`a_d`]_]\b\b_^^]^_[\Y[^`b`[__eaX`]a`a_ab]abbc^^_^_Y`\]\^\][_^_a[cc^]a``_`d`_h]c[Yb[_]]_bb^^]e^`YZaaba\^cb[^^]]c`ca`]ab`__\`a`[[Zb^ca^_]]]`^g^]`dbZ_c\bb\]Te_^\]__[Y\]UYU_Z^]cVa^[a]\][[^ZVd\c[ZZhaZ]Xac^ZhY\Zc][^_\__XZg^ad^[ic]\`f`b_X`^[Z]_V[]c`dde]^_Z]U\``X_aX[_f`__Yb[cW__^d]Z]ZVc_aX[^\\[b]^bb_[c^_[X\X\[_]a`g\c_\`eb^[__[UZZ[]]YX\Y^]^^ZcX]_WWa\ZU]_bO^]VXg[[Y[a`Z_^]`^Wa^W\V]aY\`d[[^f_X_Zb`_^[][^h\\`_ac[`i\cb]Zb_Z\`\[apa`d^aYa`[XbZib]Ve]fbfc^Wccb]\_[YX_a^[[]W]d`c]^c``[aa\c]][d_XWaaa[j__ZX``p_^][[dXih`iZ]a^X]]ZX`Z^\S^Uc]]g_\a`^\`Z`^^c^]a^^a`___a\]`^_^cZaY`Ya^ad^__]\`bY^`a``[a]b^\_cb`\`^a`^`a\]cabba_`^^a\`\`\]_a^Z^_\a^_\b^ba_\b^]\c``aeYb^__cc]_^^_bb\^a]W_^`__]a^e^d[]`]\_aa_\_]_]^bX_``^[a]]`d]]a^^d\`__eda`^`[a`^`^[Q]cb`dX][]caadd^_\]X[][a_jWXc[Z`^U[[_^_^a[h\aW\_VUZ[deb]Wcn[aYa\hS_a\cXZY]Z[a\ab`Vc_i]b^XW[_`e`da]_[Wb_bV_`Zd\aV`]gZd_f\`_W]^aZ]Zn[^U]c`]VW^\_YX^bWU]`\ddb\^\WY__V[__VYeX`^Xcan_Y`h\`]^Xbg[R\_S`Xa]`baad\b]ifa^``^_bd_]cZUia`bXj___bah\d[[aa\^[beZd`Y^]`_fhafd\Zb``[ch]`ZXaadZ]a`SYi`\f[Yba`^f^a`_dcY]eeX\^[fb_ee_bZba_aWaYX`WbeUfVc^Xa_aYd^_do``_e\]d\XX\[_^\^\X`[^Z[__a`]`Vb\\]`^]TgZS^[d_f]\\]^bW[a``[aaaX^Z_abWdaZ_aa\b[d`[Zd_c\a]_Z_]a]]^jaYU_aa\^^]]Wa\eVfaY^_a`b][f]`__da\_ba[`a\^]\_^Z\^a`_^`_[[Z]]``Xg[___c^`_Yd`a`\b\afk[\c]_\\hd[]adZ^^`Sa[[X`ba`_gabX^Q[XV`_Z^Xhc]V`_Za]\c`\YYjZ[d[[`^a]__[cb]Ya\^`Z\b_Z[[\_\dZeg_c^^\eb]_acY]_d_\]a\[__dc_h\^^]`]d\_]_Y^a]Zc^Zdd_[^^]`edYa]c\cebaf]bXYf\b\cb^c\`a^_aaibb^]\]ca_^hcbd\[Z`^]b_W`]a_ba\dghfa^Zc]`g]b\a\]][Yaba`iVb]`e``b\ddX``deb[aYb^a_`\[]\\e\_Z[_c\_^^Z^a_]\^`\b_]_a]_[]^]^c[cZ[a\[]^^a]^a]]a[__`_a``Z^`^Za]__Z\b__\aa[Xc`^k^^\\b`cZaa_^ZZcXe^]^Y`\`]]b^_[]b\`]\\]aga``cd]]^^]]aZ]b_b]^]]\\da[d``^^^_^]^\\`Z`\a`]Y^]Z]^^\d^_c_][_]adbbg_b_^\W]_c[]^fZb^c__f^c]Y`_]`ba]\aV_Vgb`c`aY`[]_c\[g]]a\[_V_aR[``_da^\^a\Ub`^_c\[c`I^^^]g^_d]acaYdaU`k^c`a^ac_\=f_\^[_b__b_e[^^``^^^\]^_f^[Y]X[aVXa__`d]fa[d^]^c^bca\aY^\cZa^`YPaa[`\a]^^aRe]`X[\`_^a^aY^^d[Y[`[cZ`bc]bab\ZeXb_`__V`^^\\e`b]_`Z^db][\d\a^Y\`Z[`b``^]`hY[_\]XX^a[`jZZ[c\`_Z_a_a^Y\a_]]]_a^[\^^]]b_b_\c]a_b\cgY_U_jZX]]\dc^b\^``Yc]a^\^g^`__`^d^_\][a_c^]`Y^\Zc^]_c[a^_[c_ch^a`bW_ZX^b[cb]^cX[[Z[`]V[d^XZ_]^]fbZc[c`d^`_X^Z\b^_T]difeJ[[djZadkia\c[dbaac[b]^i^aa`^cS6cb_`cMZe`d[YVSr^Z^Wbi_Ydc]]``gbb[_]_\Y^`O_^\^f_]_[^\^`p_a[`bgnb\gZ`[gRf\W`j\^j_\^`c_a`^Xaa^\Z]Ya_Rc_]_[c_`_]]aa_^c]][]\^Zb^^\`b_c\]b\_]aj^_^e_``__\^]gZ_c_^aZb\]`aa[]___aZ_`]^baba]]Ya``]b`g_`b^]]^b`^`cb]fb^[`_\][bd]__^]e]d_]^]aba[[]ZcaU]b\]_`cac_\_Y`_a^`c\_^Y`[b_]]]]Z_^[\]`XbbbY^ah_^aa]]\a`_[a^_Y^_c^b`Ya^e`\cX^[d_iZc[iabc_j^V^_\ZZ\]^bdZ\Zfcbb\b]cf[iaf`e]`c^cW_Xb[\]b]a\_Ua]_hhb]jaae`aa`b[a_`[aha^i][Xga``be_\bb]c^dW\hY_^Zdgb`X]``Ve``Ya_b`[[V_\ejU_`_`Y\cbYdb]heZ`cgY[c`Y\g|Z_da]gd[^b`_^Z\_]\_^]^]`__Z\_\_]^]c\_^`_cc`^a`_^\_Z^a`]_Y_\]df`^^_Z^h^^`]^]e]_b]^\^_]``]_^[[__b]^^ba^c`\\\_^^\]_``^`]^_^^[`__c_^`^^_]\]`]`[`_a]`]]X_aY]a]^^]_^^`^^b_]a__]k\`_c[_``][_c[\`]_\\^`i^]]_^_c]]\d_``]_]^dZcdg^W]][Y[[YYn]\N\RZS[[[bVZ^Ua`\X[a[YXb`]]\`cc[PY_`^b^`Vb[fRcZZ\_VZVZb^^g^ZVY`c\RZaa[`bU`OYX_cbi`W[]ZX`e]j\YXaZYedhZfdU]aX\WcUWcZc^c][UV_][X`_ZZOo[[Z[\W`^`V_WabS_cZ]ZZ\k\^TX\Z^d`[aX^[WadW_b]jY]b\Y]d_cfRe__ZY[TaSbgeY[ef`]]e[`_ef[b_a^_`_]]nQc`_`Z^afV[hcdaebbd[[ceZ`e`Vkb^f``b]aic^abifZ_k__iWa]Sdac|_^\]hd]YT^ecYbb_`]Te\b``Xc^aT`ZZaUbef_^V^Y`^U[f]b^\bc^^UYbnaZg[WZY^bbeidi_`]^VYS[`e^RZTZLVTaad`a\UbWbe`_]lW^edMXa^__\]^]_^eciSaZbY^]^acfYYa^b[f]YZb`]cc\de^_f]fjdMV_O^cW\aladVZYfdYkZ`biYf]VbQ^]bb\YcX_fTefUY^T\^_aadgS`Uag`[X\V]O\[pb_\gcYfY`bd]^dQ`]VecR]U]`f\ZQ^XY^\d_aW][Xg\X\bX]]`_][b__a^b\_c]_]aZ]^_a\a]_`\b^_Z]]^\`^\[b_bca\_Zd^___]``^W_`^`_]_b_a]aZ_]\_`\`[bbb`X^_`j\]a^\aaW^_Z^a]b^`\_]^_b]_]]]^`\_[[`\`Y]^f]`da\]\_^`^^__`\^\[b\^^\]a_]\_`a^``^_[Z`^^Z_[^^\\\_aZd^]^]\^]`ccUZ[\Z\Z[Z^Ra\]je`RalZdcbUac`S\Y_Z`Z`bZ]\cbi]Z\cbZoYfbRTfmY^bVmbdWdb^^`^Wy\Wk__ck[`c^bd[Yc`[b^]]V][amTe_dSai]Vr`dWX_`h]YVXYj]QW[TWi`^Y[e^\hVmY_]X]SZX_]sXb`[ZQ\baZ_am[^_\`X]auaYa\Wdj_]a`S]cZ]V\l_XcUX^Y^^^T\`amVk]cb[bYS`Za[QWaUVW\f\W]_b^aS]b__cZm_[aTop_bgeli_aX^_^WVab[\hZa^a[\\`g^UX__h_\f^_P_cWZgY]ZclX[`b\b`\l[efZc^dY][]TfaeW][k\_\^fVa[^RP\\]d\dcdZ[YY^[bYa`_l]e^`T`^ZaY`\\`ZNciYYdc_`b_YWb]WcZ^bb_`][ga\d[]_\\dYbaage\d\e]N][cYb_^[_SUdX^Rnj[cdgd_eje^^ZdVkX`Z^YZY``e^da]bWb\ZbX\`iYY\aQc]_[`T_acW[`Ra`TR\ahZVd]d]eiY\[e^[^\d[Yc[aaad[`b`a][fb`X\acU\_]^[^la^Zd^eh[TZ]gWWWa`_nZe]`_`[\Sf`[_[i\a`Za]b]c_Zb`V[dg_fb[W]bab_^]h_]`^]a^`c]hc^Ub^dZ[UW]hZ^^Z]ZVe`TYb`h^a[dY^]dc_fWYZ]feY`^`\]f\Z\hdb`T]X^`c`\P_Z[W[_a\e[\Z_bUaee^]]YTdfZS_eTbg^_[_\^^\_ada_]^eh[V__]ZVeY[YZYaX\\c`\^^gb]^[b`a^[k__[k_VjbZZc`_eZWbX\_MjX\_S_WWZ[^U]Zg]\U\Z\cW`Y]b]Z`[btbdbSfb]oc`^iX]f`ahb^Z_ZfVf\Xb[R]\]\ba`W][bX[fXYR_`\Wba\b`fe_^]cW][d`Yic`fXZ_\dVW^msVaZ`[AVY^bchdh\ZWVcf\beZVgc`ccbhb\aZY]cZ`Oa`T\dc\[^c[\a`_cX__XW`^fbfZ^_a\cYd^ZZ`\d`Z\Zb`g`\bb]]aaf`bc`e[h[c`Y[Xf_^c__Ye\]]\``dZdZa\_b_[a`c]bb]_]b\]aja`[^a\e_a_ac[_^]Z``^]b][a]]\`Yd[_[bc``[Z]_aZW_`ea`X`gd``_b`a^_^__c[a_b\`a^`]^\^]_fbaae^[_Wb\_X]]\`\`Xg]\]Y\c^kZ]YeiV^a\]UZ^W^\^X^\d`afa_aW_][dcc]]XaX_Zp\[Tb[[`cZoa_af\_^j`id_R_eTgV`^b[\X\`\dba^]Ya_\`5]aZ^U`^__W\`bZZVZY{Xc`ebgbVca_`gea_XbWYai_[Xn`[Zg`VUUYaf_[Q[]Yh`Z\^Tb_Z]UX]`ZZ\bXY`]a^]`Y`^\[Ycba\aaba^_Z^[[\bbaa\Vh]g_Z^\_^a_ba_`]]aed_\^Ybbd^W`[^^U\\_^b_[aXbZaa]b]^a_^aZ]b\_^c`[_]]^\`]\[[\^i]X^[c`_`_[f\bb[XdZ^[a]e\Y]c[^__W`a_X\_]^__]\YaaX\]b_`c[`_aU`^Y_ccZ_^`_Y^b^^cZeZ]b_bb]eWcdZjmT]]YecVab~[a^h`V^cVYeUeObYe\ad\aaZhe]_[eZSgZYfen[`an\bY`]a`n_[ag`]\f`i^Ya\chVWi\lWXX`awX\baemcT`dI]lleino\^ZV[`iVWa\\\WpaajcgZa`^f]`n]e\N^Zh[X[a^bcZ`deZ^^b\[^V[kZbbYe^\Wfk]WddbOk\g_e^g`^\bb_\^ac_`^Y`\`Wb`^`_``]abb```^d]_b_\a]`\_ee`]^a`_]b]^^`\W][e^__]a]dd^\c``_a^_b_b\^cZ^a`_`b^Z`^^^`\_`^aa`Za\]^c__`[^Z]a`^`_fh]]d\^ea`a_^]`__b]`cca[f`]__c]`^]da^^^^abb\^_^a]^^b^^][^`__\]^_[]\Yc[fZ^e^f__Z_W`^\^]]XhZ^a]Xae`ia\\`[_eZc`ZWXc_a`b\ccY`Y^]bab[Y\^]]d^a_aZa_a]b`^^Z^]\[Y\[`aa]Z[c[`a^_]dZY^\^``_`Xc`h[Zac]`__]__`^Pgb`_`cf]f]^UaZ\b]`a][kbb]`^__Z\\e``d]^baZceZ\\e[`XWe_\^__cc\rc]]a\X]^]]^[a^]_`_c^__]`\`a_c[`ac``Z_^__[`_]]acb]__Y\b]\^a^[^Z`^c^bb][[`]c^eY^\^]aac^]`_]a\[`c^Wba`d`]b`dd_]^\\W_^bcaba_^c]aa`Yif`d_]`aa]`c^\fc`^c^aak\c^c][^^a^]c]\_]^`^\^`d_^_`\^^b]_ca_`db_`]^^_^^\`[_a\]`^^\`]`]acd`\`abY``a_`\]d\]_]Yd^_^_e_`da]\beaY\d_`b`cb]^^]]ah[]^c\a``fd^eZ]d]_bM_\`^Z^^j`[_ead`][a]`Yab]cc^T_`\bb]XeadY\c_rW`a]\ea_YeY\\]ZZicaWd]cd]^[_[`Yd]\]bc_\[WZcf``_[Z_\_\^\^bZe_`_`[`_`Y\cWc_\^[d__Xf`^VS]^YY]^__[]Z^Yc^_d`Q^^Z`Xe^`_dc^b_`Y_Z\`]d\`\l[^^\^`b_g]ad^`ZhXc_c_ZY`XY]_Zd^^]Z[`a\b_]Xg`]Xgac`_\Y_aYYh]]WaX\]^`^]^b^Y_[a`e`cZ]fbM`dY\W``aW_`_[_\cY[^`]^Z\\]^cY]\a_\_a]\\^Z\a^Y_c`b^cg^[^^ac\YfbbYbc_[]]^b\d\^dZ__aYa]a^[`]c]ac^Zb]\``]X]__\_a_f\Z`[^][^]\]b^[^\]\]^e`ae_a[]f^^_\\b_`_^Z`Y]a^_^\b]]dfa[`Y\Y`a_b]c`Y]e[_^eade^ca^bY``a_``]ZZ^h`^^__b`ce`\_]\`c`^``_]]]a]eWiZf`UeV[\]\aT]\d^eX`d]]Yf``_]b^`Xhc_bbg^Y\e_bWWf\ed\X`_\Wc[ZjdY\sgfbhXcaL]tia^Zgf_jX^Y^a^W[\aUdYTc\gbe`]_[S[[S__f_XaY]]_g[fq^_fZV\a]ajiWhRvjYfefWSc]^bg__gY^Ya[YX\dWce]`[]d\`_b`]dc_\YSceWd``[]hci]^Yc_^fXZaZU_\bW[aZSc^^Wa^]X\]^c\d^`^X_[X^``be]_kbag_`Sbj[YX_acX\Xa\Xe\\b[cY^aa[[c\Zb`hdb]`bbYcX[XZg\[[ec^UYX[]h\[Xc\_`^\dRe``^bV^YY`d^f]a^^XcbhU^cad`S[ada[`Y^_\[]d]^cd\_\[cX]Vc]ZY^`Z_Z_cbd]b\]\`\b[a[h[^`Z^adb]^c_\^^\^Ycc`Y^b[_\X^^e_c\^`^[[aa\aa_`^_a]]ce_\^^`a__^^]c_b[[`a_fa^b_eYh`^aT_Z_bc]``aY_b_b_[[\_c_]`c]^`]\Y`bY]f^`_Y[ea\^^b[[`Yd`ad]^baVd[`_d^_h``\ah]`]dgeZbebbb]]^\db_\\\b]bZb\`_Z\^`]`bjaaa_^_b_]]df_a[``]dhb_`_aa`h_Y^Ya][_aZd\`^dc_d[c[aa[a^`_`c^^`b^cc^^X^^[a`j^\_^a^[X^a`\aY[ade^_b^]__f``_^`\\_]`\`Y^m_[f]b`^ba\__[e_^`\a`]`_]`_^a]]a_^\`Za`_b\^`^^^^]d[_]_cg`_^`Z[e]Vch]_Zc`[lYR`Tb\XZea`WZVe`X`YlVfha`_[_`Zjcb^aaZc[[aYY^efMOg^]]Nf`[ZZaecWdU_\YgY\_Yg`[]fhm[[X^cXh`gYc[iOj]p\U^[Z[_e_WYm`a\cW\`ua\aXXei^aQdfZcYee`aen^^bdd_Zb]a__]b_`Rd\R`]hYacZ\^fWeV`_je_dneZZ]]]Yaa\^a]bZ`[_^]^_Z[^\__]_^^`a^^_a^^^Q_`^]^a][Y]]ae\a^_^d_]]^h]Z`_]\__aXa[c_aa^_c]Z]_Z`[`^\e]\a[_[a]a^e\[]c^Zaaa]a_a[^[`a_d`b\c^[^`\c`aa_]c`[]\]_^dca`]_^`^ac_b^\\`[_Zde]Y]c^\Z]ba`Xb^\`b_]b__]^`\][]_c\f_\bf]a[^b_^c`bfa`Za[^\]_`_YhX\[Xa]cmb^c\Z]ac]]]_Zda]Z[`Xab__[_\c_^a_aW`c^^^^^Y]`Z\a^__]aa^_^c^a_\aa]`b__`[bb_X\`\[a`e^]]c^a]``\]c__[c][bZZc`f``b`b\bZ_Z`^_^be]c`_c^d`g`^e\`]_d_`^__`ae^e_\^]_Yc\\c_a]__\`[]_]]`cc[^i`YZ\_g`]_ZXa`]a_]]\[[`]``a_Z\]_\]\bb][_ca`]`ZX_c^][]_]\b`a]d__\`\^`Yaad^cZ``c\]\]^^_aca\Y\b_]`Y`^[a]P[^]]_Z^]d`b[a[^cbd_\`Y^^]bc]c[^[`]^_\[c__``baa\]___c\Z[\_[]_Yd_^W^c`[Y[]^b]ac``a_^]d_]Y^`a__^]_\Z^\`]^`\`\\bb[ec\`]`[`a[a\_`[b\_]aa[`\]f^`]_ab^][_`cdc_\a`]`a_a_a\[Y__^aU`aZ_Yd\]U^`Y`^]\b_\Vc]`_Zfc][^[W]a_]]`b``a^``]]fa]fX`^]^fdU[a]X^\d^^dZX]fX^][ca[]Z\`_\ba]Y]`]`a\__^a^`_ZZ`j`bb[^_`XX^^\\b^^`^]^[bh]]]\Z^j``Z^a^_bZ\]b[]]^_d^^[[Z]`_]]^h\Z^][^Y_\^[_[[\^]\`_\`][^_f^^_```^W`]\a^__b]a^]Z\i[\a^]\Xe\b`^]^\W^]\^k]`]eba`^_^^a]\e^a]`^dfa___]ec^][b[``^]ebdZb\abZ_aU_XfT^_ccZb_U_iXY[\_ac`b[^a__TYVcag_U_]^_fT`b]^hi^_[\cW]\nT\gc]]ij^cUX\k_YV^b]aX^dZfWW\`pW][Tkbame`bZga[YYae[UZd\d_Y`X\V[dT^e]e`W\Z`bdd__XYaW[f`W^\_U^YWb]ef[]a^]^\]_]\aa``]Z[f\a_]\g_^ee]][^b]^b]]`c^[`b^Z]d\e]e^^^_^a]]cb]ab`_`\`^eb``Za``a_`deaZ_`a^\`hY_bb_b]^]a_adda^bba_]d^bca\ea^d]c^]b][^c][b`b``^]`Ybab`]_^_]eb^]Zbb_`ae^\bZ``hZeec\^\__Ua`a^_a^^b^]__`\]\bm_^[bb`g\ab]faab^_^Y]__\^d`\^]]]]__aZd^^g_`cV`aY^]abc]^][f^^\e]_`[\[]aa]^gb\f`e[`V\[`_^_]c^\Wb^_^c^j^aa[Z^^c]_]^ad^a]bed\[]b^^`b]\^_]c^]_^caaY^Yb\T^^[\`b]``d_[\]\b`bf\_aZc]``\Z]_Z_a[\^^[^Z`VabjaccaZ]]ba_d`_]X\[fZ^bb\[k[Z^ZW[^_ZgWc\[\]a\]d`[]aa^h_`bZXf^\f^i\abd`ib^Ud_X_a_[[bad`\`c_]\g[YdmY``c^Vi^fb[cZcfSe`W^\Xb_`]e]YXWa[ed]f]^]Ya`foaZ`]][R\\ZZe]a\`a_b]dci_ecd^Xh\Wm^[`\`_ZfWlZ_cWdUedpgbc[d]eb\Wbce]Ye`Z^[bc`a[Y[\[\_b`[\\aad[V\_[[bZ\]_b``eX[\`c\Y_\\]]bcf]bf[\Zj^^^]a\_\^\WYc\V\]\g_`[a[_b^\`X`Z\\_]_^`d]][WY^_e]baYP]Z^\_]\dX`^Z\bZ_X[T`^^\Z^e`[[Z^_a_`]`a`be\X]\eU^`^^bef]\X[][`esa\a\]ce\d[__`d]\^af\NcZXeVeeaZ_d[o[[W^XbZeL^XjdTY\\g`Wy]\\kXY\ei\bU\Wc]sTTZ_mcYL\U`XX^]m\RZ`]c[`^Z_[WYlWV`]]cYce]`^mcQXYH[_c^]aZ^_bg[\_cURd]]VTmd[V_V]dX\Y\[dYmZYd[jVf]SWbc[\W]j^U__VVYT\`\mIeaZ]UhY[XUaXcb_[d`X`Ub^]`\a]b`[WXYbY]\Z_`ZcXW\gYa]Y_cZ`_V[Ze`]_\b^W[_\W\]jiS_`][a]_]\c\Yec_ZeWbYe]`]`^\aWaZ_[_^\^Zaed]_b^[\d`g_\W]Zd_[bO]b[c[fa`[bh\^YXb[]XX[V]XZU`T\ZY`\[Xbcj\akbe]c]\gX_i_gf_eaaY^\[]_aZ\Wbb^V_dbZ^[c`]\_g[e^baUdUdXc_^Z[_d`]^adf\\__X_bacXS_d^YVS]\a^S^afQt^Vae`g_WXVbZ__dSaY__aZpc^f[^^a_]``WWUdZadXf\P]]]Vh\^X]]ece^gV\_f`gZfcYDYdOZVdY^[b\W_P`[eo]X]Vi^k]aW`]a`^ZZkZ_\_ZW_`kaZq\UYaa_ZcZc\XSfZ_egW[W]XbhXOcSeW`\U[i]bggaXa_a]][Rkc^`ZYUebd`c\`e`b^beZ_becibS\]XZY\Y]SR`ZcV]\b\b\`d^_gahZcbc__b`geWY\aV]Taadak\`bbW^ebYT`dbcT`]R_ab_^`]dad_SbTcbgebg_`_e^^fMda^`fW^_`]\^eUd\zUbdZ[da]]^d[_\X]fae`jY^S[\ZWd\WSaLT^]\gWfbc^Zfditi\]e_O]Id_[e`aYYbdjj]`]YbfndZg\lYd_aae_cZg_bYdl`_b_cf[_bdXbc`b]^fTaMe`d[|^YY^V][`aX]]aidX\XW^afP_aZdveU^ek_aKkXg^`WW^_gocbfWVdbXXb`aczbj]U\Nn^m_\\W^^]][]bcbgbV_^_\__aa^]^]\]`a]_`_]^^]`]b\Y`^`b``_Y`_d`^\a[`^\]\][][]\W`]e]a]]^`^]_`^[_`cZ\ac_^a\^`]_Z]T^a]``_bg][\a_a\cYb``^a^^`bc\[]^`__]__Yab\_[fb^e\gd_^`[\d`^\baZ`[_]`b`\\`Zg^]\^_```aab\\^]a]]\b\d^b^[c^^_Xa_bXaZc`^]V_Z]b`_Xde\Vf_]]]`]he\bd`]_^Y```_\Yaa^`bZac^b\[_[dZY[`Z[^ZV`\Z^h\`Z\bc`dcfb^`_Z]fQe\e_d\Z\]b_`]a\\\Y_\VZb^`[iX_[`ddb_Wc_]aZYYa`\[X_VY`Yf`\XY__`[`a[d^ga_\qZa_^e__bd]^c[c_]abYV[h`^^_]kc`_``d\^bfb`_\_\^\]_`^^[cYcY[cb]]c_^`^`_`b[_^^c\^[b``Z^aS^^]Yec]^\]_Z_`f[ba^b`[[^eaaa_c_c]^ci]Z^cY_a[_c^b`a^a`]^cZ]]\^_\d\dc\c`gcbd`dZ[Xa^`\gf_d_Y_ca]]c_^\a]^]Y_a]]`^e`]g__T]][a`^b`Y[]_\\^_\]_^``__]`eb`bY]]`^_a]Z`^`ac_``]c`__b\[aa_\_]a^bc^k`_]c_b]\X__ba]b]Z\``]]ca`^b[[d]]a^[_`]d\^^`]^^[]\b^]c_^bc`_X_[`[ab[^`a`_a]`_^]b\`cd`[cb^c^`Z]aZ`^``a[Y^^_`]_bZ_ba_aZa\^__a\^YY]\^[^\`c_Y_`_e\e_g^[VT@XTW[Yh[^fPfiZQhSeVndV_WhejeYdO\[D\YZd`Y[Vi\^f]eW\ck\Wd`tdW^Y`bacZYjc]PndN_efUPRbY`]i]eWahTWBHaa`_b^i_``G^Y]LN]ZY[e_]hed\ZZc]Xt]]aehcd[cWd]S]\VdXlfebZ[\iVTS_W`mddeZdXmeQj`]XdZd_bW\UXdZ[d\_c]]``_Y^h\b`^f[h]j^b_bae`\aaa]`_^\`^__bb^^\c`][Zae`^b[`]b[_a[[_^^cf`a[[c`\_]bd^Zaab[`]^Zf_```cb^[dY_]^[_]]^_\_]_\^_d]a``^e]a]`\af]^`d`_da\`_d]f_b`]b``d_]d`]_db_\bb`_`\]]]aacc_\ej]Z]_a^``[b\_fg]]`_]^]ZdXXi]_]`_Za^[\^\j]\XZ[a^\^Ye`c`]^abc_[fa^^[a`c\Zd`X`Yi`]Z\[`\]^^[]\aW^]a`Za^a^[^_\c^^\_^e\_X]Y^_a`f^_]`^`]m]^d_^[`b_e]gS]_XZZ\]\_\^cab^l`_a_[Zeca_]^\^^a_[a``^^dcYX]f_aa]ca`_`aZ\b`[gWW]^P_fXTdhh^`fl`N\O_e_^RUH`degVT\Z^gWTd`UjP`\^WX^_q]aY_NgTRj^mVXa_ceaXmbY\^gYYh`kMR[[Ka]bZ\[]_Zi^c\dRWcOZl^PWf_[`fuYcZabV]R_^U[by\aa_`dW_Wlb\a`c]EcX[XfcXUW[eK^`]bTk5V`\_ZfXPB]YZ^W^`^if]V[YoV_^``_`^a\\]e]_\g\]`\b```[]Za_a_\Z^_baZ_`__\_Z\`a____f]]^]\Yc_`]b[``]a]Z``\^Z][``^_g`]c_^^d^`\__a_\\]\[a]_]`b]g^]`^`^^\_Ya_]b`a[^_^b^`W`c[Za_\`Z\\b^^\Zaa]f[[\]]^_^`_^]`_]Zc^][\j^a_^\]`^c]`]\`a^Y^a_f_h^]YY_]j\\_dbY__a^^]c]Y__d^[_[X__[R_Z^_]]X\Y[anU`c^`afXZ`\W\YZ\]`\Zc^Z`Zdhb\cX_`aV[c_]dYkW]f^b[^f\_]_^bXY`^Z]\`^Ue\]\]Y[`_^aUbf\\c]Va`c_`b^bg_ba[\`e]\ba^X^d^_dc[Y]`c[U\^_`_``S\\b]d]``\Y_a^^\^X]`][`a_[d``[[^\^Y^baa^]_]\^cacba\^b\b]^Z`^\]bb]\]a^`]`a]]]c^b]_[\^^``[a[^Z[Z`\Xda\]cY\^^^Z^Y\_```a]^ed^]c[`Y]`^\a\^b_a^^ae_k\aY[]`^]cd]_]a`^ba_a\d_Z]\acb`\b^]\_i]^^`__b[a^_ZY]a^`]^[`]Zd`b^__\Zi_]Zc^_XgY`^de_a\Ya]]Z_b`e\^fb^c\`baa]^^^]_b\bYeY]\^diaYb\fZ^\bc]__^d\cTcgcae_X_Z\a^bbbZ]_]^b\^\ec\[`Xa`^]^eb[gZ_dYdbadba^dc[]]db[^]c^Y[fV^`Vcia]d_h^Z_[_XbZ[dZ`\_^^\^a[aa`]d\Z_^[gaZc`[^ac_h]ba]`i^gT]_\\c]`Y[^d]ai[[_ce]`^__a^jaYUa\Z\_iYR]bTYeaU_WTeWedaeZZZi``bY[bag`_f[W\h[Z`][\Z_^\gZ\[\_^_dcf`U]Zd]h\^gZZ``_dffY_kbSf[`b_^d__ZiTd_`hglb]_^d^\d[_`\^Y[`cY[dd_\[^a]\\ca]]^^]Z_eUZg]\`][gafcbgaV_ZiWeTb^a][`V\aa^_Yc\_e_eWYYh^T\[e]cXYe[Y`aa__^[ajf`iYahefiRZZbOfZ[R_[]b^f`dZab\Sd]bb`][`Z`^ac\T\]WWe_b\ld_pf[`][]YJi`j`ca\_a[ebU^jeYe_gXPa\bX_fmW\q[[_c[Zak_a_]`[h_b[]ecw`d^Wea]Yc]]_b_`[^_____\\cb[^d^\\``]a]a][\```]_\_^^```]b_``[_^_a_b`^_Y^_^``^a^_`]^^[]`aa_\`\^`__]^__ag^^aa^ea_]_``\`^[`a_^\cabcda^_]_^\\]^aW`a\`_c^^^a]\_b^\_`_^aa`b_c__`_d^_c[`ca]]_[c_`^bZ^]___c`_\b``^]`a`]ae\^b]`^a]_Zacb^a\]\\b]d\cbacb[Z`[]\c^fa[\\[^ZaY_\da_bdb^V[\^_^Za`]^a\\``\a^\^c\b_^_Z^d]a\_[\a`b_Y`_e[[\]b\^Z^[b]``\g_`b][]`dbZZgc^^bbaZa_Wa]^Z_^\^Z]Y[ab[daY[ac^][Y[__^][eX]`^\U[\]]^c^]\c]^_`\[^c^c\`]bbeZY_ahY^^e^YfdYVYa]_Yb[]]^d^sX^\_bcXbd[bYba]][_PbW_\\a_XWb`Yf[ccX]^b\`\e`^gef_][Yaa\c]Yee^]d_h`V\i]c_`_d]Zb`aWcjia\dfa]\]k_[^e^^]\caeZYd`b`cg^b[`]a\`^Y_da\a^_X\a^f\U_]cWa]aagg``ZaZ[[`a^b`W\blXX^i\WjaaZ`Z_[X\icec]ega_b_]__]^`]``[\^\ZW]babZ_Zb_be`^_eZY\_cU\Zaa_hV`\d]UZh\geY^dc^ddaXPaU`]J`\XZa]a^[hi`^\b^_`eab^cWl_]Y_`]]aX^`_Ue``Xg\`\a`q[[d]_Z\XcZ`b[h[cgX`WLX_Z^fa]cb_`\W]^`]^_^[``a^]a`^_]e[`_\a^`__]Z_aZaa]a\]^b\]de_b_c\Y]]`^_][^]``^\`]^[\[__a`]_aa]a]\`b_Z__^\[^b^]\]]^c^`^\^a[\^`\]]]Z[ba^\`\__^^^^`dWZ^b_`_`a^`^`_`cT`\\Z_a^[_^b_a^]^\b\]\^[]^a^_]]]\b_Y\\]^^_^_``^c]_\WcX`\ed^^`]_\]``^^ZXXaf_`bWaaa[ga__X\a_b]]_`[]Z_^[]Xca\e^\\S`e]b\]]b]_^g``baa]e[[Z\_ccZdbdb\X^^c[\cY][Y]_bbb`g`__^_``^cc[a]]XY_^^`de^`^^^bb]V]^\d^`f_^\bf^\c`g[Zd[_\`cbY]Zf[^e``bfe^[^\e]`eab\Yd\`Xi^YZc_V[YbJY[bae\jaXaZ\ibbb`ea^l_`dZbeU_jabUVe]^eXX\]bN_]lp[]a`afeXTg_^^[maaaf[[jc]`d]`]ZVZ\]e[^\Za\_eFZX\^]``SbTcb\o_^bhhXaeY``j[]]W_`_bcZd]bXX^dS]did`\d_`\fad^_Yi]XZYa[_h`[^]h[ddXca^^`b\\b]a^Y\\\]hZf_Y[g_^Z`^[c\W^dY`[f[_ed^``^[U_fc[]\^YW`^[^bdZX\ZVe]]W[\Y\_d\[]`^a[_`egbfX^b]b``]_hZ__]a\[Y_^_b\bZ``_`\ZZU^_^_[Ya``b`X_b\]\a^_bc\]`PZc__\_]XcZaZ[Y``Za`^`c[X`_^Z]^lhf^`^b_b`X_Z^\[]_`\``]```dc\b\f[a\_dZ]_Yh[^W`\^jXZ\bb_]][`\^fc_^`SW]fb\\e[YaW_\[]d\^_^c][ZcXcb\`Y\`\^]_\Xd\d^\_`]ecXbab\^^\_`Wf[^c``\ff]^^aT]bobY\Ua]jZ[\^^`_f`[a_Zjbaa[[cXbdbYa[Z^b\]eYZd`cXcbd_^b]^c[\\]b\U``_`]d]a^Z`eXu_m`_c^e_b_`Z[eb\Uc_a^Xc^a\[Y`a]Z\_]_eih\`WZd]]`eXeZabUZ\f`Z_Ya^Wf_aZ\d\Ve]VWbd^`bWbgcb]__\c_^_\\k_e``dabWYb]^___^e\U]\X[e\aef\_Z^]baaU^_\_eabj\c]Y_aagWe]_`]aW`[aab][]a^e_\X]_f[[Z]ccZa_`_c__`X`]k^]U]b_d^eY]fa]`^V`]h``^gdYZ^`\\Y[e`[Z[Z\``\cbejdZd`^g_bdWahc^Z^[\bX`^e][f^ai^]_a\_]Y\a_[\d^cQ^h\_bXg]Y_aY`lc[e[VZ\_Z^bYdW^bcZ\`XhrY_dfcX_aY_\ba\\___\]`\^f`Z[\X]h\ob_c]e^a`]^aU`eYYagXV`_`^Xc^]^laZccZd\a[^_[idb]cYd`^ag_Z_aa\[_eaYa^c`gX\][[ata[\_Z`a^h\]W[g^`c[bZ`Yef]b_b]b`bZ_W]X\`X``_\Za\i_gY^Z\`[dffaaXcZ\`XdT^G_]ZX\`c_[aWg]V[^aeZ]_Vd\^ZX^Z]Xd``if^^Z[]YV_l[_`cd_^aX^X\da[d_^\X_^]^abZb__a]^Y]^\^]^^]^]Z\\]_[_^_]]^][Z^[`\^^]Y\]a`Z^Z`b\Za[\^_\^^`]^]_]^]^]^]b``^[_^_]aW^Z`_ba[b^a_a][[^[\_Y`_^`a\^[_]Z[_b[ab]]][`]__`c]\]`^`f_ed``Xb]][^c]^]`]\^\_^^_^___c_]^_`_a]]_af[_^af^b\]_[a`_]faYZY]Xc_`d[ic`Z``Z^[]_\^bhb_^e\]Z[`^WY]\l^R^\[Xl]\aZ`bg`t^]^[YYfg]e\`^oaYae^]XWa[]`bYb]_T_eYWf]_`e[_f^\]X`cc[`[ddY`_X]_[a\_`e\a`]c^]]k]]TWe`YcZbZ\YUdYa\^ac^`Z^`VXZi[]`\f_b[^T`^_bd]^^a^_]]^_]___``]]^^^`^_]`_^]``^_]^`]_b[]]_^^`a_`_^^^b`_^_^]___^a^`_^]_`aa`_^`_`]`]^^^`^^]^_^]_^^^__^^a]__`^]^^___\^_]]^_\_]]]_^\\^[_c\^__^^a^_`\^\__^^`_]c__\_^___`__]\__^__[_^e^^^^]^_``]_]^a^``[_Z`]\]bbb[d_\d^[__]^X^[_X]]aYY^ba]_^dZ[_]Z_^\__`]\d^[]]`_\d^e]d^a__^g_b^d\^`\Z^a__b_b]cXbb^]^_]cabb_]_\`]]c_`d^Z\ab]^^b\]a`b]\_c[\`Zcbg]^d_^`g^ba\_]_c]^][^__a^\]_\]\b\Y`^]_bb^__]^``b]]ad`]Y^e`bb\Z_\^b^ac``f]^a_c`]c]aY]eabYcc\b^`_a`]]]]`_[a]]\_]^]a_^^_ga``^c]]^_m__``b_a]_`[cc\\]dcb]a\^``]^aab^[afdZ``__beaa`^]_]aa`_a]V\^b_c]bg]]_[[_beaaa`\a]]b_`_^]_aba]_``]`]k^a[]d^^^`d``_`a_^fd__aZZTb^ae^Ufn_Y^Xbaf[]SdX\d]j\Y]\p^\e_Zb[b\bfejN\dl^^ZJebiU^dN`iXbJcdZacY`dee^``[h_\Dehbfb]ebZe^c[f___cZip\Z_l^]^Z[Xe`dNo``iV]bRhkha|f^phda]]Y]iWYd]X]Sj][UV^]fcm[`dZa]W\h]b^Xs]bYa\^UbV\]i_Xd[ed[]\\]^\\``c`a^_\^\_bd`]Za_`_^b[[^]]][_c__Y\__bb`aYZ]^Y]\b__``a_`a_e^[\b^\]ZX_`b^`\^c\]Y]__ca]`]_]g\_`a\`c^VaZ^V^`Zc`g_a_\\_`\Z]aa^cbbYU]Z_]_bah_`\j`ba_c`[a_``_]Z^\^e^dYYZ_ba][^^^]b\[`]`^\b`Z`Z_cWe^^`_g[]V_\__a[][X_[[_``nk`fd`^cdV]Ze]\fbie[Z\`cZ_me[`Y\Yk`cdNd`Yja\[e_Wb\XZT_\[dYbZ[ZV`]_]bifah]a]X`X_aV\\UWZb[^cf`a\g][\`_cS\_aiaUT`\\^\[`ZbVf``j_e`X^^Y^ged]^\f]bc]`Zea]\cgeg^Y[[XaW\g_becY_\XUWaT\]f\b]Ufa\S[cW^[YYdjWU[n\^^_Ud\^^\Zg_a\_Za[Y[XWa^`bcgfY`iYcaX[\[`\b^`^[_W[]\`Xe_YahVW^ZTa[d[ZW[g_bbb]X_a[`\aXWd]b]hXc[]f^Z`b`\r\^a[]`YZW[_c^V`XZ^]a_V`\`Y]a[_\_f_d[YW]W_WX`^[_]X_nW_][dXa_[a`[W__^]]\a_`^_``_Zcbb`c\b]_ZV^e`_\^^]`\_`b`_`\_^[^^d\_b`_b`d\e`__^]]^`][a\\]_]\a[^Xbd_^^^]Z__][_b[^`[dZa]b]a`]Z_b\[\]_b[^_b[W^_]^c__^^^[_f^a]\`^Zac\\\]\`^\_Za_a`]_]`baaa]]aa^^__^a\`Za__]]^^[][]Vhcr^_bSZjgn_r[[^^WaeZc\\][VQ_[aZ_f`qYh`\ZbVcZac^`[e^`ZYY]SbQ_^\Xs^]cc_a]]chbaQXbWcd]dgZcg__``_a_We_XMeTeVef_[_^h]a`Yh[\dYeb^dm^a[ac_`fPUcZUg^[_dX\ef`[c_aeXWaXXV^PY^]bVoR`QZbX`K^__wbdgaZe``\d\^YZba`b_a\^\]\aa]a[a\c^^]^X\]`^a\dY``^^d\Xa]Y_^acaW_^]cf^`_\a\^aaY^e_\_W`\_[a`bZ\k_^a]\_ag___jdcc\\Wd_ec\_^j^]`Zc\^]aaa`cdW^Z_`X`]a^`be_]]d_]]^_bZ`[[Z_^Xa[b]fZbZ_aa\\_Z^]aha]]_c]b_aa_f^`_]^`_`Z`U\`Z]dcX_`cd][`\]pcb^Ybec^Y^[aWb``bY^`]`_Za]Wa_Z\\\\\[S_bacYb\```\_[Vb_ahb[`aed[_]^aj[^[\b_e`h^`cX_`eUb[gg^c_[ccY`][Zcgab`eWRa_Z_a\Z``Z]Wi^_dg_YfX[Zja_`YfdaS`a`^]_`aa^^dl\`\a^g^\a^`ZaW^dabd]]____ba\[[b``bab_^[]Z^\[dZ^\d^[bXfd`_]ZY_[]UZ^`Z]^][\daW\_\^df^e`ab^^^a_^^_f`[ab]ej^`\__`d\\`_aYZb`U\b]gYh]`[_^^Z\ba_a_b_^^]b[[_^`\`_]_^ce`]aZ]dcb`\c]d]d``Z_`Y\n_]aYb]egc`Wbaa^daa^eZ^X``\e[^Y\^aa`]a^[Z^ac`e`ab`^`\ab\Y]`ca__`^_]fa^Zb_^]VY]`^]d`cba_`_]]_e_d_`ZZ]aa__\`^^\`aa`[]be\c_]]^e\m]_[`bab`\``^`\]^_a]]\Y_a^[^\bX_[`[`c``e\\\_`c\\^bZcd^_e`bX]a`Za]^`a]a[bU^`]]_^Z\__becd__^a\a^^b]U[_g_hcdd^e`\b_``^c[Q^X_cab]Wdb_ab_^`_k`g]aU]ee\[ZZb\aheYUa_]jS]^cXYdfifca`b\gbbZk]`gbY^c\V^dda]Ya^]Th\^ZtVTphPac\\W`i\`Xd_UYefdgcTXba\X]_f_Xa^Wa[nc[fYX_]baja`]c]aXUeV`[[e]eRa_j`a\ZbafTag_Zbb]]`]\Y_U]^dXa\^]^^YeZ_``Y`^__ZU]]]dZ^]_Z`U]`]_[ZZZYY`Y^^cZRZX[TZcWabafbX\Y`ac]dd]_f_][dTUb___^`g___W^a`^o]s`_Z_Zi`dfaeWccaff_^cY[a`^W^`WZf]][__f_ce[Y[XVa^]dY\[d_]fkVX`Y^[fjdZ^g^ZdaV\^h]]c\[d_`\[cbcei\eccbbej`\]Zg\f^^`Y^cgcfh]j]^`ac^`d^^]bZ]Xb\j^^\Vfb[^^[]Odpb[b\_fb^Ze]\o[\eiaa`Ycic^ZWedYh][RdegcZ_Y`^a^Y_cZe^fbbl_feYbbgamaU\_]fTe\biY\f]cPfdY^bf[i_`a[b]j[`d_YX^]aZf`_[[a_\_ZfeZUbae^[`^`b^a[___gZ\X]\`dZ_]bac_[][[agUZ]bc[b]`]]`_^`_VY_\ZZ[g\a[]e_]\[\_ZV^^e_[\[[^d\b]^\Zdb_^^a[Z]dZa\c^a^^^\^ba_\`be^e`g\[]a^V[]]^ac^U`ccY[`aZ]^_[]b_c\c[^Y]S\]]W_Ta][^_Z^[_\_\`]``j\]]cbX_][ab]`YZac][_U_b\[d^\]ba]]Y]X^a^[YVR\]\^]\WT]_]db[a^X_]\cr\_\U\_^ZZ\c[YWV^X^^U]\]^lf`a\^c^cYZb`Y^b\T`\Z`h[^[`V_Z\]a`Y]_b^\\Z^XVXj[]`]a[^\^e\\b[^]Y\XUZbeYcY`^YWW^U_]Z[cd_]gZ`_\\fZV`\^Z[be__^UaZ`\dZ[]Y`]`^a`\Z`\a_Xa_^^ac^^]]_]c`g^`^d]]\`]`_^^_`a^ba^_^_^[^\``^```^^]e__a\[`^]c^a`^^\]f^]a`d__`__ab`ba_`_^]]`_^_]b[a__d_^a`\\ZZ`^a_]_ae\`__`Z`_[`b^^Y_^cab_`b]]]\b^^_]b_]_b[`a```[^_Z_ba\]b_^b^[^ad`Z_\_X_`^]]\\d[]`_aa[[_^_^`b]W\f\`\baa^_\]]^\__`\`b[ZZ^d][]`\aa]_`_]b^\[_`^W_^`]^]bb[heaZYd^^Q_\^]c]ai^e]aZYb[[\]\\_]`^Zaa]Z^_``\[Z^`g_b]ea^_]]]_]Z_c^d[[Y^]`c^Zca__^_\`]\Y_aX][c[]U^]]\___^`a```[ed[[hcba__`Z^aYa^[__]]ac__b[\Y\`a_d][`e_d\adZ`a^^\^\d[e]`]\`a`\a_bX\c]^bbZ]c_ad^^f\^Y]^cZ`\Vffa]^\cY][^_^a\`ba]a[Za]]a_Ve_ad_dY\^^`a`cl]fc_^_W]V^_[d]aX\aeY]Yedf_[`_c_ZZaY^\__[cd`^\dga\^^^_]_^\`\__e\_]X[[\`Z]]\W^_`__]X`\]^`]a`]a[dZ`YT_Y]_fS^[[_c_b\b^cb\c_Yb]U^^\``]aa__b\_a`\a]a_[g`[V^__Zb_]^]__c\\aWY]g_^^]]`abjY_`e]d[`^d_cZ`]_a][b^cbaaa_Y]dcZcY^c\`afb\a[bc^ZjV\_`c]c]ba^aab^]^^\\_\[bb]e\^a\^]]e\]cXa]e[`\`c^Wc]`W^baa^dc\aba`\a^^\^_a_`_^]^aX[bXb[]i`fY\^_a`if^^`]c]]]af]iec[\b\cY`_^`\_]_^g[ZZf[_^^a[``Y[b_Y_^`]^aiXT[b`^]`bdac\b]\^dd``^`_^_^^Y\^Zfg^_\`][Z`\]`[\]cY^^\ab__^^^b``\]`^_lbd_YcYcb`^k`^Zd^]_e[`b]^bX[_\kab_j`_^_g``n^`]\b\gVYeY[^fzd_d`bZf\`\_\g_ci_Z\mZ^`b_Zb]f^__`dd^Y^afT_bfa`bc]rb^^a`a[cf_Z\ae^_^fZV^_]Z]_[Zc]]O`g]Ve]]dYdYeae_`[bb`kg__c_[]^^WYcoZZa`Y\d`[]_b]Y_b`]Y_`YYa__W]fad[__]_c]]Ye\c_XcVZ\_^Z`eb]Y\`Z[b[^]c`cb]Ua`b`_`Z]\XZXe]e]Zb_X_cX\ba[_[a[bZ^^b^_be_a\]a\bXW[h_Z__]`Z`]]b[Za^_X[Xaa^\Y``j^V_`VWbaZ]\Y__cW]]be^__]d_a]]_][b^_[dce[^dR\]^]`[][\_eZeca\eZX^_\`[c^^b^```_[_a[`d^^a\\d_g^YQ`d^^]\]Xd_b[b`X``cdY_]]hbRRaZbW_V\Z[ba]ZS[fb]]_\ZW^gc__`^WaW`eYd][Zb`Ye]^\`^^Xc_]_[YU^bY`W\^a_\Y_[X_]a][a\a]^][e`_ce[Z\VW]_]_`c[Y^Z[^]Sccd`Zcmai`_X`Z]^Y__Za[^[\]`\_^^k[bd[[_Zb_\__]]a^dW^g`\^]_[_b[Xcm^\`W_^^acc]]_b``Z___da[\\^_Y__c]c_]aX^]\`_\c`[_a_a\aa]ec[^_c`^a_Z`d`a\``\^aX_a_`c^[X]\a\c_a\]ae_c\Z\_aZ][a_cc\e][ca`Y^b``^c]^X^a`d^bZ^a^a\[[ae_[b`^a[a\be\]a^\a`_]]__c\^[^^`e_`^Zab[\\]^_`[b_^_\\]Zic]\``e^_`_[_`[f]][^]Y]_[`_\]a__b`c[[Zf^a\^Z_e`]a`\d]\_[[`^[ad\b]``c``]]_gY]Z[`[_`]^_]Uac][_`\_\^X^a]b]^]]^_[b^^^^Z_d``[]]^_]`_^W]_i^_ga```d_\^_ba[`baW_^]_][\^``]a`__^]eeX]\^Za`a`_Y\b__^_ba]_]\_^^g]b^\d_[]aaf[acb^^_X`^\\Zb[\^_^fb[`\[^Y]aic[ZY[a\L\[]`a^_[\]Z`^^`i[bZX\b__`]\a_Z\[_^j\_bb]`^_\cZ\``[Zhba\a]a_\[\]VbZ[]]_Z]Z`\][bb`]bb`d`^Y[_b]]__]`^]Y_\`c]aa\`^dX\]a]^a`a]^]_^[]^`c\\``a^^^b^`a`d_[Yba[c\\d\\e]b__^^_cc^\\_^]___`^[c`]]^a^_^`]_]c\[d^_]]b^Z`b]a]_`_\]Z`b\\b^_`_^]Y\^_`__a_]\Wb`b]^_bb\a_X``^\]hc`c]_acba`[]^^`da]c^\^_`_^ccb_Z^^[]e\`Z]ZZeY_g`ndb\_hhYe`Zb`cXa^Vb`[Wadbea_]_`b\]c^^XZc`_heFX^WZW_Xg_jgee[jgY^]d`]GYg`bhcaS`fhaYl_am\_ad_^bZ]iaUmg^aa[nfokXeda\]ans^]ikXZf]ZbXcXd`^`Ra\`g`]_^`n]W\_]fc`ZcdX_miXMb[Zeb]_^eig_i[m__`^`]\dci`^\\ad^\[\[`_W^Q_\^fa\d\``ad]\_]Z^aUZ]VedY^\YaS_\[Q_`ZeL_d]_Yc_cbb^\b^a\ac]^[]ZZbd_Tbb\^_`dPa[gc``^[\b[[cW]^]a`]jX^eZcYb`kX]gfb^[]_`__\kh[N`\Yb^^^\[]Y]`Xc\f__X\[`[_\WM^`\f`\__b]\^Y_]f`]VbcYmU[Z[aZ\ca`m`e]an[k[f`Waahc[bWXa?`]jR`l`^]_Xi]jcciZ[de`^^XcZ\_`a[\XmURaagXe^]``eUd]\ac\Yz`ZddWe`g``h]Xf_[b`[dYjZbba[_PYcacc^R__raZcdc]ZVi`WZ]r^WbZid\aca`W^a^aZcUdf`dbgo]q\\V][]\^bfeeY\YYd\`a[`XeV\_bW^f\c]cZ[fd^YRcd_Y`cbb[^\`\^`\c`cb`Vb\`\_V[^Z\WSY`caW[_WWX[]R_dWb`aabb\\[X\b\afcbZg`^^b^\]^Z[dbc[\ha[^]Yc`]ZV^T\eac_]Zac^na]_^cX^\YbZac_eh\]_a_WYccV^aYZ_ZcZ^]\eaWeU_Zr]Y\pbY\]^a]c\\_aa[Vaa\]\^_^]r`c``Xe^\]]b\\e^\Xaba`ac\]^cb[_`cedeYb`k`][fbg]^g]]f[b]][b__c\^_Xa`eX\\daYi[]_]b\[i]h`d_ag[^c`aa_b`]f^V]g^\_W[dW^Y]d]ebYbaZY^`b^Sj`[a[aa`cc[\[a`_]^_Zbcfgd_`gZW\^X\\eb[^\f^YW`[X_]eJW[jhc\`cVeWag]XZ^g^[bX_afgaZibgZ_dZ`\ha]\X^c`_`a^a`ZYladM]Weda^_[`Xd\aja_kb`ZZ__]YX[^\_f^ZQ^j`Z]\ba\k^d`^\U[gP__Zk]^a`k^eZWZ``qT\\X[VbW[Z\_Yeab`]seced___U_s[WZ_U]f``^]aWdb[JYZ\bf\\bj`[e[Wbh]_[^_ac[afYb_\`V^YZ`XZ`\`Z]W`\g_]^`^]]Yab[a\e_]gae[bZdb_^\ZZ__^[]`^`^]]bZ][]```^_`a`_g_]^]_]b]_\`][a]`d`_Z`XaZa`eeaZZ[\]ab^bd`_f^[T`Xa\^_a^a^Z__X_[\Wea\_]\[[a[a\_\^_]Xc]a^_[[^a^\a`[db^Zaa_ac\`\^d_]b`^`\`^a^bea``]aa\[_ba_d[[_`b^\`^[_d^_h^\]aaf][^^]`bb^\]`_^YZ^a_^]^_\\ba[Y`a_b_b]Y[^\[^`][]c\ad`[]]^b]d__\]f[b[bea]ed^``__^b^^[Y^a_[`[X_[a\[]^_bba^Y_][][b]^`]`_^]__`_[c[\`]a[]\a\`Zf```_`aWaEded^c\YdVWdak]]aW^VE_Y]fb\USnY\^fgX\Ye\X^]IY]fUgYRe_^edXoZeXj>]_``[^`Z[hb\bVLb]SiaU[S\]Y_V[Xk`S`Ua[_[UZaecKaXaW\\mP[`]cY[^HcVabi^G`b`Z_b\dgYW\`bX^`^[XV`SZc^TVaZcdU\Y[V_Rga[AaYh`^^W`ecceY^ad]NWcdu`_`^gZhd\ua_[\_[S^a^hc\dq~dc`iXc__ucU[aTWXjaPi\`]^hZejdh`cIfY[\]{^h\_W__[\ddZkb]\Z`BYj[___Z\ee]h\Va\b\]b__P^af`g\adhRUj\fbbMT__ff^meddpi_Wbfib`a[]WbYf][`^\^X``_S]Uai]Y]Wfa^]]^mdaiUcd^`]c]YX\\\\a]]]]Y_a`[[]dic^b[_`^R[UYe__Yb[e^Uee]md^R\\`a_U_[de^beh_Nb^]b\YY[^Yj]ca__ag`dd\]d^_ke]h\X^bZ`[^`X_\_c\^fba\][]VYY^\dc^Z][`^XW_[W```bah_^YaZ]Z[Xa^ha_UbYaXVZ`[^`^b^^Qbl__R\ga[XT_d\c\V_^]^_`\\]bb_o[`^]_\\[]\]a^_[d][cca^`cc_dbY`d\[\]`]^bW\]d_c``X``\c\i^aacf\^ega`bY_e^]afc\\`c``_dcZ_^_^Y]dc`ha[`__b\__a`b^_`\\``Z_^Z`ZXb[\^[Va\[fY_b_e[Xc^^`W_\_`aac]e\Z]^[]g]]aX\\]Z]ed_b`^]YZ_`cbY``c\c`[k_T`aa[X`b[_^c`^aaaR\bb\_[]ZZdf]a_`gkc]^^]O_h^f`d^[e]aW`XeV`_^\`__P`[e`_a^k]]cc_ea^hc\]T`c_ge[\\be_a]e_]ba`cafZ^Zf^b\\beeWh\g[X_\ZUda^]_V^_aeS`k\j^[b[Ra`^^_dba]Va_Z^^_laaef``YYc_f_^eW^Z`[`V^baUTVWaf\Yc`ZbU][\^`\qdYb`^^_a]YV]\\[\\]Z[[bfYZZY\b[^baWc^e\Z^dZe_]ZhZc`YUY\X]Z^][`ZX][]d[_\_`S^^YWZYW_ZWcX`^bc_f[]`b[f^TY]eW_Z[c[_cjaY\cVabc`NiX_^\Y\][dYZa[`^`Y^]^^\[ZZT_[SZ^W^[]]`c`Zea^]^e_X]\c[X_]aZ^]Y_c`^f\dcb[^Y[]a[W^_\b[`Wbf`[__W`b`^a[`Za_P__Y[Xa_e_^\c`\^b``^f^_d]_c_bdc\W\[a\b[[Y__^\f`[d_ai^g[d^\V]a`]Z^adb^_[_aaZ^a[^aY__a^^aX^fWZ[ne\Y]b`b^[`a]^\aY_ab\Zck]a_][a_\][_]][_`\]c_c]__]b_[^a_Z``Y]\hd^_db\^\^\_\[_^__`a\`a^^Z_\cbcr\Va_c_eY]\ahYbac^\fbZVb_cgZf_se]bd_`\d\_[b[aTcab_]Y`^_g`c`^ec]_ana`a]aXaZVlaVV^b[]a\^^`\Z^k\_VbgZ]^fh]a^[Ti^\^cY`an\e^][Wbu^bi``ea^`b^[]_][^_Z^eYYXe^Wj\\b^[^Yc[]b]Y^eVbcaRgeZ]]`UYU]YcXXUYZfbb`T`]Y[bp]j^^d]ea[UW\]^\_`[d[Y`hcZaZVZ`X[^]\Yb`[`^]Z]_h`g`f\\QZ`Y\[YjYZ\_^\U^_SXc_`X__]Y\`SY][]aX`[]a]aa[\`Kn]cdbaWid]_fcQ`_wbedZi[]YV_g[[_^^Y`^^[h^`b_c]]c]a]h]c[a_a^___\Zg^[]ab]^\aa`^`]d\ade]^\Zf^d]c`]\b]Y^^a\_]_^`e^^aX`daYaaWaa]d_Y_Y\c`a_ZZb]`cc\R_][Z\a\[]a]Z]a]_[\cZX]`_dg`^`\\eb`\\^Y`b`d^_`a`^bZ^gcZbaaZUZXd]af`\a][gb[Z\]Y``W\_]`[_Y`aa[[dZ^d\]\`Z]`Z]`[bbabb[_\beU`bb_b_]^X]d][a\XW\Zd``\[_Zak^`_b[e\^a``_\[b[`bh\WhXUdY[`Yb`d\a`e_[\Z]^]_[_^[VY]\^_dV[e[^\a^\c^^\oYWXYa__Zeb\[cY_a[_\bZYbfab_]c^`\\[WkZ_ZbZb]\W]c]XZYY\]Y\b^^Y]d`bca^\_d`[gb`]^[]W^]]c[[cY[d^Vga_k]__a^\c[\\[a]]Z^\Wgb_a_]Fg_][[```\\caa^f]Zdaea_[_dc_db]hZg\_]_\b^ba`a`_aY_abc]ce]c_h^`faa__d^ch`^`m`cZfed_c_[c`_^de^ci^bUa]e_^\^]a^a^ff\^hc_Yeb]]__bbV]][^ajc\]W\\[Z]bZ^\gYdc\]\\[]]`W_U^ZhWa_c[ae]cc\^_][aabbV\Y_\j_\^_K`]eZk]]b\[ceW`]Z`Z]]][X_``^]`Q]Y^ba^_k[gXcVS]`][][d_\``_ZWW[Z\`XY[h_^cVb\_e_[Z[aW]_ii`fZL]]ZaY`^a^a\a[\\_\\`Z_\bp\aV^][]ga`^[^[_a`Y_cc^\]X^^_`]`_^\a\_\_Ya_Z`^\[d]\]bYaaa\e`\Zbaa]ada]`]VY_[\aaQ_][^Xed^\egZ\Y]__[_]_\[_ib[becW[_^[_a\_]]b^c__bd]`jZd_c^b[^bc`Zd]^^_^_a]X_a^X_\``eYg[[Y[cYZc^_V`a_a\X[]__[\cZb]fZZ_c\X`[b]\\b[e[`\[b`^]ad___[Wc_aa]Z^Y]]``]b^^^X^c^`^[^^_`_e[]`W`ded`c[^^\Vg[_f__b]`]W[Y^_]Z^\[YdZ^baY]Y_uiXabbYgY^]^^\pQ\`]a_af^^_`^c]YXVbaZ^b[[^\VY\`^`Zfa[i[]`Y`[]_[YWe^d]_\W^]``\][]^ab\__b`[[[X^^^[Z^d]\XcZ[_]\``dYg^_Whb`^]\[[aW[^aZ^aZ^_]_\_b`[[cbZ]`\]^bfac[`d[c[\`ZcZ]ae]]`[a]be`aehT[Yb]aa^^`W]iYaZc``]d][[]]U`Z\[Xd^|_aYb^`biaaa_d^Y\]dQ^a_Z\Z]b\aad]Z]\`_\[ZV]Xf]ZafY`Yi`g_d\cig]a`bSdgn_b]_hWd]beZ^\eV`^^Y]d]]^keZ]ZcY^``_ae`a`^]`\W_\f__\[\_]_S`[cfa\d^_a`]Xj]Sg[__WWhhZa\_^b`[e[]]^_a\^^`c]]U`b`ca^^a^i_]W]eadv\R]]^\]a_Y^b^Y_Z[]_cehW`_^cad]b`bahRa_f]bcaZZ_h^ea_bX\^[i``^o\]\Z\Zf^icY__ab^\c_\`[_Y`a^^cWX__b^a^dZ\e^kZ]^]__\^a\[bcVba[_ce^Y_c^`\cZ```dbaYid`VdSa\\^ca`[`\c``aed_h]dfeYb_a^]c_b]\baZ_a^bZaae^\W^]Z\b^eaa_\`ba_][`g^XaZ_`ci_^b\_`\_^a`[`\VbY[^[Z``aaX^_\g]`[f[^]Zd_h\]W]\ZW_`_]_X^^Z_d^^_`[aVTJ_ZW^d[XXV_V_NYVLW][RXic_c_\X]]_cc\OSZfh^WgVZeVdg_Z[_U^\XiX]Ve`iV\R\^^gh^^[[WMcd[fORd^U^`YWd^JjacVc\``[]]bpVW^d`]_ZZcG^k[cQ[de[a_]QYaWb[XWO^U\]X\WRQYtVfld]W]\jbaa_UafPYe^^heiZ[]]O^]U]hZjWbd^i]OWec]`]]aY_Rfh[Zac[VccOOdYQ\^^[[^Y]e[ZVXr]t]Ummia`[hYd[iRYZZSVdgN_eWUcN\`d_YUk`S[VeebiSgdXgecPOi_[efxd`Rb_XUdZ]gTfXZgNla\AabZbYj^Wc_FXedU]]_^ggcfh[]^eclWY^Zj\p__[fdJ]fbcY]edZ\QeYVbeQae\afVU^bgY`iYV^d[e^^Y]^]b]^Zd\_LbqY\Waa\^eeei^YTUrfUW`\`a\Y^Zl\WY_\gecRd`Yffc^glT__URYbZei`{ai^X^HgcZZ`LYh\g\aZa\d^_ccecba`geYR^_[i[Xei]YaaP[N^`dY`]h[X[]\ccZWWa`\XgahT\]UbeWe^aTVc[YY_i_e]g]SbW^fZ_[X``X[`bbT^Y`Sab][e_u_^`\eWkX]]`^iZ^Z`]Zi_g`\ba`bb^_R`Yjb[```b_^d_edU``Y^V\`bZ`X`mX_`[S^_]Zd]_`]Vhmbah]\e`\\g\_\\^[`[ZYacZh^Y\`\[d`]\a]`Xag\g]]aP_b]\Y^m\_[\bacYb_o]]^^[Wf[icc]^h`]_`aYZ\a[i`_[Z^d^Zd\dcZa]_q_^\_]`^^e[\^b__cYh^_bcYXga\Vba_cZ`ca\`d`^]r^^bae^g^_VY\T]`i\\_\i[acWaa\`eZcb\b\^_][cf[`cYYZedaZcZ^Y\b\bc`]_e[d`YY^bcb^b`\Wbjd]W``\`\__e^]\accX^V\kYVZd_e[[\c`cU\ae_`[a_VWa[j^\d[_XfgXZ`xZoYk\a]^[Y_d_Y`_\Ucb^U[[lT`]^b[^[\V]a\jrrb]ZY__^]i_`b^Z[^\_U[^aZ^cb_UPhaVle[b\aU]Z_X]aeS\hjaacLbF]jba\V\YcXagi_ZY]ZW_c_TgSY]]_^\^ZZa]X]Y^zy[gY]`[]`Zi]n]`^Q\^_d`bQZmb]rYV``^Z]ca`^^g`\\i``\^n]cgZZ^Yp^]df`]c]m`\Xdbc_a`a``^_]XYc`X`_bg\e^Ra^`[dcdc]bcZ][_YZfc[[_a_V\^]ZZb[[c[XZa`]`^e`c_ck\]d^rQrU^^e][WW_Zdj^[iYdc]]_ae[]UiX^VpkYUkc[\bjac[`[_a]\[]cbfY`^[[Wdac[]fiaZ[Y]Z]^\ZeZha^i_USdU`\_^`^[\dd`[^\U[dZZScf\YSYg`\]^^\ZYZb\^^O]^g[VcW]b`ZV\gcY^ed^a[^cc\`[d__a_cX]Wd[Z]]aBUa`a[YcwV_^YW]_aZdZ]VaZWbefa_c^__ZcaeWa]nbX^Y_d\\]j^\c_`WbY]W\_ZiZ_^eb\[W_`WedhXbQda_Wc_c_k_[^[Z\``h__i`[^\agb]`b_\W_`Y]^\]j_[\d^_]X_W`[_a[\V_[`\Z`_[Y\fabX[Rd]X]d_^W[R\__ZX^cba]_[dg^^`a`[egi\c]Ybce`c`a\e`\WZc`c\ae[Y\\[daW[^]Z_b_Ua`^Y\`kY^Z[g[Z[]`Z\Y^h]__`\_\`\Z`[`[f[ZWk^d_]^WfZ^\bYZZX]^hb]\]Z`[eU]]^d^WcZ\bZXf]`^WR]V^QiT]Y^NOX\b[]_Ya\[]YN]]`VW[XZTXcR^[RrWYU_\_ba^W^WaZZkaTV\]\_]YdfjcZ`]Wa\XWWcRi[V\a]S_Xca_a\YP^Ze]bY\Y[`Ua_[]YZc_WSZ`Y][`c]fTZ]\ZXeXPaZ[QZ_Ua_WV\MjYed^Ya]\W_h_^_g]V`\^bY_VW^i`^c_ca_a\aXb]]bca[_[l^]_e]`]f_ae\```__Z^_\b]gchl\_^i\[Rgcf\\`_af[Yfk]_]\\]X]Zb^bY^[[ab\`^Z\[Zif`\cT`^blXX[^]\c`\_kXf^^^_ba]h_UZ\\YeY_Ycaabb_\]^ae]]bec\^]dd^X^_[`]`_^bdh[][\^W\^_b_\dc^caT\YZ`d{]UZgX`V[`_XrVV`a]Zc{QbYX[hdeYX[XWba`\Ug]^^w}T^]b\\ZYZnVeQf[^]`^V[e`WZ`^Y`W]aWVgdco[X_cbW]`YVSY^S]Z_aaa_RuS\bQWrcbX^`W[GlMZenPb^b_rYW^OaZ\\GLrWaadVw}Z]MhcfXX]uj_\dYKfZ`fT]gma^a\sP]cK\\KWXgl^^]_s]eeno`VZW^[L]YdaneX[f`dvb^][pcTa\LYWn]R`Wc[^a`h[Xeb`Qb\[W[gac^f\b_T_\c]_YY[YhD]dZV\hba[i\V[cWaan[Vd[fL^_fYk]gjdk^Vg\emdSjdacdZ_fW`ohUS\`i`_iSb[aUlZ_^aUZVZa_N]RleW9`UX\][Z_]hX_\XkV^lcX\Td\`Xa`]^[_ba_geZ_\b]_Y^Z[SZcbb_cV`Y\aZWgc^[X_Za^`_^ZZm]\Y^f[Z`o^_\d]]ha]e\i]jZ[\_`_qY[_``_XO^\[]ZS`c_e_`]XWeZYZe_\Y_[_c]]Y_cRU\ecZZ^c]ZVlX_bY[b[Y`[`YYYZXXY[_\\]Z^Y_]^Yb`d[``j`_c`[a\Z^[Xa^d`^_a]_d\bam]af[bX\Y_[b^^`Z_][``^]e``W\`^cYida__^Z_Y^]]\[_[\`W\ceZ[`Za^a_][b\___]X`bbc_[a`b\]cga][ec`_c]]]c^^ac^d\^X]bZ\Y_d[]\`bZ[abbab`]\\^\[cV\`a[fga\Zd`^]^ZZ\`_c]d_\d]]]abZ[^c]^_`a`a\Z`bZ[][Z``X^b^]baf[`a^^ZaZb\[]aZ]\VZcYb`d]\`_`eZahab]`aX]e_\_\^bX_]b\]`_a_fa^\^`d`Y]]a`ZbaZ^]]P]_\]\`bm__\]\W^`a[b`__c`[^]\`b_\ZW\_k\\`ZbXbba_a[X^dXo\][_]bW^dWce]ZbZ^[`ZYYa\[]^a`f]]\[Z]X^__V]b\_\[d\[Z]f]]]^_eXf^h[]Wb[Y_Va\bdVccfi_^]a^]_[eaX^g^YS]d[c`cU[[\_aa_iZKc_aZ\hZd^ddbRZ^][d[`^^^aZdZ[_]dagg^b^^dWX`nY_YYh]be\\e^f_[X_`a[gY`\\\\aY]f]__``b_Y[sd`\Zacc\`fa^]d[W_Zg^]`aXcZ`^`a^V^^`[_b[a\[da^]Zbbie][g`t`cYgUcTd_``a^d\Vea]agddZaYe\b_Xa^`W`hQy^V]ccYSdb_kc[eVcaceddYkV]cWd^cUaVVcfWqam^`jd\bUoQ__a[b`R_^T`Xlbd\oa\W_kfZXdYajc]N[_]`d_`ZW_bhbe`fo\fNZ`c`_acbYZ\_lVccZZb_]`S^ZjdVUZe`lWgU`^\[Z^_\aadfd_X\dfa^_bZ__f_aX^_Y[^_[]d\[^\a[_g]m_g[YYXa_\f_^V[a^_]cX\WYX\b^W]]]`e][]Z`V]]\c]X_\aY]^]gWY^bZZb`cYec^Z^^__ciWb`fZ\fcaZ\`b`[``\a^^\\^_Za_Z`Z]`cda]a_][``_dei^\c[]]\d^YRgeef\]^^j^]fd^[_[e[_[\YcfZb[VW[WvY\]S_f\bd[`Ugaie``b]m]_bhW`fcbZba\^g[k]eY\aYZe`|[dUb^W_T`cu]`g\kXch[b`ZY\V|`f\\[\`]aneY`fcOeXW\dZ^^b]ac]^XZNWdc\a`U```_\^\co]eac_dbE[]WZ]chd[V^\Xh^abbYi^Y\[eV\YZ^\h[^cb_PaaZf[^^X`Z^\Vf^^__g[dchXedbhaZ```beaYa\]c`_s^f\o[^`]ffdVY^XgZQb\]b^_lh_`f_\`\X\[fbe^c\bXhcT_[`_Y^bZ^_ki_^L_e[g`_Rdin_^b]TUac`QZ[Y\ZoiLSieXSZaf[_\^^Zcik[_\aZaZZd[]`^\\abWZbh]^a`_\N`ZZef`X_[kYR^^c^bZaUXZ`__]X]e_Z\_\`Z_W\[fZ_Z`_db_h]`ad\Z^^S]d\_U`Y]TZd^bZ[Wb_\[[^Z\]_\]af]Y`^_`TWe[a\^_^^\`Web[]]g^c\XcYa[af`Y]_]\`Wa[a`]\Zgihef^NYe^`Zb^`aV]_]`^h\\^``]]Y^]^`_]__Xa`^X^`\a[[bcc\Q^]_\Z[a]g`\a_ZdZ_hd^_Xd^\a^Xbb\abh]_`aV][c^a]`_[`_c_Y`efc]]b[c[ecd`bb_`bZa^Xb`\dY`a\Y[X[dda]]a`[^aY_aZb`an^]cge_hXajZcZ`W_Ze]b]e`i^]^\c\a[W_ZWVfYWc\dXbZ_]e[bbbd^\aWaY^_``^Yd`a]^_cdd_hbVh\md]]ebY^b^^[\_ab`]a_Z`]ca\hb[`WaaX_`Z\^`ca\cX]^a\]V`gfZ[c_Z_\_Yeac_^\\\Z\\`V[YaYc^`Y`XdacaaV\[\\d]^[eW_\_cb]]d_b\c_ak\`\Y[^d]ga]V]Xf_d^c\]_[^]^^Z^^aX`WZ_bX\`\_bYa]i_\\YZ`]\adc^X^^[[^]db`]_]ba`eZa`bXfacZ_\^^aa_^Va]fc`g_Z\`Yg`e\\[ac_^^\`W]d_Z``\bW]^^__^`j[ae_`c]fgdc_abY^Z[___`\c\_^cd`[`[^a^`abc`\\]bg``^^\^`ba`__aaXagb^ZYfbZ[_gfYcd[`_a[^\_d`VX\\b^`ca^^acUd_b`\]ZZ]`]U_Xch``\\d`aa]`bXb[^d``bbZ`^]]dg`c`^ao\Z^b_Yb_bZY]_YY[^]_[Z[c]Xc`[fZZ]h_X\S[_`^_ed\`Z__li_c^a]a[X`^bg^`^X^WX``\X_^ce^\^VaZ`[di_\[i\[^cVbdd`hh`Y^Pa[_Zc\Z]`[eXY\\Y]^d\bcaa\XYcZ_Zd[a_`b\YWaYec_^Xa_W[aba^d_Z_X\abYZ_aeW]md[[aRn]`^_ZRc`YZ\\YaaWf[T[[`ff\XYjY\RcYdWa\[X\VbX\Yc\Yb]ap\^W^Xs]W\ZYra]eWeXce^q[_Ro_[bZ`acNagnfZc_c]k_l[aZZ\]dbi]\YZ_Xd]`[fbT[]Vd_eifdSXdg]a[\e[\e_]hX_`eYWXq`_]f\[]^Z]\[eZ[``bX`[d_]Rab^[T\X]___Vb^\c_ZgdfUZ][aaaa__aYaZadaa^[^`_c]][g_^g\\a[c^a]b^_V^Yb^^]h^[_\\\Za]a[^]XZa^`__c\_\]``[a^`^^`_a`\^]a]bg_^b]\^]a][][]^^d]b_Y_b\bc]]\cb]]^^a]a^`[e___bd\_`\_bc[d^[bYc^]bc[b]e_[`cZ^b]g^]cb_Wf_cc^c]\b\]^^X]^]\]Z^e[__Zp]Z\``Zdg]e]U\`X_Y\]\]_`UW^_c_ax[gY`^]\cedcbhfa\^\]cdaaeUVlfebd^X[R^e_ja_c^V^\V_dmcW^]b^g]_]li_Wgd<_lYW]^h[]z[bee\aZda^XZl^rXZWc^_[]]Zv\^crWZUZZg_\X]]Yc^`cf]][S]aY^aZj_V\[a]]^Zc]Ub]Zh_`f]\^`^b_[g^\i]e`YZ^]`\[\]fc_^j^dZ\^fa_\Z^_b`[caT][[_f^XaX]Z^igf]`_]c]]bZ_fa]\aWae]`[`aa[\Q][a^]jch]ebeZZ^[_XXYV_]Z^_a]^ZaaY^l`m\bU`^a\^ZZ\dae_`ageZZji]XW^\cf]bY`_aZV`_\\^\afc`M[]\aVV\\^[g]f]^i^k^WdYa_geaW``bhgU\]cd`[_Z^_`[V^gYb^bZn\^]h]b^f[a`cbYTQ_m_TjY]\aW`hZ^kd[b]f\^\_XZgV\^Z[`dTW[aWWa_Z\`_`[WWW`bba\b^[_e^`Zdf]ZdcVdZica_X_i[d]d^^aYTcaW_^_[j]ZW]e\a[\Z_bdgWl_i]^ehfE`[ldaPa_fa__ca`X]\[ead^`e`ab[_Zba^]_`bc`a_\ZUdd_`a\^a_\]^_^__Y^[^eVg]^`^][]\eg_\Ne\Xaa`\d_^d`_^^`aZZf]aabi`a__bb^WY[efa]Z^^^g^[`bfa[_]\`a^`lWf^[fXd^^`a][aYc^^ed\dWea[Z``[]`^[^^__^aa^]_babb[cek`_]aY_``ac]bdeai_X^b^]dbYhYa^f[Na^`e`aV]c]hW\_cYd_^Yc`Z^_b\Vba_]Z^[_d\ZU]a`wa_d[fa\ab[\V]jVac[k\__]h^`_`_c^_f`]^W`c]a__]Zib]^^XbYa^[be^][S`Za_SaZXEda]^^`a__^U__V``ee[ZeWb_e^bUa`Ze`_ia]^V`]S``q\^nfbcb^Yeb`]d`i]^_d`Sa^`_]`_^Z]aa`]\adbb\dW[a\YaW`YWc_a\U[dgb[e`_b\b`d]X_^eW_Q`[Y\b]cXh^]S]^Xce\\cZ^\_adZ^aa^c`[cb^]`eWafc_gbeg`\cb\[Y\`[^Z[c_d^Weae[abd]cdbZ_`V\\`eRc^h]_W^_T^`Z_^e`]iS__\V`bp`\ea^lZXZc_^\__X^O[[f\_\]ae]^_`b_Y\^c^V[[c\`Pb][^eb[kXT`Y_^[Xc^kQTg][Te]Vr`a[a[h`b^`\XV]Z[\Z\_ZV[_V]]aaeWcZaa_]YYY\]X\ikbU`tXE``de_cZOo[Zef]Y`JZjU[W[\Y_a``]\_aU`\PKY][[`][X_iOY\`\Ybuff`_WS^`TbY]b]hd^ZcV][a^_^^Yc_cZ[\Zhcjb^\bYZ_TZZ`]`Xg\_Y\XZbYb_gaXZYU\U`f^[Ya][b`]`^\_[aZnV__a`Z_Vadgd_ZRa`]iXba]jV^]``a`\SZjT^]W__`R_a]e[`Zd_^X^b`aX`Xg^XbfaY_g_YY^mUjei\`q_R^da\^_[bZY[Z^]aX\Y\]^][h[Z__[l\ge\[\_Yf^^i[aPTbc^_`db^^e\[Q`_\_b^a_b[aZVcpZZ\bg`b[f`[_\iX[`^`M`\Ze\e]^\f^da^^\a``igdZ^_\\^Vc[W`jYZ``Y_a\\_][ld[_Y_V]\`bn\^[]_bZ^[c[`\b^Zqb^\]\e[^`_`_^g^d^j^`\g`\`__^`c_]bb[]`^Za^_[Zb\bbcbe[W_f^\\W]]fe_a]a^`^]^c`b`Z\df\^]\[eb_Y^d_`[``b_\__]\]bb^\_\Ub\d[\_^h\k\[``Y]\XdW]\f]^h[_a^\bcg\a^__e\aa]U_^e_``_bZ_Z`edec__^a^d_[^^\^]^\[^[Tj_`^aZ]nbcaf`]b`__^ddZ_^[_Z^n[Z^`Z^b\^_[aYW`Z`\lW_`_[ed`Xc\^bbb\d\_^][YZdgkXa]^h[\V[]^QZ`[[aY]\eedd\\`bceTbfhTPa^_Q^^[o_bRaX[dgdVeWUgX\`e`]aecX]]\V\`laT_]\_]b`^`b_S[`dl]faVUb^\b\_Y\_hebY\[VfdY[XYgdTY`[_[ZedbWXbgV[`fk]]bU\Za_[SeaUZY^eWb[`Y]Ya`]X[a^XY_[Yb]iY[UX^Z[`ca]\a_b[gaeiY[[fc`\_PgZ]_c^[aUd[g]_[faZ\Q`abf[_aX^VWZY^Q_Xd^a]^acW`[d]e\b\XWa\]VW[W^aW`[S[\h`[cZY_XiYWaQ^\[jTY]d]Yr][e\^cYSaX\]\[S^^[X\[\W\QW^dXdj]bPe\LV\lL[VZbb\O\\\``e[ZNWXU]^^[a__f^badb]a\b][\a_^_[`YZ__b[ha^]]Z`V``]`cb_cV_\`aaaX\\[`aea_b]lb^`[\R^g\Zg\ba`c_^\]g^^aTe\]Xabad[_fae`ib^[Tf^gi^i\c][[Zf`ea`Z]^jbefX\_Yc]lhnbYcc\Y^_d]d_`b[_bV_bf]]\_e^a^_Yd]`YZ]\g`\cj]Z[a_Yf[]aba\c^`a`bq_[[aeTi[WX]_]Y\\[s_`[__f^YZh_VeX]_\d_\_]\T\dYbe^`ZYYi^^[]`f]c[j^abgW]\ZR\Y`_`__a\\gc_^_g\Za[Z[eWYXieW\c[\Zbb[^Yk_ZYh\bX`V]`^\^]WWdbcX^U\VedWa_hZ_XWgUgX]bed`^^_R`[c_e``n\`b_\b\^b`dZ_ZV[\]cb]h\ZoXV[`W_b\[Y^]MZ^bb[dY^^k`_[f_YWX[[_^b^b]]adh[c_dXbd\]aW^Z]g[o^i]SV[[Ya[_V_Xi`U[at]YiTX`iZ^a\__[i]ffVZKa^_Y`e\^[_`W_lZX_V\V]aibXWBeoNR_b_RX\`d_\a[dXh\YWhb_cX_c^Uc[WadmZ\]cUM\d`aXaXheZV`_Sd`WX\`R[`b^`_XaZePg\^[fUR_[][]_Vecaca]d^Y`]^`dZZgW]_`aYafpX[^_XZaekTLc]dZa_]a_bb`_cbfcc\^a`\deee[\V`Y]a^ebf\YY[^_V_Zi`_\[c^]e^W`eZd_ea]`WdbdbcSc_g\`Z]a`gb`b_YYbcYeXZ^eWZUcaYY[cbcX^[]p^Y`Y]cgb^[_^ZW\b[^h]`Z^_]b]^ycea^`]\][\Ugge^m]e]flXjbg]`X]\]ZeakcKV_^a\^J_b\cb_[\[Y\Xicc]f`[W]_KVTW\\Yjb\`_c]^U_^Z_We]`da^XY[`]]`^Zkaff]]^WeR^icTWd\c]^T`Y^aTn^Z^Zn`]Xd]Y`_u[XUU`T[_SaT^Ze[ZP^_U^fb^eo_ZV\chdbg\]m]^VY[`V^a[VUI]c_]]_[[bd^ZYm]W\d^bKWPk`VX]`^Wa`bbiWXW[_^`c__aY^hcX^`_]eO][di\fba_qa\`kX`\\ZdZ]\XS\a]Y[d\aXYKccKfa\SYTjekdb\U]V\`pc\Yeka[P_]a\^ZZd^`U]^a\]_n\oaY^^hlai[aNldkaa_\c]]Y[bY^[b__^fX_[XtZUZZ\iV^]Zjba[_]XkSeb[fV\_b\b\cJ\[xaZUa\XXT][Yb^ac`[ia[Za`\]d^[ad]ofU`bb\^]_canc`\d_[ZXh\XT`]^[aTWf_]_U]WUdaVp`\UZX_be]_\VhXZTd]_W^acVZhV^X]ecad[Y_c^j\\[Y\Z_^ZRd^g[_^b_a[`Y`][__^nXg`\_[Ze]g\\[]`bc\[_[dZS]__WS\_Z_^^Ydb]f\Z\b[pgWY_Z[^b`cgaWY\Z\[]\\a[^JYY`\aX[^b\^\Y[[\ZR]ce]Xaf``_[]\b][RYc\`[f_o^Za_^a`\\Ue\]]]ZXd]a]d_`_Waadae\_]^db]aW_a^[bW]_a_]\a`fWa]b\U_^[Y]^^aZ^^ge[\`d[`^b_Xab[ba[_daec]Z]_Y_g^[Y[W][Z[[V`[^[gb\]]_d]d[c_a^Z_Y`ZV[hcka_ZYZZZfZaaYbZc]\c^^`_W]]TcW`e`VV\l_e__Zl]_W]]W\\dZaW^]_\_a`Z_[_bZ]Sb`UZiW]]hm[]]e]^d`Zk^ae^UaTa[`]bU`VZ_Z\`j\`^^^ZjYXM[Z]_^__eXcYcU^bXacri[XbZ]V^ccg_X[`_hZ\^_`_[]f[ZY[XY[_\i\cZa``g\d]a_\WdbYVZk[\]Z^gbWdb\bZc`][f`eYXie`gg\cZbWP`]YZ\]^[bW_e_a]eleb]acbaTd]aYZf`[bSaZ`ee`k\f_d\eZ^``b`[[Z^aide]^U^`cb^S[^^b]_bg^P]dlZca\f`_WYZYX`U[U[TOcbx]Z_ZZaW[]Zaa\`]cQ]eV[``]krgaaSZa[[^[e]cW_fcYS]a^]_]`^^Z_NhJ`a_f[iXdbVh^\bcfdW`^___aHc]Y[]b]cZ[`d^[e[iZ]]\jUb_bZ_[Z^[XeleZ]ZqZVcb]j[dZehYb^bRZ_Xh\^\[Y]bd`\_Zd`bb]]ZZTa____f`ceZdYf^\\Zd_c[[`daZ]h``[d^Y^`^h___aZ`_a_`[`X_Y``][f_`b``fY[_]\^f]\c]b`Z_c[f[d^ddXYWZ]]b_f\]]cdY\aZTc__\_Zbdj[cTdi]UY^`Zga[\``c]T\a_[f__\cV]X`]cgYbYb__`ca\[VZ_aa``^^]^_]`gd[[^b^`Y[[[_Vh^^\__ab_[ZZ^]Xa]^dZa\cp\fYd`^`W][XZXd]Z_]cUk\^[Y`hc`^Z[_Waacbg[dae^[WdYdZ[Qe_TbXJ]ZL`V[Wd`rba^X[[b``\a^[\cX^bYde[`^aa^^_cZb`\^a_d\XX_ee_^\]Y`Vm\ae[dZfe^[^jj_VWg]_]X\c[_Tb[d]bX^Wb_^\_Y\`m``^NnaZg`dXa_d\]_[ahVY^d^gg]a`ebZZec`e_b[aY]_]a_^XdYe^cf^c]\a]W`a\^e_]_]^^^afi_a]Zd]]dfgame]\_gd[^c`ebf]\]^[]bd^f^X_e`a_^_X`V^_[bbjYbaad_c]]a[\^Zd_ea\[_`dZ\d`^^[ahZhcaaXa_gZ\^bl]_b^b]_\]i^adZ`]`be`j`c\]Y^^c^[a`b][b_d^g^a]e^gVe`Yf[Z_\[a[k[`_`Z_^``^T`be]d_Y_]T[_^\aS_`f\Z\jWfngl\eT__ae__b_\WYZa_^Z_bba_d`g]^ce[c][`bhZa`d``]Zdad]q_^]eY^__iY`\aZ`]UeWgc`Z^aeb[h_eah[X_S`abfZ[]_]fN]bbba\]e]_Wg_[c^kaba][T[Y^`^ZhW`U]a\b_Z`Zd]ce`dbXWV`a][]V^ZY^`W\\^Y\``XacZ_^[_Y]ae[c^be^]h_]]Y^`_\`[]\]^]`c^`aa_c`_b^___aYac\dc]]__\^XX^_][[b^_baX`Z^]__b`g^\g]\`\^`b``]\d__[[Vaa`[^`cZ^f^[`aZ]a]bbY[[_^^_Z[]ba_``cZ__`a]]_]]Y^Y[\^`b\U]bVY`\``UZT\a]`]a\^\\Z_Z\`\afcb`]``d]\^ibSXeTbgdgXZ]]]f`_XVX]XZmc]`TbcZV[]`\a]`ba\_b]g]_]U`W[Yj]^dXV`e\cZ]a^cbX[[`YZjb_Z^S]bZlWe[g]^b\d[]bZ\WZ^\[[\Y_j`^W]aXla^k\SaVb`ZkcXi_iXd_X]W_aZ^]\b_gYa`Yf_Z__a]^\_X\aWo`^[h_\aZ][Z\aZ\^\bZlTZbk]`e[ZZY`]Y`ha^]]dT_b]_Ybddb_\`\daj`ggdb`]dc__`aXW^__aV^ZkZ_ae^XbX^^V[_b_bVoVZa[[Z\]a__c_^T\ba_Y`a`_Zc]W`]dj\TX[][\`a\]`]`h_[O``g^a^b`g[ZT^WZcb\eYfdScc\RNd_[W\dZ[jcd\b]_Z_[c[Z`daRZ_Sbc[Z`[aXcZVYcc^U`d[TU]c`ZaZdbcoZbdg^\a[m\``ZXb]_nbaZgk[ab^IZ][aVgcd^aa[j_b^^XcUa`Z\`c`ZZ``_ib^XaY_Ys^aaaa^c^c_[^a^aVZ^Z][VeZXX_RW^aX^Z[XY_\eSWgav\X\_ZY_aRafaT[aU`]][`_Z\_`\[dYc^]`]^Y]]]_]Yj]^[`g^caffb]b\[aa^Za`hX[\]cb[_dQ]fe\\ca]Ygg]c\]^ccTfd_P]ba\b\idc^[ccbXah^X^b`R`_]^b]ca\_^[b^^[]]]Yd]fbmYX^\_X]Zf_c]kf_daXi^X\T^^_[h_ZV_^[Wc\ae`]b\\T^_V`eZb\X`Zc_`_[^WZcQ_`a\^Zg_^Z]]d]Zd`V^XY_iY\baY`ce^_bbX_Z\X[\c`ZZZS_\\c\YKb\bZ[`YW_\`_^]f^`^VWc\_bZ]d_Z_d[]_[aXeb[Y]b[[[^T`X\fY^[[]\\^Wb_fbacXeagVXi[__[d^X^]eW``cMaZZZ]b`aZc]c\XVZ\U]bZZVm`ZK^YS`X\b]fWXhX\jb_a`a`\[\ch]\_[`_\cb`Sb`]e^eZ^jdW`[Ve]\g_dX\bgda^b`_`\dd_iX]cX^a\\a[\X[c\a^[\fae[^_^cb`a^^j[bed]d_f[\gZ`]de]e_l^`]acllh[_[cba[fdah][Z`ab_b]Yf^]]gZ\_je_`\Zd_]d_\gd^[d[Wad][f[e\bmcbb[^c]^^ic`]gZa\fS^XU^ZYy_bbVa_^T`]]]bc`]eZ^d^[Ya_]YcYXZl_j[\^V[Qj_ha]XU[`^`cZWa]c[Yab]a]c`^X][\[_^^]Y``e]XXW[gc\a\k\]VdacNX^[][^]SidaZ_jShd_c^[a^^^geT[[`\bVY^^]X]e[[W_h\\u_^T`_hW]YeY[]_ea__^^_a\W\VjaWj`dY^c[_d^|i[`bl^fd\`^]V[h_a_XWi\Web[Zjb\h`Gb^h\ZRb[\[c]d]cW\S^\BShPbOIf_^^\_[Y[eaM]^W^XWSfbAZb][b_]p]a`[S_Yedu^_]b_ZU[^9d[k]bgbd^^ROeagXYd[^`]Ui^eYZIdV_d_Za`pag][cXbWZ_lbd^^_giS[^]aKU]Zk[]cZYaUec\[Z``a^_`X`[`\\[^a_a_a]a]ab\[]a]__[^^Ud_[[]^e^]]^a^i`cac_Zc[[__ec_a`\a_Vd[\^eh\Z`fZ]g^aYc_^be^[bba\bc_Z`a_a^d`_]aae`_^\bX]^^`\]Y^Z]pb`][^ba_]^`ac_^WR^[^r^`^`U`c`Zf^d_c_\_^]]ch^]ade_`]aae`^d_]]^[Y`eX\ai`\[__hYH\^X9Z_QiU^VY^^c`_XgVJ`^]Z\R_]g]bc^faa>aU`^U_^^b\\aTY][L`Ycc`^a`^c`VD`]^a_7]\[^`KUPiWWc[_Y^[_a^`^efZc[_d_c\bUTVb_U][\Z\W_\\l[bVa_Rh^[gXf\OMcWW]c`][^eVZb]`PUST]Z`__[_`[c^][f\be^c]d__b_e^]]b\l`a_^Y^c\[d[f`adibcacc^^_\ce^[_`ae`ca`]^`e]_>d__dj^da]cdd_a`\ab^^beT^^cb`_X^c_ccbZi_b^bZ[``^Tb[a^`a`a^d`d^f]\b\d``fb^^mgae^_\[aX]e`\bYaY`d]bb][a[^\VY^[Y`d`d[j`bPad_a`_aa^]XcZ_b_jh[^]aeeae`bZa_\daYc`Xi]eYi]]b^^^\^^^cY_bY\`^ec`[ac`XXWYYa^`ZfX`L`Xg\`S^df^[]`\]\_g^aYe\__b_]Xk_`b[[Z\aU[_\`]a]d[[]a``Za]dkpm^X_b`X^ZZb[b_aZ]^aaZdY[cYb^`Z\X`dLaa_Vj[ZX`[f`ePamcT`aaWUd_a`c[eZZcV^W`_\`[][ZYd\cUZZhY`_\ab`g\]_dYWXY`]_Y_Y^Xceia_bZ[_z`[^[c\gY_hYZRZa\\]\aZXZ]ap_^`zi[dY]`Y_]\WXc_Z^``_aa_[`Y]baaZX_]^[Ud`[Y\_a^c\ZU\fVca__Zb[bbb]^cb__[aZpY^bgVc_bZbZ_]`_]^WZcZf^_Y^_]aZZ]d\\`X\Zgea`c[\X^[]\a`X[j\\X_S^[X\`_ZYY[^d]dYc]\W[ZYaX[aXe]^\]_`Ya`_YYW`Z]Y_\X]Z[Y\o\`Y[^X]]Yf\Vgc_cb]^``a_`W`Y`bbaY[]][e]^]V^Xd]\Z]]U^aYQ\\__]^]Z]^Y\X\`_\S]]eb`\Z_\UV_XYb\[_[\_Z`bZ^`ZZZd`_]]T^^ZXYWd_[l\_\ZY]a_c\[hb`VU_WZSaXm\Vca\[ebVa\_j]gVbbU`^cioW_Z^aX\^kSZp_ddec`d[Y`bUVd^X_^\ebha`b_f^]``cVaoUY\ieOb]e_~bhW[f_[fX`fceabcZ]Sdb_j^Vaa^TcX^ZVahj_\Q[U_ci]dYb_[mea`ZT`lbUc`\Y^a`_j`_lc`^_[[SY[`Y\]XU^XZ`dZ^d\Xc__dce\a^^f_UTbV__]`^^[Vh`oZdaf^e\c[Z\_`[WW[_hY[W_W[_`d]\_aZ]dfQ]d\^c_Za__d[^^[\Xb`]_Vda`VYR`fYie\c\\bMi][^^Yad^^m_[Z^a[e_Zb[]]Vf]`b]]^[]a]a[^`]`Y_a]Z`[bW^]\cYb_i\aZe__^e\ZdTY]\\\\W^YVc[\]af__`^WXg^^[^bd`d]\[bbc`W^aY__b`a_Y]a[YP\Z`eR`\]\R\eYY^]]e^a\_VcY[b`\`\ae^hf__g^`WcU[`b^\^_Y[ed\[^_^]\h[_\[Ycc]a][]^dc]]e[cZcZ]\\VY_cYZ`[a_]a^afdYc_b[_da\_^b^\a_aW`\f`_aZ_laa_[YZ[W[[Y]_]YZSYZWZWVRdXcYhX[Vi`q]`]bfcafY^X^^Za^[R[udbZca\WsaZZT`_f[\d]n]dW]ed_YbUn\Thdkad^ba\XcT]l[[T\TY`XiatY\]hJ[VXUuT\Z\UXf[b[]Y`[a_b]i]Z_]\^`dZ\l\_]aaOY`U[p[wc[QR\Z^ccafUX^ZUSi\p]W_`Z`c_eTbb[\ZcWbUcV`ZZ`\^]_V]aa\\[Z^V__]\lS\ZbaZ_Z]_h\b^[aY^\^\]h^]kb_`UdkXjhaq_^][c]\OU`[aVc__aZ^[Xd]a_^X^p^Z]``c[\Z^e^\TZ\\^b^]_bP]bahYXe_db`]g\[ZW^X`_b_`^__^h\SYdX][e^d]cd]c[^U[aWt^eXaaZUW__^aW\[XUgd_[]\\\]`\^]\c]ab]_a^_``a`]Zba]e\W^`fea^Zb_]]]YYZ\a]cZ]c\dZY`ccchd\`a[aa^aXk\``^Z]\[fd^bcWZ\a`U[aV^b]`\`XW`b^_X]^\]_\_Z^cZg_b\Zja^ba[\Yhb`\__cY\b]f^kb[YbcZ^_``^[[b^`\c][[^c^WX\\_c]WY[ZYcXb`edYZ[^_ca]Ud^^`\he`bU_\e^_cYg_X\bgb]a\[da_ad_bcbb[_`b[afe\]]ceX\X^[b_f[b\Ye][cc\Za\\a\Z^[]]b\\bUZ[ff]_`f_Vd[gd\gcd`VaV^Zc`^Wc\X^]a`e`^d[Z``acc^^[ZXlk]Yhd^_iU[\`h^[]`^^e^[_`cY[YY`]afb`eaYcS^a`aa^ad\a`_ac\Z^e[]Y^dXdi^bYabhZ]a_`eZaZZ]Q\WX]a_d]X[a\Y]cihO^UbficV[fm_[a`r\bd`haaV``\_dedY`[lVd]e\fVXfX[eYNZ\][UgjXYRdd]W[j_Vb_`]V_ZQ\\l]_`^fa]`[\j\`]jiXcd^bOcUZg`]d\`f[`[`[[^\Ymfg\idd_\aU\]cW^SW^[Z\`[`[_ZWW]a^\^^_\X^jic^Sde[a___T_[[cc[\_`]l]j^a^b_h[\Wdbfoe_UdY_Uiboce\]d\aZbia\[ad[_\b_a_e]_Y][eZ[_b_dYc_[fdcUa^X]VbX^]`gV_d_WSW`a[_ZZ`c_`^b^_\ee_]\bgR\d_b`i_`_hc`Xa^ddZgeZXal[Yc]\``db_[[dX[[`^Z_]U^b]_d_jY\\acc``Z\cae^]gfYSV]WbZ[]adi[a^`X^XdX`ab`e\VeSZSba`SeXb[YZlcQWd\g``[if_WU\ZbXX`g^dQ\ZY\bfc\[h[bc5][YiVW[UhSZ^_]a^^Zx\ea`e`dX]dW_b\WMX[ZTmq`XeX[Tak`[RPV^^]VXWWWf[ecdW]Ze]LX`^[VamZZXc`Z]`]X]aW\e`d]Z^_dW_^fd\YebZa^`U\ga^^]Sbaa\a[U[b`igXcb]]bb_tdcd`TXa[]_[`aZ[Z[afj\X][a_^]Xa]^be[Y^]fch`aYa[Yh^aZ_Z^]_]`X\aX\`X\W``U`]`Uc_`aZ^WW]YQZY^ka[c]Z`bZ]\d_[]d_\\a_[\gPa]x_^__X[_dY`_^fdY_\bY`dU\b]ccYWa_cZeY^bZTZV_aZ^_`]gX`T^[^a\X^cY[Z]g\bYb]]e_q]]ZaV^\]cb^]^aZc]c_aU^\\hecY`Xkhb[_b_[`]_VjcYfYS`nc\xabYdYZTbf`ZZ\`]Zmha[]b^ac`baeid\\\^a[bZW_r_aV``fX]Xj\]Z`Y^X^`Yd]]V_a[[m]_Y_aa^\bZdc[_X[Y``jac\Z\^h[]ed\b_cbc^`b`^\^^_f_i_Y\a]cec_`Yc^[^[cUb_W^]Y\Y_`]]ib\V`_e^d\_^^[]da]``Z^[l\Xa\d[e^acbj\hP`\e]eaa^U]_^YbW]bco__f^a_e\^]\[`^d\XdhY^a_]\c^\dia]YeZb[^YdZ^^_[bYaX`\b\U_Z__a[]\\__Za``]aa_\[a\[^_\^`\^Ye\cYZ\]gXca]_fZZa\g^]YX]_^q_]g^ZaXa\``[eYeeac_da_W]b^gZ_]]e^_Vad^ec\aa\`beabT]_a]V^_`^_b_\^\e_`]\_\^_b_ZS]cW]^\[__`^b^_\e\[W[d``_fa]ZX_]]`^Yb]]c\\ac```^_YedYZXc^]\aa\c\v]T`Wa\\a\Wh[cda^ab^d[[_`X_YW]`gbfYadY[^WkXhQje]b`]gg[a[W^^ad\Ra`b]TdaZ`ba[e_ahc]_d_c\^YZ[dgScc\c]__e_WY^ed[[[o]gf\dc`kX\hi\b[\abRbaZf]Y_b]a_\V]Y\[]b]U_aYc`Z[^]Z^Z]Z^a``_]U`fabY`]\\^fhcbcc]`d^X_Vbge\X\Ob_V[^]^`MYb\V^``eTY^YhTb_`_Mc^XS[bZ`Z^\fcVcVjL`VLb]XU^WjXX_Y[fQ`UcZr]GTo`^akmbdY_[_Yjd`W\\akcV[cpcYb^X[Q\V\`j^ZWnc_dbg`b[ba\hUL__cYcYQ^_Yfi^VWg[bHX_e\[Qa_[cd^_Yb\da^Z_[WiM]d[\W\_``^\\aa]\`k]QdUhO\afTbcelX_gW[WbjW]]gc[`_^cb^\`aWR\Y`^h\YNV\Z^]b^]cQ\Zbh_Y_cTN\Zabk_]\hZYYZct_djhWba_bVa`\\VcScZ[bc_fd_V^_b_eX]`\Wn\``\fYZ\WdQ^g\j[ga]a]ZM^Y_WbZ]X[`h`YaeZh_ZXa]\]_i`^Zyc]aa_c^QcY^b[d]a`a]bZZ\e[f^]Y^]^`^VYW_apR^aeXX][aeW\Ya`aeeogbb\ZZgd]x]fRa[]b^abe[ag[_Y\aW]`_biefQZZ]W_Y[f]ajba]db_Z[bJa[\cZYa\VbXkZ`f^`g]Xi[a\_\]WSdV^VuaacWd_e][M[[dTc`c[cVRabgeVbaXVX`^XR_VYZVa^Z]i\\[]hW\\Z[ObW_Yb^]b[RXd`\ab\Ye^X[ZnT`XcY`]aXT_X_\c_aZMdT^Y\dQZ_o_YY^\^^U^a`^^eQ\PYYZ]R`gdU_`Vjfbc]b[Y`d^`\`c[cVcX]WgfWWZ[f[W^\^^j`^b[`]Z]]_Z[`ZaX`ZZfWc^[Ya^RWY^\e\^]Zb\`Xac_^XSY__V]ab]\dbXc_aYaXbZb`\`a][_TZZZZf_`^_\_`\e`Ybch\cggZ[a[]^a]aYhg[a_haVab]^^[k]XeV[_VY]^a`bf]Zb`ZV_hYYd^a`[dYd[\da_d`]\c`\\Y_^^[\XYfe_[a_Za[^]^Z\b_\g[][`^\^accdZY]ZW\bca`eZ]gW]^Zae\\c^]\^]`a_^ag_`e_]`]a[^`_Z`_]][\Ya_aWY^`f_e\Z]g_eZ]a`Y^`U]__hbWa[`a[Yb[c^ab__]cUZa]``eh`[Y\Z^Zb_f`bbe^b`_WY_d_\eb```]]d\a^YY`^_`ZZW]`a]_a[`^\]^^aaaW\\`_`\]\[h[d[^\_`a^Zk_]^\ag[b_Z_^ab]bbh]Z\]`X][]\_^X`Z^[c^dZcaa`_\[c_^e\^aZa`_^ad^Y]Z]e_abZ`cY^bc`Z`j_dWb][c]c_X`^a_a^\\dZ]ZY`__[a_cb]]V^a\`e^[[^^X`_\`_e`_ac_a]^]_c[]_^__d`^cf_b\da]]cUc\dY_\[Y]_]Yb_]cg\ca_`_]`a_XcVY__e]]^Ybd^ZadQ^]\b[aWm[b]]\`^^^d_^b^Y`a[a_\`a`^g^\dc^a]]bh[]^c__\Ya\`bf\]`^eace\af_d_]bdae^i``bZ__baca]_ad^c_\c^ed[_\\c\[a`bd^iba[a]^`^_`^c^a[Yab[WS_b_\_Z\Z_[b__^aaZ[ba``\cjZ_``\\Y_bZ[`]`^a_][Z]`\N[g]Z^d^`_[\g]a_[[\_a`^[b_a`a]d_bY``[\`Uc_^c_]adcaZ[][aYaba_]\_^\bhX[_]^__^]\\e]VZ\^\_\^g`[Zc\a_^`V`\_\^\]]]^`cb_ZW^_\]\`Ze[`_]`Y`\_`\\Z\Y^bc\[a[`a_\\f^`\`^_^_b]_a_]^`]b`[^_\^c`]_^W^_`^ac__]`b^_\^_`b^]__`a_Z_[\_[^`^]`_`^\X^]_bb\a][^\ce[\\aa_e]]\ha^]X^_]__]][b]]]]]]a^_`\d_`\_[a_^\_^_\]`\\d^gm^d^bba^\^aa\`^bb`\^^a_`]_f`^b^[`^[`_ab]b^`aabX\a_a[`bXeaZa`_^`Pcc\[__e_a`^`c[`^]Z`b^\]Yb`[^_`\][`^_\ceZ`]^\]_`_Za``\`Yb`_Y[]]_Za`[^bZa[_a]^bZb^\]`^`[\^]]_[c_e`ma_]\b]ae_V]cXZ]_^]a^a^_`ead]Zci_\Zad_^]]]aZb]`Xcb`]a`^V[]_``ZY]U`^\b]^\ab_`]\Y_Z\a_^^Zf`[di^_Y\cYY\a_]Z`[c]d\]_a_`_k]cZa]bb^]d\]d_cVc^_XkbpacY_[_a\^ba]]\cdb\`\U^]Zd^e[_a[_^a[`\]e^]_Xa[^c_^_`[Zfd]c^]Y^^`a]a`\c_b[c]^icb```]_Qa[ba]ib_]na_]bc`aZ`ugd[c\_U[[[ae_]dW^Z^Y[da^b^`[d^]a^a`^a_]Z]```_]_aab\W\g````b``\^]d_\\]_^`]Zd\_bc^Z``b`]a_a`^`^d^_`a`__Z`a]Zfa_aY^c___[_^]f_c\`\md_bW_\_[ca`^Y^b\]aaXZddW]dca`ka^^^^dc`ZZg]]bZb]^b^\]a_dc``[]\][``a_]`a^Z][Zb[_\`Z`_`\_^]Ya`]`c`]`\]e[c_[]```Xc\`]a\\`\a_c\]a_\d`X\Zd`c]Z\bZ\\]\_`c_]]\]a]Z]]`_ca\_a__acd_`aa][`^b`[^b\Y\`_c_d\\[``_d]d`^_d`ba``aabcYaa]be\bb][^__^]]_Z__\f`ah_]^^ba_`\W\cZ`f`c]cY]dd_\___`b`Zi^_^_a\^`]^ba__c[Ya_[b[`]bb`W`]bY_a^\^_a``]ZZ\c^[_\``\\Za[\`bca^]W^aZYf^bZ[VZa^d^[fb[T__Xb`a^h]\a`[_Za_Y`Zb_`Z^^^`a`\]p\b]c_^^oZda\ae^Xb`Z]_`b]]^`^c\_[_dW]Z_ZX`b^^[`_\]^^^]``d_\gbYVh`W`\c^`^`a_h]_[`]^]a]^_Z^b^^`_]a_b]\[\_]\`_]`Za^a_b^a^Z`]]^]]]bZ^]`a[ZZY_a[_[_\][`Za^`a^]`a\a_^]]^``b\^afW^_\\c]`^_\[_^_^\]_XZ\][_`[\\a__[\a]]_`_f`[a`^a[`[b^b\`^[\]_Z[`_ZW^\`_e`]^^][e[`\\]_`__[[\^]a`]XW]_\\\a]_^b[c_h`_cbace_caac_][[babaa_g\\a_\``[f^a`c_``]b\Zca_\_]Za_^_^cP[^a]`a_\]_^_ea^\]dde^__^b_bb`\f]dab`]]a_`a\e\cb\_icb^a\b][c]_bddf`_a_gaa`e`^`\cc`^]`ha[`b_`hd]`]c``f^]a`c\\[d_^`ea_Z]_c^g`f^b_b[\^cb]Ybl`X\aj`]\[ac`^n_]`[^Z]\Yd__RX_fbadcj[\c\]]\ZVW^\R[Zj^e]\eW`Z[hZ`ca_`c[Ze[dgc`[Z]]\\^Z\Ach`^cXZtadU\ZSX\^e__]]\]`dWa`]]bcX_hXT[r^dcbe^]`aV[U`aadh^Y]Y]Z[^_^[__`[aeYWZX^_^\fbaYX\\dhXcgY^b`aUb`aW\\[dX_Xcab]\_Z`^\`[`c[U^[af_[ab]cV]]WeVf]b`Y\V\`_^b]__bW`qZ`[ToZd^\_g]^X[^[]]`]][ccaW^^W_^_WYa_kWYe_^aV`ca_`_X^`V_[Ybfaa^brgb`c_^b^e`]da^]fY]Z\]Y]]_Sd``^h`_`^]Yb[]Z]^ji`_Zdd[X_a[e[Y`[Wk_aT^kc``_^V[]]Xh`]\YbZ[b[_\daePb\[\Yc`X^\d^Z[W`aW^a`_^`Z_^b\``][M`a``hZ\Y[c[\_\dbcd`b`\_Yamb[bcc[^\[[]h`bX[_[^Z_[bd]`ce\\[ag_[_^a^d[WY^]_fef_`^b[bTc\\\X]^[^c]d`Z[`^gc]`af`d_a_`b[`\a__daa^]\__\]Z___[aY]]^`e_c]aa__cab]^_]^^^f_Y^ja^][_^_Z`__^ca_]]]_Z_`]]\d]a]__]\^_^`_]c^Y^c]]_`_\_f]_^X`_\fd^f\\b^^^cd]bZaY`R]\[c`b]Yf_\`]`\^`]ibb\]_^^a^`^^`^_\^^_agi___\^\]i]_]a__Z]a]^\a]^j^e[a`c^Xa^^bcZb[`^^^\ddX[aef\a`^\cZ\f]`[`[_^`]_e\_T_^]c]]nalZ]``^`X]ecZ]^W]b]]V]c`UVi^a^c]]`[Y[\e]]\__`Z^bcb^``Z\[a[[d_g^`a[K_lZ_^]bb`labh]`^_`b^YYgafYYW^`_a[]XkZd\h]fc_c_Y^YgZ[^Y\]^cb[Oa[ddd^bi]^``[\^`^X`_bbYa^`_^Z`T\^b`ZZ_^`baR`]\]Ze[c`\Wk\f`[Z^a^`_Z\Y`RZ_VX]`_g]Ua[c]Xcca]a_b]^X_]Zg\X_X_]aad^`j_`gX]_Z]_adg`]^[]_^Y^i]ZY^ae[]Za_``eaaYc]e`Ya^U\dbhYe^U_ZcZaa^d]^Y_]\Z\[]a]a]\`aogZ`]]W\_k_b_Z\_a`_aX`^VYafb`[c\`\UYa\__d\^[[d^VZ[WYZ]]^WfbYa^_```Tb^ZZbZg]]\`\]`]^_]Y_Z]XbYe]^\b_nW]\b_Y_`]_]]_]]bfcX[d_]_b[^baZica^Xaa`a_d`b]^\`eaa]a\\eccbY`j`^\W^_\]Y_`X]Y[^cZ]_[ZW\i\]`_[^]Wb[\c]a]k\[\XWZaa\\a^\[\[b^b\[__Yb[Y[]]`h_]\\^[c[[Zb_`Uc^d]b]Z\b`^Z\Y\a`\WYacdc\_[dh]]_Ze\\]X_^^bc]_e]\X]Wb_n]]^`Ya`ZdZ_`]cZ]^[[]UgYbYb\bbVb^Y[`_W^_dZTW]b^j]b^cc`^c_^__Zeb_aXX_]_fe`Z]^n_\^ZY\b\`gb_Zi]]V\^_[`a][[[^]`U]_`T]b_]]c_b_a\Z`^]d\`^^W^W^U^YfWZ``^aa]b`]b^^]`\c_Y]ZZ]f__^\W[]^[b[]_^g[aZ^b\_^`VZa[]We]__e_d_d[_ZT\bY`\UZ_]\_Ybb\[]e\V]\[`_WX_e^\aY_dbg]Z^aWWcaaf^h_N]][`X][^Z^W^[X]]a`^]]bZg_[J]\]\`acaUfY__`b^Z]_accadh]f\`agc`qS_d`W`Q]`_ad`P]c`[bam_lV`cP\Zf^gi]^`\enbb^^`[bR__c[WcZiahXc^Za`Y]eYW_`\eb^][d]fg[dc]cm]Paj`^gbOa^`bX``_e`b]`W`feg[[Wd\daacba]cTZ]]x_Sh[Y_P_`k\a[a`]_R\]__[jZdV\YX_WY\`_^`^\]`c`\a_\__b[a_b]g\^]]^__cb\]]]e`\Y`^[b_`_^a\\d[]Z`_Y^_c_^^c_[ZW_^^[[`^`^[]`\\_^\bba\_c_^a`b]WaW]Z_[[d_\\caZ]g[\\b^`b[b^_daX_c_`e_\\\_Xeac`]``^^]\[]Z_\]_][ac^Y]\`a\]^c^\^_`_\^cZ[c[]^a^\_`_Z\a^_\ad^`_ba_a]_`]^caY\_c`^^c]b`d\Z^cTZ`[f[Z`]`\_b`]c^]a^^^ab^ba`[a_ba\[_]^\[\^`a[_]c`a_^c_``]c]\_]b[b\[__de[ci`\_Z_adba^_\g]^baadYa`^]bTZ^c]Y`^b`_`\`\X]Zhe^[dgg[\_^[^a`ab`aU^a^^Z[`_d\^b]Xc`[Y`_[\`[Z^Z`]ab_[^Y\b]c`b]__a]_\afY_bc\`\`a\]a__`eZ^^\]\\\V`e\c[Z`^c\Z]^^\`\e_Y_\b^[[a`a[]^cb\caa`cZV_^b^b\^Z_`^][^_gba^^\`]a`^\__^d_Y_\bZf__bb\a^`_dZY`\_`a\]\da`_\]\`_aa\W`^^X`^ab\\cbj^bb]cbY^_c\_YZaWaa^[]]\`\]^_^`]]\f]\db[]Wa_[Z]ZV[Za^^Y_][aa\`ec_d]_b\aV``Z__d]^]b_e[^`W^[_g]^g^\Z\Z_\[`_\h_]c__\aR\a\]_dd]__^T\\]bYdc]`_Z]_\ZV`Y^_`][YZ\]X^\\]\Zac]_]`YZ_^e^[Z`W^\\^^^c_dZ`X[bZ^b_aaf]\cWV^bZd]``YZSabWb]^\aXX]bY`^Z[^\^aa[aaY[Y]eab[^X]\i\ZabYY]c\ZZaPbVW\_``[[VZ][ZYZ\_c_]^\Y[_b`][Z`Y[a`XaXa]]Z\]\[[YY^aVX^a`\bYZ^XQ\\^ff[^___b_Y[[^_Y_hYQ\U[Y^adf^]][]Vdc^`]Y]X^Z`Y^f_aYa_aZ__\]]XXb]\___ad^^]`_e_d__^`\^Z[c^bfZ[a^_X^[_`_W^]^\Z]]_^a`_ZYbac_\`Y]][_Z`_b_^^[a`]]b]e]]cY_db^_^`d^`_ce___[a]cZ\c]abZ^YZ^^d`Y`__h]]Va\b^da]__c^\Zb__^^_`_`__[][]_b]Z]_b^c^Ze[V\Z`\^`]`_Z\^g]]_b^]W_cac^Zf[__`^a_Xe__[[\bd]e\Zdcc^`_\eb_bh`Y\_]^]Z`c]\c_Y]`ea_bb`b_`g`_`_aY^c`f\Y]\\`Z^hf]`a^]b```d`_^_d\]^]_a_Zb^eeZb^^^^^b[``_[^bdbZ^`_Z\]_^_]cX`W`e^]]_ca_\^b\[_\\a_b_d`Z^]^^_`^kcbbb\b^ehab``^_]_\^[]`]_\`^^[^`a``V[__S_\Z[Yb\[`XZ]^_Za`[][Zcc^^aZc_Z]_cb^b\Z_\]^ac`_Z_Z_`a[[^]_]`]ba][`a\aa_```ceg^_a[`\`Y[_`[[``Y]`^^\be`[bc_`Qa[a`\^_]a\WZb]___[__cabaa^a`a_U\_a__Zaa]]]d``\]^^```_^_Y_]b^a\c[^`_[^`[_e^^_Z^W]Z]a]^_]^^b]__\\^\Z^Z[[bc^ZY`^Yba`a[c][`X`^\fXZa\\_a^\^e]aa`Y__[\XY_\_]]a[\fbbb\a^[]^Z`^_\X^]UebWV\Z[W^c^bd`eW]_[^bdX_^[`Y^bZa_Xca^_Y`Xb`Z^]XYW_\_bZc^a^][[]YZZ``\X`_^cXa^\[[]Z]___Z]g]`]X]]bb_ad^add^]^]__]\a^e\b\\]__[_[bX\^`h\aabaca_`a^b_aX^ac`a[]cSc`e_\d\]`bZ_\_g]b_^[f^\]__`a`ka__e^_bV^d^b\]_]^`[_`^_b\_`Z\^`]_]_`c[]\a`bc^\a^^c]e_l\`c_]__a_Zb]^^]\^a^`b\X]]n_ff^b]__[_^^`[_^_[_`\[\]^a__^^`Zad[_\\g]^^i^`\Zc\b`a]a\e\\[^g^Y__]X^_]Xc_^k\\`c^^jab]^V``^a\_]c]a`_`Z_`Y[]\\b_]Ua`_`__^aec^ab\^]]^^[\\[`[_]`c[\b_`a_c]`e__]edd^\`^^]]^\h^\dj^\]e_^b^bZ`YbY]__\__b]e]dY[[ZcbZe_^Xj`a`d_e]]_]Y^_bWfa\a\djdaje^]]dZb^b_YTXc`[baV]\`__P__`_]\W]b]_\[`oZe[`a^]aiXa]^c]cb[c^i[d`]f^`]R\a\dWa\c[]^a\X]e^e`a][Z^]\aabb_bcdi\[[^c^Xeda`d_c[\^qX\a^b]^^\`b^W[__]\[^Y]`a]X`c]\]bi[^cnf]fa]\Y_]\[bcYb[U__^_h_`^\Xffd`YR`b_`c]YUddZcjb]_Za\\ia_\Y^ka[]`]deb[_`<^XZfnabY`^_`Zl`_^^b\e[]ea^_[bU`]`d]Zg`dg\d]Ze]aQ]\_c[]f^__ga^_XWShca\_a__a\_dY_[^]^_[`\aKSbWk]jZc_^W_dh\hbbhW\[`iZ]ZaZcc^c^f_[Z\YaXb`bc]^`_bc^]e]ae[^Z[\^_ca`^aa_a_`a]e\]a^a^``eb_]Y^d^`^c]^^`\a]eW[aaZb_^\^`\ac]_^dc_aa]`^`]^aZ`Zf]a_]]a\]]]a``aae^b]ab]aa`__]a_cT]Zb^cg^\___`_a^]a[c\YW\]]a`c\_cWab]^``Z\]\f\^]Zba^^bafa^Y]a__Xa_ZY_\^Yaa`]_a[a]e]aa]\ec_^d\b^]YY`a_aa``[\`]gca^hXYZY]`^`^c[[o`]\bZ_YYZZ^_Y[\_]eZ^_^WZ`\_d[_\WdW][_X\X_^^__V\^^`bW^_^b]a[ba^Wb_[ad[X^iab^^\_[^\^aZaaXbmb]be^`aa^Y\_^_ddYa^[`\a]ca]dbcgYc^\cZ]`_YY^]]^e`^]^c[`aZ\a`]e_[X`b_`Z_c\Z]^d^_d^g]_ifd`d[YY\c^Vb`Za_^_P^_]]]`_\aaZ[[^cia_a^_\ag^X`\_]^\^^]]_Ta_^``d[eW[e_[]_^^]b[]Z[\\Y_^`Zb^h]`ca_cdVYc^]`Y^^_`^Y]_\Y\_`aX`\h`_^_Z^YZdY_Z`[_]_Xbba`aY_cTd]^ZW_b`]]]\_d_^]W\\`e[bb_\bf\Z^^`e^^^^`^]\c]a^__[a^X_]Y`\b]^`\ad[X_Y\_Y`^_]]a`__e`\c_Z_[``\\_]\\]]a^[`]b\bb\_`__^^^_e]d^Zc\_^^_`gZ_`b`T[a]_aV_X^d_d\fe`]e\`\X^eY_^_]`aabb_``\\Zc``_b^]^]\Y^^]c[[]`]^]`b^a\a`b[Z`_``_[`^d\b_`^^^`_a``\__]^^^a^bb_\]Z^``ba]^b``]__]`__[``ba`_\^^`]_]`]__^ac^dc]__]`]a_Zc\^]]a`d^_`___`c[b`\_bbeb_\\\aZ_b_^_`^aX_^[e]^_]\]]X_^_^^``d_`\__a`aab_d_aa\_]]_b^^_`a^_\[^\_`_eY_bbYla^c^`]\X_[^]a\d[[_^^`]`_[]_[\^]d``bb[[]^_afbY]Z][c`f^[\a^l^]abZj[_\e_b]^da_e]]ab^`\_\fe^]X]b^Y]_\X]f][`^^ba\^[aa]\fee\[_c^b`]^a`]`\ddYZh`\b_`a\\\cn`[[`f`]^`_^[a\`X]__a][^V\Zad\`Z`^a_^\a[_[aa^\\^]d]_ha_\^`_\ccab[_]ccae^^b^[`^^bca_[^`d]`_\a__]R``^`f`b`]\Z][^fa_]__\f_]d\^^^a^b]`^]]a_Zb`_\__`^_\b_b]lca_f^_a`^\\`_f^\\WY[a]Y]\__c^]]Z]]W]a`Y\e^\gYa_``ab[Zb]]b\_`Y_`^`^d^fc]^_a`b[aa]`_a^^a_\a]ab_`d_]]c_c`^]``Za^_`cb^\a[[__]d]\\]\\hd[_`ab]j]`g^na\`\]`^__V`_a`[c]f`Zc^^c^]\_ce^\``ad_`^]b`_`b^bcd]^^aWb_]_a``^ga\U`aX\^^[`ef^^h\\j``\c]`bba]`Yi`\]c`d_^b]`]]]_l\_[^b[b[^a]bab^`a`]_`Ze_]b_^_`c^^\````Z`bS\Y\^_[X]\^^_P[c_a[_`]b][b_]f[`\^`_b]ZZ[]][W\_^_`[_^a_U`^]_gw\W]\]^b\Z[]][V^afZ\W^_\_]a^^^Y`d\_]a^]\]X`bbVaX``^`l\`^[\^[a[d^ja`]Z^]_]b_\a_\]\Xf_d__Z]^\aa]\Ze^_^^\_^_[\^`][][]`gX[`\__YZb]c[a^_`e_b_]^[`^\]__[\ca^ebc]_^\\\_]^e^^_b[Y__d`[a__Z[^`\\bgb`f^d]bda^\^_][[b[a_^[_bae\_]]^\^a^^\ZW_Z]\]X[]`Ya]_\aa_\^_`[Y\b]\[_]ZcaZaa_\a^`[ac\_`_`^_``^^\Y_b^a_`^`a\\cbb]`_^_bdc^\`]c_^^`^\d\d_a_\_fY^[`Z`Y_adYa^_e\ea_c\__[_\a_\\`^aZ_Y^]^c[^iXc`^lbY_^_\_]\c\^a^__`[b__a_]bb_``]\X``^_Z^]d\cXa^_`]_a^\\][\_[`^`Zb_Z^^Y\^Zbab]`^]a\`^h][d^]``Z^a`__\_`^a[c]`][_`]_[_^ac_[^c`a__[a]f`a`_]]aY^]_^Z]^d[^]^^]`W`^]]_b]^bb[a\a_[a`^b\^X^]_[i_]a^_fa`c]\\Y_^`_f`cg`a`a]`\`^][_eZb]`]`c___cV^_[\_^_^^e_^ca^__b__]`_ba]dX\``_a\_g]\^e]]^]]b`\]`\]Z^`]^a^`Z_ab\]\_]````_\][_^`^_]c]^_[b^^Y_`\_\[bbZa^a`Z^a^]a`_bZ]^\die]b^`\a`c\]Z]a]d````a`ba]S[`ZaW__b_\]\bgc\^a`a`[W\iZb`a]^a_b]\a`c_^d^f_Vaj^h[ad_d^]Xa\aa][\lQ^cha]d`c[]__[\\`Y^^XU][]dabYXd^^_]`ceb^_ZZ[`d`[f_`\^`]^Zi`ZbY[\b^[\_Zi^\^_``[ca^^`]^]c][^b`^a``\\Wcf[d]_Zdb[\fbdZ[YXcc`\[aebge[`ZWZj\[_]Va_][_```\_\ba_[[^\g_^Y[]W\[ab]^VaS^`]^c`]_^ab\YW`[gZ]\eZ\aSa_\j[dj`c\dca_cce`i^\d_Zaa_da\aYa[^[b_b^[f^^Xaca[\`__\dZe_\`a^^`Z_b^d_`_c^__`]_^^__^_c]\`[_`\_`aZ\aY^_[Z[cb`X]\[c^aX^`[b^_\^Z]b[_]\^[e_\__]^Zdb`aa`_`_b^g_`^`]^^^bccaY[\`]a_`^g`a^b^_^]boY_X_a^]Zf_[`ac`b`\ba`c`fab__`[]d``]ea`[]cc``bab]\bdicbc__^``]ebcZd__]dZ^Z`^`__a^^`YV]^`df^X_fbWe][ah`_aaa\a_\a^b[^]c]_gd`\`_]a\\^Z`Zba``_`ZZ\c[_aadZ`a\__^__a_`]__[]Y\c`_]_ad_bY`Y\c][a^[e]]^]\Wg^a[]cV_`a`_b_b`]cgcc`^^\^a^_`c_^b_^`_\\adc]\_\`\\`Y````c_^_Z`\^]a_Zd\kl[a_b]__`d`ec^b^^c]c\b`]ib]_S_Y`b`^^aaa`^^`\Z]e`Zd__]dYacc`f\ab\bac_cc^e[bda_[]WaZ\_bYd^c``bcZY_\Z^__[Za`a_[a^`]d`[c]b]d^f`]R]j\`_k`aYaa\[c\^c][_X`baYa]d]]a`a_\d_\Y_g[b``bdY^]aa`Xe]Z_]^cW^^b___`_]\_]b^_]\\`]`^[\^_`]a\Z`^]b_`_a]\^_^``d`c_\\^]`^b]]`_[__a[a^]_^^`^^_`_```b`_``]Z`b^_^_Z`\_`a^Z]`a``^_W_\^_ab^a\^\`_`_`_b`c]``a`_^^_[ca_a_a]_bZ^b^`]__a]^]^`_`^b`b]_`_]]_a[^_`c^]^__a]_]]__[adg]eY_]^^]\_a^b[^_^e^^c_^^\[[`[^YZ\ag^_a^]b_^^\eZ`ba^``a_c`V^_^]bWe_\Ya_`b`Z_^]`hb\\`\[d^aag\[`haa``[eZ_aa`gX]\_\ga^f_c``]Za[^a[_bf\e^]_a_`c^_\`W\h][f\d]_h\_ZZ`ba\^Xa]\efaa_S^`^[YWb`]\a_l_b\_]b[\Z]_`_W^aac\^]\]^Z\_`^[b[\YZ]`_\_Xa[Z]^[a\]]_cc[X_\b]^bZ_bb]]^]`a^\d[\_a^`\Vb_]a]^_bc]\[^`hd`Y[^_Z^bf^`]\_c`[\]_[^__a^d[Y[Za[^___b^^W]]_\]\cc`Z\^]`[_\^^[_]e]_]\_[Z^^Z[]b][[Z^_`c]`[W^\acY_V]_bW_^ab[_a`dfb]ca^e`[]]d]]cc]\WX^`\b^Z[bZ\X\`_]^`d\a[]\]^_h_]aZX][]e\_\`e]^^daT\cY^\\^^_O_]^\a][l^`X[`fa][Y]_\`XY[[`^_]Y[d[^[[^]bY\^[`_aa]_X^ccf]abbfY`Za^\\_c^[_\\_aX[`[\[aZ_]`Yhaa\_^`a]^e^Z]^bk_^`b\aaa`[Y][\b[]\`[\Z^]]`c^^^a_]c^^`]b]`Wca\\bc^]ZY_b_]_c]]]Zi]]ba[]^`a\\a\^]cb^_]c`b`bY_c_\^`b`[_[^Xaac^^]b^\`]^_b`_]^[a^^a`bZ[`Z___^`\^`]a^_`b`aZ^^bgZc`]]d\fb_]^b[]^_fXb_``a^a^_`[]]_\[^^__ea^ab_]c]]dbb]\]bdddc]bb_YX^\a`]_]g_b^]`]aXaa`__]d^c^\^]ac_^_]^ba_`[d^`]dZc`^c^_a_\aca]b`_\^ab`]a^b^_g\b`X`_]^]d``\ej^^b\ac`eUX]`^b\^]`^d`]Za^afXbfb_^\j_^]`\^d_\d`^W[ab`b_bb_\]a`\YYc`eb^^d]`_c^Z[Y[```___\^[^_\b^Zc]_bX_a`^_\`a[bb_]_[]a`W`a]^]``^a^\\`d_^[^hb`_\`\\]_`^`^]^]a^[Z`[\aY^\^d^c\__]ck^Z_]\]``^_`^a^Z^b^be\]bc[`[`Yb\\`\`[`a`__`__\]]\__\Za^b_`^^^^Zh\d\Z`b_d_`]]_][e_ba_\aZ``]ebaee]ggZ^_`\`g^a\]\g\]c\Z[Y`^Y`[dbX[^__bY]ca^`W[^]\__[[cg`]eZ\]X^a\[b`b`[Z][]dfdZ^c\Zg]a]`f[b]]ab`ZZ\_aW_a`c_a\`^e_Y\ha[^`^`d`X^X_c`[b`_`a[Z`_]b]a\YW^\d^^c[d[\a`e]`adVeb\__]^^e^`b``[^_aZdZ^\`d^]b^^^_\^a\^ba^\]c__Z^Za\baa\g__]a^bc_b_f__``^\bb__]^ad_^]`Wf^hcec_^[\`^_bc\^c^^^\^]]Z^``_]``]Z^^d_\a_`dd`^c_a[a_[]b``a_a__]^]b^^d\_a[_\]b][_^acb\^a[jY]]`aa`^fa\\b]b_^\_Z]bc\_Z`\^__]_`\]]]a``a]_\_`[a`^]\Za\^]^a_^]Za^`aZ]\b]_a\g[]_]__e]\W_]\^^[^a[_b`aZ^]_^`]g\___^_[bY]^_a[da___h__^^d\_b\Z]c`^a`b\```_^^a]d\a^Z_]__`aaa^f`a^[\^_\b__Z`_]^^^\_`YZ^[b^Z[_\^_\\``_ad]]`]\d]\_^hba^]_`cd`a_Za^\bb_aZ`_^]ab_`^[a_^aa]h^d]`_^a\_b^a\_aY^\^_```__^]`__``_]^^`^_^_a_^_^``^]_[^^_daa^_^Zc]]`^^]_`a____\`b^^_c_]_c^\]`_^a`_ba^]`_a`b][[_ga]``^aa^^_^^`Yd\Wbc^e___`Y`a]^`d^a`^b^a\^af_ab_a^[_`b]_^]^_^dj_\XXe`a\`_\\[bcYea`]adg__ZY]T\]a_[]l]`a`a[a_Z\a``a]]adZb[^Y^[`a_Yd[\adZ]g]ZaW`ab\\^ac]b_^]]^`[\_fd`cY\O_^_aba_^[]W_c``__`a`Vb_bZ^c\^__Y_X_[\ca`Y^g]^b``_a]^\_b_a`^_\abb_ba\f[\]bbY\][`Xfa\Za^][\_[`^[_b]c`^`]`[]\ca^\\]^\]Yb__\_f^[_^^_Za_b__\^Z`a_b[`_cY]^ce``\^_ab`]]b[b]^fa^_[a\a]^ca^^``Z]`]]b[\^]f`_^]]][^a_Y]]d_baX[a\`a\^`ej^`^]_]^\_aa^`]\\_^_`][[`_\_][`_\Za^``^d^`W[]__c]\]\`c\\]^\^cb]_V``W][`d^ga\c^][ba\YcbcaaY\a^i]`bbWa^_\ZXZPP_XSa^abigfAb\g_y^\]]`dd^be]_aZ]Z^n^RVc\]Ia`_^d\[fed]_ZL^Z^Z`_faYZZY_^d\_`^WcdX]`dYZ_cdb\XdWeY_]__haYa]Zf]bYZ]jZ_VZb^ZSdh_`ai\_>]e`^^hWYRaa\^Ugea]bc\b\adVY^Z\fd]]\]_^WdZ`^hb][`cu^a[^]Z`ab]b][W_k_WbYS^fd_e[_ZXW^_a``T_b[^[a[bZY^g^T[_ZaLcm`ef\\abeZ[ZUY^^m\`_^\_\[`\b\b^b\ZVS[\df__Yf`\`aO`Wbe]]e[][[Y`ebZU]__\`]_abZZ_S__]f\UY[Z\b_bb]]U`b\d^`dZc[d^^dZ^f[\]`jY]f`a]]`ga\[bag`]_d[`_[`\\fZa```ea^aU_a`\`beca^^^_a]\Z^_[Z_\`ZZadZ[bZ\]^e]^bZb\eYab]eac]`_Ql[b]aaa]]bZkk`]dZ^d]\\`dbZZd^_^idb[cb]caahab_]^d^`Y_f`aYi_]^]gabadccc_]^[\\ab_a[eb\[YdT[cwaakT\c]a^Zfg^_^aZciaZRbifka`]V^fc]\b]_ggd^_Z[[b^c_[\[kZ_\gXbia`ZZ`d_Xd]cX]gcOcbheadac`a]daNeW^Yfe_dhX[Za]mm^`c[\bZa[\cYdb[Y[aX_]ca\`gcf_c_aVbgZq`[V`f_cg``[__YXjW[jXY]eahjh]`[W`a^a^`]lXY]\^\_f[^`\__^`c`^]`b[^Za]_Z_`V_a]^\d`Zd]\^_[]^`__\]e[_d__f_Y]\aaga]^`^^_]a_]a^[W^_``^a\_b``\_b_]_c^]\\^\_^df^`bZ\^^^]]Xa]b]Zb\_hab]`Z_a]a\\_[Z[]_]j]Y_^]a^^Z____][]Z[a__Z[`\g\]W`bY`cf[`]cWa_`bb\`dd\ba]]`^a__\_][bbb_bd]c[d[`Z__a\]^_Y^^b\\_\cc^W[a\_\_[[_^d^^^Z^^]_b^^a]\\a^ad_^aab]__^^b\^]\[[`\`_[][b\a^__]`^aaa_a[[\^a`\^da``[]``h_a^]\[^`Za^^acc]a_c[Zf_d\]`\X^`]`__`_Z[c\b]\][ba_\[ZXa__^\^dc_d]_f`abab^b[_[_\ZadZj]]b_`X\`^^]`c]i\`WZe_b^eeX[[ZlW]^fc]Yhf`ahc\VajXYe]b`\Z^j`]Xeb_]e^\e\T_`^e_aX`[g^_eh`_Y__]U_ac`]\dY]^l^\Y]`^]k]_^\\[Zf_\YZ`VZ\a_`]]\Zl_]`ac\eb_]sdb`\aae_a\X^\^[a_le_^\Z]`]_^b_gah[]]ZcVb_f]]_``\]^]_\ZZ\^bZs]^\bbVd_\]W_^Z]Wa]`\\`e^]`a_`\_\ZY\Xc`a[\a\Z\f[]]c^`]_]ZcdZXZ]\Z_aZ]Wah\_f_\cR]kc`d\^_dd]Z`cc_]^[Z[W^^f_\`o[[T_[`_b``c`\Yc^e]X`jX^]daXX[W`f_^bf`b`V_\][[^aa^_`b[^_`Z\[VVf][Y_\^]_][\YY]bd\\]adW]\^aZ_`Z^a]^X^Zd_Z]XbZ\^aW__[[Zcc\]_b]d_^\`^W^[^aa\]`\_aZ]]a\]]]Z_Z_^[`Xb[_d^_Ta]_cc]]^[_[`gYZ_f_`aZV`__Z]_]\^dZZa][[[\`aX]___^\YYa\__dc`X\]^]Y\`cQZ`X^[Zc_^Z`_[\^d^][[WX`]a\]VfZ`\`WV][Y]`^\\_^e]X_\][__XYa_^_^]XaY[R\Y^\^Zb`]_\`]Z`Y^cfa]Zb`a_agea[eX][[[X[Z`ZZV^\_d^c^_Z_[\\X``g_X[^Z`]][]T\\e`]]X\Z]_Z]b``][]]^\f^_]aic\_YYZ[cXZ`ca`c[_`]]`i]^XbcW\X\Z[[]a]ZY^c][`ZW]_v[]]W`_^]^\^Xc[bbfa^ada\\k]_`Y`^`d`[iXfb_Zah\^`]t^`]aYY]X\fg``cYk]cb_c`[b\[f_e[]]]_dce^^^g\Uf`[`]^^]]`dfX\YXVb_`Z_XW`[ba\\[_i^baa_jZQbZ`^aa`_]\b^^i[^^bZd\_ZX^Wi[\]]h_cd\XR`j\b[`e\c[Z_ad^Me^bc`[_[_[c^`cccUZ`dY\Z]b\^[]`\Z^a^^^_Zc\`d^\_Z]`ah_]_^[]\_Y^]__Z\_X_e_a^id_\b_a\^^acacY[c^iW`Z\T^\^bb^a^fd\d_`cdY^c_]]X`dZZ\`W^\bX]_X`Z`[S_^Zc`]^_\Zdfd]\Y^dZbbWa^bpc\`b^a]Xabhd[_V`[WX]b_][[c\[`^_Y[\]Y`ba__^ZcZ]^^c]`[_]]^dZ[lX]\`^]Q^db]Y^__l^a][[b`aYa^_Z]]\bc`b_^\[if^[YZ^^ae\_`ed[eY^b^]\`]]_Zb`b]g^^a\_^\\_]Zj^bV`Z][a`a__a_g\^]]^U\b[^^]]_\c\`^\Z]e^a]c_]^^`]`Z`b`_[V`]a[]bW_^ab_[d\\[]V[ac][`]^^c_^ZZdb[``_\`]f`[^_a\\^Y[^_]]Zb^]\\b^^`\]Y]ZZ]Z_Y]`d_b[f\_\\^a]__`a[^[[_a_eW^a^]``Z[b^f]b]]_a`[]_]ZZ_bb_Z]a[`_ZZ^][b_c\]Y__`\_ce_\]]]^_`\a``eXZY_a`a[][`^]Z`]\Z[\h_b[^]Xcc]]\\^a[]e[_^]dbd^b__aZZ^^b`hZ]fh_aZ]baZ[`c[W^]`]Zcc^_^]^Z^[Z\Z]_]I[^\Y[b^`]bXb^^b_^Z`f[UTZaW[d^_aa]`Y\Zae__]_`e^[`_^^_a^]__d_^Zeee]^a^`bac\We[^be\Xbghba[\`]^]^c^gZ]^ZW`^Vb^bf\`]a_c^V]R]bjaYda^c^]^e[b]]_`[^_[[`^_^]^a]^_YW_Y^^\_d`c`^`^af__]]^_Z[]^a\g\dZ][[]d^nca\\``[\_f\__d`a^`]_a]d`eb_Z_`^]]bd`aZ\_^b`b[W_Zc`_]Z]`^b`][^[^_e[[gfgZ\^\f]^^_d^g]S]_`Z^^Z]]]_Z\ba\[X_\V`\f\^Y^]Y]^Z[f]`[__^`\a_g\]]Z_^_Te\`VZ]`Z`d\^\]^a_W^\W^c_^_]e]a__`Z_aW][Y]`][a_`b[Z`W][ObZ_`__^][b`P^d]^a\YaaK_W_^`_\]]^][`c[_`c]d`c``_a_BZ`[^_dcb\bVeX[X_bX]^^^_``^\YWVaYW]]`Z]_^``Z^a^[_Zb]^^`^_ZaWcZ`eRaY^_[`^\]`X`nZb`aZ`d[^Y`^[a^d_ac^Xd]_Zd]^^b^[^d\`bX_\Z]]_[Z`\d`]W_c`[ea]e\a^Q\a\]]`ae`b^bbf^[[Z_[k_\]X^b\^d\`oa\Ya]a^\`j`bb^ZXaYf]]]b`ebYa``b^`^Z_b^__fa[\__\_\bae^]bWZ_aad`f[\jad\ca[`bb[`[WY\Zg[hbfaYZ]ccad`b^]c`][e]^^`\`]T^]^R\c]^^_^b]cc]_a_^[_Y```^c^f`d[abb`L^^bb^^_Zj^]c[ca^Xb_e]bca`___^N1`_bbaO][[^`\ZXf^Z]^^Y_[_c]_`_dc]\_``a^_^T[bc]b^a\c^^]^i_`[cc]c`\bZ]_\X_U\bf`e`]_Z^]``\`X]`\b_`\]a\``]\_^^`dc_Ug\`Z\ZYZg^Qf_`]h[\__alYaX`U]Q]^a\V[[_V\q``^gYXbaX\e`Q\Y^YdKY``dX][fYUW_]Ya^\[^a`[`Ulb^_VakYPYY_`g\VN\acbZ^[bY`^gY\^Z\aZ\O^ZZZ^\EX^jfbTYX_eWhTbuYUXT[[i]]G]Ye^^^bd_]a`^>X`V]a[LY__ibl]\[Z]eS^YZ]`]]UZ`aa_Ycg_[c]b^bea^uc[jVadh]`ZcX`\^Z^fX[aVW\d\`Zk^^ec_`a\glVel[eX[`Z[\_a]Y^``cV_T`Yb^c[Yod[fe\^Sf`g\]k[[UTZ^a[`bblpslZbdcYa`ng^bb^^d^fceb_Zla^c]T_ed_`[gZQbYS_WqOd]j`gIP_^XZ]c[SYidi]bk^Y]a]\``Y^_`c[^U]\_Z^[\_b_`a^b__[_YYa_]_[_\\_c_^_`[`i\_a\`Zhb`d\e^a]\ab]___Y_aea]_bg[`^][Z]^`d[a_e``d^b`^\`b\g]`Xb\_Z_\][]^]^e]\^ZT\d^^^]\_a^[\`a_ec^a`]\ha_dc^b_`Zb]`[^a\^]^`_h\]a^_]b\Waba^_[`]`eac]^b]\Z[_^\^[b^[]c\`]\`db[_\^^`^__a_X\[^a]]]]][[^^]]ZZ\Z\__\^\\\[\a_]_[[c_^_]a^^`_`_^[_\_^_\]c^\^]__[___\[__Yc^^^\][ba_]^a[^bc`X[``]_]_`\[^\Z^]\[^Zc^b__a__Y^^]_^[]\^]_^hba`[]^a^^_]U`]_[V^e_]b\]^_[ba^^\Z`]\]_`^a`cZg_^Z^aZ_\Xb`^__e^\b]e^bcc\^]a^`aad``aZ\\_^\\Y\]^Z[`_a`^aa_]a\a\^c`_`c[_fcbab]]`__^_`a]_a^`\_[[ad_]b^___^_bZg^^Z^\\^^]^a_\`_b`_`a[_^^^\_be]`^\]]^___`__`]da`\_]]c]b`^_[`\_\\]Y]ccX\eZ[gXZW`c]_e[`[V_^_`c^]c\b]g]i]`_`aa^```aa[Y][X\d\[[]V_`[\c\a_dZbdV^\^_b]\\\[b]^]^^^_^`_]bfbZ[U[][[^]\^^^Yi[\`^^__^_b_`\`d][\^_]^\\ga\^[`aZ^c`c\[c\[Y`\[X^\c]^_[`T]a`\]]\[][]Y\b^\_^a]_`_^Yc`\dd`_]Zc^e][^a]``dW]Ta^^`caba\d]_m`_[c]Y`c]a^_d`cW\Xd^]a[_c\^b\e]bY^a^_W__Udf\a]`e``\b_^aXbd]_^ab`_^`_``^]X]a_b^]^Y]U\_[\\^^a\dY[[^_b_^`\[`_\a__[]uV_]Y]^abc^``dY]]`]`]Y^[__Y_]\]a^a^\\__cY_c^^^XXY^^^cV]\__^[`_`\b_ba\Yb]_c__VaRb\`ea\aZ_e]haY_^aYg]]\]V^a``Z[`__\g^\bdbdb\ai\^_`_^_^[\]Xg^_]hb[ac\]\^[^]__]Z\e_^\^bbZ`c]XYf`^^]`Z]^]`Z\]__`dZ_^e[]ac[\bY\hec`[]`]]]Y`scZ\\\_b\`\`[b\[[Z^^_\\]__`b\]_]\_]\\]]]_^_^d\]`____`\^`]b`^^__``_`__`ad^^^ed]]`^a^a^a_Z_[]\`c\^Xa`_[\_^^da`_^fa]aa`]___[aZ^d^c`^^\_``aZ^\c\\b`Xca`W^c_a\__]^[]_a^^b^V]``^^`[_`^]_\^`[`][d_h\e_^[]`\_a^]^]\[[b^_\aaa]]]`]_`a`a]d]]d]_][]^`^`]]a^aa^c\b_T\\[^Y\`^cZZ\Wa^`dd`eiaZ_cabg]a[a]dae^^aa[c^a\\e`f]\^][\d]^`]ZZdb]_a_i^\b]^`_aZX^\Z\^bba^hb]W^caa^`]]a[b\\_[`ee`\Y`_^]]_h]^_[`[]ba`f]`^_`X`_^^_\ba\d]\[a_a^_\]a``\ee`d[c]_\bd^bcc[edd`_\_^_]d^]ac__]^ga`ad_c]^hc`^^^_mYa]]`]_Z^g]^Z`]b_]_[babZ_c]Y_\^b``cd^\d\gb^aab^_``^Zf\b[^^^_^c\]^]b\\`Zfc^_^\[bfa`^h`[ce`[]cc_`]_]]ee\_]\^d[^a^a]`\j_bcYbcb]]]^]bbb\]]d\Z_^^_f[_aab]__`Z^__\\a]\e\^[\[\Y`^]\[\`\^\^g[[_^\^b^\\b]^Z^_`_]c]]ab[`\\a`^[]]ad[^`\WX]^`Zc^^b]]^`^[b^^[a_\`V\_^ba[a^_\Zaac_[b_a[]_]_c]`]X_^b_\cSa\cc^_c]\c`Z\^^^[[ca^a[c[`U_bZaa[\^]^__\[\]]b^__]_bh__^__`\][a`a_b^`ae]^X\a]Z[_`^ab`\`_db\]Vb\a\aX_Ya]^`]\ZP^\^a\\_`]]]^Z]`Z]g\a]_[`ebWa_bbb[`\d^_]^^_bZ\c\d`\^\_]Z\`[]`^^\d]Ya]V^`Y\][[[^_X^[^h[[cf^b_[`\^]Zd^^aac\a_bY_]e`k^]X[a\\b^^[X^_gd\^^^b^\dY[[_`[Y`]a_^_XYfY_Z]Z]^\c\a`\]bb^\[][YZ]]__]\^_\^`\^`\a[`Z\Y\^^c^_`^_^a``W`db_[]a\``[Y]c\ca]\[_Yc_\`\_\[_\\]a^Zd[[^_ZZ^fZV_\\_\VZ_b_Vb_`]\Ya_a][]aYd\`[\^_]a``_Xc]_]\a[^Z_f`f^ZZ]]]`b`aa[f[e[_^cYc]Ybc]_^a\_a^Z]Vb^[\e`bc^e\b__eb]ac^`]]beU]fc^^^J]X]]c]`]]c`]\]kZ^Z[XX^[a[_[^^j\`_d^^^W\a\]]cc[aV^Ya\]eZ^_SlaaaWU`[f]ahbaZk[\YZ`[ag[Xp^`_S_\^c_`]]\`][`_Yc`\\_Ub[kdWNb^Z]h^^`Uc[_^^beY`]^``[_aa^^Y^\Y\_]_`^_\^Z_^he]ch\`^^^\]_\_`b_c\b[Y]`b^d]e__ZcZ_f`[]`^\b_^]`\]^cb^_\^]_[f[\\`ab`^^^V`a\XcY^b\bj`b__Y^^\\\[[]`\]Zd\b]`^Z``cb\c\\]\]\_ZY]``\^\Z`X`\f]\\a_a[ba[^]cg_b\b^e^^bY^Z`]`^`d_Xg\b\\Ze^]c^a[\]]ZZ^]_ad`\a`fX`c^YbR]^a[Z^^Za[cYc]ee^e[i[Z_b_dZ``]\b]d]W[]Zc]]]e`Xc]]a_]c_`b^^]dab^]a^e^yc]^`\c[_d`]ae\ea`dUb]VO\Y]^^_bdb]U\bYZ\ahV^`]cbc[[Zn`\Y`_`[f`a_b[bcn^_][^][W]hZbZ]ab^aa__`a^[``a`^c__^_^_iea^c[^^]`Z]^]`a\_\]^`_]`^_]^^[``\ba]aab^d]a]aa^]]`^ca^_edc]`ac^\`d`a^_b]e]aZ\e^^^ba]^ZabZ`[be`_``^`]\^\\b^_`[^]__``__[_^_`a`a_a^_^b]]\____^`_`__a_`\^_ba]d[^_^`^_a\[_a^t`___^W^[\a^Z]^^_adh^_bZb`Z`aeZZeYZ__]`[^Z\Y\\]d`^[]\]g]Yc`[\]eb[a[^^^[\`]\\c`[\_a^_c__\a^_^\aq`_b]a`^^]af]]e\R_\^^[`^bceY^_`h_\[d`^[WZ\[`][__ac_bcZZ`jh]W]Y^_`aYY]`\V`cj`^dbb____f_\`\Waaebk\a`[[a\\Xa[q]d_]qZ[[`a^ZXd[\L`Q\SX]]gi^VaZabaad^UTRd_iea_eZ[c\]T^UXZ^cH[c_\ffZd^eW`YYN]aK[_b\Xe]\_Y[^^]d]Xah_v]e^caOb_Z`dVXQe^^b[N\bcWaocXX_e^Z`^b\dZ\aYlT_f_aXR\`Z[dZ[WbWZ^\YZV_We`[Q``VWhVW[YiT^[acka]e^XZ]_[]V]^b]_aa_]dceZgY`\^UZ]\Z\\[_Vc\]b`l]^\Y]ZaV]e_[]b`aXZY`]`Z`YeY^[\]b\cjdb\]_^`\\WaYWYaY\_`aW`b_dY]W_aY_]\__X\`b_`\^`eVTf^a]ca^_```][baZ][\Yb[c_Yi]cWb^_caYaY^dY^]_f^a^^\]`^[X]aY_a^^]_b]ZZ[\WbcYW\adX]hZb]\\]g\n^jX^q]^Za[^^cX[_`a]YZ^YZ\b\baZbX`[d_[^bc`_\[V]][h\X\^b]cb_^Yc]Z^X[_^][]]d^cZda\[a]Q]]`^_Y[Ze`]e\b^b]`a_Y\`_]Yd_e\WbT`aXZZbd[[U_X__kc^\Rb`Z\aaf\\a^Yc_db`\c]Y_dabcZ`_\]fa^\Z^^`]\]a^`Yaa[cc]_\X`^\^ac^^`d___]_[^\i^[Tc^]\^dbh\[Z`d^ea[\aY[_bf`[_]f^U_hdZ``f\WcY_`]cYY^_^]e`]^_bc_c`\]V^]^[]hZ`b_\]b_]ada[dT]bd^_a^a_a`b]i[\cc`^`Zc]^e]^Z\^]]b]\]^[[]_`a_\]]_]\c`\a`YZ`_c^_^^[^__]Z`b_][bZ^^^``WaXa`_\e^`[^a`_dY^d_]dY]^Z^[___]_^^_[]^\]_a_^\ZZ]\^\aeYY\bc`\][Y\[\cZc`^_Yca_^`]\\_U_ba[]\d^aY^_`Z^b_e\]]Zf^hk]Wad`]Y^]]^a]f^_[\_bd``Z`s_Y[j^\^Yb]_]cZb][Z]c\^bac[_^^\Y^bb`e^`\Va^_W_[h[ed\^[\\b`cOcY[[rXXb`\_aa_][_^\PX^ecdY]ca_]Z^[bebh[bac`\`[]Z`]Z`a]^a[_^`_g]dj\^\`a^\Zdfgc[_\c^b\Yb^^`Z^hY_c^_^[Xab]`[aY_Xb^Y]^hV]ZgZba`Y^hX^Z^\]c^^_[`^a[`]Zl^bdag_[_`a^Xac`dVd^^V\^hZ^ae``\[e[b_ahcb^`^_W]d^]]^[l]``gf]`\ah^Zaa^aVc_\bT[ib]]__ad^aUc_[_`[]g]g]a^[\_^Y^Z_`]^]b_c\_\V^a]Y`^ZZcd^^e\df^ba`f[_``i_W]_`ama\j_a`_adb__[i_[]Zka]_Y\a[[cY_]\[_[a`_k`Zdb]Y\]b^^a^ech_bZ]bZ]^\[a`^ZZ\`d[_`][^__c_[]Z^[_]]]__bd`_^U_[^]\^Z^[`cd]`_]_a_^eca]^Z_^]^X_]\\_]_\]]]_`]]a[b^a`]_b`_X_]c__\a]_^h[V`[_\_]^\\^^\_^``W]Z_X^cZaZ`]^^Z`\_`b\^_`]a\][Y[^^^\^^][[]\^]_aZc][]]Y_bab`[d[\b\^e_[a`YY`c]]`cb`[``^^^b[``e^[_b`\X\]`a_\`\[[`^d]^f`e]]c[Z\`^^]_`]^[a^b^aY__ab^^ba_bd_\_b\`^aa__`^Z_b\]Vcga_b\\^[^_`\b_^]a\]`\\cdeW__^aadZ]e^^bZi_`\a\`[`\_Z`\db\_^^_\^c_]][\Zaa_]`]ab_]_a_^c\]\f]aabcj]]]f[g_Y\e[^]j[][bhaeZad[Y^V]Z]d]o\Za^[]j^_[a`][a^`a`b_b^^^`]a`^_b\`_Ybf]__cX[\`_X]_`g]b_`eZ_h`e[__`YZ_[]a]a]a`_fa^\^]Z^a_X^_edcdZa\_`^X[Y\b\]]bd^Wb[b_abfaZ^Zfba_X^^`^\]^c\[\^]W]ab_]n_j\]``dbY\^^Xf]ab\^_^_^\^a[\\Z_f^]\^Yc[_i\Yb]^W_dfa\]^aVaW[d[ea_[]]_^aa^Zae]^_``[\d]_[][[Z^[a_c`c^d]]_g^Z\Ya`_c[hb^]d^\^c\^^bebd`^_X^c\[^be]_]b_W_^a\_\ZXVZUc[c^_]YX_^a[b\`jcZdaa^cb`[]bca__a^`]a][\ZbYaYcdZ^\\Wa\]_c```]\a]ZZ\Tc_Z`^YYcZ`[[_[[`]Xb]]X`X_^^^]e`\gX^V]^\^\bZ\\Z`b^^_eX[^e_W\da\Z\__\^X\`f_`[YS^``f]_d[Za`]^_aVY^`Xd]X]_^`Z_\b\ZWX[^]]\W]ZZZY]\acXVZW`]^a]a]__`[Y\\c__S]_Y\_a\]b_[d]Zc\_^_]\Yb_`^a\_[[]\Zc^X_f]h\]_a\Z_[\X^a^]_b]eZ`h_[^]\_j^^[X^Z\dZ[_U_^]Y`__^]\[\\h_^[dZ\k]]eZaZ]____Y^\\Z`Zbc^g^c```]b_\W][_\]X]b\]Y`\_g]`_f][V\``b_^_X`__\XhZ]_c`^af]^[ae`Y]^d\\_m]\]^eZcZ`_\^^`aYa^\Z]g^b^fa]^[]_]\_Vb^a\a[aa^a^hca_^X[[[[\^]]a_b_Z^`aY^a]^_U]\^d_][Ya]]m_e[Z]\^R[`WZ`[^Y^`]Z_[`YYbZdX]]d`\[]]aa_`b[Y]Za_X[W]^addXbe`]^ac_b[W]]\^\`\]V`Z_acab_XdYZ^_^__bc]]Y[dY`U`[_bUa^\a`\`Za^^^``^[^_acdU^`b\^Zb]bbcb_^g__YW_Z]^_b]a_a``^g^\_^^_ZZ^a_c\Y``a\^^W`b[b_`b^]^d][^b^gb_b[g`[`aZg]f[hb]da^`]h_[L\`]d]_b[da^]d^`a^ahV_ce]b^]]]]]b\]_f^[[fv[Y]_`[]ac_]e]aY\]W\`^[_eYee\^`_U^_[^`bi_^_`b`Xe^^^fc\[e_U`]`aXZUbc_]aWefa_effj_ga`g_a]XY[adecYf^^gbdY]]a^ad_d\cfjchcqZeYbdbbWdbaa\coaa``]^XWcf]e_mc]dadR``a[_`eUncdgSYiciUamk`V{hcU`[d\gWYl\haZ]bY`\^dZYkS[^Z_daT_VU^cs^eFhZ`\li^`baThZhnafYb`\_Zbba_Za\W^d`]Yb_]]cdbb]]W`[[[dUa`[d`dZdNcW_dUah^]dj]_gaZ^Za[\]`_b]d_`^Y]mX^fXc\]ZcZ9_[cbYb_paacb_U\`Z\edba_Z[`^ebXfS`cY[Sb]\\cTQ\a^eVWdY^_facfceW\S`accaai]X^bc\^^`Q\_[dim\aY]^bg_UYdhgbWgeYY\^^a`_Zb\ZY\][bZ]^\eZRZ[_\WY[V\_Z^YX]^aa[_^^]^]\_`]`c\\\k^`Zag_^`Zb]^`[XRZec]`^ca[dd`bQZ[]]]Z]a^^d]V_[_XY]_[\Y_^aZ`[^`^__`g^_\ZWP`WU[Z_Y_^]^`Z]YbYXj_^\_]ZZYX[[ZaabZa^X_WV_cn\`]_ZaaYZ][[Ye]``_^a\[_a^`]cc_^^^_a_^`^cZa_\]]^\]_a^]`[^j`^a]_``c`]``\^]]^Zl^[^__`\[]_c_]]\c\]]_`^gY`b^]_[_]_`_]_b[bdbX[_\\c_`_b^`_]Ze]_]a_c]``^a_]acX[Z`\c\^ZYa^_`]c]baa^_`]aYb_^]\\^a]`_]\\_]c_^aca__Z^d^_a`[`Z]`a`[[_c]\``_`]_^]`]]`]a\^^a[]]ba^^b_a^[_YZ^ae[[_`[dbb^`ZaY\a_`X[Zba_cb`_a\bY`d^\]c]`^\[_``c[]```a[U``T]Y^\_\_]X`\_[\`_`c^aed^Z`d^Z[b_]^\`]\]^``a^`XW\__e```ae^`Z\Y^]Y\`^]_`g`[__`aa^aX\c_\^]`__]a]]]]]\ba`\a]^___][_\]^aYe__^_da^_^`\_^^^b``^][_k\^\^\\^\Z`\[\Y\Y\_`[___^]_^aa[ba]a`\\_]a`]b_\]\\^`]`_^__Z^b^^a`_^Z]d_[^^_a]^da`_`_]\`^__\Za\^``\Z]]^[^a`cb^]\^__b`_b]Z\_ba^__]_[]ab`^a_Y]YZ__a``ad``^]]Xea^`[b_`_c^_]ab`_Y^`[d_b\^_^\a`Zbd^[[]YV^_\^\b_[[`Yb[i^bY_]]_b]^aa]^gb^__``_`\[]]_a_]\_\_X\\]`[^_^b_^c`\c]``^\b`aa\b]ea]_^^]ba]_`ZU`Z^\``]]_\`cd[a\YbYZ]`\``\`\b\a[^c`]`dd_^\c\`e^[]_]]a`c\[\_cYbY\\[]W_dab_^ea^`_c_]_\`^]\U_da_`^^][`\b_b`a\]_\dZb^bXWZ_^_Ya\`^`_Y^]]``Wca\[a^[`]^d^[b\[f`_`Zb_[a[_b`YbYZb\edb\[`^\aX_[_b_Wa^Y[a^Ra^][^[a[]ad\c`^^^g_\^cb`d`_`a_W]_a`__`]`[]Y\]a`]\X^b\]aaY`e[a[YYagYf]]XcXbZ]e[X]abaXb_\`f\c^]aYa^`d^k^Z_cab]^R^ba^i__``a_^]dZb_[\Y__eb_`e]a`^]Za\__qc]i]]^a`af_c]_a\^`\[c]b]\YXhbYc[d^e_g]`\[ac_W`\^^`^R_b[k]^^a`__^`\]]Xb]`g_ia__^Z[`cg]^ab^dX[\ba]^_a^Ta_c\_YQZ[^_`V\]d[[[`^\\]Xca_Ye\``[\]^e_`]\Y]^b_`\[`\YZ^bXYY^[[X[ab\^bbVb_aaa__\c[^\_[UeY_\aXXbY\_Z]aX\`Z^]d`ZZY]_^bY^`bYY[a^Y`__]^Zf]_\[aUY]Sb_\_^\a[Y^\]`a_\a`_\_`]`_Ya^\]b]b[X_`aX_aX^^^\g\^`]_cbe_p_`^Z]W^Y__b[aX^\Z]X^_bed`b_]b]ZcV`^aaP`\c]Z[`a\a[fZ^b]\]e^^^``^b\\P[a[cb^b[da_b`]^a_]]d]]\\]][^``bbd^__[[]_Z]c\Z^edb\^`]da__^Zc]^_q`Xc^Yeca_Xcab[^Z_[`W`Z_]]`]_c_`^\^^Y_b_^SaZa\\^]`g^abf`^`]a^]`Zd[[[bb[]\eW[^[`sc]_^j^_\_j\_Z]b]^ajebYbe]^[_\gc]`R]\b^^WZi[ba\a_Vb_Y__]]_bpba]`\_\Y]]```e]\`fc^_]b\`b`[a^^]bp]Z_\^Z^^`c\[_j_c[___e___^cb\b_Y`^_b_]ba\a_W]ae_cadb`]_[``]b`cd^_aa^X^cX[egWZ[]_][_[[bM[_ZXja[Yaca`_VdW`ZajX^T_V]^ea`]aaadYVYXa_e[a\Y\]_Z]gb_Z]Yd_Uc__biXVgZX[ei``^Vc]\^]^cb^]Z_g]][`eb`\_i\][_^_Zc^a_Y`Vda\`YWX[a^^^]`ZUi[[Y^eZ[[_XT`W`Wa`YYZ]gdV^^jaa`[Y[f\a]_\_i_[bX[f\^db[\bfZa_\__c]c]_]`aka[``\[aYY]]_]c`d]\^ca^YTaba\a\`_j[]]^^[\^db\a`[`ZZ^^aa^a__cb^^Z\d]`[caeeY]X[^Y]^`]^`\^\_[Yad[^\^_c^Y\^^c^XZa`b_bZ]Zgc^g^`]Z`\a`^\aY]]ca]\_ja^_\]^X`_hc`^aj_\ZZ^\\[`b[Z_Z]\]Yb[Z`\]i]bbb]Y^^Y\Vb\d]c``[`[aX\fa^aZZX`ae_Zd\^Xd`aZ__a\ae]c[^`[_]b]`[[dZV^aV][_^a]\Z[b`_c_cX^U_[WW__^\\_^[^\cW_Zf[]^][_bZY`Y]d]_[]a^]`\Zb\bh_[_[eU[Z_bd`c^^[`^b_\\]a^a]d]cZ^`_S__]`Y[f\\a\c\]`bZXV\b_\^g`_Z`][]\^]XXZ[\X`\\\acX\]d][^b]]]ZXb\X]a_]Zb[b`]^U[^^Z_]]WaY^gXY^[]b\UYcT\i^^YZ][aZY]a\^]^X^]_[a[a_]Wb`Y_`bdc_`^XZbbea`\\b[Z^]^][e[`T[]_`]b^\_``TY[_\Z[WY\`\`Zb\L^\]^^Y^_fc]\]\_b]aX`bd\ec]__ea`^^`ZZ^a_^aaZbZ]c]X\bh`Y]c\bZ]__`f[`Ua`ed]b\Y_`^d]X\]acb^^aYcZ]][Zd]da][_]Zp]`a_\f`Z^a]c_a\^a_^\\^b_`[`XY^]\a\[ceTcgedgb^][]Zi_b^a_\`e]_hZ_bX_^c[^___`^[Y^]W_`idWUb]W^aY\ZZb^aZdaa^_^^]^__]`]^\VVZ]a_Y]]Y_Z\Y_Y[[^\^[XdZ^\O_\Y[]]]ZX^]aZ_]]__XZ[_[_\\]]\_^Z_`]eb`\`_Y[\gf[Z\\Z\[_WZe\][\Z[\[]\_\[`_^^W[^W^^`[]ddV[\eRZdZ\^d\[`ag\V[]_]Y`^]`[[]a_`ZZ]_b]_XX_^\\[``_^__W^[b`Z]X[Xb`a^a__\Y^a\[_a`]_YZd\Z[`Z]_]ea^gaSXb\h_ab]h^a^\^\_Z^\\^`cab`^Y^^``\_[^c[ZZ`_`]`c\_^Z^`\[b`_gYb^_`]bT^`[W_][\adba][`_[bbW\^^`bY][_]ad^`^a``\_``Z`^a]_^]^\Xc\^fW_]__]bZb[^]_`b_\d\_Z]^\]\Z``[c]a][aX`Y\`^\k_W^e^`\cU`\hc^\`Y^[d\\Z\b\_d\a`a___^[Wab`Z[[c_e]\X\bc][\_^V`]b^[`]^a\dT_c_dadZ__Tc\\b^cX^]^[X`[X\Ve_U`[b\^bc^aa[b^id`c``Xb^\Z`d][a_``]\gZ_aU[eU]]bi`^\^^WcZ]_Z`]^Zb\aW_^a^]e^\b\_b`^b_[\\a^^Zfb^_b^^\]`[``_^a^cc[^d_Y_c__a[]a^]^\\\]aab_a^_Y^h\]_^`^c^a_^c_^Y^c^^][\^_e_dg^d\dd_^]]_Za`aa]`\a_^^`a^]a\b`]b^`bd^^^]^`]Y^f`Yb]`fb^^^`ecZ__h__aba\`_]`^c`a^d]_b_``_``i_aa^ajbc_ba`a^`]__]a^\`ZaZ`_\\`^^^`X`_[^`\]^`_^b]`d\`]_\_^__[`^_ag]b`a_^_]e^]_c\e_^aa_\_\X_\_^bX^_`_a^`_d]``[^^[]^_`[Z`ecZ_[\^`U^c^W\b[_`hdW^]ed]_^aX`[ba\^X]\_^`aag[\a_]^[_]_bg]^]]aZa__a_`W^b`^YZ`aaaa_`caa]\ad][b^_\[^]c^`\\be[]a`]]e``]\_]ab_[\_aX_ab^`ZXad[`eY^]Zf\`\_a`a[ac_[f^[Y[]b__\_Za`_`\ab_b\^_db^^`^[_\]d\__X]^aj\^abeaa``Ym`\Yb`a_`[_]W]]]ab^\bf^c^Y_^_\\^\]aa_^b_\Z^^cZ`]^\^ba[Z^ba`^_a]e`a_k^jY`^\_X^`dV^\Y^a[Wf\\_c_a_`e[_bdd`[_`]]_^d\`cY[UYbea^aV\e_Yb_Yc\_^]`k^`[_^YeaZ`][]]ZXe]da\bcb]cZY^R_V]`^f_L^a`_db`X\\\aXZ[Y]hea_ci_ad`PYd_Q[\jW[^_a[YY`]]L]]]e]_^_`f_d_P\acaX_\c`^I_aXd]m`_`_Ua]_hd^Zcb\Z^``]bb^acb_d^]^``d]`ac^[]]a]]aaaa^db^`^_d_^]\eb[`_[\c[\]^Z[d]d^d`b^Z\_]\c__\^^^a]b`\a``^_]f]Zd\^\`]aa`\dZi`d]e^b]`_aa^`\]^d_aa[caX\_ea^a\aca_`\b`_\baa\_`c\`_abgd]\b\]a`_`\\aacd\_^b]_]\ab`b\__^[^_]`_^^`a_Z\_a_^aZa]]^`^_b^_]^\`Y_baa^^^]]]c]c]^_]_Z^^a^Z`a`_^]c`_Z[^_[^b`]^^_^]`^b]Y_]`\a]`^b[a`^^`b`a_]]^]aY^\`[_b]`_aZ^]Z_\\^\__]^_[[b^]]a]Z`_^\ZaZ_W_[d`^\U_]`]\]_^_\`df]^\`g[_aZ\`]]]a`\_bc^`^``i^V[a_aY`e[fY]^]gZaX\eYa]c_Zac^`H\]iaXb^^\XZc[b\aae]`Zb\^[^bb\`Yalakb[bcg`a]_`\fa_Ua^_Z]hX^a][Vcc\Ubad_S^^W``ZvYYW^^i\edZ[Z_]cbl]_d`d`W]__^VZcbb\\\_^Y``_][oW`b^Pg_[^_b[d`aZ`Z`[d[^kY_b\g`_\Xa\`\b__b`[`^[^c_\Z]^X`[Zh^b^\\]^_[^`_]gZ\aa^\Y^X^_\b^aZ]a[Zg]i]]`Y][d[Xcb`^`Y_ad\Za_^_^`_`d]]]\\^aZZZW^^X]_Y_Z_`__^_]^a`\]]_baZW\^e^_\][`\[\ad]eeY^c]Z`d^`__a\^a`]ZZbc`\`iY^__^^\i^]\\`^^Y\`Z]`^`\c]c_d_[\^]YWc[a\fc`aaZbZ\e[]X\]X\`^X_d]^^[WUYc`_\a`^ZdiZ_e^Q_`Yb\_cZ\\_a_[bb`b[Wfc``Z[Z^]^[^Y`T[[V[hVaYc]a\YX^`]V_]``]W]V]be^]a_^bc][[Y____\d_a[]]\]`[Z\\]Z_\d_XZ[e]\^\bTaV^]V]eab]^`]VdX^]]bb\Z_k]aY_]c`]^]Z^]]d][[cYe_][^^]Zb^Z_]c[f\]c]ZZce]\W^^__SV[]^\V\W_Z]X]fZ_\b`bZZ``\^ag_\]]]g[ecY`\a[^XWZ`aa`_^b\]`^\]\^`^VX__V]Yg]d^]^_^_[]_ZU\YY^Za_\[Y^X][]__ab]^^]c^\]aa[[^Xdaa`]_^^\_]]fc^^[`_[c_]a_^^]^^]^^[]\\Yf[]__g]Z_Y`W]a`]\``X\^ea^\\W^_aZ[a_]XZb\Y]a]\^b`d_U]a__db^`]^\`Z^e[d]ZZd_a^f^]`_`]aZ[_[fbY]e]aTj`[\a\b\`^fZ^^^b]VY`[cbX]`]b_]a^^a]_`]]`^\Z_]`][`a]V\[_d`\`_\caZY]^]Y`[`\Z]a_d\]b_b\^\^c_\a\db`c_abe\\e_`_d``c^\]^^___\ab_baiZ_`\_ac]\j]^_``_`acZZ_^_^^\b_^^^df`d[aedb__db\_a_^]ab_]]^b[dc`e^]Y[d_`__]Zc`[c`_ad]_]_a]W^Z_^c]`\]Y]`\kab__aZc`d^b`accZbad]^_h]__o\baab`\[X[aZ^]a`Y``\^[_aa_ZZ\]]c_eY^```\ZW`Z[^__]_Y[`_\^X_\^[YX]`__Wg_cc]X__acZ]hZZf_Z_c^^\]`]]__i[_a_`[]ba\]`e`XXb\^V]]_b[a_^][^`\da`a]^^V\\aYZ^Z^ec`\\^]i^\\c\_a\`^`_ZZa[^a[Zf^ca]]]]a^Y`c\[`^c]^__^b[[a`X_\i\__aa]d\_ifb[e_[Zac[[_`]hY^g\_d]\e____f\^[_cW_Y`^g_b^aZ^g^\ae^^\^`^[`eag``\^Z``]b`aab]aab_db]]]\]\bb][b^_]^_aVY__`\gd`]cZW]\X^kYbWb_`a`_\b\gabX^]d\]`Z_Ycc^b_^[^b_m\_f[]X`Y\Y]\`_eWd^ZaZ_]a`b``ada[___^[d_^\`Z[^]]_X]a\]^Z]`eaab`_Z]^_\^a[c^^\^d^`[]\b]_h^]bZZ_[]``\]Y^`[^]_a]]\]XaZ^_c]c_^\^^^^X`_`[\]`b^a\_\_`^]a[_[_`[Z__Z`d`Y\Xa`^^ea]b^b^`a]Z[__Y^^__^\]`^ac]b]^`a_`Zc^b__^^[^dd_c[cb\c\e_^_X^X_[Z`^^YY\Z^d^\\Zd][\^_Y]S[_`^dc]\^fZ]Q[b`]Z^\_^X[^Y]b^^_[^_`[pZ]`a^[ee[]aa]aeZe\^b][`[]Z[_b^Z]YW_[\]g\bY^X^\^Y`aZ]aXb_ZWe\_^XbZ_]c]_V__a_\lX[\ZYa[^]\\cZ[_^__^dj[\X[^VY_h]]]^eak\]Z[Y]ba\Y]^^YVZ]a__]\]ac]Y\`\a\`_h_Y`ba^[Y`__am][W_dd_\bcf\_^a\[Tj[WWd\`WZ[`Ya[c[]\c\T\Y]eYVmX][bn\\`]Xa_Wa_d^c[_a^Yc_jbl]^][[Yf[[ZWW\_^a\_^eU^`^Y\c_WY\Y]fXf_d_m\b\YZ[^`ac^^cg\VbZ_`W^ia]_]]g``a_[ab^c\\W^^`V_\\c^a^hYYaX]\`b`^a_b[XZU\`V^]W\a\[\Waj]`^X_\]e`Z[b`]f[^[]b\\^a`a]]_W[^a^\a`g^dh]^aO_]]ba^^c_]c\dYba\\bdac][`^ed\`b_^_^fXf`ZX^c^^ad_^da[c_Z]Y^`\[d^`[b\]X``a\\]^bf]aaY\`ed_]fdbb]^_[j[W\[^d`[\^_e]_\b\`b]`[\aca]Wk\[h`aX]ggg^cb]^]Zd`\^ZaZ_[YaVeU_Xc]U`c\^Z]^\^`a][ac]cbY][[Z\f^Zbd_][_W__^_[b`d[a]bb][X^`cb^]_[`^^``]a\d__^a[b\e[^^_^[`c^a^]a^c_^bbZZ[edS\`a`g\f]]]]d\a^]^_]a\f`c^^]__\a\`e][\f[[[[`^]Y_`\^[a[bYe_`_Uc[[lc]\`\e`\\[][`a]`i_hYZ]Ze]]a\]`]_Vd`^[dXb_fY_e`X]a_X]a_\a]td`Z^\cf[e\e\agZ\_f^_^a\d^caXe^]iZ`^\e\e`a]c_`a__^b\h\^haaab[`^[]`]b`g^]^Y^`[`YXc\`ea\_f_[`fb^d_a`^\f^^^a[bd_`]`b`b_^]`_d^\_e]\a^^_Xa_c^ha]a_W_V`_bX_]^[`deYZb_ac_Q[`X]Yaea``X[_aa[b_c``^^caYa\_d^^^a^^`ag_a^`e`ec`_\]a]db\fY_]`_\Z[a]b]ic^\be]`]`baZ^Y`adbcb`Za^eTbb]]\`]e[_`^X\^`^d[a_[[`]^_h_d[dX^^X`]\^`_\_]_^b`a^^\```[a]_\\^]b]]b^[`_`_^^Z`[__]^a_\^`W^^`Za\\^_`ZW^`^]a[_[]_b`[^`__b\`[_```_b`[__^]_aa[\[^]^\a``_`]`_^\b`aa^c`Y`]a`Z[\da_[`__]aZ]a\`\_c]a]Z`]a[a^Z\[b`\[^_]ab\_[W]a_]``]]V]a^\c`^_a][\d`]Z__a]\[Ya`_b\b^XU]YbZ[_ZY[\]_^Y]Yc^_X_[f[^b]\aa`_cb[]Z_]Ua]^_^Ya[]^d_a]U\ba\Q^a[[f]Vabf_\P__YYVWb``]][c_\[`\[X^\^c_^]Y\a\][b]d^\YZ]]_\`\c[\Z[Xc\_]aZ___^^]Z`[ZX_\^]\cZ\M\\Z^`^\_Wd[[\[_U\]__Z`_``^a]_a]`ba^_Wb^\^```\]^`^bac`Z]^``_^^_`\\]Wa\^e\e[^e^]a^gb`]^b]Z\^]]a`]^\]\`X``][i[ea]][[Z^^_\Z_\[`]e[`\_\^^^`^`_a_]_Z]d_^\^`a\^^`Zckbdad^_aXa^^[^^\`]^\][aa^_[\`b_]\b]U`b\^^[\`]c\aa]_\]`_\\[\g`c\\^[^\]_^_^[da_^[_[]`^\^]c_]c]fa]\[\^_^]f^\_cc[_^b[a[`e^^_Zd\^Yb[_aWa^cb_\[^\`[[jY^_c]__a^`_a[c_ec_h`a^\b[^a\^[a\]b_\g]e^]a_\\_^^b\_Yab^__][eca_fc]fY`\___c^``[`\^ia\e]``\ba]\X_]\]aZba\c_`]^\\\^b\^[cVY_abYYd^aZabU[\\^[]_bX]Z`_][__d^_aafb_]\]bf_a`^e_aab\]ea\ZZ`]c[c[g_^r^bba^[\d^\]_Z\c]YY_a`k_bX_Z`aaZacb__aed_WaY`]YbY^\^^^\\`e^^`]YWZ^b]]\_T`ae^c`abaea_]`_W_]p\]\aobhad[^X^^\]b\a]`^[^^Y_c^[]`abb_a\\a`b`_dbdfX_]d[`Zb`]ba\\`]_^g`\]bbZd_Y`\[a_W^]b[_]]Y``a][c^c\^f^^`]c_Y^^ac]e`da`]ac\`^_\hea^_[]`]`]`Z\ea\^^]W``]d^_^^^\`X][^\`_b_[a_\_[^_a_b[`]ad_`\\\^^]]_`Z^_g`^a\ZY`]_d__g_]d\`]c_a]]^da[`b^]]_]c[_`b]`aa]^`]Y`^[a\__`]]^\]]Z_a\b_PdZf^aa_\c[[\`c`^^\Ya]^^]\_[b\aa\`c^_`^_eU^`a[_^_\^Y`[d\_ZY\a\_\_`\]\`^\]fedb]][`]a`[ga`aTa__b^[\`^f\^`Y^db]_`c^`i]^U_^[gX]`]b[]abd]^]d_c]qe^]]_^[`[`_^a[^^d^`^e_]Ze`a\`dZ]e\_\_bca\[``]]c]_^`\_f\^[a\``\b_W_`a]c]]`b\`b`\\]\aha[`_ad]_]\[\a^]d[a`af[[`^``a]^[^_\_[]`Z\`add^`a`\V`[h^\^\ZY]^`^`^[a`\]a\_b[^a[cW_\]^f\Z]c_`_]b]ah\`X`a]]^^]^_______\_[bY`\Y\X^[^afZi]\e^]_YcZ\^a_`\a\]]X^afZ^b\Z\j\[a[b\Y\W\`][]Za]b`Ydca[^cXT`cd`]]jZ^^]a_[]Wc`_\\__`]a]^ZdU^a_ZZY`_a[ZZfb]Z]_a_[_YZ]_^]e`\e^\]]aad``_[W[XZZf^d[Z]Ya`\^`^Y[d\]dZ]a_`Yc^i___[]Y\Xa]__\_]_^bah`^b\`d^`V_\^`^_h__]aa`cZS[ecX_\`]]]ad\\^P[`^^\]^]f_W`da_i^_^a[[\dZ__^^\^\_Y[cXYdh]Z]d`h\`^`\b^beabZda_`\^]]`]eZ]`[]]U]Za\afZ`\\ZVZ[^Yf]Ydaa_g]\Z^X[_i\\]`j]d`\W``^]b[a[Y]f^^^^__`^^\^_``Z^^\_]]`_[]]Z`[]^d\_\Zg[_Zb]^]ba_^ZX]bb\bZ[`_\bd\`^fa]a_]b[\\bc^eb^c_bc^]\`c]`[`b\`_\^]`^_^]`aZ^^Xc]^`Z[]^d^d^bZ__\]^bf_a_]]^^`Z]ec\]]Z``\c`c``f]a^`\_d][[^^a]bb[^]a^e]bb^_``[ea^_\WZ]_c_[_[`Z__^\Y_b]^X\\`Z[^b`_][```^X]Z\``]\e[^ZZ^]Y]_`cZ`e[]][]]Y_^`^\`[^a^a`]]e_^]XX_[[\\Z\_^c][^]aX[[]]^```]__W`fa\Yc^\a\b_ab\__^__`\a_\V]^^a]_Te]Yfaa_`[`]\a\_]^[`\\^Y\_`V^`d]`^]`\_]_\ac]_``^]_]^]`a`\faa]__[__\]Y]_a]__fa^]]][^^\Z_^a``ei][`^]\[_^bf^\\^bX\^[[^]]`f]`a[c`_\]`[b`^aa\_]cd_a]b\\^a`]\`daYb_^]d^`]c\_]a\\^_Z\_^aZ]]_``\b]_]a^^\\b_[Y_Z\^a_]^aa_[\__\\[\_`bZ_^]^`c\``a\__h`__a_ZY`a\ad^^_`Z\bh\]Z]\c[`^^aZ_Xa]ca\_f]badb^^_`^[Y_d^jcfaba^__]iac]_Z_c^]]bac_[f]c`^kddcaaZ`f`Z_d[]hb_b`Oat`ccd`bafY]ga_aY]V_Nn]XZ^`Ya]^]Z\_d\Y``^Y[Z\\]\`]]\`_\Yba`]aabb`^ZXboZ^`crgg`\]^`]\_^^^_bXY\cVqaa]X_g^Y]]X`^`dY^cX`WY`X`_`]U[Zh[hV`\W]Yh\X]\Y[a]^YbaZf`bZW^YY^j_j^U`^`i]]]X^b^W^^\Zakde`a_[\_ecYOZaZ]Yb[T]\f^`k]bd]\cUia][fbY`[a]ZUT_[X\Yb]]\`^XYrcbZ]bf\VX_Y[Y\_a^Z]^^]ZV`Xc_Y^_bZc_bYiaZ\W^]W]`Z]_`Z^[^]]\`YX[_Z`b\`[[_gbh\d]Y_`fZ]^WmX\e]_[_eK\^db__ZaXe_^Z`eb^ZV_Y_VX^]`][lb__`Y__caZ]W]]Wj[e]_XdZaZ_]R\]edcdY]a`_ca`j`f[]Ub\[Y`dY`WbUZ\cS]\fX`dZd[c^_cZYcY]YdccX[\f^e[__bc]\\ZaZ[aada\[^^\]Z\]`]_]]`_a[_^[da^`^ga_ebf\_]`]]]`^c^^`ac`[^_cYba[^[Z_]V]_]Y^dd`^_\fW\]a_\_`^\]c`_]_`^_]Z`]]\W\]_d`[\Z^^bia_`^`^`]Yb]gd]\]ca^Za_ee]^[]^`_Yc]`\[]d`^c_WefX[c_]f^bb__aa\]]]````]`_\a_b]_Yb]`]_b\d_\^_[b\a^]^a_caa]`]__]_b\`Vd_[aZZ]dZ`\__^]g^X]^\^]]b]d_[a]acap]^[``^cY^a`caX\\_Ue\]``]cd`d_a`S^^\]`_Z_^b\\di\]_aZ\\b\_ZZX^\aa^]`\[Z\\kXa``^_]^`]j`\[Zfab\d[a`d]\_]\[]g`Zb]a_`[aae`^][a]`c]ac^dc^[__^_a^]_^_aa\a]_[_\^\d_]bob]a`g^d_b^cg_`a^aefTdcO\k\da`ee\gh_`aff[^^efbadY`b_\^]dbcabW^iab^bh_`]\c]__gf`^`cd^b^ab\b^`^fi^fj]^_][c_^d`j__^^]__f`[ebae^]_b]a^b\^\cafg`Y^cf[`Wa^\`faZ]a^^^^__b_]b^Z^`[``^_\^\b\Y\Zaa]_][]beb]`]]\_c`[c]]YY__\\]`a^^]b^bcS\a`dY]\e`_^__]`^\^_ab]Y[`^]^a_Z[Vb^WZZUa__a`^b`^\a`Z]^Y\Y_a]\WaZab__\]_^aeab^d\a`]SV\\]gc`ZW^cb][[_[bbcb\\]Z_^Z_^`d`_a\f^Z``\k_b\\`cae]cc`_[W^`_kc_Wcb__]b[W`_V_]^_]]e^\Xdf_\c\\^_Z`_]`[b`S^`[[c_\d\eY`V_X_aaa``a_]bd``a]^_^[]j_^cZf\]YZZ^\^c_[]_b`Zc^a]eY[\`^_eca[Z[`_^^b_ac^]]Yca[\\^`\^[]^Y\c[_`^]ZZX[Y_``_dYe_a_c_Y`aZ_]Wd^]Z]`\b`]d[_`^`c\Z_Y__\^``^[_c_\d\`^`b]]]c]^\Z^^\]`a`Ye_]\`f``a[Za_^]\_]^_c_\_]`\]``_`^[_\_]\aa]egZ]_`b_b_X[_]Zfa__`abY^bca__Y\[ba\`j\\]e\c\\[^^Z[]_a]]_^^a]_^\e`]^]]_^_^b\d]]^ac`j_`V^_\Yf^d_[a]a][__e\cb`[^cW\b\a`_`^Z`]b^]Ye]`^[_^\_b_\^[`Y^Yl][_^__j`Z_fVc[l[dZZa`_`f\]Y`Zd^__]Y_aZZ[]a]\``[^d^e_Z^_^h^][^Y\a_dbbY[W`Z__aX]_b]aY_d[]a^]_g`Z_gdai`Q^d^[]_V_b\a``[[e][]\_[_f]b]^\a_caa\[a\`_bYZcU]gYT]\SYP`]\_`bb``]ca]]aZm]Y]Vbd^e^[e\_Xh]cT^bUeYYdZ\aeff`g]eaja^Wd[[_Z`e`a]g_\Ws`NX]`\M]aZ^b]Z[\eZ`aBf\\W_^edW__Y[_`Y]`aVd]``[cZbZbha\[_TXW]_[af^R^ZXffa_ZahU^X]`_^\c\K]ecbZ]]ee`cmd^WZX^fYc]``\`bXb^cb`ca_]_bY[a__dac_b``]Wea`\[_\UbX`abeba^Z`^\bbY^S^\`[^]aj[_`Y``a[`\\aaa_c`^\dj]Zdl_Za\]_a[[\`^_\b{]J^bZ`\e_W_[\f_Zb^ddn]T^[agi\\a[`^bUd_dY]]d`Z]b[_i]\ZffaeY\^n^_h^_]fbh^^bY[e]a``]c_]\X]\_aa`[^[a__`da\ba_]``ea_`_Z^^[]`\^]Yaa_dab]`^ca]`[`b\_e[_`[]\\^[^d\`c[_d_Ye]bc_b_b^b[^a`][Zd`d[bab^a``ZcZ^]^eb_\``_ac\_]]_\]^___]bbd\`^^X^^``\b_`]a\\`a`d__]a[a`_^ac__aY`^ca`_\]`d_]_`^^cZ\bad`\_[a`d]]`\cadZ_]^]_a^^_^^[]`__^_\^^edbY][`]^][_c][aa]`a_]aaSa_`^`]_`\a`da___\[\^]]]`W_]\^ha_\_\_]Y^_Z_\\bc^a_X]__e]\[X_b]__\]^g^^cb^_dh`Z_]_^[`ce]_^Xb`]]^\_`^e^[]_^^Y```b^adc]P^]\^``a]]`Z_\_`^\a]Z_]\_cd^]]^d\[`[a\\_b\h[][X_[b^_]`YX\^`Zaa]^^]Z[_bb^]_Z_\a^c`\a]Z_]Z]\k][cY]a__]_]^\[\]b[a]c_``c\_bbZ\Za^^f`^^^^aY\bb\bb]Y^\a_a^]bc``^\^\]XY_a`\cd^`__Va_`]]c[[_^_]Ya]`cbc\]\`\\`a`a_Zcc_^^_`ab`_]jW`[[\cZ[aYe[`Z]j__WX_b]^ccaaY]Z_]]Y^_bfi_\a_b[eY\]XZ\Z]^__`^aZ^]^`U^`\[d^`_^[]Z\]_\_]_c[\^ce_c^`\cc`]c\Yf][`]Vaa]\Za[_ec`d]_fedk`\b`_W^`Y_b``^Xb]_]]_Z`]_\a__[dZk[\\]ccZaZZZj\[[k`]_Z]_ac^Z_[d_e]\_^X``[`[]d]]\aZ^^`Ya__^bY\d``^e\Z_]ab``^ZWY[b_c^_`a_`[cd^Z]Ze^Za[\gc^``ZY]f\Zb`Z[d^[bY[^ZWb^a_[Rb[ab^[c[^_^c]Zb`]Y`Ua[]f^e^_caY``Y[a`_^[d^`Z]a\Yhg\\bX`\\WZ_YXc[]Y_Zf[][_\`\_ea_[Z[]_^`]`\jYc`^c]`][[Z`Z\[^]dgj`]^]Z]Ybc]WY[`^c`_c[e_b]`]]^a`e__^_\_\`^^X\[`_Xa\Z\V]``dZabj_X`^]Y]]Zdccbagc[eaYZ^b`b_b[[]c^n[`Z]`\Y\`a\^_Z[djTV^a\]a[^Y^YcZdcYcd\lcbc]R_f^^`_`_^Y^^`\\_e[]abeb`[X^^\[\Va^_]_ag`[bV_b^bZ]e]]\kYba^Y`Z_fa`b`bcbZ\bcbX`[_^\b`a\\_`ca^cdWYa^_caac[bae]_[Y_ac_^b^_d__`cc[_cbY^_b]_^f_\\``_`d_`e``W\\_b__dfaaT_[adbb_]^_ac`\`Za`_^WV]cgc]]\d^\[Y[b]`W^c`\__`a_`_cead^\bZoa_[^_bWdacZ]_[Y]^d[]c_kU\bge^Z_`bb]UZdhX\b_`[d^af\^\][obY^aXai^d]gaec^X[^_X\^g^][^Xdd]^fZ]Xb_[TaZ`fcZ_TciYX^^^`^r\c^][X`b__a_n\_a]OMZcVhXcTfcUfcV[S]XWaZ_jbVaVadX\\bf^\Uaa[^daR_aa^^_[a\Y_\b^[`a\cXa`[bY`^ff]^]\]bc^W[cbZ`b`[c]d__cad`bdb\b[^]`_a[^XcWV`]_]cfj^ae_^de`dT\`a[^]a`\_bbZd\d]V^]d_Y[b^^hY__]fc_ca]a]_[^[^W]\abf\b^^e]\aZjdV`Z`YWZ_ba^`]`b]adhbdagYhaa[]g_^b[gc_\d^`_daX^_^[dc\_a]`d^[cd]f]^`\_`]^][e[]eZc^^]ca`\_\\bg\[_`ca^e``_aaaZdb^^Za^\_^\d]c]``cf_bY_d]_^b__\`Z^`[c`bZ_`b`^ZW[a_a^a\e`\]^]`_\`b``][[^^d]]]^cZdc]__\]`m[bb\_^_^d`_[cc\a_[ab]_]`^_\_aZ\]_a]\\`_a^`_`Z]_[``_\daa_^a^`_cd`__lcfZg`bbZV_^aaba_VndZ\`[Zf_T_gbcd^Z^c[]_[g_e\^a__bc[i_R_ZW^^]\b\ei^Y_d[\bcccc_`cXc_Ucdb]dZ][c^^edbiY`c^c\]^beX`j`e``h]aadh^[c`_\hlh]b^a]^X^`aggZ\ab[dXdd`cT``WakZ[j^h^_oc`ZbXZ[]_aac\Uee]dcX_\`ac^[\Zcec[X`a\^Ye__e\_iZ[Zfb_Z^b]_[\[]da`_Z]_^Y]eY]`da`e\_`]]b]W\a``_[^b^c^_g]_Ybe\a\]dc\cb[b`g\_cda\a_da[[^_a^ai_Za\[ac]^[_a\XW]U]\`^i\^]a\]^_aT`\^]b\_Zc\_c]cZ\^b\[b_`Z]ab_^acZ]bb_^Z]Z^c`\][da^[]g`_[b^_]^^\]e`^_dbf`\\`X^c`[]_X`_]^de__\cf`^\]^aba[l_`a`W_Z\_Y]`^[^_\\YY_^^dh\_\^^\`cY^_d__e`]cpdZ_T^`]b_`_]f^]]\[[_[^^_g\d`]U_``\b]aZ[`[\e[ku^k_gbd[\[_c^e]ab`\__c^^[_na]g]Zd\\a_dg_`c_]``\d_`_[_a_b`[^`^a]U]\__Wcf^^cdaf]db`Z[]_]`Z``Y]^d^Z__]_Y`ba`^^cb]`_ZY`aZd[c`_Y]^a\Zc\__b^b[`aa\aX[ca_f]b]V_[^_[`^bffa__^]_ac_Y_`^]_^[^`ad][_daa]a_gZ[Z`c^cY]_aZa[^abcb``a_T]]_`]]_aWZ`cebg^^^a]^]`\_]^`\_[^]\daZ^_b_]\_b^eZ_^a[a]ba^cad\_e]\_hdchb]]_cbja``^jc^b\^a_Z_a_[b^b\Y^b^]^[^ac_]`_`_`e__^^]_^]^`[^\`bb^cbV[]\_`]]^^cf^]daY^aa\`Z[bd[c]`bZ[b]`_]d][]``]bZ`]caa_ad_`Z`\^^\`\b\aa_]\]Yb`]]_]_]]^`_`b_`b^_]^````^_`a\Zac^`aaa^`^_\`^_^[^aa^adb]]^[a^_aaa`[_`^a_Z`b_]a\b_^c_^e_b``^d`_^[^]bZa^^cacbaa]^Z^^b^a_\b_^b\^^Z^bb^b]]bbba_^[f`__cab]c[^_\^[^\]^]`]]]`]__c^f_^]]\d^^`_]_``b_^b^_^]YbgWb__`b\Yi^``_^d`dX`]_\`_b_^c`eaab_\ha[Z\g[e]YZe[Wa]]`e^`a\_fc\^^Y_]]fb]aa[b`[_bcc\`\^db\]\ZY`^``\`_a\`a_gZce^]]`iab]]c`iYac_dc][a[U\^bb^_bZac_g[ad]__]_bYa[UddW]h`]da[_`b[\_b]cb`WdYb\\bZZ^^`a__^`a]_[_`]`]`b_]_]]^^b\^a_^aa_]^^a^\\]]_^a]_^_aa_`_____^_a_a]_X\^\b_\`_^\_^Z__\^c`^__]`a^_]_^^`b]__]___^_e]_^``__]^`]^____a[`a_^c^a`__a^_]__]^^]]\``_\`a`_`_`^_`^_^\aa]^b^]^]^^``_^_b`a__^`_b_]]Y^^Y]a]^bcb^\V\`\^_`\a\^^hZc_]_\c\[^\_]eW^aa_[YZT`]^\_aZ_V_V^\\b^_`eb`^]a[^\`f^_`h[\bZZb]a^a_\bcZ_^]c]Z_]a_g[\Wb^b\]]^`b_``bZ^b\`Wh]^\baaa^W\]\\\abX_[`\l_a_[`]fZa_\]_]`_Z]ZaX^c]^W\]\]]__\^`]]`g^dd_``fbd\`d]]_]cYe\^[jaga\[ba``]b`f`^_^d[^da\Z][Za\_fchX[]c^f`aZ\^da\gZ\_`ce_`h_d^e_b_eXdba`^Z`bb_U^^`b__e_\_e]g]^__`ab_e^^cb^`_`^`[ZZb`\bWaf\dbg``i`^cab`Wea`a`\\Yb\bb^`abd`b^[`_a_a]^^[_`ea^bbc]]_cb[^_d_c\Z]^_]``_\[^^X\]a`]]a][^_`a_`i`X`b^YW_c_]``X]a__Y[e_``c`_^_^``bc[_a`bb^]`Ta]_bc]^c\_Z[^Yad]a`bd_`b]`Z_[\^b^ba^^Vde[]la^^_`b^`VaZf]]Z\_^``[d[]\`ba__^c[]a`g]`a`bZ__cbc`^_aY^___^^aYaa_[`__]]c`aZa`\^]^`]d``Z`c^[]ZZ[]_YcbZ[_Z_Z]hbb^\YaY`\dbgbbb]\aXa]``b[_`]X_]a^Ya`ba]^`]_a]_^]\ZZ]^^`X[[_bZ__]_Z]a^]_c\\bbc^\`[^dY^Q^]X_]c\Yb]^\]]Yc[jW]Y][]a_[`a_[^_^b\\[Y]bb\`b^db[]]^_abX\_\]^a_^`[_]]^_Z^Z`[]^_^c\```c^^^]`_d]a``^^``\^^b^[ZZ`c]`^`V\e^b`_a\^\][^]\``]c__b__\[_]Z\^]a^]]]_`\_\_]c__`_a`e_]_]^^]a````]^c_d[_]b_a\]b^Y`b\__^\`_\_[``]`^_\^cZ^\Z]\_a_e^a`\``Z]]__^b`__`_\a]_^_\_c^ab^ba^`]\[`_^^_b]]^^]``^ba^]^a]__\a_]]b^]^a^\^____ab^]`_]`_^`^_]`_^``]_ac_`b^`^[a[c^aa]a__`__a^__`\_\`a^]\_]^]_c`___`]``]a`bb]_a]__`]\c^^]^\bbb]Y`]]]^]d__]`__b]a\^`a`_^]b`aa^`_]`_`__][^_^_^___]_^b`a__^__\__^_`]`\^^]a_][_``a\]aa`\^a__^a^ab^^[``__^]^`]][a^`]__a`^]^^_`^^_c^]^__^^^`^___a]ca`_a[b[``^[^a[^_]b_`^a`]b^^c^_a_\]\a^a`__a`^_b_^_d_^__a^`]^\[^`_b``]`\a_``__\`^^\\____^^a\___f_ec\W]`_\b\_]_Zb\_]aa\b\`[^``ZVac]_baa`\W^[[^b^_dZ^\_][_`aab^\[a`c`_]_]_\``a[]``]Z[Z```^Y\`_d^_]b`[\_\d\[cha^[^`\^`\\d`ab\Y_aW_`f\[_^d][`a^\]a]`_Z^a]\b\Y^\\^]^\_`_^_cX]a_`Z[_a]_]\]Z^`Xa__]]_[gae]ada[VYe__]bj^SZ]]V[]Y`X]]\YcbZ\]c`]c[\^[YaXj\\i[i\`_ZW^]bc[^[]e[fa`_fYc[b\Xe__h_X[b_]k`]_\c__d^c\cRgb]^Wb\Z^`f_Va\^bnggi``Zhigr\[ec[[U``Z_W^b]eYc]bYa`\ZY\cXcb]aZaRZY^aYdXc^Y^X\NXe^faZZb]\__``]`c]]\Y`bWcc`_b\]a^Y\`a]Z^b``_Z[Z]c_\X^\abe\]^[dV]_abab[d_][\Z^^bc^Y]]^X^d`^a_`_a]^__]]`d`_c^aY_gaZ\]`^bc^[Z`]`^^cd`_]abe`_`^bdab_\b_ab_^^c_ba`_^a]]Zcb\b^`[[_][]Vd`^_``^ab[Z```]`^[[`a]``[]b_k_]_^^a\`^^\a_c]^]a^_``[^_^[Z^^a]___]_^`a_d]e^_`]_b\\a`\_a_`]\^Z]a^`__]``]]]]\e^^f`]^]]`r^]^^a_aQ_ab`Z_c\^]_]b^_d__a`_^^^_\X_e_`\c^aZ\]]_a``a^]\^\`]a]^^^_]^_a[\`^^a\]]\Ya`]`^Y^^^`af__bb__^]]_]^\^Z^a^`][ab^ba][_^bb^_geaZ`]\[[Zad_c^``\]]ba`a]_[\`_^_``Xd`[_ae^[^\\^e`aZZ^_^]_\g\\e\]aa`_\^`_a`^\__cW^^[\``__\^]^^_]^^__a^__^_b\`Y[`_^]_`[_ce[ab^[_^d][`_Za]Z`]a_`agaZ`\_^`^b`c^[cb`\^_^`_c^`]^a_a^a___\ca`__c`_]`^b_a^^a\`][__caa^a]^^`][^]a^a`_c\\a[^[daa`]aa_^`[]^__a^]_]^__a`a[a``\_Y_[]^][^`^a^\Z]\[^f^^^_`_]a`_]_^a_^\a]\\[^^c_^^[^]]`^]`a`\c_b__^a\`^b_\c_]]a_b``]^\`___`_^^`_^\__a^]`\_\a]a^^`_d`_XWb]c`_W`_^bf_[abYYb`a\a`abb^b^^d`\``__^d_ba[[Ra_\[]_`_]]_^_a`_\b_a__^bc`ba[^_`b^`][[^_f]^d^V^X`Ua^bbb`bc\^`_a\a``Zd[\_Y\V^```^`^\a[^]ccZX_gc^_^b`^^^``abUb_^^YZa`d[]^\X]^^Ya\]__[^_`]`^]_^^]bf_\_]b]_bab`aa]b_^]`_b_^[abb^^_``\`]^c\__`_Z]]`[_\^a_[b^^\\`_`^]``^^^`^^_a_[`^a__`aabb_a_[]a`\b`[``Y_f_^]_a`^g_^]]`a[]ccZce`]``^a^^_`[`^ab]^^__^\__]]a]`b^]a_]d]]`]b]`\a]^_\`_aa``]aYe[]c\dbaV]\`c`W]^]_[_bY^Vca][__g\W]_`\V_\`cYX\^`a^jcea[`b]^Ua^\\\\aZ]Yac]\\]`e^`\]`d\ba^_^[__]d^\ZZ][][\c`_]^SbX]\^gb]^_[[ha^Xai^[dYhXZ]\V_c]Y^babcb\[^Y[`c\[\YV\b^^\\]Xa\^X]_^Wd\^_`]ZbbXX`WeZ]c`\X[_]`[_^_^^_`]a_^X^^]]]b`X_b^^_a\]_\]bd^]a_YZ_``Y`_\bYe]\[b_[^_]Z^^\^\e`^b_^[aagd]bY_\_^^^Y`c_cb[b_^__WcZ^Ua_``^^]`^``^b_]`c`f`b[^^d_``]Z^c\]V\^e^``^]_Zba]cV[`__]\X^a_``^`caa]a\[][b]^^]`\b_a^a\f]c`[]b\Y[^^ZYfWX]]b\]\^Z]Z_]_[\b_]\]cf\\]bc]XW_Xa^^T_^T^`XV^]b\]\`^bc\^b^X\_]`\[`_aXe^ZbUe[[`^\`^Z_Yd]f]`ZY_a^_Vc\^dha\^[bSY^\[_iS^Y\bZW^]Z_^[]\_^^\\Z_`^TP^d\YcYd^ZY_bWcZ\Z^YU\]]aUi[[acY``_c\]`\]__[b\^_`_^__Xh^`ai_]`_Xc__]_b\c_^^`d``]b^f^_\a__]b]_[_`ZY^]_a]a]c\a\^^]`a_\__\c_Y`\^`^`\abfa]]``a^][_`^\^a_]_^Z^\]]]b`a[cb^\Zb^\]aa`_^``a]b_d\]_`]_^[^[^^^^c`b^[]^ba`^a_^_[]\[\aZ_^`[^`a\]\cccY[]^]_\YY]b_\_Z]]`^ZaaY]]aaba]f[d_[^a``]_^[a]]^da__\bTb__ZYa^___]`eZ]ab`___`_a`kke\a[a^`[___[\_^Yg___caZ^\d`_eVb^ba_]^[`^\]c`a_aY__e_b`_`^aa]V^^c]b\_b^^[c\]`]^\gb^^^]Vecc``]c[``aY`\]ah_^^X^[_^`dXW_^^_^d`Y^[]Xc[\egc[`an__[eY]]^dafi]`_^`\a^f^\c\^d`^d`c`a]]_Z\_`]]\\d[_f^_^bf^_\Y[Z^_`b^[^`XU[ZZ[_dZYc`b]\X]Za^[bWb[`^dZ]ra`dYb_a]_\c\]Y\^YY_dXeb``]]d`^fZ][^Z\b\fZa_\Z^cXa^`_]jl`X][\\_]`\c\`ab_]_^abaa`bfb^`\c\a[_abW^\_]`^\d_^c^_]^a^_a^bdac\^c]`]^b]^]^a`^]]a`c_acZa]aZ[][c_a^`_c_^][^a[abYe``_^_]]\YZ]^`[]]^a_d]_Y_a]_fb_[_]\b\_d`\da`Y`]]\b\]_^\]]_]^_^^^]g^`f\d]``be`\a`c^_^]^]a[a^_[Y\]c]]k[\_`^___caa_^`^\^`bX\]]^_`b]W``aZ`_\\d_b]]_c\\ad_b_]^gZ_a[b`dZ\a_`Z]d]\^[ac_^[h`]aaab\c]ade[\]]Xb\_aa`^[^^][^b`^_`dVd`\g\`bd\__``W]_\b`_^\]^\ca__]][c[fX_`^[bcd]_]bZZaYcd\e]\Xhad\^ac^a`a^]c]\`a_]c_de`a\__`a]\__d_[_a_`_\]^bbaa\`]_^^]]\a[e_]`]]_a__`__b\[a[c^b`a`ad`^^Z]abaV]a]d^^]a^c]`]Z^^_^ad]^]`^_]c_]```_aYa]^`_ad_a_b__]]`cb[acd[`\_^cf[^]]d^^^]`_\_]^__b__``_cab^a_a\[a^_^_aZcc]_Z`c[\cZ\]c`]^]`\[^]^Yae`_d`j\b]]d]_Y`^d]aZ`j`^_aW_]b`c_aZ`We^_`d`_`^^[`]_\\b``aab^aU`c`e]^]`fb^^``]^]a`b`\^`gd^^a`a_\`_bZfd_^]ZZ^]^bd]]a]]b_^]hZ^Z]_]b`_``_bb]c^_`\^]b\]``^^\[[abg`[^a_____\b`\_\\e_^e^]]Y`a]c_`ce_c^Y`aYWb\`\a_[a``a`cc[__eZ_a`]\^X]ab[[[ba\]^^][cW]_a_[f_b__fhba[a]]aX\^_ff^c_Z^a\_Z^_`[Z_`]ad___`Z[_a_\[_YadYa^^bZ]^Y^bZ^_`Z]]^\^`Z_a``^]Wgc[\\[_]_[[fa[^[fYb^]Y^]_`b`\`^\^Y]f]bYb]dZe]b\Z]c^_XfYaaaaV_\bWdae^\X[d[e\aXW_R[aYa^hXYl^Z]d]^XVYac^`]aaYc^Xc[XW\W][]\`T_V_X_]\Z_e_Y]O\]`^[^_Z^[Yc[aa_V]`]_^]TWiY__\^_Y[\\d[db]`jb^cg[Zb_]]_`\_^_]WXa_[cX`_X`ffkW^]]`R\[\\_`]^a\`^`_`\^c\]`]c\]]\`_aa^^\]Z[]`\^_^c_dab`^c_^^```]`[^a_`^_^\\]b__]^^_`^^^a__`^`]_a``]`aY_a]]^]^]_]aba\^b\_e]_^]^`^__a\^`]]^_\Za]^]^```^a]`f_]^[]a][^`_^\^_\^c\]^b`__``[`]a\_^c^]_^_d`_b^\`_]_a^^b^dY``__]gc]]G^Y[eZ_lm]fba_a[X`]`[[a^aZg^Xc__Xa_Ue[T`__a]\Zc`Xac\b\`a\\`Zb^_`d]`bie_`b]a\a```]Yb^ad`gZ`a^ace]_b_]cZi]\fa^X^^\eSdX[fX\f]__YbY]_`ca`a_ZaYab[]`Uce]`bc^faY_]]XZck]`e^]a[_TX`ZeZ`^`ZeZZd[bXa_cYXa]^_`Y`_d^acadY^g^^ba``\d`]]ge^^^b\\c_ab_Zd_hS_a__^Z_X`^a]g]^^_]_`^^_cb`_fW_eZ[_a_^`]Y`_[Z^Z^i]Y__W\]dVb^YfdX``^P^[b^`ac^__]]]]_[g[[cVUb[Od^dZ[`aeeaaf\a[^]]^d^\`V_`W`g`\\e_ZZ_``\c`]m_\_[aa^``_[a`Y^\e^`^\]X`f`^[^`a]]\_da_^[^`Z]`e]\c_Z_]\[mcg_\[`]i_^`e[__\^\d_^[b_be_]b\_`]^]e^\]\\b_aXd^d`e^\_]_`]\\__]^^cb[^[_`\`Xa_[a]]]_c\^a[X]\^c_[_ae\_b^`a___c[`cb_V^ba_a]`X^]b_Y`X`c][^\]^[`_^a_^^]^_bb__]_]_\^_c^\\_^^\c^]`__c]`c^`_`[[b_a^^b`]^c__^abbd]^^[^^]a]^_`__]`a_]____`d^_^c`a^]`]a^_ba]\_d^Z\ha^c_\^^]^]\c\]\_Y\^`^_\\\_bb^__`]]a^\a\_]\_b\^^_`aab^`^_bZ_b\]a[^\dcc`]^^___`_``^`]`_^]^__`_\\a_^__^a[^Y^a__\a^f]^^]d_`]^_`^]\`_ac`^`^_^```^\b`_`^_`__^__`aa]a__^[b^_`^^^`^b`^`]]c`^a]``b]_^bb_^]a`]c`````_\g^`Za^]`^_\^a___a]^`da[^b^]`__`a_a]_b_`[_b^`_a]_a]`^]]]a_]b^^^c]^c_]a]aa_[[\`_``\`b`_`c\[a\\^^a^b`_b`_`Z\g_`^___]^Xac__^b]`^]]^]`a]`[\]```^_`^_^Z]_\`c_bZ]`_^d\^\]``[]`a[^Z^a]c[]__^W^^_^_d\[`^]b`a^a\dcbaa[`][]a``_dWb`_[]^`b\dX]b^`]\\c_a^\\^`[_^^]^_`_a_\`_^\__][[_^_ae\[cb^]W\b\e\baaac_`YaZ]c[]]`a\^`_\`c_\__WX^b^Y`\\Yb`Xf]`___Y]__aa`\_eef_^c]e]bZ\_\^\`_]_]^Ydd]a]`\_]\_`_a\V\_YX`a\^^]_`\^eaZ]_^]a]^\\Yd\^[^\b^^_`abb_\c`_dc_bb`[a_`Y^_b`^[]ba\]^^fc``_]a__`Z`_]]c_^``^a\`a__b^_[`\a^c]``a^`]`[^^a``X^^^__aa^]_]_[^Y`_]b]^b\b\_c`\_]_a__\^Z]_[aa]Y_]a^^]^c`bba\^_c_b]_]a^_]]b`a^a___`a`b__]^]``__c^^^b]^__``_^]\```\]ab\`a]^]`b_\\^^c^`[`_\]_^_aab_b]baea`X\Za_i[^cd[^_R]Y]Z\`^`_X[\b[]\__b^\`Z__`]b`c^\cXZ_Y_^_\f\aa__`bh`ab_]][a_\^a\de_`]a_``_d]]aj]a]\`\ab]`d\_a^[e^b__`Y^b__a^ag_`gcba]dX[e__a`\ac\ab]\[c\e]^ab\\]`b`\d`__`_`^`Z^ad`\g`\\\_`b]^]c[^a_`i\YZ`]^aa__]^a\\\h`]b_[Wbb`[Z_aa`^^c`b``[]^_]djcXc^Y_a__f`i`[_b`f__`c^^c^_Yaab\`_e``__X]a_c_d[Y_[\d\cX_Ua_cZ\a^h_^Z`__^\[a`Z_^af\ZZc^_da_Z``_a]\ZYc\^_\]`e^^__`a]^]_\aab`W[_^Ze^_Y[Y_]Z_Ya`^Xfcfbl^]\[bZWc[]Rb_`Z\]___[`Yf`]YYc\[_[\Z_^_`]i_\`\[a^]bY_ddb\^WZ\^ka[aYcc]Va^c]d_^_]\b\\_^b^]ZZa\c[]cWd[dU^g`ed^ba\fbha]jV_]]bX[\_Vb_Xc]am^\_c]]]``gY\Zge_\_`]\[`[ag^c`ba\]]W\fbc_`\^bab]b`[b`^b]^]^`^\]\_d_^_[^]\^^^_```\_b[_]`_^\`]a^_^`\^_`]_^[`_Z`_]a[^d_^c]`__\^`^^`^a^]\^^aa`^__`^_\_b^b_b\`]^]c``^]_a_a[\]_^``Z^\_[^d]_[\`_]^af\\b`b`^[]ac`_`[a`\_^b_]__c__]]`__^^]b^c]`a^_^_b__^_^_a^c_`]^]`X[d]cjY`ecYT]c^ea^Y`c^Pd]_YZd`c]ebd_\`ca]`^eac`a``_]\_]Y^Yc[ka\e^b]^`e^a`dfcc`]b`_a`e\]a^_^^Y[c^a`^_cdbV`\[a]]c`bd__\\_Xf`[]`dQ]`[^Y_]ad_\jc^_[c[X]_Z]\_^a[be]_cbe[_^a]e]Ybb^`c\a]]`UaXY_b_]__^^`^]^`_^_`a^`^____^`^a`_]___]^^____\``^^`_`^`a_^_``____`b__^`^^^^^`__^_^]___^_^_^]^___`_`_`^__^`_^_a^_`a^_^^^___`^]^__^^_]_a_^^^`a^^`_]_``]_^^_^]]__a^`___^^__^``_^]_^a`^\_^b__^___a^`]`_\_\_b```ab]\^\]_`][\a^a]]\^_^X`^Z^`^a_^^b]\^b^``_ac^_^^a__a_^a_Y`_a_e^^`_^_^b^a^``a`__c`^\]a^a\^[a^_`^^_``]b^]```^```a^^]^_`__^^^`_l__^`b^\^_]c`^^a`^]b[\a`^```_]^_``]``b^`_^`_^[_ba__a`]_]^^^^`__a`^_^`\b]_^`^_a`_^^cc^_\_`b`b[a]_^^\\\^`i]a`^aa[^^^`[`\^a^__^a_][aa`_\`__\]a[``_][``ba__b^]_b`_^_]aa^`fb`d_Zbf_b\`_`^f[Y`_^ba\`_^``Xa^b\[[`a[`^b]`\_\__]^f_^_bc]^[\``\a][`^^ba_`_Z_`aa`]c^^^ca`_^`^`e`]a`]]^ca^a\`^\b_^][`d\`^_c[fad\ddZZ^^aaa^a`^_cm\\aa_[aZY^c`bZ^^]d`]\\]b`^`a[da__Y]``bZa^a_]a]_[`aa]e][_\\\a]_]^`^ab^bbb^``Y\]_a]bf_]c__c^[b\b`d_bbb]_\\^`_be`_`a^`[`]]^_aa[]Zb\``[`dg[Z`^]^d]bZ__]`_Z_]_`f^a`a_d^[\ae]]Y`X^Z]\__^`^[`]\^af^]_^f[d^_a^``i`^a_W\]ba^_\ae\aab`]]]]^^\]\`X`_`a]^[g_[^bb`d_[]__[[[]\ZccZ][[a]^_Y[``U\h`]^e^Za[]i]d`_`\[Z^\j]Y_][[]][_^^\]`_^_\Zc`a\ga_\]^`_d`__Y^[aa_]`f\`]_`^[^ZZ`[]_[_^]e[_bd_^b_\aa^[ZWeV_Wc`ZWgj^_W`][`d_a[^aYeYaa[`bZa]W^]]ZYab\`]_\^^a[]bd\\_`^RcaX[Z^`_d^cVZ^X\Xa^Z^\[dZZcZaU[^Z`_]`__\\\aZ___\[Z]b_g\e^\_d\d_^`_aZ^]caX_Z\ab]`_b_TaaYY_]`]_`_]__^`_^^^^e^\^aab^_^aa`]Y_[cZ^^_a]a]^`]^a_]`^`\`_e^Z\^^f[\c^a^a`]Zb]^be]cX\^^_``[\cZ^]__V]^ab__Zb`^e\^_R`Z_\\^_ZVb_`]a]ab^dXX^\a^_^\a]cb\\b`d\b[e`^]_b^dXbZ^^]Y_a]X[``_a]ba^^_`_[]X`]ab\]`^a[d_`^\]``ca`\]^W_Y]d`[]Z[bYj`c`a]ca`d]c__][jZ[]`^`\`gb\a]\hf_^Y`cc`_\]Z^[_dZ`_`f\`g]^d\bb[\\[gaa^^ae`jYYa`^Z^]bbZ]acX]\d_aaZbb^a^_Ua\X_`^^k_\e_i\]Z]]\ccYZfZa_`cZc\_k]bZ\db_ca^^\aZ\c\`bY]e[d\Yed`c^_d^]bad[`d_b]\[a]\`\\^[b__^a]c`[`^`b\`Y[^^[c_``aZ_[_]_]eZ_^ZZ_b]a\`_]_`^__]d_a\S\_`Yaac_]^b`^^^]\aa]^Z_b^_[\_^`YWb]__`_bb^]Xa]`_\\ac^^Y`]a_`c_^\__]]^Zaa^[b]_\\YabXc`]`c^b]Z_`]^`a`^bY`_\^a`^_`_`_\^]`^a_a]___^_`]^a``b`_``_^__ab_^_b_\^b_`acb`^^_`^b^_g`^`a\b]^[]_^_a`^^]`b]^\_a[_^^`_^`]^``b]^a^dhc\_^_a^^__`````]a\`^^_b^`a_^][]\_c^_^]]``]__ek_^^aba`\^^^\c^^`_]^]^`]^_f`___^bZ^]_`b`a^`\__be[^^^VXYb^^^^b`]]^^_bg^\]]__b\a```W_bc\][]]\_^ca`]bg`\_fa\`]Xc]a`_^a\ZZ]__cWbba_]b]_``]]`\_a]ca`aaac]X^``_\Ze^]][][``_ac^__a_[[^`]^`^`Z`^^`]`[c^]d_aaa]^\\^^[_f^`c_b]__]aa\]^f^^[\a_ee`a_\a`]`\`_\^^__`^``_]_]`^__a^^_`_[]_\`^^]]aZ_]^^_a_`^^^]^c^`^_`^a^_^__]^_^]___^\`^]a_`^a^\_\\`_^^]`_`^]_^^a]^^^_]_`_]]_`[\b_b_\^^a`_d[[[]a`^__^_a`[]`_^a`\_ab_]b`__Xc_^__`^]a__^`\_a`]d^_`^]Z_`^_^\^^^^`]`^]^`_Z``_^]_^^`aab^ab^]^`__\_a_]^`^[_^a^_^_]_]_c_^__a]c_\`]_`_^^\^_`^]^^^`[_ad]bba_`\a]_]^__^a`a_b^_^^__`_`^^^_[`^]^`aa_^^c``Y]_]^^^^__`]_^_____]^c_d]a^_^b`^`__`_``a__]^_b_`a^^aa_]^c__^_]\`]`^`d^]a^ab]_b_a_]_a_\^^c\_gb[`^__^]]\aa\`T``^a]a^b^]\]a^h_`aa\`_^^\`^`d_]_`aa_^b]__\__cc]]\\^_^]\c]\`\]`]^\^_]ab_\b``^^`^_]___^_```a^_]_`^_c]\]\ba]^_^g\]a`^\]^]]]a^_^b_^^]`_^^a_^^__\^^\`]^\_`a`a\`__a\``ab`^_^_c`_``_][__^^b^`\]^Xc`]]a[`a\``__]_^^`a_a^a]`__^_]_a]^____`^a^^b`^]\^a\^\_^a_ba^\_a_bc_`Z\_^a_c_]a^_\]]^_[ka_`b\^a\_^`aaa__]`]]b``gab[ab\b^]]c_bba]b^^__a]\]f__^_`^^^^b\`_`]b`^```^__[``b]bac^^\^`]]b\`]__[]ac``\`][b\`a`b\_\`[cc]\`_[db[\_[_[^``a`a\c_`]^a]e^^b`\^_^aT]`a`d_`p`b^b^]b]_`^\_]___\`\`[_a__Zk`]^ac^bY\^k^b[a_^]^^\`]`___da[aab[_c^bdb\_]``^]\_Y^]Z^`b_^ba]b^a^eaa`ca\\[a`ab_`]]d]`dbb^c_ccb_]^_^^`\``^]^\_`Y^a^bcad^]_`]^\^_c`^a^\b\Z[^]^[__^^]_^_\_Z_]^^_]__aa^\eb___a]__^c_Z_g]]^ae\[b`[X\d[[^b__aaa\a`_^b\a_]ag^]d^a]a]_^`]^`\bbb]__^c_]`b`Z_``]bb^_^b\^]\_][[Q^Sf\`^XcZ`adS]^YZU^V^Z^Ui[gegcccWaZgVQ\NZW^W`VQ_`^ba^W[YD[ZhckY\`[WUhaX__dZUQ^a^^ZV[[b_Wa`ZY]Oa\cZ]PHSZe^_[_`cJ\Z`W`dZcWchXJU_hQYno^cd\Va\[cbb`XhTQcW[\jW]hk`\VU]^gY^`X\UeWZI_dX_U\Ycgk__[fgT]]]Zbe]^[``_`b]d]Zc^_[[a]Wfe``aZ[`\__YY[e`abY\]V\\]`Za__\[_^_b\]^aca_W`]]`\[a[Z\_^Z_Va^a]\d\\[\]``]_cY_b\]ah]b\[\][Xba\^ab_aaZY__b`^[abX`a[^^[^\W^\[e^\[`\]_bb_Z\^\X[``b[[\Zf`]Tcf]_b^\^\`]_c^__\c^ce^ab^_d\\\b^]_bbc]bj_^ZbX\^g]dYae]Y``aZ]d_bd]^`_`aecZ_]a_]ag]`]__g_Z[_[\b^_^b\[Z[ga`ZYaZ[bd^]_Z\Xb`\cY`\b_c\]]^b[Zb\Ya]aX^cd^_ZdZ]ca`Z[[[d\a^_V`[h\f\d`^d]^XcW_Wgd__`_ek[a\_]]]aW_b]]YWUb[^b^_]\\`]_`_^]^]__\]^`[\^b\`^cd^`\_``^]]b`e]_`__^\_[_]]]Zb[ac^\_`abbbg]\]`d][b]`_Y]_bb^\b`^_]^[d]]`]a`]_\Z_c`\fe`^_a_cV]Z^__]e_\ai]c`a_Z_c]^^]_^]b`^c[\Z^_`^d\^\Yfa`___\`a_\h]^]_^^g^_[_\_`_^]a__]_``aa__acd_a_b^_a[a_a```b\_\`_\[\^`_]]]b^Z^_[_^]]^b]]]__c`[e]baZ]a^__Z`^ZZY\`\`]d[c_^`\_aaaaa[`c`d_]_`a^b[_a^^]\_]__\bbb^__^]dZd\c\^_YbZ`]]^a^`^\d^_Z\_a`^_`aa[^^\ab]bb_]_a`\a[^a^]]\`_``]_]^^_`fYaf\[_[YY_daaZ^]cY_aa\_Z\[UX[S`S[^_`W\X_dUa]WX^TcTZYaWXY]fONSfK^b_X]`^\_^TYj_Xi[ZdYM]_fYbcVe_[\SZ[^X\`SYa^c`TWYZeZaZca\^g_WjP`M]aUZ\i\[[RT\]\XZ`\b_dZWdf^ZbU^aIWZ\`]b\XiZZakfbCeT_[]UX^S[ZWZWa\[Y`^e[g_[\`SXP\]ZO_]OWjUO`QV`T\aZRWZa[X\Y[]ZD\\eT]\UU^Qg]d_BfX_ggYio_`]afUaS\WYlWZ`_cmtcbf[[VaZWXgaflTR\W_`h]`U\\^`SWS]XgeT\aZ]^_cePU`a]ZeYRc`VS^`a[l^e[x`j[^ZbvaY`VYeTi]Ydejl^XV\dSb_ZWL]cZZ\e^\`b\__\``^``]^`ac^`^]a]`a_`_`[^Z`Y`^`c^`a^\_a[]`_`d]b[__\__b_]_]_````]Z``_]^___\`\a^`\^```\]_]b_a[bbf^]_b\^]c^a`d\a_[c_a^^]\_]_^a^^][]``_]`]f^_][_][]`a`^`\aY^aY_`d][\_^_b^`]`]d]`^]bd``\^Y_a]]_]]ieQZcXU^^\`d`eZ^Z[ZcV_[WcdTa_S_XeY`]X^hfa_\_^[SWhY__ceRZ^efea_^WQ]ZdXW^_XaXdbQ_``bY\W^jTf[\\^\^^ida`ePV`X[^`VfY`__eeffZ[_\c^WWT_^X]Y]ZdSbXfTb]V`fYcZZ\g\bNd^YZ`[fb^WXa_UaR\d`jbX]gY^_`d\cbX`_]_Xa]\]__ba`\a]_U_^`[`_d\^^Vh`Y]\_b`Xa]b``Y^c[_^^^_V^a`Z]]b`]aV\\d_c_\`d\Zd_^`c^`^\ZZcc`bY^\]`]a]b_b_`YX_b\][_`^Z_aac[`^^\`]X]`^Zfa\V[\][^^aYZ_abg^bbWWaa]Y\_]a_a]][Y[[^`^^^Z_Yb_^`[`c`a^TXX_\^bY[][`^[b`X^^S[\db\^\Ycd[][_d_[^aYZ^[e_]__a[_]\[\aYYU`b^X]\]]lZ\T[Z\[]^[\_aYW\b^`Z_]c[aja^YZY^_a\aY]\a^`\\ZZ_i^a[cX\`]ae\ZX\d]^\XjZ`ZVVRWY_]^\^Yc\Z][ejeYZ_\Y_`\`d`bWUZ\bc`Z`]Y`\j^][cYUea^[WZZ^_^_^]^\[_]\a[_dZa__[a^XZ[^``c\^fad`[]`^]\_d[\^a^[[_]]a\[a_`]Y[[``aV\][]\b^Z`ZZda]_^^__eaY[\b]^a`b^`b\]^\e[a__`_a^`^``]^d]]``^\^`ge__`a]a_ac]Yb^__e\Yfgg`b]\``[`]_Zb]^_]Z_dXa`]a]a``^j`^]V`dea\a_[`]b`_[^]\Zca`]\_d^Y^^\a`a`\a][e\]^^_\_YZ^_a]bZZ^]]]g\c^[^[^^b_ba_[a^[\^\Z``_^]Ya\a^d^_\db_ad^\\aba[b_c__`d^`[^][`_aa]a`^]_b[b\^]]_a``c\f]_^\^]`]_X\[\a\\]]f^^`_\[`\c^\`cZ^\_[]b[`\_b]\^\b^]^\a]a]a`c`ac]_a\\`__X`^dZ`c^_`ca``[bZ^`b`^]_a^Zeb]b]`\`\Y^`]]c`_d\\^^ZfW\^_^`^_\``_Z^a__d^\b_M^Y_`b`_d^\`_[b``af^`aa__b_\G_^\^\_``_`XcZ`Z`d]\_\_]`da[[][a`R_`_Y]`_aa[a\^^b^aaa]b]][bZb\`]Th`]`]b_`_cWan`aa`a]\WZ\_c]_[]Za_^\d_[__\a\^\_f`Z[b]^]^Z\c^][\cU\^_^^Y`a`b\_]]^_Zb[c]f_Z\a\af[]e[]h]bYb]cZ^^[]g^]\_[_^\]j_d[]_da[b[]]`]cb\a_Ta^ZbfT]]^\da__\Y_^Y[ce_\^e^a_a\[d[^fZ__bc^`cZaa]_[^`^Zf_d`]]^da`_`aaZ_b`Yda`]bZa[b]\_]Zd]^^`^`]f_Zd[dak_[_Y^^\__`a^ecgbS\]dd]a_ifb^d_ee`ba[`Z^e[`_]`_MLbd^bcX\e^a[cbWg_X\Ya^^Wd]\\aZgca[_^]_^[`Lbad^ec]]]_Y^ck^^__aik`Zcd^^dV_\X_g]bb[X^^ba`baYUa[\X\[^_U_]`Z^a_^`]c_`b]a^\^]ca^eZ^\Ya\b`\b[[Z`f_b^`daY]_]b`gYa^\\f_e\``bc`b[]^`X^a^_]`^_^aZ^ca]ebfabdZ^ZY``_ab`aeae^^a_\Tbb]ba]Za^cca^\bec^Y\]db^`^^Yb_fba^Va_babdbe^a[X_]c]a`a]^_^^`]_Z]`^\X`la]``^\_aab[`_^`]WhdfaTa\e^]`fdcgbi]Zbd]c`bk^dV_VSdabg_`^cddZ^[```eb^dd_amhcahacc]X_hX\af[dfc[e]bg`pc[cW_\Zf`Y\iZaa^bl]c`b]a\_d]\_f\_bn__d^kmXghe`d^]TGgb___^aZf\c_`ceoZj]afcb^k_^\kdZ_^djah_cZ_rY_gd_f^\^^geb_cc]]]a\_]_]_\]^_`Y^]b[_^^^bb^^c__\^`Z[``ca[_\Ycd`^]`Z]c^^`c^]g^^a]_``\]`a^a^[[__`[]^_`^a\]Z`^`\]]__a\ba]a^]X_d^b^^\a^`^\^]]^]^^aZ]_\Y]b][_^^_]]\^`_\e]``_^^f^a_a_^`_\\\a[]_^`^[^`d^__```a]\_da_`^`[ab`cggaXb^\XWVg[bc]U`V]YV]c`[a_]ac]e[]_\__^\]_QZ\bQ`]a]X\XK[_eTkXV`Z[^ZWc]Xg^^ZZ`d^\^\^^_eXbV[YW[^b_Y[b_T_]^a]]]b\Y_bc]efW^iYYM_gd]W_[]^Y]\\]Z_c[_\VaX\^^\[cahR_\^bXZ]X^]]Yfc^XZ`]X_YZcZ\Z][Z_d`]p[Za_\a`Yg_U`U`X_`d__i\`\_[ba]^\e^ba_^abcabg\_`iV```\ab^af\^\Zcbd_\X\\^W]c`bb]^dafa```Xac\de\\iabjZc\_\]^hcb_]__]d[]]_^ba]ca\e_aRYdY]_[]Z]]`_]\`\d^[a`X[a^jXW]ed]\aad^^c\`ZZ`a`ec`[`Y^cXaYaf[_V^d^W\XbR^]`W]ddZ^__Zh\]Z^Y`Y^_\_ZeZ^^f]d]^``_^ZV]cg[Z]`d[\dY^Z^a^cY`d]`m_ZebW[`Z[hYURk^`[[Xhd^\]]dgWa_Q`T]]]]\XY\\d]c\U\_^_Z^aTbk]\Y^[\]Z`^^Vbab_[Xd]\a^_\Z^ZVR[\Sc]XY`\\d^Y]`P]^\WYZV][[\dW]^[^__^^]b_^_\`^_c_^]a\a`]aZ_^]^^_]_\^^_\]^^]__^a^^`_ba^^`^^b`[a`_`__^^a`]]^^]\_^^_]`b`]]_`_e^^___`aX_`[`\^ba`^`^`__`_]^]^]]`^[]]][^[c\_a`^^]a^`_`_^_\[^^a^^^[\\__]_`___`]^[\_^_\]\]^^_\``^a_]_^]^_`e_Yc\]]_U^[]VaT]a^cY\gX_^^\f]YW^Xba^_Y^\^\]lb_\\dc]d`_bZ\cb\b]X`cgacZda\aZoZ]ca[]c__e\aa`Xe^_]_^WedZ_ccbaZ^dd_W``_a][_cc^[\_dX^b`ZWcb]^^e]]`bhVa_a[X[XbZc[WY`\X\[\]dagY``]`U[^m`[]ZXae^U`\[^_X]Z^f_a\]a`]da]][[``\c^_\`aX`c_^_^_a`___b__`^]`]][``a``d`]^^cab[d]Y_d]__]a[^_aa^a[b_^]Z__]`^_\b_`aa`^W\e^`^[]]cba^]^a`_Z[\]`]]_a[`^d[bcda\`a`cZ[bce`_^S]_^b\_[^_\^a\^^^]\^f_e[a[`Y\a[^\[^]^b]\`[^^]`ZYaa`]b\h`Y\aeZnZ\ZT`[\]m`U__hfbbec_FZd]U_\b\^XUZ[]XvpWd``hgZef]f_^OaX]Ug\Y[bfiY\]UZT^^][[[[h^Y`bS^d^^c\Yj_bg[T^[WVXfcRY[eg\^j[[^`bVcW^g^fUU\[\]U^`gUX^ceY]b^S\bYjXWf^[Z_abkY^`^_[V`\bfnXYVba_[]^d[]]]ha^aaf\b\ec[fb]Zcf]d_]^]`\fcY]e_c_]d___`[ia][bab``^j[`[Z_[\_YgYY[\[d]_ZX\^\`ZbWUY`]b_\d]a_b_ba\bac^Zbba[g\][\^^^da^]j]^X[aXdd`_Z`XZdg_^_`UajY[_ac`_ZcY`gmYa`b_`Z`]\`a]YT]baW^`^]\[_^fbac^bg]_\_]`dd]__`\a`^aa]`\^a[dc^\\]_\_b^V``_]]^^^]]ah\[^ac_[^dcba\W_[gb__c]^b_`_]`__^d\[^^\\Y]^Yea`][`^d]g_`\\d\^`Z_`Ydc\ab__Yb^]a[b]_[Y]b^c]a\]f]^\ha[k__^acb^]]_[^ecc_Y_`_`aa_bb]b[]]Z[_]_]c^Y^b]__^^a^^`\_aZ\_df]b]a^`]`]a^\]`baa_`]^\^_]`^_]]^aac`[b[d[c^]]]__W_]_\a[]\Za]a]c[^^_`a``^__`\_^\__\`c_]]_acce`_a^Z]]Z\_`\]a]^b\a`][b^\__``_][_^a[^_\\a`\^eba^]`be]^]]_beb\b_c]c_]^`\]]cbac]^\^Za\daZ]gfb\\kZW]aZWX]\a\bnW\b\\Ya_YaYd[Z`[^ed^]\\\X\dcaf`\\[`\a\a\Z`W`e]Y]c^c\Y]bf`d_aSe`cZ`ea]^d[`[d[bf[^`_YaWZp]\VZ^Zbd`[Y^Z\a`]Vc\WSdYX``b[`c\Vb[c^a]_bY\\Y`\^WeYW\`e^\_^[ce]W]h\`\\b\d___][ZY]`^ea_^c__a_ib_``g_\_`_^^^Y`]da\\cai_\a]Z`_aa`Zc^_bei`\[_b``]aa^]bY_^`_^^\[`a[]^[d]_`]d^\^`c_^]^a^][[]d_^f_[^\_Z``cc^^c_a_`]_Y_\^Z``f[Z]`\][`\_b][^]a^fb^`_edX^]b\^d]]_bX[]]a`_[^dZ^]]`d\aa`\caY]cZf\[]^adb^^__\ZK][[e^`^Z\dY^ibYYh\c^YbZ_^`bec__W_XX[[]\c[fa`Sd`[WbZaba`bab]`^d[_e]b[ie`df^Z\_]cZ_`_aed`[hZ]^]cbcaa[aX`WdZYaX_^da\[T\bdZ[]fbbdcd^]`_`][b`_Zc`^]Ubdi]Y_`\a_ac]b^hiZaga[`dcXXY^d]\d^_```^`_ba^b`\__^\_a^_b__c_^```[\aa`___`^`^add`^`ba\_^^_]_]Y`]c`__]_^``__b^`^`_]c_b^]a^_`a`_b__a`]^`__a_bdaZ`^^]`]`a[_Z_``a^^dg_]b[ae_``_]\^`__`__ab`b`^]`b\a^^cb\a^__bb\^^`d]^``__]\`_`_[^__]]]^__b[af^c_]``]b`Z\___ga`_aXbb]`_\\a_`[_]\^`]_^`_]\\Z`bW__``a`]a\_^_b_\]a]d^\`ff\[_bb[_Za`a^_\\b]]^]_^^[`^^_]_`_`]^__^_`^^^_^_^b]]e_[`_`_`\[]\_^ab`dc`]`^a\_^_^``^^^a_`\^a]__`^^bYc\[c``^\Y`^]l`^]^_[^a\^a\`^]_]__a]_[a_]abb^__a`_\^a`_`_a]`a`_]^]_`b_]]a`[\[_`_]_`^\^`_aac\^\^^`a^`_^``a^\bba]c_bc`^aa_`^^__^]_^^_`_ab]_^`^`]bbad^__]b_^c_]fa`]c]`bc\`^`]_``a^a_^]^`^_]_^^a`a]^\]^b\^caa`c__`^^d^`b]\^_\]__]a_gh_[d]^__]]gYY]`^^^`bZ]\X]d`_b\g]\\`^^c_bYbbd^_\__`Y`]`\e\_^]^`ac`_XjXXZZ_\b^^Z^^\_a^Z`d]abafZ]`\a[Z]`]]f^_db^[g_gag^^_Vad\^aa_Xb]c]dWZhaaWjhbaXb]\^^Z[`Z\fY`^aWYaaaXb_a\^ca`W_[^d^ad^[]^_\Yc]_]]_[``\\dc\ZU^[[\^[]^][[\[c_^cbPaZ[_Y]_a]de]`ae[_]_i^b\_ai[^_[Za^`e`_c^^YbYacb^\Z`W\^`[d^\_[Y]\^_][Zia\[_cec``[]d][fXbYa[[__a^a\e\Z]\bccZhZ_iaQ``Y][_]\Z`a^^c^dZ\_]]^[[\\]bX__a[]_b[]]Y]_b_Y\_a`]_g[Z]]`a_]``e[`_a[\__b\f\^d\`aYY_]_]__]^`aaa\e`]b_^\^]]Z^_`b\[^^][_[^^\_]^_`^[^^`_ac\_]_\`_^]^_ab\][^\]b[^]]`_]\`^]]\`[^`]b]_^[`e\\_b]^`\c_]aZ^a`\``]\\^b`]]^]a`d\_]e]\_ba]_]\^^]^aaZ^^Z\XRZc\^Z`X\_b[^Y\c\b\da_^Zb[`\b^[a^b][Ve\]\`jde\ZZ]a[Z][[^ZY_kjc^aZc\T^fe`^_d[S^[[[be_[a]`[d\`f_bdf`a][[\aW]\b\]c_[Za`[b][bdR\^a`^a_`Z^abbfZWaa[Zccd]\d[cYa\Y\dc[a]Y__e`\]`d`^g\d]]`e[[d^_`cek][b\^Z_`]]]W[[^^b^X[^`^a[d^UW^_]cbY]d]a^\]_\`\[_`[b`cX\]]___aZ\Z\U][^\`eX^_c_c]`]X^[X``ea_`X^]Z_[[X_\]^bhbZYb`^ZeZ_\^_acW_]]hchh]X`]^^b_`[_b\\caZ\]a^[dZ\r^_\bb^^[a[]_`]fZ]\]_W]``c[_\_d`\[ea\`e\_^aZ`_aad]^___]bb^`]][^`[\[bb]Z`b^]_]]\b\_[^b[Za`]`c_]b_da]a`c___bd_ac^^`a]_Z_`^\d`a\dd`dc^]_db_]b]^^b`a^\`_ZZba_`^``\]`g]Z_a_\d^_^Y_[^[a]^__^^\b^_]\b`_``_aa^aa`__^[_]bch^\aba`_```\eaa\Z[``^Zb_]_^Zd_\c]b_aab```^`_af_`]adc_f`^acbaag`\ZYb`a]_[c^a`c__d_d[\b\`^]^bb`^^`^h`]\^^]aa\f[[__^`^V_`_[Zb\^d]^Z`]Y^]bcb`\g__a_\\`\^p\cbZ_b_cd\]]ab\a__aaZ__a`[]fc\^\a_\\Z_c^]`^__]`Zb]a^bdc^_a_c[`b^b^d_]\_bdY^_\]]_^fa\Z`a[aZY\]\]b[^^a`_]aZ`a[[_[\Za`^]^Z]^c^^]]^`__[]`^]c`^^a`[^_^a]^a]`\]`^\_[`[`Za[__^^d]ed[`__d^[ec\e^_^a\_]^]\aZb]_[aa]b]^^a[_Z`]\a_^^[\b`_]_]\\_^Y]^a]`dc][T^_a^_b^]_f``c]\b^^[a`a`X_b__[^^]]_\_ab^[]b^`_\\e`__W^\]\^b\^Z[b^b`_\a]`]]_]b[^_^_\]^^[^^_`a_[`a]^]b]_Zb__c]^]][]`ba^e[^^_]__aa]_\b^]`a_]`a^\eb_\_]b`]a\[c]]]`_^_da]]__Z^d_bae_^\a``\ba]^ab`_[^caZ[``^]__a_a`a]_`][^_`\`^]_b^_Z`]`_cc`b`^^^Z^^]a``]b_]_\]\a_a__aa^_]]\^`\b`]^^[]___^\]`c^^``]Y[_]]]``_^Z]\`]a^]`aa\c]___[``]_`^[_^a``]]^`^a]^_^_\]]]^^_]``\`a_]`]\\^`c_`]_[`_]]_^]a^^\_]^a]``\_^_^_]aa`_a\ba^c^e_]\]_]a__e_^_a_^]\^^^\^c_]_fb^_]`b`^cZ]]ab[^]]\^_^]^a_b\]]a`\^]a^]_a]_^`^\]_^^]`_^^__b]aba^__[a]_```^]`]aa^^^^^]aa_`^^``[`[`a]b_Z^_^_^^^^`b_^`]`a`_^Zb]b^\a_`_^]\`^^a^]ca`a`a]]^```^_]\^[]_^_^a_^\ib`_a[ba`ca`_d_ba]^]Z[^`b^`^Z`\Z`_^^Y`_]Y```Va\]``_`cdc]\_[^e`Z^_[\`a__^``a__`d[]abf]^^]]a_`^b^d[^[Zb\`b]Y[cZc\^\abZ\ca^abU``]][[`]\[^[[_\a_Z^c\c^^aa^__[Z_Z^\^add\X^a\____[a[[_d\_`]a\^\[^b]]`\\Z_`_^_^`_]`\^_\\`i]daZ\`^Z[\^^^a_\`^`]\bf_\[`^_h^^\_`\a`ZZ^_]]^\`a_^[^Z^^`\_]e[\e^^][`\^[^\_X^]^`^]^_]_\f]^[`_`_Z`\]b__^^]b`]Y]g\\_]\\[_^`a]\`_[]_`\i^`ae_bb_]]^b`^c`_^^_bka^^^`bb]_]^]_]_Yc_f\c_a`[b]\[\aZ\\`X^[a]^Z__\^_d`__[a]]^]]Y^_e_[X\``f[_`]```^^^\a[]XeY^g`_\`a^bTY\_^Z^X_^e^__]dZ[cY`Y^\Wa`^a^]^^b`\^_a^ZZ]^]aa_]ZbXc^][`_^\Y]]`]YabaSWZ\`ec\^Z_\^^^`_b_^]_^b_]`Z^_``]_^_^c]^]\^c_\d^[a]_c^\c`]``\Y[a`_ba^h]b]]`^^__^d`\`d^[b]^bd]a`[a_`__]`ab\^^`a]_dY_ab`]]__[b_bc_ac^`^___b`c_c`]aacb\d[]^c\[a\^^c^d`^c`c`a][c]e`^]Y`\a]\b\]b^]ab^gZ`d\\`^Xb^`b^__`_\]]]_]_\al^_^`^\c]_`afab``]]X`]c_^aa_`\^[\][`Y`^]`^bbX^^^[]c``ba`\b`^\iY__^W^_d]bbdb`e``_h[]^[^^a``^^Y_c]\eakb^cZ[[`b__Z\^_Y_`c`_X^Y^Za]d]Z__`ae[\\dc`Y_cb^^[^]Xeb__[c`bab_cfcc^c`T[]c`a\Z]\a`[_a\`cZ][[agbab`\b^_ad`ac][^`^`]_aa_b]U`]Z^[]ad^c_aZbc_Xaa][]__`__]]Zb`eaaa^_aV]j``ac_^i_]]]]a\a]_^^^_`]\gmZc^c^Yj`ca]\Z`d]ac`a__^ae`a]`_e]^[a\b^g`\^`bb^^_^`^Yc[Z[e^^]__]d`]fjcfj`b]k_^h]^e_^d]b^g^^_^c]_aocei`bcg]]]c`bbabaYY]b\_`[Y_X\\\^^^___]c][a_Y]d[XX^^^Z^R^\]d\Z`YZ\^R_`]e_\ZX`\_]``[Z_Y_R`cbV[^^g\]_e]Vj^[aW^\]\]_]\^`aWZRYV`a^_a]Y``\XcZZaX[^bbVa]VZR_]X]]aYa[]gcZbYaL\hac`aS[a_W[Y[`_b[fZZ^UWcdf^_^X_cfZ_ZYZ_dX[_c[`]a``a\`^d__U]\[a]`^`\e^^Z_^^Za]\]aV\ha``^]ccbbWZa[^`_]\i_Z[]Z^]^^_``]\\_\Z`^_Zf[\ce^a_W\^a]]`cWdhdX\^bZ]_b^`\\^[\d\]^a]a`]a_b^\]_`^[`_f]aW_d[[^^g^_`f[ad[cVidgY[\]a_^]`]b[_d_][a\_`\W`a]a`]`X\ca_[]^b`cbe\\Y`]]^X^b\`X\`a_\a^a]^`_a]\_]\[[c`Ya``b_\__W`Ub^`]W`_d]]dc]`g\eX_c^]^a\``[X_\bd\_`aa`[^bbZ\b^^^b[`U`^a[]bZec\b`__]_ddXXg_][\_\X[\ad_^][\\^\^`fc_c^aW[[`]WY`^`bcfbX^_\]\Z_Y`ab^_]bb\`a]\_c]Veid]dZf__aZZf\\_e^`\__eaa^\^]^bc\\``_cYZ]kW_\Z`__[Ub]Z[W`V\^bZ`^`aY`_b`[aa^b[_fa\b^b]]\]][ceZaa[\`YZd^a][_Zc[e^Z`_`a\^c`_`X\\^\`abY]_Yc\ac^b^ZZ``^_^ca]bb`d^Z\\[[a^_a\_bb^V\b^b__Ya]W`_``fah\`\aYbf]__Rd\a^\_[Zfga_ZX__`]^Xa^a^aa[bi_\YZbZ_`f]`\b^li]\WY]bV]`Z\\[^b]ZZ^`^^[acdc]_Z]ga]cZa\bc^Ye_Q\b][d^dZ^f^^]bac\_`_e`bYSba[Y]df`X]`\ZYa^_fh`a]`b``]U`b^`][_`_fZd`V`^``dbc^b]]^]a_]U[___fba\\\^j_^`][NcS`]_]a__]Zg[b\]i_`]\\]`f`^[`X\[]db_c]Y\[]]^\Y]Y]^a^\__]\[c\_Y_WW`\Ycb^_^b[a]`b^YaX`c\V[Xa`Sa\]c[_a[[_`hcc[Y^]^[W]K`]f\^_]^a_V_[b_a][^bea]^b]]]g^Z^_d]be\_ZbWSfba\bWVa\`T[aca_\Z`^^`bf_a]__\^]Zg\a`^``Y`[^bZ\__[`[ZaZ`ca`c\aY]^]acc_ab\^\_]Zac_\_``c__\]_b_\\_\Z]]caaad\\[``\^aa^Td^f]`c[b_^^d\_\]^`Z\\^bZa\\V^T_aa^\\a`[]bc`c\_Z`_^]]bZ[`]`b^^^]]]b]Z\_```_bc`X`^\]]Y\a_``c\][_b_]aa\Z_Yc_aYSV^_f_\Zeb]]b`Y^\_Ydc_[g^`b^\`_da^[`_^_^]`a^`\W]__Y[\`_X[Y[e]_\d^c`_ad`]^de^_b\VcYc]`\_bWZd^[a\`_[^^b_^]__]_iY`b`\Z`aY^c]_\\[e\^Z^ZUW`Xm\]W^_^a\`^\`\cd_aeZ`^_]\aba]a_^`^]ad\T^`]`]]\gd^_`_f^]cgaZ^]a^_cca^`\_aX_^X`^a_a`__^^_ae_^_]`R`^^_]_^bZ_\a]^b]]\`b\`^a]]c`]_^^a`cb_cc_db]^c]\_^Zac]\b]^``_``_]a\\\]\ea_[ec_c\`^gd]`]]``_\cf_`__Sc_]Z]\c_`\_]\Z__^\``]_[_]cY]]_bc^baV]`aY^c__ca`a]`\\afc`b\]^[^]`\^]_^^faa\^d`]dc[Yab]^a]`_^_dp_^`c]]\^Yaebb]^\bb`\_]`aa_`^\ca^_ZZ^`ch_`_b^a^W\`]__b`_b_a^X_^^_ca\^^b`a\b__]\^^a_dc]af]c_]^[d^e]`ea[Z^]^`]cc\`c`_cZ`^_aa``^[Xa[]]^\`f_Yab\bZbc^]UaXWT^Z]`^Xg]I_`^Tr\`__rX`aX[X]Z\j[^`\b]`b`cTZeb_]^XVSaeeb\]WY_[c\]_bW```TkZW`cV^`VRV``V\[Z^`aYZR`cafT]f\d`\\`^_Z]`ZZhYZdbaZ`Y`_ahX\XY_\cS]Q^]XLU\UZhgX^Yc[I_XZ[^^U^l\e^]\^W^bdWYbg^W[aSfc^`cZYc][c]\^bc\aaZ_^_\c^__`ai`Z`b\Za\[^]c]baf]\\`_\ZV_e_^b\_[l\]_[_\\]bbYb`[\\[^`_a]`_\fd`]^]aa`_bb_cY`WZ]\Z^a]_`\`^_`[eb\]Z_]d\]^_`ZcZX\_`ba]^Zkg\l^bY\]^__^^bZ\_a`^__d``a]^\Z_akca[`m^^ZZ]^[^\`^^d\^`b]\_^\]Z`fe`__`c]]]``]_\ba_Y_`a]]b`ab[\ab_[][`_]^e_]\]ja\a\a__^c[a]aa[a^aa\b^^bedZ__^`_[eU`^]]UY`\\^```]]^`^b`__`[bb\d^]bec[`U^`\\_\^`a`\`[]^fb^_`^\`^abeYfaZ^g``c]^^\`Z^aia\`^_Y[aba\a^]\c[^`\WQaWW`gdVdgU]LcYX\\`VXU_]]WY[^bajQYaa\YaZ^]][[e_nb]]UVf_Yi_lcW\]dcb_^`Z\gYY_\`p[VYdRdY_^a]ZZ_[]\af\f_V^e^X]VcY^R_^W\da_YU^_WP_X[mcX]c[`^\f^^_c]OfX`\kb[Z`^YU^a]Y[cCZWdZ\\_U]a]ZT\Wa]cZUY^bZ^ZZ\`a_]_[^Zg``aebW[[e`\ah[S``aaZX`YdcXada]b]^[`V]b`Z_^\__YWaa[fhSa][^\c[]\b_\^d[\]a]c^[\[b]d[[Zhb_XY^`^S\Ydb]eY^c^c^]W]Y[b^]_e^NYf^ag_c^[V\dX_\^[e_YU[ea]eW`[m]_ad_^_]\^Z^[`W][\d`[ig^_]d[^^ab_d\\caZYb[TY`_V[RZ\fkW`^]]]_V]RZZZX\YSa`TYVb\^^Z[aTVX^cX\``ZbR[X]W]c^d^ZY]Z]`Xf_e`_`_[P^bZS\Y^bZn\Wa__^Y^Z[N_a_RUYZ_^\ebWZ]bZ]c]NY`gW]hV\b[Y]^U_g_W\f\P`h[c]^Z\bYUXf\fabL\_``\Vbb]`^]\_T^f\dZZYe_\]\`^^X[a[Z`b^[c\]_]_eaW_a^_]^]aUY`bc_`\`d^_\Yf`\a`^\`a\b^a`l_]^\a_aZcX[\`]]_aWd[aZcY\cd`^dZ_]c[\]Y^^]][`]_[e[f\Y`\]\]^aa^bcc__[]\c^\_[b_a^abY\`^^ZYc]]W`\Y]V_d]a\`]_\`f\_a`[][]e_`[[\Y^^]b]]`[a^b]^a]ZiaZZ`^a\f[aa`e^`_[Z`[]]`ae\`hd`c_`d`c[`_`a^d]c]a^a^^^ib[bYbY^^__^`aYe_dUd_b`ba]\_Y_^^ca_a_\^^]`_Z`[_`Xbac[`bcXb]^e[bbad_`Xh`[Y^c]_\`]a\]a\`dY_f`Zdai^V][d[aZ^^_`Z`^\]`[_a\__d^[b_Xcb__aY[`a]`^`b_c_bb^[Y^_^a^\^_aZaf^^]`baa[]a\^Z^ZX`^`c`d][X^\Z\a\^\Yacdcba\X\`^`\\\`^a`beY][__]_[a]^^a\_Z[Zba\_a^e]X[_f\e^^bcX]_\`da[_jcXa^`h^__\^ceY^[f_affW]aa`_ea]^Wc]_ca[]_b__baaa^^_c^__abZccX]]_^\b\f]c\`bb^bd`WaV_\^\^]]ab]_^b`\X`]b\`]Xa\]`jcea^_][^c_c_`]_```_Zad`[e[_^`Z_[^^`a^^_jc`Y^\b``\a]^]`^Y]`cd]]_ebZ[d[d_eeU_[a^bb^_Vd\caabVXZ^aca]b]`__eb[`_]cg]c`\[[d_Ybbb_\^`aX^a`f_be]d__\_ch^]cY^aa]a^[`_`^b^\`_]^e]]]^_`a\`Z[`a^_[`\`^__`[^b```_c^```_^^^[^f^daa[]]c`^_^`^[^a^b[_d`a``c^aZ^_aabfbe_`___a^Y__``a`__o_a]`^]\\\a`]bY][f]__b^e]Zca\_[^^]aac`_b_]_`^_aa[^a_^\`\dba\c]\`\]]b_[Y_`cb^`d]\b__`_]Z]^_]`g__]_`_`_c^]\b__^f\_a``]\^^ba]]\^]`]e_a`d_b_a_Z^_^_^``]a_Z\b_]`b_a__d]`d`^cXb^^]b__`_[b__^__^`\^a^]_^a]__]]_b]]a]^^^^^c^]a_^a_]`^_Z_`^\Y^]]b`^`_]\]^]^_]^_`]`\]Y_]b_[^bb^a^a^`_a`d`_`_c_a__\_c^^\```^``c^\^`b]`b\^_]`___b_c\`a^ca[^_\\dY^^`]^b\`]_ba_Z\_]^c\\]]_ce^`b]a`c[\]a]]d]a\[\_^a^`^f_c^g]`\__ca^^Z\]`^acZeb\[_bb\_]\c]]^\``_]]^`]]_d\b]b`cc_[c]]ea^`][^^aa[]^a_a^\_a]a]_^^b]a\]___]_^[]``_]a__a`_]_^\a_b^X^\dcba]^a_^_^_^_^b[^[`_]`Z^dec`ba^``\^^\b``]aaa`]^^a\^Za`[_\_``^^^_]ac^b[W]`]`^_c^^ad^ca^\__b^\]g\\^\^_][a\^_b][`]^_]d\_Z_]g`\a[___aZ]^]c]aab][Y_i[_a`\__^_`]a_`^]_^_^`\][``^^_b][]_`\_^]^^_b\`b`^___`^^`a]_```]^^_^a_\]__`^]a^a]^^\`_b^^a_\a]^`a^_]`f]\_^`_[^]^_^\]]_^`[_``^]^^^a_a[__^^``_^`]_]]`_a____]_`^bb[^]\[]_]_^^`a\_^__a]]^`^__a^_Z\ab`_^]]^^__\]\_`a_b^ac]`^g`g\b\a_Z]c_[_Z_ig^[]]]Y\Y`__`ZaaadYb_aacZY_V]Y`aa`[e\Z]]fb\bYb[]`f^[a_cage^aY`^eW[i]c\]]ZZ[^hW[]Y\db\e\h\]]hg^b``]^abYW]c_^\aca`]\bca_W^]^^b`]b`acf]abcf\]_g__Y`eX`_iY`c``bb_^c]Zc`cea__bana_aa]Vi_\]aba^d_\ddhh`^\\ib[[j\mfb``a^ebXXh`YV`WZ]]\]a]\aYdjmaX_Z`_`W[cZ][Viddf`^V\_fa^caZYXbTZj`\\__XZhaac\fZb^TgVcdWbdbeeYScfc^Y]c^[[YY_^\Yaca^`YeUVe^__\\cd\^o\d^Ze`W_]e_U`Zc``Ya\hWdcfZ\\^_`__^\]_`^d^b_[\a`^Z_]]_aZ_]\]_d[^_c_^_`[]_ac\]]_]]^Z[^`^X[^^Z\[_\_\]]^`\^]b]`^__baba_`__]_^^\iZ`_`b^\[\__b_`]```^_\]^^`_]]Zb_]^b]_`]`^^]`b_`]^X\b]b\`_[e]a`]_``]_`\_d_\`__^`_d`c_]]_\_]Z_]db^a]_X^a^`a`ca_a^_^_\a^][]Z`\a\```]]\]a^a`_^]^\b_`a`Z`]e_]__`ZYa^Z]Zb^^`___[_a^`e]]`__^^Z]^_a_^_^_a``]\a`_Z^[]Y_Zc^^_be]_`^]`^]a^ge_`\^\`^]__``]_\a_c\g\`_^^[Z\`_`\_]^]]]\Z[^_\b\_X_c^_Ya]_b_\^]`^^b_`]^\_a`^`_b]_]]`a_]a^``^\^a`_`]ac]]^\_^_^`_a_`^b]]_]]`^_`^][`^[]```\]_`_^^]^^_^^bcb`_bcb_^^^a^^a_^^^`^^[_^^_a``__][a_^_a^]``a_`_ab_^__`][^__^a]a^]_a^^fab_^_^___^b]_^_[^`_a^^[\abg]^b___^[]`d\]\i^_[`\bW]_c__X_d\_`b``afZc\V^]e]]ca[X^^_[_[]^eZaY[Z]b\j]jf^Z`c^f]be\]kb[[]Z_^U^[b^^^^^c\_`]bh_[\db[[a`cV[c^\`Yea\_]Z\dd`aa]ZY[\`_UaX]`a_`a`dl]__ba\_^`^a_]Z]Y_`\YaZ\__\Z]_]__g]`aa_a[^[`hY[_\[^_a[a[a]Wc]^eib_dcZZ_`WZf_b_baa]cb[]ja__ba][]caY[[^`n`^\Y`_kcYdfXa[_b][\cg\ca]^Xb\bf_[a^a_aaYeZZX^\YZbffSg^\[a[^ZZ_Z`efa_[dVZ^\`Z_R\S]\\eaW^_YgeWZ^clg[_]fWbc[be^V]gWn`]a]]WY`Yg]]aabYba]_Y\\a\a__\]b\^]ba]d_^a`^]^]]a]_`]_]^^__`]a]`]^^_][c^a[^^`a]]`^]_^b_]\`_\`^]^_^^]_]^\^^]`]b_^]]^_d\b\]\^_`]]e^_c`[^Za___\c__^b[_a`[][adZca`^`Y_^``^b^]]`^``cee``\e_a]^a`__a_]_]_^]__^`^b_^^_\_`__`^dZ]__c_c^\`__`bb^b]UT_[]`^_[gf\W^b\bVZa^a_cc`^aZ\VY`ZT[b_`[T]_^Zn[WaSXca_o_\a]YTea_c]]_ed^\_aZZYf[]]aXe``W]aWXa_`bd\cd^]^Zb^`\__c][ZaWa^``X^\b]__]a[^We^`S[bb_^[b_fVYa[a]_bZZ`Y\\W\]dZ^[`d\a\aWb[aba[]]^aa]^^a[a^`ba]]\_^`^\\`_\\ab]b\\c]_d[^^`]^d_]`c\^_aa`\__^[_a__\```]a_b`^a]^a^[``]\_a\]]^]a]^Z^^c^^^aaa]^\^_\]``[\`a\^_[^^]\d_W^]^`dY^`a^^c_``[^[a_\``a]a``[^_]^aab_]Y_^]`_[]^f_]\\[]b``\__^a__`]_\`[^_`a`^`_\_a]]`^_^]\^[]]^Z[```Z_`_\\`^^a`^[_b][`][\\_^^b__[c]c^__g\`_`^]`\^_a`]aa_^aVea__^^_c_\a_`^\c]_c^^`]\\_]_^_`]^``a]```Z]d\b`c^__^\`_[`[]^^\`^^\^_^\ab]`_]^ab]ba_]`d`_`_]^`^`^[___^\^cba_]^_`]_]__a`c^`_^_a_]^`^_`b_]a_^`_`\^_]__\`_]_]^__]]_^__Z^c^a_^b]_^]d__`__`__^_]a^^_`ae_^a^a^`\_c_]][_c^^_a^``d__`_^]_ba[_`^\]\^`a_a`\__\]^`b_a`^\^]\```^^`_`_`^`aa^`^h^b_[`^^^__^^a^`a]``^`^Y]\eZ\m]WjYZXd^YdnXe\b_\pfsaRfacTPdUVjV`Uaacpa^cm\nTm[dnJe`Za_ad\^XiVeYb[e[]bnX^b]eilfbg`__Xb[dYcdc[oXlhNX\hjaYZ[Sd\oXmbc\[]h_djXp[m~ua^nd[RWgb_X^XeU_bYYaY^kogU_i^dUai`YeZUwXg^gX^QaVdeaWib`faT\]]^_\\_^a`d]_[]^^b```[_`Zb]aa\a__^^_^_^^]]^]^]`\_b]\^X`___d^b_\Xe_\]^[^_\\]`[`^a_`_c]^^`^`\`_b_a]c_d\ba\]]^]\__]c`b````aa\\\^]f]a__`X_[`^_a^a_`]d_ae_b^]_```_Y]]`aa^_]^\_abZa\c]_a\_^]`Y]c`]`\\]]]`]jZgZ_ccY__i^^^]ZdX[[Yffe]jda__Xc]e_h_\`W]]^_Xb_b^Yb[][S\^d`]^^`^[X^`a`bc^\^c^k^[bb`[^ZbaYca]a[^b`Yj]]]ZbZ]]g[_a\fc^gg^`bY][`bg]\\Z__b^^Y`^\]^fZf^[[\^b]\Y_`T`WbZaX[d`a`U_[T[cZWa[Wa`\[]bae_]bhYSZ\^]feaYacm`R]hY\a[[cg]X^rZ^`e\eXjbg^`_Z^_WZ_fVcU]b^d^]m^foV`[b]_VWYaacac[T[]__Qf`_e\XX[[Z_YY[]TYfa__`\V_eb_Wf]Yj`a]lcba[aeX^\dbc]]c]X]Se]b]djZXXZ_Z^_Q`Zbc\_WeX^b]_[WTdT[RZbbZa]V]yWZ[]`Y^]Za_^\``]]`]^\^a___^Zac__acb]`]\^_^`^_`]`]_`_]^_]^^^a__^``^c`bc\_a]`^`^__]]`[^^\]]a\[^aa]]_^_[_`_\_a`_^]`\`_a^^`^]^b_`]^a`^_]_^Z``^_`^_^`_[_dba_\_`_`a_]\^]_a]^Za^``]^^_^```]^`_]^`^]`]a_``_`]__cdW]_d[m_[YY[Y]Y^]\ca^fldb^\]]\a^_[c\_\]c`f]]`]Y\]a`^Z^fY_Yb[Y\W][`\[e[\\b`\_Ujfb^^X^]e`YcfYb^b]\__Y`^bY^Yg``e]b\[\XZ_a`]gX]a]]f[a_V^_\c`[cbX\W^d][^_]c`b[afZf^a_a]adba][^a]gZ^oVc`YZ\`a__Z]^^[f_\f^]]\^`^]ba_^^\^^a_a^`Xc[`_^\[^_^]]`^____b[\a^]ab]ba[`a]ae]]^]`___aZ]ea][Y`__\_^c__e``a]_]`dc^acaai]\\`^ce_^]d[]``\c]_a_b_a]Zf``]Y^Xa]_``\^[f_Z_``cX_b`[`_Y`\b_a^b^`_a^Z^^^]`d`_^`c_d_`_]bb__\^___^`\_^\_``^_b`_b^a_^``c^`ab`a]^[d\_]_a]a^\_^^]`d`^\a]]b^d]`Zb[[_^_a]^`__]a`a`\^^\c]_]^a`\__a`_`````[^a\_]_ab`^^^^^^]]^`^^^^^c`_Z`f^a__^^_^_Z]]_]`c_a]b^^^^^`__a]b^^a`^[_`b_^^__^\_b_^`]_Wa^^b_cca^^^^_ae][\]a_aa_`V]b]a_]`Z]]c]\_abaa^Y]W`]_Z[_\][_d_[^_V^X^caf_^^``_Y\c``_^c^^_a`gbZc_c`\c]_`^_WYa_\]b^`\b]]]c_[V^_`[c[]\]\Y`\^\_fZ]^__^d\^[d]\a\a^_b]d]_Zab^bYYo^Zc]a]aa`^W_b`b]d^ac[\Zbd^c^a[]^_b``_]\\_]ba]_^`_`__bc]^Zaa`\`^\_`ga^]bb`_]\_]^`b]b_]^e_a\^e`c`\_Z_]a_b^`_^\_d`\_\^adbaa]_b]]_^_^ec_c`^b_b]^a^__b]^]]`_\\aZ\\^\^]`^^^\]_ad\_\`^]__d`__]__b]a^]^``_^`^a`\_b^]\a\]a`c`]_]a]]^d^ac__^b_ccg_\aY\c_][c^b`e_``^_d\[h\[aj`g_]cZcYbcRPXdV\_`[Yg][b`aa[_WX`]d]`d_cbde`]e\[\[[ccZY^b`_`[^a_Yg[X[e_]cf_]bk\bcbc`X[^a^dc^icY]^caYaacc^a\c\Y`b^\\]fV`adYae^cX^ea\^YaaX^]]]ebWg^]a[\bccZ]_^b]X^[^[][`YYc_`]_`V[b`a\^`a^`^b]__\_b_`_[`b`^W^aa\\_`__b_bY^`W^`^_`^^^[]Z^a]\^^_c__b_c]b``[`]__e`^`[`d`R^e`b^_```d__`_c`_`_a]ga]`ac\]`^_][_`b^_ba_\Z^]^__]b]]_\\_^`][a^\^g^a_aV^``_^_^\]`]`R^^[Z]f`ddi`gR`bknYZYU_fVabV_[[ac`abScZd]Xc_h[Xda[]TN\\naY_Ua\Rc_p[eejj[d^cZbZ^iice_^ff`bX^`be]ZUhj[]QRY[_PcdeW]Y\]S_\^a\d`ah[_d`]]XgOZbYYa]XW\^j_`fed]P[]]\k`hbbg]d]bYXj]XWb^cXb^S`[_g^_Yka`a_Zf_X_]Z_][_`]a_^\`^_\^c_\^[_bZ\\]a_Z[Z^^^^\^[^ac[^f`]ZZ]^[b]a\\]b\]]^_]V[_`^[_`^`_a\^_^`aaY[`^]^[]\`__XZa\_[^[`W]]ba]aa^\`_^[_a_a_da]^``\``^b\``[Y_\]a^bW]_\]``c\]Y`]a]Y^^[_\__\]__^^b^_`\[_^`_^^_a\g_[gWeZ\X`da\]bfY]^\Y^ZW[YVdX\b]^\T_^]c_aZ`[``]c|a]_W[[[]\`f`\[\^QY_[_\W[`gc]`\___^_^`]`a^X^`Xbc`^]c_^^Y^^\[`b_\`b_ZUYXc`]d`^[\U[a\\mU^a[\^[[S`_fX\ZZ_[XZ]^[]dW]Yjb`X]Y][Z^_d`ce]]ZaYb]_]]U]Z`^^_a``\aa]e^Ub`___`]]_b^ca_d^_`aa[]]`_a_]]__`b\^^^\`a[`___``_`_]__``]^a[[b``^_]_]e^^`_ed[c^]a`]ab^a^]]`_a]`[a^_a\b]]ab^ca]`_bab_\f]^\`]Za`_^_^][\^`ab_cY]b_\_`\_^cb^^b^_`__`^a^Z`i_]`_`]d]^^bbbYa[^[b_^_b\]caac__b\[]^^aa_b\^bZe\Ya[_]\[Zbb\_cV__\_`_]b\[\]^[c]b^]\a^[\\[\^a^b][`aa^b]_``b]Y_\]]aa`a^^c]]bb`]Z]^]__`[]d`^_``^]^YZ^_\]\c_bZ]^[]]_[_W\^[g^Z^ba^\cb[[a[a_\\_^\d\]Z\\^\]dZZ]]`\^[\`_a`ZXZcb`[`]]ZZa`[^ec^_^d`^c]_cZc\c_[Zb^^e[a`[[_]`Y\^[\g_a\`b`__Yc_T_]`XbWW_eab\_Y^`^^\[^_]]W^\Z\_`^WaZ\^ac[f``bjYZ_VYd^Sf^b^ba\Zb[_eZ`l^]b[f\e_`^``^^XR]a[Wg`^\]bfW]d^_]a`]Z_]caVY^^^bg]]][Tc]_\`\^`g]d]]_X_\Xa_Zc`j^^f\Z\Y\_Yb`^`[Ve_]XS`a]]_O__[bc`\g_afd^d\\b[X_\Y__\Y`]a_\\f_Ua\g]Yb\_]``a]]_^^]Y]oZWgV[^j^e`Z`]c_a^^bd^__aZa^[Y[ZcacZb_aeab_^X[\cXaY]]^^aa]]_WfcXY^[_^Vb`dbc^[d^c_b\][_^V^a\_a\``\__^a`^^^__a\b]_`^]_^a_``c__ab___a^^`^_]]^^\\`^`a]]`]\`Z^d^a^^`^a_hd_`a_`_^\_c^db___cZd\`_`^_c_a`e`[]e^^`_`]_^\]_a]]]a\^`g\[]a\_bb```b\\]_^c[c__a`__a`_]^]be]`\`]^\b^]`^a\a]_^`a_`_^b```^\^b_\f\fcXb_]^bX]^_c`a\_fZW_b\]]^`ada]aba^__c``]`bZXbe`^_a^\bgZ_^Vba[d[_b_Yc_d_Y\Z\ca_]_`g_^_Y`be^`\`gaXW\\_]c_`be[c`]b]_c\_b[`\c_j]^Yafh[Y_aZa]W`]j]a_VY_`e__dabbZ`a_c^]hZ\_^[f]cUa]`^^bd`]`[^\]`^^_\_`\^^^\Z``a_\^Z^`a^___`^^a`U__]_]^`]^V^_Y\`]]_`]]c]Y_^a`^\_^]^_[^^^^\\a\_c]]ba\c\__Z_`\a_\_^^[^_`^_][__^^_^`^^b]c__Z`[]]\^_Ya]Y^^_Z]_^^_^]^b_\_`\Y\[^_b^_\b`_]b__]c_^__`bW`_[]^_`c^^_[]_\a\_^]]\\d^]ZcbW\^Ud\^]`\abca]W^Zc[dW[We^a\\\bYgeRa^\X^_]_Z^a[^]W\bYWg]_g[b_a]Z[Za`_db`eZenb]^]^T`V]c\c]\g\[^a[^\^``\Z]]]PZ\dc`X]da[T_aYW`b^^_\g]c_^[Wde]_`]^Z[[[_[cca[Y]a\Zb[a_aa[_hXe^]^ZT[[\b\`[^a]\Z]]a_^^[_a^\b_]^\]^_a_`d^`_b^b`_\_a^]]a^_`[^^^_\d^`^_a]]^``b``^^`^\_ad_b`__\`_]_]^_aZa][^]a_Zacc\a_a]]a[[`_`Z`_^`^Z]`^^`^]\_b_[^__\``ab`_^^cb]_^`^\b^\_^``_[c^^^]`^`^a_^a^`^_\`^^^[^c^]]]`_]__cd__`_Zdad__cd\c`^_``c\_]``]]^`^]\^^]`c`[_]]ea\Z_`d`b^^\_`ag_^`][Zbda_c][`^c`e`b`[]__\_Z^c_aa^\a_\_\[_c^eb^`[`[d__]a]dZ`][`^`aa_^^W^f__`a_`[^X^]hbZ`\_\_\_\``a[[a]]^_[`^]^[^_\ba]]h`dZ`a`]aa^a]a`a`]`Z^Z_```[`ab^[_^a`\^\aZ]\Y\a`a_\`^]^a_c_]\]\c^e`Z`[[dbadZ^`^^]dZ_\\[`^Z\]baa_bg]Y]Y``Z`_X]_]`e]\a`^_c[ZY\b_`_n_^[\_^[a^`\faX^`c_^X[ag_b^^Ya_`a`[[f`c]fc^]\][^Zb__`[\^ead\\[bcb^bcb_`eY\^^_ac_\`]\]_^__Xa`__`b]^_c_`a`b^]aa^\]_`a]^^]_^]a_]__]d`]]__^`_]b^\`]^`^]^_``_^^]_^^^^^_[a_`_^_^]`__^_a^\d_`^]\_[bb^`]^`_\_^a`]]a]__]^_Y^\]_^_]`][[``_]]_aa_b_[_c_\`ca_a]_`_a`_]^___c``b_]__`]]ab`^^__`a^]g^cZ^]bcaZaa__]^a_`__^^]``]`b]\a_bad]_^_\ba_ac]`\\d]c`Ra^_[[]`\`^`\^_]b^[^^`_\_bX_\Y^\Zf_f^aYadbaZ`]X\T^c]^]ca]_`^a]^]^a^b__dfcZ\^\\\\b^]\ba[ca[aba`cc`_adc_^_]b[^\Z`]acb`\_`b[Y`_\`aY_ca]_`_ab`\__`^_]Y_`]^_]_```^\Y^_b]]_\]`dd\X]a_aa\_\\_c^cY]\][`_^]_Y^U__a_]`]ad]^^]``^_c]Z[][\fc`Yb_\_[ba[]_`e`_\]ca^`a\^\^[`_c]^`_baa^`[dcab]]^^a[_Yac]Xca_`a`\__\`__\`^`\_\_^`__`\Z\`^eZ]^b^^]][_]_\\U_mf]VaZfW^][\ZhXd[^__bb`^W]b_d^`^\[[b\]]`g\^\^VXbcg\d\^aWf_[]ab]e_a^`_h_XeV`bd\\\c_`^^a_a`[nb`da[`d_c^a]`]hb[c`caZ`ad_`_][^]ac[W^`j_`]fcb_X__aadgg_e\eYbc\Z\d]Z[_d_Uab]fhd^ac^_aa`b_`Xme_Y][^^_c^\dYcZ[df`^cWc^_][lb\YWae`Y`aabZZ[b[`X]b_^ddZ`b^[b[Y^WZ]V\]^^d\dWZ[^]T[_[\a`b`_[^[Xa^]^_`b\[^a\ba^`]^ge_aZ\g`Y_^Va^\\[_[_d_b^\a`g^ma\`a_X]^[a`\b^_eYc^]_Y^a_Y^`^]dZg]]_^ccXaYY[iY[[i_WZ[`_\d^_Z[]cXbaeYaV\\[dbf`^XX\^YbbZ]eX[Y`YScdb`^_hoXdYkcdZU`XehXglIdagdeYghb[_d`Zj_[^W_U`bb_h_^X_FVYU`^r_\b]^T[`[bVe__\Uc[XaThc`bXd_c`bNab^dY\`aU`Ve]\S[c_`\\gbidj\^i]c_]\[_dabba\gbO_fX[SbZ^]^^]^Lh`d`]b\bed``]_f_ZW_aZ\[_dead^`fYcXadaaZ[b\a`f^^a]^^_e`\Y\c_^i[\`a][^\`a_^Vb[]`dYb]^f`_a\[\^Z]bbYbWacba\^d[Wlb^_W_b[\ac`d`dd[ca[[ja^Y`df^]ZZ_a`_^YZ][bak_jkc`_f_`b\_Ya\`[^]]]^_c^_]]gaaY]bd\]`Z`c`^\d_]]_a``^a[_b_`_[b]_]c]a``[_\``_b_`__^]`_^_^^b^^``^^a]b^^___b]^^\_a_`^_a_^^^]\`^_`_^_`e_^___^`^b]_^b^]^c^_]_]_``_a`^___]____ab^`]^_\b_^``^b``\^`_]__^^^_``a^_^a^^_^^_^__`__`^\a`a`_aa^b_^]_f`___]\_b__`]_aab`^_]a^Z^^`_]a^`]a`\__ab`]`^]a`__b`]_abac]`[`_`^ae_`^^]`^^_^`^[__^^_[a`_`^e\]^`X^a^]^]_e_bd_bda^]Z_`^_d]aa^b_aa_^^\cb\]^c^\]]]a``]]a`^[`b\bc_`]a`_^_][^_a^^`[]\^`\_]^f]`]]_`]_a^_c_`\f_]`_[aa`]Y]b`]^VZfd^__`[a\]^^[\`_]d\`^b^Z`]dc\YZ\]VZ`bdac\]dT]_[`g[\b_b\`^cb^]_k`]d`]^]aZ[d^[_]\^YZZ`bcXY^`b_f[\]`]fU^`aX]]W]b\c`W_[`b[Z]\c^_```^bY^c[aadfb\Y[\bZ__f`b`da___ZWac]^ic^a_\^c]`b\Ye\[^[]fac`[b^_f_d^___b]W^d]_[[[kda^ea``[akaY`cY]Wba\`[\d^d\``_d]_VcZ^Z\mZfbZ[]_[\`dYdbc]\[Y^c\b\_^r\^Z`d][[_b\bd_aY_bZ_d^]]asW`^^]_k`[][``c]bb^^da_`aah_\cZ]`_[__`]\`^^^d\T^ZZc`^`^e^]__bbda`Ya^b`^^_dh`d[bb`]bVb^dZ\\\[_^\Vf^_di[`c^_a[_acW_Yba`e__`Xbc_X``K^`]a\aWi\`_\\`^^_c]^b^Ya]Y`^\dc``f]Zd`^`]`bf]\]a\\a\_`abcX\_^g^ac_dd`c^abdda[e`]bZ^^c^ab[a_aaa]\e_ga\b\Zd[[abbe]k_aYb\__^`_`b^_Y[babXZ`a^[\Z[Z^[d^]]`^ZZ`][b\dfY`]a_\Yba\^`]_`c][[Z^^ZOZe__^a]_X][h^b`]Z[`ea\\d`a`b]e\_[cd[]^cca]a`[`[c_\[`\]Zc]c`[[]b_`iRZ]__`_^[\Wb]SW[c]`Z]i_[\^__^c_Td\^[[__^\]bab_ZY_]]^`^ZiZ_[]^Y^[_b_ZY[Z]`cZ[^[```\]e^a\a^`^^a[]`^\_`]b^\_`[]c_]_`Z]_^^aba_]`a^^\__`a^\]^`^`Z_[\`\]`^^a\`^ZY]^aaa\`]^`\db[\\a_^f]^\ha]^Z^`]`]__^a[_]^_^_^\^^e_`\`[`_^]`_^[]_]]d[dk]d^^aa]]_`_^_]aa]^^_b`_^_c_^`_\__]___a^b^___b[\a_a[`bZfcY__`^^Rda\Z`^g]b^_`b\b`[[_b]\^Zbb[^``]\Z`_^Zaf[``]]^__^Z``_\`Zbb_Y[]_][bb\_bYbZab__cZa\\b_]`\[^\]`\a_damb`]Xb_ac_Z\aZ\]_^___cca`dce\Zde\\Zae^`[][b\a]b\ab`[a`]U]]`b_\Z^U_]\h[^]`__\]^\[Z_`g]\]a^Zd_Ua^c^]\aaaY]^]`^_W_][e_dYac_`]_a`_a__S\]^]]]`aaTa]a^^\aa`^a^\\bb`b[fY_^df`^ZZc_`[^X`]_d^\]d]Xc_h`cdS\\b]]Z_]b`b^\cb[V``[a[_`a]bXbY\h`Y^ab_\\b_^a]a__bcc\bedPY^l]a`a]d[]^_[^[[__[dc[`]_^d[_]\b^`aZ]`Zb^^]ac_Y``d^^\\]a_\__^]^bZZ_]ach^Xa^_][[bb_`Yaad_^e`_V^^`d[b\fc]fb^dmd__Za^aW_a``b]`]`e^a_^ef`_`g`\^_\]ZZY_\X^aZ[c`Y^[f[[Y``d^a_^]_d```\_Yg^]_cX^cm]d]^ZZ^m_`d_bcc]_dY^XW]\\a_\_b_^^\]d]da]]ac_Wd^`\_^^`]c\e^]_`\b`X\Ybca^[\c\[\^___d_]\^^a`\_[`^ba^_a```cc_aaa[]`\`a\]b[[[__dbb_\]^b_c^d]]_b_da]babdd[aaZbd^_a]___`^]]^\``]ca`e]`\``_]_^X]c\`f_c_bY^cc_]^^`cb^Yi\_][a\[`^^]\Va_a\`]_c]db^b``^[`a`^a`^_Z^ba[]be`[]a\]^^_^^a]`Za^]cb]^^Z`__^[[`]^b\c`^\_^]Z^b`_`ZW_Y`[`^^\]a^i`a[^`Y_b^Z^Z^^b\]X^^[[_a_Z]^g^]c^_bje_a\_aa_Zd`[]a^cb]`a]`a_a^^^^a]^Zb\]b]f^[V_]_^]]]^[____`ab_]Z_b^_``_bba\]Y]^\\`^^`[c^a]b_`_Z`\_\]^[eY][^`[YXX_`^^]^[^Z`[^^`a^^`aaa]__^^__c]^_iV^`[^^\a_`\Z^a__[]_\[^[Z__]]\^^][[_\]_`\d`\^__eY_[b]a^`]ZZ^_Y[a^\Y`\a_h^^`_^]d\`\\^^a[^[]Z\]aa_XV\_][\^__^b\_ag^bd`^ad_db_cb^]Z__aa_^e]_b`Z`a_dac_dabb]c^^bb]]a[\a^`a_cO]_e]_a_]\`a_b_a\]dce^a`_fbbaa`eZeaa^aWc_b`]c\^a^^jb_^c`a]Ze__ccee]]bacc``f]]Z[ec`a^`fa\^a\afe_aXe__f]__c`]^]af_`a^^[_ba`g[g^a^`\\_cb]X[_b\Y\f]e\lWae[]]\[^[aUfRZUmX\]a_b^[iaZ`^ZYa_jcXTY_^n_\[_Ne]s]q]`_`]cgV\Z\^Z[\\\Wb_a^\aM^X^b_\[o]kXcYUa[^Z`Xc`Y_c`ZTV\XZ_VY]jc]^Xa][d`X[]fU^apf^m^K]bZaZ`]^[\c`Y[Z]]^dY\[am[``]]Z^idbXTYYb^bZ^cT]\^^^fYc\a\\\_]d^_Vb_Y^^^cedbaa_dU\\cb^[e_YZ]dacgb^`]`_caXW^QZQ[`d```X^b\`\^afa^Z^e_^bf^\Xa^]b^a_`d`^[[]`k[aeZhY\b`Va\ba^\cbZ[^aj\`^c\bd`^Y_[UT]XV`Z_ad`U\d\\UW`\^`V_c[aZa\\b^\Z^^edaaa\`]YZ`\b`_a`X]]\Zk`_\Xa[\^[_[d__Ma\]^Y]a`\\eZYfXa`V^`a\^]^\]b_b^c^M_e^c_Y\][a]\_^faaacg`[`Yale[ca_\a\[[``_cT\[]\X^[dib``b[\Ybh`]b^a\c\WU`c`d]ha_`a]_U``]ZX`_\ab_adX]c^kc]_`d_d_b`agZ^[g_ad^^^^]b]\][]___^a]^\a_b`_`]\]_`]\\`[\_[__^`b_]^\_^^]^`^[b_d``\]_^`__a_c^aa`a`b``baaa_^e^_[bab^a\a_]b\`]eb`^c^Z\\\Zb^a\^Z`na_Zb]_`e`]`]`c^[^`WfaZ[\a^`_d``[`^]`[[]\X]]_\]`\^^]d_ba`^a`a]]a`X`ch\_]`i\e_ba]^\^\_`^Za`Y^`k`\^[^\__`]`^`_^^`]][]Yb`ca]`_``Xb^be^]_\_^\]Xc]Xd][\^W`f]`[\_abYa^^^a_a]``cb]`X_]^c_`_^\ac_^^c^co]V^`]_^__[^_`]_[Z]_afdUe`Z`_a_`\`bdX^bc_bea]^]e]fa]_V\`^f`a]h_Z`^^[eai_[]]cb__]`]c\^\_a_^g[X^_`c`\`bYd[d\\`\\_]^_]T`c[`h]fbabZ^g`_[c^\^ad_^Xbdb[_Za^Ye`b_\a^c_]ha[ae\bYc[b^b_]daa_ag[]badaX]ac^YYa[_Y_]f]__aa_^^_Y[\]\a_`b_dd^h^b\^_[_\[gaT_Yc_[`Pb`\_]c]e^^`fTbZ[g[eX_[\^Y_`b`ad^_W]bgbc[dY`[UXa\a^d^^[Yd\XXZWYYb[]Veb\a]^^\`Ub_XZ]Yf_^_a[_]\^_]Ya\YX^Xf\^[a`mY]\b^[_a^a^^^^]`dcY[d^]`e\_baXhb_]W_a]a^b```^[ahdb]_^\gfb`Y^ia^YY`]\\Y[bV]Z]_a[_^]ZX[k[^b`[\`Z`]_b\c\h[Y\XUY_b[\`]\\Z[a_ZY\``Z`\VX_\_fa][^^ZbXYX`bdTa]d[e\Z\ab^]\W^]Z^[Y_hdd[c]bf_Zb[c][\Y]]]``_\c_^U^Wc`oZZ``Z`aZa\^_\aX\_^`\VjX^aa\ecWc\Z[`]Z_`dYVa\_cl\a[bbaaa_\__Xba^_XY\]dgfbX^^n`[_Z[\cZac]b\j]\P_^^]_`\^]Z]]_X]dc[afYZ\caXZcVZ`e]a]`\]Z`\[^de]YSduZ]]aa]``cbeTW\WmiV\^[a`\`b]dXYT]`debT_a[f`bZc`V^hZT]][baco^d_X\Fhf^[^PX\]l\][aY]Zbdcad`b`dYUVZb`h^^[f^Wa_RZ\bcZ\e_^Y\[Z^d[W\^]^]\e``X[YXde\h`YXW^^]]ci_cYcdXbXZ]T^]]^e`VZg]ZcWe[g`Z[_\v]__]i^m[^[\bh^[Z^[Wc^c\\`ZYidV^VZ[aZVe[n_Y_`XafYXd]cXb]gWkU[kXXe[Wd\^[b[^\\^g`PZg[PaaW^hX_Z[_cbY^Y`fVg^Xccafb`aZ^V`Z\k[ab\`E\a]T^\w[d]Vf_d[a\n[ad^[Vg\__e_`jcac\\WW]e^_b`[ZXh]_Z]`a]a]`jc\`ba_`[cZbab]`^]d_]`\]]d_ZV^a\_\bcd[adb`Zi_a_]faa_]X\^[]`a[__]c^ab[^ab]]]\`Z][]f^]ci_X^a[Yb_^_^\`^`]_^b`]_d__][\Z]ca\]^^[bb][^\b^a^_]]aa\^^b\Y\\c^\\]\e]^__^a[[acb^^`^[\b_`^_g^\__a]a]``Z]caY[^d^^]d\b`c\W`bUX`[e]Y`__\_b_^a^]c_]_b`^a`_\^_bc\[_^]\\\_a^\a\c`b^_c___\b^]^]b[b][__cd\_k_\^Z_adaba`\f]^a`abXa`]_aUZ`b]W^^a__a\_]Y]]fd\Ydff\]^^\_c`cd`aV^a^\X[__c]`b]Xc`Y[b^Y]^Z__^[^_c\\d[]hX\^dh\Z`e`Y``hfZ[]`b`b^[\]ab]]_c_\_Zbb_e`XY`^\_gcb_`_]^\a^`ab]]b^]\\__[[cXbb^`\[b^c\fbba_f\a_^cQm^_\d`]\\_`fhc`bYbca[]_da\Yg_^]jcYZc_\a`g^]^a]_`b`\\c]`[`\_]]]c^\aac]\\[]_Zaf`b[c\_aa[[[\_]a]]_\``b\^d^[bcX]W^`]YZZ\^]a``^XZZa_\`UaZc[beYb_]bX_`bZ]]e`e\]_][]`f^_d]][]\aWY_`[S[d_b^Zaq[`]__cb\]^_T\`]Z[ae_ba\\_\^caV]ba_\][\eYa]i]]_ba]`ZbZ\``f[[Z^Z^[]^^`]]gX`W^c\Vb]__g\\_XZYd]``ca\VOabZc[_^`ZY\bXb`[^]^\bdab`X^ZZbb`Y`UZ_gZZc`XU^_ZY][OcTV[c``Z\WZ[\Y[YZ]c][_\[Zc`]_\YbWYZ]\]]b\`^]\]Z\W[__VVa`_Y^ZY]SQ][]cf[_\e_]_Z_\\`W_dXT]V\V]`dg^\Z_[XecY^aZ^X`Za[]k]_Y]Za[b]Z[\U[cZ^[_]`_Z_a^`d`b`___^^Y\d^ad[\`^_X^Y``_WZ]_[Z^`]^e`][[_aa_]^Z_]Z`Y`_a_]\Z__]^b^c^^cY`ca^]^_c]`_be^e_\a\bY\`]abZ_[Y__c_Y_^^e^\Vc]b\d`^]dc^\Xa`^_[^Y^^_^]\^^`b^\[_a^c^[d\U[Ya\^_\`^Yd\f\]^a\][]aad^^e\`_`]_^]b^b\[\ac]c\[ebe___]ee`ci`Y^`[]]Z_b]_d`[]_eb`a`_c__h``a_bYab`e[V\\\`X^jh^]`\`b`a^c``\_e\b_[a_aXb[ffZa___^`b[`_`\`aebZ[a][\[`a__cU_V`e\_[^b`_[_c[^a^aa``_e`[\\\\_`^jca_b[``fi`da_]]__^][^a]_^`\][]_`a`U\_`V_\Z[Y`]\`XZ]^^Za_[\]Zbb_\b[b_[\_ab`b][_[^_cc_^[_Y_``ZZ^]_]`]bb\[__]a`````bdh_`a\`\`Y]_`Y\b_X^`__]ae`\aa_aTb[ab\\_\`\X[a]^a^Z_`b_a``^a_a_V^aa_`[a`]^]d`a]]a_`b_`^_Wc]b^b^b[```[^^[_e^_`S[X^_]`\^f[a`f\^\[]]][_^][ab^ad`]_eb`Z`c^[]^\_\gX[`Z^_a]\ba]ac_Y^][\\_`]_\]^ZY^ab^Ya`\]aU`[^[Zb^a`aUY]Y\\ad]ef\fX]_][cb[]a\\\_d^^e^_e`b[_X`a\a^][R\Za`^e^``^Z_\[Y_[^\Xa^ZaZb]ZT\[Y]]`][^i]^_Y^ZbcaYbZd_`[c\[f_be^cg`\`\eZb]`\YX]_`_acVb[\b\W]`_]Y^Z_e]``\aj_]\c`]\^i^^^^_afa_b\h]e[]c^`^hZ^^`[]\S]`\_\Y^c]c^b]YW^X[`e^_^aabh_[Y\b[Vcca\X]ba``rY^b]``]]_\^]YW^Y[\\_^^Za_[^]___ad_`dgd]d``^^[a^^\\]^^``^`c[bea^`^\`^_c_\`^a]\`[cc^_]^b`d[]a`]V]^]\d\_d]^`]^`a_`][Va]`a[c^a`Z_a_^Za_X^^^c__Ze_^b_`_cee_aa`]]]_`]^\`\]`W[[[_]__`bb\e^^aadce_]\`_[^`]`_\bdd[]a`_b\`]`[aZ`[^]`^b\d`bX[^\cb]c^^^d^c^]^b`^eb\\ce]^``]`ba_\e[a]Z[^Z]^[b][__c\^a^cg__fc_`^cW_]ba]\]bT`ae_^d]`adh`Z^a_`\[[f`Y]e]]`_W_e]a\_dg[b]i\V]``\_a`^ca^b`\_`a`\Z_kf]^^[gad^_aa]]\c[lZ^ac[_Z]_Sdb\[a^`[a]^]]^[[_ggbc]_]\a^[`]Y^[Z`\\e\_bcYZ_bfbd``_abaS^[`\ad`g_Zac_[_d[\aY_]`bV\Y`YW^fh\`fZ^[[\`aebYHd`a`\g^_c\ZdS\_\]]_hc^]dccbc`_`d`dacc`fZP^fY^^[b_e`V_hc^a^aWhYZe_e\VX]c\^ca[_`a]^]^r]a`\\cfZeda``k\b`W_]\]bX`]o]\aXQY_a``^^^VWh_]d^]a``c[]d_`gZ`Z\^]adf__a^^b^b`]e[_a^d^``ca^\[_d]aaa]^_`[\[dX\acYa`_``_[bb^_]eda`c\d^_^\aYc[h]a`]]```\[^_^a`e^`]``]a```a[_`bWa\`]cf]Z`^b^aaZ_a^a[\Z_]]``b[`aYa`]^_aX\_\_^^]Xa`_]a`ea]Y[e`a[^`aZ]]^Zb_``b`Z_`d]a^]]ec^]e^a`\YY``_bb`a[^]\fce\iXXZZ``^_^gY[oa^]eZ_V[Y\caY\^^]a[]`ZYZe]_b[Y[YcW\Za^\Y^^]ZbX`\`b`V_\^``bZec^Wc\acb[Z^g`\]][^\_[a^ZbaYbi`_cc``eb]X]^]^dc[b\Z^]^[__[geeg\a\\c]_c][[`]b__[\]`d]_`YW]]v[ZYY`e_\_Y_Z_[\c`ca[e``ag`\c__\_b_XeYd`aZ\e_^a_m_eXa]Y^W^bj_`e_b\ae[]a][_\m]a[[_V^a^fc[_g[Uh_\]Z\^`]\c]Z[XZT\`]\Y]Xa[d`X`[`o]]a\]d`W`Z\\Z`^a_Y]^Yk]_a]]`\\^Y]XhZ^_^dabda^T`g\d\][Zb`^]\][]c``[T^^_e^cb`^ce[\]^^e`^]\`_`\d\a^a^Za_U`^Wb\a]^`Y`c[Z`\[_[_^^]\``_]c^^__Z^\a_bZ_^Z^\^__]`ad\ba[\`ba___]cZb_\e^_^\^afXa`ecV\`\^aY_Y]dac[ef`\fZ`\[_eZ_^`_]caa`__aZ\[c_`_c^]]]_X^_]dZ]^a[^]_a]_^baa[Y_^```\`^c\a^^]`^a`c_`]`]^_]\a]c^`\^[`a_^b]^a`\^__]b_\\_aea`a]^^]]a\aZ`a^cb^ac^__^`]d^[c]]b\`_b_]a_^^^aYb`\_db_ab\[Zb\^ad]`a]a[`^[d_^_^]]\Y`\_^^_ae_b^_^a]ba_^daabY^]\__]]^_b\_Z\^\^a`d^Xb_]d_]_c\^```[abc\]a\`]`[_aicZ`]ad`_b__`Z`[a]_c_[`_`]Z]`[`[_aa\^_caeb]]ab`\_^be]a\a^]]bba]cab]]a^c]_[c_e[^`^^a[\d\`a[\\^Ya_f_\]Z`]b_aZa_`Z]^\Zd_`bc`][ca]__bacaab`[^]b]\ba`][_Z_^cb[_]\_c\]^`a`id\`__`]ca\bY``c_a[d\d`]Yajb_`b__]a`[c`i^`\^ac^_`[]_]\b]^\eZcb``[W\^\^a`]]`^\]]c^][]`b]`b`f\`^Z_\``d``Y]`d\`\]_`__Y___^\\]\`\`b`[^__]\^c]g``\U\__^cb_ab\__\b\da^^b]b``dZ]_`\^__\__]a_d]\Za_c_`f`_^b`__c``^]ba__]`\_a_Z^_]_\][_b_]cb]bb^`b[bb`cca\\_^_^_^\]`Y_[b`^\b[\]__`b]c[_]\g]^``_^_ca_\_`a\_c^_``d^\\ba_\`c^]`_[b^^b[__^Xaa[^][]^f\b`c^]`^][b_[_^_`a]^`c`bc_^^\`\_a_[c]\_\cZd`^a]^cm]^`[[^]\ea]a]_a`d]]\a`_aX^bT][]`bZX]]^_`P\c_`Z``]b\Zd`]f[`[^`^b\[Z[]^ZW__^]`\`]a]V`\\^ds]U]b_^d\[Z]\]Y^beZ[W^]^_[b]a]V`b]_]c^_]][\acUaZ`a^ajZa_\\`^b]f\i`a][_^`]e\]`_]]]Wd_a^_`]^X``][Xc`__^\`_^]^_\_\`Z\`dY[a]^_YY_]c[_a]ab`b]_^\`_\\_]\\ac]b`a]^\][]`^^a]\\_[Y__b^[d]^\_]^\[aeb`d\e_cda]^[_^\\a\_^]Y^b`g^`^\^_^`\][\VaW\Z\[]]^Ze^]\aa]\_]a[[\_]]^_\Zbd[cb`^^^`\`b^^_`____]`^ZV]`_``_]ca^[c^a^^_`b_^^bbb]c\b^_a]_``_b_Z]h\\f\`]\c_bZa``Y]Zaa\`^]]`_``^`^`^`_\[b_`Z^d\a[\]a]a[aa[[^_`]]a^`b^_^c]^]]`^]_]^b\a]g]Y_`\_^^_^`__`a^b\]aa\``^Yaa\``]_`bX`^^c[b]]d`[]Zd`[aa[]c]f_ZaaaXaada`b`[b^a]a]^b^]_a__^[a\f^a_a\^`Z]\^^Y_^dZ^_]^]aWb^]\]a]``a]_]b_\c^\`[_Z_\_\g_]`^_gaad\_\Y`\_^dafh```_^`\``_[_e\d__]`a`^`dT^`[\^^_`]e^]b`]_``__[c_`c\fY[^^_a]^g][]f\\\\_a`[]^]^X]_^_c__\_^^_][^^b`_`b\_[_^^]_]b]_aaaaZ]b`Ue_Ze^[c\YZY^Za_a__a\b]\c`_`][^]`ga_\baY]`_^c_[`[bYZbhZZ^_]i]Y`_]i__^c\__Z\]b^_^bc`]^`ZldfZ^chWYa_`XYe]\b__^g\[\bc]_fgca_Xd\`g_]\^a^[W[_]^^Vdba^c][\l^\b[gd][a][\]^a\[_Z^^[aS[XbaZ`[]]\`\`^Zh__`_a`Xfe_^_aa^a^\]`^cbb`^`Wde\b_^Zf^[]dccWZUV`f^\]ce_gc]_]W[j\]]aWaab]^_c___]b_^[W]^f`_VY_X^\bbZ_QaSa^[]g`\][`b_\U_ZeZ^bhX[cZa^]h]`j^a`ad_`d`fce]aeaZ^b]c`^`]dZa[b][^\f^^Y_b`\\__c`bYe`[d[^\a\]c]ac]]`[\b]]\\^`b\_`\_^Y_ea_`a]a`\`a^Zab^`V^d[g^][_a[__d`^YY]^Y^]^Zf]]][[\Z`c_]__^`a^aa^``__c]]`facYY_a``]_`__e_]``^]^lZbV\dZZ\f]]\bdba_[`___]_]a_``\``\_\`_b`\c`b`__egY^bhb```]`b]_a]`]f\g[Z\a[^bc]_]a^d[T_^afc][^f`Zc^Z^cac_^f\b`\a__Zb]^]cfadZ]]]a^g\YcXaaa^b_Z[[e_c_ahY\^]b_\a`__]_`b]\Y]c___c_abbXcY^b[\`_Zf_[^\ZZf^_[\gU^`b^^]`a]_^fcca_^b]b`abc]^c]`a``^^cc]_W^_Y\a]]]daeb`]XeY]\_`d\]]h]Z_^_`^^\]\_^]`]^`d`f^b^^^aW_[__[\^a^X\ac_]`]c\^]a]]_`_dZ`U\_X\_`aYf`^X]_\`^[^^]`[\]a]`a__`a]^`[`_eTad``gafba]c^^_W]c\][`]\^^]\`_Zca[\a`bY]]Y^X]cX`^f\_]\`W`a^_]_cZg[d_^T^ch`^a^]f_]^a^\a^`Zb]]_`_\\_]c^_]\\`]`^[\^_`]a\Z`^]b^`^a]]^`^_adbc_]\]]`^a]]__\__b[`^]_^_`_^__^_``b`^``^Z`b^_^_[`\__`]Y^`ba`^_X`\^_`c^a[^\`_`_`_c`d^_``a_]^_[b`_a_a\_b[^c]`^``a]_]^`__^c_b^^`_]]`a\__`b]]____\_^]_`[_ch\eZ^[^`]^]c\a\_^_c^^a[a]\]^b[][\_af_^a\\_^`^Z`[b_b``]`a`aVZ^[\aYd]\Z_a`_^\^[^bebZ__\^hba`g]]_f]_aa_f[__bafZ]^h\jb[g`da_Z[a\]c]`_g`f]^_`_]g_]^aU^e[Zb^_]^gZ_ZZa`_]_W`^_fdaa`R_^_^]Yb^_\`^i_`^]XZ^`h`]]\d^^\]a`\^_c\`^dZ[^Y`ujY``o`\\ad_\\^[\\^de_Ugf`_]_ZhgabV\__`^_ab[d_`a]S`\X\]]^^dW^\]`\`\q[]]i`[^^`^aYe^]Vc^`Ub\`\ad[daYY[^`_h_\e`]c]`a]ga]ZYga]a\_^\`f`[a`_\\]d_T^_gd^U^[Z`a``\c^_^_^^jc[[]b]]a^[b`_`\]\\Yc_ZZ^cYX_`Z_\[ae`Z_^Z]^\Y_e^c[^Y\]]d__d_Ma[_[_^b_\^e^]`bY]\_]a\^\^][\[\`^\^^_[_]_Y`\ad\_^_]`aZ]]\]\]\Za\]\]\bdaV]ec_]`^c^\__ce]b_[`\^\f`[Z^\\\`[[d_W[^\_af\aY_^_a``_`__]``e\__`j^]_b]aa`^XY\[\b[^[_[]\^`[_d_^_``^e`]`\b]_V`_\]aa^^\X`ba]bb^[_[g]]bb\^__][^`]\\ac^__b`b`aX_b`\^`b^Y`]^Y`bd^^]`]\a]_\c^^][\b]]d`aX\^Y^_^\_^^`^^[`^aa^[`]deYc_[]b]da^\^c[`^`cXcc`ac^d`^_\`_a[]^`]\f^_`b__a^^c`b^^\bbded^abaZZ^]b`]__d^]^\_]aY`aa`a\b^f^[\\`d]^`_^```_[f_`_dZb`_d]^b_[^a_^[_a\]ac^_`[b\^d[aaX`]\`]`aa\`h^^a[`aa_VW\__b^^]`]ca^Z`]^dV`f``]_h_][`^`c^\aa]V\^a`b\b_]^^_`\ZZcad`[\d]__c\Z\Z[_^`__`\_[\]Za`[d]]c[aa`\b\^_\a^`__]^a][_a]]^_b]a]]\_c`\]_fa__\`[[^`a`_`^\[]_ZXc^]a[^]`d_b]X`\ak^Y]]`[^`^_`\_^Z_cabe\\`]\^]aXb[]_^Z\``^b]b_^\\Z\c][Yb\ba^_^^]\f\d][ja^c`__]_]\e^aa_\`[``[gecbf]dgZ[``[_d_a][]g\^a\Z\Zb_\_\caY\``^`\]bb\bZ[\[_`^\Xec_]eY]YZ]b]^b]`^ZZY^_`gc\_d\\g[a_Ze\^][`b`YY][aY`a^c^a]_^c\\^e`^]`_cb`U_ZZd]]c``\`[\`]]a\bZVT\]`b\b\b^Zb`f_^^eYf_e__[`_f]`a^_Z__b[eYZ]^b__`[\_^]_``_ba\\\a``^`[_\b`c^h_]]a]adac]d^`_^]^``b`___a^_\a\f^eacc`]\\_^``d\]b]a]]`\^[_a^__aa][]`a`]`^bec`^b]`\`^__b_cb]c`_\]^d`_c\^^]_]\d^[]^`be\^a`kX_]`aa`^d_^\c_a``^]^^ea[a^_\^``]]a^^\__``^\_\``Za_]\[Y`[^^``__\Za^b`\]]a\^a^f]^`]aae]\X^]\]]\]b[`ca`[a\^\a]e\_`^\_\bX`^]bYf`_`_f_`^`e^^c]]]``[]`e[^a_`^^_[e^``X_[]__``_\ib`\\]_\]a^^Ya^Z__^\^a[Z_\b`[\aZ^a[\]`_ae^^_^]b\[a^icd\[__gd_``\^`[`c^`[a_]]ba^`^\a__``]i]b\__]`\`a_a\_`X_\^__a^`_^^_^a```^_]`_^]_a___]``^]a\]_`b`a^`]\b]^a]^^`_a__^^\`a^__b`^`b]\]^^]_`_ba_^^_aaa^]\]ga]`_^__^_^_]`\d_Ybd_f__^aY^a]]_d_`_^_^a\^bc^_b_`^]]ab^_^]__b`f\hX]_`]\_`\]Y]PZd`[bbd`ae_ZZj\\`_`_NZWbbXZb`ZZ_`\gbaZ^]`[_[]]b_``bZ`d`]_U\_f^]`d_bm[^Z`\]\\^_\_Z]\``ZZq^``]\[V_bY__`Z^^gbi`]]UdV[chb]]`e^YVb]`]\Z_a^e^]]bW_^jdi_]abacaf]dVaeg^`a_a]_]a_]a^[`_^[\[]Zm[Yb^cgW`a_g[^^bbZdYb\^i\\^^[]^]T[^j^^Q]]\^Y_[_^\]a`_ia_]b]a^]\^ba_j^V^cc^^^a`\aea\\_\\[b]\^]]``a[Wac[]W]]Zab_b^]^\`^]e_\aY[^][d_^][^b[YbY]WV`g^e\]c]]e`^\\^[_\]Vc\b^Z^\d]Z_ea^^`^Wc[^]\_^\c^h`Z[_bbs]]c^k]V]ajXT_[b]Vb^aYbd_Z^a\fdYX[T^\[afjaYZ^[`Z`r\c`_L]``\^Y`[a[^`YZb_[U\chXXab^[[^[\`^YW`a`w[]_a`b`_Za`Z[Ya\a[_^YgVZWbe^ZUd`fce\\bba\[fVrga_dXb^]]Y^_[fY_ab_Y```XZ]w[[^]_d[Z\`\_``\]]`[ac^^a^ag]Z_b]^gZ\\ZVa[ZYZXaV^]````]^_^aZ^`a_]aZZY\^baea\aY^ZZ`^^a[aVbZ]cZ^b_T^^XaYg^`\W_fbbaaZ`^`Z^_ZZ[a[_Zc]^]_caU]]_`]XY]aYZfY_dcf^X`a[Zf_a`^`cZX_Yc[`_`YcX[^^]`^Z_]^_Zg_]Q^]\^^b_cX`\`Za`W`X`daYa^c[_cch_`_a]h^^\_b__\d]_^`]\\\_c\aX_a[a`]a_baZ^X[\\i_]b_\]d\j`Y_[`_\^d__[_`c_dc]_]]YV`]_\`\a_`\gia`^cj_]_]]]_[`[hb]bfZaX_]acbda]ead]b_]bZ^aa^`cbhacZ^[`\fc]Z]e^ab^ff[Yabk_db^___]\```]]_ZZaU[at]^iX\`[_\[ci_a``X`caXUbfglca`U^fa\Zb_]f_]e`X\Zbcd]Z]\dW_YlS`ec`\j_a_Vd]aZ]igI`cgcaeSda``adb~dY`_hj^ea][Yb[i]bb_Y[_[a`_dgac]Z^b[d`_g\aeej\c]dQfiWp_^X[defj]]^_a^[eX\TYV`aagkd\cXXb[b^`^]k[`]]bba_\e^_^cZ\^a]g[]]_^]^b]_b_WY[]^]]]__^d^cZ[`[[]a_]]_a_`a[\^Yb`e`Y]^Z]]h``b]Z]`Z`\Y[\`a]c]`ccZ_Vcc`[]\\Yh`\_^Z]^U_c_\e^d[b\YX^_b]Y^_a\_\W_X[W\\^acf]^_^\\^ja_W[_\]\[Y\ZXbZi^_V^d_]]_Y^\`]]b`b_\`dbZcc^]`^a_a^a\Zd`c`bc_b[cZa\b^_Z_^^[`ba]_a\ea_Y\`^^^]\\]bb]\]Z`]\^ba\b][[`^_e`[aaa^`_^^e\_\\][`^_`]aXb_a_^_^`\`]c]`ZZ\]ca_^f^`_]ac`f^]]^\\]`\`^\beb^b^_Y]i^c\^^]Z]`^b\_a`^^f[b^^^Z`a^_Z^Zbc__\``b_b^_da`bcb\`X`\\\Y_c[d^\^^_YZ_]\Y_a]f`bW\a``]e`[Y]]jW]bcc[Zcebah`[Wag\[f]d_Y[^hb\\ba_ab]]d]V`^^a`bZ_[ea]cf__Z_[_W[`ia\ZaYa^h]ZX_b`\g\ca_]Z[c_[X^]UZ\a^bY]]Yj\a^^c]abc]qf]^\b`fb^^W_]]]^]i`][_Zc`aZbc[d`a\^^]^c_^_b\]c^^^X^^^^ee]cZYZdb^aR`_`][^dV`caj_^V]c``\b]`\X[[aeYYaab_`]acaV`a]\`__ac^abc__^\d``\g]bZe_\^`c_b\c`a][cYa\d]``_dXc[```[\[V]bad\]^a`jQ`_[a`]^g[b\c[Za___^^`[V`]`_a^c[cZ]ab_d]``a\^_`[]ZTXe^[Y^Z^^]\[\\\[_a[]]aeY\\_a[_`]`a]`X]Yd_[\XaZ[`bY^_\[\ed]]`b\f^]]_^X^\^`a\c_[_bX]][[]^\\^\^^\`YaZ_`]_V`]^bc^]_[a]`eZZ]f\_XZUa__[_^\]^g[\`_[[\\a`Y\_`]^[[Y^a^_ddbX]_^[\[`aVY_X]\[c^^[c_]]]c^]YZYZ]]b^]VdX^\aVV_[X^`^]\__gXY_]\[[aY\`_^Z\\Y_\\S\Y^\^\d`\`[`]]_Z^ca^][`_ba`hb\[bX_Z][^\Yc[]V_[^`\c__ZZ\[^[b_f_Y[^_a``[\T]_c_\]Y\Z]^X]a^baZ^^]\g`a]aid\_ZZY^dY\^bdb`]^c^\]j^`Y`cZ]X[]]_^d^\^b]^_`]Z]b\ke[Zb_]cXb]Z\]`]`^d\eZ\dq^_b\XZYacXbf^_]^aO[_[^Ua]da`Z^\cc_dde\_\ac]\^^b\\[_\^Y`[g_ba^`U`\Za[_\`[]Zh\[bZ\[[__`ad\[\^a``Y`W]`^[_W[\el\Z\^b\]b`]^`_accZS]\a\eYaZd]\X_T__`^bV]dU_]^`\d_Z^`b\Qc_cb\X^[^Zc_`abdTY^bYZ[]_]\[_^Y[]a^]^]\`]^a]^`\\^cl```^[]Z^b^[`a_[cZ\c]_^hb^\`\b\^`bcae[\abgT_]^U]]`c_[]`bf[d^abcY]`bZ\W_cY]]_Y]``[^_Y_[]ZV__Z_a[^^]^cba_[[[dZV`Va_cpa]`b\_^^]cce[\Wc^VY_cb\\^f\[a`_U]Z`Y^ab]_]YbZ][_b]a[a^[ca]\fZ`[^^^O_dc^Y\__i_\[Y]``_\ed`[ZYaab_b_\ZZhe^ZZbb__fZ]a`aYcX]c`\`_^]]\d_^ZjZ]a]_]Z\`][h]cVa\]\]`ba\_]ea^\^]Y^c[__^\bYeZa_[[\a\aXd]\Z^`]a[`b`_ZWaZc^[`Y`\aa_\c\\[^W\_a[\bZ\^b_[ZZdd[^b^[`]f_\\^b]\^\]``[`[`]]^\b]]_]\YZVYZZ_Z]_c]a\d\_\_^^[^a`a[^[]___eYcb^]aa\\`_f^a^__^^W\]][Z_bb_Z]a\_`X\_^\`_e[]X___]`cee\]]]^`a^bc_cY[\_^_b\]\`]Z^_\Y[Y[g_a[\\Yab_]a[\c\_d[bZ]b`c`b___ZX__bbk]]hh\_Y[b_[^]eZW^c^[Y`c[_]Z^[`[[][`_ZI\[\X[e]^[]Wc[^^]^Xad[WRZdX]d`^ac_`ZYYf`_]^c_g_]_]a\ae[\^be`^`bee]ae\adae]Xg\`dg\YbhhabYZ\^\b]cch[]]\Xb^V]_cd\_``]g^Z\U`dk`Ygd]a_eZcWY`]Vr_a]X]d_Z`][]^`cUa]]a]\\^`\`_W[ZqadX^\ZWSl\\_^X[\^W^c`Zc``YX`\Z\ggdaYb]\\^^ZZWc`f`Z\W]fa[a\d_]Z_agN^Y]^^b^Ueac^^iXfaba`[ed`^hfW][\_XXZaZZZ\\Zc]_fZ\s_bW^_h]_^`\[_^`^_ZX\^]_W^Vi^V]`c[___`fZ\ZZ`__Ue\_UZ]`Z_c[^[]]a^X_^V_b`]`^f]a`_`Y`aW]ZZ^a]]b`aa\YaW^[NaY_b`^_]]a_P]c]]a[X`bJ^W`^a`\]]^^[bbZ``c]dab`_^b]CZ`\_`dbb[`WcY[X]bZ]^^^\``a][XVaYZ]^`Y]a_`_]ab]Z_[d\__a]_ZbWdZ`fSa[^_[a^[^^Y`o`]^`^cbX[X`_X^``^ab]Zb\_Z`^\\aZ[]aZ_dV_]XZ^da[^[b_\\]b`[`a[bZa^Y\b\]_]_b`a]e`d[]\]c]i_[]n^e]`c[`[`ZZa`]_\\j_b`]\cbZb\a]aae_]Y_ab^_`Z_`\[\fe][a`]]_`[c[^_Y\a_ac]d\]f]c]e__`f_[`]XX]\l_h]c^X[\cb[cac]\b_][b_^_a]`\T]^^S\c\]]^]`]cc]`_a]^_Z`^`\b_e`fZacc`K_]be]]^Zk]^b\dc\Va\e]ada`^_`]M3``abaO^YZ]b_[Yd_[^]_W_]_b\^a_c``]__`a\a^V[a`]b^`[^^]^^h`a[cb]e^\d]`_\X_U\beac`^^[_`_`\_X]`\`^a]\`\__\Z_^acb^`]\`afc\__^eif^[bZ^^[SbXhgb]m]_k]l[m\[\cb_a`bhc_c`Za`h[^bVeipXe^bafeiZq\h`bbc`Tedce_[Xa\`^_h\f\e[_Wgc_`WdWc`]cc_\Sn]bk\[eQl``tmZSgafcbXb_\_qbbbWdVUjZ]f\Zz^^`P]]^Tbdqd]x[a:gYb\keb]_^OdX\m^eq]]]b_\[V\_bb`Xai`^g[`[`a]_n`Y^W\dfZ_ZUZ`]Z_aeR\bXZ[_[^_f]fdfc[Z]chYf]bdX^^[ZY^a_^_[_dWav^b_^b]^[cZ[]_^V__fXZjVWfa[_UZdbfrtmV^``b]cdnkaUeaYbcidgb`Vk``b]V^cd_\]eYSdXX_^qrab_cdOPZ_ZYXc_SYgei]]W\[]a^[b_Y^]_a\^T]]aY^[\]d_``\a^Z]`XZ`_[^Z\[]bd`^^^Z_h]`a\^Yd`^b]h\_]^_`]`_]X`]caZ`bf[a^\[`\b^`\`^^```_a_^\ab\g]\Xc]`[[Z[[\\[_b\`]ZT]c_]_[\_a\[]`^_fa\b]\\i`_bf[e]`[b[`[\_`][]`_i`_a^`a`[Wa`^]`[]\fgac]^a\^Z\^]\^[c^\]`\`_\_daZ^X_^a_a__^X\Z_`a^\]]Z[_^^_[\^[]^^\_\]\[[_`\_\\c`^_]`^^__c^^d^[`^]\^[_^]\__[^`_ZZ^_[e_^^\_]bb^_^`[_abaWZd_^\\`_\^]][_^\X\[c`c`^a_`X^^^__\]^^_^^j_`^\\]`a_]_V_^^ZX^``^b`_^_\f`]`]Y`\\\^``^ad[g__\]`[`\Xa`a``g^[b\e\`be_^_c^ab`dd`c[^Z`]^[Y`_\Z\\```_``_``^b]^ba^bb\`e_c`d^\a^a^`aa]__]^_^[]baaac_]_\__bYcZ]]\]\a]^^a_^a^b_a^b\a`]^\cae]a_\_[\^`_b^^c_c_`]\\^`\cba^\^\^Z\]Z]eaY\d[\hY\Y`c]_d]b[V]_\`b^]b]`]d_h]^_a_a^_]`a]ZY]ZY[e][\\T_`[[b^b^eZ`dV_]^\c^\]][a\Z^_^^_^a^\`fbZZV^^Y]^]]]^_Zi\\^_^_``_a]`\ac^^\^a]^\\g`Za]``Y_a`_]Zb^\Z^^YW`]c^]^ZbV]`_^\]\\^Z`[^`^[_]b\ZZZYWa^X\be`][aVXf_a]_c__b\W\b_``\_bY`^be`^Z[`YZV^^^aUa]]ZQ_aYYZ][a^a\`[`Z\ca\[]^b\de`_eY]Z]X\`aZ]_[[[ba_[]a][^cV^_\\d]]`\[[[ba\Y`]`^fY\[\WXad[Z]Y[]__```cU___Xada^]`a`[a[eT_[[]]_\^ha`a]\Z[Z`^^`\\c_^^ZWY\\]bX_[__]\b]c\___b][b_]c_`VbVa]_f`^_[_f]hcY^_`\f\^]]\_`a`]``]a[h[^da^^b^^h[^_[^^^^[[]Zg]]bl`\bh_^a^[[Y\_^\\b_]]^acWeeYS[g`^_[b[[`_`[Y^[a^`\a]i[]`f[[aW]fgbc\^[^[Z^aqb]\]_a`\a^a]`][b\_]_]^]__`a[__^]`^\]]^\_`^_c^[`__^___]`]a_]_`a^`__^___d^_^c`^]^_e_b]a^[^\]^^b^^Ya_]\\^]`b``^_da^ae^\]``\b\^b^a_^`^^^_`\]^b[\b`Xc__Y`bb_\]^\^[\`a__c_V\^`_]^\aa^\_]^^[`^Zc^f[d^^[]a^^b]\^]]ZZa^^^^b^\`]_\b]a``]`]^_^^_[^^^^`]]_\d``e^b^W\^\]Y]c^aX]]ZeYaae]`gaY`f`ag[aZd\b^d_\^`\c_`[]d^a___^Z[b^`[]ZZgb`]_^d]]e\\`]`ZY^[\Z_acd_ba]V`ba^]^[]_Zb\^b\^bba[\`b^_\_c_]`[[[\b``_]`[``W```]`^`_Za]]]_^e`Z\]^_`]gd_b\b]`]`c^a_a\efaaa_^``^b`\_dc`\^f`\bd`a[_ecc_\]`i[a]]a]\Z^e^^]`Zab]\[b__]]c]X]\_db`cc_\a^ff]a`ca]b`_]c\_Z^[[^`b\_`ab\]a\cda_]_[agbb]da\ce]\`cd^`^`\Ydd]_]]_eZ^a]a_`[g`baXab`]^]__aca`]_d\\a_^^d^_`d_^_``]``^]a`\]a[`Z]\]Z]_]^_[^Z^__g\[^]\]`_^\ac][_\a_]c^__eY`[^``a\^^bf]\_^Yb[_`Zc^^Y\^__^\a\\]ca[^W_][`bZa_`[Z`[acZa^`]\^^[e]a[[b_b`^dSa\dc`_c[]ba[]_^b\\db^d\a\`Z_dZ_^\\^\`\`\Y]]_Z]][Yabbbe__^Zbg^aa\`g]ca`\W_Z^_d^`^^^l^l`_`^^aYc]bacc`_Ya]`_]`e]bZ^a\]\ac_[\ac_`_b`b]Z\U^^`c\\`b^_\a`acdaT\_^]X\[`a`cY\a[XV[a^][[_Z[^``^^\__a`X_[bX]^be[c^__a_^[c^a``g`U]_]`Yb^a__Z_`\_aY^X_]]ga\X^`ba^c\\_a`[Za[a^_bXZf\^Y^\\]\dZaa]]ab`Z^_[Y[^a^b^_b`]^b[\_[_^^[_[\]_c^`_``]`_^W``b`[cc]b^][[`\ed]^^]VdZ[_\bZZ`_\a`^[c\^b_]Ybf\W`\Z\\YW`b]Vd_b]_``a__Z`_Yc_^\Y``^^]\_W`]`_^d\_[ad`f]\]]`\``ec[``X__a]X[ca]\b][Z[^ec`\_ab]\ZW]k_\b]Zbgf_b[O^\_ho^Z^Y``_`bj^a^V\\^__U[d\`Y[^ga\ZaZa^_a\R_^di]ZcXbecVc[b\]bY^[_[YXaaW\ffVYc_UTZbWaXcU]__a[UZ\^XX]Zbd]Zd[_dYV]Xf_c^]da[\_^^eX`[ga\a][Zce\_^]c_^YW_Z^^`[^a^]^Z_\Y[a^aa]\[`[a`gd[`h_`\]]^__]`b_^b\a\X\^_]c]ga^Z`[a]_]\_\`b__^_\[_e`]_]^^`[b^Y[^`c__ZaXcd_[bY`_]`ha^^^Y^]]^^\[[`][\b\dZ`Z\`\ag^a]\_\^]a\Y^``]^ZZ`[`[f\\^^]a[^c\`^ej^`Xc[a`_a\a\_^_^_^__R`]_aeedc`[lfcXbeX_^]`cV]dgT]]\a]\zZ^```ad^bfZ]^ZYahW^b_]aa[e^\`]g`\][Zf[f^[c\Z``^_]d[a]c_Xb_X`bYa``lZ`Kcdb]e`cdS]ab\]V]\az[Y^bbb\^\\\Sbaf][dg^a^]e\]^\kia[[dW]]ZXa[`a]_iV^V`[c`Wg[^a\^^]_`[_]`__]a_[_```_b`___``hea\b[_`]^Z]__`a]]a]]a^^^_`^\_Yb`\aa_`cc^d\b^`a`^\`^ca]^fda\_bc^\`c^[]_a]d_``\d^^\_b]_[`b]b[_````_^a\^_[^b`]`X_]^__b^_Y]^__```^c`]_b^]\`__`^`_``____\^```]gZ^_^`]_`][^_^q__^Xd[a`]_c^_^]`_f^e[^]`\]][d^c`aTab\^]Zh\lYfc^Z]Zbd_d]]]_bb]Vaa\]Wa^]`a_]ed`b_a^aba]^Yb^`cTfa`c`_aee^]^bf\]]i]cb`a[^m[]]aZda\_`Xfd[b^aaa[bb]`_[a[Yb^Y_ZXa\Z_W_[_\a[^d^_`c]aeb`\^a[`[`Ydcc^a\b]\\^aXa_XKbaK[W_`[cb\a[\Zed\`]\c`YSR^``c`[[Zb_d^\ZV_Pa[ZdbX]_ed\``c^l]_]c`]\\`iWcah^W`vaQ^\\]aY_Z^`dY?__k[`O^^WT`baaVecW`ddZZ_[^jAai^b[Xcie`V^]PVXeTTYh[\jV^fbf_ZZf]aY[`[^YadYdba`XZ_ie`_iY[U^[Y]XhS__e^X[\aY[Z_]c\^b_^_^ee[dY_]\X[\][]Z]^Uc]^d`k^^\Z\\`U]c_\^a]_[ZY`]\YaXbY_\Z^a[afd\[^`\_[\``ZYXbY[SacV[^_eXd[_`Z_^a_\Z\`b^a\__^XWf[d\e^^`\_^[Zd`[Z]^^b]e_Xj_aXa^^a`^aZ_cZ]_^e\_^Z\]a]YY\aY^b\\^_^b]_```aa_]Z`\`_`YdY^``b^]\f^aadZ^a\h^f`^a`_`eW[`Y_^`Wa```^d]_^]c[_]`^]bc_]f\_]]`^WX[\^][Z^^a^cb]bg^b]]_^]c^c^]d_][]`a\^e`_]^\_W\]_]_\dc^_d]Z\^d\][^Y[[MeZ^c`_a`XcZZc\^\\a^_]d`dX`\b_^\cfZag^_^^`_^\\^_^^Z\`^_W__\ac^]\Y`_Z^bb^``d^`a]_[_]g_\Va]^Z\bci^\[_b^bc[\bY^]bhbY^\g^V`fc]baf^Wb[__ec[Z`^^]``^__eb^`__[V]\_\Zi]^c][\``\ceb`dW\ae]]^]a]^bb\h_]d^_]_[f\]b]^\]_\^a`]^_\Z]____^\_^`]d^\a`\Y__b^_]\Z__a]Z^b^]]b^^]]a_Z`X_a_\e`\\]_a`b[aa_^c\`_]^Y^^a^_^]^\b\]]b_^\^[\]\]_`f[\^ad`b_Y]^[^eZea_b\a^]]^_^Z_X^_^][\d__\\c^[]b]e^Z]Zd`fh_V`b_]X^\^]aZd`a][`_b\bY`s\[\f_\^Zf]^[bZ`^\b^d]a`ca[a^^ZZ^a`\iZa_^]`cb_]`iYa]\\W_`a_]Xa[_VRXbX^_\d`\\`][k]X^\Y]Zc^]W_a_jYb^^f\_^]cf\[^_[^`\^YZfZ^d][`ga`^a`Z`XeY[XdZYf_]]b^_\\[\de]a^^\__b[^]`^]ihbYY_[]bXb`[^Z^V[Tc[`Z^Z`\_`]d^c]d]\f]^^cj\[^j``[^ga_o\hZX]_aZ[^UX_`]\`[\[`^^\__dZ[a_^\`\YY^`c[\_a]`_^d^\aX^a_`\_b_Z^]b`e_]e[dY`[^^[_b_[]`a_]ZZ_a`]\V_^_a\\^Z`^^]`][\a]Z``ZaZ^g\`dY`Z_fb[\d^c\^ce^^b]^_XZ\[]_[^W_Z]_^`d]]Z_`Z`c^\a`_caX^\]d\]\_]b[b^Z]^[[\]]bZ\``a[Z\_gZ^a]]]^]c^Y]]]\]][]_^bda^^W_]^\\_b`Y^ee\`_\_a_^fca^^X_`]^Z^^\]]]^]]^^]a]\c]c_d_[_^``W_[c[^\c]`\gZYa^]^__\^^``\`_]\Y^Y\X_`[_[\^_^[^]`^a^]_a\a\`[X[_[a^]]]]^]^^^]aXc[X]]Z`b`b^]bY[b\[b_]^\`\_`a^^_^_`_`a`^_^^daZ``dW_a_\aa`]]Z[^`\a\Z[[c[aa\^\an]d[aa_e^^a\^]`__Y__]`[b_l``e\[]fa]^_`\_\][]^_\\e_i\`ka^]YY``]^]]]]e`Xg`Y\]_c^]b^^_`X[a[\_\a\X_f[b_[`[h][^^babb\]\`[^^jYg\`ch`]_eZ_`^ac`b]]\U^^^\_^aY^c[Z^^]^edba^^\j[^\_^`_c^Y]^b[V_b\^^[^b`\`\hZ`a\b\f^_]^[[`]b[\\^``^^e`^aa_e][[\]^^^__g]fZ\^\YbZ`_]\[c`^^\\Z]_`\W`_[]_\\Sd]]]^dU\a]Zaf\V_a\bc_^XdYb[]]]d_c`Y`]\^^aj[b^]aab`a\Y^c^[b^baW\Xab^]_dg]cc^b^^X_b\\fe]Zs]]\\^^\V^X_Y_^[]\Z\[_cZ]_Z^ZY\`Z[][bZ\[]\_\dZT[`^YX_]]YV]_Zbaj`]^\]g]^db^X__bQ`WYc\[_afgW\d`e\[^i_cY\]\Y__]^ae]b]b\ZZij[^]Zb[bhZYY\]X\_gZbZb`_n`eR__b`T\b`\gWha\^^b]aYbe[^\]Xa___d`b^\\b\ZZ]VdbZa^XZfZ`[\`Z[^\W^\^V`X_\^__c^ZcX\X[a^]]b[\\Z_`__`cW[]e_V]eb[`]`^]\Y\bea^[XS^``a\_c][_]__^`X[^`ZgaZ[b]aZ^\b\XWW\^\^\W]\\\X^\abZX[X_\]c]`\^^^\`[]e`]R]aY[^`]^c^Ya]Ze]\]`[VX_ad^`^_d`^cc^^Ycc[f]]\^ZW^Zb\^_Z\\`e[Y`e`X]ZXbl[bZf[^{]Xj^qc[[[`f[X\W_]`c\`\l_Wd`^^\]f_Z]W]Y^\ea]_]a_\_j\`]]^`^[]]_^^ZZ`]_]YS[iXZ]bcZ`mechc[ceU\__Zmb_bg]g^^__]c][t``\]d_iZY]a`]b[X\a\_\`a`^Z[^g_a^ec[]]]^a[`V`[_\`[bb\`_fcc^^^]_`^\\]^c_c`Z_``XY_^]_S][_ca_]Y_\^l]d[[^\_RY[\\_[^X^f]^`Z_ZY\XbZ_\c^\`[]^b_c`Z\^[c_W\WZ][bcX`f_]_`b[`\U]\`^\^^]Ua^`bd`a_YaY\^`__^eb[^W\bZ`V^^\bX`^^`a[`\_^^_Z^\Ya]_]c_b\]^__cZ`Z]\_[`Y_gUb]^]``ae`]db`_\]b`a`ZYbaf`a_fb_^_`mcfZhZ^ea]Ze_``Xb`ec]h`_]]aZa`_YaeYaa_Z_bWZnaabaZ[^bY]jb__Wa\]MmZ_a\b[^]\_Y^]\`\aa]USZZ_`\b`[eb[\^i^\Zg]c^_`X[_h\c^fvam\^\\_]b_f\_[_XkY[abXd[cYO_ZV[f^]d^cpU[P`VeU[\U[TRScY\p_[aYTV[^R]i]Z]ZfXiXZ`Zc]_^a]RYa]V^`b^dZZ]X\V^d\R]bWl`_\XiQ\]\TdaYYQ[aZ^hZe[VQjadW^NKU[`A[\]d\Yk]__TYV]fRX\S\ab]]CS_e`[^\n\Y`[Z>[[|\X^`UZP\bWqb_fZ^dab^[Z\cba_\a]X\c``Xe\_[hace`^VV[][eW_aY``fZeZfVZfXbi_Ydk`^haZ\We\]\_^V_d_^_Y`mX\]\c\^WdUl]\c_Wf\5`_dXaT_]fXbef^][^`[ieWdT]d[OUc__\eRU^aTgYVgWa^f_fgbhZb\`__`edf_Y]`bW\^`gZa[`el[c]\_egeUWfhh_[Za]\\_Zc^_Y`[[Z[^\c]^_\dZP]W_\ZXYV\^Z]ZY]^_a[^d^^^]\]b]`b[]Zi__[ah\^^Vc]\`[XU[de]a\b`Y`c`_X[]\\]Z[\]_c\T_\\\Z]_Y\Vg``Z`\[_\^^^^__\ZWO`YUYW]Za][]`\`ZeX[j_^`^\Z\ZYZ[\aa^Zb]`^WW]ci\a^_X`^[Y[Y][d]]_^^_\[_ba^[bca]_]\___]^c[`a\_\^ZZ``\^cZ^gb^`]```c`_`a]\]^^Yi\]^`^b]\]^b`]]]c]]]^c[dZ^b]^ab_^^^a^_^YbcbY]`^]a_`_`\a^^Ze\]]b`f^baZa^__cX[Z^_c]^[Zba_`]b]caa]^_\bWb_]\[\]b^_a[[]_]c]^ad__`[ad[]_`[^[_aa`[[_a^^``_^\^_`a^]_^_\_^]\_]ca]]`^^[]^Z[_]c\\]`\a`a_`ZaX]`\a\\]aa```_b`[bZ_a]]]b[`^ZZ_`ac\]_b^a[V__V^\]_^^`]Y`^_\]^\`_^_f^`^_c\\\a_^]]_\\_\`ab]`XZ\^^b`aaba^a\]Y_][_``[__e^X`aa``]_Y]b^\____`[c\^__]\dca^`\_`^a]^`]]``]g`^]`ab]^]`^a][`b_[_[\bk]_[_[\[\[^_[\Y\Y\`_\`a^^]]``a[_c_`a]^`X^`^ba\\^Z]a\b\\^_[\e^^_^`_\\e_[_^_``_e`^^``Z\_``_\]`\\]a\\`\][]a`_c^[`__\b_^_]]\``_^^`^a\]a`ba`]X^[Z``__``b___]^Xga^^[b]`_c]]\`be_]`a\cae^_^]\bb\^d\_Z][Y]^^^\a`[_a[a\d^`X`[]__`]`_\_eb]__b`]`\Xa[_`^\[^]`[^]\_Y[`^f_aaZ]d_`a^]a_ba^_^c^Z_^]Zaa\[\\Wa[[^a^[]c\aaaYa]Wd[Y[`\_^Zb[`Z`^_d__afa_]\b]^a_\]b\]a^bY[]^cZd[^\_^Yae`d`_fe[b_b`]e_ca\]W_gb[aaa]Zb`d]^^`]\^\aYa\eWX]`^`[a]_]a^Z_[[b_Yd\^Zad]^][e^^^^\gd``Z`_Zb]`b`Y`ZXb]ecdYZ_\_^Z_]_bcYd^[\_aS^][\^^aZ_ge\da^^]f^[_cc^a^_]`bZ]```\^`[_Z^Z^`d`\_^\_^c``\a`\c[^]]\\d^_^bZa\^a]^^\[b\]^__d\``[_\`\]_`a^]`^]`_]Z\_b]]^]a]][_^bc`Z_\]``_a]`d]\ead]b^a]SbXh]b^]a_a^b_^^^^h[\e\`^^[\S]]ab_a``j]Y`[^``[][`Y_`W_^]c^_`aa_^]d_Z[[^_]a\b^^^`_]da]^_\cc_]\\\_^]^b\Ua_`]_ZQYZ^_]W\[c]\Za_^[^Uba_Yd\\_]Z\^fa`]]Z[^``^ZZ`\YZ`aW[Y]\ZXZaaZ\aaV`]aaa_`[dZ]_^[Ue[^]^XXeX\`[]aX\^[]\caYYZ]a`aY]`_X\Za]Y_`_][Zd\^[YaVY[Rdb\]_Zc]Y`[]_a]\a``_]b\^^[aY\^a^a\X``aW^bY]\]_`_`Y][e]aec\]^a_[]^_\^Za\`[`WS[^ac^^bZ[^]d`\`^\]S\^_^[bb]__Y][d[_Y_`b]_Zbb^c_^d]\_[\`_ad\de^[]\\e_]_[\]`X_]]^^b`^ac^bYZg]b`ccab`fVdjb`Y^b_][]_[a^]UdZ\\]`\`]\Z]]a`Y[\a^TbZe`cY]\Xbi][`XZda]`j_]X^^_Y`bb^Y_`d_]`_\Z`\^]c]]_]\[^__`Y]_\_[[\[d_Z_acd`\_[`[[gX^da[\`[b[`bbaaZb]]_Yf_^d`[]]^[\a\b^_]Z_]_]eg_YaY``_^]]^b^]]caabkX[]_Y]_^_a^^_e_`_b]c`_]dac`\\b[ca_\b\a_]^b[^`[_]^]ah\_`^]a^_\c^a__b[_^Z`chY\[]^_\_\`cP\`ZYj^_Yad^a`WeY_^aiV_U_W\\bb__`_`fYYZY__b[`[X__`Z\e`_]]Zd_Ua`]_hYTg\YYXfb_^Ve\f]\\fc_][ah][]ac_^]]f\\\`_\[a]^_\bXcc\`VZWZ_^_Z]a\Xe[\[^d[[[aXT`V`Y`_WZ[bdc[^^g`ab[Z\c\c\^]_fa^cZXd]]e`]ZbgZ`_[^^b]c]][b_kaY`_[Z`Y\[\[]]bc]Z\da]WU`__^b^`_f\]^]]Z]_ce^c^\b\Y^]`b\\`\ba^\`^d__Y_dadY_Z\]Y\__\Za\]\^ZZab[_Z__b_[^]\_`Y\__`^d[\\fc[daaZ[a]^_]\`[Z]ba^[`g`_^]]_Y__gc^[bk]]YW^\\[^a\Y_X\_][a][`[^f_dcc_Y_^X^Vd_d\ca]\`[_W\c^`aYZUc`g`\f[\Zb__Z^^e^ef[bY]^Z^_a]`[^bZV^_X\^^`^^j[[d_\c`\Y_Tb\\Wca[Y^`_Y`_bX\]d[^_\\`c[Y`[\d[\[X^^_]__e[_ia\c_dV_\^ceaf`_^^`c`_\\]\a_b\cZ\_]Ta^^cV]gZ]a[\Y]`_YYW\f`\_g_^Z`\ZZ[^\YXZ]^Yd^[]_dX[^f]Z^_[]^YXc\X^a]\Za_bc\^TZ^^\_a]U`[^fYY_]``\TY`R]W]_YZ]]al[Zb__``Z]^^ZbYa\^Ud`Z^`cdd^b`[Xabbd`[[d\\^^^]]e[_T_]_`_`_[`a_UY\`[ZZVW^^Za[aYN^\]]_Z``gbZZ_\`g`Y_b]SW_b\``[Z]cdRd\d\\amXW]fZaWYZW_Za^`\f\]^cb]^]X^\bTY^SXrc`\[]`bbhbbb]Z^``]_ce[gYahXa^`^eY`Uca^WY[_a`[daj^fYbf``nZZf`^bY_a`[\Zc_^`Y_Z\`[\[l_Y\jX[V^_`[aZd^fYZ^iib_[n_Wcd]Ob]s`aWch\i\bX[\Ye_`Z`[`]\b__`__\WUW^a^Y\[Z_Z^[_ZZYYZ^ZVe\]\S^XVZd]][X_[cZ]]\_^Z[[_[^ZZ^_]a`Z^aZb`a\`_\Y\gfZ\b]\]Y^V[^[[[][Z\\^]`^^]]a^UZ_[^_`[]a`U`[dP\`[[_Z\Za_e_[[_a\[__\c[]^`aa[\]^`^^YZ`_\]X`_b]a`V^]a^\YZ\Yc`_^b]Y_U_^YWb_\[[fb[\]c\Y\i\c^\h\WZb[``iY\e^]bX_bWa[`\fa^c^Z_g`a^]`\`\cW_^_g\__Y_`h\`^\ba_`g\h]^]_dX``Y__`X\ca`b\Z[]YZb[]a`i`e_a`_Z_a\`\eb^`d_W^_[\^^][`Z]W[cbbe^Y\iZ_^^p]da`X]Z`ea`ZZ^Zc[b^[`^^^^]V\^`YjbW^f^`[bU`^db_\aZ]]e[[Z]c^af]c_ca]a\\^^a`Z\\cae\\Z^ae[]Z^\W`]__^`]]bYcS`d_aaeX_aTc[^e_cX]\_\Y^]Z^Yc`Ta\a^]^c\ab[b^la`caaYa_^Yaa\[[]_`]Zf\_cVYfV]]bhb\^^]XaZ]]Y_\^Z[[]W^\c\\`^\b^^`a\b_\]Zb^b[d_^ab`^[^`[_ba^`\bd\`d^Z\b`b`]_b_^[_]Z]_aa`a^_\]e\\_]___^b^_c``X`bc^^[[^`b]df_b\_d`_\b^Z`a__]^\bac\aa^^^]ac\ca]cc^^^]^a^ZgecZa\`ha`_`bbdY^]k]^ac^Zbb\`^babYd]`a^]`]`\_ab_^bgba^c`^e]`b\\]`]`_\^Y_a]\_\_^aZa_[_b]]]___`^af\`[a_^`b^\a^^`e_gbaa]^^a^^_c\f]]``a]_]Xa\__aY^`^^b^a_a`_`]\]e^``dZ\_\cZ_\]_aV`e]X\`[a`hbY^^ac^`^[Wa\cf]^[\\\^_]`f^^b_]_Z]^_ch]_^]b\^^`a_`Y]`]_Y]_babc_ae_b]]`e]]c_Z]__^^a^`a_aZ^a`__^X^Z]a^b`_`\_^]_^e\`^`__]\b[]]W]\a\_`_^[^b]`b`]\\`ea_Y`Z^`\`Ya^___^Z]b[aic_^_[ea[a^b\\^^]_b_aeb\]Xb[[^b`][c^[Wb_^bb`c^a__ZY``[]_^]\Zaaa_`\Z\[`a][[[]_X\c]e`gb^S]e\^b`^_^ab_`Wabc__f[k[\]j[[\\_b_g_]]`^a\\Qg]\b_fYh]__i^`cb\]Q\eec[cU]ebg[bM[Y[eh]l][c\Zc^g]`]aY]^Tca]e]cPb_Zc\aagaf^_]c_\bbb][\Zb_bbTjaa`WTVj^\]i`_]h_]]`^]daZ[e]dYYW_[`]bba^bY_``X_^bb^e^ZpY\We\Y]g_\^]bZc_ic^_]^^ca^ba`^c\^^`^d]_`c^\_^b^_ac``_c`_`a]g_^^\dcZ^^]ad\]^`\Yd^b]c`a]Z^`]]f^\Y^_`c^`a\a^b]^df\[a^_[]_a_e^b[h_b]d]b]d^bc_^Z\`ec`d\ab[\\de]___e_^^]b`_\ab[]]ad^^]b\ed^\b[`aa^^^Z``cd\_`b]^^Zbcca\```Z__\``^_`b_[]`a^_a[`\^_^____^]]^aY``c`\\^]^\b^a^__[_\^]a^]_ca]^]ba^X[_[\]aa]^]^]_^^c^Y^]_Xb^`^a^a^_]be`a^\_]\aX^]b]^a__^`Z_`Y\]]`Z^__^_[Yc^]]b]Za__\Z`[aW`[d__\W^^b^[^__^_`bf_]^_gZ`a\\b\^[a^]^a[``]__Y]a^ab[\`]][[\aa^]_d\e__``]`de]Xi\]\\ab\`^\_\``]][aa\XZ^^^a_`[`^^_]]^^`Z`[`_^[b\cY^^_^^d_\]b`[[^aW]^`^b]`__]b^Z_Y_\\Y^Zb[^]YXcc_]`]Z`^]Y]c_^aZ^[\`h__[[]]b]_[^]_b[``^`bW`\a]`\ca]]^Z\^`[ba_V[_\^\]_```]__X^c_]\[^Y^][f[`^^\^_]Z_`b\e[[__^]Y\Xa`^b]a\_^Z[h\i]^_\^^dZUa``_`Z_`b\Za^`_]`]^a^][][a^\Z[Z^_Y\`Z_Z^```X_]^a`[[a]a`[VZ`e]^\[\^^Z[`f_ecY[d^Z`d]__^a]^`a\ZYac]^^l[^^^\^]j\]\\b]_YY`Z^V]^^a^a\`_]Z^aZ[b]_]hc__a[eY_g^][]ZY^e_]_a\]Z\YU_g_`\`a\^bfY`d`O`dZb\]eV]Zad^\ba_]\Tbdb_Z\[^Z`Z[[_XY[WWfQaZbZ`\XX`b_Ua`dc[X][[gf`_a[dbd]]ZX__`\^f^]X\]_^`]Z[^aW_]a`XYYb\W_[bX_P\]V]eac^]^]Xc[`b`b^]Z_j\aZ^]aa]]]Z^][f]\]`Xd_][_]]\`_[`^cYf\\d][Xcf^[W]]`\UYZ[][V]X^Z\Y]eZ`Za`dY[_`\^be`]b[^e\fdY^\a\^\WXaac]`]c]^^\[[]]_^SW`^U]Zj\b\`_]^][\_[UZ\[^Z_^\[WaW`Y\_b_c\__]c_]``b[Z^[dbaab\\_[^__dd]`[``^a^\a_]^]^\]]][][]YcY]^_f^Z_Y`V]a`]\]_Y\_ba_[\WY^aZZca^YYb]Z^c_]^a\e_V]___dd^_^a\``^g[d\[Yh``_g^\^`b\c[[^[ebX^c]bVk_\[`\c[b\e[Z]^d]WY`\`bX\a^__\b^Ya```]\__ZZa\`]]aa^W^\_ab]a^^eaX[\^]Z^\_[[]b]b]__^a]_Z`e^\`^aabb`abf]Zeb_]b]_c^[\\_``^\bb`a`iZ^^]^``^]i[^`_a``ec\]^^a^\\c^^a^ae`d\^cc`b_bb\``]^^cc_]^^c^ec^c\\XZe`_]_]Ybb]c_`^a]^^_][X^\`_d]a]^\^`^k```^a[cae]_`_`bZ``dZ``i]c`j^ba`ba[ZYYb\^]b^Z``\][]`a_[ZZ]^c_eZ__]^_YXaZ]^^a[_\^c^Z^V_\_\ZZ]_]`Wh^eb]W__bbY\iY\c`[^_[_^Z^]_a]k[^`]a[\cd\]^f`V[b\]U^[`b\`]^[\\`\ba`a[]\Wa\^XZ]Y^da]\`]\i]\]b\^a_c]a^Y[`Z]a[[d`ca_^Z]`\[bc\^`^e^]^_^a\\bb[\`h]__ac^_\^hga[aa[[`c\^__\gXbf^ac]]e`__^f\^]^c\^\^`iab_`[aea^be]a]`__]_ccdb_]_]a[^b`bab^```^ec]]_Z^Yeaa[ba_\__aZZb^`[hb_]e\W^]W\hY`Va]^b^]b^aeed[___[`b]dWdc^^ca\`b]n_`h_^[a\][\Z\`eX_]ZeX_Z____da``]a`]^ai`Z`b_c^Z]da]babah^\Ud`aaaai\][_h`_YXWg`V_]Z\a^bUc_e^g^\__a^]`]e_^\\a\[]^UX_^_dc`d_Y``_cZZ]bT[Z^Y`_]]\_[WYb`dcg_^hZaZbabZ^`ba\]_]bYa_b^_a_a[_\^\ac^`ab[_c[^\\bc`d_faS\b]\Z[^dWZ^`cY``d^]a\^\_]Z^_\[[\\_`^_^[a\Z\^_\[V\`acd\Z^^eZ]U^a_^Z\a^][]][_`]\_\Z_]]l\]]_a\aaZ]c\]ed]b\^`\[b\^[^^f_[\]]`[_\bY_Y][[^[Z`\Y]]\d`]\b]_Y]a\_]d]_Z]`_`\g\`][\b\_^^]c\^`\`__`c]^[\]Z\]e^``^c]b[Z^]Y]a_`_b_m[dhaVa`[`c`_Wn^`aa_[a]f\]]]``Sad_eN\^h]anh[e`UaYge`_a\`jjcf^ae\eZ]ad]`iX]o`b]`\b\eXb\`Y^^Wa```ZXY]diX]YWeV\]X^^`t\aX_`c_c_hWbb`cdi]^XddeZo^Z_[`kTlY`Ue[cbZcZ\g\kaaHddd^ajbd_a[^]YWcY]ebag\c^eXda^Va]Z]_`h_c`^`^^[_Y^`aX]\b[_\^^]ca]]\aZ[^c`^_e_[`b[\[_`Wa_bW]bb`^ai`^ba]`da[_^a^ab`^bWab]_c`]ia`b_^a]Y]^bYddc[abdXa\a``\am\Ybd_`\c_bh\]g]d]e[`]```d_\\]f\]_^\_^ca\[``_b`dda[`_[]\_b]^`Xb`]^c^ade[\^^`d^][a[f]b]^a\`i`]ZdZa[_hfY][_cXbi^]\^_Z]_aa[^[Z`\[Ya`]d^[dVa_aw^]^^_^a[Z]Uah^]_`]f[Zd^[bd^`\]ZS^ek_[]Zead\b`b`\^`[[Wb\_]\^Z^Ve]b]_]W^[`]`a\XZb[^_t^Zc]^^c]bb]c`^[^]a__b][a^_X`]``ba^[ac`]^^]g[Z[[a\\Y^``^]aZaVc^a]Vb[Zqd\[`[ea\^Z]Z`]^`i`gZZ_Xf]^`[^_``Wd`^[c^b`fZ_d_X\b^Y^a^\a_\baZ_[bgud]ea`h\\^e]\\_[[_b`Wc^]g[_]bd^d`b]`a_`c__`^j[`jc_aa[_]\^a[b^f^]\[^`ZaXYX\^i_\_g`Z_fa`__a^_]i^cZ[]a[_]_```g[_]ZcX`^f]^[_]`]fb_Y[_Y]]Yq_`W`c[`\ZY__[\]R\[][]^h^WRia\]`Y\_\[i`c_b\aV__`_^cW^X]^Z_dbeX\\bZ[Vbb\dY]a^_uW]gg\dZ_a`Z\`_cYW^aZ\aX[Zm\^_m[\][\^[[]cd^]\][`h\]bY^\a_T_^b\_``^_]g`Wg^\WV]`Y[^_a\`\^`a`a\]^_]`Zb]_\\\``][b_\___`Z_[_Z^_[``_]]`U^^aZb]\_^aYV^a^^_\`\]`ba\^a``a\`\_``\a``\__^d`a`]][]^^]a^```[`^^[d_bc]`^_b]_aZ]^ea]Z_a_^d[``[a[]a^a]Y`]^[a]Z^\a`\[\`[a`[_[W[`]]b_^^W]\_\bd_]V_[[a__Z^_b]Z[W`__b\`^XW\[bY\]\X\][_\W]Za]_XZ[i]\`^\b__`bb[]Za]Ra^]^]]cZ_]aa`^U]b^]T^_\]R\W]aga\__`X]XX`\a_\Ya_Z[`ZZX\\_ca^\`Ya\]Z`^e_]YX]^\\]\a\]\_V_\`^bY``^^^_[`\[U^ZZ]]eZ]N[Y[]a^\\VcY[[[__[]_____`abg^^Z]a\[a^Y`b[\`acYa\_^Z__aW`^abc``\`[Z[e`^c\]]a_Va`\`Y]_b_b\___c_^[d_\[^ZZb_]`i^ab^\``V^][\[\bba[`[`\b]\Yaa^_`d[^_]f_[bbbZbd]`_aZ[Z\\^\]Ye`a`[`]^_[dX_ceb]_c_]^ab^][X^__^\]^Ze_^^b[_V\_^\Z^\e`a[[^^_[_]]_]]e^a]Y]Y^_\]_]a`_^^cd^Z[[^a]]e_\^cc[\]a[_\^d`^_Yf__\c\__Wa`d`_\Y^\_ZajX^_d_\Yb^a_aY^_g__h`a\^_[``_^[a[^b]Ze^c`]b_[]]__`[_Yca]]^]Xg```hc^e\c]^a_e\b^]\^^ia]d]a_[``\]Zc]]\a[ab`a`[_Zc^cY`]`[aZa]`ab\`]fY_\Z_W_`]aZeb`_^\f\]aa\^_bd[[a_]c]^]]^\__^c_]cdY\b^W`]^^]\_[b^Z_]]aaa`^cccg]ZY`Wb\]`[f_]_\[_\```^]^cW_b^_Y_[^^\__[a\^c`^ZbiY^cdY]]Yia]`\_`a^[`^___d[d_`\_a]\dab\d_a]_`c^b\`_\^bY_db[^_`_c_^]\a`c^abcbc[^^e\`Zab]``\_^]`^f`X\c`[d]W^\[a_X^^b^`_[Z`_`]]b\_Zbg^]_]gcX]\`b^b`eaaZ`a]c^`[ifab`^[^]^]a[[d^]_\^W`a`b\]]a_^]W_^\]]_a`Zb_\aZ]_`_b[a_ab``\^_a]^[`_Z\_h`]_]\Z`^`c^]fa^b^^ad^a]]`da]_`]^\Z_c[_dfZ]b`^^a][]]^a[^``_]Z\]]_bd^``PaYbabb`[aY^]bga\_][c_`^]\_Zb]da\ae_^`[\eW^``]a__[_\b[_^`[X\a\_```_^_c^\\efe`Z\\b[`c\g^ccUa^_c^XZa`e`]`Y`fd[_`a`_j^\Xa\[h\^b]c\Zd`b\a\_^]]^``\Z^]_]Ycca]^[`e[``e^__a]`c`^_]_k_]^`^\\V_c`_]_`_Z^^[_`Y\`]a^]]^Z\acd^\^_X_Z`^^^]^d]ab]^\^b^\_c_b^f__a`c_`a\`^]``\b^_^[e_^]]^Z\a^a_Z[]^dZ^]\]`]Vbb[\]_]c\c^a]^b_Z_W`a\`g^\``_]eag_]\[a\`^^X\\^__^a^a^^\^Z_Ya]\^Y`][bdZh^^a`]^[dY\_`^^]][`]Y``b]\b[YZi\[bZ_\Z`X]a]Z][`_b`Zd_]\]eYT_caa_]l[\`^a]]^Wa^a[[`^_[`[]\_V^`_[[Yb_^\Z\ed\\\]_^Z]YZ_]`]db]c][[^`ada_\ZX[YZZe]`\]]Y`^\^`_X\e]^bY\_``[b`g``aZ]Y\X_]`_\`]_^cbia`a[ee^_W^\_a^`c]`]`aab\R\gcY^^`^\^``]]]QZa^_]^_`e`W_fb_h]__a^X]dZY\b_\`_bbZaYYck^\^daf]a]c_`_^e_dZc``b[`^^f\e[^b^_]VZZ^[bg[__][T^`^Yf[Xf`b^f][Y^W\^i_^\[i[c`^Xb`]\d[_^W\d^^]__`_]][^_]dY[__\[]]_^\^ZaZ]ab[^\^fY]\c]]_a`]]YX\ba]c[]`^`bgZ__f`^a_^`\\^`c^e`_f`_e_]^[c\_Z`b\e^\`[_]`^_a^W^]Z``]aZ]^]d^c^b]^`\\aac_b^[^^``\\dd]]Z]`_[f`da`e_b]b]]b^\[c^`\c`^]^`_e^bb^_`a\faa`^V^Z_c_\_Za[^^^\[^b]cY\ZaZ\_d^]^[b`a]Z^\]`a`_f[][]^[Z^_aaY`d\[]Y^]Z`]`][a_\a_b_]]b_^^ZY_c]^]^\]_^^^a]cZ[Z_[]_`_]g`Y`cb]Zb_`_]e[cb]_`_^__\_b]W\_`ab`Vd]Yd`ba`\`[Z`]b^_\a]]`\``_T]^b^`^]__a_`_^b]`^^^\_\^]ba`]eaa^]^Z_`^\X]^`]]`db_[]^Z]_^[`[ba`bh\W_[\[[\]bc[\\]fX]\[[_[^_h\``[d_^[\a\c^^c_\]^`e_c\`^Y__a`[^db[_``^c\^[_]__`\a^]\[][`X^[^]b^`[a]b]\\]_^\\^\\]_^`__a_Y\[_[[\[^c_X^^[a^d[a``[_]e`]a`\a]\b^ceX`c`[__ab]`a`_dbb\X\\_]\__^YX^Zgbfc`a^\_]\``^c[\^YcZ[a`]b_[a`^[_Za_Zbb_\^^fag[_ca_h^]Zba]]`c^ZdgdE\`\bg\cYc][Yd^_`b\pX[^Ycef`^\[__\Y]]^YYlrY\a]`[cc^\_a]_Xa]]aad``f[bc_[`\Ra`]_a`fcY_a\\]a[b\^b^`^`[\aaY\[]____YYcYV\_`a_j_[```^^_`\__^\W^b^cZaZ^_^]i\n``^\a__]^ba__cb`a__a]_e][cc[``_^c\`\\]\b__ccaZ`___aZ\Z\^`_^[UY_ag]\ahf\[`[fa_[hb^aXV`_c\\]]]b_`_\c`[[Zb^]^^e`[^[^[]_^[bZ^_a^]a\a\kaZ]Y__W`aX_\_`a[^]`\][Z`_[_c]`[[Zech\e`Z]^b\Y_XoX[cW]][bNZ`abda]dZf\_Wahd^[Xa[^[X[Zc__g`a`^[]`ebX^Z`[Tl[c^cYaYg\]\Qb_ebaeZ\]a`ba`lbfZ`Vb\]XedYeTbQY\cU`[h\_`^g[c_`__Zc\^X_be\[ZgahX_ac]\\_[`X[_`b]\\_`^[[Z_^\c]\a_a\^][daa_]f`_e_c\^^`^^]aZc]^__d`[]^c[ab[^^Z_^Z\^_]]ce`\_[cW\^b`]aa^]^ab^]aa_^][b__ZW_]_ac[\Y]]_ec]a]^[b\]dWfb\__`__^_`eg[_[^_^a\b^`]\_ba_`_XcfYZd_\eWd`^]cd[^_]`c^a]a_]c^c_aY^\^\__ca_^ac]`Z\\```[c^aa\`]a^ce`ccb[^_b]^_`a]\]_\Z_^_\`^^`c]`\\a^^]c]_`a_cb_[b_Za``\`___]^]^`^b^aae]b^e\^_\[]_Z]`^aa_^`__cefY\c_\`e`]`a\]^\c`a^b_``__``]]a^`\cc\c`]^\\`bad`_Y_`^^]_\a`^`ea]^`\^c_e`^d]_[`]_^a^^^\babZb[]^]Z_^b^]eja]`\d_e___cd_``\_eeTgeR`f]jb_if\fi]acehZ^adc^_f\_a`]Y`gab`aXchb`Xdf]]`_^^`_gb`_^fb]`__]`a^a\ck`af`\\a[b^_d]k^a^]]]]ga\eb_g^__`a`af[_fa`ec`Y_ac\[[^aZ_dbXab__^\]aa]\`\Y]a^c`_aZ_]b[Z]\b_a^Y^[ag`\_[`]_``Z^\[WXc`^\^ac\_``_bbX[_ae[\\d`_^^]a`^\b`bc\YZY`_]`_Y\\b[ZX[Sab__`[c`]`_\W^[Y\[a__aUcYab`a`[aaag`b\c\^_]TU[\\fc_[V^`e\[Z^Y_aab__\W`[Y`]`c_]`\d]Za_\g]b^[adbb\ac`_YV__`id^Yaa`a\`ZWb_\a^^^]^c__Yfe^_`]]]bX^a^`\a^W^b\Ya`[c\dYaU]X_a__^^^^_bdc^a[\]Z[\g__d[cZ^X\X_Z_aa]^^^_[``_ZeXY^^_aac`]]^^^aZb^`b]\[\d^\\_`b\^[\_Xa`\`_aZX[Y^X[b``gUg\_]`^\b_]^]Xa__\^__a`\_\__]^[_d_]_`]a`YcZ_bg_a__[`a[achY\dW\a^a_c_`b^_a`a_bg[][]_``^[e\abZ^Z_]Y`]^b_^`[]_[b_[bb_\\ac_^^]d_^Yeb^e^gaZ_d]aab[[^]^X``\Y^e]c^[Za_^Z`bab]_`Z\]`]Ze^]][\]a\\_`b`[\``bd^`]^^^^`_ga]]\`^fe][_l_`Y^fj_a^e\^YaYaUa_nb_XVYd_\dae^ce]]c_X\Y^d^`__]d]fb`We]`Y[dea^bZVh`_ldWX[Y_][Y[[e]`e^_^_RaaS_`\`Z]b__\`X_`j^f[_Z^b\]UX\ZpXd[YcaYcZ]]X]bjgkaWj\bV^]Zb^f^b^[ca^S\`Z^[e`_^]]iabWbhX\a^i]aX^jYb[m[^`[bZY\g_]^]`[ZR_QWU]^[^f`Zf[b`e_^YUTSY`^_``c[]a]c]_]][`ZO_`]^`T_\]dW`X]S][Y`Vc]\^r]bZZ^dZ_Z\a\`j\_\^XQe^Uqc\ZM[\\c_UacePmqa^[cc_a\a]Zk_]e]e[`Z^\aXZXZ[jU\T^WZ[U^[g]]feYM]aYZe\cZUeS\_Xa\_\c^WTdaca]aa]a]bf[_[a[a\c[]^^\Ubb^^[^i[h`bfb_b___bZcd^`e\^_\[_]]a\\Y[dbb][`^b^^_b][[Z\f]Z]\]\a^`b_]f`_^^I`db``e`]_e\]`f\^__]bT`dW^a`[^a]^]ZZg[`\\^^aV^a[\adZ^`c]]`a^_W`bga`a^j_^Z_^\_\e_\_ecYa^^b`_`a\`[^]__c`\ab_^bacabaa\__[Z^\^\Ya``dab^c^ba`aY^aZ]d]a`_^\[_]\e``a]]e`Ze\ac_b]__bZ_b``\Yd`c]a_c]c`a]aW^\\d``\b`^ag^a`^^\\_]``]dbd_b]\X_^_`]c__^b]\a_^c_`^_]a_```c__c[_^`a_d\^^c`^]_]_b\[c`f][[]`]]\\dZ^a[W`_ad[aba`\]b_^d_[Z\_Ycd`i]^_`a[a\\[]babZ\a`^`ga^YaY_abb`__d\Za_a\`[[^^YXc]^db`_`^]]WdaZ^^]c_]a\^]]]a]^Xb\d^b_[Z\ca^c`[^]c`\Z_]]Y_`_e\__`]^^\[^`[[__\_f[[a^^a__`d]a]]YdXX_a\[^a[__^^_^[b\\_de_^^^d][_XbZ\^a\g]\ZV_Z`\`]`Z[[a^\`a`^]]X\`ab][a[^^`^`_\^^Z_]Y]]k]\aV]_^^^]\[_[^^b[a``a^^b[`caY\Ya]_f^^_^^cX]af\ba^Y]\d``\\d``_]Y__]XY`b`[bb]``aY`^_\Yb[[`^`_Z`_[daa[^]`]]^`_a_\bba^]^ba`a^^iWaZ[[a\Za[d\_\\h_`XX_`]_bb_`Z]Z`Y_Z^_a`i`[a_`[dZ[^XZ\Y]^^_^]aY^\]`W]_]]a___\Y]Z\Z^\d]`b[]`af_a`a]af`cd]Yf_]a_Vba\]Z`Zadf`d]]ffem_\``_U]`Y^b^``Yaa^^^`[a^_\b``Ze[l[\^]af[bWZZk[Z\l^^^Y^_`ba[\Zf^c_[]\]a^^_Z]b\^\`Z^^bYb`_bcY_g^`_d^[`^_b[_^YWZ\a`e^`^b[_Zfd]\_[e^X_Z_hd\__]Z^e^[b_\]]_]_ZZ[\bc^_]`TbY_a]Zd[`^^a\Xa`\[`V]`__`e^^ba]_`Y\`_a^Yc^`[^`^[dcZ^aXa\\WY`ZXbZ`\^XgZ\Y^\^\]d`\\\\^_^d__`g[db]a_aaZ\[cZZ[[^deic_^`X\\__]YZ``\ca^f[e`[\__^]a_gd`__[`\_]]U\Y`_X`^\Z\]a`d]bbh^Wb_]Yh]Xac`c_]dYg_ZZ]b^b_d[[]a^l\`Y]a`X\^f[]b_YdkYV]Z_[_\\X`]c\efXfb\icb`\V`f\[_`^_]]a^b`Z_c\\^cfb[\\`^Y]^X_^^^`bd_[a[^`_cZ_c]][kYa`]Y`X_f`aa\`db[`^b`Zb^_^\a_b\\]`cb\e`Z\b^_ebbd\d]a]^ZX^`d_`b]\f_b_^bZ^_aY]ac_]_e_]Z__`aca_bd`Y\]``a_de`cU_\eaca^\^^^ca_`Y`^^^UW]_fe[a^c_\[[\aZbX_c_^]_b^]b^bia`^^bZn^^[`bac\c`a__Yc^b`[eZ\Z`cZ]`^`YY]YZ[rc`aZb]W^\``\`V^V[`ah[__`Ze_MYY]Z]Y]___YcZab^_Z\\]^d`^`[Z\ZX_[a`^Yh[d_ZXd^Y\WX\b[h`g\cWc_e`YRcgiWfjl^\m[b_^c[XicWfbb]`b`Zhe^`Z[cZ]dZ\ab_[`g^aibTX[fZWgf`ZX`\a]\^g\Kc^TVSZZYd]`\cFW_fS\aZYY[[]a^VVhc]L`ZdbXY]_fsXPSW:_bdWYXZZMT[XZy_dVf\s\Zaa`_ZY{__c_^b]YVKec^a[`\mXVdT`_Ng^Z_jZV^u]f\Zhe`k\T]l[[^_cZeohWj\hc`U_]_c^\g`\Xnb]c\XZ\W^Z\^gY^ZcZLcP^]f`nbY_[\TXXaU`\j^p[UXUY]``Ud^_Z[\`[^ha]^afa_]Y`]dUgV[]a`a\^jb\]]beV^fZY_acVc_aa\h[\Y^dU^]\VYZ^`d^\c]_`a\_ofba^_YcK_Z[_^f\`aYa`_^c`\\^c`d]c`oac_c\aY`_k]__]gba^X`\\Z^V[X_da`f][O]]`hi__a_^eaf[\^a^aafeaZ[^[bZ^^]^aYU`iU^`_ib_[ac^]_\aba_k`bcT^`\cYZ^kZ`Vcb]V_ge``]_]aaf[a^dZadcg_Zaab\ZWZ\ZU`[\`d`]s`_aa^_hbd]`]^^Vfbn^^ei^_f\\][_Yf`eYZXY[cc\WbaaR[_\XZb`fa\d]_m`_Wha[aX\aZd_\de^\^Y]Vbhi]gk^k[_^`[]^baZ^_d]daZXZTe`]dc[^X]][`\\c_Z]jagg_de[[`_\^Y\_Y_\^d\bb_`]\^`X`i\`\h_]rX\\_i`[^_[b[aY`\ie_bkakZci__]Ya^dg^b_]^]^aZbdd^ha`^[_a_br`W^\Y]`b[\hh\\Yb^\_^\r`YZb^aXbbe[_T^b^fY\Udkb_]Xa^Y^`b[`^cjhb_ma[a_\a_YWcdZ_fgXWV\[l_TYe_fO\`[Z\cj_dcfUYdaX^Uc`[b]^]c\\jk\]^]K^`aaX_aZO`_`YabP`[`a][]`c[`\Uf^lW\]`\^eZdc`_[[r]dd^]c_]^Z_d\^Z`_^_]dj]dX_`gZ[\YM_z]U[`X]d[W[^S]ab`[^p\m]ceX[^aaaUeb^`Y^]_fYaXaZbc`aQUZ_eY_bWgdW\ZW`ecSaY^dfWW_a[cK^dV_]Zp^c`feeX`^^O\abXeaagZUXX^Y\^Y]]lZRVW[Z[ffaXa_`V_Tba_]Y]XbWU\X^bUdaga`dX`bUUcVebWY`ZUZU`]]ne[Y_gbX`bbVdcXYckc`__WbZOb^e]_eeZbZ_e_[kYVbYbT]b]_dZaf]^Lb]aZX\RX\^d^bYW\eZ]_Y\]][`b`a\]]^dec[_[d\Y\a]]\][e\a\]^^`a^l]b\`]_^fciZ_f`cYbb[Zb^g\dX[[`Z^b[a`]^`c`[g\`^_X]\b[Z^[bc`^c`_k^a^]]^cbZ[\]^^_aX]^\Y^d`c^^`]d``_a_^dg`]c]b^U\[\`_cb_[bd][`__`^anca_abaZ^ZZ^e]\a\a\_[Z^a`h^`^_\]``___`ab[[^dd]b]a_a[^\e`a[cba_`__`]_^\^``_d_a_e_^\_d`cZd`ad]]^a]c_be_bY`c^Ydc\d[`d]`aZ_aa^\]\a^hb``Z_[_[b_`_Y]`\`de]\ed\]]f`fgY^baba`__^ad[^\__\`]\bc``c]aY_[\``djbc^]bX^[Za^^_]_Z__[a_]U_gXLa`YgY^c\de_`Za_]bSYai\W\add_b\gb^rc_[XagbYcce`^Zlfd\]aLpVfc[]aTdsg]Z^iac\`YY]Z^[U`g][V^cQZ_ccb``d\[`U`Z[Ub\bZ[k[Y\^iaXXWdo\heZkL][]d\W^TocXjg]l^e`^S\Yae^tMZXZb\\Z^_[`llWbEZ\Y`Qe]d\f_^`agi`_aa\\[_^^[_Z]`a`[_]b\``_QWbeV]Y_`Va]^^]_ceYY`V[_a^Y\^XZ^Ued\^`Zca``^^ed]\fd]\g`\[a^_b^a]Zb`W`]]^dVV[_]Y__]ja`[c]a_qVZi`ZhXc^iR`\be^]e]Za_]W\hYW\f[UKZX][b__V]a`]dae]^`^]^eaXa^_^]]foaj`\YbZ[^`a]\S_W^eZ[[Zf^V[[XYhW_]_fdV`^]]_`ZT\`_aY][k^^be^_XQXbei_ZZa[^Y]\_^_Q`]c^_[^YZ^iaXc^fhUd\^\][^ZXT[__X[`^_[Xf[^[^Uc[`^cYZc^_fc]d\d]W`fNcbcUhX]d]o]aRa^aLU`Yhi^Ve`\ZXlTeY``[aZ[^[_Z^ccXV^c\\^V]XZae^a`f_^c^^bd]_c^Z^^_Xbfbc`]jVTg``adddabad_`c[cYXb^da]\We`a_^fHa[_^`ca\[c`a`adX]ea^_`Waf^]d\ba`c`_^`bd^bb[n`ab`^fca^c\e_Vfb^a_dbdgbehf\`c[ba^fdcg[^m`_]d`^`a_\`h^m\_]aab[_[ib]bgfbSa^_adZie`\f\a^_fZZbo]Yd]a[]ZZd_c^p_[]_f]][`ac]XZcdZf`kf`ca[[b]\]ZXaR]Zb_e[\gU`X[_\`da^]Y_Z_[bmcaWZdYXYa`[Nb_dZ_X\ja_U_\W[^]i^fZ\[^^d\^X^_`e__][Wdfc`aca\[^[UZYba\a]]X^TdZ^^]^^]Zb_bj_VW]Y^^^_feXZ__a^^_gZ[cWhUb_d]bW]g[[Y[_^\gaY`bZ]fa^]Y\`\iZ]^T]]_Y^Y^Yb_`gY]V`WWad]aad\bz`^c\n__][UX]XW]ba_]X]_ia^__``\]d^^Z\\c]\_\_V[`abdd]Z`cYXee^a]db`hb`Z]VW`g`^^b]^ZmT`eZ][^X_Xd_`^]_a[```dc\``]n\]Z\_\\W^\`e[^[VXi`eV^^]bY^fc`_\Zd_b``c]\_^d^[]cYc[[\]aZWc`ba]\\]b\d]_\]e]`bZWcY`_]da_`bY]\df]]a]^^d_\a_\[W`hWaahZf[`a]beZV^d`bX__]][^h]]YZ^de\]a`^^_T`[``]\ae_i\]aXd[_][Z^d[bbb]b^_faZ^`^\ad\b\a\`]]R``]Z\`f\`b`[Z^c^Xe[\Zbbd_b^_ca`__`da\[a]^m^VWmec[V\W]YZa]\bad_^[`W```Y]aY^\c]ZXZ^^a`]`\X`b[`\fX[`d\b^U^\\j``hY]b\W_dg]a[e[`KZR[]h^\YdaZ_b`]Z`Y}]^[c`cb[ZbZ^ec`e^aa\jl]j_[_YZm]`\b^\V^cY^[bZZn_dV`^b\T\`_^dVa^e_^^\fcWYcbf[`_]^bZ]k\b_c]]a_[_g]bV]^^fY`vdr^\__^_U`c`Z\dYYiY\\a_`UTdXg]aY]eXXY[d[Y\_Z]W]cgd_`a]Z^cYY_^i^cbWF_q\]]Zga`p]`g`ba_]`[QZq^b\ZW\]^eZXUjYc[e^feZacW]YeX]e]ZW]fc[Ka]dbc_af__b_c]\aYRc\]`Y`b]]]XgX[`^[bZ`^g`g^Y\T_[`X_aZ[g\`^[Y\^^`]^_[_\V]X]_][u]Wa[g[a_^e[eY``[Y`]abZ]`^[VebsaXg`[k\dbZTbaa]]_`b[Y[\[jb]Z]_]ZY^hZ_]ac][bbh\UV^\[d`\W`]^^bfX\`Zed\Yc_Zc^]]c`[a^\_lk\^^]X^\gX_dZY`d[[_YX][_`e`\]k]Z_UOaYZca`T]YbY^\gQCbS`P]gZW^]][^\bi[YNda_eZ[e_XfTbfZb^]ZY[ZgYaU^\lQVQ_[`]fX_T_WS_\ifOQj_\_VVSa]Xgff\^cc\_Y\]jXa^[`__b]ZG^aYXNaja\^b]YVZV_]WXQ_SYYZ]VVSYh[]eaY__ahb`baU^fPZbOa`de[ad_\W^\_eefc[ZagU`cZ[`cfYWb\XY\]XbRe]bV___ZQ^^]^W^SY\SZ^]]m^Te_Vb`\OYf_\M[da^dbb\c_^]]Z`V]]c__\YYXW^Z]dWaQ[\_X_cc[f]_Z^^\X^[g\`Xja]__RcS]rmdP_l]YdVX\^Z]gdbZWZ^Y_Zb][beT_SY[`][\caYXig\QYY_Zfd[Za]d]^^^\aT]o]X]f^cc`][`[]g]^]]R^Y\Q[WgWY_g`ecXe`]f]\Wa^e^V^ZV[k`g\\VZX_Zp]^^^eY_Y`dXa^^QVaU]W_Z\\i]^]`V\XS^_V]\WX\^\jW^`YY__\S[Y[aYUV`d`ZdS\[ch_X]_X]^a_j\nbO_\[]Z]X_X_Z^[VVZf\_[X_[k_ZI\[XYbc^iScY_g`i[bbeadad_]b\[`g^[XmV_`i]_T]e`Z]jQ``^b^ei]kXecX`[h]aaeXd[_q`aTe_W`S_Zb\Z_`g\h\^bb\Y\_dXY_c^j`\``b]fd__cY\c_XelabbaSbbbg`^^^bada`Y\k_f__\_\_bbX_\^c[_^\m^Te_\bGbbc`_`\g\cV`\\`[gWiNaZZ_V[_`ab^aV``a]]aa^Wa`d^\_af[`_X_\]a]\_\`a``SfXW`_c_`b[Wd\XZ`e\`c^Ya^aW[[W_`]YV`\d`a][W[^Y^^c_[[^`_b`b\Ya\[[b^Y\^]]cdg_d\bc^c^d]`]YY\\[aab]\b_[beb\a__bibiZ__Z^][[\\\b`[Z`ab`a[bd\_]```[cb\c\Z__]\a[`^YZd^`bab_]Tja[b`WXhZi`aN^X][^`X]Ye^g^[ZZVarV^\aZ\`\[[V[[]_W`fX[__`cS^XlZcX\^_WZbaWs^a_bYZ]aiTZ\\hU\_`X]]^Z\gcYXY^M]O^haiY`[_l^`\dmZSe`[Y^mN`]_a]a[aY\af]Z`f`Pq]ef_\U]elZa```\`PZaa]X_KZSc_ZZ``_`X[Vf]ZkZ][^_be^\b\_c]aZ^ce^b\__e\^\a]_f_c[`]]`Yf]Z\\W`^[X]]a]^\[_Yg^\^aYYb\bb]ce`]U\ee]_\[]`_c_a_]ZV\\_[ba`U[b`b_]]`daYa_[[_cc\`]^a_Z`\[\X\^e`[e]aal]X\d]`\`^[f_`cZ]ZaTbc][^f]W`\ba^Zccj^b\^a\WZ[aW`Z\`c`h^YaYU_ac^`Zb`\VhYUcc`ZS\`VYSaU\W^W[Uk[\^g^Yn[_m\lfZc[^TV_eaZVa[c_`^cU\\c^\agdWW\T`f`i_eva_d^aS`G[^[Wgjec_da^U^\^\edca_^`\YWR`\d[]V^d[YW^W[beXY]gT\WWP[[^fY_T]^^XY_\Zdd[`cWU``dh\`bi_Xbf^`]Yh`^]\k`]^`e^Z]`b^^_[Z]V`dc][\]c\]]]X_^aTX]_]e^Z^_]]_a\bYeTc]X_j[]Z[X]W`[]\ac\c^b]kbYab_Yg`d^`[[eef^^[]Yc_b_Yeb][h`ZZ^\acfY[b`d`^^WY]c`_[c^`\[^[X^\c]Y]ab]\g^b`a_\Y_``[ca\Zfgaa\[\c\_\d_`[VY`e_a\`]]XZ_`cb]\RY[WZ^c\[ac\TWZ[ZeXaX\U^]^^WdZZ]W_^TNd]bUQUT[QYaUceQg[^TW^YZf\a\TgU\kYYa__Y[ageb[`[[^\f``Y\\U\^\[`][]Wc]^e[ZOUUacdd^[`aLUcd^]XebdWXfY[b]`_bSbY^[Xd`Mb\WSXbUZZ[_VUS\gdZXb]XX_`Ye]ZbX[_Zbf_SWbt]\^atr`]VeZ`^``jcbbef^^dbZaac`]gZV`Za`X`ZdhhbU_^l[_`_YSa`ibfbb\_\_qdbi\_X[b[`Z]k_c^ZW`]`\_`_R_cf\qtcZabZ[_bgZf_cQn\e]ZV][qa`acXS]_bZf_^`Y`c`_[gow\]```_]]i_]^e]\`Weaa`Xua`hZY]Z[g__T[ghZ_][]^cac[ZYXX\Z]b^WeRW[VY\`_Vd^m[VaU^]aaWZ]ab[\c]^^_cQd^[`ZYX[_[c\Zb\[b_[Vb^\i``XfV[a`Yde\areV_\]Y\^aZVX`RJZn\aa^_l`[bV^k\f]Y^ScSOQaPd]h]__a\[]Ya[]^\WXXc`a\dd\^\i`k]`[^Za\_^WXcY__bP]nc^]ZZbQ`fY[^Xg]XZ^bfYY][b^Z_aY^^_^Y`V__a\_V][Q`^aj^eY]aXe_X]_V^UZY]eXZtYX]Uj^]^][XZZeUe_`gfe`cZ\Qa_a\^d_ZZdaRbg\^b[[\]\[`\c`]``fnYeZX^`b[\][ZZYgW\\\a`_aT`cR[^gbZb^]`]`]ZIa]dYld]``adb[MTdpaae_[_^\_bdeVWa]_fYgfZ_d__g^`\a[[^WdadW\hZ_`gZ\aXbdka]``^`]anX^_cka_c_\_[_^_bcl^Q`WZ^bX\^ae]eaWVd_W`bXa__fcb_^Z`_T[a^d^j_YbW\[a_b[^_c[`][`^^^bkd`]diU^a\bef[Zd\p[]^`dq^gbWci_`^V_ah]eZ_[^bcg_b]_]][[X_\Y[\g`\`a]R[b]X_`Y]V\a^aUVr[Z\qdd[]eWa`d^\ahYXV\m^T^acY`[bWdQ_s\U_n[_t_[Y][_YZde_\l[]`baXd]Yb][[\^aX_`g[[\]b`[f[^ZWT[cXV[\YfZa]c]^[a\[]_\Zbc`]_cfda\`WWX^YZp\_af_]^k`b`^ZSXUbdY\[XY_a[ZYgZ^[`kbY[aZZjc]bb[aY_]XX`^]Yg``c^]ag^fa]^[aY`Z^]YYV`c_cbX_X]`^_^c`\`ZVb]`^ZZ^i]c^[c\\\d_`_be]cd`a`b_d_^d_\_R]^_\^^[i]Z_[^Z^b`[``_[W\\X[^c]]d\aeba[]b_ZXea[f]cUVceaY^ZbbY^_]b]\\a^Y[^[Z^_^[Y^c]Z\^`[]b^[^d]\___\Z^b`Wa^\\^\^b`^b[\ebh^\Z`h]\b[YVeWZf[b`Y\a`[fe\iW\`U[QZ]ajcX_[QcZd^pgfWZdc]]b_cZ]]d^ZYc\^^afcdWa`[Zdaba[a]ZdedSca^`\abaYV\X^]YZUhia[W`]Zfb\[U^^[`ZdX^^bVZbVg_b`_^Y\_^a^b`emS[[`g^Yh_Zja_c_\Z[^b[]]e]c[U]V_\_aeYbfd]`a`[Z\]cX^\e]aZd^YkT_`a_^WX`]WQahaX\[liaRv]PUbX[\Wfb^Zch]c]_\Z\Q[_ic_`cXaY]e`\ecdf`[fWbX^X_g`_p[g_a_W_^^ac]U\]\d__e\e`bW_f^efc`Ze`dWc\aXka^U``\Ye[XRZVd\_bYZh`Y^Xa^^eq_`_\c^W]^V\__^Ye`^Xab^^`j_ad`]_bd_d_c_ZZaac_[_a^W]a]h_g\gVY`b_^Z`b[X]f^a[bY]Z[\]\]V]`^`bZX[a^^Y]bc]bX[c[[b_X\\[]\__a]\^ba[a[]^`_^^ac]_d__aX_bk[d]]\^]^\`eZ`_Y[a\a_ga[^`]`Yc\]aa]^a[`ZaZc^YfcYd]``\dZ``]]Y[^Qcje[a]j\a`[\baZh[XWa`]a[]faX^a`]]j_e`Yjlf`bZVT\d^Q_hU[^Z\PZbVWS]]e\b^Y][bXaaa^[Ule]]`^aU_aa^]a`a^^]eVcUe_cfcZ[\_Z_e__U_]^\`d_Zdcl^ahbdfgWU[[VdW\\bqY[cZZWZ^_b_`ccb^]R^ZW[d[a`aZ_Z`QZa]^d`_ePeb_a^eXX_Z[V`d]_]V][fgOeY`iabT_d_ga^]^aaO[ZaTUf^aX[^`bajdW^WZ[X^aTV_`e^``Zc]XY\`^b]]`^U_[dS^Yc^X[_^S_ZjaembY\ddRY\b_^dddV`xZdc\^Y\jfdX]^b^]a_[\d_rW`Yi]_f^V_TY[hYdbXR\i\W`fed`[oca\cU]UX^Z[ghYb^^\_^Z]YZb`U_bc]^h^\X]X[\f]^`a_^a[aX`ce]_\^X__^`^\b^Zc`^eZ[Ua_`[Z_[`a^^`\__[\ZXZ`[XS_[^^^[a_db___]d_X]\[^`V`e^\]c`Za__cY]^\]bced]_TUaU^\b[`WXZbYaekX]`\XZ\\_Z]_^[`[a\Y]a^b_cg^g_eZS`X]\\\^]_abZbW\\d_d`[[a]Zd]Zg`c`[Z`[]\aWda\beb][]WY]^]V_aa_]g][S\YV]acXaX]^jdehY^`ak]`hZ\gY`\c]\`ai`^e_`ac]d^Zbi`W\_`g[]]]ZU^\V[eb\`dZ\Y^^]aibkV`Z[Z_^]\_\a`]dc^`ec^hcb\S]Ydh_[[d^_^Z^\_`a\_\e[^ac__RX]_`\bc]`\`^]a\^Vbd_Z^_]][eka_]```[da_dZbY[dff^`bWXba`dbfZ]d[]ZWc^`^``V`_Y_i^_\``Z_X^db_\baZjY^f^_`Z^Zc__a]c^]\\a^d`_`Y]Sbaabv_\\b_^`^]W\^cbZ[]YW]aZY]YX[ab[\ZZ][^c`X[a`\fVaab_`a]Y]b]`Y^ca]^]`Zd^k`^[b^eaZ_e[_ZY\[e\X`\_a^af^\[a``cX\[_YY`_ai^[^]_Z[[[dX[WYY^dbZc\^p^dWaj^u^_Z[\a[[ZS]]^^[e\jc\_^\`]^]_\a^\abbg]`V]c][`^dagcYY[aUc\]\^ab^i_XV^e_\`b[bfoX_gYZi[ZUc\e^d_[^Tk__[`_gb[ga^Z\\]fZgZ]a[bY_bW\_```_][]^b_[cXab]_bh`W[ah\[`Zc[WYU]h\a\]c_h\acZaYa_\[]b_Z]\ZY_]ag\caa__]aba`f[dc]XY`^\]]\hcYX`\^\VTb[]\_[\^eTX]^X^X_X][[UX`d_]a\Y__XdbV[a^`e_`b\`bZ^_][b\h^VW^S`]]dh^]W[^[Xfbb`fbfaQa^]]\]Z`a]^Yce`aY`YY\^Zca]ad\]abdX[^]_]fcmZ_^`\da[eYcbg_c]bdja[XblgW^S_lY\[\Sh^\hcX_biZ]Y]XbfVZIjZ`Sh[dZ_Yee^\fY^Zc_h`YY^^aP^c]]pY\UY_^d\aUZ]d^a^bhig\YedY\\eS\[bT_Wd]^kdeagZd_ZeWoU\\hUZ]Y]Ye`^b]]]Z``]^\cdd\_g]`fa^Z]`ab^aa_[`^db_]]`eYcY]YaYcab`]]^a\bf`fZb`Z`^b[]Z```[]X_][b\^fYe_\t`\a\^`_\\ga``\^__Y]b_^_[^cb`^__Zd^_[Y\\eZbZ^_da_]`\Z\`a^_Yc[`[a^\\`ZY`]aaa]c^_d\^cj]^c_Wa_Y]ccb^\]^]c]a\`]__[__[^^`f^]ae]bZRk\]cc\[Z`]_]_Y[[Zd^\^Xj]`[cd^cga[aG\`_ac\\_gdb]^_Z`cXh\```ZicZgc\\Z\\_]Y^_fWf[\af`]V`]\Yad^e]\abZa[Zdu]]^_dYR^]K\b]YY^\Z[XddP^[[^dg^_a]c]NZ[\Y_^e`_`Y_`X_V\_ff^U\[m_[gXa[a]Zad[YYa_eV`W`]eXaa[d\_Ye`^Z`\e]Xb\g`[^^\[^_d^Xh^Zc]^_]dY\b[bXa`^c^cY\cbh`]]^]d[^`_^`b_\b\ae^^\da[aY\Ygabaeeb_^bc\_e^cbf_a```h[_Zdc\haaW[ZZZ^[]nX]^Z][b]dZXcZaX```\\W\\X\`\cX__\W_^d^c^_d]YZ]_[_dh]\``d\]\ab_`Z`]d_Qc\mX[bQc]X[h[Qbf[XTh_ZaOdReZ_\i]`XX[`^fZ]_nkaaeYE_\eaXYZeV`Xa[\em]VS`[`YadZ_ZwU_Zbc]Ybdffd`]N_[cYXcYlRY`cd[u__^e`^kdbP\_daifYe_OY[dtdYhuZcXMYdQ[Pd]\a`hi_deaN_mZQgaeXcY^RPcGb|`bpaUd[]ndhgT]a]^[Rac`]d_b[b[_Zc\a_Z`a[`_a\`ZZd]a_`V`^U_^YZ`dYbU_Z\a`aX_]]`\b]Y\R^Z_]__\d^[`[b]]hd[_j\b^cP^ia^``^c_^`ba_^ZZ^]`^_d^a[ec^b\b\nW_^dc`aZ^a[bdcbdc^]d`cV_eX]_a^Z^a_]`db^`h^_a\cb^_hcg]b_^\]\cabb`Vaae`f[a_``_f[[a]^\X[WZc`[V]^cZ^ccdk]]cha`a]^Y]n^Z]ib_`^_ha^\_aL^b_a^c_c]e]Y\a_[^\cbjcWbg\a`_]``caWc\[fb^iZgaS[_cYchda_gcSee^hbZ\]bTcc_b]c[\_ahm`ecl]]fZ^fcbc\^b_eiV``\[m^YW_eaff]_YZ]^`\\`a[_]`[\j_c\`s^caa^_]^d]a]]f`]`_b[aaZgea`T\Z^b^^kbe^a[_][Yb\UV[^_]eWbZj`l\ne^b^_fcd^d^`ac`V\W_X[gdYa[c_[``Z^^[X^b`]Tc`dY[dYe\`aTa]]_hbcd[Vcj]`Zd^b[daY[`]_b_bcRg[_S\]hZac_a_Yd[\Xdk[c_bbcW^^^ag[`ZSZ^f`R`^_a^YpX_^_[e`_\a_g\U^v_Tb_YiXc[\ZcbbYmYQ\U_\]S]ecXSc`ZX_^Yn^t]_YnYca``UTY^YZZ]aV]^_T_olfgZVZWg^XYZZ_MT_l\O]x\G__iY\bYW[]g`^^e5Wf[WQY\YbmaaXV_XS^VMSTW\e[`YZaYKZ_jZ]bkgc`YL^^kbYS``o_XWbT^W^[_\Y[u\fV\^ZYZZ^aMeaZ]^_Z]bXXoW[_Z]aWV`_r]X]VZ\bU]PSTjUZ`ZeWfdVVUYXba`b_a]fWba]Weg[`b[_Vb___Zb_o^^caaaVVWZ\^bjbdX^`_]wjX_jcg[`ZeYZon\`abc^[[`dab`[_b^X`[`aY^Z[d[Y]U_\hZj^Zd^h[dXdYYXW[_W]aY\Zcl_i]bZ[dcR\_ac\\`d`^b^ZaY[_^ZYXeZ^OP]a[_]Yc^\\`[\\b][W\YZdWZ`U]X]a]Ye^a``^bbY]]\_aaY]^^daY]a^TYYa\b_dKX[`\_]fY\Yab[aZ[`Z]`c\_ee]ZSX]ZdZ]Ubd]Vd[]cZbb]eXaZ]Z[\Y`X]a\_]b[Z_^Y`[]__`^Y\X_[\g]_]Y\^^^YbYa^^X\abba`X]_a[_d]^f[Xg]d\[^i_a[\[c]`ad^aZd`ab\bYee[^e^^[^cS\]X`[Y[_b]X]`]ZcbeaY[_V]`]_a[[Z]a^_]\W_^[ddab^[_]b`aYY\_`Q[`Z[d`\W[^\^c[i`__[_\_[bdbd\]_ZY_cbb\[\_[e[`X_g`U]ca`fiXdXYZe]`Z]``ab_`\`]_^a`Za\`h[\g^bVe`^^YhZ\^eXZa`\[_h\WTced^][\\gT]\aaaXWcecY`aRcaUc^fYh`ck]`c^^Wa^n`fW]mb[`fVc^cjhcXdadT`_W[e]\faaaah\`]d`e^\Y^^c]`Zgm_a\c`[`\V`[d_i_c[^Y[[_\d]^\W\dZa`Z\cV^[d[eX__c][cfb]^V\c\]]a`aZZdhchYYecYr_d][W]`fa]^Zc\\W``YaYh]pcn]baY]TX_aa\UiZ\\Y]Ze_fYiR]`^b^__\jZg[fZaUZ_b_\Y_d`aa`X\Ye]_b`[Zad\V^SaZYlXc[dbSi`ZdW]]`aQXc\R[S^`\Y[_]^]W^ab]in_cPiaR\]lPdaWeaYRYbd^\_Y`WWWi_a^VcX]ff`ab]fZ[\a]Y][\_Z[X\Wbc]^gX^Z`aa`\e`aZa]b_^^`f]\gff]]\YW`d]^_Ya`sZ^ad_Za]]]YYYY]\a`Yd_ck^bf^WbcX\\d`ddX^``jYY\^]\[ie]_]fbW`\XXd[_b^]b]`_dhZa``^q]a[[`[_[^]fe[X\Yib^Zf]c[\[[Z\\[h_VYdgZ`Y_X^c`_\`_Y`_dgW`cZki]fYU[^_`W[h\e[[Z^[kY^Yd^``^YYefZ_[c^aS^ZbZa`XcYbj^[`am_dY]^^Xg_d]Z\_Z_n`^e[[^UZf__acX`WX]emZ]iddaYSbVaT`^Y`\a^`^[Se]bacca\gZ[Y_[ddWV_\hX]bdYcVkXaVYgahahZ[h``_\Vag[]_bd\SW[_Xc`__YX]Yc^_i_Ytb]_^^]eU`^a]_\`a^\aba`gZ]_b]WX_^Y]^]^f]Y`^a^Y]^f`dX]\^[^ZcZfchb\_ZW^_`g][]c]]_]m`ZaX`b[]`^\d[X``^eXZbd\_`_`Z`[X[]`k_\^`b__`Wc`_TbeY]_^bZ]^[]bY`^`^f\][_d^]`[ha[c_\b^]`_]_\]_\`gY\ZZa[Z^[\^^a]^]]bRZ]_^^ZbdVeU\]^Tf[ch[]UhXac\_ZsUbedaSecXb[Ubbc]_]Tdef[Q]ZgebkeMaX\]`R^cc_bbah\^Xed_b_VpdZee^ZcXb_[e[Ke_`^bdanca[X\_bWdWYbca]e\hb]jYae^idbQX[XWfUTfdmnSca^Z`Z_]xa[^cXc_ZZhUZXbjm_dY\Z_a`de^b^[e_`_iZaW_ea]Za{aha^d]V^\TU]n_`i_d]bu[j_k[^^`U^\j[aaKV_[h]`Jee`hh[a][^^VjdhZg]aca_JVXV]Z[VdX`__]]g`[]_Yh^[`^a]Z[`^]baNmddfWaaWbQadqQWa[bcg\fZ[bOn^\a]k[_^b`Ze^wVY\Xb^[VUa]_]lZZP^`]^_b[fn^W`[bcf]dm[PfYebZa`b\^efyZea[V[[g`X^VdPX_dc\aem_af[_b]g`[_YXefdZ]^aXcac`b[dd[]i^]i[\XV`\Sa^Un_^f^a`YabZiccfaba^aZ^SX_cV_\^c[Y]_R^\b`aZ_b^b_WVb_^__5ZXZ]YSBQcXW`\^R`_Z]]]\h]`a^`h^e__TOXfcY[][^aZ]\^f\aYacOi]Z]]`]OMaTV^`\^]\cX[`^]R[ST]]\^^]_[[^^\\e]^a_^[^eZ^`ZW[Ym^a``Z_\\^]f\g]bZYX_\_a][^Za^\Yo\\X^XW^]Z^^]Z`}`b^[P``_a^Y]b\`Y^_\[cbYc`eZ]^O\\`__f]_YY^`dYZP[Zcf_^__Z``h^]a^e]WZU_]bZ^`V]^gd[[\_`iZe]`mUT]\^ed`_Wa`h]_`aaa_babS^\qV]a\U^`]d_dX\U[]eW`\\abb]\__ZabYe][b_Tk^g`l\f`[^bY_]ab\``V]daeea^ZX^Y\S]SbdbZ`[aZb^d_d_[c``_Y`Yh_^]`][]]]\[YaYd^`^\X]]`VWX\\\fX[X^\\[dZ`_[imifU`[kbb\[][d[ZV]`jgbd\[_\c[c]Y\baNfi^Sj_``_^W`cT`mbS[\`WVca]_d\g]\]_W]aR_`^S[`^hX^S]`aY[`[\a_df_aeWZ_SX]]gdcT[angTb]Y\erV][Ycby\]d]\_XcY_dV^ZW\bgmY\\oc]`_`i]]`\`Y^^`_bfT_Sd]]fYd^d__aeYcX\WW_W`__[ZM`_`SZW`g^[ZY[dZe`Z`_bVYnZ[djNaYYShUedi^Y^UXS]zUX^\Udd[^ZccW]\XY]\`[f_]Ydb^^XUiZX]`^XX`Z[Xi]a\da]a`d]^]WX[ZWT\`YRe_WcdZVV_KXd][][X^Y\dlTch]rZ`]\aS\\Z^[[Sb``b]\b^_^ZZ_Tc^_YZV]_]^XW`MbZ^\b`h^`X[kfZSfa`]Z`a[W[]e`dVRbfaaa[\]_aV\]U]]Z][^]_Vug_VVXZ_g_\\Q_^`YU_jX]bXXacYfZ[[_a]a`aZaZ\]aWjd\U[__`Ucb]bZ_Vbfd\aZ^b`lXa[\e]_Xicn]]]cURc_YXXcVd^lYXa]\a\__`YaUU]VZ\hZ\Zd`cgZ\[FbX`[V^]`^fZbVcb\dVuY^ZeW\_\_eMYcYzb_Z^Yeb^Zh``WYhU\U\ai^[X]T]aY`ba^ZcaYYQ]SY[[bUk_bW]b[W\\XdeY_c`_f^]]aaZZd[]`R_bY_g_db^eVp_o]c\f][W`c]ccY[[XX]\\aY\TYS_f[^bb\`ZdS\Y]a\ZY\\[`dab[\`]^]_ZecZWWS[^[`aY_^a`Sc^__aY`d\^bb\bb`a]]`aV^aV^___]Y_]\b\^[`a^kYY_ZQ`V_Yb\]h`b_R[_Z_]`^aXVfW^\ab[h`a[XbdZg^_^`\b^dZ[_a[`c`WaX[`]`icad[bZ]oa_Ya^W\idd[^f_gV[Vd^_c`a`[]a[eZfY^`__U`_Rhb__^^h`]\a`Y^Vdc[__b`d`__[^c^`X[__dZ[cZZV]]_]_ZYbacX[^c[d^]\_\b^U^]Z_[kS_\]b\`bf]baa^`Y^b^[T`XZ__\]`_`\_`Y`^a_\ef\dY\cbV^Y`^ZeYccc_^LV^[^ZYZb^cbhYc[_iabTdZfh\^bedT^gZ`ZdhZaZ^bg]Q\Y]_cY^hc`ah^mZnZh]m`\bfTb]Zg^^_YfUc`n_b``Ke_d`X^\Y\^[^_Yd_^]Pcf]Va^[Rcg]W\Y\_\]X^`]]XcZ\d`c^l^aK`ZcZa\_dfgUX]cQe`Z\ZTa]X[`Y[gd[c\^Z\Z[YT``__[]a]^aXX`]_[`b[__\^[^bYaUa]b`d[b^^ncZ[Vdd[]V^Wae]YY_[YW_[a[od^]^^Za\dk`_e^e^][`__ZZ^^c\^lYa^`]\`dnS\\Ub\[abW]iZZT\mfY[eZ[[_ZaXbYeeYdYW\X]b\^g\dUmW^Uhdam\f__d[^]b_W\[d]c_^]b_ada]b`e^dd^^a]e_^b_c][a]`Xd[Ye[`]]ZXabLa_TZV\]\i[W^Z^_[^^ddh`[]_\`c\`X^\d_g`^e_\f\eZY[]f^]Ua[[b]_XdVYdibfW\e^^^ab]]hc`Z\][b^_]``aX^[[W``_]\b]fbeXX_gj^[[Za\^Z`b^\^ZcZ_]]`h_^[__cbaY^`Wc`d_\Y\d_`Y_Za^dZbdd`aZc\b[gd\i_c[dima_`_b]\daah_\f[]dd\befcY`gdX`Y\^mYbXbWWd\Zg_]Q^aa]Y^V_d\[_``R^X\__[affXf[de]geb[V^ea\h`_W_`Z`_`Z_\Xe]V\b`_^_Y]Y_kk\ed^W`m^][`d][\c[bcjW[U\XeXY]]bd_bpc^[PW``b^^`^ci`\_WZ_Y`[``^\[_^ZZ\[`_S``d_[]^eb_a__V[X`a]]XY_a^\`acX^[a`ZZ`aUVhS^F^^d_`e]f`Sa^\]b^X_aaZ]__\^a]Y\_dj]da\d`bc`m`\^c_]^_\bXhb[deaa[_aYhb]\a\c]\c]^Z^\]VUpW\_c]\\[^Y^[Y^_cUb\VWi\Z^__\f^[`ZZ^b_f]`Y][[h_Z[]Y`m`c[_ad^[W`aa^_\b^c_bSch[X\^d\aed[b[i]YY[kdbYaW\YgVg^b^ZB`X^\^^]a\\]`W\V[ZeW_]^^bjf[[ZfcaY]^g`af\ZaiVWaZhZVaUe^\____d]_Zf_W`YV\[X[WXZ[__Y]X[t`\ie\`aV^`^]XcY_^cb]d\fZbZe^m_[Y_`[_h]Y\X\`a]]en[__VZd[Y_WZY`Y`aZab^NYZbX]`b_b`cc_]f`_PUZb[]XaZe`^\_\WW_`^ak[_a_M_`b`dc_[`fh^gYfyad\Xg\\lS^Oc\`[^caYZ`Xo^]ad]bd]fX[cXh\a?bbeZUbn`a]]`Y[^V`XaXOM]]\`ZccOfWm]eccc]afcYf[Tf`r\^`i|apY`_Z[Ya^\_fUg_gZa_a^fVXe]\_`a_][_X_W\X_dg``dah]e_VacY]bYg_YdgU[kb^`]C]W]_l\^_]`ea]\p\a^`U[`\c[W[[dh_]]c]f\]]f\`[]f[aWcV``\`X]`Mg`]bXSbci`bh\dWgY[YZedebZ[o]n_L__^^`\b]YjYZ\cV[][a`T`\naXGb`X]mc\_X`Z`cdceY\`c[c\\\[]^[[\^[Xa^^`iTgd__bgbafbVbdXc`a_Zc`and`_Y`b^`i][^dn\keabXZaa]ae_d_ae\bb\[Z^]cckTYca]cdcja]UgV`em^Y\\Xc[Za[ca_Z\W`c_acS[eXX[idccZee`_Y\d^b`Zh[[N^_l][ce[d[b]a[g]_d_c^ce``_^aU\efW\\hdef^^b[c[b\a][_^ca^^`^`\_``c[cb]bXc[]e]Z_Sb`_`[b^_bYcZ^_d^\b\ddW^c[\]`\]^_]`_Z[^_cc]^if]ga`_]]ba`f^^b^`a]]d_dbo_a[\^\]abfa_b_c`^eWc_\X_a]__]baac[`eX^Zag[_c``f^[`Zpa^]c``Xec_b^Tbap^``^_\\^[j^_[Za_ZS]][edZaa]e``a^b]^X`b]\`\`ZaW`ga\`X``\Z[\]_ZZ`o_`c_^^^e\ab`aYfcZb]_\Yh_cad_^f`h`]Xdc]`d`Ybccaa_cb`f_[_]`_[X__^_`Wk\`_]eaW\bYa\_\\g][d]`Z^c`^b`]`^e]c_j^_ZUea`aZ``agW_]_^P_\_\ZcdX^^b_che[\dZy^a_g[Z[[ZbfZ\_Z_d\i\]cX`_WaccWPa\l`ea[[\XZ[`Z]cd\^\X`f_Xe`^Z^f]Zb[aY]XY]Z]Y`\^\]_W]c_`X[[]_a^p]X_]b^]Ybd_W[e]JdW]_^_a]caVbfa`^Wan_aZ_\_`^\[\]cffad]YblbX^Z[bcbc\Y_^[YZcfa[dd^^]d[]\W^WY\^dcdV\cZ]]cdab]nb`Taj^Y[Ye^Za\\XT_ZW^_Z]pfb\bb`^a^hc]ZVh`de_`iS\c[a`dTX[M`Q^a^b`Z_ffn_aW[XYcTaaaZZbab`[_`]YdaY^\adYfdohYZ[^[dYbZhY^_\S`c\Z_oa^[diY[\]X]\[_h_`V^\_Y]ZZX_X_V^^`VVca[UU^Y`[WJa]W\g\ZhciU_]ff__RibSVba[]`gk]aaj__Wa][Ybn^ZWjV]\W[Tf^VaV^b`pVc\UnI`]^]^U]h\gRYUi\eZg]nX`T`ZhX``fhb_V_^U]Kb\STh^bh`m_cc]hYXB\U\b_\`UbT`_[aWVemTJdekpUebhcW^^WSbUfZ`X^ek\Uk[jY`aNf_iZTZaT^Z\g`a\PXUb\QQ``M]abWa^f[]W]SRab]Q\c_S_cd[j^[Zf]{`aU_t[f]aXU_dXa^`^]_[bYa^\[idXaX\YnWYa]d`a_XU__T`^][[a^eia[diZbhYWacaY][^]`ff^][XZLXW]`m]Y]^_Wl^gX\Zdd\][fieV_`cUZeMgaXVZdfX^e^_a^wca[Tfb`UfcdYZcbYYfcw``d_^dib_\P_^^[c^\Ycf`ddYfaV`]XfVdhRZa_`fQ\\d\_d]gcfX_^a^fbb^Z^b]^YdZfe]]WZaYi^`Z\dn^Z\^\_^SZ`\cW`VchWg\g]d^gb[aZ^^\g^gkej_c^YYc`\bce^b]]\diYVeZa]iP\baW[gbkf_ach_\`j`hbd]aZaY[a[bO^fZ\W`]VVhd^c\`][aX_ahcdfYW\]^]\]T[cY^T^a]WZ]dad`c_\_l]X`hia\a^Z[Wb\_beaghc[Z\e`[sY_aWV]aY^d[m_\T\d[ZZXWo^]`b`\gU_eYcY^_\`\]W_\YV`ZXTVVbcfb[^nZ[_V]YcY\`bcb^e_^UqaYagf[WT[hf^_lY\OW__VfZe\sZR^inbY]gU[^c`Zc[iUcc`jfjYa\XZ]V^_^^_^`W]^aX`[eXfg]`^]Z_]`Ob[YYpWY`b]`e`^Y^`\]MT\ecbVYd`d]\\\adbjZh^a[]]X_]^\Wa_^YaZ]`a\aZeaZZ[\_]YZgeffT``b]_`Ye\Y_\Z`W[`Y^^YZ]j^_^^[VR`[W\YeV_af_]d[Wf_Za]a_[]^\^YaX`Za\Z`^_bgb_[aZ][[_a[`Va_^[\\fX[_]\a[\^^a_aXbeZ]Y]W]aa\\\\o\\\b`b^Za_aY]do\TZ^ZeY]e_][\YcWc^]]`]_aac`^e`\^bY^a`\`\\_ce`f\]\^`Z\\`]^XX`adaV_`_k__fg]Y]`a[[Wa`b]QcUh]ba^c_bZad`_W`Z]d^XY]b`^Zd^dc]_``fYe`]a\d\b\e\^___\k]gXY`cZ^d[\a]]X[aaac]i\a]Yc_Z]`Y[eaVbY[_b]a\b^[c`X_U[cbbdY_j_]]][j^W`]b]T^]ad\]_ab_]\X]`[[ca_Z_X`^ca^`YYX]`Y^bT[\X]^\_]Y_Z]Z]fZZ^WbcaY`^\SX`cY^_]b]b^]d_baFd]f]`_b^Ya``\\\YeY\iY[`Zd_W^_[i_aacdW]Yb^]_^Z_dV\^_^d^``aYad^`]i\X]`\]Xba^WZW^a]\h]b]a]a`^ih_\[bdZ[`[Xbaa`Y`bZa[_WZ__`b[d_dce\^^^Ze[]``cd\X`^Z`V^dg\]]U`Y]_h\hibYa^\^`aaagY_Ze_aZZ]`aahYq`^Zd`e\\ecT^XggZ_\]bX`d`U[`]\[d[\d`^`_a]b_aa^_`i]]^acg^^\a_e`Xad[c[o^[```a`Z^a_WdO]^]b\j^Wb\]^gX\ehb^[Z^dac]c`da[`W_`c]c`Y`Yb^ZcZbUXWdaXb^[jb^_abVa^afZ_\f^Z`]c_]a]adah`_\b`\Z]cX[dcfecY_]`d^^bYZ`_Z^`dcSdZ\Yc`geY`Zgeb^T`Y]_[^[fV\X_`S]_e_]qbi`c]_]]]fa[Vj``_[a]]fb]ae_b`ZYico]]YjZ`n_]q]X\ead^[]`iSX[_h\``_Zc]`baebZ^[]^gYd\Xa_bUZ\]\^hbf[]^bf[\deZTO_[^Xp]wdhacYX[[U]l^\db^fdOiV`ia_eeY[hdP_Jb_c\XMSZObY_cb^`^b_a_a^^o][Zb_VYfa^_dgq\c]c]g\^[]baMZOiX^ZRdXVZYbT]nZd_f_\Ra^_YXa_ZXjZ]WV_VXd`QoWS^YH__XXXcff`[VYlfXbV_Uf_Z^eV\afcU^g`W^fSg[^_^aUXR[fbXSaI^mdd[aa[Sl_Rn`[LAedMh\eb\UUKh\aZ`XdTfLWUYURW]^UOag_X^OWd_Z[bXaen]YRQgE_f]Xc\]b\[`fauQViZ_^_\eZ`acZ\[]\[_WYa_Z\g]a[`[d\\dX`Z^_]Z_c^e^be^Y_\Y_h\[]Yc[X_]V^YZcb\a`\d\YY_Zja`\d]`m`[`SaYYa[`i^aZ_]]Y]^\h_da_`_a][^^YX_^[\[Y`X_``a\c_e][XXW^\Y][RhZ]Y_cXZ_a]cc``^a`ccYd_aXZcv]`Z``^f\`][`\`_ZZ_`Z\e^^Td_Z_ZX^_a_X[Yg[dWZa^`]d``X`aW\^Y`[Za]Z^ebc`dX[[_YdSYdc_U^V]X_bjXm`W]^ZYY^TXg^Y]^_[a^]a\VbYa`_dc]Z]P`ba]af]\]bh`S`[bfbf[T]ea^Y\a_cWTYh`_\U[_Z[Y[\]ibbX`][_`\]^Waa_V`_Z`^ZVc^NdZ\]`^`R[^bYa^_Z[^aca\Wb^_YT_`^^c_X]ebcZX_eZY]a^aY_]`^df`\Z^[XZ^^Z[[VYV]]Z`Q\e`]ba[b[][][^d[f^_W[b^\jWcc\d[g^]_ZY^aed\>YWX]^baYkdWYk`_ca_zPfdfZabZY___bY[]^_\[i~`\[d`[^ee[XaaaY_`P_[d_[g\dT^Y^_HWZ`a`ca_^`b`dXa]^_^_a[a\Z]c`d^__b_^^a[`c^`\ca``babaa]b_b^[]c`\bY[da`[`Edbb[dc_Zbfaaf_d\e_hbdaZe^de_]ed\db\[`\`b]d^gaVaZc[`bg`\gdWe`]`]]hacc_ea^[g]_V\eb\b[\cac_Uc[Zb_\cb[hY\]^^\^`_Yb`_h_eXf`a_dgafZ_Ze\g]diC_bUW]^_YYUa[OVd`^RYaXQg`h__\Sc_WVZQ]]Z\^k_gPf[ba5VdYYcc[cnV[\X]YZTYipc_ac^X\jl_d``ehge]=UXgZRa^Z^bWU_W_YXeeb^^\]W\db]]Q\`WnUqVV{h_WW`cb[TZT[Zaebiif\\[Zabhg`cZY[]_VZ[\UWPZ_joTea`\dhYRXhl]aWebYb]Z\a^X[]a`]][^`\]^_hYEWX]V[]SR_\W^T^^b`h_Qb\`_eUd^Tc[U[\ldaWan^_W[iY[`Y\Jacabd_e``^`]gYeZWc[V__[[s^M\QfVZZbc]Ra[`][_ad``d]gaU[WbRdX]S^[YRY`\YV`adc]fa]XdPa\^RZZ[[\]^][Y]\XY^h^_^a[_jbZ_^_Vd\]g`X^lX_h[c_cbaY]__e]`WcchXg\a]]j`\`\dcMb^`[[g_dZ^d_a]kbZO_VgUYYYl\d`[cbYQ][c_Za[c]lbeu[Yd\c^eb[cc^UZ]b\]ae\Z`b\_ebaQZfW[[Z^a\`l`N^hcabbWba^_eUbcc^]`T_c\ec\b`eVhq_fW^cmZfaVa]t\q]c]`ibc^d\]_]^WcW[b]YY^_]\]]\`_\]W`XT__Yi`]ZiU^^Y\SZf\`dfbZVfdb\a_Weae^[Vd\iW_[^ZVQb^a\[`\VZaXa]_U]\U]X^ajUi[Z]daZ[ZeZ]pX]ad\`c_hW[d_^YpdaUaceadc_hR_R\Y]f[VTbe^[^Y`i^V]\gZkdd]\\]V\XZW_aYde\g[`Zc`^T^]^[bcT]Z[^]eY_Zc\d_g_]XWad_Y`\SUX\[]Ola]ce]e`XgbY]`a`TVT__Z\oXN\m\V_[@g]^^eXUfZe]bXaoa\XXU^cT\bS_XdOg^Zcb`Z[\f`]baka]WfYc[f^XVYMf_Z[\^`^e\UgahPUYd[c[`cfb]n_pUXie\^Zb\_]oZ\\dW\[`Sc^\\qeZSc^WZ_d`Za[X]^\_fde`ZdY^^\c__ab[kala]d[^`bb_bW]g`i_hcjb\^e_cad]^jf\``aXh`cbVXhNchtYjW`ej_\akbe`i_[Z[b]Z_[d\d^bZ]fWc_aXcef_ic[]ea^de^[kXkXOg_Sddw`Xf_a[b`Seaga\WbXh\d_QmXW_\ehj[iTY]`aZc`cc]XZtTiP_ZdincYch_XjYe^gZ^ch[Y^]]VZ__a`_\wZf_f\U]ZYc`caGda^Y[]dj[[_c\Vfea\``]`boO]a]je_\_Pce[X^a`_b`\V^h_Y_ZTfsb[`[Y``eU\fecdcpS?`jbcaddadl[[bra``Z`]J_o]^Y[SWb`_^a\p\`Tbjbi[_dX[ZabUaZUSdu^^L]`X]Y_Tb\W]eiTa^ZY`abd[c[`a`]dW\ac[_[Z^gcYaaa]]Xb`]]ZZ``beWd]ga`ac]Z]Z`]bhal^Sa^_Y]bV\d]a^`ab^a]_[gXecZZYc`Ydd`][b``\^c`g]dc[a`]g^cac^a]_f\^\\Zcebd_]Tb^[b_e\cce]^^]ce`bbW\VcbQ^`]W]\^a``^_aZ_]Z`\dbbaeaaY[__^^`Y^h[b[]\]_W]_gZ`gXcb_]WXW^`]XYjW\_V[gYW_[`Z^]aZ\`XZZ_]^aYYaM]jmYWaW_mW\bWW_\We\YdZU\[[W]X[^]\`s^XZ]^\[]VYYV]MYW`ZUX_j^[Z_^]eW\T]^\_\[d^HQ``X]T^^c_s^TYX[]N\QYg^[ZX\a\\_QX]a[ZYYVj\`a]``\^[]ZZ\jc`\_^`fZWZ[`e\[_a^d]]fc_]]]^^^a^de``^YY[h[]_b^ccb```e`Xa]\\_Rc]bd`]_cUd^\Z]b[^^g[[c\aae_\Wc^W]``]]_ibb^d[_bXg`[b[Y]^ZccZ``ee\`_X[Z[^d]Z[\]b_cefqeec]\aY`aja[^\UZeZZc_^b^_[^^cWe]a]^vb_hadY]]VbaZ_^Uc[\a]c]c]hpr]`]^k\\b]z[WZ_a\a`eUadW_xkVa^zg^Xav][V_WcYcgteXchX_^Zkrg`aIXa_`]J[l^fb^_`Q\\W`gV\Ycwg]`[Z^`F_Xcccc\]dpe\c]fX[`^cgZ`Yc\UdZ_^Y^PU[WXj[ckg[aic[^di[_f\^X`_ei[`bW_Z\eb_afZq`Y]^Y_`^]ameaaeaZU[aXYg][_aa\]c_]XeF[^VWf`XTX]iY_V[[]^cfU_Qa[[^`bg\ca]d\UYVb`X^`[a`Y\[Xifa`[[ddTeabbgWXjWR`fg]^b[f`^YX[dd\`Z^j]`^[a^bQb`Y^[cc`X`gaW[`U]jag[]Z_aY_]]^WNo`]]]]Y^`\hYaYdO_^UZ]]dbV[Vb`daU^`h_`X__[o`\aXYaVe_b_W]`\]^[eZi_]\c[c`j__^aW]bZXZ^^]a^f]\^b`_\Mbf\Za\``q][X`e[YYbd]_`Wa]^a_cc_b`^b\[^UZcX][[ccaX^^]]Xd\e\`^ZY\^[Vg`Y]^__e[\d]_[]]a_^cccWYUgf]l`f`\^W]_^]dc\[``W\ah_Z\\\dX^`ob]d`hb]b]Ya`[_f__^_Y[^cc\gb\]c[dZW`X]W\^V^Vh\b[d\]]_]Z[_Va[\U^]k^VaZ_ZccY\cJc\abc_^Vb_]\]]YZ]`^YY]YaZ`^]^a^\Z]`_ZXWbSeYZ[^^ZWYa^Y[^ZTR`dT_\bc\jb[e_VY]`T``[Z^]kfZfZZN[a^]Ya]_c_\][W_`c[^Y_\e`^^O]Z_]]]`[Z_Z_]WZ`]e^YYbZSS]_`_ch[^Xbb\ba[^ZQ[Z[Z_[W^eeZb^fZXa_^[^VYga\`c\bVf_`\`YR[][^[\]^c[[d]X_\^`ZTX_\Yo^^[W\\_VZ[aZaT\O]][U]\Z^`c^_[_bhcc]^XZ`]Uc]^]\_^Z[]]]Z_][V]][_Y_[Y_abOTY^^Y\R\``bbUc[J\X^a^__`_^eY^[Z^cc[_^`^`Z[_^c`]]]`Z[`_a\\]X_^^aZZ]^`a[Xa^a_ZZ^^`\]W``a_`]^Y__^a\\Y`\c\][d^_Z_[^Za\e]V^_]^h__`[^a^`\`]`[Y]_ad\a[`X^^V]Z^Y^\``_c]Z_b\[cba_^[[_\X[`\][c\]cZ_][Y^g]^_a[^][Xa]\`_e_Z\]_Z[b[f\\a_]Zdc`X]fcU`]_\V^f\Ycf^_dY]VX`WZ\Z]_Z\e^TZacZ_XSU^`_T^^S[U`WVUY[_bZ`[U`ZZ`_X[[Uga_aY`c`_W_[a^W^f]b][]Y^\^ZO^bWYXY\^[V]^fY[S]]_Y_VY^_XRZZc[[Tb\f[UW]]dYWW\]QX][]e_X`cTT__a^][\WYgb\R_\``]WV[Wb_M\SU`_aa``^^[]`^d^]_^\__]`\^\Z\^`Zj^\ccXZ_Zb]d_]f^[__`\d_`]]^ab`_]_Zd\]aa`[]a`]YaZd[`a^`c[____a^biZb]a^ZcZ[^^a]bZdc_]a`_]^Zg__]^`^bY_^`c]Y_aa^\\[a^b\_[]XX]^`^Xgaa\]^^_\^_Z_b_X^ad_]b_caY`\[Z[c]``[^\Y[Ufa[ZWj[aZ`l]UcdgbTeafW^Wdbb]eY[eb_`[e_]`o\\\g]]^YcgcSdZ_R]cP^XZf^Yc[c_SXW_[beU^\bePZSW`[\\[\^eY]^_Z`U\UeWZ^Z]]Z\b^df][aa_dfb`]b^V\\f_]Z^`]][Xdhf^\e\b_fi^iat_Z^Sd\`Z^_eS`b_l_eZg`[bZ_Y[ci]`^\_\[[[[Ref\``_W\[^]\e^`Z[e`[[adY[fbcc]\`^Ze`\Z^_abWm^`TZoY]_Xgb`bf]e`a][Y]\hY_[c]b[`h[e^]\`\`^_\^[c][d[b^^a`^Z[W_YdZc^`bc]gZV`Z\X\hfS^`\^]\aa^`e[`^iY^^]_]fX[`b\_^_[\^b\^Yb\^ce^dY[gf`[`^eeb^YWX]d`[_`bcX]^]Y_ZY__[a`]e^Th^`nkb^`j]YaYZ][^Xa`^Xkob^_`\`Y`g]f\]_ZY_^ZWb_W]k\`^]X^db\``_[aZQ_ZX_U_kWZ\ebba[WZYcb]=WXZ_Z`]PlbVZl\abfZpYWadf]X]abVUhY^a\]TXxs_ca\gX_m[VTpcVY`a[_Xe][bZ^cb`Z[H[[gi_j_ac_b]]_de^]^_cea]`\`Za_`^\a_Zc\_\]aZa^`ZcVY`gW_bWb^\e`[]``[_`ch^`f]_\[[``\]bZ`^_`]ab_c^]`b``\T]Y__^i_a``Z]_iZ`a_d`^c]]mcZY_cb]^[^]W\Z_^^_Vbd]d^Z\\`\Y\^^ga^``\aR^]`]b^\_ZbgYW^ab]_]f\baaYi]g\a[`a_]b]O]TRTb\U__c`n`Y_ZcY__dcb_`\_[X]gZ`]`[T[Wba\]V`]]Z[]_[V]Wf[k[_b\d]`aX`bWXdV[aab`YbabcgY]bTf^Z[ad`]X[^bee[b\S\`\ba\_^a``^_bgb_XbkWWVaZ\]^ie\ZU^]_O]^^k]]]gb`cb`S^ahdX[\aaZR^]Q]Xm]]iZUi[ad`ZZ`\^e\^c[`cZdhb[`c^]``h\__[aX\XaZVace^abae\gala][X`]Zfa^a^a][[Z`dgg`cV_Yb_]a`b`c^^Z[]\d^`j[^chWhk\l_[Zd\`cca`]l[`Zd^a`__bd^YZ\_i[^^_]eV^Zh[\^\fekbd\c_daf\eY\]^Zac[[cf\]_X\a``]\^g`bhb`Yaa]Zadlbd\\bb\abZZa^\`c_W^`b`^b_]ZY^^_[\_g\`Va\\^_`[_\Zc]]ac^^ad^\[_`]^__]a\X[`Wd]`^[^`\[a`_^\_e\XX]\cg_Y_^cX\]][Y\aa^`]c^`Y]^^^_cW]ca[^]e`^`_^]]^]^[]aX^\``X^`[Y\\_bWaX]__]U_]]ZZ\]a^Z]dda\Q\f[[g`\^_^\]`\^`bW_`_\m`Ie]^b_]bXc]^a]l^dO\b[cXh\Yc_]f5\VkcT_\`b^OgZ\o\b`V`gca\cgbbl[Vbg[l^V^offWX]hZk\c[Y]b^V`[^^Z[]fjjYicb`MU`Nd[Z]\V]^ndfea`\[^`^r_^dcbfWgdZ[T[i__\[\c`WicZ]\iZ]b`Oha[TX`fbicY]ZcX`Z[dTf^^fi\bQ\_`^c]dia[W^fc^\_YYY^_\VkVeTfYWZr]_b`WbYX]Z^f[[jRYei]c_ZcVcr^o\YjZ]XgY[_^c`\Wa_]ZWOZZ^Zcd]caY_L^c]`Z\aZ_W^PW_^\c^eX^ZX^eZ\Ymc`ZW[Wh]dX]]md^^ik`igObda[ZcX_aeaXZT][UWZi^_`ufYOZ`\Zm\\ZU[`bc[_VQeY`hgXfcbaY_\`wZ]\_[T\h\cZe_][l[[]l[bg`d`VZWKRYics[S\j_`d`g[kdr7\_b`_Rc^gZY\UMOY\Pb]SVWb][[R`agaH_Xa[Z^e[erdXjZ\QZ]ZU]b_Vf^_MiR[gtdLLc`V`W\foZab^WW[TZYYR_PZ^q_S]cTXN^X]ScehtU:]WF[hWaYYj^WqVbRSbbWZ__]_b]__hVc]c[a[\TYW`We^]\^^]Z]ZX]`]Va^Zc\][Zg]\V[ba]b\XcX`Y[[dWaRZ[^_X[^Z_WcY_][h\Y\UYf\hd`[X\`W``g\a]`]c_[Y`a[c\c_]c]\YYX\_]b^X\\[`[^^b\_[X]dZ[X^_ZT\`[\WXa_Wf^h\VX\Vbh`Y_\a`_Y`]YVZUd[_Y[ca`_``c\aa`X\`^_c^\V\e]a]]g[\\_`W`cd\\^[]]aebbY^`cXZZ\`bPWe^]^]`[R^c^^`W[_Z_ad[a]TUY]`\Zb]a_jcaX`_d]\ba[\^\X][][b\Y\fb]\bX_Xb^ac`_d\]W\`Zfc]_`Xaaf__``]Ydn]]`Z`^bdZa_\\R]W``^Y\]Z``WW\WZ__\__\`X]YW^a]a^a``iWZZ]jb\ib^faXZc]^d\\dha_Z_^`b^b``^fg`Z`[_a^ehaYhaflf_[_^[b[[eecZc^i^]gla[Ygi_`fXf^[]cbab`ca]Y^_][dece\cX^f]\b_d]aYkb_fa]_e\e][\U`^b\a^_Vdb^ec`^Ubc^[`cibd^e`_d`cZ]bYZ`xe`de]_YbYWfY_^]ek_V_ia[\^__kZYV^haW_RmX_[_aW^g^b^\k`Y[cl[XZ_bh[aWaN^bY`[e^T_]_reo^`a\T]cWRTcX`]gbUp[bb\aieab^`naZTd[\^`N[d``SfaUY_bgd_]_\SiYdXeRfakc^]YbhIX]d^_ckjW[][VX_X[bgSX]YYTab[^ciTgW`bT[XVXd_[mhc\e_`^`\_`]``[`_X^a^_`Zb\^]\VcXiZa_c]cZbb^Sa[^\c[^bX]Zc]_ami[\ZA[\bakb\`be]c^b]\\\^a`aZ\[^a]\\\Z\b]\`Y`a\aZ]e^aP`Y^^X_\[^[_][_^\_[iWcobaXe_g_V]_^^c`lbhaU`[_^[bW\]eS`YX[a_Y\[[]Xq_[KZ_Z]daaY\YWb]V^b^^ageX`_b\\`_]]XX[\ZWZZ_[]_]U]hj^[cVb^\`\Z^_Xe[]bYaf\^c^Vc^iZaXWP[Ya^_Z\\Z\Z^b]_\`\YbhV\egU\a_`^[c_Ye\`bZ^_ka_e[dUe_c^[ib[ZUYc]cbhcWfWa`^Y__Xa__Z_[]cOba][b\^^U\`[c_d`\ZYf`_W^[oZ\]`_db]_mR\dYgaga[_X\[^`Y_[b[Vbb`j]__]chZ[`cYaRY^e]c`W]Xgg\Z]a^]ad[d\W]X\_g]c]Y\]__n_^\__Yl_^`ah_df\__]d]]cY^[Z][d]^[Xb[[`^f`[`Zb\VZc]^[_Xec_Xd^`eZg_aafa]X_]a]\fU_^Wba`_[Z`kYZ^ac_b`d[`\^^Z`Z^]]Y]^]gXe[]\^f^\Z]^]S\\^_```[[ab[V\^_]_[_]X^d[cc]]j]b[h_ZV``]Z^[cg]^^\XWTmZ[XdY`X[^XZ^aaY^]`\YaW^fYYga\[^`aYc^[\\[^[dac\Zc_^c^q`f]^Z[^`e\_\\\`Xa^[d\d[cY]YZ^_\[_W\_T`Z_bhY_]XZ`_``b\_`gWV_[^W\^f]_\_de``a[\_c^c_[\Zaa_^[ca\_^hY`cZ_Zc`e_^abXXV`YaU_\Wad[_ZX_fY]bZ_V\e_\\ac^j]_Tb_[\_`adY`_Ra^e\[a_h`bf`[`ZbVbb`]_kb\\[aYcj^Zgbca\da[cjU_`^^e\mbcXWZ^b_[`e]]_kY`Z[_\Z`Z\aaaa^]aO_dbbX]]ja[e_Y\Yeha^dlfb[\cXk]X`acbe`\Z`aa^\__^c^`][_a^`^d`\f\Z]bfe`e]c_^c]c__\]^_`_c`Yf\`Yc\]bi][_^]\^]_a^f__d`Y\][[^e^`adb^``Xd\^[[__d^hb_`^bYa_g`]\]``]Z`^_]cf`_]e^b``Z]``^Z^f_]_]_Z_achbZV[`cWa[____b\`e[aVa^]^]^[\h_`a]\Z_^`b]cX][b]\V[_^a]\X`X\bc^\j]d\\]_Zh]]Z^he\\YU\W\\[bj^uZ[[\c^fd`c^\VNa\]Y\XdZ^Y`j[]Ra`T\d]]^Zp]`_b\_iOb\^`Zb\]_b\W__][_^YW]_]c\[[[^Xc`\aZZab\^_a\gdbd`aWY\a\Y\^\\ak[_^XZbY^WWd_hd`ZUb`Y`d^ZaS_\Ybc_[`i\X`\a__^[]]]\`^dZY]da\b\_^QcYh]dg^]`P\Qc`_]dWi]aebX]jb_bfPa_]d_Z[a_^^_^`bY\`aZ__[ca\b_`e]^^_f]\[bdc\_e]l_c`Y`aZ``VgV\`_\^XWd\ib`^`ah\UZZ\beX[]Y^fcab_[a^cV_acY]_`d\Zd`Z`[]dh]`cXV^a]`^akW^Wa\Z`cY\Yh\^^]]b^`[bZ`ib[^_Xa[dYe\te[b][c^\]e[_iflb]`W]aR]^_X^_Va_\`IX]c^`X[Z^Y`^W_d[aV\]]\][x\\_XX^i_[YbW\^\a_\__d_^ba_R^[[bc\hXUe^`[b`^g_[b][_b^^`baZ`Z]__WW_U_Za_Y`[^`_hZZc_^]X\Y`e]_W_`d[^d]Zc`]]nUZbb_]a^qa\]bee[]ac]X^Z]^h`ZW]T]_lg\_ac\[XW]]aY\x[UcWVd_ZY\hZiSaZ`a]U\W]\`^\aQ\\\YSY[Z^\`X]a[^^<_]W]_cdZ`YdS__`U_]Z[aW^ba]]T\[_aN_Za`\[`^_ab`[_YYUd_d]\Z`U]]^[[^]_]\^e\c\cba[T][XZ]_^bf_YZb^gQ[bbb]`_ce_]Y\]]Zba\[X`]\^[Z[[[a[Xf`a^`Z`ac]]aZd`Wb[`Z]l\aV\ga[a^ja`\]d\[\`[^b^\\[\Vb[\`_]i[c``][[Y_[]`Zc]X_^j]_Z`ZZ]]_[`]`YZ^]_d\\Z\af]_]aZeneb[b\\^V_\[Y][Yb\[\[[_^_`W_ce`]b`cSa`Z]YYX`]d]aca^`cbbc[Z[d]`^a]\aadS]W[\abZX\S^]^`TaXa_\[_]_YU^^`afdefeaX``YUuUbc^cadb\R\`X][Z\YbUdfh^ggZ\Y^`cVm[]]P]]]\_d_ccpbg_a^Xa[XcX[``ea^YR]\W^[___]Y^`g_Y_eZ]b[\Ycbc_diUgSkcXdXf\cc_aa^Nmar\a[]ibb\b``\^e\\`]_XiX_[]_]^[^\`XPgf\RZhhW\_a\\gY__[`dS_Pd^Z]X^ddY^\ee`]Q`aj_dbZiafd_Wc^\]WZ]\dadYhba}\]i`Z[Vb__^a]Wab^`Ygam]bY^[c]_Ybbf]_giahWdW]b^_a^Z`^`cYch[abdWG[^[^^]eUd`c_ja^`aq[d`_^Pe_{X``aoehbbXUZY^^acW`\_c`bT[aa_Z^f`bW]cZXcY]d\eacgW^b_`\b_Z`aaXWZ^hVde^\[c]d^[\`fb_[]Ua]b`[Ud]e[Y_We[_\Y^a]aWX^S\`]]^bd^X``X]X_[hd`c\\UZb][cYUc`_W_Y`]a]_]Z[^^Z`ZX]Z__Vj^Wi`^\\_dW\]Y]\af^d\[_Z_`\\\W[Zc`_]W]\]^]]\^dV[e^_Yc_Z^\bb^^`_^]^ZWfX[_^_c_a[[]\Ua[[\\[__ZYXQ_`Zfb_^\MaVfWbYaWc^Z]_ha_`Z\^X\^\]f]]]cUZch_^_jc`O][bZb]dZ\VcXc\X`RX`][[^af_`[`a]dhi]`X`Y[g`_e[[bZ_``afZX]_c_X`XcYe`\b[]\k[]W^^YaX`_]`\X^ca_^`^_bbmb]d_][bd]Z^\dZ\^`^_]cbgWd__X]d^`hZ^]daeYYZ_`S]`_[Yc`bdY^\aa_^deaZ\][[`_^e[]___[]_W\`bXbacj_X`YU[]X_d\\]heXV`Z]\^Y[][^Wk]\]`X]c^a^_^b^TcYb`[]WYX]\d]\X^^_\Zc[]`Y\^[eYbW[^dSXle__Y\_Ydk`_\e^[aSQP^X_b\_\]X^\eOZ`UVO`[^\g_kbk][Sa__d\a]S_]^UXb^`\e\a^L__u\b`UeY^^]fb\O\Y_`XXWk`aWgd\SZ]X]Y][SiVW\ohT`\\\FbX_]e[\XVeYcZgY_V[ocVW`bZUWhhdUb^id]`Vg_S`bbVach]bTZ`V_P_UqV_b[\[jXeT^\YR^e[UVZXe\Z\^[X]h^c]b_d^f]c\^Y[]hf^]\a^\eYb^bab]b^i\e\_[]Z\T`ihZ_YV^`]e]i]]aZa\`]_dcfcgbk]aWY`Y\a[\`aY_^_\\gcdabY`dd]][b`^^d\\Z\\\jaab]]_ac\agZ_ZSc`][aVaWa_\dU]jlTaZXZX][p^deb_\^eYX[_ga[YVg\e[`\ah\\bT_a_cj_\_]\Z_b]\`_d\U\[Y^eYa^]YT]g^^Zb`[WffZ_Wc^]YX`_[fp`U^]dWfjRZfY\Z\hff`b]if^Ydb\g`\W_[d_Z\[ha\]ca^__\Z`]`i[__h`]_Wc\VZ][Uda\ddkQ[ai]]\j`a^^W[^Y]Wj^\U^Za[d_[b^fkWb][\^dU[\`cdbbbW__X]]W`g`]`^We_[cTbd]`jZQ]\Z_bfQ^W^cZh\YVc]]Ufa[\ai^c^X`\TZZZZtYZYLacU[bg`_Vp[i[fd_T\`g`bYm[][cgY^iZZUed`YSZ`YY[\geg`]b^_[Zf_]Y^]`]\l^`ZRa`ZZXb\_fYaVcV]_Wja\R^_b_jfbpgW`bdVcWhaZeZ[\__ag^Y]iV_W_ZnZX^^^T`Ye]Ye\[`W`\`][Zdb`[^fc^W[\^^^ZW_dXV`^\][[b\Z_^_\^YV]bd`]]a^d\XaY`ka`]Y_\V^YW^`[Y\``]_Va^Z`]_^Y\\]Y]d]^bX\]^]^[d^^Zb][^^`c\``Wa_[c`ZX[\[ZQZ\WZ[\YY`bX_\V][Y`^a^W^\ZYaT`a_aYW\\d\\\^Y`\bd\\]Y`]Y[d_]__[_Y``U[^b^Z^b\[`e[dfY^TYVbWY^Zg\^\bag]c^_ac`a[X_]d]YY`cZl`ajbgXa\]p`[X`Vb[^X]]fd`PgZg_YhYdd`_YZa`ZZ`Z\e^]i_Rg`\edebWb]Yd`Wc[XQc>l]\UY]WbY]^Y\_bZUY`^SJX[We\b[Xa^\Ua^c[ca_^_\[WZ^pZaagxdhbZ[[]Vbb]Z\^`ZU^bTr]ad_adcX`\Z^i`al_f_fXV_`Y[baV\]f]h]`]S\\eZeYYZUZ^h]`[^U^__Yc_X]oZi\V]Y]j]^`Z_`[M_Z`Rcgf^^``YaZfgYHV`Z_XcYP_k`a]f[gbYb]Vi]YX^eWd\]YbW\b\XX]v\^\]aZZubcS_^eTVYhVUbW__\^\bag[T]Vf^Vlbj_]d\Qb^_XW^XbZ_\^i\[aU^U]\]Y]]`Y\XV\cY_fUa]d\Y`Y^[_^P[[]\WaYWgeW`X]W[R[\iT[_aZ\^SX^^][^___[]]\W][W^WYa\]X]JVYX_b\X^]W_`[SXbefW\WTaS`a\_VTcYXVTVS]aMSZX\bTU`^]aU``XR`ZZU[YVd\S]W\g[Y^^X[VaaZY[TYb``Xeb_ig^\^X]aX[`Z\^\aba`V[cZ`^Y`di_^^`]_X]dYW[bajX^W_f`[XZcVblTXZSY[\Y`TRYc\^]Y_aZ\\i]ZaYWai[eY]^aa`\UhV[e\\`c^aZYW\akfa]_dc]a\W\_p_\a`Za_Y_W``Y`^VZXicYY[^_Zi`[ZjYk\W]`Ybe^edSYbdWa__\[a`c_]X_daY`Vb\aY`cXd`_d_]_[^^\[baac\]_[][^\`^]Yd_^`]\[h[][`a`_j`Z\\YZ_]`]a_]`Y_gas]^Ybb]bY]]eed[]\^Nca^]_[bb`_^cc[]X]ad]Z_ac][dha\^a^ZZgYb][]_^_`[`b][Z__oU`Z^``[`a`ia^[\b^^]_[c^g_g`^[\df_\dZZ^aZ\ab_[_^a[[`Z__`da[_Z^_Y`ag`Z]f][^g\XZgea`]a\d]\b__^c^Z`c`]Wb\deeZ^cW]`c``^b^\fia]`c_]a^^gaZ]\Yc`_W_e`^]c[^ibda_ba_^Zf_c``b`bfWbba\[a``c]c_b\^a^a][^la_cag_bbcbba^aZd]]g^[`d[^_]_^^\\cf]\\a\^``b]]^^_\^^_[]\b`]\[^gY_]]b\]d\_Uf`]]cb\aadXZia`]aV^^cihZfe`Z\W^ZY\gZ^^UaYbeW^b_d[V]la^Z^dXg^^agb`cZ\c^^]b^Y^cefZ][Ye`a__a[_\\`U`[W\^V[_Y_[`Z_X]^]]abYk]d^_ZaZ\^_\`Zba__\Z\b^^Zfcbbj_^]XcU\\[^bdX]_`f][]__hbYTW^da``e^^X_Z[_]ed`U[d[ddgYT``ZbY\_\^^\^TZae^h\Y\a_aX\\[gWUZfY]T`ca`cVY[dU^Ua_[[_\_Wb[_^f]\Z^`k]YbX_]`[^^[[\iY[_\d]Ye\_\][eP^Xf_dl_VT`WW_X\cXb``Y][YYaRf][YdcVZ]Z]][aZ[KZVd]d_iYf[aW`]bZ`]``ZaX_bb]\a^^`^a`_c`][a\a\_db^_\aa`b_c_``__\b[]][X_^[^_b[]bb^\di\bc\Z`\_``\]e_d`]a_c_]`b]Z_[`^l]_a```f\ba[_\_]_`d_\j`[c\^e]acaa]`_bYk`\_jcb]f\eXY\_X]^[_`__`_`a^[\^d`\Z]Zb\[^`_b\\]^b`i`b[f`^_f]gaX^]e]]\``\]^][^_ZYbY]`ZcW^f^Z__]__\^]^eZ_\Z\^]aWW[i]a_``_ba[]^Zb^b`^W\\`]aW[WX`\]ad`[\]^a_b]W][]]^cb`^]`a\`b\]e[\ba`^`ZXU[`V_ba_d^dcX_X\V`[c`c^^[`c_`Z_Ya\Z\[_\`c[ccbY``^]_^b\gb`]\[\a^``_`]ba`Y^Wal;jh_Cd[V_^^gb[^]f]Wjcp``h]eb^MOhW\b\Xgb`]k`cN\dXdQXa\W`de]jbai^~deT^^l`beb]^_czVYgkZYak[>`b`^a^\wZeW\fXf__TdhafW[a^]\eUb\aYdq_eVZ[fY`he^ZaWYRW`VeZgh\W`lfaaedT^gcb`^^[kYK\V]c[yZdje`d`\aZ_b_XbcbaX]g`Y\fc[dgb\`]Q^ab[h_``ec^`Wn_^]Y\\S^Qc`bh\bY]_V_^\Z\L`Wa\_bagT`bXbc\Z_]^`Zee__X`adXRfa^[`[X__`[\Y^[[hYD^cV_Z`^Q_`\gYT][des`J]`_bd\[d[g_lHa\d[_X_`U_c]ak`\UbhdkT`[x_`_ZXVf`b]\b[]`ZcbZdd_]_`fW_fn^_Z]ZbZ_^\_ah_a`_^V]c`]\c[[W]X_YZ^_]]]\\ac]_[Obc\_]`^gleU__`^k`bZaae]]Y^_gX_^eX[c``_aSd_ib`_\_a]c\^cb_h\^b\U]^fi^V^Taa_^XX^][\\gTd]cdab\X_]Xd_dc\`[S^\`\_Zd[b___e\eg^^\^V_g_aY`]WabY`cYWafX\c\faca[_\`ae\`a\^^^]Xfb[\[]a_`_]a`dcaZ[Zba\[Z_h_^b^]_e]\_cRhad^\`accbfgebb`^]Y^`^\aSe^Xac^\^_[^^Z_\W_^]`d]`bZ]^]e\YZWah]a]_[ck^`b_\_kgdZ]]\^b`^e[b_Ya]Zd^\^a]hfX[`b_]c`aeabh^[P]^]````[``Y_`_b^]c[l[^R_gVad_ZdXd]b\`_`j\cUTgabT\\WY^]kc[ZZ]\^\b]]bcXY\Y_ZX[___^^``cZ^_ZV]Z^cYW\da][g^ZaY\\\aacaZYW^Yf\fZO`j^kWiab^jOZem`dUbZbM_`ahg]Wbe_dW[]fW_aiiQ_d\U^]ZfW\Xc\Vj__[g]XapdY][`[]cdl\`bYSY[he^b[dZe[`[\ca[b`YaZ\ZXZ_g[`R^YR_cT_Z\]cZ\]X^Yb\fdV[YR\`W[WZRcd]Za\^\c\aQW]Y[T`ba]e_aX``]\_VZZXUXT[f[[Xhej^eU[I\Qa_Z_]]ccX`li\^cdV\ZfYfS]\]^U^dUWZ]bXZ\vW[`V_\^\]VRcVYYeRf[Zb^[bXYTZ[i[QWp___ae^`\aUT\dSX`U`dV`]PYM]f_T[^dOd]\^d^cSb\WXadabU]igbf_aT`M]RU^bSgZcaTdXpb\T^djb`\UhXg^[Y^^]^Xe_cdc_^SW]VXc\[\`XYggU[c\]cg`b^X[fUYUWeg\iU]J]^h`a^Z\^\^X[Y_a]d\][fd[gb`I`_\_oV]Y_cZZ^`SbpY`m__d[_]W]]b`bc]Vb]_`^]T]a_\aUZ`]^a[_bYY\Y`^^YY]`YZZ][`Z]^\__]ZY`V]Zab]^T_d\\bT^a[\]]g`V^X_\[_^]a\\X^\][T`_\b^e^e^c[ZYT^[_V\dYZ_a][TfVWY^\_Z^[\VYe`bS_Z]\^aW\dd^^dffceX]b`a\\]]fV\_Y\[Z]aY\Y\[bZ__\iaba\]_Za[]a_\ggl[aabkl^_Zga^]^dhWdbZeW[bc`Nhg^Tb]Vc`^_[LZ^bhc`_Wfaam\ah_[ia\^__^V_cfgbW\]Vq]_V]kiVY\Vb_ZZh\dXZ^e_m_HcP_Z_`\[cUbTb^bgWYbaX``_sUUW]bbbe[ZQaZ_Yga{n^^`VbQW`][^_a^^`Kdce[ZdQ^yYYZ\SkZWVZgl\Y\`aTgeaY\abWd_^`^b]hY_]a_[X^^][c\Y`eZ`\\e]b_]]a\]\\ebY_b[ce`cedb_^XZ_bZ]Z^_]^Y]\d_\_eX_^cb_Qadcgc^^l]`_]`\\_[i\f]^[Y_d\^ZbibbbW^O`^U_]dV`_^b`]`P[^Y[Y_gXVeZ_a`_[Zi`^]^bb\dfY_WX_Zh[cd\Y]aa`e^^a]`i]]]SNb_\YYZ[e_gJ\^gVc][Rb]]_eaXj`_Y\V`]aZ_^_\aLXXcJUbgX`e^Yc`ah_dZVW_`a]Z_fY[c^ae^_Xdi]c]X[\aW^^a^Ube\d_Yf`P_YYdYi_^Vc^bga[_YfjQ_b\\e^\`\W^dcb]]d_d_ce]X`bccXXcY[`\SX]^Yd\\__[cZjXdg\ef`Y_`Qdd[f_\]\`b^`[\gZ`b[`_`]``\\_\Zec\[`\ab^`^]_\[\Z`a`_[aYZdb`d_a`]]`c`a]^_]]a__^[c\^_]^d_ca^`a^aX`a^`_^]]```^\ba``^_]_[^]`cdZ[]`Zbc^a^^]_gZhg_]b_dh``\e_`cbWac[_\a]_[Y`[^\a___^]]^^c\][\_^ed`_cdc]a]^``a_^_[`d_abR]`]YZ^ead[`ci_Y\Z^abbYcdd^^__fb^agdihY[^fgbb\^c^YW_d]Wa`e[Z[a`][[\b_c`ac_bWadZgXa`aY\`gb_dfb__Xbj\c_`__\cbY\X`beb[_[hbU_^]hc_\Yb`aT]jd_]gZWb^Ya\de[e]WaXghZZnb`_e]aa[`_Z\\a^a`_[]Zb``YY^`[i]^XUa_`T[^ec[[[`bf[eh[]aabc][_\_[[e]cc_]]a[aOcf]^]f`bg[Xb^kZ[ZZZ__aY]^e_]Zg^iZ^daa[`_`\eY`acc\daX^^]\bb]Xb]c^^le\Z^`]^d^bcfZ\U[V[\^_ia\Za[ZUdgecbV^`^f_Zddgb`]\]d[]]^_b[^fdb``[]d`^aZZ]cca[]YaYX\[d^V\e]^H_][WaaY]e\jXZabVX]]^^^^]a`Y^db^_]VM_ac[[^c`^`[hYYcS]\X^[_Xb]\YcT`^r][]\Y_aZb^V[__c[_cZ[SaQ\\a[ZbX[_`hVabV^[Wa[WZb]K`kPX`aYb^[V[[Q]fZSaahZkYaa`c^\b__^`]acY]]\V^Rb\Za`eU[VZ_c_cZ__]`[`hca\f\_ca^[`d^[T`_\_]_maaebbf`dbeQZ_b[db_`X[`b``\b]]]bW\]^[`_ce`Y[^cU`Vd_XT^]eZWc\Z]c`ac_c_``Z`aaXcea]X`WZaYa]\ka]_aaY]]abVfa]_aa`b^cV`^U^\d[hchf^^]c]dc[bYYZY\a_^a\_eb^Z^X_^ac^[]]bac_^]`\]^_`]\^_a_]]]_`__Z]a^`^^^_\a]\Z`^`^`a^d``^``_```adca[_^_^e__]^a_^_[\^_^_\`[`_a^]^ac]^`]_a^]`^_^_b^^]_a_\\`_^__`b_^aaZ]]\^`^]_]``_^a]_`^]]_]]ac^_^b_Y\[]b__^[\^_f``Y``b`ca`ca[\``^_]^`a\a^^]^]Z`_\[[]_[]^i__dbda^_[^^d`\c^^c^^\__ab`d`_b^\^]`^X^`cadb`^]\]`^cbcca[`^`_^\c`b_^^_Z`a\^a`b]]^g^__Y_^_Z`_`c^f\ba]^X^]`Z^aZa^`c^aa[`db_`\ba_`a^^]iaZ`adc_^[d^``Z]_]^`ca_^]X`cdag``Z^_^][^_b^ab]\]_`Y[^]an^Tc`^daai]_e`dh`b]d\Y\]c__a^ZabYf[`geb]\g\`b^`b]_\k_][_eXYU^`S\gW\iYhdY[YYdbf\bah\Z[f]e^`a^[bffa]`[]__\bXUSd`b]bdcgcPsbaX^aggeaYa^a_dbeVZUibbhjYne[]Za``\j```][Xh^XS^`]eb\[bTYbRcU^^fcda^Y_^d^c\aaX]abba`_\l^cT\_j]Z]ZdZZdb^_^]\`f]^c_Z[]\dW\fd`Ybc]V`Z^]a^dd^`__a^`\][]c[`^`^\b]eZ\^a[c]Y\_b_`WV^b_eae^a][[_`cbi_[_]db\^bb_U_]a_ac^^a[d\_h[\]gZ[`cZ\]d[cYccZ_ca^[^`^Y_gaVY_V^]aakccabZ^b[a`c`bZlY\[_`a\fa\\S`WeZjWdgcYic`acYZ[^^_b^^[iX\haWVW^]dZi^]Y_[fYWY\U`Td]me`X\dY^b`fceagdg][Yc^cW\[[m_WX`^`aYe`d_eWcX`\iU]ccch_][`bX^b_Olg^WdVZecp]YWc]^[b\[mah`_kZ`ckZi`b^^W]]cSca\`bZ_a\_]e[_^^ab`\cka[\b^XgYY\\cd`aU]^`\_WgXfi_\cdch^e]Yee_^[H[gWb]^][^[b_[hOgakdkViY]^db^lcY]_a_Yb^`eah^]`h``^c\]cabh\[YXdeeZ]\eWkb``Rle`X`]^ccae\^V__XZV^`bch[XiaYjib\\\a`idYmbZ__ZYaakcdY^h`dO`]fbcggZ^fghfd^c_]^a`]\^`_]__b_b]]^]_^`_`^__`\^a`_\_``__a_^`ac_\_`b[]_`_]_][^a^^X]`a^b`\^__`a[`a[]^^a_]\aX_\b`^_^`_\\^^]_a]__b`]`a^][\]^\b_a_]c\d^^^i`]^^^a\][a[a\]\_`]c`\`^`^b_b`_]e\__]b^caab\^_b^]^\^`]a]c^]_a\aU[c]^_^a^Z_^\a]`aa[`_]_\``aceYY`_``^\Y]^Ue[Vb[_fbY^af[a\]c]a^_]ZaZ_W`Y]eab^^[^_]^`\[]bZY`Z_]^_fZ^Ya^[[Z_]ZZ_\^[\[e\a``f`\c^cb^_[ZY_]a[]]]]Z`a^]WY^g[dX[dY\^a[[_b_b]`[e^Y]f_\_\_a]ac[bW^_deV`fZc`^e_\\W_ZZbZ`^\W\[Y[f_^_]e[]bZ]_f]`^_]\]]]^]_\[Y^ca]b^^[[\]a`^a[\`^V[\]cf^c\f^^^\ZZZ[Ya]b]_a\_``a^b\a^^]^g_g]^^\^^[`__]`_cb__\\b\^a_\`a]^_\Z`[]a]Y[Xbb`b_\[]_\[ZZ]Z_Z^c[aa^]][]Y^\^c```e_[a_``\^]d`^d^e_^^a^[_`[^_`^^\```^_aa\___Yaa[a]a`baZ^`_[_]a^]`b^]a`[b_ba\]__^]_]`\_f\`b[_b]`Ya]c`]ea\cb^aa^]b_`[`^^Z[^`][```a]a`^\^\d_]`]ba\^_b\]d^^a_Yac`]_\\]Z``g`c]^ac`^`Z^]d_^]\a_c`]a_[_`a\^Z__`]^`^e^^^\ebd_a_ac[___aa[`Z`\]b_[[_`c`_]gab\[^\]]]^bg^\Yb_c^]Z^a\\Zb]_\`^a^_^^_a\\_a^]]\`a]]_ab^__bZbb_`_[bXa]_W]`[^_`^[a`ae]a[[cY`dZ[\Z_^`^^\db]^`___cZ_d_^_^^\aV]^bca^^][babe]`W_[_]\_\^^[]__c_`_c_acX_b`^_aZ^`^_Y`[b\]c]^]^_ZZZfh`ceb]^a\``]`cZ][_dX\d^]c`_ba\][dcd`a_[``\^a_Za_bYZ\a^^_a_\^a][`Ya]a_]d_Z^db]a\]_]_[]_^``_a]W]]bg[^_]`^c^^_d^`_`c_^c]]`^Y[[]`]b\b`^a_gZ`c^b]a\b]_\__Z[`[[_``X]Z_bcegnY]YXgY\ekaXGY\[SgfVXZTYQ]bWY\Xr]]cbW[[Pg[h`WlUnTaW\\YWcd^hY^g]d^_[_^gZaUV^`^_VWHXZUdc`YTj^][[_a`YglU_ZdS^[Td]X[^^eflbc[_ST\neW\jdZ^Y_bZa[Ze[b[[^U_^_[[S_m\]ea`VaX\^Zc^aS[C\Y^ZS]a]]bZZf`f``_`]_`a^^]\_Z`aZ`_\^_^\[_^][_caac\]^[`d^[]_`__^Z]_`]aX[a\]Ze\_^[V^a\_c]]_c[^`aa^_c_aada^\\^`_`__aY^_]\cZ\_bY_ba`^]]^ce\a^`_^Y`hXb`_]\_d^`b_^_^_c\a^_b_`]`\]g``\^]^Z^\c`_b_^_`d]\b^a^Z_`]b^a`a_`^_h^_c\^a]a_]ab__^^\_`^^f[_^\b]^\cZ`_b]`^_e``]^\_abda`^acW`^`bca^Z]\c`\c^`a_]aZY`__b^`d_]`bb^_\a_bQ`\bb[`___c``b^^_]]^_b``]_YVbac`Z`[e\^_\^^]a[_aY]YZ`c\^_\]_]_d]_^c[`Zb\]X`cX_]`^^aabb`_\^`_`_Y\^^[b]^b_]^_``_`]Z_]_`da_bbc]_[c[Z]b`_dc]`^_]\_^`\`]^_a``a]]db]c^`^[^]Z]f`]^\]`^]b]e^\ca`aa_]]a_`ab^^`^ZX]^Y]^ba_]]_`^`]^]`_b\]^Z_`^^\^^^^^_^[_i_]aa]Z^\a_[b\]_`]]^__]_da\c]]_]_a`a][aaa]^_``^`_a\`ad`Yaad_Ybec_]db`Zd^_```]b[aY[\bcaeb`_[__]Xb]c_af\^^^cXa[d_ce\]b^aa^Y]\]_`]]\Z\^^c_Yc]`a_[_X`]]Vb^^`bfZ[[Wdd`\b__^]Z^dZ_`d^]_f__^\`]b]^c\e^^b^^_``Ym^c^[ec^bbe_Zi`\^a_e`c^^]`Y^^c[Y^_^^\a`aa^a_`Zf`]a^[[a``cb\^[]]\`\a[laZ^^Y\^\e\]Zb`\_^b`ea]caXad]Z_ca`[]_`]\^a^a\b^a[j_acYeb]fi__`_^c^]`\`\]b]`b\Zg`X^[`j]c^f^cka_]bha]^f^^ba__`\]`aaf[`c_`\ad^^i]cda[X\`^\`g``^gU\^]_\VY^\_\b\a_^\^b\^`[^_`^`\b^_]a]^aa^bca_^d]aad_aZ^^\aa__^]`dbb^_^Z]\`_c\`a^_b^_Zb\a[a^`_`^\cc^a\[c^^\[]]^^`aa^^a_^abc`a]b`Zb`^^ac]^^[^d]]```\Zf`]b\_a^_f]Zbeb_\_`eaW_bcb`b^_d`a[^[``__aX]__`ba^]]_]_aW`\_]bcZ`b__]_]d[a]^i]cdb_bZ\]_cZ^LcYba[]L`cX`\]cZR\WfW_]S]b^Ma\\eWldigXWWe^P`][^\]`c\[]`Sd\]bfdY^\`e\^^Zb\\][S^[`_[YU[_ea`\Z`Of[WY_`lX]cb_bZb\da_^]RnY[\b_\^Zg_a^bb_V]XW[`eXaSY[[cZZU\]\c_bX[Y]Xd\a]ecX_`Z\^Yg^Z]^_[`_cdb^__`a]]\d_\_^`]]\`^]aa`\ac]`^]\`j_]b_[^`f]b^d[d]``c\b^]\]\]^c]`^ea\bb`[__f`]g\]]_]__]de^_`]g^`c[ba`[\`]``]^_cZbcaf^__c_e^a]^`d`]e[[__]\V[]jfZ_d\c]bb\_a]`\]\]\da^^]\b_aa^b\][\_]c]Z`ba\b`f_fp[bSPk[QboZXXeXY^\d]]^YU\[b_]aZmY^XZ`aV^ab[UPd[__^V][[XVbZ\WTXYaUYXY``]lW\Z^`fUO]UWZ]caWXb`Y[\TX[WdY][ha\QWZ\\ZS^\Ynm^[_ZZDWgZXgi]Z]SZZ`Z`R^bdQcgWYX\\[V`UI^^YXWfgU[W^c[_YWV^^\Z^bdXabU_][a\bd^`[Z\ae^`Z`gR`]`aa`b_ag[\[]X`X_\_][`_[\bb^e_h_h_^\c_c^^\g\_a[Z\Zd^[`fd_`^[]^a`^\^baaa\^^\`a_]^^``\`b``_^Z\^_^]^a_]Z]]Z]]Z`ceX]_U]Yca^^b^``]b^\`c`fjX_^\a_Y^Z^\_adbe]\\\`bc_`c_^^```\[OcccZ^eb_`^abcZ\]]Ya\_\^`\\][Z[a\Zb\_`_b`^aa_[__]^`c[`_a]^]`b`e^_\`\`bbZ]_[`_]^\a]a_`bbca`c]afcbdc\`\`]^^b[]Z]]_^d^eal^ac`^bY`^_b[^bXc]\W`_`aa\_`]^b^_[`__^Xd^a\^^`\]^Yb^f`]]^d\^]^[Xe`i^`_a_^a^]`]]baY`b]^[]c_f]SYY[\bV^T\_^Q^V`ZcbiabmbeZb_]k_]b_j_a`ccb\WfY]]WT]ga\ZgZ`]\daW\dk[_Z^Z^g^\^kne]d\Z__cYhaZ__\ZhT^a_Z]W^db_a^Ya][T^b]Xca`Wa]c[_Zeca_[QfccW\ZZcYbYZc^i\[]b^d^\a_bV`ZbXZYdkhe^^f^g]_^_dRW]a`_]_c]_b^_^a^a``\_]f_]^]b\^\^^^Z\\b\_]_a^[e^_Y^ba`c_^a_dZ`b\`a^`Y_Z_a^]\^c`^bb^[d^\]]_`b`c`__`^\]X[_[d^\d_`][ba^\Z[_`\]][bb_a\``__]^c_]\]_]_\b_c]ab_[_^^^bZ[_`][^_]]c]^^]f^cb\b_``aa`]`^b]a^\]]`V^`d[[YY^W[e]`]Zc^[]d^`a^]Z_\``Z_\]Z]ai]V^_c]]Z\YaQ_baY_d^bl]^_Y^dZ_^ca[dZ\]]_[\b]ae^]_[aUc^d[^c`baUb]^X[T\]_W^b]a_dba^b_a]^]]bTb\fb\_``^^c\[X\]Zka^]_d\[^_d`\`UZ[c\Y[XZ]`a\`_c\^^]ff\\^\Zfi\[c]_]c``[`c][_a^^a^``_a]]__`]`]_e]Z^^`\aZ]]`ad_[]\`\^_]a`^d^^b_]`__`a\^a]_`^b``b`^]f\]`]a_bbU^_]b]]]b[b\`^Y^`__]e]^[][b^d`]_``^`[b_^_^]d]__b_]Y\beaW`cb\`Y]]f`\^_\_^_][ea\]\`_a`^_d`_dca`a`]][^a]^^^[_`^`^`b^\eV[^c]__`_X^^^]_^d]dcfk_ab\^^`_c`[]^Z^]`fV_`cXbc[^_V`Yi^d__`Yaba^c`\^a]W_[_^_aZ__Zh^ZdXcg^c^d\bbc]a`][]_f`\ab^^[c_e]\ba_Zd`]```_^ac\Z]aa^eW^[^e`__b__^b^]j`b^Z\]b``^^_^W`^`dh_b\b`_`cZSdY_W^\j^W]]___gYb^eej_ZbVT^\S_[q_`fSZaY^[a`R`W^Sb^[rdSla`\cYZaZi_^V^ddWY^^^_\[d_o^Vc[S^X^d\[__cjgj\_^[Ial[ao^heZ^bXbf\aVW[^St^ec^q`h\dbV_fZ\eS`\feW]^``_]cb]YbM]kd\Z[Z[\af\aeS_\h[j_]Yf\b^bbSa]e]V_f\[Xd`^\kj]b[Y]]aYa[b`_^^a`aUecc[^[Y_^f`_YVg\^^Wc``Y\j``[i]\WTY`\`aY^``e^Y[`_\VZ[[a_\X`W_[^`]]V_^[[\]Xa`^_dW`U`dc_ab^[eZ`VWZZl]d`Z`b\Z[^k`c]__Z\dbhb[]_\a^`_bd\cUXc]Y_U`\Xhd_hXa]^nWc[^`_]\]a\__`]`^ce[]acc]]\]^`af^\\^Z^_^]`aad_hbbb]db^[b^d]_[^`^_\_^\\\d^^[[\_^_]^__a\[b\\]`^[`aW^a\^___[\^bc`_^]\]d_a^b^``^]^^_][\[a[Wa[_c_]`a__^]g_\_X\`\^]c^_\]aX]b]]^g`_`b`\^\b[`^f]^a_`ca^b[[^]]aa^bbeV[hYO`_d]faX_icjS[`ide[YS`]Z[ViZ\b?^ZcTMg]iZec^b[]eh_YV`^^^Kf`Zd[c\S_c_WU]ac[b\f^`_jU_^f`[dX^_\fn[ehTRbjabZ]a_[`kiX]uacdS\]RnfeV[gc\\VZ]ic]jH^koY][e`^_^YfWj^a]blYHh`^Ydj|_bY_^c\]^\Wm`Waaf_YZd^ZRZcX[^eaik]]a]]W\^^]Xn_ZeXkY[ek^\a^I`e\a\[aY[qcRhSZS\g]XbaQT[VVX]YX_YV^]]]_P^cTbc`Y`ghhR]bZbfabUb^S[_ZV_Z]ZdVZ^blV]heY]beTFg`[]_fU^^OUnabkkQ[ZY^T`efY[ZV]^ehW`ZdaWXa]`iciYBZXc\^a`[jgeQ`\^^_^^c^[a]]aa_]]_a``a]^\d^]^_`^`^^b[a\d^^`bb^_]^\[[]a`_c`b[c_[^b[Z]bad`c_^cac\^]a``a`b_^]\aU_\]\]dee^_ab]`[c\_^b__\\_b]__\``]`_c_Ycca[ac^[d^]\]a_^aa[^bX__`_]_d^b_\c]^b`b`^aab]\`_ab[c\`^c_]^_Z_`]^\]^]bc``^`^_]`ec`_[`]\[a`d_[Z__]^a^^`\`a^^b[_\]][d`]c]`_``b_\]_^ac]^^Z[\_a]]`a\^^``_\]]`_^ba^_fb_\]c]_b_ba[Y^d`\Zn__b][`]\\_Zc\_Wa\\_a]]\]X^ab^^^`^ad_^d]__\`e]^]a^c_b\`_^cXac[Z`Z][ddca^[_]d`_]b\_b[_][\^]``][\aa^_]_b^`Y\cc^Z_]g]`__g]b]]`b\Y_^b_e]]`_e`]___[c^`^_``_]]`^_acYc^b_]\]^b^]]___a]`]_c`^c[^`d\``bc\^\`a^e`^`a`b[g_b\c^\a^c[_`aZbb_\c_a\_a`\_\aaa``]^b``]_c_b_`]__[b^^`]a_Yc^]\g__d`afbb_`UT]b[^Z\bhZ^a^b[_][Xa^\a]eZa^f[]`_a`YafWZ[c^\]c`Uh^U[TbY_]h_a[`_c[eb[XVbZ`_d^\i^Y^_ad\Z\Wa``\^[_Y^]jZg\]_^^U]Y]a`aVddcY_c\U]clka]`a[YY\^fZ[cN`[XZ\_`^[`_\^WbgZYhdb`]aibT\_W_c[`_b^X`ha^d[a^Vc^Y]W\_\YW[_co]c^gcdj^a]Y`^Sf[j\^ef`]Y_aiadYYYW[`Oah`[YlX\aYtecQ]f_``Z^da`cZ^__O[Qc[_Wbeaa`UZ\l\__ZR]^\Z^mUYtc\WX__aU]V]]dZ^`]fbhb_c\Re]gFUd]XY\gS]h]fcdad`_cRehi^j^\eWZabbe`dee^^_Ya[_fc_`eb```Z_\^a`_^_`\][a``ab_aYdW_``\]aa__^_a^^c``W`]]a`[_^]a_d^`]ba]b_^c\e^[ib\\[^``[\e_^`]ea^X_`eb^]\abeba\]d_]c][^a^a]\a^`aca`^_`Zhb]][^Y``^e^_\_[^]]`_b]a_^`^\\b^]aa[]_be^]^]]`]d^``\^]]`_]b`f`_`a_^^T`W_`c]^_X`]VhQ\]a`cZeZ^]`\fkdbil\^Q]Ta_cf\c_WUa\`^f]Zi\`fWbop_j\X[akdb^\aZ]cf]`]hfYW^bZ\^f[`]^bYTf]]j|\[b`[`Yd_MWcbWZa\\^^gwQcX]bffi]W^a]Pb`e[]S[^\a_ah^Y\\^aibd]\|d^c^^]Wb`gbdX^\[`_aZe_c\`_^```Wa_ab_^]``]]^^\b\c_Y[Y`a]^[f]a^fa\`cc^^\b]U]]_a^^dc\abZZdV\]^bi``a^acf__[`b^[`a`]^\bda\_c`cdS^\^`]a^d`aaa`\\^aa`_\__a^^bbaYbicZad_]_\_]_X__b`]\]V`_]_\^f_ab]g^\d[b\\]ca[]b_ac[d^_Yb^__]]]_[^\\\cba`VYXY``[XZX^YU]S]YW__h_`f[c\]`Y\^c\\Xd]_ce\_a`ei[`ebXdac^L^\aV_T_d\c[_cZQ\\\^`Z]ce`e^\V[`Y^]_]YcWa`[]]Zgb\X`_j`[]bTaYbUbc\a\^[Ya_`v^b[[aaZ^l^^f_f_Z[a]XfZ\]^a]\^gb\`Z^[]X_c\[_gc`^^_^_`[a^_]]a_\\\ac^\_]]]__\b`]__^_b[^\`^]\^]``^]_^`__^]_Z\_^a_^bZ_a`[a]a^^[^`]_b]a`\\]^bbc^^\a`_X]``^_`]a^aa`\b`\^_`^]]\`^`b\^^_\\e]^\\b^]^_d_[`]d`_[\\`dab^_`]_`_\^__a]`]^__]`]\__c[_\]^``b^_^\\``]d_^_\\[ZZ`]ab[_cc[U]`YecbZ\WgSca\\d]^dfaag\^[`g^\ah`da``j_`b^bM[\`[ca]cZd_Z]cd`_]aefb[bbZZ_a^ab\bZb_[ba^dYcaY`YbX]e]^_fcV_d_fbU[_[Rf^Ta_e[[\_bl`b`f^_f[cda__Y\^`chXa`^ad\P[^a`h`XaX]aX\]]`^X`\[]`\a^`^aa]^^a^a_`a]__\a^^^_^`b]\_`^_^^b^__]a`^\^`a]^b_]_^a\^___Z___^b^]\]^_`^]_\`^][^_^][]`_``_a^__`__a^`aa\]]a]a^`a````^\\]`]]^]_]_^^\]]^]a_]_]_]^\[_a__^`b_\_^^^[]_]`__`\_]``_Z_]e_^^_]ab^`^^aZ^Z]a`_``b[]_]]`_\]Xb__^\\^_]Z`_[\`]a__`a]]_`_`b_ae_]]aa__b^\__\`_b\`__a^^]^`]`^`a_ba`baa[_c^_^_Xa^a_^]]]_``_]_Y`]`_a`^_[`\```]`]`_j^b_`_a^]_[ba]`^`_]aY\b`^]``_[^\_`_`a`_a_^__^]`ba^^`b]\^\]_]`_]aaa^\f_e]^Ycaa``bW`ha\a_\`ebi``]]Z^_Y[_]c[Z^_aZ^X\_[S`^_]][c\ifXWZ[b`\`_e[a\]_`^_cf_adb`c_\\`]ad^[eZ^d`\Xd^Zcebg^cde]jdVfide^g\c_Z``fbn[[\]Zfg^l\^W_a]ah``[]]bf]VW\`\]Z`]]^cc`c[ba_^ehfZb]__`cg_`c_ac`_W[[]`b^_d^l_]^bY___c[`b\_\^^_]d\]\_`]`c]ab\]ak]]ba_[^]^abY`Z]^Z`_]^^]]b\_aZ_`_`]___b[`]``]``_]\`e`U[Y``Z`d``]`__^]_``^_Za[_^X[^]i_[c__^]]dZab]]_bb``^^]a^`ca`_^`c]c]_\cca\Z[]`^_a^_j_\\]\ag_]Z`\``_aa^]]`_a``_aa^\a]`]\aW^a`]`c]cb]^\_bcc_`_bdX`d_`^^\\_^`_[]]`]``\_b_^^`]a\`][c]\^_[__^`\]^c_`\e^`a]]Y_\`[\^]_aU[_]]a`YV][^`ZZ]a[^\]a\\__^c^c[ZcZZ^c\\a\a^[`\]c[Z^^]]bc]dW_[]]a^^_ZZed^_Xa]b^[aa^c`_cfY]ZTc^^_`[[YcXa`a\a`h`SZf`e\R`]ciZ^\][]`Z_ebY[fM^aX[_d\aabn\\^b__b_fb^X\f`a`_[`^`db`[a^fVba`aj`dc`dj_f[[\`fbc`[X\\_^Zfbaed`bVe^][\_cg^`^WaZ[[`bgd`__^`bZa\c\XjbXhW_\aZ`ciaZ_T^ZV[]`d`d^a^\g__bZ`f^g\\]`^a`e_bbecV_`c\\gcidi]_d\^f``_a^]l[abXY\ag`W^X^^di\]^[gbgZc^][]^`[V[i^]eccT`_f`d^Ze_be`\]Ob\]^Zc]cbb]`^_Ze_c]KZ`V`[c[[_Xca]]b^e`ZZk\`a[cYbV`]Qa^Vfa\R^`b]`YeaR\Zhd][Ud_af_`\^ec_X^gd[^d^fbZ\[Sf\^`e[^]\`^dbfdjWkhb`[gdb\`n`aW_^][ahX^`_ccg[``hW`j[`]Y\`]bZ`[`l_`g^geae\\W^[d]ej]cbZpV]`ZbWZYf_Y]c`S]dXYc]W`c\hV_\\ZWed^]tZ_c\i`]WVahe]Xb]_[_^fWc\^d]e[]`gbXUajZ^PaXZdd\^ae_^eepZfg\i_\^acad^aYZX\^gXa\WXX^f[]ZW\^Sba^a[d]WTcYfbi]b\_W^[iahXecXa_[ba]b]XZ][^r\hfadgUYbW`bl[VZZcjaY]c^ah^Y`^][_]c`]eZ]cU^lTj]\`Z_[gX`\ZaW^``_o[T_kV]M^WZi[`YcaWf\p[aXcMe]]_oTd]e\YS`h^\eQP_][a`W^]ha^`[_^a^b_`]^a_^^^___af`_b_`Y_c^\``\^b^Z]b`a^_a`^\]_^a\_^_[`ccaZ^Z[a^`c`\][\d^^]`d\^^`\^`_^^^]]_^c]c`bY`Y_a]_[\^]]cb^__`]]_\e_b\`\Y]]^`^`_YZc[]__ed`^][b`]_Zba\`^_a]\]`[]^Z`e_b]]]]^]]^]c`^`_ZWbgd]aVX\Pb^[aZe]W^_Xab]dY]Y[bWh[d^]e]`Z`Z\[[U`___]_Nckh_\kYcgXidOc^\]_XW]cc]d\g_`WYd^]ZZkaYe`\_^dk[S_bL^Z_nb[gm_`Z]a_iP\^gdaaZb\`]aYXd\^gZbTXWW^iXX\gbc\c[]Xas\Yrg\feZc`dXbYYl\^hc_b^\]Ze`f\a[^a`__\_^^^\^__`\^__^`ad^_`a][`_\_]^]\`[^\]_`ba`]^^[_d^`____b^___b^]_]___`][_\\c^b^a\[_`\`_^^^a_____^``^]__^Z^b^]]``Y\`]d_[]``aab^ZZ]b`]__^]b`\_`_^_c\]ac]b`__`Wa`__]a_]a]^]^]`bd]baa`^]Z_a]a^\]_^c``cW`]b`a_e[_\b\^_``f\eg_[[a`][baa]`c`Zb^aa]aab`^^]^[^^_\d`ZdW_`a]aX]cb`]]]_]Z_]d^`db]^b^\][_`aa_c^_bfb^`_]a^_]]^\^^[_^]ba]g[ea^W^_[aa`_a`bYe\ba]^`e_e[]b]`_\ca`b[]bcc^d^^]^af`]^`_a``Zcbb^_]]]_^d]\d_^_\_c_aa^c_[```^b_c]`daY_]``a_^`bc[c^_`[a]c`___]_^^b^`daa__c_Y^`^db\_c__`^`\]]X`^ba]b]\\^_]]b[_\`Wb^^^[_\b`aab_`\_b_`]^_`_]cda``_^^a__bZ__ad^aa_`f]\```X]`\^^b[`]b_^aY`[`]ca]]^^\`_\bY_Z]a`_^]b^ab^`bbb`_a\^a^^_ab^\``^\a]_]]]]eb^]^[__^bb_^_b^]_b^c````a^^^]_`^Y^``^a]]^]a^^a`bc]_^`\`a`[^[__^]a\`X^^]b`^_^]\a^^[`Y[d_c_cW\dZ__^`_da]^c\]ac]dbc]]^^d^`[a]`a`[a_^^^^]\]c]a_]^^]^]c]\\`[`_^a_f\]_\^b_caaa^a[]__\d]_[[a_[\d\a_d[Y`]a_\`\\]_^ba___cZd^\^b]`Z^]a__`]b^\]^_Zc^]^`[be_`R_``_f_a^bb[``]`]`e`]a\]__\[Y`[d]]ZY__a^[^\fY^___`^a]_`[]\]c]_]b`^]_aa\ca_`a\_]]e`_X]^[]^[`a_`\]]]`_dZbaa^bc]]]`_]a_a\ef`_c]b`b^ba_Z^`^_]`\^`^\Z]]_[[e]\_^c`^_`^]`aba^``a^b]`[``ZZ_aa^]_ca_\_b_`]_]b]``b_c^Xd`]^^`\_^_^`^c^b_\\e`^\Ya^a\^]]\_b_aacac\adcbba]_ad^[\\aaY\^\\`e`^a^c^bab__a^^\^a[_a____^d]c`WUXb[cc\[ZZe`bWVW`^d\]`dRcX`dfhYg]\Ve[^]\b_[b[SZ^acVb^XY\[W_[]ba_Xd\ZhbZ[f^\WT_`i_ggacb]Y]d\X]TWY]^jXRY]ai^\ibfK]c\ZWh\b_Z\YP`f[Q]s\S^]W\aY^e`b`ZebZ^\e_Z`Yb_k^]Zdbkaa^\`_R\^Xan`a`\^ZdkYb[g^\]_^_]f]]Z`^`\^_c^d__\Ya``\ccYa_[[a]]]\[]a^`b^^^[]\c^Z]\a[Xb\\bZ_`^\^aZ_`b`]__]\a^^ab[_gc^^f\bXZ[^b_`^[c^b^a\\`_[\[[[_^_Z_bZb^]`a\]a[^daZ_c]]ab]aV_][_Y[^_`_`e`]W^a\]]``a]_YWc^`Vba`^]cZa^a]^]]^_]Zdh_e`]W\ZX[\cX]biY`aUh^dbaPYUl]X\`^`P^^dYec`sV\[PfcdYW_YYw_\_Ya\e`\aZTRW_[b\^_]`^_Ye`YWbdV`aWaYcW]abb_ZRefe`^]W\[^f\ddabbfT`[gb_Vafeb__]U_b`[^cUZc^]Z`fbcikZf`a_^SgaTao_ejbmXO_`[[^_`\W^ZYc][_c`\a_c]^^`_]_[cbZd[_bZ`n^YY_g]bZXj^\\bc`f[]ZWa`\[[bZbUTYZb[i][^`Z\fk\W\\][[i]\^Y``b`^Tc_`[g]]hYY^_cY]]_\]]`dad[`c^_]Sfai^[TlZePj]\accd^pbfb`iUZh\]YX\YZ[^`j^Z^]]b^bZc]^`_]jcXd_c^_ZZ[^[\_[^be^Y_^a`c\[^^bc`]a_^\a]_]_cb^a[__a^[_]]ab_]__\[^\^]\\[^__X\^`ac^b\^aX_`\_]a`Y\Z]\^]bZ`^c_\`_^`]^_aZdbbh_]b]a[b]][^[]\\]_aY`bd_`a_[b]a`g\_\Xb[d]^\`a_^\d]]]Zb^c`_`_`^`Z\\b]ba_\^aa^_[a__[]Za]a^^`]\^a]_`a`e\``d\Zad][_\\[^e^]^^WSW]\_]ScZ_cZa]`\`[]Y\c]aZ^U_[X^Wg^^_`U\^`X\]`Yd`W\h\Zc`\[][`]c^_^W]bZ[[^VY^^bi`e^c`[_\]__ZV\X]c]eb[Z\Q\dZZ]d_[\[VbZ]\Z]\^YfX_cc]Yc\_ZW^`_[b_]\c_^cYccZbY`\ZV^_T_^XY[`[Z`aWZ\`][[^[`[bd`X]Z[Ud]Y`Z^`[_ZY\`Xc]UZZ`]V\_]_X]f]Yd[]]a\[^Z[lR`Z[^d_aiac]]\^Y[\^cYbng^d^bW`][]e\gcXbXYfah]\W^^`\\`c^Yba^[\^YgYdcZac\^^b\^f]^Yc`XZa^`Vb]b`]YbeaXV`_a]c\_`YbY\QYZ\[_[_^\bX^Z]f^]a_[^^^_^^da\__ad\_^_^[]_`]^_Y`\b[c\`a`a^\^]cZ\]`ca\\Y_]]_`[_\^Z`a^^_[\`_]aZ^a^_`[_]_\\b`^^[]]``a^`ac_Z`c\_Zd^aab[a^_`_a]][[_a`[b^^a[]`_^]a\d]]][]a\^cdc]\\aY]cX_`c^^`[__f^`_^__^^`^ad`b`\Za^]_^a^]\jWb\Xb[aY_fi_qWc`ai]d^aUS`[UV[jaUZX\_Yga^ch]aZe`^ZghV^a\g\]ilf[]b^Z`_[]f\a^T`Z[b_cdb][a^egZ_bbpd^bec\VZg\d^^eY^Z^]egQ]XVXbOlZXQ]c_g\bXdTjP^`Y`^]`Z[fch]^^]^b^Yiie_]h^Y[bg`b_[\`l\c^\X]Y___cb^W\YcZ`bg[\__`YT][^\f_b_`[cXX^fYb\aVY`Qa^Xai^eZV]YP\s^Z^]bciZ`Xcb^beZV_]Y\Xa]cdai]qZeld`\dX\_d^Zfkibf]\VhcZj]fb[^daaeh_]U\\]]dUd`X\WbW[Ta]e]]`]^^[[_cWc`Z_\^[bTcac`Uab_k\]`^UVbn[e^geah_Xa[\YX[[[\b\b\^_VVcZaikZacU[kb`a\_iXd^a]\b]c\b\`bZTb]a]b^VKgbbWa[faoYXYa]]\[cY^^aV[Zhh_ab]i]_c^e[`S\^X^d]b`^Z`[W_\bl]lVaY_^\]d^VZad]]_[jRea[VT\b^ac]]Wb\U`Y]i^ZX\_\\^\Z_fc\X]]ba[\c\^UZg`]^lXZgcZ]abX]dX[]\_Za^`ba_`^Za``\_][WX_[`c\aa^fa^^_`ac^d^]`bZ^^a`\a]Yb_d^[[\_^_b^[][^]^[b_^d]Z\`a\_eb]]^`_^^aa`^^`]_]a^^b`a_b`_b_`_X]Z]bbY_]\ef`^`d]f^`^^`b^a^e]Wjdd^e`][b_`\\^_`]^aYab[aa[a^`a]_e_`^X^^ba]cb[_\aba[[]^Za]^Z__c]\]\\]\`^]_b\`]\a`]_`[`^`b[d\\a_\^a]]\^`]_^``c_^^a^]]a[Z^`^`Z]a_`^`_\Wab^kc\`]b`aXba`[]XeZg^^_\`]___`^^^\][c\]`\`g`_a\b^]Z\^]b]^_]`]^X_\[ba]b``^_]^^]]^]^[^Y^c]U_^a_^_Ze`[b^`Z_]abd^e`ba[^X_]bXa]cYa``_`ca`]Ya`\^_b`Z`[^Ueb_c`bYa[Yc`_\g_^b`^`Y]cQ\_b^b^\]\`]W_a__c\\`_K^Z^]e_`f[```XdbWah^`a`_^b`\Aa_]\Y`c`_b\gZ^\_c[^^Z\]_ec\Z\X]aVX__[_b[d`Ye^[\a^f`c]`^^\eW_]a\Oc`[]^a\__`Ze`aad`c^c^`_^`[d]_^`a_]iaeca\e^_ighd][b]^[aY^j]abZaX^ee_^_b]_aZ_`c[a^ba_^^g_b\\`da\d[bmZ^b_]c\^_a`\\[[`bY`e^_]f[[][a]_`_\a`]^a`ep]][aiZY_Z^g`^\cc`aY`^`a\\ja``cbah^]`\]hd`^\d^_]a`]__b`i[b]d^`d`b_`g^Z_c]X^\_\__g[Y\]`OYd]b_]aa``c[jZf^daa`XZb^^b^f[cfhfN\\_Z``dggf^b]igeg]\`X^bYa^]b`T=cb\bdG[e__[c[UbfXZ[``_YcX\[`^b`_\]]]`Y\_Pchc_eb\^_aY_hoaaabbck_]\`]]aQ\ZW^b[ga_Y``da]\`S\`\[Y[^]_T`]`Wa^]a^_`ab_bc^]Y\d`]`^_]]b]aa]b\]]^da`_bd`\\d]a[g]a_\\[]cZ]ab`[_^`__]__\^`a_^a`ZdbaYbcg`_d^_^]_]`^_c`b]^_^`Z]\bd]c_]]c\f^d_\`ag\]\[ea\_]Y]]^bd]^Za``b^``d]^^[c_ba\b\_`^`__a_W`_`Z]`c``b]]a__]a]^\^]`]bf_b[]bad_a^d^e^k]aZha^`cg_^_`]\Z^[_bg\`Zcaac]a\dc^g`d_d_a^^dWcY`\\^a]^]aQc^`^df`c`\h^`abcX_^f^agb[e]_Z`b`dbd]^a`]c_d[[g_a^W_ce`Zb^eZh]_`__`_b]Za]heV_c_W[[ebZa`\ic\afiZ\a[Z^co\\c^`beY`d^[\\a[[]^`ZZ]`V\U\YY_P__`\]^\]cb\aga]]\aXX^^jbZ`Z]hg]_Z\S^m[\]a^bo^[l[gcZ_\b]\][^Zabg[^[bbYd]^[`\`Y^[[]bZc]Y`Y]U]\^f]cY^^c^]\\[\[]db^[aZX_]W\^_`iY[]`a\\g^W`a\\g_cae_a^][]Xc_af[a\Z[\iX]^a_db\XXbd^`a[[cf^`_fdVg^]]ZXiXb[]TZYbXTYa^ZX`^`]XZ\g]Y[bVWZc]a`jYV^fXXYYS\`dW[ZV_ZZc^Zed_j\\VW_\]UXccb_m]aV\[Z[_eYZ\Y[U_^ZeXa^dZ\]XcY\`Y^iZ][\f``Rd\\Y\[W^[ZYeaZUVc\]\Y]]_bgV]Y]`Y`c]caZSid^\UY^[l_X]Sa]]Xa\g]]jYX_bSd__]d]YcbaZ[bZYbY_\_S[bZ`XlY[fS\Shgn_`Z_Vbg^b\Y^]\[taf`Y]fbZ`c^ZXd]b]i_eb``j`j^^Xd^[_Y[_jeX`f_fhZU]K]WbY[^^b^Z^aThg_a\qbZZ\[iZ_acXX]\zdZ\]V]b[Yca^Y^lMSV]diZ]]XZheW[YaZY^_]^N\X]XXbXfc^\X^VXQ\WZaZaZ`\da_h\\Yb^W_[N^^]_]a\i[c]gdoY`Vc[P[\ea__VZ[d]dVY`iYUeW_f]^gl^kb`YVUW__Z]omcc\\W]b_eWbai]d\YUS^__iYU]VahI_i^T_Y^[_]Uba_bQga]_[WZdT^^e_aWefZ[aYab]agXW[T\iPYVaZgdS[]T\]\`beX`S\ecW\a^\^^_Z[db\c]a`^f_]^`[b]_`^^a^b]b[^Z`^a[]]\[`^]c[[_[d_a]`\]e_^`aa`]b\ca`^b]`Z[_c\\\`c_^]Zbbi^[\]^`_W_\[^a_``^]d[aab^^\Z_`[[]][a\`][]b]]c_\]]][c]__\a\][Y`Z^_Z\]`^]`]__Za^`Z]\][]\a]]Y__b`[d^]\\^^\ba_]j__^ed\Z^Za_\\_g_Ye[Xe^\fcYa[^_]a[]``bacT\]e^]o]dgXbb]``emaX\bfkaRh_afb[[f^c[bcpao[g\`VU_b`cfY]^\b[jec_ndaeYG`^e_\g^b\]^^`di^`ZR]Y][afZ]cl]Xb^___^Y]b^\Q__ad]b[X`Y\_Zc]dWa`lb\XZaYfaN\YZ^eY[]^bchdZ_b\d\XY]bbeY`_cdY`Q[`f_\g\jV[e^_b\\aWb\U]hcdZYp`bYag\g_aaM^caY`Ya]eeba]cYb]b\[^][c\bj^\aag]`UWaZib_]fb]c]^]]YeXi[_`Yb^_`\bhVZWfdX\hXfYi]]egdb^e`V\^eagZgaZ]\]_X]^ackjeb]_XfS_he\a^\eXWYd[`c_PUd`_fe`XaW^][b_c\Sl^bQgc\aUmZdce__A^\ZX]__RdSQ\Z[[okXb^[a`]l\[^ZcR^U`_c^\]^]`\[^]\W][]Z_c\\\YckV\`fZhSYgdWhdWc^X\`^VT]]`c\ll^^TcTZ`WbYY_Y`b^Z[_`_hZcZee[X_`MRV]jZYgY`ZcX_e]_b^\\\W\bib^dXb`cU]]b^]Z^e^]^_cZc^j^\e\]Ychfh_^[]_^ja[ad^`]aaacceZdY_Zdcc]\afZ`V_`WZ]Rf\[VY_i^`d[]^\d\igRY^W^aV]^h_a`X\W`bgaU^f]]c\]S\]]\]cb\e_a^]][_ed_\a[]`e\_ZeK]h_Y`]X_^VeY`apWWZaYa^]^]ZeX^_^^ZVU]\a[]^affa^`[[VXW[^dh\ZZ`Z_bb]aVb[^][V[`c^\_`c]Va[^c\]\a]Yf]`[Vb]\b_caO]k]Vcg^b``b`a]]g]Xba^]h`W[d]i`]c[\\`fc^d`b`Z[^]e]\Z_h^`_[Z`g]_c`[[ZieXc\\Z\^^XVaaX_a__bZe[_Z_dh^^[[_U[``c\\ZX\bb\Z_iYcg]\bZ_b_b^XZa\]__]Z_a^c`]dXZbgbaa]a\`\fZf^[]b_e_ba[]adaYgba\\^eabdWf[eYd_Z]Y`\[eZ^Zb\\^\_^c\^Za_]a`]]^a\_]]_Z]baalc[[a_Ya^`[b^`]]^Yb^\]c^Wa``]c]_Z][`]b]VV^a`\Y_bcc^]]`a^_\___]_[``fc_Wb]d`\_^_^Z][feaae\Z^W`]gX\]ie`^WZ^Ub^\T]W^^]^c\aTW[fe\ga_]^a]X`a_`Q[VY_`aPYghW]c^[f`_d_iWfabKbfgbja^Z_gi^eOniaacWYZ\hbdW]VZ]`bc^c[ZeZa\c^YlgiZa_W^X_MacdV`RZ\f[c^`Z]^bbcfW[b_UU\giPigd[ac^_Yeb^\j`Xf\qag[abj^`eZd`be^`cdaX\a_]]`c\^de^]^]\`^\]_caZ\Xe_e]]cZ^^[``]_c^]`ek`^\\b]`\T_[]_V^Xc`\]\\]a\bbab\ac`Y_[`d_a__d`bZ]^`aZ]W\_^d[Y^`ca\_g\b_aa^XeY`^^]`]Vb_Y[b_W^`aZ]_]`^Z\\]fcW\]a_^`^^\`X`_Y^^dX[Y\[_[^a^b`e^a`^_`]cZc]ge^Udbbb_Wb\Q_f[VdS^cXepc\dg]Uj_cqbgb^ga^h`d_jZYe]eVYaXbf_`Ta_a`idce\dbbc`ih]dYef\`lVU`__\ci_UcWdS]k}aLb\[ab]^^\e]V\[bab^vJY`d\bjbh_^cd^c\ZmcVZO]`WWbff]_Xi`oTUY_fecch^W]edcbX`c\acfL[`_^`h]^^^`]__dc\b`\``^[__^^___c^a_``[\da^]_b_\b``dc__ac`___^^\`[]_\d^]`^]]______`\aa\`_ab^`^^ab_ab_aab`]`___b`ccX`]^]`\``\^Zaa___]ef`]`Z`d_aa_]\___`_a_`bb`ba]]b]`\]da\_^_a`b^\`_b]^]`_`]\`__]\^\_]]_[e^gV]f]k`_`bZca]\`T\fZ]bbW_j\d]]ZYZfe_bZV^Zaac^a`fb[[U]^ebg^Xb]Z_b`_Y[Zb`]`dhb\Z^ZcY[Y]`aca\Zd_bd]aU^\^bX^U[^a`d]g^d`f`dX\aaa^ZVjga^`ad[i^`Va]^h]c^]agaaZZ_`b]Tbfe^\b\`^Ya`ZZ[]Za[[f_^bZWcb]ub^\b_Y\`^^a^c^`_b^`\\b^_`\fjeZ^^``_Zc`da\^_^]bd`Z\[\_d_\]_aZ^`a^b^a`[[^`\cacZ]Z^\^bc\]ba\b][_b`Xc`a[^^ca^d^Z_]^W]`a`caba\`cb_`Zdedf]\f]a]]c]\e^]^b]`ag]d`c]]]ba_]a`[^^]ba``bba[^`_^[cZ]d``bb`_a[\da]`^^Y_b]^__aa_a_[`_aaa`bbY[b`___^`Y\]_Xdaa]`d\bacc_db`\[daec^a_Y^]\\ad[[ab^aabab^eX`b^]`J_\a_]`_m`Xbcac_a\Z^a\b^Yba]Vac^ac]ZecfX[__uUa`\``a\\h][[YY_g`c\d^dc^_Z[_bV^\`\`d`]WZZbda`^\^__c^a\_aXd_`jdY__]WWab^_Z]]d`Y]__]XT_YYZ_\^`YX][\b[`cdOaV[`^Z\]^dc_^b_Z_Y]h_b]bbnY][`Xd_^ac^b[\ZhV`bb_[XaW]aa[hWV[_[_[^a_ZYj`Z[_ebad`\]eZWj]f^``\da`^]]`XXb]cbb\eW^edQceYZZbfYZ___\a\cX]bYZ^W\[]cfT_[bZ]`aZ^Y\Y]ebY]c^d]_g\Z`^`c_ZgcgYb`_]]\^b^e^]eY_c^X`\`_Y^]_[ad_\ca[ba][_^\Z]a`b\Z]_][]^][[^]]`W\[^aa_bg^aY]bZ^\]Z`_c`[Z_Z\`]^^]b^_be^]`^cV^a[d\d^W^b\]_f`ca]eb[fZ`ce[bd\]Z`d`]Z^[c^a^`^d_[_a_^[]_[^^a]^[kcajaX`_UdY[]\`eXW^_b`]]fab_Wc\]aZ_ed_b_dg__fa\_e[f_^bW_`]b[`_Zcn^_bf\\]]ZhblY_^cfW]X_]bb\ba][`T]i]ifkac][ZVdV]b`eW`^V]biYZfRcYdV[__Z_^bf__bcjb`ZZ_ba`b_^`XZb]aTd^a[_]Y`]m[Za\_f\iY\[^V`c]_^Z^`aiXd_[bUb``^\[Z^`^c][]gd\_ce]VUWY_\`h_f[d^c]]XdcZZjWbZ`W\g^_j\maaVb`_XaV\fV\gkg]iX[cZbUZ\a]\]]\XV^T^\][R]hii\_b_[Z]bc\Y_^cYa_`_e_`\Ud\_Y][bed`be]\Rc`_Yc]hV~dQ\eadZ]iU`bb\[eakVeabqhhUa^Zb^Xbdbb^f^]^aX\^a]a]_^\^^c]^^\[`_bY]\g^^YceZ_]Y_^_\`\^`\`\^a_`^^`_d^^]ae``b]a^a`\aba[`]]a_`_]bbbe\fb]aYb_\bb]d`a[b`aa_^]\f____a^^^b^Wab`Za]aZY^^`_b_`\]b_a\b_^^b`\^\]ba^^hab]]j\eacg]]acb\_[[`__`__ZW_c\Zde^^XYa_^`\``a``\\]_^]cab`fd_^\b`[^a_`^aa_\[cZ\`d\c]__]_\a_eY]__^b\``__]\a`]`^b^]^[a`d`]\]^`^Y_`b]Y`^a_`_]`__`\ab`Y\_[c]_\^b]ad]`e^b``_b[`\`][a]_`a]^a`^`]^bZ^a__``]\^_\^_\^]^_c_a__de[^_[]]bafuXa^\ZbYjbb_a[dZSfZZ]bW_h\[bRU[]\b_gb]caS\^b_bdcX`gVUZ[XocUlY]aX___a_]Yg_b]c_Z]\Vg]`Y[]j^a^eaPcWc[_`bNZ`Z\k[]f^_fa^co[\deX`hMaYbPeii[][bZbga[c]`XD_[_[Z^h]Ucic[``XbZ_k\a`XiaMYY`Ze]ba_Wfajd^\\]_]_^^[a`Z]c_^V_`^__^[__][[daa[][g]`]W]Z\]`a^[Z^]\d``a^bc^]Y^fW]a\]]]]bY]aa^`_a`c[\_cXcZ`[]ha_^_V[dc_`hZ\^e]\`ac^b`g[^c]a_ba]Yfe^ZaZ]_^__]f_Z`e\_agg^_b^W^a`aaa^Z^aabW`b[_`eY[_]f`^\ba^\baeaae_^_\]Y^^`\]`]cdacY^a]^c\`b\^\_Z`]`^a]_fT[^Y^Yaga^bbac__bY\`\```[[][`d^^]^^cbZ_d_YY`[]Ya[[[\][___^\^da_`_aa^\bdZ`b\]_Yh_a[`_^Zb^^^_ce^^b_\\`c]bZa\]a^ZZ_cb_[\bYc]][]\_ab`^a`^ccda\_Z_[_[^f_c]_`dad]e]]]\b[e\`e^_`]a\]\^_`\bgd^^a`X_\ccaaa]X_ca]][\__Za]\a`bY\^b\]Y`cZ\`]\`]\\Z^`\]__``\b_b^^\b`^_Zb^^ad__\a^b`_[`_`^bc^`\^f`^aZb`[b]W[_[__[]^`a^^_Y__ag^\a\eZ\a`_a]^^`\`a[[b``[\`c`^bb]`a]Z^_[`__^e^\Qkd_Z^[d_Z]b\_aa`eZ]]U[e`h[bd\ccXa]T_Ub`_X`W_X_aYdX^\akcW``_ia^^`]U[`\anZ`_cW`_bUW_`\f_]]a]\]^``eZY[\h]aa]P^dPi^Z^]aSUha^fcXl]cZWY[a^]`cTbWaZY]a\_a\]^__^`UfO\W^[cebY__[YcV[``UY^h\``[e]`Y[db\\c^YY`a`Z^^][\a[_]\Z`g]bbW[a^[[\`^]c^]a^`a[de][^\]_e]`Z_`]_aX]]e]^]\be]]][[^`_^\]fYYa]\]X^]]Z^[b`__]b\__[\_^f^_^``_\[`[\`^]^b\^]\[\fW]_bZZ[b\_^Z]`][`_Z_c`]ad]``]___c`]b__]\`cm``[``fa^\[\\]_^[^]^]ba^b\ba[`X_S\a^`X[Z[aZYX]^^`c`][_^c``ZU`fa]]hfT]iVX[bZcVYe`ZU^VX_^blae]_c_c_[a][hd_`^\bbbf^_X][c^^fX^ab[`]g^gb]_\b_[UZ^Za_cYVW^ccTZa_h^V_b^d]V_fa^b\Y_c^gb^[][[`[bZZ[b\_Y]b]Z[a]YeZY\]^dZ^_e_\ab[]^\aY^b`^^b\\``\[\_]`[eXY`b`_]_haZ^aa`b^]ba]]]^^\^\\`ea_Y``\a][dZ\]a]a\a^]\]da`Wf__`a\a]d[\c`\c`a\\a]\[^^[b^b__b]^[cba_^`W`ab\\b]`\^^[d`Zd\a^aY^^a^_X\]Yf_^]^`]_c\]_]_Z\^ef_]_ea_d`a`X_ace]]\W]^_]aca[__d^Z]^c__aaa]ab[^]\]`]__\_a]e]]^f]^c\VZ]_[^_fb]bac\_Z\Z[`Z\^d\[Yd_a_dbfc\aZ]Y[\]c\````^^^`_[_]`_^_c^[^]`ab_\c_ddZ`Wj]VX][Y__]c[d`^^aZ``acY__[_^_a`\^[]_^\]`\\`[_Q^aec_``Y`\aZec]`^Z_^[X]db[cbZ\[^XU_`_bR^\aS_ba]f]]]b_Xc]]hYUifbf\a^]^O]i_ZYd]`k[__X\`]]Wibc`[dZYek_e]dWVg]b^][\\gZfcaY^XYZa_d^W[Y_^de[b[e\ae`cp^\\^Z[i`\X_b[e\^a]c[]ahemdb_Zc_Xkb\`R]]WbWf]cdW`Vibobc_[_`j`[Qg_b]Z_b]][^ba_U]\]]`]_`]]\b]b]X\\]Ze]bZ`]^b_[[]`feR]\_]c\b`Zdd]]Zb_`Zac\YZ\dZZabXZ`\eec_bZ]fZ[`ZcZ[^\\`b][abYVX`bc_fb^S]Z[^``Zc^`_]\gY_\bW`b__^\^\Y`Y\__^cZ^adcc_Va`jX_[^Z`]f\[\]]]bdgb^]Z\be^c^]_\a]_bdXafZ^e^^\\\_^Sa\ZY`^_cgaf[Ybdr\ad\aaV_]^U^e[jb_b\[e_]\YZNs_WdLiZd\X^aY]\db]Xf[`]g_imbSddZa_aX\ceXW^dZg_p\\amYWg\]\hhbVeY^bW^`eT]gV[pj[a[_YfQf]aYa]\b^^m_^mWfcjqef__fq_e\V`\v^mXa]begb`a[c\dc[^Z]^_Vba][b]__Z`TaZ[SN]eVe\T\_Y[XPXT[^]`Zg`^Yb]ab\ZXa_[VgXZ\rV_bXT]SaY_[ZY]`[cU_Z`^`[P^]`^bXk^XZ_`g^_o^ccVTe]\eUd^^[_^\ZeacV`Xd\e[]bScVZ[YWYY]\YWTU`[hb\Y\calee]_^YX_Z^P``\bf[bb`Z[i\P]^\^\j^_X]]adgfa]baWdaiZb^hb^cY_[[\lTX^jZb[hb\X]Y]^g^^UVZl]ZWfTKZi][`aFdUV^`bTi]^^ddgh`cV_]_]Wb^W^`fYn`YdbXUb[gg\gS\h^_ab_afa\Vd]`\ZZdceaQ_Zi`cZca_\^\[kZea`abZZW\V[_b^]i]biab_Ya^V_d^Rha\dbee[^Zc]aj``]_^afa_m`be^\]Xd_^]mfjc\cX`Ujef\aY\edcW]fff^lacada]`eXe[^dgfdhYmm[bh`Yj\^^^^_bjaccf`^Z\bUca]eaf\e\YbX`_c_^__]U^ibbe]^Z]Wl[q^Q^`_macmXdUb\\^_dlgS]``Wl`\a]]\RWbb_g_h\c`_dU_eac_^Ya\fWX_[ie`a`ddbcZ\Tg]`YiUd^\Yhd\d]\c[{Yba]a[U]Uh^c_Oga[VS`x_x_ZZcTSggZcW]a`hnSd_Ylc]P`[c][^ee]Y`[_Zl_aXgZT^xbUc^Ze_eY[\hecde_5`VcZ\h``bdaS_hUa_VaXTVq\^a]Q][\dfZ^t\bY[dfhYb`ZV[][X_ZRX^gbUN]`VUWfNd]X[]ePb^VY^ci^_c_^_d\`^_`]][Z\^a_^`b^\^a``]`]Y_Y[``]_ba_g`]]]\`^^^[`^^]Z^X]a^^b[]\a]^_]^\]bc_]__Z``\`c]^_^T]]d^`c^daZ`a^aY_^`_c]`_\`_[XY^aY\]\`^Y]j]_\`^^dZ^``]^^\cZ_a[`[]^\]_a_[_^Yc_\^^^`_aa`da\]a^[]`_\e`a_[]^a\`de^be\cX_^\XZ]a^^Wi^^[fZb^]c[f^\aa^f`XZ\__d][^h[ab\]_`\^a\aa`Z\_]]]Y[aXY^a]^]__`_c_d`^`c]]eZ^]a\_VX]\\\bh`_[_\_a]]a__[c_^a`V^`_Z^Z^`[]a^XZZ^\UZ^[aW]^^_`__`WZeac^\aa`^[ab\[aa[]`\_c__`]X]g`\[[\da^\a_aX]\^`^[Zab]bd`_b`e[Z]fVZ^_Z\]c^d_ab_]]_ZYS]j^_dgaae]\_]``Z]``\[b\]]\c_[a]_[[fba_g[bb^^b`Tc_^a]^`][cc^\]`[]eacZ[^ba]\\`[d]b]b_`a\]\_[]g_\dacZ^_[Zd]]a]\Zb_[\`^]`_\c]`\b\^`]g_a`_ZZ_^_\d[bgb_aY]\\ac_]b[`\^]_]_b\c\[a\_`]_^^bZ_\_a[__^_a`_^i^\f_\^]\^ca^^b]][^___a]^a_`a\a`a^`Z\dad_]_^Y`_Y^]`fcZ\\bc^a]a_\^b`_]^_`^^`b^Y`ZWa\gb[__``]`aYc^^`^^`]]`\^__]_]`_a`cYe]`^bacc][]__]_\`ca\b_]_^eaa`hXZ_eVU\`j]VeDbS_T_[bNk^`]]fOjd^gSQ]@X^V]e`WT``Zh[bTZeeMX\coe]fZZee]a`nfcTlgXagPWHN[Wfdf[b``iXPCAbX`^g_hdacS[[_JRYUYRe[agh_ZWZgZYx\cd]ff`N[W`VWX\ZbXd`l`Wdcoh[UUWcnZjd`c[gcNf^dXeVabeT^hcm][cW]b\c[`]\^_]]bYe^g`_\b]b_jb`_c\_c_[[_b\dcb_Y[^^^ZV]g[]c]b_m`\cbf`V]a^V``\a^_a\^f\bb\b^__\\_]\]ac^bZa[b]X`]h]c_\]Z^aZfeZ[`a_`Xcf_^`e]Y_`caaZ[\elZkcb[a_\^`b`c_`^`a\]afe^_Z[\]_]kc]`_k`c^_Z``_]j[_^]\___^__^^^__`_^_^`^]][_]^^`\`__`_`]b``_^\_b_``^^^`\b^^^\^^_c]b`a]b\b\`]^__ba^`_^`d_^_`_]_]^Y`\_\]]a]_]\_a]^a`\_``]Y^a\_`_^```\a\Z^^_\_]b__^b]_b`[W_]a]]_^a``]_^^a]`__^^]`]]a^^^`__^`_^_]_]_]^[ac]MdbLPgeh[jpq[K]\^`f^R\Hi\_dWXZahwW[c^VZO\[gQ]mo`g[cQ_P\cchRS\\jc]_mf\ZegYQ\`dXPW[QaSfZ`W`]U[_a_d[T^P[d[QUY\Wf]j\jXgfZ\W^YVQlLUaka\b]_Wh_^\]cYCcZXUdcWNZ]jGTa[`Zh/Y]`X_]`M>]S[Z\]^]hg`Z[cbcc]_^^a]`Z]\^^`\bZ[\[b^acVYX]_^eYY^^``Y^`aa_[YY`]\[`^b][_]]Zga]^aa_d[`ZZ^c]\Y]Z`][]f^]ba__b\][^^^\^[\^^]X^Z^k]j]_Z]a`\`a[^____aVb`[YXaU`_][[^[ZYaZd[[YYb^^]\Z[jZ_\_]]`[`b]Zb]Y_\j_b[^g^h\c[]]]ac^]\g]_`c^\[b`XdV\\]dXbVh_[i\_^^af[_]bY^a^R]`c`W]b\^``fWU`\]fa^]]\^[W\`_`ZWc]^`begb\a[Z_^^WbaYb\cU\abfUbc_g^[__[Y\Z\\b]aV]cc]ab\cbYaV`ec]aZX\[`fce^\h\Z^`agc\\c`aYee_Xg]Y]\b^`X\`^d_[ZY^aa\YZVc`\b_^\[\Z^^_]`^^[b_[ZZ]]^Z\b]b^\_[]]b^_bc]^b]_^\Zd[[[Y`]\^c_`]d_Z\^d`^^_`\\_``Z`Z^[[Z`\\f^[`dX]]__Y_X]^b^[\]]cc^^b[\\[^_a]]^_bb^^aa_f\bXY]^]\_a\\\b_^baa]]b^ZZ]_g`_\c^^__h[]_`[_a\b]bZZ[`a_\[]`\[__g_f`_Wea[`Z^`bj[\]be[^cXWcb\`b[b^^fc_edbi\c`ha`_^c^e\c^_\^b`b[bZb\[```]`_\gbaWd\_ccd[^^]_b]]c`d^]aY_]a[Z\^b\bffX\ceb`\ZbZZa`bbgYa^X]]^[[]^\]]`^_afW_g^[mae^\bZhZa[][aa[``_[c\^c[^_f`[bcXgb[Za[Z`Z_^_`b^dik]Z]UbW`b`Ubbd\\fYa\kd]aZ\e[]dcVTY]caWn\`UT[Xb\]]XXejgbcaY\V\[f\WVfZb\abYY\aSY`]`^a[b`aabYdZ__e_b\N\SdZf]dgcZc\Wd_jWWjfT]]_W[`a_Z^kVc\na]hgVcedYYnT\aSc]^d`b^bfWWaca[^eb][\_d`YacZa^^\`\_f]]U``\gZa`\bhbl`fUf]VadS_Vd_\]\`YWWbcc`\hica\a]_YY``a`Z`WUe^YXeX\\mW][^Z^Za]iYc_oZSV[Z`^fe]b\ab`eY\^]^\bD]Z[`]_b_m^aPf]][f\z]Zcd`hh][bX\]Vb_b_Y`phebeifb[l]WWhfVb^\R][bY\j]\VW^`aPc\aiZk[WaZ_]c`_[_^^_a`a^aa]\d^[[^a^_\^\Z^^__]b]_][`___b_a]]_`^b]__^aX_\^__]b_^^^]`\^_b__]_[^`_^]_^__d^^aa`e_`_`a^_^]^``_a[b_bba_\a_]`\\^]_W_^[b_d_^^_^\a_^^__`_a```]`___]b_a`\abb[\_\db`_aY^\^_a```\]\a_^ba]\aeVad[\`a_adaea^a[[`[bba`b_cb]aZ^Y``]^_a]U^W\X\]jZd]\`b`ZX[^f]b]Yd]^cYXd\bdfa\c]d`Z_Z`gVh_]\^b_a]]aad^Zb^[]^X]`a]_j]daY^e^`]ai]\^_]]]^bb^aXa^bW[^`\W\Z`eb^a^[Y]_b\YY^`][\]bXZb^]`X\b]_b^\`af`b[^^_````_^b`^][c_f\_\[hTaS]^_`\^[^[cc]a_nZ`\\`^\l`a^XabZVca`j]_aS_XfZX^c\ae`^`c_``a`ea^foW[]Ykd^]YZ\e\aabk_W]jabd__ha`ZZZZ_Yf_^e]\`WkY[\\ff[Z]`[^b\aYg_YaZ`^_YWh_`VZYYbgZ_[[eSdeU]^hec^`gdbbYX]a\Zc[Z^`_^cgVVcj[YhbZW^V^YV[caga\ece]d`Y^_`c\Y^`\\adZZYafYaZZbee`]]_g^][ae^[\b`]aX`d\VTWcbda[_aa[\bcYP\_[VQ^_[Za^e\]ee[[^`^`^d^c`hZ`]]V^_\]Y[^XcWf^`XgZ`_f^e`[[a[]`[fYdd]`\`aU_WHYa^[edZ`e]__\^^`[]^aZ`f_\]_aa^]b\`_[_`]_]]Z\b]cb]ba]_cW\ae_a\e^Z][c\`^^\_``b]`_cc\[b_^_\^ac\ch\_`a]]]`W]^d`]]]\^a`]\_`c]]]a\]]_][bb^a^[`a^``_a`\__]b^^_``_`_^ceX`[[\V_\Y^^b]`]`^^g]`Z`]\]_\^ZZ^^b_[_a]\`]\\a`_`ba]^_^Y_`b`[a\\]`e_]^b]`fb][_ZcYZ\\\bUZ```_Y^dc_`]Xc]_cd`^Z[mW`ecl`Yb\^^^ee`a`d^_da\^`_f_\a``f`]X__Z^aY__^^ac[``c^_`hb_\]Y``dZ_\^^X^]``[_^^bgcZ\\]^[\W\ada`c[]gWf^]W]_a\ai[^Yd]^d^\d_aX]Z^e^cbd^]]YfacWe\`e^Zde[i_l[^Yg[^^[cTabXZg_idR_ece^hb^b^Z]UQdZTd^gZ\oW`_fUdkWaXaZcZU`XYdc_e_f_\hg`^]`^aX`U_e]]]a]\SghZdhe^`cYf[[iS_`YX_Y^dRob_a_VX][^__]]d_Z\fU_Z\ba^`[U``Z^n_`^\^]ZVWd]e^`fe_^[Zlf_`Y_`Y[\a\\_X]^b_b_fYb^h^\XdZ\aaYa_\_]c]_]a_a_`Z\`^_ZZ\_cZ_ZX[`^\b\\Y]Y_]Y[bZ]_^\Z]\]_^_Z`c__\^\\^^^cf[a^[c]d[[__[[_Z]^[]aX_^d_\b\V^cc]\[_aY_[_\_c\__]TX\`_[]a]aZd`]]]\[`_Z]g`Y\[Z[g]ia`b^[Z]`]T^Wa[]Zbe]`_\`c`ba`^^b_\\_a]]a\fe`\a[^h_[_^`^_^[]_]hb^]a\U\i][XhZVXY^V^ZaY[bYb\^]][ca_b^]`Y_Y\^[b\[`^acYhbZd`db[W\^`XcYZa`W\^aa_`XY]bfdb\U`[eV_^[bc``^U\aXfj\aXZbWXcaX_`Z]_\_cYSb\dXZag`_b][^Z[Z]^]^d^d]]]Ya][aa_n`nYbZ^_a\h\Yb`Z]]d`g_Wcjbe[Uc[\\^Xc[cfg[aT\^X`j]`ga`c\Y]b[XaX^cZc[a\ge[_c]UShac__Tgc[`^`[`]deXS^n^^^ebda[WZ]]]`_ba`Zma]^bY]c__^_XXb^\X`cXZf_\m[]YObhd\Yajab[cW^ba`b[\Z^_qbYb^`dZ^^\gY_`b^`Za^d^\[c`c]\aZ_^a_][aT_]Ua]^b_^]^]^Z_]a_Z_b]da`TdXZ_]i^bY]dXabba^^e`_Va\[ZYZ\^a]_fZ_a]a_ibb[bmbZRd^eR\X]]b^`__]\[[f\`[]]Yc[`^[Vdb_]_]\[e`fXg_egkb]^_^`U_\_X`Z[aX[[a_[[\aZ_`_fY]_aWc\Yg`^[^___b]`\_^a`a\\fa`_a[d]_X^^XW[^_a\]`[aeb]a[]ae`ae\a\gcabecYZ_W^^affd`fd`^[_b`fa\]dg^Zaf^c`_\`\]eX[^[]Y`c]`_cc^[`__[\___^`a^`cX]]`[ahYd_i]`_^`b^]b\k^_aS[`e_`[]]cb^b[[]cd]Z__ZXl`ZXX^^_d_`^Z^Y_Z\_b]][\aZa\db`a`be]]\[]_a^_^__`\[^\__`^b[e]_^Y`[^Z\]`__]`]Z`[bc`[a^\^]]_^^]`__]^\]\]_c^]aZ[a_[`\\]_^b^Zda^bb[]\`[\a[`^a^aZ``c\Z\_bWbeZ]^Y`]_^ba_[]`Zac`gf`fZc^`^]c^__a^_]^^_]^^_``b_[a^_`^\^bb_]]abe_]c[^b]^_]^a]V]^_c]`c]ce]Ya_^_\[__`e_[_\cb\_[^^W^d]b^V`[^[g]]dV]`^_j^\aY_Xdb]bac_fc]]^][\\gZ__^\d`_Ya]YXa_Zfd^e[_\XZbaaX_^h]Za\]chbd[`]c_\a^]UbYc]cTYh\^b^^\oZXa]d^a__]`_[[a_]a]`]Z`_bZa[`]`c^`^^___^^_`^_]_``]]]`_^^_]__\]`b^a\\d]_a\^^^]^a]^__]^^`^b\^_^\_^__]_^]____`_`_^a]\__[\_`\^^_^^^_\^^`_]]a^_]^^_^____]]_`]_`]^_^^`^_^_]`b[^__^]_^^_]^[a^]^_a]]`_[]^__b_b__[_^_`^]^_`__^^^]`_`^^\_a__`\`^`[^^b`c^g^[d_]^_]a^]]_ZZ[a[X^dc^^``Z^_\\b^\_^aYZc_[\__^`f^f[h\``_^e]a\_]\d[Z_ca]a`a^dSd^`]_a^db^db_]\b][f[^`Z[^^ab[]`]\b^c_``bU\^Vbbf^^ca`ac\aa_`\_^\_\^]`Y``^_^Z_^b]^__\`ce``_\^````\`d``[abbce]Za_^`a\d`_e^_a_cb^`\`Z\g``[aa[c``_^b^_^^^_^__\\^\]\a^^bajaa^]b]^]_o^^``a^a\\``bb_\_eb^ac_`^_a]ba`][_fa]_a``bdbac_]]^``^_aZY_\`^c]ca[_b\[afe]a`_^`a]b_^^\]`caa^a^c^__h]aW]d^_]^`[_`_b`^ec^^aZaWUU_c`VmdYY`UdaiYaW\\cii\bYZahXY^[``^`V`e\eRifje`N^[kT^]^`^VgLcbZ\bUakkZ^eeWUZ\Jhddhd]^\XcXc]e_^[g`bj\\^gZc[\XU__\Oc_a^\``Tbh^jTfgpd`b[WQ`c_Zf^U]Qe]^XTZ]ico[g`^acS]lWbVVfbeUd\ZSiW\_Wa]^\lYc\\b`[]^`_caaa`[_]]]`\_]c^\[`b`X\]_b\`ba`Z\\^^b]dZ\e^Y\_b^a^]a^ba\f[^]^\[]\[]]c_Y_`b\`Y\c`a_]^[c]dXcad]ad\T_\aU_b\_`b\^`d\a^\\]_^ad^`[WZ[]]\``k]^[f`^_`a_[a`aa_`Y^[_d``W[Z^a_^]]X`]\]^_]_][a_^a[_[h_^^f\fa`^a_fng[\b_Zd\WZft\icsdVedXiXg\dbdled]WX]Z\zeNca[]G]^japYWfbZ__\[^_`Z\c^^yfSf`\WeW_XW`_gf^]aaW`Q\ZX`\WcbZ\bYqh^th]^\[`[^bX^Z^Y[g\S^aegfWg]fma[ZVbaW[bjgUfTaXi]_cbcbU\]Y_gaZTaYgd_c[baea_c^ZZS^a`_e]\_am`\]fVc^X^c]cX\`YXabcf[_c\^c^]_^[]bv[Zaeba_^dj^_kVa]cc\[]Zaeg\`a[^`^[Z_b^d\ZY\]]]^ZZ^Yf_X_Z`_W_ihe\e_Z`_a]g]`a__\`[Ya^j[Z^^^Y[a_]_b\[[__ba^`U]]b[^^Za]_Tbc[W_g^_ZXbf_db_[o[YZ_`]f\[b]\Z`a_]^[_]_^^^`^X``a_a[_]`\YYga`]_^]`\]^^]aa]]^Z_\c[`a_\b`d_b`Z`]`\^`\]_]_[[[[a[]W`a^a_^][`__[_`_`^\b\a\f\`_\\_b]_\^_^Y][a^Z^_[a_`__`]W]j[`[[`]Zb`\^]_]\`Z^Xd^d`\`^`a]_^ZZb[\\_^Z`ZaZ`__a[^^`^`dgXXcV[_YU`kX`XUaa\bj[UbSZ][YU`d]\bXdY]ZX^bdY^^[gdjacYYTj[cdXs`aZ_R]_`VcZ[Vafb`fVmrZ^^][\biSY\^_URb`^^h_kaj^^^`_\W]e^[c\eV^V`[Te\jaa`_Y[_TQV\^^bXP`^ce\^dQdUme[`fj`ei]``\Sn_Xe\b`]a\pg]jZd_\^]d^_Z]_ca`^b]^]]^bda]]a\dZ\\[^]^```_c`_a`_eaY``^`d]`_Z^`]ce`]`]c_aadT^h`]_W_[`Y^_dZ^ma]c^[]\d`_afdcd^_^`]cg__^f[\_]_a^_e_g`aaRg]a[Y]Z__acb[]\k`_``]a```_Xa`We]c^c]__ab`[\]^_\ai`]abf`d`]][d`_\]`]`c`_\`XYa]aZagg`\Zd]]m_ad^`ab\\^ea\_\\W\_bU^Z[a^_e]Y__Yf]bZ`^a\Yd[b^b\[Vd`eb`hWaX`]X[[^^^Xe[]\_^ecd`X`[WaU_dhh^d\_aY][^_[Z`_dXa\bbn[]_^Z__Y]\`^^cb]d`U`]]_]][X`\Wfaab``a\_[[d\][Y]Yb_^`_\ad[`Zabe]\]Yb\cbY\[\^^``]_W`aZd_Z^]b[_\Z_\d_`Z\WZa\][Z[U_^agc^^_S_Ya^hc^]^ca]X]d]_[`___]b_ga[`Y`Z`cba]\_XTc`Z\d]b^c[b\]^YY[\b\`[\]`a_^b^]aa]]_[aY_a\Y^X^a]\^_^_^^_]a[\aZXi_W`\`]`e`_Zae^`c`_]b[ZYd\]c\\[Z]cc`_`\]]^abb``^__\]^`e\Z[bda]a]``_ea]Zb_][[Z\`_^d^a``a\`[Z_a]c_`[\\]bab_`_X^`^a_[^_e\a^^]^dak^]aaa^^a]^^aa\^_^_]^\]``][]]a[]Z^\ab`[d[[Z_\b\^_a[```ae`_[^\aZb\]\_^b\^Va]\^^XY[_^^cde__^_[b_`Y__]^]W^[bbb`]W]e`[[`ha\aYb[Xgg\][hSX]mcZ^YaUeW\^UU`k_``V[VkT`]bp`dbXd]^`_XibXeai^cXibmXWb^Zaa_Xb_Ycj\U]XZ]UZhb`bagdYj`fXk^g\ab\eYo_ecaceY[`ga`ZV_\T`P]aea`Y_cWd[Zb[^^ta_^[\Xl^xY_faVeZ[`c\e[fZWaa^[b]W^`]_c]`d\_\\\g\hZ_WSVeZ\S[YZYa^c`W\W]cc\`^ejZ[\Xb]a\_aU^Y\cVd_]ed\XXfjaaY`[b^c\^_W\_]^ddgb]_`V]dZ`o[o]f\_Xjc^e_c]gc^]fc^dY^^b^S_cSZ\]aWg_^`_b\WWYZ`_[d[YU^\d`^S][[\_fb`Z^gb]b`VY^[Wb[_b``f_c^c]\j_[accdcf\[Y\lYc][ZVYaca[fY[Wa_[b]_c]`Z^[\[f^`d\]XcfVe^Z`Z]m``^b[g^^Yh[]i]]]bic^_a^a\WZgf]dZ[U`bYi\bacYfbTb`[^[`[af^aa_Ye_g\\eg^[]YXZ^^]ZgbaP`[]WfbXb`ic]i_^X^jY_Yd`a[a`\]aZ^aZ^eb_X_Xa^]eZed`^c_]ac^^ac[^a_`_e]]]f``_`][a__\`c^`\^_d_`uX^aZ_\VaYcZaab[]Z\c^V^_c\[Zc\_fYca]W\`_aa^^\\aa_cc`Zcd]]fa\a_[Z_i]c_i\[b_Z`_`^]a_c]dgVeZ__]`Z]Y\[^e\ccf__We`cb^X\\aaW\[^\`_^cb__de^ecf[a`\bb]]V^ac[_aTZ]\Qb^bY`b`]Z]a[cbV[WW]W][\eZ\_W[`bX_\XZa[hk]__[a][\Sa^c\\\c[W\`a_^a`be\^_b^a\]X`^_`ZXYcc^aZ_a`S[]X```d_`Z^^`d`cTQ`]_`]b_Y[^YYY_]]cY[c]ZY`^]\`\XW[ZY^\T[`X^Xe^^Y^^k_W]__WZc^Z\c[_^[_bYaU^_]^]Z`\]a\`\^`a\``aZ]]]]^_^e\_Z`___^a^b]\_`c^a_\___]]\]b_\`d`^][d^`b]Z`^\c]\_\`][^]]b``cZa]]_a^`_]a_][^^^b`_`]a_ab^]_`a\]\]_c_]``haaZ]a\``\_a^^Y]\_^c_\`]_`[`^^_^`a`_d[bab_b`]^[]e`\`b`]c`^^]_]Z^]\]cb^Z`\\a[_`^ac\\]\]\``[V\d[Z\_ce[^b[Y^`a_dZ^eZ[\aa[Z_`[aa^__]^`^\__d[Z]abbZ]^c\a`\[[b]]QaZ`\`a`f^c^][[d]\Y^]^^_\]Z^`^]]_]c\X]^`k__^aa[c]Z^_^[`b]a\]T`^b_]Zda_`_`]_\[]^`]]]`\]T__`\a`[c`]^]`_bd[[cdb_``_^Z[\^ZZ^`_]_`b]][^^[a]^aZ[ccac]eb]c`^_^_^gZb^g`]ad`^c_`^]^b^h^[Yf[e`cZeb\[^\dZ]_Z`_`^__bZ_[\b^^\a_ZbgY]_\\]]Tcb`b_dZ]aa`eddmXa`_^_Y^_`_a_[`XZafW`[acd_``_fYeZ_Y]]_dae_`^\a^_[\\\[__d_`[`_a_a_]aZ]^Y`a\[^^_a]]Y_[X_^_b^j^WcZ^ZT```^\T^[W^`ch^Z[bc\`]U^XVY[[]`\[Y[ab\^``Y[^bb^ab\]aad[_]__^^bj^ZlZ\^c_Z\^\[b^b[`bb`_^]\d\`\]XY_^Za`\bc^cZZY]bfcX^_a[`a___XdcVZ`X[cZg^d]bY]bfab\ba_\[Z\_d\c[_bZ`]\_]^__^\cZ`]^c^\\[]Z_c`\_`dZ``a]]aa_\]a\^[c[\b`Z[aYb^_lbd^]^_`_inb_^``^\[ad^ddd_^aa_\aa_^]b^][b\[Zh[_]]a]cdZ]b_Z^]_^`_gYW]\b[___b`f[a__`b^_a]`bb^b]Z^]X`i_]X\Y_\c]_a[Z`cZ`]]_^`__\[bcb][`\\e_ac`g\_di]f`ebb`VdfY^`aXW]ba]c\__f`[babedg^`_a^`cX`b^V^bab]\d[\c`bha\b^b`]__bbaX\b]^ae[]f\a^_\`g_[_`Y[ee^cbla]``]d]g^[\Zc^[ac]\Xfff\\`]be\X``h[]^^]]^[c[jbhb`_`j^Z]a_\^]^]\_Y_[a`Xba^d`\b[Xb]Wfbc]`__f^s]\_ed]`]Zbd\\]acadbY\Zc_WlaXhU[b]Xab^`gm`fYXbbd^R`XWiW^Xc`Z[\cbX^e^_d`Zi`c[X_a[g]`a\Xc]`fNf[YgZ][ac]\\`cZa\]U__V[WaY[_YcZ]W]`dZb^aXe[Y\ca^\[Tb`cUW]___dW__jb_[cbaVRbb]\\_a[^^m^aY`dbb^]V[b^\ba^]\i_^`]\^aX`h]_e\\b`gbXVa]W[^\^[_a^^cbZa`fcXZ`[eXS^bY\_`V]`]`]]ZXZ^_[Y^]_V\jb]^c[W]YfbZb^\ab]YaY^]]]^][\]^Z^Y^_`Y\[]\b`[ZbV]][\Z]Z`\b]S```ffZW_YXaa^_]aX[]_[c_N`]a\Z_h^l]]X_X_]a^]]X`[\WafZ``]hZ_d`_`X\]\_ab]`\aXcgd_[_`[_f]_fh_Y`V\_^`]`]`]b_a\e[a]bZ[[_`a\\e]e`\_]\\^`_\`^Zce]__`^]ag`adad[``Ubb^a[c^[\cf`ac`_]Z_^\dac[a\Zce`_[][^^\]\e`_b`fY\b^a]_]_]`c``V_a[e_eX_Z_bY]Z``_Za_da_e^aa`^__]bc``_a`]b^`^\_``^][]^^]]^]^]`_]^]^^^\_^\^_`h`^`a\\^Z\`_^^^Y^b^\aZ]]__ac]a_\]^a\^]^`^_`^ac`^^Z]b`_c`^b\_`b^^^\[[]_Z_^`^a^\__[\bc`^__b\][_\b\[^Za\_^^^`a_^\``^`c^]_^_]ga_`[]^c]a]_baa_`__[ab`Y_a``[Y[_`acb]_a_Zce[Z__``f^]^]`^[_[cab^^]c\Z\e]a`\a`]^caj^ah_W^]X[^[[^b\^_`ab_Za[\a[_`jb\\Y\d_H\[__a]\X\[\\`a`j[dZ[^b__a\\^^[[[__iZ^`c]`]]Zb\Yd^Z_i_hac^da``][YaV[[_[^^\]Y^Z^cb^b````]Z]`]]]Y_^`]ZYa\_b\ac]`_dZ\^b^da\d[\^`^\^dbb]\a^d]^a`\a`ab^[\`_[e\\d^]e[`]^^^^_d^\\]^^_\_`^\``\]\^^^__^^`a\Ye^]]]`]X_d\_[]`_[_Zc`\Zb\``[^]V]\^_^^^a]]W`^`]`aec\b`Xbb`\_i`bb^a_bcba\^]^`h_^d_[`^_^_^bb]^`nYfcn\aVeX_S_l_]``^_[cfT`\haUe`_ShTT^_b`c^X_Zh^_WRK\_\aY]cjo\`dbL_`ccWX\cac`^[b]c`bZZg[bcbLe^d^ccf]a]ea]__^iY[^`W]adc`]cXd`e_aQdYf][eM_Zfg\^WZd^Z^_ebX``Mda__]^_Y^YZcZp[gY[_W\^v_VaZZTc]_ai\\^dR_d_g`_cdid_[__db[]\Yb]\\Oa\\i]_c_b^cmYa`b^\]T[\Xbji_][aS\[bSc_\fL_`c]Xe_bff`_c_Z``__Y[^V`bd^Veb[`[fdN^ahc_b\_\``[dY]YYda\e[]dYdSaddY]ed_]\^^`d_Xi_`Q`bZab_b^^Y^^^Wf^a[YW^]e_d^VNc`]ec`_\_]_`[]_f^[Xe`cXVga_b\Xe_cUb`a``b[ca[\__Y\`W^Z^}aZU\a^a\\b\dddWZc^^ZUgf^bZ^eab`]X]Z]h_\^\c_\Wi^bj`[aeb]_b]i^a\g`Z]S^u`gakgd`pVamm[aU^XdUl\]`gUYYdabaX^iVdnkaWU]aU][_d]^h[\Oda^aq_^apc`YaaY^jhtb^aeQ]cd\_^`ab^^gZ^ZVdd]a_Y_c]_Xt^]Vd[b\^ccc_ZYY___Z[]eKfb^a`YZfY[[\ZgV\\__\\bZ_Z[^[[]]\__d\^\^\Uba^b\_Z_YZd`f`adZ_\`^j\[e`Zc`Zcb\_ae__gaYa]_gc^db\ada\Y^Y^]ZcZebY]^^`Y^^]Z^^Z`eZh]\b^g[Y][V]g[\]q`\YYaaYc]Zc_\Whcb^\Z^]X\e]XaX^XZ\Z`Z]i_ji\d`[g\adZ``[d][bbcc^Yc\[Vb_Xh^_aZbf^bhbV[bg`\^\WZ\abc`e]\hZ]_U\^\a]d_`Yefc^S\X\^Y`_cXXWd\ba]^aic\dVZZaY^eXV^^mcSaacc```\agd]a^b`e_ZVa\g_]_Wf[]^PZ_^]ZfZ`^Y\Z`[_gXa\\]_aeXZj`ha___SY\\`i`VW]ab_^Zch\cd\b_]\\^^[WeRd^aWX\W]V^s_Y_VYcYfaRZ_Y_QcY\]dX_[Z[RT\\[daWW^b^_W^TdaWYY^NY][cWdaZXa\Z[\XX`\aUWW^a`LaT_[TSR_b]^Za^baa^ebdYS]TVh\aTb_UWX^Z]M`[h_]dZaWR^aVb]XY^b^\Z_]V`^b]Vb_Z`S`\\bb_d`de`Z^aaUaba[X]Wc^]a``^^bd\V_^h``a\]v`\^ZZ^\`]Z`c_XZ^Y\_f`^_`pi^]_X][`]a\cX][can_aR`L___`^`eT]`W__d]``^Z_\\\aZZ^`_a`_XT\\X[c]o\`__][_XcXa`^X_``Wh`_^[Y[`\\__[f_ZZ\fi^Y[\]^db_^`^]^b`^afd_``]c`]]a^a]_\\d^a`Ze]]_`^_`b^_a^`a]\\\`_a^Y`^a\X\[_^\^_\a^cd]\abac]_aX^`[_]b\_^]_]a`\__]_]`[^\]e\aba`c^cc`^aa^^_]]\Ya_]]b`X_]^^Z\[^_a_]\a_^_^c]]``^^`a]e]\[c\\[Ya_Z\c]`^e``b`_d]`hbRXS]WX`_\_dGZdeU^]YV[W`][_YOf_ZN_[f_X]]`ckXQU]:^cbZ[X[XXS]YZzdcVe]p_\bba^\Ya_e^^]_[Wfda]cZ`]PV[eQdcOfbY^fZXZq`iZa`h^b^WYq]\^_[XfheX]Zeb]Rc[`eb^h\\[db\a]WX\S\XaadW^[_[P`UcdcdpbV_^_V[\aWcYR[bV]`_`dc_d_ah\\`e__e\T^^b_]ZXm[a^hW`a\\a\X\eW]Wd[Za\aaacZ]`_aa^Wa[a]cha`_[Y]^``b\Zdga]\^Zai]^\YbZ\^\cb][bd_^[ba]\acj_]]b\dmTm`^`b]^__^ddcggcb`ncbXaa]`[^ZZ\`ZU__a]aaa^dZ^_]\_hc`[e_^\^a[e^eTb\Z_VQahU]^bec^]]d[\^_^_aahaacT]b]gYV]j[aUca`U]i\``\d\adk\`]^[dd_i[\`^__YXW\YU^Y]_da\v`_db^]\cc]b[_\cf_hd``g][eX^_]]Ug_dT\X\Zc^Zahd^PZdYRZace`^g_dm`]Ujb`[U\cXc_]ef][^W\X`jjShj^f\b\_Y]`a_[^_f]c_[cZVf`]cb\^Z]_Yc[^d^W]l^cf\bg\]]_^^Z\_]`]ab^bb^\^_]`[_f_d^f_^qX\_`haZ^^^f\_Z_^ee^bl^iZdk`_\dc^ai`a_]a[_a\acc_bb\]\]__at\W\[]\ac^\ch^^Zd_]a[\r`^[_]`Y`ebYaT^aaeZ[Zdlb`]Zb]W^^a\`]ahja_m][`_\^_XYad]`ghXZW][l^VYe_fO[^[Y\bh`aagW\ccV]V__[ca^\b]\ih\]a_K^_a_W_b[Q_^]X`aQb\`_\Z_^`[`_Ve_kVZ^]\alZha^^\\n\ef^Zc^__Z_d^_Wb``\^ej]`Z[_bX^[WM`z]U[`Z\b\U\`S_a`]]]o]f\b`ZZa`caScd^aZ^]adYcVb]^ea]SVZafY_bXebY^ZU`ddU`[^cjYV`bZcN`cV^^]q_d]fed[a^_O^`aWcd_fYVZY_WWbY^\k_UWZX][cd`Xe_^U_Sbc^[[ZZ`YXZY_YUfbfb`fd`_UVgUceZW`YSZU]_YmiYZ_beY^bcZacUZchda^aY_ZLc]gZ`hfY`\^c]_iYVbZdU^e\^cZde_YN`bbY\^SW^]dcaZY\cX\_\^_[_`f]Y`[^\\]V_b^^e\`\^^dZ[a[]W]_[b^aWeb`[]YWjdc^^V[YeXY]_[\M]aa]\b]b`]_b^_^^_g[`h\_d`]\ZYc\c\]Z`b]a[_ZhY[g_c[baVd\`X\]^db^``^^b_Yb\`_[ZXd\^\a^[g][Yed[]]^_aa\_[a_cfW_ajS[cl\e]__`]^a`\\^Y]`^^b]bZ^``^\]ba``d]]aVcb]_a]_^Y\c^\^\\`^\_]`]a[Z]]_e`l`Y^\b]\\aa`bZc`_aeeb^Zda`a\c]he]ab^b]dd_Xa\eZ_[_bf\^a]f`a\_a`a`bg^^a`c\^b]c_Y^b^e`_\`^a[[ak\dW^_Y]afa\b__[f^_[`[acl]g_`^[bc]^h_a_e^b_]`X]a\VheVNc_\bW`e^ba]cYba[aSXag\Zahca_c_e]cj]ZYUae[Xeia_]YnfbYZcRo^db]\gRcpb_WYjceW`Z]aXd^Y_dYgXabUZZcWaa_b^^^W]YXR][b__j[T^djaZX\_h[hbYiPe\]^`T_WjeZhb\g\i][W\[ad]pNZZ]g[`Z]b`_ifZaH]]Y_Rc`fZd^[`ah]\^Za`i_`_`b`_`^a\c]]adb]]Z]\\Xd_`^_e^_\`__a`]a[]bcV][\`Zb]c^^^d]\`_]X`^]\_ha\_\ad^XbeU`_]ba[_^]_^a\[[^\_`g]Q_[\b]a^[]Z_]\e_^Y_a]\^b]gj^[b[aebb[Z^Z`cZb`\^`__``^i^`_a\\V]Zd`^ca]\]ZaabY`^Z`^\]____cTaY_cZ]\]k^X\Z\ZgW_ZahcWb^_\a_[S\^`^X^WkZ]a_[]YTWcbn][Y^Z[X`Waa`Qa]ce^Z_^\_g_Vg^dkTe^]]a]_Z[VYbaW]`^`_Xg[\Y[WcX[\c\Zb\_he[`ad\XchLaadTd\]b]la`Td`aLX^[gi_Veb_[\mUdZbaY_YY^`\ZXbfXV]a]__W[\Zcc[^fg`a][]ac\`_[^`\aWac`ea]dW[hbYabdf_baeb`d]aW^a\a^cYYdaba_dGe\]^beb]]ba^_ca[[bb`_aWch__d]^c]ba^]c]d`bb]n]\c`Zgd^_edd`Yeb^]_b[[dbahcZce\`Y]ce`k[[l`][d]]bc`^ag]j\^[cea]b\gh[b`acWd`[`fYhb_^^_c__`\YZ`aY[Ye\`]jWaeX_\[^]]aUbW[WjWa`b\e``bd]_\ZWb`h`[RY`\jaZ]\Ne^i]i]_]`\_^XZZ[]X[^W]Xa`^b\aT`X_^[]^g`eZdWYa_^\^[`bZac\^OX\Z^_XYZkc`Z\`Z[h]\]``V^aj_^h]Lb][c[b^_\a`^[\\a]_b[^[eh^a\\[Z\db`^[ZZ``^`]c\b\ZU]a]Z]`[[\aaf`Z^baW][[^fc^^[Za`]]]]ZVe^ab\_]_]`]`aaZ__O`[^_dc\_Yah^Z[^b_\ba`]V[fd^fab\\^aZY]___Z^a`^bbg_be]hedYcYa]``__Xe\]XZ``Y[b_WbfaX`ZjX\\]`Z]^Z_Waaa\]]bZa_^\_\a[bZZ_n\Yb`b^]Za\_]\]X\\_Z]faaa\[c_e`_a[_[_d`\]^X_[]`_]]\b^a^]g]_`\b`_^_d_^bZVfZd_aad]`]X\]dc^^b]_]c]_dbZ\W`|jXb_e[hZ_^]^e]V^ag`Y`]^_^`b^ZZY`gd[^d_\^^T^[b^_Vbe_h\^_Xa\]\Z^da`caba]^^ab\\__Z``\_\d`_Z[Yca_YZ_bZ]b`]Y_b]a`d_f[b]e\]^]_[Z_[`__Y^`\^_`a\^d^Za^]^Y`[\a^jba\`b\^^_a\a[b`bb`_dbebcZc]fY[Z`e]_`Y`\\hZb]`\c`e_V\][Sa[]`Yc_~`_W]_^_f\]d]bd]]_aPfY]bY\d_Xi_aZaZe`aZYXN^Y`ZZdbW_^iagc`^bgd]___Pdeq^`[atWg\^b[[]dX^\_W_fY^]pa[^Z_Z`_d[bd`b\aac]X^Xeaag\[b^_Sd]dg]]^^]Y]\Uh]Wf\^`ZZdhX]\[^\`[a\^\^]_a`\ae[cU`a_ac[a`[__aW^g_dv^P``][a^_U[Y[_^^Z\^`edUa]_cb`]aZa^jR]`bYcdaY[_e]daabX_a[i^b\o^_b\\_c`m`Z\`a_^]]\]a^a]d`^bbZV]_^^a^b[]cah[]\[^_Z_^]YbcZa]`dab^Yaf^\_f[a^__]c\ib^Y\[_\__jba]]^c^b]eb^jX_ccZfcb`[d^c^]_[Zab]a[^`d^]Y]a]Y^\f\_`\`[\_^Z\e^_`W\a`j^]e_a_`a_`Y^d_TbY^_[Z^^c^^b\[g\]Zg[c\]g]f][X]]Z[a_][][`^abg]_`jW\^RLbY[``aV[WcU_[eTD]X^PZfZ[]]_ZY[`i^WMWa^fXZe]XaT`eWb^^WZ[YiYbS`]nRXQ_[a]h]cT^XRa\]eONj^\]`WUaZWfedV^^a[^W]`j[c^]bc`aZaE^cZVM^lcZda^TU]U[\WYQ]UXY\^VXPWjV[idZ]`chf_d_V^fMY`S_afeX\b_YX\]_eYcd^[cgY\c\[`bgWZa[XZ[\\aRd]aR]]^YS]_\]W_VY\N^a]Yk\Sf`Z_^]R\e\]R]ea]eaa]`^_^Y[`Xb]c_e_[YSV\]\cU`RYZ`[_ccZ^d`]b_\[_Ye\`[k`^X_VbW`pibL]i\adVXZ^\]ec`_W]_\cXa^\adU_RVZ_`[]bi\Zgf\RZZa[idZZ_YcZ^a\ad_lrZQ^haX`c[]_a^h\^[]`c_[]_i`ZK`oYa]_d\\md[`^YZUprQS`^a^\]a^fXZa`^lf\Sc`_g]e\d\Q^`VRY][bi`m_i^V_Gk`YV_OUc^gfdY_V`\]cccec^\b`ZP_[[]\\cfbV`VQ\L_g]Y_`dZ\`X\fa[][ib^Wb`gWZ\Y\dWk_`VW]]]VZg]e]_hW_Q`bV]_Z^_\[^b\\\W^T^\`]b^pdb_]`\e[\\a`e^\Z\][ebe^Zc[cbd[bV]Ygb[c[abZZa`gdUVfa[Vaa`[_Xaf[\c_Vaa^Ya^Z[]]b]_ceaPcd[^k`a\[^^cYZV`_ZeUX]de__^^V_^^X]d^bb_bQba^^[_n_hZZa_fZ]ao]\a^VWa]h^bd[bbh`c^X]YbZ`]_]\[b`\_^^]a_^crc^[a^Z_[dV_`eW`Z\d^\``[Ze_\O`_]_\c]aYbi^^[u^bf^na___]WYT]^d]^`Wd\[dY\d_[b]_^[b[[Zb\dfc_^]]Xjb`[`\^ZZT\dZa^a`WbaZYa]b[Za\d^jked[`_^\Pa^e[\`cgi_Z\^k\]Z]\j[bYac\PZad_dZa^WXa\e]`c_ZVgaXb_UXf[i__O_X[\Z_X_Xga__^\]VcnW^\a\\_Z\Zc]^\]WcdZ]``\bU[Yl\_W^Z`W_ccUo^b`c\\]cfSZ^\eY][_X]\^T^fbZWX^O`Q^hbgX[\_m^^[doZSd[[[]mM`[]^][]a[Z^d]X_gaTm]fb__V[cjZa_ad\^OX`_^W^M[Yc^`[`[_`\]Wg^Ye\]^Vbcg]^f\ZgV\[av]Y]`a^bYwacZdambiadd^^`V[[_bYaU]ld^iKUddZacq^e^^[\Tecae_[dccZY[\^ZX]V`^]]ZabYfYicdbZe[]a\gNoX[_c\YO`afejd[cY\c[\^[dXS]o[`aglY]hh\^ckj_XZb_c`^gX`\jYaW_Z]]bbe^_T[Y[Z]VWbc[bYnablaWZ]]ZV`]d]\]`e[Zd]V_c\]R]^YUQ[\]YZZ]X^TY`b]]Q\\jZkhXd^\VW^cdX]`eb_`]e_][a]]_baTX]Sed^c[cG]_^`_Uc{[`\]fhdcX_`ZUa\U`ah_]a`^\X^jbYcWVY^aYZiZ\^je[b]bW^U[QZ]]f\]V[b]UW[]\\bbYaTYa_\h[]_l`YZ`^Xb]e`h^_i^Z_cg]Z\`b^^`Y]^WafbZ]]\d^[^^X^]aVYX]^d]Y_[]Z_^]cWaSd]W^gZ]X]V\XbZ`[aa\c[a^icZ`d_Zgae\_[\bfg^b^\Vcaa\Ze`^Yf`[Z^\adaZ\daa^_\Y[__c_[e^`\Y^ZY][^]Y[aa]_ea`cb^\\_aa\da[Zdl``_^ZcW`]b_`[VX\i]c\^\]Ye^`a_\]RY^Z]\d_Zba\TYY]ZcW`X^UY_]_Wf[U^^a^VQZ]_USVX_TWaUbePf\ZSX]Z[e^Z\VgU[m[[_]^ZZ_egeZ_Z]^\f`a[^\XV^`]b^Z]Vb\^aZWQVVbcba`Z^aLVacb\Za_ZUXc[\`a`abVcW]ZZd\N`[XQVdU\Z[]VTb[jcZX^`YX_]Yf^\c[\_\g[_YV`v]Z`apu_`Xg\`Z``hcdacf\^fdZeaha\j\T`^a_Ya\cfjbZ`_k[__]WRbbd`Yac\`Z`qibk\`W[b\]\]k_c^\]a]b^^__P_efZov_\bcZ[^bj\h`bOr\d]]V^[mcagdYSa^cWg^]^Y`aa`Xbtx[^ab__[]l[^^d][`Vc_`aZsb`f\Z]ZZe^_W_ghZa[W^\babZYZXXX]\c_VcSYZSZ\a_Xc^l^[eU\[`cV\]``[]ac_^_^Re_]a[XX[ZZb[Yd[Xa_[Z`a\g__XgW\`bX`c]`pdV_]][Z_`ZY[_SG\m^_aa`fZ[b]`h]f]\`T`WMRbTb]g^`^_[Z]Zb\]]]YZYc`^^ac[`]h_h]c^_[bZ\]WZcZ_`eR^lc_]Z[`Vag\Z`Tb]Ya\ca\^]_cdX^]X\[^Z^`Y]^Z\db]XXfc`gbe[[a`X`V\aW[Ta]_bYai^[cTf^[`^a`Z\aXf]\a[cb^Y[Ya_gR_d_Z\fbbag]eeV\aa][Z^ca[^_cjYb`U_a[hb\Z[Yae[`ac`c_^SbeWY[e^Wc_d``b_XS_^a_ec\]`^X`[UUcad`b][_\]\b_dZUa\`h`\]Xa`]\g^_c]_b`]f^^\Zh[]]a^W^U\gabaW^WZ`\fdab_[^[`b__\^\^_`d^e\W\fa__^baec`aZh^b]^\_`^h\__^Y\ZR\^^c[X__cY]`a]X^\X_^a\[gZae\d``c^^[feZX^dYZ_gcc]Y_[\]abW[bY`ZV[^_]d]]]Z]^a__`Z__aabaa\a`b_^]__U[a\\b`ZbX^dg][Yc`Y[cab_``[\\^c^^`[[^c`]W\d`[[_aYaO`i^_^c]`f_]\\]_X]dde\g^Y^c`Z__[^^_]]^`[bbc]]Z`d^Zb]_^ZV]a[U]_]c^][][^^\a\_f]]d\]dggfg`\`[UX]]ZeY`\_g\\da`aY\WYY`c`ZaZ[ab[][`[_]\i`X[^^_`c\_[[Z\X`a[[d^_bag\`]\_Zc[c\Z_]Y]\X\bZ`bd^]`^^f^`lba_`hT^`^\_\]_[``e]\_Y[Zh\`^]`aaZY[a^X`eZ^[^Qdc\Z\__g]^\`Y]^acW^da_b]Z]]^c`]]\W\[jba^\eU^a\_b`V]fWqY\_dbcY`bUdf^]a]^\b^[Zb[]]`aac]^[[[YY_][V\_^_[_e\Z_Zaa[ac]aZdch`]Va`Z___Zd^^_aeg]^\_[Z^\lb\Zh\WRZe^c`bX\[ZYhb`iYM`af[``Ye^ac`VYUYYgZ[_\[fWg][Zag_cb\cc``YYae]]XZfXcd\f_aa]\]]^bYhXY`YZ]_\X[[^c_e^]X_m_a`]``e[\ea^\cV[[ah\Y\c]cY\ZadZVZbaY`^__[\k[ZbU_X`[b]fZc`g^b^a]V]^eZ][_Yb[b_WkY\^_e`ZX]a\Q`f`Xa]lj[Mq\NWa[XZXea^[cg^`]`ZXZSYbcebb_Wcg^db\c\eZb[dYbRbY^e^]n]chd]Wb^__a]U[Y^e_]`^d]bT\d[bf`e[f_gZ_X^[l]_Ua_\]eYWRYTd\^`]Za^Zg]^`]br\]X\a^V][_\[a\\a^`\b_`]bi^`a_`_bd^c`^`XZ^cbb]_b`]^[\f`j[fZYedd[]cb\W\caaZcV\\\Y^^^W]c\`^[W\]]\\\ab]WY\c\\``^\`[^\^c`eZ`_`[a[_\c_[_bcZ^_a__\a`hZ`_\_\]^[b`[c]ZZ^Zaacb\__]b\`[_`b\b_[_[^\`]Ved[c`_^]d^`cZ_[`]a^c]Y[_e`]`VT_[z^XXX`]`\bW`Ug^badcgZdc[an^`_`_W_^_[bSg`eVZeY[c^w\aW`_V]U[ae`_aXfXbe]\a[Z^]m^bZ\^Z]bajZW^cdPj_[]Y]\^`Z`cX\TVPZa_[Y\\c\_c\][goaZc^_gdOVbYT[cbc]V`[`k\`^_ZbbZ\_aX`XZ]]f[dcb\Mam^gZ]]_cWV]YZVbe[[\R`ZfhRe[ai`\Rbe`ga_\[^cR[ZdTSf[`W^`]f`keW\X\\V]aT[_dc]_]Zd]UU]^^`Y^_\U`ZdSVWb^Y][a\`[g`fnc[]ceRY\`\\`bdUazXdbY\^[gacY^[b]\^__[]`nXaWic^_`U_T\[g[fcYSXi^U`hec^\le`\eU`XX^a\egYc[`^`XZ\Y]`]W_cd]]f\]Z_Y[^g\Y^`__^\e[abg]Z^^V]]]aU]b_Xbb^c[\Uaa^\Ya]`a[^^^e_Z]\X[]Z_U_Y^_]]`bYcb`_`d[bZ\]a^Zab_]]]bZ`Z_`\\^\]fdace`RW`Z]^`[a[XZc\bfjZ_b_[]][`Z]]^[^\a][\^]^`d]]g_a[Q_X[[Y]\[```]bY]\_dh]cWe[^`\Wb_[dal`X\b_W\b``\d\[g]c][_^ed]`cae]d_WYYcbdb]c`Sb`]dbaa^Y^[^cg`b\baY_c^^c^a`ci`^cgc\c`cf^^[[]`Yi_cXdaj__cZ`Z\[Y]Y[Xf[ZaXf]bYe\fZa]^f_]][\Y`^[`][c_Y____f]`gcRk\cd\_k`]]cb_^\a`\g\e\X_]daZie^`Y`b_c_]^\abb^cZd[^`[W^eb]]_c_\_`[f_haX[]]Z[XbZ]Z_^dX_Y_^b]_c^YX[\Z\__b`\]Z\b]^]]W^]e`biad[Z[\]`e]_S[]f^a]c\X_\]]\_]]\`[\Y\gaY__[^][]Zda\[Y[]Zbeba^`^_[Zd]aa`[a_cb^eX^cdXc]_Z_^\[_a^[Z_\caag\[]a\b\a`^Zbec`^a`\\d][[b[bVYZdc]^dk`be\ba]ge_d\`]X[\_a\]`^fY`]b``^^\[]]]aa`c[^`fg^b^Wb]`_a]`_adW^e\\`Z`a[^`d^Zec_`a\[cc^h[[^]\b_`c`_`^f[da__]_Y]W`_[\Zce]]]\h[bac]`Zd[]c\^_b^^`cYcdca^Zev^a^_X_\e_]`Wab^aae_TZ^e\V_\b`Z\X`g^a\[c_h^]cY`X]][\^c`[^^\V`]adYcaa]^]ae]\c\fb]WV^]\^_]hcZZa]^_XQb\a^a\`_dQ][ZY\W^X_\XU[`f^^d^Zca[ebTY`^acca`Zbe\^`]^bYf[XW_S\]\dda[V]_]Zea_`deccP`]]]Z^Zba^`[eca_Y]X[X\Wea]aa\[``b[\]c^]hgm[\YbZb_[bWcdf_`__fj^]X_feV_S_iY_YaTf`\g^Wa_i\_U\X`gSXHg_dWg]bV`[fc_\`X`\`^g_Z_^][N_`\^qZ]WX]\a]bSXY``ea^dke\Yd\YY`eR[YbT`Xa^]ndfah[d^ThXmV]ZiXY^V\Wg^_b^`]Wda_Z^`eb]`g_db]^`^_d[cbaa][`_cb^[`f][c[__[fc`b\aaU]Wda_[e]_a]_^^`ab\c`Y]dY_\^f^cY[c`aa^`b\Y`bc][^\_cd[]a[^_\a_[\c_d]b]d[Ya_Z_`[]_dc]]^\d``i^Za]`^b`]a]_]_cZ`^\aVd`_dcZ]Yf`Xb`\]g_k]Ze^bWc_ea^a_Yf]`YaX_`^^a\][Sh]ZcbZX\_[[a^XYYZb^Z^^g`]\_g`dga\aM\^a^d^[beae^a_[^bVe\__b]idZc^\\b^Za[\^ZeZf[\`fe]SeZZ^^aaga`ddYd\Yft\\\adZV]]K[bZ[U_\[^^cbN]\YZ_d[\b^f[PZYYW_]g__^\]^\^XZ[de^T^WpaZ[XcXa__`b]UV_\cVcXb\fZcd^bZ^\d]Yd^_lac_ZZ\\\\_Z[k`c^j^`[[Wb[^U]``a^ad]SZ\[^e[YfU\\ii_i\b]ag_`a\`g[`]c[acZe\`^`\^T__aXaibd[cbd_Xcb`RZVX_`XaXd\Y_^^^aj]tY`R`\^[_^Y^]`a__be^[]lga\WbXdh]\Z]dd\V\b]_]\]_a]QY`__VX\]`\hd`]_e`ec\sY_aRb\WYjYRai]XSic\aNcUeZc_h^^Z[\d^d[a_jdeceXF_\a_ZY^cScY_`]fo\XS]\`ZccY]byWe]`a`[beeead^M\ZjYU_UiO[`bh\tb`_j`]kdfM[abghiYe[T]XbrdZir\b[I[bO`Na^Waail^ba_N[n]Wc_fXh\aUVaLaz]andWbZ_rcihU`cN_\Va`g`bc^[`V\]kZ^Z[_c^\a`c_[`moZ^_ae]\_i^[`eXa\bfcb_[___^Zangd_RZYY_d[]g_]`[a_WacY^e]b^dNaa`_``\s]_bg^h]X]gb___fYa\c^bb`^^}Xe[\fY`ZX]Y_cb`eca[ac`\_`a[`c__[^^bb^bcac^_`_Uee\j`_[_[ca``\g_]`dbYyaXZea^c`d[_a^b]Y^\Yf`[[]_f[^gbak\_cf^ab^^[]ha^]ea`_^]ga]\^cP\_a^^c^e\a\Y]c``a[f`g^Vfd]ba\[`ccc[`\^g_]i`jbY_^b[aeaa\geUdf`g_Y``_Sdc_a_e[\Ybgjaefi\_e[adccc^^b`feYab^^m`[X_bbcgZ`Y[_aaa_c_^a__[]gk]^YebZ_`g\_]\`X\_^_\[_cad^_]_`d]^]b[Y`ec_T\]e`\bbd`_\[[[[fZi[cR_TZ[^\bW_a_Q_]Z^X[_]Wa]_^d`e]_Yb^[gb]``eZaab]fahf_be^Y^Vdb]_Y]]]b_W_bcTb^g^[_^Y_`T\\\lVb[dYc\[bP^d\cX^bbgP``]O]`p^_aa]iY[a^\\___[_Z\YoW^^`Yeb]\`bd\X_v_Sb^ZhXb\^]dcc\lYT]W_\^RcedXQ``]Wb^Yn^p__XpXb_a`VWW_XXZ\bY\^^W]mjff[\[Xg]YYYT^OVal]N^y^G`_g[Yb[Y}\\ha_]_9Yg]WSX[Zaj__YW^YS_WMSUV[c\^YYaYI[^h\^akg^`YN]^gc[S``maYV_U`X^_c^_ZuYhY[ZZZ[]`bMe`][YbW^_W[gV\e][bXX``k]X^VV\_U^QPTlVZbYbXfc[WWZYa__`]``g[b_^Zdd[`__]W^bdc]_ao]^c]c`ZV]Y]a_maaZc`f]woZcjaa]`]e[Zoma``da^VZ`gYf`^_`_]^Uc_ZY][fWX\T`[iXi[\bci[eXe\ZW[[aT[\[[Zch^j^_NUjll^`\_mX]`dwaWXa^_]a`Z`cX`ptTf]xhZVar_YS[X`YbfrfUecXjWZcpcf_OY``d]Zdf^k^a\^GW[T\`YZW`@`^]^acbt_Z`pda\^^mdUb^cJhX^WhWh]apWZbSW`O`PY]\dh[cf_bcca^aep^\d\eW^]mcYa_XY_]daU``cnXS]VW_hb^^l``]c^afYT[`Z__^[[\[_[[\VZc]Za``^]\e^``]\deZ`ab_[`ebd^g\`W]da_]]a_WZa\c]Z_Z_``d``][b^`]_Z^W`^`^[VZ^_[__aX[`_h\ba[_Y]acbZ\`[_U[a[]]`Va\_]XaZc[[`_\b\aa`g^_c_d_``ae\_\aVf[b[_c\XY_WcjdZ^`Z[^]_\[^\`a^\__ibbd^Zb`_d_]h`cV_a^][e_[\eUYc\Z\_fWX\bab`V^[\e\Z]`c`[Xgea[]bR`aTd[hUf]de_cd^_Xb\n`bWalcYadbeXfgfbYZdcT^_U]g_[dab`am__a_^c`ZZ[\T^_Wdi]__c`R``\`\gaeadZZ[^`^\b[^]R[a\b_Y_dW]pd\cW__c[^_gbZ\U`f][]_``WYffbiYZdaZnbb^[X__ba]_Za_YYd`[`Wh_makYaaZ^X^_b`[Ui[_ZZYXb`gXfR^]]c]ab^jXd[e[cU[[e_[W^bbY__X\Yd]^b]YYa]ZV`SaXZlX\]bcVeaZdW`^]]RXa\W\U]_XVZ^]^^U[`a\ej_aMh`RZ[gQa_Yd`YOZ_`\][Y^WWVg^`\XaY_ed`ac]gd]Ya][]\Z_Y]Y]Uba]bkX]Y[`ba[f^bY`\b][]cg_\dac]_[YX^h]_^Z^`u[]_caY^\_^YYZ\Y^_a[b]^j]`fa[_ZX^`cadf\`_`iSWX^b\[bfZ`YfeW^]ZZdY]]\Zf\b\agW`b[]r__`Za\]Y]\dfXW\YdbaWdZe]^X\\YYdhaWVch\]YbX[d`\^\bZaZ\hh``Zhe\dYUZ][`YZe\h^^X\YlZ_Wg^Y__YZdh^[````Se\c[bd[aX]i]Zagoae\^a[Yi]\XY\`Y`l_`i_W^\Ybd`iaV\XX\c_Y`h\cc^T`T_U^^Ve]c_a`\Se\e`]_c_dYW[[ZfXYVa]f\^aaV]VmW_UZb`hcjX[ga`[^V`eh]a^eZWVZ]Z_^^]Y\\[ba\\^]ra]_^_]eU`^b\`[ac_\d_]_hX]_b^WZ_]Y^_^\c\Z`\b`Z]`e`cV\\^\^\dZcbgb]^\X]a_g]\\c[^]_i_[bY_a]^^^]b[W]`_fY\`c[_``cZ_Z^][`nb]_`c^_^Xc`_S`cX\a^aY]\[_bY_^`_d[_Y]d\\`]fb[f`\a^_]b\a\\_]`gZ^Z[a[[`Y_^^b]]_^\PY^^\^]ceVdUb^_Uh_dda\VfWc`Y]ZwY_`eaTecVbaTc`aY]bVcebZSdZee`naLbV]\bU]_e\abcib_Zhe`caard[fe\XVZ^Y\kYLeY^abhboec`T[]dWdXY_\b[c\j_Zc]bZYj`cQYZVYhVTa`mmWdc^W`]^Zua[a`\c]\ZcUYa`hodaZ_Z_a`g``^YZa``_kZaW]h_\[a~agc^b]W][TW]n`_iaf^cvVlai\]_`Y_]k]ccMW^^g\^Lde]hc[a[[]`WkdhZf^cdb^NT[S\Z[edX`a`]]V_Y]_Zh]_da`]Z[a[\`_PldeiXacVaU`gwQVa[c[bYbYXbOn\]^`jZa\d^Yb^vWXX[b[[YTaS^]iY\Q^_]_ac]ep^Ya[cfedlcYl]b[]^[Zfd]YVR_e_Yeb\Ucd_WVtX[aa\`BYPjc[[^cZZZ^\\j_TYY\ca]]\fZdjdX_``a`LZ]elW[bibt[\bl^cW[^b``ZNP_aZ^^d_]PWJbdPif]S\Vlgfcc]O[\X_pa^X`haYJhYd[ZXW\^][``_\`UkamaWb_je`mZaRkem\__`b\_YZc\_\a_^_gdaVPodS`b]dZda^kb_[[h\qSc`dgS]___bedI]Zr[^_a_Z[Wh\\ba^`Xb]b]a`e[]h^Y`cWjgZ^jbW\^_da]_`a^]^f\\[^T`c]^g\\\cQ_SV[Wdb_ua\[Z^bck[e^[c^_[g``W\\bWYf\f\ei]mn[_ed^f[fZYaX]b_V__c\`l_dZ]^f_]]Z^^gZde[`\Yb^g[_]^eaeZ]b]cZU]_cXU]^]a^[Xga`d_\a__ne[X[XX^^ac`aV^cWb]_eZ`]]K[_c_[U_Zb\`^\[\]\T^`l]]bh^\^\[Z^aZY\_]d[c_fd^^^_^^^[]c^_Z`X[gY^]eb[_Teaia_[\a`fb]aW`_d^dT]`_Z]\`Zc\_dg[Y]^\[X]b][Z_d_Z\]bY\cb]`_[`maV``]dh]Z]aZ^h[Z^[Y`]ZX[ScWY_g`c_Y^c\eZ_Z`^_]VZYUaidja^XYZa^m^_c[e\eZbeYa^[VY\VaRfa_YQ\`^ba`Zg]`U_`W[ZbWhXa[\[bZ\S]Y^bZUT`cV[i[\]hl^U]`_]aa^f\ci[YaWbYb`cX^W[`Z[\b[a[]]Zn_YN[\W]\a\aV^Za^_dZ]a]e`d^^b__d]aY\db_`Y`_]]__a\be[`\\]Z_bYYX[_]X_[]_``ab\^]Yi^`baV]d[bbaadcY[[ga\^`\_b```]_[VX_\]Zd\_X[]bgd]`Xj^\^Z\^aba\ia]bc[i\`\[[c`WZjea]cg[\h_]Z`__afce]^\`V]a\Y\g^\b`a`bWbaj]_]YW`Y[]`[af\]Y]UTWdq]]d`\a[Z`\c^Za]a[`_^]_[bhrg\_Xc_^Y]^g]_U[b_ch_`\``Wb^_ZbQbMc_bf]d``_Td_^^TddW\Z_[_cGf^]`daba\]d_c\j\g[\^\cRc`bW_\^__Xaij^[][^[e[Wfaa^aiYbd_R\\Wj]g\[\\bh]_]Z_^^c]Y[\_a_\Z_f\beYc[^^YZWd\l[^afW]]a_^\b[Y\a_k`^aY]`^]a]]`Z^[Y`]_c^ad`^`VXa_]XhZ]_[b_[dg]_Uacb^[ZX^\^c\``^\baXbb\Zaa_ZeXa^bYaVec][\b_VcXX\^Zb\U```\i^a[fW]Yb\]`O^Y`Z\^[b\_Z^Y`_dhY]]]]][j`W[Z_Wb]ZUXZS^X`b^baea]Z]Y]^^bYd_^``cefehg[YV`VZ_dT]]g`de]d`hg`Wd^d^Z`\_fRa^_ab`avW_XKicc_ZbW\ocXaTkZiV]Yb^cR\Y_Z^h\^id[Y]a^Yd[^^[`e^[he_a`_Xfd\`X_Wb\boa\\^_fa[aW]b[Q_`Yg[ZX\`bSb][Z]id``[Z^_agZVlcbW]_hQhaeac_ahab_\^[W^cbaS^_fcZdb]lc^Yb^_b]][a_\e^^\aXc]]Xgb[eW[n]Z]`j`lb^][_^Y]^ib]ZZ_Y^e[fY`b\\_ef_\ahaae^\_`X^`]]ZgZgf`ebg\YhWe^[`__\^ag`_Yb]``bXZgkdY[b]a[^fb[]^bfn^fd^dQ`d`^Y]c]^]d]`Xc\`^]a\ZgZ__f_qf_a^Z]V^\Y]adZ_]]gcd__]cXcWe`X^]]\Y_`Xj\^[b]\cY]bTb_f`gma__KX]b]^T_Ya]`_gQcjdi^aP^_`a]^_`Y[\Yad^X__ae_b]e]Zca\`_^]`iX_gdcd`cjbd\o^]]f[`_\hWaaa_b[XeVegcW]af`Zn]f`dWZ`R\^bm_\[b_fO\^`^\]Zi]aWe]\bam`_d^ZR^_^^[]lUbS[cb_d``^adacc_`[]_X_\Zb^\[_^]][\[`YZ^Y]_Y]][^]__h]ea`P]ZaY^]XfdYb`W^bXX_`b]abb`d^\cb_]\^`\e\h`\_b\_\\X_]\]]\]^e_\^]^\]aXb`^a]e_\b][^edY\d[`^Y[`^]`]\`_`h[[\aY]^^dX\]cbacaZ\Zb`c\bcZb]^]^]``V[_YZa_]^_]]X^_b]^]Ud]e_X`_b]]]]Z\Y]d]bZ_`cZf^^\Y`d[XXa^edeiU_a][c^bX^VaPYbf^\Vae`XX_a[V\`[e__^ba[c]ZYX\^j^]bUgY^\a\[a[_]XX]Xe]_f[[\X[`f`[aRe_Y\_iUcc\^[X_]`]]XX\[_a`^ZfgX`\Z^[cY^aaW\_fXc[Y]Z]`\cbZ]b^^ac^eeVe`]b\`_a`eXsa\Xd^Y]Xa[^Y\[]a\b[iVZcmb`b]UVY[^W[e[[`Y]TZ_[WPbaj\b_Z^^bVdgfbZ_he_\\e`[^[cX^X`^h]^]ZbV^YcbZ_^Z^^^m]\_]\\^a]^^j[^b_a^cUcXY[VUaSZWl|\]]Y_WX]ca_aa]hbZLeYj\`[]b_]\YaNZae]gZbeRa[^^Yjd_[be]ac_XafeVT`a^]dYi]_W^\rVc]op__]\[ZUYU_`fm{\bR_d^b_Qsna^S\S`gbUeY_gab_TC`\\YbV]Y_PeZ`acceeba\tcd^bZVhPf\^MY\VUekgWbZaW_`VfKdS]`ia\a`if_baW[W[iVeRZ^Y`WmT]ZtQ`R[^aWbkgp]H^SVY]Wb\T`T[uTZo]Y^Z_a[`f^Y^_^\T]^_X^cb_`\eXW]^]`YaVXaX`_Z^h`a[[^]J]m^]\__]e\Z]_e__]]]]\\[Ze]aaag_kZdfaX]m^[^iZ__cgacYbWb\_b`e]aa`^]bg]\VaZ]Ya_[_XeX`VaV]^gcY][_^Z_^[\Z`Yc]a]^Y^c_`W^_db_YcUZ_\r^e`ab^f^Za\c\Y^T\^`c\_acWZ_[`l`Y]\R_qhe\^]mb^X`\^_[bYb\^ZXU\]c^^[[Kc^^Z^\]\r]TV^U]TU^Z[\a[Y\fbY[c\]X`fda[YT[^Z]kY`_XVabU]_^f^cY\\Y]]YbWXW_``^\\\Tf[WYZZd_`dXZZeX[aT\gYXUY^[d^_PbdcYa[ad\^Z[^WR\mlVZdVTh[_Xd[U^a[^aba_\aaae]^]bcace]_YY^aYceY^d_W`YY_[^h]cYZaf^```b\bYYb^f[\fY`_\^`\\\[_Zb_Z`cb_^^ac__]`^]b]^c`c_b[c`a^c]]g_a_l]___`a^dW\eg\`^^^ag\bdbec_]Z_b_``e[YcgdUe`XZ`__\Xhe`^_cWacY__]aZca``c`]YY[blb_ag\_Zc[_UX\`Sp`gf]_caTb\^Zccaga_fcYT]`[ZbbZYZl_h^\\YYXf]aYXXU[`h_a\XZ``^ZefXYh`d`U\\Y[Z`aXZc^a`V[S_daZ][gXaYbbgG\]]_W_`R\h]__dTla_b_Xb`_^^dZXXY[^Y`_\ZYZkZ`[ZdW`ra_S]^eUYYf[V]^^\^`Y]`g[X]Yl^Sj`hY\]Z^^_wf^_YjxddbYa^YV`j]`]Y[i[Tf`Z[e`]f^U``d[ZSg_TWaSgVaZ_W`_FYeR`RAf[_\]ZX\YdaIZdX]\VV[aG]^]Yd^Vj\daYScV]ep]^^c^eV^_Ba[h]^gdb``wTQead\Uf[\[^Wecg[YHgUYZ^Z`_k^d_W^W]`Xdjda\c]clQ\]^bH\YWh\\bY[aacg^e^]dbb``W_]\[[^a]c`eh]h[Z]_Zcd\`^]XaXc`]Z_bb_^Z\]^hcfbi][hZZ__d`a_``Z\U`\c`in[``b[\n^e]a`_bb_\c^_]fb]]ai`d]i^^\_cde`\[`^V]^^_c_^\^ieb_Z^d_][`c^b`b\Q_b[qb^]eT^gcZe_aah\]_b]\cs]]`bjeh\bg_\]cc_]^^\aiX\[^`a\YbeZDZ^[;\aSl\[\[`^i__ZgUO_]_X\W_\a]`Y_eca=aZ_XX_bW^\]b\Z_]R]Yb^b[_a^b`UTa_]_`5\XX\`TCRbXUaY^Ra_[[^]\g]`a^_g\f\bTSWbbX[]Y]_Y[]]f\bX`aPnX\_]cZNMbSV_^^_]]dY\a_^RZST]]X]^]_Z\\\\[e^aedZ`_b^a`___Z^^n]^^^]b^___Yadc`dddbaeab^`^f`e__]db\_[\^]`]`?_`^^g`eY_cd`a]d^e^dbecVdacd`_V]]`a]b`b_a]a[[`YcS``bdcba]aZ`_[e`\a[efaki^\j`\_]c\`^[`d`[aZ_X^e^bfbZe\^aYbb_`e\b^^l_bQd`^`be``[ZVcY[a^fa__Zeca]__]Xcb\d^acdVj]f`m_g`YZaZ_\abY]`WZaaedb[ZZ_XXUZYbg`WdX`Rb]faf^_ccc]X^Yg\`d^^Y]^^]Z\aYfa``[VYZaUZU[^\dX\Ya^_\^Z___gkgZX_[ned]^\[a^]V\_hebe[Z`YfXd_[Y`dLbg_Uk^_]d_fa`P^l]SZ_bYVda]ab\b[[U^X_aT^^]T\_^f\_N[c`YWdY[d^ee\beP[_QY\]bd^VWcudTc^YYetY^][c`w_\e``^YcYaaYaZV]cgkY[_re^^__i_[eZ[Z\]bae^WcPd\[dYe^^```hZaWYWW]Ubac[YPa``V[Xai_[[WYgYcaX]aaU[l[_dnOgZYUjQfhf_W`T^S^zWWaZWfc[Y[^bV\_UXcZ`Ze_]Yed`\WTiXZ]a_VZa\[Wf[`Y`b]b^b]\]W[\[V\\aYQd_X`d[UVaPWd[[^ZZ_Y]_nTdg_rZ`_]]R^]X^[[aca``\]bM^cYZ_Ud__VUV[_`a]V^La\_\aagY`XZfdYShb^VX`b[YZ_e`dWQ`fcd`]]^^aU[]W^]Z]^^e^Vsc_WXWZ_iaX[R]``VX\aX[bYYbeZc^[Z[^`[b`[]Z^]\Vic^P[_b_Pda`e[^ScgcZa\ba_kYf\[e[^Yf`oaXYcWWca\[UeYb]nXVa`_cZ`]`Y_XU^W_biY]^cgcg^_ZF`[`]Z\]adf[cYce\`Zw\[ZcZ`Z[^dPZcY|`\X_Yd_YYkbbYYfUYS\aiaZX^UZ[Ybd`^\cc[ZO\T]Xa^Vmaa]^b\W^]WfcZ^a`ae_^_baUYe[]]S^dU_f^ca^cVhbn\b[g\ZY_`\c]X]YVY[_]aX\PYU_eY\cb^_ZdV\Y]\]ZX^]\_`^b[]c\^a_\cc[VWSaaWedX^Y\aRd]a]a[af[^f`[acab_[]cV]^U_^^_^Y]^]c`[\[c_hYYbZPbWaZ`[\i^c]V]_Y^^a\cZWdV[]_dY_WZVVa`Y_`f`]^]VYfac[_eh\a_]Y``b``\eX\]^fe]V[^WXZ^^aaTaZcYS\cYZb_Zd^a^`WfZ\bb[W^]b^fi]_eZ\V^V[_aY\\][af^cZ[_]]_iZ^[Xbe[]aZZb]ffZ[[Y^\fX[^]WV_fXW`[^]^]_if\Ta_`Za_b^\ce_\gVbU\Zh]_^Y_mbb_\Y[YVd\c]_ejYc[^a\V\Wd]]cZdaddaRW^[]]\]dbadfZ`_aja`Y\^dg[_agfX\k[``bg[^]_aj`Ob]\c`[[hc`]fenWm[fYZ[b`bTa[bf^^a]aXedp_i^`IZ[c^Y^X]ZZ[a\Uf`]\Mee^WZ^ZPdd\Z\\Z__YZ\]^`Tb__h^d\h_^O`Z]\^^`emg[[]cThbZ\ZXa_^__^Zeb[b\^Z\[]XV_aa`]^b`_aVY_[\[`d\]^^\X]aZd[^`abcYb^]lf[^TdeZ^R[ZabZZY]YYY^_b]ld`b]cW^^ega_d]c^]\[^\YX^^g`[kY`Z_^`_foT^\Ya[Yb_Y^hYXU]jf[Wc]_]`\]WdYfbVaZX\]\eZ\e^dVnY[Weebk[b\^a[\`cdV^\c\__^\bY``^^b^d\gc_]`\_^^`_d]X_]`Wf]W_Xc]^\[adM^`WYV\bZfYY\ZbY[\`__h_Y]a]ad]^Xd\c^ea\d^`e]cZY]Xa^YWcYZ_^^]eWXfhcdV\`^^b^_Z^fbbZ[]Z```dbZ`X__^Y`^`[_b\ecf[[\ee_Y^Xd]_Xa_\[_\`X]`Z]\^\Y_`aaaY[`Yb^c][Y^a_h]ZZ`[dXafe_^[_[b]cc[g\`Zamkaa_^d\^bc]f`bcZ^ec\deg_TbffZaY[_g[aXc[VbZXeb^U^\`bX]Z\^\][`aP[\^b_[aehUe^ceYhcedP`_a]f^\X]ZW_`_W`_\fZU[a]^a^Y\Z`ji^bc_X`j^_]_a[ZYcZ^`iWXU\XeVY^]ce]`ke\YOUa]c_\baah___a\^]a\_`][[^]\ZZ[a`Sd`f]^]^baa^^eX\Xbc`aXW\_\^]ce]__b][]e_PYhV[D`_e`aaZdcV_]]_a[_ac]\`can]c\X_ab[\eb[a_`bYrd\^a^^]_\bYgc\bb`Z^]b[da][b]_\Zg\d[^_^[WrZ[_b_Z[Z\cb[Y^]dWb]X]l]^ea_Zc^[[[\]ada]^X^W__]WUY^a`ea_\\Z`ebc_Vad]b^_ZQd]]d``_\Z]iZjc`^a[d\^U`aeia[[\V_Ze]kc^WYaY[[cc_][_cac_e[_``]]_^[bY^b[]e[``[ac`S\_Z]RcYb]c`XYb^USSgb]]^ZY][\^[\Z]db]Y]cgUYb^a\d]_\c\_\]^bb_i_Z[akZVc`[e_afa[^bY^Vc^Wc`[`l``bYZe]Z]ZZ\cWd_Zd_^LXZcWa]c^b_`aZ[ebbRWVcX]YcZca`]^]WW^_^bs^^`]L_]`caia^aehaeZdzbg\afZ\jT^Nb_]]]edWW]Zm]`c^_abagX[eUk_d@da_ZUap]_^`]XZ\V_Xa[SQ\[aaWd`Sb]lWaceb\`dc\cZUh_x^a_h|amZ`a\ZW^]_a``_`V_e]Yde]e\^\`W[aec[X_][^\[R]f]_]Y[f^faYYTYb_bm]b^Z`^^^gidbcX^`dZ\\\aXbX]_h\Z]a]`_^_fYab`ga^^Z_beXg]]`]d\eYbW]X\\]Vd`Zac[[Sb^RUZ`Q`[agYYZU]]WZZcd[YgZacc[[Wg^^]^]`_c_Z]dL^Xo^Yf[YY_d`^a[bf[U\h^dXf_[[^b\Y\Z^]]`a^_dSdc`_dgaYc`Vad[fb__^c]cmae`U_]_ah\[]bkZfeZaZX^e[\g`ia`c[_a\X\Z]befkYe]_aaeZa]VgWbfj^Z[\VaZ`_[a`a[ZWb_c]eT]cXYWfed^\hac_Z^d]\b\hX[K_]i]_c\YeWc^bYhZ]bbe`g^b\_][SYgg[b\ecdY]`\^Y[\^`f_d_]]ei`]deVa^`d`\bf`Y\\^_][l^^[caacba_`]\WZ]cV_`_]_\\Z`aY^e]_\_\d[b\`b_\cb]d`^``]g]^baa]f[__al_hSb]_[b_a_W[``^`Z^Zgn^addh`^^^Z\X`bc^[beY`c\e_`\`_ia^^cZ^_\Yc_^`a\fXaW___]\a\``a\_\]b\Z_^Y[ab]__^_a_a`a`]Y^c^]Z]]XfWa`e[bY^_Yi[Y]]\`_o^]f_^^[dZbaab[geYc^`]]Y]``a^^fbea]Wge\`dacbdbc`ccW_cbU]^ba_Y_^ec[e`]b]\c`X`cZU^b[\g\Z]^`[`bb]ec[^]a^h`g_a\Wb^a`Z]bcbZ`\^]ac_\ZYcaW^[d^b^f[XcYy[P_Xh]`b\_gbb___e`^b]`_^[\[X``k_^Yaa\_^[qVmXk`\aX\fg^][]]]bh^Mbcc_X`^\_]aZf]b]_[b[`d]\Y\^fhXba]b\_ba^WZ\[]Y\_r_gfb^aajUYka]g[\^bRjd]j_WdaY_g_Y^WZ\]b]T[\^_]]]\Z^kZcX\a^a``Zbbb]Z_YZ\Ycidff_Y^_`T\\ehpcZLACKKMIIGNPNLMHMHJLPNHKHCJIEMJEUKQENHNQLIHRQIRIILDKJLGOFHQHGKESQE@QKROFOKEDHPGEKNMDNLJQNQFILLGLNHMMMGJQQMKIOLNFNPMJJMMLGMIJSLEJNIGKUGNJKJFDPIPRGLHHLNLHMGQNTRKHKJUIJOOHTPOGPIHOLKMACNGGNTPOPMPNPLLJBKNKNRRLMHGJPKSNNOWQPLBLKOHKNHRKUIONGAMHMIIGOISPQKHIKLHPPJQOTFTPJRGPZHNISQGXOOFRJAWMOOCSEGGUVJPTIPHNQHENQVWQNKLVQKQCYPDRNIVNPEMFLNEPHFTHKPUKMRTSIINKRUL?VJKJKPLRRPNQHHRNMOJJLRRKFOOQMHFN\MQLNJFSPQMNPSJLSDOPWPJMWLSNUFLKVJGJPTKOOJRUFKPMGOINDGJIPNOYLPQVNLEOMTLNHVHPHMMPTLOMMKJFMTEGOODGEONORDVTTQTJJPLLMFIPTJGSKGPFRFIIIPKLLLSFJSRJYMIVNTXUOLN[HHL=SOJMIPUENEUPYMPPNOUTKJLGTJOLFSLMKMHMAILNPGJOPETRNCUM`MIUJLKMORHPLLLBQNPQPHIEDKOUSJNRJIKVKPNLNEHLKHUVJGIFMWFJFINOPPPOPRPMMPMKMMRMWKGPLMRGOPPNQSXTWRIIKMSVGPONOGEPPJTMHSGNNMLGOMKPQUPQJULISMLGOIPJOYXMM@QVGWJSFPXMIPJMRKOKLMHL>OMKWMKOSSPLJOOJOMQLLIPUNZHZSOPFDPCSGMNHNPPIQSJPGOLRSG\LG\QJEEVMCKQNLFPNHO@RNJYTTNNQKMYJEJGNOIZNPHUWHIMLJFPLQRNPHPKMZIIJOLXRLPGSYKFKQIZMJMPRORLTUSVYP]VSWVTTUXZU[PXR\WWY]YUMYTXUYQ]XTSOaUYZTUQ[W^P\_INUVT`VUXXTUW^S[U[]ZWUY\WWV[PZUTNQTQZTO]YTaZRTR`TU[YNPOT[TSZS_VQbYJQUNZYRSSVUT`X^ZOSNIT[Z]USTURHZ[bT^ZSUOZROYWULFWU\SQXSSUQSSQPVYYZVW\VWTT[[[TXSWVZUQWVRZSPVOZRWZ`OW]UUXMWTUVQO[TU]_T\]`PQLSY\O\SKW^T^VVGP^OWZMZSLNUW[[_UcZUW]YMXW]SPPQOX`QZLJUXUVSVXpQ[W[[YMM`QWNRWR_ITRS\WPKPHHSKUOJMKPPMLGJMJPOPSUKNPNTSEPQVIIXWTHOOKLSQYROLUTLONNXJKQPQEMLSNPLOCPHNJHJSPLORKPNKJVVOSKIGOTO[KIOJQLSSDSMQN]NROQJLLRLJIORQNKYNQQMOKMROHFUTYPKURSGNOIHFIKQPAKOMREZOUJIKSQNQLQVTSUKKJKLUTSOTGIJUOFKURQNOFFDROJNKLSGQS^ISQENMSOMMFPKQMOWUEONTRQIQIFUFKNOSMUHIGIUTPPSRNJLTOEJLRJN\SVKQKRQKYIRNPNRK?OOOLMRHKOHQOHKLJLGFNPILINPMCPOGMHKLWGMWSJXOJOQOPOIERLDQLRTJOLHRMIQABYPLSE>KKUUQMVNJLNNLBNQOLILPMMMNOHEJMMJQWUJFQOJPVRTOEGB]NJPRJMVANSPOOVSQLSONSOM[UNSKHLRQOQULXBIRMVKPMLSJVLPELQZJKLSQMVPMVVON^HULOWMOPSKDNQRCMIIWHNRHXPXKIDLPSTPJXILKJIONJMNKIKPRNQLNGMGXUFQEURRLIECTUMKOMNOFPKUSMPUOJQIQJLLKHJXPYLVVUOMPPHMPQNFYHPOYOOMFIHHLMSJLQJLPJKQOVILILSSPJVROMQQHCESMWVLMCRBIILLMHLLMGJLJLENQMOENELJNVPMRNZNN[VLKKOLONMKOPTJJJQOKUKMHMQTRRMSMPVVRKSQTNPFFNIMGHKRIOKGLKKSRNIMUINNKLRMNRPLQPKKLKLNZIIEOOGRSKNNJLIORJOYIRULMHFKMNRMNPJCLJLNKSOFPBJTGMTOUFEJIJNYDJKSQ@NTNPGHONKMMKJLRPPJIOMTHJILKQNHQHNKNPNMKHLZKUNMNFAPSOJMFIOIEOHMNJTMMNLGKPSNKMKNOLNMOGPNPLIUTJJJKNKXUBQLLGNIOMOHJOFJMHJKTOGFJEJUOOOEEKJJQGGJRQBJQMLKIRSISMJMPRJKKFQRPINQMOJMSLHIVAKNGNLLJPQIQHULJDRLRONKMLMILHTNHINPLIJKMIOOPJQLSXIJKHIHLLOQQHJLLHPROLNKOKIKRQKPKFRONLRINMKIRPINMOLIFOVGJTHVRQGJSMJNNIIRULIQLNONJHLLJMOSKVNLWLLUULOOITGIQMKROMISWAJMMHGIKXQKNOQXIQOJSONJPNQSMKJMJNFRHHJOKIPQHUUKLGRMPNJGMNPMKGMNAOKOUYJRKJJLEMOMQDKHKNMJMJPOWGOOLOIJNJRMROJKRQNORGMHUPMGMJNDOGOMI>OQRFLKQLDPLMIVMPGOMSJALELRPFPELOKRONMKFCHJOTIIUQSJONLRNPRQJLSKLTIOGPGKRKMTKRLPKMUQVSNONSKMNLUILVRLHGIOFHIFPGENRKHJQQPCHITHGOTPJLOLOQGNNJIWJQKHLEFOLKKOEJNKMMLHNQJNSKTEUPRPLWOOPM@QSLNNLDNSHJCKFQHECFJFDGBTLNVVQFNLPNRNKOQOIQRLRJNIQLMOMKMIFHSJNGLNDJLFGHOMRPGFSTPILQJJMJHPFMJIIRWQZKMFQBEIFFQPLTPJDMRKMCGKEWZCKINTIJLGOGAISSKMOWEKESOPTMSLESPQUKUKNIKLPIKKVSJLQKEOSRPGXMLGPEKQKINSPKGYRJGPJPJIKILLMSKUQKPDPTTHVDM@JFDVGIJLPHLHRMGPRULTGUGOTWPJWNHHLOLFLKDLNNJQKLMPMJJVLPXKLRLMAAHMKKFJRJNERIMKATRTLOEQGTJLNPRQOSPNPSSSLJMQLL?NBKOPMOPGW[QQLOJJLPKJLODRKSORNRROKQJDPLHJTSLMJOEQHUPJPPJLHHULQ_MMONONKBMPVNMRFKLMPRJNREONLKMUOHNGINUKRQXVLQGIPRHBKJGADFTMTMQDFFNVOPNLLNFEL[LKLFGSNUWPQJQN\PLEHQPFMPKLOJSNOHLJIPSMRTQNMMQGOUQQINLDJQOKQNNGSNNNJDVJOMNNUHVNUPEPOPQPMPJQPWKLMLNQMKJFPPUMSKFCPKHKLLIOGMNPLPMMLMMRIOGJHKOPNMQMKPNLJKNKWMHSMKMLJKKFHLQJPHNNOVPMNGOOJOMLNMOOGISPJCLTPGHJHGTJORJJIIJSKLGEKNLJSKGNOKQFKIUMIIPIJLDNSOICKKRKSMIUMCHMVJQLKIIUFLXLLLNOTVKPHFKLPQCJQOSMPJQSXLMPQEMTFOMMENHMRMVRJKPHKEOGPMHQKSJIFMIJQOOLQSTILWNXKKQQTLNVFNUQPSMPIINFSLIGLEGROJONIMPLSIRKIFIHWDWPKKMJIIBJUKMLEPJJKPIOLJQLSLMPUPQOGHGNMIFRHQYMHRMLMNHRSTMEHNQFHJNHHHLIKSILNKGPTJKTNOQGNKT@JDOOHMPLHCPOLWIOPLT@QQ[NPYIRJNRMGPGBXP@VJMRHRNIMOTNMGOGLARSHONIUMPKELKINOJOMJHPEFNJJUIMOFNNJPKLNLOLSMLNJNKHHMMOCRNMHQNILHAJPWTOKSNDJQDSGFGNPNKHMLHIGNOIcESJIPNZQRJMMGQJLQQQJIMSNISOIOEOQTNQFHLQRTQQNRLMPLGQNLOOQOMMMJHIHKNNPNLNWROLVOFPTOKHJGIPKROLOSIJRLLOKQUMKPQSKPGQJKWRLROMPRCHNMMJTDIRPIBNJFJUYOLXKXKCNCQSLLIcSFRNRJZPIKIRLRQFDMBPVLLMKRPLSORLPJ\FJLFKILJGNLGKKOMION[LOROJNUFJOIHNHQRLOPRLKLGQJOKILVINFM@YLXM[QPMCLPNTOQKJKSJRKORGLHUOPFOSKSPJGPLJMQNMQCSRLNQOPJERLLQORLPVKOFLQKMILSNLJIJHUMMLNGTONQMMRMQPJPSTIQJJKKPEQLRPSOOPWQIPOPHMQIHSMRMQIZRKMOFRJOJKSTXJRORTLYOOIRPPHKMGJPVPNLBSJFKLNLUHLPLRULKTO]MJKIQESHRIPQTLJEQMQIPQVMNMLLMSRNIOHLQONRBNQSMHLRONHQMLKTZNNKHEOBLJPPPOVLLSTKRQKQTPSRKKIGPCQMKSNMFOKJKJNTOSIOMNIJKOHMLPPOQTGSPHMSPIUJMKIXVFOQTNDTKTNNOJSROUPIINIWHIPIGNLENEMLMKKORLLMFLNUPLKNMFMMMJNMIHQGEOKGHNMKGVPVVKZHKJKKNULPTMRC[LOIWMKIQCTPNKMSWLSJEPKCMTFKYOSNTMMKHLUSOREOLOOURGILSJQSOSSQJNJHGLLKJNOSNRLSKRLTO]WHICKUNLTGPMQKEOHQOBEPMJWPJNTEMNHNMNTKBQJJOLWEENJIKQSTGHFM@LLKTSCLQISKOFRGNPDOGRNMR^ZMKMRKNMYJSIOHKLHTSJRQVOOMOPIEMKTLSULFKTSKIYMUWLPNPUNRMOPGTRKJHOIINLNLJNKQPRCJ@GJQRIDSNNPSOOLKMIOKQJORUIPDHSNSNSUGFHYNNIIKOTMQOCSLPFFMMNPLCPLOPKMHMNQILKTUJPGQFHNHKOFJCMJGFNTDOHRMMIBKQNRVNGKGHLKLQNPSFOCSGLQPZKQIJMORCQJINFTLHVFJEXNLQNHOOMPSUSDKOSKPNQVMMOQSLDKFSBSRDYNMIWQTKMKRKWK\PDQONJPTSHHPQPMSHLJIIQKKEKOERLIJHKMGPPHKQLMOMTOKPXMIIPOPPLQURXLOONOQSFIONPRINMKJJJNQSKRRZRWGCILLIONLNROMMMMQQLSRQPJRNWRJMFLOQLLNENQVHKLGSHQGLNWNOFKSEHRMFSNPQMJJLPQLJNHMSNLILUOSHPORDSNFIRNPGKQSQKIOJGKLTUOTENLSSPKMGPFBPIMWRFKNKQSKPPGQUUGQQHONMEIMMOLVG[LHOIHNUKTJMKMNTVRSSOSFKBRSKOGOFKSFINJCML[IHEDEOKKHGODXFIOPJLUONTJMINGLJQ]RNFWQGRRDTLKQNNLJKJQNKJLRLLVEGKMIPMPJOPIODIMGKOHIFLJNSEGIIISKLGJNPZJOPQGZTSPFKFLQNLLLIGOGULRROKQAPQPLMKFLGWDGOUNVIISL?RKQMGIONNJOLITUQNTTKJPMQPLOOJDLLLKLRTOQPITALDOMNQIINPNMLJNKPFKKMIHAPGIHUXLHQMIGKOFOKDJXKDILKWQLOHHOPODPBHPENH=JFFQHLUSNUKKLILM[HPGQLMJLEDHRGTLSLAJJLJTMLTNRPKSOBGGTLHNPSJOSTMFFUGHHFMNIQHQQNRMIFGPKLTNKDRESJPHNSDFIKLMLTENRNOQQLOKNWQNJKPOMQMNLFLQMNMUHFVHFTAOJIJJPJVLMFPQMONHNSLSNLOMPMFCLFKJKPVOSDQMOJZRPTXMDKJNJEGMSIMRMHCHPOGPTKILGIGNQHIHHNMLSGITOJPCJOITJPM@FLOILIQNESWIMCJJJRKFTNHMPNKMFXETKQJTLWOQPGTQEPONNMMOOPJPLCLQFQTIJTKEPJKRMKOFPIMHJIUEFDIKEOPIIJRINLNKKIIUOHMTQJNKMNRQGFHVRFOMEPINTLSQFNKEHNLYKXQIQGOKODRLKQLPQ?OMIHEKQNIKLNQNHJLMLOELNMMPFKQJNKSJNIFPJLHQPGMNJPEIWLGNKNEOQOMPONPGOPJMITFNJYS[MKMNJJRMMPHVPNKKRQKNSIQPJQFOUMKOMKILJMMSPWOLSKHSRNJJRUDNQSTUOOLJJNSNHRMHQLQMPTKPMJELSJLOBPCGGQPQMNNQQRLLPZPN@NMKIOOPTHNKRKFKKVKSPMTNNVRNUIRRPXHRTGJPGQJGLGNGPSLELQP[NRTIREPILMIHMKLIKJIIOJPMJQNLTJYGPJLQWJVINRIQNNGTOOMWTNLGMIPFHFTIHLNJFPTJOLQLNFKJRCKOHTNGTGWTSOHIIMLKIQROLORDHNRIHVEJMRONNQMKSMRLPPDPMMPURQPJNUEDBQTMTDGNLNWRINLLUMKSLHLGPQDPOHJAKNQNUORKJGOQPOHOIOTMLHIQPLJRONTIFIROKJHMTFPPSNCMLRNGNOKNRMLPSMULNOETLESNPTGBVUIVOMNOKMORMJIKLLUFRFOKMNNDNLMJNPKHIOENSKLNGPJFIRQHDIMTHQUOJQLAMJSFWKKMQSLLLKQLJRNCMHOKGPRUQSSEQFYPLOMLGNROVNHJEULTPNOTLM=LOLSKKOOOPQMPOOUHNILRUMMMQQMQLREINRKQLIOJRHUQNETLJKZIMROMMSRPHNUJLOCGNLHLILKHJFIIUPIJOKPMSMHTBOTNKLGQMLCGQCLNGGKLNLGJQQJAQQQJXBDONKJRHPGSLSHRIVNPBJOFKLKLSGMULEDOLRELLIQIVSIPKMHLRGLGUEMMJLRLGEKHLQIDONWNJGIQPHHIPXLWINRLQIWECLIJOJJRKISPNDDJINAPXUUHHKTGGJTSKKGHRGRLIOPFX>NPOMQMFMHNOKSRJKQ[NFQGGNMNLMOIJLTJHQQZGHHKLSHIAFPIKHQPFKTOTZNKS@JGNOHHUONKK]PUTSILUQIODPGPFPOLKLNLZPILKPPP[GDNLVNJHIMGH@MCMMSNPRFMPLQTHQSQSH?MWKCQJDTQJVSQXLLIPJCEQCJVQJVJNNQQQRQOJKILLNUJDNLFEPBIFQMPQVNTILJONIELMPFJKGGIOPNKPRPPPGLKNFPGTJMBJGENJPGUKVOKRNFVOO[OVHHSPJNUYKCGRNPMRJGUFHMTOLBLKDLPFMIDONJFFRPMNROQVIFOVNVTUJPFUIECPJQGMMNSHQJYCPXPAOIYINNPLNLHMHHMLFQIKSOQTOMSJ]WFLMHOJFIKLLLISRIIHLMPXQLPJJKDKFKKDMGLLFFVSQNPGOKKJMLWNOKNJKLNLPN[NXIGKFMRRXMHRLOJORMOKORGGKPNYKOKLLGIKROONRRGTVMOPELKQOKJQPQEJHMKPQPJRLLUQKLFEOMIQLNPHNOPMQPONJEWYJKJNLMQPNPKWENTPQNIIHQRELTPLINKJIJMEJVSMKSLDROHQNIKRHHMLMQOOMONMJNOJIEIMHQFIIGNMGFJNNLKMDLFJCGNMRHQRLRUHTMMJMRPPULKbGKNKGGQILMVIOKNDFWPJIKPLMNHTHLJVOSHDPKJIINOKTNMDDLIGOHLFVPMQKOLIQVULGRIEHNQNHLKIVULPOPHSMM\MOQINJPGHHJJMTVMLFTIKFLNNJWQNGCIDBRQJHJKRSPGMK]PLJXJOREPPTSERRKNOLRWLHMNGLNMRTNGFGPMPDMSNULNIDNMNOFBWGDFLGRJIHWWULRSKIVQJIRHOTLNKOPUILLIJWHTNLCNOHFJMFEENPNTOHHPLKOIMN[GOFMQHOGOONLOPKIKMHRM@PITPKGOKMMMTQPHFKMONKIKAJTIHUSRFPVNNLWOQKMHFLRLKLJGJHILHOORQHNUGGL=PGTROLIQNOORPOERMIJOHRAMMRFQCLORJGQIKKQMPGINLJCMPQKaGPGWKKKGFRNQSATDJGRVGGPNKQLUJOONQMQMHQIOBCVLGLJFSCJNLHERJPDIJQFOMOXAP[MTRQAPONJKWMKKQ\KRSPQJS[QPLHJOLLMJHDV[HKPLQVGVQNKPIPNLTQS@JEKHOGTJPERINJKRHKOERPGNISEZUDTQP@ANNIIOTMMMKQIHGJPPOKY@IPLI[HAHNSLITULFQQHUVHJNVEQLTAMMMIS_KQEGIOQKMGMNOIIGJGIBP@DLOGHPIDKHMTQMLKUPQHSHOITHJHMISINOLQEEVLQNOONPNMHJGFPCJIMHMS@VKHJIO7TSGTRRRGLMONKM@LMFMISSONTHNKMSIPIMNLOKLRIROJL?LOKQLHOJHGOHDKJNQQPOKSNSPOPCLAMRLMNIIEVQLLOPGHWPKIIDJKDHEKRMCFSEMIZJGDMQSPJKWNGKXKOMEPGERHGNHSGGEJMIIIKCLKNGHKMCGILLHJJFFGJGOO;KRIHMLFTNQTBGFINRJILPKPRHQKLKXUHMKLNIHQFQIONCKMNHOTEPNKKKCRXENNKLRNEGTKHMOQJQLUJIVSJJKPKMITDRLKNHSKKHOSVPRIHSFKXOFFOHOJFLNVRHRGSOFMRKQIMITJNUMVNMTLHKNLWQFNLFOMRLLNVKGWQQNPE[OMIGIMMKINPGQOOFKKIRNROOVMKAOJPCMWKMRMTNKKUPSNPOIPJLPMKLGOPFJMPJFANHJMLGNPJVOKFTQHNRMSSMOILNLQWTGPBNUROEMILOOPJMPSQIQLOMOLEIKEHLNISPLGOIOELOSQCLWEOMUZJLHOITOPROSONDH@UINWONDMOHTHLBLQLNNRSNTQITKGOPUDSJPNNOKOGQNLENMJMLPHINNHIXSKOSBGNWNLSJJENJLJINMKOIMJSNHOIPMELMOJHRIKHPQIIUHPHPGRLILTVMVKNFRNJRLLOMIHQLKKQKMNXMJVUR^OHIKFOMNIIRNJEJDGTUKIGNJMTRGJSIRMOOKWROMTJLGWTRIGGLMMEIOJHMNGFLNQNFNWPNKJFWPNMGHMRIEPJKPQYVMLMJGOZNTIQSJINNJHKSKMMWLEMKFHBNNQJHRMGRMNLMIOLLMLKKLIRMITSGJ>RJRGJTKQVLDMMLBTJKGRPLBOSNQJJFXELCGQOPMKNMEMSMKIbNOOTMKSJOKIKNVSKJQVMJLFWPKUUCMMNMHOQLCJQKMNTSNVYOVPEJTLEKTJIJLTMHOQPKSIRMPXMFYQNQKOUSHQLLOSMTIFHJRQXGMIJJNONYLHS\LGKIJFKGNOMLHJMJJLNXPLLBRAFICIRNLOGRQHRLQPIMLPLOUPOVMTNFMIKLPLMTJJZKTOPLMTGIPMKPQHKTPHNHKPUNJPNVMPIOHSOPQLKVKOMOFJIDPLPPEL]TK\KIIPHKOTXHMPOLRRPQGOLVYMLQZPLTHJKDQBMOLKKSTIQMUQJQNBYSOIINTXPOKAGPGWNNSKKUPPRLKRMZSNPOLDWISWVMJBNKUSRMSO_QLSHQPOLRPGILMMOKJDUMJIRQCIKMHNKIKINJOQJPJSFJKKGQMCSMQLFFNJLRIGJNVEILRNJREHQOMHPPMNMHINNWYNJIGILIRMJIPYJSBW\DHMWLQPHGOROIEQLKMOKPMMLNQGPTKOPIGRQPVUKKHUTL>KSRUNKLKFJLLTK[HPSJPQIHKIQUGOPKNGILSTIKWQORMTMJTNIHHKMLPSNJFOQSNRNEJMQHKRKEERSOKJONWUNGKNOJGRGPKWMQTQONHJMKRECMJQJNIJJVJMSUQILSLRNPMQIMIHRNKVVNOSNLUGUPCHVLNOLILLUSWNUKNIMPGFJGPLNLQPIKIMVVHUMTJIQQWLHITXQTRFPHUNPLMNJJHKKL[JO]XQQMSSPMLQKKPMIJLJNMKRNU=LKLLHKRPYWKGTPPFS\ELJOMRJWZGLRHMQNHHLORYNRSCWMKNQJKOTTSW]LSKTOHLVHNICVRVROGRWPUGLQJLRWOQLOIFTLUOXNQJRLEORQKKMFNFJLFPRKPIGPSDIOYKGISPJVOMMOMPPPUIRLKNNNFMJPTISUJOOISUFPJIKJIINOPPOIOMLRDMLSLNL^KSLMLL[GSMKPGMKJBKNMIRMMPMQOOIKQQRVINHEJROQMHIRJLLNELHGSNOIEL?KUQJRKDOIOVKNHJJPOMVNPHKJIBLMLGJNIZHJIMDQJIKRKPQESMHZHKPLZRHNPKRVRIRQWKOQHWKKQCLPNOQLEDGXRMTLEJMLOQMVNOFMUYNHLNBMFQQNG?HLOOKJ>JHNNNGGSWRLIFKXLLK?XHPRLNQHOMODMPJSNKELMQJCWQWSJMHELQVGUKKHPRMFBMMQVBQHLXOJKMNOEPQFTPLMRLNPIMKIQRTPMQHIQRNFTJPIOPKGIOTLVKAZCRMFLHSMEPLIIQGNLK@RIPJIOGQRKMKRROTGLHHWPbQNMMJKPKAOLPOTNMPJHKMJIUOIQJGFKNVEOXOONNMSLJIIMOGKQKQIOCUUMOJNNLJNQSMEIJUEQNBGNQJSJOPLYLKSSRUQRNIKFBNRRQEKMLOSPJFGGPNGGOSLJXONSMUQQTEPOLKKPJJMPSOPMIRNIKHRLTMOMMLLRMQIMQHQNIQLKHMGPVJSKIIQPKNNLOOHDRHSWOMONSWVQPSQJMMLQLNRDLOJNKSVMQLIMBKLHOJNMLQAIKRMPORFHTKNMKLEQNPJNRTNJFAOSCOMBMLJQISPQEQJQJKLEMMKLPEJSKKOMKERPMONEJJPKRBVLHOPVKJLNKSMTGILQMLFEMMYQLSSOPIOWOMDSVGLIHFTUNLSPFKQJFIOLFCJQIMKOKPLRNRKWMI@QNTWLICRMKQFKPDLUTJHKNPLLGMHOHHNORNRNSKHSTRQIOKVYKKFOQLRMPGJTPOMPLGRLKIGINNRLDKLELIIOGKNNMNMMKUKHFLHPHVOQZJIMMQGKLUX=IQMITMKHQMNEMIOTPHHF>MDKKODRELJQWOPKPKOGLQJIMPIILLIDMPPIMIPBNFHRQJPJQGKIPNLNMPKFMLELJHKMKRRHOJ\KMLTCQHHHMMZKPPWNKJJFLRIJARVFGKRJFNBJJKRQRLMPIHKZIMMLKNBLTLHUMGQMCHJXJKOIKIMGNQMONH^DWKQFMENNZVLKRDIBRXNGTJESPIUHLWPOIFGKMVSQMLITHLKMMGIGKMJGAQOKPOKMDKTOGSGPNEMKLNKKNOLKOLMQWTMJKJQNMNPUMRPULMRMIFKLXRCONJLIOOMDROFGOKGRJTFOOKMRKUPOPNROHOUVFRMJRLQKBSKQRQQNIJNJPIMLNRHHGJNQJLPVMCJMDLPGSKJRKLIHOEPLRNQJOJILOQIPORQPINSJHVLHPNL>NSSKRPJJQTQKNNHJURDKKOMOEKPLPPOSDDLJIIJONIPLDKSORLGFRUIPMJMMJQQNOLQJKLIJJKRKPKLQLQIKKPSMSPFLVTNQPTJQELPQPLWNLQHRMNSHSNXQGHKQPMPXIEOL\HKJNVOSJMRGCJHRRMOLLOELUQFKJGQJJLTSMN]JPLEGQLVIJMOCMNILLMVOMENHKPVLARQJJEDPLVSRZKKYQGNHLPHLQSNLDPNNOJIIHNOQPHLHPKIOQGMNIKQOQU@TLIOQTILJLFKOJLKPYQPQGKQGUKTQMONP[HHOSGJNLPTLKIMKELOMWSJPJQLOM`TLRFOLVONHP[MMOOTPRMPXSNPEPMWMPLGOWVESGKTJFIOMLFQSKQNIHFOTMOQNPVFWHMTHMGOPINGNHNPPJFPSPKIFQMMKPIKHQGJHPINJGAKNHLNJPQNOBUNQJUMXKPTHINFLLUJINJNHJLRLKJSJGPHQTMWOMJTGPHONPONBKNMYOFQKJQCKLHQGKJKTRLNSRTJCKMOCKGOHMBMOLLRLQMNHRTLCLULPHOP;BOUHCHMNRIPRENP@NNGSJLPRFSKIGNQLLCOJRIORHSMNNLPSKNHHPIMGLMMTCJPRMCNKYMNSNLKHKMGKPNJKG>NJJNGMKKKJRQIPOKOT_QHFMOBJDJFTNLRGJNMONMGIMQMJHPMALQKPLNLFIHMIVKJJIQRLJBTKQUEKMLODB?PJIENHUQOQOQOJGKQIGLQKGIPIICF?MLIGIHPHCPIKHKMJIIM@EQVNTLOGUKOPDJFBIEMSKRNLHBNIIEHKHHQFJHCHIHTKOVVXLNNGKRKFTJWWFOTLQYHGSHKKNJJKJIPJPFHTMFQLVPLQNSRKJKJQIJFQRIKPLIKFSHLMDDIOQCRGUPNIFP[EKHNPQLULKNTPORSLPQNQPPIVKIJOLKQNLQSLONUHLKMMLQNERSIWRUEWORNMTHKLQQHIOKEPKSFKVNMPDQMRGMPUBDRJPNKNPLLRPOOLW\GQRMOJPQVMJVOKNLOESPKIIFILDQRJKLSNHJAYHLOHMHIGILPNNIUHGWII[ENOLPOQMJMMMTMQPLSWHPNLDFFOJJPQGGJNQKJORQUQTPPGHKNHQLIHLXBEOLVPELRBHTRNSVHGRKKOPIMLHOSHPRGGKQMQRLEJUJKUOBJHRRNIRNJVJNYHUGRPQMTOUMPMKKKKVLHUIGQLHIKKSISVJO@TFIOJSIEMOPJWPSQMOMOPLLSSFMRQMTOPIFHPDPLSGFWLKNKLONKSSRQLPSLNIMSKUSLIQJQKMMMPTSQFGHGULFWLMFIMISSNKMJKILXNKIJJXKAMQLLSLNPRKKMPEVOGRMPPIOLOKLOQJNRHLPJQONQPSMLNQLQPLDEHMVXLOOJHVPVPFMEPGCLGIFRMNKLJE?PSQSKIKIIOQVFTKKDIRZKIPNMLPMFPRJPRMQNJLLQGIKMLJRUJNUOGIKNGNKHKDGZKMIPVJJOLKHKZTOODUUGPPQJZIQHTXKVNFTNGRCJPKSSR>IFLHLOJMKKPNMRQJNJLYJLHSKWPGULO]G\PROJRTOAKLNMNQGMFMQMbLXRDOHJMFKQM[JPRMKSNJSMOMQPLQVRQJKJGIOLK]MGPMSOJPMKMJKMPNNMMKOVOPMEOTJFVZJTFMITMJJOOVMLLHFKJHKLNFUPQDMLNNPPNOULOPNWSOKWIOKIPLPNGROQKJNQQHDJXKRDRUHTRRUJKNNKFMLGKQHMSNMNPPOKOPJOIfKPSVLNIXKNXPMNKKOIKIJHLGGKHNRIOTQPPKFT@PKKRIOPHRJHXOFEIROVNNQHIVQOHQLPNLOFMWOBKLQOMLMOOMPNJKHCQIMNVGIUOKMJJSLJRPWLNLJLNGRVLMJDLUTFQKZKQPNISOHKPTLRIOPPPNXHQJOHKKRJMIUSMPJCQMJQHAYTVPIOJLHRSPKVLI\SIH[MTQJTFCOPQHKKPQFNKMIENLQFTPSOTEMMPPOJMHISSFINLLREJCJJPIIJOMHHQPHU\NNLCJLMPFGLINSRRISLIMNMMHNMJHIUJJCILJJGOIKKPPUWMYLIQTSNHISIOHODLRDIHPNMHFSWQSOGNEPHQMQRMOEKFLRPTIGMKROMHLSRLKIQQJIPQTOIDLHMGPTRPKDHQRIDNSHJRFSJLXGRVPQUQPCLKKKOKLPDQLPPELMMMGEPNJFJKQ[MGOQNHTPQWLMNNKPMSQQINMSSPILNHHQLKMOPUJIMGMLQRKKNIJDARKWXPPLIJLKQQJHFQLLSITHEMIKHVLGOOGTIMRLXHIWMUMPJBQSOPLKLQLINPJQRDNOLFMKMMNLCROQLIJRLLNQUNMMTOELEPMMG[TKJNGVOMIMPKPCLCLOPSKJKROKQQKOKGPJUNPMXMLGPKM?KPLRCQKMFONHJTKPOEG\NOLH>KZOLBOQLAOIFPGJUFSTILHKVOPMPHGDBRHII]VIOHPQVPLPDMGQJPKMNMPSNOJTPQRXELHMMFSIPPUPLLRPKOTMRVIXCBSTLJIDGMVMRKRRZKQOLYDDJTJOJIMPFLFIONIFNSKEOXMHPROMMMNMJLKKUIMVDGHNKRNSMYMLFKUTLPNXUUMKJMOQFPRPBRMBMBNXR[KLLCKTIYIJHKNHKONNJKNJGLMJMKPGOUGNDOOMKNQJWKTOOKQIJUQHVLMOGHVWNKUQDSFRHJSQNSQLKHETLGPOOKGFRNKDMPWLGJLNRLNPUKGHURKHNLPLUQMPSSGMZXIJQNPPIIHMRMGSIJFOFQJITCPNMILHHLLTMHHRHRRJKMGTOIKHU_DSJUVKQQTUQLKUKIPRJEKPVWELJWVMUGLKJVQOFNNKELHBOZLITMRSKKSCLYIMPQKORKJOQKJOLSSMEMVOORINJJUYNMNUFZPNQNKFXJIUITMMIRJPOSGPENGJFUOJQKLNHLLGUGRKPONPVPYVCUQIFQROOQIQRNJOGSPKOHKODHHBHTPHZPUHGNLEQPMSTDCMFOSKLRPMFQMMORSLKETJOVPEIMODTRMEKCENNXYLZULLHSNPKQQGFNRJPQPIRQ@HEMKSNOYHFSVHHLHLHLJBQOHMKGLLKILOPHQLLMRVMPKUKYGLSJOSKHEZQNMPMYPOSLXIJL?FNOLNIFIWQQFODJSHJOOFSKPNPMOMKTLMQNKLLSLOVPNMNNKDSJMO[NPDLQSJFXJKGPKMPEHCKCJNBPJJMLDUVXKHOSRFNMELUGJKKNLMMGYHRDONSFLUNLKRJZGKMIHSPHMWGYMMNRIPJXKDLKSFGOCLRDLJMSFPZRHHJESQPLJHPGUSMNJGOMMIUTJSJHLUGPPJMLRSZKMQKKMNKTIMPNSULLUWKHOPJQPHHLINRSGTOITPHLMLNGTLIKPNGNVILLGNPIIRHKQRUNNPRQKLULHKNGLHEJONOMULTKPPOROPOQOGKRLRNGXGQYKGSLGPGIEWKKSFRIKH\SMUMJLPIGKLHRQIGLLORMJOUNSMSJWQIDLLJUKOKNMOIDRVUNPLMLSONMPJLVMOLPQNELTEQJWOLLIMJGOKHPOLRKPFLQHOOPOQPNPKSNHNWRPPJRKOICKOLUPSKGIJMEFSMPGOSJIJTK]RVTNMMETTLMGJESOLTKRRKKLMQPIUTFJXOEXQHQOFTOPMO[DMJROJSIGDQIMLQRQYQMLLIJDQMRGKRIPRGHPJVLMURGHUILUPINNWOQNG@LOHGFQGVFMWJNLVKNNPOLIXYNJMPKNKHJOKMLPOESKOLNHMIHNJLSLMOJJMLS@PIWMKOVQJOVTOKHRJKKIPJULJFLLQQOKIOMKKNMHLJFTVJGKJSSOIQEUWUIQRKUUPGMKJOTBJBJNPLSEYQSLKJNLZIHQENQULQIJDQIGKJPKMIPVKNPISMQYQTPJTJQOLMOELJSM?HPTNLLIJMONRJBSLMNTMJGLLAMSIIOPTHGKUOMOQMKSLIKGIIRIJEKQKIIEFJKIAJOVPSFIOBMJJNHVUKQANKODJHRLNHGGOFFRFIGKGKCAOM[PILMCRIOMMBNMPIQGQRFCNOFQLLEKOLNEOENTPOMLFDMKJHJMMNENOJUDHNCQOJIPHQOQITIGHOQDMNMDRKJMQGMFLFMJURJVJYOBNJKJMRMFL:JPMSPFNGLPBPUJNMMNEFGLWBZHRSJHL?NPLNLOLLIFPIJKMMJDNQMJVMEDKMLKOMKH@LHKNTBO@DIEMRMWKKMGHNEMONOCPULLFKDJQKGKMPMMGFIFBALMENPGRNPGLJERGLDKJPQMOFTHCRGMIRPNCJNOMQTRRRR\CIJBRQLJIHLIJPPHWOSSPLEVRNEPQKNGHFTQCQPXOTSNSKSFKSMBPILKFTWK@OIJKOOEKQPFFKPPWQOPK@GWPMNTWNJRLMJTLFFFQTMMNMINMGPNWBLRNQGUGM@HOMPIGT?KMNJLNOHOTWIUQY[RSHOHROKQIScFSSPPQGLVMOOPHMJKJSNJQNSDLWVFNPRINLODAKNJQOHFPQKMATLPBNCFVJLNKGON?KPLXIOVNLMSLOKJSHUOSFKEPBLHSNPQKLRPJO]2FNGOPLKMNKPRPMOLOCNINGJDLU?FQPMNKMFOLOP^MKKRMROPGLGHXL?YCZOTJOMNNPIQJQKKPPIJMJKOJOSQMGWKNKINGNLLMMINLJOIYFTJKCORDFONOOBKMJUPLKJLIGUFJMGMIRVWLPILMTQOJINKHTVI@LMIMQMPNTKWSJGNGHMOKIKNKTLHEHHWKMIRROJSIRMMMXPOHFMILNIPOLOGNTIJILKQSQCNQPIHNONDMQZQSDQNHPJOOCPVKKZAOPPQRRMNMIGVIPOOSDUPKMCPURSPLKNKIJLDMKILLLJILLSIOGNMUQWQMMMOQIEZHCKNNIRNQKLOKSMBJLQSQILEGCKUIQIMOOEKRSQHRLOGLKJWON?NESNRJSORISCIKJHLKOJBIJGMNLNPFS[QTKSSIEONHMOMIGILJLQJFH@DNMMJKLLKJOIOLKPJPNVGKNRLOKTMKNJLLELFKNPRHUPHMTHVSJILRJQOSLMQLINQOIOJQOGCWOCLELJLEOPGQKPMHQOIQLNQMOWSDHILKISHUUKEHGDIJEOMJFNLRMOLICQNRNMPRKMHQMPNGNYRUQKESSMLLWLJNKOFMMLOPFQQMLNRSOTHHOKHENKZJLLOIILJUHPGSLKQKOQJJNBGBQKNJPPGVOLGKMOUMMGTHLKJQMSKQIOQROKQHSMKPBOMLYQ>PLOMGUGNGKOXCNRIPAFSYIQOZXPHOJIIJDNLJVJMMGUOTPLMKFXJGGUATJNOTUOLFQVPGHNMROKJRPJKNLJNQOKRRGLJFUPHLJMOTNJNRFLRL\PIJOJFKGQUQGLNGJNNGSBIJPJKBUQRKFOZPJQPKKPASNIE@VRNWOPURQTRDLJ@CJPDOTCNRIQRMOKSIIMULKMSNJNKFJLKJDGSWELNHPOJHISFYEOPCVLTLKWFLLNHVPHMGVUHKOGORLLNOFLHKYMGIIP^[EPCMQGQVQWEQKVILYTHQIORLZVKPWLIRORMISLJNLPIFQRJJOHJOEIRDJHKSMLIISHWBPIWJRKQSMYQEGIROKVQSMSJ\ORHJGETMSLKTMNRWMMNNTOPPOJQNLRGQCHCMJJIIGMLWLKVQPMNOKPNQXYEQMLKLLPXHKRRYFLHLIIYLNPSLL>K^IIIARNMKLJTSPRGN@NKFQKROKRMPZGUFPROQ@MJGRSGIPJSRYJJ?HPYRDVJHNM\UTLXAIKJDPNGJGMONRGPONK\OFFSRQOIRONQMHLDNQPRLJDKH\WKGSNOMOIMRGILSMHBMKNSLMRBNKNIKPCQJMMHKMQAPFKMTKJEJIPTUUHOLNNUFJONSQL@SKTIXRLCMHSMRIMHMPIQQFILQH[CVGHONNRMPRCSFGHRQLNQGLNMMOHNQNRGJKVFQOGGQGGLHHHSNDMMTLIKPPMIWJEL>HNUTLMOKHEE^NLIVDNDPHKPAGKHGKOQHPQTJPLKZI\AU@GOQILUGAQLLTLMGKONJFPONNBRLEMEIQKORJNRPGKIPMNKSLVJRMMGQRFHQMPEENORPGPHOFNIHM@PRFRPWJPGIQVDRDOJQXNMSQNLQVBITPROFKIKLGTEKMCMMPNIIQPLQQSQIGPTJGIKRELIGNOIJPOUXTTOKKKLRJFGJDUHNIRNHTRQCPLLTNFOKHQTMPPKLGQQLKKRJNSVGTMWKPJJKTMHUGUS@WJPPQWTSWPGPBJRKRHKMJLLKPOJOLMLRRRGPLKILKQXHLLRIHMORMKLGTTTOGULMEJ^LFODLJOOIILHRKJFKNRJBELSHHYCGQGLN]IPUMTDPRJXLZUSNLSQLCVPIVVRPGBNISQJHHKNRXROC`GLJGQRKKRJMOLPSIJQQGVPRHQPTENKUIMOSKKLSNJIDRPKIRFPKLLNQKSFLKLKVUTPFPKIPYJLWQHPGNINVHKQOKKNKGJWOFZSNSMMJIIIOQKRNGJSFNHNFOOECOWYSHPEOIJETVMIRSTFQDOLIOULNALYLPOKCUJKQNKKLRONLTDNMDPLOFKONTINRPEKTRROEJJNNOQLUESIJK@RNKQNLHUPDIGMPHPMQRRNLQPLQNKRNLHFIJFGIXLMFQQTHS\LWNOJTKHNFKNOGHJKLRIIGPPSMJFUMVLOPOINMIIPSWLSPMRLVJNOLLMRPLSSUPNNRML^ITNHJGMMDTQIQLMHRG[OJVULKHJPPLHSILDLOPKLGHSRFMTCOQLGURIMIHJTNQPKKGRULJLMJIOIGFIWOGMOT[LKQGJWKMOPMNROPIQGNLLTLLJNMJTN@VBMWNMNOKIVGML_UPL@PSNNPSP^RRCPNVGIMIMGQN@QJPRVOKFMWHIOKMHJDUIT@GWQPLYJLNNJIIKIHIDJQRPNURNRNNJKMKVIQMKHLUNPKLTNMG]GXKHTMJLTTCOSPNSIEPNQKMPNIJMKLDRLPQMLGOGQPQDMQPKQMAKBTQH[VHQHVPJNTSHPLKICNGMSIOLOULPHJUCMQOGHKRRZRPTENMKPPRMQLNMKJILDOHMOPHCMYPRONJNMIGRKRNPMHQJMLSLDHPHDOIHTFLLK^GIIS]MNKIGSRHRTGKOGOHJKKNKQ@RGIDPILTNLLTLINQNOGLXQFHPOLPUJQQJNISQIENFTTPIKQKLQJXBESUOIFMIPNJFJKLXOIWHNWMHKDOWXNER\KKEKFOSPOJPNSLHNILISOGRHYHMQRVKOPKRSTKRINRRIOONTQJJJKOMPJOKLOJMMUTBMMLRKKINFPMUYLKNQLVJO[FHRJOKJMMYTKRLLMPQIKOKFGM\MJNUBZLMLQNXBLQKMPIOOFEJFPPJGRMNHMQUXIGMNLRRULJPXJOGPUFIRLIQISIZOOQLJHGREISKGFMPQEHHIJOQKQLNPISMWMCMKMFIOSLRFJILXNXIPDCRRNNJPTQKNKQLYKQAUPDNONMNRMOMSLKRPMRJOLOIJETUNMNNBSQOLLOJLRQKSLLQPIIORMJOHWLRJNNKGPTZJKJSLKIRMRRGCPEIRRJGEKOXSJMYQQJPLNPROJEQWIUGOLSEJMIMKNKOMHHWNQSZSKHPOORLCEHWHCOODDRMSGKIBTMKJEIJKKOGMQSMFQPLNHFPMGEPSJMNQQBPFIEWLMFCGKEKQYJNOKNMCOUTJQPKMTWSLOJTLSTRZRMOXHTOJPRIVJGLGMPLFEOKIEHREOGMRKHKFRLNIDGRIVOESESOXHAUQDQALNRQJEKQBQVEQFLOPOHWNUPJLOKQLFDMRDOKZIPOPMIKLRRHPGEGIBIJWWHMLIHGHJVL?KWVZMWTKJHPNCJRTQHSQLHSSOPPJTSINRPTMIRQORLLVPFOHIEJMHMTLIPEIJNIMEQCKKIQOGQTOQEPKKFJ\^PKHJMLLQINNN@ONOFGJZUPLKQQUPMRNHOJSNJJNPLXIGIVNQRGMQSSLUPPIKHNLKGQQKPMRQCQMJLJQMWP[UPLNKQSS`AMAGQMLKSCGIOHROLPHIMVUQRMRLOIEFGPIMISJHJKKJPJKKGNHIFHQNERKHTVPPIMFNPCVFSMHMKERCIHJI@PMLLIJPVQTTQNKJOFLPMVJVQJTKFCLSVVPOOIRPIRPQMPNHA[NVKLKMLGSKRRLTQNRKPTQTIJYQEKEFKHMPTQFPPHWJIVMHUQEJOMGTQJMUPINVKREIJFLALPKLUPPTLHJOKQNRLTIJLLCOIHKCKZKGOQPWSGTMNLOPNRMULOGTMOQNOSPRFMJGDECXKPTIEQSKLPPIJMZOIJJHFEERGBF]IPLROLSGTLORKMTKOOGKMPNNUILGIOTOQNLRJEMTMSTLNMDFJHIMNONFNJJIESDSNXLLNGHDGPYRLJNKSTKJPLNKMMJNVLVDEJQPFIOMKSHHSJEPOROJORNR_NMOCPMQLMJEJGWIGIGJQYUNRQQJLHTASGOI_OJMKMQDQSSFKVKGNGIFSPLSMTSOLOKPJAOLKQUUOLFNVHKIOAJJEUWINJKWLLPKNJNQTKMIDXUOPHRNNOQFIOMFQHNRKILVNIHSKLOQRMFIQQJMJQPRBP[JQKTNNJSOIGPNGWRFJTLJU@KMRMGKROHMLQKQQSIQTGHJQLVNNOLPVP\FPPLPPTKRGNPJLRLLHMPIBOQOLDKSMQTOLPPPMI[OKMKJOHGDDQLPJDWGPNLEPMNXGCEPLMLMRKELQCCQOCMHFHQMEJSGSEPJLHMKLL[NRGOOENNKLIPMNMRPINTFHTHMMQMKJUPNMGKTHEXLPLILGMCSIISXQSSTLQXHNRLKIOLPPSJOMXGILNMPYRMNLSNQEKPQLILPNK]JMSHOUJFTGKPOONONDNIMPQUDMJPQJTOTJMJKMLULTOKNIOOOJVJLSNVLERRKHPMKQOQINKLMPFJCGTQOLSOMONOHJHSHPNLSOVPLPNN[QMKSJKIQKGTLRJWLLFNTHSLXJMTNIKLHRLGNNMGEKLRMIFHJWLNLOLNGPOOOKOOHONPQQKAHQIOKEIQSMRWGEOMSOLRKNHQOQMQKRLMGQWELRILDKPMSPNLSPKRSVIIKBNCOQLIFGIGNPINOSKGMOOKSLNPIOGLWSOLWAFJKHHLJUPJOHKJKQLNNXUKRMHREGM=QMJONFNRKLIJMKTHGOHNOGIQNLLHQTRMQIOQKFNJKHMOFUEOJWKJMRILMPYILIKQRKQMILLQHRJJKOUTLPIOXPGPNIOJIKNNJVQQJLJMKANIGMIIHJIVRPQHQQGMNRVOUGPOLGROLSVQP_JKTXPJOFKNHSNKMNQIWOHKJSGJYHKOPKGLXMONPJWCFPGJNPLKRDGPSKIPODJMQHRKQHDTGJRKOKKELOLNQMJOGQMKNMEHINRLORNJHM[ENPQLJLKNJMJRKPVSEESQEKFPLMKJJUOJIRDHUONRGMRPTDLQOQQIMJVJJJRGOGNPLIRSNOUJKZNGRMLLJMGHJQGUTKJSPNCAMOBUKLKBDKLPOGTHNSPVOGPMRILKJLJJSCKSPQELSJDQRPOJIDUQMKJLQMRTQGVPCLHXUHJLSQINMMPOVJMIKIINMSJOIJNNUSWILRCRLPNNNMILNHFMMROQNTNMOKOPHQ?IUELRTGPNUMPJLOOORJNMSOITPGTPNMIHKQYJROLKTOQHPWQDDSOHQLLURDEKETIEHEQSOUINKVOJMQRIWKROQPPIOEOLPXKNRSEPRNTHVINNIHHOMMNNQJTOLHNPJLGNXNGIJIJHSJMNNHLOKMHOMM>SJRRKQMLNKUOPPNNVSUOMJIKKNHMOOSNLXPYLUJQOOEWSHQWLVSYNPQOKONMIHMLTMOGJJOFLMUOOUMIJRPKJKOSGNKLMHQRKTMNMRVJEMKLJNMJQPRJNEPQISGTPEMHHELLSKLQOIMHMLLMLLQITNMKKJLNMDHPQQKMPFPUKRKSGOTMFKJODJHVPXVHMQAPGMOQNKUMMNIRRFJQNOFWNOPHKJMKGKZPMWVKLJHJHWRQSTOKLHPRLEMMQQNNPORMKTLTONTLQPHULIBRMLJNQRROROKGVTJLDLNKVUPKNHQNLHNKJNPLWINMPJZGWKMIJJNMJFRXLTNOMLOOKOSJFSORKIPRLVMLNKKHHIESQINANWJIUQKNHPMPPMOLIILMMISPKRDISROPKQXILIJXNQGNKVKQPLKUIKNQHUMTLLNNLNOIISIPOPHOJLOQNJFMILJKTOMMLROMFHNLKWOIPXNDWTMFLLPEKKOGJNMKMJQKNSJHSVLKIPORSMHIPBH>GHOIXNPKGLMEPRNOPOLFNNLLEOOMJPRDMPSKJTYFMDNLTTRRFRUECOMOOLUIHLHHQQMJKQPKJJNJLOOJJHMNPLJVMOINLQLPRQTOJPTJLLLIGDYHOLKOUOGUOLPPPIJJOYRMNMLENFGX@NSQMKHPROGJIQORIOTNOPSLIPMOLKXSJQPNQJCIEIOPNQMRFSKSMMFOHYLITIMIHLTNMMONIGOQKTIQECNNLUTIMOJJJNNHKKGFJGMMKRSJJIJJHPHFTOGEQNOMWGVLPMLRJLIDLRKRINLTGNIKMSOUPIUINJTPKGPNFNPKJMONHKOOMPJFLNMQGMIEJNIXLQKLNRRL?QMNNLLLMIHPFIEIOGMJVQ@QHCPOBWIMITIIFNOGNETMHMLKPKGSPKIRZ@NKOTGRKJQGJMJMKNOLMPDKHLGHOUNIMNPTQPQIXMQVRIPKOIJIWDTGKKJOFHPOOKMLSJHUFUH[IRHOFHLANOFIJOSOJJVDILKKNRLJNTMKNLFICSEL]FKNUKVOOMKMINQQLJFGORFRHMHTPFIHHKAQJNMKJNNRITTIOPUNKOOTPHMNJNCMAPEKQJVXSLLISJNLLNORKLTJCMLIMJNKQNMIRM@QJWLNMKMQMSORLEQQDJLORUOUDLTLGNEBUQPLMKSOLVJMWOQFTHUOJMXEOHOKQRLTHKIGNEPHSPJNPFLRTKNIFHTREZOIEHOQMQLNGKLYPFQOWNXQLLJLKDKRQLPHLNJCHKHNTJKIOMHQOIUSKWZIOLPNMKKUNJNHQITTQFPNMFGPMGIMUQNNHOGIFPULHUMNJLQRPJLM[OKMMRICJHRQRJNFSSOFPJOQMGCESPHMMNOMLHNJGSJKIPMMLQIRJTMULENMLKPJPMGNLKJMPRPJLKKLWOHMJLPGRTFWOGTNQIHPMFINTHTPJQVSSPOSQKQMMNTISBLLSXJCFOIVILZKSIRLJGMNQLZPOLFLNGJVPVQLNMRRNPIMRGTKPOLDYQNIPJNMHBJMPKMHBSKMLKIQJKONOLOJGGMURPOJTPPNOOIJKMNFKKRJMOLNPMKMKKKPGMQEJEZRNDPOJMQKITMOLGLYJOSOKGPJFLRIIOOPEKIOPKOLQITTMHIUNNIJPOMPDPPUFHYaLMIOIXRQNSUIUMOLHMQMKMLNPTGFMMOKMSQKHBOINDOQOKHMNLSXKPKPSM?PINRHNLMLOIEIIOLJKNTDOLLGNKMHCM]XEPQGQNNQNOXNNIRHYNRPRQLGIIMDNLSLULQJNOHITLKKEOHMNNLNPWJRR[NKILLNPMRPKOMTOHJRTQKVPOLHOJWMPLHLKSCRKQFBIXVZMMQFHEWSQESQGKHNIOQPIQQJOLEFGLEMJLKXXGRGKQRMNMRGALOJOGNGGJMQMHJJFNSMNLLRJNQFLNHZWMNUPWSOMVISPOEIENLHVPXMRKNMSNTIKSXKQMUYMN[MUMUFKKGMSKGRWCRKCLVLNELEPMSKLGFDMPUYJEMMTMSNULQUJGOVQNFKVSNIOHNLOJIMKNPOIBKIHXGOHLLMOQMKZXOIHPMNKLVOOFE@NVXLSTRBHTXTNRbNRQFKMQNEKSQHGPOPNNQFQMLJKKKMGJQXRRIIMFROQIPJTQGMTMKILKEXIELMMKREOOLJJTOTKSCKSTLKGQCLVNUFJJHR[M>QLOLQOPPNDDGNNSOMQQOHHMPMT]NPLQRZPITFKPOZIMKMRFFILKQLNJOOKQOPGJONHKIJgFUQPPSJAJRGFOKUJHLPKOVJQWRHKPPVVMKLGNQTKLJJQKKHPMOQSPN\LINXNGOROORUXPNRREPKIPFERGONMEMOHQHQRLQMRNWOJGPRFTIIORKSHFPHUMHGIPTSPQRMHNHSXMJTDJK[GEIHULIKGOLKHWLVSLHTPIPWHLJCGO^MMVPRJHSQJMYIFMLRNJIMKKTKNQMNRLNYLMPRMMPIJPTJUPOOHJNNLMMNFRIJMKUTIRPMFLTRQTPQJQQZLSGQSNMSFNP?OMNSQWHSQNPJCPNEHIPJLLMIZJNZTHKKRIMGMNGQUJKXSNSNIQVPMPOHNOMYMHTQSSLPKMTROVKMMHLNOIHINSPVQPWRFLRSQINIP\RPTOLKMUQKKLOLMSNRKKGRIJIMWPHMRNMIFLFTQSNOLIPGOUHSHEQMKGPKFKQNQPGISJJLMOYLITOUSNQMPIQMXNJILTOPVUPLLOPQORPKPMFOPNQMVFNKIKGRKNNJYFVTONJLSSTGLKJSFSOPTIQAHFGMQHNSKLUPOYMRNINLEUDPMSQHJSOM?LMPSNYPIQKILNJJHHCKSKBKPGSOGNIELLHSJRNNKXOKQQFFJLNHOQNEPPJRSSRRMMSQQLNJHPFTRPNNGUPKZXFNMLRXKKQOKPPRMRKJOIMLSCGLQHLINIGKILMHPLSNDJCQKKOKDLQNHEHKLHHIOGIQFLFQKINNQFPJHEPRFECYFOAJGLJKFLVOKQNMNSKBJEHNLUDPSHVPMHLOOLNLOHRCGPRLNHOGTPROSFORQ>LJUDLNISRFGQGGKJPKGEJPCHWIJHNROSR@JLIYTDJJJHFOLNKDMOIORJDJORJOLMJNPPKQIRIWQPLGKROMPPKJSVGPLMQERRLUNIPPOJISMLUJNPFMMOLLNNJNFLJELJKHRQNILRKPOKHGSFMNMMPMMKMKKMJPRMRMUWRBKQRLJKQQHLYPIOLEFNLNUFLKSYM[SMLDNWVCOMRFJQKJIKSJHKLTMQTSLQISNMLLKGHLWNTKMHLKMPOUKSHNHSNGRTRQPKTNLKKOMDMSJJNNJKE\OMNQQLQKKKHNOVIOPXPNPSLIQTJMJNLMTMHLTNPIOTJTTQULIPOONLQPPNMNPPNWTUPMOWOOJRKMOLJGOFPQQVRMNESNQSRPIQLLZRSMNJTOLNIMLQPLKPQNHORNMJLMVIMPJMNKONMHKVWSMETUIMUULWIJLRDMFKLHMLSGGMNNPMLNFHFRPOMONGKCGPFIMPRFQHSJOPUOWKNZMKMITKWLQLRYMKPPJLDOUPLQOEJQUFUOLMNONTSTMLOKNMPQOCNCDRIIEJLLRXLTMFEUMJDGKIBVHQNKTPSPKLINULNJLGQUDPKSKPKHMNJJNHFQLNG\GNPUTMKNVHLLJLEJRLTILNTHVLTE\UHJQFJGNKRIUOKRPILJLOQHNPDJHLH[HMKTLDMGLELLKOLNLMKMIMQOKKORLNPRDSVQPLISGFJOMSQNIONMNPUOLKKSRFQCPPWHKEHNJJIPOOJMJKJUN]KLMZAQNJOHHOQPKKLKGCNIHQKKMGSLHPNMJRJOPNMQNJOJNDMROLCOQJQKPIQRQLMFQSKOOLOOTQKOMKPHEIHRDNOGEMLOQSMAKRLVQKMLGROEMIIKLLSTIORNKLNNILKNSLPNIJBLMXVMOKSOL`ROHHDQUPLQN?LMJGNHMLGWISMSOLNLIOOMETJEJSSFOIJJIMMGQMJRFKMNRJMUHIJHLTOONDKINFKSFLEMFLNKMEXSKMOJFHNDNAHPIJJOLNFPOKESOJLHIGJCJSLEJLOLWJNOGKJYRKKNJKFGLJMQHHLEPNJRMMNSNKGUQPGMVJPODIVSBHOLUMBPLJTOJDKQMPRJFSDJNMQNLJOJNIGHPPMNEPMPRRMMVRCGJOKJQNPEIELPSENQIZEGRHFIMPQRTMQDNOQKPGUXJUOJEYGIFLXQMSLLLFLFVOXTNRACTTIRQOQAMQHIPZEPFSSRKTLPRJQNXQNGNQJRQEQTLSQQATTUVSMWOECS]JKOQFHOHOOYQLVEMJRRRNNIISSJNOJKSPPSPJVIVPJTK@MTQJKLYPILHWJ>IQPJJNRLDRROHLIMGGNRKGRQLWRUGXDJPLKELRYKRUQLGLKOQTLKNRLI@IVMUI[NMOMAQNLMMPNBUNHDOFHWGSGDSNPJHFNMGFUNHKRMKNQHIPMOIRXGLFPPOJMLQIBRVHTSXLRDPQGSJFLEOO@UQLLOLKKWLMJPHPQVIINLIPOJPKBIONORPJPHTI\KMNLMQIPLPNJRMZPJOIOIKJOOQROPLTKUNIQSVHWTRPLKELOCOPN\SKTLSN[RPPLQQJRJHHRHUHPLKPOUKXSEGLLMLKIPIHNRKMRNVCVNUNPHKERPKNRNJRJMMNJMOSPLPMQNRTGODIOISLVQMKRROXNFPEBSINMXKPJKOOTPOOONOQKMSIKKLXNGNEJTOJHOEQSGQNSCODGNOMQQKTQOGFMLKSLQLLPNOOMTNDMLKENHTOLGKPLUQJ[KNOOOQJPVNQJMEODKQRTLUPONPYMGGNPPNMEKMPJKQLQNSHMMMOKRBEYPUPIRNIMRLOMLSNMHRHILNLJIIHDOEJVYGVGBSPNQNONORQQFOIMLEKVMLKOKSQPQNMRCMEGERNZIGVINNPLOQLMTNKNHKPOGKNJSJWSXUKKELKKJJPNJJTHHMPJMIFOOJEILSISGRGMFTYTPOGLPJQFNPTIJKKOILNMNUJTJCTKNJNTJSGNXPORVERADHOUGXZLQHQUUNLSJVQLLNIKREEMP]QMMRVJTRUHHHNROELSEIVTISJJGGJMMQYGQKTQNUOKJLDQTQRSGSFDVNPLIKRPMMIXQHSSHDFQJLOTRQSKOQMSPNKMOQROMFRMOMLMIPQJEHFOPHNONTHLHTPRRHUFLINJKNGIPQLK@JJRF>QHQNHOOKMDQOKEKZVONTMKPCMQPIOWJCLHLOKUOUGJTQNKGNGRRRWGKISJMPJNLFMLJOFGQJNF@IMPTOOICJLQKICVXLAPQNIQRILMFRMPMHLQJROMMMSNRPRLJ^FCJEHMGOSSUNGJMNKGOVMKIJLOEGMLOONNSHPNMUQPSOHBXALQP?QLHMIK\JEKMNWSMJKNJLJKJLUNKQTJPMOTKSPVLALO?NLMIIQVCIFQKPMSQKQINSIGNQNJLJOLJHLXOELIJOMAMEIDPPOMOMSLHIPSQLNPQMKRQKQQQLNGQLKVQPIGMMMIPMGJULSLKPILQPPNHOQJFLKFLQPJIGQJQDSQOKQDROGRMMEYWMLMHHULRMPIIILPLLYKOIJTFKIHKJTHQODHMNGHHHIIRMTOTMPNGRVJSNQJNKMHKGLSO@SJOOUGIXRMLZSOMQSMSKJOKFQTFGGMWONLJNNFMRHMGKLQDVENLULLNLVQNSSQLHGGMLJHDOFPQTLMVERANIJKQMQI]MPMHTQQLHFDDJLSKHU@NVMSEPVDNPHGMOMXLRJHMNHPRTUOGSRSRLQFKJLQJQSQLQVJMLSHLFJJKONLGTMLKT@QUPJEHRJIPPMJJHWIRSGWUIELJZSKTTMRMNMQNIIRFFGLLOKMELOSSORWPHHGGJSPEJTSKTPPJ\QQNHKGILGQRQKKOQFRMESDSTKPKLM[JRJSSQSHKSDJGLKSIPNJSSWGWRHJTKTEGNLJMOPLNTJMVJAISCOOTKLOPRNJIMDGLPVJRDMQQ@KLKNETVQDKQGIN@DWVPNXOMNNTIRGMXULRWJIJHKXVDUMQTMDDDXNRQSGFRLONLODHRBLKFTLKPOLNPNKJGPVETQQPNGJETKTWNPJKCERFILJRQBFNLSJVLTQSSSLKOOFMIOQOOFMQIQNPLSKKLHRQGLIQOLUITIJLKONNUMRILFQTGMNHPSAIKNKNFPRRLHSNWKLHYGJLHMRCHVGGL@TAIQKMGNNUYIKLIOPKMGQTJGSONWTMNLPMMPPSIUONLNSMTQRWMLMGKQZKNCNHKMHHOHQNSYNBFAA?MQNKTWOHVQIGLJLRQGQOIZKSLMGIQHPMKHVNPNHTTQIIMHOLMLJRFFKONILRLOPRJSLQQQJRJRORNBPPGPGMLVRNINIFLJFLJF\MOLQKLKKRMJNJQOQQOSNJIGQLPOLSXKJQJLNPOJIQ\R@MRMMWHNHILEPLDMKROIPNLRPUENLORRIOKVD[MOPHGKTIIXLJAILRJIJGUMQPASQQHHSLQZJOHTLMWLJSFLNPJKMMMOSYPLOLRNHNHLKWKQPHJDREIQKWNFLLMLNQJUNCPRLMOJHOMKSJGJPQMONFONLPN?UUKMMKOSMTMKVFLMCNLSZMLMVJOKPHLJNHJBJJOENIVULNLSOTPQQFVJOFLSHOTNLSNJLLWWERQHPHOJPELOJIOKUSNJMMNHOJRLMKCOJRMFLQEDTPGLNEILGCLNMSOPRHFTKHNGKJMHHIGVHHJDNQMTJTGROMUGTLSOPGIRMKPNSJPDJEJLRNUHJONQJKNKKRJPMJMKFMMPPQHPLGKGQOKXOJLLMLILOJQOLLTWKLJHSMMPNNTMOPIGMHGMORLOPUKFEYQGJLLLSOKLHMMJMMJUILMPORSKNOPQVKMLPUMLJLLMEKMLSKNHJOURLKOFVDJNNJRVSVNMHPHONOOUPMKULPUSVQIQNMKQLJHXGTVIJ>OONDJHTELUMPNSJRSJAULKJQKJUQKJRVRQQNNMKRJRPEDJLMHIBEFQSPHKKSNHNMGKLRKKPPQHSLHSQLKONNF@SIYQIMTNNJMNIHOKLLLMQRMMOKNPKKRDEPNKWCSLGQFCHLCLBLOLMWJMPORIL>QEVNUSNXNQOGLLKKGQNHGTLNAKKJHPOSFNGOVNOHRMQHLQMPLNNQRIPTPHIKSQVKMNKOLGQPDNMHYOTVLOJGPLQIOPKTIQMJSKMH]BNROQPOIOEPFGNOJJFKFKORMOKNFIIRTKPQHONKMIGTDOJNPJ[FOHKJLQLZTOOOIMNAEGJKVGQTUMLQLQRHOSNJHTVSKRPJNEOIPMKGLJSALLLNJIPOOPIGMJILNSMERJINdMUNMFJSMCILHUKLHXNZHHOJMLGNPPbMKHIH[PFQLMJIQIPHKSKLHKFHLOKJQNQHVQIQNUOURKOOQLURRHKQPIMPQVJMKROKRMXMEJHHLHNUKJMPLMMKRNSGJIPJSMTLGSNQRGFMOKIMQMRUULNIRPJEZELLPOOIRMNNJKHNLNSJMINIOSMJNPILMMNJGVSJLENRVNOBKIGUHOKOQOILGPPMOTRMMMMTODJEGMNTDDIHGTOUNMVHDRLI?GPXJORFYHMNLNMKEGKIRLWKKSKJPIRLOJIIMQTPIPMNROMQORFMMKLLH@KVQMMRNUQKMOBQMRWKJHFKGNPKTMJMHIVJULJCTQJEDQCNALKJDFOLGMBG]DJKFONJQMLIPQPUBONLNSMIKQYOPIIPJRFORNKMMFLMNLNVJ@PPREULHNPPKQGQHIJVTFIMROKKORCRNKIISMMJKLO_TRTMWQELOLINSJKSVKTFQENNSMRLGPRHNJKJDLIDGLQXIIELGKGK@OFULAHOKSKKNKRLSJKQFNLEM\HNUFAWFINDVCRNFHNORGMNLLH>FTWCQNOQMMQFDHMMJMWAUSLMKJHIMKNLNQTLNGNQMLJKLOQRQCI@TGIOMENOf]TRJKRVHRTPPGIHKRQCHLLCOWRINKMTTHOKJQSLFQJOJGOUUKSIHRMQNOIIGKNMSIKMLIMHOKPRLLTNHPMKVEPFRJHLOURSTRNXRWNINMOHOHILTEMQIGPPMOBFKJHIMRHPMDYJJMOL@SMIRJQYOHOPTUNIMNFKHOISTNIMKSRPLPIKINFIJPSMNMLMLQKUNLKUOOKMHLNKLMGRNIPQRPPMMJTIRLMTIPHIRRPPKMLJOKWONSPDDMRNMKRUQIJIESSTPMLKOHOKLUOGUOMGOHPNSWWKOOGLXNNNXHLIDIFIRGMRPPLPJMQQHMIOOUKOJXIEJUMMVOOOSMGKSTMSHQWQNLMOQLUKJRKNQNLIKOMJDLNGKORLLPHNMRPILOMRDHONRLJOMPNSOOPGLVKJKRFSKOQQOFQMKUKMNRLNPNNTUOQJLQQPUPTUIWVNQWLKFNKGMNKFJKLFVNMQKRSNPNSTLVTNLMQCPQPQKMQUPOOWEPKQINJIPDKJMIMLNLJOJGPOTFRMNHOPPQMTVONKVFNORQUHHLKNNPORPLTPMDPKKNHPLNOJNDPGJSOMGUMJLQOMPLGSTMLMEWIQFSMLPKLKPMMNKTKOKQSJGCFJXMJKHXUTHMSGOPEQNRJTMUKNOOETULJLFMRNOOQGPUJOJNOPRONPLLSLGQRHHHNBMOLTHUOIWOXJNOMKOOPQIPKLIMELMIQLQTGPNMIULFMELQPOIPNMSHSKHKHOLIIFSJLMOPOJUFRUJHPNNKTLVSITIDQLJRNUNJKFXIQINETSOWETKMNHOIGJJPINPMRILIQKMNGRCFNPXSGROJJKMESG[JJKTJMGOONELODJJSMNNODKOELMKOPMLOTHGGPIJROHQLLR>KKJHLNKNKJPPJLHRUONMGNIMMPJARRJPMLLKRPUQCVVJKIHNKLLENBRPMNLREJPQRJMOPGNQKSOHI[SLIONKRLROKIMTKSNQNNHONFGKOLIILQJOINCQOSJHJKUIJHQSLKKGIYFKEOKLMQJUINNNMOLWRN^RJKJRAOMLJQIRLQLORGSMTLIPFQNPOHLKPVKKCTRZSLITLLNOLKKLUKNFINRQQOOTCLUMHKOOMGQPJPNMLGRNVOMTMNGL\MQFMMHGNKLEPMLENPPLLMDPAPUQJGRTJKOQMJMSK[FNKOO@GMKUEQMSLFRICURHKNUQFVNJCSSJLMOQPEMNNSI@MEQFKNOQHXJLPTJXPOUJKVBENXJNORHVQLIKTELQNMJNQEKJEWOQQJ[FMIINPJVKIILJILLMLLRPNBTKOGRHIVUMGNLVWQJIOMLPPMPKTNTGRQRJLLFKEHSPRKFIOMMPMSOIMISQQRHFUOKLQMRLJPKQIOKPQSOQRIQKLLLKJSLNSSTKMMNPTHOLWROEJPNFTJOKNLSHOQWOMKBINNDEQKFUCPSLJLOHJGSLRTXNQMIMIKKJIPNSQKPVQQFNMPIMRLQPNQFRMQJKIGPFUGPGKJURELINQFCRPSPHGELDPJRQMOHLJSMM@OIDSJKQQIFQQMPPPMMHKJARNRHPKLMMAMIQSQJMDKLIRJMQKKVTVHLOSPGINNJTONPPFKKNMKJNUMRKKQONNYLMJPRGWILLVHHUJQNULNHOJPBUPKLPXUSPNMJULMQJJKNPUMPSFOODJJMNTGJINLQHQJIMJMNKQSN\UPGRUWKXMGLQRIRPKUDIJNIJNKXMCJMMNRIPOEELKHHLKMNPKQNNIQSQLYGKOOKIJVOCXJCOPNPMMONFSMJLHSVKJGCVNKNOJJMTWOIKJRYPHFKOSNQSORSOMJHVOPFJQXNISOOSRSPEKRLPLRKHMQMRSJJPLJZNOKROIQKNNUROGQVPRMUJMGSNWNMRSGPJGKJJRHLKKMWQNTKKAUFLOGHOLQKLLPJGIGOMNMKPRLYIDOGOJJLPSIMLMTLNPJGOEPULKWLKNHGNPJMSRMHQJLOLQIKJNPIPLTIJNWJSOIKOKLIRETMPIMLKMOOPPKOSLNOYQSLLPLMHRPOLIMOQWLJTUFORXMLDULGQGVRJJNQLGLPVVMKBPOMQIRLHQNFLJRKQKJTOLGSQFFQPLQMMMMMPRPKJPMNONPJIIQOKLMPIPVHONMSOKMXYTMFKPIQMKMMLNKRNLRQNHNJEUSJPOOAKOX^QMIPIKUNNQKEHMGPFNANOMHNMQRQNNSNJOORFQLBLSMPJLMMEILUOJJLLTNTBPHLTSTGJHPQMMLPNQNMHIVJONRQJQPLRJKKTFKFFMIMMNOTJREGGIILZFOKTMLJRQGKQJOKFJEJGLTIJOHDRSOMSJSFHHEQTMNKEGONIQUPDLHQUPLLLDMLPMMOJZKMNIGKSJFVLCYLILRKUBSNNIHROIIFSMKPLNQJLRMILMPSRKLHONOTQQJLSLONJNVNLDDQQIAHOGKJMNPPKLRJFKHKJGNNJIJ[GWIPLEHFQGNIWIJEKOXQYIGKOKPLMVSEHOXDMQLQQSNKSOHQGLFYJNRIWFGKOOOIHPLTINKPUTLFLPQKQKOKGOWFPROFNOMUGORGDHTMLJNJIPUSNKKHNILMHSNFOJLIRSNXLHONNOOTIJMHDLV\RHOSJPINKRPNIPRHQQONZMKRHHSLOSJJKTHJMHQJPLNGSGKGVLMNSNSVNOLSJWTZWFQMCPMPHPMLKPMONOOOMMPFGMMLKLTGOQQSIMMPNOKQRHMQQPRPKJLKMGMLOMHLSDYKOHNGPMHLOIGOVYJQGOPFWGMHKJFNLMBKSQLPQHQPJFJHVQKMMJWRIWNNMUKOJHKQKKQQMLNKOOQMJKVPGNFPNSKUGOLQIMKLGPQILPFMORKFNTTQNWQENSBHEGENKLJMRNQKUQSRMKNHTNLPTZQQMKPKNMHBNLLNLLYNMJ[NNRONKKSNJJHXNNMKMSPCGOHMLONLBOOTSPQUNISSUFJJSFOFJINFOVJNQMROORGROOLNKMLQEJKMSJLLOMTINNPHEBILITKUGMGOIVOP[QNKJJQPLEKIIYLMNS?ENJMGMEMQLKQLHRLRREPJFPNTEOOISNSSPPJIKLMKMMSLRNNQIERDRVPPSUCNDNPPUFVHKMG]MGTHKIPRPGSIMIOPLHKKJPRGLMMJWPMRLNRLNOJFNQOLPRNKRJG>KKRHTTLOOOSNHOLLFENHTLNPSQUNHQIHNJJJHIMRTSPPJONSILLPILPLOONLMRMKQTQLKQOP@RGHPOJITJMK;TRDHE@BKOUIDPILNJKSL?OIIHJOMRFGLSDQFJJHJADHNILKENPMOLMKIOMNKEOGJSIQ;TNLPVFNNLQJGHXQDMPPQPMUGRLQNCUJLJKV?MDKJUKFNNKUQ?LLFN;HNBEO[VTCFKQSDO@OTWILR@KTQLWOEPOPKKFMARJJBIBLRRGKDIONJ=RGBRPSOPHXLMK?SPIFMKLIINWJLCCSDLNKFIIOKCDRNSFNJBPHTQRSTRLDMPSNRJTOQEKHKRRNJGLNMDNJQDQMMNKOIQSQMFVROKQDMBESMHEJDJKGJHPPPPRSUTKTFNWJJQMQLOL@NFHNFINPEPTKLNKQMGOIMQRKFJGILPOBHNGHHFQQHRJSKKMGNMNJLNQAJLNNNKZPRPGKSNJQHNNILPJICOKLRMEOHPULTOMOJQCKNNNKGPKFOOOKMWMDXQHPKALIJGHLNJZKJJNJQPFJMEQLJIRPQSNFWFCQGJJJMHNGVNSLHKRIENURSRIGMZMETQNRRFGLMMKMXLHIQNHJMKHPJDHNOQNPIKENLSFSPHELLGKNQOFOJSMOHIMUVTVHVJJPIRQJLELHJXVQNJWONJMKHNNKGMLSPLTJHNPWPLNNBPRGJTIJJSQOHOGKHNGRJLRMILNPKXMGHILKPKMFMMPWWIOKMPRIGPLPMHKDMRMNGDSYUITIMFMULOKRNNFENNUWOTIRQTPPPRMPVOHJGPKRMMTPNOGHJJJNVNILELL\RIPHLLOPNJMPRNOSMJTNHJMROEOJPF[MQEMLSQHOPMVHGOJRKIKJKILTQKZGJJKQMKONOKHKLOLOHOMOPMPQRHTPQNPNUMKIQRJFTHKQEHPHMONMFEMNVWIPORIIHJKPKIPMRHJKJELOMHVOROHGORULLOZMCOVZWCOVOLDPPKMKMMGKQNORSQPIPVQHJMKNKQLIIQTJKKRNCJULVNKPHMTOLPKGUGKMGUPMHJNSNLLTJRNTYLQPKOWKLSRTJJGORRIFLJMIPNKTSOSQJOKOHLKSQOIHMMHIQTPEMJHHPPFMLSJMRMIWJJVOPLLHRQLQKLLQALTHJNDSKRVDJKMR[DFVNQCTYSIJVKLVGRONRGNNJTLLQQMNSWNKMPQOCKTQXKMJUFLHOQJPELOIHLMIMCLQWNZJHMPJIFWIKTMPMKQSLJPSOXNRECSULMQKEYRKIOMMRPTHKKMPSLOMOPDLMQOFKPJLFOLHMNROQSMESHSOQOLOUQPUQIRPCFHIVOHMOPLQXQKMLPSMHNVWRKOOENQKPXQNVRIRQGNSJJJMLSMLMKLOTXDLKORLHRIONQMRVXUJOTOIVDHPEOKNH[GLNHPMMPNMTIJNPJJGVROW>UUHUTNQQMIRTVQPRNLONGYVHINTPQQUPKG?RFFGQOIIKFONWFIOMPIQNJUEJVPGPCJVLUJLSRTOKLGTTQKKIDOJJKJHNPJHCWSKSOPGPONMKDNHRQOMKQSKQPNMKPSJMKLNMQOVPRRLMOQNNRJZILMKFORQHFLKKTONQMOMVWTKDQPMPLSUXBKIMHSMMQJRNJUPRUSJKQWJFDSJUTRMHJLWRFRPHRFLESNOJSPQGJHCTLMNOHMJTPGKOLPQOPKNQHRLDIQNTRSOVPORGLNXLNKWILFJJGHMIQPJVHVFSMKMGFQJUZPSNBQNJLPKKNNLILJWHSQLKC@HRMOONHBTGSRSTGHPSKBTMFQVSONQVUPXLRSOZOKYOOIIPJMGLMNJJIHRNSPPJOIGMJOTOCQKOPMQMHSUEECPMROMRPOOROKJKJMQKTR@IIIRJQMUKQNPXHME\VIKJMOKKSFHHNMTK@PJOCTMMSLLILNVXIC_LQJLOOLQMSITFWKOPMVXHJOGIIDDMOMONUMNOLPWTPILMEIOLNHIONDTVBNNX[MKKQJQCRKLENMEYIEHNKNPKQGEKFTNIKDDONPGKJHJ]HKEWQOAEOHRKSKGJJUTGRHHDFOIOIONKKTMPJISMKOS\UPVJJMQPNGORMPPRCHRRIMHTNNWKQPQSJQIPTGKEHOMMJELTGQNQCMHFJKLKLLIRBNJLJJMIHIJURMKKLSQHOLFPOONTNJOGNFMLVFNKHFGLGHJMJEPOLNIQGKKLNMLJJIKDUKQRMHDGQNPTTRFMMSMIPNJNPGMQNNOLGPNJIJJORVIMOTHLTJHBUJLNMTOKQHQDNPUGJBJGMVPFNFGOKGJNTJLNMJOKRHIROPFJPKQLMKGHKLNLMSRKRFNHMTLLQQZTUROGJPRNQGJRGQINONXKIQQPOYOPMPLHVJLHNSNNNTKGXPJUQQDNILKKKDQUTLMPK[LRJMNHKPSRPGRPQYGLMVQOQSHEGOOJNWPKROILNNRJQVLSQQUNRJTTMFRNJOTNNIMJRROTUVMJTKLULJHSKSQJLLNKGHPQFJEKIUHITQNNMHOLQWMLPITPMTNLQPSN\MMOMSWISKPN^RKMGMKLNHPUPMLOIFPHDKIQCLZKTISLIFPTJGIMPOIKHIFLOJMSFGJIJIQKEJHQOLNJNVHMRTY\OMGOGIJQRKMMHTE[PDJOISPHMIFMSOJJVWKLPJMIGHHMHSRPBRLQRHKLKTPFPLTLLIQIRQP[DERJJNPGFIPUNJMAJRKGVIJOKNMQOEQHPLPKKMMBISHQQTPKPFJINHNGLGLQNNPLIRLQHUJHLMINGSQLMFGHHHNKQPQLOQKOIQJIVIPEGH@KLKNSHNLLPNMKKNQMPWGRIOYNOHLJKKHSMPLRKVIJMHIIMHOKQNKJJGTKHPEOLONKOPJLLQPISBWLHPVKLBKWNNKKUKMFPLJGL@OOLTKLXLPQQSQHHOVENKDKTLOXDOHL]LUAHFPLHJKGOFHNLJF>RAVWOPTJIPE=HLQGPVIEGJPPQNKLJIKMJTKENKXKQWVRQIUMMS@JOQGWLH@PRNIQKUPTPOGMVFTDKVYETUROLNPOCBJOMJQCONTNSFMQOLUNTJMVFETMLRPDQIMOOELUAPOMFKRCSJBQNMKWJPF\GJOPWHKFNONLLPLMOTT]PPSPOJLVRUXHLNLQKST@ZQLWJHNXHJECMIKLJMMMFQKTQVNN[JLHPVQUHJLOQONPNCLPLOHSPTOONGGJQPJRSRSLYOGIULMEQJMFLPMJIGLBONOJMLONHTMJQGKRQRFENFKFYDOJROMPSXIPYHNMLRMQNIYTLLWHNGCJPGSLOKHJHEHPLMHUKLJTNDGFKJHGJPLNYHJDPTNOOSSLINGILLJILSLHMJIOHEMOFUMLNPEKLBTVNKNNJKTQNMEI@QSKMGLNEQUMGLKLIJKJLPTJPLQOKPNN]OMVISSPMFNLBLOJPURNOONLUPJOLFKTGUUMPDDPJNUQONLOZLJKHKONMNNRLERBTLISJNDJGQVQOIQOOPLKOKQGQ>IJUMQXLNHNKJNJOKJGRIJUPOKHQJPNTJELKOGNPIPOHHUKMNTNIXLVNSLYbLGPMZLPKGMWQDQSJQUJLJFKJJLEIRKTJYJUTOL[OMHBIOKMJJNKCVWMHKOGDEWOR]GEWMWOHNMILRKOLLMPMKFNGORFGMHKWVLLNOFCWQPIMDIOGXITEXIHQHNJDMNPSNEMNKGLLIMLMNEDFOPOLOOESNGKEDNFOPLKLLJLFJQINCTKINNPMQOOQIKLUDMBIQQMKKMVVWcGILOJJMRWGJSPLQRMBFMHNPQNJMUMTPKGHGNOLBKOCDIEKZNGHQNIJMIJRNWK_PTPPLIWOIITLPVMDIKKDILVNLLPJTWMLMNKNUMRLNMHKJJTNPQNINEKQKPNMOMOPEQFPI@FQMTHNJNRSVMONLRJULJHKQLIERTEIAONFHLK[KLPHLMRMWQLQPLKPPLLQULLHLNRTSLLOJMMVIHRPROGGZSPKSUFLNCVIIFMVLLMKPISQRGI^QMLRHPMJTMPFJKOLLKKODQIJGWLORFNSQPPQYPLFXOFPMMTRTWJPIPCLPBJFMMKSOUQODJFRKLKNQRDMHLZLQLKHLTQTGLWMQIOPMPPSKEKOHOHGPN]CHSLKNNTROJFBSMOMOOULQLFIHURLMORLLPDJOPMDRULNKKPLFESQYNKFFHLSMIQQFRMJSNODQKCNQNGOTNUSMLEOPGMQSIJQLQTIOIEMOIOHORNLJJLNNPKMNWFPNRROJIMSPIMIQHKJJJGIMNFIQNPRONXMIMKORVRMPPPHRPLQJPMSNINFKSORLMFRJJSQMOMQLMKLQLVOLQNNJGLNIMPNRMJGLSQNKINKPSILIPHVMKNROKJQPONLDK[JUVOOKNQOOVKIFNLMKIMKQKUNNLIKPFJJOOHHMPPEPLQTUJHDPQ@TGPHKOTOPLGTJETKJHKIJKWISH[NPIVPTKNNSPLFOUHIMQQTIUMJQAJJINPGIANJQQUOVKPLNDMKNTKLMLOKIONAJJPSOQLDMHRNPFLLQQLNQOIGHUSNRNILVKVSRQMJNVGUQWOUQLLVNKLKOPNNNMLAQCLHQPTRYSGLCPIHEPJRUMKPTMOHKMP?GKLFOJPOXNHYQJMGSPNJILFWSGHNORXDPMXTNOMKSJOQKRROONNJNKLUKINSMPQWPMTRVQONLJILRMIMUFIRDCWNMOWJNNLPGHHMRNNQUVNPQNIIKMKEZOOMNIKHKLPLOHHGKSNPELRKLMLNKRHOQPDPQIQFKNGKKTJILLOVONPWMKHNLFPNJSHOGOQMII]LMUPMJNTMSUPIUHRO@OJTIMHHKQPKWFMINLGRTRNNRHNGKEVRJTQHQJRRQSMJQMTTSJMMOILNJIT]OEQTNPLILLSIFEPOHQYLOQUIMKMMLGLS?LEMOOOYRPLPLOIMUMJHNYEXDMKMLTIPLQUGOKOXPUEKFERRPJQCOLMHKLK^NQPQKOKNMO\MRIKMSKCSMYPVORPFQOJSMLUHOLKUFKQKIQNEUQLKJEILPQMOJRWQJIKSSGEPRSQMHJJNRNFXKGLJLNKPJLQIGPPKJELKSHPTMPNKROMQPNHLHSXKQMKHOJGKPCNNLNCJHDOLQKJOTTJUNMMNMNNEXOOVSQPQBHINOKHLQKGKHS[OJVLQKOOPNKFKJGMMNKLMCGGFHNGMROMHPLULJSNKMKJOOD@OVMQHPGKNYLQPBURSROLLNMQLHOPUIPNMPKOIGPHHJHDKJGQKFTKMIENOUMUCTKEHKGVQLKSIKGUFPQHMXLMRSPUSLGSHGTLORDSRSJEOGJPPLNFLFCEOKPOLNOKOIKRIKLLNIHNRMFGKHSNMQRIHUUMOFNGQFULJONTHFJHMTELQBKPKKLHGMNVGDTKLLJH_PJNLXKOOJNQRLONEWGJLRSINDGOVPJKPIQKIEFRHKOIIORNONTNGQOMJNSJJNRQOLLHTOHL[DJMLQIPNNPCSNWRPTOFVHTILQHNSPMMQFEQRNNPMPIMEJRUJIIRQKKLNNDTMSTLVIHP\NONIHOHLQMQLKNNKPNWINTPSPWITMNSMPHOPIHNNJK[NKGIQOMHHMIGNPHONKJKIGUPHLOOIGTLLHMLEDMMPQRLJWHFNOSIGKKRWBHNQUHUDKOPRHOMKOJNOOFMKMDOLQMURQKGKKNLRTRFPMGIEQJGKSKMLNJMNKJOONRMKOSNMQKMJPGPSGQFKLPMOOLVPHRKO[JQPIMNNQSKGEKULONLONUMVRIXHPFKJSRMRMIGGLPDNHFIKN?EPNHPOLISKIHKGTDOGLGFXOONKMHLMQDMWMOQRIPRSIJPOSQRPUIQIJJKKTHM>KSFSK]TKJKQSIHHSHPMMVPIKKRLKOVORVHOSKTKKXJNQINQGIETLOMRYYIGDUUHLWFKHQOEJIMKHZMISPNKELEIZZMSQTNTLLOLLHJVFGLPQHKFMOEMVNJOVPIMOQHQEJLIMKTNLJPQLRJJJLOMPJOLJFCLNKQPNJMJIKNQJRMKEFHTFOIGEFIUVHDMSKMOGQPKXJKJWDQKOFQRJPUGSJCKKJULJIPUPWQRFGOPNLIQGQSHPHRLJQWKNHJKPVKJKFPJPVNQ@DJ[GJMPINYRBKORSRMMGHQKHIMSSNKOHWLTNJLOIGLRNKLQLRNRP@SIQORQVLRSCNMPIYKFVTOWSGKLNIJLTIRQJHQTEOKIKIQGJNQQ\QNPPMKNNPIJNDNRJPLQIILGFIPRIJRNQSNNN[TPTEBQIMPVCIRHRJIHVONIRRNMJOKIMLSORVJTFKMGYMNFKMNTLMMQFRMLLQDPIGGPPSELQGQNMJ@HJOJLQIPHMHPNSQDKINPPOJUMPLNSRAULNTLKOVIJPMKMIENQLDUMQITHJHOPJMIRNARSROSMTUKNPVPMHOLJJSONSJVKHOILPPEHFLICKPUNMWEIPPQQSLFJPKMJKCBSLLOTGNJLBVJQTJKGQYNMTRN`JOHWMMLNQGMOPSHGMNLMIIORGTNVMIIJLQMJKVOTMLWIKLNFQJJOCNLRLTJPIKUQGQSMKMLVZHMSIRQKLRMKSJRMTIGRPKKMLMP\OMNZENSRPNKKEPRLGNIRSTVWNMKQJRITSLNQGLOPLZRFOKVKHRMMQDGIMWDOKLJKKMNMGEHRQPPJPONQIEOHKPHULOKHLMRHJPSQMKMMJMTGRTEPKHMGLXILWTLEGHHNKVGPWEMNIRPPQINNLUKMLPLSHTTGPVDDMTJQIGMEOHLFNILNKWIMFQLMQINO?YDVWRNGFOINOPVMNEPKOWWLTSJUHMIJDKZCSINKSJLJSHEPPLPIOHGSHTJYONLJLQNNGORUMJVLHMIKLDGOJMDHQQQRNSTFKKSIJPMMHPQRLMROOPULUNYJWKNOOWRJGKLVUDCXBINSRQPRNPVOTDSJ^OGQQTVOOPJNOXXKQIQQKOTJPQ\SUZNEYIDQMVPMOHTXQVHHVJOILKCJIKMOM\IUUEKJGPISKKQUVUKQFYHX\YEUMMR[GODOHOGLXOQGGOYOILL\OVQMNDPLPGCNOHPNQTPWQRRMFOJFOSQMENUHGZYURPTMQQMTKOQTXOQKGHLKNIIHNQGIKPWNJPFSQHMLMQGSRTLTFNOKMTMPTNPIKHQQYQKOFNOFMNOSQRJSKLKVHRKIHOKOUMQLTPRXPTLOOHHROOLLTMMOJPOPR\RNNNQTKVLQFLNTNKNNHGI@IKOFNMRPPHLQPSOTMBQMNJGMNVNROOQKMSKIJJDTNQKHPNQUGWUJQLLFOVKOROVDOGOIKMWNNOM[JFOOFUGMFGIKKLSEENHKNIOPPMSPEKOQILIFCMXSIINORGLLLGJKNIIIPXKOSNRKMJJMNIRRNJONOLQMOMIRNRSHNJOTFPQOHMY@RUNJVUOKJJTFSNPJCRRKFKKLLVTPJTKNPMMSLNKINZDNQKOOSSWN^HIUSHOQQOSMODORPTNEOIJMRLHKMNMHOLPNWIRQAJNMJIENETMNJTQTINPKPGHFKFQHQDUNUJQPNGNIYSGMLRPSOKLMSNKOGTASQMRMMQQIOLMXMOMWJHCOHEJNNVTRRVNIOHINUOLKOIFXSJQOPEKPNSBJELMOMLKQENHOSNOROLIMLQSPOAOMQMJRHKPUSJTMLNNMOPOHKJTJOSOMUPPPHIDJNKHKOJO]FSPKOMHHZGIKPQINMXOWIOERLFHTQWDMKQQKHQOJRGMSMXIPROECOTMIKIOXIOOIKV@PNLDSEPKORTJTMRGSPYOQXOFFRJLRINLTPJIQHTK@NJCNRPLYLOOKPGONIOIIFIQUQJLKVQHOROPGVUYQSIRIKQLMLLGYKTR=FNJPKKKTMTKMW@LSI@JIKQFNQQEPMDJJZNPNLORKYPOLMTGPOJJEVGJQPVM^OJMMRKWMSKRPUOIPPIINTSAFLTHNHRCQRJJP[MHTYUNJTZLTMHIHKMJMEJLMJXASKHAITMJARHKXHTLMHWWHIMPLJLNPIMIYRKLUOPLTQQKLZ]KKGKLFNPPQSVNSLXRT[OONPTOCNQVGPRKWOVWIJIXORLTMEPONTMRZFPMQTRKYQPQOPOW^VNTJMPTOQPVVOOXPOOORTPGBHKJLKKSDMMHTKZEUIQHF_NZUORLZERQMVRZTKXYGRQSOMJCPVFPPRPQQLSOGDTRKHPNOWI]LRKETVRRKZCZPRNUHOOMHU_POKQLQWLR?IMIZPPZRSNIQTNQTRNTKTPLQLNSTFUHVSUPJJS\PTCFHJNaSPFNWJKPNN]SUPSWZONTWRJJXMNVPNJ[XIPRIPMNTQCOWKTJKOOJMIIFLIGOKOIHRVeMWGJTFGJJ\JTNSOD?HKQOTPUKDSLKVMTOFJMOILVRTARLDEYLLEHIXJFLIQMIONMUKGANOQTIKPHSACGM=LPJULcFJFIC\FVGHOLQQSMGNMWGNOJMK_JOLQGTTONPMDIPAJPUBLIPJGFIGELOWQNSKQ@TNXKHLQAOW[WQGZCUZLEHGHONMPNNKMHRAOIQQMFQGRGK>XMOLQVGMYMCLSRHKOSDPSQMUKCOZOLIHHQROIRQRHFAXQMKIERLRNXQMFZDJQQSPJRLDFPWSXIQKHNQCJUCIMQFNQF>OYOKLUHNMNOQKPSQOR@KIOGNWDCLNQGDJFFKUGNQNLLGSLRJVIJMTGPTKIOJIIQ_IJQLEZOKJONEAMOJWMLMSLIOPLKOREHOIVPFIPFK@CJINPOEICILMTMIQWNMILIYNQUEJUFQHUWKMLROGPGHJHJHJPIONVMIMFPHRLKPFSNKJVKMPMUFJLOIMJUIGEMJOMLMPETE[JTPONMMRNNOGOMISMKIJMPGVKJHSJMIMSIOIGLQTOTNRQNUFIGUNFNJMOTLIRHPIIRJLLLDKLNUIEFPIIKJKPINGPQNMOLIJKNRMNEPQQSLNMTOKKKRLQHDLQSMHULNNNEJTKLLNMPNLOMMSSJMROGJIKKNIJMOARHSSGTNMORMMGLGDUQFOOXMGHJEQKOHPCMKHTLHSMCHGIRGSPQIIMFPSGPDDFQOMOUSKBTNIMJSMHKNEOHQFJIOONPNJOPHIJSWPURJUKNLOTLKSLKIOEFJUPUHIXGIILTUDQHOTPMGBIJALRO\OOOLNNMSDDTMPB[PYLEKMAMFALIRONVLLSOMLWNHLRHFFTINSTMMSKLMPKJLLPFKRMNJGXTMGMJIQKJRLFNPKFKNOKPOILCJJZLIIMCKBOMKSGJRNNELQDLJJPOUKK@IJIQEPMPHNXHFFLJRIMIBBBKKGKMQNKINMKONQKPKIOFQKWOSHOKSNPDJPVSSTKDZPOOKQMORSNQUOPSVOMKLRIRUFIMJRMFQJLKN[TNXHVMNNLQVNIIMTSLBQQRLOMRDQGHQLELLRKIHOPRHNHIIMHIOOULFKFQBISIIPXKSQURPLCQSSSHRTQMVPMPPLLONPPUNMMZHRJRTQLOOIRHRLLOMNTUPIQQJOOHQMKMMGOSQNMMJIFJFNKNTENVPPKNHMNJMNYNQRVNJMOLQNIIPMQPOQIPQNMSQPOYFJPNNQOOMVFOJOMQITIGRNPM\TRCSDQOPSJUTNPMGHRVIN[ISHOMLFIH^HKMKRLPJNOTMMKMOQITTPKNGTKGKLSJJMQNLPSINPOPJTHNQTJLMRMIOPNOON]MXXKLLDQSMKKQFGGIQXMNOSKQMPGNLRMOFXHETMJKNGLOUPROLUTKMUIRNTMVMOQEJIRPFLMRJLLIMKOPNOUMNRRKKTMRLNNIUIPGVNPNHLGPLKUPQJOMNJTJONPLOVLQIQBNINTZSQNRMKORLRKRLKORIPVOINIQTUSNILQTSQLRPRPHNQTLISTFOQWURQFSORUMJKKKSKGERQNQKQNQOXJJIGSGIPSIQJTVNTQPOKNHOLDIPJIMTMLPTQIPLPPISQJOJMNQSKMVLKANPHLLKOGOTQRPPPLVVHMJISIQSKPKSMDLLLONOOKMJIJLGKTPPKNMKJHCPIRHRHTPPRJDMIILONLLGPTFORITMVMNQSLJNXNHLJLFNJQTKODFNUPMKNNJRKIOWPHPMPGVSUHNHSDPHOHLQSI^INJOPNTPOWGTNOPIKQLVRNKQIMGJGQWFGLFRHKJMMLMGMRRJMJFOJTQGPIN\IIKDSLSTLRPM[GHBLFNRMRGMHQGIQJTNLHKUNIIKJJOKFKOQILSIMEVMNNMKLPFJSIRIPPSOLELOURILSLHSOJKRHNMFJRLRMNJCHSHKVMKTNRUNLMJRSYMOKFHGTGKSLMQNSIIKTMFMJFGMGINFELINKIINQRVHIJJLTMICEJIMHLEGNOPHJLODLKLPEMMKMJRCJAPEUKMLMNDQHNSJDNOLLBUOOMQPROPOFINPLKGRKNKMNOVOECHKEKSPPKJGKGHPJKQOQSKJLJUPMKPKNECIVJLISNYRPJSKGOLPMJIGJPKHONQMUHQNKKMLOPLSDLGLHVZ?POTQKLKPPLEIRHPMMQCLLPUURUBKHMCGXKNESEVGRUUOGQSRQLDFGOTHYNQJGKXHMMDOKSLLRNKLKCAECMBNUQNEEKHPKTFNLVGIILOMKLHNSMNNORPJJNLJONOESSNFOXMMIOOMONMGNLKSOKGFOORLQDMPMGQINMRGWPSIJMOOMJWKTLUKMVJRILRMQJRSIQJQONSSIQNGPIDPTQOWKJQPWPKTRLKNHPJMXML@KSUXLPLWNLLPTMQKPUNLKMRLEHEMMKPOLILTMGRLQJYKYPGLRPVNLDOOIIIWLIJRS]QPLQNLFOLMUPEHMLPHDNLMVHLMQVHPTJIMIKIKJXOOLSUNLJGHJSKJQMPPTSLZMOaRLQSNJRRMLWHKIERJPLSPKJQIRMSO[HFIJMUMLLKMNNKDUKGMPJETFGNILKRJVQWPOTGLRSVJELNUMRMXVQPKZPIQRGJRRMQMPHRKNKKLJLPFSRMIJEKHGVRTMFJFNHQINTOIKVPRJP\QOOJGRHKLDMMQHWKIIKRKPUNILMDBFIPKDNRJPQMLTHOUPFUZKHMMHIMOPGLPJLPVGGGRIQMVRLVSOQFXQJOPKOMQJDNKNJIJKLQRQFP>IQSMSHJGZPGPNFLKQMKNHQGM[MTNDKSINNMPIULOMJIFKLPOOZFNHFEHIOLMJQIHNLMNLMLSNDFSQWJMLTNOLWPLLXLQOHRLKVVOMQENQNQUQPPLILHKHJHOSNLTONKYLQFRTMJVILLLDIOHXSNOQMHIQGSEJJOWQRSNONQHBERO[JVMNNZIKPXQMJXMQLFHJRHYUYNPIPHURMIKNGQOPOEBOULJKLJMJJOODLJQHHVIIHOOQITQGOGLSFCLOPXV?TKJOPCSHWIOGHBQERQIGFFENXW?HTLONWPLPKGKMPJKNJLLKCFVIOKXSDLSGTIKFNGPWLJMSLOHILKKNNNPOLKAHUWUMSQGPLJMWQFJIJIPLNJKPBSUWPOLLGVXENKIMOGTXGWPMSIMIYMODSQNRLGHLMUNQMKOQNLOTLOJHPOXFS?KPMIRJHFQSQNNTKOBIOFPLDOLIMGJOJKUMRJMTMMMKNLJKFPRVOIROMNLSJRMIKPKREOSPLNFLNOQXPOWTINVLTXNSHOKIRRFIRQGMJJMJHMJKIOUKKMRROQTQRONNKOOMBNPMNPLJMOMGTNRPNPFOPHHLNRKOIVLULGLIMMINEWJNORQOFSLHCIQGGLOLKMGPPIERPUOPRFPUPKKUNNTOSKFDGHEKNNJZVOTLLOJJNOJQNNXNETODOLNRJRGNLLIIPIJJN@NINSJOGHQPSLKNRINTPJTQNORPLKQONPQMMMGLDWLOVILQKKQDQKLMGOIJTORJNHRGOKHGPLMOPACMRFFOFJMLMHIVLLOPFBIKQRLLFUHKPSOJMISOHJJTRPIFKKGFLEKONFITKIKRGNGIMMKOHOMOJMMJLPKKPKUPNLPMRKMGNRNMPRXMMQMNKSGLITGLJMHOSHPHTKNJOKPXNRRINDMIPNCLMEMJKK>QJRJHIOMQNQMNLLKIKOLNGLMHJPGOGJTJQURJPENRLQLMLNOMLITKORRMKOFONOHLEJHOOFRJFMTJELJKHOPGMKROKNLKRRISIMLLNQULISFIKSIGMMEPKQMLLCGSSIKIQMJUTHOOJJKOMK:OLTLQNCMPSEMLETJOHPKNFLQKFFRKKJLMEVFQJPNPYXKRIDJKD\CLNHMGHHLMKMKRLJTIROLWNNJCHLIRNGGRDLKHFRRKQMFIOMEIMMEOQMRNZNGKOFMVBTVKVKLINODRJLJFIKKLIHRMJQMMEVQNKNQLSNOSPOKRWCHNRUDMPLNPPOIKPTGHTGKKPHCCRHSZHQMNJPOHONIQUMIPFUTIKMRSNEQMLENFNORJMNJMPNXKSIJLNNGPINLTREZNYGKNIFPJFKMTTPELIKQOMLFMLSWJINNUTFIKQWFZSPROHLNYZBLCPTOSMOLPLIPJJPNRHPNTBLONOHNNJKJQQJRIGRQLJMJNKQJQHUJBJNRJNIIRNJQNUGIONOGQPPKIKNOLLTPSJJRJNKELLOJLWDNKSNOHDQTGOOHLLOIKRGPZNOOLPLJFOHPPLKJMINNLMNRTJPKTKIORIIJMONJGTLQMNRGLLISDQHKPMQMHIMPMKJHQNLNNOJLUJSKPMOJCIPPMKUSSOLIPMRKKNOPQQQWMIQGUOHJMKFQKPKTLGIPQQMQKMMKSSMFNTTJMTVMOI@LQMNQQSLQPMSIIKLRVJEOQHIHKIQMPRDXMJNOOSGHINMHKLVUQOUYPNHFDQLMLMJNONJRVHIFMUKNITMKMVMUQUPHLMSTTOTLLBPFDPPQLRNXNOENOOMJLORJOFMHIGNIRIMRQKQGKGSIJOXLOLW?JBUTGSMTLPRMOYQMGWHSNGVNJUJIKMOJJMULRSSIHGOSTIKLRRIPKQERMFKTGPKILMYLSM\NJIJHQLGKPUJDOSMOLOOOGWOJGHWGEXMFKIOSDHXKJSJUHKZKPQPQRKHPFLSHVSLQSLPTO[OPMTHOOTTEMLLQPONIRKKQRWHQONNPSHOSTTPMPFSKOQKRSLSPMKRIUKETOROJI\FVIKRUJDPILMSJE[PNOIJKNMNLHJKLMDMRIKFRPMSPODOHIMEQIDMBOEOIEJPMUIJVIPRRIAIJMOJNOMKTHIELFMQMJJGOELRPSQIPQNOKLIRNNFEORQGPUDKKGNHHQPEGOUKKOLROQPKGRPOKVTCRIOKKRITRLIKJSTSOKKSRLPQLHJIHSN@NUKODNR=NNGJORNEGTFPMQS@JNMILMETOKUHONHSQGCFINOPKOOTOOLOGKQHKMFTOTJZMAOAPIONLEUNKLNNGNUPGSPLMYMKCKPOJWEHNNJMKOMPBZCJSHLEJTMIOOLXOPSKNONKOVKVNHEIUFEGQNJTLLYMQIQQNRVMELSNUIOIINHNRTKKMVPSETMLDJSYHETJLLLHMQIQXXKHPPNWFNLSMSGPRVOOKQNSPOLJUNJFNHOWYYNENONTRLZNLKOJCIPISRNUJNENPNQQLLPNKURSQQHQRMFSJMPQKLOKOPXLNQGFVFCWEKUOFVNTRMOTIHNHILSRQWKQBPOLONPPOQPIQPGGNHKJQHKPOOGPIHRNRRWKKPKQPKPICHPDQWIQPGLDIRGMOOURKNQOIRJFJPRPOJTGRTHNTNJEPNLGHFYPKDUTIJNORXQDJRKPJLLOMLMKOINPLOLFVIPJKKIGEPUISSOQSCHHRPNPIGOJRHGQILFKTOOFNLHKGKUDGSJKQSIKOYJMWPLQ\OJQJTLTMNXRJLSULJHNNQV\TWMMNPDXNHJMGFVQASRLPOOQRQIHGRFNQSMNJSLUIHJGPLLQCHIEJFHSIIIHNMPOSTOEPVKMGCULVNEDPPPIKNYNKLOKLKLPLMMJIM@JQCJJPQNKGDRRMLIQTNMRKJCJOHOCFFTOMMIEEIUONMMQSISHFLKFRWOEPPOOPRNMEIMNRLHKNMLFENKKJMDOQQNLIDJQLKNTOSIWPI@ORMSCGLNROLOLHYTNSUTKRZUOMMLJPCHOSNKFJEPPNOYJTQPLRMJRJFIKINGLN`LTQFEPJMNJSFKPJFTVKXPDNMMLRQQLNIXJFGESEJKMFODMMKMJWVLMISJNNQKIUBIMTGLMKRVPJSLMIJCOOEOJPSOHLOIITMMMSLHIUFOXKNMMSQITKQJMLQMISDKJJNNITKMMRMWQNOSPNKKDQJZZRUUNCJPWEMNPH@POOHSMOHFRMDNIOJLSXTMLOSHMQWHLPLPELTZNWLPPVKKENMPNQNDMHNRPPMFJGMNCHYLNMRPSOUBHMGTMGHTLPDSMVOIOMHQQMVJGPQJNMTQCPUOGLKQCEJJSKTYHEOOJCLGOPHOBRXLFQMRKRHOHTLHJGLMEQRLINFLFNNHEMFJXKLRRLLOLEJGNDQOLMILORDQPNQEUMOKKMSKRPIQHKMOKMPMFONNOMRMKLSSIRTFLRNOGOQVQPIWMPSMPGMQQWMGJKHJ[LGDKWRMQKMOKKKQRLNIKPJOJKPMLNNUJLHLMINOQMWQJMFQMMLONITNXKMRNIOQMQRRNMPJ?UKGT@EPOTLMTSSTRCQFQJSMLLFRNLSTLLXKLKTGCC>PHIPMQ[OUNNUNG[GNMNHFOKESIWMNLUORJNSCNPRDHIFLPNIIKTURJQWBIEESOGMN@MWESQRNMKGQOJGKHQOLPTHROHILMLNK@HLLLJJLMMPBPFKDPXKMKIKOOGNFHQLURMQHQMSKPGDQMMPTQQ?MVHGEFMHWKJOPYMHJOLPOOQLQTLJIRPLOOLCHDQKIKPQSHOQRSGISOSLGOLJKDEF?NJEKQCPLJJODPRQGMPLQJSIOFOLHLKVODHDNSASSIELVQQFBTPHRDDHHEUPRNLJIQEKHCKMOFKPIUPOGSGNBRJOHQTNOII]KKTMHQFHJEKPLNRNSKVROWJMKJKRKMSVHOOKPPMTIKQUOSLHKTRPIGYKFANHSLOTGGFUINFSONMRSSPQNQOMLTKMNR@ITERNSRKMRSHJHUPQPNHJQFJZIPDGTLLSJMKPPHKNSLQOHKENRINJSLLIPENMILOJNLHISIMNPDNKQMNQKMJPSSITIIJJOORHOTQJPRRFIOLPUUQLNLPCEVSHMJUMWKNILJOLMGJPPOMVMHRPJJIOJOLQLOULJFODDVBJEKMHUTKOJKLMKMNHPRSIOJDUHOJJLJOMEEIRDMKTKRJUVLSSMVNBPOCLMOJIKTKNQPALQNOPSRSQHNMJPNRMOHPQHRSUPLLQLCNNMPQNPRNYMGOJQLPPMGORGRMIKOLN@TMQFJFEERSKJGRFSNFQDJKLHJJISNJMRLRQMHNW[KWIQHLNLMKKITUHPNLJMRLITHLRTQIHOFMPMGEPKMT:]OIMHIQPSBFIMOSQJILTEEMKLPPMPIXEDQQNIMNE[OHLQLOMNORMPKLKSMLDFMITRRKJCGPEOFJIOVPMGUISKGOJFPIULPPSETULQIMLLNNRJOTQINMMPHGMJOUTTNSLR@WHFHYSLQHKMONSPP[QSJQIKIR?EHWILQNNGGPROPKCLPOUGLNGPPSUWJLPQMKPNKKKLLOEEEVGNILIKSONKHENUPRJIUGMQQSPPJNNPLJBLOIRMSMQSOIKJKOKLMNLTRMESMOIQEPUCJFKGJHPEHJNKIMVKIPJJSRJRONOODJOPIL]IKQUQPHLKOPKUMILNVJJHOKISNLORLMGMUVGPNURT[MEJOJD\NESR[JMRUIJONTJHWGLJCQQPKPQIKSKLJJSXMGNKJWUPIPHRNRJRMLPLHAVJOPNFO]MMNMYLQOOIHMOLJMSSMHWVNJLDXHJLZJPQTRKR?QSLDHHNXORMHKTNNRPQNJ`MKKGGJJAIKKXMNLNPNLLTRPIBXPHKPEOOPQLINEIOHMJQLORGXJPZMKKFPFVQJKDHOFMKXXPPPP[SILSJGJIMMSRPAQGJHFAJNNTMKQNKIHPOQHMOJMHHNPKCPNPMPSNNLGPRMNHODLMNNTVTTVTGI^MKIPHMHLVMSFJGMOSISKTQDFVNJJLLVLJMTSPOPIPNPLPKKUHKNIRBPLPSIIQAIKPKJNSLJPNITPORLSSNTSWOLDRQJVWJRLJIHWJNHOOKNLOOQVEJOMNRRCNTPMLHNQRLOJJYDLTLSFSRLJSMRPRIKPFMU_FUEKROQSKHBKGNRCGNNWSIRMKQVIKPMROTOVLNOILMNLJPPXOILPORSOPJKPOTJORQLLKLEMNKGHPLFI\OZMKPGNOSJKOJOMHVIMBM@RKPMIKNNPDUISUFLFJMJFNHLFSJVKOOINSFLKJHKLSGQQIPCMRPLJLINFGSLKRDMUPEOMNIVNLPNEWMLNINMIKJHFIJCRIPRHOMEMJNLLUSNKJINNMHNSPFJQJGVOUKPGFLOKPPTDLHLLNFINOUNOTKOULTNHROPHQPKNVPEHRTMMMDNSTTIPZNSVUPHLOMFNQMIFWKMDOKKRILZMIQRHOILLXMJHUHSPQLMOFQPOHGMMWOOVHQKQQO@PGGCIPUGGMIKJ\KRPKINVELMMEXODHQMIKJKSNTQIUGHFSVCPRTGNQMOUDOFMMFJJJKLLJNORDMQQJOMNOKPUKEHLGMNFQRHFTV`SGPMPVJHFHRSNTMHMKQNEHGNGSLIWRFYRMLJQQOZMONSONLNKKLQEPSIOPMLMVZSWPNPOUEFMMMJQVQSQKFNMLQCZNUDKQOLRVTPEELLJLELPZJJOMPIGQLIKMQNEJOPEMPRMKCLHKISTPEINQQSONEM[SNROMIMKUMVPOFIMOMDZKJINMJLMOINPJNGRQSQJMNSTGQMFLJNLITJMPINIQOIMSLKHTPMRFMHLHLJPNNKFSSKQRLIIIPPORMRGLMIPKXPKKTNOOINIQOUKMIEPMOQHMPUSJH[SNNNLMNIMNSQMSJLJONQNHFPRRNQMLOQIJVLNRNSKKMHVROQIOSEQPGHISVSRMINJUNDMQKQOSJJNIPQDNSREFMSFQOOLVKCKIHFVPMLLKMLLEKNMIPSKDNIULSPRTEFLMGFOKIKMILQNJSNKNLILNRPMUDKMKNKKRJFIOFSOORMUOREMSHGLNKGYRGNYMHSNDUSGLJKKOMKLQLFIJTJUOJTHQMJQOWOLTMHOMLQKOKNYLKGSJJVYLVRUODLJKLJRKAKJWIQROMCIKHHQMMHOJPOYLODLSMVJMHMISSVCQQUHHCNOQIKQMGNRPOMLJKYLNUFKHK?MMMJVNHMNKMXNQPRAIGPBQHAKUKPJOORPMKTTWDOQOLNTKXO]OLONKT@GMHRRMRKKQNNMSNQPHTQOETOJVHKXHILUTQJN@NKSQLKMSJHRSJRNRNNJGDRJMUTLJPKSMTNTOTKLNXJMKKRJGKVCLNRFMWMIPOJSROGQWJRHSHTRPRSYQNSRRMQGMMUPIPKLJ[KYSQLSFEXWQMWPIRMSQRIHJQHLTROMIQIKQYCTJGMMIMFTFIQXSKKLRJJFOJSNEMWKRR@OKJJQQSEHJKOJGWJNILJRLIRHOKNUX[RVQOIORFMPSLTLIKIIGNVMQQMMWMPRNRWFNQVPPJPVKBMWVOUSGRNFIKOQVMOQVJITMHJMKRMMXHZRJKLMNSUOKMEHPPVPI\NJROKRLLKXPQRWFHOJMEJLOVOUPOVMULOOKTSMMLJNRSRFIOURSOVOAPDLHKPLGPPKLLQMRPOGRNZIOLRPGJQKNTXIEKNPPRFVQKDXMUVIKITNULVLMMNTSRNLF^VWKGPZKPNOINNPQKUQQIGVLFPRJHJTKIRLJSVIJPQPTNVTTQHUSNULPNJKTOPMZOSRSINGFTDGODJURUN>[UMKLPSCVQRRMKPRWQJXMVGSJQPO=KKKKMGLJJLJKIJNKLPLCNDVMNHMJREKJNJJJMUOUJCMJKLHMNKHNNQIJFRFFHQLLHKRNFOHSELKNNRPUKPNKRHNJIJOINKSKXLHPIJKLVPJRD@JLIKFKRKOQQLSLMGTGKGLNGLLPKMOJIJUIYJJQGVEQPLEMVFSQKUNOYPJQGLNRPMJRJLOFQPIFISUPOIOIRLJGHOIPCMQPPSPLLOVMQLOUKUJLQLSIRHLDDPMQIMPRRQHJQKAIPSNOHLCRBKQGNOLRHJFILIGJ\QHOPQNPNLJOGKDMBPJFYJLLRIQILVKWSNRLLJXFJHSNPKKVBOQNRJRHJUOJO]HHINMG>QKIKFGKNMRTJPGDKIQRVVOFNRPLIGTLTJHJRSSPNIGKVMPINORYODYRKMKDNPDHUJMUOCXMOFNOKKSKTJHYLUNTFMIQKRHKTULULOCIOEVUEJOPKMMJSQGOOROLJLGZRPZJJRXHPOQGQM@PVUOHHRQLXXKEIIUOLQNUGULQKLARNLNXNJUNQLLSJKMKMMOKGKOILMNOHKGMVWSLHLVLRIVSLJOORHGLLINRFLPIHNNQTVJOFTJQSPDKNLXJQNIPIJNOQNMIENPOLMSINIFNHLVJOZRFJNPKKJJJKTPTPPIDMKHQRJROMNKMJSEGRRMOSHLOJTKTOOIT@IEOTOUSHKKNFEQNJOSGTXLDDSGOPHLKODUGOPONOHKNSUIOPFIRFPPNGLLMEKNRIEEUILQGNMNCSMMMPKHZUIXKPUNMBRHFELIINPNUOOFTHMRKPNGKZKOOJPVPMLMKLNNDLKHOKTFJFNSJPENILKSXNQKHTQGTRLIJJUERRPMQPBTNOLMSBJTEMISLKKMKJGQJQVUFGCOPLTLQWNMNNJHQRNMHLJINGMNOIKKGGINNIQTXSOFKJOFRJORGBFLPPPNNOFKLLIDJRRQIHOLKKGVDILKNUDHOHJWTJIKHJQJHPIUHSYMMNJIOSHZPRIINMMSIOUILWKQQMJMGTJQPNMYQRPQMSOOMQUONFSNNLWQKVKNKKJPPLMKQGPHSLHL[MQNNGUFQIIORINXTJOHIMUUMLKQSLVHGIHMMJJQKNDSNOOUMPSFCFN\NKMMQVFGKNTOOLMJINTLUPLLIMMMERL_YIMSUJQGNMTGONWJRLMENOPWLGENVXOVPXTVJJKPRIOGWOUIHJGJQKOQOQRHHIIPUZ^X]OJJSLKOIQOSIRHSNNQLPTLGKFOHWOLJJKLIKOJGFROTLLDKHKLGXKPKFJJN@MM_PHRRIJGJHFFISLPGGILRHROSSUDLGQJJOJSIAJIZIQSGNEUFLQGROOMOISIQJLSJLNPJKJJLKLVRQOJYHFIKMNKNSISOSPWMKIPKJSKKKLPQGDLMOVYUPESXKJMMHMIRLQSJKMMLKFTTPUIQINJNRHJIPIKIPMNINBHMNLIQKZMSILOLKJNPHTLJGVDOOHGRKKMFQMKLQNKNNENGPQHLO[LGLJHSIJKOGNKLLEHNILYTHOHROTPFMOHHINGQURRSJJPGKLHMNLUQHJLJHORGHKQLMOSDNMKJKWQXIPXQMUMRPMKTMNMLHNRIJIKHNQSNKMMFR[VPDRIDJKONRQSMMGKLGNEKHJETFLKMSHEMLRIRLOQLOQEILPIVDKKFJORMEENQUKJJIRHNHGQGONNHHKIIGVKQRJSPJUSJUOGRLFFIMQMOLJJFNHJIMKPUGVHERKRNIQPPNQBUIGKNJKJOTDMKKMPLQCHJRHROIKTJFNRJMMOAVOMKJNFGJOKOPFOVKQNENRHOPKHPTKHEPPUHMVEPKVUVIMCDFSVRVNDONLIMFLLZSKFQKLKNMMNOJPHRMLLLLLQGQLLXNDMPPINIPMQLQJLOMKGKMFPMLK`PJQPHINGPKCLPTTKCUNHWLNNRMKQOOTNMJJOIMKFLOUMSOHDKLKMIPHJKHFMKOOHKJIQHKPWJGPJOIONSKNUHIJOLPTOPJNNIKMLILSKTULKNROIDGXWHUMIBNRLNSKKMOQCPMNHLTCFTNRNMKVJQVKIIIMKTPODHELP\PGMFIRNTKBJLVLHJGEOMQPFPJPSSQLHFIMPNRRPITPLJFITKJDPPVHOGNLLNFJHOQHLLKNPNQEILKHGKEOLLSQCKOMQCDDIQOEPWKKPUWQBJEVLTBNOMEMTKTNHMPJQJIPOCFPOJ>QHJFOSOPNLOFQVLVEAOLSHKFRBFNURFQJPYZQGJLPNHNHGIIHNFKEPPDTMPYSOJIJFLMLUQMLGPPHXPKDRJKLHTIOYIOJHKLFPELZSKLOJKLTINCSSMOOYNNPGBQQLRDWKWQMLCOOJOIMWGRPHQGQYSMQQKXIPLMMHNIVLQINORFIHINMEMMNPFKMWLSTSLUOFLHUTGQPKRGUS[RKRSKOLLDPMGIHLOSQWHOEORPOJDGHNFJKUSGRMGMQKMQKYUTVNURUCPGLJUGSFMVRRQPOMKOOHTPOMWPEPMGGPJRMIMKQPRQLOJOHLVLQKPSHLHOUMFM[NKJHQKTJSWGXNLKIJVRPKJNPOJHNHLTLNEPUJMTIQLNQJNMPSGJJINKGLTPFSJSTVLKJIQKOTNOJIUCIKILULNHPPLNINLUGUUMKJKTQQRTKJPRIKZUPCNPMJNWNKM]NOOKGIREIDOKJRJMILOPRISIXJ]LTNJLNOQKIRLSJMNRNOMNGOSORVQPUNMTNMNNNSWNKNIOHIRRJN[ORKHRELKLQLGMKFJLKMUHORHMFNJNPMLROGGWKYQJMOMHRKJLPPOELUKSOOOVPJQSTJUOMTLOJHIIORNLJININRPJQINGKCEJJRPOBJHOHGQMTKIYPMDIJJKELLPMPCRUGOONSHKPJRLQTOQTSLWFPKLPLMTKOLJMKMRVMNMCLJIOUNLNOKNSLVHNIENMNGUFLSMLRSMPHKSFPKDENJNEWTPHKTUOMIRIESRSVSTMPTKLTKPNNFJQMJHEVKFJKNNMMLPUQLMNLKPWUNKYQJSPGPMKRKEJSQPRPKLNPKORJOGMNOGNTIQMNLOMQNMHGPKIJFOQQNHPSIIYMJHMQNJLLSSMKOCNPOMHOMPNEJFNPZPNLTPLPQQDTRPSTPMWMMPNCDJKMDEOWLJPKISHSHMKHOJRXODQKRTMILOHROLQRNJIFNUNNIJWQPRRJRSITNUPURHRJPTHJSHTMBUKQKNONEKDMHOLJLLCSXSPMRLOQWSMKLXEPNRSUKKGJLIKOIFOMKNJSNLCWKORVYLBLLTLSOINTHKLPOGTIGKOTJKOGVKJKHPSJLQQNOPPLJJHKRTKQFNJNNBIIJOTMFPLOKORLPPOONKNOLPPHSLHHJTQKMAPKSAIFQFNQLQEFEJLLFMOJPMOHJHCNKLUIPHPHIJEKLMLPLKJONNFJGFNIQQRMKEEIHGOMOMKLPNMNJOQQWFWMLINIMPPEFPOMILUVGJLUMPPGMVOPPMKYJJHIELPMKHJCTMZQHQODNSNPLOENGGNWFHRJJJORJF`OHKHQDKHPINMGPMONPPJHJQFGKMITOOJLPHIEQPOKKSTLJDV@LHGMMPQKSDPJLKIIOILMHOVQLIQGKLNJOIKETOUHKQSIPRRPCNFJDURLMLGPQHJJDUFPXIOQOLXJJRHLFOUXLMSRLJRMHHHIFLGNPTMSHHNGOQODZCVPBKFHNOKQSKNMMOQVSHMHONPVFQPJIVOMLQQQPFESSQKULPNNODIOHHOJQLREMJYUOONQQNUBXINMBUMMHSSINJKGPD\LWSKKNPDOLMUIOQHPTLPFHLJNOIIPTVKJOPUMIOMRRPPJSOHOQHKOP@XPPILQSGLTISPNMJFZRLLKOSLUXMTQMHNRJMMMPDLRFMAWRKOJUIMDVQGMGJHL[QSLLJMPLMKPMGGXNIJUJPJSLINSSNGQLJXJPIJMMQOQJNJJQXPIGTEOVIOIRUSAESKNOJNGJ_DFMMURLXIROSQHJWCLIILKJQMFLJOMGJRTNMMOUPJKUKWHODMILPHLK[NLILSPVILIQGJMQDUVPHG@RMLBFQMGENVHMNNRLQQOW@VIPPPOKOLQNGJRMIRFKURFPNKMGTHKOMOGRRJM[OUQSWIPTQNKDCNPNIGJLMNOKMIHLLKPKSSOEJNKNJRLONAFGHPITMNHEOFMPMDGNGHPMSHKOFXLLN\WHFIQOOCNHMSWMKODKOLJKRIKYYLIPBJRJOFLZLHJJKOOMSDLHNTRNNMJNSTPJQMGMSDFUOTPKRIKJJLKERLHPNIQHLHHKJRLJSQDMKKOAIOWMLIMWYFQRKQUGJNBANQ;NIIOPJJNUQMQUPHJPCFKJJUINVR\NJMGPCPGORRSLLHHIOLEHQHQMIIUNXGJGTQJPMKGKHJRNNPVTIIRSLRGTJTPQQKJJKOKUKPKUQLSSLKQQSLHAIRKDUJHJQJLKGEZFKJGIBVHME[VSVBVSMOEGETJF]NHKDGJHHGQJJKPDJU>KQPJPP\MUVFOOMQISROMVURLIWZJGHUNLBRQPGSLS>BSCPNSQPTDKINJKKHJTMVEKOKSHKPAGNAOFI[LXILGOI>QKMUNFQQMSNQ\EMHSNQJEHINLINPLNNRKHLOFEFNOPDKR@RCPMEMJFMOHYOQJKOPGIJEJDHZKBRXGHLNBKMJSQMMQP?IMHFOJ@MQOWMOKCIFOXLLKHOLDKPOQXKRQINIOKLQRFQMGNQKTLLTTMHODMPKORMJMUNULDRMPCMOMNFHROHLLMGIOMKJILKHEEOSIJLMESKFKJMJQGAUTOEPLJOMMUOHBPJDFPJIJNQKPLNEPOQIPNJPWTJJKEDLIQNUQGOOOGKMMLMIRPOSUMIQNPKWKHORNMSRJTOJPOKWLJUFFP\NMGJHISWKNTDKJKMQMRKG\MMQETIQOIGMJEHNLDPLPPPRSSUVPJQONNLPMKJKU[GNXOLQOPMLDOJDQUPLHJAKPPONQHSQRSLLLVKKQRSJLFJUJJNNQN[IKOMKONXOJQGOVVKNMOUCMOHWQORLXIOHLFOTRLDNLHFUQONNPOLHLSJZRHOERNTJFEOIOLORPIOOJPQILNLJLFRNOKLLIMYBPFFHRPJEEPLPEP]MMHVMMHLKKMLFOJKOSYEVOKKPNXLTNVY`GJPSOMNMOWRTMKNDRLIBLIKKNOKNGQIHWISPQEVRRNMHFQWKOORGPLMSPUSGOKKSIRQKNMNGRJORWUVLLQKRSNOLIIJLTLFSMNLPLHPXPLSNNQIRMJLHNLOMLDPFSWKONMMKONMKXEXLJFMJMQQNMTRELPFHJEPLHGLJULNKWLKSHHKSQOOWOLK?NPLHPJRWPR]XJJJQFINOKRGIPIQKSDFLTNPLOPIJOGKRPLZOLCTSSLHSJOJPOLWDMVSHKMKTNJJDOTJBVPIKILILIZRMJUJEUHFCJIMFRNMGMERMLPNJGMCOHMKKFQGMFOMNPMPQJESENQJMIOJPPQHQNKODDPJEGVEMRUJIIMNNLQLPSKNNHNLMMKRGLK@OONINIOLWMMMJNNKMILOONTRSPSLBQJWSITPMBOFJRMTMRMIMG[PWLKMJOMMOBOQSONTSPMLOKKHQFMQONVKHCQOJOSURNOJPMNMGOELVLHSRTAOOKTPM?CPMLQBLKQIJJODKKSOLNVMRDPEHTVPHLQOSEPEMOHKSLLFKPLOJUMJLJLOSDKIMQLUIQPRVD@RDPFPOPNMRJOHSTCCEQJLRNXJEKLIHKMNLPRLEERJELWIJNJLOMJEROJNRFTRPINMILXMLOSNYXHNOLGIHLKMPEMSG[CQMMKJPHFLVZMFVLQFMINKFTQVKKRO[OELJIKPNI[MRVPLMGUEGKJRILUXIQSKGLLUJFKIQCNKEQFKTJLHJILNGHHPJSLPJFLMWLXOFQHPTBFIJSJQRQGTJOMPKFPEPJJLNJKQLJKKGMHJNJMSKHGHMJGPSNGQOGOIMNNKKLMPJMTFNOJHRGTFNONIPQPMMJEOSLKGK?MMIQSHSMHJMHIOFQHLVUSSUHJKMPQPVNMUMIEIEKODJOYHPRJMNMHQLGRMMMKGRLGORHQKKJOQJILLNSHEPNKKIKLMCOMIMMLONURSHSNTJUILQO[OJLOEMJKFPJHJTLMQJVOLQNHIPPSIJPNSPOJKPIJLQOROIMHOULIJKHYUONHSRJIKLQQACUFFULLILIEJEQJXLSMMIOLKKYCPITOKPGSQRONUSGOJQLQVJF[GFRFPQHQOELLIHRNGOPRRLQLLHKGNTXKHPKGHMSLMKTEALNJNIJBIPPEKGINUNQMDWSLQJSLIOMKNUDHOLPVGNPPOHLPUIKIGDJGOQOMSHNLEFFROPQONOILVOQIMIEOLNJQUOTNJQDGTLMTPOOLLNSOMPLNSJTIMKROMRMLVNKDGPVSSIIGHNYJQKRHIQEQRNPTMISQOLSGFQPPOIMIEPNNQMJLPDRHNHVJEOLGPLLEGEKQJRPSJNQQXTXMOIHFNJUDJMOIROHMGQSLQPOTKKJIUJONONITVSREQ[PKYRJNMUGPTIOMJPOHRKPIPLEJNHMHOHHQUVQKHIMLMOGVPJLOLSMNKOSLOJLMMKNLJMKIQROQQNSJPOMJHPUQIPMKLFRNHHHOLNKLHQIOQGRLBJSMLSRJPRILJIUOQFFHQSMFRHLJQLIKNNNINKJLJKKTJIGWLM[IOBOJSMMSMJOLKKVKQHIISLJOMHMRSRFOSPNOEYQMNRGPHTIOTFUHYMUSINLMKBQOORSKDONMTFLKSMFN?HNMRGGKSQFOLKMPOKUJQFMITLEJUTRXHFOKATQKLKNLLNINHRTPRHUMQRT>JMQHURIOMNPILbPUHJUHK[FQQHLMFJ\SOJIQURLLLDDLUIUJHAHVRPQIORNZHEPHKJMWOWISOORPLNNOKMONCSVUQLLHZNPGXPNNKQMNXVLKQFEGRLNNSLTREIPNGKKNEHDPKMORKKITKORKISPMNIKPNMRNHHOSOPCKJQRLKTJFLGGRKSHJMMLULPJUMILHHPKOIJNIJNNPONJMUJSOKLMPHIIJLJRCHOJJIOQKJKKNMRQPMLGOIFIPNHDLLJLOQSOLNPSNEEJMPKJGGOQMRQMYJQPOJNWKHGDKGIJJKDWJRMGLQSKEFPKIXNMPNSXIIHMIIKKQUOOLPMMJMHMUSNQTLDSKQKLTGMTRQKPQNQDOYNTMNNDTNHPHIIKSNFMIKLHNOVDJIONLLKDJNKLILOMMOHMFOBMOFVLQNNNMHJOMPJSOGLNKNOKYJSNLROKLIHHLVPVFJPFULQMOIJIPFRMSNLJMQOMLLKPIJQWPKLIKEVJAKQMTORIIPNPSHPQXJGQRJHZPMKNWUFLMVVNMBKRKORPKLIHSOGKQPHFKPJEQMNTRFE=LLQHLHRWQVGWLMOJMIVNKGMJUNKKPHKULBIJLJJTSNNHTGKRQGRQITEILBXXKNKOHPJGMHIMGEJJTHPHNQQKHKMJMQMKMKCPOROUQCTLJMMLKXILJOJQJHNJPJLOTTKHQNIFGK\GQMMIMQPMQNXGOPWPIPLLPFOTRMPHYMOJMRJSPHFMNKSOKPGTOTNQKPTNNNPRMWJKTLTUPOIJNIPKNPKUISPJDMPSSQPMOJFIKLIFOPNKGEGPQHFPMINNQLWCMFIPTENJNFIMJMVMQKTCQLIMHOAOKTOFQQS?TPJIIQNRPRODOJNUGGIULIINGIPNOCKNLLLRNOILQIJO\IQLEFMTSOLKMDOYMKN[KLWMLUROTKMMOMIMYNHWOORDPQOMLFKFGROJHNFNRKMFOSHLRKTSKKFMHRIETJIQQKLROQQGGLIJK]TVHOOJKKKPIFKKULELMGJIIISQMJNNNTOQSIMKSRPMKUPMGKLOSMGRORZQINOKKNSLILISLX]QNULIELGKQMHSEKIPMERIOITGHGJFKIWKJNRNRLSNORHLNPXOQHRHNMSPKHQMQMNTSLLIOSNKPETKRHDFTLPJGAMNMRKMOOKQSLOGBPNLJN\TPMLRHNRNJUTOSSSLHNHMJI]IPONLQHMMMJG\QPKLUMPHNIMLPUMPIRVQEPKUPQLMNJMQBNKPHNNR\NHLKMMKRRMOGLMMKOSIQLUHZPOMSHLGRIKHUMOVJPQROI\JLNSKOQHOCKMOHJNXKJNEMPMIOIDUUQMKEJ_NMFFKVIFLLPSGPMJMFMOOOTKNLTNFN]SPWVJPNIUJPPULUEOHK\UWVOJJJLLLIIRQJNONGQTLXHNXQTUMPPIPPSSTQPOPXJRMFDMNLKVLSMOJJNINRPRFEJUMDMCNRRFOICUQMKPMKJNHPLNPXOXNHJKLFKQKONQJJLSJPOKNNRHLNQOFVLOFTPQPLJOMULNNJFFNHOLMHKXONSSLMWHILGRMLMKPOOSOQUJEORKPGGGLUVKNGRNHNTNGMCMIHKRDSSGXRF_OMIHGMVRKORLWCVOQONYQPMKKUMGMNMOKMJGGRMKLJSBHLWQNMSLPNTLPOLFNENINVLPLNOKOLOQSQIITUILVPSRILIPISKLLRSWTMUTMQOHOTPQFWOMPNJNNSPXNERGBDIMHBJGQAPIKFLEAMQMLULOKFIMGHSMNNLMPNGHHVFNNIFJSMPRKTJOHGMLIJMIOKLDFSKDKKFKNITTLPJPRQLPQQEFQ_RFNREJSIFHHTPNPGJNDFGWOOSLPOLUNINGLWMMHNLISKHPIHISJJ=OMJTMKOMLQPJPFKJOXLKNHPCFLSPEKENBVKNIHILRGROINNSQKIGKNKJFKPDLDGSNKOIIIHHCHMSNOVIBOOGSMRKUGMGTFNBFIKOIGKICNPQHNIVQNMNJRCFNT@K?JQE@HMSTKPJHGNPEEPSRQNTJLFELXHMJLPROFYNQOLOIFJMHSNKVPOMPRIROPSRTNSMVQMQQMWWKPVSJNJHJKYGLJKNQPONEYHLGEMNMQNHMHLPMNLLSQGVNIRJHOLONJJJRGMNOMQXPORISHGRMKHLHKPJELONLKRMIMMFMOPIORHMPRUK[JKTLNIPNMFMJNJLJOQTHPNNDKPLLJRQJOKJRILNSLKLTQKIMJSVSKOQDILSEKVNLKSNGWNLKJQLTLKFGFIPITMRMLUJHPSMQHUNMXJMSQJRJJPEPPHQLNFFQPQUJQSIMQMIRLKMGKQFRKKIJWURTOMJKVIWKVJOMPQOLQPOENMLSOSEWKKHPJRMOMGMV]\GQNLD@RRNRPLRHJJNDNMNHZLTTKQJIMMLWMINPIMNKKHMJOSKMMOMQTJVLLKUGURJTOUPHMSHOKHJRLMNSINEPOPMMSLLNQOGBIWKDNPSIPJETMSVLRNOUIZMPMJRPKOKFEUINELJSMWTKKJPKNOLLHWKQJDGINRUHSLTZRJKXRGGSPKLQWROPKQ\FKSMPTLMLPPHOJQSNKKJSLFWGNTLKNOMQSOLKZTLLFXGJUDROPTKMPLQHOOLIGKRQHTKFDTMMOIPSKMHOOSKJAZLIVIPJSMIJLOKOEJOMNNJMMJNULTNKFNRNLNPUQOLOHVKLSLKMOQMMYEXRJLLIPCNHNOOQNKHNOHNIPIPTUNQQRDLLKUHERRLOLVUNOLSLHUMJNMMIRVLOKYQVJEOTEOJBPMGSHKOIPKYMMHTAMOXNOTTIQTMEQJJWNHTLMNTJXPRHIXRKQOJIHVNTTMKMHVLVKIVOJLONHIRLSOONOJOVOMOOTTXTOFIEIKGYMWLOPJKMNNGBKGKOLJKRISNGMGIIFJJYKPJJIQQNNWMUUMRHMSOGROINMKLEPJGLGPNLMIQPPMRPKOPTTLJKHNPOLMJGIPQQKLISNRQOOFPIOTZPLHKUTQEFMLQORHKHLHLLXQHTQPBPIPOEOORTLQTMNKTFONMDIKZLMONPKKEMQKNNGLNPMNMFPJOMXNLNPKKITVOKPJ\YLCIQMJCMNKGHKMMNZMLOQNMNPIITGLHJNJOPPNHNHHPVJKNLQRJNFFNITOFVMLOMMYLIINJSWLKQKILOPNGGOGITPSQLQRROAKPGMFHJUNNPNSNIHFOKPGKEHJVHTGMLLUJNKKSPHPPRSNPHNLOHHKIEZHJP?KPROJPQOLNTHCOIRLNQOFMIKKTNONKOL[LZQHTNKHORGPFJLIKNUMIGMKYDLSKJONOPJFMJMNPREJLBTRMGLJMXCFKDNTQPPLQJKLNNPNJIOLQPLQJTUKLNLJJUKTRAJPFLNONSFSRHPFKWLNSOKRLOLMIHMJNCPOTSMHGQSQKPOLTRLPJNRMPPINOKLEJQKMOMMMPFILHQNPHSGLIKMIDSTOQNIGUORQOITILKHOMKMNYMNYJGWJPMKOHNMSPHYKQJSMPQOMKSIOUPOJMNFKOIPTIIMFJSPTJLNSLSVNELMMMQPEKLRPLORKLNOJNMBJKPPIOINSNOLHMQNOLUTHILRLGMHPQFJPLIOMKQWUJMQKHVGXLKPLNFPQPGKIMFKIRNNNEJOAHISDNOPMEHMORRNSSQPISUOOPMQRJKOSHOOIOFIWUOELLJMDRHLITFUPPKITOXJKQMOQSOJLMSIFLFOQHISPMSOBFPOZNPQSILQQUHENQKONBUEFODQYONOIKPLRFJIWDFMXSIFKDPLPEIOGNPKOOOTTQPSMKWNRFRILUJPSJOTKMNIMQLKMTGULHQOMMPIHRIIRIHFSQKSMOSTOLHGMDGJHOEPONQNJJMVWQLJLOIKQRJGLQQNVOQRJPKH[JNMQHKHOTNOQHKJHOJGHOKRIFROSSHMLSINNPIJRJTLKALPKOSRPPIPNJROGNMQOJSNPPGTKIKNKHJSRLQGRNTKMOLNOOMJTLWJMNMOUHF?NWIPIMSKIGKMOAPNKOJQHMP[CJNBILLNTOWPRNMILQJJMOJRKSKILIQNEMOMGNLMUJLZNRGDNRUOONMQRLNMOTJHKEROHPJFGQVQMKMFEaUKKLRTJMHIUKRLJPSOPRHUMTJNLQNFHOOFQQHTHIIMCSXMLNIVLHYJKPPHMRNEZQNLRBLTNQFHLWQMHQDKO[QLRNTQTEJPJQ?QPQQMISUKIRNRKFOWIQNO\WONMPPGHSQJTGGZMUOGEOIWJFRMMMONIKOIRINFMRKCMPPNLDNSFNHGLOIWQKJTMNFPKQMOOJQLPJFDRGJGIQQHNRSGQUOPNPTLRSJFMKPJWQQXSOLLORJSLNMIJU\TKSPSPM?NFSVELOUKLQWGUMVNOFOQVQSIQGKQKMNPNLLJNAVCSKKOSPSIGJURMRGNHJLHRIOKGKKJJGPMOJMKMKOTLILSRJHKTEUGRNUXJITPJEUHFSLNPQINQGVWKNLNKMJOSQOZPG[RCLMPTMODREDKOTTCLQT=XHKGNDUOTSFMNLRETPFPHCRATJHHUHQFRJFEK?KTPPKRJLNOJLPOJKPFOHNQOIGJMIRKMMBSPLRPBHOFOQLMPNXINSJSEPKIMKOOLQKLKTOXFJFVFJMUOJNEPOHJQZIKPNZWIHONUQHFPOJLHHMLLKIQMMNSMMPJNNTSKIHKRVKFQMHLGKLKKLKMINMIQMXHDPMQUBMIPKUOQKJJPEQFHREIMCGNPOHJFLQLTOPOJTMHOGMUJLVVNYPRQIQHPQLIKNPNOLLIKMISKPKMVLXPJSNKVSGNOOPUJLELEWNJCKGLTHMRGWKKEJDBLRJM\QRMPVTKJSLGCUKSCMQRUMHPOKMQARMOORMHSSOLPNQPAMDLLEDHMIKPQLUTLLLPJHILHMPOJPOLKONRVOIMOIELPGOSSJJGWOTKQSIHJEMHNIPFOWPONFNNIMOAPIOPIPROTGGJMOGLMSOMPXJOKLJ]NKLGVM]BPIL[LEPJMQNGHOJSGIOTOJFLKSSHNHHOQSOKKQQQGPLNWDTZJILNWMFSKSFLCXNFJO?HJROHKJHHUSIMJVLHLHXEEPHPROAJYPPOIPPKLRJLKWDLDKOOJQNINRMKEPEIVOINMJOOTPTLOWILGPPTNOQEMFSIJXRNUVHTOLALTGDMOPKLFHSLRKIVLHHJLGPRPKMIIEUFFKJQIJMNGTFLOMRIKHUURTFSPPPPTNFNRYNQJMNKFMRDHLJWGOQPQMDGQEMULLPIKINPMSUMQXLEKPJLFHQKRDLMPRJIHLMJNCPHKLPPJJOHIKNKTKLPIJEOWLSPDEPJQQNJHUMRGOQEWMKVRIANPLHQKGRFMOSKUNGJQVPGMFRIAMTUKNMRMJQONSLGNOHOHLIPOLPKFGKJQEPQBMMRUMQMQIONPORQKNNJDONKCKUUTPDQMZMIVJGSIFMNLPMJQOTUIMGCQLSNQJSCQNGONOKNYHCDLEMMKOUAKPTHPNOW9FSJJHLKLHLJVQGCNMGMRKWRNRKOMCIMSKCLRKIQLIRD[JSRSILRMOOSLKQONWQPKOOPGSKMGOILOJNaWHFOLTHNPJNOVNSTKQTKJQWIHJTILNNIVOMSMMLOT@DPEDOOMOKVIMFRPIOMYOKMJJUJKPMHJFSRKJOIOKJJHLQMFJJRMMPQLECGQTMONDNPPOLNHBSGLDMNBGTPNQNTKROTRJKQLKMNLMHMJKIJNORYKORCJNIUKGRMIIIXNJLMPLONMLOJPNRNWCMKMQOHILOFRKMNTHMCEPKGEUGQLJHZVRPF@GRLLNVMNJSRIINNLMIFVKAIGQMSQVTHHESKJIILRHUCNSTKFOJHK?EMEPQOHRZTRMTQTLKQTVUMJIJLUWTKHDKNTOPGORMFVAUPQSNRNEEKUGRLRRMNPIMRDQGURKDJJFJINHPLRIIAQPPNMCLLSJKPHNMJKNWNQGRQQKOLRLMULGPRNFOJMRIHQKLTRKHKLTTNJKNPOTLQOLOMIDSONOJKGKGNRYPJQUPPPNLJMMPJHOKPYUQLM_UKKLPKMINPKSHQNKKNEJRHOCNHMNTTLUPTPEJHMTWSPPTQQDJNTVQOTNLFIVQFPIQMSKLPRIRT?PGNQMEOIKPOUSGIJJPMMJFXNNCEROOMLOSMLHAWNPJUTHOVGQFNMJQJVFIPRMXVJJGQKQKFTRUPMWL_NINMMTKPOMONHHNTFMNHWSKNOVZKPLLJGOMKUIFNSHHCMRJNQNXRKQROQPHOILKNLNZIOHHJLONIHPKHNOJKLJJRLOHJIQNTKLTSPNNVFMQRHEYPGIVOSFSLWKKNLRSONPMLUPNJKUTD\ONLRUQ@ETYSNPRRPJILLERGOSHRONIKJNTLVQKDLMULQQSTPLSMNTQPZTKLWFNRGJSMFNLMTILPQWFLVWRPKFGOWKNJGJCQMMPXIOQXNNIKLKQGLMDMOVEEGJEOPSLOJQKUKMVMFSQTMMDSHKG\LCLLVWOPNMNNWOFJNIUFPJTNCJLGPMPMNEVQHFRKJIPSNNJINMHHJLTRO\LGJFLMNJRLKSQJSKJLJMHMJITISJMHRZOTMJFHKLKMIGKNGQQIJHWEQLNNCNVLMLMNNNDSTMOOGJLLOMGHOQKOCCIFDPNLGKLPQLLHORG>QRKKHKKNIQKNLRIQHNQDJGJDRHLUIPLOHMQNNMPVLRSKKVRGRGKFDWPKTPKJSLLPNPXSJVMSRRGNNMJ[JJWPPRQMLJFJMMKLQKLNTLSRIOJTOOQOOMGL\LVQIRJJKISMLKNFIM_KHKTLWNWPLOJIURJSNDRXEINNQRHGUK[HFFLNPONLNNLLQJJNMMQVEFMKNLNHKKLPRPLNRWJFMNEQIPXENXJWSNLYLLRLTRHTSNMNEGOMNURMNMAYTLUYJVKQJPXOLDISRQGQIEEQOONLVMJSGGOMHVPJGSQJNNSNJRKSONIGKIOXYFNTOBSQSIZNVNFMQICSCKPJNTNNVJJNMIMPUNNRRPRPWLNPRPGDISHUFQPHHRLMKIRJUQVIJOMMSIXPHGVINDRLNOPHLMLSRKWHJMKQIPPPRQIRMKNQNJHEGQLOQIXPPQRNNPJINLXLNSJFSHBOWNQURIKQIEMTJPUQRHDJSRJQNLZKHOOGNSPNJQEMLCVOSNTPHNNJVLPJKPBOHHJPKOH@JLTNQQPNSIPJLPTALXNCMOBTRJQLXRXQOKMGMNKPOOOVWMAJJNRHFKINJNLENENHLQORGMJTPQKOMIJPQQNJULJHOHFPJEZQUILKLMHUQPKPFOLDNMPLIMQXNPMOLCORNKHLMOLMQGRTTPLNFIYIPIPRTJECMKEOKHSMPPQIIQLRJIRPPNEJZOLLHHELLRGNMHONRINMLMQJLIRTMLNIOQILLSJNMCGNKNVRHJZONMEYQKKNKQTKTFKIQGRGRKI\IJHHQKQNTJNPKPTNPONNMRQKSETRIQJLLUIWSIKNTQJRMOKWHIQNLOLLUROKNQFVL>HJINBMEUPLGTWOMPOS@KGMDSUMEHT@NQIF8NPKMKQJGJGMGNLTMNJNOGEPIRQEHKWJNDMHTVISHKQCSIDGBRNQFCNPUFIIJJJISENA]NMKOSULPPLQHMQSNWEORNGOT?TJRHFMMFVGJKDLECKLUNIRQRNJONWP@TGMJRTLGSSPRJCLbLFTKNK-OSG@J>RDGLOFORRQHMJMLJIWIFTSPILIIZFOGT>TK[RGKLEFNFUHKMLQKMJMC@WMOEQLLLLNKVKTXLHILINJKGFJILMKROLIF=MIUFUFJHJPCUQGKIOSLLMSLMGWRWERHJXPRDEJIJOIJPQJYQOJOGMIONUNEIKMPKQVMMJOPURFVHJJMLMQMLJRPTQTTKOHKQUXHQIOPJKFYSMHMPPLUJPNILPJVS]LOSNQBJUPOFRKRMSDKKOBKJTRNYVTGGOOSJLJRSQCHKJTIAIRYPGSHPMVOQGORRKKSSQPKHNZEJQLPVPPPJPOYKTTIMPNMKKJOKNQKNSMRKHIUSKNMZGXQVCLJMKTJJNMMJSPQYOON[FPIJUMKOPJNJPKUPFMUQUPUFMNLFOSMKLQLIIFOVRNRIL]OOMQJFPTQTMLTFMOMIWMKQGKSDMJTMQPSJLMJLKMPKOXFLJTFSMQROKOGLZKNKMUSSEMCKMRIIOSKMTJSLMBODPWXJFJLKIEQLTELRMNLUPQLQQLIMLEPILJHOVKVNNPMRPMGOPOKJETJGOPPNMGMJIJSRMKUMIKQPNMMOMUNESSLQJKNOOHJRJKIJORONYSRLONINQMPLHLELQRHVTGLHIOUUNELMPRNRMOSOPRLQMIOKQSGMNKMKPJQLLVFJQOLSOFQNLONMPIMONRKRTGMNQIJKKKPVPFJWPUPIQMWONLMSEVCOKWFKSQSDIJSRLSKKLKNHTGTLIZQORIPTTNQLDQTKKVLSKOIS[OHLQKPMKUMTMRJJMPOQMPIORHLOSVFMGNOJIOPEMQNPXQSKPLKFZQPLOSNKNOSSQJOLLLQLLLENOHKVQYGTKSMNNKOK?RMOIQSXNSJNHHSLQLSEQZQNYKKJMRKSQINHOKHZIVMJDNKQNKLUNIPIQQLSNJNPPESKPFOQSTIQMMGJXLNSPNVODKI\MUPLRMMHDPNRQOPTKKWHNOJKDNFNKSHNRUWMIRQEKPKJPPIMJRILMFGGFTQIIPLNKMSLOSSRHNKFORGKVOSYPDKMWHRJIJDLSJIONINQ]QMLGNPVMHLMLRJIFTIXTZSKDNMNHOHTUFQNPSKQRSJJKMIHHJKEXNSKIMKMOLOJQMKFIRUSXMHLLKPLPHHTMJOPIQCNGLQLSQRRKEJMLTNRLNKRCPFGRILMZPIOBJUGPRSFKMKKKODMQSICOLUNM=FRUWLVQKSEJGQROILKTPLWRKUHMORLNQONONRKCQKGKNKPM@]TINKLMJFTGILKTHTOKTRS\IMNJQYJPDHRPLHGDPVKLSLHKYOMNGGJHITTHIHMLKKBPPLYARXRKNMUMOTPFWMNQRPKMKUGMLJJONLMPKJUOFUGINLUHGGIJLPJSM@HJV\XMOOPQIOMLKGMKKPFANGOPMKIKMLRMHRJVDQJKNPNIMWAIJNRGSPXTJUNOQDQQJLISGNEIUJLOIQOVNOQIMILWPGJQQKJOHSMHOLOHQNKRMFYTOJVGFPEJYINHEHLFQFOIK^MUTJJYEUGISMJOITMIREGMLPLWPWNBTCUJJIPITFGFGPJQKL]MKOHOTRHQOKIZQSMSOHOIQACKOJLMKJLVKRHPRSJGOEMMLOPLMOQPLHRDMCQMRNQTJBPMNRNTRNGIIIMNWPHUOMYWTPOPTIRIKMPSSLERQNUFTDGHMGOFIMMLQQNOMQWHHKMQRCMNKNSIODDVRM^OSLJGJLFSLKFOHXOPLMLMVMGRQKJLIKPFHKMQMOTJZLISgOLUTOQONLMFKRLKMKSIMKIIKHIGKLLJLNONNMQPYEIQRNIRWGMREGNPNMLLPQKKFVMPPNOLNMMMHIOPKKNQHMKNNPLNHQQISKDLQINQROOQJJJKIILNPMKM[OK?LONOWOUTOLIHQOKRRHMJPHKUPMKHLEQSFTMOHONIPTMPFLHLLNKRONNSQPGISPHRDPTDLMOMHPONLODTFLLKKKHOGQOLMOQENOQLGERMNFPRMKIOJQSJQNHUJONNLNHMKHLHTGKOLHK\HMGMOLPSMCINDNFKNNQHLNMMKRJEKOKMIMPNKKPNRQJMCONIRNGKDHPJPJVIQIRL@PDKOLPIJMQTNTRJGSMGLPPIR@HHNSOBLSSKHJNONRJOYIMNIEBFPJEOIRUEJTXQJEORHNPOGNI]LDNC?PIQIHOOGXAOKFOFOKM?PMIOMCOFNOPLKONDNILRLQJLFQMHKQGFCQFLHKQENCHNLRLGSRGMDFJLLLSOKMMIMYBKHKKPGFHDJX?NFT[CQRHLPONJFJKNOPPEMNLPKRKQMJJLKHFHKGMLUOMIGOJIHEHFROFQNKPKHLLLMHFQFAMOOBTILEELGJEKLPO;JAFHCLGMSNKMRVFKJQKGOOEJXIROKCQGSFPMPINELTSQMRNHSQOOVQZ[VJKUIMIJALQIPHPOCMKJIKLKQVWKFNINLEHOKNOHJPIHDNFBPIKGKLVJJOJNJKPVHENJIRPOMGQLPLHOYQOQRQNHNHRUVFJXQOJGSKNJMMPQPRKLIMSMFUMPJZQKHHPOMOEJHHOMGISLOORUKMPTLOQLRTOIPPHUUQPNMRPMQLKLNFINLNPJPRLCWQNEUVMFJN]MPMOFLPNNHOQRJRQGKNKNTMRMWPLNFT?UKKBRLPIREIBQTPMOSWRSNMFMKMUMKINODKLMQROIQNLOOLNVMVHNFGJFJKRBERJCFNRNFKKPMQHLLHRIRKIMQKDIKIPSLFMNOSMJPELTHYKUNFLRLPOUMPKMNTSLKMQHRPPLKJKSSUITJPINJQIXLQR=TRQMKJHOPMHKGJMQFHKIUIMKLSJJMLLLUOKNSKQFQKOIOKKLNLNLJTMNOKKMMNJGMOGNTNPSHKVOOXDOQHRHVMMMFMRLKIFRHMMKXESUUWHIIDMNSKWKNMEMXNKOGPMQNDMSWIPL`MXTQQOOQNOJDPOFZPOJMMOPPQWKHQOLBPNHKPNPRPMOCENPDVTQXJMGULULOOIDQJNJVSONIJRRGMOOPQZOIDQYGYTXMOSITHOFKMNK[QNFIHMLKMPJTICUINKOYLHFRQJPOSRLTPHPRJHI?NFKFHOCNHIMVJISUDLDPKARMKONNGNOKTBNTRLSJPTMINORJFSRMHLMH@NTRRMRQMOPMJMSFMSV@HOHTKIZJPPPULKNTNSDNUPHCJGRCWSHJQPOPJLQNOJLSYVSQPRJGGFNMMSNMLOJROOHQLPWEHJFJLRIKJSWMLKJTQOKQSNJIHJLNEQSRKPLLNIKOOQGXSKGCIJONIDOKNIOGJMOLNQPKJNMNXJKLIMG\UMNKIMJILOKLDDRHFFJPPEGFVQUFJGWPPMP]MJIPHNQVVVQMWMENNPESIO\IRLTJJPSENIPLMBDQNNLDPRMCWTNA[HHRPLNHDLPNTNSSULN[HSMKQM[SK?TLTPPLQSJMOZMLEORBJNHIHNSEKPLGLMDFSHTSSUJJIKJQbR[MHOOMSMRGYNFUFLG>QUGMUWIRQPMMNROFKPQGHKYJKIJLFIPNKKMRFHLKHROYRDJQSUFLMIHOIGUQKTKLMLIVMGNOMNLJINU?MJKKGEONS[NKVSUJJDBNIFIOPMMEGHHZCJSSPQLPQLOVVJCNFGRFOPNRRLHKHNHQMMYHNPNJXFJHIFKPJKPRFKPKRHMVNRMNKGNVUVWNETRMLTUGUELQBMVMPNGHSLPFPOHMTKMJTIMNNFPSSEPEVRLNV]IQUXQDOHODHBLON[GTKQQHMNDRSMNLMVMSOMMHLLNGLJTIKQVRVOYOHMRFNWMJUNOKXNNJRFMJQKQRMQJFPFRJMQMUQGOJHHTHOLUOTQRTJIGJJRKRSSNIQWKHBQBSSLONO@OZLOUIAUMQPNQPGGPISQMKOQHPTLNISKJDLKMLNKIPTKPHLUPTHM>XBMJPOTEKVMLEQRUMQQUQIQGRNGMRRWICNMLNJOLNKMKTJSALNPSKPMVNMGSNMHONVCVONNNHKXOIJMFZKJGQMFINNKFDRPRKCEITMJLNNWREPUPVHHEQONIKOKMLNOMRLP?JIHMMOTROPTGJKOOKGESLQQRJLITMMHMFLPQMJPVNMMLLKQRUMGNLGRINLQELVUSSNNOOESJLOLMVTLPROKLGOJHDTNHBJHQTJMKMQJEONHKRRMOQNJOJMRPNNLILPHKNGMPIMLIRSHUPSPQLHPJGLVKHOHOJVMYIELPHQLHSKSUHIKJLNQMKONNPJNKJRNJQHJMKCNSLOLLRKNJZRMKMQESHPNNJZMPLNKHLIPIGGHGQJPJIKJMOSHQEKSSNOMNPLM\IOLMKQJRSUAFKUQVVRMTENMRKMKORNLGYHLPLQJKOGJNFCJHNNFQMHFGJJMMVNJJLILSPIPKIJORJPRRLG[KESQSJMHLQMNJPNJQNITPISMRWIQGLMLLOTNO\JQNPKFLXONRLHHRVLOLNDPIMWNAHPJFEPOJINSMWNRLHOHROHJKMOQEXUORMXOMOLLJRVNQKOXRIHNLOFJESMPWBNLYOMGLMPCNILRQMQMIRUCPNEIGLYLRULQJFJOJUGJMWNKJJTHIHHHQZFOJJNNTGKNOWDSSOPMTIWIMQELJPVKNQOUNXKRMLLNKJMLMESWFOTIMNNQMIG@G`IINOJOOOL8DQ@MLSJ@LKQHVFMTJIEYFJKOTNROOUKHQLMMKMQKFRIQPHKMEQQMNCOJJKPGLIKNZJNMJQIKQJSOMOHMKPBOOPQLNMQIIJKJPLVMLEOIQSGGIJMAX[SN@VFHLLHFJKMPKHRHJUTMOOFHLJEHE[TJPMCNKOHKHKKPZKNNJ_RPGPRNPRNLIVCLOJJI>VOG??EPHJLIWGRMSONPOLHOJOJPOFTEJQXMNOMQNDM\VJNRJSSJF\OON;LPRGFSLJKGGMJQGLQUMPHQJOFNKMQKONIJQCJOPHCODPMQEQKFLKFWLFJELNNXJAKMHMHLNPKQKHJMJNNKISNKPQNIJJFEPWPNKUOVLMLDSPIOQFTQIQLFSQOSEHWGOPGKIQJMIJKTOGIKKGLFSWMKKJWOFHGFOPHQQDKNPPJCOLOMPALLHUQHLCPHMUKPIUOEPMSQSCKLHLOLTMNLIKQOXOLQPHTKNJLTPNHPNKPNOZUMGNUUNGIJRGRGJKIJGNPVPRRMMWMRMINMSQRQLLLXGJVMDTNKQQQF^HGNRGOORNNWGQPSJTMNKDWRSGQPKIMSMLJDPPHPGGNRJJJMMJJMSKWKVMPMGMRPJORTLMJKRSBVNGRJSSIFNHRSNIRVUKKNMMLF^IIHOHIPMMMMMPMFTGVNNSOROIGNONMHXPKOCJIVMQTJGBFNILSTOPJSCFNLDUYFMLNNNQNRISSMPORPQRVMHNFWIFFKRMLOGGN\LVZMKTHMDJVMKUKIMGRKLEMAMOLIPRGKIRFLVLFNTJLNNTPGITDJIWKJNPIMLKLVOTHFNTDNPRPHOUSMPKJKPDQKAKGJOFOLSWMEVTDFTRKGOHQPRFPNQEMFGGPNIKFMRRDJMDFPQLLGMNLNEOUEHIOTPEWNMFOLNHIMRGSHSKMELPNKLOKGNOQITOFPQTONLQGXFILNZWGOMRRKPLLXMEMIQJLTLNDROEDNPQOMKJNIJESTKLNOOEKKLNHKMOPZPSNLLTOFWWFMNKWHOLKOTSIICFKCGLENOEZJKEPHQPMIGJOMMPLILPQKVLGENKKFMOJLQLKPM[FSNLIPCQIJVLPSVIGVLJONQLKGMBGSQTPRLFPYMVMUGLRHZLJJKKMPHDQTWWKIKKVPFKMPGMQPR\IMLNQQQPMKRNMLOMRQIMHCTMJWNSLSSPGMAMQIHTIIKUFJNLOPPLOPSFJCNGGOCRRMVHJGJTUMHTNQMQULKJKNKJULPLORRGPJFGTJQRNFOYROKHLMGIKTXLLLINOMIIMGOIHQPLJMRMEWQKJWPQHLNMKIPWPUDHQQVMFGIMTNGYLKQKLNPWNXMGMKMONMGHRMRTMKKTTFEPSIRIQQHSGKOCJFMPMKPPJEPRGNMJTEORVMNNUNQYJIPLFLMGFYJPJINNMDNKTOTSMNTDJPVIUVIMNMJMQPADJMQTRKJHMQKJLIPQPLCQQHDRSXUORSRKFLILVNRKFJFLPKKNMPIKPLQPKUVOJOPIJUHOJXREIGPIIRUONHPKRHJLLHGRUQFONDEI]YUVOIPRPQSPCNJQNMGISIPMLYKQGEONHNILREGNULKIRQIBSOSNZJRQNMJFRSPKHHHTGNKLULJJTIMUJPKPNORKQOUVHOMLNJPHQQILJXNBKKJWKJSQRXPLSUIJIOOMHYFJQRKKLFOYQXSMMBJSKLPPIJPMLIPLNOXQSHI\PJMTEMOLRMKOPNKOLPNBIOPJQPKPGQQMPHSOSSKNMNQOHLNRSROTHLQUKNRRHCKLILNMUIQHPGVHERIVKSJJRUIFGNIMXIJHONIZXSSOKVKMLVQLXWMQMJIKPOQWQVHIFUDLKSHJLQOONQTLUMKWOJODWTWQPISNTQNONVLMRGMUKJOHNNZTMNMWMKNKOHJFPSFLJGXXMRUMQLLUSUFJQPJNINTSQMSOPROQRSUFHKOIULJJOKOIMLQNMNVIEQTJPNILNLMYSPKKPMIXTOKKQKNGNTQPMNNISMLWQLJMPQQHOLNOJFJMNKJGLYNSLEMDPLRFQBJEMJOMNMRHGPSRKPRWHILANXYIGCNONFFQPQULOHPDROINQXPQLJFOSTRQPSQPOGYMNRSDIQRLFOHGLOELJSWKLTXMPTKPGNN[PPGSIKRHILIMKMRNWMNRQKIINJKJYMTOTHUHUUWZKMJONQNJKQLQJJUSLQQTXPVWMHTNQNZJQKPXUSMSNUNOSROMHQLVIRHGLOPUMZOMKHNLIJKJJJPMEGSQLMPKQOMAQNNQNLOLKSMQOMVHOTOU\_ORP[PSMILEKC[OYOUSPJOVMJWSRJFLCFMLSKNQSUKGQLKIVESOPOHKDIMRIACKMSUNOHHMQNKFKMUMEKULTOJLTHWKOPHPMNMPRDTOPQKGGUKJSPKKLMNJMNILMQPHGTQTGMOHNULNOFHPSQLTOHPNVRGHINNIGNEILTQMNJSOSMPVTGINNOLHQSSTNSFSUYEHWXJQQXPOQLPEFPIOOISLRRHVIKOOTKPKUNIOGNHKPKMJFGQRQMPMNEJNUOL]QQFUOPSPWPFGSRNPMROLFJNVKVMIMSLIESOLLJPCKQPJIRDMLO[TJGFKVOFSIPJNQMLLTAOMNWIFJNNSSKWZPQ9OPIFHVCSIFMTMQPMANIUPEPSPQPITJHGVGKHMKRPRNEQOJMUVGIUHMHARPKIHMFGSKLTJL[EEJ@SHRGMQPMJNLYXLIJFQ@IRJEIHNLNKHQJGCISTHMHFLSKJLGRGTKKJPLOKGGOMVPHISEHGUENJJLJMOGFTSOBOTHXQBMLMPNRKJGSDKIDCRSLOJELRSITIJMTGOKINORSSNNHHMRRIRTPIQGUPBJGGWNNHJSHPPQRMCQMDLNQOGTPNPKOVSOTIFILTPLMLIXPPSMMJSWYHPFKMHOMVNOQUUOQQRMSFQIOQIKLIOXJQRSOGKEGMJMLINNQTPMGOEQFKPMRRJKKNLRRNOLTPNQHTMKNLR@MIMHLPHIW\PILJLOIPMKJKKXLIOMYJRJSGWJSLMLMRNJI=JVSQDQLSPMIMOPWPNIOTKQINPOILDPGNOCPRKIHEbLAYKVLgLUWLK\LM@MCHNQLOKIOGJNSPNQORMJSQPHRKVFKLGKIPMUJKKIVHMJLLOQMQIPLMOZKIGLOOLMSLUOOCPSMEHQLEMLRMISIPGKNSTRNHMJSOXRYLSKMQWLWMKTNMLCTUVGKSONNMKCMHKTOGJNROMIMTKGKKHLJURRJKLRLQJQPNJNNLMPDSGKYPSRKMJNIQNEPMFNGUVGKLPOUJKRSKMJIQQLNLGQPHLMPRSSPPMNSGNSOOMNMFROOPQRKMNW\LKKDJGQBEOQYPTHLRMRVLOSRKFHMKDNEPDWQHNSPHNKKKRMINGLNMLLLPHOPLHNRNLCSTLGNHMKNMSNINLOJTJMEMRIQAVJKNMSNJKIMNWMQYMDNSLHOVIOBKMKJGPGJFPLHPVOFPVLEKJQNJSJSHP>QHCPQMKRJMLKKHMNOOIDLITII?HQNFUFOJQNMGPVGIICHMDVGRPTFNUMKMLVSTJPUPSNOQKOODNJPNUNLXQNINMKLQRHALKKLLVIZDTMTRIHPWWVSJNJ^QJKLJSPMJPLKTLQJNHRYUPPQPQFQLMVOFIVRHNKMKJTQJOORHUEOMEJMFMJSJOHPOHIJJNMPTLIOJKWELWMYOPOMIEIKKKPLSORRPMPLGUNUELFXQPMKLNMIPQSVUIHUOUSQKPQHRMHVGRMJSHNXRPMMRRGOKSRBLOMKHRQMIKPNINLSROJJ@PMJXMXERIOJRPQNLNPMOWNPMJMQRLQKIFQRHRJSOMKMLLPNMLGILLHJLMLHOOPNJDHNJTJJEQTMEURFMLGT[PGMMSKLJQOOJNLGFVKNIJJLTPLLXNKRNJIPPMMMTJQPPOLNGS\EJPOOKOQNJGSTWKKPGLRKOPQLPQQLSLKNLGKOQXMPKXVKQIHJONSKXSLLNTPPZMQQWQLIMLNULOKTGUPTHJSIJLLJJKMSXJGMMJPLHLILONPVVTLLLVFMRJGPFLVXRTPRSONVPEFINTKLGMPBQKYNFPNSKHGNKQRNRNIKFIRQLLJMNOOYNKMORSPPHQQRUYFOGLQOIMJQMXRQLTOLBILKZKJMEQPRUJKJBTLKIHSNRIPHRFJIOJLMLVQOMNK[IJOQKHNJRQEVDMNCLPSLKIOIMIOFKOSPRIKJ[UBRKFGSHHKHHHNRJMLKIOMLJKNPKLSIJZJMLNSMPVETKTMNMTQFJTFOUNTT`IMJTKJQPQIKMOSHNGIMOKIPJOULMNIMDFECMJOFLOSMGLNLEOPOKMXGLUKROIOPTYMVQJQOGIMPOBRQLPHJLRMUOPULCJFNQJJNRKNMNOWOGGOLSLLDOLUMNSHLIXNMMSNNIUMTIURKPTPPPQQORQOYLPJDPHGLJNIMSCGPJSXPBFUBPPQM=ESQFORNNSJGMWUWMSXJJEROLJKJOOI]EIOLFTPOQEHOLGOJMNPFKJASMPIONRUJMMHMFISCFWMEORHCNUUPROCPWREOMUVLNISKK>RUKUJXNOJBJKQCFM;[QMNLJINFKQJDOMABJOVIPP>JPMGQUIJLOKLNKHFFJCCMIOTTLPOFTIGWJHSKCONTKKIVNNOKIVI?FOTKRLRNNLLCDMLJLQJGNA@KI@TODISMQHXLKOOPMPVAJNOPGOK@JEHIDLFMQFSNOROGIILQKGMTAM@OKPGNNKDUVBLYBKMINPTRNJTKVLFXLHMDONENGNZIOOHFDOGTTVSKLNPPLKIOYPHRIMRVSKTNTKOKTWSOIJOTOTMRR[TRUMWOTFPNJEZOKNMTVSKLSPYQVOWKTOSKOJRMRIFOLWOFILOFMOHEKSQQOMMPVOGMMOMKGOLOJDXKKUTJTPPFMZNDKPEWLNUPPPRXTSSPPXLLNLWRLOD\M[XJNEDOJOPJFKKNRJLLURGQHRO[PRRJRSPO`SLNONSISHSWhPKMNO`TSQRUXOPWGFFUWPPJIJNQGNRQNMTK]MOSGHNIFLRCOIIJPPLREORFCQKH>TEMDLTRTMTGYLZKRJLTT?QTIQRNOLPMIIUPQTDMGOXPCPRRJPKHGDKPSTLQPIOKWRYIOEMEUJIQSQHJJIWPAOJLMSLCHOGKLJSKSDOMLMCKMHHNBHXL=KNQMEGOIEJIUMPPHLWRJSRHJLNOTSRNSSPBRPUOGPJFIKRPSJLNSGRLRTRJMKKPUNESOFNHKLTNM>NOFLMKLKSUNPMLHPKBMLMFVHHTKUQLCLHNWNKPOQPNSOLLV@UBKOLYGHJMWJIRNXSYBSSUNCMEVRPMNOCTTQKBDRONGMNWMNJEHJFIGJUQGEPHLUOKS[IBEB@PIQRALO,LLPKOPJJVNNP\MMHLTKBRRDPNVO@EKOHGEXAMCMNLELQQGDML@UQLHHT\RBLVOWNTJOISXJKROLMHEEPLMKQYIXGHCIVMJNCENGIPRRJ9JPJPLLOIJUPCNTIJUHJKWPPPEGKQKDKT*EMIQJJKUFFPKLUPGNMPRCSNRNNWESLGFO\GLJKRONHPUCJLKVHSPBGNIQNJNKPBGMPEPHSYDHEDIILQLYMNMOJQ`PKBXLQJPJ>GNOQ?OUQ`LXLEPKGWdLAEECNMFGNQSKLOBPH9VXFCNGPRPQKLMSJMFTGUNUPNMLDLOOVJRKXNNQPTORLSPUCQMHFKLNPBJVIHINVOHLMPSJJPPIQLMOHLLVILHGNQQGIIOOMSPKHGNIIIOHPKKIONLKWJGLKMHNNNPMMYGGRFNONTWKPIIOUGLXQHPLKQRHURKIPDIONUMHPOQVMPQNGNHFLKMWOMRLJUPUROZPONDHRIQNEOVF\EPGOPVPNQGPLXJTLKQROJKPLJORJUGKNLQNNMJLRLOJIQOKHQHHJHMWONSMUBNWMLNMQLVQSHPMKIGOLJKJMNLJSRUKLN7KPMOMISUEGOSMNUHIJPRRZOJGLKH\L`QKJMNYMTJNROJJILOVHPVJILTKRKNRK?GSGHNIVQTQRIHSNPGLIMGNGLGILRSQREMMNDPIFPAKVKSOTJCICYWM^FQWIOTLWMRREPNJJRNPEFTMMOOOKOMTNKUPEKTJS\JGSTHQGRIZRKOIH[IMKOFRJJSPMKPHLHFMSLLJUPPYROEIGHUPISLJNPIEJBKILNRUNRMOMIRQNLKJXMKKSNNSMNKKQMNHOIHSANRPKLLULJKMO>KOQbFMPJONPCJANNLLOKTYNKTSNMQMNSCGKLNLTTJSQGTLQObRROPOFOP@IWKQMFEOSOF_RJLJQQMPO@HPPRTQPTKF]NNJQOMFLQIKRMIZSXV@WERS;MTQHSVQQVULFNPLJSRJIVSJOSNJMYVWYRQSBVPSEQPPJRYRONQ^LPTEUHWDSUPHMLTVKOVJP[MRERKVRK[RVINRWQH[PTRSLLYPXRKNEOUQQJOZJHXUSTYFZQUB]DPRQQOQOFIKQLMOQPRCWLTQ@RPLTMOVWHNKTTFRJQROLUSTHJYXHGGSRRSHPJOSHOCVFHWQOMYXLNQFJXPXOB^SONGKUUPKGKQOT[MISEKRPQQRHIPQYQFU[WL[FONMJTLWXVNOUX[T[NHSLXQJOQGHNPAINCEQ@MPDVEINPGSNMFOPYJFVIKRKL@QLOQKQQE?N-CWSEQIFJMOJNTOLFJGSEHDLSJMPRMEMRRMEJGQHRIKGJPSWLIPMLKYKLJJWSFFJSOHQVPOEIILRB\ZTUBWJQCNDKPLJS`KQNFNDSDKJQIJJJJHBMCENJKFSKRQLQDEHXDPLGGPK[MJ>KSROGOEOFCJJWNCPME>NMOFIDMVRLHQHOGHUXNKKES?AJA@L=RG3QRENNWKRNSMWD;PNQMJOTJEHSNLGMLQGPLDMMMKLJKJ[SQZBCJEODDQQHJIHHD=R_FLQRL@FOUIQFNJMTWCOJRLIFRIMNCFNMJGCIHLCMJMGRJILSPJGINKRLKQNMNHPIHNKQHOLAOJIJDMLIJCQEMIIHKPLKNQQOJMGBFHNPIJLNKKINKILOHNMFFBGMKSFGOIKRIHKDJMQMFGJWMFILPPRGQRLIRQMLPNFQIQJJOMMDHLIKLFFEGIPGJMOLHJIMNGOMKIENRFOKJLGLMOGIP@EHQBHMKHPOHCKEIGPEFNFJJMHELROLJCNQNNMNPSJGMLFINHKLILNQKTMMKKNNLPOHRTIOKIN@SMLOLKRQKKNNKMLNLHMQJMGTJNMMTQ?ILHNILHOMPIILMJNMRJLOHGGPUWNKKEJMO]KOQWNOKXOHLM>MKEQPMRHOYUGZFFKJOIMVHQMOZWKJTTWHDOJJSRUOLKNRZOJJRMQILJPRQLVJKOIMMNQBJBIEXJKJHKNKLLKHRLNRIEVMKILWUYMKHYUKEJLMUMP[OIPIRLCPKFEMHLZVIYIJILLLFTMONCVANQIWJNFOUPNTPMRET[NTKINRDJNKLMGOGWJKPLPIQIPKJOVJQJGSIRREHOLVZDQMNKMPQEOQXDOLNQ?VMQIOLSTNSPRIGIIHS]OLPDOTPZKJRTOSWN[L]HNNNPH>ARUJP[EXFLR@HGOSRXHJQNLR@MOPRELRPOWLPHMVYIBPHSTULI\RKYJRPTLMSWOHLSOLJ]NPKOPVUNVEOHMPUYQOVJJ]CXWRRGTPIOHIGWMJOLVWTMGUXVLNOMMPIOLP>UMNKFIUTFFVMPMPTKGETFGUUKTVWPRQRNOGOKGKVMPQP[IONMNHMOXILKQJSHQSNCZYXFQTOQ[VIOJ9KDKORM[OMJQO@WKNWRRSLGTJRLRMGEILLTSQKVHERQDJSYKLMSZDIPIOLJZQ[PVMSUOENSLPJQIJFMMPGKKQ`PVGTONVTHNWKMWQHRRQPYSFKIOUDREMSQPLNFEK[UPTVEQBHBGJGORRNL_SC]KJTUTSNIXR\XRJJRNNQZRTTSVLQVMMSQ[FQI^LPIRQNGJOLTNSOFSRIIRIGQOOMVL@RPIPNHSRKOOY`QXNOFVMUQHROPQPKPOTERIWQJVPLJRPHRLNJJSQTKSPMHLUFNXRJHKOJPNLPHNPZPFHQHUQLJQPVWJHNUKOPLIXODKKUFQQRSKSWNL^MSIXUKVGUZNJSWRRNKQPRUKWQRIKLNTOTDFSLNPZGYIJRQLONEFBUROTVWQ=PETVQTIPSSJL\\K_HMGGVMXGOULOCVCSONANXHLGRMIYVRMRGLFSUNNH[MKNELONJZYWONMNHQNIQIQPPLRJSMGRHLRXQQVQNIFPGMSOLHOKHQJPNPURJQJISMNFJHKIQNJBROZULEKMKMODQSLLLJPJADPS\DKPMF@DF>FDLLBNNG@H[UTNKQJUVQHTOHRRCRGMMRFGLQWSHKSKDTKKVMLNPLTCWTTPITPTDQRQQSK@KIXZPIPTTYMMMKUOJCSQJOPQSSIFJPR^VNHLQHVL\IJHTJXXKRJTQPOMIQTHKTIQKJKMTOOGRVSRIWVUJTSFOOPUIIXOQINZRIXGMQRMORNRJKDHO]MUDVJSTFTQM_NDEPLPQRNHLUEKLQLLJNNWO\USJMNRLVQOMLVNIPIHGQJOMRTLPIOQNFPEPKNVITCVHJTEZVQMPETTOMNHQNUILJLTHMLFDKMIHGJJQTMSPULKQKJ[LRJSNOJOMXLJFPPVQQRMRQJRENPFAUNDHNTQQTHLTNLUOSVQTSUPJSTVIFGTHXFPTXGEEPKPUKWGLFIJJLNHSOCDVLLHFGB@@LTGJKFFJMDHPGFlFIEMORPHERJBI@GGSEPINSMHWIPPQQMUDJHPKOSUFJQOPFCMNQMTCFEODQMGBNIUKJUINJTRTPKMNJTJLHLIYFLJLDNPGTIFQNOKKJNNFNJEIOL?IJFQFNLRPLIONJ@LM]FWJHMGUPIPENOKDIKNJLLVOMEFLHLRWFJQSQHNLLOODPOBCODMNIBEGIAO^[SNKPKXEUQDQGQSHMCNETIPRESURNJSRUOJLIJNSQBJJQLP]ENPOODLPGQJUTSULNSJMPMFFMLYGHJNLCMULT@NSHRURJKJTLJOMNGUPKLOKEQPKSNRPROHWOJFWJWMHITHKGZGLVFPPUTGMTLNIKJNKJPIOSMBXRWDWGBEIHYKPKQNRNQHPDHAKQKSLMTFNHTGOTRNRMSRALOERLSNEOHENGOKQGZW[RPKITMMVKCNCKDPMQTQHHKTSHHYGWNCHSKCONITJPOHWGVLPQINKLUKPFDDRLOHHCJIR?GTLRPDPQXCNMTNNM^GHLGFBHQIRSHUTAEYO[ERORPRJBBKISLHIKJ]IKTYSQLIIOMBPTFMP[[fHIRMSGONHJJ]VMVIJSONRMSXEP:ID^HDTIQPSL@ZQYMTQXNOQNJDODQPMMPQPJJMETSRPKKNIIUTCQFMKLGETKLOKHeUEIHIJOLIDIOJIQJJNLUCPSLKJMOOIHFOJKLFFRLOCPRKIQFGEJIOSROPQIHPINNNONJMOFL@NJKEMKHPOBODKLKLNJNOLLPIGPGNOKNKCMJJFASWJLPMPJMNMQOHOCCKFEIMLFBGHIIPHMGNDUIBMRKPNIKQOJNBORQJOMKFEHFQINPJJOGPSMHJPJCQEDHOFLLLNJXJLPILMJMFEQJMLLOLJGNJOPGLWONNQNYLIIQOOJIIJRKGMIOGJJJG3OJLEMJHLCEUQDLFCKREYT@LRNKGRSHGPPLIEJFSTNGRMGJLLMTPTGLOIPHNDKPMNHuKUCGHM7EKFGBOKOT@RNEFFPUOLDDGMMHJGPOEG?DEILJMKOPKPNEHIHBOGKKNLPNGLHRKAKF@VFPGLAMLMQLKSPKULHLLKKJGMAPKLFCKHNJEPTREIPDIMVJMQQEGFLOLWNTJKEQCMIJSOQICFLHMCHJMCKMMLNQGPNKOJFLDMOFMFJVLQHBKGIJOPRGAHMHGQOLPQHIGIDCKDIEPRMI@QKIQHTOJUNMFAKJGMMOEQJSKNKOHGUNTNOMFPTOJSMKF?NGNIMQGNFPLDJOMNHHNLKLNPMOPLQQQHVTOMZLMGGQJYCLPRKPSJTIMMRRROL:JINTILMIQVJLFKNPMSOXUNQJOPFLHPHNLMXQEJLJLILKGOFQOTIHQQHHRPLILLQVMPKGUHTVROHSNGPFOIHTMI[RQOUFIRPVJMJSKNSMTNENRKKLSLIPJNNOOHTOJRPTSKTNKTFHLMMISONMK?RKXJOKQSITNNKJMMUJMFNORMTGUJLHIWKLJJOEAMIDKUWIGRUNKNSNOKOOJPMMJTYMMTJLRMPQGRLHKLOWKNJRMELPOONQJIOSMIQGNCRPPILSMJCHQNKIBILMTEMMTVDAGROGLKIDPLNLIEDKDPSISGIQNHGOLFQEOKIH?KMS>HFZPGLNKIACHQMQEPLKAFLOOQNDPKUEIXFNNOLKEOIZTPOQHIOLNOHHILFPNCKDFILPTCISRFLKNTDMFHLRPBJJTGNKRRNERONLLGKJMDFENHNNPJLQNOEHPJLMFDJU;GEMNOKLGN:PHNLKNEMLYNHDQNOLMNIMLQOMOJJKMJWHONEFDVMEJPLR>JEFEMGJPRGLPQESTPKGSEPPMIJSMHOHIJPLJRSONJHHCCOROMLGUFGUJJPQKPFNCNWOYKRPIFOALPMGOPPJHPIOUPFOEPCLUQIJPPLMJE]NHNGMGPCJQKFJMKSERUUHRMSNCMBMTEK?RKLMQFKHRVPQQJJYMQPATHPNTHJSLGNRFQLFJQH]IMJDINTMMVFVGMOLMKJSKOJEMGIAVKNGMLPHLNOPXLEMMHHHIMQNUAHOOFVGKMSLJDGIGPKLUGKL?GI?OKOMLDKQHQIJMLNMOOOKLMNPPLLRHQPIKPTWKFTKDGCLFSIJGJRMNDKEPHPMFJQSOQLKTOOOBKJQOLHSIILMPMIPSLPHNJMMKHJPEERFKMROHSHJJLLKIHLIFMNSWHKNOFEEKJQBLIEIDPGSQNMMREGEUXYIIDXLHLRLTNFLNKLLNRIQTN>PTPMQLGKSSKLKTLHCPSNZRHIOOPKMMKOFTCIJOFJDTOQMLKITKOGIPIEKTXJHDRLGMPIGM\PNJNRGLHTOLMJQIQJMMcRLMHSOMNJKX]EOJRMSUHTNLNRPCPHMPKMOKGHFKOOIFLPOJXMLPOHJTIQPRNGQNOMLMODFEQRRLOIQHMIOHMSINKSXZRXRNWPLKGPGNIHDRTNHTKTJJMPLA[HKLQIOLJMVLJMMULWTVIMENBFKSCIGPPQOVNMPLMMMISMJMMSJMLSNWOLJNXRIKdNYNMQHJMDKWNQRNWUIIMPEO=EFAHRHFDGIMJBFIRMNCICPFIIDPP:KHEKITKKCBHK9FH:NEGJP??HHIHLDIAAKIIPLFMFHMCO?FFEPFJKFIKGHWMJFMKMKFUFGGHBGDNBFNJMKGMFHAMFHNUUMLF:MBNQIIKKJHIOIJGLCDJGIENFFLMIKBDG@IECKDL@HGDHKJGHGOHLFQI?JCFELIIJILMBG>>JJ9JLMGCECJHOLFKL@LMJFCCNHJ@FJNFFEDE@FHHMODKMBHKUGCBILICNTICKCHFZJNWEHGH>HDJIODBIEHHOFDGMTGPF>KHQAIILMGMPJJLORBJGJ>FPHIKFSSQMIHVGEMQNLJSJROL_DIISUNPQTJNGLRJQORYMKLRJGSLLQXSKOQLRFODTYKRQQJRKSILLQ`MJPOLNEHROMK\MIKEPKGFKLVJQONKUNVDJJLRORULLPTJLKIWFPJORDMSHLENHMLQJNPEFJHKFOQQINSJRJOJTLPLK^KIMJSYTSENFLLIOKWFIQNQLNYSKNPMJJNSNNNRJNINMOTGPNRJPMTNQNLIDTU]QPPOPPHSKMJNQLTMHLNROOVOIHOXKXSDZQLLMLENBIEVLSENIYLEPQKPLMPJHNMJLMNSNPMKSNMUFMIVMHOJPORDEKSJH^TDISIPFPGWIO[@QTUJLKOZTQXSLSISNHUDMEIQVNRPVXOBRALJQTHTPZGLPSQFT_MIIH@ITMNZTPURMIPNQIIAVQRJSENQOTPUNYKRKNOV\KKOJXOIUN\OTLWQUMPJJJEQMTSULTFEDEXCRWROPNPMWOUOQNOFLTPLJUUMSYEMHKMMMNHNKKNXEO?DVRNMUVAXNXQTMKDRJRWSJVNQOBRWUWNIGMQMUUNUVGUJG;OFSEKQOBJEJKBNSKTTNVUILHGFPNMQGHaPINDUKRPKIQOULBQMQKJTPWLKHDSPQAJ?PGRSORPFLQMRJRJKRKPMSLJIJXKJOHMJU[OBIINKRMEJEMIONNTNOHFGNSIBIJDRLQQJLORSMGFHQLMSOOKLOFFJKOKKUTPPNKKKNINNIPQLPPSNGPMOLKNMKQISLGHYMPQOEMLOIREQQGLYPCORNKTJILRHBGMEOEOUPPLZROLNFKHRLHMQPQNRQLKVPPKIUKIIMNMNJOPRGKODJQPMNVKOJSFNPKIK_PMKMQJPNJIMNOLWYHEKLPMNPLVNTHMONNCPIFNNAWMFOIYPV\PNPMSPLOIQPPOSPHPIHLMQMOQITODVTONJEPDELBUVIPOcMGOKMNSBRQHSENNXSJBGKQJHKO]_OALVDQJKGMPQNOORRCTEQXWSONTHKKIMXOHNSUDPIOLQUIEQQVSZEMMKI[DJ]WQRDSAMTHRONLSZQUYJTTQHMGUW[ARM]MQXOLEISKUNMMVPRLFJA@RNOEHWBULMGRHS[LCPFPSFNNRPMSSFOKJUONQIZQPLHNDHNIFEUJFVPQOQOK[NIOGVOKQPNG\NLZNMOMPOMWLPJTRKFMMHPKHKJJMQOOIQPPHDKEEOEITW]KNPMPBKXNQJHRRQLROSPOQBNKROHQNTSNLVNEMMSJONNQWRIMYLPLFKSOIKOKTSJIRMNKLPKJTITOOKMSMLV@MLRQNRLQKJXHODGJNHJVHQIPPPMSKHIURITSFMUJHTUPMQZPSSMRMQOYVPMMLQ?TTGEKTPNHULFLPXJSTMUYHSYPPKKOJUFHGUQONCQMOLJQZNMMKQRLBUZTACSONSOVHKRTUQJLLKVLTXOPRUJMEIJSIMJQRPNMRRNNSNVRRKMDRNSSRPNPLZPPUMQKOGKTRIOOLHOQK^[SNJTTPSZQPRLSORKQPHLTRJUNLMLXQFRPNJTPVSNYNNLT[PHTIKKJRXJITZJZKRVOKKDPZRLGHINSUSQYQGKSSOHBHKHPPQJEVWORPQGUHOISKTVIULGWUJQCLJTXKFOKFLRMMLOMOLQQOTMKHITRPQPNPGNJNTUPXILSMXRVVRNJUKTMIMNWGKMORVUWUPVLNKNNXGTQLMSODTVJVJUQOMSLLQQQNVUGLNQURFYNMRQWNORKZJQOIKOJPDUGOQLPQTLOAMMOUTMJR\MIGPQNVUULUSLFGNPLLSJNQSKL^YOLQHSAVRILJQN@UPHNLHULKPTTLKURWU\QQPNPRQMPHNMLJ?ROPNSMKPDUMGTSTRQHWLPIQMIKMQIOJOQHNLMUITRHLWFQHM@MULGIICQLTGMKS:HKRGQMDMQJRVRSJO@SQKNMQJMQTOPRGNKRNPONOIHOQSJGVINSINPSIGRHKXNNZOIKOMQQOGUMTOTLNMENABHSOMYKPDHQLEGFCGGMJLMWHRIMRNSOMKOPJOQDMJIVKGMOSEJQ@FKRJOLQJQULPRCQRRSQLNHMKX\NDIHIILLJSFKJQSPDJEQHPIMJSGGGANMALLLSQQJOSSSFBMELQMEPSRJLFDIFOLNLYLRSPJMNJOIPPJOJGVURLRLPPBX5CJJLRORHLNSOFQFPEJKUCKPYUPDWKOJJPLTQPLKIRHRGILIFLJSPMROMOTOIPN>KL9NOKBJNWGUS?GDLMZO[OQMLJMNMTK[BLHIPLLPLQDKTLKHOOQJWTPKNLNVSSISOPIDMPMNWTZRTMRJYPTNUSOJNOLPSGPNUUUFFKOKHEUEMNFHMRLJZJOSOOMKVHNNVJNHWSLLN_IAFPMRQE\QHBSHNHKNINWTINKULELLNICJPLPQSBQJIOISHUQLMXVCRLIMRHNKJJUUIFINLUNIQODZI?MQM?HDSN^SSILOIQXLOWRJNXFRWLIPMFQIPJJOWRYPOHQI]HIP?PNQXKKLFPMINSZPQHMOPVPKSTRRMRNNLNJMNRPNLKQFPTORQOOVOSQKROOPWNOMSPSNQPNPTLNQPQSSPJMLVOTNPJPKNSVSOKJSNPIHQONWRVOMSPOKHTQSPNOJNLULOPPNTROQIOOIPQHKUNQRRNSQUPKNPRNTOULMKPRQMLSINSSRJLQVUQOUJHQMKQJRMQQIOKRSNQOPPOPQMNLRMNFSTLQUHRQNROOOKOWRTVSQQTHJNKPLIMKQTJKNSSMLOPONLJCSYQSUNPOTUMOQTJPWNONKSNUEPJOPLKPPUPNUTNQRNJN:TKQTPLQUQQUMLKPSOROSRLIJRUYEKHPTLRNWPOLSQSEISQGVNPDLWVNNIQKMROEJOIJUSPNROIORAUUQEMTTWZSGJSOEODNFJLJLPDNIMOUMPQMVCTSWONSQTTKKMMPMKHZUKLPQOMMIKSNQIPYFILKTKVUYIQPPWKRPUKNELNSKNQSGDOOLVEXLPIHFRNAMPNOONCLKSKLORLPROMBMRTUWNJGPJLQLIKKMSKPFCJXNTHKMHKSNOMTJOJMDJRGLHMW\RKQVRGGINSIONHJKUNNINGQKSFJONK\OKPJRJWOSURKUHXKOMRFSOTISRMLOQKIOVXKLXMNUPPLGFHKEQHQQIKWKNHOKJJROHNQRIKQQRUNOONFIHKOMLLJWJW[GKEWUNSPNKLGIMIMMRPFYTTMRITLLJONPMIJOPROUKIRPLIEIBFQGIQMN@OGCMAKHFEIJCE8PDKKG@NNGBUIKHHDESAIEQUGJOOA$G;GGMGDEIKFGIDJ>IV8HNMHMLPJQYKTPMMOMGKOIQMWSNIFPUOMMONIAOGQMTJQQSMKGHDLKJNJLNSTISSHRNLLIRMIUQTBEVOKRJMSLLHMICPNGLIJPNSNQRMNQENJKFKDLVBLKNPFIIODOJIQMKJQTPKZUFJPNZIMNWJVKYITLFGJJJSKKRQKRHGTJTORRSMQMSIMIFQRKPMOLEPGTNRHOLNOQLFOJPOUHKNQQHMEHTMQFIOQSLOOFLLLQPQMNFSMNVNMEHJIMJPOPITKGHNRHKHJJPRLQ@HKRKOQKSNGGMOGPHOJORTLKGOGNIOELPEQMARAJLKJIFDMONOQLGLVMHMINEPOK[JALd_bLXZ[[QJLa^[P_PcM_McXW`LOc[TPPS`\[XKc_RKVTNXHZPf`USNa\TYXccO\WPT^[HNaXVRPQV\eVFT^\VTiOWSU\US\W`S\ZWZJYV_ZRN[X[_fTmS[MSXRTXPWeMciV`UOXJWZaQdPVTiV`]c`VRV[VW[SkUVVWMYSodRVUYLSTASU]MMZYHNUQXmeZ[\aReUO[]OhNVW[VLVPaRWU[]V`MRPW__]@NTNR]g_JWVc`Q]UQYh[bYZPMc[YaVZWgQSSSYZ\ZaW\_S`N_ajXYVaUbdOHXWN[f]MN^mXYW`[Z]fWRTTbY[^bKgBRPQPKIFKHRDRFIUWJDIEJGKMQLOMUJKMMNDKGHKINPIAJLWGOKMMKLKTPOILD>NNSQVHINRHKPNMGFJRM[LIEROJRKICPPLNGGGILDOMGQHVSMIKEMRHHNCNSLKQ@PVJTIIM[BKKEKEEKSDICGPORJBLEKCERROPNVJKNPNDGKR?KLCCBXOMNN@HLENFSGKQIIJNOMCJDKRHTPFDJCNKQJMNGIQIPKJJSIDGDKNOWFPN^KWMKJIIKIVIMJMN@KcHGDKKFINMEMJFHMNJPLPSFSTJFRMKFMH@LGMIJJHGKNFOW_PIFJJNJESHIFHEJN^HKKRFNNNNM@QSGDQHHKLPKLITMQLRQLIMGMLLPMETQTRINIONHUNLHSDIPOITKGBFNOPMSEHDNKFMLNLOQSIJLHGJPTISYQQ@OROLGANFFLIIQMMRNIRNMOJJIFGEHJRL9M@QPMOOPL@DKKIIIJBMIIILLQSNNTLJVOUIOGPJHOFWKHJSPMOQNMPMHPUHMDLDIMNGKNIYIONWGOPPEPSGAMINONOKLGRMTFRUNOHONJJQKSORSOMHTGPJLKSGIGKIPJMUGIOGOM>PSKQLTIHQ[JNBOPPNLOFNPMKVOJWOHMI?HAGPBNNKTMIXKSJNBCVPOXV\W@OLXFMQGLX_ELGJCO\ROOLNJROIQTGGGUJPKPNRIKIRMHKRGYPLRTZVRERPKNKOPMFNNOKKOPDRNL]IV^HDPQI\OMLFJSOSKPLLGZNIOHFKLJPFDMSHHJNGNPUDIMMINJELIUKTNMJVJHPOOOPODFMALLRPNJLFPROMNUMPOQ=SONKVGRFJLHQSQFNNZIHLIEIIPLXUOOJIJQTGHNFK?EDONPOIPONQIHGKVQHHHUMINRQNBMTMJGCGLGHDPRNLLGGLJHUTKEJMJL[OFLFPPGJIMCRNKNMIRJAWFQSSEBKIQMOKKHOMISRJHKAGQV^HIINHLGEPHLGVONKLHFNHQLFNISVVMHLCLSFHLYRPLULGPGTIHCYOQPRNHJHJUPRRMJPNXWRJJMXP?TPPINQNPNRREHLOT?SDJRU_pUNNR\TRUaRSUZRPRLPVNQSQMQUURUROQOKHRRP]OL9UOS^WM\UU_RMOXWTRSQOXHTG[[TZLSLcNNCePZMYPORNPR\OTcGbWYRM[Pe[KSROKNYHUPVWUWUOMOJQZUlNZW[OAUOUQSMXLWfEaU]]NQIUTVMVYMTVEMNPLNLN][]QVXOYRWXQT[TMRRQPTSESUG[^S_YKNUWK_SEVQL\UHWETSWVRNBEPKNVVQNTRX\A`XJHXWSRTNPVTWXO]kQUM]OTD^G[SUPUSLSdUWWNRZ\GN]RL[^YOQOOLVYCPNYhNUP[PIOOPK`VR[O[WHTFUKQNKQOHOOKTNMLRQOPOILKVOVPROLLJILNMVMRROKMNNL\RUHJQXOHKHMILGKOLGJWMPHLMFKPQIRJOOTZKELEHRIHQUPOXLDMDLJMMTZLHNIHOGQROMGOOSRIQOEKQKKJHLLPPNTNELEMGXI[MIWMMQITKOLMIDPGPNRHIXMMOMOKFMQQYVKMFSMHFPIDRKYMZNKOJHNNPQHGHNOKUJHORMEPGPFLGJLRONMJSLGNIIOSLNLOFMQLOOMKJLOSQHKJOROLMFNMNMNSJIBHFRJSHFHMIOHNILMOULHRKIMJXNaOSQULKRKPKNOOJUJSIHHPFGMLHOELMJXOLMKJPMHJMKOCIPDHQJVPNO@LOKSRUONANOIJMJHOPRMEIRKMGOLOTLILJHRMPILSOGQ[PTFJHLLGHGQKHIHJRIOKRMNLNKKMNNILUMPGMLEM\JRJKKLREKNDMGNSDRGRONORHDNNKDMLNONWFKEKBIIR>PQJGSRRSIUVGRRQNPJOMKUEORQUTRJISOLITKPGPNUPQTIQNKETOMSPRKEOIOHPRORKMDLEINBMQJMQLQMKPNHILMJWLJPNBLRPHIKQHCPJOLOKNKSPNJKIGJORNJLJISSMAHNSFCMOFONONUMMKSDPROJNHOMIVMNTBLPPLPSQJOTISJJHJMPEKQMMK_EJWKQNTOOKDPRUKJJJGERNEPORJKQBQNLKLSRRRIHKSFQNJSFOOPQOKIPYEJFNDNSLGEKJOMKUPVGKHILQEMHPBOKPHHGVBKILRWRPLKBIMJL@QMNJWRUPNMQSPMSYJOUINGJTVGXNSIIINRJIGPJHGIHSLMLQLNSFSJMKJPLIVQMJMKEKKXILFJEOGLTQODKRKGNDVKHMRQKIPQVTHLWLLWNPJJXTQKLGPJPHRLPEPGNMEWKMLRMRPIKHNWJNUR@NNLNM>PFKWKIRSPPTSJVQNNPMHETDKYOKNIOQTNYPSNSNWNCXNEKHVKQMWPRQRMMS[LOPIWPJLMSUIRQLFPLSJFQPLSXUQNQNKURLPNUXVKFFLRNQOLIOOKIMKUDNOKRKUPLQOJCBKNJLHILOHPOJPMRHKFMQGELDOQGLHVJPL[WSMPH\DRSNROSONNTTPQJVQCOHAPJKKMTTWUNPNMJOIISON:TR\TISSPRU\RYRPXIMPTTKHKNGQHRXSPVRMN^IPDIXROFIKMLJMXROMVQKLEQKOXNLYIKPYJMXJEKKGHPMRVMTKQHNT@JPVFONPQMRMOLOCMVOKKTSQKTIQKRPIEOQCHMNRQTLOLQHDLIPJMJUN?WOXQJORKKOIFPKOIQKFJJRQQNKONOKLJDNKHIMKMMRJITNSMLNOMMIMLJUPLJNHQIPDKMERKUFKFKJOKLRFKONKLRRHPOOMIJLKKNNMQOXJLQNQJWIOQOLQISPLPOPMSMINKMPQQTUWLHIMMPIOOKUQQ[KGOQLOKGMONMOSIPNGNLPNPQKQOIQN]CR[OOIOGSPTTILINIOJWILTRMUIKQRHITOGLEPOLQNLREKJJLUNKIIGKCMRSGONNTOPGIWVELOWYKOMJETOJMJQ:KGQUOJ>THMSNSIVINMPPPGR]NHTQPLREOKKSPLMMPRMMJOOMOPLMNLRLJTFLQTTFPJOQKHJQ=JNLNQRONNSUHJMPRQHSMPHKQNHQOHSKKNOUOOQPENLPSOWRJQWJNLNOSNFPQRSCJOVKMLLSONVMMPPKJVN_RRNPQQPSSONLPPTIOPHMQGJLTMMRLOQTPRCJLNVNIHPLRLONSOP[UNMLOSLRMOKSPTQSRRTLOWGLMHNOKOOM@ORLGPKUQKHTTOKLONNKMGLULNSOWTMULYOMLJOOI[PMIVNMPLIGRKMNJQNRKKPSPGNPJQLLLPQJOMRJRHJL[OVW]RKMMLNMRUMRMNPUNSEMGHVHNTHWF]PKJLOJMJPKEPXPQSHHMRSRPNOJMKLGMONLAUFWVITRMRQWQNMIHMPHILTERRNNGBNJPVOSMNGFUNHKQLGNJRNHUJJDEMHNGLLTQQQJYWINLHVMEOLGRFIJQOENCKVLPHPLRQFDDKRTIKKPDSKOHPTPLTOMNMJFNQDMLTKCQNJYGTPCHMIQFQKHTIMLHKLPRICOXULMJMRPIIPLUIPELJONJTSJOOBVKQTPOFMSNQJRQXKGNNMUKMOLHSQFXWXVRPJVRPQTSTRUIMKNPISJNMGLTXPRIRPSLJFLRMKSPTPTUQLNERGRXNQZOHTAQJQPPSIJHLFXCQRNXGSRHJRKXOEFLGOKKHLPLRUHRRMM=NKVPKKOWKMHH\GQTEQKUSRRJMOIO_RNDFRJVLFUPQIJR@MJCJKPTHNWJMJVDPNMSJSNNMISTMQTICJNIMVUMMRPKI^LLNRYNTLQUUFSLNHWFOIQMPNDJLOTCTKGBUKPFMOGONJLNNATVIPIDMNSHKHQYIUOURJRPATMLPMH=?BGLNRUPWHOASGQFJ@KOQ>HKODNWOKHESEKQKDAJTF\JFWLKXVLLYHDWGMOEFMOPIZLRFVFJATMKPHKOJ8KJJEAP\NSPLUMFSVIFLIS?OLXOQNOPKQHLFLORGOGNNNITQMORJRKKORRNEIGNWLPJPMPUMOKTITNNNMKOIIMREKMKJJNMJW@RNLHE@GLRVOKEINDJJMKJKESNLMJIIPPPLPHLHMPRUMISSCSBUAJIOFAWJCVONDFTGHGKJKNFQHGNOIJRJHKGGEFLOMLKOIRSIDKIRSE>ESFMKMHQXIIJMLJOECFRGNNLNHHLRLLTHOPDUOROLWYNHAPGPNJROQMLNMIGNWJEQOOTOJGHHINKQJREGUTKEQLMOLQNPLRTOIHROIMLHFMSKFMCOMQPHGNMIJVSJHGONNJKKORQGQJFFWNEBGRCPAKBSGPMIGGIJHFGMQGNHONJHJTFDSMPP=M:MIINMJHFNMMEREKQM=NGHHECWJCLIMONM_DAREIMFKGMGESOLMKROFNIGQOMGIEKCIMLIJNJMRMIJJNEFQJPDPNL@NGKQBFOEJULYCPBKOFRGGEDQRLMOEMRPKNDPCKJEFNIHLKPFBIJPJNJFNHIMOGOIJMTMNGNTQRCPKOPCJTD9LGCYHM\FVDTLPMMQMEKOFJQHRIOKFSVGTJFQNNQNQNJJIQGLOJJIK>LDERQND@PLQGMVQUJXILJIKSFSWPKGK>GGUEMJPGOILTLSFCIORIHFNQQHINJLVRQUSPRJPOOXMRSTNOIUJLPVMIZIQJTOSISFMRVVLNLTIKJFPRQJROGGMZMLFYOIJKRSPMTOKGRQMRP_KPLKKKORLMSYWLQ\MKMZN?SWJIAEPMPRXSPUEPYNL\HRUNWLKMGPO[]NMKOXIULVFYLTJZJWGPV]FPK[NOZ]JRL^COLUISNSONXGORNLIGGQMIGLMRODCULIWYXNOJNJFMOYRKPLNPTRRIJLKPTHVRQLINSOOPMGYOLDQQT>ILUWPLZBOXIRYHMNR\FOMLNUPXIWQSLOLSSSWGHGLNXXTZMP[HLPIYMNNLOZVGMYOQQSTRJW@ORQSMJLQWOULQHOcTLPUQVQ[QSNWJUPRQVRXRMVSNLXVNKWXARNSOHLQXWQIVXMaTUVIUQUUWRRMVGNQMXP[JMPPM[VQVPWQTKQMPYWKMULLKPVINRRPRWDUPTSWQLYUSPSLPQOWKTRSVM]MSNSRXMMR[X\NOVMJMUTTSXTRVROOVMVXSMMRMYMPSMOLOYbSKVKOZVXKRXQ^RVQPLDNMX\TQKPTXURQXSVUTRUTPYNQRSYPUQRQLOTSRRMKQVRWJLIXZO^XQ__YVMORSOW`POROWRNU[QQOO^OMLYWWMTVSPTVPRHQUNK[UZINNRQUMPZMRPLMBMRJVDNOGRLMLRPNTHFHOSRHNNMKMPIRSLJPUKIGIRENMPJIVFWJK[KUJMLRXKPMUUGSMPPLOIIQNHKHLPKLILNPQSHNKJPSLNFMTNLQNQLEMHNWLFQOLJESPULPKLJDPMKLMLLQIOJNSMOEGSJZPLXTMOHMIONJNSIJLLBQOMOQQNHPGNRNVCUMOIIONSSXUUMLJIPEJJHUIFHKRMQPRJKETIKMQFQLKNIPHQMMCTPVKNROXOGP^OIKMHLNTVKLERSHGPNKKFUMSMJKPNP@FBLXMIIUILHHPLGLGFOLOSLWKFJTMPTNRVMSM\UJTKIUQMJSLFDFHNV]TPRPQLVNOGURWPWJM\TOOENHOGRXN8TPGQOSTPTMRMQYSSNQKRHNPFMPJSDSJGJNJPJHUPXWUTSNRJCTPYUGFIIOZCOJJGNRIHMRGRSKNPYHUQGKSHPOJTTYMJGFIXTR\GQOSYPQMNXHJPZSQSXGMSKHVKUUNSHILAPTRORMPFWVHKQRPXBITRMRNTMSFMMIOHMWMLOTPWXGSOQRQXMMSUOVJOLHJLLJUTQLMUHPWETINMLPVQUIRHKWLTPMINNUJWQHZJULHRJOLPQ\UELMPPNQRKKCJKLMIJWWJVLOORNTRKVLOLPQNLKIOSLNLMPPINMRMVMKNNNMQKKMPNLHLHKKVKOJQBPHGORKLOJQMNOPMOSIPHNOKPKMJMMISKNQJMLNLPKEKLJHPIINJEMHGOLZINONNPLMPPLNMNKMQQUOHJSGJKJMRPRMLJQKKILMXONODPOLNJLNJOLLLLQJJHOJFQWTGPMNKIERNQQQKNPLNPMLOWIHIFJPJIRJQLMOGSNPSPNPIGKQJNMFJJKGONTNNHRIMKKHKIQLEJNLNMNLOJKORRKNLREMOOHNLSKLMIPNGRKLNSSPPKLLPTNPOHKLNNLDOMQHQKLNKMNONTLOPLNON[QIMYS\VUJVWQHTRcXVURWYTMOV\WVPKWNWUPWWTPQ\[QPOUVTbVYRWVTTVTTOQQLO]VWRPJUULMXNVFQYSQP\UPTZQUNOWQOZSSUZ`TSNOO]SURPLYYOPSZWUVSGWTHSPPURRPRVUNSNQZTPWT`XU`H]SXVSXJYaURSSJU[KOVSJRZKTPYSPPOMVRPNVLQXKVSOSVYXSSOWJSXTUWH^PSNP[KQZ\XUXPMTVKPWNRS@LFTNRRO^WYPUMOTKKP[NY\XRUS\VN\TSP^T^VROYNQT^SGPOXQRLNNVN_ZSPNU0Y_VZMOYY[WRXOTUOWVUQWBGUMJVUOPOEPUITJNJIIFWWLMPMSTGLQREMSO>UNVUQJLSKOJRLKJIOKNJHMQIRUYQMRJZGLNFIJWMTZMENQNMIKORQROJULXGVLZQUZUEMOXLILNKPCOPGNMSJMQPJQMOEOIFIIENJRFLJPNJUHWNJRORNGTONOPWCGMHJOLVLBRORVHUSTPNOINWTNOKIJLRWKKWJ?JPPY]PHMKNMVLMTHRHPLSMMSHMILRNFV\TYTPRUGRIOOVTN]JRLQSNTPVOPMMQRRJPNOMWVUQLONHPTHMUMOORVMGKJIJPURCURUNMWPKKNPNTMOVNIQOUSNIPBNMUWHKCOSTNQFHNSPLHIOQTLNKSSOJTPHPKMMRLMMSOTQSNLOUNNNMQWLVQIYRHJLLMHELNMOVIKQOJQJSKLPMRNNPKRLMKQNSRQQOLKIKVMOUMQKQF^POHOQILNGMLPVXROIJDHNPLOOLNROJNVOLIWMQONTK[TILUPMOSROIIPEKSAHSMKRWTPLMIPQQPZQJOKJMMRNVKPVMHDOJUKHFHMQKNOMVVKRWIUWQHQSLKYSOPQNOPMM[KRMQFLLXXIOPQMTMOJUOLEQ[NNNPWJQWISMTLLOUPFHVPSTSWKTLIHL[LFTSFHMJQWRYQIVLMNUN^OMSVWJQH\]O\`IMRPMPNSTcRWRYSJOWSKPVdW@VNLNRKbJ]RBUTOXPURJQVKUJOSMJXQHTNSWTSPVOTQ^WV[YMNLMOX_NURTSNXYZPPYQLOBSQUTNXGIQXBQ\ORPTYOP_YL\IUQVWSXMI_XKRUWPJO^JSR`SSUTMX]W[eVTUWSD[XVWSKRaNSEMFRXRI[RWXPORRLTWVkJfIWOTWNKOZOPXYQUSMU]KUFNMVIMJSOWWQ[KNQRRVRNMLU[PcYW^SZURRR\MNWWSHQWEOMZPJXYJRPHKSOIVXSLPLOSPXYQR^WVQOSJOSXWPSE_MKpPSTQLIMWRL[LHSSNFLQKRP?QQNPIFNOPPGPVPZRGF=PCTINTSNAPRZUQJMM@VKANNZMRLHMMPNJLMRJNGVSFRJQFRNDOOPPYKROS[GGIHIRONMGMJILFIKRRRPRGACVNNQJIRLFWZTRI[HSMMYKNQLKXKTQMLNKOMIVEIHXODLOMVOKINRVKNNYCEGJ_MJONNLNLKZMJZSTIIGFUMOPSGAFJRKJZGSNOKGKTJdVCQNRGSIQNCTUFWSNKRWKIPNLUN?DHFGTKOEQSIUNETNWZEYJOOSLIPGOSKKNHOIIORNOKSNQHXGUSHHBOLOLUHLNZKPRMLOFVVUGOTQOUGQRGHUYTEKXTKQTXVRKUTOBXNNRBRMNI]PMSHOEOEGXPJ\TGMBNMNSOLJYJTJRRRKQTPLLPTYQHZKQ[MTPHIUPTOPNONKHULNNQPVSUZTMEGQOQONQKJQNGID[\WSRSMMW]VTRRITSIJDJUVNESQNNPGQJM>YTOMRKLYTIRANTVLGMPJRUSUKIURUHIQUSLIWKVTLHOHQRIJSVCQRKJKQRRIMRJMTCILNQRVSGPII@GV[XVENLIMHMTKQNSJJMHPHOPMYRVHJRMMPKBIFMTJEOH_MLSOQMONPOOLQGUTRPQKHRSMPGJNOLQLKTLMFSOMPJRNOTLTOTRGLLURRGNTOWVKY7QBSTKQVNQIRPPMNRSNLVKKKPQVJLQMPIOQVFNSMJPEMPRVRWNOARGZNITPCJKLOMIMSRTGFUKQLHJJILNIMHKLINNXMTTHOKSSQRJMPNRNKHTJHRTURPMKWRRMSIBLPJVRMUPPLGGQNMRRTRTILOIMGKIUGNGUFMKNQPHJTGPPIOPDKQQLTJPSNMRXTNHMJEGMLNSTBENPVKSKHOUNEQSOOSKWZNQK@SLM\RGLNJVLHVEQJROKOHIGLQQMSNMFPTHSILPNSOKOAUNHOIOEOEPRQMIJPPVPRMFKIHPPMKLOGLJNRLNIVEMCIEJIGITHGJOJBOLTLNK?EMIIKPHVOENPMPOOHMQJLMFHJRWJKEJJHKLLPQFKQ_GNILLM?HPGSPMIEJHNHJKMNJOPLHGVLOLMEPPIJLKNDIOIIHERHJNQJHKVLMKJMILILLIFMACJGKNHKKDOELPDHLKLSJQJLHJKKNJKNTOJJMGPUKKHKLIGBHNKIJMLLBIPPMPPOIMJBKHHNJPJEJHMJMSNGNRHKQFSMRTINGNQOGPGKOIOMHIRMQLQLLFGLRMHKOJGPFK=CLPOOKHFSLPLIJHQJKKVIOIFMOPNJPLDSJQORKNNRJKGKMWGNRFOJFOMPQPMQJJOHMQNGJMQDROJQQJJLNOLMMODQQMSLNTONRXRNPSFQSMXOKSOMNHM@TGMSMPKJJPTJLMK[GOQNQOSLWKKBVKKOLMHNQIGQXLNATOTQSYUTLOKRFQRQGXOOLWIIONBKNLXBOTNT[IMM;UJHCPJO=ROROKHOMPQOWRPSMIKBYIVWJ@NQSRRAJLHEMDHRSAGMPVUXJJWHJJRKYSIKOWPMNHUHNXJNQSQPOKUNXKNLKJMPSNRVIOQSVRQHSOHIKIWIMKMQOINMR?B`QRPIYUPWRLN[FKNSPRNSLLPOXKJOKJNPCOOREXJNNKNPPMUTNNPLLUPLKKUOJTLOLHPLCJJOGOJGEJKSCKJQGLX[CQ\TJQVKNJKKJDMMLHM]IS[FNPNRHKJKSKJKPMMTMMKKINOONUPFNQNMPNNZODRPLTHNEKRUMPEO\QJTZLEOQKFEJQKNJRWPIMNGIQMQVIJRFQLLPIHMPUIOMRTTCNGINMHTXGJHTKIIVSSLVROCOSJBLHXKEGJOKOHNCLMILMHPRPFFLLEOVRLKMGBRJGJOVRMNQNKKEMLWFETNOJRRQRLRRPJHNCTJKCMNUKKVIPJOHLERNOTHUMQKRLNNTUNLLEJOTKONELOPRKLNYPEUQRJKRKOMKGSPLHXCFIPOHSPOTLSNHPJIQHGIRPMKBZJROGCRNMQPFYLIIMNFSCLGNHNMKLPHLEMFMNTVQHIRKMMQFNRNLNONRJLNHOKLLPCBJJNKDNLLINTELPKKTOPNPMKPEGQHQJOSSNOKMLKJRPIPMLNIMQMNNELPSGPLKNFUTRIR[KINKKKKLUUQNPUPJEOMOMFJJKNQNMOOJGLIKONJOJJSLNLKQLSOJNOMSKOLKINJIIKKLFIGOLJQHHNQHSPJJKTQKPINLIPGNRRLOLNFMLNHENRCTPTHGHQIOLMMJLQ@LFKJRMGLIIOKTLIJJLIDNEQJQLMTJONYGPNPRQIMIIULINIONHIJMSJMMQJNLP:JOPLVLQHNGMMPQMNDLRLRNVPKOLPJIDRKKVGQMTOTKOPBKJVOPRJFKJOEISOSOGMPPNOVPSMRGKSSREOJMLIMJDMHKVSSIOQQTJQS^RSOTMOMHJNLLKSRJPPPONGHUPDGHPHMNRTGIKEHKLPPQKLRLLUK]XPLOKMQIKGPLULOJKSGMSJPLPUSMWUFQOXWFKOOWKIMLMHOPMHSIGRKGYSMOLTKJMKSKRQHYSNJNVMPLGEIHGQVODGOKQKNLNLSHCSMINMRKTQHRQMXNMPKRWOMQQQNMDNKPONINNJLSJVZTSKHNLKUSJIJMULKWYSLHQ@HOHMMSGKWMMRMKDPMIEICPLgFJOLPUJKPHQNGFMLBJQTQKILOGALGHNVOKOMUOOJMJQIEIKDNP>JOPNANORLRIEK@OMOIMMSHRGFQYE@DOOFDEJCLWMJFXUPNLMKSMCHNJKRHLGGJEJGHGJQXEYKLIEKNKAOJBNDUOOQZGOFLLOPNKFKIHPGOFGCMKNMMMQOGCFJJUUDMLOKQSQNRHISMMMHGILLHJNQPMJFKPJRQMJEHKHJEIHPIVLRCHNGLKTJPNYLNIGSJNNISRKDLPYRHVCKOMLIFNQHOFARQOENJQLTEPIFJQNNPJERHNFAPHGQQKHHEHOHPGSLIOIKCOLLQNJMQVUSOWCQQRGPKSWJQPIQKIQTOWXVOQOLMINMSUPTVANMRLXOLTMHQNKQRUSURUOJSKULMQKFTYIJQNPNTNVQJQRPJNPMJSMXZFLJPJUNPOPRDGFUJQVTWNQTQXEXIIOWMR[_WPGFRONN\PIWPZXJKQRMRSUN\QV\NSVVSVMMQLOOWNPYJVSWISQRMRPWOWGLQMQHOSKRMZKNRVVKPKITORREVLYQMQNVKRKKMIJNVGO?^MYPNLMMOMZPKMUULRWVTELMJKHULJISPLTISKEWPPQLRKLPTMVINRGKOITQMPRWOWOWSUMKWMHUVKJRIJOMPHPTTHOOUOOLROGSKPMMSQPVJLQMEJJLJMOKPLTKQFRSEQOPJGGOHNJICINJMNMKMNYSMMIIEEQPQ[LLOPNLLDKPNPPRNQNDPGLNGRSSMMHVLLOIKPJKJNPJFTSHVOEPLGNYQMCHKRPCHMTLOIQMQLQPJSPNIMINLMNHJMJJURJJNSPKNOFMOKNIQPOPMKLLKMLKNTVNOLKOJLZKLLLLIRPEMBFUGLME^GONTIJNJNMSOLLLNQPPPLKLSHWYOMSKLNLNNSOMNMMQIFPMISLIPIIJKLHOYILMDOEFGIKPGTPJHQDRNQOHJZOLNEOJTJQRQVGKPRINYMOGPSNH[RMZHQLLXNHFOHGSKHHQPMKEL1VKMPNDNHZNIOLTUMIHWHIRMINVMJSEMLOSSKNMMOALSIIUHULPQNR@QSLH]PSOPQOLCOSWLGTM^R]HOKIZQHOEHRUUKKJQKJPONIRHPIWKKSLHHJSHMJQQSNFLTKVOHT@KDKF\MFKIMIKVRLJOKUOLHPBTDGTPXKJUORIPCONDSSKOSFVNTJ[=_ULRNHKLEIEQKE^JPPHMRQMITKJWSTLPKCNUHJFIOIVLPTVIURRWQRPRAUHRNOPRQKNXSNPG[RFLRKGRQVIOOUKPLIWTWNLSGJL=IGJ?IATLJGLHOVBFEHAPHNNJSSLKFFMLELPGLLMGQBCFLK=BHSECJFILHIHLIPCMYSOIJIEIOKLLMCKNEQOLH=LBIPEIMJCQFJEOJINCMGGJFQLNKC@GDHOEGLOF>NMM>KHKLSEHMJIHOQKHGONNKHJRCYWGKKFYKILTPJBHHFNDAOBIKWNJODSGFF@ILMKHTALILDLOHKECIKNDJHPHFPHJHHPOHAoH@IGKNOD@MNRLNHDHDKNOQQJANMHQORIJSOILKMTGRLNOLLJCPKTLPPTMOGQMNQLIGPNPTVFQGLLMIQOIHTNQIJIOPMHJMLGHPSNVKDRIQLUIPKDAKHFGRFQUVQIONLJMRSDI^JTQGMFJLHQUKTJMMYNINKKSNOPQMPVKGOPJVEJOPDOIQNOKPTLOOOLBJQHPKKKGYYJLTWJONNNQTGFPKIMJLNSKLNNEULJDUPIJJJLHVVRUXJYKO@UTQSHVM^FEMNGJIMLBSKQIIDH[QQOKUPIDMP@KN@JLMNIBCNKNSORGQOLGOMHVMRJSZFEHMMLMCVDIEQFGQWFOEJKCCJPPCTEQPPKRO\PJGFLTQUHOQPEVORIPJLKOKUPLLQSNJROIV[]OZHJFYWLGMRHOQGWDPPQPPFFIBVKRMPNMNTGNJP[RMAEKTDSMOJKHRVTRKGGRVPSTSOMRPOTFJEUTJWHMZNNVN>LLUMVWPVROLIIHLPTOQMRCPPPFFO[KVMJSIG]SNRUJITSJHIQPQ[YUPQSPNUMHQRRMIHLKHEQ]LRKLWNQKIUUSMKIUHJIQQVHMMKPOROQKJUTNFKUQPPKRKKPNMXJFVTTOMITYSWQKMSMJRVKSXOXSR[PPHONSIOZOXW9NMTYLKZX\KIILNMRHQTPMKMJKKLIPPKOLONUKJMLMVMJOLIKSMKLMPLKJGIMQLNPRFOHJQRKNLKPOOONKMOJOHOOKMNPKMPGRNQOJOLKJPKFKMLKOKGOJDNKJKOVLOOLNPOKOPMINPKSOMPMFKSKFKKORLQNLORGKKKLXJOQENNNQMKLGROJPLKMKJLIHQUSFQPPOGEOONRQNMNMOIKNOWLDNGKOGINLQLOMFQMOTPMNHIJRKPLGGMKDMLTMLIRKOLNFLMTLIMMJKOMLOKEPSQJLKNHSQNMMNMIIKMQKIRKKKUSOPMMKPTPROEHJLOMHMJODTILRKJNMKQLNMMMOLVKKIPTIJTJNTVFLLUIVLGFQ\J^VNXHNUNPRJPRPSLGTM`J@PA[ONQMKNQFYERTNMLEURLMLIHRZNLWQLIIRTIOVJS\JKFRIXCKNXLMTKPZQLORMLUIGKLSLLVMZQNCKHBQQPISPUHMPMIMVXSKQDPL[RDOKXRRKXVRJQPTDRKCAPPUJWEHPUWZ@RKHFGKOWFO\WTQQQUOQWCOTPQLGVTJRORBDVOHQPO\JSJKEKCGWIH^LIJYLSUMPPRXMRISEROMMOPPFMKITUTVNTKSGKKEQUBNMLUVSOFOGVG^[MMON0LCPHEKVNLRNNJKVQMRKBXHHOGQSJRIURSIFPSMMNMNQPJSMMEJKJINIRKLCLHQYIOGKMGSMPHMJFKNKILUNJTNVLOGMQNMILSQKHPXQYPHQOVJMOEJLKMLPNNNPRTUFFMTLOIJMPIMUOVJQMNQQKSQMILUMGYPSROTNQHIOONQMTIPXNJTFJQNOGKNRPGGQONlPMNXPMLLPPLRLPQNPMTLIPOJKRMHKSPTRIONMKMLIQNPIMOKQKQSNKLJOLYLTYQOLQNRFLOURQOOLNLLTOIJSRMNPMQLROVIPROMLPKQJXHJVMIOSKJU]HHHOLNSRPHSVIRGLQNLKJKPP]LIPRPYIJQXXYLRWSUZSQPVSQXDVRWD[ONUYQLKQ]TYPNSKLSU#JK\LUGXZ]ONOLWSGULF^WVRX>QWDVLKNLSMTWPSTV\TQEPJTZIRVTTKSNVKGWQKITVNOULTO^\WNG\XWPKMGPRNQZLNVHMTLHNYR[RS]QQQBRJJUZU]U[FJMQQSSE_USUSOEONPTZMPPLVLESXSYWcWVVYUWMNFROGSNVLONQOQ\NZI\\UJRXZPIMNNNKUGRMHKZLRPLHVWSU]TOLTNSWJERSUQM_LSTPTLPIS^QRIOKHWSPKJGTPNQ_^UNVWUBRVSLOPRSIFVHNWVVVQLMKHELGQKJOIHQMKKEOKGIMNRQNONLNRWZQJLPLIJYNJJSBTKMKFUNJHMWNMLRPNKRKIEKMPGMLQRMLMPRCDVKRSOJOLNMNSMJMNFFLPPNLPNNOSJSVDNQSLNHKHNHHIOUQMGKPOKFLSHMRGRSOOTGKGKUQRMNRKHJJKGJIHWOKGBTOCGHUJHONMLNPOKNMNLMQNFJEKRHGIJMKSNGPQLGRQTQWTFQEJHLEKQQOMQQWPGPMKKPQJMHOPOHPSNNMALQVNNIPMLMTOEMPKLICJMFRMLMVQORMJLKLPGLRQNNRPLPLKOMLGQPOGNRITNN@QPSOFYdKE[WLRQNNR[QQOKHOPKOLNLMHLYLHNVMVGTKPVHT>KKEOPOOWNPNFMSONSJSLJNMNMJPMMMOORNOTONMWJIRNNISGJHOWMPZLNKSHIMDJSCMTPPNHKQMEKLJOGUKKEIHLNORNWLTOERQGQGNOQNNFTKJPN[MOQQNPOJFRRNRNQHIPSERGMFMNTBKKNKVSPIPRIOHIFLOK[WGHG^QLKMQNJMHPVMGJROVOISPLQFWTNLLMVGLSWSQMMWJRODPINRWIGCITOFPUGJENIMLIJBILPKIHEJSKPMQSCHNLONQGQDIR]BILSOJEPKFJULYPSKRHROKK?LKRPRFRKRSMMQQNFKDNOPJJXLIQOKNSEOPUJOKRBPTENKIOLLRGIKKGHPPSOSKLHKTFKOQJOPUMLMMPFNWSSOWKNRGGOQILJPVQLTNMLUZRLMFNJJSOHJQJNQLPSOEUHKOMUOQPRMLLMMEIFIMORNKPJHNQKRNLJFOLKNLCFHJMENIMVOJEKRVKRJJJLJOPGJKFXH@UPNLMXQMLKOILKUQJOKQQFHKUKNHSZOKWKNJCRLJMPIZJNQLIJPILLJKPRKPPJH@KFPJLYRHMLYQLHUUKLQRILNRMQEJJHQNHKFLHEINNEGIKMHHOOJNLMHMNSPPNONKMNNMJTOQLNKONMMSKQTIJFPPILINCKOPSQJMRQQQMOLITMIQIVKRPNMLNMNMNOUQPMPLHPNSNGNOMORNSHQRMPMOLLKLJKQNMNENRQNINQVKMRJVMGRIQONNLKOQMTMSMLLNQJLGOMISJQMRNOGLMPWQKSSJSSUJPSMVRRIONOSMUQPOTOLOMRIMOTKOLVJLPNKLMOQJHRMQSMLOPLPPPPKPRIKLQJPPPMLQKPPNNLQLNSQORTORQKRNJQLLLVQOJPROKJLJGLKNNOKQPJOLMQNMRSWNUNPNJNNHJQLOPPPKMQLKGLBJLONLRLE`ONMITMSNKNMPUOCQMRKJTPUIJHFRQSBK=OITROQMEJRJPFTJMPKNMQONJLXMFNJLITXMCJKNJSJGNLNGKOSXPRHBKNRKBLKEPKRTJOLSQPFGHQKMRKMINJHFLORLKUQLQNKDNOJJMLPSLNKSMGNPKKNLKMSJOOJJWJQLQHMNSKQEQSGLVQGLSLMXKJKQKFIOIQEOROLKYOOLMGIGPMEPTVRNRMLMRPUJNUMJIKOHMJMQPFGLIKRNLPSJNHSEOPQLJ]PRNJUJRPIKLNROVZJHLLMQPSKRJNGORNOHOLHQNDSLJRJ\RT\OV@AF_NYMFBSADQSW?FRXFFJHRWKRF9ULVLMLNKT^LIR^8H@HBYKNNJGLWWGTXRJOMNSjI@IR[KOIM_PGTCXLQLTJGVMXHBNFF[GO[NCHFWQWOMWEUAPMY^FNPYHSQ?WDQBIOKSLO\RE>RMSMNRN;WMKTLJVUHWTFYSRRLZOPPPCPEJEJFOK]TSWDBGCF[TAB_PNHJPTDQQODO_KW[MMNH[]KHEQBZZPLXWY\PEFKKUGCOHGUPWKQQYVINK@EQHLPQK\PSJPEOMUGNNKL@J?UGNHNT9JFKBKOPOVXUQANSB@LQIHN\OFEVUHL9SQJNSIGCMNRMFIMGWMFKISQDYTOKRKITKNJUBJUJDS]LMHIHNJPGCICUIKN?RKLONAHVP\SIMJMX`NOTLJNMPOOPWIRVLEQ[JHGIHVK[U;VGTIONLOOIKBQLHGVCINTGPDAGDONRMEFOFULJSRJOCNNRLEVIJMIO@GIPLEIKWCIQGNPOSONMOKMLPKMMJCJLIIHIEGE>KLEKLNMJAFWPEMPMFEKGSCOGQJNFQHFLPNGI>DPDDGKHLALOKMOFMQELJLHETGQLPANAI?IHFGFBQEIIMNAPLAQGSNFGIDAKG>BPKFNCF?IJFLFJUANKSKNG@GHOKZILIQGEOKJFOIHAOLEDNGSLGLPHUKOKHH8LOMLLFWFLNDOGLBESBRJHGLKFJFOINHIIAILJOLJFNSGJHFOMKHASRHPMJMFANHHPQI=GWKLLOIKPNKKPOLKLKLNNNNQHIPSPJNTRKHXNSWQNGDRH>ONPITMCHAJQKFXEMHKKQELEJO@PEGYEPNXRHRECMODQMDDGOILBFNQOEKGPCILIJENF@JILLJKPJPABSIDLJ@JDLKEEEPKKOJNCKDQMIHINIIGSGIMEOTIKNOOJOALANLDMDIKMQMNKAIIMLOAAHKJMOPNJLM=DMLO@EONOCMPGDSIDMBNOE@HLBCKKNWDGJJIJCFL?G@QEOJEGNKFILM=CJIISNHGJBPLTILILICAKKOKKIJIOMMLED=FDFARLLLILGQEMDC@GHJIIPFPFCTFHNO@BHJKIMJBMIKGKBSIGRGRFMJKMONFEKWTFTLSOGPSUJQRTSMUKFVIPCK]IJURCOVSLCMSQCXMSTMHUNVVHWFL]RSIDOLBVTJWMPHEGLKSFOJEUXN?RSTJWGRRPJNRVMUQKUUCOJGLYRQKQGROURVPJEPPIKOKMUOLTMQRHNPKMRVCI[RPHTPZKFMISOTQNXMKNTNRMK_SUNKVQUNSPULQOQ>RKUNIORRMNRLRWKHFJQRSPRLEYJOEQVTTLPU?QYQJMMOTNGUIJONREJKVETIWHZQNZWPPPFBGLVRJMHOVNJVEJK_QXERQOIKHOKOMJXUROXQHUXTTRLKONMGXFIRNRMRSNNLL]OLONMPTJGNURSKUWNLNTSQOFKLQPEVLTMLGMFLNIHVFRRQGQSWlG@QFWJUQXBIPNULWVMIULNGPNRQKMVJFLMJ>MFXJOMDYIHOQIMLBPTQMNROIONLPUJWLJDUOPLRRCHPJSOBKSOMQVJNQFaCDNESKKPGP\O]JHMXUWEPSUXO@LLRBM\LMGGELKIKNONFJEILMLEGQOTVNJHREUJNSKWPQNKHKFKPPVENMKJNOXLQORIPNFBMTMNNNEOLOIPJL_QJTJJWKIUMFSOCOYRSIYPRKLJ]GRM]RF[JRIG?KIUJNZMSNG?DCKTOUNMCKQSQJQFELTGGSMEKIOSHXUK@LIKJSOINBKKOMRAQMHROGVNMKMRROLNTsCIUJILLOVUOQINJMKIFKLJJTVMQAMMLJQRQFLX[FQQUUPNLQPRJJJMKSLMIDPUGGHKLTNKJDIUOEPHMPRTPKLJOIFDMWIVVKJNTKOJIGQPMUYZYANMFJNPNKNNTJFLNGMRNNJRRIJWJNSLHQVJLLOLMKKWRMLERRKJIOSTHTWLYSVLL?OONQJIPXKNDJBGQOLURLPOOULROTNVOIEMWSNTNNRJGUIKSNUMNFOLHFQNTTJRQNLNOLRKHSOMEOHHQGKRKHJKNQGPNMOQRIOICHMNRQNKILONVPKQLPQLNHPINLMPLMPNLRHMOPMQQQPORMJNUPNPMNLPNGLORQOPJLMMPPNOLOJTKMONMLNMQQOONLKLPMMTKLUMPPLQUQLKOPPOKOMQLNOJNJNMSQRMONKQPNROLOTPPONPIKKOPOOOPJNMJURNNRJIPSRILNVQQNQENTOLOJMNPQNRLNQJOINWOKQQOOKHLJRPNPMFLNNQKNMSJOSOLNKSLIKPNNNKLLQSOJNOJPMOSILPMIMROROKKNTPNMMROLPOOJNMNQGHKQKPOMMPSSQOLORKNLQRQNRSJVOMJXMIQMRLOOOSMQ@JGGRLMNTJGJIVKRLIRTXLPFNUHHLLKNKBPIMHJKJGYQOHRCHZNLLGNPMTFQQGLTFSILHJSNGKPLMSQRMROQDSPGMJOESHTJHLFVMDSLXPSGQJLJTPRCMJENGFNRH[TETOLHPQRJLNVOOGMLNNLLILRMLHTVKSQLDEQIRKQOOLLBLEQPMEH?OKMOLSKQNNLBESPFLAPVOLOFGPNPHOXLPRNKBOPOIKEHRYNMNRUNHKBOPLBXHHFOMJGRFLNXMILOUHGJEPKINPEHETOQGL_QQIITNNIMOOLPJSAHCLRNILOJHQHFQHK]DRSAHOLPRQTKHMHOULSQARSMIK]NQGLFLMPHOHTKCUMMNMNQMHF\OI9MIWNJNT>A@[@KQUTWDXGKTSX[MNNQQRRKRIJQUHIOGJY]DFMNMDGKJZSALHG\UWNP]KHOARODKIKQHMLLLFTXKEJQAYCdKHJSJLKPGIRYZMMOHSGPNNXLOESOEICAJUJOXSNLLN]LNH\VSLLMPQXJRDLLQJOPPLYQBS@KKLHMIAaYPLM\KCEXHPGJJ=DPMIYOUM[EUSJOJSSDVRSN`SPTMPVVO[QZJS]UWJS]HW=BMMbO^SXLSQFMcRVS]UM[bJNQLTFOXSTGMPIWLLWOQHXMCGSLMKSKPLMJJFISISDHKLMLOKNPKJIMHWKVIRMHSQ^BGKJXMLFUOaUGQLPKBKNOLPIKJRPKNKKQOIHKQTIPOIQHILPKP>LUKKQLHGLRMRFLGEKIRHMTPJPUNHDDXIGBQPLZQFHQLNGLNZSLMUNKCQGMSWHKLOQMQOONLPBILPLKNNNCHGPURPLEQKNNNKNFWNGIISKROVLORQOLILIMTKGHHGUWIGNOMLRMMONDFGOHIOISHPOGQKOJJJHVIKLTPOLHNBPQO?PLTNHKPGLFOIKEFBMOIOMEQLYIAPIGIKOQOIRLEOUOORTDHQQKHVLOSFFEKMLFHLKNMBKLGCIK@ELDMFHGGGKDMLKHAGDLIFXRGOJEMQJAJCKGLIKMHFCNJJJUJLGMLQLOJIBIMNQLGGLNIMKGOJOMRLIHHKFDMDOELP=EEHFKFBHLKKLICEIEBGIFIHOLFSSHGKLJLFHIJLJJPPHGPKBDGGIJHDMLEKJFGHOJKITMRKNFDDMQGLGACKGLIIKBMHRLGQISULKHILKECGFKIHIHIOKVKHTSJBICIDHITOJOGMMNDBTJIKMIIBBDNQFPGPDFPDD?JKFGBJNEH>IHMILFPHGRHEUOEJEKGHJNDJMLEHBDHJHEJFFMCKIHPBNFJHFJJLELRX>LLLNEIJPJFEBKLEEJMTFLMGkHEJNGIF8CAMFDAIL>IKHECMKGCKQGOMBBERQFFGDSSJBGMSIJCNKJ=NJJEJRGAOSGQERNFLJ:JIGNDLINGFHHWEILKRMIPEF;NKMCFGJRMMOJSJLPAFCLJBRJQCDPDKMIMEK@FLHR@KRECJGGNEFUC9KPGIRCREPNKJLVEK=OEFJUOLONLHKHNLG;FJLAIG;PFTJOEGJNAIEFJL?EYIC;FJNLBI=L@G@RGHQSKIH6NEJKEEFHHIHIBOCIEJOCLPFLTOVJLPGRME?PNIIV[NMUQQJIQJIMEPLGBRMNMSILSVOPPNVJEGRLPQMUSMJSWKKVJRJOIVPENMJFMFPLEFUUR[HTQQIQKHOSUKQRG^PDMNSUORCOGSEPPQPEWJJGWQYJHWMNSFF@GMHNPXV\OIFNTSTOWMWQQNLRPPJUQNMVEUQKGTPLNXFGLNNXUSJMPJRNHLOKILVNLPUNHNQOQUJZGNMPOHKUKNNNLOSZWLRPOOSLRLPQLLQMVTPONUPP]MOLLXIFKNPNOZXOGMOMUQYQMOSVKNLHLOKPNLUEKJPVMT[OIQNORYRIVNLMNJPVHWPPMOO[RPQCUITLWSODOUNXPRJRMTLTRLOM[PIHTGJOOJHQYLZTWFVIJHQIMTLPQE=RHRISQKMLQQOQSMOQEWTLOQNSKNJRRLNOSRRQMEVQNQTNGWTRPOOREHLTQQOXR)TPTYPTWTOQ\MLSNSRQNJQGILFRLCGLRHKJPOYG;YCGWCITAHBA@CMBLNDJWILLXGEJESCRGE8@RTITNIQPKEWOLHLFSLHJK=HHOFRJPGSEFBAH:NLLGDNKFIJDAKCO4TYQLKFFVQN@RMWLJSNOGKHEFDIJDHGPOQHHPDLIFQRGDIOMICMCQID;=OD>CFP?>PICRIFFCIGKP@ENPGLG?GGJYLPJT?SQJCM?QS?QLFJLPGLKHEQDIE?GQFOKLJJGMG9QFGPAMHQGJLLRJLFE9GKMKHBIM?KHFNP>MHPSGUIOKEIFSNEMEOCIHF?EQ@NDJPLLRHLPMOOIGMHNTHNLNQWIFMOQKSKLKJIT\FORTNGLIUOQGMSOGTCPBKNCORDSMBPOKSMLFNLTIMSJTGKERHIHRHGHHKISVTNPOJQUPPIQJJOLOJJFMIGONLELLNSPGKIRKHKKDOCTFRGKNTIPKPMHSFMGSKGJMKQJPPOGUOHIJLQRQLVMPMIDJSOHURQMPNQORKLJQMQOJOSBKLMQOFJLOPH?FTBMQGHPKUKHMEMHIOIMHJWHPNLTRPPLNQKKMRNdMHULMTMIUGNQJKIIGSSMHJLMMTJNJMGGJGQRPHBNNJPQNIMKEGPONWIVIEQRGPRHVSTTWEMYNCMSJSJQIITIRGLRHSRSYMLNHQIPHJNGJQQNTNPNRKIEQPPBUIMRJSPTTYQQOPTHGJGMLMJMMNRJLNNNMLHLMPMPKFNOBPQKQRIKYMNONOQLPMQRKWPP[NTISQFSQJRPTGQVKMIININQJJEDNO\MNOHPGONVSQRQOLVHEFFIHKKENKKRGNVOMNLPKMGNHIPNQNNMGLMJGLLQNQNIOJNPPNQNJMJLMNKHIPPJMMQONMQGLMMKLNMJLLKGQQKLMNINOJKFGPLOOHJNLOKUKMKLNJJLSOGORKMLNMJJLKKQGFPOMPJMIOLIHJPOPNKQOPKQLMMMMKOINIJMKPNDLLKHLOPIIMIIJGSFONLKOLTRHLJPHSNPKOSJMMMQMPMFKJKQOPMRHRPKKNKLLGKMLJKJIMKTOJSPOMLPCOMMLJNSQLRKJKPFLLPRLPMNQJQHJTMRMLLWMQJNQINPH7KNOIQPLMMLTLHRLNNNGQONF;FPTPKPOIESNJUKQMNHJITOORGQIQLFOFNCSMTK?MK9JPKJQOGJOIJOJOOOLIFQPSJJKMNQCKINQUMKQPNURBEQHMGLUQMNTLNRQJDIHMLLGNUK]DTSQQRUJSFPOQMJKPJR[IIMESQKOMJFPJMRSQRYEGNPKKRTNSSJLHPDOMNNVNSDVVKRIM\MMIPPSLLMTYWFVKSHQXKJLMIJHLHMNPIHDWLIXDERJUEFQHKNMMISLNNLSOQJFQKQLNHOTNNSQGKN[TMWHMHKILBUJWPUHNOJRRKKFSNNLQFNTKTGHVLIRKMOPSILDSLOOFHNRJICJMVRGVRMQLNIMLONMRKQHKRPRQIMLSGFMSNJLJJONUS=NJROROPCSRSIUPHHJNHGDLBLIPMGXOONNLLIKTQIHSOMQAMJHJOSMTGNJMOQFQNQQLXMEISMOMJOTS@IPQGQGQOVNKGJMPSGLSMOQOPLPNQRLLJGJJNLKQIMMMKGLSNTMDLMQMDQSUPBRHJJRZNMQNJTMLRVQRJLM[QBTTGHYKODIJMIMJLRJFSPOPIJEITJKONPHORMGJWSCKOORNLOHKNOLRFFKNIQRLPPOMIGEIOIMJGKHPKSLPGSJRYOMHUNUIKJTOQPJTIXJGDKNNM[PQONMPLPHJWIQJUN]UUNSOFPFOLTFMNJPDUDHPJQUHSQGTEKKRNLTTPKZKSQNHOP@B\PRWE[PPQAJCISMIROIRQQITNQPULBHNLAJSBHMTPDIHLGTUOMFSHRRUMLRFJKXPFHRSYKTOZOSDORKHXNQHLDNFOLPTJCLOGMKQDOLWUFJJIPJKVNRJHKORWDRPIROKKHOQSITPPWQSUJOLIBQGKCVLRMIITREKQIGCNTJKBWCNJCENOTKUIJSMJISQKEJEPJNKJMLGSPIJNNMMH@MWJEUOKLHSYSVPGFHGSKRQJQOXNVZWJRRIJJRQSLR?QVRKNPZOWSXXSLUWQWQROUMEEUSQLNNVKPNHMP]LPFJSNWLVHSWGMUJKQPRTTXNSVM`RUVVJQFWRF\HNNHOJOPTPRPUKNNXXQODQRTPPDHUP^PKVUORUSQOYBSDPTSONMTEQLRPNLXRMOI]TQIILRUUOIOLSISHPV\KPRPKBOJEHTNQVGSTKULIINP[LVVQNHQOHU_IPQR\PSRFKNSSYYOMKFWGORJKJKTWTUMKVTPHWMWRJKJ[LMPXVQFVMGQRQMIONQN^MWXGGESSLQX\`SJPSN^MOOQXTD[RP[TUMSPRTJUJPI\LKHOIJTVVSLZIH_NIZTXHSfQJOLPKSOQRWQLSASUMIIMNVMGMLKALPTMOPRULVILVKMOMLJNSUKHJUQNOQRQ[NUeSUMRRMTXZIOLOSSRLTLNKHNPGQRFITXOWLLQNASXIQOTJYPFMNMLGAZNLQMRIU;SPWRNOPMNMISVJTJUHZNQLOMFPIZKKOSRYHMMGRMMPXJHZIWPNEHb^JIPWZ^NOKMUPPUNNOQKRQNYNKEZPTPPIKFTLQGTRL_RPLYRNTTLMUZZQNNW[[GQ\IUNF\NNTQ@LMSXPRFM]NMKNP]OYRBJSJNLRGPXMQFXLSFNRJJRGQREMTMSTQHJILHGTALJOSIEQDQMKIGHHLRTLJfFGGFOOGKCQPPM=MIQ@NPNJMNINLQHLLQGILJJNBMKLMIVHGIHNJNLL@NELPPUJQMMRJNFHHCHJQTOTFKOKQLPSWIILNLQHOMRLIEOFMLJOFLPDNNLIPL@CGELHAMHFLROMINHJNVVNGIQANHDKJKNHGLOMMJNEONEFGFJFQKBHHKGPHQHOJTHKAMJKMESIXLNGRNHISTQBAFNJFNRMIHJIKTKCKEDHRLNPDQKRLRONIUJLGMMIMKGQDNIKCHODMALAA@OILKOKRDEKFHMIQTANEQONMSF>PSMQQSXYPOVXIGMZIOHWJ[SQHMQXTKX]OCMJIXKDNTM=PWTJTORJXWML\LMPLRFTNMXOWBGDKNROGKYXMJNCPNCUJXRNRIQDZOQBMUZMVNUEPTMTRLPPS^MIHUHHUNMLQUMXR^PNSJTIGYVYQMSNKHGMINYSSNFFKLMR`SOHMKBQMHaMSHTESJ\TMTYPHRQNFYFMOJabJKLJRSRNQKVKLKPQGOSOHCFNHGNQN[RTSIGJOQRLSRHOLeIWOLJKKGNMMJPTIOOOINEOKOSZKNNQQL_NWJPOL]PUIQLHIKIMGEQPNJWKSPSTLHPTQ]POONP]KSLGSPFJIRLZXLSNR]OUIPOLQJWSTOOLPJNLSKPNLMOMOPRKPOGPS[NLLOIJVLJKMPJPOINORQLPQONMkPSPJJINLPPUSKKOQKTVRZRRTYRIMQNTPWNRRPXLCUZTIENQNNVPOLMLJYZKTPLQMPFX\RIJPLOVQTLXVUNUSSQTRKOYONYNNTUQOPXRPRZSMQROSUHF^NYVSSPQRJWSJMWWOHUQOPQMQQOSWHRPRUPKVL]OZPLRFNQVUOXLX[TSOUXRJUTIPRT[TcRQMRROGRYVTLXVREHIPWXNRWMHSNVJGVKQKQKIYWXPNRXXXQOKVPSSLOUTPSPXWRYJRQSJO`IMNQJUNJNQKQK[GUNKK^MUQJQRWQNR^WHNVSQUVSTNQRWPNPXUNUQTOOWH]KRVWNPMYZYOSQNIWQKLKMOPQSTMHNJQTUTPTHUSOJTFEKXOGOVFSXRVPE[LGNTQGOJAZX(OQJO[OXQ]VOXcWPDXORJMNHOCTMFNSWPPPMFMMPS[MUMVOISGIPHYONZSOPVPKWETUMIMURTXTVLXISWKQQW=W_WJWNULM`MRLKUHQOEMJPWQTRLNVZSLNMPPQOP@LIJNHTGNK7PEVMIGVKTWXQFFVTQJJGOQROLEOQOLXHW^SPQLOQIPVPUSNNEPOQKCJkJSOMOLMJENJMQKKSUCNNOKRTIEUPNOPNHURCMMTKEFQUFJILRIRXZOPTGMOSDIfRQLLR[NSOQHNTTLTRNEOHQM\N@;LLEEKA?KLHECAIILOCJIDJGGLOMCFGDEHEAEE>0LIHHFGBKMOSDIFCDLD@DH9KBQLJDJIHEEODIODCWIHOFKHJHMHHOD?P?IKPTKKOFAEBEEJGHDNKJICBDJMSKGRNDDGHMLKENCNGCLJMECHGHIHEINKLGEIMEFJHCCDHIBJEMQEIOKDDEGSPAILJ?DEEJLRJHPKOOEHIIKLM@IEGKHIJFNWKEKFQMJPKRHLQIINEPPWKSQKJNQLGLPKJIFJKOILRBMS?PIMYGGNNHGJUFHIJFJKLLGPKQOKLNLVFCPDMHRMCJFJIQMQIJMEJGLIMTHNJPKLOGPPMKOJMQOBQNMMNUGQGTWNHMAPQMFMOIKETOQKNTOOKNMRKQPLCEHLKMVMGOKRHKHQKRRJFONTOOMLKNURGMUKJTD[NZIPTUDIRTOFGODKSKPJRQMBMRDHHOSTJODHJHLRLOPMMCILONOMOHKNLGMS\PSLOUMUILNNJNLTJVMMEKNZLUPVVRTUPNTSMQPW;NLRKPGPLSMOOVTWTQYJSRLTVYKFNTKPWOMRIVKUQ[MMMNNLVGRRWUTXMUYSQZPMROOIMPEUPQRKNO[STVYEOLTVONSTIOXQTJTSXLQXTYFOLLUNGPRYUTMORSKQPQVRPOWRLRVUOHRJA]ZIVPPMYOPPMRLLYWUMOKLJRNJNNMTNSYRPQeQTMSNNQLNSSTKKLTZQKHSMRMNQRKOSNWRMLTTNGUPURMKVIWRLOXPKTKPNXPPTMYKQHVMNWMQLSYGLLIHQJINJN[QPEQJSPXWSQMHHQOFELRQOOSNKOKIVCYPVFLRISTWQPGOJMBGZWVLHFOJVWIDHFPNNLOIMKIIRKYYTWOGN[MQJPFPJ\TITPNROECNVMRNWMQWGONKILGFOYQLGNQGTRPSOMLPMPVDY\KEHNLQVTLLMJNLTHPNQSJHILPLLTIZVKRHGMPTTYQZMZQMJPSOHVLLPPIHFHGEGJFKOPJHJPPJP]XQNPRIZIMGSPKSIQNNRGYPNKQMQOOP^KRPQGOERRQMVRJKGFVMTIPI@WPK]JNUJJGQBSJILJJCKKZITIRHHUZTYFO[TKKQDURQIHUTXRKKLOVOSPEWKTREOPUNIROVMNROOPDTOKKSDVMQPSTNKMSQMVXKSOLSQGOPUFIMNLYUINONRNPMRTOPKNVNTO\JOJPREUTYONIMNJHQRLXPQOUPGPORJUTPRJNOVJNTXOTKRILPLPHTZPVZVPISIYOJMRKOOJOSNTMNHNPUMPMRRMHUMHKLQMMOQSIJNAIWZNIGPOLTJLKURYQIJTNPTXFOQOQLMNSHTHRTIJJJOVSKGETMUROOMSNPTRQNUQULNMKJIQQIUMVUMFWKQPTPNTTMMKMUEPGPJSOOVMTOSGPLPHRMKQIOHQKTQ^KPYRLTSMOSNTKUZEHMQNJJRQOPUTHPYLPNQKQQFWPNRC@JOQMIINCKSXJGERLQRILH[SZTPOESL_NNMROPHYRSJVMRNDORPSKSWPMPLSWLMUJTFNPJKKUVTPLKFRGZO]MOHJKNNKQRJGLQQPXGNOIWH[GMYRKSNPMMJMONVLQNPPMPKTNCHULJDINGROOWHHJRJNLRLMEYEXNVPPQSWROSOINMGHKKLNKNTLVGHRKTPQPMMHHPUNMVMFOIKTBDLRPKLHMIGPXOUPUIIRHQQNNPLENYVEOJLESKTNPJWSONRKLRCLPRZVPPJLNPQOU>NORTUONSKNWPKRIKPKSNJOMTCMLUQQXKTSNUL[O[TPXPMLPMMRKJKNHRLTWFSNN`RGRJLLSJUMJNR]ITSOSOONPQXRQVOOLMMNLINQRLQOUOLSTOSWJO]OQRNWWNWHS\MQOSNGSXJPVMFSISURLMXDMQLNNLLPYMONTXQROKJWWJWGVQTQWMR]POUMKPNRL^VSOQOOPKTOTHJTTPSTXOMFJQQKLPXPHVKNWFZQSJ[OSSLKXWITXJRPQRRVFOOKJ\LQRTGNKQVUZOPXQMOOSUSYQQQNUNRR\UKFHNMSMLSKMPLcLOWRGOERJIKUMTHNQDJFNTRPZXWNSHQPHPYKHKEKTSAEAIP>DHBINLEHFAKDEOINAKFAHMBLLP>@F?IEC;C]GKGEKQ>GIMRBLIIBNGK=FCNLODJQ=RFJNLDICF?IDJFGHFMIIIDLDBQLGIXNE@LDJD>IJLELDGJFHFDOMMK=GHJBDKN>P7KSMGEEEGG@FDDCGHICDMJDIDKEECGGR:JQDGJQEIGIKBIMKENFCHIDGF>AGGKEUDGQE8?AHCFF=GHKDDIEDNFIFGONNPEKN@MFHJKJEFI?MHEAF=BGbFGDJCCCI;>LAG@HICIDJM?LEGCKDBB?NBCAHRAICEHLFKMNJIJJ?DBFJDIKGCPJJ?DbIPROJMFXgNINAKVTESLWXWY@O`RQNDYTKKBUTKQTIWJBLNDLNSE]MSHRWKPMVVCVRVLNRHELQMOTUFWBTXRPLQWSORKFTSQQNXSMX^GOWPVXYQUXQLWUVUR\ENSX\HWRUTYQOMEZK[LNMDSPMLTSWRQLWVNTOKOUQSSKVXZOFUOLWOVJWTHPPFTRTX_GMXVSTOTZUKVILQROKRNVPPSNPQYXFSTXMSVLXREKGPOJTZLUNYH\LVMLDWQTUVJR[QEMTMSXZU]LWU]LSYXQFVKSMVHYWP[MMYIMV@MTTSHDLYFFIhOSVIWXVQJQQJ]WQLVPOROQFRFRUJTRSXNVMOHSKRROYUJJSPNVNNMQTUOOJXH+UIRLPO^YPPONMNQUQRBUGMOSPNSTSLRRURQ\WJKIOQMQQOGJINTNERKJRTDTTPLPIURRSMULJLKKIPLSVLPSOONOVHQKPNMSQSONRKNPTQPKQVJJRNWNSEMUTEPPF_SXPJURNOXLINUIPHOSRXMOQUTLSQMVMJHUKFXMQP@RSNIQVQVSPKSRQQPUOKQQJRSLQNNUOKPLQSSBTLSQORSVZQIRPOTKMQLLPPPQUPRKOVONLMPSVNTKNOKUUSFOPKKJ[VNOQLKNXSOMPMTUVSJGFMRQNPRGYRHKGITMZHIQXITLVOLJORLKKGUNOPJOSRQPPRIUXPSJULOOPVJPUNSRKMNOKOLKJROKFYLDFTILOPOMMMKQOPJDOOFEKM>ONQMMGOMKOJJOPHO]PEHPSMQYHIKOCWURSPIOPPESDQH>USUKTMQORQNSBTUMOLLTNPQTRLKHJQVOLPPLKHPKQVNVTR[GLPNOLMF]IRNOI?LNXOOMPVBMPQLJPIMMZNSOKORMLKFQIQQMJOXVOPOOCOJNHOLJKTOFNTPKWIGTSNIRJMLRLTNVNRRNWQPMRMPVK:PVQSJPYLOCOGTVHLFGEWPNXGJIHOGFEQTLCTQPKS@INJXKOHLOLLYJPPKQELNROIN;RSLWQQESKOKLJNNLIKPHDNNMLJNLMKGLELRLSPMJLILHEMNKPNQWPUN=NRPLNSOPMOJGJMKTJQKCDHKOONOIOTPQIJONPOETOIKLJJIJNMGOQKILJMNIMJJUHOGQTXNNKSRKJPMPLQIMLUOUKPJMOJGPRLJLQMPISELT^KPINNN_PJULJORGJKMORMMISITQHEIHPKKGLMMSVHLTUQPKGQRLTGZGIDSGTLGDOXKMNKOJKJQKOLIQNNGIRTNTRPKIPPUFOMRIEOJLOMSPKMOZURGXMQNUQQVQEJSTKSJKMNHSIHKWLKKJMZHMHRNMEIW?GLTKJINMUXR[PQJIIUROLNCKUOMRSMOKRIRKKUWNPIKUOVQOK_NIJTM_KOPNOHJNRJVPQRVK_LRMTVTSCRCJKPPKOPVRNTNQMJPKTKPTNPOMROLNKVDWMTNMRYMJSJFPTWSPINPPZNMIJJKGKNJSMLYYOPQGMTQPYQHWCUKKRDHJFMXPJTUVOPNMHQVOMLD]HNVQNKMXPQOKJKHQEMWOKKQ]LINPIRSRQKTXPQKDPNKJJLSUPLPNRSO\LOJLSATJSRTQDHPEJ[NJWXMTGPNJIQRQMDOLIFORLF^JPNMLLMOKJOKJHPGMNFSMKLJMNNR@PLONJMMCPQKPQLRRIRNTWSINOLIPQCPIKKR\ONOMKNONKJMNPNLPVMUILNCOMQHLQOPNKEHJGTQMHQJGZGRPJNRNMPQLMMPEPKTPNHRKJMNLQFKQTKJMQHHPKLNNIRMUSLWPOKQOPNHKHGMKKJGOJSMLKIJOGLIJGQMINIGHMJOJYMLOMSNOIJKGGITNRQWNOLSKHJUMHLJLGMOSNLMU[MHLHSOUOFPLLOHIDKLVTPQMSKRRIJONGMLPKJRNBKQPIPHLQVLQTKNLKIUSGMKOHQNPOQMUNVJLKPRUNOMKBNIDNRUOJUEKOQNNMPSNTSJCOQORJMUQPPXTQSNMPMPHGRMTULQMSMKOUMLPGMGSIJMQOXSTHOHRMVJTPVOIFNROUSOONOLLIIIOUQOLFPTGRSMMKQSNUQTGXNMMRMNQJMPOMIOPOOOJHURJQNCVMRMPMKUQMLNPRHPKIMCHNPJS]QDZPRKTTYSIEVPQONTIPRPBRTPOMJFNKOPLHRETVI=RNJKVOLTQSNVQLMULJJXJWRNFNLTQRIOSMGQTURJTRMPPHIFQPRIKGTGKPLSLP6MSOMKPTLLPQKMXRUJGQOPRHOHSK[TOKI\ZNHNXNQOQVTNPKIVRVOKSMRSREUQVTRKYRLJQRJTPRLTIPKRMXOSJSNPNSOYDQTOKOSOJPSK?LNMLCXGUMAKJELNSWTJPLMMTRRTPGJOUVXMOPGXQSOMPPRQKM@OOLROKTMNJXOG[LLSNWLJP[JSKYTYOODGROV\TLVTLOOWPTVIWMSPNOQNS[NOJP[NTNSJISOZRVOOLMQGQVNSSTPO]PDU]JMHKQNQKLQOGQVQRINSHZNXTMVNTWPWSUR_TKWJQKHSUVIQ\]FVPRRQXSLIPLIPSTTKORNKKUHMSYRLRTDQLKLVMROSUNOJQMEOSJFPL=JMNQQHKPLSJNTSKLUPLRYNDNTCKVKVAOUPMHHLMLONOLQPMULKRPJOSLNJHQLLHWWLCIQKRKPPNRRJQPRCSHRPSEQKJQNTMMWJNTLVLGLPXQRRLEIRLJQJNHMUMQ\OVOPQPMK]MRV>HSGZR\QWNPMTJNJ`GQLNJOSSKYJDK_QMPSQRRRTJR`PWKXJOHPLORMNQPFQUIVMZLYHFKPMKSIPTFTHNFSOHOLOIIHQRKGSPRIULKMRRRXJMMMMLRYRLTRDOLWUHVIIOIORWUFGNNRYMNLLHJOKFVUMOIPVSHNTUNNNSMOXQT\QJTVEPIPLMJOJMIRS?EQGHLOIJMLLTOPILNFRRJEIHODNAGEJNHPNOOPNQLLKV?PLRIMHXMFFMKRKKJLVJUKSGRJXOKQHJQKIMULPYTEUPXTHTNJPQKTNRJEPMPSGEJXRFRIMMTJSSKQHSBLLSNCHSIONJGHFMW@^CPGOLIPESSGOPNWOITLUMOIKVKJPSQOUNXNSWI[QTLMIAHKIGONORRFPNN@ZHFFJKJGLMOOQCUMQOSLJPGNPUNMMFWSGHOPJILTFGKMOG[OMERJTKZOVOPVKMLMHMIPTJNICRNHOTJDSRKARLBTEUEFLOIOFMOQTNNPOSIOMPOQKRNKMMPNMKONQOPPLMPOGKMOQWNMMRMQKMNOMLKLLKKIKRRLOKNMONRNLMKLRILLSVLMRLSJRMMRROPSMPNPMLJOKNVNGLOVLOJJNJHMINLLKRTKVSMMRLNPOKKOMQMJNOKLMLSQTOIKQKNKORNIKLSQMKNSMNJOMNQOURKLNLUMLJMPUOPNMJNYMSNILJMNKLMMKHLKPLQISGLNKTQGRMWMOPILKLLSLJIMQHRPNQMKTOQRRNSNONHJIWNQMNQQPLHRPORMKNMOUJMNMSLOEKMMMQFONUNNMJNTMNVPHSOPOFPQL[LJFKNGGILLOEIOJRLSQOLPVSQHIVMTVQLIMNISTLJVQDLGNEFOJKUOLYPNNMOMSPIMTHHFQQOKMHOLOONHZGVKONQHFOHEJUJPHQJPIJQMOSKNNVJPJU\FNBLEUNLPOLVIOPWMOLPTLLGFQTOSIVLNRJPMINMHQLOLGLIGWGNPLYMQKLJLPRQOM@MHGOGKOWJGONMRRLORIYSOKOSTPOLMTLRQLKKQOSPQINNNOQXPNFKMNMQNONGLONQMMOXQJSVVNLORCNROLMIMPMMGKVPQIRJNNVLHFGU^IKQNMMNHHMKKLQOPMOLMLJGPULSOQLOMCILLPIQTIRWMANNILGKSWLTXOK^PJLSSLVPDQSSKEFVRGRNWTKPCFPPDMTQFICIOIMMTRONJREMIWTLHLJJVQLOJPQSPMHTJMLNJILGQFMKPQKQIKMALHFSPNQQKYYIPQDIVPKGHQOZBHJMIXPRSUFMQNJGLLKKGSVLSURKFHSHKLJSDPQGKPJFNIVSLFJBUJOKONQTKITHRQNNZKPTHRMTNNGIPJLRGNKGNPNHNLPHRQVSRCDZQLJ;OQFSNLJKKLFLTGQVQTVH@IDLKMGICPPCKNFLMTKNDQKRLOIFPNWTRLQFI\PJKJMQHNRNKFNTO?BH:PJDJARMOQAKGIDGPKQECIIEUHJGOKGLIIQQAJGF?BRJEMNFNJNFDCGPNJCKMK?UAMVDDESFJKENGRUDCLIPEQETLBZSBLJPGQNKJRAJEAENL?JHLJIOEEEVIPEHIHHDDAGX?VTCGYCNGN?MGBKABFLBAQNAKMORHSEQCNLJLCHFNF=LKPEKLKJJGJFNKLJKHPLJKKFJBFQ@MOQDSK?>LRHKDDGMQMPCLGRLKYF@IJHF?FEIRSNDGCLHQMMKXFQAHEEGEAGHKWLWGF@@KKFMOK@FFFCFNXONPDOFX@BLNPQPPPHOGNPMNQCSPKSEITIGPNHPLOFSQKORMLLPMNPNIOKPOLIQKILJTNUOKILILLLPJHIJSIUMIENVHOUJPNMMKKPJMQPKJPLFULSPPINNKIQGKIQLJMPHJMLJLOKORRWNNTSXPCIOKPNQJOQIMUPLLGSMHMWJLKVOGYQNIUNOSQLNJPHOBGPOQQJIJILGNOLSNNNIYOJIOLJIRQNJPPHDSIYQMOOQSUNKQORPEXQQRNQMQWNIHOGEOQILLTLOONLFKKFUKNRSNROGDMPSNKRHSOHOPNVKTJUANNRNLXKJMSMIMQOPMMMJOQLHMJELJIRPMWPHNMKQOMTITYPPKGHWUPPTPLFTGNNPMPTUPPKDPMRGOIR\NPJGKJESNNSRSUJ`MTQQMULPMXRVORKTSNNIQWIQJSTHQOKLSM[RTLOGRTQSOMLPPOJTPTQORSJJMROVQNISQKKPIROPMLGPNXZMKQSVJOGTMPTPRPMPPXURRPLNTPKFHKLNKKJMNIWQJSOELSKQSMJPXUMONOPMMUSEIOGVM?NJU\PRSNMQKMKNMRQJMPOOPOPKRIOINTSOS[QRKLMLROHSRIISKLNGKELTMHHUQTPNFUNMHQLOPHUGROOLPYQPMMGMXNJILKKIUT\XNePO\NcQMZZ`ONgXZOVGQWOcaN\QNXaaRXWNZqW ]JdQLE^alBEUOJ_TTnE\UWPUKZST\RTVJQRWVOZP]T]\W^TRTOZY\`[WThWLOUMWc^YTMTR]bQf^LTWWIOWQVXXYYVVQH`S^IWTXVTUkaWVIXSDVY\X^cVZVMIXaQ_]QW]UQPaDDLLSG\YYS\_RcVNSQ_WRPAXNUPO\UVPaZ_YKVcWQY`\QSUT]_K[ORTVTSKSQPXQO`QV[SfUTYA^PS_XN_YjTUXL_JT^cWSTbOSaYUR`_[[OTPYHPY^aQRY]QEWcPRceJJQeINVNVOV\]??O@LVFLMDBPLPRHTIMGHMVOZKEZ@PQRWGNLFQLQKDEDSKUSSO\QNGXYVMBINB@XHEQTPHGJYSTNSIDMNMFKQE?NKVG`FPWKHOKDNNKKJGUOSJYHDPNOUTJNMWNQQTOLOTZCTKGKQQEQRMVUJRMFOQF=MWRNYWNMIXSXRTJJLGUPPXQWJOdEOHYSGUdIOWBYRFMKQSJURODROSMKOOKMTPIOOAUOGPMHOKUTMOPWLQYLOLXSQNPRSKLTSNMMUVYLLNMZTMTKQRXNQOLQPUMIQOERNIRLVUNJPLFOSZIAISREXXNUS[HJIPTLNUKLMXOPVVHQRWTNKQMTOSWJQSUUMOONJUTQZGNPWUTLQ]MMORVXITLLPRMQTZNTYOSNNMFQNMQPIOPKGKKTOUPPTOSRQGPQJWMKNSSKDMSLIGSPMPGXLSVRONQTNORTPOHSFNNPFPUUPDPYKHOMQNQPNKWLOKPTUIHQJWBUQDRQONQNQOIOLPOSRSIQTSHLRQMVVIMRO^SKORGPKPMRMUHLSUXSNRLRPUKJGVDMVKNLUZYPJMGPR]ROTORLFMRRTPLSRQPNNJG.VTMJFGQShX_KVQOVJYKOOMUKN@FRQRUTKPTJLKSSOYQSNNMQMTQOPWYUDXZ]ZTOOSKIGQYRRWVVQLLNQNXOTLRQQMQJLPOUPLLRVKTZLLLOQRLYQTPQOGSOIH\EKKQQFNQTLQMSPRPNMOSNOSQT[FK`PQEQWQQOZOPTYRMSQRLWSWNUKUULGMNPUHMSFRKOHIIQLOTQKJVQOHGPSQNQTLMSKJNNKNPTNPVQVWMONGSNITONRGOOLUNRTIJHSZHJ\MLUKKWNSWNLXLHKMP\TOHPVNMLCPGHOPIUTNLSIQGTSSTQLREPPXJRTLPLVMBMTSKMNPKJIPMWKHGEGUVGPTKNKULKHPOIMSQTLGKSVRSMQQXIGROWVLO\RSFQS[KHOGQJHOQJNEQKSJNS[IJMLGMORLNRPIPKEUKSXNPGJNHSGNOOPIOVOLIFBLUKRPSPNCNOX@LSSCNSMINCQSLKDZPKNNKOKPONIUNPHWHVDPPLMHIOROPVOKJSPRNJQPMUNXFOQ\TUXHRUMHMJQKMISPJFJGIQGQHMLLOMNPSMPMOKNONNTJdMMJOKQMBIFGHMTPQLTJXLGLDLOLM[LDWPDYHQLKIOKNJRSVPVOMJMN=PKUMTNIQLSUKPNNTQOTF]PR[LKNVKK@OMMUOKUUQXHOURMVGLONSPQNSMOFPQQNKBQFLPLWBXMTLNKSRPW\RLIOCKKGHNMMJFOSHJSIPFHSQVHPOOKQMOHPKDFIRPIQNOHMPNJKIQHIOMBKMHKAIMINJKLHICONVPKONLNJPFMPJMGJKQIPSIKLHNNJNAOLPSJMMLNLGISOQGQLQMVKNKFTKPFGLIPLLELQSJPQJJOERNIIHHNINRMIKNINLTJLMEINJHMWNPOSMKINEJJMOPGIMNPQPMDEJOHPGJMKJYPMHPOHLRKIGKEPJEQMCKNHTNRGHDNMT@NEPTMONHQTQZPTJQQCKLGOG>O@CGHJQULOJGGKgOJNDCEUJHDKLONLERKJGRRCO\UJFLEOLIKIIF>HKKAMNOVIJKJ=T?UGSPNQIIRMPIPSPIHCYKAJPBSGHE=MDDGKPNOLKKEMKKIKHSOHNLSOQJKKNLJMMRDNURJDJMFPQLIPJGSGEKPHUBTRFFKVMC;URHNSKR@EJPISUMRIOMHGIOFLGGUJSQRGLRFAMYGJIH]TKLMOJNOO<@IDLKONMKIF[KPFJPMIHS[BLLSE9LSEIKXPJPOGQITKTDGUPICOIHPQLOG[PIPKGEQVPQCNESRTNZPLPQGJIRLPNIPUBOMRJLNEFLHOMKMMRNMPQTIKKHM[JNVOSKMURUDPMMOQJKUMSRQQZPTKKJMLLOSNFQJGEVPSHBPWCEQFROIJRQJITMMWSQMJVYHERTXMOIRPNWPNSVVTTJOGLOFMLONLENMGSRKTKLQRCLMDYSFEKKPVDPNLELHSKPMMNKJBPGMCZGBFDHSPMMSJQIIGMOLMONTKMFIIQZLKHLMOPKJPNOHMUNJEOQOJIUUTEOQMREPIJIGGMFWAHPRQPNMJSFQY@IVNGKLQMPRKQLMPMNNHTGVNDQWMZNHRUKFOMFHWNWIPKLUOWLIWJSPLIGPVUNSFNRMLDGHTHAL\RGQOLPLLSKTTQRQLJMMSNQXEVRMSVTLQJLJLUZIHMQDOTNWONSMRIFNPPNPLTPBQSaFPGMSHTUMORURUNLYSRHFKQQUQKRLNYRQ]UVONJTRSZRSSMPNLPKMUNMLDKQULLVFRQJPSMPSQYLUTI`NOPRTT[DVMKPVOFVWNNJWQRUJ\VMKBMLMDOFUMSQRGKSROUJRWLIOPMPHKRLKHQLSTPMMTRKLP;UNSMWMLMQXRJQORRPPUZOIMVPPEZOPRWNHGGNNQRJXUHKNOYWNJRUV[PONQNPMRKOZPKFHQIFJQXSMMYYHKKXGPFQFSKTZJLQIOOGORFVKOMOHRONGYKMQLJOQOSEFULX]MGIHNENKBYMWWMKGLLZXIQDJSIRPIJKMHOWKKNKTHPOLNJPRPQFINOONHNMMKJ]OLKNIPMJUOLEJEX]GOKJJUOSRSTNNCK@KNXSLRAMRIPBMJFVTHJIMMFXDRXOXGMUNJQQVFSMJPKHLSJJMKQBPSNbNEJYITUL\QPRWONOONMSRPLHKFHJTJNGILHMOWILKFYKNKPGNMOQHR[QPMQNIO^ULTHYMHNQYYURPPKVQNNVUUDFLNIRFLRQMNRLKULBSFKLSLKJRVKJHSRGONMQQWHPXIVLQNU_XGQKHXOJMVJHDJNLFVNTMGVQLNGPWJSMROJ^QUVSEWLFFPUIEETOHHIKPJKUUSOK[RQHLNTPMQJ[ITNKJGJLOMKMN\PRDLNQIMUQQIIKRGTLTEKTULQNQFFJXKYJXJJMTGMQSKLKQWLMTDGPXRFFLSNTPJSRSSRIKGVKUTRFWFNCTHTDLRIEFVFQVULIZVREBPQLOQTSRVMFMZHSJPIG_WLQSMJPFQNIVPLHNRMFLSMOOQGNLPMSPZHLTQR^LFNJOIILPJNOKPPDCDOLFIZIOEG\UONUPQNVKHJMGLQJMHMEJNNKQNPISJJBWRPMYNNMNLODIEFWUQRUOIMITPPDPIFMHINURGTNJWQGNOHKPFHZSRINFHJEINPIJLXRMLGHIFHHHVBOMRGNPLOD?BWPONOHXHFLIKIIARRHKNLRNSUJ@ODKNUJPHNSKKQUFHMVGCPLKOOMHFQWQGKOTEJGNRAQINCHOTCJRNOOFFIOOVQFNPLTMNVLKTUGRGUIIFJEFMMJNNOWLDDI@GM_WLXCSLNKATNTNTJEXNBGELDOSPHQXJIFVVIVFMSEJETGMSTMVHRJKGPSMSSHUBMEKI>GNNNJDLNN?FGSLGGKONJJKPCROLFJNLSGJLNADgGDKJOUNEFQIULIHFOOOQLELJMITMP>HUFJMJOKRHCOGdOJMNF@MNXRCMHGMEQGIKGQQRSQPI;QGPKBFDXGLCOOAOLPTHL?IHEHQLFLNHHMFMOEPEEMREFHPIEHCFIIIKWHQOOPNOJQMNHNNBVRVNLNSWOOKJNIMQJKPBJJHFG>HGHGDL?LHKJH=KLWEMKSKKKEQJBILQEJMP@INPLKNKKMEJDYRLZNLGCJKLLSJKMDVCEPIMHCNILOLIGLFENBHJYLHN=IMRHGTLPGMLNGNHGNIPNKNLIPGFQRNRMLOLEOGQSNPPOPIHOJQXILNPMTKLPOPPMIOLOKMILNJIQKMOMQHKMKKTJQOMNOLINMQLPNKHNOLJRMONMPMLSJOIKKLPLMLGLILMOTPOSTMHNRIJNLNSIMMIPNOOLFNMLJTLJNKOLHHMNRIMPMLTKLIPLLIMLELMOPOIMKPSILLLKPSLQIONPKLQNLRHGOKGJKNQHNNPMEKHMMOMMFQMMLIPMMLDOMGMMQOOUNIMQLNFMHMNKOMKQOODJMGKKMKKIJOJJPLPPMNEOJQSF[PNJRTGMIGHOILJKQHJKOLQO=L_TKNCQ@NGGQIQG@ETNPSOJOKLVGIQOMRRUMNDBJPXFFMLVTNHILMSSOEHKUMITXGJJ>Z`GPPFJNIEUTUP]NIHNTPJJTIAQFIH;H^LRIPJTPHOKU>J`EVGPLFPWLMF\YNIIKIJQPENPeLBLSROQS`LKJNLIICBHM_]VSIUTJ7ODF[NMEKSIIILDCDMGQNFMJQTJGDPUPFPXNZNKWHIAHVHSXOQGNL`KGWFHVMGPRKPBJANODTZQUNKKOKKEGGSDRKIRCORKMSMH_IDLRONNMaTFJLBPHIAILGGULSIKNPMAOWJAS\NLNZOUJHPNRFVMLS=HFIJG^[VLNM_W^JKAVD`NMQRMHGTJDJGRLFOHIEWRXXSAJU^APWY8ONNKNFMU_PNNNTPEdKLTHPLLNKVZMZKK@LbUWMLRFXKNIIIQ`=RR;LMJYQKEJJJORLPIRPAEcNVlE@SF[8GRZZkMMOT@S\OUbS\INT=OEeJTI?WKMCWRPIMLLdKVSS]ZDhS]POOcNLOF:RRRJGGO>DYPSJ\KMKUYKUTJQSBNEGFWOGPBQKX_NRRqEIG^OGXVLXMMKV>TLORHJKFQTWPVXLNKDMSQRJTHLMQ>HSYRAdM^\MPNUV[[L]UEIX?QJLH[KYIKDFXAYLMR\NHHGN?YQSIRNTMGQMKEEdOQCLJGBMMGQRZUGEDJQPXNFIKLPRS[PQ@YMHY=\\ULPDIDSRQOPMPYHSRRMJPSJO@IXUGFK[XRO;MNMPSKJIFP[MQTPLOSJNGKGPQJ:\JNKPUNI@O^XSOJMILKPHJFXYMPGS]FWKQXLO?OQOGMRTNPQWc]V^LGGKLMMXO]RPFUNVSII?OMT]GJaNMLRQSNQQCVJWINOHCIQPFbPbOXVMLMf=EWIOJPNSS^DNNKUaGLbBGOMOK\VQPLPSMMILM\MXTKQOMOX9LUMSWSTKGQLRODLNZTLMXIPJOXUGMI=M_BUNOOMPZSQJGH]DNHF^ETPRQWBFCMGRJKKCJLAGIBFVHS;OdNVJOLJJOCTVGVPGeDPBFOHTHOUMHPGRORFUNF\JU^JOPOANNIEKX8R?NXZfO?QT\NRLvGRANSEC\XLRDCGHKU6ITL;EYAZCKWUTUIIOOLZYRFFW?VHGFIRKJHUXWPIWFF>IXPHLQNX@GYCVRHKQYAOQKEIEKLGIHFQQA?LVVVKGMR1HKPJHDIJBYX\XJMJRKIXYKN?PJULpUJWUP]OJNTHGS?Q?>]IQMUEQQPGN8FAUHMK\FSRFH?DILL]WBKMj?SSRP_IH]HiHiPAOJRKXEOLLaDJI\YINSJNKUPITL[RXRNI=eLQJCNFeKB[ZP?NGCMDRTOEIVNTQT\;HE[WFWPhOMTKGNAEPSMPYhPGLCKJD=CXJXSC?OT^HKRKZVLC>IHMJVUQRW[\[NOPFDHN_bZ^WL@U[VLL=QDOXjIQRaaQVLQEHKNHIB`tAMVSULX?N@KSMEMRIWAJFHMOHVI^LHKHLCCPZP;=OKYWRJEECEJSH[ZNMLPTPFBSKRGRJDJVS_GTkMMIN7PPI@KNDPGPMZ-FQTXC]QJRKAM7ASTT>DTJ`XLUSLKHJB]OSS;EDFMVVMF@XBPPNK@IRAIYJQ@WNYPCLFKVFAQPLLHDNMVMPLHELWIZDIR[PZ@PILO=QAJJZRFMKHUKKQO]KRITSQSBI:RKOIEMIKMKWVK6?LQL:X[NMOXJNIKETC\TKVGHAWNAHKKVP=G^J@VIYSDHFOMJHUOQSNK`MR@XVLJKIXJXZLIRIXNINWTMGVN\[NCPSJZSTDSVNKQAJJMSUQU``FOLLPFJNQOILISLYHOCOFCLUSSPDNLLPRPNYCMN[PKTRQHP@JW]UQMOM[C?RRGPMJRTX[ISTIK\@NGMSOADR^KIJGKUNSNUYSRIXLMEQPGSKRNL\ISBTDMHMRJIQMNVKKLQ@QUMHDQVCeIJEYIDJ\]LJWR]FRHVZ[^OTOIETGJUDLKGRF@AFURJIIKIKDTLNQLPLDHcPEDWIDIXORQIFR]RNETL[WAILYUV\N;FQIXEPJAULTOWUP[=BEPSQTAUKD\SEIMPMM@PBYFXPGXPQUZIH?SHAIOBTDAKZP=DITSPLOUTF>TI_TG[IFNMNLFBGKFDKLFMH>LEIMFQSKSMOJSYTHLGDUQPVANEEFFCOTTCG`VRMQ8?EJODIMI?DZHHRJjFAUNSEPcCKNAWUONiWM9GOEJLKYNNGT>MSVQRJMPMP>PWOU^>@VTLM\TKASGH@KGTLNIZIG^NHWCKTXGBWKBPTHaEPNJ7KKWKJNMOXOOUSN>PKRIMVE^QGOGMBONUFVUGDKVIPEKDOEHPFSPGKRTLTTHVGF@JJM9SR]QQGJSJ?DHJNXDWBJO^VXORAKFUJCJKI_RQGIRLNdCLTMFYMWRTULKBE@PTRCRWPIKHCBQHEF[?BCJTRULJFbSD]NVBII\GMICELNM]GKREWTUYQJWHF@QOGOVPQTUWHN^LNQPORNCCXPLZPUUjKIMTRQLKUDLPILHFQURYETPISUFLJBTOEDUTSWKNQTWPEOCSNVRRjMIIQSKMOKSRHJPQMKPFTNRHGJNLU?ZZ>VMGJKNMSBPRYJKGL_fK[FTRRIIHJXX]GeFY?`MUULU^BM?FUPQUW?8JSUPBF5SdSAPMLVRLODVTB]>HLWRIXYMPKRTOUKAZNSWGSIHHdPQLLSTOCFLXCGRLWXKS\Z>SOZRQNKLAOLPaTHJUVOHHKKOL?HNNLMHKFCM[KRI^NCMJNKQOLAXJOQ^NVQCQ@CQOMCFHYcRGSEDRNGSKLPNKOYOJ[PNJT=MUYMI?RWPNARPiASaEPKJGUIMGDOVFTMPDDRQOOIEPKPQLPF>C\TRRKJKFLKJGRDMMNDTYTQKTZPD_NWWLNWJXIFKRSC@EM`QPP@XKRMJUPGLOTDPKPPJLS^MLB?ELKIVDEMKPHPX^ENWFDKBPBOFHLdOOMPQPRROHKRJRHMOSMRDM[H?MRQTMSfGRIOAJJLSYJMKNNTLPQLJZWVLPNNSH>FORIHNQECFI\BNNBG?NNQDGLEKKRJXGQPESSQPRAKMPVQHHZFKL@IWRTHWEDNQX[XHGQOY>ODPQZJPLKVNPGDI_POQLVLTELPMM?EMRWIFCGF>NUHRBETBMUIJOJgORLGFI^FDJINZVOZJYKNPUEXVFKABBUQLYVUBHA;OAFLFPINXERTSOGMEVJDMICIDPBBD`IE>GV_SWMNZIODQLNLFUQHFMMSJI\JHXEHIGNGKNUM]OQIIBYG:IRIOLDKTQJQ\MIMFJMOPJGRPNMTAIARQEORAOLSQVNMBVMDWMLK>J`QMYFZSIHIZJPWHMBRRP`[YCPIUKLOASDZOEMKXJRXXVPFMQQTNLKGKXVEAPPPOUTPUMJUOUSKRPQM`>MGFNPLPAJHIM[JWIOZP=WRP\ZSTPCKDDKH>_F\PTHOQOPTMKQUQN=LN\ATVHWTSPSVOJEMGNHDSCWGQRXXMOSOMTQNhKCGQZHAKDR_PDVW_NK[R]RPRSCOGHX`GUMYUISUTaTUHNPMZWKZ^NUUEYHNXTG]GHFUNQPSORKMNXSCMOGQAMXDMFXJBQNISR[PUOOKG[CRKRMXUPUWQUKZLJZVPKRDLGHUKVUSSITN[aLGEWVYRP[DGQQCbAOJRFHEbSMLNSTGVNJOSTNAXP?EGGILPKKLMFLVPU`EI=O\GLY?\JIV[JCNIGEXWDKVKTLJJXA`PTKS`IHLRG[HOMLQ`XKN\KKOUU\YPRZPTXSM^NLQMLUBQGGJXJEG=TAYFTIMQcO?CPVH_N]SR[QNM[TPK^`LWLPOPIC8SV]AF?@XYKFJI`N\>IFFK9KFTCOIHPQIOPUMPX`OKZaM2SOAKKAP\HOVOYIS[Nd]\KFNH^J9@KDHGDQJaXCISUZQJXLLYNJC=T3;FADMJDOM@RWMMJBd=IFG?BQbNG>WVJ>FSMPPCMJ]@DQaNTOYFGNP[c[VKHUQfYPRH[[LPIGWVGTPKkVW=XFULGFNIQILKHJ`MSLDJPR^d]EIXCRGUYUKHZOGXGRTD6LKJHZVVIT>\MA]D>QFYV`SCzMOLQHGIKHOUMbIGTU@EZFPIV_FBXCWFWSZSIRPFYGFVHRKTVRQECRIJPHKGJNLUK`IC?DLPLILLTINZILOXCRTT_\QEOWUPLYIHHLKJM>LKRNG]RDVPBVOcNWNZSA@JCRL?TKMDLBLLBTA[HWS>RM3IATZMSMD_GHHR7VQYDJR>NEOSSEGU7\e?VQVPIKJT_\XUYGBHNYLMONLKCPNSSP_[fLHRBPWHPDHUl\FgKMLIPNJSLFSfCdKOQHUgnVLO]iMPP?OR?NSINZZQLGSGa]XSMWCMHeZ[KUNL?YXOJVXfOECUNTFTKOa[WKF\OYVITJI\`[XFMJLHKDDWDTKW]NHH[QUKQKD3MWT3HICKXIVGBMRFE_I`SLeTRMFICIG@HRLFLROTTRNJFLJJEGLRR?NKQPELOT`MQSJDGf[AMaWMXOIQTAMGNM_SGESHVUF@PiV[MRMJIMUDRMQNUPHRROJPfbHHTYGcWRQLSNOMIRUKTR@OOJEDK0QbRYOP=BJKRQFHJLS[FNNUNJQRMNQNMMPBQSPUHMNH]INSOJKIgPK@QZGLWKLTSSLBOMJIKKJKPTCQPUFEWVFOMAHPJSLKLASQJSXHM=BN_ZK5LVLSOHGOVeRGQNMTKO[GSSJLGESILGCEGFTVDJD?KWDYPRPNNNNSHRYHKHET@RcOTDLGUTNCF7HAFVLKQIQI<]dFC>VCMV@PGOYJJMJWNOVYUQWKKCPENKCNUVSNHGRSJS[VNNHSHWLRUROPIOMRQEIIYHP8MPHNLVYOIQ?EPAVAM>UND@MBQDGLIIONLNOD>HPK[PCBZdFH@TH]U]KXRAYLVHFUGGLXUIUKTHYPXNUXISL;DFSOLIIVEhNTMADJNQHLKEIOTDJP\MKIQR^M>MLUSBJYR=LLLYHNJFXSSMQJELFKCISTNDRIQIZKXNNCMWFETRLAHFN?DUJPIPPKQ[UFTVILZNRXML`KK]CJDSJGEYMPIVLOPTY?TUNRLIIETQFJOAQTN\PPQDPOL[RXSVTTGTTPKQYDCMJK>NKYUYGJRSJJWLTOLWISNZIDKLBNNON>RGUVSQYIO^@ALGTJORLKQISNHDN_O_IWOJR]NHRWMUJVCHYOCURKMSOKQPIbJPRERHIP9RPPNOKEENVOPTLK?HGLRJWTXBPSPLOSIOGW\4FQVMK>R]V=Z@EQOQXOITJ;NJJ@J\FYOKCIJgRBGP[M@GAZ3VOMGRFK5CSE[UPKFHRNRSNUEUFTNNTVS[PYUGNN>GOYRRSUVIgNHVNVXSWHRSLLZLNQNOcGCQN@YJOITFNNBUJSiAN[JQLLMPQ8RSSITGQIGNQBXO[IRNXVVMQXLXTRRGHPQLLKELPPOLFHVBUGQORIKL]TSRLHSJXVWNZhQZKJS^XJNQHEUaULWTPHTDIFOVLQZLWUTPMDKLQCCPOYUOEXIPLOXCRQZNHdDPX[@[RANQEKK[VR:YCJPGKDOHRSIJJ`GCQWMaIJR[\F[HQJOXOQJMLTKJEPG_i^OEMFOWOKFXRBSECAGMYQJMSQ[hHJ?AJGSJ>GfQX]NVFNSYVBXPaCVLdIONSHZOCWZPHILKJPRLPKQUJPQTEIYPKKKPPSSFNWR@NRNIEXQUFFLMSJKJIJRN^K^MVSMFVHRCLIWS]KWDJPODLJQQKLT\]YI@XHQNE\UGENTUGNHYXNHIXEEGFJKK^XF[QNMHPROQfHFKZTLKKPSM[f^PBBNOYIET^OR@OUQROKOTNORMPP:@SOFNVIRMSMJMQISYNPIOP[QRPM]HGNOGRIMGPQFNPKXLI`GPODQQNUTN]JS\MZWRPVLGVX[>SSRSPJG[FCPSKGPRMPMRN[OLLMMPcK[UODPBGM\SHISLONMEMHXUeDVEGKJPXREOYJ]CYMWOU[KDRMCdLLRERX?PWJDFPVSFOSOMRVHQRYLSWQSURMEVZDKWJRNMUPRGEJLUO@DUGAG\K@QKQYWSL<\\LGOLVBLO`MFURTHH=U@M_VKNPHPCSL[STN[OFIMLKKISSHHYROFPQVXEa>[MKQPDJNJVQ^M]INEKMKBAHRXDJJ[TIGCON\SXPQKZP[MRT;T=^XMLUTOJSTOWBJ]bRTKSMOEJROPVFOIBKLBXIJIYbSUU?SLPM\M?UFPS_JYQ[NBFS[PJ]GNVPRRBLST=ZCV@IETHRN[ENF\TJU?jANIQOMKBR[KPNTDMTL[ORUUJRNSNGMSKOVJIIOSUMBGRDGGKJKEIMBQSIB`YJIJKRRMKNHK`EJRGOIO\UMGONKZANWPQIM=W_CEMOISOL@HRRKMPKUXTG_BLUCTPUXXTRNVNOGFRV\PG@TIJMHOHWMQJSWNKOSGHVBU7JVPLM]SNTRC_QPNTRQM_E[FJQIFQHKF_LMLXO\^OSOISPRaMQTDKKbCG]PQUXRMMFIIKHHUS`TGKTFYE]PFNKSELQVOFRCMGKGOGFOPG\EJHDFKKZBUBTRTLCJZCQKFMRMQRSMZS\QQPXEPALUIJQOL\ZBXLBTLGPRCNNZMLLLONXVVJOC]LTBI\^ULCSGMNHJHPPLURJWLN?LVGZQKNSOPRQTQU`WUTSFPLKKKPG[DEXGQZTUOSQCS]??S[HSSGIPJLDIATDYVM\RBKEHL?NcSS=TFLTMRNRJQRJCWKE]R@FLLQLS@NaGLG@FRIDKPYKMLCIIZWJUHGJMI`NFKFXDgVLMIWPKKPIFMHUKEFMUBHNM=KBGKJQDOTDNPUkNPQEL=DUDQNBEJTLLCKLLHDHFWDHAPHNPIDROGOGQLMY@FPIiMVtTAMBIHOSRTOED[HYMNCUIW?PYXIIKQ[NMKQQPHHLHSOCAKFLDPQM@WETSOSKPEGHPXGGiPXSLHJWWKEMJPMKKAPMNKMTHOGBX[NAQMJJGRJ?SQBWVPVNMMMPESOOG>JMOHTFXTBXWSALKMVJYK>EMSJRJIPTUTNLIILHMUPEBEVTLNO`JRJNOF?SWNZ?KHQdN\MVKINOLZNMOIMDDKHLIRKQV\M\FPQKPIRJU@TELOS]LIFQLMJOJYSIMIWCKRUPFRPGETUDDT?GPNXPIG?>NXOLKKnGRCC_LUdPJKUSRMXR:CIP^PdMTLYQKMJHLPXVENMH[GJPIOPQLKMKPPVMKM[VOHUI=BPUIJ[WSDHIHV^IZXEMMJNVGSMJLWRYJQM>TEMBTLTBGIKJ\bK@UHT^OFL?HXXHDEPI\IMHUDCRGSLERSLMIJSITRZJH@VHXEUMLBIGLUOEKJCSIXVFSKIFRIGJQODQCBh`CJJWXL?PPNBOVCQ@HJTOOGIWMLQUTJRUQIO[QKDSPNIJI`HMNPRPQG[?PCQEBHQRQUAaTMIWQQILQKIUMSZHTJQ=N[HTUSULK?>MOJRWUG:OSRELN\TRVWRQMZPIMPFNQJPM_TXGONSUFVAOHQTIROQY]RRJRHSUVLHMOGQ@NCPJMMIJ\JPXLNYXMFPYXDLRLOUCIGHNMODEFH[POXGGNIXUMUPLNZN\QTPLMRHQTNCY?]NQIDNXTLEHSMICSPOEZUJUTZOSHJIHSQKNONWJNPJLMUNHCKZLYKPEL>QJOQRTDCOLNODGKRVYWNNDSFFJWDNcMI_[NSF\TOJJXQPPTV?_FENSNHUYGKTQXXG_LJOL@_KHGSOaNOQQENMOWUMNVSJGWRTX5ILPB[JTWLNEVFHBNZMQU\IYFDD:XYKMSZNMTHNLaQ[WKXPPINYPNSFLJSKQEEYHM^IGPGNOTIME]G]LPQMT[NENNKWMPAIOVZOYbQQN;LQGKBDPLNJDQEQGUYI=BPYDN[LJLOCPMJ]IHOQLVKTPMVD9\NZDQPJHPNQCOHIBQLYOEQPEZRJFTSNPaT>XIKRKOEROFCRWTNMSXGAHSOGRZJJKKMQHF?RZJQ?VCdQVZSMDLKIDOF[JTIPFQPUYY]RKLPLPSJLGJXHQ>IRMQFCUZKUHRVW@ItYGMZBQHMFISHMYIKDBPJURObPZLLEBNNOAHECJOQKIWLERJEHYHAMPDKPEJRT[QLJTUDJKULTPCAOSKQQPLGJNUSKECWMNG[SMKNGC=QZDPNNGZ@LOGJMLMGWW=MLOGHRPL@?VDTJSBSQW_GMLLJSSHTJ\NNT^PQ`VSNLNO]INTILRCO@ES@TVTVKTPBLXNLGKbDSBCFcDMJHQIWZOGJKJELOFI9VHPXVOQTMHQUNKHRSJJNLOSRIIVMX?OIWJOKPFQ]SLRRJJHROIMQXQYDEEMFHJEDZ]JCHCVIFFNLJVCRTKVUDQ>QAYAKCHGMIPOGQFKLFKI=iNWDfQLKVPQQQN4E\NPObWF>MLFBUMHLLTREAMMINPRPGJIG]BUFMFIZJB`M>LPIIOGNOFMMKNAMNOSDEQRDHLFIEJPLH[`KI]JQLGQSNAC`JLIMSVPSEUVMFHNSJFHGbSOfHREGHVIMQKHKNZZUE]DTI;WEDKV>QLUEARGQVROFEMNIOXKTCVRVJUO<\ZDTd[bQNVO\?KJULOSOLGX]`ALCIFQNJHM[ULTRSOQ>LMROREFLEBMRFLCGk?QIMJVL_^HSN>MYN[YPDKLK@GNY@IIRR@?UQKQ_QLHOCPNHRZQeNUFM^aSOQQHVPGGRLOEYRMTXMQNMdMMbBJOVR3G>YZRIEISBNKHESTIVLIKSJcH`UHJFG[KMJGIHSVMHLXJDYLJXYXNGITGMOOSUIOHXM?WIRNNEMMKH:VQMMLHOQXIJMVVQ[TBUGS=PJGFKUJTRKPJG[R>FZ@OGTE\UJCRXROOOGDYK`Bo^JAZQVSMMMbNMTSQQVQN=FRMUMEZNH[fLWORTPNSLXPXNGTNIS`MYRIHMMS\BUNVSJJKJKTZOFLBHOMHNRYMLUTRRNBUV`QVTER?MLMHOHXbB8NFEJJQMBDPHLL_RJSHNT[SNDOCWSJSVLDO[TIHDJdgOSFTHLVWQR?OLET@_ZHXPQLSLTHLUKJQKJOSQROMPTcLPSE@FMRBGLSPPV]JOKNRKQHF@MTFIHA7CCKBOFZJRGPFR[EBOONeN\SLG`KABCHJPGGRHVYTOEEAI^Z>CKYYOXKGORDDAKKMKKICRRJPJXI@@ELNAOUNWTKT5G\DVMRQKTH@EZJLNBPPJDMRPSMBH^XeVNOEQMQRHGQbGSGRCgJCJQUMNYQPHfQNRHEOMAO@KXXKXUQEEYP@KBKFOMLEK=NXQKVGSETYSMQOHO]XNJ^KPeQRDYLBQHM@MOMVW^QRUJISKODRLH7QDLYPR_KTGINJ=I\ROGCXUMUMQJ[TWBR?TNOWMECVERIMKHTY?BFKFGQQONVJPXXRGHUEKJNVUKRQYPISjPKEHIO>FTTJSZKGOBTTLJKR_MLWGRPSYI\CNONLHNPLRMZ^YZVBU7E`KMTUBTQEQDLDMXQZPXULK=ES[NI?>=QUMG[LSSNMOLQK@UQFLNCJXOV\MBJMbHHFIQ]SXONMSWSOMUOTI^STHQOPXbTQCMJERIJJRMRPPWdlSNFIGILHEGFQMWJJS[SANQIMRK\GYVPR?[PTFLFP[NNKQJSALXKRGKVAULWLYRTTc[=OHQH\RcTJCG^UNDRSK^CRPSRM]P\C]LNRAYqOTKONUMcbYcYVFIYOTHMV`T[BTTSaOJDMHGCGLRGFONGGCPSEAOIONTISAS=hELPR\G_QIOZQPFINJDNRPLJKOWJWEKGZGKVEWPQDOMSQGMHNJOR@[VS=RNLJAVO?@FQGCQELRGRN?WVNXf4T5FB\DPM@L^NFKNPIQWR_QY]SS[:VZNHLOLOOGKTSHENOTPEMLXM^_SPL[O;HHNINPPKHLIIMFXIHLN8L9_PHDEUCSWIMOZKHKULNKPNFG^RKdJDGGFBWNRKQFNMJIFL[FR=LGJbZRVVEXEIGEVOLXQFHbaPTLMKRD]KSCKVPJRMMgpTHJFYSACKZfMBQGTJMGXZAUFIKSKCCV\kQVS_EAQDCJP[WEEQWYFDIEPOTMMRYQGIHWVV@EMlJMZNQ\GUPOU]^^M_UAQCNBOGXQESNG\OfUOIIHLKLHA[5NmBPGJFOLROXNR`QAJLIWVT^^JISWPPMOR>VTH@IOEEEDM;J=ZKOQJLPUHPITQ=cZU]OMNBJE?VUWJBVIPLVQKMDHQORU[MUNPLRINNVRFZMFYHIVMUDJQRQEZ^QDFcTTGTURVQ=PIMOHLM=VGRKUZLMFKLRRZHQELR;MH?SQ_RSFQ;LZZBPNDQLHLVHC_RTUHYCSS@TPT_JOXZaHFRMTGJHSL6HT;H_`HMS?JQSTKPLPVIa:QGScGT=;GHMSUOHMF?PMFUBUXYOGTMUGE\UONYONHSKKKLLSV[XPMMHM`OUI[PTKP^JOJLJHFCTIZJSQ]OLS`BISTSWUSZMFVIOVQWCQJKK^HRJPIBQUIN\QVROPBPVBLPGGb@YVPI]GKgLEVUbZCQLUVcLQUOJHVh_WKY=KLQHSMOQ@QVHJRSNPOW[PEWYNKRWTZRbUkZUUP@GQP\ZSSLK`TILWLQTODIHVKN4RWZQ]RNJJOdWG^ISRQZJKHNTRDOLEFIGWOQIPJJRCI`QQSSOII[PKQFCKQEHRGOPAENDXCHTYE^OIMBNIGQ@LF>VSJ]TQIBMJ@H^IIGFQWLKLDULKBScOLEZdCYYM[QITIRVVBHJWWRWMJJHNWb;\@RWPOIJWOBSV`M?PGZFVJGFNUESB`]=IOW@BQOKOKQOJXNWR?L[PPUGHQNPEFSIGGIELXKFVJMWURJILP?YaJEOPYHJHOKHHPKJBYOJHKLGULTVH_BBFBUPI@RNTK_LNBZKMGYGE\]ODMMCcJNTK^KKOMAOOW;LLLHG[MDNHNBUOeHOMVVJPQbVGHS>fHDNRFBMO\RMDUE^RNNWGGITBTGHLOPHHV[?>ORORPNJOHU]NQK@DXSNfMKNFSIQJNMRKIFMNQMYKYOOIEQMJRNS?KBK[KPQJRMIDFMVVYQEHA_RFMKEWDQONPLKUMJBQLPNMUQYXRMM]XQSPPOkTOdIGaFGNJMOSHSNMTNCHYJHOUKLXJJPYOROXIMCXNISPLLSTQNRKJIIWQIWHQI\WJKNOHNPYOQCHJINRQLBUMIELNBNIMVHHINGI>NBLVNLWN?HTPYKMIFFJQTHDJRFGOCNECIOTLbMRQONFIMNMKQINHRHHNM_NEVNFP[M?ARVUDRSOTL[GaVJQWKIKKOPVF\OX=TFRCUIIOEOHTCAPLeGU[LCM_PNRDEHPIQWOJNVS=]BJ?EWIB\?GDTJTCFRJYAaEOWO[OBQBJPJJOHDSHXJCNKQCNIDMQIL]K:Kf]II\DUHKM@dLKLHUW[CHZ9`^MJMMDPIWMH@ENYAHYIFOHIVSHCOBUVDMKNIDI@QRIMGUOUNYHJS=PXTGURKZ>@V\OPCIT_@`KMU:YTLUKTRNPAMRKOCLOB?PJ\KW@OYDPNASTN@LWOMKKJPNLaNEINMLNKJSLOTHOWFXDRKLKHJLZDFXQ@XKLHBIFPIC[VPLOMVcURKJLOQbMPO\PFJRQUGCFQWXKHCVOZOFLBKUJKOJXDJO@JWCRQVGIYHJGMHQJNNVFWFWRT?QKRG[BI@PK:MKF?EFP_aWLXJKJNVTD]IO_I@VLNQMGbEPFAOEDKgQPBFLMN\ZEwRUFLED\W:SKJNIIMHFTSRQQDHLLTWGUGFMlQ\DVSFNEPNTYGOCUOVJdKNWFG>QLOGHQNEPaQPPKDPPUODY\INIJaT^JSSUNUUOQDHN?_YG[ZLGLXHIEQQY@XTNPPX;GBSPIL?NSXLERcD?_HLVBDQITFXJPMZEK[RHD\R\@KTALHORKMWSKGCTQGRPJRLK@QJTQLKTLQGWUEOIOIGRC[JB@@NbEDbFKLQ?NML_CLRSODNPFUJILSBIJDSEFGQDOJLNMENIU??MHFOPCN^BG~MZbEUBXRNIWcDHSHLB\NOCYZVOLCOCPSaJPFOHfHHLNE>NXQJJOL>N=MRYIZGIOMDGMBTKQ[LWDERU^JADDM=YUKPF:LCGPOPZ_E@@MRXCO[QKNQLRASGOALHUJETNTZRUOATGSH?DZJNO`N]MBLXJ[]MRLP[QQRMRPaHJIOTFMOJPNaYZOTLRXQSXUR\KCJJLEQJDVOJJGNMMFRJF;ZMMPBMTXHaF]NV=LQLIUOT\QFNMIHMNTLG@IIUJCSCAJGRVHANbRYKKACV=BMMNMRJUFHGCWTSCNKMJHDCCHEWRPKFCJRIMJMLT>ILOIVbNNRJJMLNQPLNOJPKPJXRYRLPFUNIOFTLSTXNLTTN[UHYELJRLAWYDOCIJSODOQKITQDCGK]H\KRIGJLPVQJVIJLHVFQNENURPKNEWFFULRQKIXGEEIJNROMHSLPFYWO\RWUKQHOKNPaTKEFNQJKIRcXEIUG[IZKOJRLJLJJNOQXBTW^^TF@\WNG]FLHKWJXZN\WSK^ONQWPGXPYSM[MMRFFWHTJOJEHWOTJHJUHLSQPWOFKiOSWFQMWGMQQRFTNU[WCDRVMRKEJOSSRQFRVINY_TSXJJR[QTLDS\>VOUKTHNGP]USOKHUVIQ?BMPMHRISVGBFQRSWMISIX?EPdHNQF[KSESZKHJEXVQJK[T]TJPNVGPGXP?IVNIHPGMLHNNIKMOARNIBMRATS[KXSJMQOJSxLYHLJOKCCOLPKPFHKG\LHEJMZKXGWY?^RQFTIHOZTHTKHQN_RS]L\TMJYMJUMPISUHbJPS0AHSTNOLFTU@ICQXBIIQLNSGGMlIPGQLJTJTKMFJLOGJQLDVPEQJJEMOIPPJUOIMSMOIUD]IKbNRCLO^IMWPEPMNKLJJSS\QITJQIBDSWPK[OT[OVLNJPNWKNOOINFTJLTHQTTNRRUNPLWPLWDMKGRTQIVMGSJMO?GMNQNO\LNSUJVDSNZKGNSNMTDKEPIPRQJFUJJbTLCRYDHLJCQPSRNPTJI`PF5W=JXDLNDOQNELbfNWGUWPMKM[DURLLDOUXTGMTRJTNPYQPPLGTKNQDRGPOSXS]PDSNGYTMZ[VZQPMJK=OJZFRQLMIQYZMRUNNKOXTNKLJPAPFFNPNGSLMOQVMMKIFOHDQSQWPMO^RWDUOHPKNWNNSRLJTVHFTdTLWOQNHTNHS[POPOKL[JLKLIEZ\MFPORKSOCMNNGKJPSHUVMSII?XUVYGULKEVT`[LFEU_@JPM@VROSHPTNHFLhLfPNOJPHCMGSXKGTWSJbNDKHQXKKHF\OGPDM]NZFPQERU_[ELURNJJLJQXSOMFPKGPGFINORNJEMRI^KIL`H]KJFMKKJPPBNCKWTP@MBQRKXAXNN=]UMWVJZMQTMXJKOHODRCHPR?HODMMDIQPPPW@LSMVPEQJSMKKJUBZ@M=PIYFPYRSRLGLJQMH]H_G4YG[`OQNRUXEEFZWUMFMDWGGQ\N[VTKYGILFMKQKIXf;HMEMDHJ{LONOPDNVNLEAKWBRBPKMEMVWUGOUJKMT^MWI\LLFO\NWJUY^EMYVEM;HORYHR^CKUOYGPVMMYJGUI9USHUNJIPSFLWQ;YPGIKURYNGJLHGQ_LHJO^L[BM8]WcIGT\ETSNOPJEHUL?KOG^GQJTYHLHOYUJBcPEHJS_BSJQLCWMBOH9TISKEPPFIDQJZ`>MFTURHUKKNEYRRYGRWMM[FOPPGKTJPEcDIQGLUVUULEONHVOY[_SIEUDQ;]MK@KMIPOOGIOI[KU\MFD?OKGChOSSaD^OSTMLLJMCWOGO=HGIPOJXDVJEKPUMLIGPRMJDOBUFWNGUIH?QQQKCWTCWQX=IOIGQKLOWDiPJQMRCOQKU`8F?KMHNOaLUOGSbF>DTKKJJRNQO[G^FKXURB[NcSDOYNF[KJAICZMSI_=[[NAQSGQIJVJLBRCPNC_UOLSRSPWJQTXERVNN>QUI@PJKBKYUEQOGFMLXTXPKC^IBVTJKMQIAGPJXMSTMVURK[NUTT\UQULJPGKMMLYISONNQOMNAM?KQCHJRQPJFGMQJEALKBXYGRRZbPN]SMNLMKNWTVD\QaNFVEFZMPTLSTOBCTOD^EIZNHTDH?QGKKPNOAPO=NVCKSIU>N@ON9VWQLH[GJOOMKCEOIXEJFJG\MKX^PAPXJIbQRVKSLZKSHESWARMSGXUMYNTKHgPRUGDKH5TUHHLNVMMORH>JJPQ;MKYJFKiCTTIJTSEOXRUQI]DRLQEMRJ]LNgLTRdDNHUWTKO>LMEPFLVMNPTNJT^MFVPNEJMLSGMJILPLWCTRPVOQTJPPVU@IOGDMMNQQFMKJI\TUV\ZNYRSKNL^WJQQNCIOOCQPAXTUQMXONQT@CNINIKNINM?YJDOCTAIOJPRRIDNOIQ[XFEH\FDOLNET`JSNNRIHPHMHHNMBOUSMKW?WUQ\OJNPEOAGQGQSDKMQ[S;TPHITFPGPJSQQNFSMXHOVLGJaS?NBRHXQFFGJPD^UQcSWGLLNRSQP]EAO_RQUIQJH\;\WYOSF[CKSPNEJ[dTVeTQH`LWRL?DOILRIS8HEJEKUSYNEINNMVO`IEDYMH]WDSJGEJfNLpMOMIKLFVV_@KKSGJA[TUKKLnLMSKRQYXJLLlQUXS[SNN>FVHPIMR^AC[GUTTKUIPMKONZPHaAVM^LYKPcQ9ZPQf^JU^SLQVOGDNGOMKMOTF^9IUKREL7ICIWOBFMXPNMNVJQ?UYCQVNJdWSF=HEMSUPHZGLMIQLPDGQOGKPQMDKQTNMRTDH]OXGVUSFOFLNMTOESDMXQYBNNDTHNOKFIJPSNPVQCPLTPWGI^PRRLLPNX\MQKCSFMNQXHPU^nBHQ=S[QXWKWIQKIA9MVMLOPBVRGWRBOOGUCIUVRPOXCNSKPRP[VGOFJGLIRILZ]SbPBVMFTIIELMM[LNOERQQPYINZHKA[GAKOGYKIZLNPQDVIQBSFNVJITDUVHBILO^MBNHW]QUZOFKNOOFCK[NNTIOLRIQESROSVHPKEUEBGMYYELRNTFYQaMJOEMUMRKHAENSJNLPENSXMVKLTUMCKQPOVSWJ@GNOMNGRZRWTA;GZNVCGMECDSJL\YGWGYRYRNJSGMSTeH_DFYVHFOPNRWMQVGTXEJOOKFBIY]@SKIMQIFXOZMLMPQVGYRGFFGLGCNBDWSJOJLUUTMQQ[GURER`_T\MKRKSNNQkQGLKIU?GN`QJNSDRCXS[[OPhQIMMHQI\QJPF\_LJXFMOHJI_LEYJEFHO9FCOKPQZTMPc`RN[LU?RJ@BEFRGYHJLJJOBI^QLBDOCNNLgFVSRTKOUFARJbKJSX@SVHRTRHBM9E>IHRUemBG;UNDRTgUMEGKRLFFWINI[FUKIILOPC`S`[L@?TUPSMDT?OPSJBKODIREUXLPRULIMPKHNSIOONHFQTH`ZQ^PFL\OSYVKBONPMaKRYQCUIEqEPRCMCBRNNUBLNXDFSKK=N`GJLXNK[JFAYANYLOCgPKQKYFNMIRKVTFQPU\cAFOOAR\XMMUSU=JIMIGJOGYSHRVDLQVDNKKdIGIQ3SNgXT[KRXQ@MZKDCFQ^LJIGRSTXYSLESULU=LSdmOPPHBMlAAI?XdNQUPWUQGHS\cISIPTNCBTPCYDOOUKQEKL[OTMHIJOUUIVNKFDRiMSR:CT`FEDPJXOUFPOODNVJJETPOQPCRYeUHLERMMGGR@NW@GKJI[IWRPFJURLKYBNKIPH>KNV]MNYOELUTQJNKTSMrZGBJQI^IQIJPQNSPG@@PQMTSQPFSTOVOHPbXO9NXLYOOH@G\TOZWUKJF]RG_^[HJLLGEJOONJYKLFGEEFIRTJMTKQLNPPMORSIITKRICQWM@GFMTKTQMMRX[NNUIGFQhWPVJJGIJPJRS\N`IPZJHmKcIF?YL>MNTONUT\GGIA_LZbVRNU[NWTDaKCC@@JQHNPKC;JEFHJLX\KBSZ_HZFD^R2RGVZLDFMOLIZSKHIRPTaAjFLKUBL@WGT^FVEYWUWPOKBNKU\DWfQ\MfPG>LVOeB[JDRIMQ\PZNIS;N@FFKCDYOGYCLhcHOOLKId\V>JGIBJY_ABWAEaHVJIBX8PSISI;IBZEBHUUIHMQHIL@TNHQc@aPMOOJG_KcQE>WVTXNTFXMFL]Q>MPVNKMQ7XIMHGJNPR_II9SPQDEPMOZILSIUFUSTONCL@MRNHLPJHNLAHU9JMEOH`FTFBJNMQTBMYOKQGEAQSVMURIPYSNP`JRPWKGSKQDSPGMVRNWAV\ZH@G^KMZEdQMIHQSYIORUILYKPKPPUIMUELCPPDQBNPIGMCC=TYGRWWYJKJNCKFS:OL^MJEDKKMAO>>JULaZKRcBSPIJENIKHRVNSMOGMJNKVWMGOKPSTELILDEVPJLWGJQKWRQUQVPMOSPLKNeNESWREQ?OOK[FCH\MGTOTHRJDQMITORQKTJR?MHQAEANXPOGMYKD?SZEEINOAYJMJBLXOPQMXPGNQhJ@M]TJQ;QOFR_JXMHMLJMKLTQ?LGHVLFNX=FK?@FKDDC[iCGFVXBGJKYQbaaQEVAJPIIUeAPSVUCRSKBGcFZCPCVTTCCdO]NK5TCQCCMQIVHOLWMR[KUNAIELLVYCE?IKLLMEBFEKUVGLZVXN[IQSNRPLLHSORSZSEIIPSAQaQHIRHSGQMGKMXBELRFRG]NZNOI_KRDJFVRJGHNGTTNHOHMHDLPLMRDJFGJFEJQHQ[JOULOCQZLGFOF>GBLTKKI]ECEPQPKJNISIOIHOLKIVGPLR?SSNUOMKRXRJDOIFLaKGFNAPMULFOWINLYO8OMMJGHKLQPOGIIRNIUHONML@LQZNXGKCPDF^GDUUHEGFPZKRSTBOIF>JV_FN\FRJ^JAKIPKKIRKKMULOOLPQPLI=\PTJBQOERJDKTTDIQMTSSIONMUOMLLXONOLVWOCEMWLVcQIJVXQKIRSGKCKOQ^IQZDPO[HOPHBPN\DFSFNJSQPGSR]NJSEPUGXIGVNVQOXDGMMHRFRMHTDLJQMPYkPFHJKIOCFTNGMDTOGWVH`IFEMILOEF^RNNNJFLXKMOLQMCF\JINRXIVQFJFBSUKUDOJVDCETNNOJPCLVOFIWYVRTDT>bPPRHJKSKUS_\DHMHP1RMV\VOYICLQIRATHJK9^UWJOIWRWIIRH>?J=TJXPGDEENPRkDQCOJTOPUBEIGFCU\MPB]HUCVBNSRAFUFQHYHSQOpTQMNWKRKGNRVMVRYJDD@WDS[PYGIRSLMKBVH^QVHUKYKJN`F9KKVRK@SUOITCVR[GSP4NQL>LDQM[LQCNNAYYLE]HJXMMcEP@HUW\fKLNQF\O]_@G]TSZYN?VTMK[RP?MPIWc9ROB[U;UMOS]NUE@NYHOECUh9CH^HEGMIYUTNRULSWKMQIXVUUIFJKLUHULPJgPHLRLMPPAUSLMEOCPA@PINPOTBGWDNVOGA_UEOHJLVSPM]SKHFPPPRSOILOPJQWMSMKUG?ET^ISNQGOVQXBSHLPMcSSJRGNOXPDHNAGK[PI?VGJQX\JJnJKWVOTKOTKXZMMJTRRYEGMUMTGOQNMLKQTOONILWGVGQPG@TNVJGLIUMN]JR[T[LMGMLZXITOMQDHIIJFW]BOCEMKNUMQUdO]SPIEPPMJMYEG9LSQGGLSLQSERJPAX[OKMNKOKNPNPS\aQEOB\SNQNRRAYLTCKIHSP[QSWEL_CTN[KUIALKJIUGY=MPKWSJMTTZHRHQWNITARHPUMfHPNNJHPTKQ[FTP@NRKOYRRRVXIQGZZKHMCMPZ^JKTF;FMGMIY[PGSFFTFKKJPFKS\PQE^JFWBFDM`XSQMPKMNXLNRJIPRJPUSCVJHRa;NUKCL\YIITCGHIIRHg@LAXUSPP[CSRKEQBMIMOVPBOXXFK@FSQLAOHQ\@EMKI\DQNMYFKTYHJLSCQPJKTFUPENUNVPEPIRcBCORIJRdNLNX`=EIXMKHL_UFMKK:L\;ZQKOJZ_QSODP\NIBMdbgZEEcWKIcKLT@XBM^RQNRHKLOc[OGPWXYHESTIT]XZSKHPX`^JTGYUHW_FRTNZ?FNQDDV\QPNGSWKHVY[I]RCMCQ@L@TGULF@FEITSQAEMRPULTNRSWVIZFQRFBPPTIBKHL]JVRPHND_GRPSNMEILFYTPSPS]RONTRDEGVLFPUX[=JLNREFIQ=R\C\RH@G[OOUESSKCGUbBUJTHVSBWG9RIWAFDF^a=\RXUPFJQKAOJVXJY:QU=FQSVUKUXF[MLFSK?PN;TV\IWPDJJNRKOPHLKKKFFQUXHRPPZeIIbITFGEXHKQNRTS@IJHKHXQRcJUTKHKh_EPLQPUDUM^KIMW`EXYBVUNR[?LJPLBENGIULNOYRQ?]MUC9QPF_LLJGAOCQOQE\QG_LS_LaSNXR@NKGMUWKGCKMSD>T=ZZIWTYILHONUEQQPKJQEUJMNFHHIPGGPMPMGFL^GOFT_YTFIKQSMLXLWRQTDT;T^LEF\X\[\SCOWKYaSEKFPMFTNRUQZUEYPIG[QEjJALdLGWBNMFOSRXMTXHDFNRPGBD_?]SKUbZUMA]NN_UCOSA@?EUXN`SWFXHQSYeYDLFS\UKIL\GWPNILUZL[LMCLTFHS[XXLMfHOUNOSXVVAd_Uc=[]IHQKNPYJXNKGKHK:ILGGVYqINUcHIAKKSTcPMWLDW;C]SHTSTXPLOTOXKLDMVWiROFBTR>L=MMeNFRSSLQMKNcGOEAVTIIQXCRIBMKWGQLIS=HPTGOOM^PSVRJGTaNJPSMXOBL[QPIK@FDEPJLRGILLV9QTPOPOMNEGUNWIMNXUNRTZRRWBY^NeVCCPMJLFPF^H\CEXROJJKH`OOT[JANUIMORKKAMKGXKLS;WQWHBJIJGNPN;Z]IOGMY^FTLYWMBUOETOLGOOBNOERFCELEHJLDSQB\RFKVNQEJIUSCMJPOHITRWPILVSILWOUBDIV\JJHI?IINONPNHhYGVUFCEQPPRVOTWLNMFJUUSRMVXGDILYVMGLPFYQDJV>XEL@LKO`OOVBLKERLOPQUOOL]HLnNLULFRIQVBMJSKRMQHLLSNHGTBWQKQSRTVOUNIQXGWRPWRSMILCPRYQNPDKHWFPGLXRVKIKUXJNHEVU@WBRXMPS>LLQONRLgPaSSFaOALGASWNNDJUGIZMIRAO[YKRSSO?CTSOJVG`?]QDHMDPGRNIIVPSYVDFJVCGL[DH;MPPPSVQHNJhKPGXQ?I[LJQHKO=SNCNHOHmRGYVIMUWWXDKFAYLpFILWRPM4JQUYWHDNF:FLQeX@SIUQJMO^W\cUXKMIOBCROMGQMODFO]RM@gCQ_VV@FKMHVJYOS=OLKSMS\UILL[NJNMR9FOXUNYJZY>S5EP[\KFPTYM^NOD\HFLGF_?`KF?iSGJPMIC[HHQRJUCVDKJIAG_OMONLGXPTPJGNNEUFXJQGVMOeDWPHHOMNMUDXPPT^PPKIBLKHSO[AJWKLMNKLRMZXYGFDVUZbKJFHMbK9LELDCRJ`HYARXLDKPUPMJNgOPQGNDMLGVWDVJJOIFVRLVAMNOJTMJDILFNWUJIOPSUHTPGVM_NQJUJNKAQTENXNJJNKZ;UEOWRLJ[MGBJDMJMOVGRKHPNCUMPONRCM`RUQXQOEOTQASKBJWKRXFHN^DEHKVFLP/XMaOUEOERFQH?TCIKDJFFfNKOLTKNM^QCZQSRJMILLO@PG?IUMNFQUBWNUSOLNLLBSK2ATJZXIJLDVUOF^KGHJMGQMMNOMQRCUHJQJJLKSN@8XJHDPNEHJNR^HSIMGIKRONFAKRKQRULPA:OMHNMRXTNNOJSRKKUGTMMMVKMNAONNJ?>SMSTKNSEKZUFPIV9KLSLLQS[iIJDEQ:GGOWPWRSPFSVFWRXXCQVREQL[DNCBHWODECQFIUKWKJ\AJOOW[NSVMKKROJ@m[JUCGPUDNUIJFPPOHE>MNHOUHK@GMIFTKEPSLOSSKATMWKSUSADLRUHAJ=JBNFMPK@PKULQHRGREXNMTSF\NIHQDIKQNKLTKBOEPXMDP>MPFAMRPNPY@]GMF\@JPANLVNSGK[NMFATNQQKIOc]]BLN]MDTXLUKBNUSOLIPJHRULENZFQMKJJ\EEKN`YQS]JMQ=MIKI?OHPIW\IINTEM]CFICHNLF?CQJ]HR`HFM^VPPSEALOJLHXZ\WKLALFJNTJM[STHCOPKJSTQZQGLQPBJLK^VUKZAGKQMWTKKGPROSP_PUSVDGRZMJYIBQRLWOJmOCVR]MLPQJOBRMGJ[ENSMVMLFFFNA9CSLQFG@VJGSHJWPDCb:Q?\[RNGPHFMHEVYONTDDMnENNQI=XMOWNMBQFYGISWNTKOQ;MKDSLVNWSIZW]VHWL\A9MFGJHHPfQ[ITFMSLVREFMQMT]K]EMGAkKOGLKAPQJGOP@DTGIHN^WSLJLJ\V:HRZHRBSYVJGMWITNJHSJ\IfMEZMDLEXLLCMPPIYHVEOIAbOQHKPOSC?VMPT\SFKGAOLMLaBQPQMJKGG]GJJIIJYfGG9CONHZGbNKZPJ>XFPJOKBaMJPLeRHHNNYYWSRSN`BMPPEKUhILCHLYF9RRLNXKOPNERPQJEJPRZNBKJBPQKTOPJIOIBOSNZKVMLRQQLBQRCJMIQLULSXGMZ:LTT[NPPJQQScLCNSAJJFAIPS_ONUFRTPARQNGWHIVXFSNEATW[QKPPJLLHQJUIBBVOO[NHLPTJUTGPLIWS?7JKJLQ[IKJZc?PVRIRPB]EUROCQ_QXUTUVRUM\EYI^NNEdETLJKZPTCGMGDNQI^WOWSMLPHHUEMLVRIQJMUREELHBRFRRGR]HOKOMXTMU\UJZYCNDFSPO\QD]ITQLR9IFKW`\HUMNMB`HXGO@VGGTLOBKHKACbKOEVUHKUPIUWEC]PLHSDLNQFUTDEGWRMR]LGXNRPN>Q?THYVKIWbEFTQEL[L?PEQDOPGR?PGHQ^UGKP?;N@YFDSJOQf]SIGWMVcDOSMPCCI\HOLFVSNRHQS_ELXVHHEFS~_WGYVDMTUGTTFIYP3_AV\CUI@LRMGRMIAGJOFIQMFSiK@HNRGJKYJNIPIPERKCSONRWVNRJNPdXOEYSTPTCV6TEoTSNMY^cFUaTSLUKdAWJEOKLOHRMXZRCBWGFWMOJVGOLLc]RLJ^\UOPGOTJTFOLSHLRNJK^IKIJHPLcKH]EFOKFVR?HHO^N^SLMEMRUHNOLKLMFNOJCIKJWNDOHJgCRSWKILVMSVJTMQGAKUPKPLdSQRLYOGSTRIHSPUN@BXiNMUPSaDQSO]UNIDFFYNJR?JPCTPHNUHP@MMKP^ONMHXJEJFLXHNKTNG[DKTK@PLMKIDIZMRMXKENNXJMFMJME@JIMSMPZX@HX^DUOLaUGFP]BQB]JIAJTMRFHaGJ@MOPOFU@SIKVKKJNATOFFNCNKGFKNUIIJQZWMNIDKSOKGKFPGEICLLLIQMZ[BTZHXFQBNBNNNMHRL;PNRSIZCPQQROJMLHDWJQMAOTKLULRWUDUJVONIOIMWXAULLA\UPNSM^OPNKEVQILU\L`NKXLDWHXXM>?FNIVuKbFXCJQPGTCQNTKKKT>VUTD]P=GPAURITGPLNRYQ^SEL=DEJLHSMGQUGSJHCNOMEJGJSAGSDOUDNGBNL[DFKKIQJEON\GZHJVPPMO\NSMGNHSUBSPORTQZISSGSOMJ?XH9REOPLKHRTELMI[OIC\F]POFKSIIINMKSQTLLLXJWBTHE?KPZL`LHPH[UM@MEPRIES@DGXGRDFR`IEROGMPEZBQFRLOOAQNUMOHERSHPWPCFOLJSKKUKLPVPNRICUOKNGSXIUOTW?BVHGMGPLHMI;VBHTMPCKIWIMQQLNTaLMO5FRMKPLLMGRKRJV[GFKKTVKFPMWRHGKHTMFP/MWTLaEaFTXQGNDDTGXRFJ?OVWPXM]UKLVHQLTWMGJMJNFEgMDPTYMHEDKF[ULPLPORKRGPQHJUYEDFHQNOXAQHJJVCD]JOMDJEBMPQSBSFJXNPXOLLJYEdaP^MEKXKRQWXC[?MSMPFgYFKUUJIGJGPK_K@DWQONEJRTDW>BAHOIHX5TNNDOdJJ[IGW=ZKIRM\UWUvCUVbMRRFKTKRSVTJMH>RX^OE[RQWSMSTTTIO]RLEPUMZWQUPKRHP=ZE^7^MSYKBTSDJPMIPOI`IPQqGOELRAZSYQSRXTAMJMTbYceY:LNVOTMRNVOOKJUWMMWPO^KDFOeNGNcRgMhNOIRAXWHXEHOAVWRTIKNMMTKZRSBcFQQQJ:M@QJWOKPTKIEHcSXNVSWFXCEJIUWER>JDBKGQcVNLLHPM;JFIJ=\DT;MPNOSHEPJ[.HSKPFXJf=JGGEDcKS9\OM@C=HT`VLJFJIERBMCsWWDQpKMHEc\UEPODLDBNLM?FXQMGNKJKTVAY[NDOBXWBG:AfEI?eERHQFCMO9WLUVPCVUPEIPIhZVHlJPRCCZDDGQBJCjZXSTHAIUPKOGDYOP9FYKq[IPNJCE`@ZEcWH8HNLHJ>YTQP\EVFT9RKc_XPRQIBGBKFR9AESa?V>TODGPdPH`MZMVQG8J[KUWPMJRUVKROIPNPEIQZY@K_S@JULOYMJ?LKUcHK[DJKNWIKMSCCDOKQLTFAFQAPGV[PAH=H?@CJRQ_RHONRO\DMIRTBQBeSGEANRDE1F5EBZCG[CbDUHKBZCNDP=LGJI4O@VaPXNVX^gV;EROMGM_LTLNFPF[V[KCEM\O@KMUKLMGUBAPWcJKUYLl]WKSF@Q;NW\WBPTIRhWHM]UQHNK?VGRNQLZINXAMXKGN>XKIRIMH?JGTEBKVIaKQULECW?JP[KWQOFGLC\UJZDLARa?YJRJKRDYWOQYRD6VLHHPLTXLS^RDJCSOWNPKUUPGAKMJHETJT]KOKPRKL?ZMNIX[N[NHPRLHFLKNVTZRVKRLJJQLRAJTLMEMILKIJTB^JR>LJNRMISHJKN?E?GODHREMG>KNCHEUA>NTSNLIVLAMVIJLLHRaGaEMLLMMLQRJTNGTESBHTIHU\BN=PIMLP`K?DLHRLQEQPO[TSOTFTGQUPXJITSIVRIYLNTVKQGULXEEGQSMWKR[DMNE6HJZ>GSMQJ[MPQRKGCXQXGO[HSJ_@PLMRTCFXTNKGEOHPAFWM@UPINMPJ?ZL[HNWNOOGCCMMXPPJVNGGOWRUWKZZJQVLLEGn)SSCKN_NRP/GF?\LNUFFS:X_NOTcNOShCQ?H=?Te^HUJL,Qq8EcN=XJCRQ2\;9P;b5T9ERJ@KUVfC^ZNGEfMPP7?>e_YNPcWFLGLLK8^JS`\^T\lM.IgfRQfX_IdYH3AW[mjLCrcCKA`LTWF3HGVOAG>YBUJNfTGfe_HC6DQMRUIbyPa>:FUiKS0KOQXC\84+Ud/QR`MARFhOI:9hR58`h8eS1JUKW_Y0N8P>LXIiRMGLDKJKKTFQMWGLMMMWQRUMWEaCLVJPURXPTLIYGOMYNUJFPIZ?Z[cUVTOQDSRKQJSMNVLLITPXDOMNHLJSKRbEN[XGWMMXNKNMSHPIHCPJDMHNSYSLYFXUQGKBGVWUPSMGKZ^NNVLNHQHHOPHJJ`>QQQLOZ?W`VH_PCY^PGLKNQNQIRaWeWLDHRMOOHJMP\\MKJIIGSTLUFGO]ESNMFXRNQBJAM^QYS@IZ`V?YPYI^NWGVOUSSQUQ=ZY\LJAQNKJJHMYRFPYPUOKIH\[OQLMPNTIYKIMCNK\ISUFOUOQVRHDODK@PETGMUIEGMRKHOQWBWQSXRTDDSEUGP>>ODLKIRcIFcFDI_OHMIMWM@OUXNBUBbMNBG?ZLZSEXANWLB=HKHSUSPCA]PXZJQJDOKMMSWXDLZYBAN\FSMC>RNSRCZ>ICVML=RR]CARL;NXII^VKLJHNW?hOFPhMLFMEZD[9ZTOSS_ROT]ZRXJEJEF;QTOJSNLLCYOXV^KQXOIN>HGUKTPQPSY@FBKIPERID\CLQHJSPLSPLMC@LITFCMSQZMJ_LHMJBFZDCOEFNFVPZIRLMOZFMFI?EP=OGQGWTOZ;PTRIPSHLEGMPPSIC]T;HKEN7JNRJ^>lIPCLNXQQQCJHKAMHF^KHEOKEAD]BQOYCOMQL\G?NN;MCQEKPGLQL;MYTMVBEZRBNZQ?XWLZBXJURPKPRJUJQSPTI@XSSHKPDR=KMFNBRRMMKRMUIMJKPMRUVaCQVDCOXLVPXSJEQTAgMXPT^MUH<[PPMFIE]KIXFKOSCACA?>CIRU>RW;ELUSGFSHR=YK;_GTKLAIIUVIM@KMYKQBV^RBGEPCROMMQMQFFID==NQIGJILZNNTPKLBGJB7QMPWOQJLX>JM:dIUT<@EKA:3HKLO=OMQL=CYjBLJ=EhOSLGU?SIQUHTVTHGMIH^UEHL?OAHBELI@OJQ]G`C\NPYNJRBJIHPAESFBBBF9[YnJ[GQNDRGBMHEUTPLTLNNLNVQTIEGJOVQ\FL:OMHQYDBBJW_]HXUO;XH^SIQIBTVRKR_QMMBIKNOQIQ=NPKcOMSGTJNXQGMDHLLANKSPEVVQORPIE?K@JIZbMGFRJCJIMCAHXMMHGHTTYXXRQLJANIYIMEHCKKRNJJDTL\EAKQUK@NHHEDBOEUIWNTPFOQQRG@ZGJHKUUYCKXKTRLOYH\OJS@KPIQSNHRBJMXKTZULQEQ>BHWSWDRSIYQKJLJWIWVKPKJSCTDJHDFUYOPTWQHOPTHKUJQNNTPQCMYDHVPGCUVSJFO>LPBOVQRWRDRI\GOGFGUSRWMGBDXKEQOPUSYUEJ[PBMBLCSNGKMGEG?W]SDLSUFH[MYLRRZILOORJPUNCTHGcRRADEQTQDIHFTOQHSAR[CBQQSKEJNGW=GPIQYIHGF`AJaERCDTQTEaMWBTHIW[ANIMSSH[LYRISVVKM[P_J>OQRVOKJ>WJHOOPYJTDKTO@TIHLSBMKPJKLR6DMVEQEU`CQWSOY=KLKQVBZLEQOD[QVXKLKP\TQQMRECRAOBJGHM_FFQ?NLCB^CPKNIMDLZCROPPDVQKSREMO;USTL`NMPQDOJILBXIF>FJDNOHRJLTXSQ?JCLFIER=G^DPSFAEOLRATJPRRTAYVNRKSMQGNJZUCSPEXNPJYOTRODTS_:GRAALJTRR@IFAQJF\WWH=PKIEJ?JFTYMQJ]QTPLTVNIAHJNXIOcMSRLRPPNYTVG\JRJOLARGTUNCXK=NORLOUD\NPTQKRUGEh[>FYP\DOHPIPGcJO[VIMKMGUXNZGOLKOVPP\PRRJT@F[FKKMTUNWNKMLGRGRP:FLS?MIIJXEOIK`JOWOLJKBJ@U[COQ\DOAYLTJXSPR]MVWIJL\U=^_Q]UG@XHlNGTKRLMJL>VSPEINOCNGYN[]JXO_EVF=GVBPMVNC9OMM7OMQOLZV?NLWPJEVXA@JZMZMXI@JWCLLFKVKIRKWTFGEZLG\EL@FK]JV?KCQSRAJIES[RL6OFKWPUMLJJQIVWEPQJHIEKDL=UVAUS;PGGHZDR\nR\=@HQCST\ZLSQR[CWELXEDLLVLXJJPDKFUIILW]MWNBMHJQRRjUHQR]XM_NB`]WLVY\@GNVJUMSBa6LOBVMLLDDN@IKOABNQNEOD[NO9NHLJRG@SGROQYRFPIFIINLHTIFJMCSYKRL]OMFSJBkkPhZSLIkNBHJQc^PXO?DSYDOHSFKPMTHZOISEKJMKLHHHVOONLKcFGRVGYPGBEOjRHEOSEW?M[NNIIXQNHIGWMRO:EFMCLdYPFTXEVO`PF\LYNBMMKGMQKEHJCLJINQUOFWBPOLCQAV^NYLMSLD[L?LLNQK_UPIXZDYJMOLRRNSGAGPCCMKBRMRNHLDIGFKDHXIMHMQM@\a`PUY>WNQFHLUTK]DDVOX[L\USJHIPOKNJBRYGLY@EORQK[LQKQUJMI?GJUKUWMGQWNIAP^FNGNEKTEVLROLKSR:ZHYUKKOJVXULTALNLFPKJIXQDLBHYGEPERCJ]OQV[NENQGTERSFHRJHAHIXMOSELINB\JBPMLNKKJHHOUCRTHB?M[RMLFKLQSMHQLJeULFSJWERL?SJIJJNQONVPMUOGVTOBMOJUIFIGPLLCVJMOLDQ>PLJ8GGQJPMBZFELMFKO@OOPKLTLRrKa[5HWXWYMPUXI\JMG8iW=PRG[aTIEhR6AEPT^JOJPS;@NNOTHRKSFPKDPIP\VedK8W>LJHFJYNHSPQ8=GKWVKDQZ@V@ACOS]WeWWR@LNKM=MURMOVJ^bMUSGOLJQCTFIJOD>L9CFUAVIFYYYFRUNVGPZO5MCVYKRVIEGOPUKWORKJFXEL\XFTRTQKNXL?PgWKJGLBIJPNUGYKQZIUOKXUUMEUSYRYMMQVIVfQKH\P@D@FWQPOMJKBVcD8EIA]PTSE_JQODKNYN>OHJRL?]ZOLEFHFVGDUVXELBAMJ;DFMLJRIHKSDVHT[O>IVBNeZINTYhSWEHYLMIPYSY^_SUSETLNWRQW[D^pC>AHJCXKHLKUUaJZPVHRHRJLL^QQ=EP?XNXOJJCOOQSmQWMCDS`kPD?JTGJUTXOMXMP?KMPP=XUPWJYHXVAARC@HLQLDKU;H``RKPFRSTHOMSDKYIVRMFKSIYNORSSK^FJBEHJbPWJMSMLTI\DWHPFOCQULHOC^RIHLNVNJP^UMHWJ]R@LYIPMLTBQJEOGJBVRGOOQNOQIJPTKYJFMDLXOLSJ:KFEPJKFPD^ATRFIOTVPLSLOYDHRUSQPOEYBVIUKOR]M^KEGRFNNMTIKFPW>ORUU:ITLTCUHOMNJTPOIEDM>PNRQQ>PQKVQLMPCLMLLRPOJDYRRdLJQIILMaOKEUQUTMNUO=fCPFLDSSRNYTCNKKXJSNNDBGVL[UMCSNUSMQLTGSAZMUGJHSPM\W@D=LZNOZANCYReNWKRXHUQ?OLH>VEElcMKJOPKRNQQTjPLVBFSMJG?KEIRO[YKXWU[K[QMHTLGIA]GO_PI`ZIDBFTBGNRPCWFQKJT]SR;HRTRP^KDJJTHSRGU^MPHJ;SEJOUPLHNZXFDOGDCQNUL=AFJZPQNPLfKKIHRPKPIPN[>E^GGCJMd]SLfP?BWTVGM@OKXSNM]JGPYFFXNGRR@GYUKTQKMQKKITLfFQJBV\WTFV^aKMSQIV`lGVZHZLWeTUOLWJMFGRSXFBJNOGI1QWWVIQ7TQFSSQGHXFSS=DaIRS_EMSMIGIIPKP_OBkR?RFJ@WEX>GfISIJHOHUIQ>DCa^MLMSFGIJNC[[QBFPLIOKVWGKN_OCKQXGVPGOLSHQMRYDX?MJL[OQFNLPKPQL\SNVONVD>DULRNJGIWJJFMWSZMILIQNXIOMO\KPRLNLJKJMPWFJOOMMWKTF]QRXDXQW`CVP\QPGO@QOFOWHPAMKF\K_UFWX`OG[OROLWHPKASPN`JKQHDSERNOAOTKTKMLELIKLLLKSEUP@QEA=LMIOCRMGIL=_JLUK>MDOJJEJNKIGIRQGUAM=IE_KGTDQOYGIWPLNbNV[HAEHeLKKYGCAKKQINGUNUEHVDUMEMKHRHCRBLMKUFRJUH\FS@NCORV[RVKQF]IYLBKFMJLQFIVE[IWVFKGHUJBZIHHWGVMXD@FFESKTVHOOGHKRZODLSJF[DDWJHIJOONFSIZETaKETNGANIZDMUOLPYQHCQHQMUUJLIPO?KIJXHURIPMS:MJEFUQZKIFDONPUNL@LKS]RPHEAY@QGU]FVFVAUMKKMRREQLGFJMWRKLQSEEQROS@H@FPIILULXYUJCJLO;FHGK=NRRXYUQDNE]JS\6IUIPG\EVFKKINQFXKQFB\HGKG^DOUMJGF[ONGD`DGJPPCN_KJUXRO`DTIFGL:MPIQGBSLIGKCOFETZWWKDlXJNAEUNDBLSSMTOFYV^XHIQ]ISJPSIQDWUQK\ORH?NEY:QLMIUMG_QIBKG]MMYPMLPRLCIEQAPOP[GVKJTTROQIU=QHQNSF]VbREILLULQPJMIUQNE_EMQWLEZIJASNRJTDLMDHLDMKHWAXRSQVMO@PUFI>MVMTP?NOKNCENKPKIGSMHMC\GTHURPCZQ9@XVVQW`XIRNBJOZNTQWRMKQPPJNWZI3KE\LXVWMPPFJJ@IQNNRLKNUKDE^JJNHPKVQGIJNXA]SLWNNJYJXNOKLAORQVI?AS]KOUTSG]]IWRQEYSWUPDQXNMRJcKNUTNtSKRWHsQEDOARFVMKNKBPRJGWLMOJQJOLPOLVMSOWMUXWaFUMEUTSTQDUOXPR>B?OPQKR>BUUBLZDCQCDDZSHTNGMSO;NL=KTS`ZJKX]LNWMXSaSOHAcbS[OK^[BJNEIKJDONQPSKYJLJGTTHONKIHTYSY]DOMLLHIFCKJEZOJIFY[?PERCNN[aBZNHIOJVJIVLJUEBIM@IOSIRP\FLRFJHOFaC[NL@^OcD]HGLFPG[aFSVJNGGGU\]DPLHRB`HLUMQEHXXYpPdJUcQ?ROHSLQXMPHT[KNHB@AGDSTJPR?RLHQGNNIKQHXKUS[GDJFJI@>ZUZQVOIKETDK:PMQ[WLJNOEEPKOOSJQU^XWLJOUESLHNKCTLHEWJSP:I[J?I>9GDXNIURYFJPHNXCYGSVM[^HFGCJTQUAFFJ^KNMHLMP>KHSRHSMC@kAODSGQPXIMRRWcMVVRRCMVRGMQNEBVFDOUVSKOWDQYFF;jJOQTRWIMTPOV@P[XIOWPICFPL@JLT:PJRTQITRRKTLJRL@RBPMMJWOReKASPMB^MOMD^JRYKUPFIDNRBMMXSWKQY[VLHHHKISQFTJFRQPETUQJNFA_WKNLDIJPQKIVBSNJ^ITSNZNIIKMULQ=Vj[GBITEQKKSNM?WQBC_ONSUD]KCN_NHTLCWMIgH]JMDFNG\FZHUJJKSGI]IQKYRLSFWGNMZUORN]ZHKHSVNRRQCR>RcZMYPUVGVRRHKRFLMJQKJTOLKTQFNJ?KU\GMNQPJUWESWTINPOAASPLQBHHLYMTSOW\L@O\_GSEQJWXJQK[WTFN?KOYM\M@ONVTN^VVSI\KMMOGFIbJEaHEOVPLMSUQJLQ6?NIF=VHYWQLNNN]MdEMYFPPJMWOVUGbHSNQERJN]]JUUGBSMM\KWJYTPMXS]A\_^YSK>WENHgGLJZ\MHROSWFQVGSSWVPPWRIGg[eSN\MJKLOKWUJALNRKTEQSNXRPSSXN?[KEXPNRJV]MMNSMCGRVNU^MJIAQOTIHMRXZCPQBRHKXJVRTCMPD\SKRKYNLTMXJ]HTGHHNRIS?EOQOEVRHE@OMPOLUQc:IKfTILGJWTRZ\DMWNON[SWD@AUPPYCIKKMTrILEYF_KSKMJSJPR:LGKFCFHGHQ_@MXNPTKRI7YN]TLHLU]KI8QNLGH[MYQZ[E_NYVOAKVMEYVNGTALRSILPCUQQgS_JGVIBICJKSEURYQMDZGPPXLWRGKHLFH[VONIAXMNKRPBRNVRLXQOVKDUYRUhTFLIS_IGRQGFJHJFYPMOJEFMHVRUMRVM?OdHEXZMOUZO=NPHJKNIKPVMVJKPPVOVTLNKQZNDSSSUDPQILMOOIWRKFRRTRVQPCMHKOQVPK\POGNLOGYQJHFKPOLGVRJKVVFUJTVEFKJVPOEFP[NLQTQNVUSUVJ[KRRBMMEN`OU=VDbLOKBPKVa`FORTRDJ?IUUMPCW^QeX@PVcEMQX[bIYJO\LVPTVWdI]XIPECJ?V[PObMHJFLTUKSaY>OPPH^WOMR@TQMVOQPRTEKKSU\OJfGISNWYAKTBSKQFJTFEC^YGKG`QTETOK@HUVSNYIKfPOHXNNPJAPMOGKEVJMDJQFNDKE[__AXEELE`QMLQGRQZANaCMTDWNNYRTJMRWEDMKUI^LWMMSCOYEMJOXNJNORWF]RMV\FL\LP`RNHLGXFYFQXPRL:RJSQNHJWUOGONHGSNKIUPGLQMMHFD?QLSWQQWPHASGV[KJIOJRU\MKFQWJUO[SSMRMQCRGILWOYJUSK;LUWaQVWOFPJSWSM]PFLZZGLT`QUFKIRDHHHH@FNTjNOLEQOVLMJZLOLRSESHMbOGOLJEUMNQOJXKRURUUXLOLLLAWGLP[PQINRQF`OKVPKQNKOHRKRBFIOSOBRINABUJNWQJQLKHXXOL]KSGOMERRGWGWOFNH@LPEIPMOSRHTJ=Q[URMKLNHGIJCKLVHYVANNTLH@MGNINX>IUIRMKHVLYQRV?KOa;[QWGUQECHOFNFJOXRONQCMAISKPDNQPKGLURPYPVJIL;RUOLMJOPQPDVLOILAKJTMJNOVPGLLNV]J@FNE>FEOME[VP?ISHPHAPFJ8MXNRUILE[YGHJQJZMT\?EKNIOUNPDH?EQCGNLRPKHSFOCKTUFKTTMEPSKBQLM:WRZLMBoDJYHSNPPMTPJZMROQ>MD[>RDZPKMRLKNQHTDIWPAB>JJY`SBVMQeYSJERJMJOWG_Y`dKVZKFIUSJOYITMMQWJHBRT-XVMdMOJXIRTHJ][F\UWHHObR_QOU[NTHENLUQKIL\UQGOMHKLURHNGbKETTKV]X@?ROIVOM`TJWYZIKHYNPLPVLIR`VPFORFcTO_HPVNMV>PLKbVRHUEGTJKHJFLLUZFOK8NOITIGNAPuWHUBTN^OKQGFUQQNVGGZOHHU?MPFcXTXKXCmFWKTNVKrfSQK@NNLKZPBKGQJHTUKLKHNI^NZlIKOHNGQjN^KKCZLTYSJQQOXQIMAkTWbUIE=INdYFRH>HQSIGKFXXPcWJHKbDQDVXNQ@^NVJISRCVRPDUAUBN`NIMTRLJcQGPNONJLSSIJU?TPGLVVKXCWK;^LVJMOL`GUKPQ?CNYETLVLGO?JJRVKQWOWOSLMQQMSSP\M^EIbPURNWRUBMFDIIXSRLULFIDGJRI@LTDRJYQYOFgVRPXAYIW]NVY;NXTHZLPLN`MWD?FZPKSNSLHFKEWKOFVQXHIHFQV=RWXTWKTIK\N>WKKWOWHUOKTWGOOXISJVMJISNPPVHJDUK[]CG_NaSRRLWIaFANKGESSXBMBeHNV@FOLZ[CSNVANMPEDLACBPIVOUNUMPSNAPHTEMQGNNEUOUNOSCSUQHHJERNLSMJON@KMMP??TLIGNOaO\RRQ@BMPKHOXLCHNLS\MQOJNVNFWCOfLPMDKLURSIGGMGXO:OZTBjAf8HFK=EPOL7HCIFUKOS`e[[YMKNNMJWHMNRAOEVaDY?6O[GKFVVeYRQ\LWVDMLFSDONOTQMRKZIOWJVONFHPCWAPJHRYHLBYMSW@NKAKFOIM_IHQ\UQ^CVd^JZSOJEK`XDIZDMMLMOFZJBKUVEBQJFIJUHQ\BINnPF:T@NQFJKDfBHSVMS\OIALVJT_RIYTNOFWgJUGQVTVNEJ\MEMLP^MHE5YW>YKXJVJMkVP^K`TQSBUPOHOIITI@CYPONBKJU>J[GLHHN3IJKLIIPKMQJQBJL]X5BNMZPJSITBQSLMPUO`DPYZFVGSWLJOCIOFVJQQRMODHR[SKUUIXKNOHAJEMJKHNFORHRRNRGSMWJWRY`Q`E\NALF`GKOGbUHOUMON_ENZFPRJRMNTQQL_OQSUMSZTbKFTM@HOOE>FBTPW_R]VRKHHRJRUAHXOOAGSMLNGETUUXEEWNFEOGOWPOZRCROHPVKOP[YSKSC\DAJRUGPTBYVBLBJYSTlUE_YLhOGHQ@hHTYCGGVMUQJKcI^TVM\IXR>PHLUFELI\XKPIIUHQ`DUQOG[MPKLNVLPCMEQG?VQJ?G[H=CQGMLQOQW[Y?II]J@JQJL[LOHSGJJUI@dLFOFOIZPPPVYWJMP_R\FFJZLYUNJTPJTPV@PTJWWOYDQNMDTLReJMQMTCEDGQRNLXNX6HQGLPR]IHSJPAELOF]ROLMKZAIHOGMXLcPHMDDMAJOKYSJaLCMHQGZMJ>QONTERGTTPJKJLJEPNOBLOYLOEFKQDHJNErKGRQOACKVLLIXEPYOWMSIPGF[K\lRMNJIT@SNOHNMPCSLGJHPHOI[PK^PJCJOFR[LGPJGOKLULIP]BDNNWO\QKFRFNCDNITLT_QJOSMIDHCPX>LJQIG[JMKGTCEZQKNV_GJRAKKJ_ULP[QM<:VGMNLMREZSJNRZOWQNP@GBHPKYPKKJWFIIFJSPMAQeN@FWGGWNLMSBZVMRSPGOLGNKJFNPTY=HSJGKPOVMXGTCQWMJZFkKRRDEVLOEVNFGLHSKJOLHDKWGJ@N^^TCXHPDPLQ`HNDNRRPLTOEKK^UGNPRIOESJ@BHK_PQFN>Q_LNSNIIKMPHRDCWAI=YOCEMSAD6HIGKNCQMI\PFLSNI=NUKDTEFIOPAI@BLLNPX@HPEFLIHbIMWPEJHW[HFFMGGUVLKOOSBUgFNWKLLYOQVbKXLLUIUOKRINSKJWHFU>TWPAOTYDaVS[LPIM`IOIUMUOLJ_[ZXQSKGHVPGPJPVO\QXNVBRXUMPHNgDIIOG\IPQCOP]USWQUT\[HI`SRMPKQNLRMMVNKL`MZM?VLONORSO@LPSON]KYOEQLO[KUNDFZPFOISAUSRRQJCGM^OH^MASWPDKKIVOKMKWN=OKP\SJSPQCPVXHOILSZROLXIMLIRTFSUJSROKTYNGDQONLSNEBMLDLJNZ@IKALJPPOVKZTE\TJ@P`HNSJYJIDJUMIKQ>WBNYJJ_RKLPEQUQL@NQSGJSQ[TUSGULLNVIECJVJAWYLPYMX@TQUJOEMVKSUSPR_OUQXQGEW>PIDWO_LRVLROSJK[b\HQOFQJtCL`HK>EGZRS[\LWWNFSSZJVTOPSD[CSUChFH[dTDQJQPb`\PXVGCIFM?NIMCZTANFB4PQZFCOTFPQHOmMCL>CFLIGVEWLPPAESXX[INSPNVMBJKITTQNQkVSWgM]UQPQZVFD?KnUWJLQNERL[GNL@ROQDTQRR]^=Fs^TQ_ENIZQ6kDSXP^OAIEBRCMMeGIFUXQOT^EYVGTMQVBLKBRKLHTL]APPEFK?LFGLRHVFTP]ACK9TLFaSGMMMLKJHKYVYJQTKGLWTOIHMOQMONOHPUKQLQJPKNHKWRM_YKXMHH]?DHKRUOWQOOKFFFZO]BNK=MLZKII>PULWIQOPRVRPICL?V]JKPQQSQPQQUJOLFNSKXNNUBKRQPNNDQVMUYRQNRBGDWMNTKJTWW?JOSGHOLVXUNLMBMQRRROWOSOST\HXRDGCDCTEUGMVJXQJIVIUWXWQUSSUGWNRIKPXQVEUORWSDXO>XPLUPOKLPLROBKSYMRQLRYCLIEUKPOKIJCDQNCTHG@BQKND[QODTOELHTUM^OLGLJPOBRIMGMOQQFGR]USMSPKWXNVSRUNRBYQ]\GXRQTTSXCNR\JGaJXF\QISKFOBIGKDPWOcFHOBJ?CWSLEIIQYUIbULDIQHFG:PMPS^DG_HTPHPOIHOCMINQKgMON\GUNSPTNJLKMLU:QMOGCWGEIAVNJFP@T?U@SLNHTJMQOfDT[SEQEBHOSQEJRMMHVEJPZRLLYgXWJXKBNVQL?EUOUNQSG:AKCZFMCIRU:TVCXNNELINF`VGGTM?IGPV^FGPMNZOHEVAIF\HIJZLLVLVAKODFYPROXCLKNIGK=ICJUHML@TLMK`QPLDPKKPMXS@IOTELOITZGW6PNSXLT7VOKGMUIYUNDSWTXSKJYO\LMQZOPKLB\ZPCAJOKOTENJQR\OLOILGIKRRIJRVNMPOGkEOHMMNNCVHbYQBCILLPUWTVEPLNQTWMJKYKLIKLO_H@C^DXINYVKIVGFMSSM\DPAYSXLZFRJ9OW_XHWMSKRHRUHIcIUEN^NNTLQLVS`Y@IVQDEQNRCWHFDJKHZQJUZ\\ISKQ@EZFOYJBDIKTQHKCQPDWUOGCc?NDLPSLLQLUCVTGoGTTHRLFELRPOLISOGK[CKKDJOTVSLPUTIRK?OELUBPRQOUCKMYRATHENCGjMYZOYRHQSFVRRJGLK^GCMLQNTOTKPPGNGUSCLCH[SFVKMRPHXTMZJPENLjFEFYIGNIJVVPMEOPINOXTINQDM@[LI?UILMQaHR`GJSQ\IIJAkOCDSNHSFISROIJTPDOMK\GINMIGMNGPQNT@B_ZJHYXLJGRVQLNY\EUOdJTWQAMZOJURU@\RSGLRPQLMHFJKOIDQWYQZ\WcLSHBIJcGGULDHOSPDQCJSKOU\DMSXRSMNIMDJbHIWIWQPbDNL`DUKUJLQLOMMWPD;SNGDCFM?OPS?GPZJQBGGKFOEONYLMBRZZKLNKBNSKO\UOLLbPKQDXGOHPLPNNWMbFTRDKZUPHHNYQS_W@=RKHX_HSIUBJHLNSSIRRISRISILMHWHIQKC@M[WI?LKKTjRJSSOSRM[DO\HWRKNKSIRKYLOEMcaSTILVO\GMMODAELNPKL\WMJSO_FKRQPWNPKCUISISGTYPFGNSPSIG\]BMFHONVJRCNLVNK_EMMGNTDQ\SSPJLKULODUMHGC?WLQIUH@OJKIESMPHYJTT=ILNVTRJLPUWIJPTKVTSTVQHIJJQFMILLGAGOCaNQOOPYJE>>FM;KVHQKRQLUKKAKJKKQKPWYPbPLWG^Q\KKHSQG@UYFSZP@R[RKMTNO]MMDAMYOMCJI;KX\INAJGKgNFKJMWNHJMGO[UF>NROPLRVdMRGMTMTdPYGHXePLLH@UKLJCRJQTHFO;V>DRNALVPVEOUWCKEI_^ONSQQaJVENZFKWJF]JBMKPOBYLML?EKRQJOGOOOMWRLNWADXGVQGOCOTJLQKODYLOJMULZLMSMZ[PSFVIBF@FHETULUKIDSKVGCRJRO=OLbJGLULOOBGNRMGHRBMJAIRSGDMT@NCNKLQHFRH]HQNNY>MPRDMSPYKK@RNYL??N>KBWERQMIQN?ZJCJBLMNKVDOHN[JJFJELAZTPMQILQjV^DMIXLMLLIDIAHDNKMMYbVDKNXHOCLYPdEFGNJMAMO]IDMOJVoJJGRWDDcCJMZCGWXHVIOQRVaUASFGRRU8GA^KOGQJBRXXTIYXKKISOHVVUDOOEO?LF\ESQKNFHMTRTGIBTOW?LXQUP>EUG^QEM>N[KKKEFMP6LJZ]ZSPGD=L?FQOMCOOOVEM?cPPQFVEOIIZEKWHHP>FIEKHcMJIBPOJIDPb_RHWJHTGPID\LIBBPLF@QNHOPV_LIIMFUPXHQSLVR?;S<_JKFVTAcOJLOQ@OBELJVC^LVMXVJRKGPYDRS^FMXsHN?RYQTUXDHGP]]?KNPHL_SKMSBPKWjNA=YYSRGPIY@JBHHJWN;J=GTWQQSLGNM@CIQ9QPORbIXRdVJPKZ[XJH@BSQDPT?KlNMLXAK:QKNRHLINWVKKZQ@YRDRMLO_OJSLH`EKKEEOKQHSNMbMaXUMbQA`S\SCFX@>AH@NNMCN>GbJdVUSSMIQTZIJXGORKKMH^PGROQYFXTPHRRRDSYFMIQXNKJAGAMLRU,UPFGQQJGTICIJASXK]XPQHGKRQKOIFKNILGASYKTWJIiQTIPW]?GG[POHaAD\MHIRRBQNRNSLTKDIYRIPTMBHPOJTK\KIRBWMHOVSKRLOL>ZZJ>BHWNWRMMOPNGLSO]_NHJI@M_MTTLVSKUKNOMXGYQ@VJEQQSXVWGKDZ:SZJK]UMDGMR\^PHRKLJGO;NNVNf@CPPASFISEIOLOMKHGFQX[9]RaO_ZIPURVTGQGDTMKEGQUNOXONMQLDRUUMFHLNVQ>GVJMHIJ:PQQPMObLGGSFUCPSWKPCVMGRPCW\;TYGWLJINYKVNL?XNK]XGJWO;QWPMWIYSNHEBWeCVJOQM[IIAIIKSbGPQWa_MIk[FHSNMNSQJEIOgSKYTHJsNZIDNHAOGORGPKMGU0OWQL]QCOWSZSLUDNQYSRHCMd@TI]WMOGJSBIQPPQHWYUG]MQNMUW]D>QUNVN?NCYOKKMU^SJPMU>Y;[QO;VVIO@AR]ONPRMJNIHSRSMKWLLSORK[^MIMKCGMOWNQIH@AQOMDSPTOSLRYKFNQYDTWKOZTRMVJRM@YKJI]RSBPX\SPHOSP^N>SLJNVLMJ`QI\GYFGB[HWLGOSSENHHUHN@EOUMGTNITKQQCDSUHFGH]ASJL^MCGFHGT>EVTIFNHKJRIFTBMRKQ>WBNgSMHYQYJJ^T:IRT[PUNJXDKQR]^O\PFK`YKPUNSMFEYKFMPNJJIGWUJTGPP[NPNR]SQONgTORiMIDJSFSRIYIeSLEPMS[QFDDFV\K\S\]HNQHZNRAJOXPCRSV;LNRKHMLFJ\IQMULE@WQISZVREKNYPSTHBSAHVKITZAXRGKfNGO\_G\]LGM^QGKPN[C^ZOMFGKLUJVDQAFJHBKDIIONNJUJHKPQEQSNIS_NTKYFWJTHQF[dE\PYCKKLCIQLLYH]IGJYKULJARGOORQTPODSQM`KTSSQNRNYSZGOSPEHGCVCPLSGGGMVKKUCAGUUBRFGN[QSJNMTMOYLGJRTPRKQCTRRKGKMbOLMOLYOVRXWRQOIFQTNMHLXQMHNPDSEOMNVVKPJXLIWRXTWGSLCCOKEUONGGRUORNbOQNMSHLSJKLLAN@WKIVIMSHOJEKREQC>OGFNYZTPSJYNHKT`WD@KWTKPMLSNXHKQLRNF>OLNJTISLO[ISNM`QSRRTHQOJTKDXIC^KR`LIP`]W[SXUJLYMTNHI>PQAKTJQAY]THGTCXDa)L@LGF@VD[GjFXVbVLWcTTWPRcJNIQKLUJMFLiK[ILT[eTDTTRiILSRIVCNSONJBQIPZOgSDDSJAQNaVONVJAKPWEgcEUK\[VBMI\^\ONE^@UHjOQS[aeHPQFdVSMNSZSNdI:OIM]BcJQLaLRIIFQLPF[KMBs>XGQNMFeGFCPXSXEgOYUL]HT@SFZBZTSNY[UMMVHVKBNYQ@QXJJQTOnJHTL^UTcTCLaVLGR_@XCRKLIRFMJSTRQ[oWWUSDAbNF[lL^BDMBQKUDZTRY>>XeFN>YGVQ[EJQJLLQNLIKUIGYTILEPQMPNII4HOLQPJKABQQGDNGMGJM@`PIOLBG]IHUCKNODATVNJL@LNJXHOQZKKOB@DNGRLFJQOITFRIFAQR@IEL?VDNSNAJWXHLEPRRBNJFdWHIRTFKX?IOG[TFSLO\HDALNOGMMXJ`EFIQ5>ICG=FWSYZRRNKNHWL:GMDQYXJPNJPHPZfAPBMOc>IMGO\LPLHSQVNQR]LNZAJSMUOMJQ`ILPBSQYACJNIHMOS9KLUFHOFNOaN9KHTMGFP]HKKQJP;FJMOO;?WZMLX@6=TZ^NGKUOSM^QGJQNNYI`EWGiHXLSQTGVRRJQW>WVNTSMRJWYEZQ]HHGYIOM[Q>U\=N=DKL\SGHOaRGOSNFBGIUSIGQ]J[QSTNI>HIPH@TD[QKZFJ[S\T[CLSYG=XII=LULL?RMBSOLZGTF:SSDEZGLFJLRQLHPTIILZHT]PQF]JKNCPETTLZK;OIXPSRKVEODSSRM>KK[?CkDHWLE;GDLOLBRNPXCJRNLRKJLVHV>@YJNOKFKS;RBCAINPPJFZP_RQTGXZHSX@HKCKJUGNNh]GEYTEGUPTLLNGRH^WUAEFQMXMSSKJL@MHEVPJH?DXDWCMHKG]PJPQQ4RGQIHZQM=l{JDRDEG`RADNEQTWHGEUKHSLPE]ULYFGKHHRWKUL\XC;D[b=KRVMK8KnQQMFLRE\OMISNNNUMOVKNHKMNhRJYLLEJN>LGOMFLGHRDHFeMUP[SJ[PN>IUL^MJNUPVLMONWVVL@_?IONGMGOL\NSBZPKUQF[MPRPJIQONFPQSQMLEJL^KIJRVFFSJDJQOXHHJQIMDPROOMeSFGMRQLSQFIKGOZJE@\MJ@F[HTXQNKKFKGAJQFHKWGJKPGLQ`RRZKMSQRRD1KK\MMW@P]TIPKFYGNYLPXOIEKPK?RSOWPCKOWOU^`QMFUMNITRGRHO\TTQJELJUKJPRLNDQQ]GMNKNKLTSMOI@HNLTKMMTGIZTJ^PG=HUALSGFTCGUSHNGQPKQLZaO>SP=QKEG\LKTMZGGLKQQP@>G;?ARHPBLGQBOOFPJPXJ;RSKEMHJYKMMJUSULMDITT`YCMNJVJQMXFNPSQYASC[EP?GPPNNK]OCNAJMXNHHFTKVUQMZ@BOLKbEWSOWJ]LM^GJIJPEQSLQ@PbQNKEJHLPQXPNM7KJDTRZNOQGEFHMHQUGZ]MC\SOEHINO]NBXWQJYUPEDVYKSbRQVJOUJIESMQNNMD>KCBZWEOQV^QS`CYKVcGWYP^_OER\ESdKPHZOHZIHTH2MWIOVRLEIJL\ObKQWQIHL:NWCPKTPDISMMGSPSUSNIJZD\JAPXIJ?RHcQQA]NYR=bKMZNPMQCM^DR[V^NW^GVJTZNeCQIEIHHYTQPEQSQEFJPJ_PN^KVMWLH_ODQHFVXGQ^MNSN@MDSTPE[PLOFVRINJFPHJO[VNVMNGFPOLSOBQN@WCOOXLIJM[WNJ\BSPOKHXLQFOJKNICIPMRZNLBQJFQ_WHEFXYLFRILJNMXBDRP]JPTTOHKJQE=LLQGWRWHLHLQWQFX_ITQFNP?KGVSITPSNNMPcWPbVMLI?ULOLHT>DV9JJPWa[W]NM`RXMQJ^@9R[NYQSOcQP?PZFLMG[TFTIRRDL:JBSSKEDON>CUFNMMOZONPrDHWM8EHMKYDTg=JMSDNMJN?[MSHIMIGMSEOITKXWKGQXQMRIaYJCV=VSTDINSUMWKHGKVM^DLL[KJUP;SGIGOB[JSHGKMIDWPS?YGYHMWOOFNRJKOHQ9AULWMGUWOTSVQIQYSULOMKLCPULGIHONLMKUSMWJ>SSRDXHJaNHRQROWTaNSH[JaLUOPSKJQHFO?LZZSLSP[LO[CGWBEHEJBQHX[PYME^RRYMROQkUPJPWMOKTX^SALVLOBQIJETDSHULNILP_MKJRIVN\FSMNRCIMPMPDKGKCZZ[WHNGBKFFQ\ILGVJRTOFWEFFIOFLIEMMG?OAV:PH;GGQMD;JGKHOJJUNLJITFPRGLBOY@DM]BTSLWNUGFFDFKP?UKWJTINOLCFANHDSLKQNKNOZGGLUOIJO\PUVYJQTGKMKE9QBJGJKMIIPGELLScLPTFKSNIF^PGIVFP]GOTFLJFULJNSJGLIPJISTRHVOAOFQNHFNNCNOILCODFDIH^QCONITOVHJMGPHHTTRQUUZKMCLIK@JMM@JGDHIV@RJKRPKNXP@OfPMJTERYWPL4GMMEYTISAWWOaAUHLSLQIOYJLKZ6QSFQOhtFJIRXS]JE_dFQ[OCPI]WYGLUW[Ob@;WRNRYR\OMJ>I_VSNBSLKIPOQZ\TQOTUIOCOULCCRANKGWKNAPINfOIIIL]XFJTMOMMTGDBS`]JZXZLH^KIPGUP@QRNFOWQTM`JUVUYFPOHLHEZGSJGK.GTZJ|L>MOUMVDGfPZYHJSWJIHSSISKUILLGJAR\kDDSRXPSNNSB=UKSYG]L?HKNIFOQIqP`OOYPXIPNNE[PDL=JIP\QICPLKZWJKhJGHZd"WGXEFRQOJIMLLIRXIUKD[UU`X@UKSEWLZSTDZI]LVTIOINFEHd[NMOPVINHSSOYV;VHSN[QZEJF_IFEISiGONEQK\VSLDcIVK@K\EQJQRIPE9o]RUQVAYAHXZQDJFSIAJZDWVSTKMULVN\M[PLSKAHDSLRU_Il^IFYTEFUNQG]M=QGUQiQJJLM_RFaNRITHSMcMWTNM^PLLSPFEMNPXPJX:`dRIDKVKLONNRRPPDMJPGDcLILQP`OGQHTPMOH8`LHMSUCWDDTKMXE]VNbYFERPLKSMKMRPJRMSLRNKRQJQULIJOKOKNCLPOROOZQLODLOMNRTUIF[NMQJEONJTJWSSRFKULLHKKJSRMTNQWQQDJKIT^KROMOXLVFaKOQDPJNFISYNNVNUUPOLNDQKNRWKRMDNRRQS@OKCPKTVJNXMCLJDVOOP@JOWSWHHMH\N?LHXOJJIPTFNKUNJNGKLLRLVNJSXALEVKKKKPWMfIPNLOSLOKCOPTHJNORFJLSWIPOJNPLMEKKJJJNGYSMRHQVVQLCUSNEOIGRNSPOHJQKKLLTFIHVIWEMPMQVP\CLDJMQGGLQEIDSULLK[YJI[VQWNXBZLHYKSOLBRGMPFONQHSTQLEKMMVSQIJUKPERNNPRHTTUTIOYXJPMGkS[OORDIKLPELRPS\SBSMTTYKVTGNHOOTSOO7MKTDMJ;CKP_OFFMGJ;PYSJ6LVOXGJMRTMGT`JWTHR`IE=MNOPLSK^UKWO\PIUISJRZNJBYYNNQWQRPKWRSERNFTIC[PHOLRRQGDMCN[TUOXVPSMMUPGPWSRIJPFNd`TWKTJTTJLHQJNBHORRZMGUMRIJLNOLNMMPL`LLILKNKNLRNSPCGOPWJGMKGJPEKFNR[7HI@JFRKQVUWNQ@UNTSPEAHRFJZMRSPMKNHQWNJI]BJUGTNQTPMNJQGNRKQPSKMRHUIPKTJXKGOJLGMRRQBSJJMHFJXKOGTOKJAQOMPEORLLOVNIOPNFUJXGLJJHQOOGYQJSHXKRKIUEMNKJXJSXLSLGQENVPRNRLQOP\PQJRQMCQNLKMAUNUUDFMFNOOFMOIYJFHXPSTKRIIJKNMRMQNQNQOTJMPJEROJSHK=OUKENFQURUNSKNBLFSFKOOGRLORFOJSJQWKRMREIKGENPE_COMKO]MJ:JQMRJUIVKIQCOPCTPJKOGEPVMERUEMERWTFSOIPeOJMWJKHIKHAGRNVFOK@MNT]VXC_?HMXINGNVQVLSOMJTEUXQKWSXYMSLDKKG[NKLAWQQZH[OYGIQLSNIQ@REEJQLLHIPLNKNBWKJKQHSTLHOOMLJRPZVKDLKPIKCIDOKHLQUVFMZVNGMIRaRGI@MGWKBOLNILHPDRE\NUKGH]GSTUPPV@?II]YFIJSIRRXIFhPVKJXLGX=UMPNIMJSMW]TEHFZHMYZPFJMNKQLHKRPJ9QQKZAXQJ]JXMHGKOADPTGJIE^IGFQS?QXWFHVLQYXH]M^QNKTHMGDE[M]NQHISRJNU\^HGSSBUMFF9OLG^PENSTLaDYL^IMMPISJOPIeH[dJOOQFaUbB\KOFGWJSRKOJIGXT_MIQDXQPXSTOP^KTX@OM@QA>?CQDBMKIN\NS\VHRPEPGSNJLONSIVOF?>JI^S]N?CLTTGQOMNLPS\GOCJRQ>NNDMCPGLRJFSSONPVQIDDQO`\NLFQS]]?ELBTDKBEPKU[NPQNNGRUOQOPMYbL]PNJPBO>KSHYSEPIMZKNRIUCUJNYPQ/GNMWTMKPXIMJTMMcWMOEWMUUANVHTOTOVRONESHYRJHJLOPPPHMHMPAPJQJQUVAWHMHKKXX@MBPKRFTCPFGWKITLDQLXDVGBIPHTPUS]SIKYWOC\LUJ:]OMXKTIRJLPHMPFALHMROYKPODIJBSQLG\FGZKRUQJS_IBLMMPDM[KHPHBRJATTLPVMXVKURLJFTQ=QO][HTWEWLOPJQDIMbKLDNKFPKJNPFN@SPNJYYSGHJJY`b?HJOJQKPULEGFSMCLHMHEMQDJNcNLJJGFMNIOMSQOSJSNKK\KPHESJEJQTRSHZW\LELWKLRXROQFHDIJHLGPMILRKFMGGNQHUXBVJHITIFIMbLPKFEYLVNRNNKNWRXQUMJEWGRKJ@QHQZN>SGK_BCIYGHXJRQCDUGWYGNMNTLPWHVJVEDJGWUULPFPROELCTHK_TJJLXGDVTSNKGTHNIRHFTZLSCKIHPSQKOOGMQRLHNLIMJSOQNHTLIFRQOWOJKVJRUJCJ]LMJJUcLJPTOKLOWRRSZMGLGJUURRIQPHMJQNRJHBWFU[IJdFDELFIKMUNOJUNPMPBRPJHLLRMING@QQVJFOJQGXRU`HMIERQMTKCBLMWPPHVPPRCP`OMLMLKOAYRLUXJGTSGRWLCNKQ]LMKILJIP\EKOR>QTGPCEPVCI@JLMMLPNCJSWULTPJOK?NbOLTJNDROTPGHHMLR^NaK@KKNOSUNJQMIE\QN?GK[^TRGIIHYIGYKQSPQQCEJP@TRIKSLFFJ\SRTTNMLIQHRLGHQQRNMCHLAFFNFU>LPJLYNKLDSAFPJNJHDGG?MQQIXMHOUNKKNEI\MYARLUJQOJDQQKPHMPSKV?RNMRHXSMVXV[ZQOMKOa>KFPPDMMMXK>LLNGJTYCH[BXGRGNHPIJM_SENJTNKCQGGSHHDIMJZOMRMPJUPIFTIFYNVUOGDLFOKHKOIN[UTWLIMRQHHJ:INYHRQOLIQFPJMIHDHJ?@LWSCBQMHKI>ROQDFUWJOINRVTHVJELPLEKNBQMJHKMP[VLVRTLRTKFUTBHPHBSLCQGWTX>MDOKXLJZXDBLLQLGMUNL@LTM\KEGRNUEUOGIMEARIUgNFZCLXLDLM\MPL[KPPNEQA[UFDD\bMWPJORJKXRLbLY]GLRDSFKKK`CKIDZZILUUDHEQ?@JPFLLPSRKGKOXMWOOKOMSMOC:UKYSZABKH?ELSMKQNOKNOHNJKQKJNNIJFDHRLFEPNSKR[FHHPMQFEMURKGIRGOJIRINKQTOSR>JNRU?HRIFMFMMHOFKNMKXXOHCL^FNNKVGLHW^QOULQMKXIWWIWDL]OREQIXNATRCPNDDQSU[EGSRQNJATOJWEHOBDAVRJDFPGPHHINMGMPQLLEIJMTFQXRVNJRTAZVFPNLJYMGHUGMPTGSOTKBUQILTSJTMECBSZOKMGEDGKUH>VRRI_EMLGFEI>MTMKQYMLQWOVHBPVQFPPIUUJMOTTUKNRCKB_GZSQPFMCHKWGKUOQIPLLPNMSQNQM_]INGGDTQOTRZKGQDPKVQ^HTFMMVFIYOYRKJHFIMGcER^TJOROCLOQPIRTADMLDHRMKDKSGCHINQRJHKEKK\SLNBHLOKESXHII`NJOVCWJCLLQRQXHIHUIFQHWKELGIINJKNNKTFOQBJK[OSGKOEHH\N[NJN^=KOKOJNWOPKOEK\TGLKQTJeEDSQIHZMILKHMNFMWQVNLVQF]SKO=ANEGJXHMR[OOSKFMIHURMPEFJMMIKYPPK>MIPUYILMNMKVQTYSGODGEbPRNOQLPIFFMQRQHMNLGOFOPKMKNGZS@ENOZO`VL\JZ]OMQMKMSSMSMHQPQPKELPJPOIHOMLDJMLIJMVMHLUNKOTRNE_KVNMFNFUMTZSUECNNIPIEKMFSQESITOTWNGWLNLNFRMF[SCFVKPG\OHJOVHFGPFUYEJIKFNTSONQRFNGQOQM\ETLSBPIVDHVjUPOSAQWFJMVKLOYJNNCD=`IQCSXPKTKSCHEQHLFTYNNJMQNOISNJHHOTPIKQGVTLEIDS[JFHPKMOODBJLOSNBL@IMQLFHJJKOLHGXPFVWQJSDSIMNHVTOCNDK^JeEOOLZSN]LTDHHEKGQPRYEQLHZCJIETBCQJRJPMKBGS`PLNJOMMHLMM[USIGNNJFIHFNKPRTLQOHWJBKPSTIGFKJTVJGIOQERLTBYMPQNEQWHESIPROENGGGBEIVMQEVNPNXFPLFGLNIRGTLOPJLLPNIK^[PMWMHLONMSOKD[GIDMQVPO?QHYLSXPKLOKJNQMANLTCKKWFLWLCOSJJJNBJDQFOGKRMRMYSRHOEBSRMGPLPRfLNMCOOCVMFFDLSSFJJaTMTVXPHVWSQGLMIFDHSTXNSSUKOG=GRBOLSJWMKLEKJV]YNNYILPRLNKADIYJPLWLLLRL]S[IFFIOBGYGJFNDBFQEBPFPJPPQPGLGQVIKKSQNJNSKSISMJNOJKP]NRCODKLDIGOCCYOQCNDSQKCJ\NURVJHTINNUCLKJIL`MKNEXEKOPHVPHVPRFbHMJDFNUVRHGMYKRHOVQFVGMP^ISIKYHJLEJ@GH@@_QOICJGITFJKYQNdQKKGNMOHCO[GJNHNRERLSNJ\DX@OPWC>LPOKLKFOPQRQRGK^GKEH?RKSSaJKKGYIGQJJFSKHIKUPbO@MFOMZeFKUdWB[NUIPOUMNOLMSFKXTIGPGM@G;HLLK^FIKEPAKIJLKQLRFQ@M^KBMUKHPMLSIOX?HORQG@LFGPPKHU[LOPLMWPOLLU`Ed[JFOMQVRDJGTDPWFRJWKRRPJXMMJN@MOEIFV@D^NJDXMIKRHBLPUTBMMMLVMQL=JNLNJGLVRJNQAEPKHFDHEUFIQMMNJMRJPMPSQJIQSYQBL\CLMWKMHHMCMJ@LRKQRKRWULINVSIIGRHGOKOW\XALQKPHYSEQOEB?KPNOHHNWOKL>KRMOKURKESMOOOQFBPJQZULFZQNMONKKULK@NBXIUEQOFIPPLIPM=JDFFCLEHLSEOJWPMKPIPVEK^IPFPKMG?FNNMQ^VGFU_TPMTOJRNPNQVSJKMIQP=RIMNNLXWTKGCVZ[ESOFBRB9AYECFKNN@QCJ@RRSO?LFKLGHQFRVRNPLGJCWPDLObFHLLTPQKLYLAXJFMKCIGBX[bZHLOQLPOFJHHQTGHOH?MWKWEKEANHNKX@FIDGOMSMLHKLVIOJFLXTNFEXOHPPWWMHQMXDQF@YINX\=EOINGNKMOD?IHQ[DAMPNNPMS?GSNMNSPN[SP]HJORRKQQNGQHRDZQINEIF\[WKO]POOOLFMNOTQIJ[@DDFOFYVN>SFKSPLRQILG>LRPEHSSCPOOMEGEDBKPOYSTXOTKNMC=GNKGGISLSCP`FDPC>MHCMMLU\MEV[XKTKASPWBPEHWLS@CGQKJITPIJAHNFFIFRWMKHWI]FQPNN?JEEUFJRHIUGmQFQJUNGQNLD?Q\VNWEMLPIRMFQNTQ[VCLTKNEHOTcMCIPPPIWIHPKIJCPIHNIZN[NJMEIYRIPMFDJRGQKOLLAEQRKTGWNUURKWMQHSTRVNPLPUCMKGP;XSRHJSODCAIOECLGBOVBMPMRP\LLHKEUNFNOUQOLQTNGMPJRJYNQ\EOVGSPSVQMOOSG>VBFSZXTHJN\QVRGOFaCQMQMVOLMUEN\RSObNMRKPNIFMFRSGRIZSMVDSRR]JXKLLOWS]SPLcKVNKKRNTSXMGPLCPIFFIONJQEUQQQTN@KLNWKWTPOOcOJQRASKPSPJDNSHWLFDQIKNNJPQBVYNTVFVVMHGWINITNGPJMPRHJKRJVPPLORJKIFURGHNWOMSMROMJUUHLMQAOLQN@QRNDKLMJNPIJIRQQMS>BDRHOO@YNFKFKVNVP[RVNDPRNSTLWRQFFOOXQKTVOMRRJOORKRKNWO^IQH8`RPECOLFOTSMJQMIHQJXTFAZPFQ`QQLQMOUPFNKNPDDPPKK_NNWOLQFKGDNOMWKXRFJQHQKPIPTSZ\GSTODKRKIOQVMOPTNKXQVMBWMPQCRYMRMUHLSOOOPOU]L^GHXLSCL[[YNGFKZKSJWJQQMWJAAMQJOHSJERNHBDLHUHSHESISQKEQOMHPLJOMNMRXRZORJONYKGL]OGLOQF_CF]BTOJ[LGQKKFJNWIFQPQOMRZQNLDT[MODGHTRVIUNPLOGLGIAUPKVNIDTOOPZTMIQ?GMZL[LAPDKZKKDKdKUQCGJXJPKMIHXJHK[FTRHFU@AHGBKH^M\KgKOQRKSNFJK[\EXVMKAEPXNWJFUX__]GRN]RFQGAWR\]QQP^H[CFFQWL>OOQMQDISHONCFKQGUWPUZAJNPJJeL:JJPMP\@KTLDMKIKSUOODRELcDONRMC^LJWXYWL7JRKLAIKGIE]INMNNLBOHlSQYOFQ^\PTUAHBK[PJB@FQR;_FVVLNMITKMGU\NTIRLNNWKZQRqIOS]BZIZGDQJ:JKGMBQTMNIR?RKCKIXNUGMIPPQRIKHKILZOREEDO]CWXKQVCPUP@DDKL>IOAXZaSG[[LURKIOMIW@KSVTRILSOIYLTJVMCRSBWPYUSOSKLJILJIaTRLZ_ASIKOISIQPEAKODSGDNGJPJELNQBaQTLNKUWRVIOMQSEQLQCREYGQODBQKSHQKWOLD^LNODZL>LQSDJGdTGH=XHNGNOSJBQPKLDTGUOYVIRQXIXNUAOQDPRMISjKEVHQQLN\Pb@OVHBGPeUXGHKSBKTOHIPHMOCKRTQWIJR[UNPQ=JBKILROSJMMXCJMYHWSMLLTGEWNWPQSQG[NFPQRYSPMGMV]VSWUUNQKGIQ>UJWKP[IPMIVPLMGQPBQL=]LRHKBPLQJNOPYP[NNBMQESMSQJDLMQJRIDLPXPMOOHNMKSPNRGSXODQ[GATPMUGQSUQUXLQRKJPGTLPVBUJWQEJMGONVEEQ?ODXKRFHJDKIVQNQFYU]UHOMOOXCNWLIDLJRBMKMKSQNLHVGFCGPIBWVRRHINVNQMFGMJNDSMQNNCCKOODLSTHEJPDLCNQLA?W>PDENAXKNIYTLPQVNELYNKPKDMSKVKJJEPLNUHFJHKZO]QIJ\OSNITPNO>MHOSRBHEOPZTHJRHVJRCUDFXHPULHPXJCTUHTQGKSDLSLNDOKJGUIMEIQI:LPRQSOXDEKOIENTDRLIKHNPKOEMBMJYKHIXWTNJIEMGJPL@LJRVWQJNYQLSP]PJLRNK@KFOQTJRIJBKPTSVDSGQGYHVVFYOJYLLRUIGJPN]RTNPKQRLULCSMUVPOJBJKIPMXNIJPQFIB\TIUELNNUTKLRNYHHLPBPNJOCJHKSNRAHRPKHLNNWLBUMGPKWOWMIRLERLPJQZJRTFQLDIUMPFICIK[]LKFBIGNNMJFJTHTINMJIMKJM?bTKVKPMSHSTKGMJCERKJHCDOMPFOSPTJNQSLKISOINScHLQQQSIRJSRN^I[JQKMG@TKGIAUVKOMGQSVQQGXIITUEMLI^QVIGMJLaMHIZOLLBG`DKPHMGLKQHSFJHRHTLMSBTXOOEFKTQJO^GIV\DUGPXROTRSK?PSWDRSNMURI?AJ\VVOIPBEGDJOTSN[ORULGC@KSKMKIQJUSLTMFP]KPVZDHLOHPMMOSBBIOUNL[RPUPMWQUFGDILOSQJHQMQCMRNPI_KCNGTPYP[YIJRNIYBNRPTXXGPVMHYKLXILVUSPGQFImN>ENL^HJNNMZNICRUGGQQKEOSXFH\HMHCRNMW`XMGYNC@PPHCWZoPONOYJPOTKYSFSEGVMRBPJFJNFJQFUZIFWKGHDMLEGRGDDEMFHSMPY[MXNULILMCYVOMSSULKUOCGIU[[FQXSX@PSUMNJHSESJHUSTOKURBDQHEPMMJREMHCSKNRG[PPMMGSUYHMJRIJEG_KFIRPSNRMJZJ\PNDC[CKROIUOUKMJVRECJYPMOXVJEEGKIcFMYILCHHJX[DUBBHFJeFGO:ZZRNJJF@KJKON^IIPOOQHCIDGN[TPEVV@IEZLVPHPCCDKGORP^CBUVMIPVLIOJBNPGQFBJNMEcSH\MHQCHYK[OVPJJQN?MSIQ>LWKNPNTNWJJQKQPPeJSMEGOH^IUYJ[_LTRENLNQUJSFSURDEFUKOK=QMUCS]LQVFQYPOWFCRT;WDHFK]GNUGTTYCOX[RNRJNFTJNLXVRLJ`QSKALUNNGQNRMLJENRMQPAFNHG_ONQTMIWGDGKGTMSIKQWNUUIPXHCaFMKDFNLGXNNNYJMFFVTQVKDMROBKILQOTWWPHONNSNWHKYRI:CITPNRCHLSOKPRTVJHLILHSRWXDO`KTGKPUJDTSLPJH[JFEXQHVEFJH\MLIKREJZYHOOXTOON?OVCUAQGDXNHNHUKJOMKXIFNJLBDNLBUSSITUGI]RKKCNXLLKPDNOBK?ECLRMHX_XSNPBCSG\OPXWPSJETJHUOPEPWDFBLWSIBPQHMPFGBTPBMN^TQPPEXLYKUTTEJLUNYLOPNDSNMJQU]NHSN]STGLLNMM?ZhSE`CSMQXXOR^QFSNSPMaGINMOMLMHP[PbPHAPRNFTIMKWPUKHKbOVONLOHBIEKLTKHLUQJLJNKAP@YPVBLURYULLTKCSQOFUSOKWRGHFVILDJJGC@ROFDPEIGEFJOQLQVTFTQGTGMIAKSELOPLMVGGICMHHGGJ^GOEUKPGKMCHISNULMH[IUGGNTV\SULYLPNRONMINWXKDZLETGIINEURGMMOIHKXRSZWLTUCMQATT=NLUJCJCXKHZQFMLPQQNGNTNOVV_JPJPNUMLDX>QMNFMIGLP=HMNOYFSVROFFRGHNXUNQRHGLSUBWEQMJHMGQPRJnEMLVNCPDMLULNGSNHHDUFVK@GJXOLNSHVJG>OGCCTGLG\VINENNQHUE[BTRNDXQGTFX]]QOXQXQSBMHUT@MUUHIQKTDNRSNN@MVOMRP=TFMTOOF^QEPRQGNCZUQFIBNALFVEMLIPM]LYLKUOSL_NMSPJDPN?NJTXTP:SIR[RKJKHAPHULK\B;MHCOIRFVH\XSSQENPEMZKBLLJPHOPSL\LIROKTNLKHMAJPMKQMdOMO^TPJK_NHKNWCFIUVOOXRLMN[YV`OVSI[HLRHL@LTPHUKS?QSO\HWSTZTEFQOXNANHQRFGCVTSLYOPRKOUJBHM?L?EYKHPRPSMHSJDQPJFGMdLQOOAOLVKVOH[NQPGKDERBNUGLLILMNWSTHO[TNHLXHQOLNHUTIMIRYNQJJJLGFDD]CIIQNQRZFLDQI>>RUFbMVJLICLLQS?RFJLHHJIRQRU[NDNLQGLWSEHWPDLOKAcBTSZX^MNLGKHNODLKKPSISWGOMXOOQbKLMHRPQZVMEKT_ECNCFLTJIPLI`JOSA^WSHIPNMUHG[RMJ]UWQKLQaQP^QJKGQVRTGVPNGJLUXM?LH@KPWMOKGI[fILKHTQKRSLIONCUOMJOYTEEPEQTPLBMFT[dXKGN>SDTHGR]IWXSKVKCOCDPOPQKXTGNHKWDKRaPKGYXJOGVSUIKLMSHQGLUOHCOKBKOSQIUNGMQWMKSSOULPMOFKSNNQTOTTPMUTKUUCYKIJKSIGSVSILKE@QMVKHNTMCTLHOGITRKQFERQTFOKMPKIVLKNINPPPTAaEHLMNPNO>PIT\EGFTMOHNR@TLBR\VKINAOOHQEJSEHKBPCQINCQYOLYDQMQIPGL]DGJSLIHDRFSWNP\LEHLDBDUOJMRRSPTGOCSGUAPCLNHMMVHTKMRHOJEKIKXBOIRFORMBLVRSPQL[SMIMDLMGSGNNJFSRPRGPTNEEGESNLNHJIXHBTKOGCOORHRVMJESLMMPEXMILXJNIKLQUPSNJNVPSLGVHTL]GJQDLPPMMKVRIMMMSNOLLVROKJOFISEMIKDINMHLKSDLXHUJLQLH\HKRRRHPMNNFGIIPHJIJVLQQNPHNEGI@JSXKNJLKLHSHOTKIUSMMIOOSOJKLJPJIPIEIGKIQRQTKTIFIMHUVNOGTQJDNIYINILTRKPHPMOPKXFPQJKOBXXJHXJRQOGTIRQSJQDFMPM\EQPXIPGIQR]LOFS[ISFKMNMTGUILJTNPIONKTKYGMQLSIJ?]FTLRMOLNHIPTJTNIPKJGWPNPPUILMRSVLP\KNHMPQPQGMKHQGNPLMOGcHQ^XGVOmOMIFIONDBINMQQWI=MMR\RRSBLIRHIQSMMUIZW>EHfSQVYWISNTOPTUQQNSIDKDJGQDQPWPNCQTP;_XNJSUPLQLNVLOGHKSDKGAILTRRNPTJDALMIFTaPROTXHFHLVTJCLOE[PLOSTEUTIROUYKSOQYMHNQITAYCDMTQERYGLOTHZ[KDILSLSKVBMIPOQQTST\NMRNP=TTPRIGBNYSSDHQQURNITPWJMJINGDCPSVWOISWDPV?PQSTBODS@UIRRATALGDM]IFQNJYYSLDJJEOHPJNUSKHUOXRTCJPMP`IVOHPOVLKPFGRKRFLUIG?JKNKPPIIHIXHKGYNILQKNNMEBSLGSSPJPIUNTTGOSWOZLKEJTBSGWGKK>OIFOPRLELLTMKOQMQJRHJINRHNVOOQKJCHNP[XHRQNIYGJ_GPUDQRQULKULHPKJVJTIKRMDWMJKEDPCMFOTMVBEQNW=OQJILNMHOPNJJUZKXYHQKBJPPOUNMHFWDLQ`[SV>TQTWTIVPKJDLRXMMOOKNFKHKRNVPJOPUMJMUYFHFCNOUKLGQJDJJHTQUKITFI^JPfKOPISIWISJGTKM`KLMIM^PBFCLJIMHM@LIQISO]KPJRIITPJRZRMBOISJPDXMSWRLROGSOHIJDIXGML>UHHEVLHESWAWNEBG`LPHMOUPOSKSWDSBBNKJPS^KRVEK?BMFNTCUUJHIOM\IJVBPLNLHLPUN\L@IOHYIMNUSULGZZUS\FXKJMFNJIQBXAMAAEMBKHgIENFWOOCMHFJPVRERTFUUTNFOO`MMMQRGLTPRMBQMLMKHUNIGIWLTGNMTIQJDLJHBP]UDKKEHDKJFPWKORKSDQSJA_WBFHPVM:ONLNPNNNRVNELLRKJPUIPNLLCJKKYNFHMUEOINLFKLRSMYRYJL>F\QCSMXETT]VRJPUSEKHQJPPBNPNP`T[QLKQUHCPQPZMJBESPRLHVMQOSIPPSSLGWSHNQOCK[PQDARJRAAANKMFPRXMJLLPTTSIMMVONOMMGILJUYOJOKCDMIXKLQIONHX?FLJTRFRX@NaVJGSLGJDSRPMPVURMOJZLMYPTHSOJMJADWLGMNLT]FCdPNSSfSMKPQII?RI[JGNRSVORHJQBBMRISTDNLJRPIJIUEUORP^MIOIK@JMKXOQWPMDSKOOLPQXJKQHHQEATTPMWJDWFFJLKXOTBDU@ENRLDJMXOPQMGIROLMLNLJKJNKSLLDRLWTMQKIISQWQTORMLHPNFUGLLSRLKLMOWeLSYPLROLHOJLLMMJNDSMMSKSMLJISUGKMMKQMPRNMNICR@GMNLIM]QLOJMTPOLFSNMNMSPMFMJOROVERRMLOLMJMUOPJKPMPPJNJTRLPSXGJSOKIUQPJOKSNMMTNOINILLNLNFNPKSZXNRHLQHLMOMKPPVMNOKQNRQMJKJMFHINVRKOMNJPWINRMPNNYJLKOMPKNRCQPMOOSRGNONOLLGVHJRPPW@SUJGIPI[PLELPMKTMTMRLOGFELIQDNIHMJRNJLKNITUQPaQSIIZFIVQZJHNNNEMGMSOEBLPQH@VXKOPQFNMMKTFUIXUMNPTD\TEVKPTFSNGVISKJPQISBRXbHNFOPMaLJQUSVPPKDSEROHRNCSHOGCJNLWTRLIMJXUISQLAULHKENTRY@CFMLNMLYPMJSNB@LHWLJXOYMPRMENMPQNIGNQJYSFERHMBPGSWKYGPPVO\COGLUUFVOERJ[WOIQQNPJJKPHUUFNIPLUINOHFUMKESLPHJSTTFXIPGJSBTEOPFbMPJIQRFSRFLPEHHGIKXHJAMHDEEKKJITIEPUJNTDCKIKKSQNPEKKVMXGYRJfKFIPFUE_TMSLIKSKTLMKWUQLOOVQTLUQRZOSQMRGOINXTMUVSHVHUPOOPDLQ]LERNPSOYXLWNOPSKJHTRQLEEIEVMJPGLTPQMRSZONRMRSDLRSXTNYZHMTKWUQ\SWKOQMNOFGQYT\UQNXRGJEDHU]T]SVZOVRPQOCUSSLRUTQJQONOXJOLUMQNNYVVRROMWEURFTMUQNLINIULDRRLWUTNOOXSHQLOURSXNTKMUOVMBNRNUJKURUOMZNTOLQWNVZQJEPHOTNZJODOYPMLLMG\SOLJQLRRMSL_\ORQGUYHIPSQJQZKUQUGONOPSPPPQOVIRMORAVVFFB@MCKBIDRPJOPANWREGUGLIVQVFOOKNOHPGP?SPHL@CN[II^WZIMA[>PVRIQJS]QVQONJNULQOYMVUJIcWRIHI>HPJ@VIHSLUKQLMMKXSWQSNGNIOIWRQMKMUBOCIORKLJSORVWNDFPMJWLAPPIVOL\SSQDJJCFYXRVYRM@YIRPTPFLKJGMFRVILRHIEVVOPLIDZEVMVNXIDIHCXUSSRP[JJLJR`K?NRCNVA?OWG?FB[PSIGVQIGAPGWUS?HLFSXPL]QIHVIOVRNLGMWQNPGJLHOLQL[X@TCDQSXOQVNOQKDQKRFKHOLTWKHJDRNSMIEOTNSQPXMGQMXNFOKAUHRGOPLQVQFR\IHTQHJPSCQPUVTQDKPUXD\TNIQOMMKPSGQITMHDNVGQMLLJPQSMNHPPLLLUHILKOLK>OIQHNPBWMHKTFHMMJXLGQLMHLZVUNTYTPOPDQYFCUWRSPXSD=EKSIDPJCFJLFMMQKHNJSQRTV7UEM_MTPQLTNMOKJUPOLLKSHTJK\LFMBZYSNQNMWIDBDYPLGHLJYGLGMYNXGRSYMOTWRHNPITGRNVZTLGQQUHPLUHISJYLJMT^MRYUZNTJRPSMOBNGLPKNVGK^WJ>KWOLTEMMGVHVROQJKIMbKWWM<@BRICQI@YN@KYFBFXR;SFNIJVYNVO9KGKQLLM>BbUBIjMV?MIYQKLHEFXATYGBNHfGRG9ZEJ=TJFFYE>VGOWLN;TTO4IGMDK>KRSN=JDJ<@HGNPEXLXTRM@MWH[JL]NHVHNLCMUHOIHJJKKEQNTQRR`OMKHD?TSOT^^LPIUWVKP\PFGTJO\TIUKVRNVPIJKIYVPJUTJR^K@UOCEY@QPNDBSJGZDXIT?UJUWKPBRO\SRJWQOGONYMGBMODYNQMKTQNXX[RJJKTKOVG\PNJENSVaKUOK_[OOAVHRLVJQLKGDQNNATK:O^SQVME^RCS?J[ELGMZQHPMMJEJNJLSNIIQQISILOLPSSSEPNEVMNKRLJUDNSUMONTIJIRG?[SJOgTFKMEKIWMOFKPL]NKOOBOYMUIOSXREIMXOPGLO[]MONDFHNhB]JPCRCYIRPEVELMTOPWULMNUXLH^\EMMMNIQDGCGMKQL]PJULUUTOJEMYIWJUUQRQQKJKUOQMORMJMRKZSNPGRPOXM@BSLQMHPNEFQLT[UFLXGEKNELBBOQQLLCIXPPgEGDNFUIJKJ\HLNLKUMOLNSIFBOLPTJRMWSFMIJFOFNKBPIAGDHPWESOLSLLGOLKGMOCJSTF^[FJVGKQ@MRCPMFCKMLMVKXEDUTJ=MLRQSSRJKOTRQ_LPRLNKT@WGPKHPTFOPQJSGFAJGIMFKRSJJJZIFKTEOCDMGPKYWCLFHUHNUGQIZMONTRQJMNGUNSVTLULIROTBMTROOIUUTPMMPOPMUSPGFTKPNWNJKOPSMNRAINICMNWFAPLUQNNI\NMMDOMRLOXJOJIJJPGHgOLIHOCVNOMTGWQLVRBJRGFPLXXPXRLPLJ=MPNEKJTRIIOKNHORNPMEOKJE`HDULSQFIGVGEUIRMPFKHVDKNIAMSOFVSUTCWOLRKSAPSOMMMGPHRNMRLTSCOOEUVMSSPJPULSQOMOVMPQKN[SLFMJ[MQIDMKNNFKHUJMCFIMOTOK`PUG>FEB]AHNDKMHUHIADJIPMJ=OLKGGRLNSFF@JHOJRJJSOLXEIRMDWCMPLJEGPKQIIP@HBNPB?PRERCLKILOWNDLCJLIUSGMGMNOIHBGGOGMENJPJMN@KRKICQTODUQLQ9HOHTHO?ICIFNHFHLKQPIKP[JRKHPKMCPKOCGMFHALVRMALFOMONRLS\=MKTFHPMPJRHLM?VCMGFOHSMKHCM;TJMDOVJKETEIOIHOKQJQDYUOPQMOIPWJCLTQIOJZEGBEOBITPVPNLQRNMDMK?TKNMTQXK]I?QQNONLFLOOPEKLVLRINGQLNMLOINIEKSPMOPTFMIBC>F\I?ARWSGCKWQSKORQYPKWFODV[PUGMKNKGDERGOHQMIWKML^HPLLNHUIMNROL^MBNUQFRDL?KEJMLHQUEKAKEHTIUINGOIQNCKJWF>MQQEGWMFT`JRRYLMP@S@GVSTFTDSL@VNMU`FHBGHTF;KJN[CISYSM]LKFT[SPNSSTLQERJFAHHVJTRMX\FOXGGEBSDRCOZRDOIDQSLPG[TTKGTFFLHLOCTMDJLIJQCOVJLFOYNFMHPNAJFNUOLXNWXQLHUNMEOLLMMSGSFYZMNHMOPLPMFOKHGRJUSKMIHSCHLLOKQOOM^XUIJPPPHWTIEXINILPJMJFRLFJJQAVILXOHJJVSOKEHPEKERVFMPWJLPMNJFHQSRKGL@NYNKLHKBMYDUORKLRVGEPHMKSFX]TIJDINQDONNDOIRKPHSIKCBKWSDEVHGPTQNACKB@CLGPHSSTOPQR@IGTF\HKVLLRqPQKALKZXA>KZNKMOXQPJGJSPWL>HRNIJNSXMJPMOPUPQMTRRFVIGJRFNb@P8OFQJILGQHQFKKHMLHGHM\QC]HWOLIAHBOKJLGHGRKLS_LY[CHLWFYIBLENEIBRWYFIIWOJFH\QQMUKN]LGRTM^MMDLUJKKKOPRJWIGOLNMDIS?MHMHEBKZIJJ>CLLBTVPUHIDNLETOPXOLMBGJEFCMQPJCXJKUQUB\GMG^mSIGOKRQYNBFOKVF^JIAODRFJKIPHOXGGMHKKFJOOTRDEFTKHOFWGYHRNHPNMOOOJKLJJLIZFLIMGTNHVOIMRLZSVNRMQMOOHTGNLVNGLONNTfPU[JNRTFINLLNMJMKCOPORSPONKHWVKJPMMUKIQOKMJGPEIHUMMNZLIMLQUPLKEWLMKMQQMKSKQOTVIQRMKNKVOJWOUHNTJPSJLRTQKMVYMIPPNJROQFNDUPPSRLWLOMLDOKMHPLHVYSNOGMLKRLPMOPIVKLUHSJNQMFGNPJGJRXSPKPMLNVJNSNLKNTLMHPLMDIMFUPMONUOLNPIJPKHYNMPMNU@RSRJJNK\LLEKNOOWJUFNKOGIJKJRELIESPQPLOJPHSWNDMEOSP]KKdLXWOPJKORYRISE\aPSGLGSIVROUE^PRI\\RO@MLYNQPNQNOJKRYTWIXKOGVLLWOMTNUS\KNSITKQEKIDTFhLMKAHVGM>HQLNOQINXKYQSNNGKSJAVNUSWHQ[XNK[CJ@NQHSI`PEHUGLOMNLQYEDUNHDMMEHS`THPfSNNPOMMNO>MLONTFLQQLMMOIGVTEZEKIPEKGRPNOJBLOVATFZEDLOLX]MDNRFWPRSO?OIRTPI[DRUZSOILORPRQJTIYUZPR`KRHPSESKNAENSFCFYbRENJNLXEUSPEQYQFWNIKVMPIHILVOVJTOLVHMKCRPLNNHRN`QbP^LRUWQEUTMKYZYMIHMRSP\ORINKRONLN`ANGTPHLWNLPPJRKXPW[CUXVMKaIRHORSGVVGYSMNSMTJRITMMNM_BM\YOIY[TMOHPGQJXVHEFSSSZMFWZVWQGMHHQIW_KKYGOF]UKMFNNQRFFNGRONMSRPRFXPQQ[LVMIQWJNMSUQFZTQYSNWMMMIRUYRUQJDVFQ[@KPGVLKNYHLQKLHKXbTRIOLOMEINLJQOLJNSK?OCTPKWPDJKTN]NJMOPOPRNVKGQNNNKFJJ@LDLKIJMMMRJOFRNNJSJPHMLRKKQWLRIOQAEM=QKBNQGPGNLGHLM\HFPFD]JTHSEEHCHNLNRFHSIOJJQXWSWTARKFO_HNTJENTUIRLRPTFLJH\AYSDRPDOQMRRCONQHJ^CQSFMTXKFMOJDMSLNKKRIJFMMQQAOFLW\RLPNPUIRPULMUINQNOISP@SQESUQIMIHFTSGJPTRQJNTSQUSIQPGLTPPFEHRROSNQUEPSNNIBHPMNHSTOMQIE?LDTMMSQONTC=KTRRLNQFSLGLGENMTgLU[FaGAO?UOLOPHKLNSNDLOMGTDEJFPMMFJMVVIDSNO[HKKHKPISSNOZN\G]JBHMEFNKLPTFUKULDGRKJKLEKMYPKWPVOUFJMOHUWLTHUJLMGSLSZQHBLNJQUZONWGQJJRVTJEIFJHHKHJ]HRMLS=RNLGPSHYSOKRYNHDKOIIHMLEFPWEHH]SHRRGTMQGRUKTORPNHQCLJUNSJFNNNNQXRPXPPHKOGSLRGL[]QKGKCHNJKIGOWGPLRIFOMFPKOPNFHIFAL>UTVQDOJSFIIR@GFNFEM[KYRO?MKOPQKQGSNHU[OPISPOSJFQWWPCRHFLNOODXTIKFVMELJPROHHT^VXKPISSKJSJPUOXRPQQAPESJT[MJJQQLHDCMNRQHKBHRQNXSJ[MKPOPSPNJXF]GNHPXLIRLUMJMHTRNKK?[OLSJHMLOOIKMIKMRJWNFMPTDNJPSaMNNK[F[KDOMZ>PTLGLOJOJQAMPKRQMAHCAKM[FKLPQOMJGPKLPTRMIPNVHUEVLGYQWNGNPHLKO`SRPV@MFRTHOMSRMOOLO>RPTLTDi[FM[LMJQLOKKMMNNSHIUGBPLMIBP]KJGKFOSSJLOLOIII^TMGSKQPMCBKD]XLILRZPJORMPLLDGPCPUIWMFNKOMFDYBMKLVGgGOVGOQMVECIEFPFTFOIDJ^RJeEOUUKNSTZGKMXCRKHMSRS?MKIJOGHLJJ?KEOXNNNQMUHZWSQKCPWIL_KLOENRDLSRPFRPSJTSFINTSJcWURDPLRSSKREMQOJbMNYNLKYRNVIJSMGLJKJQTOKLQPGPSSKRFPQQIKNNPRGGQ>URPHMLLOPNWMSFKSHPJKGQRNCVQVTL=\IOPM_YUQPM`PHHKQJKJCRSNSI]HJNCNOHJMHPOZRQDRNGMINQBMFPSQXWHFUWLI?IORSSSNINNMRPQIOFES?FLMFITMOEQKJSKPLPJWUGETMKI@S?HBKLI?GFFPKOKGORQKEWHCJORLQKMSTLFCJG;RNTQLJPXIMHOHJNTWJUNLMPNKMTWHPOPTVEQNLLQLLQDHJEOOVJNEMWNCOQIXKKWSMQYIKOJIRMJIGMLOQQPRPMLGKNDFOZRJQUNEJYKSGWWK;HNOMWOEYGOGAQUPRQDIAQPKIMIRJQOMPWSPPFCOPQYJLKOWGPGRVIKJSSJNNBAFSMNTWSJGZEJI\WFIQJLVIMFMTENJRSDSZKZJHNJLI;MQIRFIQEEQRAERRKLORQP^KJNLHOKMQG^GWF\NN`KLTG_MDSLXDXMQQMKQVLMG[TMWONLPNHISTWCELMJTT?XRJJWNMQMMELPXOIYWUQNGKQEJMNUPI`BYLQHLOTQVHFRJPGKLMgRLKHRTRVVSHQRMGGIMM?LXLTJPJRGCLIM`SLFLNW?JCDGLZWZIJEHHEOKCDMLZSPDI8HWBSW>=TGMWLRINHAWEMRTDPSaA?UOBDTRLI@KQRJLLOKGNN[JRNWRKPLWTWMFRKW[JNQHSBOUBGQRQDPPWSNIRDGQLIOPTT_`OOMKRNELQZXLRRNOHFLTIPFEOPUIQQHKJGHQIOR]PXUUC^IFCH[RNJJNSIKKFBLTIORKJOOSOFJVIOUKDHS[JLZKNCWUZQOUMHLQ@ZQGDJOZIDULNJHP`aMWMVPUE:PNKMJAMSHJMQNAORFQKONIFPWHPISJFVKHGDKQMARJNK[OL9MOIQLLSRQQKQKSZMWQKNDPPOCGdHMPBKIOG[KEJUJ=PTXVkQ^RXVMWUITULKFCQQGHMRJPTLNZRPEH_HIFGQPPQOESdP@KOHVGBJ\RZXJLRFMHHK?YQe[IALXJQJQZSPSYONX`JNONEbORKTJGMYLTIKI\JbREHdXXEKPOOTSVWVNLQNQ?EVQPK\SQKQQRKFHFQKTDZZY]CI`KERPTI=LXMDSGLOJNVZIRUIRBP?QQPJXTGeKOFMEHAECSDDBGPKLD]THHFKVDPJKM>GYROESSZORQRDQOMCRKQSLPNJTHTKTLRHSDJHH[OHNMMZGQN:LKVOKHOAC>GEOKNDMTEWNNHDLVJFZKLVHIGNYDPVIIEKFFH=Q[SP[UFTQMMCOPO?BPESHFGZEKRLWNEUKMQJGMVHSDHLNEDGJTJKXNRNRBGPBOMSTYHGLECIGPA\OLTODNGJGOHPEOJOTR=CGTKLJE\CJTAGQNOS?LJLUQLNHKMYIGJRNNJMDIKVJIKOKIJKNWEOKRRMLAOOPQLRJOIOLLJJVIQBSLWBBHOF\NNLML@LXONLGQGDIRXHJDMLNOCT\FQTDTJNUTJPINQWMP=YCGGL\EOKHLQLKPRRJMIBILVISCINSXIVOJRNXDSQ?MUFODJNEKSaOWIAHQMF\OTZOHLAISOTWSNNLXEJLOHHFMTXD\SGJFIZFRQPRLLTGME@WRRQDJTCQFIOFLGJKJXHTGSIKROHKTWKJ]VMMQJRGSMQ^MJSKSONOPK\KKLPJNFNNRQKSHHKMIQL@LAEHORXTLVYESRLR?RNLQNNTQLRMSDKRK?RTLIJVIPEKYJEUSLCFRJLYTCQLAINPZ^Y9JMHRM[KOSPJSG^XGNBMMNVM=KSFFDLJTMOJGFfSPQKXGKaVPHTLJRGMROSCMSQCIIYGIHFOLLLNLAOPPKV[MRRKSRPREKQWRKIUELWDCPCMPOE?IIGDGIDLTKFAVECHPPMOJQNQ@WJNKIJTOHHMPC>TIUKGPAEKJTHMRHRIPCUPOJQRCUXRMQOGEQKKNNOIMKQJRVISPN[PHEXNHGMSOTQMGAOLZARJHVIQGLGHHBIINMNKTRTBLAIHTDASCV9HBIQ@O@KILMHSDPPFZT]PMO[TRVNOGIGLTJURSWIMPKMV?JKQPRCFPUWBOQFXCOAGHSPNSTWJTGEHQHSVJKJIGTGGDTLKFJRSLHKBCHLWCHIVMGQQPNMIK;I_XQIFMOUIKXIKODDHJHFNPI>PKKLISLSHVTGJRDAMIDGOHPTLLTBFDQVSMOQTNIYTDOUMSKXENJOaDMIAJOMSLQIVI\ODHWLLMKNHIUHVVGSI^SMINUPDMIMZVERO?APIFAXHHMNKIHWQWKLYILDPSDOJW[PGNTGULRHTSPIJ[QJG[HWOKYRWSR?ELPUTFULJCLKJOPQHDGIDVIMBHWXHL^JPMEUD`MLEOPNM]MRR=OQNBONENFM?OKTLNNLKQJ]LLLTNQSCJJMLKINCPIO@PPQQILGOUJRUKISKTNXNSM=WRKIT[JGG\cEPUOO]QECRAMQJKQPNUOJLQTKVJMNYMLQU[RKJWNHPOMHSPBFNIOKKMHGNPHLKMJ=XQRKOYFJQTRPUUOZHWPXGJRLMMNLL[LKWHOIODDO[PI@cRMUH@MSXNTKDLOEY>GMKS[O>MPOXRMOCUQKROPRORNQMNMEG=JQMTJQOVWLTSNMI]QUDULGTK\QQIKXEJC?XTMSRCUJLLW\GVJTQ[GLOGRXTJNHGPFNRSMJDVGJUMFDBVLWV\ALXQLKOWTT;SNSIMORTPURRO?W>IWJISQLEJUNHOSJMJJFNUDKVNNTKF\?UDWXNNOFCWEQLWZSI?RWL[NhIBDMKTNFCROPYIQQFPJQENMGFIGKONFGVBFFLPFRUZGHQFUHQMJIKLLG^QN\QLXHFNRII\ORIS`XITNJPONGALRGQMMJRLAI\SPDMPIMQLHTOQKRDGFGPMCRUIYIQO\IFVIPMPJULTEJ[_@NA\ATIO]MIMXEFGORNITUZHELBII?EKJQLHAI=SND`OQRFDPXGTKCLOJN?Q^MKRRZNGGK=RNDGPTNGRNTPKHRRFFPNPOLMSSEPYKCKOGJHKXIENGJYTTJIJPIBRNPGLMKXBXUWUMRHQL_MTOJDMEGFZY]QBKQMIINJUMLHSE@CWFCTNSUHIJG[KY[NRMYFKLAVNR@QKCMHYQMLG@]KOGZNTP[IKP@YTQHDOENKLYHUMPOIRRIIIR\OKGGPPHIUVHUNRPQTRHQPQSHKQCKPDKSAQORHHPL\FEVJTPIIKLVTNXNNCQODKVRMDINKSGIRPWNL[HFSDHJVCMBMLGOOOIHEQDGHMXPPFFMLPKXNEDRLLNRURQBEHJLKRNVMLUEEQNCJMSMDHQQMTPT^KTLPOOILKXPNINAIGEWWEQKGLRRHXJVZQQXQHUHQEMJJPBRCMTNK>AMJPWQHSSNSFHMMXOMOQADJMQQNVMVMSPUZMSHRLMSXRJTMHMS[LTUUMXPBWWIQQbAFRRNJORQZZQALTMSIbNQFLLNYHQNNKQIK[RJTUQRRNWRJNRPRPMTBQTBQJOMKQNXPORIKNYLDPJSPDURGTMJKNKAQJHQTJDLZ^M[PSTZQFPPDRLKPSTUVMQRIGODMLFJ[MWVGMMGBHK[PLHIWFBMUJMLKROZKV@RFIWEJVMKHKRQ@JL@MEIIMRPGRXQEWQONKJTQLCODTOLLOKLONWQIOOKTRSNDJRLYJIGOKTNNHRFFQLJ^OKI@EIEPPGJHHaHFDNGMJULAWGCRLA\PMNPUMMMULQNSS`HOEMTJTKVRRIJWdQNWLLJON^KaTGXOSQXKKLYAFOSNSPP>COURPTOHO=MKOGG>HNYN\XWUAIKFSKESJYDEQMJPERGIGNIUHGNMOKdWOKKHKFPJPHM\HHH\GPYQQFXFQOJROO?QUPLHIUPaNJKJVOQDJFHOK\fTIPTNVONLQLIETCWPRMNPJHLTOBL[RNHLW]JGZKE=IWINONSPSLLJRHOKMEGEUaOOSQNIXIOQLIEHN[TAIKVOUSGUEJDZNJMTNJUGBLEhLLFE=PAM_SNKTYPRINLTVDLR?QUMDJNMZWUQURJMRHKLLXGNQKVBV]QPUHJSPX^PC\cQ[SUMMWNNKPMJGOOOLOTQQIHE>JH?QGCUTTLPXPNJNRMUH[OAWXPCFOIPTQPRKLFQJLWINSPKZP[IHLSMKKLNEIVPdMQQMH_ORQ_O\HKORMJWJHYKJLPSLlCJGHLPJKKLCMOUIFOObKWJTLKO[HhVJK[PNPRNGIGAPNQODQHRIKKRMLCOLMRGVEX^b?ESOQVZORTWMUKCIbK\DRSLCMQM\DTLPNGETVGHORPOZITcHFGLSLBFTVGIUN]JOLRGRUIKRQ>EN]TDLNBZNMK\FNWJVQLGONGSJYNPSFNQQRDVENAOIQMSXDRWIPNJVM=\XMLPPHIPZNbAGJTIQ_LOMVOFPORPScZKEPJUQMVL=^RMNDSLMZLOSDEAL\JRJBXIPFDYVOJPUMULLMKENYWOHZ?UFVKOSJIXNMPTVWMGJGRKIOTIMGKMOONJCRMKVRNTLR_MWMQTN@JOKLNMLZFPULMOPPCSWQJMHFTOUKLMEIRSFJ>SPQPKKHKWVTNMJGZMXSOFSVTUSSFRATTKULVIPLSKFMDJRGLCVF?QKPMOTHNWWMPYNDONBOJOMPGS[QYTWQKMHDKPNLYEDKVPP\HJOPDJNFNOSTOOOV`M]RGFIFOJKLYMGEKJMUEMLMaWSSOIINGK6KJMYRISNGOXXRNQOVRTNHPFUQYOMNHOTEWNXQPLFHQMSGPOKMTNNLGLKIFKIQJkPIQGNRQIIJVOMMNUTFDRPNDFQQNP@COKNBFNGQMWLU=BF@BURVIORhFFHLTIJGKJDQHHIHSLSTLLNRMWQSVNATJMYDX?OKSRRVNLIAVLCQKTSPFSMPEOCNSLKJRDKPHGQAV@UXWJRXUNPMQLJGAKMDRPQWIDFSEKJIVHSJJX]SIM=EXNPS@KIMUTPRVXATGJGDWQJUMWRRODSNAUOAVRDDWHMWNHJSFRPJHTUIPIGNEZQQHIKUVIIT@=JMEIPHMUFPOOEMHNHIKKGCHMWRUEGIKKVGOVQCNWDMXXMNJUBUGLWYUJTOJLTOPPH;ZS?DHNXNBOPLHPXQEWKOGFVMMG@SV@KTKNENOMJM?JQSSEKVNLPERPXMDVIOKVRRGIYFMKIN@EDC?ZQaGOIOEMJWFQPHEM_LVFP]UKSDOMPXAWDMG>UUKLVVAWVRYKQec^TDTXEJTKLcF\JJBKLDLQMOQKPIKDBKEMPOEMYITJMHWDHRBH?EDTRZMS]TQUF;NIEXGILEJ=KOTQL?KQLFEIQIQOMELOaULQDOMbSLFEQVED];KVO?LQeK[IQUFIBOFEMABH[GGLEKISPQ?KVUKASQ@M;PDCMYG>MN]NHCDHYNNK?FOVFXW]\LRDCRNCOCWTGO]WR[JYS=MTSQRMDKH@KS6GBLQAM?HFGMK]RIETEQLQI?EMgKT`QMO>OJ^W;ROWFMKLUFZ@NLESMMUPNDHFGPHPMGKPVKWQOOIKMKETKHJNJWNGOVPHLLQONLREFISOC>MPVHKPGIEWQKUOFSFSRSSPUNOMKHRTMUUNLMZLPMJOJZPKFKPOKHFSHQKYVNUHSKPXMJQPKNJ[LLJFQDDMRKXNOIVNMQHGRSOKSOGQSRKCZKGMMMVAUMMJJMLQMMKQIGNRNDUILOINQLUUNIVVPQXKQPIRDQJIIKTPZZOPNVNOQSHQSTPPKPLLOGLPPQPOVLNNLNTGMJPIMMRUNDMF^TJNOKKFPLXIIZOPKBIMVXKGQVMM]NEIZGJPHRCLPMNGOULUOJLMCKNIKTOKRDFJRNKLWZGFQIONLVTOJLHFNVMBASFMFQ^=RLDODFYfJQFHMPXJNSOSUQ=PQMUMOQQNAFISVHRFTPMSPPEPO;]CQNF7TAMNTBMRNJORHEMSJLPKHRSLIFLB\MUSIGJNDG@I\@LODNNMOEIGKQKIPYZNILPIKL]IPGFNOMZRCKOBHEHJSFNCMNNJ8D=LFWHVJGLMLS_SMNKGMASNQ9SPJ[NJPXRSJLJSKENOMHRPKNHOHLLNCVNKJMSHDJJJLNCK\MDHKTNOOLHLLQPORMZIMKCOLKPJUPWRQELSRUSLHHERKIFQH\KLJIaXFjZLQXLIFMR[PLQMDLNLEFE@KQYU>MLA`OJPM@MPLCLKOKKENEGWKXPEMGDJK^FJNE^NCJAZBNcLDATQYPYKV[NOVNKXXNITFGOKGOG;IHQO=KKEIMRQGX@BGdMTTWG>TSQQJYIKILQKGFTJMLMWELSVSHWFMGWPEQASMQCRRQHXPNOGLQUAKRTCKPKKbMSPIEPMBZPMFZLPWIPEKMkTHS=GbFANOY[NREKJLTXJCGLJXNWDNPYRJHGMNWKSHUNVLKOORGIASLHXNOVEWOHHPCIRRG[KOJPUUMBHGHLP=QM\[QVGTNELZNDTQWHNJMKLfXVGEUD]MANJVSHOFOOBMMICNHFIOPOKNLMPOSTFJFLLMSMXWMNJYPCQNCRTLQKKMNDNO?PGKMCUAWUISKOINFNKMJVIINWPTWDJOQIIIMPNXRXOK`SQTRHCDKLLFNMNQSKMMOURMVFTJNKJSQJKGNQPMQOLTFGDGMOMJKKLGCDJHMGRHMKLBDFZNNFJIDHIKOGMFLLYKGREYKLUHTERKDDOPNNVLJNXNNOBPOOSSTLFFRQJOLIHJLNHPKBJNEELLMPJ\NIAFEMGXRULSNQRQHFKJJECSUHVOONHLGFLGMGLOFTJMGGOQ;ONGSNIOBMGNMPKCMNWINRJHLIYHNJKMSEBLXMAQMCBFGPKUNLNNKUJNELIOD[PTLLRJANKNNRAWQEOHMFRMNCFRISOMNMBLTOQOUNUNS[FUPYKQHPPTCROCEKNSDIHMXNMU^TRLOLVURPALUBIVLXLWXITJSVTPN^LgQWLHOQSSPUYObWBKX9PULDKSSXGKPKHVOJKNHRQHOIVGTKIGEOFQQPGITXHRLNRS?NLYVKPLGKQAKGLUSJ?IFQNOFHRQIIGNRGVUXPFPIHJJKLLK=LTFFHCJE[FEMHHBXNGPHHTM@GQZQOXSOU[MEVMVPUMQN;FWVKNBJGP=MGNL[KNOCNQPLHK9FHgLRSCQIQRDPHAKKLDSWRRNPJIRKQEOGC9_QFRVE>POBLUASNJ?KTTX>DGTQXOSFTWEFCFRQG\ROLKD6LO?OE?LLM_ISLEORUUKLQXIUPQLTHNJLM@RRMGHHFRQMPJMEFJMZLLLOOOOMJJFDCPMPGIMPCFP@FM8KHLHHUNNSMXQPQTELQNMOMIAJNIESFHEPLKGDFB;IGANPVHABBRPNSCTUTSKM?UQFFLRJ?YHHVLGMDPJPKST[MKR[OKXLGMVWRQKICHQR?KIMWVUNTJHTLKLIKTMPSLLDKAKIINWGTTN[RHMUZDMJJTTQHQWTOYMOQKJOJVSSLRUIIIEQSFKX]HONDREIWHOJQeLOGIFPHLOSSQMNLOFFJDPS\JKMSONKLLJNLLAPIEKHGLRPPBPMIWNHVSWOFKTRKTNJJFHVMEFLHXHRQBGXSUQGGIKMHJGCGLNSLOGHOAOUKJYMLONLJU^FHLXKSSKPa@NHIMFPSIHOMKHHCFIUNBPTMNPKLPBLOLRNCOLUCRMIDSMKJNKKGMMGHSSYIJSKKYNNOFILIIOFLKLYIOKSGXFLKSMCFCNIUROICKQRJKSGHQIBBMPSRPUJPNFUTFGFIPGIMJCVGSLJKUSOK^NHXEGKUKQIDSNRDERPRKPEWPHTHANRLHNMLFJSDLMFLMTNVHNPGIIHQLLOQIKDNRFURURTNIESMCPIPESQNDPNKKPKSMRUFLIJLJAFNEPPPVRUJLMUMJDPNJNPDPRLCHQNKUONIEONKMZKWIKISTQNKSHWIIMOQTJ@P\KSHMKUOKJNGROOJIELJHUTMNJNTRSL]RQEIYVFKGOX[SQJN=JOGSJGSJLGKORUDPVI>IFKZPILKHHFJMVEATVKSOEOISRNKIMQHKVMMOBJOEGHVSMOPKXYJSPGSMNSVJPAIOP?GTYTLOUWGKLKUMKMNNLOQVGDIQ]V?TVJFQP\QJILRPTVMVHPM_PMEKYTWUORUKMPKUPGJMGLKMUWQCSHHMGKMMJRZHYVT=HDCNQIRIPQJPGIHLHNHOGUJIJRVMT[RUVVJMMO^NKMVUQ]DLHCSKBTQLQKPMHLPZSEKIT[VJGTHIVMUVFFUDFNHQfOFLDSRNMOGNEMOYELHUFILF\ONSSbECFULRUMPRSFMKEBE=O?KLXOTQPNFNJIGNWJLEIONPNS[GFAIKIPL?HLCPOGBLSNNH=LJDMDUIQTIMQHPA?UDNEKNMNOPRAIRT@cMVYGJNFMQCBLCVJRBVM\JQHPVFMGJDURB[LV[NFQLOJUJJTLJKBNJNWIJDUMGVCGKOAUPJTKSQPFXB>JDEFEWS>JHEDOK?R=LKRLRHKNJLMO>GSDEHONQIMPHFHJAANOIWMMLKLXLP?VGSL?GPHTQRGKOPLWJFQ]NFJMZLYEQORITFNUGHQKKDOKGQIEBT>GPOSNHPKJROCU^PFSO[ZIWUUNMOPIKKPICHOJMRJGTKUKYIbSEGVLMAHLIQJFFSTPGDUHEIURKEMMYMKQFJFEQQFOGISBNLMQP;XIGM^\MIJFQN\MDJCADZOUJNEUIKMDUKJEGCIBC[WPNGEPRIMGIQIFbKWHUKXNGHDKNMGOPBKTIOINNGITLNIQRHMIPO@JJKRWNVGL?VVSSHFNKHDFLTN`BHKNKCMTRUJFXILNS[XOT\TPPEJFINMOQHDNPHKLQVRKUVUIEFQWJELJQP@SGJSMCRMJJNJFNNNKNQOHMQQXSSHLNPJTXWIORIJLQKHLBFQVOPHQEEJHOBLUUYN[PMDNKMLLWMLGRUHM[SFHLSEWKCPNLNL[VKFHGPCUVRFNSQE`TNB]PNFINLHKJKNKMLHHLDFGLOAZUUNQLO^BQUHCMQXXG]XHfRKNSKMCKPUI@RN@XNSPQOIJWGJU@UNRWKCPKNIHLNKONIFIIMASRRQNKRTIUQKNIOTXFMILANNNPMFKAPOMKVFONFHVLEMVIMTEYPFW_[JMT;TGHOYFTFKORNORETVQMRGZPXXZSCQJIHJUY\F[JMODIWXPUHVQTSTATQMLTcDQPSROEGEHKEKX[LLIRLP^NGRPEVHQMKGNOcNZSMNHIdaKDKQZNINWJLNMEKQR;PPHJGREFJZFRHEKUTF@RHEJIGQGANMJENFNJR]PJIOUMIOL>XQI@HT_QKIU[ERQRI\IKJKVKLVRJYAUXLKHMMMFRNORNMK>HWG^OVILEQMG]IYKUPOZ@@RDBPOGGULMRZHPRUSQJHZEMSIILKDHJ?FEL[FQOKVGFROOOYGUPIVFWOQQKFYPZMKTROL^JWMMFJMKRKHNXQ\GIhTLVSQNHPF`XQRDORIOTRLHXRJBJVPPLQWHHKKNQQOSUIMMQDKKCRKNMOYEGNEFRIOQMUOMGLMOLMMNTERFNUFKHMKAJENaEJMBPQKP^UUPLHMJKKIRREZ?AJNVEWOSWUKMaWKMLIVKYSFGKTMJFKPOXR:PSJLIKHOLSLFEKP[OXOTDNLMVMLZOO[RCHM\CNKKN?GKU[UXFGKHTHKPOPHLIPEILYSGPESMRBDNWPEUUPNJRLORNMQQJMPTIBRETP[JLNLSPLOTQ`MMLRFFMNLIJ=JJSQN`QHCM@ZXHKX`IVVIGE^KKUZOIWZOPTUNGNNJQJLV]XPRHRFHKOSOVNWS^LPJYcIdOLHM@LUS>SIIYWEKPOZSMJOS]SHNNJPNVOLVQLHD^bENPOPEPILKO\MQOM]EUAIQHJ\LWNNLFIO>OOCFHWEURUSKJIMKEODSERKKLSGLHPNPO:KRUHTNLIWQMBSEVLQMEKJFUFOPMOQI@MMMEIPROOENLMLKQUMMCUG_ZaTOFFTMMOOKRUMRMHFRRVVTMIJIC[IRBJMPUXGKKLQLGFYWFEHUK@OMSKJNKFQMJFMHOTPRJLNGNIRFCQROSOFLUTPF@IIXGKW>YYHSZMHGPGXSKNJAQGNTXJLEDHNLLNGKOOJNOJVR\fYNSGVLMDLPNMYMLJQIOFV\OROLBLKJFCUGMMHJNdKEIZKHSMIMQU8EHGGKIRFNENBDNIQaMHXIRQWLJXPQNVSTKHLX`LOCNUXT=HJLNWGNCCRDTMROLQLTTIZLLPIIOLWEGNCTKQVMIC>IIRHBCKJNGHVOMDEPKPJQ[PVTTOXCEOOQCQQNVGaJJFFJDELGWUQROMLLTDVLMGSINHRILFTULMPEYMCUHOTGGURX@NJFEBUPYSYNOLNLLHTNQKROUJSVNFQQNHOVQJTRSTNVLOGMYSMRQGT?IRNUQORQHGLGJRNURSHKTNFOGYNTMJKDV[SGFJREKNONJTMJKLSLMKOJdQCBGRFTJRIRRRRMZFIJKHDQL]JPSFFQBKRQVWIEJMYMHEGCIPJRNNKINMLPSYIVINDOMR=MOKHPTLEHNCIMOKETUSKFSGUNYJOQLQGERPEKJPPLOAOMMDRNPVOWQLQRTWKORHMOWYKTIMLILOLLR>TIEORQIPETTTAMPR?MOKOJDNNTHGLPGPPDTbMJHPQOJGNQGUIMITWJLDGBTLSDROXEZHVFBFNGMP`OKLILHJIRQL;TLUOHKdEVWIEVENTLZTaNTJMUXT`GNYQJPQHWLYROKHNRDNTJSGIBKSDRKVHRKILSHHWMI?RGSUKNMJORKMTOIKBOOHPETIHNFXYNDKOJL\PDIIGJNBMENPL_MWLBTVLOMQDI=IKC_IREcJVMCDcOILLSRUKMGKOGG`NICBTQMIJJ;GPMPKOKERXJOLLDZXBLJTOLGCVW\ONEKNDJIUYPERHJ@I`GOBPSBJIKO[G[KHNGCaLTWHUWPPMNIFMRO@MIQOMGERQONKIVHK[JDFRONQFHVOLVISUQH[JYIWPWQJGVXTIRNCPVXMFU]ORPQHREVANGLKZPTNBZNLONVNFKOMFNONGVFLJOUBMNUADMVSJQHPSWMKKNLLKKEUQOEPMDXNKKLFJIEHOQNMIHWGMRRCRLBXLPMDOIMWNLHKONJJLFGIDH]MOTJOMIJUPLTLYPDORKP^IPRMLUKIQKPHLHOFMILPKOJZNH>FSLNGDTKZNLDPIFRJPcHFPWJRKESKRS[NDPPROK>KMLDMHFNO\CKJ@SOUGIYPRKFLFK]IOMDJWLKGRCRFNRIGZHJHLEJJYIGOH_JLIGHGRNVGOCUFJGXHPTGMDOOQLOLOV\?QKQGYQLPSVIL]NRJUXEKKMKZPIKLHRWSPRKEMWSJPM[NRUVTMKVHVQMRLKSZPGLTVCXOR\ZLPNTP^U`RWP[OIFWSQeGBNDTPXFOLUKZKWLOSLQQW]GRVLWJJDlQBVRJSFDOZTPHPSHYKQENTOGFPTMHXHNHTHYCFMRXFHQQYSPRTKOVYNSPXAONIOQVPQIEISLOSHOOQPV@WKQOLPKUIJM^J[N\HW]YKFULLENTXLYPPKOOYUNJGMNH\ZUKPKURMaIEIOVTALMLMKPNKMRNMH[IEUHMHPOKUXGPJEPIPF\ILMXEOKKKMGXJCJXNCXKALRKMVOKPJKJKOKWF>TTPHNLOKeIXTVcMUJAQPPIFKOTGOKRLPJYRLELQRLOGLAH@HUDS8PSLLLIDDTL@OHSFRRKMGULGLFJQKKMFOGPLMUQUQL[LPGSAO[EALO_HLWOMOHRKNDQGVCSYORKJOMPPISINNL^SEKOKSCHUJIRHJIWLTW]GAES[LCRCJEGITDRROQHHL[WKNSQVN[LFTI>QYKSNJEIEJKNQJSLKUMJVNPQTKJPIZHAQMTQFGNH`VOLRSORQHMNMONMLSMPKIJPPOMIRGRHKMRJOOJECWGNRNQILFIKJGJNNQQJYQOOLPLFGGQGWLOOMWPOKVJDNJTQZJIOSJETGHTSEMQVMOJ[PQ=NRTKEBPKQMHNPORLUPQJKQQURRMSJQPLP\LPMIGMPDPJFQSKPVGOQWLSJRUMOVSUBAKTEVIIENKSVVQLEENSKSPRUPDNFHLOBQCJJMRLLIGSFJFOYLPKFQOJMLTaHOJJURQFOITPGQMONPPUPRWNTHUTHRFNVOJQMUXFHHLGGIILUWKRFINGSTOJSM\MUMOUDIWQDPOOKJEAKLVT]MKHOYFJLLOQGGJM?BEHLUUHOOBFALAEFKSNLXEKIGLQNGGKTMKNSNWNF_JROPUIMDZCRKPSSOPHE]LFFKRGXYFSKM@O[WEVVROTURQQSJJDRHKPOHPBVYIOQFGMRKUOGMKKQKHQPIAFUM@JPOLWUVGJPHI>USPIMGRNELJPNONOPHXRAVSFKIPMQOGNYLENIL\LJEUVGOVRUHNYSKLFUIMMQQSSDDNPOKBPUHPNUJSYKGLJKRHNUFNYARMMIOBRIBSFVBLILgUQMLOWN[XNRFTTGD[NOcNWTWRORIJSFUIVMIVLNFELLHNFOLJNKQNMCMZISTRILRQQMCMTDENXSGOOPMT@OMKNNOPUFNJJNLHRUMRZJVTKNMRNRQNMKIPMNOLMWUJJKHMRTO_PKOEOUJRPUNLLNLJRNOLRTGCYPQNTQQLRZYMHFFK@LSJLQHNW[JH`KLJVIFFNWKSEINJQLHJRHPPTIPLHWDDIRFYJ]OKOGTITQLFVXFIP?LRbR@PTMLHMJLHHRUGRRKYQSUJPHLMANMETG[FEUVRDIOKMSKSJUKKGWLVKYJSYVNFH\HUFHMQNWRVNTYHK=LNWNDJELPWESUIEKM`IEFRKPIGFIWSQVGMQNRSDPSNOQOINUWSK`HBLIEHSGUPVQIID\NKPHNBRHITKNKJMZSXJQY]MKNNPJYLPK_PMLPHJXRKLESPSDMKUGHEMPHLQKNCP[HNHNIMJDEXKGNLHCZLCLGPSMIPDFMJTSWOAYGHKMBLGOKGZ@NOTGEGOGTKARECTQZLJEGPJEKNKNNFAbMMEPSNO?EDVVNDRJRHSWGMIHLI[JFHQSEEAJDBBVOPWURDIMSU^OHJ?LIPVHNKHVLSFRSQYKXOWQJI\MYQT:PERPIJNRQWVOHL@LUNMPSSODSTOJIGMHHINVQOQWHSW[PPRQIMORIMMMJIGGPOMPKGNVE[IJSMJLUOSKNLPMEKNLKATDQZDQZRaLILSTDYNEUNLKGPR@QLRNFQKSNOOSOHTBSLQTYRFAQOSMMNUIPXVOJJGRYQDSPJKMS]OLLGKIHKRNKNNXTURPOKKNOSLOLMJPPILIRLSDPWIN\FK[EDWQJNHGGOIKMLRJEUUO[NWK`Q[TTLLMOUQWNKBHOKOJSNJDIXIOVRMMQ@GTIPPR?HELRMLFOHGPZNRR`MELV^DMKSOKRMEHTPKYWIJHJPCHLDGWEUO^EPSTAQGOKHKNRJNWJVVIDMHWLKJUDMJRFMLBTBGKDOPOLMDQFVBKZ^XHHJSONRMJSEPKJLXH[PSCIDOQAMU`K^JHRTGT[KRUNMNNHCDIGSPIJOEVHNBJEHOX]UMbO]MWDIGDOOSKHQNGFJHQCVSLNOQZIUGWWMARPZORVOaWNFKCOKKSHNHSCCK?TVWPHL`TMK^NMKVQFNNHMJUNZLSXGNDUGJUVVHBGJNDLWPQ>JHNRNODNIMTTKU=SOQPNDPSFSWWFIVKJATMQOLPJMEGLO@QKHIBGKNGGSLQUUK]GNEUY`ZKQGJKTXAIPRILKHHSKPUNWMVYZSMMGWUPI\JFJOUWbQPDFMFKTLHNLUE[MMVOJHNFLIMJISUVUGOIGPPIUCMILKWXGFSLIMPPFLLIPCQUHVYHMHUZKUKKQOKLORLISTOSRHOPN\PJGOJPUGNNTHZFKMDbKJSMMMJIWEHLQQPERPJMFDOFLGPPSSJKQWHBNFWLBTLQUQRILLQITAQILaOUGPLVNLGUUMNTKNGLNVTINIMZX_PJKGLMIMKWMKDJENHQOCTQPONLFP@INTPOGHQKOQOHSAJQKKTMKLOJNULRR@RWROGGJRZJFTGHRKOQPQICDLWPQRMO^RRSJQLPJHKKT_IZHMOKPHPIWKNQRPNFCUKWBSGQNHKFOLLGFSHXPRXR]FMPGEGMOGNMSOPDMORPLPPEPQIHLIKMOQ@JJLFTLZMMPNSIQMBIUPPJGL^MSLOLMTTONFEGRHRWGJSOIGQKHUMEVHHJQPRMMaCQTHPOSNLKJERELPMLNQMXQCKDOBJHKFWOYFEPFRP\TKLGLYFKQKNSPOSOPOGMLTBSMSNGLDHTJLLCKHPMEHKGMVJHQKXMMMWGNOISJFMJSHIRNKORAVNJFQNXQD\@GRRKKFJGME?TPNPLPPQQTKNEOMJPHLPKXJJJQLTPLKRFHBHOOIMNMOQMOOQGKIGNKPLQUOEPJPIWTHJMKUYMJRKPLKS\KP?KMJKIKRJN>XKQMR96PFHNSRRLOAMNLHNK>BROSIVLIDOKLMOONQRXUIPLFMUMP@KSHQRJ[KTKQQBYEJJWHNLXMIQRULLWNNBJ?BN[SMWFNI[E]OKMEbORJRR9;JDLKWQOULLFBQJHAJQRHGLFPILLQ?WINJHMG]TLSJKKPJL=DPSKILUGPOQPLMXWPNUBTGISPKPTIGSELQ@MNGFKMNF\LTJ7FUPLNXIFMPQJNKDVQNPJVFLLSNNXRVWFHMGKSRWIVLQENJHASPJCMRTMKLMMFUVRENFSES[ZO@VESKSUGOXRWEHJHEFSGLNLJOQKSDOHTHNOIKFNLCLEVCQKEHWGT_NSGQXMTOOLLNEHP@RHMEFMRIQ>REAFHTHGMJHJOIZRNNENJADVPOJJNDSJFE]QUFFJIKKKMDEPGFRKRLRQK^MD\DBWOaIEIVQLLHPKWTNOY`HNZFMMOS?FQJYONVKKJPBQSSLPSHO^NLVOOCHWIZOOLDA?RSIFOBUQOMLSMTHEGOTMQSFKJHGJEWLHGJLLIO\EEJPLQPDKPQFUJLVP]LNGIWUIMMSPLSKIET@G@BYO]ON`IGREHPMTTTMHNONKMNODUMPMORMURKRKPHQHOTXDEJOXIHKLEDVRSOUNPOTDMERFMQSPQGVH^;H]JLMIPMNKSKSKGLGJNHRKNOLLOQKVVNBOVMHQNINRJI?HQWOMSHLHJHYONMMPK@LHROHIKPFJNQRKEJ@VHDGOOKJFFGJTKGLLHQTDQDCJVFQQXR=LAMCHOCLMLL\ABUWNKDQBRURNHJFPTCEXTEFLRKJQLKMLUNVGKEGPRPEJdPJOULIJAYdUF^HG?SMHCQNQFKFNNYGEJKKGYEUNMGPYXWLQGJHCS[HNYGOLMOWSUHPCPCNITP_^GHHYISRBX\PZRQPFUMFGNUGNWXJHQGM;V@JDO^GGHOIUQDIFCYMVVLPAJL>DIANPOJGVH>GUHUIK@>OESGNAPIBK>ILF=UYJELPUQMDNPXZGGNJMQIBDPKFYICNTVUL=CORPEHFPLSDFTVKRKUJGQOXHSFUWPONMNM[APNNGHGFL:KTNUHNHKVMFPPOKLMNPPSKNYGMUQFZTZISUIUPOSWPFNTKRTKLUDLMQFKOKICJ]DGI[ONTRTSFMOINQJRFIIKHMXJNRRMPUIHGIIOUGFGPJGFLLKKRKEDNMMRSJKPRIHKPEMMCTMPIIOKOJKMKNITTMMVRKWNNMNATNKNNRSXOCQYSIIMLDDCWVELTMIHWTONKK[JIOIXNNPFEMXLPFCOLLOOHTOIMOHNSTPLTYGMEERRRSNQITONJPPOMOOWGGMLLPMTKOXOSUTTNQQPVLIXISPOJQJLHEPIQKOHAORQTURHRSNSITJMGNMEKDRSIMV>MIGQEKMKOSBI[FTJYDNLIHDMR?XMPIFMPERRWN>GNHLMYNSRNVSNNYQQSJMRMLGP@DMLOXKTQTSM[Q\^>HFNSIPQHUHENINFHPGBSQMPFTQDFEQJJEOUHNXHFMJXORRF_CX[UILTVWHNEPD[BTNFZFSRUWL\VMFPSDJMNJKUUNWHKBPUJPJWWMJGEMMJQYIFR^KWMOEITPXPGKRGELWGRL@HMJJSJRQJGJPGG\UJPUDMPQKIRUSPSPEFFR^DKT[KRNWCPSWHOHXPFVSXMKBWNGROWKL8DVIJLFMLLF]RSRZDWPN>ZOOKFVLPMPLOQOLSMEKLQUJQHTPL^ULWTVHNOTJJRVRLCJYSTRMVGHIHMGCHXFIKLMQJGTASSHUHCRENXFLOKBXNBPRNGKXWBLUJKQ[UUQISFIPYLE^JOYQKZN\OYGMUMSPHOHZGFOGNN[JNLOISC[HVNMJQCFGGZTIUJ[VJOSMWWWNXWLQOKKQS[RSNEWVSOSLSIIRLNLRIDQVLQKGGNPEDNHZPNLUHMNPSL[IKMLS@IJSTLNLSXVIUEYUMULQEKUXSLEQJHAZRSNZT[MPGISNKPUWKJKGHOP[OPIFRKYSKNVTT\MAYZIKIEMOTYNSHZOUNKS\MYQ[VMMN\XMNQ[ILJKNBF[MDHT_@KCNULNJLMDFUONIHAOJVIYRNJQMNNFJJMLGSPWG]IR@XLHQQOCJAJLULKDFMSR^QNXhTMLGZEICULGBMEQH[KPZB\Z]GLJMHIOFGPOHUMVIPGNIUKP@PHCCUAYHED=QUJDRROMHSHONTTANMMETJLW?TXQONQHPMQVLILQ`TYLDL>S]OQAMVQMJLYVGWBATOFKUTNLNROVJQLQOGSNRSSUReHMLVJSPWZJPNKBGINFHMVMJUTVRJNPFXRZYHRLOESJKNLI@XWVPIFEEQBGH]KKORLALMJLJNTPIGWNFQNNMF`GAIZNJC`HWLIJQI[@N8PM=NPKMHSWFUFGCTU?QODKIMNNVIJVAK@OEJLLLGDR[OGKF`HKbOMIIKBIVTQPFGOQDKKGNBNISHFFEUGQD\BNXMKULTJIRIJ?SHNDQIIFQFPHUFQIJNYTNXMJWNNVPPLNPQMPJYUQIIHSSJDLJLKWJKDZTEUJJIJDNNELJMQPLNFLKXFMGSKIOSIA[RHWSVNFDLHQIQQO@VHPGSYPPPTINOMIDHFJRROCCVJMCGBORM\KUHQKFAMFSJK=OVVRQQKSJFKRXUVAM[YPJBEOHIFJ@HVCEQMPM@MMHVGPJDSOGMNILVJKOMMOOOGQQ>KOHAF_NF?]PEILHMEH:H\RPKMQGBMAVQMPH=MWL[=JHR^TTWR[KKPHMJIYF^YCWCJAJITBQ`GENDSNEJDHSHUPTQQLNMRJPHHNMDRPLULO[OLJJF:_IQPLDEE=Q]WGXMdM[KLIMSPDKJLNaMGLMPRB]SLLHCL]QD?ZPITP^HVTOOEGJ__YRFTBIMIOVNTXMHGQNDSOOSNQHVQCPFPQVNLEKEGPHU_JRKUIKDOGMPM[KCHCDORVJHJKIGGN8OKRTEUPPOPLXMRSSPQIMTVKLUTLMF]LPOa\CINTYIZIYVPQTNQKj]LSDQLQ`VB@K_TIMBIWNVFGQNHGYRMTJQSMAOW]TPHWQD@OAJBPKR>WMMWOPJEFAJE?MPWKMRETTENZIIZNYG]IIHCRMRRSMNMMGUOJFVJCSYRMRUFD^NQIKLHUCUTUUTBQKUVMCWCQTJMPR>RUUQSVPKKRKQAIQZ_MMPXLIOJGJRTLQP=SMJRUJQQFR_TQRKNMUWNGRXFHKLFLUN@KQ\ODNJ]D\WLBNTRM\RSOAaVCWHNMQBHQQYJMFKXYIRNLVPJSRIDIcU\PIP?SPP`UKWVNRPLQLIWLSPTLQMQIMLWEDMKNHEVPPF@PKISEPMNOMPIOLQZFLUVJNLCLNLST[VQLCEAI[VVRNJOR]RRJGJMQPDQUNUQVPYNQLGARMLLQNBOFOIIINQNMFLN^ONIIKSHSRHQIMNKQOY`UOLHOMMOFGQRUZLOFVMHKHOOVPS@PEIRQPOTJONQNLMRKBLHHRZKCMJHJQNG?GMRPEKQSUGNAJKWNNQDIJTXSLMGHI\MOLJ]SFMQIGSNBGM@HPNFKGMVHKFFVIINDNEQTFMQQSLR_HOKPRQJSJUQPFWVGHJLUMSIFLUNKMKRQTNRIQQSZMDLSHTLISINNLNMLPHGOHXGKHNOVTNHKROMRFNKQOJPLHSVQFNPTKOIPMPSHUXKLNOQJUKQNGKGLTMQOOMJJJSLFTLHJRPPKMQPNQMOOHNJGOKLTSQEPJKMMTLP_KNLRLLQTRLWELNRFILJUJPPHLLVRKOMPNKNKPBRJLQYXPOGTNQQNLIJNMMYMQJHSMLOQLOTSODRIEQRKKGIJKJG\ONROMOHSONQRUIURRNKPNKPWHVLSNPMLSONMOQJPVKMVHUHOPNJMURR^HDGOMQMRNMNSRHMNHMOOORSUNPMLNMCOSMMLUPPNUKLQGMJKKVQIQKSROURSNKNMQMFCMUGRVWNTKO?DSMMSUQNTBUI\MBKX?QHEHJSGOFTDPYEGORIJDUQKHNNXRFhO@IMPNOLQJG\FOEIEGJSRDUDJLS_KJQPLJQTDL[KTHHOHINF=RDNX@FKPKIKBT\UM?QTIKDKK[TY_ARILUPV[XTQXEFAEGLURHQDOKNO?BKNNSYJFJTALPSF]TOMPQMVTFSLIKMRZRVJQNMIHGJFNJRXHMDVKLVFLJTIWGILMXLXQFOEILNPLRLOK[[EKRYSQNhRZBbHHOWQF]RWBUUMYRTGODOYZUJQMTPOPfMCEQIAQIDNQXEB]QEEJYN4GJTYP>VMLMUJMB[ELUHNLTeIJHYISXJ]MdQXVT`[SPAOVPFFJPCTFICPN`DBDXPL\fLONGLZVRGEJUYONROU^LBE]\QXMQPLXUGGWPSMHXEJKYGZVGGNRQISTLPP[OMPBHMMTMHEONIRUILPUSQQUNEDLGNVXUEORGDGNKYJEGMWLKMIHSJXJSXIIKFTOVKUQTERCQIQCNFMLJBZJHSLHJLMSNSDCMGZLTIQVUPOMDKGLL\PQIVUSIORCOTEBIT[PNQRPKRFLEHVSDHQQOQFPNOKRSLIYROKSNWFMSQNHPMQN\I@GLWLQNNRPNAILPJIFMODVQJFPRTT@BHJJNX[QETOHVCMINGIMFOFUUOPFSLJNLOIOKNQIHJVHNIVMIIQG@VHBBLQAHMCRUXLCMKOAGPSSSOQMKHNGUKUNJRCKPUHMJBCKNEQNONGLOHPLOKOSQVSMJLDHMLQGLUFUNOLSJWNZFRPQHNGBJEIFEE@RHHRPILEEARNLRLR[RRLWPETLLEINPLHOKHJCPLVGMPNRJHOHWPPISFGJOHFIPSMKFPIHBKYUXEOJTPELLOLS>DM>FJGDL[SHMTNLJJSYMHAGMRVMMKUUQPQG^OEIWOKTZDEPUJQFYKGWCNDPALLNTNOBJUZJHULQECMFNHJRMJONRRPGIGD]OGCQISSSTKOSNGJYOKHKKKNLHQOWIKHGLNLNDUOKKWFKNXNQQTRQCQ>NTJHPLUOTLPNKFQNQGHYIXQNPRMHOMHGIHPVJILRLUHRYPFOMQJAFKFEPKCON?QKR^EOCTHYMLSFKMOUNJJN:AOGQLWKHNMIAGHJOLRVHKLKUINXKJOPORNECKNOHLGVOT[KIPIJIF[LYLVRJPQCEDJ@P]JKPISCUNWARKKHMN=UKJHJIGJPUXSmPOURRS/HBIONMRGMMJMHMMVTSIBQWGSQ]LRSRMEDTPL>TLUSKEHJSBJMOOELIVIICGMPV[CIJIIFOPMRLRIHUOPSNKRDOQEKG@RK^QKJIBMXIOI_A^RMOITCKGEJPIGPNGf@FQ?]IEOJ_PLQHYIJFQHKFMSLTTPPRHFLJMGBIDJFMSLOIIUJGNEJJPQIRKRWMI?IMUKVLIVOPXNLKECTHKE^LQLMMCAL>SKBKQNNM]KIXOHP\KMTRDNJLMBLPJRUOFHVOTFFDOQNOYPEBXILQUDRUNTD?ITLOCIFHTMJNOWEXLXMGGOLPCRSAOTOVM[GJTJXCKZVJPJ`MJSPHXFNIMPI?KP]OL=GXFZ\KHQPKRQKHTQUEQGY;OJLI]MIMRJSMIEKSXNJMS[YM?UDJJMDXOESHITJEYEE]YJLOGKEYXNKLEGFL@MTEATNeJSMLPMPTIQLPSVJJKIHVKKKKFDCERPFSNUNBFJ_HFKELXGPFMIVH?[[R^IPMALOMFRGKQRGHRHNLWPKVMJPVSPMRWHITFUXbOJUXUKPMRVJOLTNLDKBCEPBNKN[Q]`LJVT\[UUI]KSCHLNTBFPUNRTIKQTFKKJSOIWKHQYGHJMJER[QTHMGFWO5PTNKLHLSMOMNJ\QFOEIHWLEUYTPOKLOHPFF\IMKFKNBNOLKJYCUNONLHGKLNPATOSOQV_LFQPLPICPMK]LQAI?KMROMSUIRNMOBLMPEPZKPJDWMMKPPGWMITSHJJQORIKTBPIVEMDIYIHWQTKPTQHEJQ^NOMR`SGRGRRSMKKSKFNWLLSCQJHRPL@ISIMNRNPJA>EFVQQENKMR>QOUIKJMONLKYPJSQIGRMRQPHMHSLPMWGKMUKEFQJJLNPZYOOJAIFEWNN[OHTLVNPKORLKSKHQYFRKJVUPMJLNQXKGVGYSNBI>MRZRJCJQPVFSUNLMWKKPPVWJOOICDOaRPSOONQORCQJVXEWPHESTIPQ[YOMVcFLLFUFHTGGRMLVDKKOLLRUJGXOEHCKFUJDOHTOJIHWMDJJLJOJKLINEMMZUEJNHMNNKKVNMPHVFIEOQMKLMRWIFUIGLSOZMFYWJMGPVMTNPIQMPHOUMTTBUMPGAMPL[ONSP>WOUGMFMGXHFCNLGLFMTIHEFRI^SGHOYLFNV\PLQHGQUMQLFLN\JFQILINTGVTNHSRGBSMIZQMGNNPOKDX^GIKNLIOKMLGNMR\NPJTLUNJWQUBSMPJNEAQMTNOPPZO;IKLPXEMZPMQFWERSQRCISBET\QYNIKNJMQ[@MKMMQOYPUSEVDU@^GDZSOCMRGHMSTMUEMLAERBLHDMJKNVNNQNLTMTFHMN@]AJKKMQIOCLNMLLFPJTXJFLCEN[JQJRMOIQEOEPSPTOWQLNJLOQPJZHERNATRNSKPIFVPNSQKPIJILNMHFPJHVIMQVOBFOANPNMJJ?FJIPSQFJMURILVQH\[RIQKOJEOQNSOSXLGHQFPLPFOOPJNELPJNLHNDEGESGOGRJOHEJcNMQOMNJCYORRSJJRORKIOUJZUWKIQJIYEJQTJCG[QKTENEPI^CWRGJGNIRRMNKOI>JRNESKMIJFJOIQAKNJKWSOWCJIJFORWMNEKIZDOO\RFOCPHOKUFHPWDRZPPPUP?LNPMIKKVNGE[NFOPTMJT[YOPRGOJMRHNGLOD[TQJNLFLCSLLJIMWTIRPNT\TKQJLMUJIXOGM^UJMPJJINLGM[QKPS\NJCKNRT_NLGKGNWSQJ[AIPQPNESVVLXJ>X@JaOLJGMQTCMRTWURMQ@HSHPRF_HERMENMMMTO@WMHKMXIICNMZIOOLLGQEUYI>KNKOOIQN9JHNAPZI@DKWWRIELIOPLOSSZ[dHRQRPL?DPNPQMZJMNMLOKLVDKRORDFKKGAI_MUTLNVVSNGJPMKQVVQPMMQKEFKMWTNUNOSAOL]RNVJLOH]TLUPX]G[OPVSTIPPTULBND@[SPXQKTPKFTWKVNPLNDQFKRQRMMPVJT`BVTZTPSODVUDOGMNRHDQL^VMYMNRLTSWNKKJFK[NOOFHUPBNLJQHJ4DKC[LX]J6ELHEJU@OQBLOAJOQS_NFUIBJLVPMRKUWWPQPPONEGQQZGIHGDEH]H^\HJJWFLOMARLAGZGSFF[NRR[]SULR=FIOTSPF^PRO?EOSOUAML[PADZKGTNNKKK>PGEFTRPRJWITSKHCOYKOZNZG?QFRFPX@NJLPHAMMHISKOEMUPLQWBFKLEEPM[QMNNHPKSODRCDLPNGKLLDIRVMRFTGKNMJKTUUESFNMKNQSCOMLAEXTFOEJJRVEIQKISSGHIGUHKBPLGHILDSKNMJLMGjQSMKHHSPLZMDMFGPJTGWKLKBPFJLQMCWGOOHZLLOJEIVMNCWJOPGLMNENSGIKIWGLGJFUONbH?HOMNHPNOEHNAKJQJVIJJVJUMMBFIULLLOYMPOLLUSPLNIFLORSKSKEVMFBVMBKEKDUR[SILNNNFMFOLTTMMLHJSLAYZTNSRQEJNJSSQKKIMKUEAKMLWLOPLQKHBRLIMIQURRLQGKPF\GNQHL\EOVOSIRJKWVNJDPKHKCPG^KJONTELKQITGKXMQUUKHMMNTQGQNRL=MOSLKUPEKUSMGGUOJI[MLHCFFOVQMSKBSOSLJXLQQWYSRWNHF[ODPNSPHJBIJGM]UWOHNGPWDG^THOHOGNUMGVRUUSWOTKDENLSEGOUNPLOMKLSEQGNPRTQHPIOPBNTMUSNRCFPGUICOK@LTMKKNQOZMRWLYNKMPLOIPKDIQLMGXXMORLSGQHMIGFKQLE\LWKDN_RSNSO_NGUKUNNZLWNKMRSQL@XLKMZDZTLPDVNPKUSPIJSMQQXOOLUOCUFNKYOFOPQLKQTISNKPRNHPQE_Q@V^NKKUIQPVDRLTYOFGFBRY[WNRJNIHS@NVPVQUVNKJXXQKQFP[AHUDUZLSQKGUOIKGJOCASOHNHJNNHMPO?QFNMWQMZLP?JGHEOMQFJGXIDRJGTJQ@KQHIJVKR@NLVHJGUJHPBKCWZWBU?RUWW>LJPOJL\KPPMNFPSRLUVJNJKOGKIXDDMTSSOFN>QHCIRTHGBVGH?IMNFNDZYHZDLPRR=JLONTNMWYVFSNJOQR>OS=RIEPUXRMMURLMQFLFJQJPOSUGTFSJBJEFFFG^UVYGQVQBF7HJQSO=ESH`KOKMMIXJLRPLLOCXCHVKNLOEDDPJOMORLPVKNDMKJROKH@WNUODNEKLTNP[UMfERNLBZITOSZIFSHEDc[IIOASSIHODFUMGUHQDNNOaHMNILCRNT>AIUGMNSQFOLPOJJTGOE_PYSAPPOEK<]POOBDPMMLMTQKWLEZ9NR\DNNVGWGQJOPXLWMAVGIWMOFK^JMUZSNNTILSYcDWHTRKTAKPGGJCX\RRZTK^JCCJWDEL@PFLSCUNLGWJIRSSFQMSEKEQSSPMUWTXWMLNOLIT^MULV@>MCINgANSGFGHFJORSLZKEWJSNOPKUIGNNGPOJDQLJONPTMLTNMPJLSfNGQOOL[NOILKYQBGIJZOTPWNNHGPRR@PIPSKQBWFEGKCQCRHIVDMPNWIDHSNEPEOON[KLKGNLQFNLDPKQEPdTHNMEMIK>\OBVAGJFTPYQPPMCXMAVKHPVMIFOZIPASDCYGN>QHJSWJQWQYEQRPIPSSIQLU[MSMNOLLMLMJJJQHTKNHGMUNCMJQHOLMVNDAPYCMFTTKIOgYOOPDZQIJLRPXXHRQMMUEMHPOSNEHQRNHFHNEUJGTTVSRTZNMKPGLKONQOQMMSNLVHWMHONNV?VYRPLPGTKYUKHUAZ]@NMNOUGERETKPNKdTBJLCJJJRPOKXTXMaVNGJPPSQUQIDNGRLRSRMJRVOUNMHSWIJMGPQQFPVNUONJJLSJKQLOXNKPOLXWV>HDVXGST\OQSUKUOXILNRFP>LITTTJSFTUQKFTZTJSHERJPRYSNOLXMPMOESTLSJUQNJNWCJPSKQSO]KTPPFTPMLHNHZNOQKPDLLUNNMDLJCNMHHMOPNOIROSDJQMW\JMNUULJSTRRYJQGX]NQNQVKQOHTPMNLPGSNQPLHPJWJPTBILOSGMAUQSQHRK@FJGRDXSLMCXMDUGQ^NIPSNISJPNM@ORRKVHR\NHNPIKJPJJOUSFHGQJKKKXSMKLPNTKRMKHQOLOLK>VFMTITMPIHLTV^VPJGOQMQHFMGPCMOQQQOJOCGQULGYRTHIQQQCNFGMQIOUUJYX_MJFMOVZLKSOIGGTOPKWIRQRHRCCHNANNRJQFALQIYSRLSLDLLQSKOO_N@DHMPJCV@OKTVTOHYHMUVJFNTKC@T;UKRMKJTOO]IMSSU:GSICA^O3FLGFBQPIITDDJWJRUKNO>I]AAOXUSWSTR:HFQWVTJPaHVOJLOMPOKQIIDCN4NVQVJKEOZBD[H@[XDLGHLCFDGKYYDTMQHQR\NJEHEG^MNOQNQ\?:LNUTK?X?NBBGR[NSKMPIRPDLOAKZDMMTDFNYPOKHQNNReVG\UQNHFBTJJOCLLVKM?URWGIVB]]PGM>JN>HQEOLJTOSHLH_OEJRXKHKPEWUERRQLRLEUROSAKSL@;HLNKNOFRSWFKF=RRNFPNYKURECPNROHGIKV^RMRQDPVMEOWEPCCBMNNDKOOWOLbNLIIS]UPdORTMLNVMETFAGP`IPZNPKXJH>UJDX?DKOSQRSBLZZUNQN[IMEBDIK[TQFJSMIUJPJPMCL[ATNDJNPK?LQRFXMJHIP@NKUNDIILP@L@IOLT_IFHEPPQKDSSN\MMVUJ@DLJTLWMBZPOBEMTGI^IMUSNJHUOOIHYWPLARMOBMLPQMQPGIMXDYPCREJENRLSOUKRGVRRK_SMJgKOGPTQP[KMLFcEKKJDNJNIMXMZUJIGPCKJOQNLPdBQMRVPLVNYlLNIJUFKEOM\BNPOHJK8OBEVQPHPNMPQGO?MVRGQ?NWPH[UHXN_NNESRJYQMYDNSKOYPYXVSTPZKX=MUIUQP_]LVIIXUXIZYJGGT[Q=LHPOFMLHNUJFTHEITAVGVQ_A[HJUWHLELN?ZMO^KXHMVPEOHITOFMCIWSTGJFERUEVJENHRYRM]OYNOMHFJFGOOPHMALPJcHITFJIJQTDGZGOMRQRINJH_GZNQHGPQUQGWJQIIFKJSUK@LIJZHj?QUNH>YKF?DISLJYHFPEGKPNHOLNPEIJIGOLJFUJQNMLTHKVHOOPKLQELJQLLGGIIOT]KRQJODIMTTHRQSCYJOUENAOPGQGGIRAMCNEQLZRFDGKIPJHLKGL@OMSKRLGIMIMM@JNMGCZJPSHMG=]ZTPAJKJVRKFDMMXPSPKVJHQLYLLMIPHKDLEMMOFJMCJOGHMQJZSPOO_LNGQWWNVJPNLIMNONOMTLMVdBTEWH@POTUNQOOLHCIQSUXTUPKNTNHR]OPT[M`VEQKPR\OTDNQUYHVCNS]BCOJQKeNEHI[UTNPGbLLJXWMHBQROX_RNOBIHMFROR@KXSQXOQS^HCP]ZTJ\TVHDNKMNUPJHLLYRCHH_IOHSUS]OSITXKP@PP\ZOMTMPIMXHM_MQNDCRPJRTFFRSJHVUJOPDFMKQZROXLMP^KG>TTPTKVSQHMTTRKKNND\MG[LLWQQCTMTRKWPGJWSPW^YLJLRPD^FGHQKLJ[VIQOGRNFIJUKDXWKKWLKBJTDMQF`]OEMGWOGFTHVHPNUT\P@MZPTLZXLPLUJ`RH=RSKLUSBiH_IIJOUJQSCTKJ^PXITLU\RQaRKFOOAIFKOWMR@OIcQMLMKTTNDQMOHVZIMGUMMODJJHMLFUMINHEO@XHbMKOPNJT]SAKPQEOXKEMUQXGKZC=DKNMU?aVQTO\ORIPHFPRE=VNXLTVZN_GHIC[KOMCLZL@URENQIJLIKPKRMOUOILLJOWXM]AJRWSGKWKQKHKRIVEPOOOKDQODS\TSBNHZQIRMMM=VKJ;PKJOP\HCJQVSQPJLKLqYNCKLNI`JZLIH@JSPRTQTIPYBMKLHON\KTDGFJAMRLeDXMGEWINKT?CYNZKZFVP]FHNBFMQGX>CUGMZJ[EGCSI?GEXQOLSDIIUIDNUFELMRRVONFUKIGMEFLNWR@RUKW^YBD>BQKOH[_9MNWGDCOOISGSLJKPJOERO\IFPLN]IRS[CRKMHBHFFMOKGRZOIONNIOGXWI@HTLT[OQFINRRMIBTKVRYKRERSVNHNNHCXUD=MNLANQXMHOGKLLLJULXVFNDRJH8EDQQVUTURJS@GYNEGNW\MRDOKLMOO@JJ@PFNHJJMKMQSLNRQIZRKNXJEQTORPQWPWRTKJGOTIEOLKLQQJCDMJNXGSRYQIEJJJ:GUMKDPRHAKNUKNCNTMOG@IWaA;UNH_UXY^JDI`FK>GTEXF^KYJTKISUVdKNKLLJGFEILNcSKHULMOMLV9UMQMHJaNOKTTHGHXQKN[YHIOPMFTSFJPBVWKLKfONLMKJZTPQSRTITGcKU^\PNLJOIPKGLOTMUCKFBPVPHPLHQODWQHIIOJZJASMVCI]EFGSFUGL[HPNMP@JQM>JMLXLCXGJJKNJ[pQCQOTTCNPELJJIRZOPQYUJ]VGZLKESNHOGKMEKBRe[QEPKJY\CKSPJGXFMYS>UVJLNOILTQFbGXVQMQGOYILIGFENRHNNGHFJMPPUPBKLHXNMMGTIKKOLMNSNMIJVPAHRQEDBOSODMQQZJHSIFMINJKNBFHTNIDFPZWSRIKPOXIR^SHODGLPFYO\LCQQCLQFTVN>PNJOHMKKTObTMQENNNQOHQPELSKRJOPYKIJMMJRQOKLAIONRGQLUP@KPQNIPHLMZFMRSNQOSQNLLNXLEQJI@RNWJNJKHFLNQUKDRUIL\QG^FDMJRmDKJOAHLVR^QLHGQPHKWHPVNVWQELKVDZBLQMLNVJOQOFTNSWSSQRD_GMMTPONLTNDR?ONEUPORDLSNSSNIFHHK\\NLFROEbFOMMSYJLSNLKYLWNOMLFHLJNQQFDSXHDM?OCHIKSMNTJEIIFMIQVDNRIYRSHMUTDTRCNILPHKTMEYSQMRNSEOELMLfHQDWMEQKQFPQKKBZWNOLFMRINEEIRGTGT^QJSNNISEIIR[ONEMOJELIaJNTONNQQWDGPTTPI@JOIFGKOMLMPDBXKOIHOOMRKVLKSPMZOKRPKRGV:=DNNWKSUWMJHENVIPSQQQOIWSYVUHOMDMQSRWLOWCBKJLD?MOZHZMCScRDPQHRTMVHRRAVTSFJFKSQFNPJKMQGMNWGCTRXHPFYSPTRLPJN;PNTJLKPKLKHMMLJRFQKXV@LH>ARDCMSLRRKMPENKKNFGWKPTG[S[NVEFTLOMGSNGQEBPHGENIMKFROWFFQLOOQQWZXQRJIPXVLM@JJQCMKNXTKG@CHCHEGV>OR>HKOQVBXSUNKBKMHOHJ_QPVBNA?ROUPKGX@WKMIILDOQOJRLSBKNM]ZLOEPHDDOUTIPOJANQGJZFJHZIPGMHB]YNKUULJOKTSYPMHOFPQZJLSUNPCKNKFKLLJNPTOIKC?GPFUTMGMUJJMMIPFGLFFEXWJJ=NRTODFNPGEQVPFPOZQENLPCJLHVRNPPXGTBLRKKVOOKOHLNSFKMWLJRLJRRXLEWHOQMTELQNISINOQNGPNEOTHMIPOOEPOJRMFJOQRARIMLJMNMIPRIIKUMO[OGIB_PKJMUIMNUQSMUMRGQGTNKMTJVMNQLEHOR]JCPIUNI\GTOIMJJQJVFGRRUKHNNOLOCMUIREJQVFdMKPFJMEPROKRIQPRKQFLPJJOLLHIFILcHLHLLHRSULJEPAE?c[UMHEGNRLQGQ;OERSFNOCOTPRHOURNMMIbVMMLMOOPNGLJTDHZJIKOUQMKOTPIKLPJSIKQOLCPKM[QLNKRMRLJIQKRQFLHWLMVHHLS?ZLQPOKEFQGHKKLNKFIKBLEUPMCIKNGLQFQKGLGLHWILXGQTOLL@JRNHNXCPXVOGMERKWPRLD?QLDHO\MHOXSMIZIGAMSOLLLPULMELTPPUGNBDVNRUSHKIQJO>KFK[NHGT@XMMITJJHRPBLPEZ[LHIONRKRKWR\LORNIPCTQTQNPSGRNQRMJNF[RPOYRPOVRMNVUIOBJIIMZFTVMJQGOK^RIVINQPHM_ILAKUNR\UA?>QOOPVJBITQMQSIKMENWTQKOIFJAOSQIIYIUEZGO?NISLKKNVTCLOMSTIVFMQGGN@ZNPERGXPOPVQMGBNNEGDBKDJPFKFOSTXZJPSN]EHIFORKFMDMOZKPDLIXYGQTgNQLJYOGMNPQSEOFUZ@QMJNGJLPHQGSKLHMWLRLREHJFMORHTKCIJQKCSS^KUUOKWPQIINO[FMXN`BMTTZKWPSSGKRVRLOGWK\M@MOLXSNLKRRJHNMVQNGUKSGZIOULSTLQFQLUSOMXLKJOMDOSXFIRLLLIQSKHMQPKNDPMILQUKBMNLSMYEKSGQQGKJPJLQDLSYPVKTNQ@RBNKLEGLJTJOTNNVHPUEUMNLSO^HJQVO>FLUILEPKUR_SNLBDVFNDQJNKUMBCZ^OVACIRRWLHSJOLPPOPRIPNUILVITMYPQOKME_QQPSXGRMMQHfISLH[SQAGMDYLOM_UON[OLLLH`MLTLQKRICCMGBMMAQLVKNNNQOIT_WGC@IUMOGSNKQGBh\JFTQRWLLIPZGMRLNVCKAQVEGHMSIWUKMQNNXLOLMKSLH^KDaJPUPIJOGMJIJOPXDGTU>TJNJPMPDGMRTFMBHTHAOLUOSRPOFNPUKQHYJKKQJT]AFQHLMO=FIKBSHLLHKDGHLKNGIWH[FVTQS>IQPLRLIF^JN@QVRLORRQN>T;HAJULIMPHUQHROVSRNYLHKHE_PJDPQRYFCQKNNILGOPWMONOSNFPGOHFREI>HVKZKLPOLGKSMCAMFXIXTVMXJCGLOOGNUDMFIKC[IQSPZbMPHSMFJSLUJGSUKPL?MPO?N\OMVKKLTHNOSDPUIHQMHHQNNNRJMKJBMMMFKDBBMMSJQSSAGPRHMNQNLKLRLVJKFGLTEFRMN@QTDPUHNNGTHHCQJHAKS]SKDWPNVHNOK_QLMN[@IQQCZXEMMNMJNLKHWSRJRQKK>VRWORKNQGMHLMATDFIJFGXSRF_ZUOLLKREPPGQURMGNIPOXU]JLTPNUQGKEPUKIDPQLKJNQCSONQYJGFPQIMQEPLKFGGMPMPOFFLKXONKOKWKHELUELIROMM[GHPDJQOZPUGIPINGMFLLRIUPYSSBEQTS\IMLFMNRORUMRMSETOPGHWLEIRIIRYLIKDKHPOCKEPKURLMTYIVOTLMXNKREHKHNHLJHP7NILFGZSWONORTLLMDOVLSUGFPHOFEPTN?[QBIAP\MOTVDGS]IKMKKMHOKKJDLTWPMKNNG@IIRVZQI[ENGMWSYWIOPKSVOMQiZRWGSULGYHBLHZR@IHQMRNPIHJGUMLIFFWFNDYVDXDEQEKEOKIQIMM@BFNNSXIMUCVKIMFQQYCQDBHUEJUGPZXR\FdMKL^EQXEQOQ_\LIJJTEQGOJROJKGMOMGHLPSHYLPELRLNFKKJEDSFVFHFMRDKMH>WOIPHBFKLKQEGS^RLSE\OLMPNEGEQP[PRZPCYHHFHX\U]VFILNN@JNLKLRCYKONMDLERSHSNDMMTCPNJLYKGEI[POSUEUR@URVJKPROJQaOVJUULYO[URN\RQHYKRUNP`MMQUI\TJIOKLQH[TQOPGSUWQPZSSSW[OUZIRMHKYJKUXL[NQIXGNYJMS\QXPQP>KOINDNKMOGBFZXEdHSFPZLHR=TJNMQQKKPJPUFJPLEJKWIW^LKIOHSJTE_NPRVQSVQKRbK[MLKYTFJIYSPOWSIMPFXSNUNUOMVQLEQFVNEKPONFMQGOVPDXWQFIKUKPRSXEMDHWNMKVLRJGEOQ7RHZNNEOOMTM@NZJLNINHDTQQLOPNLOBNIMLMQKOQMQPKQJMRPHHVNVQPNNMRJHPPFHHOBRFV\KRRGPLPKDEGKOLQJKOFNKSHJUKNICOLVJHKOMJFOQGLTFKNHOXHLKFOPTQFSMLSPLHKOM[NETNOTGIJMJIJJMHKIMIWSMLKLPJWKOQMDORGLGZNQVOUQNMHLQHPOOQYJFFPQFJKLIOHNJLQKNDTMPMLLMGQUJLUFNTNNMFOYIJFLKRGNRBKKQIJTEQKMVPMDOMELQJKLDJSNTLPNMJKQIAMSJPMKQWQLRFJNQTGLPJITKJPSKRMWJNQOOLKLMPOILOUMGSIBVRNCJYGINIKOUOHCJMPQKINX;MU\UJQ[EGXJVYRPLJOBTMRLJKPNLDLIMgLCPVRPCFRULSJCKLdLQLNQGNRNTXOO^SJLOVQHHTNTGVITNNU`SNZDPLR@CQENT]SMFDYFSTHb\SXKQYNTWFOQ@@JSGDRKLDmY[MOHHSJP]HEUJMFHMFHPLULUKSUSQNIGDMBVX^HYNPHOOMXJEPOVN9WJKJMIQGUNQO=MVM>BLPOPHXDJURLW:KLRREIYFHIQ@ZCTOMMHQZ\DWLEKRNV]^NRQSdOQWXNOJLJLCOLZ[LWXQMLDIKIEOPKRNFGRLRT_MMLKUQLRJNOFSWLP=VVVLTTVPSFPSSHIJWRHONORN>MTJIOLRbQ[ULQNFBLHSMQNTIZHQ[KWNXJCLCVHCROFUSVHQGFL_PHRRKSYT]\F\XKOPLQNJVWKQQP\JQVILNSQVWOHPPHST[PZSPLMhHODKRBJLX\RMNERMLULMUZM\LNLZJOIQLSYK_VKNPHUURHAPUHVPIPX]VQGJPIDORNQLOJKOMEPRPOVOODIUNDJlN\KJQGTGB@PTNVHMY`SEIEHKKHFbGLLRJIIQW]MDPFUSLSIXVUPOMJUJDIQ[KPNPHGU[KJZSWPTPHKX^NPQTMRTUSSGQHMTRNKSPAPRNTP^LTJIJKPJSPWSDMGTMKPJQRNPLIJHJNLVSIKULNIKLKER@]IIOPVSILULTdSUMfGKILEVN@HQOMJJRMOJTYGTFIPQEXOJKNYBTAO@RKLNDJOMUHMZPYLRKENMVJXRXIQLUKPKWaLIUDCHHJFOIOKLWIFPKNNVQUQGCJFTOLUL^T:QSQJKWKDRGJRMBXUNVMITBPEOKEKWJLNPIONDTBSEHFQFKFJOPNBIKNLFOQWEMGFULXXNQUMQ>WTOKDUPMNKBiOLTFsJJURNPMM9KEYLYYKU?R^OIJMMNDSMXAU\ILPDNIJQSMT;SJUJGH?EZ_DUQHPOFYZQVFOKNEMVMIHIPNTOKPUDHTTF@;@GHIGCJUHQSWLBOQMDFNNHAFFCBbITQTJMILNGPKANDQOECI_QTORUAKFRBT>TRUGFS_K?NQOFIOAKOOTLNZPVPVGLQUQbOUZHLSINCRFUITNEGKPQIHLFFRHPTSMNICNJXLOUJGL_MHMWQNLJPTYRNGILQFMJYUPZFOLMFCWOTSLGNDNDIGHVPOHTPQJMNPWNL\MFWJJZZHUSKBJEBUNKIOJLLOFNLZGUGGLUPQHNTRT`KKLZNOREVPEIQRWOAQITQOUHWCMORFKP`VMMVOJNQGNO\EOTESGIHHQYGKQJA_JWXOL[KFJMLRKNJLYGQBKMEIFLLUWXUKCGODJWNHMJEGPIRFJGHRMNRGRNQBLTHKQEIUXPPHKHOOIZJLK_KRLL\HEFMSYUNGCPURLJPKLHFXO@GRWWQMPEOPLSJXOTMQMKUGMNKICOGHOYIITQOMIXPUNPUWFLYOMNNTPSGFRRLSBOBFJNTNFNQNGMEIRNKORNQKNQHQITSQOEGMOEHPNQNRZXQTLHRIDNMRXIFJLJPKKNQIYQT@JSVUOGUUWPPLJSPOM?SVUMSNLLYR[D]SQ:QYIQMNFHPTWQTEPHQIPHGKVTMENCSKOUDRFRXOEKKRXOKMROMORNQPKQ^FDWRNQ@ILRTRRFRLSHOLNSNMUUQONJIMHKMVENNOQJSVKVJMLQCONQFGOPFPJRKVJHSULNQSNOPULKJDKIKGJO\JKHOLIKMIOZLIOQVRTRLUILMCPWDIVKTVKV_NLED\NNMIWQGDQGPFUHPLS[JXTDLQHW?HXQPCFLWSNKBIJJMNQOEDMR^YMMHaKIKPLJOKRLSRLQVGHJJNMHLENDTZJOINKQROTPTCKPKELKHLMKIDDFGMHFOJCLXJNQNHNXQKVMMWPUFYQNWFOSELXSSHTNZKUKPLVJQMIG>MBFVHSNPJYFIRJNMQ[UDESMEPEVQNJJSSJKNUNLEGRMOMP=ZTSQFZFLIcXNXTLKVIMTEQILPVJEWRQGINMMPEISATUSLIPU[UFGP]RIPZGRNDKJMIJHKNOOJGYOCRKGN^KGPQQ]RVOLPOQNDMJMIHMhGILILSHKSWOLJLBOLWPVORYQNHQJIJIRRNW]MMOJJEAQRPME[RURVEKMNBZFWKARREL?PNVGWIUIFOPMNKUIHRJUANOPPORJRVEJSPMGOIUMMNL\JSP`ETDNSKKLUQZMQMBPOYKKLUWHQKTPONITWLOGOQLW`TQMK_COGSJRFIIMQJURINBKMQ_GRENDRRPJNSYWENOVURTMPKTQNRDJVYRMPNJNJKOUWOSQNFIIOQTQKKIDEMQMMTLOHDLNOQSOGNBIGXUJIPQTGLLKMQRJNLKTQBGJTVS9UHLLWNXFUJIBRIPAWPNJ[@KIFHVJKMPOPLIRHERQTPHEQRKNXHLHLTHGH\UMRULQN\LTXAOVITPNQVMITYEITLE\ENLRYLSKYCPGLM_G`QQQYNVMDANQSUSPPVILMQYSLSLFJHP\QPXIRQPHVJTHKMJOHQWKOMSKDPHR>SdRJRMVPPIXRVFDMMFCOSLITIC\PPHUHGVCLRLGKGGMOVWMEOQURJELSIQLIKZHJGPOKWQMIUISYC_WN[OILMDMTZUSXNKLLN\LYMY^FHGNGKRQRUVNHNS\HFCLTSYMYJ[IKQILIIGLIJJMMVSMNJ`HLJMKJNEOGEDJHVOSMDPRG;KHKQMXLMLNQNROMKOLORGOOOPMSPLLOLLKWLTNSOKMSJKQMEOIT;RJUNNKQGPMOHLIRPQPKMRPHVONJNSUNJKPVLNSOJVMJQTLJPKM[IURKPHJOPPNLNNNQQOKSTVWMMQQKPILGNOLPESLPMIPVMQNMVNIWMVQNHPRPPMXVRPORRMPCTLQQMOLXGKHTULKLPFRIMHQOONKNOHLJRNLQNQTQLPMRMKLPVMKLJOUQNMMOUXSITFQROZMNMQQHNOIJMSRRQ[RVPORNRNKZUJVQNOUNSPLPRHYKKLGGULSSVOOPTCYPOPHJNPONDLSSMTRMJYQKJPWGGNNOJXMHF]PSOMVFEYUKDVWFLTLRRLKRK@_TWUNHMNNVGISOPMMIWMCMDPMORKILM[YGG]Y?NQ?_PENPIUQJHHZIGPQRGONMEKLRUILPONP>NHLPI2IWK_TLKLNRPX[KQTUGAHJININCHLRFDOHJGLLMRUJLEHJDNTN[MBNHMFVOP;UPQQLZVNRUYJNHSMQOHPSK[KEQV\IPLAXIFJTLPMNQOGQHGBZODAY^]RXQNAOGHZRPRMOTJKCOLT[IBJRTCCEVQSHCVNKNRWDTVVUPKORSEXJ[KJ`SHIDIPJNGKKNIWFLFHHP\ScUTKIRCKJXNOWMZSJRHQSV\QRBFJYUWNJOAMLGPJRUSCP@LIIK?JLWXMHREUPOKINPQAPLLKNK[GP=LRFOPNLTJSDPIDFcCLOUJXRLOOJM?dZKTHNJK[BPJDNTWSDNPUWHS\PTKJUP[DFO?GTMSDPROFOOMJM[IEZJHDMRRGPLGLQLN[ROEFEOJLJSPJXJPYOLVZLQ?LEMTDEGJQFSRHEGSWMOHBRRMZRHW?EIIPVIMGCKQNPWMDKEEUNOBXHJN[SORQZUJSLRNRSLPJJTJYNJU\NHNDNRXQPPISLOKOTQKJOOLKJUMFDMBKTQSMWHKOKQ[EXNHFKVVNGMLJNLJRLIKOC^LVVXSRRZLNKAUCKSLCHL\HA_SNSOFQUHJAGHMRZHHPOG>QSWHKK[GN@WLUOMTGPGQGNQINNPCQKJHJLIKEVIjECLHDPKJJIPDIIaISPJLMJIQVFHSPFPDMW>MKaMEMBbMCRLVQNDJKIIYKPPRJPQIPLUGOULTVQBMKRITIKMNUPNNLJNPRHOIOHGQNLDLLPKN\GNFIIR>UNO_IOEZQNIJIOLLMNNJPRKINHJNTBRKFUDNXQHNNFXEQFHHOMJGFHKTRREXSFUF\QNFBQHMOKVJDKUQGGCRYSPLKDK[OLPHSJQUKLYYXELMJINSLBNRTJLHSOHHGIMJPLVFHE^GCGFHGFNLQOPLEL@JWHNIFMFSZLEGMYO\LkHU@XGHOJRRXPWMLMK\JKKBVGMMSLGFHOHCUGCGMOQJLLDTEIQRWWIMKRPJQNEYOMALNHKJJQJJQLKSbONQ_XSVIGOJKVEVPQVTDTSJQCWAPEOUJMOCGIMIKERGBNLKQZQOJYJLKSHLAMMTJLPRMQBTI@RQHGKPNJTWFDLUMCIQJNKHUHHMVIRJNHVQFIEJHPJIPKEKKHQMOYGPNLMOJSKNSQTKML>ENHHPQERR?QHNRNNNTM?O[DVLBWDMINVLK^ZIIOBMTGOLHIMMKAHLFLGR[ITCI_PS=FNKHMMNLOZWKQFPIJQJLNDHLKTJ^GSLICDNHUDQ@FNLEMJSNMI@EFVNR@KJNN?QJL?YLTTJNQTGEIWJLKHKLTHRHLJOXbMFGNLMLMWXZJRPHQGRTU`QOMQNSMLJMMDNJFUORGNHSPSRLLXLCGOPZVPJLYTMJ[JQVVRJYDMQNOFNLSLTJMFHRZIU^HPNQMNQLPHJNKNICTQEIQMHQDVQ]BNG\\OPREDMH[LULORWVFROMYGIPGMMFILKIGDOLJIKWYJOUISLKQMIVMNHMVFVOKOUKPXSG@KGMKMP^LNFOMGC?\GLVEQKTIOU[DJGFSXIMORSFONGPGBRHT^LHGNZYNKNGXQGTRHGLKSPNYIODKEQQOKMOJSESOGRONWPFDD;KFXTYEUGIMJMOMFEROJQMRBOPMMNEL?FLHCVJB[NDIOTM[TOIQLKIOUHJANOK\CYKIWNKRMBNMI=^HWOVYINJIVPQZQQKCICTGYGE[HKFLNSWCJNDRLPLFMMTBIGUXLNLTNBVEGQOFOPHMRJTLGOQOFQTROQYKN@LLPRWXKTRPKNHEKSZ=HMSNMHMJWHFPJCOKCNXZORIEJSCOHOHJE@GUOL[SL@BKJRPPGPIPNI@MLKJJOMQKONPSEMTHQLBFTIOJ[NFNIGNEHWPKLMLHYMLQNMBSEQJPS\WKUAPMNMMLDFNNQMRFDNK]SLH?RSG^QQOLKJTVYJDOYI[QSOIUQNMKcHKIJQMATCWLTWIIFMEIIJ9d^F[LBYEDQTBHJJITGPQOXURNZ_IQ^KLWIJPSMUKJHAJGSLRIIXCGDPSNRPRCGEQLPIHPPHSOGUDODYLAMGMQPTTJQEIUGKNNVHPRVIMLMGGFIZNQNNHMRJFQNFJWHNiGMVYDLOKSTPK\PKZFXGGHONNERJDIPLSFLIPJOMNMXGQ`MNTRVN^HHGNLDOGNQMLLHNIMIHOM>MUJQPMKBT?N]SSVGCRRTNJVRVTTMOFODMJTIVRVIJRCQ@LJOXVK\IEITSKJZHGOIPLKAMYRTKPQGaFRQEZPTPMALJQRJWHPREJOMWLOTJOINGTLPNZNMF?JIXLEMCKKH>NZQBMQNYHK[\MOC@GDFTQJ[UHQVXQIQLIKWOOFTHYUJQVHKLMTMGPNKJREKKRNQXJEQJUJOGULNKMbPUXVXVQTVUVQSLWJTIQNMOQGTNRTVHJQFSNGMYcXUMLVQGIQNEKRQFZGGPYTGFECQJYJUTHUANLU[QMNHXEQDMFJZRREGSWEOFULJMGSNP=SKRVLXGQ]HSIMRPDFNVPMR=GORSKQQ\KMMCUYGGXNHHRKZO^NOKXMPJCUTIWIDMDIMMRPJD^JSIQKSWTNS\KLSWCKLDHSHQLLOHOYMNOZJBJONSUPPOIPJBHIMEBAGUO?K]T]QOURPWNM[OUIQCREKMNPIJMLUMRGMNNKHBYYFWLQGOUMNJMTUKXIZSOQJOXLNGOQIOSHOXONBIKLPJJKEKMJMNGKOMQPHPPLLJOLSYOJQJKOCOANRQUSJQULMNLPTERQRRUPIFIHLPIEOOJGHLMOPDMMIRIOTJAGJJPRNUOOPLKNQTGFKPIQIQPLPHOMTLRDPNHSPNDTESCJJCLPOOHGPKXORHPIIRJIFMWUKOOMMPVMPVKWNLJNOKMOHPTAONHQHKHLHCSQREKWLJQNYOLEFJPGJLMSIOGYQPRMDKJIPKOPWCNSYKMTHLPSP]IJTFIYUPN[UWIHEPRTOSKNJMIIHKOLLIJNHNGPEKHPRPYNFDRPQ^RMKGLSMAQMPMQQbHDQDPQJOQKWCBELKQ[VWOGAWNJYSPMPMNPHLFGRBKLHWRSNOMRNECPPAUAR@ILRMMGILMHYPSFHLTIKNTKNHKPTKNHGPDWJIJPXHSTKINTXRQWPLKSIKEFKNGMIVREBNIEEJLJFHECJLZGEISNMHQJLVBUWLMOKZRJINHQQRMJOHEFI_KDANNOIJTJHWQBUAHVLGIMWOAHIWOJP^GVNLCRPDC\FOGUEDILQALMXOOBQUOXOEHMVMTJVIILVVSOTIJHPQFGROXICRMH9RQJJdGGGCQAMHMFUSKLKPEROPVNMVRSRLJELQGRUHSGKRNLZQEISUIYPPDQNCVYMIGEDJIDFX\SLFPSTVQTQNQOKEUJL@HIMMVLLNN\KTIRGNZPNSLNOQQKOVMMANP\QJPLOSMBNOUJJMGUEMJKEEJQHIWO;HOJFJHAXQHMUONL\OMOF[ILVF=ROHEUJRMMONJOQOODLNTLHOXOMOTKICdLODMT:XJOjRJJDQFOLJILARODNLIOKGETTTGNKJSHTGYUGQPQLVSMMIGFTONQSIPKIWRTNRJHSAMLPQOHIPKUAUGHNISDPHGQKJOGRTGJ_ESHHJJLUOJWTUMRGILYPCMJIRDSFENHACHJQGNSFIFLUCOIWEROIOJKTHESK_NNQJJLTAPKIKPNPKXONBKHGNMPKFKUWJNUSLKODLMZIL\AQGWXIDDT9LQJUNUQVOLTPQYVQSODISQPFCJMSHMQONSSM>MOGGPHI_TKFRAETTORIIQNLVZSUEFFSGFTO>KIUKFRJ]JOMVSXKWUVKKQUBMIIRSaJOISF]QdYSJUXTRFJKXOPIOLHMJHGVKILFRGLLJGINSPMNOGMSIOIHNDLTSTDKTHESLNTTJVBLKLQOAWMPTWGJQNEO[LP_FLKVRKRDHGMNBLPC_KCOKFEALOGCHH^NRMUPJPLEEQXJREFADOHQELFZGUQMSQFFJXXMQOKJLKMQRNKALIAPDMWUHVSPUJSDPDYZIRBKZNKHYNHYTJIKOMPQILGJKOLMOVKRLGGTBUQ[JJOPIQIKVVNNGUJ:d[M@aFERAKQcRHCMGMNGTRLMI>SVVSSJHMOHHTLBNQXWKX]DIcETPE`INBTiWJAHRFUVYHT_O[DJKJFDJHNPGTCEKMGMIXOKSDRNRNXMLYbXMROXbSQBRIKFDCJWKHPMOHJEMONJLFOTPNSYQLE^IPDDO_IEeGMKBRJHJI>BXQ[PLVJT>INJWJONYGJHQTM[NCHKVHSBFF=MFDPLEJP`MYQRIRXTMVKEVBFRbLOOIOOTGSJKRHQ]HCQQLHH`HMKJKZEU?XMREOIKCLWQCRPKHTJTRVPIUKJKOWHGKUFMJNVUVFLELTNOYTOYMQJHEMVKLHQQKSNKLIFJMWbJWKMVXUHIBYMNPYLSELHLETSQV^FSEOCURPS<_OJUUJVLR@NFCXOFSMJBMO`SODPSMMRNCPHOVU^HJLMJIeONVSHSGNMQQJLU@ANTCPY]WSOEOOOOBMN[HKSPIHWOTJJXM_KBJL\[U^KME_MGK[KOZPMJLGLMGKINWbLLUFMROOUMRMbNHLBGZNPNRBON_LEIRKRUQNSVdIMLXRPNJbNSRRXMLMNMWIRJMTGRRFGTWJKSJKOVOJGIIGSTIVOGSLMSRIKEKHVTOCcIWLGQKKUJAKJKK[EIHRCLTTJPRORJIEQJAVROKOIQPLBHJTUWSO=IEYRCZOHR?GNMPHEDFEWCFYRIOKOQGJXKPPSIOJISMNUQURI=QYOPYJNNHYPTM;HFHNFIXZB[RGLK\HHJIRQHLDMXKISRPLBOCGLYX;PTL]IQDIZPPMWIJMPH>ROMNS\>\E`QW`NYPKFRDVMSKMBIYJRLPTYPME\EZMHNTM?NMSLLQQHOLPSJLEPVUMHYGNARPFEPUTEUHNFJJLQPBLHOHMJKVFHSJVRHCMVCVTRE=GYDNHKT@XHM[PJHGIFHFJLIPGGDLFTSSK_TXWEWLQMQUZNOKNXLMLMCILLIHHPNJPRIXVCIINKCMDQRSOCMDNLIJOKOUHVLWUREFUOAMHRPEETHSMMKO?IHFSIEOJYTLPOKHRTWMOKMN;GEJHZNNNWDGQYHKHIQCNFRNVYIITJLYSHDTTWLHOPPNZJQQQOPDFORTIKICAEVGMIVP@NOIGVCOOCWIGAVIVBMMLFLWDPCKNQFSGKJXKIKNFJJCPcPS\QFOMTGOFNUQLLONMYA\XMEKGSIMJZR@>DXSLNTKRDDH`OJFPNRFRIMIUNVKFP\JKPIFBSNTEKRQNVLRK^UBSSLFHMMVRHSMIKJCAT_KPMHKLRRUPFAHVUQRSHGZRRDBUPQ[RRIVNYIZOJLOPOKRCAITNLPTLCSSJMKPXXP[IQTBMUNLSEJTKQTIPODSSIRVIFRLRUSVTQTQINJTMOZKRNOVJJOCMTIQYJOWO`KQFSIJVMFRMGSMLTKNMHFTRUSLODRKHDRXSLODNCSENANFVN>IUSWNMUQPSMJRLOOJMPNQXFZI]PH^KDQXYTGPSZQPTSQFSUYKOW_QOFPGWNPKNVOMPJNANVK^SK^GML:INVL[L`[TSLK]PTAEW@PJWMGOIKSDETNKORNMSJSMJEWLEEMNYQEUQUROKDOTNGOYPgOKWKDY8OOLSLVRYCCVKRIQU[FV^LNESLUP^K`OYSSOcAV^PZWMNSFKJURNORMMLJJJ_GNCaXFLKJMSLKCTQKV[NJIg]NEJPC^>ISACURQRJGIIZLN[OG[JP@kRWQJQLUGQNIPIMORJKNEMUWCP@NUOKLKBTJDMJYOPO_P\NSMEKSFKXIQIFYSF\GTKKJNKOUOKNMJIW@MTQRZGXPWIUYDCWOOKQ\HQKWKMOROMBPIIGJTJMPO?\R\?[JHNNCQQMTICOFM@MQKGIGKLFKbHSFQYNNIR^YRI\?QPTQIGJMTWXCSQBHQONVGNVNIENPQRI\JKENO>RHENTQTGCFPJJQ?GRUWSPZ:L\W[K`UNA`VGRFOLVYOHIKKCLRL`ITOXIILOD=MKNKTLQIAYIRJXGRR?ON`UAGYNSLOILOMGOQ]DUNUHRNQHPOQMNMTiWJLLGMDAg;NPTICRFJTSEUQONOLLTNSPHHQPPKJLRBOCIROPNINLOOKXNKRJIBLIHDXGEMFGRFHUOKJI?KEBRDHJGIT\MGLLQTLcGKhJVVEPMFGKWOIOQQL@PXJVQJOUWQN?RJSRGHDRQIPTKAOLSFRINOWFTKGSHPRMSUVWDIOLJ[USWZRNKJLN9HP[DZOZX[=TUR[MXQJOLEKPSJQQSZMRIMPBRMQHKFVRWNQQJOL?LKGSJOIATHEIOTHSPNRFLMJFGEJN\VHHKG\OCPPDQ]KZHILRNWOML[UMVOPH@P?:YaKUKK@LBHLDRLJJOYMSHNHFNK@SRQQZUNNKGNHKNNSTKPQJSPUSIL:UIL[FRVHQWFDKMGSJSWIXBTXVMEQBEXLONPLQPRVQHOERVTLOZUKAEXMOQUYJELGJMHUPWNMYJHSIYNQJIMGSIJMJ\VWOMFQIKOFINJHPGQLS^J@HEWQ\PEKV?ILZQUNULLILIHXWBVEGXJHI\N>N[OOU>HIGKPFUMFP\MIRKGAPQNMPMEHPIPRNGXQUQKJERNRMHKGFMLQOOUNLMH;RNN?RJ?O?RSPGTJJTNKMLLSHFOPP?UOSJWRJRBTJ?JPNIKMHFJOP^LUMoJWJPLUPXGHDDJSGLCTBJGUHREQ]O?OONHLVIBK\R??KY[LMSZQNHRUJ[PDWNAOMPBPNLSJXKSNQLLMVFIRFJTQVLKPIPPaWISMGINOMINNT9MOTQTdSJINSNLIN\VONCQBLG\WVGTSHVQQSNVMEUM>IOFBZACNYVDIKNGIKJBH7IPLUSI`OUB:MRRDHEMQCURJOLNIHUWF^BPAKi?MZIP@KIPRQMKRRHGWRUO>NMYZJIPEORPQMQOPWL:TIQMfVZFPJLUEOSINUIMYBPGJN@IHNMUQUMQLOIMPBKJREXOUfLRL[JRONSH_IMNRSMOPa[PIHKKT\UP\VP[GVXRIIKMOMKTNRKFLKFOJICPEOLIG[DNOSKXNXWQMKOVW@CSQMUPKGDRNB[NUIFONSXSQNUPSHAWNJZFOVRTMFIMSIPVUGEVUMBRYLLLXFNNSYQGOSJMWTBMQUGUUTSMMEYKSJIPQSIU[VSSGGPOXKTMSNMTFVNRGTWUTJLHLHTBJITO@OIOZFKBSBYSEOIUJDEVLROEFZLNJRPNHMCHA[PUSTRRP_PMJJLRNIO;>EM^LKFRJHLL\IIKTOMJDKOLBLIO\JSWJQXINJWNGAHUOSOQMRWGPUMXNPL?KOFSKAJ]@QRIKFQSSPOQOKPHQ[CHPPGRSDMLKMDJULCMPONC\SRRHDLLLJXMLRUJEgRWOTMJNJELNXHFH[OQQVLLGMRVQVMXZRUWULOIJNHHPBPQMDJMJMSNH`UWUNT[LFNUSJFBEHNMhQDQRLJTEGLAKFNNVHLLSKHS[KOWHXGIOWNLQNJPHJQCVHDMPSMTQFEKJEGGQFSTNIONNPDMVLWLSBDOQ[WYDPIKKIMPJWSTHOPLXTKU`QPIKBJSMeHSNLTVOCNDJJJTMGNHIPKDLQQGOOHBIPPHPOLRORQUTEOROHHWEUMTGGMLPSKCGYJBJcJPSD>UMUKMRJWPPGQHHGMQRFIRJLTIFBEMMOOQHWRNFLSCXWMKOKJNVRPJiRKBUY@[EMLVGHIFJUPCTDRIUUBCMJFKHZSQSRIYNVIGMFDGROVMDeGKYESTSKMOINYNTED[PML[HCTNS?OJNP>JOSASKLPR@MMJDLODMHEVWPLN^?GZMM][GJJGQML@FJCMRLK_HDQRQWMKFI\MYLNGFUJKTKRSLWJN;Q]OHYOITELQFQDPULU;CMPJBHLXAFMLFQUEIVELSMDENPNgDTRLRHeSGTHSHLJKgTP=LU`NL``NMJUTPNLJDLOHBcQC_LZYSJIQJPNMNI[]WHEWPBN?[GLQYHW=XDE=XMS>OYNQQTOZHGLBNHJTSSFI]@HHGLV@bXYZ[JKUBDPESLVMSFFAO@Q=QDGQSKCS?I>KGPIOiKLHRPJ[XRI]EsUBANMTIC`NPITEO[VRKONGGMIKJNKKKVXPMLMFSMHMGTINTLODMLJQURVSVDSYEGOFKSXC[BOIMPKMKYMJTKNHKLHMQNTVRPJVRETJRMNHHMF]THLUOKVGQQUKHUONNMO]QHEIHFNHSGOJJFRNHMVKLN[MJIIQRDIXILORNPUFIAPFLFUYIKXHOORPMFQMQTMMV[SPMJWQIPGKZQSXKOLOOOSPHPGZPOMGIKOHKOH\ILLUBMPSLOPDOMRSQPQKK@PVOXCIUPIPGSKPOWaWSXQPQ?SDIJFU?PNGLNFJIKGMBE@MPKUEHTINLLAOEVXLCVGQQJGKGAWKOSYJZ@JWQFJEONQIKHDQIJP\SBEKVXQMNNMLIORRRZGLMHYNOFJMQMOUIGVMWPLBON\NKSLVHDSSDHPMEROWRPQEYSFMEODQIZBOPKIPZMREOWHQLHOMFMWJGKQEKKOOaORXGZPCIDJJRRHGHNMYJSKLEKESZJS[YISKFLNIKTIRNQPLKRRWVOKJLGHLST?L[KINGOCNW@QIXMHUOQJBAYHLPVJKBBCSPOMNNOHFKSTQBHTKNTEWK]HJGOQLTKTOYCJHN_MJMOSNVPUJSOQRMKNSJKSILLYLQFHONKMPLOEKJNQDOUUUHMOTKQLQ[ILDTMWOOQKISUOUOYYUOVWMEIQTVKRILLSKLRORROGNNLHRJLTKGIJNUTOMMENKKQLGPKOSQKJLMGRPJHHTGMLDNQJLMNSMPUOHTPMQMPLWHIGNHNJVPRKMLFUMTMPUSRJOKRQMSQN[NVIEOQLRQRGMJNJNSNRUORPOKERRLPKJDNSNQOPPULORSPLQQPRRODCQSXOZMOSCVLQNJPRNV?MQMINRKLJMEKNMOQMNQNNLKPMOLQNPPNDMIQRVROFMPJJNMHTRRVRMNXPRMELMG\SHAQGKIHGZCLRTCDOT]\VOQGOKODJRRHLHIGOLORPOKJDOMYHJLJQCUNSD\cGNFPMPMGMVJURM[KGPKHSVQRQRTQ^KKITRNNJRFMTSLCPMCFVPFJNJIJIQIMOJOR\NCN`LSHVIGQONNKGLPHcCKGMSNGISOQPJJQLRGLSPGMHNGKKKRMLSEDHNHOMKRRXLWNYQLMNMNTJ[JKJR]USKE[VMEOFYF_J[ALVXSPOKQUAPKEKUIX`ETVM\DZXLULZODFMLCUBPQOWFXEHLIPSHMTFO\KOSJNYWOLPJNSKMNARJRGMRZRII[FT@N_HRGRHOLNFRLLFILKPNMCJO`UNGTOJUQLQRMNMaWRPMRLOQUHTTSJZKJLPHNEWSSKOLNOEHZXMGEXMI[FMOMEPJWKBCCMCRFMMYHMVMLMIQTRMQK_SZPMTZCM]VIKMMQNFSWWQULHXODYSPNYMWONUPFWJPFGJCOO`ENWNOTCQMNOJaVNaOPFSP]GLP?MWMJOMOTRQVWCNMSLSDLQSGJIMOQBMLMMIJG]NSQWQBVIVJWVMNYBQUPaUJMRPOKHJSLJJOJQNMHAXTN\CQQOSZLDNNJQPOB_KRBLKNRQTNW_NTNI_TSISO?TLWJJLOILCIFIFCJ@YLRGNQVJUONHLMHSRUTERVZSLII>QXMUTT_OHEM?IWUMPOKR?bfYBV9LLGQKPIL[GIDDNKYCJUOUQQQXIP@gVUJO=QIFI^FOPPUMLIJ[L>FIQIHJO_PCRLLTKKIHMRSVKLEOIZLMINKJN@FVNPMSCNUTGKQOJPH]HWHdK[WOTSHPMPHPSST@ILKJZGNOVLFSOMRWRSONFLMKUUSIGNMLQJR>AJVLSGV@FKNJSLHLIWESITIEZ[YLSRKQOBUTXONIORQPJUQIJSETIAAIURQNMdHQQHF?OIINOFF?GOYZRHQNJA`KOPDEWQ@LGQSNMWOTOXPUVTIPQ7EJOLOGJSQQEWKLWVIBSINMEXRWGRMRCRNSKPVSLEKTQGGWSKLSIMJQNQNFENBSJPHRKIPIOJPQJXENQKHJTESILMMCF@TMURN]MOUKULGILCMQ\GGUMLPRERQLJENSXJRIQWNOAQYNXOKTQ\GPI@OHULY\WRJCNMJNJJDQUHFOEQPOOWFJQMP\OLJBMQGNIKQI]^NUKDOGUSLWAQDPSBZDJHSEMKHKOLYQCKL[LOKMPVDKA\TISMNJJMNHMRQLIPIBIUQMHFFMGO[GJGPKLOSQS?UK_JNUFVRPHOMTRHKPALUT[YGESRKPFKX_YTWOMINJOUWZHIUUJLECBOFSH[>OVUQRKMMQWHLENKHQTIXTVSSQLUIMCXCJMMDL@KLWYTIQFJWgOOBGVWCWQNIRUKJVTGLKVBGNJXGJLRQLLNIQTWNTFMOI[FSJV;@SQIKYNLLSHNGHPEKBPP\dIHIDLJGYGQNMSO[QDVQRSQZH^OIGVNGCLKHCNKILMGUJINLEATFYQHIPWGOLVHPITO@LMIPJSJT[PDLICYOTPPGLLEOHKOFQNEPJNLOF]PUJCKILUQHWKTNCRSFBOBNQJNQNOGLAUTUTVPMLCKIRLOGQNNGN\NVROGNFNMKNWRJPUHGQNPLPGFNRQKPIKQXUTDTNR@ETTNIQLOMPLOMRSLPVZ>WSMHJFJQSLNSNNJRNTQTSHGLQXMIPLHQIIJREDRNPKZWLSLNLCQURMROJHFNLSLMTLXSMOSLWKLWJHGIJHSHReCLFPRDLWQJJHHGJLPRLKOPNSSPDJHGM@KCJQQOQWJNHWIFKLO]IDV=KOUSKA[NBKPWSGMLAJBMPXNWOMVFOTJPPQQLKQNQ\EWHRNVRU[ZRTLLQHUNOLI?GRNRHBMISRJHNKQ[GSENPGU^:ZQQGLLJL]KZNNE?TKIAIRWOFLLJVGMQGFKKSKIQBISAKRGQAI@I>IKFPJMHGVWQJ^JIYU@IKFOKGKJTDILSSVE\LKLNAVEVNYHULYNAAOMFPWTIY?ZE`SNORGBGMRHGHIJFR@VOEKOSSWOYYYHPXDRXOOIMTNEBVTNJ^GNRWKFGJNNFCMVTJRVLLPRCNM_PLHWVLTJKEOVJDQMLDR_FPKCIEKXDCPQMKPRNEQD:KLUTQY\VJ]TUIORNKKMMOPRMMQIQEOINGOHGRMa\KPNTL\LJPOIPGKLJVJDJNVOIVWKPTBNTXOX[RLIOLFCXQQOLVNHDXKDHOHOKWKXWSMKIIJMHJQLIQDRKHSPNSQPGU@YSRHX]KLPXLMMHOJUHPNIJVCMQIOJNUPOKSLKQ>YTACRQAKRTZgIQTVPPHENROSIUMLKW]SAOMPCZHVZZJV=LSOJPJLEQRUNMNNELEQTBLKYLKISUIHAA[PMFGBDKOPKVLEPNEQJNOOQNMOJDJWO@JRPLJIK6AEFIIO]HPPSLISL^QOUAQRJMNDRITHPLELYMSIaLJRCQJPSHTLFKGEVQKOIPFGM\TNPNOQFXFYJOOYNMPJQUJGITNZSHTOERWKFLOCYQJFN[UNHJSGGHdKLKRM\HDPQMbIQVPJEMFUTGFBKIENZOQRKQLeLQPOLLL>KLCPGPFTOFBQNWIEU@LPGLFQNPDYKWOJU?BWNROIUWRAHOJNVOUJPKKPFNJOMAKIQKNFIFSJJFKQQUMNDGURRYGJN>TOFQLITIGKONVATNGG]JQHKPTCKUOO^JKLAQ^ERTOSTJFNRGORFPOLHMSPVVLIOREMRbFGJGZKUPBFGOPBKPLSGINDGVWPGLMFXRPNVGSKGQMEMLTHIHRQNHKFFQPBEL?IMJMHJQJENLN[HQKSOIGTUPVNPQKJUORRNHG?MNPRIHHWJJMKQUXJNPINLON[MKGOLLPQTRPRLISWHLRMSEPEULKUMANMQKBZRHSIFCPJMJEPIDH^RZNGIQFMNPKKPQVUQRTGHY?KPTCREVSJROVK^CLOOO[^QGcFQUM\QTFSNXEQOONO[VMQBIQKL^EHHJTRSM_TRMORMDFQGJWKULYPESJPMHNNPATOEITONbOQKSNHNJKIISRTGGV]DVAJRLPYMOULMKGPNQEQRTPIONOUONGGJFMfOPJKTTWFHQWJRDKHYNPUKSNKOHCOSMGJIKIOJOIIQSELK_PSOPGJOV[OJNSTRRNGVMSSKINRKMLIMMPLMNOKLSSFQKILIZOEVKPEYQLKPHQGOOQRJLHQ^GUJONLSRRDJKILQAIRPQFAJRJTFM[IKLHJINGPKQJJEPHRNQP\LJTPRQHQUPKPLGJYJTOHCWQTKOHOPILIHUITMMJCGSLPQQRSKGZUSRHZHQLWQGOSMVLDKPMJYORHQSITJNJLLBJOKNEAHJYFISPLMPLKLKSLZMLKQSJNLIOUPGPQKLZNaNWMMEPVIOFaRKSMOLMPNPHQGJHMNXIFJEJRIUQE[[URNKNXFROMPILE]VFAJRGHESJKKQJILKCYIYPTDZRINMIHRJUKPROURKNRXJKNKJHIPOOQPLMML[NJRMMOLKTVOBTPJ@HRPQLI^HPLRTPOHUSSMSFCJ`COKXSJTSXQSTVLMLJLIReXRSHQPGNLDDFQFO@GERNH``FOMK[RIFFHXHUGRXEISRLCG`UGOZJZRFTRVM^VINIVSWPOYKHT^LNEMSURHGMMOTEIP[QUPJPQLaJLGGIPQGZQXRRD@HSLKNFTLOXW>FLIKNAH_a]M`FLIMJKNRZ@LJPTNRRTZMNRRWP=LGJKC:LW@EOHNNMJJRYMH=FTGLKWOMKQSLJRVPK\JKKPNLKELNLCFVGNGUEWIDMQVEJFKONFNUOPIP$NGEJGRM@GSILOENNDNLYGFKOEILSWRCP[PMIPZ^FN[LEMDPJCFINNNILFLXXUNSFURSCSIJ>KL@IUKLHPOIHTROKTJSJ\JL^JCCLK`NJDHKM=Q@OQWSJLWFT=AWPJWGTILFP^NMONKURIJYFTTLJNUMGTPIHHUNPJONJPIJ`KBRTPVHfCNMNUEM@ILCBJVFORKMNMHWDIKJU]OIJPBKPRTLNOMNUOOXKLUTPSJbKDLMEFGXELGOWNPVMYMTLLPKUFNTMQ^NOYIGKHUQIRPPQVGKUCFIMCPXMNKHQ@UUGIPPMSJULNJHOUMXEMPaAJH[Q\QHWOP\SPNLTJAAJKLKXODNQPNMRGKWEEN[MW^TWKOEFSUOYDHVKSbHPIWROGXM?UVSBIJKFPGOMWNPT9KKMUDAUJQ^MTKOFJIQFPLWIKGFVRUBDSMRYPLPVKQFWKOFJJOJOLOBZ?OVDEKKQLVO[BOL[PTIMWJIOFMMJGQSPEGSWLLMPMEWM?MHDYLKVISFDEQDIOQKPMDKGLKDQHQJNKJVMQPTPSABNRQJG[GTORCD`RKYHJEPTGNOLNOTWEGCMJP[IHR?TVTF^RISNKMLOJIUKLMLNJDGNAKMIKTHPPLGRGTSOFe`HQLOLDMVWIV>LBFMYOKVNQTNODKNOOTE]WDPSPXKFFSVUQJJ=GOQULFUYWDLHX;FAZWP=OJEKQBUF`P`MIVSXIFBYGYLUO>V^ULEUZJSLNK_MOHRURNN]JPVOGTLGBZMMSQRJ\RNHIRHBONLIVRcQEFGAOJHIPGUQMHJPVOEUDO?GNH[[WKJUQX^JLFGXIKQ>EBLQNXZYIV[RVPWI?>ERRCJP[TUKaJPXLJNOXRLS`KOWJdILUTHXLLEgXKQLRXPDKUENDJUPMG=MKEGGKJUFOFHJIJSPQaIHWBONPORQPdNLKWMHPKQPTSQLKP@PNUDHIMJ]HGPGMD@LTSSALPiJLKGRJIHOMPRWWC>AU>LICGOCPKVGIPRVEBQQYUPDMKLSLN^IYMGBQWdRVKIMMTEYFWI_NWJBOZANOPYT_TH[HGoNDZIQODEWQIIVWJUOQHJ[GK?GSYWTPGDXOEXNNPPGAFO[VGIXKKORSIMFOSILB;NKQQJOSRKVKVL\PO>QBQFPOA^VGHILPKFLJNSONDMLUPJEIPP]MUOPJW[TJA[?fRPCcVQ=MGMUBERQUCACBIKHQPRQJMTPTLNMFKLOQRPIEWQGNQQ^EZVCLLKPYJJBLNGF>UQTPTBNMNIGQTPSCOMROO[GJCKTFQ\JSTNGPFOVJNKKJFKRTKOQNYXBPTYSKSKOJPQRMSYOJFMMMRMWZCBJEE\BOORcJBINKFLYPNPDfUIMNEXLFGQTGPSOJLJeKJPR]GUJJESTKIMNWOKQMRMGJGKIDQRRNRZOZOGGILGHSIQMKTTGTIMKZ?NIQIGKFJFPHTEKRVELLLQMLXMKNPJOLLOGJMSSJJLVWRLPPNHKMGMNIWTLGaWQGSAQXXPQPF]RIHISPSHLKFHPGGJPC]OKJIJJISWOXPEMYRFVHULMFFOGKPQMFBNRRSMVK@J@M>QRWJNELWDLJH^N\VOVJJNEMRVQM\OIOHLJR@VMRQJIFUECIFJIPNGROSPWBRJQTMPWOYOLNNRLKVKQITUSDSSSPNJLUMSPKMKPOQUDQUVO>LJVJQO@RGVXGJOSTNNOLVKNVFXRHFPEEOOWMPN=OJLJMUJGMQIFPJ>JRaUQK]KNEXGSOLLRUEEGMQQSOPNLBNRQYLKPESKOHT^aAUPUYMQJCNVL^MTSO[RKCXGRGRMZZJNIDNVOSKKKVQLNKKSRSNIJIUHNCISOLQO`QHNRSOVKE@DRGGURHNOKMNMH@OUEORD8QFSVSQUJPLRMMaIRJOQAXJIQLJXJCNK@RBNGNIRQNSKV=F^JBGRMbARPQJUYFQGL[VTNYKKGGHM>FQEODIPIITAGOEIMM=FCHLQMKM^LeRNEU]JMOPRXEJOQIHFDCKQULNFGRV\XOZOQCYJENCSPQCCRDMNRJLFPPKNELCTKTNORMIEWEKGVEN_PVLWBD_[GSKGIP?GFNMPQWITKNRNPRJUXPOUMYSPVKFCVNRDPIFNGYJJQRJ^hGLYLMEPSLVKNPRICKZTRDYNGKaOUFGOQKEaAPMJSFFRJGBJVIRORRHNSLPQSPHJHRDOVROYQQOOJRTSOVMOLTLIJWMIGMOPMUCMTGGRNAXJFOQNFKPJTIRPPKFQSKMOELEDMNKINRSGOBGFGTVMQRERMGMRMUHRGGIOHMMXSOJBRIMIM[PTRHSCKOVNWUHGJHHMR?NKHSJRKRMMQNNBCVOODRNQKGLMNRPHPQQNPQGHSPLYKLILCRLNSLQMOCZWNRFLMPQJMZFHSITNIUEVWNNQKTJMNZMHUJIVGQLKVKKGFGOSTRLFIVNQX`@KFUOM`KKULQXPSIR[[RQVLXJVMIZIDUKSKONNEHKZTPOPGQWLNEKEQCJRPHROfUKFTHUJSI2NFQHHIQ[GOVGLRUKSN>HQOQ@OTTEHFQFLOMIY?Q@RNLMLTPMPRWEOKRLOHJNIQGIPNV^POTJONEPAQZDJSMYOTSORRGcTMPHFQWOTLIFGDJPQOHNIG`FUNMQMOIEFHNPLFAMCSaUMGJHTNQEDUKIH]JHKgPTQCKILBL\MPKXSQKLWF^OHFOFF`L]L@WJQPSSWFKMWNEJQOOQF?JQOJRLRVIODKKPTPISLGMLRJQMEECMR][YMOYTRZ?INMYIVLGUMPNSLSZODZOMSUKRKIPRQYKLTIHPJQHKLHPJNZJXINTQINHGPRNSMgKNIFTIQLGKKZHGPGOTLKLGJMOC[NJEA^ARIMLGG>D\JQLDOIRTFLKRNPMOHYPOCTYLLTJOLVSGNOEWRQMKDILMNMLEIPJ>SKWTFZYMKQWCRF=ESEKXNMTLILEJKLRTKPRHGTIMDGIXNPPOMGWETIGE[TTEDHQVSNIFJ\[GYUMQMPTT^JIMODNRSFONOVFFQIOIHGKOMNNQRLKINUSNVQKHEOUMIDPFEJKJOUXIBYG?JHF]JMTUFHRLKMNYRKOIVVKZQNMSaHMIKHKEPOAMGVQCLQEPSJWR[LMTLHOOQBCSOSSEORIELKAWQHJCRKZJSXFLOI>SLGRGSMJUFRPITYTNORLKTQKM?ePSJNHIJKO]JLTFRLKGQIGPKR?FNGG`FSMWbHHNPSKMPVKNQOPKNROHOTTCHRNNQOKHMRQSKATOBPORRKPJLQPRVG[LMQUMUJAOVKJDMGDMUJJWNIGZM@LKJPODSPNHPLLSE_NPOMNSJRSFHQRUREHPXFLNQNQDOEOQ>KHSIOJINPMNWXNWSMRRWPCYLNNSNNLJUELP_GK]ONNVRQS][I@CBLQTTDPFEPKWSJKOPBHHJNJLQHPKNOaMFJDLVNEPNLHIOJWSHPJRQRISSCNROPKJWVF;PJQH^:NIOAODSKR=H=N`HIQCKHNXTR[ILOREFRdPH@PSMFYIW\_CIF^SLMHNLGRSG.RHHDRWNSPFK[>LLABRLKSMRLFKW>BKM>QGHHEO@VFVEMZ`9LCONHSVJHOUPMYKMM>KCWTTTXLETEPN`UDVKSMRMPJIJUJFIELNUJKHPGMVKFNLaOFH@MZJMMTPOC[MCSLGPIDHONVQJ?LKYMRKKPOXPJZMRLNBFTQ@TJKDMPFPEFVECMVO^COTGHKWHLOBS?JMHHDG^bIEESOHFSBTTMNWXLKKOFPR_XOPGGRFHUJGTM]ASMSHJGSNQAQLNCULOLJZP@QGICRMVJOORLGNGOG[OPOTIGNSPVLEKPOPWRMJOSMUPFQINRFXKPRGNFCKPGQQUHSHPLWMRNUSIIGHKQHNVWHNWMJYKKEINRTSMGLWUPMKLH=NQJRZEYHEGKPLMGFKQUCIRRGWUSMILDMRMMNNGORUHRNTO[GJVNJaLKPXMKIERQLKQMQRVKQ@SOcPLRUPKJHUPNHTHDIEIQLRHNOITKMIV_IJJTSQS^YQUSPL`F^JSZQOMUTUNLEWDLUQCSLOQOWKJXKJPTGI@OJMPPDHjJJMQGHSHMRJQDQOPNPLLMKZCIIKOKSIMIGPCUJHPWYNCPQLLMJHONQSIJKINS@R]TLLHHQKBONLFKMHJRWUOOPJGKFLR@BWTJLMGDZEJKIFONCXPPMFMSJFDLEHVONUNLISLL;OLNHSFVLDUTQFZ?LVO`KJ:GFLLLOSPMVRVTNISYMUEFLREKJYVNBNPLQRZLJKMKIXOWHRIRUNFK\CAePRMPSPLIUSIQUCVFIVTVWMPRMNTWSFFUU\IM]JCCOSPYDFcLKWIOQPRMWUOROTNBTNDEZKFH_R?IJWL=YDRBIGINOMVWNDKIAJFKQTHNJTG\QKD<0eSIFTUPQOPLQLLJFGPMTVFLGEVLSVKGEKRJWV?QYPVKKTIMGMXCNOZYJFYMRFH1NMDRS@X\JTMKE=MKRUREAEPNFMOg=NUELZIOH=MBHFEHLGBDQNGALSWOGHDPEGLMIFOIBBKGKNIM@BQLHEWTFJSVHNIB:OZGKT_HNHHNDFAOIRVNMWNEQJNLMVMJQ@PRDPaXGCVGBKSC@QRGSLVMUHRMCZO]IVVNQXSQEFJOJBBGFMUZQT@TXPVqQAT;PMEHEGWGLXLJJZXJIBERLM@ZQNSOGKMH_F@MN_ONSCXA?MQB?RMRIVPUPTNQIZOOBIEBLHMOKOY@LBHP9QQ[URSROKNHQ[PPNCSPIKSPLNKQI[KGIMAIJOQJLOAKKSHOINT?OMPWHLJOLH[FMNSXPJQNTLQDJKIKLHHFODFCESOQRKUDLMGIN:IQARLIMMGFDUKDIIJGL[QVSMSEMOMFJ]MXKCSNVCTKUK>DOQPEITNDSPWNGFSSBHW[SIOII]T[LFMXESCSQNDZNMOIPSRGLL[WLGYHHMWMLVTMNOWUSDVSBJOFEHDNXX@JOMJJJCWJWGOFPRTXDVJMP\QTAHPRNMPNIQPQQNPSHRPGQFKKP\RK[KMJHMURMEQKFWIAMRTKOROXOJNKMULYNRNTJTOXWRELNWGN[GQDEMNHPZHK[PNNDJGGHHXFTXWTPJKNHKLLVVSQXOIWD[CPJIMbMAERIDLHDJIHB@IOGLNLQPYMWGQ?A]DCOGRBKXJHYFQPTJSWGTDGGOJPIINDKOKMLTREIGBMRTODB^ZMU?SKIN;HHGGN\MTKFBKWKTLKCNKXKRJLLKVHMSQHCOKOGYMOTI?ORNUQYJIBLQDRGNKLZKNRVOPF@HAOILPOVSLXHLXBTPFIFIQDMIEDGCODMEI[RXNNKINM^NQXOPEOQ@A_PMPPOJVPGPKTINPM\^QPMXFJPKFQQQUNINHEFNMUNNNETPDLKVNRRPNTKUQLJJNDJRKHIIJKFJHOERTXTSLHMJJVNSHAGPXO=FOVHQLETLOHIY\LJJINQHMPDEQLJGHG@JIQ[MSKANDNGIIDSKZMSKWMTNJFLGFM;DJIKLTR>NaFSPM[NQKB@RBKSQgVLEOOFKKWHHGOMFQTJYNDM=COVORJMEGHLMFOGUVITIYKKXONSNMKRHQGXFPJJWFKUNNCESLNFJAM@MQMBRJOQEX[JJJXRLIKNMQNVJUOECVAPQKVGQG?EC\JEAMBLQL@VISMTPNLNSRMMDBTK?GITLIOVOSUWOKPENOLPIRRXFKHNIDWPIIONJKOFQXMGIOWJMHKROLJB@JRTRNMUZROUFNHRIHWKWTXLPPHISLVGHTOFMHURYNJGCOSRQIKZQSRRKOLSC[UQZGKRPEJMQYSEMYQLWITZJIGLGMLIQJGFASKLQEOBSNFOPOGTQGHHUTJLMRLSGFCI_ULMXRQSEKHRHQJRMKXOOZSRDOENPRRGSG`NMSKVOP=U@NROCWLBKTMVGPNOSLHUJNNRWQVMQUHTTPHMQBXELJ[NGMUCOOJKTPTNVTEKHMR^RBGQQRMUAQSJJTQPMWQNNHUIOKMLWMSQHMSPIRQIKIWZKQPNGKQREACQGLD@TcOLILLPKJGF[TRLJKUIMTTMDSJMPIKSQTFDXZOSGMGKJPJNMETMJJU>MIEOLZWSEODKWD=aXNYZNAWYGEYFEXDNSPHRFJHLKHKJNPSO@EYBPL>KORIORQJOKFINHOIOFYQNKRQJFHOPLLMLOHSTDGT=JTTGUFTHYYIOCNJTSBMOKE[TLSNRETPGV]ILPJGUOQMPRYPCKGTKGINRTQ`IL>UWLHN[LWGSKURILDMUXIQBYRPIJHS;M;JYVCNMLJTTWFTE^QRCNCH8RUINZSI?MIJOT@LUKWINKKFSKIKMPEKVOHPILOHPPNNITVISHLEFVHMDPPQMLGWPKGCDSIQEQUJELMPVHOTX;HYPL[LKXRQHPOEFTJTFUN8L]JIBITTPJE^P^VNAMUUNUKiIQ>IO[@NAHREKBBMF_JDPN^JKCPUIXQLPKKNJO^UTSCIVPMORUTSPPMOBVOQQTGQCS\KRKRWNQQQS?QIDLXMITIRRLQLKRLSDCPRFOHITASWHBNLKOIEGHFLFIIIPMKHONcbMPPKSFVQP?WKKLOMMFSTNXMNKOVSDTWTWHOdXXDPSIKHPLZFOLVHJTQNAJNITIKLHHPNdDOK[YUMHTKTM^CJY>MOGPOIRRPOCOM[NMIRUNTEQLQJLLUUF@QUKSIFRHUPXPQ;LMIRWXE\SAIPMREUC>XZDIJXSRGSSLJTKQICO[BPQRHRANSF_OIHINPTISIFORFPHUOFQJTSL?KRGMIVOEEELHNYQXKYCKCQPS\VDQIHJWPURQWTKANJHMMNHN[\LMOMQLA]PGGICMILIAOSJLDUGMRSHBUXUDOMCSHHNIWSDCCBVLNQON?OOLJPPMZIEQKSOMVWNANOLMUOBV7OIKQEPNHVPGLJKMQZOHOSNMVILKC]MKANYSMOQNLLKFWHQJ^UFUDNRKMQJHYPLOOUHOLKEJOMPKISTHOLSKOLRKRDLYRNVLQHQOVPLIJIN\PKMNTDIFTQCGUJUWWINJTDQXMEFUBDLESHLWBBJLCJANVUKSNHKUPZTNEMISKWFSFVODNBKYELFZSTWOHJNNNJLKFPQLRSZOMYKUFRTDOOOG^LQENLNXQOaRLLH\NLNQPOJNKIHVQKRNJJTMXJONPNELRHfUXRKDCO\DIHX>RJMPLORPCHLRYMONODYFISILTKaLIJPAEIVLGRJLEI7WUFGEXSUSONPMHPNIPQSKQRgEOAKRFLLDDTH:BSOPSNJGUJJHW>QQOVBTKIHRPQQHFKHHJNEOLKZCHBGTPN@HMOCVQJMIQPJUPQT[QLMPNFF^\CVTR[XGDPHNLUHOJQ\JDEWXVMKSSCLJMOGVEQMSL_OHGGNQDMTOMFOWTEKJPPZKaBQKULVNTL^JFMQHRPSUYQOIPSQGBLGQSHKOVKFXVGFIZLECKQSNZKNLOLFUFOIHTGWFKVTPPMT]OIdYIHLLMSIOJNQVDQMKIS^TSXIKKKOQSVPSKVVPREGNENSUNOMOHSKSBQJKMTENLCRFAIPJKNITLDAFJLISPMLZFDOLHPQVZJVKMYEOVFRQDOCUJLEJGJNFIHJaTN[RJTQFSGLULIZLQLDNG\TFUDMJLPPUPHPINIVNQHHTDKPSQMOFJYSLUPFLBVOIM>ORIGKSTQTP@WGCKITGPDMTSWIEPKSPONMRNICIQOIJGLGNOPJQFZVVUIVOSWINHFXIOUUP]JRSSRDH:MTMJGKZMVRHKGFIFPMSMNNTOTOISXK=NBPFQUKESVJCLSQTSPRENNRRUGEfLSLSSHNSOTZVQ:HNGRJPDNJKOMMRGKSHXILURXKIMEPALLJOLYHGDLPKHNMUKDUSVU8JQOUSJV[WOTBQ]IGTJOJOEMPBSRANMPDUOMKAK8OPOYSLNJPQNK[JPQTTLGQHHFKMQJIKDONLRHSSNYGaLGRIOGIHR@LT\SEZIYMQNO[UVRNH`FI;LR[OJRDPQDPGKK\NKQTSOL`dCOASHNMPPEPKLMONAIOL\IDFHOAHKFXANXWZKLOUKNGFSUQLZQNMLISBIKIOEHLUQHPJGBGQKRJJIDZID?NURJPJMXNMUIRb@QSQdJJHSHLQLSIILRIXKYONPGNQNUKLHBTGKHCKGIRIEKOGUcRPNOQRNTTGIPLMOLKSYKLKILOPGJPOBNRGQL[\ONTSYPWXYXLNHPNOKNFGHHRYLOLNFPRLAKFH\NCJNQQSHYZNMPHLOPJOF_MJ[QEQQU_FWPNUMRRRQVRTOKNIKEHQJKOUHBDRUGNECJUMRITKSYMMDFWTLHSCRQDBPUNKMVQPZUJMQFNONSONFUJLMLPNQOMJRCNUGTMSYIEKCXLKJGPUJKTY:GJQNRAGXCKRWMWN[RLEBDNTQ\KTTSTXYOPEIOKRXNULFELSLSLIIGXPKROOHFIVE\JQHRPFMRJVCMWLLJUOUTOGF\URLSOaRQCPOHIESPQUMJTNAPJQZKNSKGGQKKNOEW[Z[MDHLOJLRHMWSRMJJSNPJJMLOITNIKNFBGHFTTWMMSQRCSFOIDOOUVNRQWLQHHOMNDMDHLUMNMXHSMQIQCTHJKEEOJLSLRERNJG_XHJNGbLKOORJ\_DHNNMbHLROHJQPPNHJTJXGWJANOGTSQNHQDLTWLJTRIMHQLNKMMQKZMNFSECJKMVHHNJMTTGQGFQIRNLUKJWRLXDTMQDEWNVMKOJEEJUMFWULEEaGTCHPIKKI@VLRGILOMKDHMLYOT]SNKMSDUEHTOIUPLN[TPQTDE@SHOLKMMMEMPKMNTIQTTAWFPKMGOSM]QPQPIONNLUMJVHUHPSGGOS\LGLMNMGPE^DVLLSCQN@JNFQHHZJBJR]IPJ^BSMJPWINPFSP:LLMXHOHGDGNKXRNbBPPMOJLOMH]HQHFPKRHKJNLTPMR[KPJGTPRJRDOIPTPOKVWQLJPMILGNPPfFQMORIMMHMQ@STPWFVSXJKJQJJSWRVDKQKHHLRETXIZORQMP?OBHKRNKQNTEWLS\OMN\KNQGKLOFPBBHPSJUHSMDOHMOIRUUMUMKFERNDNIMIUVLRFNQIJRXKQTPPTQSLVIPNOFKOHPGNITJBRRESJTMW\TJLNN]YDSGEGGNHCJJRJU@MLLPDINTTVLIIYDLQJPPOLKMKTPWH[GKDOKTROH\TPPGXKJ?UMMVW?NGHMHNHLEJYJLTGYCORQRIBSIJVWIKdQVUJFDKMCFKL=DIONH_JKKKIJRGBFGHPQJOXKKILJLORKRMECZ@FDHPRNQZLRISGOJNBL?EHUYHLKKFVJGKNUOPO@QS\ECDROOUMWJUNMGOQ;KDKKORUOGPXHBRSULHLVUUNOEKQTOGCJODDMPIZRALHGUMUQRPQF^LQRNVDBLGP`MINQAWNHJLPENNH35QJSVQO_MFHSILJ[KIPdIALRRTNOT]PDLMPJLHMKETODKKBYAUKGNVINJMRRZNJJLMTGEHWO\QDEZSJGJSMOJMF\RTJOR?TUNEMLNFONMHMPFQZQKQJRQO]GHCLRK@JIJIMVGKKMXFSNMVKKXFQKREMJNPKLLTHMPRJN@MIQKERMDS[QKPRLNJKJVDPLIJN^GPQNTOYKOIPZ?JOEMSLIGFPIONELGNPQONMLL\QHQOGR^MFVGFNFNSSL]LUXDNLKFPJOJSPLSGEQQJOLUOPHYRP[TBGQPLeXKIVEfWJNSIIKMK^JOJV\SQIQJJ>GMQRPGPGM[YKQGYUPFVNSYVONEJULQJMPNWG`GGTGSMYOLLILGLKURKHUPM?JUMIPBTLHTJHGWOKRPQKKGNKLWQNQXBULP<`TLKJLKNWLGTLRLJORXBIGJPOFW>FRLOMMLJ[BTVORHL[KMPOMQLKULOVTKCHGXIGHYVP[JIYRCNTIKTIYINMYI?SWMSSNFVLIPPPSITWSRLKEUNPZSFTNGLKTOHNWOXNGNJILMKLQSNMKKIIU>KHKKMNXLLBQXCKLLPZQTWOMULNKNLIXMNYODRNNHMFVOMPHMLOTNTGJNOUSJMJOFSLJORROHSTB@TRNTJHNFQLEURRLJLKEOUPJSOJMJQLQPRFRHFIBMGTR@F>JGPPDPIOGQRGPRLbRERHWKISP[GPENPOIOKRGLNLMRYIKUIOYQL\N\PHH\PJTTTS>HVJJQHRNR=WTPIPJJNNL[FDSAPFGEQSbHGNLNVJLMQFPIHHDIQRWTVGKKKNINPINITOTRIQPOKGLPPI[SSN@JKZEZG?QMPOUUHRJMQIVCMRRNJOJR?HI_DRPFY@KILPQJNNRLHEUUVSPM@DLNVFULFHQSKJLMKUMV_EKFQNMDJHHNBLLUMGNUSJ?JMOMIIMGKSHIIWSKLPYMOMYNYONQWXKCXFMZKQKLN7SXQJGNTJCPJXRHFTNMO_TO^TYVLNDMRFNKIXJRIKKQJJLMNPNJP]HJVKOXVKHOVORBRJKFJLQPRVAAOPPIRORUZIONFRZcGTFFVM[JWOLPZRMTDYQQJJJQPMGOX?F:LVRSPJPQMKJKMSIWLNJUKGLUONRHQORMNGEGRVZQHIFBVTUFHMDOQQKOHO\cPUJRQIHITPGMM^B@N\OHNOHELSGUNQYHLUIDVIPQJEGONRREMWDAZTULTSJRFDV?MBUCUHHNRJBMM:ZIIQHLLNLRKBOOOMOTUHKHSKFLSYLLPXSEMMOIQKEFGRKMROOT[PJUPMRKTQMLJTHKKRC^DKJRSWLISLCWL>OSGNWK?NXM?MIGSTU?>UDHOFLMFKc[NEBJDNREP]JMLGKFFMTEWIXEMLGKOCREEUBVQOMVR@DBPLEOOQAL\QP>OSUIQMIONRKMLGJDKTLVKXMRD=IM\VFDMPLJQAPWUF]H_HUFRFJ\JNQNMOELOZPOHVBGOBGJHTPKKMORMSNVHPGXEDGRKLGSBZP@LTMTYWX[DJOONL?GQNB;QPCUJ]OHLPHLEEZQ^KW^MZBOHFZRKWOPCFQ\QMQCIIQHFPQNKOJEOIPJQINGMKKWTOQFWPLROFJED>RDSNMJOH:[TFJ_QDQX[RJKSSJIWTMKPMEHFRSN[PUPJPMWV`bRLIMLSR`LI@NPPR9PSSKECHKJRFKKFN[CZ\LOIO_Q[PQPBCGQLJCJSXUOFC>\JMFBWFHMB>KKF>=JIF]KOLSMTINZDRVWKCJLSCMBO>GGJGLDLOKOASF?WLKJ8QOYFIMGJIKKKV@IPMUMKHVNNLSFCUSDTFJLIDqRNEWNWKTIXBKHPPFMJKSMR;HR@RGWYVPBCLJRMKKPOKKELKJGRPLIHVNQI]MQQKQFS_RFNDPT?ILXU=ELKIICOIZZKUEMCHJJLEEPSIOOOTKLPEKAVKKLMWIWLVPLIFT@XXIOMURNNHQTOYFTJGHUNPDNMMILHLJTEBPRWPSPXOPOQNSMfLFWNFPJQP_RLRHENHHK@ZNIZHHFNIRRMOMJLMJRECWLPLNQLLDSFOPJRDIOLFJLR[NP[LMJC@VKSBNNPRGOJLDNOMPOMVKNPBFJPHHALISXMZSTJGFLSMHGNPEMTORRPDJTJPMDJZPVMKHTMGSKXLXVKL?WOKHIGDHTNINJHPUHPHRIPDKOKIMNDNJLRLRPPQOHKLLPLPFPPPHS\MHLOLNGXRORSHOEOQNQLHHOINOHOQJOVHQSHKTPEDMRLNGQVHPSKMNLDLLOHMGNQHGSSQQF]NPFNQRVMKQOTUQNOPLKKLYPHMTONQKTLYPRKUUOQFKOI]IRJITTLPQOLKGGNVKOQDGKQJOMNTNHJMSKMHOPPLKNMMINNMJHSOGODSLNQRSNMKOJJQKPJGPUMLSIGJKRU[GNLMQLKJOLONLM^TQOJLODKPPMHMLLUUMH[XSKNSVPKMRLKIJQQPLIJPLNMKMOPNFOMULWOQXDKGNULTRMSGPLQKKNKILLGRKPWIMRNOQLNMJONOGRRLLO^NNOOKRNXQNQQNQISOOPPKDLPRNJSSPIUJQTIKVQKCNTLPEQZFRQIOKNDROQGNLQILGSVOJJ]TOGKRRPKLONWTSQOKNKMI]TJQSQLPNPFYQSGRVQNNGNO]NNMIMQIOOMLLMJOWJIMGIPMKONSVNILPROQGMOKQIOLNENUMJIVPMKCRNRHWTLPISIJNLRKMSUMOSHJIIQV^DNLJRJKJVKLORPYSUSKKPENRPOJPJGTWNLYQOPQSRQMIOOKFJNRQTKKNKMOMQQTLFQKRNWSWRKLMNSLSNSSM[LOORIDOQRKKNHIIQXDH?SLTTKLKHXUQ]GWGKORL>AR@UHdTRGKSHTMJQVNNCOELKNNQJULLRPIALOPTRNSQNGQSKS=MOQOJJQERILUTPNUBCUNN?P[LKO[TQGTAMNNLKNJNOPQITLHIWOBOSB]XBWJHWHNVPGLPBTJIJMKOLUVMFTOINVTXIMMJJDOLTOGHNXZNHMXJEXVJLGII]VHVIY]FFUMHJRNHFKLFLQNRKXMNJLHNPGP]IIQFQKCSGIPOMSHMXMMGIKTSJSNNFFPM_GPJKPSB[IMPJQQWK@GHTYPROSRXDMOHDWJVMGBL8OJIFAL]IKHOJTMDIF[KNPKTMG\QSRWGG]MPMFYMNIZXWFHPCTOLITO=[MNQO;ONGRHGIZHMNPKPFJDKNQHIQKDPRHPWNaHPLFJFUKTQKEPOKNMWJJVF^JOPQ^XRKKH?PHrFNaNJADZFBMLKODFKPIORIYM`VgKHJKQHJEIPONO[JNS`LJPPJNOKVWJISONRFMIJGKNOXPTHQGSRUNNFEYEQLUCJPINMNYOQPJRSNIJPCSUCNIRNFQEKLGPMKNIQIJOFUPPGCFOPSYFPVENOUJIU]HBLHNJKHSMNS\TKPPPJGINOMTKIQKDFBXMTMHPUOKKPLLRMOMGRLQLJLNFM?WANNINEXMTSKRMQGMQRINOLMJQIMKGSTPGJeRUMUBPOJMGLGEMIJLIFVFFIUaFLZPPLQJMHIMLTEPEQV@OEAFFKONGOKJETMHVJJKNIIFTKIIJPI^IEaOFMQVNILRLFQMKMSVPDNIFRNHIFUPRJKTLMLRPCKQJNVKBHRQKIPVTMOVLKLGIXPBETZQRQWGCQRHVUINIWFNYJUJDPK?RNKPLKLKJJQOOORPUQFKPOKJEMFKKLEMQINNOSBOGUJKRKFNMEAQFHOMPS[HJRIKTLOUVELMOTPNUWMIHFHLHMMS[OKPJOEJJGNGIUPWPKZLFFRIKDRMRBQNMDIJDPNF=EAMKJBKINLNEMSHNHMITPGPLSLHLPVKTIUUGKOTS@OKJPROLCHKNHNXUNODHHIQOOROOKIGNRWRMRKKTRJBRISLHGFLTONKLGLOOKHTYQMTDJRDSQPQRLQFSFJVRYWJORYGMZKGTOMRILJMMMGJPTMPOFKJUPBLEGMLNJHOGXHJVMLNTVALLALNNGURILKJJLMNQJcTAVLF\RIRMVO@EI\NLSIJJQOIJFIHFKOKPGGMTQIXMSIFAE[QWFRKLPWQYSFLGAEKHLVVJPFE@IOQDKQSKR=TGRWOLJVTJKYPOLEJQ\GJ\TTNIHVJHMTKAOMLF^NOY]OOIVF\ILXWYSRUFPJEFRNQJ]Q?LKZGBBQKOPSQIKIZPMPNHCRRJ`OLJKTLSHXWXMKKNRFKMNLNTALK`YHCNQQNROJVTPOHGSTMYKEGIHSHMLKOMIRUMKQFNPNR[GCUQZ[CVOQJORGOETUNIPDPPBMXIIUJPPRWEFOPDHDNLHLG\RXTTVDWILIKOTLPRPUH?ERHJVNSIFNGIK=RWQJMKFKIHMTITPLQVFSUXHJGNKOPOOOQLTJPFE[IQGUOJM@BTQXKTNLOIAOLGTRMKOYNSHTQOPSE[TZIFKG?LGE[LGLGLW@OL[PFHYOJMPKLaMMIC[COTDGDQ\MEXGLNMFLIIWHRPQMF@SPQFVKRGJQNGNDJIT\HS?N>SLX\YNNTDJK?MYOXVOLLXCUNSTSDTOVAGTOJTPWMPPSA[EQMVI?SGIKTIG@ACPPHRIHGTP\URJMJOKYO?ZRMMaILNCLVETQK^KRNPHXRQEVVQGEYPPZGGMBFHPDSBBIRROIRLU`NGKMOJKTH=[LEMGRGMPQCUCAKQBBMSELNIGOWKPTEPMHPDNULMMHR^CEKLCOPQJMPHNNJPQQOZLLQQP[PNODLRMOVJAMIMIFMXJQKNISMTKPFOLQUSCRLHPRLGOJPHOKGPLLPBMBLHQNRAYICNNQJRVLIKNQNNJPRPQIKYINCU[RJQLKKJ[RNWJ?OLUNFSQPJPFULKJILJPGdMUKNKLLRSPPPIULGOSDTFOFKRGUOKGDO[LIZLFILONMNYFOQZUGILSQSGJPQOOMGTZHRNOLLHLYF^NRIIHJTRPENROUMILQWMUPORIINMHPOSHTVOMSNTONJNRQPJ`KLRJDZ_QRGSNPIZRPJNCNWFRRFT?XUHPJTMQNVLPHEQOQYUIIQJIGEJXLMRPPBOJOITERRLIPKLMTQMTQTKQONRLJLPFJMWRNWYIIGKBTRHGUHIZMGUOOPKJFQEY[DMJHHGOFIZBWSEIMCQDFJVJ6XHQHVOXGGOKLNNNHHKPgH[NOCGQTNWPFPRPBHQP]GLQCOYIWUWbJWI?MKPS[PRHTKPLGJXIARUINDJIGNARHTLOR`M?WDQSTFUERYOJPTXJHTHjMYHTFIBUADRXWG[_UHFHHJKIJMGTKNNDIZKQ^CQMLTSMTHSGIBRLQHII=PERXNHS:KOD=HLIJ]HDSRH_MBXWIHCEKMKON>CUIMB@IOWIDWEIVDJLOVRRCMMUSJ?NLJHITIVTGGLODGFWMJULPKYMIP]JJPSYM[LVPKOF\GPLJYKWOES>LPMH=?GQTROJFYKUPHFFLROKWILQXSIZVBTKIZTAMSBVHSDIEJIQMFWPLV@MVYNQLGWRVLFP[EHCQBHRYM^OUaLKHTXQQADSYUSXQSIQ`JGQGWLIQJHJTRLKCKIHIIJ^M@QHFRZPOIYMPPVRGHQMNQLFOKRLGN]QbNVFAVQ`KZNICJTEL@UYNHMPQTPLJFVMYJLINIOPPKJ]KQIL\LIFKITMOLEUNJIHENHUYMKFWDOPUNJGPJGAMNDbSGHQPNIDNNVNOIMVJWNVWPBASULXPRTWOQAUCTWPKKHUV^DJJKIWRMOTHMRFQJVRVKQBKJQRZLKFSMVPHLZGXMMOOSRNMPJSKUDWVUGKcQPLRRKTLQJFVSN\JCQNFQOFJNLSGLJPPLSHUNLIWKOQROMPQWQOJRFQKJOPTQIQDR^GHI\SNMMFK_NOMDOC]IPS[TUDHOQPMSGOQQXMLEJP[OIMJID_PRNKKJYQTIUOMQIKOLKMSQRRSPGNNQRQLICFYLKMR[PKQ@JPSDNHNNQJLJFMNVKSRRZWKQOPPQPVIRSKMFKZGFK>HKELIKWHMHGPIQTLHPHMELL_FROLNTP=[XJIKNUW]GJTMOOQHGSOYYEEFJII;PAHHYEHJC[\CDE\[O=ZFKWNMIZOUUREJKOXFONSUNOOFLO`DITDBeDOSPWIOULNMHXVM:QKNJQHXFSV\XPEOOS]XFJHQLPSMIP>DMJJU\MLNHNKULIYTMSOYHQSIPT\OXPUPIS\QSJNYLSUXSECNQ;VKSMaHQMKVGeWUYNLGRLMSIOCOYVW]HNTeEBQMPMGNELALYEVRMID2MJMEJOMVBHMJJOQIOFR\SXKILQH?OYPYOMSJIYRNHHILMHUOXHN]JQVKONHGDTK_ZMGCIJOINNDTDGFFKJMS]FMQMGQTKYNQJYPULUAPCPIFQH[IQLUJXQBGHPWZCRG[UUSOLNQHOYLOGQOLOPYECSPJQOIERKJGLGZYU@NE>BPLMGSSHLKJMLAVWKULKSLGKKPJRFULZWM>MXIBLQFHRLNNGVFG^ZW?OOQ^NIKMNOMFTHINNHVSBPENSTJJOMLLCHQKROIISJLSTHINJMKSDO;IRWFPOKBSVJWGDOQSPKPKFTT=GGKILMH\RDIONUMNYJFQTIFGQLLCHGMQ[NLKJ\IOVEUWQOQPJL\PKTPMBKIMJRHJVPZDMNS]VFVMERNDP[MEHJQZMQDVLWLFJHOQPHRUEUJJZRLFLBSRNRMGOPMUGVLDMJGGJRKWPLL=OBSHPJNCQZPROGYNEWFGNOCJQFETNJRMOPIKKKMMULPQCNOJKKJDYNXTDQKKHH]LLOLXRNDOIINDSKJPHKLNXMMICGJOUJRMOMWASKSIDKOHXGPPRNI[TDPMIHJEFPKMGNTKQXGWGSPPPVRWITRMSSQPMVFIGNNRKSVbUHPILNRRIVEOEKMJERKGKSCNMMSPYEYSCMTHIRXUDKQJINQOSLDVOJBVXNILJVK=RGMKIOBFUMENOKNGQOGNZCNISMKTFRTWVVL@ONIGLFKKK?UQIER?TBDHGTYTSZQJRCFDNQDNMEWK?QLLXMMJLDHMHNPJKKPHGRHBLMFBRIUVHHOPDQUMO[BNSMJOINJSKGH]NQOGRHgQIELHSSNKVVNMQYKPMRRGNQHR[LIHH^OQRITI;RRLQOMLBLUPMNRGJKENZDOJMXDUUXURCDKQCNTKMVUCOIGKGM\GKTAMKFHFHOCJCWR??RXLKVILKSPOTQ>KFIX\MORVEAF[JGJNKLPMULR[OWGKEAN=MOLJIJQEQTPPMLIJQINL]OYLV\JUFPFPWNHNRKMSP]FJENGKGEJJJQYNEJQTMFOMMLIHYOKEMSXQODJPHINOKGMJYOPQQLOVLMOJVAKMWAN_NSORIRLPKQIEGJKVKIPJZUTOQVVMNRLRXORGNCTBPPKFMLHKSGMQMEHJO`OILWGJOfC\MLMLSMOLOSVUTUI[LQQJBOOIPN`NMAEMLPNMOLFHKFNELKJMDIFH>UWMKSNDLLKCPPNGLHS\MFH]QQIGNKNPIFPIITTRIUENJKJRKEXJJQQDLITQDVFQSRPWTSIPUSTJRPBKKOKM[JODUQWQORPXHKOJAGTNSJ8ESKKJJIPRHHELKEOILMQLPYNUJKJJLQMAENQPWGXMZEMQQGVMPcROLNINMNCLLSQLJMTHLUDITUPKUHQN@N[DME]LXOPRLFUINNJSJReMSBNKKTOFKKKMJN>EVMQJRNFCOXGRHIOMQQNNZPXQM=JDHMOKNNPOQ]DJGNNHNFURQYNGKQFNRUJIMJU>TKLPEGQNVQHRZPIFLSNLa@MKJMVOIUMIUVNUKQPSTNBLJQKAPP\VENEMMQKQIMOILYNTZUMLFHFJGPODDMLNJMKOAQNL\MTSSLES^FEJKMLTGJLFCQNRQQPOLSJKOKJNPOLHVEMPOLRPODFQMTbVQMUHVHKXLI\LNHRPUGKJWROUXQHSDCXEJAMIQ?LHCEbKJMUTRFOEFPWNSPPLSDGZQL[LXLHHOPHGTDNQKNIIPTF]VKOQCDNDDNPCR@KXULRIMMTB=AMRRUFQKPKNMQPEXTTMOELJbFFTVNKHRKA`DUJAPHORDHQJKZCRNK=IPPOHJNRS[XLUNTMTYTOI[QJN`FQROQC_ULRRWRUSMHNQMNBQBJPESHLJDJC[HJDIVXRORQGGJRZIIJNTLL_NOUIQHHOSBDQD[=ZMMSNPTLSEIVW=FJTKLIOUNMGFOHNLOODQOTPDDLGaLJNMSOTRQAQPB=SVPCHIPOMNTNSGKJREJILOHQNMILIKHKDJKTIIVNCSPCFDKPKMBRYNGMNSLJFGJIHOOUJHDAMEGVGGDV@XLLHM?JLG^MTFNNOI\LMMPHOEHRNNPIQFFETKNITHQRWELJMPNSPA[JXHMVLBJTHMYLGXGWQFIMOQJPGKBMGPHFJVTECTUOLKROSJQRJ:PRIVRDCLMGEJKGVSIXZSGJGMPOMFXHDD`FRYGJNICSMFNOMLULCSNMLM^ZKZPSQLRQPI\QQTOOQYNFLS?JJQDKHNNICRJKPKPSH?MSQDRSBMIMIKR_THMNcNFIWTYTQPEQLGVNMIUWNJLJKNVSDKROFTO\IUERS@IVORGNP[QDLNOSFUJ@MQGLKFTPAIJVLOQOARPIRIFJKISWVMLTRGOIIORHJOQFSREMKPOATQHFOPKOPRNVGKIQNKKQOSXRUMJQKJKLTSKGQMOWTVEQNONILNILYNRPTSZEJDMCLRMHQILOLCGJJLSKMMOMP`IUOWSR_JMHCPDEETKSRQUTIUTSKTJF@KS[JGHWOMJMGHLKO]VU_GPMJDJNRYTKMQDOEEH\KUKLNPNKTTIGSMHLGKJHN[POQYYGOL]H?UJMMDICJE[XRZGLEHYPBCWNWVILEHSISLPTS`NNUKRGFHNAFSP\JLQK^OFOLNH^GPINHQHEKNFCGNO:YDQRTTTCIIHHXIPTQMNOXPQZQNRVLUMYTKTLNLMFAISVF_HGKFHI?LJIPJZLNKNMKNWIPUJBKJCLOINYIQFIIRRGC@QEPMHSTMF[FWWK`BKMIRKKOP[NGPUMVRKMSQLIKFZXMRNSNMGYLJOFKIIMMKOOLSIKKcLGSCMMILLGMTXJKJGXRM[PMWMRUVLIFPIIFJEJLOJXDKQKSBCNXUMPKPZSJN[MS[OLXIGCLWGQGZJHQJQOI:QCAIBWIN\I@MENEJTJXMD@QQPHOPBJ`HQMTRTDHNWL?BVP@EBOIURIND[ITEMZJFFSHICUMIOHEYONJUJLJLFOUIEMJHPYPAPOMTER[MRMEKMROIKMSFIKQLMNMJBETLWHSPJUXSMIZJ6IMWPMOJYPWCKNBXHIILHUPEOBOLCZQMPOKAVDLT\LLHUGNWFSSRPGQRT=LIUSRP\VRILEELKVDDODNQPVHEYTVLKQTOKNISASKIBNOVRMPNNSSDL^V?DGDJLJPOWQPePCGFBOHFZJYNLJGKNTMQVMKMAGRLEJPMLPPTHPYEKRIGVKHMc@MBPPEHHLKLMNKSPISGNOXJKQHVVCOJHRMSNTRJKNQQSL?RKFKPSAKNMHWGIPOJEKZUUINSCDKPNIISSKJFLcKGJGOIQOVRJJKMDOLLEQMQEKJMQBNMLJYMVLTPMOLOWSSRSQGRMNSIJQf@SGKRNNSNOVJGUILMBESRKfLDM=PJ^[WMBVG[WQGSPLOYIOOIITIJPKIJ?OM_HaRQFHOLOLLNEPPJ?FUWY@QINSOVXKIKJNM`JTUKHKIIKQOFLUYRDLQFVIPWPPJJ]I[IYWYPLHNSOMNTTDQQRQIJ[SGMRLFLHDQLJVQBJTQOJK^GSUQRRGWJHONMOMOJAJ[]VINJWUJPPKISSTMPPKPIKRMOGVLEPNCKNOSQOKMFLKGFSPTMRFLKRUPHNIHOVJJLSQQQLNPZ_JSTXTMMQRWFXRMUTMQHMIMESNMMJLTQFMWZJHQEZWPRQHNNGIIMM]?NKNQJP=GCLULQH^VHISFQJHJ@RKN^OMSOTXNETOYKWZMQOMVMFVNJECGMQBURSLREISO@EMHTRFPGJNV^DQNJJSJUJEDKZORRULTJKKJCaJUKOLIAKQGTXPNJMKFIHGRKPHMOZXL[?KHFMFCW]KNMLHSPGCV[MDSLLOOIJMQ[RGIFNJU\SDTNALOIRF\HKJKEGOJXPL\HKEWHMLMIXSOEON>WSGAVJINMWFLFXIPTOTWBYHNRM[EROPFQGPXKUJMEHIETKQMOEYK[SK]bWUFCJVKOFMJHHMWRHLMSLTITIN?LOULT@KPFMLLL]LGIQRHOQNTLHCVLUTIGZERPPXLPNQSGXCUMMF^HIPJMNPPQMQIRABT[NOHPVKPQLNKRFILQTGXPJSTNKFKTLGBJQRUWR]KKPQNDMTJXPQDLSBMZDYPWRLS=UKDCQ@KUNPNNSEGNOHGTSBK]ZNK\VPONGYGQNJMXUMHZTQZECQMXSRIJTHJPJRTQUMP[S?GQSLRKWPSFTRKPLBLKF;POCGLKNUMSSRPWTHI=GIOMGGY>PQXNNPJBDLZMLPLSKUNK_NW_PKHJFLOUVXTPUG=LZTGLI]LLKJPZNRCGHTSIISHHPGOIVGGKQYN@K[DRIEMGBAEaGIOPNANUMLCNHGGVJHEQMFaIMK[LKGNkMKUHSNLHTRHQGUQLQNRJQJMSHD@UONSOVNYFSNXHTEQMJRXEAFILDFQWP@BBRATLNIYVNQOQKPLJBNJRLIOHJ@SMOKPIT_JFQKSJLTHEGGUJPMFMNFM=LLMWPKKWB[_LIF?OSHETRYUPVFONJSNLTWIDGWBUUGGTJSKANILKLUMLGNNCQHS?TLKNRMHMJWKFEIAP5HLRPKNWEUH@OUVTSLP[WOVSNVHBKLK[QOLGETSJNKCVRVQPDVTHGZMIMUSJLKPTRSV?SbWEXOEXLSRIQMVHQQSMJODFQBPKTQQOSJQGNSYMEL]KRIVEHW`OSJOEIFSLMGbUJLNCMODPIGGLTJNHQPCDRKFML>FOVH\MVLPQPEP@CQNLATLYCPUHGMQJTKVH?TUMPEFPQPEBHYGVEVLVEPPFYJKKFODHNJAPISJOGTQ\AKKOHRZ\OPCO@EUOOUCMIFSLTF[KMSNG[GWG@HNPWBSCRVULIkPQ`HSZPWPRHHTP_NHTHKWIJG]MNKNRMFLNPaJ^HMRMWH@?GHPPPKWNQOTJQDHFQONGRRRUIMFMNJBIGQMLVMRMRTLTD\HNGLSKKJAXPWHNZOJQXKWHPPLYLQPDJCGRFGUWEBOHQONDPQNQHPENMQHETAFYRQGWNNNTCRPRQP^HSTLTBESZNYBTJMHMHUFKVUOQVFTNCTNWT]KLOFPFJGYXHXXHIIMQKEPZRLPIGLJO:RDTVEELOHUCWDCVOTWXRNBULGPGRUYLMJIKOLQNWSIbHFEOWK8GGVRCWNLM>JMS@HLVHMSJRDWQE@JLHUBPH0JVHLUW[?DWJQMWSNTROSIJAFPOFTNPWLSWLFRAWKN`FZMU@HQOMGIQVSWDMb>[ZMEJNV:RJSQOfIWYDAOPUH]iCPaOLFRIPMOYPOWJEiIKOPOUEIOMRELMXJ^FXWRJTHCA^RYPTRUDUSNGEDMBIXMVTOOHI;ICNKXJKKN\PHUNKHXMVQRMFQUMQDL;K>TKIMaUGGMXUHS>FKOW=NQOHJPEJNMPHLSROBdILJTEMBSKQEPNTSHIULHINKDGJUJ?MOGKTC>J_K`^DFNURSWLCN[MSQRWPSdMDHGUMANGZQIOGSOP[XPNNMSRMZFEHNOCVKNLBBEONKVEGISOHMKORHPTKRIK[DYLOTYNQRNACMDQCBIOIQIPYIRKRVBRB[SHTMDTNKGHHNPTLKKBNHQITOLWLJVUWHJTIPM`NLR[QHRSTPGTLJTJRVNHSAVRPDOGDI[INOIISPQZUOLJORFSRYDKUPMUQROYSWGDUWLJUK9YDELOIEGLMPFLDPSUFXCOINNFJSFMSADNGSKOGONPHWQHPEQKGMQDPKRTJ]HQMRSFRNNPULJF\QRFKLQTJQKKIOPJJIJTJMRNUHFNPDFSMUKNERENVPKEPTNRMSJQPFUHMKKR]GXVBXMKPLRQFJKNQZGKQISJJYRSQSPNOUHKTRSRT[SK^G_QIXOKAPOXEOXILPCEZISQUIDLIOIFNSE`GFRLLDQPQNL>QN[\BIKKFHDHJNXHFIJOHLVcPGO\SOOGOGNZHPEI_LSJPF[FPRJNFNXPJN?SEQULNCQKREFNIWPPTZNTILMHSX\FPITIHOPRWLTIGONRFQGRIBLHVGRMLOYOYDIKNLPJZITTJNNZ[MOHQ]KTNCNG?^?YTPIS_MPPIIOMKVLFLDKRP\UMHOYHNQGEE[SMIND[EJMKHMLXJBIQHNNMIH@VOVHGOMGLWMIIILWHTJHFLMSNNSSJN;TFKOIE?JCWMMOCG_THH]QLMGFSMDTJRZ?LRJF`GKMTIODKLSDKKMKPKDPMKFXVMNSKTIOQ@UN?QJBRUJSHOZDGGIQNLGVWMPMJWKXRQL]HOHI>NSMWOFT:GNG@NQNNNMUDMEQO`OPDPARHWQRWXNKLVLIT[NKKNILKBJMGHHEPFGKWKTTPSOVE[WDDFKNJJIJJPFASBRhGJ]KTGORBUVNGRNFW@TOIVQRM]E[KFINEOKKJVQSOHJHOHSURCOLXKMPKQAKCJTLOENSIJLVDGRPICLPIQJWMNQODIQRRENWILFN\DPDZWWLLJO9IH?KFALSSBIeJNOEGHCDGHHMJJEQY_VAERRLPXNLQSOVHLRFREXDPPPOLKQTT[5RGIIR?JNTLRJIDPS?WNKJCQSSRQPOIHEVOGHKOGKPMBOIMFFNUGLMKPIPUHOUEQHINRVHLRPGKROICQKTETZTRFKTVMJ?IHJC@JTOTRGAYXNKVNBMHBLLPHBKXPFHENBYMHJEKN\MGUJKQNKGONKHNT[LGGSKOKPHPYEFLPHFMFIUKLKORGOLSQWL@QTUKGMTFMJRTLFSSQLDGWHOVNHNSGARQWVFLMH>JQUQSJHUWNIXE\IWLKNDRHLJVPDGISM;HN_NNPWVTBQ8RFDRITNFNQNMALYNQ>MN=CKNOLQPFNNUO[PHQNMUSG?LDKJNPMLYFRTSJTUEMLUVJSDYIROIIVOASEGLCBMOMAROAKLUTLJJQR=LFQHLV\MQUNNPJOSSGOLFGNMMPBXUUHEOOUISFM\RKRJGMKFDPHRQNLPNHPUIIJTNVULIO[LDQMRGTNKHJWKXOGETTFCDIOPJEDWeUOTQHTPF_RKSI^NQFU?MGNURCJAHVGYQEISLVRNDMNWJHLNUHQHIIQTJKLAPPSUMDNROR[KOTRCILIQPJU\JGPNI@OGOIBDLOIKQQIJOGKNNUXWPLIFRSKKROLHHHJSQSOWKgNQLGISRITNQQUWINJLOAOQUQGCLbQROGKMNYPDNRUXT@NMMPJOGRGHTIbRNJKNLPSCMQFPPOSOWWVUOHKLQMLLQIQUK@TSNKHECHYNGYSGULcJILFLJBNEWWPSRKYIHHSGON]LQaNWGKIN[^AJEETIGNaQMNNHOQCSSKRMTPSGKMPELJOCVMSSTOTVBKQQSPORFJJQKZLWDPWWUSIYKOQMSPHGPPPLPTKHRIJFYWSZ\?RFFN?OPTHWKKLVCNDEFGOILJHJUNQJILQKJETMOPHJON\ONYJMDHLMMEKHNW[JMRHIMRIYASMUVJMMJOVXOQLS[TQDQNJGbJKQEJZ\[LHLCKRNFMNBLTQOFZVIUYR^KIOMNKLQNUPOIIWPZLJLFTHXFJIMJSPMHbJLHcRO[TQIUXXHRQGOSIYTSU^RIWQMGIPN[V`QQQHFUUOLMLXNHQHPKTPK>JJHB?KQPWGI8\UZTP@HE[RXPRRDLJJLKCEOIPHSNRO>DENJPKTPLUPEHPXOTMAPZOTP>HPLGIMFPPQIGQNSQGGN\JJPNOCPENRMAGPKLFSPHEGDWSKTIDJWPSOI?ZNPRMRLOPLXOJMVEKGTGKU=EGKPGL\KOSPSGERIHW`QTNKGSORK[QHQCHWRHOIJFEDSLLSTSHSDLZN]JNWSFPNQORQPRFVJKZWKHcI^CKHHBOKIBLQIXKTUKQJFCPEBLFDHPQKGRHHVOTKPIKF]JLSL\SPXKSFaAHGROAQCNBRCNPITGPIILVJRPRHSHYOIBLFJGGKJQASW?HHNRR9IJC[IST[MFLEIJMNLHDPQPKNOBKK>LCJDONGVNOLDJSQHUPONQGFUNHSFQFLKMKMKPCMNL^YPJOJKGHELUUKMAXQNHKQQQWRKNOHHXGSONGERdUINLKOLNPMQSMRYXVKRIFGZGHSSGLPY^MUIIRJQKFJXFLTPPOSRROPEMcGBJHNNJWLQGNTXRL>LQULOMRGOKSJO=WHSKROKDFKCQNDNWQ=JINWTPNUTJJO\WVFSUIEGRWOXMODFDIJFKIUAKMNLTONFBMFQKPJAJNKNGONOIEHJLYYINLHGFIGISEQFIOJKMF\M>JIJZHOWPILMAJVJ>TINMIIGGDIGCFUPMVGN`MOJJIMXQOUWIOQINPV^KGIEQQJMJHTKKFLKLSc^MJHPYQINKMKKKONPJNKJPLIBOVOWPLQSEKJNFLKMJGJDUURPGIGPRTNPM]`KVRK>OMJCKXZUGNLLRSFMLPMOHQAKRKLLEROXLQPJROJRYIKQIAM:QMSIHqAHGKNORPSFOP^]PMNSNQPLZLOYZPGWKiKWI\HLRP^FINNFDINCQ>SXMKRNLQ?H:MVI\]DJOHUPSLI[NOLLG\FOP`TOY:LRMLFIUKNVNKTKINPSHVKKPGNRHOCcIDRNPORFQMNHVVNOHIGEZRTP[KEMWMVNRLNIHJUHJQHGOGNOVFIEILMTSI>LKVBNDCNMXVMU\@SJLKDEJED\KIKTDLZH\IOHJASUKKEYQNMMKPKQEY\NDKBNMQUVDHL]RDVRF@JI^DKTQJUKOBS\OSNAEKIVJCBNLMUJKCQFJTHSJRLPJ\FKWMLZMKGKVKTJKOPaNJMD?ZFLN>FJLEQFTM^RNS?LQURDMOMIOXXZKLOOEbMOLNQNKSNMODROLCSKRSGIKRFMKIDKPLDQXSGBTPTLHARMPRMGLLKFHUELSUSQTOFJKROMLSUNHRQJUNNTYLNLSQ[JJRNSPNNQIOJSOLIK]NGVOTDDNTKHIRQNNSOSCEKOLFK]MJOLHN]TSKGWRSMNGLGGRIRVWCSPLNLJJVLHJSRIMFWTONPNMHTLGRKULNRHILMDMRLWOQLLOUCQVHCNN>PLXTMXLIONJUMLILOJPMHSQSXEHNSSLNIJJFMN\KOQJNRCQMKDMLSMRNVONQXRJM>MJSHVGHTPLBBWCGNFTBOSUMIIQLQHKIHUKMKF?\HLJVMS]SHSSXMJNWROKODKFH[MfQCSKIJLYDRHJFLIAMDZKAMPL>KMULJKEMELTHKWHEPMFJW9_RGRHSG@MLJGIdISXNDEOGRWATQLJOJHOT>NXWdKPOEKKQQKGKHJVM?PZQZQUWKNI[OMJSHKR[JITCCFSHGGOaZJKMKOTQUPOR`T`SIPCSMEOKLQSJNSKYUH\ID@RaZKN[OQDIWNWiPGOORKQITKQHLVRKEJHSBWHOFORLFMIY[LOeYRVNBKMLPNQIBbRJRIVJ@OFO?NJKQBJVNOOSIPNUMKKZJPQVGIFNIFBKNROQKNMICNDSIJ`NYPJQRGLYOWEKKEHJRZGHEM@NPXHW@KQNSJOMOT>NRXZMMMSRJMILSNMOHKJKUIMKTPKHGOLLHQLSOGKILNQ[DBCDBIDHSMQSCLSUFTZORFHFTF@FWRLKOMEJNMJIESBVTTIITALPWLLLLKIMGOTPJGILKJXJIQ[JVWLUKMGKK\>KILHMRCNLGRDQJFLVNJPLFWOKOJLQGLQ]J;LRRLMBSRKRMSPRERIRNJRMYNIJFJHDLPVQOWOIPFTEGLMOGKWYSNQR=VQRHL[SHOEOUSQOUFHUJHRLGGERGJAL7SNGIWSYAHFNV`iKgYHMETSRQYTKOLPLKMGMNNHLPOZXDHBOLA=MXRFH[UWPDKOWVTRVPQZLD[P^QLOKJJJIPTEQWHZF?TVHPLQMPdKJXTPVUGSKFLRM=MOMUKJPSRQNKLERXPWJ\W]QKMVTHMFQJMBPLKRQaOZ]VAKPR^L?MKCJXVGXNPSJGFET@LQSPJOTRTSB]CKAFCTWRFOKKZLUP@QH;SVHMZFRNLRYJUNNVSNCLF>HNISVPIJLDKQELKNcLDSI>[MHEHPOL[LNORR_CROWLIEQF_LNNPIQ][NL\RCJSJKTP^KA_WPO?=QPLJSEPM[[KQGFBGPdGQMOMP\QIYPTL@NHQMLMKBHNOUPNFIIRAQMDVFVIMTTOUYOJLLWQREQJI]XHLPQHOGAN\JEKPCMPJDSUObP[[KMLHMGE]GMQ^IIKQMINKBSWKFYPKWNNNPOHN]YPMFYCJJNGNSMTNNFPZDXKRMFILBPIQBOFIODQOMKWIRTORIKIMLN?JRSLIOHRJPND^VBVNQHWMHLESZMEWINMEPMFFIRGR]MQRQGPQEUHOH^IJNUHV@OVUEJMEXKNSFORNQNILIO]P[IWTPHKFEOLMGMXKHHNKTHINKZMHSIHDNPRLUPMAJG?FUQTJ`PTBKAGRPLRIZLJGMSNNP?HLPF^LQMJRUKJNMROROXKNOMURSFMSJUHOHGTGENRQQFOYNEJQPSKQJGMJMUTLUGHJPPTRHILMHQXRMGKYMNKXJZ\FDGUSBNFNMFFJMFZJSTKOBUNFFKIVKVLWEKOEJOLKGRDSEBHHKEISJR@KKHOIFIUTXWIOGTDKKQWCR_OFFFLTUHJKLGNTQBEMJ?QO@]NGL\JGBNN_MNJCJKIKCKFGBLDNMUZHKOCSLLXLITKO[YUARLJQVGLQQMGQQJLMRUIHQCIQETHSKLSFFBTPQFEORSGM*MZDAT\KJOM\KQJ@SSN9MOFQXXLWHOXJKLRVOKUS`ROBNHRA8NIJJYMJNWOQKG]HNHLIYWXLQUILCFOGLYUMHLOMYOOJLLTGQHRQMGDORITVULJLVIUHLNOGRNDGGQMiVKSPQLbWZDIFL@DY>HOQJQKVPE[TPDMOFKCQJNNEHQQWTGMOPPNOIROaNIJPCSKTTQDQPJLMLVTNMFMKNTSBNV_XKRGCSLMSNKNNDNUFQV]RVLNDIROSQSMOVSNRJHPTMQAMSMSFIKMQNUYVHIIUIWJRWOLPDJPRUHVQMTQKLTXXXNIRPLGJTUXLGIO=IUIUORLNHSNYTRKLEHWNSOSOUFM\SWGOUT]FISSYNPRUIPRQSRVUOMHSTINFHVMYIPGN]ZEIWMPTRJRGJOLLKFRHWBRK^CZJMMJILSYTNFJQLPQSP>VMYDVTMSNNIKKSTNDTPPUMESULMSEGWNO[PPPULMMUQNKNRNXVLCGTFHIWK^IPDOG]CPKPTTHNYCFKXRHSDGKRZD^ZLFN>XHTIROLLNUI_OYHZKMM]VJPRIFMRHE_PRYGYSPLBILIQABMUL>]HMLLEPM=HOSDKYSHG:MTPNGSQIPNUdWNJO\OLWYOMNOMQUOWLTMJOU>YMRPTOXNI\IAaPLYNBQ@THDLRSGIAPBRRF`IXKMQJTCYGLULQ?GN[SSUY`FETNQVKPTPRPJKOdHMKRTSU:?OKBRHNGU]T@IJHYSFNMRYMISQOEXTDTUPLMFR\EILMEJ>CLHTIM]F7TLHQITJNT=BJZBQFVKR]Q[QFWOGXKSTLLNPHUJOCFKEMXKPWHICQNTTEDOHKOLKSIQU@POHURGHHMbSZJFIWNMLNNQLUTVLMBCPIRMFPUUIPNH[K[KUA9ZLONYDMIXKIIGG;GOV>UANKPLFWBHWCTPLEISQZFTSH]E@HJ@IGVOHZMJWSRVTJK@KMGNNOF@[PGLE^IPRIXGFRMXNRPGUNOLRDAMTVKFMCZ8PAJGMYUK\R;NKJTNMOLPQK>JIGLRQ@SMLIKGKGP2JL`EQ[LMZOT@HJLMKBGJAOHREFLVJM_JUQ>JBMJOOMTITCYEUQOROFJKMGSVMNGNM[IMZIHJSKJLMMRGQDVDPETHKKDUCYI?QJXN_HTVNPMVTSGUUP\NJ>TSHDWR?BULU?NHMXLFEQY_>AJK^WWPLHJULMKISBYQHT`N_4MKOGWG`IARMOWTICVT[GUQREaGPIJF\MGKZ?OGGLOiSQFMSXSHOHCW^J[]LMUJWPOPHUGJ]NRNF^JLXMPNF_8PDTSHA@QITL^XIeRO?JGOH_O_KDIDME@\CRNH>TJNFBLM\W]XJRK@VQGG^GI[RVR>P>@6RICB?HRGIOKZGDH_@TUMNM_\T\ISeEVEKOFGYWKAVL5E=C?KSMPKBIDLQBEGGEQVLRGFFB=JDO7LOJKUHE8FNDGUZ]QVPEV?FBDO?J[COGLVH]M\N@>NUTOFMRAOBHAYMKPLARbFXLO^KOGPCcYMJLNYKM`WgEPTNIOTNMRPJYFQNNGMH8PHNIOGLQPNPPOWHGNHTJPJNHLGTCVVOHJUHK@EJOSnFNDQR[J==QFEWFKEUNWdRKRLKlWLGXQPMKVFXFYYLICXW;\HQCQNPLOIK`MYNAZLJJO?OKLTMECZDIBRMXONBZLRK^[ICRLUDOFRFGEHIEZGULQOSEYTTHaNLVAQaLROSPSGRPACTMGQ?SK=CFLDJMHIRIOMYXOLKFIKTNHEQVRVEFDAH[JRWOMEYOLFOBYSMQNOKZCFGIWLMUJD>INVGKWNNNLLMDXOS[CHGRRKAAYKOGH[SX[PPLFDRWQTEWO]MIRLDMKMMOKGAVCJRT]OL3IRINGKQVOYJPRHPXS=JPQIONEVKXKHQMZNVAANXAWS^PLHUKWLMC`LMEJST:RJNFHOSKQSRLBRNTPUQMFRUUSRXKLNNOHVVHZKC[WQLFQLNMYPGJMS[VNQVYWKVN_TNVHcR[RJPPNPPROQWPRIOLQLPYLQRXKOUJVEOFMW[QTTNXHKPLRPBJMGLOISPGDIQWDGPUTUOHJISHNNLROLNSQNKPQNSVGAJMFNQKZGIGGHPLNOIHPJKbRN^ICHKJBPNEOLOD[]OHHZFNLISOG[ONAWTSPK@XPTTWMHTRWPWUEGOKJPNOBMWPJTWTFMUXIOSCVdIRLN]ZRJQDLSKfJMHPKIZ_\JNLK[L[XPLJXIGXJSR:QGNTLIGRGO[IHKPHQSOOLZGDPHUEHUJDQNINUAXORFKHHNIEF[YPMRPRMVPLTILMJKPHSMJPYUPFIJRRDZ^;RKGOSNPISULQPOIHGLIOKRB_JKUTUBQUNUH]ePTTHFNZbORPZJLOJJPMSIIOL@QSUUNSMVKIXWRMLUUPIYUTKaSEPYUPKE_UNTKQOPPYNSILTOVjNTFTRTKWMSMQWNQZJKIVWYSUFMQ?HERMErMSKRLRTNIGLLETZZFLMQPJJEHMQZVGOFFZDNG\NFHOIXMXNWNWSMGF[FOOLGZFF\LJNJHJAEIRLOUUHBHJDVO@WLTIH>RIF^YFQOTZJMUFPIRPLZhcFIICJEF`WMNWLFMJNNHSPTZTIPPLcOINSL@TFIQAJT=SWEIDFZB_DOCDMRXLLWFJIOQNPMGIC?MNJWWNbDBIJ\LPKGOQLSKLHJL>SSB7TDPRK[@QEBXNGMJKUAMLHT=NEKF\WLLGWTOKMFNUROOQ7RMBLH\UUJJVD@GNHFCJ@LiMS]SQGCCHXWS@WMHGUISOLV87H?K^YB=[UKKF?ZMWCTJ^WMVFRL\WGZ:XLYLTCYJYL@EXBM\WHVLUV[UM>ZLZJNUZJMAhHSTQQ?ENCJPPITUOH:HTHO[GBJUIRWQMRV;DIAHHCNK^IEFR=P>VPQIL_O8RTC=LNNHKPZKCVERSOHUPYHcTKGYWS]KLFQ@NNYYJSNGPPFLQXIBTOTJRRU\`GGIRMNRDFLQMYHZTTVPXNcRKZKQIWFNHSNfSW`HPP=:=UPTQGEGFSOH_GKYVL;HWLWTJHUGRGCQUPVL=PMTLMG]BVFTQIGQAGRPGUKIQLFAXPQCTNXURHMINOKMTVVRLIL[WNJSIQTRHETIYURVpCPRVNK@HSNLQ[JIMWAWVBOMLUEOJSQILGBGF=MNPDKU^O^LILHJFOLNCQCNNPT=KXFUN\MHTPAHLSSPA:QFCWTODX=HN[B^LIDLUI]LIGHB]BKFLUNQVT@CZM@OOVLLCNKJ\`OFDFEEHSSNONGCMI<^MRXLRUYQ@FXLTL[QUGc@RISKRELP[M^IMPIQVSAMOOBWQ_]IXYPSHRAPGMSSGBWIIJJPOWNHKLLQK>[JVSNT?WQDTRKKPGPZDHOCHOMRQQGKI[UGIZTVBKMFNQKYBGLISIWNFJMOLCMHSN_RSXZKLRKCrF^H\OPSFLRCTSMDREDSGBJOKLWNEZSS^MNLOOSTQTLGUGQTRJMJ^RMFIFHGNZUOZIFGGS=LBRSZJPLT\XONQUFOJVGIDFJJFYY>LOPLSPMGEMY]UHI@XGXPG@DJ[AOHaMPCWAJPMQVIDTNLSJPYJLOEISJMMRQ>FLVHOTKRSDGSHRXPWLKM_UHAQB]AJFTFbGJDSKHTJIESEJCGKNQIBUDQSKELPZKZcGELIGDC@HEFKRYI=SOEVTVMARJNHQ^R^SOSNNGWFL?LWUWM?SMGULRO@_QPFeFLI;RPWQH7VJQIOR7IbODVPGLUO]LSKEGLUPMJ[IKLPIKAJNAEHPPQGHAKPMPOHVPQI?MRGFS>CZLHPBPGJCRILKYSMRTNJdJQHULOJPABTQHCSUPd`MTMMOKNQIJXNBJRMNI@B?TAJHREI;YTIKQJEQLTCPBMU@9THQC?IFHFNKQL^UJAPPDOTEP>SLMVIFGON[HHIMTRQ[HOF[B?U\SQVISBAFDPMGILOXMPBOOKJNEZEQ@cESDX@PRJJJOQMQR?AGIQROSZD@OQGXQLCQLTTONJWJLHJCGPSJLPYZDRWELFOTLKHHINHTJT[W\JLAKKPHW\IKMID@REGRJKNgUIJMHLKR\MBMQTSVIRNMdJUHWdQQMEQTFLLNZSZDMRLSSMPOKS^FQMWM?AGLFUNI_QPZMBJOJ^MKOTVTXITQBLNEBXSCKXMJSSIMWGBHOFPSRVGKFPONLQUODHeLWH[QSUIlBPIIJOPNSKg@cUL]LVJLV[MUZG=QR=TOHUSMPWS@TS@KUU?ILZLNEKNMSNBPUNXOJPRMFQOQN@SWEPQVCGRSFLWJLGFKIS[MBBIJWNHC\PIUINW>LMTYRQFKWIOGLKYRNQPFJFOJT_MGPDZKLQF\LSDRKUZDS@9RPVWLJYVLCHO=PVN[UHYMOLPUS@BML>NOTHSUKJPMOJTSXMRXQBKjSVXNZOJ`DDKTS^OKNLPVOZNKPWVPWKHILJPTSONPIF]ESCTJQGSQ_LTGHKPRQOROWNQUUNLOJSQUVQQMNEJLLSIGAJLPZLNWZSHH@aEFDQLCEE>FEMMOOGROPQLRKLVIXTA[OFBLTOSLHFLOUHAURMNPNaNTMJRAITKDLDXDOJL[FTSSIPKPNSKOIWYOSS[IJHTZNUmLQO`DGRONK@OFTXIJGTPIVKTPD]HQ]BDTGEYUNWMXXPJM@QPNUWCKROSKPMNOQVPNSRV@VMCFSPLQHMJFK@JEIJSR=QNRZII_MJPLWSJCXLBHOWSJOJMPCLPLNIQWKFTX[TY\IQRKBKS]K?NUXNHQVUHSROLRHFJYMKRMZ@ZSE\UGKPYMNLJJV?LX@LJRPPO?QVOIIFMXHSOJKVIIRQCPICMOTUJ@ILEHOHSO>PUUMXOMRkQSGMJRKRM?WELUSNHHBNLZAPJJENXPVJLUHIDMJGKWLMHPIOQXUBTWUFJTKIP^THTNGGKREOEKPUFBTSJOVKJCEIQRHHAcCV?MMGVIMDHNTDPK]SPPTLDVHM^LQWTVLUKJLMLWaXP@OLRJQNGMCLTQUIRNZJJWPOQMGOIJCFOTYKOQLSORJUS=ZHMHQMOQ?ROMG^CJHG`XPF^MTMHESVLOVOKHALSQT\MUTJKOLM@UEKSNEGVEGKONKE[LMGXN^LXPKMUO\ITQSTHKGJOLOL^TGSDOFSNKSOLTQNIUP^TMLMLUVLQMJPRMBSULLM:PQRHLPLMKUKNIFELLXNHPXREGKSPXaKRTHMR^N>VQHJSNIWGOPWGNLFDIGQR^FIKLT\]YNVTIDFHFOIPKFJVPRYUEKWQPEK__DSPMLKPL@GRDZQYIROKMOMFWENPDGMHTOEVMHW@ZRYLIMKMCKLSOPHDTPCEJ?PDAZEQHBLLJQZPRAEKKEUYUVGSOPPWNJDHMOGTYKWPT?HKPOMXRJZRTNNKFUEE;H^NSPCJVEWRTG[@TINIKRWVSMMDONNRNQGGCMOROOQSRSORQPRNGLPDENRCWU_TcTTFMJGUPOB?SJETSRDLW[HSHS[LQTFTGSRQSRQIKRSLXRKLJGPK?KNNLBUGVNFGIFNJW\FPKLDLEELZSTHOMFORCRTHXJJHQWIRPPbIKHCNHSUIHdMORFKMMDOWXKHI`FGAHHRWFYH@LJHGE[fAVPANMQH@`FJRIKKQH>QUOPLNVRZMMFLBFT@RMQKLPCJTNU?\]LIIKJM@ERJHVV]KFNHBFLP>TJ;>SLUNIcLNFVTULOEQO]NULUVGK_DSNKQEKFLJPTRKEDTLZRK@PDDNOLUR[KPPROLUXQWNHN\HNBQPRTHUZPZIIJFORJPFNXNOMANRQSQ^FVSRJTOLILHGRNL`SZQITHYNW]FMSEUTSFNDFRNGVLABFTOI8fMYM?IACJKIOOSEOALIQPJUKMSIQKTWNCJXHQZLHVWMNFFKJQLAP\GSTK]TIGRKCBYQOCJQWBNHWLaMUUMHQScFQZJVRLISNJWLHOMMNQJBHX[X=MSOXO^JKQWbK[JOKNNU8XOKZNKRWDV@YSNQPV_DOVJJYUMgG]WKBNPLFXKTRSQLGMNWO:LSKEQIH]`GHMNRRP@HPSMTEM[Z?]PG^MNKPKLQGQHMIRKOSALIJLUQPIVQHLJLPLXP>KVlQNDHSNKAOOQLWQVJDJPH`\BBPF=GH`O=KQJUBIjIJZC>CJC?FVMDDIFOJJFURBGJ[JGbHMD`WLMAHKP\IJKHIOLKLOVLHcJ@KZEUM^FJ:HIS]HYDSI?TVXFOGBUORM[TTCINJUVNFBMQOFLUTaNLYNXO[NQWDOSDGTMTIITXXS]MLI_POLVBGSHNQPCXZ:QZIH\JHQOJJGWMVMPLOURGTSSVKFLNGX`OXLIjIQ]QSQUKWPQIHMRQ=ORZ`KXZOVKJHTKSRTHPGKFSNMJYaRD]]bMHYNCP]PWOMWNSIYOZAHLIcDAMNLGN[VBKGbbQRZWRPPHK@RRTWQRLDLQM@QGOFM]JINREUGGjMBFU]VGQeQJcBOYRJ\RPNVPL`RFRTSIQBBYLNJM]ITSKWTOXNXYTPSVVHV^MZSCLS\RXG^OHOZO@LQJPMT]@ULICBPLITUNVaNHVOHOR\ERU\XNLHUPKVFLN`QTNPFIHNVLBMG>IaGPWGPM@]KWQUFOLW`1?M@OO@UFGHU4LmOKRTRUE[JNZPTQ7AWXa;LcOFCRPXLDELGCODOGGjNHOQMJ=RlOSUVOKESgO^VCPIL^DII?dSQNXELKXYNDEDQMT<@NOJWEN@ZD^SJVMMfQISLSLQWJUUVQMNKH_QQQGF\RaONHGGCYYLRJQJRTV[PPWJPMNQLOIIeL@G?FHKGSVQVHNULZCNB\XXKQHOUBGONCURKSUA]PNOD@RNKYCENPRQBVNPU_JNSMUCN]KKBNQ>PJMSMELVCHSV`IRELMKR;XMVWROQJUFVJRSOJ^NWGQXJXM@PEMNFRMHXXSQSMVDQIADYECM[[PRGPKD@GNELEKUJWV^EKIC=ZVKTfOE=TGLDPIJDSJ@TERBKHRYKPMOOIQQJMBTNPOSRVGKN;EVOJXNKL]NMPQRKPKGPRQNULMGIPJNQMB>XJRQTMSIUQLGVJLJ\AL_LVGNTFFQWHSFEKDFEQ\NRUTRNLGMLTRIZGSS@JINLLcEKLBSNOAMKJPLN^HZNHUML]DNAADAOYKKGJTPMFRIJMRZJPGLJFSDXLKJOIUBKQM\NUKXINQIYWEZMUVNQINIG?KSVQFQF^RSERIIGH\NRIQHbBROPK`KTJBTXMTIQMJLZK?IRMMJLLLFWPZO[MXMUI@KVKHVTVBPKGGHKAJQRLPKJM?FMOPLPTHMLICHNZKRCU\HD`ePXPVTNJNLGSdN\OFWGRGZFJLJNBDULNMOTJOGNGPFNQJAEVH=MFMPLDOI@NQd`VOQOSHSNOSGERNWFTQKMERXQIGXJFJMUWRS[KKRZDO=QTLUPW>AULTQMPMKYMLWQOLTPG?KONQFMHRSPMMKPHPHPVCOUKJILK=MLWRI@MNFJWWPQNSSUX@DVbPPNDHMFESBFLRJGLSJGZQOPNOKERJRHM@SPORGKHJPFQGPNNSOKKNCIMOPDJMKRIJNPH@KHLLJLIISIEFMHJMVUYFINEKAJOUCFLOLJELLKDPMDRSJHMKG>PVVHXNKKANQRNMQJROHMNW>TXUDPXNTLPQFNBWQWKHLYL[jHPGTVBGLPNOUXIJOPPISOMHNWIOJMMNPMOKIMK=KWLEJZCXTIRVWNHXCOK`]RZ[JT_LMHVLSIUAOPKILCRSEKDGGNVPCLYHRZJGCF]UJPQFPDHWSXPUFQXAOJD`PFGYFJCLQMBXCJEWTDKRZWEORGFSOIOTJSF>KHTKFBKPI^NFSERgOOOKHSYSJKHVYJPHJKXROORSO[ZGLIZHCIA]C<`RHLGOCZDJXNPORIKPI[NHJWPQQKHMMYM_UKRHNM=KRSFPLOULJTKFQDNPOEJT`JZQVRNXPVPHHQMIBNKJRKVM=NPJMCGSGePILHMYGIPDULLYR]LOLEY^JMDKTMRRLIMMaG>IPPDQ`CPPJIPSCUVRLTPQEJDOXY]XIYFJNJIDIRKTLH[_MQUONQcN^TaLINKOJQOCGLM:THUG=GEUT=IUGRJF[CN=W@MQ=NXIHOEKLMZKSLZOMTXGWLJF@PNPANLPGKMM@:VHHLNAAJYIM[bORNKLMHHUMRRPISPX==CO:CLMGROORE[X?PXWIQKCLSHYDRG^NL?UFIMCKNUDQTMVHOH:HNDVS5RP@MKSCWS@FX8eH@IPGAIHPO[9NRXSHMHRXVMQUSRXR@PIUVELNcPOQZPSF[SHFLSCAHUV?MNDVCHHHbNFLOJHSAK?KUNVNGXXUISLLQDIQ]CcIRTTVTXHKOYZPNIbGQDIJLV[OGFRKMITPHUCTUQGZKWLKJLGSPGEIFGDNQ9MLJKQXILRELI[CMPC`IJRKRHSUFQOOOTQSGANQACIKNJTMLTKLLLHVSS@KCLUUHUPTJM_MNKODRUPPKQAORRRUNJNPKUHQOMQJINXRQRHTT@QTNNOYWQ\SQTAXSANOJGTN\WYTQKSHRQMPUWNXICMMLIHHLV?VSTONKJOKQMKM?XQIKAKSWIKUVYRQPRFJQZJGLQAYINRT[RFLROIHMQRHTSPOOMRKUTQSQUJLGCJNQJJOTQLMFTJILXEHJSMGWEMMMLNZRKLE_VSKOEKHO?MDGOD`MVFOOKLFQJJNRLNUNLXEUQGVHN>PULSX@AE@IFEPdNYHWSYT[]Jd_EMGUURWMGHRJRHUiJP^]NQRFMUKRYOIP]LCULM\aP[LGEaVLDTHHDG?IDDOUJLEh[^PQWQUXKFQUEL^MPKFKIQIPK@TIKOFKOSRVOSVZZbJBTLMXLTJEQI]ELK[SV]X=LLKWULFDG@MKMNIJNMINBVZLK^?HNMV[PKfUVRWRL^QHHRUGE;KHLSCIRJEOBPLCPS\MTJH=GU@KSVUWNJODKR_ZUIMZQEGTGFJKN^DRSMLVMN`TYLPUUEGHUQIGQ@N]NNPD[KGNSHGa[HIHWYFERIMXbLGHK]WQRZbEIPWKBKWOWBHTCRBEM^W?JRERFMJdSBXOHIA?^B^OYZcCVCP]UTAYG^UEJJMWJLPPMOVDIDOZOJGOWJOHKKBRR]MTH]HNPNJKLKTJFPMANWNCSRPS^RRMHDINLYLSXVUTF@SQHDKXMNPHTN?RNDBJMKJ]O?H]EXFQMPMNJHR`RN\S[NKVEALQJDXUNJSVYPcPDNALLUKDD`POLLJDOUCDTGPCFSQJLMHJRSWILKPIPPPHIRPALFLP[POKXNQOXMKEFTEDORZQNGUU\GNXGMLEPUPTEONLNMCHNUDMJCKEELFQR\QLCJNOMI\DSUATPHDMDCMHQ?LWQHRCDI]JMP]Q9PHVA^I@?RPKWDVKJBPPWFRYLK`DVOAWESLQNNLtMHWLKFHVFEQUQOQDL?NO7Y>MQJA@`LLDLKHFHJIKOT\MLJTRV\PWNJE?VE^JAKOBTXPFPVcKZMOJMR[EHEETMWBLPOOKCQTKVMRIAJWWTKH^AKLHEVMELRERODUTMUQOMKU`>IOKTK>OGFGMMILWTKKMVGUTOQLCL?PPXQCOTYDDOJGMDMEFJDWRERLVGVHXPYTDOOGLUDUTN=SOEDJXETYMEJOONQTGXOEQONUKKFXJLVAPGEAMN?\FHLLPQIINJHFBKLXHLWITOCOK[P[UV?GWPKNGHHIINN@JVGCD[NPLPLO]I[SHUGPLQGJKXHY\SaKFVJL_RLXRGYULKHOUNVDLL[CRGPDZSKU@FAKMLLTGGQRMPL^INKOB^ISSLOXLXPREIOLXEKCNIYOMKTLC/MBLKHJVHPQWHFJRYNQLCLRQMKGZMNX?MRUQOK]VSSKESGRKJDCHQCVSPKPPPLHT@IBOVOLWUKOSHVUOH]K9Q`T]JQHPFNFRMBPKMGJEPIa?JXLEMLI=eLJJN9\LG@HEOLUOMQMOTIBLJFNWIJ`OLVKIPKGL]@SNTRGEP>NAAUDKF?IPCCBQNTFCI^JQTNEHIJYXSHEXDNJYRQINBJJFORKGJECFSJOQBFREDLOLLYGWVPCGFQ[UWUPOOMWLVP=TKKXZVQXECIUKFMHHKKQLE]JAJaRMLBJOKIPSVQFNNYLOL>DC@H_MKFFOMPOGTN^BGNKJRH^QDKJIDRT?DXEJO@OGTOLIIPLPMDKMORHNM]UMMCJHOKGKTUKVIAUCHPMOVVRTURVDEUWN]OFWEJRKHQ\PUSIBLP[FLIWJRN>EJWLRNYLSYGLKKRTFMBUHGPTIMJIDJUMJKPFKF\DRYa]JHICNQ]LSQAENEMHL`ZLMFPGLWBKKKQOHMKUBUFHIVAQCMKWXNEPKCSOTPTDOPJQYHLI@ANBLQ^FahOOSLOLCPJYMWRLKLNFKUMKMUTJJPRQWSHHOCWVNAUCSIQMRQKFHPJOLMXMGLRLNV?S[\NLSVNLPSFGTOTMTIXQNOL@CRGBDFNGVRJKYSKOSO=DGMKRD`BBHMVUWEHN^RKKPJL\NKQrSGSUPWKZKHHTOLBERIMONLJOYZITPNUHWP?VIOQBSCFUILB\XQOJBKREULQ`\J^SPRSIMBNRIEIGVYM]QLQWEEEXPNROTLSGJOJIH:MYOUL`YKOGPKGLEHRKSVNJQOVWHUM^KPHJJDQSIFVIRNPJOPPUHMHSTHBS^\^UMZULIPWIBPVQQMYKNNQKLQRaUFUBGHMYIJRLWRYRGMKKXMMHJYT:PRSGYWOOSTVPPGHQ^WHZNKJHIWGOODJNEIHUOBTNNW`MVCQVQVHSXRMAJUNJM]GPMCQOISQVLFFPRRKEUTASIQVWKPJNIRYOFJJQQcKCLSZ[MNJVZOJZIP@NSNITKWSKLSTJHIR>JHJK_`WPPTQZKRHOUPWVGOKKNIPWMJRLPNMEHCMN\MFQOWPNRWNNBSIFGSJNN\JJEFITQI\JK[IOUHSMOWPSRLNPEGKKMIAOBRDGOGT?BEKNTOJLEVEB?DMSLUeGN>HPOGO>DYFHJIHFXGIFMLQLNRAGS[BLCCRMEEVM]ZMLDPRPYYJMFBLHWFVRILUIGPSCPKJ]IIYBKNCCEKX]KMIFRNLFQYNQIDOBFYQFPPQOFIIQG@LRTUODO[OJJMLJQCOYWODMRLVPLZODNZRMSG\QITXLQWRPMOMB?KQYTRJFWKNIL@9EJOKOMHM[FBVEN\GRWPFFRSNPNHN[FJFFOVFLKJMMIQOTQTY@CZOGTIEP^VREPPEP@KMSQULQPXJODPWXF]THRBLRPIQGNQBIIGLG?DOTLOOMHYINWQTYIN[HRKRGKLQQHU_OAMEZI[HXNSO\KEBKOJDIMEQGTWMH^RTDG=UPD>GNKTGPOWPGRKKPOU\R^OPKWBMSGMSTPCKFQOENJZd?M[IEMFUKCJJLOQNSJ_PXJJHKHPBWLKJR?\HEGSOMBUFO^=KNR^NK5FGQGcLK>XDmNRPQPDdOTE]PIETFZGJ?C4JNM;OA@L_YIKP\[GCBKNDeGTHSVRNMN^RRJLRMJSCOWK;XKOOSMPM[QNNI\VzHaX^ROLEFrTiINAJH?PGNUHM??JGRQFQFWKK^PJSC^NI^@NPjFQUJeRDIDUSSRMHNLSSVQTONOLQKMOg`PSJMVJGPQ=MCPiJKR[WJJBHMOSReA_MGAGHKRIXLfV7QNCUWLgDOIJBVJBQXNNZUROSFfXRMJFOWDJHNJOPTYNGHVYS`OAPRCVIOCMCPOO_OMMST`J[NSSOMJQBYVUfPVVGPKVM?PZKGJ@QHR9VJTTVLVQUGIIYMEWE]OCQTW>QOGP>TGHXPP\NUWXKMQRC?KBPRAVDQJTOcRFWKPTGEODZTDSI?MDPRPYIMCXWLGlNITQP=UPEUJNNJNSQX?ISXP\HHPWGWHNFYGMMQKXHFHCANSjPENPPOFMObQHOEPVNNK^ORKQIHITJWNL[QNWMLUPSITSYGNNMGZLaF]YEBCFHCXNUCTPREGDL\UDQDADHPTSRMBSIMLUJPNOEM\DGJOMTUQHjCLYQVCJK^KFEXFG>MMIZPGW@LFFIBOKPKLOGDEOQUJJKECENGKEQUBZN[MCHAOKLRR@OJSIEMCFPVNNAKSHULFBT=NFFNPSUOJVSWLJJIOCJGDP[MENDHKG^JOGON`WKTQSQ>RJNOKJ>IBLGNJFOGQNYMFIJWN=LPMMKAORLLTIHCSOOIDUSQOXFNTIJTLFcPHRBOMWIVCUKRHOHLBQMeMMHH]MNFF@[XOHQQGJJCLIWFYUGQEaWLJOHATILHIGKOGCPBcQ]PVUIIUdNHWRUVEWLUFLLQQCKSAD2OHF;IROQWXESMCSDSRMUKSFSAVLJVHFNXRQLD^N@bGL=nCAYOURNSBI?\LEYXLVRLUQEPQCFALALUFEMDDB[NZ`DHNY]PS[ATWC;IPFPIMQUZJMQSJKHNMMaQMNTTSOEPWKNLOPZQWMNHQ[RFN]INT[RRI[SIHSOBUE9ONS>SPBJRKPIPETQQLHJR^>IMQONLMSUMLRJ@mDJUEGRPLTVGDGRGQPXMSKJLWNDDFKAVVLOXDFLL^QxJPKCRRGPMMOLJIEJJHQPPVQDOMPNNGOMPFA\@G>DMHMNMJN>RKVLPUQXOGXbHFaNRBGLJKTEGMKBUZOMKEEMfNEPEUIRJJRQIFPLWRLNCKC6MAKTMKR?QJFJPLFRSL>MEFGKLLQKEGSXNSFRZQUIEOMUdIFGRWKIQWPKVQZMTNe@ITK[LAZKVNBPWQMHUZPLOZTXUT^UQNYU5UTHIOJOKPROIUTCVKDWZM>QWMmO\CDSOSPeFSL>JXONICHaZLDFRQ[UGOQOdZVJMN@YOPQGSULFXFX\PB>FV=QKBDRJU`OMSKJKHUOVZLaN]PSKKLI^bO\MCgWTMKOOBN`EXLI^fP=SS@GHT_eOJMDSHZ=EPWIPQTGe[H[PGK]TiOTG\KeNRHVESNKMRTI^[WKU][XJUOJNKWJ[KIAKXWPP`JKOXONMYTG`RRJNPJLNSIOKQGQRARJQSZIKNPORUNIJNGTHOEPE\RHOMMIPKYMOMLJRNJSTRGQSJPUBMVPDRZETOIMYPSQINKKPM?TIMKTPFNALOJVRLACNGPSEMDLDNSN@KILPKaKKVHU=P:QNLQPHAHMNEJPQRINOOHNSHMILLLGOMKTQSPKIcNGO=VVFJRKPUMIQHIUVGIOUMKQPLXHVNQZEALNXQGLbCJNXVLSAHFPXRSOKCOGNKT[L=OG>KIEGNTSFIMPTMSYRJPBJVLD@SZZMJULQMSTVDNMNQEUGZLNRPDEIQBQLXOUWMFNRZVEX`IMKOSI@QQ\YWQ]JPMKTQ@GMMRLGJK;INQLGOREKWWONVGT[CZCQRUFSXMSLFPNPOJRUSKSSJQSONMGQMVILDWS[XRXKJUTHZSUFELHCYGONNHZXURPHQHTMY^U5UKMVVRPTPPPOWSMYMZVKRL]PJTVQOEIRMKKR^KSOYOGM^SFTNJBPMVREKKSHVWKOPIVWNJWOUUUNN\YG<^QMOSJLKO_NLSTSJLWXVPNU]UOQXOSQX\QYEKGYTBPJRLXLZPWGSZGMTCWSVWIFR]NSJa^MXSUbd^ScP]WQQGRUDWRM^KOUT@S[NX\WPQJOWVKKTUURV[Y[OMU[JVX]NWTZOTVPLVXWRVi@WUYQTUSKQUKTLLSLVJH\QLLWNPFRQDSJOKWTNWRQKNGLP]DU_c[GLCVKEXMCPDMPUUM\ICCPRRPVJQMPGQOCDMXUQONKQWaRZHGKQKF[QDYPJNNNWOT@KTYNPKEJG`KKBQMEZDSRLPVAROBGMcKCPMSPRIObILGHNGDKTLDNDGNJLQOOCVNOMCNMHESJ]KJSBENVOSKNQQGLJOPUUTDRAVKOSMHUFLGQTJRRSTAEM^>CSQMQPOMLKHKTRUQDZWRRRMRKQDHPHWNJPLQHSRGK_YKKNMKCRJTHOIIK`\XSQLTLFCLLWSRMC?JGRKSMOLKOKPCRUWUPFOGTMQBCJLL^NMGKFRXMV\USIIMLTIDMUISXSDMPPMbHSRWTGJ_EAEFPQTPPNTN\KP@WLQPI[QLKRG^BIKQHJCGVWXHKCJVRDUCUQWILXISM?FMGUOWJM[[?NSJ\OEJMR[OILWO@UOGXG_QQAU[IQZUTOFLDJSNVDJAOGEGQTHTPBKRRZbNWOZN_QENWJO>MPADLIJOSHINMKQFIPHINDTMKIY?SXHLMMGNEHKCOZK\aLWMBANFJ@M^7J?QQB`QGIKII?K]ORLWIIFYOLH;KVKYJSJGQWMPbIF>LSND[@F>OPALKE>QLDKC?VCVON@BLO=N>>Q=XMNFHHRONQPOWOGDXIUJUIBERRCO@YNCRGQNMFMPKHMUGIIRNEGE\XGTQAJRJZNWOJPOMLJaGOHM[OJLTZZOKJUbSRONOMVPQ@QTOONQMBTHNEWNWFKOQFD@FMFQBZHKKJXPNGDXWIHPOHGWXQWQJJSBTERLNJ@TXORKCJQENLXMTKJFQNMLVIMKLWOCTKDHPHPSSFK\OOeR_KKHN^KWWQKLOAR`XZNMYRQBLJTNOHP?MUICMTSUZIMKVPUNAAVOFRQMLFXQYOOFNHMVUI\ORN]MORJMVDUGFARPXMSGCIJHMaPRNV]XOUMOCVEMDLZVMWTUNiMFLRJJNN]IMGFXTGJQPOOmCERL]ONUXPMUNLTJE@OD\>MHPUFHXCDOTI?GPQMFIHJA?GFVREHTGZQQTMTMHUMGOFCHRQCOGF\^GC_KMGDDCUGDMKEK]LL_WKcNAHEBTKNI_BW@HLFAbKAH@KPCRGAKDV`KQNOQIXOHgKUPXMM5LHMMGEEKPORNHDTRMEJ][IQXLQHNGI?QKIZQOISZSL\HHHKVRFcVASCMSMMNYQAWWTNKB@FJASVPF`CXWJLmGSCLIMIL;MT>IDDLRUBL`WEKTQKHQOPYYDYIDJDSUUFQMfMFWMD=H;GP;JLPICRHHTRYR^TGMRR@^MJHMRLNNNMOJBUMLKXQTKP\NCON`SLCRRFUMCKGGC?IRIGEDAKEOEVI^O[LJLIXTMIQDPUSUFO_KEGMaWRPAGNRFKO[YHTReCVJKQUYWMVOMWOKJQRERKTFXTZR=RX@CK>IYJFFMJLJ`L@JLIMNQ;LGPVVLOMVKXKJKPNI\ScTSSVTRbPORPIEINLRWOGDVYEVDOLYSZQVCJRJNFIFXSE=LHP?RQcFGUO\IJLNI`WO?MTQ?QSQJWN`POMGJZTDDLFTOWNPLTCK@CE[P[J>caFZRQRQUXFRS>KFSHTDPHAFQKAHEMTFKUPUP@FUQIMCPLHWMNNCVRNOMWPOC[LNQDOLZHPQ`QHMDHVSHLGiLPMPMOTWRSGAHLPVPHGSUWOQJT@OK>YCYFJYJBU[NPILMQLMGHTESSKBFJPVFSQQIBEPRB]TDSGOKRWBLVDNQVKJEFHTPTCO]CHKZGSWCNLUSEJNLSMMHP@KKKQMJQCN?LRLQMFVKMJU?JDKFQRGMLDWKKbIQRYSRRCHVJJWFTKLM=SUMHVP_SJRLNLFNFVTTFJPVEBUW_eSERDAFQKSQVXJINSL>ETPIU@KEMNAOTDKTKYQQDEFIJIJNQEBHMNUWHZJMRNN[EFAG=TJBYKBXNCJU\GKIHNTMQMQPWHAMZCLHTOLWcJGZQVFDQINLLFHMETAJPLA:DMMcFVLQHTQJZLIUL:=HWMELLKC^JVGQGNAQDPK@QVHPNKMIVOHYSKQNGVPJQXAK]LRN\GYKQ?EVWSMVQHTJLTHFIKUZMFTTJIJXQUJPCCTLMWEIHTMPKVNOaYPVFONSOSPLCETWTTRaLCR^MMLGPANJLRWQ;QQORTEF_TJFLTWPH[G_FRPGRIZGFEQMMGOSKJRPCMNG8OOKVJNROAUEKBOPKGPU=HPMMRH\NJ\LRSFaM>OPXW\KVXJVJIWOMRVFYE@NDQKM?MPLKJG_ONKHAIODSX\UQOTLPRNECDNEEICHIRLSe]DQANOUQIFMXSNKXSJQKRHLYQPJTQKORQTUNWIIIORNLRO>LMRKTDW[gMKJGMOLSF[QLF[EBKLJLUKQPUIMDMIKMFSJNKISWKODMTMMPJAM8APOKJJ;PA^XRKNHJYLIU`@IHGIEY@[F[JWSDG[GD@AhXOGLTMDDMX`UQbTFIVLFDGVU>CENRPQZTHRWHQRNNLOWFPNCUSKHUNBSMGFNRPLWBEQHLQJQQ>V^OAOBDAPRKFWH?YNISIOJNSKYTHNWPJMA@?[HIJUFPBQ@YDWOLB]NOGFEXGDBOLNVUKBNRATAUEBKNDPOGHQGEQOUQQGKQKOAMOLRJHHVRKVTGJKHCIARLbOJGULPNI@]HIJMTVMUINXEPFLOPQPUNMSGPHOIKOMIKTHMXOHVYJLUBSWMLGMNNA[TLXKVOVQL\KRGNKIQWOHQMUMHJKPSHNRPFaM@T_OJPG>GOJTKNTZOGMINAQNK\RTLQOQFHNLGRPQOPMBWMRQQOOKO]TTROJGRMPLRJFCB_OPMIJMLLOFTTK=RTNSNSBTNFH[MNIIINPEOIUIHPKNMILUUGFLFNJSHFNPRPJHTMRGQSNJQ?RLOBOLLNKPN=MRMPUIGORRNNDJTOITGRI]IWNLPSDMNLPNSFOQSJGU\IRMNNPUBJIKPMKP\JVPNDKUJP_PWIPUEMFGO^TPEJ^DMVQcTHIJJPTMIOURTFFOW=KGCXOQDONO=AN5OHRDAOQXUZA?HKJTEWDQiHNTDCJQ[BCWDLT;REM>Q\SVLRMDQIIDKMNN2QYIKQMIKERhSCHNL\RT:R[KSJBK@MGB[aXHIDJHWILHFTJRAMbCKMSIJGLCIGKOMZUCR=P@MYLD@DB@QPQ_SHWUMShVVEFSGGi?KEMTNKI?KY[;ISSWFWKIGTHHPYVIAQICGM^SLPQTD@PAPJOHQHB]aPTGOUNOPNRBQOL?MKWISUGZNKPKjLKHSSGLR^ZXPG>FZ?CCZCLDNHPVJQNPI@L>QJRI[HOELQLNRKJSI7BKn[aQTPHL@LIUGPFNSGNa=LBG^=K6LGVZLFREOlKPOLNQ9JLVRPGQ?JZERMJ_RKKOMbGRCGKP=I;FQX=TOFRZMQQMTFHSOFRRIADAHV=@QLXOR^SNLMPUcVMDREDLPKFJLTNIQTNUP>OOOJL\JGBJMMJDMDMPTFMPNOE_\FUMSIJEfQPPL@DYWL[C8VD@QCLOMPGNJXHKXOGUSPNQVIDRVQEC]KWUDPSTHTK_H?SHSUVE\CTKQMUZNHHOJL?QLPJPM@QMUV^QUDHN[UPAZKYEBOZQMZE]LR>QLLCRCKYL^KOCMGNVNTLWHLRS`FSWROKPKRWVTflT?HAIBCHMYRVTHLQPLMPNOF_M_NIH^[LSDYNE9SNUM[WIJRHVY:KABNSPPFXBKLDXLKRUcSGUAHCO\IDmSALQEVBWRTFFDcAfNQKV?UNHHIWVTOGWRLEQLIMKLOKDRF\KDD[]iTDRLaDYUQMLWOFUGPaA`NB:RTIEFGPNUPJKITLELLMLGLONLSPPPOGGYVW`PL[YQNP^YHQJJEZLCEUJHFJEMIPKMLSVMNTLLU9TTQ^FKE@dODRBKGG:RNCTSPIBL?QPEeWGKLNFXTMKHPOGRKSPRFTNHhJILLbRTKRSI^H=CMFRRLASSE=>R\WJaGPPFJACRUMKPM=Q<^S_HGNF@MYQBOS;IOPKQFHJNFMPPJURGTQRVPRMNNKRXMGKNKT[VINBJOPC=WGRETP[GIENKA[OD[TMGFPEGGNGLN\DSSLXKTTFRP>ZPNJRNTMILNMBLCJRU=NWLNGXJPGGLJ[FDTSIHFPOPJOJNUHMRKUQWCCV?NOL[WQRJMNIJRHEMZ^NYIVKEWH]EQHIQIPMNPEOUpJRRJBWETL@RbNFTWS?UGVTNSIHCKJSSJSEWHYRXODYMBQ@LNNUSHNLOIb>XNBGHGLSUQSQ;FMPHHUJWGQOQJEUFHAS?IH?NGHKMSTGNI]MMNHJFPBMMNQYJKN[M`JMP@LLEeGQ>>>CFMXWFDTSKNKER]<7JMT[UOUNITOJLG@\]`WCPJQAPVIJDLFXHQLUYIXISLOSWUDHDOU=>QN]CHI;SUUONSGPQPMJJNNFJZVTAJVMLDKTWQQXGILSMORPKPIIDJQLT?:SKAYMHLUOBQNIPEQVIOVZSMCOTMEOGSRDPBSBLkESX_O_THPVIRRDOPEWQNELUOPSEHETAQW?GFFQNSHKU[GOTFKHQJOJJ?IVPGOK@JHUFaKVMWIRPLGPWZDCJUSdEAYQYKJSHUJOOYRPWMEJQBLDPQTILERCPQECIOKKITQJITBF]IGHS@;KQQGNIQDKKIZFOOKM_OOFMNSQKITKEPSENPMLIRCNQSPPWEQE?OKTMSGHVLG]P@YQHGJ]CDMSNZ[K\N]XFLGJEGGKKTJCESLCBPQAFNYAJHEIMPRIMKWJJSNHFPQLSJ\QHN]NKXWRP`[DEMODPVJLSFABM?MKQLRNSZOISHDRPU[IPFLKEHHgOWOHUPJVWFIQIWMXNVMCOIPRVMIIOCJUHFCFUP]VEYVQSRRNMWIOM[MLZVG?NJHUCTVNLPVSGNUFNKYHL@SSJDLkOEVTW@WJOVIDZR]RSVGTOKSNNY`MFBBAhEKFH\THGNNPTM\;TNHmSZ=TAVSPPQRDAJGLQ@KRGLRPCIKBYPSIQHJsN=OJJFJR[cFLHYRDDLH^RKKO=DEZKMIWGY^OPPXBQD?[]@YP>F`HKFJNMHFLNJBYKJKJYIOICGP^4MJOEWMOLKOC@IMXN[SKRPGHURB[DJJQeQWPWIGZMPTXXHDCUCZWT>FSRPUJT^CKIIDVIH?T]]JFHQKZaJ\VMCXUILNMSKFW@DSTUVYHCKOdTKSKGK=MQZGUPUKFCNU\[GVJHMIIYIIXD0WJUKNXRFKCS@PJ:VIDHKHJNJCGPSSJHKKQMGTFHNTDNSULIUMLMUWPLHTGIRPPEPILKKKEMTJOmHN=KXVCIQGK[LK\;MOQ[SLBTLTTPMLP\NVVPGQJMbUDUJWKJIUPWDOV?LOSH^JTF`I]IMRFLTOIFZLEIUHKTNWPRMOLNK?VGHLCKLKPJEWWOFOKO@RZ\PLID@QHYINLRTWKNQVZFQOMTR?SHJPFTPSKPLKM[DPMOYEPED?IAQ^O?NJWIFVIFB\NXGHHJJSK:OOZOVGN?GKJKLGC@LKN]GMPRVTJWRREPYKYYKC^VO\EICVYNSRFOINSQF\YGCHWDUJUEJHILYXTY\TH>VQQGG?NJOMFORRXKHPLJOOPMKHVNRIIKPROJZSIWIGMOSPUQLKTIQGN>QRJJO>aOHSNDRVJQLWOESPQKHPIK?GHULNORUPHIQRKKYIVQSIGOHECOFQPH[XLMSMTJWJLHSIDDIERIMLJZR\PLMCIOPKQEOMSKKX@IIBGNTDLPNGCNJLGNEJGOEDPQSUNCOSLELTHTNAUSTQVQPSEOWIKOTUNSSTR@QL\UYSPORNZOPLRJOKOSJERNWIEFF_FFJOJGQELJPMSKIBOMLMHPTPOAGPGPXLKQB>PCOVL?R_PLUOMM_SZMTJHCLPOKJPJR?GFNUEOPPOFPNNRFGMXILUJRDUJETYM?H]NIUS[BMHULDXLLOQIVGRLMHLUUQHRGTTGDMHRNV^>UOIMIU>VPQXUOPFRKPKRJDKGNFLOKNRQKSTFUCMRUSHMQSGTLNSJPJIPUORIOTIRKNGLJLBQPSWFRPIMfJPH\LNBIRPACN=GRXKZLWNE@JSMNRFKMNUVWLJCXQLAQW<@MMT>PQDQFZMP[PGMPU>RN_[PWPG?aJIYJWKTGNGBO;KIOWWSJMFWVCLUMCQD\JNDSJTQRZTKLQJHPAR?FJDSLMFS]AFLUMGNMSX@TLYQNUYAQPNZLOCRUUQBSGMOOI?RJZULORIZ?@YZUSPbQUWLBNSOLFQP\PPJNKdCMTJFhIQEOQHQNIVUML[OM@MQQGFSYRMGEUZLFTIGBPTIJLIGLTILQJYSUDQNSLP>EHLcPBRNDKVPRQQJ\UPFKXMKPGGDQMNPQUT[GOQPdP>QVTLKFCPQQLUXQ@SIUZLbTRQSQb>SCDVJNXGJUTGHECUJZRNQTSbHXZMQKHNQPIMaLOOIJEMRBJRSWIMBMMMWK^MTHNUOFgHS[RHS\GFXSCXLVDGPORD_MMLI^SBGNMOX]RHXOVLKjHBWJQTHTKUgUF^@cSCINTRJMJNMJ\ZVIY]PVAHCVPYZRYS>KF?WOKMQNJQHDQJOBTCRMJ=[N[THN>GKIELDf@LHJI\VFCLPLYJJR_QD9VceV>WL`@FRZVKEL[J>@OSD^WGUKMa?QL_NHSLF?fHHTBWTXPS=CRSS[DTR[Z]K>GQI?`QOAHRJXX]RHMSJNMROOPZNDLJHFNHLGQL;JESELGOQI[RKSPQFPVMgCCLMNPG]MJWE[=XJIJFUKEIDDQJGHFHRQENLYTOVYEHDPFJUWFOIVBGTAUPJHJFO@WQJJC[WTHOMSQDSRQLSIW[VDQPH[JE\=QMQIJKLKGQPKJQSHXIUJIJFIKGICYGF?DDNNFFTNFCPTDHN;QDKFLJNTLOMLSEHPJBLNCELGDIEGKDPD_CFGJKPHKIFJWPNTQQWFVNMQCT[CDHG]ITPLVFSLVDOISPKJORLMUTDIKCMYQPYJILHGCFBMRT\YUS`P\X]SGHOQYMJBGRKLWQNICURVURcGGTVXUQUPTV_MSJNYMUPJFFAZZMRKYSJPXTMSSNRDOOU\QUXVKPYaGTKINONNQAUSMEOWTMOBUEO]JJLO[NHOTPJPMOAMLP@_ZLQMG^MUQSIDX@IGI[UZS]OQQITLdYCOB`EPUVSVSCUPLXSXME^GORQdKLG;UUFTMG;QQH?IXHMKMWYIIKVBNJRILJGINF=JYINXVM9FHCUXZBKFXDNKCGF;RUQLLBOQQCTI>SLBVKU[R@EXTYKLIKIWKANMAJXSMFFSQMEIPBQV[OMJUJcZCFKHFFHFHOCJOFJUQRFOSXVFKKSMJHGEWSMYRKPLWKFXOM@KBPCVLZFTMKOYPMDHGIZ`QWEXJM]PIDFKCQEWOTKOCIONDDMOORDEF3PFISKMLSQAZHQBGVRMIUTOLORFCHJLHJOXNKQLORRRQNFJIIOIMHUNXRPDTKHYPQR[DWOTQMHRIICTJUQQVGV>FOGINFHKNLL=SLMW^FEBIRPTMKCUTPSPNDCCJHIDJJMIRUU_[RIT@QOLQQHCU@:EWTH^NaKLTdONDPH]SNGMUOOFJTPGMGR^\P[QRQLPLLQNGHSSF[WBJVPTGO`MFIN]UNJJUESOJOGFSNHVQRYOLOHHP[FECOXMHGOAFPADPMXONTJMEUJDEXHQMJNR`QIMNVGGMESJIRUHTSRWQKJSUNXFP^HIOYDDL^;QdKALH^UIWNNLKGQPXMKPGYFKaHMVCYWIXP9SFBKBO;GIFQHDKJOX[NMLUCNL@OJJMJNOVSNPBTHMFJVTDKUSVT@TFFLDYHOP@O\^JIXJNXOD>[L]KLQC?PSMOL_CGBRL8PIGNGL]KKK@PGTOZHTHSRH[WHMKKOJFFNU=RSKPWHOPKLEGJOGSCNO_RUQJKIGRUPI>RMFVQOFdQMCTJIKCCGJBTFOIPUOPNKROWUHMRSLDJSIXMRJAVcGTMOIFR[STDGZ;QGEXBWUT@KJS\ASLI5PL=OBVO=IHSPMCHSTLKSSQQEIEFWNOBBFJCC[TJSPLQUMRZFPWQCBHJLNGRQPITDHQSAVIVPLNUYSQRVEFdGOLUSI_JPJPMSA@XZAQMKUGN]GRHJESEHNKFTUG=LDYPKMHT`MTGJJCTNOHIDDMTEKRPJUGEUU\MMWNTK^?M>TLA>ETQFRTOI\GHSWUM9MML7GOXSQHDH^HGQTFQHRSEK@BPQJB[DDLKWOI@UAGJTVKF=GEIW:IJMGLQCH[OIR;BDJIHVZQUHT[JQRHRAQQSQ@UFKMLRKLKELPNMTSPARDBMWS?ESFFSUIQ]PBSBJP_NPXVMBQPWRE`IEOYTKJQMDBENRG@KAP>GDFKHHGRDaLKEPQKGT\STUHWLBUIPTATQP]RLWTJ?NHOLCIIHFFRFYRLXD@ZFIN]BSKQGQU=NGBWPZPSWQLNcJSDAQIHKFKHKFKZWPDJ?THI?NRIG`IWDHBPNGA4`MPXQZLQTPLTSDJS`gAI@FTOHKQNVVUVNPVJHPRXPCL?N^MKHPDCTQKIGa\W=:D^[JCMJTLJTJRTLCRG?GGNS[[DOHKRQWBDIRXKHKVEKWMWVYFOMMRP@LGNTFOMSUQHMUTC_QCX_FAP[GJVQOLnRPPdXLAOYOOKEBTOBQ@[T[QIMTPOHAFDNROHASW\UIIO[S`VUWOFOFOOEYXROfONGWRUBHCSBQNMBGEBMLOUESRUPQQJ`ROGMIAO^RHSTR[WPLQNNTIQ_\NWVNDJORNLHGKACVYYODNPVNFIYW\YMRF[oHD]dFfMULRNMLGHTQA?VKLWRL[OIdUGHN[VENDFLSLRS\GON`NUIOLRX]XJTPHSLDIOAVOKKKiWJIeSMNNKKHGDHVGWKIQWRYLTRXCXIKD@I@SN@PPWKI^L\BGK?KL@RZOPQPCGLNOSGOOFIOcHJQPDAPTQKPBMPdNGJXHSSfOAVPACRLUf`MMPTB@KfHLL>PHSM@OGPOIPgNXIYXLGQ<7BOUIQORNEHHHJXJCJDRP;RHYCJ>IGoGGPYNSGLGGTFYQIB^GJ]=VHPYR9KVXTMKQVRQUZJQTLLMVLDWQOLUZNTVJMFYTKQTAIVNNOHMHFNSMZQMVYJFQ=KLNSJLFNTPQQDUXSHQ?RUTNDORNKGRMVTZSLEHCHIUSPJYHCDNTICNLSBKKPP@QFK]RWJQUO^@WLMXLPUHESPTHIVRPLQI^PAWNKGHM>TSNFOBTNQINUNDLK_QKTPSWEFUMROPXHTKONUQCRMKIM[BJGYOS]XI;LOBPSNOJOJOLVWQNLR]XKVOXJTJNLMM_HNVRMNJbHNVKPFULW=MJNSRDEQXPNWLVOOOWGGDOVSJNGJU]OLBQJMJOPLXGEFSMOPTTNOMiTG?IJGGBYG@GTDKBWOKURFFTSRMZJLYKJLDXM;RGYOGiIOJXVESNR@NdTTGQEZ>QGOGLJY=JPOSORJ=Q^ME[XBaC\MLKNCZISOfQWDKKR`KK]VILLTHSJQBWLEHPPMQROLJFIQNTOsNUVRFRPKK_NKQ7OCXKJWdEZJSOIUF]FIDQIHOH:GONKIOAH_PCGPDJNFPbHU[DHMMTMKGXMBNNDP?UPJI?NJJ]DX[JRTWXPQQCID[TRFSRQNNKJOFYgMPONHIFKNMKENRYSNKLUPRQWGLLDDEGHGRMO]KFSGSLQOKMTHNEGUPTELRJQGLLSIQ[cDQNYKDSWGLL?TESJLQCSJWOSLCHJRHIF]IA[KELNHPNTMQHPaYBKNdBXCMQLFQ`ZMLJLUCRTAPBE@VJPMZUNORINRGTN>FCGTGGKI>QHQHGAFMPWQLJN_CJKRYJOIRQXQHJLGSAQ\QNKaQSMIRTOLVKERI[SSPQRQMTOGKNROMXOMPNaNISQZYESTPQPGVMOVNHHNJPPLcYVNESTSX5KJZJMIGULRXGOWROTIFBEEEDYTeKK?NR]IZDNOC@?NTKXSHTCYPZI\HWCJBQPHYMI\NGPVELOAJWISWEN>XSVQQJLJMLIKNQUR@RWCIFURQK:TFSJCPTBEFIA[KUUITPOQS[HNISF\KNIEGOHKSRNEPHLMNBHHMUGDN^LWMQOMWRJbS^QTRRSMLNVTRDD\JK`VPMQWEUN\DO=PTMUSLJVGBZOaPTQUHP]O[ONJFYG`JKRXXgVCOPHMEQ_VQ@KGTRILQahJJNTIN@CS^]YKVIIOQMG]GIJVU\SOA_YNTWMMGNGRPWETHVXUDZQPY_`aSaP=E[OWC]DLO>ROERHSQIXNREKTHGRJ>ASPOXFJSOUNSF`=RYEFEHOSGN@LOQPIPPVCGPAMMQW^MMJGTW@ENSiKIVMZRTEKYDYUMVSMXIFX:GSHNNJHPXJKIOSHFQNQMIRHHRLIDNBBHMWNKGHUCJYAWOQULILLFLlBRPLMDSGFTTH[ONHR[XMWIOLEHNNMM?BGPGOHMCEKFRXVNQFMVFJRHPFHHOYAPUWO>NJXNEJVKUJNHL*QDN@HMKE<]XCGP\LEPLGWCHXPIXJHHH>UEB\BRDLEESJJJP==DUYETTLMILCY@BQPUKbObBLTGBJPJRMXFEHIMIMKCQSIEFOAKDPGTJDXHD[XTQTPNQQHSVRG`SG\TKYO]MfWYLZWgTJJMFKPSHPAOBONUFAPLQiQFNKGDN[MPVQRINJGQW>Q?`SWNX?MHQLUJPQZRXGHdOWCJUBKTMJCNVLW8I^PSEARRJ\VGRHaQT[OUYNQLYYQ@IRRDHOTLG]V8VUP^L@[_LOHPGPCEGVLNJ\KORQKTWIGHQMGRLPF@TOK]TBJMFMK^W]SS\KQU;MKTHIPICYO=LPaVDQOcVWYNVIYA[SMJCMKUZTSKKZPYMHGGIFKWMC>FYKD>RJLV]GSJIGULT[OPLUGSOGHKJYNFU?NWLTWNN[M`FXPLPJE^HNLKALJGFGRJUVPNNXKLPVYODFKK[ULTFUBGUYeDGMX_=GEELRFKLPWTQVXZEC>UPOQNMTYFNNCYKBM\KQTMFVKOJGKIQMXSEGTPUFKSFJWUUUNOKKZKNWIMJcMPWV[XFFLMYERUSPQMGFGKPONJXMVRHII9QPEIKJTKQPILKTMUJFJQMNQVWJLKPOCETDQLTMQ_OJUJ`HQMMNGQ`FQXJNHPIWJTNN\EQ\MKJFPKKLNPGIJXNQPAUM?RDJMOYWRPVNOELPTZIKRTVZMGKZRSNQHVTSRHGOIYZKTIWI@HQVQVRNLGXIJUMIZRRNIOQORQKTFHGKSRKDaOPOWWIXKFO_KLK@ZORTMK\GCdGNRRKGQNRMINNQT9HLQOSR_OMVONTK7OMOMKHGNXIE@PKIVBCKZROS@D\FBDHPWN[GQ\BHGIEM^PLMWGKVMPRPPQVSPGSTFHXEHEAER=THHUSASRRZKJRJRMVODWONPOBWKcRUHAUHRLQCPJNUMRAKXGM=VL?QTR9FQUMKS^WfOGJUUTYGQ^OMRaPHMLRIIKEFJHK_TRILTXGVHCIFLZBTCFV@PVWCUC]5UYSHI>XMDR`PKHMPYNUSHCGLLJFRKHVJCXILHOQRTSEJXPMCWESLJQUPHMHF[MTTPLNOMRANXVJMNMSNMLK@HHPSqFWh?YXMMYSPZLGKGGNRUMKYRMNLP?NJJDKHQQVNI8?AFHScI]R[>GHDHK=VAXPVRMTIQFLSKbUKVU>LULGPIaNQXBEMLNCWXLGRaPVARAGMEJRXbXYBF[RGTK@S]K@ENGPOLJDNLIU?L:PGFTJ[GGGTPJPQIOOInNYJCHOHVH[WRLQNJBPFWJQBLPJBRVSMSHQOQHHJNWYUSP@N?NTN?]MPG[D\TIEHhHF[HK>@ZZRJIU^UQNMNQJGOBQSOVGFTSDSEKLV\IQWGNH\IOJFJVFKNO=LSKPNHYJEIISTX<`TFJGMCFCWJY\bWPNWTHPREMDTMRRORHKUNVGAVJAQ_YK\JGKAINOJFGLP\SKDMPJV\@GEFGLYMDO3OIQ9LKOIGNHHTWOVNWGISIINWOHIOD@LQNOON\RLOQcSOMLJLI@MTYNKRmMMWPFLGPJMIHHELPGGcPJRVGM\XNPLNPGPVVMMORG?IUROUJWGMZKZLMRHFRQIOTJR[FKENIOI]TTSVRKKHQOTK\VRUHC[NPIXVHGSGRPH\RHNLFOULRRVXODQEVTN_aLKTTSSQGOSMQNRRVLH^QODEWPQGJFaLIJGCQKJLQPR@JXPTRLNORTKKGBNMUF[EDNNIJONPSQIML^RLRMLDJQQHIPQIIULQTONGL]LDVNJJPSQKGKKKWDNRITMNVLNTMHUJKGMVDSPJN[JHVSLDHKLNQLK[MZUaQRQ8R?TB]KNGJFOENAIS]]CjL^OHLPPTVGAJGSIFMMYEBUESPmTRR@CCSbJCUYHhIGSYYG?IICNUWBBFVMRKOCLBFF^LYFGUQWNYWZeEE>HDJOMQOGQUJGRTURWLUAGOTGD_KRKGWH@OFKELLRVEKSDPTGFRGUMFJTNaNLQ;?ICQVDWJS=KIFSYJGWIEFQGHFFGQ]BCQXcOMRA8BXSNQSUGQRPOABJEhSMMRSCZYPFRMPWQ[?XIHCWTJH?NV]VSBAFSW[JFLDDAXVVPWFJKOVaDPHGEMH\LRJBW;MHGCVRFJNOLO\XEPO^N>HR^UQ8NZIPKLIXPTEWKMQjJS5ZK@JXbSQTRKVAESRJKL;HYN?SJHOaMLHVPJaZV]pPKRLOLCIHbYIHJQULIGLSJHCUDGFMAEIHDKgFPVGLNMTPSLTJKN@OCKQELPGEW[ZNZ;OGPRBKPQLHKKKVFZCGFDZIJPEGJIQUNNMFJFF@HI\O_>_TKKITOMBYHPUUH\EL`TLX;[XCEVTfRKWLR;TG@`NLMYBQRXQGHLHPNFOPNURHFNCIRIRWLNLNFRUHKDDMOMRKVOBYGKBQXHNKTVPNWGNPHRLNHLKUITQDFKZKRXCVTIMKGSWVPSPMOYTQVOBFPMHTOQRGQIJGJMDEOYTKICNCR\JTNWmGKGRQNKFGNbLV^DILLALNUBMIORLHGKSOMIVAKJZMUDCMBYLUFQMQPKNHSGRDKHLNUMJO@Y>WECLPOVOOMQOTMNK8LLTRJRQWO\HQREDKNOLJMLRNhIDYEHXGOD_CKA\RTLMIK:JLUOSMSBHKOHAJTWOEUBL`NQHITHNWQYEEKMLNFPJNXDWOLOKIQH[GRJEPJHOOKIKNSJQFPG^HILNEKIKNVScI\OROHSKVHNWHEHQKFKMM^NFIHQOQWGbKOSLWHGUQOVIE_YHNRFRbLQFNNMMEEZPMPMZLGKPJPWURGdWCQP__LS;RPRSNJTRPETZTAKKO`AUNBPSiYIMYJQEQWKTRW_cNILKICEPGQHTGRJNFVM@LRHGNYWCZNNWV@GMKUMVSYUMYKSJSKXQFAYRTLOH\QPKKDAOKJZE>_IRE_QGR^MWSC=EKPGSGGGMZJUKWRKQJHPJCFLFZ\KKSTWZUKFQVNIIBDTMOFTQQOEHXUPKPPOTNINVCIJHAAEOEILG]VWUJCNCWRRWZPIIQQSLCA>PLORXKMcMKDWUA[VUQSAGOJSDXIJTUVJGTPSQFDISfSaYSHHFJOE>WDQIBKROHOWCCI\NNJOLHFNKAMZMPJULRFRPHTKHOOFWKTWTPWHHCGOPUGIAVFSRFPC?NNGPQJPQWMKQ\Q[JLNRHJKRHKVWFIHATLHLINDKLOPcUMNE?R?PQSTJ@Q_OLJWKHIJNMEFTrSUUJRGMEMVHPFIIPQKPESMYTNKPNFREGO]TVWQ@AAAHFPJHMSFUWKEMRHF[RNFWGPVWEH:WNHPNDRHEGS?KKAFHULTRSQKBRJK]OMLQPDMMISHI?MQLCFHIOJTF[GQDIMMLEKJKGHHSRUDTIGHQFNKChLSOYHZKLTMYSOQLVFCOMVGXONU=LFPRGYT?KDMRWLIPQPPOMNPDGKLFOeKKMKOKFDTP^SUSLFNSMPJLPJD\KK@SESX^YTWIF\MXLV@TJMRNMESIIHEAESMLFjKJJL[HSNTNSQIOMI^JTSSUMMWRJPLOHFZ_E=KZGVNPSNVkFSPKRVZPIK\MTVKNXLJQGOIeHQHYEbXSFNJOTPOQQFSCMPKQKHLELPPQHKZVVSW`ILHOJWIQXK\SYLNJNGTPNRMPKGgJKLbMNASTIKJTOMNLY^IFJOZJPSIU]XGSDJJWG[APTKEYsEHBQXXHHPfHLSIQGGMN^INKTPDLUKPMdRFVEQVRJDWQPJJ?IJUORRJESPQCKOgPO]MV:[^LJNPQJYFYLWYVRK]UR@NTOCHQMQOKLLI@VN]BKPJWJ_PRFQMSFIOQRPAQGPQ]LLKVSEKRJQJI[XWZDJVYLFHVZNF_KMPQWBODDMJKMINXYHGQOCOO\DOGZZVRMIRXMHN[FNURIFBW^CHRVPINE@SMML?GFZPQRU_GTONI=LNU9MUS:PBMKLQ>`MTHGFLMWUZGNXIBGQG^OBPTO@LITXL_DDXMFNBFFLQ?TM^HOKNQH]BJHNGLPORKLBSOSPEOJOPQIVJgMKDQQFCRUWEIDMEISRIYI:G@EE^QOOLF9FMQNBKF>HJKBIBUVCTBR`SRHKIJLASKRDOJJREOAUQGIQ[HOMLJNNQKFOLTESKQWHOPLNIRGTQOAQKNDCBQESRTIL=_QHMP`@MLFH@JNSVK[KLHJISEGEJF\KBWHFHLH?QLN?DMV\WKOfZYJJM]FFV[XE\IBNWJQKUNNFEJOTRRLNHQGOPUDMGBDIIUMJF>ZLYHEOMILLPU\KbWLHGJIQKaQQMVMNQJKCHQGBCRPHQJBR=WFLKQTNR]JJLIOSKUQFNJa_LJUVMD?I;J\GCHIT5@HRKSKJN?DRTOUYJDTKPGMIWFFVSMMQHOJ^VOAOULaPNCNNNSJSMdMRHENOPFTC?KOYjKVRJLN=UKWTV=TGHJ\FIVSOCNVBLOOPAUNML:N\PMVZIQbIVNKVNIJWFN;ELMFFUDMOORDQPO8HKW@ABLARG;_LMLPRH><[DGHNR^T[JSHOMSNGSUFRIKHIOOGT@]SKHPUKLH]KBHNIW=IS@WMG:NRMGTTTLPRPMP^HHIIIV>IUP]NOPJVS=EMDLFLUZjROBEAPZQAMKREINLIKETOWTVKJKPLRKZUHGMHACKNPRM>PQCRPPSTJKGETRDNNLKMUOWVHKHDRLXLSUHTMNSJOJOTQKNC_[BPFSRKNLAQT5MOBALSVQLEBT]aLB`NPR[CJLPJHLMBRXYNEOFDRRVIMIZGLSMLOHNRJHGPOEK]JIULYQR5SAL_RPWOPOVVPKEMOIDDRIGWEnQIVGKGOJOLFVPBGPNZNGP]QQUHMHKLWH]MOBKUYVDIDBQEJNmDNIAISKWN@`EEENOQLFFJ=JMIW^MYESCDILbVJURJR\ULGGKNNJGQBQJbQHIRNSPLLMHQcYBHDSFHTJZNWIHNGRPOaTY_KSMAKNYNQSSTJWWQVLNFXTRPMVWOXDLTQQDOHF]LFMOWQTFbNLKNZGNLBaRSPNMHULUSRWLJJOGX\`BGZHWNOMDPNSQHM]Ji_LUHWJeIWKUQSQWTPXDM_LKROVXH]TKTNIDSSJ[OHIJMWWEXM`HU=ROIMPSOI\UMLXTNY@[NJUFH@HP`WP[OL@BYYU@CSK^ROFP=HTI^NPSIZLUWOKRYFJKNGIXKYVQPPCHJJN[PZLUXISLWUSRV]QKJYGQN[SIE^VKGNK=CQSNZIXPLK^KT\EPJ@UNWQLOAOVYPCMOKKVKUSGTT>DKOHTUSNPNMILSWQOMJLSKMVRJ>NPGMPNKNVVUOLONW_WTVSXPTLFUUWCFNKPITITLXP[OTOkGJQPC@GGTXRMPIPUBLGC=]NCCMIMUMaOONLKLNJIOQQFUXeMSCO[IJdPRTUJLIQRIRQWWAXRKWCCYHEiT_SRPNYW?PSNNICJTOIRRS?RXEQTPLDPNHWLKMROTSZRHSN[UMXHPDUSPRLSWOO=NNaPZJBSNJUEWUN@WKKOATEFSYFZFVEAZWDI`TKHCORSTJPXMMOTSEPCW`QZbIJJCZXOH\McBaP?GME_KJeVL@RUMWPRI]bFBJG>QTAANJBQFL]ICPAJNWLDACR[HMWaXFDF@ZSLEULQHB?ZHPCCMQCIFRJGGIWZJHPMVKVTMNOUKVLTKBKUGMULNHDKAMaINcWZR?KXXP@GHLEKPNTVJW^CJQNIMRRRQOEUQCHJPEH[OSTJULQKE]S-PL[NFMLGMTLJG:ET@KW[UELHKLGLPHKDLBWL`NZVTNMVRMRJQOOOQSNXLUUUNPMLPJSIHCRSB^KAOWPIE^IQIJKNJVWVSTMOLJTRNJJRQIONLPSNcGN?WHKKJXJUWHOK]Y`OMVCMYLYSOVOJOVO\KHSIXDT\GIKQMVQV[AOYFITAJPXKIMQQKPTPQTFKFPTONSLSGGPISMJTQPHJNKLSRH\hMGFCNQGIWPYAKNaMHW@RLQILVIHX]PEMBLHUIFSRTXTQFSQHQ\GOR\FVHcPQ\MKXJHKSPZKDOQEMEDFHHJQNOK@_XVOH]KIRJMSHWVK?OMDNNaSPDLPKKCQL^BIUTTNOSXILHZLIQLKNPYHIXKOIHOHQKNWTH@ERDPTJMIQeRNCn?KZTMLNEYP`[TPMOIgJPFRTUINRDKOQGVKRE[LFQFEL?DXLTTOXFK[lSHWgwNIHIRKU=JaYVLI\XGL`BIR;CO@FIDHLMHQHKlDOUIDSFLXCSTPQOCSX?QZG>VH`PNTDK?OCBORJDOUWOOTRE[HPPTQQUMDINOZNTJIVUF\YCdRQOFSPVJNOMFIVUYHRGYSNKHKQNJJTNRMVOJIHGIE[UIIHSNXIPJKDKKEJE[NCBMJU`QNHIRMKLJOGHNUDFWX[MMHFKKLIL@]@OVJIOEEGKHQNGDLGZAJNGCL^XZPMOFQ=P`PCPEOMHLKJM@OKPiVGL=MQUHD[UTRIGNALNHWG7GPG[QGP]QHRQLTMBPBPCDNUQVKROPRRVTLG\HTGLCFMUK[JJQNERFCPKJLHOJDLDNLSQVJSAKEIFSCTMPDLJHOGJOIUOFOZBKJIPLITALWLHGOYNQRGVRQBWlDGNYMaSYPP]\NQJ\aIKMNJFLGPSUOMYT]CZLFVIHTN9SPRPKEU[RWYDNcTNDQLEORNVOV\PXLNXMBPONYCTUNTROEQUSMKLESOPP@MXBE?TTQ=RDCGNVRLBR>JNVVHJERPKXRLPUFT]FMZTMPQXO\P^O=PGSUKVLRJGLTUKPQRRTLJI9PHFDNKQANJOYVDIRIQLCTFUU\LSU=WZGNRA:IVKXM\LHICGVJFO@FaICWhJEGNOVVIOTRKGZMLHG[GPFBNANG]FJFKR\FGNMUDRNAVWUGGLWEU`SYb[GVVFNTOMcHSLFWSYJKMDTIPFJEUW^NLBLNILMZRN[KAIYLSMBJVPFLVFHPYD[JVKMBHDFMIOWPCS]CW@IOLORGKWEIQONGFOSLX>MQE]JXHKBOOANMCVUHFTKNQHFJSM[VGFNYDZFQIQEXRRSWZIPVQQHWMSEXCXDEDMLKQNTDHXENFOTXSLJASSIDL?IVWFMSURLDTHE]OSUILWHFPN[GJMSOZGQKTUPBH:AVPISMLR]>\UOTLQ\VFDJEIJCIKU[O[KYQROJTIJKZO[DSXE]NBD_LCSKS>VFLOKQQOOINYYRSIWDSNLGOBR[PMFHIPPO[QZKYOQHVJONP6`NSVVJMJSHOEFMLNID^JLK=?XVFHaNRFQOKNGAQJYMJIRGMOJYGMOEGUKXFfMIJAAPRKXAUTBVOPKJCOQK`FQMSFSTWTCNUCSGOJFODHRX|TSJXWVKVMONdTKJQQUKFLLRX8OXCaH;AM;UDRFKFN>RGCJaSLHEK@TN@VFTRPNOMKEDPNP1OQKYJJBANSL^VTMOIJKDFPGM_`FJEHEMJLDWURT9OTIDLNIQW`FMXDQLMFGO\KLTDCKQDQEJWFTFANGNSKZEIPRSKM9]TLZ>SMWUTXTJZCOGRNJLKO^QO^QRPGEH\P[PAFQHLE\S\B>PFGXKBPTWHPWSU\BHGLVJNVOZWV:MDEI_LDVEY`URMGRDMFKMPY`]I[HQ@PJKbAOFHTCdMNNYVR]HD\UNRHBDKPSIAQOGPIQEFJLMNLOUXP^QJMDZQIGPTZNZPTJBKYEZVVHNGLIcOJT[GRNACQIMVROSKEXSKVPKF=E[RMVGUHPXSVFI[MILNLKIUKPJKNQHIPIUWTDFFHKTWPIUJ:MF@YHT[?HH[RCTWRWTJRM=DJV\QMXMOIESDQOYOEONNCGOOJOYZPOEVDSYKUAINB:OVLQMIAFSWDXLCEQIQN9aVJJHKSNSYUEi[NNOG_JcNXYOLBRKVTVJQNRQUHZFXFMBJLLRDJWRUOFSRWQQLPTIKFSFUJH=UH[LEHLMCIMRFGTEUDGHOC]QNQJFJPLTIPRNPSP@HUNSVPV]cQLHJSUBILYMRDZIKJPSPEAHOLGBGJEXAQDKHHGHMKKLLMEM?RJMUJMPMWDMFLVNODK=TJOSJK=CKRMA^DCSKPJMPMPEHPII]PELKEMKOHMZUV:M>HUEJQSGEOZ[ALDWQLMFQJUgIWKKJT[PFKOVPWJM\XIPDYJ^PIEQCIEOTKMENNKPLHWMJ9YKMQOMETG\]>GGIMBTOLLFR[PCLK[KMSSZ>VTMOGOXE;JW?WOMWEOESYKWNZJMLKMXDIKIPOFMDDOTOELbEBWUCULUJBOMJKVGTIOIWOYSLIJPN^PIEQJHKNOFKNNMMLHGKPMNOJKSFMPDPJYQOLTEDT8BHVGJN[URIKSVULAOHMKCILGQcIJ\:KRIIAVYKCKKZZXVZTMXSURNHOEaKY@N>OONHWEPXMR\MWISQQRPQFDMO]UDRTRNNXUWQVBYNWWOVTPJSIBOAMPPKRK[aPTSMGIQTHPDUHKVCYLTOFN[D`DVNHVAIJQG@RLNUIOTI\ENT[ELTOLWSIIOITRNOL\BHHGLTQDQOTFUL=]TJPSN`XMVTEYVRQYhWVLKNRMSdMRJOZLDYTDHHRWSW_NLEQPVQROKUOEXRNPWLK^Ue[PMXVHNKBPN]JE^WDPPGQLWRCKPHDQCM]^HGmOGLXVXYKW\NXSN;XSWAMNQ^XODPIIIUCEN_WcAKMWX\JLQPGNHPLPFUG]LC[^BKQDYKZ_WO]LQV\GMUQKHMURRMPEFWJaIRLbSDKAPOMLJWHGSFLRGDHREOU^IAJUBXIOZII=DOIQRXEZMIDGWQXH=ERUHJMMLLPRN>BNNDKJQDNSXLJNGGVJTNQMEWHREAAO@LEILXIOCOSCNC>KVGHFPPOMLEIK=XFOTIVHNJP6IDSNPEKIRJ=DPV[UNFJRRPOTWCOPTGJHGMRTQOPaN`ETTJK_JMMNLFLMLPZONOKTP>QcICDRMVLRIQPK@NJIUPQRSHJYL^UOPDTJ9^SPVOLFOEKJPGQXQCIG]WML\NILKACD?HG_fOKXN>RRELBUOMGMLV\GSGQKXY?LQVKaTMUDRTFQNWRKNKJTQTJLWIVEMUVJJHYBIBTORGABJL]EXYILFDUHLY>IFKLFM`MPPOSIGOSNNLaVTHXJOYDRNSTRDQGKOHRJ^FSOHUQUJM@I:LDJGV`IRKOIPGPVMPJQOGUKBFMKPLWUPIMGORIVIYM=IXUEFHH7\KJ@OYTROV[QNUlAGOuQIIOFEOEVVJPM[QYASC^@QEFQUHLNHZSHENORPYPUGRIMSYLaOFDCL?ZNaCPUJBSRS@CKMKFOHCLRIVLLRKP^JRNNGGRMGC\HNMC]@OTPT5ELEXOBJHTKNQKMPH>GC>[KGaKMO?AFYEHLGL@KTIPRSJWLJSJTU`B?MCJUYOGKUOKKLSUOQWRPVPXSKVXRRRIP1LNROLKQJVMMOYUQJQGcPLN_DHHNGSWNXSPUQWPWCKOVXP=NOMDSVLKRKHWQ?@SDYCUSDTQKJRSO[BLCMDVUTBBPDQNTQKKOPGJUJVGP:FCQMCOTU[JMRQPQGDSHTP[HFH?HOJKPNPBGNHORICTBMNNAPOIAMDHTQJKI]PKQDHVDMYNYILPETNJGOMLPLTXLEYUQRH[@RNMHNNLL_hHRDENU\UIGFHUB\SFRSUFMFLEGPTEMDPWO[XNJRHSLLH]RIYRONELQNHYGCCPDLGXCPLUMLSKQS\WRaPCEJ^QKMVNNX`HPSI@K\HYO[PQMQEQSIZFIdICTERXOLQQUI?\RUU^Q\PBNIJNZNON\TNVONDOCOKMTOQJTTHPR^NNIAVJHMC`KJKJUHIMOI]UW[SXWQBJT\MEHK>CHRNGBQSJVOPN_LZU@GUNSBFUHUSOHL]GUSa[@IGISUM\[GYHMUOVQNL?KMIEcLICHSKAYhRTHQHTONHHQWUR\WLBEESF`VPPF_L=DW;DiJDFRDLDaKNCR@5TZPEJV[>R]K9NHeZXQKSKQi;ZUGMJ@OHWYHUdOTBCUMCNJSZU[LI>Z`TI;MNHKULQEAKH?@NKQBKQHVlINUNRIOPVgOQA]K9I9h]LH@\UHA=NTaAXQcOH_ZMVY;YVIASPoJTXMFBXcXSCGLJDQMIDZBRNH=KMW$N3TWT;QSLI\JOZTJ@-JVVIOD^eQOPFVBNJg?YaIYHHTMIKBQLJYGWLQQHXUDLKTRPLd;HKT7UQ?S\fT@KAPFMQ[SI[WQKIFLP?OXPEPMYV:SLMUSK^NMKNS\SLJNIUYV\ORLR\GKG=S@QDa\VQLHJMcaGSJWSZPEJHSKNI=J>XNPOMPFE`PUPMJ\HLDW[RDUMNOKMOLXQKMQTOSMJEB>MFLPHILLKJDRNGDJFUCPQZHEINKOHVRFMQMRKUIUTWPLYRINQKNKQMFTJLMSMUQGGMOPJKOQLLHIOHUPINPLMO[QKEKJLKEGT[PXUO?XFRLEJ[OUFXQPGENMJIVIXKPGZWXSQLXHOH^PQTSNZSLOERZQWILQLSCHPJSTOYJRRILJMNMOQOKVVPCQHGVGPPHUNONNHVSTWLUhJHHWHTXJPT[XGMJJITRMPKAQPKHMHJGQPIPLMBQJIYZ@F8OKM\HTULJVSSUZMUV?JSHGQ>W_HCG@JCKMIMKLOGKMNNMNMDRJMEFUOOC[RVM^OMED8=MTRUGMUOG]SKOPGHKWMWO^YMGICDWSEOMRGPDcTXFXNKORI[O[aYOLVKMKDJ@SDOHZOXQOITeWQADMSRiN>EUVPPBGQX`CUEVN\KNFYRQDMRJAOWVLQQEWSPQQRTKFKOIIISG]HNOREHILVZOR]GXTLGLG?YKM_WQEICSFVIMFMLUG[MQTTHPM[DSGOATG=IUODgHTD>?WVFEMMJRN[FWXGVHOKLOUEC\NOLNKO_PKLVDJIGCNNOHKQEAONJBZLIPCNKAHRHDKSRGPKIN>GbPPDVPILUR^LLTQMKGSHQEMKJPaEPFYNHMXEQKRKMRQIQXT[PQGKKEQWV;RJVHGOMRMOKKPJBCRLTHMDTTLOQOKHWVPULM?QNUVSNEOMM_ETWIXXJPUV\HOLGO`IHL_QPDHM?JWMN:>DOIIDEK`MMGHHFUHSLM[@UCGJHKVOLLFPCGNEBVDTGTKELKTHCYBTQQITIF\SKDONXfFR^AAIOXRP`GOXWOFQMFLQNQ;JERYQAPKRCDFXKY?]XaRMGTJNWVLQLN8L<6>aNEY?NNJPS@OUEOWNJXELJ]LEGFUEOQHA?FLKBP^QRDb>CZFRWKQEGUPD_I_TJ?XKMXGcWI[LQNH`NTPDUQQaKBHEKKON\NJCWLHHEPPOHG\MONQPMHQV@^MMaNF4QdE^KNOL\J9;GJOCKP[TRFGV[UPaHEMZLTJSSGGQ^SMEJPAFEHMWMSRKPAREDWEOORRQMDFEILINM@P\CFJIANTNFSCLPMTLKUARJXG\RNDVqEFDT`bNLRIMHKTOJENZ?SIMESMRGVKIKRCP[SKLJVL]GQMRSGcH`PONSHAHc^O@BT>ECLLCDR]RTPH:KXCLLDUNXRNBLVUOVOJ?KOFWCEMSNV;EUOIMCJOXYMAFOFHBOHIQGETMNEAUMTWTW_GXIBVTLVIMEOPOEBaQGIOSVIRNECKKKG3\Z]JJFSGDJUXLaJEGKNIHMFMTGTOMLGVVSSZWOZHAXMNS\9XVENIRJSFY]RWKHPNFCCcK\T[SOJOO`IGKFPSOQHMP\UQMT_R[ITSHJHWHXHPRANIJYLL^OGPMSQNSKPQQ\GIHSHOJTWGOMS\JJZOGFVJU[BNHASPLQURXLQOK[VKIGDPOPFJZSOKWQQAYWGJSKN@BNGS@DT[MSIKVFJXQPHMJOORXZYTEJTSFCRSGLFQKMNF\YWHMTFSQV]CMTJFeFUHXKLOUPSNFJOXONYLEJVIWNVOCPNRFPWQOQULIREUOJNKGYVL_AXJQTMTJKGWEPHJQFRMJOIUDH\YPGJNLNNQTOMRTULJNEJTPNZVEKYTQK=HABRKDBJRJIFZNHBCUPBFEKWJKPFOOARTOHWOND_LCPNMPYWNBFOPGKTMMHXULN=QKGP?KJHEEPRIHQZLLMURIXLKRKWV[MUJGWYEQDIFLUJS;KGIMPAOINMUWQJEWGTTMMSHMVEUQEDGHILJ_OP@LLHXS^TNGTLRWLPLFWLZIKMQMDLOLTQLKLLKJRKPR[MMLMMVHGSSGPEK@MQFCIINJQILENHKmLOCFNPJLPLMWQSKDMDXMPINJDPHKRJLPH>gOKPMJWG\KZSRWJHMMGEKI[PMJPMT9NDYIVEX?KQIXJJBVENIKSTMUJMSJIQEJaBJDEISRQJK\NEUEPUhFRD]HLXTHNRVLJNFUW_QUNFGC]EFKKGFJ\@INVNUNGQTDLDJXQCRUJNUQKRPZM>`PJFK@HIMSIFIEPLL?LcSXAG\OBPEULZNOSJOMHNYHKRQPOSMLKJOIOATVKR?\XXETOFCQPTEOQRPHZELEISAIOPMS[NPRSEKRCI@=M@?PRTOOE`MCV^ZDSR[NNMUKSNUbGKILFJQUBLSIVMPMHL9KSHNPF[LOURSRJF_LF;gQReMITCHRMYMTXGLPVSfIG>KTQUTMPULMAE_LLFfTOQIVYAIRWNEMFHOKPMQHjTKWJWPH]QFIWIMDTEDJVONOMQNFJYBL_IFJCHUQDSIEMLGMH`RHHcFVK@KWQMTVMN@RVMPVTIWJLRTWOeHJOU?RRCKHNMLNQSSMRNTMPERAaNUTFIMNGOGGZKL_LDLFKDDIEGVMFJU;VDGM>KNQHVTPXRQYVMKHNNXSIOHSJTWITSPTMPRMKJRM=TLFGEEPRBWNIN^SVFMGDMRSQKYIV]@EVPH\YUUHCQSXRTORIRQHJWXB\\CSSLHZ[OHMUECKMLHLVWSK[_QY[DLRKYGKOOLPC]IdOXGKLHEE^QERTEGSOD\K=HLIIAROOJLXRQQN^FIFJ[OSUZNZ[H]SXVVWJJVKPIUNYFJHOKVDXKNNTEMJUSIRJYBUPFUGTOCLHLQMLEILBFMFEUNFHZKEGMOLOGWPOJH?CMP@?LWbCHEN`HEZGTLRDWLBOZGEMIWHYOWNIDVGPSRWFV>X^KIGARJICZUT[J\RMZ[MLFLMYGOUKIRLIGUCbRIIERO]JONIUFQNZSVDU[EMKMWWHJPZGJR;E]OiKQKTCIH?IXNQLJJNY?B_NI6PLJWLI=OURJRPBMGBROSMRYNGIPIEJGGPEPRKNIMH\IEPOHMHSR\WZDQOUHOLONbBFYIFOEQMLfEHLTHNZGBWKQRPUHFHGUQXCNGIGMOTQJJIKQHH>UHL;JOORXJONTXFIKPQJHHDGCMOGILMZIP[WOJTLPXYJNMKBGZTKMIQC\[HYLMOHJDMEOSNJP?ZPDW\GCVQDUMRY\VTLIJKICOZJOB[GNESKPGMfHQNEJOGHEJKIDLXIHKUCKJXJSIHWIYSU_KS]CMLJXNNHPQHUMEHG\mEDFNDUVK_WMRJTGJRKQOVOIVK[FPNONKVTPANTTJKGXL`AERJJIJSGSNDOUIKGEHOEUJPKNROR]NJfRRLLLWFKKHOMFMECNPPFNS;UUCULLJJRMFMMEbMLMBJMHWQRLHDILUWGBM[LHJJQVOTXC_RNeJEQdPR\JEUQTBYMOOSHKNJSR^GWTHFPTKELLMOSGNK[KFUJIVSLGHOPRJGMNCQQPHJLMVZOBKV^T[WIXOGNMLSJQITJ[;SVQJMTQSNQKHZRNKU=[NCOKQLBPUGVQKIDHI`FcLVW[FIHTIM\HHQHTHWJGINGKUIQCZN\OSWQRORESQ@NLCVDMPPVLOLUIO@MHKNMMEMHIQSBKTKOJKKMUJEKBPHFMVPPNRMEJDGbELKA`WNXPPRUWXKVJZRHVIVUSQSLP=TKKKTWDJQUQHVJN]RJSIHLRZR?QUIJNQONQQQUO:IECGCRJCVPBQdMIKMCOJLISGVGOKPUIPZFJWEIVXMTULJRRRLGRTBG@ViKLVCDnEQPEWN?;JPIHPMFFICFSOIRFELMUXAMQWWDQQJRIONZGLGJKROHKIIDJYFASGTRGDLYR]:QVXRUPLQY`SJY[QRT@HQYGCOGUNSOOJY\JLN_L7KSHWPSLJACONMPMNKGLMTVLCUK>ZBGC=KZO`NHHCRQMNJ_NGGUPTH?F[ZOKPK?WRMYPNGNL[S]dSOKMQSHQFCIMPRZIGAMQGKKT;PRKXPQRcHABNEERjZBR[CLMRQAQJ@TQSFQ>`P=WFU]OHJ]MWSO@CKJTPKLCaE\PGbNSPmHGWKQARKQPOMVVGQSLLQSEJPLIORIYMPFUHSEXPCMOGQKOQL?QQ>fFGHOEOQHXCG?8PHJP@OI^FWEGMTK[GPPLLJRHDSUHJN[KIPSKULE^A=NYOTPLNEPUGNOOIOLSLP[HCRNES_GVJUNSQdD@V@=QLPFNYIOMFIMPSWLOCLQTDE?YGLLWWIQINHERJELLJNSTFIJLREOPSAS\UKHdDTMPMQH]LQETTQQT=CGHEOOPRUQRKTQQIJKFTPXIL=N[APUKIT^GHWKJNHTQLKM>FMTJJRNHIFPiPKOSEMPJLJ;OKLHSLE?TgMZDCLQJMLINZIPUSMASLIOYRISTSEJML^TNLeBS\PILVCMLHJNHhHNWPNXHNMLGAKOMLH[QVINFEJRRMXKMBJQNQIRSKQKOKHSMNTJALJIFBKGJGGHRSWPIL\]PUJ\TKWKRWSQHROTRPINLC?SEJMFQLQKHWCCVEAIPPPMUIVZ?UFLJMIIVJMNYMTSMG[OFKH`RBPOOUSSPJFQIOOAPGJAIIRLHOQRDA;OKIJV>TRROKJW\HUEK@UWD=KCLLSE[RE`?NZ>GQNR[XSQLSKE]PWDHQNYZMMFSFP]UGOFR\XJALIOJLKLDKSOLTJVNKBIPWJO[\MMX[GIQ\NT9IFKPSNKPOEGGXIJMUbEIEEQHJHHIHJMHCVUUYH\_YSIAEK:KNHNIGHMKHMFIPT^EHPKBZRIHRZALRKEKUKINIY]JTONDLRKJLHYU>FKJIIGMN5LPW=PNRLSUYSHYFQGIKTMCOIBNNOQDRFJ9MFLJRG_GODHKKKT>N?HFOXHMBQFHHASWUDJMI=LJGSQOIZ\HMZJLVADIHJLTSW[ORPPQICEXKQTIBCONQMNQKS\MQRQKHWKRJKIVJNN^XNGIIIIWGEEYNURHSEJNJLOLGYFO\BWIDVSM@VCaNOUU;PMcSJLNDMKBLKRNODRNWM[?IU?DUHFJjeTG`HUMFGMZVFQVWIVRMcGSRREHITPKOIPVMZYLUNLHXNNNURXJTLNML8VQUOMOZYNFKEMRKQM[SNEUJKWTT@L[KCCTGQT?GIUQDJORXQTYMTEOGJTMNFOAORHKPL`QUHOKRNNKMJOLfIPOSEWXPGT6IIMDJSLM?FIIOQK[UP_FCL=FEMIIEXE@EW:NfOJJ[FKRRGEDMGHPUdXK_N]KTLGK\QCFKCCR_JTJONHO@TV^JHJOFGMIN@QKJRPbNCUKFOQHGGHHFFSCCHMKCOTEEHCQEEOEGFGXAOQJTKGBLGXKBOMHZJCDHJVFQ[MQWLEQ=CGA\QR^TLDKNEELGJBKRKPCRROT@BLJOGTPRHOPFVMTQKRUNNLI^lO@KHN;;JOUSKKGIIQDGJPMTUIUOJ_VUFKPKQIRMQBLURJfJ;KQFHPUNQOMYdPSSEPMMDHUQEHMHNOOREHCNJOYQEDWGQVJHPTLUUQNHHYNONLNNNYFKPHR\IJHLGSXLKLGLEJP\LJS@SLRTKTTRVN^LNROQFFPNPHHJQUUOSWJOPMYRKLRQ\QHN^FFGRNN\LEKMFQUVEZIRFJQSPWLPISBGMMXISJLKUQZNJPLMISLPGPCRSI]JWXTPQFKRKJWEJJHRHIQEOQjOSOPKXH\[NALQM@JDRRKROHGQMOPWNNHTPKZCILMFMXNSI@GOOIUNJYGNYFMOWNCOUONNRAJFIQHSCFI`PXVSUQJHMSabHPIMFO[UNVMOLVMQGJMFEIDQONHSHRGWRYJH[GNISOCUTWKOTTSHFNFPDNPTERTFMTJGSLULGPMLQHCSUMTHONQQSCHGJPHVJREGH>ERGL^>XXNPYXMQOJIM\V^AIVTOILPHUOV8VHWSR6EBYEJINTKGJXGRUFXNNOMMGVNDDHCOZ[YDVONM\ZO^PELO`TU?JC[SL^QVPWRBG]GBEPYEPC?JQSFRWES=XUGIRHDURNYSMVUGJCHPIIPF^BNVPS;]PWQ?VIN`HGRUQM\X@IJLBIAH[ONYPKOMCHWFUPQXDFBDB>PEPLQKP\^RPRQe:KKJM:EIETQKSHS=SSLPHRORNNQ@EMKUALPJCQBCJOGPL?UL_JQPV>`NCYQJQB=ZEFGTFRSS^P9KRIXYJIOFV3fKILCFZASOQLEMASIR\D9Q[OEWUVNYRJZNDPENc9JQNIPJP\OJF7ONVGNTNOTRQLZVWCOBULJaQ\S?HU\HYBVBKHSKJHSVL]MLD^MEEVAUSTJI@QXMHQH@HSDKLDISHLaJ^V?C_QMIFOLUOGZLUNMLOHL;@BQP\[Fg]EO9>CUCHYPREKMARC_CP`F]HL[IVUFSKUYVTLIHFNYJLT__LDIOOUJFNSHVUAIRRPAIBQ[EVMLKPQZWdWDUK[PPPBMDMOGWSMSAKLPUSHKUHPATMO@HPULMTUKWVBQJ@DOSWRSVGOKTPMZTPGGXK@W?KbFCVS@PQRS]WOPKMIYMI[GFIOdRPL@OKMMIO^]UPOCL?ZTVHP<[PTVIPLSR[M^WHQ[?TMNWAFVPRUJ[KQKQYVPORMRRRQEGXRO`KKTTIPRWWVXJUFGOSKVRVVGXIQXNfQYUNPLPICDONE?FYTQ`SVQLRc`OKOGLVFLcDEHIUROOJ>CJY^TL\LG^OKYwEPLOX\JN[KSBRHbHMERPOSOJVEQA]NJPK|I^gGLCJh0DTKHGV>DGSPRQYKMcZNOVTGSNFXLQT]LFVJ=KNFLF=N]HNCXJhSB?bH_LQFbHGJFRKHDSaHDMXIVJMXVHOI=IVMNdPCRKX]ICDDJAHDDmWKEHQCTLJZXf_GTXKUC=RR\P]PIFOWYSe9;RGZWTlIE?UYSAVKIYQNGHRRKSMQQTAIMSHPS@YOLAPHLL[NWRTOWOaKYIQRRAKTMFQKUJ\`FOSGZJHOJO@ZMINFU\K_EKDFULNXII=MQ;QHKZ[JLVI[@JNJRSISICOLYAXMEUNGLLMTQV`LTGWRUIJGOSSHSRRLHSHW[TISTPHN7F[DMI_fGRUQYXUFZIMO[UUVXXSTFOCI^TIQFUOaQNDXIYEMR?MVGWHN=:HPPJHDWHZN>PQITOUbRYORLH;NOIOGRLRB[Y=NMTYZZEEILNTUUMPLL?FCX<[Y_WM_LSMHWGEIJHQ_OWFEWJSIOSOEHVS>eBGL^OCYVDUVZSPEF9WTMNKGH>i;HRCVE\QHKMIHSVURTMUOMLSUgRMU@>EKUSJDE@RBHM]IQZK^UGUZG\IFMMIMFGRW^OM]QIASXCXYSMGFTSGMHIF\DHYGFM[IGO\KDE_IJIP;QLHHJNNEB_RcJOLH@UFE@YMSLiGPMeUHFHQN?EJXN\QMKR;KEJHKKZE?RMROT?HGRLEXRJQHNJK]ZMSCHUX]FNLBAW][;PRKP>RTPQ?QTG7ISQJNO\W:JNBHFNJGRKQD\YSInMVSHLJ^MNQUHLJOFCGBKMMVgCHGH[SX\bUOBLZUYRVPKNNCHN9K\YNMJLNUXIV_EE^GLPYSUMUOW`KDOCKBFILYSNhbTUPLL[FIOVHXDJRULXQJYBSCISEOQXKJFJQWLEARUNFNRMXXRKGNLNTKIOGONWXaMWKMTIQRJJNIMHHJKTOEMJYNTNILINQPTGB@HLWOPOCPKKKFSHN[LSKINOKMIJFMGPNLE=YJSMEZUKTGVIFVWRASRQKZQ?CMM=LJLGN[LJKFPQMKQJK\BGNHLXEIGKIPLKKQLEBNZF[bTSTEDIIQNXYYIKB\JPUQJQTYE;OUITSKYNG]RJWQFIPFPJ;TVADXCLIPIGZCSHNFPG9OERNSJHaMNKPRYNUOMGICYKHGFVERVINUZRFE>JDKOMJKHOEMRHEQLIMMOQWFHIMP:JKRKPQROQWbO[CR?KDIW@LL_JUUINP\VEJO\JGTNLTNOLLHKOP\LLNKJNYYKOJTFEPNYALEXRMEGLYGJGESYYJLL\`UPIJOJOLORRLNTNLHIT>P]X>HVTaJPGZKQEUKSTLRXJ@IWTMCGQLVOKVEIP\HCLJDPNGKHVX@WIOOSHMGFJQNDROHSTPXOOINVHLKEIXRLDIUQGEROFOAQSMJR\QB]`JNIJGMEKFCLSMLGIZKLLTdCJJMCSOXUPFLVQKELY[MHLIVQLLCO=RPFM_EKOJLCGTPDHNJDFQDHHLHRT]WIKSICQJNEHUNFSPFQ]SMMFHGZPGNUTVNRLSZRMEPAYTDORWNN^NHLLQdOLDUKHOEOFLLXSSVUORFNLJJUDMSZJXO;VIRJZEdHJXKYPQRJQLMH8M=VSEIJ\SHKIWKTELHTD@MILVO_VRMNJPPNVKRNBIL]GDGKNbFH?eNOMJKMDIJAEJRG^CRbF[`PZHLBUFQJMEIQMEFPWRNBNI@IKIIPSFSNRIARISTUSDIEMKMNRJICP\?DOOPRTHHCTKLAXEKUHXQHKFVMKPO@UFKEVFI?EEOMOMWKRKRL[FUHHMCRJFGM?JMKJH@OGAMEFFFFSM>BKCEVGHTSOKNdYDVUMO>ZPVHH\VIOUXLMRHH[DHRQDaKPPHLSHT]ENQSfJLTQPRDRFTOGHRROOLEMKQSJQ_OFPOWRRNRELLLUDGSJKLOONSDQPNGV\OPJQGDFOWKOESNTWGSCYHMRfSMKFJOMISYWUORRKMKMEZGL>_QNJKMIILHURGVDRPILTIHSESILPVH[=CVRGNQRVSLPSI@CITXMLRPXZSOEJTLMOkNWOHLJPKUNKOXNOKNRNNR?HJGOCMJNS[EMZGORVVNFKOMPFCLQEHK@MF@QLIPRPaRRWOLNNHQLLaHHWXLBIMR[BNGOEVQMQOOQHYCGJMJZSUTKOMCPPR`FONNTWSPLEMJFJKHNKG@NOgAIPQGNFPQTMLBAKZTRSLPQJAIGHFURQJG[AJHFbILJXBSCAEV[LMNIPNMTRSXXNPAPAOP]TKMJQEJT\GPWFJQ\DGVDGROLMTM>NMSLHFR[NKOFUOASPGJGSLK\QKTDKRZIOWRRDIHRXBJSWGO[QLRIIGD<>NSONKIQNGE?NHMEMLVZHCEIOGENXCGQOVMIJUTX\UNHP_NFOY@NPLOVUIKFJJ_KKASU4IGOTLYQAOJLIJ\OQ?PLTX=VL[LCFKBQKZEMPS[MOPSNGOSKSYJSFGNHRC[A[YSMLVSZPPLSIRO;ESJKLYGBJROI:MMMJNLGTIP\OWG9LMGVS]NURIWO\HZXIQSIO]JSW?MMGHJPRILOFNOLOISJHFSQGIQKRWKRDHM]EMTLISEEHPDEKQIENHQDHKOLKKLPHPTUQKODOGQR@ZH?RGENKQEOEPFOCHR:LFQMIVGRIMOINNFMCHZLQHDJLVOII]VMBYOJNIZAHG^S=RNWR@JQLVRFNVFAHJE>OWJFSJECF>SNXGJRS8hCWPONQFACOO;OAPGHOTJJYNA\FJSWAIIFTSFVOGRGMTOWFKYCSGKLGPKVU?U[`NVUBNM@PGPSOMHNJSNKFCOQVNN[@POFJHNLXPFHNC?C\PCTN[LRLJPWTG\MMFEE[IUDFMGHLQ\EFICNKFSRI5H??AKQBJd\\MNYJGPJVLUVPHRHS[^6T]GPWACCAPIOTSQ?WMSUDTEKXWFLLLGJ\PLSSTLGCOSPEQFCI]ECJYSKYILIYEDQTDNILL=FRJCIGJDOWLNBZRD@=PBQHM^YHHJNDA?MSXUD]PJOGLRONNPDZMKPYYCUCMSOOFMGW@FASHUKNLYMONAIFWNKVGVVMUE_GFI?AMNM`MUJMHNLISASI\UBIRS;EVIHXPKIHNPW]EGYNKJQ^OLGDCIYHQR\>XCRRENWREIRQ@FNLHFNQ]DXMLIJILVGTAT\V[NGCFPQWQ>TGJQFQOOJJJKNOCOLVJaLNNTTRS[T@HZGHF^P?NPSLPXBNWPTFVQFVKDIKRLFDX\VMLMHNOP\QD\MMFMAOMCCXQSMSIXHINLHPLMJUINYMUYVSBUFCYQRUFIMGOTBMJPLGPGXOOcPJBIEMPGOlQI]]MQQQMKWNLNFFIKH]FG?SKTJBKOJOMGINMQTYQLJKM[OWMTHIKGPSGZDLMONIQUGIHIPNRFTMHgKHQQIE]HNJLRSPSVILSBEMNSAQLLAEFHNJKMJDEOKGKI:PGUKVKFMKCMLGHKINW`UQQL`EGVKOeQDQMPHR]^BFIOPMJaPMLS]SPMKNUVTJPSDGTCMXPMJJIGJMDXKOMDOLMTO7[RRa:MGT\NKLQBJTIRILGQHQBESLOKQNMHQQJKOOIUMMNR[KNO;KMI\HCDB=WIMUGGM>GMLSJLSNQXLKHIGRGLNTRLKIJ>TNKNTDSMVOWQM^JMJLKMMKOFGQ\NG?S?JPTWQVW;`TEQJCLYEIVPYQGJHIUNKKKMDSL:OMEKQLNIOXTURTIQNRHJOERUSKQJQNMFKROQXOLG@GEJKELLTKR]NTGP;FICGWZPOEOMGMUNURGG>NGL[SKVVEBOMKLJIPSPHYKMJLPNFSJORihesqjnhoqypuu~oejycekikhzjdteu~qoklol~nhnnfl}emnqlrclenbotntjt|yoxmdme{lgzwmkilaZllrqqonhnglpbzkjpwwyih{mtdft^hfrmovtmpyninjzfnpymij^nqivsp{ub]}hnngu|trmmhbbvha|yzghjzsoqkvnkoulrfltifwjqkworswonj\~gdeunirohkzxdam{[hqg~uk|oqvmius|t`}khyusntvkjegmwqjn_iocqxcwwjcsserhqjrskau__wwlvwhozqusrz}oqe{mxtryqnj~evojrw\iiyxmrnsm~yxb^jsvnUhkjlvml~gnpqub_tlWincgm]vwkwrelpnyukqly{eknqjeztpthgftstYddjrsmzppllm~a]gomjsrjvmo\nwnxnruyjjkohnZbrVpu}esk}^gqlhkonubckuxsniqy_cl|lixluypp}qthnfrxtyybrisujynin|{ntsitiogz~e}myrftmgsutfm{szcnrsdedunitnzwiorpigtmlbxxohynvgonjitnmppx}rqfkolvgcgp|{opmniexi{xljvqlnx`qjd|bflnue{skvvhor\hytk|irlqnhr_{kg{hrowzvtbrfsufycnksii{gxnvfuoofwqttpxvpjaogogqqxionphissgtgdkusskiktznetulhjvulieetsmiteo_ssgppfoglt|sknobbfurgdi{vezkne_`jijjmjhmj_fnqcefyuhium`nlpflflk{akqltpcntjg}xnrdm}pim{zilvitiippmsrzghjgvrqrluyoxw]iglzqolpjhm{wclpvgcvhsnqmxqoqmojsimYnuqnpqg{a{dyuqkhwy]_nfuutkvrjsnrifbptx}dqlrmihs`hj\ggoxj`fvdomjxxlo]|qlftpxlkj~^ryifsbxwqdosdgktb^Vncosuoylghh`jkpdjonldwd{ei]nhmoyttsktcfnq{b|imezyr]kytZ|fuc\fkpw|tthru{Vnj|meiu|siyatuug|lfpXzqutywev{tZqZmgvtmYkfrrvzxdqvphsrnwq\gjzzqjmcbs[sf\yoxpp}q^rbdjsksrrftnpciyrqotffkg|jgqcbkrp{gpjrwvhmdusv`fnsrlpahvsjsilhmvfp|omdhmlyarrmxucsblivkdsetlrush\nnelpwidchckesmnjsqpqsqbsiqnf~sgkqm~it|oktv{tl`k`m|{isbwgzvfddulnhsj{jmrvehkqgf|y^hqogifoaqulhcbudkgm}hmu}gogze{bgxpkmqrnocz|f}iggkmexolmtpiv|nkihzors``ozcpu^xjhrwqiistxw[mflrh^vqggvuqlkpiqioemxomzltp~kjqqizplgtvZrqcbkjskfkzy}s_x_jmjxoemgadr|xyjim~|jiocceiequrgo[rpw^mnkmsy|doggqmhkilyebknixxqemqplorynq~pqairwpd_cpjqs}xnsfk{~isrmuhnwtilflbtnhaougllwfmo^gtn|vrk|mnzkfhioiyscilh}kpebseildoxrips|mwkvbatnkpzwejvdtrhesfurprmifjrzpuruyvXrkwqzhbcllqtinmlbkbfbninqjlaplkyujlp`pf{wknzfyuknsbqnxqmqxzmbyeigshxolyui|wtkukgjkmpcybhgji{ko_nukhefjhq_`zscm~rcnnom}ogukqnrrmebdnhhrorytliqze_jtfxTuynpkksywgnqtkwnmn|ewgu\_smfc[mgwtu]sfpmcn~aolhmmjwtabcgtqx`heddhg{oVwkfMqapiicdmqswr_bsbvntikko|nhlijd^ajcrgdapoigonnmjl\cupf~sjykkpkZlvdmd_ncss^{obigjvQkgidzlchjsum_jndyirxioedxetokk^lZ_hmjpiik`edekluanldq[le|naqpe\nihlxwhiUcbYn^ilwefpct]eippdojgcjp_jt`cckgn]quffoinropZk^pripsqrrzqrljWXi_afn`bgudzcvlaf]R^ghgkgdiYkhmnedhc`bZjoeiblxhoof_rmfyfvqtdYisgcxjgfg{j]npbp`wxrekeieg^rdkceb^gghhadyfqnslgdgqqbUe]ktoquham|uZnbqjm[xnperesqgujkYynypapeXivbk~ng]]ypwfiotornltrhgg]ktqlxyoXvljfgslnqmlouyappasoasznerqe{bguotmwoki_sznmqvvkdwpebvjjil]o`gjpche{ycuerirgre}ionq~kxjrmblfipdit|wmnjvronjsrgjeetqsopvwpfogrkugnkdizhljtswitzuo~vltxl`kwe~fmhiajyrutZ]}ilociXgkj`uqzvvvyuivij^swuppvrjntqqnmbj|sbqdfxeduuohkhnohu_knlijpheprsjzd|xwilvcxqwigjjsffxhdhozkg{snnclz~vqfropw{xwsnnwlqwr]L|hsuvtiprdth}aiwnlti}u}ppxpnppsyqpgilssswfcqb|}tlmojwz}jvy|qjquxxtqfZywnvyyei|_tkndjpfo`ncofslogerofsski`jorxp}qtnlnom}oqguzkk|Zvmva^jzntymolpnqnzxjlro~htkswncnnx|kpjdz]oxsqvqggimpchr}loxyiwmcpilnty^T|m|lytkb`cimmjqkviyypp_xje`x\wfuijpvko_bosgkmzymqeffd{dhetfrk{l]xlj|nleZvydhxnhx|otm~dwtlovki_nlfmrwuu}jiujpimyetcwptonpmutnsibu}vttjfkory]rvs{pWd`mjxfvpdoqknnw_ti{y{pp~zv{xpyrxn~vs|z|u{}yevm|mxysxp{{jzry~sorsuo~xilrnu{uw}|nz|xzvk|{yyztt~v{{sun~zyuu||{yn}yttssu{xv{|wxp~zzwo}|quxpy~oym{}o~ytzpyzzzw{{xyhzv}lwtxn}zurv}{}mtz~nw}~~{{w|~xl~ztqzpvy{ypojs}bqrswwuuy|}sy}unn~{|ovrxs|~p}rkyqwzjivvxetn~m\tcfigfqmxmuimjrh]u^zsjojkuhvzlrdjqgffqlgqyqnqqdzkk`y\nmoujvuujooyZhlgworxmivh~tjejk\}rhqlbzz_lqrah\ctusuqphm|rqmjf`zh_eptojqdkojivwiwjoxufpsZxv[raksjlfvjqpv|nnowtqznsdx[nuoqvnf}be`f`ospkpueq{x[fnjlolpsoeuqtugqkqxunwcobog_heqifi`dpunotuigvo\]wo^}qnqmpropkjurfyp|uquhzuquksuXyq{tgagllkflhgohyrwnp^i}odih{{uwq}qlbjpaqZrrjrpisvxrxrr}vvtfgftwwqb|dpjpmo`i`oxkyzmtycafzomfa}qbxmjox`apfnolqtenqnckmjwfle~qnaxqrnhduhuiwxnmvuplryps_twkiyhkzsmmjffyjyfsiykqidmqlkhptlqshmmyl{wpjojhje`fzmrnufOrilqqfvfok^~pf]m_ttp|dmigqxjrejdfttogrkplkmpprbtphwn~vculidponukvr[eakzmohkltafvwdlfuz{^lmzyqyhs]frrhjzwusrs{m}kd_hjoeu~rpu|kykpffrdwqtafw|rgtcu^zq~{bnflmnijmtwowkjnpqufewynkp\nmnZph]mstrqnnsngiytmowsjyqcgwgcucjctrm|tmkhzqek|le\fhjsrp[dmqnqhrmrwjqovopyej~tti}mhmgyuv[mqpkutmkrsfrjhnturbnkwruggzaekwiqejiuknm\rzoqodbs{{vliqmZVz{ynkwyrxopvsouppwojyokggvinwvyopek[ndslmpiurk{spujhkixm~|uq~sfzp|j~vjwtlefefqnso}tctwii|kdmmbdhmuiioz|jjhp^kgkd}}oqot}lrcwk_xamueYdmbnckkwpzutc|~tnvzcj}dlm}yjjr|lvju~cqifpyqu^tgnvarlpmscaroarujqtouhemjunudkxqci{jlb{jajYcfdtsowlsd`ejqjzeb}{kqxueb{knqkwsnhkcggdwheui\mxmdqeqcskwmnhpvu^nkk|x^pupZmmhmsttnrsy~iiqxvitcjw}ctkgnurjdzmpg{fpo]i~finmepsvn{wqkpgiqblzcj_vrpytwwgmofwtwmxebrmshzdnymvguysmhqkuv~jzmqldoq`}ys_umekkjhmesqnry`okzpstgptgracoxqpnvv`wey}qlqhptorlmoiqYtw}rqplgl~yklmg]koxvqnaqpgvz^tnoljnchuthy]}gnrjexmtqnbgjknaqnu|mjoykokkfobxtvifkpiq{uukgsyr\ijnztpnkvpln{gvryripvjood{ilslkuyzmhkwqrjaqmidxufimmdqntzuhktlsmosts~uqnjsdrrxeygqtlstprwqkyhytbuwijw~]kxolnikucjshihnqvplnrklildpnod|sfok|gxhblqw}nfjjfe`\rdtgqtherdtoemu|ogkndyd}}g}mpjs_lpogvmfxebovgopjhhjor]_vyjgjujantnjq{xjhdcqnjfkczxbqvih|ltemfxegrhypl{f|tgZks}{ikuyg}poqpgjqdivgwqpvb`ppjeenffkstgfpz}~cqe|mevhptzuhdijmmnihm|hjQifho|rietk}sbukjspk[oblhmf{ulqtxypnryme|gihv^|sgoznxxgrc|unxsvmyskcrj[o_endqxjama^k^xqlon|vn_hivuqhyhnq^nqdleemvavvXlllwtopvuhrlm}kgrl}pqdfjxpeuxg}mufjqenfwrfxu~oumojllmrtsz|trpjefcffpqjatencd]ln]ekoqmiqiiisu`sqqXeecig[}hpotnvicqpjzpqsagbzmlnpxnojycfotlZtnnkksfhsqe~osmmigknmu|ptn`slxmmnskwwxnfiwewvsqink^v|ljir_oqhhiivkmqtmh|mp\pv|mnsowiqksjo|i~rhftphnS~tkegjnxsdtVpfras{pgsonuxrnlrucjpgm`otrelhh{ojhlmv]swtq}oqyhsmkvurj_ujlcgdniugj}herbpuqvolym{wxitlk}cw`bylsi|}vli]kslypirufpdyqhjvurltqumo^hzg{qxiv{bowppswhilgppncnwpriprso^{dkn|spglakeb^jdwvsnhmnjzvuctXxpkfi}tdetk{lucnoirgupq`mxoiibghdzpnllnvia~tvitubm|jq~rjobqsp{mncuzkpnnj`y{sgmtukg{kkoir`lqqgiyufpdolrkpmpeukaqyrZozwjrknkxjn{p}{jmwqrlopr]i`rmxniiip{hbtbuzwin[jffyfhejytre^oabxrhwxzhk~lyfdzd|nucpkxrno`ipjzoymldvomtvfmiwpnok]oqxsdz`tojhfuvqvbqpjvrycswnolknki{jvforipyimcsq{rokkfuifokihm}ppfrorugsssgqgs`ilqgiugezh~Y|rpoprassjsq^qstrdmxmptjkylnasx|fcqf`mbhpumlxzmh^lznuv{nikrrhjkeprls|exhfi|r\fbn[qX{q}tmVT]frslcmdfixvirrvymklbrvlpflog]_snbghkuqqja}unxdt`il[zyhtZj{pevo[moqadpqenysejspb|yag^qqgytvg{vkkomiojdlk}rsnjikghrwsmn{xrc\lioqgykvnpwaruainsn`otWqqf|m`sknzmbZhgqjinwspqy^nqstgerqco`u{j`kojilzmlvwwqpjpplfuqmt{witlVtneslptvsl{aptllwdluluplZsmlqywu|rhwyljjjphhkydx~}yjhdksjd~qrostpoja}`jzl|`hq|azxbwrxlmzo|~xtowuieu{^}r~ypwxfuxvtwhfkfglurrsboyuspiqmz\ufr}qkznupofqeiyYkv}trsxiv]whmyoqfn~ik|wminjipmjnpshrndvup{gsmusvrtvlmvulqk\sf~nsyg~zqtfspnclpuj|kkhwe`nuqhzzjirppmmcu|khoespdgyultxhrwhgiokzigbucnqxomadmgsvptovqlnsfihpdtwp{j~wpppv`gqgh|twykcrsqsuossfy^jnqrs{ogsruppjiiujqjh~q^rljrjdwjymkzniu_gsovhsothoikpyvjXhjpzfmuuebiukzaesmjrw`trkbmyvoiuko~qwjwrlnjqh|hezxabbniwhuikvht_pfjjkyml_amvossqphrniknmimgsctknvxusj^uursxhccltjrsh`gsxzpqvblxwuyzlkgkvlbpr{rxsagefetpjvllxoktinl^mq_iznepl{}bckt^gjhqvrpomttkpknirmmimqhzmndnelkso^hfttsszmhgdskwnyrdsgvrp{mkhl|wntgvnopntiwlslgowppdheibhprrlskjqyymiootjfsmqtmqs}zwflmpb{plkimtpxouufzgjrvuldjmjd_psrzks~uzcniognekanoxcvnsjrvrujljv}|o\yvaxlwvhq}jgpgnr{psurogiwrmxjrdh[xkolscskesnibtj_ihoqhvkdocnynprzmamspmejrxm{n{udXesusnhcoojwfncmtlkhuthpw]dswxwxwnvvgn~lhq_quorhzfl^po|j|~mjsthxugeb|kwuroeydboyj}qkhzsjklkthiinkj|enolvmsziykou~nv}mniznsyxrdvun||kyljouswypmwt{[isnfv{ctqn[}ylm`kqie~dYhuujn|tnqglfqesdc{wgnauhwqp`zhvlvj_yzxk^simbofzmvxurnlr\mwtdlom~ninpdnu`tjrrotvlerirffrlnmivlqrzjfufh\pr[fz[t{ovrsneob{qtrrjfjp~lirhj_ujxmYbsdXyhqq\zxscntk_jguprnUctuy}ldntvbno|lcm}qv[qokgqluvljsfb]xfurdpr`jtz~xpvtzwrtqimuqao}jen_nphtxpqjstuqlrggfoigjj`~srrflyttlnaon_sqkzaimuiqnvxiikkbecwphosmgg}dgrssnpxmZqwqqzirlnttoixzniqpkk\xrtnjrvswechscnhufdmq`lmimuzwoqkl|xWvfuunombxiotrnfcnyyotgkmgm_ydozsgzvlifuvptllmnquxqq|kmwvfjlf]iqvrqtnspmxwplihfpfnnmuug_vponxqhctojofkfbYq\^kltrplnhmditfjmgq]jrj|vmxguvy}g_rwyuuvxzcwvri`h}kihjUdzu~l|{jlivlpsvl`fjjnvo|c{oqj_rmmmmqnqoyngqg_}]iwckcvitpnkycsfoml|azmukbsxgprrpbvyoyioh~iteZqtpwc{umjluotxdrtzj\txghqthrmpvijleslsmpfzveosle{erqxkTssnddrtpihmkutwanZx]jwnmrirz^uemwwrpp|quwwnomtvyqmpolktku_q~jq_tpdyxje}wq~mmuvdcojpvrvmZl}fpiliweyfletukpk|xw~]c]xqglnroumjtgmspnt{phshzlXegomllwltngqkf{gihk}`crembwegbmfv}ejtuxyqsnkohiiytrqlhhkto{wmg{eksn{thxssji\skumklt[pjqrZzhgmvsm}v]t~qodmffmwzfbnnqlgojhjl|thyidkxcchjtiw[|\rkpblrqmjyjryltfqgissbyutrmhzZi|el^jpvax_rpqfjonnhbgyiierjnzphfrsl|ipxkyub^cllgynkmgrpqpspelmf_pomkduigjqp~ngrqjjdefkahrkwcgv|sj|vrrsyclpkutnejqomnvclwlmg`me{qnntump\oimldpvm}qWj^q_uf_ouxmblussmhpbeqgmm{htqiujriczpapjpginoospt_}vpf`gaad|sbqruuf}]vk`wbusnkxrajwun`pp}poetebotroxgeYwiyn{tejllYupvrs]x}g`tntwttnghjYpyesljlpr|xjes]dukwnbxsrgrj{dpjtnvrmenexnjyurl{qyolps~qhjskxdoejuno||yatpsgsnuxmjoirudnhhjenvjv^prxnsmnsq_ih|rqUduroisqmudikkwnmpkxjvoiohnrl^_n`tiuzs}gm]hosfogvqmonpl]~hjqowbmthvrurhw}lujc`^dxlsvznrq]kkqiZxfaftmomg~[sjdgel]mmiziqrlosyptmwsqgeodyzbsdsbb\neok|kkihomwiswjpvx\lhnhjrpwdizoqepidjdsuy~otao_zfdrikolzu{rjs|uwjhuayjr^{qshddfwp{wivokihlYw~mdl_ukhnezmutprsf}qrlecvl{k}envjnqYjpxotmst|rsubycipnwoaadvosmpcthhhujmteqzltvgpsqj`_buihtrqr{zlem|zv{kuuowv[`tnkaztlqfkmfih`kwq{juqqpqdxiqndf~wwolvohnunyfdwaiopoln}|jmoywxwhnmjqzpowq|{vsphv^m~hejna~penukwXlkdwqi{|lqo|nqqneoyvoemmmi{vlklrjwgegh^jmxezebl^lkoqxvfkhuzdvpjYqrm^lokf_m~ztarykhsqmlisjvkhekqsugqa]olkccj_itxkdshipohk{bngbigmswrhwsptfvoomcoc~lt|wzssdp{qu~vknojxlmetmsd~eovywxcr}fnntvynsoopvho_jiqgpx}rciwyffgyonurwm]pswpiitdqup^sf`nkngwurvvee}oldw`{jdjqntlexqfvtz^gpkbfixfwprqni]dfs~lq{nyfshylxwjolhooimphyrhrjqoed`qjqhaulv[qqkmxjk{p_s|wv}fxdxruinlrsfmq^ne~smjvrtuwgjk_pwafypm_uk_rblxntrpnwk{d_qnsq{|]q|ht`{luyut^zswopgtc^imwigrkellul`_tl{UjgtfwjlnggumZvpsll|flcklnv\jdm}oet{d_umfpcprow[ihmskebs{nmfhdjeZjcmknxoqipf|ps[spvpdgoirr`}isqpxowcszrmgoqmmjisfawgkyq|qdghfjmnee{qkmzsi~ZoalZljc{og`kdvxZnV`koswywmtkslgnpwt|fhmpbw_mgnbcrkwrlgeum`ssvrmkovstnkt}plhqkylousrokr{nhOosddtlfrsulostmorg|Sxqrfiw`qt`mllnnftmqmyprlnprbz_rhsa}nrj`|jsifpwjr_{ppdtlfrg]mmcsscdko_rzjmo}ktsxdfkqqp~kq^iljccfqdolfnpirjrhlfab`dkosgvmqvgnrmipicpifqkithVnvsud}ilmknif`ayhucrXxntmxwtvtbzTlhplmtq}dgxhoibkvnjjongpuZqddjfgmyncsuk_qfyjn}^jpsrczbka[Ykmn}zg]wwqfdmcoxrt~ofmlqrsukk~unouqkzpeorsvzxo|mnv^nmoifrj^ojm~_cijzljtnugsrniwncohx{zhcqi]l}psumbtiq]usqj]}mdpvnu\trdngblvthqbgie`llwykuj[]W}zwjl_pe_pakl}guo}peiz|xpymjttypnrkxdahjyrcplrtlbirmnr|vecn{jjp`bkbzdsjsjdqxqqlbZs^vskZnoztovso|wwrf{pnsbooymk|~m{je|ieqexornsg]kdkxppngghm_odbpxspomj`tlielmjg^tinomjpkp\sksgwr[s_vmmsvwpn{rzmsjpbtscfqjjrthhv`~erplbrnwdsunbsvvsrtihuhoksdekukdwstqfstenskWlsohZapl|~rlyqstgiqzcqugkpwcxzxolxorslrsooyh{qthflyyvltsmqlxrqsxtuoiip|_scv~rqrqtplmppvyvotor}lqrxqdprpyhjlnvhketoczmlcokigsudd^ftn~{tv}uh_uwhvw{wnewpl}xu]^gxujktmjnylopr{s{{udkupdeskx{zremlq{myhmhtzizegrnhodshoOioghnfibfr~josvmyiwk{Mnh~hsnkpfjpzhdbuxq^jmgujpuhzwpqolfr|iuso]~soqa{hvkoigb`ynxhoopbbuolvunr`khutqufduis[duiamfqrpkyqgezpn[ehnukritpmm`Vsdkwbl]fiZ{vqneilivydoysr~ow]|xknmgYki{hgiig}bpy[yjynxtrnjbijgwmpb^tbmvv[e}gkvxjptqsmujtscRpm~mqkpy^eg{uVu~agblhh~gmulwW^ox{eoyhspasejvrlnv_akp}`{nraolp}vzkndqjjewss{imeVdrgurimcfon_axxt{noXm{uym{hpwjqspprZneoo`cYehp_ohkb`^degdrkUtxquytxhyw|tj\jaqoxxosbqgheerwyg^eaheba}Zohmjdmbpwso{mlu[ej`}kxpoq|qli[z}rjlrfcmxisvZirhyvocqsi|ycvbwirk|}sceifm|cnruc{wf\tjdjig}tpnxezonnk^ntn^eotchmnem}nd}exvivrzdklpgltctnuqpq[nc|oh[sumwlvgohfkom~nsllqlpugyopozwpi~zrqdiyinjnp`{nznbxesw_}gymijzrwkohgowxnrpc~kupdjtopsk{yesojjnyupqxpf{ioeptpfn^~jxXsunpqjqsqqXidqy`ckgmthoXdtijsyy~ypfryogouittcouer{mtd_qxupledpqtx{s{umxkpltbmohqbiimjwnlzmfwdlqkhckje^ouatyse^ptrviif{kkg`jwcmrgsrijgnjhmpg|fjswgxmkkuugjsiqkydxkxhqnYiinmpturtjpfz|myhmcys`po\lzrsxhck~{mmgy~nrnjlqssvfgwmthatplbVhgkpdyrokuopcck[ikqcmuonrgmqrs}jeb_umojpkpk}lutdcuimxlslxtn[hzmgtcswfekpymtnkjhdpuyqqqey`qrnijrvooqqt_rfpp^pg}emmdl|lsncrmiuoihugmxhalijfpltoWvjnq}j~xioolgfejlvhzrdqeklcsli{mhsoiwpopswpfwodoXy{ihnahopqmvmmcqqtmsla{ynoivwtpjqpor|noppyqnpalmgjfxqjdhwj~qqxmunvytsvrnvU}otemojx_ishbu|ygwemjYitkwnqxbnqb~ngopq~bi]ss\fglrsjt{ns[~[qpesikavddqykcnlndbtp^sfpjxopl|gjwypyzyspoajr|f]phkjsokiqlqhuutlbppqf\vqpfll_dl]kvunjjg\svvgzsefo~wkhqcimikacmgdemot}hbhyqrYaqmn`se}|mhavqejrssljjtjoenewzUqhbvne\snihnmir[g}@zlag^h{nlrlvqfjrlgs|^qrqlsqmvcb_bj`ilppmvrsjjUpa`]bqiepjnZbr^rnypnYlprknkixwlhwsfhe{csd{lqpvhfmrdbw]lrWhes_kjSqsg|aln\^sloao~eosjobfdthzdkfamu\^o`tldsmmhmi`o}oxasuj{mohqu~gjXyakvzm^lrlze[wh|{bwmplmnemcVh]kl]lbfshmkkooqjzue~iepkrsepikhkcsedrmexthjhnajvlx^nclhgifmhqlsfvcmbmr\rsbler~nbed`ntxkXjvraddnpmdyljomskxt~cssyf`wtp{poUmgnlsxfpljpjmijemmvhowvmrvp~najfpp]nizd]q`nrqzb_nffzd[mmfjld|tjuh_rnm_guqckkec`lmnXeWsjmkpto}Wpllegxax|~`plvzymengdp{_hZlgtd]gklpmklbim{skd^ngdpogcorvjxkusvwz^qhirdjXugdqi[jj[ndvZd{sUamUsqkxjlq{m`nntgysxpmrcbuocfvtpxktlwcoidsirji|ohnwg|cppnlrwgcdomxnqsgxwyk}oorlnvflkqe|}{qojtx{{g_s}gWn|wdt^fxgmhkhnoomZarwur{qumtdnhu~oulnpv`to}pjlntollfwshrmwgisjueffs]mqiktntnp|mjoi]omocrs`iisrpwmpsvycgufhd~mfi\slqbahi`rpnu`cqywnkvvrnrpybtmclpvpuvun[qjiixtucfrsslssUlsikwrkunhxjkXyxcqopg[jldmmc}|w]o_kjpqfbhlpihypgvxdx{Tsjghsgk}hrxssnpi`p}jxqiljmjioyniglacczupv|nhkprs~r}kmu`wt_jikoalbYjpvjfngiqno~Zhsk}eckiqmuugojnxjy~Zkq_wq~jmovhjoo}vkpi\xfbmiksqgstjrgwqfpzenVzncuhreo}wylyhrpcsrzmlsoimuggvmwriyrcpvqjtk`rcew{`r\xlfwtpu`r{ffy}mxdh|qritiudu]syqqk]nifgmxhnq_vkopijoerfvfhxwbqn_apgfvht`mxpzo{fztjwihrlsunugnkskxtryxbplfyksio^vtujtccwuztemqurobyymreejyiyiqhforgpoptmqiZv\kcjtp}oxmninuqkm]eayejrqnqvgq|kgrhagoqqypqsg|leekllruwnhf^rnsnkc`irn}ltpi`f|jjfnuwflxsuzquozoz`fgvfb]niplp~~lttxipavfhfqmnnse{fkjprrkrmcwypcpeufiqpmqerlhtoq^fxgvnlvnqn|cbnormrqydkgzhxsmipunussubzaqacflfpsdefnqgdWn{f{vkrtdrsvxfgf\ouljukc~viZruaoi|oogmi{owobhqfclywvfpi}o[ikovcp}mncwnZelvnlk}cby[rqpkdpkn^jgliblaoucrrtppsnypunxjgsx{lwppxolwrlvubwvlVrthegc_yvljmj^oo~gvzcbhnopmrxmjoYzcgqolhhikrljrwuojizf|vufqnspylkt}iytvtgrdcvjig{ep_ixnqqiigcgv}riinyqvk{j[nwy\lnuwxtnketchrizqc{bt|p{dnpyoikjkklcjokoqzuveqk|uqagt{enhnfrwjpqtopkuauulsdv[hhmocsanvqmf{gj}xjxuk~{ajrntzdl`hgrpjt`x`emwoy[w{mmzfttilnrq}gpcsal`ngimpmzqvrtguuw|jyphrilvj`rqjt]tkY__tp^icl|nurtywb{lohnbsigufkghbrkZcmxo`hmjxixq\hnpqhejsZopywq[rog{e|m{gqms]qk_yujkp]ptidiilrdc]s]jpmtd{{i~zmoYlpeeqxgjklagfgjrderoy^jsdlpkejijnhjfmingljencufrhwplpzmrpUomdlrb}{bmts~uk^fqpnju`Zlukbfqdfl}srnwwiuhwhkfnjtohfrocxopqtemehtirkic{wr]lseuvjrshpvtqzuur{}jo{_ojfxetrpuqw|ostshv|^^^ibkh{woqikknzseZmjfse_rdrvxwv]mljqpppfwfkksnvtjaptrhxthtr|dihqakpoqq|rpkjplmemdjtlileipms|rltpsqjved^o`kvhpwe~cohqdw}mmrtyap~ruwolcj_xnl|rhttvptfuopw^yioolgufqxpgnsfvom`li\lifgp\sbjvqnoosyatmhkvf~ocmmzyi~vuxobgsln~nen`prxvtwqrq}l~uozyqsnzkh|wqmpcnvlklp_m~zqqghpmqogmtmp]soniYwfixrhqdbpp[wooynzp]r|~ygjxsqkelgim{kortzo{{{pgmhspijsh|xwnjyklyi_]}kshbkntknpuudplpwppytswmkVntcqj|Zpthknivagyejvdmnlh^prhjnnswqvs^en|{mskrqxogckwextlfgyvsjpwulf|vjaxk_oqol{gtgzitngjxdptft{efTvistx|rpnwxuhrsmvaqkugsfcxenwsbtmzruolwrnpeigwiplrjl{zqcmgihwruqkwsnde_njrj^qhwssrlwtnrqmsuyrkpjjjllp]bhylwaZqnlxwwojx}sbhx_kjwmtmpqnlolfuuvpzhgbcnkmljxvdxwmihjeinw}qjj`deqimpbigfjoqgpgntcd^fo`f{gYfslm}qeos|hsroqkpvvgkllymugrpy|rjgvnqmqslfrptitstlus~kjnshstarjmwgfsbxoumrt_nznsummfwni{opwkktlxeqfvyvbenncqswvuurjdjoijn~gvftqh{krk{mq}mZvorqsrxsitsr~ncrm{nppksoifzp{j}sok~tuto|iuc`shkpfmjjfuycYpspwwioirjojqpbgtgxxmpqnhkmlnhdosliiahletevmmllqffn~ztlzyozqhjmdlhf{mlogmqlrotvqzpuk}f]nfktv|gfisrqncggpfoyxkt|sugnnqadwcct[fsxTvqnetooosfsyjqm_tudkwdz}qq{rpzhrqnuylphvrqqpcqsr[bffzyoemsfexbaucvrThl}mqljqxsuyssgtjmfiyjediynnj{sqscyysgjlsg|rjmofwe}noal`qvgomcrsuc\myjxfoftxwt{flqjnjhkhskuqtvsopv\rjwrmvnmpzdlUs^u^omltjwll|}lrssgnnpikuxqrcup{~syusznz|tlrgvfdhgtqlintpj}nyis{jf_s`aujoqeksdieokyspxlqrkifqyrbensqlc^rpqtqpkjdxtwlhf`slfmspbv_qnfshaz{hi`aehvhkwsf{otkwp}|vbukm`nrgqoxgsoqzakugrpykinmb{pgg}fqr{l{qht_mkvvbkozmmgb{krefwp`idwrupqvlrkecjpp~pmzliflwkZgdghbj~kpldoustieslmuzkywhxcsgyh~vsj|wlbpx|xcmoq}|lxerzijlx}urmimzfdqerwmgko{kwjmu`pdutdrdlknhokiqnqqxxgvyhfqyrompzlyxtdzppr{athUwrpwyumzhmqo|tcqoi~grscogrhrjopnzqimpnt_lbih_tpzrvokf[wr~zn{`tkq_yl_zpyto~zdcgvrhksqxporjlTrqlprrob{qwgjkieknxikqvuh_q[pnyjprqhv_kntrernkttkoejfcdul~aw{fphoqpynimh[_wxhhgfqdvr]ril`reknmvzshmrtqqXqhfjlyyrwjxlyajhcrpkgxijkozkvbei{|opnbhvcpcgrp{dixsq{prxeug{kmhXr`{ruexcujlfnkclsjfhsvrxtplonggftngnqoiwmhqzfllofvmnghqjjiiucqolpuvxvnrwlzkdkgwitnwtuzjnxr`lsthqg{r_taylln{vklunehjqnp`esp{Whr}{d}unZjysmltmcsnqou_f]mnlorsl~\bnieun`xsnirroysicwrs`tlbvxitwmj_lrv{t[brlnjmyb_zef]movxqquzutqwnkxnfizwqu_tngznsqempjiffrts~uunllh{whtymkarkrniptvpjuse[{{qfpvlx^pgvejgzjlvYsruooplxsljogabokpleqtvjorhjemzhgcmxzgslo]gc`chpxkaanwvjfnznf`mjugqljuf`nj~zprpuqmbeqr[tjotxw{{p~snzcjszyxckvesomyt}po}zsuyqxduh`~oe\nojlqwygqnoutvclgwtwokfmjnnsrqjqvsdwhnkxutkdfzhoikwkjwv{^pxzydonkpsomypk`h|plipunnkxhkrpi`su{{ufas|zkqupqnstuqx}pgltxqifjqucpvuqowdojmirllmwsw{t|lnvpfqluqskenjyntggzpraadrkc^lbpslenettqcmyosvsmuoqznozvwqyqpivfugu_\jwguhejohrfed{amovkox`gnivwekuymojrtlfturf|vl}avtjksqeisxvl|hlfejewppeuyegolr{ihj}cnipqlhkzksby}oo`uvvtamopwmhrvdmqfn_`dw{tooqtphpy`ebhovshty{lksq`n^i^{stegvxodljgkeimolbqnh~hpotopucxooznlsbp_dnmq~xjksjnxdxn~mwzy}sytsrtpvmzkg}hoquujaujlosnqpvvjkcgqxepejuomyq]omj`[pw|iblkjqgjp|tsrpozuhjjf_t}xzzuvhgpgruzhqsygvcljcbffd|ngpflpkip}vbkuskmploeqnhyqn|oqdZdo|dvk\ejdaygbjonp^gkwll^kniaqwzprrri`{wzrfms|vjof}{puzwmkppo~sujp^ikm{fm{lhtyrmknrnoosds^fxobtbluhmwnnjrhqvlyinm_hvqj~wimfrji|o^dgtpk`dgfvhqywknpavevivomyjfewhtuoeh{olt}itbgjkppxoxw^ohpqtlt_j|frrkqr`d|tr\slzsg|hgk~kjx_rqlrtwapnopnkzjsihj_d{pop^oxvtkprktrufjlihrvmjmyia]rszlypmezlphi~wjmveqvmvkjhsc\}qyoevbk{msvdcynlmporrikgh`bmwogyuc}mcmr\khftsmntmy~i`x_`wphuv|ivowo}r^lqwmnh|ohgsmhawjjoyvy|wycgrmrexifjxwnvldkogerqnli|rv|cgjvtjhgumuoninhpfldrruksodl}fpwnilojciwqt]sqr_zkqzhpqcrrbrtufsjciiqdtolltovxlqottflpyasfipinlei{rkmjnjtYljhnjmksogadfn|jtokkmx|r_yitzmjqyqhmc^wwnbmhk{kgq^dnvZhdpeh~g}edgo{|kkfwrc}yycujsnxZqmejpxkkqpn}v`|pgtlqlqhztjl{`lphqnkqlytlqojfrhzlkpoksfgkw^pt`qormhvrjn}ij~plqzrvb[nldkFfnijv}srslsufglxrpbswssmfr`voTaymhlqlblrXphiszsfhthhjsagnmoglxogvngfqcdejwokbsrzgj|esqdt`imrbhloaeeevvnjun\poiulnzsqikZjjjpktqni{b{heuptrsfhgxsjhvdxpqs{mtijxq^zvynyppgqdyonlxdknjjoxpza~i`pvrrke`qluonuzsiotlgskpjtuvmxvkp\~qpzujvjxpgjogrlymplWidqtpoogxnl`mkxp{pfwjl{x`phldvrnubwtvphpvwwnuferuh^kvzhmlwjpimwjbn^x[uqqgvtmfmhjw|nimklrqaitirkc~ejrpihynjp}gp[gufn}kirkwjpryhqfriwpxafpy{ydr^folrlodsnmnwicnyyproruwhtlge^vmzwqkqbq^ayyxhgkzn[xz~hiukn~ojpzhmtmlupqgr~jtkatqltxsrjrefutci}drkncke``ggchchzoqefpflkslfqfkukggskqgVgup{endnl`mlojinemfmirYqeYq^ujn~uqlouwlq}~ndl[ikxpequnjw{dsvctxdvxs}oevdotdchwqxklrpilvhekmYhmtthnosmdpysuop`sstx~rkmuwp^tnrp~ow`pray|qqp[lhhmvqyhmonirigbn}mnp^imyrgpogputwpns_fk~dzqzne{mlrwzkqflirvtyvzqlzcmj|jnypl}nyisqu_mbji|tpsxivl^mgepxjf`sqslxrctpg|vjfmrrrjtdwsspi_lerxpfsqeltlboxufmkm^tzpocvync}hsjfrd]shu{hrn{mkvvkdbfjZlh[oviilonvkro`glnrsnxe[thywtwshgymhuxmdxult`i`gohpqqmesr{miit{loppiir^y}Zitpqsed^`aozqaemsyqkdveXneitgYvzpriixlnkgkwprqm}mgdug[ebfrpt~`jwusi]lxo_kq_ontjplpolcbgomhrpwzahlwoiiuly^mqjrisb]uepuw]fth~]jcfqkb~ednqkiemfctssksv[prWqjdcenunetuggehm}isxdtbiyty_qktuiiwxiph_zhedqyX_~wfy_pudpyj]dkej`X|wmmlbjwwmqltfniip|g}r_tlrhpqmvoaav_odbquclip]kvmied~sl``ptssmeejbi]`mnnxpYetshtopyhgehwthyxmpjqjvm_jhbu|dqfV{}qrvoamdundsj{psminwjnck~smcq|jnucapmjihiz{dqpxt`omjget]lipujn^f]r\px}Xfprnlt~qlpurocm{womaYnvb_o~vm{mnahrsighjpnwhm~hg[kpmwjo{igqlvr~eddytgs``pk_omlu}drklwvfkb{khxwqotovncfgbutxwoylynzjm{cgzof]nzuogfruh`vahfhqynmurdt`o`haljsrypejihiktjssumqkusdkkqvhlypcnwrdnqigx~nyoz}mwhrlu_fZ{najgoo|rrusomwc{jc~h~mkh|_fsnkqfnzksffns}{vysmy]gxppebszhiuixwuwjlujtkxkjwr\^_klgrhmiovStpzh_xlfeljpjqdjqc|h]ctlwdupchrddklplip{udkqkv}pqcpmgeomkwuonijlm`uvjrdrollyqjooikrh[ihwlcvlfmkgqrutyf~ql^jdof]ycrs{u]msuqlvdmdtuenmjkstyvg{_vndupltkn`Xas_|doYzer{prxdeqbdawfvlcpxhikcztyduwkb_uf{m|{dl[jdnwnp_aygv_lj{kormvmwuh\qj{pp]q}rtbdjcmwlyffnxjmun~lt[a}ploo|fhm{znjsppfsouduohcg`zojthzvbshkzsn`mpguqjdnliqblgdgtrpdt|oliokpjspzevrmixwZj}^muj}rzgwsqvjxyu|xfhc^eollrqbsqmxhugshrfmqd{fjur`xmxmotnoienzxvvixumWmefmpvspkrzvpp_nriocpjtflop{pirimjgoypwrmjjtil{tihizobqafooilvpmmsnmhujdhttpbhfgvcqtimdcqogsqpbyknu{oisWnoxpbZi{eltqzfoimtZul{xoos~q}cbm~fgrpb~Xjokpyksbkg|`rpvitjrr|hhyphr{fr}^ureg]p|wkmyqkqqkiuxelvpqgsqohmudhlvt~fqqdunv}srwpo|mppqemmrkffy`ihtiji|oqw~eivnn{kanttwpso`rofdhnfh^wwowf|krdriwzjo^npgoicgosltfttjxrqyoowcrnemz`{dcwtnzmfc_elhdoxaqgulz`ihzyinouoshle^ytowxvx}gpymn\sdbw~tufwhsmrX{rnzhpunoc{id|w{{sokrwhphgaumspllkeh_kcfinph~uwxjqxrctatihhlhjdpppuqimcpowtbmigdzbutkrqpsxkijijdtiqdxommlsnrixcvjivmjolhsxpoykipYvknownfmmbvyoqxoufhssszs{hytpseqibYpdoey~qeolkrvjmg]lqpgvotmjwYvfnqiuwjywfuocsqjuqyjmfhwcouk`f{nr{tmywrhlsmthttqwoqipksimsqtewhns^vffqmylfqovkcioqqhqynouzwjzli~vcovjmtpomittgtiwshts`ikpwqlop_rjreeqmljmtlu}gkmarkyrougbqumnj}hegbhspciv`rql{x_qgmjwpi]hkwohpojupnqtswprw_crsyru|hisbaljvq|r~ddqj{qd`mqiwvdihswcjtgogtesyy^gjhvqq}oplm|[x_fziqpepp~ti[hagopnjmlxsvzedwlnxlvnfve{cpjmvtnkongquksy|lk}jp|mxleurrspkusrcpx~onlpvpgqosuglh~phxthoefgfplosvlkunhunmizwyo_qlklkfksdtf\org~nbbXZ`inwghrhlz[|iumlmpitrxltgt`jlwtbpqxtpflu{ttounzoudsp{wivu}ncuhjimordfmpd_wfy{wwjmrlrnronootr`kehtf]qx]mcgbwohhofxlhZqqw{ism|wzsllvds_refzmrsczgrhmr^gkjiqltp{}ljjiuikxzwkmsjuskqetu{bdodnhpjibhtwqvetnpltuevgo{k`sn^jrmwb{fy||yx~hdtqeriilZ|yfauwmrq`Wqvcvigblrjx}oh`yjonh_a^gcqpp}mkxenzv}fksm{wbyyxdi^yozh~hqzjvox|`jkjmfohcnhggfrzxniffjhrf`txs`vkmgtd^|tVfuinm|ftu\msrlqlnemiehf_mmlhwziisncrbqkphepztzpvqukp{tskwnod\gbeuhq^zztsprukknkdblv~dlshk_qzyt{yz`m~ykffjgnosijzitgqrosmgoigwyrkgwgrsfwk~jsmoaouhdskiliocwwjxobm_nxvehteoztvxti{dtzks[rhwqxpckwzqzgfoistqlfhjkn[ezzrtunne{x}}kjfmfarfbp`]p}ytrYkpcvbwkxihukmi~scziquhhmsnphokh`top^olqnekgmplcrdc^iepmqymikkndc^ktnjsrqVaj`sruapjkzgluethierspfepulghslt]khxnqj`pwnnybfnvoljqu|fku}lrhmttltlvglkkfton|cdwhyjfjzmavsbsv^fi_qyryoeuultjzmmnk{lsoxujpddlq{kkrf|knlj}ptnwmmluodluqneepmm^{e{scomnkwhmngg{nurutprmrwk{nohelfqexv{xicfnqr}qsjtjggnnfkuospnhyhssooglcpb~otrfududpwwhtjqeoxfn]jmqZaklxsboxrtmmrdzslscfmqsprs}yrrkqlmgpqnktnopqnqqolheajkmyglgzumpxcxbvhmpcz|msuwr}yrlzfqyoxpjmfsi~okpjoch`y|nkihomeplpsonpi|fnn`flfysvvbf~nspmi||iaynreptt|`nla]srzr\ijd_sqmdmkjwnrfikugpwpkhs{mtdgl{eot~fxpoynqdOwp}meovppxmewvczumrvujsb~_sppcnceq]dkku{soojqh|kp{wkx~sjx{nlaphtkqifextx~lhbn|}tmp|mfbmkxdfkvgkikvqlsylntcbvqunp}kcrfeh}en_twuqarvlopnwkkoumtrwydzrnm`prgsxuqf[r}jqshlsn[pzsl|jlupgaywnzplnx{smp_ovgbnu\kn{jnXhjnfronvlx}kji~|w}fnvnfczfts}pnjsnfawusch\voypvtw\pxjkhfugr~tnstfvtssqlul^tr|mnlk_mr{xxskyi{k_cqhi}wjtwhnrmptipszmevmvmcadpRqlklinqeYvppjirignhbfxptvevopooVlak]nvtk`lavcesbflso|Yc~cztehfmlcskfczopmwtuhhlrgcnikmsbo_qjkibp^osssfcwmouikhikvkqqbf_pigsqoflfciigls|ypldnlmohjery~bgncihawvv{mkegjbwvvl]ftosgjq}re~ufi`aczpneeuox^v|xq]`qppqylpdkpskwleeesqxb^gcs}hu^qebnk`qpyop|dqskvx`qy`{ktkjVlhzslidoliwwo|e^j[oendujsjwuiganpukh`qzWn|xedigh^uubdtdosqmdkkjvbofxugapsi^[jxkxq|trxeqpldhoijtzvlhttgqklrdi~Smkngzjhopdofmxopocwbl]wmlakuprimpnnhdluimilrmgmvusdprnkjnnswx|kq~qhturmybrkizuesadsqi_pjxpfgXrmtVaslvnmlgz}lXsnlclpebvrXarqtgn~]colmmuxn``nkmmithhjzsYmrnllt~rlnnso~ivlhxemqjljsgjflrjsujirbhvk}isluxxwqogrnrso_`nwrkqopnHnxodo]k}gup}g}nxlirwnjrhennzj`woftqpuixzzp\_`pmv{wivdho`a~}mtfgpqflpvptow|govvosaglurqxcupfygn[oqgy_Yyjsunrluodrbuiamrskuwhv}mwucqqxj}atnmbu|xhjWmcy}y~qhkn^jgjkhrjknwkliqsmisovombjltl^vgplppzobgszux{rlox]{ghxxdfpr~ava_qcqihdngwwyaoz`mmnsqiylpyaqrybhtqpk\hfnxaek|vvo{{lgu{`krxovxmispdwvhmWtvucxrfq}icenznqlx_nlnxltpmqtt_joijdtemvzetjjwh{mppmiwkqps_q~vvtdujxpqj[kqkltqrU{xxotspnrnZ|ntfopk|r`ug_ydybpgxkhqudjqkhslo`nlktmmcqjggnmyyodiojvemuhklyp{povevhlolkz}`gvqmivm[ihqb}ipolkzt_m{jse{gkdjket|pgmn|jdryqqxcmxton`rquwnqxz\|le~cunfksmxvXbjrejvcraquop~esijtpdkvuvklftdarzlxjqek]jrmiu`nnuug]rsvbt[|hjrl`evqodflq\ymjs{ung[b^ueazgiescj_loeyvoki_srqzrapmg_vlsmakwkkxtddmxnakgnmfqxzgnkpu}l]xnmpctdcrqsir|men|rinfpkvrfcbsmpsgqkxtfml]ulkwwhizbqn`hkbisx^thvudo~emjpmrczi~lmmgmfmngspuiqzbj}zpl}haksxiysigik{kk{l{ztrvkokhhncrtjjxbknWkiwpajbrqusuojwmac|l~~qm|blprkvilgcpuh|mwo|tmoi}yjrmpip`n{vqwnbrnZtylqhjpuhpiffjsrds]qqpekotwieopw_{lsnpfn}maxhh|twfyxgnktrhwnyiqzn}hhxpbylhfefzhkgfzzfetqr_Vdumqpvctlktkkm\Zoolnrxhiqp_vtsepmhpotbmfjri`whq{jjg{rnglfun|qvlp[xq[m}ihwzyuinitowvfxcnotwlfjglj[eubosd]\ocing{qtmb_^pvickp\cil\z{uf|o|m{fcrmZnjlwmhksrqjpl`xhvpg}vedilaentpfqhl}`fuusynf{ki}itpv~cxpyjxikjjtmoqfviivexgqg[yf]gpnitprtnuhopj`uoulog|aksokikebkycZnkftisqkkhut_ubf^_g~hmq{~ppoa]ilgxqepuirsg]xscbe]rqice|ysaysi}v`mm{jcmk}re{jsnomskitps_gdk^rjeimolvp_tgvvqkebfgcqkpytuautenlowsdtwzmrzxoojpushq{tecqld|ye|e]ytxjshojxiovxdrtvjvl`uqmZne[ki]\lfrdrtapnUvjoqzjdidkoi{uevouhujnjkkynmwy`}flitoomhpor`pguv_kdefrulmlpqfzysisqakltkhimprqmghkiqlob\kdh_h]|hvj{hgousmfcgvpeiw||i^inoluzpdzupocyrejym`d}pjfvhohk_fkf|smgooqq|mzx[ln{mesgnZakkhni}muvu]urptirnjboocyaxthiptue{nl|iz[nnnkrXizwzjafsj{il~rfgvggss{mlwqzlseemu~krielZg]]nnn`r_fbpjgxujmkxjyuoqpslbjroeoenyx`tdv^qlpjljYukia`gzjxxtp~xxsxumm[udjqfxstsdvl[o}fqt`fqiehpnupq~umnil}vqocrixkuewwo\zyoluuwdfhnmykicgkrvk~fpxyar`kiZrtnnxmpdkfga]ikpz]natvderuslpkiuw^ihxsin{dvogxcWxtkou^ob|}rlpfUqnnhynywvy[cknn~]~i~scnsUnlrrhodvnotxaktgfwnimnolvyyohxm{kckiypilnkcvohuzrjbpaduoobjjown`pppvqmoupfykolohtvssejuqoofgnnaq|ctilqqhil|ewrk{Zftngnhxyxopkqw{kgdjourgg]ivsleszkmpwkspomqk{wdzr{wmmkqmdoiuxcmXnjpr`uzltxnvuqaostjtmikilooskj}qlp]qvuxsrmumt`stelunmwvscsvjvgalpfun|\yhvgioieh~x`t{vilqrescxcoutjt`ol|zamnnh_euoprkofzrclpfovwwsor{xdevejervjzjjrsrupgkvcrygmntbgqnhpzcgqmwn}|bnorpt{kkkppuni~zjo|mblinlpfrkzumdlluxk_xim`tqfgvr{jyqu{x`Zyo`ya}bhttunsylcaeohxgos|wnqknijxvuaekvfuxlm|cifsgmrxqkiqntacu|imulnkqjchtmmgfh~wtolqrdiek~kwmzeugyrshclcnkmtpoxpkyitykhxbrmpmedoxepkeprg^gncxom`hpqioet{smmeqltn~xikzrppi|ihkym}hgmmxdoif~jwgoa\sqf`\gcpg~ermhto]yenqdZojm}zwkhozsepctll]oo\fvp|horlvw|~dookgu|[goxng\phvqg^vhwnjomld_tnqvmlehnmg{ylnW{stfogqtocfxn\orkrtbotjzn`aqq}h|eaxyl|uolhgx\|iqiwo]p[nUrhqsfcqknndw}gofzopvpnqpisjuspqejjwi{qq_orq}i}tochpqprlYkquronwjydd|fl_yul\mn~y^vjsQpsjli~hfkomkyrelnswkrvpvopqqmklurrwdpkc{hszo|ht{rskn~wet}omozgpwgjlipnvspznlpi|mmqninkjp}xirjsmfdt~pgdibkyorpyipos|lk{hrmuwusj|}etf`k[v||tvcpm[jmpvqpj]fumiZvqttqmoh{snyeuutevlqmzgvit~lorgfvptsid`hsdixgluszoidcyqpcwnrdzhawmupl|vikgrpkZofseqtvrxz{^ef`\jouxkkfcrthuhog~nc`v~|n^fvZesukjw_tqoovtZkywcahdjjrgnhhjm_ilndkt{lq^sbqudgxyvikjwwxsi^us}kgfiit`twrjugsvzuwfzpsxmi_qrkbvw{yryovuokflwtjbtlfdgl|b^gct]xkv~crivpoopveszpueepl}srnleluklllssek|xopdj~ck}e]kni}iwrfj]ekqwxmbzhskbjfujobrortsho[tuton|shjlbojvpmwx{joqgavlqvruoripob\sbo{rpi{rhksmcor`vhosYlwgl{wdadrjkikwmtjthdlqakuknkq|trdymxlqxgxphjskpy_pbpg}bofpxdbcptaqgptpmqlmlltvkppdlqwzkasahihcnqlnflykbswqfhdlseoquosoubgozjrqgsbsoOhqmxdsuvkbqffplygirklrciujlzqhil`x|sstljinqhfsi]vcfz]lsu[gxavjjsxonxinot{{xtviysvlsoiYknflsvhzkyjmg}srpn_cv`jcwtggtlsppUlo{imsUpm}hv^uz|mt{uutdpjthhpobgevg`]nfuonsasrvdcfoxjqpni}xtn_`|[umompeidrezzgcmu_l~pslolvu{mUmntqpok^\__fwlemm{||hklgsqzndn{iwqplj}bxpglxojijopbyqtoazsq_wus`iho`nijljsmtjrlrmnnkp{kofkhuq|mu_ypzvputfpgl^xvydpxvwp|^gtgrxvqenxmjtk\qmf_g_obc]ynsyfem]arxsfen\_qeuuq\c_kq^i{kqaoqg`holmmv_aoqupi|ogpeUbodkizXsctzhqssbns^qofnpwqmtq\nVq}erhcd[soynpqvhq`pgmprjenghq_najhepyypkzdtxgplihgdiobk[lymngUcmiqqegkvhyPRnn`k^|rwkvfraprp]dkg~dvtswjlf`micuy_dTdqogknqk_da}ie|bncmqhqnvfc|bilq\mjavirphjeapi[skhfjwrrnlygnteiewt`pmnfogqzhbvnhlglvsdqp^h|y_mhklsduawSqkgkjddqksfwgIigiigenpnok{poyZxbcqfmk^ylfYoflmkkpujra\d]seaigopykccjpR_lfrq]eksrr\kkmW|Sxn}gbnDukhYbq|[}ghYurvirf{syXtrssXdpabr]jvetyvqhp~UbmZkrryXzayjt]oV`Raddp`rrlphdnBpkljl_`xtjamcberzdljd`[`cr`uw_qhsn}hnNlZmdbuolgw}z\naohhvudfd~o^a}j}kStT]godwmjnc}oxkpkaop^itifYplnwrfzlrjgblVniZ\ammipnuddg^hiSvbevf\{mdcuuZkiyxerIGbjjdmkktTxn[kUmsiqpmsqeYsQ`rSZosqcuoqxrjeiCpnjSjiehh^Zgg~ecduxjsvidqLaxfj~jjma{h\mf~mxqesapokuqmlY{fblZ~q}gq~rlnitTb\up{uo^qmrolofjuqeXd{cbaolfynjflxoswussgfxfglrujhanvixyaYc~fdrliwvviupjgcgsxrnrgvmitlyfhttmqgmzgs}hi}neoheukpk{tqri]qnnbexww^awmhqmctlauixi_~uvfkeuuj]vupokvvquxkrixrmxlkwp_jsvrmiilcpd{|vlqmkewfhvgsa~nprrqlsjf~oadqe}mtkm}prtvm|yus|xfnojnjj_vphdksxjcqmnrlojkofvlrqqww`huanhmqn[q`vunqs}wwzlyiqv`uqk\{j|jsqdljjircqp{pnjzxqhivflltetg|qiutwtnvdant\nprdgwdeinvjwuqprrx{zeszyggkqr{z{Ydt~vjfryvrkpexfoydjvowemssdbsqnizxgpo\vwbZzfligzjjp`ljfthhkxk[gfhfgfujialoooioa{`pcee}z}sklmjhnsVqodnln`lgxvrfqo]hsjibtielt}~vMfsiSfmjmbbjpomfrfho~zyeqocjkigdgvh_nuwdgfe^mukmhno`konbqmkikhfYRey|wjrj{linv`jig_yksytqgrthaxgemiml`iViwcsefnkmjtulk_~ode_wirmhqmycjitlqmmtl\wstn_gfnc[qekqulu~klklm`uk\nwjWufnlehohsskfdtni}ffppcqTortgmUqmfjjiql`myifsxqwmrgrveabrZimekejgkmklrluptavlho_gknajpoatsrxyibhoqv`ro\lpom~kcmza{jtomifvdtrkgkgnhsxe}ktw^pimjpowYy\ao_zkukthndqbzswg\}mituogfpuqmnmi|tjrxfu`sejm{rus`yzpmalki}ybgnfgshi`gljyskmmqkpnpsqkhumvt~sj|on]rfmunrkixqxjjzgohuyonkciyjxu_ptfqsgktqurfkmmjcpr[}dkxvmc{rposnvpfqmiyvmlvu_uo^iavvuenwcgrbgphidnqdqb|}mt}_tlavtvhjceyrwiwvtnjcnllxfhmronvsljsbh{zzshdvfs[ieappotoft}ncioozh`gis~piozrefariwqm~`fy{ttq{l}s}qj|prmdnccnvvxlnqli|nn]Y\k{cp{khjkvptzm{bqdiskopsiutid`~}scihfomkivoqosqu{gmgx_emrqpYimyryei}tthyonlnhhepoi^tjv`t^[qimZpkyg|lfijzo}ckoj]|wSpjmiprzWstpzg}qzmzeloqowwlhs{m|rrrf|uriusgsojzjlniszmwrtlnemflzengx|`ukeqyvl_itqkonokjbexrljhil`{lknmdgmpimuahSznjitkrminpjixloh`|cxwgn|zsdntaioiktyyeT|rdxemobjmkwjms~yjwppynsnmWyyxpetvb_bghhuvo}\\gqz]lvj}p_lovgb^pmdqwsxxem\sahko`qnhrwwrm}vhgrqkk}_nZiktilq|vtofsnrl|cok`y_kxjqj{drjsmh|uz`vbfgRmlp|vfltrpgngx~}ndokqukinunxeymotqpmx|hvhm|jswamfvl}evonokpmfimqfsnzi~xtnr{wmepvtrqstvhb_qeekt[expksamgwqnhlijko{olz{kesojhnZlornqjppsrd_xj{cyfgvny|krlql[inhriufitogdbnttwmffkiiqgtakswfxqmniojx|ygzm_fxmqTfvuuq{Ttxhm~Zpj_fbkr|jmyfy]d]tmlvgv\fgp^xvylupf{lpdkc`~}fdhleewujd]vitlemqaani}sdptr_nsyqrjqq^rsj{|jh\zg\mwpuxtuc_{orr~tmznvmgmwtrqvoedm}pgzn`plpkvsoowgl|llo`yjcrvo`nlbsumq{gfgh{ggthojac\{fhezwvzrqrlwxofnj|emspiilwcxYdkwj||tvip`mvhrtilpdillqi^rkx~hqk{r}htsrxzmd{khunnx~pslnxwayqdsljagqmxjslrrpgsq^sdjkipvezxst~ocloooalsvmjkatlqrhmwnkb|qmx|p{h`lgklmtj~meunuimrmYeofvkpn{iblyU`vonfmhkxwZ{hrnuboqo\nekpisng{xusghd|ptvUqsrr{jve}`rhpjxjikytswmezonrisji_qnhjs~mhpmd^quxrkmrluicnfpqolrfv`xlvhadi|zouln{~gz|nd`qaakipileqfk_fg{hrumyqogmuotyqlrh~oicrojovtcbmhejcpg|[rpsqpmwirhhdkxrlo|fdonk_ikvw~c{mhhkpwjekltonmqomhhxxriotfqp^`xmwilynok\mtd{ho`q~drjgqhyylajlq\iwisuntudqjo^nefcbwmcxyicohpli^{jsk]drv{pbmiqjk}gsyzdmwiw{syxlqmsnqkbln_qiqit|soo}rp`_fkqtwjyzmnzqfrhknpu{pb[hnvm`mrrrl}irjfqspgivu]`oeilaop]Xkglomfbfkrnydauelnrvstltpnucpccggb]hmhuevbowosxvsrsqm{ait^f|njifko~noqtstnyxp{nkssgiyu`qtatncip`mXzkflym\whxci{wqbcuhncxrjjoim|ymjct|xfsgqyregnwdbpoge[rmekm^gvnuegy^kmqVpj~otoayf}uwrmcfpguqyhbyUjrikkaf`xppsu^cq`whfmkmlqrzdbtoejkiktg]ux}^himgnj~h{orqpggotmvhmooxvjfjhpscnywmlvrwpuzr_fvt_sUt[oui{akvnsf~prrlrlgfskqlxnjituz]{ikjp^szitmpkrkppqdsknmkv]Wnkqp[nvgrguog}it}hiklmgqyl{jnvhmmsmwqowp`e^yewaaodqjj_sbwxkrgp`xcvymwrvg{uuvhtrolsnriifiolq[tinmiqjv{owl}okgZum{ah\mwlynpf~dmissktieqsjqq|qteajjah~rnyhfne{}rw_{qnjl^opunahilggaiqhsiqmsmqm^cjmledmiisrltkihmnq`ezoohed_mjogfxomrukrd|pn{qjVzfogtlkqdml~yqotonmnjkhjunqyyrymlnskojo_\ndefstntrsflbmoulclwjjydymttnjinuphrwhqonmvov{cr}sqvoijVlzlel|lfapxfqrtds~O_firjxpjzcpu{nuwrkWwhpye\yyuvputwyrgmufipnhhuxjubilcr|r]~czxm{uasx{rifyrrfjr~iqbln{gxniglfs[{pjrqqccjtmnbpkuqkr\urto|jkqwqjmnml]]pl}egc|m}wynmxllvssispcutuqadnmlct_zdljgqXwvronvgzw_nvWty{ovxtt{cyilbzbklvfhrvpqxjkxi}kplwu`wrafvjueqmvjvvj{~gkyuhldzeelndogrjmk]rwuu_Zvstqlrkhup|ljqrsobyefzjmimrxrrruzvkztllqwaqesh~gnltmllrm_klewptsdifh{pekvsfpXh_qtpq`mugsjsb{ypip{slnz`okfmn_syagcnnyienn_s}flkjpwb[dqc|zskerdccsiwftstnwlzrklqizl\ur|swrmaYojsulvepxbvtlsmekuutqosocybsq|wtkrklpnpzwtstwhotgixkktum\gphmkt_eaiwanfqutscqh|lsgeiuonnjc}npeo{l{xcmpxlasjbnqnppwvjtwj`|vheiasrkhinakphqh{o_|nylolhrmfrfveyofor_pfsbYp{jqdvln^korqjltpuqo~dnyzfwke~uphikoifkevXqi}kwcqdkelf{lpwkfxrvlrbXthix[pijmo{tnivqervnj}inbt^fqn{zwiwcp|dWshidosknnelpjj|js|gbottdffwpbob}qaidpnidolvm}agrptorX]rm|qs~je`ecswrigmoxtlb`wrcgep_jflzrflslfovowjshiokmlurhjxjmigqit[vntnkkvsm_cdkcoirhhbnb{qqovomquykqpkl^cdozbsnixbjr}y_|rgjwpk||pufbiqykqmsz{k_dilfpvmyz}ftqlkwsyqpujijxdkzhoqnmspxrognrrpokigortm{zm|nsgvinhpekrqgjls}indpttergptgYZkpt|rkqskwqgqjn_kkoqfk{rftpkjb_uzkjppbw|lperrpzaicxvdvunloksa_njzsqqudlvkbjb|{dkomyg\tjpsiuwewykdjmvvejknoc}jhkynfyqlupo^mfajqc_uznisv|n[gkvtuh{kuw^il|leocfsnmexhuo^mnibiijkobqgtwfervmljm_tlepakenrfgauqpwnitlilvnfmrb{ymohiitf[^j]kqkpgrrmtihucuaylrelmauisymegullmxdubvcxqxsmjvnzdbcnffrsjorqu|m^nkntnqzdegbymmmk|jxmj`hzWiq_urcnjk}qoeldkPflq{wajpw`mmophdrrlgxsymvgn|bomet{{hopocvjnvdrmjlpulqkmks{e[xgtignn{mjlkknbrhrvnaezpuijfpwennvW`ipwwgjnpdpmiqo{dkxtk}\otlg{hlp[meghau^|zhptk~pbqxkxnpln{jytr^pfksfbgj|madonpmjqppy}yvomivoiozl{etjYakrphvugn~rlrlunohjfmnrekszfrto|xsewkunyx|q|vrkjhwhnhfbf|liwjlqihjqslgguax`l``jmeumehkmj~toitcl|opc|t|hnpsjoyo{ngvhimqknfskyl~y`p|rrpzki{ji]mhr{wymvqoswpqpiot`gok}hwatopuoYvopkkewg{ilth|teo}udrutd_hisketoyqavvnwt~snvgiojlhstkkjqj`dj[ejfq}ppiV|bytonvqpoo`kstmi{rxoZ}{{enzplk|nhrpqx}iemgpgold{}hkr_azpc{inbsoqsatgnrzrpf{erohhhrnkohpgyl{Ymrmlccqox^ulvujxlpftherpgtyi]f|jodgtr|hoxioly{opqnkviy^frurtowr~`w]gywlm|yj||tvlgehquul|egkbwlqrtuervsvzu_zdxnhqwt}c~zc_[yr[vsbj}fls}vzoomwiev^mjWkzjswxmopglxyjoxpgzpsmyperbx~enpxrklmpjehozvrppknqqtlbieaw`gmfqjtjwqjcssozdyohy|mng{|u\{ssmwp|qrixezvsgpqpqqkmznj`xhqqbnnesrrcnl{h{lotwqoz{gnfdvvompizx`w~cvsalxrfhcVjmn]nnrbk~sipea^~wwmt~jwupwvbld]bmwqubxtvhlXuiiasmuzgnmsrekgzrtjlhhwmnqtiinesjmipg`fsjoopsixcynmipzojrofyzqofe{}vlwp~gcvsiupsscyojxkglytpzymrxkrwx[hmeh~rktk|pjut{y[sqwqvegwzsslamhognf{hi|kbutiliqly{bxuakffsdw]lulsaprpknjpvjjvv~itqlebtplmphqho`oxihjwiko{in_{q]ut{umpsrl`xqoxpeshm}mrfmpvoatc|uog_~kuxfpjngcunebuiftnbiezmhosnirxvmne`qr^gkhxqexp{ji{zfjnfmgkphtlyc|r|qjmrawoyqpmfzz{wrn]zsolt~pevqq|xbj|jhux`|vm{hpil{sn_mpimpoiv^fw`fmwdedgipgtidxzkwltlos{vgl{pleq`hmphyowyw{~s_nl^uy`kevkwgxvsyuqeqqnthqm^sjyyogmfcqmraykmig`mruczqw|nrtvc~b{jlfngo{|lupnwkmm{ksu}qogyqnxjmhfrsntcejkdquqjjpieqvqYhvlmumvl`_bglczzzctonpqa~u{dWsssxrlzpysmevuyjonxztrgjdponpjuolwoonxndybwsojoioslhVqfmompp|}|ewgsder``dercqimwhriqdfqcjmcvmoctuapneg~p|p~]{xfshonlwmc`llswjp{pcre~l`w}newoonir^he[|l{wgsnklwedjiw}toktpuvdgzlswmk|aqyhtkfrobnpykxpykqnpii~k}jwgpufsmrsymtkokp`qpriijowvpyuguhs|wrv~[sj~krWfgh_miyutvn{bdckmw`soaaongryrwlo]m{gUilekh{fjks|ptnjdzrnucVowfoqoz_lxvantdqfddofijmufiydqsjjumuV|hopihonx`sqak~pmscp_{sjsisrecntfyetXrfmkZrld~kmodrirp_xhqokjorWxnf^bm}enrvqcezesvhf}nmhnpxu^japoypt~inrfusqqqfcjlqtzldbutkqnmkdqr}ucjepr{gthsfcm|~vldbjamhqmd^Xmslmvipsleioqjs^l{tgosiiaorskgpsjld_upkeaulqwQtbmnf|z_omxsvxudrsskmqktptw~sntnqct}hafpbtskutwiu~mm\fioccv\g}egm|lokiiizuestwsdojkt_w{rexsrdgtvumivfeul[}osylkqq{tmovls}s]sqld{_dueiyYmugaiy_xmjmdsmrugqffxel{xrrstpoyqwvpwcrtzqyoj`qtwmsksgpvv]ypjsksmlowto_h|trktq}~k|x~vzaozknnr|~sxna`kgsrsrotljjyprfmp^ruhamkchw~zpejbenconglsfatoooqu^kscynssfd|}v`{ii|ksrromkb_e\pcynpwdhqjxquhhf]ceehmpm{invehitkdo\torqioluenXsuqnqwohlspmnxykhyuplw||_pquujf\Yyfexhitugt\mnnvotsbll}vghikhgkhomy{j|wlfjlj}fkiyyqognti|pys}hmgwt`yqikpociovysr~enfahpjlrilpoesvpepdr}hi]kwqgsripimojmexwqlw|ivhglxzwm{kprbb~q|m]`nl~ifsghsyjf~zz{rnu|teylirltpconchptvbou}poj}aqlunmzqf_pei|uizq\jmj{pdmppr}iyyeiry_gdwdvm~vvpvb~zq^\jjsd^}jmfr{mgwybpsqqzoummk{mvu\Y|fwgjotkoezkrengjbii]t_bwcqtu~qoklskru}ooikeiqxocqjunluubzrfa{a~vzkkjnekgsii{rjpsmug~}x|jw_polc^`mtu\nmrlbqo~lqkqlbefkqwgvwcjy|scxtrlxvtrjspgeqjoubnzzm~insn~kb`usqtcnnzmptb`jmtmxhpr^tlfqkkpbcri_ltfgjqnlffbfulu_}tfevs_nruqqlvnohcquWrlmrf}exglrcn~nfpghjdxqp}wkspoctofnon`mkheng{jkrcezru\ppoj~lo^bms{imrurqwwpvjlpqd{^bxvwhbkftrnvkipxmjqwvpvkqaxxkesogsmig{rk_fcqcfppeytsmaor\||ju`osrdtnrtasmmgnvkwruevjQjpefoxkiinrtopmtcgsmggsgrqhs`sp\kavmfeejw{xpdltecoknpdlml_q}sX_gytz~mk|mp|olelqwzoqhgifcZgtxhvmYgxuokqvj}dqoopkml|sxrjjizlhitlrvjtnjjgrmslgqunagdnr~ihkonxqToyq}wuht|zhljg^mvrzdV}dmlfdruhmlxdnswrxlxqkvy}m|d[my}klnypvvhtjmtp}fggheyufrpqmvkbswUm[z^flyxhdggjvxdxWomf{vu{`wuzleewaskrrsgqvvyhgjxuutqkijnitljsxpwimjvxiovlngxlcq__ehqvhyw~~ndfwXok}kb^qfmnyhegwysalw[srpbgmlpm~gpfoqioq`eewniwtjmmiuvgpaeqhhvsrasooduvitiyq{xw`pnkj_pxt^gslt{mifSdaYplclrwv{emmrdqpnofsvppmds|{lzksefgqw`hnijlaqcs~r{wjtkZhdYbpxlfkowplgnkkror|tlhqumkw`n~}rp{vnpvxvghr_ysfiivtisnmgffmgmr`gsahr^emq[wlvgmtkcbxvwrilxqs{tk~knsgte|\ojpyrksi{upnas^nnb]nr|oihfckhoetoqUnjkpgmyuupjzr~jf|tnwmvqlv~xudpvsf}tmppunssosqzbyqxmmuopgfpywvocsxlwogwdsqwkzmppwmfhdpplshfu`prror}siokgkwhsuudYscin^[qolpqyawlwr~cweyppuleeywrnvxlxjdkZggfedvt~hxjapsjouhlXe^hkqhwopi]tysiqqlxtv{unurejgagmtiljhaccsklbnkwfqux`erydmjhsx\}Tssgs|jj|qksqebm[ywpkezgvejeogfvpnhitlttksklsumdpdsepirrlyjhdqq|icfxkrrq|hinefkserulopjpjsrnzpk~wk}o{qgvllrhmostrzukywmwrRktppxmoovllhyjtpk\^ixqf|qqlqmnopivhjsns]x_vhkegvjgqnhbqxugiilr|turxdedckjutdt}mxkuvyd{inwhrn{siW^lmd_yepkgrmhixoqwcigovleoxmf~jkpyofipn|afngvcnnsdsrhd|stiymisihkfuhowlo~]dkkojynhsjisjuhgkjoakvtwZkt_rhqtUm`jr_Znr{wjr{nhgjsezaiuvogxfsnuihlxsrtssez_s}witpjojxgdfwkfovpbv`g}iittkststphtuphk|\pf}vtjpoqvurjlp~sgquldhtpqn{o{qylnfmlyvtnxtgwngetouzwglwgykqnipnipl`krephmlsxqpahsojsnisphgkqgttuerTnoohwa{|icwbpnkls}yos|tcqqfwjxytued]q}ijte}_wtvyxact|xdyonsjgxp^nzxjp^rm[vhlnkqqpivain_pkpk`hxrm^f]yky`ogneduinbgqlpyqps~hrpgqp[au]dwtp`kfegkl{hvhnq~njnWYo~|eklcuxlldjvrv`mdw|ibmnng}oobxtkgqtdhq_qR|jjbmizk\pjysssxvj}xumqb}tcon_neqjd|skoi}gslwtufxtlnjhamsw\u`]wcnsciqufnotsurkaam{nisegjrmkjthp|jpothvqnzftillnyy}nvjvxktrrtidt}qinxjmdtvrrtpehedi`umq]m\msukufgsljpfwwhbapqkokjzgk`uhfzlsotz\hloybfx\qw\nlyixjlgj{m_ggmzrvksup{r}rejrorzim}sirvlnznarnmsvvhcxfhqhsbbxyrkstlnbucplwgp[_b}w{ztbawfqvmepemc[uxklgdovlpziaahsgsvqjshcpge~\x|hniokchnm|cdannydtymutop~yqpqhi^jx^mmljduuojlnroivfr}mq_htkh]tirsilspuouecqvqmwi{oouwwalsfyrekvtxl{^dpievrZvltovo~cisegm|lpiggmvytgmrvvtpalcuxtzbsjm`uszoq~toxwvcow|pd}oxsmkmiqkw{sol{yx{~kqqkvvrbbdSlfjqwu~htjprsx~v_loifsolllnucxexioxwkqopgnxj{klikw|mnhiiwnjeljjxkzg}}nonqcrllfbrvlftepotnnh}gXb}xfkmljm^qrmdxrgmxssjnmv|}qjkqlull}pgvhtkrmewiowwpYjsxlnpp`qdeemmprtvyarx~vvm|pwgreemkofvimsvbdy`knluk\quekzl|_ijqyr|hyklfmd|_xhpfkwq{tn^gkltoxw|jvtd{wlnrvxqtqoyeoqfgrjnltomw~unutttsggrm_lwlfsnfxrkxdjpmwjipyrgylgnoklsfuzyhshqlgt}swl{h||gjfn|xytdrrnfnv~ortujswvne^zj~pkm}m`npnsv\gjhxhergusvpktdlqprskrro|ropgmnfdgpl^syrlllllfslhlyw{vyhmi{p\}jypbqwkqqykgnh{carm^jlcmhruinvmjv{vz{r`uxvZd}gdpxetohyznxcowvkordnpn{]rjcvnrlg`qffkVqwnwokrikghosmiin{mlsicyvit}jfhnwxmhlmqfvdldozxsnX`wl`gwbz]`sq`tfuxvd]cvuewm{shorcvnrTqcayvee_wiqjjj`apkwqvmotpyap~{grxi}pfhfmdtlb`uqkzifhoatwxoplouheiqXnibq`deqkjkomcmypgjmf^m{jyvjhvnkVliqjhgynop}fbdmemegb{qqrsgtukZs^fbkqhz|q`gmuboijiencw`cfxcjwcjtrmmfdkwlfpin{wqstogrujzbblshho{v~riimlqydZfsnmklwr\bktpt]`\hpoglli]dooj`fktatckco|ulwykhnsss^eb`pse`nobgh{lu^zwjkhoofzbdlx{y^dqVmdmt}w|f~mkgtgrkanwmmzumjxlersnjnrjojzopmmkwtknR\{lp]sq`fcj\ewtx}vnj^fjspYnhktska{_ktth~koafjpmppkswd{yfkkh^pkgxlpsfvylww~jadnjsqrmpjeXd^xghirqhtrlojwnukfslhutoqmcyskouummn\r{o{qxqytpykw~xm}jsmlkameg^]ryuaurpsvjthowlkzwmpty|lqoasqbnfmqtrsbgkwtplpkokam^uaUpbmnh}hqlfnrhsblxatsnehtozotntppqv|dcvnhipspfkrjwx]ohoUdsqpkhhalf}ol_wcgg}mlbo{qzooqkhyjhmrvewqgli_vtgiaxrepchrm{{ohjtelyhxomkyqgn}zdyyieZmyamo|lmeltx[tmji[oo~efjkksglfmgnunrprckdmgsgq{ekommlu}ktstvyifhkvqjwshp[ksggwtkwml\qrrk|svhna`jsunnnliinebtnnkroulekpvoq]fgiid`ni^pvmif|vijPmuqgvmfx~munsx{hg{jrzejl}fcgpgmtptrkiuh~xayoem^^nso_juxiu\yzqbdvphZmnlpfWchncm|vf\tvwwogyq~\vscsiqfltqs^vqxpvfUw`ttkytdplcimmye}jhjjbrkgknrhent^ze\fkorzjyZmxhmcadmcmpfq~dqxznwlbagguggb]mmmmmkjmpijnx\]qkbumnldisYprmm}f{{zoveugd_pz^f{qsnwyljo[ncrwjhestlegiddshcymjci\hdpsjpcs}qz\wnhjmy{rsg_xoovvjYvjrpykosfc~us{x`pwktyrupmduel]{fj|]ntkkm^qlovr{sfan\{tgspvsniuxsyo{nqjlRbk|vnnooyqgzmU~twr|fwrrjnwmyhozhfornupei\^{qu]jwscomsrlk}dxjrlizehiuhquy|ovqrnowmqwrq|dvmsb^umq`ttp]qhflio}n}ee{oZsrznslujmtnnpy~v~mqslrqzjp[pdmomlinjso{ommlsknhUvktqvvj|pitellmfm{]in_kmqgstvbvvgha_\cecjipn^srZprwhcvnpncne[qrqm{ponmq^ncrdpkhsqwpfokkqgjesoejm|glcwvisg\outf\tyj{qkwkt|qqkwr}rururjl^luquenlrk`ojw_epq`rnfxjr{lsjw}tpfldnirkujafxnsmglggdjuy^vppcetn~moswe|eYcc`vc{esjxyn|w~jqqprvyqupap_du~{nz{`Xzl[jqkivrxemowfcpwspp}mhrtnihsryo^qlvcovmpligpoqubb~hdme_pzmgovrrqxfwpqwmkcbo~}gj\mgcpfbwohso[dkildmdyjnxlnkkcmzwimvyqo]Stni|wyyqsyutrpohsdisfnkfco_xsjklurkgoknbazin~ztffp]plo{dxink]pnh}zmtlrxfqg^vmp]bjccomjma{goghv|h{sh|gepgalp|euxlilkm}{enpntlowiimdspsedhpn~mo{evqgirjonzw_ebd}wbilwfkwvts{qotVvnklrtzxqapfvfpcaimwpjuosfeqn^odwjkazjtrsatwliopzegagmip|bryuyj}upy[vnoaswulv_rgpl[wiuenlmjyiownoojygehq{}`kxuvv}upu\ol~ibvo{\ejysygmmtdxipenakxvs~Tpirisibmvwhpfpnktfapfthkj_vsekrp{lbytiaic_haqpnumvkntomusokjvsnsmkpikldizgghgvg_vprlo|knisq\eonbdolqbqqpssld{qylrse[dqs{tjaxdpfpqogvrpfnbvrjalsmpvz`nhneuwqfpsjwhlbvjton~koenrneqxik|ysjfjxu|kutiiqypmrseikmph{nknzivlx`vs`{pmitnj{iomlhirmkuqlvhfmqoqmmkofuqxmq{ynm~cfulganymzvdtp`ao^rtxi{]qriihchpmjgmtljjnfhn\oociv|oghrhmxxtf\kppgop{pyrky}sklsn{jzrskr~pr_nxlutqog\syyqlopnsjjqkurlq^povrrjolxlrfqtpl^gaglpmtht{uooufQnxxjfkiiqr|i{hkydmnkZpymtlomjb|juhwdlnonqevahYjmodpobqnwglv`ewp|tlsorlljkthejclxoi{nd]_gdniijs{gyql_ilipppkyjvoYetdhilkgsd[ssnwmgkqwlutpjqhoklemhlwXeqrmkUfqrXgfkpthmfgunc{nifpwqu\mt`]tjhpnsm|_pt{he`lupjwijp{wi_ujmrglofrnwfnzumfroen`lmkimcwrngops|trzgjnnpzqugaoijwsjrlnlelkodooefxt{lnpwmqj_qyf\jcuu]ufnwearcltwwgknpflrprt`ktpdnwgzobqee}otgl|ojwerekapna`kh]poXokzls[qexekujknqmxxpp{n_ptnsnnfewehkgjt{nq|iwhojnswohwttkuxvyxsjfjkxhr`kktqpcvtwmmnsmn|jvkiprfhkszytmrrtqgehrri~`whdemplujlth\doiswdpwea|totun}{kokhsuhtkup|psjoppwnhqkrplXnpgjurigrvkwpzlyntorqdjigfjg`jqrywq|shefzcvmmbmen{wi}wocsinjxlijpehxmikpvq[jg|fkhrtpiqjq~up[m{ursyzfnevlr`qaegk`lqsljdkp{dkxmikgj{tuqhcgmcyqtkvqk|zkl`h|pepvsr|omjvmqpijiqnmojjupinxuqpklrrws~ljrcikvnllwmpxfidlhwvj}tbjzqtanlwsdjcwpuvjrjck|gxhrefdkkjwrhhikkciaWkcf{ncwkkiygjupltp{ejniqzwjrvWj`njdf|hlvesodtwfcvaqokf{wv|okiogwbdlhjpi_myssynclmrikogphbfipSXkdudjjkjukvngpmxdno~romqlmjbqkYl`h^qsfkobu{lrqrffuowyml`saupthnlqopjq{tbmcos]okr`o|eltqlfpnhkdjncmaw~k~omqqhZat`tgzmldj{breWnghzluu}jigrqZtx|kowg[zkopjhljndopjmugmtgzdpzcpxuoeetmxsilqag|emmpsfXSvrkmvievgTpbtctgjtgzvr[nchkgylvyxoekirifthwk`uxgm{knjkzckcxelw{uhnnwmj_rgrypsojlkeepufr|dndkqgowy|jhkjqkhlppstnuhywuZfuzjsjhpolxjhjue`fiu|mc[v\|tvtfhp{m^itqwyporfikqlkemiwmoqvwZfzlp}mzqin~pznXmopqou`nd^ebuqj`dcagomexhyapzkaoltiq{kozq~mcglwirmthgjlphmf}`ypivvdliw|pqswgkrj\zlfppeklz|vkdhe{qnhrtkeZtynei~|lmgdyiwwt}rpbpWirwgooppjypykipraqnlqoiqmrqcnl~kui{eqjpo_vsmkknhvkqxhd_eehdsftgmtddvmvmdkhpkog}qt_ltsvrb]}tphlmeoqshnhaoitnxvmp]mr^jmsg^lbthpgumkbwrpkcgndtsoqg_idbel{o{~}stlfnifjpqxm|piYk\ff~~mmnnsmk|t~qmgnxv]iwsUdrpccmmnna~pwphiimnsosapfkfadocisrsxzoslgkkwnnx|z_csjbv^sjcpluiooptftnmpvwrpxuffqpnukromf`q}hfg\t}`olutghkcug}puahnmzqyhqycoo|n}wtopzsc{yrrltqq]qfqqpnblh~eenkiwisjynwnocbzqahihuqoofuyin_f||aiqahtlg{p^tjn~yo}uwsvuhdprtru{rzsgmw}uflvom_r]k{sfn]conbl]ks`l_moiuovqpo}snqvxxlikrnpmq|xhtvmankihngu{spnk}fjtoonk^rnfq|hlfx|iruisjhzckzp{vvqpdpcxz}qw^zhsopxnizktijjvruyvnn]nehzriqfanl[owhofd{vulldnifpjioosyfupl`jpo{dgqlustsjjeklzqk{trebjjbrogpvpknmdtylbvgm|srv`pt`bvylqervcovhcqfnq~po^fnhnnjtf{skrvdfgpsppdn[gwxrvmifrqoimmdkxjswsrzwyojw^{kiy{hilyigepmejzplmYqlnzwioztkbgjvewyltmwahtuntlcdrrpujtfxpmksjuqzmlqsirkrrXj|cwnetudsqloTvtpZqtqumymwlyunopkspbhkppr_j|j|agfk}}rq]hr|h~`s`kijqslekfygpr^ekp^tm^mf{tdk[yivl|wakjjxpcunm{hiynipeeilwbfz{vyki`yajszpptusnitp{rykepifupyle_zgyjunrpwtndi}z~oidloqwkmarorziciswvnqegevo^qyqtofvvtt{rtstnjj|r_clestglbcohxmplxgtrlmnccsclyeqnf`miq~iVku[`xbpvdxeeooqp}`}xqsqa`speehddrlnqmutf\jvzrjm|qqt~rmxppmhrlm^job{lewuuyokxiumvwdrk{ovndpewtq}nmhbijvkijszdr|kg^iufluktkljzYc_w|aojonbnyeizv~fsinjjnnzuxhak{t\rnmhf|~khxxmqf_piqkh\htsqfndbgjjquxoimtlt^tahkpbsym|}oeugplqtpdndkpqwvjszcebhntrinwb{ijdinkgcip^voxrqnfmtop|srgl`ufm|or}undevsmkjpvxtonsjenmxxqouqpqumrswothgtlqcydvnuuk~cq|hp`scga]ogijuqtkm_pqlh`udsuglqjhkoi_}uiltytesepenljqoqjercmvpriVjsvhuzniZ^j_ju^koxvqxm}pp}kk~jah`cosgo^tuftsqynwsjbjqngfurboeptqjhokXxfny{ybizjhm`kpecukjmsvjmcjmltutljptpfisgyruw{hulhxnohr_qmwm{dwjjchnqe\j}k{ur_dhqjpbihaqhkrmthojhgpxup}eavjcsrvupiqelqqvsuppppomssg^jpgqr_gxarxsoeh{ummappevts_k`nmWstzl~ojm_jiq{jqt|qwzctgjvyvnrti`w_zjzepkfpdhq{ijnagsliihfyolXmmz}id}o_xap`iptlhitomlepjmy{copxatviqmnuoint\nwwvvwbZowukpfkgim]rdw~knfaiwv_hywkwftvlrhupdelVng^torwrypsvkrzghsjren}pjf]gupinl_mi{kgemokwtqj{kqmpyqwvrrzztoppxcjowra`gr^geniyui{vZgijtzb`^nZ}juir~swmipkj|lvvsvxkh`iokkqu[nonsopnsfzutwopqddqW|woukXhnjZgvtnuhupaldjqss|xsyrYsgfgjm]ebvpki{uusvWhsrtcgbzcru`{|_gggu~jnfavl}irfxvvqk}g|tflgxsoprsign^mXbdvozbtvmz}oan~r]t_vzioussnvs]yktttr~Yqfjurnuclxuswwlrtbz~ixhal]s{{mukprb{k|pekjlokc`YYepeskfjvlbhjnmlwwsmhgoolgmvxymjmlpogg~^{nqwraj_y}x`ifhgusf|lb~t`{wph~bmo|u_sexn}zvzkjgfbZYmhnkhc]^aqktdlmmfstiilgsvm|^e|mjetih^vzv^ahlwn{[irqfqupstfgjikhrnhmrjcyngvrkoe\}agakvip^tc{x}bqlSesejo_enoopuivefaqtejpg~}wvleccmgpmnvpnsxrepl|ykclrbthojdnlcpphn]yryzo}q`lpc[jpsnwqqexs{nxlgrqfnqdbs^qvjgymnqvpf[jtv{kndfypioinmjt`brnauoqylppkmdwmklr_whaoz^pcgbfowikhoukvshzqsoofofvdknqzawpZpqz^ifjpinfiqpi|koro{loeutenpgioltvnlalknntptZk`o}|hv`qnnwclrpsffmlie\shsoipgbmrl}opqppclsjbpfyoqhbzsqp~zPluymxt]zf}rapjo[julxwpjlcjotopplvzymvevnllwq_jlblhs_gwmvjrj`hlfneffi{hpxvuhwt}qtxnqfmebeqydbjgtr]}eoeh{koQlhs`sazifsavsmj\llvgmmlwjndwxgjcjngsejueip|kvyihynr~lhtx_t|rpinkjMgnjud`pmyknsvrv]^prwdtmsyrklf]hrrm|va\lovyiefiUvzr{uomsiezaxkjoxlkogq{kfalx}mvrzrqzjjcyytrmeclvy|\jwmmpkbozpizs\uzywunfwlklqn_gmagnx[yo}r\xh[j\csg|kgpvWgyk`ljivqkel}epaeahulmr\^hlraspsemwxm{lvmrbhqsnXkb|smZesxjakqijvaytkild|fpgemuxtvgofhtdesodzzncxeibz}ipneurakyuwxennityw~chrjbk|tkvwmrvyfejcduqnrtnkibrjbfx]sngtpmgq~Zioi~jkuquipeql^rjgbruiwjobZh[oojeimennnoiklb_gdfuzog^hpoj_nmkdmcnsyzccijqgvxkpqgjumfpvexzj|n[queps|]lojjcfzgpqmplpvppphd^nphmqjt{dju]qmiys|cqkmmvmWpt}twvqtjybuprvnjdsbaxg_obto|kiuytt~\ta`lvxjhaznyhldfsqjlrtqnexprsvxibjixmoy}gup|jnsupknsxrsisqqpkihklyqfrjrpjpvnoqmhqgq{jsitkphrjkmloq}zkwvk`syazkwso{tnqd{qjqpkxmrud|jdcrirgrlevpypduhsm}nr}ulgmcjvhzqisopstipw}r|{gswnstop{rvexrjyu`hl|lpobnqmpcrtohkpvzknmlfhlspt`frdq}wvippsuq_{eqwn|tniqunhsjmv~jltfumcnfnm~hsolkzvaq^eyhdlek{m{gkk~isrmhfxlfyjgmexfl_kpmshunuuwefd^hrwxjquwmfx|ngwxynnrziqmpdg|suuvkkxlvjnmmzvw`}oont{tpbesj{z_gd{bxwnqakxnnmlnomxmmnjhrsnxtrfm{fd]f|uvqeickvtwmqlfpnjrqnxumsty}fofnmnyhtqqz|scx{|jnypcgphkbjmhndsrepss{houmekedtowtiydmnrjqpwtnot~guipuwlzfykyku}i|lsqzrnvpetoamnplpqwlytuqkafflowrxxhxvxq~vyoucs`ikpwookrurtrpjnv}_lrfsklv{exnaqxgiralemnndjlmvectpqlmm{cle\vvsq}gmdozmjswfk~igspivsuotkkudymlsjdyybilxjkbsguvxfldx]zu_nqdqts}tkiuvnjY_cwgji|bdynkbpmduzuhcktqmmp{trfhyhkylizu|eqrktl|pstd|l`wulbszxpfovaV{j_dnkqmssmoieb^jirxwkcftbylymleqvkfhu_fas{ceeenjc\klqlklhcjyxhzwrrl{eoktfvf^bcipwtsnnzmaqwujmjcojkrhg\n}vgr{unxz_pnzilavx`khqiqzqxx~{yrertrorxqjhwqnj~cnh{{qsiqymjhqwqwibdcohqhatgerxgnzzodkwpseblgisif}iltaeui\hrxmgmsazkdqtpbkurag~shTjymwnck{emirmpipt}ogeuppgqzwvz{zpmg_hv_a\eyvsfiyjpuifXo~xf]qnnnpfqr|jiequniwllme}jbpyrmjr|qhtfhytfacuvfp_qvtjriypgsfnitnkfpz~ocl`v\~xkryvhoearonfpmopgr}mdp\srntnriqsrfmhqhyspcl_fxgjkxhzrkrwto{xhbdrevtfpwnw|axppm_encjnsvy|ivZpnykkh`ettp||k]{idlqkjiZimciixqoagpvqotnnxvxkpjxv|m^d}lulzuesvykpfufymvkuiwrdjrlf[}mx`|oiuh]ocjdgc}n}pinufgl}yx{pofopegtxhfohpzppjzjp|o_qovrn{gddnaesxtiodzrlk}mnkqflwszivhsrtynlgjz]lioecwpkwlndl{qgtj_gnxp{el}wmrjmpv^xjqil\ezxkkrshjzkgj`nz`kskqjslfYlwoeisyrkp~ijrhry~cy}pzqzqgxwlozi_hvwzjlttqlzou~nnnigibqpldlaimw\utrvfhskq}dtmwbsplnbi{rlqorakvcwolmxsokljpctqunushZo{cfkfrjmqlyysloquqolbqjtylovnpnfhjtsaqhggj~xjtee}}f{mgdyi~sfhgppnzsjprsthvmkkju[yf^{mnpbqv_ulj]ivyvpoimvev\lmetl]aiqdmgwtzspezvjfxmuwmlbpvtxpbdkrinknqYojldcbmftcc|jwims~jdkpnkbpqvlburcg|irsbq~l|gsmzxr|ricirmu\tg|jhtqgp^wfaZdxvrjsqpnqvfcodxp[shr^wh`bxh[~epg`dwetnudh[njmolvlo~kpijhjvimzotjrmzycyngoktomiodgsqhakjhsjipimkkuixkwgipsvmnmfhqnnZvcm\jnwnzqvsnqttmXlnrmffp|gcoZUbktpr}m`o^mjmw`o\wpqklopb^s\xj^vpkji}vnYp|yguqtv|bafytqjol{wpoTtmlojoutlamoskskkk_ecyim|]oll`rknukpkdneqrqyjf|ky]iwrrxiicvlotcilrxmslwa{v|enheskd}rijx{jkvckkdufrqecrdhkrctfkfckqsmmskjhfjwjgmqinunsmltuqxusomkp|hcvgr\xmsl{eukrtm}yro{}imsmanxpekk{ph^ptruqwjtpp~foupfrnqooekkllqknh~p{mkqmhwfvfXtnl`crlkt}{oiolfkkrtvmxhuqrctmtommyjrxq~zspkzrqqmsyootffojiacp}eopklvrhvxidtlolnzk}ekonrpmv|swox{kplqnptmrskktymk`l{kolgjshlctwgWntsbdrxksy}ijdmnpskdtprwwxqhvuklnc}gkomen]rinassixlfcnimmtxsig{utwjgtn_rkvstilv}ozirqkr\npj~pgtvjzuslnuhsmdqvutoncnspunqtzsuj`o^dkvgjszmwnso}xn~kutk_mcohsgq`ntjtnexsgc^ij\gjgrcxrvzikuvokenkznfr{zhuuqifpgjog{kbitipknlysbzcqazpfewocfianbm}men]ioologjtmio{siprrjyanruusj}fgqlwk{r}eqwrtjjgygf^rdrrqv`sq_kudgjjljnhndnroyo{r|pzkqep^thxmnphwhcsyxsnxpmqziqoulljvgqvvnvnqpsstsktcorkkzmpnmryvsfwcoeuye{hkllqmuowsao}y^hlnvsuiaiw^r}v|d}kriodezlg|mo]tlp^afkpnbw^hgkxx|jxfcpghvs}wlugvjedyykluqlnmztkdtzwqrzy|pkrmmkempwso`gtlimhweqdnzco}tduhju]tepn}nuq_justrmrn`gncn~drjguqm{iskwslg`sqhbnhmr[mlhYjokwjn^yuaat~xhk_pxxplgfshrtydkifniumu}ni}gdfvie}mjrnhrggp[jjggit_mtnrfflknrkag^ymorpwgy|ivgm{{k{~smhhhiokuwvmxzjfilo\mxtbvs`kvi~vpswyrl__nhrdskkr`f~o~g^axfdigscslrj}ideqpclmvcvmwi_uxztzf~mmtihig}`jnyxjfkxbwotdprjhjjuwdlrsmrlnqrxiwlll`kvsluh{ynrfiol{bvm|jnfvznpvtcdarohimsktwuq{in}ptjxjp~fj}llehkmkvxo_rhavpsvputxqvejougs\prtsnvbxw}gbnmlxyctpuvhmuwsqktfp`ii~|r|{mxeempdcqrcnov}y~aodm^gkgkkf{jzqmpdtgechm^ijlmsqmdhvwqgjppg}jmfpgtntWpkbfe`wf{nemldjverhfocjgmpnhnrsvylg_jigjloroytim^nspklogproieteh[nwmmbfqcuiihtqjjho\]vom||c{qhnnuthlftjexvoemljjh~dlrojjl[}x_]i}tmdgriyfrm{njwUww`tmjtZevynqm|nnhkzwuntXuqdvmqsmywttlcgelxorrusursvhirnnz{tisahzleqmslqqslnuxi~mdl|rofhknelgnokixolcvhr`~xmhlyht`usseoiushmhygnmmkxqmqyjxxl~petmwoelso[kjrhxatnkosledjdfxtwxyykviehmesfqdsrjnnqspolv}qphlo^smmnrcipfueuhohkjsptjriyayj[uqsnq{pq`|mshyrk^mimhkphrrltpwiq]jryvikkjakjsmq}rbwtjiujlhqwvjodmqkknldhspmnmyvlofmsjqnrcujjnxtnm\lxmlgifhh}tpjlheniihu`zulqqctqaxionoptvfsWemrnZq_tqgemdvlplvkphdmpqbnugvpcrrgca}v_r}]osllf~lsjofgmv^inmqjpklmphqkjzhqwxfdp{oagvrlutnkukuxmluhiv{xifklmusnup}zrf``potgnm]frwrfsnzncvm|rjcqa[rtqersqhm^rtoohs_gli^ouuotno}vxbe~mmcdgoslnztlpW{uipthkn|mgroqyv_jpggslnsil|nkicdjb_botrjyzsqrgiu|rpo}lurtqphrlxnzxvsirlps}yt}eg~{oililxkrjmxtrxo}hfYnajsissvvy~}gb~imnvofmjiriotofiyljyqpsftedrbjepvl~{gitund}wntsypgii}vpynoj{oebgy|kqvhmoohl|fw|h|twijloklmypdvvuokeom|hqryqwllkxcokuuiocuwxopxpqrotfjjdn}iaoiivabflijxjb}`~xehukuuprjq{mcrhivm_kp~dg\sidlk}tiiiusmpnor`yoag|jur~dliymbvonodurzrojsq~hynewmoxloe]vr}hjewkyzmehjozcgVn~|q`ozqztmnpr{\nxcf{qkxpmhnopcfiynwthvkgo~mn{psgx[Ztqcghypqmdeztuuqsqusgljlek_htzxiflldmenywlf|i{eqnpoyrejkq}pduos[mluljfklnyehXtaxomw`frumomdanxlohvrfdgjhnjderuiqwq|_rqtthsk{{vtyvvnklhmzgxyrsmwhj`mkrmsbmtlksi`qrynow`^zhhnmjs_s|ldjxwgm{jqnbuiuoxo|fonquhu{~Zfghrvlmrnowovkwjhphh}kordfznni{oki_rtlnk`l|eni|lrpqpr}^rx`frkydprrnqne~wlo^cvprkpurtbjmsg\sochjdhbvvVvibpqfznho}pxiqkkm}ckmhoho}tnngtz|]muko{nlngkt{hgfejmirlpy{fwhsmpwe}bnhhukjzmxnoafpurlsu}qglor|rnsmeunurceuuhsjnlvlpoklnu_eqfsbbofcpko{nc}pgxtuwmr}nqrnprjn]byua{o~p{ajwbf}lqmnlwhiqtlrktpgesgfesnxlo}lgmflypunly|tsj[m^lotrltetic]`smqnnwknsslik`]wopnylprqcpx{{hblthnfstxeteuxluojldamdbmjbmegenbmqvjvgvrvrqglgoyibhrmZn`wmlmkj|dwjmhvolnrmng{qol`hnncozifowph^rgmlsgjfiqifkq{mhg|fiexkum}nuhr{zqu\gwrlxinhbxtzgi~qvgbbnvjuknhvceeqqrsumhubyegjrpphlzmclrihsgtsvrofqlskwgd}msthltpxriwh{yo|rmtltjk~rmpp|nnkpkfcfphglruy~vmdfijmhlvmmuvdcnjsokvjskonyur~pnnpwmslkqz^wjtigouvqbwpze}cnZidluezvwhoewwldnmcenorulbq~jolzpq~mry`xudbluvwjgshunv|afjjms]lVjfnnxarainguwyt|q~hhshtpfnbffgmmbqom`hweiq~mrgjynuusxnft~{tyyr{sc{qdj{o~hyovqytidv~ulg^tw|jz|xxxcj|ekoedw^c]Tkumlt}vsttrktleqqfl^uwnkkpfpequyuybrrq[yxpjustxrkiq}sigwflz|qjqsrsjsypxjwytue`raji~odwen|otxY|mlnrommgsnner|vntevtslhvsxnowkqj^}rsnd~fnwaq~grwvZhs{ywpvkbnwlpgxmnsjpqjrpyulatoxtwcm|nuojnimfnlshrjti}vzr{mo~n_gikluk\mg}ryqmhnv~a{ionaulsp{tibjpz{moddlerlspqkjf`srnrzxjtapoylvswnkshyvkyeinlrvnslewsqmtYqtivof`uu_cqm`ooqnqjpnke[fohjpqmnmlwhfgy]errfxxonmcrsp]ozk}mvaenletYsgne_qevmxk`_t}|lidfqgtqfkbpgwajmamzsqyhzduvgfmsoy|bxpoku\mqkmmfo_iqrqb`{nulvoqw||s~zkWvgamp{yiweguiomuxlurgerk]kxgeotnu{jk_fvetptywkv{pjufgs~cpyppwequ}nyplhksttpjpfydrmofuzglozxebvrnixxmzrphunrt}vtwvelvh{ofmuofsvohkaojbfjlerizoalhampowbsfprwodoovwopzoj}xkgcgmgzvpvlu\ohjk~vvjucki}f}jnmf`pXtrjilecmmrwjhyyzgdqjmekxsju`rjqzx}amanmlrg_hxuswnsgejtk~`vnopvple^hc{luerpm}idvn`onok{jlvdgoif[}m|_exdrovo}vuojjrkdqmaq{osxo_lnexcs`qrwdllv~chy\jzkxfolopwumsspk{jgwus|fvmmvmpnxi]kctjpcr{l\njpbawxhme[xyvc`fojxmclnhkrz|vw[odchtpvq|}t}xrrzjkuitesoh||^guwkhvqsviqjkshqmufalkywqdqnvowfjspluikwisodhmz]hwmmpk~cwqzoozoomlpae\mwqhqyjqfesuqowslasWs{tj}{fzlglxdiuw}ar{znntxqfp|eqtsteeum`xxxun_bisispiigsjyklrapjqqfgpfnWzvoqoq|`qnhtmzugapjgtrkhsrr[dgncgimxp^jw}onkeans|omaqhttkj|mzsqmmi|xkjtp^ubosqj\haspvaarwfsn|lojwkqesroi`zrxvmrklkz|khwlgrrehlhpp~thqyfuzlgcmrhd||duw}ybYqhYkazr]xfstloq\h}k^~yglifg`jmphl|pzmi[dkbdlfjglahnp}phoyoplepjmltshumvzjktirrufsh|ltjlsjikk|ulpooig]hxevcit`~a]kioetjqsdrjm{lm`miitpmoenctjf`ncvlmrofzthspq|rjpgtwythuqtbvlphfpoma{mkorlwvkexhqugvxuffrb^lowew]wpupoqdnllhvy}jqjirahoutmg`p~mpygrjzeek{{vd^etrire~vhqnpaf^sjmusfoghkdtg`nf|eqntpgnasu^jWng{n|k[wcmvpvo^nmssjgkgnyylsbt}mqhaupqix{cirsrxtpjvmikixlrgvgoftrtXkgximiskusmd{fmc|tl}jjffnqwwwdiahqdoqonfzhthgdxmxobsgskemtlih|xskxclk{ytuvvgxdhmtf~|mpmowlrtrxr{gpblkaogjdj{tt}pqrfrbwkksnmonxrrsxkjwphlqlzifedmmutl~uoq^pqsyhffhtrmh\XtZfofpsgn{sgyjgqh_Wdjlukkwf}gku[nkMksblviurtn`se{^qaY}oqpmmfp[Zoi|TbwgmhrwYgyimotaaggmujklqf}crwum}uqebriywjmtr_qqcjdUrcrhumq]xxbgnbm~mstzonhs~godqf]^v|v_adyhqmwulrhjlos{ska}qchoh^fhjubepoorx}m}xgo_bl[rdlyzof}hieabltm`nordqh{fikyv_mb{qlvavvbqijx_e|ppuwhrjxzlkZtaydYxososgvmv|ohjTgjurhcjbrbsojwbbkrpictksbjiyhokXtsbkhupcocxh{Xygu[figu`fqfevTyrsmhelwfnfu^q|`eoonjfjpwf~no}mjwkhraiqttpwkep~sjpvnd^geompvtuiuajrvzqvqvzkkpnmxtpgfxnawzigl{sqkq}wmmj|qvr`h~oqgpnwuwzj`qmgn}nnoff`vtttvx\kyfqylfqhrfZldhmgqizy|_oiuxrmgs{~qcupfwuko{plytsmfjqnkeur{ughde{sgmpq\jspgi|lvcspksUwomtu{sjrnquik{utvc]ms}vfml_|jeqh\nqjlf\ittherr~hrjmtnsovmqggmtqqy}xmmgqzmhrlemomktanuitnxd{iipeyyrlgglnp]wio{o|gjpui{qnbucoxhxqnnjvmhstlrqU|msxtitpgpeuqbrxtvwpvtmj}tonpcqXengojgt|iklcmrwhcpqulmngou}qluutkdsmomnqlqgkukbnil[qtoouiofmurnpshiwzvwivqprusmxomd_k]gdkjinmXyqwptohtfktrnovl|nlnjfiajvvklkmfrfiqjuuafuom{kxmtnpspgnkkrloupfiiqorqzrpntiiqezs|hsvwlnkikljpprjlizvqnkyiwymoiwgviqse{ejpmmu}mv`^hxa_pz|kklk[wnuplud_thwuuqil{oitqpnusjokfurl[ogmwgjzkqk{ivrggqwkfheyhsmiobiarvxqhssli}ufhorvu}zjr_qfxo}qmmsyx]ass]owxssmp~rotg^\lrhz`fxgwoupptapsnlwrjosuteujcmbyqpbpkjkmhkvsr|yvgvvrw~jrmdr]tpplckjg_lii{Zjldlvtygntirspgcqhufi_trdxrpuu]lwucksjpgv^hlhw`nnlmqujk|kfylx{qota{hedspfygqlmomjrqVxzxtipoffov_nkinennmtkiwyldwqmosmaugkxeYsv`_{{ly^Zegrhrohpjpjyxtecmpptrvmtpwsrsssk[bgyhbs`ushabjveg}rvgeripelxt|hom`gfdsuipkhzsimuh`gphcdm_\qwdguolgmofejs^teqkhlec~zrfkdsg{xbglrs\hdpfwtmq\gtonmegt`xpxeonmkpl{pylwYp^knlnibhglhkqtis|}umtqwumjjivugwzovdsixohniwqullhie]lofcdq}lifehorm`kwh[lgkz_wmhowklk]sWnk\puinhnutgsmymhsuju`f`kpuVrmqusjywUzvuln|phu|cxnncqjhjyceoiqxmsmwfmskenphoysnrivj`}vhqxglkm{hxk|ifpi^lnhmbwrfmedol[[npgkpyuhr}msqlwpkkomfoggupwspvtdpcbrujfrrublli_nhuuvekyr{twotswloujjzlgmnpuat~squrkieruq_xgfe{Xlosxl\ixxqsh_]irnivozjijidsg`oozlejc{n|si{qpmzzh{kz]rvhpbnhhyhgjmlnoop^nsqpngjj{izw|tnmtmrrnyaqwqthnpzdlputsqml~xxqk^dxh{iyfg|laxphkqicjqtvowgprhwfan~sqsn}olxonxrzhiy}wqmp\qwljtu\ro^awstdpvTdhynfqq^n~}fzv\esfy~sxnuqbhtuhussr\pbx`qluilww~tbwnwkpqtj`fom{ryssltj_qxopoqkyzrotpklkjlroeuqokthpuosjsfuflxgbrjdpqktwjkmcvh|gnpyqi}njus~zeixiiqbh_rrtybbofkk}m{ep`jrcspjvfuwwzurkdmjnujknjz`ted_k`qoxrubhfmofm[xwmgcnlvvoxu~k`iehqvns|bzhnfxeaqnkzskofjj_Yjbnlfohoneznzgg}je\qqjuwposvfqtfiiwuwdop`nl\|tvpeig^ibhshzvfqwtrkhxfbttoqpk|bhrm_o}wpr}klyzpezpjrloiffccmnRnhwjpija~ookvfoohkliisgpvdhkiwcpjo_dqxjhnedxcuauqojopa`jmhxrisvzlrhorjewshggr}dt{rnckuttocvtowfx}vlYffjehsse^^qvqricdjpy_qkhbjlrrm|pnjnh[upopolpl|tojYp^pfokcirmeqigorzo}mmq]ro|lp``xpme}kemsoirseqgzmxohjbmplrjoowm{neqktjltl|dorpfswieuhomgppkilznmkvlodi_mtnhnuptrlkorh}sifjowlpup|yyihiswpzmivoggujonln}msionldojtvjtexmkput~dlaktlqypjvomiqmqvylkxunytkwnrmsjmnrmgegesirnzzoigfgilojkmj{lhyrl\omqlgpk{vtiqnxskym{ncjkwlp`loxpnjrwnnvquoy^dqnmcuqrpslebu`ei{gopqekzk~pjpr_nmplogj{xswipkzs[jf_pvn|i~kgpxpxzjqrovststiqismurpwxhpp\Zphzpfpcsxtnupj}iWlqgpzukjfglklknqkljskvlsjoootoiglst|stkihoib{ieyvhtorlwnumv}fpa|qm`gqctvuvflehqvlfd}qjfjtrgsrrclkuvjwwdvuowvi`zuzkiimsislqtvsehrix]wj{hkcrd]fqnq~eqlrywlgwm|akfglko{]nmnueoovwbetakt{n]vtrlyof|b~xwnltagu^rsapgdsgzlclnfds~{kummkqh~kprcxpzkrngrso}cujrumrtnriliwmjmku{}ptxutty}v{tgsgffnmnlyl{xnnxnhm}fiv{oorkr\yvvp~b^ufmljqym`xlg\v~kyxothoiso{fnxwfqygufbeilio~~|iplkirpxbtvjqtndvtjakvclmjeooion^n{wrunngkvje{m{m`wldtiqljduc`jgelu]elp{pngev|rlxmlnl{qfqtnsj]qekiwyxrsXqoxhcrjvwjroxdbvhfl~}ogoivfxtdgywkljnihgvurgkr}e~vlfjowherniZigyqz|izheodcrikylosbmjohXw||lphnqe`ovsfbwstksolfaxomi{r}shpmmnaohgsxntwmnmppaz|doe}iernxgxtjmkd}mrntj|boh{gynpi}ctoylm`gkxmlnrr[erbppq}qjkgfmovxniqx`exoqtnqfwjrapmi|pxrtmpahbcqlxmkqbilepspguxsqgdtvrkksrwlkegqlghymvpbmmf}wj|kwjbfzkzogtc[ikudviatjxriqgfonpwanut~njls|qxstsartvvfhg\nsstdkm~qtvnk{mtudwhhflpqrfedkgksjtunzzmfiqo^nrpufgdgnbmkkotlqxwojod}oyelxuifojfrponiiakktsq{fzgi|ptjns_nnoyunngmnyyoonynmxlegnsnrbxtwwlpqc\smlr^lpzgv|vxdtxiqzexpot|nmxhptsqeitsksduxpsntsjoikqkdgrn{rUgdgffqpugaxuYmyhtqk^w\wphmbyzkevzzio}tonopesj^UQmn{sj|tb\uiyhtsovlqghvxmwptnzrsg`|hrlo`gg}tehdjtkfyvc{dlmtjspnnmep|vxhu}tfonfhok}mrvuxml{rj{mollfyanhoyvlmunpkkmkugwci{gkrshcmisidpuxgcqowgmeyhjsnqqigkgr[ztipwjoebdRaphrouxiXwnZqi]j]lk^_supkdjuqxkySrky}pu\gYil]cqfdvbklesipocegnlomnipjbt[`lygrhfaxmnbcV}jvnlskaexa^vkvrfdgihojbjelcnuqglvg`k}njdzlyvti|c\lrm{sspl^_ggsznnzwrpYixky^pnseft`mwogkvaoftlZbs_shkkfvkcfipat__dwqerbbaj{jg^xvhnlpvzyopnnstir{vixvlnoau^`~wrh[coazdf\vpfapdenmmitalqz[jmypw|bcwwygcud\sc`iXfpuhgvmomlrlkrrjpht_mqqjqalmnt|Fwi]g[ovqmaoh}zptzgs}cdiokpecbvnfxpwu{marpeexmgjewndcxqqg~hjwqprmel~lkol_uvcu{^bscnpkioj}ffkejshspy_dpnnnqcqu}miwy|hgwd^bgwrkn`msuzm]t`dxvnoonyetjopcniswdeuudhkqrxeiig`tnrptkrjmirogtdvhwnleuvitswxlquonkhvtpodnosaqwwwoxob]^prkhnvdmvtborjijnlvieelje}urtfcx_ikcnnnzyi_zprqhx}bdlnutmsm{magptdbvgxvcxeitpuilrpxrill^}ghqgrdbfph|r`ftlbxm|nsq[hnizmnisdcwc~jckmofrenqtrxra\qnlqfkqpqe}lxocontfmnrtrerynpjdjqrtv_jlb_jcxsrkodloik~`jlrphnnp\knucv|evjlpvqwleodkokd{nnpooiektkoo}v{ndilertcghqcmumvxntaohtc^ibwgnaevojyom`qlzZbWuqm`twsoc^n^skkmsq^gkfukygujfwkwmclujdbon{okrats}o^ii{]pijtcisqhpmkokguqh}bb}b^|kko~zeyrjmltVjtjrfhxlxotfirswVmewnkpqijpu`cfipngvpirrjmfnlcoexe~n\pitlnqzsxn^|\atwaodf}nmpfi{jilmftjqp\iflsc_f_`um{wahcxsfu{tzaq[geuguthmbnpobkqgkjereoq}pn|ojroxjolvsrhomil}jhrifokubmn\qkzqsqjbqljhustisjrpgqhrgvkyzthjton`rxxejnvfhzurpltwwevUxikc\hvoutdevtiorvgk_fkgm~khoquahwyohr|mjapili_zfrltnlaqkrobyglqrdcc}skegoereuxsq`srkblbpmwzqhlmffgpkitnlvyao{ysocqlerujqjwgiivwmkvnxmilfrnex|upebnuslqyhpubwbjomu{upkbwh^sbmek~ktw{{sb|}hjynjo_|kn}hsmwssiephurnpjj\xnnivvuoqz{{t~{sjlu`|{blcpjfcpsckhyeiprpnvcil{uvfpjwtsuycqpo[chqhjuqmsztq{gkwviwwgcsb{jx~ui}esjqinkssrzeckomqqtb{lmxgwid|nfjt~hqlwwhaoswvekkr}mqswclo\h{putrmsuhqie{jilknjvgtokkroo~pllfzhnq^mpicllsivk_|wsl]gwyphtqpqqowpt]jkttk|ywsyj^uloqmvlk_yn~roqlhkfunZvvqz{ryocmmnouui^yponlux]~ppijxkwmhpxhvjeppzpnthn~qlmprs`suspulkju~viywyprylykmpjyrposplwn|ruxomviwrpgxregmlwlgonkbp`qlyvfrzlljtgnm{lhu^hkvdommemlWefzdgqerqj~fsjdvgjrcyzik|kbehyzhxvxcmwjdnzrpblphtojrfg}xsms]trfkp]svmkdmhmxpolj`ijfuks`ywqukuost{rvs~|vpeqjrwwum{sflnkpvj|qmoz_txfsanncpkpnhlqtqcko]lupqugioimorldu`{kiir|jszomxufuuqc~gp|enpkmoguwrekpnqdlrfyqnhwtpgtwuwuugyspjfbtpjespvonp`xbwilwmolgwllnlqqeus[}nrgsob}lzaipjwoolvkokzfgnh}rhqlogktmt|ov^`vphyjogq{cnowrmhgokqqgpfzhvrqolnogmddzsjotnedheku~rrmbqrnuu{qtlvs`u]iosker`yfryxprgzrgrtni~lqe|k_wVifsgqvnomatlhqetaosrxkzxrrvuwehm}pcnuyqokgqln}wmprlt{mjxvdmlwvaxwyslotslyqg}unxhhrsr^isvnptoqka`vbwmuozdfnlgcivsqngonomb{uju}wuvr}vflsklkokfmul|oowiixugyolr~mzvlppcui`c_oliomnlprmvvznjnugmw]rp`qvvm|a`rxgxqrqunrxohqfqrqdnodmstmim}trrnnnussapc|okrZqwhihsrgmqqoqkqx|iplzyZsr}rxnjl`nfl[rwrsckogphk_pjnterckntvkbxp{volq{cjtmzqsiqm|itmiomtmhfgjtxqmtfjvmniq``{upqqc{ryz_qmn\svyvnrykfoopnngtw[ordakyloif{qxnnlykcimftyjqikmmpxr|falh`rpjmmgnnku}szotfsja`ns[nrtigi}sh|mhefkmfrtlypq__fkgvolcbkkvs_prmp}glVmgmtbmnp`xsgpkh{cnqus}l~ejf[e\lflrifgttadik]cftjwzhejv[litbofag`iimhnswnidxjcykutkmohqnkshnplqzcjuuhl`gczpp{ui_hhmzgjq}vsdxizlnhwohnfzclypgojk}utmumdnvv}|ngxouj}nekgkxmakdo}g`xmhk_jhlkszbwkroangmuviou__\khjfruononv}torxqrmrnzZf{evk{lk\jahrhpiqtwykskvsppduvhgoa}kqxenuppnkpqjjogm|ovnjsp}rzheqjwlfpxlq{wuruhdijqnrn}tmii{unnSmtgx{hsgd`lmpg^lzlyjiatxphphkjrjjrglrsohemqhwohvmzmhhkm}tvaojpchcm|wyqkq|c`qsrht{bh|mmdtfrvq{{c}sjtrpessxknmpewblbiik_nnk|miguo|jrohvdtpsqlm[tynrmmgu|tkqd\njwhoblajmwrl[knti{~f}e}vklivqsvkondkhrjnohyhbxgltpjobqvslnlrletl]pwlgukflqiugntoykmlkd}dlxkvkrtqwueqq|~dftloefjs[ripsulqjhrtrhlezwa{vbmhs`cutriwrho^`nligkzjqkfhwlyqmkweujxcu^dkvknsxpqhr{{sos_irq^emohl`qlpmnqxltwsjvvhabnomnrmqlquehlmzyp{wokt~rhhlwoieVfd^n~kumumfjcipwonlplijbljugol|qlvcjjiqgjpy{_ozkmfbpylfbmhpo]tef}incscltieco]xnbkybe~tikmpjohblj{kbhhliwxlaccsqnqhbimujfnufivuw]h`uorWuxjzwXzmehyshp{f_tmucia}mqgnZrhk}x}rcqon\_phqht|~scon{clmonekrkjnj~ieho]iumsqdndpmuhdruo}ngp`oykotmewxrksqdxzfwqmjryelqh`xkulzt{mv{lvhkkbvmglrdent\}pjsrnosispr{n\qvtxytp}v\ommfwa^frtzse[vooudutvigq}uqzfwccbuks`}jlplxiuwptxngetoouyvxlnkowuwhjtmxrstjmtgeint_xla}kmjplnahcinnij|{nlnlXx]erz{pgk`ttuyduig{mxurop^dukhlk|`ukqetpnoylolu|yuo~zhnjupwplboimmlajhmveueurvltdruj}jajwyjxfmfmunmqoiqhqbUoogrxlh|ger\lv}_nmpvjmpasgkz`kn~{Xtlvsiystnxumi~|kftnwyynuxtZduh\{txoskga|ksqZmi|vol~p\wuvpet^dcmymhxeehpwrqtinu`opc_qmkwnmfnwpjZ^fugrk|pqjnl~suopijwuejturaqlstlfim||jmky`mjmb}kdiaoujmjgqztoptboizjjsmsttkvq^f~|avqxbjlhrfefplwwm_iscxi_{lagqeevptdje^mkundoxkpljwmfzoh{ufuloq`whdrisn}ibvhmjpuf^mlZq~hrpmdlvemllqcuonivnlqlorpa`oolrbohxvugeqljijnelnjrmonkb{cz\toxjthoharh{mutkxken|drtygigdwvghj|scifqhjyscaabaempijtftulvkix_gssrok~lpngmoumytWXv_Wrpkjqi[nz{dlv\gsdq~n^}ps|k\vkuxlgzpiztpjmksnarjy}atZmnreqdYkwplnps^mr|]|sxfr{rVXndxisp{mpjmjs`robjjtdnecgmtshi`oc\iopdu|kktibb]erco|dxhjclclyhgo}}oqq~]qbgzugxotwixxpunfw{igaUrfwowerm_fdlr_xwokzyobptetvkgsfpfdi{y^Z{lqas[utlwnyfyplpimuqra{lmfvfnrsvbjm}yki_kl}d^vv|nWsluouqmmpftwibdmwhehvlrtium]rjuezaaonZnnekscqyutdkpu_k~~hiksgmjqoxkztdyfqphwgsp}plksg|qnmovcv{jphbsupqphrynskkqznsgofdtjllkxuuq{lcouswtkok\rhvscesrsnwlmmawwywhnssckhqyn{swnshjrblskks`colkrmhkmkdlryjrgrngcoh__rybxpht_mwkklfrggss`kqoyssg`g[mmyqxsgcfnrlq^n}brqtis{t[ukwdsicqutrpmjpgi^dvzqtjzkpzrq{srr~lbaqlg|xtkionkphfsyqhqfkpgtsrcriw|wvhllrpvsiih]uwpg|{}u~troskzmdnducozfphjhg[iqsqgrswik~{aokrnpo^kvhzfcoaouoondymiwuwhqrdxjn~fjftqqlknhrnnrchqvxzqtnkclfgyvinrzlibpnutewdoxpvwhatb|rsmkYzsoemrnymv[ovrx]cqkogr}ngkxvqmkxh}omdjvocljycvubibrkrujuuephmyzucqdsbnpfolmyxdcj}vcnlzqgjsvzkpthgZ{]hecubcyqcmj{yyrtrfmxkxmowiwstted__p]onotk|ezj|ngiakll[jjtdwlruj|xfsqnc_npq\qjmsykookynqipw[ukfqhuofxxhksbplfbupdmsvxvnvrfmooqhgobqkqlmfxmsyrptlngvirwt}ilmjvuoorgiusku`{xswe`]`uglr{phie[`gmxkwmuxfodqlzrmovlvdooe`|}pjetegrqlijyusdt}`mtvw_uqenyu{mol]sn}{qzdlpkgrzm~`wo}vvongurnktemmuv`lwtnj{r{vqixh{usf}|uskvkzpsew_uyreqoexdwikagkmz|{zvfnzgvx}rr~np|oqv{lrtoxtus}qxwfutxxr`wkhono~vucupxnrgr~jvgk{pcidvdwwhvtolrhzqujbqsnxurj\tp|rvuupdmywrszlquumiqmuzrthiupskfigi{~jk{~tvwndokpmm`exznjow}wttnvvy}nrimlrhper{iyvux~n{yqrrzish~qv_jt_Qrq]uhmkohpltirn}vr_ppzqlp}iuioyk~kuwog{vrvke|ymmvwuzpxsl{rvfdwozcrkwn{jo_tfwvhxyl||kspiqhnkkenienhlkfqvlm\zimhp|ojgxceeljlmrivpuxufnzuxo_pxlflp{kqli|ulqq\guhlsshkc|crq~lmsf|u[ir|{vkjzjwxemmznfcfm}_ugnys_l}uhtvlsppgolsqcjrz}rkbnoppq^wvmkhiormojbioogjvwiytwpsknfojl]iixiptmswtrmf}u{its|jokZgmdilqmfe`tygo^o{ppgo^gq|l}tzliytkTu{nwy|ppoycjq}rxmrjmpqza~pt]hgulwl~u[qofqoo~lmgmwwsnqX^lzetqnzfpthkdkbmr}tm|tsncfsnfuwnjjckrkvqjjilk]nnaoZpt~dyu^imdrhokZ]rowcymxnrskkf{hawk{ysv}nuxioxaiv|p{wtgshwrqfiqhk[xvrepZm\uvlharpbkyesl_||yu\hu`hnppjtjoepkjuZtmoarm}uvxw}qk~myooookfgzvgkertnozgnq{slonr^ukoistp^qmrqznhduborg`itpwapmjez{rwycvymxhiizflftc`q{pojkwowsdfomqqhwm]nhprjbnjjsg|dxsljwvnrtitk`jsztnwqptyrmttgdkxorpvguradtw{tqvjpmkmimgvrlqgx{rr~}mygusbtrqywskhfxkhvZfynobivcxhfura{tyz`jwxpmzcdx}opnnk~muoqphyjyiq~{kvt~hhzyuie~fvtirtirypstsdrolmmgzfiv\on]m}hu_xhnz{hjhpnzwevjwuugqvxfmkfhgbpmzsufe}buxs|zalnzgd}mqhoonrkrzxneylo}m|hzpokuxzjhishqxmfrol^pmhna_]pmgjptqnmjqT`~tmnntka|om_sgmjrvpvmniv}iutgiohrujpzk^jsystsmddot\Zjmkw}cypn}i{m]m^lqusopolusimcuoxdwhYhq]ooewqtiptvwkha`ligwjqpn~moiiyhvoedoa[ng~cmx}kmvhrxjg{hmrfpp|fjljcqywzjxhdjvidhnjpflgtvugijwvm\gmtshrpjmunlbopefty^floim}kicqimt|agqcsx{mevpprdqzgwqe{xgohmhp|`nhiltwrntoaxsor}sanxemxxcsoejo]tfi_q{rfmmpammnoorqriunpmwsaltteuwt{|ukforwjxpmpyhrecWwzuq|oiycj}{ilqsujqq|cxzewmpfmlqs`phxf_dynwvdrkvgnzugmkpmypgqgbqatotlbrgeeif}poyfgmqimqhhfmquwltzbw|upfmflkuenyokgchslulrfcuurjucj}tswp`frmsyfkhlyxcgpwiudoozpz\xkksY{w|wk~poqngecubf\slembsedrZnwkhhkviwiunoy|zjghhppxm}ghgjhnrlmrhoovz]tmqjbhkepc|vg_mnxmlavrzhko}klzfhi{dp{etjtjamtgmqvlkmudwatViohi~lpqu_y\qtk`sphjtbaphgxfoqklhrgbfcq{~j_tnmyuutdou`sejivq^}hy}ksuu|Rrxosx||[}nnnqoztmb_w_zesyiqmdXqs`hxsppqt_luxol_lpqnkpi~dmidgm`rlcvldgvptruwo`bjsvsbwmkq{fq{rfqooihlgeisu_hvpijksxiicndqr`ljouom_k}hxxtlrkxnqh|diuoocinaojjnuw_u{y]ezmit{p`fyfkrglkzpYi^butgeelqar_yqoefxmktrwp]mocunq`lvrp}brlpnkafvffeZh`opi{hu`mL]urwrssvykqpYy{ilkokqorscxyhxcnopfk`mvpmgqjfr~nnfxigiuifikijg`cdphegj~Ydfipteqvsxootlmylwqonlofxdqysygd~zsespzo}fkbi~xiuxiwte^xlwxj}xnhomvyil^svv`_oituhulhxdddtnppmfgjumnkhzrn`xhs\otu}o_iufysklpfn}bnfwxx{dexovcnxj{mqrkwg}]unpx}hlbcwn{wdfk~nknfk_tmgomukvzsqshxdvlutpslr}mi{mwu}|oqoqrr]unxiwuYpwmlhnlenxvo^thrpucumh}mgf{c_sziqigp}fsQhqYnltmufm_m{uj_qlohixurqtjoprfat|pxxiiss|tjqjgshmsay_euzof{hminlgk}wfmrn~wygijt|l{mowsqseyugrvsykvtqgmlwnu}od~ff_jsaoiozquwq}Vbpsnmvemsbkluedst|l]}lhae]bre\jcdojgimie`sdkovhflko_eqccrmbiu{ijokqd{{kjoukgpp}ppvcdrn}sudnkt`ql|sxsnhtwmczr`ojt~hoknjlpti|tpklgfzqyrglbtgkpwnWmskqelh]ektX`pxuiu|mjh{|s{jhsaXvvveqkrgpqxptkpjikinhweviclqshdcmyWuianpjipmshpivzd]qfldvkeehkxofbY]flrk`xhrpugttjhx^Xvjyoctgdeewxzpgow^pxmjgboaoftunlhjkx`kcndhoaon|pjocrnouyyzyprhtrpvopkvrtjntu}tlhnf|jkomim]ctpmfn^}heh`rouknppkofvpfcujqrljppxmplpcmp}rkmkqadn{msmlcramzg}vkaovysm~m^iozjpm\w]qqpkhuv}{qkqmfru[mrury\ugfzowgvv}ewupqYzZxnaoutou~j}t_miokfiZsjhvivfnoripjycg`r{jghntpfxnetagwfkrsthzdrlmmv^\m{}me}xpqnckpacpdp|pe^llqsljn~]in|znwkvsfrtayilnuxYsginqcippsottts`junpqgvmhwlfxopxjdwjcfhqhcyxtblrv_nn]m^ziamns}oqmpksndwuibpmuyrjtrtmlpngrjkdlqgjmkxorfjryprwxb{oaydcjtmppfkflqv_mhotmjynrjdkpounsi_ysd|ocn|mipgmdz|rvliitgrs~ifxqnnqdgstqyphr~nrptcyolkimuoumnskhjnlnkdlepnpgpptjwursnhhnqrrfoq_sjooulknpmhotqrplmcfshfkdTfdgkatpxm~f|nmei\qxooxu{f~o_fjq}nylt{o^n`pnjkldvjtqlupysqokNgliw\gksjsx]eq}ms|kwsiuuhco_pueqapkruqsn`pvzzunmnuodpguyokhe}i{qosnzkokw]fvpaorcomlwzvstgvh]ujxvnqmqq}u{j|jketruiwvgooipo|jfvavslcqppmsbic[{dorpxenblogqojgclgiizxrsesakomlgkfdximpqtiumqteiavtzsj`tsvyxxnrxnvionfr|fop}momkdyvubjspkfksyjgfrqkqptstroplwm{ens{thm^ymluvgoexnknm|mnomzpmv~khpudk~z{dtrhjkhmikkjllvyu^enonmmq_fezmqqwbzlmcvvsndnztmzqnj^udumwvrhjsrywirwrsoicrfirlnnhigvqyrwmhnhyqagg^ntneo{ofln~b_nxdkWfrpvijgzdgzkrirmdhzom^npshwcdcswfr^~po{vjmmwijxrm`mofmmfrfjytxh{ufc`aippmvifwtvmxjuj{stjl|_lljcukpsigtoppzoquqje{pnlgmfy`l}pgeoisszhqvq|xkppurkt`ikqv`a^jpkofqp{gr{hy{gp{nzox{uf|lxykuumqpzsglsnwuZarunkunin}iryqrkhrir^whfwon{yyel_exhrr|~jp_ovnhjjgn{flzepkcfhggjdwcobjaezyitnpsmoossz{hjdoaqylp|_hc|mj_cipkxmlupcof~mjohsso|llo{mzoqcusxfibvrrjj|an[e{iragriYchdm~orfonlmvoplkoprlxshkpnzcon|prtffhkpn`ffcy{qsylvcgylvwho^gsqpvpleqstorhfhdftoelflk{okthykknoqltjllszeglxuwdowxghunq\wkaen}ksqqpkjkymjs{hlhpiwtp}ulodoigohsrjusahnojg^nok~ooyuhuvnyowcotswumwvnmsgW`qjlypghglsaieucpgknz`poonuutq|qdoehcrvfvveysmghlfqxh}_}qqh}dwsm~guosrqbhlqpsruuhvpsfstozztkowd~nirolhpz^glhrhiq`ssomdpkmtzlgcirfsvuuilq}~mneh|hkxz{iolejkhhx_goksjzucihbuflg|wzrjcajvunml|lamgppiexrvz}mpvwnvjjviiftdp_ihxsxmgtwgijnrjoZjujd_vjtr}csovjhqlxorqpn`rnptmq}opxnywpwbsswgxhkujzph{ikxrwtlts~vmzjxpqkfljiyrkiwtsvpjim^hevkqfrs|kkybprmytrtn|mj|mj~rtqqkqlqg{_vkxpkpnmqvllgeeokrebhumju`mpjp~sqxklxaskjenuhoixjaos\w`kerqvrizqmpZlurofstdmwlpltb{wrx[vulzrijrwgokdpdm}tlbryqkthkt}qpnv`lkkeummuu{tpnpuyhjx}hxgkoosXgoxi{{nuitnbknioucn`\}siv]xmpkhqqwzmhbkhkhzhjsrxisorqfpjeioqmqeaodropvloxxfwutqounnr|tmyv}wpjodpttxxqWhqlo_ki^kls|tickX\eydoutjohossjkwmgapgrtoqurbiplpxdbphwrgbad`gsihdfkitunol\^^xkf`linlkci{~smmk^|kmn[vfptmvhafcjsvwtkvsll}lalhd`nork}^qmkoytmpjpsfhrdnfkboqliq`noszchimnu|iwnfniqtsplrrz~oZmdnfebujwluvoouxipdy_yyqtliixmiaaokq|^qosptlf_glhihjrpvjltyhkgnulsd~yly{cnizlk_ddyrrtttjhhsdn]uvoqknyuujazvgfmekhid[sq{wmesqjmvn}rklkicxymhv^nxeznoopWf`kllStzYgznursnl|zezkjnnbgqijhhenp^rzeragzssrnbxaxoybftvjq{rsvrauufgdcqvb]pwo]]fv~k|ehbigywdvz{}uqrpcltunfmhopqfgktrquukrgksppmvpkngdlrbsyeairaerm`sbvkmq{hqmpr{qoj{rrcsmwqbuknunugquogjmqhkqlzqmb{akgkaibjyzsioqu}qtrnimvnsszujzfsyUdilrvfrcxmnu_rvxqivzqbgvj`egtnmdiksgll`\rW}ozropqcvfqkss^ulrpgnkrnnnbxwrrzxm`olroqmxeqplm}ffas{pixowuickrd}[umprflzjrwon^pogulnvfokjp`sfwpqn{iascpcplwioqxdxmca~pyjizleqzbmgjwmvrbsu]}zoji^pgovotrsrxednrmrqrlgj_e}ygahlpsdosw~djqgtrlnloqhsw|lqdnm{`ml{vlpjulkkppmttuxxjlpme~bmvn`od^dfqceln}rpdaum_ilrgqzkorpajwuvzygsukdpw\{yo{skqqyiswyddmjju}bmxzpzx`lweqhmymawmkqinnilkn}qjgiao`ydordubkd`hmelnog~mej}seuykneqmjfipmik|ot^ljyrlfymttriahfi\pltkks^lpmwpcb|nrzwqnkonsrmhd{}qldkiowttvkor{dlujumrx|qdmsqqzmmqaktsw^kmukqmswdw`hnpiknusxoxoqdxkgza|pqem|slfoetc}ad`ponl{wo~~ug_|`norjbmlv[mklie``au`vbdohWjokmhkbil|rd`ikqnpkclhYwwrpdujehjgphrixwofjq{gskuWgXhctcxnmujsol_|`all^vug__ooilpxcwmtkndh~ct{mlgvtyj^^ijnnjamjnttoimxgv}x]arrp}anrljshkllcmwrpznXm}lhhoigsaxugVsxfozqxthlkmq^fndth}fiut_nc`hgOfqx`hwugmtiorVaqlmwgpqyxdqmnrn|vrsgnkjnx}fbfqmgzynzxwulhxflrn^kydulh^jxrxrsleirrtmeaenbrygucljhpymnj]x}m{lhtwXgplatkpsnpcuqtqr\ojnsrsyhppyx|qbrxodfpwo{om|aitjum_lruy}xufinbv[{jqvxkujnstlu~kjstiusjk_ppSnmzh__t~n~lrqstlpxzhrckymutckklqjjnc`v~lkktnrqmbkqga|rfr|nh~fp[pnntvasptsiutsuylulj_rumjtowqjkmukvm{t`ufwoseiqjnyujdqhbim|qf~b}fkhtxefopkvpzqwkjdpy{tujnxtrpfljej}yrnvtijwjlgborwhk~ymhcqjgfiozwpwpe]pfkkr_mrtjqikhqttziutt|tygykbsns~irerr{qonpwwsssvuwt}wwzsprikogrnp}jrjik{iimqvktnpejgqwgl^osfl{venmtk^wji|cZ\hstqmunen{mrwfkjvnx^uslnjmdvapiieotfdrqvznxgptrbrmjpp}p|gzmtikymiiajhglqzolckxenlrthogdtdwztjznznkvgmrqwympypt{intprmokcivhbvfpfmlr`hmdtwig}r}qvsqlz}peogmhp{jkegvwhsusqlmsijltfbpoo}gr}qvyppwxvjmrspq~kdrmzleyqilhvbzwrzcpjm~pvpmqtutajmpdvptdkdfw|ki|_gknrrXonuix}thbpv|ikkh}xljl_crbhvmiw^snkdo~wsi|hwbn|kueqnsmltokprrhonkf{xh\hs}cqlxpTxd~rrhuvzuglatdnxjvspnsqnhjigpi}mxqvkreetwxrwmaogopseo^tpgd\qrnitfkhcjb`qvjlltbfmaIpnlfjmfhn^w]zhjoilkwllucpcudbmg`ohgp|vsuavelpgszs`jlmukqml[nanfsk}kvxjl[tvsgskxjymubxfowksdlse}ecmrnpor~udrph{a^tcqYqlnfgwgnmrourawrdjnkhriphl|~rkhnhlmrvhqqniuogiaqrtqi_~_btqp__hslmwce~geqldsl_^sgprSfiu{qirqmld_cqlfiojomtwjgnpotdqq{votdlqrntzxoksktkbilmhefjl]rn_dpnppm{p}upvVvfysowkxhwxv`jvuu}}picXmuysp{pqkxzswqr{ttuzxnl}x|{yq}r{vu\dpui|swormvlatsq{xy|tlttmic}tq{tqwqyrw{owntjic{[}kl~rrz{p}qsxo_~lxnwf^~ixxqyof}qqxymoz`ttxwtltxq{es`kwitwvtotgmqrnlsszqcnzdsr~gwrfv}nfl}eqew~n{qw|avqzt~ulvwlsrrspv{vpruynqow{dprymu{ssol}fo{hg|cnpkvFriktv}{xvr}thzt~pvs|h{~}oqkkvwrp{mnntziklvwehjxpoqnumeqythiim{kjqnhvuplrtn{wrh~swiugk^tejZ|ut[erdsshm^_nvehwhbPhrlgiepk{lq|sjfsmrp~`dWnsynnpvhjcqiurretxthjmohmvjozctvxwf}i{]mkdiggbtkhmrqluqluavednwugmloehgkstezZqxpn}wixvenfirdtn]wbdzhk}avlkiyqpsqmzdVoygopknaderdwwrcpw_nopmfo}iniq|wxerRwvr^mpumgpynwoY`pvkojimgbtvm~qqrt]k`tdejqpfqjiohwytvmmpc`Onsesisrunilr\mkhrdfuscogixkgppins}nrMgqp{pltpxkmmotsqbcnyinmo]wnj|Q~t`oWtbsg}kuhrm~u\iqolrhdowprnznt_l[rgakwq|pqvusluljmzktysurwhz{xxovkccwfp{ofvtugwojq`kgd^lqiaYWsfpucstlnk{vlgcbwpxf{kvmnfd{~siue{ittr~a]swmiw]a\njljpomhtnlheswxgurql_pxturqlsjqu~~nqopxmner{sfqtokqtdslmsewfr{uztybtswtcphgxpgrmspjn|ykvuqhhgsjvdbvvpn}lcw|hvazvf_kxuvhn{vgzoroym|sxeoo]udo{\mq^degizhmqjuz~rqqrmWjRroun{xznanmvnlw}ylln~di`b{xtqdkpjl{Xn|^trhxwhfgqswcpjkrpknryltreozqjrqivkc|abz~dl}kpmivkfbmvtq~lufhtvi|vmqoufssogs_mpot}}fso|qhlhrwrbr`qhqurwiw_[edlygrco_~lehbbdkpfcwsotmZrkxtwys{yqkqvmnpsqpwsy`trtt]vxlo`uutys^isptdgpiuln^hgfgslrjpg`lbeot{]luzvgTudVrr{hofmmileykljpvkpvkmotd\alqhqejllmhsjlumbnlcp^oi^on^yr_llmkgmiupWngwpil}rmldw}rwpfjVrgt}bw}hogskjmesrdjastxphojl\illi__ujmqyjqsxpql`xbtvkqyffulkxnqmvopf~lmh[jxocpdvctedoiormt{}ufkgkefrrt~mxvWidhrov{fsegxg_|hksi`mhntlgjuoxb]ijzhnpkukxxoarvo{fuljsiuftztmkwvw{uip~stz}jvflspktxtpjlk}kinnNv~igpljxef`uzkhmn_~wyxzikueursjvctjyigyyssvyqokomk^ivpjoju~kvtoyinlnsklcqfW{R}werzloy]lo{pjilmjr_k{sgvgtdncwfzqooh~kuvrihegoj`{svscg|dxounkjtgkuostasn|lk|dngjnsndnvhmhq|vooqkooslfoj]ko]m}`vz}glnnjgs~`pzWhpvmim|noy]nnrxkctnwzdsopri\mip[|s|mdhloaqteipxbnmpfmqspt^wmp\jtz}fjldb]qeeqnrimovbvliyep||w|ppumk{lqoquzgwueqcjusazxmfep^fnwmxyfhv^wpxrzzrwjt|rukhzimv~|hgqjmrytzqmueiolq{tsmtlekottposzcuicx|evtmqtfvor]ue~qtxjenupwvmjqukqoqjtmh~}sluajogfn{kvxllZmkrfvkonijjbglceaouwlla|lur}ssyszZ|ukktluyzuzr{ilysmguw^~g^ceymtibtiwinuopXiroqshjpxdrprqxmshosmsmjurwirhhgrjo}mk|okmhfnn}xfwkrtqnhxkvuinrnmnhoowfzuegtudczncxppqnqsktqdualbj~qqkqvnitru~_cnylpmrpc^ne~pjrphuYYvuwbnlymfdkjktdkixuulqbvrwrjrvp_s}`mwsmocjkqhtqmxsoggvmilv{kspdpfrstgfzppfipdvo}mixd{i~tpiWhhplszi^fnskjarjkhj}rqnpmjpzx|fgh~wvaxxjusrmnWze^qvfskftqanbvddqrlq~o|rru]jbkhnhdtnr^vhohn_rkiwwpmqfomomeeqngpb~otbf^hhote\yokqmf^qK^wqjry^}npckmmdinoepp^mqxtdufj}pu`wixokf_mrk]p{tihfuxfxpvvmcpko\mkjb\crmqm[tphkh`w]ltjkmfkvhm}dtovsgnjxdrrp\]kihscuuuqcxemjyvdeimjfczlonj|gnnll}xnyi^zmdafm^`wltqkwxmuzgsd{pbh~ksiXp`vzbnznynztkomqqcokg_wopmnxa_l|ir`pdkvgjqm|ppecthstmzy{kpsz`gihhtru^uzlbixqqojsh{coyjvsxellanorqop|khmwsqmjnjrkiihm^ttzmqkmtf`ozpenylij}nfmeowjcipnlnsk]|wrunyvicthtapwogxmlsWvtmmyjcZmzloqbzkjghhzq~krkmrxov_oypgl`sid_dwo{t{`pbgqdlmtk}sllznjbligoqohhhzhpqgbkyomrstk}tlkgznphvdprjlrbjwtrl|frvnvkkrqnrfmxjdimfrblddqigchqjhdopevofZivs]jagcoygdhfcj_Tfkii}xuqoeohse}lgqjycrn_|k}kjqmgxxmZje||sdvmgkx}muqarhbxvznt{qpaiptpdzuxpzommui}r{vorelcmtiwk}rqr{gyrjmbksrsljhroousl^lowyiwkshucqqoumfsmqzsijkbinsrlhrnmqhsnthqkqzlscqtlsogwzpxaqmlke^nvgqrnurjbsfyrvgk\h|otvtnhxqxrhkdpanmwkkg}r^kogi{_vf}wdXstn~tjrd}gvuikjg~rtj^yosohwhosk|ispmd`ruklwrkt~{x`oqt}pjfthgypwgnyors~lqhRnnmufu^kgmrhuugfuqm`qmkjkpbpoqayfnglejppmkw_rmnuXvhucvwlkifrlxpnfpsdlp^fruxlsihfcvYtdjhjimqgnn}l]uurztqiuvk}}dvkskivo{jpun|vkmbykrtnnqrcneeqzs}eny\pl~wwzsrlj\lcgwu^uu|pgioqnqnmwbywxf|ynn|pmYlmhhjximposlkg_noxgsnpibujnfskm~wpgtcm_frmpd^v{tn{gflg[k]xktxv_nnnmngoqflf^kWkqeufshulepphhllsckfnljgrtosl}ramklqepojoqoqymrsgfb|mzonrdxlpgkzeqjveyqgsodrv~]gwkcipurgrVsozridpgcxh\w|Xw[xsls~l`fxjrlimsts_{r^g{vsuetzogYuo~fnsrpnqi}mimufqwfnnng{\xqshkalrioje~miprfsnqnlzlqxsopimvtiicjyohbenlouaswhjlt}qqttggrdp~prjuvpkyasutn_qztnr{hrjpkmubq}h~ommgnsxjtfubqg]{ddposcwyjohnujubmqrhovrtizsnsaklzqkhpaaakcuufridnupfrml_qphwpsywzmdgjjfi^p|cmmeqjmizb{txfmh|vmomkhwq}irukbkzo}j{aayj~lhtprxmnmftn_t_|shlvjXr`pqprp|xy|dywjzoyqnefhmpljplr~b^vkrvZwwmlhpaswpompl~gswqbjwvuowSnwidv~rmqyfunn{ikjr|lmqojryihfwigqpv{j{pnskbosunvpxazhrZwsjdellenukmhm^mnmkionqptxtsypt}`qjvomdgflqba}q{q{lghxnjkyushtoozicnbluoqpkr^sokjgsujrhsl{lxutodqsqoet|rwjivzvqonqjljklqjtqpdwdumhnnixqsc|oaiikojqlucdsqjvefsmmxiwmqjmvtyfowzkgphpsqgpitm{twlsmwpmkmhvlm|g|tgppvlgm`mrohoqhxpn~llrlp_fwlflralr~qv}fdnklxrexojsvmdopkilrjkotswr{_kfrzqczr|nm|_eyxuvsjmcsq[sfxdkjwgtqeptwlj{ng|psdve~mpui|hqmgkbu}lgpixuqmritlzxnllowusrh\qtvboxpibkZmkmvr{neqlnopgwovmhchj{qlrszj}pnlemigqtfbhirlankwq`txilaenrrtzofnxaeugnegefqvwmYldt\tf||grsmdkcokncjixvjr|~uy~z~}mbzonrvioebjbwnjwhs^dvu{blypqvojswpggezporovosdfgspq[sjq|cuximyk}jlkebjofeyn^r~tlgxyulwnd_odlig|gmgtonp}lgequc{teffm`{swlmfpuikmsiqatmwxusvcxma~mqcoyvm~n|r{iujyptrxb]rbtormcnh{siij\x|hkpvhrgpvnvqr]xfjzw}rsgu[{nkrvdwi]rnvofweunxmirsjwluink`~iip`hucpUloarmkee]pebxdr[bpiusskndz}uycttexk_pebjhoajikukd[km~juacmqr{pmurpwssszclfbkmqvjfuah|k}_sxdllyl_fdfkgjipxw[mnajl\ftiux\kkfxrq\ek_ioiltfagjpofgne_nj^lkb^rnkkubXhvblraommhhmpnkxrgtwtp`igfapwl{qpolf`dlf~ruertrtvnjmxkplfrmxpuwnnqvr_rmfilc|}qewisgw\rqrzkpldgceuwixjjsofr`tchiepu~djfeg}isbtlqhqnpmkV{mfqs_pphamr_k__i^r^d|mhxnyxrwghkstqthc}aw}}~vq]b]zmmyqnvtr]pgphgkyakplgYrd_jwwxinurt`ipqulitqsnqihVz^fkbmdmmtvjipvncglxo`ppwgroxytZqlhXggjjxcgtmlnmlwi[ynypk`urkkjz|mnhuopsfutnqrYnfdliVillibx_doz|tf\~e^tnu`x`wp_wr^ijy~en|sqtiwv|tsittgmvpdifexra{e}h{qyvybwwvedjgro~nnpiwlcycqtlwirzxwdqptinecbypkgpnlkyuXolmusml}sgqhyfuunszkspmero_skrnmgoyeql{mqeoeuko}kd{{rrus|fnnnudYhqfcmjkxqjprjz~gmrzpniijep~hl|\tiymyyvlorulfudtosusmhn`cksqdbtmjelmkbrmg~kjjegayg_ntwikrvkwkkovxtsqtihwne{oq|{vsscu`qhmlhsnYsvyz~hpc^onujfl}rv~ifwkufxwikgltxvitfpnruqllsghhq~ollnnoeticrcudj^gmkojhfmvdovmbmpn_iw]silqsipcemrzmfqdfsklk~nynyykmto]olpvqhz{qhy|rd|rhvplxuahlenyncdporpp~zhlsftlp_pkra{bnxyifwrooemrukw|zysfynfsdfckuglnv||fm`pmvtuholxglto{r|ojus^xed~\jelqrrsmmtmdxmgnwbdlnhtxvrqdoovj`ilppewnghggajpljoznqu`z{ubj~PY{kum_okqe`_ylqoovcqjlyljszfxbzpj~yr{nirwkrhys~|vbyuxuu~jwngxkggitrvhfpvotwwxtrlg`dUimhtjrmd{kzghuuzh{hgunnmw}jvmt]bonu}lqcnvpylcl{s}i}ppjcgzzdyrueeilnja^rqZwjouivbdpl`mruVssvjslikc_]ap{siyuf~i|mzgu_tgrrkqjzwaXcn|rkdmnlplmpe}jxqdmfnqsybrk|p|k_e{`iqnpknyilmecnqouklpudlg|euoamsnkyyfikcouxvupzi_g`~plrggohn~lcxfuvxgtwobkmdvvi}matsjhmwcgtvlho}mmo|mmpbdgwdnjiywojpeomyllzoml|odhmmrrervqnssrpgksgoseuraqtpuqyfrqjopitenxp~vvp|cq_kwoqefn{|jktirtsdrcoorkghiodrx{sqr{f|{yofek{te\ijrzxidgsgkpiloourgoveokWmfk|oeld|_fqfrrmf_kwhct|vTffsxflwlvpq{vvp`fjulurwppvv~h~sufjiqgmwvjimhpg^qlqlknuwhkvrkvksUnz^xwtwotetlltkfur^tnoldwtbsdvthyokfrntghfcqr{}tpnokho_pmmhxlsxkbghxctsxpso~sehmk{ysbwfcwi|{~fprqxuom}llqdofXt}lwakvr^ysjnqep|tecjbn]aqelrktkhtrf`f|uj|ijq{hwjbbunetqj~m}ogbyidtil|{sryclhvdmuwlnsx`wnmtq[dkadnpgeyqsgq|i}k|eifsnqloiwitfpgun[~mrx`hg|i}iYkmplx_pnhjzifgs[]kg_qvmqsfgonwdyZj||mvhxexu|fejwrgln`wmrxkuzkhbqgrnup}nr\[oolj~nqfiorfqvzjbskmmoicrxnkvqqniimpty~knzjwmjstpclsfdkonurzd^oi{e_}lgp^tdcjtc]acknprjxrz`voukS[g_j^mjl[lrrrsrjkrmZiuwnanzjgavwtn}r|\eouv{gqhi{\lduoyhsvrmtolqovajrirtigkffopvccmclkeyvhpjgpkm}imhrqm{jc_nhvifwokou`l\tfnscla_yrj|sl_cslo`emllguxtj_nkhspcjsnvppwn|qtgqhv]qkkroknwkqS{tfs`jcgsrlufouqbnqeenhrkjydlogjmzsgdcehpdxlrhnxr]hnuhtevn{xnortjrjbirioeuhos`jppkax{qsnn|dbuxotyqivgfmcyjkqjlhofx{qhqghqyovr`oforwlfymdpbbgcvrmmciz\nqp`ppqm}kxvypkls|f|govwZbrpttd\volp[xkxnrjl[nmaejhsZcwtzkowlk^~{indiopsuidfrg{vvqffpsxbuyyqolecyipj}jv~khxjnqkjq|fnpqgrk`vk}ktnxjuu{puxsfqjwlpupmgt||v~xqdqyr_hkuorjl{k}hkkkrknpfrkzvrr{m{|jgtludqkol}uc|gmhwfghmhdosggovipkkvftuhkqiwm{msqenvxmglqpnvokkvjhuiuhdnjhdfjymrqvqgks{oipgehksfu_{geh}nrlpnocekhqagjdpsbmjyhip{_uiklvriy~rvgfcl{nuzoeirysejqs{gvtxmmflhpfqlacx}wk~qkqmdlpfchizfxxvxunnkul|omtzunpk~yyuxjq~oguptl`wsu_iohgklgjrshlrakiupkgn\pljhhpcqsfxdm`mktnmxhintaensy}prq^wwqhtrigmZpqv}ktftfi}obw_bmcosrighzioo}juz~slctqc]cmknurgnkek~vte~t{ll]odpp{ldrflxg`kfrdlndpvoys}uomocj{hgs_dismkyz_x}djrpy\e~ug{ruZr|dr~ukr]hyogzldh{Yjvjkuofcwnwlhvwlw^aqndmuakwlwpq]jYmzrfjkjyjcohhj{yl}ptkoifqlq_m}rx`_oq]wXqfmf`uvrYmnilmmisdsl|vnqvcy}bgkpqmzp_~yxgvwiqzumozn~_lk\k}sjbrpogn_ihqX~kynq~xacejkuvsmobrwiecdnoyh}lmcyqomrc\ndpnyjdyeconjZpsr|mdkqdjRyx|exsozfttjxww~{dieqmysty]e}pplbmpoukpknsk{somcbiznleuwokloueVgkmzfqmxukgjx_rfjlmhk^\svxex^}ldjwhnalrmjtlgqxkkggnxbcqqnmnselabqhposklkmioh]yaxjnu`rso]jsfr}lklqimnoslyykbctie\ttiixqyncumfanc{fhhiil`oqxf|lgv{kggk`kxnhekvrknrmilvjrtsioonsrjvrho}|vldgnnoodfsbvglqkj|qrkf`movmjivxjiiwk_dhponrhgzuiamfrzrhgW~rjrowwwoghravtkumjruncdim~rqkq{rtbhfn^dmz~na_hrqnos`}kkgbv_dtmqrkfpoklrtrslllsin`ek~^oths{ygnhcyomhwXovdwoopvdnlocWfmwulg~^mriykcrrocrou{o|stjarxvzndliv{ngbx|xggmvvwcl_syrfejrggqnq|jkrmh_v_ovbbmfsr\bikzbjpkcpmnlpft[p\pnq^sdsdbues^|ukrqrfpxowp|kPnookvquzpw|pyhpjkep~mvqyleiphxkyxjwsellijijp|jigq|intqroiqgnk{ajxp]qtqlkonmw`urdfnisync~yphnrwqvmdfmieattpnakwiwldfjxkfcqzfr|krumf^hszmiwucutpibkho{oqkmckxvzmlprtgnxqjpfdppcidlm|pvphs_k[ptsoeqolahpgszfqrtxkrjrtokspgh{rna_ppt~re}kmhnbdnlh{lntgtWfbszw{velpkllbdnrcyrjkginl_wtslsayhpjons~t`ys}gnpnc[xmue}osmdps|lcrjqkqmtf^goqmvld~jrjgxcnjcq|tz\jlkstsclnqh]k}nlt]wxykhpvkn{emsxclglloxjfomquqmpmz{`pdrdux`kvxomvnoyrpwqvkyvivrqljdnWgdocopouhblzkhisljinvpljfqm`sriesq_bm^pwwpstorrls\pshqjazy|kkacftazpsohbbcZb`kmqpnfq^kkw}hlwvhoyihinwlwuqgv}liilfctdst{kmejhmqXr]vq^rqhjsqnwkrwzt}ivipj`oiX}jt{gr_frhkivmxxl}zgl~rrjltgsu`xfulotbps{`jqildm~yvjerfzp`oyrojXgqpuejurnoigtkd|k}cunzoZ}omxjhljwghqvfnvqi]vuyptq}zjqmioqfkfatl|dqnvhm~`wooo}oht_f~ofqcnuiisvnkjjntvmtfxinvcofrnousVsmyq{fqoddwgofmjskhtnhgrryofkj]sggstk_encvsuyuuacsktfymXkpyyjokmidiigudv\_v~jbc^ycnbbklYrohytlfjwfynpaxolmllckkqjsvnzm{hv}ruopemj~ugahnempqgl}rjlssnqsgedml{hrxrhimzqhjpznlv`ru`pck{hkrtjopserhljjke{xlbgrhgllslk{jrrmrx[Znvz]hjzrsugdlgcrxvvrbspkss}qz`wokunalkaaslamhwt}q}veliwmx`cxqektei]owqqifx{visy]mntodhhn{wxto^kgwtqkpimiiprnorwsnbsrwhtj]gqrsskolj{lypf\s_uzvkpesnolxzflidZojt~nottnzmaox{o`x{lzlmjfxttneo}v^nihdw~otxmx~pwlnqnvl`}qelv}ow~rkr{ncqqdf}rt|ligqdkqroplueipmdqjvgqvnjugdmjbs}}slfzxfqmrj{{uqgbmnsqugflzuodtpln`rmsrmwwvf|n{jjbhmoypwttalv|woekjmqwiykn{ks}koovpptkduplhg]gYkmmwyqocowl|hfhb`snoknygrykq{cvp\mwcctv~gjlrtkrpgihgxrgkvgoloxkmushvoclzlektno~ngm}opk|hmifjsfhpftvkpcxtkiqzp]ogvstvenfjdpmqjpty^mpukq`ktnj~xky|toihrvb`d]~vwxs`b_hai]ugioxxvo{hpitktpqkltu_tqulmxvugn`|npql~ewvpph{xphrxqqwlojsasabw{ignylxfki]usrrZ|nkqxmb}r_grgohkmi}c^skntrplgknoihpjsmsedvjikidlmhpjsvc`tfiiwourbpsqwgqpdcolznvzflt_xt`rz^dhfurlwnphdv\yopplrr~uoxypfpfthi^gmilknapokttsozmbl}yetktmsspfuoiotnqbpepnbko{khk~^sgpg|peulcvhidsmbjhxovpvpmydiqri_lt}yrt{sdsxdkposmmphn}hoekuyukffckwipapp_xu{ofjqb|t\eTlsu]c}pmguw}cexiqctpjnx`erfzaksuhjvwtqwqpihq|emgxl`kgzqnc|bb~kqajjmvvwhkk{hojqxxo~sh{s\mjfkvgq~|yvfjlf[swsmawrlsp{nsqmlemdwlhnkmrs{jqrhjnj|ghixvwnwakogqolzk|x^bhiwgch|ko^njx~yuhtsly~rjq_idk_rohyc|mumict~x[scmnrbs{cjpauyp`aknwnjpuis_mfZjkcmfiWbml`npmvebmvrsrtkyt_l~}ok`Xcbkld_hyottxfineZg}dnozsb_gqes^qogca{fhhlk}ydczuvpmilhhrjoskmnzygysnxrsynugqtfqwrqyoeqob^^eqjggk|fmonbwqycec~plldijrghgroriz_uprtirxp`qqgqkT`omwejixuyusbzkbjtlpfloowsqgqmipmsflkqxebkqr~wvn_kqkau}xnfftyhmlw|zef_r|vtbjwslxnf_ap{uckahl~srkphynlucojhur|oqncykq_sukqj{tnfs|tllfbkp{mnrchyhzpdapeaxgf\mmuitnjgv_mfvvbhqonwdjbhbixo\zo^pcausxkpf~lnWoujzcl\norcxcifyifn}ouu`hsxsqnmidmo|adnhqyvhxpzl{vsptqtwursgbniwmssfbhbxcnnixqlf`r\vk|q^{xi~wdmovyvflvvciyp{osjui|xgkfX`lekfdf^kwfrqgu|pl||legjmtypvljetqbmq{uul^]|~ygraxnj`lllloajpurjmjmes~tjoerwsjtcouxm_ksuutwl\mau{cgkotthgkkl`ytmvoku\rpdsbozt_go}ckoixhxeeoqmto}orgkjf|nijhrltjtvqivxqrzsmrvpun}iusrikmzbpth_{{|z{hmtbdfioyspi{}px`rmpfayvv{k|nnh{gjrsgyxnprmnkwoubtbdbtromtxfwru^qaplktksmkqpt}k{}assaagsojeogr`ztfmr|kf`tp]`iwthestkyjn{^uvdkgmiotpqyanqmpgqtpnom{ghkmrkrnninhoerpvkf}r|xTe~hrrc]upmsawwfvw}xq}bpiocpjngemixiugvhudhnbvumardihbtm}um[rmjnasmlV{xritzkrrohrthjbaaZmk{t[liit}jh|Yjjolowopxiydppekojc|k}}nyhe`gwxiuadbxjTmhvlkutmlp}kgtaihkgjodugcqrtvfdjfpqhz]]wwo{oxobkrfftd|ni^hkjkjzm^gzdjjo\bfiw{gebuissnwxnnpfhzaoskzybl`semmn}}bdkonqkszphoZatpmr}tivfnlqhgcspqdtwfpcr|unkcegwultkjqazqibikloalgsrnkqsiiulpqmzvjjczzzfnjayuw{gsff|fejgsl`m~ktdwZhgosn{xktlmkhehspsi}qulwkwanul^cuszpgrg~_s`fgy~x}sikqdp]ojxyc{g~wr}kldjrwvfpvrp}qozxkn~ngrkmqrt|xqTkvufowkjugshusstnivqphlkckxhhwqqg{md_xvmrpdhryfq|~rxkocooj|xvqn_snoepxypjsxjdrusot_lbmdvllpjhmymtmwhgodgir]ukxtolrsmsjf~lqyqgtqovoZozcjpoitdd}ngybm}hoxu{jggkowqssjthf{oqveltamhzogpoujbmwgrucbbjhfptdgovgvoskrd{ms|xvlxxsamjmmqtnumpvfvl{{cwkfjuqluus|yvggoeijr{yqquimdgivzu`prvammxbphghvpi~rnlqvxxnhfffhkpt`ltrxytit{nwdjeoojaiarwaxmvw~`dmpkthqiqxr_ohvtvzqdcqpqyuzmipcjiqpweyd{tmfesylyejnafvdjntlhbiZu{jmpsozjuvtqcbnwouloZ_hnagvm^ttfrkq{srkjclpwexxmepWrdrcouoft_eolsemstvtkc[ks|f|dpr^mqnogwnbqinnmflziavqmwij{qt{pnlhkv{flmcpzp`vmhgwt{zmljshjykkadwij}ypmmuZnmrpnjsrcmluqTu|ggyajqd{kqk{uxzdjctxmxmj`jemjolzwkbigtlmoghxskemhjkc{}trmqyjsx~jbiqrtqrbhklmk{s]lismp_kbdhmkklvonyliuoqfhis{o~lnex{ntpgk`oTm~zboz]mms{kv^zvckkpnowencd{hnzpivr|ecihqveoglvy{rxolnaxlvhvxiihbifrjsvdjspkrtkflqlyltxllypnqvvhuqpoj}Vjs`[sdtpiwrtduutrqnzn]]m}jwqvvwgsktsxhwq}inzgkp~{fmsqolqrwvfkmggzjam~vvmowrrnzj|immjr^adveys}bvgrhtegnqliq^rol{px|ncqijf`rshdomoenol^c|rvwulrevmzxe}yRhrjtlo]s]eonsrce\femehz|wix\n{lejmkvleyln^hrdWk{Ziwodr{qmupyyuswkh{kujqwwYmpdenlsilmikownr}ymexwdlpu}hleuytwmyehg{xxsqdopjmos|xm{rjbnzxwrfpsvklkoqrnoqvmjenahsnctvpum[cnsavn_tqpmlbar~Yv~giwqnyupk}hsxueuccji^tlwtrpikilkinxzfrejuslqvhpgstyiitnfsm]zuqxf}peukgxjoxrjvqgeniityblhniu{iupstiqejqrvlegtx|rtlxxv\^jwjkrv{Wnu]ytnqn{qsnc}kztndm}lk|twwpe]jucxpioiftloh|cmy{uiocoxpwqkxompogmgr`wslk~kmp}ldqx_nrjtooxmxgcm~{n^ltkynkgmpmjrueit{x^oiiofihzm[trsjiniqyraz~nygYgarww`k|sowoqrpzrplgmiuve_ameYko{igmykf}{tq~y}rvcewsqiui}hieujzrZhkonnpqp|qsloupimtkpmnihf`vvri{``zrpynmresuvj|mgvr|loovbtyhfwlgkps~szyho_wouggvxhpdtk~lahguwsqyaelm{quq{awplaflebelqihwjhupvm`ov{nt_cvy]qtv`k{Wkrqfteos}rf|zeg`^mwowmw}gdqvsje_osmfovntjglefufj{agzvuhpqcufoleuk}qdjyhvzmxqhmogkkiwqjjxlefehp}ulpmkfvz`vtuwajdhjkezvpljsn`pppdqr^[`colyprljrbvhtjyc|euwdyiyn{cbmulc{h{rlt`yjjoiszisrputwZ`xtquripzyzrfhuoqzpltluj_vkzagnfkdinwunwxpaxj{ojwgnsl|enmypsggsnwrwwwgfshikazmgtjqwochxvmosjoiccfisZeperpfrmmneexlpv[phg~nnmnq{asfuqiw^mxnkmiygxjliiofqitah^unqrevjimooric{omoezmltmltvpltsr{upwqqpgirznluhnywZgyt{jomygsqkdvsjklfsgsqfkmgwnnuncngreowwktq^mie{que]iirqvhhoguemknmwrmp}tqrjpcwnwqpqgm\uo{dx_kzohbtosfornwTnion|uwrskrjqtfo_fhhwjqkommmxtfnsj^wp|u|fkhkeoulrljivyxtlxnqud{ykhpxwcmjnhsukkqaqjmmnvimorjprnvluxl{gpjfmp}o^aqperugvcaxk|ftxvcmmtnuY`}aiigmPzrkqek|hjmvklhatqpcnknnkc_oruo`wjpnlkpptp}i`tndelrdtdeuoxxnatlnkosjst[~nmo{tec{rip{iypxbxgoonbejachtlm|~l_prmohxuvuqi~jlkrnh{]pn}likhrsopsfveh]vwZnlpp{rtfrqhgiuukhxilbigtv]}yidsn}mtvgdwotrufk`pmlijqqzxiuqqaggtmfokv|dggjazfocznqtijnmfhtiux_qtssgngSzjteqhls^`hdmzzlmar|}bjtoo[ondgaaun{degifrlchYpfpkuyhnspm_hukxpsq_o[qsrzbamuaoqbvftlorqgn}toy\sxgojmfjj}wrko}wedlmnxnpydqdvzqjqk{ppnomreohhdnglkxtngiujphfodYywhmncmrmhbaqqngkflqflsn`gbritwih^kubdfwnefr\mdsuRmfzxgfheqtkd_dhppxykti\aiixYliijmasjweqxpooelysuevkwjlwhkgpsrtnsc]xgp_hn^sqoxvjvcfzpmmdnvblq[gbnpljo`lntrh~]ltet]jo|oiduoR`frdinmk^duqkumlabpvoz|lqol[kp`lzgk{ttamml{omipuj{gckmjlmnf\o~bvwjb|f}{n`mpkmitpefhiego^sjonuqwgon~pjtveesrr_vnryr_sp~w[fqrsY`ujpgshclprbuy\wh{jetswjhrkkrqx{pmzpdsiskoszmbmsu`dj}is`xuhWifhij~j}cp{q|vbrhfs_vmhwdzeZaqxslquxmkvwekdvp_}wsqutobwmnznmmiuvokopqsguru{_l{ntrsegirqrbckmxoirgnxjkin~idhjphpognlvntaiemojhoelqjpbm}uxgl{|ssutprd`kuwlbqymnmlfxvooeudqlpriZkr]ngh}blluqh{ww_c[hlapzlwemsy^zyljep{ulamZirunjblmnk[ncrmkroptpnhpyrsxzg}is_ljkhukjem|socquoraprdfr{sjbxzokk`osivsv_wqulfxZ[wkrcpe]hccqyvphkzqpqfhpdplmln_rnjpetwkramhunnod~ktupjeozc\ufyohvzmnrfjnvli{iqmqllntotdpblo_svaodmobciptmniosd~`uZfvotusgmyzgeee\a[^pp{u}iq\n}v{|oz~uWoxsjjrlwnhfkqhxmnpjunqyrotlndpufomea}g{jnexsjkociboary^kmoltj`ok}kmbd[ulvxwzimnkxrlfm`wsz_x|lms}kasqdYvuujmfcpoxmoinilg}ozwxjvwu`im}ponnpzp~}vffn]klchdrx}jrplcrxogmrlfgsvnzts`tdjtm~lnjg[hvsvau__czlc}panmwsgrtzxsusrhwfjtpeshripcnjqon]uj_fyoiqruprxsu~tuprnmcv[sadcqfxnttslifedu_orj{hdmkgsohyuhfmt~pkonop{rjguvfwsiic`{pvjrpwgwrf\nwkjecvyvpdpq{w|f{{n|okn~\etiwu{xiltrmgnyjzrxudnfslwrp|judmco_srbjwlylhpiojvnsgkhynpqfyxqg~lvnj|jlybwsfvmdukszcjl~zdiqlnklqdgcmgsr[y~roybehhltphkuynejqwsntwkdgusaeoqhtswlifibxqqkxuqf`hslfwpsdoyvxpvxvlovf_nn]uqjlnifnhdkyspr|Zjeffsorywqpprymljhgilktho{y_c|vzmkimplxkqouX~u`gv_nkmjqpzlr~gswwkijjyhkmookioylebnkrxt}lyexfv{usg~o_xkqv|gqpmVoaejt{g_{uehph`seo]cco{^luxje}s~jyln_p~hzssz_msyplhjpl{db`gtdmmwwnllwfhfeqlvefciuhu`ox_tforycmqholwilwjjiifoin]d|cojvqxrjglcwtastnhlnqxpepggxumkfc{rryqruemZk|ptskowY{|iY_zjhrduf^zdo`qxnbmhxlimvntkvdkfhtespzhsj}~_k|qa`gfZfr{hflvjoesrrhlpq|`w`bc~rpjfhp\kkn}q`h|nznncsojrnevvnnrqojp`tYiizegdazu{we|qlnhgqpjgdclk|hcjqYnskjpyvkq}rufsrqkifehfij{wmqytgj|ulkfmlhazq^inmwxtniowzgqouarodenelimgtrkfipppqjier[nfmqfplnzk|imcwmwnturhurq\ogjskvpudosvRoqsolopleic~em_w{woa`oxgmeierrtomp}fffklgkvetuujnufxmetagfdaeclcgouxjgvlenqjppvwzozs\vrfehyrtmcjknhrqwebqui^ojihk{kmfvppynrv`_eelswknsen^nolvlqhkdq`attsmtweeqkftizyyrregkmphqk{qzpehZopjjljw^tztqheehqjphurulsgovdqk}fxrkjaxstl`eoz{mwzjdjprbreo`kln`}]ggpprguvpoitrv`igmirhehuuvlqiorjmoglgi|s}m|jgtgitrnmojoxvtlkyrefgcupm[rnm_t`Xhedhwrhyzsykmnkvkzomanmho|}yooxrs~oynkjnbqhsg}mtrf}mlyuqbozx{xzuufpolypedvzshn|`}n{xqnwlhj{oynq\ditrkvulskzngsoxTprv_fjqzopfulksodnytefhst__vrngmjc`flkv_|eeo{euqvnqkdmipsgqula|np]b{qdq|sqxphyfteuwjxvql_skfrnqjngvc{nm}evpsmemlxkuq{m`jtmZmisuvqodsxj~nshwzkc{sqwqmyrtomvmfqs}hnWqvnekkwjy{rsfpfhtmrmnfnbxuyzvbo]hqgpq}{{mbo{VxyowalcohnnT|qqw~exolgl`sqhf}mrt_dlr|b`qcrw\npwhuelpkomeoxokrskuovtljlxxWuhm^jwthb]mhfwwolvn_mqoevluq`qTtd}nifffxoroflm~pnkmshgqlhicrii|uc|mzjsgjlh\wiliulotnw{qhg]rsratm}wcqe|nrvgormfnj`uvdeekmqyfium\lriezeyfypmdfpW{_untiZqyqucthkfxfu{zrgjp{mk`erenjjlrhyp|trcjrkcvmj`i}qogaoklpnhlyujo}jhvlflvdw`jicyjqx{fbfpexzqoabywomufxgmlap^oleusjct`om`\urmjqosit`tzfshruwilqomrv{iwofrknop[asqyzdwspkzfvxktqgqukkyjflfswmwfwvwfposfv^ztqowkcgegmun`mn`jt_VZScu^zvmznn{mvq^wvzokvqirqyv`itmp|^ngf~mruyUj\jhlb|spyqqfpm|cjgkytkiqxmvnrehnhzglomqrnfn{}olkn{hxwj}yszpunk|nrcq|fjmm{iayzwqpkmjh}gsthnmniov`}xrohmhks{jfiyesjmtmgryepp~qhdeugqdvwh|kcoqpnqprtkkl{rvox}twnqqsqdxvdnjtd{rrmi|vz_jmmvqebaivocfocihqlinr`iqmbeehmhccxnpupdxjik^ypwzWYzsx{`kcrtndbvi}ksznmedycbksrmYjllaijdtjxmvnr^eobmiwll\laoceldw{htYmmtv^mxypahvtagmrqjgilopslki`ec~uyyzkka_nepV]_jhnku`jpauctcgrgasuhz{qdwsv`eo]`qhakejtsvy|sZ^mzte{vogqiitougfiduqUgs~jer~axbwhmpwXnownj`PZebunpemakhysnirohemnnj|e{mlhlwlswd^ZxpxhuxogcZ_{wfan\gkojfwjvrpok`k~g_p]hlsqzlmuqpc}mryp^p{vq}rptkljkmljYqipqlykor{pmnhqfrg]qtsgyqgg}oqoZzerlpesftgajmsjriesmgdguksadotkr~warV^iopdgeds^yo}q}jghnx{kmeilqpimnf[zryxkccrbhw]bzhommul}slnhVryj~gvmmyctqsmrccxijyoenvvhjvuruzsdmtwhmofuv}enbjqtsvqkdtWdknp|fp``qhxnpm}yizvyl{htckrmnwlkhkhwhewywmnhjcpjkl]x|ttkp|kuoorgdwsphlV}heapsivydfuszwtthn_ugvuXhzdkgmokbryfcqu`]hftog|jl`q~muretrlr^jtnjrkcjkydbkg^losvipegovjnfwrmzyhmuciskwmhhffbqcps\tpmtnpptfjof|nsdgl{ctn}whp`kjgb`rnfqgyovnasdqivwzmnphewftlowjwjifbjewqysqXlipkjmm|uilsrzbisothsgghowzmeuaquufak\xveZ_hjvgf~yhjtzv`kqgmoxixtruqfqzkris`ihwshljrfylkpwrmtohhymnqqipcqpjausilreeaqrdns~uzkvztrqpqlidwfe~diyquipyxu`rsr~ohh`knmgshfqommmq{k^t_tkn[fjspn~mua{gpr}eivrwajeliqh]qdimwk}fbl{zlhuiwr{j|h~luapymrzv\ks^kumrwrufe|lgmsduZfavpcxo]gttu~dmavplmtgsbfrtborfwpirhtlqmfmpm|sinp|us}hmkkingfbjmquylor~phiw`iqmbX`fmatvqfdudu}hjsuofuxjtiybstqzjuvjpRnjkvglhWrxv`kskmusgpox_gxxrpqtnyqlxadytw{wvbbrijff^sjbndtz^oodbkfZmlda{uomzp[tnhih\j{z`kngydxvgkmqu{pminql_icyyn}ljplsetfxkrjfhddi]mkaccrpfsjrwr^_acvdovppaco{~oehjhalprra{nqjc{upnfa]le^u{wshrqhys{ammmblqidtakdeaoxszfiqm]rlqzym\hwulxiqzubbjhU[qwo^ZmiYs|brdc_cpofxjdfaztldnrccjxoog^iki\sn|h{cthsgfffiddlokjux]\ar~pswk~ckr^ep|_n~mlpsypyXc_jlcsjcnpqno{j^aipfphon`rwuiopuwaoZjhkkowpdnipl|yu{mamqiybehh{jnohuumpprjpsxyt[uz]wvsrgvosoi{p`wpgrXxsenmgwjrp`mqkzjmvouponWqkovd`i|sseijurkrpjviq{ukcsez^qywhn`rmotvjsanl\mcolqhf{kq|n|kzptdkdrm{jmrrpswekuz{mgpsitwjditcihv`kk{mhhxbkvvzdirxtuyjeymwyb{n|wfuqiqomzkepsfmrtwthdfcvwnkcurdmmyifxkh|grhprujnmsunkimsrqfj|ngtyerimsnuok`{d]jwu~dmnf{pjvqvpnh|n_keopiamer~wuhxhttqrhjosvrlkusfpq~^z]qsnnrlmznYplltkrqhhe{mv`poecxlwekmduqrzkmorqnnprnyjukotihskjfnpkrxv{zukilipgfrxjul`{nuleojnrhbmnl_njpltj`ocvkinmrjtfrjnjb}i{zkll{selZgad`opwxiqkemintrYtrmuzlrupjvjreo{ojnmrodkvuchsikrmq^soqdrpvtphuwbunnsllnsgmlisxpgpe`ngkiu}ytnvfik|ntncxm{wzewutpnrnnvwouojleetiibokorpew~npgibdxww|tvpykmommryt[|uvdvvslpndymvswl|gmqqlelooiaqptlqinpljrmjliv{`xxjxazni}te`l`rgnsinrjfetzcnwpujnwbclavocdsj_otbripoUskbyxok[mnils{gpilyvbo}zy[n_knXmftjbomkuhlih}em^[cgvymkkfjusdhnwhYmbbiofsanmxcqZkplznkXdnxg`hxl^kgkdf`fiokmjgvuheh\bsubn^fosf{bjvfhqbok`oebqaai`lmacjneojcsefdwntlohyod]^kbpmvooijavcnwirfnyndf[Vikio\uogkccxgmil{jifqgvl\ehxpitohlmblmgrqyrphdijl^jWsu{qqv~hgiejvtutcs`rviewsqunjhrgrnidnkhj}|xxvmklxysmkd\irmkijvjixhsqsyot]lfrnklcpivij|jxksao_qgmidophyvoxplgof~nx|mlewqmnxR~uqjxz~zkskmdrvc~|qoklurovjmvj~ph~kisutqrohiv^yomagrqsuziqcfuothnlzhmnitxns~olkwyggpzorgw}}n^if{rmtznonuh{hkqnyggh`Xtrnqhq[mipiqnoarzbnlp}btkpjoprnk|xmookl|dobn_zmrsqxshslpmtxvizpjq^nqig_snflpelqmugjgnaitx~qpvro{tohnipqachkokrf|lls^fpgdlwthmkph\kvt{hyaku~mik|dzjtqgo~csoiu\kfssbaqppbokzbqpopvttyswrmmxulnth{hofZfzy~rjjxwdoli^yrxesojhnv^kpmpbzrwpmrpzwfmtigff^[o`nsj{`wqhgvrlisv]ozmohljymluuxmewl{ysqdqwqpgypukpunbljuq{|c]ctoji`{rwxolijvwdrukjseeemo`h}`|csnmnlr||{_kiuqbd[vmsviqzjrf_pknxxulm{mzgvzc]kqdn~agjsxpghcvxuy[a`ofrqp[jfqetfgq{hpcvlwr}agpfqyviVvstt~mpt]oubmqvgf_myxusru{y|ktsowugkljvfag|aqiphnpchkevt_vbrb_gjnlrqalukpdomklapetkyhy_jmbvtlqhlrg_wktan_l^nlohqmildiicutlp`piy{roofuqfyuvjebknrknobtivlokohcwvdf~glfjnumj}rxljod~fl^oqtth~j~idhmhinnan`islsphvqklzr_jvajmgmm{th|yllk}uinjliihnytugxm^~qippi|^twuvd{dnkzunutuvjgqtkq`c{skl}rlulsixjqhgpy}{prx|pnnpussuwk]fgqcbh|`veftmoiu{q}onrkx^ocojmm`zrfjnv[n~t|lpl}l^gjfv|likvytl{vksnlmgqear~qcimjjzsppukdqs^npnknjn\zvsfo{jikdwhtqvkpif{zirzk{j{hej]xz`zeiqrvihugzhvcop`uqw|ceisulmq\ltimrsjkbdkum|n~g]glbiqitjtlmpuzgtojsfzknqjsf~oo`k}zjmuiubwktsmhin~keonlzxudcclrhptcwgwqpcubzlnptfpunjvtntqqnks{rgzvipodnjtomxgqp~ytyrfvokxlpdsxtg~X|rirwjqlwtslx}{uohgmjq}mkrrl|sqkyrexwvrpwuiba`kohmsygpmksy^jdn{{^krfvkjswtuiokuq}jlautbg{zoom]ygxnsus\miaudwzjfiymooejmsenkcziqkt{ibbozsqj{njvvkivsfrqnavl`dyflmpkq}vsizwn`rfm_ln}of{g|hj~mkn{pfakekb~sf`nfq}|bzi}l{vpqpuu^sqsgfolozfvm]j}ahwwj{|tjcjusggllnxvftklljtupgezisktqwx}s`jtpumkujxkq^gh`abvd`oi{mmjtznlfnVo^cjwptvzkjkjpjgl|pgoomuaytillj{{jw\rfzooulrqfsfxuoglutlhninfqxsixntki|ogczhnnvmkhklwycydzld_hftl_qlnky~wndjwgasjvongrmdvimwfjjrkaxhloufphfbkqqevivintxorw|zthfpmo{pdgzosiqrgybwqldswonvtiocqznrfxxkXbwm\mprvrfhortpxmnogfjeemorjqdrkuthfjmeakz{pneym{wjimewqwgaiqrlhorokpo{pnnupkw_uoeZfmrxgwwliqeryvdocwucbfougjnmnemtlqtb|vcnlrntudkj`dlyqwonq^pnumdwkqzorYootqi^Zqinitfjzdgqkp`nrggqraztj~qmjwqqstiukojresmeqiXhfuu`eppkjhzjrebnkzkpijtvj^upz_m}g\aeuhhnxiejfwrcn_uebjti_mfhljsmt{ujjtrYwceqg|}li_nsmoenj^aemqmrfjowi~crjn_t`\onkmrqvi}gf`nUiu|uacrrlh|j|Ymwgmugsenyjtmhtdayxqfhkmeebmmudubhg^lunsqffihhkmrvnnnkcpmat~{nix~zijlgcvdrjrmdluiucdmjZkothjzpikw|llm`qlTrk|gglvq|gyphslepopmqpw_ml{tpkjlgpfjl]ptvqqpqyxwylqlku}ajznrtl|}yssyw{{oz{v~~otibtqkt|ukaslstxlwpwZun~ngvuu|ocuk|~lvxovvklxtwp]juwhuvgecglhywymz`m~oq{}tk}onqs{muo{{nfvhtznwlkuunmlxkwp~h_rptxwyt{sugnqZpctid{q~bvsup}ngqukpw|luptwpzoyjjzgy|~vowlvmfszppxqoiwloqghvwujwtqrvqsxmq]jvswlqjxtkoprjzo}llnhfqqby~zztoqqhjufv|hznnospppl~qlnvklzfqmiw{iypoyufYkmsupu^~rqhygynpvnxkotrukilqwfjgxuswuu~vvo_hultorrglrgw~vssme~lhorjuqokztwhlgi~rvogfknzijmmmgwgjobqns~vtbimwenpsi_vzh\grittlvo`~dvm|omjluqlymbcbrkvwu`xolptxepyfksllmioqfxdnuieptna[xwypnwqotxgvfrutp_zlmp|cuebsquqtiouve~|Vioqosourji^nndbr{vyksspplbacxpipbhpokmbm_lxjfyqmvrrvz_]wwwtllxreyno}bnfqXeptmbpswwnp{nnhshev{leh}qhapzrtkdgpsp{ikpirs`z`senlspkqwmhvulp]ikntsisheykssvxixxs\bxitlqtqpvaulwhuskxtxkko~fsbntdapiejh^jjunslpbvdpvrqefmyopuun|shkhteY~yZwxewknirrpqlrthj}hum``ql]{eukw[x~srmolqp{mfvcqxtryfwdmogx{jYilq}hZxpniu_rhgzhuuotdkhk}zs]judqye{cnyts^suwdt{]s_ktrgtpsm]hqs^xkqlnt{Zlj}dmzxlnV{kejngtzmjujj]ehasqqsxjhmoutqiymZnstjoi|shvnppo{pdfdnrrdbzpyvxjYxhctwkauckuwvopgqhoginjqi_t|mnpzxlwxjldkuov]tdm{x{vhqehttojsqpaib`pnnjrurqmdtvaufonojimqrfp|pnicofY{vd|^lm_ctsxphltmpccimhqkneXeykkxho{sgepfrgk|wgoqliiplot\h_fovem]rwigkVjnuetzb{kt~j|Wbfeigsrakmzdx`smkoenv{fnvkyvgkqlwl`fjyi^etmjjtdgf~ylksiicpe`n|duj|zrmia\qpsc\wwggkpkrkjci_uq~l]l~sqjnc`jomlqpbr~{mlZopckhj[npgubngiojpjh{pt~rngstczttt\zvprmqYupdltqc~ujhbclyvia`jreaZk`qenx`dx~^y^nnnysnpgqx^grxvqfZpaxbo|rs~midc}hjib~odxotjlmqwrje{i``s{hkvohk_|hl_vispnvnvbdljanokiyj|lfnejldhrvcl]knkh}vuPlwp~cnwrpp{spkrfriffwanmodiiimbadtttxxgifhettlxylumirjqajnxrglwidsqx~cudm|mirf|Wfwnf}wiv`npw|rmsqpmmhtkzmfiwtgtqsp|pmyoxfrYfvjhqynzmijwwxjulidaoxspmooiojjfclnideeqdiq_homfvpunioeuylqqhuvtkjslclzqrn}gqkvokf|oaoudgqlgjadxmyjorwlhthggmqprjvndygkiooxfqymwmjrwhlgd~vijqoewkiXzlotzmdlrjihoukfzjgrfuuls~osrihnooohrj`kkkpuhizjorsq{ppukrrte`vtpomixihxrtjlmvqxoo{nmnnnwgkxmhpubf|zrblw|ufxempcmfwlle~nshpag~ogcbgqgx|dzpawknkttqiyulvucoygpwinmkrisumrgehvqmuq`heqchcyurx[oytcnqiz|{leqiehpuoiqb|kmpf{qtyiuyolfhoqvhycysmnqkjiqq`fnrovdqtjovmpoprjn`euqpfbjdrjnvnkpdlcmfiipghvomygpsajbfrajanjvsgh]jjqlu]qipp]jth~vskoipiphztmkllefyepmbz}qrictpqnsuin}efu|muqguyiguewhijpzltsr`idasegrpmleytujm^igy|{mpwkc{mqg{rpseurpm\^yqvucogeolvucs`jrcbkjs|tx|ociitpphmmjguvpjmttapglj`bcex~fyognpsmfplthfrpupjnhpkinrZhlwzbohXihv`h~efebglkorpokxoujjjyvimkio}zjou{oltiqrfh}kqyiombiowtnkc_css}ikavjmtxiiiyzrvllsQfnzllbzednsfQhugw{nqmdo}irnumcpiimvbuyjupdnprxyr_[tgtmjjspghtjwqjvt{uhq||imiasxrrguxwpvjlntasmvqjmpywYqsntswc^wktrmcwohc]nnjldluthj}kjyukssxtjcebr}efjfefqpjmmfpmevbgyopjjZqrm|hhgl^eshdsbno{qkuumjvrbn{ygofsbmos~xqjtv\qvqqkkputqyqijumjknhyopnfqj~z{pwil\mekqthp]wxvk|xhsrlsadicjzgenwlcj~lbuclrwl{nvilmevhmirxswz|n^rfeovnxlwlrulvjqrhvuhgdirvqmfzwslbpfoduqwovoh]nneeqbgtnknupww^skyqoqoviztr{r~how}khqestr{kxutg}vmpwxsggckhsfazcludtxpurnpreietsmdmh~q||ojkjpfvmnmalkwhmi{avwhhiyriohahxrai]g}jtolnt`rs^{mdiqnjqjeumoempjzrljuqzjnuisp}wxzzkknydnjrkjmgumwojcyt~jwemkzsznmirrrnupldrxwwb]jang}frmgs{vfrvegzomcgdjyq|qhrio^wjryeguolqrrmsmlmacexlvqlmpqsqjrjpkaf\kswxr|httmnqlohrYlppijwn`nliwfa]pofyjrqblsrlWlh[bvxllaupqpvuouaplpqwo|ng|vrjhssdkjhpdgth`idckcrce^|ndjkqol`uofdp~bwrhpnkixyin]v{o}fnqyhpnvnhxjkkghhjpsqzxhz]omifaqf~shsrx}rq^qh~kvm`hlruurw{|ulz|hsykvflbkp_uqexktpqlgsnqtguve|hhixtqgnk~]ohign^lyzweZdd_fdnlpumgsnzkzjzpv\nnzjq_unnfc|mjmpsznq`ytijuptnrzu}d~dkjuyrknhjwgaadtj{~_jmajitsmupnlkttpmnjphmdjkh_ehkkmkkw{ktovkmvrgaqmtcgucivhspwjbr}xnjczirionjppnt^xd|pmlznmqmtpozoctqjhpdpluttix|bre[gruhgsmyqmqwRjes}kqpmtnanrdjjsSbalrih\wpwjgnjnox}lxfzaeyovfohmul^wxppuwitqnejl^mhnprrl^fljmecdswvrrli`qkro`jvivcfdtzsvlipld}{fhknmxsrgbnixot^orpvlhnouhl[hzimpkmzrbusrgoxfpo_vrzqpmfidp{v`qzuuifnonstmyvyxorfsusvjjc~rtopwepvsrnpjnongmesboeh\ojiemgbxkvtcdtuhgzbnr|ngyskmiprfi`urtmtznc`rdkixtatmjruogoperulppkh{jn{~wthUlt_uvWxrynjdd^sqhh^xvg}fd[coutgzpcpgrhdnttntb|tk`qtkiogh]yqrkupxswjozu~ksqbuklxuysuiok`qwpsru}do^euyertsjudp}k_h{an`hkahdhvrmbl{\f{x`knjlwtbiastfoskm\sk{{jxwwlrjpetszxhgk_ndrm|\hmaffhtfvwhrxgjimyinofdj|dputvkopctpytin|dbljx\khhtjgujmg`mfphniihkmvouowjjkozisw~ysqkriqsnkvjgnjixriyglkzw{{gstqncxwj}nvkqhgwXodrgujeyhrlzotuqlkihorsfp{btghuj|uywlunyjl|wvyvldag{hriehfiy}qphyomiimau|tolzkixkar|v||wrsx_{r|so~mgxvrylnjogpbmepknov|rrcaxxohfohs^kwz_pbsswf}wfq\isnpijp~fatgjlrlg{~tqmmt}rheklhklqo`pmpvlgjpgdmjtnp}tssioiqysstg`lkiiynbmeifjxntptijdrpxrugkovpwntnpgfxletofrhynxmvrmYthlexnhzh~n^{etkxwdte}fgxhtkopkfuswyyrrsksnpshesv_zmovvjfn~qrwyxgh|ulsi}kecaqkvniokrtsehlatmwjyx\qjdapo\mcoppcer_dhmxefficwdr~o_wofbeao^}pnlkkbfynkv~kyqliog^gqilnkdkpiwcip`oummkb_zi|[bfx{b`qjieg[^wv~qlnZgurh~qpvek|qsarmchsv]`gqkdhksrksm{]utVsxfugjgurbssY{~kqc|ypppk`qq`|ooiqi]umkgtkd}pcccdushmwloyeqsnmlndciaqwuphx_nsorio}mykr^hvq}`fpo^kgfkmv^blfdvzetzm}hdzfhtqXoredr_x`|xeirxlicgeivkagkppvismxprvhhsZilarnoxzmsor`vcdkalqjzyi_}{qk^xmkezfrf`amipfZ]rhnnhoq|udzxhpsogpsm}fxunog}igjkgfwvgmesq`jottvuiifruyhwto\|ersfxnwonh}swiqmrxbzpl{ro|nt~mktrbmqte{lgxtv}qsuurxrtskyrfdjozbtq|nilhj|d[b}ldvZl]_fvseupOt{soqlktvtmzdxdibvi`glksnklfjosb{{zh}fqpngjimevshzj^ekldppgvgjjprqlmorxx~nsz_ywhjvivugcupoqrfjbqnlqovwkgmsmbmpfqqrztaoutwrrqb~hym}uoskrr`jraotonaxroqpdjxio|nq`rnqhhqovlzyky|kjixqjphmd|uipspmmis|vtajoblrrkvvoind`|e]kxnhgtnppsbihvsyw~|szjn|i}\pgpenslmeptw{~qnkwwjk}|`okjpqaWnqzltyyhw]piqee\~irqmfsf{ckvjv`qsz}rpwkoynnm}smtzcmjvfkuwm|pfalpZsjhpv[krq|qmttgqz~{shossoopiyovrmjqkld|\ildrrfgsvdgz|[urcou|vqhmwvii}hxkwibxqro[xlnuxmk{lsswp{dpoe|tesotljc~}puogurfnldvywcz{aXw}pgpxugks{qjumqrkn]iqtmbnsmn}fxoye]{phpzvqrrtxpjppsrn}{}klts`wtp}^twmjqlliscjfvjet}qYW{jndptvr}skkm`oqkfsjctggmdsksna]srrtrlfvh`tqfojwls_jqtu[zoqcsdvusuxijgzrro`akq]iq}xstuetov|jenokep`poqkk^~psqlqknlfnxkpihohwtejyuhqgxjjwg\rrtxxvpqxixoiwrrhcizwntowj~u}sjwxkyhrk^pgv_zvmspsnkjpqorkn|{pZwkujf]wrir`qqeibuowobeXvgxhrpfkpskismwax~nztfegrwypwrkmrh{niclcncjwnfros{yitsqllswutwlblxjmuagkk{mth}siloX|qa|tq_kmorl~npsm{kplancsvirjzisqvldvi{yfzaevVmzshmqjhimnon|givwxkqwmzlnjk|Ybgqtm{qkly|kmnqmmx{im\xtymopugrjvqnskrxsvpjqor_jqnjfpispvv\bknybvwqoseh|vhjs{bx{rm`mgsvntqwuyxmusysuln|_n`mj_x|biqovnsgryvngf|qbkhmiwxhotjdhghjow}mvZxjymfmihbqmkohwkvtlquannfj}rvkqhirnliwmioctqjfjtYk|wosxppueykxo}zaj`hgnuypktrlmp_ootnfcvhiwvjely_|lvxqsx~sk`qekcnh{ruxqodkwkSglnppg|sqpt|lrccszomkjvvqvwmktndstutolfpfym[fubckwz{oqjheuds_vnzgltcmthpmibzaj~m|msnpolpotiuoiodrYoqysqetnpvpnavsp}rmoehtd{rt}ishidejvs`lp[r]qgcn}}rjtvtphiiwenrzgo]qx}i|csshmkqkjl{lkwcxrqkushmynuuppozwut^vdqwgaryktyhsq^vfsq`msioyaqmtpqkkg~usfpzcosaujtc}mvhhpevxb`kjiypnrmwsuq|piwnmalpfzkrxfv|ie}wnjjicynhkyliy~lmwxhlrpgmqnwpturdyk_hchrsipcndubehtnzl{zglxp}lsmpr|qyichtnphjoxvvdr}snr~q]p{kndqphwkonrqqcn]ldstajlfgvgniokmimjmtxppqkxkksVmwjn{cquy`mt~ow{ou[~noxwukrz|ssmezjofysc_c{jnsjlkjqljlbowprnjp~rsvbpjkolwl`rtsxjapmdqmnipmjhbyemjcrncrpmpvsepwjpgtjejuam|nomfyavogwru`cryssjlsoblusuyvkf{llogn{ioz~ine}iozdsvoove|srxromkltmqthi[niwjlj^oedutqsd~uyndkqppnmpsnfyunkkzvjzwu~ruojrovhtmtjtztxywoq{zjjYqyqmo`kbjlfimbsuysh^nikzm}prckjlpq|oavstz|nhrsowvpmlqoywxqt{oxnktm`d|muvotmiezhfyjxyyisunjtmoqvjz}jjt`suqjtoqlqqrdYrnqmyjzidrvkvn[vfngjrk{iksvmkbkete{krccshuzfqgntvggmhqlo{p|ktvhwmimpfggsyzdtshsjrzluwezxktptfntxw_sr{tftjg}nkn{e{i^zfmfonvrfrmgtqsjjpq~ktzxhlszsu_s`jmtkthwklyzrjmdyjthqppsblfknuqbdfjujoZunonnZhwvqjopotrspwsrpjmg^clnzhvfkjegkqoedyvuwb|tkaqeovnfelnjknsnvhkflt_ktlvupyhjhqipkfk~k{ujg}|hgrcallzmhhoaplvufp`a_lny{qmn`uc|zqf`uhomkuj]hhplvuasob{wgnm`obym|ungjsohvu\|yl}_`kiqywlkx}fey`rjqj`vvknqnkznoohjmhdmug_whrXcjp|hfg{t~pp`Znhnmxpfzrpvftrg]}~lfeuvoqkp]gmc[ikqjhilgdvkjwi|odmdfevxmnjhnj[uph{_twhwqgr|ymxhkw|dqmuv`htik[vrjmdw_mv]oh_tsbzhqyuhfdjterjkhngrnfZnjupmurjo|rcvqjlrnatk{s_tumrbiuguh\hovykqpcweggn`dvv~vgamflvfjnal[vcvnxjjxvokeelfwwwqg|ujsmn}s~|rhle~^xqs}cqqmtoqtjjlsjji{rnjdegcmflaiffllafbshgxt}coz|ki^fui_zcjko}csnminss}`kgtshffcqsjont_arwitkqokj{_jr{`ftglcutkihsebdmoomsdkVnekekzlml`ykz{s]nlygnr{Xnoerc`plc{krqgilpl_rsid}ndrwhxxmjihlyo`mxqrzrtddt`k{jprnpnybgmovrfpcprkkw`Wobpdupnz{\lh\nixi]iXqqomv{ufqrkitog|hwq{ivxzppzre`kvqepjeg|bo~vnrqwjrt^gf`rjxhq[o|bheskohoh{zyr{ijvmjwdnukwil{ktavmjwkklkvfp^eqhrvqtnpho^mthp|jomi\slljnbf|jkqhqb{|uvpfcilbdxnkukilwabxrnrfnvnlqqpkkhrrqnfhmpjxl~hkpug|tm`edpr}dlcu|nrored`wxt|ervdtazm}lnqyqomltpsdioxy|lpt}zklktwjbftvyxmTdt~rmlqfhozu{{`drjZjnrwwrhfgtlj}oyqjonon{vhq|vsuhhrolg_f`ibcwhn~wnwusuqxn`qpcrgsqmgwgcypnldmkhg{iosel_lxwawgkipxwhouxpx}plpoqgblnxpyojoenlnam`d|acqjjush|uzseo~upvgrrblrmua`dsoouqrqjvts`jdnonwgavttivimemroi_p~w}{kkrrlhk|mbx~wljluifsudkykgtjppddlfrdwnijZqqosibevrf{lgkuinkdYmgf~lwdluqp`|cy`hbc|nwdfm_gqhxqqsvtm_etk{cmpy{}fxgtqjn{lclmhlts{ghxphdqYv{}te{if[kfxaxkc~bhqwfex[|tzj}lq]ff^rhrgi`vvm}npkhrj`lgmvgnspkovxxifoifbvtrupuua[sdpihp{m~gshmspVxojl~lllpoouamplkve`amyyv^_kpPdXmem}udoqbdgbqkq~rzaraow`q]|mjjn{qmcgjhour~rt\wqsrdmywrXplwyfjrzusimcp`o`qruh}f]spqlLqmfs_wa~wtcrj^xhwknfmXhSwtvfhdRjq{sojtdf`gkxhded{npppwlkqoidev`n{~ns_tugdTmrvnmuhjvnnhqj]t|^lrgprqce|pie}zrsevnugk]msqqiVernifloqvhzecgokhlynxpgskauk}ght{hdm{vplsojy\^kYmwh~liidnt]uXn^hpgXhbpglooj_polekwzcko}wlvljlfaeipioelrvhemjs^imwsyrcqolnuidohx{hnxth[nppmnyiqpvodxltwngj~x|`sdox~mhwqj~hucxkkcir||nh{oovdwuzyffcpj}hvazeqfomjvjmlnqs\t|g}fewoa]bfsfV`njkb`ujzldiznw|fqe^tuxooqklhzjlssingspve]rurvousublx]bijdkwgg{s~mrhuumfkvXkkk~nnhpxgphqmudavmv|ecymmjpvwwoijgi{vsonk~mtdilihylpkqlzss|kpostp~zziowujatheurkimpuoeidifsoamgcpeoashupsppzgm]iq\knsjprgkoqrorg}ytlhmniftrllyhqsiyjnps^d{szwysktysgluke^xxe`|ulpphjn}rwYnefrrqlizvukigevgm\bqiqtto}ncttmwpwnt]gst|iyquqokhsirecgsdry_qoqgygfeqgpj]z`{t^^we{sivwjozsmuopYshokjdpunwdvzwvidlntujuiejnbnfurnqyjlr^rpcmvglk{qc{bvmhfqqlqrn`hlqbkomhj`]nlgo}|mraylttvhptfqt{jsxlqniglsepbaehfpngumaejkgvkjpuyitropjniisq{t|irwig~diquqSreqqpkcrlxergotpx|zo{rlttsfqfje|z|yuljkjxjomo{rkoerfw~ynzaebtlui[myovunuktwppipuovgfortqkkukypts{kmkfmj{|prjywonnynlil}uqhmfhhvxdsxxntynrgunnhdfywxssih{uuwtue_Xtorw{nqd~ikspsjlueovhqp^doniwhhnbozi^vihgopjwwhvjYo{s\w{mluqaeg|nkhtjsuvsmqwukjk{jlmhsxnwktwwne|o|s|ilvwludnigxwaa{jnlspzoiljwg|ihojm`hu[ighzlyqozmj~rwpws|giu`iy_kxvbilelwqmp{alki\svhpt]rsgnnalhq]hf`igthggqonm{qewpsgas~k{savvsowdkjuorokppsoonspoamnqeoqty{eSyjhovtuyskopjkrrttpioor`edgjcuYxdt_vvpbs`cjcjyri{ggtvns{jpfZghiojdsenmcozbqv~mjkmhvspwvlyik_|n{khjqffii|rnohkmwnehfstq~}`ivpxwtkifypulivbvrqjooq^f}mgrmujg[opeuprhwrsxjknfyrwshuznykqhy{h|roirtlziesskjlgonkpou~oitifj|ronbjgglgelwoojqtxsffbyp^tn`hwocsfrklmgxkwcml}skunoszbfkpmjtqmopb\sut_pjgzkhcd}h{kmolzpslzvjrlksnblpupggjghqg{nnoztaymdgbuzvqjo~Tpkdkfhmpwkbfjsgvt_i}iuolxpt{crla}jnpvmmzb\i|rwomco}xgwz_mwgmtmlnq|mxkfedrf{ryrkrsl|qcdenm}kteilurq`ljxfjklwlmunyuenejgcvxsj`rctedsruhvggiz}ilrmzr|pji{iqbcevqutywpnu{iwdsvvoixsjammimyombvwrZzstm]`lrrxoqgoal~|kedtrsuxsnrlltqccqfoqkaptk\ziiwqkoh_cqmv`etlr}is~orsdodrwhnusphrtaiioexfepzhu}soisqtqafmpnz}ombltk_wzgy{otkrkckowkXieskmdktssgohsnewokncqdkgofoeykstri_ddalppihfcspakglk`wymcfvhxjq_k|ud}}cb|i{jpcuvd]n}scqegnnwczohaxljxxordjmnyv[xdudivflnusywcmopupfxmtljjrlow\mmelnxwlskpnrwg{prnhxrfq}vzizwtmhhtkfmzymphwlqqevrljkhpmmijdwhwgvkjomsiixotodopiynqwmkhh{lnsphripmrfmitlnjpgnmtwrev{beoz{xnknptvm`gmZglwohjagwgko_eivwaakv|rpsX|lnjv`qosyfwqpnviYnkmwkmemgqjn~hlpt[mokuuegvkirwyannfsl]vdhedjilrwqry~~otvekhjjpw}dkgpkcsvjkvzmfptr`thtao}x{{{]cZuqmtqqxggotd{ivgnjQp[`sdnkpnik_podmmctmwhqcrpes|enydwrqlhzqbm^hailjqlhoycm`tqdmtuaijrfms^gpt|Vkwree_futb~gogelkjpptltuwghtnn_nsrjwp_yh}_rV}sXpq~enkanfuh}oWcwdywuohlln~yW~pqowxw_ixv__e^lhlsmzmnohshogolshv|brppbr}iyceoilkboyogtihbkutmmk{spufnhkcf~o|m^gimjqowlmuthuonfpymqgmtjbifdorqtdcnltdo]otpt~ggme{llzYm_jajrdiknqiqiz`o}xqjhimllehdecunmnhxl|sia\bwpfnlmif`|amill]pth|jkkmjqmhqZqotzukjiahfgjl`^ijvpmopbjkjtd{o~qpn{vkmmqqzu`oneujk}rowsmdmmeyws|lmjkeofjrl~lgoguyl[msuuskfag^oyfwrj|mgil_fstjklnftxcml}dmuckivre|fkwcgljjxotwhdoYrfoufeokrputpovhqwfkosztty^cQpiavgilmmthup{qvryyxwqr}seupmgpchsoaqekrokqy^vzpn`}zpqtxwrpgkepsurwsgovlxwof\no}naknmftkipkllnppkloncsjsfmmigk[xnqdf|xrbjjjmonalujf|ktrsb`zhecpkkqf|uiylddmuXvdnnq~xhkqhl]nouxlrpklYphnlo]jhbznniekpcegysnvscflenjqqhx~]nwcew`gmxwt\kkelq[szeengmzmscqjgxfsiotipuytwmpmdhcmjcluqmrurqtqqlsqplapjjtrwn`m[seemu{swm}g_pvcr}oq}qovm[lw{ppmhkyoyhknyiycwri_b}rijenu_nfz{fjfnbhlcliswjq]zwrk|sm\itqsYerrlozmiqj[e`ywvpmjua|ms{hkrurofrimfpxmik{x|loly{olmi|`dvvuxksirschk`efvyqvfmcxsoavertmqpVnt~jrhxgvnrwm}lscdnphktth{srvofmny\inpjnprcowvimjigrkgqpunflsuikm{ney_g^cebuk}nWylbseultxcarfqhlkvdvlpqkllshqnwvii[dviuxqtzm}ys|frolke|sh`tajphgoksixsryhceevneiilrjh{ltalurrhevleqwkivnb{migteZ_rirs|phi~kn}onqrjzo|umlinumchtnwljtda^{rn}rilkwpqedggiifgiqu_fprmrqxontnul}Ydnhwkh_epmvpubn~kpkiZhagowondrj{fgfevogrwhfo]oiwfpl~sfultikr||mmahmpynxqesplmyh\wvwm}hwnzkxmnjqoqw{Sjqbn_ulbk|Zlrv|jqivjg^^fnebakgaqpqZept`~{^_hljzl~}]fqdglgn{ggici]rvfhlj\nli{blkxdpastfy{bhqudcp`zfmfbopitsuqlmzxov`rzitvizo`immWs|pfvwtivomjkzhfnjieh{myjdwreafwmcdvxmjwapustnvmwqgvpn^ssg|olxcsspuywrnt^gl^ti|uumjgmncmizyWtvnshunzsc}b}fnijb|vwXftoenzcpi[lzow{uithpx|kvhnoungslw[zr^ruj{vvtullrtwtdejnnrsiquw^qtpbjtvrkogmvnrtlg{~v{z`ingyfsymfewkgpoppe^mtgtpq\ijnhikt[ibgcqhzuhuolg}xhl^vueru\\_q}wpojxlp~ycfzbjhrumggijnljonjxxnmsqnpmlsiryorouvocojplrmgsw\pv}yuSkkz|xmhucdjiXjrtyhpmwt~gqltpowuxzrashjoprj^lksshgphqxpslu]nomsqokl\s_n|hy{hdrqpycrvnr}olzxsvepsipvngqlh^ynwo^hd`ls{ewf~~fymwityupmg_ljpd|tm{|h\iyrhu{q[pn^nkYgx|tunrffrtloxmjs~cpgqefd_owr{cm|{Xxucyjgqerjiyagnguvn\nojoiew|s\vrlnisdq{miioqkznqpqujhrcmk}ypoxkpxibmgfsziulsq\tcspogptz~qnfXggnlscqulzoemkmlr}wtfepgzryiibi^sn`\rt|nsgyxmswffvihtzrpvQldhqnhztlsniwo|}onzrrggi_|tvnqxmjfnqjgiiqfyk{hlwozrnjnpukkphgswiogfuqcknlopgxjbrkyourn`filrhk|sporkqjqtsnknqjxjttesnepeqieutjvhviuninzhqkz\tzeuc{m`ymmtteihoeqlbprtoxu}rovvuhthqgisqz{kimqjmplqipnugnqdesy|mpxplboovp~nilsmktjlr|bsslqor|tqfmljr}sb]oj}ejkwrskltl}zhonckkwpk}taylrhpsqzghlyhlqflmkorijlqdknnrotzkj]lVn\muquiu~vdmtyjsum}qsct|kzsmrxojm_nzwvlfppaf|ixihlhffj^kl`Ygsaxlwiqdrbmimulrr_vp}hgbtqo\hkic^[jws^hjinjnmlf|vzkvkmhmuufawnwq\gli}myeZvnpizfdjhlopuxolgqmqw^tmrngeoln_a`hdmmdxwjkorheg]enipto{rehxl_ndvkx|tu]jdrd}nqme^ps{wtmormiyoikrm}rg{puqqskfxosplakeilmcnitchsrndfhkvjrgimgyxrykryzlnn~ydizmdtmtcsgmalvssgmkont{akjlnzxutqupvjjefgjd|skggztwiforjbmiuhilmhuxzopirrjxqenk_jhkwZottbi|uqbnhrm[Xos^iusayqqrys}pofguzbhnnums]{y^udqhr_idrik``e}qi~u{hgnqil`zdlsqrgcn}gfhupseuapcZcrwktbv{ecsifsyiv|idordromykyqr[`wlthmxosngmdl`tgboq^v`wjug|qhv{yblpsuofkdrnitxppfokdlhquzykmpykbxhmuqhyvXqefsepknkrdniefox{mpsxyenvyptsvlrj|goqwmn]^miigqzrkqsxrsplmfbny|ypwrvixjntwkkfxmnrqkxkRstqdynfeucjts{msprkpgritcugrxllz|nxqnu_gsourtekuiqbqemvlmrmjukopfbxnxriolqvfgleyzruu_pw]yllsiucpatnttz\ktdtrsga}oyYupunmnne|ouimrmvaknmy}twmi}skX[lwSrchkl|clplhnltvel_vdthyy`sw~}hmqhhnkpwknnt|k~wsujtupnvgXzkx\i`iullascjsivvlxcl|dhevggdswgvohkuke`]rxm}xz]szp~ostggutlvwr{]majmer{qqvonbvpqr}jljf{lgzsblYpfsnffdzstcweislm{mjlpmoqwqssuuuiszsnpdimdzgyixwvpnr|jamrsshrvpqcnxjodujyfiqedbmj\jdjhaojlhs|urv}_lqerqnoaqk[gUknieZekro~}dvvexmymouip}\vbakhlbr~khhsp[t|qjhclcyldmmzpeoqqnpte_pkrm[eb{njzgtqk_snykizb{tokwj{flg}kwczvsriuxnpmejymdrotgb}}fltolcjste|msonvSm_oxhaqhmppuculd~vipzgqgpzsowlpvorrgnldyko^tm{ckkojkxdns]lmorgoznnh~scrcozvde`eiu}juslyjohxztubnzfpxjkqfs`ibexxmvlvltwlzpuqcjuktli{vxwjizuqqmmgxzgfuuvufpnqnnqvprngvisgjiqoowbr|kjvfpxhsfnhkrfp]{rlzblytqjonhofs{jqxn~rokbmlczukupYljstmpimjnrhhonfizo~]hep}m_vrgjmhlotj|qsmwknjonhpqtgrbyokssilznqkc{bmqojrmgtpbozkw{{qmvksznuipilcpxmktu~wgjmrphgv~ukkrjrgfvp`bxumamgeklnodw{ptydnoeyaxYg{ffqg\fhdhwjtcdttlrhxznuwodrqwxgtpvuwgtznz}lvuhiewv{oexecropbwqduvrsowbsbytdpr{nnksksctnjkfsktm[ndvqqh{qngvm\gbilr~lv{ctjiweyxlaoqipkxfol{kmrzrnshtyhdnnoprpznmqgh{ebvljkncohuzkul~ivtoildf{t}wbrgljowhtuYiumgzt{ninqenwlliykgvktxsdd|qqlm|puojrbsdiohtxdhtgqes{kp{juikkwk^iila~rumu|tkviYfxklleimr{pvvum`|x|pnvwtgooklxvu|zrixqguppfiyirnko}y|`v^{qmlauhoqpqjpoxvptgf[tzwetykwkwwsabZdftx{gpkmyl`ljop~pu|fm_qjlmsi_oXqpkriplo}ek]zjuvex~i[fy`kloivlsjoplekil|mpntnpqketl]boruywljo[pll|`jm~w}oe{tieu`xeyn\nnt\zhmdtnqvumtvrogxufq_jh^qnmap{ktnfjkpdsslylhdlhubgimnfilpq~tcnsXwecm{xnfhrdaqhnmv}udrcirqe{kZwv|_m_j~h\hqVnr{hjnjzZlomov}gfzlfcnegalnv]eituo{]xlfmpypqnq|inywqmxh{obevtxnwpkiptrvcd_spwiole}ru~}ciwvqvsar{jkktkrTawclrhvjIp}[sdr~th{yZsxkvgrmd_jeilftl{wiZuogrlgbe~kd{ztgn_ygljksjvipUeb[ounvhmgltjk~psntpmssp}slom^zv{alnesnsuidn{wcxnmurigqkgphqjutpipqsrdmiqdsy{f^lszsghnspqx{okkoylcjp|qrtchllbquokqtm|jkwldmmspisojeq^_uzmokhixs{mnvduoqhbotmnbf^o|seksgjsmnokpggimqefczvn_i|rp|pomrqtkofihpsfpepcnl|_sgr[|hknuzwl\ljrk_qhyxxtborldmqciamjsohqgoqs_zqlai^`vqnla{rullvdascew{upxwsfndbnonrkjdfzurdsfvlm~mjehmug~uonnvrrenqhrwadiglsigjq{uu^kqnldptiqleljkqzqrkllngugsncwymulmjlhusivo`clt\s~pghuj]acrrjnqwdpe~o[eteigrmftmcgmok{gvogoprn^nv^rz}hiomeqqfhj^tfhmk^hbgghtjddwnnpqca}watgerkmlocv{ldq[_impspwn\akwchlnivmiolvohpyqrsvffxnvt~bckmkz^yhjp}ceyibnmnqhj`xoacqovtsnnobawxdZeiqvxws`rarmqtzlyqouxhzpvdlXnlaqosgputakoqxWmjqdtgdq_rt[kxsson`nnofwqtoxxfhlheWtbrpmot^qYcixveffyqr|nslZoyp_mstvujhhlpfdr}ewmosqh|jopoaiqzvjaqvumjrt}rts`ewvrddntpcatc|txfnk{qidvWklvioh]Mvqx_ux~tjsrzjaktagdpi\r_t]irlr_kjihwbvrm[xti`lkgg\owiuNhrmsdjre_rifx~sprpqlvrsyodtekaymkoigso}wau~brklus^qhrk~h|hqgktiis|ollk{ndrinyhsnbosftzyk{raqpborqviiqnmrsoljkswryzfffs}g|_wmrpohyrggdhymqgmpkaprixeqi]g^iknymltsmqidnuajrwkpmnjtxciyhstrlbkwrwujp_jnkzcuhlckutn{ttpk~piwvpoonqmyxz|muprwkgll{wjeijqrkxb\kqplelxqlsqt\|syzlczmjurwubw|g_hk\^gxqwyrbpoqjvmWfohoeboezclmetws{dskdqueuy~lmiqfghhrwvqelmrzhtp|wog~znm{epykendhbwpnoyhnnmmvqjwm`xhlnuktojnwim_fclf{mlhbytdif^rjmibonijw\nhgklkqguin~mibrntci|qysmjimrysitimuylbolqu_livfnh_mh~dheqjar{tn|vs|gwxheaay|nppqwvxooPpyvnwjcu~hsv{[mvixtzvqc{ogoRzfokkrvdukcvqqmprpp{vsilwmiopxj|hypcjjylfjkewpnes{we{jwslsmXfudhnx|utepcxviemtvqmex{}wkt^ifcmpuw\lj|ahnssjzn_l|ut`kmpnme}s^tomuiidpodZjo}}nnkl^znq~f~c`]dcfgoj{pwxs{pastwjdxso_hrptermustzxmradkZ|ralkqp}alsy|oyhqipilxnk|uvaqu|knzjmznxpedrnjrlosxn{rfuixbostkbon|fnp{vdou|omlwchrmr{sqhfs^heejsfnnlfc{wiujek{h|hml^s{toh{xxfnplhtphpvijtvvjsmojdwtiw{gkmioklohoq{_opvzqeom}gpcd}ies}lvgolsqisnop{tjrmjhkrhnpsmmslWpteofpkokgozldgqzinlwhvtzu{hcx`lggkrfl}henlak[zhv|kujirkfnrlugqqumnmwncuxzl\_jmfrf{|fi`m`vry`ifnnp}oy\zlghsnj|er{ledhtnjcmltxwegrnnf~y^U~mljkvqXttpfjqp_pyohsggwcfsuwrvtgvmmys|u`rtl~xwpplqqu~mdnxxejajpijv|s_fjeuwqmnuvupunduptplxjknntydkpgtk}os|mlupjnfomupllikdhn]ghqvgjvpkvtsom|k}miwcn[vesytq{nuxz_qnsvnryttrbfekfkmonklcntephblvqtwdjvq`tqm}qjfqYwmgqjwwxcuuwwiqxhiu_kqbrtt}pki~dh{arqrynkusuqxevkjyjuepsnjpbs{|umifbpkj|tamfhqjduemhh`rjwk{wqiqisYsphosksrtsaimdgcinfmstrknllpelo^shzeypyabjlkrqYaqtwefvjsltrpxsnshuikiuqyszwmmhszupsin^xvjkdmkyvofz|plfctnfwqt]qpkcwrielalqq|eqylczonu~odxnsxpvzswuvvtoowhtmc`mzhjl{wqsxcfycq}o}utxkdkmuobkhex{wpijlx}_conwdldg|qpfuqffjou|vt{q^zmnzusrepq}yjozorkx~ihzoszohfcssaipzrnurccvztjiemubeklyrq^xugyt\gjnkuvtpkdjgrkbulzhiiynrldtpjuojz[jkmjoztrair{vckz~qqngr{u}{uqdwproolprhr}ntglkskqx|gq}pdmjfq{luo_sqtngdrjclwk`uhmxmyjsbtrsrrpp{qhocosk`upnojws~t}skrqptjzsngskvgl~lbvpwqxzyonqiryn~{{sgqruwnhpqhmnlr|jdxcsirpugtinoumtmzn{vsysnxg]asqnp{yn|bvikrivd{`mosapwwtwj~vmoiwnqrhlyb~hq|ke{fnj[tw{pzjsjmv\qnbc}ollqpeducpnmsqjxhvw|cmycovt]jei[lihowreql`ggzssoyytjkup{bwgjqjuyrusiftkhrxu^rlfZk|gmfhq`l}sj`c}sjrphppx_t{koekrhn_prubxo|ujpj{`rpjn|ptjrmbk|j}yi\nspplikmemwsanfpeb{hxrwcrkahhj}kco~g_h~mykudlanjtdZnxpgmq]Zothrpru|vssfzxeucjixlampfo\nqmtoq\vo`uunjvgthrecwz`qoxkjwuf{cde_sw}wrnhuxuflmhfoonjksxokqxgjfllmck~itxxhpmpgkcqfalqmmfj}rw^eyly|zkwqiitqrtrwqmkxoowqpsmoxmiVfnjqpdlfnmgcvlo~slsthhmqe{koilcpsex`gdstsjokqcoomgusijf[ohjjtmohflhqwxygqmzprd~xngkgfou~jd`prqpgwpnqtkpwqungdzqcpgkojqlsi|rpp_rtf}upkal{_vnic{q{x}twshtlezzydwwpsoliyafuvgqrsreejkpg_smoeqgnloft~pykpsbomlmopfiljvqjjylzepnlmq~yh~lowmqynjpsml~^tferb^ogrrgcjnphajxuzijbepipj}kapgprei{aj`wq]gnxg|jkxwppyaigmrlteuldqunmvahrxpgiystroblokbrmgmqsjhnXhwuly|rtkkxoonomtpposkckr{vlleuh~rcxiqrqmuhsuwprk]uectzlltjt}eksbualnnaqhkpl]l~pwnpwqpbopwmliovxhtynlfj[lwlx}{_r{qcvkmpwudojd`rkoqgq~|hxg\qwnqslnulcl}udqn`mnuyjsmkrp_}prswwrsp`}kotsirlw\zlnemuyVj]ougkkrwivofVlgjr_yw^ltnaxp{Prehamwjc_qrtlrejrewvkiigpok_pmstjmgrzplepeph|ygfvp_kortnuhWz\df^yudrgz{frkmrq]se{fi_rxY_sonerpjmwchmypvfrm[qulsbklo[aiizq`{owjksmjrwc_rfstUyomg_cokghqr|j|hn`lko`fvmsjnn}oxsogtznhujjrtplmsfqookksqk|omhWise|_fvmpmmgqvexlqrf]mrunmqll}otmphnspwjxjicptkinnvlmywvampxvy{wq_iyiinqp^juhlpglli`ouzen{p~wemstfmbunnZnlmcyhwxueTiqztankemtfj_nonqk|dnknsxsuxkyjrispgliklvhujtdrlywln`tlkmbxnp_l]mp~]ymlhmgfpynsarwleq{fsmdpuhspmkjmmnumvmj{isgrpqncllmhao|qfnvpsv{tgxhnrrmcpyypvcr{~tnpbcprkmxwbjufc[mgu`msbzyoxj{u|ntmk`ov`tfvwqjthrsojduulqmsvdfrdulvl[pcvnectglseWfogvm_odnxc~unjtfkdozgwcttukjciXxbdrlnnqnzuskm^ij[goujixhf_rnsnvudl|lqi~igugjzo|kh~bkjng{`qp~nkosfpjjnjxrnlo}jrfmsgtir|zZlemjhwafgpgnxdrwltkqZftqhugzlpuvyscsexoiihhjtnnicznwsjnoxqiikxtrdcuv]^ucrcqkzzffnxh~qYd]faro{pjxjsripspsjwantxyrjljkgt}hwqu^wlmqasgsfzgxyvvmnfyi`lpvk]nurlptsyzlvkpesdmunofijthxyskuoxm{dlmeqhxce]e|owiwwxi|uqgmq}kqpnqrjjg{wpjtohxudpgscpdxfpeinlmpzcssxktbaruvmpcgulglskjyq{\hk~ubrwiaiwu`gitpvghvtdzjdxesemsok}dqyrpjpsopmmj}qhf{dobrzqoqlxnywmylsru]ennxbdeqolp\mpkqmqetrqmjogjpikz|wlqs|d|noksqqipitmvhltmfz}wg]ep|pefte|rkmfux`twugotkdl`rieupgnllhfZ{vpkoxjjiddjkojywnkjqzom^fhbpcsv[mvkqi{no}ll{r~zgrmymmojgolglyjooXjce}s{ggvmrahhrdieu{p{sZ|ugcvisitihl{txsngqvlfypykryfknfycrmlwpvpl|kfgxltkrwpkZpmtvwniWgl~liqontqtorrrwojoyqoqmzhmq\gw{t[qyhflxfo_yl]xlpstienzusc}hsct}tlfeviqjvXlat}zzgbgltdmpmgtmxo~wrrp]ogojbor^zwuoulmvpyodswvgfgkejjowpzxbnpc}jnjnjaqqoho]donuixekbpdqvmjnmkmpp|nfoxzl{ao`vq`ohhhddkxmnxmdrsw~eki{hwanjnrv|xns{qn}pwv^xmelsypsx^jpntqotqdkk~jhqlawppjjhnfkorzjlclro\oks{gm~~regitrop}mqopedontqiknbx]Ygeb[nyw_iltn\ocyvmlruhwpkhhigosfmhtpg}vtkjpjlmnn`rmgplptumu}kqw]evunmc|ongn^_kugxqdizevh~lxsaqgotofeau^{jrsfrmjrnwmsbnmm|lshpigabplhgkmopltqfchU}rqbYrhmpfi]htjt{\kur]upolvs}ljjgsjsqrqmsmtnxubulkl~ljm`lqbkjskgtjd^onio{ww`iaqqclvnSlelzrlmrtjfzyqmly`fqtokvojrsgpktk}imoo{xrqtorrbwi`xn{rpdmwxhkvfkj~lmfcvspp]rumekhyipzkqly|~gueiljkevvpdojvprjrglxfz_kpnxt_op{`rdsnhxuhvrhppeg`mykrsn}mlgppkmy~yllgwnhesahthkb`ufyhm_tszmd_tq]nhpnp^jnt{culn_pivnoeoo|v^~qflc\klejupr{jnuwjehuqYgudgplhqmlpex{cio`hg|rclkrvchxbthkiqxedhrzvmp{kfqolrifqWwkhed^purqoqji}npfrozsirtnon~yj\jrZpjo_wgkuyhlqc`ywuq|eYukrhizkqtguojqjmjajwlbyjohmu[g^dqwtpjjgz~iwpgowfvuqhqik~jockq`lbnpvi|wpmiXoqsnb}j]YjxswcbyqmekjkwtonhrnpbeiodgebiZ|m{rechajmiolb]rlsuiirpu{psekeXmkxrzf~|xpzieuivzc|jcln{y|glctmvX`|rwfy}h_vaaoxcd]`aydcq{enmxyjf|ridsrqedkvspek[iziwhngdq[l_mrigpfmmjcitskemqpsxejjrqhhcuhbijldkrrzujxeemvttfoqy\sfayjvmcmppksryosl{iitojnhtjtpmpkrwql|zyaovuownwvgeztkgzosrlpjooh[mqder|hcesqllmeu\rqhnp^hpgzq`dgomqyp{khlnqg`culidquiml{s_|f~kncyavrnyglmkx_urtlnzrgms_nmgjhtnj~ntntfojyxpgkbmmmhkkrenpg}fzw[{czrr`ehvhhkvskpnkrvl|wojgednoqibqoocsqmWrwwmjkiiltlf^gyrwzrwfnflulihnmllprnmiprqsioZtx`vtcmtpqpvhpqhmfmrlkcmyricwhrfehnaknptgk|obtwuqjlpmom|~p|lp_kqel_kngqbocih`hi{|poerhrfitwwhnzzfyjbkpqorw|homydqcyj{pjwilk}ne}vsmnjcflhlxynx|imqnnjsysuroh|suevq}xcskhkymmgoiX}navycg{cwceY{zrwwxnbtxynlacqijb`vqpq^njlcje|fhht^toc_ijqxppjucWpnhnhjaukxoml{wkiqqjirxvpkux`cbux|scsgmkwowm\ozqheomlkmg`yttoxiusiexiotoxkxktmuvtq|elvzjpTztmeuqsqpjtpxW`ndqjhurntgvoghkcdart}xpsbvnsnmlxxw`mqhxvr]eorlv}mmdwdr_whro``mvcscomz{xmbqxfoqslfhnnjqms|nwgjmjvhreqzdh_drgmess`mjwsh\pwzeughovmkos_}jkr{ntnqtimrqy~ycvcp{nmuptlpaecpgfmklwrvldianirkooc]liwhj|kxrtcytjo]pmielmqav~ha{vbnbxkvnrso{nrhff\}ouiizlgjn{s{kgjgkhwokywngmzlpnhhnsimvmfqk]hubmhemlxmjxipvkh\vqrn^uvpqhvtx|{~f]i{amiwjhpd{|pjXqpujslgixkjn]yrxnyilmlsem`urxqq|kwlj`utqp}nhonvh{eushu{lkasa^}th|tlrgpsmpjkeiofpybkruungirrplbc|q`muqqognuns}rmor]dd\jvxwkvltpyslrYorljerdjosuj~rzzosndtknfuzug~d{nrkqmvisnnqwjlq~ouhjtxelmYciybkrwpmqogjkdsmr{salsjmzw{txgvvwcubabkwoxukqso_etflrpshnlstmewp~`cgwk{~[_rwZmqopxnngdov}vnntmppmuern|tpykjeollnqr_nnxujuf\btcnptxithjkntutmrvwqvqowrypv|eruvjlhgjwwxwi`fbpqntp|kqo~zptenromi}Zn~f{dvcukna_glkvrpkxtlizsqkprhquaiXxksu{c_ypgs|mr{molkfje~lbgcrgjfnuuryrfogqokzjknqc`sbuditgcbo~ltrap`x}dsllij_loe{uqkjvjac{nldfvymyeipouz{cukuoannljrmiyk{dnnfe~jm_u~ied`wgl~wxxiwtwjnrkqynrlthrtn~hqdvitm~~yqpuulk]qwquh`qk^hhpimgupeqppsvrsiinfsrkn~mxvnrrtsbyoauwtrquxppkndrZ|rrturfet~{nnt^uutwjjijlnexfmwvmyrlebemm~agsrpljnhycfuwq]zmdqlo|u|charohlsm{skhmuxkoucwkqyhssjpkpkonpmoxrxmlobpn~vmi~`msvsqgoaueocbzw|qfltw|gilkmwq|ojmfspkllkt|tovosijvn~is{pjllothrultul{mqsodgmicsavbkw_essxkpqsnurk|qwmxodq{gaq|duqnidemkuwutzvemlspmbninlrtggqj\kzq`pkorwhotrgqrnomxjhuris^lhfhjdmpfjkohmliwpvoqgg|by^qphttegxztg|rzhczoppp_rs|exi`osoalvuuqlwtkr`dx{lvmfruox~stjd`pohqpopjhpmijt`lnmRsdc}ur}omx}zpkxk}ypwqfvnorvtrk^cqsp^zliop^fnumhmnmjwp]ojitXgyuqujnlcjbihnkkepgaifzyvbw|qlits_iqmjddm_nvjmgmprzgtmnhwsnnjblokrplcktsl{mpvysgnmslvgnuvedroinepdx|pcielphutltif]rsqnvivqwvihhnqdzermwcgcycyqs]u}dgsxfnyfrg^sniasukprs{khhxcuxvnowbjoygqohtofo{Ziwnhvyl\lfiqoddus~wxldi{vyqqlukhbnulgygnkzqtok|h`ueml~akkcwst[qofvqvhetzxhwn|hipofc_jryisq]ifmivtjfq_ifeuwbmufhqafblmvsbVg^wube]qewwcqjkmlopqotekpbe{vypeteyybqzwhob[grg_lyptrppomkwm{chsexgdfpmqzolewnsbjes`xbuuekiksiqi]hlrpyxgqkrts]ofloimi_hfrfs_ml~jqfgdlwq~zbsgnvjwpnqajrsoblcx|ynmnhd|jngtk|kvvhnyfxkypiebqj[hiknpxw{ehqctewlnfvgt{}kknn|dpgo|oquslifpnwx_pzirWjvjtcxulgdbpuwnkkutvqg[pq|kf~dfapzm~yo}zhknlqdvklwu|nzkqxi|wgn{}`^kjuslmwhvug{eewci~ittfgqdrowmk|ttyk`sk\qqrsgqwu_avrsZishiydjykmjp}jd^vpco`k{ufrumcnydi\so\lcqjpxaiivnnw_qqrprrw`fvsq\jqusktrbiruejodmoqnkdujknp}vWyblupndfuejktjob`nvuuqpkrdiryk}mowmiq}rg]rkjmn}curlhntsdrgetnnieuvnvtiqkolisokgujhjdpxzfzdjniisymjufmiptibccrq_Xtthlkmevrqw[`Y^jbjbkqidwqxllpjjmikzfo[}[lpnwtptc}fottxkZdhnqdzj`exphys\qmyujdcqqy}knpldkrf}fqooeizabtgjr|es[muph|e^mfpk`sf|pkhhznsfdehr_jvmcuctnchlkvft\}u~bf^uepsm|_v{njujpmnc_rin{ydbvdmkpskai^ijlzos{}nwkt|hfsonfnhgrpcrungvskjwfnmgejsfvlk~mt}~hnrq^tein{voei`dafevqxwtmgimsihtsnihmqljpdugl_nnhssxmrxkjve_gtkdwfclyhat_]odkwlegyryapp|msmgqnuvzfhifrl~ujvgsvv]p|ikyrt{a~zxfnopqvmrpqym}v}ok}njsvpcpn`vuhe}dnurbtv~kfhj~cownrdjj{jecepfq|lormquermvqnmzz}|hjljzkcnolhhpixtnwnejpkql_molhiwr`dnqootrwrcrybtzm{jwskprkrrroyzjblqvsjqzwmsfnjqnp|rn|{yo}qwgdzlvj_efjl|tp|xk{rrtmmgmzmom]jeljgkyr]vrlmubb}\hkkshwsztqkdqi\gkwfhyjuaqtgraa^uzh^pfsa\cfpp`yaooeabbojt|}uuqjsleiissdwuqfkr{jwoxiafgxqeb`kknsvojt{jsssrh|rtphnjuonpkgqnqhcjhlgqdsnmjugjmtjuqmligmnmrhwmgjhttpkleqsihrqceputkhkkinytkjijoskpmpnkxglitr|lksv}prjkgklpokqslekignogjskkhlurinllonvvpnmqnqpfwnqtmklvmqgwmuwfoouogfriktiiiojniuinkpsjnnxnjtnrivqkwrwohvhrufsjps{jnmookmsvjpplrpomnqimnmrkeibstnipkhkbqnmotruyl|oksrnqtpltinimiophkrhtioiflkigrlpupzntl}plnnllkijpporuklrllcomovhgkpqtaxlhin}msopqjsjoi{sienrtdslplkhmnqomnrrtnviieegpmowherxonp`hiuwwnnupy|zvnZerumhfaybge~c|ehfowpeghsglght]~|lyyqmfx`gfunZshlxhtlwtiakrmhqpuiywmu~ikk|caiw^txqeguwhnxqqn\x{sgtbjj~t|k[wftlmjuc~ulz{ezw`jdkjkmsczij}rfo~filmrgubrydpn]quxntp|fwmww}jfonzbhinskXsgblzpgjd_dketdtei{pdijc{gcnzqqmeis]|rywvwgqmepmfqcmmQ|qnfliquk}jkaqnqqop[mnwosvroxvirn|pztyehhsbaqwliv{wcr~^o~goqrtofm|kj{uzee}gfztfhrymxisoifmu{urs{tivzx|nnjlottiiqbynrg|`sglwnleuqnln]dongkhfaufp}cgqvoipfsruodwplnvgnemhsjbtslfk|altyphlwurqkpr{hdrjdulrfopmlhipsounyea_jdohfminhignmh}emvnurlfukt`kppmcr_pj[ofwmudqltjunfsidWivmtktiiogls{~kliijpfrnhsqcphoeufsldxk_h~ienr{yfnxtxesfbssyyhrdilpsrcopdejhzlzru`wgzrpvlkje~hmtpzmmkahsws~pinrgvng|giecn_kb~uhxdylhskuyludoyaoqo`dku~t{{qvrougeo{^oqrelsmhsjgrpxr{ajiburldqngrsjvdihsqgvpfjuikwdqmprfsoeplcffluoslo|nq^osakpmuibtagowhhqrzjfsspycovs}jlqvyjfgk|i~squkpmjohj`epjoqq[p`zj{nwoxewrrzjWqmxhdpnkqx`a_nltyvsg`awoxvswspmsimrg}rssc|lpijwfwb|rrgxmvqxa{}uqfldkgi}gqlukqnamj_lk|ruyftznty_qpqvko^ruiovpapovtjmr}`{oqy]isstiiewypgktlfpqvkxjckaqnfhtngopzgowrdvbnbx~bakjrmlpjp|]xoizadmhfdvb_}xnmrj}jrzqtrqpcf]xmqlksxdrvknrdlxtckrk}oj`yqthok{iihv^odqrqjtu{vss{htuxv`dhgpslaYpmplnqiykjtqpn_pyfiptkpjlhubverkqk}tfflszrlgpbqiaooynuxma|cikqiccovmoeqtwlzmoj]rgpsu{ok_eiukulqmj{yjtlfhqgededrlwogvtkrsqroqhkdolkwhpzmfsylcqlfluqmq|edgiiwlonlxiylkqrnfkil}_vjemsnwlmqnqwjqrrfsvorenosnrxsgphjnquhdomxkmkhamfjnrikpqmgnmlcthqqstiwlngoi_kplkwtntlzwn|nmfpjr}leqztuwpdb}ekie`eyqpqpk\xlss^igeqtjqdjisrlejpvkmrdtdloizqlxrcjioZtgqu}kymqksr]oo`qduihxciqxsnf[mf_ejsnhvhafgskmjoskp`]zihpmiuj|Vtiprwttenir~sognjpjr|ekwquoo_rcshrnkjxmgsuhmoh`l}iXo_gowvwgko{}p]kutuuedrus`ikcu[npzziim}q}rby]rmohujrhonjusprp~|gk_duopvgpooeWxc_}zwptottxqwfj{fmgqvsejbpkurqvmudswxwymphkpnhpkaojkqedzhpghinyyfcrvuojz_uku{xgwpnismuihlbenrtteikkmmriw}~pgiyrnvuh^uuwpsgluykzvthtomxkvpycsjjmdpyl`tn}{opjwoogctgpui^wvoqodosnj|nymvspoitkghof~glqp|kwol|o{m|qzzqhwjnos[voilpgxhuqrejtoovsnva{lnnh`irkujmvpjdkukyrkppjmhojdrjlxwibel~c|`mnxolcwsbgigotnjrgtlpnzvmerctnkve~rpqrivbzt{gkdux`umtzdf]ovsxsspmgkkkcnlnnjnggotlcfupe|qmnlsotgu{yrg{}uwepskuyueworzhdjyprzp}srpmjr{aahuofmqsjs|glrwjvxikfuhslrknjqgfnqhlpogqjmqvmor[atr}wnmvxddrkkk}lvgm{svhriven{otuotvs^hxjxcllqxympkmtsnrtrk`cmeljebojnkxengsunmh}{`otmoiroddgatwwumm|hh`gmtmcf\Ymv`tkngtTklskghs|hsrv|wug`fudpnndjWjjmrif\ys~btyhr^kp}ivkig`mlvhzbqi{fq]m~yu~}~ftheohvbjnnegromortl}eusjwg`rumjiqlo}ofvhzjegjlmqz~ep|qmuzsonrhjyrno_\xnvijexuen|lfxmuvliprhejojiuqmoc|gqukr}n~|pfny~kffzzljllexeto\r~qms`xujr`kkcrntbtonlordm{kofzsjuiiokc^hnskxmpuypiscfqrtgnmlbltybf~akhtlpsjtni`rnicppbyljcosusm_brlzrmfhds`pmonqmyo}nwpzgntthik|yruoqsenoldw|jiphsxln}liqvnrwcud{hgphcscq{z|ohkyuiUwra{dylqgk]pvpvjvcn_swlyiskixwmouwm~vlwnxumhpztlnkpwpimzvfgols|prmzy|mqwmwt^]jgcoxvhgcgndfz{sqzpe_idya~aymj|`amq}|e~dodlgp~lmq`n]bakxpwnvxxwmowgfeuqsjqpkkt_lndeb`pZmscerqucwusq|qulrlyjloswfw`ft^qtaYmqerlcd{mlpn}isipcutosplvggtust|]r{dm|Tu|of{qjSfty]_bprspqrnguzyfo_p~vrq~sm{yooprro}ptZml}jxpbhxbwgfqi|qrzhljerlvztohjijWgrgyoibf{|nvhkes{~drypqgff_oifqerqkcvoigaulgimsjlikyjjqbrxs_zjnz|kse|nzoxrsoqlo{]texitdqdqjvhwZvsibsnkpx`q{x{hzfsnvvpzshfhtpfrtwtmytgU^Xfb[techrtms|yxpr\mj}mdukkRmZus|_wqrbqhtlgoqmjmuceyiasxa|{p~kzsykogrxkilwk}scnkljrpx`isuxyfkgvbpQ{acqjsoytX{Qxful^y|~o{lhltjzi|{qqnelspfudzwwmx~q|[g{^nksoqr}_jrest~nWrgloWcl|q[yh|cwmqlwZq_vvlyxwn_rctoyutgtxyKym|Whsxvd[ylgqqyjgnuz_TknzivgXmfduernbulqw}lZmimivqdjuj_pkb^jijq{bsakehe}pu\uxnbqhtkqfd`sn{o}frxxuzhcubtghfomqlmftnxoub|sspyg{cejcshkwkhvrdll}Zvsy}knmakgclnbqxsemqq`wb{ey_`k{|jocd_rpvl{kh~hmdmoam~v|saqtfw}`priny|zgfjsuaxnjepimgwozjmjcmqloitojcmurztrl}lhyjkr{nttpnxwp`vzk~ttnzrrjyejarmtjujng`rsj`ulipslrpjpseiexlnhi`v`rd~yjemkiczlmtljge`ih`tr^prr{qptpu~kqnfua^du}lql}jgdwksvsifkzrxyo`synriynnfs|~eqqnxadlqhkxeisxexytsa|obvmvjdowuxirsmojul`xtsoplnhuhnepr^lfcmvywsqgnfnpazdrh~hpnv~nbukoxmtpkuseg`uroymstprujn{|lxnxwflnwhsd_jkttvopekpislahi[jdludxkZqujlnr}wilrhszgklwqq`sarrmzwrvmo`qtoqo{fs]msfjaxqkqjomwkdwiiwXtmpia`gaqjgqetlZ|rtxciirltmrhtk[xqpusnxl]ypc`pcpqnwl}l|qgoe_bvzfx~hfvkuporouhqkwjyzinj}xjzocty}iq~x`qvl_irfpniptidjip\mupzportq_iz}lcbypnlhogzkllznoPxtfyst{nns]kljgiraplrgjyr}qnuvw}f}gppspluu~lfwmlk}pivnam|mmnqtsucwwlisRxojmz{lxvbilkkggdei}speh|[wwqok~plkhe^rkyzp{sijgylod}csunfzgkwsythyizi||nthndzuyufsvmzn~kee`jn{qnrty}pvmvspoqulxvf^uot~jfrsijmlutqrtg{lvufw{bln|`pmppi}{~ctcn`wbhpzwrvxxk{\|rh`hogpdx[k^gkl`exrdipte|}hhtp{hvszuvqsljjnwhquoxrtku~vs}txr[hqpviwhnhiejurwrsrnrrtwsnsrozouqwrs|^ooez_kf\yuvvrnrnpqv{f{vlpteottrrrytctmvswfw\Ttun`jqzzre`}sk\xzq|vfbucwYtxu^qv]qahs~oqt\oifvpvlxn`gdv_\d{jrtwbfftwfx[]etj`kavmqnbfscyyvsvn`urrpdoylrvkwuiqeqqgkugstrs^usegzmyYpem{tr_qqnrigcodixpv\mfedjirwngbl~p~lkoibovVrvkhdnpz{hesingju_iciqjn`K^sgsxzSia_wlutlbmyklpcfcduwciyimsmlpotefzulrnnavUkhwUwskxoiqbaph`mlVc_hq\ypdeUxlgsjlslus_u^nhjkiwhhnovtaizuspkjixWplrflff}jeg\p}wdjexmqf~tstnk~wm]kv{ejzooomnog]kmmamrrgqtnmo{kruvdmloqpl|glhmxiaovvoivr{clv_mtl]kycne{vziclpoilpnynqnsn]pymrtrotqgyttnijpiqwcjkynjftyaopikn{nshlhpmjmxsvknxpeoihs}neu|meulvwuxomvstklqbhrmnjpjkfqiiwwkqrfmpkfwxqgyknqvtqtulo}gsptqmeomujfustxlhopmtelu}gvqqnvtzhqmrjoijpnjjsgslsaumkvksqewpktn{zynhkileoe`ecohmesxneqajp{yjgeoouf__t{npnhlzhptlmu}ykllqqklsjmkovzij{sqbs|twjrgsncqewwthsimqonnnoyp|jugipnw{eimr|umUwrpp}jZm~gpuu{rwl`p`m^yjq`jhm_~ns]rnwdncxop`xcjtcjlu~kh\gdlterphhuzsmqkrcexjg{m}elN`gf^jkptgcmtmql]`lk^crmqiw|pXWnlj^upyxyuxa`lvovkmgkpnmjrhwnzntfuciwnoxtmfqmouf_ufukrsrqXgppysluqkm|d`mxkjmlfjsigx[oocvoxj]_ccv\sqz[fojpjsydggysv\_jxihsy{erg~seonujmil{[glvlhyw{jstkgftsfznuskrmdu}y^fttc_g^yilppkliqptoey`v|lfij~cYflxioudYntqjjfxqckvhjsgjrvqvioldprc{jveymxeue}oiog^dhzmNWrnggorfnegt{~lvvs}lhmhozlNpsirocnmxgpmwks`jhg^olzpkhp~lufihgercyew{~~{uvykrjefpuliql_rrsn}eonmlor{xlcoqa~sprjgzpsds`lv~s~qfwmfwfma[rqfid^x}|zfxr{jbfsu|lkfwjjdyw}yuhrgnr||vxvknfdsm}rrdqthjqtyuefbbmyfutlsu`~|ptpzojbtqfj|gmzreljbg|akk[oznrqfslfuvwmywnyf}mqusxjm`~gmiguj~hZ`zvkpuesim{kzhmlwnqkcowhqerwlscubicpwkqfmp{grjvpoxuvf}u}vqvj|zkurhvnkhkmgw{xzuwn{qeisn}jvzyzbmghtjlfflfdjpb|`on|sqbsr`vwycgekmag}knpghmuqrrshpiwrshqsroyarrmxropzttYtlkhfxknty~ht{qcf{mryrnvgimyzvombkbivdnsagfsipwjikjkylpxolwmtkrogsrlqgmprltpgjmrqscs^}uvnwvgsx}yxuxunqtkcl_omsmvynxqonmyhpno`tklrpljktjvkj{fvrxntssixwhhbityiumnzrrpmq}jzyhawm^tomh{glzuh_rs{sks~v{boyornh}hfrlkpewxwgifjlcoouhokmkhtzo|ledwnf{xyxopzzmt{hmidleenymld{oryty{{jcmgstf}vl|zavrwnnhpxftubesupcosrvw`}ptbferqne`ekvmpgjh{xnlzlemy}rn\j{ykjtfsenhsmmyq{gmcorjkolorxrhY^tmqggujsqk}uoerklkmlsunrrox{hrbejzsbnipsunjplmipprovknpa|pohxjunnsdbmmskgvhrermobr`i{dvqhxchgpdjnqckszsndusyxu}rrvvm|wrpmhkozoj\ttrzgn{lddyuhytk[fsn}xpikmsnbflvkmkkdwl{jjmvje|morljlnkxlfhwm|lgsWkg|qnpoupqsqfnZtxlhqtnfwohvq`}nsesqqwnholmllot[xivqsfllbrho{kg|tn_nklqmoqniqklbgomwxjlvc{ttourrkinnsgkjwnzaion`tjbp^a~ourqlknbpfossokyg}ykdxa{dpbj{er~tfwqhr}{ngwhtirqn_nwcbxyikvnw}oow}kxowqmyvoM`psrytokoklilgpjqz|tqwym}skujm|y}p}zupptoxrkqsypsl\ktf}qmkzmga\xesqrr{ocmmprw}qe~fq|tpzml[w|wwxyvltko|iokmbeto{mibo|lqv^jpsxmpqniq\m~vPljthoeovvuqZ~zjygwqodrzhvu{sdouljlvnmtw~o}uo|rqcss~rgosot~pvayj`royozqjxo{xjyaaabhxpampts{bo]zjhowxoorysrtv}gkhgxtunjZcriojmodctqfwtjqlhi[xoVlvtqbkam\tpwxq_v|zvdeqvwj`ttymkwtklgosvsce~ddx^xj{qly`Zgnmrpvh{jntnrgm{ysxrzwqujjfrz~`Ytxcrvccglxuxtxxqkvzfjmhvknho\tdfnwx{hw`kpxut|luwmaihwf{gqirgvnzhu`~ugqlkloXVswyttwwlmxrqkxsvsnlrfgr_uzqkkqpx}disshqyzjtwovvllow{~fojemqprdstxrzopkbbvmhorpuo_jxsqrfvmkhkq\{otusj|}jsxormruywuvjap~aypyxswbfr|uyc}qri{yzye}yqousybpwjlfjmjinrpn}fnsuleqtyxsvqwhppewknwxmgxk{d~rjlettimzsjkmyahln\khcyrkolnnkswjgsqkmyjrtqkjbctnjkowuo~uqko~orlvojmmpn]xgphjvnhpmxkzqsuvi^nhklrpjhkakYmqnjloqsz^eor{hpotpc^ahoqzln_et\ztsvpnhp_mnrljvsamjhjqrvonenhevpcxlyungk{eynvolepwaqklna|eivuejmokqtccp]wptlwsgxjkqpzeowmmiskli_msnvsvzjzwmtdssippo`doi|{l}f|jrsmivwyndsiwhnnrptw}lkllo\rlmlznuuvnx_~vks[c\swpstesdqivfyr`udzyhqujwukrlnulzbjp~wtogvxitcmosmsckv|ru_rfaqtmnppr|rtz|jn{ehlotkiqtwhjsiumiqb{jlg{o~fu}igpor{k|upxhkqfftql^icecj\uqhxt{zrousuftoqkihlvbqsllmgqsmsumln~l]oocoi{tfz|kxoidetxdiprircqfmvaghxxmutsuh}xpogs{jqommvpllnqrp}unlkvj~rfsvytwxlh{zmmt`omrewpin{mn{tmgwntpktjm`cgylgkzzioufnjjpiqrpYyckssfwbtvbnf{pwdj_gzfpkulppjwinwtnimhkpp{ufq{kwdotjmrkonxstpjtswwknqjjsipvr~nw`rw_rmupqhknqziuuhzznqvjqvygxupjpjqopll|ssru^qwe{udjtkxlrsjvrgrqtrqrgwotlfseqqma{qxqnwvfklkgs|vyn|tqjwdyjdoqrprU{~{\ohqmn|liotnsq{ewicwirjuwpbpofvjss}ojfnnpg{fvkqom{lwrhotlmv|ivh{vllisamtkyzqfwq`sgdthutoxkjulmsxqvtjdopsqojivwqqpqqsqonmrpqcqqplekk_^piydirefopo`q[qp|jokjncsxdipnekcjszvrrt~bghdkyt|us{g~ubvvrdrplsmpgnqdlx~nluenrpi^mowrf}m{hiavsdkmnmaqpkmrmpiconryvh`vqrtqywggoypkp^|lb}e~k]rrrmqdmtkkcqpcteoukna^{tashrybT^Ubuxfkn\e}jfyQZce_mlyu_vscxqqxV|kqkkaeb\w{[kjxtsgjquqhjme\UyUy_tj|mlkh_^`{t`TjY]XuRrp|Wnzp}yjdgu{zs[lUupjxffUqillz[tbv^llkT~pms`npiygksie`gr\elug}mhnjium]mpwmguknt`o|yqiet][l}cfmpn^umq_~tukcwfscrwv_jawys{|qjR|os^]z|[jn|{{ggvc~plplm|hpg^jvptplceamkf{trikf]zehbv\z~nl\_|}loqa]ua{Ywhhv[yi~jhloxuh_{rt_i~wn|mcfp~xfjkq^tt~irngg|z_bggqqujskx}kguzvmmfv_thhweyu{tn{fd}pjw[xqvroxjuxowbpt^krv{urmvsrvpkfld~h\peumywk|fuq}ea}opvkzioa~wkdgkjk}rbrqro{Zk{ngrudpgbXnecphewyd{o_|vnqxmscdhxy]pnomovhktsqnswtjms[l|nhtnfr|unyojoqd{rhhsyas|nq~jskuhqeqjjjqgi|trhcv~qdmqboshxnpo||ctulqoovmmipYagvx\hikwm]oglsjuZwvscjw_v_j}ktygzl\sjozmnooZsgtwywvskcxspimg}wthisifkluYwizxbzcjrrf~u|^nnnrfmipqtsxqmsqgeyvdhi\ptkh}qlnkstsglsiUf~mk{eikrt\wnm~kgbcdymlryosalanhojektpmrsbVw~aegn_ktr_lmdqp{wimrlhlxkrnueyjyty|mzjuthwvkplpe{lzs{flmruwv``jqnutoouk{upttokmdlklguk}wvpukkzolslk}`kwwfpfj_kde`efcxldqtpfvvqh\gdjadh|kuojafzggc~g`qxvs_u}soehmTqtoshsvxnnonmpbukkuirukkmhqhhgjkn`lkrpazo~i{Xchtmmpprfkh{dnvmtmghl{`piiniotqtrpder{h~cvl|cczsq[uidbsx{xlrckimlot|titfrohfr~nimzvmuvoq|qhobllnsrtinrzimrqosmsuso}vgcpemwbeilhypkopmhtpmjqvnhuaxlw}glueilmxp{ekytegrktatt|uxtx{gg|qdetvsq}ffjptowrmsvtlrtvuujmx{|wuyfvun_h{ek`gglrl~|upp^phrgpcexjw~\dkhvyo`y{_ksobl{ooxuzgtqnjokminpt]iu_qskjsypPrrwlgxixuzwlrsdfwtsosrn|{{stvrrs}gh{\jn_\ipsr}`pitzkngopilynxgoomhmtkfszqsisgtciiojdyawhvwkyso_lqvjwlotuwgtrtghylabniliwo}zfzi{i]eq]g{ygvm~~lecoo{crwl}q~sgk|]phktehjqd|egqlvo}vzsrvjfuvzicrok^j~|fkvlgycu{imspphZtnmiy~ilf^mxmdpnrogexrgrTnm{`mahhuuxb{pvnpR|aipzzqzbWrnklvgukhtwz^ilzbgl~ictqpkmmbp`revkxlj_xsx]jfiy~mn{pkvxZrjRguc`hqnuekgxyqds}welju~qnzqlyknkxrmxfvf]ykr{`yilldqcn^edx}ai~}~z|~xdmiuyacyejhbxlquffz{[imr}kylir}kpucTkanyTfmpvssxziv{\crhpfgqkjmmtpl~oikll`yetm`u{sfislvujjnejugmpsmpjhmtpqftvunikpsgrwrpdiomonhnrvb`{xlepokqfimolhttwcqoiglusitxkqblhreowegthmjlpfshxwycvwm{kwgrqxkoomzt^jqrhtvaqrirqmuv{h{tj]ttalhmla\mrykuo_airyljwWbtjlylklloqsjkpinernispktulzkorjygi~kpyinrbanpf_n{wkqrmjfysrdzhthqpZmwrlfpzk`rlau`vnkmug`nrojfeqdojuczmirfnjgnsx\qlmpuhyrnlkvpoojxnqrc{wsrgfpoonmm]rxmn`kloltiogkkijxpnmpoiwqcpZfc_lnorpnlwzefnomsrjtrroduvjhmluqgiz^qlijr`bZyexssdynfkt|tmbul`g_nqvovoz`ditir_gfns{rl_xhkrszqh]rp`cuvphlcdmrkkw{qaraohhd]it{ksjsjpx^xpfwlrseltqwaknkbi^metthhrpmrnnreluauetigktl[mherjwrnefb_oofrksqpeph[pptgy~{_`etpyhqmiq`fooksnvknp{rdqr^imu|ibfxskn{krmajxcsivjhihvyluili^zscsli_d\`qn`bk|s`nij}mos\mpnmxnkc]boo_tmwikdcyazd^hmkumyWkbrqqi|ncq`i_acittitrpjlflmmm~cljrv}sz~k^_cqrg|clhcmmhikj|yenuin|}h_tzuksqhtmtberujwnkmitjmnk}q}{slpuntlvwyrmnrowvowonycl}yuqf{rzhqvui~pyvqtkgxonWmrksmdlsnrupni]tr}`fp\hilucwerng}opbwp`jzueet|oen}z|inrhxinwzjgihkgt~dnlmyitgs}luyjmrjsfshgyfjosjlwmq{jv{pw{ynhjs{pdtzvts`pnhgmqrfmwfedmadgmutwrqid|iyptsrkdhrnufqtsgfuqosi|imvmodowtlousc}ihromctrpjYii`twxmlwsn{qnhmodfhswdpve_plqpurskgtseu|lveujrsajytghqwhg}ezoqxflmlntojtekvpxvfnnw}omio^ppksnzqfuqnriehjkum||ixg|cmsptqkfbjkqcjXshtjpevtoolu{pflhvoswsjfqryonvbditawmpzn`iqg{zojuwzxrmqhgmkqrb_w~{dosguofuztvuckevqmmtzxxyg|punrpgocqqlmgknikhdtfinstoqgoiihvtdvponooirqljenksxmmfppqqg|hpmgjn^|keqlurgth_owvpnxnelpYdgplhhduxsnqjnnjynwfxh_pkehqmln|mhr|gsiddqf_]iamurqzsqoucgevolafrnf`g~nafc~ixpipron\lkxnjmyurcvknutuobYimywhojf|jqoxqunenvtrswvlq^lhjefl^gfxyxk|knujnWfrkxibmheshkrnjvjbpordm~snvdkmojiszkonqstrccowwnba{uw{]akjwiippqiqtwrj~mbsj}s|oqsmuqijw~ehy^eudbvpy`yyimfflpxbiqgh{dwwinyprtfdjhvbu_pqogydZltsixhiurvfgayikniooeyepvltvdmlltj`ibjpdif_eck|jivirkmlmkkoudsmpTcnfxsirpvkpmeolnpnlmfhlhhqfttpndrfk}onpovylklylulpj^jgh|pcskpjebugYowgsiys_exnhwlfmtkvews^]fomhqpr^ujxjfjponsvnxi~ozlv{]ptrq{a_knn~^npigwsul}gu{{xehlmj]qhnnju`e_tqkrnwoyhpiiunnonylh[rhbfpzlkwjqgutnftkngghpeurpxgvkkshgpprqxi}n|tzfkhwioqojjebiqhtouorstdod|pvjqzsppzwpb|tpkx`|dlkvjmxiwamhuswhjpwizrkyxidimoidrqgo~lxprtpos}omiyedphjzl^fmjpgvrhuohyv[psobvxwqvmgdfvj}ejnqtrv^iemylavvmdsofwwripi^hi{rypwxjehpoiisspyjdmllphogtjdnvquqzrfzkcnohsvxnpslkihbilueqzzhmeurx{ixpktereutuvk]mmsp}^nprfvepzp~gkwuhmej{mscdbggkwe|kqvnllshruxijegrqtfcqer\`bsal_`fbrbasb\g[W}`kvjaqmsrbs_rb\cc_|srjnesb`iplWdm~siimf}um_mZubemopiefndlt``qZ]nexd`oqskdua^i`UgahdempjgXmrlThimkmgajs`dceqfpfkh]xrij]fjhcldteab[k]j~`ogwwaioaakvjookblaq^j_ijnkqtemjefpgov`^qpkUcdv\fj_sej^Zs`dkqco]pvkboWoujboccjvR}epZiyjgegrYwjciopkX_blmeidjjefzb]isbkddc^moamoroquZijlawsj[ifU]jtmchdakq_ygaqvv]jTzubd[`Yudsgdunkegel[Ndlntv[qfwgZifs\pfcdj[clh_fhfhdmwX]^perhldhjqsuqnkfs~lmnmksnnkkgvowlryoorhmyktznoz_wltiruroqu|fiqclxbpniosgapmqnxhdywkjrknzr|euqmrern\gdmqltjhnmzhm}ipcumkpgnsxqixusxrpljxjmloihvorjqcjpcwnbylrf~nisnkpk~fuqiuqmhm`xittuppnl~bleeuyzxviqrup|yklezfx|uwe{tnkntc|nkjnxnco~finfgwn}sgpglqyvdt]`klupey}xolwmbv|dpnfvq_uxwwrplmknc|oe_sxukpzrggtv}mqnkka{milrxrpwnmw|gitreuxogzallelfxirn~ledv|gfhbhzjcyipnutnlpjklpzdqsqhdlmnsslr}tlkb{~fianrnmu{ta~bmhrcdrspuecpun_dhceutjq\h]lecvmffcsVi~[jssfcey{gukhqdl]]gfbqsp|qoy`jYtvsnn``rmWejb}pVdcomu]qpjmu|}od}noldew]lUhfhjzvmqynrtzj|_tdkkriqjhysxyq~n[jvisu~~qdajz^stysta[hkvkynkmyqkeljkmyqYwb|uhs|rn|hxqbht]`qesihm`nvf^enkuzcltmuliw]XqrkuWubeqfquclfkr{kogmd]kmktcskgok|kmxqkxycjkp}Tpfnxwyqjbzfxlijmfne}wvoemmtsa_l~^dYxwwSpitiutpjpzismhiqsyr|nosixpluqpsvovsoxxoivgilvklplrxvr~unjq{wkuppq_qxbrokjfcpn}xn~q}tjhjloqktdrjszlvplnlnvsxhnvjtzn}z}lmptwpmrxuziwvikezlrsdqprov{wrjspsvf{ogmevsoggxwk~gulnjr}nrx{jssrwwploqqxnlkskbocpmgoooslpuoiqvtpdvxklzwt}^sjtxrmsewp~aoqgkrpqlpoufoq|lwouhsnjoyqqfu~~~hhlspuqoeo{nmzxxgklxilnqdlejqsrnlcqsjklmvsrwoluhhqvulursjfymjshmfqvxlrs{ntkufhimrbrlxplunms|rlum~tnjttmuuklomnqzuqic~spro|jdkf`iemyiromgqghq{xpqufmlq_rdvobfhb~hfei~ftmnqafhsptqlivvrrsenzfxf|rcoyTgjpv~vukiqpwlmeqkfofba{p{rdemvqfkzftn|ypgekzlnQgysnzqshk`urp_uoq~kvlpsluiwyv\~{rninporyvs]~d\wdmnhdsy|t{qkk^jzhxuwnoj}{_gm_bsxkv_junhk]|ynkn|n}}f|kfhtuqspqwgzevinp`lxgdw{rnnbrrpw^Wspt|qjkdnrvUeor}vkpYjjprwz|mxmmqXfgdD^hsnlscnvebzqo}snbrnvcs|y\]fafkvkkpez}cZnoaylobyd{rgn{f[qko~sY{ehchfxjfxou|gkumx{logxo}]nlspvwqxnknrfljrinntmi|shvmxvtuncqquthsndcejqj}m_mqosjrs|xqroggyelslikgtwukvxkmkimp|ofis`|yop{yorulbmxvpnjwYuzhpkgixxnjri}fngci_unogatrqkdi}pslkYlvsg|j^orgsychnfhwkewyaes]m~txpl|me{prqko`olhky^ppspypc_jjngivjpscytjoudjprjd]tgnf^pm~haiqv{[persygjtinijyxpurpn{kxhkxUelftonpvknvoormu~rjj{thsmm`|vl{`oitpfoyihhoobqhqrltigqh`~ynsxnxXorcgUTgqgmiwtmsjruyipigzxwbqrtkvxp{ras`mzkgwvlk}ve|inmvmrx{u}_^w~qtifafrg}ronlpvopsmrixpr_y||{tomhvobs|qlqziynqifn{hijtzdksli|lrnputrn|sug]exwreyxwunkuwsovhwvnzonimscjxtbsq|qquoefnaslutkmtyzzptwxxi}kfmyxlz~qai}}xeln{mkohbyxph}}pznleowbsucf{apjipwroupk_upmt~pxjxzxfd}urobplvwkoqggiujd{uuhvskfvwjdoo~xftkxxxnlhjtxmhwgiaiyrz{uoOjkmrmjfpxgyxwjgfrlvv_vxxz|hfwxxrtzegzqjlusjkeuoqaqjjln~ummezojtpigrt|]kfvg|fepckhsmuxgyjigkvn{nhvkqrxiooxnqivldforkknf[eeyslxlvgmiuubdhhoe}lls|rdmjsj_niqkxzajrwkluwtwuiq`rlb~e_hwiqkqx{wkyrzm{mkrolvznfuxuppodyungfifaq[fqkken{m\s{memp|kj~eetmyyuqoc`qmegvhjorjp~lskto~l|njixnoi^ntxudstine{nkmsgn`tvnh}jpy}tayjnkpqhkw}iov]qjpqcrknseio~|i{r~_fpzcxpbxed{muijnrsfz{m|rqbstkhlogltefmzzxmbrfnygp}q}mnqqo{r{jshseo{jgcj`pqxruz~fqoiqg\k[uwpjh\fbkcdr]il~faqnw]w|qbewccz`vpt[m]hlh_hvrvpjxXbqopmVneyiYly`ftfqXs~plpi|rndbymsqf}iyebolfctemauxkxkh\jlr_cdsghewd{tuggljcl_^[aqfclm]akneSbeqqhdkl\xnfcgwl~_\fcV[qlQytgsc`mljgnhfqq}bon^wt~hamjkjljmlziguxgcpjbf^jjh]nevfTxrb^s\anitltgdtwUg|]oYdc{nuwqpnq`pipfs_po\rwmkqq|rsyzash^k}ho^mnvftjWisgm]Ymkrrdnb_dsqfmxuX}|fjuqbumimun|ropnzvvksirzetmmvmpmolqutiq{hiikm{supuqfosgkoiluklkoouolmklsqmrivpstnumroqjepcof{lokqrussrtk`shknlmnqikekexefkmjuglrhqrhoogpmjjhlh{osfjoyl`mqfjg~oopwhosrirptoptsdfnluspkqrsolrsiuri{mquokbyikointdvmrblouumnkjhqqnlrgooximstrqbhrhltqzjwisooqojrtpklkpqjmmloquugum{nlpvfuuvlqmmtqosxxqqxkrluqtophopiwsubnqnpmorevlrgnnnrkppqrbunwsyttflppmnwtysolrkzohkkn`kfmmpjpgohttvmplnroknkxlyoladrqkizv{utvrlysnnrniqhuhonq^i|kjuts{vonjuultuxeqljkpdaromkpvhgjxwrpbmxgbsvowi{zyootlvjeyshmnpqowqyejnutry{rpfmpiZxpkxmie{pzsobtuxiimdutlgmjyuctxfvtvjgwwvduquiwbxu{mnmpparkovwqv{qnvmgsz{kxtjbsrntoifmwrm{ixqepoqfvetigmgqrpc~ntme_kmpqwtudtxdpfu{ltjmkz|guonwv|okdzrtihhhon_mvipkrrpmzhbg~tmbxmnq~~xm{pitqqet}gdvskmrmqolcgxihreexrp{ssqnZvw|lu}aoepoxnwpqepwxkywtosnqmuantmomevlkthwowoouilg|ooojrzm~ijh\vhhmnwn}soWg\ybq}xf|mlvpufqqtvsqwej{mzyqjusopqmunomjigtsvk~{ihpzprga]tn}tpr|kup|yslhrpycmnj~lgjvpkiskvp|tdmwWYxxwjningt{rilscqynjrbv^rs}tsnppwixyxvuqrzrifyipsmvwwfxghkbkunllvcq|pncunn~tv_koygfmoiwluwiymk}emnx{uyzrjnveijzekqkgt{mwvojnsipvn_gopsithjq{fiuekvkbyowngm`sxo_nhi~knjuzj|vgwjyglokuwsig{o{t{ljhtrxyrvjkf}konoooilriytrorwcV^fVuvqk}xbkwgutaszfvebqax`~gnl{sixhxdu|jlauXyylkznhz}dwYwwsn}hzqbdun\kjihzvRj`izsqjrgqtZjkfo_owdckjtqxibol}btnmwjpltsjbovenqo~qnhkk}likhnvmitmftk{q\ybupujzqmkgZj|fuytalo^orgumzum|gg}}gku{jnlimmvzx]k]f|wnnlwjntjjlf{ul^mtnlzjwmaxgmf~qdeuu}nvtqmrsqwaef|slnog]sxnmbnmhbrhaspjwuljmrmgjfjxgpl`zurwfyypw}firujupgruvsjpnjzlhzlnrwqqnmytoq~x~guw{unmejxlse|q~xvn{|jm|inzwmnvsoz~^tsmp|hozenztqvv[nofgrpjuYuisretur}h^mrznppp`ujk~{dt}mbmgcgkpy]w^ybvsqgjcostiuknZ{pgumgv|whptt{fso\hlftwisiv|rt]dy\mhts}mwr^zjuilg{gnz\jhukr|h|tutsruhujloukfqtl{zsjnnjghZzjlwpeztfkh|nui_viu{bkej]vgqw`~vgyikdedkiuawesShk|hnreqpwj}yNysaozlkykkj~bjwp^hisvc|atzowmpxxuluoWafg{osjhiurwqft_lqwirhywynqzsvlsgowaw`Yzlopu`zgikvlnbxvvi^gnbvbsbulren~{hoaailpvvkcorecxendobup|imiatw^oie`{[dsx`jywqjfqsihdkoihkqqi{nwbaXgwd}eui`hzjiVhtlf^qjyclobtwgtjoojcrjiczdp]qz[b^edb{mucsyjlnurunquu}fk^_]nm`ogokrpo~[zmp~XWpgXo[ilorihkslwYxlob|rhusq`bcbyrnqjnfucKjsldrknwtwmkxkYlsqzu`_adn{r^omyqV]\r[sznrjknaugxrhesr`|iz^voxbnmmczaexdtb`e^ha[lceqnmfyvjpgeTef|xjlna\gtufp|qm`ny{uekguiqcrrbopdqrcrxpsr`\nhpfizgxf_p^plj}blTX[nrbfogagcekioicmsepod^fblqkqv|y{ykgkfsvnoyjiqxp~hh_gvm_tevrmedir_ljjx`ekxpojtsjhou{ujercwzb|lewkmzlrltsnx|qpllderhevuykpzdjppvosrmlroglum|emtslofqpqsceunrryuedjzaphxr^lsytp~~hpvknmyozicmammn{sh_pqmnkkmpkcwlkxedkto^hkxvxywx\rvpvopzonq`tr}i}oYkjrfi`hqzsyuql{qYpvfrrjpenk|bsfyavpyubgpvtpvlhwmuqwmasjhmqwsujucqmy{nn{zbbhswqbondmvqZfqoziknnlo^iq{rlrn_spwjv\pihmqyqnw`kqmrotb_ntxiccp\xn_lqvqrojfzeskrobzuq{ps{r|ygqy}sv}n}q|{qznnzsrprxorlektevlufopjwpdpWyzzqxp{to|qozjvnxru}k[uqovvrlk~q}xkprxsghrhdvfrz{ij}ozg|gui|alkpu|rgle|v}j|t|fvqetxyp{}bxpi~nqpn\hqhuqysvpxvc}sspmvr~tkwq{kiv}qmseywu{klrdqrr{osxxjz~puksqkwouhvwknlwbtzsljcn{)ffvv{z}mex|}^|mzu{w|urvtzsozejpfltfxuj}epwvuldkppldjtooui{ukzsbtouglo{rqequoqppdt~vbtrzxnrtdsjiniSusgfh}gssjzivkmhwebpjolqtkkxnhtjoougkgovk{ujpsnVm}`l_psjemq|krjph^dpen{m|nlhizolz|rlq~mr~qzpgfhm}rmgjPvo|wzppuhztqstcmcx}immjtisdktu{w{ugqdwfizxvln~fdepnzxoxuv|qtit^frrp_cpbjhn{wmkfwsegudWx{sokzs`bq~mwvkqmumy}}ayvycqyvwrttordqscgfmu{dtswogumogtolrxhvozvkdhmksl`fyoq}bhp}mftqkhsmohug{yflhmg}gvihXdbk}uk~gu]rxi{foefnimcgmwnploehdju{mmmuw|hzvgfry`xqs~|}yo\sj\jrpwk`gwrzdlvwgfmckch~mreqnint~tlpfvbdopnhl^nqem`rj~mqmpl^gg_fhzgiYmyn^vinuuilifhcesodjzhglxiekhecpymjq|htncrjixemblongdqbcoUpynrmxf`nmpmbxqndklhcegyeq^e`d{skesh^csm{ukkeiXkoyqxic\joqYebfchn[h^ghrmYdcxtkhgf}lgdofhgqj\clnivXosnmumjnxselkgq`p\dsq^npki]jlqhmoq\[\lbhgmpo_ci|Xgu]kiotmnimjdhj}ggpmYwrlghlfo}luhcjf^xagcf^emo^oknxinb]ontyobonljxlnc^`^hfaj[jjioignmmw|qldpi|r}}rsmirifhsboxpglnpmmsgxqlnzmxfzsortoumhlms|xvps{ymouw}msvwnrgpen{gljmxnmnrgfw}glgg~ypjqirmxt~ypt|o{thj`idq|kurtulofpqhxgolrnfxergaryokwykxyzpirdjrztrskjnugsfcrbtm|vqrydnnxwltjm}`nilntkpnrnjugqndtktx{rwroZhfhykoqjkrrjunzgjjqxbsmopqnpoqfvjlosmthkr}vxom{otxjycclklehkrkvsrsiutoqkqkkxrimgi]{lgimxmzhswyucrir~mwdwjzq`~frth_tivyj}ifqjnyomnqpjwk{ni|licqqmt}wojxq{qsqu`kuhnuptk}msswyvexqjskaowviqkiwdyYgcftyvz[qk}pp~u~hqp^dlmXzuumpkzq_pr_{~}h[c{mocjsgtvrikc`ihhoncfzynlzlcacnpedzsc|wrqfcume|]tsuwx}vvqszsndaewoqgib~vznxuoq{ulttpniv}sqomnzsepzffqynjwjp^zhmrwsz|qxiorlwvy~omqcnxpuw_p]q{bmyzutth~\uvlihxvwuyhpqpnnvzh}js~li}aygurpvxngessools}chhlldtvklgt~ho~rketgkhxppxuY]qywuyqjexndnWvmmykwkntmmuygwuvhrm|ektugxvwxrl~pxkvqrv{t{stql\hmrzY|hwiuu^inuwvyv~~g}qre{tuwUrosrn|oblqcswte{fmnTe[d~h|mbw_zdftwohzpW~ehvvuq{Yelqjpz{rnmu][qe]k\hpr}jjtnotwqwuywtpz|shfelprsfjquyszkoettx`\gdrzhqglZ}ufptkn|hxim}k^t{[f`mloeh]sq~yvsq~|ko~jbz_\~eikiygwinpcifdzyulorlvomvhvundoqyhibtviqnwgmugvmtzlyjhbtlvw}p~tulitseu~~nlnm}nyUnslohxgoneOngrucmi`qrsssjtqtxwm^nobpfpzpzhoYu^jspjqnvpsmypy[xtms^s{nnlt{pfwntqfzi|cu_lukippntau}qnwtr_okv_qexynlydlllofvopsruowjwwz|`n_vkpiegw_kthonduwir}jieljdtjnlzjrlr{vp`qshejki~wuri|fmcnimnmnhpqyuynlorvmvetginvmwhhrxrhbjumjumtl{vmoce_aXpshlnxmykjplsmtuo||xzkpbzzoyjrjvrgatemnujwhnfg^x[qxb`kpeinqpadz|onvjpupgjrsirwvkrtrvbwus~poyphmmtpbjfrwwykvkqpploruykmvit]jqersjrw`oinqhmqholpjloZjaoumgksUmwdnfgkri~f`oenlfwwuhokrtnnlrmqikxhwmlinjt{gjjgisagwjeimklZpx{slon{swmxjspi{}rxw~{v^{zvsjqq|x~~}ufwrnvsfo~yolw}vup_}zk~~{eln~vv]yq}~qk{ktpuht{g~~ehn}kxfyyo~phq||ynmmg|brwx}uqqk|t~tutsgswv}npz|slsvwd{~mqc}xv~{ony`w|uucw~{zwiutvuuz~pxxxvu~hlzl~pZlzwkwlkxz}xomGmx}vj}x|}s~i_{xfq}}i}w|vhttxxkv{w~vy}tsj{wsah{s\p{|xrlsxuo{}v`vhtssoggklpvm}vcfmunnojy|gssasrohkroohY}xlfokmosh{ntlZpuuslltpfkpf[ocd{ykue\ocdlprvejkqls}_dthnxl[kcqjfwlbuvzbfj]hmnownctyulifjbpekqpkfkmtwinqvmokmjxqigxdt`zt~gajpjqrlowscmn}slybifgylmmnikeksgtzhusx{qbmmnxeka\hkmmhivwgtvjffiikckpq{ikovnqnu~cjvZgrspqbqknmh{}ynritiaduns}iqhtwqgkdcgbm{alogamsh|kdksujsbmwm|lhjy_hovtxylnda_qjofumflvihklbuimdojntgnepnshiidupzhfgpkjroquwkvks{`eyjrrxdutojv{tpsxlnjle[usmjkijtwu}mqodkmwsxuwderutlqhpjotoirlpgvajfqkfuy]tlwegthxnszgnUtcyhurmqtphpseo~tolg|lvwtwmjwjp|kyzipgspurvngo{kqosm|jjasvkvpvqktptenpvgkqposjnvr]\{nqnhopmpwztwpuqwomovdllmkhkdhpnmpjj{rmonijrkelhwpVnaoswlulupuo\fwyzv|c}klpvmtg{iliqm`rkcpe{osfvmgu~fuwpetjvfnrokw`edljwrpuoepxusqlt{ptnbwijidike~mjrqpjnhpXhmcgrq{rvrz}kqk~qoiytmvsynr}|}k|voszhyrdlvqgislpmnrxmv_zupmjknitrs^on~^~lwcfjoeomm}zir}zlosgnijlpruzimkglqqr^zrsdzv}iyutq~egmjqrde_yqhxnuulycrxioxjz~fh^wYrpoibwxlhumlquvlu{jmpw`uzys}th|jwo{|jmqyosbjmqelw\xhiiicoaimPiaxxsiq^thvuw{munqysnkdeZlvzymk_jxj`fa|{qngya~itjpkgfm\eg[is|ddossvnqlokrotoycn[occrxbpahjnteme\jtqcfVqgghqg`madmqorvufllvff|kcgptioj}r}niajg^muqccgqsxrysjyteq}{ylikzhgcwPuxsrdlvtpzkxma|lmhrwpoum_r|zvskaxhn}ajjwgqs^shhaqon`qx]hnvxl~nnqghkqjnkskrspkevemgbkhgghoozwmovlkvnvtkmorYok}h`vjtpsUfbwkhpxuormjknufji{}nlp{pmsn~ksdlksns|}zcltronidmte{g|s{dspgszsecrmfxtm_evlmqnxpvyohwqvuzY\nhm]htbsn{ldkmchv~_qrxsbqskivanpxopfhkdes_j~jqhvsijjmdtrxoxkucflqonkdgolieyfpiqqprsfrvlivxneraebWdqrpt`xqpkrvqlmkrfefqtvj~wqwzxnjlthgiogy|trntpxmb{||voirivb|ruw~koy]ojiz{ny~o}|venitoxcs{suqel{nlg|qn~~wixvlnxiog~}yl{s{xpbwuw^|kuvs_gmabfd{wskreswkhygjqx|q{yu^zwyvqn]oubs|niuf]luv{od}luzxd|lk~x|zdxmwvu|{rgPgrbltmw`mtkpaf}s~ip`lielu}wu{vyyXdxqme`eecn_eqcdqoiup{ucjj{[bjovxnuhztdpvknsip}yls`n}krkmmmu`vym{Zjmvf_zwxloutvrzlylrkaodskekty}sohvtnneooxhhvmj}xxehyoz~crpa|}pzvsq}nmw[tdbrmetxgurhslfjgdlfiugavsqlmmiqze|vqhkuotzlkiojjluizqxmurq}pk`t|sdlitvrqprmjuhzulujmhppnwrxxpk}trjvpwjktvpckirqilmlkpkwpbghfzlmzxlbzwkqjsvmabkmirvumlnn`rnzhljmjtymzsh|z]gllmjvnqtilurrlsywikdkpbujjhqogbgwjmmlsvruipfzfvmjmqgvg~tploiu|nipmuojondl{ttfmjeqsrphtird}lgmtWt}d|q`tpn}lrlwx{gqmesgklyipo}mukgh{t}rzgrhykgijt{lrnogqozxogu|ojzxtyitj}mrbwykvsjqetstpmiimueylthoumlkliorseojicms{oiqpqmkfpsqfrmno\mt]kqrkrgyuqmnvoy_wnvisqvqr|u~qifvqh`gzh^h`foworcssrlphf{fssyocskmprmpjqugxoqlfujseihtwbgzphnxzsiuwyuooknhm~uhrwkowqqoomapfjgk^ndc^qmtwtllbzffqoxvme|ktr\mzlpstqp|qterkrsz|vym|kukmoimjy}mmlusmgjhmxmvviguusdsundamf}rsssqveupprk{nwigis]qopiqfsnfjjegnf`nhmgjnu{r^vwnpofuosjnipmhnseixp{xn}uus}phxwvhqqdlqk_qocjndjmduhl{kftl~p}mjmvsdh|nslsmsggskliysbnixhgmpojqv{yj{ekj_fhhVramzhzdewcr_zonrl\opjnzjqtoopvpeuykxjox_^dqvrsklreowtkdcpiuusk`|gbUfetntoqtymmjvfhkxbanz{zqqesqnlgxhoymhqtokrrierdsvglgg|hpwolwz{silckomylxklupkh}diadyrpszgqsr|hqotgsljkptpphdrorxrnhrfvop|oklsl~gmu]yqgxlqjystolvkmpqyglixufqoojixwpozgwsujmugrotqrnnr~catfy|pxnummlu~dvtyprzcvrlvlfryfjdshuy~qboz^hllow^{goiqo`tel\qkzzhbsbrhxsrynfxcoiogvfthqussw|scvlkxbnhz\ofdrltlwimymjsak\pyemgZstitbkjgzsqztyuvssuqxkkfqwrhwhrx|priqqocj~ftmcrlisilglkngq^tj~nwkcqpytsj~z]wkejwv{|inlqe~jjmovtnsifntbssgf~xwlhgflpqpv|}sbeptlu}pcegxpbqgjqlrmxv{kufcy{tlxc}oiy|kj{xckpwuknqYpnsjjikwhvlpfove{fvulgiqlurj|^{^cnvjqzhgwbqn}ixjow_wqyynonqqumkdqymoopdxxwomqd]gkvmimq~vriolkhkqus~kysypjpyzqpsggwzpaqwt|mlf|dxghotbivpyciqxkwlq~jlqeqwgrnwfndbwypiqqrj_zhtiwqmkmjodsiovxw}puvmggnsrcojaxypzg{ni^wnfudnkwlrsu{lstjnfqpynbqt\maklqvpfxywsmw{e}mcxlmuhogkpjXdgcqotlww~puwwrmqcgbpnfntse~iptpsnbyp|hocpfnr_c|wloxtjwubwoblkZupzzqeq_pmprhpilryqnotsknsw}klomjqn^rn{kmpxrpfvaq[mybsuhunxurwtdskhsqjsoxy}illyoysajqmgunruimhjodqhq}jzipmvkjrrpurdkorktkrkwbeimnnlpjijcpzcj_js|ssnbwwwkmzomdbzswwlwtuyunkttfyhzrixxil|pkuq_hatq~iiiq}uxroongwtjqkqurghjto`jpidmltowtgpmyowvrc{wzupgtuhzopmrjvjtpouunofaclk{hwmhfkfm]unounfrxnsfmomipplztpu|ikyujvtvckovxucvmwjttqhkzklmnvpvypokmsfupmuqlrrlelpverjpurtiokppwovp\pqldddkdmyixk{lrjooocqjsoyqmnzwmrhuqmphlfiy`o|ttpoepqwllyluhlourieiopqqkqufl||slokmwplsodnqeankkollewdimlqnkvrmljlkwfqidrxtngsr}mirrvWtvpgttnkciuzszqssnznro{nnsfutdgi`jmvkkyryoupgenicqxoqantvktvujigupbkpklmrjrf}njtbml`ptjhopjkmxsprf{t~j}j`~x`mlhnwppmw~pahnkmv}puw[kniplxmkqtiqmvyoszu{sgnnvogzi{uncsunubsomZn}ko~pngnnqedyqotsqxoj_~kmkknq{njyrz~uf|pjlj_oz|clmslfkmliqjps`qnndwtnurqvsxh{pwvdjijc{cmvnikacqyenaoilv~xflcz{cqpyxncnuku|otrmdwoxvllpuhwmj`hmunk}ne|iip`ipjbvpqihxsqmrxbtv\icivyijuryolizf{vgqhrobhnrrfrvofslf~_purotlvsoqn\unsieiwwmnuupqbrdt}gh_pj|t}rc\dirdkfott]lnd|wb\hltsrpxpftkqogispvmse`T]vvry`xge`nr[{apbf_sdbqiqmppq[m^uniphlrvy}ranSq^[lej|pkgVmv}iqz`|oq_pdo\ubYjufwpbxim}flgfuh_YwYkrwcmh}pqtmwmoekywwnqxi_osjsiejqr]u]opkmtrSvvpuo{f{{Wkmtp^oorhau]^kqztenVyjnonem}y[inpptekitaqvuhopt~hpruubhry[uqgnytMtsminnk^exwjdnlirfy\Zg[u|ovh^xae{o^xni{~lrxqhs}eVvsiysdj{du{xslsgikof}pitxpxuojmtwkeeymekgprmpysgfqqlfo^viuwivcnvsennTeoilo|xviu~e{qumqgzjudvrlotq|knmkf]jxptromqpsj~s[qsgqquvuv\mphmjqmgiqntfuslngedzlji{muikxpajizqumrXleltcvuqzitwo~rntvikffum]\fjqpf_dhk|wyxvrick`iom}fjqolflvoee}goujquhklrihqxnkjgwyew[yw[|vhsfc`i~keoqemw{fn{zgq[gwoseksnvrvfqmcytk}nky|[herwvrspdpkpsokgds_jbt`|w}gmpycrhmp~sfsmkluf~vVavjppdml]s}s|knnsv{gllyanoxuroctft_vZlkupqg|run}q{rp~ooqg]rsolrip`kxnapnnur|p|u}uextWutuhhlhnun{s_iunplqmhcnkfpfhX~qnw_vi^ovnjpijUiggiYojd\eisYhl{lmjfhnplkisctehipqmoXejdvq{jhhwbqqjinhikb_medkp`zmpnr_kv}ksmdtd`brk_[malkw{woZ\bkUbefkeaccphYuc{ZmuVfx|xjinjhj\v`rUkngdmsjrjljo_{obimebfabgfozhfebmnkrtkspnvpb\aj^gdkvjjnd`fvgslXmwodraotdemrrinfXronheZ\hboXpxeh\imchsigarkmhjk|aezet\hhjqjcfcv_tfmaoctmq`cp\{hhgedigifbcpnozq_dZpzfddpapspbYb`vp_ttjlk`guQf`Yh|fiiph~qbkVvtlfgkZWtjwgfhdyqjdod_wwqmv{y_unih|pexh_cfc`grdgmmstoplicumfonmfqxlud|`i{|ut\s~pwesnm{}{y{umucmr~l|s`fo_vs{uqblej{gepg}myrnj}]]kmsnvjnxrdsegik}ryspxmod~viqfom]ag^ngllglehn{a{im}sthgv`\qfxmbmrfhmchhppluy{q`dbqmtipekmlZykopm_xstixelgyoymgn`s~renntmkm`uS^nk~moqmnssukgxorecwovy_si^tzprnz^lpnzextwh|qoi{myl}VZumseWlxuw~jtiatfoyhmk}qvhdxwbqkalawhbetpynzrype{bu\gugumblyctrspmmh}sk\clo`nuwnqlmw[qdqzlsbtzreoxzhertbbso}]hfhddmqkgfsZpjxtgk_a}{akhiruhlxrWehohqq_kbnviyshqm{oxxlgvpq{koktbk~ernpnkhor]nxkuemjpffofgkwivcmwfzpqjvifigfyhxhvjjseu`wXofuvxqtV|Torqiypau|cvZ~uw]hbisa\vqmmqiu~ezjokmmvktiiepdydbntWheg~qtoes{lijkdmiqimxogkquqmkjnipiuvq{iarkhq{thlmfzr}gwcg~zttdgdttqsqmebtmgj_|o~iqarxhlj]rnjn_pfeeiyexpffwmqynm]ntyrq`ng`owv[r^`ngglWgt~_nixdrsa{dcVxhaylfpTm`dmcluussgynvvyj{hmefhl~|uhj~fprqylh}hu`vnpjrugccbnot\th]fygyehx}kh}l|\renreo_ahwqnjMzbwqgtnZxftsaajiesdfo}timwvnra|}ulgqtmj{kw}xqjo]vkit`\r{nZihdYsotbggv^hqijt``u~wdrcp{w^fktmrwqvgkre}y~rvttt^ssi|ipsnkrsskmrmoxo{jukhhwbfn\jhslosstq\mvtxqtow}tmhcym}kfxvongy_tomkUp`yv}mh}]{lqtok`ysmjfqevbYfmkv^paueuonTgiilisegjvugm~g^xsnpndZzovYjxw}km{ftyuss{msox~fzukgqcvpjcsrvkkturnkxczl|h|ouonmdrtxtplsldku}|ymotqwprhrhuuxlrlkttxyoax|ro}lfgzpudrp|juopvdwn~ponlwkpnnlwzcxmslmtp~ggtvocerxp}kvlwoikt{jlktwquxkwfqewnqhtc~kstokmyiuumlrrzgzopr}wyronnvmsqusflgworuqylo{ujnl~utksltukkvrmvrtxsululscxjxsroq|rrw{yurlrlv|he{owyr{zqkj{ylmnevrwruovxovjrsqnipxvvgyytdriemkukyuowuwrp{hxpeujiurvvxpkiti~srciuplrtnkznpqd~focmzigi}gdwwppllvpynqiadiglxgfkvvshujknykooxoplhmz{k`invgjjtit{yfii]ndgjznjnviYurhu\nmjcffdepqojpmtszmlrlZzicoh``bnqvlusglfh~cdud}x{ffugmn^wkhkjrj|lpnrqnlwrxirtw`jihtWfluooigutklnbt~weioiqsxqjinslzlgsrsu_|fgwtnz`voh_q[jumujciatk|rshoqkftkfqmzkqgrf^urjw~g^qjrdmlmtflfnbql{qltb`~xxmg{htarhqw^}ri]piohvtqqurti_iishtokiqd}gjmsipjuizagi{vmbkxzp`qlekkqr~kzsxkmkmnimpjwe|ysvdup}iinkblrlk}m|p}gpztp^xhhtkmlqcudzduotttrpaebvcdnho{nscmlsiyo^ukagovpnse_pvdxmr_xsvwdhejkx`a^vtreicuvmqsgzmrhnoq`jmdnpurdkxmeliincxuuwkinycjyw_dbbd_]nqmvkrvkYtdsjbn^npp\fhjpvyhko{tezdkka_mqgphrrguluqlqrirfoomfwhwid{_kjfmklmwwkbggdgcsmqsxgloljqwmqeknfen{pmlfls]qvmrkcm_otyhm~zhyhie{ncrcjqrwo^df|rpcmedehtxttopixpjYsmenumsp~mhojwmjqkljgg`riv`memeozkduvYh|ghxekrtqenltxpikXqnrlmm}pqkwlnjonrtofhtiukrfrlplloqtiztbgqml~ytmoqlwazrnlyurqpsniujqktjdthhohzrvoqrrsi}kucrpxrsnopqknqozecswnindnsukpssljopjngtlnmtqlh{pppoqngwgmjsrppgipwtmqrwwkmmorunmnorxloxqno{yqyrirnpqnlwbnnltvervopttvqgouihilutvgukw~e^gkrmrtqbotnumomnguylinonlfjnhfnmktrqzrmqpqwquriomtpronhkwvsmhrjxqjtiupsdhiulmnrlj{lfpndnjiwuviiig|lk}trlnkdvttlzhmjmsqjhqsdysitmbrxigbmnmqqfrtwwopisomhhkmt|hxrwboinj|fpj|kwsjps|tegryrkypsq~ostvtuqlk|vipuyyrng{zp|n~guqiwntznxrwizso{p~lg{yzu{zohxng}h}u}kikxtuqv~zsqkyynntuht{wgxxp}wkzntwrnxi{~zoyynhyqxurxuqvpqmp~jwhsvnzm~wv~x}|uim}zwztrvoormyws}gwiwlqw{hn|rzmxql{qyxwo{~vmvezfk|w}xwwczv|vuu|uzktu|mzcq{qhoqbx8p|q}|oizsuvx}ridiwpzvp}soqxi}u}wtpp{xktrx~xntxm}t|ozttxyp}o|tvyb|um|rtbqsstt{nxyu{nbv{}]mjjzvluzkutc^hlulxzxxehvqrywcvpcovxmnn_twsnzizhmoxosjfwm~nnpilsgknnmnfg]psikjvmoqvkquwtmqwojkynj}xifiqup_wovnsqftn{u}gs`kpyckw~vfshvjvur|gyrcnp`qwhghskt~orkhrrmqujmq\isvxqjholtchvopgjwui|xhxq}zor~yvsvqgqtqqpmieapnrbsulxlskjtjsiishkuqbspygwi\`j~x}qxgsvutm`kn~ngmjck{op|zgsh{vkitqpaonmysu\mib}ws`fobdhjjsrhs|ddrjpgt|}gtwsk^trhW|enzgutkucoyeuzmlruv]l|ptsagspZfdzcrvlippyjrxqmmr}rtnsomqqoqwnwtknnlkmtzflmtmov|sptjiuh|zhnxlzimo{swk{rqxdtgooftf{curjef`prtgdeyrwhnhpegqmuvrhol~sfywjskyulp`bvubmrmljy{lipwtkkzwneumlt]j^fgsjmqsisnnsjlf|nvzympqtospfdrlqlknnrtqxqrxwdmmydvdt{siuotumio|ekzmkslto__rwmkremnmusctaypssxiigrsrfmixxWodtmrmkbpegy}prqrckiLuqjqzkull{fmnnzpecj~rxmvyhqlswxopmnnkwtyryjshzgcoxmwopkwyn|oolqqqlnehkdpiuuvwu]nam}lfpfxqs{mvdvlfgPurjrtpmroyq~zpjqf{rp{xmystsxiwsqtxcjyfhm|hgzgmkanynkpvmmso~gmXfwhqijy{|[qp`fmrrwvruclg_mwwiorvltiwymmxpmwjhz|eqlmnrlgmjxrr}{seeanqdrrgjq{jmhzzyruzgxlwllwmysedmkmixxops|yvotruo}bxcmwybnhts_\psmyg{swnhpsm~nt|z~Yzrlkollo{si`jr{kfhlnxyqfodmlp{Flsvqtjrjk]kkkinzer{u~djo|s{onc|osi|wkybuylbscm|ki}nphirx`vqvtkour~nitgksh{pZlrlqd~jyhcujo_oqbg|knstbb``Zcompikjsuaidyglpkoyvmw~hh|oii|ddsjrn]kro_tfojot_uru|\dwz{qiztw{\misdpjmxfhctoy`mm^klxcdritshisseidoklYkogkfqgwmnygpss|Qiu}~fypl|qhrgrjqlftohkm{kt]g{zc}qsr{kvntrubkxfeeifejarZ\ypmyjXvnkuz}q{javkaeryyhgsgm|btodjggxtojmzdxnmlwtmym]c|rjkojjrrl~lcvqrvj{hdd}}dtgtoq]~mtmlx~dqu[k}ogfqrvvjgtj{dpkojngtwles~hjbhkzkjtumdom|rcvwvnosug|`lhxitsdlctxrmrmt`xfwusxkhuUkoyckansinvous~o}um^w|m]s|uoho~mpynrppaa}qnzrskekxpnxdsvkspud{ry{hq~oj`sflos`jot~{nnwyykrl~qx`|vq~g~bdxn]vuoojtwzxtwcvtgpyku[fwj`llpkep}u`xzduurorslxjnrwnnocrbo`rnrzqnfgZrwqq}~dhzem|uk|ivoq|fmmz{n|gmqtnuytwwhsxlyukjr`eo}xkjmm{qinmk]pgVv{^rnkfmnjftpp{nxqjqyxlfuiqygjjhusrvrbfsq_{frlrhpg{nxksosnjvtv}pwzzvcxxroqlruxqstkw{}Vkpvghurfzaczvyq`tnegwh|yxlwtsrpzvy}qmqq`pqswrvwpyd|cwklbiu[r{zfvlsmhv~pmkoppnkkmppk`egnrbxosrv^ttsx{ennqpkeslozgo`lsun{it{ktyprsivoxllxsil~zkuxyvwomnvqounpsfdpjigq]qsrfiqpywng{rols}{ssrzsxts|kmvowd`fywsqmsnvpxoktr}vosio`kwudwo~xotmt~huov}xkqqryheslxxomg~ixfhvwiwjj|ll{ylvstrovrttv`sahq{z|uxou~ipbmoiyw|zfwq{jp{mepc|rk~wcnwjfllfoapnjmcwo|sscmetyhic^sclsg`hkfdcrkimhhfpfne^gpkflskokjyhogkudoqk_hojotug^qouehzomonodetipnkkmrmkqommiuvgfronfcocxwcmmjpbrvtfljnuggtmikcuhho}sltukshlfpk\lrght`eg]ngnqoqocr^^mmajomorns_fvuwyglrdntwo_ceflvlihlmnekd}irllppijlgowmgiunnemqkwmcog`|pfjileb`shacknp`eimmmsrqnozosYvdtxprqjijojk_jimomjjmqoefkd^ml|~dyfegmhs|kedrlskhdgtflndnm}`hipsloz\]sohfpkkflemmhtifi}rkklmjjklnhcjzlvltwrnubcol^d`hmu_yniljupoiwsl}mwy}hlyhstpoxwmzgrccmoof|pYodgsjt}kxlcjn`pmt{uacnrzmprmzlomoegisv{nqwuposiqrjvlszmejtZr}kupk|worjhtfkshqujhujhlzp`jnifejpjpjmhicoyptjoyr|klftjiuzjdrYmqlxodrripnk|ugntlmivruvbvjixuqtnywlss{emahlospmnjzvqkitsuqpfw_ljr}~hlamgaemvnpzxqydovhdkntqlhr`hn|jfojooc[^kbzhntvpnojvfZqdmspfl}ndkpmmie_uskfu~tntieejulk{nkseecoqlrpxvpoudqmwqiiyttycpqqujzmwqxqaionlvvcvjndlyvnvmhjnnpitacthmp]ha_esiqkzhyqh}oucnnnfqlsrjqwe\jwlmtdfdroftgbdlrrn|{wqbkbsrfrguqjxfqnp}ivje]rlsbiivuwehomze{herzzywmdqj}gaw]c`tttuzmdmsj`junuilo|henefhyinSzziqultdeocnkenoxkmpqfukoftkhglanlWgrxwrk~ivzbrxgfe|h}jfypfllafnkiZzl`X`avqgj_qpqulckyun[yfim|nrf{mgstrzhmycf~{nokoohvtbjgdolwkhlmyplhkdejuikvgzvwjk`]nY^wth_yds|zfxhffooyjjjviisqxyqtmknferhwegslupissgu[kqmprgua^btWk{guhoYzicj}diuqpmwopvjyywi_iqvooubifziovnpkouxz{befundpnjirzcvj{mz_raf{hpjxqvopxk|{tyqcubugfkqqlivqpsuflqnkxwxtZmq]rqmozglqh~}omgqvltjnebbknnsbwpl}vsyqmnosntfxnvkrelpuyz_k^ftwmko`aq}now{uruekcXawrejtn]slyyusjksp{}mmrmuok|qrelw}avjpwnlhzppnljknbty{}`yhd_j\}dtlvubtmvwxucuzhnqg~svvqynf{ljzzjnqjmhluirsitdoolqs\lsxwmps~rpuxeumxoiru|mpY\n}ylwspgilzts_}nspqhenlpywjcji}prms|ymslsohjmlgsphnmntnwtmsfnnw{_gulwr]qbujopjpjiqplpk~zupktuikih]`dckolkm^sntontjjt^jxbgotho`vzfivh|rse}_kqlmrigup~{itfemtxml`tftul~mzhfrjmphfrygekobxflm{xngyyuxqwz\s~ioqvecxsejljwneehgmv`lxjqi{tyhvpinv]|pfpbiivnffbrymhqlhtlkgsnx`boxrnwanlkrpgwernjnjofnlrls\h_tvyoyhbnpmzsjolyisyi~nowuz|idr|opnevomsdeenosqoin{t\xi_rnmwrj``wgntu^ippmohqZntrnfls`vejcbproy[smshmxyysvjhnpn`ooslk|hulcq_prwbsnomgjYiputrgmvxlXmulvxrrkop}z[ctdf~n|bmjvpoxs~yswitnxrqtepxqup_fs|kukrvo{vwqagxhdpgkybnioemqoix~}l^lespo`fclfi^i|hZ}kpkzpjgektninjmtsx^rcd`sqw~{rmodfbus|ddlumh|iqgjfw~{vpyqgr[wzkrjrxzveYzdmlkm{mjogiuphoxxr{skgkthtcm{lxeg|XlyZiom_egcelntnse~i{xqoejwjstozsx`syi^jix^fiqijtqdku}mqotjrsgpifpj~j_uiprjixmkogmjjg]`ekhfuznmmrnn|xdmcwaktsrdk{navyvutqm{oqniqza[ipsfqYwfvsjdsmorsiy}rzvqvpqluruQ_zjvkiotwpvzagisjsnvpxgrjhmqwsmjqmrxvvauztpedshidegnstfkv|iutwejkdbzrduqwmyhlbtbytihkwkm{kx~q~iskow`grqiRYiuZjkhxonsv|dygmefuh^kx{|xujyyvkbmwjzr}fynp{jkxvrftoeppfqbivhetqhnxumszuazyzgfktnfxuvxohtrrqxirog~k_pisnqmlimnhleZmiquuWlvquxknnqkzwssqsdj}pwkyzyv`eyy\fwytxjmckqmt_scymsted`]vlktvwqacwleevo}wsel|amnmmi~itmlq^ltjj~suippqvp{fgpq~a{pkuqpnygophlpoqumgtmmxziqvurnmskwayhtmxjikprjkbonpp|ytpvxrb{fmpmiowaroanwojlzopslwltuih^kvhewtl`e~qr~mulnvzmzisg^pzlu]rigm|Zcionofvpmlnbvzkmjpfyndtqhzpp_k~viwr`qynvlpl~xjxogrmpfrmitn`nlpirispmfmsrtwclg_eoe]zpnylzhkomruipikmkqpiomYjnmoqmlzjiywmvtayqk|~jususgzlilfunrkpkozmzqx||bv_vslyqnllunvkyzwvrcnwnpj{dpqos`mqlrsmjhxlopxljndzijiqjlcrholdi]ploolj[tmbemljinxflropgnaguktpm_hsklmkqjuiqjqmbgzuxifxot_gqtnmqnnpbbgqigmkcilndimnuf{miomnn`eboqwfln{iqko_fvqqwhu|ptunnfnumem`jomt^hcjpmokgksnhfsmfjfphaqsqxhmvn_{oblmbfdnjvdcfjdseopdgikpngdtlfjqdpxjflyoplmoprqvkefjkjdcknf|fytgrjlroqivumouilokumkwsbdllekl^mlhq`sezvpqp`fjtxnrrl[rbppnp\xcokgefsuhiih`xedoknhqmjicrnrkmifgdscmomkwvqjmjemgjjjt]_brziqrtki]htwamcm]~gugtvkuirfpjqlgnwttgvwkjiglkp}bfXimjlsirrjn[ul{^ylvugqokqnnwonssjgzrt\repk{jgntksfem_wmouopncp{\urx{ojjqqt_a{noxowjtgx|kfnolsnrdsvepsngkvqmrvooybvisqo`ulkzsif]stle{qnwjurmqionoyqjenrxopossml|kk{nuifsn}skrjwjgrhztwypjevqhpr}fhmsji`tktiqi`dhgfgj\pmmsm~iwkz}zqlkpxmpkduquzfqpuxpnhhr{rltmmnsphmpanohxppsstojqvoruuloklzjfjoyrootghqsx{jngcullinobk`jsorsfxkypljjudsqxmkralfkakthnkqvgsc{qmi{w~ehmhj~tfxpcjhuqisik_niugzkjimm`whpkehkmpq_rnc]o}_nsiggzsfpz~tuymb{crb~pibqjh~}xh~tlkr}ljkcfpuqe{rqenagv}krukm|afzibau\tllhgupjbs^hpgreg{g]hstg}tng{urrss^arxvil\|ikzbntfoyx]xqljnxodwxpsiqi^vimz^fi|dmxgblvqq`^iu|hxrprYffrmwvqiplnlnbybmt_l|nc{rpr|~cqjnyihm\awwa{r]wuvmw~qyvbmm]sto_erioixjvv\goqpe{wgenidbujshemiyvfggrnwhmjtkcduvendgc~n}rciit`Wwsha|u[~nthu`jmjwvjfgrwxwnjo|zp}vkft~olqc|jtymm}al{f`jykjYuz[ooumj]zurkvtqsjxkyqqggnxiixmlpiw_rtx|ixvtz{eipfsqthbtugjnpscpxtitqkpvlwgtoi}dpw^uossky{mmce_gvyihmga|iiopqhkenzldal_}utrty\lkfi|eymu|apvjjfnmmph`owjkxlcYubh_yuqhr`lq{jvrqjv}lkqtg~rgp~Zgg~sv`piwnvmbpv_fewpjvczqdnokcm_oqyclcx|cdunpjn`uyhpkzltuulusmtystrumgzkijox{pkztfcgthtpmfy{eqenykzham~sddgofqqwzwpYesvpxqxlqrkvwdgjuwsruotmxkmvaqqxskrwrpmfmtjgxhrtpgtomytnsbevrrohgslzeybj{fhvpbdZr{nafjjpiionex^kz|qie~{ynoytgkylijnvj{nslpsmpiookj_mgghlycj_rnbrqtulenj}qoeumhlntmyclomjk`kgjtqfpfbnrqyeqfwnrhjcrfnpit|lkjxj{qntiomqlunk_mxtpnm~kihjnypojvgdxrokwmtztoqivunsfpxhhoyulwkk{dlwdnsy~gtpxsgnglhfhnysq|m]hbnuismtkonevnhqrlqyhzplps^sescgromfhootmdqtmyktrjmmfkloixsergrti_vrnzkqfepoentwztntmtpsmpnsstmvrlqtpe{ewzydxnr|_{g}sa\so|rsahqo}ziefmvkqud}lptu_nqqlk_m^dmhpgumzsjtsrm_br}zfkpu|jgY|nwmrcxrujctg{wkd|o|\urtTjmmtsuYitubj^}jati[wwfmxbdjbu`znowqqn~ozaal]vrebhlZj^nlnpzggs^rf`Wekpvgpoubjpqkogisnmt~\vh^qjlizh}hay{ph_h_ijlTtlxmo^ohn_fgwailux_nv^eq`~t_jz}qjfdm_q}nokYp_Yzsmwszxsqxehz^wojpg^s_}ryWamtyugf}lqhv]vpsjqwklz}[[`]pornopgXzswd\wmqokkufjojwjeZtmhtad]esqrsg_n|yhyqyzfefj]wfr~o^cse}dq{vcjv~alflmngvuimhip^qgeytvxgfuoapngsiqkhgw}qird[enob|nrX_n}wajcmqlzvbrutwpluoj{qyyhushrfgehhjgvostudo]zkgjj__sn`wj|olq~fiuo{|p~iv^ilkiiuqofk_izquqimltjlumvvf^ygnsrguutudjwvn^nxmoit|lvbzrkoosfdzn|iwshbjn_}f}g{r|os\gfjmwf``yrZym~vevymuvdtl~uuk}op^umNhlif}qpvhjrutjiqjiirvcbndcyq`gvxovgotiqsclvjgmquqqi{jfhgdhsy]nbleghkoVrsiiqtkxyptzzpbohgttrasfsviiohopqptqy}lmilkudvycv}bppuxx\`fxgonmurqislplkurhh^{Vweq}xsmmt|lhmr^b~nlqiijlk~eqgpwkjzwijrvnphy|noxwbtkjsmrYwkhqtslgcjlixt{lkeffqsqinniepeo{rltaavpahnvdjn{dnusva]|mmmqzicwtcwcosmnzl|ozlrwvvxdqloclpmqm{tskgs]wytmkk`nop]oiwemwxlogjxyhwyfjkoeuvc|kyivzemozlcvprnnoqkiiisjzXalljqgdjdhnn_ocqhxxiqxhnjoulhlknoimopvimugtw|kttnntmpt{[nsgnenumtv]mpxlygyimdjxgyx~xscguu}tpkd``qqsgqwaqx`vf`myoahvzjzvjpikfthhraYfpskq{nqpqryqqtqXjkkjko\_nozvagdorrgnhjzljm|~ajfbmpfqnbpgzwopnzqhnqzwdjsrz_pjhtwcwj_po|xew~sbxpolfeq{k{kjsfdoxkgcgkikon\_etaRjoamemkktuxz|_fu|lttpalrvd`nr~k}qqxfZmhptiolxnrqnptmn^lo}`twj~tdlond`twtmst{lpy`{kutgrrftnmp`h|rzhpsmpvlpishqj}|]olg_[chv`aihgvmvevnqfxii[njdcuh{woeqyt_oxmiuswrowmrtwmuhvbwqtfbbbiorg}cqhknovm~onminjrvjiiqkuktklmnnkpsjmynafnnmz|ujnsm}eyimmvn{tps{loigrmpfetkjlmywxjolnrh|nnaqrsowomoqmomjwgetrouofrovkqvsiqkrkeguoks{sghyulortkjninnzmqkklqql}itnppijnnnulirts{nlvnnovtlxkdkurqsmuenirwpgpymopxqtkrtnmoppqrixiz{eghnukrrjdnqosglmtjxzsrurhmgmiffehjtttmk{oopxonmofoiwrrpgglqsupivg}gjskoo{dhjipiolqrumiqm`gpesrsolqbzls}qqmrohtrusxjjhgovdjsolvlkpmdnuka_mjpjkgslwzorhpsrknmjs}guWbd]zlgrah~ns[qZkbalq^lrflwmkknkgxwUxUyreyTosvbrflorja^|se^vmtp`Wkrydhv}i\etfkki~tytkhbbznzj{usfphqkl`vk`k`pjsw{pwsmj{ig}_qzfrnenmaqq_ukr_gkpmgghp}]hyi^gQ|dfw|qxxgjhoisvllkey}mwggg~|ja`zVmytlxgyppvygl{^ju`g{jeeqomkxnjcyqiyxqmr|zkik_tkpuynkkd~y{vs|Vc`lwrzdultkgk_qvZ{Qklflhw}^ohozmum{ymkdpRgoq{njtX|^SmqZat_i}slrds~`yumncwyfogpliln}vsbjueel~k_eqZhqnerh|pvchrtk{wtulzwfgmplwsextnndqtraqgisdjfdnotqiqq|jjhoargp^r{vqpzn`risujjplumpfputcrfqjurkhtuujonekg^wuoqqoroukzaqsgukthj~kqkumfltguhfnrqjetp`uucj}hglr|ynwrkunvkxphwnswgglq`atmrsmvrvelrs{hknknmpxtotvpelukutkkqhcmoaffwssoppjywosj{lnoomejrbu~mqwkzwkvrmquh`ijjmkswtxlnwlevjnykwtuoaeipgrwoutttkqjst^rsfdgnsruxylhyv^nu]oow|lcmznvmniceggttiwshwdtjhtmrpvqohthgwowlujpmftrounqdqvowonpdz]gz}mvsojp]mtev{ifie|eyxijZnzpwuswtpnantlprvdbsdi^vjyojrntvszi{vwshnsmhputlckmemrxvti]~it]lkltunyorzmkorc_c{onv|lkwfrXwpeskmtguouxg_uhwixzqcuaronqrfutzurzcps_cimnup`oqver]}x}ipmvuqcnjsewoZ^wikyayswiXpnloljqejq|joiwdnetrertq{lwjvbmaypgktz_dm{mv{vsr_opuikptqefq}vynh|lkv}uokfdvuoxvpmsfrxklmc}dmsj{ihqgfphdtigrfq~zn}rls`yh`irxxdowmnyqmajnt~rls{b]o}qk{U}mhg|e}dkwqjqo_yv{ztsyumgfoenrfivtkupiucwrxl`joeljp~hrfnjl{zesombukay_qllpqgqspygdplvrsycpczwo||kbmljwnujmmiopbvngjqioyavokhjqumn^kqtyqemjot{pzmgso|vuwywqsjenmtxtgmsvjwlqldvfvsxf}yillkmoqo~nlqxuwsiomijzrdfkhgtjjmvruougmqq{Tdjtv`fqznqnhjwoqlsotqlXzouqvsvhkibhqxorc~|qkltwqg{jtnqkhqkevo}ullrzklmizXmjbXok\sezbvmpbxcrorbv{mu{shfxuyjjpkypgfmfp|mw_osyfqxbwidpli~jo{iyqqtts{qkevcpgru\ehyyla~gntnlcvoxig\bfsewxjpf{pfhtuuimfl}{{tw|oxvlngllsvqkecmwmvthmlosnhfmydnsj{v|~dgtmm^wtup\tndnazjxs}kjzgn~{nugovpmdkjgumolqisjwhisfok^yihgni~eqoplhw|}ozrdpygtjwnoso^ilqqq{lc}jvdpfouykdlg}tpu^sfsjekyrrgu[tlnpzoormpmkiwi}fem]ryjk{pjprweiiuqypfwx~Ulfnck}{astiejlw~smkfftyplvhqjwkxgrlrwlykutovmp{~\vnjaVchyci~jpc}zfxdhv~lpejqmox{nuertqbshmitnyl{nipllgtqpmiqarciybtqytpdbvwinpjfmk^uegnvtujskrluoagabgo{roxjgz~ioprbnelsizxinkmofmwhuhzrldj}nkouwiykh~^lrkvrwepgq^^jo}jtyzxvlmpxd|nlknoxa`fgdnleu|ocptmy}ojulm{jexwjgj{gs_shurrphuvxmqyuojidjosospfokjesjmfriocpj`upwpv{qprcprlgfcsnrceprxpq|jvi}nmdtsspsmyhmhhiqbztubhovpq{~jormennhoygmeqtk|hkljzmvhfmv|iqmndksr\v}jrgfk^mwelps|tusroipwlp~nrYqqnpvuusrqtvivppsyps}uxh{hturpuzj{fh|bjoayophmynkjlplonkmrujnkroiptrwnhzpbfnuetouuxzoorqksqfngkwyrnnvrklsrholpvvxpojsqolukqloqqsqkngjpvt{krtrmrqwnokuutjvklllwpkvtlvtnsfptuzjiqsqpmlorupkvu|jrskiwnumhjhmn}lltllfvputslmpqlpskfomlrnwrsjrkfxlkolywyqxujkkuhjnounpkpqowxjjtnqvnpmbu~pkknmjuyolsonnffp{onlkpsjlskesyokih{uuimixkeitvqnxlvjel}uZwenssizrjrnvwwooklhhqopqpojqnuutlsgzumiroppvste~mtmssjhsprqtprkgzwrml~nnspwsnwlfhuinqwsvojvmmtngt{ezmigix|mklqpwpiwqstykzuurvnkvgmozjkohostzisiw{yln|npncsvXvtlmnfqwzprry{ngjosnltfqospnsminlmtuyjlzfq{r|mppwvnlqwrvkpvgfdwnptinqqnzzuumpxxxjwjinewvllhrziwettkmt~oyyqjmzq|ptlplkxkknwkczhvmirkpymivmckxwofvxlgz{v|ivlv{nosbws}gmtoktjohupsjqs{quj|`nlbq{rmkx|xlfnrsvtjcqzpm|r|kimykkjlhrjmjuprngrpimjg{wqorotplo|vrsssln{pqwlsgopuiqt}}nvrnkektvcpkxqpsonsyoqxhruoukou}rqokommwfnodbeQv]pmfhek^Rxl~lnvgsm|o]k`jj\^lotX]shkN]wgqebjeTmauqne~i{crWTurebz}R[kcihl~pbzvjk|vwqlg]hY\jluxuvhsp|`altkp|e~yh~gzlNumLii|yv~hvjwexgmWdhftpgpjyuhc[hjj|joh[v{}awbIzelafcq\gd]s}ltbjsYee{oyv_gg\ciaa`tnzqnf|xnll_nexn\i|iytcfpw_Zp|yIxct]{bhRkqydYbk[thjgkvnduoevnzx]ytnd]izkdepVst_Yfrelagfbc{{e[cuh{}tyqfliviihtjv|lekshss{uu]ijusc\hafYjzsdVpjg|hkpfhvu]{mOpoe`ed[ikylxpsjebhpfnmtzyvabhhjqig^okmwprfZleyk{kkaj|~bgznhnlnq~mvt}j~|l]PqYjtsjpuxxkkca\hv]exdlk^e{nlhudkiizv}edW`b^pympdyvoohsq|jwy^lZpgtpcuja|bbzrvoYqg`^k}kf~lfvc`rsici|heik{vdyr`\on]\tsj{sjlcWulkrjwuk`w{rfzyfYf|igkbqa{kjb~bffmaws\d|rRmekn}wcffm\xrpxtvXc|^xpvgwh[Xns|nzfziwfhlqrgarjukVnjwv`gdoufwnjzntez_r]x`y]gwfwmvzvzyzlqdrpnz~olomz|xqulom|vzv{pstwvwr{zouurwu}{vm}ul{vilzqujywlr{wzodqrmrpil|ymxy}yxpmzvuzq{lxpx~ctwzwjrzl|pg}yohrjupxojwtutwp{j~vpo}ozsm{zu|}jyngvrvws{{i{{prl|{zwppvx~{rsr~|oflwvuwmwsk}stzluw|pwltxv|rpvl~hps|~~ulmvz{~wzkmst|zvgrpqmywpmlprw|hzpmsx}uszzozppukoleqv3}u{pvrinzqmqutnjzzsrvl~~{lfvjvst}mynqvtvj}v{{vspzqt{os|w|{zlw|ysw{v{op}zqsupkryyyuoiihiq_dkouhialdfcwgogisnwhdclY[apje^bcd_cmsw{zuknzci_rodkti`jof`ipolmxmmd]qlhjssjZakrydlm^_zeimjhipuc_jkheincfjpYYnakoTkgqgp^kngdldzjj}`dr[bfd`jnijvjhuenign^j\cx_bxlmc|gfbxnylqqghaxrskriemjXk`me`txoYbifljdsnmZejgrkRgfesflohgnpbyj_pk^{Wu\kcWkm^bnfrxufrnk]uiugil`gcgmwmjssgbj_\hwoYidcjcrqqanqmw`f`mol`mbejmjnnesbhgrhbluvgdgdomnldfdyrudwcmkhpbmqffncriiutgdysfcgdhedptu[`_riat`}iqqi`|mlqvpuqwhwjiqrsmovlitorkv}urq|cagjqvsgyluhelnexjxryqpntxlpxrqkwlqolxtlxopvsWjjboul~qitli|iabln}mjhpfsumwpldch~spp{xlmly`f{vxxlkflphyyzrwulnwnkhnroysgk`iz]qhpispjsv{oiypjqtmqsoi}{ikntjq{vw{htu|pomigncgkjrogfmmkmxbqrcmhdnmfxdyy{vws`osuqqqu{omrymluzrsrzpophipwlkdnuxriquhtxwht`plplou{irufnsmhoovxxklpithqvqiuusimlzorwlukrvysqsvujvgertmoupawlomxnmfqqrqvlhlsjswlzskrrluwm[evxfyno}jwpgmlihqzlaxvtkzi|theohtm^nwvtbok|p^s^uvpcqkfy{zmmjqlzhhri`rsbzoynbzhlqSmrdrfyqi|nwwpptgprj\zze}xbgw~_mpgjps~wwfykiwtiqudexqqrznstvlgofilh|wiundcqrsswi}lyisoe`rictixufjqjhqhwnjhnomxkoqhvbqdrdzuqczlhcspjvnpobknixji\|zgumjt{`|hvej|v|gaui|nnghosvjtdvlprviwaztvkctvbsl}fe}emmooifvnsjuomrmnmy]clktfz{morgmtn{latupz]yxs^obguqggqwmlcz`laevxgxlsokc_qprcqqgs^kyqbo[|nmryjlxp{kmdbh_mbnqrft{y{W^qgcwud_hlskbxloel^dpamlrgnol`qbet}lhcnfeeko}rhc}_nbjjrthcznim~awac_qqwbiqrrmumedrrfl_rlblpc[gflafe[vkYhyYxuho]i`psep[fmcmgtkonjhuYo_ZlcOmdjnjq`nliegbosonnkmb_mionabhwzedgehfvjejppopgomhq_nZ^ggb`hdnrbkemOqmqnufi^fduvcfo[zkojnsj^iukmkkub`rijijjfsZiiryce~ldncm[sem|`oens|{hv`br^iulatpjjehlbt]fuphfb|k_gmldffmdscm}`zii`o^vnyqsehnmhUzoudfrlrXbnemlg]pgihkbvevufotiqgecrdnnfk]ygstfpgzwugh{jrh{`vmmndklmuqcwqzwqtitwvyniys`oczplidpkmenrink{t^hnwcbnlovltm~nd~~artyi~x{[rygrjhouukypl|rw]lYprku_oms^sysiiw~n[uyvgw]rrsw`wyfpkgkis{q~`xgyrxqluuypiojhgy}gurfhhy{rsnsjxmj{gkwo}it~fvwerz[mzn|zl[lzjh}{pvsufonhfjpzv{linnWihoZf|vnfsfy_~cubjjj~nrpek]ljjvxdriopl}oqjnpddemnnwb`xoktoufkzmrkq`rlrstmowqgyhnuhr}zkdxtvhuykl\bqpuyvkwlqzmz~kkugvmnelhyuvyzwmbtfnohgjpp{llsthjmiupsslgfdniqo|iwzjyntdrho{iephjnbmoqtlk_humabofgauxqesemsh}dinkvuvrtgokkmhkdrlq~rcYue{gmssspqjk~j{x{qlnljqkupgppupakiyfjubkqrdqu`dpxjrbuwekeliswmy|qe~|r_jesuobqrmpl`fnjc{usewgoqmvtmh|kytsol}aejgvlxsoqnnymnupp{uffwdiyrwiqshrzgyjekrqwxlmotml|emqny`ih]owpqqmolipqvnjik}`c~h|lqshsrrn~zloqwbkgnewijisislwjzp{urikm__nlksjpkrUogimhuqkxsekh`wovpzrfqvsthb_wbc]akl{neogknl{skrb[ypiu~iptyqivjlqnfprtidjhy{sfuukpmp_u^khimhzw|rwfzsyv|{lyflwpb^omwqloogxpu|{wpiuyx}pi{ybkmcxerrogys|onm~zzmmynwr{bjcrmjywnaxhxrwtnqtx|^ms{|wnyqn{bqnjekunisd]odnubokwotlhjt{dnngwrrngjb}stwfbpmpwoe_sxfkmixohmteinovrshkocplls~wpcgkv|zorhxlvtc}tgrcpgyzpup^hnmmozzlrqlko_hdop^zmoucijtnixuld_gijqsvunvq}tsm\ki^kosofiorth{l|ywe}rulpwoguvnmpqxkrvazx|ovwoomkhtsopotiynjglmgkkkqohijjssmoodtjtoxkcqqolkmcwrpqwnskpwhpnulikxguwgxmqpolfglghtgkonjtlpqwpktnminnlmfnhjx|inqjjnimjnolkhnnlmlnnlmvkokepnociqngewljsrnhrogkhmiqoqfjjjqmmrmopngpqnsmqsgrgqvhjoeiipkbrlmproluoklojmtskgjrjjimjroookopeqkqfuqnoneyqntpkcpqofolmuthmpnjmonrmcplmiirrqnisrsmplginwopiljhpfrvoimguipwqjqkqesniohyyklmmoovqgjrvllisqg{ctmrnphfqjkdkulngplmqktqtrlmwikljlymxll{hvtnid{mRhlzxqoyvkqnZtp\ngjrmttzv_po[umwlclu_xmmltimjohaohhoiqbwN}qrmf|lmvmbno}~gm{|thruzxjhtnWhovyqrfuwzpssgfqivpswfdvqxknmrposubsib{r^~rksudl~rsopodzhYc|xwjexnr`k[fnhdpnVdm]gvtxvjgj_qrfc`on}a~gjmf^vpxWklpsfak^jjknt`}ooyd|bhlqkghnljq`unt[uutgkh^zpfgrrx]zXvt}kgnRp|}gviwqwr`ltjmcile|mplucyqmj`ooqbpgnisjtqstYtseZ~qnvcji\piksoqs\powldizeymxh|vToojlljbifljsbs^UhiatsWngszpyxtj{{}ppgofkziYbnqt^ivtlf]olswU|zieqhy]}ive{a_kre]|yw^hagosimtkqpoZ`jwqqaikrhxZ_glwufsU~rrfrj`f^l}k~tu}myi|u_hkispqswf|th{{wty~~n|thlkbunm{wn`wbrn}m[gwlkjdUyq~gZ|cirsbtuksfbthWhqvr]xy\\^gyvwtzwqhnbowo`vnmqpns}shPu|u`lv`y{Z`qumwamSxspmjiouqkXihdwhm`uyn|mmR|gl]duzpjqqtts|o{sOkcmizyrc`^qywPzcw^nbqmshcdvjYwjybrsm_gdlytmrw{v_mmllkgjovgtycrwhppmiWkoZwmmkbffgfoqntvpmjkojhkfper{mzp_quubgwbrtmkrnvtlfhuauzmnnr}sliXofk_bnjsoqsdipktdmiztsvvfurokrmixlhnjapnymkkcdrmugn{rs_X}bnlxdrflwdkqebk_ouwpem^j`podijzngwyirmduphmjn}fmny\zljxxsjpdyqqz\b`hqn}sdzlbsrzkot_tsf`dp_psptkw}tarfoY~nyedx}pheeonilklqrqjjkutoqnxhorptvhvakw|jzhdxpdauizomk`mhl^[}nts[mnxxrxrcYirjoopyeokofzgpbzntlrpgkiqiwojbqkda[qYilkalxvdeona]lnpgzkjjzwvbbhojm_eYXoohjsnqo_tctrxvf`dq`_tnmwmmmeorccg`[n~sfg\njl^l^yigQfjrckztark`gfngcggmj]ihud|e[vnjqklfmlqbqedwl\t`\U`ehulfd_abjci`mrpakofnpojlnoznemdozjfRcfdzaqnzms_lj]mqifkedfaf_sfmxm_dyahlbdnljdolbs{Wi}c`npddfSm^wmnoows_sasn}foMemvb]tf]mfb`|lXWvdkrk`r]jqmp|indion{Zgggifymrejbkpssu`_^vgnmlkUqjoclmi{Kc\Wckntnjcimgmjtsc^vpqpqrlgqdcj`a`\hmerhkisiadaphl^khfmur|Ujabge[roxiwgrnj|aejoi\lwuxvZrjhugjjkmdaibculo_vhn_e_glirciyqbydvxxigtmefogs_`gsZ[wp`]mrmqtupxu}wramnqgnenzdn|oljsmmd|{omdwjTdtpf`h[ruebtfxhinlqYbdf{ogkvugerodgtajkkuihvd`kjwjmor]plv_upkwlghkrv}hbvujyxllcs`dngxcqzblcxliacisvjkzkuxahxbmae|sq{pmdolnbucthsjlk\Ufvn}qhixvttmxlgrrjpvm_ormnojhbyedm_l}mm_{hmbmyometnbktbfd\`[r{udwwtg]metxy{olycssckuqakc`fonqnau`kvhjh}pxctnzqmk|m~juyfds[kysvwqmpycdh]rWprazdmhdekatgm|mn|`rl}ozxuihl`t`odscdounvgiau~kommtosu}fuueitsg`plncvxpotymroYuvaghmgnez{|WYeyhuvjctfokfihxhfcetth~w`r|xkysv]ftke`mfmd`e[]kl`vzdzblwvxbv~wi\dwiml}uqx|dhdklg`\tep]mmhkoplgsrrr|vdldmg{oild\bqaet~Yyxj_vn|ddtoiih{~rlbvj{k^}rqqm|jyxhn\zsusbfohglqpqzckzmgrx}`xfqyv]byynvt^k[_fbpgxdm~upnbm_ljqvnkhksjlvvmYWxf~ftyd}a^olhlnuigwbr}niuncqlrfvnnhctckpskneqfl`}o~lhwd}soyrqtkagfmikm`f\ophkhlmilvp}bzzoxkmofmqlkhj`nikfvfrgxr`o[pnnpqesaqr]laqevjlrwo`vhfohrqgjvi^qoj|wfhmen^ktrulukrskumpjniippeaju``fjmplfjfjzertjrnavmkfkfloqvhrmqrldokjwwgp^jwwsmjqjoyfkud]vZijfpcxjqqgpqyphlrvivgp{qnzpqcpqkmkgkn_pt`iuniohhcfhofmPpzjikfhthimop`gopk_zfmnfayulcymnlrkikopkvwnrjqzftioorfnpkrnhqzu^hbfkeqhie^srvjnrovjjycwnnrmlw`[XWggi^bglmcikyi\`gd_awiefqgclm|Wwannpdqhhcekhu[ijTbpmhmw^o]WcodZ^]jmkaoidhYgpcduZnk`fya\Ykwhahp\Ysq]jlhijyi\SxXwoubfah`^tmm_VOalqpsna{Y`rc[TpO\qb]TTbg[^mvVwb`gq]itfZ`igpb`mthRln`aemblQS\McjpbRf]Wbrgadd`a^qddnglkiichcld{kunGfknbjrh]j_Rbh~hXg`g[jgl__gsmXgo`\cqj^Zkk[^Rjf\menetTYrrilxdbWGh^u]ahhZa`cX[QqWef\gXZf]]lqgjcbcTiTdmfvmckmXfjfYfXlt\cmfrgioabdnfkXkjnkmVsbJj`rZtmpc`RplelhXt[qp_`opo[ox}hwnnnrcfqhne^ltqlj{t{gloejegzw{tauqvgjutopksvsgaduvkqnlwskpvxbpknxftgjsktbjucwln{ikfnp}modinwufdnti^wwnmpdhvhqoipfmaueommsefjioiclogudigkonccmfjqu|ohs~q{cogirpn}lnmq^`teZfqkhr]ykgo~penroioccches{jslcxgts}`td`o}ctbvamtbf_wruahwpvhicsqrk}|_tokylmr~m_doficiklamnnpjvornilurwkoi~jhkvtewoit\mnq`}nadrfgslbtsg^jarYmutpafbUkbnum`bqfugpvsbgmshydyhupfkil]m\evlcfYehvfwmlolwjslbhpwmqxoebnoiotvqrrpqnsm||tewv~jsqushtg|oxrijj^lksfuxcnrifncgnk{oldppkxyhqorm{zjq{kaborjkrr}xgjlplhrhwfhmlwmdfokefWkqx~ehvos`hmupoooyjrzmrr|tuw{ln|ljjvoyp{jrqtemlxkgq}rqjijqolspu`mmfnyhuorvqhusejeuknlozuakljits`]mxrlqylnre~itppmkqioksflkogpsewromolqoylxuzv}qpovmnpfltVnutzgxoqufvskczlrsrntahpm|ct~rtlasyqwojgjjvnjvhnlmlyrwojmqpsq~lnnnmpq~lslqtqkvuevhntnktmcjjvgm~ookgrpfr|kqsqotmruihihhplilktvwsphtqmnnwosmhpwmpqpqtlolhqtmklpsnrqkrnilmoefnmkkmsuprnrltvpjxqndjltllhmclvsqtqjlspkkqhhftrotmdjopsejresnuil~corunnoitfjwrsntlpmnbjhlvovrrkjumtjqxniomtn{lmsrgprlhlykqmfm|mgnflpovkyqmw|ph}uxawk{lrr|plktmxebpbrieqleqkqupwtetllltniothnxpwsomniklnigunneohnrspwspohfosjj{ftjpqrwikpojfkromsslnfiusixluuqunoajllxylrtlnutnplghqkrrj~mmoskuqjkqjknsmjktlvtllkhsvkpuopqdmsqqtp\nmunp|Woqsxnbqmozab{wpuhap~tqvcqzvhrucjvfcfoj|qtq\pxoeqnjzpxdps`otg~mapoklkssyaickfewvnisw}q|kisyaikepxtcouk}aoy_jymdmlgklgcq]daom|tznysgdkmfstrujueeqqposkrkdmjmjfvtuplthq~yvhaxusrypcvns^niminwx^_{ykhqecyummtsgoimuqfgwwoifiu}jlzouoypwjsrqpwfmmqrpsrj{qsyluirtZuhihiml~fj~nxkmmrimivfg|repglrwgxdZerlmgsdtm~wqokostd}j`mwqgxqvrfkdqojst~rplnqplbk|htktjyok{wiqnwbpmyssihp~r|^g[qgyleptskxtrwps~ipimcnkrzwn`tplmkystpvhkopjtosnni|ndtxke{vnpagkpmnmoxjubzxunthqutopucnnvgpyw_sthkwunifvquyr`pgopot^jzhmctbpnhmyfsiijbWkriaopxvlh{qtvup~ormzb}Yozmvrgtv}rzotl~qUwvhfnov~orkvmwnt`oph~rltxjhrotiwmjqwh{wvurom}zp~nbrksxvu~lvw~l^`zekgzjrykhqkr{rptozvfus^vmtqpv_|psoflto_owkoghmo|pndhf^qejtmmqfvuqypqyoavu{mqwevpmnlpjj~xmpcjzqyreav]mxvntswfoywjqkqqhnrabfuxhibyvlakwZdtedshpeowpeuqocfwXdkf^esvdd\dfxn]lmttpsU|nioxmnm`vikloczelifi~gWwgaqoyskd\qrqpk]jzh`olyxxrftlesopztfqqukhzfniytisj}P{xfzjake\wknjnrfugsuejojsuzq}gnlu\|fsmrxlkcXkph\u~[pSfbctisllinvskupejfpnlulf\kiu|wjpr}nuiusut_|hujh[bT`c}{lvchzwgppelt_^ij]jinunqakqgcaqgnids}fjylqkv^s~yvbvxgnbgouhbt\ixgjxpjysos}n]gsqpgtwdgq\qml~z}qrvlio{^uhmlnZlpk_sjuunmxmpquvouarxvdmmuiohjjruvlkppocnpttvgjnjmeulglsxfgechwt}rsljuulhnro~rnsju|ztvzrijzrZison]doohqcUul}safhj|\xpkh\y|pkfvmlsrhinkw]oijdronbo`cr_qiqplshnjkjruwkw|klrot}ntlpnyiosapzn{pgjZo{lbgd_vfm{ngjm|`t|mlpjqrwlughjimhnkerm{akpwenvnphglqmhizhxhkrm}qpkznj{axmgtxjnuqkhj|gltz~zjtkkipeikkxqstk{itrfqmklkt}qvs{om|vvrqorwlpqqjjfetivi{qsl~ctksdxjfn{kjiqiqpj_rrnpspwz`|epydnkm\whyn|llrqfqqtkuolnlbncu\zkisotdvhrcq~wz~jtu^keirehpdhirerlmighpwqetko|s{}ktnut^acizolufk{se]~{ejyegtjikvTt}kxlughahyjiig|dm]}lpfihvnohqelf^ykjppbvcosmvbcjwplxef_iruulbppmk{pnvlqsygnnnhxgbujugiskrwlmijwrn]kupfihjkrpewhrc^mrj}o{teon~jss{qfgxpklgfryxgqnkg`hlktxguc|c`jaw{rpZlmt}lxyi_giqkgrmm{xnilrnzdritnq}ygfdvvxle]fvjxvijn_frrlopjjtorhiqf|ztcbpgyjqzsxjrbrimtvtehwk]jwswhfxo`}ndrwsvnhoxmvyx{m{|ywu}c]spslrv{u]ovroxqplulwsvhadmpltt{|j~uhajtfnwykkrthqtjkvl}mkloesqell^tu{pbsouvls[Uq|ojtkjuninsjpehagnu~k`wwpmlsvpftpiljzpvjjlx~u~mwuhnw~qtpmqnecslXqgtpqqvi|[ojgopeijkvlpt}toxksqsumhgseyuwusguqjbysrxmwikprx_w]k{zfomb|jes}vwgyybqtednujrwgehkrkn`ru|bqnpenlzo}ezlzsrtwyhpxntxuxq`vqw}ygie|uuie|pxsh{dqjjuzvk{iqsftzxfqbZhlgqtdfht{|^Wwhdsymb}dyskqmuobgsixj|z|q_oqqcviuzfimzmabzqfnsj^etsheqdqfldontdss}vieiqsukjedl|xnhtxl_elmhxtrrfzb^qrnunoyurows{|otezgp`kpt`kmncvmhxkw|nwqh~sfdzwsemwsoxzh}pyjqpmvdlomn~\rukimeaexnwxnnol]~pocadyjsvwkhlpjmrgtjmdxa`wmmzmjkpjgdv{gxldwdkbhmnhmrarvhykylmqctpieoifuvena|}n|e~hu]ugsi`wkfojcelnprormnryqqy_wnqptzkcorjounyoqhpvzwflymofkedbfqnifpgoftbesimmmpmzimdhsyri{uyoob_lohtodrq|zcejfck}qktmfofrbosjkrs`ciqfwm`otosxbxwfpiijraogbgftknw}hissd\gs\d`ogihjQzuovtpk^qtiuln}fmlmmiUfv]fvgm`qlhtsxilekgmakpnjhtlvkyscgedegctfehz_pi_lgnnhnhgifnjf]lgnZhqwpjtoimvjit`fsnttfkkskkwk\d[jfqqmegggkRqetmjgbpkwj``gtjxnwmrniik_lphcmnoocdpnsklqhsi]fyjpmlmipaakjebongUfwUkxm^ri\kjk`ss^yfrnej]kpggrijh[cbsnpniomdio]qyfhqlgdrmfvvosjhwbuqcXvpelomnrpxmictglah_qj|ejc`jlmfk{lzahmxsg^rajmju`vmid|ptiqtWlzmx^nxnkq|rswmowqks\wyqrhbdurjirYizx}p^cjckzp}ly_|pss`cgxmuxsvcjpthlmb_hxbxflbypgsuknnquwp|mgjr|jrojbliymezohxxxrlxtZ[xsXvhcfhmmowxru}}rwugoptpipabkxxr{tycjxwiyozpo^emlo|gjgut~u|llzlmpnjkr{gkck{nnejzz\lj~nwkxhten_rim~kq~|cqu]mftgl_]kzk_|unlbxauweopnbobtwcywlpi|vquqoznauhxwb}lwr}|^mwoibug{dsrmdVcl~ativgqkpovorxqzhgonrfr{snh{uus{lhltql{xsjnrhmmqsnpm~fjyytu}qmgvhhpnzulsw}lkwtcniszzvms}nnjef~bb|wszkzyttvi~mmyvxhksyipoqnmmbuljdoxiesyjolqkcugxjwtdhrz]uoplyp~s}`{m|pprrjlqvqfie{bdnjpu`rvdhinuv}pver_qbpqtogpodgxpvmuvm~snylndzmmoifqintsbyrxbnsbmj|inkqxhgic}oqlzpnnodb}orpenwtroyrxhszstkrYrmxobgkqlwqemjlcftuqulmfyvqmxpwofbmtwpxr|elmqzlstmqhtvmqpj}qoqv~mg}kn{pykfldpnhztj`vf_rynoqh{sqszwmkthfn}wjxlpoqthrnjx}lw{rhtvvrmnii~{iwzv{vssnuqujmtdktoltnhy{rw~kuqz{j|iqtpppvowwvttvvjnsnzwgorntbzjghmsqrvofzwgzys|{grutpqthlqopqugjzlgonvrcnnyknoobnvxuvtowinkvu{itYtbidr{umcX{lsrtggotgspmh}}c~iwn|thpy|`~hddpugsumpzfk{po}hnxo[k{_us|iglwvyf{wqkkqiv`tVs\~|m_{polnmks|is{uikjhsxtuzzqysesl~umqvkyqlopwmueorvhwZcqnhryubV}qoy]imamw}mwdfzpvknyvrgopyellkmglswlrsvsfnli}m~pmcxk|ymwqVwtdzp{r_czmmy^ypxYi|}yjo{gvo]mv|f|z~czhhkiieqjpujlnufyktwxj|ydklhi_qplV||}wsrk{wgvr}bqifucn~ydvqnmro{usngsicxvss_[emz{gllp|}tg~pci}r|zhjh{mye}ghwwjuis~bhjuqdjgsbuzm{vy|e}lfQpjqplmsf`Wlflixkn_tpsze|upwffffvhvf1izf|ymym}}htsooibrwq~wpp{dmd}tcwgkz{vztkuho}ozx^tg`vxccouqkbMvzm}mfXuihq|mfisr_gskkYhpmf^tgjjlgjeoo]ijrlb`fmnlyimnipgynooqfmldgp|fxtfozdfmagxefpvvclmuso^]c`rpqbbifohpklpntnjgnlOe]ke{gttvjuhhfidulnkncqqckgngrqrqlgm]tngjfofZ\drvxjnmfniowfjfdujoio}adaxcdllpnphlhsccjXrddy_qieejXuuhmsxghoqqbcrsp[nsrq`nkefnegrjpfit`gez]euehnm`ctdcprjmeyttjdgmvl}rtygkkogmheo}bpj_aekmkjkcgvjl`fklgcnim}{pcmyfkeatifhvXmh_hcg`gho\^_^uXkw_nqawlnhlchjdsnbmfofmfdqZshium[mhwagfqjgsjktv{qdvywgeq}vrzz}{vrkfsmkn]mzyqsxxuzurimljvrvwus~zl~ulpncxbzmwxilwhtirtwthwnrtpxpqpqzko|rocowmnumikvlqurxdhunscqxnjl~crsglhnm^ypn`p_ptbjlxosoynofyfwwzythjnktkvpmlrpmohriphtrqfw{ypfkzfckdmvnprlxmyaqqsgrodpntiqryohwlqtolukovxryi|tlxtdm`mvopqnttfrpxjgrkshtevjzxnskjjfnf|ogi{kox}j}rilajcuitfinq}ziuwmptvtzsek|dtgzltsrjizpt~yo|fnmhysvmrxsjnhcofm{|uy}rxhom|zpowvglggiyxpvojbp|moiy{outfzy\mcluaxgrspsai`clmdmmmxpisbkjinsts}jpvtn}lims_rykoh[suoynqloysgzfelwrl}na_iw]pzgxdppeimrvtkhuxsovqqkldlxl~whnqbncphih|gp}huk|xwskdljooeoklrvtpurslszmqk}{mnugqioqcwwvrvfpurr}ruoqrlcjplshorkgsergxp^usg{jkylnvvoorttcewmuvrdkv}o{uoff{pqpkgxkvmcxktlkmkurjsvlpiomrmnl]^ntoqxr|j^ntvt\qihl|uqn`vpzlownqtznotxtrkr}enjhggnsloj~sjrjeulmbatiytgv}vom|n{tnifWstgpnjwzizyoisqhmsq`yigwhnlodgmtpvhqiusgmWoofobpkommk\u~plrnhuxfct}ggjolef|{u_xxok|qgqzuytqstiopt`mthj}\vmqp`|kmhz{}rtuyrwslliwv|dixtuhev|ptjncmhjkechov}mkktpbZylug~qceupimvqtwmgtta}kyvxmho`wpxijzqoqdqgbdsgthjgvqnvkfi||oykrqe_vdg}jon_rnn~nqilzdqmxj}awomk\ohppjvxff~yjnjtsmy`rnvgzehrk_hhZ\fbvwp\Tsbkjcfpezmovy~rueewawi{ooy~^schw}Z`drpkqvtilsmiw{syztmtkxyxwjw{[an\srvssxf}qvks{nplpfpotqhwqgvmxrqvmrnkhuskpqpofjmvm}pryhppuyrr}fuqxiqwpoum|oxgu~mnrywnqo^lwqvfgx{lyqvhlpliyhos{unf|gnlywsqhqfrn}jewszxipv~exn~{mtkx{ritskw|{yqriwobiwpgltkmqijoprytqzit}ouslkfitk}qwqtrr}plpfpwssiiiixxvqcutlqywjynmpswmdhtpsmtuovztxpjs{yvv{stkg|jukx{y{ouuiqo{hOwl|tr{qlhjgrgiftntxymxvrtrqlenpokqh~yw~jpnleocknuwfy{lphurqwwiwhrkyzlxtuoqro{|jpjppnflypdslswy{eqvnfnl`qzyrdhc\qg{hxnpqkqzlxlin]xug]~pf{{vpnvh{vyne{zqiwp|{uhampun_lxyu]lullkeppimmatgi|qczuul}udf~|lgsnn_zvjfxnkrqxdhuo{ooilyunumtsjuxsmyyimwkpfngq_ijmlok}jpduc}ngtnwzpplxpmnnn~xu`scw~mqkklznt{nuhmtmdjjf{sojwnmw~wqaykphjo{aafg}spnhoornrzqyh`brqv|gxxus_v}etybnzk{^uqfqwydqrrpy[btiimxr}[vqsn~rlulzmsuodtwntreyejj}krprdncco}qofsyruuhlqtkm|o{Uxzq}jepwhkpdgnoq{wqmnxqrgrow{stzo}w{njmjtvmx}orbrjritgskhl}{gpsrismqynqune_rguom{vioegwm{skuoi`lrhppi}qqped{n~tkqqsso}wjzor}mhhiyzmm|qf{oizouskpkttxpzaawnrocizwpvjklirvqpcxyhe~xpvqzqijvshxonmqzwpZmrpotokk}ktmveg{y{ylkwrijupxsmkjinu_hdptvkolplxtro~zjdmfgohvylqn{jhvxliqpmrwgenhluhmrjirvjvwtyrxmoqqlnbonkqyjpvymxzcssafex}owrxvomsorq{uykxjqmoqdtyreygnr~wkigpkxbnd`vrkqfxxZji}lp{tnpwiunibfno{or{{ipkux~jgfnrucprjw]^xrolhp_otuvhnjjnov{lqetjdlkfrwlksyeikqquvdlu}rl{ts|cpugtl{vcnpx{wstrxoces|nj||krsxiuvnjio\vsfvvdm`iunqnhjjvm|jmpnykjsixwsnloklzomdwjqmuphnqhgbwumdhnps]~nqtpeuhyvwnrrmxdnrokufppmqaokdltwfmxlji{rokt^ozgez~}hjwnrgm~oz[mmswhmqyntzzn[Xyrsu}do}pokkelcdi~ourefvswxzmkscop~mpwum`zkVmvqpk~xjtzjduhihxrohVn^lfc~hd{dytvs{fls{llkbxgfrtkmgrzkjnnjmmdkrxukdkztr`tgzrkotyoql`q{jt`gripgjuvwpefrg{xghheisugxuu{hlkmhookxrepemlzogv|nmhhmodssfhcdfkelvumuouwnmtkexswitko|zjtnplfkjxqmmzmtum{ukmwefixy`dfo~ghsmusvlyhtglgapwvirysizuysxhpvvpm{jpoddnk|mfqpfqshpknxmhlrytgnhzdtzlnmrtsavmqhmnypkq|to^qdxZvm`f]ozh|zsxnc`}f\kq}qtiwmwsuk|ks~ub^qfegixpmuo}gexskis^bgfqixjzpounrtp|jqrstkyupjptsqtod^cngjyeitoxg\{fvmnmgdsluc_ginl]irPU_c^aagdhbc[vjf`teut\jd[keZl``cdqWcgmr^Yybi]i^Vgktueegd_`i^^Y_ojcZidrgqpeeZc][tqiqhbn`s[dldmi_Xfa^]nogitgmrb_ZubcWybilnjgokLbfc`Zh\xpi[wck\ckfn\]le\MdUdkdddovfkkbglfbgj^t[qgcchaj`srmaa^`^a]fdUb^ocadclhtpegcr_Xjeh_r\qntfyra`ra\b`Xkecnfb\cnfix^iYsdYogj]aeke`ffqlha_]dn^XjvVc`vPjkdgrhd[\b_j^]`[\qgeXcqk]ffag\`g^d]_cie]mVVmmVenojl`j]diXbbbgber_`kbrlcbaiYokran^ein`c`l_fZiphcxos_lnk~q~dap]ibmwxvtxats{_|qpfr{gm\osk~ynf{rtk^on~oy`hqkxdtvxoundopem|lrovvv}hhqajyg^npuhhz}k~tmmgua~lqvnVlzomxuexh{c|nxbxsssprsvrihfe[]eWkjuson|vmxelxiyil|zrcznsgerk}p^gfqjuspwxip{mmg_l{jwunojew`f_crrqstceirv|qhzjm}s^rnjr{jxsiaghmckvzwqq}{`chnlwhhplpyp}|l{jwkmouOcwittrmrf~t{newsufeqj|gspplsisgvkyakclp{nyn|{wghp~fYhhkrnvqaqwl|_w^ztsrsmspn}pxwvsv{joqirpjoiwplru|eshsuriyxnsrvqrzefzby|qkuu|t_iwmlwisonsifhnywopxtoxrsubaqepqoslljubwgquh~yj{jqohmoyuytmknjshdclpoyiponmynruijmtdroqbqtpqfvrnenphqmkyknqrakwpdlklp|tg{lmrkkmqphnwtsrgcrykt^womsbrrikpxfko}yofmpovkjgtvlqjiojkwub{pkrwqmohtofndrormjz}kpy{qx{nnrrqilvcn`mnjwxyusv{hyuutmriruxlm{gpfqmgqqtxaf|ojqrrholivsyuqxqmsjjfnnsgnrqjetwousntmsrziqkuy{vppkhvithv]rgYa}xtaoptkvuniuft{ylmygcxivspqm{ttpmv`rzlnnsf|zl{rdhoyna|jpewtvlcfqukirrp_fiqdtkmobsp{lmlfvirurYhkjnhrh{tufqudrp`shjgivwmw}pljxckqsfm~rivszxtitlxpjpqsuq}b~vlrxoviwksmvdt{vicyypspf{dvbyzwjsaxovxxxntj~vsn|zghqiotwwmq\}jcxvxhwf}tfnm{nnvpmjtkllpv\hidemsjbzlkz|jkwkkmrdzqtdnmwmmiawdynswiu{w~odcrh^_ssrwkojtU{bymg}lqlvzkjni~hpxeuupsmply~v}hszrwijsrkkip~p|qksomtmh|mj{wrxwkviuibZmuapoqjgp{gr~fxvffxlwu`wksjou`psfolotasj^l{`lmimnwunfpplrkuxyxpaqttcctq[piyisq_fl^h^ikrzjtoqag^gqssooce_aflllgp{kioijinkqhhjwrjfryzviwwox|nja{^`bhviexjemmimpi|qoufhrkt|eimqmjtolppiqmYsquznweognnejnmuntadoqsmnrcedrbsvuwktrlrdobxdwgZ~rmcsitlhnqvsdftgyupwcgvezaldmmlvp|isnuhjnmal^{njlixljzcjohmlYjd|k]jowttuiovczjqog^jpntuciYjljehwwiwaqzu}bqtzxlslu[wgmeflre^mouigjh|zajlrxr^zbmuobwiyhnxnupjiqmlyfrjwoqv}juukt|is|jmxpteud`dcs_ybi|~o{qh]Zxhupq~q}iutrgsbxspbutxqgqruityfrwfipir~jspoluipgnpwwtrjhmxwrthgwh[mmemjnj{rn{~}ohViexhxqeotsrxmpkict~royqdm]omm{ulzlqjxvph|vrpuiqpnsiupurv{[p{^vmsmfgusv}|kskrsvdwynjhqdmjsjxQk}rgu{kutt`h~|}zqkwnkpukn~}st~uypnjrqi{xqgvnoqhppgvpnakjiwg~n]okpaskojpfvksv{tmmf~rnybxceYsiqreynsjorfmttxs|z||jleyit`kkml|opustegj`khkqnjhlfnpvpol~kldkvqnmztoponjr~i{rpjolmlfztqhqfejkok~lwrrfsmxt{mkcscnkpdrsevnwpoavqcxymknljnh{_qduotarwjqpmdjfthktonykpcqnmpzqympw}ihnvkiiyxt}g||njllhnusorrgqhsjm^udoouqpojuumus}n|tboqilw]lsurpyjovskpfdnqvkkspw`gpipysgpps_qbkpdmrlyqiz|sppujq}t`gtugg~ivkmp`omkupmnqtnwpgvktgnxhwsqplqmiizhvqkkvrtxugverrhvzgfkmnqlt{jjg|ssmmunhrrnmujprswjyixyuucknm`vifnn}hlhnlrujdgYoutksshnqplqwp~puukpwionzzifapvvperovps}`jxlzujpn~uitgrnnjZqs{mjpyjgrmvspvpjwc]qy_n~t}pdl|xpni`yklixrnysqoxucumx~nwidy_ydttwqyzzjgp|}lwwmzcnldjdpkqrkpkvqejz{|mlww|oiyj{zeqvrsqnrztniir`p}qotpjxomjwpk}t^jdlelgydtlm{j{wmkdlufpwjwv}un`wcqc|xwxxsqxzjusepoifsqbuowoihruqxijkhwjhqoaZq|sit~}{lbt{tjvom{opb~mdominqtyn{tizn~mtxkpyrzphttywxus}n[t~y_q\znrov|ekqphrqnpft|odqpqrqvouhhuturhqrfnyg|fmp{{tuvzct]|sw|mr^jlqv[{zdzoqlyq~mimqscsjfzjq{nnzmsyqYo|csjbunn}tazhtkqmafsqzoknmxhqcemlyuicmhw|wpxlfu_kbmn{luxixymx`udooryikkjm~iqxmupxd}nkpnpuxkto[qjkt{|coZpuocsz||qod`vwiypwh^qlknjh{__h~tqhhsov]osktp|qygneccpiz{pzmmiqgjwd[fraW|wvlivjkiqqgsqlm|s`huzsmt~nx|Vfr}mgpiattuqlqcdmqux|o`tvtz|vpqigctrwu{suqimwiyzuyjf~ei}mndspgxysuomrghcvqxtqsisgwcfyvmxjcisomhrmqfzwtaofikmunekxiinkxtmovrtnstunlzxfg_o_rlpitcy|p{bipuhxxlbq|}gdjim~wsvsltoulxgyssomek~zlqqqtymiqhlmwxsrzowni}kqywiyqnyqfxeywwo~qfvni\vqizrwcwgogurpbxkyjvm]vq~prsumpqoobro\p{{qpmry{jqebljwvnnzplxs~qlyl}hqkfpzdmirrohlz}rtwlyovrprnzmdpitoa{q|nx}vbqvp`t\nkmu~gmxkwrrknpi|qrZ{choxvzis~xdoyqjvkqpvqsddtifomir]onopsxlhgoxfnpttiyi|qxu|svsa{htkvr^jushkkosnzeuxtqxmshdrwcmiornktzdzosljkuwywlirserdngey_jmqiwul^p|pugm\limvjrfh]nWks|nkfnimul{mZh{}qst}jihsgsnmufoelzfefasoq}vjhmqyrdti~yipeppzxpspwquxoordhao~wwrucqvwycgzv}mxfnuqkx{scxvlikhqtjdkrmmgsrmlrk]Z{{c{nwl~lmgwgoddsk^Zkurmsjwq}~otuxuuaYewllyjfltmbjpvgrkaxppmhsuqddikwzsiqqshyoownnbmgegin_nrkgedfzpwmansj\zbilsgs|mklx^zmuxsZjpzqhqglqokoqrusumeffnp`U[w}d~xpjygpyqlnotkp`tqtxqmljstpkhojoxnintfrmostkpsnskkqfppprnjbskjijjltxgkkm{imhrmgeftuulmnnokrsoshekrlnnsmvtex{iiistjliogqqqpjfhdjhjngjneinoorgukogsuhmfpoqruifonlertpjjnajgbhplsjnhnjqlqnjpgjnqfpgmphs_htlieqkspnsellovoupkhecsejohimjstlmjpmpplkuljnsjtojpuqiqnioukdopdbrhptnmpirkmwmnljmnggkjrinrnkgdgphhonofrnjerkorgrsfmhprolnwgitridrxsqjjirpoqnfxlftpmjnkotgqstoiolrgcuftmnhgqpmlyepmnqmqumhlsrqoogkfs}rt[mkjjrqjzi`kwrfjoqw}q~nqctgktugeajbhpcrppqnpmx}dnynjioxliqmepppejky{gYdhaminstlu~rjllnlzosvcgssk{{bqd|jwjevpvhprnyqfzfd`sf]fv|j{{pfmjullnqlmavo[gchnkllhpiquv}l~dskmwj}akjoqopomr_btgp}bh}gdlwuvqrjxvuhmmpkmdt]hsnpyqhqkqzcqglqmvfohlllkrwlqrtdnjqhmnojgtlreerwppnwkstuxvkmm|tylmmrtonixqzvnouneqnljpllmfvimhukhxrzsosdgxepigpviphujlvlsoqsgftlugicgnvqt]wxenfkz|llqc|pomr~nqktmyktmok}ggzkmx}snopwqq_e[np`pjdnlvajthiml{wgqcksq~ovtxnkinn{nidznlzebjiqgryghta`qohgpqomxjxtokvguwnnjdeh|mkwosjonsjpy]htrnqmovqxnmqwrkhhmwdwxv_npaysnmicwkddplgpzskze{|uciwwopyuhouejarypajwdolxulwlwtrq[xfsgps|jgehromujdtnktxlgnqjxrge`dnwuq_s~speedgqusmrzvvigtfbcow`ps|aft`oqimymfqgklwuxkggjpsmplvhtqzrnpkylivzyxzmck^}|f}pipmYwXozxxhtmajl|nroepleuggcmexoj~linosoufg_nmmbT|qcfnai_`avo__jqhe~`fQ]rh\tljlonmtibsvhwZsl}jYjokm_arkeo[nrtihlacck[mtlkdk[duebqe[`i~ih]fuipdZdw|hcnhcOhjkexnqihgd]]b`_m^pkgUmgn]dbi_^emsUafd^jfm|emvlgbi`n^mjfbroj_jjfao`caN_g[p[n`b^himpeksckjb[X^d`qjmwdckjGki^zia_Smvmk`_ghlj^leVfgXddblkcyjalrrx_ouxlYafhl[b~ii_tbo^Wjeaircn|qYkdvs`vkfk^q^jmryY\b\vqok`]lpaqgkal\luYksnkfj\QacuUa{pl`kssi`adhnb|crg`[frpeYX]ziugfnpe\odosgKpprjfypttqtswxmgewsulh}mhohuY}hrk~vzstlshumrvqjppnzrspvf|skfeypwoqmokqytllgnivskoq~xg|erivunjzogfmmqj{hwnhmcoutwpsvuqqhwhrokkqxyqsvdjplq}wdvctsvdkylqqwppnvapblffqnkggjqspmnymtruxsfh|f}yofj~pvs}vjtvssxidhleursdmtogufqtneicsxtvhsrkmvlab_ojekwrl|tt~vh{pndhxlqrpkjxjmrv^up}ldnqpmoojwldq`xlqsluowl}konomrwvewp}msiighofrincgvxnon~equqVrsrhqdpdyyqlsphoxkx]xzr{msqyvsahnw~xvuaawng{fqqxjxvpywjnwrtkiossixd|ofhln}rshspmmmgvqkqysrqo{zqpjmtsnrsvpttvhjow~hmuhjfirs[mrll_hjmi_qsxwoutukjzw{lcwpqqzxsihpomsarsovcvmumyalvrnfsjffxxiwvd}ltplpbklo{qqlmhnlt~jlkgtfsiqk_riwwtmqkxuzl{ssn~sxqlsesjoqj}kswsnesrkjnil|{wfvijwinxnrpukpxstfstpq{cqqmzjnpvhkhtlgk}qut}ujmy~xoefqpukfigtpukiEjuqayyihyps~kjxtipnerzr|xzdvj`nYvmjz`nypjjm{ahlpjolozoktvawprpaprjn\sknvtqqplzuzpeonehuvpkktqzkoqynuz|oixy{|zukc}gtevwwputon}sxr}}jrvrpzgztm{s~|b}tlz~}yf|~nh_yqsk{mton{i|lr|rlhsqi{wpx~}fpxmfrsopyzd~tfhx|snz}dvnthltesnmzpmqpxq]jumnso}lk|vunqn{tu~opmq|tyngphwtjxh}tzyqkt}tniwhe||lxrr|uzw|rpi|[xjx|wzptnmuan~gwvfvjtm}{iqzmaq|pvubtx}xtqhm}wq`eer{tnzl{xzfwkm|ry}`zr}mpy}on|hzqey~|qljmzm]V~uh{xdyvkgqa}zst^v|ktzs{`t`~vajoteXydmqwkbtp{fpg]bft`zossu[sljozcjuiduwkhm{envqt}fwb}rt|hzyrpum|g~mrvaiwoutcjtbvzc|txsYx{oj[okxxrmUavnwyhmfwquokngyrrcWpsvgng|wetpcddqkettaWglRyi\u}uvfktmooqi`uihmmo_toiR|_t_uytzcbzzmrn|dcpkmt}ywmv||ewgft_`{qtx{Wt\uwme~_ofm`~glliwxuu}htgz]{X``wzsnbshaycvdodfpowamkzo{`cwhth_}~s^wouvbrlvrindohZsjrvkur~egwvfqpjtmkb~rwru}n|vyd`wq{zgylrv{jontuviqw~msns~x}lu[rqlqymwryvmwjuxjsxpzk}vu|xtr~|ms~fspnropuyi~yuzyfvpk|pwk|z|wwpyxy{snsqsyu}tsxhsoz^rit{bvoiijokwuyzq}spzxpmyhjx{umrrezhsklzpmjiovrbrcmtvzryo{k|{uhpwqo|ijrsqqxrq`{trn|d|mqrjtspis|jpilngqqsrwumqhphrtuuom{pmzpjtkx}jpo{npptrumqmrh}qb^}tnkxogoexwumvniq`{gzpisgotztplbvtmrhrcjnsogioilvuwjWwwfmzkgyxswshzfw|vqkrqtpbm{rgy{v_qeqstmo]vljm|lgyfxtfljpso`{f|lezr||zrx|}{bxyfoomgfnuxo^uuqb~nuqkuw{gswipkjnsgo{zkr}ulvjpnmnypogrnrdmrss}{u_nmkvvjsmmnzinpugtitsiykvjh{ato{nkegtprnmhbkjrresdqk|qtclg|dwiknggtqllrwmlwtfnsd^vr|tpktvrjg|cx~tywoykotw{bkdrujnkgl}pgmyvfwdosqmnxnppq}ytxrtevddnxvkpvawgqusx[wtjurwuxh}mxzobwupeoutr}gbxyrknpm{sij~|f|sxkoum}qdlgwioafyx|gzuy{n~xltsbqrvn~dlmg{qgzqiqurgllggwedupimmnpekpstdjzcl|j~lnxpkZpbdtwpfnochnvsqtsmjronggpnmcirnmhfh^v_lvemwQvwtp`pivoglatiqtpxjqsZms}mrttwrnqjpz{kpdk|lzpqwugp{}kvnjtqpbcuolcwjukxpqye|ilymzxkxnmtvzlyhoaocmfreodkprpawd}dpxgnigikasqbtxpyhgptpmk`hup`xwdo~eotridviuiz^~]rznflptarmnqgkbq~jpmhvyoikwkni`qujv|rjjml\vvrhadijyeponojvexoxkiyqakiblw|`osvn|pmh\pzlq{ey[rg`l}tlne}fuppxqhk_vkkkVb~tphpiiocY{immktbwx[mhdtmqnnvpztktmrirs}\dmkkdgrlco]nmbcqfxx]irp~hmhsh{dcrkjvuljpnbvqkmoonghkjqbkdomdmpx~k`mrqvyjghqmjl\hglmydicipfdnfpan[WoTryqm^qkgvdrkxg\lzrzjnf``xn|kwkfm|wiowulynqbqsnmjkjotcmin~ococzhwcwyvvdru[k~qcagww_grZyzbgipgkhqv{Ikkhtlqossmnmkcft^|nmdfyni[qjpf|YxhXivyTjvmYgxgmpsj^vtjfYzffdcQiyeoaiugjuZalqx^sogdilsfewqduwkhtnrtjajkbsnnRyxecx~{upavqjoj{jrfoTmk{rariqtmi{zhxizprtscwzklhwuwqxlt{meg}ntnkswvUnnlmnuwlrmmqqvhezyuP{phmkvcgxgdsxzvsnxheamn]z~qywsxm}fynjpwstx[uefjl{st|tzuyyssqmmt{qholjrixr_ppxYqf\rulzakpotdqogi}twxjnnsU}o~lwiXiwcv}|jpibsvhgaelceuyjUcyjo}}m}xh}Wfjn|dial|rmdglsrc}my}zaemlmxnli~z}rhxnieqpxYf]awtqknhf_doou{\ufneaWz{Vyy|lfro|{jsj}sdkwmsqlm\wo|sqkrttmel~bwqnpl}z~zrluxTtjyyxye_ww}~{th\fa^pjip|yazvhqi^xr|jnedbrunimk|`mo\l~udhyr`e|hzqpisfkulzyflnzjcpnq{quklsr{irm\f]qtvyujlUiinoyhj{otU|k}sgixusgqbinwemyjsmwik~mfgnec\mhgzrrxvzje{pgnau_d]Zmoipqhnkjuygrlk|uvffzhjasnw{nd{k_qbh}_zakotc]pt`pelpwjmtjkjnpjmlkwnf|mqqarrd|surnjrthjpnrwqt}rvyfweueksffdheszwoZwqpnybsumudc\mkdjnxqmuwvldkvarqvnamj|kxsxtsukxnmgk{|u{u~aumzsrovdxpusn~jdbyafugyooqu^mirqmqivssohorkpxgiuqupgymsuo_nnnniottmnjmzvu~lcfrzwamptnqwgmrituihqjyjzhojkdrnvpprnqfijlnespk{|vdkrqkogkmoxvssbpijshgqqlu`qtrlm|v_upontlhtutqne}qvewcvnijoqdrponknos~qlohljomfu`kutfeqthqp_qtknslrttlpsmtlpgo{msxokfmkirormyn{mmtkrvogmjrd{ywtkjgln\oqjkjomkqzlmqryjmjlfpjrrnstfsrpsjjkiwqdbupto]jplfonqtwrnzcvq_u}ujiqijqfkjxovgxtvehtwijthpklqfx}qfvqklhemmmquyohtgcnxgphnaimhttj|dujr|nrltpeeur~g\tnvpwvtmr`bspikqtxjefsk}zovqqgv}leqwy|eqmol~tk^w^bjkekxqztqopgdsixodczm_gjjjlywkatjfq\yblviixnszknejfilcmispqrnpY}ghmb{azfii}`sidkghqbiwsiflqh~mljo{nlshthfefjlijqtpiggoso|gkudwzdhmar|i{simvtvjzu{nctgulsisbgjc]xnoqnvsy{qwmvqhrtf[vpoto~nhlymukk_mv{rxoorkiwqigwruklsbd`}zv~dpveqgh`^lxuadejxmb|plx_sx`xpk{k~uZvxwm[tf`ec\lixrp~wpnjdn{e{tbcio{fkzcgjyvkahxqtgc\iwjhkk`xnftfpoxrdgnkd^uaoc^wwnqX^jin}unmlvuirnjumlqvlcwp{q}nhsk_oygyh~oevqtoupp{n~uekku_{hwt{vlgvwpllfw}ezpmkswcijss|gkvplv`{jpso{pntmupr}|lerjpwaciqppydrq{xbkytolcq_lqlwiehjjdk}thrnlhomVzjwq\hfuwf|xucfjtxluwqqkesxmgts`thh^yrjby_o{fzurr~pvvokmr|pncryllvl~ukivskqhoqah[jsilmcciagvmdqspkwgm^hqpirt{pqophqpg|momio}kgotgubjiplqwnggqnenknrjprz|hljrhmich|Xtiw~poy{svvpryfXioujchdvrv}oshsw{^mfjxkfvjypiwpe{ogktnla|psqujQpnkulgecxzilnpnuu_ym~pkzlbzsdronbbsmqkjtltnknq~vsppssunzrnssposiyjwwipos_hkwvfaqsleqpvwiuqfsutuntxsrlfhxkwrfysp`yszzfvzyl~fstrfxqffrrpnh``xqkmfpwkrzmityfhijkmssvnlysshbtwe|knkbwivxerbprjxjljeszjvuooqeki}fxjopknxchuy{t|_hZzehykoqenzoqnzylxdovwxljdivlbs~cz`eenxlo|iqror`{iwnmq|ugpzxwojthsoqjtrsqilssiofnfqqmcbxeyldtvkxulhZn{nmblgqj~lq`lrm{hntjpllrik|m|ilqvxcf|mjclfkpvszt~cfurlffokrluovoingnnyrvkev{zdxmqsroxkzox|nnvnv`l{geiuowocjnlepbmiiuv{rmsnstpdqgkcow}nengunktxgm{busrdn~jn}jhmmvvmhxnpWoynfnnkvffa|sn|qsynlxqrnus}twf[nrv}jktyzj~qxvlqifakmeaqnktopopq~qxuu}u{ivlmhtl}rhic]lbmcnmxvyrq|r^_ptnrplmtmmkqxglx}lmwz~uiwbqlqh{im~rqwnipeyvqutyvjXXjjn~jrkt|dkovupl\znohyr`sbnohz}{uxtwXxplgmsurtx`eo`{{skryurwfwxzsjrllzkwsuegib}^szotxju{imqnq{srkfn\lkjshbg[spjrqgumfkrsxqmnioZuviqdiqvbwwozrssudanynzlvmshjpjxkuinikar`se_{xujylmprtkt{psusnj~qjt{wrtzvbsyccmqna_olt{xkipo}sscjpwkcvimlp~vx}lh{mkiatg}mlwjehnj^ptgclp|kzqwdnwp{rvzsyxXpqqlnkrvsn_z|ps`tsq}jgtlsftggekstljyvorluqmpfstiyxkouvyyszkg_tlkiwymjqrwis{ykcnw_fkmzsydqmowb`hqju`leyotl~pthfsjkyoasdutmtyimzreyjxqqhqkmoqcsw[y|djrtkkmwvsn{cmz{]mmufa~o|kv\qpsheztdkvz}ydmpzmz}p~pwdo`ectlqwtibundvrnvynrptllpt{t{ntllqufprrrw}pk{_esvfnrphnwlydompkucor`q`vp~uq|y\hxmenr|o|xu`fxjnviz|kgoss^tno`c~wianhvqqqtyjsjylmsm{rttmmw`orpsofvrebrrssqq{dmqjufz_jwqpnoqtw|cpr]ouo|vlkrklnore|jhuts^ttgnei}rrjyogyymot~amml|ouotr{iz}|{nnvmp~qcpviwxoniztgmpdsrmer`pgsrsnk|i{wojwm]ykclki[nif{ltwpgjcqfiYo|Uo~pyneuvfjwnqSovgjfhplcqzt[stfgmmowxirjb{rosUjovhh]vees|eaf`Znz{v~wrdvokuoe_p_awlielZkfe{unovmtobSnpvbvcpfv]ibxsw_jugmlbmdtiig]ii|cubyYxjuzongqfykjrlrhbn\zc_mqaerfjfjmntglskvsfroxvmcwrkbxnrcaVu`Tdqnkhmmwvk{|jqpkusYtmnlj\gflhwntvk|_~{kc~xppp|ry}iafbkXvm`mevruhlfflvpegbq`vxca_bxopmiVjo~wbkyko]gzscqphfuarjagjyl}kbs\jkjib[szuemcojxx{}y}btfxgmefsgsqbmjogotjrdpnxllnlnuomnorokpoformslswnnljspjrmujjnkplnoqprrsxfggolonnujlnhwlnwjswlquqomldjsqnhunhcilolpnyruddorqjphfpkyqomttrnlkulxrugsummftnqqjke|vkimujokokniomwnlilnhtttumnpqjvrkwqpmtrerrkrnigtkmpmkpmooinnrwmonilrmiporgammknohrkh_nllnpq}sitlfqmjnuijpmhlsurgxkj`xkuflidnoeipprlmthklsmmphjoopnqrfunjoijks{ilhokinxqiqoxipumrerlmk|ukbstspokifgnfmkmkkmsrmuhffqosgkrkgs}soohkoxjxdo}mcdUtxna}i^mebsnnyurpgsrXrWhzo|p|oPotGk`ie_himZhr_ZmufZfek_{d_mvqkaqdkdilfloxxZmkmcQo~nySvqQpbq]ly|Mrhn\oupx`{uYYm|UiVzgt``_mltfvh}r}jn]qm}_}]f_{xlb`zwttixujmiqd[bwQevuljnjnKrmampyqbll`{p]mqci]rsxxwhar}fuqyXlyoxwjhgremjcn`thW]piUg`}ablaprkxlq[legt}cnywopnwpsdTgsozghek`dZmsif{aq|_hcoc]vlknqkv^mmee~vrhrdsmssZZtZuhqehrfwjgzfom]{_jdvcbr_^slojb^hquqmktNouzdwmvnOz`otqxhwdp{qr|^myzbheznrgv[dmvchnn{vaYoc~Igqhlrwyseslch_sj{qR|`Yllgtibt}pPjmwemiydc}dgd{p[}}dq`SnrYlbyp`mogihkbmmbz[whclqrhctb\zUf}Ztu|ynzzzx]qfjsnkbmno|]mpZdaulvdzkogVk}nxsnnv`Yrrswccxs}ww\d_y|y\iehcQqyip}xlexu|_zWpksdbYiju_LzXeolnbjjgtov`qw{njlnm^oinzXlcidygrksqvp~jdvqcafuhdga^yac{|v`^rjxqvdhbkl\]gxhK_~ayYyhxl[njjzju`oqumqQXgoy~mnmfqsuqcom{xo}ptW{|vr^z`b}lbmorpydkXoijsWuMfnk|{WhvaaU~lngZhirzdWgd|q\fYdphkol]nj}jslaYp{[o~hpSwwno]xmwxHkkmhhi{dm{txem~sfkyk~ylkrnrly\ljlfj{u[aysZwxdgpldifdl]~b{ofomhjukntjenijkl]rqdjvsrt]}bvey~jokXnerjUr{dWwoywp\xmrln\]teboYa}hzxnlts{wkdfdivffjllfrsb~y~qoyunpry|dmkhqh}khuujvr}aeepvwl_rm_k^Zvyrwdbmesljh\nmotnstafhWm^sinqpsvrmmjs`omt|pq{t[uv[qutXTzxwgtVmlhldphwt`krW\xzt}wddrhfx~nnp|eeuxo[vquzm|rj_wpwx|RwgpgcOb}}r|lni`k\~hmlpdpmwmnjel_gnkzstpporp[bzcV}_oeneqjgp^sfmw~i}`nfu^kj}tRi|mowdouadsk[Ovzivlfzlhwcwriq{`\tnfch|jsklUktj{nexU|nUslWrgvhp}_jsOab{xptkqvugjrdavofp{lcegiv~p]nUaqo~nn~kmrbtgyxvu|q~u`d~wfrk~ix}otvhaohixyXr|sdunzpTe^xy~okkp[e{\jxy}SrWsxwR{`ev~akbdmrghj^hb^bm}ewU`upn}vKjqjzsx{WZjgkqho{gsp\`kUlq}VsPkTw]xskfw\z~estlofedjmjVmg}diewbrj|pumWgblwmpoexejw[vv[_f}SmtnsiuYpicgp_rjg}{xxribp}m}ivkji^liUdsiobea}fxVsylif~eg\o{drehLfvxrzh\q]rjudkQdwdgl`jiuokgat^{Zpsv}]oqzyvn~pluYuTsjrtn]iwzsm_{v}p\wo[mhOuQx|nd[nOb~l\iuhyx[nh]_pepnfcqkkfx`bjlhm]u{}kfvni_zj|luorjqx]qkXzntlfrvZVde`ymmteebomPLqz`oVbMxbXmVil^Wwv_q|zm\nnxwnuscVhjbN{`\bn~iaZdajl{enivlhqdfvu~q_q]noiZbo^ctznim`j|me`rhtQa^kqrVujOmqlilvrx]jnahyrsn}abxm~xctsW{xU[ljThjpjoarauZtHsrpegxg^ToYt^`fjw_~dnsbcq}iccccdzbibbklqbfRwplqumlQ|xl`lelwsmpug~`yjpYnxpjmh{wqtvvXqwf{ka}\oxydvvXaaZvkzbuoiwn}{wqiRuZsl|iuzdmjd_|krwf^ct_o[kcW]ngdq\zW`nnjZmrq]lyfveu{~uqniyxljxlsbamdTomVkkfdzhhj|wugXge`lsf}atlehi|~~Zjhsk\gkoZmq\xq_sbloyij_dyyznXqvsu[otr{idlk|[~m|sqVgiib|aofj`istomx]pPs}tegj}{uqeuowyrtlZkngjsxYaY|lw^xqhkjsXntxkbTYi]]pZ|syrsoqo^\~g}bqwmcnliuno}gkjwp}bj}badxknz~\~ptw_xpQgnsjjcbpw[or]fkpf`_=fs\wrl}nqnueai^Ptt\ozmmwltqZizmXhko[tttvrYzvwvsfbhwtfotetj_[{sqahnws_{hcfpiUtryidjeayqp\beZgcvjsbsf^_j|zg}vrxus{frmofiTdfkch{`qY{iot]oepcnfo^aaewa[{h_RmpbhjujkrbupjX~ylxo}bfof}gZfnq~fxvy{j`empgtopvqmmkjzkmgeysPcj|^knaxdcwuiyz}jkplfq~qqp~xximefltyhll\or`Swhjccm|_e}nolh^fahkc~u`r[upXp\eekl]ajymj|w}e_|^gb`tgo\hYv\]\uv_jretrWmadtnhy[ymov~P}spbqojbd`ij}`kih]_yhqh}qugd|efhaedbarufm_n]cxqioa_tk{bY`qUh|wnmXYcPnosqmP\p_hvjm~yyus]Etqwwo|qq}\scbtrkdRmtrsYyniNhkw`q{psrsTg}oqpumdhbsxeWsg`gy]mpd~_`X[sqtfxqywpelVqh|nv]llcskxnkqzat|m\liyh{e;WlqUXsqstltgdYVo[teP^nw|ikvhvgbpqlvbh_}q|g{g`ens_`Qr_qltsg\ufR{y`ts^wjymvzv|saqtlabj^g^_ijv{rWql]sydknrCgatld|gkzqoxlf^czlwf}uxnZ_Nsdftvb~h|~Thx}imn\Sya|a_j^~xt}vl`sUwoqnptpofmakabMxgsocbtgtYohxusR_idkhnsub{mxno`x|dtjqvukX_gg`o_Mwgj]l{kzqjyflasxupts^hjctnynjazwdXlty~n_lj[izjqZszlj\cvpkkkxrvbusdduaTipdvynhyxwoly]`ubaigxxtsvsyyrvq_xoXiqty{ee}dmuvo~ypann_tXdkjhuskUQjkj}_s{]}wryqthxgf{Y}{sf`oZZqhyhpc~uPd}uolmapf|e|qr_xbpd}keer`uxw^qwpjkuiivohzvcoohmYneoshhnYpda\g~ajdoazamsv]}cofl}thrjey[ylyjhqce{nudak|nwif^eoetn\mrwa`dprsiuhUphsuq~[Zmoxjsypb~~vYWehuedknuWqprfrp^ixjSw]rprh\utjtunwye[fpXcts|n|ftuufzP|{ivktgixg}U~_penxmfbJ|wtucruk\}]k{joyzflngTqrj|ggiWym_v^nfqdzjvfyg~U|mcezkXgXft]dwluft|mmi`vljyzeKo]}ssq~ifay~q{ipfYrl}oiahj{azscsgqPexdy|zecex\smm|e|k]awjb~nUh\iwgw{|witq_kgjkZmiSZuee}RlsodZqfnjs]smhkVWlihhf}ohdlk_}sl}{]musuj_X_tkukqvnveraigl}myp[ysaaprruxkquvitfnjel[`ajqprapsVSmsbzTmrg|fvecm^vgydpwslp{mW_rYsacc~qksitqujzzsjdwd\fjovxgsqwpqiohqhsak~x|lqiescmzh_n|huldwtqs\aaskz{ybuqjmydzlkXpdmg`meqyfmSo`}|ps{ppc}nzapQdshw}yYkknfxtcougs|}[jgaqsso~ut|Wkdhwhsmlt_uviZhi~szkc[sdaniwidg{o^~WlycmbwmuqiaWx^vduytn}_zlPicyt|i`{bW[pieoruVpgtyxh]vgtxa]zuhg~wov{fov]epqxpprK~ltriuhrgrcKx{\xmjksi~owq[_zgdsmlrVnogprk~kjuhst[dguphmrftvowUvsjcz`rmwrrjqukNf|Xojn_poe_svqlq_\qjcups_ttl]gwbsbuxjw]p`xi|yUjmrf}ioxoamnnxyqn|e}ongmoyvswl}cp|vub{oslfnk{tsq~zmvccjfo}goxsWioqkjuj\jlmfqlzpiqgxkonnvlxiw\_ijuawtxtsjXmepsjnks|ufsUoosSZpdwvencL{kyqogfpflfyic}l^ovcposx{Wxu~}zgr^ipc_bb`cojmpd^omi`Y_yhdsuqhh~s}plqimmWajsorpgo}kpvntsa}}jbrxgmrmlsitzcfss`jliz|n\n}z]~xdPhcwbRq[fdseud{uuuVw{tjqw^iez^[z^_rlnrgg\~lsjUZzvOd|mimfl{vVl{ofi|oaodwwlqirjr[\a_uhqzhvxa^vtbs}urg}gbDyjrn`ojeOerti|pmvuiqMcmtqla~vo`kqgo\d~\doiylnXynscjbpcfkk}rnyUglcyVRloy^sjhlzkwoU{up]r^|kvf{gjXxxsnjegtW{gkzlnl]wuktS|`okhdqnv~v^]itllowskc|T|}qYbfUhsnVYZvv~\wxwlfc]l_r{itUvegSuvaxzpepmg_krXxdr~tydqmohezqkqv_rwmrY`}xkk{Qdgml~e}sO]{`uir|vkftUqrffhbgzbx|jxtczRjunQac\zvZf_gx~^nsZyZuxf]nllp|rlV{p_dhijq~jesgJpzhgun[n{woHjmc`rdc]fujcctsxijveqgvUd~ck{o}kg|^]jfluzyt^_w|u\kQnlsrf`i}OXebqxcdlmYvklwvsVwqctkWvque`yxjy_trVisl|pm}ozb~uR]vxf_uhlgesV_mvflprSq`_y~wncihlk}wxgYmhessumoaoldzsyTjfs{fqjem|rpvubQwpp{ElSidxblx}qvx]fTrWkZxjlvicgph^oljWuollgl{ik`qshviHpwmnUuYuNwpu_cZpXV~affohne|p_z_WMqcGcyNXLvORnkwdgcq`qOut|uQofog_{UaWWe^in|mgkmpjen]rh^`k[wdw~eUiqphikD|x^lw{wSf^wlSid[VigfmgtudiVvf{wqLQcrsp`[hn_llbnsq[rxgmdfL[sesy]d~hcXRTc[aknxqjndqo|_fem{vaxciyrc{M_gSsxmthnkorZincucxd`sylyeyqtufaso\u|cmptrumo~otmp~l~xjepmu|cbny}eXUbrl^p{zyuo`~|ev\m{uoRh|pj_sxWngoy^z5cdh\ewlkqhWw[a\i}\Wmcctu}b{eh]qdjjyabgN`yracptkkt`htumjx[pq|yqwyjxylv~eswziedyuazltfklw]lybbk}fncaqr_U^Vmswuug^`kijVlhnj_vw|oifqbjgvypdtmes}umjrdf]kf[ls~hwJvmtjdpunednrrxcrZcsamxfvjvpq{wuZdfp^wr{\yzurdWrc`p{w_YfytkfkkjgPrycjwgRu}g\an[iClX~qstjsz^eqefnqbhi{Sucop|iOxlvapRlgVynbqzzqvYvhosrlnvjwjref||xh[dSjdt{mk`_^pacfweoyjj|npqqyqacwgeycxpz^jeyh_s|spospj|t{fjiwrmtioliqXg\t|qzwvm{mrt`vjvnfwffu~hqqa{eupkph|quuSja~a`jXmamFq]edphiwfgg]kjrsuodk}zUrpdureUj~okhmt`gdw\tvs}\lizgvt}ksikgvggqqWrjnng]xc_dlpjdf{yjn|f^vjm_{qmqghz{qus\vktop`mWl{wwziqokroioqZkcm\luqwdp|cjVwmbskbciujg|bqR{fUhsncvqnQzkzoUyheoidecvm[dt|ecxuplz}mnga]knl~evky`x{{btkhhngn{Mrvps_ossgq^}[jea_p~et|jt~rio|gj|nMazkxoBuYuxjfzsim[y|_xSuf~gl}gd^dcw_xosiz\}xmnXzu[gaqh{Zxa{TrZ[|sbcjajiicfSg][qnyccokTnsp|H[w}zbk`rain}jnevmsbvhgflfqNa`xWk}{ryi~pniwnYUwu}nhyhfN[xm{||zui^dtzovett}tnf}fisq~mVnr]fso\ronZqlwt_szfezqllYaytbXoi]gfbper{iyf{in{xjgjSwmwjyZuo}Uv`^H]fubur}dwlZzZK|atgSQcn_xhgur]rfvtgs\dhnsa^`hqxgjnihyjltiorcgnsekz~dh]{Uaoo`R``tnUisXneyhalJwrPqygfl]osqel~[zv{lr\lly`_ayi~ft~skwt^sqgVkhdXmvabIwxP~dvs]\xM\mP}VrpZsvlfqck|g{mkcu_zughruS}^}wuuXYw^zxpwipOba}ufew{rmgspyxfcqar`xeu`onypXhxjhllarob`mfwcao]~d^orabqg{y|b`{oNpl`jtsmcfklhsopbmnssQp`rzqc}owswoy{l[_lvrmWmxvilojSf{_rakVtxrxcoy_sipmyvil\q{ezmjmztf~th~[po{ia^rc{Xphd}gkn{usrYoxctb[bwxqnx`Uwp[c\jkrwc`xncputaoor^wm|`ben`dwipd]kf_tSXskerrfnlktpYxhephsQkvne|mxe_|wednkuOuy_^mcof|vkknaRz|harcc`hhmhc\djugyxsbnk{}qomk^zcmpor\_gvgP`pmjluecfr[|w`qeqqqisckophpqdyulr^Utl\u_exnhk`oTh}iZz\vfYfkkq|lcwza`o|cIkrtshi{jlzyf_upYkg|VXdZ{ozfgzwsbvsmdmoSr{weyp[rtsuflkmQhmb}o}idZ]rj_]wbsxU{mam}~f`ecgnc[kbfaj{bsuvzk]iid|utWdrdihekxesfrzwifp`plVjhvj~lbiIw\mn~kjihdsmp}}pe{|XmYr{ixi^v{us~xtJb_h\xjejveoQh^kiodn[jc[hfgYhirIkq|^cnd~vqepmgmorP`Vkqmei~ohdnhu]n^tbkbli^nxexa]{iio_tmslgo~ihw_rg|nv[X|z`Wz{{}dhs^Zbb{jpvl]Vedw\pilavJup|towijhygZWzah\Yeom~i|stwlxgYpWsiPz^jNuHp]td^jywfaExnQca]rcdL|i^]j{yX_utjoxXzUTqdZk[kb[xckn_mmiozvgrqwq}d{`cH]mwlhiWe~udr~^j}xzvscb}yqhttqqztyk{nijq{i|XXmYsicfjkkeZvlyVgw^~a|^oo^ezhaac{{g\{jj`qk~Y|mcy{|y_xesnuorebhotoPNkfXtri_}oz|gj_rkrmfsdfVZhvbpsrtbmu~Uylp^k]f\Vu~tvmiesoSpf|zhogm{kelytqppww{{ph|tSiepzd`rgznoomxrsnfiTf}p]mpiosYo~dqu`yoqOf~usxzgk_M~qvzr~op\msrekTji~q~vmbrb|qdvpsi~excoYn]Pjj}Zipneimh^k|bakbsyi``^h~rqxltdZjokl}wsqcXvrwdc}uunqxwkjmjahJsqiadqtgmnuv|vwnrdiqn}ujYjin_mi|csxsnvZregc_Zhw}unduk~_efjo^jxiafukPVl~iwzif~X}yj}kqTYaTloWrWd`iTwwoVqbU{bmrzxi^kjsZt{[fstkifcnwvxQiZ{czTmixb~dg|it|ueOx_Vjdl}]Zhavkh~dhsqvk_c`j{s}hZtinf~]gjfsusqbi\y\c_vvoaylXojVrgw{h{cysjU\b`yo}mpwahc`kvfpdwp|Ur}mpSjlkzjpxsz_hfaad_rup_x}g|rtpkIhtZgubtgTQ{}p`Zql]olsj_mgkoiqUuywmv`n{jxwytqbhwwNjxtmow}|krt_oaZjdxecrnx~ijd]Zrwvw_aZtcyxwwnhoaogfodkyptymte|m]wPrb|inbphptUto}]bxcmboj`p{yingaepix|doq}Zgsx[\i`eghbzoz[_itanz^mg[uoa`bL~uQcncfivwg`]x}fbplktrjvznplkdmXbxm|eo|fiy\eXoe]{sddolRap~Tf}sveiH{[qeps|^|iss`bwqsiqpo^hcgVllropl|{ihyooxxrQaz|qfyrs^kkwpzeuYlte`cx{{hemljTjPrfpqa^qt_vlnsyhxjgfw~XeyQj}t\uhptuqdfhcljgXhvmla|rp[}`atgdpioovnib{Zvhg`gz`uvxwjZUf^Xuch^bhXk{ilihsqgwrxrqzsrg^glljjjgpiihn~rb}j_^scnbgpbYblrmrzr^fs{syzhho^|oyeq{~okirl|jomfRdqurgYufyei_XdxpeVektkwbtkpwu~Y}ldrgkxcmms_f{lo][kfyXn\[fcyddil|hqj\\ntqni[v[w\}tWmq]XjxjEzbO_j[tucRmdknbl{ramsbuirjcnrUwxwqgxvjoro_soilkk]hrdli}ssqfzkbhct`yfypyv~_^ttfujjVxuzjlwjguonxl}ifzn~`rzf}s|yt_vtxh`sWbqmfr~jpupqtqi[Zya}x|tdnfd}Qy}nfmchbt~uteJe{cnpoyv{aeoYuuqpkeiyw[kyc]~nVdeltesheow~kjmsapfw^uq}{|rj|u{jnb][mquaqgZaveqakggp~}hjS`mknrfneleVfppyqv{ppspxsipu:njz}_pnmjs`lfdYgvugnljs\nu}cmpjrqnr|{cifw`fs]yYtuh\nmggXysonyL`gxk`ls}hp^RjbTlm]i}giqvnphf{Ter{}tpVfilgsZbv|aul{`twVreoplqbe~njlst`bupmilzxX`izue`mow~TXvf|oetx~eq]vttgjurr[}|`nsciZbbuWtoi{ufgsuwm^osmyrrre}j|chegqgcl\zipe|oYboza|miswpxsZd]lok^eliitud^yu|vbyuapbqbze|kfvwnxub{st]r]vnmodg[oX~kd}ymvvs[coxt~^p{faaqe~aqvdmynwuhzyxkrb^fmxtu~cncxn]knL\iy`h]h_jdjgrtprlZuv`eitbg\ijhffllcz`mZihhvutlzksUifUrmv}r`zh__szmzzqpqp~~soul_fe[{napVjuoeomrxpuvodm{r|zpPq{Wtqsmvu[lvmhk_}Ylrmixtwyrwouvwu{nd{PVRemS~rljf{vh|ddtb^pwamvvogmq}umhSck^mwojvqttruq{pi[pqOxV]ovqvctW[eUNyuo{Ufgl{cabkyayvmqpvpncgy|Zd}m`rpsxethrroq^zlhSWV[ibmcmt{lowntnpnv}j_lQv[xf}q~hyvhnylhjvmdrvds{`ftr^sqmsiXelzga_ticssj^q|gorfVljomrqvzv]{mtrllbf{yItn^eu_[l`jelccsjhkrxegqikTwip}}r{yocUp|]|b[zsmXpfvs]ljkcpa[kqpwdv``xq`kgsyxiZpgYey]wftaqejqkabuh\igwhmXjiVbQsrtmel_|Vft^gkpuvlkSnmdksg~Wt[djkfqnjbtptuXqjrwod{kVi|kk]QcmoetWqZpjhgpn{`~alc[fvltv_^_ifflglfajkq]xzexv{jdkUoihnslW~bt{oWr[jkZcf[uqmy`YvwXkoPvp^tgjYrbnsgrehzs^Zyswa`XqZsiidvmYmTfY\cj]oTdxpxexzfhwfyvjnhjq]rU`WmkpdwpdnrRgslig}yz\wrTo_zsp`gZ{sncaxoem]lprd^wnvlWWhn]a}vhmrRiUwklolwqeljnje~kUhibj}baqsYtu`vt^mhhmwkroou{{mqkprf`gohlTXp|ypjZw\grzemdfqyjtjtqD_iffxwhszi{_wwbogpvZkydU_chTcoe\Vsyq_|deh?x}bps{|kkvhwzb`dcehJhhv`plgqmdzzti[eiz~gWfunyxep}rhxxlk]DfZzkndlixhzoiPQcZVOhjgc}ejW]att`kimpxgalSpzVWjimtys]lzkvCztqqwlaXoep[lNM\{~{{pnsax]x|wfzz[W_oqhmi`zkmO\i^mhUWtykypi`Mkv]nsczeJcf|nd{\koh\qYivtXel]ehjfpZjlrgur`\ox|bYtflx_k|l|uvqligqb{Ir`vkumfW~~bit^LqsvoficczthSadomvZlik^Ufgy{oh`fv[h{_\~Wphjt^nsYgejeazYnzkyg]q~ywqniksakrnf|ll|ror[uuM]t_oiTlqfhoxVl_sxnqhk^m}gev~obj|pcnpo_o{jXijkth]vtxz_]t{vw^\zocclhS\y^meg{fs`t}ZR^wrmz_s`nnvxcrvdgqkfxmdeTEprXy|hkgeoes{jxmlcxrw^jabxYmz^qsqkk|bcz]ldevwgt~PlmbqVS]~busl{j~jwz}tWksh{witlpooiiWozojt]n~g^nmjzrjerzstel_]c\bmlxavizubmjouww`~z_bmpWytktXmseuktggmxrLQnhym\xbeXriy_rco|tl|i`niaaevwlrv_Yuxdu{j}roygwdtooql\hr}jQgaomk`l|ybk}oYu~dhxj`Tk}Srwu_kdasxXsogcnxjibqnml}W}]kmpevhh|rSdngnhpqhha_][Wko_dU]Fbdbdcwvmdtpouwwooah}mq_m`jbZrYo}czkkkfwkjipb|bwgwzekevn}~poPrnYpwlctidYr`iizk|jhmhh`rWw`torllnkwaVpvhU|sricflseujqgs^hgok~hmkrqwupb^w}drYzdeqZfrznx`faitwbk_uge{jwdZ}fpWxvhwkgZqUyrdtasobnY}WlCgmcviksxfgjfoyZlw{UqlohVrlj`Y_vTn[eXnbslejqqurnqunZrjqlqpyfo}wiul~mm]pk{sl|Q\vuvaVkzj~ksc{eh\]{ikbod\\tbipj_nsofsfxy{^}z`jgTrk^_fmbqwVpsp\yekn_qwvehuf|p~t_|Yn{~Zijfdtnpqtye]{grvlplcqdovbgz[tcqbf_np^w_foWtdwtvXssn{jUYwy^lTomqlgm_lc]c_evmXzimg]d{lkzr}am`gg~fregtbfq{csvlxpnkoKkiz^qqajqp\bUskj{hzYqegZhpunumq~iSmU]\wa\rWOP\osdoq^Twuspjqqkdjtrpjscabhphtyqhffl}nim_\rfw}aco_wvoXfhrZj_ndq_[_QsRbnzipqsiuNlax_gvw~sgnksufphre\gmocpmtvhnYyyxNgT]hsihtwSlt{mfczvbjkt`iV{olVquqbul|wwvkc\t}mpwksnkpkaq~en}e{om`Xy^]j`f_syubmnV`tw^ecunmayziqybymcdirofm{ip{f~zkd{h_jcnvbkkprok`rnviv`kcjbq_fuj_mLubr`Yqn`c{o}ljdb_|de|ivlwhmqmepc_kt{azyjefjibg{P\qZj\x~vjc{habhg~sTnymohUSwvf[qW`cx_tj~nrwz`jvtlNup\Yluj|p`qw]~ojvc~\e`h}Xzgcuz{feglpf}]hreadjo^v{Tveuni^btmwzj|SYqftouofdwwfmzszkmnrmhlz\xmkuq[{g~VWghmnlp\tgllhd^y}_xc^lb}w]pjzwjmlggoewflurtu\ckqepq_oW_ibvfSue[r\b]RlUsie`rjczh`mjomc``dz{ytv{gxi{_bkldnp^s{gdmolegttZo{yo]mumecy|th~r{veg`yd[bp]oc{kkrlasa|mUa`_`lyhg|lqrtouygkmkhfkeZvbyl~gnxbafje^elprllob{iiugicvVrqel}zsmR^tfu}ghyc\nXjtjgp_mpisd`Shedl~redv|lvuig~sevwjMUljZjn]^xl~dr]jaxm_msj{pwqehhZnax~rzjrkfnxm\ykmmolna}jw^l\etmkbtjzW{ler~hzj~ohjildiWeiirjj~`g]Sqm\k\`zGurbjlgcepzmogVfs{yerWtthw\gciJrQvq\t{Zrkr`hz|mmRZig_bLkjphy`yomee|~R\od`pcczhRgdzohhamwjxssnhcp]bPfquonQxgomcjcloflsWvccJmkmkdgovdnrg_Yj|eohe]x}lezawf[jlkgo^gYiaixd|rdpsggLjlvdvte{\lnfouc_xvecuttnxVWcZpcdpkggUntzaVP^w|gn~osmdq}eeufprZdkrcUhq|qpket]ttVt_p]v~tWxldfpmq^d^qVaT|ingZ|u{nfocsOwstnuxoXo^mxlmxeuglh|YysSxKrl|p|FatcWgkshr[^dLp]h^dqR~dtjjmo{cvldoji\epworsSctkmml|n^Of~dfepssa{WfpnpyaaleujigjZArW|v~rj_r_\}gx{j\wsxv}usdqky}f`obcamha|wVuuamjjhcdJw^tSnqzpwU\a{e`plwxjSxhep{otiLTPsgvUvakfzq~}{Zdt~z|rmrjewNZovj~jmMurd\eiuuiltlrM{vnh|bjgjqh`f^prhYrsTakli`he\XpemaykjmUm}hhq`biadlg]ucvs_fs|aeXm}\kw|r]releZhin_a``[xVxxvfnud[\ftUlu_sSferm^wwnRqmjlk~jn_vixkyiig[m~vjjoYl_kjYoalhmfspr`rtztocZIxKpzqefzhtvuoxUolg~ld}}Vrmvgha_]medlgqybWrjaffijWddnarsjSg{rocvsteqWgzrqj{o}bmvXzrs~cjWxczjrj|bapkxkdweupsbeyun}mrjqnhzasYxuhhvh{axskmltoptoun`nmn_^lSgulbbfjxn}xtYgofa~\nnr\lc[\zqk`bu{kwcao^zr|owatowjzYxoy]gVxnmwzvk\q^ujlfweegiwoihmlh]mu`~vjrtotxt|eunrgQ`fdwutbaoor\zpkxosqzas]urc{uRmcraqcb^Q]zu[k\ukzYqqxdyram]ixmjc`ze^fY{hiifzffzxwiRtbg}{ar~[EjvznvZO}hSkzhjgbpwi_taear_}rkqnlibmU\ntsflerWsdfe{f\pth\ndo_nw{^Zow[v[bfxyRv^eo\a{gdqt}T{{ZfffgkuqlrJzl|LigdQxvpofqgtbfmwiwlsry_hWm`}g[gsNZoYidmiwVomkncxq~i}{_K_tpvm_rkozaxmdjS]eZkvycemThldjljr^hmsglgXSlndoYyloqjlmfifrurkr~}ftodujbspklsez]ohzf`]|ujfz}hn]iVn`q|wye}iptrft`agol[}yvRfp{zlzqlydt\qssi|il~iv{XO]Qjtnk_hZqosvyivnwibpyYp}Zo|_~}{rgxt}u}|d}b{xqofmotpzmq~oh_aqomhwd~n[l`zktnVou]hb~uWkmlkqcpdpqb_^hlqlSao~nqlp]vlvdmdwdc|elldppy]`poayi|jopwboipcallob{w{hlqn_Xy\qcTpisrdnpXpdblgtxkroxk`lcfrbjkyKujbz~q_~lkvgidrs`ypjbzcun{pa\e]qSxnodqgOhjy{ny{nteauhjusw^gao}fypww||ju_oytWa]byciTg^zct_oovvlz{eiiuf[rpmlpsjvx{enp}{_n_zzwblrg`oZ{|idl~}lw~wyovficeixpx{ywgn{prn~zqfntmYvp~pe\{\ss_v]kvisfxwg`rmrq|~wcobnya}tlbsfi|qZnmafdi^{aetmqmfmjgW}as|}fufc}g\\u^]^PW]~teq}xhbbcdn^kamqce\tdtf}xWjlblr|Z{khYn^meu^kvq|zvX\jxnolmmzexes}kjazvl^|YbngcYa_~bwns~kfmhoalg}iY[jy}{fzpmgyrf\aXRsjr}pji^wUlxumznynyjdiwNjeivhychosi`o_mop^bzatpjxc|lbmeuxn[{mrui_sjisvrI^owm}]fdlc}dYg`ne_p}|}h}khm^vkrKzgna\q|mfgjKkb`}ielp|sU|mv~}r}rzdmy]_qt|wsSenPvyXrwk`okwuomnku~f`m|Nxq{uwpzvqrrgqoo~acvadoth_r`osuf{fqcz_xxduhloznsRgowf[kVjbhcv[hli}srteYg|{dsjZ|kj|arpykymgyrmgoohscbpnjig`fijlfk~fkp{tzm}mtw`qxbqpm`askyrqrxkytsoiddcjXagels}qtysmenjgr^emTgfoekxuYrY]xGwm||wq{lbpr|cevgimmouXxrJ||vhonVixduowm{v}?`ZZl|sgThhzdmxt~^lxmjd_jpep[inqVpf}`Rf`~irco]f_}zVWcYurerqoy\~wat^gavrClrg|BZrcfNe`|ykzszWqkxehydsYvZwxyWZbj\jtlr^xcjhs`llbkkgutubvyf_^gc{k~jsxgzezp\}~_}Ye`rktjz_~Xk|{x|w}xgKan}d~Zobk]umrgpsyjTp\jsl~fv|{preu_V_G}jXj{zaJhsdkq``]mizfqaskhkkuYXwxTlvgdlZuwpgjse\}he\bkhtsowk}vv|pllh`bowvkUto}Vpluvpi\VgRb^hhk`kwoYlTvqO_ab^gjbtImi|dvcV`t|sok{[cdidmx|goskcuqktztpnfgb~mjol^`kk~jndpuixt[dT{pZoZxvrbiuqZgvZirkyqma]fw]xjnwful^_khSnqynmgY~uifpifydx]{}mic\vncoOfyq\kyuplf\Uqripm{laef]YYd`j_ayyZjret^bcjkukTkhpfjZouqex`fwHxeAejpygscur_sxlbv{er]j]aWla_a]n\[st}yjUigV_dlvorr{}|qnp~v]cpwggeuxfqmkvobno|xQw|nva~xmTQ~zksdzi]~pm_dZ{{hb}fr_qgx|qpRbjsur|mnhtzxpzkOrK_`VI}cUpsrn[`iuaijtt|PnoliyImoxS{fPizui\vKcxevajtpsxQwnnwilb~owq|this~yo~uogdPecelqrnwy{Ym]y}_toh]j~fsay{febsoohYvqqofluih~vsk~PkarbcY{is|}cVX|giO~KncYexdvVcgsY[t|imfsehkuXz\lkfb[tw_YW~}jvjhigI`eg~QdqrWjawfaanke{mrvk\yVxzbetlnmuifvfrkl{\|lmozrXzfe~jghypyigglxkrftmS}udao}vxxqnpjzi_mcyb[gpmpg\kjY_mxvfkrfpdgvkdqPpaineugr[f\kd|uapckftgars^}dwfhvtnpg{p[yihqqmyjZynlwUuezdqvgk[hnylZWosvg_iqrhenpstpqifrVhp{rcy^\xf|hdkmpeWroreprjymiwqdr}`|naq~_hnUjlgjcUvjqez`d`ouj}kkoWs~uasgcxYr]~ugYtzmqpmzqppZqodwuklkfc[bl_p`}kwfbmgmf_sojmqsXzmbg{l_\kWtfpjxuy`p_{e]Z_ogw|jwt~kysobrtuvztdl\mXprrjvmRlngnmwlrzvfzdceuuw_ehuTOqgomeJpk||dxccp`slhjjf}pr\bgdqxxocopxqrk~edrvqpwntau[q{eqjppmhxwz^jgovx~w}|mhvI\aR{mnah{phamnvuj[wbd~dvyo}ziinxekjvxYtyw~zyiisxn|v~tp]lqgzeymgdr|{nmpmqnmjv]YluWstuwh~[fb`gtsYlsihjgk{tnxf_oZzt|kyzsq^dxxgno}u}fhenv^Yzsc}io_|i|vcrwcojrk[eUl[ei_p[qosklrmoSyX[b\Zvrtb]wrpyg_riogq`tjioezg~brpozclkjdgbrp`xmtqum{`icbmm~rjiuqnuuTj|fmbptxbyKbrjyjtnpzd|dxoe]kmmoiwqmvhqipzgvt`bgyxfhjm{ls^uph|hktrpqfkian{_}uwxjxjunjwgrwjtkkzrar]{W]ns|erfkmkvythyymwvde|wkmiqmmkty{]kyh[_f|vYhkekkles~y~u|]kxgpxzkzrlzhal~y|pQ}u[Wuri{dkcrbmoxyfhwnnunxb_axmzqqpWujirdut^nxsW}onlhpmopmvjlmz[XwcmrnZxkoif}zsrkwf|altu[bmnquxjgjaztdtsqsjshfoqnxoimvzkgkmvvht{n|l}szk~omv[[hflf{}mrvinusa|urubwofic}ryivx|hYyiwwzlktnugn\demlnbdtlwk]}th]V~t|xd\loit\d}Xrt_ZYqdmkfkeejxzmupjjY^ztj|orfprxl|nsj{sxesofsamfxx_qo`|vlTms{^fhkVzY]`kXa{w~k|areqpfqdfsyuhltn\r`^~sejvl`i{sx~rplrl[^htvjZriqxiimnwq}x]gfyzqjjxsmiahs|{upitgQoXjlusfaoln]h`iz^ck]p^jtxbphj}i|iszprz{bzvn}tcRZktuni~{^rsgxe|msslg^kngixlnr}llo`oknnz^ucq{vvwrOg}n^p[gqkrexibbg}pgjvp_yujhkniecwg\uv_nwtbfirnts|gy^hpyegxiosreT^rkmVjftjyhxblkdi|XguXx}ucojvudlejdpdsiismay\mcslzyqrrwccvjrqg`epm^Ovfq^]uzm}io|osXmogiJh]xlbjoxsmoscW}cmZ{zc]lr]fgrnomm~sWc{g~|ivsY|bnpfeygthdybcciiZsphYj^Xfzh~qjaivrii[ut}uZ{m{ejsVqtmcunpuqvkf~tqmnvv}{elo{dvu_zc{hizj|jtlaebX]huznginfVrenuchzn^z_v~ek{\qyqzr}bwumidroqmwddfdhhr}ldtjqvth{d|Lehk]lUd~nlk^_mqU_ucnlsku{{hgtgeTWuw`msumncuu}~SfmdjnnvyPx\nymelohj^cr|jz}]zesrzsg^zqawbkhy\uigPlnYfmpYcpfchyiqd_eevW{V\Sp_iUtYpfxw_bih{utefhnlis`m{[eaZv}~nepx~}stjldc|xmreyh\nqYnj_lrgvnenjlvlkwxwaqlfmp`tyql`~s|r]qsNswqy[bn]{ji{~wr~{kylql}qpr{{mlmvqnhc]SloUogjd\gkgxalld_q\gu]uwjdlujxxtY||z_tr}idsit]l^x^ds_ophcYTgtVmetf}zdunlvrkTx{l|hiiuenrz|{yvBJ^pmtmxrjgZbdq|mPkbip~cjp^cqxd{[Rfgdl`q[f[rnkoZuesqyutmmsdwh|uqRbabdhroVxbbv\jgp]{p{shrph]`wlc\z`Rok^mkmiXkSqkqh^ZzWmqpkaqcZgenmwukr^tPsvnlsqorwLxhrxhq]hpvrdnej\v~~bgmnQZr_adrVhkohqDs}_ybuQfb[[~^dq~z~kjPj|ar}hwak{nlraftkwSwx\kkn[lxaaKyxtq}\wobW_qu|rlkqsxxgssb}qg`vNUTqkuqsjvn\u{ytfz~s\ulqnUfsrqsqggb[wjvglrhYzsq]a]lTxl^Wm_tosm{lskhciqlt^nibtouzKQf~v|hfonweYdlgbbkqwpoPucyjxoXoU~k{f\rvlrCyyyN{yjjknuv{zaoZ\Pih]qM^umwdyp]t|hRf}m{{l}bjzfh[lnsspi|pTiz]plcrbtqxcYlizosmxfnf~`qylzym~{bspojlmzTghi{mkpcjkZmjU]wxpj`erjZalqvxqsthohcvjf|iipiuplrq`xzhoewg~hswbzpdXlXdhl`wtT}wYgmfr{_cjPjIx^lgbppmzVneq|sxqgk~jmqsOmetU[d^Yujdl^{xvxlq[Sau~erjEoos]g^cmPqg}|mWgxejy\yhvwydhuiWbqzUpfqlKasim_ukeTmasXadkl^f{b]nmerrrhedxlhm~`Yljx~\jbd`{jU{nccrfxrsv_q{`ePjmgaTrq]ikvq}tpwcsulsn_r]_otv|a[|mkxkzn~uii[ntuRwyy{mbkon`fOvrvcvh~n[y`uknjt_qiakocomhN`~]qe{vg\|rfvuhpoikcrPzhuyk~okkct`zkplpdmoaongjeVy^np~nl}{lUfZjgyZ}e]iLg\Nu|PhkhmrwgNv^M~~rgkn]pInpxswuPpgpvkVNzuqg[m~ogfg\J~Rlrnkmiyloelhooqfoomu{qivtpQv}nt^wyRq\smkowQu~rokpnsYi_vpn`il~~xhyf_rju^bbhjMW[Wkhv]bdzmoj]Yo~pfcoq{yusm{}_{w~ufmgXdekeoxrzXekj~`hmWsdewd`f^b|t{ueswUxup}xdm{`^cYludq[{{hdjnmrbr_wrlohtnUfcOevlW~qk[nof}cxZeqlrsOhx^wr]g{}buycuoPi}hqQatmotohcpZkuajkkftojo_sqioWsj`fZ[x]r`}uc`bjxmjUudqn{ieilRSw_{kK{zecbRtt]ZiQsej`Rb|m^eb]dktpa@yyrfovpo}|jekegeyjrhb\w|sicpyy~mk|huqsp[f|fn|kijorbi]SvmgjgZZwud`hz}nhotjfXruxifp`qhssmxf`pSps_ajotx~tnR]jp^jusnvUdlej}zovTcxlxw}jm{\ipburgxageccakzkoWimw`ylbomiSiRo{wW}|mhnnu~drmqyfvi~lsofooWrdsotewfiyn`ukhfexnpfurnaroh~slincylnjvpre}rqywr^ftyn}jerpqpswozoidhchPhu`|}jpYgjg^ytikrbt`ghVauifp_ib|}z|kikksxqkay\trTzeiqZleeuaunrclwxvdjpylsofkgkXvVgpidrwk{}fuhvtpWl}kuyhl}b][_ld`jir}ugZbbfrnqvwwwm}pznalrhqx|qk^dobbgznXdrWznrgoZerxnlmatxe|z~ar{kyqlrbgudidqskmxp]vxxgvxqialvpoejzmbzd[jlpnp}Zglmfmhakfo{olxl_}\miugoWzkihu~[lwWweoR~podVic|n|__nckmtq_`itl]_fesjbs`smezufq}vppz|c_y\evhsmos\hfsx`_p]]cn`oayhl_{wupYhjrqhd_{zvoj]Npijpbd\qiptmfjaN_tec~d`mmeloUk~|r}kyllnufj|lrogjnxmehqdZu]t~gNY_jpd`lkdnf|uuaYyqkjtg[dvcNxwg}Uzcmohfxpghbwnc~mwmivjiukj`cmn_jcYnvnqw{qaeugmihxzucs\jpl}lgciomcmsnLWUjNkstshcot{fxdWhtmdli^zidfqn}qzrbcYo]zrw{]uppci~c_w}mmhwxkG_gwmifYniolmZYX[_rvp[{ViOxwol|oinvrml{}lzhlrs_oggTc_a`y][jg}uqskokwsw~p~sy}iv}`ffegzHW\[[_jum__\bqyh]]wiJgveah`NlpneqvwwqavcptoShuQ_]qonjjmsojelkohlgsijewxsvjvoqRkLgqoezbmDgzom{ushmyhua}kv^pbrlk}rpuoa}ddtft`p^hq_jmjVolcnU~_n|pjhoh\dil_i^~relvq`bjlpSlmeaon|s[vgqoi`^gjk[qopzjashqkulFijgwb^mUpckrwVro}tBqqskzuy]MZyvgqlzkkoc|ll`cz[wk\rHphr\Ullz_trrwOtlgimd_rkkd]xoigjqchfibfeXxu~mlcl`rcaXybhidvE[|Noleqmegq~dkhuppihi_oagvekstqda\bxrldixpbUbaqprlrn}Ug\ccdqsehtlumcdt|esnurbxvt|Q[bj\}{l^UXzg|kmVad\y`sogrljvndja|scup]qhgr[alZefiwq|Sltvqln`rVm^ol[vvpzSsi{|ycslhZcmjqfh}zswkqapss|[dP|rXrh~v{uv]eqtbbxUhWj{Rnvgoem[ciUm|uZyim|ppop|_\Phpovk||k~|tykp~mxhfPeulxVjgfmalskNmdtr[cezcre_oZ|Fvuoc{~lpmj{}ibfybju`pgtjmiwtrsso~nj~rPmtitcvssli{inxe_ltctx|^h{hWjj{jzfstqexgwt_[_nlainlamqcjYnnKghQUopsreiJq|cpewiph}ooia`rif_ohz}s}xjod^okdnj}Nmajnyje`zqznvgzrjwi~odfbsquih^w{]g|`}mns~vyf`mkgV|r_ovkn`x_iwdbcgul^Zcqdpfaeswkrjlhydct~tb][pjfmcajkorn_jd|work1ku{cH|cligkcf|u_[nunkKavovryWxoykyjukio}ucsVqdtUqx_flfjn_ul[siookckinnV[sktpyfigqshpkhghlbfinc\`mmkz|lTlp_r]k|w}o_ovzknqueOt{sxc_ibb\kjo`krf}p{~|}cvmasyrr~geoaksds\mtiufpbv]{}k{bqauhai\jp~hzYa{kxjNdn_yqGwie^gnpppW|cu}x}jniqlfngmm]lqa^YvqZrfmf\omruwwpXqjtev~oOvqm_jZl~g~tskmmZhtdbcrgzKsu^iebftc[zvre|g|ef~txxkzv_ighkuppblb[pyk\ceg[hycpu`p~lej[sq{smjgomg_lstUsm`fyubdoZ}^l\D[e^^tiRYnwuhtvsnbx`zkfzqcksggs{w]blt{mlop]ymdjotonudhvlxdnrpo`svqocO`di~flitozlwrvhgomw{jugw|XVozlcebynWfosfzpywrEk]|}k^r`km~oip}jbswkvuv_heu^pOoey`]}ougzdk]rh{i]inN\{]qyxrmXf{|j\skqZo}ixbfvpvrafnbfbrdla~`t~sSv~MycutayQOiensVa}bmwvzizcxwZjpcmidwivkumsyl^y|piykkfodndpZtmtfPwhzodoqiglx^}Z}]xgdk`uXnmuyivm~u`qNv]rgqvfx}Ogghpbr_RmyZwhrhojRhjou{zQsndq|^o_uojuhZzusqwyuWZzr{m^jlhvooyajreyjojPslgjjyidrs{gzxo~hetxWw_`e`uvcd_jlwNfWvnrxzvg^m=eTygwSpzOs|_qer\fccYcj`y^nr}hrumH]puhM\t_dhmds]sgrhelxi^a{rLnVqZ|vZanordhhQnyhw|z~ug^mxXiir^iu[k_therv\iVetd~pcgkdzY_ky]][abczgbaxpqupek]euijkdbcip~u`asxeu{xO^bhhbdo}~uxxvywcvv}okhegvTapga^ogtt}ple_mg~btmh]zgnclUt|hs}d|g[oa|lhSh|\rrrydcmx]frck^TEd|zg~efjXmnl~daikkmude^dcfw_\_la\q\w}apaTciii{u}cndnd_btx[fqldwzfdo~mbj^e\smZlcopP~sbjnYYZgchy\joreztSzbwyokbT~`nf~fltczq`ult^n~tVvtyt`dTYqq\Oit|r^ocqis{oaae}xcua|aymdem]^nmztni~m\xmS{eiovspxbfiT^~Qw[jhxck[]d]cr{]pt}ol\c\oo\`Pvvqfsi^}jJpXqaWsjZpkk|vONon_xm_KkluifpRxr|txdzmu`mtuknc\pXgest`li^`]njcffrcwYtk|zb}po|[sVczoVRw{u`X|tj`xbl`b[zcw~hp}rqq\vY`hn_snVtstSfl]~b[Xo}bqillw_`h{uor}_]pjc]Zy\fsxYaXyhdcyahewygQgWyrrzjztb~p{xxzzercboosy}c|Zfp^nghkqnrw^a\lidlVsvrb_wpczrYf]v{fs[doatzuwph^mimkk|Qwuei}qujak{kdsi^hvmmYvdwxvkjuletstptsprayvz`^~tjf|cmdgk|fgv{qqn{gc\R[SridkWjiqdyyqroy_nunqpwtTxueqfurl}czdksjkdia|i]upsmk{ndpk`pwXgxgrgpjz[khpfxrVqwsktUai}ninlojvpg^fk\hgW]jvkTwqt`}u_osow`Tiiub_|ek|qsaljutohkrkotfpxq|bloycdtt|bjbunm`jtiqvgukbmf~m`ml^qhuepurWpgym{i`lgnypbx^lqcky\x^f{ykz}btnro`wct[\ixwwjxt|afb}ksismsjjnf\nwhsgwjopujgzzfxqhownUc`skXhod`krYt_qku}bwbehqX`vevhsRbnVbxnsce^ltzucY\dwqbvsthWztmdy}qtvuyolndp]~lvvmotU~zSkgiwSpTrnrphrwkvy_vstjmksf[zTyqc}XWdjjitknagnYvn_ilevg|{ur^}\sun]}plwV\lumvhk\[isnzvhoje]i^}g]erirtomZe|][nfuegzqsa_k~t~ko~zpoh{am|orcfgospnn{nf^~{cvapeqv~|~^t{tz\{g`r[\y`t]uqoj\}nhOisjkh|kubnctvgqpzmZsplsqtcep]~V`fk^`gcu]jx|aYzpamYnk|eijev{t`ttsdtxqzuxkcS`nh~lqiB|cktam[|]egmzshlrnf_ipxmZuu\pwdkp}Usjq[tpVUmggk}nsNuruppumUgsok{k^l_uwgl{_kZy_f^rua_j|lq~ghqobww`nmyjj`Wftqsnnp[oiWXdqnlsgp]^GswZm\zm\uWVjrcq_wChhkkl\csk`pj^mjmwljpaxuem^mxx{gjepod[wj[`qbjjZ_ulk~M_pqqbxCiZdcu_ummb^pp_rlyvUhflqdzjdqmPhniwsmsxxlqhwkydivXdgfe`{thkpqyhnsrjqYommn_pgfvnvewic_iomsxhygl}gYvv~bnito\gT]ivcopp_Kfh_{ttnx}wulmc|imihsfgi|qihmneweonhu^jwtnpixuugkv`anli_xjyp`l]tvw__~uw]s_qfzhksWiy\hyypsmPljgmpkYgnzvbrgpexicogrpolo^ycsh{jrYqwerdlzobxyn}bpjbsVmqkwdijuvtojuq{osm~srYddzm{n^ei|[vtxino_mdwjljrcmmtorrpdnftuurslofbvedXpwt^_oqzVga\eyveemhjqapbs{j{|uqj{zfh^m~hfvcy`tahw]mzrlh}u|jmqsjp`esZgr`vjcclpq\{exlxneoqtx]WriujtY{\mhy_gnz|Zgw`h}h_\jZked~oz}mh[kvtydzs`qdhdmjp\rsXdnby_qfsojakzmp\iYSC~CxdY[ovft}fmpb~{vet|x_v_Ytgllull{bunnlmv~zi\ugjhveaplHcrfa|Ydqjndmkp]tvfkqc{kAdUZ]falocjwi[^y~f_xlwV\Ynnbh[ca}et~sbwWcir`uooi|rh\ss~kuzpsTdZwk^rnvhaegvW|{{\\vq^eyr]kb}{gu]e|_]Uupueyitvimzm]fzlkXjnWgh_`krqfwktojKZvsrhtfx`fnry{elv|j~mjdn`tWfquuudggty~|qXfa~ulrm~}frnqwRxdduo\qzr^`ajwhdok~ixdbair_dfsXkhgdeniYiqZwQesp{|btnjbm|gmkq`NumielstkddsuxSnqjWmwiavtkXtnxmlRmmmpkaeci}ingtRo^~qhi^op|ftJ[fony}wk[yiqptrll{biKvq]lbnsot^{qltzmaiZ\cz}~{k|vpo{{g~LzjrzlVucqigOebdjy~liq~^lpqvuwhdqpn^mYp{e[}HrvdrVpijW]_qfx{Yi{Pigynskay{}vqdsijmikirda_yprpbsjtemtajv^ea|gh\|cmhmnd^{lsyprhttXt`|g|yi\xamoesbssdmnhs|c\d}rhkruypysg]vzyxlrm_wp{jpn^qszvvy~t|xuorhnvj^spwq~tunzkcOhwhk~qZppydnxfm\odq_Loilrlndl|qrf_owlt[tipvfz{wef{sqxofeeixvu}j_y|m`v`_xhu}y[fggw{mumewm\sinykqmoxuujuabguiztehY[{gZi{rfzwkr|xonpzgr`zsinYjnjnvsqjoFkfzi`xosftpxdjsofmhtowguwhxrmsfebvf{i[lxmwehcrzpnplb~aidujsrlnvjoZZr|qxthlmcmf\xfc^_ji||disu]Ssc]]x|n`kfujWaZalwnktneht}twnZtgq{yukcaxrprgY]rk~oZ{`nZpz_kR|fhpruq`{ij~prvf]otbww}lovs`Xqykpvpyolgort}ycd`rvdl~fe}io]bwbol_xtOguuooydmqzyz~}kyte_H`wV_p]fy}wuhw|`PwgY~Xmdw{p|Xlnjiwlpzeskgnif{rsfqH`Yijpbpqql}xz]Z[V|spnuVt[}auvifm^I]amgt``\nahiicjfvecW}lQfunZtUpb^R\mdlqcrisuluonnkXqayofe{evvTedcgr|yshtyepdt]i|utoqzuyhtzujfmgz`wcabjpe}am_jqkqs|y\upv{nujmrljiiixalxd\fvi\ziu|stT{x]wium|ybfk~lxx}lmXieWcfUgx}gjnceoiarjida]psfWhtqk\Zok~{ntfmaer{}tn}qtn}^wNfvxlexhspupr^orsclpyegwrkzdppjukixispeipwhdkbtwft}unRy~Zndp}{g~skmeJq^ywm~xXb[yi~V}mitrnujgndfT{Qmfhfrxzlyrokgh\qquhm|Xvlbls}fzm|qnfepr`qgshemQwrZhbqQbin`cm}Tiuym]uu]_irojdvptsfGbxv]wEdo[yh_Uh_qfq\sphjrTlxFzamfu|{evrwrixdd^fisssQd]rci_vcfl{||[nc`q\~tnrkiY^pkps_bf|s`_ygvNixhrroa{rknqth_gVUc\oJso]l^`qXbjf|Vhz{|~kskz}uitjthpsveugwgxqe_YstnypsXZnuj{j`gmjsfsgrpd|qszpj~spfbwljnkn{cohsxkeZe^|Yix_j\zng_nqjdl^`}w~ptt_~djdl\wY\mejwlizeiqk\eiaVya]p`|ydZeyn|hsv`g_c{djdXnpt{wi~hwmn`wn[fguifn{kaqkdvs\_{ipVoSho_^empymx~g`yo[]Qqhapjokj`oinbng[om{~c]zhX|hj`dMsxafmpcgdpc|g}s{seow_]QkboqboY]ioukmk]dkwS`b}J`pihiUk}cltl{cjzaalV|quhugbMJygnlc_ef_]`kpPwbwachlw`}n}hvroasnj|nxtxV]Ytg`Y\dpsgfv`zUltRavdahnU^`qXwY_RdaSrdhwwfozt{xlhpcdv`mcnoZikmkY_yokm}jiX_pojopfTbapodeXgnjr^w[cftm\uvkkwfpWJh~d]fZswj{nbpznfrc_kpwtk`sbfzh{mu[\^|frseZmuHzyo}rqzvQjxuwumcoenmasdivuu_ycdfnpgbtlntra`iaeapxqaUa{ktoZr^qgncefw\~ybrnravymbmkg}eioizf{grlhWld}{\~sm]^`fhhcgjkjpun`xjr\s\zqwkosmknvi|YjHHsjilglwu^neyWbhgjvx[`[l|pkruenddcqbgcia}noeyhv{g_p`gpk\i_org|rizgUkSfj_][fgm{t[U_feywecr^gdWstjr{n}sdpgcWqvjgr}Uara[uulcnqmdpotvxefarojlYectr|f|~poRvy~h[czb\ng~]jmvla`qtrxW}uuia{PqktZiuifwq}xujl|hf|_Y`nn}eicqwlsbdo~nruryqggzjmgbffdxe}due`kKxrW|dcgvrYg_qeMapta\vg]jfbfodqnjnnazkesk^\drjzzwuycfi}iwxys^p|Yq|kmxnmUsuk[jeu~qrfmapxqsLocsgpirkdcxzrzimj_^\p]gvXYvxrjjw~fxpf^reyvyGxrm_XlyooinlYichldXvppk{]shmjzuyamve_uco}elbnra`qtqnxkh{gb_|fa^gaydoolivaap`e[oXhy_dvl}wpgU^ljnigWxcu~zjmvmnikejdih^h\viYufcspmnagmehgsds]ck_{kxa]v|lku`}kvth}fellsg|nirxWo}Sz}kc^oVyv{l|butmnhhmk`vnrrzemqyrV}mii~un`rqu|tkgMvi}}gol{jxizhyax_kpzyWzbaaf~r_mai^igpojw_x_|hmgfxiodufp_m}sxcws{s}o{bhjLjmzqvgpwfvpuWfqazr~vnepvkuhluomhlxkibrhrq^xc{sqnZp|acrciv{zwqtnmkaqhu}`g`fj]gvtgbhwy_hywtopn^~zkgq}oyvxkUs^l{pb\]ezdxm[fvwdul|xqmqWomsYfwsTupepn]zmkXlognpkzQnu{eco}|mio|}mxhh_bu`{Lq`yc{iofgrs{dpskpsby{^UennZyjre}u{inchyxmwoqoiqprzgdOawumdep{i\xuXj^}`mp[fc}_~{omogg_ltcchn|Y`wgwneMnshmxw|`dPqssrytamqkhpskl~dlmik{nx|`qyowsuug]yocolfmzyVVYhjps~v~istctw{mwmvm|fzkgvbwk}txksgV{ftk~wipyjruip{ipsd[n}ph{l|v`npt[nwigrdcs]p}p``mmvNiegovkpnvwqkmmyw^eoXyX~}pfgXg]`xlchTRbwdaqvfwxdmtvnyq\ilsnhdxurvtldgx`rvmkbY]jewtU]dfzQqyn}pyh_llvmy]jbxu`ydxEuubuqgffi~eYQjl]bf\sq[t[ksbXjno{i\zt|ymrf^hmS]TUbakgn]]bckmjf{rlshfzttkkyouxwklboxmpashaqjPou~NgfjR~yfcdp}U]tiXQkqlp~pgdcl\unkmce]lowa_roYyFqu`sgn`coi^YOudri^pu|ytexWzffsfxlcvhenzZSy]nXs_frYyjsjtwmZk_{rfzZ]IcfrpliqV}imV|nfsgaenwWf]o|smsaH`d~{y]zlzbpgiQey[blaYq]mP[TcWvn\~hR[dd_|eyt^k`dchWmqjpdfjlh`tnmjthanyw}vzRcuhj_[jfsw`fvaZb]uchn~sfax^rlc\hdZig`sWzqq}e]|\dynj]skun}xfwuuX`X{nmpowpocqVw~qya^w~ngnkwqq[qn~levkxokh{o^dxThZe^hvnpsuzmu_cmnk}ntbe|h~ypjiqjosjomsp|nrhw^dvsszeuXy~mrwyov~pkx|^tdissg_ecnt\wsnr|ybq`kngvdfbg{i`y\naRbxyd_~rv~_a]bhghgjrllmbtLtZ~[dvwolhtTuerrov_U\cl[jrks]qlyuiWYxt`gn}bxrdnvnlIfqu_fjWuwqcY}evmi~lZlv]grzsvkn}syliwWfyUwdYvjdxki\}^kvxr\vYn^snXkutjckihXBkrSt_OQlueZsfhbic^rx_u`tdjnk]guagjleoxhnlm{}gkeSnsd|t]tgwg|otgazlt}vljxxepen~^z~k[pvwa{^y_YdqgwstbXfPkjgftjuxlpoqtwsdhvqklpysnhpVluhq~h`h\w_spktyjef[sqMGeahpifyp{][pxYttdvlg{oci}ykxkcrtqogctojp^j^Yu~udO\f]dmcjqe}l]wkpk]jlrz]n~q{``lqsi}uhy]nioky]|~puglp}odazq^j|\pk[aivhb\\t_Yhnrru|iy{pYfl|rddn~ygdvbjPw_nobkztqlzxeivyHvqqsyfjkbpxhrmz}fk]vqnmT}dmXb}xeq}vvlonjafqhqae|~Wtdsatjhc}nd{{cfcx}ogYmc|vrvhpWlYi_~lkp[gsx`yZ|\~kert{kuokpjekw{[eZzunYeqp^ob]nvvYyem{Vm`gxcjrL[ZphpfnHth]eanmPwjn\zgpqf^fnl~p^^iukrswnKfykrrvrmjRss~xydlpU{xcpsUw~ieienyn[v~iwqSYyqiusmaabssZ}lipntq^}ml_swk}fV[dhpr]|DUh\qreV~\r[byrkor~igoub{b|lmnzzTjvk~Mun`{knk~disnxxffmskW`yvxe~pXaSi`lqut~orkhefuxxpmk`lqXr\ioXvvjwesqshu{qmh`bgkmm^rnRr`gz\{musttki^mwe`j`twmqzkhbehmf{cjtxzkfpmllhbw|}fnl{YbqThnslwftpZ_[Yhajn\eo||sYji{tXahx|lWakvvr\xtmry|sm`qvgx~|o`ajobktf\YdkmoUvfgfj}_fXvwlo``jj[kktqcthtx~kStbz~\eeh^V`jofjozonvlrQqu_Wibeluqrlxv}xh\l[qrenhiec^eliK~olrq]oXuYyq}uxxlu{hou`\efakZt_xt~bcquapurpezmkqgi`ozudgjcvk~bjoib_zib[ll`ogyq\bvuvjktosvbuNpeant`koli_mopjknfjmgikxN^Nryvb\Qn|`s[bhauv`xwlaoXnam_dfmoyjmnuwe~htcbaYayZSjp_sjssf|wxZjvj]~fmqbxc{dwa|^``Vd\ga\xms`wiolj[]p}wlQsc^rhnyhqn}qqb{WfksnyrlofqinfXtjmu[^sxU}[P|wpuHtLVHnumobZ\pu}Vl[bkl]uphcyslagjhnxxonpYuxkunhftY~stglzumw`bZifjwhnk^jn`{lbrmmkfqimnnqw{tmzpzy^~q}v[nfvrmdrglTfqzlbec`sid\_fxxf`pthTqurgghlh`azkdftcmL^p\d}zxub{sUcYfh[sqphv[tj|qbytKtJwce`Yms~xfjaqbzv^vXndekjy[z}nijZgywzUk[fr{tak^{gtkekprcShpp{|i}rodkdg~bwoU}Tvlvgi[gp|n`hrigz`_xzfcuvizdyXkvc^ib~qouWgrVe`iUs_ozyd[lp_krpn^c\iqjQnbjdWo]kkYzjh^oZorf|l}eusoj]raZlemtbhloXmqw^qp]ngnvUvvr`sYuqv`Yjeqkdpm]jXj_eteU|xryPenmuwjlqfYdo}llg`gjt{zw{Wk}Szrajd|qotgmObmeosbdtsbptMv_yruymtxjk\sjMqnq\dr}zdYYe}ik}f`WX`hmhmuyhawinjsojwsfucrYhmh~yqlhq\`qd^mtx|fcd[k}gVcf|wmZpdc{uvqu]`ej|_ThiuXZmsjfiapfylpk^WcolbwyZ{dajmqfat{tvMzZrtuklbv~[xpbpleivldkyemwt\xejhfbkrbR{rxOfb{vv[_okoWUe}feH^jfewqtsl^]pvj]fiIwcHo]ofxoeuaed|fjku}envsbbt]ydnj^hXWsl_x`f_htZpmep|ei{lfjsiko{j_vdhhrZtmcmg|nmo_mf{p[}e`zp{l`bt~fzp{kWuXbyutzoi~id_fqp_sp`xs}~o|wd|jpggacnrrzWpge{ts{ezk}thfm}gcnpuqkd~wj^l_hrrdwg`f^tqjor^qf|[kaslmwh\ctcd`x{z\dvllgzpax}uyqeg}lhfm\pm|qsmnvmp`ixpjnmvwxnrn\maVgrjpc[eh|kfyeXzyfyyaqzy\owehpqm|k{el]vqqxas]m}V|hoxjrnrflupicsrzomv\pYh|swbgwjZ\wsmj^tzcjyubgql`fdye`dwlZfp}c`Pc\c_l_upbt}he`_mZjnvdyvpwYqilwiagp|Z|o{gzU~ew{|Tq|oz^Veyeyoec{}\{vfmo]_ojv_yD|p}arZZdthrm`gaqhogokdbjtbmseypgOjbuaothq~eptpqo~[n_pudhegk}c~^_Uq~TZsSkrzb_]roemfygrykjrOeb|goecJmc]yXZuf{pkhokdb{iqsh~uf]jb~cp|ku`d|o\oimmo{ejZl`>gegno`nsoeqmvtv}Upswn{md{jY{v}kgIuMrqj`Vdx^[e\QjitghfV}dvcztl[zeZzwtnuqemistdYVx]oajskhjuwq\mrP^rsgxov\pvum~]nyzkvqsnmr\Ru|imbQcmNpNfugm`^~Ymrkdfkz[[Xmebaox|Ummq`~bzbmmbxwpKOWaso]xpsjmpev[ZevxnkoyWo]ulrXX}YokPnopZVtwchikpbYpo`fr{Yk[VV^kpQhrhZ]r]rjesmogrmp\Zgp\O_}pnbxjn{ntwpwg\glyvs[x]lq~{lu]g_Wkadtggxgn~|qlkbdgZsusNtyfos}yinkgWnnnRaltibksYZcAfNygixbhzphw\tnjaoojhn|ufo]ondgcggnzl|w|fk`forwVf^olfcrhduaxkdmc[]ad_gmdjtsYc`jXt^wf`nlyky|ukmafyrpuurpir}_y`tt{ndyu}urte}iTne`hgZyjbkdcijw~ZqiidchudquewL|nsni~]qkOvzidgd@~qvov\{dZqxpmcroeru\jvnP^wezofukppqussl}fXwxu|zduucthosk_sd_kPxuken}^ivhnqrhldY}~wYocQnyyvzqdgwmtgw]sd{opnegqljw{wmrztYk[o\uel}nn`erk__eeg|rj^[`NbZxNZo\d_enx[i]d\p{jdtxhYi{pj_jriVy`^gpimhzpg[dslhl~Iwlqty{kyqiqM}~vjqjqlXd|dvu^~\njjYlvgpjd{]zrePzznpiqlZvvh|ndiv|gwxqpyltl{cike^}{grm\vsph~qutffyxhp|laxhnixnf\xjp]{ov[y^o}h]oFfvlxfT|Vaba_tcwbiqky\Xw}``g{kkn`wfizdk\bgwaqikha]apurdThooosf|xgakjqxr]W{ognuXlbovinfeu}tsoXitluyulajvr\uo^~z|xudbinapOr`bybl}{u\lii~xhXn{w}^{g}ceY|^^Yr[b[[Om}pdZPt~mfjhcmrlg{|fOmnhlWmkfettxhyvsfehbmky~Xpzj}qI^VshtHVxs~vujm^jbp}ilugY\\jxWhjmdqjern[thr[ph\nVU}qnzhbbkq[{cgxc[c|p`xs}~nj`sklr{rtlreixw}JSbntwqeattk~|q}|nSn~ku`wb~pysXkh`kwz[TsxwXs]hpbwxpfoytgojesyXyifbgfixkqnqxjjan__voedyf|}`\vpg|Ug^Zoluu[keZe\Ylx|s^^m[{wkcmuao}Xkq\walpsxx_iko|{xt_dmxqo_^rzx]w_rbRbuwzi_ffqYbk`]y|cw~v~ViZewj{ao{{rgmwMi{|rsjKkpkoa[qdFnSa}pWlgioxtiso]eRi{P^Wrg{rd{sWqErkad]apdoz`{\M`Zxna_|xxkqtE[hwosbvns{^yi~qi^fyiWwjragmYcm]MT|yohYR}z^s[{lQqy`Mm}q]]s\}fqiwjYheOXj~d^zmg}~Id_lbvtfwxLr[{ogclJygakhlhr||]bpw]jgqusuodr^oYlwSwwoe`wfZsrppshjX|tIqfWhoauqolzmj|{sbphhnY]SkennNQ^yd~WR\qg~od]ku^gWmWonx^xbg_mIk[uuqro{ovl_eNkrojXmd_s{Tlhw`cpo_tyntpvihb`xli]hxgc]^vp`qrqcoq[|Ucm{p^c}kzqs_sdkj~\}lxhwehsgh`cteowrcfU]fnw]i}|nPsjuec]cnxzreirqzkdo}pt|qqquqf{tsylhh[dkjjjncyefZq[sykw_veygkjnZQogy`znWxxcmh^ik{ktspdtqfsij`lkcj_ksEu}\vYoiasfn{|p|V\ry[jpmbzpidcae|TwiXei[mcq]umjyip{rdqvmlioy_mfRe`nig_}jy{_eiytose|tUTgbnvlitu[Zssl}h}W|cWmrkne`v]x}`[dprijm_}fWky_wqfdpuw]vksO|^mnw`xw^u^xva_|yt`eYqSb|`swuopU{m[ts}o^u[rtdZqXfiTm[{_ouc|qkk[tugxrsaHo]nsvTlffIb|pMloY~^|hh[swz^rpi[ev{|cFaVimw`v~{qfnidgeqnXjNynvnkigowa[bd|ugrrfYymsubml]YewpAvepdsg^UffpboczduSZzdkhfiis_bmgs_qnas|{hkZnEepdbo\oscqmsXdahkp[wu]tsx`{ijYgnrv\zqrpiOqo{k`sveowmwik_nfdc;~~i`qv~xkrP\]jmYajoeot~p`noudf]imRoptry{vmrvZnijm~qpfVefpQduj~Yz~}{slmiccpQ\_~p`soq|\i}xrlklh{f^q\pdXqs_lnqxnaqdsjtok}YhorfoZv]qyUiyUfht_groaornpgjom|W{nnXpsf^xeuIilOodednm~`Zmeeyol^voqTnnqhw}ltxZrjbgh]ppdvcrwdyino\Tcpfr`zs|gj{s`Kijfrt}dvhvZ{hotjuoouxojfwWwYW~pnnpxoqtarzsueeogkxepp[dpqnb]rfjzqwolmYmhwrqryqclutyosqvst^wbqnvYzgvxddkbzeepswiamyjurwslgt|\nVgw~h~vmac\dlfseh^xnuu{r`knxZdzmaq{kcvuqhyykllrjj_qkoVUjSq^dmgFdqrOmtUusaCh|'qjzDdmsPKYh}ffxggbTcdufrqaXpRciVgmOfTqRxzXkkVhg\Smnu[hz{qlp]qmx~qpqqx]gXn|yXwuugo|ov~q^pprl{kdwi`BwnBquemZjnVomus\f]~Iae|ViozbgP`wr]Mqh|nzmiZoqS[^|DncorxucfSk}su`Ub~}jvzhb^vgqpRraqnnqb_Pp]tyg]klglnlv]^Tuzsojek`u{{xws_Eb~mfpPmlyPipbedcq{re4tkachjmeMkJo^njsVjWbaNirdaZc\oZnxppml_ljgcmxocav~i{uZo]vpdu_mdjhdd{|njbx{_sZkVmcp}bnrgekmz\lu}eovqljokpypbs^g`o}zyfxlug`b}qxziggpmidlin|letrehx[uXe[msz~ckaocr[_nmthosom^VfqXlSzihiYcmuqtrkswsllbmVisgokHuj{tXl~ji][^omchizmps]lzwhueeohq}_r`jymSmX{e{kqhtreedbosjbepn|is~~ojpthZvnib}_v`lbdfy|l`al\sgOzmhmbZmb^{lkpqejedcoemeuwbbug[g`||ov[sqdjme`hsyWbw}x^yzXd||pw}vaoyxf`YMjktyyiznimxhbd_osgM_q=wik~Y{coah}}skye}v}luqmjdezj~MtsVbphfffoi|_ute_XeRttv]sfanvcrLo^qsTk^Wqfzsph`p`we}jUzzivY|`~wyeVl_ksjYpqd{aonhczkZfZfsRZPlitpvucllYkh~sfafnu}}{ywfzurp`|wueop`rb_|apscapswjSzlgq{\omVaYblo|tcrkp_kLojv|\mh}gUKugG\yVdqrgxZ[pnWO]glnl^uurzjgtojdkneSf}mj]fkdwqsXdcmn^bxvXzbgsY^]T{^tk\WvTigwE[wpvmp}hqXdZdarpjcl|Xcmf`uqzxe|jZtutvnY^{vsznuxyYllhzE_k{yyybr\v[\Zvjuzes~t^rsoe{^veCkxaaopiftwugsegb]hwgr`[yvwcyKmqrwbilnboscspglZgh`rhuT|hN^PlwsFon`rZwnfzwt_GhktfP^l]owzeirg{xpc\yncch`ntpVX}lu_odvov`Zq{i_ghe^|omgb|tunpvy|wlTyd|tcjousdnocvZ_ell`iizbfgc{lx{vfyvqwzli~|[jmmsqtf_zueirXhp}dsaplpfylykj|wggndyluYsxsxuccw`qikgcylylsxhehcxwymnchwr~zjgktnvumM~lnmur\viPsnSkx}sodrluy_zufpry|Uxusiyb`sn_xUhslmgmYube|tExw|xunpn~u}enervwbMkTmxmdklgf|nZmggi]~hg\dtujljmkeu|hcPawsSke}e{svwwlnyvu{X][lnvqqq=tconzobvprbktyzqgnlzh|rheVXgnmfufh{hscygzYlmo`h{{ofldXpchTxhjTqpNt|mgmc|pnFkdpi\ilba|znyqyKbjc``frtke{ygienurvWrv}dV]u`t{zhpikn|yoayyxY]rpxuVfbisby{slkgvm_ui^ooexxiu{uu\otrllhjb^Y\cngjhvwcajditciuxmvxgmn|djnlh{btlxjp{e~{}}UjZliZdbyhhjqKcdlkw~lcesrlwiu|lbdkse`lloxa`m{~ripuhzmsjiuvuwo[xq|TlYk{Xe`Ngnttgi|swWhgZn]wm~hsvltcue_ndzx~trdnYvvfrttcozdb}i\vknbhdj|kqf]rqhZmyha[ujq}ns{}`ngineaikjetwv~qkmltr\nmciuygdobft~l}v}m\wXvjaeeql{|htdkrhwgcjgpt~wgqujzjrhmdjokb{kor}flht_wmyxxhpxux\uspz_irceqtqxrutpwbov|vvqcapqvpuri{fFiVa{awcnvwcttruVqyshdiwwm\y~wbiquy]pMr{glkesfcUovukmwrjit^uvix_^fimpWns{sQ{abddpW^|_yk_lmibkukc[^YTvryrbMql[ummpl\ratoeiarwzfmp\ixmz{kqhon[tvZ^{unphquqinlftrjkonhjklxgg_gus|dncq;[jdbm_l}g~rdpfogudqqqUg|fpih{[Xj]ebv~bioqmqsgrnebm_Z~awk}_fnd\uev\qqwsvzjdwrwkf{bmmgypiplWdw\`{pi`aeezafktta`Ufsrj~fveujvbsurxgvrbw^yb]keogdauThio_ebqo[dgo{Y_zr]dUfsepyrqinogduq^UdU}n[xywhbyTuub`dfTk]r|gogp_kjYqpp`vnd|}[sjzowb|pqsl|x{p{owtl`lozo`mlpdR\tzcgf_wqmzcfkhnmqvixs}_Zwuka~gxmXolu|Zj|wme{izqm`nj|~jqwttvj^HZ~is\inzitfdshx[[ph[xjtkd\vzum}cmwx_|uhw{{trdlnjhZPpreywiwn~uwkrvwm}ichleql[r}dhdifpff~Q_g}k{enduskvshy{k\VPWWt[|]sf{uhpmWr[{rresc^_LxqfkuWkivrklvq}zndUShqvlylvbv[rY_wfiblr_vxSz_csson{_on\X`jWqHjqgb^gxkczslotvLXp^Vwi`}gagnsidukkgsk~[\_c}yjQltldkj~jusgZrW{nynflqkmcak_dd}ydqkm|fmsZTdzibmr^}pzphW]osxPlyjqSbbv``kjbo~vj}igh_~Mpcwdyyimldblbdzrtkv}b^njes|ek\qckhgggtqsnsmjbyzgyowzppg]p~jsw[nox^_mymlueV\rh|`zi{fpmkstck`xw{x~Ququ\gn|TtttgYahoKc\`drng{r\[fonexgsjazfopim[rkhs{czt_kksmpbbkiejmqgc~]kqaifaqtpEpwgc|ZdalbekXcudwyXjleer~_tmpxddjrx}}aK|w{SpoojjusuvilW}gnzzfWlrb~lfdoxpve}{ne}ql[g{eqtqvfpnqfa}}okjirz^mUNxwi_\lpzZnb`sksrrjwg{dVlvdjcece\nfpqukjxswdop^~g~wdcfv_mzwcQk\irws]jhfecppjvmldektkzs|b|\t~[pgmzt]G`veoymy_i|eyitatvkfyjlhsuc{Wvrnu^o}az`erw|`nut\d}jwdgbqqgj}g}ognvnckmbtwg^bgsw]cxt`p_kkle|sdeuv~lpdkiKkjeftufbwn^sqmdktkipqngqayosiql[}yryqoh[tldibXfxsvnUmgcgrw]mcpufxoymqf`Wayvysxrn_m]cdtsxovo[mjydkZs\w^_dYjxpi|bXzprljpkquXo}ofilvgr_klflpcp_ka`d`woeno~purZiWkanoxqapo|j_kkakriv`suohkQe{ogudn\fxQhxkkgeW}opudJ~nccm}^qefbdo~\zfk{}rVmZravdmqktemoqsukx{gXsfgisy^litTdgypjnT_kmd`jbqXeUewhuf`k[zrrrrmigiejfmgupsgmj|urRhwpnj_X`}hv|pdizk]qtXonpva`rLqlmn|s{or~uSFkdaw~ah|bYsytc~ozafR}_edlfpka_qcnlkUtcjddqs]hajvljleZuhhguvzokxoyajqnuqbap``Zoy_YtXVjXdS|mpux\f`u}inpjhcbKm{YoympVlnbrwdl_j}br\f{vdilybpbdjs]~lsyuj>rqaY{~amkuo}Tnw{`qlegZ}|f{phwfbhjm`otyrXjl_]dgvZss_owuUmnmtWlyunvn{tn}bjlpo}]x{fFhkgfbbavTgim|c|a]z^pOrl`^zevv]tx[tdw{bW^daUpsd_^\]gd~R\h~j}soZ\j{SbXpvllrqjh[lpmw}ht`qvmiqh}{ev\Rv`wrhqie~sTojj]tt_sj_Vd[]mupb{a_eahdWtzudup]mvfohwizoex^syjy]koX^rmlLchhpf[wsiqpTvn_y[e`cluf`hlw_wtYjgmt[rsekenwctTfgbccoZd_b\Wa{`fkbWsg|rdf\ghjmkmuuh~rVs|cp[kzrgu_dmRy_frnlvvevj~d~sothlxsgxfqpl[dZkehjkxliyzdwkVokmc{qdooug\v}LqlkxqsvnmmshzSfzZejlsskQkxeqqtWhUvxpVlglwscVsq}RZhNtCbmvRu_]ouhshcpjfi]ukvdmsbvj}emzbufd?ogyOtbkgh|fvgq]k\tYvwzebRcvbT\eQ]cyx{kbgl}afeq[~gTNqcwgWrlpaqvzlljwelWlsnvbsjpfkSim~ensf}|vxejO|_mmthjvcxpbQmq|iMdhmbbjolznqvYhxp|qtqywrS^plZdoaxpWcoffilqR~qnrgcX~W~kggargZ`^wX_s\AT[_dAejdsLpagffPxyonf[oxzT\Hb[qwnf^nzxyk|Zld]vbj\stqgSqmxskR{qutwhz_Ohdoy{{Uv\qdtugkmKbmdh]tlvZqmqoClhapokecag|{e|hxicnm}_ttYvldlunfuq|evjpjfycunTouNjnu{khxunm|n_jyZjpvtZs_csmhpui]cx}xg~{medpwhwmZhxgi{ttt`]fauxzpkX}c]zuoqTukpjtscqv{fs{^psmwkjmmg{bvpXfjycooadcnxozmknknttorxnnbgmrllkmaurbdijlppdTzjsqYummqdxYfcdqnw_mjagonTpxmnjjqvncaaicvfrh{qlmvsubohjZiqfwnu~hbvabu|u}dluos{ijhpqZgZ|lhwievikfc}ipkqsl[wo|QnoYgYboktmsnoscg\wwvmfektytWnirtl_hfmya}Z~axngwnqiyfqj|ppnfzdhfjywfe{jowynujp|feSsg{gcno}_`kxofgnlaohiy^jVsa{fmfpq]mgl|v{oxqq{yxninkxlakni\|[Wkwnqktm_|mwxknXr\trit\~fn{gcUuqXeszdmUh`nl\b\]cm^umassor~dpxifV}{ffmdwZ^rioaico]mwwXbp~bdgqeexnm``ewio^rrt_|i_gjsgzblzfb`zckcxwrzbjy^jlksfdqwsco{edsdzuiu}thqhi}jgx~mfutqofhrmn^ckunkxefkicijmUccUlcmk^wxbhmssj^iyoitzYjsobk^a}ihX{WovtXZqv^nqlmUqfvQhbqj[c{~uWrY\erV]dxrsXvlqwRv~lqTU\lokjuq`ycKvXuavend~}ni}jtYfgfq]wtxUt{iZUpu]kZZ~iJ||oRyjp[nqoi\eyxjx_tnluTn`rr`y~_Q{`tvf~xjc~txRi`dfu}cYuhbzm`vsgk]Vq]foklnueddxbtfhTj{`v\dlhhgstywtpngaksnsljona\wnZuZ}{scso|ghmwpkZgtou_lvxhv_e{sqxj[x`qqrnqre}ig}gsigulrmXnikqqtwo]sRaeuiZUhwix|f_hmc~r|wzXwjebdmchmxkpm`]ei~_^rlnevvxlt\nlzQmSVpnhq_kmZxkeiexWvq]}nzs_|ffwttaWql_uqgzweqgMvglxewyiKY~WVmuVTT[Nhyv[\w|m[fXngr}kne}RmgsoimXxkXr`gpbZf{\xslE]a}|hpf}zhbjuo~hpplb`bkVXq]gxnpXv=iZccn_fppym[~jbs_lzi|qjww_imvzy`gcq{s`jmkprlw|xot|t]xw_iqbR[]ia[hSgYt}bufyo\deopa{nYj[}ywsnowf\Sqjjjfkrsibzrunalxdw~gkxZfwziWf`_VfutFbZuTur^dp~nTv[~Xo_}k`zxumoUV|̊pudftxbU{Zwiu]UKqdc]yVUtg[[aofjrcmwjnv{}ksy|f^fnhrxcb|ryp`amChoosdnufkd}p}mgy]gipi\f~sqfabob}nsrnaxkkjqkuP\m{mh}unfm{Nuy{r^taqrwqq}^||yuquwbkxvYjgr`ionvbZ`fmzg^v`xs]RTjfucmtq\hvajd|dmtubwjhjWxljezqdjx`fWap}fleuwmh{a`{ocaqtgwWm_n{skm^losv`|sdldnf{byjep]rlj~rlscmtgbduyqk{izdqzucklixw\iifacis}n]ggzh_mzgotpjnllvr_u\t}`mqWlku]n_qargwHkmllrmiNrqsq`wiRd{[h_sjnQseyv~q]xl~cufbodj^qisUqnkuV]`d]ljsurn|lvp`oh]zr{`{r{tua_}~ndyhjyNbojf|tooq}Pmhoc\c`k]oztSg\xKbwf~[\zYwnjapNmdhQQVjXx~jvyjhtk~nXmjmhtwbyyoyw[v{r}pph|~cxznojjtyspisvf||t|nd\`uupvzs]vypf~d}mj}wm\gcpjyrbfv|hdwm_akvjgvkjmqwwjUszk\tdjzhonsTco}ioc_mdf_FlyYgmVXZruu\scvo|Sdbiykvvfuka\^o{dxKnsiqefXsljrdShghe^QRqtJljiws{nco{xncjv~nj}lve^t]ot\rmXllmi~|zUqQ`e}r]pY[tdmdedfszfVjnkfZdpc~~xpqckmLdf}rolkkivsanmslmdcmgeitzq\f{r[k~esrraknoveS\ozuyahrmtt}[jsznhha{piy{|zvetqnbesfkp{tsmTOmc[xwxnr{o\sp}jfheidtqcmuuetlmull]_]wqodhquy}p{jyfxwVoir|s]dou{~|suepnZ}akwY`yyf|Pgdbb__~p|fsus~ooli]mTbyzs_{qql[dkulnvxc[uSwtxpunj\d{`rdrVsk~monf`el{vbqyrYmjovVYv\pi\r^vs|{z}{yolnmolUtg[ZwvtnhHmrd|mmmp_hS{yi|Iz{y\\tR^egzm[ezhdtmimZ`h^ntirbk]jyjoh_vgdca`ugyMuy]{}lkk|Yhnjzjr^|a{avfnikpu~gxv_cva|lr{c}buudHg[|UruazyV[\qndtVhodZmqXfioio~kgdRiNuxm}d]k^jvj|WyjoviG{~_}admNbujlgxw]{tfs~ohehtumdqwk|pgifOhdl{{wbkahswyydRgpc_{_ekn{u|_dehfmkv|`z^^j}es]weopvpwwqKksm^jokgfnr~}c]~n]iW{djwd}_lmfopXfgoYx_^pucqnYnYmtg`Xml~kQfxw_tljMrgzov`hfXbniiiahgeto`q]n|e~oN~Oo`kbuqcrpY[_gcsdshk}uyx{kjq\utwrxra|jaggwewuknk`zrjcfmhouelegrTf{_hpghj}dvg`sqjsBnjj^qqqj`hhyn_bqy|}iep]w{epkyZfk`l{{mlzotxj\qlcrZwogdaUga_n}eo}vujgctvo~oarkhiunwZod}xrxrvx_sdhNijkaufwafl]|ho}w}ehpgv|djw}Xvurcirhpkqs_infZjUfrpvqkneud~oWy`hxggpXbytjqrzli}qz|~lj|qkmlkYajxrcyf~^grhyshjhrtg}jkelsyptfeoi\`f}Zknqac^jjrYcijl_inxmlmxudxP`qjto_bNioctr{o^~owqYmzu`[mlgwh^vnwepnfrd`}bnfqX{fzkr^dqiurwq`yvyavczrjc_~opeq]vqzgvx|Vqtrlppmjgwkuloqzii{i{pavcovokbnfbt~]dccpowkkeiem{hb]cpbVckgpnyjrmavvmjcph~rvjfwznlgVgzpzfU_hjlYlnkmqfnygdhiSSi_g`pttf~oih]snhukYny~\wbmn{aTtf^rjnhblrgfoo[{|Ugeyncckpcre|uxr`o{zxcem`mjviunuvSugeiWrl^vxmdimodm~iwqhpvrfebyrmuquw|kn]VgeWv^Wn{_n\slulg{oYs}rp^lh^|w{Zm|kqsumomftkbzoWdUfrmqwbwwh[`fij`cslbeti]iVZaYUll~rbsb|ms}rwuircv[x^|{]pgs|h{Ynm[tqmis}kiouxk\j_nj}nn_ltif\mqhzrSjma]huotv}ory}bbi_cXeyfbj{lppxj`qzsp{ortpyk|asganpxklhukftooiamr^qan~rhwyylo~Ölq`qfvixkpbjsvZzRyjluav`eyipqZTiqye||j~z`|aQ^vrjtlilzw|pxvkull]uu|oiqmgUsZn{emazwhYnimt{odc~mnf`XxhtFt\}t[_wqax\~VWowmNg{uk_kjyvtrdZreknsgljngrjuemmisiRqQqtn`t}|dqj^o}pn[p^mgb~skWuspK\do\qoxhcnxawgeoftn~uvkY]i~txhUjzpzrejay_mozcjkfqkloFt\jntmWYwmwcvwooapwfd^n~oaahn^m{kvc}Tehxu|gorlmuraxmajya|wlji~sjatxbgyk{|hhocobeijrqjzo{kpcj`gxjhrse|migTp`pyg}wdybpem{ik{`pff{lu|jMm{XhhlWgxpdXit|rsonnitpmzlgYgchuZXwfhmefpkbe_eg~\[]T[qpuswlmhu]k}qlyfbksxmyffmj~tppt`fhpXos{oSptvijo{qhokzTz_n[ntqg_kq{s}lzp^\[[bze_Lllidl}]ixL`lt|nzgf_nvl``}yovon]ztiz~}l~{xsnywvqnrgKifl[ohim_XYvt_mam|plixjuviuri|}]t{rbmtXjkXfacnUoq|Rompbsoiwo{djmtcj]lll{klnxinmfRmz}lorki_lvdOzvulgrizsjV`os|xpihu_heyWe~RexXlsenxdhsyrhruqgmntvrgrnr{`eiepbeu`^iznheu]O~\od\s{WxcX^u`nw_j\d{xjixn_rr_Zhw}peykc{}ikh]u]ctztQgolnte}er`eplzs}qaqxzjnklru}fXl[pv^xoewtjsn|nrj}gfQuo|oqjvivxIcm^}{kn}omkgZstj|fbc}wjucywYnstw_guibo{Mqe]vwkzypw_h{Xi|iovltjyimakfkej`xonig~`_rh{mml|k_fhLkeggamiptWz_wwgs_}~jWddzjqq`znnrsnWpmIilDrjq\ibmcujYh~bw~_yplykqn|hupoVy]gkfdruZ|iaifidegukhrj~ftvdgfcjmplyrul{`riljox_kmq{bjgsd`djqbf[kivjcTnczlvyinikf}tdpkuc~kaquouZz|hYuqrn{myso{^{gg|wh]sdteikgjtujuihmql]cihl{uqy|vcbvv|mj[Vbjm\kqxoemUbz`qnionpmssoe`rbbhkhashtx_pXlmforthttmuxlo`kegkjramcuao|cmcstu~pwlpmqkh|if~wnowhvbh|ujlfxqo`xp^Wyikjwmipsunkwucdn}qxiivms}r`}jflloa^mje}upjbnpxwnbbqpkfgqknXqqwo\nv[|ramsox~eRpnzta\]nxzakkptVfcdwcqelujlZymsfjmujwnhdvhhq\nywr`njpbvooeczyu|mxm|]pwwe}anjcmjWcixosgaszYl_lpgkzm{vfgyfsp}~rlkrvqcmnlgmdue`in}[sjzq`ogwpYcxs~|utjutet^rjluodsYbezWncjexuuoliqeqadvnsqnhp|tvmhwmi{h`pxyRy`s}{bmsycyvkk}vsbmv}{~m^q{~xxk}rxr^\oy~krz]omcufqqqydc]xwxwQ`kggTaXh{Xlddkvqbvtmucubt\iag}z_siZ]xxhv~btmmsh^kucTkm||xjyccoxqt_wzdmmfskhne|vppb{mtYyXjf|~xZmts}bmoewWir``qne~}mZx`Vopfko^vcowbsmcrpzcvf[z?i]|]wlZkgVxUbnjhji|mv`drklpfc{p\nflnjsgPil_TYqntxcPsno~awoqspjo{qxXuigr~nlo|[vpgc`~orfrp|]b|]atwnqkd|hgrpyuuvzopmwislmlKaepiYqnjusppsw_~armntxf;lnxopmnlshwRi[rMyfirg`okvlgd`jogfxbtYxc`dx`mssoum\dX^^poWmmuz{ojpLr~{ubvzlkpjpz{akp~`Ekarntq^jYm~Y}g[egqjh^sZxxiwfYn{rgplaHqo^oQit^mNjnhV[ghd|dfpisR]giWisfYueYyhct{x]ozpk[VdtyshYwt~xyepesmmrhs_{xmp]ixzpgt^lhsfofknru\rlkcjlu|\Lmcaqvb_ejngslqq~sXuddzrx|SZdt]cnpgps]y_bhWnqe]\tj{b`g[Wrygnzur^vmenjkghqg^yqjbl]XtreY[|[usjknjb{ujjaUeqodc`RRnvSb]reRw_kdrhisymq_habfwnfdZejZ`s{ud|iafU}uypjszyt\}rmvyYw^j}ey|zts_o|hbZeelruknxe\fpmafexjl[pd]q`bvduu_qpqjrOnitx{xnnugd[qwwflbowtp]pdp|vekzgqmblovmcle]r\ypjjby~y|njil~c}{v{xd]^rqu^jXe~_mGYg^adpKxb{psoqg[t~y[q_tpiucexm|iZfkukfkyUmvklkx}pmtl}bo[[r_ngntosmk\x`mjjbbucrZa`v|geiuu|cgsiqb]apgj{Owsxl[p|[phygvjjrrwMgrhvima}z_oT^aqzl}bTjkfmeq`U]xgtg|lxVuZwvjlsdkpzjycfiQirn[nyVNvYajpuZh{lm^cydribqjx\xoxua`lfzjul~}kfbVx]qvvjoz`\ytojh]_daxdTry}pl`uhrVj`atbh_~}^Uik}qx~\godrlostMvwmvlqlpmoyxaahy~nncyqtt}kgiomi\vsqtqpe[ehTfsqgNwskh}gen\clggwf]t{|xmte[ikg]ShV}mxrknhvp|qUpvdftokwjykhwzmmakamrlb`mnecZhpihj{ag{qrs~vvkpzwshudviurZm}ddhycrtm{lqeppjeXv]hreetUxh[iyuapRlstdlO{Spekpjiir`qzoalhlmipwov`[oi|ophsz_xxrzosVzjkq\h}rZl^oqXowqrmjiesgx[|zan{ljkyvYllokfXsr[z]`loYfZje]ygolm_yn]evqnkthpoisWe~vcUrecE`xuwnzpccrpw~|bexxh{|xqwvpoqyb`cgbq{bbmys]]hsPcpn|r_zxlwblypOus]mo]nVts`{[onraivt]rc{esll`k}hrWg~netfjNpwWbonj_dLlidTfZ^k~nnVR]~qJfuw]|pvq{tbeWpv|aukiW`kjorldkkbu{khsdBa}hlyaaghx~y~[}Nwk_xsmjpafvjPxSvQ}]cr[wtojnpbset_ndxow{vlkpzl^Z}ruq~ZbievjmnrUps`Vxlvfqbxdt\wx^Plvvgfnktclk{vXituxuYa}orxr\lqlc~\r_l_cVt^mv`kghtliYuwfr|u|}jbxgqfzjumweuytYqzkqkimsgvnultiegliqpyb^hompk`aeqPxnuodryesw`]~ika~[elcmdczast}lzwYb~z~}]{wigmj[_hnunnrtrl]sjklukZkYutwtupiqr{kp`lbh}^_~cqnbklmgeze{geQjdwYwoblbXn|khrtnbrhbeuesscqkeoczquhokrou]kclxlni[wiughn{cuawfykq\hquku[sgmkXdWnslfgquabru`wtiqzjee`|vdovTjm|wrmlvpkyz{dp`jyYysddni~qjtcxeohewfRvksgmxy|lgrrrdvi`i`pjom~kgemW}_||oxsvlnnls~^\nczzdeglqxws{qjk{dofiinijwmVshj\kYzlpxgi{on\fhtksswl]SainvhpdjZvglkxrhiv~_hghvs]{~qowxvvulksun]y{pohojc\ksmpyryv{ftm|`bpttxg}tir]f`snbbq{mn\g[ixwsaqcrf|yal~wV_kz{euxulmiijkji~|qpyoeluuqq`lzmvlnvfre{qdpqapkqmmofdl\tf^p~hjfy{wuZollkhrhqgo{Zvghen_mn}vYqkocxyigfggr[n_uvcpWyalb~_u}|{bkkjrhh_hymubcliorzpvjaRl^ptyqbmmlwpnrmycuyfqlpir{s}frqse^gtmxdu\ctopob~|orpopimfUseXgase{^wvVfqldbtm}rfl}njZwh_voinxyZciOauPxiggl]dsqZWoafxtZaefstduuigfgtz|kfb|ui}p_awrkpnm_n]Qd`b]uf^wqidzax\~Vnftem`lonqoqmfibhpRxmqzvgu^aVgmif`ogigZmp\kqjmqrkv]n`_nlZm]jcDn||\~ezlkmr{oinli]fzjt`rw_dfoVapcfcWrvTYTq^r{zmrzelkghvvlsfukk`rlVmhwte]cfv`{a~b|s{bjlldviovtl]eaq~ujeKclNsihfTQbfrbbwj\_ibwivatrvp^p{^n^etammtfftxiepUqxm]hslszkqip}neYshuelbjnls][srnoi^ffkzmJr}ksWskXnpZ^ajeovwjy[wqifji~dtjor{sdya]aiq|df}s^sUu{hcnlizscir^kpxpQk~nxnujhv\}j[iznyydna[a]`ilxcqyfpmxv{yfca|hmytnhb^uhrredhcpc_suzchp[wrVebhqkoXoiingaUf}zk}}Zdtcoqn|_ao_fll_Umzswwehuctalxps\y^f]{sV`dzZYb{~msm]ihuXpqw[tp|n]sbt`kk`fqyt{jttN~}^uovysa~dlgcsyo`}s]jpujLnpfyO~wm|^fnmogkyvpt_drupcqly|bbp{uchndcRey_\vewntthnutsmwnqacsNePZlrz_w}n`m]nt]kuvpEucpmabeqdlhpgWs^xld[|vcZgpvjsxirpuYZjnnohoq{kumwKw{hwzm`^wgfminc\dvywpnjiilsvweohntu|kqosdptmbgai^^bpc^outQhWgfHqasYbfepfmyceeVtdjrpXmh^pxnakbnu{wdtb|n}u\ra]qqUkrzklsihllW{phitalXonnojhciolak~abpedPmxvyszZfstekgzumhsullwrn|^Pgogjjwrvcqsshzx`tn]mghL_rvnctkqmZibqRpu}ptufi}g|`\ykdkh{ye^vxon]qjhkmlo|cbhso|yqnellmtg^pec{spWztYeudp{upqb}qr`\mqo{lhenqzQlYipattsj`gbJuYcuwtvcfpdm^gtr~petwcqqdmst`qo`w}mRuvu}jgwhvixc\xrpwmfsktebxmcxrvdTmn|oshn^kPsmrerlerakrkrnefbxbkhkrjfnivmlefg\rsekpvyhjbl`h{c{z|Wjnipzghkptyepn|ojuvdyjzquuQecju|gqektdoixgwefzhllzucemtktftl{t}gvtmbnnobtygngqupkUwql|mhXrwy[m}\qm{imlqsxwufrm}p|usf]uSz{secntzfps^slkigw\fi[rhtxtxt~drbszcdTkuk_qdiikLxsprOsudyovar~olwuhemwtwrqMzrfk_cmaluxfqvf`k{]{he[jv{ax}vcrkrqj^agzhmcvXke~qunvr}os_vg~W`qusqxc]|wtnduot|htvxxiokrgpa|qevyvi[pyTdppknu}altdnUtihlsk{sthehUzz}qzdfcqtlpf{usxgtVW^blmjpbmgo\rc`iv_fvvhloydnkljihV^nwpjpggu{{psXhnltzlmdu{dpjo{vw}|d|_hbXgo~n_k[rsgjjjonxcadb\tms}wgcp|]ki_cpbfqzn[jdllbhqulcxmqlXuMtpfbkeZcjkfo`kkusrivsmfft[p|]Q|Z^}iwhS`hoyaprsU`pvjGk\mfdn{oY]eJvst\cz__vcroyNbl|ccRomwvsk\rte}if|uzxXid|aWc}s]ckUPrZy[bnw^o_t}txm`mYbzenv_]kmqqXijoqdl\mdeXYQdWu]}]qhbpn_|a~q`fxbmmfh}uqtxcL_p[~e]hwf|p^prlzsyycufZmqyr[ttouhxmt}yYTdietShhtg8wsLqrdvTphyledqaroVdlq\\Lqfdyn~p[q|rZ^^rsdq\W`x`|RUjkvfuothWpz|fa|cm{Zv~eabHhgfrg|us{rcrhgpc}iwbdpn{je{qiq^ij^gT^zjstqqmfl]ltpjhrzf|kPm{yypuahxou_otvbizjui]vfmb`dxi[`hcpyqlumTpp`jce{wsm`chlfrnFtoootsxumoxZ\{sx{lds\fhihmgkzk\wi^`vootwi`qlubfj`zoroucwvuwvfrwfhnnowt~utoqrtmVozibimvY_j_jUnn\j`jlg\dn_fqilhfg|{Vqwshuknhd{kmwmpmcukee[gybxq{letdtmm}{^aml|^nfS^`^~xkgewvyn}txmjn^ysyooe]yuvwzY_pZgY{znsiY^txima_i_xtfwmmmjPY}eifqhWmxbfqqlWjYkqjsYwgkzXhjsupb}ya_WkzRg_tgV|Slpxiwljg[i[ahwndyh}hynoorslxinrtlqeee|yyo~y`b}l]wr_V~qdpewxuojgtxsnchirpif_fp|sj^d^wf^mafcdsjvr[qw]Z{`OiT[howozjlmtydrwm]zkg{skbjyreh{e]ms|Tnw{|xjwjq[}qxk{{Vjfpixhlhdpcvpq[n~zrv|Rqjzawkcrf_nuaW}ej|dqlthu|^m[}deapql}auWkyWqi}iet]vltpthy]ayhpud_ri|gfd_cawzdWkbd}qemc\|hw{voyxhtjxtt~~|jqpcpxmygNqQj}k|usui^ujQewjord}^k{wtvci|ikujxi~Xoju\wqogh{dmdgof\`m`SNon]{ssWa_kz]mraa`nh~SjRngjtbahgnveHChUuTuSpb]iZZtcmriwdlg{ab^rdnrll|ftn{oib{}tLizox|ci}}e]zkey[h~iTq}^enXSqoxpUex}\ssmblv|[Vhfjk|_yvh\ysblfdfzfvwsdvhonxuuvsplr~[Tcqp|]Yosx|rZuUctnYgswxhcptjtnwmpgnin|qiunniqyYyxo\avjxkenxciTkuzrr`jtokrw^ble[H^Svnctsqhvnrpro}u^wmebrUO\oamxj`|bEzrrqiuwqXebPjsp_bpq{Zu}swnusbh|hvxevqqRmh{cs}hsfdVqqwT]SjdwaxUqhrgVkick}cmatanIiqtpimg^ttsasegp\cjunj\sy_{ptfvZieoqym^kjsldoX~_a\_ge_o_kmjiuptvlxo]vL}fvvbj[^ditw{v|}aqhmkjbheccVkehlf~usgm~^||snxe{brvnnjjiWjg{hhjpa^yr|iknfawjknsFju\Smxcc|\Z}kjl_u]qjyxXc|hvbXpkiw]hs`\b]dypSmaqUkhufv}C}UpknmXbhtnlWkOukttb{Yy_tg^\vOgso]jar}ehepael|KzTcsOmhk~iVj[o\]ah_gzevzbj\sOZqh`iemacwe_vs~rtigrwbvm[evcmzpNXtqrltgk[buw`rnkv}gGsoiq|]fl`lrwblsa^_assZn{Vdu]naxxamfmtoxcqzmwfpRg{eocgdzNqb`dh_t[]hlnX|ZiqXm}fZvv~uqkeV^fnh{sp`a{fybg{n^toekjjpf[fighkqnmu~pwv}iyvtLnraUfVlswtoj|^hi_ideZ`|_gpW\ztyXmorikdq~zVhty_or{rhOxquZvqsw^|s__qpr`hm]Zmlutc\boP{rughp\ygrwqg{stMmhclsrrci{g}Q\rcodkLw]~mkgmxw_r[SgjdlleS]^x[zcmuxoyqlq_edxVru[rxugcwj]kforz_tlzmglQtwhbgi{zScl~InZy\ntnYhhXVyu`xbnyZpmtvyOowYzpv_xf||sXavguhdwmtcf}dfYtO`cxmwfpzpibilQckmtt`c{~|kj[aeu~dgispmpvmelIdrustrhZlknizd{ol`[me{ogqkd}]uso|f_`mvvqr}wkgvusvWdpv~^ThhwskZrzezw|hrul|ysyqQmrvmpllivmpdeen~qq]oye~dib}npre\tqrkkqnlr\wkhyZtgngzes{tfpituqfp_yx~|filww[]fhp~cx\c|tvithsjmpj|frWlgoqrjen[\|phpa{}uyd~azZrv\b~adzd_oqmamvklZrmqkxq|k~ej_elrpm}u]|vbajnrf|}v~vbbqldovspsggkp}dw^hitff~mopi`feeuarUlwx`jw{aoetglhf[wzr|clsmoxkjykinhoig{hpejj`vlmn}jnlqtdp^wnxtquzfjgld\llprjgwf~eduljpdwlnd]IeqhjurubjgixgZpvyrawdip~~_]nwwrugosup}z}`ewPq_xegwdhuxgrlpliydnhnn`tgudbme]y`m|axx}tYafx}dzrtil|kjauygjNtij`Wakxungdafprnhr}uhw\huTexhk}|ifjtg{teg}hvk~dV\gryg{bwrrzbxvznlomlw`v\S`noijusk^glissuq_t]euZwk|jkyymdo\yRlms~hkgii|Voate|vlXdxtinhZkyWwqkpfipijrhoacymvhgx]`cvVljmzj`govr{vkprgh_qesiw|lgph}un~uuj|x]saxscoi^hdj{byu_mokwwjmt|e~jggurssljgnrvvjZipmqyY~ic`tdugl^a_`kYl`evv~thr\]v}s_}thvqbtl~mkZxkdh_l]ahfzplke\nh[wrfsybo\{VbrkkpmSucoyvmva`aZkqczmwbq]Ufcrpd|`~}rxjTkqhujZ\SDdJzkkysa{qg|pno]v{uawh~[s|qjxuxphvhkeqsux{v[p{Rior{mo|wwtyJrndq^uVZeo]tbfoXjt`dlmcS{dzkchSezj|fYilnbxfok^ketwhubkxzpivswfThkylVo\po{kqxlgnWZgcogznsshpuki]Zb~cul`[usglbinwQrZXymbUyxnRonR_baMzqq`uo[ytgzpwgahs|uafbgmeKaqfl]eswcUioyspmvrplqU`RgiethqgZbkzrcUmww}fpgdZbq}vSqZknzyt{kzglispo|Tgiq_niwkr{ku_imlryfjomcim_ssa|orpyx`mVwobpX{kongirnz`frunle{pgbwl|gklpuiovgbzl]xVsbt\bnq}qju\kmt}{r[laumtvkkyhae|ilr{_lsdoor|ls]{qlcbonigbsk[wrjpdddvvkt{tfpnSqxoptiiziWipxqwonvcimmYVcVewfmnpfWmpwos]y`r[xm|kW^|Qwsesz{gtzj~gg}ji{tuh]}z{koqjoellnOgp`rqb|t~xVbavuosuung|fblhflyckrySu}mu^{rjeqtoZYtnvsuqfih{ljvpn}iaaeds]ow|ylnzgvac|bsfouoruseopxvzpoeimogRZk]dwQmtsgi^cwljjckTzwvoWs}h`Un^mew|pxqZd[thZoyqtd~[kri|O_pmnneokuYolu}yUj{eght[yfsj_sVMreapmxftiddOwzidqhN_sp{ouhykW`nunx]U`krgcisa]_yyPtpn{wbRbox{wevgqnp^}j[gbiuedsn}ge]`}pugPw_b{bXlXWwtZif\}un`h^d^rspto`iQlsde]Zivj_am\Pf`nuQ|`q{i~ksipp^`xgTjadW}lqoitlwsrZb{xyvf]atscrc]w_^p]eslx[cqovcpgorSZdzkviafqoavfhlgicizkk[_ncglg~o}bnjut{~iwxmdaOz_zeigcWk}i~jmRuampiw{f|rcVrYUVvc~u{g`o|_ef||d|d`cgitywynt]mpqZWqnzjo]`rmfgkxQjlrvhmix}beqv`iYaeslowfv{ygzz^\qvukhd_kh\n}ny\hyeimrjhzineioh`afeqib|cnwWqnpenWjupnzhjjenXyof}rURw{cbwoywx~kfukfrqZxpdvqihvzt}hbmh[gmufcvanQvsz[jpgpyrwqood~}[glr{ernesfmnggftpih{g{pu|Rohcl]r{sgtocioksZs|vdwh~vXgil|^jxdslk~{Rk~cQr_Wf^jmpjcWObgpnt}]bwksflZYx]kwrZaoqYqf[gh`pSJ{a{ppTRqagVyyuiqPKj|kqzvhSzmgq^t^]gpfsw]yf\Enmsvv}j~}a\~tXVgYbnVurviamiZy^Vw[hoe|a[iw_rcbn\TrkXkWK[jij\injXfijdbtufe]x^Ti~j{flztndygScZaowxhbhksPmeznsaKPqee|wq~cWeiqkiqdak_jmr{UhszxiquW|ex^rWvvcxdhcqZfQYTikoi]y`rf{ewfzu_p}gqsjwjp]f}d^xzspwwhVhtO[VwziX^jYpfir_{~w`ltriujz`wz}mm[mqplV]oik^v|z]d]gZwteUysbaeelux|ngxezRyvqevRc~ow^aSq^tsftrzz]m{kkgvoJ|S{`qns~i_iX}Xlk}snZjthsfcehskYgg_rklXur]ppwkupq_uiwqtnwswamayjxzpm|{\quk_qwatbgqlvruerlf\`n|nxZnn~l{qh`qvuiZxlQnvwowmnlr]stz\olmn\nUbxYjlyhgkjcrngrd^qmhh{kop[Vdklgisyobs|_hdfgsZiryZkx}nhhff{j~~n~saZqh^fqz`kvfx_^~hr\ismkqqocgscqljiz}eu~hoemobyl|{frnv]ydxyKnveon`|krjfqshkiS^amw_PmadfjOmoddx\q~lyfwvjuu~q`icked[Zhjuq]ffzkyjkigyfa]rvxgj{fTemgnrkwY]lrqs`il|hp^[gnjuxrdvmlhctp{dg`kpjtf^o{rkeqVbgdEexytydmx]}vqtkf{pbvkzkrq]y]vajbzubkd{o^npqcp{~cx~eme\OfqT~ga^ujkbjslkws}seszm_cmchtrnok}l`^fctczf_qip[mN~id{V|nljjugwkQdsigy_lWvnYXsiv`jol[v]Zcu~kejnq|_sto_~aruZmgg`etaadhifgo[sv\oTkYizcssaf|_v{sflu|d}WndrnpW\~kyfqfZ_rbZuln[pw`kkghpktgftrnlzrigy}zu]x^ukn~jYaqlzycngqfgl^gLinufcixgqpvTkg^paotlu|kkh{lnip_ziwbt|alg~_zyoq||rrpfgyoznmux~ggdomvustZo]jkisuhrvnbq{rsokyugitovcXnkd_hri_xboe|lxwxjzvsu]ukinijXvdXi`ootx{nhwqmizziruk^rxlqWndqiesQtjsir_]og[uq|`Llsnlwbpsl~t_iu]gbrxgw[xsknzxofy{qqzoprorxl\krljqzbticponnvyfwszShy`t_qulvxbgc]jptLzdZ[iknukj`mlib\[brv~voYsbzcprmp~Virp]|yOfNitZpq}ozyzfjikxjdazxk{yx|hkT_jdh}dfYwttrlnnn~cwsszb[~dX|n^tab\|prmnbmszigyxhusz`}zuaeu|x[[o[x]yufruqsbwq~eefizpcrm^dlbe^{wk^ulXifqk`iusp}_qcjabmsee{yj[~U_kyUhut]weTn]dTdgqkgXjwgtdzroZeilYlcljilpyo|u\a^_{Tpl|gowk^wke}nedshfy}k|V`rc~viPPpysi`bcaVPeyuznrorqs\UjZwlZhdlag}qrs{hYssyStopmczV{nylci\qWjX\a^vzT_gcdlrlxnexcawob`nprNYaqohnhrzj}ocrNlucz]~~nxkx\wZrktjox}GbaQnyjZkyfhP|pqdTN}{p|ewsAtasikszQfiZuzi^nqvhencyrsxjnfodwZcWndVqjwk`lmwHo{l[mwWttwr]gzhjvok~dtntva{rgyow_gXZyjkutfy}rkbr`shfifyrThTreq~mhnrlkXetcvg`mndS{hkcTmckpt`S_hjrYg]mz^lYZ_ljorzUTjjoNybrZndyty}amk^dSszRp`dlzfrhnwuXd|jtei^xtqgyw~Te{vmrZsk~vsuxrgSKcjmmaftnwaZwecallzej{jZih{czih^yfpthiqj`aetkhnkSgsUraPfgqsgg\ooe~o|iqpp\awlnqwqdtxj{urtdatUk~tPjhopXZs\iuef|Q~r_albmth}zgxSoemgnorer~qxynv`[wopg\i{[}b]^rcltV_U^}lwvukjk]lfgvsqqo[ws`}jvvxyzmxgserizqicpngYspZhwophpYgwgwYfmruzRerxR\zmufkq|qlqkqshk~ehsh{Qf^qdSqvY`itRc\\x~kr}ltwf{hlvlxpYhojrujYi]yl}kyplj_eempjWt{bd\tbhrqkbkphq~qlcuo]bxsmklxcomnljZecmerzxzn`nnfnq\_|{xnhhf~en[zql]hkxfbfpqiam]cvvqdei|dcxrlZsojq^gmczunkjgoivjawzllyyj]q{Y_}`ylPdhegmjpnotvnYaapv~sujZqqkuhqnXjklhjaja}oifzddVfdhSsrn{jkqop[m|qI_f}gqhjv|qp~tYgWi`{ewm}tn|lYjf`w_hjs]wvivxi`Rl}{Xka\}aZ~bekomnhgwksjnmmrsuq~gorru[mn\udYctbqf|\d{esmr}OsebVm{cd_z`RrbZpn`Xlhrwjpr~jx|pmiexmWcSW]vbeY~Tdonz}f|WtZryjfp~nc~jQ{jh_wiVrbehmzgiq|lkQ{]kmbcx\p{vpsffc}zbuzj`e{ri~sZivbVw}q|f`vvjkhptlhtfysv|vozhhrizxagx|dnaj}^jue^{ckjgYsUqku^onfklnqvwVcy]cuzwqgt}n_hkxl\hfmk`~vamx^hzwpvxdpktzYdu^dlotea~tz}~n{gcss~^yfWyvo]tc`skddkcrdrjnseibgiJddgPs`wyryksqkwUua}]nqo|f~phzqrs`vut{m|wtUdpxnjor}nslRyV]yfykqU`nfnjqkh~{[VbhfjeMsaglsX^vbd~c_u_nsshdftepifm|qrhiv}Zoirts[^|Vp^z|klugdwrs^wWm^dgcte_v|mU[TgpWtvmbyqYZyvuznlbzvqhyt_rd_[XvwMaTvolcgxXf{drn]piV_|torklvHj^~omta|zp\Ux^vSwbtpxo~IJdvy}jXaqh{m_V[qgxRbolfue]rcrxmrVgrkgnsxz|xnv|fo}asz{woe~|Cy{tuLldnhqkj~s}mqz|_j~dolxzjqWc^]ggf}eehw~OmxscMfrno`mbxrdyzrtaaunztxbW{`ycczlaPZrvvnqRs{gqkanq{ZZx{u_vbmfgu_g{qr[o^^u{fd^xvuag~qnmbschg^czeafxgWUymfj}oOiajxbiuevekmv}wsq\cof]z]bNXfllyzq|Tlssna{~Pv`f}^{k_tpdt|yubxe{hudYspk{bdQbzSj~ppfcUocjtmqlgszrT]{kftpp[\efpxT\y^\|m|lXlbNwpvlcrzuO{TjovxfwbUxt_WjZvwkjutryketxglbYdisam^Xnggldle\{vco_mhjgxkeinlxotnk}t|jl]wskbl{mjqUosxo^keviseye}fnrbU^~{}Xomjijl[e`Trqwc^yh|rq|id{kp{kykpvhlvjywbimnrxZosmogos{jlhnraThvln~mvn`xd]sefeirgtl`ym[kkvgye`bvPwu\tXal`vqnxxke}zVvgzwdvD^uhmlk_zsixrpsj}n]w^socubdZn]]iYdL^jhueincrhlhj`bikfavggcuVirzM]rt^u|~oVmukkqrrxco{p`\[O|iqutkebjbucfsxee|\k}hvi{itkwrnwql^bz{|UenqwahYvPm_}xdZqjhifYpnchjyoq~|bnq{zixma[suhswzagffp~djw[z```y]\~]cm]ad{v`frnecf~u\vjqgnorg^|`qn}hrirYgojvngw|vymAjo`bxn{vchjicnnil`enafci^wdaiYslfjn[ryozax^ifqUote]vmnllv{upmqzuyhzywva|pwvwmyxrjralrel~tjxl^muqyjrhc~ylhemopyulmjSpysqordpegoxWxaluqPVg}pge_f|_nzkrhhlhqnogyf~mwoukywseO_gpbsjsn_x~kj`p^yqvyqleemowpqu^Tql}S~mbmmfrlgngrqqunxvvsn\{fs}gpyixo{}kjwqrangvvQvpxrbysl]ip{RysueyrtqYhctfl}ls|khowlg\hdsnzppy]a}tij`lvnj\x{hcyTsggezdesZiok~usyrurfgapo{ewiwasvvrycq\iu}{hpfWrjXn{}t`jzlgaN}wxqhg~cdagkemdpdpsxoyrudnfoYngf_Wefvvqv}f{eLakwnede^tzinfrm]lvnkskbbu]tzqybxnthk~lcruerm^oM_s|~ambVxrjqaclsX]ydz}gy]ympcVmd}raNemjvgivoz[dor`qsopgRzv[jiNvYxVoYlp_yhq}u]{s`ggSlemnpoqeo`uoci_y]jeXmbpaXbjramZrjppSdnuhqrclg^cflff|zqjjjohgr_wa]Rttqus{Xhjgstga`fz|uq{rnu_RrzqqvqfSkY]~gZ{Epdx_i=xZjmo[`r_h}v]dfbwcvf{yWKI}zvsisa|_|knmnm^fuslrpfZ|yVfXr[YSj_d\hzn`wo{mvjsvdwop~lqdqi]\j}^luhx`uy\uuufZsnprRZxsctYvqkjp[m}m_boVfqd~bicZblot[Xquj_vn}tys]bsfpqndj_t\ny{pjgq[mb\dvbeqv|{diqyhlregmki\[^XqnV\e^ckOlZfyc||rclns`ifr_fzckndftjeZsuoqt\y}xih]`nostgx_rrv`v}hmemscahqgfkrsi}pwgfxhP^e[voYnunrrjcboawiBWbngylcV[kzmct[em_{rrluy|mrjmn_jvpiaGQgges{wnfTrUxshmmvp~cxgp{pk~_zPuXpkkygnyX~YmYwvycir{bnld\c_kd}rzes_ip^jldarteezgcxwSjxlPkmowmyutczxsya]setaccyty`qsg_Ods|bdxu[UxnjUfgcYgdyfdu~{xmlc||}qwhekaq`uduizkfh^wdhelj~jgwiva]{}dp\zqnzcdZ}lluweojj^{rZlgiprictux|qnZaxhlnpkcXsqkfx{abezrqycWcUo`zrxbiTsrkiXvboNX`ayn{qb^UXlvS_hZ~wdos{uflhkgssuf|odkbg_|fis`xiU{wiqgqhvtk\wxjwbtZiigxy|_rczwqujejlfh{hxlmco\mavivp^sxxnVrwgkogdqLlazfXbqzsnzbWaS`Y}^mdfropihafnk{`YzPl|rvdnmpjev~ev\fu^jhvYzgpiYjjblf`gjefeUqdo}[wjptu`Wg|yY`mT]jdnikteVhlvem_cmcnoemstity~x{xb}p\odhq{qvwazx^{s~gry_u_h^ewpmYproispn]jkui`qEmyJ]]d}bz`oaubm_yqukouxlg{uppcZUpnoxbUadwjv{_rrgxPs[S^tbejik|rbwqvbx~jcoeqizp{yzU]ihradpez~Xoibueqj_bfgxbvyaqYUtppt]{pvNkodsdsw__gmzq_xx}jfq~[g{wgVvr{nzirmtE}ygpYbaSdys_g]tt^[eouRlq[mh`|btkexdg^kOq^gthvgTz|zRjVf|begJtloaZeuyopjmvpm|eeyva]lipi_ovXePggZifxp{W\p|yztx`l___X{vcvemwtiwj~v\xnfUJjfsuqv^wpUcmlmazrliQnwrsuzgxdyu||ggbdux}w\TdlZgifnrzq\lgompvnjmrmzncqulwkkm`mcUltk\Thxqo_uvr|{Odxz_ojrj|]qrs[bnpjxnshM}wwreag]zuy~lbqfbZm`j]tlXbtquCfvrjeQzq{lms\]t~]euw\e|jpi{xdهbZ}usjetjzzuecne~jlfypZdng{|d~ldtdlejmUwfw`mgrpwvbfyglfjugzysA\hvxayokYumyYsjmfa~dbafy[[}swutWtgxSugZXdtrpjztXw}tsuh{lxszxt[~z`ednjs|pY_Pouvt}}nkty`h]]^^snuYYitrrk\hg{ktkwvpm{b\rdqwqmbpzlsybq|b{nfwqfkrrktmnjp]zwercfxm{}jlyk5{VqhW]dxY^sppiuixY&wkr_q^kYM^pWar\qublpq]vc}lghhhzkQr_skmxiq~aVhvxcr}ntlehi`expkx|}^jbdrgeNsanjp\oIug^ehknxeg\qlyzxZvwkXhcgzae}W~]nSdsx{ncwkthXsD~cie[Cf]cjumnu]azl{orsUd~lpzu|ofnvcnmN|ujs_^etb]siiw_r9h^]mvfqyOrheg\jkouyikbbzyoqffrzcPksj`]ipw]jsv~jznabzQ}`V^Pu`]pozqj]cx\clzipkNq|yxktwjVloPndWcyxepOnsv|ngeVm_^Znnikyph{nj}mbqv{xvvlrWtnyegbajnuo{op_}xtWxpp~Zsfd}yltaQkj`mdnM[d{tpfqw`rNzikl`uhq{[Iie}tlXlyrs~wwppq_qjYopqfLvuhk_\Tucqswpwmz\~rakv}sws~d_j^vs|p}gvk{ett]xcfkSm]s|tswzegRz\pwbk`vjV]witbkts\cjbakiu~vyhh]nw}fcuhplngqgrcdwmtdo}pld}|lofufqvkyb`j`jvVeteirdwcxiYpgv|bY[qwxarfw|k]}rubaZjjneiel^|i`|lpiXyeu[i`b]mkmof~`kooq`u}a`mtfskdnbw[Wh}Z}omg|rixeW}bde[vekodxhmilmrdh`r|k{aPkkp|bk|f}naa|_`rihwdrvlaWhsw`|`wOf^_qr^lp\lgjbjxZkauad}vz_^ewzmgkdYqx\tl\khcrnkgdxn}o]oftqjgnY`kzVWrvvvisWaiy|~ilju\hXmjvi}l}xiz\eoo|gefmemas`^[~lehodkbgkmRtVXgl`xwczpd_uztVimcfumzstwtllm\enpoimnleidiglgk}smigtdsaVtnmgiy`omgiii}jlp]|ZqTheuvWwXyjgjSo{w\`s]_aqzYohafklkY^hhhgYryfw|{hv_agvvnf\|jUqzSpvq`\krn[rcZgwknsrLq`jkbpkoshmofpqblhapnpsdzbtogk{cqxg^sjlkwwqeeLKwf_tuwcdb}~pneyec]j`s~~sleq[Xm{kgrk{\_pgghfaste[afdnjs^lojk|]u\vlaQav`qslljm`_edssfRinpeddu\`oxnxkdn[q{tiaqliia[\jzVrYlk~k`mjljYdrbYf`otgnnRjvcgQvc|jqkk{zt^isYobjS~\|zkoX}ga|ujGn]yenen}mhusx{n|vt[glZ`ay`Wtdj^tRlZqlf|bpibvaw|nZl|]nmpck^gutmsx_t\ZYUaqrcshvZcoqtttYhi_smfwk^qjabloqqik}UhlaUkmfcdjf}u\uTxjeqfqSo~e|[jzp{s`vmvzbgoM`jorZYfit[a^nulT}mTaW{{sleykc^_cjqlmt\fi`s_buSxr[nXfx~_lmlmxqWrus{mfib[iwlSla}B]sN_l[uok\gWjisubnmmvl`xtWsxPsshhgkrhcr{XpZjsmvnxnxmsvyfjb]facstkiwR}~clksh^b|_gai|frY\n\fgepgaSyh}cgnohxppZvXbdz_~V~igrptyummTchxogwd`q]kl^]hmthc|[to|tvt|utW^qqnnmRhmmnnejqpireikgkwlsygulakk}q|h{pj}hef_eqpRXoh[m}sfsrtv\etb`_hirXrscolhlnl{iXkl}hwt{kmfdrw~[rcmdrfcr|fdwec_zpsPub_fiwccq\gh`~rhnw_uvuLaf`jDtejmksxU_}qlffir`or~t`yggsdssnVfjpnZadronvj[|bd[w^MgZ`nstuy}bfnhklYvZ~b|~emr~un~SfxggR__leni{__gsh_^sro^ennepX^v~bl}gibr|m}dgjvbipzmx}uiow]`xm`ck~xigcue{fi}eUae|j[hfdet^jngthavewsvwqgYnxoVg]iinW[gwevcbTjoYre~XtreqlwwvcrqsfXrhak`x{qjfa\qmV{omkua|hzzXfcdgss^gj^cmamoWygmkoYgr_fjh}KnlcHRbkceoV~rTrq]ffn[lWprdg{Xlqph_sryqnhnx}m_ctakimaUefpzmkx]ndxf\qblug}vhlufaslklatrhhebneipzztimenwvvqwapdjT_dkodfxwrb`vpnfhguqrp\yhljtos_`lrvkep^ygfYwniSvxks`dUj`j^lvrjYzh~gbwjqdkjgcxwjoemrofj]\fk|hooxsfz_ue]h{~}\wkmgeret`mkfrkkkhhjcldjgwo[`jyt]hnUkjk\il~{pzfv_anVnr^tj{~Xntt]s^nxnxcafqriXt]vejjq~`|wka`jan|gyivaobWznzxlsonXcecpThbkfrZg]rqqbvbnt^xappomukscmrckokza|q^vImpickfVvhk~stgt\rpgqGekioknf{kdhgn`hvvSooMat}W_f{lvb{y\^|gnWcrw]n`dhn_qzxdu]nudpX{Tgj{|{hbs_ppOgtojowfistzjsgRevpizkc[is{{{pasM|jpe^Olptg~muhd\}njl}wjiuhc}y[ic}quxeedbvishmz|lj]_hqdXhepsywrtcuddlmflssix`aqI{gZ{Y]FlyWua{kZvmrkbviwhM|aWtWfkV|sndywhMz|wwwllc{zuwucqyBqo~_]bbktqe_v}Zxoj[vRy`dhXczy^cw_zetwutsy{xnf{ii~xkcjbzqvqttyordZx[h^iijpqZ]n[dy\mod}nmr]z{qplvebfvhhntaenthor~|w`Yjvbg`gpzk^ftymbpfilhnwfqnpplZ{gmle{p\P^~bee|[kii_{cfd]nZlc{s|ipjvXhzmpl~czSsjm|crpppj[yuiliWmvgkwq\pbXrdqm{av`vt_x{ohtcypw`oeo{lbxok|{biszyriZhkrotnuhysjvylzfd`Zjivwkeyxlqmpvlt~ltksqpuvPyoglrhxun|ieUT|anhcmm|W~um]q|uuqvhZhpWaspuxhsexe\jscvmclj`ic|hgxjboxgZnvh|mTklmf}kjwjlim]d{]~g{cfdazdsjbzspogxrsZ]Vk_fbVmfjY]\hm}iar[bQobw{ifalVul}okZ]sy]jyZyv|Yipdf[p]`a\ucfspW}Q[kv{uxQkf~pt[l]g~j\p]pg{z`u`czrhscsqp|bxZbjpwVrO~h`oezlrbkjPRrhgZa|rUchqyFq}ripzptmkr}qjkwyjYr^t\zimes}wx[]k]~Irdt}lrcaUdSTrcqqith`}k^`_^v]ZsYibdivtr\g}wggcghsnt[^{{nkPJt}dgt\rf]pxmx|x^kZj_cxzjRXd{ympeq]\jlvhn^mq]Tdf_Wjmn~jhqyzcU|L|{d_qohphfxugtOsYmmXyu{s]|rhwtj[pfh]ynzyX|l[Uzthc^vfUofzenr~xrm}R{{hv{tizzqpmknipn}wfl]a[znpa}p|vkl~ka~r[pY\vkxf\nmJpugiZaUsX[||hogut_\exm_ViUj{juzontZvr~}qYyo_`qo[yWp}eveB{[vf^}mvhxyclniihbcaqzj`k}fsglllpzuPwpWcolj}Oxnqzl[ol\bpryk{Wkfw_cf`vkuqez_keqvgl{pzl_fpistrdr_azhtl{sWedhvqY^mo`^lyelecnmxpV}nlnXnja\~e`dkvybjWoFgYxySappekygje{l{[z{ur\inlonlevrmfzswhz|rid|rfrrhu^imkvlozdl_ligrrukgprtst{ty{kqpvfjn|wtn|augi^bngjyu{oYggbmWzrxklyboeerg}hsmhehltnwmXwsefmdzgtbqppwg{|qsluwpzijmom{cpmuhx^ibzrttglfocoqjo|iat|rtomnwonqtbgokpkxdvwkyl~|jmlupmfae|qepnllbgtshtxpgtnpu_}unswgm|~y|ucjkr}sr}mtjkqlxhjgljmqjxrgpeifvp`}`jrhloyq{y^Wvy{qvjxjsoqpacsvmlqWwqqithkglfsncjiXpkqvww{gqwfijimseiprbuiylvgrku\zaho]rkujhejl|mtRbiosqusst_kkjzethqkvqqcuqls{qbevqbhxezj_llrvornviu_Yazossda~siktzdQzijdztuz|fjqmu^ohn{jwstgdktlsj{i{sinpi|xnW\nKZkl_fomxjokhhOebzoed~xf}uvgj}dybpnnc_jhkp{^hpugtnww}feqbXolvxyp[~cvhkYddpgyymtususiff{nrYgrcv^fp~yqphjfjip{wdhd|guqeipaw~l{pvd|suyqTremalc|kxsoooYhsho`fjevmulc~`d|k`de]Ux~^ccsolmrzuXf`gpx_srp{ftmnqtzekin}QksifferYuzka{mr\vmwsh|aksddlevlhyxjsm[u^llqsqewa^t}ec]kkn|o]^cjxm|aXacv|dtYnirgo{cYph[tWu{ux}owrGjihm^gQMyXooQtbdfbru{\qkgv\l~vjet^[xprntlswb\hnPnYxosorzvlpqtfosrpxyc|t`wia{nYao{ttX^uojvwqYxnmo[jqkgix\elnmhte|cYsn{yctxz^gt]_rxu]Tdk[[nfuxqh{ivcgadkf]qwo}cwgyqhnhj]{|oRVdpVmacpl|vq{h{xzqoqnry]wlvy^]\yjiwxfTubqqijg|\oreluqhypiutjgijkiimc`r]iaToxjdy~y[fg`jvvmvmzul_wuvur~vewzvlquxidVmnqyojfudkep}}wyyphgpizq{e~rjfdmjp]h]wplal^ipmtfrn{nwlygt|[~szZibeesp|qov][winkzotxhmoa`k{khkmoisr|hxymqtru|~ntc~ckchgshmrayzkeeiceqjspl~erjedx{]jwuasfijybsdckxXrmhguoji`orgwpnvqs~pl~{fm|wmtoyjpmnzi\v\iwnkwbahlzf[fsuzpohgp]^lbo{iteoffr_nhlp{pbgyytjtl^qshzc}|ivyn]|ra{dg`oidhzqaobtowbmwgkeq~er`thq|i_r\pdihwmw^deku`ndppol}zck~ctdcadrulwuomkytpgZhklfuw~w|crwxknlshrs~uwzkusjqyzveXpnfyjowfpjnyiqpfdtjahllqdqstg`vrrxyqjyd}wca`ktg{su]xmxnvcqnupuhpzmnwhsvr\h|_fsrmstc\l{t^szXhimljihvhonrddut`lcXv]csu|swYnhqda}rapwru{mjdrh]vhrvpzrgi{gpMq_inmprwr~kh_ofjfyd~sld{_dscrylhhjspohoc|iiXqiivr[fyynwzmpqiuTerxxrtlUrjxhlh[csgkurrurwZ\fmmxmmq^hs{ngxcobi}rstqfiglxmoolk|kpclyr^|mdomtkqqsmlvtp}mvcncxx`{i}lmuttqqloqjwuvip{j{ksdpmoVtecp|c~xfVrslvtdnuqdulmr|}ritar~qsxfzuvunnususpsvjravlnqoiglgi~luhr{wxypiybhhwbmgps_bq|elsvdV^d|eyf[iwlr]qkllyq~wkrtle}m|vnsscjwlurrrsn~pwyemqiqunfo}tg]autla}qmijqilg}tsyrjla`waqzdmfrssixrustuhu[pe{kowzqm^]v~sxhljshhntmkumnneyx`tlxjfop\dnvwtvlqgftbihy{lqomohgV}qi_scpxfrpvjfjyUn|zhpr}jjflpu]slumnudqtmlYeukelwcenp`jjoXtpiZra|mmhpykwdbtou_hpxpauYgnYh^p{}frlivn]ai}[axfklw\ifqpmlwsqpkw^_pth}vrdprgiu]ngtzgsztrcloiaujm`mbzamnmupf|_lnvykcw_ndodxqwl_l}hkjp^scbVfwjrdapvulhfstvmasellz}waxjyflvjo~gqpu^buzejzs~voarfljeysxzeladikYgmcxezkoomtedabsjq}ld}nwpfes`fm\nwplmrxny~`lgfx[Z}zstsote|sqnwbqgucwTq~pfmirogtxulq}miglrrvojsViptwddo_ls`hcrhngl~lwvodtmlmnSjv~wgrgfobqipdfu_~lXu^nzxu{^mevp~\gny^~i`avksQwsf_srtk^l~wpnvhhookp`ysnwiiyeutntol{{srxquh[knfhqdgrk`mfuzkvccqstlmejktaespxncbgi|frRc|taf|{emml{eypthjvp{ko|ge|s}jtt\ox~vrsZthOqqonnjxdY]mzkekgqz`ourwilngkVwwcunn{f`rr[fwwYgi`oksvg]sonjnctleZpto|xpepmoXZsugspzuwb{f{dd{ttzpgki_[^rufaubvyvfyzd{l_gqp|bxoq{avq_asbvwx\k`um|ceivgbsfpn{~phpymnlorwroqxvxyz`fgtiwnqwg[sj{koejjdckdkQjsoh~tOkgrwpk_pbyidvxkVjnrhkypx_m[mykehumgejtd_TwfkHjbtuldqpugi|q_hrpheq|^miabpt]pkjs[frl[d{fuhki|tucm~rmnitivxf~oqj~o|c_wz{uioqwdq}lnjcdva_deeotrnllbcnuzn}_bfxmx_`{rnoeyhoyXinpmoj_grutixpblmxgmtstgje`dnzgiqpnq{rtpwgoyjhxrirqf~^umqliti`vbouu\]Y_jvi~rgenY|tZ}pf_yw\o\o{pyfseqv^jdsgoen{oxYeftgg~uwlu_lop}{mvdnmdreo`vcnrnpfZmi{phflql^glY{}cqpqplzqretv}`_kwhnuygy_Y]s`dleix}Zlnnw_mmkgtwjRrwmev_ksipr]p[bererrcqkxcdmolnepcjqvfloklbntfpiou]`^P`fxrhpswhldsqh^yhr^zmtvrxhwq~qdZjkgzs[dSskcf`wsdj]tt{k|nYd_s~httdi~`pmekv[qonlks{qwln\kohmWks~Xpqmhil_{j[c`vzu^s^ihle|tmyrcho~hf|asipwjif][r}yul_rrXsndmpalbfeb}vzzbeeftzdllupvbxafndmspypmkcxexhmoa^f^\moltlncuxmlrdr_oj{pcxuopadrrmqmtkd]igfihqptjiliuXbppu{ks{md~ipjagupmqjwjr_}|db|tyfaohtjmmq_nqmml{`whqpevnqbllWnw`v{yrwitp~kocomwllcbtlokpc}e`owXtrgukjobgohgi{i}\usYu}ffws^vofa\xqai{`tpXsyczrdgbQ\arumczhruodNqpflk~]]^nmlun]`ermkr^ljgaxWhLoi^qhii{i_qrqrqbwtms^`myh|}ohqgxuvqlpufkZdicow`odvyusthm^Ql{iqfhiuyptwt^ouf_ysyphlokjpxt_ple^euq\`cxmq|et}sksmgugocsucteqjapigf\ogqllokkvklgkhzuqlvkrhj^wodj^ihojrXxpnqxbsln^ucepogrxksqxxqkhagdpm|ekncquf[tqroq]{ca_jn|qocobvm_c`web{jdvumttorvlhkr{ezamrn~qitPnqcruc|xsblZjiucjzcnjonne}rhsjkqphaflsolijnorinh_Wqsnaa^pp{VZidzic}{bxluhyyd`m`qylpu}lrg}u_pugloiyyismtyntVojgqiqkZln`elbyqhwvhn]pcnqocohhbmhsnmh_abygykmzkxeompif|slfi|jombjka{rbppa_st]ybmv{haltnb^zmllxk\j~|hposvbv{k{shz^u}v]wz^sctnociupcclknfknzgprYetgnwel`wzxyzqmhqbjyu~vwml`]{tlazUde]]vqoo`j|}fiyhrymhZmzgliYv|ovpscTxytawMjzmhr]]gfi|alW|wvouxwwjk{zac`sfn`roljfedyjko]nludorqjj^zrrcupzsvpVlwa_yofo[cjxop^ycim]h~frphpmmjvf|tjzpmlba_nwksvZjmukowsekbqujgjs`liiUSxusvsnuu~zfvdli|pchptylfZn|oh~tzurbzh~\vsvWf|cdu^{qxdxfzSswatmbspqsqlvjrd`nm}satiaht|hlhit`ghnnTcpkfootrs`~i~xgphj}hiyiqiYcxwmsvivsrq{qhhizyhu~h^rni_{iiqxvsvrromshoogt]~ilpZw}ljuY]rvfdxjmvvnhn{dyxgomjarlhtjvt\gyrnm}hstproipkrvwifvcjznuV{hfgxksyuwm`w|srfgofkqf|iyub`qgkxsfoo\pujgbqms__nhomkugjh|o~wtnrqqnurwxyzsmkx]ptewwqehsgypz`mqhlgworg}jhxjjp\nz}gomm|wojdteu`whlgwvg`{qlp\kltijxxljfbmjrqowvx}u}x`qttomdneogsheglp{poabcbwpspxplerkno^ciYngg_icrnoo~ftjxndnpd]khonkjrfdwfl|mtlrrn}q|njoxil_ld{li]istlxU{worbesmvzir~jtumSnyknsiefkgwnzwcquurqkaywsgfechksvfgvZvfudkowur~dfrnmqqtew_lmhfp}hwy}kagoumyqiqmvaml}|s}giz~hk[cqennpbuoaxtzjxlolptlnlluqjmml`cymllbhyinajo|octy~plbkgmpmmdvwowwbYk|hczguovji^kmaot}^ry}rtniwkunxfhig}iksi^~hZyr^fatemku\nd|qdsl_f\rhtlihtmohnnaa]dsyl_fznpxYop{TipmdhjtT^fnznUsZbyngg|[tVibuw}vlpkhlzecsoubc{W|^Wm}pwmdgzjvzdaav{jsbkhXb{}i|cegxpmqvvo}bmujljtkwmopieflf~vnut\r`zZ^mecpkqv[Ybvpktklofinbh`dagobd~\coktfh|cgenVsvf{qkgwkmkxtvkkn]`atmSqvWqw{edwpfe{h^b|y`vswigbxiqtr]|`ut|ng``{wwgdjpd`p|p^fvda|oX[osfn{zcjptU{ZfadgaohwVqsf|rbeucqqfxtp`Ynk\}yniuwjvyfqcmls_|ylf_ivWwvoslnMaoovpWt\geglrrksl[R|piYkakhdydwrzo\uakiab_l]zdyrpovx|ZmwrqlmfgecrzLYpqyUimuYa]|zYwtwmsihgmy~wlVVZkouwjuyng^_il_ndg_srNf{ackrmskn{hlpufrxatWkycfkmkle^|efd`dof`l~lwj}]uljkmiddspytop[wfcjymid|^kkry`gpxvrk^s}giXlt}gclogsojsndcsxmckilq`eobV]evklf|gdfplogobsa`pit`vnp[aoq_dl}esygVqjptwuwinfcnq|httvvonprfchua|zmxvkwcn^~sm}Y|lr`h{Xjppvsmzxfpop~wgWvvYgibzsgum^{O{kdd}p_lnqkw|mfikftm}vvfqhkixfg`zqk{pqqhdrpap~bhfdzilr{lmuokzxwqgd|yxie_ipuevqpjcwroknqkti`rewmkynjnowuigwugvlkrmlipm|d|g`ahn`elx|xkfui{drsruimw^Zgmregkypx^ukrlugYlkL`vcnffuoeztmrmkjkfurdfo|f]mferrwqbpvjqc`sjkwtlj\p|vm{rglxgo{pq{qjqmpj_ppczv`irhot{ki`puidhpsojezijs{_xnWkczrc_sutjmqoutuwerdtp\njkkymbvtk_qomZstavkmaqr~ijWgpilUlcvnhgywp}`ilojns`jc{thife`mo\xnn|sgk^zu~msmgqldwkqnwhho_j|eufr]up_li\{pjge\wcok\bkkbndiuognn^xhljgdu_gquZXis`khfxootx`dhpoz{vjs_cxuYdbdo\gxmn~~cgdwsfssr|iim[p`q|ilqzonfgutzhiaizjmziwnsxvkgbfukkgk{z^\olxmtjnjovZqso~snd~kzfntr\oon`~_kWyYggncaxmaprrlrcgwZ`tuwqdqlojfopkvgnmntpsig_yjr~niioveqhkj}s|rui^ekstixvdpq\qkwtwnwqiuooSon}mayu[chg}wohkoawftuvpyuwim`chcjiooemmowhskbeddbzxjb}~xv}wsjmnktucuei}~laqividoktM^f~nrrhjcc\Ueqktggpljenzmi}|uuk`qn~p^np_waoshwmllflrvxcfnl_pajipgXnkyxnmebj}qnh[^h`\nlnkfjqoezhlmeiothpdkppqj^lwgoci|upih}hokpjmespbbvfd~xonj}[q^su}qjs}rpomymonvtjahrzwglru~uzvrejqe|tscciv{zj^omzzr^rdiQrvqouwpqfswelxvganda{vxmpojsja|hzqfonn{rtjjuujihujvphzfpyn[snkdjntnkwlusi\gzhurhlwagkv}elaihvvuXvlYcx}|xbf`dwrs[gqueuntuhsmld_np\eohVgfc\Vt|xfwxtcgTuvu|lnevtoheq}inwogdqwdnS`zV`sjvrhxcnU`kc`Xlbojditmoqpd^kXyZuwmwa\fklimpiy]mxhgkm`o~wl_woseStm_gklbhyj|t~s]qhVbslkozeoulez`nmh}ewgkr{{_cstvfYuadxkmt|mfohhiqltif]tfczfc~viseotiyn{\_izpytqfdsntzeeavptrbep}mimbnRfwrru[qeox`x_uytlp{]v`flgqcfqklrbjtim~t}j|lyprokntwyqmukxxiufeg}kxwedl}nmr{e|]mwodpyz_e|sby|zwk|fjgjzky}ybqphujfrxm~rl_jsz`t[jyllomwngnprfncdqbvrq{np`jglg`esgufy_ugghptqh_rn~nl~fmm_{}itw}mndrtgoo|sizhnovm]{xZqnowgtczdvjoog}~oove{uaubyylx|skulaipemc`{nvNsibfpyicnqsu{xyslgmzxoorhf`kqimngrgmsujsmzng{wjnifr^kry_ipgmjo|eynruvl|lnenq__s{ssab`gpfwrraskne]tuwvx^qdzztk`ukkqnqrgkrgtfeujjwmcp{pgjxwfa\`tn}uihoavctotdq\jltjndqvx[dvvwf^zyh]rkssctq||gikbokhktju{qpwk|qdonljbjoqokgkfphpp|uwtzcok{xihlmnntokvehugplfmyg~dXxeuyvro~wl}}|khgpxhfgg`[bdgtrl{fduqk]s^i`lepgmQ|efmkrmorhhktdt{kX[|}hx`bpdxckwiaglqqoyioazv]Xdt[erlz`{kgyYcdrsyq{]qjdb|ydukl|un_qbcmfn`pe|abtjxwo_rvfewxwmvmiopu[g\pgdnwzo{yrosywwpZwu{v~nlVntif_^fzmcuwymbZylopespg{{tiooO\fpbhttgcye_fxwnnZ{ut{~yatm_wdaoeinxjvqtsyoxkrmtdmhohoeeZi]d|ju_kfg`tccxoqtfrzsvnkeikiydypmsofgjpgeeejeslh|qpjoklpsdr`^szrieflcooqip{wcsitcv~]i_f^\b]`ik\mnked}Vjs{tm`otg~uegx~nzXxke\t}lqmUexdrfjg|}n}spulueuy}r_fhvy~]v[k_pgv^gky`j^biyhtg^e]dpqneNtwttiqiyrtdf{gn^~fd`tia|ogosyZsojist_]ipn]ckjedhvt~yw^i}qZxgvoqhnwxu^sTpypjjyYmi{nk`a||op~gfnnbjdhjegyuw}ymmsnnkTodgW[YxwP}ywvcozp~twsgyfr}thq|~pop~hcelijodxpehip\i{lc[_xkqntjfyz`pzrnthvu_ibzx`w]icY[^pjwm_sdytrnymhjs_qzfjoxhdndktmhffsccgvebrotjqvnjkk^dkeygo|rqepddvqhwgcknqbymutmhonbbhcguiftjjcywo{q}lisombgq]qvt}}_umxnqpkieqcwkzhzyn^ordiqamuomko_cojopasumjkgqhrueg}wlsekcv|u_gngekxlnckpterplole}vtlww|hz}{zbxiovtkjXzhn]uc{~moks|iyjo_vrwumekordeklcrruurzugopowclhnneftkvgmqqdlhZh}vrh_\roiotgulqkin`{q~ddyopcukfnfzgffaus}gn[hluwo_mbvbow[cg{gk_uqkl}xlr}m~ymgwn^cciaooouipdxylljbuqa{pjmfz[wewmsruforvhxlolgtshu}ukb_oq{`nocluey]`leqn_j|hpzlwkozrlslravh^lzje{`ijfzotsju\rnelenmup`fqovwZcrtkziyfdgzx`lm]kek^`goml^c{o]gbwsyuko{zrzpucyres{xubno`qmeyaunlq`kefotq{kix|mswsweznljWkrjs{]eZh[krhbq^][aumik{\ycdqbcXbyszr}t{luz[pxtidauhrtj\p\vZwhmdcc{nw]ycbttjynkgnapahy|wfngqcb^vij]~{nlnkld}msynZknrphs~sr`rR_{anVql]efyhjiauhWmhhomkfsnkpgzbq`hwalpp^expbsjtxkVntclehrijiQjnovuwneclcygchiyysh~p|_wmn_levyhvtlu[nlry\gcjlatht`ld}qwjnrr`\mpYcuq^pg`ptpb\yif\fjkeaxqkirtexchkohkhjhdzgg{cru|nvnza[iujb_qhiesZpczel}n_monomxswt^p|_`]\m|p|qfYo]mixnbtd{l}Ta|nrevgih{}~enjuyb~bwouoTemh^elkidoiuU^Zsdkklfjmftdltjelejbrmlprhcvloa`p_aonfdityjYbx`fug}owp_|knkgtea|Vsue}zt_snh}^|[_cvytksbw|\jpugro^htq`nyy]hlo\`hsdkshbswq|qfz`Xtwewtnfo`y}}wpt_i}o~yp`y_ktvlXvywppYW]wgnlnyylotqYm{p{ng^|ingvhikW`ooint[hxjaylqf}ezioypxl_oamvkww^sjmp|^uwllXybjcqMWlnUYguoeqox_vjr`}XhrfwWhfjbnffhwklmyqf~ojyoEpgx~as~}xwghge_`kovr|m^xhp]|ekhiijom`xj]dhmk}tjfehsbhnifh|Y]adgq|{r[Vwbzylleiemmev_erucdtwisc|jxTfbv~ief_fdzlacckgmhbk`Tbyngc{gvtux`lddnVf~hjizk`mkeqjpamhnzcm_sdekZZunltjvlplkmmpvy\iZhdodrwd~lYruwjnsYxz_~~ep~qolmssXnzwtkfm}heveqmptrqbioY{tlj}_Sv`uqiimdh~`r|cp^uWuityuhultcnxeys|s~sinmpanp^uhwvyvofitjhnjzjmdekelfyVtlxpdghqfojryVogiymtlgjj_cfjns^ll^yde~z{Y_lpofvt`qvbdh~|et}ohnojibl~uq_~upqw}ZiaTtlf_iwaxpotzs_mxne``hxgtqfgl}}mscrotpxegyh}mgxemknnj}mnudomiqfke{X`iatw`uijykjtbtqn^frmsNk`yi~{oubwdh`i}pzaiWshmekkkm{Rjs|xjnh`pmc~kpgvqjnsoe~ueyxhc~mdnz{cfimpioxykyyesmdlkl{o\wjdpm|fnijsrnhssjRepj`t\gmrmhgq|xiykevoo_ocdtoodwplywvp^kUqak\|vpanb~jqmiiZovbjcnmbXc{flfcrjsX^qeitaucsikjj]qnmsgqj{Yzxs`t`jobcrmhco_zidXeqbvu{uuonhip_vqowp{qch}}kq[k_cblumziqcp{skzqY}godSrspqesqcip}n{khghwgthkjqj}{~zpcazdZzwtrb]hmanrsqarhwgk`msRmunn{h{uhlZnhX[olngojk`lqlxe|{m_qinhmrcacYaqngsi~{ovorm}jhnxmiqjbhqarl`auvijwXfplun\kcj[`dsnyfgd^c\hos`j_rhlWmbdzbisqt}~dp{Xd}qYphlnidviczZu|vwvge^qoke}po~bait_noeqhzRX\ynuegdlusjvnbig{ojqts|vfwofrfwfnfcXmf}fyw{l`srniq}]upuop`txrcqpk{Z\astzoafmunii`hwlojovqj`{pgfmoqlb|`]jz`uqx_ztsk]aurs[gchiu]piralwikkk|uoldapdmjxiqpm`gsUtasQeppqWYaxr{{{olkodpjboigpw{ux\qptmbkvg}~q{nwpnljncnq{rNvn||`nh|UWrgmckfddioocyr}y__{wuvmabi|xzjoulmmrqqnuecxsnpqwp^myghnruvxn}kujrpzhhvecmzvWdy`}uwmrgwZvcoprrdugug~z_atkla_zuhtaxyUwnp^mnj`f_lfxg|ow}~_vuz\tvfgms{uedqr`ltnocxck{`q}}mvlrjqzU^jsxvlfihgs|c}pjvi[^bxhsovh~fyxcfd^h~gyvfz`onf\lfV{nnboedxnizrz|e\{umaztrcl~~iemnbnlkxwoaz~^{hxVhboupc}ynsfjyxh{cnelgyhe^troifu|gfkrt[f^tnSr{raqmmppjq{xmXuzoxeaulmk`njm`q}u]|}`slfuTb\ibllnjmhuqudosfmj[lhjyVpxrdmruUo~o]pzv}lOn]vzqyPghs\kk{gipin`iooultoncgusx}kt`lswutmj_gijzgokd{ndcmgzhb}a{ntgrYobupmy`i\{lhscdc^oaR_pafqqmfrafyxfiilq|ahvvYscY[iuurtmjMx{vxyx{od^|m^jsq_{z{nfkmqW\v_xkn{gu`[gj~}vzp}~dyupm{e}ixgngd^|}tshlhlosu`iq{n|pm]VX~dqxtnogptufzknkdpjx{_bp|n~_no~obhto|jfxi[]rgshslkl^gf\mntqij_hpoaQhmpe|yqgvwkvufxcpfmdlpwrkr{dewh|nirpog|llofv^wvwroglcta{vqo}tjhdy|sms]nzssfmj~ihjnoeeiptjiuluYshbvzpwenk^rvmtkb^vutqkor^wpxmpvmoxpojgmmehprmvcmkjwd`zssadsdmxm~nn}pj[gzwxol|ivsjezixqqw{|pwc`wdwmiuic\rc~j~jqcm~}adyvo_`d_siu}|vij[^obkkwwsy}k_oxjux[foqzystv^jspnvls|zrkrllpqvnvm{}h_hepbqeblisljpgrznnn{\llidlxeqfga{miwubckujmlfnlqo_di^pmnt{jxvskn}vzp`jxjqinhuir}yg|ugooZxiupxdizqmvpxsbqvvxvbiw}wcpjtaZqYnretqzfe`lrwompjsoz_{]bwyqbiueVmjymsutXj[[ipbumz{cbcbvnrzv\dg}g^dxx~kwl|pdkmh|np{qyrs`}snbtfa{ythsmoivpmrrwYbqorrg}qpmtmflhvyogsiqpeqjd`mvu^hp}jg\trljged|ejzykmudllqidlih|pegzfWnaju|rszwvlysh^hxm|lkjmktu~izchg\wlmlj~nzk~zwcZavbo{fxov{bbbPesdbcr^nXtmjahjr|jcpokjni{nqmgoh^gOmhbZ|fcbdhcxpYd{kcgciixktt{ihvr^w{x\cgy_VXni{urgkjj[nw^v`vcVg{mynu}jw\nZyhvt}_rx~rpollj]|sxfgidulnsopeis|WZ[\wlieoil|ia]yvqs~yp[jkqep}xgisusViywtvq[i}|edt]tyjjhktcfeoc_^utwdhs\fvfgwpgdfuvxvblkhstr|kexf~mffx~igioYnYnlhSzhglzAZiq]hlyccnhkk_sl`{svv^edcxpif_}jhSms^Uvqq{gd^bq`jilsjo\{tghkgmKn^njbQnqnmtsjn|r`aXaoglrrpeldnlqklxkzl|Vf\ya]dumd]wehrlvq]e|rd\v~utrkoyynXj~tmZbstthnn^klay]mg}douwmvydwfbhyg_f~slsamqfjic{_fywse}nv|^yqtokxySrvpztvpvbpmpsrvdbva`mxsfpra|^zsfx_bxhxaglh`rfcl^kdUdqsq{qbrnhcpoexp\ejz|mgszn|y`_ojpkrah`cdi|`kmxdur{}mn}vbuaZj}kn{o{mqjr\b{dkqsoylz\\wpu}kkreejigtYqvtvi{pr|elu\ptvpdmdo~}tyhorfs^qSomXgrsa]x\`j_pnuvjlspVm|y~rqtqmilkoVvlksv]hpusqt\ils~yzbtr\fwR`omvaopjfY`odzxhug\xmnfmmclhoktzwo\uhmsgu}viqpixotvcbih~Zbjn}q`|vjkor{opz~orseu}rbswl\wisejhgbph~amsmayamWvt{]liWtnsvqqyk`VqrsjvsggqhndXtl\q}hxakmfmgw|ddw`zbywxYuxtntyfKpq`dmetb]ausfpmmywb]]t}ym[of[frvipl}azpvmvlgzablbjjnmoenxkkikrv}jrngbq]{k[pkhcx~bxu\mg{mypmfnswxx}~kl}~^`mbqjsknjpsy]qnr}igwl~`|ji~zb|p]p{]vv^{uyqksy^lqiqmbuojssucmnheo{fknztdmuwyaoxs}gyyvp`parQbalxq|dpgidn\bupillbwxws]xsx`bpi{qxduu_fmidfd^wjjycyp`wps}l{wtlovvphgiclhdnu~pl~ismq{ihcpYmpoorggsr|gw{fqkeiqluetyzmqresi^csmuvruhsvsktniux]jeqju\vo{dudqpxjhxx{gsYwlyiatqcY|hvpugm}l^ianqg\^ycclsarsihuonkaortbjansq{yzsZsmmouv}uypvxmq_iseooc|dpm~^qlvdhdgc|mmxn`}wumjrdtmekit_di`zsv~yjlgqiomfmlnsxZ}_Uesjgomhm_mZtsp{hoejillwprjohy~n~hi\lseyhwtzlrsonwougpuxtPwwjsi{cVaikzdsdgu^kka_pxjck_rcns~]yq_Spg[v`pjvwkvf\jchitdvahxmko{ku\lxmVtin~zmuij|rq{nmswbixbjlez{c|bxlqlkxpwnkl\suyVmtixjuvlhujbgtx_yijoggqpdzezljkpaXgstf}ybbbjlkyts^wpuiyr{_uluhrupkVijs{vlyssnbnz{kcmcfurxuqv[v{nqqzyki{dmng_eomn|odknxroynolrqmtZ`gekijvgo~ezh}s`zhqrk^mm\hcfxunjrmnb}sbzwrgr\kdYdgojfrzljhoylr_^zeSfjafmzcvonurecdmrcgjtmy^j\ehorelpf]QsfXvwezwxtpf|qtcjZwsiiv`ohr}tobtssrmoilsh}pm{ff}qp~ufa{ptwgcvy|wghfhqdth_kn|`{mtbrqxwakwm^tgbmk_qfhlie|lmh{nasjm}kgl`gak}jq`rci}qkyjg`mlxps_pmbeynnkqrrbx]nblwkznjici\iygookcrdavzpzderwncwhjj^u~r_nggyr`s~nwobzmxeqqmw_zjv{yk[rok|ajj|vzlmmii`nwahcefsjtt|xojZr[fomfyqrs_klf{kbwbzjqfasemRp}iglvzUkwnhxwhfUlvddqlwk}dV]\yquxkyxcgnhyeb`QhzategagjjxqgYnsjruh`uegow`ezmZbjcvmipmeskpuolq__mYg`rxbckyvkxvdjp{`bp}gr~bp{sw`asgn~wvey}]Zchxngusjfqfpecfhpcfovwjgjtj[lhytmo`codmkytih{mujkcXynapbrxkalhmhfotlseazjiufwf|vX{qvjqfp`spp~udnpQnwfugrWokf^n]Zwh`]`kekliuzcXz`rm_vz}jxgaxomiw[cwyagubdrgxdt|vvwnNOhln{]yzp|isq]kVdb{\~xPkj_aaoe|xqosi{Yfh{giuzrqk|hmtktvdoqs|nk~|Vl|imqn~khfcmhwn]fVlervndikjqbzfngYnao`m`gexmgj\gbfjjvlmxqY{pvbcixrowtolppYeyfldijalschn_ur}qVk{t}i\kzsde`xm`pl]kpdtjoyiifmrT|kpi{muqwjsulcbhqu}jnq~zfcrfxhuygpehkimf`~ivjbp\fkdumuc|hfgb|orn`cZyqylxw^}xhv]upmdaeqVydyri_mqxjmugtquaov{szluwndkirecigkvuxim`udV^`nhgZtjTxqgr`qwom}bZ{mfwtbijujSs|Yqoipksjnhzeuyamullr\wxmojjed}Yl_n{waymjjhc^t[mlnjgodczzvlt_ylow`jmkwtd_arfkdlit[c_tnmh~Ymq`_xwgbreubsikgobog|wr}nqkmbqpdlksp^pbrZrWkea_Vntg_nkq[s|pbk\~tjp{^sblsdZs|ztypej|`wynjvjkhm~pf|{qi|mq}f`gYUfugg^hvrhmj{Tijsqjjq}hncupll^dbbk}x|smlledkjicbiunonyrxclv]jo`SdlVoc}svYtg}ueoltlUioqphcpozfgdhsk^qi\snpXj|sokkaxtexig~pkz]dhfkio_senjqqofpv_yfY[hksteasjgVibdrTgrbgi^cqc{hc|mM\smlgWflnjwuvuvfr~ww{pnzvqani|r]Vgz{~nuso_Selrcnxjm{}sjkn]otmeyjf|g|jrvpx|whobcxihggj}_wkli`cxwtZpa|}vpvke\xqewekwzrytq`hnxnoirnSwritmcyRnlde}t~bcdlhlhsronpgyz{yyw`n][qoxkbowxs]\jo^_hjnn}uno|{ppgwZletnfxZdbZn_bpqWgeevadduxkczapzquxtgx]zlVsiqipdsok\n`rkyoentxom}\glshwbs`fslvhan^tmttsnjpo|snkis\vghouff{gbeqvh_x^jseth~hbZl\klae^q{nfimnhgdnmzh|buwjn|k{Zsxmkolss~gvvndwsZkyi{ekgn|kv`rkk}^^mb_rybkcnmlXjjhtfc_|{mcqi\}jpdz}jzqte}csyqbuteidkfupqkrskfliqifljjy_ovd|XmxtXd\eqmvw\qdrvveltcuWccowi]mtwygosjky~owtfkg_s~pksfixutgT_d^pcp]dbwg}plwq~s^ja{zoutkb`j_Sy`lYabrhnmlrw||o_`yljqsrzi\qxtghds|y|l}fgm{]ttoeUnmzus}kjdkk[}[w~peX|rc_k~{ttn`p|es~Szf|qzjiqar{mqnxpdbsrwwunyahxqmh~o|]rcVkWrlz{mqhuelhy}|W}lnppqzq}u}ifsthtijvcivuXrnq|cnianwpx^rhuxehdgXpum~kffyXbrmukogjd`_rxirWjs{pmr|gbfqfstjc^^mumqtt}feperr{ejxoqhaqigeq]bj~l`stpunb}regkq~vrx^vpkZks|su~skurqbauvqk|}hw]svegpeko_s^mal\oh`{grlsopsorfoti}bhfqhr~otq_qXmlj_gxsr}fvszeccu}cmms}gjnxhtun^sSelfp}owmx~urln~r}snsYlrygmnt]ur]vu{m{gmhwcandXvsN{tssvmokwv_[i[ZqjWXbxyamfq^ZWlndt{^k]qngZtnssvignr_pVhptewtm`swlvk[ellcslsbyt[_earjptnvu_Wuxc|apbnxxzk{sr]ofYh_ruiu^lraqfvhqgnen}n|jlmlkwa}siYwlyay`pbimvrfsxsjzttasgpmrl\fqtkqpjuhkho_cWYxtaom^bmyq|itwmckh}pUatco[fsdvxypae}tfpZhmUomqfyes{igtli~tyixyg_|iuypfsoo{ft|uql^jehlcfagmgickjggsyooadudoxdosoopom{rzwmt`soiihhul|uOffmgwgo_jfbnuxfn]nmbtv_whxw_snpof\uft~i}iowjdi]kjc]dtbv{wnnpvgnjqybqhs]ll{}my_auiwcgcmqdlylenfto`mhlkce]u]M_trcruqi|rlls}uyjrohoinsrhj|ahqhczl{`vyfg^mww^ynosfeyisdrximbrpzW]kbokarrkpe}qs_qslrrnlqpmtzodkzzsurelukudtiqlh}ysfzd`utfjxuWtosrpnzannym`pcposcwnfqfvgmt}yypfqmimtdmjthot`[saklflrsznsl{tsqthcowvetgjd|lletpqdlR||fp]{lerwjfihonx_nlzustd`qohthoolr{uuvuth|pmjn}ibgg~vZpytx]v\|dygnjablrmvqbn`bijuwvn|nsZcn}}ofqnhkpVssekjdiez_onvwpdggqke^dmmvxkkdw\dxqdi}|fzgeha~pkoxppc~mg]uzfkv[zajl|linhsw{h]p}|vuezrfnqqtvn}hqugksorvgipqh}WzwydasinogMsxqkvy]\waiswrufnkxqykgusz}o{txbwmcykupdktznr}ohv{s\]zrbil_`sh~zkxi~rqogzznV|knbqU}ms[hws|kgfjpXlskkvpq\l|syjnt`n_nkzegmrvsvtmmmnnrjw|ahoydlr~lXbik~uvumgilylprj]}lmcrVSkskvsasyyj]im{hkrvsomjw`gm^qplphx_rupblkpgmvh`{pj}uq_vydmYwk^trtlnuneTvufpktosftgffhhftwnkl|Mmj`j|szhseqjw\k{Xijvz}gkccmddnujlhiochogekqujbhcvefpdgql]deapokpjrlQgijnk{vfoopd\geq`cVhysur^`^ezd_x[oonig^ktixrnlwtmijn~qgrbaxeaq|_]chnhujruzani_kytyn{g`briuss^sjcfhvxvzdo\w}~odZpl{tbu_nr~_ldrnmobwvqpq}zlin^Tbz|rg`n}hiehpt{frcoqugqbphxlkcipru|vk`ecimuaxaut|j_pcWuqc[srvtkn|oYgoldl{rxqevjsvulk|{gi^y}q^opeveqotbnfnxfw~an`frtfklgarhjv|hgdhsiyifnfshldc`[eXopox\cjtjjZlivmls|wi~siXtxellmwwdsiuvza`dagr]unzobhureptoYqqyl`xn\zmgdQzfhbUviSqujkxrZmpcxlgqaTasanp\siobrpggdlfpyogisyw}uondjmllhnfscxgjrcvkpmyasxyolrouhhwjxlgebhgdyeeZtqtvi^wtpegogynchjyms]klpt|h|ounWlbqgacslXiq_z{jk{nsucucmskencklqptyzlcowUsilssb^oxrZsleedkogc{xbq|osX|r]~qhvmigfafZzaysvsp|pxt}gu|alkt[ohfkadjkaaubwyusnj{rreukuqcjmuwhfl}altlqg|k}w|wugdmqbeRptx{`rn{|\kpubxsrgu}Zo}qok}qi^f\_ecbwmva\oqluofzhhwdnLo`qhnj[lqfbcsf_vciz{fifnZs\n}szVnpvomdyv\Rukoqfhi{x^|rwathoych`t~lwtnetpljeqsz_hfvvu~phh|ldnyfjkyovh^fumY_hjjdn|hpjqqgly}naahq|ohfocwv{qokibbzem{qvf]t]kuftkl\sowtjjniY}xrvegv}|^rxodnwsko\g|ctqi~rejtic{yognjht[liZmqbhv}_bvlv_umern|w\zzjvpdjjrf}ooaxqkhilwpb\mnnwxwjg{Zjlwulp|qyyykmyus}qau}zwwroskp|rqebkrhi{jlghwlrhqopqbuasmjrizrzjowisxflqxiVaoaaonk_imillkoji{}jcqzupp}qlthq{rihnvrokuxognwpgxiyop}gwnnmprsewegvzhozon{lwkdlfgdoldkunwmmq{roxdbl|qf}tup_gyinptdpo_knteiplqiyhxkyg{ltsolkgkwyvxjmru]bnpcflkhxloqirkwagmfwt^_wpj}uqtozuirvgxqpg]leeunpwnrmktiwzllnfplyeunusjemmlkpqflufitnrorvrpldp{pppumwguqxmhjlewrpgdwrkczZtX^{fbresgvtqjzgjakxees_m}oq`s~mk~qyin{larhqnmnvglchw_}p\]nriwllzhmctnqnkqhvnxr~pldebnnybksa[qtuqvOlj_phvcwiowzcp`q}cujbsmbO~q]aezf~}cfiXwypkznzxoefd|nfyhpV_msj^tdcZthxxdrkWm~|jmLccg`crnxvgp|lhu|}Tdr}vyipU~frhbkcmo[dlfizwdgf_kzfo~[[ibpydi]vuvvvjnc~zkt}_fhbm`_h`ti}[i_mjfwvtUz`kl^p{Ygtw}hOhw{lqi}ihzvggpW_^ePq|wmzexywt_ddcdXmpvmZRqfa{vhnkgiclonftxhrvrnrkl|kwelphfftklxsk^ewxv{ik{vtwrprfnvpslq~jwulmooihnjpcdpi{femcuvaq\peyrtv~ro{giidfhk[nhvhieobtdknglcelvjwwervolnusjriai}zsnsrvtknuldlzlupe}mhsilnimgutmijlwtvquoxlfrmuzxgsd{uqi}pwbwcfq~rt}ejzqun|ovzjqcpird~hyyhmh}ksvwkxjnw|kiqlqeZyr]fp}tw}tvoggtttlngmwx^byd{Vgp}tp~orm|njw]rls|gwppger}{odhpkjoxrkycutiqmykick{sjwr~xjlmcir~wropv|r|p}b^jop~v{zngsbogup\j~Yugbq^h^^pl~fwlzcpz|mkxqg{eyx[lb|_mfw`kimlfbpuu_d~wscrqpZthk^dfh`swvlb_fgtncn{}[g~c]peqpalns^xjglvtrWiqxes|htdwnoh`efuxpjrrtjfmoonsbeudaXck\eqogtpdhjw]yv[llznkcp|pgnwtgzguk^owmft\my`{hodrkvaqgflx[dzipdfssrlroicqfjbiwaqyn[so~hysljp_xyhpfaYbzyobks~atkrtfcupvn]guvop\ssueyocn_r]{btpzzorzhi{VqgwjodWlejdmrzjlpfvse_~iHenxe]gxhlzfrr{ipxf|sqmkpssnZppmyjalgp]zXmf`]ttcrzi\imou~{fpejqdczeqcitwhqi|aqn_z|rzjvbrmprrxkcdlk|opjitycvo_ogq`t]uivhyowpwwsokqmm`_]d}wjn~Qbwbp`hyhusqppgd_kaoxohqa}xmy{onsZpxy}gp]vashn[bdZ~ijy|qtUsgmjchjomhn}des\f|lvthznkosk}u|uolvinqMnhywdlwiwzc_krusgmnxirsrz`rhji}i}mjszmo\vemyqv]\|f}oylnjhuagnf{zup~v{gvlyqars^rfkksckwwkyjswfwiitkjjnxessrp{ecoxl}rve|kwpqpjohsp|clnnrxvyhhe|txmpnjmt{ntxhuykfwxkp}wgeyuvlnhon}kuqufrtrjrewmdsyvrjtr[}spytqrxcqzb`qlvqkoupjvxTeuhw|qnz{}xzihidw{wkkewpynslnturnux{mk|^~jkn_ieh}q~rx}izjtrg`urwhZrin|poszspeayoeiyfyutgpdnut{zoysuivkutcywqhwnw{h||vgklvw~n{deln~agkwe`}wywa|zwj{m]vi~Yollsmvfpn~h|prcmlzpqrxomqvorVqiju{amnl|v|g]kymYjlhxnhortqqzuxpeswjhznuuqrts_cdhrfus}r{tiklli_sjpx{gjtckro{dhkl||yyvysxqX~}rtweroq||bfktjr}c`~qzxj_^ymsigvzjl|x{t}_ntf{j`yekkhdyn|ybmzkynq[icnhfd`yZcqquwiXjtPyftw[_ext]yqrdbqdwnupgt]pgoly}ifybfgXay`fjl|y^rvpen\^eimm~uowgrVWiiqijjfhljhcl]xvuqpnq~qSoknpywnxdqz\cLzqr[tjzhpg{lao`zrlpjhpiulin~agmu_muqpmp`psobsoc~huq[bv{ewte`zfdgf|u^rpUskrkkv]b^pykyzglpnvZWi\lsxpufvjvxfzlsXzOUieuvhnun{gjkye|vfjvulruvpye[dmbxOlj_mvi|ankcatpgpqujxpwvimwtl^nbdnii~W_hqleZxukxpp{tmf|eo{nwpveWvok\gppxrimfq\yqajahitwGsniYhxrfrd\d_Quvb|dfnsjlwken{g~raecjeykXod{pywtoudto~_hUuYreindgzw^\qomzZ\luom[rthmrl\jogqpdpzkbszVabrk\fncoykjbktt|crnjqmp^iot[ifUkwro_}{p^[t`dr{c}mprogghel~[xs^czi}m_mrkqrkrrgzz\wdqidkp_rml}ow`kmmroZevnagdq_maf~okjgjtkxho{admfuzzh{ieY]fouqcXexw{gYvt}zijm`iqnoXkd`fj`ostf{yzkkpulfseb]j`varkezgj``uc|ohouh~wukio}o[ovaoejziqgffcjmmee_[qdjnq{|vrgzZ\xgskzfk}xn}rhq`ijkdnpxZlpkvsiyhtwozyurgy|cepq]\vmgYv`wyr|llqvjWvo_gxhyosx\vshuy`m{zfe~jspwmWcoqYzlvsl}mdjw~gjeuf}n`tefsvjmotlnkwojwos~dpiqn]|o{pnmpkr~wpyorsclmpcjiuryfxos}o\jhaxksrtwjr}gfqhsyuwqkrlh{a^tgskukdh^wjqdu\jj~mqbusyeqolkyd{gfTozuxlo`vuw_dpvcy^jmqfxppsaxsdzjuivzmub]a_wwmwnzijgbdnvz{ainooltt^szZ`cla_mrkpjggmxpxz^yXuxxjegbrsurnrwgefrgdlebjcxjgzh|i]lytkgytqphWiXu_et{r}|~}qpmhr\mylvjenbZcsfcmnlz_wi_xc}mop~ncpwiYxSpxlqwufuoeslujplkkjzjfjewuXhxqlue_yyhqtyo_giqxrk[\vetkmievZexfhut[~`ioqgh~edzknvfmqqk_rnnjn`bmrfghh`[oezdklod`meucomrjdxadmonujvoipffkuaporpp|}sXmuyYohgq~poshfjgmtbjledwrbaZcohg{kukmqjosyls[gotrvcmvht}hyawzwdxsfdp|fxsnrk}mzdhiouqiu]w`sb\xvfaimjnflYmkniliokroeh}wqcltzjdlp]{muqepnpes}ujp}l{jUq^e{qP`scugvum[rudZez_Ukr`_unwkcbtjsbpvoi[up\srpzwb{sdvgxo`{yitq[rrqdza}]rkkWqnev}xtvhkrwonnllvryuh{{htoforj_ipos^hefrmxiug|l|btdpgmvuxnc}oquvVmmdemhw|j^yprhsnhmiqi\lciWqillhrfgtavucpjmzlz_ts~j_bpr~sc{dlrfayxnnaV|jzlhgxnasaumvook^tnXlpd}cp}sidlij_kh]`Qsgt_skvspplks^lnmiveitg}mmsqqokrndjly}pmktiia\aRkgl}aykskl`nmx|mgjV}epw^xwnyvlvzsap{ca`Y\{zxhazoabkbov|wif~aeoqrfedepgcVje`wgoat|t\|}^}lfhpjl`cftoWl\sqome[^Zop_tjmk|cnq`tu_dbkrnYwe}fpaxa^elrq|zkz{lcqjsa~akTqrqrc^Ys~ziSnfu_yad{fjfrviflhnnt`h`xnvcprcf`vmjki]krpoa\ejquh~sugevY{gsiqa\clzhoR}~xggeafjjws^mtNnlXhvvhr_ks{kf|rlmnkweba}pkrZhkvv^rntcfdyueqjhvY[qfzueYbjrzpfq\vvmsithqcbjhWgpcuw_aephiafqeg[syehjf~yWfynfpshmv{{ntavwhloyrachv[w`tpgmepxgwgzprppmpaosvsu~fUbpusspicfqo]GXhupcbg_coo{XrzYoim^mrmrrsncYd_g}pjsi]do[dv|l\jxtua`twriqlwzs}n[`yUsOverr]}]f`vXhlxdnqrkxd`fw`otar{crvbmltfohkeh}mbZlchbmh\mditdpq|vk`ayud_Wns@wt`hldutdlajfqzsspooWy}wziov^hqkv\p~shlto|o}jliuopvhm`o}hquui}`pz}h[mrldgWmW^~sduevvoh}sxfvahokmwqsjnjovygjoosoz|^yimaovcxdil|qwplmbby|hsrooa}iumlUngsoimlrwnrmvmgbpbtRmpkewhjcofs_Uwyfio_mfVvtcgtftov{uccadlfg{gkfak}^lsuayZxks~tnns^mug^fjekonykrYrevrkcrt^sl\k]qWpftZsmn]|h{l|yjhmfkelojqjnzitYtjq|nmuylnvxOggyovsrz[afuskcaZnxhqjhexk_mishoyx{ldlnyhhtt_qd|ywassaXkrhl^_mgrzov{llvmtkrximubqilcT~ujlbxqbta^`mf\bycjckuod`eo_mg[Ssx`qvrrnlahynmzmtkpzjo^zqygamWjvluY^fxm`{zory{ebawsont]YmwZxxz~l`dm{t\botmi|jukh]}qubx`stalqqogjhcb`gmhrh]ohu~_rlk``dtruiuZzcjhrfi{p\yqnkemfotaa_xsuO~Papdrtzfhftrgtsozqswzdsgpvvo{_elr\ef{jkk|vn^nWzn_ljiddqpt_xulpntq|ae[~yesj^wantmjd|t`^Kuzph_~~mng|k_cxeU{jjxsx`fdu|agfnxoe~hghby`bane}rltkmbisvwlyldtqaWh`rqsmarkdzsWcYs{j`ucQn\aqoZb|kg[Tdkex^rcEqlhc[lcfnyyd_|a_wjfM{rnm~lpqmyo`o_qopi[nkmqstodw]dezxol{lzvzbm}vzka}|yzwmqlo}vvw`dfuijgklnynnjiriejz`qejsb{pe|~fwqdlv~qSct\eugmcskdqhjrlbwkmzxjrq|mjvlltuzo`i}jmp|juimfysipn{ooqfvmogjjs`r`rp{ihips|l~pjken|crmmorortgqonoxoekyjjuj|qhhkukobonbjkjegojgfwd|dhqxpssgpkkz{iqflrta]koehnfevlorkmix\opfsi]]riiznsrotwfutoqlzjdqkbtkospsmhlirzvqiifpquenkqptbpfumqoolrjn|wsjsxqmmmryrq~mylkqfrolhdfo|tdexogh}b_}ksawjl|ze\znpbhogijoyrr^c|w{tsjfd}cthan~fm}Y\n_`s~gldpmtmMe{gvg]nvupyugpjeyndhjalmtdyoo{w|bqk{em}h{[kdbp~gw{tqsz|igsxLkoyyX]`x|kxnspmi`hbhr^yjKfzjqs}mtZvxd_ymtmvrrl\lq\rj|ojpaltkoz{}irYtbl~jjnfhcxstbkxTlq~ggwujr~gz]~lpX^qhrxmpflodm}zwjiehpfenzawqLipnotjy]hkvjvkjbljopalXqh~{or~zpzotqavaagw{sqf{vyruwf_rtnxo]WoobVdqd`\deibzz}k[yticxxY~mo{mplc{Yqwsnywqks}jgmkYdtgzruXgjj^xoeutifo[tsmqkkgimnugslm{kbi\yxsppe{sYfzjmzo{vkoujgqwojfmpyvw[yijbhcZhwu|sba}wzwoeptlb]spbib~zuhums~cnfzok}et|}h}pYxurtzwllktjrtoxxoviggs{mpyctgghapmrtsspx|ttmv{yXnyvfn~eptxx\pxtyhljtu}snvgj_uw_lougx{fzrvxmpztjqthup|jvlqz~}k}l|l`lj`j~|mngzhroon~tgvjsp{rrfionmbn}znsufpp`imsjv_{tblnoqsxrwm`Yyxrrk[~]dgwooon`k`fusZumlmxkfqmdu~mlymm}eqxnsvwkv}]rqcsmpgo}[rvl~t~cekayjuyZwi{kamqhqsmpzUhiqx\py`u\hdnbdtw~wVl[{wmovan}pipodlohbmZ|PadyqxigfnyapmzR`[fnpevaWvk}fois{jpq`xeY~Tm{rrfkyjceivbgkdtgzpoZ|bQeomaytmbewVsvs_zdjVjx~mohkdthxxbgszqsvd]vlfl]kjj}}v|o[vju_ir}byhtgwipsmth_pjXckht_i{Qtk[ccnnnl~[{in]rhhnpm`sb^qinr^ju`cqa~h^ok{kxm_zqge]rzrp]ccghmr~i`sr`p}np_Hhkjiloxnxgpvigjqlqnsxzonlxxbn^~rvruijtmqlfguwl~lbcen~t}rrsjhe]rwfcozqzr}mkro]}nojqcfrocoqfc`d[w`nwi`^fnvpxxtb[\u{hcqvh}v~qenk]d{fmfnpmonhsrichlphx^vqhaovnjXtjlusfwnkdezwyooxq}qrpi|hr|qesm^dui{|b|_n}}qqx}okoh~c|fuZfplxh}vz{tt|plz|gaqtumj|rd_{nmxdkodbclftyh`vizq}nkrundrsupw{_qxvcsU}tiigenxjpZyzqwq~lzkcfu}qsmtpwlmgsuq~a]|udYidim{ooWjhynhebwrZewi{kkt~s`w`tkoWlasjor`mpsqmfeuq_xhvrwuf~nhbqvtymwxmmj}faddjqdgy}mjorlfooegjllqQo`sgohqxyqz{pulja{qsvswk_`jnyslrpgvrbhUasljk{noooxinmrd]selgzv}telg_fvuct~cmpmlqb`bnk~be_odXYcnqwllhdhrakvosylqmxhogtj]o|gzwuylfnitggwlytx_o{fxpjdmjkpbq`^|ni]zkjbun{gqx{b|}elrrfswzefnobgrxqtuhwsXj[tt_kwyjhswbsaihovmx|rsmmtsp`kyyypiv]lgqgr}sgibuqpwtn}|mosyvnxdx_l{xcofujhwz|ttnamnmtvwp}mmczrxkaducfujb^hpcwlakiiqhorv]odm}vuvvr[qw^[sby~fjgkp`jnmil`rxcmtiuhnnukorpyo|ajpl{eqzd`twgt\zi}rfemvqo_iphynopihqpeRegwscymtgs|xohrxcwklff{]poqapyljljmye|axtzesc{pghqgwqrngdvdzqjpindjizf]ya[]xxt`v|gmraYzlh`drvinvruhoyfu|sgrq`o[rfstlmdtltn{vmpemzywz}t~jo{l`pfnvgsu~|hrr}asnj_iviyspiyl__hjjm_o`uzrwvkug_atn_{wmvaphn`_ledrj~\bsg`iziasfkzoogqxwj`knuh{mfurpmzqxeqwcyalntoWmtfml{f`]j|tijyszf{{irwjz{pkq[vozpzosrrdZdutipIw~ujygZjic`{wit_prqobzoo_s}lW|l{nfysj~sg{uoojy~ey\h{vryrpg}ggudWrj|jtniyun|fwwk^tfjessvjjeejnixruwrq|wrhxcqpfrsgk`oynm_cx{kwode]hqv``f{fze|msagjkmgyjvtkwuqtX[oX~rxcgTvgko]ubcuosvnef^dxeyqn~tfvctrsukW_zrp{z`vb{sqcujtstkv}}]iy|Mfvkft{m`jzeQzxaqf]q}y~dqmaziZ^w{kvtjievjv_eu~}ffijosldWolm^y_\s}kpmwqu}wiwshhsez]cjhowfWotgioyug]hn^~r~i`{cme^uojdsejk~lr|egr_drWnxh\uoobko{semgminiio^lpsjllxhc}dl_Mk`rl^wppomoflo~jhb]nfn\kfphdnziup]ogsxdt[nj|wpjhomgq^eqoeuudoejyqph[|nclf{vqzuihiogsngkpajcjmz]flzs~hkunl{ltpk}trn`nlkn`zmcg_{mrgyspmfcoyemw~gdvtaYyk|}eqiwrXkrosrjendljpd^tt|teidn`bm~oj~nvjgv`tgmwrmgnqltzqu{gxagjooojanXfqgumuepocqsobqpivj_pmkmbgjypyn}mi`jeqhm^vgvieidvhenmhoxelrvjjuscfxvatximuod^xYekqzmzkfqoyZzhrp]mY\w|Y|c{aki_ziq^uhu{knflgc~ooZsi`|aeydgizaqonf|scj`zjneeum_jknuf|^wtmwpvsmlqk}td`yhVod{kerohirq`extmbs^di}sivgwvdakekynghke[krgjzom]eojcirzz}jkimcqqn^vxwkbqprmZkp{one[uwok~mklh|^[wwlqqbjpultiun}ttu[hagk|zWeznfhmbajrd{d_zloj_Swbpzzo]icoj|te]vu[luT[llryvm}lbn|jomukut{iluogf`pfgyjntwduropchmht~z}]nm_beiqfl{qyh{pjgkhyhqi{ji}iwuoowfznpvjqarcz{l_sm~t}mhk`n_iktmwmgz^v~hixeat^f_ka`psyleoc{rdcfvinpsxofdnqomfqtblqsjhhdytd{xuppy~vcooiwkTxzkgbrmqjo`embjnldtqqvsftie{g}iing]tfh`hkfovriammo}i_iq~ibcfb~xnt|}kfpv|ns_lgpx|_`hs{vlm[tdhcr}xrm`zmvvderymj}ncxmsmxntc`t{lkgvu{\vkhd^{jmxauuicliibo`hdxjrfWeksl^aejmecgwxhrygvufzcifgigpcjWhvcbshrpdwqglxksgrpmstjd\wlevfogpamccel\aj}lmsmwttqghymkmWqfxpkpojlpwtxmnf_sesora^|fY{ifl~lmnwai[vlZ}auiw]lz]egnsfaiknftypihZxqawnehxnjwkmqc|ggj_bloncklsmql~ot_jfunssez}Yp}slnsVplgp|a{i{nu|iwp}umr{sfeyrsuizbggarmrkqkVrlf{ioen_orgskfyssusw`~qqnslaodniyg~ohh}mjrprlnidgpugas[orxpvirm|mtqar|sb{drsrascnuzloghwmlqrhq|sw[t~mbowbX_|}mlvtq`ga^pld|kzfTozmspimovfv]s[dtncjlrxlgmnnWtyqhsQVixfpuphqlxzwc`mfyb`c^wco_eq^mmp}uehsxf[~^qQr`~h_ofbsm~llu{sVZ^z}rdgkrrfhrhzliem}\lSpPvpcfdZlgdHdYvimtioqsjp\n}xyqs^Uicsobq\g~kkqgpqpg[kepOf^swbjng~p`uk_nl\`s[lhx~eoar|bkdTarx{XvvdhtxYlzavwoxvaqssV{Y^rsxo|lVRkozuptcmxgtu_Xbsnbtbk}kqvz`]gv`eeorojmjqt\bVwnXqulUvr`qtjbPkmsfdt|obt~nqskgXgnxiwYXt]{ofzl{oeeYfm]byleigx]wdzzgboucr|ryqgw{ss}rkfxk_mnojipuq~ev{ozv}wqppn{j{_qkrqSzv__funiaumddaqVxpvqpiRTzdbpcn{cnverhuWfqw{UYkilglXpt{hfpfuupVorvlwhtlunkkiafvwpgsrpq{sxtexl_jawbwkwcukj\mxxgfn``alag|fSskfTlu|s|l~xzucfqocqem{cs{llwqmrn|yswj]snfpflgcxfxpvhzb[Vto~vjr^rwriyldmjcXltpqnaqzhiiqiofwfnXrvXuXniq{mhcqdxix{Wfceuxtpigftz]g`iamr}ipromug^W_`Zkars]xrwhvttsiv[aZf}eweqYuygujwqsymYayxinu|mlgpiwm^jk_msku]t]rmznemqmtjYd_|mhbejfprzbcnpmlpUghwpx\x]x[tqsYl^pgvp`w~]dugibyN_powo^q_f`kssdodlwlqnasoyea|mj[_^enjfv`al]fr]wyofuruicW~krkfsj`}l`h]yuedovfh}XqqZami`vsqvtu\fkrittbp|rxt}VQvs~vaX]Yttuif{\wd^Xgvlhbov`smtiRzp`rpYh|pYqqrwpym^^kmrawqfY~ptru_tgrsd]tlrubnisbu\]lkn|lan}gtf}gkwlqykeh]p{tOfwhxsnkenhd`ai[jfziY_ynppkjiqpcb_bxUi^poh~kttgqmfy`nntzto]`m`xo}wjp_{{ev_x^mk~vfq\o|murljjcjw]jqbibq\qW_]fxs^pzdpgq`vqf`ppYcssrun]l`^olt`rnflsl_l~xuzstn[pku|l`pzohn~k{oprnokn\kTmnzvvgrpj}livcc^jqdmv_yblnmf^mfnmb{tp||pjl|oa[ezlj\pnn^qYsifixqwatmvl|plmwkwYjufoeakealjXkqgch\xqo]xnrymnqde^f~yqk|nflvgdtosaeysytmacds_{n|qvn[ioj`ecvhpoe~f]mirs`w]Zmmifjtsphpftuiok^iulmjlgpk|lksZvwxmlvjl`vtiaxaemk_sxel{_kybfe_abyfblbs~|tlnhmtuyqn]y\nplk|{w^|fjgxonaqad]cvUm}orr\rt{uholgw}j^mqqcuiyzwvQwqmwbkjxmivrhqhialjtptvovufbnwijezlgsdmmszockeu{ddirwlujxhquxthogfn~Vunkkzwi}azz]pYqnowr}~gg|ftwbiudfsbwvtquajm~UrgyR}hlp_vnyintz`dqnu^zmrraltlknvzehtjpexnlm|dlkfpqqigd|afneuko~fiduYo^n\n}tvvqhu_jtYca|rgu[Zbjiawqsnblftl_wbnfhpj\{ezpWrpzhfsVpqkfWkjxk|rmkjjYvomk_muzicbyygvizkh`irw`_wlw{r\wiroeu`hzdWkudR|gs~qjYe_puawYmkldmijxiq{zm\|fufgeuhx[pkdgdos]f~rkvirymjiljpl{oyfyuoajsiddofii~hlcscgnxhfxo^sxUxXdoyknlfokvfkvk~l_kme~hqokvi\RaUdxbf`bwvrdxqtac`mzdbclhonzh|lea|gWhv~vzeuyuuZmeigwzbpczjqfdlNkxtdsyfysrfd}nmerh|pjj`z]qir{hxaiinlac]ouq\[s}ldlnziuiuWdviXlb\\jhpbdfm{u`l`crz_ndetotuizypgvwnjehlwnr{ppicXlsxe^j~ajscjmxzxe_XgegqqjuxgoUf}lrdurenri{j\jXsp[gtrqjopdo|hdqebuU{wymm^ZpwTwtjfwqj`|hoe]i`diapqVbf`vta|qkzqd\UVkfzsh}v`^sgu\`gzmfngoi[\vxYiq{``sdkra]syr_rjgrxpnvtj^oo{nkct|iip}scl~dufbn~dznfuwh^hyupfl^[wqnmwheofibi}~pn{~qvjdolpPg^e]orZ[{ugcdne|gndjk^}pofy_mdbwwqqjesn^]Yarkzicvmph~\{nm[olWuo`x]lji|uounuqnblQzxmcfW}iktmxnop{|syvrlklcWx_lsW_xvr}i^qlsrutRynociprvta{gx|erbjyXfwng\eohmqqkw}lZkbevsnddhY\woimgxdfj|hj~\uswoftYzjhousq{xd`k~koonp{tit~d`xS{d{~qdlvfnXhvxucfvjvvi`hyr|sYzeZl][fuhp`cn~e|wgyiszoiezS[nxun~u||ldwn~___o}{bzYtgm~e{pcafwklzmrzb_ibnqofm\pcqxamrpimsqd}vpiiipxy]~cr^yvjuhknrefr`vziljqnqtbmzV_wqfr{khnsoks\wn~wig{zovrqdjs|sWvsan|nfrdzto~`lpgnk}vyrrrhZ|rqfljk^ydgemu]nqqmuduu^pzbZwqX|ihi`kgzjhzu~au^vqzhnsnl]wphyumxv_mspvv\x`pkwqudmdw`hjcrm[Slx^u[ee{uxc^wXqu~s\ukvrwfk]fqgsocunstZsolikwm{h{ms|dmikvbfirlajs{srppSuz|{^vfsunqelusie_l|qqhsoyjlkxvjp]orpcm}nrmtqh^sieXo^n`dzsVglnbvbwtkiZjh{ukwtgusoabekRzrv_qt|omylh~Wppoc\}w|xscuigvWxypqp|}txjqhktzc|lotzkuto{plhnkoprebmqXp\qnnsdhkipffcmxfwdUyori^ojyo~r}shiujiqlqszklmipkomheliqYzfdzxow`d{rqczgl`p_wgxuldvijixzYer}vbdu{~hXxx_qxnkmwercvmolporl|rwwzWfyijphuferqzjglouqszxdqyufhjppvYoyqonfmgdphtzsprq|m~]^hlqlt\bxo[ktpkmcTal}jliqvs{]oez|ujXnviV|cpew{{l~mypttaifdsojzkmjapoc[^mls|_xk_dh|go|la~|ltsho]jrsljfysj|sksayapypynrxkvin}pw{ubkukv{w|{nctz{pxymmkrjfuws}xgmrkxfcitrsgy`_pc_qk{ou}ukZoms[dghqpukq^eic~jbm}fz`kphohzxowyzrnZcYjqqTgtpfYkSxd~ssetR~wbarhWvsjdcjvqchbh`cqpxSomuw_hnqXn|ioa[XevlVsf^}x_lhZnpe}itptllgjptjb}|mvpqogifk}nxdfleb}xukonjacegqhjosqng[\x^wKmogyhsgj{a[`zadptrw{yn}npswaq~lklibtno`hUxiknmqlrU}Ukvidia{g{`shp`ibptcenew~wkjulecgetewpvqbXfhtnd^d|~nwemnel{sUlcsjltlo_frqxvdrmvcrbxfzvsfo{fqo|dss{llxeimrivuttzr{osqhpkqUtwipksvism{_kmltxt|ayq~uq{qfnom`mpjdwtpmlkfpphkxhqmaxmljrnouvpykqpuiims}gbylhtmst]wnjdwbv|blsx~`jqsukvuqf||phsmr^|pndu[hv^olihxkeqoa~eqlf|u{vottzf_ykwvucrYzqkhoYyuqsqyl{~tupvlvxlul|^gvroex}wndWgkrrwp|o~trzqsthherv{jgdypfl}g^tgqiswo{hwoUc{ln|gi^v{u~qjczqyf}mlznqjjidxznl~vjgi^yvpxznpe~eiye_~n[fdqwxtvoprkzb]uurjib~~cZyk[hfi|prrumcgvfluopjlsjrnessooln_txkbigf\lciqlsflv_nZpcwf[efnurfa||zpuX_hnY`ssltufdpZq]mclbz{ijmMu`Y_mjijqmXtXsz[czia{|]{lis_d{Timjmpupju`imT_pqbtql]lhovso^yq~a~}yd[rqg`cerrgftlytfcg\niwaolmlibbvwbd{anxhhp[krdqgkssghig|tu`|uvfQmsnvtqqkgeldspmrwQfUqvlzzfadvpciWt^volgiql_fznmupXjc`cbvgwZsxZUojjvihonwcbt_ngzpqqjhccgjp~sQZ~oebtm\lektvY\Wdwg|`sey}g{aljgqwXqpwvwo~lsdbf}mxmcxh|g^je_~pj{z}c{ssrkd\inp~e{bxq[gjmf\xi|mkxnuspjjyis``mkcqeuf^iYsgoiv`}fpuiusoxdcpinhPoqlrohimjpnte`twhpeVrhmxuvywl|u|r[wc}nYxavermi{pjpzmisdgbjoknnbtvsgpuxLseo[jqsasyvn]^npvrpzyjoppkgapmhji]^}i~tj\qyikpyg_h^xi_uqsu_dffgfswY`vnwkojtd{zjxvnfngjt|Uu`m}qsoextxjp`g`j{~urhin|aei]zsnfrrsozfXnst{eWtjnz}qklucxj`jvqjfxtXowWtywjccmeou~_rme\|g^kfsedbu{ju~wmtbailtsdntusvqkgtrikkgwsvx~_{ptic`uxhr^_ouup\oury~okqZnk|}xnmynhlbc|]tqqemlpfygf~Xvef^qgoy{hpa^xx{vngjuuk~xpxynmcttyrnizifcbx|gr}pwz}rsZl[ssym{xvpmvamkkuxlegknuspuluqwsxskYebkpinpfvjwwkj{nqgwZef[Vh{uqrsmqzorhconk|hn`hglz|jjfpeqzmj|lo|l`|eUklqlfuki`h~Zyyg}esvwjkfw]dvtlupdqrkz|k\ibqmksrgobsovkcy_vda|rpvx}e[o`odpo`|]tksp^]lh}vjbuwioyialedhru{plxpq|onUwogrby{`~vYngrwodzlmphdh~pj{ktvd|haXqlyXub]cjw_cbsxq{ylkf]\uvv]~gY]ngkaxj~supblvreevmnumznqx{`ctedeg~ztXnrxjtbqh{zpYauoedhfdzgistiy`i]wlTra]mdm|ualbmlcagjcgolidtdc{nttcatuipd][kya|m}yp{fsnepfwsmrtjn`nokjdnxmvciycdrqgueqmxohktvfbdc}c{emojjk}sz~qjkjfgk{auwxjxtqpzqvts|noukbVkeejdq}xegmoq{w]oolmfm~|flqsZql_k[difxtrsknlrcZujrp{hzc_`|~dXxtq_nnup]gvhk`ot{tS}`vlmsj~qf^pzgfy}~wmf]snq{f}xilhqwbmljwosors}ej~jlpk]_ijpyjqioworear}litvyuxoj]l]yq}kavdn|ttlgwiWdqwtehj|Yk~ccsibozplovgivnwfjh\d`aarwtppm|sepuc}{pjrplXX~ZYvsj|ojglxnl]hrvY_Wrurd}kadydlnt]uzwbkf`qf^olfYugyegmzuknrofcuskqj`gwv`uoqqg_cywerujxntgrphthlpow|symgcnme_cx`qmusjuQquf|ngwwis`vZjpyybpqmr^gaVzqyjlosr{buwayfcgk}zsnhtxsej`epjexx{lslfksrh]omokwhorgwqmbdhgwmtmtwkxv~xi\ctdi~coeqourpuxV~}eorz[mljp~rfdfzjbq~vk_g\s`jixnirUkl]dvclywyxquxuPgk~hjtdb_v|ivkcqetcp}p|qhbmkyjzvjcoyveqhmilslll|zxosxmaxfjtpebpwmmf[[wfku|iorrot^ootkdaaxfjavkwxtliU\adi|zxofmq}k{_op{gcorinlxq_rsytzhakxccvukhji]hoqof`{tygdvytcU[tjuolly~q|k_cwokxu|mkotqg]kpur|}_pag{dl`hrdc{bmxiwsdipVo^re]}wdg{cVzygri~rldrzmvjqjcxzkweiaypqdjleuko^k{vnl\pm|^pnm|qm~V}kskcqjo~bglVx`thbldvn{qgnse^{hc{zkm^ngykXjkkeed]`llqjfmjmig^dybp`tgbovhzSld[ju]|`fpwWxxVfq\zlZwvm`mqneyrdgreepql}ycZklc}svffugj]slbgwz_nvxVrk`]{X{yZu{sjikepuwvcfczpqheadobcrn{kyqs}nj`kofZjTiu`dj{fhdj{bwhmcMxkzopvlhiwroh`zmtucmoaj`zfx}ymn_sngr}`r}djkPlrblgl[}rgiXmei{b`_qnd`jvvo~}rxjkxSnar_wsuvo~kjqmzteuumy\wswqrZrjpalqlamhthlct]n~wmrlr`onvbpri]law~cqc\nnyjku}jyseBwyogithjk{vxtn[zkrp`omfy}aZmpxz~ovro]bX~uqty_lelv}wo|qmog~q}kdpsmZv^_gw|tforf^xbtawibcyblax^~fi`bcexp|gl]\pqyv~_istggotp{koyjlUw[|eZpjcyf{piecy`~hvwrdoffr`cwlse}u}{jicgt\xpczx~_qufolvxhpnmw~cnqnsz\fifivtbg~}sn{gmhgptgrwlyemx|}fujvf}iyrm{maxfZhok|qvr}ydZvfootxwhipsngffzobpm~Vhjdhwrcesnw_zpz{zkpey}rjoub}u}pyqln|bkjqiqazmsjmrefv|ni`mdbrrhxZ~^tdgn}mitorlujqkjyotukqqk[lw|kqrjkqeqboiawkvregswodm[x~\|t_ipwqbve|emojtztrthgoooavnokp_wprtjqgfzY[Yth~|]{rzbpd_qkws~iUmfptesohgkwmte}f{mdlq`ouoazd}pncomzkknsmjundgtmwrmmxgq{snqo{phxifzsiqblqqxl~bdzy_upkn}pnWjwg_syxtje|ha^hejn[axiray`S~yqmtcJqd{midkobiaYdxuprf`snycpvyhdwngLuiatlYx|k`yfmpu\bx_p`^ogjXhshymVklxqmjgvi`{lqtdxmfqmu}fRyoqvuog^bkht~{tinpvzdhglhUs_kZtZgmhbetlei^cmjxemurmleqrgwr}wkhdq\p_jvtpe`uH^hmqnrhkh~jvj~zn`dtq_torznrZtoggbswqoswycnuida~|knjp{n{iymcywzgmga~~WopZe[cnckmugki`a~qudekv]^~lYq_kzjntpr~p__`lus[hmnL[nptsV{_t`cbxksbh]ymjdgsXkwieVphlhgutfvedtccic]rfjqru^zksSjgwb^exsqrmlp~rrked[zv{gmheroe\sUgwcp|schersnnwoqy}[r_n^iXwg`deuhfXm}{gyl|rnn~fva_Xbrcvo|`sky_WrdrudnW~j~[syynueclTcrcathtshg`ah^yrjx}oknpsmqeWbsdrpxx{qix]tqbegnslfhnzxh^nmkoer]k_tiovm`hthhfqqr~i{lvef{nvbnty}llyxwmsy\o{kjv{kup^^~cnv[sZfimlnnosanjvula|}qrizuoxuxrtotsWjt_azreephol^v{nbpqhjig]pmnghZntn^usoDbl}clapefh_eXdn`sm~ur`hi}hsh]_liwhurxakrdsZ_vzooffZ\sokou\q~ZkkpwfrwssxUiZpecy~[g]si[jyrnlbd_wktYkpi\np]~m`|^r`xaiWknwpSda[Y}Ta}{ZepWehedaw^Yqdkcekwcjf~rjr]fpks^ctnxn\{f\fbt}~e^d{cx^hxzo|nch[h\xrdLu{^a\vv{Zp{memn^Vqxc_b{nzqkdzsqrnpjgrbuxlwme|c^tZdhzmYd_wx_n}{xqa|px|xhqh|nwjk{WhciiW^zdglgjgxln]dm[{}Qm\mzvsmiophm\ghus{h\ie{`moxsozsgglmpkitjegapzbpwnzkmklinuebvgpetyhpbv^kgso~po`hfclbh_luk}ugsrx_eeutkkwbsotzgtdvvhrbo{quhhomdopukiewphoqtrzm|pyim{z`ntjvqrnfqsvifnrx_ncmghrxvqnroptd~nndwuml^kv{pcnidinvot_eenifnnq[lgn|gqZywxr`rcfw[ltzubustrx{ehxovdh~rftgqfzmdxogekot|jikgom{xgpo{wvgh}gtm~urjooaefvnmthmhrhtdu|wf{bmm^wxp{dulqh}szlmsf{sxy{kiezrgjklrmnhf}nndbsiaw^gzpkftttgrmderbanrdhura~uyqn\mqhgrf{zj^yhshloc\Wxgowwvezy^kxe`vboiw}x^itjwm}quwlpfnoT_tjuWnvsopkluawldjo^exccQnhherSpTy{bpmy^}lqbkuparc|pmgob]chbfbSwszhz|n\^^|g`[x[lqpcug}kyhZnig\vbc~tl~]ehrd}qtqrmvegYcf{dcge{^}]unuksnvl_mhq{rnhjxcbediurrZvurr}yqr^nniXhncnwhtzkodWbi|lrpysXcVokhrymp|Ylnwb`ybbfxg{clkgp[shid]Wtp~yzbwhplsfsqc`ggU`{Zp}dyc[|x{_sdfljvsdrvbX^xscU[rowr{|fhpg]liglknZ^hothhqjkhj`qqytrdyoi_gl\khhxmw~wdmphupbbmw^nyqttdbqnnmqsmv|ncygrpceouwngouuhpdZ`smqyoxqfys{\l|lykmv_d}qfugxeoceZufftmtfhWk|rsedqhcnn}mlhbig{m[nrkxj[cofomz||dl`ZZ\zvrr}{olnRnxfnkpkne]jhzrvTsl{b]riQflkledllfftwjohhoduinut|y`{tafkeq}kslrrm``wnnhUvepUtW{pkv]jz]]kjgldVesyf|isppkqcru^glxgt\s|swbj}bduzwmrrgwlhzz`fyovWkrwS`mhbsn|heg_tcpZvf{~nzlvxhxjvgo]xn`iZpsnwsesh~hepylmoj[^gzplfr[ZyeppluidfizgiocowfpgWsXsue{snmhtorlcXrkimj^\z}hzlkueTmn}nppuevvrrir`bhi[qgx`cdrlhVoopmWcuuyTaltk\}kqg}k_tiXqnv|t|_zorn[gmcwrxoxuzzcdqbxhi{xnjeZae}bwln^n_{fco[npxxcoycbdw{pex~}^mb\sohcyoqvytmvqemwmr{rsdjUddsmhikqovebroxbRpmpeg`o^hezukynqnnqjctqjrrsg^gzwunpl^wdwwojyxechxN|qlppxoh^}ky_xzjd`oqncj|faewdxhmczto]ujtdouwhlmgzrtgspvgewg{tuz^liqgsd^pcjx\sd`nixo_\ejj|~fgsxviqxrtfe]khioj|e|sovzclre{jqoz\l_hx]`kzzqopk`g|kspZmj|ocak_aeoiX`cnhotmmXgowrcanghmu|xpYsimn_vseeljxnzrivkawyhrpbZrntjuZomfizeoimn{zytzsl{rdmj{po|nuub{|~dvalqctmjt`rVnzntjesYh^jspOlao{p]sopjmd[miolqapgds}lv^uzWt{iiadncgqmmqmswoyept^{{ihsdrmeg{evqdl}grgmt\jWbfy_Zm`|ohtz}dcwcvuinwfpuhcspzppkoj`r~jihnpyefnjtsn|ysr}es`zvxl|ywkdhhjhq{\lvajgsukovj^vwrni]_`qdxo~^ekoufzdmu}qddcyl^vuobapbaxexmslkorp{pW]w|ufrzqzhpkpiyWioogygorx{bfd{eibbewkbjhxp}viaarpalX_~grtvhkhdekrxufmW^dolZymsnokcr|yn\qqmbmyd~qqiyjsb~ZWzvgast_v~xrluhvneznioh]eY|Zqfhzmkn|Z\ubelmqnyqdbnkgwjjjheqeuVisnf^eymcp|\iwqRk~h{gj`wnp{tdydvmljw]x_ymggtzn{waSmfh]hq\rqr]giZ{Wj]{i|kl^mt{qnf{gohtfYsg~ahkivY^quunovwanzq[hwy}mhtl`|iqhnmpufvympnloYqtsdmlizqflg|qtanr\rlrngnsjpsqkdxfxfvm{t}}cfydpZvpufsXr`Zs}iqlg^lmqeegtqasssorc`\mt{{_gqldiZratxie^hp]dynSuhlymmfyyhzep{secphzaisgrjy}nkho|veg|jl{ps{kffi~ntjqsykZqzTop}lpblhjZmiavhi{iubknVeqlc~jZdqluvlhzullehp~xpviefpzukPmrglgasb~up_pikorekpdcqhrswxgi}pnbiwrYe`avzjujqvixfadghqir_n~y|xeipkgzjqfxr~fquzf`ksnh}bohxxjygkguyw]n{iZar~f`tup|pl{g`alsdlr`[unevignp\ovxVgnr~slZszfm[ya~g~gtju]chj|orj`_enixiiunnjsqbk`q^d_xp^xxbsrqus_c\mryqvppffrgzjio{veirurkSlaujfedphtwknyskkdeqhgalvvqdxZvandon\jsvzln|rbXwf`fsvqhiqu[wyognp[evhnmnwrvpuhn\rnr|mmljqg]xju`bpddjZ{|vkbp^^dsjtfuxyggcvrfgghfs{nvnmqxuewnstd_leiboyfYo^pkegxfooilqjnpmpxaeepkehhpqskl}nrjplxtohpgS^u}`]krrcnvqgpilivjt~ceoxylqjWejpdocjlonvfnt|omqie~~vk}mzlvnRsp}lrh}pxzt~czirfvrck{bwygmajjntqjyjjmfsnvykrrcoi{}ltmelqk~pOu}togyziattrrnpmjpqyvhpsno|`krqazkXjlcblisaglfqsjd}p{|vjlldcvyfg~zlsjwnzihvoull|_eca{ixrm`sWlwwfmy~]nxizh[cvb`qri`ynbmtipahcitw|qZpwlokhgiZ]axwqj[hqh~ehxsnj\\gzkl^gsbmpu\t`gn{\Txurlfkpurndl~pU__ukpUp|myw|ltpqqo|xvap]oclmtxopashen~gcx[wXbcuri[gnsoZnnzvxwzvmhoc^cdrjzyfwrmwsttwlbftmZsspyjpyyng]urnpVt}hnjcmthrjTlhpkeiy`necv_gwvikbbjyihm\kol|j_}owpjc{ghgpydoro_ntojhqlq}gr}ndxydt`dWUauzaxkclyv{|tlek_osh|Zklytysuvpd_bslliOmwab|`v}hpnqqol{_{ipmfw~ort`roklsZhtjylozuqqxxgkyu\Wj}w~vuh}nbln~yzolr~]zhql^ymtxtanrdzvforkeutdOhit|nlxhXjg|W{saZytchugygdcr}pmojvrxkiigjtublpdjxtlvxdutfkpfgsfwgvfhhpl`hepefjziTnvhdgt_fjjwfz|nZhaphmmuqnsSn_v]nwssmplttp{zyqxmkcil}Yanng{lqkpilorxj}r^pxkgq[ps{vdraeyzcmqmlUqfwycxxopm\fcqf{lor~sxZikskslVwnbYxwZofner}z}{k{ltjsYTmclwfgbjbzfaqlrjomoR`vwmfexn~xYrsgypro{^O]clsxokppgjigb}idarw_{cozism`{Xtavw{wwciaqp|nfm}xujdphcrd{uosggwfzZ_kmqf|fpnqv_k_ppjj{~moskz{nWymmaeogvvZpvowd`ri|qpiskl`hdurxfvln~vofl{wnjlkuj{v{koxvv_syhs~{eo_h{^vs^axv{leqnlbutmrzztxyZtklhX|woosn\lnXtncfqieqrjtdqmaq[zefz^zkjgvrinkxbek]ydysac_jMalpcwd\Rjlsi~jQoknx]opmYkzh\sj_qbgz|fv|{kl^_flvsvrthj}ltmlectwbhbxhmqdhyxhdvolpme\cjiUfvjnbfymrYtgoz_sihjxthawpfmmwhkltiokstt_swor_khufitdyt``qdXs}[~czmdmojohxngl^eukskoucoo_bu^u|`i~mfspm|uydbxgohzlkch|{qtblZWxej^_dumtd|_|x`}rpk~`klheknmxqltsxnlblzew[|qwxykZdix`gkipfu~kbjhk_ok`mikqvkvz\rpdnqkpezbcrnnmolqmioe_dasqy{yxmiktq~qymfaeasew}qqw|mhe`jvdqkcmnoqhmjntplhutc}qmk~lsztywxlgiubs}jls[llxWlfs\~t}zuq_ri^xhp]lV}{hkylPnsesp^|omb_[sw_sphprwiebpizfpsTx`\brtcphmiv`qrknqhjvqvlzpsutgajxkjsk|mgamlxzsbyqfjcoqkldSopwactYngfxgin`bzx`d|d{sv~sV|oo^rtf}gedgvbi{]{pnwwncQrz|a`pw|jkjXxgueivogvhkvr_jusqurrsrulu~tvzdlojdwgpxjvcl}rtvz~wsiknt`^f{ekidtmiqtV`bhcmvXitlf\muh\_ghpaimoiwcpg[~eshmktmorctsY~enr^ikfvwuvdrk[`sebalxykxkweszmjwh_pwfrmsq]i_}gop|ahcnsivsnqyjktqmlyw_^v|u`xbkguhiouxmyn~Zh{rwvuk~jqmjq]mkh}j}{hpsmcujfvqskslmkdSx{osNorirzcqw}|Udnftiwizolwxgppq|qvvqtXokbv]xrhxpwlpppcvlzkfq~fkegnatbwdyol^pUervffg`gjlhduwvhttqgxhk`f~xkkej\te}apgreftrd[cn|bdipfairmxdjrooitpibm|uTkecs`vkifrdd{ykrgtjtjwkxsswnmbl{^movqaorzdgrrqwdp|nbemz`lja{}^wqcdujokbT`n}ikduntjsxzj|vtetfnxjf_`aldkdrzro`rxf`m}gyr~vjdc}is~qwpwyuchpngzqq{{adpbewovp`ljkoqeorgfiqyrmpmi[uwmctu[enjbkxs~oyqthuv`lpxwwIflozdomol^r\}}_nsa|{skwd{^rgkor~ewdqnr~gks|zkppiP]}anb|sygnmvtscgzgrsjxqlq|nhfog[krylpronoacor{dx^teovliznrcvbrgqvhchjnv`kxtp~iiyhjuy}dcrlm{|sbiwaq`ndlxWy{}n]yicuo`mgbuu]bqnkpnwncYojjuerXzgxwpgjjhWek^j{mdj_tzvnfnfl}iiZycT~\gvdgimof[rj\Feas|p[[\alamjfkyikzjxw`rX\}xn_sv{nxf]akoxr~qsg}jzo}ohjxwqmxuvhl}cio{dydwblrNloshwub~kfdnm\slxk{ok_lY~Wpuvwn|ukrho__qmr}yTenjf}p[`{dpnsnxg~okjw\jo~v`oZyfbezogbmrXdvjwrldxQqejlgywgbmmaflndmz]yx|srj`cpvg~ibdgslwovbblsYtmyutq[jlhqlitmfiqnzgnqtmslnymp{gvz|nrrodtpxifv{lvhwsphn~lvjjjlnqpkrrltn`nc{wcxiscfrltlovhqykopglwt|dbegm_}oc}rrterveiwmpthswskaqlqeli}otneymkgeubwmqk{jro|fy]rlkcnjhpjbdaaigofzi{fnpjkabk^^wpalxqlquausnmebwzhovhumpoirokjhq|pffouryqrqhks]xu~utximpjsmtnlkgsojxsmauv^{mlivfhkylm`qbrp|vvvyhqkzufcosx{ubz{\kpjwlgaesrktustrashotrnkp|itispbyrxml]bjl\i]_qnrugzgmuujrcfdyfubu]qgaiflvyp{t{trv~se^af~pqooolanqptOzlem[^}iijudceirgpaWog~v{pqwqf{_qyadkxtrquhllk_jm_VzvbftUmnxfgbtkyjnkeauguuoc{gojhtptvr}m`{UpxkYnidszpiofkelp`e{_}oaklydio~gs_`whor^znpWqzl|q`lnlu|jXgvfmjje}pzwrvbusu^co}qmiz`uwylkpvlrkffmhwpeobsoxp|amduyiqdr}XpzkqmXbttfgegod}qnsmsg``cyvjwm{dftlcwhjrQly[s_kkvvqaxfbhpqjix|mjivxtsefinrpad|{ckgj\wwqvfmzkslgtl^xefjkwYrpn~lp{}bm[Z`qacfYxcgnnmipw_gcmfcxfvld]d[wjqhjn]n|`cwop}xoq\sOng~iml}cv]dyqxqcuessd]n`fetjwbfeokcximZvph]qv{v{buongi`}m{{bopVuZrisqOokkokhdjnasclwips[{wcdboksf_qYij|RmdtVkdtnxcadjg}l^d_pnxweb`[vzmo[agbkin}n~pdl~v|dt_fokmupcqnQxhf{f]w\wWgomtfg|}tdsm{gnor]kidaaorWbufp~_holnqjbnr|tvcyahjmoekiRppT}}{atuslnita}{yrsyljbjth}wnzg^idb]dykpdkulikhlizsYnamcmmfbqZuppde]jbdjmuUud_uscgis}jpkVnhmo|jhdeyvxsmj`ujqsdbt][|g^]kk\rlymfnv[ugjdk^u[qagwttk~gktnagwgmbttulmrmihlwg~xlchrZsgZachyv{ivsjvopmjnb|fksZqlefpowl]smbi~ffgzvyjzhriercp`jnykjni_eo_rcgduniormfZpxc}unkZnikfzo`fxmk^\qppljv\mk|fg{pngtxjaobvk|gk^d~u[{lljjn[`~uezwrrly}czwo[g_v^xifqoxrje}hrljdnolvlq`or`~|hqgouralpmjlox}jsmo`nlnkcofWrtwyticpZlscviy^}jmekzihm~oi}nil|euwkusrtibhlswvtouxcafshhfm{}eompzlgcxy{hvjl~^ppdtpZrgfvRd}az}dkyVmoqojya~{mumdlpb{aeiutlt}sou|phmuvnrkjpqeqkxhubg|vtsp~gmwyyvcyggydy]dszklaijyakcfrvannirqamnhisjmk{\[qc}}mdwgrckikojgotoixqnoey}oygkxaqun`}sq\hruvpc`ta{sriwnbwlelds}kligilin`iwplj|d}gqzcdju`|vrqespku}}ZordvZevt_ldevgetsja^j\dotUlj{{p_clmuoYbs[jxlswvd^hhxWzwh_lz[qZnonqmhfkliy{d^aklwtphkt~Wc\tn[evytwnmwtqvwkxgr|ZgsmldZqgfhyVgnhxvrqzrkysn`kgv]zc}zhvez\vyik{nf{hz|ww_ltt~}vlyygnnhnsa_cygxgjl_{jeizolp_ytqikkgeqskxguld|mlweq|tukugc`n\lT_pqt`ko\eoineqsikql{n_{nr{nihtts|m|rkjv]biQvvilru~y`xufigbrncxjwmkzbpvjmnmZ}qs}cqvgcdxsmutq|ojVluuf~qolxocmjmt\}nmfgyifongvfqaflmZhymqnj}w_roqxxsm|idpoku^x}zovudojiyqpgnykhfobpd[aq_jiqkulgkx``^`neicdmuwlitcii{uvr^fh]mmxjer}zeqeqlxvsgiknrsgtlpuxdzekscgkmajtlmqthrlxpwhjmfo^mlplws~~joiry{\Slocyundukgffxlxooiyl_nquyn^xrruTspcey|svlufjg`mvtuctpidkffks^hoyhynzo}ysi~uuuiv}pm_okmozmojhpuotk\slgfron_ylshn{oorjkxxWkidjnmicsmopxweslldmjikf{loff{gnnvx|xlxixel_wis`lrjxsv{pn]tj]zgs{eenwZye\bieme|qlnqrhenctpblpx~agasjqhZdq^bon||xpslegme^lv^vp}eotyl_mynUs_ueiafjgtsllg\dlvsekko{]syibpsqgkzojkj^kT}`^ijalzqmqa`ofudw_wrodbqj]auiupiYtfnyar|gtu_ykaazk_iljwkqinoaXWsdkif}zerhkXqVj[rfmpUm^jloer]evlqaw`i{y`dsqpok{joYbczojrtq|xllpa~zjjin]plWk[mrkbcywcivufjt`lzmzji{izmwykph`mozp\{nyq{f^ygij~uxt|t{Xh]w_i]`Ynotayuqhlny\Tv\imcykneegumqie]tlawjv]_\oxvuafphwhm}gxYjibhUtZl|l_na`[lrkkftylggvecuk}`dpbmn\yxuygnct|e]pvlcvlkv{duobkpe}~uNrgzmkkycwyoahhuhfk}kWmu|xrypikmWng|_uwh[x{\^ybuo~{]q|yin]bkhdvl|x`hsT~|opep[cifVee|mhvk{zxzox|dmZ{o~thsWqgnd`pkhdzwd|qhqhrimks}lvrjlkk|[jvoiq}]jdx{gjr{olneoos[pqtglqgmmt{otzzeva`nkazsuoampdc}fujnboultvdpwdiyr]nurm]o^qkeswv_zYRnimetkptoe^rrkXpxntepgf`mxrimxpxqndwmk`pnriajgeoTvk~unpqeljyo~ol[zhiaiqeiaqigxomjxji_t|`srzgnotvowskycnsmjmychsemstnytuozjaqwhlfrfkrwjcubomjcsvkppfojoocupnfq\hdqdlmn{yk}zqzlbqqmesnvo\hugwkqs`llosa~o{oh|jvfvpvml]jgw|npijgurgjyqc{|zqc}fp~nortjsxomprrogtd_y`ryjohuemzhfzloyxhshjqqomyrvvilz{j`g{mullwtfozoxdhnz}nufkhopgxytxlokSmnc{es_{ltsphs~rmwzyufdt_c~_liwl|qmkpxfVvqnpnjytmq|kZvhn`|ppbijjhbgkioksklbtelb\kgrxodbdki~tqVhsrclshyjckpw}p^wq[znmmpi{gi[jeg^jujstdqi`k[jvptjtil{nxmhbqqkj]uyqdlxeipu]niymmeg\\fp}k^houy_tqc|tzqstXWisshqeVnpTvngSelkqdqs|^pd`vni_zpw`mipj|ku]noiamvly~Ye{ylntmq|bow}lwfpg_\iKzjga|osqfbx]w_{yetr`qxqrp[jxnbp^kg~kmnhyhp]pt\llvfvkukafqhbmlxjqbpmitvpnviuz{|nlyepjvnuli`ogr|gojm|{meksspcprdd`ne{ksjghadbyr{inngniep]tldin_sjlWm|xtgfj_wwixiw[eofw[oeojneWghkVwt{vmtquljplQa~plvi{rrvtuhtpgq{mxq`tfijrp}rtnjl]ppb{m}auVmk_u]fNmtugdh`idwxf|^enbbc^nk_ufk^tmthu~umzmvoikMqhmYujfxbxjmndxgktolairnyy_ioqgn]_bjkacif~j^vdjjd}jhtsgyp_npm`wtxtqhhlrrfhkfqqzrh|nWikhzjmwxskth`q_tjlpl{sm~Xxsmmap|ucctnlcv[hhbejm|{q[vhtp`wgqlb~Swt|rwseqc{_d^nkzek|}X]iunmrpMbpolhew]{d_Rszwvavo`bP^qqcWzxvyezb_px`la{bw~w_kuZfmi}hrO]|_hyrgaulkiuiwlg~fcfcsrqla_tq~gnvlpltlrkwhinnkpsrrtwtqjkzzuiOkxmwtxvtqyrywm~sxdbg_zdlbx|d`cernknrrrgn_ye|kmmwmaujn_gwhsm\^g~aSvcpt{_dkXsktabo_nq|]mx`}`rVqh`{ckp\d{efdnuniwefVgmonsjoi}mlwixfayxqddnued|mzgkzdjtdtfmcovcstekfdbnycswtpsPmqlhrxn~iriQznYygrolebbroj_ydmqqptZlzuidliudtl}jblj~~l_seukahpn`clpZjmvfZnak_xs{mqbj^{ff{ctyvFdjkis]kgp_{b~zZ|rTjinvjigddw}ciglkto|but`hh[~Xr_kjjt|ioxjouunddPtplZc~zujXhiglet{hmelmomocpkz_Zjcws^Y]e\[Xz~sc^f`}nof_loqmrgncojp{^lgmvpco[su[{jzmws^f}utznbw|_nYd^uZoeyZwmv|kvtiU\tqNntyuy`_js_O_`bloiKs_cdhm~lngxmiuuiuon{hX]Mvnpyd]gqgdopefzgZei\aiq{zyhrb{ZttuNefatSnjy]tlZas|i|dhmllymmvyjZXmmmulylg~Rt^|yc{cnkaes_`ipfew{~hirPvtfa_woeSmvdkipovvpoj~^ok}\o_\ldgzxh~ytphgt[~}op]ynqa}shwnnpkkvlvcshgrslfaqdm|kdllmurytsZhewizpwgtxkuomimgvcgspmdivhf}cirbYjhrs]pof\fcmockmefhmutfyqemntvvqgdtmfbrn`gbylpaxupqjottkpq]pslgpuZzkqhtstsrihjmkn~erpTwdqufxekprrjarrr[juhxkvenhopZnktrkwqhqsqluoyobv~hjsq|yom\w}feiggjq{sj{rkujvmvkjioiamnhnoflf]agwlyvw\sjukyw{hquemknovtqwhxexbtlr~rlvqegjjltpinc~emgdlsyt|oyocu]wc^hq_obsbj[nvjnjtyqquzuj~otyqly{Wvs~rkyoxh]k}jZ{h~o~m]dnkrijyryckdbooyhoslVrw~jsnxzousmpbokdjiluwkvnh_rbsgvkwesjigbblklvrtqlgki_kequyouukqcthcrllwdvzqphm}hstehffzx^taquukamyuufp|jtokzer[ak`twrtjhnu]lxsqjjqhxczonkp\hnnljd|yrs{~syxjtYwhsg~hxzpkwgocomjgd}quxrYgkuvlqdgpwqtqrl~lho^yg|w^kdi|fgmkdz^jbh\loq{tjuzseiws{dinjphh}duvcsmvh\togpwssew`{sXpi}sulkdauyzph]iZxpoelzepxoimhtgazmgvigkqxcgxpWrdfso`usijskjpktapx{oqTpxoky^mjezykraqtgadouq~nlxwhki{yZsguqsxaeev_{sqcu}jytg}nqklrmm|qmrjw}ent}glwpnisjuwcurjq__|{`ymr_zhkftkxpklp~thiityqushoklq_hun^wfojn]blh`ibcrhc\pmggmpnmtsowoksxpmkanwYi|wbh{owklhqmcruuqrejsmsmrg_pwl[fns]wilowkxusYxghtksebtm`gongiv}gvqxkhezrsjl|yXd\rhhqxrZilszx|prfnbrv`hvn}j{g~se^xlpiftpyiyngm}fysZrqso]_sh|pehkshrhkbtrtgispheqeucstropiwxjj[rwaprjwsohhrtpjlovdytdr|dokatpihstqstrr|~bqnlbinjgllfjhizanlZ`{m|mcojwgcfgqhspmqpwwqwvevatpcnqwYuiclgnsi~hubwqqurbi_omoorlmcpTZ_ulrnvayftpjh[phcmdqukscs~giug`nf|orkqovkt}bwxeymntul_rpwYph^nhyoe^ntyslswz|sih|\crriqeqsoeZb`pjwhlo|xnqeullfSoilfqpuxsas|\nxatyw~rxytcnxs{ugfgsyfjiamsiszllryseknmajsoiysmx|xp~tewljrkfo|~wZcrrnldmp~tqqxemnj_rnqpo_rupdax~ij}q^ikjw]i~}xqi|rvulrdstenprjihvdtjcqsz`m~rpdiiitsggzhhnthhfkY{ggpqjjggauwsibzngfulxyjuitdurilo]qvufsm|^llgkeyujft_|hfz}`ZaZZhsuiljg^wl{fxrgl^h_pk^oniorggoreiuW[_jjgeqqhgsgbxpjhvwlkmqkuyWwahvqox|mq~rsnwrxkynont|os_wg{a{mloo^xu}i~z~flzg\{rxrqhr~|undkl~ol|iokitzutsyjphxsitd`toueeieYjm^~nnvzjoptrswclMypevy{qyivq}hcsuloegi`txnpdbjkwfubs_zkxfmnwholemtX]xuvjwnhujtwnfapvmRgehzd|kYbwmrazmuuncpjmil|ynlq`llvqek{ejpy`a{segknyhhpiktfcptlnhgmvnlmvl}hliUdum_\h}tx^ijpj{ifup{tiolpxymRghhhum}uwscrubdk|s{{kcqjzihyl|yqlmhlau^ukfnnw{mavp^eoqfsotpgdgphlfrarbryq{rczwu`ggpv|fgau\mfezjozelzxnpts{or`ncuo\ogms_g|i^vot|msirxleg[^dholksxrmsol{lsnmhhsoupuvpo\b}{~Wszuqeooncphfsoltt[{^hstaonwjmxr]cdtqmo}n}xbv_qciqrro{f]fymp^vuwqsk|czt}kpzr}_rojqlfnkgxyrboZsnhoqh~ghoor}kxquglg`f`]cpVn_c{uhuokvktprdqq|na|qpaxzxortazbor~u`^j~oot`klhrpmsbafcrzowee`nymue`oujgSnhgvpa|gd|hkV{pogbZlkrsrurk~mg{tgegnokmsac_ws}f_ged{jciwfetj]cyvszpcwjn|{l^x{]qMf_tzzktmc^doo~c|Vvk}dkuosxyN^erdyp`[wgcg}_Zcvqsrqqxtzew`mh\hweijsd}fuuxyLk]mlef`|lnwrsgltelnVcqmlngft~ojupiUbpoywgqkdbbfqo`|blp}`wun`}hglrcjptykjdm]khkmyke{f[iczdqzcqwuyqv|lmnmrkzcx{~f~b{qoh`dqpmprj{hY|tm}kfjosOamzYtb[ef[iehwpfex`~}nntqshpoonbtTs[_l~ezctzoxly`hZstqjrXmwwqin{ezo_my}jai~{wsb_gefs[upqiu~hjbb|q[qysprS[_mylquuoqkgch^owqltt[ppnpxktcagzjjvcedwekx{zzjwqcfsY]`bfqUyffT{jvkr]nvmvh{xfq]mq|mhfn{mrcoulhqtqbcpiqjdglantzdoyczl}jc~ctkwZifevqp|rdojoao]sgbiUmknu^rlwlcqkqiepi`cuyigxon{tvxgnnl}giptupqnt{vutulYpj{rncnml~ir}ogkr|qpgztbo~mtjfgfyhdkrhcqkfytcutguwyqlimfkyjwp}kqj~xsnna}p|ncul|{hg_l{ytsvc}jvusauvln`bmqfwccskxit|ig|_p}noncr[i{svajqxhuhnj[ull}dlzwheoopv{wlwT~plpcZm~nnmwz}i]qaoutu|heh|Rsni|wfl}~evyum{gl\g~Wfxdqiqo__kv{stbsqdwigg\n{tzzuig}lfwnvfdfwk_{\muo`up}pybryp^kvdjdpto`aikmxsooxghofg^qw`_kzxz_ygmioripliu{nvoztygilxnqYhgmipYq`qqx_zkhah{dfeyofnfvpkfl{g|yRj|ltysfrehk]ipnnisjdjpa`xqfcutp_|ar}\jQtfagzuglanwynpl^`P_fqkspbywqst~adtatmbpj|yorNUkg~rorxwaf~m{klftvilp]aejgqw`mpqxqwwrbtlu\dxrijstduXo`uw^}oqm|cnegk{kvgjlr\pt^ip|Ro|aVztuidsgqlxhs|dk]ikXhod[}r_SywvoWeidc\k|YhagooVf}sjXkpsbt\tifajxhsw~kqdna|y~iRq}rZvdwbzm^[ukx]~ds\oghhxhrpqck{cjaZw}~eonilelYyhuimzwkfztvmqoxsfjTehpgjroktykezhpk~yi{cqlkimlcwerzney~roxrvmt_ztzj_mtoxiqdw^q}rirwj`cjsj]nxnkjle|r{jixamqecevvlazolrpq}xkwwzlthkf|o~bqhdshdurl`jw\q~lufppimibl|oqu\jr}bizomcjqtfttmhj^ve^chxgpyl|dtrkld{n{avecnlR]hh{ukjsiusqvodkuzvyllttd{luqfkol_rijlxatrgu~yomyrvlen{udcunsoye`r{eq`cfcximpnb`qnrni`gptipdqil{nf_wcejerva^kpjx~krqnkdndilcrziko_toqnklZfvu{gqlkcbhjgsrzxmTrcjqs[svhpymfhsvtgWuv[jai~y~o{gP{ktwrtsllluu\qy~jitwnnpa\{r~xukyvfUknha}Zqp{_qpdnkqvrpxegvt~|gvpbt}fslnxvteqct^lslky`wgtdUgrxWypnikfms\xkpn]cwseoxe|bm|txl_nllrjsqozprid_licmQehwgzgljqlkjatggWcZpcgtafge[xecvvplkuoejxl{lgrnjdphhgvstjsnhyijwov~frfhnokmvlfzg{kxn_tfadsklv|shlmvnzqvgn^jzz}niZVf]{bm[q[zgkcqzs]pdrrtnplWokzmbtQisnixoslnTyfggkwmoxmtmbozrlZzft|qsyn\ljniqyqioknh~jbXzmnxgsgvuexdkqgxkqu\tlpodb~nqkr_kip|ie}mq\klsu\nnzqknvsgatfZv|kymwqw~{uxjy^s{pmttk^obzq\}y|}divgsnhdbkigyysm]rX|lourhyuxwqpu{e}{kzw|`ukk{ifyykyabpqtfv\ujrauidomlb`tpions~kr[|`_usnevysq~rVkx~yexzsba|nooqq}mhil|fm`|rwylqlvvnxhq`f[svhmgwuworjoc|ryruhiao}qpzpu`t{jgtpaq~{qwxjdr|cyxhus{oaiuvphrsvmbmn]trhnukbx{nWjjx{d~{vggwnb~jvya{yuswYfpgn[r}hpnrehxuq{gif`cdjs}srillc}Zdh\ns{ykmsQeqai{`|n]ccd{wwrjvhpv`kilZseigssv~qzwzZplbeqd`]osojch_w\hvgpe{^ewqVhsTnjhslmtbdkUlw[puidcsf~tpwigptu{rt~gfsQcwhjrlnfcSfUhvtggucgxvhvuq~^zg{m{u~iokz{pieZijzpjs|ypci~wikz}_mhz}bYxeyfeydskcci_mlivpa_^_rfhl{zXhsk``}isevyyplemth_oxuaifsnohnmyecu|o~|~]pnilgn]s^pgdvq{hnncpydg^fdipYvqYqmgkud[ebfwxzaqdzcwhqoh_nhkcodppmviownnznqr~xgn{tcrjtSewy|tpcluu~uuefveumowv|fs`}bvlinw{orqthmpnoqjm{yjfhpnchcv^Ulnldfgqk`etjgcritimibjword{lbmxdvqp|skhlxhwvnjmfbiarhfr~rtuxqje^gmk~fms[goYaa}pwrpxjksruhwtgrud{mysfopgulvknpteeswdr{fsw`q~vu~jWbvv_yk{stu`azencypXoue~ldejjbbsffgn{ttl|\\tYovswteZ~ivjw`kvXlqqkskjrlswkyrmwmik_f]rlhp{{dhbomfua]wk|ho}ajkfhmdbYnec{ignfgcsjwcl_npt}hwquhnksqkql__pvl^au`qiapy~lkaihw}igYqtnVtgknggpte]}tpe|wg~ul]`ljr``vlf|lwfmhqoyj`a`is|g^Zerkkcucrwoghejmfym|oi`_|pmtrtZc^lckz}xke|xlc\guvrfjhmjtphUcp~ihffouixru\~Whfi~qroW{sdmype}`tWtm}jjqoxfpbuprwvckcrg|nxidv^qcosTqvpglrqyhutqpt_lvfPyonhhklsfiyXumfgc^uihocdjyud~SUuvhypgo^{qkfrus{cglhptejg~rlt`uw{yotikkrg_sl}jUldkpcuhyrl_bis^lbgfwxeo}nplxnWosew\Y^jqe^jloyzquxkcumogr{oyqhpu[libtivwqjpixcrqv^S`zut[|wxZ\sjjmuiinpZ{qpg~w~v~c{svszl[vopkmkjw{_lp_}lijh[xgopny\~_kkpsnoqh~hkdmmosgdmmkoi\tZhnlszqigovuyhRhij{mh{cpkdt[nansixwdm\{v_hvjzhvje|hWnmddkaeqki`qrmsn]nwcny^ZqiWqwrkjjvsclq[exqpxixxolsvpfwpgwgtip_dar~gsndXd}ljmvwm_{l_om\tc_jkgns^sllcwfidotz[cnswk}ilvjcrYpn{Yvzoso`hhqmroxxqqr~}clsknms{_m|Vold`ifix]_qqlUdxkt^yRudixywm`xPohl|ycmsqnrXl]|m_jvutnkxfcurlyrSambeomdxz_qV{usrqxpbm_p~jmmafkmp|]{xmh{tof`zmb^fkvic[pusei|u{Yjhqxmn_v|v{{vmuvbhrm~~_ow}kixy}gkYkpyvavhfeebghvnsxlsnhaotfqbfstjt{lzjzurkojhnom^qvfejq^rWY{p{ywfl\exoksgk[fwuzsfpoy}eZhn~qtWum`ieboeoxe_ftdrpir{gfztzZjgulrk~mnspola_mrn]nsgjgdkx|^yXgcfobch{l[j^r\blkunXpzl\rtsmpRqiYdrttnPvrqnov}i}voqfg~katsmplkv{zix|{hushuemzped`WSebeczhmqecmrgrhvpb^xil^cise}xapyjmrmhffg}ZjphzvsVxpkejbqokk}mnprz^nkqohmugpTSrzlwknziHh`jp{Sudmyxj~ntWl~rpsp{lyfenxZo~qhQlfwrsv]ZvovyilklojmWi{ti_inms_zgnx|ckfyrgg_zyfui_pyv`avnrxzjjoci`o|kpd_yaobnjk|mngjy`hpkuim{~^kRikm^oXfvr^Tv~h^mxkjz[|piompowlsesoajqz^oxdwmrvziodoxft|soir^do~``gsbqtn{}Y~se}~nwtfcSrnghj_j{hXfmhborouZ^p{q`pvsYveuggnhjr`kpndusm^xjbsWwq{djhmfdrmttq}b|wgwvv|ooer~sonwwdigwmpkib\ur~veu_py}]wt|_ci_ldywZgykfjammredl[}swmtgq~hyqmcxk|a_zng[afWogq}thbjh~gkuvfY\jjf[mYvk\eyYwh{_lymkVldfo`myrUavagtfnqns{clq_voqwvm]i}lth~iakW]ivivpanjqts_bwr|wcrva}sgvouYijqn}tpljbzbf~mygxd\ko`g~vmlwrmmry]yltq|p{yd`rrzyvnwnq|jst|l[`^ves`ctzyfve|gm{soc`sjmsnoe{jl_^ux\nikomop^pttgjlb]un{^rxh|damjxlsvp_mbmmlnontfcspfkkxfqoipwxyfpktnnWnlmWosbtkowpzirgnZnvbujzguuu}bmvnYmcmzmpnqqahtno]|tc|ekmjizq~lgwvcihsdmp`qdixrf{pg{fmNzhbilh`kpshrvao{dekzq]lmLshe~n|piputczaueq`ezo|qolsjspyq]vrtrZdrarbryd{^mp`kswcmkbb{qbm{kswyysi^]j^sx`mujqr_jn^wnnpyuwrow~xvve~incp]wonrtmbspn}hvnkmijr{ix}j|phrpub~uflkkmxqn}jvopiwknmyvsiorpmv|brslkcmurxpyt_jhbndripslvkzlkrqpszp]_lmgYk_ieinimorqdmoqtjs[omskgbehprrdsdefrmlyidljbqpipuu~goq{swsnksuvcinpvipkrozugzppjflusikvlkmmkflluaopingtmw|rx|ktqrsc~dpfnurptl|mq|zmy}f|ilpmmzhpsosqozivmjojwnlhupo\nnqieitilmodlpgxiw}rbjlv|uxbo~xomuimmdvtlxjvomihqsrgqktonqk~fipixlwxbm}{mmijarcrq[bp\ewbnk_Gfdv`itpdpl{q}vzzpfzglgqhggocnpmdzogqpepqnsxykhdsy|pb`|gnmuofX\ltkqnmaldY}gjhtngsmmkkj|Vhjjizjs}l_y}_fjjahYxugvwwokk_rvlbo^x_`cknhkg~cts}xzbopxdfzYbsprmuumbln]qskckrmyfo]{vc\lpicnokosplhgd|iseg\m_tpvnVQdYhe`flivoLkjrVyuqiml`kprlfztqcjczllihvzrdpzszYh\~tpwzz_xkaqmh`khe|`]RtzgorpwmclslzXsxnvurwvhkxspniY{x\jf_dr{`}r\gdinios`q]bqX{hjtykftYalvibst|Wadulvv_deJamiclrthwcj_ghes]ihpjmsny_kyjhbYagrYffyas}esydtgdjZymbiercgi`pchqrqnwah_tmqhXhWs}`ap__l|kngwccRqboujgqmeyle^slWg{rkOvVubhpgx_qavitjdplZUqfh\tnV{tW~e_ifik{egYfwlEvgk^yzuh`zhxo|uU|nkd_tuizggbT\sg`nVnvigre_Xfumhjt`lj`yntzoqruilh_ehtktnewsqxxJqsuuwt|~sjmhkzp~avl^s{dv{t~x|Wzygriy{Sjbq^u`ggSbjerrR~lgtiyzovahwaqqsgfitvmykvxahmkfsufom{h|ukbyi|w|it}bwwXoT}{ylkbihspbqusnmwlzqlkucnro_ooglq\c_wl{gy\tjsp[k^ecZp^gf~omxlxotiso\i|gjqppwf|nk`{fhmvefirjh^xig}noaeTluujkolil{v}qptxgwxsnfsczgsrmgl^jvilornrgjduuqv`xkrg|gtzii{`rlzdUezdj}f{kjs`q^wbsj{_npjrvkfrval}oarivhqph|g~_zfjxhcp~whpj[qsjyvglquhggkaujfqpfppw`cnYdhrseliy\jxctrvq`jRcixfnqmjxzhk~ls_vYs}{jcin`ukm^^cpkjrdicutllqktZknnmtioo~ffRmkdl]grhz{v|[vrvuwkh`mbxlqkqwhrxqj^odxtyffjgTl_n_uqzhosegxcfkhovZmicaimoszZianh}kqxpovzmtr]pawgelZo_dx}h{pjrhgkf_}reYvpvqpmjzhns|f^~{qgnyu}smomzpnmgpr{ucfyqfhumsecngtsinywyhg`cprrtowpupul`byibunjqp_utW]nxxnmnrsziswjpllyijqqtrqsutczivhX_gxsxzdw~nprj\imvbpx_lkvtpZowqwwfsgbvn{wm^vnicxqp|nnjpoxoiqvY]z]oghzoythtnwld^mplr}qZqhpjyodt|e_fddjt^cWYq}qx]karyxfxvsirqwkioknjd|enp\{Tc}vno}qjshpmfkclxw{mq~oyzvXjVpmdfopzpmwj^fYnY|ykibom^ltr[^}cnh_tuzpjd}Zq`c|wjka]`XYw|ulv]ux_r|zzqvwlrf_ctitss|kedhpnsLjjfu]~fmnmi|ssekw_nkbjqxomlresprxmye~gvdnmallf`r]Z~~qy{w[vbsfewxeu|phg}pcypcy^qjhxzmuxnb~pogpmRcglbueylplhmcvss~j_sskaovumropZZ[mx[ZvjeXiqW]d]hi|qa|kmzqebaetlkfsckrkTgqk|fhykosXYjekm|revyqnh`nov`ouhrsqg{enrw]ue`pv}txgeg_sYgrrrp`ovzhoggrl_mevoyceg~grsmb`YdujlqywlsiygltmgyphuRqm{uaoe{gmtonhsomsvnf_ylcjaxh__dftshdy}fm~dgttil\ki^pzskz{Xggojmi^zbquktljvquwWmakyepw`cylpk]px}ykhhosa`k~zYrcufkbkloitx}uciaa[duhz}IqOrZkir`dXk{ctiqobnduk}_h{ko|gvnpmbgbxhwjvuemPwzeppgoqhxxrljmnpopuefif}tv`rVmmXiveoh_\quvnvmbyzbdnss|}x`tfmnuzlioxk[qa]nkbjxkekri_toubQnmqtjikqynfpsoefgqXmosvnv|r_vgv`wngwvshqj{ghk}tQsjuhc`wivowpbnrhovgma_gx|ttxnskrtybcu[pwsvyml_gWczzr_k|w}}rdlxsysoopay~m_o^luvdXxybvfsSpdqm{mgf{m[cwbrett~ewsnhcfkcvrejyd{lwfflsp|at{kkjtjvxjmpj{aq~]ijml_mhahsekakhqu`od~bqkjnk_jnykusujyizyirktqfggpr|oybv}pXhuu`rutwgmjzvjdiwejszemuyau`VV`]nYfk{jchwjgqiYx`q^h_seoqkqmnhj~uwnslrsmxbwnvxtsbq]ztpvbqalkgu|{k^ub~seysibWl{Zknnqmgdl\^aku^c|bvjonjxwnkibk`hrvhpt]n|dZkznlqqqfassh_bsmwh}gvt}zY`__r}ijxlxj}_uavzlb{p{gbcoit[fhiUsZtvxlqtlwmy_jhm_qimkXkmvwxrdpgi{wkhmvpymjnn^ipWzlh|`boy}drwqrexko{hgpnjndvxafhsgudza|_[omzu^livk`~nyjTtstzdngmh|zxccjgcjgwusojbmjqflhvnrje^wwwjvc{kt`oqiq^ZsgQmh{ojq}z_xslkh]ecnw_enmtov\o_rjxWUsuvoWbopnvztckqidiit\|ruw~npk]ftYqqwz}sjzu{v~d`le_Wm^gnme\ommfyaruw~]e}mjrzs{puugltqrholhyqgir_gjuqvzmmmpxxkjvkciqg~ousrxmnmfhryhgwzo}donj`abntk\`vld|`qmhjlo}grwmfkquxtupqtxkmbkfccgt}utekpjlpurihrexcpkfvizismg~svr{khfqsldsggudqsmqxinusgkynZjpriv`~dthmqnz]lkZomkgsjnvylcnp]vk{kwhgViwms}loqnfunwvtsp{xei`|`ekxn}_vnzrqz}eejhZsf~uul_oe{omplilfcqiedpkthgekqume\b|^hpxqzjmr}kxbhmll~t`kWogrn_x^plytuhuh|mjmfpull|jyhigymondvpimfejghgtqsr^iukkorRofukhrm{ro}xi{hwibWjfd{u{hiwwrfourh|uwekozutknqldVnxp_hvflbzhbv[wV]hniv{jgn_y{onksqgcploixiqln{cv|odYrfvlfsvq{v^kibdh}Vjkmn_xrgZrocslvktuxielxomlrqxpfrqlilfjmpl|~urufmwgut[ghYjnuc_kwmqpp~pUmrpzyp]vvngwtwwsqrpxxxtnk[kshiyqhjtvYumilf_g}`dlec{glmr`kl{[kirrhxq{vlypknejmceeatnf\fdhfvkw]kVuWgdhkdmdkokuwftefj{opqbkenqvitdslitbar^qvXtoeoo{b{typkyjw`n\lW[utvmqimcmc}oykqzmcepmwglayjjnkpwknszYZ|ffsdkkps~wpXhg{ccsbivkje_exp}~tnhk^s\it~ulgbXsebfusjoquw_f|jgliusyxlcgysfuoujP[vwdq^qrkqcxtjzphhmivkv}by\nmfwcgwfciryr~uq|vh[yyn}r|]w`g~fsprma{upgcndokkfqw{gmvdkd_~hvnzwqwx^pozczemxnrjdil[myshhnklqyu\xgen|mtoqdoc[llsalv\rlk|nz{sipgckcija`|rcuodruqx{dsrnzdvkvfs{UnUuoe^itt{ppzwe[wrfnx~zhmhvmbwjo}e]r}xrk|prfe{No}rkWfozdnu]vm_jymtr|Xm_iq^i[gcp]sj`snnfsp}rcVjfyqq\shxxgfu]cZu_vt^pobnlwiri{xk|w_osqkamtxnvapnxp|}sdpenshieV[prsrltf\YrfmwXvqxsvkyn}ZhhxonttYdxvuri]\pwRldj{jqi`~ljUylgthx\irlpfaklqxyn\gsvhi}xnckpil]grxot~l`mu}iR|vx}oj~ccp`qrwokkzflcsmes^mzk|fjmtZva}ftpnuysrhbuml~`orthj\q\gnohlz]sutmpi|Rla{^ooipzoei`vptgV]vkmtznmkzepbeo|uftvtsqpVMwu`pdleNkvho_btakfrkmtxoooudnnnro}`{sbponjdq}tjwpwkcqfaoSso_fq[tWgin{fjbedfvbwvewbgaksqr}lcmdpsqvtYlkm^_vpmknr{day\[||ic~iomhjdhqdxahoxnwehZwukgtqxarfrpkWcrgpqgyqjt_XoouweZ`pjoXx_ft|s^cmg{ampruksueqzrgbc]nrig{xl}xYymnclubkebY_krvyikotgsnyjhzvvNargptizwetxmsmn`zi_l`kifurs^em]hqswrtvsjr`qWkcZef``uxlhtdpkzo}unlbhfsp}fnsuxrqguerxxxspnqyoivrlurfnbhmZ{h_vjovrnumb~^umhhelihymphjkniv^riq^wrZtgmniourghm~kv`[wtdgdzxwzbrhvlg`^mqmmzvsnlyefmnlihswqs[fbm^jtnemnnd`s~ndq}mplkbzRp{zmppjr{drmo~Tvovixaqjf_oq}klp{sYiyajbprgR`wn|y|kdk\jinvyttlfupinPhhhjqihidfpcjvrh^ikkrsrzjm]yocqjvo^ulwxqxZ\q^hitlfbylqotpul}qngnmnnhtwsqszaqji_fbskwujgxx}h`zrrsephohaqkennk`r_mgmdtlwbjproacjfmpsj}ivz{etiqopqqhkqXrlmmq~hqile`fopnX~pagjgk}mzev{zf|hvw{fkzuugri{o_disjpm}sjfpeouumokomiu|{ppnnptuvdsnx|tei|stzelr{qmvufpvgjlYligmumszxZ|ldti{gjofvaklvncnjh}qwn~uzrofptpdjjco{uyggvnqh}shbqonjx_ofwyhfl_lj{klvjqk}qoz~opzcoukiX{zotsny]vskbhrnpoynhggursi`akjmjoiZwlafweftssjthvpzsmqjl_evu{cqgsynmplkfoqogxi`hinwbiqyoeqsr\|qkvso]|uvvrlj}pgRmkXbqh\ihw_]q^ep]aa\nphsnfp]kyzflZxsndon~mcdgoZ}tW\Yizaqaqgamb}qubt~fSmxuvmpheyt_hmOrdqqknbn{sgxaPZrw}[]jc_ocnOghruodw^{Uolv]rjze~tq}`UWoegWilciPiKPlti|rhNidhtjlttqqrulryiejtlitkmj~]pz}Xh]oXi`sfxhxenjeprtn_d\sdp_wtm{nn[czywfvwikwn{`Zleitr`ybrj\yneoyjuissuhn`qldjqq\Xsyb~xtqb^knp}^rfqlp|pxtvlhthlu~xjVqrntT\mmpjxxyg`tkuPtwr\lsp]fzdwu\}k`rgjWjnYonghpvygkg{`]vbinxcnfrptnv}jnrhewxsc`oo`mrpubqsmbkm{Um{b~swtnmIf`vn]hcu|tzth|awjr~ggW`Usiregxa\o]h\kfed~rpsmpoz}kun{xeaexakmmwcou\rfi|dx[}h~oktzhfU|hmsy{sz^xa]`dqqsyh{amqukmceenpbul_ekfgq{oimjjqjv{~gomfksfygnn\tliqglitsp^slllajqr\ptn_oqauxu\zSgqxr|sfen_krZ`mwgzvapkinaaf]_l`l^pichuMdeuth\rvt|zu{rrppne}rofdaolc_b|eux^~pkqqulhq|yZi{v]vvvz`vtwrfp`kfsjnvqhwvyyvszvpokbZntbp{otvklxy}|ypmoqvfcn\jjpVijjd]mqnwfpuvolxfm]kyxrsxtfzl~npfzbnqmszul`p`wbt~vhu]hj}vygun~~ocpa~jr]|qrsrdflbgldtduf]kyuw~ykmeweimekocwT`nbs~b{asbs_`vgrppzqxcmvsif}nc~ketqcpqlzr}lylwkjkqr}jjfkvyhwvgrklxjnoutlw_qr}fdjZkuwppcgWdwtxpvpuqdr_}za~lidtVyrmlxpvr}ykpfck|p\Uvw^qliesi{houunjjYhktpemnhe~xlqm~xkpVgwnnonjptj~{|hrdy|`|pth{Zsbe~vzewoz_Vrhrmharmyvuqqdx|ykjjre|ecnpYokirpmly|gohykcnxh\{lxtZYtgmtj|ubbqugl\kojqxkxehuidx`nzhtljpiUmjmy~axoweq|kUsxuXhsw`hfrs^Xwtnkvxin_rnkkp`rrTqd`q_jzmdvpodonjmUXqte\sposn^skwktygnooyq\{_f`n\gpkuwhYy]m_ie[kflIdzq^ksqia`{xu|^z\vr[bd|i}g`uixjyuq^umvcexxllxkrrl[ng^hhTX~oqxk{kOtdvis[oqzj\wflutwjsmh`hfg^mobx\yhuclt[p}ghs~oqwzfekzagwpnsjpb{huryoppztel_^kic]~Xcnokubrmpnv{nzniwwt_mfYXxllrzcsxxekknvwssm|k~zbqeljoewxkwn^Ye{f_hnqkwn}u^qltl^mx}pngjazxxkheilrifsmg^Srnmsmp}pu[u{bklkrryjxpoo[ocphwh~v{ggYgnndvriqrwhdhhgnmqrmsz`vmmmhturnclkxYnomckwl{p}q}p{kmxr[zx|vvmhsl^zqs_woawnluivjcqphli}gwdgdln\|{grovjpnvmpstwltkpsdvokjn}cv`x|wbocvjptaplhwlYcjv}sigfykxhopubffmtmtfsgqmmmfropcl{mt~onkqncgxnjpypu{l}fufoVptzxizzqbuntxUup}`zZsqamS]w`gjymmfzwq`hgyxfgedejj\]uq`Wnjmp|bph`MonymYfycu\|Ppdfetmldexfntl}rx`rlyvrLtoSfq_g]dssljkpjfXuke`[jpv{jqUx{dXik|w_maWpsn~hXnbe|Wzawumbpi}hWmhbbarqjpbwrmiYiAf}efOXbvx`oouhbSjcsmmozfUmRripw^Vk}uqouu|pvlp}mb]^Yvqsokfgppl`ef_`hYbyqs~gedqciRyifjtgjfwXc{m_wdrvkY}nzYsVvdeklmhsqp\kTd\qn`j]ryo``pjPijicbs}gdvodvwhctrXrjhy]fyvfulckcmlkouZ|pvaVnwRly\lloYeu_y~\futhoSjxhbmphjp}fXmdklmpqhkmjepqx_SoYYd\dmh`[hoy^Zfvwme\_Ydwuu_{mjug_eetjt[sobjs^zgj^nqfshg^Wnmymr^qZoeyil\wwakcg_ac]oekmjnsfiZnamcro~|d~`inaq_gXxhtgnk|nurem|VZpgcgndbarmpny|gZjeZzn`kqyUjcop[ttwzj\_yo|pjjizj~bZeSefx\_czlfpjot~z{]xYf{|fk^lq^vkokwY}jbUcc[mWkD`ruqnkju^ki|e]pn`mmynpmfccnggtnzzgi^^cgpvy\ls\kuentruwskcplaoxg_r}pngZobmuiqhhfh^iZcexnt[v^zfbtajrUvmctneoph_cddbezisc~mik`wvu}rl`rhemx|erwnmro|cvbcsopozji|n_svtrun]}|jnrt`uszy`eymg\gnwbkeizqjdipi`yetgpljrycrbbchgsknpofo{sopwwlVuqU{yzjxx{tuktm\atfntv{{cttrm~bfit]czbjljj|~ngjup|V{pomW_ph`h~evogvjmfnuzv~xbsxY}sfngglpggnjonucmcgofosh~ow`pelo`notxtsgtmfsxrmuSo_xpSpgmk_g_tfldTg_gka_twpefjyolixgnZ`bbvboa^iniofyt]erdw]lk]tr{dj}{omqwalmftndrpqfwobmwhgipjlolfm`lgo|taqmqvaftoftuj\gwrjkdhgnsxhhidn]gijblrwqxut`quvhu`\{dnfc|}z^vdjf|~zxylwqo`gvhsnwzeTqn]larlls[nrohaor`xjfub|tnkkbg_o]fibqqbsq{]~~tpwtqhgxvryfvh_dongpwhmlmi]musenqqejkdsonlzkygnjanydn`scnk`loWv|[pabepqvgk^iedhx`q{_\s_st~isump`pwfv_vmununnkt{qjphr~_fmpqfltjkvr{pripjkotzse^jdl{aqipgTglvqobcdrfjoxjid\ekihkqlazrsmg}rlmumffv]znnfcriplg||nyplfptiomabgmjyqphh{evyi`uefUeeinmoaouponfeojdtsnmztjut~eoohmmdxnabkl~ww^fmhcnh{uihll{v`zmm~f\nezopjiilktfv|som`qjohvihggjd~iriu|niwhxuhhn`jpfnqo`uulgaksh`poennjjcotcqbxsdWkxlmsbu~lkTletrvskuicuzrmmm`acb\lbg{lcxtjetshhjrujstnm^tphgghvn~qdg_oteheYsl_rw{pu_k|gZehz}dxpgqpjpfel}esiho~~p`inxlupoqdonrWw`cqlRo~wgdtmvms}rXl{^]rNcnglyihltj]oq`a{}{Wk~fohuzoqohzovkuiZskZrqauwYvgdtrbcenf}piv`dhyxidvosmpmteiukhYnadgmddhkujb`mjl]pq|[sqmlX^r|n`pycuhym{{qtot~laehYe[vYumm{b|b[bmtv}ijdusnmgg}domg{qgohqtgictskmmietWtbKhituft`ZXkzu[v[hxyjqp}hr`jevwhqofiVkiqoukqezjr[ncXo}r|ohwfnifmunvcbin{zdbZuz_swsVm[Sdcpupx]cszbbnolj~xoynutVjdyfp_hgjml`f{`voicm}bga^lTzvlzxznbQlNVlcjp\lkyrudovlwyaqlimoxfeglowXoop`gMls|xvkqrmizynk[ejgwmeqyfoxdq{nzxlp~eajxzm~}dcqswowm}oMxjrjomaqlxoksbeZnjdVqjzOgp{zasmopj]vzvigiXjknd]Ti]Unmemqa`jhi]x{Wnczo`r|z]uhum^{w~IR|xqikhWfcdow{Yavio^zyyqto`hgOvjr`xp`f|~cvhn]dnnoumjmtshfzsXl|inowxlpnssyUmaeo|ugs}gsmzge\vnZZgqsd}ht\oxmmbbozomaferozVbufwj`ltjonnbzuodWqoYilwYken~h{blh|zzgvu}[fasfZe{sp}ncfsqautioepy]oksgQcqqyyqfpmJktYxb_zkjkUunXsf|eq^`qgtl`|kbj^i{nbhvgjolaqtqe~eibupg~cmhibupgfbscyw^kbwl~ll`to}xhghcha_posounfrlP__iv}\udpkhvzlx}^kgg|v{qkggxjdr~|ruon_s^xs]uup|xrlxjuklhozvq`qwwVoTPhqacbvjWc}wpds]vlsqjqogmjxtjlw]xqm_idsid[vgsiidl_~tjqpiporgimY~zWqxsgwjp`qh{qml}{duujytjpzbkphzv\_xlhqzu[pr|rbaluscrdnbc~fuwapbyilwckcqvf^hm`t`nogbnmknlwnw^epR[lh_p}[njljpRmzkphofkbUkYhZunlb^aoqj|wcjl|^tfjgzelsre}`c\ydqhpiwb_s`Xxgxmsuxvcftlud^mntozlolfoacj{q}q~dc_hwf{g}ikofdzdZyaytdf|imcxjieRi{htw]ce|sxZoPdbvnZijzvz}wysrlb}hr}}dfxuniwW{tsxzky`fXmbrayjzm[jrthR}omrpwnd~|fr`s~ahqqbhptgrgik}oimg{|[_vjrxmifsc_pplUlegjia\wkrhk~n^xqwrstrbZtkaojstrw~nqxjjcYifkksxjvsdbwcvlgcjYvhhtu|lyjfnswbfil{tesnrd]vanwzkwmm\{~qyeWyveyduexnojcecpsyuvujltkhxibgwlYox{`upqjtjjpspdbs`mrth{djzcoyiode\q~xum|tzoaf_[nvnvx}r{gvswow|{eaifwcq^ar}viparovgnmympmrc_pkatqfg}xhnjuvscyietmxeqmgjk]qtr{bwmxnfn]vNjougkt`WYavg\li{xzmiqkndfpxupv~rx{dwcmwpnrqud{u|hctxcp}vd}}nloo~rnrtrsum}rlukwmdc]|qcqldrjtorwhtqemT|`utwjsn{^rjyewufpci^xbnwcsfe~mrur|ik`~eyl[jii_Zkdcymzcvvyhdgnkrqj|l~qk[[xyoimma^wudkxldbnytadgghlpwumgospgwteqopZuluqy\knmbpe^ko[p}njxntdxkxrkk}tvm]o^csjqd\hkplfckg}r\jgmqvhqf}vcn{kspamiZn{y{yrtdlos{faogoeehuu__yh`htq_cZogu{pvreZ[drkzfclnoqyvxiqktvtgqYdiwnk}dmUlqOyldgeidcc{lhyxedvquYtruqvwtZ]wucoutrlrum^eyuusqjlk~lfwza_qwoa|kVgsfdosr]x|scjssmx_dtiilo|sn|{h{smz}rtypfkn_gr^jltp|__uavyuks|jrjzyhafXplg^ngqgkskvWny{oaelvrs|tjspxrbdjmpcm{yghq~v{_t|tsio{v[]wssWiqesjqstWhljnpz_tq|gubpqkop{|Vj}kvp{shieyukvljoi]ayzh}`sfnjnkgtqhslbp{m_th~sylno~gwwvvrjbl~puhbj|mnxkwelga{fe~a|qepvzltmc|egqnrgi|tegu[pyognxr|lnmxypd{rkbnndp_}wt~vwkfrhjlrkmp\whnm}enc}~vhyjldn{lgvjusckhhhhdfnlt_{fqthsybpw`njli{mghpnrkW}h_{q^bqpoi~clhd\pjqfsaomoa~d{vuqlhsm^_fbvbslfo|t|tdZodluupkg}othmxl|s|{h]l{wmfmcrzm`nqeo|^ftcolyoogwxwwfwj]ouqxvmx|lwsZmixgh|vzml_dtukVqvrme~|ugyoyyuppvsqhOetfdru{kd}onhYo^}zpqz^euYgrsoufkrezzaYt|goekxptwvyjgym]xjgZwoyc}ufuavvuwq\so~ekntzp|u_tg}dyys}tnkqf}r]{iptsvcnn\u^f|vtaksmqyxcxfozcbuikur`f_iodu}opksjt^uqk{gakwo~mm}ih{wlYcgnaWs}pz|_\xmTssrk|rneftkakegxlmejoh[wckpvduijmzwl[n\_aZr`xpkxwlt^rmptiysx~lbcx~fflojhmtoxqihklpbmjfkn]iejhkxyrudufgrminoyVodemulTkoRg}obojjhctvshb_}ngVulew]gwuulj[_lotz`molnlnq[nrnqsfwpke[eivkbjkg]qbcjibmovglh[}hnii\~_brnudavtq\ugqdtipxnzobnvh^lvngnthhqdnlqjlpl}mymgha]wjnns\it{kqjratjkfzo\z_armg_ldw~rtgwr||gmj[ofibdnjwbyhowrgyovv{swn`aa\xfjjrmnnfv|kdcvmm}qmkowvq}nvoweibze~kvpiejvqkkoY{cnml`kozbniu{ysvvfi~rrkffgb\pkhZflimbimhsjxdfl~c_tjn]v~z\zll`vbyb`knsqmipykm`rkfdfmy_^llkmxtbord\ugislsa\pjhngYqi`~dkvpswqnurlXadroflZmcktktwttvlodzdfylhguas|labnue{gyxisufxxt|fomjesvksrimUUxdwjb]orlysjc~eipviencefx{nnkh~^^bhgf{\kdpobtuUnolfjpefpglr_mbudhen}lqgYdd`mnawsu`idkmoxvcqpokqkesj}ivffjnbmvScdbjyhuhyWtgwryime[pm`rkeshocmz[gpaldhi|ikzj[lclpk|nviibb}jsdzjXa|gmxgsrkufpegm~|hnlxrkhy{dvotyxrwwmoesqwt}uta`clvagdirlhpssvxnfdeq}kv{wktjkywz|voj~xx`qwinewlqkibXr{|[rj_f~kqmy`sx|h`k~r^h_\rc{tsinoqm}|iqz{}tj~rn[pvnlp{w|mkt{zsreq|Nlyqwlxb]auc|rrg|k\s]jgi{Uvzcu``zsvfop{ouXvYvorp_pa`p[tvanyzlzyiopd]k[e`ff{ygg^_ihtoeqy|veqa[qhp|~jiuukryegzbb`Qiybzbrf`tmbifdeousjtwtvskvhhshzrh{ssrcg]cpfmjjcnqfoksuptpbku{s[oysx{cwxynckp{jwnqxdpwx]iggsun{ilwgmwkeoai_mgwsuf]qcozlmzygcwnmywmuwzoxmdlbltmoqrotzifenfkzhmqu{edmezf{orgeuqer~h}f^\heu{uaqp`kwvbp[scwry_qjpupk|xwq\ijddkqba~gq{zf}vcozjng{s{x|ole|fmkwslwhjppudonespvejgtko{hugmjoqr|~hk{hnejm{gx`xpnjnqmjm|vgsxnplancmkhrumh|cndsxq}sptqrzjXskzcokqmxqi\rnmwlnpekpthsvsvkwen^\mosu[qxuxo`smmbksvyhi]ktmZrlutZxjx|mkpoj}sm\ngtislvmzzd}u{`sagmyyoehfm~uctcmsmsk^mgfigvnn^akhiyiqkl~ljs~]z[wokb]dylnylvj_ujksnomlirjhw`mkkosp_}qgnkgtjbtsj[y\mztssoneurrhYevYhrnlylqnqsjgvscd}eahsmqysgszwbyjitpy}tqkuuhuek^|xhntrnjy`sxso_kj`elnninm^cfpsbezmdipwqg|scthuxqzije{gvdvqkkwvqjvurgsjaxxr]_jsfsfwek^|tpozjrwomzzhbtwiqysxwk[ol^owktpVseyjibjhzdpl}xipmw~]vpuj{i{~]ntul`~qmjw{rmbZqhsophgrzlizzsrpqn|xhzb[lkjk{rtpaxftqq|[rgrbmfjspuwfko|g\uhtis`_[rnm]|jwwmnlxmtk^r]fdfkuwstolttZl\qrd_p}}z^UlsxpppjzoWq~qrxshuppligtgnus{xndsvblvej}rqmtso}klicswrzpf|{y_p[mkzfragidfkjf\xugomiyiv|ejzfgaxj}hyrurqmxix^zyengxiyqau}piVtatvib~rmqpv{qxefmxnaoltemlvWeh`sbejr|lr|Vzgkl[`uljotksxjzsp]vbuw{iuoutgltltjkxzqnclsgtcn{hjvjvn[zfgswmeisilb]lbekkaen{fef{{gjty~u[vsyspkknh}xq[p|gtx`q{jrqpj]jhmtslndXspv}rctzslvh`vunqswWgjplku[uaZfYvkpot~mlowmo`exnWnljxpoi|ntmqmjtovjflxyokcobVtvd{rizZ`pptovhreckoWxlppgr^snjcveqzkdvvxqzp[kTdr~bnpwUqlnvrizu]jhpmruka|`ikj\gufrmrV|_j`xaaok{gjexh\m]mmwt|ynm|srdstfusjagy|wfjijur[tsrdpvx}bnzmhpaqluumtu{xjjzkyWgxnxhgsytbqqpsqkhryf^kmgpxjtetvmntuzrmtUdliibZyk^idhzfnhgWjvbo}~Qmowtus_qsi`ovhldsvl[e{lccfsib~Ikyoft{vqftbrx|rprzk~]gfWa^thiatYjn|j~t^as`wt]yhbhg[ixkqdp_ytnu{pjnpxeg\ndjyrizofnrzqmdp~klgS|t|pigYedlw^qr^_lgx\rtaWskpnptZ{}]sm`v|ysedmmbhnZjnyywm`v\nT`l{mhrkXplyiarhgwhyv{orcdipnrr[gyytsbexg{xel~YozlsWlpvZlwvoajbarcevs]zgn\mtbfdztqujotl^qnfkwa}ehfntuzscfw_mYadflt|chb~rkjgukbnttue}kssjueql|zw{qlkqx}tnuwxz}h}a|om_qgoyrorpyeO|wnzlZzgbqwi}tmtanbujbpteosq{|aftjZl|{rnjxlsuwcee\smusoq|ncpsYkjcmxheqvd_|hpzfhrthlan~spnVelb{|r{`ulpnxglxoxgwvtuis{ldwekmhjtmo|evtjw}zjbp{{tjx}p~nc~fmnyqzufvkpcebxop]kfjkmh~dp]yoxsnbVxqthgfgmp~g{k_snfqucmigqzdytswkoeyf__c[l`qZzrdmntlfXoxzfj~y^kstzgwcgakbthei}couakfmxbac{|btiu{yvlxrmllplremqcpudqpmqq~|qzpjthnpsvkvqwt}m~lelemossvvtndnumvybxgnihoankuxmu|o}mfhjwrlyqy{qxtjskxfpe|krmqjpskhyvpqmmsmopxsmsk{dqtnUrkelwiitpyqnjxypuningl|fh|jjvybklelojwfplejkxlrgwvsocinvrbrgrrokpphvhv{|gtlpjkwmwkxwrwilastuwnqpe{umlntqtrlurfkcqxltm}r{wbbstuhpsqnkjumuwsdggarjkutzpmlhmlqqthihpgrrktxqwmpgfsqtnjmqqjxwts]fitusbqlnzl}cslfnh~jbkfsoxmq}grrlrbx|pimkplxlvnvjllqyz[vhwt}yp{sdzplwfsfufwstpijofvYiqin\|iitryqdzxpvofm{kdsjjnoZkpmUucfpcsa}|wvbqrqm\oe^{{aje}yurtmoibsmelgmsjmw~\rrx~iq{tjva`fmdbntuidfmgnk]{reit`|oczq`sSppo{tcrigjyygnzr~xi\guaqxlnsvrioxqqed{mlflh{^tim}bvyx{twmgoczgrndlxtsupqn]udqpscyssojqkpnwykvptx`ukkctswShv|lh}`|rf|qpvmid[mp_gwhcwgvukd\cv_thkdpkf{wvjikckwyfdsvcuhnodjp`o_qYiXpvkpvy~umlsqgp_elbsqianwrmjsgq|dxdvnge`|{hurxtehnxjxv}xrtiqhvbjq~{d[|}wzxknpeuto]pkfxnswshathkq{fpjhpcqphloob\jtj_{tlxyl\k^jgpoqc^~kk|shnwzdpmmqtmZ`^krq|qykmjf~snkh{uynngifleqlxjddcuuul~Ygpugtpcwalbi{xiklsmpn_vezpvps\m}pqq}iv{kkuvrfsYhn{eaurvZkuizoxurpoolVpwdqrlql`jjx|ywkXji{xmjvpWa|fla`gorjrl{pvirmm|x|yqc_eOh}ms`zvk[whv~ctyi|d\|o~aeVm{pngt~`gx|dnxohjzv[qct{lid}xgpv|^Zgwiwjbv|stk`djklm{hss^zpaxqwnqYwvykbisjpl}z~zgmgimwjapvkatotz\hxtp}jnbfnemxvgiwltsnusrdhnhYoqo|nvdy~hpkcj\rr~pin|hzinqu_kvwllbsaukeind}vao}oodj}ktmf\np]kheoZoit}tmodjhuuugnwc}{oc}irnqqjgtxrnqswgytgxo_xmlw{}rr~h_Mjarsgumnr}jdnqx^ehgsrzyeemgkovbnnxjbpmnu|wsx]mjxa|gmZ}lgtpxxlxmt}_rxydntq{zmu}lpjwhbnspmncxwj{wkunnntnduppr\zvcisyky{|~ltmtvl}{qtvjdmwZiag`kvmztwplikfst}\xnkfwSr{y\|isrxrdjcwvtwwixhmamzmqvvqktn|smgrhvhbibvlyepunrxhvygy_vgkwy|j|uspojj~qewvcr_mlYwv\t`hqlk}^lgnlkofwjgnejpanmifxjquiZmu|qwjortl~}ipi]nwtjvdkuyufjokezjzzmdoZgchpyyqlm{brw_Zzdpljosamqr~yomU_eoso|m{uo_``pqjonl]{hjvrjcutbf`hovXkckiznokZk|enhamt{gu^_qsra~_qawcvUhfjr~hrvl~daz`h`{fawW]seZsgg[vvUzip~wbybefr[mUd|igq[qy}d_lzo|o}xtpa~ssgwuqjqnsllqrYpkzfqzwvr|tunupprv}dxggZbbkglermzzuip]wozrssgjc~x~vrVumyagsX|iknvkntnsroqrroltqlghorqnijby}o\alrqrp|rqsl|v|wWcmu}dkbp|rzevhXnyquclTjrwxvkmmrmqruxes\depquxbtxYxkcejuxngmh[svffyrx_Zojxf\iop|wgannemhlt}kyu|zpthU_aruqfilZ]p^xrtq^wxbVeh]akrd^i_botebzzegllpfr{syrtvfbtrqyvjmwsa\sit[tryqb~wcfg|sg^kpgejzidvuyzpumi_wbuyuZytmeuzmh|ps}TeqSejyafYh\fjlh}h_syzy|sraii}hfm}hgdtq_pocjm]sekwufcludq]z^ajfnstnge{iyvtw{tm{bdqlgkcncyqs`ywj]sgrfo[mqorb\itlcpmromvmlhxksub`b`vulgcn}p|_vs}d_islg`ipqqdlsh{iUpsovlohokcobjs_ulqp{Ymbiaouv^XslpqWksxg}d[skr|efwXlskjdc~xvbwy}tlm\jnLumpilafovnbmin~^lympnbnrixfbwrgglfkerm|pa}un]jl`l|snixkvrdjnhoiTtt|ahddqkrjgqulxkxttudjjsbbulrmmh~rf{e^or|lrgp_gvpw{qwprsoimz]rhgoosucslfstxsqrsqhljmkfknrmauhxukhstsvZvreyepvyohnwzlooqgngklwl[yomsfuqop]euqqwndmsee]lssghiixfijcuikmjvemnte]n`sx{kotrgu~hhlfaksvjnrwkshekfp|enlk{oforkngvszwsgvqdnvbwimntp{{lykqyrplqozumps`qnqconkzrhunfwpvckxxxknchvzlckxnioiwrqox\hcqznfuriau|ppvry~rstfliewkerujqtvl{bmq^iwoXdknkmrkkqomxvfuucjumqknininUculmylmr{sxvi{lqxsilrm]wplt[lf`quqqjmwo^{ephw]owqs~\nfidxpvtnqq~gasqkqbrlfgmq^fbarxj{ogj{khttkmuZ{wsflzUotnyn_hnvjcjj|jyaqggnytpijonm|ofyvitohqkmnwmf\kiqmeeouumfwrgtpkwc~n{[zfmnfpyoorsesk^cnjgjemsmjrkrxdtqjjutqt~clotdtqn_nrp\nmqnjmqrkhpuiy^fctxpnqgdffgzfqwswalylux}mbcqfvjhzm`xwwidlemnsVpsyfopajemeqvemcmtylsenka\gtnlsbZmsf{hpwhjkxnsja`rqifnp`jgqqmnqvpuloomfVjmlihdtterkzudlwgkmhnwatr|tkcdjjkpdrdv{ruostplg}\jw_ibcouduiych_ki|m|adooxkeokhoya^s`^runxcjrzsmztwkhygZuhcc`g}qxfqee|keapmspoygWeja\ye{mfqtplp\iznzcannYixtxjhwpkphobcc]viptyye|~ogukjW|ucXlqXuhqbi~vn~i|jisjqrnms]j`lmosozo^qlns{ookauswY{xw}aoxzke}awz^gnjzvxvuk|xwf^rmsqeqm|imtwitktquou|jkqui{]_cSnjy`|fucjjzwvxYuZcxmoejxxxkfp|qprphz^mltipotaslyxwme|ejzcn`mlpurrd[i}qmtanvmfj{yqfypx~lxglcutxSriviwfvsz`~oouoctzhnxhdrhrlxsevb}n{|~h}jpqneafS|oulmqqlkqt~~ywctm^fjp\rujkuxrirotvyvgoiw[_vmvvsfdwqUhlofquoe_`lm`_tfnrhnj{kbvfaqcjqchvtydhd~vs~wriepfliuhXk{TwphZrnlszym~]gdsqgmvyemonyzqdqwjxqnqag{dag`uolqp{wtpi~digjyktkp~kemnmstxetob`\Vom`wlwkkbqbildfhjkfmjirnjk}oUoodnXle_nlyhZps]xwzx{ttti^cdtnnjhckwk}upnq|iuluyvhbj[qrlcsnwxgfz}}pyk~nuunnqsuoxkuqhesl|otzwvmhqirppwgrutjltgfnanus{rum~rnoitu}cigqojorlhrotjp~hwjefvi{{i|zvrxqtprimshmlvwxnsi|vomy{mfpvusunpsnglgiiqilchtfu|jmmnmt{ly{nyvslfqydoyvjrrxqrodsjoltr_pfvohmrprr_jkruvhkswirqwhpktqgnvmh~gwhnsuspwojrliuwvssyinnonkogjwmrlnoqdmtnwiz|smgopvppisurokopjxqnbwqptqnonotqlwgslnsstprmqnzzvw{vpoutkfrqqwdqurnroqpepy{xtfvpnonxahvjoopybpljustnpjprpewlty_opr|dvqvsok{zeZzsecs~govgdsUfutpT|^osiohvdupedvyWiivksy{qTiwXobj_wfxoSkjspn`ZajlfZl{ngurfrhueelf}znk_qvwqctkzan]}vuthwdepcsztxemdeiebmu|\`lkpy}xu^nlju]tdcilsp}ysuh^xgdeotlygkz`jq|uiljohtdrgtb}iYcvjunovmp{m]m}s^yupntkp]visbcoZ|h^_s}qkvufh}Spioytjatiutozplbptpaxgzfjrn][g^mfhZdqjrwlptmzhsgt__enhqwwht}olcaz_am}hckvu_fqlwwwrmo`nX}uszpiylsmwujngq~lfnmfmqf[upmdrugjkgnuZqfmpkp}|{_fl}yytddwrjckqpren}\lOsYshfixiiwkdkrutnr{nvslff}s{fiuujvwxsn[d}pxzqXyimdityxv|rurtedvVojxbrnuj]qQ^Rydwxv[_e{Rqtdtpps_j}[ojcnsx{zxo`ug[segqoo`yzkcf[Taq`srlXjrv{`wkpw}{kmhgxl}qltm~hh}m[|t]ps[uilqwkvxpoeyongo{ngi_jdrhrkelqvitz]d^gr|}Woko}]afjrxfYn`e_sjbisn~gkqwqtjucir{zaeljvss\hk}oks{_z[mtlyeogsu|Ym`bqit]kmrz{ltsubj\ryw_pgn]rdpfXdivlxmnszwmpyaifzpo{dxyloqnz}xsinU_shpm}u_X`Uhqksk|r^}mlieymha~hmi}xylexv~jnrupmrscjdwi`t_ncwfgigbfhpblb~bpl[nevpfxrvnvhhnmsjeczXjflqsdxj}ojtkoyihmrkgmqfmc|r`v|uf{\[rql}lb]akkon}emqifgokgau`zokuqmztpkrhurqixkohz}pqlpluq{m}swYu}g{hq|wwnjgkdkunkpvm{hbshfe_amdh{epvuMmsddipaZp~ywXmt^mpi|_`xWjhvyvmsiojh\wqspcwxpubdol_rjf`ijftlaz~yi_soreoybtt~lfhsupdf^p{hjl}quqfzjmipzjisu_rgz}qyfmtu_twwm_xeonwdapZuon~_uyvkveqolljfxaaxgtj{jswo{vqwdb~a|xotgvdxqwmpkWponuhwd_wjl\o|phwnrk|zfjkqodjfk{jwky{iv_fdx`jovowroljxvj|sgpshroeclkls`gvfurpUzqprvch}p|k}r}`rtkfhbnjcnrkgqogrtmerpxu`pjyhn|vclhzaijywr}hlhborfghkvrky|jkfsjt{pnqsxejktyfvUgr}gl{tlsltcrtzknwmwzyZ}eybjvTxxo_oprqgukrezimt{doljnhrlkoq`gtg|rhomTyynifsrSybs]pqiooq`]^wdgwqqpmsu`rokpox]m~{wnpmzzklhry`dtuwofafVgnrxrjqyuex\gvglkujyumgyn^snkhsfvavfqpkitjobhgyrrgY{xtc`ri{lzsljdewgbjhfdycu|f}ox{dipiklpxwbuums{pwhyklgqiex}rf~l}s~c~pp~`ilg^jxtmkulpVil^hr|vfazszptgupp}mhnzia{b}olf]p_nflo|otooZj]ukozlzqb]fvtqkespongntrl~aigaoiu_Zzsiea`gd{qsk{ylkun~}~lqkaipynqnphzmxpdu~ax{s}sv_tqqdgl^tgnlizzzj\rebyso|vq`lulmsxvqkeYrnisunudvwzkpoclnbrvahndfwf\kwmw`wtfos`d_v|]`jjproyjbbzh_}odrakbsaw[]ouihXlocnyjepfgyev_jlfey|sq`^lnurjvbm_vqvmnhsUm\ft[ucoc\ghcleqmg|rjvyumpohWoim|exfrwpqljkofjkwbken\erdkznkdgojtmdqdx|}{X|msnppk{ytz{fi^}|nybmi^~}sw{iijd_tnucmpesjskbtub^hvfjxnmjrc{pufvnqhdhun{awb{]nwzrfdowXkomhtpslaxhhongr}doanvilxttmh^bgk[gtvp|q``h[tqd~utvkbrggcsfce^jtlsaxyhlrxquyvgp^glytsqpoga}{plknnwghfigXlmkh}gngjqu~zrfvkigdoj{l_jjei_puo[qybhjleqmklcjlrqij\hxgjhpq^gmxk}mpaphkfai`men]vv^i}{}ybk`rl`joydtkoee_fnz{jtgs[olwt_jw~tnxnp}jbkkjkf{sqdiUujvsnynsZhil{gppfrvtgxw{|pY{|u~sw[|fssinl|g\vv`wny]kprk]ljh`ujvs|ey`vojmusmd`gl\cwh}|sknkzzcrubmttimtndmyz{Vwn\e|ecioqdjmm\h{ebjmteo|lpze`tkyi^bgjzz\rshYkzpgdlrlika~pTxc{}ojjnt`hn{a}{iu^oliq|{nlfcjwv}nflczkyiynmkzU}jvqstmq|oxuron}^e_iwljbfonihovjeyqtmuhuakrdbbmyp|}prdlkdothj]rooncohpacrwq[uswo`tovmoz{~Q}ww`t`wrhkymn}ktj~sdie]arzWm~mfpm|itsldnk{k\fmbdwecffo`aiy_pThhitntYS\b{W~{|ekxrw^usdrcrlito~lpuTmdqsvzw|[firqdfylzpsw]|emijb~jixt`js^xih}l}dxftn`sNros^kntk{{ksmnui^isklxowquyddkVrecangp}eYindhqt{[szucilu|gsyanalnnmsnllm[]mgcq]qkewotpglwgfbimfwo~iripczki~~exviml{jfewn`iqddfyl]srriq|g~ub~zm{nsjW{pjjc{xmkylqehoXtvzkiWs~krtntonj`tyehwpoaazkwswnbsle_r[tn]aobihfitvnwsmooo|m`mwfdwuu{mhmtd^t{gaowvvjgqrmqqvecs{qe_zxp|rapfgn^qzwuxqnljnbxngkas^odvlnjkwdnk|pksrzn}csn|qegibimV\fh`xodwmipkxsmpu]mixktdpw|d\rstrmvns{xm_rhUwqnvkiettosuslvfcd}kko|\wacg|{joie|paipeyfwjaudlhtdhzapz^eft`iasa`{qw[luiotwyZ^voi{u_ox]nfvRwovkfV~nb|lcpiigjkyyXmfiv|lq_Wt}igthlsovnhYanx{Rzlypssukgo}jvjqqpkavzhfhfllgXqhosswyippotfamf{ugrmeo|Solqy{d~imku^m{gfridhmm`lo_k|mmgleqOejhhiihtrt\ihom|}tnlrfmqe]qe~i}Lvlrgqrln{dlZ~akPasgzdex}~wbuvinolg{ywmhvppn|krv^zmwvqmlt{lngwz}|^mltpblwuswjh]wd_k{{je~csncqzrmVwuk|qfrjuipabiajiqpdjsegwq`ritkqrn\jutyos}y~~tzpxmhht^gh}jqd{snfkqxt~{Ywmits~wvdown``zm^ql|qdqhqwXtwzvvkyvskwj{skyxy|fsov`lfy{qpmyssivak_\Zhzrqoqd}l_b`pZkqc[tzqwbjlvunmirjfeQrhdwsfp^vks|{ko|jcv{fhjpgnc{eclc\{lki`wvc`woijrz|oleotqzqfhvsgrqvjZ}rzsxbqlnuqavujptwttyi]phgiythf}Sgiclggrxzci]nxdiym`vzt}]djzfau}ko~g`gjjg\{jrVcos_ZZss[zgtr~qqjwiswl|srisjnzddsmbylbknctayqi~xunhpx{mota\dfjr{gmkpp|uudzybi}{^gdqoZv]dpifpzpzoowcl}cgfdjrxz`t}hnras~n_nnjgisltphfvnuiwktfs}jwzu`logq{tmpxzugWolgxcxe}y{epeswujqkljuf{mVwfy}`]_blugu`l`vlutttgyzegiqvslojunluzp`toigsw^hr}kiqijwfZkhiyyzkvwpwjnhomdsrnjh}m~khadii{_xnkvspkUglyyxmiaxj}wli[hsashgjgry^fh~f~sirleZtihuse]e}z{~_eke{|pgvtfvfrwgh]mwnrdskoj__]fbzanltvhkyiltcZafpththhShotqod_ijsrqarii\wmopkcgls`pfpqhqgvckjmqr`svahspudqgpk~xj`|p}fdwo|ppq_lvkc^vgkcrppmrv|}mhfiyb~ofmwVvvz{rnjlparjhglvcrjkpmngsr`fdbr|elkceqieznpjig{i`i{vjvlrgbjlsutZjdxp`benmkrxoqj\swkemglYi|rjnojgp}lknpiblfo}hptisuhflZ|lZ_tnhwi~hnr`fqc|yo}a`oguv[sliqicltdsdoi_sjpxoqqau{hmopfSz~gymhyot|jtlXgfgsifsfV|i~hcxvsmmoywj~nrxZoqkbp^ilft|zdjonyph|bmmq_bhnyklcrYeg`grig`mft^hgYgZp{|eiwypzjv}~smtwp~rf}|}ywwvmakph{mtuwqptjtqu~rrfacvi|`kqxj[qmxgrsfZczg[`pth[}judkl`rujav|xsyofohi{ivluhhwwlfrqgqowwy{gn^htthwtqo^rhdqpalmrlcyomwwkzvm~]pmkqkfe[vanrxdmgu~dutdx`sruiqsvbWoguipcorab{{{vuwmv_vpxosfxe`vmtbmlp|xq\fgxtopzklfwlpgvpps}]opym{wzsjzeohjqcmqkv}h^tcgZkhoxvqr}yniqhvpq^rtprrkqpkes{ll~rd|iwrbvqtmpwrm{mP}gnj}{hqnjsyiqpuxdkjwxx|huqoknfgk|qfdnot}pypjwluvzdtp{qtn^sncnclro{y\niftkZ}~[lq[wkwmcmtowihkpnv^idu|ji~tc~^\jymsnbauw`nhlbmcdbqsvlugbshsaoxlxXcritinmhWgr_elg_puningufcvmnclbkinksjyhq|itoi`hynvtrrhcrzvtgf}bui[{fj~jctd~p\[sYbwrs|lcrod`pjlovvl^d|{~nboieWgsv|gd|nuf~pvlcjemnehkb^i_fjxz|[fxrconjtwix}yi`|rmaqurm}\wrkahoprkuxlsnnkyp[c_}rkpsccxt|xh}asfiggaolq{db^clnnhh~czgot}d}tmlrnuhiU^m{\wppnymjdp~pgkslbramo[zefqkmhlwezpmt^|`psgerwfhg|hzlohcnnrdubdmk^tgwafimvm~uh{z`ahhukbxdhjh_rtjnmeppfrpnqsusyjaqxnknx{eruswanbfagvsputgj~q_rVfo\lZjgnv_hbgpdfyw_wq`qksxngsegwanoginmpqkkkpl[t|jsmanckykgj_~r~}}snikvapi^_p\fhqb}{mvnrrihs`qilogyYlkhijsv`herellxjlms|edunwv}bivtjmsPfebtfrqsiljovdhrfvtd{dve{zuofimj{uokfqp}\}fkto|pktn`sZx{ifUl_\{kSpco|nnkkijrh[ch_ur{arnribsqqgiptprlxumcg^jf{ijk~hodsxxjcnwboondlkstotlrtr}m}schn{kw]myis{c|h`fy]op|Xvbphyxr}js{p{{_xhn^|imYodYsj}\jv|ni~ueymsnwkqgnd|s~olmx|izkx]Ufsmgnyndzzvxcmsgjqnhld^mkgw{rqs`p|tUjhzhliwfjipmllplddvwRitualrennwj}olg[qphkSlegfwkjjgrmshzkht\illolhlsrxWybdotv^hldnfZX`l|sYl]u|u_{cm~hhy^f_g]vpu~lmsqeoserqblueqzifpjoapexzfkk^y]|}kfomvbrvh\}{xklhmstjjybkhmjbrkhobveqsksgwrvjfrwuelq_fnnyuqtijqjregqiljoklbirj{sxlhrffwhpawb}fnlwlrmjpkgnlopepsykktznlykwhr~wcbvksnqbr{anpuuwki_q{cniydhxXpfad{thlvgmi~ikx`ig{yntjehog{rfhslitmxsrkik_nen{gskokqTznllozfvdstvlgbywjyhliqmcjXxejmvunhltinguqoojmtashihnnnjobxcahil{mdynjxwqjxvhwwi{tkkx}qfmceobv]y{uvk_{xammhlscase_Nnstxriijpvy}ysyanoeobuccikjthnukkvtlibvvhroi{mfrsruysskkidcwpct_lhvsqpuZwlqarpim{ososjoqblvwig}ileihhuowp~kloii]fmta{fpgsunoxfsrcjtjiquhvet~vyhwr\i|upxmk~lldfjpoqpbpmxtmpusvotsmlrqgglemelkjrrgqxiz{srmpf{ueclvzpgr|jvqghknxtnqjmfh}o\smxbvulfupnfinsblkomldwh{nvdzygh|vlsx~dgr{e{epdxjgiskczlxrkcvckvxsrh}mkguupmvvjm~pnplscvpx{xqptnynlmjqimqytnnxqrodizjq|xmnxjvuifuisygnshuz|tnjsrg}]fgimgpctnemmvhqlxslejnoi}eirsspdndwrwuZmli[jxgu`~_uur]ji`uSospmg\rq_l{kTrup_hll}diikqrqpehcr`mwntqkirzsvwndkhatkoq~ti|m}w~oqloz{nprxiiupj|fjrmmplzoqtmhshvjw|iuikqmop[mdpujjlbwxnz~^hzigjubpqdb`grhvhrzquuareqpfqjmyo}}ly{k}jshjofxkdugx|fvmipkytfoqktxocfloj|ctcluzv[zodll}mos|q^d{vv}mpijrhwixngojjilpivviurpmhlqeaswpth]htdrventZ~pagspuo}ex^jclW~dmhqxtZnwolmzScm|grzj}ggbyjrj|ie[zglnjewnflphhmt`qrwsopmik|osajc`yxtnuhphj|aorbg~kclm`zn[qk|xkbxp[a]zjuxr{ruh_|]`{~txcfzqqhiv[d_omyndymhgowc{g|jsvsmxp{Pkozqdke}xvgVlnjnypqate|fqjeoXkvusiibajgfinjczlaxurnyd|kkfbkjklepjvnxrgk|vzur|vboemsiw{vurkpd`tpp[{lV|braqcgpe~zrynq{sp|ayzoqm}}ybmprglimpp{noihsmjsrgf\jvzbldfegqxeuzyvofreqlpdhkjxhmnogmfa|nsZ~x}r`e{osljvohejszxjxa~kgs^fqixljigshumktlmyw]wizjpmlhq]^bqeji`cd}ousfn^`gwhvoysn_kn\h~fpknreocxrdqqs`fhpwhz`vurjkzkmqm|~eiuncxjouyqjpoxljd{v^uzdwf`~[uwhaive{qstx~kneWioug~jicOsrvpfqvzr~yygrku{saupp{hf\_lonkiserdxgjulxsZnqoauvvciipmirlqzv}y]|`bzsrlkrk]iinpdgvlowvqcwsqrhi}nslwk|atgyvnfdircihyfftuth{co}psakor~an|p]|ok{rirspejebxdgio`{zd{jhzoZqrfwkpfgxnn|lqviemgowtqmidlqwx~gpwSgjxtruet]|\ngcxgv{zsi}}sduymu|somyt~mYxpjwZrjkgdvfzlz|dlsrydrbrhlsujsztXizuxqrrvafYveqs^dhcoqtgkqgph_iq~ishlpy}qjmgunvhsfW\fixOzn}ugg\kwfrl{of~f{pb_dhtrwvZeZhW{rqboWiyh^uz~iqtpc}`wwydjgTrotklg]avmcccflr|zh^xhkwhzTlagk|~ugdytonvgfyMhe|qpu`[qrbllzkfjo{jhvtct~l{nzo_cUyy[jorajapz^erqYgmyjtt{zrN{Xxwvql~axRqZop]ofyhs^{qluxsgx^uypp~qydlf_l{ucrkanxfZlv{\rxpihn|y__toy`aYv}xUpahTqyhxlejvnkc[lyxxdbcsiszjxqhlWjqcwiegifihvn]cset~gttkdujhVkxvdyc}qr{b`q\ojxoqfqqn{u[s}^ZtYpujwYjp[liepdlxst~t_orXlzn}gj|drdmdcn}xsqirftjprkjceuv`ug|mheuvuhoxdrf}rlokswgojadywvkmvkumkiy{yesil|llw]qutzYtd\fopdb\iqr~jsmrmxh{Tsiu|]ujoayxvtjhhhzvcrabr|phbg``xpysljlhdr_ui{igYl_kYxxvr}uu]w\{ifmp`qvphsfwcfgbi}kyq|u`|ivzhio~ugztjdcxhxgXnfbqmfvrk_n|emmp`pd[z{inhrlux{jhrslknfpxriYvndk|wteawprw|}v[qjlrgvj_hoo}}`qhtZkuur~tigovgbh|lzslhqfyUxphmn|zZsl~nx[xlxhpnjgraVqimz~|a}enxhqnqfjtbjf~pcxbtpx`p^o{ooujphoh`|hjurrio{pvzUjk~cwbwptjvjhjzwekucjrjidkq]omseir]vwfcmmvnl]xiypyml~zlymn|pnpgzpgdrt~bnxuyrruc[vmqbm~Vhboll^Vdpsuuhy_gwrrpuXqctT|jpldsiz{uhayhrupp{kfhikf|Zmjv^oirej`aifpkkk}Zkhhvwjcgjb[ev}s\ibk_nimw]ulmhQt|{jw_jdavmxrflwofssqm}yogojj`vu}uohn[Uwyyfmep~ahYX^qsozajs|dl{zsisptkjmigms~unsamdt~qd]{]jqeucm|nskjgjpkmprmqt{vqjoj|zrdsuxZdtwn^bpe~lg`ocggwrceXwWrTqsnlefztcwmttuztlqikjyhkedgokr_k]rgtno]XrmjmvqZpmy|wmpgpyju|t~blqwlyaexOdlrusppnzu{~^jmjpqhtiplcdynp{pzjhj\bnaay}zzt}rzwsu|cz]vrnigtip{cmz]tauitcd]cvm{ufpktcjrmlxgpk_tg^Rjwd~{kiljellcWnzqh`nk|~rqfrvzcdcvtfdk_nupwywxkhcnXhaqtrkshqejtvmu\Z_vgnbZvfrvtpiuvnrykrndqzijfynhqtibq{exkraZipjidqeu~lqrc[vqwofn~ab|i[zs}sozlmijpmt_h_evbasWlni^fnphv~zonkWnwkkaig}~jxjtym`xtz}uelrhpju[^pm_q]{xokwdnllquwtqxpyrh^V|Zuskisqrkemgzwuq{jjmrg]pqhmkw[ujhwcmfmn}aahre`ghdm]kpcuwqp~zwdv{ubvfqjkoatridwxe^qmrlmq_pmimqmngqrtpofapcrxoqwiqnk|necrizn[x^wrwgwpTvpekg``xgzzrbX]lhooqldnpbks|yilk~uuuhr{nbdvgi|wtjn~tlfh{kvizrwfpjrnkjjktewunlsopXwpl{zncndnr]{co{u`xknklv\fyyw~makmypthujyol`sVYkekm|pxvnqazmf~h{m^~hYdbcznpgZbubq`adgxodg[|hyutthjjyv`jloym`ipUsdcqdc^ykcs~k|fsfqow{x[ir~xkbh}ql~unlclygdp_sjsml}bompp^rshuif[|lmwugenesy~s{xplpj|kvr_s`{mwpqcypzs`ggit}odct}\vwciqpsftstptp_m|dqqkUmsemzkhghpkwjqwwkrj{e{eykpxivftVwyw]vc]xwkgvl{g_^wvqkllrnbrggqu\fw~X`mmjrlsnir~}]hdrnerhuhn_hTsKnqohrckg{nsktdZbqk[^gos`yyTkjqcx_|t\vsf\rlevf^koppfj_`u~f~jgpmpussnljeg{}b}agbktfxo~fjv`|{itqqz|kfjsrorsxgdsuwvtpwq}qyuhzthvjqtonvykoqkpnr_gb|keflglyZvsp_byji[gtbozeunkwmtwculzmikftdvovlqyocbyyOhulzqq{uaxptu~n~[qmbdwxwkktcruilui_ox}j~mzloYwuVmqaymgkzajislvkem}yygr}Zmzliuxet{rur_XtVNqdoqn{zhqqf|tyfezqwepirjb}otgyuj[cp}cswoqt^hie`eqUcr_jfyzqeumrwtumcZZostph`mx~vj~fprwkgmeYvlpqjc}}sreuq|k{rvtssxm`eO`rwjSfbsyqqqdmnmd||ilmttfihigocX|cqo`rltdmoiagnqwqiocgcwpkw}`^um{Zgdehl{k~oed|z`rlpy|cnQuiruqeja[zcwb{^nZenizysymnko{qljujnspmrjbudfsrvYuobyempxwcfsgzn]_{ou^}bi[a~pq{io]e}sj~hng`fuvr}crmtZmR_zc{aqxtrm`Vjwiinahr|}ruknomVakqkgxwuvfpvzxvvjfr|bkny]}npmqx{yjuenpfqt~siouvkpowvuk{pasxh^~rkXzritq{ohnehv{rm{jps|clqttowywnfrpe_zvqqiiw|rpdup|uom{obkloXmezzqhpy{cqptqvqluatfn{tnnyetrzgke}entyrovgys^jb`p|os|o{nbsot^kZrxls_pgiaqgoxlboct_mulna}`lvrbrio`satl{utqYpuxxgolXnfvgkxqqdmn{ww^nqocg~pxniyqwlvyrrflkjzi^yplkpwv{_mbrretsxpmrrdmjhxgqa^nysswnxvttpnzZklbv]oj`olyrgh_Zokd^jnq~qw{sz\gog`ooosv`lb~uyq{d}jm\\oztmyhr~Ysuiyx}arssm~hptkxwbdg^`bs|jncilhff{ytawzjpv\Uyr]|anwtuaelqludy[slxbwoenpn`yrbyuags~hpi}]fnSa^{{gssns]lbbhrc^TtlevckpiurlybXob{fhakmsnqwnnlgnpti\j`ftlvVlxgvds|^dsWsdtarhiWjdgvihjoZgsy_~thuox`vvifjpxngnzs_gu_qykhcrlr_gxcrqivgncggjndrg_qe{eflm\_pi{wknyqamcnrtb}hhgqv`fnljVkaze}Z_yqnmgjjv^yl]jsq|qs\`_|o_\]{vfwrivdusjpcyis}nf\ascorz~yr`nmzkxz]_sj{hoj`kflrsxnqhag|sye}|qmfRqeojuf_{peaivttrenugjbwbokenybmew{b~o`hmqc\dhalmTw``}oYurbrguupq~ulvsqlx}xdrwnnuivumjqwpldcqhsjrbxcusqxwvc}kfugzsqh}ndvwjirffxkmko`imtn^imswkimuinl{}rnn|phs[rWsvyTqp]ailyZqeghqSwdzzdmomtbveg{jeqdxx}peihbjfom_itoenokfcVmyodn{m|idn{tpfdn{ejotfcxcmmffnlhhxi]vzojasahd|gpxshgye{zqlmw\_lhhxt}rn}ly]{mu|K[xolshyomz`wv|nTtnRiy~flrxomgmewlhwtfsjusit}j}czdosido{yt[snk{Vb`ZpcgfnlzWk^p^trrx_ZvkL~_cjyZFraktg\abaw}dwfwt^[lxqcw`{zzXwlrz~gijvrkkwpqpnnmst]b~fjoii\abjwk\hwwayrhuzgvagxmokv}hbWljTwpqldvtrt[vTxwjtWpc`newiq_llxoll[}]hoth|phivuaVws}t~rvmsbgxjmed}ouykgmi~zgkxmaxgpaxmgjiqjhkijv}sZafukcoekwroqtddxrvfnmj[kser`rbw\untblioosZvpir|nmo\rpgsj}rmmf`Nrkm]~oy^ujo~igYfplckuprducao_e\vrorzm{skZolmr{orb}fiwwruytdpchw{hrklmneum}dtflokt`ujitjhybjlrrnglsr|gtdqrud`g\qlghdmnnidpbyatanmzg^lrsrx~pdlddantrpl_dvfprpnzxi~zmnvf_xkkh`wqqqr|mq|uadhfqyuawiipznjrnrlvlqnwfwyw}dm_b]vrngyrreoialrmswjjvczlu~p}mjc}qourvlvqzi]o_jswm`bztfvhxsdqqzlxgafZbkgotzdpc}wvzquehdzaqaxWW[nvjyvghk^kszsvpmkvrtzgfihl[uyXnvomk_p}_nzx{wgpmsx{qr{scdkiowv\wkru|fiilfrsfppps}xw~nqtpgzvodpzyk`mbdlvcVg}hfrfpZ{Xfjklsnvhcon|rhmu\bmxvu}b|lfwmmfzxzty~k]gfnyfptzuirosti{ipf`po\w]dfjoq^oiuo^qogspjprdn~s_jgluhujpudl{~eioyzf|~~si|vtwwmifqxdsTihoq|uxZhbgaxlksvml~yjgtmlnfbudf}owbvsr]}qms]pKnvt}{kim{{ljljredymsitdo~t{mxa}a|zrwo~jbpuwj]yu{ohy{\d}lffriehksslm~lqea}sjyr|oht|t~q[crhai`plrkq`frhpkml~ruygnhq|dixquivumqng`hwytrs|cvjptzh{kijusljmnu}qykd`vprz`vnbdtrsqgnfhnnrdYni^jmqgotqvdqUithr`cstopgkogkVvpeimjgt{eijmronkzlsuayfhebmjqwmk\jmtpgwx`jcgn]dxkjgkdm~_kopizdqswg{hlb[rkcfjyrizhhmkr|~e}yVl{iy_gltvlknwcurwmezinhlkkokxjiwunhrnrxzqo{u{letnmrtsonixyqfhb\wvjjkursuah`mogotkehgppsiltrcvpm`skummypmtp{iqrliWdy`bttq_~u{nknzrobsxvqqd_iu]mwltsxp_{bslke~p}p~xnnkwiosksp~potnqpt^YvvxruUncv~ib`x{srdrhaX{dunizqgf{pdrdrw`tqgs]ulppquwue]pfyrcdqtqp|ljnwnjRyq~nspysojhvugzs^krk`ebfzjsos]jxcmw\yvrtsqhwfmlhqdqbwiiuliannshstuqunl_kfqkmrqsknshk|^utmtunq}o|quvdddtqsmvvityghtdltfmejbmspnvn|{_smiuypkond`vjive]xjugggvwkbjueupvldoRhtbs\txmpmlkjvinlftrczkbgijarrupgrrjzk{grpdZd}~c}nuuokVkuz`V~mh\~qklch`d\i_ijfXlk`l`mtjalOer~Rxg^mr~mdUdppl{uneiZnniqhcnti_|ywirmtdcq|eh]rfsilhkf}lfr[prs^lzzm~mm}xtZgvyeuZ_qrqrdZ~rk|bkt`gfqv]`ueUik}{[iglZgu_ottupmmmp\~xkys}eb~Vimah`cuhhrp~xh`qbsxgo[rgkjibyjxkkr}nosmocdhr{tkuevou]malchwummigmkk}bzt_pRqyypfnkpbg~t`hpjrVg}ftok_^]smstquZhltg}h\qi~s}nwqq}^xildPl}cxmkjxmtyowvggmd`yiptncbijoonXxpishkctiqm{fkZ}utiusmr{jsyfootcnn{qssshxg~hr\xll`j{pbt|iv~fzmpgsojqkln\`l`vmkg~jioyokonrvlkytxmokh\}ditXlbxdhx|unannhksqjst{{Yiwmmelefgkghf\m}gswdyn{~{`kigzjdlfb`ryhfuffnfltnfhsotaWjzvzoqloyumalenmrc`soYam{wqdcpuoYcknho{msn`yeqs}jhoZnndqtui~t}mmwlsufrjqd_trnfZcsgcrnjfymungg[opvbqqgmdwtao|zgfpwqyienc]|{suvYl`x|_mhu[`mf|fsr`sttqReo}~lj[rgpquwrojfz{ntc]Y]Qpeloxsmnqujmuikumbqg^~lhvunldhh[[gZzeey`ljggg`s`zkomphjvpr`srtyihpnxtyji|r[gg[|gpXtac^my^_cXwzfhmhkvq]nXuw{dauRdaoeild`khi]{cbeaW|tguhjilhouecomvpiXes~_n|~kmw^mpcf{nacmdokjtmsfhhvithacpjpj_iwdlfmYznpdpkvsdojluxpnlrtbki~smhbmmstmwjiymrci{Qk~shYsxmltnylpvpuxhspkvz|xn`psjnobhesubimsSkplzho_h]rbhowgh}qllnhptmuijcbhapjiuwn]k~f~lwrynoXslkphbylfyjxbd}xrjgc[dc_soerosnl`aoxsgtz`xlnRedqk|qq^gupuorzkklltdclxxyrflmehfofcqeqjuolmqnzoimhdm`pvqul|oo|xxi~gqklrnukmmkuberylksnpgwojk`pxg`jpytlnonnn{soihnnuohespqzvhhZiipyemaspijos|fmr``jnziypdodpkwldpyenmjhqcqb]y]omzltl`gvum^slhmjypquzonpzmrvghkaq{sxkiwrjipqy|jktorlqldonv]nesusruqlvdnjlksei`btqr|~ncngjlkkjs[jtaancdenu`klplwqdllpitxgnllrrwuqsqrtvhil`jukoh~mjf_s|popjtrswlcenjrzprnz_lkxpgnrYfd{g}vvd^ijndvryagtwm`k`dsouUpcwouveakjpwyimhshuakhhwkixgr~ssycfi^kmxmokfoprdyYnguxkuoujhnilqbjnq{l|rljg\zo~d{qsh{ddpjvctep|iaqethsvcjxwhirhriqxrnpr~sfnmnfsroksat\hdaorsz{hqsfq}yyrjrllah{ur{pfzklpUoozdj}{m}qnrxw]f{hqg\j}eto{x^xitysk_{hode{_ugdxnxgod_rtuu~dudkz\cgqkplmlw_nv~|iobx{xluyusvpqyjmfqzlcpf`wfakmnrvsurwxszlwyvy}qqbroyvpsvogVs]lroylnbv`f~n~x|lsmolytg[hp}qinwjo{ilcgwxZloistnow]ln|devevns`kjvyoowj[g~^`}`sa|k}YdmeWwkwuvmshpwnm{]zjssmprp{zxmjbk}jn~ql{jlbo~rmsgdsnoqowbrtxtw~o|yujpsvnbgojvtnpofjk{duelkrphl]w`h{khmr}il`lfiumuvtnrmtqndpfpovsloszvvvhvfrremxfsngpjyuhkmyzU`wwt{vl_g]af_v}gwkdhglmkzpqbzg{phv^}my_gfi|wh~^omwplwop}ewqxuxhlv^kopYsiay~a|bsj|svklmw~piiv_xrdhwuzdllsbqrqmgpsUsqtlZ```cvnuvmvc|\k^gsiz`VTblo|n{pttqy_gTkns~xeYerkyZyaeb`vdzqjqo]}yqjslhmqvk]vcg{nru~v{h_brssntygrrtkoevwmgrXaxOuheaewmk{wlroafax~{Zvnm\`qh}^jgqimu[u~kZ{pa||rzwrlvrfcw}g|ohegfxu[hipxtvslsxsa{xvkikfhouOg{msjinox^wztfggsp}ocengmcplpf`U]kc}]vp}syutu}]{yr}ls^sh~jojhuz~l{{za\jfcuiX{lww{Yhbcltctacdw\m{whcn|`we^xkg_}klfgxwequasjs^|hxjZc_vnbpgo`ll_ha_qysffanz^obs[jdpqmry_clde}{ygztqhtu\kjpj[icvkYakycxkf\wum{qoqfpzw{ytxnjsee|mkpdnyr^|zxhto`sksxgkgwmjghq^z`ou|j\pw^tvqcgzqdhqrz^e_riatqu\mfepYakdkjpm_ueziinssw{qukmehqgdojicr|io[cmhitays_t~jehjppqfnukxoqi{fmiopbtorP_Sujymjcwqor_n~oiietvejnowgec{h\ttsYjbqyxq]]^hv}f}t_fXcaifq|kbjui|scnbkxfqu^wqvsbNt{aoggnemmmiilxrydmykhnbsV|ko{nyd|djhl~c[e_vonertflgarrgmjgsqocapkugZ|mxxydzn|pwzwxshzol^{krdi{fwTvsw~mvcovtxkmqzpiq`Wi\v[simanbclzrlkhzjcdmcteofdrmmcocdpa\`^rpumafzcXqzqtkl|Zsmuhlkn_jYd|wljfe{W{jswor\ybuybcgvzhtwuojxrqxViwhrmancy}mddsev|wlYomx}vzgkP|ohvgRvlopqvovmrphhmfpwkertcxrjovpgxgxn^nmkgbdulppkhjtdkkxllmvkvrjudxw`ahkqsnuujetl]cyuzXteowprulzw~}eobynsjwgrwsdelygqzssvWkpmtfsn_qjgtxiohd}zghpcu}mw`bs|vwV}gu`[ggjpcbo`utwtygqtkznifZuiofmkm`wwyasgpxtq|vgt|s]ysxle}yuvtkcd|]lj`ig\vslzj~txv^d`s[oeltzpvixx`pyhbvkslklmkgxi{n\ksoVttyieqbl`sutrlgooyxaywnsnoqpqewslkq}mq^uxnlwgk}jq|gxnvsjciZcgjupmk]wo{wrkyxl_ugsvml}}ue~}gh`ligxicgryqxkvY}g^fbqbn|atttnmjgpfb`y^qho{|xqpsnZjp`drrYqmsdts|lckttspqzsbujbjkt{smqmuslwdyfhoq|ycmkttilv}jrub^hmgmqazvmdrhg^pyyzjbllrr]^mtasyasowngquwrhj~wcxr|uztnoqyjZmb{rzpl`fvbwysrcmvXpgllnlhvkmor]Zsv~}~ow]lg_cjyuz[lpg`_ttrxulrymvvvwdph_nwynvmzjluuqbfYkv|bvbb_btwuoippgctlgnav{cflp^v~l|Weumxq}{batuji|jybpWpzzfsqqakt}Vocquvroxhuhqdqf`bni`lb}^P|~xrnevgUufltsijWcleooo_hmsvoqrrz~jorn^f[hkyavoZhbwqdt`lmk|urnl`~mdcjm^f]nmqudXqj`M|wccp`smqti`qns{psygghga{hkkiu`ishwngstbgguZu{^k|i`klsmhjdjs^tr}xw[`abbuwisotXsubauzz\folk_qgcfen[deim|ru}tsm~mrqrznnraehimsjet_njnx\difqrxhsplovaulbsyoqkfvngwxqqsbpjxlf\c\rz`j{zjnu}wmdnzvairbja{kekmej_mqh~xvokyjblmnelsphngby}xrwlrycbdapqu|gwur_l|kzjjls_gfowmtncinywxkk{lviokreysplz{`mdfzexqpsq{k{gmhffyourjlm}xjvRkcpegu}[psqonkztylsrf{}scko{pra]_W`}hnd{f}^fyjpwtqnkoubqjo~mn{zl{|tdgywytQtzrssrzqgfvk]od^{o}lhinheu{lwtxnmejheuorchez^catZnk]pgg_keq{lw{wvr~mmwdjqcat\kjb_}rspgr`wmnnvcn|kqjir\nnefmm{jv]sVvusxynqhkws{jjnypzt^{hsipgkcmndxnmqh`]hjx~esxgxXyNtYk^uleviwv]wci`uesw`mb{innhhtswdhiko^fsigtjlpgz}hiwifx]f~bnjff[hck`hrgi|hul~hwoulirjnteki{o~cnhe{mkv`uvakkmrlaxecqnp\ehrVhhr^{lqo}jxj[pv[nk~ixfpzflqckfwg\hyqrvk]ybm{svj]glnlhjgf{tphx]r^frssqtuflfXqt{lmjxrehusdtpgzeqmvhowl}c{svjnvqwjhfu^rlmwviujh`la`q|vwvyolUuinvpqxli[jzk{ugu~`xlirYhswt~j`i}javwqwprdr^cntsdkgond{yvonrigk`lxqrx_sryeec{kkgu{mZbegiulkr}qc[uhbmc~bxidhrxdfnjhn\Qoxtuokkfivwiar^jtr\vnuwntbg\r{}l_Vsacopohe~doajkmkkqx{urs~po|sopk{wrssnqpsypkkpy`q{|r|oh{\nlcmflwd}mxppymeyp}tpmYtotarltouonYwky|]rj~taoxm{qppnhom|]wkur{w\kjfpm_prosywu}jacinuftohkumqql}ujftskdvk^fsvwb|uwm}zntmk`hkikxi}qiyfnctxpl`lqkqt`lfyjrjm|gce|sgbvynbmvlkqnhzodcdduqvrysm{u}T~yffzpoqqkjusw[lcgbwzxiootr}}lXsxpzqxow{l|jwx`wbzftmkn}pyziufkwzmuzrp}lvztvvkfdsmttqp\uk{^mms`fkmSmsfnvswerees[krndyvqjjudrj{Xjvwifiuhb{by[qatyt|sqqpvWr{sgh}]drendutojurk^}c~|ddcqhodvo_llfZxigylorolsoizdinbwp`unpggauzqiap|zpez}vblfpt|txlops[nyi]txxh^xzumzyudul|agqbvqlqi~nvjbsnaodtolnlnowketqxw`vpaqez^esmtpmyqevylhf]bqpsrkjt{|mjvvbrhqi~|omYf`phugokqrplvl{zxqy~mttdvr~qrgstyvslnmeueynwjk`ig^msTsulrhgyyeiormuoj{gvqtuixonujo~\w|pvpvh|qxtp~|n|l}wnarc{pwsZmk~Yw{}{gnn}ichsp|hwuiohct}c`mmYzndroprpdailrmgqehemcu}~zoh~ujgul}}h_hy`xh]pxbqop|YZijxhzzfeppjtkemqko|vk|ackgjmoxtxuZleneim|agygmdWkwnm[l`jrsoyavgzgrzw{lovvr{ourmmqj_sw~|n`pj\VzrvyvvuilxmjapqwtnzolZ|bsz}osa^it`lw~cmtfpoghyjlyxfwsckqkg|i|_bgxco]is{xouqe_fpikj|r[kpxqkog{ytzetputjjlgmd`nnr}fWlpqndqtxscgublrygmuqYvy`slt}wg~Za}xiwtyitpofxsbhfezkb]n^qqvr|vqtblujlqk{rofititgu[]o}ulijvarq{Ylpjl[rd}dg|qt~ooo~upit}y}tmmvyjvkc|pqqgempiiw^oWwnaony{hwphrmyol`rine~uukzzymksgidpoki|}`tjhvxpox`vhvretouzvdjkgh^zfh}ztayc^ij{ti_rpqtnp^tqhrcpmpm`psxfgsza]fvnlgixx\e{jaoxhxo}osvredifmfj{[qqtb[mbzgzwecymnrz}ulslvv_`xhwnoqeybhnwlrputhtxgjn{|^vm_o{sylrsy\nojv_zttwr_anmnkrmscpsztgnqdnqe]icxmm|t}n]khquocdeupcfh~hyjolsvkvnlrt|^_kjf{yho_Zgqzkfrqoieeqqp[bxxyikpbqoick`rhrg|smivztymursgWsuyezknvbnpkdkynlgqn}Vqj[_vtdfwkjlnu~ukjcvs\{ewc[qimxaqnkshxr{wWlthtfgoiozhlrp{jpejkyjjowezproneug^emqrwuhqdrgjhopme^pxsmsflto}lpwu`pvkmirxtmsurgtpcljteujjoptkuigftsgemnopjooorkts{oxguuwklcemlhnshhpipls|jemgglnlpanonsfvs{stnlvohoduxlm{ozeifrcrpckpkoqtjm_ztlnpnottlqkshqnllk}gfmvpojtkqnroumwvkmcqjvauveqjnoyokqopnyxtljqpkvqmkokdopihqkkqpksltwzxmupntiko{joilmov|dexsluynzozkolqhxr{stekpjkhoqbtltorxeinnt~ssokunuminkikoqxoumwnonnhklkmgonstqgorkszoqgllwoolq\]shhzrbp_fnseye|czham{_meagyoi^vhnuthrsgyuttUpgiafyuqfkz{qp}qymsg}zpkx~wdvuwmteyzbaovzkzihjnbkfo|lX{pZaisnup\}ooYghahkpnmlb_pXsgibety~`}ugxm`lmc_v}`fy|ykfqfcjdv~byppmdwwtapm}dyrq~|lz{`in~wtplgwdsofmei\mmktaloh]epw_zye{yf{d`l`fyseulgz[jwz^{ppi}}x{wngfotqqi{ewjqkrdc`i_nkhy_wkxh}rvi{|e`x}l||ggzsvwfcrhimutzcvuydglubog}paux^n|ubolf{gmvkpvq`vkhht}qgclmtpzyg{gZmkuhmluu[bcYv[wgob]koqkhagip`mxlevwrotqaqvjv~_mtig{mg_stvYZgmpc]omxltdr{mpchv[h|j|nypgmljWonvmag`svtkZpolypd`}|jrmvwcw`cxkwnlshdq`iqqiljijeh_wvx]k}xgtqisss|oodfir{s^plzqra\ZYkTjyjy\oqj`w||wRtnnhq]P~j|dglvdikzkuwotmXe{gbtux`sxmrqlpnud\hZyYo{itqkcdxfkulksle\y|zxvk_wojp`yhen{g^u~cl|oxctt`dqioYu^]|qdfku}|vmqk{bqjizrrsuskkrw~}gkcxcqoqlzuvdqqrhrysz~~f{xigtnndrtoo|vcntm~v}re|meypagvrnphpsiwm}irynowsqvfxrpb_ezqqmfmfycm`_whcxpvosliinfq_lf_jdjTs|nek\p~lzre{zhm^wjn~`l}pvxc~rei|ucwdhtroronytisXvysboa`}htnvkvoh`p\`ytqoglfbvkw]zvP]wkXsv{{zxl_whmvqrhuo`ghfssnov`fofjkdqgochugzrylv{Yr{gg_jilctzyavtnklfg}exusrq^_flimTrgz{ajkjgwjya|jvwjhjluivjf^kgruefcoX`ewzeoqq|\vrtck|ndar{cesvl~mpWopdkuqaefnlr||ijnptbkr~asiqr`b_{t{|tzm~{ig[ymbs`dxvsbook_r[qqffswzuonohk~wnoqQqlcv_s{nlkk\kbqemof{L}klafsqw|spninpkxtvxiprquajt{flttvhothynlnqn{d]bhf]nygufcvcrwbngrbfru}xak{pX[uwtoh|roonhtikqgcfk]f{q\bnj`gygxcrap}ogsojYglgymtd]rksrvfuzzY{Xnppnsnj|^]knpr_qa~g]on^mVeffi^mqkqufixjghtltbr|dlfWqnp}Ui_cdgonzmuvpzx[cnoqmgtrruqRhxntns}[XsjytrjjVnbpgb{n\}}{bqqqrwh^{qdxpijij{qokflplxy|prgoqoirhnTy[~euybphjymZxftxmdc^dn^\ifoydzgxjc]c_ix{]koqhswxittrxao[^n\Ycfz~pnctwocojxe|}nknluuhgli}v`wcourkj}itxkl{ket`hthze`qg}iym|y|nsyl_bmsqy_yjlxqxn~jel\~nlr|Zkr}v{j`eovsooqlWgw[wbvq{svu~imzeeqqszjgnim~wu_ol_spYivdnizgzjcijX}fkVxrhsbq~kqljfdanj~lps}]spvlhxeiql\okxZsrivnmvbTlzbsskvioqbtnfrrbtz{]wp`cphbg`pqvufqlmjm~rvfis\^qw_ksueu\|rgaokjq``q^`qkbhekcrtqnoq\ycTshqmhnuwkUqgtmyksh\yoigpeh|jhWjsUsi|vaksy|u{^qu\~rlu|s~xs}sngiigytowblgaeh`lkoal{u_f}xn]cpt_ugrlqfy_vngkjwnmzrt_p[wynniykcnhslc`qr}{Y~mpn^ujqevrctsyukovoxjrvdr_dbvnsd~e{{nmpsllhsqxvwsgnkprwhllamfvxxdxmwmsu~sid}zjpnttlznmjemsz}ojjzng~^osggb]qqnkie{[gfuk]sqrmppxiijvrcl]k||pgmtw~oqhkootojzgjhcerlpc]ily{yknwl`dmzl|slwoveumsth}zfhr}|jvujlxdjwojwrrfnrmni{pqrajwvloh{eaqot}mghmtnkqcsnb\gbyamcecejhywionnp_|rrcercxaztmqXxpv]l|xdwvkqv]ehusslvmprscn}qzhpg`oatvjhbaoq~f{b]ullak][i_e_glqgbltik`kmso~_o[_bwo~mf{v|tomxevrtkxyZfwi^trecbqefxxxijd_jkixhqsokzymylk`tjfthm}kxqgn|meyw|phodfiovic|us}kktrd}mg\mkyknjqr~}v^nhnfi^|sptktwmhofozlouurk^ermigkbveieh{|wiktla|Wthwrgvs^mehjsz`kcfheq_g`onaubawgssqnlfwq{{x}yomumsyqoevhwmvpmluyur|iptnx~vxgjfy`js_nmVuzsklnXii`}sZlskphukgmokogpcu|nimpm|hYetnx`msgqekzpvqdtpstlUslxsqsxjlu`ipviowr][okwihckyksalegi_vhnqain}ddXXje]z}f{onx`keukg\[xnlhqtyqvnqxqvqnkvbkvwYbfzkrmfbkjwbuepqm{_z}{j{jjrdxTXlv[b[r^ifWY[t`qsezdll\u]qiycbtbjy~]n}ncjypqoun[b}u`vpmnc|ivbbcgxjvuyr|zyloliqew{rryx{u}{jbfhw}biniqrsvinwgkvnmvxkultv~okrwom`mcYizpj^hpvlpfggnxkirk\q_turxp{kt^brhkdxiuseouziceqtnekvfbtcltxop]fqglXupr|dfrionivpgk~eie}_kqjhfetqXez{{jocpkgr]khgxpvi]k^rw|pizanqlo}mrutpxj}ib[pgfrxhrrlnotppfpynqhmhroevmdrtlYsjglxddxyogdal}f_dwr^pPd|n\_roqaghvpvovjbrszkv|ccuspxYpjUr{ql{uij|h~jmlsqsmatpw~bfs~nablchx{yg{wnnj_uojjravsomrupyt{mainqrfunz}iivthmp}szgdohogqqnm^jkvso}pmnyk`nv{sletilzuspf^mjmfqvopfufmqxlohprnkqS^jnqsorposoxqsumls|six`inhxkdivo`q\endwfx[qht``yvtrzagvkyiotuQpjnnmdspmglumckqd{kn\prr}xksjntmxht}k]zlhqh[k|kcl_noPbmojniSnbua~skidrmh|msmjunkszserhcxkipgpvn^fdixuv^fkynnmiipyd`Zyizu}i`rcwmjZruqjpsarmafimqrlsljqwzsqkehbjuivrjpesjmnwwchdgskqtomqwjusjudugfpygtedvkkq~gunnshxtyhf{r`anjjzbykttpskpqi|y[xi~hnkmymwqmje^mj}kjiufobhkgbdgapgsges|aqtr~ze^}f|kvdoqjoufrbynqllwgwvp{ohepopqoowpw_lcb`lcsirmcz|mkxwpnposh`nwgiZmqjgtpypiSjhsurixlnqnhgykzh~wyz\hvkyoupv^c|dqqrhwsurwfpwcksqruv{oi{kxt~xosm|ghvd{htyces~]n{g_l}dmrgcfq[vqynsytootfzxwpsxXx{}swjhrj{sk~]ptbyfsai^qfel{juit\lohqtr[xomgszmlkk}fgijd~tixgmzd`opnneoycmezjmnuzzdmsiY{lnqowxulgjylansf|lsezm~]royuh^|bqjmxpmmn|ncidqliwovfgiajc}o^lrzrtr]|gskehmicuxmhunjcvf{tvuzfduYahnuhXselu]kovwzyx`w`}scnlvo]kf}oszdumyqrtwsvjyeg{rfi]oumgjmhcr{curwh_vf}gxzyomrmiyoqqcumz^[jbtjztoatfkoozvebl{sptheQr}_ytpclocu{vh^kwniowp^pj`lr{m^jsolsenlslgrzkieckvho}hkytpfloyp{mjm|hukuebd|ixkkqafsush{qmQellZ|bmm}``jshtjckxzisurgjg[Vtk_rzcp`VfVreqtw\{sXpiorhutg~jbatnhgyfcrnlwf_|sngtx|r^_hhjmefgksY`rpud`roubmrrxjQWxwlh`_x]adopulrzbncc\iqjwY^cqneyx|mmu_zZppsoju`exuipnjreo_fckm\cap^Yq[tqthyeqrdrjZ^rmnrwfl[yhp_lmseuh_tcYkcp[~~iqxb|]RnhgpkfuqqwnqoqlWxfhUonotv`oqwit~fkWtqgkhVinuaoqoro^}wqpptpejnvpijugou[vib~rascxas}apF`|\rmsjwu\iShrih`caoulmb`hghxmqyk\umgszTdsqr\jkljgicsctjyrr~~p|kg\yp_ybmZlggwhPlqjywzalak`omwgenmt}qpepoailyl[vaqglrx~swVgntrsrfW\vlzfybqey|sypljotcx{qimoiZyfhbdqvgmrvnZ{n_}jpopajutflgisjrjqrhjjsmqwqdq_r}zdjfkrw`o^a}zszRhgrWqplghswppiv_ka_e{{z[qmujvhknlprl{qhoonpuoqfuwxj\m{`viw`rgxghnrmyyqfsxolor~|ofzvfmkpu}nmhilfqoxdjmoxk{fxdelt\vof}qfhmflf^oyqwqpnaiok^xdgfpfisurtpbqppnnnexZ|rtsfmt]pxyrhphgzlmhhcgqr`anqzae]wsetgdanbxxSas}xwtlrmdgprvnqomylwo|jpui{mn]dh`~js~^ejghqpvnzrhu~fdodtnxidgvu_qhhdikxfqdvri_pkv{Y{~aypcgkawak_mnaawrv{vyqpqgcWuiclyjpug|thrgwgmshsjkv{tqv{yWohjni^u~k_ogvrZdmijmtdjxckkqvqsgkp}zs~qn^ijopxtvztcvnbfeeooxfnk`iryVwxoprv|r`dqwm{bibytllupr_lxnigeaq`itgtooapsl~nszypsXacmdkwgit`dhqrnlkbenhszkagpezwv{nfm[fc~t}ghlev{pw~iqkj`rkojotvrdjvnh|tmlnpgfxkrxrudkorswgqsrhccmzgllamv`pykocr`Vktsqbjldeng{mneu]nlddwv]brn{xyphx]nkeqvlihrmsbUrZ`ziWvd||uewwj^zyrulrwmmgkopmphjpXckqvr|qeol^kdsnjwrqesd_hwvytcWofnphqalywyf|h]pe}wmq{h||wnjwnk{ngkhmip}`egdo|qykoviunks^~mgtuelgptnk~\jtypvwdj{kmkznfynonadptavaqoyurwowaoedlie}bglqi}bhnbkh{u`rokYwqltl[ndyrkf]qi[xpt`x`zxwpm|yTn`mX]opywpp{krystlprzgerppslxfoqUuwatjhVzbok}qsqwpmmmhkqjtjtXj[izejugtpczs`xoxbj\lcn_rmxt}gr{|uwqrng}moyJhbjt\ncdisyoptorh_qiud}mtiwwuYl`mdnwtngqzzgip~jqrjikcpiii\[dejkgu{vasjnXpfef]vulkqbcfqzXxu_goaor`rszm|wjph{hrfpyas[f_zwmxdcs|xuf{p]p|umqg^wxk{ar\o`xntioqqvtpshckpx}fnVt|lknoegerxjstlxvi~fhveodub`odrsry{jj|hdsmihcbyqcyzjgs^r\gtbruispjor^vXhssojsutntimkwa|lxu{qqjYtqgjeuxp`bw\zdkgudwdr~lf_vrtwgn|[tczrrtnx`zleo~_zklkob{wqjdeuppiznxbokuvmrhkam{e{ppyyxqtcu~f^qvwetuxn^jl[lgatk{rycuqkfqufaclrc|ntxifosqdonfj[lxlklmcx~ojqzez|crxkfeduzuycqqls]jdgr`fl|yajaynurmjglhodqmxzq]tx[[uvdo}}{qYZghkvgxcmbsifgyr[fo~bqm]|pfshezmpyhojbncp}vw|ix{jgris|xtosqumjrdpfur{xda]Tkmvvol]onnbx~z[lnxw{|__jyhyhfirlmcZsyu{}dmth^rka~fqdmzkdqr{whxwkRnuryvplsqnjroahU~xnxrmgssgtqttixjsyd~gurx~tpZytu~vahrn~rkdp}adc}n~rnfwqslyduhrvd_nj\xmfrrkhbo{\jchhgrcqnnpug[jpUsmhfyqaWcsimuddemehzqzmrilkfg{^kpdt{basv}fYuvutkuteZjfwyutrxjlokogaf\kuihXfktksnjgbewef`of_eol``hdmZq[ljepZqp{nbvmocntmirkgrdrbmpgapmjwyp]lqdlnbuafkitnuxprhzbakeizrfv[hv_ajllj}sxwikpt`vqtmyij{w|soerzhpmsadiote|{x~vpte^p\^jvd[h{qthlvfvcv|_con~Tvobkkqhsm[`sedqg|theqf{pm|\oh]lclxbolfhkv{wuunfpvurspo|ljxZXmufijigaiyVlwudzdjbkbppqsopRugv|loja_qd[rrjzy`vtyeksgwokjqzsti|omrh~z{pvvl~knx]yrs{atagf{uo|~lemzs}nyss{nu|pbcmrlhnjdlbxlz`h^dvzkmsqwq\gcoanos{lqh_kzkbregYekoqtphvba{reunkkc}xjszsbr[ymuqZq}wssbVzhvvsqrn}cymkw`hr|{fn~Yele{jprywnopxoq^rc_ugjhekkyeolqrzf`jwcjjwaa~nngrn_zigptctme}vhza]oyaguhmokxclreiildmm^bvnUru^s_xqux}qmquvzdp{vl[zgf|nTytkifgqf[{lkrmy~kvrk]ln`fvmnamrpcolvw}pedjeipludqwpb}fw{}ohqyuu}q|lz`bgi~a^ris^ijjvlTm~ZclnqmurmhTwg]dsetulwixbtt|Xmccxrqhm|hfkny|gvwrkatyri{~zyp_nuts}gm~hpne[itXf_kzdfzk^_jlojk~fk]}ruj]qfukg{mssmqjku[tgkdiRYpuucnpymppj}qt}sfmhoiilurs_|q~``vpxeq\jhgeehkh}sjzWskqlidgckai~fl|pZeus}fkrYpmxl{oXra^veltgwirsmicwc{Zojwrc{lj]fu]khtweqxfkadhci``rto|mwysp\m]reoitrolwgmp~ilbsmdzrgXbtzujrh}eihfNthoe\`spdf~mjub|er\_qvi|~hhxlwuml|qvukahfqhwooiw`u{wjmx`_i|vv_tjsrbge|snaj{dlklm\fqtpwhrjxlvqZivofol^tdtakiisaprbwzdzyqcs`xr}|uiuwefyfolgopsjhixxgvpj`ahsg|ngq^omsitonmy^jcmmavssmnryrijdneeylltiu`n|wshdqymiexhvok}sislgmeh`|vcgnphhj|ehjn[{}puja\nwp`anohnuhfasfsb|i|rm{ouqrt|uvz{gokYtwkaimmuogxubrn{uyzmfkrqrqnfvfeqrjxmrimkfakwfpxqrognzrmjUusgqv_innjvfv{ggkkvtm\v{v]nnxtkgxkjrprwxkq|lRywxntjkjuxxdmssnvu|hcpmsvb{zxttwvZsrjc~Vso^ikg`n|nqtw^i_yhj}ui[oohpj_vgksgv{\xtijXgevyh{rpqp{iqnx|m{hcuiidhuw|tottcwzfkqSyiVxtsu{tei{ipumruvdf^goqqjubxwxibpXzktjk{slklihliWcsmzmc|cixivifjgr}rizmgvlovprw^\kwzqac^gihoovvcw}commjdZrqtrvitezfmaeZnd{oeohcyrpasslssqdt^pc{m|~^fklhdegooto{vntrrYnkr`rjf{{h[ygrwush|igu`ftnqyslkvlh[ybdrqrulpf|m_iwYqiajgqfkyw\wvqyiite^ysXmiofhytfjlbopmxoqqkxpt|pcvvigernmhmkdiodf{]wlinjw`tvglszj\nmwkkyZyimrRzudzmwadfwioy`ceynvulamy`vryvjs}~yigvucsus`zosoiWzuYryizmnpt]adk|o^rovwo|qmykp`si{h{o_mnrktzrg}uzjhcwTrizwlgslryzpvopjnaupotltgwujvxgg}qin]mutsm{cyfglc_\rdnjyzmsc|Vabnf{wiflmfzncztnclmq]woz{dwwrutuwjrs^kuqnnzyuvvvqZqvUeuzt{y|}iptn`~i[pr`Wmy\^{myvbnYraqwj~vchoqktoswzswpUsj~pjtimb~ivbznllxsm}pquoumf_z{pXz`nv[kvpzrog\bhcbgoqje_yjpsipW~lyw~gnxur}fblTwwpeqsmex}qtZ\yszht}_prgbnwgtldnptqwztqekxpncdrl`olrfv\l{kYlZS~zvYzyn]rwrq^qk}dktakskW]|k}wYooZdx\_n[dijo~ehrsbe`hbzf|kZicvndporj^ik~]^`ff``loxmszw\kwjtppqS{au[^ezysl{mynni_n`szgy_ll\tgkdrj`^op[mdkswbYrn|_|njovxvf~~^rmudz{jlz~tw`_xzXi{hzzsjzklmmzpPv`wmzgRqkffhs`kqlwykfvlh|tgditssnYykou~euwSxl|enfzqljbhznailhqr{tiftchkssryy~thqqdxyu{u{kc]o{jucfqrrfmvkY{an\hxdr^\_ejV[yyYhiwinnflhjtaacersdvtx_lq|dqjutP`cfpmjxtYdqlbzrxc}lcpxtrymkskxjjvxpakskkjnusqbricqmprstlpj_poiodjWgry~Ymnxvkebo|`dxh{uanijw}wxigknf`lcTzunojjo[fql`qe}mpwul}zdiz_tkcfsdlnjv{i}oWgrcbjcntc`geqlssnuztms]kvowjruvbsrm^zopkjYgslvpdmhzokflauovZnikftwmjl\odekdt`^zuhjdheosghzspb_esjmam_mkk^khm^yqksigskpqhzmvcitpvmRksmrj\oeoja`Lqjkfuinh\lov~mke|cxktrgvrpfgwembnxdpbhadrrv~y{zvpbZvig|qjf`btklqd\zsq]oej}Yinypszkkbzmgb{ck`x|[m]||wntZibr_nnju\qwcmz{mvg[Zmvoo\p{hw~pzUt`}ewzmm`yumwiiriplruwzuqvmtszkjvxwhie`{wygu|smsdk]ogiwdy~vq][eblrmguycejvhqm~fn~y~wieb\lyrmrmqwjnemw]ppY|jmzi~gmulj|fwh|uhe{rrmwvcmajshl|ivweqm|qnns\gssiupcd|lgunjoogvhkdjonxdrf|^pmflmip}_vUy_llrhygkvnmjcjwlfrzhndm{eejx~egqut~_nur[sglcwtloyqkigqyfxn{xtjnhsyjjrinirwksihnt[xkjrb~lrimsbcc^~nfjom~Xnsx|i`nwuug\_}nx]vkjmmboYnkwn\ede}pocn_wfs|pnyffrUUwwhZxa`rhrqohwwwzwh]x|aa^dkcqwers~dgjXqekrqvppvxu`edkrahrltffourbu~q^bzogsxzxszheleqiqqesukrumtjo{hupagWp]lq\luirxekzusjgpqwluoecwtknyndhqnvuagcd[qqlkhitmobordrojpwUjfjifwrcpbw~qhhYkwiy~yel]xmZ[hlo}ymdv{k^azl|yvdtuqf~vjmqp\W}pwy]lghOmb`xt_dlUigrcpyfgWwpl{gjdkb{jimrz^utws[vspp_c`bpryvsrdaow\iulqwwotqls|g}^gtp~odwvlfh{nostse`eqw_eko\f{m|y|{rxhqyyerkkvvb_pir{f|e}xobmplnkiikl{}iwtqgsf_xjh{musirotrrsvmjbwn|utmh}u|ynmqcimdkwdehkpcdpiofkd}lmmpLxqfxzm`cjpyekfqmfuataqkleu}mropatgmkgkikjvvp{nmdlqrjluqilwrerqrrqi|Zel_o{etihulj^l|pt`txezjxgp`my[pkmgqlkslqutevnufycice`r^Rjlizlbhimdzrpi_lpyddjjxZ}cwsphexey||{c_{blwypyio{zuhlxhaWmwnsevvz^[qvpoqequtld~j^suoigpzwxzyiknldn[tg`lkh|lkjswpkuYkvazuzijYtgtlcpeopw{|}r~rpvitllsskho`mohlvsnnm||t{hqwqjmm}mp{jgq^rmoke{_iTqv`zrsdseyneYly|sWhfcepol|hoje}rdpo}t{sanW}lpxhe`jpw~hoanemk{^nysjjqpwtsxdyv^lolrvjrfek`mdnqn\piktpiehinoyaonauijhnqxi|~t^oulaxywro[w]uf]ul^p{hlt|xuoo[yevl\isUtdjm}t_{ulb{Xg]lvn]pujcs`zo[ia|pikqxttggcmdrpO~p|vs{zqdxh]unXog`efotshsj]xmxwxavp^fbrlrcksgxklpsho~X^koauou}olxlxvsl`jfsqm]hesjboveke~sylr_`ftcdbcm~zppjeturUlxcn_qvhnxxbw}uhrohwrvX|krmn`wPmprcqRuf{rdwtuejpQohoxrm}xmbhujnmlskl|cbjmkiq~mhpisqxjyconpupmvve}vxyskaeyl~k~lYkvlu]oitdoZocVw_fjtseZuh{oggmegjmtszomghqid|mqsedgtvlVgzrk_lhnmr[imfwi`novjte~l`oljvoziyhfZyx}|_gq]q{pVmxk\lcmwh[tWmhiiegVhshncxcerx_nmgou^gclhl{Vyaiy\ii}wquix|q\fw_ge}xflktsojrlt_urrvc~xpje]`e|^gtmejssrxfikmkszzcuqtuzsgjxqxznbq}ulmqonhrhwq}qfifS}e|vonzteae_egwqc~hrgdpXofhsqcmTui~kzlmngeioau[rvgiyrrdnjhvq_lub}puv~jpygUpioahb^`cnpndqeibz|mkma}mldhjbhfd_qmd{ithsiohYeiuemapr]mthu}ti^qrzumk\zsixzsihtxlqo\y\jyqhtnyouzrsowhgpZxglm{b|xe]|wqytgzmnijvkwrpolk`rxs{`qns[j~alkttmauhv_swto`rXfuykrvkyv`{ipsxfngrftvirpy^jmxlzrbqhtguitfwXtqVsYjb}o`zseohchni~sdiyxeywgnzorr]mzx{phgputlnscnh_}csmlfgqsiz~rxqnjspsvtpffjapj\jv{|ifatfw|w{qbxjtymv`yojo|mr`hyv|efzulksxglV{r~vy{nownnoppijhpq_fhupZ~symutksXznpai}|k]nmvcw]yeetv[k_raX^_spvqudid]dndq~zmi`nnkf]wYjz{or\kdtsuUdq^}ujmksOsioxgq`svVzrfmvj|hpujtwv|okqptytwl~wkdffswtfplsgdmYwj{r`gzpusmvnymjogkqpgjssuntjxfffzclmmT`mlmctVx`gcuo{osrngjekano]}x\_bwmaek`]wl^xglmjx]ubhrld]eamnWraorrmsjoexwyxasssr`f^sxrikm_m^njxpptndcksxpdra]npxihd\yfs`eagunima\bxusildrkrzffgblrsYigso}\gkfpneow}nr}arpumunissfTd}_mpgtkipnf[lnngzj]bbxmxmppymmkghrloXputnouuiyjhj~icsliu]~hpmpkws|mimf|sgbrhte}ektgxhl\gijidhtjcqejnageobsnshptlwra]iqq|xtdsswszzoqjd`isjkjylzyTngqtq}rvkxfpyhpexiswxmdnmh_twv_onxpdf`\hjr~mp|so{uqrvubgczZ^g}u`jlyycruppg{_`j|dudnmikztokqmvg}oxvronf}jkinddnthq~ouaxhqksormeujtnrz}}gjkdewg|xlmscc|llrhxvu_w|ppwro[{izqsW]mt|epuopyyte]hssocvmlc}enkgbosujk`~jqwsrb{_rktgjd{ysoesl}yw}lomlhywiqvsykdupebucfiwrtjgnvl|xfbpro~Wql]~hyyUndkdsuquzfwsrkbi|put^mZqbzskZ\cosodfiam^z{khkn}}zZe^Tlgztz}jkqiju|dVrruopaps{sifsarjsekcrxjjyyimuigwwafdsZa{qwhutsdfczz~iipn|kdgdo{qmyocoth}lg}uccw~thf{\Ytastvv|k~xtebsnkt{alxxfiqxmf^iri}ldpi~w\ydho|ohjxrtv]}lybkrnuttel`tnnefu|rtm|mkbsjuevvsgpijmlfkhjqsxmujxqtu_{xp[m`gtxjhuvljkgmixxupQx`uljfsohtxbp`yulogumrknrhg}bexfmzknudu\ppmlrl|kkzxrox~evw[kvrfb~]syrpnoqrowftm_jtdnpewu^wfy{og|rirozzpkwpopud|q|wl{oo_njs{rhdjdwgshasqdizllzqfot}t]}nfhmlqivcpnvvompesigpntsyfm{kmxqstbyf}pbnhn}hhxpemo|umqejras]czklmplm}zu{ydykxkpern|tjikrcousjgxal}mglojsi|Xbts~pfisot{vzkkznz{Voviju_nilechyhpfikrhot|jixmeyefn}hmhvstvekkvlxdt|wdvev}ylgt\plPbcowzytflnvligvoleqizkgfy{yrmofnYo^njjthweyyblly|filwsiqqsnvtj~jrlsonvfX\nsovj}zlkbjhkdtx}j_nv`mvlnlipf|xzcmrprxnurrvy{pwvxZmm|`irsq_iytjo\izw[br^efzpZ_qsjponxrefquvqwked\kyjezpfujezmjzrjbuw]kwv|pxbcethpglif}sodwh^yiqemnrhjqnmwqgu`pphf_{fy}xoaj_hlqtppwizuvxyprnw[yvxtYcumbd{itu|}ioitkbh`tvhwnm~vamyp]pkjwjwswujns~hueoy]l`zge~du}kvrc{r}~fklftvw{vcid|X`|ypej{zir^`v~~zm__hlonufgupgc|tmuv]if|mnhbkiqhushsoagyxotwgvlhsshssp{]bk_zapqeNprtsufw]pmuqr~~Tmpu}uthoxgmSl`{||rwyx^_tl_g\uxv|delmksudtertknn\d]letjpuagaqe^j`nitluweq`cm}`ynostj|cclwmpzsuZggsShu`zxkmYzxmcks`Xessjkdpkg_wqfajwv_zZpof_oO]|caxcg}_msyxmbm^qrg}`mwplvy`nvhu~dzofsqmfoshqixnjiqlukksfqvfoxodjrxx|jt_tjoku~pvodkotz|{jwpqywejeqqwiruvxilooeudg}ynmv}kmevon{ni{kur{stmbcnta~pl^gl|l~lvvlxs{orjmtottgo^l{|btgmgmwspetr|tq}mpusqjiljifdlhjnh{kxllgo{tpobxdvcavgsvedxkifujnqeiq]rfrscglmdoixney~mfigcfqteanmjcnx|lgx]ojmwoeukxlool}wsrtxnnudmh[kio`mpmamvkapiqze{txq[a^mxt}}|]zwudwqd`]{V|tlm{ktrh{qo[siysdumfqhz~qlwxfzygrjkik]noqrld{aknfe|dporysvptouily[z~rmyyqhriy]nmtjpgdtegs~qxzemyke`tumvwubmzk}ivzxv}i|d`tmvWcdtgq`nlijfnmdd^p~|Y{kxgNzsdfaYujm\os}lwmexzevgufmbdunf_ntiyyovmucvsjfonf_[ushehqiixYmitcqlm[vwvnh~ltytvulhqcr]rncxlfwerhcdkksmlkfx^xgoheuexrzvfzhh`ijkpyuj_ib{pgpapkrukkesrrcn|mcmbgukjppjk_hrsin[mg]j{mrleTpmggwprtlasqaemdkvlejttgrpgq|_nmgcgL|lijxrkrYnplmuZxaxnm~nmw}kmvnz{lun[pmplynxhts]tllumWpdsoqeWvv`cihsw}j~xwtb_a^acgwroubrjwmMyuxviwa^cYdTvcuxzknnh^]von{uykrw^nja[ysrquoqelWjk|uipjqf_uhvIh{tbwkfxqgZvycmifbmPleuyTw{qsz[rc^che{mkumt|~x|dkdtZokmzqcp}mgy]iotiyuxrqovyt_cuh{ryjdvsslavPf~rbp]syr{lv|NmrsklsVzxs`tmUzoi~}t}aa|~dk{mpvm_qptjpqs|jqalnkalfas^lv[yuqduugjds~pmtdzumibglapsUmf^waxZtxu~_pivvdcyvpyacek]mq}ajob~cxfqccj~{oqqhowhootoxmn{pwnikblldi{wdtsockpushpowodfu{lvoevss~os}wkvg|itejyruhwsqmhtqavnenoskklnsxevfvhmeggpdigifqqpslnvmpnkizsnqsyhrkvgrjolw~{xjwq{mwqvpqvolmjhsmcjttfvozwpqrykz|okqm~fqlwkntjqvkmqwshklvnnmfvauqncintrhipxhklvivhtrttkapgvvoqqrmoyjn_h|vkpvoxtdhvqbvsjnltobrnymmhsjteixy~qklxtfwqljmqgg{wprjmfmouwwmhn{jrqqgkhrlptgjlouixim~mxhsprlrrwftmiqlikosuklu_qlftujkm_lktmesgeoiuzkkxnrpqltyYezocs~s{l~d`mmhqjjgvapbjlppdfjubhmq`c\sranljailn}nhih{ohVtqo~^}dohmvawcl`k_ggnju}rnurtree{ms}jrpcjx|cruiqsyo`|fvm`sjq\sjpykozq||lihrbeb|`nkisin{hhknvbqfy_s`syvi^ucdb{ajdjs|bp_e|fmsxuynq|sVuywgYzpv_dljo{ofutvvuclnipjvpss|t]k^uqkig~hz}rrwpurn_jhf]s}pndvsgthwvpw{wgbg_glkjvzpwitiowcmd{jvziooeggmpgflomzfdhuYejriozthpp\bivpr|ory|tumtaupxulglc|fwig^g`qelo{s_jgmbvvn_upsyxh^cr}~yzmvhkhkg{jkpbpnsvdybqqzq_coVrrlqgbpebewkulotllpsvkga^|r\pasviskhgsgtto|vmb`sianvbmqizlugkr{finkazulZScja|^jkqkfnwlvlmbdpipgsibcqqkbuhjdtjyj{yfrknh_uvrwxhny|pwnkmYsmz}qqzlekejul{tz_vOcmilboukn\sepcuhvvj]lvpmoe|tsgYyznf[tdmweoq`ao|`n^psgkw\owjdsgp}qaukmnokyllnvzecxlr`frpshrpoyampmleznqcjdmscmqihpkcfohulennvpytZuvglrd|cyqkuqVjyookeomdrzskvupuadj~pbptmjxmsu~ksd{so|}s~]wklr]v]lhwmrhv^vsynsp|wo|vo}c{qjv^bRwtwaonw{gpX]rk`n|^rnopo{peejxm\`weqvtwoqembuccfxUx]jklvlksuxhpsilrpitamrlnsZi~o`rmvedzyt]fwykmubdltpiohm_vfwdnlstyyUqmsnl{~lkho}ylmtonchxjvis~sjq|o{ijkdzzxnwhuomotg{bxfWnVo|}cprohuqj~ncpougQnwx{jvlpk]kkevyyjljwn]gqvvy^mpoleqtgjqomnxcmvnw{^zpvu_ufrjWgpvclxokSaex]ygupkz^ol_isikg\bkqlwzsgjshv|f|azpzhuydprlj|hUfkYgbrtyum~urufg}mfximf[m{zl~pvZaw^jotc\[_b|fq`tx|m{azv[qUXdtvmjjm\l{rwfoyjgmvq}gtWufmuqum`satowznmm[wrfenmmfonooYidtzprrqnlqegoqYjg{qQqwceqhpjcnjvs^gimnrjotccr{rfdfrco|fl_]ziq~zmlfonyevq`hvkgfr}gccpqf|`lw\corvow|{{}x}s}\ko}qy~mnjifeuidvf]qmmhygY~bXxhurg}kelqkll|ramxpx}n[thrjWfs]qgqtepcqsf~hvk`mtoqsoZ{hueye}marho~bj`qvejwraawf|r|dkz^vmYansthxolzrhvkm}d|{xaitR`nbr~joqi_snjn_zzqpatmmehwijligTs{ggsldbkn~crik~Znkvn\b}g{f^nryuiisfh\fynn}jvg}ygprpyijpylnrx{otuzhjhus|kqgb\rjtlnsixn_rmmRxvunhwngnw^nlrhlz|uwz~fenrh|b_w[ofud{cqhxrhX}uqxvox_uu_^juywe|mys~p`x}pztyemfmaqtkltjnx{mtdt{heapclfdqlvuxmwsso`nqhrswbmsbqewhl{wyYoq{{kzcokn|c{cpunmaic{u~kxzltafgpoVsuru{yXg}sm[nm`sq`h[lsotruzacnil|trnuzvop[iokgbg{_mg|vhspw{xntikklfl\gjy{naalcgwms]ajxqap`mooig{zgmpx}depx{}~popmt}u}jfnpqtcropssqq{x}ew}p{lecg}kcziwhdz}qe]vmxi~equnfs\n`jhqiig]nr{bgsnm`lootjvu^l^bhxempjcj}`rfxzsowqho|dt]oxkty~rkujul}j\xqvmvghl\hralkh]|oqgg|ohsmmrpruuganli^siuku`hgksfqyuzswdmfxdo`^frujfviczojkwk{llxp|lujvrxnqqut{dsq}vibs`rT|rh[onvul{lssjqyqxnhjnllposqtcmnwioguljd\uuql~kwdinjuclzuqsij}rseernfhmktkcpqmll}jrkfo{xwyds|uxpzlsnorytgmqmtq~qjznotrnouwrizpqy}lmnqrsormfwsploheiponviirjn~tk|nlnx\}hsxwhnf`t`tcukrzpgwcqlovhppddehenyfhxnzoifyoqvp{limvkklrslo}wjskpkroqrpjrjntfpllpli{pbz`dbrlrjgvby~hrbs|d`zpdz~sivcxvnisvxwxugpsciigpdktkkxhrspwgirtv_tsg`ipxo|tnv}|egcnetmswiookqvqwsadiyfa`ujeqpswypbgivpgsvtrhxqoqlutj}krjnnnnxmpuihkuktmxa_baxknierhhpljecwrptpf|k_fntfonqxmeohlmktrnkfmtt|visqx|ssnusjvpyqnislqm~thyosopqhwllkvf{qztnqiqmynkmbvnppikfspr|i~hhqjr~vj{soiverir{ojsr]ufy|hvjjz}rkxhqqxtfpnghbimo}mlumviglyqpovrromteronxqnwpkpspoojwqooplovimrmnwi{l`veajqxscpmjwyeo^qj\duyowtfthpylhjz{x}wlnwdk~josfophfqjknpvnfrpt^zxopjntxwsou|w`pfmkhlrwnvmfwrqxwfq|itgbdqnkpoxtynkij}zpknkzffzestsqivqblsgmugq{okfmvphs`nf\\qz^^ZefkcmgneZz|d~jhtkb}cbz]vxiuk|tktpuk~jglrljkdkolo{Yxariib_ixexlxlmdpzqgpnigtjxY^qa~gubkef}rqlsso}ci`rhup|bzijcnkYf}kxljttal~phzxjxu^hm{pphh`vrsgtdgzakZodcsojnexP_diuevyprpupmmkiqZqrw|oberrcyqygxlmoahojiqpiwt\fhirbf{iigzavfo}_dhswuz}bhdslk|itrvwzbqlnfqzhdq{btjtdp^wiknxe{n]w_XqpjkoaUhtgmjck{rnnp{fmaukbhk{gf[VllmqwnonifcYz}c_{{txdfjsh]milrt`qaZw~rnt\jj]ou^qhdb{vzchz^yo^lvccno_lqo{lzys{fo~jsWf}bentn_pqpryanqiqxlhpvtdmc}ysfvllk|pagj|\fhdmbynodqtnhxdeym]t}oktdhjog{kh|jnhbdqjbceja{ojtfmarjyfnghp{xwt|gogbixdfb`bnpjljivjbvbdbsvpyxcxin{gpcodkrtnprgfgpk]loys~iobgobzjdurtpvrvlbtudj{rkowurjagmlbmopbdobom\n]{ayqSxlo`ehlm{d{f\aww\treog}u{rpuivzu\~uhm]qy^ylVnsppcoxpwfonryelghfrvWz]zmk^lqpjlgqsslgujtsphpdopzfxkcpbwuTxyjelsrp}kn{pqrgxehnSumgewboumbbzromfsznf\kd]ip`tifjklo~qefsrsffwmeksr}skip|ep}iff[oiyc]vj{znrdrur~mjgqloqmolttmtvgkfhtnp}twfo]kpk{`s|uopkgslhji~hr]z_dhkvizv{zuc{knxptpqk{klgfkldhwo[dq`hdacrd{edibsrert|rrirwxucmhcmlwwblakoz~ls}vxw|znjlImtc{rqtpXllfqit\[tquicppmop`q|xzi_fzueg]kbc]`dozflrojujbixj}qZpowluyahxwpfx|n]jcqxkrjfddwxy^qrgsghub{m}h_vji}wpwpj|[of\ly|pwpmnrnopVffmosv`pbxdyueqxmn]\xdy_lrpiytfhk_clc|_n}cvjylmudzuivihrYcgxlcpefz{xhqnwhlfmijklrboXyefigejcinyypbi|elhq`wjqnorsak{l`nrulqbfxlqzumKiqhjycw^W\x}svhkucsxaksdslolmcijoulos`f|xuximsrffuxvwdg\vghq\qixl^jthnqimynag{jhtjrwemnkih|lozu~rilgmghfrtdpgifgorefdmr^falborivwojcduaeprntymfZcitudmmy|iqrkv~wp_nglmo^opfbuxn^bru{vxurx}kn|uux`gnTj~|}pv[mnnuXyoxdjohloumlwxtij^lssf{nby|jlrpmsgvh{khm|tqbywx{i{rnckqPote^p{r|nkqk^usxqe~|jxpvxhfdok}rmnsxswilyuero|mpz^rgunuhnrmfveaunnfgxx|puwvp\poogpwipvsl`iuylye`flof{hw~vtgtrynsi[wvm{rwtcjpkkdqhzrjhwnw|[wntgm]v~ffm|gxotertlieqwirwu}evwsfjjvr`mrltpm}Z{nrmmhtisjvx{{YZfgawrqsqUwpcrec~rflidrz~|c{nchxp`z_mvdq~pf{watyopdpg]`ocnfhUxdhlvjtitqq~l[yolv`apq}[ru[mqovqwwrjgp\^vhnybotqvsmb}^co|pzpzT}ynqmxjhoqgbuolstnyrqt\izuio`gidbp`~qiie}tnldesphrfj`igso_pfhf`efjvjlpteclqmarq]s{vtbcv|txgssrptjrdubRkaofpoqkbmpkv[eumwrr{kjxsovexwgqwsZ{|tiuhstuzdmfh~xiUdtllh|~cjtkmkjtbodrrnR}fbnxiit|dyms`ugrqlkeqorcdhhzyksshopifpvvvkhr|t|egtqjnofdpj|sj^r~nioy|w`pr}q~vodix|ys^m~ngrh{|\ikqhl_cdnq{yikuxp`ofrgi|nvsgo}Pfzsvgrdarnsd~xntotglqs_z{}vhdqibkxywnmylnrpnowsUtkurjpdvpoayfp~pfryndiuoovezpp}spvur{tmkollu{ocrpeky^hs{tXhplrkhoj^ijjjw}u`u{rrenmqp\}pvn|xuxohgt}kppetopUww|kwinm~jrflglujj^vprvxzowxrlkxfkq|idvpgrtonrfdqgrwlvzf\md^sssf{mdugeqdn|d^pvqen{s`pofynjaqpdu{nmuttjkjcuko~cyj}utkxdy_stlojglvjkieknx}t^jbx_lu]k{_Urgsdkqyxebxru^]o[{jnrf~f{lolppuwyvyhcofqkemkcxrrrpp~odrpxeo{fZvj}pnkzdtgzzka[itxlofh[gbpbdivchmckh{pj~u~gq|uplzqf{vqfg{x~wfiqhtpecosfhoo}a[jua~pkyp]||snqkro_pgen{qvhykmhjlofxnq_pd_\yyqo[Xh^yttx_}r`mlxmpyyyuws]xlrvmujy{Zo~ovwfeodljsrpdlsdpxmzsxsdfhX[vceZwoo{|bilmpynxuosvlhp^r|qs]hv\ncyjdjdig`i`xqshhil^`emtmioyyhgrSppYkm`tvnppewyslwxp\vppjcsl|xcykqxczq|gwcygeoibbj}mizd~uuvxwkh~gphnnhywxo|xdgtaoo~kculwprw`rafhpmzlnh~sgarjrp{ctijpvvfxk~bhqJ}jbk{tytovmxoZxYgmfq_}ila[jnwvelvupcjt]lqz~`cbvnvz~vqkwivs}k__tsqjivib[_jjyj~w{k{phkni}wvqgxxWbbt~n\ppredoxgi_srmzqszram~acelo|s~zfon~~kqotamezrgoxwgYptquqmp`dyvlp~_j~uonrn^js}cwwvtuggtoxirnkbhqt~kb`ttmgkim}gy{qtszPhbtxaSl^esyfd}arm}fjrynm^ljthx}fbqkpyhmqzm]ojuisto]ywtflktji}qpygq`eqsggvdkzsus|kdYgdmwuoahplwe~hwSnghyekqrkqbjnoa`spuu|cy`xdtbnoociybezrvsoa\whj{mycqnayxpue~h~ktpbgluckknosootdrkfot{gVzk^oqizyqbpqydczgamnkmsnkoks^y`rq_|_loljecahikvfwc}Ue{jm]dq{qjeq_evifoy{tvxmok|iqp]dfwnqslsxssqotu~qa`ilwekqfkmio^wjrmmec~tuif]dguozheogl}fjywd~sbq_lfnxgvnc{ysnvsindxwvPd\ws}pdm|fftjh\gaqi}~dom|tzg\xjop|eju^l}m~{gh[zuu}^fvnvtxxydfvop{Z~Yvf[qruijSjgj|xs{yrlvo]vjl]hZflwfoqzgdxqack``hv|lendnhp_jq{`w_y`ywgtfrejfi{Wl{o^qkztiwVnaowqvzxf}zmnjaj}^t[uaoUtdyLr|zcrvbgqncigmrcj\bZn{iein^Lpl^}nnuhipjnu{zxpzihspqlpafXpxaipjbt[qdozekldXbpcvaoxlkYav}curnvfquebml``qfi{q\qy^hqmn\ptewuvulwoh}VikXav_vmowmd||lcWoqsyh~{e^zqeXdieqoxi}\mfirjzlflnf]dnWunnggwusioqfahyn^{dnmksw_abtovxjbbjh[sov{eg`pewusgpnrigkfmfrvfqygtTef~q|mdmhlnstrRozrlvuoisf[sxjun`tiriryoheoxgblw{}xqzwgftdkhnloleexpchs|ymzo[U{rwinekktnVjyv|mkvredg]jmkwv{rnky`ro`U[drremgbboo^craob`v`Yhnr_hofpv~[kfude{Wqdq_[ehmskmkxnjl[fuZzf}obzsto{\[Sltjyuvwqswukkmidny^rdsfe|bfovip{urli\lYes{Xds}fkqcixdsiyqiwero{vn\am}k[x{yh~hoeojegdm}wzgpimuw``Zsrupyzts|zt`pfmsiojxmojs|sbifqtovafv^tvZ\Tkks_gdswYkqtm}dp|hWycelkzvwjovhelsxW|vrj]ejsar|okcjlkouezhp{yja[_wkxj]t{ypipsphkbgr`_`pgXYsgz\tuv]icm|{ptqlqcujwueimeobilgRacq[yjw_|ZglhhZ_}gs}tw`}Uotnisjmqfptxqgxpvgmwnlkunygmf^sbmvys}huceoxZokttngpbw{Zfdrhhooyfkehbotdhjn]~\ymbknofommVe]mSiwrmlkyjuefidj{pntkhlhii^rrsqgg}v^m~ypvdbyipnsq_{Vo~rkbzfabpjfr|fahps{kmfXoicixkbhpdenq~dkkizuglpkpyclx{imZrnbMjqZjxnk|xotpxkqiUjn~fbwrrfickojormjker]nbjVs~xnrwisniefh]luxsevmmfgxyfp{oqryngkbhfmzfqcquk|eglslcbdwyf}twiyhjhyt_ik]jrn|dbcjjdpxlwgpp{naoo}~{sannM_rt^fWmnajjvx{~oiffyhapsisbtu\ykfnmjrnt[fep`s}{`{hjlr_jcnnfvxw|Zxdpirgsnklhjufrktwhwmttpk{sv|xitpgthlvbutp{rwtbRkokpznw|k\q^jolmyxsjxmroikyxyw{xpgphxr]r]mdan_jlg}jepcbijhsjdjdedgidvmmeifte`mygqztistwp`e}dwnqgdywm{ilxaikuX~vmWzfmyhjivzptpeqnggjjjdpcghk}qgljgm}n{japfhutpnrqr}stjvnirroimzqv^stpvk`chqvuk^zymth_ho|njrpzwscctqs]{{kzmpjryei`rjihftyablmsemnqunqpookks{fkkfqf}jirygvjdqvasirtil}qrozlvjltrjv|xgbvamW[ffmddnw{z^jrlpr`~kztjs}ojloprvhifwyzx|tl|^yrfpmkkasvspybqks]{jolqoplossmqkWwkplmqmhuiqkxklmistqomqidmkbbmqoquphm`vpyskdhpmkgjx_jgkomqt^n{r`_onueryheOmgtnnv`ye_iXghbefmhyyrjmfzjfz{\o{qkg}owo\apkkhqtsnyliYonwy~vjvegxfhgjcckvnrW]ccltstXulfcshfxuuwgm~xsltsnrjbfkre}|rgutujgiktqhcputqdmNhsajpq^rl[gtllrnlltrdejz}wt]erlsxsjspcufk_vporiat|wavd\ammdkh`apzl[[{zgpfzZsnkYcp`kmjww_kxnkmvjsrshounoylvofcq_rfrn{}yyq]nijm{nghljrshpn[ypdi|ko{royb{wrgjgnl}}Wlunwr{pg_kypymts_~~ni]g}zgxf`kfds]]p`sjmjniesl{zokvXlq]xv{jteh{mpljpiohsiqjqt_ulkysynsjtxtidblik_axqjsh\jmek_knohx`lp~kriolfcwki^tzdhfn~msldxkh]|w_umlsj~b{}k_v{cvzd^tgftsupiij^sqpj^kmkmuljplqfkeeb|zqoltwpmmdltmmmpwnms~}krrspcapyrzvevlz{~mq\inhobron|mjutgrpjjqw\diwn\qndnyjjfpy~kg|bs`znyeomz|xbfphqVkgsorslp{wTdeo{\k]yzjbk_po\hqrsbdxjirz}ho~jnhetzuZezcvg|_znqvrXtpmiinwmldxbkvvy}npfp{ssrihvs`ornevk^jdx|lnqovwqwtkutyfwtV]femn^jau^b|{[q|\oxtqi]xxmhepumyzubuiysuswq~v|f}ifibifz^]gc~foTwjpvVoYrr{agmyVqgrnusiav{efWvzumghvtfhgj`v|imv`svvqvn}tjcoeynhnffui~ts]v{ilppXkrnpsjcxvm`tmvqncouowjmvzikpjhfjcomp{ern~woudopjlpdlqkkfmgrrt[`trjpwgnYo}k{timwegafn}i^wffduuuh\xxutostl]qycnxpwsnhtos_mhnpyeoww}ejsvcwne~vgnlvnlmmvzpmgviccuN_pkwnyspY`j[iqn}q{g`j`plgplevqjkfkrhyyv{cdqqmcny]wpnkkepxh_\zcgz~totx\xpzcnpdxvihhm{aphrmtrqoexqvkQvnjxfo^jtgmtihrXtmgy`s}rv{^ygl`neoqfgmi~do{a}koXpuokkmyx_epjiqp}n\emozrcotx`t_udZ\fO|ghc]xjqsldxjznurpjjnzwkdt_fikuhgeuvqpusvqb}rtkwh~_b\airfvmjlkshzpgkdyzp]nlmmjqpbhpvtdsxmk_RojfhW{^somqu}gyqvk~pjt~t|t]twtlkwqe\jtwgojjviv}lZwos_opk{|kwqwiskpstlu}ltt`ik~q~y^{^jrxu]loskghSuyn}xbmtj{g]|^k}hzshtlprdx{oldfmxlci`jpcctjig\r`qlng|iqvqa^[wqu{hemscost]~blpi~ddjbcrxdaztqvylqcskWkmdtspxxh{lo^xkdl|\|ohpb}u[_cw{boo{ok}xmY{`sqpp~wsgufkrjsjdwbvl\iRg{uskuvktzktkqgujk`{pztkhyv`sugzrftkbtjknrrq[esuveypwtq^wuvzlTn}xn~kgqkvpxpbtmcv|{xWssrt{mhlvvtldY~xn]q}\nq~znwnlWsvj`qfbsz~_xkvisshkachnsjaf|`ogpwr~|dlc~ypqawsspn{qrlqqfgqpt}mnpoosbouslljtkpy~Spgvrkcjqljm|vZlbikhlwuarqjuyh^lempkvvrykipqllwsY{fifmskr{{lihyYnn}tosphvkxdobsavqqbnsmcukcufWncf`axf{poyjecaqylntbdhol}vsfctkit`t{pdjyh~ci_qrkqwuuebmcvfipqnzd|iqhl[ccrusXpjioihqnstdkfjgsfv~nxvpjyfzh{qzogvnu|vfqjmrlybqfc|xspzqkj}njpcfxgdkgoquaulg}kmwko`ba`emelmddnhhofwgpsaclcxhgfowjhicnhdsvii_bmttloop{xvm\lrkUqlku]stbstp|uslzoizqxdxsoppwqnkq|odyw\nlegkl}utsnYphyxvcdnna{__znsujtmpibybzYssut}g`m~epadrafcz`hhs|xhbmjxywvl~gmig\yqfks_pjiVkxigomouljoin}ahfluknZhuk`Yaakpaqmtop~etjaYzuumfldz^oltarfpdyyeionscxwbZyinlijokoo^sdkqep`mnwqvu{rqeo{ohs_dypcz\mmgdbvkuxvqjtqpqmjett`aknrqqg}c_]ildjobpthenptd{im`h{jpcvj`uyknsmnatdaPgxfnekXgvnhqnv]bpWjmsv}snpb}VjgjbodaXepr}pxgrrspb]jclzcjqfr_rmosjUnefaylxvWkkty}wet`b{juwdfdsXrkpuqx_j_g]}^ojcnntxrlpnkkirpmspm]seZkgpg\ggzjeoh}rnmc}sh{hywa}j_wrjgckacorir}lvrZ|rly{aaYgdkwm_{l|yj{|ojsdsfu\rujrQhkmuk\b^r~l~cn\n~{j~bhnn}zbpqukcvmjqx`srohjtsmcw^a]ijpZmksvfompigxqnyn`isgkohm{_vrlkxU~q`ymql~qqTvgpqwg|t_ul^W_tZjqylcfq[x_pqr~}ehs`{vsi]id{vyv{xZwgpubqdywcwfqigqtneipggectojj`lktox{m`|gluwj_tlntnjotvnsftdrmmmbrrdtjX}xhvyi`~{zpbmqvodms^nrsgyipdrervjmqxsbqgy}a}{yio]`iarrvycqpX{f|~qodeqi}lioa]q_gsl{g}t_auqjipojdkfx{lRrxq}vvh_^iyrehbgzprgrynejrqumc\e{_n`qlngdnkxofrtkdhvrkrvyivjme_onfbkivv~mjk^siscmvlh}lxh]kcjktpqhpkxovyqycrwZprgo|p|gingumo~mdlgmpouvlvhYfiwfdersjphjr]lrratsznusnWhqsmxxbtlhfW|hj}]mypfagbnujonultffj[j~gpc^txlpmrcuchuhczgjqunsps_sfuxkjjfzx}n]vgu|luhtptn[_i_u{op^r`r}y}d^krwcvquyzsstxmfdkqqegre{_scYmltzr~uanwix}i\ni|ifZcwwc]etstqtmhlecsxbusjhdzqthowmvqkwic[mpg|gnafpagqYrYxd\tzpddfyfxqm`f|zi|jnpumoaoux`]^dhcgdhvytinijpcgzrlnkyphfpi_uonbmgtelvlhjtqzUrf~Xwpvqfrbp]gdrhujsorgidu]aytupsng`fxeslceruprq|{eo`kvmjladhtjqvknY]h{siil_q|{opd`xumg`ix[gmkwrvjxnnkrglllo{opkfkhnr`{kjrqrqasco{gs{kxZnbystprurznnjvkfciuejhoyyptqdtstajrfS^uejfidwrq`bmsqczclfvrpu]vinzr}}dwmmvvkon`rmeokvwmqtd_r[q_~tv{`~skgYyrpkjo_cwucr|sZtq}fqjgogvqsvWybl`g[Xb~w{etlzighsocssc|fnxkso}^{u}|hgwl{zqitc`gdiyjwnXsjkyntwnm^rvqrponjrmkypciunsyqZiv`}kxftrzifteju|is{mts}w`zqjdhe|o~ozffltprpteoZeprwlth\kvtwwoZc_bqkwipmiz~rwcswro~nkeslnd}Ymc}j|adbwontkmsn^rwam|mcni`{jrqhwl}hmuxbvrjwrudhitif`wt{riudclndUyfidveqja{meuZcvikde|mmkq\yevlegfnqwpufhnqhyzwujlfy`{serv~qn_Ycmsojaj_unxuoqkmy_rict{^mol\vfvsi`vrorez}dajvxovgsdq_bxeNnqZlp_pqopber}nmgvvsu{ntlp]rqtbxruYtg}siiv}\lplf|orgzyo}mkfxhsooliytqfntphr|v|bskdfpogpySzjdshd[~b}qujirttcauhb^uo_blrm`xpt}pfbm^ogoyznl^jrx{to|srsrmrwqk}{{hnibrqhmafecgnheSkehd}fgjory`iw_rtkswlSppr]bxyrdbggzjp[m|mg^mYppz^hjn\zmxc|~mslacqcxbo|uhm~xwo{ppzelubrugrgqqysnuvocm`f{jwZscpt}pyllcmvumhhmm}dr{`tabxwhcqjmz}jo{qgykoiwxndgpovdsjuhztgqv}uxrhoeYmy}cgorqggfq~dm}~ltypnteapllyjio|gxwna\\tumoiucpzdwsuncwf{lr|jlhlZbniodrZ`{vzq`offtwourdicgn{vomfiarr}uytbqkfqmpnglsplkjlagykYdyojehnykjk^{mrmideq_ev]falusweofgp|km]poefosefqRo}rfwZryoskqfamiqnuilyzisplbmwn~{muYjcgmrsbujtlg~|gogmwrepiwug`gyklnmb__v_nh`jf`ruoqqrrvhohrxosfho~k]jwlq[bpxm`bTkfajkpwwms_pk\pjftscgyuhnvqk\evay}r_k^ysktnk}~nOye_hnv|oh}t|rukuzeuy`hulgngpwejiwuxekv}awtjolo|hditosgkoqxmqh\qutsvl_jcyj`kledodpqRs{dn^|ls{forejhoqgedtcwuakrysveqkimuliuZecR}Yeitppvoy_ydi~pnsostjylsn~`kljmv~xztcsqsdqehwf{l~k~n{]frmnristx`cjpinjpnur\c^vbt}uoZeegjgxmclyw\pkez}lfvph]gzsvgeqtbsr~k`h_oq}KaeiYm|vmyitzppowganeion|jxsvt^wlmvvjvf^tw{snksri`Xgkhtvjcs_iyzxj{g}ywfkxecgyovokbcz~m\wuysx}ixqr_tsrwn{mmeYuvoan^fpvptnh}vlhjoclxjptn[qepkyt{ufpnxqddd}nntw|~V|d_pzo^Whpv~rfshwhztqpufap}c\yje|Xfmv~t`gkqrhml{d|hmelykh|`nZ{eswgxkavdmpclmoirazq[hink[itvijjt\~yw{]d_cmjaj{e{yfqdrStqzn^gmhbR`gan\xessWickngwfihalX^gsbkZn{pf_ch|xejkmozi|xgfdnhq|eqovip_rbkdqWol`iwwqtnalujhkjnoe\hyhoowltkvfg~|in~vi}gmoptfVwtotlsrqt|}zeU\ep`~Zj\qg{~ekh^ri}gycna~}kie~}fbrqfgbt[l~pV~h[pHho_`m~rRqrtlUro[^Uncbkjapwsqnu~f|vmwjetVunmtjs`uwpkcvnverkae\msYUhqpqyeyav_Xkpvqtj]porfs{vi^kngxcyqnlemrrl[voj`qg|ghVvrgkmztltpsvnieelcw[movdnZsfvp`hxooOar|x_m|uqfgivihzsoldmuvrttum{jwnpsqoohyvjxplcirysbeT~zwdclmkqg}tZjkgki]dpuirjuaiiwociimWlfc\qvyrkcwywwu[gY~dtpjo{sk|bn_fqjlfro\fcpqwVwmn|slthtjuhkiqqozigvnbqrctwc|rldncshko_cgicdph\xuf|rmWfxgjgu\naurv]orjxqjcvorsu^k|sy}ley|_xk`d`hd]`mkkumcp[xvhnlmkkpj|pngpsdds]efmbqc|ojvlatmnwnqm|vdlPfdxhXf{o^jkqglohi{gziZj{hl[t`ortqxokjkknqzvhmgTgpzwvinotxugi{[gksqdibl_mbwpj~]hX^thswwVi`l~lljs_luxyw|ov]xhftvjxxdyjkhfod{omc{rlyi^sWzyphcjj~xvi`ucffcsv~lpg`[e`rkm[tihgrorpqiooikrtwl_p`^fammi{ushtwjgpwiWkvxhh}t|pv|}plsxkep]y_xjk`ifznurcfxspbrzaixdhw{zhglxdqgpwfkn}icimpdhr~zurfncps^ljhkUvrlrojbYdktycyoc^lazacvlb_[gcZZ|htu{xc~_}wyqxena`yT{tkdooqzve}yi{llseyabunngo|u{s`wyejsqdxrsixmierfUdetlyrzmrmlsgijgjyoiaif]ftp{exwqqunpkiy{tg|l`obsxqmluudVmzfytrilf^[`|rhkl}vssu{uwiwpyu~anz}mkd]webc{xmal`l|edcmjo}mnwwksnqkq}smw}jgkqdVh}dndlsxhuvrjkwwvx{e{njsx_xbakybrhp`episiwXfffndZxhkpghgfwkwp\{^xUbwzacsnhdoxfic}mqvWzqjokmfqsZmploplxopmcaqh`n}upl{rymuprgd`bnYdyolxvgbskv_lktxfzf|Z||lj}xnd{|tl~tj]fdxt}lzk|fjdg_`ooq_nb`fx[xpw{okgm^rmo~siltwbif|qwvrbkzkvkljlk]^a~_iqn~hhmnZ`peqhugxciT~amkdhuj{ldsg}hYnuegfbfyfononww~owtmutjpkvifu}Zuxjojuo_fmjfjb}i_qcauqr]v{Xhfyr{gzijg_anpqjfwe[s[[qbteot||lnh]njzgseuayweni{|rmvz|}mskl_sdk_w^t_i{nm|jZlp}zsk^hig{oSsoiluds|ssgrtzojwgxlkpmpfqoi~ginge}f[fpcfletwfk_{{jhr^c`|u~tplrzjhftlwfsypprl{ktx|gnllekccnoysptpfshztswkOqtpfsl\k[^xxzphsgczhf|jnggnfi~xe}mo}avojv]yunwug{mtn|T[dggjqjr]jpxsodinklrvXw^fX^n|ftjjZlpZkqu}phqtyc~rpjh`_jmhm}tphqzjoaivyh]zovuYvktlfxflcovcrnkr~{bdjhh]Mgcquafitm]jfiqcoq|jck{koiuktpltb|nVvn[xq~a}]nfns|igoneutsrfump{t~|fukiiZx~tx{ad^x{vvqTdyl_eiogw~hxhgsjup`miioyksdo__f_hvyzj_gwnlx~qkfc}{rxlhbpp[jjofw|pslnpeuwmzlxppeodnpylx`xjimk_h|ozqvhlaqgpodnk^hwwdjw}prmnlfsipnrhbmdx}ze_rmun]gobrsqxhoj\pk{mm`cxrwt^hjqostdnwvodn^ijljtkwwhhiebrri_kys}uwanamv_mnjjdtqetptiuno|tdwdnrlnrrX{jui~rZvur~oeqn~pitkp_hmPTxohtzlktn~hrrkpkdcksqv~yjvghuciyxsnlmodujvajxbm]hub|vxy~}brwpkumwkee|hn`fxckqjogcewvbrkywvhf_tpsvuz`btpykoZ^|ym||crviYnu}}jyyv_mtmvjoswvkqtWq\igotxof}knnq^tiqm[wpx\mtkrucandnqcs\g[qpifvnvbn[pf|hxqzuqkx_uaihioibqhighlhqr}lnllmu^qsqdeZxva|jc^ntrnfnzZpgvjjjtm`b~o}nkjgsxc|puxjbftncnk|jjxqriiflkvotngjdoxjhkr_snju}^ds{nsio|xlkjqppwxshomjgvpiqangqvjkpXv_vhtphs{upsdkrllstwmaik_dlofrwrvmstkiZ}gttZnklunqp~iroinunnpomofmsuq}rtqii}tpoqnqjqc`gpwuvdr{qpsxs~iugmpqkhlihpelmkcsfmgy|uqigdzqamq|vjukpunmbpkqupwfokcyr[lixlqupir}njlsqijloopfwjlnhzxihysk{mwvub`n~iznrbxeljpog}mokhlr]lrprrhyfdhwtlptxpgmkhntizsuz{zwszn|sjpnvhsmuvhmzvqugdrljyxspyuzslm|sgqzkkrgtz}tvlrggyegcktqnhlofwnzcspxpmijosjsefnpqoscknkytqstizokyi{ao|jg~py}ozknlblgqcwxnhVmTndwmfm~gdjxxz{djycYr^gu}cgpmoquuucvnkvkl`lj{ox]`rhlyecvr|degux`dXqrd\ojkfyikyndppel}mnhnrz}|gjzt{wrao|[irqosqZa\z^sunqfb]l[yamqnpqsngqfn_Z|k_e|Yuk[lrl`[jvpww_ojv{ksnhrvfmwqawhYwi}dj~f_tsjivwrumit|zqomh_abd}jr}rise}s~lodsrohlouyummZhl`|nq[bVcdkpey{txqnp`unrpbtx\hgflq^whljpuh`Lrzminpkfwjg\^coizkcrveq|jigmcz{codvwqvomchndkypqdegquvnyjuk{{prk{alqznmjkmhkjef|klwfjXyur^zcoylbqkwu]k`suentxt~{hq{vmkv_Slvju^jyyp|ppioyp{nokjiscjqhhzrioxvgr|{tlexgynlrVwtrrorosqr\}soic]egl`nllnnz[rrjuo\jmrm^wr|hup{pgc|rztulkwzgdqxir{sumhyl~lehlxmeihwdsnnoqWgoyjln{k`itljokirqhsdgea{vuwoo}wzsqyv~ucg}voghnxqmmZnlsqxm_hh[tlxqj^nswuyonfkop`jzrdt{irjmbhfltnjim^jornvlwiZjm`noousnnhpl}zepo\lamlgehwvrqysebz{yldn~rb|fetuTe}n]xvep_timuk[qu{otcyundk`ouo`lsphsk{in~pdjb|is|^usgyroTlmkxfgv{cWmomaVnkdsrm`mcphgq{rhZxzdvsuesbx~q|wipkzsubjsx}nfqad|W}bou|so`|k}hywthmhnqz]moljyibcoeswdijmdsrZ^knhjVuqx[[ij_rwfduYxp{lfmohsmilyrjuycdoplpjlshgkoranrycptpc]]Skwjypzroiymfbuu[dectzpeisr[irph|`_xwqycrkvxfi~ntktslbxwplzfdxfo~djtwngdjjrognkiatjohyttqakmpYhxcga~omdvfqilrcnxkktdr^qjtmcrg~[n}`z`monji]mkuqmlu}`qluykn[pXsfvhbzgqbk|uu_rnsYs^oryfpmpkgpsqfxvr]_qwejfeoek{``rmf|ixwm~eqw`fqfwjctqnofodwnY_cZwioo]kqu}xeojxeluejtrfku~{jbpkz_lqantmiYbw{lkXVowezxflbeg|u~mu|q^qmpqpltwy`nkqpxdkmnsqr[serovikya~syhnoprmz]nxcipmbyndpmmygosjvkjofsgpzfyvxzqtlq]woksntcidpiav^qwtdiipanytszjguszkj\hj{pqvo{Linbxnqjpxi{b|krs|jdecjRmnrmnz]ihrghtoheZ]bqVXysknekgypjhenhi}qxxkpblpgtm[yqztv`zcsoocgjpl}skhmhnbqhre}awmsferkj{ujl|~dsce`fgq^tibgjlniVZesqjw_mecepetvzsi`svr_yeoj^ih^lwpooiWlkgtxukirvrgcot{odih~eTvv|ntkxhpfjvcqd^ojbiYjenlea|ifjp^apvtokUbtorcieno{rn_inkplcvhivyid`uj{jfvmdYhgwZp{ignjder}`edaldwinodoegeec_d{phtxmW|[j}a~vwv_hqawzntjvdjamramxqcljtfmZlgqqWgldyvuuocfcdvpzenleguqdfrguxjoRbacpsw}qhktd~uyrqqkoryievmzpeyhw~_ntmfUlbou`wofzqpxjbw|fthwl{jatuoffgenjsxqhufrfu|}tqu}o}eunkgr_onj`ebxrZpu}\odv|iu}opreozsmhpZkn`mswjmv{lhgttp]ypra~\oacqvogkf|zkhhulx|njeczljr}nwk`wl_eirb]s{vetipmflqgcruthmfywg[nulftmv]itrnv}~xonyehrh{{mjws}pj{tw`hsopi{jpsqerivolfqzchxmckmz]miwxvg`llds|qlowpo\qk}ed`espzdjlggs`i{cqkgah^howqadvgqupuqmhhvrpjxxtzjfuipukiiwaql~Ykqk^tw`lsYhfpsiksmiRp]lbei{fqc[idozryuchlz`sgilfq`rwhlgbtgsodkvmehb{hhcnopbzklmj_wbwnnnxil\efP~eiiuUuzkXrwknlkjr[kce^fi\hdsheZnLbp`f^~vuws^kp{Tpauctdlc}yjpua~ur}~evqnmmimU|rcjYpmutobZjqeozt{xnnxl~avtzhfmmq`dhtlyq\mmkjZf[ewgs}etst\sgxve_wyi_mv}rp}khize~pcp]rhzhqet}`[vj`_`ca_zmtZuhU^infxkc}fajyo\r\jsmtftpeadtggnezpZxe}mxmnUweoxgtlkjomo_sonpdgny{dybjrzxi~rsej|meklnfnv\lhlmnkydljrvhzxojf{kkolYkopmkydpr\qgbs]klhdrihu~yvljr{ytatev~rs|jmynzop}rqmbg~mtmn_d{{efudww^bkgkndkvb]qebpsroxU`~qwelluz\}se^{phmhzdSxkudvkhWnfukjonru|ihmvm|aqhm|thxrr]|Xyzjjrnbpvnhqnserqu`t}ubvk_vexohkpvuyesndVi]hVjxnqe]l}~`trv\{xup]hyideynbe{dpdyh_ipwx|]drtvpzfppk`jg\gl`]W{{teiukur~rqwsofyditehnazyzogwjixojwp|mpxp[ui|gk^gg{ho]bpfoez_{pmsmnvrnxzzmcS^scpdiys~jwnujlrWyiyjxlqq_io^vmljmx{uermcqZ^j|ltphqzr}vdkyi~td`wpmTnkhuvhhilsyxs{y|dypncxfvs^yhfgtfbkwfj|p{ufsrcyjkro|l}cbugknrlidcYandw{}}s|oownduozmjoj^qvnfgvkgqglkpx{{terplmrw`sr}pwZecungsnymxs~tzjYj|flr{qsdnvrVuUorxfzjickuhaojkkpn|hjkemz^cwrhkbtjyUjr}XmzZb|kevtjv`rqquchy^sr\|jajcosihhzw|Prjumjrrvferpsqirioklmnxngtxvf`llvkktugtrtjloa~juqkbp~ytrmrzpusotop{ptjoyqqurpmh}pjvmfrkimvuyfwnx^anmcefgzv|vjytuYvmll{juisqorroYisrmjto}oolr|tn}vxtqlipsitsmilrtui|pqis~gjyrxstslp^fmpdgyshqlimobsrprwnvsknseoo}noorjutnmpwnbclifrmlfxvtu{szsjcchmigiovhrroppghyx]oqhlbynrlolnxjl~qzmbpulifpqurlim~pikzqnsnuomrmm{vjqljkhjmqoivonnnw{kirvnhzo_ushsyopjlqqvinsbosqhkkljvgji~wlrqtz|flsglpl_z|\rspmfqsmkoi`kbfm`jntkone^jmyhwshxtmP`nrjtjfoixhpsmmmiy`}cdmuzyse}htdheekfcnlmfgmiujlfhfo]djfkisjvpqqtwi|haiptldiokzsmuf_hwkmr~rkvrskimodegm{yunfqlmtwmob`jk|siwqnstrtln_knwx|kwbrsmmpsnhhtZoyhys|dcl_olxdi`wglgsnpfqofz^wszokcag|{j~bucnqfvgiwslp|ysttdmr`qvopkvslnftrvwbewqoirq_jkt`k}nuwwznluqkphgiragenmni{ttcscjpgkjodaojhnhi_dpinrvsxcwosahuhfvtd~ipsfpndsz}nng]gsvitbbhcz}mg~cumgyiqnajcxu|q_qdzfqzuju]ppl]hxr{~mclhkm|q~kqymunpmiucdopjnd]gfZ`qsnpvvqmgcyjxxpfaukjkwqqipTtl{snijnl{nkocdujakjiooit_ovZioufqnns}prrmno_mvm_tjkhrgfglnwmqrkqrlfjug`o{obrxotqetjoowkxphtpcoa{oiiyqj~[_akqgbjwkkqZpbinjw{fnftq_hjhefgyxfdncckk|vixqlj|exk^gum|hrfftvtc{bs~|rXo{pq{ivujv]fjwqv~oowdtnfnwmexzjie{kkzrigkjjghpyhexlqsmqpre`ioqw]ixzlnft`amoirqrep\zjh]xplqinsvsbonp|qkla}ljsaduyjqoibksnbi_exczqi{y]{{`h_srjb_fkvYkvmki_xl^rzmkvqkkhkm]}drjomkfbmafkmduth`nyZnmwpylndrym~i|bblspzXqov[lvut|hhbkfoignzyhi~mjlkk_}naopo[hcen{m|hdquf[nnlhcsqptkeSob~hff{xoulqhmpd{grk_iepkmowni{`h{ipnccjjsy~[hXlwmygievyhgwnqh{eZnvj}wzvf}_omvmhwstiVrsfnsoleqnwdh]`w^aglkvc|ojq^i~khpaZl~kxxhgterymmxnnaq{_heobepktgq_sinbvpwvjl{hkq|ov`lh`qksbvnyrowjtcz_hjziypimiqrkqld~peotnckntexccpymgv|{v~gYxfwu`cqh}jvrv[|~uxn~~gx_hfoiw^dgghjzlmootug{qgcyefnyxs_mftqiZnyi}~ub`wtm}~xlWrtyfaoiwbqkrhjl}g|hsxtukwsxsrejydiTh{jkYugumih`^tnxsXtjeg]hrffnmjsbo]qzuymkc_bvthjft^ffuo_kilmddakosyjswrhnk{r~ryz~^bhxfj{g~ewkmfvssjvzxqa`it~pupq\orecqweWknxkaa}lcmtoclydomtkYjhnnvqZfhxm{miqq}bhmdY`si|uvgjie}qikYx{rsshiu}nstw^mnrlxwuuawatwgplmk{tfvciwzo|nuja{{lmjhjstqoomktyuxahunqsu{iojzxlUnnkasttft{snw\gv]ut`qkmwppso}t~spfuwef{]xnctxhziornqkjoqqbqozrknt{vpmhx~\jqzkzmbw~egex}bngnalntqvnixqPjp{tul{msXqvl||oqlkeotzsrqh_qlfuitpqtld~cXcslhvmewdpuzvku~lesy|_szuvfw~xjuzutlpu~qzokje]onsj~unp{Zll`hltofsdvfqnmifywr|fmrhrn`mjv{n}qgz`{a~yfcww}kmmZgrurfbh~Uqqoqtivwqyx_jcup|kjgfx`tkggiSsbvglucVt{dfqhjusTcglzrgzweqp~lqokebpka\bd^fnibdf`}v]Y{wxhtgxk}xwhohedy]o}q|Ynkans{lbalhw[huispv_hWjpfl}fquvrzns_xyjc`hg~eyooqiorj]kcrquswumliYzomvp|oeen|dzdrqi_sklnnly^vc`ovsiojj{gvumqwqi]s^j|m`tvkpovvYiir{vs}j~kgj`whl\poVfxrxthfmy~kqgeuxsfrv\agt~ofnio[vm`p\lxeZtykOyjwYvoofu{VnmdsrrhkxYnwPjrtejlymjkg[vmzmqnWx\_r~o\fwnq}n]`osqfdfbkhtdzfvmk_zlrmrtspkkbbnvrtc}twtb]pneomuqUlzmpjisg_evvd~bvnkyqe|hn]bpjv^pi]lmotmnrqc[soqfzkmjmhubuurwqo|jtmmqcg{molvonj`fnxg`vurkfmjvurco^umad}lmmcispcn|wu^tchqwstlj[wrtnv`aigpg]zihs}tx|llabfwsqj|wjnhh_s{{x]a|qm`iloj^`cvntcni`cTqrsXnikqhgpud~kdzphwnce`ihgcrhjd]omqiuqxmrv}pzuxSztlq`sjlru_hkq}wslvi|iiamopuvpZmzofzpki|lw_^zjfhsfgromh|rpiovi~ldtwrqlzTfeipkhdtkbwivvqdpl{^pjn`eisvxjcf|bkeyyeXdf^`dqvqkzrlvvrxr{msZpcpulvi`erdlxmcuu`uh^axesq[okgihoqbini\yzn]cr]^cumgs|cjfiuifXwpatVy`umbuvbvvzo|gklorvsotrhul~xqgwynuthhk{jsp~honu\fu|uvebngmmsjycbimu~zYiko|kirrnjuegpoefmrxQjwl|kt_cnwhm~cgi~kjg}_`qlqzwnnjmow|wqjpj^njq`kuYes_t]Zud]_|kdevpXt~z]{vqult_lomrjijbvc}c_jn\nqthlnlsloobgocnwy[nwkkxgt_q[^mkqyzntptnrkjjuq{siwcmzfaqnsrliffooy~sv|nogruyxeickoqhovksxwohjfdoguoamqfuntZa]yhsp\slv|t{lxh{qmvpv[l`tpioo~vxhlto}fkdvlq[qxootev]m{jrtmctirwu_zmwzuu}hzkgxrhul^yl`lmxkkrpypyyfck`rfu]kt]jjqkit}zanqrpmedv^pulrvkmk}[tkwyfvyrvfe}zfnwTkkkrppsktquyhzsnmz_rrr}ylicljpjxpddxypkwx`^fdglkx{r{~igwsvXni]mnpuotpqtzkXjplurmutzcevymsktltt~s|bhwpynr|Yu[d{pf|}cwrt~^heTyri^sqknhqziM`apgys{_yzef^}b{xa\j{xw~mwjzhY~`hasgzpdcxuykuwohjSrb{igr|l^b~gV^rfSuq~ggcski}he}epzcqdzxlyod[P[`pzlgj}njus_tt~pwqkq^lkyloqfglgXv|^k{qagow}tnqrXsdubj}tknjptz^uyogplolrnjeawu^nh{ujf^}jvive{tbttnlhzz^xleqledm^dlQksn]eqkxrfttqxjom|r^qesji|jtgglxvwrjpkpjh~yYvb}kdvzbbmfYoWineetozbkmc^yqmjfhowfqmngof_oZfvjappeprhbkrT^uywuq|xb]udiWsbfhmroldvmqhf~kakgkqbor\cqounbnchkvnnedfbnz]pntpbmlewxT[|fqp~joaln}m{pyy_odogkgfrvnonjldjm{pdjswvq_\~drervmntV|hwqhq]mcpciiyfx]frtvjzsmmYdvjghpyc~|uly`dqj|~mfzsgosnvgrSonezn]qssmvgdmkeyliwlnoqrcf~hfswltqqtnmtndmointntshwfwaY{axjimzniyjejsdrlzvpqilzdngleq|wu{gtpea{lfwvpw~ykmulqeryoqanvgvtitebimkuYe||upe{bgrhhg~xwoc_hsuwk}tjym~gwp[jtnatZ_ORestoyoro`qiorXvgqpk{rirwx\`lvpotpfqrsvhsfxh~sr`yp{yokeiyuknnvd}ykuvdnjtocnyrwadrzk|sct]vnpvpo`h[olnuva{pocxrkbam|otsuj{xl[rujp_ijtnkv]nozf~yvgc^rqsowytmo{{iuqqnm[goos|hznmotquy`ohzj`}z_xeuzxfkdjti]x|mikawh[oyyh^pggqi{^tefczbyjsr]bfh|~qnljncvgcl\dnw|rnigunkimwmjfUuvmf]~evymyrkfmp_cjqukXxmmjojpxqjok[meaUjyzgmochr|zuxsrny_mpkxktmhiqznqx{bli|rl{_uz[{hhengvt|jdxprositmwkvhswoup~lqnppVM[r}]}jvnrnwjwptkpqxhreg|ttsjuuoxuVvhq\mregonstxpxlsixmthvgzwl|amhznqhiYssmeh}k_qfnhxmmwmVjupllwwz_RYkqfbrxoSk}hpms|igiiorivstx~om_zkpgxs}pi^|dpktpjvl|hxqhdqgj~tz|{zpmv{o}rcidxuil`oeoym\_iyqvozbdnnnjnohlz\q{vvu^woe\f~\tjkjd{qg~{cwxhrxr\yxeym|bzfnm~pogrupqmkdr{amdXpxqrgstehvurQouwqfmnllj}Pag_{fm_wepbipbopvdwrxpsi{uyhsWxikvkdormtv]a\mnixUukx`jjdppqel^aumwiYb|ntmmvf~wsnjeomsxk]_mer^grkXkyd`kuld_xpexbdsitoloqrro\ybnovd|q]ml`qaqYxrufhrowefkr|^j|nqnXurl^Uocxnynhrec`hhciyesngxahjtyuuzo|r]brg`x|cxuilmttdhjrjpf~ynmmgZk|ghytfnq^rgjspthlsoo_qrppx_orwleerf|s}fn]vsxiqmqaturo|qevmzift[w|uigix`ehdyi`ymqxnzebhwkjynk~cobtehjs}nhdms}tusa}jkyburobl\zipjs}whqgc~meovlnotzxixyc\lY~mpxjoosh~csjrsoymh|k}orrlrpy^t{oxh{gqtesjiruirifxgakxmxvvtjpofzkfhhsilffqlvlmgsqcxv|agrruq|v`iet{}nubr{tpW[qXie|pz{gkixrh|{vq{q]tpsibvwj|jqvfzsy~wg{qrcrkkxhboos~mzVmgonvenukbZlj{f_cvuepyqmjlhlogg^jmzsyvt|}qulqniZuatqfqjjefrrcjqd|jrg~qlpdjggybm\}\dimrzmiqpwuwqhwas`vorrpnwdgovrpvppgjjttrzwqkpyxqoVux_tnel]pugrhuw[ncj_wckfdfwy{zntmnjvgnn\qpyqhogmf^olcVsqshokadhkitg]pqYjZZ_spoNijZepsdxpekit~mgfensxlp{fjme`Skonbionlc}sfrsvqeisn^oix|_{}ntzs`_jthid}fatp{ulohgrjxg_ovjl{||gZh`nnbbpnujtftswlvkZj}jnvkqukqbklbmgs^amjYcke_smc~wgjqq~pqdmzyjjb~lf{yloezoegpfpmh\am|ztulbzqwhmecwtjinsbbdbos|x]b[nijj_scpkx~vfgvyv{|odgkgYzjyw|nksmuqnbgjbno}cbj{qgjdkqrcdq{o[h_sgesrojs_ejpkybeuugsivhlnpuzg]prtpc|mh~k^jf]nsn{ltihwlqksyhwnqpwsuxmvpmn~iS_|jwmshextlirsmeYmijh`hewtsmeotmxqyetvZ]ugigpsfzrhuqwtdxmuklx|xdqrwsgy_dxuoebaocryp}ov]j`kcsxjurloqjkv|wxx_kgivjtx^|y[sq~snpapcoviq~vk]wkdsaprrnwt`xiyrlYjxon{q`ri`ysjsbjrgjorvfywdmgmyg\fgmdy_fkvachrxegsrnqz~{mva_|e^arjwmk~sdprbqpgjy\rzwps_mmdqtuj]wzjolg[wwjnuyjnqjinnxrb_ywhvspwrnvbh{relww_vf`pyvnk{wvgmmZowbd{zjuyimhyjmolu~z{gmvjkskki^qdbgr}g}{evywluupxotj[|ai~oftayqniuuqsrwtgto{vxn{^lfOx`o{ilontladssqjkynu}[rlavw\_tl~cq|sslJn{freqijnlcqbqhf|{fgghvudT|y`sWediou~auinckyzjnvpnvdkrsjuipaSm|tPrhemldusi}q{}WqQughdSX_t{zdgle|}imNxrvrfu~zoo]Wwa`{ayq|yc~ozcyulz\oZjlnNh~ew^Rw]c~ndlzuvWlksel]lvlZez\dmnyzk{iksmgmithrmwWfj}ksnzvyW{ie^jtsci~yietpslb{cS_`xldyjmYg`uRVjyVp]hlmxtljwul{lzysd_|kfqipjjYddBwhxhLhainjdscuekfbolgm}pgSlfecdziqo]ovcjnwzpgZmx_h{mzhsillspzj[kci|tkh~rklqsenZhYm]cpv\p_b{aqhkr{wblsZp_ttispy\^kpypwnwmpl{~idhci_~mz{ull~te|~csrto_o}T`T`f^vmWns}~eslru`claS}namkwrikdrht{onnk{w}fi}g~eintxZoUUf_wlpgZmLsvqlepq_|qvmtlrivfl|mjN^xnhozurh}gjqy~fodnsrWqx_fq|qw]lxxcnaXldhyixgt^xsovfuol_cyj}hWXmpsv|Rig^oib[zx_qqljyh^RfdpnnM{lhpa`btfmg|}[v_rj~uybsd[hxbzrxaUrlf|sqKbz|j\ixylbVishYX_h]pnsu]zuvlnf{xdor{y_i{|paYgproj`xrzohv~|jcvk~\_`Rfjqmc]onpjbpw{gMWcszuwas\|vlkoYumgjszklwUa~jwhucopj_rX]_uj\j|\jtlaltmz[xtm^WpTyvnwZ]Rn]qytwjusqpmq}wkhphoPygszpqha}y\ntp_mhtaou`e_c[qLjd^uin^otjm}jf~g~jij}hnrtu{ez_pv^aZro{wadpciq_eojbtebxeoRqiirZ}ujWofX`kGfpcei`wrf\VVflw|Zzugzzyxr`lwVdsb|z}j]m]jy\Q_lP]qz\klcsRzlmMzzchutZZ{hqa]xjecoU^}Y[[X[StrqqsWflXmcujYz`i[}Y_d^oSassqmYuw_|nidkuYcvmh]gsZkaj^|Rinbu|^pw`k`ot|cUrjrs{oibl}t_fje~dy{}nb_YzcZ]`zf_|W~oHws^}tlsfp{h|~xo]ou`j}j[kq_Qqru~rxkyjWz]gwVwamk{vhChdcunSkw|lt]bkVhebcfsqaTtz[{|ny\ycixegx~Jex\jUoy{obc~akznXjnPkrkp_ohkOokyvwe|hlzrzwulginey~iixo~n{r~yeawlxfilyk{x]e{z]Vwurcmfrfbqvgeyxqm}ymm^i]bp|ksgrvhvvkmjlczpoz{yqv\jlcgdqkzlavdialszgmjisfxkqvq~sXdsqmxl\Yjt[ppn|owsjsb]~nal_m_^khmQpy]cnlhvv^iko`ouhlwuj[zkvlgfqptepkpffygmko}Zq}mZosmvkqVzih_pmoncelnzk{i|h\heqv~ftkutdtl^`|fWmq{zzgtjn~rTjwtnTqkmvigwssinkguarn{x\sdjgcnwrgbgtqvj~|qvtpuk^rshvo|uqtzcar{nufkumrgk~tnhuxqrvymacpsn{v|kyqedeuveehgrvnkqwnql{eonup}{irhpqxclokgloX{rlmhksfaUd}yxhvg}_wpmdyo|qaj|rmbg}xy~loq_^myhyuofew]vxjruhcqilxrnirj{{ahyn~ddu{gduYmrqmht`nucsiwmqfgwUWg[sl^mv}gokji``qqeb{vrwfeq}qyr[nzfodo`ytwiYisvljoifvjqgl|tn|}poiq`onptr~zp]cs~kekrmsYqzuttofv\ilgp`c_x{otx~dadihllc`tthrhoT~tfp{hp\jlbl`_gbtmboq_zwi|ucgs_sociyh|fuizt\{ri^khts^[kfz`kd]kz^pdhshX~[Zykjnigkhsbpuh~}eTtj_`aejfgm[ptbk\jqlvrnYXhnmupubljohV]y}ta{udqbtmi]gpiftaoiqirkrsfyl}lvntnxehy_mssYZotsi^gebnccVxhv_hovaa_miZbuwntx~glg^]hh^QacWtd{idmcum]Zbk_cmxhmqk|c|}q|nTusfjnkm]odvoouowwihmgok`dt}tnjr\]iblTtlv~oqi]pkl|nt~y}orutrm{{jbbbuw`\rqpztOleio_uxhabvk~\rual[dpv]`n}igdelsjue\\ca^s^sjnd^hsspkq_zquuwgye|\tqkwcwly}|d[wo^Yydxodib^uhqsc{}shbdyhizstJdlhugmf^qkwoydrrfj]gf]atgxrvohimMKhq~xpzzfa~v}mY|lrnyn`jtlyZiatgo\dyk{np_o]puhqpik~gbnyXljmpwm[Tkugchtyxg|l`ofX{|kv_tgnymlssqupr`oqxegnfeZmrot|Xfn\q|}lbfZsnqmoel{e[zyluer}anbfvpsqtfpshO{gkr|o}n[uuqf]sO{gj`sqt[w{xaomyfmgXbmmp{rsylxYfhlm~ymvZoVw[vdW_{Qjtfmvg~ceh~lX]}{jMZyrekkbj^_`Ng^n[jjz[acrgu\r_kvdvYrkQOns`WckP{ucq`ylljd^Wgmli`ur[s[nb~eW}lsjbgwfjswimg_udqZdelbtqx~xrmRovcV^`hxfr]Zuqkrqd^|vslezhqzobeixr{bd_m]|fvgfsyw{ywjgrwlc]ryZyWP|wjelthbesajW`[um~t]Zvsz|\howUyGrvoxn\\uQkfazvl\kashqrr_V{M~k{ehhejsi~`Yajwzqwrxpg|lk_vsi`dmq~{qiYq[cuf{eqq|r_XUnahvakn`sp_r`JvpudwOdf{mcTqrZpvIz}g{_angalsuomitjdv]_gWfyqmT~bdqvus~{dpbzttxwzjtmiu}r}jt_butrmz]k}jiQcVvs\hizkruyZ_tudf`Yyfgud]hlb[qjXyZX{bnxfsicxptq^|ad{g~ux_irpriop_fn}ifk[iawyjqhw^au|WikXlaxoqdlazzyfgpm}hucu|o}jtn_Ouo^omn}omiinvpjvt|bxkofgm\rVt}u{f``j{vhrfsk`gXgevgzu~gnq^vnop_omZri[Zh{vvn``pn~cZmou`u{ljrt_dccpzrsfq^rgsmZkpnLfnlpcizlUYzeeefuoylmg~|p_sy`q~Vdjy\wywd~oibvgSrXjpyz{pxaecngmkkvyfnvocnwvegoV[imqj|fcmfyo^U\li[kh|Ydkfsax]pcnplqzasumvtb`kmdrookjp|fnfglpesbhrkf`naddq|nqda^Snytsnh}h]xa}t}ccii{{mmqfjPeXgZlxxS_Riy]onu~ezop^Un^frcp`rgzt^yvaMhsn[xwZexiocl}woceljvgn|ohupXtux_k_spPneSfdbvyw|]{jjhdtufgf}dpsnt~fvq]mfyomnuZz\gxbi]q_[ys`gWmygzivdqxzxoqa^[~^pVf|meoc]xgx_oorq\{bl^zqn``o]bsa_rmhyzh_ob^goln{\xfingbll}rkl\pRbhe{r\Qqqokxwwdjzcgn_{i|k^uu^ayr~XhXWsfZvrgpWgXhebzliomNnwfwvnro\yji\ila~oj{YegwcqOigipdo`Ztovls{zvimougacj`p_`hmof^kjq`l\v`g]xeTor]}[bNilmui^nOaui|tcolthwll|hqjxgawnkhrzedoxTbz]gbqt{flqtowv`vpK_pvbHpk`m[`mybnhucSobdtm|nkzxParajijYrymgfkpV|hikfi}tr|r`da{Zeskyok\O[tblkoxi^wscyx|Ul{mh[jo^Ty_mrrtktkmstfrvkijlVoVfedV{mkhyUlgmkTZ|ftZ`cetmXwqpfnVqo`dkkhE]o{xtu`xoqe{cgyxqfwzkhncrr}tn]vNmY~Q|`\~Xtgvpz`nyxhnzyRz^oXepffuoyj[OXwYip|o}{lzzdhzpdqxhiajyMtca|hqYwrneDZxmhiyvXcTki`egpvaauf_fyx~fyxi{`}ebsejnpticcsdya|}fzonwJnivbclMn[goj{gz^}Z_moRga^uVoz\jdeldrclwpnc{hOz{Omt{xVqgU}hdmvqg_vtouXaskfgheiw]vc}qcdi}ssc~nsm[udvst`k|{ddjd}_Z]ngjzY|bwhzkdtzirlm~[nyooVsp_TrUrfzqj{r}tqpeptvimipsxweou`woao{gg_c~jz~fzihpvxiowXeq`tVqcmVyafylssrkky\tkg~Xk{|ldsu|~}zxZ[{nrcl[|wi\xprthmkaoewdfqkbqmphrvnisrZpslm^qkqikxqmpszmum]dmmfvq_goy{no`ynmiStzlqp^yp]nv|n|hogsi|Zwkfjposynvmf\ylaVsj}j~~oqszuuiyfn^mtkmhmyhrozqevwlqqg{s}oema]dsliip{fckr{pzkju}twj~{ctmQswrjceshm}Y}{h{kz]^ukzjzpqrp{shtmolnejmqmmlt~Z|chsmltlofrmpjr~jxutkc{uZZqwhtyYtk|{}voogxZmpy{ihlvblofjT^qvbu{odsoyp_mas||gqmuau^tpioblvp`vsxgurojmwlhkoyrWzb_`kj`iljqn{ky|`\mnuvg}yruudYmz^}ouemaphgz``{oi_buvprdhyrhkyplwccfYYzmjee~|`novd`kq^m~ushqwe~tmnkqqhz]Xm[jewwdtpmmvwfdfqVwlq|gj}Ruuwct^jekxip|szm|didrvw{{nfsqi{qtygyls]dhobmh{{uq[qtlegzeUiyp[hhohyTu|Z^zshj^pycsikfht\v^qVYaigkqrsZlol}jdopwwbciVorysH\vlvqkfiuMX]hl{ljosr`~\enfgIbfeasduunym~oblh}eXwc^fdh]qqrk^]zckjdqyuzvnxlxgalgQmd`yhh}xfcptpn_ac]fqr[rd{ahy~srxykxnjkimp}s]VbulgZj^uuh}xjvnvXowoujmes]R}{sdqlit]echuvvxbrbfXmhwohl^Xkg~ZxuqOusxpy[p]h}u_zjaf]\jqiz[hqqlwn`ml\erni~isoW]UuQknmnsnykSrvVmo~_mueLq^iYbnRr~ub[k|lwuknmshibugqzgnefvmmk{wvmdvgderxoqthsbhxs~qnpkszlbzzigh|xplvo|rogsfftbiasrdUxoocll|wzmelurZlyzigpihcwuhhhbksjUto}rki`wzirqjpzuwjffegyaqqycsdnqmjmyseqd~s]ongl]uvm]]~itd~p`qpvcsektqsrlrslbpfwoosmdgsqj~fzwivqtpmlhknitpouba`n|ydbejdut^x[hylom}xi`taenihlfimr~kqVvobgpy}hr`oiizynuasmp^vyq`jukpsilqjeubsylkmkntixpzzrZpq}[lfbtymlbjzfjuZivjuocroauiiup\ujfeUw~jafynql`rdjvfpbdliSpzoqdhernnr}`orkoiuu]iXZ^xqi{mvoXivolug}_kmePiqbrezmluji`lfq}geriNznn`vlTlmjrhteee_o~r_cowmmyptnbr`xynEr~kw{`brgqRrlbpesu`gzkwDv[~]q|hqhuqgst]oaomizr^w|rQyongzwxkl{k`ZR`lsr|waexpnutv\zdfese}kgxo{m\uwjy_ax_|_r`^]`ixyrt~XpuwxegfpukPzsrm__p\ti[hgtu}|ueahuqqr{zm]aS}Zmqeet|ftgbtukuxhObkkqZo|collbp`WmX]sofxmgvjjqxcehWmsb{iommg]k`re{nU~Y}`dpeyjapar^ppr}{fqqlSgrmVhkwvkq\^}rx^qg|oxSfahwgffXiwofSswll}c{wupmqgjukLenYreq\pqXfjp~te`nsR_q`kngby_kjgqlowg_}||rn\ae}Wq]sfebg{afbsrq]dI}ptQtVkgjijpOxYzxgbjc[\yenYr|xwvSswtrnnZa`s{rkZwpVv~t]~qsRylW_wRjcxghc\bts{^rjh\of}iis^mgWva}kynb`~t\oieccrq}oUz~nbseWsjqtsUacOsp|^e_{stvb`h[jczlpsmtiq|xgqep{douyrfslot{vh\gfoxmthwnmgmk[grpf{wjnvibrleomljllsj|hjjW}fpzxYgp~pbdfw_Lxkvdqr_gk`rildZ\z|{o}lTmZlohavdu_xQVxfioeqkognt^_{ar]kq}u~dmus{btd`Obyl`pqmijo_qkq~~rf`MSvsobik}Hzf{hzqR{y{~up{Zajsmmeg}^x^blsacvohmo~`cVlwlvgyne}ilE_efkmv{wssyjozc}cenbIeysisufruew^l{zoy|q{ZVjlmemmi{y`o_sl|ikqVomzsccx|oif`ZxnvTeQ~atv`WgpVuuncybOdfqjwbwtynYmkddRZnrk{dnfihkrXgzct|VijV}po_dg]nkZXcjdlmc^yonmn|Xr}{`iyinqcT~iKt^pwdutSlb|]`mii~lgl`mzrku|ep{r\`ermcqtqx[wvpbwq~f^kk_sRu{h]pasrjkP]tgnzxrwdsu`vxjgToQrrlez^lrwvokotytvtm\thTrcxemxanclhy_uslmpxU_qOfa]~Ncsclwaynny\}vqhh~xcbr^hbwh{mpr[Unkc~l_n_hnpt{[nb_zUfjs`cozpedoZg\nh}mqq]{}f~sz~jPsjyxn}gzYkkrasshxebj|o~j_~ww}hei|}ykmghr]wo}nsmjmawswmgsci_u_miXmqhmgYnfnb}moqditi~htpjbqseocrzt{xiX^qo[ncixh\mgY|fsmrdeuyf}plbhfqrsehhvknlkg]kcekjcUnmipiptvhhrqZotwyszdq}kwr[uam]|enxk[wjjimd]i^~`bgnbjZk]k_d}kUyxe]\fmpZitoZquerbtrtqj[iuwuksjrpkwruurj|q{eufg`koySogckz[~peYperl^d{kQs{ml\d]oktupzzzkczmf`vmgd}\llmnip{rhtidknjkqp{xtplbcq^`qlbg~vtlmplenpi`^p~iYzkkSecc_Tcsdzj|}{tn_heqt{aiYity}TodX}jl^mYfrtq}Tsrgxbqe|vwTg[djalp\hF~bawp~|Jfpggo{j\_kc@_^cp[g`r]rz{puQxSre\|mqiyZVwrRt[``Wlj}cj^xezkyl^jYtutnvnfdgnVeYdK\t~rpmpckiVrdrjZYReygfsq|rxaxZuhc|_OY|qHun}_YfjaR}}kV^|{uya\mhuxBbm{rp_iYk~lsQrhe]zuhX|Ne~`bu~mlel|ed{`duxrnthbkYXs^finttunrVrn`ocH_~wmfjrjSwfSmbm^{f~q]Nxwrpergmoifzn_waa}vnc|awgqgqpUkZel~kfigXwtw]y{{e|mk^}sr]lZZ|{z^pauvsibXb]umaoo_iw`ff^g`bulYqspu~qYqqzdXyymSbx}bhxsFL\sqdmwd\bpd{}gkgetZcp]fusubzimsxt{Ww^cXlfw{th\f^nj[ti_wd|[hirofx~j|pduu^pW~di_}fx{qOe`uk\ciml^mmvlclX]elmqsdvsepecgpfzozmnfip|Mejt`irr^`os_[^rvevlnifhzsklfvwnrqupkqxtiviu^xujkvITxzjfufrgjl\kp[rxxt~\mtjinVsj|vnktl`ijsf|jXxldimytmit^ghV``jumabv{zn{nly\^n|gqlu[l_yipanjzjl~olc^Ujskelbdq_eguaqWcqwxdpSsq^nxd{nrQfodkhhwhwdeuwjgvhqgY^y_mikexjyethurztoubhhxcn~kya_xtbfrh]maawcYnl]sts~}t~pmdrkvxhlx}vpv|rdk}otxmbus]rkmtgcjljj`glzzolsrb^hjgubj}bzual_hyglsmrtumdiZdn`eYZjzmgu~l]mVhdl\n[xnwmcyyq]sgenQngun_~`kjmftao`wvquhv`srqtiir\Vmte[lfdmV|prcpTxpgadYhwds{nnrZq^p}o{ogvzwrrlxszx{qmepkptpukxq[iZsUhyijfpvrYn\f~i[|~qjtpbinYrmmnnh`Wxlrsjqsg|d}Tt`ndbdbh{jrwo]jxryfn_jd|vckguqm^tvtehopwlqZmon{igvvfk{ejvlrisjmtd{]mfsjsu_ie_t~lwigvogrpukmbqcniykrizvrouz}_fVojyWiiwaprl~yrgrb\~eif|lxcrldse[orlss~hhyvglgcjco_iav|gnppoptwqp{eezifnpr_Zer|ipcwgl[s|~Hexxtlteoqq[jlwgb}rYfr|dohoVwzvjlk{ufnm|Yezolskzuyaiwzw~zbuqhffhpfkllszfye{jzenyhyqbpnYmhtafxudeua`nksfcdxxbg\pbo}eisWdilqjusr[ulveoypircy[]bosi{fwrtx{ulrcevs{sjfsrcnkoe_vg{{rvvoojklikV{mkkkdgafo}td{femrt{smf}ovntrznjm~jmyjznn_{ut|sn]ukytmm{kufdmlqe~}yljvzya|dju{sofchln}l{jmcuosh}[etmd`ryy~utykajqooursgg^fzqxlloqmqprZbjbaxkcnigd^yzrsrdy]n{aomrhmma}cp\ogVpuynmiicgscbq]dbxhq|ef|f_dycodwoyiyyjqWx[cg|aeWwpdurfc~Ujxea`oijhzfrl]zhvwZqllg{Xzwe[hhtug~nokjpt|{Zogsrnz_fryvrwgoX_pgh\ostfpz}pgs]vcclgXvtfvn\qb{egaz{sswmdl{|ejmf^jfwj`htfe|kZjwcNpt{{t~plimuvszmqceljvrlWib~izoktczsvnejkmrzgzv]bguuo[kak{myuskn^dmuivbd_}gz~keyjgcdf`qrzyoxf`fjkzVfuqqjorl\tp_[\ycZcXvqxzsy[vno^wiip_oktjnnvw`Z[n``l`Zpsllt~ohf|dn{vogy}fxrk[dgzojyrt{~tvul}ir{fytfynk~sjc`perwZumgeg^w_[vmboXhafytbrYrlnXofdO`mfekaMl^mtltjphohpf_epai~R`gY|[ion[i`Yduiqp_\`^bvxuyb}sxZnugvp}`ug^~rxwIUdhUooXgsogioe]{injapfvnzjxuhmqPj}ei[d\W}jk{oopWgvonsrKpnhdojkmfWiO{eT|d`vhoYzrreVhw}`f_w[ilzwuQzfa_pXvdmcntrtlg^ilR_eka]pUfpadyrbfxr|zqe}kbknarFlvmkgsxd\axzf{xzeswoixlos|sop[utkghasZgeOf]xbedfp^JmdlU~npY|rg]yqZjam]Q[nacdlnnchr{jplPtqkzf`vLXjxLi}sym{a}YVXnj^{kes|x_embviricvsezfw}r`xmk}dm`rjXaofxmvUo^ofqg{Yghuf`tybxzl_iveh|cSnfkvTx|bp|fphuj|tdlr`og[oYl~thhgpodnqkkxvtmw}da\eThx]iteQod~yvrxUrogelsstzZxqtgblybfRUqzs]hllp~u{ezx]`cgonlsw|wjechykhfhIoaWxfxbnxPnvqiutxWtd_dk^}qnv_}lqjl~htkYe]lbkukn}jt^\k~p_hum~scthYfregsqwo^yTnnsvi|tubp^Xn`jMip}{mvuf_m^_ufppgbjigrvnru~jngmnocuil^oekXvcn{fkyycmlWehgj|sxcw|uqvygY]l\Sjuspmu|Vw~spic\yqpceonxygsvl^cui^km~c^ox~vj{q|hd}lyt`hcqgqeesofyondmldcnfvqmtcusqgquyp~qjons}mfpot{nzu`k}eo{sciqcnbzg|bylogVp]mfzgnusptio]ynrkfowmrfy{jhbqenfyyesykcs]laumcm~\ogh]jc|kbqadyoolqqqyr[xjckcvOhb]tpclmndbljzproo}bWo]lrvYg}lkwsbpfFkvjmelfl|bzjbh`jYdow}ajiuo]t}rinjrikpzrueken_ldxdtuc[wnfXkr^pXulaqdvdsJQaydkbfiixv_s]eqfaxm}sRnmjg]pgsrmd[jm|wlohbmdglsr_\{j}rsOjvflq_]su_dxmj{bgf}[b]y^Wruasrdnp_zS{r{h|cyy|pahicqr`aW|gmWdviqjhsul{Ya[f|fvon]}\|ogpdyue[hfwpu^ynxr]Nb~rj~PaTftwpr^tervdk\vhnbbofcu`j{[xlysasiponntksttwbmgpvok^\txe~ropoXj}koo_wkamvXlwkqfg__vati\ym{claUeanb~xaW~ovhoqkvujc[dbcdrvZelucy`rnqgxTeqavjeihvxks~w|ZxxYpkhzZYpmsbdfsuViiYhbvxzfdmbwd`ruzavYge^fjxspX}hyq`k[sTtixznj\WdWm_okbh|rlQvqWw^f~fz~Tlhk\wnk{q}_uf^xbirjmgjiop\vrmnzpzkd_jb~wYuEt^syrimptdvgorbupqnrVmlkjudoc}bqy|jnnRozhoiWm[i`h~tr_tgy`pltWylntpipl`hytcc\qqguwaorOhupkyj~ymtMkhe~df\_rxzihjYcp`gt~qkpwr`bnjxn^kgtgqgumawmvfuu_uslzbwd`v|_jiloeohoZ`kkbrzojctwiie_i|bdyqs`kogbuskzx`hrwVewrizi~xsv]g|zuisgj~KhbmiUNxlicmpovmuyvy{OYldnevnz{kaesnNewkom^|`b]b\Ttd[wCcxaNgedxw][sx{vkzm}\cql^wgb{k_vtyfcvlwpapigm{E|s|jktDtzd{`Upg`ni`vowaypxmJefikt~yrlvglY|housfmud]b^u\u`^odorWXmis]mkbzsr{o`zym_ffbc_Z``mhpxtcaq~tsuglokhxnjuiff|Uwst~zqiqgmod`um~de_noh]bi\ref`T\fXQju_zhwjo`yvhzuxmnnMtmdtjdZcYvquejpdekujfqsigznpmlnzlj|onvpt}nJopmpzs{sz^lmfm`a`ukcij_[}]r|pv_~wh~fzh`inyVosc_kvttvfzd{gogi`vt_duflnfqkwxsoincv_jumsfmbw`|__nykRePlq]ugo|t^xYnxep`]it`hoA}nXe~jvikXm}_p~qkpbuXZ{lVvma]|oj[pMsehiieONsOxnYyXmvQ_apxaYolnyoqkcirwfqYpitkhykhk]]]uV[hmpakxkb~_ufl_xwudrmz\ntruqukvsttmpoawe}_Od|\h^ssqx~sY\zczfpNtqlgsaofv[rZrtQckoguZvom]^[}yjl{l]mupqoxtTexsj|ixyjpkwqcotxtfm~\sqxpewgexk]hpcpkusctpkekgaxj^hrfje_k}[zlmtrj_qccxjyg~wojdaa`mczsRlhK{ejbn[etzruunhU{zisxxjedp{cgjOh`WfhPm[fxbhse~hqVu_m~siasrhbcbupow`jk`dpwvi}ljapp]pz{knsdewecq}tsiqd`groslljlqoG{oo|_[|uc}ullvnskcnejzhwf~Meu`e_q\lyhce}pcpWblfzouvdg\a_QxelYnniatqblxflvn`nwdniesukkk_iqmvyfdnsrd`bnnlU{{yrh}drmo}g`ssvupfionpbykQkeixehfhxjbRbhumk^rrhpQfhWmnsmv\rd|ocvojfojx}x^pl__rp}[nw[qcdt^rTtsxtggllcuvw`t_nnmvyl]ibepsug_|n~t[nligwln~kr[crn~egywrrtvkb^lnviumxnz\fjuXVfklevfekrr`_oakopttbgsnShlj}ZykZs{tl`Zh~[pkVjkydibyYs{{ltYtZskdkmriYwgjyknu|onzj|dck}lv_gx|glgg^]]|vvtx]eslisvehnubq[hyq|qgm_tXrjzw^oksatiuhal\gj|rY_omiuqu}__uehguqzhsy|i|kq]c`^qem^jrs{uvj{kl~mmrxq~}uuZkzlspg]e\{Vpwgf]nib^p~hqcXnfzh]ihovtl{mrbdjWrdjv_gw|{kngumeYkloklxZvirbbhvghklny^krxazawkrl~pKt{juZjpppbcjdacaZtd|griomvlrs}_hjnrnvlx~v{ukdlhbhillrr`]|p`dqoibmbvUj{gb|ptpSkdod^wm~{ak\ypn}lt{ofrrfrzrZ~[mn`gmwNsztq^|egpzrz_edonuoqidyvcy|zjhlk{xkpflonnkp}r|nhiba}fmliswnqwwaq[qXTxminuvofZijjwrplyavhcfb[io{Skp\eurV]snok\qjzoa{kx|nmpssmniykkggsnqf~ilap]lcyxPqktckilamsgmolrcsljhckkv|}lnsdkgbn|tgVlpypbm\|tbv`M_yrgi|b^sgjvjub`wtuskoylnu{{xio^crpb^muigop|hkid|i|sk_jw`qcwbn^vxxfui_pXPpephpnWeg^_xr~iksujrntqw`iun}ugi`azamduakibvfgd]xvidwt}dioji[yo_gfxa{p`fiVgk~Zelweyutabbze[~pngeabos]fikmf`k\n~mmWhnxsteywvrog^~\zwjl{llllpel]vih|olSinuis{en{riyyspbvvoehri|nl|ufeqtuuqoeu}_a}mo|lymxeut}gRqpiZn\btrzubmeeaykvmwfqucaexgv}xqirtrpczqpum^kb^f_ghRboxufu_]tooP[nwgim[jw\Xk_mjgbjmmlm]n}muyx~vueweepub}ulp|w{fkmqh~nzjm~{lljom_ocx{vtZadrks``sgnrmkxYrafr{u}c~_gn~jsm^~vj~mNf{shfxvfbgk_plarqulm}tubihlruqixfew]grxunqk^q{lkdznc\x|dn[hmufpnuevquxxqekpqwmcnp_qvmrqirikfmdpue}nZqWty{\gz]mzxm}iai~`zWffmq}w]rkbw]pwuu\cm}mudzkiqh^ihwmQ]lyrnlensQr~x]w\keTxpe]xgfucuq_yu[iux:|uzkg~yjXwa{nn`qbQddx]tmgmYcYwtjisammymyhtcrcd}olYivin\um_bg`lbfmUl{exspxUoic`dhu}Oo}`tu[}Ysk{{lgVvsatbofdlm{b}g_pquhfaTIgtvmw`Xkcvs|~vbr_buZjm|xmvzshr{^l{`]^aKzqvzlWYrgsvW`zvhz\klqhmQhuwmwdu}tmkmynmottlwqiurfnfmzbasaoTeaqlxtiX_gtq]tngzknkduoadXkxoyyh|hnciwzgckh[cwo|K`Zmih`{hfqun}ye{xhmzgw{Z\tjxZYhdmci^h^snmIYmxtqfs_hw~triwg~tv}llSuqa_bjhel{ec~DaigXx{hvhfsgmo{]dywi~w|qhzwGsr}jhl_d|kbfukkpepvTiiqf^vnkwc{zdzWkntrtmv_vTmtbdnkmmqymje^r^lZx__nrmuXqdf[q_zsegq\unifzbkzn}zka{fq}cgp}l|qsmY\hxwmsrpslhdmq}hPwVdms^uky^~feq{ujqz|oq{zWvh{Tcfabemixk_}dzfZmc{vwqx[w\kVnmszcqvk{m}T{`Te|eggu`mcwnrvltz|TthuncjOufokzZptup`o`_{s~{ssvwamTZ`bml_hkodndOqScJ_ve}XkX[VJag[{ymxhj^u^hmrsgx^vtjZrx{kdYm}e]siS_ooZ{cUgpbvjlneijWbeR{obi}lwhxjbfoC~eLyhfjPmvjblzmf|uyWcQu}dw\cUuuzqopgqkhieldzwbdxVf_fjrrciiS]K{omtnvgn_url~sZl{rdKc|~ldcyvxh|[ikuydq~}a[u|u\nfosn\qqUqhhXa^iqlimoaeld^gbYgYllexwg|u|eOWngi]pqqr|If_WYewVXmuosspsza}jkeyteesjdo{olkmdfq`k]unp[`tXwiwzfj]\bfpmjldia`hhiqkrvxunl]etozgQavr}}x|bqZMt~hek\_vitowmiyn|icmcfodeev}x|foiwm[vWxjRhonza{Zhsvbpuvuy~vXtketyL{qxRkesogSr~ypbgxWu}ovWvot_f|Etr~m~f~rmmoqbwrbwy]i^pneeb~k{Ysesv~voioqwljuOuzm~pW{nfkJedvgcrs\vvkt{tzcfhur_phhfrf[tp|{{nhtnxbcmhnnli}a~mfvsqg\pip|qsjukdq`knsdi{Ujm\kjZ`f{llcoO_{gksnb|fncwosc_^S_e}^mt_}q|cmeudheqadtsZs`n]nkejvktqiloji{bhdggcq}t`_cdpfhgzfz~dth|ec]nlmhswuqeSiud\qlvll]jzywyfTnbnadsv`]o_z{zmovrbyO^gfuuRelmwtdf^rzksf\gtgo\g~tznvjw_jrek`|puyj`__vv\trewkedg_g}Zqyrgtipjzitjqnljzpv}mbtzblqtknrcybWv_]sjvbpie{puny[jjfhfpozqekqau\p^tqtZf[wYfZXh`pg|kuoflvh[keabtbtoglmkaidv\ahmqhkyvWfb_sfaq}dXzu~gj^h`gbesd}ggsps\u_\wsmceqatyoxqnp]\rkmenjbuull~mnkjxeoun|ilJczuqoY]nkq}qisplt]x`Wb_AvcnXgpcwibohwmsefpbjxfljsozlgkfqxvZlk`~wjnmRjhic^qGW^gqwaijklnqcm}al[dir\dhbhjc|_prakifphpf{qmsi_fiu`wRtexxeojnd~qddrgnvUlxtezlM}b}rd{_flctlpL^_g~sjzzZ{S{tezj``^vqwrfqgpeqc[_xjtdhzLlkolswcOzi~jn_iea{rw^VvkxjoqkcPdwb|S^llwRrZ]lugfdrspanoxqqmSrmeeljst|[mwynoxgppxjqgSPwgh`gzlunfxlemamqq^Xiunoknuqvvrpnhkykdimglq~l~bsrcYjhje{_Xvc|rlzn{hbb}{[m_ilz]motWjxr}qnhut`sryslseze{|q~kYdmSj|flws^xqwp_l{p|^qghhvzo~^koesin|Ufwxbpfwurjyat~qysfx[}pvssa{{uxpmccuhp~_f^k]wp}psbjk~rtj}S]hncZ\hixtnyglsVtva]sZy^fosv[o|aeuYo|^mpvzqUnplswse[Z~guvmoyw}q|eWa~u{vnm_~nhqizjktkksu|ztl_djwwoyprmyec}oZxbNqn~Ymgpnsq~hrqnq}_[gRnt}iaardpgmver}iof>g^sg}yfghtorqpToYofplq{mzfjxtnUxYwzb`csrrws}oqok}sdnsyc{]ntjtfuy_{tito|l~mbq|nottakXcoojdlhvbjro`bZujdbulblux}lSQoza[mx`qqdlcpqxr[[|kddoggbtn[onncqybZmw{iTlZrkstvgv][|mftvktcygyhrea_jaqsswduw[w|}guzjrlnh|_dsem}ii{j`{t~rv|`ctxmmBplidzl`p}]mxmbndbMmtmhWm|kRhijRqcmYqk[vhiniar`zswwkklvmuf{KzVyr{mems}g~atj`wg|]hrt{lgzguchZrnZxmqvabhohaeqnegnluV^ropftmgsrjhs\oc_bYyhVpla{nplsukrwf\ntkloqZ~w]\sdlkm}jqp`krfnqkV|hh^csdao[vmnl{cgNj]pjtylvhtjmYfcrpizucffbul_w`aa}dmWngb~o|xdbwv_ppkcwjce[]onshav`^xa]|qjqhomh|hrduzpkr~z_}x`sle}teUqkq_`tlgzhkutviudaexhhins^hv|Xlktjrp{mx~zpTpv^c\nh`gwx_`l^duwpymugbporwmuykyj{h]^mwrey]jeewzo~aqmzby`plicjUkogpfhzhcre}pPliYgph|kp{kjxqqsSxovtcpyw]x{fYriynqmwg]_cusfc[i`Potcpl|pnvq{bnlzydVf``hi\u^wbeZvh~k[smn_nilq~pcbu_dsgvucchaZqjr|s`kow_n_]nxmbKe`jzNmeco{fcrofXozgsrgnoplzck}lmt{ignm]pskgsuanrSuW^jwoZiwvcnevdypf]raqbwlfspho^wjmlzjaeurkect{jukN{]iodkcsehbgm}w^idn{``l^bx`zrydysewt~dp}|osfi\`wn\pq_m_~o^tksj[m|jpptebmw_hcle|lefua\kft`^nW{l}o}mv]Xbrkkfq|dxpaup_pjjy}vupzupjhx{pj~uumbsgpoqxnttovrvwulnm|rz^eo{{gzrrjblzmrpub^hsdk`zpprm_qj|`}soe_Wawsnw|rokilyuurlx_m~zhdr]hhf{chok{yluo~fq~ho]zpbeexnnjlnodmp\s_}y}|hlpohkq{hlsrl}ywnnne{us[ta~pg_l~uejkytfnjfj]po`jlovjfxunrasxjVoeqo{xpumyyjnhvcibvlypvk_imyncioaW~li^mtz`w_iVltuxnfxurcxqy^{`[tklj~n[}sponkupipqox]yjqmwrlmrb_s~uldcbosoro{i}sutqppstpqrdn}s|ilysyrnyuebk\ghn|gwxlp{jdeZnmknwbnwit_t|qkiymg^[`amzoqqwjorfp|t~frr_sbonccgpujqnoOvpnlccgspgQwwsfwiiw`ppkuwjhqopeoma\Vidywixajeeiivlfcuttakpujhxt~yqk{pztpoctonuxehullglvpwhysnnh[`sperm[gpgqiuegykqjkn{_oqylvu|qb{ltsibufqmpidjikm_ruivjmnzvplw}xzivam|ipsdpmfusvrmnrnzij{Uigunkthvwufu|rr]{bf^mirvprxams[tugyu^xn~Yr[v_i\wbt\jqswrpq~bw}xbocnMt[dsWlb~mwh}p|`p~qbxjXnegld`em`^|f{ujkmmwdzlorupjxogsmtrhqnw\gnmzbhcli`ctyynfc|bizVjf{ysehshwst~{uici`gX[Vtkhvvr\_dyge|fzckk[nrl`jvizdgfjZwtgju{vsjxsp^bfmch[]tkWuYn|pnjpn{dWmejobtx|bcnoz]mqwmirxqtnkljv|kiknaksaddsjoott|qbot`gflo~`cbxzajxikujs[ppwsfYiiiw`u[advnYr~^sdzgzcyd[|silxexzffsderwycoXUiqbdzX}so`sSypjbkoZunzdrjZfeile~}aZ]iZZfkmsrujqvttbnsc^buWkopjr^o\Wqcbpw}yyqXcV_PdfdKme[Y]a]`rgDreimKagcm\y~_eA^vi_NwyQha~_{XkTY_RopVpOqWoXxeanavtipx~zd\idbihstezfi{gphznbftgWuye{intj||fl_dUkTcdbwsl\`{[hiQngccylLtob{mtWfXwuxh_fomv_RWq`[uYyxmymO\n|{iz|Xixuvo`Ykkrd`u[Z`~lYonnvngusriCOmdsUZV^l{i`i\yUzgwxclX|PJhufiy`Uguf}_hufm~bphrfyZa]ZzoYymyYWrhYMqjXzakodrdhu~{olrimg}r{zXucidpvmspscduYnzmkltv{bfp[wi|]onptvqag|nmvqbolg`cgrqpcjsssm{ymtuofmywnpmijennUda_csop}j~\ff\wexrzh[qvputldvkxt|os_w[gewyfudxrtohghgkmn{tuytqwojonxh|ca[st_tk\_hijofshmw`rxf|Ylsdcoiujtegf^xjgxkk_po|k`i\pkdliljhqvzaytor\pclzhyltpulnmrlemnpc~[nqt|qphn\ooilrz{opt{Yzjhxyuecnos{|{[xfaUqhonvvwpotfsckdhIlasxyuiyhhnih|snwYadqYdwmiuwh`_zney}fhasudgey_u\WoQktv_a_k}djnd~dppVfpd}myxoosVsgmn{la}exfnoohktagkhjibXVqshtai}ppnurZsp]hzqclvt]aoftpubgzwxdkzhrf^slktc|u^|lyufkqkhodlRnm\sosz}x|hdjyrpdqt^cx`wSmpq|wrmsnVknlooY]wzi[rhp_mr\kwwgfaghhlhrgZpxlmw\jXszZvy|Yeuyc_pzghjfskasbyTTkhpzhkpg}`NdrwOhpuarnduh`yl_rjfavq]\tap|YUjjnct{hp_qt^VZkZdinnmhfyVUkbqixcqd~othbbpvyj]r||rht`mwbntdz}gjfivgj~up{pgqyjwwbf_na^rtqdqvvrQnxOqswdjifnrfxkf\n{]rdlsbuxfp|ses~tjgqaO`h[jdiPfnc]qydpciowVc{chfuwivWegvee_[hmg[BVbbnRetdjq|ycq\V|}pb|hp_{fMwlgiyfcdupnX]\nktmfdi|odwrifrk}su{ktpzkpngimq\whpa{]k_jnhtf_]hrl^aq|mjr|fcovshxmfa_rq[aioc\Qal^g~g\d\nsmpndsDd{UhfHemgWflYyp[abeiesrofjoerp~hwvCqRPuyv`W\wZn{oxx|ke`~mkk^flgq`r}fvrtm\usgo_k|~odt`^wgnZ[aqoxlYxh`_hXskwrprsgw|xoaemfgpX[ouwvoL^Nx`kZyte[\uif]c~u}nofn|md\xmyoWfXdfpokciid[xogH`ocvc\zmYhsbkc^~bvnjn[eqyz[u\g`plt[ctR{qj|hu|lshZjqnw`^{|_qfh`sVxe|[hxkxQts`xfxpNpoxmi|byzblvrV|rjfuy_fr`pkoXr}gcizev|W_ie}yxcmiT}jhf|t`fkjrrcyyuqnyi]h~l~o{uv^`XVz~ZGYgj]_qTr\owimngq_}mh[lgnokwzqohXtUrlnxyuch`_vodrr\h~jnshfluihZpjYdi~bkilvvcysooyh|xhhpnfbZjOanisfvdqnfpopiXir|wgcsquv^xqgwweukfuwck]h_ghmaspxejwmp`]jeqaZ`[^tiem|su`~ssexufh]Rgoc|zvazkcybdjijf^nehiZpofi^o`sqj^lpeqtjefrpzUenj~pc}mYfkvsZyp}}ofnmpxbrsfvbgqfcqyfngTo\bgmut{veybtn~o`shoqtqflfjpix[lrtqmno_bbgue{n{jn}lx\eexx~[chr}|gpc^ayyh{eVid|_{ujqigm|suJad~efeqqscwmtjXl}_ewtihkidy|r\qnqla\]ai_n[ot_kicjiZpyflgkdmczckhmhfv`aio{u_Vddkc`k^epvy{lxWagl[eg~asgbtpec^mVcjjie]eplyymmp`bSgzftpqrw]hsvaVTtZh^KnueV`sp}]x~cuuylw^rjfru|jqphm]`sbhZ_}o`~qObkro[o]n{ertp_}gZ\vo_Po[i}[xqoinayckXbkzbitfcb`QW|cTqhkvWdh{a[b[sr}`khT^hru__tev~h_}ig|wxfobcoogin:hcgjeg~uiayaaxvsYb`{t]qmtfobbjns|n\nthihgsgxjqtbvavgwfp\jctIe|toyyp~shikbulhrf^f{v}`t`lw_Ykb]lmhy~yzr}im`klgmzs_xchrfqqvsTnriqujkh[phs[snhflfl[uh{umtoV^o}gwsd}pTxwX[Xhwop\ikvnas`|nj]as}lYfk\l^mZimpejfcm|lryjRsu\k}nrdc]f^f~wy~wq}jlgaqurvr|cz`aswtlq]tus\~}ohs`ZujnOspe[ipken{znqon}vnre_rtnayuzsp{u^Zgsczd}b\hqm`kwn|`riaw~iinztk{pdhtpholemyixzXl|dx`fw^iihqeml^g}pkwpuvxjouqkbe]cxtykntajd{Yvbch~pdxorjygq^zp`\afo]zsZziljzhbie[epmdfbosxqn_ldZoomebg_`Ygg}}cn}a[mTjmlujz]rdos^kZ~w\[qqo`z{tiX`Wssrhictv[mnqsvozryssjmt[{Xninyeef}jQySwssxwckljfyvrmWTm{g|syqikbqgfir^i_q\gunxZeZh{~tqfnwkcazwwl^t_o}s_deyfZ\dlgoq_ubd}p[wg}cnx}i~mp|xur|c}k^r[uW\]`nXbnovwtqehxYfegenv[cdr]YZoramdclwaxwXkeenjXjT}{ngUoowgz_krXcsk`kcbaf[cydf]iq^jYxkn{g`Sy]Vgwcxs^{~kb^wioyvpbuoag|onjo^jgw`wZprwrcrbiiracSiir{jejpkhe}diq`ayql_xtcgx^ae~geu`ajked\gobqT_[Qe\{rih}vqxdx{hvZt}iYk\\xiqsch~gZgwtq~sp{orurwhgxwlpt`mduwh\ywvgdVqNm_mVUg|Sphsmcvxi~psxswdowhigpeclrsrnxyz^cPoc^q[olgr{}lnniunrnmvgh^sif|Ohx~leY|cb|syxyYXk{ynwdndc`\bhxdYgpuz]_vO|gwWgx^rjrw}dkWfym_n`D}srkowwZfr{axkqfbuxwoxvt|gRicPlhhoq}wotmfnx}p_{aergwt}j[nzbzjx|sq{ergnqVY|gct|dagdyfknmveivbrfcqeYolhmurXx]|^Ztieug\ptf|tkt|ncuowesqnjdhrVdqmdhli~lblh~{{j_f]liiw{fslwiskq_hjZe~fxhpgnUcp]gkgtV}{zp[zhxqehvbzgZT~j_qz\gjn`{jp`ai]ollwviqwk^zknx`umqkd]dmrfYuhpqc`n^ljthvkdpz^cqocXncapyqWyokmw|qjudlagarhmqniwckxigjdj]lf^vgt[thp}s[Yihqiubq}hhipnnr{rbwmjvseoddp_pjprpl^}dbby}c[vZoenqmbyut^\nwmg{y^bnue~]vi}upswm|jdji`h}ho_lnlhsphyyqxhpprcqZs`b~o{Ztfzl~zkzcwjiZkoqvdcmzmhrr^mwu~ipUjgpqjnrrxk}oftzx[~lvgqra\^lnq`fzXlkiebwdwzvqsV_|lyfzfxczdcxz_nbuigd[`en{wemy}z}riimq[irl]qxhykofa}vy_sx{ddUqzn{|jlrs_vwxti_`df|mWZLcfgbzlbcxq]zxf]}eccyyrmkuxp|hq^pxh|iXuzwcjnspcnX_]z}gktmbovgfsugyhjzu\uuVi}fj}nlhggyxnZk~Zcs`^pudm~hm_qUUZhWyqiyiyieXiTiegi|{jWyps^vrdD[`}xte~zrt{ctvTdat}uvMn~llntYwvjcqsihcfo|[oflnsfp{gmbtaixyiqj||a}h_hphV}vnah_wrqpquY_ZiZ_sa[glH`jo^uriWXorWdoqpbmcth|ZenbjnM]jqtecjoyxwbycu^zw^UsjsumlkW[{pn[uicrTvqoSssuk|vpgyokjaT[]dg^`vr]u`Xk^[^Xmionvsl~p_lurv\ss`o^ux]ttkqi_p]zdtfcdqegcxfpjmbt[V`kv{j_`tmrgxdueiof_plalghziozpkkaqcecu}bys_jplKdlojlnm`n_[|q{hna`m|xyvrcswcrqxfiVwve}wckdrpgfiqxc]t_[qyedr]rvlg]^y{fjhiptbffdro[qrwnk}_urjdlko\blkfhzg]ohpd{nri\hvho{tqo~v|pykuvpqrfojs~`qjnc}jrrkxsh^qkdgwVqslv]oelrqrlhxft`kamttdaj{c^~xwcf{fnaor^i{ee|v|^fbjgjkxdqnsg`k|]sp`nhbnfn{gflri|dy^kw\dsbbz`dxk_jtTjqu`cnwmyqmktj{owrwb{itqkdownkryaksloqhpxjtvv|s~Ztowwxcun{c[p`oskjnhjQghgfwgrhyqZcdge`rjSdj[pk[g}zwq|ieOfuoePxjr]avmheev{yKQWmfvr|vqky{wo[xmxcsqasipnephi^l|xtkPxhfdZ[_enudacqri}rwmU{hdh{hhQsyip[[viomnuhy[qtl}U]cgrt~h\ukuZiWvr\rbptpW[bptyilaiR|gmxwdpu|nl\S{n^Ket\dyan|f~wsumoujl{{livwqek~gj`mfj`nwowr`TsyaqlmjY{vpbjoq~p]shnki}mXt|wrhbWoltnleX]skeogepQuwhujabmjxQdgejrsYzq{sbafvchodksy[gmqfnbsz`ThX[q`gets|lkogbsynmwv~vpdpbpblcnp^}`xemaryizvj`Ok`knkt}Xvrtnbqmyg_ltzok{xpcfmpbkgtyhdxikbnp\iozinjrrc|jnm~nWyivlnskwyotjejxas_tgfkmp{pgunyuk{fsmjvvkq`qwoj~jqxmfWvp{j~dm]mvty~ygrq[tsvwQfmkgkxh{|sctkpr|jZmucolnmpqgsv_uekrr[`c_fkn~ru{eulhim~qgmiYz^Rd`P{oR[_az]~qnufoejXcfr`t]~mlnwsfp~xmTp|kZczxp]cs~nfyj|kg|`c_bqzvnXena|`iwjimyifmsjfYekht}oerojwhy~vtokjz~`g_mma]ep_tmcrgmmoureXkxl_qf`ejdgcmmWtrk`rliXztgyotps]sm`oo`dabcfkcxZqXvuYVwnahtcWlvlTh]}jhi]x_yiphwkh[blbUXd`szZig}gSfdyeSlixf|pqqgx~iQcmWUrcmthczsrjytkn\qq`zzof}Vqd}NvMj}gpuik~]asXydvfoYfiep[b~|m{dqnkulosqiynektwLbmm|abMviuojrhamtlwt}r`gWpqTj}cevzlplkZnehSr{yjukisjiisdmhgeconiyr}vfeojk~usw`uh~\ffwqn[ivUtosDswzmnZzotccyb}`n_ikrpW}rYpgvzfe{fvJ|tsxongczdrpne^jg~noqbqqwplqjsblq{^sq^nSYf_fofr{siqgd~h|er_hq|`lehjZh{tb|it`bwsxmjcy|xqrQq]tsitfrnhmYqvpqf[pts_tcbp}kcePt{emlcfd|xgu~df`xrff}mcohhcngdipx{hnh~q`qOhvdaWs|umpyvzqo_xcwzsxt{`oxdq^so[pjYqmjt[thjeostiltg~}botkrddjf^qrfuvgiehfgul]|zXgpcgtuj_pp[yk]uhv{nokhctsk{inttuzxs|nvftjta\juY[]jssefdq\vgo{gdriZkzjyksvsnm\sp`nspwswgxbkzijymgn}khgqxbyq^esdgb{xqcYv{TjUcftSbtjdq{cxotriui}cfuiNxvyvuU~vv`muf{dnipnfPikWh|zvxT^rfdjmg}ncqV~ogmkh}\blemw`w]tnpb|x{ocx[a[mjddnhngcuXa|`hemtXj|urbZhkochgzxdcsuljfwuxxskmqwciqsqk{fikemoyp|ij`]dcjrtnWmik{vkkg\aiclrgngbemqvjviksrntcnpUnldoXjji}QXsyvhd|ynlujfv|lxm]o}Uiedoumutlx{iki[ar{jpw^cezZmtw{Ong{kie^`o|um\`iidrYuj{zynsdYlj|ghm~pgqpy~W{Wswl{pikinnp_pewxxTuexas\tfognyku^uimcttnwmo]i{nmthp~g}~rgZcotqVtidfVgycudTvlr}kokm}pxlpdkk}Tdyruh~kfpZ`dnmctagtwTukighw|`tlof|qo{hjvrllg[io~smYl[vyo|yxneY^zxdqgaqlrrvk_mTo^\~vt_qlbmi{xp|^dnzy{dhoii\snlp|pwnilrxt_ei\zuli^xoutsT[gkxljh{n]Zd_|Uik{wgkiPdmfguutjjnwim|\azwgskp\{jipuj~kq|ydkiqyl|uquVygmuo}smsmrqp^saw]hpuvqp_pgwpiyjndxojbosmZo]hokmq}kd{uY{uhh[ktgvzvuwtqu`timuzs|jEdmvckXuhfnZaotufoogebxulwvnaimsg_lx]rrt}swapwo}qhgxwkcovLj{|XmijvnerryzVe`kms|irvWn[lofp{g\}lhtumppnpm=uqodyi{_we_wtlXmvtwskectun{vatbjy|scq}gnghq{qbw}nd^|xkmj~Zetkgymky}imqj`xrjmmZr{sb{dnzsequv|UqhyqwdvoX]qtlkrdb}joho^cst~}nmmy{jvqfpgyuqlvyfugb\^s`mkf{vpdiyjwjoeTftwyepkjzpimhvmx~rhihj|wdl\znnxiqamc\k[njsdwagilydzxzrworbov]l^ehsiphZkc}jcpldwop~]`p^f~hdyntjapdcpvTyvx{guS^ismqifx|gkqmhtiggrxhyf}nyg|axrZrbpj|ezuqjvnbkfbutshitquvvvhdrohbpvuzfpjguUwmtsbfjXjmkpfo`ry~xs_]jlkd}GbVmj]fnat{}jifOrxcw|swjqUp^{]}gofqvjj`rod]`mj\wptongjjn^\s_}ksuhl[imkylogcf_hyquO|{mkrfy|daYbpgs~`lgtUnoowjg~ih[gun|}si[ofj[s{ablvjxm\oonhfltpx_cojtb{u]{wpnajmztqymgaupuifpbrsqmlnfh]piltpwtmlwthn_sgtfik`mzphqrps_px}s]btw`zjkujonn\cfwkyTkn]nhz}w}yeeskgqoxsx{ogwprkclqiiipbrtw}kqnpfp~kyxfom|debukgzovoguy{xSq^le~{m{_emufsty{iujzyblyrga`acprl`ybclgrrzc]cugrssthlkkonq|qimyy^qp`vtofn_kdroivrvnutkvdpitfgdu[i|hpllW~f|xvsjkkjzpkedh[jldblw~nrh|S]rqk}pbrbipvkobsYikjg{`g[o}ruvtggy{db{rofapvgp{jr{rynqtxpmakv`xcwqrcjgdusZZkoql~rep|uq}amiac\mnvnpwpf]QThwfonrnzvqy]zl\}pv}`_ebMsdm|swp^hu[d}s_|ylwzg`s[vv]wu`}xn_wh|wempksiril}ktl}cyeqbi`wkyrn]]jSziSpxXqzaerngnppR|tbZkp\qpnZrr^gpfsv|lfuclnuyudiyz`Kntq{hmHf}mbbZsorOqc`xjfyh[sfwbS|npf{ervmyzesijtqVrda{ocabouvmccitA{{y|ujn^kvdgodyUea|vm|rfjyxutbvscp^^ui{emtww]yqkFj`jud|hdokc|rw\_oektreTrvnduwg|z{ddx\uybuP]Ab^n]dvvhi^xuxzvel[mxsvrj`jb{Wcyf{ihqwswlpqzchhghjSom_gitt^TfLfXezlbuqei}tjuyjaskpy{jo~t|kqrZietuvbtuhdezuhnup]|r}|bzsl]lXrltbtarhVnjublq~]zjfyqx\orphxi{Yxvzsxbw|wni_d[bVh]fui\pjFrxzlZdqlzkxab{myfPfq{Ohwvqfly~ugn}pgdgu|krwkZvvtlhvhwwg[yocrnnvzyp`uhj`\nol^kWxlfpkoxZhxW\sgijzh_beq}ggunzryae_xtelsvt|^Xhniyiyohpr^sjyrb`lp`{pmdeqlmxatyfrls~eenwoyjd`hqy`c_rof~{e|Zqsosjqk`ytfrmaiurjixvqomfkewqynktqjqrwgkyzmtqy`box{lgjhq{qSsambqfouxhlRgktsxprwoqynanpkjxllsashi]srwrw^pfelw|}ptxqi{pzqupmwyr}omyv{x}sp^l`y|lqjsbtwbqo}s}lrgsncquqn__jy}}qphqk{}`fxtonm_xpspykttfskyofttd^jofwxdze|mjbm|smvipkhZbk~drppqb`oseaZmcp|_uswe|owmvewyrstetgqomnpclk}hYTefkr~mtvr}qrlhazoyigensn^vidZmqqo{{RW[dwa|\zdV`gflnWnuk{e^Pabujwexoz{wiuih{{wVs{xYgsq|gyrrWyp{Wfv]vwlgZwrkd_xflsegVffcag{e`p\urjl^sqh|_Xo_kc^l_}nkqo`piuaQhiXbP_Vlv]osShVxcr\slTvsokw^tmX\dYducvn^WhbXxniel_q^gvq`z`ghZvueiYqk~rmgkj_mQUhkj`Yvgrn^hc`wmb}waishh`tnoqqvqwqfZkh}XWfivqq`y]jl^uxdmtvRreWi^lpvovkaeuuifbnwhX`c_rsdusoavvyxhllcaxd]_fixt|bv{~t~[cjpjY`}XdtwzYlXVwt[NyoxsyymbnPsdl]diyuidvb~UV~l_r\aZut^lhkrvrtuqaac]^mepvpmvnhuhvuqlezfu_wyysvhfhVflqfct}_krkl`]z~\Pi_\{vbon][fm[gptv|r\hor{jmkzZ]idf[nzt}b}}hydvxrZq_k{ftnefq\dcnwaaw~^bgpnrkznpW|]bkTfkshqbo_vy~ZavnXhlomlSsdntcmyu_W~sSlcYgq_zwmh~omXafhwdszogrw|r~yoiyca_`zqpvG]ioxrtwmbklfkhxbheoxkpSbgzpmkpox|]sPrlfVZ`[kurc`wd[nPzcsuoqooe^k`ajqr`\eZdjgrVkes]vl[i[wrZ{lomml]vqZ~v`oYhmwm~lc~ufzumziha{slbjd~ge`_lnPuoloik}kvlcvbgn|z}mdkxqefnuujkke~pxa|hyaXapvqulpyogYwpr[h~_syhqfcp]bntidmq^Tenrssmypwlc{jgqwfvjZabkiyeqycoysisqnR}hkysfkbwl^gwotnslg~^jfwtWaXOzsnl]`ikr{l^pctiwhjsdlqfy[Styfjzj{`vriZq~_]nk~zccmqvebuf}rwrdjlpfucqiTxokb~dhxbzsqwqhu\~`[Urlkvqvhm[i|J}lfonhobiZUR`hmmfuylrjgxnpnvlldbxu]i~ah[prm^u~oqmxhiykctymt}udyxakadftmr_wbcmkt~|lqer{~o}cj{s]|[td}yendmjkxmla`|`ntl{r[qruawnoq\kup{{\en^h`kpwmtnblx|f}uwd~_ifjnpkymayzpxi`lffggfZklhs^sjnqn~hcq|vxhvihh``zuYrwfplpScfrvyqnist|gj]~\kdhjzdwszpqpi~jgewf^}b{qcoXip\lim{pu^eo[drpt~u`{qug}iffhcmgxpwn{mze}cxcqbhSh~eXeqlcs}vxjap\s]bdp^e[~ueirspmXr~[wkfn`ln[hjnocyos]kZqrr[ts_T~^|h`i{llmPfzs\emieNmgxt_iUzwxaadtzfenvvvqa[ountZgwyvsxptpn}s\gqq_rp}fQ\rao{a\dvjbjof~ldnmrlolvNoar{^{rmvwn|mcsh[}|^aistt|ppi^qlkq^ZdP}UXzzEiizwjvorjn~greyg_ms\~imcpw`uktpqnXuhTi[sfmghhemYcevxd]meQsopoq?HXnucncw]rcdw{qp`dqN[ZwrLiuKdidbVbkbpsn[^sax`o]xhkgo]Tadir`ounslhzodgyVsqytpycmyqqwxaWml\Xbuctzxssyv|xlkbg}|ovkyhpOtnnyYikzjva|c[eizxecq[Ojgo`nsk~rwabi}dfvrYu[hxy{ntgmqnhjW_rkput}_[fyetm_pgrjzyms]zy}}sbrbzybf^rwZ|}{pf[qkpi`ihZ}fh|oh]pn\pqvp{k[q}knqkkZlixhjnp{lzsprwuZmncstkcr`pyt{`kj{hdlgg^sfqptsPvdljzrd`ad|{p^\mo_g]Ywwmcso\oapkh[xsjWqjj\xewuYdojvjrp|fos`h}Npok}hbwqZrwYcvfnuZ]iqafqlz^mcqheomzuzpgk{c|{o_ppbokhjk]lOx{`u|kfjgaimfgbdSiwp|uft}^cuychq~i{rmplhvhcimXnf[{{`lljju_|wzhzeizpsjoqnswmouubrmbqcqp\u{mxpfwSalns^ptfkvyyw|_gtlk}pUucMjelk_mz~wYpr\i^Eknjr}Z{tkKlmhi|`irwchp]O`~~kousjjr~isUmljjbvin{}\djuUfjlznxs}`hucqejly\\su^wYMgol`kf~Xn_tiZgbuyh^pTqy~uitdihmcfY}j__cmfd_jozvgyif|iurzloljrwewqcwj{stdfgpeqv~ec]v][zfpmgrduzgnt~eht[peR_mlynW_n~jlafxjzos[cjlmwpuftoelfvf^{|lozbpgyeklvlyyjs~rfnlrPo_~tp_xcRlbyp~|xxqupMxwy]lljyi_oijy[ui]xzWdorislemib{kvaspunzm_tvvm{bwoZcsU[cipxQeynukard{k_o{er`i^kiwkqm`ibvvYisukhqjkhjgtgkx^``rgn`iokynniYjez|dmttwuuozvXnj}df}doxogdh_htm\v]qcwk^lidlY]kplk`_Wjngiouqvnquldy[o|fwngkMhrikkjcbfnkh[}u}vqqi^v~vt~z^bjpuxlupkVamrvhdrtgtz]v_q]Tzuwy{u\`jYb\^`bNaaY_i\kodohb[txZq_R\o~srs[}jm[wi`j]clh]c`h\uvwqbrhhqploguuZg^wqgYzvb\w[gfpxriqOa{twzaYpxcjp^ijq~|ehdoelpmiarkt]^fulezoTmvp`prgvf]j~bVXPhkmkcigwfXo]}mdomezXlxve|a}bt~wmomldephvh`rYws\jpSf_hjk]{swQNwgnlp_Yjmzwy]phYtcWRQiqwcvfmz`h]k\{|vqxevqYja~i\kgXvYlcs`wbyVzmmvopiqr{sixmgpvyeugkdzoahvdwyhepxpeYpfo`mtnwzudklf\mq_^~qkqWYToj|ks{jRkgigssur]tPQnWaaxgpsumule`kQxmytgqiylhnoqqhjZkpqzap]z]jlcfx|_tvyWllana{snYvr^mrY`uomgsauoyaxoWab}~pzcoehzifref|ltfsUvig_n|dhpYMddixihbd^{lOle]c[fqs_]r|j{xjujOfisatjs_jdfhZszwd[mepiUkgss`dyjjios}j]jo}j}cjlzggdxvzo]|zcjvu]d`x`r|dugdxqlr}_dp_klksvq|l[j~ijnhy\zkhZsqjxqkodoncytz~}[yl^|rqbdfvtahz\d}cq`gU^kfpXaoyfawqg{bjsei_wbdGyqlitgrzorsg^S\aXn]fhssynqmf{iydrXvw`bxqnof^_tkpikoff`igbxWcNf^ummq~rafy^nujrvblkot{x~jm{csvfqSUzoxdzzy_yldphc`Oer^w`zge~se`ihuaa_aohkkspra[w\ueRpynfq|yd{vYyzfqpnfilrqgbi\tfZ]fbrtWYhsxvsim{sn^x}eicstdq}usljbmnmc}slst}UMyrhj{`~_mbm^z~kmWhyklydqrsqhnexlcsxchtpgnbTuZmsc~]pb^xlw\kiopklbvmkjf}{hfbws[eXlv{zwngYv`if_ptfkmOzjkmw|vgY_eQr^gqa~hegsmgvf|mvT\wgYpnaqz\`rfhezkmwSYwvyMWw{u\bcvhZfkdsj^lmwuwfjuwol`lkkcppg{sq~rrxm^{{tTiybhs~Jbkwj`hnoi`v|a_uZsZ]cjk\Yxploq^Wmesogkz|^Tm`quk_gRhnwljRpbmmc]}\txsipz_\uhe~^j`nVlh_[amlWl~lbZ\fXyikUfqUlepeqj|_^hcqdjjqnwlV]cUma_xzbWynto^d|bhvptfOrn]joteh[mutsfnyrV\kxhm^zxqzc{_pvzwnni^euaUwRWspymTYwOMgqlubq{s~jaJgqiuZh|mwimsu[{wwXdoyamjkiahUkWg~ixg`xdZZ_Plf`cTiR\kfk{{borhxal}tVdztlpiqmjugh[XkaswngK\hlpc}ncpufgrxodstqbqbo`jplajjjykec[nlzjftdY[]\bjmoxuxwjzfnxfj`qghmsgxXqhtycdZgrXcapticra`zexSpgrW[tupybsoh~{k[poezqwgz}l_p~xafbrkqhr|_{wkngebsjfhj}si^dhfqn`unkpc]ld`vvcdtmu^psltjw|Ztabb]utwp~j{rp~kub\r`hwlwiowpjvb^rUmhjrlsjwxnkod\byo`xgf|]fl]y]zi\~rre^ypmpklkc`tbkvz`rlzcundx`}]unhjml|wazd`qmlo~iviy[rqfsunre~n~tjc]xysev\vlw|^l^^}zvlyv[bdoijd{~[hh`kttaSm]hboakugn{vbnwf~pt^`vfZolZ]~y\pemgy~bes^k[x_xsl`liwsk{cvyzhp}[Of|`xjztqpwdptowwx[sxn}qpkv{s_pkcbqjqk^nngsvlkUqieuwXkjvcneu^}l|lherottvb\rvqVqroc@y{n`crkk{xpv`sk[asqp|yUgcomymz[xpmw|{vvgsmaqxmqbjWfgzekx|ijpnsv{ib}vkkyhzsmresen_Qfejz|Yedf{uzokfffsul`]g~jtxloemqpyn|i\~dq]cvntkqyvfwj_xg`edprfkbxtdsnnqeexXe_snpmkcbpcl~siivRj\ljjinuokekp[meoxg\ryxTXwkv`YbXXa^rfo||cxdyWrm{bkpykrwlglzlljdf]edolsnjuTofiipzoowopp}]p}d}Qssk_o`ippz]trRiqvxyyinjrz|gygtnfgrtfiuycpv~joo{l]urpvklXtggtq_sioVoiugp_iomhj`flabosuto[rhqsdknyTdnluv]bnzmuvpdrpk~u{gnip[xkuhspxqatwtuzpolax~oulowx~}{^dnefweighWtht~~nlcvwq^wsjniwd{qmq_kYwrhiqyeTxvikvsr\~[hpufaoqyhiefrnupf]^utXlNnioXrsiepelmcpgkxhsVclnfz{cvrwtlyejZnU~hw|ocZT]XrfhzXwxilvuVbc`jc`gzvqi\eZvy}oodovZoZlajahjjkgnRciytgiwlZ`wfcRl{|tObjElpSwhhlgclcuzvtzrigvqrjm}s~ltQi]\WlOefrUkbq~~kcba{xuzagssxpZqSsZl[hggunnxtZxaQjYzxge{frgjTv{zmfnvmesldj~lz`{}twWojyn]sTknnxgs|gomfd|seuualRpdindesvZlmxpbzafodxumqourn`i_bZhsco^tgetfebpeaewjlrcn~yNdwmcp|p|oudjx~svwmfwehWmrocugsj|ogsmqw^gpylqvfoimz\whhr{ssdkfbc[mh\oogkfnwcozjoqxbpbpdxc{o|lf{pkZdunjZiXmmJ]vx]vmduhtc|nymegt[YWq~j_slyhcsftrj`paYfn_xok}xb\qebtoXZ~uzlbofcugmpeky_kp`~rcp\hi^f`mxecrenwxjntal`d_ikrhZhQgV\l_yknorrrtzY{avx^oj`wlfo[aq\Yijghozw\}iZ{fg{zm]hljjYl|n[ku\zofhjqnbopc{zsnulb}|gt`fgwtugh`w{QlXpgnu]zwrffrlpk{weesyyvn_xkjyrbxq|ug`rYmkWlkxen`kruliUkkggjftirhuj|h~hpg^w~jgcf^^mn}r_j]xtwhknfjemerjrled~jb`ojxjhrr}bchnwthivrolm]oa{voo][sb`XszyvY{^sktrmoarlnxu_otzrgbzaorh\yTc^Hiokmhijyza_nd_YsemprbcWe]nlUl`uaswvsgWzost_dapg{wtkm{|k\qlrqralupup`f]j~|hwsog`xq^qi{oXjvjYk^}rcpzsUYuig{zrqn{|m~mzt`fuXtcozfadakjvrvfkf^t]uynw||Zcqxs_eivno{e}nawkruz|olq\iX}~opfmVocj~{sm\uakwnrYzqV`V^dpgmQftrvlw~g{XhZdmsvyiujX{pv~qwb\kyhkkvypqpsghoZnagno_chnSmvy^motyyevotWrlsrtunfgm\|lcfgqornvnUnqwevh^lys_wd}n{^^u}zmUVtxirmsh|ah_h]npg~pufbXjc|hwmj_lfskp|oy\cqb~nuuhe`yrwkjpdugyg}pkylpmv|rUjlnsolbgg}dbTbph[ixsprhb[cmwuk`}dprepvgksp]`||hgxyq~kZ]zfadjcs|rq|wliebuhu\twogulh]if|_Xusihd}bolYnl{_gspFzxp`lzi{pTfveoto|`ipiXodxsegy^~tVk~M\`x}dKnkja}tXeqvlsb\o|zs^jnjy~WOlnpjc|h]rmsgqev\l`c_qyzlpp_b^UefafklSYkuc`RxzxiilqQcoteZW~~^pntxnq_ahlt`lveVnqtuowhzlo`ldfPYteSkfoaUcbnazo|wzjpfveaylk|ogbkd|~\n\foVqcfloecrrdlldZ~orj\x``iiopln{r]|selUko]iyauWalndcli|g}o[fmfmnbslhryuqctkw]h_vyXamkLtqf{fcgmjpqq\akcv`gl_okwg{o^ot|]kj]YkOp|c_|mtigoith{}fzglgka_bkkj[iggn|uybjtulh\aqob^letuh^myhtpXpvo_t|m]neeivoinoYrgdV~rcTihklyil]hmhqegYi|bpUkfsmu~~`|tjczurlcdo`ife_fsfvsoiusdoyZn\wsWvLjs]|ogzrdygu[kt`sfftvd|g\lzpM`zWl]ltnz}n[hitkxhp]{tpxv_f[fkv~mZyzngufzsekr}beyj{}ik|qYapepaYydg^{amgoXprofYej\~jf^qjXynwzzeokufsavXghrcdkhb{lxxwmgnd~zyb`Yknsemmt{Ywy`pinlh`Znqmdh`uc}mvqmmfy]{douqml`zbUfd|szd^Ze]ulnf]Pk|ztcKvqsquhv`s|sW]nkppYor{aik|k|{`ajckpgho_xr~ZVr|\xTc]uamhLvslad[e|a[kogVfinWfbwy{wxtXfc|mvlQY{`{|jalwbqqm_ouluxgyUlojc`kwxm~s\gBxhlsqfgzgmy`XZqqi}q|^ZZgftdwmkx]rhtbqwamY]lbd`svogfyulqdqtggV\lxgt[hOh`e^sbTjvlorkb_yr^m{l_hu\hpnnajdpufiwuwrgjwrkg{mnqmpyjtu^x[jp[tlTcleqaftYjGsopjv_rkcuqroul|WwirswZluywjgm`tb~l]xz[omJtnmt{XqSt_ronmpaWpfvYso][nh]alevwebm{ye|\pYwyd_xhaxoyuuzfiapopzoogthclfYnh{Vk_Qfe`lmV\\poffvv\tl}FQpcic\~vqo~cqvhffudt^rcqwfekekj_f_pqlwilbYole|cunh|~ypes]yzxbrajueyzt{orpZmsmjcklvib_yhvjdpni`d[au[dtkro_vwsdqmejjoj`vkQ~nnVjo[qzkm`\ms`ohqighsnb{slky~bVwhvtne^|fe[hxa[`k~xPsiu~jb_eu^p|hyjowxqW~iiVw^[fZ}zeqvuhlfpphkatqmiZ]hpeqgrcZfvpfih{tukZvpjcbqoezkl`gxnqqwidmsNopeWq\smrYQnm]snlrqsrzonjuzYlsepk^ttltcpmgcmohncdfW|scvihgsrfdwpycY|i^tjxuwmtedcn`lzevpbrcemzpukcs]uXur]Xz\zjiitbfbix{iRkr[eozbmryvpv]nr|_|aoiVf~vbsow~plopuhwTwe}oypurgsnliruamMflwofsrxmzmwufdjcoW`ouk^zjxmkk{zohosbknd[ji}^~mn|pyzv}Vgute|pfesanhn|SxUs^dj]nef_xadhwoYprrhy{lknorzasT{sg}pr_gtjfqeweWjkn_w_zvknnx{jx|yiob}lkl^pftiri}aanxujpkVhje|qohzjqhpnnlnhukkpfbciq~sTnsikilsltjmt[uc`rdwubhrvql`s|blho|i{sc|frc{tqkpsjsol`qr~qgsureucpuk]l|lta}rm{{uy~hcy`uuulcpho{um{ymxf~t}krwdgnwwp]yoix^Tnolu}lg~qzm^lgfsrtbzvqchYhfqryejaxk_srdqw}eure]vffhxnk]okgynxqpgp}ejfbaxavesynrffmchuiflhovyzpvuspobctYnkh]tssPv|iaOimnrnnnqqt{koypplkrlqqrZZqxu|dpsshwfmyOh\eggeyb_zocxkw_js_}ezthhplRoRb{ToXg^ldtpnu~pIejrd``mjng^omswumWbdxrvnlZi{`a|SxwcnJsgq^ybq[w|dfszjfjp|j_qqmyclhlzqdfe~c]ked~`pzivh{q`w\jkynch^ugyqyYxkpZpdcfV`j}fehxRhjemo]uekdl~m`}]mutv`vksokepofyii]mxkzfplrn_kmrjt`ikogdgwyNcg[wumgw\HaoWKnqssenl`z^m{_Klbbd{ak}hmgul[Yngii`en{lb\mnylf`SrjxiRp__arfoqref]UvvflhsosrTtyz_Usg^eoyrnxt`pn{}cRl_`hndgflozmozory{{dm^o}h}f_uxdpjt\]XpYaoi{auhqwhv}aljelvpsuir{Rixavzvfrpoxvq}`q|{edXcczaiwfpnfglgiekx[uroRfY{n`\oroPl]Sdl`czmfolsws{dp|zrwseqp}tqibkkkXmn}i]mQcofYf|t[xr`k^psxvvzwqyfxtdqqtQegi~ciXihu\ohga`omf{mqqnicqpnyuxp{ntv~lflgZ~XrlqptuuoWszupcrprhstky|nbdviwwsb[^|]wxxxghvbirurlrxiYrfbxrccjhgrjYruua|j\|pdvbeyf_oVplqlwuo{qhcedmvnWu_|hcez|vl`rwnmz}fcpmhsStge]evzyvWsshtfsmzm_d|jixt_afry[}s_unwr\V^h]^wo]rXe\_uyZxujgweqZjstrh{qn_t|ezx_jqif[volesenppjkuetZnembPqep`iiobrZn~un_`ckqtinb]`ddt}n}jfglcjwbz\oxk`hbwpgtc`ltsfsx{]glxUhkmY}`w~tnlj{n^_{lx\Z~dpwr`nyjm]qqsamrb\nd~k_baWtmZq|wgqq\lsl}nZlPgqaxrlkewpxufpjyRpF`kXh^qrYvrvZlju\_gb{jRrnzdl^tk|rb]ntkjaomkqah}gceld~zqmq]uoeguk^mctaussqd|wZ|{`_fwyybVpp_[mYft{qu^yd_phejktqk]xlaenmmyqllyyfbjck_pwj[fqhmim\sjoojsnqV{eemrab^mqr}`^ycpptnsmoizlfp{riystqqfiiv^ntty~vweomfn|pdakz^o|fxgpkfdluZlz|\qruouajjmfuayfbasgtq~lhndbqeR[yqdkp^gYjr_brh{drrvpvihmljrat^wigfjim[q_hrs_nmbq}az[rr{qoruUyvswswxjzdtxirn`l`kpr[znlep\v{f~dL`rnz`lk}qsXaouriudcfgbYkn[g_ii~vp|kqtfam_iVvhu|bkcy~u``pa{k[jum}ayccrbwQoXo]kybiXfsq}dvdxlfbj~tew]^ceuefvjhalmvil{abdreepd}hmfejXjwif^hrlbjdng[llsft|[|ztiznjkqwZpzco_hbijtjWyq~lYpdQp{_Vspwik`rf_i]~dmkWgtWtaOneQy{k]ql]emctrlxqfpwjoeuir[su]`llpm~_Wwn~vFlncq_dataziyrnrnrhwcgv]o~~rR_Pb[kd|gglv{oio_ouxmmtqrdzun[w`NWokYrvnvWvqfwpevZiq`jhkk`ZrlacqiguojqwewpN}vc\seqlota[tfgvsjX[mgnlZ{dbxkkqqTckV~umgdxqrgqltmUgiiYfs`zlbmhlP}pzvwqojx^gx]apgY{\yok{liwuf}`a{zhg]^^kbrfr~hqucQfjy]xierVrWmpfZnUf{vnneRl\ahd\sqtqppojfk\jrghtv^frkkkdg^e^nRvd|YdXfctf}dbxlryet{{{^vtjyytnv]|isZt_ti]ooi~ieX_ruqhgd{blotdsszscxdVV}Myp^mnhoh`\gqwnaq_mwrqf|vkb{Zr}kQ|yorohaikwkbntsjpjhmofwo~ksiqe|vnsqdx{nttSd`}`xqxrvvph]wesrtNrlronw^ro_qxq^_wutpft~Mjq|_kli`iilsQxorss|khoqf_jhowgZplzu|dmqcr[r^zsirgdvu[s}gfgazlovhw]sll`[|qinru`jb]ltnvdko`kl|inisxfn\SplVxmlj^tlsbloguRrm}Zts}i}zY\i}nXjtm|yg~sm[qrsczsxufeyvrqaz{vufkmUswrph~bk^^muujpvxLfqewLlgjojs`h_pnyvqrbxai~vig{durkVZueumr~axbgtu]kjj]msywgvfPbcyk`engfQ{sdqc{emfbf[jxf\tlgifwxekfsm`bXpb]zk|zclieurc{obwlSteeeowj{{evnzxmisdbxmraxonncuoLnm`lpyct~ainant`uudo~psm~ZobswacsWn|mjznt{{zhoxsbmrmzwi}|urnzxllpvdle}rcwuxw|h[zmnohafo{kbkis_|guvjoY]vj\jYgmjwyp`Q\iwh]}t{XhejehjvykymqUkyuokkz_nv{{_vzoogc|lti]qdlqqX_hpiYonoh|efgqthfqvfdonxrq|owmrnpok]unWey]vekszukkaliZgtazsvfxcwdjmrRivaY|qg{mzuxXo}uosicmr\b[}`{fn]yzpuvi{[gcdltFpvkunsnUsy{[ZU|qUq{knhg\]ormrv^mzjacwug~I]tqpXtkUe_e{kqyfotmvezjt{os|ojjkzebg{xg~dhwgv~myf^octrl~ybkzofn}]rWhkvlfdxwb~av]ttfn{ikjlzrRcdqqqhcz^uY}slUtphZwWtoowj~uWTjg[_ofkmssk_}jYYsw{]rpemillybokz~jmLnkhl^gjskp~br{]r}qi^jnbwtdrvxR}wqtfc|hmZzvZewhVim{jwwunsbjqc\nad`d`fbx{Yaw[qm_^lzpwbaopycwqrcduljlVe^{wkhtJsnozlsxbdrdbaraq`bqomppziv~fnnxsuqpkbUlmsis]Z_h|~`{mccSkjiu]bqgvPhwddgyZjRvt_qik^zljfuo`j]e^]jgxeQl\_ndpZ|vk|bo]pm{{apufY_dXlgs{r]k`bsck{|kd~xuNqspPXorn`^xxh{~{wp}niqwligm\gdjhgyvtjgq~mszir_pmdtsinYfm\afdcvljlf~kz~|q`re~hpvjyzkq^nmehdx]qsg^vjcsycWdef`^lhi|v}WZlYg\xkhpudlVzi^vcyklofjsxutlfqoZuQgux_uXpsycrzknfogWdmmpfw[zilvut\Wh_sf[jbSoq`gmrn~}cpmvoqkzj~l|bgg~ravrff}|_`no[kjblqrurpk\pod|hm`sWXn]{^ygmopam[{VqiivhmqmjdrbrufNkqxbe|rW\[utlzxrbmjQgY~kPmkmxp^gl^qacWq[hhd`uvujsmbowrjVnvsfdkZgottx|wsnbluv_mqmjf`jviykmpeoq\qcc`pqsiqigqyfozht|vp~rioeftqwzfahqZgeegsi^q}q_}h\mQmmij^gllbnwoow\`url]ggxsZyb|r}jberu]z|fn^xidRkc^n]pqix_ehhb[HnYmjStm`q{afbPUsSgYqay{{_hsnTfiyavo^xhsvZpQtlwnsiYykx\oausqliqofYxxk{djs{gl^e~rkjqrxwnfps|bltb}iytrcxqamjlxjruycnkginj`sYqbh|vhs}p\wukotNtdlxmncVe{k]ur_pzluidz~_kstTvkarpnad`ry`}w]iykj}Y{}cvdz^_feowqzpnsb\]]\f]|}~\hz{vwqxj`b^tpj`{sV~xal|ypjwioriqmhhfUxnfloojjmktpfduZXstaqhurm[m{ztZi}amja`ujXqunzyjulmlsjljil|wi{tnhugco{bo{gj^xaizx}]rwutzhikwsRwsaipq~kzxvbhdti{hpls{Z}sb`ikk|gfntz_pkaWde`btivmXyjjmwvkXzlmeuqk}rsuzbnnlXkjcvlki}`Zu{_ygvl^vtxo}fs{mjtl{kspohqjgssqurdh}ytpygZbomp`trfjN}_ykdhtjvl}lxuju^czplm[}_qnefwyytpXd{[|xjpjuvfc`Sj{zj|{]|ipiconlvSbrafcex}rkqkiulrpZ_i_~twiogtvz`gjcootkteloftryi}z}nlfcr]|pgaaopp~iawiy|Lzovlm|\Hqfvogn\rei}fnhudvnjMyqeegszhow}oqlerwtljmftXhxakjax_g_j[}ypn|`|`jvlrrohlesvqkkdsr]tdqksrmsXkuafhdm`pcz{pjgz[h}V``hrobwp[n|qlj|phnvhrlnpfda]}n[rudtwxmillzr^Ynkfjlpnwadbvqlot}njTfai{kqpnX_wpah|grtZpkqgqnamo{mwg]ejqhepensaslfb|~ixhzn{k\vkdzylzngkpaim{`wx{bjxmypvXqxl\jeza`Zaeiiy`qcmdcw~fszoyqtdzydwjpVtyvvnkjzjnkoofte_fiaphrrpwtmmpkzn{qygetshennezxmgde_}~ztg_pcbuceklqvwjlfuwpbjemujbcsn]ztN{e_sy^jX|fpipmxsngnh{xf`fwqepqlheVouhkainzU|{reftk^fqdmhewc]}]sp~mujqhfXoh}fnjjmeothtsquyt|moWpk\lsa]fcncp{cmc{Vvl[f_hfvtfyhawlxo|uhknnRlhyed{ueevik^rw^kbbxxclxq`vxctfp|m^ogpuwt_twWkgtiovs[}{t~dzhecvhoresn|zxf_sw}~Xu]twm`czhn[pna{r]~Ummrjolt\]beT}}knklg{\cWvgshqXeqhi[tst~k~_JcWlx]zMzywlsnjd]w0yojbjdfvd``pu|k`|eRyeka{eZu`O{^sw||^tm{mqXsNcwZlnpi}pytcksoi}fdxqb}^g_hdbps~pilRqij\tfixjxkob[lhQ^`o`]p_jvk}lfarhuVh{QoimXpqehzhvkcqckjrmu\_rh\rqS`\c}enjnbx{X~XkyumqepufSQkjsRWuae``s_dpueeacn[tbmtr\rSde~X~gycmwy_XwNYumiidm]qamfksnwhmiqxgmdtk`uzat~\vxs^]qu]xhLvrtneZuer_z^czpguy]]wgrkrx`kgM|hMnIee_pjz{xpmfjdai[kemp|hljvt{Xl[YmYshem~qw\hm^c_mg_cpt_ksYqoyhfdnqh}{zcnc|jocrsk]fY|mnrde|ostWpseg{{k`hqX\cj}aztvk~bnoqqrivsuUbjtsixtrpoxynr`bqlo^{vvcpounl}hzstsovhelnusauizo{vn|aVfpsavsXpl|oxon}m{kqrzrqalcixhov{`lswpny`qkFizvukj`rnznVuo_rlz}lqnmfwpmzrhilyuglmmllnZgZqmzgbrwaxe^zwxjtplyvecttqrlwyqjomzojibh`zlwokvlurm`etonbf]qgqiuXcdntmeqgqtxvovmyqjnnuo{ufr|qlulospdyh~vgn][guwmqsf~\so]|efwkqgvsorjilpwmugxmebymlmgmopummnecYw~ktp`snudspsh]yfsu~jooijhi}nckS~cgmjhZg|gmi{eibcxLqk]dpfvpek[afuihtoftwutzwbhnzlopdraki`kkupponsmeknphxkaW`u^icrpxtnhqznsjrprjosb`{knc`e|vdlzo^dx^enrjyu_ln`}bVeblVpZz\groltrmiujYnfohuenvbsltvovnoylapkha|llhxmsfgmhktkcdht_xjnlrkr\bq}n|_erXdswmudyowoWson`rvripyighkr|\{lgeb{svamwo|twZnQp|nvvybamb]avuxclsipq}sjwnc]g^ozmumb[mca{hi}cxykilzd\eovZ|gTlco^ljgtkmjwxRhrxmuQjcqtrm`ts_p{uns{j`emY||V|amzgoqt~viVpytzrpmmp[\pcgb|XQfq{eQnhtdjxp}\v\Ygenzldsu\yrh|^luuijr_p[ds^mwuaUotlsob^rition[gcfnZ|mq`]a}rX}nSv}_eUq}okg]z^sb|SncnsqjihmjVdes~l]xequ~vjqlqdw_rtyT}{d{oeoexqujTt|]dZZl{joWd^od]ljocovnMybgy`}eaXz{qhne[c^{o}cem{igoY[eiaqdUgkkdlu}q|mXzZnfjq|n\h^ar^l^m{|jfUrimmnxr}ppc[yWm{hybjrRozj{ul{mwo|svfavmsz\\zt\Wt~YtlWyr^vWtkxrowR\~efkntnouhzb]ipR_hoZlp~iU}{mx}hrymxs^u{x`ywxVh\{sg}vn`mvl~ftonZbtouiv`pukv_hc[jgawYh[khsol`ZNpkk{yphzuuwnwqaow~hmhmcbnq~r]dtdpemq\kynspp~Ytrv]Oqhkquatrjuvnkmo~Ubll}|^k~dWrmkZidvkh}shfqxtbo}loxgpdqdN[xVola}culjyjP`hsnWpjq|il|~_g|hhS`g|bpTdyopmrqxl}khnwyyn^cR^izjq{omrbzlUbpejyzphvmss`mcezlse{ohyc~jxmlzupsvunqosdlwxr]{dkaokka[\utat|epd_v{vgl}afg|k_se}mubh{}gf|_e`j|gghhsknehjmvoleiig`wrwqrnhcp|pspt^qdao~y~vmllZ{vvwvuiqkt`copnn^shrk{okvmlefh~b{uirn~tkukl{q[vorys~g_wwmr|umssl|jakpjqc{rkVSggcollzyLda}sxmlyhmZdq`sd]xx`crzvptslltjgw~itw[mtcclunol}elnymvevlgbmmtp\}`mrtWhgkhevrz]go`olpahczdUfj{_ebtuodhlezzisihqytwZoft^q[r~nvmjbfuvuaqxoa]lbtsq}zm\ei{xx{sz~`]nf`k_mRcaabulkjivhzwqbwdhbndimh{speg[ks`s]`uyi`iwer{[dhwq|^egibRk_gthsv}kamtbtmrrdsknatgesuvSjuvhos`not[qav`vlcgkz]hp_k_kq{cijjbzmiwmxxlmafgc~l]sop`^udg~lssiq`occbVmb`o`awyr_~p|jopcdsuneuhmzppep^rh]uxfdluQfpfs}UjdoZ^}gyWxi]ttgq}b`cf[uwxeklaQui`pyygq}blrbdy\huvrzX{jw|Wwgtjxkrll[enjd]s_ie_keauvaedoycn}vpp_Y^wnqoobxUtufd~ohx~ls|xthmlel~zkgpsmidkqtz{ts\ae~lsfzWjyd^{{vYr}^yeXqnmhnuZasjy}hh|`sgrlo{}ez_kfsvrltzjzMfnd_foxq^wlWxmutofllupjwtnyzk[lyus`jok_xvWkhhnkxoleirokvwnvegqe{^stcl{hik]y|]nvbjhcvjzf[}ayimslndrh_itjhfpzr]uhrr\p^WvccjvtjgntYpb[vuggykngwldn_mhtxssxzz_cshshhcl^qi`|vggslbS}vjfPyhvcok_mjrruenbqpbxjqj}pZnz}hskut`oq_sggrgrrTrwirqsw]qfvguvxic\blfmm|qnoqur}nkvZntvmum{ikrj{ztin{l{mpu|qXVwfbmqifyhn~opuy}_}mhwwmzdy`Vjuo}f|q}ntjqd`vjisem`ocquvxkhwzvWqkhng{vZ`hffna{ujfm_lnhaoiruwhux|omfofmczwjpsjjYro|jnavh~izyol~gawdwf|mhcq_sfqtppuibxkow||T\uedjif^qsg]yipxyqkuprrftmejjfmxt_osqxnwh{mwldisto[[lycwflldhhuzxghqvj}dn]qoklqgpbcs\|vro|qdglplRpmfzinvlhhgotdjjjwgrkx|tqiwgcypazgaibsiknlco]khrwwhwmeZjrjapd`sgri_gepkoun|xngsyms^lzsnllesfZmnrZtk{nrnn{Ygib`xfl~|eayki|}UVlPdt[tslq_p|rgbsx_kzoQev_gIuwnujsfzb{oyksbwc||_l`qruli^uWum|t}i|fsvjZkkj\lktdktti\wwuuevpmpfalvengg|hmfqnbsj|Xvqqx}gwgwzlq_ppu\Wyzdd|zjwjoazurmwoqvlncxaehwzfdgklhpotp|ei|ewcoc\om}swfrky|wdlbamvpm^jfdqhb|JTu^}knjzb]fvvuzjjtnfyhypiMmhuUtqqu]wksahwnyjnlo_pVqUm~lxlbqzjQYctVnrbwisyf}tsyUzyot{nj~rrhijX|gjgyigwcpfsby_xUe~lhr{X|tb}zlzenwph{ltW~ojmRf|y~_npii^|nwp}]g]lW\`jntlp[srwpv{xVvyaa|dN`ygqwZhsjmjq{ygwdXokgj`thuvrzkekurwjci\dhW^sbl{gRigghtim|piQlcsxuncmq}Ysvi~sta~~~erfkcv|fdzc^yarao}^sifZnoqheit\lpts_p]vifqoHgng|Wn]Yebqju]aiilnj]xx[kngfn}yv\]zr`ozZvh^ifqyyeRngm~{a[^e~i_etjo|bovi_gtu`trUhhqk`kjr\smquwqctv}nxvZPdo{rjjmteekj~_zib{{jbxsmvzj{pbb]s|jpQ]UTtWwce[x}|bnchmuflt^gpoceykolslchaivv`k_^npnmYkTtddt~yjUi{f^qk_tm|weSb\Y_wwd`vOxV}ejbhv^qpyqqkhg[kxg_s~ju|rmeqigcm_bckgSdjs{f^jmqVyunkjbnefioaqo[khT`]sYknnhkss|p}p[~mowmsj[}q`vjku^dq`si`o`nwpink|WiceyuXegbntSrdsVcnvZwfkvwfnMVml\ZnpwniueswsoYpU~knfmdtilfizycxqsqZdcbjgkjqjrhujj{llttfugykasxo^aZ^jluz`vjuXvncrpXl}]`ecl}e\Ui^twqafntxozipvbdmkgdbmVoxZfkc^rZprl`xs^icd`[jeadji`n{br[{ca`xuVpdvpnxkj^vxxtcl__hlli|k[jRn\tas~irhxddowP}ueS_]fjQuxv{que|l`q}vdnwfglqtv^U_kehutwmmp{xzhfrrlzgief}n~cqrtQcdjnnnhn[Yijgizq`t[byxlqithir|pixpwgf\fj~mi_jllqc]enqns`bhpaWio]^v]nykcx`c[f{glfdzuLnZ[uqnebvu_taze}nknvoXvtmjrciK|xzksvfdnydriqbjhgv^ras{wofxNirlmcgkmraftvmvkwxmlh[o|knfxq_sdsq\Xawpsdftiyzl]_vG{lzpkglivzvqdw~g}uwkxdihoz}zqirm_lid`|\|k^lptbbvguxjYqivbrtmjzvZem}di~f[uijumkddmfflqjr_v|xnvlevhvhu~mkdu`mvuj_gxr}^jjmxhjpv~oyjcw{u{pnjl\dmqcceoeims|wmqigzcknul^zi_gbu_ihYupkxrk^Xo{z`udqxogp]nvjiaY^|g{fkltisqYuyjtumk_etkc\huhuk|}vfi}wckZt|lgdtuhk|qhuujmaichsh`axeYgp]gx[fn^`oYYmvsqvxeZz\rcmdsv{~sl`j`qW_ooq|_]ilispv_tgomr{`gr`x~ao|{paxkpvioxnaVmiieohkmlvopfx\iuv{euvbavpVsiYbn}f^[cqfoyfp~f^uqto\pdq_qxz}tnwlYlk|brfuvkpsmo}yilqh>y\shZjayevwgzl~~Wlchtisql}k~_krdXv]wounXt_bu}ow\tnh\rd{kfgr~oY~gaTpfgwrklreh`rrqwksm|ebeYxfZdU\c_tprj|ehuycfhwlutyztsumZ{~{x{zt]`{k\{lm|ttz]_skdi~cqq{_lbeYucZuhmpmkaOrt_tkwOv{wj_}uksmoprfnssi|hof^eea^ivleum{eyer]ThUpnhkwijnVcpoir^_Xbamx`[ajedgb{Xmh`nfj~wT^kjsNgc\ufexecPquiW_pyucTuqo|Qcgtuen{Oadznfty}jh`\pO[caoxya]su}}cty`tn|vpQYkom]^}Qq{lr~sPev\Oox~i~^mfRpyvljqr]hbrv{f`gqXpo\Zfpe{|roxg}dleSj||{fgbqndsqfwmppdrg^juzTdmqu\ohtnRqwVlfweuYtfonbu``lljlqclq_enysUnZwktl\fdqRlgxiv\pV\zgZ]giyd`tZzhklsg_qmmfg~glk{okuu\l]uiZ]uedcit`uywmueYo{ahwyepwlrpolpow|~kvpissskx^]t}~e]rlrfhlWqhdourn[je_zpwwstmgjogmup|}qjo_}lrvciklotudaevr}kqgr]issk`dhkXezZkqnnkttqV{firnRcrXjsgvjcjzvkin{cin|uXejsr_nridehgbzfm`i`rkvzN`~{mmuipsudn`k}pauiltoxnnibkrnfToamfy_|ixk}rhtgkqp]i]bk`kdcZyfrgftr|q^pfsxqhgYi\qcqrbgs]op^e|}kyvwSsqhs|cmrvlrlhr{cXdazn{ltebgzmoYT}YfsukwqrxcnipzjqpyZ]]pprvtj}|jw^_iY|igpzzxn{kq_iiuvbwkpj[eXtn`dftciiYmxisdjt[w^titlofqvcecs{dagqqfwpfjmpMwukto_vkyqd\eqspo`gxn\pspmrvxp|qjnrbqZdehihx{jhusuat}d_z}~ni^vvyvhegwd[uhqg~m]gmoxqyliYxhjeqvomhYwj`Yg`k`p_hvpkdwWri`^luidyufrzpqsfzmtqgetfkvpnk~qzww\yV{jtf`ohokoxjvx^uwlrm|rk_k~m}v{crrpqqnvVuns`gogo]hlwjzxqhzk~kusao}|qrntq]p}gky_osymdkivmxpuii~jm\n|rgjiXXlkrcamk|~}dYmifsbgnVtwzr}sqbyeo{innq~Um|uY~axio|[`Wmds~mflz\hR]sjaubls|ykqNmbenRsm}avof[brsem}hntQj]nn}mcigpri|u{txrxm~fmwzfa^b^[p~s}sof^bnrZirrwhtYgifk}zw_ZeVmrdmhp[m[rK_e^f[YYyRjvvnhte~}rkvlclom_t]shxfZ`lw_cnxlrvqyo|ixwsy_gyrfktfocgvnfkTgubrqgghhsg{vXjux^QxvXxh`nvnoh[`oa^iril^vpcduvsnXaitf}wd[Pt]mr}zsVwx^gpir|sd}rzT`m{}mvdf`Uzqps|ki{\h`ow\vuYfxqyjghebsZwQokPajv}|yUwosXfzfaxex|vupffbezwW|elxb\xXu\mom{ouXuf{dhl[t~shrkgWnywxYaS~g[roQirhthd`nkQykvzqtaZos|kcuyktkqekflcYAosu`P~ttzkhlPcnTqevksmTn\om}u_lw~slivfiqsa~sskutw\ok`h|}cglleg}~~lw]qu`Ywpmlpphr_}pigejpt}qX\]zOhlxnomuy\kdlri|emfkbu_}cjyi`dve|iqfjlfhvlv}x^_xpxow[}uV{Yfs~kb_s\qckwplrdIqeYyubquuli}qVtetjqlv[idvjksyjyYX]ahiflropnnvYvq`t{yqtiYoz\ZggyztsnmP_pYqdz`h\zafThmqyx}elaa|yqWsno[kkd|e\rbf{gcqomosgyzl~^agodwvZn~kvgofem{~gzfh~kmoXnZzs\`nqquhh^[icdXikmhgqlxqmwgtn^{tl~p|Yme]xaj}hdq\qynfalifqsmt}`gzfolypqb`_tRhklThuen|yfcut`ljdauhi`gj_wgumon`xk}vwbw|aTiuihziqob]mjoyrbs{lxnf]fmfo\}ggnrt[hxlusg{zkujgLcoUlgmgwyu]sxrjc^Uj\]udf\fby_pwzyum^{m|x}qcls\\ylrkhymtucrov[{uc_rgs^brqerxbo`o|hypnvfc`mh\vqetvnuliz[kusfzrm_~\ahsu{oyrPfkvqc_c|sn~zarrth_rciyoic|qudofccfhr[env{o^nhjex]rmrXu{ns[qiev|wk~xgocil~|gw`lp_dglquev|g|Sqnj{ypb`orkojuiena|h~l~tplubguo`mxZpgjptqq]ijvYu_klixhlqe_~ib`|gwmiyiz``brih]Zxwhv_wysiZvmTxnklk^jmwxid~^uwu~w\fausmdsrku\pmpn[ob~disn}nhszpfwsiYukVopPuzp~xif]vqsgVz`jdqkqnYukz\kr|Xjj}zrvo{^Qqpyc]Pav`orbwe[ny}engXtr[]h{`iejoo_puuny]oabTf_yu{c~unouvqebpplkcdnzqv`fqlthqi|nauu^pkt`_aiju[elrqnqfqv}pTafe|k[nerclcpffjxpwx`mjjpxkawxgvgm`h[jslbwzt[fzhq]mmwdkmuiuimqwa|ovkfjj[kd]r][eu{tdhookvkgPkyUjgqaccjb[j^k\mtZnqjs}pgdYVdkupwal\dwojhybocetlrss[b_`\rnc}dg`WdXxhxqqTecluexwokcblbybw{gpzegrk^lvpXu|ny{dz]wqmgynlv[c|bqm^gbp{qwssnaZ~|hffiwywu{u_tubzjlipoxql^dcf|x{emkuqqr^\wyilozf_lm||mvhs^Mhgfelsrsr{heoun|spWld~X{ofx~dlf{sadhoozxdoejcclzYulzj{{x}r||rnrni}rfvxclivtxcVnxlt~psxbx~{mzY_lzppcnnjqilx}kzvo~xiib|msrtmtun_nq`ooihuTWiovv~Zz~vf_eaq>rhijkqxfshusridxg~wlugqou|ljyqucnYflwokonism~|hjjh|qVbp`w{ciue^pttplw}ukv|nZ|f{vpld}yszgpgug\l]cuvwy[o`akmd|mhzo}|q\nd^Zfihymxc\ofsoorhcw}UnwoswepjeamllvJdax[ap|u{{pfa_jt^v{~dlj|zu}ncjowpkbf[arkvcv`oitxmkokmihvcts[ofYgdqbfw{cmm{cMs`pa\zdvy|uzh~av`bcvku^aj`spuuXi~gofrvyxexgZnWNqkb`om[zhrqvxjfv}yuookz`qjan`o~tecoboW|q|mmjdkgs^pVtqoeay{W|~|epczrenoedrcru~uyz|rnsordpm}d`fwplrocehl~pdoxiil`Y\yIRtcows}m~unmahkswvyfVlbjwonizjiYt}eclhwjrndmTdsjpkexqMinTp]Zlk\Qp{PpQm|^[r_LuY```dm`ei_amsegspSenoz|sik]bgx^w`l}iyRnmPoteomVxwqdkoalkqTnydbuj]j~eryifotm{Y\ajsazxnioh}cpkQpTgZlVqmutngcr_tmhjdY{d|~|`zsfnQlrgxio\zefhxqwxrj{udld}gXScc{]Ioseea~\mga{}qlsoNiPaloxkpyturzmxqj|wlcG{nv_pii`Gfhrz{ifwnzkk`pxrtxoiV]`t^akzteqnjeq]]oktfmammnmzbaqj`wtlucy_l`zwrps}_fvvysy{sVirx^fv[~e|li|sjho`oVbipcs}nsmdz]navpuciunTx]tqpldekfx[iwpZgpfwd~frvgsn`wwUZkyl[gjvdg^kfykpbokfqsviynmn[vuccbgtc~Rvi}qs[TQShhacamhchmtTdiafaxoTlswZflu|^uly][w~oq|rpcgb]nWeu{wy_cmwbnnkuo{jse~hkthjmWc|frriqgxy{jj{mb~rhXthrdgpfignxbszs{}klotrrmfitcfr~mgkniehznwhtetzsmdvlYffa^uj{]cht\rqju|{}k}gmt|g}qq[pYxoc{_cqjwsnudqfpxtsoQnysg[nklp`ivY]bgpnaywoqq|^h{alqlMe~p]bk}qtglUf|w`xoit{ex]gbd|cdVkuljeinrW]mufYpcXtu]ow}tgwur^jXxmZ_|[ehfcrOhStoxbms`eihbmcgusnmfcojtlVztcwl[ri]jfjUqW{|mZd}z~ulcp{[rkndppsrok_xmoqxktbb_jufoh_e_lgsj]grsfvafvavgermfdvmcpgjZlrqyliLsdxdsu_ywdmyqYff`stuwmulzn`ym`kycepY\hj~sogSQylm|twtsirTpobnDnrXbiwq]vty`~g\wg{o{jb~yvttpibsg|giif\ky_p_]lsyu{nsb[|lx}zVzl~fxgv[mgk~cvqohwmbx~yxngrXZz}uxde^z}gy}rqnxhUW^oyflygevZsrdrqqsrgmUhcmf{_mgfYxsec{{o|Wom_nicjq|Tpvdnmkskqbokmjkzgf~wmosdlXditwt`j}[wtS`fzoXwpnvzp`oX~prp[zcamgdalm{JXhllia{c|Vvhk\ndasjgxl}quf]znlsxasbsx_`fyrmquwXq]ckqce}vsQxeod}jxjizkxSTq}uzewmbuidsYlfmLgu^[aay_y}ny_vhuwijSoqruYgftyxyiq}gmrzfzWiipcanxekVhd\tcy]fkqmvm}`^~rnrzO~mXrwu{iudlv[gfqbkZ{nfiR`vjxVcqpz_YeTnsjXu`~fpUr_nwkPg{f{_WhmZYnrpxq~gw[lbZ|rXlb[p|p{klhegxd_MasFh^|l|uYti[prwvmvntl\hs^]TlvnrZmhtlMei|evogtimhvUh}wfcwoXlrf]R_{kvqnWipZjp}nkdgqtdrs^`miwnpkxmW\spszptfnoxlVkppdogoluo~_ivb|bKeyv`nfyWz{{Wrtczdr{slr]~udqsoYqjxOow~qeamYFq|aMuohIkzljjrnebde]tlngcmqmocp^s}|xmno^u~nYp]tmujqkiz]cYwkocewnomyffna{rarrjsq\k}bYs`]lqrgho[^Vnkrvqxqjihji}~{p|mgl{tdn\thlP^jrumu\q[_aimigaxuy{pvpgzh}mkgsbvl^`gsOr^dxdgt|tj_xRZs}dqlk{qro}}~l|zbjpqZ~ll]avfojszdgVbx`u}wrxOn}lwsgonwdeaqpowthzpn}rw^m|ojfa}svfbXsn`jtp|Xdu^ixyf]htom|{pxwqmQotz{bia_xizqQxaniXxyjrrmiz{gd_v_g\wdlsz`wgsxo[[l]zvrThds_rzw`]sypiyns|kjdSrzx]h|fYvwyqvXqklbftlceo_dd\fxWYucjpdxlf^y\thrk`\mFiurfsscx[lk{{la|fl}flzkU|Hoevlrvpsfosloitig}jXjwevzacPhrivl]Ygx`pulX|c~n`atU{v{WccqkpYonfjrb[]jvuz{iqgwi\Ywbw|`braclhx_|mcie~v`}]ievskuzxscclpSfhmx`r}qglhprzzhqWlwvbs}h{n\bapeew{pk`f`fdng]ee`lsrcn|mdiskujzrgr\Y]VhjVwyvwdiklsnmsqr_ccvt{x[icjotkEg[~wvtmxdWvk[jtzroqgsillirwlvdbjqd{yvzwesWhQdcg~pao\kToqlqcu[aeiumpvgvXjhql~iib`{qvjuvjyoj[rYsllXlm`jzu{vwil`seqvrjsSjgplretjhhxh}bz^ebvttMukgbhxpwrorYovcudmr}xlqtg|q|ovRncwlrsnxdbn{pqacYu_}jllYhqvkrptjbprotuz_goszn_sjrpoig]ent`d_zp|dz~rqkjemu|dtxurVvgsPcfypzkjx{zgdy]svdj|qz{iq\Zv}^kkot|mpysfdiu{trfkf{ejkgvrs^xvjPrgzojsukwfk_ajg]}uvtozx]s\hitYmwhXg~vpcrnYkhwm|vfay{e|beobnedcu]rdlrbmygfyfumb\miwuuyrduqeqhq\iYezw^cpl]lewre{r^jxrrxsw^kcodahpgyjSf\rP{blkZtj^m[ijauvzzhuuhfzq~inff^zrjl]Z|Ukk{`Zbewvbfqi~_\mdm{z{ZaccaPsklorz|kmigtojc[einRgllsttc~qq\qRsszpjev{occsmnmzTy}ntqrcqzgisogbspj}oz~tirmeqcVQl]sk\kipt`wcocwzlkezpxjkh~g`lqo}pZyX^sdg{ksYfogjLyi{uqnh^^f]gl{s~auUlrqtl^b{ckP`z`Z`ibyqvs{[yjh`Ywcihindbo~iex`pzeysc[}h{qZrzctWjtf|mStmj{yyzt|zrwwnc\c|_gxzjp}ykVd~siw`xdiibtm\e`def|r~yzqcf{lecbezjshbtl~^fb_my{~heu|xbgwwf|wxcTnhmt_^sgkrypjo{zg{pGgX|oxfzr~yfvsmqin{x~\qWs`xskysye\ttegjndlq|mi\ar{qwjpqaeYcbpsccnecpbxosZU{rhbmhsunuqkixfz|mqarmkc}kTthdc}^opmjwzXznoctwSgj_y^gpkn[gzspqaxiioqq`{cYuruoUbd[mdjlqqZprii~lbhXnjc|otdefqisoexp|j~jtgd{mixwitgspcclg^uqnuewymq_d^azh|bfrtepihtxphpmjyqklg|vs|ngh{r~Y{kd|r}Z_Tvs^bnkf{ugwyp~rbgzn`xxwigp]vl_n}_}m`mkly{k`wuhkevZklmjf{{Zmllzd[bwi}pkufftagrlpsjuph_l}tUwsYvehgZftmizr\fcqjdt^tiifygWlykwzi}kgg`|{qbxkbkk`k{[X}jj]Vykjkr{sowjkqarPrdexewcxncajtlxslgvguiguf\eQhjhorxelo^to|o\}aua{olgnXnmgn~w`svumcjnix]v^flrvpwf`Ob[~g{ugkrhSswjsZmlvO{LkswljmzWjvbyiVckjuespwupyTdjjYbfoopyownpcg`tcb`zykit|amuxXd[i[pthvbgwqusngv^l{`z~`jrq\|nUk\clpzYgylchx[}mprvlzkpj{emuvqts[epgslin^zci_WxontUjo}agxiyh_oc|kd^hjYfbc~{hle|dk^sixa`kexlhdseb\zld`maefivzhgodiroeQyfrjqThvcc^}kbliXg]h{{nku]yWhrpqVzkq\{xs_wlmgh`u`nclebgmn`cjz~cn}uwXb_bzh|ifeaUnnrcgwjf|zypmlYmp}j]u_zinulqrgUcfwug]z`qbdxxppreL[wurstr`_shmab|lZ|u~uzaniqfrfbljlbvkgeavfljienwneol[]_pyzgwiko|lfm_{yassudfvrztgyfwa}~qengyrzifcen}qd_bizhj^nqlg\dpkbxq^i`}myjkrjkwy^iiygiacsfbYads^qcarlpPjt[_zcX]Uujul}hid]spx\pJzxakok]d`ud}fem}zurt]pjhlsbrfc`bofyopnwkkmxxqgvrgytewf~l[om{qtm}rf_gtntesvkatUlzpso^ihy}oTn{|emWkpviudncofphiifvv`zyympmywV[kwlug\q~zehv]lzj\cqbzWjnewg~[glpYZrubghy]rtf_~qkuo}}a~sscaoy]bKwWumcr\{r}uvc~jm`hY[bj~pMhwyfTjraon{g}eyopq[isb[kpiebksv\nezltpaowe`jr_likepbhsqfw}by}pux|fopwxgoqbxfig_mfq\p_vXjoiO{juzjztdq{\pvmhmvotafb]mydoxdzt`qmlzwilxkk[zmlrry}jQm{pxln{dshdll]xkzXfpgwptorm^megtp{VplqmzycYx^my~lwx\eig{xyYfvZivx}raipxgujyibqtqxfRnvOkogxcwj\hab}U|ynXeej|nspkzohp^paiozdrnW\pi}oZgn_ohifhlPtnmlQ[vh]`dprteZmVqUrobgm~Xzitls[mxo[wp^\_}qc}ypklu\fujhzxe|fkuw`knc^`tbxpuf_`n]nd`b{qhxkkkmicYtd_}rrcqffipbyz_acvrqp|xdn^axpb}wkcw~{lrvxoirhik{Zeh_qlVfvtbojlkposXjylrYqjamhmjk_mxojsnsc}pizL[inu}p_cusolzleO`]ui}lmurywo\kwkgqepcnktno\scxpocwiZnkfwqecvxp{g^wlNnfren_rwRc]wkW_{yTl\hhkmkkzvppsa^fstgujdlKsfonoyrTYiyznqnc|eayqqt{Wgkb_fjto`Z`{s~VqbrzsokTk_yvobkjpldeqjnkXlifwoxbllXtj]fhi{dqjayrzbvrjmtl\cqxsyUjo|c]]m}vUlsjvjS}dchegmzpust[bhoxqclqoW}gmjaoqgw\ndkwknymsjuwxjmTyetuxoewog}llwf{okjyqojhpbcsqndzj~]^bsqizdycxseLt|lgg]eqgqlkmj}o{osw}agZla|~zuqWp~m\vekp|exujovk~}ftjqhmjqr|juv]odorzdajui_Zajw`k~nlaivjqp}rkqqwjhgkz`fmvfmwa[goncubqh|ema~mlia~hmdrYp\lwX|v~b_navm_tlispevcTac`zaclatgwwxgrahjkje^~r_soypcpp^utsiS]gr^vrd]dzkxuviknro}dgqT{fglXvrqu}a}dcsqlbkxjf\\gb^lfYkrmdzqy_siz]lf{gffXuprm|dohkomwndufjh`ql~egnqorqrsvfanzrrpkpw\msqer_otnomx}_tlmTlcsdccej_qhtXs{otgbYjss~^exohwylT~uY]vstitfujomsjxmtsWlio`p}jj}fht~bkhooiznmun[bcgmbocjb{aqdwtqylmwmjsdIs{wgxs_wiglodb\dakunzssujarelkqmnmsmckuhvrrvgrbTkhejll_obtfic`ll}htcsppjowpdrx\vtdmymn`pe|qdrhhopjl\wi{hven]tZvyer_ruYh~ltRoMgrytwmihkwub{clsglNjzgaqr|ilRr]QtSjrRvolNyervsvp^ohVq]ylge{pnkvu\N`Ydagxpajtt_~uoQvixh^noTx^dc|jbf[oRP|e{td~cvaZyc`qyjXmr}ecapsm`hYv}m]tzyZ`k]zfheaomcyYUxzzUtsuQpqljfq[W\YnvtbUein`hntYdzvqXeovbswnrsuc`ungx~dl`wxglf`rl|bxxuXny`sldruWu`pybpfistr]w_cjo{^yuyP{]ap~vXmcufkXyfqwazjJ~qy\Xbaumwmxida`zcawitr^ipjh|[bhxjpttgoqhcghtukijiiP~l|sj~|oWsm{Yf`cyjsrxk{tpzX{hrfurwiulaoon{gqgq_wvZijokrlevndgxpfgnkaewwxrs`b\nks]{mopkjdm]dznWjowno}q{ipac~rswyrkpgmykgwdpdm|\ZTt{[^l`mvqr~Koro]nved]rkppsqvrztruvIbtowmoyyg~lthzpvhObpzs`qey~[r{stZyvzrPxve`vdglzzpadmhjme}nwzaa~{b|mrwZfs{gkymaby]~mrYwakfo_^jlg`mUxd~km}na]obtw^`_tlnsl_]moup]qqfhjfkrYnzV\eb{km|kTojs{vsvh\ldgX`ybhlmogsqmzt[wo}k~cq_wmoqko}xteoxessis|imuofWUekxneter`p_pytec_bkg``khwtbn^iyrjpyqjfdqoricxtgh{{fQx`}[lXe`hli^skfpnr|}lndfz~j~Tjtjrrr[kfmXPtf[zsye}Tp`mjn~fpkpcho^ts[tjbxqptk}mslpktr~_pcordnu{`qPihvkngngaZaXrhhivbiwvlolkj{ut[zmYpg{mgThkdydesl~|uj[gtfzlhbt{_^sow[fizt|O`vnshheihmwn`y_pfxz{lhot~mviR|bvdrz_yiltkku^gvU{Zopt_is_sp{bgwj\im`oiakqxggoYhm[mwwkfddpsqpkgcjcuzrolwkef~esgbvrzkfrrjYea{qst}lbjdeprtdxnoqhl}vifeko]}sijYlxk}gbg|eVy{]nbcmri\ftkqwvklpvvhby{yrpqok}hdoect_prhg[^tpqimbt]jhdnRVkanwhbalyli[gveeiih`bnzdrmrX\y|{nx[cwvlis|iq~eIbryiyiyd|lhgv{s]m^qUzpZxyorftorqpv|`]vh`nerwbs|}tsmjeq`ipFhhi]jk~]|uNopiyplvxu|fjslgz_utm_Uxti|ocyl}XmaLdqw[ao}|wc]vzthd~wk{eSr}sWmjO}^rekhmgkdoY]armpydimb|c[q`Vq~zbnrxs]bsWwvvRjgzjiprcri[yhkq\ipxht|jr~u^r~f]sm|qpyrYxpyYosl|wp{\YqdkLkW{s|b[gdxP|bn_riprl`jf^f\v^s`p\hnxq|jx}[dYvdfgWuYz_rhv`hrlqubzm[{cgwcirngW`s`rums[Twdrgklfy|i[en{mj_gdf[mnxPtbxsfVy`Nio\Vsj|_e]yqkxgpuoXlqpifrakq^^{n}fUd]`qnpu~mounobevTnrzoyhydm]i}phtdhVZX|ld[sYdlrtckg{{gerwh}jyvvha~kuo[mjqw^zZkenmhifaqjlhywcqo_nb_sm~\yh]lnYQkc|_^{`auqcgzp_iscyd\gmmu{qz]u}qorVe`PejglceisXnjt_eehcyw{e~erPxmojpwjoo}qb`vuxgwd_htn~Whoygzh~ojxlius[eqhSfnaSq|{h{pb]bzjrltd|hsinodfhfsvbsmjxlZ`gng_c|bdoarjfxmwzorm]`vjdqa_uywhfk`u~fyk^tbkusnXjv_|zdv_sqkjZqYlae}fgoy|or|\ezv\oejtio`}oZ{kj[lw_vpz~uohdVpVpkrxamg^orbmohpgpqi^yjqyeifWkorgpUgubivfwmskdnncxrwrXnjYdg]e_ypidzNnk\u~ddk|aoiZqNqxtj_lpcsuvikwtb]Uyrpg_[st}wflfhwaapvjhjrhYtvzfmupdrg]awbrsjvz}r`g]lhdcuwiqc^qe{vc}~vq~]onsRm]kknrjTX|}]ftk}sltw[qqnmikot_f^a^_iex_ujcmkahxgfyhnlme{yt[{qv[utktan|kpgtjyljk[qwkxhbpntnfs[ek^lpknhortacsmxmjrp]rprm}wk]xolkgkzlxvohro{dfwmuqc|Yiyfhpsngjpkpzmenyiksdprquvsd{ymmamq}Ucqpouhr|iksux`jtnokrpipmkrv_[xzbort_jfvtupr}vvhuqhaiqmshud|kmslz\vmsuqpcevpqrwv\vcdp~odptxckoujubjfjoym{nm~xp`hmyhpsq{vmsp_rg`ndnl^wj}qtm~zjnWV^tpbiiy{x}^ttkewxrudgnslzWujdpduyczi}~tqYawbzYtqlmgnjvittrycm]Unhk}thvvm[n|ienwrcsorhvosw|uuew`n`ftpgm|ty^n_qqmhksrmx]sjob{rwicktbtp_lUsgpf~krdtssp}rrklxoTvZg[zn}Vgne~eyufztatpkusunphdprzZ^^Ntzdwwhlqlpfg{Zum]qgrh|mvdguggg``wogjlfvkmnnb]nke|q{Woif_arhrtYx~n~mwXrajiwtq_}zOrvpmii~jfqfrqprwfikoudrWynqverkdar|UkchnlngrwrxqhNiiwuru}t_eerscjza]nfbltsjp~n{uvltfW~e\cnsbddl~mf{nqpplifXjvwhomsvfbUahaobfdvpmncuvYmY}jkzylsUnwjn[{s`uedZthu`~tskloilvroYhcsrVyzYx\ecoopi]rfmiTafisqgthnthfouiitgoscUqx}{alkqlme}}ljol[abdxhvtm~ysumt{r^rwo|l}zrmz`WfotymUrsxez_Wi}f_lqwnwler~svutb_YgjkYzmzotzuvufdfbNpeT{q`juap|ojf^kamx\ejybqglsbihrusckijgm`|{iip^ccontxsUn{ojufx]jot|ck`^k|n[eoxgldp|sOli|q`nqlXcmjZ|on]x^gstuh`atyzlUys\kvmygtqhmsoytnvad}otskrh_zYkhbtXiofongztlklyY`xeqtY{txosghhfZc\eftwjm]xglagstow|q_are]gzwltu{mil|papdKptphjrwebpniqbwjswxmMoxpulWtm]llXtd{os`vcRp{aog[ZfcSXbTagblzcrxlftkp_p\ipnylvbzMc[qZmZykg^wigfq}mdj}htybqmncaevixoih\kjtselgfbem}ubVdtfxi{n_djue~vkoj|yccbZ}]xUrLtY~gsZYbf{^[|wnsozp[?jigr}nyon]nzk}miw|o\^Xl_RYocupXie]mkrvs{oWzlIvyq|cuxqevzlvbbNe`xrVpnwYvtjm^mwdfLzu^scekupgVbZm^r\_]]gjtapsjrumj{fyf\tWepoq`zfiukd|b^qnr^]jsZ{Xzogrb}iXailswrmbv_fo|vw_uVsgmwgWXi]W}Qjfupes_df~n}Ir[{mfisasmstxxdhawxl~|qmxuqpjyojq\s{pbyjh``ryweHareqhqsu]lk`kcfoWwje]V]~ZnuS}}qWzhggvxfWnmKxOn_Wtmd\pdmsvpc]pim}o|oTsUjnwzcp^pPwtqeqjcph|hmTQK\xxikd[sN|Xa\pntgot`zrcfhgXczvKronbxgt_kugqu]opvdk`nbJXoaoju`_zggwtgvrUX{SmcetWcx\rOsTsa`ec}pxykstZgksw~sn`dkssuhsrdijap\`wj}teVuleh|gyvgn}taZmkzoxnkqm}Z^phWpmpblwkomWlxqYfbiniagdjqocra}qq\dlbqVttUznkckhgiw`\]^{qr}d~xm[jzbup~vs[dqe[qeslookgip}W_{mxuqfad{q]palpehvjkv|e}S`zziwlen{Ucrbjhxlpxg~r^bobpvclldggnceyzi^ift`\ymwq~hjosloiRznbahtutmf`cxfdfbbohZgWiaVhxkf\iquu|ooth^Pd|b_bglqrsaotl{khbskljwKV_ctRbcdZ|xdnac}nlbvxwrzslnmrvujl_ut]wmytvkuglZnssg_dYmoqncpgurZun{i^kr|nqwToenqetso`p[~U`afeZoi{oWuvzyxuj{cxgpxsea~rdywignvhZVrclrVoojjwdw|yo_tupegaod_jsuq}u|gqnTpQi{jmutdgjm|oY}ntehbr~vxi}r|rq^qkmyxjlwqipzgU|mrcfsu_tczjkxtlppbwxk{sfsc{S`_wqo}~^shzqhvee]IXe[pzeycnmnttld_ltwXiobojiz}ihpspif`iqWnq|]ivvrqcwkivjZkcfmnih[l{\kc~i]b^\c~v~}gbdwarvjfXp_dnoh}cvkphpyyUf|v\mwdo~hfuumou}creuxnjne~tzrbykdo]m[fr`lq|Zkjxkngusv[gzpv\fkl[wkkqlivgetWkkyorrpqj|nwRYj[rqR{jf`}g}r}bj]fvit[ycefwnorjufxmufpffybus~Kyz[wewOkqmfSec|cjd~hp}hd}wliedj}krpRujXVfjxj{~Q~cjZhehsq|YitoR^tnkc[uothfLdwmxiwneea{kol_V|puyqkqtm}kdpYuz}heWvlfots_wnrhXdu}UkbmZdlcvchytcc_w|ruywesutaq}dr`imb\agjfnjqonuZjbzmxncs[hr_lpdc{chwurSz^ku\agpjZWsowjZcg_cuwkh_h\}dwzsXxlYjtoxww[uojskMYzvX^wmse^}n[^jaemUT~{whtrfW~jj}XzuYxtgo~j~lpqts]uvy`Uelwr}onmusoiZe^R`zkdwe|yxiuylgdVksTZf{sr`_|y^~|^mxujq[oyi|_}yahz\u{qien_tQw|Qcqfowk_x|feqZ\{gjoum{{Vyhcj|^a~amjh]ycmmxl\\ddn`umubzab{gr^bwqobh]roOfkkqmuobxiwq]rzp{|ti~y}zxyizeuzvkv_iclris[jqrfqt{fuk|h`d^x~tjk}vw_do]cjtthyeqek}__jogilnutmbkwo@dzctq_~bclgYl[prtwqXaelavow`Rb\W^bUv\c{q{ozN\ldiitsvewcUr}rf`g~idcag]Re_f_b`jlo_cva}dllqfl[tmledb^lwvx^is}cejqosytstsgsbVfnqewatgemkqtpZlj[qebglwkut`mvX\u\Xj}Yjsotlqbpvjshcw}kycidwpegd^w\owun]bj{nn~xu\xstejmYhn|fJxowZl]vwbev^kzckxqjwljnu`cjrkljxw{dUgk}u|fWdm[fX_vmiegfev{oukilxmwqkt]dzk|gdqwnzhz^owye~nyosWf\b|q`StlbagxmemdpmQb}xi\hogsl}vmtomibubrkW[nUgrkjbwfhjaiqcew\ghnnfzoqfjPq}`~oem|ito}hp{po\vsyjnq`g\W|bue]gi}|smxn]guee[{soZo|[Yyivrio]{uywkl^hnqn~syxmw|kjpkneleherez{nsid]eVuivweZoj~^gupyjfktix[vok`ggjN}smhos{u`msndgl~leqqkr`fyjXn_qgntxhTghexsllcst^nhoiebwdcgikkqdempoghskkoS}rfsfj}jrpzrbsz_{\rxseb[juxui{R~h{rgflxsxxppd{msfifwSmyqd{uhthrSbcgwnlpzi^iqYZ]cj{fcpmtkofbdkm]lUcikpfsbys^eejT{qfncpjtji]ls`|xj~egun[VyXf~|kqos{vsn^vhf_b]gabbaRQ\khpugmnraWtp^_[iug{djWsijp^nmrvof{pyZgjzjamnlimonhLllo^t}esd`ofzjk[~rzjoj{esflbTlx^iiqlam`is_mk`udwmdmr_psuTkjhoy_myEoigasdove`p{isrsvpjlobuqYuauw_hgxfnms[gbytmri|phcrypknve{nzqYohpjlocrswxi^o[miuX}s_mfirzRjgsjqmddrhurzibgrn|vnvfsajc[t|sntjajuo]hThtso~a_sOrSu^xttcdpejOn}l~rqb|{m_i}perlxZnm_jat~`thx~pbXvikuv|_igOUi{^tvksmZhsj~{WkZwXqdduf{sioPue\c}foz}`lu]o{twqrp|nUenchmoZwPramks}d]qmNmft`ve_hwpoxmchrlw\rgrsr]onnotefWiew|nwldh|lKWnfXn|k]plr[|lwU~^RsmmjkxczL[hkite`YoczkzscrhcNzoa]a^pspn_WinuOw^^iuzwlyhuurnV_qqwdkxgcdf`zqkgyp}xd]zq]t{pxk{WkmUd`v]qUfmqTnspvlspt{xbvcjikqpbu[YkppenfgepdtqoZQvg~SYle|npttmUerx|{wbifraZjh\dozyszz~hhbehYdtmugskhxqjsXmg|[{chshqejZwy_t~tgrsbyabklcbilhahpkxrY}bok`h{rdfYdsWU{l~]mgykhunfnqkmpvmrnq]Yja`ld}tbonnd_w{}vyml~]kqadg^}rvl[l`szWzqq_ot|\mwqvsfgklkl`~pT}x|``{s_r`zzhvKfu\y_kycyibkydukuzyycacamzsprnqnayrposrsW}g{izmcn`n|zZ\Y~imzgqXelihZu\qnr^k}zbll~de_s]fodhh^^Rsmpuuyt_}o`imp}sobix`vrsrw|iinzulnuyik\]w{ee\qfgkltl{owbXhn[^or~vmuitnekoxkYjwmfxTf]qpv[bGinfvnhirvukky\{mdo|pcmwhdkmkvqjw]fl]pi[mp`ia|g{{kn^luiorz\lw|ve}k~rkqyp|fhmfp]Ze`xk{lhasquzsswl[g}qmXtavtgklroo{Vay|roleutf~yaytg^ntslxmtxrPxumnlrrjjqar]duqyy|Wjsooxajpfqy}ijqpMTjs}rdhpqxwxew}oupd]]}qT^brzuejckg^ir^za_~qkq{nsj^memotldn{hjrqtojuannpg_xr]rgX[jzpskaeykhbsZ]qkreh{b{ijYpfs{zqqejoakupsevtnkyvX~mm{cel}ouiq{_njm\_urvst`irf|snuar`}dqhioe}dcSYWjkq~{jsjlpVepa~wfty\bWzisfug~Xjwtbwjk|ftr|dr~povnwwsjcnknz{ycfdxqcfwhjaep[ievl__hQ\chqnmjopln^ijgidepufrbVbt{cwsapm]rzkT{lfipuuum\rhtkpiteylw~\wwT`{{b`}ieuVkhuqadgvbwotgfyus_rarlgt}vm]bzhvclj]L_fmt~Wwvec[zjpospVfxtcdpfezoul\{rctawyWjbkrZhln]jyqwi\zbi\Zit]jbkt\pxeyins|Y{svhoWR[|s_^rlljljyft{tMnkdsuytuepokqqe`k^nX`dmuh_q`WK_qvVmyj_plybvllle]vWoftzrst]frhz\todZ~knrnegh`hbjvWd|]z}hizgkywiej_u_hlb|ls`_wac\uffiinpkqskszy|wrnj{qk~bo^o_z}qxk[rXdbosmazcx^{movhchbXnto_azocjc|ir{tUsxuetrzUk~nbswhkYsfqqLqzZh^iVp[yynV}rp\~}obonhfefyldopujpfZynseSkWjo`jujcadhcY~jbijxjpgqvb}t}leraulizk}owjupxmL`lrpnmtods{d_jte]n_krfyYxR{yks]shtl{^vbz}mb`rnrxuo_dQ[kitLacfw]eg~hmmi{gdpetsfqgjs{o{hfa}aVvfldszjrjfqkq{fx~p`yYfbqqnaZ`Pqbu{Ww|pdtqil`qfar[Xkfmmr{sf`Xglmvnnsm~tklyVkr_pzrsr{Qvkta}qdqfyq__d]qg}{jf{wfyggoseqfub_xq~uuqpii`kyzuv}~rlpcp}cwxax~jevt`q~fuklruqnugLgvwp^e}xmt}|fghdwhhaxn{|dpjlpjuro]b}kjidsqw`he\dugTunMpSkksegwY|qpi~iieqsxgeeljbvpm^mugoqsiczfj~an~fmtifTwmleaZrghaj`enllszsiYQ~`]oiiwwj|rotdrvypgdjrZe\}jyygv^c_lvc^tnpotipvpf\dpckg_qxyj|aoxnf_u`vahtwhhh}gxVj{no[obygkn\ogvfugdkvllitzzep|Zty[gy^oyg|hj|`svlwihzoxrltnlsoqcvxnoipZuzwffgqcoalkWshitnojq|s_f}nlg{imqjyh\xmomnmYXm`nprfv\s[myns`a{xb{rwTwvphpiw]cwredumwzekqhxln_~bZugoyhamnqiox{yekyh]fbhjnqpda^usX{rt}dZvph\ezw~lmt`WjgelwniyVfyrdt\rsmlquwoQuhtlvln~_kmlkwWcopY^kottqhofRiyae~ncghsgXwphgmnnfZlm|wlcig_qmhfysxfao[bnjfillunmjrjfmjza\lmxqfqvm{bedwioblnbrl{mgu|`digjsb\ih_hnvS{xtitoxldcrtd^xkkqznzXZspcuk`uy{]iugdx[avml}fqb|V|qvik~em}^v__szyr_xaw~mideflhl\phvurJxZ|ezyip{uxoryf[wq}eoui}weVqUouumcuiecfiq]jlodutx^ilbqfqlduesvrmmjQWnpjjmsWjxlqwY~kbTfekRl^oaaniravbywxuevVhndnqK^hmz^gfuukixhjhuc|s}[qmwocdopkmbzmuitvhl{q]qa~ki[fkelgcawn^rpddaRwki}zfc]|fgmo~aynff\uoo|o^gV~sdzbpoc}lcxxhRmpdie]dwT_nsmpRcu~eldq{bbf|yFT~q^tjy}rm`x^qvmzgeaVsthiovsWo^hi|rttSjfYrgL^Zswqoovhpbhwsmt\idnymwt|tqlzw|fggtfhqisr]Uqpgo\ysriwcZwuwsu[hYmkO|Pnt}ulvyhcdtohk|X}yplkhYspdq{xiJwowhgdmhlw|r[[}{|^sgeifUbicfjlfg]So|gZau_XummgRi\wjy]ne~icb;psfnwVmtgby||r|bhrljdjg]`Wzfq}aXjizLc^jt`~iodnkia]TfRiouhe|rfyWulabqt|{kzb^q`|^}urdx~eoZvuyjC~\l^uxeaw^pjs^U]Z_i`ciM]]ywszrfymyvikuyrqyXsu|y~WldgUDjrh^flilphqq^bOW\q}rMngT}z_qbaf|w`bmjtkqnsuYwr|V\mgjbqj]oKe]qUmoZaorxyhjsYquqhxftolcfTnhyvrifyXqtgi{nlgasb[x_hzcdiZbXn}S^e^bmhi|pn`atmnk^gg{mjs}}oqg[wh}lra|oekfQupclPdvuofbayRwkirabbnzikk\kwOhustv_Yg}oiT_nzpovvssw__nfS{icruruvckYfx]fge`fnwd^ez[jfqyath~[k[plsu]ahi|^}mx^|czm|smucljholzd{]m^ek^opX{][kfkp~lvugzkpirru[demss|Ueftp>nZc`Vl]`~[a|rla]zxwb{f]Yukaq_]|tkYnkcxhq_kpStvdqsepa^biahoov|j|kcN{]mcUpku|sj^nQ~yitcj{^_vm{`iz\Viuc_mgywc\smmg|tqoT]yXv_\dsZX`hUagVqsZo|H]{h|}vIkiaenqleXxzi^orahpkXnyhilyzo}qkz[vxww^~vzo`yq~apdxqt}ruryxbrn{cndslYf}mcsznxmsr{dfjrstcbWmyiao|mq{izxf\yrwbyuu\is{ve}jxsvp[k^{o[whv{~pobzmzui`_d|qq}wigqqxnlh{bboilunroa\sxzfxdwctg~sxdYuexW_\|vcvm|ibhh}kqrljnv_rq}Romepjzyc\jbYfqh`wtn|yd_wps~ulru~sz[pvtm[h^V`cnmkk`gsftfz`mrn{{urWs[jhhWoonybqyyYoo`kzqnjnprsgwdishk`|\{]aWionupsjhvZmnbjmtoqzz]uyfijmrhry^^gzgtdq\^jolvict}`~kmsoto|jkrcfb`flhgmi^scng{KmiqlqprlfyghSu_iu^ele`_l|l_ryrnnjuhfyejyp_lwddiwipg|aqjttf_fdX^hxnu}qipmim}uvnye]m{onnpyfwhqkwps`lenhettyhhlezlbhufkhZppfigdrnoumykc~p`erTxmsedjkouqcn|dk`rjwidjmnz\ajgptc\mdkqx}y{|gmVompmfWthnppvltwcxy^bk]j^twwujb`njv_di^g}eb[`fspjptxo`tlcc{xi\Zrxd|okjxxj[x`dpgkxgbjlVfegZj_JTaleBuRffiaeMitN^EraJDRcYMPk[kidlxenNGe^beQAa\dcxpqF@QFVUzTOwNQdHXQv6hgiLmP[Ze_\SeVUNRXK8mSZQoPqV\Y2w-gXhcfenxDQ\[f]Ykwq^jTxq]Ng`Tm]doU}`IarTUkUlbL{YeWbv[lloHSRYspH`R_V_PW\:PGHLVJSPG[jRrXR\d\sLMA`~XOsCRXAOXLYXk`abpjWgyfXgdfaNQkWS[vdOi^YaWXNRI[\iN7aN_R{JK@`R\qg`I3k{eep^jj^Tf]Bsc`igo{LrrqaPQxmTK`QJ\NEsYGP^Y\ZgWT\G[Z^[NfcmN\ho_KnXSL]Q`GNtOhig}ab_VmjepUpe]Zbv^M`N]nTw>CncRxbQa^RrXOVk^IoT\hI]it7chuoolYJOLYNext?GLK9VHq[cEX1gJ\TAhOdYpR]>eWcXU[?TcdYWaXaKTaW|cEYWasIqfTMZjI]i`Z_QkfpPlK]hqz^EZdiUiaSnV\rh]kUF_sQPjbQ\hqTNbsMxU[Iog{~fbMQ]fgXKq}n7[`nhokalhSi]Y_rZfh=`VdTOoJ\XoRXX`Tv[OUS]mRbxgiXc`TsiWRMe^G_uXjkaSUM}cb]c[vfq{ZUk^_dk`PQ_VdcOaVV`]k]Kb[LbToHe`Przd^|lLaHIqL]Yw`UG\[GD`~`\T]bX`\QYMMYmQgJek]QSVrqnlame\piMeBvbOM}`afJ[YSake}PibY]K^WWaUcQ_NQJM`m|p[RX`jb]eaMg]XdT[j~XwZVo[~Za?qgbT\aWWijM[pvkXDjRDirG`W[^dGoK^MvlI]iyrYkMqZdmlXTFNJnd_DSZlvWQIpHnkrXsvSb`aVCQDhP\Timss\u_QmdZo^SRi[A|YTjVsSjm`wJax`jgRd]dL\`aLtk_ZZfJ`WcfjR\ZTj|m|qZ\]laVg\w]b`rli[cRV\Rp{iSnjYcQ]\U`fYOtxY`s;V\S_eqRV\bcki]Ye|i_ZVjYV_l]b6OX`wYXb]hVHYU]pkcQbKZSSpTa\NxVb_eSco_t>DUlPCgWhTPFV\;QUcX`[JdhkRbScjTXYfWaXIUY^_VR|k_K^flMCYL^bqEOdx=FCT`Mw`korhWcLqTYo[I/e`Xj^gkeES4mYus^EgUUi`cM^`][f[ECz[q\gfUe_egSTidZqW:QvfFJGNW\dX}^gULZdZb`epaGmQtoXhLXrV^P}iZcOh8sYVCD]SMdrfngkjldifMUxZemYc_SXbU_FD`lbHd5lTa\VSbgSlZc^5LAc_BUEdz`g[^rYoQGh}OXoIZU4LAWWmMW=oO^wgGYT]lDoVPXWM|iaclJ[tcvjgrY]ROjflgbTMnk]WjSlcLb?YdZnEVkf\PK\hmQJMc\JgXVzmvfk?kQPg_sh_dx[[UdVWTQ_|bQ|c]jxmjKpkYQjGE[SctXmBWQsoYeHkFycbaI_\QQUZZXPVK;cj`sqb[lqdt`sv^]q^jRNmLlr`k1ZO`QNW\cfrcmtUv^a>UXd]\ObvcHaTR;}eiSGlmMVf~DT]UgSGJKWNk]VG_q`Zs\Lstx]athm?[VOd]XToasV\YfGRRb\fixijh^m`nc[caoVj[Jm_rNEWbnP?X\Yal{]N`Smi_l_Ueh!ZZ[SfQVeq^Th^XlRnem}TcynYVc\Dgtd5JdWaYVkySy``Xe\TaQOo;cdEVhe`lM_cx[Q\]THrQy}\NDoYjGnKWhlhdKWSLvRlPs`]g_dzPOkY\CJ}zoeJ]qU\oaJDnJfHxb^Wfbqlf^g{sZlSH`gU]Q}jv`Q{Bi[_oT^tyjg_wrcSgNJV^\OQni]VgXPVpwPs[soU][RPLwV^QlTggZHaZPemHi`efPk[cUco_^\Zcee\ayumWdj_P[^gVNyt]wkXTfPUzQmWZKqefKXg]XfUojp`[g[dkdZl[[]qVUgifX`KOwdZezq_\b\tMAVdqXogjWNJTY|RW^HeVdkQCbrAe[UhfMc^jff[Tlu]RSEKvVW`ZUnbo_XcsX^jddCM^_\cq`s@ebilxVx[PVXg\b@f]`SrR[~GZVcfO]Bq`ofE^Xvg@gUq|?`LXT@EY>d`HaZSo|HrMgvHVVSYfPdil\W^NXbY[aWziLknEYWSG`eQ{a8WgZyIi{lHNHs`I^i\gNDYZoZGVMO_CPfnE^`CMxhDp[qnUOZWV\YOdT``rHcZhAlbJEURaRe\GeoceYKYHMEVVLTYdw_DGpMcl|mMMO]taxfbY^lVYXEVXi_gXRc]GCja_r^HwF^]HR7wh?bW]il\ujisdWx]Ir[up_HkCa^NvLaK<5OhXkgUQENJRgcGhmq7]OaxcI_MTncmRGKl`eUZWnJdULmXlOpPvU^ayw_h_YTZGq1\OqN[bQHLucRJb`[YfLNmnmdWkbjn`YFd^WnP\cxWEohOdRTUp]RGdTVIKjRXBxXoNpe~SKjbaCfT[^^WnEfRdibI?IakaaeLalcMkx}q9V;`^dq>`^p_RxL\>beriDsZuZmvlWEROm\Ymd>IQjamWiduUo[[qdUVH_mnf@3;y>RZB^mdcYTuN]jW]UO\HzkZcZjjmlmOum\FYtmI[PM}hfjwyXf]fKONhVPh[SsNXGWq\`]vhpa_R__jSZDEXLsnLrVnEOlVITlzZ>ZuXgq^b`LhdcY\ndTmazCSNp?OfVY\tYlNP^N^U\gcq`leqcTjuSlaaHpWi]a^\XS__qBW9nTnQLPcNhVjKvec^M_\ofY4_b^X^CckIy>S>pogvhWhTTVwYS`z_b_YsXYg\X_fWXlaSDaZRq]S[TV|TMoWYQu\]zHtXgc[c[GOTeLX\dggTcuPo`i]sp]Qa^iVemDoRMfwd]eaTvP_Ga`MvRY]P[RZZisgnQ`CicafncO_\NX[vN=SYlUaSs@PkxkB~][Vmu^dS|w^kP`^fRkKc=SY^[klgjuNM^C}KC`rWX]OD_iiT;~sZ|`ibXOXJeZh[NZSkkpKgSr^]aRg]RDYZMRyUkQrZY]o[gH[lbkzpcZvqgUWdKZS]WNKuk<^IJdebavSLtRhaU5\idjIoQCURmYRXXVedj[WpP^TW^d_WlrLRw\O[XgbfFlPW`Oz`XmSntpVY[bcJ\JLGY~\\hUVVMnCUgcxOyib\>fSPntP^meZNXNha]N^Fh_CuSh\`MmUr\gdQ\jIe_]Wx]]yghramu=jWdZ\cTiuTjGGW\pNFibYGrjZe[XNX~b\d\usXjWcZPZ8A[DXa[av\nfKAfYSTJ0iceGmiZKaSkMK_XSYfF;DJPIiF\]O~`:TbWn^jYHnh]dgM\obl^bgRH_O[nA[kG`JpmChuPX@kuJERYZINH^c[3gkDWb\xfZ|+_LTRifvZqThDujDyX|d^SR__ldOb>^BS?pKOaXkinHcNXhgcOUl``cpWV|`_PaNEXsjsn\cQG=Wc_We{aV][L[z^w\plUy\]MdOtMUnwp\LfejeUVhseUSfN|dXq@ib8dRnvC\fsagXi[f\TinUi\rfAAVO^UyPb`pXYdr[GY`dna\UNNhWJ_J^eTNUqo_Qc`6Oy`g9pP{pwVu]`[^b?_c^c^TG^PmeUjb[zXgirW\Sa\f{iaN^]\XjpakG_YmUSZVTxQVZ^dzplZN^VfZZN}MJYOl7_JHVs_fIVdhcymBMfklhvetWC]\mu]ORyqifJcigXzZXWw`[KfOMHp|RAWScObjJa_kkTbPlZLXTCy\LngYOG^t^WM]kXWP^mo`aj[rbtRxm{XT]cFaWpfOn|DdY]tRcbKaEQZyXZe^0lMYCsWAjXZBNGZ`SZ\`ymYjj]EgdVR_ItNvQXGhJFVw_pVkwm]_zmdMgNfefFap^b]^bbz^FkeXZoSqU{]QdiVZgsbjiWdfXPdWf_zR[L[cbpSaXtL^JcdP^[a|ULl]fX]KaMXjbalcl\VO^RgWYh|\ZUpPa[zY`uM\YVNW^c{VUVyZTe_}j`[Kf}\ydRHxAkUyeigMOaf\fLOEcQYM|H^iQLYUUhn\uKNY:WnS]X`aM\fbV\gRLk[qc>gKpG`a_[Y^hWXb^XVQTS\KlMaGMsMhf]nspGwWnUVdsKfQX\DjY[{IhLTQgpg_^SlJkml7SjdFL\UrhelMRQY>\SVb[kdPY_`_\Xu`L}TTRUQPcYbRd]fhhqasnupXW[^kY@V\XW\ggeUYrw}DCBfMLaZt]V[O`l[ikH_\rX_dc__\Pf`brcuj_uOb}RYgUjYh{{;jbcL[ZS\\hUE6XPXd``Ue\nh^pd]_\gIXxjoV~voo[ah^Tlm]t}t\yj~l_a.k][KMC]jQXX7a\JVql[\nd8bVpePcRIRkk[cfl]Zc_cgr[Sb||ckod^gd>rpnQ[MgnraNXRafPwAqM[n^MYb\EDuu]fBt_W[WWUgvcKhk\b\p5H_ze[SGgbVXb]rh`mQa\Wrnbfqsl5]^ffT[gO]^SgawoihaO8O]UKXgjnLaCO`etcSpXLz{o`OUpQm_HJUdZ[c`aZVi]MVd_vb[LcdHIa\rTswVUTqObh^UN^xeMeUPY`\pa_HPxT^PhNJilZLezek]wdidQNnTmt}\U^OmibH\VLTLdPLfZs{xXMtb3`nS_kdTfFhXjsPqUwInrUbc{RyUNf^p^YociSXWX_lZtwMXh[Ve>WsZx[wodGGZ_hXLTkZ`UTlaRcSa~LnVwlTTt>iIX^oh]dtaOfZbniczKrqc`Gaki_ZReL[i_Va]Z\LSXr^[WPRLuta[bWNk]]hOTmUha}iWtYaXTksZQ_Xe[]MrhX_VeHXfyfpxgTScwzTeN^RmvuH^UIjjfUPKTvudYnpRXr_RtdUNXx[yWea]ZmLpXLwNZ[QdgrXa]bbJpA_k]ru`fxVpp_o_~Jo[b`\M_o_Zl`[J_aR^Rjc\mQPkTqQfh^cidUTqrbdb|R`sLdoL\lSgOY`fYVO]ge|iZeOeaDcd|leSkkfV~j[I\ZrWdIhgs_]QUh_bjff}g][OgaDeqxW_QW]q]jdj]mXknJ`kpabq`X]YS~`jh^VnTosn}XgcZ:jn;AX=jrsjTlB[z}zvVmC[WSl{xNaLhlZ6N>\QnnvowfDL_[\b[Rv6gwijg^[caWac;Sbc`RMJOUDaNOeN]Q]S`soJounPP0iAPS[\V8RPYLfW]aAepgifeOkfV[XXVZpbgKvb!fP`Kns\[hHL_cgghoKS`^W]e\wkVgFcwqjRRpUVWkGXSSe|EIoObJ]eenb]R[oW]ZWQST[K:LSg`YhR_H>dM^^y8cFgwfZdnfaQY`^`ZgZQTr<\er6^u~oOJpLfZWbWlXgXDP]GXZVdY{QGshDfljgDM}a`dtJFC8meMo[Pj>h^bZaAnWIEePM\_ez`U^reTXoe}j`hUX\ZXmeVZU\SX{_Dd`]WUZMVopk]z{Tie_fig}]u__gcjg]VsfrkbNjcNhRDVuMN[nj_y^s_[Ms_dV]Pr^cnk\n>ZMMEhQrGrjW]Nehfj`OuahWYjpkXYMbIbmsa[XVm\XRL__YdJMIXSYQLpoMZStVaVyWdXgnqUTbM\tXht8RPlO[ulVaard_AvTwLChb[][R[bmqkYLW_fSc^d\fde`PXcloQ{O\Zn[`CdPp]uoYRmahhYYcrPa\YloqUddIJEQLqhYWR`VXdfm^ebRnUcLZ`n[g_gyTQaZS[r]IhNLMDLfJohg`^CC]jke`pkqW^^WR;^VmZXgpx\RPzbc`Gi[j[lJ]\DQlVb^mWSbwZLIueUIhrKkVca[i*b{\ZYXWPW`KYs\j`fQsyjafYonY[Iwej`kiL[^Ebq^J_M`gk_Zh\mhekXc_XuU<9dOT?XliUGhm`rlwR[c@ph>ncUWiWQ^So]`_YghbM^]u`qA\DH\^ncITfJchbZDUZa?gicpy|RThxIWM}8rN]m\\tYYchDi9oOdUoAWqqtu[Y]XO:]cL`KRlhLWUmu?Lag\iSxaME^lRK]rj|fOTX\\@ieUGf`]JtpvsuPe\ocN|S}GjPRafRnPcwvgg[CJYz^eRodPg]b^y`SU`E{HrRCQ:iVcqT^oYX[iSzYO|VMHTAeclPRnjY_J\dckS\i]QshPZ@kU^b]QQqMXdVcKvPYh6xrdIyZr\vWw^gNdeRDeYqrSUXTN_\bYcciS_a_BQmeZHmu\|OabeHZTTQLQjaNkYa\U^`f[NteJtt9IKf|OjWaPZy>qYL_hrAbUZFmVJWM{iXFM`qXQtXJ`ycZDc^YYN|Wryfz]RLdJLpR`vC~TLakzGdaVg\jUcTV[lcPnRX`PYiTxRcVwVV`fabimqwUqUTT=dbYd]smPQlgTnfrfRgOaSVXT`Jub`QgnY^WYfubcepaynVki\Zbd`o[iclYZXLeuo@iTm\yjKlrJcbagJf]7Oqep\pnwXPJPQXRBMff;[`d]Yitc=l`jiG`l_X`VUNWwjxuGiaMR^bTdn^HgW}_RWPPfQh_FNbvYpt`^OdAg\n[Vtog_TT`Z_]]~i\nIAa`]\deAqYwBPiWL[tlaOd]cN\KnLXwKtjll[fOMLWnFhyFfKZgYH];z5[=`:^u]Wzg]TdZm_]LZbQ[hoj9]BoYEaZIrXg_QSSifPMAaaK^Sgt=RRjcTrVEb[=lVi\`ORkSvV]MgcIB;CYgTPPv<`oPSOnBmeFH?UO]}giM^\WG~YIT\o\\pVPfS`bvPdQSd\crrfYVf_9UVf`{WFREVIupq^\xORaMPXWYQdZ[~pG]mxKj\ZyYJhIW~[XvRTbOmU\E]Vfoi[I:bPmYg}LqS]VPE^`zJcqINENL]wy}a]MogFL]S[J]ROUPoxA:[^dLN\[JzT@\MdN[^]V_dX@p`+kO_UPoLRgcdmMf\cXwZWOP\JAR^:Vqd3Yo]gTQs_s^q]r\p[ad^IZPcemjrbbYididcLnunv`pTL_f=dGiXNKXtFOvXOv]oaCOsXHZHES]Eb_`j`niagQF]BU\xOc]Qek^HxY[UaeY]aIj\kSM[vpjYuXe`\h>scbvIoeik[rTTG`+HpLVTHsPZKfIm[mRkyGbOc^lf\ZY]J[\^hb-gjavb^Kp]Ukib?jme^iz}JkcTIVumh3emQGiSJb\f\`Lhido]hWl{\ZLl{dhU[VOb\YweR\[cTSzVZLoZijdnZUdRgf[rSe4Wfpfo[Rin1TXDdQ_ZPU:eikczW\]hdyPcoZ]lBkLPmu{KHryffSXNOegU]cfSuWKn}WdjRRPn_{k^cQTKIecWbMS]eTqr\QkYZfpxk~T[]_c}|dIPhZigMGiMcHY\O`UQXPWVsefsth@hWZpME_Zb[PkdxV\UBf`r]QpVZ|PdkDeni^agSd_Yd[Ul`bO>MbY?YRVL[}hPf]K[ebJRXSbqmtaOT[\7mUPOB^qpMYZMZQFTHXsmgJ[tYNnrqmS\rPK[d^ikOkpx^IakT[wW^frnTq{M_^dwLjxlnoKNMqn^\TxQmR_[bODjpwfulg_Pz]A_JXbSlPf\cV`g=`mbKibXuzyDVq\mYy^OTfGI^YPyfcRPmcG^;LirVRJtoxhvIcupYQg_Ta]O/g]Rgtm]bbgdOmcw_Q[^c{|W{qZfgxbcae]vbD`bSZ]ejmRLcum^a]Na[Zn]hnbnLO]H>WTdqkA`YoP`ugVWf\PkxUvMcg{kmSY_iQ?bWZwO^c`FkAdi`Vjl{^SSf]TYve[Q[XvFi`fnheHZ~jNJe{ZTozPZ?lIR]iWbVecfjP^Nw\SyP[@R}JGw_g^p`zYh=s[`^q[UFM=FnrKUhe9`c`YTl^oWf\mBq^Nj\[`iZaSoPMmNMQcSRNRnMYp]RcZH]QL]``_VkXmYgbGf`aKcM^ZsiX]VO]eg}fqahYT\PuqshnF[7`Hht:`ZQ\g]QgfhrXE]_`\hTvVxvbfbY`ZdMe]>a[nY=ohX|]Z+\[UiuC`nYT\b[ANaZNzllaQFf[tKQ`W~~g^UwtUnfNTS]`shlOagTEbdKiMfjLAf\mRQyUNDqe\{EMeV|isf_LKZS_Rp]KSX|wRcnsNJG[]G\d`VW]aJMYj_F\fTZvw]\dKSibbtqY_hKV\[QTVqONfMdfXw}mkfcNU^i[HwWPSW`ib[iO`1gbzVdSZE]p^VNzW^g\WPVu[tXno^RhtufGp[BnWhcT_gZUibVxvGz|VxmYBalLaGdWhavNDmX{ff`[^RibXifeWkZck_RVaQjc[VoEzhX[VaAXdU]`azeUVaZranlj_beIV|fuSSUK]evalHYvgn[l[WtoiYZf\mV_f`[pYhXK9PVSO^[GLuEbUX{tisdo_]\bfUF\]mu4~lVojh_wuIJpbikKMiVgSXbr_wN{SZDafv\iFWgcqn~JfvIMeWCij@^rTenIhs`e\exVc]W`vkvYdjLCumWgYg|]SNfkcNG_}xJrMXiuNV^h|K\\K\}fddihLxPklbb`{eL[WqsIZVtf^WmRmTidvXFe]nl`uOlbQLObZV^vdko_bJMZseXQ~evZvdkGaVGGSHcmfivYd[nl|`[nbYjACGjdPo[WMWPcy9~XWoPeYfI?krRQFDqbeN[LSReRuJe~RTU{mpcn]n\NhO:_^PZ4^jkn`QS\f{eiz_APiMHn`NnI@hUJB_qrFF[`Ut]PgX]xiZLiObv[Da`_aLhHPphtRYeYjNRHLUXXYiZg]gsgRddi[iQp^nslfSSHP[djchuFqfwljmb^e@k\ryRdz|lUQxt^KL}P[9hI^^O@9Kmki_pWsTYXLFDfQueSTbYWgxaZ~U[fZJ~yGZvSXiWr>ezXgdGf_W=iQXbVOK`TXlUDXW`cKiidFGL_yFoNi`gMWs=XteyRj_`fiecgbVkWIeSe[^ncLawKK?Ag{MmVc`\rmqDLby[\IhVddYKLIuo`TSD_XPEhDcR>Oe]k\dZU^m^`IaZ\KWSaZerKahBjBd_QQjUUg_5ZPyTHraTklfYwR;Xwg>KWeh`}niejYnNYHPL^SXjSrRdRqUtfh]KcAd[fd[WB\[ednIOZA?CZgGg_:wo^N\_yRMBcdLdkc[aWatcnLS{XnOLv^bbOEj\dYgdi[lvenn^eDVeitwXbyO[TySTV`XnkRbWUT^s}c}cWYc^{XXKQJ^qlASf{?_x^kY>}WL[VleYm\FFkFFhepamMlxcZWVWbiLB^e]WTTeXTbeQ]{ZPNWaYOOnqNSHWVU[lCQkcBTlRp_S[~PKeN]Rzl_pWhY]OztkSo>UXMXDeYaKHbZdYeRNh{fiiOWU\ip:EOCekKhPoOsof[avZtNWTh\YlLvXGtaPInPnuYeYpVPJ]\TTkW`mWjaTdEbWVJvBUYUOQKpGsPWyb]WpNzo`\}\alm_h[KVPUMlMGQU}hKy\`\ZoiXhZIAYlYSzSaaKPKRITdyPRbh]RQwBz[dgo~a]lSeyfaJC\WnZWbaJK_IU\h`cmVmoAddDdSLEk^Ndjqj^r;b[[vbdcQHTqrE;`^R`a}[S\q[c]]`aH^]mLjGLpnbhQPqaQbHJCLU]XYvMLl|XD_WGfsS|agXYYZg_S]IutrTBFw{Uh]qU[uxjTlTIPUQMmTb\Rjt[lVU\[onf{GZdzRgSpn\^^sZZJ=@_XeJ[UHRFlgHMYZBqOZ9ZddjONTccf3XfZFI`abyUNFhyhF[[hPm{~wSYu^VS@VSTYacQqhX^ccnfhf[oaMOnbc^YSeIgWdhWywzoeRhbWRXdfH>anTlmLcOPVpkVVmo^Lw`St_Xab[ZZrhhmmMkV|xYHEoX\Pi{Mdd\ZjOfVRNTTpi]SdsWUd@ga_VQLqUxhIZtTe^XleeJPyCz]^Sz_]V`jbmVWP^AYoP\lFQFdXPcJ\h`kaNhbL^QaW^vtVT_josrYNVkedaxKYZaaazjT`ggXMZXRPHY[gPkuuOIbVQg3NQYWcFZ\i\wqckXORab]ZHKKnSXxGhJP[AiUiyOqTWJd_gCYSgghsMfTOMURKpH4hAZGnWZ[[?PwXfJiNFkfQ\e\pcXPYDBZSF\WQX[SLEfO`UmWU{Wfn]o_Ahf^pap]RUUrbrn[XgGD^Oj_?ZfVcTJ8Zhw`P_gMf_^]aVjyhXSzbHWWTd[`^Zgd\jLAnzZ_YjXj|WNycr[ub[`faumShC^RC_PoWl`hK[AdvSrUX^ljORs\Rb^mLM[jBud\GnU]oBKY_qtp9iP\O;BF{[`Te[m^xNnJf]\{^Ub]OxpujOwISQW|wiWhaRcNRye`0[kcP]V^sj|\]ROZhpQY^PKtZ~f}Z_TUlr_Vn`PWh_X\KYMdg4]H|ljShh^izRSVmTSW^S=XcVT@adn[[n{xsjP`tIbieYstRcddHZdgc`PWcMQi\hv[hZtkZHscOLcJyehpY~^HNJoRfJChX]YEe[a`]7KTSfLlCekZv`alOLe?_ws_PmThSbZUlraJLYSLXXVhgUXIOehGWRoJGbiZPziehzQtI{UZWS[UTWJM_LeQQQh`USRdoh_i\[lgQRW^dSHs~wn]TH\`B\_PIeiH[cRd^mq^Nn_N`MxHSofrsUaR_YQsiukU]X[Q`[ew[TRXVL_gad`JoVMUU^b_GaFVxRb_\e[aSZDZX]ct^NTRnj[pc_IM^LeT]U]d_OeNTshAVSwR{d[_NXyfCZmmsTXe[TOkx_Cxxw_QrqFvsUanO`z]BPkgtZhmKTDlqfk_Ph[f\;F[odbj`Xbw__}I]JXg`}\Vi`kkBCW^qa_SY^bUrNbrLo`oiuX_uWaJ[EK^dPcwMcifU\m]jCQTdYPQAnochf`Jtba\Weq{mYT^X[ehWaWq}[ekq[UfV`wbinaQ^IuOO[FmOYfZ^bTcUffJmridS^bIiEyD`\GpLfdaihJcAoWaQYf\TkxFBj\TiKpF[WX]tt`X}RvaaSlVe^b|LAaP8Tf^ld`[WsbkTcXXqE{\\BWlEg=@zUs\dWKviCGWwvW_{sh~fXHOWk]g\bIx^SS_,:VIPF?{eKZRRsg\fQxgtM`]PbsWWmhAV^]YWMLBL|lCIZeZ`HXErTV[Hc`jrQQjJbkjR}Tb\oJi]r\cpqbRYo^Bixeh`f_^]ld]~[t[Kd`orKTKTV\kRJZXVkHTL\Kp\tWQJSy[YLl\aleh\[TeKZPaiJYSj}jXGOkbynd7WMd{Y_Ji``e\wZvPUI]eEAojvY[vmeb\cEXrs]m^SLwuapUeGWeUdEVanYuSJOZ:nPdZaQ^cvOdWhaBovWmWWBM|vFtLaEZTsv`TnY^IXl^C\fKY^VdQrh^WnLfLPuFlhMvN]ZgVgJPxm]Qe@[K_`x_TlpqfRdhNdv[YxSVNZWU__Y_]~Tip_OqnpXU[wAh]SLJudeg_cmacf{d^hTSOfi]}XjafLmkfS^[O_PvwV[}Ka_T\pSK8kM}PODay3J_X^k`vmn^^Ev`fHpOSMssiZZTO`dMaTw]g}RBe_cJPIV]M6\OEjUogfNTuyZTNeQ[B[rV`scklnfclN~PfO]Dg`cipXX_M`aJQPWSP_UifnopV]VL[RP^XoVFDi|_Wa`VjiK`iL`Tfkh}\WeRR_calhCCqcw@LlfkeeYVNXUslgWb\XKNvg[PATqkbZ@`jW`NhHivFcO^]]F\ogaYr_yNOvelQdd|QKfKr[_W^]nQue^[^T^hh\Xoj\[dNIhL`c`f]gWcxQe}VZ7aKaTqlarZQ_NOwaRoOAf_T]`ov~jUMW^k`D[Q\scL_gWbUGiUj9p^lci^gl]\ЁkhlN]inQFdUsEv}onV@YXh]eSOh}anVIHzlNa~d_Ri[QYfnJIdLfY_NU}aFpUHFulNKgjem^bolOBabWSNU`bZ?JPesGtT`U|QSQXmXtIcy^W]amShtqSc]sbjoR[s[SQO]TiHuLVad`b[HGTqoOXNsUU`gbwVP^~;UJ\`8PPH]XYjyKpxgchu^xIMbbAYHM]mV6~LEEs[cnDVBkF:XhoZr\pdJs`ETm^lZDQPQgJFkXDI^]@FVf7TRhWpKLfKat\KZeRgiAuWpKtgogv^KY{I?4^Hj|`^aObVk{l^_6q[EmiQ_rPd@g`Uq}lZj^a]X\jQwjKhLegk\awT_aagtglsg|b]ZLQYarphyxYafWGp@sMfPd`taT^QYD8TTsVbgth[6bLY{fQggDQZbcSgg(EYwVELNbUK82_RR`HUO`b|nM[?ShPjGVVv9z[elE`Q_Y;oW{VigzKoyQpXCKc\GSZ~ni]bTqB[TjKdgI>9eMmqZOLgKWWwRSSzc[VYdD7;S[knVe^`i[ZROrPaYFiEy^cQfeRL{]jhid^xnq_wqxWn]ZPTgjgJjVWaL>raXPZhlgj]ORb]yBiv`{]IJNcfbW]U[_T~QLNoPLbGG6pKFceo@qGbZlT\dK[TlZAP`qldLjReX\HO|HROw}`WdhPa@_gNoMqOsPW]qTh`NoEbM{VV`OIWbce_>eGViiUb1CfIE]aRbPnMSQDrZPlVbU_PRMYuzl[S`PPKcoC`LXhJ=YombSKKXPnkNiXbaSjlpkt2emBtUR]w_f_HwjH^~|`GFkWLLhrbrzVZSgLaYN_bY=[pXPtnHYfeYS\kma]GL`S@GleWQdWfbddSchb]WeInJQCD}WvXcPpK3V[|LWc`mFJmOTZE[OT_;yVG|UqJq{qH^tMcOomPMdwU[eg\cfogpyN\F[d_YgbYs~VHQPjESR]yzjQdS@=JP`Xp\UbkQSZ~cZL^yiKUh\DR^o?oeo[Rq`pR}RSog[gTtgmFL\dFjbhjQWQy`WhOf_T__`_XpW?^YY]rH[c[nvrJZrYhVheDkR_jeo^Vfap^xXS\jRoRy]HdjcWvXkdXdcrPdP]`gHIXVO|QHaMUo[^W\;O[VUYh^TRciP_fn_\=ibZcSm|glbPQ@vPKuLudvrrnmIaulg_jqVT`NOYPmh`WoEgMgRK`Id`nOwh5pWlIUXZCNl[bQGLXgu^Meg^wUmhkIVcTpuR]jkyjZl\H|Zb]VtYzWYT`jmAOV[YN`=eXk^dkrUYAWH_IXyG]XQkbyhoB]Z[fI`_ZP_bPBQqi^gfTlJUSXYyc`WJmVml_MgkxJ\]R^H[Z_WaprS]ZLjZFr_MMkQPlS[lzWebsObVd]P^jObf[l\pJUl[Tcevd[NSdRR`smbVSJyX^lhPSSe]bVp^flV[Tpe^e_oXnX]Za_]tm`zYjiywReU`TVfbYYW_eRWIMqRh{WTQj^`XmTMtYJokniSc(hMbz}mbZ^uuOVT_elPm^O\ePk_]Rfht[gUGTl^oAaTRReoz]gREuRhYU`[zNOiTe]oYKd@KV]Nr7WW_Um_SUqaLjb_^OcQWlrv\awNmgZW7[,UaGbkNb]sW|LUacWW[_i}lWSNl[`gi[]eQv[d|CblbbJi8uvv]omtmbSYm\gg~Y[eqO;dnW]]:gD^^ldlM_@JmZptX]goRU]:T|Ur_LTkYLRhfRysW[]co\k^WHXDOHbdtYx\mbd~Sz[YQGGXqIZ8Q7xWSLgsf`@Spi|z^vV]UP;z8OPUhLDSjYx^_oMoO^J`dWJLuS[J[WZ`meb`a_GW^l_WTPV2{ZzkoZcJt\_\[f`honMaf]nJvfEOlzTeTo>SbPSJddLchhff[HXVVtpgaYUWs[HhM_cUmPNcnJeIir[^IgR_vMf_\ab\loefhH~sptxRpcQiXoWX]LoSKsLlevoZtB\bqjMczhdoYd[PhUnaZmVPqoTYWb_{qLfwS}nYfn:gTe}tjBdTOTHjTSU~POqam`7YUrW{^ia]l:nQ]Wrkl[]bgmgVlIaQ^Z``OI^sIefkfvNeQuIU[cBJNTZT]gefY7O^_^eXKv\RNPVUXaawMeSZ^_U[jaPWxNWc^uPMr]RknIVvkX[iH_gXsB=iZ_>XqeS[JJSWpeTVghC]YYP[jVrVbOIbkT{ieFXN_Erpc0^4}XkQPEZ_EdVRd?WLic]lilba]gLu`noNpGaBaQgWd[OWNNk`R4fV[OXSSQT}_\]Q\cL_v`Bdif_fG`9ah^ZU_n?byofMWQMm{cHW`VvlXeZo[dbvY_Ijna]acPVFsQujdQgePGeen~CQTPPmWaj~V^\kc[^glPOcE_\?|RbMTr^aDJdIYUTpNOVq^^``_IMza=DJyVZmBXw_cgbmR[VreYW^IbpVgkYORN`b`MRFgX:kwLNXct`]\Rim[VYeR]4|[G[FK`WbY]Et\cUmN]_to^w@\SWZ]oYk^]^kTWOQE^Log@V[aVKsOxG]QOD^lSkbLHJtOgabOi\rHdvjblg^VRRjTr\:\SnUSPf[iIYp_kRavko>jsbRVgeeacmmNUVnKXjhmAPc\SUQwkOZWp[;YBbXe;]WCBMpMgne9:V~nABYWsbT]JThKnP2erSfQrTQSdJsV]Rc{f_XTSdsCSNO\[DR[i<8G\X`sGjlwVQbqsQYIkY1a^o^nCpc\eP]dWajenwmWlhj}JlJkWSm[qRr;kJ9PT^NRsyXDMcbuK{qT?HfCeTXuLxipoYe^ZNiVW]mZZ]jtl{NDlYe]dcT8Ebau\xcQ\9g@W^XIVYJL_uhvjmVKbkZAjJiRr\raZdZaQdd[U@cZHPF}FeMyE\RllbWhkUe\coMy\VbrV~eO^UVx|\sdlYtVK]M[jVimUA_cXWTQpTZhedZBZqd\MRVLuWUIfZ`eUJ\btK{WGF[TKXZTwJWliLNtWkycgJS8[NG^QTaW_qD`dhhp[K_WI]Vbb\;ztAs^Vdi`XaS8[d_Js`JWX[ZbNZ``iXOPah<_bOgdGAcT]vo_rKiVD`IuAcsaJNOKm^`a^bS`jOuZXTQv\FYQ\oBWcQLZVV__vYDjMZl[UCci|\UAMMjiSL[_[la[}tHfpWfSsIFtSlk\KQ@ez{Q`cVgOVUTW]YZacKcPW\^i]ze4pYt|yXycVKmiSRY>ie{YQUumSNe]bMi\qDc^V`eZK\aJswfT9l\k`8UWlNex`jjpHZr_Y`g{alifyfFlf[N]ev`n:PZe]HzSfyOlc~]Z`PMLYjgNV_nXjmRppVYW_PS^c]bbpZmB:ec_?qqB`]nP7N_YTP:|WcMgA]VY^TWeFxIXscbCdU_glwPY`Sz`V_XcZJT`VdY]a[]vHmLKUdNZZ\WUcUUXQYNgOmSZGVkbWFkWRXyPeWnh_u]NUmR}V[afdewdZVVqJ|UiPSo{PpN`\_m[]^VjUaYdqfvmf?`AQWw`QZTy|~PgEfrJT`h]dzelHWfYcaNUnOhbLGKOGxdZ]chqo^N]UZPJ\UObXflRXObajwZ[y/KVPa|INe_b_^hdmPpbXOkyrnURC=crN`zc`bfnNl`TTfnWo\YWaSV@[e\e`[qfNaQvSxUhmJbNcfiZRpUYmdJWEbX[ehdcEeee~ZSArdMdvj[E~NFwPRnA`F\Z`Qi`ifNnUJEixU]ckwWAPwJeSxggObiOqki6fqmrL`hlf]WX\fpbWcbs`c_qxtU\zOqd\r8`gb_l^ILdfMSgybhbLsgS[^m_hd^VSOSSHBwduy`F~6kcVWji_TtO~c]nu}uj_BmXOcM\@beULl^}t@yWrlkPkRik_tWrXpMU[UK\kXXWkS`aBG[dRMvNdOdOPcdFnbGTBTtNfXbuvSMKStR`[NcrTmOWvZgWtiMTcjOfQqLaYZZUbDO_p\knVkJ^[N[QPOVy{NRXGqSH@@eYwVLP[K]|YPdU>oIg]d]]nT^wEKe`myWCdMTiO\_SBg2nX^[U\UkSk^[nYYEDDNTq`LQEmnU]JLddTSUOgYSqPDcLsYCvSRVLcOvCWPAW\dr|^KPcnUuNYpI~MIQ=bJRx[pGSY`sRTPOv[U|VX[^X[iJXnp~Iaa~KS|B^_mBMiILuXTWPQml4]yq`iliWFYZJzIkXWVJ\nODcYnV^Xamr~Ty{^QKWMESUmeeWSUUMIThbbVntUn>Q[lNV?]}dYSc?\JG_UApeTTkf_[Tx;ItPbhghNn{^]dnk_Q[djaqXMXdxwZDLb__UC_bb]aKjtNQNo]n[^SkUNcdp\SfRZzaPUWdGP]vClkgPw^LGJfL{KJQni;\VV6WC=z[rUorcqgH_TgLcWX_c\a~Pza>YmPp`3=bNHsQIFOTSEqAsWfUiKhK]sVPd_Q\VZ8w^Ga\beZ9dHvWBhSSgfSEO2NzW`ZXp`O\pG?TearZ^^k\QQj]INfVgUiO@afIYBbt^m\hZrkPtQMG>eYcdXKZFaX\zJfQac\yeZPX[v[JfQxNO`?PR~WPUXlXQkXdXsBRYeeE`OQb\hUTlswRPn]phOhQU9qFvP]WE`aeaOEIOSUWVg]\KkkwxKafHZVD`wO`hLbQaeWuR}oSh[[ISCTOMRfNUNH]e]9Veb^J]:^C\q^oV[iZTrNv[RA]|^f\mzZS{s:JZjdMuGRmuLqtfG[lQ^OC{]QUN[_cbOgpe1ukicQlabPL@NL_MZQlCMffFPlxdblnJb]fUzLZcl_~_GaiSWsfPeiqV_u^]fH{WLX]wjQo{dfp@Rtb_UqVNVRsombbrb2a^tK_WWZZ]]EKtuEEdN^kmNvX`pLwAvh[rviOLzZm^^@X@ynJaOqoacXikhBOaszyokyakHoqS[L_c[>NYE^ZbkHrUA;`ajjdNPdKKTZ\QSIgvebcYku<^LibBeLliOgHu\WBppaflockj_[dX(baJ\y]SWZldSdfnNTibASTgo^\Va}XOOjdchwUDJtmDz\[Qh]|c]rz\kq^]k\bkXYlE<~QbolFIMPaHBn`\_zpWfx_\Hk]Rcqe`Iyw|Vae^\PhthP[MFdVZ\RnmMd_TUFGSWXW@lVJbIgnk^[Zn=`zYbJ_TR\\ZXQuWgXQYx[VhYPa`L`GcccYHVuuacSPTbTb^kW_;_XqA`rLEc\Kz\\aMAWl[LXYue`hd]W`jT]Q`asKx}Mk8T^MoNMmeDFQ[SQ=c_|beUjlinPcUnL_[TmNZ4QVbUbdoIpSO^_XXX\\P^oi]tpuosfe\hG\TUWlastUhcUcc{b^IUO]CeObY^R`qh^fe8eckcpMORbkKAdhtgy~r`QTaLipSQXO?@pjZ\TQSqti\UUP7LtWX`rLUgb[Ea`UBdXnhY^`JW\|u\oUgw7mYZihdXT`I]fKy^cao_nhIAf`Jwr;t;}^XWHgjHX;TV^c`kw}QS_b\[i]kcbjJ@r]EubmU[`eeTQL`arS_d_Q[hl`icdGKQ\LeS]u]XXM`\aYuLckGFp\ejJgYf{R_xW`hh]SiLOn_OdNhWoTOtT\`Ul`LadTmMjS@la>^jVR^fRWTR\dQfQQ+sNkp}a:_ar\sy`Har`[|ZGJ]S\vT`kfSQ[i^=sS_ogwpHqWZ\LKUg_^HevvF^r[nJH[WdvOP]xR_J]\uAXNnXTHshnMbDmXIdfqQZOa\_^[_J8hiR\`qeBP\[nU]cY\Zj^o\F]li_eg\}JhdZRN{Xl]`OnWNUEfegTNgaYU\]GxpLZunRelrWC`TTj>auCtNzFJHS^^kiAhSnTdRyffR]`>ja=|gJYV\U{jbD[[h[f`\^O^mU|zN]LcudKaqpYpQSGTNdiZvMhOdPzNO~IFQ]s:lmg_J=HToYjHZPg\xdESaN]}fJLQFFXSrRhsYAJL]llrXD`do_T`^gMnhMkhafIHNbYdbNKVK_mr\fa[RCVy\?KTmLEYE>ls]p}l_b]OHmTY_]WM@Z__QhilIyOLvsTTt_PLbWLPl[dTto]]rRUkE]f\9P\NEnUZfxcq]SdghJDzedrU[DUpkTkU_FmXYghipn^OV`^eaYY{]QWjleeSibyRMhSIze^OUPsRlma\ezMREeQVGZU[_HdSYd|K@OHRfd5epz_eeSdXWJn^NvpmJ_ma^s:cYE^`cLFhN2xVDN@kSkMWjeY:TUfQ3eNYoezMVh[^kM[fPZdV]:ZcPZM@oOaujXzw]qS~HlSw]HEVkX^lFymTVnUNcH\pQXbxqQQqrX\pSsk\SHlQR[mS^CzpePBrgdl^V^O?ewXOgLKaQcbI~^Sar~fPMITaiqS;vdvuAvGdMoZX>V.hpsRZjbZl[p{b_CfntkUOy{\xcxshxdLahOtVS[mUXVMs`oQfb_~qOmDgdsD^Qni_uRZrWWTt`\VsgxT[d_odQqrPHaO]p`_@fr~rQ\NI_JZR]`ZLZ\cGPXajfoC]gVadhc9aJJ~ilLV[KVUNw?ixkOBVnmp[Yv_BpbNVJhaNaYoodZecy]gXgVTUrGb6qaC^Qbj^ihihUro{\iz~[[TdQvHROvUxNRW=QhgUlaaTatrfLt[iZUQZF_hX_aZqmcgqhBR`wcuoNV^]mbm^fcb`^[J4UuGeNTKNsumD\R^UEWWRqq|Mpg]SZaoT[EzZ]UXou}h_JcHpXlT^]Ifd:\eYrrXZXWgp@ssJUgoUeR]i_TxtoH`hz[oYBN_O`fnS\erXWbalZTJi]DeaCRmQcFblcHrMxGy]faU^qH7xudqhk_WeSY_ZpFblSYNf[W^dC_g]Z~eR\TOeLrEhnY_V\{{tXYzlUOvS]MXsa}`_ZUskZiTZy9SL]VfHzdUJWk^RS;assgN9_chehNakDd_zbqhOhdccS`c^b\lfO\uMir_fKIrYVIF^[rlWbLf_bc\Xb_=Kvmi]MgZlqcEjRfW`_[`O^aiPo9PU\7_Z`Hcj~BMtcQ[jSFRajlioqYcTdcY]c{ldVZGVtV]~CZUJmMzgoPlwPRyJXc[doa>vbZTEGwVrR9qsbegZMP{WRRgg_cdf}YOUPlI[P]vcNfPVXkN`DwkWctY\vwlZ\WgPI^axWiR`[UA]_8krUnjiQ[KP]X{eIuOU[\nN]Pb_Do^5jt[[pIVife_eaMY{L]e^N[ISz\k`[`aN^9an[Ve9}Ho\JvF^ToQfEnNkT]xYmNi~MGn_E^f\a^_Y[oqOlOQRNkfKY^\jhTYRB]xxrfmOa\dp_bZ^vBkBTTpi~Ps[^^v]|`i]^mKPrhXcakaETMqaUbYeuSoDeik[I?h\VXd{[nfcYUVSHh_gPMbbrhUvf^w`Xbex\bGKOVZk}S`Xd\pZb[feRxrQe{gcObYBj`WeINbd5RQUd_ei^t}~NXfh@zrsVoj@dYNvRNSMac`NWP\qOcabCHSdj^RGYQNNnt[NikktbR]UP^}QqJOTW[g~UfpujZlj=gpPgw\df^JoE\t`ZVjOmWYyWS^un^nOQg]TVy}q_aT``~OOj~TKVN>~bTZv@IykaRXe\}LbtDc]eb8YfahOBmWNPXUBnTyy]NmUSz`nmC[gV[q\KS;mgPHQN?QU]azgHX\neklwcYPavzGjZaunEiQ[RJthJVZtjPdzs`bmheILPXrYTcZ\^[]Ai]pzbf?KmqtdS[WaYrX]Vg^\]jSSTpzuu]YMr[`SjcdS`lVLnRr_Xf`[ZWJ]HdT^Lsq}I@RjcoBaUM_SEdX^bs`gHH[brIs[[b_j^LNFlZKvoDsFmPplZa_nVN@ARTW]Y[lWVPlKPJrZwocVc`b^lHLQWegb^EhNFeLRI_qoXgc]Nailma[cEUCbY+>YeZcmXWSZ^LeYAYkN`QOjY\RwSJrT_t_o~pVUx`gCawugmEL\QsuR{R_algvsqwK_qcY^OlW\]udfHJu\WTDKc^TeT^[Rdj`fhN^\s>~hU_lPLxRUmlUWqr_lVRQedQNji_Ds^XV[P_^eWMVOZeEcvhWsckCTymQrPbuXTssXXjV]iQSRIkPqVDYYtZkrSRIZVV_l`Pji]LiXORJPFU{dhHBOcUnDGFpxON_eblOSIOeR@c~e\nP_uCR^PbMZWOFny_QjvMMrYPtVDXSPhWndK]QjX^BWR`^Aitmg[bNtbM[ihS\O@TOZ`QGNLjRjWOlOHoJAkjh[YXly^bxKX{YndfooQgXHjUykbidbQAP^]PHmn]d[XbaTzqRZn_VW^d{ccGTdY`S`\J_l``X^[tUaLYTfiNb^}YY]cgRPnxdfk<[[ASbYWiP\Ugh[YOGUURj]WUf[Wk\iZWlYNSR=fgOvpXiU_arnq[[favITUZhqdi_TclTehaORdeV;_kCxbUZDVtVmNy|Ka{oDRin^L]hh|JoRZg\[XAZzc^IdWUGtWe[dSeIsmIcnQ[Yllb[[XNSn`YSTM]`bocpbVgeXTPLdfq_`Z\fqQ`bjksV\`goaQddeeJNg][4RoIc`Sq`ufX^\zWXXExbp]eM^bhq^>]|N[RDHMEcPYmUh}qhW]fZt:LhzEVVfbU=O]njvoPlcS\XZGmFTea|`cin^rJ^:X]jj^Wlm[WG\V|KWek^=`BYxHYNySv]kTMc|LC\LdN^TWpT\ta[YNtINd_m^`b\^laPQLcg=SoZJkgm^eShi_Uh`WJ|T?nSYXleKjIaIXL@k@JR\L`WLy{erkViuJbQtVNOZHS:jaK]EQ[ikh\[EZbTlQObKdsTq_kkJ]VWgXE\UWmcMOrfdYVVA^[ef\eYe]\pdP_rq\^pLYw\ThpU_PCamaXelsyy{XPYWEpYQHOMWnpf[^jZUULPi`f\TfsvcXQdPfh\K@xV`o\XVcjbYeRXXflpShWfb^WWaZm^bRT|SckgxS]e[SWigR[IbTUjitbgK>TqQQ_g_eQhaK__iW`xlhd@O\VTfYYaiehRj_G}VeTHUcIjQ_fgcU_IR]^oV[^h`KMM[QBNV[SYeKNfSZc]BYaPc`|XDB^eEXUMd{{WeMKT?U=VJf}mPrtYiOX]e[`p^:VWY_rGPQX?l_caPhFVWt]g\\i~\k`wVOiXtC`rQOjIEVZj`c_Vr\UTdTDZ^Wta^fmNWCLUMXn{^_\OXw^^Vbef`wegVmW]R]bSomnHIW9RdQ^ryQP`nPlOk^}c=o[VGOsqdoXb\lac{^hbQbeGmhaibf>]ccMZe}_Jen?Ru]P_QQXR`e\TeQhke~_OVNUrgP{WXabl^QbU`N_UbeSnpya{ZZhKY]mri\lniZ\[TkibRm\l{TKF_Eo~M][XbRZsb\|bahe^tACK``VEt^km^MRFOXzv^fdfKUeXtyYpm\~cRj`ucIML`dPJ_VctujlefZdX}L`hzTJnY[ftWj]YdcYfeZagNUb`loo`cgTxw`bSj\g^|te{G\Var^Z^jHi^aMZ`zYT]AShN[p{nt]p^KTXYc[JmjSkdeqdnSjkpjHzcXyqR]ca]Rcf`q[ri`W`ombegnRQ@]S[[_UXl]kuRctelQ[a^Xr[bg\IuhrGQLLoatlUqXMecfQLrjkOiu_vZHvQ\emkm^fVmUoOxWb_\_qxfGBM_^Z\unZWPZ\xmQSoU\YSbkmX^ea^pUg[qYgnebHnyikjZsRx\fI\gwg`Vb[nnmDuZd[RaP^XjQg]Ko\hWI]_||q}g`YvTXjWg[syrQe[zdal`[TfZso]gWejUjaVOdPWd_RbTQN{otqP\Yd_PZhMPRNZ@a[_^^dw`T_p`U5ZhhRnuh^b`=Eiof\hSJ>uxjrlqahqZJat[yzBTPeabkT[ePmSRoEXMoj_YLZfyJ_M]pucaWttabzUV`R\YkXi9vwcsq|SWVY[jSP`Oct|`[tWbf\Ze}ZV\aV>MJj\[Fi`]^Ym?dWdOMEb=Ni_gVXfX[gYeds_oTYV^\IdxcaYrh[dPQU`F]eMdYSmPz[AbEXpt`WbmcbR_ihlUcHer{SSilWm]NWJeezdYvJeeWU^{F\{jMnKJJXaM:spRNbZ{dNZZfX[G^noeZRM]gcMPtYOhfLUl`EKXaRPesZmsfN\=Z`x\^VU~UL]EVf{Gd{QgmoIaqvaJrm`R_ini_MFfV=hUmIXhbYSed_SefXWTdXI]m~Y\TfPIITeRLNXYrmj[h~QZl_LvQ]]dbabhWUw_TigKgbbWg_^]plkF^_ZXbXNYn\ZkL@WX[Pnd]uYecl\anZaqdkmaW{HjVySRd]Y_iVOtakHIL\CvXJPjc)EnfNyaNUK`W^LRRUiWQ^=WrPVgcWWWijWaZ[H]ZSiED\^K?\TKKbZWaFZq~[f`nLYUignZrinugdW_X:oc}[C`T5HVZaC^IeGYqXQZm_Dmc}saZFfSRPcHYi[fsdPj\^YcngP[aPblpkiEwDN^[U}]UMrtiM^cA^WWo\f{ZX`TmYCv[[Z^`|fUcC{}amSq\rbIJ]LqQh?a\dY[UVeS{WVhuHGhY{WGrT`{b\tXZvImaf`ORIZe__hLOIMe^`pVFmvdIT\iaRpZOSWSUWiXcRJ]T\i{SlOGiqVUc\YyFTdkelo`]`iW`rh~pYiseCimXnF?Wd_RZWmNL_X^SAW];K@vj[]udj`Wb_gWjd][Jieda\WITl[oR_r}kPhyfUNPSlFx^pYTPVc^lYnYkRVf]ODWV\nQsNXTCyVUMdj_oI;M5cnZkEGNa_Q_XVpOjkWoTWQph]cFmT\HidJ]T|`lVKiZtOFfRCJRihggueLY`FfZLpifkavxSNLHRi[X[eN\IY^r_FO^eocbaHDWUR\d`Uj`TiSS[HAkZ]`V^gfOuAVH\mZDWaals^scfJJJ`QMZdMgYWYM^uDabShpsX[QZdGle`wlsfgWfJ^_kmguaonpQb]_b\jFnn^cUfSY<]lt[iPbUPD`cPZVg`cEWaj{OhJ_UWYDYd\OuOVlnX]^Hef[lgFS[fJh[]Ogi^oabjZV^iNgb_fIemtzocHdKa\]OdIIeQU^_[MBq8sNsKK|RbERY`jQGPapSEXWg_>IR6lLv\ZZOtzhVz`^_M]kYR[mpw]M]`d_ROfQ`U_fn\edZYOjGLSod]`PBjbyMWu^y\]VWjIUcM\Z@hT\WcuN^ck|QN[piN^URQRb^etI}idORUr[;Va^I^\m^pb\k`eVVKWaTskeWFeXkmNd\sEsQZU}QohhxZ]cVXUd]oU^lX=LZUYcgjjXYsb]hivoxRIfAcKZ\aqThged_i_mqZwg_qPF[XYbWO`EiiKO^tDwc`U`RLmSwhhkflfjkVT\cVZ^eaXdnWmYHU]KPPO8f_Ku\mb\rVl?UawvTYkmo~U[\SJZ~TDTBbivaO`mucPhXWYfgeCyM;^DcE[dlQgG]o_ePP|\XeSdeS\QRizV[ONdd\n~UXfRw8sTQoN^HaafVNXSkn;ercFShiReKW[BnidAOGz[drilL`SKRMcTZmbXjc\XSktYcWY\qZA[1>J`Z^lmjNTihYhyzn\Ex}qpD=S[[\`Hip^x}|iAZ|bESN]Su\joI\c_cm}Z?pHZPTQ~NQbZqo|^[hnbd^}]kYtiX{kZgVT`[xClLoa_WRhyEqWWk[=sVgY[\geBZrdt_`W_8OYs_V~UfEr^XejMJl`vJRcjLecdzb[M}[aMI:KgmOpRd}_a_nAdWcZlXqxzeO`xQdS`HyYa\IeqQhi]m`ndpl\kFTUToUS+TYlQhiZWAOgM`NPeMZ3]w]j\uQfyUrxMjacWmijdNU]d__^ZoUofK\Ni5pOyYKPJ1V>d[nXfV`S]]U[Yo[h~l\|TEna_UIFiLuwNIJ`8gVkXYWR_E]r9a^gRUUUjSmbWJTtaXX~RjjhugZuWR]`a[sosyWZnBf~ySddl\_{c~oEV?m:al9nh=emn_kZVbZ_MIoLYwHYUdFXbxRe_9S{D^{nniXbvi_fxkSn@Ml^`XibESRORi_bhM]Oc[ZF]gO\Ne_OfPHeposIhJd^=Y[WYjZVat_[h^LI]apA\?`VSm^Q[vxe\IVShIlQjPl\pRD~S`T{f^c~[\qn^_iRXypgvKQkLZlXH>khSePU]ZQZsomZnCSRhTy[gc@bVbNfkNWmpch`vQSI]YVb`UQ[MQPhW`qnjAEqs8djTak`QvCu_\Bil_LgXSW`zWHH[g?skaaehcyOZQNP`\@NK>FLZhha]Jc?YYLooa_HNUio8FdrK3nJuysMdSgokerr?Zjiv\JwV_cLSU_PZ}W1ZUw>X`?WbDO?`uQZWT`XaSZsWLdujCS\UZbT[;ZhRKalZxDapb_sS_b\MQJGT[fdYvlUTFKQtjiIoaO]qrmYzaWKrU^RgW`FtZzfUT_Aq_]]TUk[m{PaU:VkOS[f{e^1ZVxnRo9aeg]ghXlu`kvmh_c^wo{^edOSOVne\UNe];DOw|Qij+\Z^pwYa]jShigR[EhzQjQbbQe^`aMN[ZLcWihTQJQUXhcdtNcNkdUdU`W\algnxqYd~[rWfchkPPfdsxNma`SrZmnDbWhaefQQIrhiVJIL\bgN{NtW\7IlqkeT_Q`6]IJRhT6]Oxb[UGFrTWM^SmsplJjkTKn^jgecVL[sXmY^jhcHj|`HdgTAax>bPxjIdf|webe\pAuV]`_{\`XEGo]LGLqeJlTI^hf]qslwpr\\ZIaPSmdnJojqbggY^iUkk;qM`[Qd>JhNCnTXcbRKUTIfG_coZYLmj[\WD=WooEXcQ_Y]XZfFOXVwhauUPVRkpgBfaH`laLVSW`Xjr^hHkbvHibzeRU^nURWod[YR^`tvZLU]|]OMfy\eCcSbgWNeNXl?KjVKXbmfhecluy^dpYj_gRaiXIco^d[iQ|wjWJnvMT;u`SOZTWLzqne^fj]_W^ZPMpa[zk_PekMY:|fcRpTXGhUGVeNeYX_[T[PIrNpOZaiObVi^W\eaW`^\d]TYJcBmOjm[bPQNcTZ;jUa[ylgLdZ[sL_Rtc[eTfcYteUdcYlesZpV^YiK|kahEQLPKpUahWGgc[bYKtbNhWUSRleuWSrdXhEkLlLYueWc[GcW]__{m_\j_TEC^YZZkbgUelfIMKxPPUsU^t`P__TTGZXaSRkJ}X?FWh?kpqSYVnppubOHre`QpdUTqq[]fv]jLGjZ\Fl[]O[O^^NUR[gpnWWa[nbep`aPDwUfwZeCYI@WsbTsfGp[]F^NhqahbQSsvXY^qd[NeNONRKx_^aufWjVqo`a\U{\SUPW9dnSW[RuPjpndIRMCY}thjgJATM>OD`ShSaHrhN^QO_h^QY_sd_nEaSsRjrQmbQJQ\^Wrl_L]=aqew]ZlGaibS5GKv`AH\Of`ZUZJys^PVafVMPT\dfNALYgtRkYw:}uwqNLRDafRVSWSGUaKNZ\KarNyWe^Of}~[^[ZaheQBdEVVpX_tmKm]h[VnESZcVY\iPOknXbUbYlcv__T[PNPbiG{H<]YUrKAUhUoKAI~`UY[^:Gc\^T``:\hVG`mecsldcys[EP>jfYOzbd[o`]jV`hLZjdgST]amBQVhLalgRQdkLcXTUnr[]Lb_YKETWIeR`nF^SeZmRcbO]RocnMM^acjYj[iXU__xO]VS[g]g\XAea[QqTXS6~bNlH{WZpLh^TT?eSmbaIXGgJr_VX\\uVboMpan`PK]SWncVdNe]cdNg_fnCkrdT^eWiEij\]XggQ_LSNmfVkqN]in[o_PH[|Lk[Roh[KZnbmtSYaRfldQfb^mD\[lI[e]QMQUQmjTaf[LDe^\XelQ`q}X\RbKX[\eLMc~a[`vg^Ij\[Wsmg`Q>Lq`dlWW`aercuRlr{qcMTV[DbUmxT[RkaiqYLkAzSaWOnXS\|hgcgiU^oZNjarcHWQdbIQh\c]g~QDNVgchleK]jShRUiiak\[Gf]D^b]{TWmSoq8o6m^\`tsPVN^e]e`w[sbM]K]\iraZUiheSbrfw^]`|VtQ_MfOj`|X^b~\[WTgvV\]XhtIZU^NWH\cVTMMDXMVmkZXaYo\aQU[\jGoO]`Y]b\_fbaYpZjhnP^ZQ`o\d_rdvRk_WOqjbfYmxbT`QgRm[kjQTEijgldVVgZ^ZWeYZ~ajHG^nT_GYaXS?`WP`\neZj|`d{4hcdtdakUVTsV[WeZL\Oj\TUBPg`ha}bmNXna]bff[PIySN>HsboRgXihieSjfowdV?ZrbhjuIYkm?`VZnvLjI_Q|bSdRN^klbV]D}:dnZ[VmHiHCJWgboU}Znr]=auUcjW]\RmJX]Y[dvzFCsg\LlZ=zdV|eU^js]ihYoO/XsHXNrM?ameRr_bYnRG_T|h`cmIStLfS_VLe[li~k]]T\puTXa\iNT_YRSW^djIwWdjlSpVtXKd]lfVbSNqYXX\[]apLm^QPfl]iUN|koOOdr_[QtiaelWZdo`aqQ|a\H`k^^b`nkOcvauZE\[BUcc^lnJZKkOPm`YfcoVw\V]cjzf\\wOgQJrvdSaPnvUZN5RWYwOyT[hVLgewaT[Z=cqBpxYocjOQIuc`_apfHYgmQi`P}9ZGjrMOnJU_gYPLccNyXigvYb\Se\Wbe[_7|MkfmUERfWnG_\MnTdo]jeqnKyva>TQhub^gdUH8Pdbh^|SKzUFo`[hzvjwAViUpSkuST_XX`aNdE`edZZfw`tWnaC]hMnQxypVV|o}`^qm]XTefPhRW^gOP`kZgaoYcdg[|p_gf\Y[R]^\T\LWSurgYmbscnj_\tPZc^sNbf^k{[hwX?i_lrd[[zeRLXHKiUIclkxDb`eWXeZUbonz^XjUERY[wFVljM`fVnedxiRJn?oz]]]mYX`|K[O_^Xj^Xde^dcaYafghbYSsdaZnmMyW`YTY_o`QISch`FYga7Wbc_DQ=VA{cXxFskOUoZdJ[S`UeX_]ZoCYPAjdZcLis{]N^QXKTMQmPd^T=LBWtj?wOEhmRhfnp]SNRIg]fmAHleac[JHW~QTSehWTYYyg8b^RViXnk[QoZaCbYic_eLSJj\ZhXNZgj+T`Rk|YZa7oIPV\fU[st}Ta~K\]RpODfI`S^b^Jv\cKSPZNwK\G]YZPLYR?Tc\sNROb]GedIpYJw{RPfqaXVLQwiak>ij{bV`[cMLLTKZUZJWipjZTRZO}XbRCPZ^^YYQ_S?]mjQY?_jbspoY_\Gm}{}YXg?akPUCLgVoliRvI^bX}fsJDdNKKg[I[hdjYvkjd}HSYM`Um^R_p[SKip^Tvfcdiia^oaIaZWXuyHSEQ]XSjXqU`OjSe\Of]mzf_TbntdYlZrkdX[uRjSNbRfXUumwgejqvZ:wPfVZzOOhFgLdc]UgYqEbX\]qXv@D^QFUf^ZurT[UZO~xUdnXMX}^EQPndPmY^FRHcHd`qq\L\uedcTWaPjKgdefibuIsjX]]eka\JXYHa\WYUQp`P]tjUb^]Uw\MOUn`TQXwOhqyboG]ch`wFJHKSXkorZOWcQoHu\oRGMv^ehoUcKVxiKMN{nGLXq`XfyWbR]XLU]P`frYVNREikTRfScZH^]vvRRFeh`RTBYbd[bygYMQfcqy\bjROj[UGe\s]HvgC^]S\Silm\_~kWi{GbVWI_IdUbEnipZS_^fnfS^[]VZZT]OLIe^\z]tOXVmT]bF]ZuUerZqegTQ\cujnteJmXgaTeWqhbVq`_aWe`O^J]UGxRIkaZU_EXVd__pngTSQTmg_NM{`TJg^xGlFmU\Z\jV^]UZGYmMlR\pMj\Rr]f`XlffaNQSggjbMOJWccdeHki>Ym\;tjc[fVCq\_=bhU}r_jY_PZ_P?\\A]`hUEeGX[`W_QQZa_aia_Y^F`cs_VuoRSNCql_m^dJ\BI[i\c\[Sb`XmL_Er@\xT|`qXsd\gh`pNofk\4{VPmd8dNeEBlgbm]cu[LYK_VZ.n_XN^fm]bg]ouRGQk[`UPWm`]\cg\zknPnhiin\P\Nufln\RZRUQZkQTiHGm^WrLqtGR:pgaL`MPX\U`[Hh<[{E~UTK\_TD^XV_hg`PXlv_T\hBcKXdSrUDEVioTRYMZa8IQn?eRbTgct]LwOetMc/gT[HsOcPV}qMf]Is]VS[~EXZFTY#RXU[~ofbZj[ixbGc[M\>NaXwaUb|K]_AfOWd_KWWODv]GfQuf}nLtEZRYObZubUmdM^URLviYhe{WUmdazWq\lY_XRi?ed8mPLldp[eicLi``[YIOaH}QoSFvRaD]wZRyIVQSfV_oISqUzas\j|UR\u[dmDQTP1RgO]hmTgW]^OYR`Ly4Y^WZZbCWaoqZeuYISR4\rRU?d@|ZaX,inabUod8qFY\XWi^Tm`fZNViVo_igVXJklVRfVpmEFbaNicIcaVsmYUWhdXhQ^Lc[Ojw]\rhU_fmj\hgWQU\eJHcmUYmW[gWWi_SKTdXQMODSW[\cMchXVNPTM\ZOh[kZNNlrpLEQ`PYy[b\zh^mecVFJQG^W\^XQY[M]gEfYdpAF}STdSX\`aX>U_Tfb|VdjV]S`W`bQm\tV[NcXz\bNn_\]hjpt\XXSbyS6CFWRWTL^cWJS]IiYPCV[yTbTa\`cNStimWLPhUTD`Tv\hTOO`cXdXQHIdAOV_pZVS]a@ZdmUdfZPdbiNgR_IWXnQ`YQPOq'UAbaU{Ip_riJXiG[YhjSkJh__cvU]Wl@YaY]tkkdHO9WMmsMiMpgXU\ieBWOuALZVXLD[uknOhtayRTuNmIXdwOgkEcbbxt?bZbZfdigJaSmasQa{RynYXCtTUahVdRcogYraUYRirsdaUc\;GTAEm0hsSWa^TYTHXnQXVRddVkpeWaf[^WbWgq]wbeyV`Oe|Gl_mcKiNheLf8eDn}tR)]UK`~TnHVC_|UQGXeXUjpYlLtU[?qebPS~h\YPs`I^qgcgI^QTXxN^SWb]bdnCzstmi\[FHKY{WJjngenlRv][Je_bSzViQSaMMU\UidNnhniqXzDQe?fkJoUqY~hRwpmkPtNVp:^`T]SXg/1^J\j@FqPVhv|eqCvlTWvHvHUyG|Ri~QOnnZl\QqKqnPDL_]^emRfe]cxiwxfRx[QUWfXH_n8ZJ_Rr^LPhWcogjRYRbvjbmkGpO_jeVPXM{Hlf@aG>av?YNCdf`hZpV{KZW`]uUYtO]Oa_jojTG[[OgMym__``\]AfmdqdHjFA`X^MmZsQTZZdicLfrZen^QSaYcYVowVXNkVFWTUbBKLm_VDiqU_{e^Kuu_OUQbWRpVF_QVPfjacLTYW_KLyGzrvdOaqR]dI]iCX@XPuV\BatXtQKX?d[h_c[_`grZ|ioMPdP\FdRqQ\hPRQEZQ>wUYj[dpq_at\\kQfdMcXktoSX[EwXd_[GTNQOPcVPQcYVMOTjxzUOqVbXvi_TJlaN[Zl^X]ZD:SPf\XnKxFpxY~jIH`\Up]OLXgtXNWl~\gN_Q\ifUU`BSvi|vpvs_9ws]ppqmYBddq[]B^hrQo{UrX[Ir;qb]wLxPWOjLNbdZTj\pWhmpfcaTxGT^ieqtemP|>beR`ZoqpXo`w_auYBV\]Lm[M`u[jmuURxPcHj^IuTH`_Xq]PUBJiddkkWgj[sYwV`]S\XKjahTrLg_inGusbWWiXoe_]QjnkWPnjHv\\Sf_kjg_Xd{[bknndCni[dbgdvh`oyl^sYX\gXj[tc]fNZPXUH]`tkUcTZ^qntCirIQQXXfFSCdZYvPTVd]YOeYs_z`qvWT\ea[rP\L^JiuYWffa`T~\f`YOJvpo_Wq0rIi^bTVWK7cC]c^`dJ[\][`nprSf_niIeiS8oYoQePZYYJsDZWQsPXgVVPkBIPblcWrhiglVg{{\DUSQgap?sbPdFs[H`eITPh;g_ePRY@Zx\{Jdbx^xWMWagVYZ]ZohDVPst}ZpaTmMiO^PaVbekTUtuUHU`QTxUC\RZ]8ZbqTWUwTSKjvMhHsKY`jha[l[uOOpe_fI]]fUbZhPmFh`ZYgC[sqiv_dLcYAe_rRI_a]qwDd`jXZ\kVsqREqQ\kb[Sxj][fsMUkgJHXkT^QSVbSZuLlo\mWgI`{YSb|eP[_}dkKaRTni]]dgSu{ZYXX_evzn]kmvaZabbvKHqY^|`UwoSXTLQZeiPyZpjPSViM^zRihEbihbk\YxE[^ilyXcJVMqb~_@U]S_{jWH]iVdNYjhV`^XJmKol^Neg}krRKc`J\uvwhN{T^gW\RUQcWqViU:i`ckl9P`emjgzp[tSJMToQ~SbLPS^o)bjr\Ure]x_rcZoeIPZrViogTSnNd]@ine_F=RhodY:YYhobnXgKfoeblPnvEkqWZPbi\]uT|HWaHiNzNtcR`cHmX\XZ<_aTcZm\_o~T]WaLslafYjfVQUKkrLGk\FPcpXiSqPJbWTrRQa[VcbqrVQ[@Xswc}_TlIZNJNOS\`WZnipW[|nEW[YSD[SMcj\e{WT]`SW`Qi`epeaMjaocNmjZCll[Iv>lTVhD^BZ\YIbYbgVg^Ollwp5[zfoSeZZU{_@pTg[UwVuoOeMDvt^dSPOgNVlYbnVpk`zgc\\rLR^kj\_YgzUQmmW`kT]=fZUTZhZpf]T^`TO[_]|ntsfWVebzSRRfNV\RcSF_RFYbTW[XLT]a\WXfeibpiG_XO|>FV^TWLkiZbX[b^go_mOtr]prC^[PO`[egWcKile~`N[[aYbSO{[mdoaVmUXKTL[HjhT]`nPXWUiuU}RXkUSvVrKSRkiUh^\dWOYQjivQ_cVWpVGJ`c\QWPPPOoH\cjV=Xjg^WieQfM`NcJHie\SnlQL^`oO\_{Ec\`fLa\ZOdbapgNYcJ^ZfxTOVf_bPmdWQafITWneN|QZ^Slau\O[cX\`Zj[\WRPSUONKazmgYuUtsIbvaMwuDdQV_\jZkboLXZ`aR_fVDnhf_jAYbZgp`oWNjLTrTrihsXRmE`u^mn]qyppkY[]^R[JjKZagxK]^YMQZbf]k^{IZSUi[skaa]fh\lbYUMhfxY@[HfXg__|HRw`NXRs=N`XcdZddef_KJL\oShSO^[WOMjqrPaI_KbZ`tgNRT`ToVbiQ`vJqgZhjiWe9\nBj\thSYXNjHYVfXTtnbgX[SWekLVHIUPxGeiidd`b_bFYigUoz]ffZgh[hTG^]V+^T_a]gxxQdX]gklhZ7HU=eV^_Jk_ub^RRs}]d^UYnnMgU_[LRtTD`>pfX`Qe;eFaLeLTOSeTzMTbv?Fdw^hKB]cfL?q`aPIv\PSXKQZoz\_gZrJkKiN[PuNHog\\Q^L^z>ZUQNFOuMnEQ\aqdP]SDrSfhZT^hojjcRiYGRr]jlW]k^IZii[uS\SU^UZqI_p_POoOP]NnKNMkLiXGV[[KpUYauK\oMQT=d^TmF}E\a~{XSRKZI`]}rMTdRa_\\maQSy[p\_]qX]KO]P:FYMvO[\bbfZ[`Q]aQgJ^JgTOkcbTTdUTEebTg\=Otpg9~aPEhlm[]Z>mPjM^d`LtV*UrXITA;\9Y]\NcdX=T>l`^}lRh>\aTTFMCPF\u^i\pFjd]]^cEkHTJ>idoxN]ogs`hgWbz{[Vpaf^/]LNG9nVX[6RgHfemRsllaMg@UJPcceZNj\dPQJ_qX\]cTr=@TKQSiff_HZhl^TX}W^m_XgecPPqbPv[FZfXclP`_RY[cIwkinYrb`^g_CMiDHZ^^lJVVEUdiFuP\\b`M_kRUaPKVSZe\PkDcULXyauWYg\PWibm0UW^^`gWO^BLKGiPS`d#MpLVySqMTVko0fcD\wROZK{IT\n_e`_Z]kY^Jgt|LlHRXfNbqj8UehgjGXloSg_@afpdOelVdXTgpOMWgeuZZBAhnQ^VhYTRU_>XfKNw]dsRaEtB[OeeykOdZWYcRossPjmDe~\@ja[WgkR5dr`GKlyRXPafXXbtw\aYwCLkhYHtjrUqWbunQea`waikVaqzN\gX\^[vtbcjNPKl^xOeDYmlQ[Ppe_^UFccQqWOOGepwbj\k\rXHXbbOVgQLcRWdtOVSMCJZ^XoTkefMq^yhjWhBtWl_]bnoW8[x]lwzSKjGyqTnmPZ`gMFmbTs`ncS@_N^ly``P>MLUSOeMP]P_lgRgmcbbUTkg[UYWaduLepiIaR]kaZ{t\XoqbaaYhfRgVh`[ZxVU1SdWVLhkc]\d9NSUVZYlayiK[diie_VWhwVQdmBqpQHi`jT[`{NSK`jwwnSikK=idcHzdbaXeBoJ_QVp8J[BBaVjkfeQOVq^NFqpfJYRFlfRzcKORnk|5TOTT]GUZKjjbT`_KG8BIj|mqEerg{^^[RiaYa[ZomLbbdL`qp}Y`pivU[N{H]nnXVoTa_Eq]Zgf|^svNVN{amdTw|JaRcRdff[DVPIKXFl_AxZbZox^fdWpZ\Ywa^R;pIFCMUiW^PR\TLZcwSvViRcY]ejdeVieQ^d`Zak___Q`YCah_bEnUxkqVWAYHjELMT_uPYQPV^aCZ\@QvUbglI\ke\Dlis[_QpyRC]mWZ@Bfh\EsrkPU[Wif^^PYXyf8}j}`z\dytdNXiHFGP_Rxht^udNTZFnsmmnvXoN~NlvD`Z|>I^C]\KcibShsXoicZiWW\^lt]ZZZXgh\]<\OB^\u{Z4O^kCjW]aphnOhNnrwTVfdfajfR0YikeW\fC[iniTV>dj[NSlZRKDsuXKXLK^_t?bUe[N]LZjBh^[MjM^6_]dPURFYiWzhVfbYgUATZbNUh^v8iloUTjHg^zFdccehW[tOfXMRjUj`_jYn[aa_j]PKmjN^\WPnWjUn_gNU^`PZt[bMfkifkjpUgbPrh*\EmkXk^Q[hRcr`IafaobgcmJjAedFSgLoMXUKNf|TrbNcV_vTSWeZVNJYh[dlUujd_;mg^eAk_^bup`Z5_K^e[cnhYsWHg_gXrY`|ghpjkk3gWMhbVn~\NcetTjtadX[fiZjOklMIr[\bjm`Pv]OjJg`X]aqj^aRXkY\[c]X[d8\Ja9acuZ]epokHpyX`_}bX7opZz@vSJ`fTOaZ{lYOWQkoUXbs~Q[Zw_^XZlXpBu`NYa]^QNXNU`[XkTnTX[XWzUuj_jeciNXTnCbVtn[Cg[PKt\V}fFXGt_vf[`qS^cpl_fwxJZa|Z{Y?P[YmPmZVwYq[R|R\Gcbghd___fzZ[dR\NScYYwSY@RTL^c~CW\ceYWNbfWbkgLR^VfVX`g}co]ohcUhj`tWZuiZbUSJj`RBcWwIhh>M[cRfhVc]`XVNSsUoibSdObLmCmEM@rh_WjdxTnXsfWpdZNXMUVZMTV`TVJZY[_hcdgRvfac[hX_Upjnr}H[hQu{Z`mrbwEBu^phbrhMUefIUbWuY[MBC_MJ`B^szaVScyQ`|EbZSOpFqmoSOSpwPg}aSL]VgkV}`u[lPRUkPrUawairLgCfd`LO^w]N\iOSZoH`NIQnxZLZpniiblXMa\XVma^Yn_Daoca[mN^ip@]KQRj]hNaT@UlNYWl^NdlkMXat[iWdeaaKZwquET~dMdIrzZGZAPFqViYlKgjUSotZLiYXowfnxqhWXX=XZTi^_jxZPRgLZV^a^XT`YqQ^EUYiPS{YNDZSYZ]ZVRSYTFPxjaRCrg_ymdiiR\Uh`WjT_Ejkk]OGoCWjUWizcTikdZ_T}_dRk\gk`[q}cS`t>^]HYVVAo}THahl`Tcus`U`P]@Oc^V^XcD_EUAVhg\NU]drp__YY`RbaQRP[fSSSiBCYaejdjlY]T{kTxj0@pITcWjIUIWZ`l|beWWXE?`e`HnXUm[nb=Xc[a]m^TUkSkWTPkqO[ZcUxW]oyNXMdhhl_UmbKegnZ_pcaT^_\^lZ^\]d^kgl`eAts`SFNuoec?apb_l\p6d\Ietju~`phhvEEP}F^PQ\Yg]}qIfcZS`br\[nRiWjdgAmrajdnQ[b]PhHfcVMgig`{L]L\XT~Ipl_S`nZTTmg`cs__RkPzfroPN[[kO]RX?iK]gYO\oMHvTHy\[]VSclHhheNSrt8oIVMjqlZ]>m}1TO`kO{be\pbRUUdeEJ\jcX^|KOnytxAqEWDThh;xOUrsfC^aYM{ZXkJy]MYmk~YfI\fwJ;aIIghECW]MCZnkfUiV[]OYEub][^\e_WvqChH`Jcua_R_YRdgl/nqhdhVrWFZ]LIl]kWh|4Sz`]jHTvfBMNJF>sImTXRgrHwS\eh``PSVuKSP_TS`ki]5k]S^Lwo_fs_`b]X;`tfmavTaXV>LF\fbewOZh]XVTjYIX[/`bdkWVS_uQVVUhrSKgPfZc\k[hk=^gNqT[hWzS^xWiRp^u^aZes[ea_Z^bXdZpTYSfSiM}NuZ\cYl~hsiiIq_vGRe~]Xq_^z_]bjvrPnbHVP_Rloc[ovrI^MWZnU^dQ`nop]KjDMOQh_ldcZ_SUWTmxo}UKHhmYe|_`;whKBvYZKVDVoYk7cVUZedLDMjSTWVQI4Pi_I`sV}Vi`kiVcjZJn\J_XON^InpmVPoXKPM`?nX]j_h}]^JIjUdguOQo]QkdEgbjRO\dXZ\gPdk]i_pf]o_[Sibvh^b]Qjfo\WefjU]LZcqaLVl\hjqZ_}a]W]emO\clZ\Z^a|buJftv]Hf[BjhhfwW_^ckfxcUjUjvPb|acuiHVVXaSZTSXLjtpjNNS`]UQdbOid^WkoT\^yeXIcRN^jZk{wWlfh`~iX^sTYUedbvbskmQ]{]V[|dKjPqO[VUY=kaTaaVmC]rd]kooYH\e^^a]DVV_QhP[~e`Sas^wRNgXodPWfhcrfWTos_Z`x|]IWucnf`m^tvqZnYsP\iRGo|\zncUxZcRgxK@bWlu`iWVuPusYGf[ShkKuwjZZPkJIg]Vp|NQ~rre[jteXlESd\^MiYHaOeSebj]VWu[xWimWee_cbxIP[_QL|CPKUNY^gIiM]gsPnhP`Yf]^Dd`ASKFFWUW]MULrFZSlWRjaWYl[ZjdCl>LZQYx_mnKJhZ^[sYYp\KcpV\_JQQJX=muPcNLaesKEi[`JZz/_m5Rs[xWNec`q`LrnIUWUKMYWGSTiPPwNve`N\lqUarShf=L`^G@Sk^]PojghZqkAhQk]i}rVfZarPUYLYlERf=^hhsb\QBij``\C^;hVG_XW>QYlnRqr<\PQsecZ^`whx_WtQJnxkuh~m2WNO}Pym|g^RYJ?jNQ(kCqRGcR]=NOUV[Tnake-ZO^^n~RbSKbXZFJUnhXiZnOuV[^|d[gN[knAdaQMXcthGJJ]EIN|bRvff`LkRfTKb[cF?waWbtvbf_j_qqmuer]v_I^_rP\Rf\Jo{p^pOdQEbcmVVGdzvRHYO[jD[d`mIQ]OHZ]}j?OJTKn`GvUeZy]GDXXezVh2LrjzMh]offc|kOZgbxxZ^{WdmEQTgRZFj{Wm]gt}M\Zcm\Kleci\W]]`tF_Uv^qMxSd>M@\[dRlQ^PKV]NT~EkjXaXRVh]Vr[]PZj~_v~]UEmaZZexXK[OUgbGguvXqRaZCLXCOZkxJeU`ZkSDheW\^PenHVcT^\i|geFeMrdi}bRgSfYS8`\b^XTgRW]o_n~h_ZkKR`I`^npR`HPz~X_t\a`_uVm\YnioOh|SejdPddlXFfQbH`tnF|aeVh{d]V\SuPadpnlgYZgneTUdg_`fahyrPRM]Ei_m[[UFuZ\eNZah\sS^^_bid{dfoK|n]VaVf8=\SdSWAPY\fbamYTaGXLegcRaLnXh_`\lSVXPqQns~VwY}atdI`W[WPgSW_[ZtfbSDTKToThS_fnUdkYcapy\\LQxYet\\NTNwh[GkTiVJtgR~Vb\nV^_qYeRjrw|aSgiYwDXJQLcINXppfjg`aUl`IEnCUVWKc`jhyX[n`hOKb`hZ^QSbpdIqcQXw}x_\PfTHlKRrQefpl`_PeY@SLpVUo|=Wlw_QhW`EfdYQR[smTtmZ{Sbt\BeiU]QcXbWL`n[`[GN_uW\lTSVRPlbEYnlDjmSVbTQzCKgp`|TxPqrV{pfYf|oP\UUfiKdo~8dR_W^K]_Z:f]>aNOTdZaroOTlsfxCPROO]haKd^l^oXcciN\_WdiMTV\T\TF]|`fV`Owd]VQc`Y[sJ^zEYgPTVL[X\w|X^wlRPbfqYWfY\pgkpl_bqgmumi\aHia__LkQZJccPgae_J|z]et_WgrqT\cYUbxYszTamkYPk[JNmqt:|V?`[hOYqDhKl\XjQgnOYrYc^tRZzSQhli_gR`x|WRinaKj_F[gbXWPtj_I_lcP`^SLbfU^WcRjM_m`pMyHcqwFPbmTtY\ePaac`glqMTk]rfMTfapY\I[RgTYRPgZHa`hccnH\^hNWZUkZrUf>jeufiUqpilFT\>Hky[hqtbs~UVrkQkZkVS]OXZXQlMJZIRKJSYXsV\uiaQRkd`oQR^Z[v\\MLpCtjbc|qGnOqdKZj|]L[PpdPsqNJbGQiWNdUi^j@zHIMXWUJhXHu{lUm^X^Wz\SKFXK`~vjmwW\tsuYokvS7]xcZ\[|l\pMXEnE\e^c\V0RXN[ZeXvY;`lh|WZJ|JcqJydh\er`C]fhWuMQOue:whGQ{kbuqMmWOpH]bkRjtPG`kTbR\cdR`mNUCTPMK~CXfPx\U]Qa}LZTGb]UeB`Xab~5O>Z[mQcdjUljSaUuXeB@eNZPVhhm`aIXSWD{Y@^xncSd]UcfgVrjIP\CTHRRPZ[[KtJ`NkyU_KkXJbbabFcRVfqehQ`yip`YnTh`AlTJ[jqxMh^_dJKzMn`UnBfMO\QZh\eJnYtdZGDHPfRiY~{YeC`7k9lWTU_[oVGT`L]TLQRtdNIgYVU_Z`vdbEslesZUQghxOHUeeBr]xNYjqRR`|{hMdVbYVQ^^MNcdrjN`cbom`VO^rV[pbMlbUrbe_pVSlN`ZPiWSrHR\XBkfKIpf.9Qit}kktaTLfshRfZqsmX\UNDZ9ifQit]@emJfermZvEU[OTSd^SwIBTpWJSYtgcq]TF]dxhdNi?XYKt[oTZ^RUebu^_ZZalDMbmCt~gxNeyVbbvhqhli\X^kmrdRZXx{smbc{i`aIiWZeZpRMgYL^HTVXx`zmKJcU\jUgP}`?QK\jaWgwPxfZ^e\/TMW_l^WxLi~I}YifYbOSp<[oegjboHdlqFhxf`sgiitQlOU\BMKXmRskh_UjhfPrf]RbUWJJJOciqriffpW`plgWVg\hfWIcqNa`NUUS[wovNaZ`}qgZkZOe^_bTQ^Ymiad`fjsnuda[scj[[hf`][_W_XmlhSKmcZ]aagkzHyHVQcUVbgmfbYfnQgbvmdbVV}yZhiTV_lxZMnlhT[UjjSHWWdKUkZaWSGj\ZHVPhV]oUytcobZ{om\ov\oyUUURXK\bQzhoecu[dZ]S`]PeLDKVZbUIw[jc@Z]][sOjZXRFXfOf[hhc9vWjFk?gN8PLeTNUV,d9dX\Rsak_fF7RPb\\ynb_gIZy[bK{t5K[|oN`UXf]u]HHOeQRY?fTeMUrG|^a~yWf4qY[`h_cI=OIrWF0f\\giVWb[WV3b_AneOuNqhpapeO]`[L@Q\ObnLvYjvkMwwAANI]>NUnW`]bKObKdZ]xX^liCSahekTt@VDpW[s]sG\INN\RdOXYeOZ[YeqOS1oS_hO`UkpP[aDXZObJmXb@WLOokR>GhlfaVkb|DIsM}a[tfY:NqMS`}iYSrozTvphYVH`WBumglMcekeXan|sNZvZ{fN[8UY^fbQXX^YF[YOW_xKi~hR]_bf^cmQRWKT8=l|]=iXGRKI5jd^?abx\?cSdBRphK8q_WH[@xbfyWOybi[OTZWRfE[gyr^liK\@^JPd\nYUOfiXM^}eoVOTg\gYWXZc~F]`Ymlf0jyhZ[L`IdkSl>LVWCQaW]Q]dbmj`[mZ^\N{IsmiNsid_jxp[MgghRN[M\poQs_xeYsfUxwhJku[vXCSaacJ[nngdJ^]`skDj{q\gpZa]df|zqew`qpRqy_av[SYn|au=_P^mVS`PV~]{igcfVJrrctXUt_C5IaSMO`UedYj|njp[YeS`QXZN[pHTfjpYgkgLitlkcUX|pIqZogL|beUd`kN[jVRz^_I[`IR`aahNdnUUaVkWS\iW`Zm>_`IgMLCWuWfV^`UWh`x[_\p~hU9QeZCOcrejcQq?TbuTJ:`RuZma\upUTZDrdtPsliQuMcQuG\vcZUqCFTuNRqXpjagbasQvKr|[a3e_TlYYeM?WN|dF2kbLiqOLy^uaS2rzrttQKd]Q_pPXg`qsGiQi]KfaqfIefQs|C@ZccUBfNbG2WBR[rIhWyxWe\fSD^eN[qPSnUEvb4Kj\m`tZHx|oejdV\Fmeo\DY]`WtrO\qVXfIaN[~anfm\SO[IgZVx\}z_qXjNmZrYbQISIsOX^oWQnVd`I_mFJQOVT]@ZZ[MZoVetI^cZkaTR^n>k7YH]Mrke^GTdt^DfVcVcld^}eVaw3dwbrENXcWmTFoojsKOWrqse}LI\a[y_iaQE3RviB_X_]\]p\OM\NnV`iEKTnYXLmq\R^J\sa]jt|VRYDiTZOy`QofeZXQoOZg_STQboP[aFP\TIVSWchExbxflakW\n^TJlbTSn\n[HhSZXnfZGo|Ho^ZSN^hq^s^xcrNldjibjgHbxmWU^RtjZiPVpiDBw]SlfE^QQWrWnx_OcpUX}PE\uecWVM_{bhKlrnzSjhci_T^PPTeVPSgeZ]O]Zam_c[cWYcVSwhksY[UTZ\vPIl[dMp>raerjnLi|nYE:YMrVb_WZ}XpY^]KMXQm_xjedUGVcRkS}jSg_=^pFFwM~mx_hmHXVP^Vdk]aM_QPQQVX^ZsUYHklgIWIPBYhWRecZYObD;iSehOTqFixY[Y^YYSsJx|wkWc`l]hJcTv;t[gojRP^kre^MxgOJ\PeXUGCTyOR`_PEpFLiqCXns^KjO[WyTqZQ]qEo_}i}ZnR\cQdwMYPSdwT^UTs]w{YTTpx[gmJ_^PvkGJl\GOxoqn`KpdqZYYSk]mMoYe[tppAHpebdufv[WeZN\Z8Uj\iUdjL_FQIUMWQORVqSc`OSgQQj^dh:Z_go`XsV[SR\QRN]^qULWWbT\JxREnJr__mOedQ{kTnfV`hLB/|RzbV_[j[}N^FYpn^DHi\Tllki9ohTZMp^]T^ZJndiO]`QQrc]\gI_TzQ^MEyYgLJbEk^ZY\uKcdV^ZgYFvpTbKHUAm^UYVuah^IwE8XOuYI`S[nUa>EeMQiIOMCRM~SyALQtQiZSa[TfeQ_cqO`iJagRXJRYdEQsiSiQUOmdUmWTGJiP\rah\[yOX]TG_rddRdHgMLgwCgvMviS___TjlhzMNKUgsXhKj_VrRVW]]Tn`a`kO\SWYXCNbK`sSPJbU_QQJYupnYfETWfgo[iodMRRmcTjrlYqspFY]W~fxeY[b~^HS]^k\UVN|P[Yu\RaacuWbUVMb}RTwNCvH_XvU]Z]qUuhf`^Yd|^Pb]]TMSZXPehZ`Im\\hg`^ahptHTM@YtQ|^pmlJ`a`ZUe[LqPfq?NJgORZwsYs[jZjmYM_zdMVQFeJ{pclW\`P2luREZ^nY^dLBDX_ZZuOXZbg\SoWBjKMX~meLba\ec[LdoXXaWloW_NRYW]klTKNQIbcZaW`EVefEg@nbi@PNrn\KJRddWXo?x]sfYK?A{LK[lMKb{uwVtiuXZN@qiiYs[ZMaaSarYeSqu\mKWUUU{vVZqkV{qUsKFnW^ocb\cmcg@QW\KPRnml^`_ZmHLTugPcR`Nxqdr`LSt?d]k]H>QaLyqWZb>_eUbndIRrLuYlcVXh^ZfXe`s]pEVVGIHVaNOTP?dBb`mVsfqcUOR|faX]WVhVg_ZQWWqS\mdv_X`omeUNJr_didwGunhoEUnpSvUd]QjZUR^YcoZRc]bW\hVo\kRSOyNg`S\b{UVsJ`i]WcfYq_HN^OYVzmfTMe\kQ_hS^wmKaY[dkgp_dRSfdkd^P]S]=MV\rTTgCub^v`]qRXtpLdZBjl|[_embnoYUYYUwWOarMij\[hR[SMfBvavggtHRqL[_Rzg^\ZcYLYONeHcZP~a^T_YLi_ac[^SiYTFbJN\S[`ecWYnuW[PYTXX`bG\afZkrWpMc``Edohc_ORo`RDgqq`MV\S\Kk`XyYd=djy`qaPkhILhO_\kR^hRfX~x`f]NSlSP_^B]PqlZhN[TMLc_f]{{JxYvcZWJQTZrSMx[SrVEzuRjdllQd];YeaV~WoTVTic_^Xe@ace:hlwo^ndT]QaX\HX]fYSb]puXeegZbYW`bThyS]emTT_R]bqKll_]tmD^LU_e\YcUNicIjCgSZ[VsdSqYlWRs_QyOEXWOKdimNfXahVSPdZkb_\hgWneXpPudn]{WTwicgf[p]dwe_Y\FZRwWveLXhslQ^^a`fQYOeNLtwcUfgQhdS__ZTP]ioItjgjfriJlZNfV_`WmhY`KV\_]YbgW^iqBRmeNgomDSHdU]WUXKub]hbjV\KKdA[^LOWRkNRkcLNx|\VUZcs\^diXfVcyJVTXmN`Z^yrL{W_i`fVtkapgzc\R]]Tg`vhufzH]cl\qeVNZ\x~nULppPGtZodlXXZXSjWyaopRST\}d^aLcLs`dgT[m\VgcapQ^EjSG[y_bbJZZTccjaiYTgNYs=UIWYUeY[d6k^gQ}jX\Zm\fTtTmnMifZaodClU]X`oSZlitNjY_\C^mEWmoinhRlkg`a]cSp_`l^`^fm_TZ9mon[X]}SfhMdy^]QZLp\FYZRsEd^`~^V`oam]ZYg\^cQg;SgXg_]mVKaoHcJm~[^nm7mpMZ^[csaQyfqjvWZUVnGXInQSNdW\ZcW^~ckkh`ncgfdU_UN^`ZGTc{JOMdYdfTNZWaUoVRYUYXoVMXfS>RumSt_ON^;Z_YDpTrW\Vqjj6r\\fZI[YY`4oiNUKYZdp]zPkil}U|]Xg{F^^cvtYPYbUbpqW:]TY[N}\X`rd``XrPP[ZaSPb~xJ\`qZMHPiq^fcNpsdNW]r`eemSNPhXUiSNwwuUihN_pbaP`^[^nMTALC[rYwj{YVc]TwVgrYR[tabWh\V^^Qm|cza^eOwJ^oHZ_bX_YJjrpPf`[]VoZUX_ROTpOsrq]Mvn\=FLdc>jfDLGbHg@X~9U[tM^PbRdLkLiNJPqdQNeVT\SeRWDbL]UN{s[aPVqA@OWEcTVXcnLi@jSYMQZQn5BZmdljJ^W\\mgJZqioNjlbkje_A_Na{^S\qGnXZFhcUM^loesRKZc?|o5]E\RSduYJoZPa`Tjt`Z[UOGkIUBe^XOTF~YVRmL\Bbhb`@cP?*Eb9TUW~Qr`r[NisbRRTkY0VT9jnpg`g\^Yhs^i^rH^aL_[UT^WOsIquo]bWpQW^loF_]\godsy{`dgOLZXoUxORe~]_?^=MRjXfFQ?uobr[Eltec]WVBPG\FaYT`UdDgfQrd`kQhiVWbkfNQlU_g_BY^YHESkPSrbW\jRX@d[aLMZVgM[Sn^@Kc_aMKWa]MFHgcFQRYx\q}RbKIh:[oOWlZAzQIfd`Xf]xKKhpuHgEVN`ogfd^[[lhfeII^xqLIpp_[au_KiOlim`w_fVOxikej\eccg]3eGprfQydnZSaNqY^fOPXbouz^qQU]Z[Y^xbrPze^qmL|TTO\K|cce]k\RXsNhWRWgpNL_[PHmVMTSKU_\]aWV]WbmXVplfmvAMiNu;g]T]kj^FlZYRPSWsJmh]lgoJ|_YrVB{dgTXEr\Yb^jcQNpd\^]:ZWYZzvTes[JO[ogaf_Tbg^UjKpe]aesfM_aE}\QJIfOFgOdQC[DN`RfbXzq\fQdic_PhqO_oRTd_Tm\^f`mNrgHxT[[wbWiaQVS{n\nZbsXegY[daek_OXH\B@RFlfN`T_V_[S[RmTTa^^n~T\WmUQ_TK`d\}lnXsD\LkUuBKL^ekNSz}ZWtQEQoafSYR]O_OuVIZfOWYPRtH[dp`icjWbc]\XkkPaEV_RY^XVr[oP[fVnLYSKSZcp^7phyeF`jQrbId[ggA__[^jPvLYT^AiViQX`F[euPJ[]>qa\Q;k_Xq]dqYvTRldVZVKkRqMVEZN^dkjSI^_{__rWYidV^a_de;plVvyhfpnpUF[mffhol]]XYS[VVLCMK_Dmo_`moLoQOiNoMaklq\GQ^awt[XkeZPRH\ixfUec@cNLHZiN7dREL6LS8hhaVVkcfqQobqimuZdd7>lNZQBU^`dAlHgX\KTDgURJR]]w\mUhqbr]lrekW\Sog[UQPM]^hk:rmhHj{mIs]?h6IajnKi>^prVd~MrI~I`Yd{TnW}pVhdHSGiX=mJKPidNd`=gl9LgoVVScLWdjGXc7Vumxjd\X`o^^gpR^^VnHhd^NgteS@aXYdXdhoMyLTYZbzaiafMgVPTkP\utZc~_bi`hh`eoNeKc|\VhQatfZdhP^WdUy]O[Up_d^demdZ_[^zUkZTxpKjYSa^comOzbgS]Fh|[IX[P_wu]orY~[vb]^jj^|U\tXPtedLeKbcVeDNdu^`ganVOfpZnLPWZ\afQ{XuSgWP[e\`e^MY\MNbOZo`g]hn}ifrX<}R_E_sqaJIK9jAmCFhDnde^]gXTj[CS9}sSwmSCOfSniYRam2eVVTvwPRHV=rS\@\DXnJQObXN?JXUOpTFdv\dnu^TF\QsVAcYTuO`WvUL\YQ[`kTiaeOi`kdKW>DnTkg`z=mut]6i_tUiJcIi\nC\RjK]m`ZqK[cmj`FcRfEGFU|=Srpqf]P^S?MW^T7bSWLJ[YDTef_aQ9a`DgQv^PjmnnDbIVpTHh_jihVjim\^ap_CRu^_Qq^XYpMqJ_n]Zdo`ZzZ]K_^tJVaxRcXtLSbQiaQ\ax@[KvTh`ZUMF`Pbg_^h\I`]Vfhb6\olhYK]]e}L]aO~9[AZsuUa=Xm\Gb=oppmoYZIshdPaCAUGN{VaRUlfS`cQJkh^p][^[KXJhCNqTI_PXO_P]jcYdAQQU`^OB[VXlNSKRehZ`XQM3_Hnf@YXid|wb?RiGI`b~M]dP\]gV\yjX1]`glWakTjZ}]^OPT[ZT\[IMQd`OgCI[:=ilSRWVntaS_fe2[PZ]UNiG(anfEc6^\[WXLVTxMZbh?SWuV\Z|cW\WX}Nuc^S_tdilWbcl9Gfk\ZU@ZmKahY^gZOa]Pk_RSOZfQU@lWPaEdkeYsSCfZWZgJiOKXZbObWDXUrUrQjzhcYEXMQ\NIVOKS?XPhd`agTgOpX|p|`]F[oQ_\wkU_YXSXpaIqeUgX[Sc`WUp5[fD_[Ved{sWEDonRWJ|_ZQjkjrD`kg^oiEPcYuIdyZLYVf|U7H^z^J\WJ~yiMxirrRQq]XNem]5__[2c\}DMOmNCtr_b_]TujbQ^\Pgh?VjdZq[ynSFOnHMgOIFnxaSS?=]BC^J^ZH^bVXc\k}duHVt\bDjdfatNfJFWcjuH^`]i]Gc]h[tpwedOOdTNwf_VCioWLVj^TdQNabolddOqCMWzT{PMQ]fX`MQ6P[pG^Lf|^ja^qWbpbzYUi_sdThkLQahX[feSUPzc\lPlWlbEYIUybd7QFHlhaZEMfaAxeslrUVlzAPNdbJLk|M4W[mlPjqWdbQUZvRibapcJssIQ_gLkVSSce`^MnSNcDUUjjfg=a_gm[kF]6`ixl]yXMbKqN`c>dptE,`VVionY_P~eLo`XabHhd\aIQdY[VSE_NMMHh`ZJVM9UhjkiqpLI=Kse]jcVZ[ecc1fd`JcXUQh\eij`UfeHSndXcbrt``[TaVa[KivePfKDALZ^bnvUOTziKVM]g^gffOZw?VPicXYM`[XTh`cr`aafRyX[ggc]kVnv[mAvzWOngbPTZEYEcsQx{e]H_{j\rd^]Rqb_NhW\TubKZbX[nQq\]UjRE_jVTM\a`MbS@emTgcp]`mfuRd_dfd_J`dgVYVWQ_ezTdV^OcUYLXdT=~MarOLl0L_TQbFe{YJViS]JTOYZlxPbTM\nhZipWXm[udc`V\cbjb_MnSFYbb_[]^U\\sqYrSgfgb`uTo[vVRSLTb\`MaX`folh]j^cjnf]zwmTuaPqK\XSYf_Hh_^OeoinSgU\cwqPhZdjL~q[TRhdS{a_e[PZO^giiqu`aLRWx\h^nL|PfV^uvS\il3cGU{bbWmD[aQ\`]Q{fYT]atyjlkgCk]\SOWBcR]i~cgQelnfbJZNb[dYXOcWvg\Z{`NhO]aeqM\ZegdBgP`PGOvbUc}ecNthn[PCZNJVmqccFWUoacbX`OcOZYjdfQfaL{lY^xokKW`SS[mQg`S~eD]^||^olaWJmRVIqZ^pLYNTqih@[n__Vip^Za_[gThWWNc_NdFYqjLPfl[[VUQUThfR^[YR`7rF|[f_mdU\GHlurcwH6_{_wIW/gXPgc]uFT^~[\vKNa`cSxpJJdFufOXlXdwT_]{deYIn>fjqWQfPojVCqXWsg`UoEra^wl\q?dcgMU]WXvaoWmsigfT^eQdgQhI[xdX]RgmqslgdPUson;TYSUdh`Ln|Y\gw_jun[SKrbWUua[DUs{XRMygNsI[vCYE[_yfDc`N_^@m^CLOml_zgGPdh^S{]SNsBClajUnVWTy[omGOwKNgRPd^o~_ULrN^^TcVfEY~^bke|jaQqCemXgXnUO`QsDSfT^afU_nAWtPfcI^?TKkcAFdf`dagNc|eQNhfLWggaUhYrGT|nvaJJpakpXk^@F{dPa@LeqGbbLXO_BBAUj[lRLVcFl]f]|rqubLePOUXw[HcZrhc5`Q[S^ZaO_ILHG=rbVYhVKdZ^g^kXa_^IR]A]Snt[PZjgkA_|SmijMU]b]Xc|LtRv\GaZi~yn[Tq`YbliH[_vYF`kcfNX]eXAeUj]lZO[~^OXCeQ`aouZNDc^ZWTvWXWqfqaTfXgZHcf}Msd{QiasL_^QfvRQqSRcx}ZbtX`r\W^qciOXElkH^W`_^nTWhjjcNXWTkgptXfU?drDtaCkd|Qh[PTb`M`~|\zOmgGU]|a`[SnjbX`q5\dln\gl]GUMZlR_WgWygZitL[mYh]T^lZS_a[c_wVWXe}u_THSDA[?H\mun~IEiU^MmN\PpXtVTWsBVgWTkebihHc^SYMLiLx@UkTom]\q\eao_I~_IUlO\E_ZX]ZNVnVRid`[eewbojhkUVz]eg^\TvI]_WeeifbZ^nMZpc`ZSVS@bTcL[TW[LaNYjpWa`[@ZB=aSp_;un@zSLF\bcJ*n@u\jiPMuSgpZiK[RauYPK]eZajc`QkNSl\dNhtuvt_XoIsNXW]BxiyKApx^^kwGYs]RO\][^eaUud]]MfkLmZ]fej9icmf;TW^^Z]HCe\FhOx]Dl+r_{zQ`f[XkN]BuSRzNriS]cKcVEPEcIXegd:OeXhoZgXdgxL_SP}qdLMjWSN\HbrgcOxIaTQe^[TjmogSjLlaYdZmybk\mVeaUQuZeb`hPQK\P]Qe[;XJ\wUpg]_RgrZZU\nPYQeQU[dA^IUkh`phbv^YC_De`bRTc\WMjYrYMoGcCS]r=[jpWJInJdb@oUT~Ov[HoUf]RSF^S_XIp:r`LBl`xga]XbPlTTTLSxUsx?}akG{_fpPS]_aoAu\kQHgReMhbhf5ap_Y_\tfKSYcjdM[rmhn^xUQaLI|q_iXEHvMMeXLQtOcQ^fMZqhhrQ_`j`VdTd_g^joph8XhPC`Q^gSNhlVZaFbca_aBMe[W9VykkF\N[OVUBN\TUVh[dXVCSKlScSFD{YcW}_abHkOcnWkRePR[VykY`^XV]fLq]srYU\MujC`rO^[pBp[rQNYUz]]p_eopLPGlP\dvLChVR[JR?IHOKmOKdLaUaP[LJIofUQIe^JjOsmgbtdD`YygfUrNOz`^e_hWji`SfTOao}zz@fVNtko\S\CfqsPXq[PYRBT^cdWuSu[dW[lZnVNwho_v~WY\pXPbZQxq@_j[QYZR_faRWuwO^UaNTN^VlSNW]sdvgW]\rMWqRmVWj`bmK^CQnVTwRcbsNiVdxV\^Sy^Y\bPXjUPN`PZKvcbxaOQY`ZkUfg`naZU]`QRc`MQncf[?XRIPnHZrj_RNFngLVZma_iWoO>[WQuSS>zQe]PKG]KCNKDIbVOWal[SN\[]ZNXWRf][dk^KvMajPoIz^\gXNf~tVg?JzLLgKZ^oUPZ\Q_hCH^t_]qOKxUMX[aU_bTS][^hbW\b?p]dT[`TbRihnckZiI_KONOZjQbcef[bhNZ\lZMhXooiWyS_=`HIqY^^UKKgcvum[eYnh^cfSJp`U_]Eo^WKbLPab?W`WrjaoIc[=EH\OJWH^dnliCjj\]PS[madbWbgeg[`m?QYQjfp]Ko;aacvVapMXZgiIiWaa__xA`hhSkJfllq]WZ`DLT`j`[elte^th]DejWIWZI`bW\`^[`Y_PR{_IP_^N_^kaf`gnhS8\bZKdncVlYgYaQ?ZRO{uVTDpjdb|bnCdUSdiWreB]WVj^bD]d=N|^ywlRvwEgt_{\UnBgK[|LQcZdddXi`tXS`iaXYKR]ReMXYbdpmneYsWQZ[GqaNXsG>Y\^Q_gS`fdRRSunac[xX`_MicpgbbQta[6b^VYeSp?wlJ~gNMRDrS_vkUPdOazbX]m{cYbOiO]b]xOXaPCO`jWRYbJE]w@bUt~kJU]DP~caxNoOVUE`gW@dqa\fc[]`l\edth\]FWDbUz_noyk@F}zZDj[\vKprRvDadJaWu^LdNgUe]QGb`S8fV,N^]VkY}hgaO^XXq]gJaonGe[b`EHbin8Y\gp[gxQbX{e]VWV]A\LUYaWcMMZV[C?^_QXmZV[MKAE[OXs]AEhNlHWpdckiQtMT[RdeAacxMocLGqWEMQO\^_YXA|^JjoMHaKgXAazXqy\]_^_abPn~Ph?^UgWe=xdb]\bPbWfWSfW\X_xzPIVPvqO\m\I@rshY|D\`[zQy@fWVzI`_]KdMGudu`kY_Sh|hgaa|IILljY}mT_OXS`_RJG[fV\lEWJGsqc}aQ^Zx\g^t[QgjSHw~coY`c]gKcffVnbP\dBF`qw[?\BZ>crYgC]}SX[eFVvlvj}XDvRugSG[eXOX^i`HVYCe]\^\SiDY|X9GcqIKG;bfm|\ae~tFDXBXjT]Y`tk\IY\aNTrRDmW]eZercICxcpcJg~=WlOkUfc_cbaaeXSi}eYLdVXMggPdq\ncaIms]i\m{kTCWrVjIBRc`JgRi|mmLuRUA`g^xfcpdUm_fIP}D?bRaivI]yN\YY|MPXapTeVXjI_rHnp\hc_UjZH`]lKU`gb[fhk`rQ\[Yhj^_^P\[hecKtWHk_g;qZFqRVGY5an`SbPX^T[j}rmZjn\^oY`cTZE\bDM[TJ[nbmjLN\VTXXE_`TgaJZwDXixZO`]MUQHcWl^svNqORXZVHU^VWCkkQTgAmGxbb\l_\eUPJdZU_Q[P|Gv]}RecjZbfVdKo`Yg]TKk=dZ^etas_|jTfpU`MlfMK~hS]}_ZMmbfQlPibAOa~bh[_Sg^Z]uxbdRDiv[|RHQplK[ATmLX]TpCSvbrF{lnVUT_qaiQWnFHn`em]kDvThyigi_OTLA]=eDGCcfge`]zdqz_gSm_gqsgbac_i[\^@Y}O8Tbmfaka[sprcWY;hSDPWaVUwjW_ZVZtXiZS_Vc]qWHem[iK[NfJkY^efeqEhbxcRScuci~wKZURhdnr]fJudPbwkQYTSfa^]aSvdlVTkTqaNgP{ack^G^[VievmhnYhi_TdR[`YYjcYSUYsUh^s]oohnccpXRj]V?bwZVZrojfNjj`Vb\XgRaLkf\bljOQiFsgSbUZ@j]m^y\[\eXWWjonUZlhnYPb{Rah]tMZ]]fXS`Wwf_SYVY^Kl_cU[]\_T_J`YwRh`[zUoJaZ]QX[WZPOnnk\K[QlVgReSTi[_T^s`nppOg_cONL{`e_Ubmb]_\VMfbUubY^jR^XUumhJdj~ZT[ylBIPhWqQ]gWdNgSJ_Z`XT|^`WYWlVn_QcUdOZhtb~Nb[]T~UQNZh^\TVWALd^E]ZrqapddsmF`oqMXm[hjT[LqGgKYoBeYUaJIdNkKWYUfG`YtyMigSZ`l[jdme\R^dSxoCaPY`RcmvUK`Wd|gQaZal|Z\bXQVaLV_Y{Ug_rdPpd_aKMjL[Y[lu][NoYYJKQ^mVds[Y^4mgn|JFUR^TOdNikeauudQI^gG_YPhkg[cRHr:P[kkaHXhAokO_uUtJ`ygY\\Ndyh`LJfcMD_^TY`QZz\dRYnRfTndhjizI|ZG[cbgqYLK]XQarRnXcY_ORfl^~iW;nalkjbp`aSaLPivId;[RVX]OKgcaj`gyeLYN]pL_]||TwZ`O\fEL?by^odVzl_vYBerJeZl]HWrfWfJGeaOW=Ej{a?I]TVcQJUapBOPjJ]bep]SlxMUp]PDdNLYPtd;pVl^cebqXTZxQwsSZkpZzchGT^Y^NM:LcsXImPw[iVTKkemNpa^YlKpWRQYePLgQWaTO^nGTdmQa>iQadNNbmadLhndX_rmg_R\faBT}p[hEQZUaxlKSZHURQgfnbabUdQd_xcQO[UuOa\:Y6HdMDDpo(q0coXPqDlbUToKT;bcsz_MDmhPLBkj?EpGchjjbS^Nvcb,RQ_TNn_\cMjn{`WvC]bgGRflEl^hX{CYtGRb^jCmYuS6\jub|YP4eiqMRjYZR[KdGQdRXpRbWwuN^vsZ]y;giuXZ]OY_~ZKTtp^aZ^Yos[[]ZfkorhEhLR_]gTFK;hHrbXHBJkkbOPato|cbg\M[fNpRZh`\QbuYnVWQN`cOhEbyOg\vq]>bWkP|UHrdjKbPZ[kYqVNSnjiyPlVDbeEmguPpNGMHV@`^luNXKb\ReTHQi{~Xjj^BQ;]xtYcPWftNQQnSvVhq`GGtOmsKh[pzhllat{mqElJ\PNvUI\Um?gUWboLmmW^`rcuM]EZgqdwSVWYTXN^eSuihChBic{PT^]psSWddR]Sl_la_dXpFep}_]^nQ`ejWzrNRWvXnYsgcNVNGY{LGmu_dvchQNVEdW[W^_^Zq\eam]XROS_V[^~TciksZ]QKk=e[nf_PShLrExY[Z]ekNoW[AZD[]Jtk~bO\ccmgvaeh]Gt\^akj|R\dUcW]gUWajfh_XS^wJC1udWeCr^]utR`jXUaS^YcZ`WeREnW{W~<^=afSo_zMU_Z_FPY[qchIkzHpzccH*I][fhKQXQOX}NNhuCSFaaZQhjjU8>O@fZow`mXd`_l=uKGTH\CxzMXR`fwY[i^S]"e`N_\cfd]yf_`bfT\;ntuDLZcsg9ighcbQsIi<\HQ`P_l`eyIvbWoUQhXi3fiPX`RcYVfx\KcgvIQfhefmsP`[FXSnnpfRfW_bhJf{]S[JcRYjY_Lg^GkTQsawPZnXzkO_oLirXpuj^HiZ[a~KX]RjOpduDU~`l[wZPSrEfMxoFhVcaU^V`_ytaL]oLkFyQkjBLkaXsTL[YmZuV^b[V^]^Z[Gga^i;Og_WpqtZXWm\hN^Ari]oEbqHRe\NbbkUV]~OM\aGQxXhRf\mq][KkzLjwcdGeQq[sggJx^m~eJipXiLbYd9Y][Cg]\ugcISPi^Wp[csZddlGQ\YijTlm`r\{rd\{exg`rpT:gaPL^^`q`UMY`O[YRbbKgsUqVte_@ThU[WnqeYOPSIabW\LWOmjUo[fc@osN\hUPfmh^^WT]XdZNff]e`Z\;SWdlCiJaW[^U_WhywqoVbyZof_]{aY\TkSoRYm[CEmlZjy_ddYSevnQgOTc`~^^P`UXabjS^Q]mYOW`KSmQgdMBsPHv`_mRglYLvw\rDENi^fWN\nhid]ci>UXZdq`]Q]LZNKPjjb{XeoV_ojYMrZceX`OeUkH^e_{MeUZPU^bzXg[[oYkpTqmZbj_f^qgMj\[jej]d_[`^JldXP`WJ^e^cyU~XsZg]lisc\\YttK[RqySr_TrvnfgVZg^Me[]sOs]^bgYSehjsRTV\?jqkdlI[GXT`_b{hr_bRxygMbgi\qb^\MtaV\{_dUdQeohhxVuBXcgn}GTG`qaHwOF?ucjBW`Qf]eKMNNhYfPecqMIwZK`UlE\QskOjaix^9\zYOVQqeHPVWqZ2c`ezq_QGZ^O^VmEccRwgOZRuWoZbmauQoScKbEptt[_efL5~n`npHq^bK__TVP~=w[c=feZVZohYdUFAX\solYWZ^\vgxbqWhlqXEFfd]]tXba^c|KpXb]`n8TXf`UiY[uIx]N98XWl[[UJwZaN=COW]N_[IvMmnFTRue~gBd\W]ZE?zl]9|vfqh]r`QcWqh_cVTc[MYryvbUVSYWk\wiKsGUdVvtFYmLPMRTLPw^WK_crWcRWc]nTiZj|Gr~biLX^JTcrN^YdS`_]PsiaR\hQQs`bTLnhWpd^YyeoaY]B[a]g~bTO{\l^}NPw^`RGY^bhzRrI]iSNmgCO_[l^gRVrada^dL`M`YkEVGim\kdcc`HkaUmUgPmlsb_c]NnhOXYxvCa|WaBcQ_MfVsJ\sc{SWTk]YKdiYmgghvVNhesR^FYiS[c;teJoQe]Q[fiMvPSZXmmWOg}NCFc{I7XMldmOUYU`PRswOvPSVlf=sJ]r[t]X_cUKULQSefWP]4`n\ZTdddgGAhZ`_sXiJ[ppWhUouRM[bbRIC[]`Targ@QO`LnbUPMI[YolhZ]b]agsVZbuQcpWtQ^TPaUZXiqPpfiAdVXNchRW=W@gwjHoWlTieK[gx^[RglSPjRwfKZ{XlkTIyelqbVdP{{BE]gOQ_g_grPTedVh}mZXb[YLZrUYh@\vbZevt_[S_Ne^IaZBzTTs`nVZfHAljawhS{SJY7QW]jgNQBMNfWRhVh]ksqQ]wH^FmjVmg_lbHh?uicq_VzSSkv_]R^xcQbWcXPEt_ASYSfUSvjRU]{\pc\kuOSb[TnYUT`hmUdhKfh]gZm]\Q[]kIm?L\UbSpvNieWOr_iIvaLXXTynIY}`me\L`aGCbwOSPAdshPZS[hjhbs]>@c\Yd]inSMOSrTgx]`T_IOnH{QSagq^auRhzH`Ts^}tSZhYo]ccWRa~hZn~P`iUDwaT\]T`bNLkeadb\E`^AZZNjpWWeOgx]zK`wTW|]n[g^w]CSiYlWdXTnpff`g?oa[^YiR^[oQaop]XF_SkHZrdgxQZOv\VRcWYONbZg_[uWcs[R@~_XtKON\X]Y\crk^B^onIZpu`nTbKEyXgcavXSBLkQ]NYf|f>@RKZdmsQpWDHhlpMWMKcM_|nqpWsToeTZvyV\HXnCTRHZzUuuuiIV=lofdWu^WNKyocH[jQ\{ce=k~^e[:KKRVUn_gO~USW^XR`NO^vk{GsnceZWPHb=RlBQ|kpQVQDgS~QOBZf\US?e9:PtyfWugsbL^:|K6jOb`NSte@SG-XKXRSlGYg2^G`mHTW\OT~g\Pnie?TMUiBdMJhm\5niKdNWR;YT]EYkbcZ[LrKHW_m:ebyJkKl{|UTIV]GDfcbqL_BGLII[yCTTTwZbSQfm[IBhb\[XQ_ZQO^pMpSGmuDSIkbkWmRXte~\]SeT\eYJm]`giOfk\_aWASZwKcJg]mUlotqn[teY]NXNc~YIpjGKagy[P`Vy[hTeLEO]_U[|PQ`LR`Of];~GbMVOzh\DQ|Tmr^_puwex^_8dsDfkWjMabtjoW\^P_[fa_lKv]]X^Ypchc|YWkir`w]oaTg]lo|SwjtHN_cdMhSsmFiwkMg3fxbrQxdqqdg`P`[T[qx^\aYf`l]bor]_Qe]R`^V[OYhYdN]cmah\XedHNYYkGmkOYX]Kc\WaZOcbneaTXPV``MrJqho|Wd`h>]^BLxYi\voi_jqhanJZNceX^sUnh^gebytW]klWWikO__^[lax]rRvGhjp]NX`dtX_XTQPSlS]c_ZpQaXYTtnbVTa[bIwZn_~a\aX^a_arQfAc\[MigTrLTL]\QQc\qta[^MQW_nkP`qXXYY`ZVQZUa`iRc]deReRepPYbKW\leam`ac^vYU_``oR\@mqQdKaPlid\UV^QUVupSkSmE?]Sfk\cIQle[W\_^cRhZesLaZXW|kYNE`Qp^gQpWFiZbc]gnHoagWXdLdU@\a~X]j_kQZkvpV^C][oTJqgV^cZ}c`tnPjBbOcKI]MDTWXPsVZclCXRgfP_^kiuwRZov`bdqKZjeaHb\cjhXP[TEQbuIiflY]LytZVRnLKmXU^sVWZDmVTRq]\QCbia>P8cz`_aVe=aUXuWFgGBI[S\IQ?fCsl]vsJ`NnWKWXbJThgPYETUfTj:_SEbqFXrnRwh?gpMMEH[LbtgXOwLaM`cP_SNh^aYZX[[WLaHss_qLiW\gTwDWpYVhnsiuO=RQOdSWV\[_:sWsNFd^G}V`dhR^V]{AmjNMG|KygGxFf_WQaWfZVTfDfimcpbc?uTmaVXp[\LUqkgLyrOVL]kirRNGoEnXLDmWXah~goi`nTZxtR^haPqI[zaYkOq_^TE[cfQdf\wVSsR[SSMTj[vPQgpx^{\]ivQ]R[R^WcSXMPsQfOl^WE|jObdobi_GXP`ZIY`@Ni[d{ic^nM@VJKmadVZrQ`yaYvsZuRyrF]eV[hZkbcCWJRg`V7lUgoffIahKWnwOYf|\I_MlwNgU\xd]]wFf`w_]to\vRVLOH[bn]LB[moCHVrj`gNluDVeE{XYLdapLxbRrZifMpdF`iz^rshE`liiereYfaP{_S=myQNeeoknYQjQP}Kk\Zuc^R^lqPgjt[pYEK[QvnP_\OKY`iEjnQ`^WfMiSicoZZ\eSo<^`pWgZRksGrgaqOZ_^MIdVMXve_bkUoS?SxDV|_^jQcmUp^eoV`gZv`XUW^qXVpkkSpWE{U1Reotc_]|xRhNBcra_qhSLTT_bRwZ[[[MdT]WXW`HglZQkKX^zn`bqUGY__tYat\ZZWfbfROzfacStoLuxa]^qPXYhcFZD{V_pkUNgNhA_SUk{xfcH_Pg_mpfcjkPqYegLEiQ`aSxiqZwOYWSbg^jdmTlfU_PfXbIQX]S\cUMXFnY6ZOa_svTbp\c\^cdlL^^[CK[WX@gGT[j\mdb`QbfoG]-oJa_jeMPhhrUg|Fc{WMbX_FhG]uXir]mooed_eoxZ`U`KSquXgWFuRlgYY^urotHQB^NXSxVDOZ\g_dfnXLc`cWhVYL[Wb`d}L:Lxjhdtq^QKL[eXakVRVJ1aDVQTf;]NcrgHslW}t]^jVYt_dG``oOT_hfWk^bxZ`piuLy]XZLbjyUlONX{DU_jQ`b]XSl\eMIqPFSmOU][QOZh]\KIa\JSOPeXGnVa{`kUclBl\P`JUt^aNOIPb\RgQoMcqqdeiObjcwZ_ZeebgqejC`es`ph~YcBeaS|keTo\RVKXouPT[IFfZeiLof`Lh^beK_aN[_x{\g:WRTWJl{]Qdg_le_LffaaZeb\?eK\V]rbbbySVn_JaWbOTzwSl[_g\WVPXVlQhxLgx_]sbhekLbqo\KiWdn@pv\iijaT^dv]{OzjX`hWcFctOLv^]R[imfVtKa}\Q_MuYDZAn\r?^`ZUGCKPuXUJsD\dLbcVc`aYj\k_sP8SwHWiQ~AcVSEXYdPvWaN|CclfYQA@u[eODXDu=]MElQkCqtPk?oWjmdddapthc[HibUCPSPOVTr[Wgf8KbGQhCJUkMxW@ia\`Hgn^D\Nb\wWZ_VCcYTg`na{hToQ]tgciUd~b[`|mKLgPUEgVa`a}5TbLTabB`a|FJwyWYsOwmI_SJa_PbjgXhXbMRoV4\\{WbWUFcFQB;vjZgPIf\DaSLoUQnPd`7[_UL`nMeZtZQLWhkKXLcUXZ@DqLi^flQM_kbSVMDf\k`xb^[pSl~IPl_Wh_XcneW`mkYobSVU_aGNzacRd`[rMPrIUjNhl|j}^gGrV\LhhoQ_N`eeqNzwobM_KN]NaaM`eqaIX>fQRWnafbbYc`ePcLmMvYOtgXQLPJTV[fInhAl\UVF`MdnPZgUBSIZcf[f^]tjRTeTuJxbTslf_NIVpTnSRFyJ[]WoZ]]dDYV}VKublXcO]_`b]PY|:U_jfghOT9OyLvMn^fKh]aEvSPlTr\ROZYnL]ZZzY_I}`@Rg@bTel[f]nYhYFKPlQeqbHqUQUfp`H_dRxKQpD^`[c_jt`S^K`_sPWVLVdZ}fQfa-dr@lgZsV>nd^Yj|qRIJibPRIQbiScWSQQ@eroYX^scP_^YPXyKnbetEFNjmcnU`gUbH[_a^ZmZgdcKimXkUZLLWI[[hZlYSYFb=WQ]^SddiYi_dpfqWtsTghkRpPPqZ]gP@SRWNIU_pXVLOMEVgqacl][Jj|LikX;bt]dELR_kXcbTbaOO=hypfYvOz[m~\OasYSof]d_Zschfh[tankxmbenccjjdSJ]MkP4_pP\\epiNN_]SSFe]S}qc@I^k`>k^nMdn[MOdyroH_eg\V[eR|PbN_{wX4IagdlWan[TBvba[L]O>VImb>CxXcQiOJdcb}W|PMYgfQ@Egh@FgDXIRcfOSiOhk]qfCNqN\e{_`_K[YiPSr]CZonpX}]HkoS{`ZeibjNcx]KXY]dpQxbW^OYo\bbjjfpbQVX>UqZYhaQienXVZbV[^\LfM^bwbGzdX`}gLwI[U[ph_bnkicmb[DRX`vgTI_woJeW^\mQgPVE]TRQWSHbU`UdbZLl{acEdfa@\nhQmYUNuma>]aT_\SthtVL^`ggjIdQ\nZ`[USOn^Wsijc`MjEfikVRMiqi]v\mSoaw~]Zfl_szkRj]aZ_bZVtOG]sU|j^ng`\^`KW\VilweYY_p_I[jnqUWoxH_iao\bjW]Y_[dpgOYbeadefho^X[dWe_S[NhMOQZaaF[P[dUkokZW`U[[k\qXQEkQuf|W^ljQ|LnDZbSWilhHX|=QcU`^]_K{]ae\[IJ[oZMu^MUcv{bieRRiVkS]fXLUM]qnTQYBm^j`^o}HgvRe\OgsV^W`ZSsYYULC\uaViIcyPJcXYL\gd\KsVdo^ZyVd|iWhsPm`knpkUGTLLdUJj^ieTXSPadtSLlfndX]jQRXAlRkiFJjeUPbMbUw][K][]aY^jiPN]]g[ST\cUSoqKrReVS^eQZ`Oqj8_]hYg^s]{GN[wzIWewfgTfc]Qf{PeJ`TicgiffcIzc]KPygUczV{QSmgqpmebE}_RoL|aV]lbOWOHbVR0pZTtoR:_sLMZR_amjlF{IPKgFwRZSOtKTddYdiL[b[TJJuI[`y2[aqmTLDcsZS]_VWdhry^LsGZVUiwX]h^Dwq}^bfrH^giex}HKeMOf|YnUYt|VUVUjNbYy]h[kV_JoU_Z`eaXugnXEWxgd^fUeLsT.gHvvTaLf}xrQ`dJHZ{PF\uGZbGPjq_pad{KhPvqFgxWaejKAeFkHrsO^`e]=bOuy_TZGSmkrV``SfgexhTXhF_b_TVKbfSkdoeMS8gql_YfU@eN\{jgk|eZVR^UQ_fNQ]QQdmYPqZIS^HUIY`Q\aVeIWUV\`MVYXchd[pW_egSzj[YVAPVk^TldPG`?5]nfYmhx`BZ[W_Vem_dTghO[lgVYcAfaMbKvYfkMSeNiuZ8leeNccXpeNssWh\_OMqX^_TNz~LpYocPVKVXPhgdVeN^VnoQW-[_VmOmnvmcfY_[nKGlhoq`[ZdU[SoUfVQTXGKXMbHcatW\RaOYdKSGtcPweRLeT][[_lSELZaj=\\^KrMhqXcgbmJojtO`Yr`bisJZRTOmPWg\jjfHZR\Ur\`cghXckYoNGzoJVLQnUjPWg]\Q``iqelLSZYhcNoe\FxS{WSrdYomqJiTjl\1NNuLIwg__EbS[F\\DUbr[til_Po?kYuo;\[\QTLhpS9R\fH`QQkcggcpAuG^fV`d\gja[\}[_ZOcedk_sRN_KTZ@admlB{aaoWnh]_V[PnO[dems^PMnqbadttakRukh^ZdSqkqvZBee\ZgkStxaJfnRZ]WoGdXZ\]JJVenQmpz]`mbz{_da;RLTjHR|FqjTekkhLb?YH_|lRR|nTdRu`[l]PBulG\EoMYnp]MYOfvkcaan_Fe}aQpWW^i]\}ignI>dTTsJ\_O_i[_aXxnjqbN`OZ_n|cSAF[NweS`cO^bMajKbR^^GhLXtZROP>JuiwW[^SeV{_hilwLlV`QdYcBVgQWuWlWNOqRQOg;J\NfbiQ2D`rum_X\{fYGUNXdP{wlgOMHUfdWopaXNbUPWS^]rLtc_cRR]bJ^mZagYp]c}cZX_d@yrev]gV`ZPGF^ZTeUkT`|JgQSgYXZij]bxKlaT_jiSoxaUYGqaTFfOgxnu_Ym}acO`i_w~]aVOOgq\dcgIbdDqFL\VT]c^qT{iZ`]qnrbl\fSrWSM\^jlbVfqf[qKemufQ\^Js`pMKXWVug`|inSX`UvsySKOWe[MaVNiVUcL^W[bX@is]jqnsUTg\bJcfYkk[zEfcsvnIcTaGjdKLRo_VyN[YJ}Mil=ZeKPYXoWhIOU_MXyYdi\Uc]X\]XHNdczPlH`VvMqjHT=_YPakMvg`ftsXc`e~SoYTyT``XeaHhNeZnef@`ecPU]]zfR|pB`iXgrlURsUY_SldRsebdfNn[iakj\`Cu`]Y`H{Yg~bxhnqRo\IjdR\xEQcpVfg{nfdgSkgZeOaYj`ohfOzmVT\[T]OQllzJemXRTKQhVZT[^[ieZ[[o[hWdStVZlPYdQ\WY__baY|p|hvMpVUPdiJp_`jYZw]IMSsntBRsRKU\`U`~^UM`M`g{g|oZeDIzoi]QamWSJ[P|MhZ`KpafgZ`ZcitaxPeS{tiUk_fpDxLemAMZRKz]rsobMbbrYNT^WGOiM_WF?Y]7dyondGSie[lPas]J]cVeF9qla`ifgYzL@fOslKUKgQj`y[XgNUZ[cYZ^eJeRKZSIbsZLozQWee`RBhf_rUb[]]a?k`bocCbjR[b^e{kzPhWP\Fegm^ZW_mTtfKVRZ[hCF]Oil[olMqtrl;WQsoTNZXo`qmZ]d]jRv{{f[\_PU_`R`@trGbcJatX`PMw^H]Spd\tOdEethX\][alhR\hOaQ_|Xal`P]eTJWW]YrX]s<{Ee`YbaMH@WX\QW~USbWr]Vexnkcushx`[m\js^nkRkGWZYgSZRPTsINacESSk[PgaPjxXgjehPen]_SagoOqjWuZSaiisnR]a\_fLncwjWq^o_RZW]URImc^d^TaOd]VuOQ{[T}\qNfwLN]YIr~xkfDX|Ljj_RWdgjhgSfX9ul\neZLcg[bxxxvhbplncSVxPQHPISXWT;IO_kU[WiQ[H[MaVu^Y|{spVceRVXk`OVidd|Z^War;odcXa@LKxTWN[uX`RPOVYePfKY[_QhIALmhr[\bnayO^NZtXfhKVMY]WD}j[lyQeifvD`eJQ[OYru_L_O\_SP^PFYiULhXjPijgmqi{PXtIHgfelWYWh`asTdYSTIDUigSL|t}]lgmOQoQcrhkYJcs_iOOLraUk[TfgTav\nsS\dz]caY^]iMUUGh\\_eJjIxpwMXdPJWKoUNkndBYaZbXpb[`H`yUXMW_pXtp}WfSY_VikcrQHq`wMVmTO`fQUboyajXW=TXif_eVT^Yedu@^crCcqlXkp:am[h|I\bd`kuSl{?oLbbXJaeYhW_abgaEfiEYcLk[qrH@Wmp`vbsVWK`^focfVZcbqN^RdW[NEkFW_Kfo\MgkkofPI\sXO\Y`pZLK\IXoZ~EjIFRZKjwVSkTp[cqZnVtUhewsE?[b`jQKN^\tWMhpRFWRATzbinQCnA[jRGJ[iYuecVnW\`UMdXRGHWS]Xn^cObYdqfrQYQg[\ta\Uj\X_K:MY[\O[oaVj{PUVXTZXQHLIgj\RXcrhh\dphTi{iscjMvCW`rO\gRn_z\Ucjf^Yj_Ul[a]zR@j[YLVFmDSccbJph@\\\XPVtKFUe^|][HEkzZrjQf|TPjgFhlE]KNQaXp[KQ0UuUfGmOe]K8QSKgRowT_u]KTDmfY?SbgSfTVYjYUNnPtaD_CYU_OUjyUWm`[ui\S3]dCNEF\|C_U`_tS>>[fhb_ePs~Fg;ngOamOkgZmDucntaceoci:mRFSlt8iuLXeikRUdPhM[KQZ]A|Jc^=oj`EXNiSxA\yq^cS]ZRmVgeGc{a_mRrlz`K`UKX^kKaTwabXOjPKSlXhnXafipFWlo\ppWAfgYgcuhZISWJz>mXSVrMtsrNdtxQKQGMMO[UxoImeeH`WJun;GbdHRfpuNb[hfiU]aaFQR]VJRaLUvLYSIVVHgq^cI]7FSZV0V|^h^]>]G`UjR_xfLjGZ\_mkH}x_o^KKUIkaSXdljRUmRX^VZM~\hf^S?YabVeWhSqcHVytKbJMwjbKLedH^Rhe{z{fm\_VatbadTDp_l:lVWP`dTb;aqaobM[rawkdbXM=_`NroSZiW[ZRoiX]_fibM]nXQebxItb^i?WoIMOTXf|ISVT_qmLObs~X_RaeeneeVxOZYc,\S\u@md`H]]jyt]F[Gq]\P^emvRixRn^hLjIj]|}PPUjiVklfijJmcPVqNYdJqj`yTRY]TnW]nL[]bwMcTYeUhdXeqX^Zb]{}uug|x}ap\SjznSEeSjS{DfYWK@ooJ]_osRftU\]^mORsXVliemN[^`[Vbaek_icUUR_^eeZ\vNV^qXheOSZeUWg]\aXH7ebP^[sIb\YWaaiLZF_YOPtT[S`[BZ`[obOXmV,GsiUiPiZ?_uIdJIZObXeXqjVaP]ojchnH`kWRkOsd`dfptfJoru\[I`e=Dg;RxXQu8^=XZ[Rl^XdJ^=YMbIx~DZX0y=:P[bA]^wrVT@tW]nErd~XpDlLkeJaE_snWgZNxAkMMNa_YYzqw]^b^^P>fX_]|_=eiNLSO9GY^@Wh=b@=AvQeKMD`TbeA`ThifTgM{SQiHaZC`j[It_bjejLgMUkf>id@U]Z[GRXL\cmfhXUCmQXWLa8He[oWO^PWe[edohpVcJUrgtku\a]PaO_d8]|]HadWM^dkGNLUYY^oJk:oJ@s]R_MhQZltNXyqUUxW[XXeYdOJVr\HOHDGe]RJiPZTQbcLZWwo^R=IZQZuZ3XYalt^c_gZtX,N]VRcLHrg^{Rhm5}ia\\YWEmjoacI]bY\S_cUM}J]dU[Ndqm`Z_IQtTU4hhn[IYmyr^L]UWwg`pGYh`_\\c@g_gYjvDMYBL3dOgSh`viYd{Ypdcaen];_gsrTQkWX]_kFuZL6bURoS^SXMiYN_jpM[FYKhzbdWAgcL[^:gRg\f@:<:\H[~dTKaZgfWDIuWtPOSWqXmR]BXQ[bBe\hsfSO9SM\`qBdyukjWP}ra`d~GnUe_i_NcOdYXVNW|rWaSkmfVICz]VTtVWZbTzV[QZYW]d@[A}rXuZaYdevmYSW^gReMXRLWtg`oEW{y_9u_X^\y}}OX`WCfTSaoVbhXVLa`h^SZe[_dXPmY~h^ulchb_[]YgVAmMh^mdMb;\grjR`H]ny{mc`aY]QVJg|vfZ^hcYbg[\mO_J`7qxWqpeilSaWZp}i`Ub_`~eLhUtWq^pvNmOfM\\SvOmcUn~j}gbRfewmVfLoqD{XufhxjoHckXea[]n\[dW]oMdtDLq[zdZecs\WTh[`]zzGfXc`qZLSw^NajN>RMXwZy_qCUd^^XVXa_{`oDR\YQMFrqnc^pW?YaRIfgbwkyw\Zi|sc^ktNR|bcdpKflYQT_EY`cceZlS`WWYLnhdRUVLMTkyqbLKht^NU__fBhq]_bZdcQYSjmkK[X`~nNg_WssT_ZJ]pQiKdaAb{SZW`Ri[_tny:uY|ZWGiPttlh^WcYlih_aXza\N9^i}`h9D3ZNR:\P[GNYW}o`x]TIsLdhSFOFblqQu_VqRJU=Vzq[`pSYOPIXjI_fKX`SJk[fcTiXSNHQ@QL`VctdK]F\[gc]Uo^Y\LSD`bamQ.Xgpnm^y}NaoKVtG`aa?HrYmK`H|Ytkshj^fUohn\H^RbEpyASbwv;WyLUVofWczTpSw\QooYGqn^fN\VeHXijQ]b@UQ_YlYNg}G9BnMxRKHnWofSN[\bwfET~QfvvYciQ]tKcpopbGXb[mbd]kPdVGtmXghCOV[fiNx]IZdb^]bXJO`_d_?JSj]MC`OIxY[RSaENmo8h[GkYd`HeNT\OahX^ZyjsX}OYYlZfdY|`Hj<\4Y]_OP^OfefFThTjfLaZuNRQjnieP`vGWFU_PlZQbeTkPplqIanVgTROPXMiVZSdYYqfeMkbb`Ue{lg_esSUgTc]a[}ZgVjdZb_imsZqEZefzlN[Z[gVsQq`iaWPl\XddlVlLfbb]fhU_flpLycK}V\Ccx^jEmfPm[NLDkvipmRg`W>epf\KMo]WU|hiWfgbxLaWLUF_YZS[ZRWX\]`whiNUc[[lg`LgalYkNsgdd`^h^Rj^pj`L\^bk_Z]\ZZbh]d]jca]tQloYk[O`LdYfMdUDRaiveiPXie8his`_kagfU[|i^q_YxyUSqarPy[XsfFVce]hY`sSal]t]nYXLY^YgWVf]YJRJ\w\lItkzYaSh`xffTVggUQJbneXY^eZJraYjdc]SO_opU[ZZXhaKuROuP``mv^_YRcv@gWYbZYUwbUlVt^jONfp_HYUsZXEdE|ZY``qqPCgcOdgQWJr[]r]W`Oo|`Ni[^Y\]BswrhBzEX]eM\gh`Tq^SP\{Wo`O\ghYg[YXaLUISpiFeE^zlmqQXSX[fWRLXhPhWjyvfVZVvL\PTiV^yPSrqBWKqTpUaX~WM_a^,YrJivP^Y^~^bVa`rxX?VpR\Tc[ol\bhY`W\blh\TlWfe;Zv_TaK`]Tqbk`^Za;PkLnZ^mIOxnFQTikNKKW}jbnfX]hT?giMbZkXVP_jJUlcopYmoXJQ;zO__geYQJrv`JFeKiL^?OO_iwUu\cgD>Ykm_jVXsO^KDaLzINhQUpfHk^)ROU`IdFbvcV8rtmVvcwEbxk^hnlYP^S[[giOLZb[t\WtP_hszi9aeY`vohhkOf]SQYdU]Z^flKoDhUNZf]NL`fOa_F_\^\]ltek\KTFXWk^jzZUVSf^j9cVaVgJxLM\TD^Xm\K}OKLkN^fuFwQ_X_tpQb\pVlInZW]^]ZehZo`@`VaJVlTnoBRxQ[SS\gMaSbbYYFIE~GRa_\ZYXXYYVSFQ\oFY_diKdf_Ya^kSNCUfdrlVeL[WI;O`dE{X=qUhTxwHWfYVh\;sT_|HYUhLZn^AXBVv=]3_HT|_gayCuO]Jbh\wF^FWQ7rdwYVxZezVZIcFSjYaW]Tk@N^ItPaFeZ[tci8gRFc_S?aT^L]mPJdK^W}Wf\hIFtTd]lnQg0hgJyRgYMeGViUSThDPItvWivExe^[h=|GOXo[Y4{M`fvQzZOg~ZJkXLR\]_bZdtafTF+xrab.cL[nQKKNR[{3Mob]XEv@T`We_LvCiYY[UKUUeXpGEHX`qSljoTmL`U]=HiUaFdT]TZQuT\kZDv?MfSKQ\E`{zYUZIZi`kxSxT\XlTjlWa^QftWjj][{O_vh[Ijrdll{cbuquZEc`wTE^C[[^CORnYZS^hdd]RSjcpcagmc]_cMKT}F~aS_YljbxLrRUkZIaiDshiLI`geJ_pbT]EoWjz{a:^cv\Qce]LoO{]aia[^_hsKRdUZUfvToXN[hYIJe`iW[aZtX]cP^IdUdXa_SMg``JWt`w\uUqUW_qfbl_NgidacpTjbomhLPV`QY^oj]|^chZh\fVOP`vkZZT]TeoXieZO]jVyY?YspJihUq\wV\rKalJlpM^ikmyhXiJOWhVpXhRkz`x]HmkWX_eIgo^MbQkSZ]`giMcXqhlkhibtntjVmf[FV^H{U]vQYLj_SmhMTaJQ]FSdbMToo_ISX[r[ffP[WUo[naeP]oC@Mn;Ie`ddSi^Td]OPWVHTIvaxUNeBobZSj]oV3angsQGkbO\eX]ed[Fev[TfvxohW?\mos\fTF[[ci`k[fXjVagXnApjGZeefdG`wo_iI^LT\amRdQ^ObS`XbjU}ceb]_]\XneoT]u_l`\RIFk_lKFfeebSM]jLdmht`qwfLK_chtZkbNNzW[mqrqdbWYQkb]i\wUekNkKtmh[gc[~Woue^c|a\VzidQmX]]hgbv`|kd`DrqWPB_Qa`gy{YrLZfdcYbp~eYUmXiiXRNcoGYTXORRhIg{t\jjfVWn]zhnZMwfoaV[v]Z]]VuejjbY[e`cEjlqh[Kofkeuef:`RTUr\v8WYNtZoMSdI\jQZ][dXy=r\oJu\G:mB_[ZRM_{PRNUnqyC9_WZ\ZpX|[jT@ZNWV[sxKN=]h`ig`sWhGngCkXmZcxMoLZ^^[mX^WKUhRfR\\n}IcSK]KO[h]kUjZajbfSTXWfXevVhCVXVaYvFPbZLXiuRzmUerckmMus^c]YVQF_M{ffc`UO]MKzMJHPJdWNPbygiUXQSSeIZIyhlrh^daMft`YWN^J\[]`p^dXiOdSKm\zrcZ^}WRTTp=bO\l^P_AacXYFRUngfNmSeveynPQXlMu\[W|sa[TeZFMErOnYm\s\lw]Y]GlR;?XPRdsfY_tJb`Tv[XIzIMVgh\?~UNxAfe=eelRhcqS|ymglmXIfaoCqi]ehsVDOdoDbomW_KUsT|jBe_UxOfebu`v{vnhsbeyeFWxS\ReYG\La\Ik]cMLISTc\tQ^echJRb@RFdJS@ONwFMT\MyzIX|^OSe_`PfdLzdpmh[PXJLafe}sJcw`RtOg^hF_PZOnk]OIcSSQveesrN[lu7DtlhrkuRG[M^KUpuTU]P[bTKXXvGe^WKfQQzGMRv`d]ViPefqVoH7tH]wehakHXXWHPm\gVYH^cOCSQ^_f`V>NW[lg|\[bzkvcyVGMX~ftKUE}OW[`QR]YafLed_`_]{UZeH6s\ih_[yeoMM]gO`eTVT_M^P]`sOGkLP]Sy\;TVwLJo\Rbo\r[L`zXSfm@kngjCFFKQUx|VYUHTIcaf`P{U^`iq}@=}MUXhQGn9VC9e^QndZ`grbM]\Yf`[`F?XH\UOYbGkarfrxniMYvOSlk>Qc^3SQPdvTpSS[Rin\qTl\'cEQop{afEr`mBOo`hGQM_O\SzeSXpeYl\gaAvCKfTmfc[\[gbNm^fRJMta_`LnL`Ux4RGcd\TBbvYL`FquUJY/8\P]VJU`af8XselATT.PfLbvWUbEJJfnT\ikuYLUpjTy\sX`[RTFz]W5JAEfFP[e^RceY_>[iXOhYbl\W]`Zxii`sDhch]os=aW`KnWSSYOuV^Z`jIok^NSmP^`f`PFfJc]g\q_g^l\wyI\Zc`hgVu\fTe`PIv_aWkfmWyflkW_3WFiFQ@poXRjo_uS_NfYWajWbp{{hb1mVyP}OfVi[nK^eINYhkkOotYfUSHTbT[kZW``qIMbkim\K:`eh]QZfqepdsgmfEZPY]Y`l^VVP^az`NdVOI]gONlfwY@CKM\mL]_\C[BL`HWkeuVf\QXx[;`d[c\KvZjMo`]_eKP``b[djdK[MY`^jegoSNjmjnfab{i^ztRc^uSReXgX[`NjjOfmUm]ba[Ddl\jbNASnRjHc[HYWorkW]V`]Nxiwr\kU^KjfTigh`Paqh?ZbTPyUGVH]nu`e^q]lV}x[u?ZoPpzgcRdfsTdTnkQUmSbZTinwLeNdXLSYSb]AMkV`vc`Z]YY_IcJaabuaJXRqJJYn^kHpO_GeE|NVp\lXap\HZXpaZek[udatvLLhWUTg[UshhnhLh__leVZ~_OiTQgcOjHjcmhJfNyGjAFriosMbphfekieWi]a^i]hcUlJQg_Y\\K7W_maKRwm[b[Xk_Vai\EpA\l\UU`zRqSoSTafY]H]`c]LuvReu[a]mqiJy_cbKjn]R]hacN{wAW^]qimnfoNVLrTIrgRag]}xwfQNINf[ZdSw7Ugm_cPGO]TlLSZuXVec\kJq```r_AtjUn]It9g]NZ_nl__XKLQYa]us[g`N>oa_MQfw^HpMRn`Pn\\NjfE_dPmg\WYSaP\KeWeWi^vY|SMZRomZWrVgy[Vjur_NBXbTi[egf8xudxOW{hX{`CPeM[\iVUUWcpGegetUeHVVXNRLm[ZTkfcYa@TcjVVzgPa_hSTlRo_\[UIfnX@Od`ya`QegSPb_bMoZdX4fOD]egXZ[Q\_m\Z_gwXdWmmE}mUVWM]gIz]fdDGSPYLszvMfZjiwgEw~cc]waQfmib`fTjeXv[yqdSloNdhHO_bSI^zI_^V{SRT=Y[_]HVBuWD\cvVK^afV^hkZMdbSg]ksoWRkZSBP[qY^NzXY_RcA\XOkYbN\djVOtciTt^`j_XNazy[`L``QUZ_aSPo\UgiZc_`Yg]Opn[5]a\^XUc_BX_fS^XLZQeifP7[Nu`:Ssio^lzRVZ_]Oh\I`k`ZhduWNPaXq`IFZX[uacH{^jflzydYenVYXqYTHZh[HLR]JeMl\6a^lWlOlw\JomyhzaRzUZ\kdWo|xxP=P>bmSfHK^O`mYIm`SZnWtgJzit[i`rcGxVdR_A[eeVJY:]>hsGdWYau\cSn_lc\R3QmT_EbSWadLljZCCD;a_zP]eGaVViY_knYOS[_YWY`SSTJtfi}hLS\SlmcKRPQMp]|WK[U]bu[DTdfLt`hgRpVCvyU\HBWKQOiqd]XP[TZZzwU{ZimIhqgQM^lwiJcTZ`l[rt]|JH_OIjdZd9feYj6G\bad{wfnBkWR[FrwTboQb\gemTgtqZTF^SUhsZVLP>gPeGAwDXpceQRtkQh99SbMnlcGmNJnQLknT~[Hm[N\G]S]\kQdL[tAnkXfTNpQRW:_]7Vr^;BJDMJYPW_iarOmmbWbOadwZ_[ePk^;Tq]Nqhi_HSn`pUmjiajc][F[}wM_`W]]]vNe_xw_fJ_k_niu_[CPSjJhRO[KhIJqRhkPcQvN[]W~ifT[YXg?j=fcGONv_ETfJsXLW\HPrzuKL]~~u}Wq[MTPdxYGqVkuvO`ZGQ_Qye\oTcdzfY\KalYIpaCztez]SVSRCYYa`eAnkiqZGNd\loSfj^YWD_qVZhgjj\RZgW^\elW]^]VhrLdLUyTKkm}qlTjcQ]WC^deitm]YWbwMwf}VN[mqccZhbSnIaXdbNWo\FYn`SRpOgiR|`kyrRdZTeegYSSxTYNUjGle][hydJUqbJNy_TwKmgPwr\emcL|fcckWaO|c\eU[oOqYQSfsXV~ztHSokt[ks`Qd[[RWaf7y^SrHq\fi`r_gdhcCYW]qgYjZzBPSPdt[~]lrvF~TNRQh[fhC`J_Mw}emKmRTZh>S[WawdbJlbkU_zWj`KwbZQNgxtVga[YfDcnmR\V_j]Gq|qagNl^SiltbYnS[C\tUejaisY^slYgJoUfDm,oLfgat]TH{wVPMH`MDcmOXxauYHJEVPRG_aPe]bDGcNL]dotTeTQo[]GdvUUT<`Kbye[ihQl\[p[ckcWaRtOeNXuUvz`YXIPmxJcmiK`iSLb_ERY=~oNg[XWlxPpW^KQhkgrVq^iU])RGMuN_\_by_H\qhphW[]]^HfpVV[aSV\bdV[tRdi_W|KcVMNapGO|WZXgk[brSh8u^`\ZmMJOhlXXpm\iRUelR`fWnSYBfc^a{avJG8hmIB]etYRXhreCzsFJPM9Krnsazk[pyUdSW`]S[nZG_VacjoWiifcSx]adJXLZKaxpcveymfwWYhnE[IeWWZLJaKefE[Qw_k_U^iVPbKaEY[LbIc{CSlcSRdf[GxbZp}XXS`M^]WYOg^\_io^_RVedgUKn]qntPhgOVgWWVShpZZWkN}eCUrNU}ejnWgRugF`vZxd^N?PiUerFUsanlVMZsqlW~\_iW\h_^[KT`V[NfQQbdFWnZPVx^EOXisJUFXTuIqehSiboTmiWsOPT[LBcd_EkZ`hTdJV]fL[M\VKj@rRkWr`lOz^\i[ZUTYmi[zY`lcr|Nsc9qUqcGe[W[dRFZph]\TUL`SfRX{`hgcaZfcj]bg`fvEiZaeHauYUoFbepTRXqj~QGl[H`MUGYkvxZHHXlKRc^]EV^o\aCToPT\oXDKZZc:r]^XffC_makRpZPTea^k}~L_}qektdcZMUNz^ZSli`ANjrKVaYJcaQKOQmc_eUO^igo_`p\cidVpeZFWh_^_\]fd`S`tiYfRNacjlX6[MmYqeSSWZDC\mUt[`QS5]Ye~lVbPfUwZk__Tl[U]xbH\afI\H\}aRGZax`NK|tNXYg[ZOov_mj_\eedV@LXGPsj\\CAbmRq_[z@ZIjham`ubXfSKn]P]b[[X_KLWhJUSWbVT?pfRlfSY]VXOtaiSV`OOY|uPMPcG[QV^d>zSTcTlOpR`CT]HMe_zoifsXkZcrgYxV\_GOudLkfm3Ma_m_aQB{QFNLv^_yK[r^d\DUh`H_kXOZfkDbk[N7bGvUbZi]WU3UdSUvgQd>dicQZ9Ra]^qwIYYW\\aZ_tp_kBO[AOd\rG[TZTROEsapRTcX~nb@I\D\WRW~RAcZ_c_Y`VAMcP]YO_^Qa=|]bPHwdXVRxc5fXsNEQGow[TMWvPjNGXZD[wTflaa=hcq\WfmJGJeaTm[f]Rdll[IZ|LcAZbn\P\uaVsImR]ojTgMDJ`TbX]jZawomt^S[=^U@La^jZmVHGNf}dAQC`kURfRjR~}Uj_L^jljhJY[]K`}Z}hQ4_mdT9\Za6CsY\aaG4g\FRTongkWr_X_^XcUK[NdosO.xbIVLuIKKH@NEW@gupnkVYHVX5~Hr]c~aByI_BfHPj]bde^SSoiSmrI]Fw_ydtigYdEPFZSepy\q^kyyc[j@ZEKeIGAWLRe[eKbbNavZY?z`oZ]qid^=XVYR^hYDqsW?kbUaUgQepxWeAERq1dJTwiZc^KaY_gXsJXDFblhV_b\JZgbJ\wYj{lZ<8Pe_erUVUZJsecpeycFh]\bZXk^ku[SZWlYroIN[SYT`}L9|_VREUoY[Xm[jRYUXbVde_Dd\bkjfajTPfOUh:XPUAH@ff]`ZTgEw=pYgg[nft=O[ym\V`a^:]d`nod]y^`PQkf]On[PCiJY`_[EqacSkTokpksKgcKMj_n`=YhwZ[A[WVgEhcZ]RcfKYN_Pa`TjR^tTFYS|isdVPZp]ShSlUQ[YshGSrLtm]^\ec_bjodhZbgikZ}aSVJYIS]]_YZRXRckxZ|WPWTfsThnZNK9QsiY9EetaULKjU[^[@VkViXQcYIbrZUm[hgjIeZ[SfZWMVS3d;bM@NkqdoqcOfgW@XIm\Qbfg}JRgQ[qNVySNfxxfYqoPfEocMcTBfdWhwNMbptX[]xMPVKWoqK`2`_jQfWZTXJ^Ygl7c=aVr^GPLO`bhL?Zj]E_OZgWVT]MnB`hi9]Fag_`sTGEh>O;\zrXztMTH__@TzlrUSV~NIdBeQURSh`JcvcM~b^TE_D~MZh[}[}H]AipTrWENJbad=^[WFMe^JhjU[KNAkDe^J}cFYMZEaP]aRTCNU\XhXnbYvXbrXiharcqG7]`Pfno|@DKV`vXqq+]dFOOdxfn?rLFFOiO[\qaO@i@xq[diqQWKMWs[cOMp^PCjCZ?h^Hea__shKcljt[STP]P@ScF[Vc@Bff;S:adUZOn[^NKOjj]WP`]nUgnS^ZcKa\\O`e=l|cPYzXmkkf{~UUuN[hsgfp_]iVDk_T[rYTIa]b{ZMZ@h`[Z]M_hw|fnw[AXNovPa^RtiiZmenSY`XfDZXeZZFVZavG[Kjic]>MrWwm8GawNgPChns^^\qOdWE^\hra\UUpel]dUoYyKJnOsTbUmSZwV[EfCKSnUOiUdX=iaVUbkV?dNToobacrCUinaYkae9}EovxW\Y~S}lBIWcmPoWn]OP_poeQuXR>d[bbfOdUrUIPWlgXOQq`wNrVisRVjVrklachNhgpG{YeaiJe~mgS]`Lz[bSZS[hH_[UehYdtPwU[TeaiYBo[h~lKRgVWQP[b`n^RqelNJGQ|vtRpMSzkulWudgT_cJbia`;w^U|dMlKcsqd}y`Oe^qfccZvRQOm]RadQ@hybZn{F`@HHpS_kSMMAmbVhDAYwfdoPmlLT`bQlq_iab?WeXl^sH^DigozOYsnMnYpUUaNMVP7qrqcn}V}PfPg]Yhi[KpwliIcjL`UgY\g}l^oWKcmUKtZnQQ]X{FQUI}rX^mZZ]MWhRen@[^vqc_bWrJaPUfJZ[m\HT^m^MfkuIrYgfWeaVXFuScd`8b[UefaRnjUeZr`nZUIeesgYDRio{vk[oZfmw^[tbJclTOvKYHXZmC_VDAXZ]CjQ>`YQ^jRQYsnPk^Wi=XIpC\\sefKomOYd`JjlPscGpb}Zt_nrZMa|d[kdEY~pyKOadYV]cKVpk[]}gazQ[VglXh}pYkozlJ_kbmeisZYGc:aSTuTQFTME\eQ_C~ZuyZP}^s^yWSQ[]LdvmNe]VkcLced]Bf\y`UbCp`eLSOcfOf8g>tibPhnY\eI{j}{VsegcXLZ^a]`ifZaPgzxpQ{bRYgi@a^ILhNVm\Nb]djyxUdGkohlt`H_P~[]\fMC_a{RUwh`JScaddr^bO_FR]l^eHS_hkG+VOZZieqdI_oZfsNggzbWeWLaUa^pRVdlu|yZscbHSfLRc]Zog{LVagh\PZ]a[he9teX[t[WblrVYEUc]RZdRVZ`X@PUNW~JTeEbJhdQarMh_qetZDJ`peaV=fWZcjPBbToyF_LH]lfKMK;Kk\j^[KIbQwIk]XkrLxfis`Uaes`cnGkVQZfhZKveIb`sghoWLfZlYXO]WMJU`YZU[ikaURJuJo^ESIKiQc`sD7blgY^VPklYwbc`TI`HfPTc`^|am\\~jcMoj[~PxVbu{Vl[SPdG\gp]_rP_PYrVuaFzgRSGj]hed\beR`KjV[m^npaUePTrwVnm^YM|Cn]|c\@fWO6QrcnQQAiTWO\Vwwob^[WtN\?Tb=}eR{IQL^emMDjYaQWe`s_eENcf9I|{Wma/Wy|^AXYq\2aTuQa\]QZgRZ[M[[j\=RvzBJLf\rJbsgfjtf`RV^\PjWjNB=ULbD``JmfakgQhPPawxc9VAr:UbQHPQTwLPZei_k]SFeUS]fTMtUJULzB^VR4h3YSKWTNP_TWrvPZYmV]WV_iqUbFt_qkW^Pw]Y+gTi[`^HPnD8VXmkP]RFw^mVSd_QCTiD{lw\uVGi_c]vciaReZUd[Nq8Lh2KVpY[]bO4HgeWeLmkf>tfR}MrOsfD]C\JYTQRH_`JXCabrnmW?G[MEqOr[`[ceEiEAHWcXN>pbfZJGwq^RRTbKZXfvX\b[qujq-ii`eY>uOAmRhPK\Xk\PW^jfkwUTl\[_]YnS^H]aAbQYphnTjtORuuTbZKdG^]]eWY[Fc@ESmB[UN]BXTiRbYy_UXOHZj`jzhYM[LUmfs`P\eIGciVaMOOR>]XXU_jU\Yd^TQfJaleqS|GgliXQWMm}uXgjOllukntlrtVhy`Rcs\XjPSUMsYfgb_=`_LU\IxeTlE^Q^bce;8Onfj[j^dWtTPlhcYTYTTz{ZX_;pZ`_fn]DPskdKU_IkZUo]]Z^xiVQrZc[b\IpPWk`BmJ;~vsgZlagZc`RQlZn^s_LP_QbPzz[_YiZsi\e]VQhudfjBcVltWac_HQRce`O_pqizS]hSH_WWCPmTcXwf`UfW\cl8eYslYvai`juQpTV?Ni^Z^l]ORWljG`PlWotN;S\Om\[Ldq\SKVXLUE]j|ZcsjeV_qaKZgVZuQ_`uU`]dLZklbvfZe^hTN^i`b?DjOldlMlwoPmrG[a_Q]ccaK{oUww{^mRXnVmTZh\TRaP`MUGy[n^\E]`S[QcOXbzJuYTD}fmUdUykldqym^gfrY]p~Hjk^2HVQpXWXPD\\Yq[SoDcdON3SwxmmZ`nNT\:RTHPaAlJvN{]:NHKWE_ZU7]sWQlGTu;ehQWgjNr{yJAN_UQMBlG_S.Ch\UZ^XGO[SCh[st_\xyL][mVVpfAPhH{aXRikWziatedeqvZ\ZM]elsrmgKdvTRXeJWLVoeQdwDTmXiLFSJXz]]y}IzqY]ohoGfJA`Pa_{~YzY5PuMUWexk_laPNOe`fcIi\bvknZU`LMMF}P\lUJTsYvp\MCiRMg~LEEfMu[MujbTOQ=tZY_tgnDrlKOEWR=DeWboO]d\kNIiGP[yXaN]Iyb\|,_XpaXBGMFY2EYPXL3OA<^gQH5L3?W4SML98SAd`+Mc:75=bOiWCVK3YM<\guaSUVaX\2>JQ=OHfmWDLdDgR@QD;IBH>RAq[=6K>NZL0aY07PQ)ATOZIGNFOC:Dg=`VfM:FCHrS;QNPRTIE74q_CMOQ-G=5Ul_NFWOMQGCM-6CKNAOF66N79[9QfJV"CGJHMCO3V9[DLN*QUA]=WUE5Q61DNpBo_,N/O57[WAGT_6*EQD6JW>29.T]NGMJFC[ll=vYdwkQiVmga\g[IR`hthm_bAk]goNE\vKgLwna^VtNIDYXe`^TbsJLh`MM^fRoeQaTZjIPJsTRkwD9WQ\W[RRlr`;cLX]Tai`Z4oiQ]?Pnib]d]Nv^a[n_dMWalbwPRgrvsZM]`hCKfCExXqXM_ecSoVbxT|I^o]i_NQlJ_Qj]H~eQiadQ[~fEsNYvUsj{_SBeSo\`]5]}~`HX_cs^Wwg{YhJAcLQXMhQb`9oh\uYrqnSJiZGfmgmmY]S_HUQi}^qnGdWZc@Mh^\Tqqo]eS^WUadYVpZNOP_uhjqcn]_kmebmXpZVQYdirWuKRPgGv[SVSltERcmr`o[\NZY[Jflchv\t_ty;NX^BTiTift`mi\L_TuO~sU_W^M`YJ[N^Hjb\N\Z[T]ZdR_IGseCcbH\ZdsOycC^eX^U]c7KpSlZsbgbYURbuuYZYb^bLk\VufkZJcTda_PTMfh=_XGQVVSSFX`UaRgOJLGvoYUKcdWSLcUq]\yiZgP]qIk]TXGKh_S~`_Q3[bbOJiTj^eTL~S}qieUXP_u]sbjaEWXnWM[{U_rO\CvhHjFefVy[gfLKqiNwb^vgpYqNDchRKbdJpRoh|uPtW_t]=QjWc\agYdx]TnMfmLCg]mXRolX`T{eXwSjqN>LoYgXWMrj_FOPfDV6RZUXXYlPnJEmTornLho\nQtifCQ^wQLUfbB`_O_WJZQBR^[UdkJhdjVNs~{VOPZxU_WTddWeL:\ZMm\YQm9qnyfX^^9bm_d`t[UORrdgx`bvjajWTHZumIpes]ZF{Lx_fedf|V`Qa^Ui[_W`P`GX[t]T|TMeQcnuemq`LOKVF\[D\\S\[hg]b`]eIO\b:WmpoQQPWimTwiNCq}g^mVQ]eTNcV}[~_du^?5e^NLw^VRmt__Xe^Lp[]jalNXdcyS[eTNwtQg]SkY[Ydf@[{j^g@URfKKtnYcHegjXNgClRZaLafaVAdtq_q]\NM^jFgochYUnYWtWnxlLxTi`\[\U_Pnc]QmQKeZ_vPb^`\[QbdrLkquM^epU^lEXVnecY[ZJSygbX`ba`ZB|SOtVMtWW\n^uCYU`lVw{\FoXJuXwHKZtVCJiQdmeiU[jQSnkle[oRxhQe]FZKhgdKo]kVXaZ{d_W@[ebbwKPsZyQCI_`VP`UFXXR_I\amRmVT\PS\TvojM@^YnGZVZWw@`cGaT^d;]TV^SbV\tdXb\e^dNdbka|h[WyWIcZ[aei_fIOJUIIh^Vg]ksWlY^\m\U}XHrzpxXbQOemSqc_nd]d]\YgOhi_i\^EdsTZniMXchygUihYYxS[^hoWL]dtBoUlNbkW^X]eMWfJyUUVhRdd_lCafk\O{\slwnPXZaeyqhL\inU][Q]7Ean[VKXuwT__WW`ggW`RmaaR^[g^c\gePWhI_YzaTSZNvuxaXYUxdie^nOiYtW{gRioPcU[aS_X9yYbkVthZWqaRJ.SWsX_ImTToxkr][b~Yr^PRaW^rwHZ]Sp`2grRnki6DZ\XVpaZdhjkL\ZgLeP4HTBTYmWzmS_>C}jIc`\r^GPmxkWqNJHXKe`VTP`FkePytUpfeVeUdTkjTkJVaWfiqQimhT\cleSSVQSLRZL\_^xWWfJi`wdWC_QQKPsP``VOcebUfd]kUZ0N[]uJSViIchjkRyVN`S@stYmZJaUV[]PJqROiiQKHghRPZ]d_\pQjsN[l_Jee\gtrbJjNrmbMp}@TYaAiNEW8ui\I_tnoXI`VkNXWSjnadsZ|O_uDspTkgROgP[c?Za\x[PLRb_UBndW[MaLchQVGoaiHgMaU[X7jHSNeblnHbXVW~[VJPeab_XqCINn^NWWvSdgFTdabM?O[VI:WlWpg`~MXmyoClaYLRdTZdE_V^`^cS^pZwnjhylT]sObx_[X{_WMYbWVv^_PtHZkly?dQ{z^GkW^Rf_iiRosYIvqbj]HV]SEc]ihdIH\\XK\l_]k\paciV\{YA\gGGVdSSmodU[VSU\naKsiNn~tmKpbNP]mbcZYOqpm`PRcfJo`mgTdBiniYlbchH^SO`fac[a^hqdYfns_h`_XYKPfPZepjblQ@Pe~\XHOzSpKWoeWnxUGHOadT~uRibkcadgdyoqbdk_YYf_tU_rpqfyRU[rcXdFaSffYoaO[flwtXMcg\]^LrEWVbdpvRT||riiufZnJL]lhB[XeYOdRWm\RWioaW[iXixbHLrSjeg?`j[d[^sXVYnhW`_}`ghC^aLYUhUd_cyNFQb]{Jb\YoZv\EnNtjrNYN]YrTnU`pSiBdNHteLeZaT_ko^dZ[NQ\OesSknaSL\odo]^VO\YcIZ_^^ZZReIeaSlP\J]YS`WcpggR\sNWiaPdiolRSlMog8TijhthiYl^Z\cYIw9DaXoai[`fTcMybWkZVO]f`p\JXYqXobe_YONYoL[MfWZQxnGUgemn`ocfw~P{PlOei`iu[cdT|gR`hVUPv`?rlVKqfg^o[wqHRmaX_]kV\ci\YztVl|RgNYW]kX[XeUs_xVblZgvJ~SZ~YZprWM]PppJhjlmUjlZ\mlKgmXaR`[fWKUaTZSshqXrX^VjVQQphJbr^TF9yVI[XpVXxFiM^y@aerJTcIL`^`VKDLaMJkng[jA`erfK[Z[Rb`c_dfXj[jDGiVPKraeWE^H~blgXVhS^XO[TfpXKgPWRWefbOdjmSrNUNWgQX\ekiLdPF[^WVg[kXtU^g>\Xfb{mU[deb]nhuSFcefIWk\jWjcqXs7|BUSZO]FaR_\fScUwv?XWiQ\UwS9wqwQhkbdnws{hbL^qf]\dV`xAL~qbGiJic_WLeP@gVNbW+IT_TEfkp^_fw[KR{UmrcLajSC}fuJKRCTPm\SnZg[cQMwVda[Wlg[uOYUmnHgu{k_U[bdcCwHfr]oggyQcegtcMhUg\f{MrmVZ^ZIaa^n^Wlw|IdaQSKbaVPYY^;aNHN_ad`S\H`PLEK[MgAPwhQ^]^XfiXnJaLVWITagYueplickZo[NZ\^\qmPlWcfSUgI]GOoAkbRX_grGu]UfWYW]hhTj]1XyLLLnkSMCXefJHR\KyDi`vZtUvTFIv~`i{gZyasl]rPTZoRU[e`KqTcm|lMKqlfxk[jNV{D>wfqcOTXlVRNJiVs}QhwVF_m_lh^_mH^sRkc}Z`YXLNYR`{goi]_m_^nfQ`gzVGZ\lXsGVF]WCSRxg`WJefa`e^YyUKX[maXZYo_j^RROelM[UQBimf]qdbxoOjJMgch^RSmy]ltlfVKPM]bktrOmpOna^hd]LX]JVVvfkjl_cXKbiVliqaef`di~ghSNYgzqSa`jk^LTfSXbN_Da`TIZPnZyo[{BH{[ZZxgZn^Ug]mcjUTqp_bQ}gZGTb]SiRqcf]dZeg`cZ^kLMTVhHRImiO_mhdhYOgs^W^rfXRa_ZQ`^RXLjD^U|S\Oq[g[U^R`dXmzYj^UJ_swa`YMtRfwcbmmTKTXOadgdY\g[RVVSZVbe_gWVdc[apslltqcqYWPihZeVRbgqpcUOxauPq_jNlwl_otcrdJhhEg[nOYPgjA^\p``eb]]kYm`Xq[YkTKfelu\MVRS`mdmQ`]jJhemS]JqsOozg}hGZYuWJ_WfaU`SQ`V]SgYPj_jUYZnvP]Ogk\YTZl`]_sSFTi[skqNLMi[KnZ\HKWrQOTpqU`W]CVr^gaiVdg_lcvfZtx]ywkhMZXneZeUcKWDeSJoRe?pc_Y+v^SfhdJZ\YkTiZXr|cIrnO^EfR[c`R\\7jww\[piu[eiTrrcT^ZVs`eX[W9f_rdhQWcm[XFSSIRo8`dXLYSoKT|OkPC]pqEGWbxm^`mz~q`[cXQcaYq[rUO|[b`\g`][{l[[RRj~Gu_yBrgToGXtGlVh__[SvbxVPglWnUPWT_gGU[Gf}Ul{mRgc]gH>[\Ekd]Y_Bnh~Z\oTj_O_KDR_S^jSP`J_[|bdLpal[`PfVxsaWYfyZJ_ye}oYW_Yzv`UlQ^SRqtcl\Ulhac|aXf|d`WwdJ^ibNp`[JWWTWi]OscQr~^IfQymhIJXSXek}cQiMazKaQzxiNU[Sg[`b_>k]v{Xv^amYi^NQ_`d``Yb^AWeWW`\abU}p^lmPCUX\Fpi]rWYgACfuaZQXljr[ALhzPhc}fnMhDxXzlUas9tgjlBoX\K?ZwYdWUjf`y^\XcLNK\Ned`RTcUDZVXNaFFOiu@^Z;WhVdFxJiEXVZcUYJGQRei_ohdh]l^YR{_hgF~eNO[fWT^ENSoU[XVmfV`iW`nL`KOecc`{aOEzTGPoUkQY^xUyVmn_GgYICpg^cEMYSSE[rhyWZn_LgCgQ=^R_ZLKeM7l]fzUp]ddELZFQTYlzV^^S}YnU`aJfmVnsXqbY@BmN^n[~KPYaN[LnV]eHPV^||qE\IOQL\[fnGQcjslmYTeVIx`ni\NZIjRUWOo[psbXp\mabWgdkwj`Wvlq`KYViq]j\u]^WfcElvdw^S|aVWph]Gumxg[k``[V_`mk[WPzY[iwHTXUfWiyRHSdkEcVh``KX@ha{JYTfaejOMYvkVged\Wq]gceM[kVuYDgXQ^deS~ijXnnmv_]]wfiLO`dlhWnsxX^U\hTQtR_zc]mSomE]Laf\k^sY_`e]hMnZRctcOosrjcPcXRheiRh\WWdVd\amLT\\kHnhXMP^YIbgKjbNee[]dh\YSWLYVN|YO_[bRx\xdlFp|X[Z\lsaS}bOc^`Tdce~^[aayeFjexpjpThfBXNUX]c_z]MhNNSndlafq_ZS`dZg_NkZx3fW@^oRNmN<_>][\jdcUdlXO7duUWbdf`\gg^FRg\Q`mXZc{\tRHX\WVG]`XT]tb@TIoucLhbUYpk[tXdUaMyU\ZIC`QXW_MPIgjdN]qius^\FZKWbEyV[HO_gUNsbcd]aeVlMYd|^wxlcbmYWG]UabV[L_etCGJ^dVgcSX[VPGjZfy?hTgbSo`KqwNQOfWKXeO1Xjd`b]WiUof_Ychp:]QU_m^W}SkztmYfSU$rWHq_|K|URbNxpUU`[OITYMXeKtKdZLVX]gRXoYjeVNdhLMKWch^X^ZLSoMSTQigICTC7_QYZfMzcgrYSRZDT^n9[SIF|jbA[NKh_\ddVOTPclVK]iQ@XogqfOUetUc_uYJV]^_hpb][`cfyZOa`PshVqwe_VJrcO|b\[kn`YzYeDJIQnjDL`^^Yf]Q\pbD`qTt[hY^CLXej`VIUFyORqXwpXbb`qAqnkc__d`cVVa\Y\TzhKPXX\^oiLPhdPImovzJXytXeX`dbZg[lZ`wnkdsWkLqvTsn^pdOUflzvXsHqFOkefVLOiiXQgwV~kPYcKepDXgKa[\WckYs^to\\qSViWdYRg}\u{gSrdidx\clIJlajWPNiaeHUK_Ta`_|^MCU\nMBXfkmWz]_[gZwgJ_[TStJQ[TFt~UfQVYeMYVvASV_TGPWGf>]\_eUCeka5Xf_ZdhWWHepjKX6P]edbFVwiUq;LK[EYlFaci^USXJBS_GNTToTNjPTcB|\NQDY^LSbTKUfUyBbY[@6\Oe[7\kT^jWKhg]ekl_d]cqBfF[6RFyqYqI3ODX>]`c\go\bf]xa{VBhRdNFY~bY=`dWRPkXSDYonVNySXg`lfF\p]ePRjk_f_Um[eycSXcO\ZQ\S~]KRH~a_tMzQkQ{kJYHRDfbxXC]_jdZWPhdQZcN_[U{d[iiDi3_jjYC~DHCWR_OdZaVVbm^aWl\rWbnojr^FfR]QTZ_R_Sc[VZheljTpg_tYtPQsCYJgLYlE^jb\TavnOuag?Pdg=8ty_vljU[]cqEZnMdkWP],RZkQXvekUpV\QYZK:mMcYinUZPw^lmnZYQUFl@b^~TFQSt~l`{kvNrmbfTQqqU]CHck_Zpt^asPJD^g^QeNXeNkecfap`XEfEGZ`NIU]\Ku_H_cO`GkNZ\b6X[X[OxLTWgQvn[hjCdAKbB^ZS`vm^Z`hR\W]ePuQaGYS]dPHiL_hQUi]Kpd\cN_Vv~QH^bWHGjMeCgh\gZ[bZLPEqbGag[YX9hJ[c=Z`saX_NkhZxa(c_QZ_ZxVJ{n\\dNQVc^WckZmLIBqNUwpiZ7XP@vfY][rCekSKMP\`MEca`VAwTCEBsVSrCFl]deOP?Td9oglKbC\zf\TOaeaE\W|mSR[?XhOOX[SIfSMkktfflNNiLkho\XUkQZ^ZUvjV[k{b8[VVYg`keFdjU]k`m`[}XzrccW`atyX[a\t^D;alaW}KahMGj^td\~W`uobUfLlXc\OulLM\akjg`b[RlauygpTjmGhfpSd^m[Gv|W^gkdrn}HNbmgdZQiUaQYXUObdbKWXURVnsZZc`R_ZNZ]YJgeVV[jkN`K_dU\kgfRXbHWTdOgherStSQTaTRmh^MI]Z^S`Y\YdjMdPlSkoYYl[YhlbfOeqJeT_TQL\idnlXnNQbOp`og_LSS]WS_eJJO[Uf{xc{obd_vM^X^yfd@bUlfq\{W[kklYY\GrDjAc[iTt`XSU`TlPYnQ]No^gXbQFilRIcjNhkzOsk{{hbVaCZeNaebo^gIti>_W^>]CaaJTlOcogIJTphJtbkIdXh\XXYcPberjeR`dsJdzpeXaXmT_bVKql`ZvS`VRMVaEP]sXcT~Rmo7U_IgEUsxRjbgi[jjlHgwn\`Mj]yenoYimVHViR[vX>lnWMkUdx[F`\J}PdJ[SdVQNNYI]bPEpRISQkhNpdScgKbH`imclOVG}oSb|WAWt\i\CPMhqfdTQ1di\@E}g}Fbe[K]KkoKCtTW}:iSWKikMVswTh]ah?PK^`SRDJUVCVHNPXfpLMm{^Rq^sxU^f^gEGyrfhohagb\UXYT^5OZaVPgS`U[iYIggwwejXdtb[h[X^YsgTeVZdvPwdWjcGIGrigHY]lpEqcuedFOLXLVdb[j\^acT`^s[{dTTHTgOYu|NpUm\elaIVXfTZWSWTJN|mNeYYtm|h`XaMbSnSpGern_kBSQka_OkRjV_JgKmPc_`\kmaegO`gzvQXPmPVlhZ}re[NP^bY_KPiRigcgWorqb;?}bghZLwh_e`jV[oY}~U\8ZwyUpJYYP\^jP_ChJTV^=\NbiLU}Nb`EOMn[XoInm}ih__dE\wlXlRfP[R]Oi\`W:[clmeRRbO]ufvZURLMaPSMCbNkfu\UaF7[wcqWyT]]WQcQ`wikp_d_d_o_F\[>lhQ`dIRSsfmf]a\x]]lt\unda@]icShUcqV}aacltRkHEgnFN_g_T^R|fjbscaMSfR`\OxWWqYK^sd_a;YOCPU`fcRd_pWwa}s@\iQPNRjG|iTXPD^hWkkbbg_Qwe|HljDMfMYNi~Be:aLw`BLfbQ9HfV^B_KGh^gj`@aVWR4F|lgl^IXD|gG?hkbP\rE]T}LY@kJxp\yMhlJNb]e_U`yUSdS^]Q^`jafhvoY;`hmbXe[BzSVgJpIaFXa\t]L]WXQY^Le`[\MnhAdhHdfREcBCib[RZZB^hnvRVX[Ig_Cs`ZTioYR+[\W`YQ['YQmboTj]kSGT\G^WgWOcmD[fUq_gcy`k=M<Vbifhn?M]F\LNu]^UL[Zqtj.t/XVgeZW~gyT{HJ]]{GjU_Imc~FRUKz~jSWMKtnefRNjK]^I@geRZV{`CBO][jUecRS[|cLtQV_NTSVte`jpPJITWRmwgPDZcdQUOXFpZb|bN\f[cl?aXZR|qd_pOTpTmpNRhJU]_eCY[QkOX[YemsV{~r[Sui;UfxSUKzc`]Ra{[sAZJO}MeQXQhigU]JXaYKnCGYb?[jT}ku_Yl`\b[X_xW]fstaQdpeQaLS^adx_U[dm\YW_5DwCeYiFcjgLnY]lSvY{lRP^NdK`MfR`cpbdG@KVwXfkpd|giUAVX[Yfx>XcoY_hoa@imYXldNM\iaUWr>_=br{onY[r]aG[GgStX`o`OT{OMPukSJbbRKimKiT?ausWilpogVRqC_Hcs`aQftRLaZkbimZlYe6;lPh]S[xP_Wvf?LR]eEK`lYUxS`sSO]R[gXUb[t]cXLiTJx_`_uXRP<_SF^|QcZMccFMfK`jo_Eo_`mEKstiNcCPs^UKGZEWZfxsTV]ixG`Njc\xPiQWEIlrjbo];QRfZN]YN~LX[SP|f2g]jofN[hwPZrlCk_LZWqYqZCilTM>hSL]hXeMkK\|b^Tgf[rtYnosl_YheZYGsQe[OpHT|]ob`uX>eQZUC=gXbiD@MZ}kouJ?tVNvVFQJX^x]RgijFcR[lS\/l]M`IYPbmWdP`D\8vhHtyuS^bz\jgxjYYKYYOK_c}pShiTbMfeTghkE{WSS\jTOS\>kpyWfY4Q|XlSJenlkk;eMiVOaNRahaQ^ha`F]QZTGdhggfcsZiVObh`]_jeewcQ[YULVt[c``CjLldfIgl]^LBwkAOqoYoa}U[ZVMTTpW[GPbrcdWkHw\ZX\bimUJFb_]EZPZXUFNMoh]XccYn_yK_klr_Y[fYksnUYSehgfNbeojjgV~X{cZpSQsSca_X[UdkXkTmWdgbEP__sMaE]go[\tlCQSRObbcfv^bISJpMcVn_[miuPj_EbFa?pZIYgS[XWQTdO^kvTC\Gr`MS\[LJr[gvaPdbqepUMdhI`WIWOzMPLhef`lSuRTtp\[Uk[JQQq]tLUQa^]dnJT`nh_yTOtj[QWR]h[P\PDanlkj_mdQ[uCO`VTJiwUlXSgl`~HTRQ[xrad[VRwZP\sdrRMNYYRjajZLiUiJ^VkV[n|6lab@ZIRBPVVsn[|W^HCKiWdRZeeWmfWeVla@=Yp`eYQhRaaszRY9XbeZhsf@\;Qm\o_rhUqL\_]p`rLmxzgh[fnes[[qHfcfaZu]OdYbEJMopXrcfdlpXSqjQsZsBGbNQ[\oy]lz]UZV\pzXnlr^fvoZypokLSHZmXmYpY[hAN_l\wXwPe^XIFs~Fm_SodPcETXmO[YHITdI]tS^^R_cbEJHYRCUkYilforJ`Eh^j[Lna_QcS|fbTdssX[>OMjcdbnhSRMTNZaWSfhxu?aWy}WViKsPlWYhaFQM^_Dd\9tXVi`XzeR=kHp\lSW`ZXlfgeW`U`hvkW]MtXj^\h^lbhYaL]r6gHBCoCnp]QjKMBiU{t6\KkZcOOTcuSkZy[MLLcLSI`WhTUiq9cpgLX`RugkkSHfodAQFbeQzyZQzRLfvZjXJEiU~eFdRm]fVP\lkvE\l_]nh^XUHGbe[OfWuRQokZVOja_\NVZhhVWc8]j`eSIWdbqTOiLgqIt_b\P}cc^\DN]V|pZd_jEThaOZXn^JfRdpHlDGUVx\XOX8^RbeudiW\\wn`ZRHec`prv^NKlasBzxkedZ`YHB+_hBb]rL\VKefgL|kLOWNacXqOCnVpI@qpbrRFal6]`VHdRf@?P[UaoLJmP[dQpf~jjgcPPDQ\]f[HTVwtDqfUZaPbpeUSfGQtv:dtXsUbxY\iPdhR_YEK[pPPKiWcM[bdzcETndVWb`wdpRgbHHoV^`E:MXtfVRtMWhhHWxQl|zipgoS^ZNRzpaaeRmj]ojyIT]\Yye3hn^[hKNMHGWXI=xraFlngCVNRG]SidPa_^_eQgQBGH]pmhQkKsd^fc{irgV^UXfOiZWTXTOOlkYUXH|aO[QcNQpVgXhxUc`JVYe\bedPO_jk}WY]_gV6jNUVK]mf[SmiuGUZTOclNn]bZdykemw_[v]Wp:YOjDzNO^bRW^TXq]nkN=\VSRTKttfgeR`UVq_={|dTjJj_]ajfcgrReC[iStwY^ftJ|tnMAQzldOwO~qZZZilgagWVcJtIeY]Uzao`tQmZsXmjkqt>VSSJ]a]KT[lWRZXfMGo^lJRdSTk[`aXc`LIJCW{cP}yXpYNT]SOY]v{p\UlS_NTbfueb[[YrrqNR]]k]PiUkhitQS^`[TW]TulcGzgqxlH_UX]\]hjx`]]\g?Zhk|^jkSSqbnNVjTk_Jkz[CN_Og}`YQ^^gXwco`TB`ZBNOubLZGaUoQS[XKVgcrRLcYIf~TRiahShf}]e\UTK_N_bBIdXn|NlXcI{]sbblMdbW]TXRG^Twrh`\N\{sLVFZJtQRtpTLRN_VJo^dYxTZpdrs{Gjmglf]I`e_jlCR_i`TM_PpWdReK_Vja`j@Wf\mKa]zeXmTyaWLfwrVMHwhoYsiWUc[XeNQUUI[^oKAgUhoOYQeZ`YCmsPbS^z]NNfJ[FQ\KTsd\h`vPwc^tr_oHOCV`tP_hHTw^ThUjvDLcIpaIaR|LlVHg{noVAqUSfYdlUiakVTqC]U_LYk`IbZbO|]MnzKVdoSZZg`reOg{PUbm]i^fVSUL~a{k]j]^zwEGYxR[bom_ZyrJu\nxiMBijVygcgjcm[lSQKHlk`_jQ[}VMfqupenkP\`;T]V`vkbq^XbN>QaGZ_[zId}_^J]NJVXxltU_G=~ct_oi[i`M]]dEdpSUsKX]HGf]leRT|R{YnwXWeugpkUWPqvz_S]\VMWwa[lrhXcwPatYWeeZMTdbHCLM_Tvb{gbaVFcWjrHdEOfHJda:hbaUaSRtn}ASp[VYl`o\tQXuL_OYdAFhXOW`^[SaTLkLRhbf[8pijOweE_zHaV}ZWlRFdoIGaaiHMs_NfrL[YHhTd]kjNocJXjSf6tnJSHZ\LSZTPUPScaRYFWvVj\R{rQVLhZVSTMhna\cRLgcib^Y_X`brYM[cqZ=kobBPaTTPpHR_PUIkjPvSqWR`uT`kXbk_]b>r\cVknu`UMm_[qcR3OU`[ixsNrLhsawfYUNTmkVckaYn][`k\onhmjIsyVY|pgXeKZf_Q[M[ZRccafJthkbda^eOdXO~^[`aehjfq_nYsrK][[YmyR]d3USB\UYIvsbsOh`OpNAkBhZ[kplnY9{`SBYfaX|LDR_VuVvL]GjRSwuugXkUYaYiSAQB\gjZ^RXKt^T[jxW]ZcV`yObabh`gplVRZ_VLBIZ^R\NnjTYzJ^\Nl=dQOzSKWGztteqbBm]lR`_TMhn~_9LXgaQdV-SOlvjk\Q;AUYs;x_NP@gSa_UMPaUhra]QQ9KiW[RdYR`rU}`curPSVeqSrGK[OarWfQJM_iYSuQVicTpqTZYZI`hPjY_]RcWWTcLdDEgb9nsAiXbbVRSle[gU^rsZplNHIbXHbTkUKaH{^Y`aFX`]wrJ[NNlXbzkhi`YhMe]HDzNZh\MhRH\d_JZYhWQ^OML|LZRF\EWOS^;wfU^\WF_cfaPYVEhnQXn_[=jNT=LTpfkehClTTTkn]k_q|QMch[nNkawRTmJM_e\V_};vKYbnSJf\\\O\j^UaRtPaH_f~`YrQ8WzlMjv_fhUT\NxPcfcNtMkeKxnRwYVZWgbs[\SS\PIg]^XtfQeillbSUSKlulZjZm\I]fSVb_jo[~rfhYQcRrbmNRcT7_J_VUQ]oje]]Vl[GeccY~gVc^Vg|dfja_JNkXh[OvSVTRLb\WUh]]DMQlvbg}eqn^elkNhnyxu^:fThy\kFa<]FbxpX]GkW[j}PbiXHh^c@xoU[Po`^KQ^gSZZdjieiV}fap@_PvpZxKz[S\Ur]njOZudYfMg`WvsMOUIqf^VQ>PlYSfEoFQf|f]fSR@Rw[^zdlZN[[fzar]rI>dRm>`O_3zplTl{x]HXpTwOrtmLSfB[XSHCatoWDktEmTN`ZRZ?sMpUVtjvWV[[qp`SosbnppmUTDgB[Xf`imOIGVmexY]WbhJWamWj{TCiXUbwpEfBnLifMWQRcKFYa]xbhki_abVha[sNOPG`fmbxHWgYrWFaTVdaBSuPyishiXehsZmZWf/hf{gClwgrIPs}2cW`efcizXZQhViPW^Ioh|NPrGnDvOcHB8YUTPJQI}KX_slZwgzxaQpYpQzsKco|qj9<}itRZMKWKi\kYeZUQ^b{_TO>^WWtGwn`Pia?crJ\z__h[a^l\S]|sSCf_[uPDV}B`hp[da}_L\JqQF}r=SaYerU_RkmKWcjmfsI\Up}XnmUdgTb[chQ[dSlpuY^eiS_vEjl_jOygRndLeiSj~[bePatiZ{5KMTLniMTggbiZe`nlo\ZbZn[R{NgORiikkjKWf`hmjPOrTZW\^\aphXkXFiWUZ`yfhf^g]W^QQWmMXrymYsb`YJkb\qmrcaNiOk]_[ZRXrf>khhW]S`yUQerWpe\kXUhUsVWPreLjiH[hKkOf_N;B[MYQ`hcPXPkSX\mNlb{dT_KSeYIdeVflqWO{_CQZrageQnx}sOpa^jdTZYxJiOT`]NbZQbXwSjVv[\RgR~a^hQ[cSZahhGbGOXbeMkHbPWaYSlTp[sxjfkMoxv[f\IONOk[_lTioviG[lcUZy_`bg[KdKe^X_dPkkkWkRJ`qvcUXpamU^fTmvkxpPzrbRWUJhXNQPWdO]R]zrVEe\p`V{SvP>Na^DRqrbRe`_xyba_K`tZKrUHYiOWTQn~aF^\YYnum^S_Z>Ohju\dof_QoP\nUx]\SHR^WamVdZEWmbUGjlxhOOO`PMPL]\^ZTRQdK_cfCji_dTZWnRVYVd\JgFeZ`aX[fP@jvpQIarhYJLUnhNNanX;[lNtvkzghUHavhdlYMt]oSSQcZfI^CLsZfcRWpsbbaSRkOhGs\aDaeRu\an^^NT=gX_ldV_WYUP^\bcdhcrnoZdSd^_gMQxPjb7}Qe~Oe[SV<^]jjgJYWO_{_nWbcbCZhJw_m^p\IhF]\vVLZdWGL_OUfQ=mJerZjpcOIUzcRXYMRTjTGekjY_`_dZlfSUdKjg\lvZTwg?oNOgdDWtUVc{yjhZFYMVQ`BlFDuHme9fYd~Hyv]YNbv]cs`WlfWzVXab^RKhBVgis?fnkYmHOaQgYdhPXV-oZ`iUaABi`aBb[pXMaMQlR\gijAWEnZ?PTVTMJOaUiZsAcY^XlLEdTXbjO^}o\oNjUonH_Kjg[oYCsbNakY[dNnMZaUvk\DYTjZpY{zkXtlMLIFL[l_O\YQNiKxoHT[ysOftDOjMbc`wZ`bnyZfLT_ORhoHL[@jIRfCrS]S]gCRM__E{RYluYanhgTu^a_EEfca[GWi\mlixRUXrSlUWNHf[fiiWZJ_h`qQ\m`^KiMk_qWbLjSGc[UfhTnUZ\cE_MfeHdgOXkiGG[m=tYH\BSLVRIQZWcKcZUFFZO\RKWvms~bCpRSendC_ad_R__X9b[i[hqJVRIEdTvoi[FYVMcjGb`iY^sVXlOYSoWeQFS}OmvK[T[giO_nEbW:PLCN^[D_Q]bnXabnjgdlRsWw]Rf`YU}qi`Zx]bpQe\mTiYFZ]VU?pVZVDif[^v@rWiOLxf_xV`UX~zkgUPSd`XtkUXIYSUwBb[|_I^FjegV\Ggz]OosW\POUQW^mIKTU[feaXhP_~TTjZnkmrkkIcaY_u^pRHrPUpQ]newwZOEJgNnL]Lf^VO~H{h_aWyjfa`NVJgiS]N{lDVdGRoRQ__TGnWP\UNcUb^F]]aaV_[c^fPX`qcTZVcxfQSgBX>ZO]BW^[[XWd__CM|eSMdfiVyRWgaP^PMVUImEXNM_JkRr\wr[EGNM[{_K`]do\RDCdRc\Bm]PLhrgYh_\tOXoNcVWbjUPO_X[uJLwmRhHvOqTsUfZ`fGjT[qeowZaUUhsrGxfulc^VaGsm`[FaFao]egtsZt^Ubls[efmgbykUZl_inX\]ikqYZt_`QyUOfB\\adOYt\otUoe]ipZ:jv|X@fmVoo^fr>x`_bSYhCK`RRY^U^GrmaP\RlG]Pi[dyqRN^ogPsrOn\\{XZQYmyroc[Q}ralKlUiPxvyhgB`LbgfT]`iFsPabEcMNKXPOcwL`jC`bRaGfXI^pgNjYqaxSY^ZC^A]p\lz]RhMoMh]Pj^nOHial]hVd^h[exMjycR\oUhhhh\^jw^]MNU;hqvlULC_JW`ZfO[l\j^kNRX`_}j/`BM\e?KZTYa^lHWjoheMSeTDibbp]l]v^elXL{nottHZfLyXM_YtiYjqVal^\nhW\gNYVVhY[VrG]l_H8VMM_sjuSQROYjnQMejdKvYEuq\aXTdUYM[P_IcngjmVFT]eKcS[p[iP[\Re9jSj^ch[ZS3TE]ZFqCcVYkhj]Rdg:L\fL{^zdHOo}WgV}VsHX_lMPQjjWzgToos]]dbW`neW]]cvvYVZYy0a{bqZQ\MYakpKIUdbX`sckVKxXWSZD_R[ran\Tlm\edeeORB_I\{\BjaG[v`dw@EPe}alrE\YZWsHDFY]mhlaNkhOXUXjgvhlTJWkImk`_PIeRRmEqhjURg^R>TS[WsyER[bPy]q{`_fUnj[wscY]_\Tbd_[]ci\lSPuX\WVeOV`M7b[qfKibjFctR{o[DcU^z^jPBGgVZLlHXojS_hr`XX~_qvlUb}FpJ|G_eT\dpbMjdsdLSQtyU[OlRv]jjJ_cSyiu^_po]aojSevk[|MMPo]gvlMsK_Z`pUYNxUa[VGUd\J`LQrad@ssrBJQQYhSHSdP_pRQQ]tjH^bu[WL]YEaonSM}YP@pqQShRDe_ZkYYeUxSn}NfaLuSZwJwVR~|q?TbYJr_ObpcsB[\ikr{efjIR_o]^rmUKfjglZSpgT\ZjH]eRZ~OXzZv=uZDbi]JURH`g@T[duijdrX^jj\ShsbwQZQ{k_ZQoycS[_>gOHs_Eg_gpQfOzrgNq][=`nZj[QjhUOfykhOPYpHkkX\oci]d]SxfBlCddnyDjZXDoi{f\SXVH`_FUcqdKaKqJ5yS\NN|jYe_GDVP[UemeQ:aceIQMWyOWb{e)cVQbes\qLeLOM]Z\dnuK^J_lSO\v[e_W_GUaeT[pSapvNd^JH?^_WqYJetLrqTDZfYk[L\OTI_jZc`doYIZcNbgA^Med`qjyixm>hLpdGQZWwZFbT>bqNRUM[jgmjXWZyZLQbskBT\pzh\|XSYcqgHVW`SVda\fba^PXPVZcdSG|Io^^j|Sc_`K^d^W\m@XCnhBU]q{`[cMoJMKpxVtZUqU]MTi{OJJrS]QMCITfRG_V^eOV\OL`RdYdSQpHk]^g^\j_gxgmou[TEua^]aPwU^RenbjWNxdi]geSWY`c_DseUptlt_YjZXMl]RWVWbULilcZNMRJZ]_bX[bh_jsp]jdWYmQV[ThDZ|VnWhZjlZaYjarZUxzejnSq[`yeNJWN_Lc]`eRdb_}O]Rg~llXXq]_OynoRiVFUb`}jTLzchcEaChmg]TllxuIZWU_dEefs`L[bhfKbRaSmec\N\\SPdm_taRRbaZasXeg}cbJmoWK{QmUbRiik[acGmKQjgblT]ojxOPWjUVKTdZtUXzSlsbW\ZPLjehpO[hZR]k_wVYlXbhEY]ci?]WXFctVMs^eegYTmS^_FplRyE_\i]UjqZlj`WV7f`X_S8qPUVPln@ZeVklTXrs_IZ_Y`_\ls_`[^OYg[\ldk|ZZUXWr^wdz_`rjfjqGAqZV\w@rEjk`fVWUEfaat\NcF^ds`\gabsJcmau[evPXKmWZYW]caOHfZb^u\]WBOJk\h\Qfeg_]nBVuSF_Oxu\bH`jbf^uafUxna?LKWb_hgeH{JKaaIVqdsUZu`Vb]PaH]MHqY8z]ifRPmfbhTX_v`_CUlap`UZGSXHQJfZiYPVR]tjS[^T`gLT^dHkYntTj]ctM[a~[eC\egfLkRVnXbMinn:PcjSOmdSMfhggq^gJ\cvdZcxc[IWplaK\jhRcWAp[Tn~plwearmTjv]^X<[MK5YaevZcuD^JbZURmoloaGbpHKU]wWhP{nGkNp\ySOv_ZXt\s_]~e?_wU]`gPVWL\WDuY\cbTa_qvpXZLsb[tIOh]US[]]uSWfiX^bkiSY?cqdbSrQp`\VcXhUxddtQF_X[TjWkXiRcSaXOsLz`UeoO]iKRjfghynooVp`^Pe|V]m^xw_[nX[xcXQiVNfxAc`A]Dck]d^`mW{N]nV`Tagp`mXSl`kl=_Qo[cZYNg.q[TQUgWdo\kjJ[iiZ{`vxZot^`LSLYmai[q`]lZ@dwxne`bAghnR^oN`n\TO_OP[XNuQ_ac|ue`QR_sciwMUdbZRH{gjoW{GxS\hsdYwKXQMkkyadhb\QqXKVZauewoufvcUX[fZguW^SL{eKPZZ^Fd[hI_ZWVdPT[N[[b_[Ud\^h]^fVcNOK5fq^U{eyPN[kjR[xTzkQhWRsZQ^uUZRdPpuPhFvujgwhnIUUdwYUs{u_d`pOKpxOdcWkMJLjWIC\V^`nsbeZgUHORkD]}MnBcKX\:NaF^x\qYiifvg`HTCr\gHVjQWjphfNqUWNhOgGdYJ]BabtggZ]fv{ceXv^a@I2K\^Qa>Z[M5g^m^dgBcK^ioXRG[JTIYXSTa\][b^\G]NRRemxa_ZKLLYbMLSS[XZTFPWbW\[lRMVkjW5^]WfVTHnr[Zn]PXg\YzNG;y>]UdcTc`Bf_\Kjjc`]W;fP_Q^QgY^GgOD\p^jdv_r_[]mlZcPKWoXllRAUqPf^;O8ScWpy`X@n[NkgtP]bCpyaj8QGWV[XBKUKdXTJhu]t`AO[`YJRPbsXkklNP_@SQ^rJC[f@QtP^gTil{`naRkE{fD^tN\cccacrIp_[2\_t{cQhy^ZiZih{[s]nj`ujeqkbV_h~k=NZQcUba[m[LbGZM_WgFmklZjdyOXWhXuHdRsOehajlOKOra]K|gMmWhTo_^Zly[Q|ErM`YqsWwQ_|\W|Z~Ss9zjZZX^}{}e[nP|J]A\ofYWbgbMjWsWc=JHe]HdXSw[Zf^^cmrO{EaEGmWpo_A]SPgwqlwwnrS|UmYvfuNW{L^@thXZhbluj\nGK_O{hqa[ViZqZPuNpd^wKHcbPXMofT_[dfUGw_\_eY_B_c\^rIp\d\`YiWWKvcrp_[S[nYq>g\ynYbJNWyQ[OT>~dcf{XOCSxbmovYrkQ`qIOafUxSm\cRxfdMv\pahf\SUGAiM\_gS{mX|ef;Qd_ck|[[\\OSMTWd_d^LUC`\gej`cgbcLYslkEm\KS[=gR_S]ZkiBjB}OiS^nPVxjF\baKnV`UyLRrH^XpZ[ihbiiLMMsbfRaobIWTaobycfOZO~ZSOdLV}UjaXjtU^^E[UJWdfNrkvnv\SIwqQXjkgUSfabXPLifrUWiaTK?lUUPjUiMRgmUoe]Kk`[}g`nHzraUTyeLWPMLfmKsh>LQWkp[QYIH`^kerWjhbKciV]ls^h[YaX^VZtYxd7vgaXhZyjNtSdLcdouPS`c[JCqZU^}Hwc1UP:RlhvsigjjLbV_oYfm{VUNaoXw^M^T@gaCXZUfb[`m]G[f_drmmpZg`cIXXr\cbP`kEFYJ^QhohqPK`k[@fbfjqFwhm^`DPhnp\\ml_IY`YReax1byUu\Q_nH]ymtd[IeNj^`gpkpVMT=WrEjMp\Tbe_FKs`nqZiWicKRJK`sZKOe`WfN`j^VPh_fbppY__=[_]dPmccm]_v_kGXg^qM_TYSPmgi[jlck]l`STMcCTN^M^q_^:U|fSRBGZdjLbkKmIg`hhbipNfRab^\Scv_FIvsWkYYvQv@WFMgMk=ZiXfWaQeKzW_HUdUCk@aa[miVLkRibj_k[T`uCPMaidWReQ]o_eMSp\>cT]7qb\zv\kS`\}[]K3MUrX\ev`LrMYkr^O[^qWLKad`caL`wZdlMe^~y^jRS]Vl_TZfMSUOVefk^efypcGfdcGlXQ\wwyeFgtYrsk\NX_mQQKfbbYeGYtmdZnq\Wh]^uIdbrBxf`b`h]Y[dRsieftikb\jhY\ffffukDdjZ_pfU}ScRajtevhI_IM}{Pqdb]Iq=^W^MK;YzjT{ZfiXdW^N\fjech{GjOmI]Zn_QpSWx\L\UX`CS~NcWpaUNeVn[pmkI[U?qiHNpdbW\fi\tqNe[mfun{qgU^U]C]`nqhDfceo^[aZ[K_Q[eTRkZhk^nNLXqVgq^dX_mRjddmRY]leMYdTihNQWfw[lZOdif?[lWNkcgbPUhp[\`O[XYdqjm_QzJcLVUSMNhkTgXF]MgRMmE^`FX}[V[vhkat[pCZZpeRK_EwQ?IfLU\?e]XIucr_qh=NPO_WMWSSbUH\QGeNPOMQQTjjZ[QTVYJfN_U~SibVqMnX[F]_EWTk\YX`d[R~PPo6]RwO^YNX@~dmhoYcn/QRe_sUYZA^GXRlZTWDMiT]Ne`b_}B]okjk\?NTmjRI}c^NTZ\aNORgmWnIf@M^gRkaTJNmlvbk{lc`dFeEcZSfbQKHRVQUjZTbe~j9@TH^VY?]ZVKYoNRJ@loVhVx`z`tntUPVWjeLg^TtpXSZbI[JrHobMsXjxQZWxz`Dlo@SemRD)oAfl]GaS[OS\GU^gJRYV|jHjPkGUphc[QB_`q`bcGQKTxeOyKceHTYVZdUabgaxZbCIl]wMNKnvVedx^cy`WH@Tm[^[CGVuPWpLY]]rlOcKYIkTLKhJj`iIr2EtOfa\}]bpKE]n[Z_SYv]BIHi?enZflDYP[WXuPpZo]Oj^\`znQGRnI[}8KreDh_QShdgzWa{OK]PZ_ZfDZ\Icn[bSN^WcgrYMfdIXhesV`wHd`=wKoMdP\`kVJQ`[[L_eD[dP_dhQNcYQUqLxV/R[Vf[moVCPlDMibSoRk^m;p_gWThUPNqlbMnUImo]Z;xS[eoZ6EG=jShl[0_UTp_hdEG}U^OMMOjJ{9fRE_HJbWGiYaPL^Ol^_|oVB}_rCHqlWoNEQde[Q/MZbkrO_\n_ILlS]zbyWgoSTjCCmpNk_\RSAb`b>dxwVKY|=g1d{~u`rnfrSPUUkSiT__I_E]SVxRKaSj_UwNJ[^ZVS_LpQVPQpbb^llGmSbUq[8u@HilQlhTreLITqw\^OQsWoiOSf|hiZW_[djwTPQmMG_xdGrhTHJ97@[OYnXkYap_rnXvAl=IOoXesvQZcOda^C\vX_Q[[dSQQy|]n]GXjXsSVi]vT^ljzeUSdPR_Wg\GciXReKj]UHjyQQVaRaxng`FkN[dnX``FZ^HOeTTInQGyRnb[bYae]d?UnyLF>nuDScHUGbafQmVicAYBqXP_^`^iPcWVz`vKV_frd\pYujilPnRUvxfqeWbap[MhGzecQl]TXiYda}Zgm]HuneqGbPSEDj`LPlljcSw]En]fjYlcTgUO_afZi{zh<{OQc[KN`GqUOZHyQeMPdTdjIBJ7vV;CiI_ZfjOjZcgZd`rIERLugiLdNuMOeQdcZ`Q?>xUE=o9gAniW`hfTggfqfM^_=JGhtDdW@Gcb_nax?=gGnihPecqJryDl}d@]rQfD|pSMXkc=JmwpaoRU~dDxDdkdXtqOdZMbuarIQZmv`PZ6\olGHJ{cpWncVwQzNL\^T]biKo]ITQmaAGn]r\IMsk&VZSI^nuf]MPyU=[XjUS\H@XTglc7WaPYQ\\ZTBSFluWC]LspLofrg9Q]X[S^`EL[LjVi^Eq^UXP[kO[i_zcRkT\bj}xcNCs^\na_vcigcl{tv5a`DGe[rAfGRHf_QSjlosMSccYKsWgMfiT,pFdNYWlu^klPsaX>ZPmS]cEN[=gUUNgPO]SC6=gou]nh^hjLViXVW{FbGqBjGPMDa=fOwhZPr]hi_NGyxeday[Foxc`_qTIYV\RfNXqXf`TJzNsYcbd[Wm[`lhcP|fS{Z_dTFkcPYIVsUm|KOd[UX_9jf`pWWtRaj\^|kg^PJUs]Hx^mIpUVLdz{dCqwyrlJXtR[eM~i{ZebWNYJ\ds`wOTt^\Ff^fc_WZbZSEyWycP\uOo`gkmfdh`M\KapnLabh]p[jdkJ_RHGOmktP`Q^_`iDqP]pHbplmkcfSbQsYW_bZd_gpTCS_^QSQI]m?eN_lwYa^agm^kj[j_fuOsbWClfutXaPQBGQSp^hkTO[YO[KmYWIg~T_YRj>`a\Ir{fiL_XQOjeZw]bNPMdJnXKacusTX>LR`Sa{>QLc@?YWSnTP[{kjaRbYofIqZdKhaI^|]d^IyZ^GGdXl[ieglDjH_`|lVUBNUXLj^Jbk_h_}[Rb[d_Fog`[[mYjXy^KgOkTCbEeU]\ZiiVR[R5m{CVrRpkVXU~Wu]iTX_PUci_]PM{lBHrnij`WeJ?eyeOd~XviP[WX_\XXJM|Ps[`KQTQZ^]aQajjbc`tt`P[eOSV`Ysm\jUeUP]cgC7wnfoOjQM^Z]joZyiaET}UQidAWWhZdWCWUl\bLopZZiSGaE~fS\b^vo_\kWbfdiT`HHehzFm~CmMmYziVZzcmY^tE\`_`XVNsZmimmbcsVzRGMu\UW[dX{f][jgaZxgYce[z{gZTUM~GEiPXXQ]`h^OhjJXZ[eVVq`Tc^JqsV_aqYetqSqNp]x\Udb[]TKbJ:[i\D_Z>\[obq\{XnR[m^_f}gYHpiBYbPbcigbuC{VU`yanpukVJOzdBh`rQKvcbPaVHxeRW]mSZ~gNGQc^Ylb_rw[PgDRvpKJdDT[n`e|`mSxAvvaIKTTQYghY`DrThS_YfHVa_>``Y^_Ma^Nm[WRPdJHSefO^VcaaaZjpifTP_osHJZ~W_N[[]MORyuwlT]Cb^^MGtH}PIA^YfVjzDohek^^EZz^[zlLGUVmeQdocPPWob`egkFhJheZ`kTy`hw_`\X\wieWg\fabKPiM`FIHXalIhbIeXeLoUQiY~trUZvZaklsRS7kJEn[YSynbQ^cgcVHU[JYWQYXV[oEUbnTZ_HacT`hXSKgfMYXaFgXcWPXJ_a]_m]Z^Xr[NHfCIZTTnT>?]Ok\NR_nNVb]fzMW_eiWn\ORU]Ylfd[Vr\blNfVWn`VXVTt]uyflPZMfel|W[Xq\_Pg_HjXc{;^_bQacfjDSjSVO^ff]AMOasug[THbnnc[\LRVOFOg^qgHUm;5]BFcf4aoIVd][jWObktTV\SRSUEiZ8`hpXU?`qYiw\]^krGRUW^{\^?UITae`mzJUadP5FhQFi|mi[\e9Qk_5fcVYiZsnQnT|fbJvSeWkmboGO.i\YioSfeLYRa_W]XmiJjduUkjeHTKX=0Zoieug4mR7i[_kPA?\cFpsbj`U[/Bl^f^F\iw[Rdg`9l[VOIFTG|WunHgeoK\RrBna[W`JLdPe@xbM`fjWUVhaK^k/kZgUqe`X^`F^QNI~ljVRUXWZb6exY}tUGRhGdbNYruBbfSKa]i}_rjPTW>[dbvjBKa_d]kpZn`mRnEVv`CVd\ikLWfVZhc_iThlWX\YwCmR]`k`Fe\lD]iUciKbXjVbIwge`hdN^i[}YwT\Yjj`lmoh]_TwiWM3UjHZ]VVeeFdLun`YF]SOUfQfF_a[ob[]WbJK@]6jhrW]QYwegjmSj?JTj\tEan=QZ:Roa]m]Wl^b`E[fViaYydKJJNW^Pe^VE^DamgY_Y`aZ4AZZ\gICQaYfkTa_\KP]AyXCYRDcYbLKqMmcQgsyegdquFFgicZ`dx_gWo\PWoZSYoikZaXFPabcgqXbfy\P\HD^bQ]XLr/QfJWSiimDbeYOa{FfjnM^[^[kpaNQV]YMeniXWOR]KgXdh\^zF^uR|vtu]KgY`ET7xZJd9Fd_R{oZX_fPuWFfZfV^QG\Zbll8LXRQu]sTfkuVNtZdfZkvXO[QFbL^\QmTdGSkHmlxdomSNaoa>MUU}zUu`NZeOr`[n_j`QkPBPXQm[y]}>UNU^XruY{iU`SgihmU_jidRN`]RgimLi?V\UsVVPrurJvwUbnaiilie^b\qVbceSuRpwyZzeATWSULU{IvM]R^[_>\MV^~zco\lAI^iRJ\Umd[mIr\SolvwS\jECETP=zDzXZZ^e}fhYkkUiY\=`^]fw^YZ[?r=bYbz\VbRtTXHEfp_[jQYmZoHhggQjn_l_sjKUykfUhtQAf`YJ]b`Hif\aFWbmWnO_hjoUJWYL>tgh@hnZV^Z^PXfTuudvv`mR[dh_\jhtVZaMIelShTEEG^AJ]DRUL|YXdjylMlhhgYvSTUPZ_ZXCXFCo*d\3ROUm[Kgjo`[~C_UQNEf\Y`^sTkdXKXrlRrRn8@_Qkj^Te=kGgeJb`tJjSZw>ctHb]WFel\\rZkiQRdEaPjXc^hPhkgY{dLRZf_NQE~VAwdrRU4Pkz]?\bmQ_\sB\_dO_Sp`\HcTLXVXmp~WvoW]wg^`UUOs^mT]Q[YXbZLWGg\Z^SxM`RozKndfhLFR9aSy2dGhn_}EZxnlLWQha_SLwW=lVANJwqXegFo@]iQ^ekT8wmF^iYdJOGt^9^q7^Drh^KPidFTTPcCmoJmH@RSm`WDehaH_=UMa[[dxla[Ac`FFd[LX6qZT;VdVa_QbECHjRT]RaTLicLwKGhD|Ebb|?iJVRT^}YUMbcvXOt~giXOJlb;JPZ\]yCOm[n_EeYfWgqJ|Q`lemSpdVs?yZa[E_B}_ZQEZjSKVUQR|c]^QVmVq~uHFIj[_RzoYza\^OCNZTW@RrcEOdK\K_o`arRTTfdhD(Ri^f]DNjZzh_LmmNN9@`jumgWKNXXdO`hfR@}fOLo}\{s]e_^WcQa]1`ZYCa_csShZwQh~[u8wh4T`eBd_dCxHdb_AV[^QoSk_KO=;RhQIacC^[qcQb|nXtdR^WY\sMoe\GTi\\|0XM]W5XjcDr?t`vP[D[b\hxehpd_urpZOu_[`b]6He[w]^V7ieKdfpHGHWvVW[Q]l]}UdN^W}mfMS^HWgWBa~B\GUdR`_Zhc]lldTwlvXlmZ_T]?jRcVQoHg\OxddGOYGVmcumS[aX]JnT_`XONNzf`H\bYc`H_^`=FVnddefklT\P^TQoA]tdL\J`[CJPtdtn]kjfwnqfocdO\HZFh\MMHIadS_Z^jdgNQgbYfMTWihVaMnF`KgWhNvMjXPLK`YEhUYqfaJPMf^BifWFsUrl[Fgk~mjTeX\`5z]YTHOmgMNlkvpkZofQJIGgoeE:DfKeGFVCaje]tWYYCneY\Uw\q`p_t[JVjS]E>gY^FhiN>g`SdQtdKaMc[LLsGthrepZ]aWbxDZnpZgh`LhlVO?^_ToK|j]fd\H-LUI?bek\peTQKeOe~PKZnGlsPsm]fpaLndJbpNU}bjgKS`LfS^dc{[^\g`BxWun[V}ARY`dM^jc\fP_^bu7Vld[h`h^UiZkd?q]QSO}hA^~cVgST@oa^}\H`NeglkNl]u_pNB`?RYJd@JoTximP[RU{`We`WPmIdVJdngbUBkaNN^dUO_)nmdyYQ_nh^^W^acGf^IasgY[fCdoU_QhYlNkkmOrOrSk<'bhL^DdqP[TSCtWYQmLR`Z\E[b{oZQ~PVRpIdZilsg]YWhoY~VL\]NU9uQ^PekJJ_PZLPOIaf`y_RXlCIkVN\OfcOPW{_RPDlkccWRfwqig]{T|GEcShOng}RFNse3ohMSH]aYceNSXfSO[T=rAZNZdRRDWRN^LdJbbXhmZHs?PKaekXbrLR]WjVUTZ`]NR_YiWY^_Ijin`EqnwgbXXvZZSsO`{mh_DMcWmgfbXYyQQiSlpWdJWgQVga\[P\BXSk[P_X{Zb?pLZpSgGnUQiOSjT\D=kP\cPYgpqtcIsRUSgjfUeb[ZKcRu]N[ukXhS}lMN\]|PhKhbCZcPf\EWjiYLdmhVnTgIh=jezyzbmMip=[Bdo]}gqj^buWmcXgcpxQBfe:}YWW@omswgcrV`iYecepghXge`Mgokp\ZZgpZYaa_nkTbR`UUjdqxLFn^]Z^srphURpgnKRT`OgQQmQHpgVW_NY^T[l__hYV]k]P[nfnJKWaCQNtWSSSnc_^R_xgg`h\][h]bknrkkOPE`WbPkaL_^WIdOQ[[j9`_TzW_bKcZXW[WMWZ\R\VkqgQjcWS7RQ[Z`PR@pXWkFhfFMpUo{[UtLSoWik`QJZhoac]yIqLTOAoNkFV|KUROoCdLaXNU]MUB_{ca_ZTzitaY|Xnj`Tu\^^bpxH]QUg[Q;=_H[Xd7oaPvOlkefU]SVQO\P`GGM`\VVeXVFZKZXhdu[7wirX`6]qeTjkCPZ\X^oM`vY[nMiRILYpEcYhabNT^clv~ZiZOoeSgoSDPSeW^_>fkh]TVShXobGMNZG^wZreZOldZxObOXhiSTuTOYeKALT^qPNSxqpE^OcWTxERWjV{FbpTe;\qjf\`EoWaw]WLPdC8NXXi|QIHbcfn?W>HYgZ]gklS@Vi\GkTe\pbqnlXizVdqn|O]bV`fVmZqZtW=TgwL[wg`lqOrLaYoHi[fgEcbgU`_WHCRV[dtSxcYqZz^tLYfGcjf{gkGOfVhlPYhlVccRi_WV>dVe[LdcPSQrvjgPYibS_gS[bxLIo`lESoOYgq[hXfRCUX_YdT[jqy[{cqfpc_WidhmnR\eenmcsTUwZcgi]_TV[TjZ^XOVWKJMiTmW@oyXRl_qL`E[cYw`zMJ|Th|NiURaXimToGRR`op^^NQok`bWZjcwUhjyHhG^glinsgd[ggWLPwgZj[:Jeb~mhtmjVHYfEGXqbP^ZhTa`ySZWfTdSN_N_k]VKfNH^ukm`eWq\VbbqljQxVQbtB[m`ae^TWX[bjKXWU_WJaLYYbFVE]e^^mcZjTUZv`DXfWdVcQO\HKZ\jkaNsenmXSpkcjfj^ljrksUU][`]OWK`V[Zk^edaG:S^Z\fIjlud\LZ\obMcFLj`aWTl|oVF]_act]uRIVN]mV[Wb[d{jsnl[LWka`awef`Efm\MykRegE^\izdPPYsgOwfZUwXb`oIc\O[NTuM`TSw`oqUm`MWOa`h[ff[\odvYhseY\odlkyfZmcR~MTR[LelfRGLtZTOWb[_pfS_eZ@q`a]EWXtWUdZUf`eF^{fz}aOZKYTb_yQ_[a_loglV\`g^d[Qp]bxfdkf_VpmMbdxggrRcVy[T[^lZf`lnt`oTtfMGIRd\_rhT8gd{cnodNdSAjc<]geTExdsydjdY_\kVGgmccqZMI[n[j^}OotdcPRyDY=E[i^RaXkTvdn`bhlobdab~_tnP[aWV\pa_[Tfaj]XMVXaRZPJKiqYbKXWXN=GsT\p\lUi;3`]_HRTJf`b^c]x?NpIkJekRStcO;W}daOSPVjSYWnbYL^aLMD]Ca]UfY`IrKg^apQY]Ns`]Ape?vKb^[oUn`TBWvScLjp]IN_fU_Vj@\fQL}lOe^NvUIY]_olj^55_tVL_cbbtk\p]qlssfc]j^]Qzbf[Th;lNs]HXpvwffnY[g?]\^JaDIjNxd~NeRUWTWtXrEn2asS]pXXg]MH^ce_AnTOGLLbNRPOMWUFlNbZiUGUqPZnP`idDv_IaxonSS@\hbdHO[WVP`_YSTYOVS][vpWlrtiTdVV`x|ab^IqdQLRr``Uklc`NSRbf`K*wSviIZXpSDch`enrWR?phjmsZCrs:`\e`\XgnSPL4d`cbl`_pduhbj^^rq\cV{aV~OIXjI]IyXnyQ`ZH`Q]emeuQpaO[Y^VF`dba_NcVaQHZ^cZIe]dHfvXQtUevt_mkW_m+{YOZXaM`f}[bp_XV@^izXjovpeadeEhdvMP`ZUdi_O^VehkpYdLPiMpSvS|YZqX[Q_gswtZiT[mfPXSYiLeeZ[pFUvZbH\NQ=dMgaMxPKxraRoTl_qvvd|`_bld[}^u`WQpPKLnd\ol>eonbRAWDZb`JnYF_GdD[SV|dT^l^wR\vqVXUksKfRnojihiAbgP_NZZeDZSYhihWe\uOc[Q^Nf{RjXnkV\STeiOXydsbf]ca{VNjNAySuZynTNapdiwrwSwT\nZZf^tTh}^cQT<{WWe`eRtEWRJF]navTOWKQ__ab[h]VVPL`aQ_s\if_W`oYrSPX*\[@flbbsYXilOgaUiL~XuxbTPgR^OgRXgjkh^\bMZldeOqXcSiPuQ|OPvxujRWtWch[PDkRcN{aiod]mXidyhr\`LG\ohbV|it[PyVpQatZenqj^vdiMjGOUfP\WnqsYq_`r_n|]_qkZbjUNS|RXZaZ^adSi`UO_eFmcf[SLPY}YoWHeP{n]@YtA_]U\lQzm]_^^`egl]hUAMkR\XVT[gd`ahu^aoP_?ab[i__v<\Pn\g`q[[OWb_iGh``fjT`HfU[bSRIlYqjLPeiN`KiD]GUT>Q{{f9eoN[UQnlLfOoe6G^Pcq_chcT\nacaRUn\jcbl`SiaM|_PPWPb]]]FeXUxNpdSLJgeSfhW[X;dbsYGQHOn7U]wMS_ISrqAc]cqVS]Ze`SKa]Tio@_PbKdcGATRwbpO\bRds_qZQ]HBHQ\SP^h{YNCt8QmpoU`NZX^go]YV`YZWDgUfWkjSfZxMKeedmcWlWT_FQAqYHbZ`oebxss`nNfbMViqp>mC^c^xIiR>:NpRbb]XQGSTTVI_{ih6eNT|zcB^qXZnar`TZ^_mWy[Em]ZAUqy:`HOg[mMbdtefmhXr8aamgQ|\Xvs`mOfFrPXjhKQafmog^qhj[sZg[fgfST^kZ?JB{U`XU^havjkuCgRYWCxEhc__xtbXdNYtZSe_kHYmLVhramopRd\eETPoWat\YV\H\fheWfsieWfZ_dZmbPPR[b{kTh]rT`n^OOnw`MZrfUbp][`\feRYifS_mkbILJjPK\\Vw\oRdPL[W`UZdaeitrqa[m~XhmYWyRda|KRJN<_ix;YNaXgW]K{WYQlHxa[gRhVcgT}=JcU^`jca9i9M?`\cubUeYZMv[Y@L^U\ljMbVXpcXPg^QFXYDfOXaS]sJ\dzb\Vn`WtLdXhYVlVUIUra^bg]o^QqQolhZ_dXT\qb_gbAiUAfof}X`YTCXpOeePoVSbTMbHOfrwwJyGcB`k[_plUegZJVXuMLUIfw\MKgTcodOt[jKtjZjC]iLXcqJx\fRQ`^Y]yrjn>L`KtQTM\nbnbLK^ceR$|u`xwcfQI[PvlUieGcUb[dtLk[jc]`AbaFWZ^V_imZp^bXzT_Lz\qcq|]~fhnTy]XaiFUXgdPLnrG`NTucgU[OMYd^zt`=Vs`WfUbFBQY}b\YXLngh\WgY`YW`fU\lNImq\T]WY[oD_QZbUthl^gSnjdiPjl\WbX9:PVTN}[bSk?XbhpPkoaeLS]e@SYTul9RlXik[Y@dgzgaGoz_e[tdVSBZ_r>llMXAeW7iqM\;VZvU=UcRVAufk[PQbXG9YactfNPcXORjcUIeGk_dyP`\IPQvWXMk]QSW9RaiBBIE_;E@Vg[Gg{PUoZ|bT5[VSLbakYuYjLaAvOxlhT9]Xj\lG`L`GNGn]=bWiilWh`^XaqOWYtfOq\Rq\HTiK9gwb~oOe]FKTmbcP{hOUv]MY_Z\vYqNzd`Q[NnzTPexaWD[vxioTSpgqWVfYU\CjqS5^Bd|LW|eiY[]Lj^RkfM[l_j3F[H]Yf[Zi]\Zk[6J^PWVQP=__MaEVc_RQ|QVRVc6:sdh:iGvx[wLwcQ]]eA_YS_VPEdMlR_d`_iSuee]Ra_WQ}hg?]UCZk|cgOe_c_[fYbzKTX`Y\kiYSdY^[XG{LRNX5ufRHlct[hD\tdqxrQNj]eiga^{6]YfffcG]miedS`hW\Z^w^]PmK]DhC9TzAbH_[G|X`_ddcM|ZH]VI~SX]fYED\qUWHgh_bLWjl\ai^eaWeZp[HeWDRFz_Dsj=UX`q@||__HUJR]xV^iV:cPZ>i]M^X\DT8^nVga`nU[tI8`YKI]Dxoq^WC_PPsifWakbhZ}b^Q_OZnfMMuiaZ`gbfW?XkKHfSsI[ZenPYenargWXfiHQw^SjvR7HF[QoQRT^fGcaP^WZfTJ_TtUUAQVrVY[{WiWgaWnP\cdPSwmf`NWpXO_dSboY_SOPWQ_NFUs\Sbmmeb\Os`^h\Dy9isSzZogNZ_ZUWNQN[R]PrAGk[U`T`_wiSKBNCZYalR__Gi\]WbANnVyXJa?\D_a_XOYRYXX`iRWQ\jX`L\GEEhl\`tl=sMhST]pv?j[_\HwQ_hmPfKLyRshX\bXh^ioHcKaSXJ\nSXXgcgeFLR^FN_^jUgIWN^6T\\gTouNmzg\[jP_tlZX[Y`TmPiNr_dbRjU[Qi`{[YaG]^etPrEdXNXX[MY_rHivZP\OzgOmm\o`XHGjfV[qds}np^VqgT[HrTp9Jfa^E%bQYUY_jcSEshThNK~YXhv{Z\m*z`hi\cWaqtOSjxNlpQMnbubc_wU_zbMsSJr\@OhQbblc[TiOmAnK^N[\iUIbVcUbRLewGsqSv|XON]66RXejVWkIXCcmlI_JweqNTQRh`TaaG[Q^o_JYvYCzXO\HbZPUgkOarUiIRSKXUKVgajEBJ`>Q`ZkQxTP[q[a}lTeUYeehVon8ZaiZk[ZLdjU`Sw{eb_RPuW`kGVNbfpMdLMr`mjYlYCrrveO_xSqYON]Sbngo\SXle`f]Q~g^Nc@tK?]lJw^ilSVWqVg\jXB]YAH[Qcfd{TbOKuOoH^Nk]beR|cT~dlPmVtM`ZYVmgVogSI\W`cSbBL=Y|ZMbaHl}kOfdeR7RSdaZY~]T[nWf]b_\YoS_\cM]\oav`\nJ`FxAldd^UtOzVPXfcjz]L^fRX]p]P`w]xOWCTVXdhdv@ZHbpjQ[`k_id`OYj_SeEOakNh^J`F|j_KI~z[mYcMfOHScCXeJ|E~_[[TIx;qZpUuVv\j_{gWd|x[XvmNjnieYbdlxxpGiFxoz_Wpp\SgCaSYPVWnRrZ`gT\e`rDmRgQvfZ\QplRfA^OznaW]f{bOXlr\UKUpk`{Jc[P^V{[H`cOPk]FpWdXP_[_g``O[YXcb5Vfp1EWc>VaFFhg`_[ZVNRW]Zc6WMj_=eZ\HbPe[]Ym\jwbO`Uc^;S[IQjNtdgrVoUybPVQWZWnX\UkiOcSHsL^]Tl`hUV_XnG[o>eE\PuaBuaJQfsfxer_]Bu2XqPblW^hSd]Yko[T\QSRRsRTwOOE\cWdV\h`\duOYXlwYkqVUwgdehKQL>_FXb`bGpEhdf[sQXOVrV`reuZ\z^FWZ^V^MdTXgbhp`o_a`FZiTHJojVijN?[HQ]YYfpc]qGHalZVeGd@anhrj^XNSR]WMPkKZkPgENS:jaCYXMVW]d^cEroP[ZhDXTXSM7XOkoWNSdQrnpmaZCng]V^\XwevfcClY5ZPnEnr]ebdRYrncdkOOS]Tp`WiqkH^PWtyo^edQcce?M[Inn{HYfS^B__vu`?cdX[ZQ^VQUZFEuJWwgeRfY_GKkN[g\lP^>\[Rcpf]hdbZiicSSW`MV`V:epsmQ]n;hRIkJl[mPUV`MWPXbYzg>mEYgTg}CYUkOb{NWMfUdg09cjJhZcmT}iWtYLRJn|bhd@KbrT^gtVSAkg]SeMahWvW^Tkn>qOLcXUf|i[_qr\LdgaXgcZnbfW`IRjbsHfRXpbZtOZWUG\_LMiocVwyNmZXcd^obj{^Uamj^_jgZmIFbZW[HE[sOISwt^{X~bfN]WqmeNYBUX^mKu_^YTW_YnYo[\bUgUcYdPcsxR=`muT`Q`m_V{\g^WV[v\ObTJTL[^Nm]HhV`TY]sD]\pmXNkEb[\gpdfhPcrQqk@VO_SYyoYcljb[Le]jX5kYdccHe`g[wqSOYp\dfkbW^aLPWRujGmKUjjbQWRPgWvjZEX_kdQXjIMhUa\^[cgWTtJt6OKxeLWQsP\Wg][b\Rs[vZFchcq`ZUcvxJE]I]\jeDWLJRYJX_lkghgHHhetg[hke[OhQ`aUTbl[Ygl|`EKeYsbq>RY__[K`YGWd^kgedgw}OAZb`QRlxxKvc|^X^[.TlgQ]`p_\XhK`]kheG\rXcX\OeNyYb\bnBUPBS_fTPRXkd]jhhaogbpwQhadgL<9VN[D[h{EFalciyzNF]VracK\mSHeNNSK6kJXgYg{b]PKfgTvIzWNGY\_TZR@TPWgaQPVPhAjhTXliVKg}L]V?b.WbIos[e]Fp2^GX]{GWUepOqUXK]MMeVSWhJQua[GFjz@NIV\]Ld@Ed`FKW_ci]NO]gMMHpYOZ_GI}ZWcj;ahhc@`M`CdOUgFWmYVGte_UCG^hdYMiYQ[VcU\hkGaQdL\TB[=bHamZ`bPXikBrWGxTZC^;`bBWFiVT`L\RvgT^rUM^_I@jga^HHYdN`Zi_VuKRfRcppBq]t]J}f[sIq^UA`YpU^ZNJoUlVukd[\a\O`nnhUdwwVxWSlZOeW[\BM[Y]qBQcUd_hd?m\=sz=MLpt_f[[WRBxhGYwgBg_a[xaY[TtdWVNd{LDkacufme[VbMIaR~TnX~bWLgXRrlZ\yeR`XtjV^[SeeUqNZMo_J:>?TjQXMusM^qU9Q^JoHTa@]|`osibR\aRFpSNSVoSXtPNdhgV~KdJ`mV_tg_iVeVEMWf_~QLKRJJzglW]UVEjBXKTqIhQ[shNQouOiValfP`KVa[SnaXgFpEb?R[pkuXRsTaVDs\R[b]h^ASUKhkrVUahUdKLPOWjnoV]IFk`Yq|JW_e\j`k\VMvYMaRXh>KnVycLVgQUeogf_[WituUQ_kSlJ[]TEwDlWnMKB@zbcRp7kekpbeQ\ZibZPTc3evXPc|ZzpSYUJ^urjcPfZUphgo{aM^iPOzAWNjVHQPpAWsgpCPImilnJY`XcNLW>Po>Kl[aM^lZcoUXQeY[NSDY`uR}AdWNr_Xcg[VoV8`f\clFfM`fkwoOhbjPj_vieS]giZoSGTgmbMc[|xZyL`]a]`LTVVJzhAEoPUDL]d>`GfagoPOg?rNR[8jh`iVenL`enId@OQD_IZ[MuYjRVfa;fniRWEa^jXUik_bqnQ_Q\P`Uourm]_ZRA~LaK^WlibD[f`HccZ{ei\mFaOTfcXfa=OjZgObEyTfLTM{dHgDKliRpuIZ}LSPkkR[YlZlcmtLWPnhDRsl^mpWVeZqW[HQ-HkQXVUx8XMlUh[wZcqMjfbecVdUPxEa\]co&`sici\XmnO]mIb7XladallDlXY@RlfDcyKIYTOvoh\~cfNTb`}bkOTgiU_Kno_mRhSOaO_gg`\LuWVgVZTia^olebXUYY_a]]j>Y_}gi^`{_7NdSeYmlMME\oqpz\|himyTujXWjYxHYrmz\TR|xafIdM7ts`\biUoOW|uMUvQJi{c{kUkL]HMY_Z\ILg_[dtrdHulUpTowfouetKbq_{rqTZkdbnIUsYiTxpPAfXX^cf_iiZqumhOm\[oFH[vktSpRrORYJdwh{XG[Q\sJe`Amqalwimr^fN^iewfp?LIUNQSZXWaz}m`TOZvnaR|ZXgqjsbf_b[>mPTS[^vmUX_C`i[KRPubmBWxYbkjye\edF[c^ai]S[|~YJokT|lz[]qgdgkz{GX`]nPoosn{PSWtmW_^ls\Ee]]bR>fOhkelcXzs>jNaYVdPadXabZCapeOkJ\kxdPTnhmWgXEYoKK_taQX\IWeeGZ>LjzgdGgusvfDg`XXNXwTXyhT8dQ\^uiAlT_`n^ZmTQZ]nkyO][vWygQTYtAZXg1}MM`H~bAP[{]YgyqXjB_{\oi^[oOuXrj\cxlYk[SEoIdL[Kqu[cdgTGab[]jO\Poii^VXfkilYQfg}PJzGSVBjW2nYIL\U]`_Xkl~UeLMTFgYwXRWRfdW_TUki:i}a}]THhVYhrd?RUPHTWdbh@dpSeUS^hMShzs`|Q`Jk|XasRacfPY[J>HIa}sFqTpLX{dRMfTXtpJsRcpkm]a^[]b[AkLUhLahuTaHUcR~Pnfnz^U[zcccjk`AUhrDeBlcfkUUTscIMmuWVV{XM8VFTO_ZuFaffwiSgSjN`gOe=MuTMn]SnzwceRYYaphSjIcDRvhLS|v>Rk[ZWo`eVueyC]PfTUeSUaPiQUfZYQ`^NQU[HYbOJSUHaraQXTUabZ[joMNaAgibMmQnbsk`paP]dkihgOvCH`PlbzgoCa8YK^sVfeSUkZ[udhiX^gVkudfkO~QjjpunVVVgr\V\D^]m\=mv]{]U(TUS_xV_jUZQ\SP?mWP{hbjWJd~hU[Z^qmhe[uoYodNcIodup`WgTacWfjBkOWeR8xz]sbPoSM:eqU|W9rVlouc]P`mO_IqZHL[fqwWVkiMJEPc=XdWJX_fP]d|VFNjpPdpiRNh:O`YNnPhg]`wvY@SeomJRbo\pgcRdcU\wTYi}Jm{ZGv_cgHeM@TGRe_UrZSneiverhejeX_m?YSGqyYjxUoblyozNhl^fVaVblOloRhPgdeTotZoS_]drjQeEec\bBUZ`YfK\VnVM^nlji_^\SkmVgKbATSoav_W`P{R[M_hchaaYUoZ\{jpRdWq[TfLGhj```cqorj_[YWl]YhFMRLaX=`_Yep}ixbbXWyUsZ\P^RRjWf]}zDUR]M|wV]vfX_pxu^T__ZUeXPwgaXy`uGFsi[akZ_ZLXQPZU``fjjga^sRL^[];mtka[_mYL?pD^m^x[Qzd}eYji_RUmwsrITo|vkaOv{npoi`\g{datiWW\eesO_U|aiOf\T[eeHrX{al_rB]WNt6PP\fo8XafTYTcAcZ`a`lZ^c]bUbPke]I^hcjGNOY`YimTPxHm]BckmWSfrOWXFXbpeV^MnR`\OgY\\h]QYZmrNMrhj_jZV}pUYRV]]hPOa^caM^dSJXZNYmXR~[oS]Y|wZTKXQbhrevSq[fhbm]T[oCbRpPoTWVnaxriAea`VaHWlYKon[Zlab^blTUj|}isns|XZd^kpv`iiZjCi\sLYh^rcON]_tbaaWV^bWRSF^n>^[RAsIeq\\c]`CU`UkWaaq`Sw@LcXDf;]_V`[LTu;TogUekH[VF{nbk`O\aEtO:NWv0d\Vk@N_jWgp\wmiUOIKRGaUcAZWCSYUjr4aBR[\dKtZHlOUh?^s{a^dKJVgZdAfm`RH_qdZcHrQOiOBk^^JQ1D`lVZYYNds`[oXDYhcJteNvZUKnTRHgevCLhtWkoWfWfrWbLgFjnWBNoPMMqSXwezNY^\xgUFUCg]Wbo_c^oeKi`jZkJp_ao\fT\G\Rj\ReVQ[}ijxaVdC]fiv\`m`_TNvtjXUq\CdI{Od:b`I.esbegqYgYXLMCi]mqDg_o``lnkWWc]HXSuTPYCt-ga]TDioV>gNYaV[\VKabTU[UihLZuCITaqIfS\UXpSRc8[za|Hh`[o`Y_h[Lf[SjFrNySc[O]Yj^mLLpnCTT{QVdQL]Ot\o]CEJfOJ^`Gm\RbhSjS[`ZilXfM^W_M\Oj[gxSRfQo@Y`MSnq]mO5`[vVChTvI]jaWoI4hX8Qaylzb}pq]aVfJZUM[GExg]aZX\]WfihDPcmRiYugmZP^TV>_L^MqTnRpYka}WPn@d`WaVV;_bbmwsEW[;<.YtC`R6p\LWaZLHXbLfv\iXZQhg{RWtUxTDaYgJU}TM_Rhjg_nrW`zbd:NmWpdec^klXZTbTYU]ell]YfPIX_~\{j]bl\qXRN\AWngAU_pD\|cXa8w]LTRsgA]aGTqGRfPnmnScsjTX\nfyaFofmUVPnRUdfP]HgURgEtLQtxhZmaHS@bVoR>uaYj|RjiOeSBPnhiRSYkQcimMl`hvb^obZUbi[Qss_aVepzmb{geliQ_c[Lc^GemsZbd`poldg``big:O||Gc_d`?bWKZg[Oq\ljgjrTwQxSgnZVRRSq_NeZUgFn\nWRMSWzQ`IdtMXSo}Sc`[cHWqYSjuj^U9_Muhc\`sH~SWRpRlRdp}|TMqXu9QRi^dJohbHIqUweYj}Pq[oakegNd[^zgWsch]Xo?\yXX[SZ^ilZVvePgfd]sX\_Jl_hmk[h_L\s[S`dUrLzhK^KW^lm`GSTbflsb=ornv|qWnm]WnTd_]Y`OoRi[kVWjX[NdbZ[QSoWppDnPQ{HcXlnIobhO@b1eSxyHr5[ILpQfYqZ`S{V_E{sZmWRgK`JaUhIW[ZPmxXeYvo\gAfZ^WyJ=LL[aUmZkOtUcXdnMtEDWSPWgOcpAfex]Vl^k^^sWbbR_oT[lt~RdkOtoB\[iUZ=tRMbYE\SrUzVnucWDpwU^{gabewhpQwY]^UTPoQKAUtW^`SzcTqcR[MPT_`S[lMjdIUSFOP_rOQfd`ZHwOTtgc}gy``@]oiiIFUReU[Q\k\PK]kOKag[emQ`cRUPMVj\H[Qpr`x:Wfarhn`RW_bmF>`T_j\um_]jblfWoWV_\gO`YTaccoTV_bXXRX6lUMVo[fS]cgY{X@SPZc\uR]peW^hVFGS[j]vFUuoQDWgFmxmVt]kZdQUUWkR|fuQIHvuY^`^HcpXo^vKXd_QrSrj]lfbbV^bYvmq]hoXR_~VnZa{oRWjX\NH8YbkGbZX_L[OQHYf8fE[Bc`esNG[a^a.kWbVTigjqYPOklhGbWqKchmPeshZL@JW[Vn\Ri\cgXpqr_a]hGRob]leLx`bWzNocRzshjW_YfPVZjpR@la_`qSd[Ycb^jakl}ZPujYlMZ_TSUcruhlxaaWp~xXNRi^ac^owKccOX|NmgSDMN`T^r~yU[`9h]eM\AQw]Tcc[qhgnwwlCSIn]LTurlL_zy`_RliYbvQSvKgP_T[LP]rZljPLnVYYYfaii`H]b@lT}}7IQcYc3Hh[RnPktI>OQiDatmP\ZelCU5\RX_MSD^]hxVzqj}]OV`LvaPjniqy`f}rnyvacJcOLlp2RotiuZhSnA`a\ZilXMWKZbtq{eX{mU\bi[d_^BYmmRa^ddYaqT|Vt\tVKLbEe_nYWHnaUriQ]XOGw,PmXGLjcvudgNePUSfgbmj_|_^gVar`TchZzemYpgJ_lYpj_bb?VKApVlXPucSt^^SKsZYbSy}Zwc^HZ`bdSXj=U>^dmdWiqYLNOeogcPEQUXjkOUeqwm}i`R_p_nxGjHXhPwmL^dSYKWVUEQYYhNj}ejGYMNf7W]aX`NholdyoklkWScdbVZSuHmXYiUnUPaFdNd|WiT]LiulJtX\ir]^u\bSQb]]MyS|lZMvhDDr[lc|GpMnSkawjytaJU]HWdKfTLW_X]aIr=YZcgfzUbnq^QJsSM_dx`baIlzweiUS^K\gDrc;fdR_U>A`oY]Lma^bdh_nUing}`UclTK^Z]]_^ZdaluCK\l_^sYhUFx\UZko\tjHab}pN\]UiWuK`uRRbzheeywHWumHPN{soaVpHgfaMYjOIa_ie\vR\ls_]qkUVc?tJkneKy]SWqbSTlr`sk\|IGVLhmIqTZYW\OdnDwkiTXtR_cTtmp\RlGoLa^Zl\PPpbSafgSt^ncRJNkSXaXSnHSVfQdkjQ]H{lbeO_[jK\`[UIdLWNfVcB\GP_^ipxMfX\nO`[KSdjd`lVqZe`fFpihclORSRVySt]`a]cjdSqJ^tB\j^NmkpSumXflagpWWjNv_Vx^]^c|UaeXg\VmXv`afukMn^fISnUazki[sjSdTYtfTSMbJFaetHjll\JbDew]mZGYgt[_oa`a_YO\`xHi^P}F}pZdj?LgbwplBjHbNAKJ{a^Y[afUyNvKffdG[sTTlgmmaqVXUF~kdS_lLgVSdkV;T`iKYb]xyW][Y[y~uQdfSSqaibvOnL]ho]Eb\QnfZYdEXQje;bO}ogUWpjkEaQqTMZYWKSoWX@lhUJhekKWkTlie\atJebfCbn``aUPYDOb\au^d^iwb?oaJ\mN{buh\`\bucWMwDdJEHS|\dEeVpkl9]TTdHwHdegn]\[_HV@g}_ctUfU^hRY\dW_SKRQcUdh@ZPScxaC_[oAPbj]Phy`]n[]J|^PgNrYJ_DWf9cGCSihKtTNnYsdYTW\zZNPR[keSm{oiiWQ]aBQe]Ci`OcvLc]is`WWlCnNlGxR\jptJGYgOOzaof[[\[GVZan`UD_TK`i[pN^caMYWS[dP`=WiMV]jnndXbM^eTYbS:NlgppaQSTW_O\VfNcfUN_HRfiEVVtaymbcNc_aEYVoq]K[aZch|tCb}}dOktUetQZtMne}bCPtnfOW_N_Kbohh]T]ZTESWZk^fiJq\ab{MY0`[`{MZ_\k]BLSKiYmU^Y`idBpjmNdZzo~eJxX`Q^=NXhULtHjp]rTh\eI|eLKTWYGajcWqXWaZWQufVrkzR_lSRlVX_kslRnvdWXfI[go[_[bPv\Pb8Y|ZRb>u`OfY]aCX}_b_Oa<_P|3VgD[N\e`ghMZ?_R^XdhVSl]>9gbNjHuWckberSf`wPq]ybTaV`UipPJjX4Gj]r^peZvedaVpHYmOxVaKKXRfKKy9vY[gVtcG>Yv~q]YjaybSUT^gknPSQoKcRbDKOTOIfZbMPkaW]Vg}gZWWVnd_yZf\;RfYYWGABXok=MZS^TDRH|YR`8YlvqMNiOan_W|VbhnLq\XRnx\VORnaMhlh`reZ]WoVZm]iTKYWc_YQIP_al^PP]Y`YRU]]gbf[ODNyMfNd\cmPxo[cUqfDXNafQ[J_|ja=Muenhx[kbIY~[_Lv]`hHjfgRPFc^ODfwPVfo^keJPkrhNNqpw^x]J\g_eRZYjLvZPXTLxdjhbP]f}TmndUNmfXrUeFUuLg^R@rPw{_dn]]Kj^hNfjYelR~\eiczcwTcs>c|ILV\j]`LOnt]SbE_Grrdks|moiwnGhXw\hg^VV_QQR}XO`PSXjboVCZNWfo\k7EnQVbZPZOpPVWIfOKhkcX~`HJV^odTSO[[ZLrt>lWOlBFfm^k[aKYRfnThUd_kmjkrenPfgLgVMQ^cUIhcDWno`JFcgOHmhzyuehAhNgPMUf^6Jp^Rqr\ghe^ehgubx\NOxUFHUfnXXPrWclN]\_kRy^WRPKDhP`gTmWdVXNpJE^WaUUt^]MQOZRi.qbTzam7xdUs[H`fgfgdMkmhXml]tkngbZ\[DZidShdfny]PZNcHZH_pamNWR=BTSdxYQVyXMXbhW@x[z{c^bdcQLbY6wvmT{XvUISnPNrE`i;PSd=|c]kMTLnxZ[Xk\g\gPCV_VCiVZblMTsQtnPbnQo\Z}IXVertgj[hUxqcg}U`rOv\mV]cjjodrR`uIXRlJgYk^dNtN\V<\i[NZcrl]aUZeXrKsVZlT{Rm[v\^i]X]BK{\]^VNlXnV}ockXaZYfg`tA^KUoWiThDH`^DZlqEeNeYjaFJ]Geg?`MnoWniS\dgdVNVi^]ZSYM]ElZXXJOunTcrHXUccm[vccMZw;YphSbttaxb`cDNgmk^a_uWKLGhXV`PTqJxoOV[_jY`]Jka4a[UQUFH]Uuua`[K~uX^]Mn`peNvm^gx_bG\]ag^x_k]aKxdaZaU@Fhc_^\]WRGbjbGJbWHg]\oj=\XByK`Ntp@dcVOafzWaX~bivHUy_\Md>YohGh`dd=nj?bZVif=XVGoaijUKWgDgo{zRKaIPWbSLdTbzCP|IAlQRXO[R\?K`LPYc^OjcsSVcgZl9bVcnYhxqUrh|_[Q|XXlbRgq}Y_4ceYR}rKMIN?TL`fgheTaM^XM]RhMn:a_4_XpOPHY:Xidk]MOHr`\Jle\SsYbOOi^s]nbmedhas[HoV\^_zOtVRSheyGXS`SOP;g[bPeswJi=FO^?U[Y]pC}a^jiWaYW[PQi^Py]VU7`r^o_r\`T`ZpYeVfU?mekr^QkijYVUR``hhX^UvonJa^La`EeVIfMPtYQh_NZcoT^SVmF_x_YccZg\ZW^z`V[a{rjSReDWn1gNRfSj^ZZ\vZS_fp_O`thljQc]mki`A^lOkYKZsTbj`T`fWSUX[Eh_bVYQ\[\ictQdjcWxlsTofTX_IXinJ^c]tdsOj@_]bijObSrS`f_w]hh[u[VdiXfWWP`\qdZetsV[a``YJ[M]zgkjH_y'gfM^W`tEZA`iPPbuabucsm\m_NY]fpQWlfJ^{gkRV]Z\bchqYRafYIsRyN[sbcITY^ZRZ^\uUPdq[b}S]u]HHXyhfJVeOmk^C_fa^c\LAatphuw^WB_QRcl_U^YQJWQXU]NSjET`DICh\au`GaGWLjnkLUHfwkXdZVX}YEYQb@oeT[E|h}q^dx\cjJ;]gS2rC_VY|FYWN_UMAZO^VHcpaXfEq\w:vVGsDcU[fhaLtVkiTdq_`[_{fr_Xg@VTdbLwWgk`URlKjaLyiY_NDT{UTO^Ul5UZ[^ZY^blFVZzVDZYUCqk_ePeX^NMJHsdJNRSXWdWTUWsUBqbNi]=`e|\a`[`=?^_Yl\aZh8n|YCWJ_Yk][YQbFVMYBOIPZVlhai^FU[`]lWMNVDKaITW<`dGQKSv`OL|S|~nSjgSfo;D{bSP[`ae[MQjs]Ph`kfIL]hg`aU5gW]hUUuf_YeWi^D\]Hh\~aNTelDR^iUaQ[vbk^SKngdU^ClchcJ;TdUc;cho\^YNBJcWxT^gTgeZmNvUmk\KiS_vNWoMvrYGdz]XQ_ipS\Qb]F]kACLKhd][me*ukWbg\]rc_O]]cW_^w=lU[pgrfTeevY{swhbg{SisXih^l|^iZ__lTiXGYHb\W?fyV`hbhnZklia\r]`z`EPLYE]rVSJarXSf]kKSGSoV_VovdiKgg^ebIwm]Ok\YKyyeYaJoOnlZS_mSyepb]XWW[/ZQqgg~`Fofy[i~UgsHbQq\mOwMq|Kqki_dnRtZIuaYavj>YdX`W.Xik_^hlQegmhX[gOY`[qhqQI_GwLym[[Efjd@Q\orYlO|Y\jgYT[{ol[UqchJd}`^\LeGpdNHJpOf^cfQMcgidnkeZd\aueZtasjgYtiI[xqt^ojufxDgCUYXne[dSZ\dUGAp]\rONTsh_Uq[atgUfbsh\V%uTgqoreZuhuPWVeplE\VSjViqdn[esyJdZRIfMrB^_QNoz`gMQpWec^qSZH\{z]~ijP@fNFeg^jzdHIMcR]rNWJIv[QhbYm]Gs}~r|zCt]NVOeOZMSjWKqGhdf_`ERXhiMm}qbk]Vg^\hvaQh^^puPMehTpoEdJdfU[P;eOSDb~UaC_yG^RK`vM`=JmSCmxmWNYg{GQSIrBja]WMsXQeKhfiTKhHEYy`eV]dPIQKkdS[XaVs\^OMYZ}mU=cIjNM`SygUR_[j|rbwZaELtegBFR\cpw<^bOSMheh^GydolIjJhB[Qf]hni\[dKDUbebIYY_TQaa_dg[gnJgRsX{>Z~eG\_hSdcVlow]_[=q>kTbX^to\jgPEaUXcZ`uq^>jaKNbz_[OxzFPPH\eOPNHJmpnOeEcDFZZ[ctHeWgWUvnedRfdVJQQ{ujSr_GHD]gzV`PRUqW^]PbJgVkS^[ZNnl_HedxYN]qC>WUsae`HpSKoTZUYd^aujZ^>UV_hTXZN8PffwqNBI?dss^N`D_QSh@R^bOJ`o>V\aan__QrYJMMNWgiT=GWoQupUpweNGfWXkD\b]}sMJNej_OnhfqpY~JtRgHiaeSGtx[e[x`eYOuW^R]_PUPsQKX@\M`NW_Qfql[_T`M`^av5YrLKTnUb\lO|vDpodPw\bK[ZdR~lb_Sd_Nhk[iTO[OljoPeW\~}[nZhdrXuedUocUSTWDfLe\~ZhT[oTPdWs|EJgT\iZPbnff\k`o\nf\ZfUkdtDbFsWTZ\TN`c.mPV|mUTRzi_]U\@FubQJPjQJn?kpscegUE|[Z]xkQFTFZzPckRTUZe_Fc;`a=lkOUCcobDeJb`cL\lPXHXM^U@[SS_rNzeWWoVPQhjQkAlsV<7PCL^AP[\]MShiF^JXT}Lt@cNK_^EXex^V`^cRbEC{JnqF;LdwkD[d[ZhXPNMJZPhaHM^e[OXXhC]U_E\vLqhS>R{Pf]dP_YaKiaHZqd[`UEq]o\9SUo[MTWfYATo_Y]duyvNfsgIgcdbksllTLbxWWj_^LR^sXtTsbVr\MYXpQJSL_k_;RQC=VeG``g95injOBRZd_M_F^W]mGIKuS^Rc]^M_U]_bZsjenQ[LgjQOoTVIRTr[G;MT[_tZfjjYXYpwM\[fO5a[cb[@m`gITY^]hc`l|gXz]xEMDRPlXnelZu@bh\iakl]RZ^LPWfl[b`[OVrpSi]^j>hbqK\jcb@KUe]mKXb`]I[QiPb[hVOIRUQZTMhlcL][gFhNRP\h[gdTlH^gZe_VT_h]9cIYYsSoclnVCVf]qnKaP`\VbPpHftOP\iIJ__lYiysgWp[W_UmZjn^^iSknN[Jl`XNlzR[`s]~elcjfpNzUV_C@SeF`XPfxiY\hyUXL\Bl^w]XwNRWlYvN{\`hQge`ifSHXS\fcfX}ehPkgo^O`9\hJwhnzuffaaQTc[Xd^[WdmExfnqS|]biatUqcdgbclRMNwXa\hKcpW`ctsLjWKDzzXrvYWOZhwHoglFQuVKZ[=]{^yNPazg}HWELzJckdfNGMcmXL[HZN\hUYTNWLW`ashhFkqdLMoX]iVSuc}YQ|\_EzqrNnXVUElcO[akLXjugtYbgcKmXbSUVsosb`uyXtYcRlQMnwTxZ]UqXjcUHvUdKgVNjYoag;hO4I\QI\roXGOgn{IcqfdQ|OdsJc`qwO|xzckeR_JdTRW]aU[amozO:]ca\\W]IAqrTqZO[Av<^cUG_YQbcwzbenPVhzW7eWOQgtchRbZdMp~_\EdVCZMxTeKiXV_fxkTvqLqQZ}Q|zZgJk[rQTLNhmmYvgYySYgXZaY~G<[XW^NOZMTpVRh=B`a[W`JY_m\RNq[RvdX`_pKmd=WhY`hOff`[obMUpXxZhZS>s[W\WVXk^`ho`hq]YoVI\YakZEwcNxKUnlVi`:YrVRkzfXa[cY`UYepUlPbnJYZY]`T@[N\dgTHfNGOQ\XegiAeU^sakffjTSlOddeKP|_Y[`UqKQ|sXMQ\aQav^ZmMWeTT@l\ucZ>PSblugfTLkiawkG^oUuBsFSkTka]eSbatZfZOtY^SP]pO]fQDiaK]\Y[YrBxkkljdymUM{gZLiG^wdTViLIl[hIfikkGcnN^cTQb[NklmZE~^^s>`W~Yhd^vbNkbhNi^z[jiXydGd^iW_ypbh8W[S[g[muVfalT]\UTKWioVYWb`hNpnP_X]JYZk\izr]fDDWhSljQMZ\pUgJahbBQl[tjPYiRmeLWaoqEZXQeWbf^`xbvKN]`N\TjSUrdO[DWLaP^PRKZcYW7gNMS`PaaxaZaXF_eZkM_WgbUk`JTLJjSSxtGnWYZY`dkkXYXeWuddkjk@k;Kx`s]W^\urlVjMLmST`aaiwihPXjj\lT`aMg[bFQa>~]jUgV`g]]_hS[ZGYZ^e[lea`Tg^cVWU8NjUfuRX]m]}jsimY{k_[[~sVQ>CkrKY]^Yw[MkfY^qpbuU^\_WHE]`_gh[qpY]QsWwctsYcRn\bhHdgRnUPKMnbh[kc]Ig_lM`aZnr|^aLUtZhU\iRt_Og\DjaLr`Q@N\oo|hhc__fK_Nikmo`eorcdQxJyddXaVfdA]vcMp\Fd`^SfYaYri_^ir`9W[fa{{j^kY`e[otnIQbMueqd\sJaYKPfXbqZ{XZ{`__kToQiWsVBUNKipIQ?S2cKYfNT`J\vHPman^=uGA`URScL^D~ttuV]a^ZWhP_cfnVTJICEWr]JS=bjLcEAjo_OeeHVYS_CKaTpXC`RM_LtbsNZPF[lnq|YBN|djavWcdGpmOFbOwQ]NcTOdlZBYQyXXddcu^iw^WMbPFRGe`dSPNdC@TYW`[yjM`LNUg7U?TjaYgFeEN^XE]kYQcvbtu^xGEWZQphkYnL][oqifObdgvoqUXWfYtTAFcqLN>\i^``GljLLOp\cxecQwTDffqI[cRal]hliJJ`xIauk_zZLHTgUtOsQF`hJeYPBZH4r\xUrjeqs6PK`QiOXg\^^Y~VQbf;yS@>bWTpWPBEMQOsOtfoZnWlO^p]YbePWPY=smFe_jYn>`OuMXkpl_Yl]DM?LcZNx\w\PhiUDYjemb[WokP^jT@DgWfMiTHOdOgBauPmZdfpydOhMSJqATolYTLTRkf^uzVi\[xRkZVKKl}f[_Zt_H\BVKtXS\_pa|WmEd`mIKYet\JaFWa]d\bz{WA}dnZ[l_YCXSvYcETwRaHNQ_L[VNhOWZRh}y[qJeufQ_`Dm[Ve`Vg^Q]_`T}dIp_JH\SSHJPTSaHT_Z>_aZlRi5xEng`g^]dr`\fPlR]KelFbiqfU\p=K\ipC~LSieJdmVSlHUJPvkO\Nc_`mBw~`'horpXMhfa@@I]ItZ\QjRSXcKJ~d}_kuh[\qe]sPbbdb|YX^eRO{yBYexVWoWcpHSLRSn{Xkqaj]N>kcbSklSbM`nk^LmdXUvNfeKd?bW;Onnn:F^QbfuObi]MTxBaMk}YQM_khX<_BnmLW~`liWmZopaKOU\{fhx`gQfvRP8sjtR3?^PWMY\PrTG@]J_hnKBYTP[TuZRc@ztV[j_w|9^[ghelU>uC[Ve\MlVDzArHPRuJNglj`LpOUO\pL\`xmOQGbYbWhw[ECT^eUjc`RKLmYf^`\c[a8rqabR^DPohO`W\hcLNsyo]NXY?YUQQk\D[g\dfaeDqZad4UXbQRXfXg}h_IsDv{XN>SySY\dfOkcQa_hTTlQhbbNolIrCQZJyPYhx6BVQZP>ligfAbj`oTdYsD~dfOecJW"aOTOZjcG^_S\SV_NGbLkjqOpfpgpej_hIiRT_`X^Sm_\]YfiD\MKeAqPoTodfnVU[{C_ofkNUMapIHurxnsgkWRWOZeGP~aZHAXnPXSPZlb^`QST3qLXNmSI@rq_Ms[jTbQY[chLXatxJ{T\iteQLSsM\RnlX^NeV}dToeTaN[bjjkVDPeXWP[wmS]T[Zj9jJcgTRr[`lTwSjm[Oo]q]caJpON\ri;_~QgQhT^u[dYOh_Z^mRpVc_V_YWfyG]gaMZZRV`WaNL)pQn}H:djnelqk5[fHW|RDNUp\w\QprS\Z`f9hDM}rhj8ibXXQ\jil]KiUc}qG[lWmwQPQ`UkJJNaP`Q]\jAYBs`_Ckbahj?x[N`\hIa=Z]XndTlLFT]ngnj7Xg^kNP[`]c_\x`EfaeZh^ZXXv]OH~RpdvJkPURMwcO?MdfJ@dW>v]Qe{gNVga`\WUYH\NSe~HDKQ_TnIqir_js\naWKl]XR}XSGajnf{n>UV7[ifGJlX~CsuMKUHuSrAOpUs?_YsMF`RPgqpK\kZcuJd]kZhVHJuwGeOHeI]prWzwYcNyKw\cPaC^lOZdUpp_TqVErKWvH`UklXXuyZZxXmbnfTnYN^{QV\y`hQBsTipbWQNcEX^UqfWaVhaFOeeL{`SAjahLUeO]OVWNd|xhjeHwAdf8Yl\soKlEYmqJpIeycxa`q_UZrN`Mq}w`[_Wk]O{{QPeeVjh`9fn}{Q[RBfMcN`eS{IWr_MUS^pur@bkWTqi`5YFRibRIYTLJZ|7e{oH9S[kzZ_rX3cWU;nhLY^qyLU[gbwNgKcnJCq@Xk^HhnWi=>ynb]snZ]^md]r^qbVGaY;TN^aNZBrd9^_da`ui\hUipcbo{uOPfTZt?X@}z}gZOV;x`gnf]UfV]xjQSy"ORetTZULkZSe]NMBZXO`Y[]itDWWUVokXeX7UXlyq:ulhcXa_`lXXYJM1][dul^_maVjn`aXbZIT}MSZVg6ux]wdXR`N~`q;f^Va@`_WmMGI_{y_t~SxVHiqsLWVVhSte|BkviS]SQVOai[R[ZRDqJ]o^q]j`\}W\[QOgbWU^`bQWdrRh}rdmyQolS^ljPXyg_RCD`Sswx^Daiz]Vu_xhWV|_4\oecVqQO\`VrvMoVKc|?TbuLe\k[TVzTY\f^Jei}]RYQPHFB_dSW^uwevtfOPnaPS[Mf9\o[QbWVLGOl|j\NgNcjW]oZxdfcb>Mi[twkM\jisn_cpm`X`^leJ\|ElKWLWc~d9W[^ZOZe]wtVzkfYTPrLbDmOfS_basfkdxVsSzRah[opDggSijTnTVhtrMvhKcrmY_WXZR_wiTjina|WVAeSXcmSV^lZLUZrmt[KgUJcMKOeQhRc_kMoWoOwfX[8VqQOnzqgicQ^m^YXzKWM`POMi^acR`fZVs^sTM[^vRwD\l[S\\szvvQo{UJ[[Snvi}h]b[pZWdM^}8]RZObKrQ[>if[mLAjnwlF4fmjoe_^mE{Yk]tuHgla`TrlkZQf^]qlT\~bhWTdYBBh\p`ZnSwW\d`Nft;W{nFReg`xof@nW]T`abbVifeHnINYfLXX\SncvOFaa[eqSGZilzgddapLb[\j[la\`QA`VQwJaSOrPlvS^cONgLXe\lynL~]YlNHlR}VB]ukmiZjS\^`UjcR~jidtlPM^aShJFstOaLdTbVh]no7^mo_rwuQ^e`ZGhdq[\ejPWTEcnHxV\rogVY`XhVwihBfUZpWgORKj`PkV5[~catO`hYkU^]TbmWm\WISF\`kX_X\]\FoflX]bcjGVBsRKcQzYg`bRXLNLld^GTY^g`sxKjjIhubmU_EI>cdhgI[YomnWh[g_mrEOfkT_h]F_VKsA\_}f6dSXQWafhuy|T`ol<~qpW^IX]nOOeUVplAWQ\uJZe]HSL_iY^R_HV]lg][i[l]Ub]_]|YlS[_kTc}`M\mZfq:XaI`|U`i[=eB]t_hWrJtWzmP8uUna[fQV`hXLfoeS\OW_uHDlfPHTTIkaq[UsRIwmXNV^LLHhU]wCpFd^[Dc_OKhdEUbwtaDYUgx[bkDP]L`xVMJ:bgGUAD9|R]\lgmZWp}thuELKZ_YoX[Wed\]WLLpaFgbkt[Gm]IdkivkixkDhc:vUuDuSKi[R_NY_feWs8;c`sQpd]jmNrvaoHbg_YaNTZ_Vo^pMNouDTLG7jmI\U]OdpbYVlArYp<}UTnXOx}Ucp`?Z~eQjVFZsl^JlqjnMqg`WjZU^wRKg^g\O`dTV]TfG_dgQiFpbaOivofal`Xp^VnU]^yeNSbsSvpXdXY[c\gYPdoGYa_aTnPKXkfmMYUTabMK@auTThR^iH`TGq]Pk^\}\}|[UeagMQgPM~}Y^_v]SfmAgXMUHVWa`oEebgH\?MQtcat`ahTmP[Kotc[oa]4XY_sZQJEeUg>QnR^zOJljQcT^xaoeXPw^k^ajaW^GULRS]fm\J]\kKYQ]UM_iZxcj}t]pmZTb\<_SYd[I{gceOX;gXUhZNVied{[QipRfy]VltecmlN^J@fOURcmsgy~YTVUOpTRCLQ[k`cP`c^VBKXkgt[Od|pakJfQmbkYLApa^nVa[S\^[bN\Qo}X}ScWRJWSfQ\sr`UWdZf]mZoWgMFv|XGYfg`_YJiTqO[{Z{iLnu\MpobOcMQnLyX`UPiGcfveE^Mr[][WTwRe\Zxahw\gTeZH`\JFeVdmVJLYmZpT[f[xgnPj\NpaigOvy]sejooZh^i_ueH`EPceTB`f[Qgd[ndnO^ZrBcXSWbDqQdYY`kQosJ`isxyXee]YUYU_VkQjMSN^tPfEPb_kXT`XRcclQtKfHCOQZaljrZcjlLVwWYeo\USavcftt\WWfXRbPttlMSb7XlJgosMJkrMVjQp`7Z[Y?VptWoaZVg]nxf^chbnL_``lctW[hXDY^tRtReqJSybTfQYOvS]zWB`_fh|_G~YUOi{XvPKdbphX`VrbQW]cbmkfyXiiKP_htXixwzn_Yk^qfGV{ktvemSYKcIhxGh[XeQVeg\rrXlg|=EN__LMhmehZUPH]azk~sjnndI]k^p^vmLhQndrlJWTan\;aTfZrx~ig`fTbYyTbn{[Un]__[e`\f]dph^bc\Y`bkp\RndTwpz^Zdl`sm|hfucj|Tqcf`Og^WppdN^|Py^WtCR\TVelngmcQYgRT[[|dUqem~ex_`p[qQs_m|_`]kUV_hokTrmcNXm_bif_YXQi[\VkRXb\cVcgjPWef]_dYtZ]ojoMVXZsZaeYrZPWvu[RqnqJn{`jgIrTW[oj[|xZubmQo__T`ixWrEM\\T_g`pQTdXbhf]L^_M]f]tf`Uh]YoWblp^tuifYzjrp^pZx_jbUa^\UocjooJoXecYoMjabUiaTtX}OHnhrru~jsUifUy~`qSokbrMrZ|otf]v_[YucypXiMku_[[aNh_YhaR[MYPc_ppcMOdVQYgJZQJaDcjYcQ_hgNblvW=Yj\Qiinq][PNm^]]kYA1thaoVKXkoR<\^`ggoBHVja]qRjxfgbFGbNkWxg\`PGm`?RB{P]fwmZK{b^x\[i_oW2yYgHre~gu|~AVWIrhRV`Fw[U`h{U`ak\lqWdTYB@J8taS>xijV_JJW`TXT]ZSW_V_Rf]lZT[hnwkvUgKQOPhoukSY{[[YVyNS[Kpfa_hSo^z_LRKXXLTbTbVf_[[]{yMWm]dkmTh;sgrVLfchoO^w[SeSnLSAfNoXLNcS2MiwU\XMDbSjJU`TsVQ`>ZlJXh[[|PTklVWJS>eQ`qB=ndH=fWQJb\VoQTjxVgVhPbbsajUm}poViRdjO^trmgU[KNH[apJX^{]em^PeicC\lzmgZLsUYLYFa{[jo^Pxfc\]boWU[Y]fitccWsBYnVPwl[NtqYS`aTYKgQnhiuVIVOl`IwhVVXjdeXO`]bYbS`n3Za`bsiPZheYb|kp^g^{]DjrVpBBahiNT[dKYUXaeEju7M>qkH[eWdhHRNe^jfZoO_ekJeOR[gTmFpo_OfyXPJVXqZwjleFQmYP\Sp\fUUhbVW\P]eJiLYYJSY^s[_oODABnr[cjIBWbeSShVp[w`YkNUP`oj\Xff^UYwDVegNl`Eq_cE<_O@?]l\m^zaan`Fm]L_f[n[}uESFM^bWbVjXXPhbe[Ba~^bfPXfiJ^G_dg[n\hWZpYLf[D`WhYX[qQiJ\WOudYKE[jcYiplH@W[RP_`U`JTPMs`YGd[HBRakYFVSf_@>^FZG|Pd[`smu}d|^QbUVbSMYplreLf^YRZEYWOU]^^|cegRVMqQfJ]fp^nRE`rwQgsX[b^YdfSY`Nc[Rg\SX[jUV]tpZI]pwO[Ug[TdbrkUx^GRf`]G`Y[e_bjWi\UbhZZWO_cjm^cOJV`ieSjVpJjVGWpYgeqjs`_W\Ph`xEeh]AVQZY]fW]WR`fliqtiS^d=bMp^c[V`VjcVwDpfosy[[bkUDb[eYosegYGYgcgEbTGhxDPmk|HqceZaPLU`u~n^h{oqpkgYgoPgVelHfdicdDaST[uTa8U]Ag^mT^{mLeWNumxO[gntYWeIQewTE`:d\mo[epdqatn]dl^Htb?TS^Ta^gkUOH@yXYWXvJXaJf`P^iTY_rE`]OsgXsuRZOTf:UVnSO\lmcU=VS^\Bi|zEMmj]f_QZ2lngPXNumcd^\zIJSZGIewQpbcUieXBWzp~_hNZax_@[7sIwPkf\nwfcJoeUv~gjcle]EMz`yhSa~hOhp`oplMowVG[]^P\`^rItscf]M4dMXY\DMLfMZpx^fuZaacvXl^|chuzWgWbYffFcJg[URFVF\U}WQbY\XtzS[iGWmWOa]RoDLUjGgOdRcrVf]WNryQ_FMgT7h]inl`\BpQj_XCIWe\yuXa`^fdf@gblN^dub|cWDv\a^^JRIfMvx[L`e[mLlPrfw}ULcTeX_!Md`Cie_b=FzYwHPsLL0apgn\mLYja[ZkXg`VzXihIh\M]Z^dkDbbQnXa1gRmXGEI4Ob;^eiVq`h|X\faXO^Zi[golrIEnf`C\]P}|SNEKMcY`WaWM\HU}Jr[x]jS[t\}fJXOcN[][s_]q\k[NUchT[woZSv=bioXqii_RZwS`NVCaOXoHqWGYjkoq[^\_VUTOhH^aSFRaO`hmU]T>UQuahpUc\jjRgg\g0W^Xd^ybGRPHYircvPsVc\]LSkT\L^\>dUGksajOmVhMGhu^p\VWppag}Xvd=[TTcKE>[OR|xg`hqzjYMcUaGnXnV]nf_IuM`Yqa`x{]WpiZSydL]{urOR^?dxLLXN{[`TnGR^gOgkU_cwchdwZdYcocT`^eW]]HkWXupb^Lgq?[utZbm_\hGy^cXIYikGqZEpU^wPN9TkJwebJ`iToTh\ZX`P=[ADFJGgrQZfObY`R`cRTPvDZ_VRiTQ>d`ZBsendk@kh`S{XkhmQZRIaP[nV\yd`LdHrp[TiX[ahq[anTRPlYhPhWnSp^t`W[d9pcNtG>gkGz\PYA`fT^pFc\TsonHtkqidUyfZfNc}iqVc_q~VllcekVL{`ai^cZnGUsedtT^bv_aYM}G_\whcR`ZOGc\ViabseWb]PUIRAW[^NkZO`M]e|erACAtdFG^NemTvTfb_JtZjrnT[~YJ@a^ep\k?^NfRsMKduD\Wn=KJii^QSr}^uomrpLhYSR`Sm]bNfMnG_T{PiGYO[_iYUGEn_SGPkaCi[IdyTZx`ZmmnudN^LL_\awZkLerg^iTcdp^Y_C^@h^S_C8ebKkdGeYYGKSBzXUaaPZCmsVWG|K6UfrI[gLUmPaTgQQwYmudkkMTYXf`cH\iZRY^DRRWy\pdQWUWbjPn^tpGdWZ^Z\fZ_YTTfmsU@_ibfQIpwQcKra`bhWMJdq9Sn[MVjXtokYfUbjRnaqZQj`QXnfgJu_scHU^mSWdlMS[cUR@Te[MF\HhIgeePOZhLogSVinp`oShw[X7G\SQ^]_aUu_XscScuI\SkhGTNnk`f[P^ZKZXrMXUXZhT`J`HLYxr`s`ftqIW?ji"W[HcePHRjkMgFiA^dB_Z]QfY^;6w`OtMw]T[Kg_NN;`ageZLQBfMhRTGd`b^enGyexSQEYTYi[^Q\d[OXdhen_Nhv_KX\ZdQTMZ^ybigB<9\oOekeFbVmbYXqFAUUfFGf{UcROZ@g`KT_{mIBGHcltMb[_ej^hGpX_bJU_`JiqbroR`X]^nr]Of;rTeaMuxSI\nhjWlbKZ[^NZhiYJPGeebJka[Uu[C2U]hrd__ILjVlJJVgfLh>c\@]XciigrSo~C{BTYZpXUPWLL\eYX|lWvfUSOWilgkEYPhWRgpinNZUdQzDhNNn^uLePsTY[Vfo^Ub^rLh`dM`Ps]K^\\}RML[udcQqgSpXUJK^[gIyRUs^jWdhZksObNbblFTlVk^g[jdl\~SMUZw^nJvuWJ^[dWj\lXHOues\_rYpYe^[hYRgaoI@SgIcOhiWZGZdM`OmhRipiq/]ag}f\eZ[Gc]]qWwbL_TYj]NYKh^~fonBMld]Onf>pejhcXx[uma]pI3hraMNhMESkdopcpYce>cdn|gf\`rMkYdJThSg_tg_q_\YopOFZgeWPWGIM\hjfiWjMc[}ao_x^Hcg[b[_ZWZe_gQTmjp@eMLVTZ\fTYguD_dr^gRko_liPF[yeqbW}^eiShnZ_mkudYWoT{]S[l]]bZVslGc[xHWsrbd^daZhVL^vlfw|XXkUwPTpriOXLu]y`WLHShXnc|VXqlQ`Uv`NVYFwpjKfuUcnX_PSjgriejjZYf]YtuWfJg;WgONoZZ^i[DF_bEaMvqxcE]KgaWg`VhAFTQhg?O`XzPb\|[Xcrlqqnr`UqoPGSgkluPj`rLT5W^a]^{[EqhEky_jruoxrLOmtc[I]N_HfscgmjpIV^_qaEyUsWqhaTfKkEsVSK`iXGwseDc^SfRcuOIl9XS^ESjOxRXlOQNgS`bJXO`hlTWdz\iRcROpgeb]ynuWavuecX_oZSRj]JbZYhrGSVlPa_Qhr]`ufj\qVTM\Y_RWQ=`S[liXpgl]vWjdyV^q]lGLe^lcny[|Zt^{Y]g[QraehfZergE\]imiae3sPVP[sPZjv|FpzWb_[zWXyLhRReUOuX{NXOeB`T\YWg\YVGDhU[aROJi_Fj^LbRJz}aWem[QeX]kR?ukYfWNeM`JlHnQbTbe^z_\Ue>nVlQS[YhT][[]DMbv\]S?W^hoakZcSRq}xTejChs]ZJMNaM]Hf`dFUsL_Md\lHYPKPUomszRsdSZqTnoxO7~Zv;mkh4fmuZ]gSmkdPV{RZKPLz[MRdD]vnbZSe?NbcZpc`lisltleO`KjpdHuxcr^w^[oefbUnthPpY[mYWZE_NzaQd\SIFzOl_exnjfiamckghRJQQ\f2QdPiVdoLRtcnS]`tfX`VOpWAYcVcn^N[iV_mcWRj~T_oM`Tm`>eE]T]n]iQiJMaUdmdTtL_PWf`rROahwUR~\EUa`sO~tehDZUMu[`_PVawWFtjmQ|fcZrgOb~^XtMbKasKQGO`_acUr]XbvZpfXm]hj[__r\W_DssViLhTlWVjcmV[mf]rV|`id>h^_YiRTN^KtVhh`Wggh\LW\f]\[nd`hdaXlV_mPbekmmeYObzNCG5R\]JFV^cSWNEaRTITL{ZVLjdZRZ\lWmbTGiRVIX[tXUMD@d\=jN]JRnAPPajZQUfvOp[euMEXb@gUdRdWfI`P`NQ_XLHg3V;dfM~Yadn[QMtLTRnnYZDWs^ZT_Xoj`]FYRS`WbDpUV`w8b_gjCbbqhvTYLXIdra?aZuZZtTwS`IkflX}EePaKGMeXe_YQZuvjvXoLlbFrzyWoXqueGxmrrYoPXiJjrW^ACpo3WSj\nPoHy>WizHPaXaEfUNc{Z8XDwf^_cZ`pl]bdUavrwhzpoIx|V]tt^YAjvuob^8ik|NkLvtSIeNjgUvYv^^X}HgccOHccvyT]nleU[_}ZWng^}xoj`}UN_NUE{hspjhq]f_RV_b`]eW]psdoggif\P_Yl`Xn\IfTy^X[cIWvPgh|]jc[__xlOcbSYUgnTZGd\epDxL\\`hxu^o_hptugOc[?XUMUWvpdfNlg[qkrdfOXo^blf_jeNounngM_cgxc[eigUoK]LaUJXVe|ZncdbpigHowVR_ZP`H[OdcPmZQ{_ebZYtcjfxhhmUSUojSnZYZfOhucW_b`^Y|`bh^B?opy[`i5~Nbf[WW`ZBhllTteOvhrZ[\pYXaXLiL^nthXcxaa_wNjCs]wesNZY_YKxqpf^ibsM{zx_b_EFQTelXobTq]Vjh^hFr{cZWs_o][RT\>Pa`sZeHm^NbgEZzrxqD`SR{s^KnYau@y]Mm3~^`u|cxVPb\b\L_NVm``rPL@l^a[ZlswS[Wl\R\PeRYlZk[QHWRpc{c_bQ}XjihYhhlYm]gXW]pPsWjt^fQJ`fw^YWrr{Nha^K_hx^QgfXUQXWnpdTScXcgQPNWM_Xft[d__XwcVR_cZjYhoYTc^]y~{f`ngX~gC~UVcd[kRfdgp`njfPgWSWnjXc;Onjk{n_RVsSiIvp_qe^\OWRxVXLnoqdhGWulCbqj|bKTelWmcSZ{icElTQ`aRwjF^d^sjhhm`t_xVSQdMtP_CHQjt3_sreYndcrWe]Y^MZ`]eZtjpmQGoehdMhjwYM?`jiWaU^[u`ufgkW`xe]iUzwLksPqZgerexgpR^lH|JqY|cXRTHmdgINDcNQdaib]|m[_`iJokRfqli]WQtYihOHbj?UY]euHqMKkUXoIQb`Za\{zgmVR?RphgeKc\QYGQI[ymjIS`kwdo}tPZbbXXcUVh\grKP_j][cMmscmjYPh`{wW|k[Qkp_Oj:nY^VkGoQPPcT=[[kQjYPcie^>^pgeY_QQ|kv]Cny]hexakaXnZYg|aqvc\PeRuW{kcmYpq_pv`yk^OS^ecriTeia]eyUgsee:afRHgPaILibUc`pXihn\PWlYlFsOS`LPP[a{THYXWV^RbT[T`j^eVW_dr_dh9\[XvlVJNcOUM`er\Y\alotWl\^neblMiZcMVhdpWkM`fh^Sm]PVYKL}\koy^[hTSKTWQSszd[jl[ig`euV\q_WE^kj]\S]xE`kp[MZ]erycm\_Vk`H=JpgXMibXXSdsgfgqcTkFb\eSRNhCzriQ`X`\RKkuKtSphp[Z[Y`jZVaPWVfl[gb^tOPcciHDXPKITdniJmo`X@MpgXW|ue]galwbGdJT]\VUaYX~oIaY]j@zLD_iNcLJXV_URSo`IYshXEYwaKFpSi>fi`QsF`Wpc[RbGx`Tj5myXeeGofbRWfqHehQbknKZ]TnaS]k`mBItaLePHfVV?L\SdQTsMPwVEa`oicZcrP]iFUiZ[S;I|NMoPk^l[C\nb[bfaOlCULfGIlrhcg~gKIditTVk|QcX[oDbVTDmeiiqK\eGRWZPYMpadZb_\Ib_G[[jZOS\W_ycoXUbYbUdbq_NlVQTHZRZbnw_\pOwv|pKmaTO]jIfYTK`u[^\aSR`]]L\iLCd`achIZhXawfrTpo[XyRr[cuTLDb_m~YwssxXZ[WObLkRYkniLmedNV]{sfXkcNV\NkP{`\ZdgTb`]R^mPp^~u^F[NnQg]euBO{b[jVRW^hKdWWPQZbKF^RGdZR]]jWN\vQA_]^FYkz{dXLOp_c^\d[[oV}omToSoRZT`jU`j\|kU\gE^P^X`OksMSTK`JD[nKPw:ckwa]dJ]eJdd|MSbLY_Wk[RoWFZ;s\OO_nr`CV`sopWtnT_a>EQ5filVTbnIh``tgGM`lchrffNAafQTiNqvXNhY`gd`IiebHJLOZSUvDWagJeWlVYO]NKqgqdyQ}eQmVdlceDd=FFK`one\kglYPBihgQ_Y`y1MUL`j`cp`LGVWjc\d_nq]JyOzmaMXujc_2]W^^[JFbdU]POlhcheplhYgFOWk=Hg\mjcUYXZnkZz[aXhU~DX[[GhWKaITvTWgFsibnelqmaLjUX\c[o>Lk_Xd^|S`LJQTLiU`\f3{WiMOfTphWzXcBZ]uHqRM]gUWaV|ZUXlwccNcOVpbL^]wk\yZ`ejNgelJY^g^lLXosZma_Y``hWVatdpjUMiuUVX_YlShHJhuNe[zO\RK_EAjbWGXZxjWOt7VPUblSaVgX[NquWYsBewa@qmkZvIW:]z`CWup__P[\^hdpl[l[nASmjZJouyNyfmuqxRZ_bkTvs\_hr>]hMfZLhmjkXDQdkcvQxYT\o^WW@th^MOdl^wa[SKlLmYfdyT?b`\WJlQZsMfhsCM_UWLHXUH^Z^LMa\e`RRUnBYbq;zmEF^ahXOgzBdMJdxqh]goMAv]dEpQYa[jGu>YPds=R~J?BgRQ`pYUUMw[\UtcWFRVLe\[enCG_{po;WKNKXSMfIch\@cX=t<@MR}}mfHZsbvW_YVihcJTbelRda_PUrkT\pktWdR}FXqcTYuTVaUePKWfc_|W[@v\heM`rL\Tef_TjcYV[VD[wo@[X9h^cS[ofbp^mM^KwZZO:mYFGQZ^TcA\\aNQ_qLb\aXSQ\Vh`kHmhF`gYb`m[]ZKOY@W]\Q^iSspdr[aK]Nf4^@Td{J[HNS_\8[X?Pq[a^WCTaq[IJli_b]bo]?Xp_e>9`^WYgd[YvUNbWmNWV_VlX:ikpemVuczyhbchM;>QXVsr~ltvmYLaYgznhmxZ~NMjyEP[ZGQf@`_\eZiV_jZi[Zk\P[^ereVWWXd^K^NePL^Lux]:a]fRd_qUk~YpVfJftUHe[oMZa\K^wicaYnFJWhbE[B{zTMXkmVSNwo^WX[KTVzRp|h`OPSGSf@aMeUmLh\ofiRTeHKfWlYojXcP~LX_ekRPX^CYigSIjCa^rV]^ngf[Sic{OEEjjaVTdUnO\ZtjTOHrvmd]k@JrBu_qTYGNtjOMwSc`fnaincydc`cgh&^Ii\RrdWeb]eq_NeeklbidSeJgs\ZdL_T_SSOUr[{i^VUfeV`MeeObMaeTxPO~|hUVNb]lfbLfWUumkMOYp\Sex[SR]yNbcbvxVMWrlzJWXXjHiedScMTSu]kYzJYk\^epaNeUby~\dutjTc`3`[Gpb_kob[LqT[ibdafTebza\EaWk_VnJrWMlK][gZUU][UBYek[ESfjfgmYbcX]ShfQzVeL`al`\Y|UHqW_l{o_lsg`scH^uH`YVV]Qc{fYNv8WLNcRSHyHPIc\gUekc`BgkWIpYgSU\ZApAaFe[ZhVRhbmw]LiYXXJ^jNMSe_RYXKELNdgkng^Li[ki8;cKVoaXWOt>HWT[k{W^IWNH@VmLB~T[eXc]F]cZW_eWFwGp^XRISpcKQVtXk`USz^QPmsomRpfT[Y\YfRe\U[iSf]_O_]iiW>aQDuiXJ9?fghS;Yt^aucm)bFnL`^tqrOjpZeFMFtMd;K\`\ixpI_efVPbooSeMgFjWs=ts\ldrO\eOOgHc}`bBVdc\sKaQ`gLeR_oK_s`cOi_]bpgjGbVwautT?aVkW^WR:zDYbckPXh3U}WOU`CTNBYDfY~MvFCI][\chdRZhW\o\AkTUlTOObQZSXe{cZJFSlBEA[iHoaoZVC_|qCm{]@5piVlomkdwvHdCnNy^asZcYCIHaX]RoqkjXYpegUPLcVXWVR]ZZWQldhYMvYafQ_@Ok`YhFsnPFwemi@aZOCXjQopV>RRSodWOQYcWWQy_aCeTc@Av\ecS[ufKlJSe_ZR8QNRHTI]L[sVFQxs6mGXI[u_\cLmv2SH[lSpik]uSX^]a];?[oYShnMRucg@fS^HKe`G}I[sy[M]loI{NVoJynMZe\w`fN[bsP9LPDj[NPGXa[lubl_hYabEa2{hkmK^^|cZtqLQaRQmRlKkUH\ea>tvp\_WlZS\P`9x^tRl{AHpd^q}Tcj5BfMTFmCpSHjoZCf>mVQkm^e[`UuYKX\NIponf9lfK]Qyld\xgkX`Z:T\cNw^d`\=MBh][sjUade~`RRU\;[Q7|Uhs]lcWE`oGkSWlpKMuLyRiYhiXkh5}n^LkS_pb~ZesNtXr]x]gOj]YTfVWeXWckm\ST[}daBwEpWXdYpdpkgGdRKG]{_Lrh_zc_aagv=ujFOW_ZasRbzxHhEKJ|Z^hK_q}oaMhXLR[mmdalb]\[SdUj=xpZPsfPOfnUWwWOnnsFydOOYbe^ywgsjvT[BiW|p`[e^tMvtRR]diPkodJg[U`xwiZZLWg{opyXc`aPR]RsnjJWg^Nb]VQPdVVW``_gvOK[sYh\ihRl\apiM`Z[UXOa[OULfoyjk_RfVd[geoVBbfMSlPQtDZduChY_zZ^JihYT_gp>^YYPY|;mUrU\Ry{KkNZwm^\UJkcq9T[?SPWqJXr~f]ok`o^^AV[WvUanhWRaWK_dF~S_]echIlTXIbUL{tD[bbhiPMdX^fZna[yW]Xnc`jer^jxU_zyOX_\fg`9necSrl`Spo}UlfhtX]]N}`rQjSWWXgqbXSePVgfG_XSn|kpUUTt]yUTaM`Y\^e]_aSNN5moysWeW\f`YkXsYzFaLyQWk`VZmVY]u\CpJYQX_Sp`hd_EgmDZaTnVsgvvloNehe[GUck^tYNShOF^lSfuNW_zWl>=FZHHSoTptOfeaI^o\i]]PWoMbm^fhMXZZLaI_>lej}xXh\bkN\QbkrcmjW^kD]hjccBjcRihCjm]omdhEMrPfqAYS`DbTgIYdCi~a_UwYh[Gu`z`TZ^P[^ifRX^oWqjiybg]RTK[bNiphl[AUouw\R[d]P2mzW^iQroccZfZZosaNeQ=dVzdPYWhXy[AqO3\pcv]UcxUHeLh\zIQ]Ru`MV]SygTfg@z[T8~`:KVo]`nhX:Wzhr[eq_QJfMWlxWQbo~Xz[QTP`f[A~CkYkNJLSeZggGBTV\[TwFqwUErzP[agU_^gIxsgIR`Zu{XLd]a[SpPLVC*p_rZKGec_lb]=aajMyYiFN;M[GlDW]USW_M?OYQZJMVM)WygSdx]xCakitRxVbdcbksK]goRaOqr]\\neLLY>;xRTfwVlW[OVlNksRTYjjOWtXkIj__MT}^fVeRRZnvUdedf`nb[Ti_sgL`aDbei[kjha_p^_WcvVZRhmf}c]uVg`uYclFRXy[fb_dXn[T_IeRD][fYL^Vpyspsh[v\s|Ue][t^UQR\__c`\_Z_m~zYJbg`YRZiVpmm^fp^gY~scMlDR[\Uptpb]|Xd~g\Vd`_X`^z^ejcxR\`PYl~dOi^vOWZ]YH{\WY^FltFng][cgrlJWleOdTE\U`]n^Y_hc[vl~coeuPaXfh^Y`s_goMX_vgQspz\QOtYmfjryxsnkTsifD[rSNskYwgmRwXlO{l_HZUjzVdYOqP`sUJui[zvlOs{lcfQeIhpnkUtxYZuUpj`VvnYh<`y`mQa_JiGXX`fjXfdr[zP\X\`gbo`pFM_eES}8YbjHSUtNXJd`cTdgDZZoZe@`lCS\JSY\YaI^MwN`NlMO_]tydxa[]tMkNO[VN~]deRFhEK`umTfVYe}R]gWVN:ZEyj_^`WuRf^?pe_Vbq5VfE_epxXLT_iVDs[MZa\SZNZTaMgXRsTri`Xbdgvmz[pjS[bC^]OGEKy_VP}tXQM[qTKsV`\^nfSacnOYuYJfhPNqL^dh`paKEknbpU<]v;gUHY[h}WkZtbKYLamrPo5MgreQjTi`tsj^n[iiraQlX[gWUSi]WKixWr`xnuG_RgoVUvce^UUgObqAaNhaM|ydiNBE^x}^nWK_\RpFbgZcsk^^NEel[YjSnQj`^|nZsG]epDbPiKfa_eOcY{red^\[^^ZHSW~\^|nhM4Wm?Cn^UMu]dHP\iXUnEmf[mXUMieVnfhS^anvdYHeeifpxWEUSS^];~ot\gZwSJJbDG]izWs^japZ\YacM]XcbwHEgYYmT~vXQadsehbT]Xi[PdDghIAedUUukgYH?eZ][aXY`BIePwbcvhXW_Xdc`Yd_aWPJWmYZDZBEIjvPfLseuUQ[csryaNWqiJsoQ\piVfCIaMlUieJd\gvrg\`OhbaS\YsRXd4U^FZ[UIZWbTvR\`_rWYk]U`Yke?cEYVVOjiDTdhgngWmgPiFeY`YUyO\RTiw_E~gglhpUvZZmZhIzKefh^gbbWE[9d=lskuQhUggqcLQ[g`}]`qrdvrX\blj[]aqY\m\\bHSO]JZXlXgpRFqeZ\TC\cWrVsMdqZbekqSmr[gbYkJHOVeNXUY`XgyjmWVTbFTEioeAZSc{We`n\pYYmQiFtOtFmaq`VgL`S[qLNadccnXOUbFXfpiSl]nT^jkR]G=UtXQgbTMUj]TRkoQp\qXhpUcXk|qSYfs`mjNZ\7OesjS\z\RWV`XbQWh_waObJpQecVpNdpRUv\l^kbkW]`jirgQkpvSKvsqxV`G^spQ[Md}VG\{kJ[nFM_\QV[jrP`Jkpd~RxP_zzWQSaS{_el\`_lWfbdsTsla^RTa]gW^QfInCfYVkRXO[hkmA_[sGjb\aY|`dArjvfScbemkKJ`x?Kv}e`|jfg\bsvSiYeSP]KZNRNcZUgRUOOT^]plOwraKUhl]qWRiS`tj`\RkCsmkg:eMcDw>_VO\`}^XU\ab^w_`[~U]g]aP[qTjzejXg@{U^Sd7vw]cQnq_eSBVciWq.h]r|g]=zDbbRVfSVRba~HmkaqNVI[UkYbdjNk]nRVPgf?Zc]fMN|YYrcHrdZHsP^cLHXLaWfWsLMfcVXwPyac{wzgcbh`xfQSM@Cbjqmjoazamrz~}R:`xcQVv\kfpe[]YjYkwwjY]OLUMsafSyRUxJQaBk`4[hW`d^gPOdKNIargbWtpeS^7i`fOm9cIc[SX[HhGxMVd^bjdAVw`WbMr]SYmWGNU7]JNdmDe}LV2dbIXInTYUad^\SlgMvVIiMafWGTW;@]k`NRlEWtf_}s_YcQSM_]jqa`gke}kYqOlZSb]nP?G[Qcj`be^Pl[UlaVYPyMVkkHnXJHf{G*\qi}`mdkRchlRDbZnlgUWUM@]C~]Jfo_ESc7dtkXlAO|ZUUOaYT|OMLijPXWmq]c]FC_jhZnRg4_UJohgWWKYM^{lyJQNvUUv_R[cvFTle}lvj^|R^]lc_`oX`V]_`ddLYchjwemtcmdHvYH~U{^gtaO`OVTXrVZOElSXcLeV|iA\OhbsVPePsacTv\7P_Vqq[a{L_S~\YW^kXPf?_x]qlhjNheuHcznYk_WkzQg_RcOcZPp[i[g[ThmeQd_YlZOUZYOTTgR_wljkfVggrWNybpmgaIgvVmZGeiIkdyilMwecXhaQehPpxdPeWc|WgYj||zhnkcTkcbWSRylc_cpZedzbbuYH[jXVbajcQJYShH]_slenhprN[Xh_WYDLNc^cRh^wLNdrjM]FnwJXXNfTMqPiReKq]UQfTdU^?w^my[Xkkvw`rOReP\CVeZVPmhYsXl`p{^e`SjcL?CZWd_NNjnPg_YSjRtoOVP^^Hcdmz]QlVmXkFexEM]FjVJV`=bNncGVrstvm=6PYcedma_OgIf~aYPugEHR8ZbVtZXhpOKLjYUVdAV}NqT.c~SCNTcj}|^NibUFgOsX\XtXnoo|LPXsgr^^QeYOO_Zho>MbXX_:]mA\_^[jR[zjoWlSLqkH`acmWX^xaRFxiEKWaehc]VON_VTV$d]iWWlLd{jqRkEwfZW_hj@F~[XiQ@;I[Tjs\k`NZ^3sSJnebp@jjmkgqb`_ZT^OF]SroXcSPsgMQwBCB\d>KWxZYe^NVmHd_by[bXSIhUdmUefctC_R]d[y?|WFZQUQ[LUbYZ`[[{scW7cKbqYblatbqcS\cbdSpeiP]DU^amTNTluiiZjDK~Opa_{Ra@VZN\~fRYlfpbi`f_QFdQMzrZsaid|sm]bkrUiw^plLb]\sc[aDVThYOgaMMXgWgwpN_Vlw`dtUX_Y]:9qmpX@qPGNcO0f^UBom*mcP\rZCYMhcmgMhG?uwnjK^vbW[oyjdp]Wt^Z7iM]G`{0fnknSTxpT[}hRxjk[a|EcOIbXL_fjmY^e|UBK\\A~oa^rZ8`^vZesyRMY_\RoSgRSHKtT_lcW_QbVbeRep{]h\TJpJ_^ZRqT^[aO|~gky{}_^khrH{]ZqspTQjIZ_FseD`BqLs?MrcM=ec^PQRvhbzxiPAKi^ZU`J[sPgppi~dOfFnY^cbrpSSkltXZHjsrkX]QvdMbcNLZdVO\c_kb`b6ZpcUVTaLap_Y?JPeO`h]{[Wd`kwmjfocw^ZTvYttnWk\rflnT`xxtq_P\WSwva|c}T~}uPu~_Qs`uZOK_^mKddpprQ^|iPuZJgt]\ao`gnbusnrWcuUd`ir_tZSm^f@XSubkRWf_a_{kelcbV{a}^YgnN1\l[PToKZT^\bqgc]f]cOTf`WlJYgmki^yWOpvYagVsoPy[iZTxbgUbamTZr]Rw\Wlm\|aR_}gnkTcjOliPrcQbhUSVXGlaAlVNJ\v[a^b\Ybl`o^r_cj\R]Y\V@vTgy\PzD[nrYK;pFkmp^WaRajEckqUx\~PKdXpYl}Y[RlOKTtUQa_gohhnksPhHc\g;khSzVuQSTNeLfI>nmYwf}J;}`jW9jwhiUWdYRolU^mgptYi]lmNc_tnViyJvY=7TegS9SYQE^\NSqKeazzXkggeQUV\_qSWi^X\g>Nhbj]lNQynFieagcDsin_K~i]f]dgRbcQ\uRoYU|jovkhfWLO^ObXpVi^[oWwSmWvgYY^KsQ[PtgT_l]cFW|NWYYWZrkRZ_\DKo[abO_SVs_[[`v2f@ZCcTt^\W@_yfeJsFf`_tqYeXhp5rxlhFVOgQeWCawmIKb|h{]Uj^jV~^igQKQ[{mQcgfP]c]SXhHgVg_M}ZbsoLOpxdKTPa|W_dZPUF\VIL]SRjviWXT]Lh`X_QLihX_iJTT_LPOQTgKt[wUlTgXkog\MgjZSwieY]tTYXj`YRkhAkV[\KfDE{jNClFXrmX^bXZmffgan>nSvMvcFevzihriGt[D~cVS_^\D|bJZYLg[[jOGSIUe_qt_\_\SerfivU_Yx[HRWeEALX_sexXgUQXV]LeaVc_bTYWm\bLqjQSSkPmYPi]nRprei@Qng]kYkZVRTWPeX[hKXhEdYHOaCw{m`G_ai\IT`p]ZcStpTxiV^TikYkZpDs]n{HVcxMKRfjofS^Wm[SYk]FhMd@cgQs^zdpNl`lV`[qKu]WadUXMgPsTor`asiqUMYMYIPmihgtZoV_\s\rhom]\o_ZYk_SrkYaYdatMNbaQsgEcOV^ljhvzkFg_UHw_^gj^lKFLVgeTcx~x_coYwnS\QKIjd`K`qchLea]tsUaTe]X_G\anpTSQ\c`QAp\aHk>rXd`]YOhym^3:fNmShXZoojmSgb^W{g}sTk[mqwv_SK]fRudn_eW^]fNZnUifwkQhaYZR[ceU\uBi\][_]cfQuS\XmrjE`;USPbaQ`jM\HgC;ciXnaTkU^lSQR^\QXrY}y\V]Y^^UVaj7`[_yuXReugl[[fGTcWkfVIFZxUXT^SIl@YbxBldnljT]aosAmu]NUSzWNqc]MvqfARcU_n[e]bmlERZXv]T^MIVfaaP`WdZT`URap[WtQCoC`f[a\XYmMsuW`eLgi`~Jc^mS[PQcRX\\qVcV_p\Ueveqqfe]9HTwIscvihTfqTSL_{UNYd_nQJO\EXa^]qKj]ldaDYe[IU\NfAk~ugKi\Z6nkSK`ZzXX[RbNiN^VgfnVM^OnPVdk}UsgjlgWVn[mUY_}mRcSjgY8KKLhPjnmeOiX_UgFfFZeP=DzZZ^bgXWks]^Lf\cZk^dq[wdacNSXp^QgFKZdURLHML@y\VBRWUVYGIin_YQ]_uTGUOk[cIWz|ypFvJcxvgihX`PjVx\;iS\NdcgBLn;t|lynZdnNW`iq^ihJi^Ket]o]B`_S`LqmWWY^aXymygc|PbQGap@VU`pfrZg_Qnan\agPkjgau\ZNrTcL^^lke`szVUtdNZcM]L\e^ehO`XQR_fwY>jtkWoZZRgYnUTd_WzezbrC[uB`hlqQr[Y^qUanRMelUOg{@`EVmn`n^dmrfaKnjnM[rE{jkLWa\Sdhz_nrCZcdVrRZrsc\k\cn[faY[[KyRjrQBk_PWi^^}Q^Kyg\fh~bkyUrYrTvhTid`QKmM^[c_LIYiomsUY\}^{_L\c^Z|IoUQVQlb]gkb@f\n_]ucbbS`[wfpZ[edoXe_eUtbadepTacLU}wYS`n^W_]_qUeew`inic`HL`a}_lBViSN]qxrbOg_P]IXEOwScVPTg`pWUTu=Wjuc^?U`JvuiR]e>gf^ivjJX|EKgw]ZaVckKuYnhrH\cFTLVbRhVP:[yB_iihhjclZ`UvclUU^d[XQ`YXWTvJ`awjQMhemNMDmhckav:l]lhKRkoIs_tuSbLcT[ZrbP\ed\RrmVlZ[SIzT`a^TSeWPlJWdbZnian]DKQR\FhopET\d|MZeQa}iGjZ\~hpctccV[Tzlk`Z`~P[IVCKUUdxX]lImUUw[SZamqSal@vtKbuznmqNbd[UzONaoGbyIeYaDQT^Vq[ohgCHsNadOidgPJ]l\HU`jLXQih]VeLLfTas`jIi[\IiALYt``jfT?er_^NWUJfXMjQfc^`~g\XjHco\CG[q]xndbkhEX^}hMnW]fqdclQ]g\a[WaQOo`jOVQj\bAFf]Y^KSBRbS]ddOwu[5VY@heTfYoVFIgSi=dVXht_f_TK`SZL]pBdNTLQTf]pVbnNYi][ELLFI9UyjiN{_YkoXbUQ\]NerpN_Xy]sII{g[[cOsrpGLrXo\TUK[[gxnioh^ZVXX`JcudbfY{TzyY}NNlB[`bUgsq]jofDTT\c+x`NfTTUfpf}OXawmU|WTdmIY`yubgBgVVa`zR4ELf]K}H^HhXht_tXXN`zWRYtMlUtpVOKTeuSiiMnrrPiq^ihx\sXKWocXtFP}rYlhNk|afYi\cYLU@UTwAOkmII^i[mI\evqfNMRi[S]YVZbRs^N;KQgO\[xQTHRm?=KZ[bQQV^pEm_fjJBQSMdV_]Ka_VhRg`WjNXfqdcHAjN^G]:PLXXlhNFYdbe]|ki]fagbdZha?ooUb_]Pdp]eH]lfjfu[^Z_VuKWyT}FSJQ[GP^sdPd}]aGMkQ\aTrnj^Nh`Z}yX_bgUUUOYixbOkbC_VHJfrc6ZKJT?Lm?^klbkb[^[c`sI[^^ej[hWhWXcknloY[fWGmHB\IdkXfrb}OcW_Qi3o]LQSTZwaW`Yr]cUcdQJIdXh]AVEI]>SViWec[^_F\`on|^F>XpIbSmmHpLh?WqaWfU`Z\\b]LaV8\TIYQXeaxxfUJo;pHKdMLbRalaatyllwz]elpMssi]aktOuRKA[YgeXko{WKsWvVXKRodPJqdbceY`]_aWZ_qWZZnkdgUdfOjty`KgjGcfoGeN^iySknUHj^QXPD^dS\ZgML]vlgc?[JjxlV|MG[Z^bXNngvnfNBoHD5pCsKXPRIRNN|VQQ`ifTawb`^FTSy\__EcfwkrLvhf_`_rnyiZJks[UY9|`^D[CTtRQN|qyRhXEXHgnkanNVZtQgQ>cfnbo~FM{jbPM|yi[HjZmrAilv\u`JIe^cIY}`PL[~kr[7\[_I]gFo}aJwpckV^r\ZTakg8m^h6_yCYS\cJAme^YVi_lfeOPMUlc4ig}`hkN_lZ/ZiPIVTZSrkj_Z9EXEM^R__MWkeMZ_`a]Vm8XgkR`v{wiR^PhOPRciiJng_Td?^W`e^`|VNJOhZPjaj?fYN]WbbXZUb_KhWZi@iPNXjY]SPMe^VjKY8NQx8]Whe`\`OlZRrhdoWheQke=gr[[XpYadUgXKr[XaRkKgM=Y=QufZj:JTWqjdDLTlfTgYvpeWUhfAKSk`EMem;?WNjdNveGwd\Qbn[keUklLoLGWmT_XWUQiagG`MO^JMXdiaS@t[]UK^Ac3X^oaZcuMGPFhW]c:[vuO~DeMThUp[WNaV\kQXZ[Hnj]eZRY_iMb;aXTOO]OEIi~A6[eoa{\fZjCcH\m^`sfTabTce[7ughLaW[Y`^hgetesQ@dlQIbjhUW_PEt_eWRnfqQlF3=TbXmdwcWXnpVNXQpegQT\GkYRNPLVd[YT^_^SroZ`[>skOZ^agXeW[klUo?gR]WhlpfWGdEc@n`Msm[?jiWk[cpdkppO]Qa`hUTFl_Rc`r[cEdWG\V\KAW]^^SdB_mTrbabQ\X}\j^Z`]aNWf^WZRRWV`rNZYrJ]Og\hZRaphSa:O_fH[\ZE~GDMlraNUDzwZZGV:n]eUZa\SimVWZ\hvHOyFMeVcTk_rMERsWvefiPDUH}RpV9gXR_HXEaefkULZNK]YsqkeD9XcwcDJY\XJl]lV~fN_xG~vNr\\TfXytbSwN?I`[Wa|X;avR_rHRn$ZYUJP<[vULI[YVD]V[jalMcN\ZbX_uhIRrWzPXfTW_cdhNsUGWqcQjbbXVcqlNoIwaiYXnYf[i[AY9XXOhPElSfV|tsefxX[^c^gslwkUs_MpFYYYU`iD^bfB[\[vRoP\bkgMcTO_Rxk^ZMl[WpXTbWWIfQNegnuc\IR\w\fbfKrikSS]rNVjj7_PSnU_XkL\WWId[TnZL`Ve]viapa@jT\XCKPkhZj|nePbjbdiQ_K^F]_XKkRhugTwaNh\VWh[S]f]pe?^YUOTLqaVTddX{`qeQSPOHV\kg]LHLh`cj]dOZ[Q_`[]P_VUx[]]mXTI\ZWVYkVb\dwgIQ[ozfzj[]XjP^MkZ]sRTKWlpg8]lW\W]V]f`h_aNeOfDfVQxSEMz^FQRjXWUTY[TbWZWkSPXEfxFbb^]^_OAk|gY~~B5mg]uFl#_~UOmrco|9Nf}inoUPh`YMTCJt`gHW[S`pSf^buWUqKhci^arRceRV{\b[auVo`pi_loXu=ZTnDb^d[n|Yj[dsdu_T^KkgQ\PKwpQRQgqdvpmgvX`lt{7^TUNf^f=r}USYjzbgtKMxjUZUmRQ?E|jkQOlgYI[xMbNY`t^E]idjZ[v]ZNDO~bd{SH\hYoT}QwQqOEmhnbnYRL~}ebcLSvxRBhMGcqoseOEq[YvhX^SnHD`ibaasrr_pRpvEYXz]ZeZ}Ua_Hlcaf_gWm[jhIaJNW}^P>ehcP`fRXtlpQ\opS\hfb^xWjBZsrclVQ]h^xi\tUMQwfXmQFE^ZQfL]fzcmjgOu_g`a\m_eZXVUlWcVlRf\O_YwovWcjW[lUQzfFI`d[ii~bH^`\NQOzr_X]_\chH{[gzGQSY\OKeZXbpm\AYjGTdrpgGbJbXH\SKLpg[Re\TZIYnn\bU[fXfTii_m[aV}:nYUr}BQbgqkTRoasVu[z?{C\c_d_eUeYjP\axZYcZ]HeberwFoHbOTZS\yo?:jbeY`[f`\PVqVX`[baloTSoPhtTw{S9Soccj\Xrfkei^_FW_e`cb]kY|iWk_UaYVXmYNSapd\vOIT`V^[]vkYmXxkx}\cU^[mwPka}cZJyQWW]S`V^MivdYU[@XY_mcYh]`~\WW\Yk`fhXha|_lQg[x^sIkHd^yaM]cg_bfbPW{_WUC\}|{MQMT_YWuyLOajT\lYXSVQKK`go^]]?IT\VUm\\bQgmrz]M\GoncoqWxzct|Xpe`fUpxf[kjYYiShPf`rrl_i[\a[RjiKT]UpgQbgeSWF=GNx_|YWYkcgvav_fUmEN[>Wb|Q[Oo[[yYYNQ}nVtePgTnWtPx9XK]SVqAgYF?bb~_kVuq?fKXYI]PqXc\dC{ZjGtVVUu\B_D`mCjgcMi}e}jXiETdlXhmNs_dXVgUbYJpbbI[iSE_`tf_[[ehk}HZcghqcsXHbUYuQa_IXgMJmKKZy\WL[eWXveZiQ]b`bTaZzRnbtr_e8KfXFiOcvSOiZ]WW_dqwkmNwJ^IVyMsXJeuVXa|rYZgeSbLUw]Db\hNYNbO\xi}U[h}O^c[F\TWR_SJai^g^goGy_dmP`YSnSdqVhPRpQ^jSSUdUlL`nPnykVf]WZYOTvVSDVIdKppjy{^WNOuhTT^iTn]UXPXQY]gGWfSJ7[VERxOk]jVZQmdI8`eZbb[wH9YXXvERAeJb\QPDtUxLHLOX]]SbbkUDZVWTbFacRawSRTwk\l[asrViPtVZn^Qgwc^oDRwtLBYFflUhSO[XWc`RSXZ_zSUwK][aa`dcZGjbpaYYb|m>tiVk\_`G_QmeYLn:vXdOruJcURgTa=9FcpKN\QfY_YNyke\[jg<\Ro]Q\JwkkSpP^JZe[dSW^`HRu`lfg\_onlijfPtYRZ^vUm\UgVL\ff@W\PiqdwRcLGK>[YOdWfcdjo?X[ngGgKiTgSQjnqiRhdBOnKasrfXq9WfdqNhbO]cfMuPi_gfO\k^NgHbgf|V]r[[OvbVmhmqlsWcajhSoO;SaO][SY\bYe]mXhWJUZ]IfnVm~YcifU9[GJGUnk`f_dJdQ=aMH\|FGl}j]oonFiaR^p\j^>[XLqRa@acGOr`ivpfZuqZ_j]eVOfPbTVgLSw]pbcX`sXQRkVTSCSd`]LR_jgg}victRr`KSRF~_@_h@:^]]OXgaVf\PdVvq\pLx`qcIsnfiZ_[i]YIeX[bdUo:mfHd_SRYgX[WKW^ftoYdyyhhnVvpXWddp}Y_zhPTXwbe=ZWjMKSr6{R|ziQ[f>ax[_kGZP\bW]r\Iloeqad_uUbhRu[Pnp`YbU`xbvcf{hPL}g`SAfbbqwIjgVXqSQkIm`tgOdV\S\iVNXfi>v[BNXe^rUosoiZYZ`inkDqtfIaYrWNJikfN^hntUaz]e[nip^WXaDWSVhp_]DTbheJ?Y]cgoqk[i^_DPePTgcAVwLzRTwejxUOoJ[W[XpK\oeVR\MUg_JJSS`aXySZKo_h\bImTbFkfsU4TxTZPW`JxxmTQVsX_U\V;YgecZfgQXilvgfMgub[w[`[\VwG\it^^XrQhhZMUadzYrf{d?WQX~amf`HhiCWcoWr^_bYH[ZjoS^zwTrXoqVqAcDCU]RkbhX?PhU\\MJW^Wq^tao[\M[HQhpAXehe4_a_NeEnai_RidmZA5_NuVH[_\TJNUH\lfY~asHAP_Gyv\D>cuOG8rTUIAn=Wddp_awEFpRHPuam]`\e]\RPVYURnrSV|mtYpbv[rGekXTLoPQnT[ggRmKY~lZonv]_Wplm`bfTXOlyOwi]hLXWXUTaLbcOViBVYCskWaYXf`u]n\u][dlDDouyoWn[Xb6VgubQodTb`JIeufZ}D[;fBWj[yB\qXXPnM\fxuPAb[t{gUK\`bPiPbpj\UlTEfYj}[PW[>RtbC[crXJJ4QZd]Lg}rDXSKX^R}i[`[`gNg_{MRi^MhW`f[bchCnkgX@g|LUwDxG\d_lYidmXHWojMHq^TPjcVVzdZgdKtRkRf}qaNVpXs98BqFTnm`opvQkab<]lKjfeaheprpqkNZh>KgU`b}IUzQUOWzMSKS\^L[dFN~VqxTX]bOoN[cSbuUQ_eRddVecwoRR^mln[lkrZVTietF}`MqTeAc~_QjXhCO.d^UVP[MMvbdah{uadgN^XhhXDJZ_DgjbLUz`u`^jw\luchy^^bWYb]eJaQV~UpPo\[_`kv_[TPUZiXd:`Ks^SYofTebfesLi[_XJjarJccsE^uS`ylCVqv[cItO_@^NMOuHAi`[^[m`JlQYZRkhu`aEd_rd`HOeLuugTOs]zaQk^f3kbPUlVqWxvaXEqwq{]KVWepsegOcGQeYbbyYN[QaotSo}bleRYQbk]dSafVfH\z_wWTfXhUj[Kie^kkfZ?jYVguWdhGzLze~DVfiY\VLyHlEbp[dZbqNpcfdiKVhsLhP{OgpMLf\Y^YJZOvYwP`WSZfXrf^dDZR`mMPkaajad]]Qhej[gGZmRtEezBUgaOcfiSZ]w^S]hNXomNgX{mk\IDkQ_jeYBfEncs^\I\fw[T`ipaPu_cK]YZGeag}ek<_S_h]hbk|fi^T{Mc[bbWjm[ZFlwjiPXeubgkp[Crhg[VTXZf`dQ`QRP]bffK^yQiZ^aaCWYTr\wmj`hRYTCbtS]OSVb}WjdpqN`kINfHKfs[tlSaZOsZRXh]a[fQ@OZcjGmL`Zxc\zL\afswnmLfcs\\_rfWhWnSWYYb_K:smleVa\]PbjpDa`TghyUWWaMXa[cdLJUn\UWeWfeLp^J?fRLiT^^PDKZZv[kWg>`\Xo]WTmOaxZPSlgoj[WtahPt[WwOWq]hPUU`ufda]\sJgUESXJa{^OXfd`|enjO_PRnmiKn|UXxZNZl^v\Q`SgHV_aa3vYy_FNg<[L[hetnJbZDUOtmJ_YvU]LPkxcRvMOaGfYZVv_fX^q|cSA]d\LIs^_KfkVPQjcWB^UEXoKxUehncquzf<[mmUoPunVD^cST{wRbRu?rlOZQ7NZceqq_vfpi^TgsY]PbaaV`b9L`[Nz`Za5[RYl]bS\cK`pRSmphwzLFrM_xl\athwVOoMqOV|\bJ7XkSHbGE\rNSW=ZfrklMfdbKHAcgdkhh_Je\Pg_lca]MPvBjpjtd[hn[]`Pd`apZ|wnZUIQeGKiY:bZnklVPzXSaWW^ViR[j|ffbotIfcYmoRQI\g_FkVhEkbjltBOgThUaVUZlalPmeUm[`O]_LTJ_y]Mfga\tZE\Cuqp^Q]bR`X`ZZxpNzeBlZdnJIajW^Va`VaDW]TYtOXIx`XkxrhOHWjh`sjQqNKvj\YcZgBgWikWeJmVe4naO^^l_VQKNHSTIhqnUTWDXddrrSYmZu`piRhnHeuTpSZvjJo__Tq\iGiisIgWnNpi[UO\BQ_IaXiXsnZ`[xX^egRQ\iRwi]XvOajTPldqkUIqF}JMMjXVWb`dlR_j`a`nZZVSXXRbv[OpPezrJW{zteXoUeJohLpWRqSNih]ROKU8jUVrdlWL]?O]nerUSIQRYeOTQF\fooUCtv:^?[_W{b\[yXCmKwbWmjanPOcWYhY\qZeaS]TNVxw`@OcSkU\`mWXnitegaOrqT\`Y\`UOW[vb]NadLhwXkV\\RQVjsSfPI_WrUlSdT\K_ig=mui\SHiXO\nTxk`TvlmPSajRPYM^ljKTQiRdh^Qr]^_YvYdVdoLUf^xP^XToLcDY_uBftC\adj\fIreNyTyYmfZLYX}nTa{ZP[Uh^\mG`iRK`Y]TVQmPRiPRRnYIU[=]RnjitO\hZqkZU_iQXuTse_]xmCIW^d^fuXR}]g}avQnc_lLxpMPawVXunQwMK]apLYbxoub\UaE\fm_TNeje|Z^ekwTBmvUmZNLZWaY\_j}]=]dpLydj]qekECtEuU}Un_TUICnG_O_b~f;A]G[wifPoVJQeRmH]E\mNf|qmib}UwPcXwpP^LR_APY[WpXrj_pKGJgWoMs]b[VjljBWC`zlsieOlXnhgecm~b\dj_pmVrlfKLUgdsm`KWaodnv|HIVXar_g[NZUCZGjblQYOLQxpsYHcV\\SvWtY\bNnXhddkTbdgh{TXjadc\FcfqqoCxTQjcxXiY^M]zLWFeW[Wrmgk]R[[kDer?adLbZlhtZY@bia@Rjh|_hUTtX^j?Jn[eaZN_PhaqakZh`heYuIQR<[knSaqg\KDUeSdru]cM5dsjncpThdGUB]Z>ZYkP\gno:]C{2_IZPTrFQm:fDicERe`WP}meNbksDZUacCkYVedQ1`hRc]_Z=]kFS\ZiN\:aCQ[Pga\CpRPQo\R^f^eIcRxO]`eexZwdgZLtD[K[lEmd]fYnQapi{sb`YPPN9PXWvgsPbM9q]dbckkQROsq|SaeRcWZS{jaopxXcl\DXORW[ANME\KjoIwY[^ccR~R|OkIM{ZVVkPkf]efLcqYdFl`KA=iS9iqr>rU\eVza{VNFQRB9gWV]PQNMWMKV~V[T[sefSMru]RRXWaY]\cbSiVsemXCmeFRQmd\[qa^dWfX^wWqkw`PpnWisY[\eXV\OWeuIuIqc}Hdlwjlge^flBQdd`]scEQjr\\qgeXiXUUL9bcb`{N{GZJXTZi<~K^OQT~dGKaJvr_roonkudaFhs8spILr\qfthuuUT^Sv}s_]ed{j_XXkhKbmwRLYZlX_vu{bb[aVkRcIgWjWYOw[WK[hVjThTlfoXiR|UfeDUMqQcdVXlMvQK^qaaPuYel\afZ]c;gjFf]^]xFaYayc^`zrbadXQfLcN]Ih?Vf`?iTd_YnVTZ]rb__esxkSgYPHaVN]UXjkSrUAkd\df`zm`rmzJNicRxETJZ/eibrwt}d`jYQwccL]WlI_cOxnazhQWLV]\uczcgPg_^MVVe`ceYOlWuhh[ukT\XbxnLgllzSLUkgPec`^G`m_C[3mhbi[q]ugimQX^^IaojXfbZfZ`Ifsyf[`Q_P\Za\ZL_oe\IWeghcpcZ]lJQ`\WIaj[mR\QX^Wl]Qe]\|adTWS[\`OhPkjlhSoX`=X[NSYdX^ep`ccb\m=W}[bpTSjVm\\jtfxk_^qfQ[i_vHThkZh\mXrWzEsYk]O\`imPQ]USIQhR]R_Wq\oWJ^js]WWVd}aeJOg\k]acXk[i_sVpHh[VIelZkWKD[SGASXjni_hATUhr[T[zZV`_ZWkW\cQj_aYlXUjX`PTmY]eQU_cj_o]Ud_zYPpPecVRCvdPeNdUgw\X^Y^]]aqoMcF~Q?bRmmbq6MsdgiiNf\a@qZh~KZ][Mbb}NSYWwbYMbcF^ZZtaciNa`f]WnN`SA^nY`^fjmhj\fws_XeNdbsNGbp__oclmfgt[hB[[_G>cGLEX^i|V`dpF\Wns;m~cnesjNP{zgegVJYzn`Khdl^sN^WSyEVmpEbm]^[IhvhY\VtTNdV]fqkI[Up^U^j_gPS_gd;OKblbkU\Si=`]gqGS_WP@ZUaT\9j@tskgn|M~j]`|kSJVeQ\yvLe5|N_iYZvA\ZE]ze6\cdLk}W=]\QCJYmCZtoaTHcW]]XRUOZbaYcUNgZMpOjykUd^deN`VU_ZI\nfg}9AMUN^[`achd=hSpxTHd_RTyYq_TaP]JfoNKRu@es\lEcapesU^MXT^Jss}nrmni>uXrlcih\OVof_zIlSb[\bdtadFTRpSjq]RghX_`Lqoirm`{pa[djenY`anfyTxXoPHMZaCqYr~gYn`n`RZZjfs[JikkbkVhq`gScY[Yq^\W[eYLxfvkzBkfN\yvZpnJWhbTJaVFYiSnrndjeINjLSp]sfWtI[caetq\qXmuQfj\^q_ocgD^}NR_O`>qPktpfUYtQ_rsO~^f|ud`>y{M^nZt`g`yQ`imwx||r[pHbPJQbfdaRBm^q;Pju|l`]tyX`cRw[fCrTqa|kjz_^mXpq`]][xV\xcn_v_SMqfgVXn~\[e_rmiBnWO~Pgfcmi^edvGFdaKm[RNTUulhTtQOJi^bH]mS\WlhPR`zibskZbmPmFTT`G|dTZ^veyqVJUeU9dYSUlz`WxuSqcFM[CmbbtF^pW}Whz]ZpckY\HLtYPskoImLqrEzgZcKa?Z]jemu\`gqcpsssSXmufLpv`XkR^TT``TF|egpYULcqaG`H[X]^ebk[GZLAKvV9yT0XOlOr[gNVPedTr`KeJ~oIK\\WPoS[nbQbfrrjHmWsUf3g^r]zqSNEktA_qA`weDefdHpMTkTaickoj`\~SdjqUcLWPUq[S_Zj]eZNKThutkRX4XRKYgWVRSZjnfN]KTeVYb\dFJ[eTafCMgP7KfnMGSivIc9wP[ImP`;[_fb}TdB[X\\gYvTl\|Tj\_mUmXaYX__\PTR^P[^THj\chQlomRkYml?lZO^irw]h0hNYdGejTCtmYsbiEJhpK_X_BsI\uVldgqWbaEElU]pog_hlWgqQ]VZLTOi]fPTi[YpcXb=jZ[C`KaHexP[OiOUXffzOVOUtWmWbec^dML`bNDcOcQ@fTr`XZ]mwofWhaa^XYZgMg[veabrw;QqYUUmXlQ[IU_opfl@tm2[]KklaTapWY`TonOxvn_]talub{fVV_MpdcQgjvjdhaX^e\`hdO|ZiTQ]MhkgmhOlNg\}gi`]iHySssZSa`fO`]ok[n_hm>VoQS`XWZenXfK`TUwhdZ[mnQrj\V]]RdFXTJHZnbys\lRdY^l]n_Y`\vYSZh\{g]aavbu[V_oPJmjcME`WZckarnpoaWSfWmZVog]_fRki[n\n[aqRCTVbguTxmefPcQYTRlN]mfnUv}nSV_TmaxMHlkgs_PeuNrgRYNVPLXMx^vOyg^FqPhipdmsq`^tXKklOmkYe[kSmxgao}SS[Tnio`kigKZ`hdXvM`QcVY^cm`cg_lgjSjnygUidjZpJroVEnUnb[yfjeq\_Yt`XEvxPWGSWjaXait_cXN`d}`RwrcW~eKgegnohgki\DYtPblEklTYuVXSoa_c]]z_UZj\hbtpKfw\tozX}W`T]xlhch{TfctgPg\VVb]NTZbTaelvEfN_[fiswY\i`eRZf]^QkVZbzTqR_M^DdYQl[VeMWbjU^YX[ub\ituWb[U\]EPYK_mtjeSrMoQHajibc^RutQN\M`[aue`qdxijS^~bNuwsYc~kQ_ynRZW?WPa{\^vW]`Wn`HkPd^>PcaGRY?ge\naqIcXepda_h_mEmm`jrNTzpVqZr]jPf]itSmJTnp]ymWdi\]oi.hmsgmMrb_^ekkSgQjCcjeeZsU`VWgbNPaVsiTVewWr[fnTQ_cINN{5XUam~S[UXoUXkLYP\q]\XR`cK|ddJIQV^~TWblNEBY\_NZ`COp]`g|WJbZeXQlZWpnlGT`hZvis`btIa^vN`XZhEIabnePUcY]ksNYzizULfGjUziNeg_yfqnk]jqYuKUoeN\PU[u{]bV^juhG\`ZpudSn|g?sclYYgFeYMqfoSZ^Td`whmQXgupxUM>kj]g]{TdDlQaeLlc_@WqRqzHWRXjvcphld\oImSNYYwpZYySWpTL[VfRRr|b}\etf]WTO[rFhsN`odd_]taZEczhi\aoeN`Y]ag~pM_amYrR~mhcwacXROfrnHRm\T`d\bYElefw_XwK|]SUPl`z?efPZKEU\xSzRKbCZlVTocQ_ScWZggYdIFZxJX`W~>mKWHcWadrUhFKdmZZP?Nlg_\McL|;xMLAqWi@^oOr=kdjW\Hj}bw`oWT[jXVAB5WcUeiW^rx;VLATkH_O_PjWAikkYFniTGPE]lo\jfW@V`U\cdnmVOoba{\[i`S[[_St`ROl[NNei\^mz4RkIS\cTul]|`x]dZcdUriJTRYhbNda^\kggY>qOll8eUp5dOPMoANT5jiPaX\o^Q^cKXjYlVh\9TaxK{LakqLZS}\Uj@Mdd[Bfkl@`P^hU';gJYLgvAXsjj[wVdNVTHqcbj;XBaLU^T[tOU|hPRhzYQfZNr^d`Wyty`%kwFve}r\|EdBG?OB|SQId{5UmO_MqZcJedBbDl_L\c_\hajBq]}_X>TgluYtO@\rh>o[Lf[NPYikZfge?[qaenjYln}`c`l^Inff_GF[l`vg_nqxMNw\k]yq\|nZdcez^?]raV[W\mW`QnhwfNNP_Mzk`qPajSedLXOTFXY\VVe[ZlOZ^`oEgexTQ]jGbmrHMi]X]Ybxozm_`]\[\jfOoiTYpVYk[]NxYTXbJVehayb^lyQeI]z`bhOm\r[YSy`u]WTTZTlXovxrb`cqVNXLPMXSPFS:vu]yXriVof]VhSOm|pdK`tpXZ]aZmW`fPZYXNmhZq\o_lQQimTunQJIcBYVJpf`_G_\dnH|p{JvZ}OsgX``sNTJVUSm[[@tfhU@f^_bZpoKlkBcaPpoEhEJFSgVRPnrghetXVRTRkuc^MHtuNbVit\AedW]UEOrsSkYWGa`sBh`WGrP]ddNhriWVtdRjSaYYhjoDEeg[XbbXiJVoEZfIam^psrtZ^]`RqahMU[P[etF~ihZOfIPT\k`Nair\TbDaCEL{LZhkTldlI`KfPpZFidUVSNV]PXo=jmCl]NSD~zYTP[\bRGhUY^VTiiUwx?UugRrCl]_rcX_MELw[cXbPQ\XbpZ\SiFZQhv\YecjP]YYZQ[SJXbBx|Q^k^huLOMIpPrMKwiHiQ_SV_m`t]YHZUwHu`[^{_XVCN?LjEnOg^k[XfYXTMRVUVctaFlLL]esUEWhJtORjGO^`_UipaHf2SVTbYhkt_psONUemic`ZqYtK^dmYS`WlqkhLQzZ}lg[HVpWgb|f[s\PfVaC_KmY`c}bgdQQb_nf[ZbVKNgYxgNQRjwjefyt[d]9j@wvbEjqYQdlt^yJxRewQledTZ^Z]WEhybTJmxDVWfnytceP[p`a{UsSVttYe`HQNaY^L]lxC]JykugXw`nZWdYaotZrolrVUy|dztexifVcx[KRQYq^`:qucTaX~fUcEQkdks\_y`c^cbtd`vfqg`OblVLM\|JfeegCYTmd\RI]V]at_DPfJGKcfzuYbmrgUNN[imN_S^hywaJFUr]YHc^d[cleZFGflleTVSPPKLks^gbb0oge_TaJ?qPrChfifWMWaX\Ib[dZkVaaeRqLY]XaLcjum{T]X[GY[N_h[YkSN`fiel_{TbYl`JZb^f~OPUKMh{f]usIM^QobW=]SdCGWDgOLebWMZd^aerng[TaZNreg]XLQVgMT]SO`jZ_Y[E_dPZU]uiZNknlRXUZYsXj_]oI^mWPc]SuelS`ay=^a|[QmdHxf[gePVjboZaUnM[WXlJh\Z|bYrKg/VkjPhrW@b5M_`M\We`m;TrUP\e]M\g[cbbv\TcxpTRKNjTuSO^Xazbg8dDTbPZbPXvOOaVG[vfVTU`jXk{kYHto?^{RSKAWBUrPcqVfbf^zdeF~~vieKMTW`b[ZYTfrzOQasjmq^DvVNXw[l\ohVWR[Dp9YOlYaejevfjXXMA_vghPUwuIleiDcXnUGIUUdUGLLUMbPbsPNkjfVNjd_=\meAuTjZ{k}Fel^r]hmbdXM]fgsSF^LV\v]mbUQNmn]ht]ukPfJym_ePTcse^vV]NjoiyM]jneiulQf][YalZUnY>`qOed^f_ZrD^aQhiakb\RjlyK[nvkTU}vKXkljmjWQNWW``daMP~dmg`anffaba`Xk\NLCTc_jYUlLpZmWXK_SpLcU\:PVeLaBQjhs_[bjmardgf9Fmc9gPsiePmOI^UNaePPmknPtv7pJ`NA`gUOrXTkKWdPkbWcxW7YSUURzaaRrwWn[SfX=WDHim`lzmLlhi6QfQtRcd^pk_YJ|MDDsr]T\qYYoeYgzKg[Ha_o_\aLilek]ObXaiMLzVOqrhbOe\cZZCTT~_iTe[_V]fO^ja^cZ]Kgs\t`gpUPcoPRZ^\XkU_\RfiJNg]ppR[_oYWUiml^SedTId`KeOzoLsL[ZoSrlPOPduj{]coi`nyeFxT{ViajtPcnfg\HTnDDYjZHCjaUcVjeyjckyPYb]jih^YKyKgrepd]mfeRGh>WyW`fv[bN^hLK\qee]rEua^i_m_O_vbQkgPrmlmfkjWUqZ_W[f]ZYV}bQ_xuTZ\Fw`_^hupJhe]jZTmdMhLOWMpbcI]F_[ToOTMU[LFZT\VaPiWa|kgr^^~yYeiRfdrcth^RVhYK]PVb^ib[TWfgan_HZdfMfbnSRYFvPaDNr`UUelYOsVNNckTohhjcnFI^W\WORkdN]yqOabfZThjfdUOzh:Z^a_SQpUwFITpJY\efh_{f`RYtSXPb`KtdbhlrRcZ`KJsbg^Mmn|W[szethiO~cVKtFtgIcLZk^ZSDc^VDt[QniV?_p^J]cu]tnpQeJSWiSoZXQMuXZ{kbWmMabRiclYLdM]M\QAThwvU\VjX[Qk^dkJRmSj\ROPV\gIkeslBuN{?]XfWm_T^Kct`xaepXOX]Nba^XVWXQ[ueKvXP_b\PMS\VZpgRjJE_pP^z>OTWobkYsVXdkYe`g^`Ff[[[RkcjdVaMsD\hrbbqocFaQUTYidWV^|jAki`PZg8f^Md}>tnfiPR_Lhwi\>jnYOmcIrxehfZfkoXUvWd`XLuLh[ZvT[TTJkffzwThTXb{aWX8`Xmt;htttvaYo^]ILqo]of_NeWbLhigZW[W^scUkO_e\]NdQMdKWTzm`^mmVKoSS^vR\o]MHRIbOVl^XM0XHXUg8bbroQx}QeMV5oV]}R^IKWI`W_AZTP_lT\GCZ^lX\QwPmf\WZbQN_wLQk]UgLf]TBQULPdi_g^wtRaNcaor>d^M[XW]tpFMZuERimlsZmjcwE|@c{leheeU[e\vc\TRYg[kbdhNjMTULhemNgltckop|IXTLaSY\ivUgRP[l^^ke_bJmjoRY[a^ibQQ`dl_fobeweo^iQlEbjPkIbxZYWk\H_miS}Ws_]gtfoU[bCcXepE^i`|e_dpSiYZDoPcS_Yg~WN~ds|NkW?r_mcVVyYEZg>`fieKV[Ma?u]qsDnG`_YPYj_rW]X^PvWeVT^Zn^~fzWcSQ>Lcd]g_~g]wNaWIsZMuoMTgfTyhiTegeOY^`Xehm]_c]U{vhyU``n`dP_}fb|klddOFnoOdg|dP[`JhJO`TU^`Sj[y[^cdj[r_]AnSQQnYlbhB`h`ToSc_c^`wN`sOieY\qIQdNa[}TGVmYhXcZ^dXwnSSR[ccZYWj]Y=Smh[K_RRxbVhuk`jHBXWu`_U^lke@[ka[[Zd\\\jifTioUZ`L```kcXOXWS]ylMxzjsqj]FZhl^lPlR_Y^N_]NVYYsyHC[M|dkc{jh^_tXwrYYRXsJekenPL^`_K]jYiscOkbtgUByirjNW@NliZydMKSf]RGZswNLpVd`pU}UgnxlnY_nu?Of]nerBi`OWV[Mo`jLF^AQvilqd\i\_ihhcGPWcSW`dQjYlYK^hV]zb@eqp]`p|_YgXNQ_USghjDcpnYrhUW\[beDWWgV[~OhLDHhdMOekWah`dQg^FUlRVx]fn{_^lgSemc?]\eWr{SdSdLkYO_Os[KnfZzjbbok`djaNqeKshjfTcUQTNa]neiGM[tHQb_q^]HfaNduo][sbdb[neb\gc^nSlep^oefaYlk`_jdXF^iXXo{[WgcdXG|ePireT^_s=r]XlhKrrUZi\bQt[kg[`AgqZeVkpGqfM]M\T`GFVWalW[pSzsjv_BPLxoYNaSdcydaW]Z_MiS\RbTESZC\Hqt>onVahUhdJwc>lWij]sQd<^esX\dW\efOUcNcQa_VSz\V`kQ;b]VfzacyB=dc\eh[H?U`MRb}m[PZTnU[e|mdh{yawX^a\mxefhPkNRdPdVYXOW^GDjmBXUjY\^\P{}Tli[`Lca]iUZ^o}]vi^ajFa`idU^lb_fVamjakbp\SdOfUQOv^be`R]jUh`VwJSsXT_iQMXURW\SqzqsJbpMmwfUT\njf_Xbb:rxeliY]UUc~Sqrwb[ozr\^TOlPUSPMWdRZ?ETb`Z_VspRUDcS^`y_X}|dp]mZbOcn[fdch_|U\MiiJaRe^\LG[nUWQ`p[n\`UV`fLo?cgTZiSyLUiboUXPw_qVZSYc_f`LUIV^iRfo\vxU^icoBx]_DOPR[`q[UWIQ`KHYYPOrZBgVmTXrdkb^uVPkMOmac_ZPLXZSv[cT]ZKHRcm`Z{j{WgndPNe]YmobZSdsRlV[Sg_Np[WQl\aY\qmTWh]dXScVkKN]Lo`^apPiJchL\qNMbIlUFag]HO^\]Ysg]V\Kc~x]MLLeh`yOgUL`_ov[kPK~_\]TiQIekzarXsks_`EZV_ihdmXe]__euGbVnG`jQbVv@_~aEQxKNmxN`pQk^|]]XK[ng^z]NaJ[K_IrPOnXkgXXa_B`[HN_L\p|O^Ai\?KCMyLBTQ[|L`MFXO\ejUQX@S^pKWX~THGjgskQd`W_heLgoO\KaQjupL[rWa[lSX^kUN[hZVYfZZbThlCizuQX^6k7mnwfrKW]jratYFerfRhzpi?dbLb{TVKbrYvaUaiacKjc[dkQ>XgOhQZ[VnsLar_YKsd`'krOp[_ZbNvQ`juQulGbtSTg^UilZQr^qNbfscmo?xr`hK[a]kWd[|L_Z?Tnoac<_\UrtI>]VULVZsd=fe`lt\rV\XJKUl]f]?ZX[QdRDXjXRkLmK^i`vXU\rHEmunSLCcUI^Gfd\bdbJeUVYpRQj_^[c5OYX_i\wdLXQOe^QlJ^Zm[TIh^h]]lZo]eHbIamVnoF}`mfU_kIbbW{^ljUjkllmXPtPFe~>TVpythsuGtLUX[VeybRXkTWZn\a{yc]jON}xSZdnWhfnKK]_Rsvi^PSr5fSa_hw[uThWNu>\eiVP~L_}anf^cqhdlJI~c`cr|nbkihHu\AabG;\W`K[pSfr^\y]JbYpW_{k`zueFhc^]K[[aTipop^Po^OpxgK^Y{g}gV\nZneTaMgrckdTjTWkRZeEdctCXLelTPphg]h_=ZeIagtXc_flie~W]6k{Zjgo;\Za_eZq~MZx9X`tkluIdiFtPfj\IaiamUkjw\W]CokUGSIl[vqNBXZ|ZhfnDWSiXdkg\ddd[dMb^Y]JhBkKQhVhqeJnwddVTXfSaI[S}UOL^NhfWBeEKg^>QIjdcdtiSYPisrXsMQv`U`gbJOIOQsK}`c_rf[UZnWYNYS\WNRaoWGkhSaHv^`_kd^gWN_[nAk^z`jEbEZX~OO^}SlcfjMk^w^k{x}JR]jV{_aXYYeMweTL]QUf~unhoRMmJVs[6MSwkicaLkU]]PB_O^MF^W\Tp^fPbXqskqKjPhPdtK_Iad`[NBS\{ea^\nTlksJT^kRYcKJEOhm`VLfmryGirnR`ZsskmkRsIkfr[d`Nod^`zobsLaZNoaUUXQaeX>\E[AdlSqWZg3gm`\aYrZPZybx@UcNZan\di]dnubVkPH^fJaZ][cDVRUzlbAW^hKZXel|||sm`JaZjh[`TTLjleF|u\kdMA_UT=dl[oXbNfgYjfR\N>Td@|lgU\YGbiV[pob}liZ^W`ueHhcanFgZ\t7[c{W:NOV~USMK\frMScr{X[Z_mf~`fP|tVZVtd\jdg_ObgGLx:FuVTp@NFgfcxJtaZ~rNOCr\Sj]nzUcX5q@YQ^o_Qe~fJYTtV[cOpigZjE\D_qS_?eVcXhM{ElV^RagiUkvkcdkebZ=`]`_~\+vdNRGIBKVJLeoXw/;EyJfFNRcOXe[dY]iaijMzTSq|<\cIsm\PzZtgujEWXafai_\b{gd^jcwMCUZJX_Xhtq_y]hj5lilXc\^^tdth^SbXZ]k\nLHQaXQZNpZjJPdH\lKV8ka`eFZy{jfNgONv_doP^mU]pdO8i[]RawTIQO`BbFVLtibiCjr^ejhaamb6]^d{GOhcOXiggRxS[9ffVpIa[\L^iN^kkUSM\WeqW_hDtW=Je=n]e\arM?8DPfhW`PfuSicah\_RP^:TT_S_cqXLs`?ee_C[d<=^OFM_^X@kD}fagn^B|MKzK~uX_~QN\cTRm[[n_C`LaqNXmb[Vg[\WdSna`NsJOp^hmFoPhUQNI`dCRdFkp]IjOYVb_ZIhxOJ\]UEf^RwRke^qvs^XMQ:geSfWMhqahgfaSoucNZYi\OkVrQSIesaLMHyDe_]SbfQocTJd]POuUKYLWVZSYVc{nSYM[JQ^PG`VZIqqRF^ZdaXrymof\koe\Oz`iaZhjbN`IVS5CqY.^_Rf=to|W[vOijzYMDRlbC^]TWUXZnJf_foPLXFKeIwvTNqtYOQaNKYr}Lc\efZb\mP|[rbOCOqVj`cKU``N_>WSRaY`]OZ`\I^xPAXIwHgO^igVyMWL`_fr^_AbcV]i[r_ljqYi^Kqg^aYWPZsPO_eVVTaDjOjXpAioZcsRw^P[k[K\d_vdsWRb]S|kUevZd0LObifXiwe`?kmd]oEkIZZ6LNVN\DicWeqtS{^L\RdQc{HcjYbdP}afZR]di^LaN{9o`EOgS^ea=XDWexpYbwnaV^~hXgPYpkMpn{^XeeZd(YYQUqgmaZvW]^\oZ_bcrckTPR@H_FMnVF\_iIIybR^aUb6p[qoKQZyf^h`cSZWj[UL{icz[;[Tekhhv~\^ZesoXXj\OuWNjYEHmwnuRbg^OyuwqeN_YHbzTT\uT^RzbWiM?dd]daX_\SNnoZVXai[yiOiWbSd[KlWT]lZo\FQpYpAYXX}ZcYaLWUJich^dsoV_aFNqUWbP?azy]edYv\dpx`a`^[m`RaF^mf]I\||^yVkplQH3w]\_z\e[_RoR\Q_X]]f?eNtlb\U]]laDceYoehGbaxca_\][PKWgWaFQ]XJYeYNaKQmc{h\gnmW_^mo}ihlfncVy`J_bi^m\_V_WkmbgMVmhB|cTaeoj{RZf_P_UWj{fcfZ\Wh_{dN\bTkcdItfafmk_s_^ndUcS^RQ|SndKhectJvroeOZWrrFuYxdynqlP[pY]\Ukn^JZZawXWxDZpbPYgrdwY]Ndc_fxyD[TaXr|[QV]4JjH,4S]dTycxpFeR`iXQNujfdgETJR]j;omoZjXF:`g\[Vd`mfZvu\biz`g\ezYNXqbhIdmL\OLCclV_OJ\Uk_NoEjjYZOa?F[ntxTJGoXcNTajZLZmSSuf_\`X^UiePt|UM]oEXh]ryO_TKfs[]ZgQ;cjQEuQM\k]YvhxFkVn]QBpVpvwld~c_ZuuW\\`r^IWGVg}Z]DJ-]H[>ZY[GCXSshdwZ3KpFqhL3NTfggY}bQcYXeAUqmPTjOPOOoE^jNbgVW_e?aIecicXgkGW1UT`X]n_zIiKfxX]IhWSujZZC[tLclVmB(IgtcmSdyoDwpC@pRi_`G8wR_UQTnZogX[_^g[wd:Y\hOkIZt^s[x<\~JZWniX]OnTjeLirfJksd[VX\eHVbvPXYTFDc[lQTj}J1XtPOlTCYf`dYH_Zch_JSuYglkXZ_UYfOio^k[KgMaijg[VK]U@lmdblQOVaatZ^vOqCRSfZ`cWCL]TdRDMf1OfUlZ\OZZpAF`Xt~PdWnPZUib`dK_qJbJ@b]xhV^`YqOq~YG`iIiIUQPPTWlXWUiV\]`^Fh\ljWlm]_Pgu^]ce]XecfSWNft]^V]am^n7bYdliY`X\uWVbDsdaXh[ccX]cdhN]JnbfV_jU`ettDa`HuU5bq[h@TQwXPILoYjkhN\\OPZlWjUPhfTTb\UkhYc>RW]SFEWPQ`og`YYhjie{OPdT\~edKWRlXmX^gcY_hdNn_h^W[aeadTZRu`[V`SVZci`rWiggtPp^?P[`_\L_VUxS_itd_MXcc2_bkxgWpqb_TXku_RqaWgwT[id}RreVylBTr[X_Nfw``cnPdeO?]hPY_VrgPQYHZPmvY_pjXdUf_e^QWnk\NEeefT]`X`WuEUifv_[NTgnlPYTb^tWKpaHwJOi|o[]XCpjAhdZhPQKYZs\odnVGcmKNXYaW[G]MrTY^vjiXMcbHV^TVIaR\tRKTNdkmTgSUaY[>}efMtEMU^CPptZNnZQAVPeQEaga\gWL\aQQQYmdQb;Z|^neNZ\][bTgQO[SamK]iln``JkViMYbZTxSVeyAl>mMs__WYXSJb4P|Iem5^Xadd]H_]jy\Dj~Z^N_d|m^c^WiRQYk\XOcYo[5WmV\^FUUbj{`WUUDNnG^kZqNYviPP\oPTUK[b`v`Y_bPITckQnkfsbU^gbX[^XsfdW^JP9iTOUlX^O_ozjEG\FlCoLVT\_YlSZjPBfzWbR\cpRRDRRkNJYT_o\I_`,V\[cJ^@g{`[>mceMq[ffElYaoikTSTJZXitBFTdhmO_i[\VRws-jbcUmnlvkI[bRTZqSga[^_Une@_hYthWTOSZeC]^}J[UTOakn\GoV?TM^NghgyZR\Tj`cbO9oXyhT~fTGDhLv_]vN]`Wtii8jT?mhR5a^bQXzGWbBgIy\c^YNDsqamWiwWh4n`QbNgZFaQNho\KToEYPyr}cpvXomiM^JubPTh[g3f[aUhYzX]tzSStYJTSVgtZXkewiVCCgxie8XQhkJMNY[`6KbeDIn4`v^_eJkOhgMbRIQTg[uEDFQmzN[soQlMjl_B_VUYF]IWPJF~[`b_6tRRo]`_bQLworT`GcbA`keXd[n_qkRcy[_kVifWwvbM^~uZJfb|xLWpqKLliNRi;VXbIJYo]XddXOncVRdbo`gu\jSaVP]iQ{gfcftmTmL}MOj^@N^@or_wPK_hdYgfk\^JkP`~{ggedLelZbQ^U\|^`pQ^Tau]o__PcgOE_t.Kr_`rMibYp[UVPYFR\uY~Y}OlFeecTkW^O0VffWHimWM]aPqQW=dthVckqq[NacjkPiZCba\^jk`dchX_hV9_lJ^eiaoE`zjgsEWHXamcWQWVTv\_T^^QtYf\[aVbYulsV]raviZWMDWjoYLRnabQgiuBmjq`a{QQyO]gp_[bSHabVTdlhtiYWd^kWYnpkR`ePpQxh_dhc^qL`|XXsbhNVwcaPcP]ycfyUtUnbhbAsbqT}r\=lRYWbru\jNb[_pllzshM]gWdncVjfkD]\_P_RwQfg{kj{oW_`jlZh\5xgu_TfcZLqdMolm_uSh^b\Zhe_mKZwu~cqd`4dIXXvpauGRiFfSz]Rf\[tzl^\^jo`OsPJN;JmYFTgvkmVbYZefKbK~nl{bl_fSan~IJ[MZ\XShYp_dYjWbKUhg~m^PZUV[ef@\Q\wcU]P`XbNS^epcAyQjvewhWR_mWv[XXZgceJfeA@P{_ncXneqwaZhMgSW7i{OCVqV^c\KiUKqXaVoGSZS^d@yb[oIuVMj|vhUlghrWPh\hEoiFfakWp`LRLheGmc^OyVAXnYhIk_Pv_hehx[yuwomo_VqY\SsZ[dbSAVaMo^J[m\SLa\LkdlPgU`YGWeGHIoTUNSIFnYN\u=]w|SSWb_pTc{_[Odpk]ZaWYY]jbgrnHZpVPzHv_mOja^T[rgJUb\`Mo\qugZTnW9Pqhlqh[GgMhYhjjT^OSURSMaAwGcSSFiWDCYKsfi\T`YesnYyH:jPZvb^|jebLWKSLTSXbTMQ]UZVNO`}YZoXRLVVdynX]\oiiTocAT[glvK\BMaW`TVYVb[Gm`[qeoj<\pN2neXamljj~RZK^cb]WXUdW^]aizOVvITgTcHYdUPG[YZ]~`dWI_y]^]tEtkrhGAM5]]rXV\FRFdi^Wh\MYue|MIzZ]=dUBuKaJ:ya^Tc^firVdybYhdqhDP`Q_f~<\geeWpbylhOikXTkpQSjQMSMNgWgZVbwZo^`TidR(rIX_kGp;n`fH[x[aQKMocfcYQauaenUeWFwFTf\ikTiqXmqPwdk^^FpRZ{WtH[L^;MXc\][7ZlbBXRhwbLZ7:`QXIQg_yPq6epWb@]V?RZE]ZMYikP1aLIZSqaWR@udIj>^0`X[MUU{6Hp[LZJGZEU`KgrvR^a_e[Mte\fm]VlDXcb_O}eg\gBakeLc]uhR\\]RliaduuFoc]bkj@RgrX`QBUNP{WYTeuLOsgnVRpP]^p`KRZQ]^WO}fdWo]cjQVVq]_\Le`m^aVVTwfb\qaiZ|V{bQc,U`ZRN/lmP\e|`kakYwUoJ[k\Y`kx_n\3fZnRxO]TwYbEZcLZZcgeTdyb`__GQY;gJOQqq]`\v`QTqLFobjxaj^WQpU_a@jXVZRadem_z`cYnPIm_wyaoacSUQUshSiP``N\UrfTtmOrZ[gpcSQq_HcXa^X^_jrRSRgYaal\aUk`|q\ey]NdcOQam^HjVgqoKWn^WmXNQeunjlLTJj_Bu\UNJfasmZzXSbS^kXNqOdeVgTGM[GSYapX[R]`L[iKj[TNfmg[nacPNMe\pnwYPrDLUUcdU}JKZOkyVvdzi?[Qk`b[_rMJjlzuiXASh`cS]jt^l]il^kO[VP`^luWvW{Y[qwaYe[TA_kZ\rbwUCMMW[uMkhbOd>]pLZSsf`bbGifZUP\R^SPOrb{RuIWLmQYyP@XqQdiX[ONML\IYijjXjcINVLTkffPv\nZddmbcYT^XdjcdaO[Pao^^lfkSSrpzuhgp{hbqgZe^oNWlXw[ZnW_}a|SmdWonZhhdMggQc[aC[jYaOmRGaTbz`uceWheTopp`bJjWhj[S_mo_Qjqs>[obGt{\J|cIeeuceWiSrUuaIQqInlh^SWnTmXZou[R|Ob[WltzepVU^N]d|NqdY8Pzo[kwd`S]\RiTaPt[cqWNaapRKf[ijPnFVNfD~X[]dlNdb`S^\i^Yde[ZfykCRxw\G]hTUdchnriNbaVuhNeWGcNZldZWUo`iwQVUzKvxDPe^\zOOp]ibiiPYfijabmjlZrEO]_V^X=AW\iqIf_qNRNT__Rl}NDpPcoY[NSu]mitXeQ`TRJig\R}sHspxucbku^Frgj`NXahsv_f`eDU\\kldt^lZO[hZZ^qN_][o}[cZWYVkQTr[x9Sokv`~lZPL_GaM][ZWNsadgCo`[}afZOd~`ibJe.iRNWPr_j{bWBUD_X`etRV2Yb[JtX[dA_[K]`NqZZH[^F`kBrrZX^OfE^ZcWh[iWZwNI|w\LbzzcAGZcTPlweaOD]p]jm^^bOvqftKI_SqgSRiOV[jRPUajkH]]^pQeEsV{UUWVJceOdkfXeGXZ|o\VrdWThbZXx]~XfaPLoqfENgUyVfUn[XMniXQ{eUV(\J3d]bfQJKWo``WUVn|d^UjkL{jPW][bZB^ya@yF_r_Y`T\q2@[xaVn`eQe^Y]SmzL}`f^mVd`nEewa\RLSdMXuy_PVSM{ahI=JljiPJQpV\mF;FaV`hTP\Q{YSw_f\~UWd\bjCgM[\mL^J^iKl{eabXMeaUOT\bBMngEODCRZZKS\amjOqvZ^YZd[fP_f`VxgVMa_VzcjtEU{]w\t_]bYqde[Xcb=eUX[Z\sWognsebnx^pq~\XDTO]YgN?SC_ENaNdlN_ObWwmWbqrNZ\Pd_SkF{[E[YqUU[dQhZqOkR[QWRkfFNWfozKs^IRJ^nVOcJblrP\XEMdRbbPrD`hg`bNdP_qqQDtZKuh[tP[WNOJReahX?xyjo;doUy^S[kcKf[lxOR\pb^d\[xI[chpZ[cuYvdeGlDSvQSXjZqzO\WSPTFi]Ksc]MfurqMfZQWajmd\T`eV{RWK]nS`|aHYmUeNSoF`W[wlupaB_PVlytUKZ~QRFWaBb`ZlvYNzTj_FKnTKqQkrRndOhw[`l`^koaaTYXbUX`Fma_dXtYXz|nH]flubl{h?SM]]_djHxPSk@jb[vagHlkmfV^VSxb\sKnJWIYxTN|_cuBs^xIPZfihuMh}MXFmjkLxsRXVYOTZTe_o^_tUjgHVuX][CbgoTfI_eYWgZ_[3\i}[nUJ[XKV|iRaRg\`^l|UWnI]S\zTeW]ty[`^Yj]oUsAq3cZee_uOINvNMST[=MqxTWvN{rTOHF]U\XTVcjYWHQoNP^_OrhYRIjhYCjzPRVEaIMdn``h[oVRsMt_XqhVsNiLM]Y`bD_lbFlRkWwbaEK[bFel`e_MRcjLqZgdhfhLufNJ^^QR|L[h[sZXT]ORYniedki^]h7p]T}wxdP`hRoNlu[d`X~qhkjPXfiqDs`uP`S`kCqHnhSqwVRbU~b~]voMHVWF]UXW`lm\hX\{ixbtzQ>Ydvf^HQkrl]FlpVpZz\bQ\[[HSSUTdTY[LSVeyxbS|Lqrjfoxofh^Lpiiyc^]OZuHYrYL{i=Q`TYamYkgeYTS[][TESZwjN`V_Z`YPOuOo;BkgzsZcS`\}kTjdUugQLzmXnJXSWV_M]WTbZ`qCq]ZI^qr`Lh^oQ[WqJ\hYtVcrmjbq8dT{bRclua[YdZqcJ]y\QUI^[^qadTrOiokUyNZ[SRbjXUvVkajkt^VyU_KiXtaP~bMhdcdglqPeINoi\k^hraN[=jg]d^R\\A:\mJQVi|NPSap[ArsTDTNC@hnrhmzdnxfhSS[U^dx_U``W\rkMXha^Tt\igG^]RSXs]sc`nojZZdqK[Zzz\WRTFWLfjMXVpubXaIi`^MdVaJw\dR]QWhI\icFLfjYHnfamtsYOTaG\eh]Qah^gofe_kYfYuXet_l{{SfmLQl]VZUXd\_L[K|gBPpH_shmnPsq[l[NbqR}ggO9Ub_]nGUt_rh]LVxswVobgvUKcYZWHZcg_Q`GI\WETgSTfq^GTYsmIVJ][wUerkUdftpWpgVw_uigZXdU^^^ZTknhger]f\RexV`uRo\faN_~Y`uPni^XTUlmRMfb][[TXcc|b^F[TxLPfg]OV[hldARgKR[eXQGQfc>hRwX_]L`\_Rp\hS\}fjr{xefzvjpwd]lSicloXVwucOitwKQZRd]l[ISRq^jnaTo[vhmbwd\kZ`r[YOc}\Yu^cfaj`WrwcuWA_guVYK_Mg]|[jkDLQZABfwZ]dcVX1ZZbmabmiia~XrVz}Ui]KYx`ejWkBiVdnODmitbcUma_[Jj[bJqyWdoil`jpZf`WPOm~gcKRXucLZnvWiN_Z_w]_OgtTg`XfUU_clODjpNddI\OUQ4e`xv]ZV`mTIx]i`gZWLovOI?jYRU[d`Lv]fcXt_c^wGauCflpumpmhig]hzTJfZ^ZP\raOlkoJNPWrbMQ~RtYMUXfv^hPbrMfbV\oYSoqVRTihOoef\>cNJ^ga[P[;X]jNpf?o>edUab3]b`qvoSPZZ[j]Vi}\qFVVl?^jVR`U_QVYKgWliYbPjw_>S\^[QEVfKXUe\t^OyUPFl`Y^VaZYhK}`^RI[^VLhBiSybDafwkhZBUoZqZWYRY^kY]ki`=kx|K[niUHWfXReNdiV|mefZ^W^;W{H{`YWmaV_QoZikaWuGVM^WYcRi]k[dow[bmHbXJQSWuTfZS@afp`APH[guUbNa@rPgb\mmbh|Q[^XIcggWA\eTP;YlhBT_Z[[hQw@npO[Y|y~vzhaWeafYXMQYB^kaJ>ycvLDTNDFOUH0^ORnDmlpziEM>UE5ZrZj{pcJN^FqSXXXoOjPIoiWsqMjGqjI|leQYT`JiUdtwZiVhto~[_EVO?n[G>WKNfgjVRVP[tTRT^cNWpee]d]VGaYqnbJjj[InhZVWrWlmqTRI=\sEjPTyoPvRPlWa[Hj\XCOyro[edZ^_U`FS`i^}]g>NG^R`^QY^MOhb^yVftGefVu_Wk_cq^kdbnJpeQW\]`{VZhAlDs`W@KiNb\aAP]NjxcQ\zYTicSQyiebXVhR`bgFkbk^9mzfSpcFX_VUb|r[X\sNMRdZ]r{cYTKf`TevOh_BOXeWs]LwGYXghkc_LePYSA]`Hepj`[mdrlV^Y|XCeuunfhTTQ`Xo[udq]SVaqo\kqkJKuUM4brpmuqeSlsd=c[P?FSMh3PXYgaWfgcYQ[rUEoUpe\[xCJdPXWUe]CufRSQod_nHEM\aT`VKaWD>b_SWpGmZYSsV{OJZUFqgz^\Bv\YRO@SGnOOsPTtR\g`UNnj{FY}kcemI]xP^Nb^jkSVWNO`ld]AXO]7[]zIhl\WHesQ[`kyQWb\`F@ZNgJ?WY[jjdolQLj\]jdhc^S^NCbu[AlPM^adi5gr1Ebh\_ik^acVY^QnMcGWKbWV_jZV\elUeOJiqjVo^ikQ[Y]_Wl6_KRChMX>\wTSvT|jN]C5^XsTaoanNRwaF^^OYepjKpSjQOdRIa]EahLgXqLhjZTk\\Tg[K\^]cUH`SsdZJgScbzJyGub[zYKfvQ~_Im=djbBuiMN^biQjqb{tr@jjulg|lxLYUWb]h{DumKle`OffVefUgbRmn_rcVawK]kUel]skJRomiTyaVX@Sh`LZaWxY\blfk^\a_JRKZ\RJK\MmnasjEs\Te~dBgTYAwJp5ngaZhTbWY^qd`zba{ta8jiee^cdi`WSe[WoXj]fmMLxq]aN[acH>]`ZjcmoaplZIrMU}\^JlYbNmadR^Xi@f\nDu@Li`{gW`]M?`yfeqhYY\iOU/~UdvrqeP^OX_\rfnzVggUjrl_Z`AsZSlkCPv`Uv^n:kmbbMY\|laJO^ERGM[s`jxmuxobLsptVTUk\FEOB`jdlpcXQAOgcnO[Vq^hO{BalTbXfX]eVloTa\Hcap{_[i^MoP\Tl}P[O^dQNQeTtjqck]Yiv}jK]ba[VHpfl=LkoNZjW\Bud\s?sC^V_ZQeg`]Z^lUmQYlgm`[WdddTcHxjTe[QRXbiSWi~x_]mZBGOU\hwh~ktKYoIqUk_qTbrvZd\Saeo\SX_adxSMRSOZgMTnby^wHR>PZTqnRisdDskF^Pk_laPmS^NK|\KdpNjs]`OmNp`YSqecUYLOI\i[r`uUuZZFfjb_U[ahFWfUs[r@wdSTccI^Ulep^QOjeKWrtTY`rklbzXEPeD`\9\mZzTnd]Kj]{G\RbY~OUQU|aUYW[oWb`dNl^@UpMmMbLGYhSubg\WXJhfPb^lGhc|cmr]^jj{bZZEb~SgsOmr\j=TUah{l`X[XM`jpNb`RcZ^nlX]\S_GlgIiX]g_Tg^[abpSRU:^kRaa`e\qpaHOt`[Z_lfNSiRXkN]PPLOGaj^[`TSJuCsaksjovSCTfdXqd^8gb[ucsds`\Kg]~cIg[~AURjQXVbP@ed[adchfjfoXonRc^a]Y9_c\[`LXZ^pClhM}rKluL_LTV`m^UcWzz[NLRqfoeLKc]bLYZvXV[UsoI_gYkfli^Ywferb]\\agEg\\YY_Ojd_cbj}z[e`~^^Zr`Ha[PLMpkghePbZE_brjIiU5]lGTNoleb^T\QYUfIdyYqc^dF[8Q^h_PjTORYvMg[NRQ^iZgpUDIFLok`>A`mkOKTnbYc\8RoYf`^b]N`{ha\UgygOlVp[`XQUZWOA\5e`IF^[Rqj|MtT\G^NpZW``nL[sN[yNOo]XXyaU\ySNiMt\XZZMei]hSz\E]ZcQgQgb\\NWsWY]ETvjiLSE_MkMb[eoA\Co]W_[kZV`fhQJVq`UMK]dZ\V`UnEdob9T[`x[mwSt;EnMQE`t}dtkUfCe_>RqcoK[avGOgHdB]^kUR`hu`OaRXhRCqQ[x`y[tE_IbGghTnW`odE^PVNKmeLbmbNDOMxO_URmcj]WS>G_onPaOSJVeb`kbdvb`hWdeRWb`DHo]OYYpmD\SU[qhsf9RZXOS_sqgE}HR=abVknh`WMXHycb]nMYLXZkeZMTiUUK`UUDgz=UkTVsk_jgnz\YSJh[HUas`ZgZQURSSW4kc]YScN\T@Skq]tNP]^fQafSKbawNWv[HMs:_t[Rli^jf[pqTTsValxskw[c]Q@t_OctpNQ_kmd^bGJEqV_peRX_hxkbu}^?aSnzFkQZmm{PqRi\]UWYK^UvU`[=UMynD_Fx_^i9YkfxY/AoZbQMxnzSXhZPNYArbix]`WGXUiUc`okuHUu]\o_`]N{]]HlAMPyTYZJn^?jfPXgic6hHJshcjSc8YhpX`f]eSBtkl^VMlIbjHST[`HnEc]QP^xcJD_^RClc`[h]aW`GS~W^ne]WPkY{UaNd}R``Qhonp`d|vcQ{nrJ{X`ajWUqvP\CTgY[EUOTwHT^~M`mWml\m`bUi^V]VpX[hSOf}QXXSeehgVb`qJ}WXCBz~hp\^I\jrp~dgrYhvhU[CZj~lDm`Tt^A^ZKqmnyhTUaaxnhiYsWbOaShSfIBp{i`h>iCJMioPYpGWA>jiP_7>^xf_xKlb[_hfWSmisclMdq]bUnEbM`nstq]OuhLk`hX\pjWKeFDjaveh]OdZs[cfmiLvmgl^nqrRh[hVbg{q}`uXQbg{OXafUFMlZz_6ZNv{UKgaWSN_pYr`8\\hXV}lViPabV`QeZh]M\gtncdtyL_i\]cjYThTuXU_Me{W[TcceqTqZpqapEnUnNN\QSOGnvm]S\l^mn]UaVQsjcbT{Z`yra`~Ug|uObLu*sjmkxYsjSJFQgPcRY:de`bNcZvfjw]YpkivuXR\D`OZFNjn\GyD~cESGTgny_ogGXIkjZvaYkYY]`V]TVJb{xR]vlWbnWCKq^fZ~Nq~=ygoZeZuQ~^plWZibiedj`_^kioNc\dpojhoeiKgZgXiOWdTqWUhwRf^]ch_ZG^dt\f_SQrnUTSdlmk_WpkWBUDYI}_^MQ_gHf8.RKrOl\ibgHrnQ^plskdAnRmbWUbeXYahclXLqOWo^CYZbY\Wnkc\R^|nRV^mg_[eUNfqWMvn]ZZRlv[OkkddlZm`bP}`G`pxbRXjXa`XTyYf^?p9TlxmLYU\\[bS[\k]hqQgK]m}uXaTnB|IhbVO\UTgdbH`Tyn}rZPj[dc_jqpmwpY~Zwn`EG|`}q_faubTesa]h^bJnsNXsOvYVmbSd\hcNijdeZAXAkuiHC\laQcdcnXbShSqY`pXbikhebaY[d_^]vjxoyLY}Cb}=xNZkZg]xdOgnac]rLydhgX_SY^FeTSaj]L[so^cdkRoiPOTl^`GgVTihpTWPjN[SadzcmdKamkV{hxTRWmdP[n]g|aVgmXgTUuSgKmy]XcL^TwEgpOidYhXdH~OqmoRV[{JZbtUoSRM_kOMdk|~cdr^iT[isTi^Pyj[mNbQc\k{UypZmZom]LMYdkOHgMjXLcbjo`wygaaI{CgOfNa^GhkbYO`nWVVbEhg`qgrg[obcr^ZtbV`I\L]zhmSyWi]i[XMNe\czF_ggP<`zl~@fFhXnsd}TiNVZEYpy_kln{\ndmhziLm=ZlYuB]NjNncxUOvROd`bcfKxdfadYjU_oJyYoi\WS\8dQufeWgaB{kgtffV~[gh[o]PTc[eNtRNoQZYY^XBlOYVng\Z[_`]^Qxpe[ez6nfpSghGf_OYi}UnkjO^d[P\pjaiaPsySduLpQUn[XPrMXi]I_dm~dXMZaF~[dFb{jkfljml;_Xn_XZimhiQVxOh`mKQ[cQiY9p_UVkjQfo]ye[^tt{bXwGZYnp_nIv4s|Q^`ZYHq\bucNYP^pJU\xy`MeZk\o:PU{QXbrbXU}paV|YD[\\rdYzj[u\q{QRe_Zik]Zmvv`@Mh|fOW^TPSrt\_lj]kWI]gmWckZqvldM^m`zdc{cTFIHW[cUJN\QSiWUTOo\qXVa^lX}w\@XxXXetZUn\ZaiDbdaaOpbkWYqrYHb^aQye_vbs`d;h8snhVsY]Xg^f[|a\_URaXwhel}hVy[gzxx|ZrjVVUiTS@ZaRW~\aPbZJajWh`kqRUM\ehwkMbVy^^Y[XBSZ_T`\SS`bU_]^WKOCN_yKo\KYdg@9[IeTaasmBRy[anGtigcsSbTXe\]PU^Kwrk^w\fW\jBOWIMdZeGvRU^bZ\\Yjl`yAdic\xbOlot\QEXbQNqq|LN]_eCZQTe}HKtNVUscK]a;sg``^h=]M~wb\AYQhdeKDaYhE[ZRunlCMY>MoYaQRQQrcPh_uS|Msli{IYmeoe[aStQAd[^hH[mJlMqb_hXMhdmU^VJXZLDjfl[Sy{YDYHhJTXDR:RkNX`nBDkcUQnM\kkTpeWNOwFYS]`P__Rv]slhjdIVieQpTbydXPOTvM[jtOS{OXRF_bvvmIsoYWQaUkdwX_nW[{WSb]lWbjRTfKYlg[mjRWXkaCeWMmkVffTXXVXt^]AZavwXlcKMNEi\__^`WSN_fU|n|fqeIhe`UuonYbiWT@mPwAT`DbWcTuNcQNazt:xmlbuXI_yl|EJqio]U[uQ\KN^cL`hkohg>q7iJMSleZ^MfhBbmKcdFGaTfjOVXvNUENcXcdDVHzg_D_`d[VfrC^h]lKQFYhde^WVptLcRfRk\g^ikR\\XkW[i`TdqbAzT}hGL\{hVs]jWiLtfjSaPXYxNQik\mUvX`oS`Ya}D^ccqqGS\qo^xVZjShnabS}aRea_H_P_LpwbarjaX_wmTn]_mgbjRsPU_pgWWJdcXeg_`yQLPaibbTjh^`DTbj`d]lrZVrfuXU^GQ]kSilxNzx_^mYeO[ohKY[5drW]u[jZk^R^R~LePdtE`uxmm^WSOSUboY_B^RdsmcmF`KbCOli``PMRHdcSldV[\[u\OMUm[nOs|leVcjdgU\lX_oZnr`afy]bUkastxljSJ]`eZoXTd\\K\_lfyYlT[XWr\bflahVOsnsAdhmuilIHcHyXiqGX~bg\TwaY\S[{_jscoQIfSPYK)qXJgXSl[d_]G`\glUcZsnqxZmdfG^^XH`QZ7VNaVVN@FVMN@jXA:D\PX\}O\ZfceP3T7qZCXSFUrKet[i_cYnNYZaERDk_jX?PnRkS-.XkRKxYoVfc_Xa`AhBf_qNbTJcdITU\Je^`R>R?cWfWpshB\dclPuHtXJSpimR-C:Ki~[`T]BwDJO\^fQ{lzx:zeVDoSni?SQmRWCfYG]H^EHmDVasZqN8Jb_EuXeqT|UR]HOB?JQqab:h\jTBUI{ZGXbcP`e^vQ^mLg\hm3XYqfvMTKnH`RUOS^QNPWX\oqVGZ[`Xf^bUWJBi?SYZSeiWcta]}gx^`IakVctavLChQjL}NVq>c^[SG^\rUops`\P^RbsljgdPQdXZ`tuf^^jbPN\dTWMOUTLd\cWbgb]bagXObPe__hMmT^jl\PfPjpeTssYij\avuS{POmc`P\rZccZ^YU{V_qf\5_^GUa^pdIocphl`gSJGjhgdb^Vi[tNaZroxRYWW{_`J7tdhvmg`G_j`aSaWMn_Yfk[W_ou[[y]lGqRKQ[uZWhQKotlI^]a_dUaVaWjjZhxWVaS^AjuU`[`\soS[g\WzuY^gHiMbt\s_hH]Eb_]`bksnpiZpoV_FgXOXhOYxMoafhlV_f_BkkiNyhdokpYsSQ1J_ZLklYST`oRyXxSr{ZL^N]p}jj\hx]UN]XOWASfi`tlkUisrmKUwb_WS\kuVbzYKhfc__w]tQEi`iqYiBuhl`ElcuTrOkjsT;J_`yaLZe~cnplZPsenU^mL]dXUnSFMxWiUf?]WW`}P]F^[}QxbFS^sHfW]qpWtidZklNdzpKmec3@UJkYM[VA`YXtaAmNQX[R[V@e`SsHrmVwaU>AK\[Kbma>OuYm`@RbGXuRXan^sntJAda\_LUfQ^opldtc`KYPDLdFlxPCMbeUOLa\cHDvDbSP]_iMDY[fmE?vnLXmoggSpRxmtpjNfivSZ]iIS[S\uc^flaJamhI4cUW\]T\f`gdM^beblyeFXf9b_jbUSirLZWbnl`AnjrdPbR_VWX^{_7DRK0ceqReO]DE_ftTIJ^dxWSafie]hUaN[Te^qcAeWXlaHV`YP^_I`faQtDBSZrbRqNq\Ss~kxeF^higiabp4adAjZU}S[knnkZQV7t;QuVK[dQ^`c>j\[eW]^WjINnBYaxTVRYIg{z/[WrB) @H76+5A>g_,@)7HY>@06&D@F503*J=LJ2DQ)*8N8?HFM43B>DMLPLU;1\U-<"U8(D?YI5'/RPHR>H<+B@?A!VS5,?.?|.!/37 3J0@4$9M:/;PE_Q2%'[0&{1D8,0.%4;A&OE.XF>78OPQ8I.J?;EALF-9S/A0G60Z+>R-IaD;?KAI_GF/"6$=B:J:bF[/_S`B3KX75F@O?5A0\8:@(Lf:]214GF-''=):JKc%73-8E3("3BB6OX' 3;<M0?;*fcicgSaTHjhJTePaad^Aab_hnAm]deHh}P[XHjKMYdSPn]Y]N`c^Y^ezyZcoCZj_JUHEZeknkTjRz]YXf\QcU]\sNZneeCi_`h]\cJv[gHW]KRjWW^xbyuOeXG_mRlxoCkkOx>`NKlmV^[^jzHZhoWsGj`ZYWkHMTOWa`fn@V|UT~\WUcZWfdR]VwTljiWZYehp@@YP\cPVTkbLTPLmZ[a[qY9qhbV;zJ?~j[m{uiKpz_ePmYyMpHJp|dLTThGd\lRbAwsU]LsBuhWa[O_MxhQ_`giYZ`FZzT\~]UgN\OZHuXgt_I^Sm]d[M]Hp]|X\MEIVf=_d]k{cX^EGTf_vMyp{Imp]fHqSGkr_pw*]cgSi[O^Wkh}TQnL[lZJgw[TqUsmSSWCVHrjTgtdf\uH\1gm]XawVrag_b_YSTok^rUUhoy|j@hZd[R^EA]n_HtRe]OXWmXN[LKaY`P@^QiVXq]Vd`iPV~[Wjblt^ojoWXDdU~P^c6ZuQCaehmUPxf~KiSAhRNUMdWUfFnm]peruUUJ]eU}YisK\R_NUMnr_stRiIbj@M_qeO{btYLXTVpYekVOECYctyaiiRmn}dx]ll\ZEgds^n_QZYP{mQSPqhYY__aadXaNRbgE[zeip_im]]u:JTcbHQgPVVjbt[GHTOGQJ^jH^NKYZ^AcucJU[[kPcnNkOJr\S`\KVV]kZkYRik\VGo_\PQRdWjba]WQd^bmKaiUnRqW]aePWcVRZUIaVSr:ZMBPT[RHCopaWQxT[VQllWfbM\jPU^YLVlH[aKndxhQQGt[ci}Hv]i8SdjAe]fSOkKYSLfn[mR^UEvwXahUP{KOT;cThXbXdIhMjWQoOE`_YwjqtBeY_eekddinPOFt_NcS@RW[]emhMZfWe>]sio^WfUAfjj`ohGogkDylkTsToantbJjZ]cG`Io_SrqWbUEq`QLg]X]mVya`iZOvla9qXGQuRMs_Qcke]nTLWV^UUgCsSiMZPimB_sflXqs^@a_`Loyvoi_cN\vT^LokjjJtwsihR\IhcSTjS_g[`jyu_miX^Vsm}kax?hP_aTWh>W_OWGYXYdkryMQYxNf_MPMUIi\i^`jgoP`YdyctjJcohW|ckHRYjduwvgxWtYP^oVsZ^]c`jPu]RWKDObPN`jaeeoudMQ[Xe\YE_W=qGD]^VdMT_`\^d~aiYgZKifYn^gcULsYbZ]eIscNjOZi9gQ`WtLFMaQTW[s^U^WZ|[XLuHL^oO\n[er}SmbUTTJ^mLrm\Y]bThLtnT^S`rsdjoHh_PQd`qwT^MbJTpTsZh]\RTfODQmVEiZTXbZ^|dMPOQ?O~~YkfFrDfcQjjLq_bTV]pXYkiigPflPgUVW\gT^\hxj|ZLo\_~tXyUr^leYgWVZXp`\KHPRYpm`gTrmnm[Mf]xuk^{e}SeCMbHgoXVl_XtINPZcZiJW_Vfh|\la_gfOhakQnhU\VLBxVT[mWX]^p]nT^dTIWsCXafgXSNNlrexlM>fpk]{vWFThYRlOxew_e`YH6g_UJq|^VLer\`ShjWvjZ]^|MzJdwuXY_iPsoZp`QeVeWZVQj\NRZiXNqt`WWbkgIMUSoYn[Cab[^D_uqlu^^X_[pjQ~[ub~S_iSaaZdwfNqUePgdfjbBjYVUeUN___kMba\XUS^tlOm\}aXqr]^iO`^xkbdadYNva\[]eTejBRQoZYxb][iisApWapa}x_MvSWQnMH[]FJYY]ecr\_pUSiao[_cLyx[_^SUMp|mc[baj\OggogR@dhP`rMKwewYUI^hSGyZ^i]SjSavdTyHWXG]ZarnmU_XctHWHNepJ]Z=hNdd>iMZUS^>[y^nbciycFOn_`xf}la]pRVgMcaafcoEROXVNl^Yc`hsUq_]z]\`RExsjbiZIcyJ\albb[\]UlkQ]aZbd\=wg]XzuWWffz[LpsOeB`UogXDrjq=yc^JkoPW\nw^>f`\ztiW[e^VdgzG`prNK[tvmK][ajrnjUgbp]p^Wm>=^q[`W]}CFgV\jpdekT_]W^TNndl^kYTTfEi`}`NHdFpqs]^bYncfSfN_C[qRVdpO\QY\`L]?{_VgYtj\`yg[A0Igg\TkaNqmhvsoX[SvVdPi[_nrR]tTdk2poJt[j=GPg`Hoo\}oVg][_cIeQ4xULL[Zo]inHY=QbmMZmklUC:fl\VcEOKWOkXTJSnV`bXuyFycgkMonUqb\^NSbFdhhdztV@W\gO|SUMPP[ZgYfIZ`V\nK\Dlm@=ZCfPgYHDgStLIyej`leaRrULbxxT[jZWMZh]wYhGkO[kHf]^nmg_BTWOYYebhl}Eqd`=O_uVA@XhQeTWbek\sPbhCG_dZS\rOa[Ji`lWoNNbiRNPK[boNvRmQp[xfSc^a^FuXzva^;gJYZLHWXhjV^bgS_Fpmd[oLReY}CF^VOU_wmecrj\koSZWepRaIbqPY\NwP]|RPqY;a9qF_~Iqpdw[{UHh[Jh[Wsc}k`MoK^Qb\KuNTYU|I2scsZRX`iZxY^dhpO]x^g`Y`]j\gRh?aJsZeS\ZVT{jHULoLsopPit[zt\XogTPyPPd`yYmPmoHcktuTUhyJkN`tRRiZyWvaRDsQPad]xsbgTK\{g+UTLej\lcYqlsIqS[Ubtk]hFP]Kt]]UAY[ev[M]lLZq`UgJNSUsQhkSLceW\pX``B^GUTikRk_tGlwzc`IM`es]AkuUl\XbgSZYSIo^TqmMnZcYFWg_fVbhV]dB`gnSymM`i{_T_NfcuXyfDZH]Kc\K]MqjfJbprpeLv[Ym~l`pS{`uTd[]cJ_\y`yxhoTb`^hjTYjpUOSNfaQfd_RihQtjaXX3k{\bKwemnqnl^vbPixjwWaf_:Vcg`KyNJKZeHDnTLRWOWedLjbxrpzNZUrb[n^rkXJBd]lad_eV]_heNdloaVpuN\[LU=Xpa{]kJG^V]SepHFLQXl^nmtHoXxfumjUxaoYOScqLaSpjakT`Ldelkr[MqGayZqD|V`Qv{;hcKRmRWeE^^fXYUdYWFpee_HhFniYPLs\hCzEjSdT:g=fWcgrkNlq_bciATOW`aj^XgASLw]QdXzSdfXa~Z^H@T`NI?UbksUfsaZjalPv^PI\rRypaVeXli]cikehXm{hdmtGegOjs{TJou^V`nrV^WKdgNb\aQQKxpUTelisXglllNvNf^opasfrK|jyUrxY_\w^NoynQmjbigbxcTKciZfLuSi_kVZjVk\uXf]^J\KkkR^jofVgq]iOzV\k`\rntPVWUyy_eml~WfeaN]sgauiNkrF`_TKTgbY\cch\{Kx]hle_`eoiWx`je|^bun``m[mY^hYbP`ejOsDULpqOM_MUT|IUkli]WhSMZ\P@WaawO_uOXacUsGVf]^A}^YAXWPPbTbheYXcX_K`K]gG[RTQ]diOcZllXTNcPNLgBuk_LTZQs6`[Yi`ysqa\yXHbD|fXm_YPoiVSJ^YpZHJSRiKl`uc[jeKLv}vhqql]li_mVW\b_Zdq^FjG_fiLQopk}|GfATuLKzigdY]Z_\F@V_S_ob{ttLV}\hf_P]KbsNf^Nid\\X]ShvpwgapWl_YpdPhrpSPh_r\nN]C`Z9VhyckPZ\T_wnZYQkWT`NrkU[d^gmgmRQ`h[L]QUOmucvzoy{hObPNqn[kUlebZ[qYk]TSAoKbqfIfqOmakhrjR__NUQfffhe_eTIkdcgvyytaxT_XjvkZZWvth[\]zghVV]c]LXj=``NRFRl`s}[~@Ih\QTt`bo^Eeij_bkIiagNQZF[e[\kHh[^hi`\]SrNXfIPL^XCJGynKnjkdj^Tgs_b\qi]]gfSQZYPjPeG]SwNdLyU`ZGUUK[Xsua\{KNnesemnHpWHsZXejZYVhS\j[h[]lZVUZR\\[f_]LZjZ`XrveeizshyrVhMxpMV_PeZhpaZdlYjTxXgGs`s[^i[ypC[kC_\hOPImh@cjl^gloe\sWdTao`Uo`Gcbcs\XdtX^yiaSdniPZVdTgEz`uUmmiwgRgHYSLR]VepZRXObTmRe`^qdjS_]^nJd_dccSRUh^VZkavG\`fwijOMQpNNTXqSMawWDXUrckQoRaYcove`Os^__vrbnibo{ntCPWve^MR_]i[bMJhChTkqVg8ovSesm_HZWPphz_QhlmF`fJLRhZufn][baY=oltXdzi~rhxbhiv_MsSLra\VRRJihcXpMMbhdVTIXIUhB^odmD]^sQVzZ^__YjrMN_imrse`}gndcberc[bag]tUZbq]`iZ`{|geOOgQck{BtdSqQ\sapba_p_PWe`kdTeTfu`WrZxXmwbtdooKfJRSTHcaHicXadU}\[RUIeTQfsDNqyQX_jIitR[hnpJgP]ZVdMetgcPtPOI|XJdYdUWUYuv`\lLh\QNi^ZxKgVU^V\S{gXicgO~^c[JivrCazXax]mUjGdZ_UDfhX[S|eGSOfXZeveiYdbdoZ\Nfsd^QZcgcbgJkNWnb[_p`Qfe]lZxa]nHoWQ^EXvwabkJGhCZltyZc\[hqrFQ[FgyVfugDNdiVRIdPLyrrb[_?pn^Qc_gfaUFavNUqeGD][bgfbXPw]b^VWi\}ydP]ZqrKo~\nm\dX\lmY`sJYSIit`VaWtTkVt]]kfsYXtg__pi[e|b^V_~\gYo]V[LlpZF`Xtm[^N\_UrwfKjUa|[[TYcMYn\f[d`R>k[s^fTQq]raPSpc\d\n_tbL`aVmajjZW|w[wbA/ZxbgK{imn`eoPCwieWU_}wZwN_Jfo{KX^zfQqHzdpk\dMppmy3iMUS1Xh@fjTerb|P^]rOTHYX{`mYMVcRuQlF^LZg^]BfZUdra[caU[|uhL_iREyc`sxVeWfMRQ}Pe]rXOOc`XaQqnHckaRaufTpf@i`fe^lp^F@KXhPMJUUAKRTV[]lEO~UkBNALj\LLSfh]PlAX\mVVJ]k|Pn[P\oSeFOacZ`^lVOqXCZx\kTe[q]PirrAdWL5\fqBZ\OYLXnfazeDfC^Y@^Y]`SVkyW:YryGVi_kDGPF\VKd]NbQ]olZKtFfTah_[f^`RCxF`kJWIl}VckdkJS^uXiMKIcfpKAaiondrT|fV_VXHNKr^jmoQf5NuqWDoXP?SUgVtOe^[lh^]_fg}J`bwhrjBlVSSX[_PiZuaX_jdbaqFghVs_yOZlKURtVZZRb{ifOQekEfdI_m`;Ox[odkHYj^gl_vOji]\aTL\dR^pg^]m`kpVYS@r[kfH}rsTxMIi\qnlZvWU^FmO]QjKPJN]oTospWp|yidDdxY\aEhjw?lrXk}L@WWdiSh\_sRebeXWj`V]Y@MJVCPMR[YgZtL`sTZZcH[Ob{9`PNT[}SdPgRkVkhZJ_E[[I^_O|pu~WUUtR\sb_Yn[]WYUgb\HhUSf[\Y_`gfqeI`ZwtVQjlZgJoWtEWdWYXhh\J]T`b`IvchU\sf8uQ[[pId\_ZXaA]lSv\6anDfZ[y[ZpcjZ\HR^hq\`qYb<5@y[bmOUOag=[V[FWtoge`M\W_l[kZoTZUOJC@|s^q[WQPONUcQbc7dQW\`Re[Q}\FZMgVDMaGlnMV[FH:XoZVUkQVuUt9MQ`eg]pNYRQXaEY{ag`jQLitg~NjaMKKsgY_w`NWdtqaRSHWhZ]GPGXH[dPNSTSPgkXjOUU]^{KqPu`Y6|^n`_LOhUG`vpakcnptau:eGpD.VW@jagR_jHRd[@?ZcQYCTN;qdgRe@]lde\LPY^`F^NjkLEdMUiIVSbZHYyWNsihl[{XMbJ\zv\ESlrMce]ScuBSgw_9_mO^tRb`>fk\ZfdmwWX~]vt_m_XRvh\Sg`p^CD\jhbsIcR?PaXm`gtdir``U\VtTQPD`kOU`emTjoXYSe^mmp]PcdGo_aSZW``J|T_khUaxdFY`{Yu[QtVeH\aZDfWeVWMYMUky]`cjV^STYcXRzfXN\jmQfC]w][qefYYpJI\oJ_tWoY{NJYs_HY{q[xRN_^NUe~Q\[]fYm[e\f_V^dVQ`\UjRf~O_PWWNRptpjmVnXT_El^ue`MZPQIS]m[QfXW_q`lm]mglKBooeds=\\}knz\{JNahkcV\K^>mTaVdYwa\VZ]Re]TlZfSy_\]aMCudTN^YlekYZovakY\}I^qKtunrnvRv_AeZV>kJ^mYZ{JgWq_Nez^Hj{OsgxJZ^{gmgOdbLwunllbJ{vvKgaquR]TnpTZhbUd`TWbaaKS_GVWgjTfsyCm\^hESwv]mb\\atiDelknkY_euWdx^wiZQTgS]wT=r_IhN\}iQo_Dv[oFVZgmoPIJkRIoKKeUOWE{fVh\M^rXo[=^ma_o^\G~sNo~dLXo[[aQTRmugkcQ?kkbBP|yLSgVN[UrZeXA{acqVYtEZMmeHX}ToYtcuHUXldHX}WUTXFQMGLc_vSKv`ZnXuxNYcnnPMuyfpYcfRpRXZ]WPNWXZejpXn^lap_lnrgl_gptXjkVcbdnGbWKdvaTKibfWNi[bOVxNf`Ok_yeuAOL`HKe_iq_dWaj_[dQ^NR>MlRcs}]]]bPe~KOW^sNJTL\LyVUszHjXfy}cmc]ia]hZfLlsni_>_Phmc\f\aaf{eaScVWNfZ{on]WA]cmnRHE\^o[jjVcrP\X]nVLYi^hokdbidbbJHxzzaXCzdoNjUScU||Oa7`{kFpH[LTfWj[^:i[ZYLDeLegSVuWVuIYDzSk}Yckyl`]uaAV~ajN`Me\bOpWHoZAj]klkeYmXaleo]\YQTX^WV?[QmZlf^oJacqySdKx[hVWVZUsckjvqW}gbckaNYVN`XSaXIbFrdzl`^l`[brbio^c@^czYV_dRNu]oijmPlIOj|RZ\f\heIro}vfc[XcFUfl\zULRJicXcYC^MGPQo_UgWiWks{@Y`jEhmuITaoT9Vn^egcy{`lapL{rlUiNiT]wLk?ZEUEQetd5RfV\Lc?@hPfcTIhdgEFGrnifP~V0scMGr|dTUjTrejDnH[j]hhZt`VmEXb^nc[vZ{iwEBjeu^QcrLw[UYVpD_FbZYhXQrNGS`_N|ccS\Rfq>q^ZraIK]K9[\Kn\@rdyD\VRQYYIeS^\ep^T(Sd[eL^^6dWjg`UaZlQN[MCSbg\FiqE`bdg_awctbg?Y?yqMOkpkyLMrZ_aMpciBIU\jpd"p?[^WT|J^gjoTsHFNY{Kz]x_lZqHM]Rv|ncPJwofjTPrLbZPFbyO[Z}SRGYv]ugapuPXTrmPjXUgKMO^|e`Le[^MRcNV\MDibpuR[JKPlWXmsRce[ouESOXluw]_sVdlRo^TUcOUWOrW]YTsLf^SW`h_mu\bcd;b^oU^JqcZ_`aTrOdKWq]`K^QifjJeCZwiaZuJCjZ^COa[\vXYl\SQK__\XXmkc\\smsR}lKR^`qTWcLegZI\8HoNw_OIe]mLgYjcXqVd]a[jNoWaY[b[flilHIRQaRka\nYn`udGKibXkDRdmWce}Y+_^XS^cR>P~UbLTf;hLLvxkb\ap_^I]@bSWUa}oZZ|XVXx^bdebNJkuKgSIew~cljqqY[^nJTV`dXbeHjeU]gX^MhZX\grFFVLbXbQXrQdzhEMYhqNKw^RXjNdtNckQYxMTh_^kKNTQO{eihNNd>aYO_In^TahHQtOJotou^LpYLcDNXeWYV\Q[HhDYZJds_t_cuRaMK^uRYhkufsmdda[_]he[WW>iShbnZYkbZAVseIRqYdl`w^Z]p]ZVqcNhQRci[]rXwVdl_g|rKYTd[cI\SSTRL;]kckccdebexRltjhkQi[dXy}dNNeh]kDDdflio[oJyXP}QSxLmqjTXTQb{Zb`]_[xieGQP^xLUCP\]PZupTh[ZMUgdcocXYcBja]VriKgbtTuwFW_]IkO@Sgb^d_[RdY\g}vGeJ_Xbaj[TSxsbohfKfopkz^IcmQca]^LYSRg[^_umNirji]HnwSGTZ_dEZ\cdnlrsQ:^doPv`@ph\T\Cfpdn]xTE]sou`s_daqWWf[cQpvWqdoSgvhrTR\`i{{UcccZmeM\gljMjXYYbTPf^b{UePaCmhNmKtXz>ab^OUoIVRSWfln^y6[V>TjZchadiPmhdi^[cH5RdvQ^aFf]aexeM[Vh^_^_XFSB`aUnZodUtR_cc{O]IT^VlUSd_fgacdEeeh`ajeXiQ;JMJitaqWgujt[Zy^WtYdQIfaKd`Stufa[mPX]rUj_s\iyrTzse[UIuakShCt]TjSJVgPmZvcX^m[OExWfdemmH\QTksZ]bA?RYXcs\NnU_qYo[msrglY;Hc`lTaJYcrwU_Mk^QemUUXmF\e{;az^twmgT\H`gQ^bPKYbJK[ZhVSTgm][Q}d`jYz9]jp_b]_kUPoX\YX5SW~Z`RlEWdpfJcwd}vwnazgIRgTU~rf}lblguppRare[ocRgqe_iUTMPCQ]UNpbcYVgT;\{MiH]LedP``JcomYN?Ji]golYnWyp`]h_gfZg[OiVv\lgvUTYn}^UmfDlOXcL[PbiWcTfreoWTNYgLdqgWZfgj{X[cen=8fTzR[UTrcrYjroxH_a`VoeVkgT__vogYa[yU]oLLLxHmZzRZlP^QMZqUydW6iWUNWRg`hZ]BVXY~iBfUeK`]UhzhinyZ^K[mY`dVl[tgE@V~wh[s\uYO`ezdbdYS\GuH\gXWw]qg|SdgcRljyxBWVVEZflHsXodHfWvW9nSjN`aeY\YrkTRVMULCbh~`UmjbZK`TUTV_}upVXgWJX^n`oW_\`RtomXLW[fLXxOrihgWMdi\LPRS}ic=ewn||^CYRPRkbifd[eboHL[cy^ugTXtYeNZqY^U^f|gPNlTl}yi[RehZUnscYAP`UDHMibOY=WWk{TWhpQBUnxiWTNT@dfXepmbXW]vakOV\FZM`RJA^[]qMwRkOnOrecdMbi_VZ[_EbJniS`\Yr_IRJZVeXMbu\PMO``IsTp]_\u_hnlvBmnahlgRQydclaEUXxWbMcU}wegUv8\NgNqaIQ[JvBkXobZja|aZHj}_^PItSq[hRE^kRu_ePWWVP]]bAQkGi\W^ZUZb_FxhBTXX|XfT_LfG^PS_l^a^Xu]mid^kcf@=DiQvA\tVOTpgCqShs`J]RW\N`PH_XKcu]jZPUadZWqPY\oVdsT_Oc[es[S\YeX}VYT|dVgafKNRl^VV[a[afYN~bbZZRNzipNvd\\}}}f`N^|_Ybjjd]u|VZUvdZIFl[`ynqw__uUdYOONnoeXqX^RIjtrtYSZTb\7VcPhkfjgoR]P>[`ZW]]}Xc~leX^NITPrcfFZS;j[sZ_zLWaWxmbrYftZRqZUgY}M]f[ejMVt\ruS]i\eliO[LqxxpZeVRIeg\`rtlQhwUY~VPfj^JPd>RXQ]Nmbml`^UijchoYgGYcWE_jFkP]O`MOonhNaxOuWYdYec`U[oRjA\^BJtiWXlU`MegP]L[pbZZ5itdJwhJhBiKbP]SV?`yPQ[atEQb_]hxXLcYoXyhZ_dSjiLSf4RcWngKP^EpT]LuvV`pD_Nqf^bwQaSh]mB}xJ^aJfTn[q]hVNIoi|WZ[Ji]O{JqlghIUtRL`Ra[`NS}mSr7IID[fiyBV~QJ|lYbXJ\`]H]]SYlbQhGsRVZQeK[ejfTHMpQcYoza\[kIAHdkZDGdblO^tXdi_ZbMp_f8;OySxSIfsrG[XON[YNCeRehh_URr@BccU}viqVoLJMWSIofDOZLaZ]Oh^eb}fks^KWva\PqLXZPk}taLEZjfK`GdjVfdnRRdh@lLo[peXruhX\]ENvYpvcQhkf`e|=GemPgx]dej`XuvjY}i_M;mjrXE[Xthm[su\h]Yk]L]x}P^KgftRlWf^YsdbS]LYm^pgirringraedu`__iiWUuf]Yu^tYjYmifyMrctM{{\Qtcme\nXU\bk_NzbahkZIkdeLlM`cqf^Gd_iQVk@JbHo\DVMbn_geJabM]aa\Q?RrJk_]{nXbUnVY[POqbfXWRVlriooWSZ^bkXWcso[@l{cO_iKiXzKTVHS@quJ~P~\SwUsR]~benlp{gHokR`^nswY_IqeVpgZWX_P^^^]kwa@[_`cj_]P4TV_nse]V9QG[VsDdgEQCkTiYXULkX[}lb`SU0dnU`t_XfxLKTsX~UUohQK[VhMtGU_c[ZblWJRapbSjKYY]]gm[la]]a`i`uR]YOceiXcS`EBfVBe_[ecdT]i[Pde]wQ]meTnhH4_kZXcUbSSl?siZc\R``XtmIdCWzobc`eaybWeFe^XEUQ`xgcPlmSDXXfERfeZ`iMKS|[VFN_=_fR\FgbK[VpMfSkeen]@dp[Qg`WJaTUFXLeq`mdJ^bPQkeRcUrtdAodGk[`d]RhxUG]dUWdGuHGpS\idfTKU[NWoVmQ_\Z]kYajR:`~fNmt``m=OcB~NTqaEe]tcA|kHyY\gTR[\RMERVJe[jjmvnTibvifWeRWPtkxghTsKP`uUXd\_vZqZqXThLcodJhTc6]Dk\ZR[swZocYdbUT[ZWijVjVY_pbhof]GX_HcO[}WUAXNYVPch\TCF[sa\[iZv~_fkjUZgh_;bIr}_VKMMHSecm_gPgd\eu]YeSJdMdMm`MXYjfNOKPk^Q\nhf`dTpQpwA[S}cZp;kW[XTidkhT^uaWVWqtqhsL\PQjoa_CFSnaVgWtM]dxis`ENJQ_qk^oSP[X_r]urPjC^kdrdNV^awpa`hdeJS]ydgflYtXY_zNnLksZY^rDkZNs\Eb[ZKFJR@mcuTOafgXTHe[iPc]jJuZR^hZfPcSVpaTBqffES^cufeeUMW[c[MiTMTU`NTY[kJSMLYVRPjdYldbpF^>|b`X?ImascS]bXKoZFMlSObpCXibXhGaLM_u}Tn^O>UQ`\Z0VbS\qZQnUha=sPPJQ_ytpYWPc^sodoWpPSMsdA`^`FYnInPD^RbVOWS]_Sd]in@^Li_=\nKkij_TV\T[fKLa[`JnG]^WTUmiI|NoEpyjXFX@ThgUZ\fYhsa[eQa[zkiAJYoGmpXYRUdVaO[RLQnaOGZ^hbyg^faTCYlaP_gGbT3JNJZPNDYK`_mheYf^peq]U[XMlt_Sokgd\qY[]_RdsU]G>t[b[sR=`M{bVMpXkdjHhbpXLqZPy]cPJ]TZIQfQi{IVaL[OYbMmVwjTTKnki\cSejYQswCRVNa]O]iTPATYYu[at]cWR_idjvxWAdIIaxNmeAZ=PkChoptt^{ETKayUnIPTph]T{W`n|`Ywfdf^TYPU]K`fxia;Q]M^f\Wq[cCo]SXWM_jjbC[W[dVbZ[WfKidxk\]Qsi~bFaTaOZQYKgaT`E\]UQRGUsTIrXcpYhRd^Y=[`GYGTrGMSReE_AjVnbOKERL]|WIdYdd_P?MaHg];YnTLlg_ZscX{RMlJ]QTx_RPQqSllYO}nYlO[yZuPgb^^JeNwLtoymQQuYWzpIwftu_`a\JftbfEnElmY^jlwHreUfj]dmoppLeeTQbZalV[iUkbZUfOMXzdRYQVx]`ePVwogwXVjRhkc@kjy`=_mJ{oh]u?smk]d\fDLcOVahnFZWi[f_Ur]Q[fdfhrdQ{jYDvibdnbyRT]Scrb^N]vujfIQBfGtmnk>_Oeg`F_OZO{ZXiHpY@LMdMmj8RcMfmXqUBSThffVhYhxrXPXSLcDhk\sXYtbPoYp]\gVh@ZodjyHj\qVvDetVl\uSdlalvff\YgtSj]E[@cNlo_XMiPY^QkTY`Z`XmMO`Wxk~_2TTf_UMJsRLf[c]hkcfaYd^z}W@jT^agYTmgvW_jk}nLjsSkJUaOfb\plu\[wWSfz^S]JPLRm[UYyFrb_K>NfI\rgqCTf_PreV?\VnNMFpyggrOSXnSQIlNmj^v_SYijOT]js]oQWeNS{OoLo^rr_PZ:EJjRXjHSOejdgqRijV[g`I~^kwBT]uRkWsPhTVqx^FNYqWwfWqirdRcjNcp]IbeblshNITuDat|pk]\TQ[QpeUXReWJk\jVs\QqT]L[QZ_esWykO{byN`~`^MQBcE^wHDjxSZu]sS}tBVc{lufLdTRblIB=gYp`m]EeYSi[bknreUVMPuV|^XaaONfXS\PfjnhZjcUJ^UWhmsT^dsd|_rgdIcVjsmhjtVJbTY^Zd^[]ozcn`DdasdPlNkb<9b]|pBcozyPbsZZn`RXQSpST[AGiVbFcNeuXaxfY^cxhlR^uVrAIgyZQY\vH]]YU_ub`o@KfjojY}uUSRVkYjeS}sOX^p{d[kNh[spXZWonOnjpaOqUGNY``sOjS`^]lp\hXhUaUM\Spi^CiJ`hlQ_[U_mYYv[ZbgrpXJoxHOKkM[UgyoHmWajVupTqskC\rYr\KDLbnQnjcM_hPot>R[jm^]o`ref]aQfZfRrdp\c\WbRUXJg?gYgvW|;tVXlS=\YeaZNG[^ocXQjLz`pkOihV~tjqfma]Yu^]Z|s\tVP[s\aqpiZwN]V]\ZbUAra`]dSP[ZFpLS`e]vPTdt_^RbhnjoP]`JwPQgNgDY]oz@ZWVJu^WU`]qOPqbuiwj[AZE[YS]s{[J^J[WPZkNlfbV]ekkmJZtbTRiBbfT^\T\X~DiVla_gVVgXcaNY_cZq`hzMY|j]PcwnfXZQ|fRYOpd:_xLgPT~[>ldl`QZZgaZFkc\^PEBp`vGe|=fAfhsUZLPF^Q[ZY`TYfTXa`IWh|UJUWwzuvNABN^]MOfeWQaYJY`mZ]VuVT`rlW?gS`l[^Cdta_{TTPhcYwR_9}6[ahbbk_Hj_gSkmciTW=bUl[dWa[`UlO<^f_vnrcoe`VlsuncGZta{oeKAkkfj}[=X+\Wn^[Rw_Tzxq[VkVfYsFWMf}ZatkHK_Sm^dOVfawJMZ]t^URLgj_gltZZo2MNYo`KnsSIqWeqY_]smkYFRRK[d`mhdDlAPdhnAKmeORUIicghd^]bmPJiN[lesr`KeQRepyykxrptWPoXwsWWs[[6uef[\xuu_Sr;[gO~ccjc`Xj_}n[oHa_OejC=UeLRP`dTad_mtOfu[l`ahfKUi[\dR}PeZj[lnTEt]jjV]QQcWf8`ezhMhf^XdVUhbg]OwrVLdYtQ^bZYSq^hXdhpw[a`XdWe^\_O]^tVXTRz~VYdLRjs[ae^_Ohdyfwqek[cgs_gOfUpQHRmdooy][pJC]JTm\lNVi\XY{KqM|y][NZfIsGRr]zu]RPm|madHhWwAEXnxYLjqJo[lqm?Sg`h5]]X0bedzjXwRvYmpiG\rbYgUldT{?Phgb]ZhjZQK[`XgTS_v{d\_^p\yjqvP^T[sc[FjNZS[bmdr^`ekrU>rfbEmZVYaml`@orITqUQPcinEZKanoe\LYwkqk|mS[kui{]_\xCwgZ`TljWRl\[c`miihzqiv_jVdf`lgpTj{a^ju[x|UYYrqxpaYYZWjJi]akXcJ^cxS0HcmWkjo\ofdNUbhetg{JsHjNa`hN[rWP`WTWZgP]~BubxtZVhagbkdtReVClcQPo]_ccqt]zSafl|w|d`_XxV`I`lcjdW]\ak_Z^j\OgPnbYSqT{fWjYRdp_^lbeWeceh`i^cZwSZkjZ\kPGyfbtiXdm@UiaMjfioTS\hgQbYZXkcljoeRtTgF^Y{jWUjhFp[TYWb[RgTc[Ocj`MlfqUykvUi?\dpvWRUNnEy6Y]OPM;^Z\Yy`kX]rMQWPk^`bYGNPYY`>WMTSZ`FMW\XhoP^JSNtPgUV[f\v>axQXF\nRNPi]aVJje`}ZZLf:ESnUIScXD`rgcLTu:Z]dZiYTTOc=TIr`K`B~RdHSW\`V[cK^_\jmVFWVw\MPiFKS]WhVNQxtre_K]BX\ZGmT5GP[hH>bZb0WRznNgp`PEcfG~XeXktaefVYUR[ENWb`VQQNX[ChCLSudUS@>bqda\nvgWkw`u[k\VcRZQKpR^YZVbtY\WIQoRiRZBPb]Kgndd]v}X[pk]R[LhctygfNbfV\:Oc{]Z@\wRTf^ZvQSGjtvOsdwNA[X^?jOhsi_UkR`XeDW\dcgTHkbz]bFPa_\phfa[{eqlKX^AkbRWkwqkUsdUVTaa|jOHbaidhO[YbXYxW_[hdl]{Rl[[ZGskV[uVl[f^LmH\ad^\bVognbS_ls]uujlZ\ibsab\Z=d_PGo|qnhVlZt\Qes^h9oRO{J@\^[ZjiXkshd]\jWYS^YwxmWOdat]YapQYfU[[KleVchlP[cHbNSXkNj`WNVMKa_|RY_Ol`NEULaHWJmV^RZfOWON_bUw]lQlrg~LkQ[aRblhiwkUT]aDW`zLrcTVbtKYSwoc>li=cnh[D5j?wrh]NeTgC\oEh_eWLWTwcJiRqGJqpp]b>ngulasIVXW`tXaVdZDeagcb\jhdiSdVKtg^yPbRdv`hjncS{\VcJgh_eZGBb|JV]BTXm}TS\;\cgXWUj^pGZMY>?sKmlY~eVkE@_v^\]Gf|TM[[wJcm^Yj=R`Ubko[p]jKFnbPV~fS@`mUct=VurKhh\ufcolrUUELZ]ezlWgLazl[gzYn]OvQqfxY\fPPjohnQiQadCvMyGZCfqo\DTYWQS\nGj``_iqpYKODEgbV4^SR^QbvXLQmmBEfbNvYl\tIvnn[Vd\^E_^bKo\^xnKU7W[et[GUNIZTdv_(Vef|w\nvHSmXjePTRjS>gYVeEK__HsbdRNZaaXh}hWCrukLHzb]oPP`_gZR9T^^cl^NSngKNeUxupj^blTkfKMzg\c\pc]>in\HrpoRIdyF[>Ruork\L}W\cXtf`AoW\^cPa]aeULYNbaW{^TbdegNNNX\^KNapngiJnvFhLyZa[nyh^VzLFWEo[dLjSvM[nSn_[XYAYcV~PItWhKi_`_olKhlizlNX^MUShl8s;;a\[goYSUc{X[NhPud]@flJ\iRU\PT]g\IwmLRITlYhQo]H>uig:-dQw?KWIabqNLGfLjZd`ibrcPg_H@iYupPVFnMZ]`CjCEP[DlLM^U>bYCOhJVoa9hwNexcMX[u`H^zX`jPcudkrNbiGqFhzVhO>XTUX?N]T\aX^jvaL^bMVrbozrfPzRxzcDnAYOym|uiM_H_vyMGRZ]koUNDd[{id[^]mU~xzdgc?pXEhc4[Vj;FTE_Ts\`XPpLb^XI^\9dWu\]xVshFjfWZacPf{^fm}]Xf_KYs\[a`vXYpak`IFPdbYSP|Q^YmhiOIgWQn_KMnWb_QjYeT[bXhuYzrer{c2XggaT]`Ldg_|`tefkfYUZ[AQ^T^Ch[aWbYZ[\OjTXisVabzgQLVHkGfKWYh_MRWh[gVgN{PHj{C}HSQOnqF[\WQXT^ZPZWvYl_qiFe]KbXddoj;TLE^V_qW\qgSjWggOpiaVR\eVIQQVd]]bLchab_yNK\k_LZshG]kduNyX]TbS`gWZq\ys[nmMZa]SoTc|Vaj^^tc^g]gPMrU~dhToIZJ^[tegrObW[eSbu}\UjKp\llTbRZ[_~D`\QeZtYl\^\O[]aZ`sJpc^jim>TAO_a=Pjm`UZLGbUxteNsX{^euM_korZ_jq[I~jn]RBakGKx`jjdo?[fVQ\hvX|tqqBE`ddUekTLOJjhaTOXvZVOSMsSbnVzoUfgcfyxhIUocV^RV|`Wmlusu>aX;CfozLeObHe^SRnljrIeUhUJ~YuafbS5mzRbRkyMr}[jcZe|TCGK`Y[hBYa@cV_O^RZUd@53wog[{h^n^M_pV^^wXiMgG\F\NiHU6lOHx`_ciaHM~Xbj\^Tij`\lmc>`e`ioescgTVUXVZj^cPnXXMhhptlY|g_KDb^KhXc\ShGc^QcSTaYRe{MImtLZbXL~|`\UztPhBZetdgVFhr_{Yu>JXkZY>zTHwov\uXWZlPJ[WdhXWWpeqbFj\MTSIL{Q}FeOMT`hhXUXynlY`qf>lpgYhPCZ]Q[jCNhfYRNAe^k[ddhc]o^dlrXRZLmiO]PEsegGNXL~\emCWlJC\fC\XnuYYuScsQeihbYLORj\I[oQsOUUeqxWCiqzsSB\dSbhQssQi`nY\@dosiwmZReYVIStkn[]SUSQ>|ToeNXk`i_euthl`emVhFVquV^ZhXa`mdpGdmNSPb[cHS]^Y]_JoPuu=^t`aq]cKcUl{\sV~[{jT`Y]aYHO>dhNZ{w[aN_RQPhk]XSnYXZb[H^clVkfekr\kgqMY`RdBKN?YoXRVgsoi]oyQ]cXVmchr^Y]WUUjmr^v^fPmi]v_CabOG|Vebwnd`XmaYfHOb]wew;R`aSFXmeXQhb\Ycotj^sylK]qZSr^XXgrVea]X^Rr_loYfXleciXqIQ`iTkgf]lOFRVm_fEnuc^zslqco[b_RiKdWgfTNVhQ_Nb{^QwYj\bYt]Teell]IYsXkg]XRQeO|]VX:_ei|jTjyZ`lnO_Wla`kVYp]c_XSfwZq`s[B\MhtTVkWe^hSNZYTeX>nyhgLgQcZtcoXl`bsfPc\kl\ZFxyasLt\[xlTLjbLR\lMcftNcjdWcIfbARnVlsa`KaeetKFczX`fi_jn`Y?]OV\fuxP@Y=QkqXW][bcOTzXZ:m[^ie]ZeMY\PsR^qwUORNNwWn^WZLUE`NWOWuwVexL`;d;[R_\s_M]d\gKRYzFwX[gF`BmMeaJ{baMlPTcQvdQ-eDe{XiLZgqQW[Tt]`FnBaoj]uVbmVitk\pvt`WWe^dbc\RMG\]h~SV[Zpgh[S\bVFIedrTr\Ss[ZWqtftMyhIOfuU}Ya{`jQRNeaZnilvQOKh]RRfa_kaKqeR[dIsXfRmXTYnhTDd`^ZICcSPSSHdrKdJZw{I}\|j_z]ltSi`ZqPrYbMofg\WgUJZBOnN^nnVje\JhXOWHi]SRkW_]PgDh]Z[o{cmM`ZTPJp]gkeoaZtWVTZ}J\~a_MjfabL]e_t[iawnUbbZ=Hkpc]yQyhnPSXhVhk:pkWiZAtbeefOFXVQkVDYdYZk`epWWhZRYQ^KntHg`][kexmiSfiGWguYMNqgNjmZRZWbqCN`zSQY_^`[lc}lyqxT\lqGr_QT;PgIpcXA`oh{WO8xa|ccjBkfTeWPUowuNA[hk`c^s1ka`[caScXnngbHp_pZlKJJhNWXW;UXRkWVXdy[dOR|RtYdc\Ts[zQ>bk^dkndGWu\kaae`_xdcaZnV`]`ahbo]\OnNfdlIXKrskhBTJHlfJ_WzdcVRisllhyzNkS@f[im9f@Lio]l^pQWdXbVX[aR_ffYgbdW}DM`sKJ]X~SBI_T]^NdbYEQQg\LpdGtY`rxdRkngWUL]ediLfRm;HEgOf\Skg]mX`_[_OjiaWmYK^[cGt^a@Xro\}\]}qMW[KQWoTu`]Jramz[^aeagsZVk_tYnBMaRNMpU[hmqdjkDfhUzpyPsua]UZghNmY}rXUMSNg_\sB`CxOzLCSdO|YfavvkZea~jpId^dSzdLK[{de\mOpKrTNbXkboYn]:jE_[jmZXQH`_NldGgSdf[^KNUUTONv]Sm^[VfSeZRbUgYHf8iKlgZg]VU_`8qy@vNvYvjZ~VVcm|kF[kK]dcV[UPmdCQl_e^m\dbDb[RhwS~yNX\NRZROTYyHjhYQKSdignYev_cmtmyVHW]<\KbgnWXpZjTLieuQ=w~iaX~tQD\cWop\u]OzaTbo]bnaXXJ{WE_faRW{e^wZWXY{^hSla[RmLZYRjglmo~gat\Ml9cdlSanMUVrepdbx`zLskcRTFR[Ja`NWJm\][]PjWS\ZNgbUY`Q_dQ]eJZ@qdNbRocPVhhciiWeijZ_XZyJUVsIoRS]c^JIyoa\TrOWQEgUPIPtZcZu>nh[lg`KRvTg\VTTTZeT_WpRNbl\rftnLrcgr^pqRyTnmUbbQjX][_aZiWZJYgWeUJR_b_VhcJZ\`Wn`Og`]qjWrXi{xxgjAiJHdSR\ngoPU\T^nWITZKUWZ^SY^ZO]otR`eQb\VYXRMFihR\ZWfA`_gbJcOP[_^_SgYWr_J=u=GV\Vb{_RCJGsSB]`iKYTVkvO[eovWjXRWaYeo~lgbghchgRghakUjWYQ|PlmShVcJj\lb__ev^eYlWAmvS\6YchLetiwU\bKWR\YdPKV]`qtmg\SckWsQcIZPP>GVsqQKVm@9\;IkU8flQ?}`TqOXtc_SOchl[LzUFaXAojZa`BhnT\\]_f=EM]drXTHMUZ@_mYROb{axv{YkNUbZ`z=lr3tR`hK_b]mwlvoPcZ_feqTombi[EoWZbjhAfK]bXRYQotJklmYhfjaexUfk\^m]Ng^oyQjRdh[WOC{_m`]Uaf]@dZ_YspsVjGJkdXJfYpjShR~IPw~nuSR`w{@[B`uUxJhckZ^c}c_UcRya[+db_[rXYTkB{Rk`oecyQR^qOdwjPq_R_Zp6~|kNy`jf`|aOUxzBjrPG`]cPQWh\ud~\iwT_fp}UcZghl^JmF]Bp{bDajUWQNufcLZpL}gUmipF`eyd`kllZZgWblpixOSSFTHSjWFzbclgtRKsryaVpekoQtQYxcPfbEcT[FZj,di9_\aj_OYooW[sCfUMiJZbSbEjW`KQWet`^IXU[RYP4pLkbR^dJQxXUrY|Olcbm^]dxqOYZDjKFMai[PZX`QI[\`|VXndcQHNaBM_ehZl^Q/S`[;NcQ|YRBYlT?]\Q^tU|WJmamPeQeR\XaKInY_TQv=~B[GbuIHb`vLWbQBWXZUV\MDc5V\aTQ>HWmdCfRi\8`TbkcIAqVZarEEMIcY~[b`|]aQ\WJbX19@GYOzLUY\JZNQM=PAZqU[KSUeUSYVVNgs`bSQQH^UJZ~WmN\_VfpcfxaxclVdhlZkliUTXDvPbYEmem[loeISw[?ndqoXbc`j?cU_RVa\j_}YXpXhfHea[MTTXcohmls`i9`ZVfI_qzLUnH[iDIL}lhufdq[mhfgZnmjYRUgaFVRBp}XdOad`{J\f]_nJVVgeQjhjnaAWZ]RvPbUEC]dCOXWciudNRZx`i=Td_OMakkWTn_wqgRM^SnL~wbXJYievQ\iVogzk[gNO]\nmP@HcHm;YR7dbjehE`SRen\QRvxdpnriN@]_UFBK^\hQwncKabfiPj[UmAioXI{sIkb_niVgfh`VqJcyfVWldVmkTi`6ZPa{Wch\^^bU8RWeMmdc[tiVl^K^]W~NYTnJvapXultY\bXLfIQX[mr[YiTNLrn]vU`}e_nKpQ~mi[zMWOQh]`rc]hZ\]YDYS_akZ`Znd\bkFu_XTTTFY|d]Ue2gzYYnJPe[[_khWrbzh`eLKr|J[`UoKXi_e[ZcbMkZdcg`i_mLooprQk\MkT\PknZ^[8f~_}wgUvjikX^czpb_XRzm_dledkqfVedSo]cVkQkcrVmJlQvK.hh]]SUTTP[UUgPE|LImYaRqKyld\sT_ImSwZkoaw]]PnSYP\gBeKnjYNn_EMQRp]LS]Hg\htRcDZvVK_hRdrHi[o^NfIo^fiTjSpagc`VlDT_TwJhjkWTTvk5WrQSFYrcwsak[cP:R[MaKQW_pUTQU\JpzB]ShgZn]NQw>_bY_uNarTIZPlV][YfnBeV^eS[\bGc`IeKkzmae[^xXPWrOaj]eZQ~YhStrNwUpUNiXuMc]j`>TcZXIDbjm\K\YjJeOvY^8iciwjyUgVkdApCYWioky_f[ljZee`vbrKHliHwB[SK\nxvb[u_pUMl[cigboWY]`\\jcckV^gp\[mn^Noq?YHecWfe{pJNjMcPNpb\URjRpPQ_ZPTNIJXB~lP\bXJYR`ab`xd^Xz`UcdVfFJ]dLYTkXXR^e\TafJf}`piZdO`mehc_ybjf|FI?RecN^bYfHRJjg\JRgJ\bUg^\WXdh\SdWJMJbEvWOvpiRhPYH~PRX[_NNDtL\iK^W=TtLngYToSabfpi`\HLedgb[{EzyZM@vfjGZjMMT_j@mP^XNVVFYbZXiSSA8[SXCW>dqL`_ew{hpW]TtaKd|ZgIBTYkeW_vtfXb^ib\mcGmr_TAUnmIZgOIjcNsoCdUps8f]SU\t~NgXpehY\]_ijbe[MhVOlrVATYifhciahYeI\`oQBpahFSVL_n`arYgXY\]XWZZWYmzphlLlqj`oR_aodRb^w\kdlNVtLbpZVaTQSJfUdUKNTMQNSW[\CnsXW}mapTYIclapPuO;fTm}UmJ}Sc`doJ~ecSh]raeKM[uaaUXTWz[az{DpPXanoizaycXSNhOMtaYccG6_S}p]uojP?~nVu>COqgMeJlP{WecSS\HoQH[WfWiUWiWQeaYk`j^qLWg]fal^rDMncJYlWLkV[MX[M[?ljL_SZU][YnXZGUHnXO_ibUgI\]rfQE_ZkU_UIKZSSYQecWqOisjNX^\Ypow`^p~nSWdXXe@`OkL_cj[bWcD:PcRb[ShiOXcF`ZuLSbUKoYqZTj\sHJ_cZWjtu}NDTK]VZW]NT^ybjo|^^olf^Y~jVeVoXgFpfIsCY]deqZY_Zq[v[VYgfnrzV]ZRcJQrH^TT~WovLqh\ZPcV[b_kLXyevbjofYcm_\ldZmdlwHOIdTUj]aTQhRTQeZWomPPm_>]dZ_X]Keh\^]P`pVMnwhqeSYLetV^[oX^ldg_apoCZ\k]cXRi`\uhdkj[ZloS]nsjroYmUb\dTSgen`]VmuvsaYjaIU;YfX_hqOr@}bzYmUxWcX[Wl`[HNjH_QMshZnZVmeNi\P^cYXfqwOqiowpYVLqlcJMSaNL[adMjc_|Tr[ncJUF:mMQ@oW`UaPF_jjfekkvZ?kleY^{Vo\F]UVwTk]gKavdY^Rj^c6eQOQOY`XkYfHrIxpwbWeSbc}XYd}YnkoyVlEP`dKZbmGWRSO``kdjlT`LOPU_hhb9aRao[kHRaX[YYbdVCfyZpUrgkMoffNZl][OLkinipNXLDi}\dZU_FNJ\XRrOUQgZgl_gK_JB_gZUlADejR^[eKkbvYi_XZTxPpU[lq]m^d]qVKRcd[FaW\dg^fKeoNwa:|kG@J[WPJ`_oiEe\bZ9laL:wU`jyah]F^YVAKKJHwg^HUtMULuOGZkUEhiaQZR\[]\dY@NThQW;\so\gcXPF]~NUei^ycoHGsx|~cCdTMd_{CrbPRZV^mafXxRVtQxlT]gMfR6vZhe\aU\MZKNev_Uv]YaKUifnahbWXN]WZAY]m~\]OnYKef>XMIdaMx_IJ:]S]\wIbKe[R;\oWf[S~jdQdfkcVEmQSWHTdqJLKDW[5yYLTTO|ZLP^v`xheTETebfc~P]g_m{m^BSoigeLoTdpHsksW]dHa1_axr?9[hFdbWk\gSc=I[[cNqJfJWKXP=@BWylOVTQR[`XcNO]Vg_ZsuBnSXphZYiaPgv\cqIg`sIWymS`SAF^Kih\Xhoc^fF{FPMMRNQ9QUZE\g[QQfyfe_PnX7Lw]]QUveqdBKa=zUcEGo[imSvZYpIPo\~\kO]kcl{tfW?dy_TxeNef]kI[\SDE_c5vTrVUgch_mppROJ_yW`_JV]xbSgbgHZaVQHe_WSOLR`sXeWXXO]7AxY[z}\>K:,ZGLHUGMfSpRT^MNk=WTmUUTpSR?OuYdWUPWlE=FFJKiOXi\\bS\RW`VSCfpheX~DWbuq^ODbk_^ggMDUG\}UjPGzRTlCYRpKjqlBnPWbi\U@[PGWVPUZULZ[WUJEWm_fVS^\RtQSC_cUxQL`OGNN`Jk[cjyf_fq`YZ[aiHVocRS~c[eWheY^TWL\cUL8hG[TrHOI[QTbm]S8fxuXhcSdh\YebHnie\homPdpyfCZv!qLM\ID\Y?ocLOlPOUoM[TNT[\VLljOlftaOoWREOTSON|tVk}l^^TfleetUkoWfYkbS`F\g[|6:acNrVY\R^g^PTvjWj@FnI]op0cjuul\R`WWGew5UTlQ6OIod_7U-iJYQ@dRfUzb]9pOj[QGNYIi`hZ^GDbddOCK\ZFd[Zd;XFKSS_[Lb]LqU_|OGQRT`fb^jzSfbXdSFHcu{vzdmY8VqO\iqQV|oi`i[gkRBOUdmPL[{zi9H?gOfGSh`cuk`mvTTmpWl~VIRjVohZvkzf>HsGnycMch][mR`iYTUOVVcpuRXm]efl1dxp[UiYGRIZc[bX]YdPXaS}fHXt]cqRfbQKTpR\lab^PofjWk>[jo|Q{CVcPZhKnSev_ZeQJ`wK]xje[R]lYHbdPxQVBsgx[WNUcudPGsxh;aYvgmrPggXp_Uas\fk8fHk\M^Cf_qKZOTRw^S]YZxS^n^\B[Z]roUVA`[J^rOkjV_VJ|dbdeUscjw[Whab]feSLaRng\eLMZahZDgbOgZSb`Llw]VthJgIEmP^[}`WGbQE?Yeda]cvo[[\XeGGYolbTWepTcvjghkQ[RTnn>[XW]ZnoksN<@[iXboUahhVTLryhqdejcu\UfLgWPR^\f<]zcK[kczQjeb^FUR^VZkGYSDQWT]~p]`NhdVaaoJqXVYVZcyTtW^teLVMjUaYQaahonIdpzb_GkVIozMaQV^^ErHZTlHgl{w[mUekp^kQ\TJMebV=OW`nPNGuAaakS{|qTb]_QPlDtQoLXZfnvvg|]XycVpZZSnfStbXvPeR[aYn_cxf_^Paa\N_jhT{s~\dc^Fbj[foyob^alby`U_N}lPq]{VjcvrlUhJVXRb}t^ZmXuSaWX^`YSos[hUt4QVbyVhrQQ[`bfoXS`w{^f\bRR\tcU_@\RVY_Yb]aOJ_HVocPVnOoTZcQZgSwa_VhQgh]y@CQlKNWUe\OGVnjDNggnbiNHjZARsinoL[ZUjZn`^^faXV^r_T_D]dhkG[^f^pme_XhzfpeP@RcN`IdaucMTdZQUZy9^kO\|f`]_RnFR]TV|b}RO97RoN|HGZXkQfa{\_efAJ`gH]wgWTacSxQ__l]t`MisIjcg`_LcSPo\bT`oO_CKKiQFZ}[DpewlEY`eFWJJY_`hgh^~pmToPdioQBnXbF\Ol[V^RYNy\p6nDaeZY_jgoiYhkmfkWNQBpp>FWU^IYRnunerntT]fdddO_[GLR1XHcfVRt?QNLlLKc~maYQokOIWtRjZ^OQShn[[R\s1bXY^O\\V[ebU\Q`MUWnHvdOafGTNK_PTPgEe7bNzPM^ddgN@zmwdciQeajUHObe\dZ>XnfRV?S\XbYVuQUZgdWRXp[IhWxwUgUby]]Ohdg`gLrVTEEfIHxjyj|lnjqmmlVhqVcnbg[RY^NXCR{kjcL]8oUcYYO]_LoUYUDCBe_6TrsDnm^pW`kfqWDd^\oHTO3Ls_PXY^hYhJmlYajbOY_iGRYS^ka_faR^}e[URQ`e]3dpKT@VNSQMTh_S_Bba[aNp^zebvPmyqrktQRlIN5HiVmUSZ`in>J@tf_Yu"gcF^qDeH^VQWbzWLXVYJwpfnPDjIVnFV]UaUHFG]U_W^Ia}^{YrgTeY]{go>^\TkUZUeVpPaYkP`\P_jisgWmTdp^ZZXmXuQJhQr[FbffR3Xb^`u`TY_loS]h\f\'_eYNXSbhg^VmlblHwnqs[`tgUUb]Goqc_CeRgNVn_~VhlfcY[faq`:kCauL[Ic?n_dsS[Vo{|xKOHfXePTWg{SPMhj_^W\WuHP_~ahDvR@=^^K]SwR:xdfhdLd`d{ceag\nuf[an^[QpGUJtUQ`WYGR[lCbjIfQi`_Wc|ZJ^SZsJ`\bDWE`fPeVwrm`emYU[LQdJcmmgERKOlaUk^Q[qXG]I^HX[biJZLallBUw_uSafe]|UPgPOgUjqhozi]b^jXtipzTwK\xwiY\gUXXjOnHZFZ[aPkCYRPLW`Wp\`_KBf][RJTwLj^S@[ZRqxVyc[KijOjSIT:\cHVe\ZdN`WtLcVXa;tFj~l[GcQlUaNZVfvWHRdKa\]qhc_ZfVObWh;;ujscLfv]icUILsYsTp^^flYqhcYaySbQVYggeUnyfZtIsLl{QUigkb`uqkPlOV\Y[TOsokTi^SWj{UrVqkYYiSMIyY^U`\cjVUk\UDm\fN_VZTahmSSev>N`_^^Qi`VMhvG`Qzbs[bqcpsWZOKRX^x[_hfSW]Ns_xLceS@l^P|ThM`ZVk`axfm\aRb]lZjUbbQ[QfN^cRh\;t\qOefGj[XZSrooTfx`c^efYib]prhlm]W[VmcVkXehWcJUdNtSrOdifHVTW]lSjerL`jagghYrja^uWVbgYTgZYt`[ilm]\nW{GjBZhizKZYjbZ|PiBTZmlDqZsPlrcb@QUk\Zpd>XUacqOmenVv\[uhYMXWm\Y[WeFWXt@^McNtXka[fRf]Vv6\adYUDYpGt4T=pTcrmVeT[Vz^SbYSUQb]U^]Vda\WjkHC]VPxeVX]VtNRgrRb^s_Zx=eXiVcaZMGMqMNc_bhTSjMmcebosQIjoqRalLwYUnsiVhZVnHgIbTIsU^cUfOUXty`hL^Tk`^gpbV^VLSZRIYWjUhWpA]ryoHdYUirWdLwmrNZXdMrVW>O\]]clg\xQFLC}RG[iTVZZFgngVIxaYq`hfYRUH_blcRIWqYnFjOtZJa`T`PINWOXzhhL|bReoRhN_n`mnm~aFvmlPOeOaSVPMShf9ZDHhVafmM^pchfZ_dU`v^qoD>dZSgLD`e`Ftt[O]DkEEeYIUc>H?GUYhM[bKuy[_hf`Mbe@ZLkZbZb]]H\KP_jEAWT[DCIW^SD]m?[iR}fco|)_MNSYWt^m[ZCdByR{heRF^ci_V^>V8Q9jYVkRhYlFbRWeee^Wigcah^xZzWSZmJNblep`YS8@RlaWo|c_TWNKmbq[{o]obgQ_OA[b{oNNYv{bhUUlliUOicZPp:f_:`Ro}G]hhecqgYbiUflQ_fnpDA^Ge]uRhXuVhbu^DHdVtjZPSB\ZFgGXfNSTzf]LZf:Oug`=iN~uu]{__YdaB_[Vn_PL_Uj[__g_wWk_t[_SV]i{qeLbTKfqnYjLlPr_F^R_xE_Xhftt]VNcVhWPFWQTOo7bLHzbp\dMXedjwjNDciqfxelb~:WNoss_NXfmi^sfygayVfVdV^SpO`CywQJWP[W\hERZ[q\`[wZIZMHrZ@mY_PP[pWMTWrYUO[nf\Md[m\tXzol]X\\SZSrZKmqALohiMk^J_P]XpI]iZ2jV^Hr]HbR_JW;ObRedb{WgjJ9lXTUVI}_~|PSDkMSY}]s`kok]v`cWoG_sbMkjdaZaXZtPGsmMVpRfNrXUivC`_vefkd^oXNh^ghpTQTZa`xXeTqR]RagJd]]XPne\\bIdcYce]i`f]Q~SdMaP_g{_B_eP_azV_dHbOWQR\ZrYT]uXVg`uciaJZy^~iPBw:dVpal\HTYbR_VVMbOPBJQfPHbb\VoesAF[DZtXdVjaSabjUcsJRvUfe7aPwMg[XWQ^bVZb]SZVOZb[eMOKPsCpdY}rmFuTiVZ[m~AtO]b@p[\o|FpQZZc}hf\RpMngHc[a]XMP}`[ZIUXX[KO\F[hc\ZlQ^Fu;d_]XXdoKh~g]ZnT\f[ShYhTUnNVQcd\a;fX\R_dnZSRwNMfvpFl[hYVTZYzKageOtTP}j\Nlam\]a_i][JDniUSxLy^aSNpoYYLrGf8NpS`I2WX_cx`X]a_Cft`qJI}X[{nQq[+|SZY_eRdv_mNDVaPkbLNSqhmZQPzpsH{SLd\ESUPS_bZYf9oYdXd_\4cQkN0`fOQd]`[KVWMLfZWCnWSYsmo]h^\oxlRa_YOJAxY`[Z|ianPLVSVpuvk\[>V\McT{cF9vuUue;ZnNPTSRDUn\BDYcp^HQ]SsBbafD^Y^R^VqV_thUlOQGPS_cUIbNU`PDKdaLiYfPdmnlqXCD8K\U`JkYK[mOX[HhTL]rMhWJJzl_tPJer\X=YXBdUu{vkYLtwKPKXMs[adXj}[^^XKz9ZZhbQRdNAq^~ldmngpCnwV~P[5gKVbfIYWppt`VopHmH{`kxqeYX^TZ_Z`LxsdWq^lSL_JlreRbhuaH\fkq^iy^je[`_pXlGNyw]zMVTgYubBiU[YOPav_m^Xy\^\PmjiVr^VTaE]_Rg>dShS`YjQKU^ldh_dcS}]ra[[lIicT[cPRiYGdBi|HulXVNdbaZj\NmlYbi`tQjTlOqulccknbl_X?eRYNfgDah0zX_^MROPmIZWZNmr_i][`EiNl>dULSacl^Ed``UoS`wk?jjxj\I]b=/J\dxH|e^=M@cd{X^^lZoH]TWnhZelGTZao]oQUtcQoRF]G`gSXV~Mpq]\DjWFaVTYcgWNQRWM[i=q^kKgdWtn`mSKgFNbSXAKPbGsPnV`b\WWOXyuv]URkps^_/[KxRagJkXgGedwQKiltGTSjQtd]_NcSV`\JZOIQokTWYRaUDZlfJc]>H|ejchYXVUcM`xvXZ_frwJignq_LYb^a@vPVempytWaD[[zRWN[g]k}ahWUW]fVpUpmCfiATd`MH]RQbRgR\WZQindZSHTT[ezOZfiWFka`_bcuOSjoQp|Ze_Vs_lTGiTE?j2NnhVN_WxsZbPY^\NJUT^]okRD`g\^ZjnY}WjMVWS\hn`TSqkfk[kpnsMBc[kXIS`VQ\onfd\sz{OML_NU\TuVX]OkTpu?a|kjTfae`WWQjW[n`shRxVUpSYqF_VlwrRekXZb~Wist}F\^\jrxbJJ_]k^_]aTv`LSUJemif{b}H_Uk}ye^Q`ymr_PHVlT[cR[h\GpNIbAdWMJ_WzL\bbW^e^CQl]pvDb\NOWJqDe|_hjhTyU^NyTWMocV[hPs`hV^\grpuHfEcfthfpb_RsN\Y\UJb[K|T^T]P]g~JgXdLvQNMmhLbJQP~g`Mchw[JFflcR_^}r}WjRX\\ZGt`cYHN_]GUOW\caj_]P`^tTtFYSN[co`VVfLbk_WUOReD[iYulxJOe}KUG3oJ[\C]w_\]YKi9qVi[e}>\nj~nQZ]cKCg[JdIRtdOPJnB?VfimRrlUM__OPY]oeWN^iWCltZMnqgTvi|esRi\\^I}NzCcMWYbUoOXxmfl`FFc|^_SlYQfQfdvcYM_IaNlO@V?iQci`ftSXYuPvYLKRPYIhjaWLldSm;G\uO_hWMmv\fEeXfbPNNpTbX`]UL]o@tyaRWiTrP}edRmQO9]]toYWSP@`[mXihaS[ofNUqm_DQ~{TOUmjHcU^SJNq\YqC|cZ8[_cdOn^Vxq8PLjtRmYjT\rBo]Ebhx=^[`Iq[PRM}mbVEdtPO}v_\pvl^EgMSWYlOmpilaTCiOQ}y^brMzGIy`}O^cNhi\Tc]yRWi]>fK]bZqiCwGgTzXSbcrgif}{V]VU;jkHZ[lhTTwgLjboaO`H_Q\cYOTx]\U_^_]N^eoUc`ob|oVhmbebX_fRpZjQeUG\|gBcTdVmaPevTdncdSTW7Bo]n^gtl]E?YZSX@Pf\Jbe^_Ypi`IkdrbJ_m]^T[KPLjfvz\g^PR]`]ecRMnQbPTONmM`YKX_g^c}[WUgHh\jURptmW[YaS_`TmZsKFb`S[VhKtYrFDcYMkxdULZ`_PaLnNVlHqls_[hMILZkK_xMnSfN_R\D{l6j;Y[p_`J]y]v[[SfZsW_fbEWJk]`nte[Ze`hibTjqo|gtRUsfbAjOhVWJKrTLrJOqSrbHAk_?dEzDM`Fc\]kXkefaIRVEWXtV`gRcifRrW_bg^eZcMecaMK^~vjbRp]k^ZkEnabzUh^ldehWVKaYrbHceJywNWSQ\uddU`cRmftskpX`oMKgRV^b]UWBeJ[o[tIIV[pvgCmX`rR=cN`iAInWriPgZP]nOaip`hWQ?^fxCm?tJ\kf^`\\XqdVxfmGjTaaNTJbPeIb}jT_nKZKRNsmRjijOJQkvHW_oh;pxIpmYX_aw]lOD5?tFVTLlN^NdVoadPfTQVefs_^NQgHW_cg^-fl]t`XQpR^j_]5ca`__~~Ns\QD]kt_4gvaJj[Jaf`k~^pOaefx^k_fn]WFqgalUZ\IiUTv`MXJn[LnT]O_\hwhvaX]I]YSiV]4]lulv\Z]f3EZ@hBh^VPh_QNEpsmAX^ZZbMLEGpjn9aiTSmhifRfnJObn[ijS[n\QiaTy}Y[eullXi|}F\\maNhNpisPNRrsLYXrq@CU[\_NSfgsgv`ebNmd9`F_^[gTgW]YfcJ`|cY`XUgz}NZzWpfg_H`n;[n^U\\G[r^GbCDhjeaGy`xyoD\jgXU_kNW[J7iWXj~n]m_\xgaUkZZWZfbYwl\vasR>U\Q`^g/.QlKbrN]Sc\amaYiH[zcr\S_hV_Wsft`h]Hc[VFlQoGaaotydPWSHii\ahVQObW}iQ\`t[a]Rm_|XIsJUR>X7np]XFQ^gd]UcUzYiLU[@MXkZ[nj\sQRdcHs_`tVXF_TeihnBQqSC[[eZw`MT[\\fDhn_Umah_KaQk~\dn_dl_lQEQL?[Kmsz=sajUVjMUlZRyzRoP[uYwdn]\Xh[AiQ]zEU`oJfLgtWT\ivcRVpdX|lbhO^c|ReZgiecMe}cKDiWOf~TYBj9Tli_nZXV`xmA`PeTWxM\ARU4h]eh`cf5gZS]cZQMNX^kxTbfqssbVuecpEE?sn\k_\H`\P[pVWQ^>m7Z]gor_^_]oYSlftWjgZO`u\[LPkKf^Y}grTGglUJHjYkXhScmhmd{{lkUicsQRY`y[jWfbkt_oIslbgiiVpjWdmcUP[cnMkf\co`fdFkRiiN[M_IjXcOLVrHOZtcYlZ^bltU\Vi[Wa`O|odU=|K\QlcdeXgrVsOVwgkKT[kXTGUElgYv^Vi|}j{fahfn`iF\?Rdm3jIYyg~uPflVG\]yKhT`U_\wsM[ahIkPb~_^KMyr}mTX[bUce[}xeYZhJqnziWzTmVaI`YNWWZ^dZnc`aseQbc@omej[`rIQHkb]ob}uT\ix_blcYP[vepY?c{xN\Pwzrdt^_[kukbzq]gZX[pej_lcm<]``lmqKaP|ag_iWiWOcDQSfepLYgZfTh`Bb_h^_^Ga]PdQ|bKsigbiYjjMKQLgbjfSVi\_c@rboc_[mIY]JY^ee`SLw_lmUbSn]peQ[HqoFM]TurcY{ctyUSDaWNmD\g|iNeNN]MXcWDPbPO~YhR^{w^PAWV]pcdOUisZZYOZ]ZLh^`R]Vb_wn^8t_xRYVjSvVR|[LdU^_uzbOr|]dqdp[h^SSqialp]yJtWwVSkanPSX`Uc][apAOShWNTQ]gHxTK@qC^rZJc^VC_SJhabf_RbCJ_Z9mCbYO]bTYpm=WrZR`jObZJlc^a\V`\:V_=F\q1b]^qJFfaRafYejYN_DSLF]cQ^YCTYVmw?uMcwOX\^JEjp]\?WiZrGgQ^YXRfNfkfQGjojYlTiRPcME^UJY0JgdcaIb`]|abw[E\hTE{dFcaH:uXHAdYkFKcZ_a]Xd[bqZVL`QY^NY\UVPnRUcwN]YTQPJNFb]W_gS\^`r\SffhQfWn_kijdSXG^fncXq}I>jpjin`_d>iYuRnz}rWTw~cLRm|NaJeFR"\R>@Knqj^sRR[WQ=GvUeeHYaTpisiheJbZKRjPZ^WhAnnQkJkbVH~IzY[VHGRQZdVFUPdjJakh:KQn}UqLfLT{PVnA]xgwS|Y`kn^^{uVn_MiTbvZY_cFLhNO?Dc}NaZU[`derKQqkH[RiRZnZFRUyX`ZLEjU]UsGZUQ^e_t]RiZYoWdFdVZPZXXVZqY|S_Jh:nXRVg\`fa0^TnUDsuaLbudPnW;k_?WWfofxugchS^BbL]WF?slQnMZYkYkfgGLZg]d[}`_\LhRQ7RQhWq`aLkXp_njXf7dOeWTP8ZT[diBLb:<<]hPfW7w`BcexEMRi_Eam`bSWhjhRRwVwRHzgYlHKtdYqcizcl_wn`kx]_EF`iypViwLWUpUcVVaphMd_XRcf\zb\b_auMVNKR]p`HIgt8ehjcBv_MP[rpMpe`Ip?cffkjlJkzeUEVeanaA`Z\]ZUhMN\\Qe\W[Y`VRNmrhLtYIbE_SuCOmaG]tlWv^U[QAIf\bRPReFbshN_h`qeQl[QU`RWSgliXMXdr|^lce_`aRWRVJZPgfrqbcendmRT`ermb>KvuhCeac`;aSQpa_ej`z_bYeWj`sSwu^]KFxWqXUj]JtBnQ{sQMSM[S`K_sK[[}S^mLeJQlNfjY\[VCkQezXuUrEQW^dYbl^lbd:oRp<`O`ciGawvUAoJW`VkqPhNf^ganD`VVi]V~nwK[eAjw_]YHlSi]ZNehTjuzjoYW`NhWebd\ljbRgfT]d]uSmi_cG\gezcE]Xtfjs~wa5n^tndRqiXnlWnro^W[RiWh\eQ_wT\Q\\MSTSeVxIGeBPxG]]cdFq`YBB[9aTqtN{J\CFnDe[npfnUdXZC~twWw=UYAXVqncIFbR_Y~`bNkmIoSWYXasDDV:[cFv]b]aWNUGnPZTlVPSpq\pZA^bac]k]MUJkrfkYUHZEKbIfa6XiTiM@:^eu\TKaT^dc\bZaqmdSqlNNUXdYgWRc]]dKG\whRvYdKBo`[`rwbsgKj^W<]7aScNmwV[TTZhbqE[dLGdsiPobaU]MZm`NaZYfroOYjccbWdXexW`a\en[PsY\[\hJR[p=seVFkTcwESLfjvv1uJ]U@CL|bYKnfkdDpKha[lZ]bTqhgpPyOSX\utiXh_GbSSzb_;WmkQhScjnzeXV\^lxuM[aPKfZnc}b[MW]geZjeLYn\PZG^W_c<`Lp\D\jiitO`UtJQl\MKTg`Z=kwjbSvu}hHTwLjlfOnpUfqbD_ohkdKMSQ@[X^rZeeqkdGpgONdG{{boo[ycFVIkObPU^Zp\WA_YhgZ*pQVfFjRpbijoaUH>l8XrTYfP[WU\RhofLK^RMLTXqkSYLUn~aCYHrB;c^[Rug_aiWmOoedTS`QP\T]`BiFLTi^NzSO`p]Zib\jZ[P`b}cFzrmaWGU`KeccApdOQ`Jb\ekWVpZG_S|E[kewibaZoUSveld`R[lRg]aq[[MXUF[b]^ND_`SS]dddTcG_tKX[ai^^LUGYQSXi]CNXlvYngYGW`O]KQOX`^BdPZsq@ZUzZqf\eJ\p^BbkndbPd]UZmtbBv{x]YgyZjlOfsPrtUFSv]lXcrU`?\kglYXjZ\dIDXdbimdT[rX`N\I`m[yTViXci?}@iY[UNll=GUmj\_pxczbPEQbrdjTYOp\YYd6?WFRNF|qU_FIhfcc]womWU\Zkb[RoiRW`Y`_JLDLpiHNYYZbNV@wPPXL_henYWmAcn]OYi]tHcccYiztbKgk]Gtvfdch`^XgTZbdPKaYjiMQLMd[j_EWP^jBQKdXmii_XXKzcYPi`codnhcf[mSXFXxRYUei[GKehum|l_Y]]\POm_V[PgcsZZT`bT1y|sUXruiThdBeuxmehURwf]fYhHMjZWNY[uWpp^CX\CWej`IdctZefnSLp{u]fWU?VvwIoHeLZTj{`\sf`JYb\H`lW_abjTwaZPnQrJTq=mnV{VZYk]gLQwtZRj>^QYX_MfqgjZuYRgoWXlX[\VSYZ^SS\wQjszdEq}y]WRdI[mJHK}gkvYinc\alQoP`YaqRrYnagG`RbV^_F^TjoYPoNSWM\c]R>vJv[RMdz5E\[ilbkfqT_Mgei]pWaLK^^NTSKbmO\cv[Zm[GhggE^ZLfSCVbFk[bidCVgv\PGeGPLWd_Tbnni^neeJFfKg>j_gppQ[caQbL]TQVX[Uj`q[xgS^QM^TI`aeNBJc_O]a[n^@_cC\Rug_qHbYUVMb^t`D:uPs?HFDoYZixPlyffou[~SX}ded;G^nW>trLOoVp`cbJj]FCbaqaJPPB`LKixRNppb>DXmHOaVWmR[fGcnkLWjWnhFvVmF|hqReMV`rHKH\Opc[eRZT]|`Z^As`=ricYh]jKggU{iiUW[iZQ[fNdJqId`lS[|cc`hppjgseke^bPMQc]a~hY_[RBiCiItZUUkZP_[E?t:O\fMffkcf;gQbkgRilJW[b^Udq$JOrbJLVoWN:?AgTUbPRSXWpmSRJQga_C[Vvr3ub`eSWV`V9pOpOkrMopNbcDG^]QT_upn[eZiIXYmOau^H;<[XxuZLOTJgYuI_f}d[[UgD5;zOZWuNha`alk[NuKZXGv9feRkjYJr\ahroaowe`n~|\pYbOYftiJq`Xg^CsmYm^h[^aaDQcpxCfd^~WEEU`ciMW^TaV|aFRaTLn>E8iJInnrAtF^]wP`_Y]N{RHLbqcYOhTb[XERzXZQgWUnRcAYf\yS|AnPYfi[ldGt7bQsU[fHLQnV^f=VLQvdRs4BnOJdXQY[kIdTA`WLshvP`QOLZ|zxsVLjTWRmpV]LSiCA]robWLJLMfkLdKdRZehrt7gSBm]vNWs`_OPiKNg}}`>Kh^QJlhpoiUOQdPeZSViNBPkMKrrMY[l\QZ]u]`MJaKATrq]KaHibjbMU\ZRQrIoRNFTvuWiHgSlD1YK]YUtGFoENYKPU_O6sRNyOzP}nE]cU|fKlvUQlmfdfiZcibZPZKX]\[gc[rxTXTG`CRRcuymKkTQGRXiOhTJQq[_[zV[N{`spIY_ccQDTg-tftf@x^kNM\eh_nMheZ9U_nD{]jlUUcleZaUlae`ZbY\[SBc^OfoIYo\n~kI]nZiWZjKqAWvgh]ZY^v|[SbbdOcVYC]^dazYWnNiajYhg_amHHTZ8c`L\iqhK]XV\[fAwPqWxRsZtC`dV\ccM\~g]^_8fQ]`ev]iaa\WbyamE\`UTdU]KRP_@DptL]LiU\cD>KPL[FdIrh`zjVoS^igETSd}\RT^I]EjfMYWOstG]kCY`nWvFpga[kQLTy|}\dpkldc_LSh[q\kmpbOgIeRVlWUDyYUdYR^NVSTbs5XHMZ[G[Weeh[y_XpSjbXpX|h_yj\gcbqgnXlQ`mNa^sbe`]MqZ`Z`WJCdaYaY`X]T_gXGJ[RKhOTa`E\];nO[gUl?abU]WkzY^P~aYvKN{hTIY,Kvb@vYU^GnsqN`_Zfat7^LMf\LnnGeiK_geh`_xPNUMTKLbGWfHS}P>hQLv][NUygmltq~T_uc?imc?ZA`t[}UXZLUQ>Lh?eWZi~Sg[H`vUX\5nL^o\olmy?dJ\l?Qbb_L_wan_^US^D`nMcLdLhPVlO\[sKvcSYQD_jUXwRGkk3=avRLNG^ewGKctSKIDWDtRDqXhHiWOEGw]NXVdT\dM^pLQsgDbTMBG]eqUZbg^?;^^uZaTk7syU>]SVfKTVY[^LdSXMNDOY_hXT~qYGER^Xo?dnTfIY`\IS\ZhGAU?_]WLzVxwoAu[epIBy8NkbMq[TQt{gRjYahdOWmlebV@qV[e[et~V^aQtSG^O@mX|_OBedDU\iaXWjjzHQVa_pkCQ;dc`v<8WZVJC~toL[\POGbUoV[eLUl`hJv[uf\FjMWk_XdSuicTcriZHZao`_V[YKZeBJEP\oYh~g1sixPc~_RuUEWWOnYe_l>dNbZdTV_rs\tpjhkSs[]zItamogVcQd\b[hSM_WjZ\;mlXw`khdfhitWW_WN|{]CMQUDfZkg_Q\mW\b^kHWCOtRk[wlxfQ[j]i^Qhe^QbbQ[xgZ`Td[_rV_]}MtnVZST\Y>kQs`_ZTZdxYgzS|O^Veq_PrVmdJxsrz}ZcUhJARQ_no;[\meMCk_jcYm}H_alYTVzQ\buc[jzGMSQbYs\Pe]vgGSjo\cXkQbpVTZVdjdXdkjTC`|ZVhPrCk]XPLpW_ifeFRc[pWvm\j]bZwr[]NqX_[gQYTmmq_m[lnulL\QR[UeWPZbTiPXAHkXr|VZ_gh[OmXMs^TmadsTh$lU^spi~ZlflOTU^\eHibM[nUodY[lo|S\JRNX_gD[ViZfwjVhLCiKgVenTtMR|rNkhi]Io@GWZRqAX[UabUPRrYMhUSj^UkWW\yy[`dHgmH\1Y4LcM^zX`YrWo\emaQY^jgvd[NMi^^`gV[^Kta]vCVbf_K_Deth[pykn]YVzZl{^vb^dgJG^bWg];\AYZejHgMJcXpq^icvGOgEPx{`rXJYnQIIgbOzpXV[_hdmaeIQOPDl^kZy^g^hZ`eN@GWh>\9KBwZ]Hq{iW?MasXtSgURCwAZUQaFOJgVzURfUwTMGgaTNRzMdXW^aa|X_a_^EUY{U\a\N3jtoly}XSQ~aeWNhSyeokVjr`uLrX7zZi{\hPzH[oYNYJhQHk`Xo\WKY_U|krc\YQRmVE{@T_[fLE`lTpGdhLYRnTYoD_aT^aXihbf^Kbp{ozQhLj[fU]bZgSHuBejse\eN[bp`O`|yddcjY^Nf[haSoR[hoQZZ[_mrOdwQyl^`_eI^eVH_tYPJSwH]NEWoIZ8LbYCuz[}^GahyGUOMqCz`GJTquIhQZhQQ^J`a}jxXbkSQF]Ud[STNUTb\W\^^r`WSQInNGSV}ndUS_^uh`gXSdm^Z]PVYu`cC^``TKdUeRE}gufJoGmJCTjd|if_VS_IC^nq_DY[[XJ`gX__fdpQqPkQv>VldUgjtYIpegX\WWhAtCd^[^\vbroYZ([NWq`h]dzWQ]SQQOgcOXtsKTRLY\O_H0UgfgQ]OW2TXY`cgPjUh`NXa^gNiaPbTQoccUe^JNWaqqZg`@HpLYR][R]NjEjSZT_aWLekh^Rv^LDYCshzcKqdWn:iaU\TmsgUFNZM`LeSK?]s\ag@Vv~_B[jnkRpv5gEO_GZV]GR=oCDVyVdrSO`mRP^J;kdSgakQYn3PNe9th\ayHeW9FUWeHr{Ux>P\fX`^VV^^GKs=IW]u=thCS'vOQe^]dTM`UjSqPnzQNQWGl@UaueEl}njb_F`aja[^bZDI^S\aNFe=OqOYZ_oQEmy`dbaYAK`e_sxXRQRiQFZxehN]9Xw``qdgVF|0AH0Je7Xu]aq^_SNligjgaGZPt`\niiximYEwge-^~jYath[tHlzZgwQj|rX[^zD`]a\UIOMo@eyO]frQ^eP[WNdc^}^QH\pa^FuaZrlHrIpffKjbg_Nkvld}spOUf`\C[atXVzFS]@`9XcI^abbW_Wa`Mfo.UkIRKjNkWZS{fUbdfZpVVNh^hUKR_LVfbvZ7M^UU`[zPw]EWYQNSZfoNeV`YicXdw`OVlQ_keiSEpdLmjO[ucX_iOlg6iI:iT]MXmnWQKLVWhYUQldA\RWKitYrVeTNUsKmnI\TbHu].f=z^jSMRfZ=nQ`^=KTmQhnSoP\O\NunqHxvQ]?^Pd\eZ^aFYhZF1`O]\[]TOR}fd^OfbY\pcGf]i_hKY?TycX_P]rL\~kpIW`OlsfKT`U~jVhYxt[efheCei[U`SLcpkZtk^O\_WEdreKZ\RanXWa|W_dhj]XigTZeQd\IUmTNubZI?sC[VYwzWGV{`bVh[IS~cL=RqYUd9codUfY?TkXirUUWQVnY\{XNI@d]bZMKfa@lqNRJbmcP]Ql|bOTdN\5eR]GXaKaVZBbaMrZOe~pm`j;dZD/UD>Gb[[lPdhySPWhwEXIeU-WY^ZaDia]ZCZdZnj`ix]YnWrBON]LNwjveRu;koXzV{qm]hgEyNPccTr`^\UlSm[_n9a}d>lqeiMQUYfaecVVeGtIYIlY~UTRSFeeYNosV9YhxBgSQKXlQifHUJotwggU_\mbXGZLbXaN{r[lEW\OpXzgv7`h]dbtBlqlcyYIkXbYZf^hcx~Su\?qX[ml7}U8ZZffPIk}tTUVgF>YaRrQZOO`QTStRXE}y_cEeDvcmK^mioiLz[}h^PHi[NMTcQQb^camqXX[rYdcU`SZNDjQRcj_jZt\{I_d]fedBfzhZMm_VZoi}faXfgQm`kj\PPtW^L@Vh~_cjVphCOLefN_iTH^mahd|h`dr^bhh]asr_j~lXxaXVMliwI]EX~`aerQeGwKNfGlJZ~;e[oSMPfklguiekYZFiM^`fakXc]dGkmaWjl\Nhp[me]f{itYwYLVRHQ_LX]SeVUaiz^UQL@tfcbYqIR`gOvTv[QpEh^[E\MOzcN`mhYmzrfMwfocZSa:lZMsjujobngeQRfTTZcLSYcHjrdT|fflkiZhe^m`c_NOMvMkOQPeW`bveUngEGr}ZnjfbaObr:lnfCQ[ZNMuNkpb_DQbpFyR[NHgFXhWoZ@mp`oPUVUVOc^TXRZTP^SlZeicsy`>B``WWhHUu]teLy\_Xkp}UqObFEZ`UQZ]JPYfbqTSkW[hV[UUO{s][k~Zt_RYtMMrgOlc^YyngoLCw}_bLcQRndw`p2jECVT\SRvsQ?EertQslPLDn{@qR{}Nppu\QPeXRaSNdt`Y_jqvqFFkQYYme_EAhazY|kT[@i@YUQJa\C_crasgh[Q]dXRs[j_e_iiJiSjEmd^RD]WL^J}BjTnDTVdme]ltUf^WlI}SfWq[iFYISprc`ag]sWWSMSnZbqUCW^VUQIq[]oY`WEMmXb\PK[pWTDe_clOYmYnOncGUTV^XT^rXWdkLLtTxrcgUS=^NCbRKb\cwF[d`sqfU`YNeYpf^EiiLrRXUpkQdV6Sa_UmwhUSn[[YWY_aoRbNZm>WXDn^FLkMjpw]kDgQOXTpDgnXKTOFy_w_Sb[_j^lSbLT{ZP\RRr?OmNHaXVZZrmLgCUT`aLgfb`ILUfgcV]UQrfjwgLjpPlSoIQ~SemTTWVauWRgLePX^_C_Tc\VOqV^heo]l-tcpwt\bVIec\O^KbmWJR{]KQ^akXddnH_nP]jSP`dNhpmO?iZk_=MW{Rct^bic;lc\Sjdv^k]fh`?ikYIkdpmqA]RkZU[m{Ni^uUqcX^NXZhgOWllX_^VvrQaY_MTWbXmj{PmK8_eXEtdDkSmL,N`cVM8ya^NYGabbUZRaPy@bnjYAlWWleVV`Wv_fdYnfHK^PgZ]`[[pPL]kbN]PQYWZ[O_E[QnRdeWN]caW=lNGPyPaYf_^kYSn_`uQX[jZ[}oWLZkNDaEPfqLtS]Z^hZf\RcShXdha}r]BjGQ}b}ZSSRs|[i>\xFNOdi\zagM^knX_QTzKa^VKIe<V[Nfhhs_LaN[Y=YTNjZhY^\Ij[fyPSt,TXR[x[Gb^c^jbfrnCqlVS\yyVG?CivN^[h]^cIjgK_l_f`V[fNVD`dMkaShiJ]~WwVc^_uObIlgdVTfXKtmRQE`ZUdZ]Z>rkiYU@s`TfofZ9zZTEWmFbD_]YNdjo_KiWuDSloUbol~VCKpUl|XzenUy`k]php>_mpfU[mfbYVTSftqHn_m~blYsqwLdzVilcl3_`qbjgRB]`aWdQfTKFCX_iguqmoZ^heZ_fNZfog]T`oUSOjRo_VbOgJmjkZShgyj;zOzjlDc>etZncmO`LR`YQP_Ze[gKigJV[U[VuUjMc_Y_]?ndFOKYtRiSfy}_OEVnW_^FXpNiMTeYZn`EZgfWk\IY_cTX[AMfycez\fRU]OWJJVPksKQSHqOPEP_grdS[ghNZbSCPZ^cZjQO[jC[E]mZd\fz[nmPyMNIA^kZf[OTPaaZvrJkNed`yb[LL`hbEeTvZGcXYJ~RZXNjdR[Z`Xs=FVi`JgKIaXhV]ytwMM[ckVkJZ;dMjXa?Ga__jF@GQXSSVcdTDgpogKXfAV[6]sN[dJbNq^_sTougKqZRMWFJRF^oIQNCW^a=[dZcHa;fIfv\pZPgw\^rHxXc=`T~tfyfTVzuPhoEUxh~alqkRc`jfK_ar]ujJbkMPuvHjdpSdlSedSy`MWPwTddmk:MtfWLe]OUTlprmdwf4]YjEZfW\KdXGBv~y:=SG`rhHXSR]YuCglTbifUR`Yi\CWCscObxXvp_e^`]fZb^LOISY_qDVsd]PW^@Y[PBlR[`jgoJhk?\]ohoH3gP`LPI`\dqePQ`jaR9Ye_|THJcUZD{Vp~fbOZeSMVydc]I_GcuY\WkvcNzOSvWVfu]VywphbU`MaSQ75TShoD`DogUgHqZTOegZic]c_idXYX#g`HgzhXINnpEVsi}VWk]BLUj^a_`NwOWJbf[slXFNpmGUT\``xbWlmWiaZY`^^^YdiCyZK^tkAIVSy^SwEmZc\mtX^t_aYp_SnncXUxsK\^_[WbwcS[MRiT[\^]qYp[NWCDQPX\be_gVhnUE^VIq|=o7{M^TKbk8[5W^j\`gLR^a_^n[aicdIIX=mcgSY]ljWUK{[nXVkX\`Ycaek`DNP\]kQftnZbG\Q^ChHgfMKadimFh[[rMYdRok_eIcCMrwZLb}QdXjSUyWXeGe_R`aZrDgYGbVAdmVX_bSS`DX]QfMR+b\bp_AU`pwgohFYdW`SEQbVW]W_\dTMmd=o\]tlmjClMM`KLRi^VAd{y{E_tYaFNb\^hWHTpVWSe[rB[IiRT>lqdN^MjYOjie[XL[dZ`TSFDlffUbwpIRgXjKdda_U]UlXHL_g]^aF~ObZZIVwSr]lTnWIOPc]cDCcfYOUOF|cHSlgSXmrUAaNVf<]sFclPoMCetjv_FOgeU{Gb^`TpuPcgY|hPMWXWm]KNSGQjq\d_[W?UwhDSOcTP_pfvrPmBH^WlkB]RwjwdGPESekvXCzawp>{NoFkXN6N,XirU^hZOhZnzi`E]tohCJxtWrhuujuYLaiOoMQYd\ZYUmaoT3]abfW[^jKNa]ioxdjGdAXY``woOSle_\s^_U_o>`NR9~bwp__V\bP[g`xh`joYoHSa[eUT]Qb_~loEjNLevbppUBUOkZiCKJVGD]UgSSgbcyLWpVBHnKfkY_oiRg]~JB]Jg\]wh]ed`a\U]fUcVLgb_IP_JJFUMMdndWnUPi|SUhDagdzmXzSdby?iNed\TSc\Q\ja^TjwqWeSblUPiuKLenfp^cHbn~}fUbVFfP]PV^UPa_QLMZ^mmkFdqYWqk[\gllPkugDiTUC]\WbYeh]ZZdz`etXeCf}GJj{POjf[slJc:>ufe\fhbsdi^ZcdelOP^Q?[SRhRU?kVFiJe]alecSVnrcftcWecMiN[Qu[sZO]BOn^akXbTewvqTmY:wSRblJPX;oWNbVKN@`VUaUVfrvG`Q[XlgbYUWWIv{{GpVpoS]d__]JbUc:UR]qZgRlcTzwjeVea=VpKYef[;rz\nnrAYLl\eAliXV>_TdgGQKb{ZrvmefMgdlNNQNmYZk~Rc}eUyQTFXTSedKScTOfZpd[ibgWbpVfYTKb~sANT^mNf^ihbtp`tUl[P\wvWn_|YcVIL]VqwnbKZXSYr|RxU_Hwi9l`cPLAEWcqdz[qgRbkl~rnheX`bdU_Ua=GeSXJhSW\`?afcWiWKV[ePxH\r[XPoym`Qi{aV}HXO]km{rYU`k]UhRgq6TM]MgMvg]=[~b]]`EfgwgJ8]XkkaUWiFqYpUxuPjd]VS[iWZkhaShcBdr`gPCr`^HE\ZplSlYlJ\`USYj:Qa}gPLhkoriGggkQW[]hVZjlIh7NX`CcMqDk[vCKk_[V_UHKfdkoftXqMdg^laym[_[ITu[OA_]IdSqnE`zJQxIR`Xdg_Hn`ZbM?fUuT8g{VcYY`T|[bOd`clafz]JMUmHhL\UQ_H[^rQgEwfOlm\VvzuN]c_[G\mgQhYa]_Gbj=beWbtyQ_ZPgYrh{HdIWWYlSZTW^N`X9[yZ`oDRb_`Z_]IX}BnfYN]AWdk]TL^HX-dviIW?BrXQkJfYqR`?aQfSV[lNk}RMYWjlhBXbmcQurdfWYw~U~\T[umAoUa[HxoKTRrnHNhr\bdrfF?HYVR`YMdPSDiLjqTntLImkuT[^Qd[aFUopXXZnUMPtsfZDuVtUpbaL[rYDpasaYcXRV[5SW[M_Zt}vN7^ua^3WLHSTZ`_XZvbcJKQhgVeVdeYnWUIMp]OfhErEmOpoSgdoZCOGHT\`[W]Y[U_I]KaXukp^Slc_pEZRTesRhC~eSShDKAV~vTfedJ_gsmcabgG}zah;GVmj]p_YuUhL^ZIZjM\MAcS[RpTIcQbi{tg[^}^m>nfgpk5NKebBs[rVoXE`QQ_HWjm[W|OJSplbwd\_kSl|giI]dXVTc`V[`q=GotSYKE=]eQgQ\LJc`U_mJ^[mQiOXi\D}ZVeuZ^tnZgWVV]eKWpkl=tg`WgQTYcVOU[_jOd[LninN[lpJpSy`wcOnicZlTieZX_IkKxVOV]l\glRVJ][SbWeNlxZTsOPO@YHg|VfWFNWZkAKGs|LTe\leDKRzShYHe{X_oWn}LSZYYKT[UDwwYMfxVHdZPpPFbPU[]yfI\SfTaBQG`WDmkjm\cTn]TO_oUcLE_OW]RHKFuOe[MsAI{:IdbTaT_`oRgwO]HvOfubSZ^SfZykg^faOFUj^ZRnaZ`YV:bJB`LHu[YLKQ]Zg?Wlz]EZvTpcS8l]WLlVQ?tPS}P\SbUPaH?Yf`hC3^LEOwqY}RoRXOWb]yGa]bk_aSbMpnePeJ^_pWq|^^gRurT_TbYe`By[`jMX_CZdFh`mNE_uaxh\QeQx[KVUoUhnX]taLD;rVUb[Vh`TceWz@aj=vLS[kwXH_S`zkfdt^egPVc_wZpdcp`\`X]B]EMMWIhpacglWbT_gep^VubOY_wRcogqm9=fgMmkRVDV`RTdg_HYfWcZirXTkac\YUqoPcQ\MjkOdc~XU]npaNya]lFc[II_[ZbD[Zbj|]XOGUU[hXfReXaqXiqSm]P`\FfnNkxdeYX`kjMekhoQVOJbw]f^Sap]]fiDK___;hoKl\TUBds]p]vuEa~lFKqwWP[sezTnYWoSUXDU{\d^cTNJs^hO_afGleP^nW\T]lfQaDTP^[ULZSeSekRmZYqoO`KJfwtU^Y_ZoLfighlQbf]k^IeigjR^nha3ReFZWN{^fb[kekSS]VbsffL\_hd~m?qinK[VMLOQYXc}Mkn]eRpT};LnuNSRgfaFSdnateXsXW_ZTKcFQgZvbPmm^pNkFVZ_lgUjnT_@TUAYdgPGaB_OOTgYqet[PgUCYZZIjONrKhoT]cRtDQfbi_jTiXhRU_CheQdcUOabhYg`cfbOc^_LrQ=oU\_lfSuQoJ[QMn9EQUO_ZT|kvfXapM[OtYKX`EL?h]HP=P_ghiWVEc`OYN\[GRmZ}UafJUbR]\>\\RmYKGmfm^UP9[^bdiaXfZan`JiknTj`Nbv^W^kLdLU\bZUfanrlVRWVLzTTNNM}^lmRVg[QSYIW|cm\Ogiu]^UnTzmcSJB~O\sSYYlfcXcT\Sud}SiKgXVQhYg=abg[IT]o_ctYlHW}REqx]UY^odhJCJV\TQTnf\`hZQpoGJoQ|F|PSimnxB_g]`S^NdR`R\u\gaXufZZkQ^SIWUMDa_\iZZX_gN}Nvi\cfM]Pcfa@rpYZmdQi\mXb{rHdGLb^XUjdRO]o_W\Zr`R}J_Q_aXkmZcfZRgjokIMNivOoi_RTWf`dMpZUX`n\zPO_QyawYTaXXblQvRf??MSb^tlubKiZ_bT\}g[O\]FNXhsZfZ~_OHuc]3eajhjdiWifONrU\8VaoSt[QuVSw[tZSYDqWWX]yNP^dy_goQVZncPODgJ\oruchQZv`Y_AVVI[mU[eUlgk~bMZRQsbInZ\e]p_fuPcNPS`fRugyblfln@^`_ilWllnXWk_nWhUy\yozNVLU>i~QYh]_WTobT\lh^ky@AV]]RCr_ekqKQ=_]{[bifaFPcLf|Xpq\wg\qdvmHJCa`NH`T[qlquecn`Pj^uQ`sqWY]P[a{^d[^abZpPcd`aZeakklbe\G{zafToa}wqi{z`zYUZ^h[ZgRfQVBY|YeYiBYWJYmyhy^q\DYRYh^Wh^Tib_}]vK`mm]tHd]mozY[cncPdnkmQth`OTvd\lpnVQNbWU_^ZSi\_S]|dkPOf^^n]UshOxffHNRNajnvJZ[Vg`kNUq^iH\r]pYGrIT]}hdt\nXu^j[z]gN[okqeHOMbMK_bjR]]\kyTSMba][Sgid_HdkdyO_XsVbq[cMstc|fdrUz^bXXhl_kQ_bjoeLc_cXZlL\bgRi`TrRqWM\euttcjSuPTyoUaUrlSp[V_mbTp]tYbZqaVoQajIhcYTlMRiPSeNLVpcerOW[g\J^jUgPE]0OW^^R]zdVfdfN+NokSd}x_r`EUjjc~[{YE8twag^m_slXN_q[>qyBaXdd]k[\~^WbG\^CYRnj\cPXktL`OYp{YwiSzv[_u]N\Mu\We`Z;jr|ftlN`^T`lZScGjm~fln]Y_cU[|ZSWWF:K>pk^Cd_fTWaI_]\XPXeEWd^adQlT\j]fgujnOfYU[>bsdaSkmiaWJQ]OhWUdROkSy]NRIZyo\I]ib[G_fw]rTT}EgtUU{fX[]RcT]]cmYrJca]]bmIKzkOcTR@f`Z:rnQNsUeI_XZJ`LRdc`[IWPbVTWweJ`\Veb`IQRbSUWlUgeaN^]a{V[PRgJSdTUp}MZcTg`|cWUb}{aJ{ihQLWfp]EFaX>cfgM_dZPbjke_nMbT_YSZgRQ]dKYLMcYUaU`soeXlpDFc]<|SSY\\l\PWbwq^srKoQ^Qm_gYzltC]`j]_AQ]r\OaFUrL^m]`RgskVfV^>aQahC=c^WFXOOZaTRbFMlzZletIZlp`s\rsxtfb|TYZFtgmVZc[;EXXfnLAtUYnYKevkFujojHD^[[IULUlXox]Hi`bb]ndUY[U\vphcLmFQ]UXjQOst_KaeQ^RKj[o{PR_OgYBc\WVk_ifd`FycqYToaFPXErSt8aabYkeKmKlQPjwKTj\qPGlQVzhNnYXtVh^|ieZNFQ^_[_TILKf\\vUDeo_SaYaV]r]MoZPTUQqVgSRkM\{mTnPE[a[[Z\ezJW^i`joQX`h[Vg`VavlBijYf@D\k_T^]kGRXU^Y@iTE[Gr\P]|iaeT]WqU[j_`Iuab\gIJOmTtQbrsp]fxYGGPPyGqcp\VGXhTtfYh[oVPnTPFTV_gTqNLRR{[^NpjWkQGOChwjXoCQSdkLf\SlRhr[pXaQ\td_KuXiUicN\[M=o]GnXjFG\`CCXei`ep[R_aVcZQlb`j]wyMWSRVaWU^gPbCkemYL^gc\]fJKSRWccWTkJQfP^aL=pZ[cUYpjt`RSCVvTPM^mcilldl`CW^UPjcQnZWYLYiB^jGhlq]}^S~RbPqedugx~_c[pKdja}pl}`hrsWqRXSbnSmp\UJfOXJ\hydnFsh[;^rQYXjZeOZSeRcJXT`]H`cVPtMTih\\bGafXt]LX^eMggTT\lVn\f{X_]nNmdZiIbemyma]XF`O_H]JId^Ze][^Dv;xKlEOxQe@\ZkWWELchH?Z]kbihhLZNh^xciW[WONEim\araWco_UOeu_iZMjtQ?d1HWbh^^ljPSvoZktheF{x^B_d^S^dUw^qsz|qDfuVQX[XecnuO\_\]gN<_ZY_^INMjXmc\]dh]X\|YlN|l[tkYd[Xh`d?sJjaTRM]oBx]ee\IgRc[cac_OY[h]oQnCH\~TR}QnHvj]bdERrVsPP^[OgXQj}h\Px\^YW>DdiSpaZv^ijhC^ccdbTsw|XQ[~[dWUKuS`dKiqVwpcrdhVk{qsAU^PnP`1WZlDkc\Z@CfHiKTpKL5fldcWxH_r]bxIb[_VlbdkF[mbceYalQbeMfDk5w{HtWKWQ.Q8ijiXfXlYU[WVURgdZyiVvTEucXQINaDt}LNGZMhRdXpSIQWd=lZqg^R^jYYXMPq_\`xTbgnhyXoTI[^mQhs{WPvEas_Uj`|cbdvtZjLXKiL\pD{fFQYRffWLaU\NOvNecUOW^MgipC[S=HHfrmp`ZcreU`tgVt:V_YbZb_HMQbXf_ekKNMdUQLYoNiJcYTcV>MqfnFcNcT;gnP_iXSolj]xx`LUTP]DW=ZNLuggZZs{lPOUU`KqWwUl_lOAZ[YcXts\_skZ`zlZ[qoi|MVfMdgVSBp\chSK^ZXOfmgUjYpaFg`CZtV^p}oqxd[]SGcWNzdaNaoy{fWZv[ZuwAmUo]RaM?U[BpYXbjRTSbDpDmelJaKgoXWEtAB^ftAUeUh\Wf~^`?P}Y]jswvWQWGlkaZ^`VOab|AiQ[FtIUM`\b]IGUbonmbebiY^gi[kUCnM[{\dMdWH]dZibDs\]DXFmuoofXVjpVZ`ifeG[VSVSKXa[`]oQsiaZN\{TedXW8diRZZPOfl]MU;?[|ihgcMB\Mgt]dS~^hNqaYZhpiPQJWwgZiQ[hXim[tObfjkaFR[U?k}TbpSNTX^lnYUjAudWVLrLR]ibRbkK\a^R`ewSqQ`NtU`WfW`fi}\GPvXsgpsfddEhPgU\tne\^eVgcH_Zb|[\n}OhxM{;oSJ{`oq^OU`bYdob_hEQX]]mqqVVZl]^lot|rPOhvYyP^VkVl_tT][{Jk_KcgRYZhoxR_TX|L]]_lIPKR=EF]yieW}q_dgXNXUQmOqNUUcZW\_ppgZ_VrhwSTdUaxUpX|ksTfUNneekOjnlTjMeYoWucOTKd}Ymj^ZXub^Ze_[ajYxHD]iFhMYeVCIaQInYhm\i~io2i_pyc]_`_TtgX\wmNZ]`]USFKq\Roq_bZVj]OftfTONHT?Mph~WgNbuoiHlgmyVZ?Zt^bayhJ]naHaT]omWvWaFWO^TKPqc~\UbMy@fgRU>mAlKIOSacsVu\npSA[zV^v^_jQe>]T]d|fjw?GodXJvTCpjhbX\tx^aaXs~Z7bmO[C^LAKkaVu_ZRmd:^Wsmr_qJ[vI]YgXLhYgbeO[bagnNVferW\dTdUXddubOoZcopUd_xaL^]flX]XN`SWV`bcbaQsU\WcfTqZXYeKS[qgkUqf_dfYVgkMx[oduRQcfSfnmjxYk[{eEbtOQdca^rBgPqM_ma]a\pXkXFhkhoja]xNyKBo{j\[Lur[VF8I\uMfXnRZ`YJdKn`K]ZF]l:tsW^ckVNOmhibUinV\jqXzhRqAaWgdLNdFa]_]RKc]Di\dht[RaK[\VfW`a>SfagYFVZTxHf_|QkSedYe`ibKvd_@M^_RmY\YkUGAaSdjjo`KPZsYjgjwRrUHhSFnQebvg_V\J^HnRMOcdX@sa_Ic[_mVaTRFql8U>pIVlW]feGMKqUkS^JIV^^`GL_aMqbj\N_vt+ZT0ruTsFH}YtbYfNxknRNI=a~bbdD]leiwQyXP^x[nNVL\w]ah~olaDXvvEib\`Rbf]Kd\dZCbVs^`_IjscFQ_gj:qUG~`UZdon_@XNYm`vnKUf`SjZLSS{`XRap[QcNjc4XOQPkYrnTFvbVFeVj^`hIZeqT_fX^ayj+NU_pz]ea'pMLX_^RUwxTf~S_XTrX@dKdS\c]FsViDYIb@_XZZTVUKHSOGR]alJND\]CbZOeWK{UYXvZV^PXpm]aGtdvUV~a^XNPTFNmX^HckkxXOTSLZlWFTdeS^USnQD^x`GW;]]LqglT_]Coy~{SZbIjgJOH=O^@UQwaf_SUsHeKiU^MVTSSFf[Da_Bb[P[owG>wTf9g\g4aqtgf[Rn`tFUyUZGRRXOJSw@Bj`s^TlI}_n`bSaeX~leyZbSS]Ekwkcxxu]t_mkauh^SSweUVk_iu^\dKoIq_S^Z[]TfHp]csmnxj^s`hrabVQ`^{b:@_P`R]mZQrSoRqxb]thQmjONqN?_Ac_odN]TY^sX[TgyTR_ZPUkVJ]GYUXo\sbXMZl]fpNbrQ]Z[oknM?lOFMsUU_bec]tgg^OWWNp_k\Y^bfUEexURyreagm^axYKcS\XsiMWJT^Z[`TsQhYa\X]R_\^~W[dbonhYcTld_NOlajYVoZgWVgnknYl^aDj\aPcqRQmQzTfa`O\UnCc_Qaobq?APNM`hQYkrO]YSP}sQ]rUHZw^hL[fiQsZYJZDlGebnw`]btkqgZU\[hFbggcci{Gl\[qXgep\TWTA[cZROKhYPOvhV\TW`u`UNLv[OF]|W\suehH`ekfwJJEQ\Wmgr]^YQaW`PfSnNMT~[_iz_^GOxpJVRsgBM\`^fx`}kTS^GO[J_qvcVJYImhXRZOiQPf^pl[LF`]mXZT[TW[\Hb\IJSg{OdMgQcbUZsfnYQVla`A\jrspUIK^aBYZE?BmQVJ]`lYd\kD_VguF[ehMa_e]iRWFNYf[Yf\JIo-L9fhSLl\rd=SzM\SbxVbD]i]hRd\dC~VebVk_p{fNTAYMpsQiYjhRTZikGZTlEKPORU;`u}eR}af~e~]\i@rNNqwRbsOcaeueAb_XSjmliASU^axJmiTvlT[]}SWiZReIjvYYwaZ\NtnmqucKi^2QIFHl5coUNc]QWW|HTfQWXUaldk{YIbgU]^]dco`qdZkYk_dKiqidEmKqbIZjwao`aKQHXu\Okd]crh[tXP>rff_|UjHQ_RNP^ZogGSun_wXpDRhQjtS]_pclNp{{rKxPSgBQ^XaNPv50iT]c=NuUR^u{ucC]KVz@vMuYHr[pqM]mvVVSLxCnc@OQ_UXcf\haZkvjqy[Ty[UJMY[O\d=aQdZm[HabScvncR]O]nyVgpOh]fgpXXZPy[}lhE`FDhhSR\Ded]fTbIjKWVg^pYOwM[Xxe]cwc[LM[u_e3qz]YiX[kKbig_gTgMQeRaVpXlU\hgi`[VsmbmXb~[XVG]_LiYRaK}]C^XgSDLO`dUHjrZYdbIvcfRHDpc_]nVU]GYRidXTRXzJ[\IIuPwgn[gfnSV]SeSCaK[Fr_QLdxfTwTRZ?wxbccVPjqiZvwVUpLTIlQtKacYrVLL\K5TKgRejibdpbccSdqOzPdkgIN[XcV^TT7H]PRG[OJMc\ZUxEK_}MXz_\]z]\\tMviK[[aa\^KJMPNYMPq;uNmjMp\AUd]djPPIacjSXRp?DZ}HWUrQvc^TgZkOzaK{CjJ[ivJ]SVaOVe=jZ@L?WYV[H]`^[ZbJPznlxfnVA{j\bwxlkG_uu{aRAhfl[cVpcWZdGrc\wR{MT^e;Q[aSDdfhUbhfl\iOjGI`]cymgfLyA]bIWPlYgWlb\Q\x\HY`YRi[Ihlijd^gpTiNmULnX>ckfgSNRHZv\ckkifgbaXgX^YQ\V[pbjKwZt`irCyy_^akY{_WcNke^X[ic:nXOQ]hdcX[Z^wUujr][Dee^fdocoaYmtgmiQd[\^\eweLa=bJUXB\[rjWfe`asknHbmMa`_^iHUIa[UxLNzVcZdKbNhZp[cwW]Fkh[whRYcQ_~Vaacl]U{]^XYI?rpjgXf1lOm[eVOQHF[Gidjf^A`]ajbmhuRrboeLrdQ=i[zUcP]a\Ek8ZYMkORoT`U^DNBP_c[okigtSk|scB_X[qapNn^VWRifQneJW\rHed^MV`DaxazOf^rcq\[Z]s[VZQRkvFQIv{{[fVRhQgQZNZOccfcbspZLH]ZNsUNkRQX/]euSXWtYRTlsVzCyKacuZbYhO{@YzoYdPdTpTaUnAe?`bxYT_?TmalSrMb]:ZezWQ_u\lqOf[_WX^v]nlMInL_d^dNti][V|F`>pVkgdVVI`YUdtp^e_Z`Nv|fYdMRVUrpWe_qZhot\eWyybdZ|R[lTdNaFNRkfZ\f^ullXdKO}xpEXaXmlkLqQl{:wv_lk1a^Zr|pUMcX[_<`[VpfV~N:7tpVaO[ggeb\qV]WTsy]GgXp_[WWSyhxk]zp[SrK^SWkqIgfdZH\vN`VcZhTNlnk_d[Zq]`Lf[harekmTsclsNERvc^ZKbO^OKJTYNl_X}VViWhgo^^\\F`dkRlBYUMU]]W\h^cagtPYj`qzmkmSwwRO`rd_lhIqegYeYiVWSlsda]gWdSUdf^foMSVY[UZH]~TRftatDOzRO^ofr]fQmLmPeKU]X[eqE][j_nlQuVUGX[RFANW_vMcPUZbRUZU`XbZZe\5VmGDF\_`aQTaaZtv[W`\_@jJRccrqQQXqPefXW~pYrLeuQVsTXVOVnAdaUlOSMZhbs;PSFd@[^OOcPYtcXx2iJgVi_VbMD@S\YNgh_jKNlF]o[S>cbSL^lQLg[TNUNYWYXdw7MNiSLZOY^R[sTnfUwMwhjMecM8_Wnhs[^KlNTf;]JeLhSriNOV__xjfj|mZppE}UOjbZmYV}lkUngdBk`O^fx\zlA7iWJVvWM~syYFVJu^Klsj_\RYGW}ghpYbQQPZR\pdW]\Uxjw\MMjVTaQ`SnlbGh}fZtDiGzO@k[CcdokdVbR[jJ^KjemeqXlaTRLbai`oCeZWy_QeMXVpkB^Q^ZB_ZqXsfM\fs`f^uMiRgV[pieRPapHU0uU9pMgHTe@jb?b_cZYKd_nM\yWiWTPeXbW_SJI]C\gvi:Z{Dc}`b}HO_eSHZvTiwD]tFI^[Jh8T|TnpNfBbRiUfZh\gS\MT{nL^[z@KX_ZJUyWWeDBLhYqF`Z\SSsD`MG[VZ[dMNUs]VHNc[eaSs?mG~dhe]{TZTXLKVQhKdYfTI\ljXOed^gRaDdD:og`Z`nOQceyXc_uScW]nC]W]Mh]iwxPTfL^bhQSWwc^Sml`QZePRWjgQuHSYWpal_FY]f_abj_XSVRXQNMRmm]TkOoyMdwXDh~Es\Va]eYT`gMZe`kMVcTFdmd[^C\Z\ft]sbmdO]lPYibjZRbNbXmmQj~ymse`W_LbIkTX]gdFg_[MLUig_mS|LWVRcV|ebYZciYvXP]iJz\jv]8UPr\m`sqIR^[mZV^?OZXmdRZabh]VGWd}YbITjeWIKnojHXMcZTSm{aRMZ[Gf[`cQ\tFs[fjgbn=\nMeZ{gEedUbX]TcSQpag][STR[oF[GCVUnS_iwN[`jdcHXfa[mkVdjjgizl`ZPcnMCdVahT\zUaW`e^gn[IBQ@_QOa8mUdgUPVm~[`^Z`sHn[VZGPkQMnCnb^\Ed=gDcR\MTINnRy;M^kDV\wWgIE|aah]IecVW@gW;U\PDXco^_pLmDaGfO]^nV>fcV_RYLa|G_\SVQRtUeOZ[[cjPg[K\cVZk_]eojomXKh`@Lmf`rYZp[LEeqXX_YKWeRXdHQfaSUdUR|VPoKRasTnU=ZT\Ei[ZakKepRXuPCiXUjRqOU]v^_X?=ZZbWzvJRkQzNXNmgUNuOibo^~XZTWXHAM_[tR\Ua[]gchL[mS\Q^RfSJfc\KXjfXKlSFgaMHpa_8vsOLXttY`cLiYnHY^fKm`UhuZ[bHOV.NN\Igl[@QKg_d{oRp@SVV\EBOOKU[f[sIj]To`hFB\XzLdiktLFfZV`_VKg`LM>bQ`PedbeUX[yS@bVM:OYlwhXFab_WM^jRncr`Lm\b[PshqojMhVVgaljz^aexoMORWfQFZwT[w8f^u|dZYL[aA{^kFdR;VH`p]H^G>WIoRIOzVxw~\Dl]igbdYXjY2aPFkjrN_uxVhi\nYV`rirfpdZWpZUMZFu~JPfmjqaYVV^nN}WSXeJN7]`z`@YYzm[UM^BEtgugT[vbJqXSSON`M;qmoViz=]da:c]f]Xvjah[\e_UbQ`WbX`wcVXL=bHmr_^NA];O^cM\\qDHpgmHWdSI|[_lnrlGJW^Wq=^^^TU_ob}S_OQ^^_j[iQ`[L^dfYetYf^TP_D\j_^Mg^swxcjKXH`6:GY\yV[PCmda:dNJ]v[c^\KXn}QUAink]WTor^1NLbEC^gbC}ssbeNjSdiRgLY`pX4r^Ucwue}cqpj\hlI;QMUWxquSswXDSaP_wlin~[mP?`iGU`tAH`<[XM`XeJey[l^smtSV\[cXV_cRc`NgC`RId^~yWeZfSaRM[n\iYd`KRRIMRZVS^he;YkmZIoGkayX^`nXkYVkRfQHKtWj\Z\ZxNXgdvVZQc}wCdoSTyPgjt`lNYocT`p]ZQ`koY_epUonQbe1\Bg_HrgTYkWVhZTfaUy`leqToFd^OXnPdKoDSPZuZzmWfSabKIOc]MVL{`hV]TTr`_Dohg[EoPY_pf]e1^Q]fZcrd^mQIi~[xhhbViwddryji.k]NfWh`}bAbbqIkfd^`gY]a[HzcJZh`bV`zgPpQSeJd_Q^[oibeUZchUbU]gWfr;ZA\FZcx\YgmpmHp{]f[|[`@as_gJwVRde\QhZr[aEWKbeX^ar]ZbxfceY{KtIdiLN^XcNhLWVN_QjWyTMRMax^okV`azeOPUdIabsmSFayXHZpcIdEWNw]sTXm[h]sp_oe|I[YSbXEU\PfKm[Qwdq]VzM_O]smhpqh]]m}`[SZNETU]{SYw8WDI`cxHVXggZz[Lh]WWscWNbRj^VUbn]eWmdSW\gbpYRlWbZZWLq`Z:iSmIkh7M[aOe_{Mg^miYzYpQi[hLiPdGaHtUU=fhXZl^sKw]qe_i]PKYHY^TDPZ_U[U`QSl\zIqhX}gWaZh_Y[wockqyST`Rlta_`k\pPTmglueyyOVWkPPZY\TbSMElJFeKcjqdQ\eh[c{LfaRSgKtsjSQUnvM^yhVLZRlh[wgj[lGLRiTyT`obgoJsIaX^NGcl`N]oHL`nH^LIUs}PB[jifph_dBaYO]v__GodGad`\_vZXdF\OZJi_lM\USy]eMNXi^SeocFXbqZocdp``WZxztNX]V`OqwcOXEZQgY[VjrKgYPkoSLjVKhewjsn_aWLdXE{q[^hr^UQnUQTfY[XQVWi_^JRUcZ_w^ZU^[cVZQiWUPZ@YveiREpf]oi`baO_`hVWhSaCebi]QIjSRj[]otfUu^h[eV`kN_^nj_ehv^R`uy>cUCV\DUwpOG_flaU]|sjQbW_Bb^fWbVcBfFUH|Sdi`NVe^svXRWcb\kWQXLbhMXfhH;S]eguh|XUVhXoi@ElN?kZxOPSVTQmvXYNRYBA`_eBq[O^ThgH_gfbc_XQQrYs\PLjr`eNa[{UXpuUONZeqgW^n^I_co\YZ]MQfd_f]qVbhbrar]N?qkfSMLnedx@ehc]peh=d]mNkmbgQsvZmKALI[YRWU^\}qG_h]R[M{cUcRiTmb_Slb\d^pM\eaNdHik[PgtjhnY`YhYGLbkNFX{`ZKigagsf[WfRxeriQCaUb\TOR@qY\`aR^hNLwSSXZORPKTT_[v]u}QK[]eefUaaa[jYOgl]ZKP_NZVfVR[SQJjH??XOsdhWKVwtOgjPKQptU^_fuUtZTHc;MW}RbY=JQcTUJkdpfVYnriZVSb^ZUTQSgZY[ohmahcgQbOG\HeoTmL]xYHlNkvOf]RMcv`F{tcCXWheWIWkqGRZi^dMdIrLqsVnVVVx\AlVT_`TZ?DWZWIZc@ij_NMwBlGTK_siQ_Gdm8MQg[[za_c{rXVX[^AH\nn^jjPS}ytyElG\GJm_9mU]mr^IT\[QzWSj\{^SWNMqVqF`esU>`FK^mIAWUD@Wqao]aUTfBYImXcYThXddoGoEROb~PmJePTZbg3soutbaXl]@\VaCofpUk~=V~]TlTrh>IcLIDwL^]^V^vMVkdc[dGVQIc]bIShqfcCjfQYWtvaamZTd][Dc}_jYlXYcVHERZhebpX`_]W\Vb\@_^7`jacV[MTlRjS\hkQN^If`o\ppUbhE_oMhP[liwRb{[^Xb_q\hWbeRbeN]^Y[eeyVa]gVcIN]S_Tjqvpjr\rdy_XRvaLLMq_p]X^OnTJWVRyq]t^CY^9W?Dcu^[kwY>Rj^qefm]V\dY;_z\G]i|DUU`Vj\\YsLfRxXNUWgPkOONPO_XaoJ|qQyNkV>S_\XTdcDhcgL_xI{M\Tfi[|qbLgA4hbh^IFejQiR`Cgl^@v\^ELPWeXb=f[MWJdC[Q]XLXMQ<3[qNR_y[~\i_vta{auYP`d=ORbRbLoo]U^oTKL_UHrZPlhpm][H?g`fkjPVokTGfaGedgMLxY^QaT[P`aX^^n[YifZPj_ih_iiOmadbLc^jV_F^coiR\hYshYUseWV[dckRW_qVVaimpXX`wxXRk]?_gglrUXefr}vc\oWjYbvblrOSSYJaSXL`ZWkrlpPHbt\W~T^cTojcUeuQd]paIhUKRiRg~yYvlmY{iUae\bXebZqi`v}W_|gUalGiY|NUXYUKiVhePky=^sf_twlaSWk]\e_@W]b]nWZnkcGk|lxRukr]lrWWfqipd[Powm\`|{^Lay^v`e~ellmQw[wPYwQJjsgsjiTiXiPkvR?]TyrdicUlVw`ZDr^ZgcTpueZcJbLWYWcSj}RZ{gp]i_fi\c/[lk]Rm\OkRhN[RhX]Xc_qU^wZfj\miMBbcGRlEVK[QeUjLiDRbdVbiK[cgdi?e];NN>W\U^[UYLqCVVfKOqVaxudZch{LuJNXUUYfoSEqUWahaQdYP]pTe\HZNLd@ksQ[\KjUtXEje_Ya4^s@Q{Yx_LYnhy\IuiLQUKHaYYK[PhXJgIxlY]S\b|_ijMghCTT]ILYb_YQ`]bjriJfPhZknPhSbeO[SDQfGNeCZjmo]RJ=gdig^BV;bT;hPS@c]iuSGJCXOOw`\UXTvhwWVqKBkqzlyk~^,mTJWvmqi^Q^I|9j\F5pKmKGbUd@WT_UpZvbgX.ULgTk|M]QR[ZeIEXwhQ_[gMoY]]}`UfQ[phH]ZMG`aoYFXL_@BHZKxj]^DqY_TSY\gFDcMfytUaX_^clrygs`mhY`]mKZ[fWGktwZmVnQKf}lZVSSX@~Znrh_DVentINWmN\Q[vVD|xon;wNC_VWoMbsinJQrVVPVflBPJUDwqJxKe^naPIPSbMk7UlcmDk^epe|hM^bkbsiP{Pc`OY`rQUSfy\r`ev;bWc}UT`bbhUc_UaJOVxa|T||f^?M=Rf|bhHEnX[dUpg\[dgSWMHimq[_jbW]oSZ}edfAXsaXX^jQ^_cwWfZfeex[`^mZuvYIIMoXisk_S4beA>_]fTiObIOSeIS|HmcTiWQ^yYQqafSPbijprTWNlb_fincKZfKslHem|[jZfb@VbFE]qlRcZ_^dZLX_VMhaltrFhXOSaeupnNoV]j|f][XrWUJxe@UZwq\fbQY]8=lQ]ecNUZ>Mhbw^gjbhK_y]lqcjwUZHXWumZSfD;\veMhGw^xKNWSm\`oYZvNQfiYZ_SXZ>]YWVddTgTVc`cGWSegaUbTm`P`}DcTRfl`NLTXz_QTgkOewWTbUUkZpT=dAKa^Ng]JP]gfz[`gf]uEdCWc[cJcHYrUYj`]caybrUWjQuDh}Rbl`Tfa]WElKdBXurAb_`\hHQ^Ob\Y[dtyvjQUZmf\`ch][dcclxIVO]Qd^gd_ZHtTY]OMdeWWgg[Vd`ediPojWc\Vg>5[RWQWBVoW]ccZzYUSc8VW`hbXgXiUfX^Z`]\^mQcrpaOStd?\X^PYgOi_bY{f_R[PBRs[UU`hjzDTgr[mR1etdRWUUCMmPWXfxM|jRoSby\[XzvZYbnmhkOOV>VcfdierlZNR|Tb|aeU]L{bNEfabSDj`TVfTaV`Xv\_XjotmQbd^v9[VMIe>^Rsnfqc]UWheD?oDfSgoBXZrwq[_r`oYN{ZUcQ[aK\zcRygDMl}vijeNlOEkKU{Dfejrg\PiZ=FLf\dl|/RqmdZgUZMehX[YedcUxm]C\imXHVaNjY^UiaMSzdV]MJ[iyUaeUGaUQlTASjkJZ{^[dLUa9]]fppQuLm~F{wghcjwTZ@^g`]lbqJ]Fc_dQfX^Brh=bLPJqR^pjRHlojvCUMXEap^K^adckYrddJfeRiO@R~WbIY^Dg}^oUaX{e_Qdk]fehTV{FXjMW]WZQ^nwgcl]V`idUPhXVjmoqj`WYar{nd_\LofVUNqMZMe]VbcieJjfy[hdqcSc`VZ^WvpZcmpZKpcQPjqmC}TIeZmKRuTjNm^ZpWeoPQu]fdbg[y]P_dmWlU`stXZk`aOcTITkde]N`t]N``jLNd\Sd^W]exqViLXnbqZ}LblbIJahU{`iaZSjubc`xP\rftZO__jkMUJ`Nu[iI\rOURljbgwHPerG\fVePsa_EinogjVtmbkOL\{2Gnt^dplbvwJ]vdOtRj[I\PY^OM]K[aLSTOIWWjoTvmaIQhhdsVOb]Xob{YFQ|@uo\`BXYH?xp8^]HpY]cXSZUQkXmbn]SSha[EPYCdv^hWZMqLuS_,~pYc;_mQPC^j^Vr;ZyZmxeqKB]aI][TVTeWrNhnlzORLS\w\aQhqW~X\XOmb`HRc?RIEsci_TaIZRjNSUVRLPZdW_aRKUb>@cPlT^Up`[_dbiq}LWXGbKSQa]POYOoA[~bUxisyfqR\ZjLlPYO\auYUgNknPq[]YWZSWZaIQVSQbZ=VHa~{[fkUWZWQV_VSvgeZQs^_\d[GdcC_hJlAgz{VHZCW=XSdSY{`SUVOyMdCUtYYjO^[LKbwe\Z_J5SUyfuo]LSPBrP~Qb]qR^`n_SdmDSlt9n{IJ|a\ukzSaW]kLZioRfvLLkkNUZXWaWRjMPIkQAKEW\{^zkI_OiyWZZ@]dWgC\Ya^{ANBYJiP^mCsyjUBsgprrlrbresTWxh|i]mQWNQT\_s;Rlej_BVFgbGSA[QvQb6HsN]_TexNhwTh][fnJTdkb~KXsenRZbGXcTjqhR[NdPnfH_Olf8Oj^Kg_xW\avdiTl@_\t[PjYE\S]fKk}QIeRNZ}TZOwLX[dSDPbGeSgxX|VexkckYZYU^a\Fmo[Wicw]a>WUg?P_@;xzVUygOBUMTZY[VHiP{XKi]iOrV[kaSQ`u`KI`P;OPSX_Znut|mO}qT[dePhL{j]TILN[[ZdXpUYYZTQZQOqbedeanQO]`QbSgM]^Cg}cqIXmWULg[bTfP`Lj\QD{fkHYhF]knQlkNUJza_DEfRSd]\cqi]VRJMGX<^ynu]fW^YwcakYjlGT[=UXTNZW^\NiSSZHgNhOykSGbia]SdbYfkjfCaniYehLcWKoQK]jo}Wf\agFYkCt[SpH`HE[DaTof~T|_rwQ7Hy?VkO`Snw[bNR8^>fW^___j]KITChOLSW]UGN[a`Kc^cbwRyj\y_LMnjuVIK^i?l>S_IX]|lWN`cdO`F_d9hfN^ZZyKGtSZtwjc^xmZJR?hdmqj5XGiirGWSIsU@[d]slhIl^lZqOkZ`YyUeGH]hz|XU]URJlM|YVVvPohovWIqk]n[cP\TOO^VvAD^Y_ibLraggt}itbShZLOQJ^VnoPlYUujGpm=4MKX?VUvP^acLdmUbYVma^pbCVW]cYWsboIh]\halNZJeS`V^OP^`W``ZmrUY>gZcjXsS_wRdcJTZIUEtT^IRGXdbQGDbsnYVbaQN_Kt]gx`\?WiMVPyoYLpmZvdjMM@^XAyhntWbglqZc_{nVZ|zdp]K\HQcLRhS}iZW7TrL~jX[\jiVYWCU_~[[LwGSkEVPULjU_N`\l]]twW^kn\=tWT[mK`\GhUZE^{3zT;e]jJGnqGFoOUMWSrldqNKv\cSaLZJTg;imuirjLbHeJJ`bmcVMe|oSRhleWNPxYRa`QSWZD]V\lq|b6pkgSaMWGag^h6LM^BQeSZUJYUeeu`YuTklHTpqpbeegdvqu[TfwjeYUVJ^op\q`{xqOoyoMp]IgsQ{FNPYjVObjdkcPX|YbrlCmlX[gib[cfm{nepaglLrw^ht]VTg^nJWPv_sW\ZWL]ziiWZOMkncqaate?1RaSFPhV]`cfplvn[UjMeQ]cT`rC^wbrR_gfMcvjrsoZslE{^ghU|cl^b`mX\lPOuYTSW[WW]zdcgM_eOYWZs^Ze`XZZe@fXPlY}LFTzW]LdcYYbZnQ`Vt~cR8TXbMCrfofiTWtERcr[I9gTvfaOUrgTSSIh`mIxflHqPdOpQYecYsSBRwVXfQpfpafanTlOsu_mEca^iYVZLLR_]I@uXSdi=JzUrn_7l~luXFBU\TPZNVeZy{J\Tp^Pgc|aEgvPgpI9a_VZQrC^P?ZMTTmOaWbv`^WYLzdHcaXR?k_^U]g_RVNcWcQ8lSkYr`jFSwp_pVcSUWJZJzY`bO`VBgcJG\FxzaiUlfdVFj_hL}}:vpScXrj_`XdQjD}AijPHgnPIVjU|mVRS`hOoDPkPnN_tPhZsc]SihqMaPjOm^Pq_UQS{Ui^bbf]{wowUDcSKNOihtsqNv[rUo]bc^_]KaqjVN\QgnKgUgioBLo]QceJeL[QlhqthhNX\XUsO^_tjUWPT_ogcPiiv|Nfthc\^PQGmXWBe`bQJX__moj]bkbWgX]aek^QQ^V\nP=jWkF^?i\`f`hNbunKQ=VRsVYf]U}[d\LaYQ~iUvXnzfegQIz_aXhSye[f[6`sIJiLpgtb`oTRNU^U\`]^Ig[WMSad[Vr]ZPlwkPV>UEQi]]ki_bK]HCjSYfWOnIovVUUeWYZqGuylq\\\fUi@UT>|^gghSIZiicYmeFGjUmZ_G?IlMKe[OJvMF`pDrUpnbLfV`L|S|VJ_xVp^~fXtH^`@VjJtWTM_{VgUVm`pwXUR~mVdcyH`\idMImROJ_s_nU}egaZTJq_mJnWr\{jm=>thhir_r\RaXV^aAObihS]eR]JTPb\NVPMW~I``VSeRM[b]aEdeg_[U~]YNUaCYW^kx\SZNaQdKuWFmUw^haM_eVtkPb^a]gYH.uLz`ZZRa_|QX@[co\BEm_XZmkm=rqU^S|lX[WUKsgfOP`ZQuaVciOZazQSLDybfKWhIeXa]Y~Nci]Y[beGnmR_LJTDjXRTg`^io~Q{zVrKVS_aaDFtGt{mkkac`KVcaehGlJQnso_jUbkb_Q\^`Mo\YlRBb\MayYSu_VKTUiOp~kt>o|ksZ|hGmeWTPoH\NR\EDGOptUO_SP[MM_Y[qLodFYbcboY]q]DbUegXzgY_TY`^h[QTQx[zcahZ\RiStgXp]SW?TvqXO^zfV`_YfJjav`Y{etPeILfm{erjHPnOD|zKhKgdXkGQn\Se}px\nV]fmZHCUZ_]SKggV]OjpTX\K|eYgKbJdZmdzXGsTYqoMj\]xiJj^qRLnHY_PHWWToOag~rnD|Sa]]xiXMRNb_VB^hWhh\gSxdgG^BHlTZO[}X{VSkSOvQ]]lHF`bZ]fOO[niWVeO6}iGFZtdIXZ`ikVNbk|\UWdf|UhYYOVTnjJITQIg]Yh_ZRCnTIe;}^ZFZSbs]INT\aRMoEWEaMvsjMZbj|I^e[c`N[V_}cliteiKQ``dd[TQbdGVg]fyb[gCm[eye`nS^qqMjZ9kxtX^nnXruJQ]QVsTLWnW_mXVia_XWcNvVns{pP\fQa`Ormg\QSgRJX[uM`YXtdfRa^Ih]_cQ\SkbOI]SRYnRn_jLQ`r^Y^[LRWcXoVdXfYitVkNemPPA[n]pjgYb\C[_e@iReofhVVAlWe^O\iE~WlXc]iY]4\bYZX^MTVaT`UhZp^h:hgBN]XoXPjFUZq\`iWh}bmYgBNZIf|hdu_W[\cXUX_k[TBQVRQWWR|^f]fvjp8:{hPM@]kABRMjk^WgfGTUC`cK^{eDVoKYEFe\aN\~mHj_klKbQN;]kpXdNUjTTMxqxd_`|eOi0s`]sbZ=be{`saUeeRTbWhdRYdZrpzfiT\]zeQ^NK\Naa^\OgXSRlaingDlOy^[aUYvLTiJJqOSvMPxpLi[soFf]DTg_^wQiWYWmgUTc`I^ld5vhmqgi]_[Vh[]HV^bT|NZ`hyUdZa^Z]eccZf~Tcdm^^aX^flNwdkfToqKdQ`PVaG\TFXiMi>bK[PWpdI^SdOTofMrNLW]WLcafOmYilTHVify^k^kiYea^iSnif_U\pa_kkWfOcSTgpR[Vp\{eDZckvQ]g{_YfHWO]OStvfUX_ai`La_fUJf_lC}ohgXcrCabXcT`\VknQ\NX\skObcW_mvBRaeRc|jHTgQ^Uf\TXS|^]__^VQu>PhIUeLX\]jTIme?ROYWOivak`kSkPaxFUwciK\Ua}oQvNXh[vQmdRfohq[UXYPdbl`ptpQheh]p~`Z^gllu}lWObfGBv\acMW]cXqOrWvoPLI|Y~_jhITGpQddZ^g]WhcNkR`AfXKbrcW]H^`]_`dQd[KcNbw9{NFm]UhL[g@mS_RnXh[eJbyPyZlpX>xQj|wcrbRT\kQbQ`r`rdCVUgY_Ed_XYg^j>Wg]HhXmBYcTrm_lNzZqHXkIQ|JPMpRgUQ_[hOWUrZUVgY`cKfNULeUa\kjyW[UauMAGWPaTFRnuEvFd[]CLTWqCAZpfk^G\OoThbJ]gevqIplpp`^MdX[vbTTwRx\_EcW]K^ki]}OKgnKko6THW^]fxXVe`OV^JgrfUYWW;mu?|`RkcX=TI~ZL>d[_Ec`jjLlH?$DbDRK]zYicpPXih_KZXdb=Xc5est\ZfXbhctTAHu?igP]l^SiBG4RbUQ\i?MUuq^~yQRK\F;si_ZjvOagPSY5]S]~Pbjc?_SNTdt/EQYnUkc~ba`]jPS\bmKuWk^sfkzaniUTiQdWsd^J]~dfKbM__[NQM^`]FJ]]GVWY`qxTfOHmG]jLOiJ2IQhosh^m^GOdnuL]ITT^zpaci^RcimkdKI]x|[Tmy_PXqdPfZlighkn][TzsnRnWgebl[4pPnlYZw]|oVc\OoP[fBEa[ksxZfTQf_XZ_phoNz[^fpG}JbMRQd\^c\pcR_tMfY}[XorLI\^RPeUL]YFY[^bi]Ri^_fRT~cwno@SsNoJFY@i{jWrsRaSrVcEsHX~ps\Jgh[~oZ`i[U^XKcqo[em>XMQG\nN5VUPL8E\AgiV[W]ac^UvavpgrSlwZ=ArO^VAWmgdI`DbcWIZJh\QGhV]vNhIdkbpScwgfW_Qau[N\xUD[YkzFshiPl{vVnYUg~6IhghNfCVvrVf}^kPOc]dySg_~jZ\cF^F\YQ_NBWcfXs`WkDZfl_O]aVZcr;[U8W3Rv^XFW[J_FJoos`VLPehlaXkcxOIaYbufeV`]rQT8q[OfZGhiQY^c_Kew\UilU[`Iq^}qe__YP>qn]9IG{P]YXbhZVbVoAcnmgC`XctHQ_Jb\o^DKf]ONaLUelb[^WiePuSUPkXUZ)Vgk}^;Z^>sXhf^pt\itZf\_Gbqzjf^qBt`UeSgrIWrcaWhJIfd[f\aJ]K`pzcRNVChjsNYT[Qm[ZiUgTM[b\E`RvXa[\VXd[nMsfPRYWaboZZrh\jYWGSolUI|OTW]\EfyAaa_nsjfQ`TOpRbY]b]l[kWtY_h\dcSfUUbHE`mcpK^OzZwDoQqlcY]`L\Wd[\eXXnTJKaS^|Dujx`^fNZuW]kq[_cGdPeiYSgokWHYYecaqeuK{XVWWeqceX_SfWM^wZ\yqDq{\Vj]iuaekQeRkvYYfMhqd\QpVWPcTw]N_Svchc^iice[_Z|RnYXmpB_HQ\\^paIqf`WULhW`acMlgm]fjV]WxbdXsg[P]k_Gwja~DeXSgP]MU_uWdcYgSYcq[}pBJV\^eb[{XqKdYIWn[VijSa]RIVKMlZkXnscs{SD}Q_M[ugXSGM7f@^MFeGuck^eeSQcYKP9}v^mM@JgWc]PEmmEbabOqzPPOOHbVYHTJgcKLPi[KHAFS]vNMfkQSuf`RFeJw]=dWasW_OeO`^_\XdhW^OVX^fh{N[9NpPgiXn=nurFDocvHb^h\bbo>[XmQfsWVqQ\]klZwAuJhGKMWi{aab`OKtqd`SH@eDIqMcQPk~iQ^qJMkiSueWZVP_BkB:vRS^RdaY]lgRf:VP\^YFIVMLlS_RNflT[LUJ4iGjeEe`frpod@_Z?@g_YYYHgLcTcypW6Xvf^Sanakiy]aSQb\[^_JJL[XfV^JQY@AloWYQSfq`QWbn;UF`g\EpJ6VijHajv[\qQHZZfw]Ns\bfXHvML?ZE{IXXQGVMI{M`liXbXc_Uh\H\b}ja^Urnh^RmrkYZVZ`TCmwh^MJr`ZZAQeT[WhmXMiM}WELe]mS[K`[r^u\Fq\qwjjy6LvhY[R|ecUn_mxL`ni_hmQXoPqDat[NZTzszV0VUyZG[eItxoKypl`_UnwbS[j`&_Vd8U~CQJaxBCvr_^bf}Zce^XL\]oX9`b}[^^\pqUNOt\O]PWEpq][VDEcQMaQ`YXmwdX[]T~jfEay`[FnnmVkN]HKWegfJ^^Zf\CT[j^Ju~\SY\gSN\fdEdlVRJe`VkWQfexg`dKfPO\{Po[SVmiL`FUBIQoR[Rac_a\gOcjWR\tarlWcfLP]oYOsfh\WTub^mYkRe^DVS[~]d:OTXorfVIVdZBt`rhha_iq>?Rm_CLpIEKPihLlcEjoTF^wOiZ`g[NssJHYcSqVO^bdlaR}QU\QTg[mceE`aaiSkUXDgaqb`vOLmF[QWhHc~cQx0\XPf`iX]PYNsfS`eFkl`TZXdh]QWHdTMBKoUTO]}G3N]]ggopJy@Quim~leb[^fkjAe``BcOYRib_hVfMjc@VqaS^aeoeWHDlWgaJokobkO99JS]ibzHRM~ZJVITVVp^]CPmLXQcNXaWWPXZiR]i_UqfTmRWckjSzRhqbmFxtUKdbbUSTPsUZdLu}YhNfiVPtZaiNl[aHfUc_ePQZ`ZarInPSN^KFXjY[IW_fT[Q={`rPc`mganYsP`dn_i_IgfkRd\]MXctEiYbGeIUXo_Wf`oi?JkoD^a[COUOkp]OVOQk`P]JeuflOaYiWncZg^]cxGFt]Unje[KuMJBwW~gR]?=fZQaLAfjeaIaQ]q^uWOQYYMKntkj;Heg{WM[^Y^XjZ`YjuQohMpR}bUZhWxcNV0W\QS[}]HHkObkOWo/=Z^QcOdmWHYsW\>[Qb`sqI^PIWpk^jb_Jl\vdQ_Lec]v`Tc`KMqeYX_\V_VlrVtTpnllh|Zf_pTIYHT_UdM]U_UvddhZgaf_^utytYuXLvAXZRXhVCl``J^f\kOb]XcrdOf[rbTys\VQm]Xy^`fUZUNK\o`wheYAWSyci_mdvu\Y\lllpdn^SVzqz>IMRfu_ddHlsXh]tiiqt[\Ul~WeWvd[DSwu\WDvVZtGYsOR<]`yoA_lNXOOpYIIQz_`m[CTeS_UvT^Fl@Q[RsIgPWKvq[tOFBHPeFLh[uaeNjSafZeVoAM}YRecplORjGjqJ\_he^^IWOrOeef\bjBhuOf_Lc:ZGwcEL\gdgfdJd]ORon_RchYUmZaGRtrl`NPlhYl[cxPbZHcRCBlixXwe]TH\dqXk\YbIlP[^UtTejyBreYjq_NNRktie\stcPk[~DxNmMk]RdLSNmG[azjZ~e^XD[VzhKl_QBViGgvq:Fv^d\g\ubaIRtMWZVYTndT^^pajjX}gSOVibng\^ikc[]pj\D]nj^X`gdQ{nzXk]@YUiZnS`NXq\pS>b^iT^`sqjPwKnZkVfNLVjlVmioQ[MWMZR_IWPm~pSXe@_YfcjQpconbLS^]zYgqoddqt`_X^Xi]LcJwWmVstecgaLYhbZTAjtiKFLP^TCuQvOHjUNlaYKTXNTi_pqe\OKLSZ^[z^UUTaa{aFWOhbcrhpjbrxY\eopJ`lYh{U[jPjY]YwizlXZ^]WTjkNRbX^bJsqa]aFG@IfVVXWbRQhE[mV.W^SfEoKl?DbNKE6ENdGW?ZSI{VNkFeVGAwEfiCOYiMk_hI~{flDp}qgt`qhaTPOugYxb=IdBb7aQ\mehwt6}OOMpf`]c8_Gck^Jp>Y/[QJdjnbR]>XHQ_uSip\mPUc`^Cj[U~dU:LmntUqF@Wx_|`aclp^WeS_mkjUK6pOt`PA=[QL[P~Whgce`_`fEqRJDcHBuVRYbXH`gYlZVsQNaP\QJjenWmQLX\cTe\aF^XJ[ec_[X[YbkZWYcFQXgVXMpRkXLvOUbGiXlggRfW\[MZIjPXKkf|(H]Zjt}8P@buHoVh]bdOgUxLhk_UlZqqWcrWeZ[gsSKaOuZhgaCR\h[e`_WOL_Rab`YJ]VZ|VNcUG_n_tpb]e\Yc~~OcwSk^OFeeMimr^JCU\zMzUtCX`gaCqP^SURSIS[cb]MPOj>sTPXKTFjBb_U=]`f`]ik\JabdR_H@tfTaFD]JHgJj`tsB_ToXO]mq[<^PZRhRnaiGujhot^sHnluEY[pl^YMWHPj`uVNHHdaSjW_YrhKsWig}P{^mk\Qwu|hY]h`eHZyUkffU[_cwZWe}UoVx_;gajrufSOlXXchlCX`raUbhZjRVfcLNeKa\^fNnwaR]V`S]\jtjF@iX`c\tW]_j_rcOc\hbTjkVpfpT_inA^_VmtLSnTKpZ^o[[vY\Sk\cZTI`g6ZSl``b^MchifOZ`zepbjWfd;qcJj]Ak]zYr[ML]iEc}zUtVr|hEY[zVbSOdi^P]n=ZVmfZno]RVFR[KaQf\xZUgqB[i~ihbU`dVXmaSMgzP[[_wqZPRaJJ[>wFaixo|JDjU_BiUdTq\~ZSbt?NqSYmi`o`PrXaYXBO[>};VkI_p]aqdo\q[LxWIWfIZ1T^V`QOYjRLmebUh_vkjffmac~Od]YSNpFTjTeaf`_japRRwWq[FRYGcccPaQUkF`QYboQa\UDWAMbYk\7osE}NKM]]}pJ2zBl_giECg[bkZhQW[Wt_RQ_f\\etYPgFTh^cWkrttcgwOdRYT_GytsTSrq]azoLPqSKVSXYX|waWcejJclWi__kgy=sdg`c;ZX^P\^TNG[cV_KMDwDi[TXkO|nK_oTkUkP`KVne_mQZRRSPd^hjbWb?b?cnO_^v:lbSSXUxV[h[jcqEVPfX]ipMOcPT[JL1P\BvpuSbn\Ma\FRaif[{M]eJ\z]tdQtkgerPY[{_WaUUv|O\k]GZUbYe{bP[q}PXS]DOPbWeVXNZs_seSg_aL^wU[Z[hPadVfKImVNrJ[`kS]OmyXVcXuuYW\eAWo]TJUPRNroqeTXQlea^a^ZplOWW`RTdYFOrhi`9ZRIVoOhqWRWMUchDVWu\^n_yG^aXtfgsMYMJCJj@J\UYwfmiiEk]khJJZ`[b^UesbbXcmB\hI^ilhPx9hdasRhdGcdmjPdGb`e_}@dkdZvE_cewVX~[VPaxRcxYjbvzbtsifP`f_?WcU_YT[_jW`caTe\KS\TG[Vkere[lgWQYfrLpvQbYtbmNeTe6VSI\WOmUGW\fJ4XkUS`[PZRRFEcOWqjANeNlMirb{^b`R~NTY`Q[CZn~TjZEHl^LKLSb`dUXzjYsYcCqTTJ]cY|O5Mj[aCTYOdokPUYm\UA^`5OuTXea]XR_ybc]BYrWQgoKiPSOkUS`w_OlXQ]iUOP^\sPkWaoKYTX^rhidU:feN_[m]j^_`QLKZk^jeqsUiNwxksN`9@SL[bXhJ6BjSbZSWY]Vj]l]ycVJTBXho`ZWZe@Xt]J^Pgpe[jfqK@&^IFCMtbm`TXO>dfgnxbEEdfSi{hH=h|S;N'qUFUEh;=gwQZRpKIvPB\eagdUWeibWGP_ZNphKYyvnqZaIL{kNWhSdco]tW]f?_DXVJ^>NOQ[b\VeSrLnGp]axRN>;pZl\Z]rOCSFvWl_bX[iekOcbbLL_VYjXnbXktTfGgkdVeAllOtZ[fYe_bXdQ\fjcXXaSbH_lUXqOZY[BmqZlXpq^\JYq[mQCGhIQe[`xbTqVU;Qkal^ih[QnxjsQ\rS>bXUY{XKq^XLY~CQSkxVZLO]FKuMhqRi]iFoRKdTe}T[]fVV`fi^k\NXZ{ach`bTXdiejOlPFjd_GsDKo\Z=O6_{XKfVMW|aJ^kcvw[poS_{VdaSeJW\G]]R[\qVifLF`RFdvYC`T`pZXWsESiWGaTTMMUc`l\gxVfUDZVeV]fOTKawMTpPcSrf_XhQXjOFPmURZ^]FvGpevZcbkdnpPaSlbNkPULfAdRa_hgzm}m]igKdZr_M@|nNfrcRMng\Nu_g]JX`oQlQ\PkKTcmichPeXyLOQodN_<`oTS][xWgeSA^RNRPncj=ucAl_cXrkYlqQeW`WXhbJm\tpk~[[Vg\\RQGbV?|PDU\x?~tMaNQla_Ud_Nd)kdP`V\gaTnb^ZXjXe9itzF\vZ_v^>^nk``JhGjGZJUHcCC[RVVgbJpWYVSjbuct@W_m]aO9g[Mpv_Unr_hfafK?e]ap^]vLzeT{WZf\`/ifDTOQt^RkrVHxUtqbN^hZhqnR^_S^OcmuY__ZYhrIpxX[VNZSZb[_UcdHa`\v_kKWyXlcQ^mIdxRmtZ_Er_VclW`aFvYmesOVZgUt_^UeBgBi`PoUWhRi]h_VSkBjJJmqLKffSoPHWTnbqbg[U`XW}g`fDdYQpGIfe^jjqVJTnggTeFv^^sM\zLShYHf_mT_a}WId[MZu`pR^Xrpd^YAhIexp_AhSlbxcWRzatf|\I^rV\NbZ_BPbVLgW_tYiSX\jgkn]jrbbhgJtPfe^fXtp_jQtk^{\yekmuV?e_RKe\ZgbYNYWWZbUYfJ_Sfang^INTWY`plh__[TMCU\XYU^YkkRiUnj>eqJao[Xbrhf^O^S\g`R^]d_^VPDJQ_bIbRZSYbyUaUXjyroVjuXmbX]wfa`EnQi[\aaIGxkeefXXVVbjkQeSW`iL`L]SUe]`eLXbp]Z]oMadNbiGGsYF|ZRX_JIZ]zeid`[l^aGfvQqW\LpZgVeoV]VEolOYwaqikTTiUM_kQMXScqmVYR^}jqlWebyX_[bYT|JQVXtTcQiH^KTyImXB_crlXnK^qSsOcmhOZpXwu|Shz[\[`{cUq~S^bFD{^a]mJY^LKjhbPd\SbaBRNcnbzLTbRl`Z}O^gXUgm^`Y{nP?Z\fcEgRUpqedapFvai^PiR\PoRPcuL}NO[Yr?Xhpcs_YIyhGW\TdIHXPbnV}Y[r`xkL9ofXfDPKJ^\SVYslP5bmkN^qx_eXf2Gl]vTWqtbPCHlW^g[[iEFMSSal_Qk^;JknaLVNScL]frjWoXuX[TQTKXjDN^MbtTqjvmHHDqtoZfq]_UJnhe;WBWlbeWf]V]T{_gs|`KdgbhtNnXTQNXo[gmU\Xlnrkq`TNUNsrXVTZqHSTNkdeRAHbS|^{[GdQZu_\qWjL[eZcOhZid[UWb\`Mc[VekDe`jl~nDoNdig}Wy]hWSYvaBXY\K^Z{VYkbYPZzIrmGmTKafklkUoAa^^?Efdx`\L{GWObLb_[[_KjYqg\qXXPl^gjTpDQQNdhjRWiYhCPIaHPpj`3ft]_WEFOS\ZrWeJwORYr`TdIR]rlQy|fk[WVO^:HlPbsZnRQYBaWmJNWfiZR_Cm;?[ku]Qp`t`QUHmL=aUf\SWtbO_L:[IUGYj=TZ=aHYjFMbbVQrlfSih}>YSViNcRD_m_:emIhNXR9CkZJOf^hXg8WCQiR__aCtL[OskKS__Y^]\[Tf]kO{TmdkCnBXNXlJT]UR^jO`lUbUVM^HVCV^yU{f{aq],gd_pYtnZVCdYYSW^ZmZP{lV~yNbfiMWVUHUNNLIqPhsfm]A^Xh]uZqKZzVO|KSVs`cTto\fZDIY[WKaHWI=Vo\I[Zy6h^tNmNhorUAGOX?BdXTfLZCBKNC]rUWKQrZeJSdi[:EYSe_aOaNRZZsO`PPckFIOjgrWmbVk[tXdMf}Y\i^Pf`bagL`igbviBX`u?eJoaxReocvodgf_XXIQ_vWSlcBKb^ZakQuRWT]KHTfS_^qLO^KMXRugMTgSPL~oNMOUro`fokhfr^g?jrFjcN]u[`gim{|OUQU\y_W^gaeyRzMoa_Mm_vX^\^bmbtlaY``]cDY@bTcLHLqj[K^oFxOmVbkzxoFOia@]Lh\[orZpQrWYb]b\Xd]rva]^Ven}Acdg_[b[t]VD^|tYFvdYSdYOULlRSAVGTjoFlUX`fkFPVbyWe~^ZphYNl]UGecZ]Hy`pbK[ZIle[\\UzjU{cULO]UOlJ]P[#Yleu{rpmZtY`sd]FbUmAYqQchvuxS]NPWX|a^ZeS~\YT[an[`gxOFsfyZpQpfVT^iqvMwf[OOikd\eKjhFfs`Jg+Ur^uZsjh|kh`[Uj`TXomT]]XqUrQdvq~_]U]ZZbd[XRcfSdNZjxal~W`dXPR]\ePegWY\SO[fXdXKcaibnYTT`g]SkHmpq{\eeeD]cJSmSW]y^fgzyVdeK^{MghT\lVk_\fkf|idclfSXkhtKYad`tYm[uWqB`nq`NXW]\QT`[SHTkV_`\`aUVKT^mkVTI`thj>|Wf]vjIeQbajgjRjWhZ[NdfZqLRBcZKVaUsh`VeIUVYsdNV|UWQ`m^}YPW`a__Qc][]P\H^kMXiOVVcdesZ\ia^UhZZoV\AymSjLhGih^VMKeZTXyoD`VfFDPOihUtHJ{aX]`[_|[dXiY`iH\]_awj`REY~SzY_QuaQmb_qR_kGw^faT]O`S@[~^_Xr]azMdjkaVX;e\jVKonH_balcnp\vCeSfNEbJYVY\Xu_aenHXPrhFhZojsnLSm}\U]VHXr_hCd]gjp\W[\GWfsLkckRlHrtG]ZlUL]X[ZxUQbIrXU]sjfXHgdaKU<|jzbXaMqNb\SzY?dLFUWPh^_@n*YbhamwDWTbXGCgi@QskH^?}RX^Pfw?WTN`jJ\vnI{y_@eiQQLU\OSndUYJZE]_Z_NJg_g]WP\ZpK_HsvenW[XZfL|CSg^YfptuyJEQXXaS_U_bkAxViPKhVDVaahPaPYyCnuKEPy>zxQtNeVWdbYsOVaiHjnqalh_>rNjgj[ub\FJe^kzTt_PzQWgZgdvVIDi7{q^OJg\V\b}inreuK^mHV[aRqJfeiYymNxZXNFXlVEhgb~^Pj]][UQMmWyOXomrd{d_puWaQaU^R^VWNRdRvL_YXN~qO_inddcJPXkSHccA[cYcfd[rLJcLOrd_ZVrLSxXVtUsOs{E`h^esNhbcG[OOk^K>_ShqofNd`ZkpOXUdIYD{qbZZVtacdxJbSz^msq[zJXRMNcmmcS@npmAV\qx_fPu}RPmJtZUK\]iKwYWpW_mQnhH\aydljpRZnl_c}TX_hY[PIeXW`^efjXQh_P}Fe__}f[W_joElcoXiZAMVTqnWgdOEiZeIer^deY]Ug\}fkn]TbfMs5_WqZmjQamRibarLee`V;hNLcsy\UszPh^?UuE`ob_ZPkjPtehld[cew\UWQjkNN^leNlDGsV1Kfsr]X\cwUnDOjlgi^lUTVRYfJ{]K^ZLeS\X[P[Kh``QnMaeue\[xgO_[WrPehx]]cOjdfUNb]sPwlRosfUVd[YR`^A\Y`^qgYTkIbDbROg{ngoBdMWtf]gojLoSqiOI]TdpQjqg_fUKHUObsjweybVjKcVaIW[VR^_W@rTU[QP`POTGnWLQ`aZ;bLgOKOmoQ~bstn]bW__Whq[ygjbKKQjl`QbST\`j~uhb~BlRF{adWnfS`1dqOrhO]_b_TZee`Zfs_dwZ8fdibE~y\\q>dTef{^[SunbanX]C\o_UYRjaI^\eQYM[DDPweB|U;PJf^ucS^mTl\Wabk8cNR@L\WW=hOMWt]eZ}eSHb`s@c:kN\UmiNPbhzN]u>Y}fASXUBj@UuWfuvYnird^|]`f^_]ViMOsmeYVOwTpYRWeko|ANL]fQSmWP`P_ga\DWSanT|PZiYMQJ|\NgUFMUK.O`rDD[ZiIkIoXeYUqGU_SNaTiGXV^^NhJ|dJqh\w9SHK@VU\ZVjKFCOSnVZEcK\oRowP^^^tfLzBaVCE`]FRgJfUkTyY`F_Qe_[dSmD^rUpoGPl\YiTxZfSYtdwAiUPryXzfSZ]Q`cn?ldoaoInaZm_sjNiGa4t[^dnqSPp\cZIG}DjMZarIa[xlQHYaWWwOl7NQUzzT]SYhVLfKT2`fYNL^e_LxlYPMY_YWTlbQV:iYTdWeNVuWbj}WWYMZ_VkiehpwALWlQzi`lslQYZuEfMboLLRb~cKVXUpfnGRh[SN`?s[^zkUdngYwmbZV`rUsH[bgi_]]Lae^@UHfcgX_fVJ]bSberixYbbTa{j_d^PzmZhoKP_MOKaOdbiGM]IZ[eJuTWuR~TjrZ\pOxfTWKLYfW\zkbTdUeHvPsQ7]]nTn\YCgGOM7unRbU=q\ENZNjT_yThh>TfJS`rMbWs`PDPqjVLmojRXV^X.F_qY^FZiEUey|Rg`xIbWCfih_|KMRcFa]PgoOLiXP\ojUN_XTs[hRhozW/dnNyU{Nm?d;FLR@x`[Wpi9zXyLcQ[rgUdib@ZLjdTeXUWbWrEmd\qV5TVezUx_NRrm=]cE`_PMexlRamkAW]XlnQuy{j\wcbRpygWVDIXhRt`wernsXHR][}ol\mIXTboVHUq[UTUd\QbPbjwwPGVZZy^[xNlbK[Q?SdJQR]XQ^eROiN\]ceMWbU[z[lOgilE\seOYTPxnitLeU\]`oolNxvmXiR[`ZeHodH[[L`Vc_}WWm`]QN[dwXvcgVSu[qNWRQINyjsis|\ianGLVSWi[QQLRF[`Vxl_gUgXT\Pji\>_oW=Eed}Y___Z^a?jfXmho`\[_eNmiJ]DWKTT>eb}bbRahcy9{bDy[HzgUZ\gHJM^EN_`ZFob`U?bl[h`l\m^EnvLt^Hn?SJG_XKUq|ne\VD`GUN[l\[MMuvIqXqkSD_mdQQCLk|Sl\^fZuZn{_IgXZhfNdoa[epo^|]PdT`fEK{diPolh}TRmP\bK_kwcx]gsqM`U_`eLX_TehpMulWOoIPPYZnNmjq]K[NgLSXsPj_^Q_a^PaKp?wXLhcTAUOTaQ^pPY`=h^NS:\OXqmWSeRBaKZ`_]dX^ldRTkZ>sYMvkk^GIOhOjXbFSVZei[d`b:aTvzXIinoXZVc`[jOGY}3UVkbgoHWIHkPnXk]koKmOcHOQf[YiTRSPzL]Ua{R\AZ7Pj9sWb`T_]nMk]CNVbPgrdKt]XTipUA\eX}IJiLVRbhZli][b@QPVPjpd;]\^ie^]`XYQcuo?_FhRUoh]JnWlZpphc]aiOeUh`YVIiVsTb>QRZYfonDeJYQVdodfJw[TRa:}Ob_gDedilp|Nj\bbydgrC\>oZWS@SUwuOCbQqPNX\hg`^VLcvp\QqY~zg~ab_bd:hfbarechReU>gVqK@JQl_pBOSGoNSbj\yqrNkYStlFdaqvfhPT\fWSleWgtSiI`R_rGvUcakpfY\E^[WTq^`|a`hPSaYtzg[ceimbU{C]znPkb^zwdfvhnZVVOTcP`fsf_ShpZUYRyeDYi\Y`HXpWaaQSZZEX9k|S~sTaTek^XU]m`^n^mRMbGIJc`ePhqW`b`Yia_h=lmZnQIQV]m{TkUK_Qrnohl]JT\EbMF^\Zb_VlITj\\PNXlJaUWe]a^B.cgQfJD}rgbXLGNjWXZWhErRYK`gVfr[:Jae_ehQaTr[k]y:MPnY^OP[fUlE[a,_tHfcU~LLcv[iZfqhNKQXZMP@QkzRjXUS|MDmlkU\bj[RQcdT[{PbTetEDUad|eYOmOhC]Uf_]o_ifi`Bko^hhNNSUVVTrV\YYRCg|A[@sZbVU`bKdfaxdo`ktXC_e_j]NuZdqerxuJjU9mQymdrp^P\rRjkdJjBPh`_eQGaZWNOU`x`WYb@FV\lXSl[[O_eWpc[>\m`cK^RY^]_\f^bUTFbrp]bhKcsu_?ZsSGqg`cd\gfq]c_wejnwfg|m\dncbTOXKmT7gfWTZ~ueSL6Bd]yXha^c]dazdgyaIi_@vXPf`rEVeZHYeeoZc_ZGZma7PgZS_fVYmadlb|WXxd@GfeQbNavdmO^YdfcPUi^Q`aHM~Cij[SxU]FVve\~WR^tNjYQUqRT]_S\]\UMeGwWR_WUOMadFF^ARI[ka}Rbt{pRRT\TeOgSckzz`KL]u_^O`^bZn\SJJEdbkYaX]G\VMw{W`be5frdfUZV8mLrQ_baUcTV]mURhqi_qVkl_UzF`]U^NTopzHTb\]PeZaq`]cFO]]Mc``]PvZn[DT]VNJgaa{~nIMNknC^]yR[eZNJffdK\_j\\YdVKUE[ow]@D`^Xh\XqbTVt`gkO^TLKN^qF<{IYPrTYf`_q\zVIOn[[BIRfAHZ:cLWdUWZeJbj\xnVHYsUU\d[TQI_pMbgW:c`feh{gHkcO`WpuaVIgfuMPLcTr]~b^XCaw\]idkfidURX3agU[Y^FuYjXR^i\g[\FnWSb^_LbP`wcKmH`2YmbEgggIV;LJRRZJaMmMOvOSQhO>VZaseSnVhavjUHSdrmX`WUw_Wkhdx=]FQSW}VYWcfyVRa\HhokQSGilR_|e]JdjOUGUKDZKDnGlnMRa`Lip]Ps`[oGNZdZT_VSbltQ]`ndwh_`UHcssuxbNsdf>Tc[vMYae|dl^XUVN{kK|UavTanhw[wPvnQYnqbc]JYlrpjEZaU[]WyYEfmgdR^]_^gHa_a`^P_YYLam[^gfhfZdSffhh`YecRvtQ]bs\^Yu_\OJhlTLUgkcUfhp]aSqla[UfhdOf]MbXllI|^TagXbawENQkoi`^mgfkvcKVtRr]dkW|shaeLThG>WbbfJT\XkPuxyZSQXhUh\oUGzDfZspYYg^hHw~MkCTpX]if`TPx?J`Ta\]hE}`_mdaXManbRnZNuV^orika`\e`Y[eaaP`IctnhXUEnRe^ijOkm^bKQinFeW]dXlVaMFEb~_YcL_gSO`]PRXeV]RpYXp\eWmneafWkWhqugUQSxJPdZGaYijUXRSgZl[R_sa_Sdh]SVFtYlfr_bi\McPcOl_TRafLe\_\oWI_P`]QX\lKLmuN\ZiUObu\a^Xsrc9bkeSXkqXqKNWu}LbZ`eao_aW_lUXP]OIs_`VhiHwW\VUmZ^\S{uPPsqz~x^RN{^WdPzZd\peGZSLf[N7pTYspSA[n\PRYfUealJpGGBiGoKSVI~[Kf{c^baRgqV`\lQVe\=davkjqX]d\8NXb_@YgncnG`u^HdRRYRTMDpHb`|2s]drlQJDgvZNhdMcc`lx^SzAUVPluX^]R=uxxTpjtGd]abtwRXYY{RevbbXb{y_dY^lSaVoadXd`]MuVwk\WqcYzhk[BU\^`kZdPq[4[EpNe[azwtQcgLVX|MtFffKYeFNjaUe_gq:nLwhWdt[a[lQ;gEnMotW]e]J9\PfyYUTFLfikVQb_^`^tjXWhVlkYTQS_eKndreVVArqkV[\PNoFhk[fWqbaSVbMKegRTMQAgmYUs[WMWZTEUWRV~i]bK:RV\kuIQ_MhkZUgYTgX\mebW`HPLiZRtcpQJ^:<^ke_mgb?a^Sc_\s`\XonMWb]QUa=laI`yFpV]hDScTewU-df[UldRlkSquF]f[QTp[\d_@mRv\sdTWQWL\gjphCiW[_ngY[0\fefFmryf`g_ihlOXo[aqcWOfSdGnYa_VUVO]ZWdEc`u[^I_MJiJZNug[ofWPjRT]}GNgbGFX`pCVkPOA[CAK_?pxowejy{PiJJHdQx|IY5RSqKfHqCiVH\xOX=J`jd^TG_Iep\SL`MQqLknOgfapEi[c\]Pb[gu}U]EMCwfUahXehfJzVS]MmX_YYgRZe\dHKxnE]LBpUsFRa]cGgpbnobmKzPbZtwobcY~XSj]WGGaeS2UViNaMZmbgWaiEpIboUagY\ab`pz^XaT\nkhbgVCZCJnJdgiXEtYiwbji^tc]bInY`cbquhWVca[kkjw]eWo_e\sTnymxYJ`dj^ne[gyl~]ecRdcRhE_VTilUMbieSg\jS\oTuV]kCW[]wM[xV|jOikr]N`@VHqysZT||L`Nd`Zm[ENwkTYGdmZcnhSZLajzkJS]gV?dx[UXXWZtWR|nXoP:dInIgQ^SVQo^p[pjph{efMa}[YSrtiZrNOSUs_RW`ZXjLhhS`IhXJfRTqhKVRJPee|QV[SjVnlpcqxQjGZMlSkNWdNV|Yl[MJfZQ]tFUbNeq|H3NashcYacqcNZTKQcZozh_PWN[cXRot`VO`JT\GZaLWXbaajFWkdg9j^VFmbwXTfcnXv|X]^]cnZp^JN`p`gap[e[E|_xuqe~[lJcYSSxYHUnQ_VdPbM_IUYU]kQX@XjVlYKUvX_bnxQRGQ`XejE_LkoOLY`Qq\jZ[eqUWdV]ArWdP`g]OMIiRYdcPF^gFS\S{VeXUTkYSgqxpRrYHtcadac{QFe`IjiWS^`RPB^QWd\[Jmbggd`_abyasPlQquaPkSaq=mObtBChNU}ewfhWap~TN>^VBR]OjTGKae6hzfa`JNmh]cV]mYacMlM@]Xg]YdV_Z`^VeTsY\boMaQTK?8bZdXpOX|rsRgFUoxfM_SJ`[sgWgGbFP:GdV\SGu`pXWg?R\lpxamueOuYxWaQ[jVYPpsUT`MfhUrWrWSr_N\\TiFTlWUcZXZJqdnQ:OYTXjfUl<`GSbs\v{OPWrPtv^y_WUhd=_Xejx[]eSUOIXowW{vLKcr~`ccaSeqzISTiMP}{e^htS^R7zBxcPQKqbNt]Q`?XvVTtSEHg}|nWQdaof`UXOdgViLgWZDTnUEd^^lN2laabiZnfpMPfL}j`TUdOeWy`ZkKV\ab[^b]KkMM\]Jd~mkMoUPgocXBwlV|WpYYltHaga`dRkd_gfbZyYnNepQgPegh^a`_eSvgU_Xd]hEDaVgc]rkNnqrjG]Mur\TZO`^s_]UaX^Rzxg\VXc\bgPaDdsE]fO\aR`XQ|[G^[uebgVs@orr[]XR`lqTVfS`UjvVkl^P\jVEW]O]nb^pCAje]`dTSCOXZ]]~\ReWtVYlljXtrewd^]Wiodf}hNmOSOWaMMgJ_jSOmhAXRjXSf^P~tVckfeTefTeXm\v_if`qcHckkovUgY`ldW~dsb\pcrcTcWoVQIv[`ZlR``f[^wGRreMx_RV\~QMYaHbzstd:`lSbq`PR]blfdUcdIsi[kfQY^\]auvmtjVlja\PVqKTKUIUXWjKKV}UqUT_gVWPcP^Yp\]oyes[eYaMQs`_]ijjtWaTdk6^gdd^KCW}VL[Uv`dLdVWbXZfGReX`iS|EUco|\PVoex[YKabembI\H_\dQp[y~Xefc}B|edJUKQUk\\?XQ^eVJZMDUoX7cOjJileh}b}[bzPMgX_mS^TbXcqSi^UYMFNi]YQo|}^jeaSHrTb{qeREXp[lOZTr_KkWB^e``sWko~HUcq]ecN`^pD\`CeYZefQnL}gsJ\pXVZOsMFhkYLLjZ_]{n_Pi\i~LJMM`jTizPhU\ZTe|Wv[Fw^xPNpNIdbkUal{kpOTAZ]pbv`fVT\YbeqJhigHcsgZfg8^vcDNKYr8fy`bWdhRLWPd_tnH\IQUYLs[KjT~\[[\X=fJL`KtgVzUpcRMV`xgGQQPHdNE^YaUrYZQHOMpB_^]B5ma^\ZUrYh]^Se[ZjN\VxqaOeucjL[STeaTAZ\_KMn\X_\QdSgrvzK\+p;kp|cyRYs`_fgecF{foiVVnm9ec[i\OR[ZQfVTcdiffIzd_aqLHS\\k`djS`zJf_XNf[X4{|RfJWUbTePex}Xcr`snTOeNWVdLUrmZE`rYd]cYKiiY[VZy\nU@Mb\NrqcZQs]VKvYbK\SjbP^DUNdsPlFZwVusi[h]PZnjkgVMglFfPMPTgooWxnJElrmeZU[mSbqW@\nQ>qU\\Bat`ed_Zi[NHU[iUie?dPcXcZS]jNK^WeOTbqmK^]fMxQ_vIFE__V^X_ZrsfPOLWxVYMtbZ\c:NV_V\ZjgE\FS[a^qO\XYfbAim`a]e`_a{r;^Covp[HPXObvuTxrcBUUdaGKy^_^XhX^lKeTZehWWWWia_UOV]^KhcsNkbKwpfnaiSUkdbaJb\bZoVO[DXqtFWRqfTlvde~hREPuW]}uTtlT|ZiyYAlDXiYGM]pZxaYPwbL]QJ]RYSBUPaOl`}kSW^ipewK_UkVSt^eLbjaXHHEYj^Omob\m~TS]kT`_FQGSee_PUjoq`e^jf\Zzny_gPoK_Ye^ZdTsW|Yapp\XVfXSkSZ[cGc_`H[F_GLdd^RldCaV\ZValZHSdUrTvs_\VfYPf^abK]o`YlOq`teLfzXKUpjIWQq]gVNjNTWe\_lbXjjcKQfrehjZB]e\c_mcUHSSJ{}TOr=Y@\YXyLq_RmH\6VPbW|yJfT3m55KK]oBPpK]F|`[vLbknRkDmUZdK]GdgfZx_PvInPTK`_`R}ryY`nWZU?\Pi^rZ;hkOKYTLLWJcf_mQYY`UmJxIRn@fX@dfh[mdmcccP]PQacHtieJH]ZPAKJR^wabg]UGyHYcUY3Tb\g\ZiJSo\nglimU`FTjmfkxe``OiUZd=W|gMjuL]UXj?IDW]Z}XaNr9mRA}SaXOdNXsuRa}XR|S^\\eXbSCQg]MVKTAeLZ?VaXYagIfVlfI9S]IXoPQ`UahuY^`ZZuI:L\UO[Ofh`et[ip@|fa\b^]KfrueSPSYZU[cvdLOi\K^X_he[N`LTxGU:g_raEajpeK^SUqceyQKeYaYbaHh_`]ggHT_NY4jI`JcjraL_nZjeaf[dTajcjMntpRK}J__}^^QR^S|`\TQSePkKcXmkvZHY<>h?ryNQygZK_fQUct^caU_^[[sXpUg[KUyZ}ZOHOo_LpBOML]]_kFWWhOcNEYQoOZz^^\fXq[R\[iZiTY9TeXVe{^g^z\jvkVuWXNbnh`ZXoZNOa^UjRgTbY]hTnd`k]D[UeFnUo_hVL`lUqvdhmKh2KQglbViq]QDeefS_VO\`1dLLNUJZnMm[bLffPeUhI]mFdmf\hI~hcvZG\ucQFfM}6vjBMmOdjoAGwHVpjeVkoe[\ue\kOeaeKYvad]T^i)SQQHgkvMVrL[aH_XZuXtX|FZLBO]\WsbT^QVAvdMc^S_HbX\^LVSrk]ktamQ[uhUJKtgrf|EdUkiglSUegxf[WeT_sRPcTQ[bsv^nfX]cqpcmHaVNK]fVTCVhCc\P?job^`h[P[E\lfRMdlUkgGdTb^dJSdTb^[\WUHFj[kOaMPsh]TvUANWNoSbWaoc_Qf{WP]\Pa]Xo[x8w\kOY@jSyqocXf_ObfSPZ`xd`UA^c{Zl?H3WRVC]P`LCeZytbuYJDpE_hX/NSglhXt\Lw\PbNX^e^PsfIZ^diVeYIKORdMGYQdPS=RPGeZ_XQ[>Smw5l]Le_h\PaKK]Q[c[d[o^gcSNYienh]v[VhQ].KY\XQfMhnhODjYbqSfQmYRQflncIRsU_8GcM_OibPoEpkoLbcUnNVTKSQf}~d\OdX`oddWo]cFdvkaU`uXX_kufVp]{`gZtbYUZUem`oPXeXpUW^friWsOvgl`}XRh\Wb_oU`HbZ_]bm\ZesMx\U^WwIavvW.kbnJgerNfTfuguTNksT\SiqOS]UbjZ[{UR\~c3j^VRuyajiO^TTY``SaXIloOj6i]PMcP[PY]Ka^|UfjX_ddfelLXSZWq`r`^^WX[fAjI\WlV~P?^S@S\t]JzSAL~pVct{G[P^T\ffXa`dZWInXW\wf[]qiQeiCaQ^JVkanwBZoM[K]bbM^V[bV^L`PGQc^cgvbXT^oOTW>Z_aG`cdoLfdaNVfwMMSKfbjqW_LZZQ[LSNKkZ=qZnY~BSR_am`>t_flJ_FgOTnVEMI`nU`EbNYr^b_pDyQQKdpz[r=cBYO8obwUWzKcvbYTdIMf_{hSZQu2LbKoPb|HjSdzem@oWDjaQ=l^cEexRPbRbXtPf]oCKu]cRqwMu7ohRvIb_OgRUf[PWc=UFgyParOto^TrD}OIRv`b6TZKjXylVpx[RoOBWUcY`Jbs]|jNC.shbf$mI^lTWPSY^AF}_hWUxAX_cbOEyFhXUXZJWOoYr>ELSflVoo_ShPcU[^[ff[tTr]qZ@^HVbTnPVDd]m]jfVra]@llSqXp\VqRfTYeU[cTc]I]iXeU_V^Tv[YJZOXZtbjwTcbcp^]QV_QWTbqKgIL\SbGqIKaWYP[vNzdSqq`jj@qdjoaPW^JWPpleZ[QXhW[w]LGIT__G[^~ilY[QW`dB_Ptqiqg|[adaevVG[W`VUY`\rcePqTeJXkpxl`XP{PfOhCgZ\ibT_QcjMcE_VwhaCoYZvd{gYS\aNnQXKktY]U`[CAUoa_\gX}dgg`ZRHrUFEglEIarcVe_GaXTW\MmNNc\`_?tSPynKKCHFw=KTSCjqLUwyePRTZmSQgbSuln`]fSN^UReqvjISqaRwSfdzfFU]QYqp`GC[N]^jj^mt\Pqt>EnfjfxoTA[J_WGmp]VWOU]HFkMzVX5QTLizFPa6QFb}RTvoy[QOinTvXqXlfTMI{ZT:T;;_P>W_cJWZO`Rd]][bZdvdFCFcSugWp[gRd_px_j=cO,KWL\FwWD@B]lWeDTEK]HHLV~D?jU:KKz\zdNTdWyceHUUth|naVFnXgyT[rRVPJtSmlP4iU_^?RJYYR_Tth`Rl^UPc]icen\^wS_qY}SxPI]aXvjjXzKTqOaTbKacXR[YkZ`XWXIhRVHqMch=>[BI@_[KSqbWW[aTjp}Id\XWYNYqZsylTV[RPXh\jXwnXa]Q_aYW^9Xrwxe]]E:vCSqpXQbZ6ibW[fuPPXMfJTUYemZxAwE_AVbidRxPvQ@`fSKcAUM[b~}XiRa\kUPXbf|iO_TTY\fDidBkdQvhznMVCTUUTZS}a^i\RcddJZUd`{O^XSnfd~U|nZd\cHTnWauheVOZWGrXufgUVUZUTbjMbm]lQfaZeYWquWhezZ\^`xT\bpV_N`kkSXhZOZgNeYdxVm]cmQOja^Qfh_qpr]^b]wpcQGyWZl5\TZRcmL\XfZ@QdxIrNVpo\}W^T}g[X[`L__jFfW[eJtYPc_iS[KfaWLDsV`rYKC`nWPOjTmY^]YWaffdcScqib3lZWkWXkW~jS\ZhY~No}Usk\r[ccW^TW_ZgT5ayWfhkXjZ_ykXp`WifeQ_TegjKiLju}Qg^YlZPbjSR]_`Vtakd}gKa]yM]Rj\\\SynR\cYMk}R[WWX_NQOqZJ]ieSeqO`_bkWwpRkeIld^a`^cu:I`dt_h^h\MFxv]y]RRJ]r1FOcJjjUbYWX>ciLf_fYv^P]WdSfvTS{YOKWMeJwWU_PPhwTrX_io|rgfrZdfS\`FI=cIFRHSjnXi*[aTHmKbDdWgP\VLVxVJr\rr|mTm[bHI\^Zhe]{nakbd{?EW;Ph[yqfgfImc\SqhfZWM_|TJg_bG^rW[QECjIOyfu7fZwJqrhRYeZLaYxUMbmg[aczXGqVa[jP^SVL^S}hFbOM:dQMT\JpZQWuZMsfLe6QSm_ar\CQIrPIthW{xb8IIfTTttUoODNkTiW=zcfPOaBy[IMAJQhqXFpqykq\aUX:fhTQWHYBZk`X`nqP\`mgUKMksAfa`tYUyYePdfkaiHWbQ`bckPDZLwgoc_k`oRSqdf}khszoQyPj\vNNo^dFU`sR\gVgxMxfP[_gHcqU`e\@VlU_Ad[JWVh|]y\aRfaUgsx[_LpHko[X_qiaR`{tFgZPU|cBz]O]g{`ja}f^Pwv[wJchPoyeSO`kP{`UavVMvTpMMjjqOcLceV\WEV\CK|fZixu`VaRNeWmL^jjtYI[YtWDa_aaOmS^OgHV^q_g_[l_HZ[p[X_q^hfjqIMvvfNLkTTk[gqaFjjYvfU[UJd][]\PuIzjdlOfOvGkq?JyofmK\jan]oda\gg^ajuadRsGSj^a^a?C`iwiLW|c[`e][_Tkd[UdKYueVWelWk_nQ[Uu\dM[Oi\Qb}kqgg^aphEwQ^_Z\m[fdv^bRvfQVSTs{om]mLSMpLYjkUZjTsuhXZTNReLZmU;Gii_]MOZhHcG`K|[Qsi]gFu]evdm^Igsh{Tq[Rl9heTZPguk`oVONOM`_ul\eeS2JbiIUrm]IbZRnaP~iXL\[HceTkiUVQV`R]Mc[b\bYrY~WK}WQfnzdJnOi|WOolr^ZHaiNm[_dc8{dvK^^jyaEMgKXdmPSW^fqMabWXmM~OZSQQHgef`pl]SbD^e}sWYlaX^^lbLnXzd`JJVkrXBS`L_TQneWW`WeUoa`V4[P=ffbLOqnaGlYY[mu`_VZiGsVOc[U^DzdwgCGSM\W`n{TYXpmt^Dm{_dUr[Lgpgac_NkdV{[rxkTheVlbPRX^YLXGKaXpYcXA\X`aNOFn\yFm`efQJ_TmDfgo^Kg[KrZkdaYcSKJKYsXZTch`WrE[RvXiOgVuYnm[X`^bSqZgrcUrRjzZ_EYZMWa\[Z_X^_emW[kcWs\Upb`:Jb_egagZAX\hX_UIgLj_hTARIscA[qgp^WuYZTdbM^e?en_haapVPYabhcRLUV`{vgKw_somw~^apdWYYmSYLUq]JIuPfJhUke4cknWcOtjdTicjm^MWhX^Yeoyv|TD]Fax{YgBMaNa]OMt^YVnPhdV~ksd`agfPvkjRdG^l_TIbBUNfmFo|[bdgTfIsca]_P/SjV_O_\V_YCdrYPIQBZ_vE^rJZYWXjamdXJQVUX^SiXQdBoelaUX[Nkm]PTPV[p^zOMZQccz]MPisKv^miKqVApvNbGLYGXPdmdcXP\SKyQ{s[t]]xgXVumVRafu_G^a]UyYrxaPGaVDd]^b4LiW{2=cecueeGceUSIewOa^KkNicuVmrsTVEbTJgtyW[HICeJcT8|M`odfR[jiQl@FZ`SfdcJpVXs\TrlxSZH^\V_AeYfjiPdQ`zEoiScTImRXVEVS;\s`EX_e]hzFVOcZ\aTasrOqGF\B[nZcM]UXSNPDwgoF_c\pY@PcWV`DUOIgddnbaZNAPcO`VYiNNcFoXSSIu[Ra^U;eZ~\FNIzr^XH[mX^MAiVU^cKyi__CdolOShiXJLedXtWffSehWdR_TiFNZlaUc~`WfMrNZrhLyHOOJ]][V`[eyqgn~SMU8Z_BE^_nTtEJOK^tb=G@djKeRZSVo]HMmm|jLX`WU`kopZ:[hid9[Yc8Anj^XhHFkVSIYfpc\obvgSpSSbHS_FigZd5sbrJPNeKBOUDJWETNmsr_jZZNTR+~Td^UaIxH]L\HRaQkdg^PRfa`lnVgHy`]rfR`]OSBzO\tvYxmjkg|Tdy5aO@t|DOFWUUaVbRTXWY}\QM}cd`X{ne]MVUXNvuV9p{YNsnZVUnNde|W[CFWt>fKPu`Te`OrX^jVjMSPJg{bUcd_Q[nZGSnawviP=INfU_bU_P\Q}]ey\riDecM_jWt^[lU]UU^Ju_SYYRTS[q@7ztXQFSnafZt7C[MhkgUZbeWaZL]`\^V\O\PuZ]aac=jkSsUYeHmjTh]gnVk`eBPT_U]qWNUKdoWesMahFN`wNcfQ~Q\Sadu_jZZTRUHW\MnjpZShl^]W|WP`ixbQ[URMarRoocRxYUYTu[dps[LgdoBaaxi|[KlshGPT;:AXVe6MX[Y`bSZlkW^YOsrjskXltILPW\[VhXGp\OXIX`bsDSBffSc`MXRTBUge]fReifDmSVAYOHnseeQwm_]I?WS\K`W[o_khjVNt]yP^}wfcrPVyJaJ_KhdbTZNXMgknQW^\?hV{kVcrSVlwI]hs~dL\`TONWKuF=Z^\ujobnZLgVfT\\pcu``OdjUlw^al_UiTKTUCQnZub]eUYaXEmTKOn;Sl`kbm^R`DKwPg_ucRQqiMVIgHhclwYObHTSMjjbYjjYcbbSSPBs_W\b[Us\MrMh;njaa[[hpb[JUYK[BUSZ^hp~da]}SrR;_pIFEXAOp[i_PREDTfi_Sc[jh]WtTXmRi]g`je_d^U`VOXpluXWl_QlPWJzjGLH[^QZ_xTjfl^_bPtp}pKY\ah_Pu[w7Ojl]XiXNQolJrN[zKhRb]I\o]QR_qEUJjyltX[MaToPiUuyYXYjWa^jaVZjzicNdk?iQDXPjyrwwTUiYpchfu]ckpT_\`cliTXc\ZleE]PK_tAQjsxZkKY@TUNsj{IgtYbce@MO[tmhZpW\ZCk^XfXPae`ULfIfOK{oZX]RiUULlTdZtciQNP`oucbgU`TQla|S`AkaPSTiEmqPfso]AQt_WQt\ON`m^tf{XLL[GeS=SiO}Mye\5{QgGcZmbxf_eZlWT`^[fim^_XiUKimLxNgMIXjP]g]aSM|dKPdfN}`x^t]a]dv]fQEd_deLtr[hIiLTd{a`SO`\ahq^erM\KhclWN\RTJndXtac`hOg^hdTmQUk7ceSeTX`S[]`FOo`gjfmmSQcT\cIYGRFGKNoaOdKoOr?|Wfg`vosAE\xdYSapc=]Z^]sc]vchDRgkWYqH[FpUU[^OGl]_[]Vrufjwag`XTlx`kVDZdW`JUTZhAkhScXggU^PXdZgZ[XYp[D`PynrfYNRtaI_UiTPNOujE[qQpje_[^c`iZng^[af?h\Wz_ThBnU]dvdp{NMsc{efN{bWRESUQu^dejcmsRHYjxpqVpZ2]pASLWm_amDa]kdnKkv[kc_`KcIW^[]L_`WCdoKuZN\Lf}[dsMQP=Xond6LephXKKlQSeW3QpMoeY]NM_i`VfgciiOi`tW^dUSTXX:W,aT:LdiUtnmEmb]FZXhXamZgzVa{KS~Y\k[TemxpUe`SjPtbHcbFerXRzP@cmcSdF^^IVOHo~Ne5^h_G[]ZVaJ[Z]eDY>bVg[LKRO[[hc[vsETJmiqvd^lcJPC^P}bXSWK_@s>=SJc=lPRG}SkZ_GVKibME\cg\SQ[^?SXXhjXQEoPE^iaa^5OpH]biS_mRkXaxhc[ZzQ]RwYW_lfNZ\d_lOI\IOd\Hh\]WWT|Ze{hTJWnSXnya^h\Y\XQdgPLkmPlcJQ^qeWbdhczde[bUzaHgrgQWp]aV]]t[]YBh8X^vuSZVc]cfRZQ\IcuSeO_mvO^QmCtNmjHMW\N\_qKO^{zsjy_\`[aej^_bxoWjY~ehLAn[kmUsfnpg^svpkVaHbwZ`zZQY]_bB]chhDbZ_iPV^Mo|fOMckYfhha^Y^M}clUz^}abi|iebaVaoSXal^pqPQxHY?fKCy\J[veVj}`_moZw[wdWdD\bIeRPY`[[Vtb{bZbaSRX]YTW]bXfnsWXHj]\_hYvom[LYblKorqWJcv^Q\f[\ukXhtUS=JqXhxejha[>a?^QsWyj\bSNskanqWwW_em`cOTxNjLaAHeGNQkQQ=`WVVqkl_VZgKg[w}qlQWlG\p}U{jkOc\PVkBxbfMYZXQRhoi~hWVsrT_pLn\G^clofPdNC_}f_tbDNHeNt_NNuohkYrgdR[c_cV^gcnRhq|hk^iLOYcOvUG^IilbQbjYr^[gldXo|AoYiochF5hW[nS][pa`niSLVVcZ`Zw`TrRNoEPPm@c\ygdHkrWZnULZhXpZD{dUt]rfOSLVebfBX|frLWh~]VWb`X^ifedpa]lV\\faaifeqkodDYmSwmijW\E[>cVNnT[N^MBbkZjF}cqNO~Ou^tYZf~SPekQ^]aZkm=cgZfGbY}UZrw^Bl\_L\Pgg~ai6k;rvcTncVZgQ}f~SkaUaTLaK`XgeyhYhPl}wp|OgSSyZe>`OKNyjlCXqM^aSalVcLbk[u{gK^V|UhVj]ITdOZhg`IOc\`eo[bWsYKUds_cIOWfa=7XL]Yidpf<`maYuAkboa|UfT[cXdX|VRUkoymUk\mWHjFPROVlatTSZbbVKV^f\m]ItiP\y`Ubla\YFOYTFb`PWk]W;QO;]|TT`B^RmeP_iZp_kas`9@fttbbP=cNhggG~MWRl{G\QLejjBTWBVxRbZSS@d`Ia^cbwQnpjtVVektjfbRaXRZ_g]PrkNYMqe`xQU`cqZZMZbYER^X\RYgjWPXItXLJFOKMbU^_l?;b]gV^PHai\qal`OKYGdLSda\}bfl]vvbQsh_wTuTlwv^pOQYhXZ\lQXsJVIOzhq}\EzeNMGaSyhnSjj[\}UY[_el_meWaGTnrYimhZPs?efzZf@dS;:pPecxYTF}|L[Oc_^spimLmtS`=TVGWKJHET]QSI[YjSZjipegO]ih=Ly|]vY7ojkD^kjP5k]oWcZ_\VdQXaA[[q\;LrFCG^byWUpg]rtg_U]dXTkVdACHA@_6jVLabYh^T[TSemh>\?t8YpNA^NPnOQTneZfI}MNgVag]TKoSGLK7^[EW`tnR\TFvfQSSc\GFVhFvdxUlhC~]bYcu\ugQpYO:qKNbLTXasEeTZUKhj>e{deocHfvtHVj]q[ZvQbfiJccQOf\}n\j6mU`MYPdzeq_diAOgZlhN<\Qa|QX^vRIFHdaZu9YnIdq[Q`daWMjsDd\VpBQJY_hue`V`oQZZd]jdhg^RLDm[Tl]R_nn7jWxXEedWkTrNtSnM|ggn}\a\ZyWYicJmeyfZaAinpCZ\FqVKbXq]`n[UkTjwVd]]_c`ScJVJ[Zhu`fWlbO]ehWmWS]J`PNv@[Ygk\ZImpbUyhc[[wNuSNWicpayiTUjDhjtnbXbiWOia\]TgYH^\YmeoxLxaiTdZe:eoiPIh2spMTaQToz[NQIkMW\yt>Ro}uf`UMUZOWo_]>aRi\aWc[U]XR_XblfKQLHnfSg\Zp`gZtgHHYeIg`ejy\VU\rcR^jgfZo|o^RUsRgbipg]f[hL]XWcX]^o`Rapd^GaRYZbdY_\xaVebklkAa^Zpcj:9]LK`[PZnL_aK~jaNnu]\tan]d{BNMc9KT<]k]k\]Uk@folPtWmc^ibaOocVKfWI8^MTdVWS5[`^5cVSHR]^Sp|J\piblJ=P]rdATSH[u>h}ebhaMVQmfSYS^\caBTie\^9@u`m[UofI]\pL`jJ^WTGyG}MS_jFYMgShY^N8Q@YoR{VdA]lWOauCuFDKnM}M;>4L]tM`PaTAHYg]]SrosCliP|DlT\iObD`K[QVIN[hHSzCYibpmbTFYSFqTylai]bR^?AU[f[[1n[`LA?roJ[\[iJW[a{XTl^kmel:fbf`iKxH7vWcOHVWd^HVLlirp_AcU]]ZZ^T`NV[ISPWa^hO_tIUpoPaaLqXPb}l}[_`AkNzOWu@bOUgFSInS`]r_OM_KVtvdcaQIdTGpwisXX]aISdfU_?VDYLUVXUakMUbW^XReJX[auQyNZffTKUKqekPllPpoo^gl|hqjRjwhO]fVO|sT^NVlXal^e4]_HV^OrhZmL[YpVYWM]mhclmgg_]}l[BTc[LzO^etZw\ZxZIholocTV_mZJcbe}SCjHir]y>hgeVym`gTTKL]F\Z07v]cURKPW]QDebobfH]SfSZnfInHI}ZSPiiP~nclfdgmt^cXI]Xgl[hYW^qPX]l=SSZai\jIHW[dODPzS_p]U~9dq]QshqHhR7]QdKy|^oX9PcrPTehp_iZOKXc\feEgdfxk^[]IJOLyLWRGMh\my\OYcZP_N5EbMgRmkdZNfI]amf\`IXjr\`KZ~Pnfz5]SkYKALVMo0?UI[J8GQ5VlVAER:=Z1JWE72TK]_!DnAC,UaSNTLSM.WG7SWoZVGM[``=0Oi6QIdgRFMdLQ_CTA:TCR4N1c_L7SFQRI9zS)>KH.IQJ\NC;FKE7Jb=YT\GCMMQ{XJJDNI]1;EEuVWAPD-D?;JkcXFMSG?=SCJCHaOc4:GTAYD?HAaQ1RQKH7GqMq9JG\!h.0WV\8:WJkU[BV:^C88POHh==@EYI7PI]9JYrJT6R:_=[%:JLjUJ5a:LA6Ge;[;09d=FM2#JUD@>F6.J>FbMJ[IU'EL:ATL:2LKHTP]:WQJj1HMQ6K7B@UhFmJYGPPv{WV2RUVzkGWR_m7dU?k`ckyw3]YM|;oDyuL^kiXSR\y9Fb~XlLnU]\Nh[BPQVazYFRt9;lZMHC\HhhXgZdmQS\jR\boDFVY[TL?TglGaSVYVb_]MDhiL\FQQqnTdszJoSSNl\ukKgSpfmJ\_lEVT`E.y~VjRd9vqgjNP\MnoSj]phLdkI]}TXs[Th[_SQCjLdxeG[ZoWoXXWLmew|NXL[RayG\`WpuZ[tGKW[^iGjoqDrdbjIeQtL_v]hz5bY]Mj]FVNlp~YPnL[yV\`gHReIubZZXS^FhpMgpj]nWrFmjbX]PLwjb[oj]Q[fl]uIQetwXMcYfERe@=z_jTS|VabTrWWwQvRWnPe^SMvIbS`VTQNpehLPmJdD~fjUmq}aUAcDlR[]<^WR^abr\L{bwTdPAbPT]ObRSA;emWxa]pkMHZiGf{[oiOcQaRXVgujevFkLWc:[fo_Ow{^aN[XScmY[iWHKIcnvmk]nY^oqncqRo`ZYLijsZ}PWZVN{_SEUgxAXhjhifeg=FSc@go`bYdju|@PZ[=[fmkgfkxcQT_XQzzeMe\CWTNGXMLpofLW^[VTffI[UEbtZfgS[PioDqZB]bT[UTaiQkPnaocpn]PU]wVU`_P[Rf\]pi^SIcZcQ]Nh[eoCQREOTUZYOd_OQWiENV9ylZQC^`ZVKgauZ[jYpQXkLkT\XPGokIp_aJA]g^IUlNe`mXLqLlthcYOgrWpWd\PSHYcIh_^vPWGhgDkB[jkyd]]EMs[AX_w^telENh`RQa\JnWtajoFwX]JNRPrX\Z`jLgd^TnHj}iJ@b`aXWfp^[`ZbuValUFRrX][SWnl^UXPiQN5]XXZUX_LjMJdRtnbOdfQiWram=[hu\`vccCeURfZHQLUSXdb^vOlm`T[gwQXRZUl[[wZWcI=ZjWo[QMkEgohfPbZ=Zrg]ZhOPO]clln\`xickRWAZeqOtWyXgSUp^_pg\|ZFbX^_XI[;\pjTjf`XRgasF[QMg[pS_`apif^VDEkLXmdZUJjUdFjNumPaVckVowB_YYT}Wd\IvVXasWI^ahqpt6sdbV_b\;DQ|rPINPmQlLMp]^[EjYFaZIXpQg@|`ugGm\zhY?KbULZ~GTUZiORcmJ__QkK\Ugkud^_cH{fIwgjjKUriMne]D]WakOcE[DNrrUXnEWWUOiw]iP{Ut^kydcJTL\atdbnTomMNdWLlfcdees`z`nCCfTsLFZW@QXPQX=J`oWZwm[ZgO[YXWETd\@}K\YK[ibhebnXmQPUOd\xjrRp^V\VrrrbxalN|[olyoZz]Txiujaa]?SecU^^HXLeO``^XQ]GVuu[^volnnbOP__PXK\cf]_H_hLUS]GQfX]ZUvpn`TJCpTYgt@pa\@[`vMgxb_HidfR`^lTnYVSDvnPgbfC|LU`EZW_T^M\O^Sdi_{LC]Vdipmk=[YRj`hYdpGuPAt[Sf`7A]S^dioNTuPlTG~UNqadXjgxHoPUb]m[Lp[M|QnNNZuaBGhVVim_^YhOZjlie_kT{vWq~bHUBhlXWlZhNN_Z~rhJB[mZagMDt_uQPA\gZKjQId[F_Rf`gXzXVGI^ZZyrbTI^^iPQTQYuFa^Hh]Qc=aRKUUbSVx^V_WkdZ]tghwVlRayWH]]^ac_`bGXIPVXzW^l^guUjU\`xPU_FfviuViUVdcK~f`icUhYUahVaYVdZW?jlQ\mxX]ifujIgd\YVO^nmQQldJwSiNXl[RWg_GM^D`O]eL]NdfG]fh`K{bxgwpBYQ_\n]Q^ku[gl[f.>bqV`K[t||ZcWS`WllcpRca`Y^Ksch_daJT]H__~Q?SWEuiw[NU^whji^iOeNr]vZcneV_SQ]X[[:qZ`bNpgV]viUG6KZvY[NbOVhyf~|mgMy`qQl\UZeVbvrDSdXl]>nmRolcBESgbKrbPfmbqXaRfOiX8WQ7UWhWutM\>RsnKc]_qZSIukcBhQGPZXjaLULeR_[ItuQpPaVpaaaytS^PX^F^arZop`J\pfiOVTRV`OQ]~UXZ^i]X^VnAfiGHc?aJxPOB`Kt_Piie^m`VZjGTU~Yd\^SUG^b[fbmLgOWkHe]^[v`[NEbX`b[xeQiWYKAhrT?FSoQjU\cakjqOoiSTL\T`OnEc^O]WsP_U[]jPGU\Sin\u^ylNzZglShYjbX{VwmYg7SQZQUUWQ]KXnWbQZFse[RN^f^@DWVJDS}ljb`hMnqXaEeiW_BM{UuzZZWP`lLQmS>b?hM`gIwi\zzal]B`hRZTNnibDwMTUcaBjP`[WwPI^RpV[dbl\{gSVcuTnrY[RZbFmS}gn`ONjELVxUtR_aCcsR/TL=af^baZshfXWTJE[pY[]>TVEqOOTAKEuo`Wf>[eTMSWWPHkEmcdOaieOna[kHl6]SatOO[qI_^biPqVOgJAlkPmYFaYP`XY@sWOf^XUJ[iGKS]n\WdZ_qP`igJge`qvi`NcSo`oUwHVJfCiK@J7jkpPbkrf]P~`Mh]X`RnMajgaDlLk^bRSNkcHVbvSlYHjTeX[+bwjR[qRZw^crOmot[YlvtFa\XNOL^iF[P<^Qq7DY\MSYI\VpHgUclew~l>fVFZm\aWXB?eoWYh`nWSJbh9j_lClPcK\KADpcheiN=ZYm_\~GESS\aV{RdlHo\Xz[tt_^dfSnMWV[NE\PkncZW`Ne_~odKrK^lYqFzW^qJklRdZFIlT]j6a`X}cRPVbPZJaiYaPcJc^SZPlZhGzP\L`U0aFURe^qkJf~YQXqOSROkifdVi>OMq`QcTu[]_X^_YaTEQ[MJ@[kjn[dvH`dyfOt]VPLjU~}]pM]V`[Wl[UoXmxhdpgO[rHmvfh\@wDlVW\T[okfj^hHPkgOpQsh`jmhnAkQPpxIkQU]nl_LpYWI^Y]_TbnT[]rU>cTWy[TY:eXjBbgVit]{QMk\Teyk`u^OeqISpzgETkqdXbyO]RZx``mri]Zh|MofclU[JVOWfT_gjk\nYhW[QjqdkdVWW`_zl;{bRVSaRUmWM{K\iiwIrQrx[Gk\]UiVmxMlq\OlmdcTGS\UMTYdhiLGTTVD^saZrTlYd`[\y_@Wm<;^dRWjlhUNSOKWaZGkdL_zrhOx`HSRr^iU[QlckOXZ_kPqVwiGZBariUkh`bLqSPSp[b_`Sqa[Rkpob]fa_SNMWQY\x`r\BObz^TUQv|OxNZk_OizR<@Q\`WoRpbd]mcoh|jy`he{aOr`m=^;Qd[G]bNmksWscjbnRbdMIaf;V7]b\l^Vqb]iUJjUWI?fbjf[mng[g[I;aTegMAsi<}hZTh`bYSOGxdRT^]f[SHf]TR_kYM]dkrzgZcWeGge[[dvlWl[dE[q_HKedxXFXD{bul\UbKpCMaMksYL[PTQR[ZaPpv]tJqa_XP`EI^eolPl[@dUTQgYoRl[^hBXah]zoEP[biamklSGibOR[^e}R[pbiVn28KYaLXDc\[^eTh\~vIY^hT_RxdBfv|Sr][Ubs|cdUUdfchdS`wTQ|_]e=iUdFNgLEf`QeUG~YzTHdtdp\[bodRR{RyqcTalPK}~ijxNSLcjZX^fuQ^dadl>\_ubY\kHWmd]ZPRf;Ba\amJUx\Rkf^IPMd^Onm`Rak`qtrJLzG\fayPhgf^js_Uh\Ia^Y}XCS_hYNebgwTpLctiqJ^jbWSiJ[bqUqMiY>d^Ql{T_\YUQ^d^W^UcVoBqZmjp`Ojc^Xy\scqbP}yeefXb{TebbtbGnZSRyOTZi|MNLWdPxKcbrjSReFvRGhX@VfMoj]{qNR_gq[qDcj`KA^L>LfLXZRNaUY^\CaLeOZ}^JSUTJXcgWgL_^^QZaMLSZCiweBXPZg@P_`l_efMSf~UMXN`>rc_YI{Vk?mHSd{fgRwkMvtYFQQ]@MSg^Qrn_]^TLo`]dRTgR\rUXXcqJluwzi[TealAtWsmdahi{Ubae{^_hLeu`qaugS\Y\OaeV\_Pfj|JibX^M^hXXW_V>_IVI_\fZHYW`SOIN]LcCQoie__gZa`MgC_TbJQOhe]s[hshiqUfhQKe_anyW]fTgVShMlCJd9klUe[t_nLvR[cF[^jdnMhUDYUYGqjUPV_FOStccDZb`}Yb`XyMS^Nqc^[Zd`nifJQXfhH\T[?geimpniojRnQYbbbbPZ^m]btqzjaMTJ^Wdrg\jtYqc^fo]L\gOVXdcile]_WD[_`lh{tifna]\miYQguiN`_b`aW[i\]aPeK^[PS`RV_s}^jEBl_XWraZo_Nj\j[oYVk~\bMs[SFPhbTk\dWY^]]aicZWmiJGX]UFVPheXail\w]=bb]NmuobUmZ\U]dO^[h:[[u]\Up^iXSYMSeLqy\ZpJQmp~^a]IxMfobij]WNM_O\Y`cSfl`UL\NVd\eOXYYV`_^us_hlp]mZ[FahRV\JljryeY^ZpVl[jOh{qh`rliD]fM\eoQUNtZDc[k^_hqa]_Zt\[q]doNJf^UpOYPRYc`lnPf`gMZblR\I}xjQmmcv\S[SYQJZ[Oc}VYVW\\aQddDh\oRU^iM`\gdaTMc^dVMt]JS_ZvmnRTJdT:n]aPS\SKV[pTb^UK_bmdfgbh[beWof_svXtvohFP\lhgVXeF_QeX\nNeOcea^)cqXa`{eP\V_aKlXYaq\FqkW\?_XWh_W^c;mgfY^qonfYrKvyn^UaUNq]a]X^Dhlj__KY[yscYP^TINe?_kVBYYbQXmLdMb_upCQ[^ujhndwhgf[FcjV\XvP[|~[`]Yci\bwg_]`GjvLxjyBq`dgIjkYk`ka{cYFudtZSYThyYVaayispWWogRVDkVRGTUM\jYe\dctofkXfZhW[gnRPfnHMAEgocnU\Lc}g9lMMJPL{T_|]]Sl7lgO`xUfP_PPQ3UQigmTtC]^FYjUrvlbikikx{dTOneVVirXQWhhfbVXJWt~h\XffqX>ha[`lX`HgjZW\nrjR``{bToOUww`]XbG>\VoY[Uiz\a`NxXX^b`loZzGc\PHecML]l|ezMI?FSK]n`UHcq1My`]SVd{Q^qh^wsR[[obUaTVKtcpjnPQ\`yeq\loMeyT`NyhZUX[u_VaUN}An^sl_q[ZeaicFZWzZfMZYRnfXhteic\rg{[I\]nXclQZ^|WTghYbyQU[RRaLZZUNjMPR?UonmXb3Ry^ysPan{HjCfdDfhj_i[_[PZResX^NUrTpeUbqbRq[Vmn_QXXqbku@_k;WX\qhUDtWQhf`XIgfSfCVPjG`{gPOUBJXAM^l[o\ZSUiqHPYIZWlv_R^mM^LEaOTke]P`aXNUc{aV~\feezhtX_a{jiJS^en_UupwXTa[eLQpSYtgTkWmk?\U[lbjaw[[eaclJw[Qdr`Mivynh_`_M^anUh_VZ_XhZepVYN]iUm\OTa]O`hJdZJq^\meYXTV\OcS=rk]^aQ[lU{daGj^`XdWoRPncS[[a[OwrbmS`_[T@lb}ennTuk9[IY]i]csaXeQK]jon]VxkaSX_iX^nSi]s=iYF_mOGmTEc@^U`mdcZgg\]4lsVRgd^pd]qfA|S_eTlvSW\sdocNUd]OKPrPK[vaETGf{cPaZU]lallPe[]NzZUOV;^T[``OOFms_xRb|duy[iL`SX_=}TcTL]_OGsSb^[^Y_nRPb~aznpghuS`CcN`fN[UU`sFJMR_VfgCZYcUDiVlk7kNkYW`hJtn}CLO`ZA\b\.Rg^\VcXrZpWmUdrlI`[T[k^TSpR]SdGKnPGye|Pw`[eSufYTh^JM]fZXaK}KX[PTY^dL\i]qeZQkdKPTSY__RWeYSqTRZLSl?MS>7`SSS\MnuZlhYSWbG`Zv3fPJC~lhHZPEjiWmXU`QO|`sTIYgISZo`y\SPhoO`[v\GdobWcogYZzZ`hiZRk`IqoZv}eWNVt\PobXWld]^Zl@K\WyhHhY\iTjYQ^mWLyboWsQeZcIDDuu[qN;T8YFPab_fs\hbfrfdlJdPWNK[b]@VfWZPqQSMWh_yZNrJZm[mjA^eRdKUldf_\^zdwzbVZ[Eg\Ui@|ZHHBr_YG`OoStgQbP[?ZbqTISjjnZ\RugaWmZHLWmffrkIi.`s__EAC>W[cOhSVYTicjYTp`qT^ksdwfJtOZJN`eLSXhZVNdfn`RthUlbq[aoVPcuWbeQ^xi`\X^yeQiQ`KQ_[:1o|cd_XRXeyIf]BclWXY(PZYU]~p\Zsc\QYOKFme`~R~gpR^Pf^wgcdTKRMkGci}KWVVnna`GqxpxaVuwQ_|OIh^ZLdkahxSLC[_eP]b\gRUef\jodIOa@P]Y:Ev[bls\WHc_VSi[9lkeq[UAaBrclk`B\YOIWEh^raQXaUGSbdWY5jQgeQhQSoI]LkJMCX>oT_\XE:[XCpgkCWGhkhfZXbbfB]YssJR]ETsNLdXWTXxYOqntpheQYeFhp[fZSiUZ^\SvqM^ixa;[eK]w\t[QUg_fahdh|ZXT{gWLsgVhWJOTYQ\w]dS_nMdN^JifXYa`\eccmd_qM`]URP[`lggpMlO[_KoebmaNVZYGWc]OQQKPgq|iood][lQceR|jX|:j]~ydhaS[qfeWZ`EmNkN`YsNwTX]TWXl][mXkLhRh\`TH[RSRg{_knyNcswd`Vct=W[MbkYs[sLzZ?dA[8[K^`MVqMj`mLG`upE}hJjH`RgadQfWPh^yl\FfkwFbAqi`_LzL]jVX{j\LRfXQDTZFNYn^dU~Lel6YTS]A[rNgsbj[q{pQhmc]_T\\zbkvOui\KO^VYxMCriUEv[duVNhdPzRwI[Pd`MJFTQKhFL_SPLKdpJ`]NvhG``>ienYdXVIutLnt`PUQVfj_qPY9r}JCrv`LZ_CXYRYB_nliMvqLcidgbLbN[fTae\da^bbvvsV;fa_WT]jMcVeQgEaGb`mkWUMXVJX_Sp_BULvgFb]VjfTF_>Gsh^H\gHdite[VONJnJk[^W`y\O,MR]UENa9cXkkdRhUj\K\UOgZyRTan8^YZo_erglfm>n9rSTbflxCIWD^GPzViRCY^p}n-w2VFmUx\SrlqOrBWjQuMfdJmY}VRORxzpd`?Q|l]eSQeF]\M@pxQYPscFNY`~_h{X`p^`h|n3kR\cU[MYtpZ_tRZKTbWmrcNKXdgVXWINnXcthRXuK]aHhLYX\u[YjQjjSd_MTqR\hZ_UW[XmOp]I`cyTv|hVS{iBSYxQ^MshacI[z[fBXKOndd[aQlibRaJR\YHxFQ_hJ[bGhkXXgg_\^R]q[alqiYYsxmTnT]\dp}_X_IzUXT`APtIn]cHfZgUhXecVVxeVVaQXMiT`P^crahTGJ`zQkceiftgcdEObY\rIPifY_cuVGf\tVqgJKU|ffPai;WDRu|mrXbo]WLWJh\{Qav{OVrPMTwjWQfiPXhbEqXH^}nYf_m`[Ui?[QogfNqNsuUU]XcPldTl]m=<[MhVaanMS\t]>W[^gEXeb\YqTba^RhM[aWO_^jTR\S_^L{^Z[~XNS>[cGctPkSHXa@\mKdkfbLjZ^eCLjejZ`Q@vWbLHMGV`xrpgVPgbvC`Qhi_rPgX\FUjplbrP=`O^YM\UHwPcXTXg6d\i^cRKf{YaojSm_PVWqbm`Jsf]O>fSOgjG^LvITwi_PeeZgrbzrxrhpYwtdYhJlSh_OjFFu]f^asO7`bVSB:bQb]7AR[fpyEBz\VpaLLS^\pRbkhFZ^X}d]/n[D\?_FjyUu^ZS`DnkJulvY]_gcfvnOPVXWVNchkRdZSYH]iRgdlItV\X`_NQZkBbqrJ]`@TWkLSblSdv7^GqSUcKR_hXPapVcPgN[VOms^l`caO[SJam\gcsff~oWSXbNSorU[gJhPaadIb]`aJLuv8JigKb`|Q[Z\VP\sZZMTTw\YdhFv[Th[SslKVJgR_?WUdZOOGMgg]^ij]n`mCbnuxdXPagd{pV]^hkkZQ`jqcWsT}Ot]MiWXjQe{ZWYW_is]oWeXdj`HOaZvNcKVcgYTzoGYS^Lt[aaqebLSUgZZTwRPravWvbEiQf?uTE~Wf```V`ZfO`kv`IaHa|YKYdaTGo\lt`][kjqsZXgsTcJZ_QkGLObWf\uaF`ypT^M~oZHV[gcpGMN``eamJKcsoVqUGql[\\Scxh_K`OB[lkuwecgZ[xR[ZYRF`q[m[SVrdxIOQKVyrcbYXVRT\u[qIIS`]RrdfaGiVi;jSjKx^s5incAZRLDJFYvtY}IVRWUnY_R_id`eeceZq[K@Zr`jORhR`bprLPjX`nAcxi9X@UjVsatkU{VZi^lXKgvrb\Xfnh}l\xFpaab^Y`eXVD}ON~mTqXanb}P]thNoQENf_RXakxhha`Tico}NnjSzhQyypi[XHWlZlKlOWiGNVo_vYxOmo^H?vFiZUn[W[E[YzV[a=?If@WtMefK^`rWR?SQP^q]q`mqIiIBGt[Mg}ugF_K|be]^wsTX>RPceiaiiX`SXO_]YZ^gzeAbXysO]kNvSnYcgOQST]ZN^e?feR]`^~}iA@cNjewS[RUcsipkUUZdkxf]ZK{bj_OhYngoVZRQr7eIIAo7ouUdhXI@hOp6]IbVf]\iTbfK|kj\S\om:WN]ESVeabeY[m^O`PGSJPpbeMv>ykdWhogshI`OOzdPwW_JYWLWuiTTOLzaTdN\YXba`Ya{fa_NVdnYXc_YZ]jf}]X\_n<2fWIXSfglgPpekRY]VM_nLpi[V^og\Sm]aseYo:[Mk:s[UTXORWN]o^eaX3eUWI^OrocigKaNSz^B|y[HpEeUW]ilpenY^?QcIokV_gkHslJOHxf^QdYoR`jfgb[hOR`FsN^T\HtZriqO``mNkbej{9MN[SQh`JiRq[G]]pLDU_YVRcY^lNjYKbbLNEA`zz[W{r\n\TWZXO_Yvzs_a{R]RY]VZlb[\jvpNLXajZK[LzgfqTQ]z[G^Q]theBtu\nnmHQXWV_dfjdZjho:Wdq{f|cPWa_aQ^pXg_Shx`HTUSk|_bE`a^Vomc_KNY\@FMppHf?_]fNSj~^PNdh{SDd_CceMXu_vZedo[cR]^QdRf]JOfWiqKjPbQteu]WvTb]TZWFNG_Umwi^[k[jvK`K[Ix[JuoQRQBl\InXl[U[walpguGcxbljaGP|eitdBZfv]ZO^QlwX^UdI_^jU^iFSdOqEhYqkYcQxhUQ\yT\MJegpWL\gVvPaWV]NRV]j=ThXaiQWIcP^\Jov?hNU\X_rS[:PLTF{_Xs[yJddXuqnmINZCMi`^IWQnewi]MbR5beYrbpXSvTNYIOF{gLNNNX]UNr_eSlok`AK`SjFhMmbJ\mrjqGKnepckKd]CpYh\C[eLaMglwZasydaqi]3eCgec^]\T\fm4H@jcrc_ekb|pgi]]_KoZO6WGfWjmGCThS`ZWTTpisgJZfX[v`XtoV`co{Y]}_ZJ5diqRNTYlfmVZt[l`SuYRYrpA]SfoeXgZ`NXrR]T[LMs^ia`flfsfVlfq]YV_pUJdY`TgeiSqZss^uHuYzEs]H^bV[kYiYR__ecTp[TefV=gb[CXNX^umVTPYvMWd@PgEmqFJFbiROjXZZMYgnQTt=|}LSgfs\trW\XeT[dKHb`b\[LOm`idVUbXg\vkqfkd\vFV|r{mPlZSj]cOBNH[fkROThGiQS\rvgh^`TSIb^kpfnwieOV^gV\qeoURbOkEWtz`ddnRTeNOl7_rY]iVRmrUCWUehO\]*NLirnt^P;M\zWzE~eVEHbS_\NRL`UqzohWQ^;WcaNw[^R]dqZ~N^~^QZkoVrDL[T\l]lNJUYkcTkPR`\[^w_`Y{OK[g^kR_YMZ`bNiY_FLkZCpcBkViVV]b\mXZlJ]yrX[gJOWYRGlGdYRiJxc\^ZL`aezo9oLOj^T}khsZRmOZZHH{IOodNo[Ma\hAO^\\\^LIJF[NQUFadKjEwgN`XaD[bi\]_TL]sIQrS`>hM`;HWsgluY@kVRPcc```vZK`cQtNqbqYXyEE_k_TfjEqK[XuUEh_bUKbf^Y_PsN`G^[uc]yU;k{geiq_^dVHXYmQcidNrXo[B|gKvRgiRhYx_bTWTMIE_loct?SZaiSTY}TWeZA9pNsmwda_dnnUqXUe3\bllNc}c^FNk:^f]clWs~WQMfYl|YP]9g^~\YxPp;wS]RA=^XNMNXHnINdtiYnkFuUOq_hZvtU`yu|^ms:CwglZYNFSRc^lee]]v>`dl^M?[BHsyJtjgPmSL}`gW`xbv]dYaTp\Hd}qT=[`SrP?xMaclc`fxlNYCROvp?FcWZqP[QlaPcUzdfjFXMh|UbiZ_]WWX_Z[_mXkjv\zph[^~?gunbIx^ZjhL_eWgXnmG_tdX{5PLZLplNWfd]^QjZupzY}_iLhjOwY]IWcknkrU]jcfkpZXsP\SSO`bx}^kYTYSTSavdggbg^Z^YWfsCFzeXgdjN^xf]ebokVTpXg`Wj`TXfgA^huV^S_lWTjd^i]Ri^QeJh^URgSPb\VahMj]^jQC?^XX^ralVX\fVUTmOpghbi]_gQCgoXjbrXOndHN\ckgjqixpR{`ol^PVc~LfUT[]TaaKbQjPaVY_UhK[`rPTaIbhVcFNFOZXiOkIbT\aWKXc}ZoqsfanUjmpZabTULO\^bczOkctYGmpfX]g`hdU^V]M]bZgcLsmq`|WZWco[ZWydgM]iHiinHzjQMZRKhONIRVeBWVPua^S~l\agP~QpFM\qZBQtxdUgXndt~aRfIllSBudH^rSTPUqy{fNb|]Pemrr]V_}ZF}Zicq]kn`\PkA\mTy^\[N\bMcoZkPGYj^\`mjynLSM[KRANoadaNYVfMgalFifk[T`bpJYTNVnPlM|][\\WmL=txmXL_dcOUFUhlKQWcT>Xa^{{ite]LA^jff`\OfdlZWSh]nJ\APlscTRYprh`\\VdZiDsUcPTmWimnv[NNQIbZapa^_iblNaa^f]tw^wfnjhSkV\gUXwV|a2tLX~Oc[PYB[\`rgP_QQV}`s]O^aD^iCgbe\jf=kTe^s`Lc[SDK_IPgQ{MsJ[lS\o]MG`u^GTR]XMe\LRak[V[daUttWTfC^d\liSUzf@pYNahB[rVUc~u]gv_IaQPKdFlONyTa_>gShtGz{aOQetahj^YfeW|QR]]bOT\IThmhBjki[mOKfLaUg`XJJ>o^[pYbGEh^lGk^q]Te]\dT]vtdA`Po\KU_TVTFPeUhWz>dWyZMsMEgeVZd\ZrWoJnYifHbPwpXsTBw\KVqZb^Tl^Y`LccQG|OUkU\~jDzkVYDFFXcUR`VRQ\NyoG]]uwLitHXgPgYcxWfag~[\Sg^YJpeASaKdFOgCwXTKS[GYLR`KwUbfr^amrUYs^RSFPjfoiD^lXiskQeV^CcSW\Gb[YmkI]PkqfpLfkeZLgXkWbwCgVdTH^`Okh`rb`[gBbO`eSWgFWsgAH]^=uXEfBRN_M?VaRVC]YUGTfV\MHfnisv`KuX_e>_CTPeOPZcUDj`rEeXV`st`q]?:a^oqWL[omVB^YatcjMUpi\YSoHuR^OXJY{bUeTm[SzejWWw`dFjuLmZT\AYgl`an}RQ_s\WQ~Y]kTlPnEgn=[gSaOet`ehdWZXcgM]QWDpPGe`UJYtYkhdTqi\jWM`pmHvRf}D\Yieh`aGhhVJmNfmcZjewZk]`~WChgkt}DQ\XwQUvmmvclnVglbZicWcgI[W[gmOXcK[ZdNJZYWetdqWZLXW|nPKX_oQkQNuw[ugHcUeKVVeKnr`cXfY^_cRaVUrYqTaRVdJiXb^_qZTX.TEj_IcESY`k[diRicsXwd_^QYMKdT5_]dmp[cg\`neYNgtawWbIlYKTisaWR[=iFRr_Ia]jfWlPmupP{Tb9Yc[diZgiBbjuhZ[d]`Oi]Xdl]cZc[Q{YEaImbvrHpaXD|dzhUOY_G][Inbv_QWNsY;zV^QVigW_bSRUMUZ\pkW8R^[LWRRrYFozn2fzKK_c{WkAg@JSiR_pjgOTLTjSJ`vw\\Z\VDWeeYQ|U`qpTafBO>gi_w\F^rMnrXU[YN_FXWQUTagRgdkpSBX_F^kB]Ttnd`g}gpmHlHmhKLWMqdw\UmQoQsia:,{qRPRN\LzSQ[NQWtRT^pjLXgWUWXX|UjSkT[IAS]nxtjrTrYf^RY]TSJ0Q]bPrsQSSAI]sxsyiqVDyL``u`bJtaTb_owXX]bliL^LJ7ksizaiBQgFrUFO\cwffjidydMTboXrlSg`RhNQaO\GiToJbTZUePTjVgWWm^cYTUs[Yc\WKPZ4khabu_MFg~uZ`z[{LY\RoiMc~XO}_fO\yTkB_zcpvm^UOOarUQp~n[agtLKtem]WP\DNFgNU@_QZ]kh;g]mY;E[phdGtP`epWmZuN_sl_i<`Scnz^EdOYVu_LyUathVBvecOWoW`zVpvyHJnqaPPfmVThpa`V\NTaQn|GzK`Rb^;L`DUv`qick^fbXyK\GtUtIXk\WtqfbMiWQZaYe[`NL[KecfrXVay^\duXg=H;CZ_Jb?WHR@e[pKfw?gNagq[ZH[DaJRMSaaUY\b_]Q^RSVektdZRFSOXfHPWQ]ZeQMWMt\`]_UNNkd^1bTVaWRHijS]fUOVm_^iWNDwGUW_k\[}b@l\ZDn\YjYa3gPn}Q`V^[eU]T>Xa^fcrXm`lU_gZf_KcyXxxfK?]rWpxc:L2TkQtl^YDm^K}aoRVXKg~^d`PFaTc~`BP`@kTQP[|U~bGNdgaJNEfe\\qeNU_2ZQ_yJC`xDOtY\eZjd~bbS:RIOQPVjgXEd:[Ifb9qUjPHkjsigkcU`^VfkZocmhki\mUMa`W|hG=Yg@aEWyS\VhZvn_tDy\b:ZZwy{\VbmR\k^hgr]m\kmeyge|nr^Z[cwkBSSSfM[cbsUS^@TG]PgZNkmf[fbRWYXWhCeclUet`ipDGVw\aLcPsXvQ|da^hjXRzQhVVYyu[E^j}A_s`ZXolIT[ykP|VNtAi\UWbyyrq[oUpU_QTfu~hojZn`NgOjXY@DSp[K^WCj^^gbfcj|NtIbEHoUnl_Rc[OeyoetqfvMtQg\tspOO}Nc=fcY]cpysTq@jiFukvcaKgTyUPlMjbanIL^hMXDlgT^]\eUF}lXZm]^BZo[baJlT`^XThX^T}\fuY[WViXoEb[znTc@sQ[rOTBO6hbedL@K^k^jcaiLdxpI[c_TxR[|R`TjdKvZycpdaMRLEpBP^rdq\oi|g=P]Z`gc^ReNZWLZUeabG_ObbghzWih]aV^cjQJuaLbPGpReZ\Ttd8eJ}P]TRrGZufBd[fDsTaRnN^x[\bnMSl`_olRNOpm|V]llF]\drm~eibk^f^^Z_LQOoaRb[``EYVHR\_KhayunaWHxfW\g~bXIii`]QJibnaY`YQX?oVZQrQiMPujTthVYj^iy_f}Vr~zpSStaIOPQH`cMwn@KQYnm^iYKT_Wg\rXib\Qmmg\flbdQX^_]V]pZv[Aw}e_g`UzXL_RfRqespW_c`\^KnU\e|MyX6QPVboRZdShY\]{]egdoQiUZcqbSXtbCHt{`ix\]xOyO^BjQVHWc^b^fYhH~`k?XkVGm>dg\wq]GRnmd^q[monMKOnr^ZUcY]fk{eMZrYr8aIXAy`]sKoSlT]^Q-YToWXcOyaPuD^hk_PWml][?cl[b]K^vZ^mJhKstklCN^KT]ERoE\J_bc]eaaXfn[Fd`]FbPWUskifMji[ng_`H^OjM^QchXOgB\v`^VtiZPjgdu^\TwK}ic\bgfYWZOme`l^ccwd`ggcQdf_`na>]nb_lv`upVdVbmmksXLcPRPnffdMs;Q[\G=FX[VnRZpP^XgB[d^gde{JmFpIYzZl]UpRWo\KY\XdFQYZ\nZDKdgocdWrXbXCngJPajb`XmnTzkLiZnsojk]YbKV=Uqm]lDq\ljTSg_[NkTj_QMlMhlYpMS]v\QuZ\aWnQ`^dQ`]TsYWamTUqYW_iw`jVN[jm=[b]R`eeXNTghTZfHoPY_rinbMjD[LScd]Oac|Hf\F^QiO`dUa^NNg[O^^jiZuVh=QXhfaV^IqE7IkSMTF`^TRncs\hdGV^Me[YW]Pb[\\^@aJQ]cUJRhhV]LRW^@lVjSDZoNmLh}V_L`UFUTpbWQkhVOKOg8YVpFTUYZGpemYmYel3U]h]l`W_L_JNRiVL[MQkV~SQed`\lLYmfiaZCR]fhKK|\eJZd]bRWVh{sOXOaHRbe:gY?YPZ]ISkWHe\|n[ln~MYb^TkW[egy`YgcGM_eKTY`^^YWP]MHpJVZhjQ[K=sekqZbtjWane}Sm}LRvMYRNfRbkUOZdh[NFMgfZUSMJcoUegXaphXZltQ>UXhsvV]Cbe`PFQsgXeF_uTdlnJoROTp[t_fgsICkWzIhEm|cgSePo]aBYYuhveFbxvXYITYdOlq`aFx]qwJQUAgc_]jwboOiaDaRNokcTH_wcXgS]U\V\R^Kcq[vzG^TodUwhV^pRiWngRjWfH\^]g^i|elkKhfUbkmkxZbhgR_e_@]FWGZ{frYK`jbwWHwil_v5vO[uZERdY_neUpSdRW^VX\PWvxbZH_b{bTRbLY]Z^HQaezd[nebWfUbPjRRf`]NPNQaSo^_^]\>EXDgVXMeUTYRrHZJCxk_jV~[[e^nQVSWRGZaaW}s^Y[hGnErYzwSrTjzIVWzsY?_v;V`hXB/l8ea]OiQ_]RhHa_ZVKQYvaTnPpLEelr_WIR|slbaeNOZP~`NVNdjL`VQSdfca~gesZ_CPkYJ^JfvWoox`P}dYKB`x`eU@ERzQT[9N\hu]ObQcV[[FNgZYiRkK>qIh]ap`ck?JLo[W[N`u^INOhKcpX_`;]WW\ZqPnVmWL}[ISvn];WsLWn>KmnG`]ZMbcjt]r~FE[WUSPZGgeV[tdX`Ra]j_~VVdcMX`^nTUrE[_FwF|LaNYyYrYDP`UVTal@lj`bgc]SU_QSfMuQ)UUhfae}DNP}cCGbYRsYgeuAgrnQMpQL?drjJmSLihVZ3{P[asX>LND^J`n_3[n^raqeBEw]gQGU`nK1fKJl;NiVOW_]F?OYVimMVGi]HM}U\ZxWcgZulJHv{\g[pQZElWd6hnu[M_v9g=[~sofytSz[UPJpccOhaKg@_YW~SQUJrk\|]Q[h]VYnIiJ^RMrOfjjs?twRf_hQEp;OqmIafWfe\KT_PiXT{Yse_R\~]gVZoQkdRT^bKPsjDmaQNE8AF{IY`iTj]]qykulQjLiFRHgfoq~bb_ZW]^KLrT[OYZfRNLsVmXQBoXvTXu`r_bkhfpTL_NYR^vZL[h\MbI`YRLokST`Y`a{dcgI|R]_[KbfJYnQSpUX|OrTHwMnqd_Ughga;ZkxQtm{8UlE^NariLhWfWDVO|UE]\^eTOYNiizN`helnVn[usgcSb6Vwr^bfV\ZkY@mIka[tcC[scnbz_mtU8lu]elTXYMOQinYQnjje[}aHh]]hTjk]pVWf~[SUsgxrhjSliJDCn\qsUOH]qfm^]YiRshWsfBfZFfR=aM`LPYTkUp`X]K~gwgRLVgG\jmS`isyVFujUT[ZYf^bnv[dg[KalYLTeeWjXmkfNEWfxaS^qXY`mfoUMdUMl_JZuSWYHdhfY[bWbchqqtlj3W_baOc]XjbfoOt`ik[Q]aAJUbXRjQd\fb[ViSWVLahL\dyibWRcPhiMR_i_cH^m]fTlNtTEihBmgZrdSLxh#QfVIchqdVHUfc3U^xY[ZG:VJ^rbG^WSWTQZR`NKBfs]IcDr`Nlbtd;G_Rg]v\VCBVRfXiRNrU]WK^qTY[Y|cNcM\cmyxeM?]UdYb{j]r\xoyvt>oSAF_a>m?JTj^PVdpjoV_e_TMSeSgaS.kIWVaNjsWqrTjcVK[SlRbZLWW:cTOAeZRZUH3Gid{bp]Or_JLd]ZYd{RPyCm:PU;\5fOHlZcc`WH\yXle`NZauXpfg[GKWjTkaYWLRK[IZM\n{]_Ga9cpDZQ_^gOg`PrHY`yOsK_^?_WoIg_PiLcJecz`ySa_W2BoQ`QkaZGVLyPfRa=UenflRb|^]x|rirSXOkcd_^]dvM2]{f]sQyYM`uaRQ\e`PPiXtYgeOyX_XqfgmUidOTwwStSk[q\R^hgSe\pnPICmZNbdPTkcpcjY]YoJgYZBnU]ZnjR?e`bUSNUYWVVKfnRmJaewTg]Z`|a]zPmgh{JpXeBjjjpUdRUSFHwXPdVtlaXYXFRLa]RXk}[ZTU`=]\cHhwfdFYaXQ@pgnjWn]Jh_ZOYNdygUOdcdcS_T_hj\Zls]nqQMRdtWZwQtalIIKcKg^I[jNUbEnVjpgLXF|NQU`KXpS\cTa[W__fFW;fORyNRrB]OXcm_hxoQlmOb]b]=ClcTa\VcaXtkAQVw^DW_LZYSzez[mcVi\B~XFI8Q_?VC\tfvQ:3l]waYi@bp[YfVUd~dIYXb^^Vf:a`[[h^ViZpmWWNiLtaXNIH`NV^YGRXNbQ_^eak\Q[^TiXlo_Uk]iHAZhWSlgbCZLfWU`SZwasUVkg`Xxe`c[\TMhIn~\`LTLqngKZLMXeX^Go`\]QjoVbYpbXi]L_Owl>^X?VrWiLgRV\`_jMVY]h|hhvZT`mPaeS=NfTR5Fg\pSfCoOVGN;e][xODmQgwtVQ~hfUGR[`tgSS^S9KETNh`SdcV`WSYYe=Ye]T[DPLUTNf]j>XPf\SdvhBgNM=djYkzbSlYitdsinbnj]Ub[aZfPIRI_ZsVZ_iv\lc?jVbyf^QxZU[Mf^Ib^wqORBNGc\TyIXA^@FHYSuZZRkmbPPPwbPn^^L^LG`[nYyKzXUHD`ckQnSVZ8hG][mzXLQA_[NleLW\idby\IfSjYQjdq`eIiYvcMXRd\>aKrMZY[eeVN^J3jr=rjiNe_\[]SfxxOUj>M`l`aI~Sob?IpccnqTgQCo~SXhTpn[\[S[^MFAYM^[VNNO`_hiWfqfqdlnxfLWVS[Te\ndbgYkQL]\q=5mhiM{oI[e]_qmbsj[|DMtP`n_FV]]Vn[@YZeWUPseYbpP?Z|Jz\RUflwr[ZoShf^mXONC_fpNh}=qLb\ve_Se~qchqJ_bThZJRjeldqcVpUsBANw`YdQhOdKYkacawB\TnSOXx[kuYTYZSFZRAIj`_[_Z`dWp[h\^xw^X{R`iIUffrjq`WHVLwp]yqnnaT[eg\_Tko]EuMk^U[rZr]ki`Z\m^lqFNaUP_WYIO\Ku\9^Sq\ivpNdQUHgc`]`npogX\ccfjsWZyXpchc}hcHO`cg[cf^[kJnQcTwUbfgVy^]p~nia]eZcyboiDtrSPidZj^wmy[[Od[w[i_ejbykFhpSWP\L[pWLj?qbYh]QrQE]nQ\KW]LHr_VfqykftdpMNNWnRTWiZ\\jbnlRO}@SXZMKJ~r|kWSpTacXCzRGesqZXSVnKRnaeXsf_~i?`M^lcn`NYJPQSI`RrgdYlhYuYWUdq[dBjXI=JpWeXVI_J[s[UpbWuUGlqc\lrT^X\PVz]cnbX\hf{s]Yu^MEMgOZldxd]\]\BDmT`^^Q_z[JhhKPSkcZRo`Z_`Ept^ZXsXamn]{ObapXX]ai]l[YFA[lkeJOIMQc{gXybl_oW_r[_bycUKnd<[VPieybQo>\U]~ZertpTCPqjJmvlrHVua`|W\MB~l[X[k[XdPNVLR_sfejtVRqAXkuFGlEP[o\|qUPExsdPMQGZQkbT^6b][P_UiFWZXBa__WdK^^RuVWXMhQZVaeE]Tt`e^T`ode_Z\fzHGZvM\TYZYjJMsuslXYLgM`SAiItXG>e_gNcDr`ru[Y;L}Z^{rMVJRgiS`mXPNWji_`djInUleaYiUyXtrVacgilsdZcVaTbRL`R_KTMalaAj\IjUfLjWN_ZpptY]xX]touQ^E`X@i[S[pl^JT_fhVLOPT^jQXSEXjILhiTVZS_cXXfWZRjjHZXevC`ZeWRST\X\RqY`[dwbGLlEWUZJhcQEURkZFL`qQUTVgxLSW[iShaLNQ]\gm`RWlU]kN_SWbTTSMUt[grjdS]He[[s\]`o\WYgNKg\j5U]aTnggrLJjKUO^``UFXR^yriX^Ogs`mT\QJYLFIcca\Lc@4TCJs]?fjQSoUkrSL\bcR^PaVXzJAhY3bcp[\Dpu`S}fRSxsDK`T[{WX?UHZfn[yH^ecW2L_GIssabV[_:Vu_9eeM`d[sxXhLi`[VqJrQmqWnMQ-pcXfqSg`IPNdWd`WocQn`qVuo_ISPL8-Zqiamh8lQ9aWZlWCEVbSe{[jiTP0DqgY[N\`u\Zkn[=d]WRHKL>}Q`cG\_nzL\SrAke]]\MPa^fCucY=ZqRUZekIas1mW^asi[YScF]QZHpbX^L\T\h3]va~mTYIfOfh@cyfIifNXc^fWo_TO_?``RwgBL\X[KbbdfdfmtGQ^J\c@SMvTGgUf_NeMcNgIQkYPU5]ygIa_TUXff]PfwVQSSmQ{GU\gURax_?tiVUsIYjeQfSwefh_aDQnZZtO`Xkhcep|pWp_MlieK5Wb^i\WZ_UHeLjxeSOYy[DTcYcFs_aiedf\fR=Bd5fWf\YM`~dklpaj@ITpb{2jmGxHp8Jlg`r[]iTb_C^kXZbZziJTEL\gJe_O>VBfbYQ_Rkg`AEd[QhMJ[Yffa]dSdRX^Jo_YVNF^Q^RDkHh`Yiwk]etfKUldaEVbuQiLuNXUqSTYmvdf[EUg_ecxY`YvsV{SZME_hK\Z>|2MeuQ_X^ckN`]VR[Pk_mOWTUYpl]JNXlR`^]bbP]RSI_cP{ji^g?b`wlq_g?k]]OH;|TIlFGZ_Wjf\\hPzPO_VwyO`TCb\hryFK_UWwQVLfdSPbdUk]lv[N[NPgT`XNiUb[E^_rkwnhvTMmqg;F[_|}LeiRTYSub[j_fbOiWCOZYfYqa|?^VY`Yom_pkSgO`hdrX`qag]G[]H\giLoKWPJ}LYNxz`Phq[[n[ixsXccb^qMg[pOnO`o}RiN^]PWPSzI}hVWW]\AVQUWobl`c6M[kS=\Lbk`nDsWSjmjzM\bGPFVSDz9pZ[OWdoagNolUk\^._qdf|WbmjGqEb\]|_ZqTzWX\L|dmldk[Wj\eHfmkTq_aj_bZ]yg{jTfwYNfbeK_^w_Rze`fkER[cJuT^dgpTUVRK:t_XChQUGZyXiXRbUubzkhkR`fje`jwsPnmUQli`m\JAJSDI^OKQOu\]^otfUoZa_WoTQZRw]UWEQFTw)n^9RW^d^U\mj^Wy>VXLV;s\jeIdZm`SGajVNQhaUZ[AzbXCNgS_cOgJ?[bJSRQWM]p\BvLJu>wJ\QBSUX`QaVhWeZySZ~~mm}hHTf_AP=gbYGNjZcw8gVgPblQyHZvYdFq^Wj@zWeXPNQhj@MiP]Nip`^r]{SKx^ckG9V}nbiYIVyVrfJg\RIF?dup_aUHNVVcNaxgUO~_XHioDuq^jZn^d^a[5[UWGjgngUa[wT\zfx@cm]J\^J`xbWve`bS`^t?k^dFRV]gz.X=bK9[z]D_Hy[vrRZLuzJWR_rX_\`Xd\LkiagXjUS^zYYjc_ai[_Vn_lhddlfH[mMZ=9j^aBs]ZBb\d`VlYVkNr`LLw~?prmci^c`]_|L`nlWmm`Yfe_IMfR^Tjr`]k\I,^UlAp]g_tl^tQIcUgTSWkHv}\nwZkjbViaRcdQIj_ghNS^RcShgaxbjp>k`=mLeaME[RX_Ynhn]`JZ_a1Rl[Xs[h\ae]fg@qjUJTU9]zx`aQi0oyc_uSH^UncjsSh^ux[{MAk4[ZMZDFl^asT[UPv_Siei~Ub4b]dkuV[TRkgETa\Na\4mh`xYM^qbY`U_hdFchIasfWXweBlbX]UmYsRqbvSuS{UjB/gbJ_C_wSYIeXoRNMjLFqLXNbYqgW_xOSPvVgak{vnfYSeuVVapfE`ExVdHqaKPWNzeUJRLm[dv[MNtNNgZH\QeiH{S`TF^Of_]fPN`skawSXvKQmQvGQoVMUpYCrvN`Ta[]eiIq^bVGYbJpHYKLqPUKPUAYRUWsachkRNxDJS]gcUf^RMmarTWWX`UVl^ZcWaYiRgmqVHpuf_uPTrcVWvIftm]]?P\[xi_c^XrWPtbYnqJ[LWWNZ\lLYQiCTPi]CgUzU`6zQVeWdGkK`wSReO_CJfZ[c=Vtrmk_NiO\TeegZa_[cTlOfdV\|vYuKvR\`OzK]PcgMRY[bVCdsqQLcurXfIpPe=jduvp_`XYu5]ERh]~rpf]gq`fb[fdnqQFgV8|I^[AiutrbbjOQ[Sl\grigQiXf`\mxr_Zae{`XahUlvD]W]fd_\zvE@dP_NUvqjnYYjnLMW]JdOVXXIve}S^h^SbOU_[\egLXigMdpReNAUX=MKylQSQiZbfTEUcjha\i[lcY[gnmrCR=]T`HlTLY^OAbL\QSp=gYTg_Z[T`pQbgUJKaWRZZmljXefhV7}GW]Xc[XGkUZV@`cSIhVdeWT{wGmU^ri]VGGd[[\_rDHPM=lMqAixK]J[tJjP_RTYREVAYy_c]^QrjrMQzcqq`Qwbz[[psvKgUc`WG=@aOXWgCnqFfWli{Z]UWS~VMJcMiUDC^ZbU`[RHuHfPRe|R=nSu\a>\gdX]o@SX\ExdLfSeh@nXMOYt@\[cbfYWaRre{QbSPe[QojP=^^hO[[>kg_W\\{XhWigBG`\O[z]soSPvhiqReQ^gkYVrPYR`L@a_grUOZwpsDYR^[GwJX[qT|wJ\uXi:XmpkceUh\hn`MWPWD`Y`QJvcqrTe_Q\S^bEeimcmT\GlsTfdzKwfa`LQpLbHH6SN]ocD`L[_eX]Xi\cQ]RdOMQLb[mdh]=YW{eSoPRi2b]vSeNZZIpl]}XQgURd_UeWb[[khUtsiwg`Ucoj`LR\^TSsrYEj`\sWdR_[SX@BoILDda]UgaGjoam_eiv`ExrgbU``YbOvTY\VcWU^mdgh_a`c7WOPITkwQNUOsL~Y[TYd^}ZTrlil[jnrgOEXpFPcgBVS^Wqge_k_ZXRbOZngcAhS]~`kJLbHIX^_oQGT^Tns\HcYcJNm_\MJckjrETcIq~[deMSJMaZXToaYTxVivjvSiQ9[dYXtPs@jf}U\eeP^VcPjfb[\cP[nrttrstwpqukvsqwvuttttqspsrunupqsqprsqsspvsuowrstvrvovntqqqsoqrmrsotuwpssrsottstrttqrquropprqorvprqurtsrxqrqsoumrstrsstrqrpqooropqwqsvqqpsrqttwpotrqoqmqrvrsqssxqssttssrspqossosrrssroqpsoqpsrvrppwvwtvstwvltskppdolmrooqurklqsoonpnulqpwppsnsvk{rnmpqsppspsrotortttsptupvvlnxjtrrusrwpsorkporrknnphtpsruotowrltsupsynyplunqtnsousoqsrwovwporosnspnrrrstsqtruosptutrpquuqqrpnuuprpqquupsrtrprvtptqsotpppvoopkssusprvoosssuozqnuwtoqovrtprurynswrrupssrtosprrrotvsmspyrsnqstusrrmqverrqoqvvsqpqusrqssqquqssspurstqruvqtqssvotsurptsoqrpqqttpprtotrrxsptsrtqluqowuqqssuorqsrusqsoqqrtqsrrpvrrtptspsuutmrsrsosuqrqtumpsqqprqrsqsutpqrstttrssprptsqqtqqrtqqrsrtqqqoissrrnonopqpfvokqsqhhrwprskrrpz}srpuopnwqfpuwtmrrsqprssqlqnsrpsunvsntryusustrtvtoqrsrnsrtuorupsrpuqrsuwqrtvrpuquuruspumormpqrsroprrtvprtsrqotowprpymqrpspqrtswmrvtqssuu}pltprsqstossptqsqppspspqsuttrtvtsqprrrnurppoqrrsronrqptppsqstqqtrttqstqspoqqsowormtrrtxqq}snetjrorusrstsrspupppqqountosstmrpqspnsymurpvtvsopmopqjzoqrnsruuuxpsjqonrrtqrrsvwsnuoprnqorwtxssrrqqqrmpktsmpqpsqssntppqrrrqnpsvsyuqjll{xsqtkqz}qowpqpoor}mtp{uqtpopphssqsbrssrrppmpkxlqsppttuqutsmon{xqqvprvzrrynqop}pq|ptsywtqonttmpqpvbtsrtunpupmwkvrsrqsrvnwqmrstrmpppspp}vpqpsnossqmmojmqprppxrzsqpsqrrrrqu|tqrtqrruqutmtptsnlrppursa}trNsktorusrqr~nusqnruomutpuyouottrqpsrspylqqpltqgqw{rkrtkqnstlrumurltoqmslwhpqtroprsmrnottiuuptqrolntotjqtspptttunrsqntrttspurpsossprspurttsorqtpqpprtrnqrrpqsprpqotsspqrrsqrrruqqrruquoqstuspsnsspvqnurrqqttquqtrsluqtqrvsrsqnprsuprpsrqusqqpwtrrstuqrnsqrtvqpwutrutnuuqsqpsrqqqtrtnprtrqpttqsssrrmrpmsqqnssprppvrsnursvqsvtrruuqptttrsutqquqrqpstvqstvvktvrssstrrupppqroqvmrtutxrvsttqpxpp}rspsttqqmrtrutxsqtswuqqwrqwqtynssoqsumpmpqssqrptrsuxpqlsussoyvtrqvwsrtluuuqooxtpsutwrtprqnrsorutuuuptsrvpxlpussqnqukqsusqsspotuqurvsyrqmrtrwsnwrtrrptqqpttsurpurrttspqwosmrpsqsrrtqrssvqptuqroorqnjrsqusvrtosrppqtqtsqwrpntqsvrtqmssqrotrpsqtpstmswoostrmrsypuswsqsysotqrusmwnqvtowostpltzqqpqruvpqtrrunrspunrsssqsouqtpuvopssutuqsqrqrrsvqsvnqutrrprrpqqtssptspqsoosrrssotqrrsqstqurrstruqtrqtwqrspqqtppqsnsqqnsqrrrptpsrspqsqqrsrqqqqtsnrspqqqrvrttptrqqroopsnrpuottrstprqqwrprwsvlqqsplpppsnrrnrtrpotuqsqvsuoosmnwoyrowqpuoxrsswuvvvqoswqwqussutsqsvssptorynrsovwqvrotntsotrnsvnyqrsvzlqjpppssnoirtpturhwrzunvxrtpswmqctptoxqpnsspprvqmnsrrsosumustyttpwtosqwrrqnovtqupnrvutsqtsstrtpqoronnvrqorssqrqslrprsqpsrqoqrrotqrppuotsqqqqsunsrrpsusrtqrrntrouqrsptqtqsuqrptrrrqqqnsrtuvqrpwrrroqntpusonnqstmtusttntqqunytqusposptuqrspsqruspsppsrrsqlqpruvyqmumrurwxsrprqpvqpqwqtulpqyqsvturpnvqrtnusltuspxrqoovosntrunhvsmwtqtlemrjooxutqqrvrnuqkrwrfunupmprqyrwusumqpnvslvmrsqqunrtsnvvvqkrunussrrrpturtqqmqpsmnrnqrpsznruorrivvqqssosrrrqqtstlptroqpqsmpsnprsg~rnkrrqrtsttrstpoqxstspquqsuqqrqvqopro{puupmtssspusqtpqrrsvontpmtoonnuuoqwottospkrqrpqsurpkpttostqtqqrqqtpqqqsqrptsssortsrrurooqtqpsqnvqsssrsrwqssqspqqrotqorqrtsuqsrnsroqprusponmqtyqqortnqgtorrrqvjptqtqlmtqwpvqxuqtrtsnhrrwnsspqpttoqqqppqsoppqrstpuotwprnpotqsqwltxownonvpxrusrotururvnstrssssrqupnuspqmrvqrursprtrsplsvsuntqrsqnrtsmusurrupmusuvrtrttronoqpqqptpktssrupssurrrqrqrtsqsuvrptqvtpttrrsssqvrssquqpqrrsrstrttousqqrrrsrsssssrqrpqptrwsvsorktvpwwoutussqltpupuorvqouqtysmtuspunsututosrurrropotlrtntrxqsqxtkrrsqqpsppsttpnorppornrrsssorxttqsqxnyrqqtsrrrrsqnqsrsqsqtxqqrropsqwrotrpnppvuuqsrsrtosrurxtrpqqprsrsprrssmqprprsquxsoortrstqpvtkmkgpnfsovqqqorroowmnxuqrstpopqruotsnronsstrsoqrrptpqrrrqmsupywmsyhstorrotnsmtnopuompoocwhqpvqvmwskwtqosrnuqpwqpsmsqtoontsuuwupsprtproorqorutppqtosqurrqnqutsuqrptxpqproqupruurnrwsossspttrmtskqosrttoqtoptvsvqyroqwttopytsqsutvqrrrrwsouqqprpqqtmrssksovsspststtstlqsnquqqpwurqrsvstnqqpurrtrsqutrowvtrqssqourtrtrsutsrqrqorurrvsppoqtrrqrpspmtlqvqstsptntqsstqmrkqrpqrrrqpspstpurqrtssoqrqrotsrtqrvnqsstsqtrsqrtuprsstqrpuqpsptrortqostprssrruorooqwryootpnrqpxtoppsmntupssmrqotsqqsroqsrthovrqnuooosouussrnstuupppsuvovurspqusussrprtoutrqtpsyrnryrqrusssntrqrpstusotsltsossrosppsrtsprusqqpsptqqqymqsqpsotustoswvostvs{rlpqotrptqssssrrrqtqqrtprruvrtwqppqtqrqrqqpoqstrooqsrprsouqrtpqsqrrrtrttqnorsospsourrr{rqtjjsnrquustsssqttqpqlrpprkoqtstmoprqoouznvuqswkrroqpprsvnpqqoqtvtvoqoromrrustqsursmvlqspssprpuprsrsqxptqqrtmssopqqrnrsqvprtqpprrrxtpnjo{vqvqnqwyouyootnymnxrrrzqusoqpsjuvrq^tqstquqsqovmtrtsqtrqyussamwnrrqsuvotznnrnznoyrvrutwnktsgprtzXtrrqvrpsopwrtsqqqtrvmvppsrutrosqrooxrqtostossqqrnlmqptqrwt|srpqpstqqqsxuqrtrrrvqsskroupnprrtttqf|urfqltnqwsstqqvqsotpqsqruuqrtsulwttrrrrtnxpoqqmqqcqywsntrhrqqtvsspwpuqkorpptkqoqprsoorsptpssroynxsrrpjorjwqpsspnrrsvppsmpstpurpssptmwusqqpqssuvrttrrrnotsqmqrunsqsoqqqtrursrqsqrnpyvnquyroqoowqqtqspuqpqrspsutwrqsqwopospqsprtysrnvstvsrrropuuoppstrqustsrqqqrqupouusrutqutpqqsrrrqqrrsnpquprmttsqssoqrrqpqrrnrsqptoqsqturrspsvsvqrtpsvtoquvtshtrprnruxrtsstyoxrquururpprosrplurrrqtyptturssuqxvorsqrpsttqqmsssrqqrsrrrrrspoqsmosqtpsnsntrtuqqrpqps{oqjusoopysvrpwttsvjrltoqitqosturltmqulusmpyrtuvqtrqsrunorttopnvnrttqrtssntrprtqstrsrqrrxupsqtssmysqptuqtpntrtrrsqqsrtosqsptpsrqprnutrtroqsnrqnppwptnrqsmuqtsrrnxsrtrtotrtusrrquprqprsosnsrrqmrtlqqqtprtrqrtrspuusrtsvwsnurwuwoupsrpntyqrrrqttsrqqpuorqqwnrstrotpsqttutlrssurrppsrqssruqrvoktupssotpqsvrrrstpqsrlstrstoqqsssotsssqqrrtumrrpuvrsqppqqtspsrpqqqrtrptsrrsosprtqssssoqposqrrqsppsstqvsrwtsrqoprppsrtrtpswtpqqsuqqqztwlsqtqlpoornrsrqrqsntvovqwstpqnqntpxqqxupupppprtsqtxprrurwstqstrusquptqnqyploqnssqxtquousotqnpqpqpruriqkprmuqoqmuxqqusoypszpv{qvqtsorcvqpqypqnsrqputooqqsrrorsqwrtuwslttlsstqsproqutrqlutqnsrrrprsrpqoqmom}oqnrrrsprsorpsqrorssqqrrosrtqouqsrsntqrpmtqsprtlptssonrrpvotqnrpqrstpqqrssssqsnqprqpsuruorqprmqsoqmlnusvnprrusunnquptrqwtqmqrsrsrrorrossrtqstqqtrnrqpqvxsosrltptvrqpqqtvoottsvqpqpxssxrqppqsqqrqrtlttqrvqsnqwpsptruretvntrsqcpsnootsrmnuqrntnmouq`uotpoqvqwtststqntpssnsmnsqssossuopuspktrrtrtqsrnotsqtqqrosrtvqqsmpvqssprqluuqrsqqpsrsrssorrqqtsrqqrpqpoqrrf~rpkqpptrssqtqtonpvrstrouqsqqqttvoposoxssuppstrrrsrpttrrpruqnssswontpxroryqruqpsrpsruqpsrsnqssmppsssstsuqqsqpsqsptsuvqruoorsqtpqurqwqovqrtsurruusrvqsrrqnunqrtuqsrsqrqtrnrosrtprpqtq{ruttqnpjsrsuorrqqpppxppuqmquqwtwuprsrpstsptrorrpvrrppqqqspponqsxtstqqnsoprssqqvopuqurprupsutqxosvptptjttsuustrpuqqvsrpqoumrrrppqsqropr{sumsoqsrnvusmtprstvsrurststrtrpoossprqrrpmsssstsrruqrsumppsuruusnqqptspssrsssuqrrrtruqqsqqrrttrupruqrpqtqvpssstrsqttpmtowsspmojswpttlyxsotnfshutwqqro{lqzpjvsrpxcwurruotvtpqrsqlwmovntq}qupsfpqrqsqpopsprrnupmponjspqxtjq{trpts|jsotorpsrrqpqsrutnsttyrpsnsqstxvovqrmpqntrosmtrnrtrwrtsqprqmmrqonrqppqppqsrsssvsqtvvptsqnrsjskbpodzqrourronnmxoqvspkssorotvpwpnwhtkrprtppmmttmmvpnpervmmiqrbstqsrwortholmssmszoqYpnrnuqwpxonyrqnqurvsjtoqruruspnjvvr|qrqqnntttlrpspppsomorowoukoumqttr|rspv|ppuqpqttsrsrpo}rltrtousolqtmspqousqtsrktuxtq{snqutxnp~rtnrtsxtooqputnuspoptroupoqqbupysssqsrtvu{nqsmqrpqqutmstptrumsrnqquorroqrpjusrqstoltvsprqpusqssusjnrrxttqurtuprotmnsqtopursvkpzpqsqortkvmqrqorpqrmrprtrrrrqtusqrrrspssuxssvnnsrqqpwspprqpprttrnqpvrprrsrnssrqrtnqtsttvorvjsnloqmnrmpzonnkpgmunkrqpqrpqqqnssoqotsgrsxum{gnoqnrruvsinvuunprtwunstplpnrqtrqsqnqjporqmtrqpuqztsrossspuupsxsqtnprspsprnusqonspputqssssqotnvnqp|ntqtrrqrurpot|zpqsurysisqmuqlvrrrqvounrspsptqssuxqvosklprmrprovomvprltntttrqspxottrsqqnsonpwtonrnsqpssmsqrrsuscftmos|spwqnprsppppgooroikrxrsmkqwonnzpyvsqaplpsrnstqhposiqqv}wpvqwpgqqqqsqptvtjtisuqsuqrqvpstpqr|ntntrykysqrsrpqrtntsospmotsszuoncvswxtopwvpsnkqnpkkkknqr}smnmrpsjnypmVvsplrpqqsnunuqtqmwrp~|rpVpropqtsvsksogksrsnpplxrwu|lkvvbost}Mtrmqsonlqovqpwpppvqvjvrqusvqoorttpoyqquosupqsqrupokrrssrvurppposurtpqxvqqsqqqymtt[sovrnoqrrwwtWrt[plsjowrmrop}nrovmqmvrvwsttqv`~rrqtqrvduuoqsdosSp|yqnxndrsruv{qq}nunhogpmtlnorrrrokjvsqpttgn|bsqqqnqsdv{outrnrsszppslpsqpxqqtqsrltrmooqqssruutzrtrnqrsmqtqsmvntpspqqruntrtsrsrszypqovqiqrputustrqploosrjrwppvvwqvmosqtrqtqqyrqsrtsrqrrsrrttoqquvvpturrnsrrrswqrvutrsspusnspvtwtmonrsmnnuornvrsspsrsvtspttqprttuvouppurptvnwtqusrolkspsonutokwsnrszp{suxpwzk{rpsprtsotpopqpisqsrsx|ovspqtrxqwvquppsnpotpnktntoorstprqqqpnrrwqosmoqtmvrpuusrsrrotq~mtixrmrtzpzqltmvrrkojskmfojmuqulgpmnvlqudo|rsurrrspustoprsslqomjsurqnstokqoowsrrxtrpqtq|rqvosspqqpptyttouuqvqqsnuqvpsoqtpstsqsrthqwsqpuqtqupnlrvksossooujopupnvnnurrqwrrturrqtpuorusmurruuwlt}hrstvossvtyquuutsmrqrswolsrutrkxqvqpnr~mqurpttqorpptlrnpxluqqqpqpqnovssnstprrqpostltusvmstljrvqtuosqorwtsrqvosrunxutspqrqswsrvsqttvtsrttutpswqssoqrrqtlpqoqroqupospsrsnprrsqqqspqqpqstvutuspqtrowrqvtropnlnpprqwqunrsumqrrrrtq~sworqvpmrpqtsrqssrpsmvsrvp{toorppopqvopxtmwnjppsuoumuposrpuovsrxouomsuqsqqxulnrorsoxsrqppmqvvlmtntqnqndtnppkxnojlwqroppp}tlyrvqvoorop[tslp{noqsqtmuwtououosqpppzott~kdvtertspsqpqpqnlnmwsqursootqrsqnrunijoorqttustrnvqsstoutrsossopqstnstpmsiuprlopqsprsnmtsrlnrqpupskgqrorqrqrsnvstsqtnuqqrnxtrtqpoptoqpoqqmlvqwpqpqsswspptpwspvuujluqsurqlqqppwsuuqssrrqqtsrvtqtmpmqvtruqronqnsoprnquhnqrysptnsoosrrmrsqunssurquopptsrpttuq_srjqltq^osptnvosknokqixjnpsp[opwmqrupwstursnqssutkwlnssssqtxuknvvjhuqoxsustrkqvpitsstqrnuvpoxmotprrqqom{uqqorpnqrsqssmtoquosqlqsqpqpssr^oqhqoqsptpqqrrtktwnsurrvrsrsptupssqqq{ruonsstsoqsqkxyupoqrrmsossxlqstqrwprtqqzrpsmumqtsqkpqzpqqnsrrrrrtqrprsqvotuwztssknusrwnpyprrpnroprstrtpssr}suvrqmtkrrnulpottrsrnnsptqxotnqvqoqrurhonqqtvrsttuknquonxqkuuqxtwoqquolprpoxtnpousrrqsprospqmmspwsspjjrimorwpsuksqqosouyqrwuoqvzpvqsestzvvprqorpoqtssrnwmrprqrrrrvqpsyqtorqqtqlsuonwpqsqusttssuurtrtrpopqptrrqpksqrssuppwprrroprrurtutossqrprurrqsppnoqssrrtqrorpssrqwsutqsosrsxpuurswupwqqosovrqpptjpuqvvotvospplrtsrumqyqowsruqouusstmrrrrvovtsrrrsqotpptnrrxosovtlupqpqqqpqrrsuprsupprmsrrxsnqwqtqqrunxsqsrtpsqrqsorurrousstqptntrruvvpusppstnrsqqnsrmvprqprtrntqpqntroqrrqqqosrsqssrspqtrqupqnvslrmdpoluntoqsrpqpqvou{upnrtrsnrqtorrqunsptlpsosqqouqnrqqqjtspmlusdrsoqqvmsyloqo|rn}vrlcqmrrqtwtvsournquuptqlqlmvorptqpnurrtrttrposqroqqruspwosrutsqtpqqqrutpvvqnryqrrurssrssqrnrwtnsttprqsostnssrptorutqlrsvppwtosrsupmxrspussrsoopqqrqvrrpsqrotsrttjspwqupssrwtswnqtlrsprtvurqtsvrrmrqnrruqsspwtpqxssqpqrpppttqsspqortsttonrquturqtsspqossgsvvoqvrqsmsxrqsqpmulsqrqsorpsqostrrrorprqsspssssosrsrqqumptsptpstrpsrwqsrrtoqputpppssqrsqqsvqrrssqtqtomrxu{oprporsrytpsprjqupqqpooprpnqopsoprtwfqsrplsnnnootsrrqoqrrsqnorrsnwwtqmmqrvsvroupnsspqrvsqpsnuqqrrprnqtssquttutrsswpsssvnusoqrrtrprvsrppsrqprpyrqprrrqsvsnotxwqsrqtxrjqrmstpupsrqvpstpqpqtqrttrvstquiporpqtrqsqnuptowowprqpnpuptstqsooqnlorsqorspoqrqprqqszos~thirqqwvqsvssrrssppqkqsronltsrommqspoqy{ttssssnmrsrqqqqslnqqmrsuvvppntskrqqrqprttqoqjsrrptpsqtrusrprwptrsuvluqnqqtrprsqsprsqonrqnxrprez|uuwsntuwttmluopmoolqppyrootnnujsupm]vtpsqtrsqqtnvprrqtrpxusuft}smqtqutvqumkrupqnpqqwosvtsiuugqrv{Zusnrsroqoqtprqupquqtmwspssvqppprtpoxrqvnrtpqtqsqpnnroqtrtu|tqopoqupsqtyuqqsrqrvptsjtotsppstsvstewrskroslqvstslsvpunrooqrqwvstsrujurqttrqtlrpprpjqsbnwwspupiqqqstrqryrtrksrqtpkqoqrqrolprowoupppynxqpqpmosjspotqrpupsyqrsporrpwnrsrpqorrtprqtrtrotqyqutqpqroqrpsotppsrrospttrttrrrpttvpsssukpsrsttptqsonpnrpoosrtttssrqsqtqsqspmsrrpqspoqnqqprtrpppsusvqrsqqqppprxqpsssrurmtsntstssqprqspooqtprptpqqsqsptqruqsrnursrsmqpqpttrqpruortspmorsqqutwvqspprousurrtstxrutrrutormrtmtrqotqsrutxqpwotuotqspssrortssurvqwtupoqrvutospsruvsrrrqsqunuqruqsrtqpporzqvmvontnwrttquqvsqmpjtqogsppusttmooqwlmuoryrtrstouqvqunnrutorqrlrrtrrrtrltottsrquwpqosswruwsssoovqposvsuousptqquossvtqtrsoprptqqsqqrvqpupppqonitontqpurqvolmqqpsorvtqpvpustrqstqsqrrtpssqpssmqukortstqusorqsupurssvsuvsotxytuotqvtnqr{qqrrrttourqqtpsqqwprsqprpqprtvsslttqtqqrtsrksuovsqupoourutorpostsnpouptptrwtttrpprsvqrrrnqqunuvusrrrrvoqrrrstpvqnqsrtqrsrqqrtrqqorousrrrqqmrqttussqvsqsrtutotttsuqpoqoopttsrrqqnsqvqpspytunrpsooorrposqtrqqqorvqwqwttpqromrowpuvrruppusqptsrvsqsvpwuuqqupupqsqtquosrmqspurqyrqtovrptsopoprsqupjslosmurnovtpsrrqtzrkwpv{pupptppcqrpszqpsqqoqsupqsppsrprntxrqsxnluukttsqtrsnstnqqvtttqrsstqrrtqppqoql~qpssurrqrsqrqrrspstsspqsqqpqrpvsqqskvqrosrrsousoottqqnorqvmrpnppqrqspssprtosqpntqrporrqssmrqmpnsnqonntruqqotpvuqqosoxumstpmqrtruqprqqptrrqrqprupqrrurstsuruqrvrttsrrsruxsvrrm~ooprvxnpqsorqprprnqvpwqrqmrsoturqpsvxsgspl{uotydprnrqupnrmqmrqxpuosmcuiuttourusovtwnqrqurorprtosrqqxuppvxhkvrm{rusrrouvsntvwvstptspmuqrotuqppsq}tqorqqqqrrpromtopsqtrqqqspqqqtrk|prpsorsqtptrvuqmpspwtsrvqrpsqrrqspprsvprqqsrsrsrsoqvwsspptpotqqwtorqxrnpuqrtrrsqrrstqtttpnrqypsqqqqsmsrqqsqqstsosrwwrtvrrrqrtoqvrruvprpstqsqrmurruqsqtqnsnqrrsqrptstsspnsptqrqqoptq}soqrrlpnrqtrtrswspnrrorvqkvoptrtosotsnrpptwspqqsspqqqqpqrppqnrsxquqsoptnmrssprvppsqqvpuvpoutryopwssrrkrusvtrssmupotrrsspspsrrqtqquvoruursrsrsronowrpwpsrttpyqupqvtsrrtrrpsqsrqoqirqrrqsporqptpqqprtpuuppsqrrtrtrpsrrqqrsqsptqruprsrtqruqrspsqqstsoqqsrrtqqppsrqruspstltrqxxprvsxqonrsspulpstpsttrsrutususssrrtptqqtqpqpqsprtotwvotrppmupprpsrqtrruqnrs{oupntpurtqpxqsppqomqsrrrxqsqsornprqrpusutqouprrswtvputonsqqosopsrrorosqrqtpptorrqtpqorrqsrotqrqrsrtlnvtstllrtmlqthqimokhlmwnlqkyqqtrplotlmpuqqqrpwj|qowqsprospqrospmqqrqnurqumntphrsmrrykqzlnuo{toyrxmksntqqsu}rrortqmnssksqksmnwlrputoqrqrprvvnrpuorqqrqvuptqrrwsrrrrsrqtvtnqsokuuqrrtrpsotqsrosvuqrtuoqppsssoprrqrpqqwplqrssowsppqtqqotrrrtuttpospossrvttqtoqssuvwqmuq{pspsssvtrunsvarrprsvuqpsuuqnpsqputtpstpwurvqrrrtorsstotrrrstuqvsqqrqsoutqtvrsppoqrtsrtsrsmqrrtrustqrsuuoppupwprwrqqusrsspsqsrvrqsssqoquqpqrtnqrqqsmxsuqtssqrtrtrpstrqrorssrsrqrrrorrsrqssoktutrnvrpprujwqfutogxupopuoosof{qq|muqrqwshpqzvlrspopostqmoorrqrplmqtuqrsprsnwnuxqrrtroysmortxqqsrzptstsxomrrttpstssmlrwopwouotrprnptqqqvprqpsqsrqpytqpuqptsvtmmtywrtqru{qjprnsstuqrrpxrvrqotptqrvsrttroplrlqpostrsprrottwqtrsnsoqtptrspsopqpoqprpqsqroorssstqsvou~umfrrssrptustqrtnnothurprnlsrqqmpooppoyxvsoptrunrsuorpjoopsqrqssswlrrqunsqqrrsqsvulrnutqsrnrtwtwswropprpstqmqrqoqstorqqoortqnprqqxqptkuztuurnruysrojshppprphpqysqqtroukvuqkcuuotrsuqtmplurrrrrqltvpsotzqknwnquzvsmksrrlpnopvpyurprkuvlwupxctsltswpsqorkvqtpqsorovrqrtuulpnpupooqvnpqoosmtmooorprrrwvzsolppqsmrqt}tsqsqssuourpsosqrkqrpuqs^{ttTsltiq|vtqlqrtqsnppnnytttzstossptpupsnskqspkrohpvzqotlmnortzprttstiqpqypkodppsrmnurowotppkvsrrpsoolunriptoppusuwqttrmrtruorsqrspnssnoqxqurtrrwprrrrprnpsnrqspqrrqnqoqrtqtrpppssspqrwqkqsotvqrqswtprntptsvlqvosssqsutrsosukusssspprpnpoprsspqpstrssqsqsrsqotyrqsosswsosurvwssrrqttvsopprqoqssrprqooorpsussmrtquqqsorqprovotwputwsnqvtsryrwvpupqpqttxoqtpunrvssvtsstusppornsrtsttr{roxqvrxsp{lprqqqqvrpruoxqgrqtstrqsrpurtttqprusoprqsqxqttsosrssxquosnqqnvtstrvzqrskrssyootsrrtsuqouqrlsuopusssuvrwqwnrnottsrsqvkrsrrqptrkuqtutsoxvsqtuqvpvuttrnovprotuqvpustqpntrrsstssrqprstttqtttousrspppptrlpoqssnusqvtuoqsqvsruuqoqttwrqsttqqttosqrssortmsynppvrusqyqtrysrrkstutsvtnx|nvtqwptroor|rrnrquutrnrpsnqtrtqrrtsrqrpqsurtmssqrtprqusjrupxtpupnkvruvntqorsrpprtpquvquuttrqpstvsqrsqruurruvtrrrrwqqvqssvqvrqrvrtpsstruovrpqqspvrprrsqrttstvstrrrqttsssorswsrqqoppqnuvwoursoprsnrqsusvmpqtnoorsqnrqstotqrstssquvuqosmlunuquusrtqrzpqpsurzsqupr|ssqrusworssrpropypttquoqxmqruutrtrosuqyrssvnmslnqptsoq{rrspspzysivptwrrppzpofrrrqyqqtqrnqquorqrqrspttpxrqqtqouvotrvrrqxmruqtpwrvnqtrvutrtspmnnolluqqvsqwpsqsspprsrpqtsqtusqsrspptsutrowqqtvtsrprrsrutqtnprqvnprrtorprtppquptqsqqnrpsqqssosrlsojsmvkrnosqryotptrwrrqpupvrmxunkpowrssoopopqptqrpprtpuntrmusustwqvrvtzurupruzuvvpq~tttrtqrtpspovnukwrruuuoturpqprtruovu{qksqoyrnuygsoottuqptoqoruvnumuqgtotttltnrsqsswnoppyrltltusrrsprqsruspquqqvrwqsrmuusrpustoutvrrqqtumtrsqsquvtspmsntpqqrsppqnpqvttrqrsqprsvskrqhrosuqxqtrutsloqqvstrzorqrstqrpsrsrtqprrptsqurupprustqqsonsnqpoomuwqprsqovpqokroportvurkqsyorspqqsoqrsopqqsrsqusvupqsusqospqtuqrrxqrqststrrnpsprtqptsorrqtpptssrsutsqoqpssrqqustsvtpptqpposqworruvrpksrovsomoorttuqtnuptunrutspqrttrqqoopstrpqqpsrnsptoqsonossrrwxrtqrprwvogsvttoptqrsrnqtrrurtqousourptorrpssspvqsuvpquvosqrtttunpysmuqtqsqwxrurotqttrrlrprrqoonqirqrrstnpqsqsrssrsurttqususvtqprpqstopqrtroropsrqrssqqsrnsrrqutrqssrsrqtrpntqstuprqtwiwrowquvsnpruwyvqmvnvrrqppsotrustqrotvtttrsosspsnlspotsotvtprrosrvsstpvrusprnsoqqsnuvrorutusrwrsqqpsmmssoorqssrqqmpqrrqwrstrppsspqruopttqrnnuoutspquxqutusssqqosottqtosttrnoorpsqutwrrotssovrrrvoupmpseqosspmtzrljrrryroonuuontosrsoosursortntpqpprrorstsqpuvnytmm|nutrrqnypkvzqpmuvimhojsnuryopxmurfwsrunruptooumptprotpprrrustrqqrqtpsqrsrnqwqpsrtnunsqroortrrpqrqrsppqmssrortstorxrovovotqsrxqosmssssruvostpvurxqnuytpopvtrqqssyqvutqvosrqtorpsrrmprrjrtwrsqsqqwsssjsunrtqqoxsrqqstsrsqpsrqsrrsstsspuqrsqvospsutrurqusprqqtrsrpontotqpusotpruqpwrsqwprrtvoqprtvsrqtqtptruqspuprtrrsprstslprorqusrpoqvmosqqprqrtpstsqrtqsssotsoppqsqrsrppsqostrtpprsoqvsrnpqoqqvlssspnqnlsxptrmqpszqqqxqqqlpvnloqouoqotmoqsqrrrosqrrqqntqrtwtrrxrqtssutqrmqspmvrtqoorruooptttssutqvrtttssnsmprpsqtstorsrtrqrsutrqspqnrqsnrrqrtqssrwrswrptous{pmtpqtrrtpqrqsqrrqqrpsqqsxquqssusnpssrnttotntqttromsrpwpprqsrqrtsssowqssrosqsovmqoprqv}sr~togqktmptrmsstpqsvqqursqwqvlqssrprtmooqtmrsqsspsoqporqtukpqqssvuwqwuoqonsuuotottsqnuurvsrptwourqqpqqurprmttlqrrqrppomrqsntrrsnstrwutqkmxwp|pqnqvwpq{sktpov~sup~tpvnjppisrqwftqskroonpqwsqsrsqtsossplnlwtnurqssqstu{skpqpr}rssxrvsolsqmppstktsvsrspwprwlursrruoypwqpursustqruppwxqpqrtruqrkqpmorqrpsvstpqqrqtrtrrt{sosssqsvrrsisqvqmrtsqsrqg|sphsmotnyrsssqsptutpr}qqrrorvoqostpoqsstkwostrmpransyrotxpqptqxprrumsmtrqqkrpzooqsrrrxtpmpmsqlqpttopppqrjtrrsssorsssprqomspsqurstospuqqvqqtqrtspttqprqmsrrnrrrpqrpqosotsvqoqqqtrosrspruuvspoptpoosrsqpusrrksssyrosuspujtpspqmttqqrnqpvmqsprqutrorvtrqutrsqqtsqssorxtupvtpurrqruqootqrptorrrorospqrqssroprpuqrournvrrqwsqtpqrpsussuosssrotsruopoqruqqprsrwruvorqurtrussvssssuppsqptputqttptsqvpp{rpproprqqttqqtpmootqvssprtvqpssusoqrqrnorrtqqrsqqoswprnswrrmxrsrprnnswktptqrq{rotxrrtrrtplrsqnoqrtnnvppvqvposursppvlputtrostpuspqrrtynpprrpvqonptppptusrrsrsxovpsstrsuxprprrrsrosrrurqwqtpposnnrrqnsstorsorsprupqvtsrpwrrkurutrurqqttrmsrotnsqsqqqvonroplqvsovsrrqtxrnuruvspqktvvrspssmltvqrqqrssrruspuqqspuoqtrrqtrtpstztpqrsttssurrsqsstorsmsvsqtoruoootrsnvqpsppotrrtssttsstpttqsppqsutprqqrsqssqprrqpqstpoppsrqpqrqprqtptrqptrprrqpttnqroppssvrqspussmtnmqqorrvosqorqoprrvopqpqvlrotrqrrtutrqtssspnruptssqtppqoqtnxqoprpmqxntqxstrrswquqruxrsrrsttrqutupqwurspuxstpnunxsqrqnoqotqpvs|mqiqqqpqoqgtvqwurhutvqxurwpuunrispqnsptnqrsssuonpqqsrpsnpssstywkvsntsssrqlnsutppmtqunqrnqrtrurqrsrsproqmqqprqsrnrrrpqqqqrststquntsrvpunrnprttpusqrrtpouqqqkprqpornqrprqrrqqpsrssoqpprqrsruqttpqsprpsowtpknosuotrsusrqoquqtsssssqrsonrvrqrpproqrpoqssssoosuptxunsnrrturrqsrrroqwqssqssrrwrustqopouqsnrssqquvpvqrpurqtptrtokutp}votnintkoqvvsoptvqntohtvqgtnsplrq{ovu{yurvntlousouqurrpspqqtquotomssrqroprsqrssvnrnrosmmtpsppq}orsoryittqqsqqursttmtusqpwtrqppspruqsnsixrnoproprtprsrtppourtropvqsrqoorsuppssvstvppusrppssporuuussolqopwrornzsssuosqpuvopotupsurqoouuorpsuqsstsrrsqssssotqsqppuptrsonppropuqrwrsursqpytutqosoqrnrptrotsqssrprssqsqqsrroqnstsqrrrwoqhrqrsrruimuruqonprysxsusstpsronrsyrrrrvptsrppspqrrporqsplprtrvstoprsorqtostruyqntsuqtrpptupupssssptusosqspqvrprosqrsurpprtrqshquvsnurqrmprouoxsutuslktrtsqtrtrspnpqrospsplrssqtptqutsqprrsvqqqsruqtttrqqtpqtrroustqnrnqqnrrtqtrtsnprrrpqrrrrssrsrpqtrvprvpkmptkpupwtqtruorrtvpsqumumoqunqstkwortv}zrsqwoqxqsosemooopulsqwpssxsnsqtmpqqtnsnstpqprmxrwsppstos~qtstpmmstposrpqsrstmtoutptrrvrprqrptntnrspponp{rttqsquupusutvsqqqroqtprnrrsrlopqqstrw{srmtsrpslosrprjlnskssvotpnwtsrrsrixrqntqljytrovmqvwouotomnnupuntsrtorrnrws~umm~lvosqqrxlkslmqutjgoetissxnt}lwzi{ytumrrvtottrqrsqssnppqtr}trrpqqupwoqrmlozmpsrsnvpvmrplptosvoupovrqsnurrtqvsvoq}pmsssmrtqmuvltrptqrqrsosup~tsypni{tupoyrqqsqrwopqrquqppmonroqpvjknsnqtnsqssrrqtrtkqpzrsrsoqrrqrsnqvqsoqypqpsusrtrl}rqrouqrmsusrtpsrovssrwuqrqpptmonpvqqootqnpqrsxqorurqltorvwosppqqoosuqpttuvtsvppoptrmstpqprquxoqwntsrrqqmototswonrpqnsovroppzrpssrppppprrsquksrvktqvsrqsnrsttxpotr~qsxswmptpotupnvrvslsqropvtroxluormwvtwslrsytqtsutpnxtssrtrstmlrqrqppwoqqqurmquzmttutqnqpjkpruqrmsontvtrqtkrnquptooprtupqrnrnqqtmttsourvsstrwzuqqrxsvqlrtrusmsspqunsqtqqppsspsouwprqpomqtpqpqtormsrwskmqupouppsrstnsrtqnqwotvrmqqwptqupqssqztrnqnwrovossrpsozsrttrsrwxrvnrpmvprqrwiorsuovwrqzdtqqqmqo{vnorvtqmp{rswurtmrtrrqnltspmrpqksnrssxqosuqprxouporgorqsormuvotqvottqroqopwpptppyvm}tpnrsnotqjvq|ovyttszqrsoqnqkrsxqfwtrnrnprtsususxrnsnowqsrbk{tl{sqqtolrt|unsq}pnyltwtszqnqqiqptsetutqstqsqu{psuqrqpqynrqotqtsusssqurksorrsnsurpnwrspqprssqsuqswnrutwrtquuosptpswqporsrsqqwtuuqsq}mrqrrorlqorvssgtspwrtuutrqsipqf{qrprstunssqtoqntnoriqnsunqqrqropobprntkrsmunryrvtrrqrmpqqrxstfsopsutqiuuqrtpmqmpsprtmosqorwrosnwouprupqqqsspqtvsqsnnvoqpostptqsoqqrstsworqrvrtnvulqlsvqplounpxqssstsmkxmvotiqttlunpgtoqtv|wvrqtsqttuqtconqurosqurqsnquqtpsqorlqusxrsqmspposxnoqsrsorqtqxnvorrrrrrttxrsmprqosppsxrpzyvtoswpqqrvurrotor{ostutzlrnqkmsxnuonrmkusprpruwksxxvrqkutpxrvsqw{npvntsuxnsrpoprrllukrv|ilktsluqoownmvrstvmssmqorv{wvrzrttnsxoy{yuopyuusqoqsomtlt~tpopwqkssthosopplmouptrohompuntq|qrpzsrqrunqtrsoqsyotqmostsunurvoqvrowpupsqxwsqtuouyltptpspuuuqtpqqtptpstqrntsuxrrotppqppkqwrqnynmrqqjqqrotrnruunwslpssprqquonttjtprptorqtmqsptorqmqvvqostumqqwtvupqprtvqtprtqqutorxrssssqsqrrpousworrtqsssqorywrissrtprquqqtosupqqwnytrotrntropuprxrsqsvrqqsqsrpqtstrnutorpsootupronwqrqlssqqtqruqndtquupvsrsqoqolqqqrqrponnsrqsrtkmsrrqsrqursnqnmtopsppqrnrtqospsgupuqvmpqtpprpkqsrqrpqqomrvsustosormqtskprsrvjnrqkpopuvtpthssottmstouvssmqtswnypspswssrqssunvqpvpmomnzqpqstksmppqprptjsyquqtnurzqrwwpuouoqphtqrnsotnqqqqssmoqorurqqoqsqsp{uhoskrvnprtoootzppkupqqrsmqpruqpprqsxpvnrloopvpuqpsssoqrpqrtsssqsnttrwpqksuqpstmuoqqptumsqpokqrqonlqtonppqrqpsuurulqpqstspqvrstqsrxotqrnouonqqpoptqtuyktrrmpttrnlomzlrtrnprlunussotqwsqqrquovmunqrkrquozqnorxqlhsrwrnoqpvpwutlqsqpuvoustortrpuutnwttsqspsnhtrmwprlhntnrmmsupqurmwllnyofttuniutsurw}ustrsrnrqtrsosqosnuqvrtusoktqrppqssrrmrt{ppqsntwqtprpqq}rvurtllquppqooptpvtstosqprhrrlqqsrupspqirsqrptpprttpspssqutqpqwpnorrttqvpttotqxuttnstttvrqsmsqipuuswnrotxwplpsrnkrttrtpvorlvnpovwopvhprsssrsrrrrsorpuvsnutpqqqrnqttkqltqqpuprvrsursspwnvuxqusqsnpnstptqoptopusqptorpvqqpjwmvvtuutqsfrqpyosimpwqrsoppsqr|ovt|tmrrsrvsmostqsptprortpsqusopltnpqpwlnqtmqroprpmrqvrsqrruuqmztxqvunrquotrovvsrsosmprqrpqmsnrrsrorrttqmpyurnspnopqsotqtprtusqptrqrvuqsqrnmytqqrqrpoqsrqwqrqvqsppnstyvqmqtppsrsrpurqrttupvspuuroqqopqupssoorprsqmrrqqtssvsupttqptttqpgomr{qqzrqsrmrnqzrvmqRso{qm}sd|ksnuorolprrjqkrqposoqugqq~pxxqinpvltlttjueumq_molzowmlpoatnvrlp^j}vqwkwlrqpsqyuj|rnprsxqvwmrpyttwqpoqpnrvssuopttppsqvyqsstsonmstnmspnqpjpouqvru{rmrviutosvvtppmhnpjnoqqrpkpsqomvq]ywoyuuoounvsrppx~oqlsnrmvp{ppxtrwnplgqokqlcmirqxxqpssmnufpovtooraitqpotwuzyu{sylqvxqriwroyrxtmpnpuonprhqmtt~mqolonuanprro|pxjpujpspr{nvwsztqwlwqsxqtmxqoplrspoqxsjot{tqmppnrpqroxq{qt|pqkusyqpqupurkvpmpppmsqkopoqtqlynoppttfrovpqmmwrlvpqxrossrknortpmooqvuoqrsntspvuqfrrqpsortrorrurqyrprqnjltvmupottlorrrrkoqnrxocrquyqynptntswvolqyspzmnsrlvvxoptllyrnrstrpnuxnsspwrqnpqplpnwpwnjprojqrvtorp~sntrvsnooqqpsuzgumrpcnxwtnrpuprtppuyr}nqnssiztufrusr~ostrpsvms{pvoerspqsztsosnvzsptprxpiqsjnqqtrlrtulrjqqouosomtqtwussnoqvoutqqvtsrot_trvruprsplmsnnupqtqsxqpridqmtqwustttsusqlwxvmsvqvrlsrxvqjyorpoopuouqmqqrqtpqyoroslklqmprlrsrmtpvnzntwsqrrqtrtttsrspmrnnxvqjsn|pstuoprsplstPrjwpvtzsqsro{uplqnslpwrsmqtnumprs}oqsx}uwqro\rousnqoqtroryrpoquqsstsrhqqooukkqwtnsntjuqrus~nrurmmuomomrsdnusvvqsstqqonqnqmmrmlzylszrq}ty|pnnuppjsjqhnpktnoswyhmq|jrnit~fc}xohtbwovosuwp|qkqvn}tokZrlmorpooeqoorrvqrnnhuyuprqrgvphm^uvmwoynmuryhq}mrqovuknspspvoprtxozriqqqvsmtrtkrtvyqmsttsrtxptvisuvssqmpvqqmropvuqlrslrrvsvtpvrYlqqvqoqmnoutrlrsospvowqwurrmpsWqqprvqwsqpqpr}otqs^njtpjrrsopsmq_qvorolujwnmwswwotqlrnprtxvxVsnouwvtustputqlrmpvrnqmqskossspoosssonrproqsojssywttprurnxrrrnxotrrxrrtrsprsqrrtntxtlpkgxpntrtmsrrsq{j_stojqspvvnrpomrqumyxwurniqypsvqqxpssqurxpvtmqoqrnwptpsvjrotuomo]toopnqpssonpqrstooo~trrsskuuw}tumuropsqpxvtslqysouxnuqmxuwpoqdrlmw{notnomup~nstusIazsq{oszvgxumsmrdswo{swtfcuqomlwt|kqxotonqnYrkwrjkosrowqsmwsr|w~qqtw{vpzqzsrflwpxtywquvoprmmkwypspqqlpfrmoixrcpkteiqmjhountvspwppmynsovqumnppunksqmomtjwnqrjysypwpyqtp{onopsspqrrxyxruzoupssumqopsoojmtnwxxrwsmzzrpxztupstnvnnmqpvjnpolxktnopmotqspdlspssrllrkppxrrvxpwttmprmxosxmqkrsqmiwvrnslqwumoupmtnpztwnuqvzpnynrqqpltnxnnoupzpvqpqvtuprqyqqvrtntptqvrppotyoprvmvrnoutoqtmrunsuntproqtlrrrqpvrq{pqpoots{wsjs{qroorsqsqrswtlkvnnt|mpsutsrtrsrhqtqrpsmqsnntttruwvlrqnotpqsnqkyolrnouqsnsmuqxnquqssurwrvuoptqrrqlrvrppuooqosqtoqypolvjpulouqruocrplmknjrxnloZ}notlZyztztoohwtsmk~tspxnpsqprvrtumqyrlqrpqrpqogqzooqpontppqtqrrpwsokpq|ulppkqlaupsqtnuqwotlsqrvqmtqtsqoqtlssldstgtwnssymsqnnomntqq~rsljporoootoxvr~npsmupvtuqo{qrsruyposolsqqonvqtonpu|qmppmxnrrrujsponorsponjw|olsslmpnwxvoolrqtuuyprsolqvsslzrrtrnrtrnpmqtonqwrkpsqspnrptpjxpvtrpqypstrrtsorsqsrruwrwp{wwkqcvssrivt|iopnnmmynj~jrtqmvlqpurevjlvruipr~rtxrsppwmrrqtkfruooniflotymjkvtukzqmzjrtvofkw{mlwsmuluvrmnwfprssvtnutssrovvnkpsoisrnvosuqrlntvworovpsvpwpjupquoxttugotsoxplxrtrtppvmvuqsqpvhrrsqwortmprrriustnttoopsowrvssosvqpsspvwuwk{vqsqstxtqrurtuttsrwlootwsstskvwxpbtvrtrhurrrqhuprkpjrnvmmso]tstsosqrroupqnnqutmvzmuurokouulsgvroppqrrqrvrquqqjvs}x|qvnnkrslqnlnptovrnprqoopwnptpztysqukurnprxiseqoqopnqnuprjupvwtqqntsopsqrtsmotrnnossupnutokfvhyxoqglkremjorlnZotrvp\ur{soatrw}pqsrhss[pxqpnrptlrqstljylportqsskqsqqnsrosnpruqpqpsxnnvtoptrqttxrtqvpvpxrrsqvrmyorosqsmnuoullmrroqqopsorvnrrqzrorusinsrttnrroqrpvoqrtuorrnuus~txvonoupzrrvnttpxpoklvtpwslqtrqosznlsxslqqopuqqtrmumtlszwrqqopvousorrppssoujstusrqyrpqtsnqmnsrvmuurqssotvwwspssnr|owuqokmstosturuqrrtltpupopoqtqrulrrrss{pquorqssoqpqrrupspqstpstpunpuqtqnrrqqpmpssrsquurqowpotqwtwspnnhnmruqxpvspltuvrrtjvpopurvlwqsnwpsw{qpluqkonvnxmotqtnsoiststmqnjqtrrptptuto}qwup{zunfqqrvmvvttsu}wsoowwpspsprntsqrtoqprtp{nqrppqsqvnppourpmousuuxpunqqpttrqwsrtpwrqtqwrsqrupuoq|ropqqqqppmnrstrqoqmrooqourpovxturqsuoo|qtqvrppspqoqprrqqrosrrnvsopqqptntrtqqoqtqxmqqxtqtsxnrtqtsnqtprqporvntsqsuqm}trpqqoqpqsrqtsp{pqtptumttytpnxvrqospnwq{tpvmmbrrtrrwrpsopfsosspqnirmlppttustlrqqotrotrrtqrrtrrpsoutqntpqsposqtsprqrnqsuvosottoqqqrquqrpsrpwnttsmvtxpqrrrsuvsypypq|vroqqooprptrqmwpvswsrpntqppnvkkqopsssxrlpswspqntvrnrvnqojqtqp{qnvrooxdruupprtnsnwpplnqqstvntvrssttstsvruroxomplotptvqquurqorjrpxstrotrvvssopv~vrppnqsrkqtrttnvpronuprsqtmotmtrpnvrvrylnnmpstptrrpsqsn~pvqppoportupvotoroplntssqrsloqrrsrrqswrqqrmvrvtytstrstvtrrorspnxsoqnxnslopsx{puzwvuwqqxhkqwolqozqmprtqsnnqtpttsktppqpmosrumsmpnstqpmwqpsvontsntrvqjqtusssuqtnsqsortpmnplrxpqwlwyoy~yomsrrtqokynonn{pymqxsipwulukut~gezutopptqqsmrvoxtottlvstsh{yrfzotrwmiyvjvx}vjqomhws~ryvugttivqvxeutmtptlqpusostrrqqryoqustsuqsstrrtroppsqsnssqnvxttpnqputptvsswmruvqrqpxsppmsopyqponqrrqqwuustrrzinprqtrzkouuqthrsnrosctrttvpmtse{trsswsunqtsqrqntnlpktptpnrpsprrop`ttsrtvtsqmp{syuorperlqptpvvueropsursiqvoqqunsspvtqsqsrpltjssppqvuotqnroqrnotrwqvstpruosqntnuporquprqurquspqskuuvtxmtkknqprqpkuoomumgpnxntu}orpvorrxrxuqrgnstpsvutssrsrqsvrtosuvsssnrpouqrnqtnrqtwqqqmrroqpvqppsrrrpsroopuqrppqrtsqwouspqqnspnsvorovqyqupqotoytnrqprxysrvptqrtrnntvwrzpvtgjrurxvstpmrvqwpqgtsttqrqsnrvuqjspuhvtqutp|sqxnyongsttowurnzungwumrutppqwlwospuqrrsssrpunkl{pprrvpuppppwopjqwtrornkputtnqqoqomtqqptsryprquotrvorqyqrqsqmptsrttpvnuoqusustttv{trwkutssrnqxopsstputqtqtrpqlqqttsqosnsursvtrnnupnkzsspprpwnkpluhovr{p}ionsmmtwoenqn}nrsp{spmwovsnnvrzvpprsnqrtssqtnnstqosspmvqoswrpsxpsuqrpusqtxvsqwpssqqpvppqosnsyrqqpmsotqpqtpposrotoppqrqpsuqqxrtuopqqtsrptnrtvmuntosotsrsstqqrtryoqmnjtsqluoqroqqrspqvqrsoprpuovumqprrnrsqosqusqssqvpropsvtostpwrrsntqrqpprnxsmsoqqprqtsroplwqssoqprptqsqsrrrrupspqtsprspqvptqtrumwmptm}upsptnnsjwrnmwvupuktwpuuposquqpqlopronzrrrvltqovqqvsvrovqlplnzqsrsmkroorqornr}qorplsxtskqqvxoromopngoqqqtoutqprpqrnsrnmurqrmtsrpp{niqsjsuoqsvrotrjsp{tqtvrsoqosqrmnsosvnwprrowqvpusurrrpqttprtqlrsqmnvrwqomtwvqnnrsoqotrylqpoojrqpllwrtomqrrrqpttsrnmoosrrrsnrprrtqrrjrmtnnnntwnrtupqqqrivstpxtooutnoolprrouqruposqrsqrrsqrqzwmpnwsrsurupmkswpqups~mss{oukrq{kqltmnqsnnitrttwqxvtttrrrumrttsqkrsq}onvzjqpprrrfl{pmtn|xrmlfuiwvunrrssk}utuowmwrttquruswqvstsoquwnovpnumuzpttrvztpustpsxotojsoultnqnuwvvtpsnrqpppsoqoovtoqpttoputsssrsossrrlvsrrrtnsrqpwqmortqorqtqqtppskvlqspntstprsqrvsntltrupqqptormusvolrpsqisxqprqustlvnsmyvnptjssoqlrpvsrtsqqnrssnvvssqusortsormtssprvsqqrurpsolntsvrvtvrpqopsptqoorrsqrpospqourwptsqwqpsmpmlupruqlqkwlulorqurtpkktttppumqkptpxqsqooruvpqqsnnsoropiuopsutnrrpioqrtpphrqstqpsruspmxtwrtuuprupktkswsrqnsnorqstsmrpqrmqsqssutxtrqsrsssrrsmttrwpmurns|qrrrvsqqurprprrsrqmojppprptpnpqqqqmrqmppxtnrrpqqsprrsrttypospplrpssnruttqpxqmopspzrrxnprsqstsqqrprvrquqtjktolyrotsswsssluuysonqsppqspprtuvsrsrvqtpswqsvqspnrrqrustyrrspmqsrurrpsqurrosuqmtwpsvotsvqvuqxtrsrssnkqprrvuvqrqqmrrqsosqqsqpumqqsuqwpsvoqqtsorqrtqsquostrqtsntorrrtqpsrqqrpotrsrqtrspnursposutooonjriqqmrpryrjrp|tqttunpprpvpqpqqpwpuvqrpupqoqsnropporopumtru{roormrumqswkqymltozusxuvmjtltuqsuzspqvwurpmvtonrpntovprosrqrrsttpsuqsruorqqprwroqotsvtvosorqqtutpqtnortqqqqvprmssttnrxspqrroqnqqoqnqqrppoqnrrmpsvstwvvnotqrpwrrsutrrrrtqprssssupspqsrvsrojst|qsrqpsvstzjtunprqsswsqptussqrrqrsrtrrsrturrstpprsqrpusrrrrrtpuvqsprrpprptpttrsspoqqsruurpsqtqtrstrorrnuqprtqtpssqqrtpssrqtqsqvrotqosrrtspqqsottqoqnsssprrytqtqtqrrtuoqootqrqsrrqsnqtqrrsstoqttsnrroqrunswjwoom{topopppqsjrortotrtsvqoqquroqrrnptrptsnoprssrqorurrprostqsqttsrqrqoqqyptrvurspwrurrptnorsomqrrrropsvoswsspsuosspsrtpsqrtrpqkrppuuqrrrtstutmprwvstrnrxqmqsnutsvrqpqyrtstqsotpttrqvququmpmoprrrutoupoqssrtrrospqqruptprotorpprsrrqrspprsrutrs{sutnipwtuoquptuqqsqlqtprtrnsovqpqoqpstpouttrtprqqmstrosqtkmrtrprrswqprsqqqstqqrpqurqlsnrtsypoqnvsspsrqtqtsvppposrrssvpnuqnottrqosspvrotkwvutysorqrvutnowqqjrtplpq|qouuontjytukgusoqorrqqrmptsstsqsmsussqxtqfsprqspv~siqwtsfppmsvquqvptetslysv|kvrktqtpuospmvrurqtsurtqstutvqroqtoqwnsunrtqprpyppnprqrstwsurmpqrstprru|rqqrsrswsrqkrqutrprtpwpqfxqrktnunytrtrpqtqpssptgnqsqvottpquqstrsrslpptrrkopbnoyspulrppsqvusrxutulqqrzpomoqrsnpqnsprqwpprqpurprqqntjmtrqosqsuutqturqqqpsqrttrwvopsmpstqsmutruqstuposopqququrpqqnorosrrqssqoppsrqrqumpqrqpvqprutpsslqqypqqlqqqroptxtrusrymutqttqurnoqprrtsqprsvsrtnrpqstsqstqttnvsrrpsurrusrqrtrttrqqprqorsprrqrrqnorrvpsosroqoqsqustorsprumuuurooqysrrqttrrsropmvurprrutprtqstspovqsrssnpstqrqqttovtuprqrrjqvqrsppqkpqrxqwsoqtspmuqmrrrwrurrrvpquosqttqvtprqqtuosntoptkvoqsrruwuolpnrwrokpsuwsrtotqtktspnpprsqusqquqtqqssstqpvnpsqttqrukvourtsqvuqtpupuqtspspooupppqsqvrrsstrpustustrssqrrssttutpsprqpusmsppsmoqsrutrurtrqmrsrsqqrssoprnppspwsppsrrsrrstsuqorwqouursqsuqrrtssripwttrwspv|vusrqprspnrvssrrrtqtrqtotorrruqrrrpootpnssprnvsprtqqpsulrustwrtukjtrutqqspqssqwpsostvrtstspqqtqxrqrrprsporstrqppsuqpusqrvsspqrprrorrqqtptqrrrtqsrqquqqsrtttsrsrrrqsttqrrosvorrntoppnuvuporlntotoqoqoqsmtruqrpsxpssruuqssrqsrsoqtupororpqnqqnqqmrl|sonrvuurutrqyqwnosptqpmqssprlwusvswnttlpvsursuqnpopssustlmsjorqqtpvtnslqrtsi{qvuoupmvoqjqstqsottqrprstnqqpmsspumssspnxqlquntstsrpvmsrknqzuumnsspsrtqvoosnrtlspruqsxsqtrursqopqqqrtupprtnrrqttqnroxvpsttsrptmnmspqojorprotonroprsqquossrrqrpopqrpqtqrrrppskrntmoprvrpsqvotrtpvrrupvrpsqnnrptsrqqrosoposrpsoqqrtprssqrsvssnsqtrutrrpouvxpwnsyolrrsnmqnqqrtpwtsuttytkvurptstqsrqtvupkspu|mot|krqnsrphpzpnuq{uq}lmpitksuwms|rptlzsrvqsntvsorovutssprrrpswusqqnrursrsququqmptquqpuurqvrstltqsrrlsrrqomuqvoprrspqqqqrrutsprrrrttsrpvsqnsosqrtpsssproooouspqvmrornuqntrstpprortstqprrqonnttssrqrjrpqqpotvzorstqrsrquqrpsuqssssmtryqporptomtssprprtsunsrusptsqrqpqpprtpprztrqrtrsrsmurrqotpuqprqqsnsssqpstsrrqrpqqqqrrprrrtqurmpmorqxmsrqvrqppppzqqnuotsqvptptrttqpoqrppvsvrrqqlmtprqrprrlquqrqurlnqrtprmxstqsvqrsqortqppsqsquqsrtqsvrrqpsrpuuppqrqqssootqtvvswtvossrvuuurowtqrsrsqn{{rrqpvqrrqsmsstrsspmpirqqrrtposrrqosssrurxtrvstttsqqssosunpmsoolpqptporstroqrqqqsqrsrprqqstssrrssnqxposmtykstkzrwruooquqysrmqoumstpqunqptosrtnssoqrlnsqtqstrqqrssqtxqortmwsrpswqyoqqrrqsutqrluwqrsssupqtpqnrspmiqpoqnrspssrrprurqyqppsqorvpuoslptsoqmlzrrqtqtsyrwuqtusoqmsqtrosorrqvolpsprrswyrwrtwqmrkopznpuqqtdsrotqnoomhourvlqmprskouoqssqnosrymoslroplrsooouptqrpskornizrwuqquoo`soompyhmeononrp}nnphvk`moqxpmztqrkslnsqpouqqsqrqmuqpnspsnrrsxwoqwsorounuqsqpqnmsuslnsrtonptrpvrmsssqnrtsnsmuntppt}prqorrrqrvxquvowrsxqks|sonqssrorqswtusqotvturupqpqrpqmppbvryrsqrrqwstxkruortnnkuttrssosrrsrrursuqqsrorpprvsttqslswprqortunrqtqrpoprntnrsqssosqssnttotrtqpqproxntqtvxltqrrtmrqvuqprssttptqupprsorqwurppqrnntptqqpruqsvuqrrqrrrqssnrtnqoqpqtouoprsrsrorwnq}knmqmouqshontjnnils~rwumspluvmtptoipupompqworqmronpovuugsspspotwnuqrmxrxwnvwrsvktkqrortosnpetqqojqs{tuquxnpopprpnmsnuqprttrrourrqpprpursrqnmyrqpmrtrpvosrqxqp{pssqtszsnwsqussrptrquqtrossqorqpvsrsusqsppvtsovtqpmrnrwqpjtssqqpqortpsqtruoslrrsmsptnrrrotsqs~vuqp`mhpnropmrqosrsrrtvvr{ryfrtsqqssjoopqhrwsorqwkoqpqrttgrrpouxqtpupqqnssrnvsturmitvyrumst{kttpuqrsupqsjtvjrqtnqsnrqrntqvsqpovsqpxqonpt{nuppqovwqquaqrsvt|qtssqlisojprsionunriomqnwortrpotrrlwslqhsrwmwrrsrqsp~qdlpuwhqtoqototronlpplsqrslomosunwntqmqqunwsvrpsqssrurtvrpyyprtqtruqskrsqpstsppxrpoqpsqrprwuvwupsrrqrrnrwXupyonqspptssYur]tmjth|sqrwqxpusxnqvotplsumqlnvpmqssvcxuqtsgmrPqq~ooqznrpqtxzopzjrkrmmpjntlpspqoowunpjqeinnmvtlrrstdvypsqqpptvonupnjrqxqyuqtonqrmrsrrvtsshosrrmsqouprpqnpqornqmtmqtrqtrpnwrpqnrnlprzrtmnronqssupsqsjujqsssqolrmsfvpqlmfzrooqosnuoprrrqrsospvqrprrrvqssqsuqnrxrvswvrupppurtrntrqqursqtqorqtrqqqsurutpurrssrntsoqqtpyqoqstturrputpovnsnqqpnqrtqpmpmtpnnsnwlqrwptutwsoupvppqupqrqrrvsvrrssrhqrluqtnppvqssuqoonvsorsrorvpxsqqrrsqqrqpprqorqsostqvptlqxqtmwosrorpkxvowpropr}rvuvprtsuupjnuropppppmstmuttoqqurrmnsmrwrqppprqprsrtpvwlqtnrtusqlptpotqwvsuqrqvosrspvstsvpppprosqntpptsqwm|pqjtknstpoptxsttnnoqzuxssvvpotssiwr{vpqrsstqqitrqoprrvuptoptqolqtzr~ptpvs}mkotrvuovlsxqsqsmtpksrrqrqpqqsnsrlqjoqqpoorqqmrptlqrtnorrpuqrvyvtqqtuopsh}ztqrspwoqqqqsoypqqwxrutrrosoqtptpurqqqnrstrpupppurssqosqsqotrqqnmqpvpqrtoqpsrvqrpqspqtsntuqtspprqssporsvqznummnrpqqtnsrmsuqlstzptsonropqttptpptspqsprqsmstrsrrrssnnqountoqnrolrwpmttrupttsqxqnxqtumsvpvwstrrrouqmpsqqrporpsspsutnormksnsqnujpnqplmn^vznyssdspqtyorxqwvopksqlnoqqkrqroruupwqrpspqnnpnptr}ltpqrttorpmpnr}onhosyrqslpqqrxutqqupjmqqmpnrspusovrrsrqrrqprtoqunopptpqrrrnsqotmqolowvpspnskssqrnsotrortqpssstwrulorptssrrsrptoqorsrrpvlqhqqprrpqrrvrnnosrqsqrunpsqprnpoouosppuvqqptvoprnsqstwsopnjsqpxtttmqsrptnuqo~xzqrs|rtsssoqrypooomovwntrorqsqqlpsqkptqlr|osenmtkssw~wlqxuplpofvzplqtnojuqpkox~oop{srlqtrixhvqsmrptusnwtoqppwtsrnsssomqmzsplouzhqqsrlromtonv~\qqrqjoqrntrpqqvomqwopomlsorvoomsbwroropospqssqssrrztsqrxruxrrsnqsrttsqrsymqststnosplqrppttsljrmlvuntlvtsvpvssxyqqpuuqsvtnqrr|pottwsuqrssqsptrttnrqrnoqrotptpnqsqqpspqwmsprtrs{puuonsqrqprqrspssqssroqrrstqurqpopospmossqnqbrmkwpotfo{pvqpippxspuxpnutqpnp}qporvosmqoqqrpqtpsqqqmkqwrququtoqsoostluwryvqpur{wstmmvsrwrnsrqmotpoosrorvusqmtnrrupoqotwrs`rxwsmusprnopmqour~ttwifrrquqwuqstnrlnrqqluqmsrsotsspsptqoroswpqtrqvqtvrssrspqnqopuvsqmrpprlrrvqrqtuqnqrrqrsruqqqpqrqmupontprlorvqosqvsxiuuqsrmuurmjwtvppp}snonqussnxwpmrqvlwpqruwqquspxtrrsqlqtymkrstvtvnvrrquspnpqxt}rssmskrsnjnv|wnnoqspnuuvqsnsspxspwtlquwkqun|lqetrrnlnrwqwqsssvouvotvrprpsqnqlonqrryklpssqun|}qttqqsppywopmpnowpsxpqnlyspompueotoqqsfoxwqfukpqssqxleoqtrwpprwtwnpqrnnqqqncwrxkyqus}m`l\ltq{jgpmnpqruntskylnqqgq|uqrnzmotmtsotqnrmsvqpnrrslyqpuqnvyopttrlhttpmnooqxsrnxvqrorvrtvlupqptoprrmruppqqrqytzqumsojpovuuqmqrtwnj}rrvoqouqoopphoppoqwrplnqrrpoyplmntshtpssspmsrisqqtqpnjlpuqqulropqsp|sqsttqrprpootsoupstrppqrosnopqrsrvoonmpwnjutroppzyjltskvopohqoqwmrtvxplsssnynxsyxpmsspxpqsptopsrnpotsusrqunqsqswomotsruqroqnqoqptuorvypnqopsnuowqqsryhsmup_np{llrstnsqtrntsnqtwnvuswttwmnwrqbvsnpsuxqnpp{tsovuvptostwwyu~stqcwrzt}pzoklxtponygoosvjpnrmsu|ntmnsXamnntnoqyqyutnrwmtos{vrmqtotqssqjxuqqimvtpopmwrsuwrvrwmtxutqnuuwvtrpstpuirqwpnppquppnxqpvpnqpsvportqqqipmmvZnprypsrqsuqvpqlsqnpvorsrmgr~uqtuq|ssqjttJot~qrsoruppsm{wsr}ovu}up|swlowoqwur`uqoqitonoosvqnrswonwrptuwrqowtpsrpxpisrquomopnnslu\rjrqv{mmponovnqtskrhtqqsosp|srmpptssopstwnmsumqsq{krotqrsgqo|bsynyizsqostnupropuqqnrpqtphpxvoukzurponp{qlzzphvt|q~prruoqi}mlckm{|}luothss~kokgqtcsrtsjqkuh{qwrptptqoxurooqrpqostryrtpdvqtqrqvurunqwyrrtsppvmpsqtnssnwtwsjsqvotpqqsqnsqkpuvsrrnrrYtprvlpdprrtxtgvypwpuxnooptinppmpqntvqrtsspsp~pttmbpppvopqoproopfmqlqhsslovv|qvrqpqrrurms~sqokuspruutvtrqrrlpli{powxnkqlxrnotr{oqiquomvqprwmmpslrkrtpqpqvrrqtoqppsqsmwspmrup~eqtopskwrlplnoujmvysyhj|msxpUrwryqrqc}vopfqpsotpomopnrqororstpopprtquqvnrqsoiptqxpqtusnoqvwqrovrsoqtopvoiqnqsrmqwvuqrtqrsonwptnpshr|nsvqwpvsqwqtztqqopjtpmrqhpkrosqllyywoqrxoqtsgtqmnuqptvtwtkpujvupyloorzwuiqsr~tppswexrmnnctmyquktmyhqpqsmrnro{qslquqprrvkqouznrrpsytrtprskorwxtsqplwmtsriltrtr|rjwwtrrpkromvpqstqvmwtqlsqoqqqqoqqtrnroouptrlpumpupxpusqqvtpxtsuqqqwnqopqoqtrkqtvsnqsqnpsnprztq|qwlslnmoljnwylvwmmltylxropsqsssknvl_nprpssuopitrumsppsrnpspyvprsolrr}pnttw{oqqwutxtqukwosowpstrnskqxnqrrqpnqtpkovntsqnprtonrlkr}qkrsnumrpsxvvrnsosohj|qqnrpuqssrvtrqqrpxytnnrqonkssjtppsnrqr{pptuqpnrslooqssjvsowm|rupqq}spqtqnpoitpqopruqsolutztqwrsrtposopxqyoxopnsmrrpqrqnv}omruvmutpuooprrsosolproqplqprjutstssqpuostotjkoymmmluvggrpunspu_ouorwwqsixsntupnryotmopp~uovp{uppinpqpnnqpkqtprzoxwpqsomoycoyrzrshpnfrsmonpynsqlrpspopqiwppmrqrtuosttqotopmmrpyklpprwmlrtotmponhpvt~qsmnmovptqonvzqlqrqnkruqurqvqqqrqrtnpsqmpsolmpqpotttooqqrmsokotnsqoqqkrprynnqqrlrrrqsvtuvowqqrptxwjsqoqssnqxxqsnurt}qlmxrskuqnqyjsrmnrssq|nkwtnqqnotqswvrlssrxtmnptnoykqrpp`sosktoblq|mi3yvusua|tqr|ryjtqotl~upqnqqq{lr{qooustplnrbrthgpru]qirmokc~~uqtvlsljcqqv{oqd~mpwie{ooqw{rojnpowjqtonsjtsupr}qqnqpsnrltulldnohlqqt|spsvlqplmsmxV`nqqnemrtqsuuzronipseonitsnpwnoorxaqrovqsspwsqrqptuqlspitosvpsuoqxrrrqxjswprqvsqoqpkgsquw|snlpwlpimzqsnqrttota{nsooqpsvxqor^prtrqvrprtupqqqpromqotoovsosstoqutmvruqqtqskqsotwftrqvqprrqrpqs|rspsqtnqrmrqwslxrmnhtcptuprsv`rhltpj^lntvpthtpvfrswwnmsunrqpUhqrupurjotsspppwssovptrquwnqqqxprtrlrtpmvqyypsqwulssq~pqoppjnppxruorkqqlrprswolrrrrqsrqqyvqepwusonrqrzornovem~rtw}ipqotrvsosqmsvrrqoprrtpoqssnoxpsqtkprrompxqppupxsrqqvxvwpyxjuntqqlorqspyrgwnorrrkqqjqorrruwropllqonwvwnp|usvsxu^swrqpcjpl_|owrmnqjrnnut^mzkpsirmpiqsvo~tn|mlvupl~tfhtrnujstrrosmk}immqtubmfqkpgonxwpsnssqjlqd}~kzqqoqtrs}pmmxq|optprir}wpuisqms|oonqnqswssqbvqkorrknscrqtny{x{rmypNqtzkulnvpn~k|xxuriknciriow~j}m~{pqqgvrmvpwvtqx~gftztrmr[ms_Wm{lP[ohq~liWfu}tzh|phZ{yslupgqzwnqqoekrrguvlspxorqplsivpoxjqpmr}nhoqpscpsxdmestqgssoqvvp}suuorqzwwbnqktsmrukoylsl{pluotiongonorsmnlmupzsqtptrvqvqppelkoqopdtygmjqu~viu~rgurVlnuqsmhvnKoryustpqlippqoqmbrlznqupwurptttoltusrvqto^rrssrksqrqmtutvoqssrpnoutuooxoonjup{lrm|smqsm{thuvoquylwqpvtpsuyxpwroqnqoorppqwuwqqtnvpqp{ovjoxpprpmohloossxrspnnqosrn|qqph|ct^sw4qm{rxys{ogu{ssjilnt}rxzm]|wp|^vmvypnl{ZjonqwevwpwudporrvsvnpxdcpqtwpuurnuztrjhvutjsziltyqlrqpovqmwsupooovMtqzsbsrqruorvxrrrtortwsphgrlks~tsxlottpstsuuzktswvspyqzwrsrqzqthqrxsnqrrurykouprhpspjqomunrspronkumopr~oquwqvtpurnrprtntrvrythtmvti}sssOnrpsrqvrr{kssxxphvhopnemssvupwno|yrh{sjuwrQfljsqyrxwoUtnrytnt^s{quhvikypjqjjvslpynruucpkvpntr`~vrnqptsqtpkeqfqryqngr{ixll{y|kq|ryostxkh\w}ndewvctknj\iopeuv^`Zqsrgc|c}ypgylwuqdzvhdyts}_~u~psrxjuXkZy`irjlksp~gpsemjqr_Uqsskq{_rdtl{pxqghqhkroqrmmspjppYs|vprozpssrn~usyvpn}lrqrnivrlnxskZqwzppoqmrfqsZorvtspdso.xns~rtq_uqvtsaxzrnryqwhpssxvosslropoxmrlcqopxr{mHpqnqpmsrjhjpr^sxtsu|torvn}qnvqtwtlrzuuv|vrktrsvprsu]uvroqpgwrrhkrtrdzqlrqswxpjkwvmopwkwnkntoqoyropvqnqrsvovqrliusmqpp{kpt|{hem{ylttucqrtx{g|qlzpwpvpxpvrlsgskkvznotbjkntmn{qtlsyznloppprqp{srq{pertosnppvomqqpwrtquotmtvsqqsjvmqtvhp|{vppxuotokypwowqjwsmxprxrwvsyssm^rqqnnlturmvnppqgpqz~xssuhqxgtTwqkovrurut|oput{oomytourmen{nrnnrqszopupupuvx{vslomqjmqwwtotqw~ptyntsmpsyetf{ucvjpktsxxt|kklqqosqeqommn_gvnpp|tzssquvtoswhqhwewqnkvnormompyeqtjurlqpploeptslnkcxpqsposzvryhkpomnyvf|gatprujsquvuspjs~qtrr~urmqprsgmr~urkpthujsyphsztsruc|ownstorylrxspmunsssfi]sikynmmntaerr|xzuyonpqumtwtgsmonynlwtmbjqrsk|qlpkltdzwwqot~qqswpknrrkunqotqpvzoxkvqfppvlpitpmtsrrdvloqqmcr`gpnrxwqnqqrklqsswmpjrxmrqlrxroprqxt_mzqrvukrpvvrtorssxq|xrrtvq{quttwtwwwvsvjnumpnrtoqk{nwpmoiphralrs}pqx|qttrrqqrhguurutdovnufyryzp{tqvvrrqwyr|tfrpupncnywmnhl|ohmpkysvhsglyw|mghnmoturwrtk~wrriipqqqtx}lruvrmorpylxsqjjnws}foluouhcio`qritwhvq}oqtvrrirhz{~mqsupsroorrvkqjttmt{qlnroowm}mkqtokstpmnqsg|uptumqqqopkstpz}qqrtuttlnwmoosrnpnrto|}unnprp{yrnlrhusorjqpquroyqkvsriuotpxnpurosxyknjqmfvqum|snktwu~wknzwtjrsqjnpsninpwsqoo~{wvmsqwt|o}qteu{kvtquxunvzsssUvprum}wzfktwmornwcmjrwqhssotto`roqrnofhurm}rwprvnuims_stxjrsVrcmwkhQp~}xgoxqrfu]xuwwqemshb]}qoq[y|Xhhuqqpyqoqugvsy]hkxlivlvtwtoslpqqtrjwyxkqsqpqvrnqzvwwumnpw^opqnerxnqztrqtqtlonuqlplZtsuvuttslnpqqpstuwmurnustrwquslmuvsrgqxuvnqqmurpeqwrpvopzooiZjoqspsppryvlpphkqylukprztmop{sq~wrkmqjkyrpmmursp{sqwrvs}nmysvrqohqkkqm~opnjtorqustnqm}qrntovpqugrpxxdpqruepqzqxpotk}lpuhkvurwnmng|smsowlptjv~obm~xqpqgxufprnkzkwusn}lxvjmloi~ormwgmxplldp{itonmopulrojo_gvhsxotnwotplnr{w_{orosvkpqaitvqerqjnropsxqnl{hlmtwkounpquqourlnvtrrrpzimnnufulltqtkqnqsvtkgl{posnrsqsmpryu_n~tpxziurnryvqpur}t~usspmwsyssvostvssoomnsmruusksuoqxyjkxzqnsmgmqwjsryurozrlurnzutopsopsnswmwspsusrstpyrroqqxuxlmtsrrtnvmztqtylwntrlsruriqjqsoopkywtoookpxkvwprrruqxnqjlyqqqtlkmuzqnourwirwonpnxquu}lmnqlrsquppuuvoqpqvoojqstnqxttrqttloommosqqgmlolzvtsrpvpazruowuhssqtqrzqurswtgqqrrztx{suwpmroqxqpiudnpyqpnl^qlsqohg{}s{ovpvguhqpqznzf}suwkd|mqog}sziwnpuipppqsrqrqpwwrppxpqrnpvolnrutolo|rovsqrpmpqsrzsrssuqrorrpxrlspsntnossooqqqqrsoiqvtrrmsouriqqorlo~tw|unprvpwrspsqrs{qqpqpotpqnnsqxluuppmqphqtrspomrqmurq|tpuryoqsprrjsqqotqjtvstprqqsoovurrpqsurnpqprqsrqsrqystpvqopsvlorwqnkuqpniwprnqpvqqqnvqphwxpmqiyqnlotqmtwroqsrqoqrpruqqrrovppltwonyp{rmtqnjurqppoqsrvotqppnoopuqwpvprqp{lspqqcortvxrvqvyprj|rp|xqhupqtrsnt|snlsrptrmospooponessorpwstpqssrotitksmqrkpy^pntppn_rhw1{vtcj\~uql~psfvuokqxpprlnslpwyqprrnxlmpmqpmuumqsrqoi{hsowvvtqwpuzsprnutrmrmsrunstsutusutqsxosqrrqoqntsnnutzpttponrqslvrwxtpulosrrouspnrtnwmspsmojqpppuyquprqrtpsrtkspOrs~qzr~ptqrrstytnrouoosqmtrmujovwstvusxorlnnqhnxqnumnnpqqstptl{tpkunno{qqpoomptvlrnnfrwpumonrrlpsnqqrquiwrturssjssoorutrpjumnxmplsttoqzpzqnrupolnozfmqtqvzmrnhiowiupwztbnqrqjrszxxnfuunupqstpnsissvdmorwoumapbtv^ttg_xtqvqrwvprm|mmjprppymnlxqqjuunsrnvtqnwxrtstssswqspeosrptqwqqpwpywsstqsptsqptsmutqnurlkrrtpuoppsrnnrlooxusrpqp[upstxuisuupvjutnqntRwosrtvptrrpvsssvrrsorrqr~qsqlcuuqpqsoposoqmayruqwwtynolytxtrpqWqprrupuuqqqpurqustwropqqsqutkpukntrlmpdssqmhrkvuxuisngjurpturuuprqxmenpqqt{qqtsrqn{tpquiyurrtmrenrooptirunri{o`qmqtpurookpu}otsu{Jdrpqyjzuptrrgxpumrrsrppppptqovorntrkpqtuopousqoplvqtossqtquqpnpnqlorroquttrsqrttpnmrtnrtzpsqvistoprkvrwno[tmytpwrtqnoztqnm{qdpnqqqmxrs`tqsuttrnouoopql}luplmoqvcfmzqnqctzzvordvtqppuqtjjwjwoprtrotqsorr}ysslspupmnrlntprltunxq~npxrnrmssurpihvsslotsssxssqruqtstrvsroptqnvmtoporpoovtp{unrtoqpqrsqvsowtnrrtivspvrroquwponuqpqprpmtnjtrurpoquv~lunoqiqlnsuppxo}tvgkqrpmnwsmthosqopusquupqvnpprjvtsvupgxvqutrkrrqxltsunspq}mqrttqpzpmuvsrtznvnsqwqqttutyntmrpqtpwmrqmommvvsqpkrqtrsvndl~qqnnnpqrjnvnsZmqq}nnpovrovmurtswqrppnptmsqqpouppvntpokrppfttpmqqqtpzsrtrr{qtnvuituoqpjposrqtrt~rosrrusrwpusscvvoqtrtmsnprsnlpysnotqsqpnrvnnen}qtqtsvptrutqnsqrrurqqroksswkutnysqqprrqrqn|sovnuukyhsdpxxsumszouoozltkusooxotpsoqnnppdsrox{vpshpqpqnqppkqhlrjpoypssqonxnjrjpo{otejoomplolnsmlqptrpqtwwrvjqrsuuomtspqqrpmsxnkluqntvmnrystuocqlnstssoonrrorppmtysmrspnylwpurruqoqrquoppppqqtosqpssmtuqwlpqqqsujkqnqpnonhror{m{stqlstqqtmtqtpouppoqpkvjntpvussphuiqlmkm~ujntlnwnsjpyrqquprstopmm\knrpvuswlqsttkspsvtwzvrjtjsxqr{n|nlv{lqzmohutsvlronnqn|npmnz_dppomkv}{ryshortlsrtnqsq|pfosqrjrsyu]nhj_moukootps{uoqpor|nqosne~e}ltplzotstqnqpqrroqrqooutvmqyus{w{dtonRsrqnppwcrplkorqtoqngnlpupoopwspzvttrtqqtsqqliutlxstqstmvtqrvqppvqugqtvsstpspmpjrtogqpuqnrqmxttsornoqnovlromvslrlpyoprmsvtqpgvrtoqqvtwpqpqbrrqrjroztrtrqoqorqorpsopqwqtsospxqqyqoxrlnorrqqskirpqwrttrtrrtryrtprssrspmqqrsjwowwxnvstmpnemgn|qslzkixilwm|my_sprlrxmpkozovropvsyxxstokupouspspotqjunqskrnoprnopvomrp~qvqwjnssposwpslptrnpwqruuqsprrsqplqqnqkskntprtsmmskqrqlh~qqsttevngeqqtsqrrtsqpp^lqqrqylwkprqroqpmsrnslrqjxouqntporsnoopssgstqzq|rpqpswnrussmp}mrqqrpyqrxokursxquqqqrstnpvsrkmvnlyulqtvtqtokvr|qnoo{rppvortrpvtspnrqrpqupqvqsrprrqquqrxqptrnltsrsusrorrqpurlrrzmsspstsrurqvqrpoqqpipquowqwqspqrrrvqqrquqooulnotxo|srtqqmstqqrswrsuonsrsotsoupqussnqqprnrpptsrqvtspsquyqnlwwoqpronpjqvnrvsxodrm{pqsxrsppqq{rttqjsvmqsrllwmoosroqrqrnpnnqppwvp}omgqqtkrqwow{rirnxonyv~nntrlxnvrqwkq}kpok|uvpntklimrrrossptrtvoqpxptpqprpoovwsmvnxoqxwqqqstptswrlrnnuppqrsuqoksstpmqtrpqoopropsmpnsqrportonsotwtsyvs{qksoortrtrtsttposrpusttttpqnuspunqo`vqossqpvvrujqupprrqwstopsstuqqtqqnutrqrupqqnpuurppsqksupqpqrtotssrqsqmsumuptrtrqpprqrosqpqvotqttstqntprypsqorposqqqrsqvtqurqttupqsppssttrptppmtynorptqpprouvrrprptqqsmrsmropqrrrsqoptqrsprzoq|pommloqqplmqgwpmeulsnqrqpqjqrpomvp}pvrqwm|vpqppsospmvxniqrqpsqptmrolpkqskqpqypsrwslppup}mtpyzqpp|prntopurtqonptpqoqusmrrrrsposppoprsnosroqonrqpyvqpqsqsxttnoqssstlrwtpntktuvuosoqqxmtvtprprsqrtpyprqqkmpprpusp{pnrpsqsrtnttopstqspqourqrtoqovuqvqqstsusrt~wvspapzq|ortprqjttqjtvmqvriso~spqorsroovqtozpnqoiotsorpshgqronssrspmsqnppopprtvuruhtolwu}sqiiwsrvnrsslwrysrnrsrttturqupkssrqmrstsoumunyqtwquqtoruusjn|nrhupsdoqtqnswtpsl}tukjopjipurpsnlrssqpsupnizouuojjjsrqsors^l~ltZttimypnosrultqo}rvwppnirownrqnnovrorqtpvssrtsusuqsqturpvnrvqtvsprq|osoqtsrtowtpqoqssrrqxsszsprnsqrtnrrYppwstqsrrwqq[~qq\soxoxqrqqsxoqpsmqYrrsowoqtppqovvsqtuemvsqsgnpRrl~rstlrqoqtw~qoy|rumrmp~mojltrqoon`wupqwqhpnnqmvsqpquflxrrpssuwtnsprsyqmpqnrusps~mkqnotmssgswqosururlrqqqsrpsqqvqqprqtrrssrqsoswpqqrqhqprpqtrqrqyluqj{qpqokvsproourorur}dspqtntuqntppsotmrsqytrqposqossrqutpsxswouptstpunsttptqpwtstqpsvqnqqqlrrsrrtqwqtsqppornvsqnppupqssqwuuussrppp{pqsptrssrovusrmvqtqnpprptporrorpwnqsrqqsotrupuqmtossfvvtrrqutkssorqswnppqmpwrpnqssrtpootqtsnpptqtprtnstpronqrprqmwnrssqu|uoknoqyrpgtwvussuqxtrkvuqroprupuvtntsqnrrsqqnksoounryqvppsntqtqoyuutmsnsqwqqtpnqqorssqqrstotrtussttsqpqsntsrurtstmqoonsrrotnkqqjwrmnqpwpsrrpsqtvrqpsqnosqvnnnttsrqourtqovxvvou}qpuyqvoszsypysvpgnzqrowqossuorptotpmrqtqrpqposotulrkppprpqpqoopspnvohppwropsqqrourluvsqu~lgssutrovnsrsrymrqqwqrttqrorsrqurustorrortxsstpousrpsvppsssmntppoorqrorsurqqntrprrssprpqsssqustnspqqrotsppposqmrpoqnvtutsmmo|runsrumptrstsrqorupssutqrpsqsrurpprttoprnnpnounpvktl|nplruwsrwtsputmoqorrpotqrrtskvpooqsqttlsqssotuuonqojtnorfovkooqvnmquhqgqpst`xrvoovrkwpqlosjmpqrsqrskqvtrwrppsornqqonnplmrpoqtrqqrypvqdsmpskruuosssqxqoqmrojmsttutuuqwpsrrrrsqtpsprpprqnropsspsqq|orormpvlposoronpiroppnwqsrnqvtsprrrvrtoqqproqrprussrpnrjsksrrptrospvlzpsjwupqr{pnttqmqqvuprpqorqlpstupqoqsrssvppqqrypnspwmwtsjpmtrtnsotuohspqqkrnwrupnusrqppsrnusrtrtpqrqpsvropsszrhoyypsnnuuq^qohsnoorknnrmox{nrqrlqirnrqoyjussjmlttsxqosqqlvxr{rpkrtqntqq{uqmlhvirul}vspsqpufvoologymrqktsptppsqqoprssqrursqppssrssqgusrmuntqvwptuqruotppuskpwprntpwqpuqssqvqrntqtropprqjpvuvrqrohsnqqsnt{opsupuuom{prpssqqwssqrr{nnrtkrqmqqsqpqusruptqrnqrupsprsnsptspoyrnoosssrtmtsspmustprsrpsorstrprsuqqrrquqrnvtnssptjvrgqnuoq{kmsnupqplpqqrqkhtsorswpstsvociqprnrvusrstmstrptropnjrsqsqsonloqqrqr}unsowputqkturlptrvwtqttrprvqntssrsutsnormrqqnmqouxwsrvmspqxsruvpvuqqumsol{qptvrnrrqqmswsprrnyolqqrptpppqsrpnsrtoxrzrqwqstsqqruspouoppstnpnrpunquutrnqrrpqrrsrqsrprsurrqoptosvrorrtumqvnxpwpttsqturtqurvsoprovrrqrsstqrrmrruqnqrqtrpsmrspsrqpytqsqmsvtmsyrwoqqsrrosrtpmrwotousrpppprqrrtroqttsoruqqrqqqpssqxqsoqrrstsqtsqprqpsoltquosotsvrvtoqssqqnsutsrursssrpprsosrutstrqurtuuroowrvpuqvjoptspqoxqnkpqpvrqpturnorpqsqppoptuqrrmpoosqqrprstvrzqvlktumyytqtptpyoiuyprlsxjogmxsoxrxopllqqfkqttqpxpspmrkrtppnutqwqsqktsorwsunqqtvtpqtqpppumvqssrptpstskuqttoqrrsqvrosspqqqrsqsqtrsoruworprtqqrtusruuqrqvusmuxrnopqrsqpsqqxttpppqrtrwpqqrppxrrtjqsvqsrqtqtqsrlrsmrupoossrsrrwsrsqrrsrrrqttvrttpsrsttssposqssqpttptqrssrrqqopprtqtrpuqqpostprruppqrsptnsrtrvotqqqrqrprqrqqrrsrnuntpqrrrrsvrpnpqpnptounsurrqswvrrqssprrqrptrmrpqptrquqpqrsqqrtsoqvtnotmprusootsnprkkszrutnsol|oqqpqrnnpuotqqnurqssorqtprqqprppqppputvuwostwvrturtuponsqqnursoqltqqrpusuutvzqutssstqpnqsprnsupqtorssrpprrvssqqom}rqqnprqrsprrqvspxnqsroqwpturtvutsrruqsqstpqsprppqusrtttottortqmtsqqnrsprrsmtqptrprsrwqqrstspqpqrtourrnuprqrrrq}swwtgrlpprqtrtsuoqtwqrtswswtylstttprtrqpoplqwprsswnrpoqqqumqsqrutsysrsnrsorspnupqtsrnssrqsoqsxoqsortpsspsrnqvnrqqppspppqqtotrqppvrrstqqsoszmqsptotvqq}umwq|uut{ppruomhqpsrss~toqwqrnmqrovorsuprutrntsoxiopuivqrpqtqryunqowu|ooqksosqqqqxnsnn|rrvnqqovrpuouqprrvrwvtrossqsrtqovpqwwqrustqtrrmrportsrqsvpnpqosssrrquuzupsqqrpvrsxlqsvqonspqrsrhytsgqmmunsrprvsrqrtvpt|tquqnrtmqtruqnqssrnunpsrlrsans{pnowsqqrrwsqrwnsqssppkms{nnqrrpqwtroslqonptqwpmporsltptssrprrspqspqlqrsqutrpopptnrspqusqrspsqsqqrotstqrosrporrosoqssqrqqqttrourqplpttptotsnstqtnrttrskssrrprqnppslrqrqrmqsornlrnrnsspsrsporqsqsprsrputtrtstnrtrtsqsrtunoussrorsorupquusqrrstqustqpsqqrpsstrntqsvrspuvoouqruttsrtorxprqsqqzqnrrsoqmssoqsqxorsustqv{osumtqsprqnpuspvssvtwwsmzvqowssrqlroqppvnqorsnrorrsvowtrqsssrpsqtqrtvrvonprqumvpsussksrqtsqqqqrptqroqrwpvsvqrssrtulortqrsssnoqsorotmrqpturrrruttspqptsqtpststvnssprusqpqpsqpsqsssprtqtqrtqpqstsxmtnrtpurorsottprnuurjtkoruqpprsssrorqqwtrrqsuqoqstntuqsrrvsstpsnstptsrsuspsvvputnopuvtvsspqsxrlqqvtrqsnxxsurqnunksrvpsqrsrrurrosmptqosptrqnuruorp{toutwsvtsruprprmunsukuxvqprrtqqppprowprrtotursrspuorpppsrqqrsqrqsqrprrsrpvqsqpssprsqqpqrruqtqsqrqvrtrrqqppptposuqsprrpqsrrpsupovpsqpppmrtrrrvosrpqrotorroorsoputqtstsrosrprqolqvrurqosumlrsurwqpqrprqypqrwsuqumsqwqprroqpurstusqtttpsqssqssqqmpsptptqqppomjpprq{rqjpqsnrnrftuouqqhqnurwnsxotrnusrrqqotqpprstqsoqppprrqroprrrsowtvuussrrspoorormomqouoosoqstqtsuruosllspmqorrpqssrrqrrpnrsqrrppsqqspspuqqvutoruxpqossrornpqlstsrppvrqnssspspnsqsrppqqsqrqouoqrpprqmrqopprrnqroslsrrqpvrpqtupprttrosvwonptqrptrssqqprwproorvssxrmtmlsrturrtoqprrypttmvwqprrssrssutvssmtprmsvyqtpsovspunswvpywtnnwusuzpsmsxuzporxqpmqtgtrourntqqrqipqxslpsulsonuqnspxpspppptupttlouusxrpststqrrrsprnqstnqsvpprr{rtpqpwgpqsssmqosnrsouttoruvtoqpsoqusrnrernqqqnqpsnssnqstqpssrruqvutsrpptqsrsurussuopsstoovoopsqortroltnptuqslytuusnuusxttsqrrrsvonpqsyqprqvsrsrqrpuqtrssnstqooptprqorossppovovrosvqtprwurrmotqrorrtsrqsttsrqnrssqtqtpqpnrnpslqppoxpokrqourqtmpvssromopxuuqpqtqrsstvpqxqsptumrosmqrtrqpqrrqsomrvppvtqtqpuqosqlwxvvutrsoyrotnpussttpvsomptqoqoppqtwrnruqprspopouvpshtvutptrrqompqtpurwvoukiqsrvpuqsrsormptsoqtplusrqupsrsrsqprpsqqqtqqtqtsursntqrnporrwtoksqptpprqtrpsrsqqsqsqsrqqrstrrsnosortpsrpvutsqtusvnvssrrupkprktrrpqptmknypnqqyqmmotospustsssrmwuwuqoqtonrnsrqrsxoppntprogswurtsvurpuprsqmptrupuvqpsrpqqvoorqorpssowsnnsrosrpqmojvqpnporzrsssqttslxvosutqppsurslsrqstqnqrrptsrxvttsptovusrotruowotsousorpswvqostrktpprtrjkztsotksmotwnpmksntnvsoqtvtvr{puskrxl{|vlvrutynis}uoptxl~gkytmwtvmsllqxjjrtuprxvunssqpqqmppsrvqrqmsrqtvurnnpquqomvsrrswmprsstnwrsvpntqrnqpsttstnqrrpqqoorprrsusrruuqwnvrtpntpqusrnpptosnrxrpppnournqnssspppprqrntqrssnszmpupstotptrvopqrtotq{uqormqrttprjutrpstxstnrsuppryhqrsssrsqpvspsqrrwnrqrsutqrqoqqosqoprrtsvptwpprvoqmrvpvoosuspmurrptptkvrsqtuqqsouqrnrrqpoovookrrnlpsqunrrrtsrwrsrqrutqqqprusmqpporqpuqsprspvmtvsnwqqruspnsrvozrnouznt|uurrssnurqqnmssgusswomrovmwnstpsquwtltrtvsoquuonqrtwtssvro}utolrvwtnrrhwtjqpioutrp{usrtlqtprprsvqutqswrrrpsprqmpsqsrqprlj{tqnlsppnqnqrutxszmrpqqqqqtquwtuyrrqrrrqstpqtntsrppxostpqrvqvsoprrsvlqqprgqpqtoyrnsvouqsovspqropqumqststpsssptrztups{urupqnrrusowpstwruwxzrwyxnqvrursuirsqomrtotl}wprqpvpytqsttsump}oqvpquuqrprrpwrqpmtsoiqnpotqoopmporulrslnhpppumqottpqrtprvrpovrlosortojrfioptoogotvlvz~syg}tmu{xphtqyvqv|}qpuqrolussuqzrspssnxoouw{lmryi{muqsroqwuqem~ruyjsiqjprynsykyzirrvlrmqrvrpvrpvrsrswxnptsppqstrswsskvpsrsouspuovrttvtqrtnmmpozqtvpvqwswsqtqsqpyoqrnqtrpsttqtpstxiuqppmrklrqsrsetwqtpqusrnquloolutntvupostpstrpvknnnrpntvorqrspqoaponrmvrmnurxpusrqs~sprunquro}dsqosrsrltssoqrrqpvqstrqnppsq{qstrtoumtspprsmrtpqopqqnptwuourusprrpppqtsrtrppsxsrqwtmtolpvqsrwnqnqvrmurpqqmnos{hpptoppmq|rkqtsrqwlrortrssqopuppqrrsrswtrourrttpqossqwqoszqsnowuqpnvursptosusrqorsrqsroyprqnqtrvqstmopmpoytsotppvoonswrfvrvrovtlpoonumskxtqvnvyqsv}psrqoovprpqsnnvqppptrovwpmpnrwrlrpssko|ssvxrcsqqvr{uosnrwrqnuqsttorqsstputrjqnntplrnsrrtspnrpqtmlmrqluvstqytp{rrqtvotrputskosrstprnroqqqnvnnvunsowrsruorrrwosnqvqxqowvfrsopnwrrtspmuvnmpqpvppsqnpqptpourppqypoqsrprrprquuirmoqtoonqtstnktopxqspopwprpqprotnqpsrsrunrnrusvtsrusruuwtssqsroovrurtruwmspssutustqytsqrqsqrnspqzrssruspqqsmqstrvrqppnrrrpqqxpkusturqpksqtkp}upvtkk{vsprutqrppsnprsurvrsrpoqqrqpslqrppnsrqqunrsmrrqrqrwospssqproqsrrrqsmqsqurpruorrqpqruoputouqrxrqrptqrppqvrsutoonquqqpsotqmnnnptpqonnrpsnwptsunqqtppoqqjqvpuqqosvqosrqsoquosoqsvkpsotpvuououusrvopospstsrjsstrmptqussspvptqsoumopnkmgrqppuusnortmpnugtvntosmopzmsukqspvnquyrsromtnnprspqsnpspntqqppqtoqqmuxpsyrvnrtsqqpoyoojqqpvprqnmrtqptopntmhvsnrlpvosrtsrrqspptsqqrprrqqoorqrprqwrpquonqmstqrpnntistsnopvqplrrppqrptrttsprrvqupjpoprnrurkpmooqorpqtorvqrrtperqputvrqt|xqsltnpspptppstsrrusrsrqosqpvstmvxetppomnpovtspbtrtrtvntowxstlpmvrpyqrsqntswquvupyts{ppstmuqolxztppsoptpzrspwuompuhwso{wqprntpaqmvriquvrrpooprsqtrtpsmqwvsswppurptorovuqonntzkqqpqwurtvspspynnsrrkjnnrpqltqtpssrrprnqsktmopunqurqoooanqvosprrruqpspqv{trpqxomrqruortpqrrtrusprqtqrqwompiotkpouuspslophnnntrsiptryxmzqqytqsqurtrrjpprqworuqsttpqtoqpnporoqrtqsrsprxtoqrurtrrrjssoosprsmnrnrptqtquystsssqnorsrrptlstmqlrmqsvspvukktooqrnpolznppqprvoq|rrutposrrtromosouuprqtprsqrosstsrrpopzrruuowtsrsqutoptwvvtqpisrluooknrso{snqrqtsqkoossuvrlrnptsspsrrqwrrnryvtqpruquorrttqpvulutmqrnrrurqrrovyvstqpsqjuroqtooqyrrpsnqqvupsqrpoqurqplrpuptyrtwrpjwpqtqurrsrqkqjorrtnqrmportvsusmqpjrsnpxt{stnuprtyntlqsq_oofrosqnrm_vjlqn~chhrxvlsqzpuum{gvzrtzmjtsnmiqkeupqqnrkwmvqfqyr~rq\up{rotftzsukwsvntphoqkmzoynpqqtwplrwusqmzskrvqtnrlsuupvpnspolvunnrvrrsvxmunnrnrnoonptsrqsytsvwtsruoymourss{pqzsymqonwmxoovqpirsqkttpqxwspshrjgutossp~ssknspsoppvfomndo{`jonukopvxlrwrpyxnvspyyzsmsqh{nmvirtvvmsvpprssormqmwqvorqjoprrwuoqmmonwpnrsqxsnhsquroor~qorqkqrmsqxtqguqpwosmnsqosrxqvryoszmwqpsrvsotovodnpkrpyppnsqiqtrqqmstqqpmpsoopqttskumqoqthoquownjspkpuorpppqopourohussruwrrrorptpos`rqpnurtsqospqrrqtqqsy}ypxtpvrvovqpnrr|ngoqoiowtronsmosqprjsrpptslqqlkortqytrwtpvwllurnqootmjetrninpqspq|srzpqjssqos|psnoxvphoroootpvpxosrmlqnoqjpsxsunprqzmuptmpjqmwsrtprwsyqpksqxnprozthxsyd~prrsnswqtqxqqurvqqqpeinl{}ousqroqqkqmsqntjrwlonvtlrxnlsoyyootsqr}lvisrwpissssrptmtokovrssrpsir{wpjovoqsropstpwr{ntmrqtstwrrusu}onqrrssurptvnwssxpvonroqpzpprornssunppuooqqpzooutrrrqrrmwsjvrsqqsqnntputnxrsslrvNrsvtsitpxqruptruqpvqqor~xrsspvstvmtsmopnlmvcsotsrzppovsrxqrnqslorplqvsqrsrrqousmtpqertlqvqmqmnlqrmstqsetpvwroottnnnotntnostzmhtqqxrazm\lssqlbjrs~qwqlo]yvjiwpsqnrodnonhpsnmuqtklppuqk|qmkurkhxg|ouvvlqkksuVomtzj~lthnimpkq}lvesowjrxtm|pfurqxrsovs{lmusponmtrxusqetrsqrhwpowqxuwu{wpqrommrn{puvnqvtpmsttopqpysqortmpsssosnsr~\uoqtoopjuprpqduyrpospvqqpuuqqpausqsusqrqrpqt{rtslfqqmozpssrspsndonrtqwslotm|pusrrwntprztr~soTrtpsvtqvsptorqsuprptnntspmvmurqsqspumtuxrnurnnqqnnrsmtsrwxtsstmsxsqxqtrqnnvpqtruqytprmnnyqwuzomptytmovm}pqltpjtqsqupslmutsjnmrxqotwvxpqnpruoorswqrqrmonxssvtsnlrxmsooppsqoryqrnxrwnqtovrp_ooqvrqprrrromursuqwkrnozupqr~ctmpuurfstoqqDzqhqo\ytslzlqdyswohsruglspodwqyrqr{mqvutuo}{kltzspwjpkn}moo|nnprgqnvtsp~uwitpbqfjwvufnqo}zvp{mquqpkiwfauttnnzqgmhyluf\lrrsuhxytwp`sonvrrtgsqUjttxotvmonprvnllvslso|ppsvmwll~lqsowstkqtoXpkk|nxtot}vhpvmlmrl~tktrtomwtiqtlrmqponujkoliopwogpjojtlkkupitqstsrqgwrprxrpup}urfrpuvsxsrquppoi|qquwots|{oqupqlnxwrl~vvwqtroqsp|oqmwnulvxouppsns{orsuonqlsrjrlpsxuppsuqtq{wonpurpvpqnrorssqsrwrqmwruqszotqkplouqquqlpuiomnpwrpnrqqpqpqplirqrposqqqprtrronnnnotwrworprsuotrqu}swrtrr|uq{orrsjousrvsqmrpmjvss{uuyotorwqpkonp]nlktjztvowoorujxqmryonstmesrwhwtk}qsuwtu~otnrrpttrrusromumpqsumokzonurprlrvlyvmqm{Yjpuqqitxm|suguophspnun`prmno{wwprtmplwjqouroqpnpojrqfilvpnrtursqlvppvrukwttrrtlrrpnsotlrtgnpr~rwkmrwnvrnmtmmnup~qqspnsspruopntrexusqnoxotptxrqspnorporsqrrtsjorsqvqjsorstcprlsrqtonptirprpttsrolsropqrqsvpxsruptqtriipvqnn{rlrhnltllnttwuvpuuqogusontzwrtr|qseonstknumowsuwr{pqupprspnyqsnvgispqopqmjomsoZwkrtimovpqusllquzpjwwvsqnoo}rs{rpoytwqosqkqxxkomoorlupqrurneokiuopr~unqosq^imzufrwqiufuhsqsypuysrrnysseqlowsqqtsporvkpoqulspoxrxrssrqvmqptwxksrmmxvtjwstpqoktqqortlvnsrtpqsrpom[qrupsquosrnttomxtsorkqomsqrntrzjpurrrppprsopqyqrrmlnopnuuutskrpeqiqvqotlstrprfwqpuopsuvvvqraqqnuontttwvqqoqmsnrlhzrrruvstotunqzwusrosqapnnonpnnmoojrqutsptuurssqolrproqwdwwptsoqkqvouyryrsuotqwnkrtpxsmpkqkrwpllsqpsxtnqrrqmvqpqqussostnqqtswqtxopjvorox|lvu}qplxpumklmpcrnmhgoqillrwurrtmmruuvpfuhrzqqtursqktutqqurnquspsrvqtvvnnvsoptprnutqssjpvs}vssqyuozopospopnvqtmppstyxonmwnpurrmrtpnsxrfovqstzpsottxprqqtlqwrussltruppupzpsstoqmsqpqqrwsurostposvotrttrkqsopsuvsqrplx}orstxkkoquwpssuusuormutwtspqspvtmoppqrtonrnuqoqmqytuqproqpsoruskptshmywqrsqosmtpnq~orotqrrpupqqqqomruo}sqtpvnrspnrqqqqowpsmpqrsntstturrrpqrroqptrrnussstsuupurstootqnuoqxnqvnvqmlxqtrvrlvrqqsqwnysrlqismjtpnvpntnsoxppponmwl}psvhwxojppqsnntquvr|rxvnynxkzttuyitthvjqviqsossrosppwnrpqpqqtrvsstkqpvsvuqpoopnqsqqtqwsswrqrssoypsvqooprnqpsrtsroqsswrpnppropqttqlunrlrstrrtutorpwsnpwpqvwlroqomquqrrxq{qqrqvsqusrosrrmr{nqqqsqpqtrsurpprujto~qprqvmsrstrmvwqqpuortprntpqsyhurpprrrlruqqqrrsqrtsrpwnqsqstusrrsosruqfotnor{qpprtloromspqttoqrorqsolqsnuqtxsoussprupssqrmnktpplrunqqtyrpuromtsqtsrtroqspolsqppsrrpqqntwnxorurnxsrrlnttqpzo{qutu|spluorooqqrvmnlmtswsqrwtnsovkvopsntpuxkkupstsqrvnrnuomvxisprrilkuvltuivqqontoppzwsrmtptnmtprorpqqwptrsuspqupnroqomqvorspoqmiusostvopsvuuqport|oqpqorrstprqstvqsrrsuqrtrrsntrssossrtprnvpousomsttrqqultntrqqoronourvmqtsmrrrqoqqssrpspststrsystquzvpzqwmsqvrqtpssrtqsotrpxswotntqutyqtspumupsjymovqnuoxnosrsqtnp~nnloqtuuqpqpqusqulsvqntsqqssqpqnmnrtltrzufopssvqputqqqoosssmrvppmstswxfumdqpppolrumvvyuo|rphtvkquvwonq~sqwr~oqoroqpwtqqqvptorulopqpt{{lnmhuoqnojzsgv{prfvvkotrjtrpwsorzpqvo}rrpqrvpquqosvqtqtrqwwquvtspstrsrtrpkqpqosotoosttrqtxrqsvoqosovovtqptqqwrqsprppwqsqqntsssttqrqrp{krmsqxrymqvspueurouptfvutqrqirqnrstsquoqtqrtrnpthomnuqoqxqqsrtnsnbuouruusunmpxrwspophtnqvuqpspgsqppurqipsqosspurpqspruurpnojsqrnousmsvssotqootsnsussrprurqottpsrsrpqsqtspwsrptrvwtooqssvnsroqmvtovorqmxpsrspoqurrntutpqtvrjirqswtsumtpssosvoqorutqrqnqsurptrprqrsrworrtuproopsntvqrmqpttnlqortuqnqqyqsspqsrruoottoxrrntuktrmrqtsqrwsnbrzlts}qpsprjwmpqrtp|unqrnvtxukrsttrs}qqupwssmfmotoqtwlkuuxootuqkoxpry|mnrolqtslppwtymrtuttqvyvtsjspsvoonvqnquxrqvpltpspslmppqrrtrwsvpr}trtvutrqnunsmqssrrpusslrrtptpostprrwqprsuuupyopsrttpsuqrmqooruuursstpntnqnpkvsmrpqppxupqtqrsrxuotqmoqssosqrjnnqjnnnptpmrxruqqrgvrnsyvsovruovisppsmqpuprrsyprpqtsqtuytquqsqrmtpvqtpuqnvrqrtrvrvrwvspqrsrssqqoyqsrtppsoosnrptrvqrsptqtprspmosusqroqoqnrrrrkq|uoxvqttrrvouoootsvssurqrortpoqponpwqpsumpoprqyroqooxppnmusqpqrnxtofuspppxrrtosopiotrssqqqnoqtqrtqjsqontmrpnqputvrqorrrqrquppjqtopmusrpontstntqstrmoqurqqstlrusvrpouqsrruprpsxowsptrsrrmuusuvnrunvqmooorxosrorrwmkorqmrprtxqvpsptjqppmlhprmpmwumqrumpouwqmppmpworkorvksspmpqrznsoqmvsrpsqoruprrolusqqqtrppqkoytqxrumsstqqusiqnzqpszqqrmovqqqqpsmpmhttrqrrwpsrspsprqpnqtqqrrssqtpptrosrousuppqpumotnqnnptjsrtrpwuqpmqpoprqpuqstqqtqrqptpmqstrnytjvlslsoopspqslnyrsrprtpquqssrruqvlnossuqrqrprtrvrqvworuqtmxnrstoqpsrsxtooovrtxqsrsnqlrmmqtropwuppppstqpssrputwquxqqrtxrs}ssuooxv~~tmpuwtjl}pnhnznthlzshsvxosfrt|hkpvvlvowopslvrsttptrtqnqympvtotunolptrqsnrtttjrrwqoqsspuivusojsxqqtpoqlopnqynooqorqpvqtttqrqspqotipsqtqrssqqvtstrsqqtstlqqosrtotqvmlssqnrkrsppqpwnmqkqrtvpptvqsmsnjporoqthpxurpnurqvuptsvotorjporrjprwrqrsqprntoppltpqssrtropqxrssruttospltroqooqrnprorqurupr}vttsspqpqrqrpsjsswvtqskrogpouhxpwskpurtnspnxtvpmsnkvrkmstppuuzvoqqptvqtxtturjoppptqtrmqqliqrvttrqstrurwrownzqornonlsonnqsrpvrqoqsurqxmqppuurmqppsrrprrssryt}qsqsqousontqroryqmvqnp}rrrtttqtopppqsstrsqoooqqrtqrprruoppsrnprqospqsrsrsuottpqmqxssv{rpqssprqrqrrvvsrqrtssspntsntqstopqssqrqtrrqtrnuprqutqrsrtrquprsrwrqssptupvuspqkpqtsrtqssrrrnrqptsroxrrvtomurntvttqrqsqqopptxotqosqsssspqrrroosrnsrvrrvuqqptrqptrprpusprrpnotuowrsrqsosspqpssrrstosqtssrmtqssqqpqqprrrrqsqsqrrssqotuwrprplprtprrlsoppppupnqmyopsytorprqupstprrwqoppprtrrmroospqrorqprxssxluvoozqqnutsoqxrmnnxpoxrxmurnrupsvjsouuiqrpqtvopunmnrqqqptrrvsrtlrqtsxsrprqqorrsorntoswxorrrpsqrtsjnortoqrsspqqmtrurnosqrsqorrqmuprmtqprpqsnqsovxvrvssuoktnosostrssxpnnrqqvuqtvupquqsrusrtjur{oqrrsswqsxgrslpssqtrsossrvtprrosqssrqquttsrqvqpqpsqnsqqrrqptqqusppronstmsqtpqsnqsttuosusutrrrsswspopruqoqrpssprsooqsqsrsrunuruqrtqrrtspqnrqsnsxoqpstqsrrqusqrrsprqpsqrrlupqrtrrtropsvpvrssqqwunosqqqrponwmvopl|tlrnvrpqohootoowqwourxtmuusqspqrotpssposqnpvqptptqipnttprqsxqrpuqkrq|rqpsrtoqoqvqppsqvuupmtqrsrqorrrpvtsssuosrrnqrrpptooqrmtqquurmrsotvrqoprypqvtpqxrurspuuurprqqwrvssssotqsrqstqrnqmsnrqrpotuptonrooptrqsrpqpouruqrqtoupoqnptqtrqrrssutqq}uvwtjqyquprrstqqortmttprsrpqqwpqrrorsspovqtosppqpoqssproqlnrrprtssxtpqtrsqrpopsrsvrvmsqrtrusrqousqsopqrosrurulqrrpptsoprsnprrrortrqrstrsvoslmqptpruutjqvpslwrpkqrovuqulqtvxnvvupqlunwqsrmnnrsupturomuorxzlpoetppqquyrgpxsrfxsmqupjotswmquyxusuzqroqrrovqpnrxrqrttsturstttrtrsqqsrpwprurstqopryopmstrrsturospqqssrrsrs~srsnrrqupsrhorurtoqrotrqdwpqhspxoxqqtspqrrortqrjrpuovnvsrvsostqrttmlptrrkqqbooyrsrmwopssvurpvzsulrrpxoomnqqsoopptpsturmppvqoprqnrtklrtrssrvutosqssrrrspqotqrtwoprnrsrtsnuurmqusrqmsvnsqvspsptrnqrqssrtrsssprutppqpoumrtqtqptrwrqoqoovoppoqrqrnptytosqp{kqqqrvsxppqrsqrrppqquussuorstssttrvottruotrtusovprqtorsntqqrutrprqtuqsqsrprqtrqsrqtqrqrutonlvupqpursqurrwrpwouttsvrouurqssrsoptstqqtssrottorsssquqqussqvqsnquotpsuktstrrrstqtsqurptptpmurrtpsqsrqvtssppssrsswusrroqtustprqrquqkuqrsuptuqqoqnqvspmmwruqstqtssmsqusqrqvotuqnrpmnqrqssqptsqrrtwqxrttsrrtumvtrrlsprswpstrnpqnuosprqrspsptotrutptrstpvtosrsuqqmptqqmrpolqqpntqpppqtqorqrpnoxnqotrppwsvpoqssprqpsstppswtspswxqtuorpsuuprvrrsjqwtsrurot{tuttqopsnmrprrrqqrtsqquoqmquspsqrrptqrorrpnsmuusqrroorvorstuwutwlkvsqstoropqrqtsssptsputpopoqqpttrstqqqrtrvrqspqttoppqooosppqtsqqqsprqsqsqprmrprttrqqpnrortvsqroqnrvrotqooqstqosoqqprsrtrslrwrpnqstopsusqsprrurqqpuwrqooqqtxurpltsnprurrqsvqqsqts{qrorttvxurnrwtompqwrsqrrptqtpuqrrvtpqslrtvuourqopopkrsnojuwipprrqpu}smomqp~rqhyqvnswrmtntuosnqousrqsnqquorqposrpuqtrrnnopvssuqqstrruprqmomzqqnorrpqrwqtsqsporlltrvspvqpssuqrqrrrpttpsrqrpqrrpurrprrtstoprqtmpvunqomujqrqppruprnqqrrsqptqrsprqqrrrtrqruprnuslslsqssuwqqqqpotpsounqotvrpttuqnvtsqrtqpsrsotsuupqttoortvqvrrsunssusvquokmtssltqtumqsqqqpqqrqtsotqvurrwsosqxptvutouqtxvrxtoxqmvt}zslostpjo{sonozpq}qkmwrjru{orjqouhnosvotnpspooousrrqqprrquvpurtqtuunutsvotoopwoqqovsrrqtppjutpprmupqsporoutrrtqsosstpvtrvrqqqrqqrqkopsosprqtqqussusrqopvunovptnusuqrqqtsqqsnruptropoqpnqtssrrrtluotrrqrvynrsrnsuoktpspsrpqxrqprssoprrpsqpqqqonptqtrotprpprrosptqnqptoputuqqousuqqqusqomtqsprrtrtqtsttqqrqrrrsrsqsprsppsovqstlvorqrumlsrvrmpqvt{qqnnlrsuustorsvuppoprsrsrqrprqqmqrprqpoomrprrtuspnprtprr{uprpusvtpnqrqnotsuusqvsrpqvrovptqptuppssqpusppsqttxrzqyorqrurssppvqnpuqvonw{srruvpsqpqltqtsssppqlssrqrsqrrrtrosrtrrrurttpssrspqssrrunptsqssppqsrrtssrqqtrsrqrtqtrrprssrsrrproprolwptuwssqvkyosorsssuxqnqrulpprrprrsppvprplpsvrqrsqquoomtrpsrstutssplqutqpvtvrusstqnopurqxtvrqssssoptqtqnutrtutoppuprroqsqqrqwssoqrqssurutopqopnpkspwrsprqwnusosstrtoq{usmqsrspsptqvpsqsustvqzvwuttsoutvvwqpmsphunpuutmlqpnrkqtppppxqnppsrnkqupoqtlqsorrtpoprxwswqwomwxpxzuqpttswopvqlpkrykolnrptswrphhrtkhutuktwonpkqjssppnttottroiusnouotlqorrurproqpstnxrsurpuqsttluqqvprqrortrnstqsrorsqrqrtqrputpporsrootqrrsutvruuqnovsqpqnrptrurspsuqqprrusvqrrspnutsskrqxsqsqsrsprmlutcrrsorrurqrrxrptssrqrptquqxttqrtrtqsssstoqstqqtqqqtssspvqtqsrqsqupptoqqpprosoqsoppqpxnrsrtsktrsotrqrrusnsoqrsotrtrsqspsvtssmqrrpopnsprqsrpsutrspuspqtpttqsqqoprrrqsqqqrrsqtrqopvrkqopqsrsjoonoppdiswtqsjsor~{rqkuuroowo|pmvswrsuppquqrholrqoosotqswqsssqturtvtsusuoslpvunrlpvvpsrsrsuuzuvtrvupsttqorvopqpqqtsoruqpqqssusqprpjppooosrsuosrmwtnulsuomr{rvttvvvurprsruqvsqpuptqqtttpssqpxwnstqmursqontqrssmtrnvsrqtsvqssswpsotoquqssvptrrprurszqvutdtnuqpqrrusopoqtqu{rrruszpusszopoxqnjnkoqkwwswlqqoqrhsmpqpquwpwqnsotptutnpsoqsvrnttqpppqtzqvunquosnonwoosmprrrpsqnroqrmqqqnrttquvsqxnp{qmnstrs|oszwsup{tutxpjstpojro{pmnvosrqqnnvokvlqvsovwurrtrrkluwivssss{pqwxrmp}uuzqmqispnqrpq|lppoqrtsprswqlsjsrqqqwqwvwqoqtqrlqomxonytqrurqnttsojpjvsrsqp{pmpnmvrppsost{qptsprqqst|mroqrplspnspr_|rsOslrwr{vpqxrrtypprwonpslm}nuusuportptnrjssqksufpo|qpptxrpqroptntsqwmomnt{gmqtpnrrssmukollnrtupmooqrnrhtssrqssutqsqsnsrurstrqorptqsrnpuqrrtptptrprqpstnpqsrrnprppprqspqnrqpqpntqroopqsrpoturpsqtrqqswtlsvusvrtsvtrlrqsuuosrpsooploppotpusnpqqsssrqttrqqtpqvtosuqtsqsrssqntnttmrtoovptsttoottustuqsmrppqnrrnrsqostvprsppvrstwttqrpvtsqpttonlqpqrrmtrvvqrusvutrnrtqrusrsqqrtqsrxpwtuvrotwzxtkutjvtpsrvtrtopppqurrrswqvsutsrustotrpspsrtsurunrpttootpsuzvnqrrrppyhpxpskonptzottqnoursvoupnqosprrlrrprrmqlrsqvusstotstvquqqururturrurtqsttqnqnqusnslssrrspvoqsrqrrtrsvosprsqttpsvqpuqpnvupmqjrptqqlssmswpqsovutrmrutorswrusquuotortpvpsrqrsttsuosy{ouupnntyuzruvttyuopqttsrsnpytytslwpjuotvqmqwspsurqtlotrltqtsrrursqnnwrntruutrtrtpppumvnusmouwsuosrrorrrtpussppnswqwrrptqpqrpqursqrqsttqoqpqtqqwqpqotrqqtrportsvssqtpsrurqtrpqrrouqpssrqrtrposxspsprnrrroqqpspvsqssoqrqttotqssptssotssqtuusqnsqtqqqprssrtppwskssuxpusqotqwt{rtvvwvopqpstqqrprrrvtsqwsupuyousvspvunrpnsutourrpprmhrqroy{rjsktnrorhrtlurpipn|tpwitxrpwms{rssrkprorrusrvnpnsrrqqquonrsqqvvuusspsqrpoounprmnrmvpprnsttrwswwssnkoqrpqqtnqqsrppruppmpqorrqossqnroorppqrrqpstnqqouqtslruqstsrtqstsoqqprstnrtrrpusrqprtnsrsrorrppqqrpqsooruopurpsnotpqnquoqsvvtrwtyqpsopspvststrrsuqqkqpusswsmmoorrtyrrtnrrmqmrvqnuqusqsvtpttzuywvtysrnsvuropqpsotunrywpvtrnltusrzpskquvwqprvoqmrxjosppntssqofprtokpqukrrltrkrkxoqsqprtuqttoruqrwtrtsturtsoqpplpqqorqwqsqrysspmrtjltsqqnpqqprqorsunpvornsrsoqsrpotpnpsvpprstqssqoqrvsurqrtrttururpvsqqqtqysvsopurtrovpmqrprsqppmsnprtqqlsrrvrptupttlutrorsymnporwqtrotpqqtqqomrsqrposrrpoqrqqupsqpqsqosntqpsuqtpqvrprmqrosrotusrporurqrnpssrtqrpqpprqoshqqoorrnkpmtoppvnsrsuunpotymurpsrtrtrp{rrulqqqqoprsssprproqqssutmorvtqvrttsvorutptrusqsrrrywnrpqxntvrnuqmqsrssutorsrvpsowqqstqsroststnutttqsqtsrmpttovsttpunjsqsxorqtrsosptvuoospjvprruprrtsssssssrqqsprvqtsrqspsrrrsprstqrnqrqpqortqsqqtprrrqrrssqrrttsssrprqqoppppvu|tqwsosousruqqruqpoqrlrrrqqprtpttmqtmlrtuuruqrsrsotssttsstrturiqvutowuotrqstprqlssrutsrpusqurnqmwonnsrsunmpoypsspqpqppovqpppqrsqrmppoponnqoowrtrrqrsspvtouvsrrpqzsrpsuqtrpnrrspsrqvusvrutrvtopnwwuryqmqqmnsoqqtqopqvpxopssrsrotnpoqqulotqrrqmqpqpquomrtxtrvpxtjs}tx~rrpvtpuppwsloprxmnnlolsswpphhqukgstqmtsppqoqppqnpqsqotssohrrrquqropnqrtoprnrqttnwrtvsovqsstnqsstqrrrqrrrpstqtroqqpsqqxqttvuqoouqroovoqtrruzsurronvurpqmrqtqssrorrrppsrtqtqrsrqpwsrvissxtqtqsquotulstktsrrpvttrqqtsqursturssouuttsrlqrsssssqvtrqsssrsrprsssptrtprrqqrspqtqtrqtuqqrqpporwrsnsrtptovssqtqrnrssrqrqqrotqsptrtopsuqqmrrpotpqunqostotuxrtqttrpspsxptrrqoqrpqrrpprrtorrsstwriqrvroprrptqqsqgmsywpumqopuoqqkrtqnqurqppozrwoorprqsolnrrorrqqrnunusrpsqpqrswqptnrosxtqomwpqoqqrrtrtuwwsnrssptssqputswrstuqorqqprpqrstrqsoh{qopnqpqosnsrrutovjpspopzqvqsrsuurrrrrvqtrrptotssuuvnrtqsuzptspqrrspoqsornrnrtoorprrpsrssvvpqqropuoqstnsrsqrrsq~swtxjsvrrjtqttrqontqstxrtrstyrurr|oppropmlmlvnzqvtpqqrsrqplpoonuuqxossusnxqspprrvuvrpwuqsrrsssouwnprpqtplwqowlnrssqqqorsqrntqsortopsurtymfsncqouqpynsztqrqxxt{xwseswspitqrnw{prrpqqqvonspqstqvvrrprqvpgttavqtroupsyxptqzutwrnsfqoqpqqqmmmmqqrqqsptspqorrrprtptztqrrspqoppovrnurqtrsvqttpoornxtrrrrurlsopsssqtqur{pprsrqqusrxiqqsrtptqrspqewqrgsmpvqwtrsursruvqqotqrqopmuprypwrqttstlrprssmqudqmyrqqs~prqsxsorxqrqrtpornurpoqsrprssskvonpolumspptnrpltotqsurtsusrrpspqrqprrtspqnvrrqmprqrsvrtortqpqqswnqsstqpqqqnqrrsosnqqsqotzmpmpptyqquvtrnqorprpswrmpwtmqrqstrrmsptryqooqtsrqppqqqrpurnqqqqtrtsrrqspvrqtspurqtrpttsrpovstsmrtoqrrssrtqqqrttrsorsqrpqpsrsrpqpqqssptqorpvqsrptprvuqxqttqvtqprtsprrrrqmosqurspqqtxqsutslttroqorsroqmqtsoqwovqouqsqrrksvvttswrvrszssntptvutxorswnsusssqsqqqptpvuiqruop{vrpsstqoxjqtrqroqqrurrspoowntqt{nnuqsrqnoqsrqrornrqputrspuqutwqvrtyqtouvrttstusrsoopmpswlnistpppntspqtrsqrnsqnstqprusqtsrptrqnsupnqmsoprroqpmsvorpqussskotsrrswwruqwupqrpqrspsttvutrtsorwznrspqotrtvrurrrvpsrruuttsruwtxsrmsnmqnqsursuqqtqrrsnqusltqsrqruuqpnptnjuswqustosppntqvqutnotwttqrqsorqpuuvttrtpputusqqrrprrrrspsrqputsqpsqsssqxrrppsurorpnrstqqrnsurrrtsprssrprqtppsspqrrspnpttototpstssuqouqvqrqrntnprroropsorqtqvqtqwvsnootquroqlrsqqqrotromqvsrrsrlwouqtrqwpvqunpptvsqtprqrrrupvrtqqxuqrtrrvtptsosvvrupsqpopdspootrnsorpqotkutlrupmoqvxpxfsvssqntrtsqiqopqqupqtnqrrqsqrqqrntspot}rtyrqsrsnrprouonlqnpkorrqpqstrttqrqjirqprorrqrrsrqsrqspqpqspqrqsqqsoosqtsrrqprtnqqouurtmstmruprtosrqnqqqrqtnststrssstptqnmqsrnsuqmqoqqsspouuqqtoorosuspmswqrrswxsvrwporpqsptptsststttsmqrtrvtrpqsnursvsrqqpurqvsqrmsomtotturprzvourovtrnsruqposswptupqxvqtprjsystrsnqtsvqnswrqmpvimnprmpqtpo\ppupeortqqrpqqoskvpsrrpstrqssqrvsqrqspsvurqqnpprsnutqvuurtrprrvtsqtoosstqmqosqsppqppqqtsupvospptrqqqpiqsuonppslqsqpssvrssrqqnustosuqsstqpunssqsqqtsrpptpmpsqsprqootpqqrqtpxqruumrqssvrsqtqtqwpqrrqtqrrnttruuqqrqrwrtqpqspppnssrtqqsqrsoprqusqrustpqtuprmqsmrqrrvsrnosvrsrpqqtrsprpqqqpptomptqootlmrptjrptrpsqqtotrtnrsrrqturrtswtqrsqpqrpnstsqrqnspsqsrrtippvwtxrqursprsppttusrtrotvtkrppqlstpmwtnnpstpttptprwqontqpsspqrpqtrtqsxssprrssqlrutosqttpvonsqquorstprounruuqpsphuqrqtpqsusstqsssrqqsqqrpssusrprptrtqpuuprotqrtqqrrrsqqustsqrorsqrpruusrtqmrpqqprspzumt~sorvxvrsnorxropsnnvrssqlq|mvurp}ijsuuptptrsqpppsvusrtprqtrdmupsptpoomrotprrcuurus}qpxsn}skol|pqgzvuutqpq|qrqotspprqutrmqnwusnqskqsqpmtnsorqopmpqnqvtnpsrsrqq}psroworqmrrprptovttrsswvqtrtrmu|qr{onrnolqqrnpqqonyo~qpsvtwrstmnllqsiiuumprlpqorjoslmotso~pwpbiooqsprptprpvpmnruzqqqoqtuqupp^oqtscqspqmutsrkonpmrpptqovrsndmqrmwqrqnltoworosrqvtotrsyts{orvsltqsyqpqpvrqqqssvqsmrpqsnoxrtp|tropwouotvqrvmtuysorqoppspnshsstosurosstqqttsrsrrosopzoqsass}srtortspv|hrrqqrpqqvtqtqnrtsvusurrsqmstrstwgrsrqwsrkxxrqqprrqsquvrvr{tvwqspvssppsursoprnorpopqpuquortrnsnrtuttronqprtsuqrupturmvtspnqtomirtnmqqosprpsrsqqttsoqswqrprtupsvnqrrrsprptquwqp{psniopppqoqtoqposjcosqytpoptosnnojlssqlxoqpru}l{moqsnstvliwnmtqqsvnulomnwsqvtmvqqpnpltprtmmrptpsspuvoqrq{tsptspptptttqsnpprssrntqolprsrrvrqspe}qprnrnprppqqrpun{jqrqqqyuyrrprvworqqr{rwqqttoursvswmrunrn{qstqprrrsotprmqrqrwqqttrprqqupuunxspontrqnsqptrnrsqttyq}gswrrdrpuqpkmotquqxruqpvzqxpqmptrmopioiyq~k}tmqsprquljpoqluttjqxvqp~rqsqrwsuvsjrxsuqtsrtlvwoqonqvqjzrtzikrssqorsouooqsoqmutsolwnr~r[spTonwokwluoyqqsn|rmowr_mu{pjvoqltzpqpjtsnwpnqqwprmvwmqpvpur]quYuputoupupxoqqoyvmopsdmmoosrollplqpmlqroqtllosprpqtlt}trprsppmrpqvsovqqrsrvqquqpprozvtrsrtrksoptstoqusq|qqqrqqpxqqyWtsvsuopottprY}pq\qnowswsmqsq{ntvpponrpopsitrrisrrsqtucpvpqufntVrk~pqqptstuy|qpznpqrsmonptolosqsqrlxvgzslelicrrqupuqfrwvpsuststqrsowporrlpsrqoontrqqqqpsuqttrmpsrosrn|qtrsxnsrrqoorqtnrtqosprr}mmsmpq~prwyrropormktqrsmpupjqvvruupqpruqttolrvrptsqtsounttpoqrvtprtqorxputrwrpsrppoprussoornvultpsrrptwrrorpssrntmtustqrsrrtsrsoppqrrtsvlrqpsqqxpwosqqrnlqsxuqspwlpmrtuqoqtvqstoouvivsmsltuootqsqpprmqtsqrwlvooqpoosoqtprqmlwuwqqwptntquttrwrqtqlrttvrsnoprptmxraqrrmlriomtuqkukrpuqkpqqrqvwsnpuznuorop{srtrrqqrrouqqovqorqool|rttvpwpqosrvvqsvttpnrmoppmpr{otgrtoplqrssmvssspounnprpnq|qptoomtqolozlkslrrqquosmprworoolttrnqvurrsx{os|zrprtqurspsqtsxvsuymu}~rqtrnmswuxotsvqumrqrtvqssqvvo{tttqplqlqrsqrtrqrsrmqkrorkvssrqosuqmnpronussrvqrrrtknurwlvtnorvvrstpupoqqussststqstvqqorssousqsrppssprrtsrrsquprurspqotpmtqnpptopssqvppsssrrtrrtorupoqsqsquproprsmsnsqu}rs|ssururspnothqorrmpruqsrqrwnqqursllprpqrsrlwqoqpssppopqxwotpqltqwtnzmvnorqoputsxvpqqprot{nxutquvwqttootwrtvqqupuqlvqoro\trpopwnsnrsolokwompopolooysw`qwtoumoqtoohrnpsstmqvsswtpqsporrmqslgnsrprroroprqooplmnopoostqtsrvpurqqkjappssprxrsqrvpttpqpooosqprqwppspoqussqororrpqqnsustmpsjqsovwquyqnrqqprpnpvpssrrssospnhrwpmr{omsipqsnonttmqsnoqpqtsokpwursuutxtwpqtsppkqqrussvpqsrostpsxorlpmquspwqpsotmvmutmnnktmsontqmnquzpqouwtqnpttqotosqrvvpoxqoumrgqttrtlqtuqsmvqpphnwjplqrrpovnmTojrq`orsnsounskpkrsvtrus|opqunk{tpsuvsqurorqpkostlprpxutrvsoqqpvqqrpnqvnolnqqpsnrsoqnouqsowrrppspqpookprwprnpqlopprqstwpqprnpvsupquvq|qsssrxsqppsrqslprqikustrrrpjsmpprpptsprsnsmuryrtluqttxthvroxkrqqssqouprosqwprrsppuqpqswsrrusvtstqosrqrqtsoropopqlqqkqqssxppmpuvspsrpptrrqtmrrsrpuqgpptrs~nqsovipnusumpqorporlrstnortrtvl{rmoqnpssqsrsqssppupqsrssrklsv{ryuuxrtpttosrpwqquopsroitnllhqtqlvpnbprwqqtpsqrxqqorsrrqqnrsrswuqpwstorurrplvtqnyppvqtssrsqvnpstoqnuotuutqspktrqqssrptqurosruvsstqvpqtttostsprtqmoqoqqrsrnurpqtrsrssvttqrrpsxqosssvnsvrqotnqpsowr{qsurnsruspssrrprtprssuqsqontypsttpukpsuusrrrtqrnoqqtttrttqqqtisworqvrqsrqspqsuluvqrsrrpttrurnomytpotsttuoquxqrqssqrpsquqvppmrstortnurrrnsrsprpopnoqmtstnqtqsorswtqqptoqpqotprpsmtorqoqusutropntxssyrqprmrnowtnsqrrtuyrptqpqroqnponttklsqorqpqqprrropnosup{stugmzopqrprpsnqvuqno|st|rtkporvrqoappusgrrrottsrrmomsorqquspstrrhqrsqursnpmrortpopqussvwrrvsowqttqnrrrsrrrpqsrtotvttqnrqrsqosrrmyrtmttptnsuotsntvwrsrnsqmsoorjsusrtyrnotsssvrvttpspqnpvsstjtr{qrsrqttnttgsrorrqrststspsutstpqrsqrqnqswstsmtrprtqqnttqrrqrsosrttqxrxrsvqtqssrqqtsrqprrqqrrqrrtqqsnpumonorsvsqrsqpqsrstsstourtqtusqssooqmspqoruorptssrrrostsqusstroqyqrsusprsrsqqppsurtrqsrqxtkpqqurpqrntsqrojtrnutxnprtopnqksurrrvqmnnqzqwqnoqsrrokmroousnpuprnlmqtqqxruvssorqottquqrrslmprttvtrsutrtvpsprvqqtuoosrtpsssnqspoopqrswppsrhxsprtpoortrrrpnpowlqtoqqysxrsnruqrrqrpvqvtsqrpurrrtrprtorlukqvroppsrrsqrppnvsqssqsnmssuqqstntqpqorrqrsqsqrrqtqt{tvtxjrxtsjssussqpnuqrswssrqsvutqo{nppsopqlrkwpypsrprqprnqnmpopouuszpptqtsxoronpuutsrppvuwtrvrtkvrotrpstqqxrqsmoqrqsppnqsqpmvqsotursqsps}{eur_qpsqpwvqmwtrrkurlourdstrwjqqumutotroovotpopqorsntupmutqtudsodsorqqwutmvsuppwuquqqgsspvpqq~oltoqsosrrptrmplurursupuyuvqrrpsqqpmvqowpqsqrtprtrsrpkxtqqususntqrstqqpsrr}qpsoqqqurrvgrstsuqrquqppgwpphsotwuqsqsptsqqssqroosrqsitstyorrtrqqrlppqrslqugqmyssqs~sqrswuprysssstrpuopsmmrrnontssmvrlmpmumrorrnqpknntotspustrprsvprppqmppronrrqsrqqstqsrssmttqsropzsqrtvosqrrmosqsspvtrqqtsurnuprrvqrrsqqqtssnqrsnrootussrtqptupsstpsuqrsttqrsosqptpsrtqprrttsrprtuottrvsqtrsrqtrssuprsmsunsuorpprsqsqtpstrpqqqrrtrtorrqttqnspmnrvrvrqstrssruquqs{rqqqsqrossrmupswrtrpoutsrrtptmttptnusppsrrrpqtrwsmqsropuqsrptsnxssrttkwowopossrtrpupqsrtorssqvpvsssrrmspuvjsqtps|rmrsuuqpvqnmttqpqqumqvrqsrusspnyqotssrqunqttosoporrptspsrxsrtsrsvrzsssrusowvpqsrsqrupstxmrnrsnrmqssrnrqtstqtqnrqrrrvqpsqqpupoosvqnrnqorrqupoptwoqpmmrtqnssmursutryrupnstpostqssuuquussptwzpruormursrsrpprsqusstvssrwuvtxsrqulnsmrpsqqusqutsntmrurotrsurqsrqppqtplussssqqqtslqtsvptqrlpwusrrptqqpuurrttrsqpvupqquqrqsspsuqqqtqqtsrrqrqtpqqsqrpqoppurppqtpqqsrrprrnsqttqrqpqnpnrssspqprorssmtqpqrytrurqtrttsrsmskrvtrorsrqrosqupsrszuonrtqtsrpnruqsqpotqpprvupsuxkrqusvxqsosrqpqqtwtqvmpopspwrstypryxrssqnuvsstqtvvtsorppnogrsopqvkuqtpsputsqnqrqsoqnzqyftwqptnopsorirrsqrprruouspourpspsltqmmo~sryrrruroqquqosoxrosmqqrpstrtrstsrnmjqqtqrsrrqrsrrqsqpnqqptqpsqsuqqqqqsuutrtnqrpsrqrustmttmrtputquuooqrpqsoossrrrrrtrpsrqlssrpswpksjtnqppqsrosspsppqnoslqurstusxrusurrruorqtssswutrvsqouqqruptpmrrqtsutqrtqqprvstoppwlpnprpsnqxtsuoswutrvsspvtttvqtuqs|sqxtormrzuzrpmurpnouspprrpvummmnirtwoq`rrqiiqtumtqqnqplpsqorqpqyoqrwniytqwvtrrtqrtwqqsszoourwssrwrtoqpwmtrqopsppoksrppspuorprttsqyrpqrqrrqpopotvrqoqprptqquptrprsslryruotqupuqprrsruopqtsrqnqppoprstsprrmvnrqupspvqsrrnrrrptosorrqtwqmsqqtpssrrroqvprqsqwqsrpqpsrpqrsrrrqrrssppssuqrpptrqpsuprmrtmqrsqvnqoqsutosrqqtqsqqorsstqrseqnpwr}nmoqtirpuwtnrorqrnqkpqsortqrqvpztrpqmrsqrrtqptopmsqoqrrtpnnvvvqwtrurvrqttuururstrruutlronrmstsounokrsurqsrnrqvprmuptsqqsststyrtqtstrqtrrqnqunoxqsuqurwrsrsqtrtqqpurtttrroqissqpqsrprrtrrrtssptwpvqqrsuqrsusvqrsqstpstupptspssqsrrurutprrrtspostussttppqqooptpsp{usrtlqqtuqowqrsrzqrqruospqpsxmruptshqtwvruqvtspnoporrstuxsspulsuqprvvrtttssorsrwqrurqtrsrtrpotqvrnqsqttrqptvqrptprqqsptpxsnnrrpqqxqvqsrpqqqqqqnqpqspspspttprorquspsorpnsrqtptpsoqorrooztvrqmmlptrvwtisumdpnxsnzmzqpusmnulkorxqqptnuokmrtmrsqquolrrnrmqtsoutrykouqmznporqvntwsnqmyorwrzksmquoqrepoqtjrqpotsnprjlkspopoutprsqritrrovpsmqnqpssspqorqqtwrqtsosprurlqqrwossprppsltsxtposqsusrprqkxquowrqspptmsonvyystrqqmksnouksrsstvsmntrqsxquutqrroqpuuusnsr}qpspqqvptrhvudrrpqrrrrsprvsovrqpttsrnpsvrtptupqqqprpvmqsssptrrsusqtqusrrqrtrqppqstrroquqqqqrqqrvrrprtrppqtqtprruopqsrtrtpuourtrtqqoruqpsmsrtoovororrttqtnrtssussqsortqqotpqrrrrsrqrsurusqoopwskottpprqklrfymndwsnrpznoqrg~prmrwstpwr}rjywvqunrnpsopjplqqlqtmosqsqkposprupxvttmrplrumtppssjqrrpvssrwtvtwvqwrsurooskpq{qswstnrppoqporqyqmrqovsqtwpprspsurqmmoxmpwrrr{sxqrquvrsqrqsxr{stqsptprrssqprnqkslrsqprpsqsqnqqtptspspprpnurvpqrtqsqpsoptrrrqrrrsqrrrzutusfs{urpsssusnroqqqvtusqspstppqxpnnrpotpvkrmuuqrqqsosmihmpomqswswtnqustvrqlqqurruvorpspqrrssswrpsrpqnmpxqpqmoqomsurnqpomorqrousqsvspsyxnrrjptrst{xslrsnsltulksrkutotmrr|xkrq~qtqrnzstqlllottnvtsnpvoq|skrqfqtotryvqottnqqvsqnqqipsrvqrs}vnqpqsqsstrurlklvsqrrvrswustptsulqnnupn{qqtqqqoqsqvkpjxsqtrrxsmtoltrqqprpsqqsppqrsptynrnqqvnrrqspo_~rsMslustwursrp}oqvpqqnmnspvjruuqqrtsupumjntrrlsskpozrtrn|omrq|squwssmplpxpqohnotmmpvqrosqllloquoosonmtnjivrssrvvtpqsstmtssrpqspqpuouroqswrsrqutmrutssoryppostosqrspotqqrsursqrotusrppoqvoutpqptwqtrsoqtssnrsptpuqqqsxspspuuklqtvsstqqpoqorqsrrquuvrsnruspvsqtspuursqssvtrptsmuupounsrprrqtnsrtstqqrqmrrtspsqqtrsnrtonpqpusoturrnsutqrsnpqqsptsqqvtntsruqorrvusqquqlsrqpvppttoprrsqtstosposospqopxptqqqtsqsvrs|pxtqsqtqrqovqwwrrprnttonpwtrqsosrutmqquqqyqiqprspoywrmpslpvosequrqqqtqrsltqkupsrpsosvoqsnrlstorsqrstrqsvrpxpttssruslwurrqssrsuqruvorpouoqppvsstrptsuqruprusrrsqosursuonnwqqorosnqtmtroptuqqqnmlrqnquossusrswuwrqstqprurtszrsvtpuprw{prspslrxuwrxutspqssusvrpv|pwtxvpnsoktnqvnnpxtxsrrqtlotqnsrssortqosprsrltttruqrpvujptswqtsqmkwrruqrqpsrstptuspstovuqqorpspsuqsuqrrqqqtrrurssvqsqoqqrsmrssrppmuproprtprsosprtqqupppqptuurrqrqnswrnupqnrwvqqsquostroupvptwtqpstuqtsvstqrroxltoqtrssqrqssussoourmtpvtqotwoqowsy{rupsrtsptuptswprptvstrvtwqnylyutssustuoqryuqvtroqsolrromo}ukumrptqsxqsnpurxrqkyovkrwrqxnp{pqrrkqutpsqrrvoupsrsqpusonsqnroytstpnuusqunrpsrnxsqnrrqputtsurtwosnnprrvssuoqqruorpsqonsrnpqoqrsunpprqprsurtmpqosqqptttlrvoqsnpsrtrrpqtpsrsmrsswqtrqsrrunluroppuokqitmpooutrprtqqopjtpsjrvqsssstpttutpsrppqspuqxsssuormtovvrpsunpvsuuytuprourrxvproqstsrstosuqupoumxyvvvuqrrxqqypouuntzvrwsryqpuw{ztlostsmlvtrpqvptxloorlpsxoqeorpkmpruptopqqlnjurrqpqqsptswoqrusvuuruuqqqvrrrvttqupxrtqvsqltsqprntsrtrmrmrqppqqvppqtqturxsprqssrrpqrqtrqpqoqrntqotrsrmrssmq|owktrtqpqqtsqqtqpssurotrrqoptqruqqpluorqqoortsprsnqrlnnktpooptyroqspqotsrqpppprsqnqtrsrotrurppqpstrtqqqtqprrsrrotsuqrtspqonspqsqsuqtrqrutqrsrqsqsqrpqpprqrroqrtvrypqrrwirtytompsurttqopnrrtvptqtswwoovorsrsssuqsmmlsqsnrrqsoqtvspursqtssruvurrtpttvvsurqqpoursvsqurosrtsqptrpttvnlotnsurqrrsssxptrwqspttqtpoowqmrttuopqxsrssvsstrrorpttsqpmqkturpstrqrssqssrusprtqtsprttqqqtssqsppsrqrrrqpurqstpqrsvpttpqtstrrprssrtrrbEGPGcE@WR7Rmx`\CrQj`^acUV^JlSReSyUOm^cXS[TWR_xQjN^?Y]R@QXcUWE@yLGOQdQ_H;gLdtQeGbG_Ed[Xq~e[fc_Z?RkRJNUbYRt\YJ_[dUV_cVB[:DI}P\yZj\sIRjaVSjonTZN\XJ|VQafIkSpd4]UMK`PIPLFDio?aFUTiiqWCY\m}ZXdKW:S6\[dXWLVp_\lCM^uJ@NXVSj_VTadO|McZ`MBKbUVNVeK_d\ggVVl^NLaH>bUFWOtpa]iL_IHNMdOutNQ_Q_fA[AaVeQ^IvMgQ@^cWVXgZ\JMnQ]DYfjbW\RWPqPNthY^ETWTKQYuS\QoKIL]T][WT4^kM^aRvuEXAjdLNbKQWb\Yt`j^c_sKNe^\WfaF\oEPY[HZd^[XXXgi]Vl`LHRa7UfPTDQfEFS[Pi_kU?S:STPQRJbz^gUaHLaOl\^IYJZ_PSW`sbmPWUQi_UVX\4gUX]`9ThNTebA`doYdiJTMPtZddQKubCaVWLSWjJIO9]]]cXbU]AKYnUDcDEcVO]N^7\{`GCf[Xd=hO]FiEiRnjcKTOXCj_Of7PLTFWaW[dYZYcFl_maRXHerNV{I^ocV`tfLB`GKTaLoP2W7PkW_Yb`fJb[PhZpcRlXgiJtVjjWPliJ\RUBQNNhcNHP`^PKZtaotQPX@bWnI^k8}]t`qZ@@cR]dAHZTHAMC >c__`B_CH[ZKl`V=O[YZukRSMEz^pWBfhWLOZUWPP_`cRW`cOGKIyWjVaiFBTgTqYCMNGfhRTiTca|]`gFdlVLeWxi?bP}SJmU^LFLBTXhGKKXQeIEWs^fdbQIf\aKT[T7oG\ybNcOhY^A\ybQBSNXZM`ii7pWXLfjqPk]VFVcbjdU__[R`UVOKb_WgcBLZXP[OYimXXiVS`ORTVB_HY]QOVQwgQ`QL`TOPL]WoRJT\RWYqwj\cf^HSBL]CZjE`TUh`TMdNmbT_=VbLCMn[DQ>OUYaixZWa_WSWH[nf[TUI\ULjVIgUHPW[NQLwYaWlUO[Zd`LUQRZWOL_HXRTURlgMOY[aQNwY^g`bPbA>uJEDQjNbVNpclU8]FIQcdP_feS7[Wif_HYUUobaDRn\QSoaQPdgPa`JQ\I\UT[RmohqWZ][`l\TXLMJ_R^QYO_Y\ajuXORaZ][xX^QK`riUatX\JLTZF[deSRrj>pO_XUnIYWHRcOB[WUdjVYxfK]Ehe]VSPES\X`TkamHL=H`]_sOhY[_hhUVR`PPKTSdj^aLRBUeSPJIaJtTeXUNCSO^`dQKES^Bl^oNeFahh@PLW]TL]Pie`MnP^XSM@JreGqMMMBjNLTOac`slJ`IbDTg\KJ`Jw^irbefI]LdO>deQGRa}N@EZVHbmWM[^oX`[R^^baUktRHKnxHRzM`m\O8NMRJV=ZSwYprTd`V?[WLEL=KHjFJcVUPEWVaoQ_]=chO_`NZ\XVUvR`LXH.ImGzFVjIeS=pN_lbMcToYcfd]lEeVg^zFVAG\GaKFc3ydcQI]S^fdU`[Q1K]_\ZNlPrceILYjJQ^NV^@gHIfJexWWkWXW_`TGqfVHpKWb^M^ROH@@@BbkZHSX`A]_SR}[PARq^eQHjTUlsScZ8`j\jVUNXcXe[JBRdZkZ`ULKcl[mQIXPH^KUZVe^Rea]_RXXWRcT?PX]mWKXQ^Km^RqXXTbi[LvtZb8hY\NN\W]KGhXTSO_lVnXm<]d{}XUEdSLHVMn?PbwtgNg\LiTu[fXf>C[`aXLtRCPf^\iVuu]aoYHdXLuHWYRRYE]>C]Zx;IfX_YCWZm`PUSUnxiKT_QMTLLMGFYPSWT@;ckSR\LyXTFJJQJms]jUScYOZWWIW^mZh{GKIFrSOhO>XZUdbrLmURLeO_kT`LFZmtW\`AYMpL[NSnQZsd<`JTo`[[W=\kK/mW`bJJhbX\ZDQTojSY[HIl`zGcJfQV^]ZeTFSXON_LLPbP]aTS`htMexQlO@`G\]XVdOn]\FoScZKZpFRffZtEPMrecRGcWn@UBuMgTMNZY_kxN]eh?Sp\RTtWJP?X[^sZ[VaOe>GIkVEd_S]@QIqP:IU]]OGUZJK^vi8erWZPAVXaMLaSKKW`6MFtWZGSCORONMB{StfNdapOwIwOdKkOvlYU_a]MTTe[BSpucs/TZe_NUiSZlR]ViPO]ar5luxnUPeIvsUcPRLbM];`X[9dMlocaWTQm`TKZD5fHLPt[hbHm5AgNZmOvSyzddlQPPOGNtWQ]uNbPQ]]f[K?Zm}^hYHgHLkdY^S_I^T^U_b^/aVB`[l]WPi]aTnbNaaAXdUPwZRQOelC_[Zg[BSQ=ql[goSfcO_GidUIPbOVAMO`mLLOiT[VbaTuLcCOP\\liZGgRZUsV^RGdP_PnR=VV^QVZ]WQfMdsfgibTDXXUhbG[QVWdlVeOHSXtYKXUe[e_OJYZoLOnrTTfemahLHOX[USMfb]PqO_U9e[[\PShKUZ@Zj`U`aKSggYjZNmMc_`[gN_E^SZ@GS}jNvOE^f^KKXSpfgWOccVEE[[fLTPTM@}PoHlUb^lN\qSei\l\dTQTrfJ\ScSDW\sZaYgdWU`Jh\VPC]XahTZ^NQZJ[]yE7QLbJVJGZh\itGdVUbIupBR^?O`Z@FmaU^\XCrA7X^nKhLZe_Z_nrhPnwLCkVhUl_UaWn^jOK]CgRVVLX_iTei=lSav]Ndgn_uXX\RNQAdAdlD?VW]TTiG\rdb\TSDe}TD]gkVNUW^^RVhSWHHa`A=mtkYInJUcjPWMCZVGh^mLRJ]ajG[XNPI\dVrScUKL\O\YURO[^Sj\HQGScaVVa6Uc_ys[mhXePETm>syLUaZS_UWa>9UOicXN\dVVdR:L[jY]MCcWVONYaUXjSPTYaeN_FJV\_EM`[ZLUs9odda_DfSfBC=IV[SeLSePKT`E<[ZS^QVUURjxdNSZgGQEOHWRkVi]ZcfcMuWRKbYUR`RSN}QW^Cf`h\dfNiTd^\YViPNPScWgOx@UMIURhD]\X_^FaYU=j]VcOJ]VRRLBXIUW[``xF?TR]\bHsdR[aVB]T_@kV[bO]Ia_nSe\adSTfDXDDR\etgYW^HIwlGkfESJe|NNMXPUoZ_O]J?JV_fT_s]FDdeXIbbINZ`HL^UV^]SgrOmKP'JDf;mOXFSWVVPFUQ[ZKYqi`hbhOcvm\Kbb\EAZQAeJkk]eQRM[MGIZ[RZQVjPXwnCNhQSYpX[YfgNU_seU?CkGUEeGKP>G\CJX^[WOmWHXeQPuSRVjSXjdWLNeWNVO_IfnqMADUFlZE;YNcysZn]eRYYW^jbR]TNU\MUjYVKDLMS`8OAnS\\TUW_OKQ}HGPVbUk]acXDX7X^HY_ZXVZ^\fFf]JYXfGU=hQCaX_cXj_^lWl[lqDs^U?_jc;\\CbZWZ\CGYz[X`PLTlXia~bUd[BTf`N_~pVfLVAKtekDSjdeXchMhSaZdT]edJHVFSRWEJcWRZOGerZe\dkPc?{ZqZ]UPIXf_VFR_MNm}VKsZHinFYO_FcFjPdZcPWoD[bKMO_RXTRHPI@mPhiMdLX[]ViWXlZTYkY\\QH]CZZJRhgSLZvV[ZyadQeOY]FEK|dYbMZQLRSX^SWJWbmFUt`I`nGjTJsO^:u`FWRLHjdjnSSpioKlgo\OTPpYWeeaZ_[>MDjGaAVU[IU=RkTUWJHjQVO~ifMdcJ^CuQuQsc[vUFYZWnS]yPkfapq>NaXF[fiFYOQL`RHWYV\LMLMob\Zq`LGP\bibIcieDWOs@WmiTOqKRgSAPj6\dOan>\8_sfHjYZjVffgW>JRr\`SaL]MQfIg[bXYslekTJ@fXflhWhgiS_Y`oQYSZTO@_lXQhlwS]ilB?b^eVZQ~qP\{WcScAcsKTWwDbi=L\cQe_c[gNcGK[gnRX?^`{M]bEpSIg{k[O?[mJKPz^`i^_;ysRLh9P]BGWRpX_^HK\V[]E@VOTm@Q^BJWVf^LEaml^RMhVUOeE\]fbXENLO`IWGeSRPog_g^IeXT[tgVgY;K]nPiSUKmfWV_SLPc^mce^[Zcaii[`ZRL[9r]_X[WPsboYQWZUOKA[NM]Yi`CcaLlWi][Zc@QYUO]LXMX^QMZUXdURMkwKhUIiQerM\[hIiSEcqShLWSQM:R`WEMCW>VIIFUOBmRR]@yfrpoimTUQdXcQaGRIO\qIDP_TQiSivVMZ_FPeQOL_i=NIT\~SFtAVP6WoX`wEr[dy2GVYgYUlPlcA\OHt]sFjWMUfBMT8KQ\Z6VhycGU]Unxdm^ROKGWDo^VJQGMQGPcKliMyhR^WFmXMUHHbCRU\rm>NBaJlOeUthKUiJTXxgKjXiQP^VXoOJjU+TZdP\LoVOs_pQZUJOVdh^fOQSiL@~M]dY>Zx[KLQa^wV[c?KZf@Ic`uheQY_MhMfcSHbH\`LH:mSIQCWM_QJ@WCSbMkzSWJROWSLNUvU\|RVjIC]RjSCuXk]`_bcTVVkjYqRTbkfg_IBPOsTXnLQcOjIR`tWaN`KWQTbrZnN\cPUDWXQHONZTl[K`JWteO]fGIDfP^EOH[iVw>dfUWN`VfYWPNa`]ToPa^SKbh?a]`LQY:`?ca@ULa`NMECRXnh^IePYHb^\\vRRWAbVZXg\cTXDk\dhUgSWKglQYW[NOiZG_d2P\HbLUf]MGrh\NHOe]_SLILOZLfeRQh\Jq[jnZ]^Lpb2VIP\dbNs[FQSjEJrR[VpV^eZPGWnOVN]VQ[F^YJXmDZP_VUURA[SRf;PcdGYTYHZa\ALVZVR>VVSeeFmd[nfGIXj_IM^QkW<[zQPQK`ikMROPQ\ceQI^Y_XW`gX]VZVQPP\LaSTJVnY^Z[UNWN]_Z\DZGWbiNZxe_sVTPaFGMkWAdeSO__AaQEL@jPFLEC]Q@S[QOFVRJTSEShyK]Mf_Vg\`SUHYWo3glApYQavkQwlP]I\dPNM@TTgWS[IFdOPaPkMUO~BhWhnjF[|}QRVtkYYJTMS\TWfZVrU]g_T\PKTf3[=lDH[LWV]bDO`]VvOt]G]k>ZQakAX^QUSb^AF`_WLdV\UJMRV?IEckDfYQUahWSPIYVNWYuXgcPV@QLLYJ^VZQG@^tB}oSYX]hJUgNd_^SUZCiUglcb|`fqKQQ]_yPo`]e^MaT\pRdU_PfV`KUTJRNRY]IZPMXSgP]nJVPV_knYS[Lilh]GmBWWPc_oiPkUA`{WD:LRMEdCI^AItTQSUTRU]eYXraT]cDYL4KQIWLH?RWkDjDbL]EofpBIKXuPWlhbRYOHddOXrBMoDGZKRSTXZHC`oU_CCUTG]]uZfMhgaRPBhlUXFFQR_Z;_Lck_\N``[YPrNO]biN;uRPYCZm]__bcTR\lhKG\ZQMqEa_RI^fFh^QPWb_`VWVVT~EKvbbwS`d`[UZkLmWB;_TkW?gFRM[aEFcAlb\UwPqISU;Xzr[XZDQVE[i|kaxA\JnD0VXUhQ[^EDDiJUCXdRGH\WdgXnk_YD`FlYNsNh\ilNPEYaPXjXZLW_ZbnbWNROYXSWXTAK\QM\9m^T\UT[x_Mv>69^L`NacWb]WbL]9Ig[GbXQaO`S]_hGX\^_DTZOZYTLVoXMQQUIZPRXqPXMPP_TMVDS[pS]robex\T_V\VLUTZ@OKZUqaPB[U:OZZYcfNhWT?i>htiLjWkfIBFUhcCZqQ@WdeoUVDLfXci`a[GVVVP|M[YqTPWQS_GqYeh@]LG^[X[UWOFLaNV\F\qzPfOU/Q__^X[KPRcqWWPZGy[ifdYYcHPSYbSNTkEWZPLfJ]Rx_KXISZEM|FMkz=ddeTT^S_[LHZXRv^ZVm\Y]G]J^UWRUV:G}[xxUN\OWX7bRZLQgSOTggNfVGNYVU[Sc\GOJQVeR`oL]wT]]YV`~WvfHxT[@WdSPYNQdsXcfgL=Xd,r\aEUZXSVeI\]xTTIWMRiddVSfx[iS^hh[W^agGFQ_SY_VXp]rDXjPvM^Ma.]U\X[RDO`SHBh\]RFEVXB[:QPQhSXXGo]GWTZHcORcKcmY`=\V>aQe?_IQ\cKNbJQajVMPfDHadJt_WuZ?xUvlNa[kwZk@edcdS_BKF<]BUgSJZcsc\W@\`ABMB8ZKR\R@YCPO|MGjS>^RYtPtYYGJ^XiOUFxQZcYr\HYcI_,cN^`RdXOVfYOMkmfTRcacVL]GRsylY^M\_XLT`[VYxC:baYNDfHRZ`Z`KW?^XWPRoT[dHcaTMYWxsDVA9YUCmM[e=VDuZ`M>MRdDD]NTPtm0Ih_b^WU[5JSYmiWKXZ_[egI[A[Z`?JCiiebb$QbQXXIGqVTHhR]HY_OUeK\Fej_c^YXHArPWG9R^RDQrbejZnWMYTgXFPS|SWleV_\QjWO@hI`m]CLOGalo``cIFuTkfOUgK8TbWS[WKA^jZ`Rt_]EN[SVmalf[2NcnTV`]MTcdeaNMR^UtZufU|TG}QRO6NYPfZ^mA`Z\7QS\HmjHFY@lIAZRGjtZYRUXPJdeWrXVWNOL>TA9]ThT^KPGQhSKZQCfPNVUtCb^mDdDN^\NVB[]SeMCIT^NWbQ[L@>nsb<_ULM,l^sXM}K_Y_X[d[]`^QNjjTbaHbQQP>HNh`bbhWEe[^RqYet][jNaNlRRA^^jjYQbSUFV^UKdRiiQ\kT^US\a\k^aXbPe^`[d[TTm]Qdx.oY_ZLQPMW^Rv;bM^GVK=OlRYhYpQiKcNJrY=c_RZcva_jj_\[_MLlhUZVNk`XOQ\leHci`ZOoxbL?W`]XyWbaLgfEFac\\TknaYEYsEkYcUqF\btRWYTMEXnwkGLcYy_WC]EoFMh_S`bW[_YLQcaS=Pmc`GK`_[FANCgpXZS_IRjx^dBNORTQUzu]gd=_KdvMR9_?\CC^hTdyVU[[fWWyVViZaUm{cG\eaHY]``cTXOMX]``[b5JdN5]XF`~HbRjF<_[gTRcc\[kN_S[RVmP^KSbO\WVf]Km^TMW]WY]TQ]ZcW^b_Ii]HCdPI@ScMSbYaLgEWu]z_ITR[ZV]kZJc]\VIkZUCE`Z=caDsddAx]_>dF`]OEXCL_ZT]TZzsbYYRYTuLU\Ma`_m;fhQZf[PdCSm_QeFscZYVU]gJU[geUAaIXSfQrU^RMc[dgqZUR[WbsfGoSTfUdRK_NBa]cZ]]mFamX^_Q[hR{??>W`MjBK~eCCWSN_mUgNEd^fR^[TSQlQFYK[MCViPvSLhUOGPa>UD8\aKT:Y^pIf]LhR\mtK[Oc`nLMd`WM?OQA[MShBGSEVo]6V\W]sNx_jiO]dbBdQKCD[RnTWVL?YlaQUKNRDNW_hOghLH9mLbcdHZCkXtM[gMRrQF\grhzl^W@LMgIS:]w?N^LPON>]d[T8qtad4DPIGlxjLWD]QXdYJCa@[ELJVUa^Ep]9HmZu^XoNcf[KM]LcLdSaLYZeefoUWdTSvfDfdUZ`_?NnQaf`k]lVdIjKakkn[Ya[eWe]GHZZYJVvSiQ^SRmUVE`CfZe[LUjVmgTKbRioIpQ\]L@^U:_TEgDPad`pLYyaaFb[AWKWjbbm\sjQ\jTRxsGOATZXQ_be^_N;SLVZTUTaWXOTBUp\k`|Ncc^_LY_NW?Nl`]|T`qXYZfMMp]_bc\az^_qgrA_\WeIm[Qckdc^cDRAMJbhS@XHVYlR[JQU_T_ICYQ\aCdmzUNWzcNT^^jb`LybDbi\J\XeWqTXGvUUcVTPTH]^8dad[mbhYci^Sg.ahXWFdZdpMHOyV?=fHLiiqLas\\]YRJCZPTVf^URY=[ESNQPcOVqaeRPXiQYCfQjRh[IM\_mMSboYOgdjShVSLWodMsY`XKXd]1P[`^UTm_kTSPZTIN_ROnFORZ[T_[YUPhC^U]X^MhcHT]YNo/{^\BideX\hglOk^OQIfJTehHLzkpQQngKj4[PWmzQMco0SPXCgXXVWCiENYNkLqpxKCcQ_^]ZO_SdtY_9SGSSWWlUW}MR^fTL^BVYGi}wMdGbc7[WbEYPTd\UZGG;Q=JfbfIS[WZVZQFYl:GDn_oy]bb_Q[\n]QwVgLUQhsY\2c:^`TdZuQ_cGXNaJPeGKVSICDEn=ZPYCMSL[J`@XoF_=BZ?hPG=]mIbT_^[eG]MFVSHcse\hVEX]QZ\?Saab>ekKFbSgQO\OY9QW\eRJ^eHCWqIPR>A]viQiOTcKdOcJWToSCpf_P[[>ChZRPGNcg]^M[VQb]LKaQ7ZVF@[3aQkSP`eRWdVVb;kO^XCsYq1qMVNTcSFgfPHBKIM>Agel[QYZ]hT_IWPkEp\UT`b@DkNJal[`XVeW``YUP\SSSMjgWsSIXCV\MFmKUd^`kfZGRq_PKFa`_Ifqk9KBt7fWaUfLkO`[nQ[e]drg_^VXi[h;M[MIYb6[_cPBLNeNLUmlubkS~OLUYToQnMZm[DbuOxUu;XxQkZ[^LXc`triNEbH\l]iMWtTerQ[kZFMhAv\VbWSYcjbZVkS@djOQURlQO_gNRVWQh>G]aQIkdD]bXfLadU_TbIDEzCO]`Rb@]~V[[dWcTVXAV@aGYVg`oAJ__Tw~P\S[kHYIFI`OaSRW`lZ\RYPeYXYOEkbFb:eR^_aD[]Y\`rY?uSZTeeCPVVKhHYINHYXgTjU}DGmkcT`MYvcYkVnETYRH_M^JOYnPalq\X\pYZcpdV>7\;SW\it`GhVhgaYjLe]\NYOhRF]4YX[k}OzTjFfgQO`SZ+SUS[P8bD\OUVrT]fHHYuW^h`thZWbLf~PmrPWNPPpYkOOi`=EYRIrESRcPn]NS_Po[oQ^ffEPVP\`Rk@hVaO\Da^YX^MI[qDNYPcstUdTHaYKVoGO7YV]ZoSYZ]M^H[iIMNxTtX`QW9eylfGrTd]WK\UiSBXdgBik`^UaUoZmaIQtdmFJKPo=ko]Ka_NsjMdRG:VkNVJK4TditSRDO[ceIH]L|UXXpVTCRa[KK_BfdCFPodX[Q:j_NHu]hG?o^JOXZmc:LUfPw]WKZV_]]i@qPHVdY\_JbXN]sOtQ^TojqdPtf_`ZsTEJOD?XS[DLKaXcTHESQGnWLRXYd^ezPdh;mrYdZ]hFPGWRnX`RSoYc_YT[]Xk^VThnJqd>oMVQ_\=CA>J_edOvoh@zXSnJykRG\dkbPhbZr`TlbW>ZcITjR]lh`X=fNTgbQVxvponzOVkReLXWND_IUl~Y\lgXfFvc\[7gW;cK]OAvFT>VbUSSeSvZ0EjLbYUm`TQYZSIZdFEaV^PD]rf[TSA`dI\VR@Z_bRX^_RWvIlRVNbMVKCmcDKbHmXnGUdaP[`>VPXj<^p]SlRiEXlMD^TSXkHTQZ`aj^LCbbVjXRTPMfLXmNGL?VXVSSjmE.WRg`dHJhOQDaR=f][0eQ]S^kN:SNIgIONMs5LJmpYYNcgKiQ]VeuSX]ZohPevR\E_JESjgn5NYX:?aRMQePHU?Vk@BnNHxi`JL>\`SaMMRX\>[BGNN]ZfrVXL[pn\dfQcHVfOejLRLIcSQR@g[gnd?bdS]OKVSZlk<PdFfLX>ddZc97Z\ES9\^X^tvSjU_LQatOJBCu4pUoPe_^NUgXnGXPCKZFzKGNQwD^@]CNmf~YisJ[wWN@WpUSrI]ZMeehFahkh>bn@FVRKRXNV_LHYJEkNiJRP_j\c7kB_UbYPmUKOH[JNSa\qIMZ?Za_NcHgY\hbmOBXL]`fHmJXp^K9IaJhjYL>V]VJCX@GERD\`O[KM]dZ_7w>[S`[cBTXFYQFX_UBH_QHNWVpVkYJcSXPMIRUOVE;mGmkJFVIQnZbUI|OSiAudqyfSn]aIPSYQgTJSPX\bXIOR\RnPS]J~NXUl`ZKYRbubINmxUc^_j:TXYO]apSOLlXc_nnXDwRF?YfSUJUPIY_]jROSY?V`mDTlSRNcZP^Ac\LG\OepTnVW:EPjJ]auOWYfRVMKDVe`jUWIWiYZfk=HiTGj]VT\V]hXX]Xy_NM\QO^Bm]RPhZPEXU`izQ:JcZa`?@\dJUR\]ViiY_fYaJ\bc]fTEtDW:s[XKlcQbZM^P|Z}Za`nNJ~[LLfC?kNTXwOwgLF>X\X`KNuiGSQop_mQVAK\`IXPOV^QEaYV]jiG\IfUMYQ`kBM__RV8FXBc^x@B_I_nPHQX_;FhWndIAaMkCzPRxJL_EiH[EUSjP\]I_VRMUY[slyIMDeMXOjm^azaZa^?RRCQG@OlRTKiiswV]NXVPN\JYSHOCMP?hRTTOc_Lh[r`a[mfKihcg\chTHcXbTRhd\y][XFFDNVPhPYr\RHLlFVWdo=dBp_MMlSnTIIbNF_XQehpYgUBkTZrOnsXc^>eTpXXb@dQTI[siN`X9RKJH^[SG_jK_n`FoNRfUAgadxd>S[aNVUMAXgPKONQZ:UFPN\TwZUeRpTkd`KFXc9Y^dcTNvwMEM>RY[RLLEdJ{SCOWgT`_`HraimF\iwS[ebkXO^N\RN`Ldha^`^WSNWKN>IkXNK^pN@`MX]J\IUURjURY\EMVmYUOdE]UXDKTXUga|gcWBb`_cXN`{>OUK]RSgeH]IgN\TVeIbE\WTZD3fkiP]6IE[gdYUR>mfgPOJQgMIaXPPaZWZamZSNV5VV=QOQ[^_UP`GmvdPse.[Ik?XaYPMo5CSdG`_tGBUbdRdVSY[[K_aR\OYRSYMVMTJLXkTcPn^XhBPbU]:ZTMnCJOZ=dM@H{[FdRSRYNdvbWLo`RVSIIH]aOR_bRbEpCQYTlD9RjTTOXuNG]Vb]lKVVSoXnVh^^TKL_zeJnWULYac>gVB-Y_YXQhc@YULkJ>:\{NNra>=SWh>j_OJaSOPPMUtLKq[b`lE^K[^Z[Ib8fYQ?UViDH]OwBDNRPQM[KVTeiRX`AMRlZHKSZ[T`>a{Iad_TedGPP\RPDNAMmer8Xdfi]\MLWNHfe6AKMQ`Y[ZXDjvdBlaVcbbYeZHjex^V@OW`RRxgs[UgOSRNWT^9KPDDJImm`GWN`oXfmXOLh^Z_3HYnLfMp[XkN`Gh]Hcz[Q\kY_;Jx?dY]9=]TSUhGgZbDreVEKJWiuX;V\aoe_gVgW[=qH^eV@NDVYfcUSDQSq]SlcfE^ST^9a_WSpPWbunZlaQ:RXROHhcFQSkREc9IQFY[OaQWRFMNNaDQroaJin\J\g>UTfF]TVAR~OKIFNPaS^RBYCQY\Z`cCa_QU?U^AmWB_tPb;3MIlsJ`RN\RQA\YeJrJUd^TToBT]MXYV`_ilQQRTTIcoVSJMQPFMcTAEdajER\LdZ?YPUTag^G\Tlc^JOZR=OS_=zp+G^]qYNg?c9_Yb`SgIX_iPpOBPcAQb>KdPAZiUYO+W?Zch\F_gLIRfnFUZXR\LLioP]mdVSU6MFZKTZmY[X^Z[Z69FXYjTM`ffYlboeYLQagaYV_MXCGR@PH\^;W]dGWPi=fPYiRXNo|@YK\EJCc>QjciYa_\Xe^rHGUb^XuNnZJVJl^`JGUMQ^fXhL_E]h\^pVUZT`]T^[ZUNVZ_S_ORfRhf]|N>\ZQkVtJ_fPOETZ[SeVL\TV\6dMRkK[Vis`;fkc`HbpMRMu_KQZZYKJQyIKnUAYQUk^9qd^>nXhOF_\UJ]Y`ZhhjW[IWO@[NFvBVOMOca]_USNTXkIW_QW?T_LSnLdqqZfbX[HXfZY]eVFkfdVcOqRC_Zc_CKa[KQ`kVLeUsX_X_}NXDqaRKT[geMKige_YTVIhc\KRh\TKGepRi\nb^vgSBn^TbZencIvB}IMh[_Q~Srf_WTSvXs[OPK_CI?fzUmGZ\sLbIU];cdePDb>H\ncIRS^lnXSTNTRFPoH\`n|WgWgjhhNfmOLV[V4IO-]]QcR\_BSRA7bMY\oNnbXkoSB]KQ]Z\mUJz]QPRWb^crWQa=~S_WN\qDq`WyM_k_GZadJIKnheXWVZOj\UkhXKJJAVv:a`haGbcUf]|joQ\L]mYd?Mq[IgE]d^URMD;mJIXVLCOw~M5NTjm_Y[\wSXoURArQqJ8TSNN@alV_FWHVAULcRWh}ZVYZik;u[YDWQPNKVAlrH\HidxJuQD~G`i_tGTEIMZY;NSf_KY>h\n2koTOdocNeMRv5HrD`[dlUQVbx`PCj`Qz^]jhT.h@[o?J~[VQZ>`[Yi9>Re@bIc;`S?LWd.UVhT7S6nbTdSS?ebS\eHFKubH.`LLqGOYOaw.zEnmagvbUTHg84SRQV^KM_b_K_c=S\gmfXx][h]H|j`WRL`I`XAZHYaWaN[E>ajCXbLzkNU]KRqP2BBYXrlS{X]^3\ZKDIUOjhoEPJgCK1rGTRwrWcbbYgDJUfgleNT\`S5`;V]^H\ePQenvwW@qTMBOIuLM_^WK\FYBWQf@OYd^WYEHaWLWZjXxs4BgaZqKBP^JpgYLdOjFpnP~\Ve7m[F@atGZsUNcRWa`IUM`TkOn[MXMk[[N3\XNRONe[Z[QQVULYIPXc`SapGU\EUA_Uk_Ym|3eWj@X_iWBOMY@b\gP_i;TSb=aYCkKN:Ff`JcE2CA\9PTBFNYQYbTjTLUaDQbeaZ@g\lHQjbi1NKZV`jffqUfH?OS\EmqJbCKKUSOtVl_Fl^V_YSXAcjEToU_VfDuHXJhdQU]LIgaZdwESSOD[sVUTLcX`Gd^EeF\X[Uq`QSjaNM_SATP`ogg?O\Nb^rZjX_JKegi[VSlXUe=X_i_eZ]IbChSj~?x`JW_hOqhauU[cD]bWOb`XZ]`VZRw^Qk]mZbb?Y|l^RSUTmYPq`N=\UDYETQTKbYCVnRFreUzIYTgR`]ja_KX:uO[ViHNUXXLSL^WWMvIN\cg][ViSfKkF=GWDUY\Qel>coZglXTrW]~hPaPVgtCqYUMJOIjbOuTPgn`WXXodThXGY\M9KjtYp]HpmlTIjptOUOh7dUU`bRNOr?X}JI4CvnLRgxmUoaY$XcLVJZPEnn@tMVdP[LiOL~b?^jdNrHWg@JvTvKaNRXvQhad]X[VZOSXTlTAvXFmK[^UpUYS_>]gdAL\YHIpVgHfW^U`b}aVVXZq~z]_Ifca[R]^A{]kFdGOOCP^V=LcZikibaJ`X\Vx>d7RcUpmBOKcVwXZa\dLS\gVUH=ZMK\mWTRcj][SU_hlnWj`RZ_fFcJWY`RTteXlB=nNT^GjSUaY\c\RXa^GkXhliE`=QSj]J``XMe4wk]W0YL~c3TkW\hMkccpW\e^mR;uYw_[bYNFsgSVpRXPs:`XgVM8`SXoYTYT6L`LgT^cNafAIEX`CP8j<`e]w]T`jlU`]cm[qPZ_T[bet@Sa[bNU[^[Kl\LT^Rfb`joQE<`=bScYeXOCkYefqO]]`OQhtZ\^TbURNUZb^T^ed^WUwYMZNMk_FYbRXK_oQTB>fSFkgIRPCllNSEZPccKsViZZg\f[[Odel_j_URRLMTZWeZ\{NeSpQ^iTlr\]9WVj[hQVPC]Z``T:F`HfuKm]^bUN_I]`\TU_3]YZdIPOhQeIMPY`_ejbX]U^_LdZ^KbimqRU]R\tZMjxIQ[eYSoOUno\CRWdT=kd`RsbKkSqX_VdfjDZPUQj5WajM~LGlC]_[NVLTkVpK`^iZYaGQ:VHjHWrP`bBVug_DO~NQL@9@U`XVb\MVA^]RWlNcLGoQkBgpaFfBBYj[YZlHObXnFtTXbEOWag\^MfeV^rUWJRMJ_[P\IKKZfT}SgBEr\WRahC\EZJgO2KKVI;JKJT`S\kheQYaDc[dV`]XMOSEFFOVSVPx`jicBalPEXoQby_^OY~a`?MJRKj[WRGNTGRhFLe^mRddW[[NLQ[P[eiHLqjbZMI>H[pK?^^OeadPbQhdRUo]GxhjN9\YZZNbZFoDIOFsfgRqzIGTePbGNtK=Y\qeLOw\ST[nw}L^s_cN@mh>SJA^dbIfRXvIDIvdV_a^^ZgQBAF`^pOs[Lehl[SJm@]XmV[cVThjLj\SmiXTXRYTeYWfGYGTaStZIDGgUL^YiCdi[egbPvS^k>URCQLsXnNFMCwOL_VOvLi^NXNMeSHPcZf_fPXc\PXYD7YJ@sBY\WeUGHFKQNAiqYd\CokV\lx[]`LkEbZQS`E_VOgOYFpL=jzR@^NXL;_{RXIXcKUO_ScWI[VHWV9rN?RMZ\h_TOd\mHKbV]RZRhtK]fPGc]^PKhkU_KgfOXkalfYQYaRhWCDGe>dX\HYYVD^XkT\RNi^O[aD_S[iaq^FKQF?WEWLyYO[_wwVgGF[Rnq`gfGkVCe^cxnDUcOQ`E^rKm@MCQYL|Wba]CrV^]WDC]LOUnWaVlIIwBS@sNZHSWnBYDFNHTJ?[Y\fgQMbIcesa\WKp_rQZt\bEVmEYMbPnx@[oOdV^eSpLTWRcWOKJM[E\FQVYcF]XWMNRaSc@bLoYcWYW`UleXTX`SQdVPMZlH[oZQAS`RWj]eicZwX`>drfahlNBWf^;MQaJPZdgp_W[V\RD`JcLQskU\SbSLU\PHQiTBLC[LbbZJhYmV^\?aK_eF^U]vQj}JmNYlV8Rh>JDnTNk[ZwGnYLNQR>cZXTQcC?zlq[R^`{[URTQqe]JLjaax\b^[JYMWkRqe`{_J@YtPOetXTKLOINPFJU[f_TR\H]]`WKn_NR[c[jPUrHI`JaeGiTd^LbWtDONU`BUjP]Ze]XVI^M]^REUYgTXKqVUeUGaDUwPTNWMfNUX\Y[SFbTQRcA~{qN?^QXG`gT[TT^Z^nMlnQqisCj]fQVgZGee\YZNUNhXP]YX`aVcr7cOYLQjnKjOiDcT]hYMY_qHLZd?VCYWaZUKVMdSNHAG^_WORYM[Z@ceXrXc]^aELLdI_NUStKDxT<|Zg`[WH[IO@fPSGNUZWxHU[YAKLC{GPcg>CYQJcRPEY[o]muIQFpAhII^^S\VfMuFSF5MhQIWCWRoIaYDhPYR:jUfhV`MOe\HS`b_YibAQJN[wTNgXiGLU[LcKVRPQBOpUldfh[THRbFVXbaU;W]\C\qXQQcNPj_c_KO_2Z^SM[ZgiFNdHbTVYl`X:NeZYQLdYENGTHiaJ`m[8MNUfavrSKbxUeRCD_idUUc?^KYWQWWVldScSTL_FVCPhYkSXjQpfU_aU]UTO^qGZIbx]ZjffhE_T|TcFawNXQPSHGIzIYf^f`WRbIf_ClKI^FrTnhe]hMMhdlH\Qk\cO[YUfRZR?BgwosPZWc}x=N>fo`NWgS\S_FOUY`N{L]EZU`NjRC\QVRSYndbb_du`ISei\Ouhb~QkqMNXnCoXUqUNp\R_NPYV>Vb^NQWbbKXLXJKSOQbVg?tpMrdM__FW{RRZb_cNZ\Z\YXnYRBcJOvSTaF`UXSQTLWX_zda?\m\HRBR~NMYNMZIUnBAg_raDY`QCWqaLLI`aF[M]b_]af_ROXSekkMUJYtWcB]9>gOhbBiCtRCHTKPyW[j_RbeLQ=`\LJQeaheOrS^VfmDUiKK^gOXcDcSWS^^pR[Dvie^LUTv]k`LKKNfgVSX^fQ9bMaYUsXTffo:OEjIebS\D]@PZLRI\jIWWW_dbJVVGTWZ\GYO][NS\h^_VTAPbNU9{adFnWQi`@OWHMQUVF^c\Kr[QjZcDHTIcO_CcPjISOgJPXNX?lc9\i`S_=}KOXLYRWk`O[n6RTdOkiaNf>SZqXoRejclFGYKIX_cvQCh\XVp=TibWIGgJVLXLTM=[Mrik^MRURPP[fr]dj@V^KJ]IFReuGccKbS[BYi]OI]MrW[_qaf?\HiRcMRMPNGVKV`kR[@_T`WK@d]vfDTZnG\kMnfrYhd]RV^ZR}UCzdXgfAPCXR^UdltT{GvbLUYgmMWfOY_VSVacVb\RlR^]Bg>dUO^PAJAlLk_\\FH\I_ifSMNbXepo^W9SVTgSg\fb]Vlo^V\bMGwuUfC}`dnZ_N`P[TYshP^UYVWXVxeiPhPQXiQEjqbeXFYST^\]ZKTQkRhedY[?MYTpqakmOEf6L]madT_Pu?Jdo]hgGh[]VO[dYcbTYZrJMaHGf]yEJTcG``djA`l^]|SdayUE]LP`i>nOMUmYNWChOjRANi[sPW:EXTB`a\JM^UfXGG`ejQoMMb\Uzk^K[a3W_WbvWcm^X\gTeU_Sd\QXZf=NLIXG]fM\_QMlUQBdXgSnKd[JamQUp__xFeXQ\lKfYLi^@Qf[dseRX`WWdWdDhPRbRPdGDeFXNVJcocJO^hTEE^[dCOf^]dPL_aUIXZ]_6{WLi<][QoK9ZO6`^MMMTbLRiJJKYqgzqf@ZFVa`Sbe@\dAWJQ\RMdIX[\^aP]@QQ\sx]VjPXe_BJ]U`dX\``PML`\PYGCPbqiVVxMRWaXgdZ1jWJYyMKMhgOg]rCMUvrVR_dHeaXcgEMNhmiB`bIRQDhWbHbgmGb[9VUJtXb[Y^XdoKkZH^RgqWeaMQfWz_iOdR>dJEZWTUXO{N`eMfF^_~k8JT^RDdQSfiQDOnoY^[H^WW\S^YgMhXTaaFuVhYIXv\N`CTL|NJLVy`8ULM_bYYvJ^wBcG\LZ]^^es\YDpU\N|]yVURXF^Exl_`\ihGbXPkQ_eVUGRQ^[Dfl]`X_WMV|i\WG`KXQSgsqD[I^[S`L`SUErdPRwg}MV\vgSD@FbIPCTFGHh~erNoUcW^dXBaEnQbiHevZLecKFZCZfmmDTVFWVaF|Uel8eNsW`Mrtd[a{fHq\\FYQMfjPNUqEc[NZLQL]FP[SQM`XLPmQdJI\SBbc1cQ[`OBGYWaX@Ufrx`rLg`[OmEQPVUaKT=WuLhFQ?6c^S`fKMTG]EQQ>JJJXbURT_M;q;HW]Kgxf9XEMWZvL]WRb^e`yf^M{]LaY?[sH^Fr_aBcZXIGNshTk_iiF`_dfP^Z^ErRP@c^nvWOQQL\_rQRiREkrThXXaL7[LIOIKYWYNmVR}XEUB\cYUgu2[YMeReVYU\d_movSGpUeYL]RxhcfM_UV[e=inmPNXzOcESQIX9FigUVs[[LmaPRN`S\mS4TuZK8ZO8KdMJ>ORemGVSGiimgYCTW^^UVi\[`TSH;MlKWW\of~OTpGcU`MH[^EJV[]9OkSVZI\[NjhQ_BKMY]]gSWgZ6]TmMSZb]_B__YAQruQSdZp8PR^OHV]VQX`|MODE\w_WvgUShXZT}J\TZjNI\T]QR^;];`^rGXNPpQbT^aQQ[ZNV`lgjbqR^{bJUCOWk[eY\=P`Yk5_`eFoS]mUE`uJ`bqK\\\d`JrDZXPX\SUgpBGcQKZIJPeoR_[Rap`5^djf;ROLXq\y\Vtbe]ZsbcPP_NX_ZZEZRRSJY}HrTPuuNQGL^RnYO^^^aS;ZSbbeUX}mXGa@dObPXZc[j^k`TBu]]\a^bWMJkAGR6oh_\ixRTPc>ghY]~ZD`NhQcKFdAXRQtj^LThRh`EodYhPxU[G9]ZYTlR_OhQsJYieCl^Xc[ZQ_ASzj^gJ_\_TVLKR]`ZUZkdcRQL@hmd^PPqQ]=aGg@Y7SXo[8aaEMPkQ>wNkES\U`p_iJeSWpI[ogegveX]<`_Pc\9?YG]c\QGO|lXS8g{_ZMNNXc\YQGhPBV\IT{c`^aCVndWN`ANHkcYQc5~yZc?f\Pg`Y?MdTLJbOKeXOeNZN\XCAIKSMYSX[`T\^[QSEWOmUU5TXUWdD\wdeTVOoTlFbrnFSM?g[ePm[MC\Z[:cJXrUTXzsVNSfZhJ?NV@^`hqC{HNbRRLOLZ\dTO]_RacO`PPSSURXZAQkdRdJVU`WUZQ`VSabJliQqGYGDhBMUfko\GBjKR^VPZWudR_]cciD]OS_cvmnQZQ_WHQFiKQZ`OGNPYgSialWWPC`baX8rNRN^P}]LVe[eKxOTRozUQmXIGWKp[YlQ`vqUariad>FHYbUDf]etcK\kaT]Y[WdHQ^tUV6RHZSllCG:w:\|RQ`^bSWDT`__^Hh]h^bbebic[njPjRZ_nbVOT;[JRiPFZ`bilNd[HWOjUbJBBdJYSZcXueS^V?jrXlT^^g\tUgYU[g[[WnW_@GOIVJP`VsP^YITWcaQ9Ng9UjWw@jYnSOnnYyUPMMiXf^uMaZBeyVPBfWkaZJXcUjOZ]ePUTUDjNeDHNUULD`DjfKVEVdql?JGiUhsTQf\?lX>5eMSObS^R9OMkXt8tJz[pgOhPPXh`TQEs_trBKq^T@XJsMeAUaOKI]KjST|WbVPcTNcJI]{W[Di`ZgXP|dJN<`VYoxG_]`]UOJgO@[J_NRukeTpLEP?ZDN]XjkUKhXc^OXQcZb^Y]ZKYa`]9YZpo8bWhYd_hmiYoTOXCbV3nlge]bMZTW[TRCSfHOVXiMKVSSDi]oQaoJCMQZ_9QWKEZfOgRsZd@VLV|_rD@b_V+Aa[YY`NVRfCPZDHL\lln]hQPUJHbLJMZhW\QiekqON\jBVeRkYVV`T]KDYUcVtb<^hXyYQ]lT]DKIdL\bS:VKzT_ckdnZhKw>XRZpGC@o]IkWdMytPiYlCid:I_^GXQbIkaQgNgMIZlk@eMl[cetmWRcQU;M`[ZwXjVP^iefgO^TO[QizQU@TTOAFk>mN\VCGU_d@aEgZJKwHT_du^gNIP^x[NvPbUB^v^X^EbcUamf:vHGr\r\CTn]RnQkObW~KV`aUIeYaP[Ss>DYOMOI^ZUCLL[J^]T[JdueZZWY?i^TbYZSq[OWWBIXjY[hpIYfaPMQ2a^SV^dS9vT\V`TjHlva[OM{TXRXhZU\_iZqfNpYEU_C[\N[gjZ[kaSA|[FeTYZnKazj]^XcgAXTuYbaZT>]UrL[vTgn_RIf^fmEJX`WYiVbobTjn{[Jg~QccZf`M~feT]tYHaj_\]RT\`MV[PkK`LORLC`IFXKTVYIXS]\I=hML^DO^OuSNqjTriZQZLuK]RS]KatWcYPW_YM]`WZQMKO]mNlciVVV[K:rN[W]ohN@X]\LfSi[dbJUZjbDSZNOT;YhZW`gmTMJpU\cVLTZTt>?U`Zgh_aXi^IJOO]iYSLh[SPUUBE^Mk]bDwWSkP`ZTDc[eelbIFDTe`STlA7aOQNebTUaZOiUZSOonCXRibSiuTj^eSfSZUXtJZ_`l@Wl:M`ITb5iKiK{D^fK]bP}dTd^uSRLVR|<9Q^aZa\`MNeob[n~gQaWaaqc_SJKWNbOM\KM\]bMh_nTRqPg\Na[VZRidlFPWKfefErWSWbOdTSW_cbb^a?^Js[gzT`cVVHnN^[UayJV^\MnuOWZ]flRXPi]c^TWMWneiAZSkXW_SWkRWRenFQbM[_bUOnjtdCL[YXaLHcKdP^b`m^PegAY_@PbM8VI_bkZJbVtM[OV`aYuwcickQtwU^[Kv[VT]bdmdcVTK^t}DT_aU\beaFdRilaBShV[?Seba\Sb]fSV[a^ZZMTjQ\Z]aQraaP\KHHNbK\Z\fhboVj`ZDTXVEvbpk[_\Ng\{FlKIk[pK\UTWPRHRcBedJ_bJ`IWf]TVT[hZjVgiZLj>XhpO``iYRSVUiXMcebn\YMRWW\fac]kUPXL[@b`TliWKKidTS]nYU_L\SX_S]MXenfNUn]OmeWmQLi`eA\cV`RPm]ZG^_]fZE>QcdCj^cpaiR[k]J\Sdb@IMYTGVSXma^\mQcjaTXmn@hDT\Y}aaSmJBbUdOj]mZeC}dfUPKkd?Yo]9RVcZ^aO@_\AXOTV?OV]2qMQML>_MrRAQ^RfiQR^Nd`JFVkL_\G\noLSL`UnWb]NRi_oh_G`Ld\yOlLPOaUf[RzhjUY`LMHg]YonbMq.Rb_O]aHVYYCS\NRIWdXDRHWoLcq_[eMTS\XnKvhOaZp[z^nJlSWjVPe^aRfVWroI]]R`Z\`\T]^_S\NTHAWORLXqVNxB:[TFWi[\?kP{c]Ocle`CSAZFJVVMi\YKelivGf_LVTbQVUTZI`XXjGHlcY[vGn\G7`e]\jM[XV^GTdV}mc^AaVs]YRUYP_rcLZc9ngALk\^RvLVs^fbOGYU_acQ_fHa@lUr^e_oB_LM]^Q8eVc:cAaTWn^fwpUgUSgQjeVUNYTjGW[Ze`YoU67i[FMN\VFnXTXQr]ZXUjSPOUZji?`Yn=S`i_=LfV]^NgNdSn;Zdn(`QVKcc[TpT]UXdd`FMKUGMMLZLWhTTij^rLWGUWd^[VYT\QU\fdOqyG=G_Oc5\TRfJPO[raQVGgML[FfTE^a0[fMWE|ScacQ`VicUqHRVFT_ZUbcHZYmBcVBnJRn[iM`RYNSSkmIjfYHYlVL]uc`Npf]aLZCALWbBar`WFNaNpTTKgS\?SiS=jURRJOUeGRha[OTRaQTkdKqldl]YqQdnV]VSXaXJSHZVE;`WbWnIQ[_dGiMjVT~b]VaoZF]eJqJpfekQWVv;?NULLrFaRXimBOqST\NvhYtc_f\DHV_NTQXU`Lp\E>i?h?gevNfR[zRfQMa^dJib]RweIgSdaNZhC7cF[XnLfW]OMiLJjOVzFE]aP^abMkPNGESLIOM[[dH[IT_c>OX_VkWR]SajYgCPj{ZT^HGX\OPBPcR[=U^UJ\P@Z7KLcdTK\\VP|dO]BXaKXRNbCGVlONRfPMLZfWHPfIV6BVk[WVUJZg^IaVf[G]iCcqHLU^\BO]D:c]HnRZIghaZj?_UWRn]h\HfU[PY^YoQaXXILH\cMVMYLlN~EZNcLrhBZVMa_c[VVcY^SQ@]F`SskJ\VpcX_I@`SSUcTWB^B^Da[_]OgV^eALQIEKkTOdLfcqI^JWIjROFRchOR^a[JPMLeXCdLYO8^kEVTPWKOI^cTeMa_[VaUUQVYXO[dSR`ORdX[@KTeMxZUMPkiOUCX^ZKZcrUJ[v`UVcITMNTJl]SfLX^^hT\jTLRi\^c`YD^h]fnjh^efIKm]^DOMOitWL[habWZqX`aSTMVWZUYWGqa\D^GaTS[a`lbdY~dobdPsK_TuXIKMPL_LSfTPZZCEPqpJ_YJHgfb:TPgYP?RWp^K[A[EP_MPC^LJM^VEjHE\tguZSZ[PMXmVSQSPoaO_TSpCbAe`VU_hJK_ISM\bXMUMPTjOYCfOYUT_KHKF\[B^VMTb_BJ]jRUPP\pceX_eNX\jAHpmApVTNXbU\_@^YGJ?VZ]N@iIKJI`RWBUIcXQPOZQqSOQRac[sj_VU]jk@JpPSI{jQq[b\[UAH\X]YSPIIUQ@RQTXW\UVUURcVW[ycF_MC[^LVYQTJR}clHB`HpKAla^b>ipOZPYST@MZ]WHXQO]KnQPKDaVGgs7WUSPWWWKCOTticc_UWD\jQ`i`Dh\Vg4GERVsYaVXGLRSB?M^nb5`pWS^XLLZ[OSVpURx[M9\`TW[UXISU2k|{Y]lWKQCU`a4OP^LAbShaCTEp\Z4TUSX:HQ~MTF_j\]YKCJ;U`>aPdIDURaYrSXanXhX`VlZOCT?e[ZVL4eKENbJpBJ^oHRInOlPhJMLSg_TcN\IGVTKKRb\uQ[TOqtoGBYqZTmVjA[Vu_Q<`D[NLIcMmHcWoMJf3Yc|`V\_a\ZXZC[b_cCdxCk1_X7^@]oDX\OWCD1KNUVcw]xKh`NZlbGPkYpKccU\WfZiaTcRSfj`[W^6IZFKbJ>tK<^E_4QWS^EddJ\lFZfVNqfQa_`ghDGIaBEeKXhIblML5U[RWOmPIRKZB\HUJ@WQdU\kOKecQBHX`JmLZg^ZKVKW\L\^`VPHTRR?wHLKMqeLLzM\Kg\`GV\gh[KadOxZlZ@FPQpWOCMIbS]?FALUml`kPPUUiJAGS\MmO4cVUTCWOLXTv`{Qa`eNw`GHZZbScXG_[gZgdW^aZPEZbLtAq^pOP,WCKtFsS`WfT]QbO>M;\LZTgJa[A?Ickl\OTSHCGGVXCUEiHRffVEV~S?R\_BMbMMNO^JiVZtcT]gIrru^Xa\T]faQHuSF^UajJgfFNUX[oX]YLKYVf\Smb]xeGFe^PUQ\7X]CX`mIHV]vi7NRL^_I\C.[[icw]]yt\WgKivYva\dU_ofjAp\Wcd^JaSLSI\]WfpcX\LTYXW[cdr]PTTa\J?_dTsREff\kNJ\MImWkiXqHMDOmvUf\TLMkb`\c^R`KGVTJntPP_UJ@]PC^`TK]a?^1[QKiZUKEMVW\Xi[]L`JUbLr8LTmQHYjnLYD\]gQ\i^iWYtHcOsG;zPnMBXRbZVcajWU_X5jU]JWOGFEiEhXVeHnUCT2ZL\ZXLFL\]VRULEPQOQ^SILO=nhD]IfMkKJ_YLPI6Fh_F}M0VQ_N_gQA^_PYji_URMS]_=fIwM^hC\IEIO]\IaAG\JQ?X[Y=pURtdvALGYZksRqKO]fDVcI<^XSHL^Pc>oq[[]GTJfZsacAOqVgKhUS`YVWhK9VwTIOqdVT]>dWiOeXrE]_gtRNS@s9qEROr?SOZVdkqUPFRdgGpVHcORITbWfb`QZP\\]Y_|ftYUZQ_CKxLxWTP/em9S}ps~XTgw@`tjOXSHPD3wd[\xVj9T^;]hThVonOUG^Xc`UEcfUNah_:lnT]iMnQMWVcSWad]uIO\ZZ}cMV_E];DJ_cKQ[lImYQBZXS_RTnkYhOO\D@YT_?NNSQRbRQpodgTQ`ab\WpGTbk[eWMgFXMaqVbiJ`pebBMiCVeAMgcdV`fgeiRdU`DdKHfQ]OeOTTkSFNdBP;[PMWcMJ^o`fIQcP]BT_K[z[[cZ]`dPR`FPT`ZQShDFoeDZp^mKXMEZXPc^XEPMie`FnKZWWSppviYkVZjCUUnuARVaH_JJdYPdu[[MtZ`bHs^fJZi]fld[Yod_THgfGOhf`EeRn7VQ[Se;hV_d[\T]\bpZYW\6vcSPVD=SdgQe]y]ZSPUb[hTaiNLFdYXNq^Ybn[P`[:N<_WWWOXdJO_k\iXcEuShPo^TJbZUx@MZdE?YHjSSRMbjVVYikNWLGjRjII]\aZlRIU[cG`fVMhTOXUPHIFOET?^TfvFNiM_[KcMcJYUN]UeFQ_Zp[mVSko_UhAfpVgZR`XYVT:XWkBURVoAbRHWYPYfLfeZcP[Qp_vLJUYX@dI[AKoEaj]VNrSXNPHmZmPCUeTUM[NtSOM_]XgOLfcUlWq9NciMT?TZGU_Q_LSiZ|`D]S`tPW`QZ\fH=~gKM_kXdLCIU\ST_XbYc`i\\F=SS\YFtDMNHNgOoWX]IUFobufkW\KLTSLC]WFLmPa[KE?WRnS^UPF|Kvg_;PHPZWQMKEUGMsQdAPJU[U;MiSyhSMMVTZRi]jkdO>X]fgddwWqNQgwE@Lj8XKblCR?B]]PF`^R-dPmUERGhK^ZQBUPO[FmjNePMq|TV\FUfmJS_KThn,IRCOEmH^R^TQ`rlRMbFFa\_n^k_s\Kf:mqW]SR_wvLVKdaSNUYfnkW]{fdR]CTPjfKeU>WBTVIZRN[vP3UIbJa[T[?^PccIPNZeJfzaWDb\_c_:l[DESKJQ{HezS\YkYad?D_aVMIekDWLsOTcqBTXFN^ZwX_fsSYnjuC_WaE`jI^JareoAjVhR`hMVM]chawjqHhDhP]TQf7SZbXMTTxIVDcQfdMTAbpOWIuZ;U]^XW[YWX^Ji_bU`QUyX}PTKO^YekTQGNR`[tr\K\eOKPlhI^VKM\udfH@ZbhTPM@PmRhVM]MwjhHkdYZwKDOUnPI?jV-pSyedRib^WTNlhX\*Cb\O[OhdQ;RXD_RPhKMZQ_f\Kf4iRGWTLZ^TbffIYslPnVVLUMe@[F=SeTlBOTLQk?RaOKU`Am_EVCWJnAJ_p_^aVQ[WNWcU`HR]IGpz_QznvrWZH_0a\QZMBVThaTd\PSY[bVD`xkN_]dcYoU>Rp4oRUOcaQHLc?e|[NZQTOlORcdkSjfj>DS]fKOuTSAwvU3f_\hPwcXMcbRGPObOhY\\bgdSLgYJ]QQFQ_6SNPLXV_RaNWHKwdJPnbf[NG?QTZKnaIaRN\Gm[U[O[FdXNTBVaZ__cTnSIURXfhjwUPP_U:xOQSUgPd8LWLSVHgUXaKN`V[bWR]]:NVQdN[fXiZEY[uKg]]GPRkZYd5`Qfa]0NwYIo^MatST6XM]ZKSjk{^HnfjZZXMRD[cXF}_nMRJZFNCX/_WK{UnOHHkjmBTTOKjP]YLYbD\fLqROHeXGSSp{PtbaO]kRX_ibYDU[JPWYXhHSK`P_MjdPpXeO]RSdXGd_NeQ]pOZX]hDb[`]gBQYdU3_nPB\[i_mSNHa^g_b\YKZJHWaYtedD\_KfvQhtVBhWdcUQ`KIfYhU\pcUOXTMa^i`=^XOaW`NUFUTSaW[fJ`ZNf\]^aSd[LaTIQRG\e[K\HVN]]]R{Z]fDNRDWGORrrXWiULfV[xWbK\]ZUT[EoSPIZaYDZbXvk]V_\Y|O\Y\NP`u^QERaSjcTFAYFenZNFOSUVbbi\ck]la`UJ__jKOJ^Ud;]LUYXhhL]ZSPO\J[\k[IMiqfHTJZFLrJiY~_NPiSZUQ\im_r\]ch`NS?PkleJQLhOJ^dobS@dmeM^RRY[_XNZfJ][Z^MOZf^TSadnH\hUMa`H~S`hBQFHYscHThWorOYLVfL|dl`Ji^Gbz`_WnSiQnkZfbRpujTYIQeSa]b^\[d?s^L`UJZ^dQZ[LlNOZRLMUTMQpa`fNjd}UqeJp_mz^GGw_LmZ=JFQDWjaSOjc]ML^F@McjbrWYI[OLXIYL[N=fXRk@dbHTaWIT^NbQQUMqVZ`VQ[mPXnXmJzZopTKN[JbLQOJbZYA_^Z[xhZcNK^a_bpVIqJVlIGQWf\V=SBabYdJnTlihRVFp`]n?GsD_NFLV?NjT9`LRWVwbak}YQBr{[Bx\8W[eNpFbTRRNcLAp\WZjUpvZ[aj\UiXMTXc6YIZ^XpsYkLV?Bn>kZRc`FLjeExLPDS[PRcSY:AL`jOGag6xd]q>DPi?SIU[diB^bha_gRZ8BYqDSPVdb_QnZk[LSFLXjJ?_RqYq;\}KSa?oI\HWLOAULW[FoRQJzPfYNF^hapYCXSZGe@TV`AVjBlO^|TRJXLUQ^PWsPJMxRWV>PJQg6QXR]BPY`>K\Xk=jhH[RHZVWURbZTW[Vt5V_WBgRK]ZI8UlPiMRWFTXk{WmbIR(n|~[bpSFc^YT^nzSYj`VXSQCMT_PjR]\T;KKZWVPUSCPYIP]SNKtRNkQlUm~BrYZBZ\UpZ_ZhT`NRZMkap[>CcQ`bRWiBVfUKXbHXH^NUiY[aP\\MZ8\_[^b>`QLHPV\KaoPPEbV^=gN`nQJYQgYKPQaPKhHiNE`hGVcUREMpcrKodCUhPVZ\pqXFMKj\NuWQ[]XGMiCKVbU`_PQ^NgdgbYRig{V_U\PH^UaGjMSZTVZNZZXR_dXc^7SY`JMskMd`EI^\PnbeejLf\hMIPbCU_QkiYhS>QUV=ELv`Goe_Ah\Df^_D?__nJWqcpVI:@AZF`rgR;YSjOFVt_dP=E_LOWeO=ZRSQO&MNZRh^DP\bZFYMZdnkpYj[EO[cd_JJ`]_YkFdKscS\]}]^gNfdVbK]dG_[18P_nOZGjR\OvRY[PJeaW`fp`ZZhCS[_<_tX\ZlOOM\F`YII?VRkCWUIkiIdVE{\lWK^ve\RPx_d?^KikBE_fMAPDKC8YTQLdFJ-GWKp:dkNZZWnPZRO[RFRHMimPX\d{f^d^{XQ[amVSNRJZ\eR\lPmbLFZ_SHhS\cr^Z@{KLMLURub^LhJ]^EWFSROtFCbM_ZReVQXGfKa;Za}_B_O[TRfukQaRtpjNfdQfGwLO_`@|jyoHY`Wi}NLjJ~JTIYHPV\XIII_C`wgPWoSe?QfZL_pnf\JLzSuKRUnWRtRSarOGQXuSUS`]_a~]TQzT\eUZvduPW[DO^dmRRMKOT`S\O`SPLaV?XYLA`eN}UTOULedI\^_U[fUWZV\ZW_EcZ[`Uv9d_Ne\UutFaJbZUSWLQus]Ba~hFN\YhMn_\ZVUEWKEW\bNsVaosKWNqfhe\a?jmiIW^o\r>MPPNVdLRTHCbZc`UsdR_UOQUbDSbn][KNo[fTMwb?M]`VYa\lM{SGFjXRnZSYqYMdQVQdcbeWNbKOaUYZG;JhZba`;\B^9IUxedeDnWr_>QaNh|a}3SfaCbCifBJO]]rBOdh7IfF`BRqNrSucHwOKX_GJWF`XQ[K]]UUKWV[aUPMA[lFY]JzGPIVRX^\OUktILeoHbgkVDRCMnYR?ufUZPtmJ[NpPsPgr@EaJ[jmpQ6=heWJ_`6?SkkDU^VDK_?TZBVeJTO@gTsdYsRXP`VXWnRkMekVn\bt`YIS8]]S^MXkhUYdlTk`O[KemS?FqMU`\a?LNCfNL]DR[hUaTO_DYmb^paLXVr]_YCMeG_jU@\T]FR^\Y]TTTVV_OT_VfPUlGT`rvMSTZPadXVGcKz]FJh^TIoIOo^}bF{W^]mSd^ZmHSk[HUAd_WALYKjV^MWMYAbWZbUagVPs`M\OYZed?Y1ecQLQlLPn>kG?NDj`TVJcFNb[XHVHQ\RN[KKV>Q7brXN?dS^WYeUB`\VdDbXXeMfIe`^Ro]XU>YZGPLfKXgfjC@cTXNzeXUqaWFpNZAYTmqULUb[[L[INQaQeZm7bRWXbWLUJiVV{ZnIM_RWOGn]iK6mWMaYKA_VN]NMCb^vOaPoOpeVrSCiMSnXST]\bKiYO_Okj]bXT`h[WjtsWN_`OEXZ_TJyciTXUgK`e0KyWVbTVlbUib`gSDvSY_Y\dUHMQ[VK[>_dU^iL^Z[o[VXB`VMNQA_VShkmOFiHijfrh[\nYZoBJiLcYXgV_ggOPMOa]CWJN]TVRWWR`JOUB^]WX\GEi\_gEoFPHSLNEQJa_WdP[]YKsor4CI[qUaW`VdWETX[XMEhMY^WYPdmxlgRZFa[cHkB]sEuNYgZTUUcnPJFjJ[X[TSa[kWA`R__jJcG^JxuUa[ORLceXVRdmx]YX=LWQRLJgWZL`I_ZZ:KNSwV^NbjJ?mQnlYPKepOa4PY`kN[brpFgeM8O_ZAlqaMM\X_MPJWPNocFWEKm_nKLYOWgva_QVRi^jlgZU]|nN\PTpVLiruVqd[|VU@IaUP}]apTYBZk[GTYFmRSjiPIfWRZ[W_gEQ\\gOM\CKcOdQpUZRI@Vc_fsakIerQ\YwRRVIGWDOU[VlV\HMNsMaP^Gkjt=MD[zDI:`HQWsl[`r\LcAPUG^RcQaEq[fWLba[MZJ\V^_YrfYIW[Ug\Q\ecacKeP^XoSY]IZYpW\uWS]`CTZmURI]c\\V[XNt_[f\n\mF>WTD@bXX`tYH[nJnRLQmRU=qMYidSsVTHWoUn[USUV]Rsycj]c`=OWFWO\Ejn\=_a\TRTcI\XTBZBiG[tX[dbbaLO[Phl[C^~gXAMLhGPJwcZSeR\BXSm`OT`KYb:mLg>YQ`hGc[YIR[dEgTSkgSEw]eY\Sg\zJMgZJ]SX>p[_^_ArZbHnTE[=Wi@oYgaCSZ@ULOW_]TYvCgFUWN|K=Ga\ZKEEDia[lJgR^`U_MWL]dXjLDJPE8GQXKOUIOLYXdBT?^^^e`Ijw-^LfWLIal@L{[?]oaOlwMsaX9W_Te<_lYPXSXRG``L_\btlITtbdM\O\ndieUlR{ffNcdWlm_D]n\CkYlfkVjp_?W;eYJYhAqHHXKqVhJcXiZ`\`eOQaRWYiYQcI`;`KU;ReT/\JgpgZ^e]PVXgOFRKTQRXdmS|][kW\_XpoPfH_b_ND5JiOYlbLH=DlcBRF7UFkkDi@bjo\ZPZLCRC_fWqr;UXW>MB1^VcU;{l@fXqJ<^]RVfWWF_JrVYr_UnmUQjXN^RXdFyk^SJE\UxWUXOdXSQKS2WNtUxWP]TzMUuvU[[>TEJJ~LdfgVCOXY^FfXoWhUT:YM`GwLsRa[;SiN}a\PNynMGVIE]V_]VT?[NPR]ZUAje]=uWz]c_lXVDbT\fJQWOO_Q>]KA]UB\YL_UOaM\PnL]U^\RcOfZQ|QaNRj>]_QMJPK[[8ML\NGM\WkjmQHmbNs\EP`DY[7HRgOQMC]a`SWywSDoUaX<`ST]^g]MXBH[XcJQZUT]jWLMIbmTChffNVjdG_gWK]TG\\b]TSIdmE`S=H^|@^TLlRYbV`PMPPU`YOf`\]eoiYGyE\JW`@Fd[dRbLZQcH_ZC_JIkIYkA\WgNKTU_jMc_a[N?>e^IGQTVDJuI^DO`azkMcNe_dQZK]K`UbPs]OKTO\BHaCPZcMPL\OTBbmPah?F|fG>ZjedNPqaMjXJ^pY]Y_RMXKFJcTeJQ_^PNfr^iHUIYaa?[uvSa\U^kUbY[aTRO>\MTKONNcqV^Q`Ea?hU]PO^T^fWS\`VHNBU^gNJWTH`\zcrEbG[JBTiL]_bMgd``]mXXqcCFSdh~hd8]HZ=hUVVjWc\cfUU^]lPaRpj`L]4F_eP:KTLHAIod{YZck\lsU\GO_Rj\jQUc_V`Ng^zeBYng@LULJjMgfSnGKSn5R_kI``qM_WelO\JWemNYmcSU\F^Y\eaaXk?SJHOYS\JJWWtii3\~W_GL]\_r>JrJMKOWoIpMIIT`YXSLFGThYl]X_aHwZgVNgNX\L}_UpJ[`QBNIj[9qeeGh>\RS]Ma]pNI`BugQNq.[X\RESD]T_NqDXKTR^cY^O]EbW^Qjib[G4CO\]K:klamV]`W\U=@M\ePUdWe9LLzeL\fFB]aje3OwH8DnZ[Y[CcaMLkmOSW]BdmZfbMbaL]DoJrV`TERDSXhhfSmf5S:`yWn^VF[TRsKdYee.KXl}cP=@TVcoVD\9eGTiF]J[G^\RDU^J]g_XUBqWKY_iV@dFZfj*XwRJEpZDerW^ZcUJE(@@bEBFHLcfe[WLFQ\oWCW>Q=h8X6UMU/NV`P]tK\~N]d\RYRINGZZTCl^fJaFVO8pSS`z@_qDZlYdJVi_`eRHVCbiHZK5UHfnT]`[[cSZWXZC]WYPmDQ^LFqMIWHYSN_hYm_Xi@_tiYUQPmZU]bYC\@aH?:\rTM>FAU_RxiMK_twYWShVEtSJMAJcXpWFucQG^5PYLWiVWIYlfVToeiT|?@{NFUNRWVl_gGOQVJgzij[YR\uaBNWcTFP=:4\WPBetj]FcRcYNiNIhaFT5fNccHOoKD_`aUU``J]EWXTVeMDOCcnf_Q`[7VQiLL]YaCqPXdQtfaP=QVbSHUFXfhPQWSO_XUW_kWTROJUbVPNfGHYgOfvAUBVbKnM]JK\lOQ]`OZ\IsK[eWbua4Vdb^\y[RdE]8`KH]RRibXNYldObDDYK[`ca\\iroCRLZ@HNIYZeJXhhePZWQH`S]^fIDaV[_INDG>ANYg_[Q]SaUTXnNVUHMK^[RWJ[U^cGyQfUJdJ}ZHdCS}wpKeyNZ=XgW]cYQZfnG}GSSZ`XtdOXOFY@bBeOIbfXofm]LVMJk^HP>E`VG=DZYE`PXT[_VY\VJO[VLgbf_ZaZWqeU>r?XWWTT9u_G{V>aP\`jkQdeX`@`iHc`icGDXdFlP[gMXbPEeLEkm]cNt\h_UUVC`\JjZ[_S?jMVo`XSV7c[aNd?S[clSpWpa4XgGHNU]SV[UhKN[gW`>YRPW\G@KLjYrk6>Y_NhVKSPboqPF\hYSbMjyXa_IOSQsVpZ~Y[HQWnVVRMVYu-vWdTb~NZ[NXK^7sVeKUQn\Mz[ha_6G9QBhQsNmbbdJjNdQP^RiqSMbJUVVcbPIZnc^XDaH[V^asRlfW`tWeiXUOXnTpTRbURWWPOoMTg\OcMec@O>fV;LUU^fTVTYNEI[sZuHpN|RsdJnG`UC8aKaOeBiJ^k\V]^fHCVEMzaYe`WCt\aaCRTbLUY[]Pi\`VnM]VeNOVs\ZcRPYH_cOLmf]W?BX_?`\_gRViNaRDAS[~SWQHa]PXb[N[La_D^q]8ekYqajPIPoQ[oPNR^]rbXNZXD[TZ]}`Av`MCBOGb^XXJo/O_NIO+U|c\gsrQRp[uWa`[jTQg=[UEFYrRXOQYI]^cZJYYZKd`jP`]`ec\jgbKVed}@EMISeUYU>kn]MjNT:BNLM]Z]gNlabWuWw[aFfWhMK`R?@kG]QZBkeWJeM[TAcORe]gXWZ]BbkRYZ[CyYgiDwCN^ha_B;Q[e\O|Zo`w_B^SRiTIVWOndmY~RVTvMZ[RWTWJ@\XQSRL}CqPWYhfKNbdVR`EHMLAld:MRHF^PV^STM=\ZWHRGb`_OgBSfY_QQR]\p>KPgn]scVOnU^IdbhSkTV`zLZLqAfeAe;YVYXNdFCGiddshPBRZqJTfnS2`QYbG?nmSXlO]v>ROSsp^FTf_N-CLFko_[IpfKo[]\H`RcB=KNJNVVXVFS[WY[TkRRThq`HUJN\[J^RXvMLtn\MF\W_]ULZbYia[_IDUZ^;fZOy^M{yQOAHnIHQSXY^qalNgSZsLk\OYDLSZOK_JOR\kQ;cVIWZhfVXW[RYIVYtPPPf`gRZvN`K`WVa}Xr\`OYbmOdPYoKJTm]TNH]Rm>`pbTIN^@Xh`f[lK_]VqRDfbaf[odIn\ScYR[XfNJbZldGdc\i`GeOcMUmXUVQ[UhJaUf[UOAeSkdGQmq^bf^sQWfCe^_h^YXkmIKFnXdeg]SVbga_Z\dIONJo}TIejbNrhhdaT^\YcWOKY\m~hWf_ZRVQKMjVJcTO@HlZFYuUmRqWESXXmgb8jSOQPOLTDWV?S^qbbbQLqRhaNUg;JqGfV@YX_HddUJVW[>_SI][[e\\[McL^WdhRMUW_yUGagrYXO[NJRufd:VVRHlZZ}zhY>Ke`[tJiGSRU;WBIcfYpHUmaX`[om`\TI1Tc[\OB`fTGPfb\ct@U`bk^RTC9GDY?\g`[\WOBf_YQLZfKFkplVZWb]FzIYlSb?fQipGGTdUZS`\Q{^QdijR.Gf9FGZacnT6pJ[OYKlH^U`M`^j]_M>YGeOQML`JzHXNKIUEfSgZ]EOb\aOVVaSXEZMaKNe@zdGb`bPgmgfoiYdFYY*K[`\iVX_PEKXZLbfWKSS>D`YOa=YRTaWWesOrQZ`Rh_meTgUEHJY_LHdp]HwTOfUkXxrV_Kb[C_SUTljZlWQVdANbdaLTxJdYhE`TYSVbHS\IV@CPQjUVQK\cdD_eGRcIiRO^TSXW9\LR[ojP``gU[NU]`FTUdcfWHSXj`^aeiwWnM@XTOcRKSVPKdTZ=CgdpgMTWP_RPaTRQLXONHc\_]7^\cbWNTU\LZ^Y\caVZ\QWWWPn`TEYdQXFbzSO[fFKi>OUTGZQ:ZCd6\OHbSAWP[YK5hd_;`>a[bwbd@TPnAhVM`^edTH@RnaYd[cS]TM^hmXXHR{\YPOJNUen``hX`NXUdE[aRMAMcMjRW]kZ`kY\]WMZ\_hQfaXPSfg`BZfVjw`QydOVQAj`kSfZU]^eXFQJeB]WF^Yac^klg^fM6UL[Pc|]mlDrGdmTDnRTjYjVRhSL]TkDmXJTA]CNykceIJXSq`fdPbq[Cse;bp]Q}WEO]^f]XAVgsVWU`\clUNUbHUpVk[B\O;RX[eYsM[YfKVX`MuUYCw;UVm[`Q[`>aOrUSdY~HSVakNiHrV^[^8ge[sjlaSY[\Z[LX\ZaYJ[XcKXb\Vn8]{ccQSVE^SnlkWRie@VKKUTL^UmKkagbfIF[i_OYjSo_AN]fXHYRpUVif\rbhrSNFFOy{UbUXXUwXcnWO\hfp`XeB>RX\iQ]WY`]PEmTrKxb[[FQ]gTF`]EbHVfRFeiRbHmd]YKAUj_Yh\_I5YeDBuIgVR_rJI`OOZlpbPEHT~Yk\pcUW_ZXKRQf\[_eLQZ]QLGkNcQIn~_\GUmWXWd8oS[Lj{GJEpT~YGTgOiLQlUwTW_VMMH@vvQXIOaS7JWBRW3SeKBLlHm~iVe^jK^YqbYAkPi\`IX[NaK[SZZXPgM[[\^@j_Oa^aXAYLMXm\`ZUWUK[NdlPZ`QzS^S\olWVYjQ]_fC\~LZfXafQrAWbi]uZVQg[SJtHeJVRqoOZpK@aU_uu_^K]UZqbWeVrIsTJZEsHbXfORgWYMJeX[km2fEhh@hhaVEgLrUWS\rtKQQg]VI~oCGOgWWUfiwGTHUk^Vi^_^JVYGasJR?ZYm^hTeN^ZZV5Ib\Pbj5JdVgceL@[jY_I[TVehQWPLMk`qWP[cG^ywuT\NW]WhGQgEJQa\GIbXbQWie`elUc^ZS_YYIQe]OdLTL`HQLMbUeEeW?TXNU\hFUAf_EXRwhDcFsMfYYXgqZIELGHb]^cuYcWbM\XYGT`dEYuYfFNLV\VYeKZdCQO7M_S]XN_K_Qaatl\@ycbNZ]E_n^R[LAT?G`b_`JT?VjXOCEbPWm^[UW`EjiPe]^\XbKOORKaRcZPb_>bV;Gm|[N2V[ISr[JPSZQAhS[SRRV[aKiI_Q>dZuWSNjJLtiM;iuBSEZm@GIe?YlMdSeA^OPeYnXF^oYQ[RbcbMRXl[Ci_IaQMQc`eLC]_UvfLCZLYdZcgJhdBYaMLVVONl@hWAfJYTgNW0XRGvJm]X|HaJV[J_LtNNgWXk^fKa]XK^]Ggi[[MRUmZopAu_Y?8VH`SL^UmJUgoS3p_WWNGOX\OKtt[wapcPQNNaaI=JfN`Fp]mSYZPlJdVWbsZhGTWmO]Z>tJYQvH;QWltOQUXO;GoBSOEPdFAUpPeqaHLPP]JGhH`iVNgjVTHXoPH\L=x[HcUucVS^UR[WFgfeLBxVSSXTgOvRgYLYo[`tZ:laQXjZjZh?fTWZhJ>E^_VOpZ\ebg\sIaE@]cQYW]e\YL?ZXadj=W1a^PRjW`l7bTYcThPQcKMBX`Q4mhUeUPP=bRy3XT_XWNnJO`[nnXq[cdkh`c[T~XUoXWr[M5y=qJ[SaTqY]_S[[c_LKXPUfDi6GlEW_^xW[}qRX[RESVPaW3nVlW[1TZPi`SWLnGUXH\`_gavXXWOnbTL`UcVcXEhR]Sw^cTE}Jdq[JZnG[DPnreKnI\bhraYKHlT~IZLYahaQ9aXEsm_]lkARnhVcA[iLtgYFYT]FakUq@Aan=RhGQRUTVXb]j_Ddb[`OQ]fLWQN{LihN`pYe\LzG\cRHsUd[]\SgsYRdfSXcMSNg]Rss[PfhbrkqWQ<[uVoujYoX_^^csYG4LVHHN[bMFaNYiZ]XM^V\Ac]jORqf7@Ue6=ZTjLI^{QuqSG`AHaXZQ>lPHoFScU?^hS]r`^FCPXwQaKjRg`OQYa@z__WjNAWTBmT[MZoILnUkD[YMFPWZS`pXRMTb\d[X`hKbUKKigZJfYQ]RvHQhOfL\MjCcc]M[]KGff\\bMaGisN]\egUg>SgUNf>O:fRQORThfRi_OW~_ah^hKN^fUY\QM`VZS\cTwajiU_iJMF==lcNTYK^TW^a`GWqQ_wKmMlSUP_Va^CcfWPUihZVYoEc_P^[>Wj_S_qTYp`PP^[CUeaXn\1[dGHUHBqWl_8vSZCNsrbxoe3ObY]g\XhIvaPK^Ph\Wzs5mEYibTMcfaWm[^}j;ELU\^M^[;BfUc\T=MpRYZFLRAPUcEoZiBSLKSxZg\TY[JheJf@Pn[j^_VQ\Po~\VUJaaRzWlqWMqRUXLjnT[\_:J[p\`KfKEZkQQ)bKd=QJJ`SgRZcRX\G\OI|LqnR7tFFoH[Y>?HeK^jFIoQ3B?_WkH^`IBi\jN7cdShZc@LEJK[eV]MQDjTochDG~gcOhDY|gJcyGKB\PZTnQ;F"AGEWUIdAVoYTi_RRefiH>YfXqJEje67WfKNXS_CL`QwD_[[TeXsTj8FQVIDEUhUPLYtWfZVROe>PQ^FU_IV<`BAdMeMRXFKeVz<^QUWGb`QU>MV>oRaZHP)]KaUTCTC_OEEe=XgUtLlxWGVPTIXItWzcV_/ZLbScXM^zK;KXrSfZH^x@]`SiTT[QSzlbnmJi]FUZo_?oDaOEa_m]PU\`xKV\aZ]\[_j8meXHWqGaq`HXKW^LnZCn;JWWO[PS`DUJaZbO@lb]Vw]x`Vk`JXP~RPbxkiMfVVPLc\vjTJjZSdXh`_]PtEULOOZimhfJc8DWjXThrCaA:e[YlkXPdkNdoZbgjdH`N<`[HOgcP?ZlQWY?Z\^JcvQXUTihdfmEjTkfHZbZdcpOqOYuWkhfd[XSr]nnbpvRX[nmiNY\`mjmSQS\aYzr_k[a`W`[SHJwWptj\iTbdUWI[TOAYQwf]aVzhYYz[fTQgg`iRU?qVoIXT_NsRfI[LHcwTqWVr^BHe[XJ[_[LJKeOYOU[lbF9hiW_QG\dH>L]M?OXVWgYWYkTrNpncPRVY_TOSVe_sXpShXK]AtgV[Z_ZV]]dRPH>gdZQqV^Cg\b~Ce`IXsADNz0m6Vm\c7]HRCZN@PiX\fE`sXbYwUaIa YMLNRaUVR_W;UOZVDRTQN>fMYRZA[LT[dKhYvZRsphNQO\b\wo]RXS\=rfb8Ilvi[BJmbB>N>T^C^EI?p_O^ef\e8Sa[c\XyB]`L_MEmYGMWK4\UKCF[1GV_K\cgeT^bIYHR]ufVUZ^HYEQSRYnGm\HdA7bUJR@U\K[_gHYkJ\QV]GGW}CBCVVENS\>WfKNMgRMWgDL\_`QkWpU*LUTQUSKbMa\hC6x:CmZU__\]e?mWNZuTZbaFsmPYiqVNlV>^6HLTy\gCIY\dAQPesM[[Vl]R^TLNIWb>`vhdbXloIZ{Rvik:C_JHrbibdHMZPLVPMbjKm9\UOnFJW@cWEDI`jw>TYVSMZXTWUWZDhd}Wq[FpU@2;LM\XEc2`KFvqrYfYOMqRf_BOVXmK_WK[XFF^X[cVMVoRohiOBOf4X\aVIPQ\NRjJZ_XVuyCcH\VQeNJ=H7O]?R`\W_iO`JQMKhLPVazdCCZ7lNd`aQfIQk\TGzkAeR\kKHW`ESh]c;PAU\UFo[Xcb_cP]Z\kU6tLXWH_eW`YRkM|7iMbkpcSKhk\\x`}XQd]NiP;KG`aXNWV]>qQM^JNINc@XvK8TXjOZXaN`@YoGFGXKVOkQT9PhdTdiV^sFtNyN[ODYQ\Qdx`QX`JjgeK{~jjsD\S`NDO9W[XFtlUk^^lXHHjbe^8Ceb`YDePiaL|XMw]YbMWLqOHQ[lRNm`Q[WXfkgUWWY\egKAj^fSMYpEHTgWXJRYaR`ioV\g^VY]BIWRbQYWT]YL^bAPecR;UWQWJ\`STVM\[^ee`t\UQa\PS|y`UYPa]EeWkKqOYUR[`ga`[I]|VuAo]Wn[X`dVXq]>O[^aWg\MMN\mMyPY[wMh\Z_beE\Li^e\SNbVVDPm^BOOel|V^`cjXuakmaiO6ZMnV?ftQZl_YtdHZLqKMCUXCUbf`Px[SncGJJX^R5XbyfWThC]bTMrNSenYY`QhmYXZ][QdVNgMpNiLhaf{MZPWoqXU6m^]sbucKR^KWDhVPKQ_eagZS\WWKKXKvheFcVjBGDVTZU@AJKH]`lK9XkcoT_]aXLeRg?OSZ6YToqTLZdeHsHS[_IRu^`XdYYjWbNZoR_bL?\g`Xb]cWXXU\TMq_j]euda\^|d\X[dJQbsbRjaXglXYI>gbAkVcbcioMEJaDGKO@NVXVEWOYbWDpTfMR^gcYGaXS\XN=fXBFYSU[kQOPnhEMgEDL@kShWqhR]MXVYQZtFWPNkfRnlEpKYKYdusY?TRYXMY,QAHS@`N`|ZS;^KU`YMaSo[uO3[UKWQIRdjh9RNXUkKdZTQPHSNYFZHoUnoJm`xW_eJmh[NBL\[YsFTV]YkQbSpO]cihdL^_V\MShLv=Q8GLqC[Z^TOliW`YQVhWWe7dVa@L;fIsfSRpVH@KX>SXSPQeVeDLs_KRKMZS`]heWB_PrK_|Xcf[T`FLGOcXYtESTVeb[mSPQbS6QoerRNAJtOSUUL@G]QU`s?NIWRZceM[VOWD\6Iu_r]T]MCUSXSZMOYtm?UNIcQGWWJO`kSnEEHgKmM`9uXSLkC]GP@TQjbKvbWQKIhIY1F^]^TiYSMcXSPLSaS_LdVnVeVpIPcE^^[eZ[Wb_PPP[b`ZL\YEgD\MTvw5V_VEYpsVrcHFOo^Ld_YNUsivW}U_V;TZK\K:\Y]U`CPIa5RWPV`g^gViUMAe`kdYZJc`]nacdksYTm>aZT_KXT?Denvc_iMfu?G[X^K/\Gs]\dSOTaiUQiTcyJrUf7B~KVdqe[LpnULd;TVPTPlgoTR>UVW__U\VOQWg5i`Sd>EnZLKNSnAHWUiUb>rbfiSTORIZ^SSWi]\^Vsz^ZTaI]Rf8[dX]SQSE`OjM\Zso\oQaSa]X=H^N]^VJv@bbItJOZKc9m]Lj[}fK|ZbcrV`U8[\QPD_NVlgVRdPbEKIA8b:\JJZw@ua[2XL^`\WNTRe>voXZPg`esVBT^V'HK_@t\nqO]ajq^GGZ{RO]iY^hMPUfKPdLIUOcTQf^bbjPpPRSRO^q[LGU9_HS^YIQXPnCeQ[CUNiQVfEcQUZ\bMF\PQ\KT`hbQwW_oL^VaL[R[WShj>LcGbHYXT^KMlMQDOKNiePMQGRF\aH[]W\Y\iZHynqJ[GMrRJEdW[N`LTW`Rsg\q_b8VY]cdk\z]ttmH[iRT@P;KXeOpcQM^NI[n\@_lM@ZgmCyDjh]_gC^n7RSJK[AbHblZP@]__U\LVU`IZwMXfsf:FSd][dLbVWRMhFY^EHPcuE^X{R[cNUIOkYZ\NRCIoHGNJZ`cB[i\hY]acWxJ7faipPPd[WgNi\OIVb]hIQSN`|UTj]_QhbAQgEfm[smPmKp_iMnNn|PDVte`~]\MNZHhrgKAd_fG[deMR\XLsZdeI_lI]ZTOoQ`GA\tZZWSNkABBQcZCVXjKXHQ;Hg_h]VdZW\RHxYSU_^rFjKcGTT^Ohd^LeHcVWWVY>\[\JM_ba_q_feWiRUkC`vL`_YiXNNcWP`UaLnUDHZnUcaUDnf^JS`MTKQC{MZX\^h\f\@fIHULRaZ=]TOgZ\USLm`UJ\b@?cQddHj~e>I_X]NIVRbS_hab>xjUehtOWkBJ9I?ukNWMZkV`V`D[ZHNbd`WOF?mPYCVFTTTEOe_\u[RXN[YO_\oK`RXAZgdYWGUOhtD\`QfoiCRdD>Q]_YNMqrYlTlNPFW^PEvQoN^idnd]YTdplU^fPMKqT_`^pNY]OU\eGGHWYNbkUa\\YuW`J^PX]NbSCU`MXhcUlPWOe]I^6P[[gkJX]ufZXb_]xaTNZbNB^YboYWFMsS`[nl]jNL_TjfUQmYevTeBXi?TbHV\bWG\UGZEHV|k]jOtZJaLx3bfd^:RRThXSkHM^SP^QXLS|UWT?aailt_VbakIHlcYiWeQRQGWMb\PqPL^JNKaZTbyabP_\NgYKM^_?MvX[UQu[RcXZp[ocdPjMJSR|Dd9h\mI]MjiJVF_aG__ONcWVncKXU[G@XPNCeWRBZfVXPFUaqaAbbRs;Rv^UjUQ_F[bOkUY\cnL`fM\XEXZCfHkLSPKaoPbMcNPNhiR[_bbA_YStp^otIFJ9[\UL`XgXmVB\NdVeO\_jVxeN_QbMeZhM^TN^MWYci`LfCVikSm]uQ>JvJc|VRYOcQ]_Rj~WTUZWLYD^kZI<^HYQIFeQgdO_ZE8Yn?Q|SrfVaJI[G,BJIP4\RZfJSVOL\X]TGjLJSMebR]Tz]WQXTM]WW[ZmUJNfcPZLrL_j>bHYTXVTFXJaULGW]_GTKWUfqaVe>CVTfNiHcd\UrlRdW\FHKBLkK\G_iMQ]gSQTgiTYU4S\[VPH^\eEchDUIaaSKPLQPYDs|_fb`_eMZQbi_ThXKhupeMaWXqQNWEZTGYZsPcUFPTVZIWj[e[ZciXRIXTF[a_gUoq^Dp6XS\UZ^ggjItZJ_gIcXR_WC]I?fLGFXS^sQLm]nhKPB`c8BjR\cdZWRHNNf}MimCsKW\KMXWGxSRR[\eQ^E[HhmXWRRQrYkQbFJifI]CZENVa]mLj^{J]c]NaHmfMoOS;gOMHReVH@EE@oEXMOOUnjB\W_QSp[@Xksp9D9TeZKP\Bs@]t]VTLiIP_LHL[SeaEV_Ya_@XINHzDRd]^WH^GgWSuEld[GZVV@YTQ~_UZo~x[dgUnJKs`QQL<_@\Z`wPI\R^ZCkSoCGV`GAkQ`[q_QQ[HaVUkNfYHiGtWSNp_R]ZSbdUoh[nTe`nTQJKSbc^WVgbd@lQRCKe]nZyM\b_G[cP\Rc\ckMQcFEYFUUIJHC`VVRYnV9NdNafnij]jKPd:eK_REdfRfO_ZewVRaaT}S\JVWdnUP^E\GhdJ[Wl~c@YULZNfUiNabXR]VO~Wc@MfbHDLRuogQ`rUZOEXZb^\YEUT[K:vHFJiNDcCYNKoYWPN\GHQPIU^Rcav\R\QBVe\zO=I\NXcdU^XcB8r]dUV_`czabkWVPHPzJI\VLYN[^LOaD_gaPzcdOq\@VyaXLYnxUuQGkSGTSdTLbglTNUYHnj]GXTW^`I^VF6[Pi]Z]YIU_C`jMfNhS\Fl>lUoWQkHCbSuDULZY{kLbQcXSSaV~[g`dXTTaN;YLOaT5SbseZ_UalUTmZZWQ`MhciqVZe^ZhF[kaZLVNAS^EUzYzDPTb]Mi_]rh}h_VAjUiYwnVH`aklbG7YSeoNao_O_WBmRm^_gJJ{W^FOTkdgiiU]tZa@l^_QWOOJ`AKk;G\psMdXdKep[[fgWIa`\gQNsI`ZdWZ@lM?;l6?|M[frM`AUT>ggjQtXKXPFcTtTZ]VxTka^Q]^]Mgoe_@`6`N`laOBWZH^\u]]SkXEVdUW_FEs?OMT`[QkmjYQUEOpT_,xXaltNP1[_P]IY`aVJ_fa]b[}lLSRIui[DRenDHG`QOZn]`gPAia_jRTZEW_NIPYFSgJSMfO^C_AGRj`n[OJ_DWQXjFeKhVBSkpW]^pa9hVUI>wK`UIWBfURqKU`RKFa``Rhaa=QkWPKZ>HaInD`MHVANg_nY]O]bjZPEWNSW[TEgE_qPNDIZZQGD]jWePgVeicYbPfW[]I^cY`ZKYCsUSVNmQ\QTRdcYQK|YNzgT]KMkWOFQCI[UVWIKFZJePUfSIUIcIhOao_Gl\eePNZj\Z\]UQv^DNBqYPkat@cj=xhxTjLMZ[XV]7e_SaWfl\^hi@LNqbNrRXSLgTT`hU[P[SWjlhHSQQ\]DHijl_vRzVljJfVZOW]UTjY?[[e_MyUefaOT__MXFsgni]pUb[LbWIMQiM`hJRl\QlSSNW;[?cPGAZ`SnbDMaj^ec^iN`_]CGJfYMFqtKBN]ZivvSDY`nAWIXWS|P>_UnYof_hWywLuUM]bKfT__RSXQZgIaR_`QOgR^`SNNn^kPw]YbZTuCa_\ONeX6TVf8KM[JXWeXJ[GKvXOAbGXRVbxOEONOe`Xxh]R^S^sNfbZTw\OsETexWH`FMdXXXYo]MZaTnWb[YPQqcXLR\QjhOFbY@[VYZE^lD_fT?NOT?l>G]AW@>JQeYIV\VTOG[i[d^cYFR]ZOgK`aa^xRdSV]a^X`ZlMJKV`Vs_OJtFa][BaVlnQQLVIQ|bO^Iaf[crYa`LOZhW@YoGc[ahhS9KmT]ZHDXZ]OwfFeI]j=JQWIS]Q:ZR`SRTWa^Qf]tQhbedYYTPaDNYnNBU[hZ`bQXUNU[XmkYOePS]hOjN[Hec`GUkZfWXuE]_UNG^Shh\eYIE]QXSWSfZTJJQZfNNMe\QHWZQQdcWKnbKNSZz^LS^fcgf[K]IQJ[OgJYTKP^RRpOIfHDj^lKxJkqRSSXrsRlXB`CQQ\gRe\^_TTS_ZZ`[{~_kKPT\bSo^gMrUIiYF[RPZXMZS;_l]RY[VmYBjeHTlwJBiXZ_KYSHgIYfWIhRPZafRSZOaMYZZ[VsIVS\qoS^rTOpe^KStfWRfJOFfXSUYdXbMd_agKZS[VMVOSYUWgLegOVUZNgMOwNHtYNVQkoWaJM`RNGcZQSbfsjtH^FcoPq\RMPKJQeLb_adVgvcOP[NNJwteK_YFXC;U`MQg>TZS[\aLRJ^]mSAZf^~n^U_OZC6kWm_`UiiKVYHnXTx\`L6YbOU~hDTKRd]aIh^eRk_jXgHP`c\KPX[n`^nXlXnZJahCfAdkEKVV`qYXegToVZ:HBLoPZ~u,ejWT]aVeBJoGLhF]YUJ`Qq[^XDD\m`FipGhYXThXlUL<[S~dlVT[KZ[kSNQ@TW\]]GCPrBQ]CFTWN^rm^ZXUCLNNjeUXalP`V`b\bMS^LSb]oIYOKVfb^YZdSeeGbX{VTVXZOgbeXUM_YXXLmJeXWYX@IZSfBP@QHXkX_YdbeFPQZPLewPw\kI_aYUdShJTM_RPIW}ePTZSmVmk[RgjX_mgVAdV`m`eXG\PRdU`PbdjF[TbRMiFJUeNUfy_NXl[j>\UO]VF]C\Lj7ljdPLYkdgQJNMjR[RP\pSOw@^bTFWNhKY`TZh^l]i_VSepaEO`ZdqR\OVaTPSP[Jgf^Bga|dLBjERnjUb>Y[hZ`xR]GiY]XihgUOKZNNU`g[Ui^H`KW^LYHIVYMoJojI^T\U=aIiiNWULUCW_WeTE^^YQeWHlf:BMTZ\TaQTo[oogT[YPdXXAb`SK\Me`ibdZY\O[gZ|bAVcTsRbIfLgSifSOLOoBmTQxRY_rJWI^aRWrK]TP=ViMVaYyQP`TR`WgaPcaL^[RKFeeMYTyT\YWROMQPIxW\MimNT_`XeD^^_RU?Xc`KfWivVWMS`jNNb]TdXE}B]Yj^id@4dAJeUaI?0IFXiYL\W\e[XfHWU^^AQHEYVY`NROWGOZ`GU_Oneb\HIUcTigQj[`hFiLnaHVbseYATc]Z9_bTXcZgIeWb_@sYdaoPmMJXXYoH`G>:ZVZS^`PSPcIaTfo?[[bQag^QeVg5fI\IPudMfOZl[SiLmYifk\I[fa[TJLjOVeicMONbWFfTLNNN^g]`Zffo[CaYQQOPJVjQaC^Mc`gBPOSJoS]ne`e\TNSBWNV]QXK~bwVXlTi__jKLYS[\p]UgU_f_K\khiWn[TE^XlPkdcZ@ASGTdiPKMPB\^rcNWK`L[^aHBJcV\^MgXxU`Ei\LaR^jXbaK@aNArXSU^EtvG?[nPJKDUe]iaGOW=NcItKhUgLTBSF^g[fLchaeM[[R>ceLIGi]YOXS\xQJWXDJ`intWqbhYWWPA`@LVFVOlcWh9aXX[bZncWP_wUjVPTfgcV[S_\zUWEbOXY8[=V_o;KnZOoRxIGqqK`_LF_VJg`KZUUgg^KoUfM`nf]VbU@AQ9tO]FAHRhaqX[:`[@`Lb^mae?[kVrWvn]EEf?[PTDKiVQ\sT=LAMJNXHjkMKDWV`ZDHZcaITeQ`_K[WK\RX=:NcX`fMmVYZKSfd`PJNY@[ybPPOheKekL?Sd}cFm\aTAXKR_fQ{IUHgK`]H4SaKLUIbTho[[sVsPkIDTU^^[qd^Ie}0+I^N]N^\^IjN?nrdpilJdhW[GJ`QXAPnXhpIeIPTRV_G\SlgbBPHV]HHTahjFYY\RFaKkvN@E_R5UF^fUd[oWrSTYQK?0\R]\WUcNIbVLWQBeZgWVN^dC1J^ecbD>VUQBUrJkZ]RK_JYPy]_QPe^gT\E]@LFhiCUtLNdVJGP]doj]GFWRPQQc@ll_\BXGVElZQ9kYr],W\Sqgt]Xn]YZLWPZrWF\oSe]P^n^P\@]LUCLkWWJSd\d?`SKDKpf]Hc8MQN`TrZpXqa`b}QEf^Ld[YUVGRKSQVU[TYTY^dXEX\C[>R_L9RaZtKQUSFcK[jZTVOYWMg_KsemP6ba]}aJRZarXXaXdR[c\WRia[N8`cRE?caAQua[Sa@Vm8BKo[OdYHGfPgb\qYy\POGPe_UWLiMaI_{R]mKm^rDQ[H3\}QgLKgBaDoRQZ3XETJWj_YU>^KQkfu^_FGoJRZ^aCTF\fDHR`a<]]hXeRHWbXTEkqa_WS_F_@aibO[Lqh_SDpRnJI\_ukXZaM`@sREJOYcIuoO[Ua^lfeT_hPwKdU\^[stoASQSm[Sg>jKoc[^u\^^biLMgaP^KZInaGe_dl]lPdn[`aW]eX[FnCMRh\_qKl|U;`QPgi]M>SOUSJE_I~[_ZQ[L`x8a=WnP5S_XM_]J`KUUX`SNWMdLbWRisXL|\VKGMglODNaseU`b]b\^kYkFKw\Ue0OWpfbj9fQqYnPYhY@uKbY8eUsSVT^8MMUXaDeQK^EkS_W4^[JQcVYUmMtcNaSYAXVMdqPRaC@Vehs\L7^{MGUYAcPHVcQo:\TYhGUQT1ZcY4S<\YRNoTFN`Kq>]YbRqAPZkVSiRVXi?}RaQUKcfY:[OfXVYfNHQW\b[dWd5TNRZSZX@N\SSgAcu]TQX[J6LQd?[ZhDrTi;TIa\\ECU^cfUPOd`K^rY}GgaK^H5hci?WPL_[KYW^Jn?WBUWgk^x_adAg]aCNEi]PiHd^GZIjNgYZLC\saGMQIkaNIWWQWLGPMZM]]al`PIWWPSGOa_PIHsdSPRI?cRoz^Xp[HZ]OOaP=ZHULR?ZI]\[U\MWcXk`fJQdz?arMT8GgXBt?JUxQne_dWkI\^`[PUXqT]Kp@iWUDWE^PXS`oTRMFciFAcWK^fiUSk:RS]SFhQOU^UTbmHdoPHH`jzHMBTQdMZ^G@RiQt[PTnCSVQRJBrVYngHWS[ZXKaow[iN]MV]B[O]bd[N^YP]RPAMfZJIUZ^kWhNgSH_fG[YedQ[OZ^DM`TSz^]^a;gQHZXRZl;\dJ`WRkSP]\T[X\]Yu`IHhkORZNWJoPZb?gKsSPc{\JJeT[Y^H__RYAYe[woqpWmPaD=CLm\\lY_kZU\VSYkuTTX[^H;Vsh\^\TV_w\Sq`fSmW]HddaJIv`AaPQmh`KUeNhV]_WfQZjCINUTERLioU\hj`PXRe_L\SRWhV[Y=fVZSqTAdUQTBaLeu`Lh_jK`H^W`]OdZUndSg?L]DPV^]ejsTfJV]N[oZO_[OkfXZciY`]]Ljso`JUUVr^X_tCfU\UcUw[cAYhscb_R`5OOggPtOTFd\ku]^`kUUa`hSq\TBFb=OT[LN\]SOlnl[[iUqgTb@lpYM[XM^De[PXWlQDOgf`ggiypb^jYCQP|kURIXcnCY`JTG`[GCMVW7kjQMq_TdZnZZq0RJebI_`QS`jRKZZQSbWbHahFVaQ`Jj[IUkdRheDIl7TiJd`\W`X\QjaOF_H@H\s{RZeJjXQwfW]YzVeObMVPMFVSUMcSWZEIUQ\WbQGSmUFRQaqchcU]gFrM[aQZj{MGYCPQ^@E]LQcrJPUUl^CM6bNAnOeTZSRV`CYS[gZb;cU}UsGZDhTVV_\~`Vue9BYZMUGliP]Ul^V^]Mah?pHRT_KC\VjP\OpFOGN[baoGxK:JYCS\UXJYbmWURdQU_S\R]aYK`ZbEJAON;Lce0ykbTYfRBWFWPIj6_b?ob\_bhnGrUrLe`aI[wfQv]_M[_jN{epg`xQ^JWiBETgdCYe;dNop;R^LTcXJkyd`NUae<]m[bPdWZ[PkQKkCwa^bTaQ\XZ^RbgUEVEZ@\\VMcK^DLg=]EFUaLYJ=Q\i5zOMgGycPS]XRmi^JfYSSQRU^jaGggiS_`NgFMYBPbR@\GWPE]SVfHAXiYZhWYqbQFZmQiiOeRH^LZF`][_VwSC8daD`W`ETGGHkJX[RdS?Y_JZOgNJV:WZJQq`dg_DeSWVO\D`M[[EWdGVWXiHWRdBbYHTj?D\F_^V]G`WfgVWTbOVLZRGAHjLI6fX\DYCKRZx_ia`La[UYIFDQoFea[KNknWTyZIpP}]EKSHRNg[[Il_N=RcWpvM\UdG2KMEPOUhwa[BakYXYOTacT[\bxTYV[Sz_N[GX\CZpTekf?TLSUckjglVU]\KxFlOhMlVq>Xr@id`jZoiNjiTV_JX][NVFIXzbca^eIRLoDRDXZRWjfk]N8PL[[RWb]pg?QmOHK[^PWI]KTUR^[DRe_Q^Fgtfl\FNjaBvVnaB@cTL^lsTapsXJ_OVCNATx\b~KZP=DWcGhYYfVVbdT[ZVnnu`RIJfKbPbvSAWOIA?SPHCX8WVONcpT`WHKQTWVaX[I\NgFFuI]XY_^^uohe_RvZn>STM^Z[O_F\[YDlMNdOSV]p;PPZpMXbcY~SYTffBseSS_4ZjYdlT@NRWdIeeNrFWULNKeIQTIFQtZLWD_V^WKaUUJYhpPAXvFWZZZMNegTb`OHPetjhYrKC_PmRFXaHNZNRYOXcMha\VU[YUOM\etWYUX=HJig[QU^QR]Z]H_HL_AIVm`VrZNV`WCYdI_VGQDVlBcMIF\tcHU^XpWSOUrJNYHaWNKJVIsmOvRKBEdjG~TqRDWdX][jDk]IU\\RLSaF[OHYwY_Qk|FW[RR::]MPTYWUK^eNtKOM\GWaX[YOMd^O]iQVUjbS=Geb]ZUZpaKHUacRdQbU[X`PVQYTwRXlfDkfEY`OTmGgWliZSLISSHPBfXGRW{GXFXrWZKH]Y[aPRZAR^XPMVpdHXXqOZpXgSeP^SVOUXZJU\d\StTapUKnhkZdXRpg\OQ]TZWTZc\TSMWvYVRMVn\XWxIGefNQSVWNd]VUYs[SVeNS]KNGUlAQUxI]pMZ{\exQRVfZiOd]e^_aOKcC^Qfk\`BmlhMOgdXY^U{IoWi3sQSOUc`n^NmppJ_dXHPJNZWZ]xVXI_v\fN`OYbwa\hJR^olL3QZeWPVRqcmdbWSSDSaXDh\LzPmkZXdSE[\WhoL\QVc^G_Ypl[RZUd_Kbr^bRP\YGZEQ|UbUbLadjlg]Q|mSBHQZUAh\[amtjWPfdUahbR_c`aYZZXUMSRUZoTTHaScrT?]M[`X[[`XSFM]dWkQT\_lZIrebXOhRIZJ^UVPbQj`ORi]dNcZX<^TIw`@KKRJ=Zu[\XfWWjAZZw_]:[e^QgVWnc]NRHelhLTSceo?q\cETmbK;kRjDWOYL=XWWLOV?e`_fYY`X[RLW@mqan;R9ZeEanRZZ[i_I^:^Ah\XeZ]`RRF_UPJZRQSO_dPn^gXODfY]dlEC`CEb|]OnEwjf?VMR^>L[XLSO\Uh=T`mgRHdKPKYahJDk^tPKOfRd@aQ\YMjJFJ?>RL]eHWcaQnfVURbLSRgeWU\Sc=lpkDb[ASSLI\LmXT\B]IikK~PSXeanUaeVJTfrPt^NevIkIinGoe];U~_{VVdVVuV~ohBR^PABXTaN[ifNZO_TkWhaIJDQb^f\=R\_MzcqbfNSi[hYrNEM`LLI\VSJYpFM[BHi`RS_EpkQWaJ`]WL=vj[Z=RM^y_VxX]S\I]rijXOf]lb[YVT_SEccQDTdakRt_WIwehROz`gDvB{EWjFNaUXMV\_nd^M]7gkdT]BGeZKSRhs[EXXIIVP;eJfuHGVcjQ.[lUUZN[SYOeVPPxTE]cZY~;Rj_VVB^cLI^wYTtSJFOM\XxmM\eZa`QPZMJTHw^dGI]SJhENRXH:^ZChmTVb_T[ZYQPFPNLbTfJYJVVgaahdPrdYRoIrIUXeHdXZonPZ`Un^_QRgYUGabZfUs`Pccf^QIhYaXRTpFZX[\`ZJLzOlddXNWZSbEidz@;XnjXpM\^OZMWVdOZ<^TLKT_WMeaT=[_HVCl\S[UbGDEkNYjTFs`[JclaX]`Ig_bIXMSXJa]ZJfnOXbIZ\vexIO\][ueVFewTj\Z_WmAgX^QTY\PNKZlfR\_UhEhSKlQWiaIZcC^fPZZpQRdVPUYLHbPR[aBP]KUVMQprel\eO~Vx^IO_ER^FanWWiiUjkyG;[ZqeV_nqZ=JxsbaKjeOPj]`gmK^dfQNj[KU_sbexXfX??WqSaRTG^P^oRYNVhsf=YLMVPbT`0RYUzY}iVyZmXYIgCU\1kXbO].iaodqNfUs:Rb[NY7\P`LVO\TeUH[SWjOQk9VA\[YUaOoPwNVQe>dYQkCQsJ9bD_bqi[JhbKKgJb`fG]SiX]IobR]sP}UENPUQjYYSkThd^N;JVH^CIehYVPVjZI^bLm]SRaXWbPcXH\YLPgq\amduCgNXa^^nS}vkcOLbVDZ^hWW`>]RpKcRAg[YLTH]qV^;iS[ONXYb^`LGKT;eRXoiQ^Zg[FM]daEfWrg:P`KbYZbQQWWhQ\mWKUN[ZXIbKPb[bOlY`WF\W[`_nU][cS_GeVhac\ZPXfXiDhhwM_wLnCRXSfsPV_EZMSFoTkVPAgG^QEeX>|PNZch*j>DX^XI?\a@beW}VCUTIbbNLUJXOYSYGXJKZ]Xj[DRN[XrZdAZLLdHVbeeLRQY\RHTikTAgb_5TdeNNq^W^f9jUraWq^zMQa^l`NhF[cJ]fjFVR?`uXfLk]V{S[R^dQkTdlkPCzSS\]e_bfO|P_cc\F[U_:uPPyjVH_QYe[Tfy[UEUBIU^lg:RJQCWba\{ZUR=AI``J9[P^\eWo\HYU]RHYQnQx_lOT{dnK\SFQB|ONKzLSsF]]^TeYugonq`dkJZZkOLYjUKZKe_e_Nc^|Ymx\aWFWOBIMdWPuYS?eWRUVW[aUYYVZShV`n=eXd=dXTLW[KkFYOTfHlTUVr^U_Rjg^Sj^MFTZ}`YdQKhRWEcQUuP^MLN\^[Lg^[QJWafsSWWFlC`IgFYiZK?AdVZvf]VQQc[JkdYlZG_bZMhjW;`WFDTPNFe?ogTtVTJWiTPwKd\KFQYXNWabkTPYQmPZ_b@OS[Qda?fllJQupla]L_pXZVipYMeaaWaIDJ=d[YeHSW`uGqRYZyQsk)8]WUQ7\a@kCD_eZPRbm\Z=XqZGoAnbEqnV]uVRUZziWVemOf[dl`zRYZ[hiiC;N[eS_IdO?^kJ\`PpdpeRQRJi^PuH^\UHWXTua^R[bWCVbRPXRjNmNYONER_UQYgAT_^OEKiXmZrnUWZQGkf_MdWVbUZXhmLD_Y\UvQRSVIMPf][S^gZSn]LNS[bbP\MPr5uMMUWBXej_^NR^ZBhRQ\j]p>JUUZSAeSXhUbZgKZMHdbl1JyT^VYgLZg;`]hufLhZVUYMsUkTKjWTnWGWboYV`WObRRROHWNLd`d`Npg_OXLvHRjE_TPs[bLnmXSaj^dShI\TPYLYQNcDSMMXRZQf_tU]LMV^sGrOVjMTYlK[]H[kI9OgcFSL?HJWbgnRg^af\KJYTVORgb]q\RVROWRHqhwNsbqrJVs]?YGa_ZZYd[fKQeYHG^]eY}okI[RFVrjLhLYOPOR\cdd[MyWLHTMI@PBaeR]]Q[CQPMr`GqTV_YAlLPJgHn8\enS\YXjM}GOZOpI^VRqWgMRu[XnDTUfDTeSDTOhUNhn]mRRVeNW?ZXUjt;^JV_]MKTU-in_mfejTZO;`aKAboYX\jX\OVnqTGMjYfGP4MVQTWm\_ITa[YSKOl>o>p]FHE^^bRr`D^eUdkSPzWLVMPjVstJqKcg_WWNjZPRbQmhiUN^lRTaaYwVbQIro\[gUT\Rai`BVCdu[IRYKb[KhYd^`cndFT=`ZPsUTcirZTZga[TknUGWWXd[TWkXcYXSk`eFZY\Keftsk>8`POkhNSNQ{[uVhagkb_?zQZzXb_ZTc`hl^LLUHRQ>J_DlQReNOgyGfX>UbR\3MGlGWITWxLteegmUWP^QXLxfOXo?eYdE\REPC[jLJXD\DUTB^i^JwL^hd[PRPaS[CAC^^YZb@Z[O[TTXXaP@X@d\kPa`ZSR^s^cI?n^`Mndk?MOZWlXOmwX@TlQbNV^^RCr]YkEYRHNCx\RP[SldX\YSH^a`hSMgXHTj[9XaQiCZsZPH3CZHd`QitUE]IQh`cNdgagTx[Z]dTs1qstfPKjSRRejS^eU1aoTTMiEQigFJ`UOGDQr)XaYTpJ?XKZFSFgRWASVBeIWIkeeMggTcUV@C^QzXoa:KScPego?`WYZN_B\sSY?MJFf]_IeZcUvZl`McI`>BUTW1]SpUNVrRYRY\OhU`TsaG[OU[~W_TZ\PTlZHdiF\_BJcWQ^NTT[graSvVWRTNEXeWNCkP>JUISqXs\?qVj[ZibDmkIEe@HOVd_NhK\[IWP\kBR^pVe{PCTeF]TRDORUUfyO^YfGtL^][flgL^XXQWXJDRbAl|h^Yjl_A\w\ae]ZS]dLM\gXkkNQfbdKYVaYNoV^uOcSVaKNPiK\dZW]bSaEJVm_P\VTXHN|VU^EZWVdUOeY?\WM\STea[\lfe_FbYPlVaKbRYYNbfLVX]Mj^\Z[_NVkSo[^bh^mLTtLXZJEKh`^IMMYXM_\RHjIPHhb[UyRQ9ZVXjXc[HPMOe`WXO\sQd^Hv=[`QbWWVgPXYVVQZUJ[GpM>V[l_GXMHOTG_gRIWmbvvf[PkUpZY\dh]TWBPjOp^L^^]BNhY]WtM_`IT`_g[VFhYiQPa]VX]`OXhZiSH>jUFYVKN`_Zf[ZQ]S_>ecA\\T^@SSgPH[aaeeKcSWa]ncZbQZQW^eh`XXyMgWcIE`F}N?0X^gXZSedG\VPpZ[Ys`fR`bgZbPP[fZ]]ll\YdjJb\vri`OTT_XRCDzzFielK\x[\@\WYfaQC]tfNfeadDRSjs_TnW]ulfYfeJpi?ODN[_aUNeRi^l[R\OOL^Xsr]VG^afStEiVNPQiZMgU;P_4g[BRJcQ`LZBd^P>RbGNPXjZ[eXaRck9MiNXLXF\ZDXID]SNVP^fj^RTQOUPeZXONc_p@kJb_HT^BYirPJ]]\b[eeKOHYd[kVLpbbKKJTcDRelS[J@[Xe`JMKWa]vVa[Q^FnKQiQ_JIsa[_iKzXW>SPY\YRK^Pbz}mT[Z]HBOVb_f[lWdME\p_z[NnVIZAiK^VUI`ZPIdooWgn\FCyb\YP\Z[mQKaoanOMaW_l_r\RLlY\VYaG^JDto]`MRhYLZoEmkaWF^WYgp\tfIBPgMeWajOP\yiRiHbOYJ?F[Y\Z\sRM6AHFH\MJshDWJicoCR?k3zRgVRFgIhOPMmdSToKP_M^9fkH\fKdrnHfCuW\e1a`kWO[_3ffZhOiI]nhJKqoaTliaqCt:J]rbWGiFIbKBuTZfNrUbdT`ZM^^_lh>gp]QfITTyPU[PYRne;jP\ZVX^8:\eQB]nB=k\ZSj]i8W\`C~PDf]GYoV7ekTRsNl`R^ETRSbZSRCVtgcFSVLKZkiNEI^]bNvSZ^RMPoNgiVSWIZQJVgLt]Q{[GYV`fHdDfEd`cHhGbJuN\YYJT^JckoaHh_YmM@kh>GXTkIUeakV7IJYPLi\RBZkjfnX^FPQjTUmXUNMndfnPLHPagRH>hjZXZb[XN[oB^vi[h]IuHYVJRdWpr_jNhOmtdStZRUZPPVaQRXV]a\FSRHERWhS5Zl|KaD>\eXI8a`Z\VbXkgW]iS[`SOUcPYhi>RE[dU\ufhV]UVS`\TI^^mZO0OTNiVM\FF\`IWXZdKYS~[GEZXRm`[bMiDX]Z`bMn4dJM\nRVUmcgSVHVY_WJ^IYRPX7rVROBM\W_d@m]rZW3e=[UPV1SaKEoPxYZDwVkcKMbXXjGDeKUDPaWE_^:UnLwjQJg`\iM`]fKJfTUBKNuCXOFeTABOeGXVIaZN[U|uiDVZ]_[U]PQAnPZMcVY\XSTXSTHcKm[P[_[]RkOrN^gp`793KfhYcGnT]X]WXO\o?YRZR^8M?V\YV\Yi@WWYBKSK_SPa;hClQSTt}aKSO>Ga\Vj@YQL;KRXQ^cVZa]XMidOJWx\ecOSN]Shf\LB_ZUXOaVkHT]LRSm`koOkxSphD_YSMOOy]kQPQhO\KNnE]NUScNHLAhFEU\qMMSWYjgCLEba\\Q`JgaLJa\GTXUBkMKHJMnhOPS=BgZPlpPefdkt`C_`ePVg`NWJGIDW^jmTaFZE[gZS]^{QIgE]c`^pfLUsc?wS_NKa`\`WbKcecZUUFT{?OSMA]GffMeb@PLRAcT-MucETLPHJTIZk]YSM^Lm^|jiflilanR>GJdVvmrW^CG_XB]QZEt]b^]HYHW2_Hvn`fxIUfK[oTCwfjRSbXVIM]u]CdE]\XOZVYUB[KzqS^eLO[O^[VOOfpndaMWYHHWb`UQHj^nREOMfH]]pQgRK]m_`mgRgMeeIVkMieHFf>mJqqTSaVh]IVa[f`q]_\g6EK;aI_JY]RKGnSo6FbSOM^[]sYNzbPEcHcKTea^Hl[?NlNdcLljpZQ[\bXfVpTJ\gTEu]kL]AZDR_^V[UlJSJWfF\[YgSgTypQ{U[L_T2^ekQcmRWcQKXPPjgBjTSn[PWpP_YZfAI;LemaeU[d[X`YXUUKTYcI]egKALCO[mOhUXRngKLNZcKXMUUBdahZQd\wWar_QLU\b}RJfvOIKahnXTtGJrQtGrvDcLjkIiNAQ]ZQ[\hbGl]Yg[F}bOZuWGU]QWT1VVVH_]eaRRTWKRYKOVPN[ZCEL[ejXYcYYQTb]PNOVTW[HRUToZbeJv?\ZN[aePfBVIR^SRjM\_d[ZUcfKT]daui][YXf@OWd^SncbaaeRXReYf]IU`pR\OZn\/sKb\XcQf[\YXVQRaHct]]\NQhzbc^BQ=aNPbMIeGQhn[IxQ>f[R[]vPRod5SSKMiQf/ZPd.MZT]PUfBU^aFWe^RMpONXdIciGoJ`jJgShFKQ[W^Y^JnC_eN:P[7aUg[eK[ktUhlWU?WVQ=nPmiPI9lZ[@OIYUiMFzpYPLq~_KQEgaXiK_U=fTO@cLox_SjMYk^PH\`[?Nb@WC_WhKYM]REc]aUCaUPKLV]qgVPed\Vh[]OSa>spNK]PMA^mVf_VmUZE?\j<``STf[S^{@jYCVqkXhSo_WLrXK_?UMiiae[xM[IU4r?X\JkTLfC>IP[[NL`k\QAirLNOaKW:VVE\H]NiASPNh_fPdkMcd:RaHDkoXbar{^=D]_lHVcasU\Zo^Zj]u[XNHZmP\Z]KsOWUIYKdMaPYnlRf_]ONYZFJcS[aiUKC\fMVrYGU_=]S_VW]k]a_:pN^Caq@PFthNUe^`^b\_KXJiY[cPP\Ud`^NM`PbBcNLQPIgYbZJYM\D^n[IzPpIaSYRWk?SXZATKPS\dnp`h[IF`aReOhoLUC`WKPV[biPSe^Li_J[[[`VdC[Q\ERcMUCQ^l]V7Dl[e^\YVQ>RMOePF\\bTVAoUAkMQl`LTA_M\kOc]cJfR\ESjAFZJeL_P[k:HcZ^]ReVL[8sOMaOJlUIZk_PdOpiRPj`]XdmcfWRJU_aJSPFlUKo[AqFPROFNYXVUNbVX9hRfBki[CQE`fRVSI[OYMUzd1aWmMK\_]^ofbYZJTVBR`BrKmPdsZXhbIXBiDTff_JpWU^[mduAUf^VIb^NIKQIJ^U|LNmTVcPt_ZRcdDVO\pJH[vUXZdeF`ORT:>2PbBSZjpZJfJfP]_WcOecITkJF`kf_PQ`NYNOXUg]a]W]FE[U[oIUW\KFnd;XAOaVIFfZ>g=[R^lMVPTZL\hbTabulZcGLgTNDDLWIdLUlVYEOY]UY`^@NlPSqF\PLcRSYmQCfUQWWCY`YQMfS[BTZ]XSWOvQGLUmZ[XQNFqT]Si`OQrXKJeLaTIyU^wNHhib]PD\YUW@]R\K^SoS]QPVK][KRZZfQ\UcJFhQXWF^EGqL;qQPVbRX?TE=Jb\MGZLtCa;cQXB[_Z_^ZO\gc_jhsRHUR`d5[YS[_EQ\YNWUW\\dUL\MXnU]aW]SQ\R^]RIkUYW[QsWkV^MRTs]gcedM@WB;Z\_VZ<]W_cjQ[yfrUS^TdkR]WMDYOLsZGiebg^rQc[cFN]NZC^O]O_]d]hic~G\flJvHF[XdSj}QIhVaZ}M@WptWcdIF\lV[aMNfPW^\mXaN^aEJ{WOYVJXbSNST^mtaRpIg[mMcigP\Y[H^ILlH`b^mN`Y[tSogpR[XWTghSSKGZRWVt`mEM^NQq[Sap_\QVVbVpNWUaJWa]P\SKhTYTdXT_RYVlOV^L_gOT^b^cuNSUdedCSQS_HeD]K>TZNhsZmGOsfzWhZ[WUU]VXUnZZUajW@VSauYWhY`i`PT\biVKKdspU^aXVB]`gWNLZ>?UIMVJa{\V`FpWnWHInWMVdRYvRUeUqBf[hSv\AbAVEHYee[Q>ZPN[=VZ=abQXVDkjM_VOPMo[?@I[sq>R_Jr\SZ{nUHjFbROa\cRRfGVwmTWUF3DF[jOaRRZZSHCGkiJcOW\K`MbD@QlfFVY@xJnVvUncm@KwZ_U^eheoVY\ppbS]]v`oUUSB:[Gd^LZq~HOc_EbVq}pDG^VkTBYI?dCfX[gQ`]y_fzev_XioWkMTh>kFg?St\IMR_XZhonuDfdWD[jdDGATWeqEv[jZzZSMVSXITYLPwIz`PL@OESbJZQfWdZXRYJUcYZBWRa@QUHbaN]gUEhHUFLVc_VXs^TRExE>]eibOPgBW\^XG]JZThMOsZUXT@9[hbKpgOt`M^g9ZOIiUMoZq[>a]\OPalkOGM;BX>SpWFGfRz`SDYVZE\hORJfW>UL_LPDYK]^dhj\dRYXBUdfiiThU|UIYd[]7TfiZDUjOjjKZ>USbDbjE)bchbf]aQO^Y\Ld5VbXCjCJZURNnWE_SY^]I_hkmeYQj=^qsGjb]@UhN[[_k\vqRZah[ZoUMXMzYKKQ;WUVjZM5XmPM_mLig]XM^\fRCQaGM\aHK@_C\^PBK?`ZQG^lLzWcrXKwsYdZHC[mJPLDQVhNPH]HDn=lVKsTj;FSTcS5gPP9qLpjWFKXnKyUiXMWRY_hwbOQjqOD`YhnR\`hfZ^L_cX`WUUU=\ONSdaQURVrU\YIUWJoHVHkqoV`oDWUWoQOMQa^CYRlkakRPgYOYThV\MYRMXZa^bW^EYNPf][fXYF_a^YNpLRWW]OZaRerPNFcLaK`3mhLI\ZPbb\ydGOVQnI`^nRPchaAkRtYRcyLbeMS[xI5RUCN[`I^YhSZaPCbqW[uWcHQ]`C\bDm[WaRkUdUabR^PZOXQ]mRV\]^ceaVCGQTTdNRhN\_`^PPTRZpOUkUrKL\XU_diUfGVXbgYgfeF_JWXYbLjaecJUiNH]]|TT?nLlTTZlGG[WNW^WObbb_NqTkeU]Gdm9WaSYJy]MbXK]SRYOYa^OOHPVQ_dLWWUZX];l\HT\cXa\FTJeP`hTfWgcUMg\[cc\gjQlY`LJZrHV\EChWHe^sV[eHUu^JMWPaugmTPP`h\Tak]Oa^IZJ[VNZqZOa`XReenF;kjGIzUYZ_jYbVpGGPbT]bDQeS]ISWgS`PdgA_SWUXAXr]q`YQhZ^rWjJNONf:ahaDI;JcJ_joYNgljMSKVv]EzZi]ix]^ivbTcdI8ZKus[WBaY`EccY`HpeTbu^:rN_QUgHZ][Qe]hMVm[I]UI[P_MaioHoQ|Ti_^RVKpP>ftaMRW]H|FwTKP[XdCk@EDfI@dMRwQVQ9T^KYOR`IMl@\m\_FNON>J@U|rYe^UUVcJ_tPY]^re5WLgJPXdVVdWVPiS[JkWfK^Y@H_bo`fqKSaIQQbUQK^^^QVQXIbk>KXfTNpSvGKgbdRV`WaaRWTkOXrGJf^skY]Oi\^aIO\=w\P{TQ_ZYdYWIVTeOCloccPWSWG\N`ZMVXNb_[[^[b3ae_FkDETYW\jOCZgP_GSXOXgO\fKIIZc\W`RS\t\JfeVH[e\]Mw]Q`tL`ceMbA\S]gQ[]Tj?W`EOXgMfe_UgVRffr`TacLhQPR[^P^SUNefM^GOLZ`NdLe?]mb`OhwI]\eKKk^qlq[h^WTCeZ\PE``_ed\fQJXLag\gOHXeMs\tRisZQL`_[UXu\Ydkii`KZ}ciEJCPF\NbcbW^hMAd%UhZjMFjlZOlieXXj`jVvP]]KUl\eghTYVQ\a\X]|bNb^T\eWMPWW^TfWWIU]ThSnsIB@\dnMTCW]bLSlJFKXkSiINOQkOSd\QSVIFyRZoRKOHSQ|ZZyGiWuJ`IcKHSPEGK[YGIVbWJAR_ZVU{xN`bbLGY`dHCNYc]DJkRcLH^vO\Ruh`X`SV][PkWeITQiQR]_t\mRgtHcfp]]`|LXXFVZYbAT=H\\UDrCo\QLq`WV]QO\OW_[`]~IRWVFY\@[]kZQX^xWebNHSiRPFU`Qh`NUQUQQSMdVF\S1LPaZiJNNWerUW\\KT[j[_bVR$ZdkOmgYPGa`P^NDcsPPZXea^FagTWYXUaT[uJLXXCjyaPCgGMiXMyUc]``MOhYMbiORW[]MP\]ofYkUp^TkldSdPKXsBiKUcYSP`W^_LV[@fZ\OcGFS_UocMT_X^eaNTUNkkYK?^V=WbcZhSalsURwHc2XlQ\CS@^IHUDLUR:SXGgNWacGdGD^em]fESW{bqgzYVEOCUOP[l@RFU\NKi]|c9`eCfid[TjijIPVSWN_WdtUkIOUO^JQoKVNGiHdYkBLXW]JWPK[FPOkslY[Xg_l^X;fG7tQcgQR`LBZ[HY\Qcs\dHAnIdXDQ^QC7b]ezjWQK^R]LiSMSN]ecOlNUOMcNWXuhUUj^ATWVHfhP^Ug]fON\\Pd_Q[[OfRSJrbbth_fcP]TU}SHSa_J`nVm[[{IJztrP`cbc`kH__9Xf[M;FkL_LX^GcdKKRotuLVaUNj=R^YJKEJZjicfe}GRMNg|Sbi[oMSsx1LO]gISW`O[E\M[]UMTlb~Ums`F?_zHSYi@=7jDc^KUW[DcT\MFPeDNRda^^T}d`clIS_CZMZcaMoXX`]`fJNECVRETGKiqNNHfQsZP\YOT|qRSWjfkfo:q.RScNLPXSMcNXX]OV]pUzNaWecWYJbZHdO_FTXK[[eOLOAXNB|HInRIH>cDMkh=W_[FKeUcRQXNTbQ^JM}mD\[hTNKbRiaT_iRDcOKUSODXXXqTR\PXUj~AFqVYOOLWE_oScNZ[GjZk\XvOXkTn_E/be`[`hidLPVpeP[JPVv]^cW`;]oYtfMV>\UOSKbVpt]`\2GUNXDSqSV`dSZeODktJlEFeeVQEK[VZeNEULCIWSCToYqfRD\N^_X]PlUBIlLO7\[P9[LjrRm]W@MMQT`Xb^VKTFJ@Zb?XZb\LG?eBHuZG\NVkShcMIJ2IZbF(WRIT[X`gvGZ3AZ[T*j\RSG_TSRXTMVgOGcFoW]6YgMb]`IWHFcG`cqKS8;JRbm[hV7PHW\:`VchD^9THjW_qiOAY`KUTaY[T:YPcZZPgSlLtPIhxJ[gZV=_pLZ?u?XRQqkul5_]=_bHHT`QRM@`6raeeTdb^JDP[VXaDYOZVfeTFIdPC^dISENRIMc\TRJaK;Zo_YoX_wGLtlD6e=a0innSLKfdSgfVXkXKn@dhc>UeN?kU?N/l{8cPbLaMmk\J_JCO\/|ZM@[Dec^PQZhZgnGSnPMhOPE=UdeO;XPIWPJuJfiDk^_?q\BNN`S:[:pge@gEDNRma_WIhbXVahg^[emc]xurJM@]DRZMvBqal|MuKceJYK[PhmvjJ_ZZCKf[XfdSA.ricJP^ms_\j}Lj=h>^K>YTMo[hGCVGD[_bIjBi[Nbh}CaFNhJ]eT\KCsYb``X^J`Ll[=IHVSSnH^[TQ_SNbJEeSU[X`@ec[AbRR_FtCKinTJSDox_bEaKfP\ZJ\TMGYtY>OrBLRUQlSK[NZpDm\Ta\VedcQGnSXrhlPojTbXUPsvfeHSLVWX@Zc]PxZTmFeZVV_ZK?IKHUGGQl`ddXZJ\WWZ[bkILVhKS[IQdHHVe^X`E\N^YlY]bP>_cWaGNoMm[JplsjNvcE9aqhOUWgVPhY]UlPBSVkX_^XVOVfWSJMR?hbdGT-gFk[S]e^Naab=dEcrldYH[XViViQn[ZnTRlWQ`PZ^RuM^aAl3KTZiAOHUD]cZbXYcT`Yb]QW>BVRcF_MYd^]>K\X\e[cj|RG1_@fULuZwSacdc`gh]as`lGUH_mbSaQJhaJpETkoOKST\o_[[VJeT[pgIQOLeAgFRXhTXJ`KFMePXXDeZcahDOlUzTMXVaMmJ[POQePXZPVRNSP^I^hQV`^CD[P@WXYScUYLVRdVdHdUrXVOWdAObPZ>jnX]T_V[uK`iu@I^biOMV\[OQVc@1[SNe\^T_fRYeIearQRRZ>mTRSPc=4bZPFI^O`WZYWgNNkdRSVofiXVO^WX=CyZ[fL[b]]hfN_efUjgZX`Q`BZVoYIS`V[nbrm?`b]oPDTb?mYdVTU]U``I`VeO\hS\C]aTOHiOHWvXb^O]SbYS]hUFU\BRTlPcpUpDbQTXJK[CTkU^WObEV[_SGIXVaBiaMMkNdd\RRdKJVeVjX^GunX]]L}=JN_Z:qpCUNOTogJfTFK`R_9?UYGl\YgG[^U=4M}EkAEQQ|hWX[RKGPIZ8Od]`W\GdO\SaEnRYkv`kT^nMhGt[[>UZIPr]UkmV^bL[aFIbnLOTmQVqSK`\]b`I=PZsZmF]T9Z[bacL[eV}]ZYUZjwiZUOIfn_DQQZkRor]E\M_d^MGYZWM[hS`{XDV\ZUcUI^gOiT\C]_ULWI\hVe]PfdipeNRCU]UAcA]lV^WSZHWXTWdWdfOeTr\k{TINU[NO>^gPT@ZG;PZ]CFipFjBHXZLkzBa_PTdg]_QEaOATEOe:\N?Uuk\XnX0cYePQG[oSxi]d]l\JDJSQa[WLZ|MR[`ocVlyn[N@VWQ_B1]fgSeYE`mSiDh[kdI;HWMof^GeZDQW;l]QUbh_AAMU\UGEaXawIUw_sRUclFT\SS\WOcfYO,\^o[[_TiPXfcgLQQ^ubS@MTb^X\J@EI\XxZgVmLKx`_YjH@cdLYhTGMeWVe`XoXeLuy[\`QVSSJLZlKdQSbOdMPR_iKX[]rmwiZTNPUaLSraXFGdZdn`ZEIoaNWKQWSVMcTsOVLXam>eELnPO_VQSXTMWVM[Vc}Yf9]PZZAPIFTd_XabIM]aYwcLBXgTdZjXZdkJMFgUnan_dXlLiGWHUKmOa_I`NYROEsfPlb8_Yq\__X\RKZeK^gG]]UST\WAYmSDdcUjqWr_LbinVTObkSWa>TEM^UgWGROxvdzMf`ijgSInfdLVY]fkR^oQkFQKdfp]acCWYPl[D_kzMYa~TNXXXWXhLkpa_`H]_Z?KV`QT\RYPedb`_PT`Idd<}WvNjl[WRHUYLXYP]RUNBVhTaIO[T`W_aMjhzCnsuJhJPaYeSm_xGl`kko`RclCIVZkL7^aZ^lUHFVh[RkeW`NVGKPRhMdsVe]JURZ]NTLJ^g`UAj_gx][PfegY\jZBV]zcVRZoZacF]~}CURSfTekQxcHaSbC[HC`KU^hHKOhXif]Yp=Y[JFto[E\g=ldYWv{TbUSPLUYfeOXQEHTUXOYYAoh_dZQgTgVDAJOZKFUQQ~VTPTtl`wK?\iUS_d`O`\@HFb[uaC[DtcGwLLM^ODYe]h>RYBJM[@OSkJO`e_goONgiJYVgUOqH]VX`KhlSOS`fXZOitp\OWV^inZ_VWghdZZNePasTguUaSh`b\ZRrGJV_]MCGjaqQ^sXk\\e^J>OlKGQXa[]bd]iQVZOWNtg`g^EVwEWW?TbQKzIVPGSj;PboXqxIP=SPgCX_qXYMcV\Blhbt^H9ydDY_GZHEgnLTs^nN]NTU[P`<]XP`lWQ3]`WelXWaRh[AkoBqaTndVS>qnU@\]@HLEq[TCkKhQKCNcWJVlUV_S/a~VPsK[F\MYFW>JGYeYT\luPVV=n`[]T]jxV9nChO[IAHGhRIT\IjQnTGC`RNFXUPaBRGcZEkyGchUVfNMXU@=QRLRPdhT]CLCLbOMJWjC[]bhrU^UiMPQQSa{WLjhgJiKDcc:akTU\OQnlIbfYVgm`YCTZI\mjIhNfMR^BW_IOOMRb_uoYUORTfYPOFZMAhORvfaeQkTdAeZNPrnZ^`QkaNl^V^gNjSUHsUQwaQSS_ZNfi@XwXXmOU^SWXXjHH{TThmPMjOdmXncFk^[OeNOhNuPedffA]P_]RY?]Xe~tCSN\cgaf`RP\W_iDhvy]dLA\TZZPYOb~GQ\|FmNgUdDN`]bKL_`OsNeU\^RLX^=OkcKFYOKJsbYfpUY=C]G\V`OK\]@W__JGUa^M>PeQPRXY^DVCJWZt^haYJbPF[MVXZRIiWWX[WuSwRNW>kO_QQrNkV[V_PHjOgJdpg\ZW\V[^]d:hJd_XN\GJgW@ljeURS]PlGmrp[lf_UjNTQLM_bXn`YhfhQnQNoI[jcZ_cSR[`AJ_sdbBcZcZjdP^d_dZHFJEBCORPOM^\JSVZ]BdK\hNNO\QgMCg^]WI\fWOLSEM\DNJ=RaJKR`zTPlCiN?JHKZcecXLY`S]gWN*PaJM\eNWQYq^KLFQyQL_\Jc[O]cYET|@lCM9iUWnPiFRhw;]MTf]_`OKWanhPS_naNXNKeFP`fk\bNOdFYg?tWfMr[aMakUgZ|iXP^RM\{`LifYec[Br`KagWscaOgX^hcmaec\VSYI;YK_iN@cUUfPSSCO][`UJgUkelNa``fN`Z\ScSh^NGORl=TbVZbVbsQ[K_7cg]NhbONa^YQ]ihfOI\OP^GbxVRDHWVLVEQd7NaPPPVqzQ>^fRVHSGKmm?QdYOMuZKtj]WROT\[VLSYqhaK[QkWWU]bPk5MaYaQ]eGdVca\NIH[n]Tf>Z;hoN^TOYXBHW@bX0fGWqMTBM[|o[]KsYqbNZRANqPpN?hgfwWrjOIlZC[IYKCeVbY_BOfM\~qSLebFJOGR_uYCWM@F[iQ]TYKAP[jqA]:cNrJbCER~RdHk\LpRC\b^`PYe`JlIHY\ZK]dgc:CX^[cY\]a^]8]\J[`fVpRRcnwBnW`i[\frQnXQcaHjKiS`^@YHQESZnWZYqkZVPXe\rPVPjXKgJxK>D[Q[\_\MReg_\TMdS^JlpggaPWhTRwEPW]QgRFc\^P]m_YGLvMQ|Q@_AXicnb_B?`hjEXxWhGIJZXGYUtGM]l]^DaVOZcSVg[]OVLRFU=O?\RlH\CY\[PVSFbaZefFOH?`NHdOFF]OcHHhGUVjXd]UCzQYM3ElRPOYPLQRboVSaDVlUQVRUbL`D~LN>d^W_@rGQaSTPSKWVM:ecBP=e_^DRI{]_nlaxOVh]o6QYeNA`DPMGp`OSSZWYSUwVVaJfO^ZbaWXaXXh[Re_b9TJB`Q^Qh@Ls?EQzDQd]RtKeO`efGS^PHOlflQT\jOSU@jJcQNT=`QhVQV?c`SQhNvWkdDZahTrkdGkTdHRYdYZB\TUTM^GC[Wh?dVebiVuQccLUEVWaOMfgEZ_T=QIXkJxS[Nd?S;HR^N^5ixhoRwiR@EXcbJ?jeT;tfXTQ{^NPbGUV`THIZHHYZAdelaDeDjCXo{cPCj>KIVScKXVVrUINFXOG^nf\krXP^kKOYpkmf]kcQVgUdWiBVgOqHjZ]MZNk^[`r[RZGDYVJdcPUa?iW^Mei5X^pZqjS>\jQIPn^VbPZcRhMf`aRGRLjQVb_J_][VDSY@^UOoXTWURTJAGxkPSVS~?6sfbYH`NbXYJAf>uZTY_dKJWZ9XW]^PLaRdPvTKH`G_]`fVZdXU|gNVqQcb^jTQR\fSU_cg]UVWiM\pXkEMlQMx\N]]aJFNtWbdWGWN`_KhCd\RRTNcfSV_rOD]RdVbqtq^ZVjdc3MkDXQfniFZda_SfiPgcDccJsXaSmqWgbpCY`U\Dg^SOQPds=_\pL?N[YdWQ\SQccXUeXUQVZ`Kfljs`Pg|Vfb`R`H2wSZVLcI[RQSQCdbqaoI]LIZmLgQjO`jJJ`Em\XN\nGaMUWJx\1aHif=PVOgQiNgXgOjk^QIUe`i]M@^vfZeMQ9QnPIPrUt=hWIUOJ]QRNLsXY_YP.Y;ZSSaP\^G8_@PsY]>LiPTVVXFYVJgbqRvf_cSZHTbZaD^vSQae[BHQR=vRNSmgQMY\YS`_S]B[UTO_XhN9dcXdZWWbRO\gWUIiZ]cPI^EQOGd`kMgcPbeiV\GdG^TVK[XaucQvdeVhVTMVXoSZcX\MeNd[iRXcgbrWSbOEiZVK`fPK[NOG\SWNiDsjof:OJVl`ePBq`J`a`dcJDLWTbNJX]_DkPN_T\VRL^cP_[^jK_VkRO\TV]dVFVY`bLhPHKYcUPSD\TbPR^Edb[aTI[>MX`Y^EV_DYVHOo~zZ]k[]YlEPjYDwcVLUSU`FkSSVrQ^oZIB~DuV]TwMYhj\V_aDIRdKefP^BKY]nYEWgYR\Ka^DKQcXP`O`bhFVZphDTR[h]jlbKmb^|cTcSS\BW`i^_oOzPYmYXYjeTRZ_[TdU\PFaqos]TdWXSS@nIMYG^^MSWauXEYRSKMSSa\Zh`^M`dM\JNN/mSZKQl[\Yk[oHSk]cIHPPdjD8Q]UpEpwTX:MhV\aT]rjkaKfSSYgPkVtX_dDRTGg_bfC^gn`WJ`[igKLjSTMJR]qWYh]ld|LdlXhN`\WjN`^e\aXbYcMa]OCbfiZ`zWZO@Psl^O]bZ`ZFOlUppRZgFIHfm]{h[F\S^VRY][jSAUn@XPcs`gi^UaeXoMTnXIS`_pU[DOpIVUSw_xpk4sYPZMVT99sZRTafCfOKSWVCU_JfOWRS[YUSh_PmRcqialdrTaT{JAM`X:TjqVZWW_HAO{J\[bL`UUDcHFD_qp:W\^R@xGGXG[_gYO_X`\ji{pKyMoGb?^sElJ`kWn_DXm\U[bJs_M\\gsG`MLsX_pZbaBXz\UcUkDnacOVRVgaN_SU\^okTW_`OehX_uLYQP[MkdjmUVNW]>nO[MnQ^mjK;^LhgYjhLcUU[nHHfUX]OF9ESImYcMUuGX\S^NfsNZq[\afDtRRQqX[PJJWk]EfTmlhNqPB\W_|T{QhQUT\JLfPRga\\FGi]\GvT+fPjm@sifGZgQVedC[LRR[RZlW_E]iQdf?`=`^ZQ`ObGSJfL[VWjU\nabkV]`[NPG`S^]Y\KORPVK\vcOgMM]SnT=X^ePYRYPokdO9`WeESrYu`kXhNXdGJaM]\q\B^R\Va]c}]Oa\:U\\[Wb`hB\SoP_TB_;dP^L:\OTR1fO\UdGJxPVX[DS`T_CbSTcdQS[W]cgH[Ed;xRO6^n\_gtj\jjYEqjUVUGenpfHPbZ^mVLY\cjGXX]ckMSh]L@?MobjKPNO<][U]JeXNnmiY1Yj^K]K?]ebaZFiT[kNOX\RV\g]fyXejdiaJOdi_FYNdJYO]_SI[BFMK@K`n]\HiWWQwUi]XXF\_]ScpcVFWM\]wbZ]zYODHj^WbRN[ZW@NcDY[Yr][b^SpaaLSZML`PhmXOUPgYiRPebcUTidiIU\bdZkkVZnShuYpO]Ca9lb@Z[`JXWnV`zRWmUSaYa_HrOi_Ib][cZepQWK@O{XZUIQOTMdXOVW]LOGVFdNbc\|n[RgUTIcWtGZYtQU^DRPXCdlSo\eP@grZBq[CU`_ZUgY?[IWaZZNJdZejYXUfVZdQsZNb[bccDK[rccZo]Z[GD[FicK_Q[X\ZVafrSPFLTiQNIfg`[c]E]AQUeW^ZVVOOU[`VOnL^WLI`:Zg_mD{K[nZXMi_tDJDMpYVOXUMQeKUX[hQSPeE`YRfTYK^j_dHciXYjAWdMT_cHLkM`HW\bL@YSQ`[b`vUaOPfIdO[CA@Qh8XbdkJ\[M]OXipeQQWIUXQ][cINEDhEdoJ`nw:HMWDU^Q]R8ZTQVTfSeZ_S[iFJmcZUhVOMJTJJ8hXX@QJRZSGjYhVVsddcZ\`Uc\HIVbUfO[]>\g]Rk]gfWSSTP[;YtGUW]\XEW[n[o]VQWN^U_QleYNA_hh`ZNeODo_KKQ\mXIZGc>MVkSRTPE_RDR:XQPlPZ]w>`WfETVqcE_aSfDK_dY^Q=WzcmXdYoTHQFdVZlmnPTfxWnYgvby]oKUOVcd_akieGM^t]QO:xbYCk]qpT[UTVIPL`Us\NWXIgZd\O`h}bKZQQZiMcqRsr@LEh[aBd>_^beYjWbMUb]ieiPZB^`RQTRwU\VXKMQ_hk_FvW]ZYJ5`t_f^PlEfbVq_YNkeY={URPCSN`bhWRFeiY{=V\RGUlvNRHLh~XgQUGTWZQB^o@[VNXWOd]5WTjUVMdW^Z\S]QQMh`ug}TRJhhXtp9NMaaS_Tf`U_`_FjGcLnPNS?AbXcoV`\afR3mecL[KX`Wcs`L\?bNTLbWDT\V]uTWEbIPN[aafX[{JbLW[Z_ZlKNpQ[IM]YZFjNWQPJkJ^[^FaKPS^wY?MgodAHPPXcVPZ[KXfshhZkYYOO@d]YXGfX]D?`_`Y[kWj`kNiIcKKUEoUIZYlNcYF_FLFranGKOTgZ\}ZfkmOKasdpTZY`UIQWWWET_7XCGN]_^dZ[_VVOfGLC[iiV\S^RhdR^eKT]g[l`L]L[`\\OgNth\bf[x*oJS`cO`]QWPMZLkdHJJgWGSYjTAIEVX_\G`DMO[1B[iZneUcStcS`u\ioVeaSpT^bXIZJTPF_^UKiC;NBLh]m@IS\lgP>QWrnP]H\`Sm\HWYlXI``KWWZMKNf\WJbXP\S]XuMf^_hmPPRKOIVLZeO]SL`zEXIREbQnboL\bl=UTVXbV]HX_OIe[RCVMirXvjJDsXa^EYRgQcVZoN`f_KOR`P=ZPV[m8WEs@c]ilqpWUHbfD]`IOWKm8>UOAgQ]]^X?oIWnqgaXeX]BFZ][YSuFMdWC^[[QNVSvn?`[ZU@kSjlXHXMaROYYT[]YY^^Kfd_yvhrhObqXF=MSyXveY\>gcOVArJEWV_HhQYEof_Uh_7_[;ELo:i^=;]YzU>dXHGdPR=\KgQVbHXgXYQUS~LOOM__LYdIMU@AZ?nyTh|UrdPYRWJnWPPWH]fVZOOfvMT=CTTXcNUgPFsNc]`WWbZQJ[jNw_^HM@^RTc+QY_CTqcMQ\^VTIZqIenJVcMNB_NV\fdVdm[YiNkTPPdZfYVMWU^:UYOQ`]]_YZIaxVNiCpT]VSLyQhgGY^NF[YcRN{oxQPN[^SaUGCUE@SgONpUOhSUcd^CW]XXQIvh\LkULEN||zV;HQENS]Qhmas]Jf_NofltSk?JPu`oUt|ck_XVXV]hZLPUMnrfYT_]\=GPLeUCHaWR_RMZa[Xi\cRNly^F]QS\TcY^]<^EF>SgFWMTGa@qdSCjKBP]TPXoYWGGrXa8zOKkJOXgTFHd|wTG}HU_d\WEQh\_R[|Fs[yYVN[NX}YHOQXV]sjUJxFSTQa`QJ`KMxDKYGsKaYfaQxl^YQ]MN_b;b`^[QqKwRuPACiVWMVeQXt]Sq\gcaPZLj]b\RFoX_]SZ`YnFkBdkdTjVbJ[OO\Ud_LE:B~WhNsf;g~XCQoRX]\ByNgWx^UaoJQ\x~^9XUX?TjYsCkUfbSUQEEkPYJAKXmuF[_K`GG\V_GYh\pzGn_g;feKSZi]a^^fUNSdOgMR`eS`KmJ^@d\psLWWbZSZt^dPPZL?p`Nt]pajTTBWGWXW^^dWnX_BPFaKTm\SO]^hPwMSR^^}oQSrErWD`JqTR\SDk\`ghZefVYc1SH>`GivR^sM?P[h_Q^DsQMZ[QNsdTBe[=@KTX\PXe[\eIXWhR[dkkMy[Pe[uYC~@]=I`WFoaSNWT`OhHI`ooaA]fcDj`ISUXUZYKXy`OfNYaBLftaJIWbbSeZMZ{aOUQHc@Ix]N]pIBSTnN]dHgWMNQb]Y}SQUxLTDjW_d>I7Z`HgbPP\>jqA[RCVHSDgOhHVfXaEYSFlTsRqRRg\RX]B{HR>TdaeioUGOG^XPgqFBieanFmlFKPOdc^ONbaMP`eN[YV[P]lIkMLRUPm`dikNfH[TiFhXYFHPPDkYUeHVQ_.@bB`^XF0R^ZbaO[Qcty`NL`OX=U^WZY>FyJBA[H@YR^|O`QQhGFTE[Yk^SjTLJWOaPQVofQR`;juPlGM__DaD[UXWhXHUeBXSaX[ObYVZ^kQsKlGtQ]WQEQD_Ee`Jp_X@TTQLhfbCENZXSXk=JgXeIGGWUWPT``MlK\IaJXSWotgftp;VVb\^\sGYYP]egBNdvgYrTprFQKH6K:\hS`GcOhWdqYSJOgGHfYh`YiviSMd\_UrMTDrYoQP<]hJ^c`mj:ZuLjJ`XNYaeiOXl\jGUIO\GUaWcnA]_EYS[V^THNPTHIMjU`NVXZYUX]_rbQ`\\`SiIJglEUrDVKEPUUGfcb[3kZMNW`U@fiMqhDP`_YRcLEpESxnP^SCSYFbIk`CPUP^sKMUN`XdRaI[KyZoRSd_caX[IUPX^]ubLyYKzp_SeaX>[d^baPWTMVEQw2RHiZaYZUmeP\>nXXYU{c^UR@FQQXBSSiclztC^FsHdgTAa_F5WY\fQjkMe^QWt[dHEMfRScXgGgMHmgaGeZb_a^kUSW[TJmNHfq[XXVqVVWfZdd`_IXUHbOof_XoZ_X@A:~vgcIf[`V6=D`\bc[:UNNK?CdGR`[rUZ;GPiq@fRrI`iZFSL\XS[S\L[PSu\T[LbBbZLJ\LJXUV?FJFUCQUKfedMWhaWdWQ>bGbXLv_QZ_iqWcFcaIZ^DaSAk[IO]ZQ\9H]NSZG`CcUUd~pj\eEVMUjXWeF]WJOaFSG^LAldTFDDGJ_gOIIPBbTXkVhiuET:l^NNUEOY\TWWpQWkYYOdSjaW[Jp`MqX[S`eU\^QVjWOOdm|X@yBMPI_WWQQLZbmNssLD]XficKXUPr\\r\behLTaCRY_agbbG[O}DemQPdKTUrh^nQmsJBkJlOqHUVXSicXI7PVqQX@IcWNB2asPnZ\Qb^?TcYfbJUUoSRc]zWq\h>P?Vha{iZg]ZidH}?YSwHU]wVO\OYcZVKhUpeER^bF]TbUphZFPhWTJmhh8PAHcYsa\pnxFTiiM`NYjqTe/TYaWQDTvd`NOR][Lf]W^ooPQc`gpORTTYL\Jiw|`ELB@QOi\RXH[NDZIm@KiUM`PLkSaLJ^[bmmfYvOpU[CeRJ^jTQSdfOuk\kFYjPim_gMcgSbzQVzb[]bn]MU_Im]LCS_Oa]UXONmWPRK\`oZQQ\R^_ZEj\VMh\^OQ5L`EkRcKzZXVlh]^P]_[PRVZPXWJY]AElygMV^kTsHU`g:H@DTrUAMThKbhQegKI\tT[jUUuf[ZbMCYd>nTbFrU[cmPT@aVlvgRW=\oiKRttyOf\\gn=RQOffPRGD[Y_cdZYKaRT]ZYcKJX]OIfRO]MR^VGHcc;^\n}`IRxk_gkU:DjYmOMSxngRaSWZ7vZSc[\`LL]]N?F;c\drV?Hg_mXgY_bNrf^bdVRqZe^aQILSNab_YVK_]P_gROjbW>nZ]TWYZb`cR8N_SH_IYR|^ZVFdUq\\ddOAX]Un_FL^B_Wl]Ib^gMGUHqWmYEQS|?YggThuKTSGf_nfUJIOQlX_MMaXgKGPdNaHlZGoM`mTZjG"^]ZoIVKQqVTN_RETJ_PVe[YMLol]_]j{eRSkaba`cRxQWVGbZVb]ROdVQVEavLeYqihlKFa]Se[PadYavT\VOK{drr`~gRp@aJVfB`L\hakJjJfhYZUB\UFnALzUKrJZW^LEEqZ\ok:XWguNib[ikNiPUg=PKRE@WUdKaGcUEGwrLAQ?KZvOW\_os_ZQMiSPrWoyRPYIIUGyadPqR]WfN{d]m[n[QDGX_Yf]jRJr\aRSWHke?dRMISXFRLoE@QJI[VIWuhh^cWLX8CZGc?STB:hJJIqe1KUYHLuHMN`xlkBoHXcWYk\_l_EQ\iOxgN]LSShQY5NGR/pBMaJEuW\fU[FQPAZ[Ou^@Tbi=Xh]LdjK\ey\C`YPSGHOi[_X[s_fJXt`ZhPZKKZYtlPa`P`hTUPbBXUEi_WXeh\SYjhWXbd`RoQ_TxOJVK`^GpUBdNCBcYZ[AqhTZEXmR^JV_gK]NeV[WfT\T\Ta?NlgdMoLlOJrfB^qvEJUaSqv_nB[_SNjDTXD]_VRnN^e]YqebicV]g8d[[GR\b_MdEUL\cgiiA^X[[X\H]lkbZ<_IV\[UeUl^dZMWYOSukKa\^T[_W5YD9bqS`ahXLta]`DwSjcO\QpBNFORZ_]RXOgnmY\`aBEUhZjZB^TRFXUZG\E[u>@TawSYTHCNoXYpHXe`n`BlYPU]bc1;JAN]lVUD\?}o[UxeSe6eg_JMJRYV[J_WcNYK^P^kdA:FbM`O]WLEMUVjco?YQ[^g_h)FLfNQ`@?a`BPc_i^@ulcZen[X_RHYeSElGSX`A[`b`DNWOpSJMaW]ncaYebP}CslCQa3DiSFrxwMB:NNEDJWqPn^UB[pFPJ9BayU7qhbAjGM\aRUL\QiAxJRN_]PvA?KUQMgg_Ujf?vQaBMEB[ZaCWYH_mw7N`PUSb^ObwV_JINyKK]PGXHJq_fgU\XXufDe]W]GikjVX>_]9RNSb`?UZVWacOV\NOvJQ@`I_TgM\B^TEYdxAW?ryY\KeJp}IdY_sUaa_Q=aU[zIbaZiSSAgfSHSjBmvaSTdKUT^J\PLFaU?_bX`OY]hSceWXWmQNRSSIYSIT]^TZ9RTgIbPyj[UDDaPf[]YlHw_`QQZ_b^MZ\YQkEF[XFWsB``L?_mHEMXWdwK9WKfXMA;G_]JjYNZFSvPS]Yjnl[H^IOP\ixYcSi[OEITlMRsc~GE_X:gaVqnIUV[IZgH[N<`dDmrTjotM`g^Yq[nj\IcEwKa`xMPdhMB_mEIfC8KJfNVDISStfhQSiB\Z[XV^[RQVQNrkqNDObEjBfSg^Qozl\YhVkao=Sjfa9{\_HwfXVQQ?^c\>T`iH\Vuj=g[E]m^Wh``SnAVKr\QJLUBGUTx`mP`IJOk:]hWPHXLehKcH_iTFo|NNcMTT]TI^lrVP2gTMpeQ:bRktQnJ^^H]QfYBwJ_f[ehToEHMsZneHZRZV:RJrhE^[kPQaJZ\L7JW^`sKKWAQMZdUArnTa|`F=BXFUQSIq;YLGt_WHYaLcjVKb{]skEITXWNIUgLUV={UE\RWEYBQg\?6D]qXWptC7h]RQK[PkRd[WxFfYHFKh[HOPNZZh\dr^SZEUXQhbPEUvcUodHVbPUVOcZ[VVCQmWZPSdAZRaLXKpzYP\_b]allKAT[nSLdLT[7WNZPLQM`vVLdQRh_CN8PIPLSPS?cLKGDSF;]QFFEH:HJV=H7_@RmCQagNDUOT?9UBX_VEGTcZJJLJDZ67IL5GH;@??*?WYRHBC=[LGGUT]`E`?UvPLECHAC8JHUIF:4DJ_AQWPHK@B=Q`_QCRMZW^LKP?@T'HKVi -PPB]A:AI[H;D9NR5"HjPR^E0TGPLK4SYIOTHIKK>bJUMCA8FR8X8DE 1NOXMAUDI6FC5fU54YG?M7NIB;]i?D=LY9HBIZQ\=SCIC%U_AIGRUJH;GD=MEAU.5LW4I0f`EJ\HRgORJSKJQB[Zu^a`\Yk^aJSPJ`5RWLWQoSCBesRW?sZbIf^SODYBWQ4[KP7ukefUJogiUT[v\Y[EYWddqC7T_iMIPXTIllZYqFSb?F6MbJeo[Pbqui=tJLYW_W^sZZ@g?GfZhdS^XGNLfBK\>^8U9Qsh_N`hOiRS[`R?sI^UJUaSTAeCYhMV]eQibdDl^WwFMiMceXUYTY_F]lXbUkXLok\]`U[Lq_ALPjomkjEGC^_PcxMnQOd?qbT`[NTNGUubW7L`kGYNRbR[ChPRTeaLaUcmjXL_LM`lrH[XNC]_WbD\T`LECZSd`GG`Ikqe]YapEYM^YL>WJ=dbOM`T@HyC\YKaPIQlJhhAhculPZ[GdjVTCRiQTdUMWGaU_Y[=ZElAMeLXH[gfO9E`Za?eVUXVQ\FQgJoL\WE]h\eVmjmIc[]`SRkViZWJaNgK\V`{jANH^bLIi\>e^Z\fbRF\UXw_kNNYSN@YPIZIAXR[V\DsjzhXcaCITVtkHIOWDpg;{Ihcl[]Ila]FIO]bQ_a{Y^LQZKmUNUVPcMT[\boPGc]_fTNcfmm_SLb[]WVXL;cgVSkMaJTDGD9adgJYNO\Y[EVU]RK\TwjYsMSmO@[fcplTSSba[KVM]dJb_X?L?SML^_VGxDDH]kaGcSPNeTgYzgTcpOn^];JYU`JQVY\LrJQbqN~eKNUURPjOihP]zbjhWz][Xs`M`=_NW\POsk]~gbi^hHP_`Uec_lVq\?ohPvcUchf^PUA{GoFX^RH[YTXi>PPZYSZZwXTLDegMaIEiXSNUcOdS^_ZN_\XRZcXbTYe[h[ZgdhLP[_SWTT}meFTb2LZSk^dTPQUem]PrlEORF|uSOxybQ`_\QTThUWZ7X\Xt]NI>F`WdbZQW\W[kHs_V[VO>UXU\`TSpKWbeTY[NY:QVj[dfJP]M_CL\gdeWYWMXMRYOKvXLJSTbJ[;roG]IWGPM_|ViLKT`ZbNDWr_c4:aChRRegV@VTd^b^N^iK7ZRW_g>7AR[yEbI_hYYOoeSfW\IGoLXYWM]jEb_LVQVEZgZJWaNNQX^HvTdQlbNXQYND@Hmh`ZW\O_gsfhzb\XMOeTLcArzRR_GHN]b\iXPVDkT`FiY\bRmWedX]\K^WgLVu[XZdXeYc`rXrZwg\f_ggrvdTnH[fNe[ciJcUSV]VUPbX`KciedYkejGPiSZRdQm_D_Q^pUPRKBipjUTKU[PY]xHTZUGJAI[k_X\ZREO\K`NWZUeTVwSSLeSSdZ_UtMRgWN=GB`XiTKZf`U~Ig]bXThWPUO^GFQeMC=JPhiWSZUHloUa[V`WBfYLjQD[ZNZkjUH^fcedoX[RcNRmhTKt`RSE[UeDQcMedQSRFZPZCUW`PWST\Z?[a{IUMSgMUUtC]gR@[VgiYh`KZ][\JXavcP\dZKhRadZeg[D[[AzR`kP\HdUEZiXWbq[nRLWLSrSOC^l;SHdvIHTT@XjQAKNa]WxTYGXg[[vjB^XNUHfURXVfh[bZYZKWUo`^P[cTxYD]bXT^OOjRbcX>WZWa]\fb^iee[^`ASPZXXZGH`Mg`TXWWWbPUgidaYZ^gOaJQ:>Q]SfTNQ@VPMOQ\;Y\KRn]KVQSrYVE?RiUZc_VPU[VQZu4wY^dKGAUCYNhJXSUWXbWfSoYc[NW[YrR]jtSg\[I]KKaS`\X=SJpNoKY[LG[]MQjT^>`cXVO\i`^DSLV`BXNUT_WX?KKWKbmGcjUOwNOMbWZYYWfSnSUQOBeVpSADevduWccLlfFpFG?N_]KTXG`WBlSUk>TCBaVaw@^HPMqTnXcaVQIVdXY[rbgFaXT`WC[eS\fUQhYlhhjhAXLcaYKopBOSdMZlmLUjCVkbIX_dbY@bggTNM`D[nZTNM:@f]`^KaUHBKr[O;Xp]KQR`T\okavV^PXdRT[]XTXWIHInUhF^MEUPsu`gdS\TRIO^UdV[MlpRWKUNmY[N7iU=HZXdF@]XROJ]MEqR^_[ceR[QUycWndmdLWYdMnSMFuK`0pe_LUM[YT[M\]eOY`XWQH^SRDt\DbcaW=\UQ[lSUbY]VNiVReLi]]ONERts_Ug9OSF_]oQZP;YeGKQ]bs^m^GVV?]KgRLt`TQ9RN\OdS[N`RHN`ROfiZB_YgLdU2Q]VXJX[VV[_jTVd_Dm6[[NHJQaqb_L[_a_sKbbZM]JpbPUMRLObThWdSR`hQKSZkd[AhgVQKXY^`f^RO_JYLDMRgSZWt:S^fG\OIb[[_YDSpIK;IDOaNaT^Nb]}^r7ZBI6hXVVQ]S]FWOma^KQKSWE`dPLQZmO`l\T:^TXPlGbGcAicHU\eOxKbRFgbJWLjWXPOIPifhOQ[dB_UR``Jf]f`SJZOgUGaTIQ/W_WX>VVUaaQMYN_VX`oDlc@lJQSH`_XGTcWYFFbPOYj`pi`P^Of`Y^U\dkKLYSeWPF_Ce]Ji_EaFIeMYHNJ^@PHHa}@PRSaRQ@Pc_eMg\QfLfd_[EdQYPLDV[baKaYLIC{XPiGbdZW+JSYNa^HZ^QSxRwNIFVZ\FLBQVWOMZg6g]7IGhGJxQi\TRZ_AR<7cHQeWTbmW^`~U]LEfR3HUGbrHIdxPOUCMVZYlYVwSIU6QLAWKAKVWId&ld6SR^`STDpE@xOWSYaX]8`]gF\Igcgl6].>?VJgcpCiLybWMWQErc@_:T3U8LxSefz\\Qvc\@s:@FFcCLb[YZjeEWinQclk\iTnNTWERRwFNWf_eTRND^Pa/Z[teMVKTROuVu`RBR\^Haf[DWOIGiXn4p]kEOMUmc[K@VQZL\_WBSabDfK\nqPq=_YKVULmN0RJJRR[fRWS]MV]Q^p>AaPUTZX8TDKXSrOdSWIJ^{EN`m`_R]^eR`V[d`PUY/TJ_QLNCosQFf\Q7mzp^NPM\XSQCejM|dTLMNWBixRBI^rWVeLueZV=Hujo[[]r[qGO=HpbBPOQj\CNhC*KgSGHLrNCpS@IQBKk[OPYIQjBdNON?D`BaFLXdOmb=SdIaDkILXMYdN_aXPTI^Rd^efaCbZOHbCQjeTWY_Q[\NCj[|[LaEb5gGJN`N^gPv@iYKib{PbRaHW_LS;^XqwVYIGY_?R[di^|jMVWGc??[QYRo^UN>C\UM[lgyKWgdaT^\L[f\R\OjaYwgKOS,WmVbrRTo;I[bTfeRaUe]:HNTPOPZDN\iYIfE\RnM`\UdN_\lg]Y^pgFXZ[TYPUPQaYRaXVgPbxFRYihbQgDkUX[JYXC_QA?^\WEw?bKY\FKTt=dYTOgYbcZ`tgWIQRWH?Zl^X^_dGdbOhbSWUpU\N]QStdOde]UZc`[@F\OfU[VVP^XWiMY\OP\ReMn;LYH_c\fRYLH`\UOwfM@uEKV9dSYPWfjCQG[Zb[g^?[\dU[_F}blQyVcWdvfF`WNZ:EH\dKVg\PjT[IsjZ[xNRQN[_UNIYZ\hS[iFYCHEgbS`9[RFHAZZjXMRZnMcXPUUOPXP`UQirZUNYbLn`F[]rQZY]_HR|WKXTJMYTRSS]dM]=O]Uk[YDKH_NDA5ecQZgXEQbreat^rbHSSGXZrTHPaPYlCfbYflsnqPVL]IWJh\aN]P]UH^\og]uQ@SIS_kXRu]EVW[^Ig\dXQ\LL[[gTLGfyFW^QVJY[KKQG^l_i_bcX]QTQ[L]?eOcH\OhbhHQnBYY^nXLXYGfYQeNiWUmnUR`RIIabwYfTNOXtJRH\pShMwbYsLBgcTXI=gW_gYDNbOPQpamb`f`oMSjZ\bOS]GFZwJRhM[Tuj^^^eVpLIWF\V\]]aOMBY6NMhhgNhhgZunUdUm=8E_YsNN@RVVfSXXPQXaYMQPT]UTmXqS]MQ`SOVjKQ\VvWVRR]oaxSPfg[WO]MVMafjke@SLYbdc_Uha]U\]bWQ_FXCYG_h|WRSTn[NeKbg\ZLWQTMeq]dVpZdFHNpTm[faSVgHKRn_vfe\{]^\zlScVGbVWXZ_g}Q]fcUmW;jRfWBmN[PBp_rsodUY[cZTS[[Sh_nNbQ}\W6`^L?rNlX^`UfYOWc\LNttN`XVngbJILOKPL]XahdUabSYTZi5adH`m={VbKJ[_We\xlDf`|^YPTQ_S`^V^XNVbL\L[`dWJaeYIiYLiWTLgQ_sHMXIUMPn{`OW?bUeNT]XPm}VNQCTSWbHVTZQ^h\O7jQc\@wP]Rxh]T\ReMJSfLI_cgFJeNepC^c^G|`]ocRzV^PbLNPVJj@jUM]WW_qa\cRacopVX`\]r`dQJgU]c]g]ejmAGVD\U@J\ENURr_pCER[[hMYJLGvaRVRJ_f\_GmRURf[l^MqsL@[QcRO^JXseWBSJiOaeLOUe[]FuZMY`h>GV\SaSSFZj_MYXUPJXQ]YCx]fbVfMc5cWbaLHG\lZOYE\]ZesEc^`Qda|he[n\ga`p\SeiRen:ZRV_U`XWvGaQVfk[ddmJZZMOWiWRkwl^qaCMldPeaCsVXIFWhp\IaFpMNX\lcJWf`tr^^ZaUrWjEDgKX~WZ\RwZe_cNLjm]:\WfTh\relfPJNpYG]Q[JVRSXeNhKfBRWc]WX_JoFraeNWmIUTiWa_TI5gPSn`UMZ`WE]ZESeGFWOObS_flYjBe[\lGM_XfiT]jcx\b^ZSZETETXPQwFEQnHXIj\BcZlOQ~>DAa`odIOZ^XSSrT}hU7]5PZXOV[MDF4]p_WLoquoJ[^oK]][Ro]WYOC_]gZZcKipG@MvsXU{W5@Ld9\{RfWkBbGEIUAkRLYZeRWn\`]LTTbj[qBXMYvISQ?^O:PbYb[`~ua^COIW`h@cBiWRNGTa[DcOUm[`elDZT8y>SbXjgT[Nf]\YHXGWK:nGkrT`P^RVPICt_DaJ\:nTeHtM|*T]QKPEiXlPr)vUdf9]jKb;UOa@MMc\~Z_JUOLmN\lVZkRfpVXKbkQZGb\=iS_EeW|CHR^P^Y["MJ[YT`WIPO^JYWngOKh_eBO_z_8]BRrUJ3a_@=SYSHVTReH\T]=dE15Lbb]ZRN_H@QZhDxQ:hBTDdL[BYhUoVVm[jw`QgfheVgil{WkYe[uh]?X`qSa`UlCY^Anh}`[_UUGeahTVM;UXYecbZTXNIHfgt[\OQR[RK`R\_^fLlbSi\YgV_bNRHC]MY]Zf]SX@GL3fnggfucMrL^b`A^aT\QRX|[DV\vI?sn\F__y_Z\naSPGEMWgkOSEWaDpgeiZ_ec^[j]r^awWVPXOIPoaOXC@]ooUe^djJOTZhTOStRc`RNPPO^LdXgo]etP^aTSU^ZQ}VhU^\^QpYFZT[ThRUT[QWwrRTL_Q?U[MVTG\[CTU`feBgj_\dgT]HulqR]bWxVLNXHaNXeqrPE\[LvGb_X^f[WXlWXb>A^\TfTSdjNOPISoTKV_gLEI_RP?xhHPv[bD^dcqgWQTSX[Q[_NG`cjN^icTEbChKNIKZGL\pfFPVFlKLXd`fabeU?c\[GidSZfQYjuAUaKPRNJcSbQP[^kKVQYYYUXWbc]BbhFR]fhd`aen_RzNO[?Nm]KTWN[nQVSlXNb`aTaXR^_ZfmeXn^ZWVGoZ`[]JkZL\N_ZdEMeSZOYQ[XMTfLN<5SyuD\?jg]RmZYYUgX][g[r5LKTDYd]XRPUTbPHOOw^f[YZqKZoQiOaOMkAdhTjJoVa]ybgXNPRZeiMbU[CC`IUk8pgZTMpD[@EEXM;H^PccOSWeh8K[UKRaSK]O_8T\S4\j[UVIbZ[iVakKpT\GOTF9WPUpVaBH\bRILjg]g.G]FdV]N[RzMCBYq`FTVcSd]QXN_}VIEYOJbgzdK~WiLeXemQrW_KFxjT][^QHgXbZSJF^VS?ihTaTM^ZP|am[ioQtT^lJNTSIfNPKbr`SZgCURhVEP__DdOVmXJf`QSgdbAj`ZMQCgKtUN?tFg7=FcaF[XILORl^VSI[pia]U][n@l\LTPITMJTF|W]DN\GS[Tc;gJKpSQIS_KL;:k{hW_]j]>moTYxquEHQ]H`g_UY^OSYeVl5K\k[J`ZOOqcOXV]}GYq\XktWCaxLVLKIAUeM]WjhJWAT^nVPPURR]dMbX^^m_IiG`ls\cVK`QgrIykKISN]^>EOVUb[FaJWF`LPsPc\RYRVcaaQY[cVNd]TNOY]>XoVTtGqCNZU[YGv\^hS^jWaHQiQepRvb`eXF`]RX[W`LYYWRgS[qLS4RAWHeubUc]TYL_S`]i^`oGPOUg`RRXV^?aOe`]dYVT_U\JZYdVS^U]hwa@JYbg^vJFV\QVgjgqR\ZhOmjVZSpNYGF[KRAelrMVhEnFeJOI^H^KRhU`dgPbVQWbY]YVQWbLZRUHZTLTPbdTQL`VfWfavV^k[eO[_iOPRTUaS^\_g^M^PSDdpXg@^]`CVTGPJXYBBXOrYiT|U[dVIDePRH^aVk_\T[iTdOXLtKj\`flI_yDpSJZ]B{[Yf_T`\[XucaQ`RTCJk>tShC:U@_MYOYD7UTG_BaypPPaDNjPmSaKTXGPPbfdwZTYObO=u`M8\QS_dN]jkGebBXqRaOyG?E/XeaUIZ\iEOa`xZJL0vL^EYEmHKXKRVIOeLcuhH\rgBfWq@H\eiW\SX=XgZ4rYUSlNdVlluTNNcN\O`H]gkgVJHp^PY]kjQGYVVEQ_LNYUVWvLS]GnJ`VEtSUiadJV[b_JaLJYQH[L_OaDZVMdUq[wO]_S=~VD}RNHb_XOOC][lGY:ONP[_UaWf[\oZQuTXl?GJ\R[afUgXQTkYHDbsSTMb`YCaVIaQeTNh\Y\b[SIIC@ROkZdpDMMgToGjUbQNWRTLYQZO>QVW\ZZAYnb`HVpNjVGbWmxJB:1=?LT?YfrEQBjpQAq`K[VaPZSUK>W\@EaVD[tJO\EnLNI]ricSoeQ[gTN=UT[`_VfbEFeUKbPPLgB3Y_Yy^?_GDvcecUazG[HHZ`dOXZZ_KON[pJE]aZBudaVdP>\Idq^[Ys\afIAbR~^uh^UJZQRNXEXaa<^fGI?=EdfY[]WEls6E5W_gINPo[d]`PNQ\LTEpLZABKEoEHM^Y7nYMXsiQeYAVRnO=VNYhbhYsd^TL[VssCbcQb^zpW8WF`oPJlSvPNbQ~dZ9]S>[mLjg`YSNf_J_TlWE[APMbWXTahhraS]DPW`;T[[`>LBLbZm_TeAZZb`K]EXOMMh[YeYJ;aPVjmYZ[aHWtRMOXjG]PJVYK\\HQpdJo[IZnqQvKOcFQLgVJf}EocPY^SPMJlWbWiKUTUuC_WZRFb`sH\_l@RI}dU_RkDfhJ1VA`cEeN\EGUQ`\bRRW]PU\VPOKXJKG[eX[V^PQQgzGwsJbY_cKf]RHwq>AgpWGfSbrVRRcPbOTjcdYB@KWQZa\xZS]NcSFffrHRRZOWZKabXRc:RcFDZWW^[^\gp\]T`hVae`\LOJKVdIh?M_R=VU`^[SPQiFI^pE^UIDJiU>MAbiSLL{JqIYbKbhLGKHL^MLHZkPaeEsslX[bdCJonnh^0O]?F\qhWNSMQ`^Rg_D@cmo]ZAadLjYhUXaL7oSgek`[OxFO>WaNbiO`e[]NS`Xv\ggTMYY_IEti6PTeWSSL]SNjNMWYfZSjPNUHLb_jE<_8[JaNMcKF\vgs[Y]E}b[W[dLM5PaH?LZ_LYX7Z{XWWEcdII]CORy_=v^OikB[5a__YGvLUFH[>IYgVD``QeP_X^U\RUXaEQKVWiR\Pa_V]PTPWL[XoVPU_ZlqagZcocGRrLOZNYRI?mCXCNXLGbGY`PMgD\^ehG\\IX5LGrP[IdRm\sRViZdT?P_cddUFMDLRaamK_gZ[^NGRTS[SDk\^aI\\{YNBdpc_l^SlcRpDYRCVVhyc^BMeB^USXhZUYd[wmN[Lb[`@y?h`aprgQIAA>KL:jMCRCFc8pVQbKK6Q|pTXT8QmrQxB[esaW,pD=CUX\]^Wc]XIkWVTN\@<@nYWtccs?hH7ZiWfbI]NFDTv:?R=^VPSIgNghYgclZ[icRiReXivd\\mTVncWX{^bOqYvbloXIkNd=nfMNJk\?rPGi]S`GT@TQ`iQ=bPL^WMFOZL^ZkBCT9aF\YWR_TGdV`TYf[S_nUUZDbZNfR]\FkLJSONx`XVpO_N[YPgRTXCQr^Re_}UkFatC_EdRX_TTfQUHRdvjIWeSNYPMPMkOhleRLvZhRlXP]Rd=MHkKQ\MqP]bYNWlZmd_Y6mUIXPJSUNgZ>R`S~@nnNNgIZeWcTb[YpS_P_gK_qkPefX;`E>F-WHWVgQQdWQ[^gfFeUJs[b[a\WM_[[R}RPEK^OfaCaVpr^YAzdKaOYXQBPH`_K5]MfX]NJgUcqfEnMwSP|MmnUoj{XKje]hSMRTIbecFFbuSbTqQeYc}EOJUQzdDWRab>pegVUUiPwIZqRhf^AbicIN=CRdaDa:MYiKZONWKZ[RlgPR]B=hJaGaI[_iY*XhRkTcgMCX{cURVix[`Nl@nQ\^DNYFLAMURfR`LdY`G\CYGY@IncOuZ`XW>qfXJRh}k4NfPhdBbJ?LBng\@kOSyBY[QVhU_A`g>AR=VYtVk[OWzWhXmOowMP\^rZbV[>vMeOTW^MKUXGI[gwblj>OYQXdR]VVPRgc][@ZhkhlOWaJGWWtYOThOgL\\YkX>NdxJVDWXMbYR[AJTklZMV^ahnvJBHU5M[PO^UAXjCXdYYXJ/UiQrGL5u@WJesYQPUUHQT`TMKTG_GIFErV=c^GVXgc>g{[TNQfTX\]QT_MLw4dPnfWV^6eLqYN[COkF\yaKaar\VfhZf,[SY\O[U_SLdBZG]nIWgN_JPm\Rb[fRMFOhRp\pVT^XHUDbeLcZtTQ*Oi[cTKaJULRri7~X[XkYfZOoaUxVASeh\Vn\KRQYcSb`gXQkT\M^rdQ^jM]JO_WrkWkPz]^HUaw_ofXJs`N]GXRKJ]Qjdm}cPKc`]WYohJ][BZ^UIuHT\FXejRexh[sZclcQTwGLwLIa^ReaRjYP\NNUnehAVhB[^OSQZa]SYXlXR\JeB\jagLNQ`l]Z|]ZckUshSPT_GSYY^NSQUYMSZMXOTVRiIINc^OP[YkbLYVPWJfcGPSdeUcWjRbMAdjbI`ciN~R]QHWUfcpFRPYwnL]iXZci\AYSamPrITXNEdE|WZ_YSggZF7_wcZFWcJ_LSTcZ^MQH];f;MhlCD`pM^Wc[Y`RFKQ7PVCAJL2\YMYg:hQO\PalNgy8;DUiZQPVX]V]WR]KG8SGJu>QB\_Ga`^gEVTn|j:[hdNR^IJMkSSk@PVcQ^>`dh_^rPFYQO]eSPXpY^UXi[O`NeO`SMWc^_NlzMTWagPkCcSUihf[oQtjc5LV]CAJ^Q`GQ]Ps\fQMf[^ZS_ZWQ7}QGImpi[_\^NuM^M]^n`@ZHbTbahkjLNqYpFS~Y`YYPh!MqJZcAd\\?X]H_IFHM[IROOsNUUaeMTCo[jXAfzL=JZhc]Jlo7NP\^QW;]rRJ]qbLX^|N2kat^PD8QH`_oYDnajcM}:Ne\Dh[^edhBgeVLcs^YVnjTCY[dK]d\M`QQLNrbjXiFiwYTZYJeEl?V\I^R~`eW[`nPTCG^f`>bShVi]WR`t_]HqePhWkn^JgQTNZ_YbPYrDqRq^^_n|>TwUwSYtRK=NT?ZJ[XPQPQtL^^Q]U|e9bM[cP^r_VqV^b[QTQgkr`V_Y_MdCYNjbtNIeL_STkY\d[Uv>SF5Ud]KOUM}fJ_Ac=RooI`mkIZ?hXVTxdHfgiVYgTMPFOq>T`ihFYOXoNpYQ_YGS^UBQnOlbSDa_AaNVbZfMY[SnWOCR;IhDGcQTXfb`V6VlOJLB_Vo\ajNLRLY[_rkjKUcaPZVIU[NXe_\_sQEKd?Z`V[XhTf`fdGOTfhJZoS\^dqZZ`ahi^pYMALeEcZZdk^]VVfSCTn`pTYG:Pt|IKj^I[PFB:YOIe>_QkKE^Oi`WRJYkc@LllLR[ZQX_]bQ[MHXQXJqJeaPMYIVJI]UU_EvDB_?cX[f}_OXQH`CXTGQPWRbXNUCUmZPS\E>d^bObSOXk][d{9<`P\`dSRf-YrlBaJOoDI_Q[Q\Rmg`LlVOp^cZc>xNq[E[hUrSArWc>ZlCSJ\\]gHT[hbiNtT[\Kq^n7V_@cYL\SWT_VAHZ]cbRUL:XS^H^Q`WRVhgXLV;VO\tQOgGEWKB_LiKSaDRmK^MvK@LVrdB^]OqRkh;pkpFT_dZMNWcN_ZmLGaQV3`L[UIipVY_VCqaYhZA[OO`@Q}CLUSS_bLO^_IQW>yNFPgeXUVZPMWaHld=Vjejc5V_JP^IejAm:[YNSPQ9ekiE^PEYX[RUDTRN^Pa_{`ZzYYGNb]Bdi`YPQZVfY?fDKYRCe^_NUozMyNdobi~E7nGb\IH`pUXacJGL^faXc\zdGbGK\dE^iObSMB][EhfYVSXQgMBf^tNki`h`RrHOOT{CgL@ryL_NrO`{[\YLB[GSEMnQYJGZEGWYXOSY>RCaSN0ajQjh~ZR^KPk`CrMGKK[_b]drevCVhakXl4Z`a`:n[RJNT;IA]LB[qcbZJIXZRMx\VT?^QbpOrIff`}\Pj_S\fSTT?NCXSOYVSjd_N^KkYLM_qUoHWvMaOUddjWgXQjQZFHSUD7WBPSRX^j]FPYqaRCLgZa`SgZ:UXb{^WYaPPncS^Ol8QON~hUP`[`MPOTe_=T\JSbh`GY@\eOa]mFj?dfeijQ;M@Io^Q^aMTFGNIY`fM]K^gika;i\?bNGOqWXEIYX5@\HYIv9I_c?l[cSWfi]sZVTZ9j]PVoUNMOg`G[^UVW|]`\VRjpRlxTQNKHSaKcO`RlWaTwBl_]N[SMQuMQHc_dXQsigObjRKB_WWCK[Xp>dfw\_JR\ceZ\zjDdWxUATeQ`no\CFPXs]QX_LG`Zbc`POcsHW_ULTaZ`KVH9_ndHeXXambW^oQ]l^mNRLQ^ckPSLj^KhHW]a_sbr}`[L\La\[I[OLRE[EvuBg[SFe^YZ[VjY^iWayTSO]aRRhfFDQ>^gJZXJ]>g>QLLJL`Kpa_z?U?]:_N6b_XLZyU_qbJEo_eKFMMLg[_k@ZS]UHSHZGTiWeqJgcYWEfZegG|YQXWlZQY\PTIeK_EPaki}dOBWaN7L_glc[QPs?ZcRTYKa)n``[XQSJI]U]OSJPXtiKaJsQTYWK=TUW{WuZuL\bZRqJsOhLpR?fO;jahgPFbUENMg_mMViSlgdJh[UoO\kdeJE]bKpW_KKZFo^@kFUqQc9W\hIKPh^SdGcIuHLR]GIFbNaoTVZB_fWWiWKfLPTt^eSHEpSSEgfWaWT^[XXLXUxNbqDsV]9`VJiPnTtYNBg^SHJ_aMHnu]UfXXIVZS\cMpg?IPRzXi`JwochnNh]\bPeJlVQ^KXnFgZX?LOPZcg\g[LPxjVMeuXjEUSsTaEIDLWOK_\_\aS_[Q\NV]qWmkrmoK]ykbVkWT^l#\ZSOSiGcx[\^}FkS`D@NQUkCRaatlIOLlc8Qc]eyMSVBhfnRXJYbMbmvXLP0X[WgVbMYySv]\]gbdRcrI^KVNeF`BczTcCAROKG=xSn_YFW`WWdHXROb\Su`fJdSVtiH@7Dhg\MEu_IUuW`S[~ke9KfNWZVcja_UZTkX_ujTd\hBxLc@jhRc_Q^>aZVkSkISLbxNaPTO[S_]\e\GMUBNikpa`ZwRU_Zc[]`TCQg[colZ`RCN\BJVTgXZ^ZmY{Q^]JCfIWBYcTH[CKkTsXaGRQWKNYkYiTJ^PlOzonFbTOiFLMXZJ]U[b[hHMj~LMAbiPfkZ_jkEcUgWF`SjaOFpVvX[N\saH]ZVTza`[`VyFPY]SWLmXcIfRTY7oDdUfMVLZh[Y`VcOnmMlRm^^tO\QFcUZ]Y\Sb\]NL]V\M^]coQQN}hUTrbkkj[UZs\jpdXS.UWa\:^M}SO[DlFaNnEBZk}e=ROxgegSXI\N:[NVzZ=i]uUUDsM]rTJkN?VYhlZ^^KEmm>XdfStNZUdeN\VYrf_fyM[rKb^aWJWlBJEcO]MSYtwK]_TIb`HTBKYQM]\SVcjj_S^iXDXzTLmJ=SQR_Wp[T9UnTRZU@Gg^R]Z_scaXYXF>aZKOX2K^WKKHO_^\kMedC[TOE`a8\dWYufZMpWZHWx_SmRNDGKAZ`ZGpZ]kPiS{G[CJ`^JaXTYYKOkMWSNTPcl`fIM`YbUEITIAtZWTlbX_Eh;_jJZkRq>KG\l@lc1g[GrQQReGcDP^GWSX]iLoBVgWXsgW=Hc>PTKOQVAYNEU]F[`]:VOh@K;tj}gO]GYWL^bOUCR_n^SgNIOFeQk^cVecIp}MZc]Z`WVETOcxU\ft]UgPQKNcA`<\NPU\ZGlRUOHFN_TYPTQ]NPa]i_Ot[[SQHmnBg\[N_n]a[JcDVKP`YN^sGd\YSNVrXah\nj`XdXKdMH\W^gccX]Fci=[I]UeZ[BYVFbb\ZoK[M\[XbaWNoPUDOU`^QPt`Ra`qMqTm=aVQTe\MVRrLhaGV{deVTqYeVb`m_WFiuX\D:dnYRaPj@TKhObnn\LPJ|OcZeW]]?QRQcmLA@M_j8;U`dWaKLPXavVHHHzNaR^2NScebnDTFFW2KE.LW]GXU]ARthebZMX\^jbgnG[egUhnFZmh[OnhYnPU]QCgmVoZ\Q\R^NnU]fXi_hUbcOXgi;b[]r_M7;AldfwHfbdrZwRCh`mWc][tQ\Sy=@V]ZyZ^qsw`[@^kWM_yWpM_8YO_PaToFOJQXDx_lLPOX`XnqXiL]YiQnQwJPVCiT`zFilrMfYVRrrew`dROWYiCNJFPe`[d}sHic]>Wb\e]aVjY9kl[CcMTF\JkeEUh:bU@GXWV-sYN^(\`jpISSg`F[GOTWtsaMZHJ:eTladXOBXr`f\KV^QYpkO]Dc^c?^bdOE`bJ]dKLbHW]YeR]HHf>`=WMYOJ`9_j\[Y`[_IZcUEUNac`V3M[J_G]Uns[YKcQHBn]:upvfc_FW7ZjMLmWcJHU\T1RK__ae]OUQfaxt]}ZbH?jtNkBZaI8Q_Orm>FYFVQJ>cW]hEMEX?f[[FawncXkJ:NfHV;A\`]VHdMAa2VQwvUTpjf^I6=oZ;[KZMGcNDdVPLiYLNbUUN[VV_GDCEJFYd6CK[_deLFVvSpDgLRPPYbO][]LrPGG;pTpURIfR^K\[[tYZDjfkPJWl;ZNOZR_WncbK8^\Kb[YrYRXI]=ZKGgrjDTJ>UMVcPg_TGGXegM6a3SejPDG`[+GLOTeXhcPOinU^X^fTSJhEpWBK}_ZPnYZOyl[^G`aJ]xViWyXL^TZJK_bslRMd__UKF\ktRN]>PMQR]STgOPXTDV@?XY`cmme^lPfdd]cVO~HQ]YHYNk~JHRRA=HcX\LN`[g]|YR]_YyiywSN[h9PHcij[Ng[EP<[YPp`GBpQ]Vd^gKc[_XRkl`UZomYhp`WXWpeAX\OiPIZYQIUPOy^dYt[MgXbXeUb]\aQEbVD\BPZGJKbYdY^IOZe`i^?LOYRMPoFT\pGRMb_j[TWkZhhfTU^^~DZU`m_PRaLSL^Xj`b>QoglXS7vbcZ[]YegLmb]QUQllKcOeIwQbNhJp[WEOYOSIbb`Nl9cRN\d`A=T[UEhb\YTQ]bL?LYUGLb_QSO]\oR[_QW^qZjXUORKIkF[idNebJYWVWLmWTaY]HW_?XAOUf[JKFnSZ[cg1^VK:\VWIIcTZVWNGVYOUZj[9ONJ_dYuDKSaFQmb[nfYFeacBKHcocWLZp;odZVzOHi^sNwSPDbi_xcQ`[NOb^SY_JG]A\K{uQSTQ9sTQj2IPNRMkZaYJTg\qJ`SM[pErVbhY]SmgfLcS^AF]aQ~`e`GSSNZ\RjKZ]^[[_s``NTNbCUYFRhdPFSPJelqd`\HCRsbdZ\`WEWLKUkBHSc?jkO[SUeiZ]M9KO[RVcfYJ:abP]^WN[_ea]QjcCS;IHTOi_Bc`]R`^TmM`XMy\@aWrUpVgFEI]DThvVqSOZ@@`WXXcZRe[FaVQLVL:EnMbg\I`a_loOIOY`F]W]LOTUSDaU_hbIIVTc|PsZ`]LGX]HTTUSFR[c]GYff``FoOVedFNnZd]TrT`\fP_`he]SQMak_\^c[H{JDNUU_bdRHf\@NFi^9lJmX[U[VeRHRE\XYPq=[`9TD_^gHUH[INPnW:lauZsA_coJWjP_gTYkMXdZVWWF_LM^`g^UmJg[QjZWTYh1Lnh6NadLnfBdWQTrPW;[Mq\MDJGDtZOKIMP_uX`\S\fyUcOrUQt\[RX=WEaZZq}[_fMYY_ZlgyWoYQiX4T^GWBdyMO\f^P@NZ^Z_eC\`LWZV^XfWUVhd6EIbk`OK[K:fm\lJPRSLagUPabk|UhCOyRFv`Y[_^XS\OaC^[Z`OLPKW]\Nl@scm`OQcc^?vCi~kf_WRpgd\P|_LnWez=GYjhQRF[u`}_WQZnEFE`IcCOG^vhjOkRlO=XdmiSaeAgRMWASOSgJY]TLIaONZhg[^^FUmW^YOB]PznXsAMytUYQEMVOdpS_NQQJ\`~Xj\XXhB,]`m`S7N\jcT\[XYvl]Zic\VL:GrP\d`Sl``i[Fb[]GYYd`_C[RQNbekErnzXYUa-dLPPUQddRPfAJh^WN\UL^kW^uPQpeKzZYWn5Lpc[\I>NlmJ^yjbhre.[eiKVZTZT^ZPaFRpD^X[VuqGS[Y7AffAbuV^Ya?NriL_h\ZSQW`HN`R?WeVKYFabRUc[il}_OYobpfQ^WlC\GlPfF[]LTjTQRYVTgNeO^c^NSVOS7H>YyOQQidZR|^P:ZXLTtFFablaBbb|dYAqGH[cV_TV\LSZQnIf:FYyUjqD[HGSzWUI]\Z]h_aQafYdH`RYRJMiYc6d@QNNZErYay}_d?PROhY`f^XMkOcdY_CUL\yIP:M_[ZPY\_1OWDo?\\I^PIXVH@CqYg[^XlWP_G[SOgoYbUOcKWeaNHgbwELPQ2gSPBq:zTbWR`EKq^dYIfafO%xX^d`cZEO_^WOoMP78KUXeaOXSTbfO[QYhePaUiu=rEfUPascKqQVnN]jMYujg`hNaO>`gDYaBsXkJ^Hcd]xoLtQxOMio_]YaeZdc\YM^h^djp\AISOY`sSVXj`OHhnYVQg_JL\UuUaOiiQzTErSiAmE_HOQ\iR{^OS]G:^eRaK2FrHU]OfoiA]NLNmWcwqmdd:F;uPSf\FYUmiQXCeajZcLIWOXfRMGVGaaWZfgG{qkRMefMYRaIlT`evmGDV~a_SVSQ_fOLj^cS]}uhPQpaFInOcmQQh\H]M\bm_gSTNAZ?O{vPsJTmenOcJJ}_keSKQR`aMeKQnmZNLdIc7TSUJHqToLKFb^awWKBJhTc{SWRXXRHZme\]ZcGQRXW_Zw]W`dALN_u^dlfVPN\OlrajZ[AOptMTfJGVIfVhSPETXEaKrt]iX\\CUTZGs^LQXNOThRKk]HG~i_uXVkYQVuOKdbJjDFLFeJ]vvOCLnSGNXd`o^X_u\tO^ccxUxSk^dDgLp7\dck.6USjWZolcc8TfZ@NsOXLNZXTaZ`RYJ^M_ZONCWH`bLEDZQRfBSQfS_YLFN]\WGOfdUVeaDiyLW`a^e\WWTdPA]NT_OKlKZ`a_kcaW^OoThPPzUFMQPTeXoRYUVkTWbRXT`nWYkSSK{a^Z\YWT`Ot}JmPMgJpLRKEnmdYK`xWQlW`kbItdEIlhUSDPg\nYPjWSDoVq[PU_X_ZVe[b^_aNOH\CA`Y^OaNT^^euh]IkhZMzeXtTQdpJQndn_ULMPMQfWNG_f^WZVcmSvS^_`UQA]jnT_hiIobNXe|SS_fAMJJ>P[_bMOYPOkkU@^TkfMSTR`_laQfbPVXgbfY`P[]Lf\qeqPgarlhZLKccxs]_~sTU^E`^NlOnnLURo^cRXUgVXBTJgVY^SL^vhhjPK`KwH^HfTUh]wISRBSVkCQcRh>jlXJbc|@[K6{i^WPlOtBc\LQIIi\T_RWKYZgZUOhXBZNQxIIWKL`dRTW]SYdRpCSGXgPQGILWNWH]UdkRTcYXiGC_QEX^ZjaLJIVXPHJ`iZlYb[[ccSoX[MLl^{SRc[GBboDHbWemSCWM{GVX[[\GDn?LdQPYPRgS[_lOxpUXA[[HRKWL]bXOpWcPpG\F_eJS[KKL[NeTKwnS\KICmIS_ZhU\H<\QI;VgmaEUdS\IKId\aFOUzKiR`g^LIsa@yJ_A^ZVXPhK`caRjnaR[kvs=rG]U\oI]\}?IPQndYPQY==:|@UcLR`lOf_?MQBtseUkeR>h\jPFsOXmmK^yGK[kIhLWyV^X[Zpbe]ckeLeLOZML_cx_iFXiXVlVJS[ecN`hbTXrHcZDcbRMOh_jQJSvZ[HYgdYm]aORiMRkQpOWJT[_]ITxUWCI]Vg]cllgRYtNARAjaV\T]gdeabu^;b[UOzmq]WLKY^[xv`Ic\a\c>]][M~P_]QaP^]cJ_Y\?Gj\?fDIz[MSFbOgJPTTXReffWSI]ADQ|^_FRYZ^\VQOfcXNeY\eWGc\MilObPmRldY[ReJWYV?xZKO1N@[ObXElesSZd@[MNlnLfs]Sh`dsI^gdNS|IEYYPf{Y[Qb^zMWuRV_IX^R[YkMX^e;yZbHxOd^TFomZC;_gJHMhY[ufiitSWfSKHR[]ag~_\b`BuuTVzTJT\Zca\^pOMcEJnQVXbpGOUnXlIVOHB|Wn`ZRK?yTFR^HpkZBrRkbfTgdHS2JdOUubL^Y]I_hHO\xcWTcTsXgnFUjS\^WYT_NaZqgrXWTXbcY}dVF\nIiRCVbR{`JPdOnnjp_TZZ`\bPeP>Lp^`VAQhHkJZuZfSiFJrXIi=St`\Tn__|\lV=^PocR^Pd[NtSOVH`ZHnc`O\l_HrwRSXO]a?uMQmcEUcEN@sfWTfGeV\MeqTmTh``gTHUK_PVeSPskFoZKMMZFMeZ{Z`jQXMGmOMmxKMIcnRY_WPRQG^sIWcb[PQd`PbWZfU^`cdMIJ^IUSlUXghHIJViIWJ]VTZl[`V^ReNL]GiScAbWoaV_VMZbasISe_IQODddmPJf}U]>HrHLNEqOWfbbQ\sVYo]`WXs_OsMATfxeKtw`XOFPzmE[YV\W^?_Wh>hSi:QiLa~Fhmk?HOPNHZRoZRNDTZXRjwVXLU^TMUQLUnLJ;c>_cIMbXL9RNILWm\pC`>eLi`\WNVVdYjGoNIXPkjUfhHtV\R`NK^(SF[[ZF_WTOJn]^[HTdM,cX^OjfLBM[V]PUN=pSPRmhJDZSPOYQPPpV[bN]OGdRWY_bLJ=_TO]_W|\Fs_C[[[^XilT^|[GNQRAZ^SbVlZoMWHLkQPR^J_G^aNIJXS>\g[Yy]UZmku^dPZTdIWqOKN]jjPVXQPWIi[ZfYcfLVH^siciJeQ[QJ>NQEhb_U[VCR~dlJTuZ]SWc`V`On_EOkYOP;ye`_BLO\`i`[q]Vrb_/eeTKLjDQv^[UWiPws[dMZKJCVhOLHXYGFKTRci[`o@JRJJsTSvVYUcU`pKRMTcTRS_mctSO`DYWqDsVmOOiwZ[hSvURdYh_DXt[PYVB@Rke_^Qr[SQ_KGOXxU^O_V]BYIZ9QWSjcDjXT3gCbBUVSS_g[KV]HVbZLdYmMRVnpUk8JYHGFrZejH[LZW^YOK`TVcEV7Qc^PJiJ=^SxVHuLBISP]cfIO_WVRTL\a7ISL@RoUbO_Q^JaBOBYY<[MTX[JcSMTHSUOnWAROmhP[cVC\OyXa[D3U\HURXWT^PqJ`cgZWRTQQbOXQMWF^RVamFTO[gZP[IglXcqGGPdXeISbX]UlHBLMnDcSXN]jer\b[g?XwMxkV?MfUcXQSOHQOMouYTCUXtcPd9>ecUVNV=PY>XV\cV[aaambMnPIQNWQZlOUfOJ^`NehQbUnJYoZ]RG[DLWj?X]V`Q_OOA]Jf^XZqNX\\_R`Z_n]IgbmcmEWtC`LMZ`JVUCRI`l[`YZiGUOLc^TkHPU`Eh??mJOaS^wINK`KTuVRRV2X[ebkMnVGF\C`aCMViL@`\QjMd[KVcZPJ5QMMf``SNmYNlcKgBGXdt=GaJ6`Ol^DNh[exTHXYU]teTuXT^VMYIhiXCTT^cX[ZYO]KYZZWJGLZSW^e_`PoOJVg[]Y=jNTgOVRb^OjSnz`qcWgYKAIKTXEhSEAici][csIXENWSISVZmWDEUQy`j_JWfQbkR]ZH_kMLxqSK_vgJ[X=NOReWFrg_XkKWutULTYXMK`agZO`fKgRUlWPd`hG\SmU^ndrFT=Na{ZREIN:SdXIRkaT[WUCUfQ[LZiaSRf\OZYZ^W~e[i]afLkYMbUMhiK_HWKTq[PD[gLg}PhOInkfqYkYXHh]BxmVQYHS?GUN_TVMJPNW^vDMDGihQMcblXQIgP{~l[MU[RIhO[v;Sm`[\HoTTQ6Z3fXXRK@nYnZO\LaJ[ff^CjmSTclYoWJf\n=c[GIMoaNl_\Y[:eaIbYWeU\oUUVfMlXeKRiPuQ\d_DTLUL[H@oYMU]]YQIXcH[[WLXJPK^AQ`XYQ\dhZXrKNi^}R8WcXdXP?R[IZ]LNqicSSQddg[VHjd\Nf^T?\NyQ\dSF|U^[YIYdi\R^aPUpf9?WbV]VLDk=OPuhcT]R`gZ\alNWrd[Y_ieIBNDLOJa]X[R[`b[NOGb\qeVRWkVBPVZrL^vPUNOY]okjHnUqk]pJoTZAKRP_\[EXWdGUb]jd__LSi\[gBlPJcZXSVu[RoTXTS^HWb]>ANhq[BLRg]efcT\QpPIMXRIUqV.r>]AuvhqZiHPTQhTiVQbKYf`OI`HHa_Ucd7Q^bQgChGHAWjdd`IO`CZN`XEbIgCOkfbFR@|O`fQ@S9q>8NZEjmX2:\RN<@ZFOWKHlZhwYaXHK^gbBLe[X\clSfgH<_VK=Sd@B\gXIX9HJUM`PWMRsZUVE1LQUSx[YK@Y^\YZBFMB@iabu[hJSW\N[bUB^gMfqsB^YX@a\)S`\LJqWVZdJTXe{XbNKSTN>ODrGVNYmEg;YKWUTZQQnLy=iPq[\jCKL;FzX\_EJ[CeLSCChGThEvsMf?DZYCBQ,lU_YEd`[NNkI^HvXneGidAI\\bZNXLgKP[KVOVhTFoDEPWUs`Q[eni]@NlBLKQdQ\`iFNdqYGGMqWKZjTfOQiVOKjbFUOa_Pp\R\P_ONWZ>^PZOh^hOj^`GJeXeEWGl\RLMjNNI8HY]OAWUjVDnTXtg^i>T\UK`mr\bYKeCPf[\NaTmOmie[\IUWgcWiVaQvVcZXmgKGbUdMa]VYKde_Ug`VYmYRFwTa8gYL\WNCZD\X[PWiYtWS_RfYQ[gaaQP[dOQd\GdZMKKU\UudS__oa4PO\Qe`XWOLZHZd^NNg4MIFGW[h]?Zd^cW]dg[i\ddXTUP<_g[Q\R[]\PaQ`UYIba_IVYm_cZRhVNc^TO@7OWrf_^XMRfg^cccRYQkI7Mh\aMY_imb`BWWVrb^X[^ZRxNGUoUsUoA[F@?m^TKhAYz`bLnHefKT@ubCMO[FemKXLeCRKCQRHT`eZ]Oe\eKPZh`^bSUJjajTdjQHL?UWJHjc\[fIX[a@a_MXJaPqefB\qfeUEG>OyMfVg[ch]sgIshSDRET\RaQiZaK]YRSRhd`;^MZPLOhOgh\SY]_`fkWNa`agYRJVFOl[X]y]^diPFTaefVF^Ue^jpab]TzYlMgMhfab]klPWGWlZm]Kku]aXYYQ[TKWbSTXNV]OsULHfmZYTjHRcQDc@e_aP^GCCHRDHk]0bjGWOGLhHXlBTl<`cfQ[hGOjZGFQnlTLVIPrN[UWSHIT_\8dqPKH[as_NTxUi^^LWqUTSoRaUXiPH``a]Z`NRdZEbdTWMPh{SL:NIcIGPQVgQX\O\7iPlJ5^`LLYRXRkaJtaXfYA[_STbSeYRpNT\^PSUNctIg~Yj6JSS]T^@G`NY_^sTDQ]UR[T[G]C^YQgMp]Q\OQjLHo\W>^M^JFQlZfcXSi[MUJkWI[pDdVLms}?iS^p^HHVJviMP`PRB]g_`MzXB9cTg]XOHYlbWVnWGTOVT]R[GLaWV`9JPSKI=c_[~RWP?WZTWWv`g/nMYNikQaYTdZdRJOdM5\QJb]`nMTZWpZVdWUa_{jT^cDlZCR]ZC[Rl^qTFdVY`_MaaUUPcbXiUThKfkTkSLgE^l\W]^aMkT`(JU]KjaMUnEwPi\_G]XNxDgVRZs[^`go\KWB_\`o`DRFzKdATM]AQEaO`EEN]_H[Zb`bdD`r^aMXfMSZG\RYR{;u\RQge[R[ZTInG:TZhZGKaPV]NLhDEVDW_SRX^lGoxMSXaCZ>\_WCbSpaOUZVcgmP_pc^Ob@iY7BKY][>RMeVOhCcesRgVZ`qZIkl_RPeNRnN^Ya`arGiGemGoW]\c[nR;RhQhvJyZfPV`X/^fySGxhRrZRnJOj-z?WY3KOVZEMfj\KLpaZ\QLQJZNEiQFoKV_jW^WfCizR]fVbh^[RlOQLSoSlomSRNaN^_gVTUFPUqQQdTLl{_rOIZQMNsctp_Ka`SGCWGnYpduaODIJcJ\LQY\^SbdU_[;NUQTYUEMGZdaMVR\[ZVkQYXMqZUz\blJwGHGdOv_w[Z]MaaLF^^igMTgXWQ[cI^QRQb_MDfGabE[PHTPj_hHmKgndt\gVGrrgd]\USThRm^JWUOnSRCnKQ\DV^JMYfaaZ\VX]ZbsTT\K[IVK\nnnEJLwVNh^QeTT9c^VRaSQQaHFFoqZlIbYN]ZN|f\k/AulIPF=AdMHNO[EtKCT]IpakJOiaxXK?`kWMcgZmiHaHZTp}qC[KpZJgPLAEU[URhYo2TgXL\wXb_P[grNqWev^OUNQqjzNSXAOVLTePeJVKZCXW^ISSV^QeZGNIbQKUdU\ZmmWkk_DXgZYG|d;MeI`^]dZk?bYVMOMXGYZ\KC?dqs`NFMELLJk_fV\b[gHUmmZZ]lTaMHLjblMQSR\\VUdZLZl]P`caZCW=LV]9]mNMe\]5XBRbxFWjjG`rSUORQ`V;^TX?QYe^ObbZJ_TXMXXEFNK_\VTJN~FLLQnUc{]jcJhJUm`QZ[OXC[dH^WmeWkDgPTUKGbaTmbT\aDeod[@ZN]PCLL_VhFI_]`QV^WWqfnDmsVzOM_jM?HMR]ZdJYhaTXU:UZ\@B]lNoS]sgQUVQVoSJK^`D;YjCgnNRUDBwVLShUY`C`VbW]LTNAJYKQeocR\HQmVERWFU]lOfM]]lQcYD``[UWcXhYVV]cL__h^RN^\OlXZh]gLVSSPDnIsR^HmLICoZSQUG5X`JlcTwFQ=r]dWOFYUcMIt\_E_]KO`hc_fQDVmhDWVkT^QhYP^W]rYK}WFBRGCYcPXPJgUBPmKzd`KEbJPMh`.]Z}R^OlRZoOnZUW\Y[WQc`SWfqLS\QK\dcLlN@[^EbUBSVV`R:ANS_BXlTXGZnb[XSNwVEdRWJRWj?ANUdSa[XM]bLaZdNJbCK^mNXQ^HZZ]CF]dNgRb\LBiU^QYa^>]ReR_WbMLVVFB\dO[iuXK^_b__LUS_X\VsRohb_ckFXTeWHcOMhW4cB[nDbhoZdQYT^L`fhAaX}TWkYqmIXneYsKTJ]WG[]VQRjJjAh_?TN=SXZRp>nfV`iRC[kKSIpI^d;[V`OW^QcoJJUZd_fRNiJi`hZldYOGIcnQSBKNCV[YG\YGmUiPCNlbThKFBFWKaTcg[\H}Xz\AlW_G`oZb[WWi[YedvU@=SlcWddVT@SlaidAKUOt\RLaXVskf_gHivb\i]zXBcUqLTeKSGYV_ZTsQ]TUJuXE^nbXbY]HhhRL>ZREbL[wjNaZj^rSbfR}SEYZdT_qcvHn_`X`VqYpiD\W_JmwNcUULcGdSRUu[]TRe`RSRFR^k_I^NZo[ERQPmQ]jWedUtxMYcQaYT~RXS\cfKQbdV]jX`e`dcOTIilKoV[_ZYLft_OSLR[a\Kg[OHRP^DzANST\`k_HiVMXXKMuVDWPNjNUeZWeWGKX_\TVeYkL`dIU^PfLa`ZcYRE^X[gTP[jbMBMraLLUSYU[[a^GIQEOSIs\iWLg[]_GtXQXoYM[dRDI_CsdWCRWLfa^SuQrUVYVmQALrJE^gbY]gLOWkQPd_IB\\VVD[\ly`d_M]esSbXjCNNILiSQOPT^vnhIasc``Vjb_YNl_eNTgKdMNNjOlemWXwpDxITfdrMNOENSUL[SVY_GVe\UbYbWZRhYI`jdiTfMjaIOVf_O^L^bKUcxNVZjb?ZXXbYonVZ^_oOJV^T[a]XbEPPQT^T_P\PUla]`X_eS`]_LFCNe`_OLascd]ak{U\MVYnSEjUOF^eHa_daoZeUfCaM`@]cSaNSLjf_x]kfO_aRO<\dNPXitJ>VidJ^lTN\Qk^hYRbQ]NZfxHOT~iKQcUpl^bIJ^KUAXLW~SnuldVQDXLa=F5[Rk[SQTSHPJXb^T[h?aYbcaM^fT]W^TGNRQ;ZcMcOkSQ\^FcJh_dRND\T`enUYFfYPX{ZNJFC[F}`SXK^e]oVLZdOHM^YZRYqYhidL\McNHQSRkRkQJbLSbRN`O`ZSYSc`eXcPIV[K=TRQKSPQKUTmeN\Q;aTaLYYQ[HMfYeMec[Ql~YjREaX\TYUYK`q`^xME\iVZVOL]YbfdYR;ZXOHNfab_jYYc\Yn_]YKTf]iOiS\hcTEdeIQ=cQSZUS>QaLVdaYYS]Ik[gDlZJbeWmZIcMTJOLD`\kKOQeTiGaTGdZcM[XDT@@\ODomT;lUKsz`OaJqFqn0QJF[WM\TUlam;O]ZMIWfTm\fHTQ]WV[aA^jN_\[FWwYJJ\UWrZTd^bi^RSZa\Sz]^\iS[XNYK`HiF[V`_[ebUPURYmpZpEdLcTlTlQP`\_ddXTfNJHZOZcJjccRb^OXZYSzM_[YdZek[]PcOUvsTQ=sNKUTUiEYVtzdOmYXo]\mbO]NJMYSAYYOQP_I_kP~}K\WFRR^KcTUc[IVC\ULdebpXd]WJJLOQkgYVJYAgWn^Z]LWSLWHaQZcOHMYWTVKVfkuhZjV`YO@ZOBL_Kp]afXE_YP~`gg^`HB]Q^eL`BSeXoTa9DcgaLfLXaf_Y}W^TQ=_T6R?c?V[`FOek\JUXeTT[S^KSqqbqQdd\RhbZYUa`lGhdeNlJLXxTVaHYgFky\TgLaGKN\`whTGTDeby^pCUZOi^Qb[O]WiXPcTDo^Rg=R\cM?Y`MZRjibt\T_QSXHRgVMXOm]mMrUSkvNiS`c^_V^XOe[_m_rOLLR`LsWv`UC`U\XYCX{OLdDVfZHU:QcYTGlWdrA]R^_dXRoR\\CGVb_ocWYi[TnW_LkeZQQ[QTaMPV^iLZOcipTfmlLnVURYiKD]oO}TMdo\PQXe`Oi_^SansQhNPWKCNlMjW]g^JZkRV]Vxc?_WZY_WXem@XOJ[Oi[YUfaLh;r?j?6XVkRi^TKHEUZYdvSUcl=RLJZeIX^jO_ZfTcYNS^K[\}YFL]G_\\REZaoYoT_JaWIMrQD_[ZNbSM[\Qjjddx@:EZ[NVf\ejIVnPVL^V^@lLMEhcR[a]OkZGTXV@a\XB]YejsFFS\dT\^SWUrOOVjghO\NXNOcdQSO`^MPKRbXXY`_i_`aSi}VbaVwUG:OQ[QaJJeHMjPJY`H^Zc`\`[RQSJhZ[QKp9sgTnQOVZa^N_Uog^YWbObNbaSaNc]{PPsfSXU]Sc_Y`?a^\kv^cQa^\XOZL]\@XKcXZA]KZXJ]ThBKTNgIXOLSvMgicR_VTtFh@Vh?XjQALkcQXS^NoRBWeba]Z_dbMWq`[FcybR\^YJ_UY|KOvQnUVZR`eOO[a^cTBkfWJhVNTKOH^RpbNDgViMWLO=bOquUQMza_RYLbakaJWNpDUZVTP[TW=Z``_eIRU[]Xp\]X?YboVkdIZaTc^T[fZR^cip[LrtGHkRJkSgYgbePODJJc]OF[VUHp\KvkZI]hAWZMgjPTReHOjo`}DXSc?emh_@IGX`QaZVTXmOCQ@SWntdc]]pTV^BdpIn`P^ZNeFW\Pks:UjS^i]_SMCSLcksfqTX\P@NJIknDOOLWb[UYbV}aJNAebUoZkPXGhaUNdjZXaV\qYCTcJl`LPNhJ8VeGeILQjOVO]d]j6PhlkXNL[mm[Qg]qnWVT]qZIOS]T_BEOhTfhVOJHZZRuKUHfOMBZgMmTSOVS[Z`PSS\^PoYGDeJ8ib{fufRO\Y^tOlPaSYcXe]gQ_AiIPP[Q]VQPLEOfq{bVacK_KfIcJHJjdAh[Ne[JKZH~u]EbTPghW^\EOMSgTDP~WYRYNgRQblh~drMCK[O[SjHd]tEtj[fOl]WXkTWSaR^cYcZ]VOfHP\o^J\qiDeRKTSNcZS:KhSYY^|Sq_]cPMUdGoR\VSWIWw\\RW|Ob]vVd\]cdUXb]?FO<{TP_c\HeG@UYRbSeGhbV]h{i`bjYqhPpK\P`JLQk\QMKavRjU?KROrUINngOIdXAWaMSb@zITMUOAX]DRaRS[\VO\bGYU[ukQW^FLo]ViJXVYVVM[DERXRXIl_K?sdfIaPr^\WMgUXgE[heLUaZlVYJSRd[l]ReQA[_bfiGShf]M5KKOZQOYIHqe`kmCIYSXU]r^e[cjO}hkP\`?k\_XbSdSYeSVUWjU^nYariSKoiL\LWPXZWcRRhh\liYfNIHXep;PnahRTZcYae^UdC`bOIL`[{hTm`SCLWmM`RCYFXeiVTWLiW\cgY]kRhr\SWXaXoWSdUfb_bL]jqQnWNBZGd]xfUOd6rHg_OTlg[^?OeICe\[QSjXP^jVTaoW^\_XmdhYOaIxKBiP[YIJOTRaISM]gdKYhUN[cRh^PRUbZTIeRN`YYdX?[G_`HZQt\bXNlIjYNXQ[]QAPdSaoCRXooVjZ_Td`\[?cCbcosgV]FY^WcqKag^]DKbI`fjToUZI[NZZfEEX^XRjRQ[bjiWRNQXejoWUGJ]OGIYRV^WVcTQeaNO[-]_qBbaSlMVUHU@toKlDYfL[Wex`T_ZX^gbTYN[WHfGjhIDNKZXWuJp{KZiZ_JudaTbZk[aX`ra\XeOZ>WbqKYsKYSR|X^PSY@RfcLaZjSQRdZeGURbGNWaLlacVRCVPU\\]GMVp^LXRR]OVRIcGC^bpjXisXdSP]yKrTIeGe`Xd>QVVTacMWhekpM6Q`o[dX=aZSd]^fRPhNRLIofPZHRTUTdOig`O]c@[feaZUAnUUJLbbc^`R>ZQT^U]GWWVR@URQTjcGQ_QfSoReZ`OmLdn`VmpLceIIad[ORUML[Ig\S^hXmboWbY]ETr]SOuSgP_QKcJ\[_HLYU_UXaSU=a\IKPQ;RhXZVRYbaIRl[\Xj\d5VTMj^fIjmo`^NIgUNAkgQ]RGg]NUOOSUWNR]J\J?X^L[i[tXd_\GdVjXZYWXS_GYV{cVZco[hhV`ZKNT^Z^[jOGmvIrYMUK\lVYBXOCU[wEbPFPbj`^Wf\USkn[NY_B`H]@\[XKXRWTgQvE`6^H^Fd[T[KZTXVpUDQxdO]r_ac`\R|^kp`bqZXJS^_UdMjZULad_^TBMX\wQXV[W_axhcNeQdOXXmP_dKY_lfRHLXYZZ^QORQW]IcFYUWSKNUUWT\NZe^H^]r_HR`UK]SbOQldSQXVJd[eFZAN]hReIhNSM_hV^cWOVXQZYnX[fOVXTT=ONrNXbWRWVIU\c\JUN_UfVMio:[f[`=T^VecTZ[`Xh`PbYeEC8]NGceTn_jdN`YdJY^]o]DZk[wJlaK@]Q[Q[UPSS{GYTTV_4XYv`TpUdYKNp]i_dJSPMWQZhEPQy^`WX[JHURwFFhcaZCDUNRMW]bWjS?bOK`U]luSRZPp7jZhanV\pjtc/eL[PVZ\gfkiDs\QMk[h][VTj}[cZWOJZ[kTfR_ZTBFif\daZdUV_IyY{WRrcUWekW\VYKjTOV^B?GHU?X\]hZKnOGgjccYexAV]jMqZOb_CrbaZDMZ^H\bjKjPMMZNRapSQPPJS[i9bn=LNWJhX`QiS_Y_W^B`fYRTkJYGVaN_AdWVcaMfBZe6UTbW[_VLW]aPbIXUc_Qc^MWg\mGpYkZddlTcjO]ZP\tP6q]uT\BPXhOB[Q\a`Xgr_`bp[K]JUTgPDTa^XfOY`E_YSmTiTcRO^pYydOHlgJYWGQ[IoVkOhWLEZJZCkZnkWQOlnSRK\ZtKSgPRW^Y]^Ydf_mN\bQf]^uDWmTJB?OJe\eN[XQZ[YHPEV`JjbUiiW`Y^?nWXUW^YY^LUZTWa|aMq]PlQI[MlhOfUcNaOaig[akY^g\\|PUteNcTI`RQkuqwaWYTfR`YwZxL]UJcERRPeOPZOafOKLQxaMsoTWMfJS[kCLw]hZO[R`M`[^QTGWwm[UdNZ[Lj\FRWWNf]Cc_pxdlYO|xPb`Qaka\RHaJ\SOh[VMglWI]`TFtYZQUE__yX[VdQd\XJeWWe\caXTiW_bCGVmKh`QT`C^AVtYLRgTXvS__ddsXNNAeodnXZPXlJOCa\ITtV^W\_TJvjWOVWS=ZQTaS_d\ONLFT`csh@kMXE]RhEpUXdSdZhe\qeNrVV=enOoAtnqnj\ZURT^hP}cLT^ScNWcYe_pagfHKQbRQVQbUDBoaFlYmUMcTZegdZY`l2VMQYc_frlQ>YVO[pFUavWZb]JrK5gSMMfbYaLbQT`RO^R\bXSKTR[QcA\ZrTXLNWcWcMAmKTJSZgUfRLfdXicKQ]zZT[bMdO=XpQBffcc]DTcLRQWk^AfOa\ZSd]UbYcQLgOR{kOIZoZeT^YSV[exS_Dd]`ZjU_imjf[IWHTJNbXNL\TSdRJRRPKPgQ^WNUZTH_QOYFZORYRWWdoJXSKbZGkWJbWTaSLd^nPTZVZSLOlVT`iO\YR~aZ\lamLaDSYOQHj\UdRLihfPPjgdZVSkCQX][UKJmU[Rd`YDQTNKVnM_^V[dQhWg_`YIP^ZXUaOiZcNIUVOdg8PSOUNUhJ^WVSbRSGGPxYj\j^VIR6`DUSOA]UW`fTriQShYlN^Gec`VkWHMQmZl^soJUJWeWfljRuPOgGnk\fUHjZ\xR^fjF]eRVajLVHZk]hg[XZb\cgdYacQZV]dGdS|WVYbb`[azfVoHVxS^meHC]oaWlorOWEd[VjXQc`^P[^]VSak^UTnUrhW_hrbZTKk[l]SORlCaVh[D\dRaONfsbnQa[W_]WTk^]djj`WgadpljS\pV=gOSgeYib;j\\fXUbYX\M{_n_TRI[LY^Qjeb[cVN[YWuIaqOTa^X[\}aV`]eggP^Ub^O\gW^\]\_dShPzfgRTbeINFbU`XK\jOKZYmVYYxuik^UZ]IjkQRcm`|sRSwyfRRa`nXa\[L]OLlehX[W`[XjtW`hkYA}el`[[Xn^S^[[TViUqeUadd[QSaMJjiIfiTsPDoExT|\`M`RGMu]JnlVWkd;]as^qbO__`ZYcHUOYbZlSqcwJHMTTW]]^SW\k?^bcdfXoj\_mcL`a]UkLZ=LPdMapJRg:MqStESXrHb[\gdHluudVlmgTPRTYLCgULUTms_s]icQW[Q\oBHOoQVjMXWRPQNgZdYb\Tl{I]OggMaaUXUZTBfiwJMi\\TKL`cB?JD\]VKMoRVZVceQ]mZiaUOWNz^fk]VU][hB?eeKvg`HbPQVoMkP\RXZSE^>KlQXMUYq\lY~\cPLIbZXO:GTbcEcOYMUQW^JeMoY[HdMSlRXYFG8W\odLc\YMcJ]_^b^KXcXT^MXVc^C]PZF_b[hpZmVWPJ>VVWfTBYWSaenrl_W\P[WU`T`XrU\XMiQ^wbYhRauRQf^V|X_mOd^XZSdk[cfU]lQWOZV]LHIVZLVXYQb\aQaOVLQX~nEJXZ\Z`ZLw^djQ[WfQZSKO_[[BNFngZ]gpKp>\`ZRZFYmpYnhUr`f]^WQPwPU_YRTVJYRi]{UVXMoDl`oLWZciPjSWejaZHOXQR[MOpXYZoJ|9c`g`jT[sRlISWh\j_hOfpc`YWLn]Y8O`fP[a_YAlxlZIQYchbQDLKhdXMK\[LhZcJNftULNSh^UQWQFV\`bOGHHfaGWc^QccUbu>AYOtI_Q^L\TUUiW?`peVnMXYRQe^B]a{LJnSTV`UedbKbDy|]mTMRNM`Z]_b\\dRY]^n_bj]bPb]YiSGWNVSdMDeKTSVGbD]YShbhXQ>VOYiR_oXpcJrTLdhaVO>QMavSZV\WSHWi]MLoabOR\]EiX\[\dPJpX[Y>f^[D;qilRXDQRWaRVN_[J\`Hg]7WRHQWBV?e}gb`d^mYRXVNRXMZ_`ZkiHapiZT^cX^h]Bab[OTMiZFbmGa^[bpA^fl_YgEJZNWVTW`L]a_qJ`kiWNCGH9H`[[OVaUEbh`P_U_YKRyMiXqMSYHmRUT]P_pITPfE_qVejAXTV\`hmOQT^^OfsgQQ{PZTX]IN`b^YSX`BYJNR\VJyEIa][LPe=eTR\Z?WJff9`Pe[WLWPXQFZV]g:S8UEPTw_mYMV9xR[PIQ_eOSbXFMgmAOebfd^T]HT[ZjXlNb_\iePYhDZYgRZRaXXIW6[FgHiw_JHUlLbq]T_ISFSxHThmeuK^nMTblialxZE=WdXOOUTNebjPbVUGPaaFhaYb\rP\pjaZUHYjc[WVIWSM:Mt^pS\X^X1jP]]a_RUQUdMMLRKxh>ao\SXVTvbVN^kI]vce`IoUk`WZHFq`TnFUqZOJWTmPZieNRYrj[\SZNI^XdS=ekIa[HnRN?~^v`TScWR`dIMPbMbOVho_LXVSf_IYQNlXfItUgABQFS_XZO]eXTKGVICe\Tlg[xCRpPbja_\^yZY^2^\Cedj^Hd>]\tdzg_YQKdaW^WhIDaKJevSj_OTOea\GNRJMqQahU`a]N\iT]R@[_BYpYL~iZZV\TSjdTRoVNuVgSjs[Ih\OnXJ|jlgVhOSVS[eja_fmio]VTJvWuir_S`PUR`n?|Pi`^vRC_eNiGCVUKioWXfQSbO^XJKbTYHgemJRKl^U]QWhk8m_racIRVTZbpF]HYUQWVnII`MOwOPJNZ^QgiVRSVSZLj_OKgYKWKJ\PUcQm\I_MoT]Sx^T[LQm;cRWY]sCdFUU``VbOHeXUbq]vSUeS\Gb[O]QPZ[`qeYVXXa]WRlWXF[RQOK[]RNEhFgh^fW\YQUjS_EP^eXJpb_cmjYFSZM_RVYWqB]c`dQ`MhY`McJWx`JORK`gye__VN\afi\MhCLVVfMXZKQeWmZ[r]\OZUEVZ_jvcE@|^WN^fHV]Z_^B^SXcmQjTAjbKqYgOHPWKZ\QRHtTbKT^c_abKPQKqVZPeTUbO\^][\SgSadY`E`]PHL>CU]YFWWTE`]TPrYJ]oWOlpl:]RkWOV`P`SPVqVQcL[QP\TbhYc\>OgnPFb_SO7fXiRKlV]LejfhgR^XeEl]acXGgRiTPLNIWZXmP~m^vOc[YdSVqQn]cQ]DgbcX\OfWKHg\n_TNe^Id`KiR[STR]iyYnOYXTNaU_Y]^[dbPVUZ]ATOUZTJzOhNfPKDeQ]LRgW}^ZSYVU\iSicOTPmQY_XXW`dPafFUY[UhTSHVP\TMjYZW[wdi6QdY^Slfoc\^eOPl`U`]NbjcD?\ag^F^QgUXn`_[TXSL`zhsFKhV~O^NdNmX?bVa[VJXe]JJcJdZNeU[D:dXWIDTmLOKIBOl\eqSgUIa_LuLbFRV]NO][bM@LOgHeH]_O\]bVQGKYDDKU]V\^CXFSSaIKQMMNQUtfVLc`nX\TY\bVQYOVQe]j>PSVR`LQS;`cRMMFjPEIYgYHH_y~jRoELZckaW]]NHHYYIPdND_wjrERMgljkUSOl^NSgLL^[KpVF]P_Ybbkqd_uN`VmZOGacWzI^boeIozOUbGYh\~.ML[KxI]r\]YSw^[TJPedDSR?`>eU^N^XWUUINAX_W^F^W^\RRNcQfkhUqbz[TNSZpJRWNGqLK@aN`UV9^ttcBLKBUJQDX^KceCeI=YOP]ZH@[XEAScZ`jQJS`u_e~kZrDOZbKDIPaUHRuPULZ?gbYUNrojF=NZPfkLTVXbWOXSXINDS\]WZUYXI\kK:UJmd\rHukWdGkR_R`\K[gHd_mnXQS][QhT^mTZqEJEdUUYTbnbBQaGWchaaI\agGQ_HUD^m\jXXUfcURjQKBa8hafLRMeVjfOGxK[oRvR`WRUdhKVZD[gWlZe[V:c\^AHUemPmlYs_c_aWWVe^S[GXGcsc`Tsr`LiJVU[TTc[eagVUJULgaf[~TeIl^cRUaOSrKWZYgtUjF\oVeaB`qXefRiPgQNL\\mrMV[J=TafVlV[VnGVWNeV[MTXbW`IdZU[lUXGXeNbNJdcNLmMalwBcIY]RAcK\PiPdidjPRXqC]qU]Nc;MR^rRUZiKRNqPGLeQaOXOATibZW_VyVLU^gN]^\A^Z]N0ZORWLtXSXjihuSQSR\POn`TkJl`]lagOENJm\PKGdb_APyZ`_OhOOaddSMeQPQXRIMCIh~SndrNU7^SW[ZU`q[McUZ`Y]^wcZtZjQL]^QX[[PUjjIVJLTiFTdVfkxUmdJN]h[]cgWOL\JbTiUbYW^XaSjdgCTWdJY|c}YdnB\bNXWZlv`TMSTRc^VRZKgS^RMTRVpXIYniV]T`gCGJc]hW]QYnU]Tc^QZhrZhMVScpJiRUKRFeMRUJ_bVKbTTFYZRh_j`C[hJSV]Z\ReaPikaLKDD]GhMTYIZV[TKCmmR`mXZcZjN\uLXgNbISJcY_S`gIodWyg[TbNJWhf_WMgcP`k]VjWcKwVwlff^TYP]RYVd8jECLDVpS^EYDq\rcl\Y[]`P]RmMbcTDmaoWNR_hgVXbVAO?NJMni_^ZWa^HaAaI[6VUURQ^MbXS_TURb~RFiJNXb[CcO_KTYjQRecDFMRuW[8RHc]MU^P|F^TPDs[gOKfRbwVYJJYdR][@^RXWOfN^A]LIKk`cAeOLNWTPO>RIA`QXRROfVY^]_eg_i\dKYTKKap4OWSJMIV_IfRYZ_VQ`ZSSW\[oBXER[JffPdP\ah[RiceYNYwQ`c\Vs^YKYXWeF_[[PFb[ZNWaLVV]OOJRc>ooSXWRYYcEcY;m_LQ[VT\\TOH[gF_ONVNKN_]c[[JVQPQy[Q^RRgQvmVcqbJh^XXfk]SqRiP[HMkOj@gahNcOY\d^hRT\VhaHWOU`SkVUfaUtSrIlcvSfc[[meOY7b^\m_nMkTC^P]TYMJTNhRbTMJUBK^YMsTXY_WbUxNeOGSOR`IQ^gOOD^be|YLYiBdXdRVJaJM_\T`OV_j^W\TUWXRV]`dX__Xe^SKGf~Wh^OoU\nVLl`;gYZIPGtd_MSpMTRbeMQf@DaJ_cpqksUYFVHYdNcPdEb\V`TfVAWcJ]Ra]BTdRhTG`TRYZWfZeSZNYdXx`chkkXVYmacF9_?UXu[YShLuGb`[diRZY_Ze_[JTWMYJVS[`ShOpYSal_cOfi][YORgGa_WbkqSXpZogUtVGSSiF`_ZFEi{uOOGmrmZ_kjOXxSRFVWrMa^RrWYSXiOVjjRCWGZF9ZaKRfRsUPSiXA^mzjaXiNG\bPe`hO[\k[NaWdOQwDIeRX;FTXdVXJ[JWbQTSFEPY^bI[QQ_IUL\UW]L`X_SXSWQjNIYImkDJ_Nv^SkkfUdT>lV`\cSfY_`XRgWo]TG[_WlTokdlV[NRWT`YK_`\YfLeg^]PVkVTb_FfYwdOb]giaa_Qaca^\IeWrSWm]Z[li\hfRaL`SfWc[PgcWSb\[Kjoh[ZwEX]RZ[eWaUUZ][koPU][oa_KbX_d[T]D_U?jdxejFbZepcdZRR[m`FNYwKcPckpXTKzVnWXHYRSV^q^OaV]wWaSALUNZO~tPkZ{Zicb?khH`_LQXYGT]mLdE_UVZbXgoaMh\0omL^ej^REjgNMQi`VQ@a\^GcZ`KKEbTKVgdREVbbdTfo_Wsmk\kNUZO9SL_eUHdDnmp@[|TaR[UY`RhSUaorL[pV_P;dEwXae;ihROmMGRuM[ciP]U^WRDjSOBZi`SiGNQFN\RX@egiirjPdkiqFiNFTVZiO[jiAZUa^]\pXWTJflI9ZljLWPVLb]fLkR_uZE]7`WTBeUS`peUSSCfdPl}UPN[lTbN^X\XS~`KhLgKa^jPebcTALGiLWTcTX8lj^Y?JnA_^[SdYVZbQTN]JU`WLdYX[^E`^OXWs^fbNj_`i]QRyQW3]QTLYEL^]VPSjidP4XJKad`UMhSWaRXkOY]OQRjUfVUK^ZOdDKjT@J][ca`Pb_TLR\TUPNVbU^agU[[KsM]Us^X`xXEoJOblKFxYW]ILG`vdKOQppSHiW\AIQcvU@OyX^bVWjGJzDcTeT`r`[eaH^ueYO]fUZWxb7Q_NDIyJjYKg\c`TZNmXbeoaiSoai\rbekaZJXF|UV]CJeODYWPR\ZH?NKgF]XsUWUTauUNh[RNp\Q0\_fFMgv`X{NSa]FDz@[YCZfhYoJJ[^[JPOYSbddNYYEFFFL[awaagHbNe_NUnRMK]b`grdFFPRd_aJxW]iNg^RRX:eLOKOk9BaLUXQLSbH_X_[T_HaUVbVFJJOGYQT[RQNvFjjc;;]LXK`M\ETb^iyfXHnaVPkRRSViZGp^jWohl`]jel_J?TYJ^XejUQ]cYQBJnMWNS[iD;YcUodcUkZcpWF_O]MoLPZFQFp\nfZ^gHd=eX_dcOC]eJ`B]_^lMRURXRfGZ]jWQO^|TjcTr[k`jGYO]RGNLn\eXch}Tlsr>rN[KrWT]ohfccgRlgRdsfbcxSPOtZb?YPXOW[ZBaTnIBzi]UbPSTGtXOK`]PTTaQMGTF]d]RSVUOjdRZXZfWMKVeKPjfyVNRRmXW]ohhRLhJY?TTY^cgW_cT[X_X`bgg_dVN`VYcYdUM\JQlKJHfKCUtS>o[PSlDiZD`eNRKcZY?IJCbL]P]YWonTYY\[kaVLa^VWR]didTLpvS[]b^Yd\^UPHgQYUbKENWdjcRdNZ^[XbZ]hMuSOa\`JXOOcUSOIMZHpr]XWHaWLPi_dVdDTdOTu]Rg[PXHeKhV[lZIPQPiMSUkUV[h^CkTEw{jPabYVUeJOYP[QuXTNFbYj_WO]XFUPOSmkibV]~INSWmdMZV\SYmORKUoAwISe\bWP9dJlC?LlJaf^XVUjRJVNuV^CV[e_RXMeRTc\\Ga^OOR_YNhR[f[ONjYMmbcOuP\[I]dmoOWZ^KX\VgV\ULWmeYn[ZRZYcKdA[dPV[TNMScKShkV[NY\JTUiNBZfc]ZIbXR[l?eWTKRlSJ\aNT6U\sPV_nS]RY[fMYxSk>@QTbRZ=aaTaMJfciacXOWgX[kcS5SU^l]VKwIhFO5tMekdWURef\q\gHWgI>[DzZ`[SfXZ`NOLcOtNccETlTPC[baRQTXbVa[?WjjWLsNsWeRrOkTa_K]S\ZOn]RVMaBXKg_PeZyh_IkcAZmRaITGQYtxR=NJX[SJoGYKSbENT[EnKFcQ`T`g]JgAvHe[chGUvTLXbPtOlpIwAXLh_efK_kELRMKaGLTM\OZMSfTcFV9O`WcHfTOR[PWaENNP]Z\F]UuG_]:ofhMYHRN`cnlaNVQK_cOcRMh[[BUZU_wNUQMbPP@TMZ>VEWm`WUU_cT^>h^TEqZdnDa\PY`EP`ZW[ZkSQUx|]_Tb]SUgKH[oSiKClCbo:SNUL_KhVQonY\AzXcn^Nw`fXNadMkQOVSL;pJiLAShGdO\`R{Wabr^bWmHhsgMLmaQO\fgUARXFPTjBKOYeUcflG3jTVSQ^d_CSDVkY_qLgGhRWchMM]jHNMoNMQ]]UhYbl@ddScgrTgPeXQaQNOMe]dMcGIU`pYVCZVK=?Zbp]ZcVOXRhVyXRbWBR_cbRKXS^ZTXRTT_h`mUG\rK^Gn\d[IU`^[IJViS_SSXGPfkYbV^]YL_[PL@gb`W{DNHVGFgNjTXXabHORuHX^P`D[`d\`?PgXkPT\HjK[\VJLFnhJUQMVOODZ_H[VNk`]lfdAWNjCugJuR\IYIoT[]?XUcOm[kMJX^LY\qrZ]OZbTkZ[]CZ\VRMQT?caCkL`cRo`ejOXWIj^iIgPc;ZZBMxUJa`jcQIcSUDK^SA`ohLWS^OM?^=TNmO^[RPPSO[CubWZXZPQXcvOT_kmTQEm]kheJ[iS\iSZGnXR8Yj[UF?^Fbl`^PS_NOP`jQL]VVjXZTW[Ub[]OK2eOSKVWn^VbV]]kADOYcaV]PXlLW_lYlUUjV[GMRdTVIOGeHNZET`[X]HtddPbVfYOb|AILm6GNc?NbcfWluTX_[gaFVQapgGXZJRQogi[^^qbTogQcR^J`rPUaZOPRVL_ZYZ[Wdb\fEcXNdaOvW2mM]dcc`YW\NNWPY_bMVR^gJDoJgfY`Z]]gYGbhJLOeGD^ofCSMjVILVfOTq]QjKNgaBcj\Hha\]Kc[VF[`tlXQaLaUZ[H`JEf\XHZCdcP`sVTZ`IrVrYQ`UZ[YOKTqq\U^_^DG`N`ddcBdilU_NSU:TK_IZhhSaKXnpIc[@bHpbdYQbYR^\UHscf:IQ^rJc]hiQ\PLIg^JFkNop_[NfbcLYbWhG[TEQPVqFWbQOtO^Hk{SFVbKffYeNPRYWQPlrjQm_T_k`]Iyqk`.S:;TWBd\NHNbUTTuG??aHYW_NOo>uCmU@XabceTVgC^dUfOXUUfca\NK[h`Po;i(V~TEQUPHGvFgheXjjoIaWXLI[K\SdY?ZahDjcHK_hzhOabUb@R_9HLbSYTPoYfcacS]^>bZ>WcKSpMqCtTNZ]dj`xZed=YLkKRSHVsQYNaeisX_SQdnOjVnh:@YgOkBrS@ZVLAQXlQQ^DSZMRVeHX?`CQg]ZSSj\XhheAnaM^\Qe@cjQbIR\Vp]P{ckbEhrCODpIyH5rdTkgrRg^uSoiSLd]ihfXafRQLaPIWMCNbcFlMqNOmWRKZ>nQWYT^]oLH>OQbX]Tql_WXRFZSPJOhj[nqC][X_TE{HMirVIPW\Fi{yYGgGgnLMebRZcdYTJcsYWYCq[mG`H:`NxSgmAO@R\B[kTnL\XHh\ShBXd\TTP\FU[YMTT[fY`};WlmQXP^WDVO[lNOR^F[jALSl?dYRhXJDfaOTZS9UC`JS]KCHdP\rN[V_[]ITE`VR\Og]O`Ug?Sdq^BZ`Z`bWbVUXjUVMUYTZ]O`X?MUVUYfIdHg^g[Zd[ZETNLVPjjk]X}P]ZNROZUQTGL`XbY\OrrGfYMeF_wMLayI\_WKMyS^nNFW^Y[Z`SJjBbANMTOZJia[]RcUWIR[HVZ[KRR`OWU_eNbfQYYYH^inTPJS_erk_bTMRnhgaqOYRUeaR\WRkTSPP`ChQr]AocKSTc_oWaXNKFc_b\NV]rnag`Aaxk]mZk|KLWH^eVi@ZZLiMZ`]OP@DQVSNXVOs\GV`DQokJmF_WXTXqnVWC@LuL^NfXJ]_NNNOjTZZ^Dni`ITUVfNOW>NT\K^NmfcqP`w]_`X\`hPr\H`WNcwQ|l_\FHLw\SpRC`ObZ_dKQin`:neHNUrdjcliLApSd}zMI[hc^HZlB_UIbcYR[uBdoH?LLaa`O^mgZYrd>QrNM`Z[Sx^JoKDZD^[^bZdU^\jeRPhj]ZfOrJYWOOg_cdSgs@M^UOM?[WDkVLcURW^eL_YbAOXV?Tb^[[MbJF^n^Z`ZcB_ok_X_scisYUYaVSIOr[q^`Sf]IiKJHfAWLoS]]dmC]Tq_lTiXLY:^lMYHbiUM^PCc]PY]Q_5@X_^Z`RXRbWYc`tITUeafbmUaZZWP[a^_KOdm]VK4ai`hU\TNcPhVUEbskWKRhiZFQJbHEK`I\McYMgoUV@aEguPQeS_TNcV`a_dXWcjVqajZ_bRS]VqptstY\OfAa`jl^2SF[d^IbVND_LT^SWUc_BkIOUiBN^pJPTdaV\VdU`k^cpcaTSRo^mSbXGaNXRViPZ?hSPT[Q[YWgZBKHYNgU]PcZRK]X[^lV\`^ZZYkgMnSWWQLOMgZ]bjcV]Spc^XOUeOMQ^QXKYYJKQFfIZ_LWLOKjmQ[D^`[dNc]^WR_]`Y\NloeTbZSWVbSYcOWYYkbe]ke]_P`t^Y?\Gej_XcZYaMSfRAKfMcgZP^VXCZOILVZ[dRAgTeOTOTQe^JLOaeY`mZSUXeaVeNVO]iuQa[WdVYcfhXOsSRYYkSQ\V`Q`Q_qvhZOx\K`Od\fkYOQa@lXRPQXgNWQmjp~fLW]f^]^[`OpKXCJTGH`fUQ_XXDZMeS]dH`Na\ZeRMtY_FfC_[eV7aQbI]QU\R[\\XjIW`]fcOS[cT]O_Y[WeNSXRVNdbRh[RYE_Gh\YjdQihdOci^[khPXf_N]VIHYUZPbPQZpkLZe:ILbIRE]YaxWg^CkPK\lHg^\alTPWidUJ\nS]`kRJLd^SF\pp[BEYVYl_T][Q\ZeoApg\m`EFe]bRCP[M}_POOUhaAWiLX\b[bZUO]cYceaYnU[iKVP>zO^PQSPQT_RO@tU\CcZ\fnKCsZnb[WTcnG}gFWHl\idgORvXLbmYnX9Y]LI\[ZEKaWNeih\BkOUR^]bJi[\P]o^F\zKZPEj@Qb[WNTNOWKRVjQRLXDNKmM]^]pbUTJZ`FSOfOQo?NJSi]KTjGOiYlwU`K^bkcKcaVSUoXSUOS^qSsSdaKgPZSC\UXa]POYNSd]c`t5WQYOKR]MMYSj\tjXTPEuH_Vb^Ek[HNYOaKXPTeU\Z_LPAfLP[SSKlSK^F`=[T8[bTOPf_XdTgb\aKgVWjTLZFC\OQR]PfBTkUUXibg^fdAPWY]m\Po]nFRZ_\WK]\Z_PQdTeLa^iKOaWNjfES^^aehVXonW>s_\GgNfSMWXY`vdFuaoT`Q\ficT^sDY5Y[bX@U^bkPI_nQQr[OZVBNLD:c^FLZQVkI[~BKh^REdofXdWS]Ut_TwIZjLQN\aa]oMOSq^YhnCI>VFL<^tIkTEgxNbDemPVQ:FFeSh^[A^YHTr^Z]PdpCdZS6YqRRsVRcYpNGOcSr]PQbmp^PO\O@`>K}SOb\bFT]BIT]J``gbdNK_eXW\x\Y]>iNTPPL`JaTZ^]LUx>5s_TKrTKJ6EajQQidQV^bfIZUa^oaaC[V[P`\TY^NYmXuZL[\YfJMMjVX]aV_gJTQe|`[XXoWaifYdUU\mVF@V9JkM[]]T^RaLS\m[SCOudZa^]\X`}eolT`[^@[HXLo^COLn^[kNWSThqcQ\Tjob\]bdiLdYHVcVUVf;UV]GOtTHnfZaU}Yh^LFZdHlakj[^PIfTbKkT_e\`HfPNSB^TBNjT]]_ZUUam]u]gtUbVkXZmVX[UNXgZ\mR[rYoOaMP}KO\NecFKXXYS`J\m^FYiWXXOTpljQjQWPa]Xe[heYOLPrQKY]iMuV\PPaMBQbNW^a^ftZHj\YQNxLq\iOgU]]Mp^ZVZ\gdfeYWg]fHVPoXKreblNfGXDaDS\]fSPZOTOzq_XFdM]]SNnS]UsiloEQ[xJOr\`fSa?aHZ\CRI\^I=ggR`^YQ[^R`gcRjWNXfblfLbeSckH`\CQMgWUf^hh[jfF^a@alYkuvTXGi[SRZ[?\TyLXbkb^VkD`NO_}ShcMRQZO^OWQdV]cej[lVFIoCND^mDiPSLc\O@gi]J[@c@cP[DjacOVVFM]`qGPaWifVpAk[QRj\ERn=SH]`Nm_ZlbSfTOOZQn`OUMY=Jtc]STWX|YTW\Cif\ZKrWhcTbjTPLH^N\nO_d`CKNYLMv|\DZYhRZREWYhhsTTFPTKV?PHP_BMTXggPac\cR_OUcVYdGRVL[XN_YUZaHCpQPLFHVTbcVmof_dR[eRZIWUVi`KDZOlVE`yYSWZOZjQ\PVD\QacT[IH8^dTVNZOX]gT`Qk\?LW\dMZiok]TO^XAObNZT?UlYIfEZYaloRZ_CZXRHeNbKJMQ[UTVPSIYUNWMNKLYMdLbC\jF]XTWYlWD`EAraIZZQWVSyNu;NNYlVKBYNUPaL[SWcqBn]YT^XUY^[MLUlll[Z]YbaWZoS[R>OIORUYiW\S^[X^U\XpVs^FbVUNgaCIJzm_hbbLRaNdMUBXl^P^eaPiTL_aQ`qURRTiGcLUkh^YXaY@Z[_FG_SWbWlHr=]HLekWkaoCaVMxWXb[LO^YqYQOi[TaZI\dPiRYZnoKa?`SL>S8b][SXfRKjaPFNTSKhwOX]MEWMUgNX[WTZRH[iLORvClFT[NSTKLeV_TJWSLF\Q\TvQ^cbHY`U_UiqXJWYdb[GsUG\]`oDgUphVUUpOWK_jQO[K\0]wM\Q_YdnWEJIdFdQgYXsMTmZQhP]`bMf@M\U[cVW`dUU_Cq~lVTPMT\_Z_]vZY`cmPfwVjdoH_R[UORJIW[Z_VQTTuU^a^TjeRrcOaRLOUUPXRmEWLUZj^\PgYM_eCVRPMdd]NS[fgPfIM_vQK\X^U]RK`FfHcX`fAF_BJZG_XuE^~bHuPkc]JKUcXMhRZRKQMahY]WaI]YM}TIcKT@_a>ib]WZx_Z_TTQN`PWIL]fMTZ]JdANIRUhNZVScO[E]cKtUFFDnN^l[dJMdbIPZr^V[iNDMLQdTYc[MDN[\LSPJCVOIth]ehpx^Z[UhTaYuheLSZ\RVbYUH\OOVY]iDJeDH_JQxQ`gVkpJPYda^UT?[aYXY@aTZXREHmbBPgXVU]do]]fMSTnOp_LM`YQG\FZHSXJMK^Web^YX@cL]?icX`W\tIhegM]RwmfSMmjKCN\h^RvlaxQciqfUPYkZbTZ}eYEMFZlOeoUJ]T^[]n=NhNnKj_nSYSUf__QXIoWRDXcdlXe\\Pdrpf_v^[z^BI]kjSDXT[MSXZHPM=bWJ\O\4]OYJIOV[\heehggzj_>TkgO`g]hqi\cPEMjKkR\lNHt`YKQU[`BUW`QVQ^rBP>Z>IOTTbFcScoMycHje_UrKe_^\d]U[`kPYY[fkdXNUjNSeGbD`hN\VRibZdQ[TNA`SQkTDSok]Rpg`UVgQc_bUYC|sVmoJY}I_aEYmCnLQ^YZjwea:WQWNUNROQvS]Tk@`]IGQeThVB@LOp`gX^_PgoVFOWpS\c=S^TJb\]ZK`Upg\QkGC^hT_`][[cQTPRZRFuFkZpSMXYL]sZ[bZePHEXgFSFnHIb\CtfagjIGLDQRWa8UIo[J^Ds\EYWO_HvM[TH\gZPJYiUM[UoJebQIGPo]UirYFWHg[TEKBNcfEW\L;FUXSS@HDM\TFkcEaOHBEQyhDUMTVQSxC9ByRPc`ZcetUjb]p^:fLeCWEK^YkG^OtTMbRKH^ugTT^\Af_C`ThIam`=^OJjiaZ4LNeLkW_aR_eNoSkOWxThVPn`8\mUTTnaOeKPcbVFFhYRgInWcij\W^JRXHVWCb]F\aPQpfpCTU@PIG]VfZRTGb[RMVV_TY]LFMVTe^ZuGXJX]_KcgjYUNaUwkm6bJH`X[phb\dT@V`rfqcb[nY[aAf2ScxBcL9GtZO_ba?S]yUbpSdgdeBNacDb^]N:Yrb]H_7NjpN`WA7rG_gWgl`OcYMi^P^]KKQ]fYGCSdvgGKMZyV9iOaI[[[|\M_Nhf]YMN\`cPdaGNSOV_ZUbG[KLr^smOH;Wa_Wcg_VQUVceW@aVjIY\TWMCErORTaKQadi_sOWM\[`juU^hVz?QST_EPpEfWFlmX[XSMNTeksUSd`UQfsBZTFp[[CXYUZMGPRPq@FdRaQ?KVLXMMCi]OCSTgY]gLWfh9_@fN_MSW[TKROTZ^`TExS\r\PNUPa^GUXePV\T^abNh\^YB[FcnLWegec\AQD[\LR`][JqU[KhY_Y`SkNP__\S_^b[_^iZR[qTVDVqYU^bKPW?^dKdb7SgfqdQYVZid\_dX\bWgYYYRn]gV\eXaQXSEclXNFnei[ZRZTSPcMQTNgKW[WlIaYPpODMpRV[Pv`SXLPcKam[[cCRxKDW@{IU^J[eBvHW@KGJTuKNHQTDbZMZ^iuJZY\Zb^z]l@]_5UWb^|^TXKVSnZZnPcafLJZXEZN>oQ_h|l`STg[DBoLhJnC^X[On\Yi]ZgV]da[lKa\ElV6Ma[\_k;bk_Kb_NM]\MbqKeDOYD[JPf`dgHTORQeFRb`FHgoMlQ:Nbc=SXtg:wCJhGiYVYT9XT.dVFKMYPcW[JKOXl[|nXK][RgVTn_B;_HY_jSbDVWXJYjNGlZYVDdbN\DzYW\f^pQ_KdVkXdQXH_dpd]j=TnsbWRdje;ZEVaa\MkVciIpNZJkbQefpnXWT__MRvNkeRPeSpPSsac]hoTOYSA}W_dLPcUWeVf_^]heZfXGW[bkXIUnPeWl[c]wovNhaSh`cRWNYZSWi^VLobrf@IMYnPbUi?LJlirghiKujQOPhY;ZSp_ie^SekOeMseK`L][XeriSBaMUO{Oj^oXLIMVbg}iVhR^SqUkTL`_\QNL[ZOW\QLhKVi\WMYG^FfdwHTbyMJbcR]cZ^ZbfpOJgMe]WQev_l[U][XFQCaUSd^ncK\HXMOqh3Rlc\ZrfTYg^_UX]QOgWSDa_B6_ZRVlTOU=Uk]D\U`i`l^USQUZrUH_\F^X[VHs@ISY`dg.KnIPP\AAR^O]pX[CMfTSSlAQhwlP]EaGSc[[TJcc?`StPHWjR`I\dXAYdYZ^Q|;BTMDQvRNY`XXzOCPKYm[K~fUHmTjWr\fSohJJ\SjT_Z4[LPabM`WfrSSg@gOSTRZqGmZpZ\FU[XaEFb~\uhXTPPNe@RaOKrJVNy]U?IHX_UaT^HM|YYMuZ_KeN[KgG{Q_GpZWYRUP\aaj_Il_QY}uPE>Rtg[WIPZOVR^hw^NKqRVTVfZ;}UdFhiYR^YjPF[LOMwGDCI[IOeZkVZofgxNmZd[gITNUMRjWEmN]cpUQJeDE`gWbXdU]Y]_iIdTXU[X\kWcrGPaVJQMNT]q@VXWWeWVkjqQDXXQbrWe_iOSqPPo[SH`bTNblMQ^dWSHSs\eHKpnbY=s_M[WSeieaVNPGXSUVs|[SOaNoRdJQSmagfeVZUXKUdeUZk9QeJY\FjbrcRaXsKQI_Tdb{]LTSUS|OD}[ZT^U\U=^WQYbRWaMfmboLLWNFNcSlPKN\UkU[UWNpGXTca^kLWzaSgQ[kXjp_IOHM[VTp^zLbAB[[YLUKZCZTURgOX:Wca_=ebLVRPYUtEfQhYWdTKX^9sQcrfjVX`y_`XXbOJIuPXMc]]ZTNfMf]GhvV@NQYa`cVWg;UocVEO`raAXZPhI[bZbkmYKPFJnS^VeS@BcSkDPV[ZJM\in_afXQ\_aTHYELTXYLqQnGZP`awZXJTJ_`kWS@lYiET_ob[WIBWmLm]FLX_]\QGsXZ@ZIi@SvkaXOL[QR>`MQVV4MPTYdELnXdZU[d_iObgVgUWIkXo^hS;OeX]B^HYkZOUtf\QMp]U]UIi@XYt_GrWL^dg0POZ[\aMDbdqf[\W`TFG\Y[TgLoXRNTi^YakPSJ[anDVVIZP|WKH]LRWfHRDNHlKQ[[HaKWPiJhhbP]FN[LoYTQRLEIOZ`YUcTNOWVVGYlZ\SctK_qc`gEiOSUbA|]SQa`_<_SQEcnkSaOPGWVqFTd}MmbQVflM^IGZQVO\RYHoaNQjX_VXYPDYUSWUS9WDhThzQYXf5V|fmPZa`\QNUZWXI_geaYZX`W_XTg`P[QQj\TUVrDWTYf@TBpOLjlUg\KRE]fNQI@?YTPJaWpRVxY?UgnUQj^TRRbTKfRO]bRVpV`YJIUq[ZF]RO_WMNaG\RM_YlOacS\`WTlJfZWZ[MThjPHLDhGKHWY\dObcTdCSYZVS\]NON]`eBP^R_\F\]_EYa6^LtRZ8KeRWq\JjDe^_?WhgUm[NQJ_QTZEfSN`ygU@tRhc[KTUAQwGpRKNpGPXnk`U_XX[^Q`F^AeOQ^iSXMVLRXJmPZF>gYdOtkm``mbsQ^\U[Qhgb\VD_o`qcQE]Zcli\Uf^XjOJTTZtrZfR[`J\VDL[JXUTZBcTggZa]LMkfVrXVLMI`ZUP[d_>ZSRZjaT]`KEdo`YaWYIZLYdMQGbX9\Fm`bURXO]QcToV\UTO^^RIBQfleLYPF[bNTP_WxPOaT`UeST\WcZMJOh]jMgriIUiJRMX\oaZXLkARUQWjIX\w_K`uN[VjYtLYJNccQ_cjaabIBDM^XXR\OkkJFdYR[S_>ycb`UL\L]UDjc>YepFHpFvwYaR=XZ_L`GV_MWUZZSfIO2vTml`FDI]`S^SCPNUZpf>cTUSLXTOLcrX[gQQuGSZRgR`EipS[_Y@NWxQeST]\SQ\f_qThA[l\daMIV[PdAPhPY[WcZjT_NlMdAeZagRnVSNVYSc^OalnfXS_bjUJ_P^ZlmFHrN_R]VtYMNafQ^dAC|V]H\[^H_TNi^c?GFaW_Xcm]A?TP[W_yNhVQt]IXJh]}RR@\aVcs]MjRHH?YS[~\J^GY`QJcZUKbCRaSWzU`qMD[PUT<`H`dJD]^VUR_^dfdbTW]hJULTb=PUeURrOPP`UWQmVaQRXBTTJbUa[hMVOU]IHTYNT`[Td`F]WI[O]JKeL>IwOdYPAUdNR:wJOYaq`aVQJJqncJDISU@;NH`S`fxVaa.iYLWTa^\YL`jUKT?SOSJ\]JVXXa^^PbNbQ`SNRSWWSCbeN^egXxXNilboOKbiRO@YVdIY\G:[K~WGjkiVfU2rETZrcENGh]UV^Z:kRU{\U]dFCT]b]PYYgKkr[eUiP]Q`USZ^m\dhWvlN_iZZxgPY[LUbfXP\cfwrOWc_aj\miHRlg^]Y~iJ`tKSi`gQ^SVbI^UWST\TQ_I\WhXcrjdKVZOaSfKeU^r^aj\``dUfI\SWtV`Y_cW^\XuReHJd[mMtaT_ShL_ZHU\YajNbU`^[VNM\Yawa[oa[mKTfqVVWhUVZ^Wa_ZXlRf[[UVWRbQZYfZxbE\SYKncZvd[I_`dc^^lafg\`UbqQPV^li^YV`m[[fWjYFgrh^eGSPQW_S_YVGW]RYL\GGSiIj_asebQTWRH_X^\U{necMW[qi\j=iOXacWNha>d@TeZ^SjQiGrFP[^mlfgWVUv_pXHal]JX`lOSMZ[YX^HemGdJ`V9K\IA^WgXZGfOgQG_IXoLP[EXQMNYWSXOjLcgMPLW[qVSJlA[XUwW\m]bS\PdYOUwNgnVemOmJXYKENafFsWgWn:M^fHOyUMUQ^BSdaAgY[TFOAYnRaj]P\dQHUJffe`ZZbbbebJpOib^cMKQ[WUWv]\MT]WYRjJ\ZLhGQXZZLVPNORycb~OPO@ZY[j\WwAhi_YYjdON>NZPAf\ONdWLYbctWfiWdZ]NZnZ_\RqTRoXPXrKTLXJNFpJ|Yd\^eggWAQofpbX`\RJ}p`UYSXPRQ`R9d9o[WZjQ[SZaW]ZTaM^iN`^bQT`L`AyXTmZKMiIZ\aPfjf3N\SOMZA`L\GjMHiPZgrV^VNSL`YVEPhkOLQUeiEauWBIdO^yOLYaQ^NHaOo]TfL[>_\PZacJJY`JNSgiBWLBgWb}`Xl[Elnao}@qV_I`QqQoffcF\Q^YDMfECXJXPZ^OJX^PrLTO^[bgRZNlGfZZj_Nf`TH^[MJQNWWW\YGrntqi[NakY`V=O_CGmL^GP^co^YUZKUwS`XTd[JLbpSMh\C`UCEHUT\UOHRLVZfp[WWWM\f]F\e_b\\_EGTf]ZMqOEghhNXbQW_RO]J`VCZbYX\TQlTcF]ObOVLXlsSfas\UDle]]pg^HHhL^LbW]RkahOPGZz[fbRz`U]JnI\QWh\]QKJFNLVPYRH=`PjaZaS[qKTETVDBq^mOVYUzvcZbcgNn:MY^DCbNKOHGNRCZ\MStXWgJ`IMrO]\UjSooOU^]Nq`koVGLWEL@_nZXs{V\|Z@{]ocPV_LUaZioNr|cOO>PZGV[`NjRXK[QK]WSTq\XP_Q^VV[iaa]c`KYkeWeLMmKYU_WuWxchYcLUS`WOPYyyZ>XNIdO_bF`LbFRmg]FReJ^BTP\f|gN`WUzjYRRnPlQl\ZYkdQVUT]YVe][bMbE>VPIxkDI[YChPZEZXa^SrTkVS^PR]bV[VgZ^XUEeHG]NtkWViNQ=Mh[bOc[VWO\CS^^PJ\X]VS_FO_UL\RWRW_NJlYRITO`LYZ\jdRNVUSInO`SMkb\ZyM][d[hhNR^^\EdeQmRccOLXPYPIZUHTS_ORLFTRaWcdVKYRLCJJa[dSHYkRPM?Q]K_R}hPdv\`dQOV[VaJL[S^XWepZN_bKZQZTO~Mg_bQQ6SE^gD][hTiZcFZSLURhYYNhR`LRWO`bTaTUXLQGK\e@\;iVP\Y]ZdrNM@_aYSXgN\XT^`OF_ZnIQRYP`XYsOP[eBT_UkNXTk=WOLLZ^MXkXH@ZMkTMIZgQ>E^NZEyXQd`MWP[IYVfMKbKVRX]GZT\mcUSnOknoW\YPW^j^RTlSEGXP`F\`ESQK`ed\NW?`TQ`]nait]:K^SOJQ`DFPTR^pNS]aubGC\Rk`IdD4GO\\jWW{pKXjg>bLamS^]Pa_YRiHaQOL]J@RGNh^|]hTk@NP`\dZ^iOT_ePTZMd[Q^NJdT\f`BPD@cXiMQrTH]GcwVXOR@U`j]zPPjM_FE`sQRZc]B[TNClX:FUSXFgZJV7]bNZHbJZZOYOMXeWR_EPSI`2TJ`RE_tnM:BaaoTde]_Ngk;SMhBCuNhNZLb_DT_ldMO`aFnDaPUSSCRbHQU^SK`fPI;QKSeYQFKRf\iPL[LWdYTtRR>X^oHeM[Uc]9Af:HXQRV^LlV5CXYa`j]VLYNgLWGiQKYamQLMSWVKr\NI`>fbR/ZVdMSUSV9caZQANV4^^mPaSRk/WYSemZoHTjadqVYO^TC_f`SdwLDUMpjW\JZTXTQuZ\mTNSRB^lgbbfWIoT`V^eLbdPZk=V_`QsRgNSfrLQepsPBMO_bx:b^m\YIN]y]=Z^=YcaaIPJkEK^jejiXZS]hjbCa_f][_HZ_WY]CMw__gebY\]sYWrLW0<~WaVKpPae>]dcfxS__PZgaRQWEXNBo\Z\jlaFPPPTdJgObnPINJJ]efmvJYRYmmCRg`JbuRX?fLVRTFe^O^O@RQQ=Xd[lLTZZRgSVWNcM\WWrQNccYjVaaGWmjmp5[EibEv=RybMRabbSUGTj];_^XT>nUHXGheYXkNFaJZjlRZZ[WeUbJWU[K\@V:jaR`rOFdYTcc]GJiHJ]XPkUoGC]WU^_@LOSW]UR]^gmT4P_RKMP;H\ZRT^p`qjNaS\^Nob_jBbWcag\_\Xl^\S]XSWgHDucPQNR[UEa}KaaYojjWd\S^`Fp^\GXXXWX>eK_NW@]VUzWbbJ[MMQR]WlHWQikhhDLCa\[?rXOmCF[^kSYC\yWUNE^mRYV7^i?oBcpw\adXgfn[XKnZUJwe_Mjcg5TMX\f>^][_bZRQ]dnX]Od@WMOUHM>TrDRJt\N\c\UdW`U\UQP]\YH]W^]eOe^H[Bi]}[nLhpM?RcijMk=_K]Vxk^yeiGoIh]b~TQcHb_NUK_RVOQa`OV[?pWfMBkffZiT]WZZRciH@b[d\bPGELNGgF`Sflb[fJV_BfGaVUS[ZKhWZ_Y[loRYjUZPb:UbOZW\[SKjXFM\iJ\lKsGTiSRJba`K__dg^VUqtdMVOX\QSjJH`NctTUEcaKNV]aRfeRdYO[Ge[eMbWXYTWcRciN^WrlI\^W_\^YTKWRb]L`xisVHQXelSbgKL^[_Jts>[VceXpZU[aSSlXm^n_K_]BFYRhV=uEmT\BN^GRSeH[j`^l^oO\ZBX[NUZXIK[UjVHYMG\TgO\`SOvVkXV9dIKXYKEPJNWXyUgBVSffWEMcWr`^VRPT]Zk\y]dDMMZ]n}bTmQdaUzbT5=Ld7MOggLRJIftzUFXZ]>b@`UU`ZgOaUUMVU_^Wheo\LI`y[McAX_aJFgI_cbGfI=SJZAVZ_ZS`hxZV[@j[]UbbdVeE>jF|iiJ\WcalCo\[l^R]VWaOM[upfHmWQbejJ_I=ZVUhPNO{ctKJfi`aPXbH^P`[XLFeW\JmScTsRIOJkPbAfM:tF\UnWbUQQZPdcSb-CSZhMPl_S;ReQIMU]YWZTZ\X]XJcIUPQ@YpVWsfQXeeI]SRN^Sc?RDLEYSiPZTaXlJbMYLVaMjhVRVTSnQPeTKW`ZMd^S_SQgXWZVJ[MKSe_`RL_6TZRGSNZX]fBZIdY\[YOTSaTZQXhNfYCVsHnUMUkjMJHYG]^[K^`B^naSgjY[JfadRRcXWRFnFbCgaeGiVVXTlaPLPcWNOSWT[bQVZyVbZUePAfXNP^UEdUJTO\cXl[_MGLjVQEejLQYOBMiTPURDUZN`KeUG[JT[IgO[EJlWkfWafPP[NTaBZtJQOLPOTPWdNEX[?TQJV[P_HbvhGRKUup^MNXD\=TvLIbX[ZVuN^dZEqfQHGbc`HRxPWR^ca5XkYE`UY\iJOWW]SYLZOmqY>[EMi[MR]EP\PT_n|SNPPIOXT=iL@evTaYPP[\[JMROBPN^aRO`UoeU[qTVkVS\UlgKujp[OYUFUMUc_MF`JQQ^HXMUJM_BZWXEbQTM[ULWN?nnXlSdgMQL_eXmfRTTSL^ZWDUl]KN_XcTUK]^YPNhgZTLO}[FeoeXT\NWdg_PhNZ^SiV_TPNPPY[]VtnPXgM_bRlRfhHUNK_XFC]BFcuT\Rb}_qLaY]TcgVMjQ]JZWoQiBsbhZqcLJr]G^UJy~YK^qNIY_RFkl\L\IP[hZZWt4bWRZabMUJVIl^jWSVdfHZ^L_xfjoTcYmprm_kT;Map?oIpSXIOP=jcVa]RQlc`XC]jSrUXQXOPBeDVcvpX`3U[VYXXZlP3BR@edZXiYP1mbctNQ]JRdVOa]WX[RNiI?jLBdXKP`cfFT[Ml^RXZjhcDSoaLgXXXEyU~LXpZ`sI|OaIOV[GKI\C:fONaTMXUOWZ]evaLOUicavFYVPOL]gpLohRVLTb[JYge}N`V_KQM@VETlAUOYNYRTLLIOh`SYX\_TXRD\M^N_\XZUnKSTXCcT0s\pII\hVPHLWHXOUSUDgea_UW`gH^TRVT^aXuf`LSV[XVIE`F\RS\bVOX[LW`XHP[[`{ia]PUGlkvZGn^[NXGZIjS|pRSn`ViiYdZjKN^NBMU^]U`[IJcyRSBV_G]W\jk{UeeVidrfWepxZnT][o\`fN\=]MvU\a_^R?H?eclR`Qt]VigG^XdTGQ_[UWLkHZgAOdd\hJkiTYZcYOo]iRssaERO`[VZ\`RkF\_Xlvqg`TYUk^WQSMZ6Xe]hjH`aTGkZGLbfT`TmQ[UYiASK_dRdTh\am_X]\RI^rTa]eToXJHVXa`ZeXT[]T^lt@`MLfUgDaaa]Ujfmhx_dIkneOWVpXZ?WTKXiXH[TNQXQh_WVgBjXa@YcKU[ufLKzLcGnQNjj@B`hAPQhQRQenSBfKa[@M[M^VaLeaWXGP[dND5d_ELYHYib[jTNJRMqvMooRT^VKeHZ`WP_^QLRVUcU[NDRfUiMWHiWP=\\ilaqQvRUcUHO^\dbrYTQ[T`IUGCYL]^dHVf]DN^Gq[ZS7fXwaOiPOLzSNXYRSoLWPZeYV^XnbgWMWFK[\\\VvG\Z[SOZc`MajQOma[e\wNSKSjS``KkZ@iCa^MjXwSYU]vHWdQT^enY;]qX_anwIIYtSLIWHRJlHL_UnIAMNu_iZMq[WNUWTXyS^D^pfpXwsCVL`;[i`WXR]uIl}ZWg]ibO__fVJlX?R\HaNL_iYXB\H\KWaWcrOHcbflj^mnNOo^e\XZq^j=]V{QTL_g][PxCrQibdOWkR[gOZZp<_zmRLQ_NQLR[oT`EVEIWmKZbYeYScdKX_GlPGJTOOPWFOemWSXI_]b`RagVa[qxI`jHWdZRyUEWQXW]gTSWYOXDYQ^I\RLVQsJUfgnRO_sfqzPfRWPpkIK\@fXzIQ^\q^WmQYgaVRLN`4YNY\^MXPELP\KXXOKb]SOjYUd[v\TxarQc`GYUa_HUUcON_WvK@bR[DGMN_^Sb[PNZNbZ_H\UVkY[]RNb|W>am[yN_IVZWPHJMed^RkbWPSl[SOUu[Y[LFULQVBeCRa^XLTZNVnySJVfeoKnXRKdS~^j^Dgd[W_WKZiVTSf:MNNSWU[HWVTu~^XIX7UBRSO=cX?ZH[O^KqRTQWhHVJvKUJBPdW_bTMm\GdfcXPq[mS\]^[fjK\NJ[VSSOgPbFpf;SY\KLZ^[]b^wemTYZW_T\VHJ`iP_HeTXmQ[elsIa^OSXnYuXoWT`wiUU]{^RhQ\rEIeWc_]RX]McK_SBWRm[cT_SI;xc]GTSMYQML_QeN^PNUVkLbfIZUbb\\NqN]abKcb`W[bR_XVdVCl:kL]SHQJYMaEtObJMKOWfMHRrDb^Oha`_a\bow_XVzcEuSXXNWbXPYeTEbH^ToTYa_Y`SiSa;]SsXS`PRX\aa[`P>aHNUKdkQTW7XKLN^ESfRUXSRKYVStsVI_L5[d[FD\TFTjXHZF@[YYfE\ehEJf^^ZF^U>@t_S\KScXZ[_MNOW\_CAJZDQk]yXqg9b[P}e@XTVSdOSGfX]icXb@gaQdE=dFS\Oz^Jb[_MbOY\tUjV\cY\aVZ]crtbYV`KT[R[RStT`ZeE__[^P\f]UcQXTmUcji^UOiDW\WSbfIWYJ^=`ZYihYYB][hk]SfBJWP>FIgcXh`jQ@fIbfRYcXl^Y\`OTgYXPchNQhSFZS>jZMAOKEd^XlecQWUZLe]LwRYUMZ`hWkGNELS^IRX[ZV\SdLY]kzyMS^gi\_Il~R]FMRUgXGOH[b`R[XjajgWPL`JfWg>dgFgKW[cNP\Y_7M\cbwUZYUX\RcQMVM^_]`wG]KTiL_X]_X`oLWScezfZeLTJQIENnQgSQOg[kRIOVW`UMcZCPHdnWKJ\kYHLbhTrS\]tfWgocKP^[WUh]cQJQOnHRO^KJ`XY`GAcg]MXPPXZo\P]RSgSkTeh_]]aNYXLfZUep`[xdam]TNHUPX_PZgVh^\eO\nLFdGP`sUN]g^PRLYVTO[LaRXVPDhddNWYNKPFWY\jrPZCi_eV_nKSTGO]rCI]\W[XgaFQuayhP^dbZ^KGWP~MCHNNSag\]\o]PVShRAOXV^DdMWMFY>YchSaWNVU]g__XSZSobW=l]__ZOrZWokNW]VJSdVpGkWSNo_Tl^JKM_iYZIYSO|[b_Tk^\SBaWCLcgcYzWAW^Ui\ERkU\B[E]igOiOA^dtKfS\[`Y^HmjUl\efJVVPKT_RjoSCTRUXa[`S[OZ_]GNZbsRWct`UW_fSfsD\abWUQBVJWQvkL[]P\XQE[dLXXNS\L`TbmMgwSxX[LUZ`OO[tDeNX^s^]seiQ_WVG\L]i]MSaLEENa_{S`Yc6W{V^^hRQJn^oM@LKOf]>uXJTSVXOTfqYgQVabQo`ORFesfjlJYIf[\c[YR^[k^TeWVCPiZs;OhOUJ[X]Vh?Z`YBW-_mvMpgLdZ`O`H]QT@UoSVYf\N`y_aYmLbOAZbmLZAX_R\6dI^fLpX`Sh`eUZockaORqRfsPYd[pY7@HQbG]bW_nSgKvXVO\UFjBLnSgifQXK9`MnWIrbqb[byrhZOW\gcWYYt^Z_M\vVwO^YaUOPMJxTONJnYr\ie[cXcQUIf}uEFOQNJRUSdhBEK`sZQLSSjujrSX]Q^>C^Xd[LebI]T^DhgWOFNP`YYCpWZK?GbPQQe2vhdIgQG1ZVxH^VeOW\ZGd9_NOUUHYmtVbmRYY__@mMXW1OTvb_JO[XsS[e~[VLQPIFDlO_n\ECLcFfkSahYafX>\de_AP^eX]U[XKf]Cb?VVdX]T?HsY~OSfdgGWZWpKdVt`Juc^NWUoRm^_UVWhRe`Pht_CLQ^rTQnNfTJGaioJV[HXhl9RWNzJTbhZXZiW]akPcbcX^mPc_YwHjM^QGP_`iLXUPX]a[[T]QOdYiaG]On[T\\P`e[|TW;AUcTFa?gKZhP_TYjrh`rYTlX`ZNlK\`^KhTV_RQU\F^AYU_aO\KjQ]VhgLwLDomLRhX]w\TZshOjg`ScdWVOFITNMy^`XoU]kiL]y[QvR[Q^`m|J^uu^bFfia`QNZp\HONc`o]_X`sk][EOe^JdWW[=lUSXW[\rs;LCUhoYfUV^bXuccXJepc\gM`X|ZOwOekceXlkVVNV\mxYyGpJM]PQLR_wb\m^Ws^_G\Hl]Eab?ChkLbSTJRHQ^wWVaqLhg^VNTtk^R\Xd_RXKLgkob?MZqXlXCQhKgpTlMI[]:V_WL`]lTRRpqO^>RoSR_wm`[KMTpldZO>`WRb[UuU]mON@ZbeMV_[vFANiXtWNaR^Rc_SboVfL[RajraZTkOUUKuaU^`SX\?T[TUSFYYY^W\OWWQMP^`ZWYbM_^WFeQ^O|Hhf.LGTx\d]wk[JO=\dMTXOe]i[X}TnWN7_HbY`QTEWg^XU?ZI;VAMZcdOFWRf[^GcbrRNQW[Y;Qn_q`bC[k]HQYe\8hLguOLctTWBdKaVZdkZhP;ZMNPMRGINYX[rY\]]GZRd[MeAMB[P`aLPj)OY][`jBXzAL[Wk`XMU_bVIYo`LfSUNYin_`vI`hcetf\`VRczUfQHZTd\[U@yWkWaSXFy=[KxadYYZPd_TB:XilXzan]e]ZPj:Q]DJVgNRuibYCKOTJYVVVOyh\V`[USfE_YFxbeTYbUwbZXCU\ZNVQ^Z`[a[^hVFAnbVeUaHVHfuZZ^kLVATkbS[lXgiYTVgg=cUVoWWXbRX`SPT`W``_RvWc[m[e6J\iTPhYSF`TdGZcjG]VEDgXUlIbTfXLbE\T[XBx[[Qj@ZsHdUjgT[`R]kF[Z\VthjaO_bLMOTP]rMKiYeVSOBYUVxXTOOVgRpfLMYToZQYlPH\]duY`WXUsMsUabajVnPcYpPJV_e\ZfADk___vZfk]jDUTIS\K^^ZBgOPNVUXO[covW]VlPVR_vKTqRegKTEnckZs\LrHKpKYY\Y?TTTFj@|WMJhKEdUbvPSTBMZJXOIIQXSW^eXKRaXmNDXejPWP`uAUxP6U{?ETSDYbDOeHaZQaV^RXAwVhgQZpZatncLUVMR=kLeZW`\ncMTj\YXVW_YWhOdN`bGL?Z=Z]`h_MRk\oPotHYP;vgSONGfb_WTGmv^]]kZX\YUelpeJUG]}UO[aXR:R7KLIS`Rc\bdFqTJ]QffSkjZNAx[jbQJ^[P{XV[UbU_YN[WadMagML=b_dbbtE]PoW\^WJL[X[]]O[[aQYaeLnd]Z]JQ_WIv_b[RFNOaTY`VUTJ_aVSW^WJYVKMQgPuO\aaaQp@_R^[_S_VfYcXXX]DGmaP`PPn>`ZSbkPeQ]Xf^_RRnNeZY]Sby\_SKVfdaYA^MO[L]ZfaSPSdM]n\PNXWVMXOXWTLo\\MAZebbjVNYOxTIcfRRj[GXT\fVmaXKOLXThM{dFUfxXPOOSnONW[dQSdTERY^fXOSIZ\YgpCRZHf\XIaZVQXOQ`lkaZKlU[^ReR\Th[j;`[\g^PVUbWNnaZV{bLVjXdXbUWeifKaJYcL_ZtS^O{cpHZO]TCg7SW]GVk]kRIU_ZHyOZLmYH[EiZNYZL]hTRVcR[i`]iNfUZMYaYUmhXYhVRNcJXiOQVb`iTD_PKVGWCRUniaLeJ\gYqNYQcCd[U\VfNVRXiQXYXMZULHa[RTVSatb\HUfNUYL^JWZEGKWUg]siSBYUNJ_WjUhNRT`\EhxdVH^R\SMI\RI[WT[cSUZOiKbePR_UikObd`dkVkScRiuO_JeCVanf?\_NYP]^ZVZX`RdYXgK]\]wWXKG[R\L[V\OlJQgHLBjbRU^PaSPETIjRIdcV\eJiRSIVbjNa]]raHTPQE\_`gOcjEUWWX]aR]]X`gWaIaP_u^iapdGSAJ[c]]`[KPhWv`bdPqW\aCZO_Rl_Fd\J[=b]OEWvFnJTKB\Y`R=QRS`TxS`U\MLARLaS^TiXVQcTR^sTJ`JRFrJVUQIS]]Kf[iTIcUva]gSNntWoeHeA[pPMlP@aq[YpJLjgWRjcZILKV9gSaXMg_IqUlULXZS~\V`I?mQN;LORT[QV1SYWWP_3QTJJ\pg]NaIYqmSGb/VYVVY/mlTMv^9VWlbQmcZi_R]NTIbcggGNQ^?UMYYZaWLFcVDs]K`L][gi[IRKf\Ti`[UC=nUVmSUVZ@NKiSdBRaklIgWiaAQhLWO]IUVUeeLUTdGbLY]PMZDl_ZXQfJF_BTv_VQV_psHSMZ[]PYufqbVO]S[h?r\``cHLNpnKtQMSEf=J`_]tARiJb>]JbXO\YK_^Fb]b[_E2BYVW\nSR_P[QZBbY]`Ndd[HsLsJSJiQHkjSW\Tb?NIXX\[qXJMu`ZzOc\pcOJJZkKYdL^\Jt]RZJI{e:LHjOMQ^OtTpUMX_RPko\p6bMsYuTYbP^PQQbF}K^Gk[Om^Tg@c^NX\kXRt~XbQH>ZJk?ZQp\QZdYYYLQE>pO\XUgaZQXa]AIZH]`Iaf>dT;VhaYW@XxcKIhSd`gZXLaN^[c=WZM}i]W^QI\RWjR__MR`ZMWSbrjkrm``HZIToFXEfM`v]MHS^DcUTS`a?edcd^sJ\Hl\aX`UOMTNQcviYTJmXU_y]ShcODB\K[SI`FpNQ]_LUN\naVY_XJI\PiBYr`OJTrFppT^gV^VDSa^SjfWHf\UTelfJi`ZXnJi`bPYv]S~WUNeRIqLSYU]`XQ_IM@IJ[LUfZZL\`gLo_ecZH[t[OPVUFM[HXdQRbp`GTNWRSUSKYgtN\Zi_r\H^NLIaNfSQuLNLR`gJIOd]kWUsbXcWLVYT`5KFZ[LdnhLtaMTVYSldbXaIJjGlR8OdNRkWYcXTnf`ehTZ_`cOCTqVbS:cOZ8HUgYmgIclVdM]hOGU~]GaY^]RWfmhigiDX[/;Shd[OQXTKaUXIhkosTTPSpOl\WRZpqw^nRad_wW=IVm^jk>KXLhqaTYc\W`Rk[U_\PQhLPVVO8eZKkhYN3PZZjRZF^Jn^OFY>OI[N[HiZYUQD]=bY?ntZ_LXePOTERaiSTFFUYf^rG[`UN]\B]il=H`OPSZZehdGj_NTnXed^HS\j?ZnVU_LMoZTJ;Kd\bmIgO:CfedTc_ZXdIQ\XWfMPWzTg_[iTTj[faZccieWJQR=MUeVIJkLY{`\bQ]Q_ZlNeNX^S\]QBj_MynHXJPMg]sJXdj`YlXsRQNFdQXX[adPUYjfO]XFkaTS]MQmM}eLjE^[SD`TVjWaXfYeMOSOYQ]\KVzb\[a`fUJXepaUdDTQ]Pu`bZ\g[jidrm`[_Q`FNIFUSNhPnpMdE\fOOSbKW8SOPoa^Vi^lOhXcYfKf_[T^QXjUn]T`cZtSxQhTTN[RgjQPJrLJINqoenKZ?X\nQm\^XKPFdN`Vr[7anM_ZNX[`YfhqdZvU\`YYORcR^G[LdKTHjrXCNHMRVOIQmfJU_E\MbBVVRLWKUX_^UH]cRHbLXQ`hQv4aNuN^[GZ]eSFCLSg^PojgQ_YWYIoXXce_^Y`PZO[T]Nh[j[JOfaThaYXMKk=fFP{\gbuJRWUVWQtfWb]RRdeaELT^beZWNkXIAWSjT_UeQXjWk~rcMRPnG_MIOT^U]cSnaaZ;XXMNac>jiqoV@f^bBW\iOlJZj?C\LK_MZ`Qd^V^W\HeifQ[PeLMw_TfTeU`y_ZXaUZMNgZ^gdGaWaUbcnIcpi\aLr`TmVaKgHiOM^R\dobQi\QfORUPZseeVP_]GgUFZYQcV[Z_\cVfIJRce]ZOQ\QMHXgNLO]kS`Z[^WeVzUVMHUsuhbSKRQoWb_TFFjnwik^PNM\LQPaaQRW\gHhZSM~JYTWHeoZM[bKYHWsbU\rZUKp_]qXHHlU_aTjOHUcKGuR^ZeRVVDeSMpmfRYTVgb\[^^W_b`WQSdO\rlWh[RZ\RJG]]bQGlu`dKhaaQPb7NN\CVdOW]bRZTlf[g]ZqMj]e[|ZOVPOhfZXYGnP>R_G\MBmONTGufOzcg\iVra]gSLQ^PjWITYfm[R[nPHSYOgW_e`HkvObn^g\h_aUOx`DaUf`[oUcLuMbgm\UMVQ`^FWtx[]VF\hsU^^\fyT\Pe]LyrWL\b`\WhJPTk\qThh^\V_ivVVRVdjCK?SPW^\_XXcsqLVQSioUNr^abWVWTbi[V;bQr[k]Q^glcdIVXZId\NKdTcaY>N]YeZYcLs[VCV_Z]xar`T_{cG]iZx;\F[RbWMRrCNPMYVJphEoWlx^YWgY[UOahTARYVYTiLXGfWVsfY_HW@iZ=ZAJ_cjNOC\WSf[QdUDvVo`ZZ\lTN^MPFa[[\pa^UfZ^We9SjcUdVYuIBCaZSdkOdkBdNGbd[XfX]GWOlevUZWxqFEnPeS^MPSEH.QOVO^ngHeD`\WZRKe^Ze[QSYESmKCPZQl;UV]Z\HXXS^GRsS[UBYVUJVoiXI_UTLJ^XT[_QbJIb\KORUG^dUXf^i`_WbCVhc`X]GflB\\hNia]Q[_TUW6MZ>]XRdLU`hq_Wd^YU]SUcYY_[EcS\YlMcUUgV^QV]WX`LouipO\^cTUfdRTGRZIbTRsSgEl^lMApIiclFWlT`\C^aXUjNXpqpa^kTPs_jOki_acRM5^^R}bdPjsNSbatm8[jLfePWPY|^ZchZDD\eDGWUMWIV`He`l;]c]QVXXU\_]hiWl`O_rAWYWnRQhL^iJe]\VLVi`PVnO\cGWXb~YVeZWpY]ff`c^WYc^`vc]njd[Te^bTDPR]UQ^fNYIOD`^XZ^eF[gtXkKUyIB^Tf6ObV^eOSvNofRBSPMNX_R:iUA_9W[lFMZVYqd\OU[ecjhJiWa\UR\]Go^_\YURT`?jUWZVn\PsOc[UgM]=UZEe\jZ[aYMg^SSY_W^MZKtcZF_QOoTLt<{PcLkQZZVAudfVgFPTTTSVNYaLd_b^Vib[\Edi\kG`K[3gSN_[KjaTOchZaZt`cWQU\WOGCGIfW^YLXXjpX[iaVZ`JLg[gY\[ZXXnoPY`UZb\nmYpPRh]gZJRdjb_?]G^`jYOndVZYdXLLeSb2I@cS`_[`RXSCiV[ZJ{IcuN8oCK[TTP[@=]TV`]LnKwIAC^NnNWV66IQQECf|ZGHe/QkSWIc[hTYF_bVf\KECl_OYYCCh\IWgTFLTUcTeVWH=N[N[OLfLo]ZLXb_\V[aFAVbXj[U_f6S_nPTT[WOBdCLUIO^]g_l[HUZXEWgXV[]J]9CVVUSMhONe[hax>nZf`p`aUdPgIWgSbJHfaYZQWj\_LTkVe=^RQHW``RP\C[qH]SUU_GZUi>7VT_;LQsRJ__[WLGpMsUuXNS4TQ[WOB^G[XJJhXInnTiefdbUQOQSKUNORqMThHSUYB`aQZlJEVGdOmTU@u3:\ari^W\RdJZehalMERSoQC_I~dSVgNxi\WZuUolT_WhXS`JhwFoP[UNaVbp`RRaQFC|TQuLOZSK^U][PZLcU^CGpQWVrVmhf\PXHNeHm[uK^[\S]DRseOWbU@TUyeUZNpcLR]IXOnem[AZHG^nhSYbtDjE]cZnfTZOWl]f_[`hg[I_JEoXK^fbfQ\b^UTHQYKuq`MQGde_]e@qL[vt[\oO_WlH_QfyYkQYTOZYMdmqj]oMVT^_fvd]VWiahYRH`VMoa^dhV[WeTKVKbY\eUVZ[QMXEtnR`lnbWhW\nZT]e``kH[Y`]YL`BtX``PJXLwReM]VK^w]QYVzeM9OcLP\S\XPOodeP_ZQaSRNl`ZV;KPLRe[W@iYWchhVP~iN{EYeWWQ_G\]XQlLWMpixMXRUmPnmZVeF_fEdQWJAJaRWU^NS@SUdxKiPadeFRBv.gEXl_\DWcU]jPR`dP^`AdrSXOsZDPX*OR@S]UHSQf^VXR_PFVadOOMLQ[WDYZbJl\RU{Q`SfZ^bRCXUykdOaO[DoRr9NZkbNFTiADJK`KPZ@Z?`N6HNh\VLQ]ZLgjO_g\]iJ`eWbe_MSXrM^aYFQWMXCFUiJRAgT\kaGOgGfiSbXRvOV[LnDV\\[?]Q2aU]8:YIoeZRYT\hXSTS`GPf[UPUrY\oT_DESONMLaY[eWlgRVZYZUaCJ=PG\`@QeS[ieWObgSWYbLFsj`?OU<^cc\RbUZOZaV_fQZVLXhYVURSMoq]CLKjJOJWHDo`bjXaVSqMCpH_NNi_gRWK_Gu;bWimlcPUfoMb[]~T_]^caSL@AkVFD^T>Hc[Za_[B_\`fTASIaVYQUHd>ZiHFObZ\uSdVFNpao_n^J]PYm]qOPKkKOZbbo{_VUeW`o`9o[_Ye@UVdSWEAV_Y?~Zj_ORWSZRqcp\EUXh^NSjctVXf^B_TmhE^G\HSTctMF`[^S[U]Yi]XPQNa]iLh`\WQUiTBJYV^XQ`pUfsn`WY^UQXPT\TLLVtc^XJRcE`aPqNZP_]PpvYN[l_hWWi]qa^a[`QP`~P]RP\bO]ZtOgPKaUYUnlkFOfgZeTnTv\uWZl\S[Ye_GPYXoXjSVLG^p]o_N?VVsJYGXXK]M`cdoCSsQNHV|cFW>WlmU[dkqaj[\md_iIL[Kp^SmVPCaZbSI]SsGLHWMdbjSkSscZhkWYK[wkFAPXpgfDZQTzXZCcNPrunZDMOhSKshVN{MdvaUgYNRQPR_]ONzmYdgoPqaMfX\OXLUSX\WaZX|LlZFGYesQN\YO\KVRBNmJaj\gFqa[AenClWae^]UbKUWUh`UVXYYEsL\WN~b_eMd[`mSK]\b^]U=tX_sfubJJgNRCeHKO[Zrmz\PiQX\Oc`hdc<[LV7IMOYXgFBK@gh]kZa_vbp]`RY\XZZUUcQZBXNy^\G]|i_RhPKdMA@XT\E]ZN_^DQd[e^R[E^\XeXNYUpcPMHYpNrO^hSTXR^nb^hrX?ivWGN^m[jiZTHfk>[[YhRixSHO_cKLIOQS^Lg]]PaIVi[`UTPf^ZEQZ\WZNCkcFJOTS\bRMRfZwHEaYO_QpXqjzdUUT\PcPPlKSjQWcjchaH^RYJdhEMw9dS]XV@HTNQLpuZb\TY^Qo]c|`JZe^bK~hcQreB=Nd\hwoTTOXMTWg^QU{dYUZUUTMQW\VZ\fM^]XGcQ[\dUStBgp\MOYHRLWJV5^V>jGdaRUhdrbYVgYkMrVLRS@YJMbw`g>KQO\uRGc[CSN_]L_ftnXd\YtYdQemarLR6HVa_ajHLKfP{IqB`a]]cveNh]TdUSqQf=W@[IzLTUgHWso]ef^Qs^LgL`GWGX?aVp\UR^THRdJjH9K]ST@jYeCFldPRTNVWbPfY`JWQihb\ySQ\fGtU@JS^SZlVHOOYlNcONWniM?clv\PL\PU^]RKKfbP^sFHW[FT[OTeWTQYa8SvslfNVYETLJXdBWO\fE\SUnKjLSTahe[XSCTnR`ZH>NVY?kVoRW_MITXRsaXGPVhXSH;a\bIV]Gr\YRA=HU[UR]eZQSlyc_YMHjFZeNcWLVXLkk]\If]^PkSNTGZEOek_UhVdY_gPjXoVMJoSf`Q_HQ]yY\\aTOeYX]SB_kd`nJLU\Bm]ZPYkS[UuZQ\]XeZY[eA]a_Wj\^UofVg:pHW_vJWI^GTmWrO]oWmcUbWLRDt_VLLYe_Y[iYTNUeDijrVILJfS__aYBdDRn`\YYaR[jTbKCejXOSDU`^P[JI`]_fwXH5P^VF]M\hYEsFQ8mdaWXq@[P_N`oU\RRmpY@XPCFR_B^\HLFha^XbT[@KW5[LBUiEmaLSa@NRSDlMbHpRSf>Z[KgqJUKIdRG]qS`BQWYbgN[eiNUdCVQdTR\wDqQOEqT\^ZsqSTMNeFYf^a`YbdMMha[=UzadTR\`\[WZMb`jcMYhXSILaQS`SSIRla]PneSTLT]liPT|_bO^TWFRe]pMq^pIYHTZP_Hd]YOfPefRMk;ZPVhJY\j^GcUQIYbQad[UOKVa_PMWQYP]UIK^QDLbPsRIUVOmgFfUk\Z>SF\\pX9SW\W_aR]QPM[l^ItTlCbibJnT=c]djk^YPam@Y]DH\_R[TPYX_s`JgfYTtc\TjBSnGvbPhEtda[_Pks]MKh][uaYSHbHtb]PP_s]SZ\\Y]\VPiepjL[gSc\WebY]KNd}TV\^MWCKB9Y[M]e_Q]mX]TlLdbYPJdOWsTVvJPd[QbUWp`XKZ]d_`J^iWFb^dEjWN@UGPNAj`sKGUN=JTYfj^b]WDjcZmO_]L^D[Oa\Gm^JMP`Yi_\[RXhPhuJXJW[JHSbQXeLc`f`OgW`gM\WMELZgI`YaM`DWOKpmhCtOBY8jR;[RGa^ST`YMBdX`Q`cehNPdWKGLD_XcIVG=KkSJYqLMOS]OQXEM]KPPlPU[crQ_|_MUZ`UY`MSUSNR[^W]R_SQE[a]\hed]RRF[RYa]N;fO>_MWwM_MWLigb_LONVdUWdhLa*`dTVV^\^bFTVBFVKGPOUdJ@?EZLoUjIc[TS\\hLNHFXhlaUUVY\UZWVQJS_SF\R_wPFYI^UCeIcbZOj6WXYRSYQQdb?Q`Yj^cNL[IMJAY_U][]OeDORUDWVNZc\fSUZef[_UaZfpR_iRPGqGfChjX\g_W`_\RRRXZjZU_bdQU[][fZY`ShcPKb[[M^JhZjdoSDW@DWY^RQ`]cLjSRd_rG_aUObSM^`kQYSOsRLKk]PeND_R[eU]QO]iTsJJkM\]QXaXaDTLaWNYP~mW\OmlUhyOnJbi`b8iPXh;WnPWSnWU;R`QqpbNB`dUV`WDZZaGNfqefIbJNVRRGmQXdbLMcX[^YITc[eLM[Ic[HZYPGUZ]JfW[Tybl_gW`fhSacTb`tC`JcdiNUXbfL[EaOEcWB^YVQl`XWn^FFe`H>aTNU`VWdW_Dg]qiTRHJcHQt[YS[XWUBOgRNYMb`qU\OuWpW?g`aHinIp^Z^JXVbisXaS^Eldk^HN?YDjvClS]^SQGWUXlk`MV\?QiXT]=QZ^bX\dw\ZXVRmeXiZRMmJOPT_Qm_JaO^URbnm[fmZGdZUm^OQF[SUbdQ^kYVU_NMVhVTGQAXbNLS[gSS\eJKMuOIgWWmKZMMQINTaHR8\[_`H[S?VYZWZWhO^RM\ZPXQV_OQIOcVd\[l[JdWPQQRjIas;aJXU`VS\^cQhJcVaR]XH[V[v\^sJIRWeWfPtyUZ\^XSoXmGJLY^iQT@^eNY^nWDLddV\VW]RZ^\X^U^AUfFNBYccTFXYUXfe}c`jTajXdUfiSZjnTVigThS`VLMETPMI[Z\b[ZC\KLJjNSj[cbggZ\WZMJLb^dS[pVOo@][]gh`elk^m`SdhXXoKVSHSZ;_VKPWad_aC[eVJ@SmWPCmR`PaMjcmS^YlP^VjZAR[`WXNZ_LcZoUWWcRmdQ[L\TPTeaA\bYk[\bagKVP`ODT_ed]QNQUWU^aNP^iKQ[LZXI\YbaUmF[RTJMKNdGFmYUectPVVWTU_Z>QcXW[[DQP2^HZOjMDjMZ_OC:WVRT]Yg\cxQXU\OVLhpF;NeVhQDFPVCPSSKV]X2n\UQeVNcSQTOfTYXQXx`XiOHRHQgbVJxIRr_YXaXdMMWArtcIldZvV]SBZK^MZhX]bsnZm[JZJQkQLVhUDfUYBKSPFXMnJUCSnd>Zmm:TWYJNJ[[NdQOFTUZMSXY@;TLGVS{^]h]RjR0kSLJ9Gqy\XQWefUETeXiaRQUXRMX^PZ^BPSge^b\_foMLriKXTaNYVOXh_zgQHbbZDWcY[eePM[LBSHKxPbJ^\OEflZW[CXQXOjRWbxXhIiTYQBa_bXb^TUfR{VF7FPZr\xebhPRcYMYRLd^dW^caTFQg^VHGSxYUUQQaJIEkQV_^k\eyDU`FfP\FZiWIjJ\T_qPSkJyRj^QN\]WXOVZDUO_XWRR_i\RUNRbG^RbebIR]P_ZXzcaKeTeFRUNSoVW_fHQdrfNYdaLL]JbWNiOPGNRHTJEOLhMFV\[TLP_WZTSuT_abfOMOta[T;XdTWnX[K[NIGh_skX_Q_m\TgaTVJDlQMFVQI]ZU8HkM]mSSlUaEhSMM\XaNScr\Zh>gJEXHiZK[TiUUWnHg[bLPL[edDcKUDaT\_hYN?S_XqgXYW\QHEQOcdUMNc?P]SFYJ_QqUEZLeJ[ha^u`mZ`QK?eCQbfJiLF]^`RQSabPaTdSN]FPGimeaOJRpYiB]_I[HEU>UXB|efRzLBQQYJtZfthk_haLn^gW^nLNmagWhYCKYkSPWnrU\ZS`OwKNvE]YYLHHSoVkaa^wW\XOOYU[N[jIHrVNm[DejtT`Ht\`aaT]nRF]]Pu_V|O]VXdKPleBP_DBfQ]reX[L[OCaaXPbfFLJRmQySaX_sRi[QRbTaSd_`u\F@T_^VM4e^QO[RJX_Z=akZhK[\ZnWzJat?CPYcT_Sd[VkfQeX]OSZ5fF`YcmO]KG]TX@T^_|NVuhSJUYiXCXUaa^eV`re?LDTieQNnETXy`GaSiUXGlHjYLUFQYeUtSTZM]Pa[DKOOIQa\CF]ngQhGnX8FnQaaY[sH~\UJKk=]\PIK]_WqMRjNY^MnitFbQ\@OtUJS^`JYJtJiUI[Z^iYVU[OMXeVSBLKaOXYLlS^x_[BVLO\RqwidI~W]gMIKWUbbOYZMyiiMXtUxRLzgLgORIlbM]^^kZ]Z8bFRQI]MHbF`pfdYJkZQaYehod\[hHR^oVPsW5gbd\QeMMuG^`_]EbYRV:`lTc[tLCKRk[LKcnae|J^MI]u5\YLy~ZNdWG\HXZYWM^gTm\beVKYBl`D`b[QTXHQRjM]\XK@]U\ZRNgMUac_[GlxLdNH\NGd^\?Z<^XkT^_p`ibZ>cjbWS_RYbVTJFeZK\GoBP]OE`fhPQhREcocnJGUYa[R;LUCPX@EERSi]QnGR[Sh\_MdkdLnb^HWd]W[jXTMoAUJZkIX_AgrApql\sTWvSEapQ^lR^j\mecjTNcFL|QJd\YOG]mIqXXUF`YKmnFR_IdHDch^kbVQYUbPQ`UFiCXeaDbLZWMIU]YPVjW[fQWL]fU[^`TdcJgJP^YXKe[FFKQ_RXWSWhH:\]yVVu_ubK_acLGVeTfMQRp][HQtgecZOZ[_KYHnuleWpRqSV]\BYRLb`gO|~RUWfjeXA][]QSA[WTbKR^uq\Z\bL=]LfQHRCR@ZQMbMKaT]Q\ssMKAU]^x~VFMgfMNOaGPk^PYKj[[XK\J`kS\\UQVZeU`SWYaE`MF]XBiR^f^OYXbQla[An`4CWrXFUQM[f^`aXYa\d[cHMrZXaPRbgSGed[WTGd]I\gj\NVG{MrUo`YkRRgHISdWTNpRY]TH?Q6N`ySVsIZelo[ZYbHX[]eqNqMQNbO9NRhG_Z_XUWs]RM\JUdrYQK`?QPKwaIUdZLaxaau5_gN_DYH:TZHfaN\ZjYiOF`i\Znip_gMHWMEYPZddNiJV[beHhP_DNSy_K\VcUI]YNgbP?[MI_^UnN9Rn\T_eeBmT^_ZoUbjOKk_Ki[[h_RSrJFeYUNWsgMZZTVPORKaFr`_JIQ\plfLXVQSgObZNpHafXCLR[AaLLeWX]JQM^J}J[nRc[OwfI}VbeVYQ_tm^nALU\ZuGRHdsUI\akTKc]P]gqaLZ_^zS`Gi[ggsjaGXP[Y]kSkQSsTSVehN^uSelNDMT|pgNfNQSSeQIl_aB^YT^\SL\]Z:hhMg[nZZU5]cR\Q=OYgZByLS^AOiKdoUKGbXCt^nSmE^YRJn\aRlbh`MQXKdJRO`V[YKmUU_H\ZUjXGneUeU^YdcLbPjL_WqXUhN_PVnMh^\UE_\doS[ZMIbNY]=Ya[YMEXVnNYa`[YXR_[@Y]bVgNjH_ptgXIbmeri\KVD\K\Xqe`WDq^fQh?SnTCafzsOqTdq]mMTfyQmXI`BHVZcYEW]SdYZ[fuX_}ek^WYgP[UvihQaw]PjTMU]^JVLRKN`jWVTdb_aQraDKlgO]OTJgK[HNbSYhLJ_MS]Zt[biMfSU_PgfmRi[U_s]NhGlee]ThdjVXjYYRfKY^TcefK\\cfld[nPUiYUMOqgLv\UNSSVsRXzz]O[]OU~eD[HefbUV]e\JL^W_Wj>c]qaEb`NcZXMQN^XPSC^]9YFUK`_Mka[V]h?{KeK`LOOY;cYIWLbb\Kab;Z>`jZO`l[LjeaEcV`[HE]V\xlqUfMhV|fAMpKIJUzqQbXM?MgJfeSJWOTfAU[Y>NgRNbWlIRdOYZk_O_\MDPezWeYkP\oKs[qdjVZRCLYP\QWS_YdOaZQMTFYT\{tTS7VQ\YmVcVL``ZScEP\X[cO]_lDW]TOPY^YccNoeSO[[OnaUHY\YMX`hfXVHNagm]hWATOei^]gTtI]YTZE^^Ohh]Oj]|T`PR\TZIiRqV^VZEQWOnOBWTJ\`\\S`lfL`WG]TJf`GgVsLcTZLWPpU[hWI\BMy[PY]OtMZg^mf~[bpnQOkMP^c[AKRVZ_V_Saa_@Wp\pN_d=wXQZOgnbMjKuPhAZMOYVWJIjVwMjk_VYUm^kQKWWYPSOTIfWbwG]dmA\UrtFh`CCuTdUbZMYb_SLOefcvOPChlXMOPqYma]T[fZ]]@]aUpiV[EUX\ZarY_Vj`Z]_d\QJN`S\ma[TW`a=aMUEY[=DMbOZXacN\]d^LfUdRULTQXJ_R^rZWN[MLYVSt^5YHNL`][Q\^T]`bIZgMeahLlXXQgP^SXW`RQOGZgUfOP]eHz[SGd_cBZVG?HOeRWRj^JfuVLXWST]qNXLLN?lRZn|[_BPOY[RH\OM[ZCOlRTMheMTbRecXnXQGUSCO`OQjVW^aVcNWe_XJMRtqQFW`nLUHZZTYS[MpfX^N^efid_ROP[Fd[g>LQDG[]d[ZKij`ZaCTZN^CIIBY[WeyJT\\RHeOXpHtNUUmL`jS][WcSh\N_C_]h^Um_[QbdaSI`T][[WoAaSUdUeVm[kRf:DTUfZjZLOsXFMJ]YyWUwRSUYipp[aOQdYJYGZKNgUV;vlQZQ\YK`fY[]^[l\V[`[VCVToY_gVbPIVWTTkY`X\LQUU_UnaiQ]kWcNXRT]^TV\[e]TS]ROHKH[GV^YVMgdT]{UeUOgTPNThVaedZ[_[YWebMHR{ke_UT]hhyrRGJVbjagO[cNDMubGY[ecgjyLXZsWn;]gNXQdbhStdqR_IdLiHXW\i^d[Uj\^>VbZp^e^fUYYKhJYefJKhKa^hgQVgT]nOOrSY{LQcMk]TwHA]Lgo\hFaVkL\TU_UdakUX]LhbGH^xnqTybmFDPNNah\gnW_fUOPsRV\tECWKXVga?a]eU[gCuPbcKTCYqDGsVm~kSWTIJPVGXk[\g_b~lAbj_[ZDP[Kp_eZNX_XeUtkTKCEiod[LhaghNfTXqSZcHFgV^NJQarj\E\j]XlU[YZbdAza~iTdVZhVlhUKPPWnqN`YcF]NXbj]nawfpdV`_bUCr;Tl`yiv[TRailYYcts[XFe[WSFVHT^a^gMTWWGa\QY`wMnht\^VSCInG>QQZXgGROQeoXVuF`TfPVeULleaWPRhQR[aXhQJ[THMPOfQFmThsYfXo]lOXV\mpeWedeXXSXSIKgVWTRfchY\\wVRiV`_y[TIVfdEMWPUceXTjURbtZ\AJiYnbjRVYQcg_XkFVe]XRN_ShT\MdkJjSYXEULebc`O^SZ\`ZAAxYaxRMWdKRTaZIRbZVSiM_^gaIbKfqa=WLkUOW^R_aWQOg_Jc^OqP\8mc7vrSvaVt`[UAPiaRUVYBfQJ[jL`QpWJ=OLRMNTTjSvVtrX[UCM`\bkRaTHMP^RSTP^VNhegYc9w_8cNnKXUSUh\djRYT=Q8alg[IlaBpifT\UKkNQ_LcP^[8NgYQb[\chHYJlUGXPQc]ZSPVrReg8XUNaVM_UcLWkpWXY]RI`LlDKkQ^pX[=r_jLIaZYQWk/YfbWsNbngd^XgDMhNP[`G\MHQNZ`Wh`YSF`G_Z\l`]f]fHM[O_c\MnAiU`pUMmWW_LJPhHdNYvCT\_jXry\VTWR^iK=WMPQVW\Qv_FV9E`HycVVF\cP\JM[lwX]s^ziPMbNQ\o?9VlUZgLpnNRgYRs[OeHSMmjdvgIYgUfbLDhx[GHTuPLoZdWt=\Q[WdOqdZ@]cT\_BhQ^kX]kS{RNLX^XMoWp\TG[NDTM_H]Maed?fUV^]jbWfCGiYRCKV@KENobijLoThfSWdMcLb]BZLb\MNajL_hSaa^[T_^w~]HMuji[:YFaeb`SRKa]6\]OKD~Wp\YShYLigTK\QU^^gYVO[eVUSLra_Y?KROOYG^QebXPNdEdVa^e]OeNgWdEUJNVT]Eb[IUTVQZV_\p]]TKfULLDYHhgbXRXQCSeHRVqedKBZcUkq\cKqaSdLLTMg^NWq\gc^\\Oh^C_HW\\vR^JLF\aY`RtQUNbhYSl@SkReR\Ygg`KfWaSb_KcE`dU[iLSYIQNVzSLbXY`HgV?SjGU6KjVjBcQ`NYIVWbNZ]XUXWa_XqHSuo]tQsAM[\OMB^Rp[\_NaPRL^bO^XYnQ]CJZSTM^ZSSbcTLgP|ceeGKVnhI;dZOgjpQhtYXYUW^XVcTCObKru`WZ]ZkSUPgQuPkMQcp]IXueae\\RQXTZT`ecTbCFLbj[NaneKTiTQe[TK^XUFWPORKVDNg3O`Mlr?W_MpM^U[M5XUNTo^]_]HmZZ[S^=TKZZbUMRIER^ZceM?[zTVK\FMMJJjA`IMQifXWZpJjPUE\H^WsSQMbtYARLqZMUdP_WdL[HgRSR`YWAY[k`^ubYSR\\dHZIUZm`bTc>V[][PYQN\]cXb_toXaTRXikGTDCSg\XTQ^YiXiVWXREgnYVWTdRPh[J\MaYURWk^TZYfXV]7NXSmSGPWWSvBeH[XPPO[efaPbWfIYPsseTjVT]\`[TOk]uGvS]g_K[OKEUTapMkQRYP\VNV\MYg`\_af\XN\VBfaF\QuSYbLUG[DPV\W]L[c|gc]^ZPpMkJfgjsqRpWH_T>KPcRuMTP{O[M`__RU[QTajQIMZmbTVXQPZx`Mo]aeqL@L]a]Ccjh>WWJOVcL`aShSjTOdPPdW__iGohBp\\S^n\`CSwlDhgMWb`\cJ^N[\sigKqMYpBX][t_T|TVKiRVSefK_mQq[bgK^T8Kh_W]^fUrUQ`RaTTfXAh_]^U`rR]Xcc_soWaQVWe[OZpAkQZQ^Ih]X4NaSX\XdH`SYbSiXQJmYj}hGr\Je]_i\cZcKY^gmFVMNj`VD\ce]WLZV`IcG^nNRYo`tTa]UZKjGNWqcos^[we]^aTJTTYuSrNbJiXTbZURYXfHAQJTN]]qSed]e]cdrwTdM]cJeKS?_W[\VTI]X\\`h_J[M]YUdMRNbrT[cKZo=]kXrYPnIIUMfgOHVZTZaUt]WldnY]^`TQQj[f`VEKNOMXKZ]UDbYV\JUYEUYIGR`NXONhZ_\OXmhMeV^NUGUjQlXh=X]LbHSRJ`GgQ\TBWW\TvQFeWt_BXVWPQcEVLSLQKYfYiw`WLcUEGJAbKYjwTQXR_keKM^RM^PmrYGMYCZ=oUYbByhS^_a8dNDaLrPSJ[RGEacqDwLURdZRqOiK]c^Wc@N]K^W`\WZPZWWUj``e^dv]qUV^GZMWnQ[mraRQU`_i\FTJj_YQkeY=YTQSRa^VDQHWMDVjgeZWTQ8V\NfUfH[YSIQ]PQTNaeRks\y^XT_b{7VURZYXV[^VbGN[VTWEkZc?KWQdIhMNMMUk]eSpeY\N9Y_aIb[QV_XeUVX]mUZQZVScFOWGCStOTY[KJXYIoQMNX\^UX_f@f`JXV[W`NZ^YIV`os_ZeJKKCZaUdZ@SWTe_URqUWs`Bn]Zogb[pnU`maETVXkZY_^M|LzZVVsCTU]H]iX\hXVTgZaSRUVUWYBQqVCrOYLib\W]X]haFLPoOA^BbX_VVXH]y>ZY?R:XiOsRgX[S`RJL^Q`TQSXQLHT_VZ`PViXiIf]^LF]XTOpWNT`NdS`fRmMc^oYJZtZTp]SWiRHc]\SaPlbWcVTP?L^L[NKTiW[bfYbRYVTjP[^I?_PYHOZQhO[DI^aQSa_FSM?hXRiVIVTTme\dQd^ZMOUgTe\vD}{gVScP^XgcZ[]RHZCUcop4~KVS[_UUaY]kTXnIwWSu|R]Resik^j0^bSYhVQSRWn]rDMSBDLM\ncdxZWQLNR``_M;bVM@^XTYXMb[po\_GfdcnPVLSL\VLYWY\DT\KIfBNMf^d_GleaO[T[hZW>YwiYIOMQi_]bPj^QT^X\fJPV_qZYQTPeSUU_YF[[o]^`UYSsaeYPkWaTbIZGagQVcRjd[[ama^_^Bb`kW[LRY`MN[cMKa`JUQB9lRRz@EN^k]G`h@MTMWSNZcaHP}=QFdb]vMRef]DH`_KR\tSHl]MSaKZgqfHn^WX]LS_SIHR^\UICU\U^LOZbN8ZGNkZNbQ^X\PyL`U=SX?XPWTdmOTa^UlyRv^R]cGbEY\XORoVg`UVnaVTVZQi[[EiI[vTeeMZOMh\NS_URQlg]S__ig]ScbU__eK\QSD_K[g~@TQiekK]KSWKN^[[W>b^VN]bmNl9kccDXHlO^SMTVhQPZ5MDeUiVILiKVRZ]TPtr]]MHlcfKV\M6d_cH`P\jNQFZfVc?gOUXhQmKwOfRo@c`^TXMUVVeuG\Ghko]KZ\LRIQTcDFu]Z=vs`TXQnM``UP]ireOaLSR]Z^WfY^pherJZYTIaa`WYbLd[__RbIQSaz]Q_dU`WbbYVXWYiQsRSejW^dHMfF[\ccXRTjhRRWhSHceV__nI`lL^KQTth_ZXe^RYgKPjcQVIVWvWe^^k\mLP^ShP`XbnSH^cr_[V_lTgV^HceW_YkVK]LSgXq`bi_`dXUViea_OTU^\rOL]VRbQP`KFM_aWC.VimeiRvmPohmgSSkSKZHpYZCVHbDeLmFqUqWdjYKS;ZAFDcA\XhAQUTUlRNd_TWbXZU_Wi{XlR\PXWj_LjAPmG4_GMTcl`8ha`Gae`j]JTMl[WDRTPX\KlePVY^[_\[_mZtiX`@DXDVFPecSVUP]_MZlTkcIR_YS[_cMEcX_PN^S]_VgK^[XX_ZpU`[`G?eJCJegRY[LiXWGSYJkTaQbLZcWXBwQqFIaaWSUdWdI5eZ]vvTVVjgTI__ZZ_OsTXY]GeVEkJg[_R[IcRsNWXQc`K_JH]hXC^dZVJjX]VvULezks[SLfUd`[^bV?_sYgTsiyUhtP^?e\Wi[PO`=VZSC`I\[UZRdITQQSlJeS[URf)cONSdYRPZ[FffUgQIK]S^_R[T]_PUn\DKQMJfQUWM_KahcQ[CDKSZP\a\]O]\[UDMOxn`J[T[7W^_[DqU^Tk>h[t`LuPdO`i^eUWRJW\WraeY^Ma_TYVTXV=eSJ[`SI\Scd`ZQxKJXfobHOEdng^y``JLHM[kgbjVWE_QI`_J[fYLWXbLR\>OjdaOVs\`o]dhfJ`]Vj_YTVYTbgSf]lF`qoilIBSYJ`ZSLMdPshpWZhmRXZ}[nUW^J^S`Rj/RTa|aY[L\ZobeAn?_LXHPaZOdQWHMIUVF?FOcY[KwQI_af^S^asZeQha`miqEEOMMV_NGLSI_EW]dC_Wpjqjc\f[gUy[YaGHVSQNQQSbOMiW]]gm^R]b`YSJM^IJlJXeHSK^q?UUwRW}RSXbZ`NJJMI|MYhfM\kTNtSXOsJPoYhV^\`WSfSXkkQINL\IQK`jGNaEL\mOWacNkZeJTXYO\]PeY]QO^ZmSV>MZfTaFYl]uShi^[^d\LpUTLgfVD]SlIXYWA_HQJTK8MY[Zp][ZXeR]hQdQOMSTKCNUhMRXVdkMYY[P_Z]PYPcJhYPCVAiTaFdRKaVY^WmdHIYO?\YeaMW]FgcfGXZVke^UJ^_UREJ5WVOkSYPk\gbcOSQL^FyYOfWOXj`uGQui_YN_wTXUXj^[H^]hZ`HRNIXgFLYLN?FeQZDRL}tUMrZkPVZ>YKWQVAXNj_eWIdJXhfpJj^Y^V_UNmhgQZf\?ZZu]oKesLWLY[aU[Jf\^gfHiWM]HWNuyHS]JDiS`;[ciWpNldseMhWQc_N?TZjZn\dgodPqTSSdOPRNJVMcy\^amfcDiXJ`dNZCPPe`rhYdLNbXPy^ldnETNheNIL]LPsXY[XvZX[t^Y]OVfYFH_SJOWSQ=YP\`^`QN`\_\XNlsIgV[XQ@O[lJKrTMc\HVRS]dWIU[\[N^V@mNXtsZVLT[jK>P]UeoR[eSQSOHLmSH[O[]oPdZjIDaaaAYNcd~UKZFMdFdYLb_beUYg>MaRhLHfbcVAg]fAnRl]bjK`U[S`DbgSRYW?`ZPI\J\s]VWgcWWdPXNclT[MWZnw{C_PGUeQWbb\bgTdh``LZBaRf_hSQijnVKQX]L^NjJGOZGcbb\NjVJoggX^T]JRHun7^P`QSZQURUM[S7k\RY]9YNI:lbphH]kaXJ^VVcUNb\PQDYKYKOd\RnNOVXbLc]n`TTNVEI`NdlVMUPcdkp{`>BUKMUMaWcbPDWW[q`OLUbtcIxUZ]VhYv\g`tUiVXSbnhQPZ{A`rfF^QOa\vp]dhQOW][Y`IbfTUdSOcoeq|V[UROM@faCpZJ^\N_Bc`IV_kYyCBAluPG\SZeBtSkYqXTPjbYHfea_dBlDiQnZNWScdWNgL_IDX9^zRSc8Vi^hSTJ\UL\8MEg_t\XJKPRWUK\MgtRBSPYc`Zn_PkW_M^SZX@{jOQL[fHxNO]^BRN^pREU\ImUMQKWQfWPg[S?R\Gp[FYwWdlfb>AJ\cTTVWnR]Mc:ZOdT`EdQLU*ZVE\phkrPLWT>TheQcqU}LYJhS`YiG{fmUV\^UES\fL][\FUZUROlQXQfQVdJQTGKg8`a`cSqXJNNud`G`LLOVWPa[dSWaSR_mGiQISXLEgUwdHUbeT~eVfEYPS^I]Rd\ASKRNZU^jEc\\`calTNwEHMIL>PWXbEdQRejW^XIjTUK_BBbp`|GTSLu]rIiPLKWRnT}SlT{I`dQVcfQ_Q[ef[`a?RXPeHILVUIeRPRUecWXtdHTXO\`;QZL_mm^`7k]gnPKcSjj]UP[P^^"b_oN`YPJ_ed_cW[^KdaHOQbGetHId]TLLIeZFOMRRqaZqR7V^9QI]iXMVRFQMXYGddmPX]UMtEANISQZYeAjXhNR?epF\L=HcUaIU=ccG3cWpN[OShf^V:aUeKU[^SU`CYNbR>@DV`dOvZ=mWZUStXL_fV{J_\hN`d^QiGW_QW=fKBB\YQdoMQRXNlfJJPZXcZnTSh[Vg]q]l__cPRKL]]`^UaWHxd[RM\[hK[k`UncYOcWYZNV]ceW[LghFcSMSSiT`\[jTU`VX=hLZ_``b]^_DQcg^_PM}\WGdv`]]KjE]ReYP_MEkRsVWdScWlo^`h>XBJo[]C`]SMX\XQP`nV^]g_ReZbgPu^M[\rrFVcWc\YPFq\TIKBYNFZULHdULLXPZlV[_yCXQZn`UZjTZUi`hcqWKvQiYQoN`\Lb\\]XQcWL]\PeM\DbMBQRTXGWkPTOERcRPbsedmZUmSyS`UPpRQ\N[[\jlWM`iCNmSo^hIciOWx]bYZJ]UlR`SUKPaWMMq^pKQKmJODVUVbdlkS\W]dcIVfT`XZjdIZE^X[^d_iiRW`ZlWf`T_UuFOd`]\akyPlSuQVVWqdX:ZaZY_S_e>iPLNX_auPrcj_O^\ZW\e_T^\\bRdlD_LgigWYSTO]c[Pu{IdVfVVhXWMYTZfkeF]fgHd[cm@VpK^A>RXSZI^BPRQbjdWTafKrLYbb[r]agT_I_UeWOU_oVK]qQ`[kkVMb`TR_D`[SXZZfXMZpeDcfN_V\RkI_[QiHX@OkV_lVJndenKXW\\mVpVoUX_LQF_KRI]d`]m]tH]kaV?S[k_`UetUU^MTb_Q\efgY;HedjPYSribbKTQRSE[HcN]^diVOMa\jce][ge]MY_ZFLch]UYFuRQf_bkmgUS^PgdFASBBQBjaLUhZSJOI[cT[Y\v[maYieL^ZpXq[JQocFZbeH_gM^TWMNK[bDIWScZ]XQ_TgRG[_qsRZZRcb][cM_WboXZJTSK@UYi?jYS_\_tPbfPOMZUYO^ShTaeR]BwRYNRRR_`LOiriIH_EWOcBKONNl_oRjZT[NMZUZb]N]YjPd|ThWZgcRfC_UbVd_Tc>w^NLcDNNVbgdL]PccmNs^JOQfjb\LQlYV`_`dOfYUhd`X^\hdPSsCAIbjXRBFX`YbdSwajcSkVLdgQRwO[SrYa_^YLU\`aaXZXeVMY^OWTUiOWS`]_NigR_IROLPYFiSKg``zhMbQRjT[p]>Ra^ca]Nh_JOXYWkGdZ]]y_^PDYY{jNVbfQRfcZacBRTSZbS_Vk^h]LRb\DDWNZYT^NN[lghL]@^nHt_KcPSVc`MX@mC[YSRlmPoTiIZ`YMJVRda^SSVbickHjSYMTXNapCEQaIZDCTGgWfPpE^^WO@SLIlcq`gZ_Xj^M=\iQ^VR=k^TaPGdWJcl_bgg`H]KRAhcaZOMblR^UObOaYUi\qh@igYRW[i@DTThbqZT~fdN^OL_QPWUlVGRV^]l^U?YYZ[~mU]h\GXCOgH\QW]yZcaJ^W[?MPOS]^ZQXb|sgYQSbIGIbVh`laSXLOVbcteTbON^Ra[u_XH^IJZ^ci[eeSGBveKYM^]URVRVa\U`LaZ[ioeeINV<\KOgKejQcm_QOVjP^QuBuf]`VQL^phsSX\]VWV_Ban_PCxgmcaOmbUGULfRqwRN_\PZhE]TYgL]pvP]HcTlHS[rmGiRxcLM`EgGSLgSKOIULd_RYpZldAvEU[QbV_FOgJ``SFjS^LlMjVGwVXqlLUAPScSY`Ma[DqhB^Yv`UWRi\YRFbqZd^[m]dOWs5HUehefpYSLe4]XnSY\B`QlpRTubYiT]VZ[[EWWeXhdBcdR<T[_D]C@COQTY_cNPgRPLr[N_y@W`kGL:W_d[lOP\OImEJalAQlvLTI^\PQHD/ZWVlfbq[QpYjLpFWcpNnTJMNV]YkF\[S_SRhYYUZWp]`k~\eAYOzg]c\ZZKoT`8g`bE|gQa\jn`NMsUfiSIc8iRdm]n`[FXBbvQ`tLOelcxR;cUWkVOU_TSjUbWPQMdU\]WU^Gba`gV^\GFnvQK[]dqw]xg[vSxNHY]VPSLVOc\\a\gTXIcTaaBl\IC2LgccY`XdeQ^g^OY6]hX_?eTDSd?YqRjZcUhSlXIiQhWY`LHX\d[M^DJOEYOMlMOR]bG_xZEphZp`UdfghEvG^DdgbJjJ^EhaWN\Q^OUoOc^EZN`TdawY`NSppD_WUwaM9dU[`Y]m>USmRrNeOQapRXkFbiUbKg`RoYYTpfHPTYhWY^^mHiST\`fSVabhRW7_gdRhUAcS7XyHXY^cY][\\KLYV`k\YKRE\MQPGbs7iO^ihbR^WZSXYPaO\LFR_XXRPDLOeTLb]bXZc_HbaYXlX\]ffNgW_fUXw`hk>LE]_KY[f[[mYVL\Ocaq]k>}_]T[d]^^KvxTUbfKNVORQQS]jSJ`PV`YRO\=d^lP`fUTJ`WKY^PO[VPUYPLaYTK[TaQXMM\xV_vfa\RNW[E]]fdcFdYX\ae[akSdd\Tj>kIB]TVhcXTtY\abTZRbZ]DT`WQhbPZL_D[SNQ_YSXU]OsR]gQVNGTU\ZOScaTOHFVKoV\_OHN`:mXK^dcURr[DKSVUeWCfU8fW[iNdUe;APXHIXCe[`^PZK\][WIhbKWU_\QVaMr_Oj@eRMf@KNqYPeS>T[EXLZkNMFJRBYSVQGPPEROW_Egr@GVTnVRoYcbURRlYW\dpmHXVHR``E^i[VIaJ[hURMVYSSOYwYINrfoeMN\_b^a_iFQIPcdCQ`CWdi\medS[T^`Rp\gaMTRVRQQ^KIUC\[DOO[JURXcTPFQJZKLRidULYZE;_eddLdOssi^UbIHQiV]GHQXa]Zd`sRiP^WDQC[ieXQKjWJVYHIHlf@MLb^gWPHTO]KVOfEeN[FDcXQTpbMb?tJWZg|NYU[JO_aap=UWPBO]ZS4sGK[lMaYQMXWkb[hiUXl=gvTj]OLZMPZgDUl?LaTpVVNafZZ[Gfb{YbALZJ[\fXf\I[NkTVM[`ObaHGU[W_m]aTeIRIahFmhdSZM[aEgO\_fUWRQHehRTbRiZW_RR^UV]_o\`b\X]OPZPWWJ\hOf[j^[fYQWbRGaaSUN|YMUZVdKebbdZLQYHMUTXQTR^XqddZ]in]WWJ`ZNe]SPKYYrYUW7\HkJO\OU^hWjkaNJgLbMfcKv|PScaHebWGWzIbdVeZDxfXNVgokU^K?pFWpVEMcNLZV_VdNdhKSKohXkL^~?]har^UKMEl^fkTXt\WP`lGR=R^USZVRG]LTX[kU\YWeJ>[Umgcc[oPckMS]]WfPXJfPMYNJhibYhLUgWXgTnfUqof~VRmQaTcYQEbhHPXdfZlZiFQRcQbIaQ]hOVW_fpciQDhXNRNRVb\BXnYEQ\zSMLY\SZWeH^TAS^&]]I8YjdSLXJ_?W^oNNyYa`KOYiSfb^U^kO_EjmT]`[XasrYKNTEQhL_RadDY9]VAB\`+The[X7IdMrN]c\>VJOdXbMHKLOYeTG\M>Q=JohhhpIdQoNfaU]Hf@IMWe@URKDc[QAkQJDaQ_M8qck4UVBdXUG[NM^]`gQSDQ;QXXV]TZIZQPnuWpN^XgDOZrqSK]euKHVhVMVZZM_]IEOPNVALdkWhX@HITMKO`eGfLPZUndf`QU[XqPSJSosI[g_OYJeqZC\Ldd_t_^fVlXQQ[=^[dKTIQWgLu\RhZXtT`mY[IdTS_mVWTP:GsgYJJdGWbcn`gTD@c]yQO[]fjCr^OFemJMUhRfehhZ_MXSTuftYu[Th^MZ\Wd`LZ_]UIUJQaA_bj\ia~djb^gEH;aWc`mqGU``LEPZZvUjelJ]HQDhCtu^Yw^V\Wcl`JkK`Y^l`h?MRm]NKL[WcRe\bSRjdrXe~?UWICXUNT`nX`CJT8LL]VfDYZY]NJH@YGiFmumT[aR`TglrfCVdCBfAmb`M^7jIl[uVRZQ_QZ]f]Y\Qan7VcTSSUd^FEFkdm=JcRcTgQSV^cDhEGeOJXL`U\SeWBNfRPhPYpcKScbaXVR`KJSalMhkY|M_gRmY`SR]KMFXhFa5CX_TOKanSVtgo]T?d]cYHZaZ`TL`Jkj\VY_SVhkCfWT\R]_A`MUxb]ecnQaRUSQRYK^E[dmf`OMYh\UdceVR`urNQPIvhKf`NVgY`X]^^IKod[5M\SmONRYUAPo/gTlPBTHEU[LaNx_?@MqXIUUvYUVSQRKCZWe`mWK`iKHXZ_^Rbb\rEVBl^NFs]Wec^YdMVRIk9EljS_[\LQUuGZZkcZYM8ORgWNQbfYFRN_VIVQ^[LYi[ZgTeUPUZfYS_EqvSa_WfKYQmfXuNd[T7ffW_TRB\PTGJUZdqhQVFjQngGejYNdKN9rVbhNA[bIiZQXJMqkkDbPL\RFRY\PXLcJsNp\ReUesd_UQdR5j[dKOl{_dkMI_][`dYi[K]UMSgQlG9Y>U9ZejW\KcW\GCNcTWMP[ZIXXiGV_CPU^T}\AXay\^O@`hIGE\N=dZ\]RZViOj^VUGUsoivZTmmTSLGko^WjNLtHmIriKjEWLMeTMjKW^`Yj_GpQJuQUqlOR?AXQEHYHXUQEa\c^\_XZJM\afR`P]iBFa]VMHWfZxTYf\GQSWOaq^[lYePUtG\7bOFhYcYSQ_INVJJnRXYP^XVaP=PxWxfd{VNfQgMMPmEQWPSYj\YNKc]SP<]LsXrPZUgaETJWgLRQf`n`ZgUPQSlV^R]SRWfO]PVeUe[ObULbdTOcYcdbKa]?R_eYIZS\LBK^JQ_PSVUSAcbX\_SZXT`Z>[JAJZVTZKVbO_SKGpQjGXKgZYTMOfOYKgK^XVt[;eAlRK`\_S^ZrQ`_aZA`RJL>bfcX`WVaLjUaIV[dXTkRdRBZy]gRbn]TXVFMOMaN?WFrTMIQWcVPEeRp`GRXkgYJUniRbXWaZMKYFAEN^IJYcgSIhASP[Vb\LUdMVfQQ~bP_=E[DQ`VN_iO`WYT\LjkQnPF[VQYdrLaCXmTYSC^TP_;]XxnEYQDbQM`^T}dlZ]^FYZdMPXMGNSmCYwLWZUXS[]gRQYdhYv6CWI^_dQ`S_Kc^QZHWnWWTg]aCYR_IU[WqY]ZTg^_LR[QX\VF`iZ]d]JBmJOPkTuUNeN?hiVQVYl[[`BRMdPRVbXWETMFWN]ENQpYg_sTQtF^KEhPPxQ9MWnQ^@=PJL`R^OUXM[UWfr`^PQIeedJU]USMhgU8N^ARZRoO;cd^[WvQaZQLBZ[MAhWXiSj\OSe9XUPmWRaKciYWrT^hW^fXddNV]ScZJ`>G6cP\ZZ]]YWXhHu=BS[[JaAY_fYDbSqra;`akGdkI`HVRz\KiMU]RjNdb}[II`ogdNN_]Um`DQ]peJ``jbXZVPQLO^YXMFc^Js\`VcVntu?KZ[\hLiRXMOmMUUWbUj`XsKwacZ]_\P]X=_[eM;WK\iZka\_bfHT[SZh`OJSZWVluI_IdXaXP;YSXiUeHbqReHHWK^Mgh^OJQ\]\\\YeZNXYbrF]bXUV_CSiPbLOHX[ORQZjc^WwjlPE\ZRLUrjW}^mLU[PHRn_PdjXPbYT\MJEbWjUq[Kb]Q@\JSNSdPUpn_K;ORLxJN^gf[F_BLJXEHIM\[\wyZJHjF_UZtZfGY[RoN^NXMTI_QwLhaW\`_IX[_WtG^YlNOFoJ[SNm_^ScKUOh_FaSbw`d_[8d[[w``d^b[ZOIfIWnZFVWNJY@OndJzQiwbYNVxa`jFHnMUdvHpxAWckYKjk]`TZb\_ke`s[9]]Z^f]^oufXReOTrrcXZNKZHZVaQDQeUfX\SiUoOcNGaX]XPXMhbCSQ[_`FUQW_COLRZOTM`mcZAdC{NDpOusrch=[eIXouMPXC]SabXOSM]VbZPm]iIjHCOWYPaZa^obKZc`c[nQGNReRRdMBVQA[mYOEfPHqhvQX]XQkhYNGMaQWSOUSS\d\bRIYRSKk}OUXUYF}kYoTfaPONeTckRAYfeQZNQXJh^Tr?[gaXBOQUZO?U_idV]KRW^GiMOYEZx`de\]Jj]A\^ZRdeKNU][gPIRPZdLXGeWRWDI[aNdK^ZKoTQRAFZSIf_vl\W__NUt`e_HYGVTETT]ekmPeNfOJSfIYlTj`]u`P^uBhWObqdVMKd]]bDU_qQXUUa?\riWmG];CTV\O`bVgVf^VEia[VjTTdM]MXs`ONXuATJTdZSLa_^YJwd@pTfM\zm\_[nM]gWTdZ]gdSNYY\iU`^[iQY{RbX`<[VP\WYFRq[eZUWHImZMk@Zh\GVWagY`Ore^]SUFTxZRVPYSZcZ[qRlSSHbJWi_XHj[PZ]qAR[YKaPUix\VO`ZD`\YcIVN`UQQN\gLAYXRx_S[RNp`OPNeia]XThYNEP`HTdrb^jbc?WhlUygS^_MMb^Y^PH^`Js\UvHOXVTRGl\]G?VjlUKZbNUUXRZ=`P]jd_f\O?A_XR|TmKOeWPoT]XFYuXlc]bIJ`GJB=fvRSY`Y_bNAT_dZVUfrKT^b?FC_PFX{fb]sTQ^_LvUOUTXKjdAZTWXEjRDnOQUCkJDYUY?YULXJOZ^MQ`dbMeCLASqMb|YJT[GWcdaQaRbmCbd]FUmfXSKutTPjUIILAfTJbTRieEiPi@X_T[FYf[XY|b]P]UaVeStRbaQXh^kUwYYlPDijQ^v_afm^R]ZbGN\\]Y_^qGV\WmYfuMIZ[RaJVMZePMT`Q?OTlUqQNR^kW]P]]XIPDg\T\SCPGUWqJXL`ZpJoY]ZX\HNLLUQFTXTUROZdYWSoaR`ZRSR_d\R]QigjIEgZ]YQJjSWKhcj\UbzT^hIXRUPfUi\YcViXsUgoAQ_n`Q`vCIfYgXX\FWPS]]APXRceY`XTajOiR_A\=QSbfK_hNZUBoOS_X^QUJNQW?b]_lPY\lWPk^XahWf[N[ZYd`joOgQ\RZgA_W\HJZ_kJ_\d~WVObUYXWMS]S>qJ][bVoQFfTKJQOXm\a_WMMeXO]E[LdgVSQyWT_QQcvTEQXjK]YGSbXLVXPP^JXZ@WM\TiWOH`_x`S\bTVc^ba[RY_V]pD]vSOYbhW`ZTZ`aa_TeYYd_]`WIUP\MK[TG[JCkU_SNZSDYUPZpXmn^SSOb^WXg\?kRe=br[UT]YjeiJWS[Sc^VM]QVVnM>GfxaMAGMSQ`RTpLz_[HkO[I:]Lwn=WXL[`^TNT`[YTEQWPfZ_NPVCtVZeZDO^HNN[dXTj^d^HrU^iL]e@I[G?~J@cZ[W^GF\TnV\LUYdGUPFPSSNVnNkc^XoH_xgmNYeM`JG^cU\NVdaaaEIJMck>gGkUiT_ZLbuJPRcpsSZTYbOMnR[MX_X>aPZjd7GO_Q=crGrdTrmedht`QPM=Q^cUVI_FffP^ebbgK]UOobNZN_qaVMtXa\ZL^XjgYXpZPBVkSQU;zlVWeR_Y[kBSPYR]ZQT]aSJPnTnVRZLeq^RalpdcQgRSSmPS]URYHEWbophlNWN_]VXZQs\ZmBGW\^RMkh[XC\bH]WSv`tP~L{YjS>FcdLcFRdARWRK`agTpUSPLelh]O[pAXXaURmaX_RaKVah`cKTJ[KXZNc`\`vMqdLn_piT_cNq`:Ik\\GQmfjuWZZc6OZRZn_cgYNYSONehYU`LeT^ccPiY\phNCTT\}ZSQfiLU[lYTg^[>]bbORdfb`WKyNBWl^eZNSXWZ5YYS,T`_q[gS[HA[MP_NXW4OOV8VWk4_`aRNKKmPNcG`IGChd|wRRJ8h\iU2TOFQZeqZNAX8;Vr[]]TQf<\GbTi[bpvSBH8IYegJBMAKYrRANF_rJ1^TJaWQL`_iTYeZVMP9oYRVjgRc]eQL4?YG[ikUdIELcogV[h5RFThRq^iYI[N6Z>\NdjPXFR]WpkY]T[Vrhm]ZVfh`jkMDfn?jfp[\C[iRTLgW]^Aau`TG[Zj_N@URQRNFjHSOd_g]mSLTORY[LG`gMEiVTYeJKDrWvIYAOAY]Y_VXUvnxDl\edESb\Wea^GLlhJT`YDSTtUS{L|ORIMNr\ZbJQQ\{h^RKpa[FTichRg^MN_^QeUOWtaWa]ZcTYK^o_gYkYVQuZdep_c]Pg^OVWUFKPaRVJde_pHJ_^S\]V\`VO`JQYW`ICYAGQNjVRRU[hTdJ[HfNLZaMQH\WH^c]]OHnU^ZKKW_Zpd\JMxfatXF?G`XEijUeHReTWUNXv:oZPmIQU;hUYaYDb[eR^^SGUdSeUKS_JE\:fJVaKNcTbkPF\`\[MtaLOSeTQ`FnZ9IV\_NRZCW]I^ClbhPV[VN`_UOKSO@NL[ZGHG\bTR@\_][kRNa\ufeWL]TWNXSmD\QRGVYYTmVbYd\joWW^CoRMlubL`kJmTOSUsshZ]ETVc^OQrMFZaT`pTKZZ]XfReV_{GXhSfRNVU`CS4cH`]jTEC]WRJUP^ecXTV{cK_PPWBafJmP`QTRY}YQ\C[CibMWeBSiHeOM`|[pf[Uf@]Y\`ee[MbVbRPGZDk`]k^IQh]lR?tpcn^Kg[_?L^SRP[`TcPRWZPYSPL_mT`F`jWQPjLakWSkSSi^Ob`UERR[^TR_TeQY`VR?eVbh]T^QUYXmZZbZbhVSeXRhTEXQH]^x[cbhcRZONTSRSRpK[YUtc^lUOWSQd``^pISVX[_M?cPdBVnNGibAKxXjWRnZXRQrGf`HSaOnXLR\[^aaapW^XLOYF\ZFQQSlTZ_N`_aZYf`k`]ZRPdmhomGXffmMJ\mFlN_T`ZgXXY>QKGdLK]JIRXJ\hXmLQeTPKr\M]cYdZM]SY\E`pVPP]EOLieUgPgU\LPT^]]CRiMZ]VbM[bPX]D[be>RSPHYXZ^QSNXMKJ[[gP]Zki[V__v=TJaR@YzTPXfV[bc[\`N^RcEKRM;q_P]RR8PB;\yFqJTJTypdZW]:OKMc;lV^\WN@fGTNtCd^\QtOXQYYNIK`Z\CslFVfaasS^UUX`@^N`K\LveaPSG^fRnTR<]dtE\K_H?_E]\QYR\]rW_TPV`kbiKSjVtXDXF[SNkpZS=HbWYYMRRNMNzJrvdFVQMLUmTciKtSdH`XV_LQLildG\LUhdJ@j[gPQ]fKPHr`@^^ITODpZ]LP^QAeqWmF^cQ\I=EANgXJgfQW`sd\`VD_bo`VJYS_MU[aQaK^W>Mi\hTP10\_K_bYUOSxpOd`?LAV\OU_DDi^GUN]VGOcQ_nSL_`hQRrkKLcgyQHUBeQG9WMztiNMee]SdVh[ZXFagW;]egSeQLR[XlXX\aPV]N^]XRePN\MEhdRPGb\cbP]`Wgcg[QNG]MXMapU[WObKlYXY[\[dOqkRq_VJKOH\OV_bW`wL_kLeTcGI^ceZWWRYGPVYeCgPV]o8bTMnRKXXYr\VR[WS_OX^`fGP`_UWSQM^g_ifXJZkcbqZPCUQTtSgPansWRUjPf_nWcTuEWX\MTYe[c\OW_BPTXx^e[lB`dZbPf]aWMtPePRwH_`T`_XBJev^ZeUid^lUNXymViN^[TWb`NL\[`oSTUdrd]FLW`o\WWng_^]_ZenUdtZoSRTLgeRc[PW[U|T^_pQLQnuTUo`Yb_M[zIURPl]Hd]eMe_S\Ivy^ob\h[XsC^`@o^nPV]]ZWEYQY^`YlLZ^VVccXlR_\hGeuUu_oLYoz`ZLXWL\QfUqEhG[sbh^`_LQIJ`ULQ`\`bKOKKkI]ja^Z>YRHULkTZ\Uf]VUZ[WIPULwSS8`qMbub_ZhMt|\h[X`lk\ELeLWRcPYOPN_p]jgUWZv@]ZadR]`OnrOSS]DYM[aJTYcTYKmXh^VVwKcJLRc}b;fZIpiY_XrDV[`b]VR\SSN\bW[RLNb^OjV[QPEgB^MIJNKVKMkPKedWXToXiiKENeQNhcfYYeDDOuY^^MhLiRKyDGYZLV^TRpDN[NODb]YXhMNQY\TaPkejaSEZ`Y}?aRcf]~bUMRIbaHh^ipOLE]W[h]][[g`\VhQQR^mKZ~VbT`\VwPVIVUSeAWMo_k@^qYiR\aSyPNXoMOJbUVTOMZtJORuMXHsa^fPS\nIUvAJ\PXkPOZNKdCS\[SinN[_^NY@UpVDlOQeKc0TX^halJWZTAipnRZV;MoU]^]S\][[PZiOaw~^lY[WSah[QTiU]ZUTYTi]YVKOuUNHgZI]gUYVQ^fSXpQaTMIGg``^UcdG]XTRGhdXZbSmQASEBim>sXW`^XOTo_hSNOEJMOeTJN_MSMN1dQ^JVkR_`R9cf\TmK]SJFXSeQK}xIoSObVVILVN\Pi[_Wmk\_WPiVmXVSQxJY`[Uet7ChSBYsc^QXX[bVi\nSic`]`RLZN_dYL]^_\_[NaV@tBWbaYYT^[daO>O^SWE]avShZWuZf_YWbZVJQJVBVNGZK[HaHRP^SfEbZV`hQEan]T^VtSLMjZZ`[VVJR^[OYLmcOkIeDK]\IBZT_nRchYOm[X>_aE=geTFIXcZb^zNN[Ej\ZlqBNhgKWDiUE;i]TXXaScUn9eIT^j_bME_htdR]^dTXbP`T[I]d\XSVJ`N[q\IpgaJoK[SRjZnfyfUSSSY_plbv`STpXKlTGUbS]_p`lVV[dtWPddQSRDAzSOQ_MKma_m\POBJ\U`KRQ_j^hStmYXP_SV_]]_^JGXGYJ`[WnePVUnX]>fX]VMPiY[PgY]BApNRUX`XWZPaFHyVadtSYVTVZESN;ieIi]uNDfJO`MPSCZTD__U@H>RUUJgMhLQvZRLKQcNEZlAnM^ZCOVKTX[ZG[hd^X[1lWX:EJuIMQKD=eJOO9R[HWh\WGeWiVP_Gv>Gj>_^B^QgoKXPdeNWRURWU_CE=[XjSUHuY]wJWq@[bPg@^SUZKfTISHkKIYYVZTXeJeVQVpJXZ[d_f`\ZHoI^ZX4fRVg]c_Y@Sn@OLx=Vd\S^cxK^qcMe]SfWu[l_Reg_a[RfAQROSL\hg_JWX_dYLRsWYzBntZ}Q|nVIUESWBTXNSDXKVUPSRFP]pH]UXypYiRa{NNNbThRSiapXOTEf`adJjVghWOX?KSTViKgilp^ajUUM\RoS>iRRAhX\Tp}[RRLKTTbMBNPSDsgNt[m`DgIwXxDYiZ[GUlQINL>cSNRajKFQIhPSPn]^c@KGRNadfblNRVKAQQfK[JQNW[Wm\dLJ^VaBEVrcMU_cT_PYFR\SRMeuDXqEiFvKXbFkRT_k[NdpXj[[R`ktUOXTHQQdNsZxQhBk\v_RHUZm^QG\WQNQ[KT_omfXaQ^JQ[`RZVu\Ko\`\`CNlIblKdXJgLxXSFQYcfd]PZCZtiXN[[Jd_dKJ`QU[PM~TcUI`KOUid_\\qVALQ^cYbg@UUbjVNdiUZmG_ULjKWf_SQKVRWTWUNghW_lhOSjc[c^bXRU{FX=`\QrbqP^QmS[Tk`grWYLZILT_UMZXXpJUZedbf3IQ_|aRaCOnOOYYyfYNhhUeLXZ]R>OVfTS`mOe\[X\`MGeRVlUKS[Qab[C:Tk\P\bkmjgYmMdk`k_uLDTZiQIPSP[gHs\SdYSR>OLEb\[dMaNVKNrVgUVpcMKDVRjKfVkbUEDRbOcES[QDW\dUOLzBbZbYnEyEYRT\ea\KSM`yQXjAS;kXZUAQlvH]VM`JVfOSNgoTS[ePHeAIN`RZPh5Cu_SIs^UV`lmk`P}b]vYQJyYuiQRnNd^Z`OVRKSZXaZcfUF][dQZUIWkS^PDZEVEk`dVe[_bkDqS}[DVZXb[jpVOe[RzV[n\^^K^Rhi`e`dS[gXSWg_X]^^T`dUm\Opp_i^OTPlOQU{MRO^ahR^WaaSTDdDTWbdiMb[dXlmLwPGQ=jWcIQb]]\[ZhA`YZYR[QUgeZ?IYXuQ[qXYJWUOWcfdzPle>f_iUadmWaL]UTXeIYYVX7gHn\eIddjdW\lRPIVnRVhUrUai`JmwhX[XZFfMUQbelR\TgG`ZGV]g\V^JXXP^ndLZUpYW[jLYlZroe_y]aYO_jWr_Z]X]KVTYOl`b``iH\RXdkXWeSPYnFkMPiPGV\kr\kMJKcSMIdKfffGybd^aYaeU?abaSp@W]JOQP[SQVRLC[NcbFYHaU_g`hTscJnk\MFPdYYP=WJERM]RTZVlAGUrS^QqMN[PFXLQhMYcQMc_jhEdiCJLWNSUCp_f\kh_dDxThVWKOiCgb\fG\`QF~UPdf][YZa\YdVJ_QVibegQq`w]bEjIgg[FFYTQjn[vZY[Gbk_P\YchTLEVWSW[oIYsGP\Y[qFWZ]>iCcHUQWkMMBVU[SoKZBeZZFXY^W_UT\YXXXlILg^cONNZIjP^e[QIUP\WOIJ^;dQYcTgWZJ9RFZWLYK^[gfGNd_]{Vcg[dbM^UCLLUZGRKT\\NSX\Z^HRkiG:daHs_^O^kBaWNeVPTUePZb^hX^gQhSOGoRNRKLWXUlp_gcPh]\_YLWfZdcKa`L]SPoeg|]KRFM_QSLMb\ngbTfReT^]PlWoWgZOMJQZ]MlqlMpbrVXOXWG\^]S^`VEhgFTcIq>\a[_P\\UkObXZYIs\g\KKlPXWbSQW`O\KY{LZQOZTTNdnF`]]_lXHlSVac_eNQN[XSBRki{qGeeMYfiyTlWMP`Q[IRWPZSa]T|cXNROf]mVC{VBaZfifP_mYMWSkZT`VTVZYU^PbKYAkUNH@DQ[cgZgPL\REV^O`XJT\hZlZTTcTVQNfKZASIM\]NX@eUEWY]U_RUc\X@\jTROiK`aNZNdTHZEcWVZNNbcYd\PT[LX`dYPKgWX_QMYSHDYJZWe]WkXL\W_ePUUa`Z]iQcTabiefKYQ[>Fn^R^PlU]M[^VNbZaU{YaYhZbaOOLTTTYJYSlJFUTLVOYbYjLcNuQt_oYcVOW`vfbcOVVVGWWQ`nUY\YPNZPaSXWYRadTWgcNHHbj^NZY]j\T]Y_LTd]^PQbPW^faH`SbbYWm]w=eSMhdL[ZY^MS[ReizQSOcSPXcVMOWFLSucEJXyFOqp]WKIhZFJILbg]MOIbckRctbI`hLZS[MXfQcIlbVoGLX]Gd`IKBEk:rmRjYN?EL_VXLuzmIem@ZBhVAfjdPH\A[?mKaTPMi[FLHV^niZ=kNJZUcWN_K^LEQ`ZOP^\VHoXTYf}BbkMN_`TPf_V[Sf\qUKUaOZSpbIWmW_bga|QdWViXZIfYna^x@[WXMcfdMlc`KT_]iLUcpK^RVXfIfKi^`C^U_nUS_SKcQlTNNHIPOdhBi\ll`JXNaOILZYY^bcxaIFJhXZW`Pg`hoRuX[SKlchbzvHj\VnWVjU^PNgMj[Q[]bbfmV\}CCkPmrL^hbQQGVYbqVA_NKYLYL{nWT]TBESQaTZO]`TeVVmXMU{Qnm}o\fvRnt_CrVeGTWGGjWY`UaFMJ[>OSUORGD8lXS^\LMs3LoMkYEDGIJdQKYgSTtqZQS|WMJKUPQ3YPb_K>jICdDi`YrRSeNQa7VgNgYnRNQ[TfIVPmaJPbLXfNaJ:In\aDMZYLdYXbtQQTWXLFUKccQ_NglW`rR`nIHGOV>Ze[nSN@IITi_P}:;NY_rEcH_[NWfOO]KWT\ccHsI]^MVVeW[][Xve?[DX>GO^l[Sbp_GDf]LQ~SirTRLEAUCcjS\TMcM`ZPgOSITXHLj``cUky}^P`RacjUNMtW]@fAdhZi`owlM]oJn^[RZ[OYlRjUVVJMPFl\X[kWuQhN>NY][fT]GORNYbdJXd\WSUMWOhY[RHb]dfa>GesAQdQPGP[XiQwnkUPZ]cbQZ\Qcm^jdPPN_fSXVQmZb[wQ^`TO`VcLhdWQKgYiWIUPW_`[z\bQuV^Zq]jekUAWI\UlnhgQkW_hp[FeP_BNTUJaf[^JE[qZzEZZ`dn[Y^Yn_OKrgTN`enfTX?R^[hVVM`gajpYgTg^wxSNdbSBJ\\gZaX{da]W`_V]MA@X\MaWTVES\accmWbb^]e^RYZcLa]Y_yUL[_m^kjz]an^dXcVWvYnKIpPHZjdZkPfa^K[b`hRtqiOBPPVhLjv`eRbc_fUPXTvllCG`G]^hWOl`rVhRP;VXjM^R7OP^ZH[C_NZeVPi^cHRIKEMi_bITX_VTT_SNDIgFS[WYQPSIcoR\TYefIG^J]fSKQSQdvnWtLlHR;Di_J;VIWPg_BST;fPKlNNehRfYO>P^fX=RVY^RMENjLsap]mNT`_uDa~A[eWt[XcD[eC^VbX?^\TgjIZ[UQXdBRR?o@QXgPXNVZ_\[YIaX`_?^TOjLPxSXWJT\VcOFbwte[`TUZK^ho[_>gZeriBykyC]xToWXVSVmVZ|mS`RUHLQ[Mffap`a\wepw`FYcYhmProS\aRTabOSP\fHMigldRpq{PPknHOD^lxYSizkYJR[KTcKW^hW\?\WoFY@YdVeEXUdT\h_IHiQY]f`VaT^P`evMcSs\gKdxbM`VYsO\YakfrSgmZSa@VXd]SRhnvGgaNW\UNaka]OQI`d^e8ztrPoltP[@ZbVhIe^JOkcWp[_\eZPtWV\XVP]hXRp_ZtBBYSW[_iPkYVY`HATh^UDSQO`Tk^GdfV[XVRjlOcTZ_Ecc]TcLUldj^DPPdEhTd\XcA_WWa`N_aSZV^[Vo`{WQGNLQ_|SLeSW_WaZdJWiXMI@JsH^POeV\edd]mQiTq^d^wRVoXLPer[bbUbeWnKkohsIj\Y^b[^x[Zlh]ZMZXSaZbHOgQ]VJ\LUW^QUERVf`YZUN`dMd^^YOh^oM_RWaWIGnI|?WNX|\hcfOMO_ZUXemEW]E>qjgLa`j^VPZdhFJ@Ld_SYWccIjcIBnlYemMchRPU|dj__aH\eBNeG]cpaQekBk?[We]}YhJPWRR`djcQWU^IUMlJHtWUE\VSTXdGSdmM^\iPWgCNKelT_[MWS]P_QR_cBI[_WIXSlnSWBQYKT;IeN\Z[sjvUrcUfWjJv^VRKSZJnQbWYeU[GYSg[\dGPUHCUXWRX]_icTwVOYbS[]UUhXO\Re\YMzP^wbYY\pP;Cn]T^]U\eMYOcbUKORPIJboWCkPqa^KOPBKTYdmeAdP]TFZDTeU_P9YOe^HXm]_KJ\Rll]HRSt^Zd^WSLNnZRgYXObsd[PoZVU[\ub|`XYQbQbRa`}]j_EpaUXhZS^^`_^_;idJRihgqSdNVgagVZ_EgtaWLWeAYXWVbMWXTYZ^NW^kZg?^L\JbfmUeQVFVbcjh`ipQ]bMrSXX@aiTeZeUT[JrU?KfgeQ`@e]{RMpSeeqkV_fjcWTjJHSS\bFSBrTanAiwUXDM}ZJkZU\Q]RWiJ\OS\SgKXUgOcPNnph|UXQRR[ORyP,I`nffph`oSSOdjgU]BbTMSdS]VSdaLecgTHNQZEa{boqu]oaUM[EbC^TScRpW9MTS{m]EZRRSiXJYbSEeOZfxomZKJFgQRQpYI_R]i_@\ZJC^GjURrOAb~^MeYFZSLk\m_YgeWRb]`X^\J>NlQN_KPURSJbJSr]bPTJU[TPnJpdN[ZPTEIZmQ_Y@SXTcljKmg^QIUZYd[A^\UJaZaeLL[UACNLWXabaLeJcEUe`Ef\]][hOmUJ^_@>ZRZ`OvIhdY{SLh=YQZTe[MY_en]MjouO`L\DhNm`a[WFoO^UMVNe^YXP`Y`I\cXWbUVjmWZrMFMSNhL`XRWC^VaXZTH_VcUJOV?I\PAS]E`digSBZRQ`uXc_H\JXfPSELi\\Ti`OZc[FRb[Q\YR|`U`BPgJ<]K[g\[]]VkZfLSoj[MbYIqTNVcDQ]kVCh]GXD\JkXaXJK\aG\ciS`w;OePLSa`VXEP>YXXXJJU`Z\fPIfASZGj\_QUi`Y1Y\^hLkBxL|XRhOKIQOW`LSNPJ@]fbXicxtZXdl^ZOQWj^XRKIb^HWSLdQ9THasYJfndeJQ[Q[f_>SaWWg>MQiJCc]T_T[jSsY`MhF]PER]fVqOie`?XBQcbZUJhT`ZX:]bNL]\iUs`VETgzrSeSTUqXST^]NWRRTSJUqXlAlPYCiRaNNQMWnLJf`s^j^`kPLVZbtO\eEYZSk]`\rbia\WRloas[rGRngPdk^N?eJ]]d_UiDER\PRNTR\dXNYZH@e@_Rnld_ZW9imSQEW_gDXSEcUICTaALhOYcfwp}dmiaphYlpPGW^I@KQ^>_`n2RY[WqAIKehGVY_mQFd\TQgeWJOJuLgS2S?\6KYPnDUZA=[B\Veb>NpXNXdIZaPgW_NiV`T_YTK`s\S]J`VUrNWMWWZJ\CPLXGjX[qYZ]X[f]\HKbTdxNSq@SZ]KfX[OTFDeabQ>jZTTK=W`RcSZpk`@PaPI__Z`H]fpdYr_PPbZRKXLU^``Xre_\\V]mYX_lhZSWMlKjXELXe[Th`O~C^SGXfc_]AahF^KalK[LQSeSaZV^SUKIRX\loN_X_TQiQadV^hOOeOD[LO^XYYfOj[_FPLVM\Y_V[dXU\g_eZigX_^WKZ\aJU^|_P\BPZWbdYcKRSN`PJkNRKTU\YOPQdxc``gbMAZ[QKMaOmkIi\YXJO\\]_SK`iG^yFeDcISDYwWNQFUPW]V_atWTuLUNa`SZGPE__h\m_jYraE^f^[jPgrRkGPPPhcnKVgUKKBXAV^eNTHZPdNQ^dCPQHmVo^[difomzF[Gi]UbBGIVD__`gc>vPSYQpESbWTI[\D_XgNdOJi_ZS=bIiWKCbIv\LDF>c_JLWkY[dUQiHeoKQhX_CHN\HMmtPL8TKXQY]]Of]\NU_FFMETaa]*meaO\MEP`_BYGQnM_ZoOXURaF3BVQTkoUfUUZgXXCmeLSFqPCWIHPdQ`bTGIcncN\Qj_GQTS[_cRQILMb=QSJPcPdRl_nIO]]PS]VkNLQINJfUeYiP`WPVZTq^Hm_dJ:LUTJVbW[\kcj=R\D`IDZT[XGSOOS`HveULDKVIPMDSV_[=hC^C[bSYaIe?Y]\ZVZIRRSqf_OIehbhXppOYZ{Yj\YKQW]VTkYaMK\\|WR_]_ImbWc^c]YXbPU\JHLSIfSX^WbTRlbNUNV[`imY`ROH^GcKTlVNXTYard:SPYLySUT[WkNGV]TWYMevpHh/avlZWbTrrSjf_fjY=cUQLbbV\eeYsX[E`^[DPjFolPXUeQ_SaNmZ_RSYPguZLLPosQTZ]a`s\T^KTN\QKfYUSTO[ZYNWOcpbUSDBRf``HTcUE[m[S_M[VfrFcbQ[WCWZQY|^iWaeULSnFJaOV^yIIX@nOQQFH_NL[^RPXGeJUWKf]bbUSDH]_^owSLKiNMRcWhaBSsdqHAc]7ub\qoNR^dY[_RWdIqb>ejI`UfU_VjeaLZs\ClEaQn]QRn[EI_c>S\JRZVZFX@OJVkdbYIc?Y\ccY?PTDWJj\HkLu`cMZC_nTeQXMiT`cZSWWEHSkbxbR_Qbfk[JRNkdRs`MOgSC[TnSVWcbhlBiXiWhcmuHygUfUP[jmXJ[bPDqw]@eUC^JLa_jZMeJe5^]Vg[Yz_NMnXiWkiHPNUp`k\vJXWUXUURNeTuR_@QMgML\cv[<]YS^__O\PPYaSdNi^^ZLQQRZ[qkcLiLQ;JOgxRNVWlea[ebleNdccMDhIOVWT;_]o[a8_VNmY\wLie[UXYNKiSaI_`KvFML^f]c`KITmbloGV_fXA`ZS^VzWw7[GLijDF?ThTo8YJBVTUZ[EYxfKc\LP0JUOfcV=e`TY[~_aDY]YaegUqfjiNHMcYUTYgRULD|QvXTb__BOpeSKR]GcdWZfLDbmflYaFlQraVvNKZTGVgOFEESVhk[ZutLP_O_vTyaJL\}ku\qPtO[ZiRdA]VTcKEQepw[eaR]HkG\XCaJPQjiUYllY:aV\QE]SI]4oXqQASP]pcTc^fg\BS\i]ScJO_\Z`]bSCoZg]_VZK\gbOLhV\Q\fcA:M]qJNRL9XKa^qb`X]BhhR?JOgRhCXc[qT`jJaMMXQQZ^;nh?Z`gamIn^RbLQFTZEeaR@ZLRwMZ[hm`OZ]f`I_@G\_UK[Y]\ZPt_V`ZH,'WAGH7_cG4BM/,5Q*X=V,Q_?[9BUB<;9O1=2D8;EF='CYEQF@@/ZbT9O#3U;.B3>cIF_C8JL<.3L35LPTE=W3POU,K8YAQ\?BLBAJF;//G]7E|kW;O]652^3NK>%DFTF7GBDTf2YJKG=2=F0>3N^4;FNSKR.-Ke[C/:B6o??+9E.V5;HAJD0O1-Oa7_9JLaKB[GT`3N2A_#%DK71H +)W19<=CIE05OM7C?E56Lg+9DE"SI::)L:ETE@-SNW?JQC3GG:9B*DX-;FN]DD44uG;*GR!/+8V#=0OPIBN6=(8=OE?:#T?N>EA5<3A+^3; aSMCX4_:#570/R<^ZBcU@OJLr_fTQuUdwbHBLTT>glDNoK_]dLZN[RUXbTRMLYh\_fI7R\]cO\TdXbh3euSwTOXS[XGg`SP[dhjM[ZWSl[MI_X]BbCR\^Z^P`[LfV]GUSASFY\TcSM_[WMphMcoaQsBhN=p}VPK>\WDTO`xbIlGQ`iT`TLIZbzTXVYQYj\MP\jT]lFQIWZTPUAW]TZQEWDSVXVHpGbeIXQYiGRVSW`_]]iERW]JLZ]fDE|QI^Cb^Vbah^HgH[GOYbUrRFaUOL;VNDGBCWZQJ]DC`PMDMY`F`UZ_fLKNj`C@LUP_QQZUn^aMLa_YXjRIXhJ]HGbP\_FAVm^UHLbK]_\QQMJKVHGZ:B]CdMeQMitOR\hqTXZZ\hcppbIUa[JHZUg]PiELX]XdPkI:ZfETofJJNZYII`TBgMcDNO`Q`^WVY>NPV^YjERGI[YjXv`I]]BmRNaRIXPhODOrg\UIQDVV^I`LQiaUdUAXP]cTXdUcL\n_NTNNXX^MHeMTWTb_gMqVOQbotPs[KWWVLm`MAzRU=|NX^XCTIQYKQ;aGcXeXdkZMTWj\SUjZH{UgVdcSueZXQmUT[^IZVR_jE\YkQZxRhmkFR@MVpTSVsZ`K\VH\c@sVSFQjjJcll^KhYIGbK_\iW]9Jt]XMHLTL:fgaQ[SSeOP_BZofTQIVKKZ^M^NRfPbiSmVY[ZuRMQDpr\^\PMDQHNRufYKbLvvJ`NQQBFFmWT[FS[V[ZcAbIL]gSQWB[U\UZWnXT`WLW[hP[WQ]Z|CV^_YnXJKWYebfXNcQk\dTXckS]ObpR7MIWLcXRlYIBjE\HP\ZUXYDZ[LOWulhha=\diZVCSPOiOLO]cW\gTNnNbwRWUKIFVjbP?OSZQ@]NQMRULPTgMgdc`IbzZUGTV^_R\hTTpMRWBTDVRQWwD4J]k]_\SHZZbw]WSOYXMGOVZ^RXRR^XaPa`veY_eEdGQ]S[TZQF`uEO[TOGa`cOWXO`NZ?eRZMOx\hWWiU^i{FNQbWseLOKPVQWQScaPaZmBCTP_MZDiTuIPK\i[I_KMWhfb]nZVap[c{Wc2KUX`N`UQWJiIQhf^uTH=ZJLXk[sjcOajwuln[cWiaXf=kTgZPNRlbuqle_uIO\UadN[kS6i]an[o_T][eTYNN_rUZjOEScUG_KcSjlq]NoOa@[|sNOd`GRCGhaceExUfZT[UXmneKlXTVORKcjmSVibBIX}`Kf`fLLYMWMYNg]]VaigDRaMfNWUK`ZejEciZSSrYuN]<_KdlOUhGNqJdZTJu]\YTfeSNslXZHpLkNdMSNZd[KiW]fXsY_ZqHcX^:vdxNGK@anPOA_^coW]blSXgYBWGW\Ty\][[]mapfwjsiaiANcZ?FcZ\eX^bXSUYfYc;TPnoiSWZ`bfhPV[bW[^fW[X`Z_QVKRtSQcOXT`QbPThaZlacGRHitUMM_^jPWedVZl:aSXeKYdjQrZJF`yZiaTa^XOWirDRJjf3fdNnTJXe[RYSEoM|TZRYGVXWfgPLZPZVTtps]WFP]OaBG`VXZMLB^Pml\MTZTC`iHXSZ[X]WUc_iALTVKF^L^]lWUdZHcHuRO[`OUZPkVnXBWUTiVItrlRcRN]`cV^dcGWWadYR]FIN^v_ZTZjT]t@|^UXjbO[UXc^dPaJdhQY`Wbe4=ePxY^bLFVQWJK_lWkVSXUTb^^i8tQxKWaV[X?moMaI^TFCYwYdFKSJRdIaWkibBCTObXke^YLbiLLywZF]HbGRSkWdO8SIUi>QO[]^V\piSiY\UT\VekTIiaT^FTfdTdQf\b^KeNOcYOkKTVcVS`TSi6OZb^ZXZWOncyWfmgf^MWc\_ePkvAPmWPgPiPg`EZWaQeNof`X^lbf[V\eSrK]JhoK_\[\QX^aZK^ggndgRRdiydXrIXlXW[ji[l_d\[SOTz~UpRgYXljthtPN}H[YymucKd\UlGK[@?`kYRZgVZTfaqZReSQ=WLbdaW\Qa>XOF\XZSUZqVsYN[fW`cb^SiS]`LJMNMTZ^ScY\bUjUbPa[WcO[\EZN]QwjOJX[odbQRRNcllSQXWUYX_WH^RDaR^Z^OWS\[Zm`kN^MhWBfdTSr\@TCLVmVSTZ]QXRT^gf`GaLaTcp]dW~KZWhLTeFVUSS^JfkMBdgMjok`tGpYd[PIpWZWelQiPYbhV^QHbaE|_cmERUfUFRh\R_jA]aD[GXZiKKbkFLeahSVRRZYaRNPSUR}EeJq\kl^[bGXeTfJ_YO[V\XSc[QXIRkb\EQaUUa`Vq_XFeURpZlla:dSfY[Stn=^RjXIiC\_QcMZPG`NYoTcZPW`YY_f]bH_RhAjWVJFLlTfYmVDY`QZX[QJUFdkRYZS_k]dJSUdaW_ZRWwSjdPrHbj`QQELZRYYeXdJhHb\_RPlRiYGKnatQDYi`kj_HO[_\U]S^ERMdU_O_^LCWPVL\Xa1Ja_[N?eZZLQaTbUaD[NZZVGSL@a]t`K{idUFi]JOdZ\Y[JfeisX}HGN^]^[NPzYUfgdmnEadNmDKEGHbPNMXVOTj~GYULIDBjC^jDLKZQbarT^[WYJRYVl]acwFW]S`UUXfeQd]UWXR^GTMHMDf>\Ms[WdpMU]GcfQ\byHNFEqYLlTNWTXbbO?V[ZDMq7a\jQWFFgKk^^O]WEcKft5KbXX:aL\Y[\PXKRFcXVUJv^YIZz^cWQS@N`kPf_TVZdmQvSdaOQ^XHj\WlHDYhuUOliM}Y`WUbVC`V`RXWOaWdWu^PmZYJUZkaQFY[T^PXaWRPMbAJZ>Z[dHEdfTVnJTdTqZodV?f]Hp>H^OGgUINTWaX9HTQD\Rb]LZGR_NEjJTPSYWSQU>P\OT^RXX:]QFNH[Hh\Og\\_McFiROEFnbTQibSZUtCXHFZXIKJ`Ia\~aMDHGIpo5XUVAMDJVNb]jLCcev`PM^SAVO`MKa\PdkbDS^UV\WZU`Nc[j8JYXrLPVZ_SfP;iPdegf]ak^MQrXSQZa`;LTX_[U`UTdYWa>^VSaE{?fbLqRQJS9vNPRKlj\ER\PARV\;ZPQkWW]LpoWiXOTVJx_nVPPTRZW;KRqK]V[XpLRw_US@Yj]aGLdOOJOC`XJ^Q^Z?Y\TEaOO`UZ=_XMWUrV\^Le]XKR7OIcNQUUJhC]KO7QYDaNPORPSVL]`fVE`XYZRqZidW@WcJPYgSV[OAVaIV]EVPZZAeA\DKLKHUQNDDQ^Pn^BQkQKTNN[XA`ZKT[SUX]dYV^__H6^yVk`Lj^L]JtOdXNx[rPhLOIQW]cUQeTN;KkJURTUPkC>ePP^eOSZYOIappT_gabO[^a@bE\GbV\WOqFWTOrlc``[dNgkLHTeZZt`A>itX8JL]cCm`RYYEV\`eIlSYZ]SSRPJVINWbTVlH?C|VVabJ[ZSQKdY^nOEUR@XgXd_TYObEfMfoZ>b9bGL`SQNTN9HMYIEtUTuT{\?`QN`HVaT\FjdI\HN_Q_WghkB^cdZGVYU]r]HZ?pL]d^RRQCIn[Xt`eQ]PJTRTgUP_cVHNJ_hRSOdaVR\\VR^J_QZ`JT\;?HggcKhidIQQYLYaiTMQKdhXPPQWeVPV^IOL\dglZ=SkIVFZ[p\laLZOnGN[AGNaLQYRCQxLTTYR\VT^eSWXsOh[YhQRuk\KcKZQfZnftV`N[YFM^QPXhoRSYJ~\\XojORYd^LUaicbP\`Z[TYLLZbwXVKayPcd[G[VfTiWJBU]VY`NeXKHa_Qh_q`KYuiVX`ZKnxylRjZWg\\eaTb^e`WayHYL]bnZNphGZKMR_\lOSQ[WkcY]XXR_]OarWRYfkig]Ol[fSY_skYcZZeXbY^sYT_jY[dQ_]_cLT]cTh\icKtR[Z`LZTaMHMPandqdbi[^YjVVwTjQQR[\X_gTTQhDKUaZOEeXc[NcGZge]DSPXYdP^SKuZZLbHWRj_nZZsZ\FONYRcWQhnOHnOi]\c[fTNB]rSs_WYSR[Gg`ZZgUaaFSVjKIjHcqvmKgba^`RTe[IoSXKOH]dGK^KW[ZES]HS;HSlhjfR\BZ_`d^T~GYUMZMchmfP`[NwYLOTVR`\]NKU^]smVQZ\W@UR`FTNWUQOe_PGTYWWMdspaOYV_baIKQKP9aXaP=gZKXNbYfmTQM^VR^`dJe^gaSsTDW^Na]aMa^vFNTBPyoLca_]`GbVKWRPaQOJO[TP_X_UTOk`SMKK]bPegXWT)kNl`HR`\[XhdZGPVeSMe3^FeAUk^Q>Pfg[_YcTeOLqMcFc\`aEqAUNJN`p``Sn^jJn^U_GulPywRrX\H]?@oNYfVgLYma`aNQxb[UOhWahnj`rMEgUUWZV\\VsgNaqhf`^mtSYV\jSbeWqXHT`af_jyQjaPPW[FUQha`WZKZLfSxiOZkCf:ecURGbJagNdZeclE[[ODXrIP=mYLQXRXOIU/ClU@aPnnSYwnX_Qid[^dIQQWkNWBVNNcmGST\V]k`CWkc^eT_YRYOJUgJR;[aPpaKPdBbW[GeRWbU`VmmPTl{[JWbmSJPXZaYVOD\LdJf}NLVpQ`brI\pM|EHaH^[LG`NP]s;bKMcDXNBHJYanjOnWhhOj?b`yUMFWrpX[^[W^rPfhWPR`T\J>UfpQY_[bTEzZ\PPDYWaQaMWOXmeUXZNG[PvMnC^\VnVcZTYW[eY]DteOX[JiOUfObU^Z`IiJS\aS]^4^bhn`SNnTbClsO`Stf`SYM\;dLbs[`a]M\QURbkc[|PVJPYlqcETa^_\WXYc_IthT]VN\SV[JO]XbZPZPSZaIq_M[eqIvXOUjK`XdDTSKQXRKLV_XbKD[Xeg^eT8_PPLSvY^]TbZPe^euj[tJXOQEgLfPA_[XadCmSJb[rarc^[JMP]nT[UO=QMGY[za]mN?ELRd~eKGwkUVF_qJk_\pKaUSZPXJKFga=QkTMT]U[CWI[nwZh]^WlKSEaOqLfJ`_`VdcgUic7WfQgVS\VO^eisLnLU]csL`[QZpd[hQeaeX_{IVOg`onHdmWlWUYS^fLFS]oJ]PTsZUXXYM[d^oQ[dj`W[W[]XXlFTY_K_ylaZ\lRwQ\R]MIXbVZN\?VBRYai]Ghg_VogUOG]E?UNVhMH>cTeFSdH`c\bZWYTKEapuweuGCKI]J`a^SOa?sQUn[Sn\iOPYaiQbgRaRWXSZTY\fObpOWd^?nmbNmNZIQe:Il^UGmf`ShV`@fY@`j[iRNj_cDRQTRMOV]aZX^knJ2bYM[tT[[[{xRV]nFMhO^W`QQPRiYLd_H]MaRbO@WM\TJtS]W[fTNkKp]iVPc_fCOrM\aRn]`f_OTYQ[WTSTsMU``S{aqBVHf\EElRNPWAta`]I`XRKVVONZL_qdfUiQRVMT;gjM[qTcefdDO|KA_f[K^QOM\kYELMgIOYV6\wL\VaZ[KdPfJX^dA\PWBXwehYVh]_dQIDRaLMQaTNNHZ`GXTb=YRSE?cF[i^_QZ@HfNMfTQeQHUlQhLKLrq_XS`\cRe\K^kPgyhRdugfl_UDWZY^ffG\BdPMKXgah_VFZYs]N`FLVYX\lbVX]\aPZkQRO]OcMSy_NQVoaqVWT]VRaRZPODO]M^N]bnL]IJV2]uXVc`]dYYnWEr`Wa][f^bSXlMD`bsTfi^PZZuWUT?P_KdX^XMZ\Tj\Mv`a`UY]YPZNb_KPX^wPOIhdbUOAYZHJlYc_VKZk_fLLrVke^NUTUUT[Rbh]i]g\K_ZKSO]T{]VX[Zd_ecFbRIRbTY`NRlcpY^L^QTYVKbMCegJJXbZ]RagWYcx[gZjQY=Mia`q[EamRgSZhngKGPIVaFh[Xo\mP^`STnKK]OTqNejuONUCHoW^OdgWL@Wj8gT{b[g^g_pOVuXXYirylf_YopcA1Zn\ohknRm^kXMcGV?cXaZL;\gFQ\PPjMQ`]gMRSYV4CQG^MbWR`TQPOSOw\[EgYY_Sdj^eNV^jKu^QZZM`SQ=Qdj\4jCiQ:BNK@Jibf=J_L_`KuelT[Rp\NdAO_^T;]R`t}hdTwh]cBVT[hVZCgPXOGURTaJDTRfM_ByTXWgKMr]d_ZXsNXaZPZUZHH\MKIXTM\TbTPyWbQV[AoPdDL_^?YY|YNeP[U_bPGcsSm>ZmNRYykKamhsIS6cZVo`i^\LYn]TH\ZlOZe\DOPULYRU[QSMlymYU5IE_]k@RTeUX[P]B>`TO`HoKZWNcbL]K[mOUPVN\cIOLbV[jsW]RK_eYLDdQoVQNFdXNc~MlQdHjRSh^NaSge]M_MWF\Ikfh\X\T_`bC^MQKSPRLSQT]SQWWC\VR_mznl_BuZqOKVZ^_RPSUe\aHGPR:sbXENTXiaXNdOd_DHlNOVW_`oh_ebFuEPSU`kUncj_LgfqUe[IaPhHXdo[_vqgU]GWsCdIP}OQ`Za][SEkdGGM^XcSgX[VN8\acWeYL^SnpuPkdfio2MZQEmSJfa}R\cg@VSI[UdPc`ajUIFTSP_GS:W]Y]JLfk\>\SP^oZS]WC]\nT3PK\VfbXNV[GW`tZdE`]SZriX@FjPw`cNyEqWRaKMgRWYkTLX;iXJXOKbfZ_YguHalY[t_UYN]`WZn_VT4=iQRMiIjehbEdLfllCFQZPCYH`INhdI`^hoYAFN]H[rUh}WQTSk^jlHfY^UeRLtf]YRIWnMCZsPE2ZXaJYR]fLUbmeZP\@^jcXdU[d_[UiWJVXdOVbkbnIV][ZKNCfcl\YnEFRN[PXDXoKSJr_{`HHr]TM~O[haP_cbHYJtVUa@T_ZXjLtE\LnhLcoviFRfiQTVYINZS\WjbhKYVSaJgjn_]UMKNLG]dEk>KeSm_kBbTFXZ`ebHd?k~_KG\ZKoZLIiGcON_ILiNl\JR^YDwA]TqDnZCjMU@SEgQK[V\\OQ[`XH[Wmc>SOmZrdVYOFRehOP]BKK`sVPk^iX_smRpSLZQAMujFLVQZiIrPzWqLo@@Sv\Mb^GS[VZ8jpZ_]CzHQVfRGN^aXTXTCfRWR[NQAl`^d]]PMoVLUJbT3`bYPOM]GAkgMlumaOKk^YJhZZ\H[`^{F]ZfSVoHjfHfUZqENV[o_bjYJYN]f[q]n9IXQMT[jdOOGXTs]lUSY;QEQWwPXLY]ITJQe^nITTMT]Y;S?XNtw[O_G^Xah\n]LXYnYIPa@`QGLYIAW]`W_VLcC_Z@\SGCS`iZ]l`ia[IC\cVgncCQNZ[RUQp`hQSPLNN]`ZXbQVUVXWOfRXXteVSVmOcIXp`TcKgWoQcV[Pd_brQTpfRu>daRmj=NMuZFYRIsS_Wd[n_X\QY6_OyTeWQf[KWFFbPUDYcjhcD[V]DO\M2`ZbJMGibG_g[MWdOEQL^RN;d\Z_ReBeVK[blUCiV[SXgbYZd`YXmPYWY^Xkta[JJgaUTcBRvue`WPbbb:Y>KVpZPUSYZ]^e_Jd`c]PbXLH_{lLy_MB^ZSfWrj^]eNjRTdWML|\G]P^OXYQZVCZYJafo_ZVU]s\aOyXVKJ\fbtsWdLR[O]OSRZ[:CVd[SLjU_ViJhW{SWZbG]TeV^^C^GRofYPf]mZG`YfTJVppE8WYgad[TZqaSYUYe]HX`QL`]`TlcTYb^TKAO^RhSkZao=`Q@MAd_dVSHHOjR]ZPVLVNJW[T[JNTbXLaoQEQ^VliJ\[P[W`hj]\dJ__XeTk\gUZMJ;Ac\]X^R]SVQE^{uUjZP\OsPaUhlNCSs_v_bNa\V_SXR`SKAYR?Q[Nn\[ATWOSU[\fQ]bY_Yh|^oYZKX^VNO|SSS_RaYETblaTRYVC][YaUCSTZRWfW_KRg6TX>uVV@]GF_kafZsV_Q[^kcHTd_WYUhh^{S[NV^_IS[cd_DTXTQAi\UZWUTXPftZ\ZUaP]cm`Oadm`TLTT[GWVMP\{BUgWakeGEMwyMeJUPN^me^bOJ_T\b]bUQPKeUOictePiWzMb_\OLYJYcVV]]`D\dPU[ePSHJWN[OEWKFd^EKy[KNQige[NgNj_\Gjhl:CK[TBcSUAX[]^eHMbje\e`XX_Pa_yM`D:\MEPSeQiN]WWSbL[Qab]gB[[QqqaWLuhTSVpnZEh\PerdeNR^^W`QKKO[`O[pXeYUdhwW]eZEJjkTNOKoSVXVc_pLffrG]RIRaV_nZZzlwCgHSHbZHIgQPXlLnFQXdVN[?n\\`i]NyMZ{SshMLHMa[EKRePjfR[?RWOMLfP[gSQYZYgPFPVc^NeJhLFP[KS^i^^[cOM[IS]Ovnn}WehmcOGmWVrS}jcbXOg`R[XPZbYO``oHpeLOF`MDH]|XW]MO`I?PfU_T_WW[kQaXkYWfOzYgsjZhQX]QLMcJZZWLXObXiOcjZX^XU[NYSR^D[^SJH[m[i`dVScVIESNbmEW\i]G_RmVkT]GdCZZXShI[_GsZLOYNvM`mYIY_n[{}QZV^CYCDoI^Ns]?`XK]_AOK=r^`j@b`VUgWLjOdUW_RXSLNYfh|hz\M`dXQfnFEXXD][CY`s\`fJ_pQ\Yqn_GRG]ibTX[c]Sm_ttVUV0rHiIYZVIQaXaeXWgWRj`u^hZRml_JVcVZLVZQJ[WXMlI^HSXXU`Q^llcXoZZm|SPbaT\O[k:[]ljWIGNLXRW<`]K[YPhVbwWIFV[\Q_PW`SKRIgK:RWbLkEJhj[bSOZ^SObYQ]]SgSfla\Bk[W?VfjPzc^vOMZUgegrSlvIF][KdIVhaIbJ`XWr~k>MX|ayW4PDeGaOlK7fcUq`c]Fiw^cWhgQTVP=^TeIdp;aNUUUba^gtYSU_nONJWWK\WZ^WntXWdd[hX`rVbv^RvWNXZZ``fGcL_ZXYW_TGUjQsfciPVceM_eagZ_eIQaHcdU_KrQMG]ZSfWe\Q_mb?KRciv[SLUUmeZC\N`TZahT`OsXa\iNO]ny?SYP\MGnohQTXzOEJUsR>c^UNXMIRgJehXsPZbVsOnfB\HV_xacXQL[UDYW_TQYXaLu\cPfJK]BKXPlvMX@yUYMSLWpiVVGP[QmcZVQkJehQfhRR]GS[\GUUg^L[SLfG[NfY[[RpP`O_PJZmPS\PNuh[OJN@TBOp[i}SDOrHiI\`XVWK]TLTOW\XROqDmUOIm^^]bE][Q]HVhW`becjh]U^\bjO]eOHVTLgahl[dI^[WZUIPW[W^Xf`YV]_dN[_W[pXReXfWRZT>TKLIBUiaD[:e\RM>d^VDWXSUUEcXI_aKjM3moO`wWPMfMTIHTe>GbENbTXUo\\MM>aZZhErcVKoEFMpS]Vnb\S<\]^ChUOWjT1cMLa_MbMGTHqjJiRKUBAWpWSwrPSSJWf[[HD^TPbYaR`GUZLWl`hWli\vHI]JVZdIaPCWme`RCdkiNJJk_QXyMdaXWI8EaJR]\YbV\TjZJdW[WT[bUVOUPoecZ_swDnSX0SQZ^QMTcRZ[ZQYaSQS`G`JLVbjlCVDMo\_W\WbS]TZBvgTe]anPy]OsLp\>?vzfZOQ[fPRUZ]^VLpWnVQROnNOlSibtOSZIO]edREOg^VbKXimOv`@SZMHY`hU]dRvaa_\Ume]fiZJLUTcJgNqSVc^TDMS^ZXVdU_PMKX@a^FIVgIcUbhjJ[UjDf7VjU_kNTPzNQU`OKgODKwgn[]_dE\{Wx[4V]PISYgo@_OPFf`\\JScYvYSR[jYkXpbI[NCkO`^gqnNl]LWa\Jg`ZhZRFS`N[wZdhZI`Uo;DMdKLK^KEJocUZ`YYPkOSRvVS\?AWdkHAd8gTdFd_FdZ]Xs_qP[GeZRPoDVkea[MUU_Yt[e[`LaqWddgLM_mn]U_O=^WcPgKYY_nd]YZ]MgbTQ_;sb\LV[hWNiD`MNWFLM]\Tbcmxi`jJ|hiSYXRBQ^PAKLNUIMNFZlX]VIOYTPWRCloKPocRbL\^ISgWQ^wN^HLQE?QZ[GsXbiZfZkP\P_UcIW`q]YcbcFuEITNXXCUSi^]i_WV]qNidl_STQhSFVN\RXEgJWPROQUX\`TS[cDQhegUe\HeKPPqYSbkWPP}_ZVgecSmZW_`aXO\HJIIVSTTrPIROp^b]KZaXkoaZ[XWY;Vhc]KVT_MUSUoU_j`WRxQI]LdGihf[q_SWWSu]Tgp9\^YXPEQZMTbUo[]YRGacWOcKSWRbE[XF^`TisjXXM[JWNXOSOoIX\UYXjgEcWVbIPMhi\TiUlfVMb\][OhP_F\cuMaPV`KR^RJPSQlYhYWhkiIcUVafjra[baY_O_CaYsN~NJH]XXXWndZk`DHFg~TVj_ZSN`TS]N[gmQeNGdHsQ[cPPZVSUPhTUeBkVgUp^LPRYYUd`SM]SZUeWgbPmKiC\V\ZlTWVF\LbXaVaiYQYUTM_YLMcgSZ][\i\]]aZdOjeGJWVaTj_WPOY@]fgIcg`WYed\wUiSUaE]nb]YOnOMVTV_rkzqGT?M_PRWWIQPW\BL[rc\TNZ`NCYVd]TaMIIhfXbmg`XGbkLWWRYiKcPH:UbG[x^YriIXSYR=VccL_^=Zq~RZU]p]ecZa^`Sch^dYTC;ME]R\]\U]VRon_N<^WcSXTNfO^a^XGWWe{^JhH[_bRxnHXk~]\GhbiX^NXm]P^RK?PTVsTKbQRFUc]dVYXif\daehwiDQ[SJa@ttboNO\[VLjyKgeUMfa|bKQN^RQPVbfMO[GDf`cY`t[^CiCj[RmhJPwQ_XRdN9eU^X_|dMdeVge^[`W_Xpj[Oh_SIbK=`WgceV]PT?PS@:aH[Ad[agPfVdPCT`Eu[gVRZ[bKCTP[]eNQcXUkUKY{^RQCYi]F\X]Jjh]}XZXbO_PHXeLiKpjEHUQPirJwwN^cna\bTMWmLUWM>VfSRXYQN`R`iLTTXgVdVKQeQ1fyQN^iNEzT^iV[fW`ZaZLiY]UhQQLLRT=PLaa^Sf[vDsdXNeTlpWGKNk^TQ^gYRAJQPFjWVe_IbCRVna;>mo^]mZWgSBXZRRQRe^nbEB]\ck]P[L`GSYMofQXW]emJjHlVYTSSLFUYn]OgQ\8O~pVVZ;XiLYk[]Y^SR`KV;QOF_JPXXiZKMWUrBqTiX7?\UQgw_ajKvQ;fW[_zFi^KSFiZIAXK]SjJAq9cZNpmlichiXMq;V_m`kiegRVUkVOo^b]mJbZqplSXaf^FVJRYUO^XKVR`HPlQSRXXcaAcTL^UTJlWTSN_c^TsOg\Ye_VhSShT^hRqKlaqW`VM\LU_NYWJ`McHgVyT]dnXaY\iAVWaTWPcUbSIfIpIJuQdR^YbLIWURZOS]mbG[lMZTiSiamT][jo]yQ`ShWSJVT=IRjD^l[^Q[aSI]\Yj_jS2lZVTT^Wg]`_HcUXo[o`VKZHZcdiVeOUadl[Le]]uZUkbGJTRFCERQKZPUZH[M_WLWchPWYcWN\`W_`GWeYmjknTNqdQ^TcbgbARQXN_\J;_GIMR<^R][JricFTU_TL\WXXKXFaLc:XW`Py\DejQ\^ggEWMR^jfnbfZJUcIXx~^VePe\]SHZXGwZO4`XIgYXUdOSC[SMLY]ZWPAMwJe[fLm@QMQ_Xbd[uSFiSgOM\_RLmkb=Eoc`So^^QM^RxnGVL\VroRWN\n;zmfSR\dM|KX`Udwdn=PwtENLL\NiFZKO]ddF_@^dNxgevUTUOUoWR?[_\WtOOVP^SPIcRM~dfdRKIX[SjaSXYil_QCD\[ZNXcUVA]^S`fjvMX[b\l\FaeWSf~^PkVSLX]abcUP|ekS^QOgOo[]]\LF\LP0]J\xugfDWl=KZkgUO^lojGFLTWsaLTS\ZVIdWbqgIJ<`YOZTjO[t?ZbJGRiCJhRjeadeGobdmXV[Z8UJkNSTVUPK[bo|MYOyqYYMdsVYaSGZc^`M[]?=Y[Dq9SFYbb^ZMTTWj[YYZRc]_FWRXdRaXRZZPFJEWrLNb`ko]T^Fcjf?IeUVXl_l>Z[[YUFbY^I`LbRTZQWqd^A[j^[okMZzKWZU[nT_[WVV\V\cYJ`gWQ^FOjX_e^GaiLrPZ^X_SfWMdfVWOgC]YSYLZMh@_`obHNewXbTq~YWUcJKKQWQdRNDOYQNWjR@r_gi@V^T`iXCPzc[FP_QYkZONaoJ\LTsKeoLTES[Z~X_RUGnS\YV[S\F\QuEOkd[xsRGMRV]\Vb\E`caT`NaXvmYw`[UVDWaepN\phdWHoIjUSX\uwlLdKd\PLtJWSKaZ[d__]XU\P^RS>VdTpIQQV^Sb]_fNX_dmaAU\_\RS]NYlL\^L\Scb\=Vji^hn\YPcecVSFXgUciqrdVcThQQTOM`AWYjv^fRft^_`dfO[f`]f\dfT?d`SJ?UaiPMLaWn\^^DbTI^YUS_[S{Z^Zhjd}K]Qcj_o@icS[hcLUQY{`]Xls^IbkSdM^v`NeTZ^McoFSgHuebVNXs9gRM\Y]@g`cwGWcXhQH\f]FNUmUAWRlhOEmh@Foh^Y^GQjZPYO{i\[ipPIj^jYGG~P\EcXt_H|XXkP^L]JW_[\N`QW^hPWTgncRZaRXM[a\QeaXcN\OYXTpIbOfmZ_kWSdLuKTUKeXo`fSlWoBXBtPYeU@iZSWcXYWU\TYWqnZYaXjpU[`\XPRR^M?lVhWVXoRbmNTsZ^SPa[VDQ`bZD_tHS^WodhZOmhUqm7XJVDGX{[TY^`WFImhebQe]U?bTNS\^LOZlJ^afbX]PV\`TZpJSG>UigFGQSshD\MTEPi[^ltgUPMTJYb\mVi^fcMbBJ^WZVoFeRbp^_]dRWOFTUAawXRP_A__\VlZAxn[PlR^XZ]RrLYR_JR_JL`NGWT_{PHNYSXu[\_ViUHQUW_Vb`dcalkHMohXVYTXR`WIzUce]SjcC_PPMRN`^XXv;Q\_gE_D`mZdkT^^oRK_bkNcBa`B\UMc]oqO^lRJbVd]LaYXYoeZ`YSSg>IClKXU:Q]U^\\TPL@bTbR^ZGaZ`MaWU\P\`VhApGW[H[^@nTTZelYYPJNW^b;W[S\n^PWmTAXYFgHRaQ_OM]f`MRS`acwcK:k@^gESUV\UfXWP`acxVpcN\`XOcQPQqLgPXUPjMrXcIePK\FLjWsSZdfcmkc\XBfp]SIRj\J`]dOaluZGPICDLO[g^gPY\GC\SUO]PHJIlOK;]xbQqrNNZGfthKuWJYAK]nPLVZvCdPnYe1]g`UEQZrKMZKKGGKPO^^efWKQOi`FYXO]VRYKUUY\TTYP\ZpPZJnaVZ^Z``K_nNb]MZcD\DQopmSVfIaLUg^9Q^UjXSSeUVTDrdOx:L\VbR[ijOKd?VBXHm][WES`\_W[bNPGNdO}UV\ocWfTPQ\PYO^Mlp]cPfS]ZYIMCUQYFWQ@BNQhPFfQTPOV[XxY`Zp|ceNHH`\TYXS]NVR_[U\kJXhe@hUOb^gmQda^edcTQY?wjROUC]PaQDWs`RyYI]dSg>aEe`Qr\PFvmjo^LXWjS`^pnZ\HYXM\`MOR@=LNbMeLTRuFjWa[ZQWl>MS\h|<^]VKUhWhWjNINXrP`daFdXFIeZ}HZXCuWVW[dBS`RVZ[YgZ__\ZlJ[S\cOfRa:Dq]@O^f]N^qOJ^aJ`Ep_]`MX[hJFT[]PHTFQNUW]VbPgNci]?XYf_c\ZMATWcYLS_IMVda`R\jCSUPhiK]bVpRMTRaeKQPSX`LZR=ZQmXnFRCmVYQh\hU5Ka`icUcbJ]eVSJK\_ZhIfmlxcYhmIVFFSmWJIPRZ@DT^oLg;EQr@b_WMfZh[ghJhg4hEJJe]W\Si`V:[HSWcWYbgEpkaya]VI]OOw^]lorqJGN_QeXDbboC]tOivgP>ZgoUTD]RW\gILGEkSZTQWEhlc`pNbI_PB`=hiJu]\cS\OFeVY[LfCWVP_`fxZD]`\M\Pbr}RWNMs;TRZWVHVLlWci]_VZPRWaQRZMUlZQULtTjVYWMQDLFdZ_Pu;UgQl`]gArvTp=I`AD`^jVg=jtYhhgSq\iiSnLdK]ZD\\Hk~c_t\PnWf][cQY]?iWfpci:_d]SRZ_Q[J_TMeJRKY[=If_d^pGiD\aVSpWI^LOOYTcNZkfW8Ed_U^_e`VVEI]QcPQ_]STM\ULYJrjl]SETUY^kXS[p`G>\AHd]idXsbt\cER_zdO^YoB[[U\k>bIRcZtRlNRmhR@LTj[UjX\\}]KGfhU^^y`xUP_`yRtJ_oaUL^eVKb^N1mRUQjZ=e\Nt\h?hj\QPkJLIigP^jq<\eab_N\EJmru\qmUKG^XfbVLUaqSbYlUmRSVLdbdumYUPVGtYcV_cMzPQuotFEIEXTWjawT_fWznUZQGRwQAPbdtSZO_TiPd_DPQ\\JTbdsBYCaZX]lqekO?\Tn\P`VlfysCVLbM_\qNf>HOfVamWKlcBH]gQNOVSQzeYMs_HH`\[JSaM\GWJBWg_e^VOUKEOXZJlM`]TdVSpdQPXXe^k_ej^vv\K\WJsPcCnTP^HZeF_OPRPSPN[hQ]ROQlcURgphbERj`SUIBMP[DKYMFcPDcaWdXKU]Yl`qclabpzvgec_M`fc7OuD^fbMGwM^_ZBnSaMVYPKUUYad^r_RMdWIXfTauJUIHxkcKeMe]WeOGW^P\][9a`pAEKcSTzR^b]ipFcjb_t_U[ePUa9XkndMbOfeXUgl\WWTaUrXQHcPePph\jDdKgXBO\WIvN^Rc_b[?Z9NRNeKaUP}J^]SthTc[beFSKnUSJhbYZLlfOWS_UPBuIcTPKTlL[X=Q[NcLQ\`aJVOYmkIM7Oy_rYsI`Q^W^oU\U^pH`8T]O^qbFabTRFNeXkuhmZMpC`HS?RdYciT]KZYO\OsLePMnYo\^GOZ`]\cbeeg]\Ne]_baSnXYRKXg]WW>M\[kgWm[_BPXUHf]cUXXU`\m[[UeL[T_NUgMZPTjQ^kGeUJRWZQNgUOWCaT}pS`_]BIV>efIN[_WVObb_M`DLttSTloykXri]WMtwVMa`d_P>LcME[RUXYJRoVd`TcXbWRVbfxGNHY^EANba@\P[oATFYbdPJFTWV`]OkQ`gblPiPdgVXMPT`VTT@_^ZbE[KNOimP`a^bKaUcc\aqS]_\PVhW]dg_]6Y\ZtZO_QfdOjP{LjQVFMLkuqMmGnuhubKVKG]SUYWVXTUwRZShfVhNVPhWoKDHYVTGfUXcBxXI`hW[rVYVbgR[`o`XbE\CaWVTMW^cZ[Z\GSmNSJVZTRzSaQ`WhbST\^pNVeQVbMN[DIY[aYRAddNbnXRJbT`c`dkR`MaXH=IVVQZsTXkJ[RXjGWWocjM^]cSbnWCR\yOMLvLYzTQiK]IYRVT^\LfnVZ`L>cNR[Ym>ejGmMILPJ^ULddp]_O]bM[[VG`PsCcP{K__W^Y\`\JPOYYPXV\]ipPFdPRh[Q^FUJXTYEf\JY[X^HdiOOZjc4YUhWYXVR\SXebVhRTP_F_l\_BVEo^UBiP_UceNMWSTIsfXj^YCnzSTOuVp\[BPejWTTqUQhSbT_f^Y3PQFT[aRUWTXUIO]RORX\YRF_\u_ToTvbOGbk]]c=Lv^SSQkC[JOcbE`mWcM]XY`fYsgQiofU^WZmRVTWZUQHScFcd:XPfVZ_cLJV^[]SQ[\ZOcO]iY]]rLKFEWkIO6ZRk`eODO\XORe_SiE__VQY\Mf[cUP|M[oZP_iZ\gmHUdSY@JZQ[UMVLfIOXUQ]XpZZZTID]aBHsdOV^Q][iTYPSO[D~YtNg]G\eQT\P_MSTcRZUPao_btOSDUkSbRLSJI^RWjHR]V]dZjeZeChheiNO\zgoU_FnLVfZQQm?VQMVfe_PZc}hY\aR]SYoQXmdPSkiWc_Zs[G_NNdek\\[EbUPRUfcJP[UQ]UiYM\K_NXW`skM\pfZd\f[klHLjXFRKY\BVXt`nSI[RLWZq\\YmhCMeIPbCVuKfadqHLhQ[ee`^cOa\SF_jJVwUUZSIh@krZaGYR`gj^]y[ZX`T_PUUOPXeK`_NTgOJQ`WNJ?ln[L^In[_ma[ZUlfYWUbsg@@JOV]K]OCQ]vxQgZU@icoOUBbwaOZcFjwP_\VZEQOYLfc\O[b@dbJ^\I_QS@?WdUXWcTbMmmoaiaEtdPPjw^oRkIRT?YFge^KX^WbgnO\CRjefbcc[aGZ`kTj[Rc`R\RrNdfYNj_GPhh]_Yg]V^OqIcGjHl]l^^l]bYNyBYe^QZU]_c\agHiPmQV9aQFYL\b;\cGUBHO8f`ZWDdZjM?k_kOTHPRgIcQ\RH9T]ZRPRPVbDXBhshRUN\F]JNQJMcVVPEE\SBV~SL~BNhPHVF[^gH`LSS@Rg`JaSUF^uMNgTYSTSe[SlTRn[jb`N_TsXMVHUTmiY]\M]N]cVEQaGc8mi__cGLRXdhGP;bIUYAO^NNaYmbcSXi?de@acdHRV?;T^FSJIQYQJKvPMh7UGmnWSb`o^U?QgSM|j][PKTLTWSSUX[QTMWXFMXZoB=XINL\`@TK][^\VJUaljqN{IaSNX`Q``RWo`LgReK_UYGmGdKfW_pTWMmVcGi`kAX[DdNS[]IYTAgKKW]^sTR[W[JOHJbmbLOHb^N\^RhRbBWJ[_PCdS_]gZ\HXZ^FOR4WPM=FgMmWlJQ`N[maRHCdTOY]bpDoVbaOZTRdaF^SUvUkXLXKSViZRSoPeT_]INReeiV[dSLQY[XVj`^VqRYL__ahS^f^_SK`^`kpPLfM_@RTlKMWb_[^QQD[Ls_iUZPN`\XVQHaYWUbZeOZS]VeTBHvW^]f[T?t]YJV`Gb{lmN}nKbWZNFeXgYbPWX`ZIJP^zXKmDUYIQ\tPtV\Q]U_MCVYob`rYQlSk\MVNZOlHTY]GdVlsPRFINDNYUdJGZXbesUjVgS}_mxW_OOGXc\VpPRqQOR[qLpkWUWJYZXWZaVjO[cqWRj`\Wn`[[XeUE^QO]gQe^YBdVUrW\VrYX_Yc^fddgS_WE^PTcSLINPR[c^QTH_ZiZjVOR\`]PTjDOW]A_JVKifWVgV_kdPWahP;_S]\REZ[JTQX@`XnPJ_bZGjBh_W]iXYbSWfaWiNGhhOTEgEcA\VjShR^JNDNZT[\dQaKeWdU_[W;X`LLi[gL`YIZU`9lSJkYVRNPqYSXSVWXdqbdLRAVDRMR_\O`f`OLUVNWlKV^OAMbOGIOb\dP?WB`IZIZb7YGS:x]Ne[OzWuQQ?^WsY_enW5LYSTiJhN;MqEOijKNiiLYc`Mn[gXgH`m3vl_S_}B\cU`ZdQNGZWHipRcVZM`SPVlWYQO\PbeMSqY^B]JX[xRMEEPSRRQPLRmTki;USaKkZ]jVS[ePZWTSRWQE?Y\Tm`H_R\TCXMMaXP\XcYdb^`~k`e]VwS`LVZZTBOQWqMb]VWLPx]j\iiObXNZN?KV6RKeMYfdOXUYdig]NPQVNdSfQTkSXdN^PHUaadL\f\Q_CZQTRh[YSRaY_\Zt\o[PVP\PY`hqaMO_pScxz\hUB[\F_UQ^QZJa`S\VKEXMSF[Sl[aaa[[uiZKDQ^IVXWT[JKhFeaXYbX_ZS\vNmea`WKaYaTNMQAWWWRDFibaZP`eG^x]Roee_n\fK_QdKacl^VKJVcVM`\[YTiNNXj\[d^IIbWFOCXRCwYZl^SVJj\PLO^\GNi@aiEVH^peNfKVLUYg_SaWlTmfTboAUkegSH`[Z]UXVUNHCPnTgS^l[kSM[SQSF`EHMYHTStG_jOUhJIeQfLhZgjYP`[cxXTRKT``pTVbWVNiXzJpUZf^OHVTG:`aV{WgYOXtdcWg_eYyNWu`]LdI^WPrKU^ZGkN^WWJRevR\WXWYSZarhQ_TdGTMvckcT\YXI^wTeIUaZKbdeRcD\]OfSFQb_^cWQQVT^LUccIZ\rHmSKVXeeMK^CYVdM[TjcITRdv`_TUO9Q_I^H[XbXYQPVI`Lad{HLTtP`PilVNe@RSlbZQ?^dx`XDeWe]h`RHVw?MkIuZJa[Ya\Q_c^fK]fNXjXMZGSUJIZQScmUWVXWLbgZ^We[SePWSWeYXhVgSsFEzWVlXX^P_W]OL[cXQFLOXPT^dPd`i_LXXR[EoBm]k^bdVjUlWWgPHlJioDT_a^[YD`}cTOf_ekhc_VWc^u^ZTIMN{LayF]IL]Rh\BNVWkZsi\UW_Vkafk\;xL^XdhCgejkZPRkMf][V_h_NTGO?VKA}qXN[[JUWYveL^N@W\IBeT]\PYQ^HSsQ^FlteFmFWVOVISVUPV[mhYEIYkSO^dVcknLLyLuE_aF_LaZ_W\lwktbI^Q_rQW`N_VX]b^ehdXRQTcVXZVWC`PWy_cU_PP\SecAO`a?_Sh~L\rX[_H@DJmTV\ZcjOgU`UCTSOSVlNaWf]GfLVLUUZMd^]aT]RG[]UkdZiL^[KJ\]XE^_QX_@OZIplSHRJ\VuYWKHgTmBW`uWJ_dkFoDNZ]dV>FXkKhP?qKIgIZ\KWh]QQeIJdSpGQbcZJ`^bX``clTpOTN_TitfX`mmJ=oLvFFsn[UQxMS^wOH]STR\jlKMaOR@[Un`pf^KWXUXeWMV\@tdKPv[@HY]OiG}c[b_V@raNNgNeA>N^DZBZeOZeET>oWLdf>^]j_WSXmgjl_HNU`mEiVTNS\]OUEoYSquVWNY_P]ZDoXS_XRlYJH`fZSPpV]\`ZJWQjiuC_YNphiPjUcTCQqYmYWOJdHTdFVIRiUSbhVLJP_[ijWhnHX`Vc[S`XZr_YwNPlpOaBQOuS]gULKQHEdeui^eYWlP@_hwuhHH^axQTT`Nvn]UwihRO:Ky`Fc]GgY_`YQN[`KSVnXaPVZNMxQq_kyyjyQ^d7\]SRXFf[QGlENfiXLTZTimN\s]Yfg\I~bRXaEK~QjaLhAanLjp|\Zgl>QTuIZMFLlSV^s@YjQ}]WnOgW:YTW=EfbTZZ^_Z]VLqI`]rY[VVFnER\PORkBZcO[[cdh[Xlr~gSRQm\aYiSBZX\QnAdNDtcaKYMZW]Rc]aXP^GPHWI?OWcYd\qTa[]LMESbKcpNGdY[iO\rb`hbjVFYrdcaU[SjY\nXfDY[S^dCtMURz\XHYd[]X]XW`gQPRucUZTFZmx@bOHcr^`EXcTlrm\cOTZDxWdWeRVcfMdSQBZ_vMLCSUcSNSkXEV[U`SWWT[HQeRPj_pambWpiSU_JZfQ_mosaQkSMciCXaZhFKSC2PcWEo5QWlSVCT]SwkG^``@>mVMYhS]NYkL]P^c^<=HeNfYIPQZ`iJbRRfQWsYfoNeCZfF9wiGnVNfaksdP^_g[WW_]ITYDiQDdZhV]So^cyiJbMnU_Zd[IP\g]jjX]EGJkePGxWXWekSgR^YeI`MQYlXcS^\XVLNXiNWdgDgdARRl_dlRQ]WRKVSQmghWwqXdvELCMOJ6ebURqQdUSVY7Pvaa[OvfKUXWCjOd`YTbQKCDoSZ^aXY`eS]LP`7PR_uVGXtWOYYpMSNdV\SVOdjZdaLflLXIIX[YQRZVEGW`YRSo\WDc\aa^V{U4|u^L{Gg9V?`bLBm`T[u?JJX[RXZNq`b[R|Yk^SRh6QVORU[RlmT]bgRb]fP^WsZYl^NUjdyZa_VP^VlsUd\TwNkKCNThbx^TmqUNTVL^`Lg^RPbf[_LZUOoZKmPcHfOmMM`URPTLq\ZeukdcZa[TMV[dJeMKRed[djHj^eRim`w_N`rIFbq[\NMaOKSYAOQ`[URh[kcOj>[YOWYTMu\O`}S^^nNQnz_Z[iNbWWJaSbM][ZTRrkQJQ]feNeS_\NdQThTSSNL_wRG\eDHblbjhIce^deT[Uaenh^^z}dMe^Xb]``qoY]VxWVP_Qb\dKYVmX^_ZH]luu\YQaPsFbLonfPexMSYZPOuBaVThLQ]dOVZFIJEmJMNMhYsQWNL`EQ`USjMTX\h[X_KS]IXYQcVJVjZZ\kNZXFjNcqTKgRbQIlkLbb]{nJRNWkeHSSHXfaje`VRWLe``YJV`VaXdOb@^yQVVeX[WNpbQai\j]|u_gL][fmN[PKuTUKBRMLNh_Ie`iXdXHbMV{cIbxcQZW`kTdzNKWvCCSTw}F^j]aO]WpPIl^SYTW]roTkRKGkXq[NEYe[hHO|kaOzG_dbHSu]csRnQKWdNbWapim\d^``LxagdnISYRyY`VVTgXLaQC_W\[RYWdRaKmaMQQN{NzfV[SH]KYTWv`ODmY]eT]a^PgWZZiR[Q`ZcgAFpEOb{]RS_YneSUYJhJpPRBQPRgdeWjSOZ_V?RsXSPjXHEr?D]yZreNLXTidpWEb\^LeYnQENZ\cQMMIuPaTXPT[TkPZo^]YpTYLLSClfdaxZtWNkQy\DNSV\naOJdMPaoSRXY@XWVhY]VTH\fa@NPOWQE_g]I^tK\]XIcyW\i\Tc^g^PLimZaYbOL^LHNWWtRRB;ShESfo^YVfjMTL^PSQERTCl`US`bH@wUKJIB[xiLqBRoelM^q^ThiljMITYodd\iOsJPYXfJrPZMa[^NcXbT>e]OeYZz^4_RP[hTGH_kYKSIPTfbYpu^FX[UXGXO^AgSXRc^WLkRHbTvoRVOWY=kT^fcOSrtQUOIX]`uKRtg5IUWVSdQx^FgUdHZINo[PhvoVZYN\PVc^aMJeKRVffnVFYj[A]kX@_aSX^Om[hJ`iSOPUWdV]o[nXd]heZJPQNXM^Z^RgJTInTh_\bjeS_NYTTRPpLYisMMJSVHVEdzDaH]\FtvHpyVRNeD]D]bYTjdaelRXjcO=K\bRoN[PjpUULQ]DKIRfzK]XqTbmZJU\UKbQnckakESLM^JeSZZh[UiZZUSZFEHdZm8b]Cs9TSTRN_ZbSU`YYUSQqXOhPXOV^GPUaO[W[UXT`\j[WfNRZBiXe`ck]nRRbC`kb`Zh^Cvc=WLKgYlXGRX:dtQJDe^EQaWHtRg``RNVYdQasTTWOefGYGMTWK]JNWfQi?Sj]dWc_]]Xb_eagU`iYP\XvLQJ_]_PV_PDHfOO`UdQSg=JQrKgHdZbVa_XNP[V\S[de\SX]PYPPSUaSEOa\\cZQeSaSgHH[bURWv`hXNYQZT`YVS`hbBU[QL_[s[jW[\BtGYoNGQYKoNPcS[I`Y^WBS_m?SHokFQQZh_MZRQjYSEgfP`g\lUeXLQlvS>ESehQJb\]bPFaWiwjWXZI]FeV?Vp_^oLNd\aHYHNLP[`X`HYY?TGk`Je`YSuegUJtNOOl`]dPX^[WJG@Yl[QXh|g\e[Z^aHM^a]bJUqQ`XhcQdVUnENSx]hWVjjKacWcBUUUm_OsM=IYcOTZZUGf_]glp}TXHb[jTN\jOW]P_Vi``JIQG]OQPZQee_x`6^PWjUQ>PZZTRotSJWt^m`PSUSnXtLQYZYITDkY<[UOWUpXMbc^@WezMcoaOVPOQ^XZckLHl_U_Np`P^GW]SaoT_tqQuie?bdeFMSCHvg=J`a\AjD\W}q\kTegOMYVRMLONV\YojRlzJcW_WaXLb{na^aMbIZiKq[CW\th\^TbUYbOjSU[a[S\YSS`ehZBB^eaOteWtgkWNVZJWNWP\_BI[dPSXNfRnP`J_cT^_^iHcZlYKTQaOVMLNg^rXQQbQS`klk]VXlcFLUWCWSa_G^QUTH^CJb[ls\TUU\RIvZ[QOuEdTDuuWNdQB_mTVgTrrQ`MpPSieBhjU\dOKQFFsSY]XWdx_U~in_r^^YPdEhgYKcch^L5W^\TRXRENVPqESN[[WgRXZXh[\gO_RNYLNZP=\xUdrZNQTVYI^^MH\OLUUmUcaSV]iW>X]^K_LPBkXPYRJOTcgJk_T]T@SiSaOOahQSUXcKSlXTZTgaLOwU`z\VUcFa[LWBN[AWc`Lc]nclTKRK>ioUXnR]JxW^oQ_ITTPNI_plk^Pg=FRi@WiXU_icZaInPEMSc_IUkeCSbXCOhHb[VwhJ\hNLdMncVt\fbPMWaU@QQLXlu`UF\<^UZW^a_d\dXGMOK[Qbbu@GeoSafB>VEKMjYhlQICaclnkW[`^L@Z:MWYbPgZvDa[tNMdLBXWEl_^IMjTYcLNihLCaNC`mvKIZwJZMiFdRBdUPOBkU[RXTF\ILXJfV@TcpVUU`S^_SnZaSV5WUN^MEIg[_dGhmk[SHRjY]QPNOHUYTgZhkNWYlaDbXdnPXeIGNd^sRUPSZbi]OgYgXeKYVdnfgM^\^TQ]Rhe_KETH`\X]UKUYK^VbXMQ]qd[_GGYVN^SPOK]?ZW`VNcUbqjf`YKQ[bSRkS[_SQ^fNg]VZYoJcYOQbvL]B[_l@[jbNPgaPISWSa^QqRFRRhP_][hmQ[Vh`dLJoOi`NKfKl^AURVb_Z]\U]TYN]]K]TX]j9i@Wp@KlNUmFa`bRXe\\ZZ@S]h_iVqUQGcc^nTZNlNPQRXuXaXL\`ZW^c=OOWQV]jNZZGkdQfJ]yYw:X\L=bd]bIWiR`[RYa@^`nW_k]r`^ZPWOb`E`K?]\\XT\VyhII\cUOWWS]Z_Sm[Rg[FP__^VIiUYaajZ\\Pg[ONBWePPbe_YN[NaRcn]VNpFZZQ\peb`IS`lgIPf^YcY_go{XOXIUfNkHUZgcQvu[Td_TL]U_TYOFTTcVeqaFsPVCigT\cMc@T^KOfLLfU_KZW?oIWSfTLX9EVUN][`kdNVh]L\`kHqTIMMSWSzhbSUSZgZ?[EXW\A>Y]JpfqjbWgOQHL^URMZWIBeSkaOTeLfPQTJDSW^adS>FYaViPFSgd]]WKNH^_QSY[XL`l|I?\\FC\ZW>uWmSC\mdE^Ta]\XPiTNH\JLUM\Ee`DQ[^QReKVN`WXWVv[XdWPYXq_hLaTW;glS[X\OcX9qWuYfQ[NNh_NE]uR[nPZU<]jnl^bJa]b~D]\NeMNXIKPh`qWUH\WPcDMSCUEUhoYNSNLMazwQB\S5M\YcU}VH\XG]S__SL]\>KJH\gUuLhlSIRLZqn\NK`fYXYgbWvXMM^DZIoVJSQNT}J=Ce@^]ySFIY[EKT^SCR[]NFYPLZgF^bImTeWT[`\gWWeLbQFLTi?kTDNjOlcplt`]MdiWQR]ePOPRbDSFVmigjQP^`WHTV[ubL?eckZ@UQJmOSS@mbTS`t{W[AdDVl_kVSSR^>dL^aQRc\dBhRXSRNlHOrKVhKHUQLX^I}dUNiPQb[]TQ\;qpUf[_WSf]ZSZhWQWMm?\gZKIOtMYgd[VZXdWjkVcGS]QZM]\eJhRfTJCW\]QpaPE_Y\UPVP`ZbgWrchgSLdTORTEF[Y\RzNARj\KFRXV_doNSGBjZ`XlfbT|2EocKLuBeW`aZ]RYM`G\R`UhJL[ZL[RFdbnfpVVM[X^PRKofifUB\R;b_LYrIRYNWa`YU[XZAbGbUr\TYTJgSSQ\QVcNvNY]ZSP\Z[ZOPMS_fY\bYWkRFFeWZT^[VLCKTPHcC`BgfaOcA[da][bOV`b;WRZTf]I^NUReM[^`ec[];A=\gf[TNQ?b:OReLIXH^EXec\XJNuIVi`DT?q=HAWCRSSLUiNQGeXKDbJ>IXCXdNguHWT9JbKu?j[KPx]Qfq9bJ`L]=W_jVNaicjkQ@JT]IQOmiBN`b[`Wd?Xs\IX:VHR3IN8hO^DCKMWXReI`Hdo_jRfQQ8eWXN@bP\?FZV\RK`FFgQQaI]kr`b[s\iIPqAUL[jP]]gSQJiqKQNmQYRg[^K[^^PadP@LNX[>eq]ETeZ]WHN?XLMQZd_Skd^WO^`caMVqdURNePVXCLXaNJVTaawFfRNdk^eBQUYSNa[MZR_?RYeganLYS5S^JZAjSQF^\HRIfgVjKUFkUIY=V`V`oXcU9^VP_RX_UVa^}F[neHIXbh\d]7zE[\WMb^NN][ITipKAScHcFSAaDVRXXIpZlP^TmIWSNnO\\DVKRNSXX_PXRMQLCfVqQY[hKGZXQiGT`YXKHU_M[S`URXOTNgPO?Fo\eYEnlibiXe]R\SNSI[j\KXNVJrXROkQ\f\cLVYhT^Yj`QWQKXH9mN|_W]b`CTjQSn_wTMH\L@Zc:VQPXdxYb`VTGcVWXbrX`kKSWeYkKrJO8Ni\TnVOUu@YO^UeD^TPdOYGb\QSDhv]JOLX_[L8NtB]al[UfpTrgapZFIONQPURH[SPMZcqorPkifjgbWWUMNcYd\Ge__cEhRo^iJjTaLjW[o[[R_RFQPW`Dfg`f^SaNiFEfpxSKLKRcje^]YRat[S]]T_V[mgI\kAUioIG^aUJ?J[gkWd3eUDSgR\gmQmNk^kqmEbOX=NQZ>SkU^TQo_PaICXmhcF`[aV\_NWLPcVRZ^qVb\[LWR3CcHrWKaVW[GKQLY]P>eXNUlcVYVT[]VRaeMj`WdeUIdfeSKQUT[W?pjenUaVFPVW^_gG\_WKza]Y[SscaM\`bJRgUHleX\`f^]SOXMIFlQPldXV`H^9j_8ecY`XZZEV`mXoLWR]VAUn(VNcj[ehCXJFNTl=WqwRHWWQRcMVmGLjtkPp_`PW:ZnHdoa`I[E]WPlWi\V[QQ9[WROJtBNqZohLRV[ZNP_[ofJfOP_cXaceLV]]MMEFGCf[T]`]Kc=S]T\_I@FGSHf]PD@o@KTZOaOJ[LSS]BOYRIMK4^Hx]hCMUcK[_fV[@Uhl^uZWPdXY@^\ZVMbRNd6ahdcYMEY`HUT]fmOy^TZRonP79W[`WeWYPMZalYm[MReOUpj[iTYWI`I_V?jP{HpUWe[xG]qb^a`eRS[SpahXnPLba[UBROGfmKdmR7=Twc`WZLhMWElVbwQiNLEbOlUUUbaZbC_gaVdaK\f\Pd^Zb^dJfbfT]GKR^LNYLjlHWWqWPNWMhmY@W^HbVLRHCdPYXL_`wUZLuNf[ItPPGZSECMYVYeZ]IS]XFlifPR_LRV_bZfUZOIrJLU`JCkXiiTLaTf[RYXQ]hhl`Q_db_[Tfhb]UbILV]nRYYPYaFueNR]OoH_AZaC^\UcXTG^PhC`^GV^P`VbaMiURZZWiPLR:_I[tNNR^aMcqaAMXR=WNEGbNjRjLdR_KNnYahJ\wX^ckQjZP\KiP]bPawUmH`5`XpEXcOEXCZQ[TOTUbTk^KOpQZnacTRU`TSlLvArWRJk[\]aWUQwQHScgYN`Jlb]Obhi=kJ^r]QW[``[n_IR?PUXIdJdOJQDMROLMGYNRCXaNOJXQOX^Kb_qpWoxMK]d^Y^jOPYsSyZktb_NJtSR\RIRNlX_WR>XpuQcPUIRS[~T^XVZhx_`fW^nm__^qZ`XXJ]oaNYVYN`RjMTRWr^RTo_\|`JGMQYEelZHe@Z@HAfZxhFVYkMzha^NSZVY^BhR_L^Yd^;HSvnVnjGEKN[WgPcr]OaF[HgEeSPTIYFeFXkfL~XdvYVRZJWZRM`FoRUNOdrhVHo`RRVfbCVaT_ScVnYUOb^Y;XdDXTZPgIQa\XJ\]NYrYcfOamwe^[^c^[BPLMcNnZsTObYtYQSGI^akZsBD|JcSO]ZRT_SVL[Z]XcAHX^c_kTJfXPS]dEcEZTDADdqfPKU[DDWKSFNLTFod`^XQ__>bbILAV_MZ\>]cIZOLv[MYHZi^ZiETA=cWITf\^LxWPQISQLHV5eNn_s3pScqXXY:HbCN}cUnTJPPKOWeCjH\wQLhH]vr2TUZfhaRWS\D`U`Z?VVO:j]Jp=Of^mVX~bdLhIC_PCj[EREPq\^b^NMNDNw`ld];rQg_7ZTSyQRWW^eJldDTgcRUIhc[XXNhn\^nS:Y^YFx_H[]dSXL^WE_U|UXEfAQEfNaY\EIHtUjcPxPc:osN`QX`\[DCTT\HeQq@R]\jn^ZAdydJfQYajejeYlBJxXSlYM:`QAc^dUWRYOIb[K~[hQUWKULc^:dZpIKLsigQihBVRVRKKu2MUT`LR_NENjGKfhfeQJMfYN`^_TZ>Y0K\eRr=gcMJTC`HNkc?ZHQJ]kXQFM`KYX^XSfYLF_QL`WRX]Z_]=`PU\MW`GWJRSJ]f\iE.R?b|KaVq8eIHKZPb`eJ~WhW]eOce>ZR[bHkYbRbubB|Tq5bYYi|aM\W\HZF9B`f`ojWPEKakcg@bKOb\d7]qVcb^l]hsTU[n`Q7VJDSkKHGgRkZSh\X>\HeHCd^OEsO>`\hPJE[RFRSPriTeUaldMuFxZ8]ORE`]yKbX^PgCtSt\@ZCeEq{FwNbKkMbRIKmX[]E[LP]>QIfb`jM?NdkEPeSvGfZaSr\pUMyV]nbRjVFPcPWfcdc\cXc^jRpJK\aqZxH\LO]T]aOZf[MW\j^\tD\`T]QF^cZcncsr^UBJM^KMohFT[NdYIaVNm_HNZogPIZRj@[WHW^dfW]UsOUQXjN^\@SnlG@MQ^Q[>WTOh\[Y_acRI_WHIJNVYXLjbj_X\V_ooTWY`yYBj^UQ_pINbuj^^a\`Va`NM_qXh\JO]WsKnaOp\SNHNuMHPhQAc^XEUdEOm_fX_UReEf<[phQTVyiIKalQrXmLN\WkSb\URgUsWNSPWPoDXkM=QrQkYSaU]EEJEOmiCJLdB[oiNAPf\Cyf[CiR3NYH\VBTX`\`=[\X>|f,GFTa\WnTLaPbU\Rj[We`GvW[Y[TRXUVDiaa[cXP[`VOOPk8n\Y\aVc_oFDZDRuOTdGU[Z^gkLWOgQJkjUDH]T_UTce\Xh~]d]VfXTEPqaYTGiHiwE`RkQcg?gS_wRT_efa^^jgfPDOf[jCHYrNdVYKTHkDVk}\o\b^dO[eQFNO]Ud~YgZCXK@X_^G\chdhOJ1X[kSg\=\S\KW_UiThVeKq`HbVX]A_@`L_\B:iR\SJWP[pbRMBYEPajfffNeRhYYZQUY?lU`fU^TU>RUKlRpWK?_aRsNQQlKJ[MI_`?`NS^DKN^MSS?YY^eZTVeJZ_BPa]q`MGDtSUlbcpPlVeP[SXPXSTEniO_IiTiHi]^DjRWDbXWNVfSw^EfhWRG`jcLbS_\_pfPgGIkdXS\RbXU]FHWhVimU{M\Tged^lahC_ZDd][bXhU;Xg\MbMbYup_^]d`s^@eB4ah`M_nizgW[WEhIdPZK^|iPR]eOZtQnTW]^JJc`acZgX[X\_WY]cVQiRu[SPibYYZ?/X^VgmnT[_jT[;Oyaz[r\=\RmkUBEPvkQlVN[XYaSUdL=BNZ>JQF\XM[oiMkmPLwYgq]heCma]MFG~B^^nLZ]aTnecFbof^PT]VWW_H\Np`CN_drDZ^NMXOvO,Q\TQ?DUATKI]Wy_mR7tfN^b[_ZU`WvgOhgO=n]NR_QjkH_LUwedWZjWumePWJWe^anLiYsYelZ[6QWaFQcZm]JTBskp[P|w`XbkOfSPman=`{xN\Ihi[9btRL[Z]aXUTKqXT\zlifS7PMYqlTfnKB`WanKjVPb^2e{cV>S[I[_aZ^Q^kjQRYVZjDDW`[PMJSCseQfEU`ZKP`MXRJRVGYL3^T[ejhdSEfPNx`]YaddsZT|G@DRF^U\\aQSEX`_Wtg\apJ9ZGNKWdbZlNWibKQMQQ^\`]JdOW\_g_BSERYISS`\\J}VEF[UXjh`bhKURVOpguqRkaDShQ_c~^UA_^L9e^n\i[K[SV\ZOJX[T\GbeTIQeVY`QOdx:PTQPFOSPX]UM[KPOOEPHbX[jPbn_QX`_tQNPDv5Wug=QKWWfSEXnoN^XVi`QYaqbMrOl\G`\DVQGtSHYH_`MY>ZLaULWmPQnU[UMA\TTLR@9aWX^D4`<^eKCW>SfUhP6S`a[[^eQokUcRWL^ZgVOYOR5dT_Wc]9AfG`i^fU:OlqRlRQBrQjbENwO[csg{nU?ll]Qu[:cA_NZ{]WCY]IeTWKZ=RIogKMSmUGSc]YQ[^y\TOt;\MhzQTSWbxJSh_]YUV^Rb_T][6aGHXbe\N\5PH[q\s\P^OZQhDMTtG@P]beb7GdcdfFSYq^ZHqZw{]^EQ^i[`\]Hd@\KqXUhUE7PLUKcQuCdQJOPSkR^GNKOXJDK@VO^vvQKUaRf]SNHbpVTBZTHRbHr[sW]]bEq|SnWeUTgp?WZ]MTibtY\fNmTVLw[TrjQ`SW]Wfah^LQlMWJ`jRVWPMbMU[PPMVVWQYR`RZjE\VYdpnoWI[mnKELKW[gqIH[5FHVMp8VPPFK[aeNM^qQcY]VZOU?_sLmAWVK]iSpVX^\]VUWm>GqoYSIKM}DW^BRA^r\UMTeiLxS7YdAYjZnV[DNOFfkPfSiQ\[dSQIR^RXcfRLYNInLKkGZiKaUI[KKVeJ>jPn_W{LszXZ?\cI_H\WIaCJMZH[JfhYIPvYWbIeSUOdaOaWh^Y~\c]cTLkhJP7_OSNZDecSljFSOpTVLjfcJj?gdWRUGJIPPnhqJ9eLTUp\A^TiblUJmU@]TZbg7QZ[g_>V_BdUNVGViWcr|S_XZX7]hWWWajWujSiIGO]lJoXfQ]cZMbhdSY\^N{\TQoWOcL[ZP_SXZThng]Yza|UCI`]sBUmRb`Y}iIu]M_XIKJ_BAS`egXn\XF?fPKIj~kOFhWHlUbVX]_`mD_NrxxJ@kNZbaQXEwWMFXTW_MLX{w_riE;TiZiV`[WTexZaAMrVPldbL\mneFagUaRZ^_y]GYPUTWj\QlG^ceaQrOt[EAMM[?XM[BKdb]ONGfPZIpb?YevKVhTrGWLcXt3YN=U_J`gRTifKm7ZUTbOVVtOSQNoMIaM[\Zi[kbRYK[j]\PVU^WoNZKjfYv9jQ`\_VeoXOe>VxWhNUWVYRydhMcv_TYwaX>Vddc^SKVIlYdKi`nXO^HXZNup_WSP]CdIYmM[LRI;[@chnX`YeZmT^XkZZi^UO^HVeFa`lFWLdbNPt_TU]VYTm@Y^_USMYaRSdJXTfuPNnRVbJZgRa8fkTnb\FVrhWnGmVZcGajf`^hRhOeOJwORXEEJ`^NaTSd^`lTXqx\u[ia@v[m^k`\W]^Y|[fSiBiWZYZFKq/cUUZJjFLPIfPFW^_]R]cM^LKCkHTNiNXcTdRHHE]acMFWOgf6L_HhSTOmH\_WUM_ceHeS]{e\aq`OTF`dXURVP\[MkzWnaXe^eaRY]eNEOrGmmhDHqjMkcGSOOVUdKXWF]gm_lkd>RI`S\6Mh\R[I[_>^TSMZr\GI_PMO_O?_zYWloWOcN[^\uucQgL_FSXo?ZJb^ZOk]bdfFOSZyBkZXT_KazWNKdQZGrUnIR__[O\@OeSPWRaQMY`TaW6\TSYl]DB]GlbIbh@Ndiq^EN\aOSJFa?phObLRcTOn:QEEVNNRKnZ]\LMKlr`MWVQWFk]@^LRbeM@S_uMCZQMS^FK]QXAXNbGijP\;mX_vAXSSknTNU[A^ZWcRRFHDZ]Ub`ByZf`HJRhA_]YlW@_\][[O`kH__]CLHZUDkAZhOLjB`TvdHm[XPCTsaUqjPF^KNM`\RF\m`WXRY?DRGZREt`iWOPH_UUUj[e\ODC?CYP]Or[J?Ptv5Y^nW_Z_l_~i<`SSYh_td``Qt\XWPYXRRMSsghJTcRO/cchaDiUcEPJp_i}_iafW\Tjd[TpeRQh]LeneZdWa[FOc;YLBmh]S]Jl[Pgga``Xcd;BQ}Q\J^^phQoV]RI:_O8WcuciNCD_UfWcaUOlDWTsE\qNIPLKjFlHXJ2`I;NfVIJfRSi^YBkTlJYRXGRJSNWT_Je[fYnYc`ZsfsSQan]KCxoWXdG?bTJY[]jjGb`qFYz]MiKViQ3E]gNqOfV^Vc\VVFb_c[{mTYfbkbBGcja^oOZIkNK^T5eA[cLcVTVDZtrY[:F@rqZ;RLGO[idyZkMJkIS7nPWQT]}WwgeaCZ`v_vXUS`d?WPfF]gXpYDNTUg]SIOWF`m`SVftcTWti`ZdmNFgNQGY]OWQR^jVaADi\FxdLhh_sctZG;pWW8PbY]DBUQSd]ZkQVZ][XXdbiUkgUkaGy;^WW_dIVzdVjX|^>eU9WNiniCv^rqMdTYT^`dm`YT}UbxT[^[aji`cbwWSSQkX[cA=Kdhb_J@^[f>NkpNP@NTYDVhGa^QRyZinUZX=kRc]JULmv]MXMYE_cbvasb\=JRSGdMhobFbPPCTiPW_ah]XW`a[j[[QQI_jrRTGQSPgmFEJolXWaecYNfR\HWKHcBiBKPF`VZfSMad\bPXUjJ\sYRcTEVRKhU_N]SU[UehXYCUM\bHHlSeaW\KYaSZO\Yf=k\aWVjjkCMkTW]GUoR\[j]lDNiYcZyGadeYZO^hTbWW}KWOlb_h>OSYcfHsoNdZc]Y^YhR:XJHX{ff_`VYT8b[RMHSO[JUBSSMJBObbamZbfddfcQW`^U[cJgYZTTiISkQi?bfK^aQJQW[OcT[[wpDu@aYEpdMYhhXjFQ=JQP[JYUOWJVMQuyZegotZWZS@]eKU8LpVKWDbrt>ZUfZb_|nOcS`iPDJjXTOkP\Mea]|BKHYjJkNiba_OMS8M`OSObRX\heTnPOa9e[aV`WLMcnHgUe9T`j[fPpkJgY]b\K>fsk`O@K^dP[]reYaWcUUejy`QY;P_zPLbORJ`G^WINHJXOZ[mLj`olWWElQdHvWfjDbrYnbqg]^eN]ORM`Y`olROaUFOUIdbIccFPgQ`K\cQi^]QSIuzgXfOmRvOtRR^X`_V`U]P^oZpNRyW]`bLMWQ_RSgffZTRiEeUQfVOEHP`TGB\jicKiU\_OjQVYPNaeFebU^LWY_\wUK^HLp>dR^tKRhTOZZeWdN>Kb\Q`JK>UXfTpRXYZsZneXH{wFm^MGaKi`_KPIHNG>gLiY{zUhOceLPVU\wF^JXJh][abQ\SbSTpaVkcVhQ^sZKZBXN`_XPU_SUWPrVFkWQyGNpDPTTQN\iI\_UHUqqfcFLeoc/bSQuLZVOs\kR[c/W[dlOO`SV]~tJ}KpYII][caP[p_]\jPK`jFR_KOWDadnX^coCQVQ[Oi^yfJUA:\VuUXWJoK:bUj_h}`PmbApkTVumHEDSVUSTQYZbnwfThQUhXaVDVMR[zlXQkgSH`lXaW``S]td8tKagXJVPWm\GbIBc6epflOMhjNs9^CmikZX;hj\jYe]W^?QJQB[ItIXW[^gZ_MjdZWT5bUQZW_;bDJAHfWj[rNlFTKTRcPbgmL_X^aVe_KSE;pwYn'_ysd]NT^H]o_uQ[`QcNd[]_^xL[X<^SUDOO]f@M]Xc\XLqaNSLXEHqRSrpZHd[Vi;XhLmdjkUvAMUgnfPQhWeS^6NFYEX[]LTL`]_JJ]ILVY{PcDbRSc@gDQY?aKRWHVQ[oGTJjj`GdRDaUW_VF_TvRNJIKOLJtO[UUU]]OZ^[NGqTZCPMPGYl\KlSObp_GHX\NVlZWHeiQgVU@\]RHhlRH_FSTjYHPQZ^\\]Jgc[Q[XcQaXg[^_kXGR_DZ^4YIZMQQ`AYTX\MbHMHZkPqVl]R?a}iqTZG?eM``T\^c^lXQLOXLAMlTPcPM[Ue^ec^_lLYZTiNMp^jTefQMg[rhs]g^UVrcYKaV`\SfaSJ`PYRfRcNq`OeZKQjVEtl]ec`bhe^UH\fa]\^No^\V[XPPHlU]WjaHgV_`?RL^MGLRQYUPaVK\_UbmKcGSX\aOpFfOXKh`CV8^ZqZQ^2WibSSM\b]ZJgh]L`CaV@WMUoAHMWDid[UKiSAJPTZGVQUoGHVqhB]mxh\=Z]gN`cR^e^{XdfTQObO]=`c@wGMT@uFP:jGXkUXbeP^PbI_[eNc}aHkOO`NWYW?jIg2M1kK\eRJC^wLFGzqlO^\R;R[DnWMhYDY^^VU9ZJ\KVO^OXKuRZZ]ZZN`Y8oMdccZD8d;?MaFT`HYJ_:R[__LFl?BmMT]\sGh\X[bk_JsOFIGVULk]_^w^WdSniTZONaSe|[pZXbZxgSRPZRXNX_RFYNWM[TaVFbRdBVbLWa[fTKUIEH[VcglNNZOq]^WLLRGiZSQUeONgzc^]W\MYdIe\p_W[qDU[Oc)Q\w^phS{^k_g]@YK_bdzO_PmdZ]TG@a=_PXZ[W^AopUcHjZH[FWOYNS?[TMOVZ^Xg\\XPZpHWbkMTU]AViIVVOnHAoaOH[Sa]lVM^fR]qHHeLS[^QbQP^b_Hegcb[`[P5:^[P^lb[Dbf^T\EdSHauTmUYOONKhSlPQWUmWgK_[YqHSfG:Ue_TVnHObg[IdkYClJZQOtQWweONSU^VeX[]MQB~EK5jNQ`fX\`TNGzMeGY^NkOH]ILZ]]HTlVigO`LLL\KPcQOeb[lXKlGp\WWOVYalFZOWMm:Zf]JDZk\[^i[\_ICGPTbd`wF\wKGe_nc~[J;=]qOGVf[m\dbcJI:XcRYdah\`_QhZPe\\eMN^>NQAZrMaK]LOXsTm[a[^_gRP`ZpGP[PKPnYObIgVcZkK@PASz[IzOYg?EXoHcP;Vw]EUcaLfcIJT^bJskUJjZR[cmIcayCdlE`8Ny^_?doW]JYFiZuXXVkkm`WR6mHgd\Z\f\CVriCcHjl^{dTRgUdE9RWIaqag\SE`IaXqGkkP<]cPXZmMgDEbYqQH]FVf_U[gT0kKUfa3@4K\VT[:ZU]WyKLM^laOPW[^4e]tbiXLVUuWh]\?eRPYJ:PSX\]BPBYUBQP?W]VP?W]N>lZWcNHUGUYIfrMZD[[aZXPb[HJ?R`]OPkI`QZD[MVfRM\_T]jgw`I`KUSYRXZYZ_W_ec`mWUUVfYjclEVVdMNXWE@L_Cfh|hU\Y`]{JXFZhTUIVe_sl_[EWZ;W_gU`XVp[fX[YDaX_iKPOrcBZ;W`cshBbQdmsaMe]Q@VFUlJPZ6ZycfMYhf[ZWMI^RbciEKeKXlRJTWcH\KXFXYo@kK:gFwdWROC]WboPQRbhaORZhm`gPTO?pE[QkbYfE_`\drGeW\eZg@]`]P@1NVnYX\@]K`TVDiRHmpLWJXSXTMxkVNNVOVQf[QZj9eER_IgLew>VcOQbhWYX]ORCLSTTjV`cfZw>ScM_XsWji5@RuKc[]khPUMYVCXel_KRTVcJeXqgx`Sc^dbeOHZGtDcFWN^PQ]\PU`\YRL`CW]vdCP9yIIUC_LKA[gMeOSYOfVksSid`^N\dPwSs?VLoPN@TUQiRHENoVdOPPQ^P`\[g_IZPo_BbZKgL\Vnhs[^IU[RnVxtDLj[QJ\XHXIcItgXVW\rM@cjGMM^ctKUK\{eeDgRX\@^GZFfYE|Uw[l]pP]GPPJKbjHmLSrUHHHIWkNXZWkOaC\lYbNU[ci]bVglTkOIbk]Mh^Wb@h[f{N__O^Yew`Z^T_g[JP`_`CTZhYiag=jaVYg\\hf`WFZvP?PVVgSaZHg[]p]joMZcEX>GYZOdXZSUHcX:ScYhaSSNMYR\fVTOXRCErkJrdO}kW[oV\SMkm_QM^eITWN]YQOgWWg[BRHbwd`JoHlfUFUM]lTHHe``uYQ^TPnNUH\vnJWpPFrY5_\[JnZaSXJGYN`YdnVlT_nJSGrJUbZ[@mPW^aHeMY@B`OWp[{XL_O`dTeaVZV^DWSgNIUGe5VL^e\\SadMCCPVLKZKVXeL]CnIHJSQabM[Yi]}MJd`vV_WY]UaS`^NRQ^\KT=NCgHQTFdR^VQPfRHJ^GUEJg]bW~BZ_c[TpVUY[gYSLX`TJEhkKLOCe_lhjHQQ`\R\HG`U]cVReai][[ZnlU[ThdiVTN^iRlRbfYW[S|KInTMmmt5@OtUtIlII@Y^f`Zd[WkVD\_KY]`ZTcETWS=LXJz_hvL{T_RvKRHo\^Ol@_^eY\BuVSa|aLZvXoNNIgTYZabjbTW_EO[X_PmZhUGjNYMewOWk]TodLIhWI@LEIZgBJIi:Y@RUpUpSKkQSL\jVTZWcgi[oPh`fRwh4Y?NfSRQmRcce6OZV_ZNWZXAIRN^J`P\PohQTPOqyQOt_^IjNEz]WQcKUuhK>XXS{VuZdaV~`TTI]XCiJ~VDyPRs_H[]`[GUMRZgc^hOjr]_WnIQkAkV\YoSiC\I`k9\eUWc_M_D`}af_cIdUIziXQTMTIJUGQMUG\Kfh}QCfOggaWjKrO[L^GFJk2EicIB@aXuqM@_pFcQ]QdG]KLsN`a@TZw]OYUKaaZWeU`FOa]dXGHRi]\XF\XVdNObT>WO]XTldcbH\\Y\Vk`R\j_NlG?>\\sqX[6IEMbPcV`QeTTaD^O;XeE]]g\G\SH^TI\H^][S]VpMXXP}mei]U\fSSDZWcCEZO^Vm^_@jVu>sNa_{E^tY_NehJcRaVNJQSWJdgqeZY`Pm@^XRLVNQXR`TV_tw6K{U`oidc7KZjHgdnSiOvN`Fm|dWd^]Dov`MNWQURKmi6IedvQZRcfTiv`XXzKbH]uCjZ^LXaWy]Z\=>^_^d}SEWhcga`cZWFBW@n[OXYqUW[uIqhVbYPNZ^CeZOV]Fk^R[bYUUYz[_hPOCm\_^hBRKQ]RZYDJhH^PUdkCse`3i\SWVsZ}F7UhcY^SoFXORYMfjgmn\WPR_Z]gYaeL`Z`=Imja^UYnPRhd_BW2`Hrc^SS\[_o`RMEZiZ@GkNPFB^_mckXWIk_ekb_^NMdMUTqZeGVLZIWiHHnGBRTV_\^NYX_Wb]OFJeKm]ljrM`VFoTJMScVczSUr^SogKAh^`MKYPneUNPLrzQXvVM[K[[o[:I]Pc`BX[RDxJfT`cf_hZVSo_d\ZMKT^P]{hF\PX:Vmd`E{^QO>g[`[N__^CcR`agVf^o[jU@MJDm_LYJRXMX`MOUdMVoNZeSZUfeZQbMYUzPc[PBP\VWEVgaEaS[V?O_:UXd`3rScISPe[RPTPYfdDtS`LEfA\`I`jRf|KZtiGWRQXk\QCaUhh`MQLOlOZPjMLH_@@]oWS\LXTIi]Q\QOgLcQYZa_@R\bG`ddRFhV_I[;WrbdK`DYWcZW`JBM]ZCUnNZ\tU\N[BU_H\qrGL\Bj`gOHM>NSNsO_BtZNR`STvZpUUYDfRGaWITYZhqVYVRBRSLbrMT{\`cMcS;MSwSTKCWaVTLTI]KRcadG]zYQvUVjORovU>fSI\d\\Y;Z9_dSe^NQcUNhE`cTaN4UKIPXaP@bPP_VaLPiD`Sdq[MFJZWP>SI^cTvfqEavgC]PeIsSKXmcSdZZatqWryZKOd[S9YU[MGObNVb]PiecOVwZdT^PXNFQPMuZVNJW7ZEXLSVd\KRQPbaJXJH[UFHbWNgomcl:DPLKT\pIU[RdaXYEP_it[__M[kUW`RY^Q~ef[qiHe[qZJOhJMBFBmQS_n[HxqTW`[`YZ]CX_LbPTDEOAeKd`\hOjHoVj_YebLa`QVJV\faC=qqaPQ\WPn[YQ]S`\Z@dGQNv^^_@ODMhLUie`iOtm@wa`RNWF`PYDHWhQYchYBLeMKTdbmidTgfBJpcDWnTTSm[T`^c_OIQUWp;\_nMG`QTVPV^lvV]aVNT`CQaB`[vMP]TOK]yiTPb5VXbHVe`=`?[aQsdKJff&9ZLX?ILaKokXdQSLTkVPMAd@yKXSfXYsFe`xFFLU]DKVUJEVAd_aWiXMW5UMvSfZjOKZmSqX\[HS`bXqSeAYaSaNQSaaFhabZOGmbhVWZtcOZZPe]\kTVcTdJFgKVW\[X\SZtlN\\LM\dd@XVg\\V~_NOPdOYJiI][[RScamjOX\\gJXSNpGN^SHP[AOWa`WCa]jSZZ`Zb\PVO`aVMHTMa`SI}VYR|cNgT_gHjROwFZNNPRkYP=fMYm]OV^YFW]RiR_ZPWYT@fC_h_mNbY>KBUbdlAN]_C\^WhG\NJb}nWoXYKYelDjQWb[TKMSRdbF[ngZ]S^RFU[WM>cYVUiPb\UBeGafTSQeiH\^PdHGRj?mToGPVkJiFEtWki3IMdOLRCYhVaKIW^Ul^MBWOYH^RNd^\^]S)bSHdK`VfF[SMgXlm^qggNKB;8DTKdZhKekXZT}K[Zs^bdlE@ufmb`HjIvJ;SnN]UflgQk^^MYG_gVgUn\[X[]iHOYQeWGDU`P\NQKT2JOinR\^S^QMXVORe^Kfe^nPe]S\plKZ8ZRcUcPEEWQHmZa`\_KguZGRkWaXTdPOLf{Y^EX[UFdVSWPt+XaAUHJOfTXi\]ldbeL_TbTUgIGk][SJHx_]PHeQjiiLbrLOItKZYQ_OEPTzSZeT[UTR[rveW[hHb^]iq>XVg=WK]KzlIJHc]CiaRlC]PWSIX[D]FEaZZ@=W{IGeNLZmSN~AcOujB`Cl4MXR\^]RV]STZtMOpUTOkSho_aST`eNaZqx]jPIFu\@fQrQ`\aq`aIJqRSQXTTNcTSLQ^ZaRMXDIZY@[QSNZUTL^JAVV^HVs>RM\bft]QMI\nSWa[fdPa^^Zc`MWohT0agZ_WiVo\GYc^;TlmWhPIRK@fR[@iLlQsPhhXVf}VurOBmQpEFb\QBNJurjhJl_K^ma[`OZP^>DNq_RwCCV\A`eYF?SamaISJL9P`VST:\ONRScKAebQHfGxSdf\g;@LbLmxnZXEcaSChKe]aMjUJGOGRkK`itqiSLSYTULpqVjQKMYTWe[X@hdxD{aJ_cPiUBIe[SZR]]WdFPl^THcYDYI\HSd[JDXKbjP\_KUQhn}HNdPG`kMfYyNsXFa]J^GP?gMUszSZFOwmUSfJSveRcEQPYBl`TZkkLkm@iJJS]YGBPCC8[gUTLQnPICljbfmBZJTiRVcNM\ZPC^f2Hm^ls[::jdOT_pSSS`eohZRXeHOaC`C^KgRLdkE7TPb=eSVWXBLMCV|bkVDbThXjlaqnT_v\nLaFaUTwa{H[B`_[c\pHUPMO[fF>g^PJWuZWQTGySc>IjqFjOTEiWAfMZKiFjZM`M[C`WnNQlHUEWrjSWgkg]Xk`WOQ[TeaaTSJt[\Su?jg[OZT|acoLabtP_VaR_Sowq\jTNmFbVPnZVeeWnP}|KV^\T1]ZDjRNv`MdMbJeB\PqWZZHNQaBzbUHYPEZ~@ONZJIRVmU8JuW9zHweKQS`qI^BOiZd[kM9U\R^PY`3U9`P[_gQgS[|V`czZY_^JcvEDW[RVN\LJc]IOaWXX]cVi[^MhFiKWXV`OHWg^Qh]YGLW[OQJZtNX@iGezVKKqmeLL/JASPIjXQY]SNdfSaeEYJYfsYJb`ZSZKgCbFaP]iUZg[o9U_]]^5COa\p]e8feqS>S_lHaQMc;iaX\saDkdw^rBs]Y^AhNcN8^_IpSiNN_`R[EjR_iUZbJLd|]hd`JTMNPtegTmYKPeQFDYko|BrRhaU:f^aMdp[aBp:aYSSVWtWQFoVSPHadLQ^e`YTVi>BgQyOagtZMRNPeNo]|DqUSoQ=H_7e[j[_bVZe]aEaVTZkVHVdWcVUXGl\^ZFwUDLNWRe~[O_PbMfS?CaO`G[ZIHTPK=WFxSWf?_p^QQoGuR[UZ_`VSPFWY\eOHHdI>ZLlY]]]]]aI^W^ju\SYZXrf]ZT[YSaZGHSmbv_QaW\GWlw[MePMHR]WJSOXZn_IUaHhPig_J?haqX2=WmMYMajE[IUIDcAFVLjQ8ZYIUTcTDVIjFSyZGmq[zQgO_gIM`Yi]@LXozPlejTgL\iZabyS^WrfVqyX;TRVeXU^dc`\ja7YPNMLVPXEAxOcjpgd`^AEP[K\QdCfFOYrfOXDalSefNuDMfY>cZWVYV`^G[eHBS^MfH^_aLNUD[Um^vQPy[Wi[Mq;Uu8S_jnZUV`VeSfl]ZbaOqcQTcPQpQ[[hOeYcpPR]`elIIFMVSVHRKu_ig]MQadeQ_Z]ZZKTSNQ|C]WnKlNWLKWZ`XVqlHS\WTpTL^_G+Omi[kIBSG?1dSoJXU`ROgDDm__[7W_TAT8T]T`?mWLYjV]V^a.g`P]^IMMQNJOBmP[za\`ncS@gzF]YSlBF_`GZhFOCzJKgMQUILgNS{N`EZTZUT^VjTDKjWYCIPPitJtA?\fkiFh\d_Ge\XEwlb]SR>UWPXqqeMN^p^_^CUVJ`MLcG:IPnSEY4K`aiFNX^S^OjR\ORXfT9Pj_S\H^`W\]\^SWSUS;Pc]cFLRjQ?YTLJPmH=@\FTc]Z?}o\KbY[dNPAqYVRQSbM^ZH~HdRPCHhRgOqVH_R`ka\Taq_QGXGihdOhQYhZ]Q^>E_`>AKi[`VsjURTMeR`Lm^StSR[jcL]]j^`LIGS\YQXbS]VML^^_XKiYPWl]|pgXLU\UHaUz@NY8e8HZIg\EQVdW]NnSDOMWD[^Z]XRo_ERjOViO_UXfIlbKREScSm[N|TSINWZN`VdikIc`bE?KNox6\GU[J]kQXSM]E@TR^XhL[_WOn[ioCX^b\WWg]PjFX[>ebLB`S;^_^@>Ng@_UctheFOUpUC>EVPbjthVDWGEJ`dERnGMMncAXibaIR]rQrddN|Pg;i@ShaS[]O9[OF_YSGFDa?OzYOAhhMRKeuWXQdToTd;KWQYBMRU)[cJGRQbnXKRZYc=PEZ[[^WG\ZNNX^WS]ekRWLIJmZj:POp@B[GNZVLCujQWd_ZgI[kEEVfaNM]WXMlwYQjb`rCLL`e^TSjPY^Z\rEjCk^ci_PUQFM[TQKh^;OUARuMRV_ZgZXoUa]9kbIoKJpGYbILZ[SNODVJ\bemVV\eABiBy{U]uhReBImlBSHmCCVoML\QhcRTUdJQ_DV[OZfVBpjV>k[RuLtVJHK\va`aRSPTd\CdM=ccc>aEpiD_q^IjuKguT\b\[QJJmTcmEjVOWteATdRkZSc3^eZgwdpZYkNje_BXWP^fyTCdSUVQYWi^Zi{tyHT_mg]Zjmk`EPnNy\dIMVCdVG[g{c^llPb^tlFSZb_\QH]ghHGV^ZEWuMNZkPh?_S^<^URgxc[aXLyKeqS?hY`fySITcLDPrTXk[lYdT`si^gSV^]OgQlGVHaRfiGHbdhWXr;W]]UGNWEZLdddb_LJHeM@cD\ag\cdUh[iNSVgKPWE^UDScRlLkmW\_y|^M`jaL7lBS\SEXzUp`vOZlBXHT8[lWObi{~RhF^_EY[uzhIaKeDbL\[RVgFGPgZJ\]YS\]VoT;aTRqPUlnJ]r/cD[\lr[^bJVaYhoaaCY_YwMX_`[_YYSQfaK=7Xss[_w_SNI:`Zv5[ND:`_c[fVP>WEN=P_QUYbT^r\mREVhKUW`jdM`kEZKS9sUft6GP'QhO[WU[EtVwLg?fQf\jeQL^_EK>s@NMnQfiPmaMXhY_WVRNUxLSX>QfdGeId7MxgKCk\CShNhdFU],l?XXZK[gPWGWn4F^oA^UXU[fiIrcKTjjURUI_fQFSy@\eJBKXkX_[mCXLO^AEZXKb[x]C\XY`M_KFqgeQbCTS5=YncRcYiW=`Q_uwgKA`HsL0npLSQHoPcQD_N\mE|Mh\BhEuOaEOP\PWSZUUWSaeBvXYYLckLMaYX~Occ.cINO]O^GMdY[IJC`wQ_OiIe^LQSKqV[ZuXCSmY[IoLYTVUS@UhZXNWWakJVpzZRE\ZSH=bDQZhcVSAiWgkWYFWgm^OWVTKfiH9RQPM}]fdI~[XhUOYCR?jHCOTPqMH@3PPb@VZTnRV~NXGMPIOPbdSeX7]dCW~Z6s;ReV>4XGXUu_[LmWbf]MDfZThcXBJfm`5[LHGkT]AVXQbY\P]SIQELNtVnAXNBPPJ[TMcYPIYYIPM]XuSX:Pbxc}AZEWS[MZdUiRdKGVg_DeW^pqeXS]I`RtIVXMZdP`W>YYfTXdJkb`Mfc`JM_VYSG`Utdekc_L]RMb[Mg[XADuROdZWfmF~OF``RufFZm]Z]hRCZcx`X[Q]^_QlKN_KYLUCKU\RfRL_TuTJzRKPCQNc@^ReP]I`[SYlL\EiBI]kXXBQ\t`jSQN^oraMq[TZXTXWj[K][BH]N`ZWri;]YPK[[Rv\XSM[v\@glDS[P^GPi*NWUJYG\Off5\P[bWMZbl=jj;dISHiRWa[`HDHhZO]_=c@jYciSVe^`=khT=@\?`lpZGJ^e[uenWfRaYA`jUWUJ]cgHUjA^hHI]aK]_THnYUYm[]KsM[lN^SzSC}UEbH\M\YSZK]PlhIcUe[O_tWXUaSTctjbTIUqKR\XG@>HCU`fW`TYVohG_fPCQ_ac\iPUYQo8Rc^U\gZC>\ephbfeWc^;T[XWSCOtQoRlobRCRIKHFYXMgO_l[zBH?c9YlY@W4`aQWRWaEOVHArWUXSRwEQiEESc`YW^nbZOgGEhU~LaYQgKUYMclkTUPnf\KFIYs]fYUb?WKhFKFtWYpDI`SYLU\j;4NZfbS_f]lmInXYPVc[CbY\U^[LYbMHCOObddyQSSDLUEPgmZgveSQbUi`eaY(L>V_`L`NS@YOETDQDgaUIfKXN\`PJl\ZPJMS]SY_F[EaXVeXWYPrgTfXjpZQwiaYZQH\OsHKkNcEohUg^eLTaBqVSYhr\]PTPUUOD[NvIBa_gkyb]U^Z[]a^gDk`MG[VIW[xbOUmPYdPfFlfDYHla\iPZnag8t@YWhgA^v}UIPQKc[D[VdVb^gd[TMPrkR[\cSWQHOZKKDc{PuTRKCwHPWl`]OnogR][marj\eplYbSDCFRV^YlIDF}iJliO_S`IS;XTQoMa5i^MioSIlRn_\YRoqJW[LNKlZbzTaSVuV9d[afo>dbKF[>L>YjIQjin`@dA]STdKKsN^NXf]8erIFN\`CZhXKDMTL_~HJ[oOUWeMIGhTi_cmWJSOZE>MU^IOaAODS_fUXqBTxfKhE\@YN]TXn`^XdTfRQoWJWoLmFj`Oac_O:\QZQN_D[_JbSeoWB\EeX_NbTVHBfURjlCEMoN\[p`ih]F]cFjXhNJLRQVYP]TYLZeP^N^`LYH`QG`6CXLHB|maRGqf[QV]IVvH?N=5N_[I`W`DWZXEnInblorX\`I^b\eeXVYH[SddXhZX_i2uLs^fQiRQD\nPLb]ffvaN6sWHc_W7jYoAyWwJYc_Amo\SXVsTvx?U~K5C`_a[WlajNH2~\Q4y_[SDTJTIINxQHDRiampILS}rUQbYUthcQiIrcFEW`_KcfMrQ`baLEuVO\gOL6YS/VUq;`S\jcYXIbcQ]REXfZXVj]5aeGUj^giFG_=\TU@hu_\iQGLd@cDxCBdUiLbV`gRN_SlioEYd:[\mT`R\bd]NFNcT_GV`>P`e`TlZULa[iM[WP@H`fQYGIYWK[5D]\OLYT_TPYIiFW`c]RLlYf]lXFPJJVLSQ~jZASANPQ;neRgzuhECQVUNc^gNrEgIOfVSXXVNbddovLSJWXgRXPMYDP\]`MV@deEAPMcQ]JOSggLKLUYPFIq;eYfJJn`VMR8cIzSUZVef|UJaXOlS\_J\]YpaQQ[dcTcg`TdB[gSrgUKnjAsVaDK]`M[c[TMbRg}[KkXDdHV\GScZXdWZGT|\Ud[Koza^RBJJbKc^JOd^waB]Yj|TNJY^MWBRT\TV`jJS]NLkYTWWl\xWQgW[Q`^XZpLb\PSWF`WTUFL]L^zHBriiPVKRQ5HSYaAj^FWXQd;XljVhRgXcZYX\IAW\ib[C[>M[^h_N8XhX\LlYWh@mJmgcGSbZ\MnTYc\LgqP4CX=\X\f`VcRZQk\v[PH[scQ[\ddj^PURqVQP];\VNRcSd\qt]_ZSgd`BAXdumU`cocUlyTbLbeej@]ZX;GeaAzXNUV]sWPTNh4xVcm^PSSX]lX`QJISvQZPNQHOa=F`fWbaeWXm[lsOVt^\RrOILhS]QSeOd@IpS\Q]?UnEYRHDXTRfSpdfMbfERdmTUJg`bmL^PYUSVXdSvZ`92GfdX/dcOZm`ZRyIPWoHXXC\QyX9mfI[Uc:xZWU}[ZM`_U_^Vncj\[c`oMX]`WPgxqmoGORUM[\biG=WFXYriSRFWh`YOex_QOczVY\_e@IdPpcVWAfH\Z9eKPbHA_YQ]mk\`Z^Qce\oTMWp]csMU`IRwSV\>]ZuKORVfrOngMYVCZaZoncP\EhohZ`rFUMsTSRWnRmfJYORZvbhWZ7JYISTVQr[IafhR^XKKg9AYb`JweVESRLJoqYGUHQ?e8^LbU^WNTTN^Tu5SbMe^TsH]faC_MNYcVVWecKbTWYPh]DQLfI`bcTJWNQn]RWdGdKZ\YT[HUVPWMdS[tjbWEf<]uJDU`N@O]_Ifd^EaSm^^`AOPidmVZ?X]FZNONTdqf`Mr_QES^d_\L[iPHV\dXqtDOxgiweXcTKP^FI|LbQ\QR;KRQRNXaAaa_IrE^`[gOYkfOSJSvXTeJNL_[]^UYQHW_JWMO_?R[siUp7h@WMUDIbl\Th[Ey]YHaFjE^gXlR[Eb@FiXY^]Y\CGjdL\SmBoL[RUF8OOKUbINXeM[VZ_on^{bmW]bacUyOmNQYd^HJiWMZQ_C[U_eO]NdG^TonEIqRS4Yk:b]]PdVYZ^MWJqN}[`kHXfVWcOYdUYrE>fhU]\aR\FPeM]XQMc@N[X\`Wt[RUe[Y[hUR\HiNm>FgU>DbQ_[WNbmlStebiMPNOKDVCK`JtWVLnJTKdZlE^JVtYRQ]LYWZ]^`8USdaCWZBs\^HO\\M\VM\MbQXOe`hm\UkbV~;<]|U]XeSOJIFTO]fd]WVpDTZ`mMMZNsMWUp]YkRWTE[N{cg2^XfnK}9ZfSHJclco>wiDY`SYbSdfVUpV9lfcR\}M~VOXPW\G]eQX\dmYW^@._a7Ybl[OrX[]Jhm{MeXGz`aHLPo7OM_FS\QZUyXS\Ly^UYZUGQ`l0qZaXQ\^YQYRNfWNJRJmSEeXAAmX`\]Nvh\5HQEBUJTB`_VJH\ZUEi_bL[eZk_Fc>`SWkYfG^ZPTSY9RTWyb[TkXZ[;uXZQpnWcWlLhk`OSNC`DJ2d^cJaH_HH_LSvHf\XmEPNfVKI_Vj]bTsEkw\ll]@W[^6Pq]OMT[;]]d^X>SJCZ6UGDcAlSf]RFa_MeQc[JPZJOdQ4[OPNPUh;psgRaFRO@@MTaIPM{]XNR_J6\PVcBd`WRO`YRHLYfaVbIfLNQU`LYfdcObUXgHY_`GG1]ZPAWURP[]dP\MP@KQR?fOfShR[LMdfSJOPBLS{EBu5AlcTlewFvfPSN^?F[HP2ARbfE\FYenyBDiU^bMH[];bm_xRUqRoa]o]eGJ?V`\N[\Emenj_7SES\QNOos\Z?\WsfNFePOPd?IWVsfkddSdjgyf`ajxVpdLjq\?OXUevilYGXHmLVaDZ\aBRimJY]J[aMfkWdY`Kvd?HVlDj]`7bRJ`S]GQSKa_rffcOKdOeBTOdfShM?kbCVgbVPhRGWSlTFfzXUT?iPzXQQ`@G\9kNdMDKc\]VLAZPXWbW^u5eYU]V?ZjRPW@WQohj9PZJcc]igaPZnBadKdgDTZUFsa=n1I[_Fkc5S}iZTDSHMirNgO]spprDLl`VTfbH1hdLeDN6BkbUaiFD_EZoc^MlRTdbkn>dXaGFa]TBUYhVGTNNRLGp6HYVN>tTH^fijT`Y=bi`U\[eFQk\gP_cSrNHnn|\^K7ZRb;NvRQSdLh]aLaofRSUIPGAIoG?T^OB]`idWL-MSXFr[YdtWwMJH>PJPt\bTGlfXYJ\KLbOszLAWHYN`pZIK@da]RfsUdQQR=I{1W{GgJF=VQUYXnaVYiXlYX`_[am2SL\ETSW^alVVHI]Q[[GlPdwUNYBUUXE^efU\ZH]igWXucS3XP]\bT_ab[WJPJaUFPQbZNgQUJQQrYtX^MTpvKQKYbd[lJhwGVX`TTVeSQegQIRHlURpURZs^tZHzW]JpljW^m^Vj[p^CmPnYXdG^DXRAla]M]u]pTYN[JSNZX\J]k`9\UzTT[CXCMAmdDeWzhChFJaRpXb*XKVUq{dQNga?L=FOPaFkOr[jjxiln6gX`2_S?IaNe]E3Q8sf_O_aHaicfQX^cMo`WHGXGEjaxaMv}dHhpdVfR>p]Z`[OO]FiVMsBNZTYU_dYYd\^QifHM]LHheJRZkU@WjjiUbnu6YwvITka[`jcYRn]NoJUg]H0hZXqQCqKTVXD_{G\[CaEV}ynFOToPUQO`Wc`dfjbYRF:]QRXQKiDaVH`GGS[WpY[SWYLo]PNUndOQ`]::Sgi\YMZl[Y^bdRV[\gaKSIqYQKPglWbK_X?lRy[r\lKkkFRPhFCQIW_p\eHPYNY`PnZV_V^LeLT[F|hijsVKyKYTiGTFmGv^bMVW[^HG1^W?muSOWzKIuLh\@Qc>`lURQhQaVSJ]VufPmi^IKeLWUUXm[[VUNPQOGYf_\dTf?{VanUTpU[OOGSI_VHAJkYQZSWG`DcHXmxQ_UxQBp^?WU^^^rjzUPX`xiaONrLLI[L:dLnG^vODinxGYQRENGbNUshULhxaOgYrTeFPZYQJ;_RR=VdSPZVHc:d\KLcJEH\dmd@_M_vOT[URUO~WYLv,QHbTkwJG\RUXVGD`Y>tYUZMSN]`V`PI\U]L8UGdN_LGSRVU]Nb^Kc]lUZ^dgL@M~bUaMVD_QZOGut]hkTYaIKYiRfdnibCkZZV`RjCtWVMQV\Zdm?SEUcaaVN]]VhrF^\SVMgfP^FqLYFRyaZc]FnnL\WR_Z[A[^V_OFvQ_KufYD[>RL[w^A?BpeTTf\TYWX:O^?PaLf]i[SW]WrFhZSdT?CqROVTMVSWU]PS:YIV\bR[HghuRRP][Ax_gIdXX\X[`M[[JPJvBxKIj}I[M}\Xgmbg{ViXiT_Z\URJET\JmTZ\oXUcY_IVcaXY=ZdVRVf^^P^VQSXrSffIWSXGOrRKOTQOdHKVZ`zdgNBlmLOhTW`faV_RXaPOKhX[SagHdWpNQGQa]^TBceV]NRPF]ufP\ZVRP]WQMV^ZxkhdfRSeo_JSRg_b|^QvJm[CiiUVh8Mn9iWAnkuQ_TRaV_as_`e{]IPQTieW@YqGU[KX~OQsBP`DTHPXK]d[3UWVNVefZ@EZheZA@GMa@KM^UX`?Lqi\a\aK]VnJBJNPcgrcH^NPJ7PV]nRJIRXSdHeS[L^gW`R]`KOOZgpyOYat]WXW>Z\8kO?r]lLFdxYYbXdSINg_U]tFv[_C_UY\DKiWLOlSWYZ4WcYNiKPPK[X?YLTUO_iac]s=Ie\dWZdQhqE}AOoCJLVhlKUNR]TqTWQQH<[^DeMSRc_MV^>\@mSRy\_XX?qBGYVyIqWS]Hg9WS\UWOWMPc\iQTXDxT[lKmqp_]AkLEbQHrRZ[bMUX\EoiSjVS[Pa_HjHaHWM]IvTfXhc\SRXi?Nf_YgT=jH\]azTxhS>VghKVw_XcTLMMU5cLX\]}[]MbNJYwQRO`nfQaV]HLYIbPRLlKblld_]VX>Xs]ZSYemci@vXN\aZ:BOlQTgVfMblXPVZXWuFCnOs_F`UlY@H]elZ]VPbedMG\kVv]i`TRSKAlRm[cD][lIhSKs?HH`V?`CT`HOJmae[`fsFPNRstKThKa\1O][_O`SnvoeraWbMiaF[s8^Vm;SZi^eyKEX_MTKdCxbCiwm[VV`\jEUcEQaQ^XZLbf:\hr\PY[xTxSS2P,T9BifTZNGNIPRREPF9baZ~yhmOsL_XPUJmo^IG4OXnS^LTZemjHXlz>rE9KXOfgEnMC>PL\CIRV?NED[Rhj_oN\:bHQ]NaeQ[d\]?]`bN_RPTo\Aem6FbuQV9VTEU\ENQ]UBg^ck[NWZeiOZR}VeP<>PMUPR7Rw\SqDSdKPveV]TD`iOrQi__XPFK8aio0S}_?pS@LKR[laMW_b:ae\DSCdi~ZTR[DJpbkhx3OMJVRI]jlcP\IMWFg[\UU]HrUV\MMb\aKwQ[PV_OQUXQ\]AGj\F[tOjb`p@CLP^KSMNdLSNkVI]FRPJfMb`YtZ]hWNItcQEJW[JXvhSjec6PYZ[2^[mWTM_NeEfJWb[|II`sSUnRHZ^fv]h_`QYR]@JN^Pm^\\UKQX`MYb>BJ\YO^gWWOMRT]ajfK^gTSoXePJ_O\WXQ;qXZSXn}L=dKSKBUBPZptjUubK^hLTRl[]dTcjjl[eWlaSZjdRXMdmZeaOUpQ^hjeYaZOdb^XYc]cQ\j;\]beZMwodcab^OUGr_iW`vOWckUvM`bQ]Xde^bTOaNeZJZKNOL[[ZXZQGeFG_PbiUKciPVW[qfHLSMh]sXAKg^J]qJYOZX^L?gykFFNL=TfBI[aW[KaHFgSgY}K9_=_akWXQ^I]eZd|f`j]WcdHQRMXeRg]bIQiVXr_QO_JWLHHT^blhkNc`JYXTlMTWjaZbRN^TJXI[_aTRMam9TpWJN[WWi]`MIYI[^=Vl6JfdNmXiI\U`NB[fOYiU=\FweS^U^Ab`OXv`W?TklATLVNTVRVPSZoJi6\OjP^MBOqo\R[JqwZXP^\ZfU=UXs[o[YrJrYm^qQRlFiUhm[D8S]IWASfW`bwpWbXVhCOKSY^iL\TAk[pUEeRcSd_[qY[]KKlOkjiORU\FfX_kcseWOAgHSGiYSWrAcc^LJUr\hVQmMWRVdTX;ZRZiO_`[ZkiM\I\\^cpYPOrIVI[RZxklQUR]ZjXSRiKiMW_TNNTI^]tXSeT[I_\jVm^`LTVeKUYDWeqgjS|Hv`_`XfJnjS`TM@\ObbT\YrkLbP]HhQf\S[[[XNhkXHQkWJN_hJeG[UZMRZS[LSM_RZKpXt`s^iPHPM^LTCggTlRbvWWIqHkNPjXgS^Tuxn=XYiRPPOmlXY\gVcjPsdRlEM|gXdaSibjiZURYYm^`YVaZZ_BPgVW[QpRQ`W]LeZZfZY^Lh_S\oLd]mZiSKXh\DyZ]aY]QYeimbmO]eS[WhaTXX\_TdWP`cdeXIsOP_h_QRUPDNXWObZ:[`mFThTW^eD\KddVcUU\Z_Y`rQosdmHU`dzCo:wQAEgKOgT=cRi`M^d]PTO_xCaU]deUhsmSWRAUCNCJNG;MK@\ObFfHDXNdYmYm`WJfhZUBOYXZO^]wPii=^bGIDUhaXqKTTKegkbZBQO@Vec;URr[MTYUM@`wYD_SGknUQ]Q`KeS>RMT?aQWbiQSSjQYFSNYZrwVhcXPgq`T`NccML[K_^HQRcpXUPM\lbQm[[`eYF`hhSTO`ibYkLW^aI^VBR^vQ[RTRYJX[\IaiInbOPnZUKhGh_U}XM_sUhQSD`t`[_WQ_]\leSl^rV`efWcLWeEXOILeTOC;`hw{fcVbZDDicGcq\qW[jMWnQYMISdTgPhOK[OjQbeRMT[VNQ`XbVTXQYkVhmRLG]N|WNbbfz;eX_MxNfn@^RZVTDRYfZ^^AsuXk@KUfUMFdRBWWGZOSOWK^ImVZ]UWmYeaaZUj`eHXDi_Hk]XrNNTTX_MN`afe_W\R|UVVbWlOgWiXN^YHKcbjccwleb]WG^m^^qwPVbNULcR[\MlkVSVEZ[QaLoktZB^nT]t]kU:FQE[K{_]PFfk^SVgRH9Y`IXfQ\TXO{UKZ^VSVdaQJ\^QSYXL6]ZFSEGG9Q][TEP8[N{bilY_>]v6Ri^ktXjM_jOL`tZE:bW|RNVOQRSfIE_N^OZWPNVv\FGf=0PPa`^`JaDyfhZMIQ>Ph]Rg`BHr8H=H`k@\BkDJnbWSva8`ng^DcESNEJqGc8qNaTIEZn`yWObeYMRSJNuMMBR<:kPEKXQ OAjbMUd?RR^XDN{[ZNNYQYMdaKXmU}=_^hJRrqDSVOFm-mXN{ReDAB@ReCpLIWi>eG^C^wnV]`]R>lT>PcRBID^5A1=aFRecInKpQhi?PW]N|X_|Lx^i@zym<_T\NOQ[[Oo]mFjqXujbHbL`AglZkq`wfU1ba]AXWpd`[iWbWHWVOZl^oIrNSF7ZZnmPShO_dVcoMXqSMYQgU`_vPVhXpoSDT_BMl9Oabh_aUqkDcoT]][VQFp_hLU%W?bXJV^hX_ScdfUQf\_ch]idWcYZY[c_SMi`YT9[Q[DZCuU^[EIaY^AY/^`SJYhO[VY\VGQ\ORNSd`]^l]cYVd[[STclTKOaISP_U\W@SYRE:TDkREP_vXAL`ZX]cjg_Q_XN^Q_S]LEPAUDZeI`KeesW[RMOh~_SLHOUjbW\{i_O@YTPQdIJieYW\a]o[oikDYNRIJ_lLNKVQMiMMrV~]^C_VoZUtTH9UfIiSEXKUjtHiHU`NcND^pY]QylENbMT^OGMRQWNrWiRR/ZMIUb]`mJQVdb[j`aN[hiL_xM^yeHONNHRfhMWKYXOR\s[WHYYbEiPWS=`eW5RS^M_cZTPh\_VOKcDGhxpgGhhhVfWUWaeEs[o[cckgFCi_MclyHRree`PU.T@^ZRVNW]nO]gUmi`qV^>nQ[It^dXs[ZiUCe{]~\vHLuh@ZYinZGMRVUoLFZp\\?TpyaXXe9PeaR^HccBPHbrPIaNHc`flWCEUOb^HEfVXdGm^mBQZ|SWLYuos[XdL`cUAUb|iTDF]ZJ\D;Ds^WidTZMxnP\r[p,?_lb4dF[lPKlwl[WdWiKb\ahOTSM_MyMXPz_eNRR_Q^d]g[XNNIRFR{vipCVDR`e[UmkqdgVilNVRg\|hbNZBf\nbbj\AeWU1DblE`T5URPFcDRYN@jY-ERYaPO`acR](XWPWHOa]Wmh)W`fa\q;KfibRqPE4TN*LDMJm[_ULvnY[?O=hu`jotDCIC@GUFEK\X5WVbZPL^LR>Z]k[aJZVYWYhL1LihLI\KjStD^NpJ^U;NULMXJdqphQeShG?Y\k]GPh]iKr`OSg\GYd[ZR[JQzQOl\N[iINvv@\irfm[FwdWmcRegQdKWWOJdN`aHPHr]OUpw[\RMLNcyY7V\gql]hiWifS`\\[LPZK:]UW__PWPmPXlV[MxZYPWEaCMSqw\RgSYflNoaI[ZMcTl`R`TYYWhYf^kXXnZkQ`]_ohWKLYOIA_?`[dR\d?fYSq@_uUZpVcJNe:NPA\c_;YSaceIQUEobnDPY^TV]>Pn?vGTUTD7SFAV[efSPgRmb\mXkQJpFubjJX~`JJYkDOq|gZRVZM^[POCazhOWPa@YKn\POeo`Xj_bn|jhHFzTVnRETTMV;ZxHd`nzIpqTNUNrH]P[UXhXeGHlKlEAaMUH\]N>]b\GWXjXNRZUjtYzRMCd>OS`kbR_qEWSngoZO`QMSA_}dHe7gmnMNGP[mskQEto_YiMg[PW]rDbn[dR[|WW_RbrZS|NWgacowoPSW>cD`fXNaJSVTKMac_Zhgf]Te^j^`Oc_oNU]NQFQtXVRPV[W[DVZObIRm[GN_LrQMtNPYgkFa[QjMQKIXdeRQvJHool\\`WeJWQJ_UTEE_]ISTpbYv`RdmrTcF`bRLMXb}M~LTWWmJGFW=d_VY\eAUo]E`r`^\[[wTF`X[QUDIUHoC_EhUFYD]aThZlYMRSMPhbeOWuV[STwUOpVnOfP\cRXT\Y\XjYdN;[rJOHVbGJUQZ\_\Y]YCWdP`C\UHWF]^FSJ_ORnUv`Ad[SXUUS^TV_ULYTRNUIM^@NSX>MILXT^hXK~UZGQXmkQ^I]C[BcWMQbX\WXbFZY`SiMAY\]VQPP}Q1V_gM2kcJUSQQbcAYhRfHrOoajgQJ@@VwXLadRYgTR^qvH_I[AMX\MNPK_}ZZU^HJ_YTT^_OIPnzCNTXHZftR^kQI\``JlkeyB[PPDSOXP\JOn6VKUHOWROSWGWSKQfMaXjMGVX;n|hpPyjT`|OL\g[[[SSNSWjXUmeWMXxlkLQNZdCKhbaUE}VWe;iVk\kSZJW\aUKC^VZMhS`l^`WeiLOPQd>]RXZ^NyWYRYC]?VYRKXVR[AU]aUQS[YQUTW]eJeeUj`IG`XLHN]XqUVWp]YkULVRVJZkfPOS]j{PgcW}X^WcFhMOYYoRTa[qqM[Y`^muJaNPWPi[`O`LjdKWhRS_wmGNIR?K`en\[RZ^PkSUYWjd`[lfUNGS\_[SAYQPYr`FP[JS|UPE[NcZ\WiAjnKTSLNXiOjHrZRckfTYcT\^G^RPPG\uL[jWZ?=_`mpdV:TNSMZX\WNGOSI]XVa?\cSYCaYYkEe`RUkSbSMH`FYtMf^f@6WBI_gTNm_AXYao=qrEE^QY`cfcjgOb[lWpe_IX`RkXOUIHKKgtV[dPbLd^R]NNMQcVOX`SkHPVZmHNYWVHPp_cdfYi^RLWeZYc`TdQQU2bE\IYZGg[WtJdSkMVWZE`YQRW[ZfUTjIWKSP^QMW`sflmLIBRdK7\m_Q6SNSCHnZSBH]WIkjDO3@SRbanW_DYfJ[;oAKEUiTf8oMaNPcjIAGln]NEGUw^e]E<[S[CL9ZN?LgF_I_[ZOZKTt@mVqlZsLXIgTAeFEJWKDZQ]eQ:CUjRVc\LsQ\U^g?dGRdN\NrQUHWsRYkV=`uHXVZDXJDVN_@fkLWL[XZTjiDJcO[VQPFaPTUQ@YH\kYK\QViUQMagUMP7p|jg]NMTUmGg^_YhkrYVU>TEJR][L]BjK]E2UM@mggJMcBFI`SP`SdeEUcEVY@W^]=ThgT^WXcBcKd[UO3AG/ZTZWvTXGzrlCVcMQPVRPY\RMP/xJHcB8^dHD>RBLeBWcgF^R@bM7YIS[ZZ`RipcFxppfY^RJ]xw>j{DIktUpQcJpOOl]qOMO]XgBuSJ_UFGOvhn[gCdbUKR\WUcJAQLqxR\XNfQLcZ`OLB[oij=\qNWMcTVXdTiZDibJC`pPcnMw8KMb}]CUGKMMJp|UNEGYjm@\a^QE\tbnbK[NVGaRdO~SjgRPXcjPn`[jcRVyZ]heUSgPQQZS^]B]ciiJTIWdXWXYeQ__ERdnEX[tSZMbsJqdPX\FV\_YQ`EU`iRlI\]UePG^Ru_`IOXoa[^VZbPH]RQNW`[PSVYsVOHZQbx|JXMgTPQ`MN`JF^ELS]d\OWi_MWfVHL>X_KOPYa\RM\V^WOGSZmhW`GGRY^UJb\J`USehQU^CWXY`Iep\fgfEO_aQLalXp\dNNVHJM`Q]IScWNf8WhFhiFVUcENMiUNnmDQaoENQiC_foQNHi\EaesRfzQOul\RQfW_VL9k_SJ^d[PVRcRHYXSdMQGV[FGFv^EaVtKkaLe>JRNIGkjV{RQZ]xFNJNKYs`rxbQKFgSq_UP_PlAZfPN.aSY>\\HAFleT]C^mP`cQIJnIUDXNl^gYb[Ke\Hi>mcGZGXBW]:`WGcRQTJO_WJMWCbUX^f`]LsKAX`ecInUK/bor1iZeh[ZTKYtOI^[mM^`SZTXSW]HUVFxl[cZBe[SdZVRVG[NiUld_GG^EwD[aOtLcdTLpWVdKepKWof[jMMHzINW[Mn^QL\EHXFdg\IXe`oaXnV]Z[LI_lROsYMSPR]cfF^eGhU?[Q]l^ISlVAQG7lbXmHgm^aubsli}JR?gJXS>DieOOjnXBCZS~WrVrUUV^`qOLASd^PGZh{q]n`IcL_p]VJxZL]Xiw]xPh[nagT[XpkNaLHVg`fTS_er_J-hghMtWzb_lZIQhvYHFgi^SK`VgfcSia2aMqnR}`PYVbbTva`aDIlUTXkrLKSUGatL^oe`ggRFoWQg=b`_PJdRf\^XZL`U\\jH`QObHITzkP]UbbZie[XXY\]hljoRffjQGfDZY\iVHsWZS_mRfQEmVu_onnlWspsq]d=XknKOdfRKO]Z@iq^CcLSZq[[^A_>n[SQQqHKM`F3yUv?qLCSlXS~WOO`hGYFRgJL[OnP'\=Rxo{KrlRQQTUQkDYX[gTbIbLA]XSKhyYTXRMSUOUR[NgfDySv>TWz[0oHNY]QUaHNT\WFOw|ibWjELgY7BlU``MZTg]OPc]>XkV]QWFVc]^bJDvNZKJpMECiW_gL`_:jbkJ>^ktRTf^U\aJOgYS:W[WXnGU~_SREh_RdJKZ_jk\LfUjFKmHMW]qWjYf:JFVwMFUPK_^`\N^T[UQEQib`^@_nUftKniZXlhSp\R]Oaf}bGKPPYT^t\XSAM?B>DtOUeIUN_kO{L[^S^cb=Jk`kVrBzOPfTb[WcekEBONd=PaZ\XJOr<`T\A;`UZPog`\c)QKgPTYBa~;c_MwWfcORjLm^YUiS;|XYQM[YV\Md[@pOQNmP_Sp\hcgZSWUVxlMqB[`eRUCkQ3iI`^LbRPKiFQG;T]CUgU[NXUVcQ_rk]TYA8i`eLUkRA]nDSZA>[`_]FNZjCUi]^`EPXFCX^SRXR}jXVb@][LcQQ@\^ST]ewKjXJx_^UNcNQ^P_b\3\\_\Xhr\AxWRIkqjekWI\g9ZM[Rh[Ggcn_@bnW]dSQGQc\hdVqHMPNPMYUkNd`jXZrAS{V`JGnV}_fhYqSiBlh[]OkZrUHhcKAUfXYdC\OchIWxE_RNfNVXKabaWiAGSIZ{^`[ZQWbRh0WrnkaS]JiY^T_atFoaaRZpdD>KiV\IfX`mgpjS]U[`W_Ee`@RaX_MG^bo`MLABp_QVrIAcn^^WoF\bUUZz|SaSJ]TcCj3c^HtWX^kZgSakgyPZHoOMu\K[\^o@IS7JZRYUWO@leeXUJJGDn=NubpqcLV@7`=sQ6MkXAXopgxV^N_fUeMKoeXXCdNy\VVihTAJKWFY\Mfas]{TUQYiZZNAtd=9VVG^W^SZ_B;LhI[ENVxdsnUUFIgWPXDg>N[Y/bUiEbvUVAgW[ONZhRJ`WVQYWchN[kRZWQofDaQaogO>LKWXJcP]I}`wG]XkcCGXSZQa`^FKkWY^QWfMRY_NGLh[gcWMUGD^VI^R_Nw`mJW_WY:LV[ZEGL^iS]UB\\OTXrDNqUWRaNcM8YV=KISHCvbLh8obXK[fmwXOMUQ|K\W_RJQSWHCdZTgn]IbW[\Z]VaUK\fgQIVOOrtyXGdHkNydPlE@VTUW?T\u]UL[^mFJAUX_laRQL^GiG]R[YVo;\ZZPaFRLN{oN}dk^b`biNOVRRac^`[b>j^YMO^hW9gM[_Qd:_CfX[Wh_SY<^^@kZC\USZOQ9c\`eK]`XO\_QiS}bA]DS\`JQcHGj>fLBf\YLQ\fcB[cLTWMZ7PLoCQ_cPL_fI`[`re^JUL_rhU`U_PLP^e\LLPdppS`BGp9VZaSXKo`gSeGG]^^WfBVP\ZTY@J[M?p_kRNF6LUGZ_NbAHR\nP;NJ\`R_HTqVdW{]F7N5I[R\GmFcfIR[P]xdMSRgfgUU[>]^`_[VW^XJTVYUPNHZYZNFMXdJigP~Z:xPNbPDT^eWVXTGl\dehkTbJJVQPEn`WUcQmS]MRuZAhJ[T=V\GUymZgLfeUZDbjkgYhZpz]ecTj`YP]UIUkLW1_lIt+v_ieOhRfd\]cQ[GQPYXNZ^SX^cUTAicTa:eAS^gZa`QfZUS^]XJSgX^_]UgbY3lulPKeZTWgRQTUWWZ_brQP[L`YJOMrQL`XW[rVSEclt7gSWQ`P]lQYRmoUHXCdfIYGs]LJj[[gIbJZfRhGTQbBQhWP^e`UXTZQ;FUNHyVLtYaEPA8PLWdSqD;V\^p^BIUQ\ZZIWVOM_dpZLAaEhEpUkbWToTWQDJLLKW]TZsDQ[UIUxx\flnaV\eS?b=JaTTNbCWcIVVEPYv_KeNjTE[\Xilb]M[LV\gGc6OTc~Nf^MQV[DSdbU]gpYSS[I\QaeM\hQS[bYab]=aCYWZOC]me\sM[cNjZb6Tg\|iNVOPlmDZWYG\^uVLlR^W_LYiZVli:u_UYfWTr>`n]CMxEFpMSXeNRe_YYK]MNGHIpSbWAe^eVOh`9cVcH?Q3VQIYdtfVLVX^[aXS\LY?SKdMJUJJJU]W]hlRV0^PblUX^RtX4d4ltTm5XI]\[RQEfe[T]kEHTwIMf;8TMuRQGZ\CK_WZ?Y[a\XRHl`PIHQNVGYfMJRNhboLYY[cW_LtUkgIUNWJ]KBIaP]VEfs1DSUdu}QFQGVaXQ\>\d[HOkHns_OYLkYs`YehQHX``K`cLQ]VrdSX`S^`VbGbMSibZKg^J`]Y?OMZ5}\^UkHnY^jMSLUFhXalhJ`MJD[\YTYzKJ[]WfQV^SYU^adkZj^`ILTUHWOsESEb]VX\ceO]KLTdbMOFX>d_LJwU`fUjUXcAcx[hTVRTPkiUfmQSuPjhXaOVO^WVq_Y_}MM`fIgoiPO_CSKQHQ?a_dXao]_U[r[STgFTbW^^VXVfZAYXWzO`VcKaZTQMekKV_SMbZ[PdLYUfVUhs^MT`^[SZV]]NTYy[WjYR\\ZTjTX[dfi\KYIi1W^IPZcGZcSOTYVfOoXLSkMXR]fuTRpQVYiXJiJAPWeRooabaMQLLbPnY^__rHYUT[VNMMQDJNXGVPXQV^SBjYJCFMQIVS\WOcaKXGWA[IpK=\NFb`gV\[HI[XdUrsjWWLpTMQlfkwVOjMdKhujMnjbJPScWlQTnaTpPD;`YOiN[gcZcQ\s\UC@JTDTZDcApfo?mQXWXFHosWS\RWSML[{hHZlL[bO_\VWYY\oeCdiX[hcVlJ?I~CZ\pi]MPVox\OTWQehfcRosYTM_YRMIUTK@LtpOoMN^\K[n`XgCHM<\P(Q;hHOR[aZJ^oQ`YM3MN8{[BWFk{V]lrqQK_:W^V^YG^dEY:AaTraaCktp]Tl_K_V\PoRRTRUoLTMeNUOi`UjW`QQr>[bcVvPUPFx\gD^]SQUWPFbWVSUg[Vm`DaGKTWlJRZNr[GJeGiESMiUUY[t\=DbsSN^Pmz[fN^IuYNVX]GCQ[8kNROPgl\vfh}adTWMcXC7Rm[[B9QLXXGKcINjFVaNcWPd_SK2aCStzAkeUPG_UVDkS[TcrcSKUWg\`WQsSRKWBm}LRSBaXI\hEwarSWNUeaG?Ph^tDM]TV]LYQnwTbjfKScnV]jFNeFTJNSQAH?FFdLTbGUbHrD^ovUUR`gQLL=Q@PUq@}KOcFHQVXmkZHWgS`O;;P]Z[OBbDXjoOIkwijKF]PcndEOjWZeZjNfV]wX=G`peDQOZW]d_@Yhb`hcPRTckiGWMRriXAvjXmh`B6WHibdP7UK[fKVTVTXgRSYYFcdANSWg8ijQvSj_TXZdZ|}@P[ZNMFQ^gV[fBJIRUf^Y>MT^QP\ZRvVIoYdWpezvVMHUUAWY\Y]NHRd]CCKik_oGpI;7QSbUeVPOFZ_P]QmNTn~KhYXXTSp`hht^aqeBSPi>XS[FAOjNQvOfXFOU_PTimfrWPZLJksOseNl9OZKZqTStLXjYSj[VFn^Y^YH_fATbLRuXoSGiF]TVVSLZnXrShWiX[`VkXUbUOwbfWnHSOKYJlXU]RRM[[}\flabRa]skYU`PlEDAEVSYZUee?kIKrYYNac]7=ODbZTUkTc\tRTJZQ]dQ@^CCcVzhR^ZQyKgMfK_LdHy|WPAfXJBHlwfu:[)_`gRgVhePPCNZd]xU;PfHNT^UcbWbinbSm?VhQWB_YEgUKYdJEgJ]Ut8SJP^VZ^O@5TUQ_jbacAF^SxGKk[boBeNpOCUQR\aZ_P``m]na[PQ]zBu8KIesD`NiPZMLQ\FS]_@pOXLQ]ZP\RUTTKP]^H]ZRgBP`]q_vg\>NGDXbILR?nVHdWgd[FPXTSF;q]qJItUmOQLbJU]m1?FJ9cS\]ckbP]bZJfghYZVoZWlSTe`yOTtXgJigFUahWE^U^H`8BCxWxW8ibOp\ibsH`[aNMV8Vh[LdK`aMQcXWQa[e\eUX[KElyZ_WVTWTMBCYWJXOZF`o\Sr[RPXhJo@NWGL^`jjRmjDbHntfQKjP~NIRyCv^FJG]WfiKl^UfQ^IE[p^gXfUNVuGVXXMa_b]\VXK`GTHgV`umHEC\Ej]i}IaXARP\RgN\sRFZgELhGjlZZgTSFXmNZHQgcG]U`ZWfbyCo\u\_\eTENRP[\PbYrRmH`i_GHk`WZMKvE[|q\p`OeZHTU_Y_oSptpdXkv^OJk\UQ^6S]ZPOdkmrbQU\kU`fs`oUcV`U]]M`acOZNiaNS_QHASsIFaXkbEn\|Xe=ke]FYFYlP]aHGKOgT]NQZZ[UWM_Dd`TDv_\\`R\ZdYcRQd;W:alS_PoYycZd~dMDXelJVR{r_[XRLkvTSQfSW`W_dRecbI^]YE'\nUoXEJfIIhbBUS0fMzVW[[rHYAQN1r[sQ{SbTwiOGVbSM\=\rYRZfcavQ^[ee:J`naZLXh\ZwNWQiwPfNY\LVVKI_^6JnINPDBLYX[i:cUaaAWZK3MS\kWV;PaTiQMXU:JgPil^I]rFi\JnX_KRaRUPHFc\:T_`HeMe[gq9M-TEOO>CefWjrA\IkVIE34KQWF>nCEU^VEOQS@ORftZccTTTdSRFmf^h\a]qIEPXmHrLN@EUifHNhN[_`4=bbJmmZOt_SD_VZe\R?UTD]kTR[dmRzXjTLUAxMZpojJTaVUd_bjFYPptva]_NhOtK__atWmPkW:H[X_uueXkSeb[ecr_[]TgJg]TN[AXbibbyNPRVaBeQNHWkvMLTZDQERreRR`t^XgKWO_I^UdQU[[fjfDXeNeJ\CWHCUfZcEcIV^rUjSguhA9SfZTQ\`UTuO[[zS]IeO{HsY]TEj@[YQ\oVZZiX[M[GTXGkmIVdN[VWJSphWT_`ZRRHZGTRF[]TALSsSc`LPWaKgZPa?YYSaWeQl\UJqQZBgLQd:dT[DE[Z`KNmCi6IX7iLL\[PPXUEj^_l=XI>EOId^K\egb[cV}O[TM7`QCBfaDcXbOZ8Fb`VUON@JO[TOn`BVVQXb]E^=MVhQN:La_]_Vq:XS@_H`L_XZOOiPOb\PkQ\ad_N^JaeYJSVBKTWZdq^OiP@TGJaJviUrHHTUYzNRj\.cUXnNb>PTIgaT^ZtldGGvZTaGm\gI[ceVN_SWYYPWGz\YJ@LSR`NPTjLUTU^^W[HfLXc_efTMJZ__QKUtiLNKT?WcT_iTXXRLI;dOY[TohTgTSTLy4lQuYnUQndd\jUQy_TbPuXWSEH_6=SRJJ;QhW\c`JncV5bpWv:RRSHMNrK[dCIWd`TOnUgQ[~gNjbc^LkxpvG`VU[u_QmP[TqkUS]QVkg=gnWZmC\YXZQOKQVYAod[_aOMQ\bmgYaMR^XlGT[uZYU\:ZtZNaJSMPWa~WR`[XoWDMe`^SQCTIeOaPoWiZUTXVK^FUdEV^af[qiVLYY^ZW]fLOJQUZ_OPCV[V_Y\f;CYc`Urc[MVmWT[NE^ph`WQbFGRuNhXUQUIWUj]UUBgA\TU}bH\^[ajSiIgd\PNchRe`_IOO^jQUPUMI[dZjC>JZ{P]H^UR]Kfw`eOQaRF?MnfK\HMi[^ZygdL[fTfb`lJI[YfUcmZXAhRlKMTWlLbPKMu[^V]Mc_W`L^_O[ykGPX\dPmJffUliOQgO;^^f_<;YpXZn^bZvIb_eTg[NNgZN]`BPpvY``mSg[J^RFQtUWUJ`iWWboH^cB=mhUBaXaVfL_NAM_PeU^iEXRdJ_YUqgbrwPJTZPSOUbnAQO\_Sx[wPYjdFXl^W[jYSfPsYO@lEiY_QX8d\>N[I?DnYpolnDeD]VPkX`_[:PNRBLT>NMgIBILbljjUNviibfS`VQaMbY^cUFe@|kWZnnwhRkERXPJCPGGGYR_PhGFbdWm7U\]UF[\6m_y^THSynVbgVUD[\V`pXsgH>vP[\LPnSaY[U=[xC@qYYJecT_[\VOGO>WIKB}X^?aIONctL]QflVXZ`]S`JXne@NTWY_d9KUyeobR[XUMRlahiliQMcF\^JfkMKaZccRnlgGTNSZfdGQc:WQkDsNb\ABWs{tSJ\ufQaefZTFhl_bSzdSaeWA5[URxb^HBKVEOYcWMow[zLhLGQhYQNOC_HLfhib8P=[LmQPU^Cw\WKYaG`ikEjWwYFhUnbiAS:a[gaHmRXNItOjGaT\Sx=[Hm<9]hnXSBfadLvYSdKNfkc[TH,[q\dXDQKSZ@^NekSUQTOVSPEwLUOYQ[ThSlakS}PZPVSYmA\OtX\GYikLuCeR]\aodLL\TERpbTea`LKImCH`MAO[RmZ_JqnnBiTW|VIYh_ndTdccjGeUnKaFkeL\nS_FRT9lZM[i]NbVRua`[[vGO]pn_YQbQ_^ODLPSVnYisMRJ`GYZKIKrW^jBSSPcLKG^ROTAMFb)HbX[]CIQ`RQ_EQSRg]QP\bYfae^MUb`_JHe^[JFKLLf\\P_[PJRjRe>vYEZo\KYS]JF:BWDSd^ShTUKEFX^Lcc^LdWQ`[S\VbKUFb>\P\FSZx;kWjUuSsgQ\SORFHdJU_Q_aze9]FeNNg]VabeGTQi[VgqoIILPjmV5]eNVUP[RtE@kgvbByTZQCRMIDJHfYLCqmXVZX@aqYSH8Fbj\ihQOtB^i_R\R^TVhJOcI_^WLEINY`QjRNcHZVrhXPN]SIkIMoORdSOY]aV`O[WSB]Ht_Wn>TSla=[XRH\BB]SMKBgNa_yMXIMRO\SR@eKWGRP^G\^WMdAVXxATc7KTJa]PTYNlSWR^bGHTSadsQUyYVX\EY_f^\bHUfMMZ~UfNJbmYRGGi>VeLfgfhdXGrjRjPWocXYQWXJQb[ac]NW]_PVCWY_WZNbJUygfMYK\UDZ\`sNWWhFbTeGVjYgOs]tVRNYPF[F0@RORW[`aOCP@`\TgMVCY`GeI{?PNpLRfyXX[DraQOA[ZP]_GX]GHTaG[DcJkXroLhZZbaOLS_Q_G`FWRV[XU/]]]aJKddNeeJP]\t^}W[kmhOR[DWPTZZWN\TDb]^IKadSQpUPa]ZWrneOEGLLxUFVUcO]VaaOlMWTfU[pccJPYU^YSVP\SXjTXaZpmiqe@[^KYKzQ[`5b][sP^S^i[Td]kC]C[j[W\]eZPhrKLb_QQ^[G[xLoJRQA>LHV.N[WgbZaC]OP]QjkRPSToe]RmcqUwKCl`G~hNSSPQeUgTZWdHmemSTL]HvfUdabtZc]`Zi[NYbUZ8OB>OWUPWuM>Q\`k[bVU\`Xe\EtVKcYT]KqXdoRvOS`UGKKbF]Msd^sZESY^}^H_YNbLa?PGPh`LIahgfQditS`IAYO^np\X\WpHZVB]a`OM[XdR]cEgq^;wWXSlDGjK~XU_OydVTHNohmT=]IVtTRmSOTLfVlSQ_mMXMS[dZZJDmYjgPW]Yt>dbhRSKZ|mKK]:YxXV7MeL?N=kWQnHFbdcRmV_We\Y`YsXfBVoe_WUDlMI__bFNT]NJ_UQLIjEaS@mZN`T?T^LR[]Wlm[OF]]\wtVL[_W=_PfXeGeZiRZ`TEe\OFSVdZYdAmTLXDSmc_ObOPpaEdICHMX]gcXIHUhLUIO_UJpEK[VakzRCQZ_]RUXYIRqdijVRRoOShS:TChqL]YTvOWafdwD\QmZICIMPZKgbST#Z\Q[fNQn<_Z[>GVg=UpmOVWWNTVLMFMvSORAO[mJTXb\cDjLlcVcKbWNQQbN=C[OVXPEMXhRblyLTdY_yWh\lHaEM^HVPCJPU^qXFHSV^HDxaMQhePLcGd\fYLW?t`Qch`lAOGcR_pa9WbULWd`BYbiVa_W6QYRLYCbOID`RGYVaRh\g`L9kGDeWapJ\SPUXPJoS`me`wNcd_`dY[cYH\moK?ZMmQibRQiVMe_acmptEdCl\N4foMSROVd>bUKR^[^CTbSKZY\oGA`eqexWUcNETESRblYX:JcJVeOH4W]eKOp^KkU^AX]bSpTM_abMbPNyhTNQkIU`oaLG^aK\|HgCQAGY]KYKSfzg`^JoX^m\PLt\`XPTWlIREZPc\[^M[ikjW[]UTw\vCafV6XHDN=faRTk=F\dDq\cPa=d^buTTlYfIWklN7i\Y]CUVX[wdN]cThPVNXoJFYTgSaTVesU>XbWOWWPe_fG_cc`S\PG;P9KONhL^UIJfZH[eDAKE]F[Z=e[rSD`ZF_UtKGRWLVaXgYRakHOGWYR[Pb`TTES[lhji]ZUVfnicJPBX[7lhIpVgWHSczX`RQHX^R_qUVR9kdgk6[W`aVRFXNM8G^E_kULNYYMyFeQXZlTXbzNK\X`tkYFZPSaS_`^OH^HEKQxmUW^PVUSSUYpX[dHOROX[b]U`XBV[PfN]Na[hZL9Q[Z[RSJYOAKKSHM[SlbeHZ\Z{[bVTYxK[bNUOOQYK\ZK\XYx_GMpZ[ZlRRTmXmZUP`W\kTSf^UI?bTspUdBYClcLP9@SnqGP`VuAe7P`PoA^]EPTU`b\cvPPFTpWTNbIV_NK^JKcPQhStTUu=]bWe^R^w8[=LNuEbQIdKDqy^\|]P]Lhjoq;bWOfCS]GZZsW2S^[JaOPMRFZETGf>R`JLdP?EYGP`b^ebfpW]IaAMUh{PSpmPUIIOX_KRiUHfmaF|ZKRdKQdfUAYWKghP\udRacDV?XtHVWWBZ^Q[[fOTa>^H[~lMvjrk`S\c_W\NXLSpe]ctWMY3Ax^U_gWDVQM4AbZ@CNU^N^dvWNDxe;\\\EUHOOQ`N`B]W]#aVUEEYUNG[\UHbcYhJ>]fRcYIn_`\KOuQWZhhq\gNOW]JJ`YTXXWXUucwd\jlSV~IbP@~3dLK[^dViUEQuQIJka[oV[oQ{EHXKgP>R^w\GOa|Up_B?EWOJSERi\UVR[Hc[leG>hhy,LPZXWU\TGWILp5[Y]MKjjQYVSU_Sl\\TfQ^\lWzWQafP]O`K]_^w:RPd^er[LW\JcgeRzjnka`[qiLMgWlKQ9V;[Ud[UT\ILVYcXVCKLZCYYUcScZIO_KZImrWcPFmTi`PDW[aW`VPO^HnFMmsKj?nUQ_VoOVUXfKFeN}]X=K[Lq[|\k]CVVSW``VpZ_idegcfTRgRVOTQra\ff_QEY=bXHa\f\YqZ]pV[SYH]dKGdT_WPqNUyPk]\VQSjTbSJYIErM8UK[RYVj\ZUkPTGcaRLP\mKe[`Q[PsXN\RDh[Qv[fRJXzSHccf>X[DsTKOSOUHYLT7ZMRkPYJ^KaNLwZaP\qU_\~RETm^hYIfeNXNYcLJZJWh^wZUZ[Je6Zja[f];JCFs:\^ZT8NhTTiMWgU]MkUEWJdcD\[qhojEbIF_H_TdKU^JZSrKb^b^J[X]eBY_YO]Sdg_ONShkKsg\NRTQa[L\Lm:FPwK_UZDTLLPaaKXMUCM[iqjkXBjFTEhX\[eTeHT]]]XQYWjdZDVJEWOTUrs[rJ>G^Jq8iNgIFFY~XdUMiBfT\C\ehYCyb5f_iCUQ9;lagb[TLQYfmRZ`XWDVPbS:P\KMSqWO0TZ`~h^V]JC`XjXOUbCucev`UJbk`YR`Z]r8^FJbSd\KDgM^bbGHSJ@[OBrfVOl]HMmY.NC?udaR\XmrZ6dKRN_Oz;awaCRJ\dd@VpYU>SNOLf`oUJFoOJ]Wr`Vt=Z_]ySK^\Xs_Wdt[rGJ7qGkETUR]TL[GpHIDP*T_LkbX?IRWoU_mSa{MM\L_Hg_ZBQc_KfkFNhGQLVM\iaKkW7LpU9bFR\;[i[VlfmiwleqcbmegVSJWGNZSWeBCaJUPl-n|J_cPO[dccjGobIkJbRMZ=qY\SX`MSCFW]TLrEE]IT?JXk]HndU^XSqpW>pUK^N[b[L8FUh}gZ\HWuUDGSd=ZTZJXOYL^}RN`\S^NDAJPd\<[OtDzWLFme`bqdN_BVdUroPMOUmWc5JERPeQIeUKBmL>wR@QLWAO_\KRg\Y^ahANN[s`\`zH\\J]jUY@PYeckcK]=\\tLqWWKQKHmjRV\kdKN^?bj[X9_X[UF^iKmWnPCQLYR_Nlc\_tIgMPcx6XTDl{`R}LHYKwXRiQnbOeR]W`Vj;ylW[oRXUZMIVzefjW@CWS\R_QoL\qdWlHbxMrOYV5NkhL8^Y[rY^QRSlR^YNDTqWYnDHMRWY>?afTg=EUYILgfkDD[W>uIibNFE`_mc<`SV]U?DB^ejLRfHfR=Y_[`lwqHR\ZSo[HWWOsX[}m4Fa^pI`[vSnoM][n?T^|XUezWiY[ilRW__SgZnLauXKWXDKWbkMtQFWQ^]TZkLeb\hMI[aVrh^GYZcS_\^UKT_dbEfGOcHGZeLOXcihhU^HPOTNe`lmXCPSXcfTVggCKPR\RBKOhhOF_Vc\vYWZtjQXeeOCUcVvGJRqbd>jshhclQO]XHRJ]glZ`qdfNab^OaY]]ZilYfUT1S:QZ_TRgOM[udairbRHal]KwKSYdPK?bcNg\aUfRVg_ZFUD]kgboeY=V@VGXQrMKSTcov5_hfKYSP?C[>VqOd]]Tc\CVX\][RXX?\G]T\YaQTKQa[TVT=LP]@ceU^{YGZJRHi^LogefbZoHU]OWgJg{PUWIT];nSndRlcfWLbeL5KmUOgtUYlgWTWYZRd8V^_]L6`E;0xbOVKPTKnZ``@a`Y=hTJ\Sd7_7R`cTGdJTJYXsXQ{MWSl4TN^NU[b[\bVlV]kl_9O[bX;RHLaezOEpKBVluUgSW?LhfWVcfXFbZ^kRGQC\V^UEXB4UWme\_#oYOOCqBh_ZHweI[\QMuVODHFWVUXNq^[a[X`SOPcaR`L^TOBpykVY_2ORhT_k`U?ZPZ[a`i_NlmTn^rp\PTjXiDMZjbf[c@Pb\WhaRgQ`gNVVEqCOr`q^IGhQn[WSZMKUC`PPPhiCXJ]XQ8TQWSHj_T[SjLRB6iI[d\LKZStGnS[ZCZWRp|^OFUHBo`vJgPQOHJsVZPyR`gFii`WTMDoWZTAlV^UR_fYj^C_XSURLSRWQZYeM]HmUW[ROM`xTiOc`Srtmj[iQa^cVPi@[Th|b]MMWsOZ_Wu\[PjNP[mjW[QiG[rjjVCSlYm`\MW:SQKNcUrS2jTlNgCPyd:WhvlYW]T_grKSmAI~SSZKQvZ]PSW`FZMbUrtdJq\QYZVaQTVTw]IYeTXUXKOga:_YP@]OkEY]hUOaekYJUiiR`HPBkBVQY`MGjRHOQRbPaX^On\FeR_mt>XKGToZU{H\lV\RmYRU`h`ZV_OxZUfdZHW``tdc\YIQ]\KOsoQqePATUIhVewWI^WTi^a]gTUGbYXgf`Mdmb_LaIV[J^AtIRZZUOMUfoabg?ScXLNVJMas^KmnOq\R7bG\\d`XaZ\IgY[V^\i[POV_]}\Pa\XIXXFgGbTo`iabeMkrWhMS1XdTUd\>OmXb=eZCUHCQWUPaOci\JQXQ`LOcFS\^@ZUpKb=`_LV[G`UF]LXpeWYOlcKd`nfYq4dbbxMVLj]q@l``_MM2`kRT?KQ`uQa[WZKITFjJZSPWWMjKLQLi_XZVkEmc\_QtR`gq?VWfG\bHO@GRNFgaqiJ^V^Lo>Zfh}lXegnFONUMLYg^u\RrN`HXbkXhTZGASVaZLVhPXES^qgUObDN_`ddYkKrXYJ\cUfcD]]RO_V|QrUCJfUMwT]MZKGD\VVeSG_h]cW`qP]vSUakM`]U`PDenP_UH`L>QcabBNQIOO_EPXV_ZXUfnJ]\LnHMh^N^[UIrJ^^UZi\bSi[HRwiS]]lCU`^f[DFS]{M\OP`CCTNNNR^xUflnYaU|Ud@^gZjEg`]`nSnbPAggJtHa@KokW^Gi\eBRf`e[alz;LsA`J^bfUSeZdaaeLNRHn_LMrRZ\eVW[WTiSN]TZbsrHd_uVgYmVM^P_\[dM]`AG]~_em`_P^QEOh`KjxW[_UAY{=FneXW[aOPwb?oQMVib]kPPkOP[fpRVpQdmf\MKOBSTM\lUbsZnzZLhaW`O@R^OYO\JUj[_ZTumQUJM]cWuWWS_pjTZdPX\ZZASeP`I\PWsjQNU^N\m`SOF]kKkkdQ[KXueqi?QUGYnk[]VsXVS`YdOrthhofJZdhUO`IRqlYin~iTFYafCLwa`~\bN^ePgXGBERbUR_SaeVWOXR_{Loecb_S[HWdDSROWUaMWRdaPPRwFV^ZVMYW\L]WRU[hQGo[Y`VSX]D]TXW:@gVk`IpOnZ^LTL]feQS^eUVe^I]TQ[QUZMjkZEWTmVTf9`]`bD[ROk_~`qeHhqgV|TZgqN[7^bZG\SWNYRRcNCd[oXK1KJFMPQJ_l|RYrU[OBLTZ`mQQMUXPgL^XGIbP\jMVGPLWZXabOeMjQkT[_RD`Q\bUL,]TX[@dfGSdkIjtRPL)[Zb^uZDLZFmMkTQfFQXLYDNE\ZCegW]KAxR;`FoApU^Xv=eh\RhRJ>pfXbQlOOVp^U^L^eaGd@n`XUH[grUm7J]RPmPRTbe9Cv?\ZZUBW\SWXM>bgD|\iQnidJVY;}^fRko`9M\OJX_VaPX\YJI[ZNUOFHP[be\S]G?YQf]]c\ON]AFZTUPRO>jRZW/_vPX{P`kM^CKgK8ibCTnTuIjhEouEVYnPR>=`m3FYpUX\NRpKuRHE[U^iaiX\h[ZHuMRG=Y[GD^H^GUaGDGl9zdGcIBuga]_:I9e`bU]j[VQYD[T@YOg^e`LpfQGb[]^W=pDXNiQmeWJHyeMNZVcy\wBGPo_XV^djL=]OqRUUZIWDOsPifk9\RZfd[bIhHV?h_QPkZlGMTV5[aGf>[Z__fCMRMhJcaYYP\nF?HNDT?DUkdYWXaff\P^gZcWjbQCWTcZUYn[PvgQ^IlOYY^luaVPpRZTN^U`^VcTfi\a>`UOPI{]fc]Vh[DLjVOSWMNZdQVLN]Y]bLwh[PCQVMSlKVZiZTaRPWaY\b]PLib\XjO^]FXZJ]XHcU`T\aS[VY[eVl`MQX?RPqklV_OW=XnBCUdYkOSe[BWr\WdSPEiT\NOpeDQ]_dZdnYm\TRRWWX]nvJWN`KWh_aRjSTRbd\D]V`mePT\_Zo>Mdl]OTML\YWaffcZA\_0RkA_\lRI\|I_AtEh[\IbIfV`lCRZ_eLWHMEZiP`WFS}>a`kTtfX]mYWgJU[^`,b]dM`apX\XwNadZQXYY:pWjUnZl\Qsl_XV^`ZhEfNTSOJ6>P\eMfO7YCd^eec\EXW\Mj7gJYaThV]qcDKk[F=^OKjv_bWUA_UPIYE[cEGNPob][_X[tcL>YM_L_EPcac?YxXkiPd>\P__\\xXQfGQCTqY\NkdORlHQZgQPYKWKTTE;mb[MkMuYA?lPF7mV=bj`hI0Li=J8SCXAYN]QmoUSNJwkeUHkRhekIIE@_aLUZRR>^WKWf\`mFxRYjigQYT`aR\TWkAIAVYYF>g7K^PeLTnZBW`VNTWn[XZkkTKIc?f-jDWXP]\WaTS]AKMV[seL^oaPKVUYIsOp\fbgU_cY`cJfNZBU.jQeZ;UpA>]Hd[W]oQ7XdEHVGnDyP4[\VY[RL^NQK]^`CKbYefrXWWUMWSWX.UQEfRE[L\jc@`DSPNYmjU]VdckJfWJ=iVZXskLW]Ah<]deSaBWTblREBThNTsQ[B[aTH}aFUW[CXVbV\\IUPOk>NWYKQHfuMVL]dBEVXYSRIe\FiaZGVHhY:PVnPWbW]fMprWgJOrWVAm`LFH[I>sKdSXWkpOD\edFZDudbKldLNM[fY:`>c]TOySTWIQg_DlIOTbZIjIk_Bbl;eRWAD_>euillGLHVMQPgWhYkFZNUI\gUdLb5WpChbDSbfc?=YfZaSZodXI~dhLVXWwQ`kLMRJWZCtHOUPQi`\tagKbbOVN6>rYQOKIhF]TnenYIPZQX[nPDdLVUlc[TWXOjSO^lqibfi@`\]yg|GIbLbeAAYnbMY9_PoaWKjLQHGMSjL@KJ_nVO`BX_TghVbLPfSIIYbIK[A`m^qR_dqa[PW[DSUZRO[Z^ZGW^\hPXCVta\L[M\a[Kh@iNLRcelQHVDPgqASGTOROiYvvBRNmAc\cX]`FhjdCUPeleSteg`VWZUcO?lk`\kMenBK{=eWWVEEiS*MEFXbM\ZBl/JVNnEjIEPlb{7WhVSRASl\d\_DTxM\fQ[LS`HSlVI`YV`cTRgblrYqbK?PrmW[FMaQY^WOgyIB[YNHaQ\`WFVZ{WD[G^fiWFfJGYU\}]lgZK\YowPc\DeMFRe[kfL[Ln5`I^Y[[Yh]|bWna[G`MU\|salKSTbjMZN]ZdhJac]p[{apT^ENZdCAPXNYXPSZb`ObiGfhtgWcWnHtDZFYQ]aSFpY`ZXYYeKT>_S^RGcCT}R\]=dmAUcToV`|M:OPghTXnUJffXpLOso^YgA`jQ^{IYjcKTZ@I\SiQSa]QKZBVDGMSAAXRXEETJDbAX`YJODViTJNaFUY[ZN\9PZ[SaXg\R[ncVlETcGcJWP[=_MjJ_LeMYVGjKt`QXCGtJd]XFzVEeXUOk^[YjzWSZU^DNFGGObN^R`^nR^W_jFg_QGQKLEfvKZcPWokSWFW\kVdJTTSq_^rI`LGl=LIaSTdnjSfG>;PTaUWhL]>bTARfIc`NWP^]bQQqcOsNZRJNRxY[YNo__FfS^ZP:\d^OO^B`KZR}T]NSmIkTf[SUwR\P][h_]Lc[dMn\i`eonPzTcFsQcYEPVyEjd|ZXSd^t[ZbQFj\cT\H]jWe`\VVE{A^>TZZ`ZGr|eCUG`^hDiV\W~jXTCUQQ@jb\[e@MXXXW9`lG^]bZjT^b[HOSbCaYRNISP__pMxiZhb[KjQV:XX`GYbipQXEW6_SWRPoFmenTZacc^cX6nY[bgbZfRRf\YZOfbgc_]YUUbizQPI[Y=TnQpdyK__BKXESRVAK_]`q`V[BYe>_\ULFPFaaYf;TbnML=[ZkXXZUjY}HOHxVLPJZnwYjTd3MU^Je]F]aq`GGYysVai_P\ndRWTN>c`TeI[nTVhZ\YGdjJoYoFZ[LXL]mZGTaE<\Vmff]gBOEZkVXVV9TPLY\Q[[P]d\FriRYpgYjnQM]VXNegFaZd`dXlIWKbDELVDPsRXfeOQcUeTcM^VFCNT}UFbFZPUgYbJ]kDRRma=rT@M9^]TlUWf5T`KRp[ldc[<:syCi+S@[fLXF\VOI`P`]dQSLFJ``u1]aYllpe4jsZcX_gdD\temT^IshPXtMqmqI]XR=Z[2hVIJY\wlTDQO]ZYqHK^I9N[^8[oK\\RN)YhF`RTJSJRoUYviWtWPnaEXM`TD[cgoaWb~=sjZJ_Uea]PlfnY^HTJbf/F>qZZfTYIT}bLiJoXnbHvbasfRQb7bHNXpgWV[ZqJ\@WRKGWPa]Wcj=PWIUM]IQWAOQROE?PYDM_~WRm\M`aK_SPVbJWTI^_RcLFC]BdR2I^Xd\RYTgYKS\nfZEH{|W?MiK`W_QFhp[\XXYlK@RbddY]bReVQThJTsa[^Uo^^]rdW[E`aaNnB]PfQUa_cdQHNX]S]O:cqXU^GCX\=]Y]F_ZbaRLO[dISoEJ_d`mXX]CWMITHHcWZ7TxNWC_j^cY^hYkNLQmJdZbEDiZLRRHUjkYPjTYVWH[[UHNdfXLMUHY]`MOTts@YFBjRNWaVNS]NRN@VOBV>R`\lJgUkPnzBkS?dlW[BO[QUcg[obU]jiPYwSN\[]?lYYbo[UPBH\qaL7VD^UmbiPXApuZPg]ZJVn\QUYJYFdcmEpTWGmqThLL^fMZZfX;]h`EkR[RW7]TgS\[v`]OHV\qYS`EMF\F[[HNaLNRYn_OwblcVP_^_A^SI,^YTCXIWiYJF`oTTRrVQY]RdHdSaS^KU\SP[N@L^eYJSDc^e`QXhWZPBZ\BB`RUD`pagUpYYkTYYoekJl`[dnZQWXVXboj^ST_JM\Y]ZN`RG`Us?jWpFbpZMoSf_OMrGVZaZ_HjNUglNnbZJmEOmU`N\C[e=TG\HLgV`cU]HUcKU<[MauiU^e[ESpcJY]QTHSDQ~bleqeRlKUh]ncTUlURQaX|XASb_M[ZuU_|j[VnL\HUYb\ttGdTZj]eWpd_FWER[~XHLeVV\WfQUXfNLJDMgKrZm`WvtgbeQiISkKgWKH\NbJp[oLjUdeVfPSXD[JF9nRWl{8dWOSv`\ZXUQ_O[heXlZuKeOYPXaLV0PoC=^]KFOk]@aNR__hY}eP^SqD@[X^K_EHPkOXf\STYZefjWg]9K`DUEZ_[GRZQ[\S]]NZYPVdgWZ[^KCP]WRPxP]REbBRWX_Q=vWr]bKE]fGRcGXV_VbGa?HZX`WkXaYdt`aV|VeYI\gKUH_cfI?XKVhwOaF}JRXWMZbOY`xRVMRWUvM]bdVYZUNfJLg]c_cbSVccV8PiLUYkb]IbJQl_^RPT^jdI`jaj?acY[T{lvZbFd6yCZW\XNOF]`VFUaskV`^mEDOkciVdVLUE]:YMI[]US[_UPQRUT@JRG^_E[Mi]SR^`aENNAhUQZXWHWk]R]J@OS^hg`TIPWdYSLMgRTcQc]U:S[``ZlW`gHD^`ciFhMb][ijfOTQLOEfcj_a>ojVmLSJU@vOWQ_MQW\|YyMuTPNLQ_f4LTU^mUnIlPNEKQJspXeP=MeXcaN^gVMoP[G`I>hxgOexnloQJg`Xr];|q]WTXVS{`Ya\?hagdRbqFAK[KgSSeZUa~UZYgVeheb|gic[NMSM[iR&YRovbcV7EPTgKkCdJ^AeqaiL|UhNE[JRVPP3R_NQMjYMPwojIQ[mdGLwqOZi\\RGfTZCUIMxEI;:asZYV][XSjTgq^nTpzVSXAIH_YJ]V\JakIPgWT_CFzRIQKOdEcVLmamkOI\]_SVeYIbMOGJeVVO_TgJiOeXg{]`W:WkPB^IL\\WeRLXmtnU[PLDPh}[KdQTG[]Vc_T`fqNMYMaNLTfL]bjSTbQJkCDMVABK6]@OVBXX^WUmUW9OxEI2r`RLV]qk8W2rT_OP^rZeF=^P^?HILeaFNGj`KReiUX]qfwb]Tl^^^[[gGT?R`[W]_|8JjWQKxnbdVo@gXoLNLaRdAXRHUr_pf^WfXKTrXOVOb_bRRx\[KO[WUXU>cAIV?c^\IUSmcVVaYTdcNcVJ;\c`lmWJ]f[WY^ae_s@NaKienPN`WSSSTP[NbVg]nLKH_jahR[PW\XnTX\KmSMSRR`_gZBOINag_Ejh^e]]NuJJNpR]ILSVVVYmEOqxDY[ZICGhTJcWlUbchUt?US\TOao`dQNRQpIWSaNVdSRKdOQ_Vt>p;IfSE)fg=zWPRbzU3YjHKI`aWKDca?V?gYU^PyPSEAZ]\MNMe`hbj]Z@}FrWWI8m|AeDJVxPN3W[\PGLl>UYOCJX;coBtbEogXUxRk`^gcZcOJGFbNYTNW}@HPVCJepwlcNI[ohctYcYeRVVMvPHq>L`cHWh_/bIgRGZFNsQLXF_DIUl^VX]][G`^\qThkkDDbVGQhFnfeOaaeMDVOY6LX;`X1HrEdedvNKZGcPQ[Y5\S]_wGk^?N]VdObaZhHZnS~ahR`mVEVVpyj[_nXaBbXgY`X\[xmMJ^MI[EN^}T\f[H~Zf.XTnUwQSPfZJaWZl_RCHTUbnfdor[XhY_@THHVPiqIjQxX`\CcG\bcTVL^IS}BGYN_}\\l]STUr`]\SK\PeQS][nkaYUMhlL?T8e{iLSeeZUYK|^]SV`eJR_ERSp^^C]XnT>gGRI{OTZT~GFXYzMyi]Vmx\NcAVcjM]LNcVvfJbx[X_biclFWfWTg]@KfMZES`_jKWuaVb_PYsEHYUYIEPGbkShrkW]R>uFI\ZTBTVPGHG[UYw>AXWAZJXig9`SVYQBK[kNOoLA]@3INMahWUEW?RKMS=iO`dkmRGbWnSJW^aesZM^PYP`MSnYFQoLXi[WDhBN^bJXaMb~mv]L\HTlN[iDeHHeWTYLGph^WBdqe\?jWhBAAW]ahRcqefZDbiHbTIG`rJ_NEVZ_JhbQXnLdR^LflbQPOFmvVdMKic`Q[Z]qV]RcTrWUSS\RUT`PTMf_QO`YVPhP_QJWWQRcbhVbR?hgmH]=fCRPqJVNCJUNQ;][ONf;DWg]X5\]HJje`[H[JmR\SYkWTV_BSPjaHOQX^WYfbBDLbKQV_XUMcD^FAv_qSWiIKmelhtf6EP@?i|Ju@f\IIVLV^UFb]m_VIJb_gUwPWo`LW:lWjr]WS]?abh;aSPjRR^TZT\c`PSj]UhoTPXSSm[}Z^~\f_KGFLiq$sdBYQ_ek;TTSoSCtBIOb=nTdJ&Z_pcbDpDej?tw@`qYpWCGQWL[YUc^nT]aVSKfPwVmZEbLPr_FdeHEgNZagbDBoQL\\TOMKr_O^[OTkMcwKeVp[eLV^z4;bZPWVTNHw`fT[MMdWdFMVKcfq``_RfF@E^X`KoJIh_@md^fDNST^nlliTXDX@bN^PNG\PQaXU[QaQUf\miEv[aWS_lDHaP]fdKVUo]ZYSLbXF]LS_HJxatOB`JNI_hLSfc]nvUgtJ_zRPlYgwY=gJdyLN[yM]fE_WcXW\Jk^OYUWVTWcBYHEQ[W-Ne`Xu`Ym[VmxHKbY9cHXXZrPi\XZbd]L=qlClmS9>}8Sck]ch^`HVblgGUReHd7cQBWEAhZZbZ]ahSabD\XiN\STCpcc[_`BEIF\Y^f[lGp]\dpT7ZgZgbNfg`FIlAYC]\HQgKkqbgPGU^A?CeB^\UHJ\Ig}{WK=Pfu?xnIqaX:rRMLLfqPR<[V~nOu~\_nv_TSs^]aFNPd]aXWXNN8Oi[^JD?[cWn_PMOCbYURYcdJMNFSEkeoR|RnVGKgYfim\UWE_J]d?dfqOT3gVXUAY`tNOIchLK[@EEIHZ7fSwJSBJXlVa?\'L`YTbehO[fj_p>fXBbQrKcWVP>[VejEWQQBdjfH8f0HbjScMK>B]Y`UY^XPv@hBJ`iQTkOSJ^IRc:KVMjM[K]avhMhTf[TaK\PNMYRd\ZY`Ub@QRpYR[OGZRTMbvfTURWVAYfJfw[H[DXX[gTvMoQFYla^oKRjQTUl_GlMHV`GNVSjAhbSTLkZ]Sad?Ig^qph\akbdQNL^RAbLQMnVO`Y`NUUYnQQsPZSaimPyrKm\b^dMVNPDjf=AOgR@?McF:THD_F]X`uF]YOfh`T_KWHKeueZ^WV~cVYNHtYgVJ`V:g[AgXCQHUX]ZBN-JPlc_CFfhVMORegQKbbYRJpfVHR{raaUZ]WkK97Z:ei\Abt|[MTR_Oa__]NeQWLH[s`X_fJNhOXVahcFK[S{}N[QJFXgVS`UJE]3`aILT_@UilPyFQLksPZA]T\DZPV`jcHCN@?jNHBHLUIDD{[mj\NeUh)[`MK;qOYHd`4KOLJ\^YbIRKaJjQ;satMZbEnaYlkRZXidvKUOM4JCZGl^UHR`]{WgHkP[E>Zf~]EOaXCQkbk^CPNUhabZsB[kE}EJXRNYYSoKIrPG`PjR\McfYQebWPjhiq>UN^lSfYQQ|yckM]JV\HPi\vXZPYR_XSXZSYGjm]\BOljWaASQLMTZ_`KbWPS|RXgbTUdQn[[hL`Y_lZb[w{GnQ`N>ZhcWK^e_oe[Sh^SY^\]XQRY|DO[EwwCbSQZ]YOKW^\HOlUZFPXafPGSD]ASyJmdd_PXSF[hQZ^p]XSTyV[OIh]``MoVBXWOb_qaGhQOOTYUdaV\IYPM_aXICTY_RJeLSOdXfL_cUHGQMQUZvy`PnffcPW]U?hFabDYVbkTV`eaJhiSY]TBXaYcZNPmZQX[pcyVaV\ILWWWRoaggXV`^\TiFSbRsZJIW3rZ[TPUYdJhYkcWYGbnRLVYWVIEJ]ZaHe]laRQUfK[Qa`fVaYV]O`hbdXKa@GUOcfOVaaaaOJEORVDId[U[t\iIY^`e.IvX@IRN=VTn]L]li|R\=NX[_JQcmkDJMZRechOUPSP_^gEbSJQ[viHYAisUYZT^@OJanftHwXg5`llPXYBVUFOUH\aknIR7kVncU\]cHYP`Jk\di[=YdDSS[VKE]^mPDRMUT\ZakeDbF_F~AOR|YFSrXUnxNG^QZCSbc]}HLhlLpSwZ[RUNKW^Q~[HPFNJ`LsTOg]WfGRLhiTVURWZEj`BU_PWSSZ|NDYVo`iMGXYIUMlABsMeQVjUiCPJLTBbt\jrSdiRaQWCriHQWQKnhlSZTV\TTXY]]QWIe_XJnfiH[_T^SNepbVxI>SkBST^\PWP_RXd]ec]Rdgh[OlPjjGJUl_DVtYTW]hfKS`fZed]VWPSQ\o;FUWOBXFpbLQfLRbVTiK[aB}MfIUS_nLfyWSc?JVMKeUIfSLVoOZ`\gPC`E__viRetqOsea^@oX\a\`X`OzbSXFiZfD]^iZhoTJ_bGj%DHNnGURNaD^LLO^`UF^SLkaLkaJ=iTiP]Qb\`KKfdcl[M^ANdf\pYjAQI]PqNPvZhe\^SQTTLMWY[pJRkmYhQe:WoEI^HG[R\jhLEjXYKCgWCYfh_TSheiLJV@dR8BHuoSZOTfmn@G]QbKfYWJjcHOaWo#jZX?h^BK;NTTZZFNSo]cdJjODMmc`Z`cgbfNPkrdcaTTXP^KWKW]NOf[lsYQbnWhZH=1ix_MjCUPNd?PY]U\NItRY@Q[v@TvuyLAZD[PjXoqAdEyUcDbNWOsMd`dZHQZTa[\[UFT]BE`^mXL\^M@Md^SaQs^LodJwOYej][Bh|TUc\j`[\`]Xd[=N_Xf]NacNhlQa_Y7[Uf_MS^Pzd`sWPeiPKX[ZehXYJWw^DWSaXe]NWSYV^hH]MZdD\>_]\gXhYb@fUVSh_QCRQoWRJS^\VLwXRaQ_TR_iSUc^_QHUlU>O~cWdRHvoNXUKQPWJJIj[pdmHl\LFUc]?Rdi\`_\XNZm`Rv^NOWWheRbZ]ib\\`bHe__kl_OXM>a^uUbS`0ORud`O|\fCFDaVQecadL@W\rMaLsRVGINy`UWkhr\nbaWFXsKgNZVf{`P\\GJYBhObDR5]7@LZcgTGMyC~NJQ\HTNWAG_RVtWEXQqEUXZ1?\aIXRXgZ^PPN`PYL\ZZNeV_N~T^JcN`gOmdN]QmOPnWXN\^{Lfq]MIiKQS@`]_LbX]OFPSiJT\UXTe\gc=Y{U[YbX\XVV>C\badILPjZWXSYNSP@b]cbGcbZp_IISfSmZQf]Xh\kWHZbpdLTYTAsWZGYHVUZ\DUYy|eva^>``TqONhUngFdSh^\FP^^}DjiTdYnRW`JRaO_[WUPYI]IaacnQTEROHVXWbkegRROwkh[Z[Q@xPd]tWUR[SV{PCL`L]U7WX|}jPOMLvLOMd6RGgcW]fkUQmMl\OZpTPWU\CfJfjWcXjV@Hk^FSbmcVBcWTWjfH>Jdj`WYhcUmKzaa{^HbM[]^TKSR]oOGmMxYO\Ht]tfb_bQ`OWQL`dZLjtodcNcuYiXdbL~gTlOS:T`WBHWe\KyN[LwtMHLYQ_]WkXVcldDm\NeVcKhjvT]VwQIKIKPdWlIrajUpjHcWeN@5YOd`bFNNI[ZH]fm^P\BVgEQltYGU@HRT]^P\lSkHcOCOSm[NlVMdZmDRU]Lc`pcZRabZZm]W>_ZXrbVObBnF8D.Hai^Xkf`btGksj^VTV{gU`fhZK{\THJIJQGDXqcaegZtRXbZI>|Wxb_WuYiT\_d?RzB7M^s[fRSUOhnRgs=DSbPfgSQ`d\Ydi4KUZSc^Z[[AP_bJXxIRLHcPGOiT/?Rf\V?EsL9GfF^ed@RBPVmgkuMhYRP`jKLaUbZH^b^MgSYVBhuXqI\.Kpk^JbOOOh\Xa_OJoLPD[Nc`_^a`ph_\l\_g^]^a`kF^TKF^NMWHIX^YmZanNsQNM]rU\NFLNo_JbPKQSH`P[PA`KJ]QY`frMPIkIGamH\u~dU+SNGVlsIVwMYoTkfLND_F\TPTsUh]H)McLIJOkU^jMWaYjcrWXb\m:@VA=F`YGf]@dVYXtlqUNUIL^[CYQMROfYZN]fXIWXUQQGgcYVmL\KnchkM^cULVdVTAGNh][eSId\^UdUQjdpYP<]cUYQ=OatTwRXHU<`YOS_tzfjW\\=S\El\]@_q\gO^h`Tfb{s^X_K\`ONNBTZ_iJdZHdjdRQRATVIdesfS\aRTZsEq^[iWHV9^MMdlxle:laCG\f`SVfiOdlV]NM[YZCo\j]WmUZ`KJXfCdRVn\Pnh[;g?AUHQjll[ajgQRGIWZgMlb\a\YinYO]L[nn|Y]kT_WSJ_\h^RdjM\a^\XST^aSS@WNoTJbZPMUYd`Yu[GRZQmr[xXMX[aM__Kgd@jPH[mZiXUeP`BN\LWYZ`PtmiveKgXZY^Ng[S`If_QV\aOI]\afQI`g`^Td\_NhPOWLZMfLdd[MlhC`PvGeeJ]WcgNhA^fOQPZmbmX]PSEQbWLZ]gWiWZS\`]Y`\EYLbU^U^LNeebrKjSIPmK_aOpQK^EtTJXc[ZbT\ecILYJa_uu\Spe^M]^kk|?xZRePtTbIActSSfQdZG]Z_Q\Yt]KO[dlWLY\FdFWQV]ET[HdJ[ZILZScFEViLSUDUYUTnVVZgVdY`jUbU^Vjye:T_RS_QZculWPl=\SVfJYiXhFMNTu_diSl`_YadV`N[dSZ^VsR`]h]YjOoqJ[Z^SNN_ee[Y^Q\JUT`X]eVZTk`LUV\NWcsokDPYiNkggQ^d[QrVRVMZfVVtcTrBAXVWaVZZHCF;iSaLQCbN^\][M^U`mZcibR~HTcagmfLOU]UYhSUcUiMjOna[MTQYNc7L]TYXkSOeGYj^\`jXjUf]]eGIE_QQ`\Lj]mXTZ_Q[KA\YPfaP]V>QYbZIYZVid:@P[gRPoNBRKZRUZWUNWZjN@UL`O\q[YW2N\R`PmYgcA`f~TXpp^WVd]TLRLuQhDcWIdUd]XW\^XZYFhoIfWAO_VbYO}tYXhpRSLORaRO?VeUa`NjNYDQNLG[TfSZkfhd_^gWO\RSlV\U]]KVeXG`aCcWWbBuRZk0NYg^]wV[cYc_UNUwNRPM`P^~QWiO[qVXVOtUcTTXXK]{KfJ]W[TOentZPQR^gbSx[NQXBSKWTURWQfqZAS[_WJ]cLeeKQf`Qp\oDlZDVXVS^qZUn]\OUbWZWWVLb_LXbT^LlXPPdojarTk_hlJVc[^fXhQXzJBcDcchYK[ZK]cMZfmsORcUFnMTTgI]_qQIGfUTVwRZEjSeN]LrlXV`[iaT`j=XVUijfSR\`^LwfZYMcle~QLShRpKGbmYGHSN9f{DjxOOF``LGP^dQ`hbaO[ad_dWccQ@TS\bdXYU=OcNXcSeHQxJDQgQL^PRVdSkW`e?r\YfTk]UiHTcpJhltf^YXRVgcVNf_^GJIVMX]^\kKR[_QnJVMhhSmVWXVDJnUrISScfg[dIkOP`QYaUaT@3WOgxYgUG_xNbZ_Y\UGHLSi^BXdHVeTX\^UJd]\gPURZon_PTaZrnE?_Lp`T`aRWG[VjSUgvU[h_LFcPSCi`Wl_dRwaht[aZkoPgYRqjfVR[KOBRXYQ_rGLjdQtYSjb_XkjE^IW\kTD]{PTwQHdVcT_ZgYYjgQGYQXmUXefLQZ_X\r`ZSUi]]h^}t;QFia]XJQ[[[W\dd_YNeO^WIRTRTL\FwB;jNWiX_lQ=g[LLLPJn[sUXmT`QEeGeE]tcI^yQJy_G_`[HU]uI`L;_d[FUJO^WTidDeLcWQeLKaOqZT\dM]jKVj[Be~Oel2X}M\eWcLcO^XSI`sW]X`q^c`S?J[aJKHS_[TOtde^VMVGO`dZrVaoHIpTL\Q[MR`ROCQPZ_=V`c^TLPI\YSiXcq~JFrYa\GZRdh1D=]\cDz@N][VO\`Q^OVCWTh]Z\kS2v;W>]dKXK]FNkRCo\S=dzKv]G3MRQVHVSYS\WYKG[^Y?@NLSVEe`NNhROWO[WJRaTMQiQTCKT]YqEVGRkJnX\h^XiXOq<6ls[dq\GrV4KaXl[>XZySaKGDEa^_KFYQftVHbHedf^VPL]FN`GODZtyDV[zBcVQIV^XZnEPH6cfZleYZTE\UFK^ac^\4THs^[IgF>hOaW\HKUDOXnlcVgyZ`Oba^ORN@@OEGrOBqUhcl_HTM]7S^Y`[qFIIhjQoeWti\\oP[diqP{zNXINoPsPQRnao\5ON?aPgPp^tNfc_fbITesGha^PQs[FsJJLKTWMM_]z\OT\Zb3^xOe]bt]jgho]SDXBOLce_WS[GhKNeegkoNLOb^hK\MmcYcWtM]ORXaTU^SK_aMPp^WPT0_wZ[m_aUbOBUOm:FvZ\DJ\[idVYRZnKU\<|U^IzQQZ3iZ1Z=qmmXtPOFK]_1P\SULh^_\VO>e{NT_SJMS=VQRqwOUEL``_OXxYWHZBZYDPeOVYDZhnp@vkUipR\\iKXQLKV[]PQRh3AbSbSFHj_HSk?zdavY[q{}FtLRo8@@`LU>^`TW[ShTRVV`~bRSkSaGf_O[aGSUC\ZDj^nfj`dyMVNqc\ZbYvSW?KS]S_Xi`YGET[MY`t_Lw_tPkK:J`jQfQ\aGKU@b\y`ZU]KZrKY`Zwo[Lgd\G?v[WvTW[g5HOFSHim^AhOeWTL^UqL7MYfnjYORFt[hU]KURgkLV}w[aY]qSBRYZcxO_b^dET?l[YTO`MnFtKqH_8eMHgG`\]^MBOYxUjZld1]^^XRLI?b`^CyO`]\]i^YPZCRj^FYZCd^^_>M[LZ]QL>tDYqSA[2gWKHRr[EkWVZNSjWUoEc]Pu~[mQbaj^XhYtj]cX_jENiMXZNaIxWNUGTvHTH}aCX_JHRTb@\^VPbO9P_U[HVMXT`FbgVTK;UDgZZJLLSOGvY[Zh\{fbeZn^P>V\^?<\gm8ibQUP[P]dX]CDA^WHWZKhTSO^UPMMpTdTV\QiZ2Vg@Un^T1Yb1FnQjS_M_`hWFSbK\IPZlskFCZVBp{JuQ\dPseGuhnk[YaRkXRIW[_Hmlr`[[Tcl`c?iPZZ^[R[e`R`kQXaQWUcdhMmZVvOYNIMajOnhC[Ny[xlYNi_kK`SiTdUF]XawjY`[XR`MsP?$TQ]gUm`QS^ad]SIjhSFmKIHUARwXPMJXj]KQ_NddJSPWhQY[s[Q`VaEZjbKO%4[K_g\XmTJ@lok\Vt.MKTcXcUnU3iTJ]TTHjBM[8GfS^TpdaU[XjoaYd\oZ`mI@ZsGntmrc\OMcfMXseUYLOzZYt9EWijQZQVOVUI[MyjR]czJjcMhG_OiOZbWKUaPYbiLUPtf=c575Xnc`NWJvnyUaRdMOX]O^gN`|FO^se^fXBVcsLK~P`XYDIgq@RKRX`p]_IMpqZXO]{XKZGM7g[OgYKkvTCSKQcJYJ]jYeVf[NPnZhcbUVh[b>LVPgPAlRZEWjKd_~l\e_hfh[JOobYfEogXrVTXZTnZYg]fFmSOUXK`NI`SYO[{fvH_RRagZd@mNkAEk[_]KfVX8R_{khYST_cUqFaLa[VNcUYDcP]V\om=e0k]mYZe^YjefN[i_ad^TbXQaG=ZX_`Ik|poN^Wg`S;cR.iOSmLC~nZ`ja_d`]\NU]Waks]]U`fzO[[R~kejsuN@Z]BLpZ[YoSM[dQ]ZJ/aRLomVU9tWSdT\[KDDPLaRICP[_jqXa^NE]N][f=YCn^bTKV]MRPMGh=eZ[SHQX\b_lpZK_QZWIRFdTG`\HbKpRnQBjXboNXjxN[QTpavNOrgPGDX^anXaPg]M]nFK]\NYRa^Fh_W\oWSX^VfbIhc][^VfiDiTUwUQjH^kF`gMSHZGfJZSROapH]WglIYFQrbCZR98YH`h[JTOGR]RKeLRmRndL~]H\NbPFJ\JLOgXkgWDQNUj^G_U?mWURidK_RbUnOraXRQHDM@7\Y\=PNaFY?OU\lT[bRA~W]_PXcOYZFXgESfSMDVvWGyW`g\HRLoN]LGQVfd_Yjl[bPOhK_ZH_cXHkXObP[?rHagb\V^PhTj]X`CjFSX;gY_SZckDDYPK:GRddQCj[^QtZQeER6XHN]aQSKeZgxVNcZfm`WKMkU?RbajYMklWQ[`MI]F[HbMjpHpXV[VW_`O]MCsmqFP`p^iPPdB`apfH\G^fe]Phn[Hr^HNVJZ?IFRy`Li]AgT\kWZVG^XO`M\ON@`cW_=N^GmXaWMJVUZVOIFhfa]LdoPIW_.LXed^War]T\CX;L3YY]fWFtPAS\^[[@MOfUKYoFKQ_mY__^MEpNUYkTZ{NfTPXI6`HaH]QXYWy_rMK]P\iB_PTQIX~KTknneLR:FmT^[jUoU_UPP\nCRLoR[C=NifFFQWTdPGLDgm]KN]dWZfZZ\WYcE`9b7^;XmOPcR]?_TyLL`hpXF@kbLf|^?aRdCUp[QCTRaZOYRd__zPkhTX`LljWfKVB=g8HHJ^aY\SV6bQT_@LLI5bNgi]O`IKs[YVU[XciWAPd\R[g]hES=HL>UX_KWKOkNnXk[[d]TT]_m[tf]HVMQiVcUQKS^e]OX^PdTK_^deqbZZO?Lfa^?NMQc_[KJcfRXWTeWdPzvNV^`Vge:\qrkUGYQfVPHODFDZXwOKNly~NKYpVYTakmLMHiadPZY{YbFc^]AHWeWYOW[\M^QV]^TBm`=/SZUX\]Q[VNXG_FIUg]WcTR0]}RMdI}?:ONa8EXVhNHq]FcP]}7[UZsa^Y8lIe`N=]MVL`VFGceaZUIL_ZWZ6k[vD_PI{TQlWQFLp\C|_YJJmAM_CS\9HLS^GGDCTMdPIpwfI[RYEM[[S>ZhRZRMaQ:Jj\NC%bdaOc\OaZw_CPGwUQ\VQiSRESYUOTvZPsSlRf_LoT8nHgTNWY[oHrHOa]ykPGe@g8aGF`uIJScUocOIUYTXLSV\fS]rXYjFV`N\Q(QqOe[^NYBRRJ8SPdN[\KUaiRZiDUKtbKl\MbOjPyNxOZJ;~KPciXVSV`\XW^ytOYbEeI_SgPbTfLmReFMVbSWW[VO\MrA=eS_]9g[VX?W[JRIuXacIHQKiRBERlYsIBobWP]Hq]Y\nP^wNSZccMPQR\[Q_Z`OT]_`HU[V^fR\]BSfedUra_dOdoaETWMVOS9TXODfpPYYjshdeCgmKVKIaBWUXMoWcFSd@Kc\^`[FDNc=OlWYUS]f[`QWG]uP;[_;FRdB<`U]mC\[YHGIUi\euMGMUdLXCdT^uP]:XQdI]R]eajkjLHRzMLB_UYNKeeEJOKJvm_L\ZSP].YDrTaPV`dxQ`WET[aMXOhq[f[cY`Ohg_E_`WdjYp[4aKsbYRa^KeWU_pVN\r`ZPAbrb]VR_:PXJSWLL]mZbJ[cY]TaVOf]^_UPCJcUo\iYRfa\agV]ZM?hZI^el[IOXWSe[fW_\lxUQdWXXT]eSOMNSLwOIT[hhdfEiB]L\acLajMTF@S`US^WJaaXQ\hUKWUpMZlrXRFO`ZbkUKaI}noJPWSjL\VSPU1U_WOTlYSSaVRY^[^m`FHaX]rW[;NKQUsSutQYm[R>cNfLgQe]PbfZclJa\SXW\aXeWCTD]aUOETdEc[YF^M_dKen`RgyoFETQcJOLQRG|YF[[SMMYSOaLD@ce\DTce[cGG\WIMZYcS[_YcW`VV\LV]EQfWFUBxhfVLQ]`kjPrfaTTVg_aD`r[UKL_LeF]cW[KmMjlZb`ULKNPRTMjKMdmVYlWbPJJE^\]Vm_T^IONntYskVZjEkQSRZGb`[i]S^PRHO?_VYc7GPMXVZJYZgUQcU\bMhYm^LPcIXkOlRSNdV``sJfZjLY[?_[SXQRh>bXSVe;VPZoXlZhJe\OLWaVaV]gW[RQcIXmICdXLGZnc`hLyTYMDYScQ[lZERJYMOPZPWX``QNXQ~`\AKShfK]YWgUvWacVtecVTgRVbSZ]Kb[P]YHu_^YduXUGdtSJyXWZ`KifxDc@mblPZ]f]FgSiQegaraMYSXtIPlEqQU^HoT__TNRO]QY]GQ\[G[XJrEiYVCpv\kXqU[_k]HP^\NYT^[aMV6Wx\aa_LBVLO\VVWM[XNOXI_ZVZuUMhCedtjM;[MU^Oc[hcUaYUYcXR^pXqTWXhLmQeUDbo[fPVfavJhFqWlbMZ9\b^Zyh_m?;hfwNUNmTO@fXKLDL?oNNr{FNRm[V`S\XhAIj-HiUbpTChXA]SVGFOdsY[S_Fmbn^bUe[tgtBRGCXDJZls^GY_lU^OZ{dx]KTpJYN]uTUWel\k]j^OSZB^tIQ?^iS3dL\oA^HGSg``aMDpgGhrzNDRIYl|\oYDAX]aJ\LU\gwrgNaR^UfVWQ]WrtLcQ[dZVcCIgWPFnR]WrR_^@plJIeK^_FLE^T`WNTZXNa`XWlba\QmH=V34`{OQIMWblVdm\^QRIZHEKhb`NS[Mc7.mMbaLID_WJBaqechRWU[B[DbHnGMaUAJhuONrRWjJ^W@p_>^jMpQNeOW]UcMK>nn\`RO^TAl`OkmSzKqS>h]JCaQblOATO>GGHXwQ{KiT[[5VPCO_NKW]hfeRTViSPzrjjZl[fb\_ViBd_>JLLc`PjVfuYJ[eH`_hW6EbZJkXgXNYDvURbn:Ki`ZRQR^%A^f[DQ`iXSH`TBh[kOHEbgiYVRN`ZUYMjQSEdZPTS^GIa`RNc^eROXT\]ex_aaElgOY_rjOnZ\tTRcg`VehRR_\_a^JRQ9\O^eTt_\]nFxbUr4SZ\[CVXSi]KVK^hMxcblK\cTWFe[_J[;na@C]uhMY]dr[lRgNkj=\LdYJ6_KA]NQMTcRcURGQe\UYiMe]eWhYjT\RKT2cLkgcct^XX[ZL^f\ZsM]kiXJN`BUQz=Vo]JE\^`[sTQLaVNafJ\]IdQ_jkv@k@TRUqrX[XJsimSJT_^DM_`_EbgPK:`[WJ8uIgXTBHUePP_DGpPOUWMCVSNvMMlrPNeHPxpP^bh}WaMpgibHK^hPlW]P\H[Y[(BgHfFdXhncWRP^h\{bjJNKL[aS_T`ZbYN5^NQd\hRFeQtKJac]J]mdYICPKVhPepYXONbjYVCSDiIC}ac\ISFWbLfNlTdJTdb66VffWVSYbzJKEO9gEJPKjh\SUWR6_>Ty\OefQP=?f\IDY^Wb\STikU\:g9W`aQb7Ue\q]_JSfOl?U[ZdBpS5NKMgK^cPD{Qgi\Sl[k?JZP=^tjVErKMPhd[XLX_[yK;eOETv??hLQXKSfJZT_`VBYU>hUWIP@gjcMXTBMC:nANG4HM:[`]IKt[RFU[Z[CJxZYpA\OyZ]]YTjNYmWOK]Z]GTP^kT_Mec\o]Nl?cfMgG[DIUNl_HI?[C\]ZOTddWUPHIboKSUcYxVPfiZBRYGERdGYLXrmcqJnc@;JIXaCP`X@\XDVYXaHfhkiX=YWPQcaZ^[Wejcg^UdHUQjV^|VGCqMbIrZWTLZUe^SMQP>baCcvZUAvCso_TPkvkHDYDLLIL]NYXYLTW\~OU`zOcRE;MTC^ieXnJ9]KPcKZRWDL]UpVgicJN_T]K?`eg^_[cJXU]DQZN;LNwJ`w:rMoMVYRj?FW?VeZE_dOO_NLujNNUioLhb]waAi`OOOAMW^SVuJa`gTMpWBLZSAW^SPYPiXJOZz^bfJZhxTJ[e[XecVULxuYQLNlZZ[TG_fe^Fd\NiYeC?UW^oRXAX]]laWfFX_eMVOJW]fcU^i\Lxmj>N`bNZ]`dXVRTb\hQ/VZOWV\d[O\^[HyShqnSFWS^_qOL]n`RSNUIfRc?Wg\WcKdoJZbKQ`bY[OIuWyWnu\]WnFXSWMNBAZNc^XLZZVVXfQRMLEbbZn^WeQqQK]MMLymQURCMjc`VRh\ZCU]gW_mEJKbzQINVS[iMSWLcL^cVe9OK^m_^_TUcKS`H@WnANYafS_`j?bYV`ZnqaVLJk_]SzsjoCZXj9[cNVLGXMgA;ks\aq:6cPaWjO:A`c^WH{ecRyiK\PSgPWNPDM[tVUXhL_SivRZJgPTofqgOfMNFbsYSYfbfVj[TZG`WMrT\sJUGJZYAk`QpaWIKjmhS]nOeUMEen[s^WpT_cIG\P}iWcXZGhh]yyI\sBNoSzfjZNmcdUiQR;:KUUeOQMPSjIRSs_GSFZTSZHoalOGbSAS?O\QZG\SdN_Od`[a\EZJLGlyQB]F>MNsVn?mZ_FaTMTcRKK_UMIFgAWVNe`ekRad`ZR[`}T?[CetD[B]qXndfc`IjAJOaioT{Ta[irKYdHNEVMVD>xtPjQXUC`nCY_hcX>[wUcC@OQK7bRNoDOZlrNa1OdJsFZpZdMR_WF]nLogA^LJPgHoYVha\SXePPIVVf[O=^qdRGp^WWQfWXAY?HUXTciWH=TY[LaS]k_WVg\[Ru[MEVTeQxZaW[uWChZZwSL^Xdy\UmTfUaRUQcaSQ^OVYHAfW:o`bXPitLb\bM2QjdGaLcXQ`tSKcVUiYM_OERjmd^nRaVV^^KQ[YhXVTjYq\OL\KKYdCPLUVWi^X]_Rck`S\NISW]VeKSXVYPIJSdOVCN]lRXNRPEARAK[\gERQZ}QftVD\lb[ge?Q\GeOkIRWQzTUERgw^TRoPMRYRTHQY]Ph^asivfG[\>mhFmDO[J?VYdpifmSNgGU\>~ngbcZWgbLTdOVbeKRsmYVSX_RYecUSNcaEIQI^bXYzfghIXVbJQ_YCMcfQN[\qRa`IZkeNdBYT\jLncREQKlXayg_hR]G\YLCC]QbJQcM\MdM`XhTmi]eJS;iG[[lSFR^L`K[iMn]XMKYRMOTL`VfX^IpmdD\cwTcc^DbMaSgPxWL=_P[LvVOWFTFVoUbvVf[fmcR_ZS_X]cQW]^[Md`[TdcaZe`dBX^VMIHDa]yQ^][OYOVhMrTTVNX0Q`dmo^aSXoP_A[`Udba_\zhmcYCQa^`vDNC[RckiYFlbvOYN|UZ]GQ{ZKaVGcOpbN}_aXXk_UK\[[mYhhPWCmNF^[tmYOEOYOVX_TZT\_]O>KMKBPpkTRiV]dR\LBc?[j^L`GwSZfP\QTTkeZeLGM`u@P]E[Wudf^]ZlU[JSUX_GJehcurQffXXASoVY4WLQKXK`Jc[KYZhHg_SrYd_YSMDVlZ`oPME^PcUBXY\j^PZ`]fUTZZU]t`WZBesX\pW]V`I`cUWcUV[jaQW_dUPbbC`UeO_NLYeYUPRe_H[acP\LkOfS_^bLRWL\rPMPJj^^TI?ETaT[ja^RXVNFPec{WdUUFzV|bu_]^PUjZidMMcULJfKgqpe\UYTdQocXGaYYefh]RVM^_NkPMdl]MWeQMEOc_^HddC]^N]Ch[_VOWi`\GlWNj{MSSO]DZWVPibP_\cSm[bWSLIv_mDZ_U=lfRMURecgJaXUp`OebpX_>RLUrU]WP;MOIgPQ\j=XGgVCdjlWJ^_[bgiX[ltrVZYl`Dcb>RZUYZjS\YFiWZRUW[QOgUY__`_^Macak\W`OUWZUUj_Qe`MxTGEIOYW^TSQSeaHLarWZdVa[lb6_YDQWcdhUawERNJ^cS`^PLSCEkZhwhPVcVPgiUJ_VzO]jX=hXdcdOZThRC}VW`f\y]AXMaeZI\sISeUY\rVUmKeQamVYDCdB`H;dGZO^VWTNaUFU_P^NoRWFjkK~OrSZWPP[PKaDJgWSVYRcO}skQR`fZ[^fkVa^IAUsX~kpGj>JGk]QZrS`G[sjZlgNDeoVj8mbViUNU@CPkPP~fiLlWLFxD`WQnN`kL[vTW@QgXdbGVtNaQ[CC_E;q]gW>WuZ[lZkZDiMaL]oWckNgvREbYRJpmZqXU][`j]hbCklVY]I_LWnPRehTFYPuZecqm_\YPwHrMSchZ`=ZHVYE[dcJ>PKa]Wo^^o]`di:V~bNkGiPDvKWePc[a^_ZMNchgMBEbTSnPbh[gU]hidWwhjZgHkBR`b`]o[aQj`ElmMB6QZO~AlWWPSpHhRiacNHwWPA9U^gQCSPT`b8Z`bWujP[]VNw^jTXhJIaV_N]DhaRYYVoRtOWqUTLPRbUgVwq]NDjZKHtG1ZNbQXYKsCmMfY:UbcNCQhQ^SXCbNSaK~M@gVkDTdlZ_oc[[=el(bNw*fV?hEp[NMRRIWU=5KFQ_oH\PLCc{\LZtN]SR_\bJJVtpwTOMiJ^iDjaSlnRfRVVYSRh^[HAJ=lCuOkqHMUkbUrnZcPNGiTG_cRoaSKL^NqSUUfP6f`LZ>gbi_QOKWaG^[Q`u`QRcOkD`PE]Pbc`P`MC]]KUGbKEB^WUaJpbRFJhQxLSIOcU1UX^Ja`LIeqYPc\LH]D_S<|j[HK_FWQYgMmDc`?^uLpeF^VfbNaios\nLqw^TPKVk_O[WA@Wr`U^NjDLETl[HPOLSWcMTdVNYW:iRVec]XLZjSgU6oY=iYK\YW^c[wRoaMLZ^hZwdd_B]]IEHJbqGfRfOOFQ]S^VjJOSa^r]@[]H^C1YUNWreSbI?eYKf?TEJ^UB`fbOZX~NwGZhaSXW^LHORMdtcKXa_DQTXSXN[I_?IMS]USNmFcDW;`dhOTLsYWeVlRLZZVQmWP[e]rISbeJuk\SFLEcQ\ZfeOsIiX^W4F9R`RMTapCihMY@H^`h^^^m]pN^GVO>TcWOpGbXorKUIRXayxjGWTIcdWAtXU9ZN_+j^X[ecb[mQIWmsEU^jj>Y[oY[ZNE[>LaFSyKrO>K^SlROSSff_NLS\[kQ_ZnZadJ=ZY`NJoSKaPcZcgWXZcWrZGmneFGWX`_LD?iTGGkgeTXP}RJei>?H`>dVAKP`DXSEFU\mGqR]Tg[:agUSQS?MNG]OF\z`ZWNIMIlZ_N\ZcLjRDkQ`BZlXGW_IWXRhGTQ\AGE`ZZ`ghndIG<`lGMCNeWWAM^`eY_@_HMS|T@S<\linQtYgT:_YGi_Sh}YKJKATUM:bIJmThZYMUSuoEUnLT_iEDo`Th[Ta\WPRmk]IPJa>WujdgUZ`]d^cGlWnFNQxNlyMBYSvkH^Op^LWCRcVQGUaGgTbWIXNRRpYUk;ic_LJfWSE_~j\ib7iXPL{]^r=GZYK7m]]iQQx[KTH]]MlIW^NWOBl_ClSReKKSUmXZF_hI^gOlsZ[ULS]~f>CjI`\QQgW\PKP?DBNCaTYl]UUVicHmrMKeIlCXW_\b\9:TK\]=mM7MR^mNe\nVMKeMhHkZhgaZqbZ_QbHOYabzCXXTT\JbWYysbWdt][DkcXUj`^UhO/MPM_R[n_HeTWVZpwdV^NV^sIKDdUNS_:^N]f_ms\=IZdWX_RrDQoPZBUNSPNNqQTBiCkXpZGMJVVXDU>WT[dOiZX\eLcfQ_Y^Y_X>aWhZ]M[NjHJ]UU@OZYL=mfk{Jc]Y\TEbMUUZMY[[^L]e^dbd]NUMUdNL`R[auZ_ve_FaZy|VJJ`QDIU`PUajmdbQfIgoFAXUOAeEyLVFAJgmXhLbRfKNcLUHcOee\f]\[STypZZacRMkVWaT[NFaLeGsKBg][N`Dd[dMT`nJWgM@NGZ}K{X[cKRj\OjUf>aYpB[y^OcOX]WbslTPWLNWbZOH?`M[lKLA_jYgHLamM$RgRLIaWoLHSWSOQ]LZKT\aMa`XQ=BJT`:aLdnhMDxH\cXGOUV;mXLE]9bXItZ:Xj^JYMc`]UKXzelfncdLrRuS^XF}AccJYXcaSIScJUneEdZTQUQLMbR[RndcPLuTgFf]HMXJs`NTMYh\MI}/oOa`WX[PkWAXJQL\zWi`DelNZG`ZRZR^LYjR`wRVI`SELpVJRU^]Z9UdJ^T>beYWN_UOkPHTEPE`XJ]R]jiYZN\o\MJMdfbiSnY^b~\]lXXEaWg|Uf>^VeDi]jmrTmQi[XYuI]YQ_uU[HC;QMUGXrh`ZOs]Xb]lh_nNj@TIRalEQYzEKKj_f[VgDKfNeSR^p`g[W^[]dW_rS@FY^jL[VHS|VDgHQki@OcP[eZ|G[>Vq^_Tpdn|gvZOETLdUtdVpeorVPISLby]WTPDTZF^:rKijj`bCQ^j`_[YcLSRZq6NKJQMT[XkRE[msWIfIGPjoq\f\=al]oSHileMgcQhSaONOlFZtolQVPLC@\a^iL[NchtM:JgpWmA{oJM[`L_OYZIZ\RTbca[SQhwaO_qIhIaWoK8|gFROV]b]HEkw_eSSNfMdHShToRUXp]lqbNB`UWNS[\sVcLNY[_Z^VaZbh_MZdUcgLSXiL}^_XYJeHMgO^UjkaUITIKX]YPR`VHNjmO;dU[b=SQJFG[Ys[GUK^TPZOJXfR\HU^fUP_djUEAmJb`_SHD[[aXN_QHu\ei`PQck\]^ZWt\^cdhZSSI\XX\`RpYd_RaNPNcG\\\jTrh7afQWb[^fCoNcfpbV]ZKkdWZLVcJE[PRlULbVW\[hP\V`^OeK\QdYyeeeJ?]lSaeQlbY[mpwQFYYWkvO\WBeIP]aM^bgU_^fQ?NfeHTmLvc[[FI[SKfaWE]VuMnWZR\\HPEddfYO[NHWVJO[Q:Y`RTXqd^Pe]TdPAXUNmoXITY[eVjWhcJUpXKSXOfaYIKIwRgRZLSSn`TFL^JYc[LTOU>Z`Fij]SX_yPa8hmBQlzc`RD^PXXiEqiigJgdjhRK`HXR\YWtIYGf{STPjfX=HMlHajTbSaWMSowT_Sa>kYhRWZgXW\dnmeQW^fYNNCKNtjtjoe]NGGWgcYYL\_lLN@D]HC`RuFvHLEheFivRc_rZ[ubCMIlYaqY^}pG]^dtnfGYBLLJK=scX;cT]Ztn^TWE=lLLY~]neUO_WPV`DQbB]SEZJeeSNjX[VYXyGuWekYE^lxW_[[M3Cp\OeTP][TFiOVfd_bcLZEP@kawy[P_^UH]Vbj[E:Hc[xmZ5rpYSId\R^fRfgj?\_MkCZP]PFO\YL`jiGdM_AWaX>oH_Zoxc\[^Y`48S>RlibZ]gUgWYcJ_JT[^f_X\Q^R[oYp]kVd7RecUbNE[H]?IPXdtCY]a^UXIS[K^PHde]KmBOWWWdIVbIWaXKe?[jZ[oXqd_ZQHXxPi[FRWc_ROaWl`BEOPZ__]Qa]`@\MGLmaRPdUbRGX\OWTSTSt_~GU7RPdTobQRWAEHELJChLGaEGBV`U_FI9RRAGQCJTXtKKSgYVY:ZIpTDgr[FXZl^PxE\iheXkOQJYT_]]WERT=`x[c\S|pRfmSNoDWfXbQX9IULJROLJV)kT]z[zIaefeFZjVFbQC]lKPjDhWQJ=WXEeEe[Ut[\qLfP?^E]IgM`Pc`KUTOSO[lZkoCY`r6]oEVhL]Q_ERfMUj_efYLMi`MC_jeRRcRZJS_^QGW6`NYVm`FEbTo?\pNr{euPZh>I]XAfRb\]XkRtK^ZY[gSSO`[TWl{|TB|RGuim_LcNUklG5jDYSYZU\TK\\^NbbH:Qc[SKb`XZ_@_sWRUZKYNeJKNPJTNxJGRdVQ`cfcsi[\\fbYfeI\T?XHMLCQdQJ\SS]K_kbHi/\[hLEUHKksYGqFNhw^NAR_DLBAhW\F+lAVgK?_\Gr_nyPYPZdkNbU`cHefpfSdXPfVEgW_MbWOT[jQRXeFY]O[PY^THVTYXyaXKR[[OyRJhBN`Q[yca^W[gIab[aXWYF?c\RiRphRTCTQPe`?odK`U^q^cgu`XS_WVYWQ_[XZjXbbmVTV]VYZM\]`\WRGdf`fifTYc\TZP[bocXVR`b[ySQZOQRKurT|\SK[WId]Pk]fdX[agXCU^IWE]\`mRXVUNB]UZhaMKenJZv@hPZVWV[oUJMeeMZMy5IyFlXYtH?WYaSc]a^S\QSaPATYb]dKPm\]uhUVCQd[[[MMQjdJd^]QcPR^[aeZ]aSYO]l@]QW_ZfMUiQcNRCMWOX_RmS2XVeYG_\Ia[k=XU]JPH]cdsnNOK\SF7spWKEJH2cp7eKCTj8xPV][bj[Q^saSJecHHK[dXoqgbn^py\LLigNNorSiYZeFlfy:UhVmSSbSQiWSfFWYQOQReNK]Ee\cEcSiPf\\VVqXCnJL_SUOU[lbCwUZaRYfcRaLrPPTmLkR^cWNMDbXcvNG=SaUhItdS\edLWe`YdR^S.aDG`=JSW_^PYeGTrh_C~B>WWD`[\O`jrpQXXLFdU[t`UJJ]NJBDpz]XSIc@eMD\zV_P^@a>XrS^[Wa?ESdU^d[XBfmJWKG__bvXhhRTVdRaSVGDZ^McYQNaMWVcT?ZWUCoQ\f`M`cYqxVXRONTRNgNLh`gV>d_J\HXOb^hmHZVfpKcMU]WLaKINgQeriVl^L]KKVX[WjORYQEo_j]e`UPl^P<_N\Xk|URgPnS|OVUMidzbU86hMOe]E>nfwkGK`ZIh_UxLgfjJVgP\dTbFa]WtLYUVmtRphTqgeZYR^[m]D@bSHVan\qNS7Jmr.W9IqDi7\V=WYOKRIYfnXEWa\@DRVjHTIo_GLpaYM_oRXbZStyaPYMQMlVSQRd]ZUQgYENF]PhJL^PR_E_@N^JWiK`RnbtmOIsQplUnM8^E[ddRDADSfXWR]q~]PVJpjObZWVc|`fidbJPPqVVLZPZoDcEVTvep^^aBnRY^JNSWG_q]]yYQJkIDJjJiFM=dZjIOfCPdjBYRQOjKQVaV1chUC\YPW_aSKdKlnl{PJ9f`KEm_[HeU`1;dT\DbHYCe;tT_LXISJx^^3Z:bDZOg_bpM{^cbHUZ\aYVTFl\GZg^}mhRbfgQ_BC[I7rhSPVROCYYdMhOW]VgK`<:^SSDbcZQf`ZIRR<3kAaGXU"obIXHH=<&L'dHTV=V=OT]TF@VN\KNNDT1L^KA@sEE?TBUBWJ=XCKO]rJVIrW=^9BMPSAO`D\PWXR7U>dRWABEfX\T=G:LFSRS4BJ@Y_^KVhU34NHEQN=UcZ6?6XOOV51aTGQL8MBMDCSj0JI]_;Y=BIdgV5>Q9RSS2IB9X9SAT@iEQ%;ZIHcXCHVDGTNNWGG0Hc8U7EG:Z6JeiLOXh8H_ADHEKD}ZKDZTQJCS\RA=^,\D[ZU>_A[K:_PRGTPO_FXQW\NY=1YH3F+WVO[8RMFJ3C?FjNKKC`WH_e=}hkrERfz\Z3[b@B]vFRTMlGQCb{W`PThD_b^L]GWRPXgPM\1h[KjgPW#mNPKoZW@OImYn:CDWga`PU^_YL`9hHeXap\bi:hZ]LPP|sSe_\^aSWMSgkBV8;gNSYOm~TksOQPFSSPgjKRXCmUnQjTZ[iEcR4V[3AG:[NI`vSI;[~sUX[_SZd6Qfja]]eeIRex=T^KW;XZHU]I][VUQ([ET_jSShUQ^FQYeW_hTUO\OFaP3F^WVY`^dPCpIWUR]NjWPfLXReEQGee}V9PI];QOGT[DICXOS[OV[LYQZdqSKZ]sCG]bZ_jN[L}VmXViUSMcZXYaO:MSqIpeO]`emF9R`bYN[N`DRYb`L[?R_PmJoVRdecZb_g\IJe[`k[UTVH[^VPaShdTnJXd]^RQoSFafOaRGKP`ZHGf]DiWUMFPZCa]SHJA`T[[X]DPeDYjaJvcHSXPqRa_ERYNn\UIgaf_yg^EjcZ^bXVncGZhF[ago^\c^fVbmmSVL[aVGJWmJKK]p`|K]fP_tX^M|gLQOdYdvJHjOPBoMYaVLiQ@K`=`\[_U_^gm[GYZg9VW^\NmMqRkmUxOO\V_cTj]DXYYVjLa]cZL~b_ofISGS_uLH]qZk>VLFa[LmYUB\bpMc_ZiScT`QjYTKi]V?^kT\ZL\IFfpRXZGKmWUVCYnb\MNaUNdoUaOCXT[q^lGcYdC`XLnqN_UObOZDQU_eFZYwOu]`]^QUEG9jU_wGW^Nc]\CMTcihKJR:e[X^IkdPH\][YVqTDYEPUL_]s^nc@Y^UbVQXbmZZ]SfPQhYaVnwMUSh9QLV[QFLaMTfFa^OfUHQmXTJ^kzU>ZfnccN@bR`H_Fh\]XmSZjQPuUYSRCPVn`_BUNQ:>_DgY[dPNIVG]ee[=ra\hFX]TXX\JBtGQJB@]HPT`fvpsOONgb[Uv54IaIcho`OVobWKPe]\OHhIwlpTQ\O_fDd\z\LbF__SW6L`PWXZXgt>^seZ]7LPQYXcGeI%uQYdPY_LtP7XJOYN_oKfcgHIR]ZB`Yij]JNQUfUZSd>JJRSM?d^dfzOSZphg^YiVWaXp^>bhOB^PUQYtPmaPqUZ=WXtVKcFE[][SU>]Qeh]TbDlEbhr9Ef[WRGHSmeaH~BMWOCW\ab_\tVTcWJKc^eWQVaLWXeeVlbl@LQBS`DiMOQKk\nHMZbhSSaK[afoSa_XWZ[QTVbFVXzyU^[N@tO]WaG^UejPedSElj]XQlUZDnVjObScWrQX_[l[mMxJ`X^CjTheMF@K]H`MVeb`WYp]bZgfL]MaeQmD[YmcceS_|QpqcaWJqqPB\VYLUj_^eTP\ZZFa[|eeNaZh``]JNVP_`Tp\WMzSElTJ\H^XT_ZI@bO_RU_SI}Y^QONtpXVNQdgW\`k\InC]SYpAXik]alYS_Uq^Hh[YAW[uAJXr\(nVL\ZO\VQOK\NZKx]Q[SQX[XYaQPtQgP?fWsZSEVL^\IhaO]KWTWks[_\Q`aak8T\EaMP\i[|TZF8|qBYTYpe$@[SVldKKTNI>HYlOY[OS_XhXS`+v]PJLWHR6gjTlMXeOOUjjE@O_OI`TiNlcZBPYTkWf]\M[mpM>s\l?]]kKWFd[vQIX\Sz:e;fc\cZrdT\XROJhghoMDv\G[QNIDNaYngY>c]HYTjik_NhgELg]ggcNI^KWNRFVhCwxBTMtUsg`hd^YgKeTPUUVX^VXjV_]PGeb\P^sSXkY\jZR]lLRiQWw]KR\\TbcygFdHrSKeBicSSCTUGUY^j]]SNQ^VVTbHzMhGSL_VfQDHyOeG^^QfPFRgl[[eMahC]dQbf^ZMMHXPcUi_QhS^lwhWP[^Zm^KUdBbscgJ_Nc_S\C{J_LFB}_lVH=abk^TE]bYlIQhPUL_TMTiWDJWXUL]G^3Kb`TZLZQiKJoSVShJZLM\\N\NU^f_Oi[WSn\FVWYVIeT\qjhWyTJS`_VaATyN_\RdoiLbj`]\?FICcdMLPoWd^nO]^HNPBl6PWDOXZYeKlQYQWf>QX[hXi_`MhZUf?FGPCYXrpUJ`Iea^D:^u}OcgRRUNPJbik_\UnYUVHcKebH:eYeVDMEOVIq[X\bP6Va\KTZULWPskUROtnQM^]h`]ache7nXp]^ERL[bV[XZ`OhcSXWbRJihPOJW]ReREeT_9\KpBcY>XgDAeR@[SYE\OTW?;_@^XTYXZbE^\WUjKNcQ{nN_cpV?]KdYJpVkez]FXfFkR[UwRV?W[bRMixbfEVRef]Ci0ARv^[@_\O]l7eB[SRWjQddRlcUMO@HJ]biWYcIH8yMYkRbWfHTeWk}YjP`RWBRTV^F]auG?iVYC|xgOgTeVkXSFzTo]_MCU^UL[nkV[pUeOLOX]k_`Ps]P>gLLQaXMXBL_XsQX`IVZd~TL\YPAGg=iLgiUdcPVtUb}K`wHUOKgURd[[VGZnj\?i]ZB=eGekyAo>JaLbK^G]`W[WYCGpV\3IiIYl=QLZF`g[SKiNLYQzag`WQIKviNPIGVP^nW~MeZIAPd6r\jHAXbkpcSZ^Dj^fUfQ^M\XZ`XX?j`gF_^X^QLiJLIhaY?PfFNOJb_PL@fN]\:`IVM;\dXTSINUQh=mT=RcR6yH0gW^fYNBL\nahSlFda\JovZ`[Nr^5UQS[]e_IUZKIc_]GM_J]ZKDcR]]L__ZVaVM`|OlZpM^0_bVW^TJ[MY]QcXJXaUTNcRNMP[hVOfCVTOKbUW^]HUaj\bMNeAccW]FW\fYWPbPJWJGrEsNJKOGXZ/iQvZU]SL\WLQeEvjPRO=e[UUT\vZ[ZVSZeRQaNOOja\UfnSZP5Cd\\[oYVc}RUnMY\]VU>SgbdqlyY\lYcdN`JafDN[dUZCXZI>h_O^JrNNMQga8UKS:[XOlKakVlb\h[`R[T\SMMLdRcV@FYCuUPZfXT[]JcLMbRPImsc[XFXVNVMZWWC`fGMeZWmaFUbXD`\WXdVJXTK[DJVebVTU^fXM?X0QO?bA`\]FIa]a\aSQ_PVfEVdz[^SQnVNbi7RalRMTVJFiX_:VJ\cD_SjWFUOe\KNUQYeTSBf_P[VgScD^ROBK^F_VO^d`diNftFT[JmCW_PQH_[^_GWX][gYHV]LRbJ]XS`PUH\QLgVogWFMuRoXlSfXd_pYXLYPQ]mjZKuJ[haf\i^FYSQVXqSfjLXfSDMMfgecDV\Q`~YULYflZa[OLQeJFZ\_ecTKZqbKXLuPY]LZ\KHZibbRHfJPaS?AQS`fQGWWQKUGcMkdKOpXbZ@Jp[FiPMQQ[cdfnSQSWTUQVcbidRw[dUJncxZGv^sKY[VQQZW[_Oa]\@JS[]fP`YlWGAxZcGbPZRtibepwO_\XS_aUQ[k]UHafcQaWEL^J_VUYUnFSodMO\bQ:a_CL^VAKRg\QpcQdcTLJ\tJjQVPe`bPGDTIPZSMcL@E@YJ_[V]QWRRgMXrQ@WNAPeZ\YDL_fF[[fom\W;ZXPeTY`]]KCUQKSlcQvWc[3eUQ_CO[HJSxjGboUnpCY_kDFcO1VPRRF^LV~_MWRY]SblcHM9kReNWx>Bw^]`ecgPbSa\iY^GaSAC[P_SUVRPcRMcdK\LL`C[`X[hSVTRoJV\NWemUHhnOhR^S_Ic]ceRO]R`ZfRh\GWWhSdscdDKq`\VRb[fvokhUWW^[qwV;M[[l`]fpZVT[gpZULW9jQScj\mLQD[qndhT^X\PbT_l_BGghOhRYgbEXSrZWz^f_UQafl`JiiXaVWNVb]QZdzMcG_[RbXVLQRcRdLi^id=^PQYVfXa_[XHYEZk]oJZYV\VdTAQUN_b\IP]rB_bKJ}`?\e__OrclML[^wTVCV}WG\ZgCO\xeHSI\MU]@W^Ec?bDg]SbncXYo]]PK_VTS\FnBVXNqSO>@_tWWYiflRT_S\OSLPMbdCNjjWLR`[R9:TtjJa7@U_gLXoLQ^{XNddCihUvCHWTPCXMWNZZZ*bTOp=]ZqBHJW`iyGpXRgPb8Jr}Z=TbeUPZrgI`bLq[YeLeTVLFPQnG[d`]M\vRMO[CRIcKVQ`]Qai]hSQPbXi6p?h^Xg\YaiDSdQgJL`lQNlYxFgaShSM^`Nh>DXOkW`5LWeo[V\U`={g7W_ckWNRGY=`NVyb\`JRLCC^]m]iQW@I[ivVTWQfY`dNXq=_YYIVJQ>YaNl[aUdI~cKMiJaPS^AITK\UQ]bi\_Bbhn`m|FWDccIncaEWJeQf_=JTacbW(abYZwj]@WQ\VYTLXnWoADpng]^L`UWVaKkFHWMSTv@cVMWWhXykUaOJ@^hai]l=WKZ^VT_pS@JULb[JLrSPSPVyLraOdfQbcQLe[RQhb=_^KPFIcpFhHYk|foQ_brG]K[Q_T^QnU^XtzcW_k?p~J}Jd[MPSai^6qVF\``VhM;Hd`v`ei\oU~PYJVUXaciOcUTlShddXjccRdifJZMLKg_NTUKkIR>YVYYKBbch=n^dDi~ETJYqkJlJJbfJ`ypGNPkbZT[ZJTXXgFK{bKZZulmTNUl`\cEiWW@M]UOTahSXLSUJ5UqWWS}YLbbLpN3ugXdj^^[aV\v]CpYyUYe]_\VzR[oCFXQSW[OOSSdk_as]IWaPOPQiad+K8]\n]DIjeQYV@SK^Vf}vX[F_Z`^OPwGf[iT]RdSQWMiMV^_[ILjUPNVZVAjWVmecbTfPClVN\P\pUhcUDfTS]\TSJMej[dLaVgYxd@WrvWa_dMWFU^[T\hOl`Hp][kU[XSYPYUUza^~MrY_`RM_UaWB[]OdfiERQGHnKWQZ\mUMcqdb\Ja_A2BO:0YMVQ_MLTawne`LdhN}E`[^cUghh[kb[PkEcMK9@t}g5nOaO:8@OLNiZs_GyRZ}:yMZ\R;LMAhV9WSTBfaIjcLZ^\D=p]_O=bJVK_QdP[|aNgCF]O?dP[SEV[RRGNZhpcKOQ`mcFbaXQTTQQTOQ`WSKO=MVO^YgjGNYTIG]aJ>VNVAYO^9OGV2oLOEN_UQZXJaJn[KAnPd]OZ`ci`dM>cSSUBWflWdiQg]cSjXEcDvR\PlVTRheZUROsfVLShOVVPTQTW;kbFSIvRYUWYI\D3anN^aNFm=xhbXhldch'QQV=uF8g`y^Zfj?pNQUVb`X^WV^WjVLG8TTPBYeY9WWHUX^fMXC`L?JL5^gCMcfHn]P^L[P[bWCnm?B7^S`BVOPaTD]lmAQ]5R`QV^WiUMJX[Meebbq`mWRfAYOLgYRq]Mfg;M\]`RECNvE?O{[rTi6|~c@|[LPRTxjg\X~UTY*7UoT[7jIO_\leBZTiZQSJVONQFRX]cRb]MTaIbNtmqZkWA9Ad\WWDiWc`U_Xa?VBV`MPvYDiNwxWVRUTRkNSGN\agB`MDW[bPZN^JyAQSoXpQ:fTZ2RRfEPcYlNSLUeOQXd}y@K:eQ\X^UVoH`bNGI@F@YidXWDk;nXcuRMLV?`vdAQQEVjLcCOu[c<7OkUTU\=R[N`<]HUzXi]y_}R\\=i|z]c]iYS1O:SkfM]qiOU[P|SNjGhf\D:KSJldYYhmln\mVz?fcF]JLVIWjObUC^Xbjm[rcVdTWmLTIEaETPQRi2TfSIOjedcPKUYR:YjG^ZHVf]]OTM^^VU^WDNO^QeGEBf\LSfXK]lWPQN[W.\_D5HO_;=kwXltwNMMdZK?o\Jm[V\Saif\fcRPBd{E]ZSKQP_f]SoU\bNJ_aef{=UWWKK[C\oKM`guYGkce;bATXTPN]YIcN[i^gFdMKIO^4RXO]|mMWVIHXXg[c_NagYQUDdJXNSfOYAFX[^RNCa6]UCVR9RK]fdduX_Z]JQbdOJ\^UNUeTMPP]W_AQ\RUO\ZTTRXU[XYzHEg@SZT]QJQx[IP^KQWbH[VZQIXWWRXd[NoJS]?YWPzSL`XYP^NJVT\NUODNf<\dCkOQKBsAIP\iXeyN^OYXySJSSY\YZfxeTiQXbT][?e^X^Z>fLDgH]ZPH<\^j]MeQVR\`LiUlQJ\]_dNdCT]^JXMKWmDFIhfTmJLJiiBZPNbWNXXYPHgqRV]NNFOPdHa^@`]ObpRGzjbRGobiXEPVW]T=]laLXHRUFctJy\Q^bUNS_`pURAN_n]CN[jfLjMkLTJ(kBrmObR;BNzLGW\UM\JIk^\RGBJ\CDXZOuiYS?nn_eKkQPGHgy=uT`MK^VnjGkFjhZXg`-ecYvTL^@bOHp_Y;RTa[lZ.RT`UdIcOETYZwHeRJ[`OlGHaMdIU1P:rCYfU`YWSPqSWP]M}Vi]jZV[eXOb[\nOatk_V[jYcU[X^vOTrcY]V;bfmJjJUPX\H``@RHWbiY?RecRd^hVPQ`@NeHCbWpZyQHJcLKdZpR?UoZBQCj_rYGBSikkF]ThPUXU_TQePSTcRcJb[TwHTEWcgnercU_dmIH@EqeFY`NmZVEMbLdhbmZOSY}[ij8oWNPvV[r\GYbOWbd?\`O_@a`fNYSAI^[`VnyJNOcFi\bQJVi]RIOhavXY`IkXiJh\PNY\cHLLDCSVYoVGgWLT\mTgMXYmYmYZSUo[:SdVm^YTFHcLIUmcyrBKOzGVVcfOPOSm`W:UVTQU^amPuL_R[ZdO\BWLRcS\hVIkS_hDWVPZVj\PtNiLOUQibWnW8g[\]\\]NZYd[fb[UMX_]cPcd\MYMTe[DdNKVDRCHYfJGbAUYMMJOoiKTRRdSQRCN[Uy^DjudekGVObW\ZJStF;XTBjATOhR;QBMZVdtOlJ[HdZW`gZ]Y\V\Vh`lDqVS_id7]LOrWm]TKJgcfERVDWyIqMDHQqmUtp_bbR4eJmQCNsTXU[liJ``iUnUxNYRcIQvLQ`OSYLoAD^lKDNiJ|\zbmkI_FRR\\OPQYOeAgYed^wjwZV^BOZaHMk[f;Q`>VCjWdnYKa]JCX9vOGa@_Wbi^POhXcbcUN^fHZdbNK_[KOU[Nse@UYCPxAjIplG`Na^g_{Y\[MViEQlnEVVjbFfky>b]MeOj\qWnn;YeXxX}NPc[WYkcudaKuPrZZGRQGQT\{Ohi_`XcWmXR^_=YCHg[hkTcL`TVRRS?`DYLTTbnHi^^xQjY][ygGEokRG;o]C^Udad_S_TWVRH\TK`Lw\aXcJ^DM\][V[RFU\`TnsYy_Dk[PT^QXW\mNRoY`\hoMJVxaGRZPXQaRZV[DONNLXa^RTNNSPMW_>d]L?igFwTYRXaaCgMf(alWdmJ\CRjWVMN_R?RPbWNV`>SlmVrJ+Us9MFNj]QiaZ?`fVXWV_MbQ4@ZdYehaRIR@d7^`lfbRsOVZ]HCb]dnj\^IRKcvOteBL]CvK5XPPFU_XDTdQa\]ZRdeHNZoNUk6GRh~MO^-_MgWdZOzQVXt_ePg^YaTUJGgiamc[XQne]Z`a[GgeP_[tQRUxyEjAJFYPKXuMWVdkchcgNRc`O^`W_gePcOoaS_LlRR_Bid\]Zdx]ynOvEy[]]f_\DDhEK`PL?CGPRObLZR`NVKRgGkYNR[aKbataOCanPYuPGfDKWoO[~l[]ZR`[WWK\MVLiJQWNVMIqNYMIQ]MWsLoXjVEJ>JImR`WJTXVRUJQobZQxWUMWduFaaFE[eVZ\|POOAeOJ_]WWPkMgcl`]\AN_YeKJMNUM`NbWT`_OIsWLT;]GdOvcw_IjnPhaQaV4NUWaaTFaOMnNc]ThaK__P__NQZZk1YBMe`VgpdOW@FT^@VMJdMZm_Ju``L@WMS\X`Mqef\|PhV\`eYVSW`VZYYXg\_PYOUeT@USLFyc^L`ecZFrXehinidJZROiLNE`LfCbJ\JC]MHVegc^WDPYaeVAUV`UHeYRaYabjFV[arBrGBZNKYtebZhJ[fEf[_M`k_TAWVcOcX``[NRbNmdIQSnLR^aglIFP?ZUcQ]Uco]JVYV]iYOLudVcUOWiRda]XcYi^J`PWRP\NVZ[?ZY^Pf~RQPsiVXxdU[?RgN_^xpKF:ZNd[`hi;RJG`\WS]b^QYjEQU}e`jcRSXQ\[^FVI7MRee4\OQE{SanA]ZYOg_MEfRGhr:rXR@dPGUV]OvTplNjR^jeOuftO\Ze]auQY[R\G_V_ryCIcdEFPEW`QUOHEL|CRJmZu`OPR}ikcWS]bR\bmeXOF3cWT6fVcMlhZqxXN:TeVURa`^QZgVWIMSteIkQKT[azWLZUwShVcMXMVI_kSfaloPs}]^aii;m>xrjaUPMMaStp@n`^Thkc]CYG\JYOYkE0V`LQEK\ayU_kMLVMeCBb_\xO_SMdOGbXLMyCPYfFtbpQsUZRMYLd2pMhOzhJtUKJvWdXAbi]dLh>?pJIrdHlwJcezVdhaObXKaOWJOeK^]_e\J^g``QKjSl^_DVQnNV>boULXZQJYB[eWo}[dJdU__KbMl^LNXQO]HWdc[WVRmHssYVXCU]aS;XjPDD\nmR?IERQd`DQUZdKF]wD%AaeUS_[btECTXYVNSCGb]qRFUln~NMaIOQ6fdXJXVeQmPcSdYEfdi_P9GF^JGiqEQ]SOQeRcfSi@PeihamYf]`mjZ_YMNRLe_EMPUdTMWAdcbSWZ[KoQofEAcRHkyLfc^vREZQ[^zLT[JHDuVYLPRPXnJOjLrR3j}c`MohX?m?\Vs_cav_YIlmPDnLOCgVljngyHZcleBcNWahQSoJYUdOmXQZSTPta\ElSLUO\\yVIX\_fXSyOR`U`^Qg\s`NamScKbe{[c\Jaa[\TJLJ]]UOf[bR^fm][K\qH[Y[KW[i[eZcbxziQgZhSOP^GRTBREcZsNEaLbRbKVTXgWRcSV`OcUl`PbTlJ^h@iQcIQI_dXjUT\bXU_d_hqfb]djrVLVe?GKE[SZgRX^VJKYJ[keJX[fJRPeXmdBRTK]fivTIXrINdwgn[EPO[TlKGEa>OLVGlPb[VkLVMC^YJTWVaX^ERQyE_BROubREXXmmlRUfZIi_e`RXm]t^F?JhocDOsA[RO^ayk^T6Op`iU^KUgCCP_[d<]jFNjT?nNuaO`]^ac[T6dKKceRKVRN[V{pZ{Za`WSSSaiodXaV^`[[Yck^WS[=`eM7Y`dNPXLXWt_b_a[zP[ekPFV\ZPK\JRP[hIlRQcirrLmMGclPM?W~L_uNi?JfefKDfP[RbQX6UU\Pml[AMncQa\RWvGkZYio^]oVec@UZsYYYAXJc}]IdUq^K0cGAZRGPWbMWXSfX[MOeK^U^[NGNp8k`[aC\lQq_hjAMVZAQ`_OXdUW>\PTV[iQSq^Pf:UjT\U]>\k^kQLwpnAYVWcfSdWYc.FTTnG]iPqXh_SUjGTfX];hDb\OSL|=ztncQRWWgdGdhT[QVMKQKblkZ^`TKVt\WWEQ^AM_dS9qYieWZmOJWN_cTK^DMiZQAU=lKDiPIV`AK\L\Yl[DIW[kTdSWeBGdXL]ZP]Ver]LlSHk7OWgZeNCOW^]T__YZKJYe^W?ac^[vWg\aiTOOfXuki]^S__PRKOmFPuNNaK`TXSqWqOZ[\K^EfS`MiZcVmeVhEpi[YURWvTWKcXf\aYctEPDjXJhHXHc?PXMA{AqUE_`jebN\hVSafbfVjoUQUYw`QFY\Noca`GfeknPU]FE\pcfzMK[~D]\Mhjhh>IbdaTWWSg?]Rki]kSRG]QRa@^fT^CSVKBRcSNQOncYpdmWB`Wln_RwHbM\]Y\GvCOZ@hPVNSPYZDuYZg_[\Qki[^WXQ]JUsfSgjbT^G[[OXlMc`i`JFbHO`CcqRcLPlofkWrUrGM>bXabEAp]9_uc^^QTSbLrYkZ:cl@dfTZKNKnONTc_ZD]`UeaIejUF^YcSoD=W]DLQpIj^=j]fLih`RamBB]OKQXfDWh^_eCAj]jdXfcN>VREPWZGDcrRL]dKGVNvjo_X]gFOERvi@d[Chh@VVjM[W\qt{cVaYkiWfdOV`aYwQJBOSU_Z9a^ZGXpdSapORXGktCQ^f+]mcnTJbW>WSRHXvGRfnqLWXKVbR`EK^VSdEPF\bJcBmqMDDb_XsH>u;jbnO\OH[=ClalGSTUhOcSG=PJ^iSCIGQgYP]T`\_WmBeCgNHQVOL:FL[LJ}wAPQQYaI`M]vKemIdBNHaOHeYRg`Yce^`kfgmS[WV9FGS4EUeI?E^fRFOcqcidL]_FPX|ZojSRUEiFUOLaKgSUV`]JbU^SQTO^PBjNVaDAB_Q7YLjKDKA^GTLGUXXebXWZYHTOkeIIfPT`ZP`D^[YbXW\xLIV`puV]JLTjZaZbLmPRaZ\PMYXKHu_]UKEaMLecXvNHoZdEReB`YbiTTQmWO[TZgSOo]YSINd^EHLlbSmTWaSOmi]VokNaNRMCLWTPOVGO`\^UM\Q\MZOMWfY[e\P^iY``e^P`slPKVjUlGYig>mU_TOWb[K\^Nj>CEYL_f`dUnnNGkFWJ_CKT?Q]`KZgA[YYsl>{GhY;XWZfeFBg[Ug\Q\]kgtV[]OXHMecTPMEcX`w5S=a`aTehy\WDQJOWp_ME^LAN5Qz9\M^_R[S`WXMr=Y`_ni9`J/PbdM`PUOCB,PR^[W]Op\M\Nf[_W\NYER`qOeRGUiSWRdWL^^7_OSgvq9W]TdS]^bnEpvzRX~HEVZ_SoKNZs|gZhPLewO`U]SnpUnZlShX`g]XMEiqLe_iqSpPKYBcmUBTT9bs6_tUNIK{oLGZ]QYJMNYytdI^Z`TpZf@lQ[g>ehHudZRObSeSDCXaPFgjOWcZHN[V`TSarGsW]a[^r~LYalsGfgIm|_KL[HrZei?Zg]VQhRhPQqQ7bYriNoNaED[UWkyYkSRKZPTTJXWj^S;]bPUnZiRGInCPa`PqYFNbZT[Rbt_[eV_\a[UcXSNyhLSEWILcTS[=J_cXQEgmMZjNSsUqVaUT=`\Ci_}f]?KWkX`WwbS[RXdupaUZXLD[KmcW_XL^fPeG_VY[PdYT<]YOm[kSUXgsIMXd[^Z[VMDY`n]U\X`YOGjXVVdfneQXYJf:`\cOHO|^_[YVXWa[Whoc?kbYkLSTWSL`TBT[_SaYRZXZe\mk{yRX[VduMEbQaDn^TX[XWUZqbGWS5a`IBNOPbiF]HdWRgF]Wr=OCYMWMWcYtQNZ^[G]ZVSijdIUZ_a;a`PCej]AnHtKEV{dR>_{igZkdh\U[JPYMsPRf`LU]_S^Xi`WMYPdc@]NbrbPG|IfpOiINLgOJ][dimkLSLO`bKJkJR`[iVD^IgXZLaOnRf\WWpbedIefQehITxbIRbkZeTgJqNhf`aKbcEZPSY^bcaeYKeyA^ZQqea\[dglN\ZLac]dlTTTZBW_O^CDLLLUXoVgIjZTSg@etg[k`Ka[EJaRXTPYMWNXSPUc]f\v\RZfuRLbYZ_kn^K{XBbnQ`ZXV\MK@^Oe\KHhSOVZBbd\JKrNIGQCRkl`A]NLO\hS[VK3M[[PSXgZOPIQITXB]kJZSFK\QQYC\SOecxd_B`blmlbK=VKZLSB_RlOhK`kCWG]n_AbRXaQ[lWfRPWe]]bjOHdOo[[M\lT[SWqM\y]OJWRNeHR`Qhe\cMIYUVbW]G>ImLKIi\c>QtiFIS{hmG_kJ]DOatOV[^zFPzPcepVXHXbE]dWrIefclf]bOf>kbPv[XGoSRt5@RUNI9cIJTPgVcKgM_jjNYS{AZQod]7_TMDUAp]]SlRYTaIoUjPZ^`JF\e`Q+YfMV|VXbYU];YgNl^T]N^VQMNN^JPbTQoDSWGGMm\a=MKlJN`NPuU)\te\^4cg`PeN[`6VxWZOX_WfhyBiSqnpDBf`HU_[`abcTGPR[QBS}ZYILTYuRgZ[_qQXad]_HWWjWnXaoBsbbcZ[UOsXgY|fUDaoZLLXXbc[d][d]`u;iZfUb[E]Ogn_EfTYVWVKvLYWnq8UPMeuR`fGZQR3`7MCtgXbVtJCTMMGORlZTkDoea_lbZmlKcXOjSl\tRL;LZyh\^]VTZnzXXH^PHQDmSYbOm_^GcDqFXZZFScK\xmKIAaPl9RoTsMaqLXUd^S`P^ZsdU[zo_Z]{sXkHbR_chX;PYja`bPOU[iweZDTBH`VPZ\g_bUnL?TF\hOFQNYMWlDggiS@]Nal`aXbWfQ_^e?KypeBuJz`UTmSsSS{^lXO]Yn=PFMOYYoIK`ZsXrij[V^aW]UdpbKhNj`AJwqWa`C\[iETUJeob_SQhPSPqWQMIpKVc9Y`IUYK[VM8^;dMLcres{RIM\NZgGCMPoIcKgZWF[\fWTB\kTCg:PJIgIZT\NE^[eQmVdBTT=aKhF`fZYTR\IM`]T?X@QQ>\tl:V[Y[\ZTXqOLW?U{?lL`bOJYWeV_Z[}BUeG``NDGJV_JyG]RJ`L\PUf]\OKoOiG^N_\yQEfSVUF]JFnruY_IwNOQl^WgPsW;jWmo^I2a]h;R__KQ.kUQgLY7FO@CR|Y^y>iNT\]^mCQVTCE8DeU`wjH:TQTO^^S_QN;h:PGM`nPAWVPlATjk[ZYPOsQI[KMIUfhkeaYdaHQUaDcRAl^UnXKchgehitgfZ^qXjO]kWH[SKW@]UhfPIArIKVewNWRP^HrRpQOUXZZJRe_fcNV_cTBTdEo]J[yNudT]ZGLXYK[ZDhMUD\N|>NF8mmGnPX?iVNeaP\D9dZVzWQaaWEiij?IVV]SJ@eUK;UOVi;`tPfamiXTWAYQMtSV=UK=DOzvC`Oc~KNGgUY\WFQDmc]GiTfmplBSRLiKDGVM`TgWJh\\_PUY^NjgSB!EVNMeyqDYm[uceLnMTVgf[UXZ\Xud[cCufHYVZXg]UQ^O|cOhTJxds[d]nIHMTiPbWFIGKE_VBhLaZ\cMQQ@PQilpNTfhbWqOHNRdHRtFQzWKmXgUFRMQOSXhxOQbNGUWs[~\A?ZpYClcIIbTWPb\JLZ]\T]jSaK]PWh`xnQcpeO\]UNeL[Y]NGUENR`>Q]`aTPk_PQ]L`U`V\J]UEte\drjIMWUXgKcMYGk]{P~FI^]SR{iFsR]PT\^WRZ[QCWB\YSUOTe_kq>RdR`IAbSj?\KGRW7YUbffa[ZdXJJYgBMghLX`XeSmKRGiAd;nRiMg`LTSQZda^]mVfaUUjicXn\`Vbi[m^VgIJdbQeEJGoL:F08VCQigWT-TKfTQZ_rP]nPKVPu5]_hmXLQ6f;^[S{OtngRHz]ceTS6WeVLifQDS}FPSAkcg7f`=v8`sMlGrdHXRRToLIkaSc]RbdZSPZQ[eQiWRK8^mCO_IZYZ}SZzRQbTZ\j_gPVEjjVQOX_TJb;bcnQL\Vhke\^pPOdrWcJaYV[d_OL`IEIGdsQWKDhXiPYXY\[dhQjb^agWm_QaJ;X[d^RLQE]RfR[_\O][jFk[\beZaoBcQ]ThZbqiN[LRLd[\R_dH]YgTfZ5lDS`r\E]Ue]lgoEdLjJTFY9DbB[T@mWPX^B_JUZSX\a[vKf`UOZVNMJWpeG?haHSP\WlakJ^G[a\^fcalHM[iaVJM^b=Ba]dLGtRSa@B^V[RQYqmOHUOBO`V^mRJNOugVcTZSB]S}]c\b~_^KB_qWJ;Z=lZVY\fYdKVVV`\YTp\aV^[S^\\]WOYGc[lhhKPKPhUY`ceXUQ\}\]KT\N;[NhU^cR?BST_U^IjUX][k^UT^SLEQQOSSeMm_UMsXoLOVHWYT^NUYRS;K[QWdcr[Y>SXO\DlIfXaXRWsUVFSRYMaRfYjLPLEpSDLjI[NVZliNYTXLFh5qJM[e^\YkZenmX`KR^jchY[cPoRUINbX[[l_HabLPaKHWS@ac:WX]N;DLGUZIPSic>@K[`fWI@aAYNVSCOUY\Q^PYGLKTTTPP]RPLRaniN`eWHH^bjqKXFSJU}HWUaiUJR_cZHI\kjbToTaRiZ9]>LM^PTlWLnL[Zb]NQTR]hR_acMf]?fWKL@HGGT5S]DIGheT]QU^HZ^KugaHXdJFGWT^STXUPTSTP^_AO6`[Y\bkvTeIiUYM`U]WVTYNHsbINRQLgDZYH\XT|?=XTFJV[9`JUdQm\=IMb_kZaAmHQbh]d^IVSiKxcUKfMYG`GYT[^p]T[d\SYYognB]fLdMDmVF^IP]=`PKVOTPW^CRYQFaPXV_PTQNdaYN]cCOPSUKDeIXWd]iPfZ\J\ZJ\PAC@eLoUkEJhLP^YQV4Y_]ae]sLwtWz\OT^__iFTPHuXn^YZXSTZOJQ|YbScjIF^]|jUVb]HFgQ_Jq_UWvS\LUVooSRcXUPfYiUa]UBcFQNUcsPD\XDpSOT5YUZPs{S[ULgZ\CWORW]bVVoCLWSZhQPK~WUieQOGVeVahLbtRkPxtMH^k=JVgqHmVmXTQARRcMVt>ZGAQMjYrHFQ^RmQSpzk_[hHWaNgWVPRUTqYS]O[e`JsSV@QU5P\JYQ3dLdjpHb`rXb[NmAJL^cFRcLYvLQN_gLcwcTXONSRYWYlo{W]sUifY]fxYbMYhUIb_Bc^[nc\FZYVhH]UfxSHivNYpkr_TLHeQl`NWQQYYZY[[`TlUfphZS_MbWCHuKSYbSaWWL^u_VdpOcvU_elm@JQQaU_Uw`R\TK=eTjTQ]VXNbBc_LSQ^`TJbbOXo^[^]V_9`>kDcSiL_LOIBITO\zM]YaXiZcNmRJ8h[JPYHsJ[cTKam@`\h[[TFO^]aTWUmNqXZ|TLMaMXGKTiJZTcB_SkEWPFfmXHSLGPNBfjhQ@IUgRXOg_@hNB@jL\_UDh=mKaETO[eqcg[0TUQS\P|H3Pl`OTeIMn]`T]s[^XmyUq:a_Amn^lRhMmGLoDpoIJefZueYb@aIaPNOeLYYbYUlhfKbTqQV^]frg\PTUSLQMbcFfZclOdMaTrG^ZPa]YUdVX^mmMWNZNX]DaSm\]HLG^c_P`jgVc[UvU[ZlJ\jgRReXXEF^kxMSSFYJSNQ\snJahOI\TKSGN@VOZrNP8@ol][cZSfZi]\cZ>KZJ^HaU\US>EPhCQ`WMYTt\PcmWON];QGUKPSCMCvQRZSYN>WSaKTDQCJh2`[BTYeiY9qKXIMa}HfVMhLyklSg^PmSVnKTebi`LdP^C=YjWRS\gl]MLW`ISCcARWJXZchMRhWQtBB`KyNc^\oZmXZouVZ5NS]\b]DWH_R\_}SsQYn_LFbfPLeJWZMaUJ[jX_Kj`mTlVNbkmOTFPWQVLYlG?VTb]^TW?icZX`L\U`fvrYbS=XfStcwj`JXeL^daTVQ^YRhRuYbWT]S\^IlHbEjcYMXFecWZaQasa@ga?\^jq@7bInc_[XEbgHe]ojVaf^ONKHK`]aO\TQGOK=m-W[uPKM|VPHpORW_ZQHd`HTaLhglTTDOFKdlgkCpVJG\_eoR8YM_]dcRnTUr^QJ_O\YYLFhR=:Qa=>QFlGEgZOKfPMgTVSPIbYK_NYg]V^Y=IeAVK\b]WoWSSMH[ZYXWd^VZ^BSVkJYRfiRiiGVtMuLZ`L[QUbUb^gwaTJaAQvVe]aeRoOdXTXVif\T\hQVrabTNTQlsYipSOcVYXWT[]R[V`keoR`TVBJ]V]N\]a^cIuFb_SNU\BJ_ZPki_S`]kIPZVadY]K`ebT^YbrcMVMgCQQKz^J]VY]YKRVSZ\XF^V\SsQeKHl[pCM[qNFd_iKRTFl^VXOE_`QlfIKPi[TL_YE?hNHbhWMsTaiT^ZQTcWdTVRJRPwA[HaOkp\TTjfN{WHQTRW>GU\`W=\o;EYRb>\HgsMYdatbaNd^_PZLjW]ION]nVc^afXKbSYTKULeQc`XRPPsZTWousfqZ`VIXnOTRAZSNGTUR\Y[^^PanfGVT\u}fRTC^fCMuLcSB|UeqQXejZZoBSZYSH9RSZILJiH]ILdd\iUta8PPaSeXb^a[dWYMD_kHU\Xe_UVI\]YKNNFc?Jf]`mplmHWYzb]^YpGLDVZpHl^cDoWSMMfYb7RSKGOOvLsSU\U=KJPUg]VPnDjMTUEUY[Lp=l_`YOMLkWYyeWYENVsfod^j^`_DwOsNY`_KS>VRQLfR=Z]sSABWUX`OCcpfb_UPIynPy=NIffb?Tsbp`t\i[NWIoW]]WZSilFi_WDSRFN?GViG[XXbQKTcx]P]XTP^GR_H?`_oeM]xYWTSSFBNHjoX_]_`eTgND`ejWHPNBT\IRv0r=LU>_DW}U`jUXRnUL^_PTpdUH|`GJQpsLIU[WkWqAVXaw[Leg^r@9zPQVQ|PS}I4it;bPIgSRkeT\PZ\LLf]NPXTJi@eOxQc\sW\il@X@ac]TRoM\inNXYcUPWTbhR`Yj^[]bi``hWS@[7gehYYOSTG?JeeMmsUe]bX_]cY>YNOSHRT[ahMa`auy>?8ZTXAX_RUu[SkG]P9cr^kbVddWPYm[fm[tYCaUT\CjQedlMcdgIdCUMJYa`ZLCNt[SVdlJgJVqhOYObNaOi_M]D[g^c]Ma.>L]c\gJ^RoJZNgU{V`R:{d9gLYRnFfZ\8sH__r;SSYaC]aIZ\D\cbbWUfVZcO`mQ9|[ZXn`RaWS\[[rTN\TqJ]jgg^cyWHb[o_hO_UZtOmPgHtQx|CUMSR^bNVT^chdtmUkJ^TD\ODC\SwSN`XsUmmCug7XOdDbN_fgY\yIEHm^qnR[hf>abxVRVJc|kpEySJgCZNNzTJjbPBq_t?GCHWj`V_NQcVfO>ZN`vppKN^/jj]\rUKG`L^N]EfLSXeLifNPf]X^X^QYUjNYbSTeROfltkdnB)kLyWeOWGLBZvUKTJjLhf>Rlgfngc:SV]_ijX^LZDglFLIMPEhdU_FJq7QEoV?`|PMVDTTuMQdvEKXbQ@X^b\]Vo^]YVhVeZ`iQbrNWBWPtxJfU0baWXB`nTeXMiDQaoc[PSFlVPckdh^K`rrAJMCWKXgHQWEAbcUiYaJQYV]GlU`aQBSJC^VZtCR=e\KKgG[RTggeUZd^kJY\MUp-gHPT]bYJq8T;^HkH`nKNebOJYbX}MWp|Z2o_d\]V?]m`cWN@;UWSL?_;R=UCJZPEghYlY]cm>IJG^eRRY\UXQnCfuSI@YZ[\bg^LfU^N]IGPaEFUTE}V[fnJXRZ`VsrRrfU^HIg[bQWVRVBMSngJf\J`]MckaO_daiN`]f:\LSJU\GioY^`\R[^eciXgWSnXSetUzZ\`QmcRZGo`RhfVRCQ`pUxRGmmQTMIGVhSyeGLpriZZIWQdZQjE`kVR~NN[I]edOhUV`gX^c\dG\PSXuQUZETbc`snXZ_pJfUh^UWcY6WwX]XfTML^\IYN`Ra^eVrbMjFHST[ZhFqe^W`IxLlHXhN\p]X`OgTfbUN\bR\ESm\aXc[YVZ]QeOoMU``OVNO[kLQgs7H^LWfmKVWmcWS^]bkc\A_|dTaoVYT\ejm__LtfbVm_ghgLUKrSyX`:p_o~Pi^YW\IkPeacUfcMDeXUfcV5CanOTfx=GfsJDRFEKWViVffFKc\LC^VY^WAOQ\IRvD@RMc5NdXcLIfEbVVsxWoZVXQ[NZJbHXJX^ZYjXGlTq_MbHVGUWptRZNL__eQSRy>O]UfT\SZJgSkpXStRo\jfTRMUI_PzdqoTg?uSFMVEepi_ZSRhUSGXQNHhTlNIadS]PzGDU]DaYqbacePTUhP@`lKd[`Uadi^[_Xp]]dl?]tBUSYZwRJY>]wMi_XH]p]nJOKNWBpHYR]ARFIuMWA_ORiEPb8ROJVg]Z^\GSh]cHJQSG^Gv_BGebZ@TODMZeVUvuU`PbFkZKYsZMRjIZ}SSNPb8scMC[fPp\Y\;nTSWufPSWVM]rxdDilQddOP\QySxhIUbVd^FDbe=gQEmLX\hGZ=hGXpLdYDSuZxGUHJQmLZWlNjhYEuF]iiUYc@UCmRuZXUJoYFfJJTMTh\ZPYR`IGVinOI=eeAI`azQWoaOPWkX^VafXWL_pUpItlS`\V`csx[fi@rpW^gglUMhMPqo8OifgMdSG`jY\TvkQGE`^RGWLRVdNcQvyErR]NTWEd\hoTmWWPTn=i]9L\ShZ[eRdbLcjR\hTN]]WOy_g^ZNsVLWg6QgZVaW[YYQIGV:XZjYbaNPeE^YKNMxJHOLmnZDSUIJ_Ri\[VrQWRS\MZ~^>[`cq^WPACSOgZsPJYo|jXUye_\IG^SzId_hXDDEimTDT`RT_[mGTLOnelcc[dq[ZTOXXM[cTe`L^r[SvYPLUaU>kWN8QcKaPyGwQYQlRxWNhCYMa]TjjUSQpKWUrBVLXJM\_nP>lo>dQaqgEvqH\]SoM`r`c`FD`ZcT_G]Uiu^YHeKR\XmV[VPTcTQPY@^GUyrGIar]YV^L_FDViXceEO>eTm\WadgWXU_>C\G\=pX{OkT|NJgIS]_JZRrKPkUbg[R_pdK]^Gi|f?Po|FUZf^D^ZCSHKNTjYVE=QTkTLUBrVJVcw[_^N\WiQX|YEWESZVLKQKh`f_P`SW^\IOQ^QTMWjFVYCbPWIVd_gsKfTUeZLkNT>`YxEU\CJ]gPWgKgS]Ls[ZtRiRO`gRXPMcccDAQGjVU[MQaVK^BcLLNScVaRSfRSH`KDCW\H^hydCDZrdrWk\lTTbYyYR\k^f_MNg[^ZV]exFmYZN]zYOB]f_BWfaNDgVfKY[ES]VUVKLVgW[cg~\IIU\EbEGcF\NI9gIOSCKUQUUBOdSRpe\ZcS]WZ[`GVGS`5Kc_Dqc[ZTZZMiPajLgh\TfFc\OXXkd_dbBMMUTO]{ZZEW^ggRchXTBFUQMkNMOByeR[NPuJb5haLVdd[^SZin]LWenKW`bO_SsncXR]XLKsT]CIJRXXDcQljIYPLSMST`WXs[c[ZjREJ_\SQM_XZhhRJaQSb]IJFM_aW^m]W`\hVKVfUOMkQ]HL\xhY^Rgl_Z:G]nv^WWXu{ca^aUg^phkIwd^nej_n``DMY_N\SXIWj_i_X3yVKJmi>rMWgC_[JPqDPeggWecQ`QYLoiHLESLJJPl`_rIHFUZWhnE}ZPMCNOQzgIQa}cm]LQMSoE7E`\YoLSydX\U_IOZXcRXOIRnLl_W=KInTU`9XUYbemIGUeKclSB`kRgcT0M;\OSYBUYSONiAJjd\Q[^K>lCQZlMbyuVTtVae?_QRXZM_Nc^PfM_nHJGYI`ejDQJVZIaMJ``^T^JLLMRLdbRI\[UO[MEHgXZPLp]arPZAUeXpO^WTKspOZR_c_YDaNe]fXVTZjgXU_me?^QVcBWmeeWlMaEbxRFZ^WRJV9VVkf{WSI`N^]JTLEcOaRd\OQ@@GduxLVWHAT[VdYb\JVVGWJLQWJZHC[FDeXSaCwwAJR][Vb\XHaT\HJdnYjZP_RYHQ[\FCXNezW9MqIQbm_KJUj_MVQJQJOQPRQV]OpKa^bQ\QU[gUNkXR^D]UO`Ya2sTMQjU_qlycUCczXQSMyMN=E[B`?Bqsmpd\JUQNO\_ZONQx\Z]IHHOdQaKkb[Q[XS:(g7|dZka8WAV=ia^l^Ia^j?kU`[[RpRIeNbjHWMZVT^N[RJfTRUS[W_j=]sWr]`>C[U`S_HXDPSwQRjMT?PuGZprNeY[L^RVYRh]SMNZ`nTVYHQQPTmH^`[SiB]@JF`KSWGCOGKdadKL[GS^^VbRFXLxQ^Xo`aSBAJ^R]OQ`NcOlAWT\H\XGHIw]Db^[\rLW`cN=RgZK_A\blRX_]ST[UiLpbaS\G`uWOWblr\a}DU<`^}[ZaTZrTT^WPTgUaXb>9^pYJHI\^_UZeIUXAq{V_iTYN]eBXo\fyU[fjAYy]Zh.KOV[a8YR_9]T]5_geNUY_PQYW[[Ujp`[lQlU[QI[HaBgjOL_[@QIab:`TRW`Vt\hCZS`^OjkK[`CYOgw^8\^PRENXGdx\W|gMr[Re[]ZgTRHsfWtsnGP[TJkbkiUuB]jH_agH[(bmLNnNiQYPfyM}w@xjF>hjepWWRey^hNk;Ph[HCFFVFHQYuS_WXU`T\P?DP{@WRTLNz;BHgIspVJPdXNRC0LS62\nL]f_BK`LPSVzGTlfeiVh`MYuHFva7E|qTYfH`IMiUVNH[k`QgR}[aiSd_nDVNOSSSCCG]h^@DgU7jQMaH_]OeCqqYYxmBKfJUWu\`e]fQSAT__sNMWES]TeTTe@irbo;kbjGQY~VxTkiacU6OKTicTKATG`keMMBLUDChT_{N]T_C^3WepmTcLDE>GTNbYZLHKk8\c[CN^DebyWn`D?A__niV]jBEYgcURUPOBI_maLYYkJqNaS2NiUMLLTXW[eG]nP;Eevf@dcNkRc1jRNW_RRc`FrpDiUcLE{Qk,)^j@Y\RIlWoBZQMUi\cYgIO?WDF@^WIXJ@DjYPLKfei>L9LZXS=ArP[dYSVR`bXOjRAIOK\TUmOUaNDYkJfSw^cT[`PGCuQIXacXWFB6_i>`QVO[e\HQb|SKY_MNXkLVQ8jIddGtKcUh]QJPOUL][YNDNFvq:7m]aD]cTrMNmQOyAKIgU_FOUigclXQ` J\Vr^KK`^Ba\\cqFkdNhgyeOE2Sfc_uLkBC&qjdbdKU^J^U_Mmg@THWo9[>?ebh`bwGZ`I]gMKT[cTtY`RnLTWeiPLV_Vw]QPsS:E]1NYN\UU[ZT_qJaZI\_TtQcW6]C\cE=cLhyVSoRi~i?XL`XClWWDUJSTjgSaUOYTHmjQfXFbOMTQbV\TJTS]_QTkPRETP]X`TLR>NKThGlOA`V>E_|HSh\d]THPR`ejN8SIYI[Mh]PCh>RG]W[MUNNZXU9YDRh^xfHL\\W^nTmUg]\YahD]Sx6S^A\SYbMl^XUZFTPHHiHY[pIS[i\[OPVRZVxdlavL>J~g]Of[PIgM]RQ`\NYVS[k`m]YKZSv]NDLhBRlkSNJSHS^PtMMJcQP_`hVhqhTU]GVJ`SGISV^V[KSWXUQWSATSf]i`h|Y`QmNaU[NLSPO7^dPg^V=QlG_LgV.SFX`XQUZW^OZcV[zEcXIuGJ[]d5[VgWpW?GG[PVW_SXmeZNR>jIovRPcQGHUNyQcZXPE}SXQmJt\]RBZMOS`QTlLTQso>=WFsNFU~S?D8FWqNTWjfOUqJJTaYNTDcPoq_@F\Pd_DCuq;^LI[PEc{`SYf`BmMYATYpQByfIeZbELn]'SIfWV\rNKd_USl\KBRISDJ]PFZMGVXENHtbL{bWa[LR[S>Nw]JVi7FGqRnjVYgdZ7[TShLAcMYd@nkoSTMOIhsPBq`BSkCgWC|_YeOD]f[=miSWSkJ^BbR_]mDJMXL`_[h^h^dMGddbhp]`LLS;Zts_XYobsY]8uJDPN^IdjEZ]bOTGMG^zb:ZgCORN\RYkUTufV`NkMMKxT`SHmM^LYQM[\^ZifO\PST>CqqdZL\TZY`OXc>ZHPaEGMdJQbWVuGE^^{]EYRJZnTeWkeK\WjdHwAdU:aMT^N^_bxMY\QM_`wI?XM]^\a\X@^okaVMTaUj=]yHPIYO`gRe`YRkEcnGR8[Ko_`Vf\cRMKWhmgTINoi]I:c]sc\HVCOmTBqQZN[MeWSAjZ`YdPaIfF^WVpJWLYi=XSY`TgWW`Yr]VLS^TFdnOWHbCX^XsLdT[YY_hiBPojrVOZIgXvaNTLYgV`KUJ\MgTGuZi@mjYOnSllXT]\NDX?nHU=<`WacYnWU^hP\hdWOE]bKb`XR9eMxVgOMXPw\~j\fnJDUsaSX[MHaNGBLY`Y[L7OF]UOPeZRVTgNKmcmh6b\^H=cRVZbOTITP^}ZEV^cQ\X\S=UbfnjcKYFSTXYKKGeZ\U]nm@[HXbbaHc`SG{]LJFFKLQsSS\LNK\TVPVJsSTXTeXdWV>TVTCPJmWOuy?P^VMOP\OC]wVp_crfT>LkMNTp^T_UpJFZ>;Qeqh]h]YTWQNAP]cgseZdVP`NVmcScsQdKPu\>YWPBUZjP^^WyXRh\^REJTklFVF[deXUjxhe\VeJWL\PYV=WHiPWhjBoa^qeWVGGYSIQU<^qHYC^^aVCkpT]f`lLZnZ]MhStPEPdkaI^WYXJfM]DPTLY\_a[Cg]i]ZRfbmbcS^^bVTQ]\SZRT[X[YSaVQTZ`_ZZZZZTV^\]XV]YZW^YP[PW[ZZRWV_SQVUYVZ[\SYZYWZ][UY[P]_[Y_QU^VR`W\V`VVWT[`UUY[][UYWP\SYX\YVO^XRW^YV`UWXQQaX`VU\WY^_\WX]__SR^W\VWT^WYVS]U[]`QUYT^\UQUdT`XRY]^QT[R]V\[Y\\\SSYUXaZTT^WVVVXWXZXUWXV[WVW[ZS]^QYXSZW[XRTM`SYW_XYTZVSUVU\YUY]]]VVZ\]MV^VX_^WQZT^X\^_ZV`U]TSX\^YPZX^`TZW[QYVZ]WZZXW`ZYWW[U^XXTVUY\bUSUVZV[QP[[^SZ\\\XX[W]WUR[YYU][Z[T[_SU[ZY\U\b\_ZX]XVYYTVYXWVZ]WW]VXXVWZWXSXZYXZVa[`YWVT^XXXWZ_WXSUXXZ[TW\V]VUZ[TMYTS[[\XS[ZV^[X_XVQ[[PX_\_WYYaYX[VZ[_YU__VgOU\ZZWUTVYXVVU\ZVXZ^]VYRXYZVZVZ^NWXS\SX][_^UYTYY_^UWYW`V]UY^[U]XS_VUUM^^]ZVVYRXSYV[WVVYT\TU\\VU]XW\YZXYZ]\]Y^SW[ZVVUY__\YXWY\R\]WYU[X_VWY\SUUVOVWV]WU_VZYZ]TTVTZYWWZZPXZYZVVXXUQ`YZXW\]SZ^\af\ZaTWU\UYZX[V[^RUUXVURPWUVWYRTXWYYZXXMWV_\VgXV^TXZSRZUX]YT]S`^VUYU]_ZUTV^T\X[c[XTSY[[WZ]XUXWXXTVXZ[LRVWX_S^ZW^`S]bOVTaWXYWU[`WZW[XWRZRV[YY_XYa[V``\VZ\\]\U\Xe[UYV_XRY[XX]VX`YTY^WXSX_[_WWX_[Y\\V^Y_V`Z[^XRWYY[\RTaW_XXVXQV`VTVaT[bXVYZTX\SWUX_VWXY\UZZWQ[UYOWYVNP[XTPbW]_[c\XZ\\XV^VU[TWXPW\]VVX^a_[[YVRUUZQVW_T`U_`X[Z[Z\]dVXWUZXVR`RMV]Z^[SZ]ZXUXR[Tg\YRWW`X[V[_QSXTT]P[`SW\cQXWVaZ^TRYZaXXd\NU]TTYUXWO]YZWb`YY]\YS]^_V[Z]RX]\ZVYYXfdUW[PUY\SaY[Z_YZSZXUVTRYVNTVX]UUUVWWeYVWS_ZY\_cYUQXWYZ[^]VTUe_\\[S]X^O^WQW_[]YUYT]W[\[VUU\V[[`[TY_V[`RV[P^OWXWX^SX]]SS\SV^b]Y]aT]WYZZSW_S[WWTT\QZUX\]]XZT\X`YYX^[WZU[ZT^YUWbWVZZUU\PW_cX\Y[V]TR_UY[Y_[ZX[W\Z\VW\TVSXUVYUZ\^[XWUgUU`ZY`Y]T\Yb\\][^RWUbaWS[[]V^WXZUQ\\\XV[\XXRZYUUUVYW]^XVZaUUZR]]ZaWUY`XY[_OSXTVYWbUT[V_XY\VTX[]SZ[_XV]YYZTV^[ZY[_VL\UUUTSWXYXY\V`^WU[^XdX[Y[[W^\XWZZWXY]ZSRYWVWV[UTX\W[V\^W]`UW_YbVWUX[[[YXYW[\[ZX\VW^VWX\X_W_YZYZXVUYd]`YYXXZT_YYWXV_QWYWWX[YQWYOW`ZUUWW]XcWYSVW_\XZQRV[XTPX\ZW]Vd[^XYYUVXS\Z[\RYXWUXVYXXY^[[XXUYXV[ZYXXT\TYQZ`RWY_VRb\[PUWZYQXVR[UZVSZTTVTU^XWX\W\_bRXX]U^Y]\TVkTVYRYUcV[W[[U]VYWYTXV]^Y[XRSR[XRV`[TU`T`Z[RY[[U]T\YWZ[UZaUWVSZ]VfZY^^V]aRVXPVTaW\WSU\XbVSVWYT\WTXU^ZSV_VXXTVWYVYX[ZSYTXMUYXXYlWQYUWQ[ZW[]ZYY]``\VW_VT[TWX[XTXV[cUVYZU]UbYWTXWYZ^`SXSVVXX\Z][X[]XSbVXVaW\Y[a^VYb^\SVYYXZVXY\\]VQ]QX[UPW_YWVX^Q]VX`[[Y[UXYRWO_VU[\\X[UV^P_^S][ZYYZb][`YX_`TYWZXX]W`YS[U[YVZ`XW]\\SZTTWV\XeXUV_TWXW[WXQLSbU[\`QZ[[[[VWTZ\YSW]WWYW_TUZUSXYZSQ[`WZ`X^WWXSZ[][\WYZ[YUWY__h[Wea_a\\V[VT\RZ^VV\W]UW^Z^_UT`X_[b_V\[\NVY_YYTZ^VZZXW\WZZ]X\]]ZZRYXUZVXX]VZcXUU\]Z`Q[[WUXSZWWWSYU^\[ZPZU`VZ]XVYXRX\_WYVRTQW\S]\XZX\XV_W_XV]Y\XZWX[ag_\[UVXSUY[VYTTR^YXXYW[SXUWXSRWcTUUU[ZTZXQY[\UVQ]TX_U]VNYXVcRUYO[UUYVWVU[\UTWWRYXNTcZZ]]NVX\ZWRUYY`TU[VPWR^VWXWSWRSXXVTGUYWTNWUU[ZWYWYSZWZ[[T[[\UZQ^RQUYYSYVUYS]VR]NRPX[VVXUQUVUOVSUVLTZ]UTTSQUV[NUZSW[\MVOWYQYR\Z[[Y_OZ[RWYQW\UZSPUbV^SZ\WXSV[YVVXV^RSYY_XLRSUWYV_WTUQZVSTUUVTZ[XZZLSQT[]SN^Z\X]U_W\TXVTSOUZ\RVYXVXUUTS\RUUVWSZYVSSUS\\USU[YRUY\MT[UT[STQSXZ^WTQQST\ZYUXZRZ\ZN_RU]QQYSSTZ]VX^P^[]QWYXVSTSVV]URNSXYWYSRTXWURYXVT[SQSPXTPQWP[ZYWXN\_TSUNXXcTOPTSSY[YZ]Y]UR[ZVVW[XNX]ZYXTUS_UU[XTVXWV^W\YaTWWWSc[U\^]U_gcZZVXW`Z``]`T_OVVbSUYZTaWY]XO]YVUX[YS]V[PWWPSZ`VQYWWUYT[R_[ZWXXUW]SWTXZYVX^XhXMVU_V[S]YU__ZTVYU]]YW[_XXWT[X_ZV^XaVW`[YXVTWXTVWOVWW[Z[YWYUd]ZYQ\\WVX^_YSU\[X]Y\_SUYXU[[ZU]_VXY[]TRZVY]VQ[QSUZSVVWWYS^dYd_`Z^ZaZS[P\WWRWZVT^]]][X\ZUV\WUZX`YXbXY`V\b[[bQ]\UW[[V]QVPY^^UQXS__ZY]U^ZY]WZ[V^[ZW]Z[XNTZX[WXbQYVV\\YWY\XZRQ^]YTYYY^X]ZQ\^\_Q^[Y\YVTY^^V[]Z\X^_Q\XXTY^]YXWWSSYXWUc_WSXSQZYZYZ^[\RXX\]WXZRU^YVYX[]`TXYUUXaWYV]WXSWYZYUZ]XQ]U]]^VVUTYXSTV[UPX[VV]VTW]]`WZ[QVXUW[QU^Y^[\U\[\WV]YWVZYYZXP\]dVYWX]X]XY`YdW^^ZZXZUY\VXSP[YZXZaQ\UQVU\J[XV[UZTXZcXTXXXUR\S[ZOXVXUZ_XVYS`WV^WXY\UYe^WZZQa^SQXU^Z\SYQaWY[]^VY]X^VY^`[[\[WNRWUQXZRPWY[\WTVWZ[QZTUZZYYb]Yf\UWZYT_cTUQ\Y\UVM_U_WS[S_X_]ZYSS\R[Wc\\QZRZZ]UQbXQTW]^\W^Y\V[aWX^[WW_Q`WZ\VTXZ[XWV^^\^V_U[YQ[ZZa[VYZWXZXc\\YTV\aUS[^]RV]Z_WQT\WTZS\WT[][SWYTaQZXYNYaYX\W[UV]^TY^Y\X\TVaUVYWU_RVWZUXUWYa]XdZX^Y]YaW[QZW^]^\[VVT]YYWZ^]TYSXXZP\V^SYWXWWY]YXXYZ\U``\af]b\dG^^Xb`[^U^b^[eV]e^X[UZi]f_]^aZ^[dX[\Zc``[U[_Zc]U`[WeZZiV_^\\bbg]_YW]\hZ[^eYc[Z^_ac`XY]Z^Z][\_dR\b__ZTU_^a`[b_[YabS\]cZH\_lXa]`_ba[YYd\]U_^b\U]^Z]]Zcb`ab]]\\]Wababi_aV^i^d_\^VOXZhYb]\]c^c_]^a^[Sa[ada\[Y^\`[W`^Waal`^_Y[]agU^SY[^[Ydc__a_^Xc_`Ya_^`bX_YZ]\_`dXQ]^V\_\Y`a`^_]]be_]W[\d][\ZcY[`\]N[]`X]Wc_bdZ_WYdX^Y__bYZ\]Y^aXc`_ZY^WXadc]b]]]XZd_d^[^]ZYWi\Z`bY_]_cZ]MaVdb_\aaX`[^abU]_[^aa]ScdaZ[^Xe^[^f^cZfVZe^a_`ebbe_Z_[bdbW_f^\ca_ebZV`bX_ZY^c`\ZQ`S\[Z]_SZ`_]TXYOZQUTTaVXTXZ__X_ZXVSX[Y[d^\WY][XV`ZUZWT_]ZS\ZXZYY`XZZYSV\X]UXU`\XYWWX\[aUbXS`[[UcYUQVaSXU\XTUVYV^P\\UX\YVQSW^TS]TT\[aRWYX`T\[^]UW\]U\\\VXZVYTT_USWXX\XS\`YU_YTUZ]XZ[TX[^YXZQ^\PVSTYQZXXVS_\V^[WXSVW\`l_Y\VWYdXWZW\`ZQZXd_VRWVa\X[\VW[WYXXYZRW\`SYWZUZWY]UUR_X[VZWUW]Z_RW[VY[V[XbV[YZYVVVRXZTVV[[QTVVT]TPT`\XVSZUSZXaZZ]XY\Y]YX[WPX]ZTU[SXUY\U[X][WXW]X]VWXXW\T_TVVZXWT]V_UWV\XV`Y\YY]aaV^dSVUPUW[ZVU_UYWWX\[`\]^\]_SWTUYTbUU]cUUVZUXXQ[XR]]X[[WXUSUT`ZZS]XaY\Q[W`SPU`UZW]_YZZXY^YXVWX[V[VZ^XYWVYX[_Z]ZZZZZ_TZ^UUX]ZZW[[\]XTX[VV\X\TT`MW\\WW[W_TcU_WY[^VQ\UWYXYgWQRYYZ\TcXY[RXSXZWZ][U^`X_TXXa]XYY]UU`YVXaQNY\]ZUP\[UQbYYWUTXU\_VWWVWZY]XUYaUXZ[ZYYTZX\UUUU\VZYS[P]\ZUX\SU^ZYXWY[\\VZO]]VXT`WVXWXPWZ[V_TWW[SX[XSZ\R[T]VXY[SXW]TZ]WbXZX\XV\Y[VXQa[]S[RUTY^UUY[`\W[WWVY_WZXYXSXZQ[\UUUS[XYZYWU_SVVZSZYY[VUWWY_TWXRXbUU]^WWXSYXScSZ^VaY[SVRX\V\^UVZYW^XYWQV]_aZaSWUYZ\NWT[Z]YXUVX^\XV[]V[WXW__[nQXYUU]ZU`ZUVQT]X\^VVXVS__YU\WU[^WSYYWWY\ZZXY]VVS^Y[RXZYYYX]SXWQXV\\SXXUV]b^[V]ZZN_WS\YV[X]WUXV[V[YP\[Y`W]\\P]QQ^eZU_S^TY[[X\YTYeYWW[ZS[VVWXSW]UQ]WY[SXSWaRWWWZVYVTRXTO\XZ[Z[`ZU]ZVKQVWZX^XZXY_\YYWXU[WR[aWX\[W^YYYP\_STZWTTZZVW]Z]UUXY\XYVU\][P[X\UR[WRXUY[XZ[YdVZPV\XWTXT\\WQ_ZWbXZYVW^YTUXZUTUTQYZZ\ZWWPS[U^\WQV]ZV`YSWWP^WUVXVUSdZSYZX^QYYUYQZU`_TS\ZSX_RaU[O\VcQ^YUUVS[\\YWZVVY[Z\`ZQYU]WY\[XTZY\YX[X[[ZVTT[[ZZ[UT\[UWUW\TU\X]SUW[Q\T^Z[_VWZP[TTX\SVXYZ_TX\bWY[UYbYY\P`XXY`TU]`YXWXaXY]cZZRfU\]b^UR_Y^YUWYZR[Y\Z[W[[VZY]^SV[[X^]W\R_YZ]V_X]WVaYV[SV^Y[ZTX`XVQXWW_XU[[[Y[TZWWcWRWUV\\\[ZS]UXj\XZ\YUTXZTVV[ZUXZ\Y`VXTYTTX\Z_]TWTWYZSSX\Z`Y_]^Y]PVVYZ_SnTUT[UUTXTYSRUQXZ_Z[YYXQ_X[\SfS[[^YV[]PXYS^]]W]PZV\ZWWX^]ZYVWUS\Z^^WTVYYaUU]Z[SYWW[UVUVSVX^US[XVTYV]R_TXYZZU^\YWWW^WV\XTWVXWYVXWXQX[ZYUQ`V^U\X[WWXX]U[UVYS\S]O][[U^USUVX]WXX_YZZ`^]VXUbTU`WZVXTRWZ\XX[WYS_[W\^^W][YXS[aY[[Y[ZTWVYW`V]]`T[\_[[^ZUZa[VUU\`YWWWR\[WZYWVYUWUd[XTZLWX_\]^\UY[YS\YQQ]YXWUPX\YZP[UX[WTWZVV[W[YUPLiV^W[Z]OUX^Pd^XZZUQZSWbRWVRWRXN\RR[S\VVUYXW^TWYXZ\S[VVZY^\YU]_OWTWVUSZ`XWTYWaVWXYPOLWXS^SZSUZ[U[TXZOSRQ[XXTVUMZ\X[TWZX\RXRSUZVZSZUUZXTSRUYUYTSaTWYPXZW\V^TYYS\\R[`VVUVLUSWZVSbXV[[UR]U\^QbYW[[W\ZVL]SUVT]WXZVTQSWZYXYV^ZVSQWST^WWXXWXTS\YTTT`QQUZX\XW[XUT_UTWOY[TTK[RR[VWT]ZSS[^Z`XSQQXZQ_W\ZX[]UT[WWXRYR\`bZXT\Q_UaYUYZU][TWZ\VVYWSV\`VVTWSSZVXQX]VSWUYRU]Y\YX\[UZXTV[R[UY[MU\\[RXSUVUU\XSW^YNY[WY[UQVT`ZYZP`WTZRT[[]XQUWTVVPZS`ZQWUYZYW]VUWWYT[[TU]Q[XX[`__`c_R[YcV]^\VW[U_Z_\]XZYYdXYV_WT`Z[S\XYUWZWYXYWTTW[`YTXWWR`YYRUR_YYVYUWXTV_V\[Q[VVWXU]V]YXSWUSWWZWaTW]]e[VUWW[V\XSWOUWSZXW\SYV[S]]Y^\Y`^URR\ZVX^]WS\W`cTV]hW[XVV[SVZZYTRTWRT[W\SMY[XYZ][XT`aUZ[X[W\X[\[Z]hXTWTTZZXX]YV_P_W[XYVQY^VU]SY\NWM[W^^[URXZUV_[Y[]TUbTTWXUU_VVSeWY\UX]^VW_YUYRSYO[VW[SUX_TXXS\gTcQ^ZXWYWWXWYW]OY\SUWYNTTQX^YW[[YYS\^`__X^[a\V][YT]\X[XYZ[V[YRVSYYZYYR]S]ZUXO]TZYYRZ[TZ^UWTaXTZSZ]XU[UUVSXTU[TWXPUSaZ[SSVTYSW[V[WYVZ]VXXZ\]^NW_ZYUVW]`YWVVVQVaT]Z[ZYeST_UabYYWYWQUY[ZT^XZS`VYZUWQ\XV]Q\XVYTT][[K_X[]a[RR^V[XTXVZV[Y^U`SVXUXVZVZYXYSP^[TYXabQ^R]V]R^ZZ[V\_WV]_[TVX[YYQVTVZ]QSYW[dQXUQUZTYV[QWTVbV]Z[_SW_WTZVX\^ZZLRZWeYU`[UWTiabXVUWWVVW^[RY^VVXVYXS_[YU[ZS[X[PUXXYYZWXWUUaWZZ`TW[`ZSV[UXY\d_ZWS_XQ]V`XXUW^YW\ZZQ[W^OWWTXWSZWZ^V\abZXYYWZ^W\cTaU[SXWZUYR[VVUX\^W_WUWTTTVUXXRQZS]aTPZXXYaVV]WT^R`Y\\VX\W]cU]`[U\^\YZUWW]\]\\Z]QX^WWV`UXXaWZV^\VVWX^XR]YV^[UXVWS\UVY]QV]RXQ\R_ZUZQYXXTTXWS_ZY`UUTVWPWZ_VST[\bVXT]ZTWZWY[ZSYVSY\XXSWZVXX]Zb\LTYWZ_XaYXY\YYa\bYRVXU]UWUVTZ\QQ[T[f]RZ`Q^ZX\[QXSYTWZ]UUa\[TUUQXUSU^YY_VX\WZZSYY\]WX[\dVY[\TXVUZWXRZVWT\P_ZTVWUXWPW\\^b^XX]T_ZaZ_YY]^Y_]MUTU^Waa^aT[W[LWWO_YT[]_V\VXZY]PV^V\]SYZ\WTT^\W[VZXYXZ`[VUX\a[Y`ZVddVOVZ[Z[U\cYWQVWTTWUT\\\WXdW\XZ[\W\WVWWW]`UQT_X[Uf_TZWYVTR\V_aW[WYV^]WRXS_]\[[X\TX[TWSXR\bXWZXXW^YTYZZU]TXWZPZVSZ\[U^U[XX^]`YQ[TYW\\ZV^_]YT]SY[WW[YY[W]WUV^R]Ya]ZXWVTXWV]_^Q]WU]_OYZ\T]]SR]WUXYUZZSUX_^d`]YW[TS[_[RYVV_[X`VXXUYZV[R[X\WYZVUUTUSXV\SUVdV[ZXZVZTbT\Q_^WTUZUZUPRV_WU[ZTUV^\PVVWRUV`\\UVZ\[VdV\YTXTZXZ[T^O^UUWbZ\QW[Y_XXVX[ZZS\PVbYYUT[ZR[\[WWZ_UYVZ_TUV_UYY[UR]X^WZYVYXYZX]h[^UW]W\SXW]\[WYVZXX]Z]W]WYTVRWSY[XUZXZXh[Z]XXV^U\RZUYYXTX^[VVYVWWX\QY^S[YZT^YVZa[Yd\TYY_YZZZRV[YSZT\W_fWXTY\W]Y`Te[\SWXYQX\SQbWWUZ_VZWUX\OVUYT\\YZ]WU[]WVXUU_UX^SWZeQUZYU][bW^\]Z]TV]^bWW[WV^N[WXVZXZVU[YVUTPUZXVZUUXXV\]R[SZS^Y[TYW[\Z\[[Z[SRYZ[VY^[VZW`T[b[UaYY]RXVVMWYVZb^WTUWZbZTYTaZX]QX`W^Y^U\\Z\^YQ\_[ZXZZWfZUZ[ZRWVV`UVUYVYU\ZfTWV]]V][XXZ\]\RW]V[^^X][[[UXVRYV^][Vb\SX[\_Y][Z]SUXXNLXVTX\\\\ZTW__ZZ^]\YV[UX_\VYX]X[VZW\Y\XW[Sc`Z\Qc]^aXXQZVZRU]UWTUZ^YXZTYYV_QQ]X^R^[X\[[WXX_Y[Y\PRUmVZSQVVVWbWYYUTS\aX\R^Z^VZV]UR[VYZ[]Zc[YX[WVW[UN]_[U[YTaX\Y^YSUW\Yb[Y_[\dYWZY]``\YZXRWZ]VTZ_UWWVY\RZVbYO\\^N`XVX^X[TZ]XXVU^WQYcS^\TYZOgV]ZY[Y]\SVS\U[VRWSXfZV^WRWU[TX]]TOWYSe^[W\S]_XSTWYZXUYZVO^MUQ[]\VZ[WWUR^[^\X]WWP[ZTYZSRTWPVZ]XL]S[YXWY[Y[]VZZTWR]RR]WXXVYOXNZ\ZVRRdY[W_U_[VVXSSX_USV[VYYUXVVPW_]QYUV\WZ[WY_YSXUWf\_RW\WQ[\W\[ZWU_WW[_V[`WX^UW]ZXW[XVS\S\`[VU_cYRSWb^aZ]^YUVSVZa[]VU_XSUbUUaWZZT[Z[XZ\TUNYU^RV`aW]Y[Z^[ZY[UTY][U[XY^bXW`UUZY[a\[TW[XXYTYU[YSVTYVZ]SVS]^Y\UX[YYY[[^ZWS[WUWVWaXa]XY[]STX]OU\VSUSYV`YbXR][ZZTZWWQYZfWYT^[aZVZU\UXYYXVTYYW^SYU\N\UWV_[\UWS^YTV^PRZZWP[[\UVTY]]ZaTXW\U[YUW\STYS\Z]TYWPZYTSVVYU\WTXOWU\TZ`\YfbURSY\S\Q`]YUQTZZ[X`[X\XW^YPRWa`TRXVX^^ZPWS[[_^TZSS^VW[YTW[`YX^WZQXaUZXW[]\YYWSUYV^ZX\VOYYV\R_^XXO_Y[a[SW\Y[\VUUV\dcV_U^_\WZ`U\V[Z__]SYPXZY]U]VVX[^]SWV[aWT[T^T]WXZU^W[TXZbfYQXXcXXYeX\YZR[\Y^ZWPb[UOVVZ\`V[[WYW]\R\\Qa__TXU[X\\`YcYY[[^\[cVV_WZ[[^V\]YVTZYYZ^]VcVhVX`b[V`UVZYUWPMZ]VY]UVT_OYXYQU^WXTWXWX[c]^V]VbWX`WWWaV]YQ^`Z_VWR`fYW\WU[c_Y[U[aTXXXg\TZ^][ZYW`cTMXZX\_ZN[U[VYPY`ZUcX[WVYXY\X[Z]UYYOV_^MZY]T\YdP]UU\UTPWSQR]`XY_^P^RWN]U^[`X[TX]WST[VPS\WY_ZYW^UXUQY_[^X]VV_ZTX\[TV[\XW\T]VSYWXVUR[R]OR^dY^^ZZ\ZYYN[XXT]Y\]P\ZZT]RZVW^]XQNc]`XQX^RWV]Y\^ZSNWSYURSZ]Y^[]]S\N[YZU\fZXRU][\^Yb^UXUXZ\_YYQ_W\X\ZYUYT]YV]OTU[ZQVVWV`XX]YTVV\Xa_VYVVQdX\Y`VaYZU^Z[`dXUUbVXSV]^[RPSVT_\V[VZ]`]]X\T^[X\U^XZUXWTZZRVS\[[]\VT\]WX\SYUVUYWVUSUUTSSYVWWWV[UUZYYa_Yd[_]XUV^`PW`VWTUXYU]Z\XTVVb]YZVZ^RX[YT\\VTV`_Z_[O_`ZU_SX^Z[RUYXRYVS\\VYW__T[[`[_XYPT_ZXWWXfVWPWVV]ZUR[XWWY\[TVWWW\b[RaRZ^[W\YXS][WT`V\YV^XZ_]XTY_ZcXZXVVXYUXRXY\VTV\VUR`RUURUYR\WYUOW\Z[ZNV^TTRY[SV[RVa[ZcUWX^SVYe\^XYW^ZZUWTXV\Q[]VSYN\VR\WTac[XXY\VVY^_WMXU\ObXTX^SYZZ]Y[\b[WXXP[[W^a\U`QWRc]_WXb]RX^[TT^[YZUT`YV\W[TYTV_YWb\ZXfVSYU]QTZXZ\WYSUYYWZ[\UU_ZVWVYS\WRXST\V\XYU\XYXTU]^X[[X_YUZN[ZSX^QXVYTZWaTWSYURTTYW\VWZZVUQURYTXdVY]U^WUZ[]YYR`WX_U]VVXVUXTVWWUUR^\VU\\]_\UYYV\XSZPVYYVY^VWX[b\TYXVXVZZW^RVWXVVXTUTWSYQVWUW\\Y\Y`YUUT\^PWYTXf\QVW]`N[XaUR^V^VQXSPYRYWZVSS\[UU[_ZT[^^VWaTZURZgTUYeZZXYZZZUZfa^Q]_X[SVgVY^`UUfZW[XU[WU\cV\YZTZa]W]`[VQSUZY\VZVYU]`YX]UYR]\QOR_SWY]^YUW^Q\T[YWO\[cST\RVa_X^ZXVVTSVVUZYV\\UWW]RXVW\`YURV^[XWaXR`Y[_RW\SbYWV^]XS[VQ]XZZYX^VYXWVVYWVZV`ZZSXYS^UXU]dWYZZ\]W^YXZUXRS^\_WV\SRS\XU^RZW^dU[SVZ_WZU\^Y[YWS[PZ^ZZ]\YYWT`ZYSZVPZTQSUaWY_T`ZVN`[UZWTZY_Z[W]ZVY^ZVVQSV_VUSWZ_\TSY\VY\dU[WYZ\Y_VNXYYZV^V[VYURfTYZ_XYYb^bV[WVTZ_\WR_W[Z\`WWUT[SSZSS]V[_Z\WPXXYVWZR_[X\_WZ[S\UaXPU^VVZYRU\ZSSVZVQ\[ZWTR\][WXW[]Y`SXZWZT[YWUZVYWZXUWW\TSSXaXXXUZZRZ_[YL`W\TX]RY\[WTVYWU[X][^V\\`XWWZX[Y^Z\[WWXUYXTOWTZY[[_W]TMT^]QXNY\VSWMS[WUYZS^OQUZZY_YX_TUl[WXY]USb\VW\UTUYbQYU^U[_XYW^XTWYZXW]U^\Z`PQZVXSX[_cZbWXXYY\UPZWZVX_U[X[VWTQX_\XW]_ZXZ^XTVX[S`Q\ZX`W^[[b\U]\V_]]ZVZ]d[TX_[a^dTP[dVZXbV[VUW_YSQV^X]ZXXZZZ[YV[XW[ZVVaZ]We]WV\ZWdXZXZXVV_TVQWZ[[_VQaSUYY]UVZYU\PURfVUWSVYXUQ[RWZ^XU\W^X_T[[XWa\\]WZZ^[VUVWUW[bY\]_ZZ]TZVVU[]]\V]Z[V]ZSP]UQXZ^XV_`]WgSXXSVWW\T]U[R\VX[_Z\^XP^^UZX_TX]aT]W]_WRS[VdS\`^VRS[WXaS]^XVW\WVXV\W[Q[ZSOWe[WRU]Y\`\W]YVU\]RUUWVV\T[X[ZPTYYV\[]\VX_\\bW\VNV[_WSbV\Z\X[[Z\TQ[ZV_VYVZa`ZZWNVUVTTVbW]]bRW[YVV^YVYYVTWYU]\TZXUYQ^`[][]XXcYT[X^U^XYVSUV\WV^XZaR_Y[bW[WZRV]VXX\SUW`TVV]XQVV[VW[V]YPUVWWSZX\WYYU^Wa\^TZVQ^ZY]ZZVUP_][\[RZ]YUUVUWZRYQXRZX_R]aZXUXZPXYY\ZWTUZRZUVTZT[YX[UTXU\\YYYXZ[SZ^Y\Z`X^YW[[]VTUX\XZWX^UVT[_ZVXPX_XVYR`\[QT\ZXS[TZYW[XYSUWTYUZUYSMWTWVZY[eSXhQ_U_^VYURXZV`[WVVX\YZXY[RSQX`TXYZXXZb[fVU\WWY]X\[aSRXTXV\^[[ZSV\Y_UW^][RR^NWQZ]WUWVXYTOX]U]QWZ[QVRS]YTWXVSY\[dTY_]UW[][^VY\_Z\NYRTcXX[PZSV^XS\UPVPR\[UQZ\TV[Z\^Y\RQR\ZVQTZVXUNUVWZVWWY]YW`Q\\\WWSWYV\T^_^XZXT[VWTZZ[YU`YZUV^Q[SZ[W`U[TWYT_W^X`XhQbV]]ZYUYXYUY_V]]UNUTNVaUVYPXW]TZS][RWT\^WUWXYX[T[ZOS`dXVW\aV[V[VUUYY]XZU_XX\[W`\Y[\TU\UWMbWXX`PS[QUcTT[^V[W[PPWTWWXXYXWYT\TQ\OZVWdRQV_YZ[_a]RVVPS[T^W[X[WZXXR]P^]XL\YXXUT^XWW^ZS\b\XUZYXXS[TZ^YVXUVX^ZX`XY]SZSV\PY_\`WVVTWZTTP[YTUX\ZY]XU\\[XWVUXUYS^\XY\XVUdV\VXXT[YU\YU[TX[\^WV]]WZVdQYWWVUTZOZV\Y\\YR\]]`V[XVXV[Za]RYTRUU^^ZVU]\S]RUSYR[YaUXZ]\XZ[N^W_\M[\RXaWXYU[ZX]UXXZ\cZX^WWZ\YVTXW[XWcYZ\Za`X[]SVY]]\K_ZW\\VVRV[XTXVX[T[VSQZ^\UX_UW\W[_RXUX_TVXUST_PVSXZUS^ZWbXZY_VXWSSXZXP_SUW^Y\UORbZX]\]]U[]cZ[UPVZTZUTTXVY`[X]RU_YPfWYWWZY]]YZYXYPT^W]UX^XX[WYRWWVW[U]TYQYTZUZ[VY[W`ZRZVVZZZYSVXXZ^YVVTQc[RKRZbXZUi\[T\]W_^Y]WT]ZXZWVX\QYZa[XVSUbTSY^UVaXTXUTSX`YRS]YY\Z_^YXYSQVT[[VUR]]]RYVX[Q\\\SWWXXU[ZU[Z]]Z`X\\Q]\[X_^QXS]WXUYcXVW]V_XZZYUX\XZTZR\WYZRX\Wb\VQU]WQXUXW]V^\]WVQSWbXYVU[WVUXX[QV`X^TXTU]WY`YSYT[QbVZU\VZWOT]\^XZ\Z\[_SWZ[RTXVXZXUVWYU_\[SSUWY^\g]QWV\\XSU]ZRUXR^YUUVW_SRX[PXZcT\YXW[S]aTTU\[W[TU\U\\Z\VZYX]WRZ[TQYU[\^V^dXWXWQZYZU`^W_V\VTUZVc[ZZVWWTW[SX][^YU_U`XYP^^[ZZ]V[baYeYYW[^XXYX\U\SWVR][WXYVY[[Y`\XWWXZ[\\a_XXX`X[\V[YR]UVXYXV^ZY]ZU[YbVXVKXZS]WXXYYV]Z]S^ZZY]^WX_][ZUZXVVP\XYZ\\ba[Y\\Q]_S_[aUZcZ`WZWXZYSX^[`SU[[S\Y\[aSXVZSXYa[ZZWUY\XZUZR[X\YSZTVYZ^TV[YXYXTVVVZWWW]SP``XY_`\VUVXRW^ab]^_QS_ZYXXW^X]WT^VZXWT_PZV_UU[aZTRUO_``VZV\ZZ[TTYZVWXXX_VT\WYYXYUU`YS_P[bXZTXXXZVWTX^XYW[[YaZa\T\X\S^XWZZXTT\SWUZVWY_V_TX`_VXZVb[W[YYYT]XYUU[UWWQaa\R^PS`W^ZU]a]S\ZVR^ZXTYWcS\V`WWSZ\dZVZW^WS\M^YS[Ya^WVS\UUYUUU[XU[]\S\U[YXYVaXYYZWWTW][[]_\VVVaTXUSXZUWVZ_aY[XXO[SR\TRY]UY\]QYT\ZVS[SX_`VYQbZ[[XRYW]Rd[WVZW[RYTZX^RMTV\VYZ\UU[abX\XYX`UTWU\X\SW][TU^P]XL[\O]TSXZTXQYRXUW[a`S]_UOX^U]ZUZWY[ZLSWV\Se[^OVVVUXNYT[W[bVY``XZ\X[[UTV\ZZU\_Q^Y^VbZN]V[YYRW]_Y_[UZVTUScUZYV[W\[aY[ZdXY`aO]RVV\c\WTS[VY]\`^]WTW\]WZTYKXQUWZ__X^bWW\YVd\]c[Y^QYR[W_RaPUX`UUZ_UPUTV[_VcTWR]VZPZ^YX`aTY^aXW[]RY[LXR\XTXVX[P\X\XWT`WTXZZ]W[ZWY_UYYV_WW[XZVVZVTTWeVaZ[\ZZWVZXR^XS[Y[\^XV[^Z[X`\WQa\VWW`\WQ_]YYTZVZXVXYXWXQYZW[cS\YS[ZWUUY[WX_V\M^ZbQ_`S\X\U\YRM`[S]VR_PZTYR^T^]W__UYUXW^YZ`TZZ[[\W]XS[QW`\TWQVRWUQRSVZSWYWY[T\U`^\Q]WYeMXX`PRQ\UTe`ZSVYVW]UYQ^XXVb`^fWVURV\V`]VbWR[OcUYN`WXY`WT_\_`VZU]U`WXV[YZ[TXV[\P_VV^W[SXXW_WRRUWZRT[bTWZVWY^SYWVbWZ[TUTV[VZ_\[U`ZTO[bXV^V[^[W`]]^\SVV[XPWXWUXUWTWZVZRW]RV\VV`UT[YV`Ta]aVZ[\ZT[Y\YWWVWSTZ^VZ]TSSWbXaVX\VTWVVW[[X[\RX[XW\XZY\RTXUZZWVaa[[PT\XX[Y[X\VZ\]\YZVU[RSXVZ]Y[VZZ\^[N]QV[S`\R[YNV]W[[VV]WZbNW\ZaYU\WTYZa[][_`\\V\_U[\NWaSRaXZZVVWYVWVPVVWWYVRQ\WUYZU^XTVXYR\[XR]ZU]W[TZ\U_[]YYY[RQWY`\W`_X`[ZUOUWe\[Y_ZXXX]XWQSZUZW[T^]P]WTWUVTRUNXYXWZY\VV]Y`Z\X[UWVQ\XUZU[T`WVTZT][SS[XXW]dXSZ^V][WTYYYYYSVY_WX_TZ_WY\XSa]Za]XZUV[\VXV[SZT]bW[]X\UZWWZXYQW]ZSVZT[SVUTa[[O[YST]VXPRWSM`QUV^YTW_ZYV][YXVWVZ\ZU`\ZTWZ[SW]XYZY]XUT[ZX[]WUSUWZVV^U[WXVX^WaTRVWXXTZ^_]XWTTWXbZ`SQWZW[Y\WWR[]UVSc_[ZZXTUU\`^[VVV[UTWWXZUUUV[^TX\][W_\V`W[YVP\SVTWV^^\[QZS\X[[WVQZ[ZJST[YWTYZ\ZRZTK]Y[YXYaWW\WW\WcS_[\U\^VZWeOYU[_ZWY[TZR[V^YXW]^VW]aPYUWXScZT^]W_WZT[\]\^XSX\]UaUV[ZTcWZT]\UTYZ][]OUZYb]\^cZVfZU^UVV\U\PVZXSX_[V_cZSRZZ]R[_\[RS^TYTUgVPYUVYXZ]RU]\WZV]ZW\TTV_Y\_XUZY\WPZWP_PXW^[U^ZYRXVZ]ZYX^WYX[YOXU`SURX^ZXR[Z^]T[YSXZ^S[VYa\ZO[a_VT_R][W^k\WZXV[XX\X^WZX\WR_]YV^V\]ZW_VXZUX^WWXYV\YVYVUYQd]YVUV^SWZVVSdWVcYQOXUYZV\]VSVY`WWbZZVYWZXSZa]dMT\^UVX]YZX]RYW\SOVZ\]QUVUWWQ^WV]SZTZRUVZX\S`VZXTQ]RYTTROXUT]XSYXTVZV]Z_TXMW[ZXYW`V]YUWXWVOWaXZ`P]V\XYU\V^UV`X_SNOVSYURX^YUTV__PWY\W`SWTHXV\XUPZXRWYUPXU\R[R]U[UW^W\]^UXZVRZ\_XTXU[UOTVUX\ZY\UWZOYWSR[QRWUUW\]QUVZTWYZZ\QXT]]OUTZS[VQ[TYY`[Z\[WXXaWOJRN^OZZaTWYMWWXVSV\X\UXSYYVUVVRP[]OS][UYVVTYZXQh[VXWZVZW_^PPYVVQVZLYS[SX]WWPR[YX^R\U`YXZT]\ZRZZ]Z[UV_T[W[_TYJ]_PWPQUZMU]QMQ\ZRTTSRVXZSRUVY\XVXLY]XVXTS][]RUR[WTWUPZZSRTU[MXSKOFZYXRXPQYVXZ^TUUXZYXcTVVYV\XYWUTST^\UVZT]XYXW[[[URSV[XWZWX_S[WX`ZTW[]Q]XV]WXW]`S[URVZWURUZU_\RV^WRTc^\Z[UYXPY]]UXT]UNSY[ZZYWPY\[T\W^b^ZTVRUZY`dSYV]WVWR]NPX\P[WYVaXWUWVVXUVZTV[W\XVZfUX\PTRWY^UWZbZXU^`]RSbVUZU[SYZY[X][VWY_UVXWVZX[XUZ]YXZ]S\^V^TY\Y[WYXSVYXZ\SVT\RVW^VV\VaXTUQPYW[[Rc\VReUS^VWRWWZ]VOYUY^XXU[X`W^SQUXZTT[VUW\Z[\^\RSY]QXZV]YVXUX[Tb[\ZYg[ZXc`SUUYaYX]Y[[_^U\[YZ\UW[YUXP[YUYb^Y_aSUXW]V[XZV_YRX_V_[TV^]WOXVVWV[TecYV[YWZPZY[]UYUW[XVSZ\a^T]`RSVTU[]WWTTQY`YU]^Z^^X_`Y^UYZUWUT\ZYXRXT]YWTTWTV\SZ]^YX[c]TVWZWT]WURW^UT\\RSUaVSUYWXTXXW^dTSRVS[[]`UWZ[S\_S^XX]_UXX]Y\\Z`TXQZY_XUW]U\^RdNZ]]XS\XXWYZZUWQYSX]\TY`RTYVZTY]Y]XWSVVYYVY^X[W\RXXZVZUVYR]SWSVWRYV`SO[W][YOST^R^TZVaW[S[XYYW]V]V^W^Y[YWVVZ\WW[]PSUYZZNZYY[YY_ZYT[YXXU\[UZX\ZV\[VWUZXQXV\YQY]Z]W^NYY]U^YaVdQWXQ`QZXYYZZZ\WU[ZXSYSZW_][`VUWVQVVYVQ]]UVWTZ\We^TcWY^TXUY_T\X[bW\WR\YZTYS^[WPZSS]W[VZXdX^TZVRVWW\VYOdWUWW[YU]\ZXYTQX]Xb\ZWVXVVV\VZ\WWV^[SYP][YVSb^^YZY[^_[[ZS^U`WO\WV[[YTZVZYYOZ`\Xk\^UL[]e^[YX[YWXSZVU[XVc\VcU]VXSTPU\ZU_QZURXTPRZR[QXX][ZW[]QVZQSb^TS`NPOWeVWdRTVT\QT^\[[[^VW`R]`XXZ`YeO\TWSW[TZYXVUXXXXUW\T[TT[Vc[]RVX\]SYQZWcbVW[\UYVX]WXPN_S_Y\SVWVQVNXUYYX_UWYXTWWWZVd]\][WPYR]bYVPY\UUZY]WW_X^eZWXUWVZV[ZPQYW^VUkRSTQYVTZSQYYWWTS\UZY[[Z\VXSV^WSQR[W[_]Y^Z`PXUUYTWVRdW_UWQZYOTWUY[WXVX\a]]YUUZ\QaUS[f[S`\cRUTYUWRXZZNTTVVXSV^RXW[SUWT\YhYR\^U\^TJPVX]VS[^XRX_Y[ZTWY[S]TPZ]Xc^`_HtQTYW`QYXPXS\YWSXT_X]]XWSUWU\ZV\bQUV\V\[XXWYSZV`UTPZXU\RZVXXYNZZV]TUX^UTZ^\TWV\]\[UYRWX[W^XRK\WR[PRVYPYSYV\UXWT\USYT\TWZ[]]V\S]^QSX`VXZT`U`ZS\XXZPWU[eSWX^V`\WUZZYZZQX][`VV[VV_]Y]_RZUT\P_S`ZaWTTX\\X]_[[_UWXXXXYUV_QSZ]XWa^[TY[^WQTYWYZU]V^[WR]V_YWTU^YQSY[^UcTXbWVWT[VT_ZQVWX\cZ^Y]^\US[SWZ[WW[WaS^\YUW]OX]W[[VX^eVRXY[YYW^YcX_XUZTRPQUY[W\YMQVaV[^[ZWWYWVaQYVYZUTW_[]SZWbXUU]VUZV[]UMRTeZT\VURVRXXV]X^TZYa[T\XXTYRRTTZXRTV]VW]Xa^WTX\W[YYZXTV[MWVYZ[XWX[XTaZ\TZQYTV\[TSVWVXST\[UXgV[cLZZVZaYXVZZU\UUZSTUTVVTXW[R\SUSXaXYWXWV\T^`ZXSSX[\]_]aX_VUYVWZ_YUUU]YX[]^X^YOY[Zc\UUY[]STX^^RaX]WYZSZQUU[[XZQ^XTO\]X[Q^VQ]TTU[[_YWYZ[TVYWVWXUWSXXXe_aUU[WWXTYS[XWZWXXW\[hYV`WWVS[`Y_V`ZYXUWZXXSXW\UXZZV\WZYYX`WXUSWV_Y`^^UZV^ZXbSQXSTS\_XTZY\Y[]\VW]X\VYUUX^ZW^[W_YWcYOZY^[U`\]ZT]UZXXLUWTYWXTY^SdUf]XZV[USWXUYT`\YaWP`WWVYWXZbZU`_UXYS`][TZWY_RXS^X_\RZUUU[XWVZZTZPXWTb_VZYYUVUX`PUZ^\TUV[[\P\[UX]XWd^\Z\XW^Z^VVWTUZZTUXWX\TUZZ_]ZU[`YV^[VV^S]VYU\UR_^eXVS^TZTTZ_`\YUUTRVYX[UY\TY_Y[XVe_\_^T^Y^O^WT\WY][XVPZW[XWZZTTWMWXSUZRZZUXSUWc`YXX_Z\WQ\YYV[XZUYYY\\\XQQX^\ZVUUS[T]YUWRRZV`XV]T[SVXVZYXSYTX^ZV\VW\TQUPYSWVaTVOYVVaRZ`[X[WV[YWZYZXVWQYX[Y`][W[]Y[]YVSY^RWUUSWXWXNTZb_WX^WVYSUVUWjX[Z[U]\YTWS]\aX]XZXTRYYWWX_YY\XZPVUUS[XVVSZTUZUYWTTWX^YXWYWRReXU]\W]V[\\UWZZ[XX]ZZYWWUY_V]VVXRSTTUTVW\V\ZXZX\\V`XYSWV\__XTWTTRUXY]dTOXYXU\XT_TYWXYSY^Z\V^\QV^UW[W]VZYXTWYXYPSZ^V]]YZZeWYZ`aU\YYYXZVWZU[b][`VYVX]YUS]ZZSV[UZW_V^[VVTYcbZXZUVSPUXWUe]\[X\\YX\YXWZYX[U^ZSSRTUQOUX]ZgSTW^VXV\XUSUY]\U[VY[UYU`YT^c_\YWVUXWUXVZ[OYYaUS]RXa\UYZXWVX]]T[WXUZUSZ[X_\XWWSY]_[]bRYZTWYXSYYW[YW^ZZWUSQXPUPaTX\W\W]_[WbX\X\WU[V]VX[PXZTZ]T`YWRaZT]\[ZVUdPYPT[]UUa[Y`a[`[SW[ZWWWX^eXVXP[^W[T\TVUUX[aTX[_[ZV][YVZZWY^T]VZRUYZYY\\YVVXXQ_UU^XSZVVR^]Y][`UWXR[WSRW]Y[RUUSWSUW[XX[^SZXXUYV\W_VYXW[UVZS]WUYYZTXYT\\UWXYS]YZ_OTXZ^\WZS][XTUSYY\XW_Z_[eXVYZXYX\\Z\YTOX]\VYW]\YYWW[^\ZVZ]W\ZUYX\XZY[SRYSUXQTY[ZcXYZXX[SSYUSW^YQ_aXWX\UYXY[Z[XRVWVX[SPS^UYT^XU[Z]]OZ\UWXUSYVXRZYZ_XXXVe\N`SVPRYOZZXW[[X`][]TTVRXVfZW^[XVVVcRVSSYYWZY[VUUYXZV_^_^a[]Z`_VUUW^U_TVUeaRY[TUbXY]\WVXRUPUZYV_WPWVUXU`YVZX]WXRVVU]ZZ[_`USU]VYY[^X_R[cSXQ^fb^UV_YVT[[]UXYWR_VWVTXSRV`\X[`eR[^WXUY]\]WXRYUQXXTYVVXTW^WT\XYZVZYZYcYVVWVXOWW]XUUVXYVW`[]W\XPWb\VVUV\VZWWYXWZW^V[ZT_^faW\LUYSXS]YZWXTZUV^W[[OTbYf[^W\VQYV[YTb[[YWYY[XaWXYVUVT\[YWUaVYLT]R\XPVV\WZ[]WUUU[\XWSb]UVWUXR`S\UX^WUYXTUSWYX^W[VUV_\W]WVTVVRS]XdPVSVU\ZXXW]]ZSV]YUVX`[WV^Q_[TYZMUXUYZUZ[VXVX\^U[X[`ZYPZXVZU^b_YU`[_Y`[Y_ZY[[]SYTUWXWUR`dZV]X^`[[`WXbdWSX_Q]UTSWUUZX\VX_VWTU]VW[XRXZX]\U\T[WXY]QQ[[XTTVSUYZUYXY[]_SU`UY[UX[X[VXVQ[VTXX[\`[VUXU[\XZR\Z[WYVWY[]YX]aZgSY\WTWWXVNYXWVbXWWT\YVRXWRV\][YVS`X_\Zc\Zc\YRT_XZ^TXTY[R\QUSUcU^eRZXXS`SeU[X^VP^XST[[XYXZ[V_TWUR^YZa\WXX_XU^`[\XO[ZV[V[VW\[XR\XZa[TW\X[X``XSYT[SXR\[WZWX\UYZSeVZ[\Z\WS[^_\YWRWb_TT\VXSWYY^ZTXZYUYYYfU[^\WQUSSXRWU^[YaU[[VYV]YQT`WTXUUYYZW]]_UXVMY_PUZZ[SZQZXUUWXVSW^_^WZ_[Wa\YX_UeY\XOZWYaYW^^X[]]_Z[YVTY[XZU\R[[YZ]Q]bUYVSWY`ZS[\WUT[UTT_VZY[\ZW[YT\^V\]WJY^TYTWYXXccXT]\[Q[R^]UYVWUXWaVZ_YYT]]^_WR\Y`^[UZ\][PYW^YY\X\\UYT_\V\dZPVWWSWZ[[][XSV^XXVVXZYW\VSZX[RVSY`]X^RX_Y\WX_T\QXUaTYUY]UWYb`X_[[[ZWVWYTXVU__ZWVWWUX_U]X[V[__X]U]SWYWZR[UTY[Y[OU^_W_VZ]\^WUT\Y[X_R[\[_\XUVX]WV_[_VRXSYZZY^UQVSS^S]^R\XX\YZ^_\V]\\TYS\[YQ\[ZRXVRSX_SX[UVX[Y[WTaY^]]WR\VXTOT\V]Q]QTVWW]T]ZTWQYRS\Z_Z]]NWXYQVX[[^VSd[XXVSgRPYVUWVRUdZYYZW^S[V[\SU_\USWU[[^cTZ`SXXY_VTd[YVOYa[UW_VUYR\VUN\[ZXXV]XV^VZVUXWaQZUZY\NZ[VZZXV_TXUVSU[SZ^XZ`[X^V_`VY[P_ZUaWSXT]_WT[^\V[_WY[W`]\ZVUS][YP_WNSYZ^VS`VVZU\XPZ`[YWU[[WbVTTXYXZV`VW[Z\WZ^ZT_VUX\[WZ\YY\[STcaZS]UcXXZU\UWV[aVWT\\[^\W]W[^SWY[ZZTWR\WYZV[VXU_U[VWU]TVWZX[`UXXXY[Z\QWX^]XX]XX]YSUa[VWUUXZUVWaWZ[WUV]TVUVXVdUSXY\WWYZX]YYYWQX]SZ\[[\YVXVX_QVX\VYQZZS[X^aYQb\TYTUW]V[W`ZZV[XT_SX_XV[]_YYXYY]V]XQ[^YYW[aYZ^^[[YYYYYQY[ST\`VXR[]U\XZ_V\ZUZZ^_Z[SZUZY_^YZO\`^^^]a^UYV\USX[ZVZYZZQS\Z]PQZ]YVVQTXTXQSQc\UVU[XZWUT\]VYZYPQO^Z]Z^ZZTYZ_Z[YYWRX\]dSYX[VUV[]ZSVUYSU_XXV\XYX\ZZQdRV\\VRQIVS^XYU[ZWTYYXXQ`XYVaRZYW\RYcRP\Y^YVT\XWYYV]]W[W]ZSZ]PZV]VZWVVTX\^SRTX[SUTYWXYR\TYYVWXVVVV[WXTX][YTQVTe[VXZYSVZ_T^[ZcXWUWQ_XSUXZUOZXV\X[_^YZ\RVVWSYYN]W^VXV]U\YQ[TYZYUV_`XQW[TZPYTTTTcYWZZSS\XZX^YZR[\V]TW[]\QVT\P[WPUT\VYWQa`[WVfY[_U[Z[[X]VXUPX[XUSSR[YeZXW^ZXW[ZZXTUYVW\QZVVWW`YW\P\[VZZ[]Tb_U[YRVT[XTa\T\WVWV[W]ZZXW`YRVSPR\TZSUX]ZRXYaXTZ^[UUZXTZ\Re^W\YWNUZ\Z[RVVeQ\YY\T\aXYUZ\YbP_TYT\UeXY[ZTVSWUZWW[S\ZTYR_UZVTO\XWV[VbY]WSSWSV]WV[\_ZbYSXV[S[YZdYYVde[^\X\^XV[ZYcWWZY_[XU]c]UUWUVVaY[\UUSR_R[X[VUWTS\[V_T]UVXT\WXZZWV[TVOZWTWTVWVY]\e[SVWPYYTX\\W]QX[YWXSYWUVUW_ZXUXS[VZZ\XSZTZYZZ_USXRUXYZYTWW_V[Y[X[\WQXXSV]STZ\_ZT\UW]Y\YT[QZ]\UXY\b^VW`TXWZZY`VTXVYY]S^WU[\ZT_U[PU_N]WaXSUVZYXWbUWSS_VY[UacSWY_]WXS[bZ[UR^PTY][[[[WMSZUYO^VWZ[USZX\TTW^[[SPQYXTRVXWVUaV[]g^W\`YSVWX]V[W^]YX\S[^]SVYVYScWYZXUW[W^\WX[\Z[\Wb[aY\WaY[\UU[N`TVWU_\U[WX[YdYYU[W[bV]ZTYWZ^]X]`WT[aUVM^VUUYXWVVZ][PVU\YXUVT[XUYXZZSXSSTZ\^VXY\\U_]]VYOXZWS\[ZPX][^[STWaTTSOZV]ZUY]]XWZU]ZXURXTZT^YU`VWWZZ^\YX[V[Y]YYUVWWYXUY]]XZVY^Z\TUT[SUXZXQSZYVWZ]XV[X[RcaS^ZZaPXWXZ[W[W\]S\YVY_RVYYZWVcN]Vb[U[VVZZXV[]XSWVR][Z[YZUZVWSXV]VXWS`XVUX[]TUXU\YWUZ[Q^[WUWSUX[R`OXUSW^YSTX[SXY\T]TWXT[L\]\VY\[[UTWXYVYUVW^UXVYS_YWZWXYNYYLTPVX]SW`TYYWYU\XVYY\SRXX[WZZZ\Y]]aYYV\TU]YX\XUOP\Y\UU[Z[\QVVVXSTR\^RQRXXTTXWTY_XUZ^]ZXYTXUO[Z[Z[UZXRZUVW]ZWUWU]ZQcWRPUUWV[]SSTY[XWXY\Z[RT[USU[R[X[[X][ZWSY\UVW\[WTZSW_Y^\ObVYRXYSX[PXXaUZTVU[YXWa[ZUR\XX]Y[QX]YW[[UTY^U\R\VYYSUX_S[WS`WW^W\cYYT[SXU]WX[^ZX]WVYRVXZSU^TYWPQT[bQS]URZWZZU[\WXcSSXUYY]VYYSS`RSS`[S_T\VXX`WSUX^\UWX]UgW\\YYU`X[UX_U\TX_RO\_X`XXWTT\T[]W_[ZW^]NRYWUVUV[^]]YWU[XVXSYZU_ZMTZXY]V[\V\R\SVWaV[]WYSYSW^Z][gZUZZWV]\X\SPY]XTZY[U[YVXWWUXVTVW\XUVUX]VZWQW\[T[aYaXXVU^_bQTZUZZWXYVNXY_UVSOV\WYVS[[QU]YXVXZZZQ^XRYVRWSXSY[UXY[\XWU[^S[V^TTQVZ]XYUX^VXY[[\S]^VUXV^UV`VbWYRTS_]VZ[_VXVXU[WYXRSUY^W^VZSUUU\YaXXWXXYZZdZ]YNbSVZ^[[[V]RZUWUUaY^VXUOSTZOX^YT\_WVUXZV[^\ZR[heYUYXYZ_XS^^bVYVYVN]W]VYYXYdVYX^_^S\\YWW_[YX_SP]ZW[UTW[[`X]Yc_V_XYUVRUU[[W]VVU[ZVV\Rc]UVXSUYa]WYYZW^RW[UWYSYW^ZUT[Z[]^SXV[YOXWY[U]T[\UWUVZPUUYZXUU[Ya\UTXUTS\WTPVW][Rd\SWTX^YZQb^[][_\WVYTZV\X`VXV`[VZXUUVSYT[WQ]WVTWVXR\VVSX_S_bV\a]VVWX_YZ\PZ[\S\ZYTWZYXUVX^XWWURU^NSTY\^`ZYXTU\\_TYVZ^ZWXTXaU[T[ZZTWXRXYWaTaa\Y\[XYXN\Ze[]\XUVQZ[Za]^]W^TVXV]Z[VVRRZUU\XTWTUYRZXXVWYXZ[N_V\URW]WTZ[U^W\UUWRVTP]TUa`WTUSWWZTUXZVQYOS[[XV]ZYUSR[Y[SW[WXYZRZZ[aWcYXb]WYWTXWYYSP[WLYY[VWWWWaS^QWSXYY[X\V\SWVTRaSUOVSZSR[]WWUVYRTV]TT]TX\VTVTUU_SZZU]UU[[WZUVY[WS^[S[UT_ZXVUU\Z[V^ZVV[U[XVZ`^V_VV]W_WZYPTTU\TVVV^WZVX^]V]UQXXZ^[ZZ[_R[^UZW^S_WLZNT_XYYXYZUSU[[VXV]WSU[WUMVXUZZ\\]XWUWYV[]]`Z[\dVZZXZ[VUXXYPWWW^TZPUTPZZUUVTNTZX^YVQQXW`RVX[ZaWYTP`[R`YVWWVZVUW[bQU]UTWY[TTXWZTaXPZOTU\RaWWQU]XVUYXUVV_YWNZZW[Z^\WSVTZ[VRYa^ZWVP]\\WS_aXUVVbSW]]X\[`^XOP\S_^YTUL\U[ZM[X[XX[\SY[YTVPSUVU[QZb^_]aU^Z[W]RSV\YXSWYQ^S^[T]ZZ[^WZ[Z[^]XZSR\VTU^[]_\XPU]V\YUVVSSQTVaRZUYYSVZS][^R[U\^T]X[UVW_]\UWTW^][[WWaSWY_SW\W]X`^US[Q\aT\TTVZXdUZ^ZSU[SXXVYVXZ[Z\][[R_]TbYUYbV`UXSTS\\ZWVXSb\VR\P[Y[XX[RZ[W[U]V]][WWV\ZYXSUWXVVYVWXUX_V^V_S]XXWX]SZZXiYR[VS[Z_WYWXXXXTVW\RSO^WaU[ZVa\bUYVRc[RW\ZVQQaXUWPUO^VTVVVRU\ZWWXMYW^Z]WXU_ZWUYVUXVWVXQSObWX\^ZUV\d\ZXYMbYY`MUVY^Y]S]VZYZVTS\TS[VSRZYVVZ\[ZWYYSWW[]`YVP_XYWX_WVUWPSa\WT\T`SU^`cYZSbT[\YbYQW\XW\UZ[TWXVaSZVWXbRX\T[XR\ZYUZXTRVVXYTZWPcbWSZYgaXS\Vb_ZZXLVVV]ZaZXXT^UUe]XY[_UZ[SN]ZZVU^YW_ZWZ]XS`Y`Y[WQ]Y[XZWXUVYWYR_SZO]\UZ[X`T`\XVWTKYYVTXdSY\TXXTTV[]WRS\W`Y[YQTbXZZTT\UYW[]]YYXWXUTXQYX^RP\d\R[U^SVWV_\^R\^^S[YWU]T`[]\SVVZO\P]_WV\WT`V[^W_TUTXUQWV`ZWWX\\P[UQTQVUZYdV\YYZ]][^^TYVT]PS`SYXXXc[SVS[V^Y]UV\TZ^UZa\YZaV\V^YaVUXX`YUa`WVW[\WOVW_UVW\]^^V[ZUTVZYYZ\_]V]WRdc^Ud[XTZcY^VZ\QUVYY[Q]T`jWUSW]V\XO_]XRUY]UYWZVZZ\R[[YQVXU[]Y]YSXY^TZ]VZ\SWYYSX[VVMZ[UW[P`ZbXYWQ`[U^U]U_^SX]X]W_ZZZWZR`RWUdVS\Z`WZ]_[^W[VX[aVY[WRVWXO]c^ZW^ZXV_^VZZXU\U\RP\X\XWUVbWSfZW`YZ\SWVVYT`[V[_RZZ[V^^WXcY[X]Z\YZa_[b][SdWYZZWPWWW`XWU^TX_VV[V^UTTTYY\[RVX\ZWZb[Z[Z[Y]]R[Y]XSU`VW`SWTRWYRWUSU_`Z[TcZV\Y^Y_VZY[VVU_WYTZ^\TZRPVVX`XXV_SR]aVXVVX\TVV]VT]_X\QUYVTb`VX[YVZRXaQXWV[OS_\XZZTZZYUVg_VUWZ\]S`bVT^HXSX_YUXXTZVaaS[XZ^U^_Z[PV[eXVWXW\VRY]V\S\UV\QWY`WVWUS[YZ^TSYU^]TcR]S_X[`\_XVTiT[U\[Xb[WSX[\ZQS[Z_UYW[WX_YXP]`T`RQVeW__`WVTd]K[SW]]a\R\X]U]VX]`[YWVQRVZWZQXXYY[WVT^QXZ\_[PVUeYWXOWU[TV[]QY[Z]UXYXLS_S[WTZZXW]RWdVTWWUZYSUW`P]Y`V[W_US[]U\V\`[VW\_TUYUYa]V_ST]]`WSUV_a]ZYT]W[X[\XPYVPS[][\WTUZeQR[WZYUXT_[\\VU`PQ[`][ZSPXVZ\T[W][YUT]ZXTWS\VT_RY[\XZ]YU]_X^UUWR[\_YXURYSZ^XYa^X\ZVUT[YZTUVTWSYSeTTYVO_YVXYdOXTUWUUWQW_XWY[X\SZ[\YX`YWaTYWV[VVYSV]_S[[WVUVNVWaTV[XUb[ZQTV`W[UY]bT\WXWZYT_T`ZXVYWR\SVYY[bQT]YZ]VYZZQXRZSX^UQ_XZYVXZ`Z^aXW`WZ]cZV\[Y]WXcWbOW[WURO`R^b\a]Wb\U_UTWY\\R[WXW^\[_TY[UT^VPWVWMdTRN]Z`VY_aX]PW[Wb^WcTXXWWaVTYVWXYTX`UVZ`\VR\W_XYPUVQXTXYWT[XS[VUY[_[\_\PUVY\URT^S_ZZ[WV]WSUVWUUVWY[h]V_YX\TVWYW_V^bSQZ[[ZYSZTe\TVT]ZT[VU[SW[WYV\VSYUW^U^V[_]WbXWRaZ`UZRWS\fPVS`VY_\\Z^]^V\`XY^OWZ\W_\TY]SST[UXW[W]RTXT]X[[TWTUU[UZYRUZUWR[[Xb]ZS\]VRWTR[`T\\Z\T^dbZY[]XS]^]XWUY[\[X\]WR]SY]\[Y\Z]X[`YST^VaSVUYWkYYV\Z\TXU[XX[S^S\UW\Z_VR\WSZUXW_`Z]\\U[W\XUZVWYYUSSVWQRXaWQ`hSSTZW]LXX[QeWXY\YS_VR[SbYOWTT\ZV][`abS`ZWT_WZY\XPZOUVOWX^RbdY]TaTXWMYV[\\YZVUS\S[S\PXbZZU`WVVWWWYUO]\\][[SXY_XVWWVWU[_YVRUQ\UW]YYOYW]V[^\\[[[\T\XVWWaUVW[YZ^R\U]U^Y\\WXT^\[\QZX[UZ`V`NXTY]XWaPWZT^^_VYWbXP_\\ZY\ZW[Y[T_UZTP\YVVaZ^a\Y`WZ\Q`TNT[X[V_UXW\LZWTYhTZQXX^VWUYX^XX_ZWXR[W\YYRXW\ZadNNYHXX[ZX__UYa\YU^ZLYaX^[W]YWXPZWTXYXPRWV]XU\W_Y\YUXVWW\VU\`]Z[\QY]YXZYVU\RU[WZ]YcSSXYZZYYXU[YXYbWRSWX[^Y[XX[]\X[XW]R^VUY[\`YZ[TV[]Y[Z]T_VU]ZZUUUZVRQa]YRX[Z\U^VZ[^V]WW]Y]TVZTY[\SVWZZUTYV_[RW[^^[WYXTZVRYjX[g[cWTUXUXQZZ^Y`VXV\[Z[N\ZMaUQXTW_XZUYWWYVVZYWP[YV\SWXW`[Y[VWVRZ]XZV[TVVWZ_U^X_\VX\XVUTUUZZXZ_[]S\WaZdXR[[XbR`ZZ^\WUW[^R[^XYW^^XUkUV_VY]S\YU\[U[XSYUXTb^VZVZYQXSX_TV\Z[dWZi[]WXZZ]WUXcYXW]ZYZ^YX]^TYTYX]b`YTYW][^[TV_ZU][T[XSfeeX[^^eZTXXXR^WUTWWW[YT[[[][^S]SUUSVY\ZUY^XUXZXQ^V[TZWXU[[WQYX[\VOUXVWZfVZX[RS^XQXTdTS[UZUY_UW\YZXS[]ZYXY]UY]TW`YX_Zb\U^ZUTYZUWWeYWZ]]XYUTbXWT\XY]YYT]USRY_T\WYWYXY]\Z^VXY[UVTQSUYX\ZZ\Y]VXU\UUXZ[WWY[ZVV_V\ZVYRXZTY[[UaZ\WWZW`ZUVV[WYYY[c[Y]VXXdVU[]O^WYc\RPV[[U^ZWYWY[ZTVVZVZXWUVYTV]V`UWUVba\_QYYYRXb[YVSZSVSX\[WUX[Y^W`V[V[VWXT`YRWY\XYYZ[VYT^]UVaYXW\T\UZZWWWYaVVVZUZ^YVXY[WQXRcYW\[ZZXZPZ`ZRSYRUYZVUT[]XWVTZZ\P\T[TXWZZYU^RYYZS\^Y]S]c[ZY[bY]VWUZUX\YZW\T[]SZXS[a\_]YXU`Z]WTW`V[[]XYW\UUS]RUZZXY][VUZTT_ZWTUVVYYY\ZZWQ\U^X[_RQ]SSRXXVWZR[ZTWMXcXSTSTYZX\YTXUWV\f]\S`Z\b]hX\WY\VRWVUWVVaWRTXVW\]W\YWXa]Y[cbZP[PcVXbZ\VZWUXUXRWX\]YT^ZUX^\TUV[\\XQ^Z[YWW_T]OX\W]WU\WUUVUZ^]WUQSRWWU]XUT\TVXW[Z\[\X]YXZTYXZZSZX_Y]_[cYW\XYX\W^^WWXUTSZ[YZ[Y_QQWXXYW][VZZU]U^W[TY\Y\VXZXZZU[YV[UY[TMYYN\ZXYZY`]V[XQ_W^YUWS[VVVW\[[YR_]Y\Z[[[ZTWXZ\S[[Z[[VN[YUcVTZU^SYYX_[UVXcXWZWVZZ[QZ^VS^ZTXVWTV[VZW[]VZ_][YTT\]VU[\V^[YTVaRXWV\U\^VX\[ZUZWY_VZYYS[VTVVYVZ]ZZYRZ^Wa][YZ[Z[V\TWX_XY]US_Y^[TYUZXV]XZ]V]ScXWVY[WZU[UWZX]XXWYXYXYYRX[XU^Z^TV[\Y[LZVXUVSZWVTTWXSRXVYWU\V]YXU`UUV__X^[ZX_W`TWW]W\\^^T]VYUS]\ZSWZaU^^TVXZUW`a^]YWXXWZ]WXV[U\Y[WX]WXZT]YY\XOVUZPXZ\VV[WXVWUYSXQX\WWW[ZS`PWZVV\XX\QYYWWUS_]Z\VZXVUXV[ZUYXZVW[WW_^ZXUOcVS_SVbVQaVYPQUZWWPY\\WWaXUOYUZSUPG]VLSYaY]SdWTPXJaVTUX[RUZ[[VTVTUOPUWVXVQ[WV]^QKY[LXPS]RSZ]URa[TZc]YOXVVP_YRS[XU]OS\YaRPYTTL[VUY\bWVTPROOUYOPSZNUZ_RUOXXZSXVQKWRRQT\VMROXWQ\[[XZZU\YZVPJSUXRVQ_YRZVY^XV\V_UZ^M^QO_TYOVRYU_[M__V[RWZURYVUQYUUY\WUVTQKPUR^YVW^WRUWU`YRW]RTTZXUP\V_LSTRQRPWMWXXZZLWcY[Y[W^QOS\XWY[UVZMVX[ZW^YXVSS\ZXUYZW\UUZPR[SYYVRRM]TWTRX[QUTWRSNRRWY^TN]UTL[PYRZUXRYMVXa[aSSa\[VZR[WZHR\UZ]NUVRRX[S[TUYPUVZ[YPSY_RYUWOS[OUWZY]SR\VYTVX^UXXPYTRVQ[W]R`P\Q^VTZ^USVTO[\XXYV_\VVVZW[bUWWYXYRUSX\\]SXYO[V]WZ\SUVRZXTV]]XZYXXWZW_YVW^]WJUUX]R[X[^^Y\WTTUX`ZTW^SX[SPZUVSZ[UX[RVUYZY`\T^YTV_YZ\cU^X\`[XWS[^U[X[VWQ[`\Z^S[V^XRW^[WcU[Y\]W^[f[`WSTWWXTRKU`_OeZ\X\W\]\[VYaXVV_S\Z_W[Y[\^c[WXY[WPNTU]RSSQU[[X]Z[V[[T[TSSTQ\ZWW\SXR^RXW[X[TYU]Y[WX_X\UZVUTWWY[ZZYY[WVXXD\YXUYS\X\ZXUSY]\R]^Z[SS\VRXP^`WW\RTcXVZXXVV\ZXUYR^W[RSVTW[T[[XUU[WXSSVWUYW][VYWU^SWV\XW[[gV\UP[`Z[XPY[YfTUZU\U`RbYT[T^Z^8WWQ]Z]_]SRY_YZ[YXa]PZ]XWTVRU[[PVXYSZc_Q[TZdXbYXSR\ZRSX\VYU\VZZTX]ZY[YX_Z]\QWYXWaYW]^ZUWXYXWY[WY^RYQVUWQTXSVVYfW]VVR`WXVY^\YOOVYW]`YTYXTXY]YOW]SY^UYVVTWVYTSdQ[YZbYZXPZ\Q\\TZcU[\R`W[]^]T^^WX]\\RZZWQVSVTW\a\XWWY^^`[Y[VVZOVSZPYZSSZ`a[WNWWWSe_W]VZWeS]SPWSUW[X[aZTU][VZ[]]XTa]SU[UW_WXdSaL\Z^Z]WZ`]VYSTWTY]WZ\V[T^S[ZWZP]YZV_X[]XV[VTXSVXjXT\VWYTX^WVb]XV_LOU^`]UXaZQWWUTWXYZ[YY\RSQR\\WSVYV[S_[gZZXWYYV\XXYVW[_[bYRWUVZUZW[YTXcV[XWZS][[R\\YYXXYWZVVYZVWSQY\YY__^W\RZ[YXYVUSYXVUUV_b[V]WeWW[V^YY[USRa[Z\QaOZTWbZUUUZXRUQUU```WVTXQYYQY\jVXcWXVZTYXWYX[\Y]YW]^RWc\[\VXQZUaXXU[[TWWRY[]]a[P\]T[XSU]X]V^XaSYX[`WU[ZS[VZ]_S]W[ZTWUV_T[SQX`ZTYWXVPRPUWQ]^TXZ[T]X\a_U[W^b`YVZS[YUS\eTWYWWUaU_VTWSWT^W]\[V\WZZ_XX[[OW[[V_ZVV`\XUVXWTWS_`XU]YY^UW[WSVYXXNRV]RXV^X\VaVa^V[WRUQPL\V[TRZ`X]UZXT\\V_UT\]X\ZZ\Y^W^_T]gQYZ[^Z\PLWYSR[cWSW\UYWZ\Z[WW`Q^WVd\S[VXR[PVNYRT[^Y^XZZ]^[]PUZWW\VgXWR^VY\Y\WUSUS^cRYX[UZWTTaNWWYYVQTW[[YZYWcYXVYX]JZRU\RfX`V][WYVYPcaWSWQV_WUZXTXZSXY]TPVKW[PRPSUXYVVWWWWWaSUSSZXYWWV\SW_TTTXYVQVXYUWZUZO]]ZO[YQX_[UYRZRLXZX]V][TUWJW[QQYUYVXVSaXUY]SWZUYWYUPZ[\YWSYU^ZYWWWR[STVRW\^O[WVVTUQZRWZ]VSYVRMWUZZZOYZRUPVZSU[VYWRR\WS[XUUZVQ[R\XT[STRWZSVU^U^]V^XX]VQUWUSRYZSR^KXV_VZPQ`PYOUYVZ^[VNUY[[ZVRUZSZXZUX\WXUXWXSYX]Y[Y\VZ]W^XNWRQU\SZTXRYYVaUY^Z^UU^WTRYP\QWXU[UTVZ`WZX^WYTWYYUTUXXXOSVXVUUOQY]WTXVY`ZYSaSUZS]Q\YUcWV]Z`\PYYVYTYYTYTSZW]YUXUV[TWZ\]YZTZPWVeOR^SYYSYbWVSNVWV]TWRWUM]V]VT[RSZ[WUVXZX[YXaT\e\[^\WSQX[^\S\VVUWWVaYZ^\VaSYbXYS_ZQOU[SZS[cYQU\`XeMPPZ_VU]WUUYZW\X[UcSS]RW\S^QVP\QXMTUWVX^VY^X`WlX]YZYU]YYVWZb^R]QPSR^UWTR\\[US`YYX`cM^VWT\X^SbXYW[UXR]dOXRMVV^UScXWOY[XR[RTPWX]WUTWW[WYQXYTaXXTUZX^NYb^_``PdYWSXVSZS]ad_P_NTUTXSTU[_[W[STY\WZ__TXWX[[UUZ^VPXaTWYU]WWM_ZZeZXUWX\VcSZ[WTUUU[WaXV[Y\cPTYYW[W][W\W[QQWSZ^_VU\XXOZSZ^XQW_Q\V[Z\ZV[U[SRZST_ZTUUS\YSYYYUQ^]P_UXRZXPYYYXW\\^VXVXX^[V\VSQV\S[XU_U^XaX^M`PeWVSU]WT\[__YTUZYS`SYZWRTZUUWQ]XZ\QY\W^R\YQY_[QWS\R[_SZ^TYVSVUYZJ`VOYVYPYVWVYXV\US_\OPOVUZRVUTRRYSUQXWR]VYNTYZV\UWSU[YTbWS\YYY\ZT[^WWdSX\V_UQY]^QY\ST^Z[RUT[[Y[T\RYV[N\YWST[`YTa^YTSXVa]WOQP[]XcYWVbVXUUM\cb]XWVX]XVST[OWUZVZWRS\[\VN\^]WYS_[cXVX]ZUW\ZZT_WX]\V\dY[V\TY_X\[WYTYXZNT]SU]]OSQNWRZ[WYYN^^[XZXZVZaTVNZ[\SXVc]SNWX^SVSZU_XUUWYWRZcYT`YXYa\VYXQSWX[TS\XWWU^[NWSWZWYX^T]XaWY\[UVWaXZR_aTZWYO[U[[WMXU^TVVU]`YVV[bZ[[W]]UVMS^]\VWWMZU[aTX_YST^TZZYRSQT\W[ZU\Uc\WWY\XYVZ\_WPZUUYOY[VcVVSPWX_Y^SUTbUYRZRTWOZ\[XaT_[WWYT]UXYYS[Qa[UZW\MVN`W]X]Z`WYZZWUW_V[MWYUW]]VY[XRXZTYaRYb`Z`WRUYYeW]UZX\\TXVQ[cXb[UWTTUYUXZ]TSWPWSV\]YT_ZWXXZX\TRXYYYnY^S[V\VYTYTY]^^XUXXV\U[\WZWQ\Y\U\^UYaYY[Uf\RWUUV_YYUZ_e[\[RUbTY[WU_W[Y]XZZaKX[[TY\\^SdRPPWXVXXW\]]\\\]VVZ[^^\^VZTZXQ]XW_R^RVTYYW\]YT]ZXYV^[ZaV\Z[gU[TYYZRUTUUZ]_XVYVacV[^S]ZUUVSVZR^UZXT[]PUZP_UWT^ZWXTRYYX\VYVWPYUZU_]ZSR[UbWW\^`XW[XS[Ye]a[UQW]VWTOVS[U_^\VS\SQXa_[Y[WU^WXXWeUYaRYYWWY\McUZXTXS]fSXYU]V\[c^[Uc[_XWS\UXZV\`SWS_XTZV`XWUY_PXKX[\ZZQ[Zc[WXSZSVV\XWZVVON[SWXYX\XUN[Z^^T[V\\`YS[TWUTVTXW_TY\[YVX[Y]ZURWX`STXT`R\NY\TYY\X^_ZVY[`XZZVW[\[VW]]\VTXW_[RT`WYVT\SXY]dYV[]ZZSXX_UYWY^ScYUj]\aPWXU\UUWW^U]YT`^`\WZTXZWUVW]^YQX\^YUTWVWVaWY[YWW]TXUP[WSQ[W]SWWY_RVZVVYZVXYYbMS^VQ\[T]S`]\g[R^^XW^RYZZYU[TVbVT\[^^^[[]SSY\RU\UdUVWYSWU\`V_XTRcUW]VW[R^_UWXXTWZXQYSYUcZT^ZSXS`[UU]`_XYSZUR`XaYU][VYYR]YYUX[WTYQYeUWYZY]W\X_YUW]VWYYYX`TUVYVZWTU\`UW[]WY]YVWYTXRUYcZSZ`X[XY^YTY\[WP`V\TWWOY[_]ZS]Z^W^QYTa\MbYZ][[YY][ZUS^^XXU_Y[TX``TZ^\WXR^c]R\]TfTVU`UUZSVWUWW^WYXRSSV]]Y_[YZTU\Ya\[[U\[[\Y]VYX[UVWcRWW[ZZ^YX^X\a`ZgV\V^U`a`bSg_YZRRW[YSY]XbXQ^ha\ZVYeYRYW`TQXQ^[YfWW\_WZ]RYWR[XYYXYVR[OZT_UTTZYWYQUY\Y\_^XXY][YSZWQUY^dXTY[Z\VbWXUZO]SY^WSOfVfd[VUPWY[^[P[ZTUZZTcY^Q_V\S]UWXWPWbZY[Z`R]XR\WWaU]YX_VXUYcZZRQZaUTV_^^X_W`N^a[VXTTS[ZaX[TWZ[Z]dX_aZ[\YXWWRW\U[]XUY_[_UZTVVWgVX^Y\QRZXZ_WcRS\U\[]R`[Y[\b[^]WWYXTY_RSVdU\PZQ[^XTWPV_UYWWYTa\XYY\WYVT\OWO[STX[_UX]T]^cUYXZWbT\R^U^VYR]WWV`^XXXY_PZ_\[\YVTZWf[TYZ[TWaPRQ_ZYY[U[T]TVXWWXY^YY\Uc_SSVVZ^TX^M_bVT[[aY]\ZXZVV[ZUaY_RY[YYYSYYSVd]WRWZWW`TXQWSTWSZ[SZY]ZYWVVXVTVYW]^bWZZ[ZU[^]WZS`XTVP]]WWWT[[\VMVZTVT`[XY][YYR\VRZY_VSZYWZRUZY``ZZRW]QTSZWRaU[`QPX\T[WWWT]VZU]ZUYVXVXVYWZ^[YdQ_YZ[]`TOQXZYY[Yb[X^a]a[\hTaW\YZU\YTYXVY[Q^[Y^TQ[V\VYTTW[^T^VW__XTVU[[^[^WeUYZ][Z[ZTRQZUVVXSaUVZeXNZ\`YJRUS_YWWUVWV_QVT[`VdZ_PaW_c]WYW[^YUbTc[WT\RZUW\ZVP\[RUSV_YW]TXO\Y\Va\W\YZVTc^UWUWWRWXXW]Y`_fYPWY\T[XUVY^Q^XU[WY[Y^VS_U]_ZYSYVc_Z[VXXXb^P`_U]UWWZ\VZ[U_R]V]XdU[^aZY`ZdX]Z[YSb\WYWc\cWT[dSZ[R]aWVV\[XYZ\VUVNYWY]ZPUXUPYXT]W_VZbiWYVU]UVVWZbSUV[O`NYXQZWP[VYUWWX_[[U^SVYWWYYUU\QVVTRVSVZY[ZO\U]ZWUU^TTWYUZ]XZWWWZUQS[\Y[`^UZ\]SVZaVS_V_XVVZVV]UUV^^XTZW[V_ZZ`ZY\TU]WYYbS^]UU_^XW\[YTXYYVZd]]\_YXZTUWXUXaWWVUUTM]\VYWTW^YWTWWVW]\RXW^QZSS[SXQ\Z\ZXNUWVX\UZ^VV[[VQXWY`WYXSZ]c^WZXSZW[QUWXWa[TY^XX^TTT[VU]ZU[[YWWYZZXYVaXS\TUSTWXZ`X^YZ\]OYVUa[[UX^W\[XYZS[YYV\SSZ]]VS^]NU\RO^YQ]V[]_XYR[WZYZ\X[RWTTL_[`XXS[\\RbWUZ[R^YVWY`_S][]SW[QUWcX^UZYUW[OVNZTO\UX\WXVRUPZSQVZUVUXTUR`UWWVUWW`Y\KUR_[[]T_T[WYT_WTW]QU[RWT]]YY]SVXRUTQZ[RRTS]RY]XUSXV\Z\UXSP\Y^XV]W^ZXYSX_^ZQYS_\[\Z\RWZZbUR\Z\YZ^S_`YQU\_Z\W[XWTYXST][X\^UVS_ZNSTWZPVSWaTX[W[[ZV\T[ZV\YPWWXTeTZ[V[TS_`T^SOXSX\YU`WVRPRY^W_]ZbU]VUX[V[SXOWVX[V]ZZU]X[VTR\VS]RWXVWZSQ[XWVWU^PSWaTW^WRY]GXZ_X^Z[U[SYQRXVTUZLYWVXX[ZUTTUYU[W\]TZZYQXVZZV^YYRZWVV[PWX\Y\VTWQ]V[Z[XUVYW_^VZVVT[Q[_R[aaaW_TRW[XYQVZU^\_YKY\XSVTR_ZTSZZ^?[^\WVY[\VW[\[YUNWVPPSWYWZ[_X^]_PZN[[[\SZ\WAWYU\\\_SUZ_WU`Y`SbJWWgZ^XUTYURWSXUWSW_WZFV]^WU\\\Y\UWS\VSZYVWXTf_L\]XW[LY`_QY[VVTUQX[SXX\^OUYWXY`]W_Y_UfY^STWUTW_U]b[XXWYZbYYN_TLSPd[N\RUf_V[SZ\]ZWbSY\]aZTaX[ZRV_\Y]][\[R]V\\ZWY][XYY^WZXUXYUWZ\TYOZSTXa\WYRN]TW]^]Zg[Ta_T^XWST`cW[=^R[WOOT`Y_YZVW\^WYW^_Y]]OWb[^TOK[XYYYWV^]TXW^KXRfRXUT\`faUWV^[`dX]ZR[V]YYTe\YVWTZMQ[O]UR][N]ZWY_UZXO[YO^[VVW^Q[YVZ[VZXMNYXUMTVST`\\YV_][Q_RPWZ][UYY]ZQNSWSUZZ^ZT]UU[WW\UYZZWQPOX[WU\TYWXWWVaaVWYW[NRS[UWUaPY[^YWWSTTa]ZWZZ]WZZYVS[RY][Z^[_WZZKW`UZZYNZSWXYX^Q]TRUV\T\R^QYWXTTVYRRcRUZY^UT]X]YSSY_Zb\ZWV[WUUX]\VQ[XZWZRXXVVSXYVYZZa^WSVQ[SUW_MXTPVV\RU\ZUU[VeYXV[PVXX\^SWZZYWSW][_WYY]ZTS[Y\RTZTYQY\[R[RYZSZWZS]QVZWV^VaVR\ZW_XVM_OZVUWX^TZ`UU]USW_^VWR[[ZYZZ^]]VS^U^QX[Y]U`V^ZXWX\T\ZZVX\[YUU][XWYWVX[SXYWcM[`WTW\UZbVSXS[YXYVWVXXVS\NWXW]XVZ\\XXWTZ[\X\WW_WXbT\ZZSZ\VWW^^W\^[\YZ[YR\S[Q_TYXWX]WZZYWUZ]US[Y\OVX^YXXSZS^OXW[_W_XZYY]WVSPW_TUQZYYW[]USWYY]WY^^QTXVTSPWXU\WY]\\V^WXV[QV]ORX\WQV^T\USWZYRY[ZTPZb[XU\]Y[TWYYXWQ[YU[bV[_U[]UXTV]\T^PT\Z[T[VbV_VZW_P][[TX_X]ZW^UVXWYRWVYVXSZU[Y\\Z^ZTY[]U`VYWYTVTU]SQ\U\[P^XWZXYQTQP[^`ZV]b[ZWVTS\QZS\]\Q_\\[][R\XSRbVVXRXQVTZ[Z[UXY[_ZWUVZ^WX[YVYVURZ[_SVTYSZRWZSRZZZ_XRYX[STXWZWaVXZIQUXXTWW\]WYTQWYVY`_UZZVT]WWZ\ZXXZSa[\X[]XXaXTSWVWZZUYVZZ]RZ]\USa\XVPYVZ^YYV]\`\UQX^Z\VVVYU]Q^OT[\Xc[ZZZWSTVTZWZZXZV]VYY[]XVW\XVX`^X`VZYW^XaRRVW^`Y[]V\\bV]VZYW\VYWW]U\[\Ob]ZUTWVX`ZTWZR^SWV]eW[baU^[^VY]PR[YXV\XZUWSUWVW]R^WYYWUTZ\SX[ZZQWTWTZXWZUUX[WmZV_^TZT[ZY[XYUXVb^VUVZTUW^WWYVYXRVVZZZXZTUZaQW[]T[[VVX]Zd[ZNQU\]^]UQUZSO][\ZUSdYYU_XVZ\O\fWT\T[[VW`]V`YWU\U][]WVQVTjX[UQWXZZW[Y]`TW\RT^UW\Q][dUZSYT\]UZZW\UY][U^SZWVYUYST\VWXVWY`V^[[TXQ]XTXSVTWXQ]^U_XXWZOW]YV_]\]X]M][^YUVaSZ]`X^V[OVeVKWO[UYRW[[RY\ZT^XQW[RU^WZ^^VUTdZY[XbVOWS\X^\^U\U^YWUUVXY`UZa[]VXX]R]_[`YXWU]b]ZXX]]Y]T\[VYQPZUL]`]\XU]V][[XW]RZYZV`^S]VWP[hVWXTXSR[^TXWYYYYWYWdY[UUW[YSYT_ZQY\ZWYSV\YU[XP\Xc\UbbXX]W\VT[`XYWVV[Y`]_[\[UVWXRU[U[XUVP_^UW[Y[YV[X]UY]W^ZVT\[Z[XQd\[ZUSbbWYVVZWUR]]bSSU_YWZSZRXTZV]WXZ^^^UWVU^UX^YSO`NSUX[YVR[S[V[^[X[dZTX\YTSVZXTZR^ZV`W\eZ[ZOYV\]U_]^O]^WZ`[]]Y][TXXUTXVZUT[Z[_`Z\\TXWW_ZVXYU^W\Y_YWXS`WLVXURXSYXZaWaa]VRdTXX\UWUT[YUWW\`Y[VXV[YYUVTXZW`\\_V[^PX]]Z\XX`TQYX\TYRQYZcVTX`WSY]WSTXYSZWX`^U_Z]TWYX^PZ\URWVUR[SWeWW\]^WbX[T_UYa_ZZXR\\XUS\^WYYT[UYNYWWTaZSXa]UVW^T[`\XUXWU\UaWY[RWNUQ_WYW^Z\SWU_XXXXT_WW_^^QVU\YTTYRVTTW\_YU]XTYZT]Y[Y]]O_TWYXOUUSXTZWUXPVYdWUTR`aVZUZTXXSWTTRWY^\VXX[YWXVYYZXW]V\`U^c_T]Z`T\^TV]ZXXQ]]LXXY[SSOW[`\^UQZSSO]UYV^\RX`U\TYVb`\Y\_[T[YXZY_MVYW_\UVSdZ\YQ`[XYcZX[S\Z]YcWQYRS_]X[\S\Z[_TZ[TaV`X_UXVVU^a`\VWZWZXb]RY\Z]]S[\SW_TRbeOZSYW^]]XZbZca[PUYYSWVWUS[XY__X]PVZTOUTPSSZY[^VWbWUYXXZWe]T\UZ\VZ`W\S[YVT`_]TMTRW\ZUYQ\VWYV]VW[RW__YQYXW]TZM^YYWW[]_USXW\aUUY[_WZXYV[XR\_ZX`Z]^QWZU_[XX^^T]YXU[^TZTWXWVZUUVV_UTU[Y]c_UWTPWTUY^V[[UX[YSS\\YVTW_^]V[VXY_YNYYZUUXWSc\[bWYWU[WT^UV[\VaWU]Wc]RXXY[W`[VW\[VUTW`W]YUYTQQYUXWXZWVTZVWSa]V\^W\W[WZYcZZVXXXWS[\\^W]VVa_U[XWZ`dVR[Z^YYTWaTaW][Z[VVTT]XW\]UWXSYXUSST\UVW\USa]TWWV]RXWUWU^YUQ]VX_\TYX]UZ\[WP\PWQW[SZY]XXVY[YU_V[S\\`VUT\\SX[Z__YWVWV\ZR^QT_Z[VYYXXadXTR`RX^XY\bWWXX\WWU\Z][X\aWZTSYX]TZ[YZVX^XVYZUUW]TZ\X\]W][[[`VeUWX_fV]YTWXWSU[`WXZXY\[X[__[^WXUYX\Z]XVQTVX[_UY[ZbOLWY^ZXWYYY^QYYVXWTZTQ\X][VW]`[VY^_]T[\XVY^`_[LUaWWTZXV[XRZXZT\W[T\ZUT\_ca[YXPXX`UUTU[Z][SXQ`\ZZTY[QX\]V^ZPOXXY\\VW]STW[a\YTW`Z]\VTV_S\Z\ZW]WWZ^Y]VY[TS^X[V\^U_YS`UVS]TP\a[VX]^W\\XUX\VZbeR]RXYSSZV[XU_^XR^[Z\R[^TYP]Y[XVWSYUYY`YZXZ\Y\]\YU_TQ`[[UN[YVY\YX[SZWXViXW]TWSUSURY\UV\cT^\YXbWZ_YZSX[ZUQXXXcZX[\RUQVSTS_TY[US]OXOXUTRUVWRWTX[XW[RUUO^XSWX_UT^VYX_\RYVW\VZZSVP[\\TS\\]ZUWX\QY_VZU[TXUMW]]]T^[VQS[X\ScZ[X[R\VWO[]NT\ZZW[[U`X^W[NUXU\UWVZY_TY^V]WbSXY][`XWR]V\XYQSZWXV`YY\WVYZ`_VXVPVYZ[Z^V[V[]V[][[UWT[[a^RWX`VRUVY\W\[^X\\Za[dPTX\OU\Y^WbYXQ_VVX]WZXVZ_Y]XXS`NSR^XU_VRTZXT[WYR^XZW_TZYX[TOWS_W^U[W[ZVa^Y]ZZRWWcW[VW`[ZW\RRTSWVTU`X\YRX`]UXSUPWbXVQURWWTYWW^QeYW]XVW]WZ^XY[Pc\Z^[^^\]YVX^U_aX[WZUVa[VXPaQY[Y\R][]fVVaT[^\X__ZYYXVXWVcZ^WY]VV[VX[`SORZR]\WTX\_`VY[Yb]QWUYRcZV]V]QbYWUTX_ZRZ^ZZ_^]^[_YYXWT^\aY^WXXUU\WTVZ]XZPTUVVY[S_^`T^TT\UUP`VYZaUZUVYRWOZTTPPV[SVb]ZU]WQP\Ra[ZXW_a^Xab]`cY_Z^VXW]U^`YWWXW^\X\RZXTUVW\RTQXVXXY]VU^ZW[V`ZVW\U^TRZZ][X`X\V\`R[PVWWVVXSYQXSYXUX`T^\U[QVYPS_RVWW[T_YVT^[UQdZ\SX[Y[ZY\Z^VSVd[TU[UZTXZ[SWUQ\V\MTaSW\XWY^^^ZMR\SVU[[YXWU[_W\W[`ZY`YV`SVZQRS[[UTVVVSVUcTQXX]URWRWTW_b[VV`VU]YWZ]\UZX`Y\WZeO\WVXW[XUYV]WYYT\VZX[\WUZ\S[WUc_Z^XaYQ^XRY]TVZUS`YWT_UTW`[]SU\R[YY\[_Z\[]_XUS]_XXZPUY\[[dZV[`RXVQ\VV[SRS\WY_Z_\UZTVZV_V\SU]Y[WTYV[[\UVYSTSW`YV`W_[b^UT[Y]Y[\O_ZY\Q\WRXSWSYY[SWa^XUTVV\QeWY]ZSbSZVWVVZYaWWTa]W\U`WSYO^WTYaSYTdY[^TY]WUZaVWYTT`X]_c]Za`VWSSZ]WQUYURXSZU]UaTVaT_X[\UVW][W[Z\TVRUUZRV\V^ZY_\\]PRTWZ[UWYUTU[_\T[R\YZU[]T[_TXQ\^^X[^T^UZWW_W[\aW]RTWYY_ZZ^Y_^U^WT]W[WV]\UfV\]VWc\a\ZYRTVVYW][UhOVWZUYY_\UcZXYRdRSUUc^^\SSXW]`ZZ\ZV^XWZS]]\PYYYcSWYVXXXVX]`ZW`UV_RW\RTWUU`bUYU[[YX\a`ZT]UW^QV\WZY[WUZWUWWXOZYVV^V]Y\_Z[]WVWUZXT[ZYOMWTZYV^ZYZXW[Z\\USW\W^WYX]TTXVVYURWWRZW`XZU]W[\aXTUQ_TY_[]R[TVZZXZT\]ZZUXV]X][]WXYYR]aSQ[]SXQ[UVYX[UVYWWU_QS\QXaQXY[YVaP]VaYWRRVX]U_X\TWXUY]VXXYW[\W\]`VXPY[SUVX_V][T\\]UaV\UWSUVS^[\YX[RQUU``V\UV^[aU^ZWSR^WO^\]ZRO\TZY]Z^S^ZbSVXTa[^WeTYWUab\ZZW[XWb]P\ZPWYUY[YSZSRVVSWW\ZSXYNXUR\XTbY]\TTZY\XYYWc][XV[\VTVT[YUXY]Y][^QW[aUY[U[X]_kWX`UUY`[UR]TOZ\\T]]^UN_SY[Xb]YVW[^XX_XWWQ\U\OSYU^Xe_\T\[[RV\U_XXSSYWS[SWYZMU]]\QZa\T\TR\_[]Y[R[UVQZRYUZVUVWUX\WRZYZV\V^TX]cWZ^_RVZVUXS\[WVYZWb\`WSQV]`\]]W]U[Y]XZUSXYVYWVWR[TaZVVT[V_UVSSSWVMZ^YQYSW]TZ[TYYZTQVWYXeYXaTWU`_SZUVZ[SZ\]QUZaV`UY]WUO\WX_TMXXOXSRTY][_SVUVURY[YT\XUS_T]`VW`VX[kUU][WaVXSY\[TUVVQWV^\TRZY_XU[[]RYZPZVWZR[^U\S[\XR]SY\T_^[WT\Z^WT_TRUQR]`XYXSZPXTZ[`XWSS`USVZ]WPZZd^XW][]TS^\WXXSZXX\dVScTW[[X\Z]YaYXSUQSV\[V[Z]\X`WRUTZW[X\YV\QVUV[R_YTWSRZSRV\\`[Y\WS[XZT\ZUZR][Z`WWX`ZZYXVUZW]`ZXT[ZXUYYV[XVZZZ[SWW[_TVQZYWZV\W[WSU[UT\W[XQ]XU]]V]XV`\c[Z^bVW[V[WZbX_ZUa[]STXW_UVW[^XSV^VY^VWTO\\a\UZ\[[ZRXWZXZYYX[XP_W`UTVU[_UcXWYYV[]_SR[]X_TeZ^QTbWWXRTT[[\`R`WZY^YXXXWU^]XYY\bU]T[V]X^NWYY[SVS_]VYUWaV^YZY[\ZURT]V`[W_`WXWWXXXXU`R`W\TR_YUTZXWTM]ZVW\ZZZU]YWXYTUXZOLR[RXWR^WXR]]WT\UYZXUTYY[R^^^UV[]aV[\UOY]aV\XXS_[Y]URYXOUTSX_YW]XW[[WVQSWXZ[\YYfb]XU\T^XZ[RUUPYRaWS]ZVWYRZWPUZNX[TY\VYW[YT^WY[[Z^Wb[\YXSXYZVWZRUcWZS\[WZYWZV[[USXWYS[SRUYY\TUXYWO^Z_\V^UNOYWSTYY^VTYTPYSSNWUVT\VW^^]ZZRRX`WUTVY_[VWX^ZW\ZUXXU\aQ]XV\UWX[\WS[bW]R[`UY\T]R\XWZZWW`[`T[XWWYTXUY[S[UVY]\UZXVQ\]\ZZTU]YV\W[XUWaV^ZU\]TWUQV\X]ZW\[[\U_U[_^VTWPX\ZVTZXY\Y\ZVXU\W^`O^VXbXbWN^ZYT^SZX\X_ZXZ[_ZSZXUX]S_\XR`TUXYN\QWYVWZRYPVUKXUXRYV`\]^YXZYZVc[^YPU^]^[`aS\^c[UX[RWW]WZRY[\T^YO[WXZTgWUX\YT_TVV]VT\\W_^XT_WRUZ^Y\SV\X]TQYV\VU\X[S]V\^S[MW\UZ\Y[YU]WZZ\[UZVT\^UXT^[TXTaYZfNXUU[[\YT_[XYX\X\ZY\\]U\VT\TS\VPY^ZWYYSWkUZY[c_ZZ_QUX]TX[SZZ]SZUVYOT[VV\[U\UXXY^ZP_Y\\YZ_ZX_[YU\[TT[WWWXYW[W_Y\[`WWYV\QX]V\ZXTY^ZXU[cXX`X[]aU[UO\\\TWXZc`WbYSKU^VW\TZWU]Y[\Y[Y`ZPW_R]\WgWbWU_W_VT\\Xc_YVVQdWWVZX`S_^VY]^[W]VW`U^\W[XW[ZWY[]XY_Q\]QRZWXZ\WWXYYQYWW[U[ZZ\ZS[RXUUXaVVdXSR^QYX[ZZZY[\ZZYYYUZXZ\NVW[Y[WY_S\S^[XVZ]WYUZXXYXVT\V^\YVTTYWYU_Y[TXaW[^`aTT][XbXVSWTYVXYZ^e^V]YWXXX_[[ZXNZTV]Y\]VUZTTXXUYXVXX]VW^a[WQRMUUW]ZXZZXWVXXVRVX[WWV^[_TW^^^S_ZU_U]VZYYZW_WZUa]YYTWYYX^XR\ShVWUWSZT[ZV\YYVW\dQYZ[^`]VY_[^YTSXY^VR_XZbVX\OZ`UZVTa_Y\RZTX]WYXTT\\^V^S\VZ[ZVaa^[]VZZVRRa`WVUU]VZ]]TV^XSYbfXXUW\Y^^WT]YWWWVXUWTV`VYYRMW[`XX[UY\YWW[X[\V`Z[UYaY\XXVSX^ZWT[PYXX]]W[X\XXYXW\WXXSS[X_Y`XQ]^VXUR`U_[VYZX[ZWMWUS^YPZ_\X]_QTY]VTUWY[U^V`XSUXX`\[Ya`[^T^W\YW_Z[XWWWZ^T\TU]U]aRWVSUZZXUaYV[Zc_^RXSXZX]U[PXV][`VZ]ZWXVS\[TVaVZ[[]_T_[XYZ^WXZTTbVY\SYYWV\PSZY\TV[Y`_YVZWWWZ\URRVZWZcSXZ\\WSXWYXXZUXa[\ZSdUZW]PXSPSZ[S\XZNNZY\XQ`TW_[[TZV[VX[TVOYYZhVZVSVWY[WZLMXZYTTZU\[XY^^SZT^`UVWR\ZTN\VaWZ[`W]QV[aZOSYVZV[SO\^W]TXRVVSO[VXYaV[VcWY\YX]Q^VUWY^[ZZ\ZYXWVc]e[RRTSU[XWV[TQVWY[Y[Z\Y\UZNYSXVXYXX[UXYS_\^YWZYV\^Y\ZXVZT[YUZNZWWUSUYTTYYVV]Z[[]VOVW]TWZWTVV_`W_YXMYTRZW\YXVTYZX_YXPTaV\ZW\XWQSV^Z[XYQVYZ_VVVT`WUSYYXRWRZXYVXWUYXNSVW[XYYa\SS`YX^YSVdaXYWXW`RWbR]WWZb`bVTWW^TZ\VY]W^`WZQTTX\WVWd]TXSUYTa\QTTdWQUVYWZNaS_^\]SWW^Z^\VKT^Z\^\\\V^V[VVVY]U^SQUS\RUUT[XU_WWeRR[ZW`ZTVVaUZXV]_ZSVX[Y^Z[[ZZS`jb_[XQVZ[UUW`VXW[`YZ[XWZVSX\YQYRT\XN[PUX]ZYRQZYWRVXZZUYWVYWUTZ`Z[[X[ZSZ]Y[V`_TP_XW`S\U]TVPUZWUYWU]ZWTWbVR\[SUU_R[M\SZ][WV_]SYO]VUWXSYUVU\YciTVURXV[^UaWV]XWVVYXV[RdTXYVZ`\[`[Y\YYSVSYRZ\_UZYY[YXPU[UVaYUXVTa[QaV[\RUQQYWXY[`VUXSX_aURWVWVWWWVWW_aZW`YUYWSQZYRXU_`X][VZRVVUWYYd]Q_\YXXW]X`WWWX]S^]\TZ^]YUOWV[XY[WX[UP\XRPX]bW^]YV^[V_XUS^W\Y]SQYZ\TU^[dSS_VV\\]]RaX\]Z\T[VV`XX[W`^WXTXX[W]U][QSYSUWTX[]^[\UR\WXXXWSWSZST]P\[]Y]VW^Z\\XNVZVZSXUa`STX_XZ_`ZV[TZZ]U_\]WYVWU[\Y\VZU]ZXSVUV]UWVWTbYUWXZ\YXWY]`[YSYXUYXYTcS_UT^XXYZYX]aWPUVV]UaX]XZZ_[_ZWZVWS_SXUe][[V\VVTPTTiSVXT]TS\[cWV`^VRebX]XWUUMQ[UXTeUYZ[UZ\U\VVW]U_SV\_PW[[]ST]XWWRV[SZ[YQX^YV[V^aUP[TY_U[__YO]ZaV\Y]NUXV\^WbW_Y]VY[UWV]UW`ZX_TY[VRUX\YV]W]UZY[S\]XUOTW`UXUZWU\]XZVWZT\[[WZVVUSYU_WZUUWUVX`]\UW]SX[ZYX`\SaXRXXWMTZ_VXSTVY`^W\^X^\VXV\T_UXWVX`YV][\YUZ^W]VbU_W]Z_UZXZVYR`XRWW\\V\T_`W[YMWW\[XbUXS^XV\Z[O[Z[WYXYX[[XUXYZVZTcV]W[cMYcXaebX[ZZYSTXQYaWV_`YWUOT]ZV`\XTSYW\]X[ZV\\YZXYWU[\W\W\YTWZ\`Y[ZZ`\WZVR^\Z]V[^VSV`UY[^YRZc\bT]XZTTUWXZZ\WXc^^WSaW`^U[[T[ZYWU`Z\T^]SYR]XUQVVPVWR_`Y]RWYV[U^[Y\]a]RS^SXTa_QTV_`SZ]T[XRTVY[]STS\SYWZ\Y\[XNZVV[W^ZXZV[TWZU[TUVMSZ[OY\WX^cTZVVVZVZUeWS\[VWY\[XbTUV[V\ZZ]O`Y^VXVeV^YYRf\]XVXTh^ZYVTZ^WW[\[WVXVQ\Y]VZ\`V`ZVVXV`Tb]XZSY^U_[OV^[ZV\[SUZZWWVUX`Z__ZW[Y[U_USYWXZX_WfY]U[\WYW[^U[YZ^R\^bW]XZVZ[[U`[UZ[YU]U^TUZcY^ZVYX^VX`ZUSYMSZO_V`Q[`]aZVdXPWST]Z]W_SaW^UPTVXVWhO`[VYS^Y]\aZZ\a`Ua[YVX\\[^[T]XWVN^ZVU^RgX_UZWX[`[W[_Z\ZTgXRQaY]^VWZYZTT]U][V][`SR\T^]RTXP][^VZXQVXVZ^YYVV\bW]]dX]\XUXQ^YYXdXUX^XV`SVU]XZPZXZVYXX]S[YXUYOUVXWSUV_XSWYU[U[`SZZZ^aT_[VTXXb[QZZOU^YZXX_V\S^ZY\UXYUURY][VZ[Va_^TU[M\\[ZW_W`YcWUa[^]V`]^_`VUSVW^XNXV_XT\^YS[ZOY`[VU[O[\Q_XT^NXZT_[Z^W]XV`Xba]\PX[X^PUYZ^Z]Z[^XVX]ZTRZU\YWZXRYZURZXZ[^^UZbU[Z\Y]bU\WXXPVY\R[YXTSZTcZ]ZTTV][YXTYU[YUWXVU]UX_US\\WTZ`TWX^XVY`TQUX\TY\^SY][[]WTSZU_RZ]^YWXdYYX]_W^ZXUX^_RXTWaXVY[VZY[dYUQZZf\VU`MZWZXSZ^Y_VY[[aVXXTVS^[[_bSUZTX[[SS\e^W^W_UXUXZZ\`X^dXWY^ZT[WZ\b\[WbU]R_VM[Y]VdYX[^\VWUU[XX\XXNZVWVYZX]S`V]TNU[]\YY^Z\UYYSXX[]TWO`aWZUYZXZ[]Y[\ZYZc\UYaWUWTY\WYYRUTZ\VTVYZVZV_^Y\ZXX\UXSXWPS\ZZT[`]^ZWZ^]VXVWRZYXWXWT]]UVXXba]W`^Z\YVTXUW\YX^XZQWV`T\RU[W[UZ\]UXe[R^Y[WVWWZ]YVXZY`]UY`UU^_S[Y]VWWXdS[\Z^T\T[[W]UVU[YUWLY`aXSSaWWWWTZWYSWSXSW`Oc[WTO\[]Y^Y\T`SWXQ\U\YYUXQQWW\V[TPYY\WZSVSX_UVWV[YUSZ_[VXZ[]d]XYVT`ZU[`WbTUWW`[[U]ZWZPZ[]SVR^X\`WYTUZRTV_XQW]RVUUW\`[jZYWcXXZ[ZQZU]Y^\\`\P_XUVYXZYX]Z[Xc[]VX[`VYWXX^_UQR[b][UVWZ\XV]ZTW^]XVY]\_a[\`Z[V[`ZYVZWXXW][YWY\`XXY_VW]WXYV]ZZU^ZVWYVYWcX]V[[\_YWV`YX[]`\TR\V]USVUYQ\VV\ZXSWWPUU]WZU[^][RWXTaU\WYYNWWUWSX[ZW]\ZU[UVWPWXWZ`NUUT\T_aVVMYR]\Y\WY]]VUVVU[TTUWbVUT^URUVXZZ_UUYUW_ZUX\]_\ZO^WPX^YbUZXZV_T^^`Y[[R_\[^YWaQ\f\\VSVXWVUYZZ_UWWWW\PU]UWX\QV]\X]]Z[V[X`Z\XWYTY[T\WTVYVU[WZ\_YXVU^SWZ]aYU_SFW[PQ[WVUYZdZ_R[YVWVVZWRWSS[cYZTRWSS^_OX[XYWbX\[STYTUW\UUZX_WYVZ\_\`XZZ]VY\Z\_]\UWTYdQWT[^]d^VYTNV\^[P[V[WW^S^SOaZUO[XYX_^XWY\^R]XZWRaY_[ZXWTY]T[`RPYXTa^YP[_S[Z[OWUT]bUXUX]W[[X\][YYX]\VXUW[[[YW]X]U[S`bQXR[YYaYV^S[UVVSP\W\ZV\SY\V\T_MZZWV[WVWZ^ZTI_V^`]W]VZTTWPZWYNWYa[QXWXXZYWXVSbU`VZb_TR_OWW\VUTY^XWV[WX\[Y\[W\UZ]]RZ\W][TXUV\VVZUYWZWUTX_[WLZ[`\WWQ\Z\WS]VWVXWZU_S\]QZW[^UYZ^UWZXX_\T]Z]WXUVWW\[ZW[ZZV\RXUUTV`SWY]Z]TZUZ[VYZQZZV]^UO\VSWTUW]]a\W[]SVST]U\[TWXUWP\\]XZ\]XZS[[\XYYU[TOT[X[XXU[QPYXQWd]\WVWYY]WVV]\X^\R^\SVP^WWZ_QYVXWX[T``]Z]S_R]W\]W[WXVWR^\`ZRYXNYY[Y[cXZXTX[WV[XVPUTXZTWVXWOZd^X[WQcYZSVZ^YV^X`PVaX[XRVe`YXZVY]UUZ^YcXV[WXc\_ZXS^WW[QaSXUWSYW`YTY\^MWTXXVV\XXYb[Y`XVaU[U]\Y_[XXYVYXXR\S[USWXXTYXY\_NV\R]ZUP[VZW`YUUZXXRTZZW\OS]\R]cWZU[ZZXTSWSUVR[_WV\]WT]ZUQSZ\``]\VXSa[V\YTZVUUUjYZ_[ZVZUVYYWYSYW\S_V_dRYX[[SU[VPXZW^UWWRMdSX\[WS]USU]UX`XcZTSXUX`Zd[VZY]VXUXU[Uj_YWPVVa\WTWZWUa[\ZQ[XXYQ^UWTUWXXV[]ZY[Z[ZX\T\Y[XZVVUWVRVW[YZY[YTaXT_V_Y\VY[S^XYV^ZZVZZU]TbcVSY\VZUUZZ]Z\VYSU][\ZWZUZY^^RW][[VXS_VWY[YV]dZWVVY^XYX\X\Z\RZ_YYg]Z[WUSSUYYW]^]]XWUY\XaTU[W_V^U]YV[X[[`ZWXPVXRVVZVXWWVYYUZZYW]V`^WRb^VW]][WZQ[[WUSYZYWSU\VYa]W\TU]Y^T]Z\S[aUTXT[[YYWWUXXXXU\SWUWTV[W[_VXaZTSU\WYWZTYbTZZaYWbU`YU_X[_YZ\XUS[YWSYXY]W\`[Y_Z\WX\\aY[[]b[`V[^XWXZW[[SUVXXYXZZQUZ^_^ZUV`_[UZWZ]T[^\cU]X[S[VXX]Z[]_TY]^UUYV_W^X]ch\T^WUSdXYVVWXW[UUXYUWZVZRXZ\XY[[XX\ZXVY[WPVV[VUYQUTZ]VdWVVTYT[ZPX\Y^acVZ[TTRWWXXYZV_WX`TXX\VSSYVWXSU[Zb`aWZUaYTW`\]\UZYW]XT^XRVaUVVXZWTWW]VWY^ZX[WaZXUb]YTWTWZW_UXTZS]WVWTYUT]]VYTW^ZVVW^^_YY[WVVV]\QW[W[Z\TUVUYVYW[SY^[ZWYVUZTQTUVdU]]]XVY^XT\bSUX\[[U\NPYQ]SVYYZaXTVTSXY[V`YUYRUWUP`XTXZU[Y`WSUNV`U`Q`[`^VTYUUWXXZVS^Q`ZTWWTd`[aV[\[WUYVU_YXSX^\W[[UXeTRY[TXZXU_fUOWWW\WUXU_[b[TTW]VPVSO[ZVZ[`WXVZcSXY[WY\Y\UV^SRaSYVU^[VUZ[]UUSeTVW`VXbVYTZYMX\TXZYO[U\bV^XUZ[aV]ZQWYYZSW]^X\_[YVX_V\[[UVXH[[PX[YSTYZ^[]V][YU^XZWZ_YW[]Z^XYYZVWPTQSW]\QjWWXS]Z[W`\W`V^XR[Y\W^]]JYZaPVZZZYVUT\]`SQW\TOU]XXY[Z^W\\ZYYU_^^Z`VVYTYW[OW]ZXYVWTV]TSXTVT\Y_ZXa`X]UYR[\SYU[X]VUXW`ZSaT^W]UXTT_aVV^Ua[^^_[Y[]XRYVVYYRVYSVZV\SRWXWaZU`WX_XXdYU]XZ[Y[U\Y`[ZPVXPRXUVZSYYYZYY^]ZWT^^ZXPNYX]]YbdSYY^gX[[X_^WV[^ZYS]R^[YXYWRZQ`_YSRWUST]Y]`V_UR^Y]a`NVUY_T\Z\XaZTgYRZPZVV[[S[]O]XWXU[XYd_^YZ^\V[TURVQXWYLbSZVUWXZ]\V[WXWVXRSY`ZXYY]R]YVVXW[UYTSVVVWU[VYUZ^aPOXYZ]YU[\^X\`QYWY^T]VT]]TVVTYJW[YSYX\f_aV]W`X]Y^TRTXY_[dZaXXZg[W[WWTZOWY]YZS`]XV_UWV]\\YT\^^XSUTXV[T\W[XV]]XYRXY\Z^Z[_X\RYUaTTU[RRYTW\b^`YVX^\V[VXWWZXUU`\Z_WYXX\][TXbYZZY_TVO[[^TXbaRaY[^XUW[\YVY^]W]W[\T^\ROWWYX]WUUTXX[\V\T\UX_YZW\`[^YQS]U\WWYRZ\X\][V_TYY[YWTWV\[_VXXO\RU]YS[ZXa^VXWYXT`RZ]ZWSYZYVWW]aT[\TTXX[WWU^[]]ZRSX`]T_V]R[XSSYV_[XY^YXX^XaaZUXS\V_Z[V]\^Y^VVXUXVVUV\ZTYYU^[V\ZW[\Z^N_^`Z^ZSWZX]P^ZSVRYXZXWaLYPVW[`X\VaWXZ\ZT`W[]SR]YV[VX`VXY]ZWZ\WZ[X\XTRX^Z\aWVYOXYW[UXSX`UWYZX]SQX[LX]ZQ^TaZ[Y][_[WXXUUV_ZYVXZTZW[[aW]SWYSWLXUVYS`Y[WQWSW\T]Y\ZQURXYZW\UaSQ[WWYdUZXYVYX\QTSSYUYVYZN]X[\YX\\[^m]TVX]OVT\S[SWZXQ\XYW]aX\V[XVXUY]UZ[ZOWVVYZY[Y[R\]P^USX]XTaUY]Z[TUXXVX]WS\Z[_SRWWZXXYYY^STWXbdXVYXXUTVYWZW[PVTYVWX^WVX_VO[RZZ[XXW[XY_UZTUZ[[WTWVU[VU\]Y^VYUSSQTVSYXV`\YX_UZ]\R]T[`ZPSZW`^]YVZSUVSb\WOVY\VXZS[UWU[^ZXbVVU]Y[VXUXQZaYPY]Z_WTTOWVZ[YUW[UWV\WZ_VUWUY_TUWV\a\Y^W[YXTVSUUbXVZ[TWY\ZYZSTUW[YZ[X[PTTT[Z[YWU]bWZ[XXWY^UY\TX]Z_Zd]WSZSZ\WSZV[aV]WWXRY[T\X^UWVR^\UVTZU`W]\ZWOR`\\cYQ[QZTUa][\TWaYYYWWZUWUYV]^Y^`WYWV\[VTXZ\^UTY[W^XZY]Uc\XZcVWRb[[SVaYUU]X[bW_VTTaWZXXYZVZZTTYVTXVV\ObZ\URV\VYX]U]YY[XVVg_WZZW]XVZ^_XZV\TYYS\UWRVYT`X\_XYVXZU[NUcVT_X^Z[]Y]YUZTSa`WV^V[ZZTb]RZ[Y\VWcWX[X_^]TUVXfSV[aYWPS_RWVZSRYZZ]UWX\T[TS\]WRW]\UX[]YY]XP][V\_TTZ]XS^Y]XZW\X^^[dPWU]XU]ZWYX\WW__WVYSUTZ\^Z_UWUZ_TVVXSYWY^X[`TWXYWWVSWN\S[[TSY[VZXZ]YVRX[YTZVd[WU[\\VXWVXZVYS[TSOZTSU\[UUTZWU^]W__aR`^XVU\[]VWXWUY[Y[aSZ\VT[WW]YRXbY\Y[WTVQTaVS[U]XRXR`YZQU^U\U^aVX[ZYVW`][ZSOW\YWVX[\XRXS\UPX\VYQYT_\SVTWYW[U[Y`R^T^SZZWUZ\Y_YV]W_SWW^X_]`PLWWWR_[]Z[VSTVXVYTPY]ZWU\TZ\Z\[TWZUWXVPV]WWU^ZXTd[YV[VZW[ZZXUc_[Y_XW]`X_RPaR[[^Y[^[W[^UWV`Z[X\RVWZXZ]R[aX[UZ]TZWbRY]^_UZ[UXWTXWV[WSZUUX\[X\ZY[T\T[STX[[_UVWZYUZZZ[V^VZTQ`UTXXY]U[]Z\XSaPYTXXV[UWXZTcZYYUYcXXU[X[T]`YRS[Z_VZZ\Z\XV]WZU[TWcPU[ZZ[[VYU[XY`YUWYSZ^aYWYXX[[T[YPWWUYYXUcVYXSYWWXUXWXUTUY\]]TQ[V^[^Y`Wc[YWUTR\QXVU[UZUMSTXUWUYUT\[RUVYV^XTRXZX[UYZVWWY[U_YROYYVXSTU[TR^]Z\VYR\UTXT]ZWVUWR^]UVY[YY]_UNS_aW\VPZ\UZZ]YSW]YSaYW[UV\Y[R[_\X[UXTWVYVX\^YX]U^_WY\XRXYVWV[ZY_\]Y\^VX[ROS[TY[[RZ[[PQWS[RPYV][YYTPX[^YVaYZXR`ZURK`SWWYXY\S\\baT\\Z`VXXTW[[bY\ZR^SbRY[WUbYXU_SVaRZST\Q[^WSSV]]`YXSTXZXWSXVXYc]T\SY`SYVcXYVU`]X]T^YZ]ZWSX[SV_R[][ZbTXaV^aXZY[VWS[YX]YTWQMWXVVZ^Y[WXYbV^UTU]XZS_T[ZVWY^ZZXRV_XaWUQVZUYZSVVRW\d^QaZ[[Nd[]XWYUT[MXRV_[RcZSY[W^[VU[[RVc[VTUd`ZW^\XX\TYZXYP_VRSS[\VUZ[Y^X[[S\^VY\ZYYWZ]RWVW[SlWXYXU\f[VXS_X``Z_[WUWYS[\Z^\XVVZWYdZQWV[SS__Z[]YXT]TY\\[\U\^V`]^^[XWQUS_W]WN\WN[\ZXYZ[WYa]]XaTZ[S^TWRZ`[YWQZZZ\PX^^P`\TZUXXYZ\WY]VX`YZT^ZT\XXXXNUXUV^ZY]XVUZWXX]]P]WPSPZSPY^TZS\WXUVZbe]ZZXZWVVVZ^_Y][XV]WUVbWYVX`UUQ\SJ_OZYTW[WSZ^RVU[YYbRWUV[ZPSU^WZ\XZWRUYQ]]X^ZZaZaY\ZYT\SPcXVScOSU]bXYYWVRbUd]URQ\cUU^[UYTR^^Y\Y[ZV[UZ^X\\VY_WXZ]TV_^UXSV]X[TS[YZYRZSYb[YXXYSXU^P[UX]XXa]WXSYXS]X^WVQ[WXY\\`VZ_V]XUVT\\XQXU_]YS\VW[VVWZUW`QWQUY\TVTcXX][TXW^[_XZYWXWXTUXUXVWYZSS^\[ZVSb]XWX[^ZTWUXYTYVTUYZXM\`UYTUYV`Q[ZWYZXXW]U\[V[YUQ\Q\]\[S[Vf^Uh^ZWZX^T`YW\YSWZRWXV_TX[VfZXUXU]`YZWSXZ`WWSVV\ZV]SU]]\]ZWZVYUWZVSZ[]UX[OYZURUWYYZUcXaU]Y]^X_TYY_W[[Z[]_XVVVZ[UX\UZ`\V[YYY^PWZXZXa_YU^\W_ZU]ZR\_eW_WVVV[VSWVRSbVZX\Z_\ZZT[UWWRX^S]X]\[]Z[W[YWQSXZ]\UYVUY\eWYSU\TS[XVYRUXXeSU\X\_WVR[[``Y^XUWZWW\^TV[[XRWXWW`\VRZcRZ]^UXUWVTTYTY_ZS^[ZU[\[\\VZY]ZX]^TX^X[SSOZQTZYfTY]]YW`TXXTQYV[QZ[dWVRZXT[^ZVa^Z_^VUTZTUX\WYZYYa_YVa]\W`[VXRVeVY_TXYWR^XXXX\[\WRWMVRSUX[\^STW]WcVWR[WWV]VYS]YW^WYXY]SZZ`[Z]T\ZY_Y]\^TXZe[XSSWX[YM_bS\]]^XY\[ZVVYXWSZ]VXW]RWY[YWQUbXWV_TPSYLKWWY\WXRX_S\XY[\Y_\Za[UX\RVT[ZW_TWZT\XR]YTYWVTXSW^R_WUWV\aUV[TX]XWSZ\YU]SU`]]WWU_[[UV[\^X][XRRUW_ZXXUU^ZZYR][[Y]XUQ\V`_T]\XTTWU\^VXVVWURW\\VT_WXZ[W\V[YWZZYYY[[X^ORT[UPX\S^VTY_YU]`TYY[ZWTXZR^\X_[YXUcS\[\SYQ\S^\ZVUWPQaZ_V[XZXUWa]VUcY[\Z\XTTXPZUZWSXXPY]S^Ve\V\WWZZ\ZWVT[]XS`YWV`T]Y\QYZU\\][X_Q]WVd^T]YRT\[YYUTZSV^XX[ZRZV[[[WYYXWWUUWQ_Y[XZ[TTYRWUU^W[PZQ]ZZX]X[TN[ZZ[U[TT]UXVX]V`XYU[ZaUWXUUVRcX]YVUVXVQVeXS\XWO\TUWUXPSZZW]VRZZVUZYRXQWX[TSWRZVZWW\T]Q]\\UTVV[T]WUbVXZXSWV[SWTXXXU[[U[W[\WZTWWVZYUTa[VWUSVXaTMVYRTYYVVW[cOQVUUXZTUYT[Qa]YV\ZZRUUXTU\RQWSVWTRSVTZU[Z[T\\XYWW\WRUR^[XYXXSSaW]\Z[XQ[VWU[UZWVVZ[UW]V[YXYZWSW]Z][\SWVPT[W\WV\PU_S^TXSY\XdTMTYU[SV^\\YXW[[TW[Z[TTWYY[XV\X\WWQ]]YVVe][Y`ZZURRZUUQ[]UX[[TVTdYdXT[SQUYWXNYS`_ZX`WWWX\RYZ\W_TXU`ZXaYXU_S_XTRTVVXX[a[ZZ\W[X]UZY[WPUVYYU]TUTWZSa]U\\YY\YS[OWUW\V]Y_ZVZ[XZ^[VYW_USXUYZSa]XXPROZUYTZVX\V[XW[PZWZVX[]R\TVVTYZXbW]XYXXSYSTTRZWYT]SZVZ^XVVSYXY\YYdXT[W`aTaW]W^TW\abWXXX\eV]TbQ]V\YX]^Y`YV[]S^S[XY_[YVZY\XT[WXZZURUY]ZWU[\XWSY\VYWYXZ^X^RRPVSX[Y`W\]S[fTZZW_WRSZSZYWT[YUXZS[TW\QRWW\ZVVT[^UaW`YTbY^LZT]Z^[fXUX[S[VTYXVV\VZ[T[Rb\eTP[]V\U]R\UTUTUVZ^STVT\QX^aYcX`]W^YW\VUb]UTVXYQX\RWWUZZZQSS]XU]Z[`YW[X\SZXYSZSUXT[WVaYZU]TZS]TRUZUZ`X]RY[YVY]YURV\Y_]WRYVTPTcXPVSVOYSZ[XY[[PWXZVK^TZUPWX]_X\\UY[UW[VYW[d\X^Y\acVVRXRQXT\YZ[WT[aY^RRSUWTSVZ[\ZaYQZWaVW_]VXRYYZUVXVRTZ\SZRXXSS`XV^V\VTZUVWZTYZc`ZRTQ]Z\USZX[`UOPXZWTSQWUXUUXXbaZYXSVP\ZXc[WPTXZV[Q^WZ]XU]]VUVZZ\[^`X^RU^PVbYX`_YUY_T]WV]VUUZ[YWTWYPUXYV]V]W_\^[[U]WX^[_[_YVRZWUWRWYU\Z[\[TXW_ZRZ[aY\OV\iZX^_^TTVYP]W`NUWXZVWTZXT^XTYUZSYTVYQYUYXW\\]VZ`TUYZZUWZYW]g\]XQX]XXXYRQ[WYUQR[ZT]XX[aUSSYPaW^NWZ`NZ\ZT]P[XZVX\MTY_^\RQT[SY\]RT]\YVWZTUS^[WV_U^X\MW_QXX[W\YcWcTURS^VWRYVZ\YZY\`Z\_[WWZXWVYU^]STZVSN]YSRSSWUQ`UUJUR[P]UUXaYWWZZXURTYU]XQW[RZUYXZWW_TW\T[WVY_RYX]XXT\VZXVV^]TXY[YY_W\\a[WaW\\^YX\ZU\W`[YZ[^\TXRWWYY\USVYTZVW]nYXWSZ`YSUXZ^XXZWX\XWT^]ZUXUWXQ\_XZZRU\W[i\Y]^VXYZSUZX`UeR[ZbXWUU`Z`YZ][^cZ^[]XZU^RYa^X_ZXUW^`^ZY]^^bWVb^WYTZ]Y]RYV_WUYY[V[YXXdOVXZWZW]`\WTYZUYZ[[XQQYRVYQTWU[h^YUZRbTRYSVVXS\T[XX[VYXOWVUWX\W\YY\VZWUX]T_V`^Y[YR\WY_^V[VYW]Y`XXQZVUM]XXX]QZ[ZTQ]Q^V]VXWSU_XXSRVZ]\ZW[TS^[[[XW[cYSW[T`]X[Z\VW]ORYXYYUYSTVaWTTPZZXXQU[aUXT[QWcVWZPYXU^YcWN][ZVVW^YYVaQWZYZURXQUZ[[\\XUXTWUP`XYWZVTQ^YUSX[XQV\W[\[d^Q]YVXX\VUUX\]VMYaX\WZO\YWVR[bYWQVXh\\_XZTXXT]T\WYXSVZSVYQ]X\R\UX]TRO`NX^]^W_Y_^SSVX`\V_SZT^V\PWVTVXYU^QWUW[aTZc^UV^\US^U]T^`XXSUUX]_ZUZd]aO[XVWR[`ZXRWdU^[c\XTXeVZ[UXSYXYRXYVY][ZV[UT^RY][RZXQZ[S[VW]TcY`T\T[WV_[__Z\Y^VZ[Y^YT[TYWZ\WYXQVPZYZWeWX_YV[ZVX]VVZ]X\[X^SPaWV\TUa\VTYS_hZRSVYXXZXWXKU[[bPX`V[^Z[YPWbTU\TZVR]X`WPXYVWZ^]XU[R]US[RRUUZTU[eS`_P\PKXYacZXX_\UW[YTW`iXWVYU^ZRV]OYTZSVZTXg\ZWeYWcY[\\\ZYXTVP_U[WWTX[YWZYZWT]WOSVTX\Y[`TZTU\VVUTYXZTa^\VYR[X[TR_SX[Z[[OOS\UXVZQ^_XZQVPY\`Z^YVUU[[WVTUW]^YZTXZWZ]V[X[XZc]SZR\T[ZRSZUTVZ]]\YWSXYUXWYVT[Y`\[YX]Z[\X\WXVUYXYZV[UYT]\U\[TQYWZU[[[]QZZT[XXZX^WcO_ZUYUSV^ZUWX^Z\[W[VX\][YU\V[\ZVTTSVT_^XY[VXW]UTRYUVW`[V[Q^KX\WZ\T^X[[bXUWU]`YY[ZZ_SSR`a[OTVVZ\XTYYW`N\UXXZR]TUUUQT\R[WW_YYZY^\SQ`TZYXXVZZV^S^T^\YPVQY[UX[OVVdU\TUUUUWZaU\YVV_[[W[U[bXUZSUT[_]YTV]\WXXQTWYVNV_TU[`SS_YV^UVTUXW]RT[ZTU]TZXTZWS\]^Y^Tc^VRO^T]ZU^W]RWVXZR[UY\[WY`__WW[\]V]\YU[TSS^[Y\ZXTU]PVUX[\[[[XV[_SYZUP^\ZY`]XYUVRSTUUQTWXVU]Y_VVPU[WUY^eW`Y^Z][WUYVV\_\]`ZXW\U^f[WYZYXYZVTZVXZ[Q`cUYRTY^NZY]TUZT[T]RSYX[[YX^SXYSZV\Z^X[QU]cZXYTUT\X[V[`ON\\[^Y[WYVW\__W[Z[RW[\T]TXW[^a[PTOYPWY^ZYRXZSZ``WXXX`Y`X^X[VZXcW[V[QTYVU]]XW[XY[VSZVX[Yc_Q\ZZVZY]TWWW^\]X\\[YZVT[^YYVZYZ_\aWZZ[ZR`ZYRS^S[UR_ZSYZa\_VXWSWUXUTg__VVUW^XZSS]`V\ZWWSXYZ]ZUZ[]HZYQXM^ZZ]Z\bT[ZYZWbVZUUTZTTVRQXYXRZWZWQWU^XZOW[R[U[ZY][_SWRUZ][^T[Z^TU_U[VVXW[[VWXT[[RW^W^SaTVZ[YXUWXd^]WX]VZV]WZ`WZZV[]WaV`ZXQ^\YNRSV]YXZbR_ScP^\YZ\aWP^W[SUSU[W\ZSUWX_[V\^YTXWQcV[QW[S]VZVYVX\TZZUQZb[U]WZXR^SWZZ\dTWbYSRPT`YVZZXXZZ]SWV^\OWY_XVWS]RaPXT]YPZbUTY`XZYRZ\XXZ]U\UZZUXQYWYWZZSZaW]_Y[XRXXW^ZTWbY]WY\WZX^X^VYXS]\\YXY_WQZVVQQVZWT[RU[YY`[]WSV\TQRZS___[\TVWT\V]YR]\ZX[[\ZWVRVSZN]]\]_]\ZYYW]XWXVY[UR[VT[Q^X][c[XNSRVZP_[VTU]TZZSTY\VTS\XYTXU[ZWXYWXXSZT[ZdWS\\U[OTV\TV\VYXXYSUZTW][SX_R]W\ZYZWZ]^WZ^_YR]UUX[URTY[VVSRY[P_YU\UWX^`SU\W]QSVU]VYZXWSQYZYSYU\RTWZZ[XP_WXXU`Z[OYZVUWWR[ZWTYRX]TT_WW[WX\UX[XV^]X_U\ZWTR`TV]WbR\YaXWTVUYWVR\WW^[S\QU]^[]WWTPTX]XSbWXPO^WUVSWT`STV^^YZUW^UW[[U^XZUZY\Y`WXZXWVUZ[YZVYVW\Y]TUU[Z^UTT]Z^ZVXaTVZSWTV^TUSWZTZ[VWZY^UYXUYU[^TUX]]TX[XUWVXUXWT]YXXSZXRYU]ZVXY_XNUUVYWTR]VUW\T^X]XZYV_XVYXXUSYMWUaYZYVYWZ\^\WY\UZVST[Q]YWWY\XUU]TXWTVXW[]T^Z[STV\\SP\UXaVYZR`UUX\XT[WV]W^S]YXR[]VV[W[ZXXUQQ\U\WZVW^XV[VZV[\YX[ZUS[a\\X\XPZ]VX\^UU_Wd^YVXZgVV[_XY\WXUT_TUYVU[ZQSWa\\XXUXU^[YV\WRX]UZaZYN][\UWUUZWUZ`Y[WYWX_]]\Y`]ZZV[USWYWa_UUYV]S_[R\_XZ^\W`_V\XZWQYUZWZ\XWTZWVUZWQ]RYZSZYYWVXYOZaXXdY[_YU\]_[VU[^]\[Z]V[`V\^]VXaGX\\XYWUXd_\ZVSUVYV`U\\e[SUW[cVRX\XVVUX]bW\Z^[^X[ZZ[`]XX[`[VU^X]WX[_X^aSZ]YW[XU]V`WVYVW[Z\cW]TYYUYSVY\TSa\\_Z[XZUT_YWVZ_SRSUUUXWZVY\\YVc[]\VXXYXd[^W]Z_ZXX`UV[ZVWYRX\[[W\UUWWU[SWT\]WVT]XR\]U[ZaUUbVXbdQcXW]ZQSRZUTSZ[Y\]`[SYRXY\ZXbbYX`XUVYZUTZWUSX[T[d]TX_`[Q\WUW]UZQ^\b^ZaX\XZ[WW[V[XY]ZRS]WL\a\]^bWQWUXWZ]VZ[aW[WYRYR^ZURTYYZUZWTYQZW[\YWYVUXWXWW^X]XVT^\_U\U]XYUZX^Q_]\[XSWYYY[Q[XSTY\U_Va[VQ[YRYSTQ_ZYYVYX[XVX\TZZWV`VVQVUWV\YTWYZ[ZWURXWRYaXWVT[X[_dXW\WTUU_TTRXXNVRSZ^ZXUX`VYYRXZVTVUX]WYX^Z^WPQSRW``T[ZZTW_V\UZW][W\Q]UUL_Ta]WQVXV[TZ`QV`WZXWV]^[YS[V\^XZ_QVW][PUU[\[_XWY[]_YUW[[ZZYb\SZWXYY]U\YZU[]XY^[[^TXTWVSXUZPYYYZYYPY[S[V\[Y_UQW^VXV\[OZYS\\Z\VWdSY^UU^YRV]YXSTX[V\e]ZXXT\`UTWYVZXXXX^^OY^XWYV_QUVWf][VZX\[W`X\`S^[YWUWV]Z]YX[VURWRe_]\SZXZW\aYYQVJ]STQSd^\cXUY\Q`S\T^YXXZ\\W\STV\YVXVX[WX\YYY\WUYTYU[[WWUYYZUQWUWV^Z]TP[YVZbTSVT]]UZZSTXUWYYV_R[UUSU[U_[VXZVYVTZSXb\^TWY^XYSTU\ZWOQ[X]ZZUXYT[ZSX[XUV]VUbS][XX[W\YVSaSZ_\OPX[^Y[Y]`[TY[U\S]`T[Q\WTT]V\VT^UX[]YV`\UR\[]PVRYY[UTTZV[X]Z\_VOSXY]WX`[`ZVSYWT\UVYWXW\VYUSWRRXZUVXWVWc_YZ_[RQTYfWXT\PYXPTXQ[[XZRWTU[WTR\ZUW[[V][USW_\UZZ\UWZP\URV_VYVS[`SZ\UV[WTYZRTeXTaVRU^Z]U_^ZQbXPU[[WS\UZSTX[WWVT]YYVYTV\VfV__X_\S]^YVWXX^USUXXYWT[`[SMX[[VWdPaWU`\YZZX`UV^XXa]P^]X\XR[WXWURYQRYYXaWW]U`ZZV^U[XVMT^XZ[_ZPVU]ZT\TXXZ\YUWYV[ZWX`[WSV[P[ZV^Y_XWUSRYTYZ[T[RcU]cPZ_RVVWSUZY\TXY]XT\dRWc^Y\PRTW]V`\^]YXWTW_^WZaVXTUSVW^\UTNXZRZYW[XTW[W]XW`[XXQWYcXSY]UZXZ]Y__[YW[]YQ[XRXNTPTW^X^UZcU\WS\_\\TXUVR\\a_ZVXO\VWQ\YYYUVOTZVPVX_SQ^TTYUfUTRZ\SWOW^XV[V`XT\RRZWXS]\]VSSX\XZW[[VZU[WRVYa\[YU]X\Y^YUVVU\\[W\T[VUZZ`^T_UW_S[[TXY]ZYRUWVSYZ^STUXZ]VVPU_W]N[[Y\UV`]]W^d^XT[\TZT[VX[SUXZ[[[\R\]XZUXX[[SW[YVZ\^\WYUXW_[UTYV[YYZWY\UZ`UWXVSZRVO\X][XZ[RXX\W\UVUV[UUVZL[VXSZZZ^aX[YTWW\\UbWY_c^YVTYWXSQXV]YT_VRUXYW\XX\Y]UWT^]\^WX[Zb[TZV\WYRWVUYWVNXY[Y`ZTTRUWTVYZW[ZP\XY_[ZPXb[OWa`VTSU\WaTRS\_XV\TY]ZXWVZVY\YZTQl[WZcUW_[VW_T]VTUSZTSZT\\aTTW]TZZ_ZZVZZZWZV[^^YZY[\TS^WUX]cXVYWZUZ[V_RVXZYXTW[Z\TWUZYaT^XRXXWV]a\Y]SYW^ZYU`ZYWYRWRYTQVVXXWXYe[WTWQaZ[YYXXZT\[_ZV[TQXYUUVTTZZ`WVR^VX\\`UXYXRU[YW[WWZ[WY\[VYWZ[XVgXZYSX[YW[UXYWWXWh[ZXY[]\XXWU^_\\YWZWQU[]VXYTSVQY\_TZX]^WTUZUT]S`VUX]\UZXUY_Q[RYO\]TZV`\][Z\_ZRMTVXWVYVYXVXbP[X[VUYU[WYUYYXRWSR\ZUVYZWVY`SY]XXa]XVUT_ZOV]^VSaWXUYY\\SVUWYZRUZZUZY\Y\]\UcUZ`\]\]]cZTYYVXU`U`\Z[Y]R[XRXPV[]ZVX]WXRUUZVVZV^Z[]Y^WYVSZQ^UZYZXcWWTY^Y_TVXVWXXUX\WSV]VYVYXR\UWXQU]YaT^\WY[\X[adRXX\TV^X_X[WTU`V^SY^UUZW_VWUZYXX[VYbU[ZUVYX[R`\WTZTUUV\[\TXVY[\[ZV]aVZ_VZcYYWZXXTZUT[[^ZWT\_Y[RYZVbW[W][UZ[WVWYPXZUV[UWXYS[V]UUWZ[X\X^Z][XWXaV\_WZ\UVW^[WVO[`WW]X\YVWaW`X`]XXWZRX[ZWZWV`WTUW\VX]^Z\X`XTV]W]^XWWX[VX[g[VXZSWVXUT^XY^\ZUWU\XV\XTWZVScYZbZT[WX]YZ`WY`VWX\YQX]ZZU^[XYUYV_ZXUZUT^Z[RRa]_WUUWYW]\UTZX^XRVVY[\\Q\[UVVZVU\TUXZXYbYWUPWYVVXUXY_X_WQ^TV]TY_XYZQYV\[cU_ZUS`WZcO\]X`XU[UYYYY[]aVYVXZQR]\\V`[ZW[]SYXZ]UV[XW[VUVZUVTV[VY[U[_R^VT\YYW\TSUV]RO^O[[RZ[TXXS_ZYTVYUWZ\WXRXSW`TUVU[VWTYYWUYTXTRY\[S^WXRWVT\[UYSWZ^RYXWXZVU[VTTVXZUOZZ]RU[M_T^VYW_[XYXY_V]TWaOXYY]Z\RW\YV`X]gW[VX][U`ZVXT\[aZ[[PUYTY[VYWZ]R`RXRYRXZ^W[UVSY_SXXbWVQYRVbZVXXbZUX^XTUYTYVc^WX\\UV\ZZY^`^\VU\WYYYXTT^[Za]WXWVXV^U^]WXUT]VQVRW\ZQW_TR`Z[R[Q\Z`RZUYaTUYZXTT`SR^S]XP[V]XX]V\Y]UW^]YUQ[[Z^XYYX\]WSTZXWYZX]W[]UW`YYXN\\YTY[TZUWVUTV_V]XX[VVZQZQQ[Q][S][\_S[`_XT`W[]ZX^ZYb`VX[XZa]YV^Y]WYZ]XXY[`\]XVZ[Y[[QUUVU^UWZWZc[VW\]Z]SZWXa^ZZXW]Qd^V\TTZ^UZYYY]YXWY]UXS][UVaNUZ\^RV^]^iYX[TR_WYWUW\SYR`[SZX]WT\VSR[Z`X\Z[WVZWXOXYX\UZ`WY[W[T]^ZZX`W`WZ[YSb`V_\]_T^Z_Y`XXXVR^S[T]TPY]bV[RZSZ\VXXXS[ZYYVYVcOXZUTW\ZYeZ\ZbU[VV\^XWV^TWUeV]W[ZXZS]\VVX[\\]UVWZZUfURZW^_R\[W[XW[\ZYVX`XX[VXS`]]W]`\QW\XYYZV]dQY^]]UWQ\XU_`WaW]\WYYXSWZ_Z`^bWXWVWWTS[ZQ]XVX_ZRTWWZWY\XSTZYaTXZQWV[Y\V\YVX]XRT\W]W\_VVZ[WQWWWT]V]XQXYY[VX]Z]W^`V[YOgUOZ^\VT[^UX\^NVYS[X^\hXXXRWYY\[UXXUUT^VWQ`[V`X^gQXOYaXZYXY[TVW[R_WXXTMZ\TWX]V]ZZT^XMW\YZVWXW]\WXT\aZ^^ZXXRXVWX\WV\`ZUcVYZ^XZ\Y[Y^VZU`[WYYXR[][[ZZZ\\RWVSTW_V\YZ]ZZTQ\[TVYSVRQVfWeZXV[\RY^^X\WSV`UZYdXXZVZVY\^RWWO[W\X\[`[VXY[QUW\[\V]W\[`R]UVSVXV[Y^^WYTW^SXYVX^Z\_`SZS\X\_Z[UZ_^VWUZW]UUdZU^Zb[]\XSZ[R^ZUWYQcUX]`V_\WXXYY_Ta^SVX^SUSTYRYZZS\\[[ZTVVYS_a[XZ_U`X[]V^XVYZPV[_ZTZYOSV[TYVXTWXXSS\XXWTWZXYVXY]VXW[[SaWZZ\_]T\U]SWU]Z`\XTY]WSU^YZZXT_SXTS[UPa^XVVWWYPZT[WUU_U\XT[\YZXRYVZZdYTZ^VSXZWWTZO_WVV]\VUXVZ^WaQSYPXTYWU[aT[RSQV\WUYUUY\WYU[RUX^\RaVZYX]Va]YWbV[[\QVVYWX^VUSRQ]\\V`UW^_\RY\VURXXZSWT_\TTU[WRWZUZUUV[[RRQT\W`VcV]WZUZW^XYXVZYWT\VWWXTT[UT]\U]X]TUZYNNX]WSUVQXNTZUWU^UUSZQVVTURYYWZVZW]WTVX[XPUXZZWWcSW]Z_W]V^TUTWSZZVe\`[UMYX[ZWZWYV_S\YTZ\VUbTWTX\XO]V`Y_UVT\XX]X_]WVaXZR\YRROVYYWUWY_W_TKQU]UXWUR[[][[YX[VRVRZZ[ZZVXVZ_Y]UXVSZYVWWZNWQT]\^\VYRWX[ZVYW]ZVWUcX\XVQXVXW[\W`RXeYXTUYTPVU[YW[P\_S]YXZYU[[YVX\QXSYYWU\X_\YV]\ZWRXRVPS`Y^`]^UUUbZ\W^TZ\YWVSf\YMTVZ`]^\WYT\]S\WZRUY[]]XYVZTUYXVVXZY[S\S]UYST^^WVZYRU[W`XVY`S`ZV]UV[WTW[[c]aTYX_VW\[[VWVSZSRiWU]]WRWUW]XZ`UTZUYRYV^Q][[VX[[RW][TWRU\RSXV]W^WTT[\QUYV]W[R[WYPUUe][USYXW]\YWVY[UVaZUX_[XSbVS[S[X[VUVXZQVRVXV^RTMZWYY]X\]ZZSOT`\X[VWWYZ[X]VS[`[QQXY[`Z\STYSXY\Z[WU]WSYRYXWX[^XYU[XTVYTXYUW^WWUUISVZU^V]U\WUSY\RT[VRUYYW\VVZ[^`UUTW^\V[^ZQWUYUX]YXX^S]UTQ^VL]\dW`U[ZURWOSVYYY]UTUXPXWUTVTYTZV[VZWXXTYXeTa]XQ[WRWOXYXQ`\^Z[W`Y[V_ZYRUV\R[ZUWRU^_YWW[UM^WWfWU[ZY[VZ^WVVVW\YXVW[VSUVZW^WPf\T]X\a\[VTWRU\UYSYZWVS^X]SV`WWYSX^Z_Y[Z\Y[XZ\YS\VQVUWZ\^V`^S`WX]TXZ\\\SZYV\WSVZZW`W_[VW\P[Z[[T[XU^V^UY[\SR\UZXY[WYZXWTWYW[VUVRXS\T[[[PW`]T[\OWMZY_Y^Sb\XR^][U\W]YU[W^WWVXXYXYVW\`ZW[^_X_YV\]YZ^ZZ[X\RZ[[TNPYV^`UTXZZ^T]SW]]fVTU]\RRRUcZTSWWYWRVZZ]ZY\SRXZQZUXX^\TV]Y]SLj[VWUSPZ\[TY[R^Y^X`VYSS\XZW[XW]VS\[\\]ZYSVX[YWUb[X\ZRXRU[TZ[Q]VR`WTUS[Z_df_XZX[ST`STUW[QZVUdUZ]\WZ]YUWYU[Z]RRb]ZRVYVV[bY[\a_ZY\cSSWW^[UR^TXTU]ZT[c\XUYXUVWWYZYV\d]WVZ[\XU\[TZ[UUWYYV_UV\[][WT`VOYY^XWWXYc\XW^]aUWVUU]SgcYY``ZVS[YeSUaX\]W[UUXYYSVZXVYY[RVSR\^]SYZ\XYY^^[WSNYXN`X][]XV]ZS[ZYWPZR[TV\Z`_Y_UVPVgXX[V_SYVVX[VXVYVR\XV\]a\XRXXYWb_[YVUW[aVYYZTRVYZa`W[VY[UY]\\[TV]Z[YTYScUWRY]YXX`RUZ[\_[X^MX[^TXZYZX\VXV^YYZ`YQ_SYXX\]U_`UY_^YSTZZ^^U^Z\X\WTVQ_[[U`TTZZQ^_[YXXW`Yi]XeVX[OY\ZOWWPTXYS]Va_TVTWTZVXYOWYYVYUZRTWZ^[[TZV[]UVRYT[YXVXSVX^]U[aYU[TXTVYUXO[Z]UVWU^ZYZMbPVYUW[\TRZ^\V][ZUY]SY]VZ\`_]bW[YXUV\VWe[YR[X_W\Z[YW^\SZW`RTXVWWS[]]SYXZU][WTS]ZXfVVWWXW[[]VSZR_Y\[ZT]`_ZNRYUVY^RT^[]WU\Y\RXTdbVUVXPXZ[Y\Xa[SWVUYXVZSW\P_^^VTXWYRRV[UX]VUY[T[\^S[]_YXSZWZURZZVTRRVYXUXX[^STTQ[WWZT_VZ\_ZaVZYYRR_V\TWYU\SYWUVXXZY\X_TX`OWWYT[URe\\TURXX_WRZVZXSbWUYZ[QRZQSVWTZ[VRTWaRZTYSZUUZYX[`ZW`[USZZZT\TXXVS[W\YZUZ^YXWY^YU_TWdYU^SZW\SW[WUV]WWYWVTXZY^WUVY_SYYX[VYWZVUP\bdcV^VYSeUUU]^T[_V\XXVSZ]^_XSWZVSWWVYY_VT^WTW[[W[UX\W\W[Q_VTVSUURYZZYRXVX[Y]SNYSQXWZ\S[W\TW_XU_V_g\\UX[ZUORcUVZ\WTY\V\^W^WP_ZW[Z\V[^TZ`TZ\VPY\^SQR\U]]\QXeX\Z[^Xa[UQ^ZZaX[TTW]WX^^^R^ZTQWWaYfWSZXVYWWZX\U`ZY]`UYYXWYV[]WVVY]W\X]\]ZTY_U[QX`PZYWVV\PYY[USX[QTX]ZVP\[RUV\ZYQRWWV[XQV`ZU^WUU_VV]RS[TW\QVXUSX[ZW[WZXTO_W_TZ]Y\ZX]Y]Y`TUX[WYaT[[VX]WZ\\\[YWV]XS^c_RWTYX^Z]\[]\VY^VdXYZ[^W\ZVXYTUWeQVSaYTY[ZS_W^[SXZP]^PY]Y[^]X_QXV\STQaUZUS\XbZ_ZXTVXZRZ[S[ZVVVXVVSZWNTW]QUUZ^c`\VYXXXZUXST]YZYY_QYXVYZYW^]WYR[UUZ^]UX^ZbWZSV\[\XQUZVVVWZQR]]Y_YS[ZX^TZZY`U^XQ^YVdYUV_TZVWV]YVZXY\\\\QbXR[[XY_]W[ZXSV\VUUYVTY\R`[]XV_[T[_[TVUX[TYSWRZO]SWXZ\ZVVZVTZY\[`ZQdXSdZYU\RSW\UV_WSUYY]_ZVSfW[YW`Q^V[UXZYUVV\bYW]XVRYUUZXUWR`Y^]WZPW^V\UV[VSZ\SZeQSQ^]^]ZZVTRWZYXYVZ]UacZXXVZUVTRWUXYXVZQXUXTZUTWYZV^UVfZS\WVW]XXYS^WZWZS]PVVZPbVXTdR_VQYTV\a\^]X`T]_ZX\S^aP[bTZYWSQWVSWUX^WXS\XV[\`PTVVWUdUUYXRV_VTWVWTWWV\\YVY^Y^^RZZYUY^Z[^]]ZYXY\UXVZ`[ZaYWYVYXT^W`cQV_W[URWW[UYX_XMY[YU]YZWRWVXRWkWY]RRUYV[WVWY[TY[]`]^XW[`WZYZXVX^[VZ[^]UUZY^S^WSVY[VRRN[WVX]V`[YVYY_ZYW[]bUU[ZX^UZ^ZWVa[SY\XNWZZX[UVTY`bW\RXS\UQUTX\[U^`Q\V\VXXTYV^YaZ]YW]\TYVYWRYV]YX^ZXXW`c\]YYSXU`VZY_\X_]QV[Ua[eV[ZZX]aVSTS][V^WVYXYT[aYXRUZXVX^_WXZhXR\VU^QX\S[XaWV[_W]Z^Wbf[]ZXZSVU^ZXTWV`eY]V_VgWSVYZXS][YSQWTSYTZSZaUXPaPYbXYXU\\YSdR[UWX[Va]\W_ZYVXWRXVWTV_^U[YVSV[]]W[TWXXYY^TYX]WZTYSUZYdZW\QT_ZW]VY\T]YYYX\WXWV[YdPUY^WUdZQaUV[UV[[\VVVW`XZPSV[TVZVTXYUVUXUY\V\`WZXcVSTRVTSVVY]X_W`YYV^XZ[YWTMYXXUTVSaYW^]Yb\^X\UW[\Y^UXYSVZRT]SXWUVYXT]^\][fVYYV[SWP]Z[\`WNZ]PXZXX\[U^XXQ]YO`XTZOUVXV[XYZUXWY[YWYYb^Vc[Q[_VeW[TT`_U[YTTV\XXW^ZXTUT_VW`UV^P[ZWXXeW[X[dd`[PSVZRYT_W]ZXOXX[^ZWX[WUVnRO^WYZYZRYYX\Z[^VQ][[Y][^U]]XU]XUYXXNZXP]^\W[U\d`]TS\[W[XUT\YaZTUSZZb\WWTf\\Zc\Z`c[XWgSYWS_ZX[ZVa]YJ[TSV\WVVKOZaYPWYYQVY[T_SXmQWQU[^RRW\VVUYXbTYTXY[OVaWZXYVTTUU_UXYSYX]^UU[Sa^fRXYWXU\VZV\dVbWXW^^XSYYVYN]UWR[ZUV]UZYa`T[fT]XY^[[[VWXXSWZXZWTV[XS_YU]TVWZ[V\a[]VY[]RU[ZZWQ^UU]TT]ZWTXbZ[VXYV_ZS\U[XSSXZV]Y\QZcZZW\_[UaYSYW`^[YT`X\]ZRZU^WRXY[WYXXX^WWRUVbc[ZX^YZUSZZS]YWT\^UXZ_b[VRUSW]USVQ``WW]YQUVQUV[TXX[SX]T`[\WZ^XXYX^SX[ZZ\XZUW\\YXYVc[]W^O[U][T]UZTZYVSaYVY]YaZZY[SXXW`XXYO[Z[V\Wd\RSVUU[PZUUZTRYVW^WUSVSX_^YMXYX[c`[X]_XURY\Z`UTWUT[[\XUW[WX[aUTXUYYZ\^VWZ[X[VZa\X]TPWZV`S[XYXSWTUP^Z_WVXTV_W`WVY^VVYXYVYZ[W[[XXQPWYWU\W[WZWSZVTTTXTWTX\TYSRTXW^Y_X]TXZWXVWTSXWcUVU[VXPVW\\N]UW`YXZV]XR[]QZYTTVVVXUU_YNZUYUTTaQU_\RUY]OV]U\W[^ZV\XXQ[aTWUYQWXNaURY\Y][_U]O]]\^YWTXW\W_Ya\Y^a__\V^\TX\YUZY^d[TTSW]]\VW^WXWXU[`XW]VVSXZWWZ]]TW`WXY\Z[Y_X`WZYWSUOSXZUYZZW_\aaYWYbSa`SX_[Z^Y[WV]VRVVTWWWZZ\Y_XXUX]XV[[ZTWWYV]WVXU\RWb]Y\XZU^TVX^_YXTZU^Y_SSXbP^]VYTR\S\`^SX_]^aVXPbX]X][W[_ZZUZ]YVT^V[M\ZZVQXa[ZV\Y`]_VZXVS]^Z\[UZVWT[\R]U\UV^ZVYZTUY^_ZSZZ]NTPR`WV_bZVVZTeU^SSVWUVR^VV]T]UZTZZWW]VTXVYW[VNM\[W[QVX`WZVYUZXNPa`S]]Qb\\UTXV_UWZXcY]V\V][]VZZUY_UWKVQZ`[Y\VWWXX\^TYdRU[X[TT]X[^S[YV_XRSd[`\XeWSUXQ]UUWZYXXYYWRWWXY^VU^VRYZYXX[\WX`VPZ]]U\ZZVUUZVYW[VU`bW^\ZW[S`^`QW_S[QZS[YWWTYXX\Y_]XY`^YjZUYTY[Q`TVUXV\TYdYTY][V^XVYUQU^]ZVW]SXTV]]eZXT]O[gTXXY]d^[YZ^W[[ZSU[[WXTRU\[X`VeUR[U[WUVZ[Z`YS\XVTZ]`VUUVYWV[Z^`WWYXVMVdT\U_WSYWTc\^ZUVZW^YYXZY]\`XX[]]XWVVWZZW]XW^UWY\UZNZU]ZXWPYUPYV[U_[W`WY^U\UWWW]USV\R^X\U\[VZVYWP_XX[UVWVZ[VUWVT`T\VYTYXX\dS[\XT\X]]WXV^XU[]SOTYVRY[[UVUcTTVWQW_WXVa]`\U]UU[WV\WUY]X\aWUXX[^aY[YV]bcSQ[YZYWUVXSXUXTX\_VTTY]UWXZUTR_RSVU`YOTZ]S`]QZV_TNU][TWYXX_WYSV\ZWa]Y[WYUU\PW[TXXaUYXW[T\[YWX[W[SZWVReT`UYZ]YW^Z^V_]`V]U[W]ZZdYVRZU\]ZUW^c[S]]UZY^USWQ\WX\WZWTZXZVYU\W[X\WUSWTSUTSZV[]X^Z]X[SPV[VS]\X[VYWc^NXWVW^[^WWW_U[a\U\Yd][\[XYVQVUX`VX\SWUaSU]V^UVWUQXZPUVZXYX_QVXPW\V^X]WQVZ[`_XW]XXU]]WYW^W\WUO[[VTZ]WY\VOX[VTXWXaW\SUVU_ZTT^W\Z``ZT\aSXU\[_\_YZ]]\VZ[SX[YVZY^Z[XYQUU^]W^Z]YWWWWWYVUZ`ZSSYXeT[WYNY]XQY`UTV\_UTUQZ[^V`YZ\`Y[TYW]W\RYVYTUUZZXRSXXYYZV_bZUeTZZVYTU[YN]QZ\Y[\[_`[XW^VXX\VUZXRR[XYXZOUSU\VY[]UV\X]W\W]UZT_PXTVZW][\[^aTX[aX[UYcUWUQ_aYjYY_RYW_dTQS[O^S[XTVZRRZ[WUYVWYZYWSUZXY]cVaXYYW]YUROV[Z_W]YUbWPS[TY]OZTUQYYW\WTXT_]V^R]^UZXZQVYXU]ZeV\TT[YZVXYX\ZSYXSSWX[]YTXVXVaVXUR\XUZ\b[\ZX_ZTY]bW^]YZSW\]Z[WUWWZPfZUXWSUYUaUUZWWbaZZPQ^VX`U^XX]Y[WY^RYKU\[SZ_ZYS^USS]USXTXW[ZZUXRWT[ZTVXVVVVWUYY]\\XXV[YWZ]`VWbPU\URTUYYWSPWYZV`WW^[ZW^]]TVSXUY]WVV\T[TUQVUXWYVYZVXXW\TXZXdT\WVXYXXW\VY]Z^RV\OWgYV\c^c]Y^U`X_]]\V\YUWVP\UUU`^WVWcS\VUcW\WXY[SRSUW_Y^YW][RWXY^]YS`]ZY\SWXXbXY\aVWWXYS_SU\W[R\[Y`TYWW]TWYWXXU]\WYV`UZ[Yd^S\[SabWZXc^T[UYaYSXVXZZ_ZX]RXWVWYXVXPZ]_VaYX[``V[XW]_V]Z^VYcWVX_WgYUYUZ\VY`YSXXZ][Ve]Ta]XTYSTU]U[[]`TX[^W[N_RZWYU`PWX][U\^_ZWTYZUX_XWV^W\^UURVYVXUXYR\Z\Y[[\PY\UY\YXVXTW\VVYS_YWYYSTSRZXXQSWX^`SWWV\XT\ZYV[[cYX\WUZXUWW]ST[WX]TYUT`[ZTXaRX_X_Y[YXT_[VWPSdS[YU`ZTRVXVZZ]YN]UXZ]ZXLX\`_\VRaTZ]XZ]YYV_`VT`]XWZUZXUZ[WV_UZb]VXXSWXUWZ^ZW\[Y[\ZbWS[XSRX_]VU\TVXXWY[T\ZO]YW\UQ\RYZYVWZaSVW\Z[^W\TYZXTR\V\PTXVXWWU^YWPRUSTWUS_UU\[\W_PO\SOTUW_OVWWXTL]]]aYWUVXW^SYXbXW]OYYWUSVV\eRY\a]T`PWTZWOR^Z[_TU_U_VUWdW[UUY]T\\PS[SM_[W[L[VZQRZUZQ`YSZ\]\Z\YVcT[V^VW[RTP^ZSUS^WU[YVXY_K\XVZ]RW`UTWWW]TUU`[\cTTaSQZY^W]SZWYWU\RWVPU_URXeQ\XZ\XSRS_SZVPYT[Z_UQTUU]WV\\[\_P[dW[QSeT^\[YX[_]VZ[TZY[]ZXZR\Y[\ZY[[]WYZW_\[SZTT\SUS\VWXV\]UTVWXTVWXR]PQcVWZ[[YWYYVZMXacSV[ZWTLT^YZ]SSX[KTaR[ZPbR[a^XYZSVZWYNZYa_UYVVVYPV^[W]YVVSXWYOY[SWSX[aVXZU^aYYbaXX]U]XR[S_XY^`[^X[SPTYXc]Z[XTUTU]X]P^OVS]WW\]ZZZPXW[c[a^X[b^Z\[bZ[X^UV[YTSYVZZZSW\[VSW[cXVZ_[X[[T\_Z[TX[YZWVaeWT[VUW[SWV[[Z]Z^]YaVTcXVO]YT^TZR`]]ZXV[VXUVVU__\RYc^YVaYZ[\QU[XRUX_TZ][YYYWXT^R^[Z[Z[ZZQZ[YRV[W`YT^^^ZVV]Q]bU]YTTZ[SXPT\[[W]Z]NYWXURYS[W^TU_\^Q[TUXTU[VbX[WMZZZWa_b[UWYT\UPXS]]ZUZVXUZSbUSTV_^V\[^]VPTXXQPVYSUY]S^[VX[U[T^bPVW]STUZYWZTUZ[W[X]XZY^\`VYXZW\\S]S]^X^UbYZXTYUZXWRZV_V\Z]WSWY_VUcY^P`SY\Rdd\XWQ\ZSY_c]V]XY]ZUVO]ZPUZRXZZS^VaYV_VS^V]YRX^WOaRZYYXZXTaSZ[\U[]VYT\TWZYUZW\TT_WJWRUZPVTZVWU_ZdOT\Y]ZXT[XROYWUZR]`TP[UW\T^PXZ\\aXX[ZVWUWV[Z\`UY]ZWZa^TX[[`YZVXWO`Y^NTP^_U[VTXZW[ZW_UU`ZMUUW]bRU[QXO[SVZSTTTXUU^WQOYX^eUTSYUZ^XUW]^VVSTTXT[^]RYTZY^YQaUVY[W^WYY]VaYVXV\YX[`a^eiTV_NSZ\TUZ[UUVWaYTc^WQZWST^ZUXUTSWZ_ZUPVc[W^`YO]S_]bZRUSa]T[VWMUYRZTY_UTaTZ`gXZXV[YXY]ZS\]ZST[U]\VXQ^UR`YUSW^WW_PU[[]jXYZZYW[QVdWTTWYaaaS\`XTS\^RZ``Z`X]SZ`YWY`VYWXX]]YYPS]W`_WVRY]^[U_TYRXY^XcYYXVUWVXVT[[YU_YWXTXRYWVXY]SOZ^]^VWXZYXZ[ZW^YWSXYX[TOVRX]XXWUZY\\[SQW^VYXW_S^UQ\TYbVTaPdYYRYTPYYN]]TZV[\V_Q[X[WQTRQY]R\aWPSZX\[]Xc[YSO^[][W[[Z[WVYUWVXXVYX]S^\Y[XX[QVTS`WZXW_]SVSZ^XTX[^[YQ\]W\X\]Z[ZUZVZZYV]WTS\[TQZZWTLZURSZ^WTXXYWZ^bV]\SSY]SWbWW[TSQX`X[^\[WU[dZbXZZSVXXXYZZXQXRWXVUYOYS_PZU\W[\[TRTZ]W[Z\YQXW[ZYUYXVVUZYUXV\XWX\_eUZWSbUZLX[TTYXWWXXWUVWYZWXZ^_T[XYZRWPWZTY]UVYYTQ[]XYTV]TeXZYY\YX]\X[\PYSkY]Q^^\WU^W\[^^[U]WRaS[Wa]\[W]_VVbaX]M`XV`U[R]__]YPaZSZXYX[ZU`TYYR\Z]XUUR[XWQbZWZUZ[VZXZ\V\[_cXV[NQVY^aSW]d\^^U]ZWTUb^XWW[]\ZYY\[W\UXP\\MUXXRSWXY[ZTOYVXW]YbZY[TUWXZ\\YZXbYV^\SS^^[XTV`]ZaV^XY`\SVWXTTPXZSZV`^U_W[Y`a\aV\XUS]^[TXYST\XZV]WRW[SY__XZWSZ[YU[[R^YZV[VWV]T\QdXU^R]UVZVY[\WRVa\[XSU]YWTX[\ZTZ[[YaaRSVR\Y]WYSRVUX]]U`S]V`TUVVQWYO[dZVN]_YWTZ_LW_QZU]aUQe[WZU_S^R[U[S\[W^SUUZXTX[\VYWRZMZ^[UXWYXPS[S]UYTUaY]]hcUR_VZ^^U`R]RTW[^ZY\U[YYUT[TSYWYUdUVWT\W[WX]UZV]YZWT\PVV\RZSSUVZRf[S[ZZRW[\S\SWUSSWZZRUS`QWZQWXRT]\XVWUZTSX_VZ_XZPW`R^TZ^YV\__RY[VVYWX[VY\Y[X`XXW^^Y\VQV_Z[]YV\X]S\Z_]WUYaTVX^V\VTSX[WWXW]YZQTZ[ZZYUWTWXX`RUW`UZWSUW^TYXYV_\]ZVbYYVRPaZYYTUYVXYY^^_VVXV\OYU^\UbXRUYYZ^WT_Y^ZTScZWZVZVOXV`Y`X[YWYOTR_VSV^S\XdZS\YYZTYW\XSYWTUXYWUZWN]^[[XV`ZY]YZY`YYTZUW]`X\aUYXUXZWYZW`\YWUTY\W_WYYTVWZ]_X^YXWZRV`^WZQX[VSZWSYZ[XXX_YXT]YYY]UVXRX[YT\R[SWP\WYZ^ZYZZYV]\[T^VUYXW[X]]`WZY_Y^W[VXY]^\YX[]YZYT_U[NUV`\WXYXV[V_WWV]]^[XbTQV[VWWYVWWX[WY[\XZTYVXWUW`X_UXTVYYTXX^TU[\Y[]Z[]Z]Y[SWTXVeYV[X\W_X^\W\[]\_\U[YWWZW[U[\_^[YPZWT^V]VX_a\WXSW^YXPURXa\XVXXW[[[aV^TS\QWWWZ]VS\PYZ]ZZV`X\Zb[XfWYW`U]Qc__Vg]TZ^T\X]UV`X^XWYOcXUYVWX\]V`VUVSZ_bW^c\WVX`X\Q_\bXNUU[`]]VRdR\W_[UOcTT\SW_U\YX]YSVVY]U_]YbUYkX^TbXV[QRVQ\U]VVXcWVNYWe^[\TWSZW`[W\_^ZUZQd`ZQ[VYUTVX[SccYW\RaUU]___WWTX]^S\XYXa[aRZVQUVSZYTYaQSP\Y\[Y\RVWPWXUSXZYZaYX\mZTR`TWZUU]\WQ\TRWX[d[]QZVRV_TYX]`\U\W`PVT[T[LT^UUUcWT_\SUUWT[aS^`Ta[WY]W\_aUY[c^ZQ]XWVWRU^XT[c]T_VUVY[^\ZZ_USYTXWb[XPZ[UVXaRWWVXXURUYS^UX[MRcZU\[^WU[ZX]W`TYUWWS_^YYUZ\[ZU_]\\VWZ[ZZ[U_TQZaZW]YVYZX^XZZWW\YTWa^ZVXX\S]]ZT^Y^[TX[UUU\SW\UWVXTZ\UXZmYVTTSUTX[]]SWZWU^XUYUX^Y\[[R]XR^YY\R\TZT]YQYU[XZRUWYYRZ\\hYYXX[ZYZVdWXZXUSWSU_YWWW[[RYW\\W\^_]YWWZaW]WT]WXZXXY]YW\ZXX`\^XWX^Y`V]V[^WV`X_`XZLYVYVZXZYTZSTVYT^[WU[UU`[]Y\YWUZ\ZXXUTVX\UXWUV^ZXYXTTZ[XQVWQXZVZ[[\XVZ[VZZXZSUXW[aTS]W]U`TY^YVZ[Ua^ZTTY\_VVV\[cXXeUZ_^\][`[[ZZXYOYUUZ[_c[VWWV[[[QYQUVV`XX[VWUZbTZ[ZVTZXUY]\VY[]WT[UWUXXUW]UWV[ZY`WYUZdS_QYXWSUXXYRYQUX\W\\abW]RVV[ZWbWQTYUY_Q^WZ\V]YSW^V[UYWUXTW^_X`^WRZXWR[VRV_XZYW^iO]a[XXT]WYZW[Z`YVQ^[[UX^]^X[XV`]\TbWXZVZ\USWR^XTW[VV\R[[\[X^[\UQ\]WWY\RVVT\^YbV]TTWXX[XXc_SYUe[Y]V]T]bWX[URQ[XUV\X^YPV[TZTZYXZRY^R[UcW]X[VU^[^YTTMWSVY_T^VVXTZW][ZVUXVYTYUWWXa]ZRWVa_V_]UWZWVXV]^\Z^SYV[YVQTW`WXW]TVTZW][WVZ\^]WUXUTUYSV\^YTWVYR^QYZ^SX\USY\ZYZWXZWWWZXUVS_]S]YaVVVVSa\XWZ]]U^Z\XPWR_P\S[UaZ^TV`\YZbXUU^Qa[aXTTT]VURTRWUV\XX\ZV\WTVXZc`WWW\UYUd\VTTYUT^dT]^YU\V[XSTVYXUVXYVWYVYT]WY[^ZQ]Y]ZVXUYPa`Y]XZ\X_`TRU[]`TU[ZW[Z_TR_UYYWWaRWVZ\WY[bYWaXZ\^RW\eVZYZ\\TV[TX]`[WXXZWUUV[\\eZXXZ\XYZYX[XXVQXTU[W`]ZWU]Z^RUZU\X]_`XUUYZXUVW[[WV[VXW\SWa[Q[]W[R[XSWU\SNUWU^Z`^TZ[SY^X]SU[WYYYZUW\WUT^[`]Ya^^VYZ]a]UXZUXd\^V^PSUZ\YRbaZ\X[ZUZWXY`TVWZYXTVV[Y[_[[^SX]ZW\STVU[NRYYS[`XWVS]\UYWVXU^aWWa^[[[S[XYOWTVZUX[SX`]Z\UcWVaWcX\ZY`PWWXRYWU\VRYYWTUZ^`\UYZZTkV\_^Z_V][aR^TVQX[[]TXVYdWZZ\\V^Z\Q\WbXU[WWR]Ue[X\`[\[cYYZ_WZ[XVZN`]YX[XXP\_TVVU\]ZUWYUXW_[VXSZZZW\b^X\WPSVS[^aT[VYX^^PSb[Y[RXX\RPV[XWcWR\QYafPQ]Z^XYSXYV_TaNWWWZ[XXU]W`XYaV^XZV]USVW^XcXU_\a[]ZV[YYTUYU_`[_PSX\SVZV^\][S_\YX^T^\Y[T]YVQ_Y`X\X][bYYR\R]YWYW]ZRZVcXXP`XU\YWZ[PWZY`\[]\WWT_[ZZ[WaX]S[VSXVX[[X^R_[Z]UY\YY^[]ZVTY[[OXS_XV^Wa\^SWVWQXY]VRXUZSYYV^\U]VZZVhOYVX_Y][Y\\XS[\V]X]\MS]WU\ZRV]VS_YY\YZXX^\^bVV^Y^Y[Yg[[]\XZXZX\S\X[SZRZ[RYXXWVZYUXT^Z]Z[Y_WS\U[UcXZ[V\X[YTQ\]RST\[VXWVYRT[Z]WcZXWX[\PRVeVTWY_YS`Q]RXYTbSWYT_\ZVX`[`WTSQW^VV\X]WaXZ[VYY^^YZSXYXZ_X[QW^fU^]e`YZ`^VU_UWWQ]^TSZXZZ]U[[V^_aW^UZU_USZ\[\XU^ZQ_U^TUYU`WOXTYY]UbQXYY][TY\V[[U`X_`UWRY`PZ[U`]_[e[\VZY]_TW\[TYXZS[WX[X_[V^_XT`WY^[W\_T[]U[]bYZP_X]UX`YWU`\UbWWX[V_S]XWXZ]SVYUS]Z]S[c^[[aTWVU^`]RX^\Y]_^WYUZV\[S\W[W[[[\YW[\O[_dQ]`XcUVLTUSZXXQVYQVYZYPUScT[X\\U^LTXRZW``^VWYWVVYYWVaRXYWUXZaR^[^XSTZ^TY`W[`^^]VT[X_WYaWY[XWVVYMZ_`Q[\VZYbVZZX[UUSVWXWP^Z][[X\Z^bPXR\WVV^JebUX\VV_S[\\WZUU[W]WYV\XYZbRW[ZXW]]W_ZSZ`^`VYYU^_V]Z_b_\VN\V\T[SY[YaY\_[XWYT[ZX[U[VT]VTZ_YZ\]\^\T`[\aTXVVSUZU^WU[_YYYZU[VWRP[XSYUZV]`[S]ZV]YW\]VY``bZ[^Z`YVUQSP\WSVTVVZShUTg_XT\ZVTV]O\XXSWVS]XX]YWZXW\WPYYVfb\XRYPW[U[YVXZ\YTXYPV_[\YVYXWYWT^YXXZX]Ua]Xa]QSQU^]WXQdXVXPYZVY]VYZTUUYXY[UZW]VVS\WZX_WX`ZVUUW\VVR\QWYVVT[YYR\QVVXZVUX[T\WR_XZZ\VZS_Z[_Y]UYZWUWZ`XTVW[Wc`WQTS_XYTVZW[[^[]TZY\O[YTZ[YOOU[U[TWVY[T[`]TZ[TRVY\WUW\XYT]Z[VRU^VXPXRYWW``VS`ZWUUZY\WXZ^VY_VSXY`XY`Y][^X_\VW^VYUWXMW^ebVWUVXZ]TW[^YT`_UZUX\b_^XVWUYZWX_Y^[^UUWLT]UXU[Y[T]ZXPVUXPX\_U_X\Q\XZ^^UU[\RXST[Y_`VPVSU]NVXXVZYaSU[RYY^ZWTYWTTXR\\U\YTTPXVSWX\SWVW_ZVZRZcRZTR[W__[V[ZUOW]ZV\XXYRSVXXT\_SR]UWYVZYXY\U[VR^[UWYZWSQZZY[[WVWYUT]MWSYPbWS^XZ\ZURWZXOXZ\aUZZ\dXTWZ_STQVW_]Y_X[UZbTYTVZXWUX^^VY\RVbZ\OWS]\ZeRRSXRYVZUX^WVUWXXYZ[[ZXWUTU[Z_W]RZ_YZ]\Y\[Y^WX[LVXU]XV\^TZ]XUWZW^`]WTRZ[NVWWX\MUQ[^Y^UU__U[VTU\UbYVRTZ[XYadTX^PRXQY\RXYRVWVWTYXVWSYUY[e\a[\ZXdUQ[ZZZVU]^XUTUWQZ\U\YZ[Z`YYPYY\RT]`VSUNQW\_^T^QgWWYQWZZRUYYYZZaY\Z[[\_[`\QOSXTRVX]URTXUW_[UVXWS]XS[R^RU]\Y^TaYYQUY]ZVST[[WS[WUUVZQ`\[YbYQ[QYZWR_YZV_TW[Y]WR^WVWTUUbZWW\[cZUZ`\U[\XVWSXWZZWVZ^YZYYRXZ^VQYSWZVWZXYV[ZXTS^ZYQVUVaZRUY_^XWXYZ]_S]]ZZWYU^a]Y[]W[TaUYZ`U`XcSYV]YZUZXd^W[RUZVUZSUXVVZXVZYTX_YTS][VYNUR`STYXUY]]WSW]\YR_PZU^WX[P]T\R]R]aXU^VXNXXZbYYZX^V``U^[Zh]V]UWW[NYPM^VZ\Q[UZXN[^ZfYXX\VUVSVUZR^TQTWZVY_XZRSU^ZUeW]X[XWZV[_TVOUYVYV[[WYSRXXVXTT]VY]eV_VX_UXXWQY^QVP]YSRVW`Z_XVYV^^X_YXQWWWWZR\W][]ZRSN\YXT[\ZX]Q\TVYUXYWZZXZZ`SVSYYVXVX[UZT^XV\R[WXbXbY^]W\PRHUR^QX\\dP]W[VUWUYWVZRga[ZX]YaU^XTVW]UQ\[fTUU]`XaQUU[\WNbT]]RUQVTZUXZSYfRUeX\SWRT[UUUQUW^SQ\W\\SSU[Z`UR`TV`OWUZX\Z\UZZUR[aZVVUfWWTVVTVU_`Z`ZZW_TTU[VR[X][S_Y\a[][VXQZU\`WX\XaP[X^WbRWW[V[SN]Y]b__W\WV[SWQYUVL[[XSVaWWWSTcRWXVVUgSWVVYXRXTU[WX\OZ\N]`[b`WcXZVTX`\ZRYSWXU`h[XURXU\Z`WSVQZ\ZS[\bZcR[WW\ZWVXVSY\b_WYQ`_ZWV^[bUXU[aS^^\\Z\\SYP]R[VTTRR\YYVXQ\\Z\X\]PRV\Y[_VZa]VSXYYWV_UWX\_[[WRU]\aWXVVZR\W]TYcV\_ZTW[XTWPQT\\Q]ZWZSUTV][UWPUW^X_UVS[S[YbVVYZQW^_^dZ\XXYP]_ZVX\W]^YZVZTUVeRZcX`V^VVXZV^X\][\VXYWYVZV[^T\YTY_WTY]SY_VW[VYY[WUZWXX]]U][VWTVYT]RZX`^\VWTZVY_]QX`Z]_WT]XRMfXZY\SXZ^V^\W_ZcU`d\]XXZ__YY\TTV_XY[Z]WXZaVVWY]W]Y[YUUYQXVZW]_`ZXXYa__YZ[[QVSTV_WYR[]U_U[]_YSVWYYYVYWW][XZT[eYTVYSYZ[Z[XY]WXPWZ^Y\[V[^]YS\WOR[USZWUTVZVRZX]R]Y]SW]^XY_TWVZfXV`ZUWPZYZWY\U\RVY\aT^YUSYXZVZZa[YTVU[XZ_U]WT_YcYZVWU]W_XZZV[QU[VXU[T[_]Y\a[_X_VWWWUZWVYVY[WUWWY[U\W`ZY`OUXWVZ\V\[XVYSXQURY^gdaWOXX]Xa[WcQTe[VaO_UaYVV[RU]XR[[XUZT[`UR\Z^X`\d\VTXXU[YS]\TUYSZ\WUWYZ[UVWXV[ZQXYT_R]TPU^^SY`V[YTZUWZXQ\[[[VUXYYb^_WUS]WZ^WSXWUZZTcVWWS]RWWW[J\XV`SSWZY\SRUZWW[QW___\XXXWXWXVS\ZXVX\TZdVRU^XV[VX\WV[YWUU^TWXWYUYSXZXWR^[dX^ZZZ[TQXYUQQ]^LWX\U[d^^WV[XdUXT]RY\[^ZSVZZXXZ]UZZT\S]RRTVT[__PWLQWRUWU]VX[Z]W\U[UPYO[T][Y\TX][ZUTYV_Q^Z`WYZZZ[]SRZZa\RYV_OZXWb]XNa^QYbZT_XX]TU__WSV][L]`Y^_R\[]^P^SWQTWUU\T]U[VV[]TWXRaV[ZX]\[T\PUXSW]VU\VXU\^T_PSY\W[MPXWZZXTf[T\\WV]UYZZRbY]RQWY`RS^W\SQTV\T[RN[Z^UZY[U[[TYUWa[UYZ[TVXZP_XQU[WYX\[YSSRZUOdcVTV[R^[ZVWXRY]YZW]RaYUYYUaWQ[UWNSUWTZZQYSU[RXUYVWP[SZXYY_]X`XTXVUUZTZWTX]`WX^ZRV\T\[\U]UVUZZ`TPP[S[XY]V]X\USQY[[]_U_RVY[ZYVRZX^]Wb]VTVX[UVRRYW\]XX]TWZWWZY`SYTVZ\TTVXWS[]_SN[QZYY]YWWP[VX]STXUUYSZTTYW^U[TYU[_RU`ZZVZ[T^[\\]YR[\RRa\ZWWVZ[VUZY[XeYXS\VZWRbXVV[PYY]TSaM\VaVNW[Z^UUa_YWXV[^VUVXWXZYZYYb[`U\Y]Y^`YTWRQY^]R[WXVUZV]Q[XVZZW^[[`]`\[T_VZWXX[[^\YN[ZTVYR[V^V[WQXRSRYVTY`XX^cYTW[U[YTSbT]VPVRSRZ\XX\]XWZUZY`ZVWY\RZZX[VWXTSXPWS^XUWMXWXO_UY_ZX`[[TU\YWXY_TUV^VV]VY^W[UZWZSZU[\T][Z\SSVXT[WaZXXYT]YVW\Y\^X]V^YQWW\XUWSWWeVV\WYVXb\UYZ\WXTY`XV[WVRVT[WXVTV]dXU[XdVRWQVYPTbYYYYZ`VV]ZXVQ]]]\ZTYSUSTSRWWTYWTX[^^\\X_Z]TV\VS\TWVUYV\SRZYXZ\YYTXVdYYaSVYYVZ]\[ZZUXU\NUaWZX^aUUV^YZQUVdTV]^YXYV_WUY_dNX\VYYZ_W\WaUROWR\ZYVV^W]QYU\QYY\XWTPXTWX^`T]VXRW]ZR\]ZRZ^\[SQVcX]V\XUQSWYTVTSW^X[UUV\]Z[WTRV_ZXZY]dVV]_XYRT[`WYVSR[Z\RQTR]VZXU[X[X\XVWZV\VVU\ZXW[]UZ]]`WV\Y^V]O\RUWWR[^YY\XU[YUY[ScVR[[WQRTUVTXXXTVY_VWX\UVTUVW[PYZWZZV[YZVXVWR[SUVW][VRXbV]ZTQYXUU[ZWX[]UWmVP^\\Z^]T]`TV_T\UT\XTTZYVUV^W_ZZVWZ]\UWWUZTZXYUSWUVZVX^]^\V``i^[XVRWZ]NX[QaZPU]UW\Z[]WOV[YY\]S[XWU_TSTV\PY^ZZVYYNWYUT`aY]XSX\VRZXLSTRaSS\ZXY^^]TTYW[[\\]SY`S[WT]Z`XU[SY[WWdRYVY^][YTUYYS[WOTUWTSZZSZQ\YTXOY]]YOVS[XUVVUaSX^VcVV\X[aZZVSV[WYSVW\VN\]UP_VXX]VP\\]ZPTWW[WXOTVUZWRTT][][\[\`^`^]WRV]Z\WXZa[U[`WYWVeZZYRXXYUV`V^XSVYXWY\X[\ZTRSYUUT]]QW[SYUXVPW]aW]PXXXZ]LYTZ\VZSWZ]TYZ^SYV\WT[YU]`_cOQY]WS^Y`ZXSTYgX[\W]YTWTb_^[XO\W]YSZ\^TXSWVXYSXWW\WVaWSURc\VW_^_V[_ZVYXYTW]SYVOY\^V]UZ\S_Z[SVdXO[UT`ZY]ZVVXYX`YTUY`YZVg]Y\ZXZYYZWSW`\Vb[UUXZYN\\W[f\\OSWX\[^]Y[\\^Sb\NZW[Z\bbd`fbVbU^[TZU]T`U`TSW[__]VZ\WZVQUYWTU]_^]]YUeeYYQUWVS[TWZR\YWXZXX`W]U[[SX[P[TXU[WY^RYZY]\[TS[OVWZYWQRVXX\\Z[_]PZZSaYXR]bVUNS`RYUVc^`\ca[]\ZY]X^[ZZZTZ]VVVXeX\[`UWaTLT\^\XVY[Z^T[[\XTUX`SZZUYdX_VZYWV[O\TWXUT[Z[Z^VZ]XcU`[ZVUXUSUP][YW]\[XZ`VRV][PXV_^WUZPaU[X[[YVW\RZZRW[WUXRVTPYT__`WTYT[TWQXY_Y`YW\^VYYR[`ZUXXQTPXXXZa_Y][YT_[^SV[\TU^Z\U_QbY^WWU[YVbTWQ^YX\bVUSOUZOaP[^RXd\ZXXZX]X^\WZXXSWUVUVaOQQTPfZ\[SU\\UZZ\\YURZ_[Z^]aYUY^^^\XVT[\aUf]\]^X\VWWN]a^_WXU_^X]TZYYZT`XZ[[TaQXWPU_]YUYYXWVYYcZWYONUYYXXT^[Z]VT[TRPQXVTPTYYWUYWXYXTU\WS[N[WZY[UU^XSXW`QaY^V]WSXUVX\ZW`U^W^ZU`Ub_WXVX^]XVVV^XQ^SSYYV[\^U[[VS[[YWXXZURY\^S_ZTW]^\]XTWUYUWVYS^WTRW\\`\WW[YVUZcUXXVYWYWWV[\b^^^V\]^TW`XXZ[XXZZY[XW^OY]TZY]YY\V_V\[YaV[PZWZ_[T]Y\V^^N[U_U\Td]SYWYPTa\NWY\YXZWYaX^YWW[_ZVV_Ye_e]ZZWXWVQX[UXY`STVT]VXYWXS``V`Z]SPQ_d_VUVY_ZWZ_WUWYYOYUV]b]ZVVZVX\YUURYTZNUcVVaR\ZRUZ\SUSWYQZXU[V`WXW]S^][X\_[`WVZ^YW][ZV\WPRT]U_\TT_[\V]VWTZWWc[\XY]YZT\TST]ZXYXSROi\Z]ZRXS]S[U_SQYWaW\Yb^SX]]QSYNVVR\ZXVN\Z_YYZSV]QXU]^XOYTYYXTVSYP[UYRXQYRb[U^Z\XY[YYTPZWS\SW]WNWWTWS]WTT_[ZXYR[X^`SXTXTTUXRTVZTSdYST[WX[W\UTXZU\\]XYPXWd\YVZS]XSYWYWQ\\UWQTRQRYXXYXYT[TXT[][UZWUT\]XROX[dXXcWQVYX^]X[VZ]YXXW[ZRV[R^VRT]^^WWSYXYa^XaU[\hU\X`X`^_WX`_XXcV^aZRX\SVX_U_UTTXZOW]\cTTYUWX]^\^XU]`S^^`\[WZXaX]YSS][USVSR\d]_X]^ZWcT[ZZWX[RS\W^ZT^]\W^SWWOU_VUY`VXY^[YT`YT^UYZZc^WR]VZTYWQ[[\YUTYZ_acUYUX\Y][[Z]XYVYUV\SZVZS[USYXVSZX]WXYYV^YZP[W_X\TVVXYU]Y[gPZYWXY[XXVVYU\V`YL[TT_TV\[SU^Z_VUV]aXY``Y_]TTZ[YZ_[TZ\\QZRSZWb[WaZZUVg_TWWRYZ[^W[WW]Y[[SSbZ[WXZ\[[[YZ^SbSRXXWXZP^caS_JXXYWWVTWXY]TP^UR_^eY`VYTTRXTZ]R[VPWS_aZVUWWZZUdXXX[UQT[[WYYU`WZU[VXUVWX_XY]^]Q^ZTXRZX\ZYZUW[[_^Y\XZbR`XXYVTU]VXW[^^RX[]X][YW`R]UXXY^Q[_^R\U[XU\_[ZTTSQ[XSS]XTTZ[RYSXZ^^U]ZYb][\[XV\[XWV^YV_S^ZX^^R[TQ[WZSkVVXZWYZRVX[[Y\X^QSWXPXSW_ZT[OQW_VXXW]\_XVV\TSXdVO^\\S]SbXRY\XNYUY\UOWd]bXXTa[]Tb]YZ^ZX_U[]a\^W^\^]T]OX_TVON]YZSU[SPUUP]UWXV\WY_YcXX[TXPYWYU[XS`XUWUSQ^W[VRV^[X\ZRYWS\WTSXc_RWZWRYTQ\W[R_^\]X]WYTZVSQ^ZPYQZ[_YTYX^YR[W][UR`P^\T[Y\[YWYY]WVU\ZRXYaZQ]SSYTYZUWVXUURU`\^W[`\ZQPXYZZX\Y]ZRQ^WXUTWVZPW[_U^YWYRZXWTTVaY[\S[^QTTMXW^`YVWXX\[Y\]SWU_V]T[a`SYSSUYZXVXVZYP]ZWQZ_XZX]aUVXa^V\]^c[UW[V[T[]]]\O\bWV]YVW\]Z^Y[Y\XRUXTS\W]S^V`[SZWW[\][TVY\d_[U`^[X[ZX[`]W_VSY\Y^^R_a\Y[`[T[YWeY]Y[]SWX^`ZZXXYZYYZYgVWY^]T^YaX\_][S_Z]SV[V\b_TV`aaZZ[Y_\^]\WR[`S]^Z\\V_XV[WXZ[\Z^XU`bZ[V_Y]X_XWZ^^V^Y]ZZ_b[U`b`VTWZW^X]gXY[[XUdVb]^Xa`\X][[Y_`W[`]X[[Y_[dWZ]_\V[^_Z[W]ZQXW[\_`TZXXY[YXU\[TUZR[VS`X`X^_[X[S]ZW_WbW_X^Z[\Xd\T[_X\\YWX\V[\X[ZS\Rd^[WWWVVRYQ]V^[bZbXZRTXYXWVSZT[Z\c[PX_\Y]UTZ\X[c^^Z\^da^\YUU_VYX\Z]X_US`[T^`Yc^[dZWY_RZ\b^__VUTb[ZaVW]Z__[S\_ZZW`S[ZbSZ\TZTQXTY_cSQT[\YU\[XT`[ZW]TY\MXXYXVVZSS]Z]YTO`[XRZX_U]WYT^WZYZ]U\^TU^\]SSPYUTOU[X\QSU]XdZZTW\R[ZUVY\TYfXa_\cUQV[WZ]TUTPOSX[_[YeT`XQ_WaW_\WY[XR^[_TW[XR]\YY^\]\[Z]\]]UUbZ\TY]`^XWZPYY][SYR[^PYXUTZY[[WRWXU[ZR[YQXX[^YVY[X\]Y\\VU\\XU^XVNTSWXc]YaYW\]][XaQZ[^YWVZ[[]V`XY[^QW^P`XXW\YS_[YY_XSdZXYTX\WVU[R[WXW^ZZaW[VR[^\YbX\XTWZTTTVV[PZVUVSVYPVcVU_Q`[VXWXWVaZXXYY_NP\Z\\V`UXVVR[WWXV^V[dV\Z[W[SXW`[WYWP[X_[WWZUY\YZY`ZYXQXVXWV[]YRVTV\YXWZ_V\\TaV[]R_]YY\[YZYZW^ZU[YY\V]R^S[c]YTdXX[TWSTSZV[X`UUUYR]UXY[U]YVZYTRU\[VYR^T\SYW_Z[W\YYXdQZYU[YY\S_cY^\V_\WXWW\RXWQXaTYU\Y\Y^YVWRSW\Z^`YVRYXUXW\]SXWXYWZTb\YXZUaRSTZ]RT[WTXSZ[QTaV_[[Z[XW]XQ[[[\TP\`ZUU\W\`VW\S[\c\_ZZ[SQRSVZV]]WQ[ZUPUSY\[UOV\\^Y[]Z]YZZY]X\ZV_\\[\TR\`VSYUSQV^^YaWXNUZW^ZVS_ZW\UVY[aURSb]XV[V]^YQ[]]ZWWSZS[SW\UY[JSYYXYSY]U[UX_^YRX^VWX^Z\`NXWZ\]VYUKX[VXU\RXQ[]TWYNQS]ZT\SWPZW`UWTUS^V\XYSQ[UX[[_]V]VZ[YSY\[[d[Z]VTT^XYQYVVPXYTXVaP_[T\XT]`[RX^[TXO\Y[bV[[[XR]aRcWVXZZcVRXda]ZO[UU[`SVVVUXZYaTbVUZ[WYVS^Z]\XWX][S\S]]\W[\VWUZTXXRUZ]WTW]\U]_XbVY\ROUWV_T^[YW\_[[VR\ZYVX\[ZX]VU]WZX^[ZY]YXYUV[]WZV^Z[Y`TV`Y[Z]k_PYa^X[[WX\ZYVRZP[YWRZZXcQWWTUVXRV[VcQU\VWZYVYYXSZRPZTVWV^ZS]a][WU\T`ZTd`XXY\ZZXO_ST`bVSUUSZWTZY[[ULV\XZZ[XW_V[WW^VT[[V_Z[^X\\U]TXYXYWUT\UZXTPXU]UWVYZ^UY[_[YZU[\UV`]ZaSW\U[YYPa\UWYX[UZ][^]ZRXV]^[ZYVZUbWR[^VW^_NY^V]UWYWV_YZST_XX`ZRVYXUaZVTZ\ZTYReUWYWWYX]PTg\\WSYWVX^UTSRa[`WWPZXT]VXX\ZT]eUZ^YTYXaU[WRX\W[PSZXbUaWV\_VS[WU\]YWX_^Ue^]UU[TWOXYYUZWQ\[SR\ZS]S`aY^][VRURWW_O\Z[]RYaPZWVNU_aWYc[XXWO^WVXVUQaZST\[TS][[W[eWU[OYV[V^SY[ZXNWXXUXXL]YYUZYYVV[XX\[_WZU\[U]\`ZXbaSZTX^[XVV\T]_]\YXVV]YZ\Y_[WWZWVVZURZWWXZVV^USXWXYSTWYYSPYWWUZTTRQYYWUV^YSYVV]RSWYYTcRRX\UWVR_ZRY`XYYZZX]T]Q_YTV]ZRV_W[V[ZZX\TTZXaZSVZe[[SW\ZZW]Za[X\WYQXW]`PRV\XYS\]Y[XbUX[[eXS]T[ZYYTPUWSZ^ZOO[[YX][X^WX\WVZZV_VZV\WdWUUWYXN][b_P]WRV]PZVaYW[[U]ZbbUX[^\]XSTWY[SVSTURYOUUXY]X[_V^Y\WXPY[SUaVV\X]U]k[Y]]^TWaQ\U]WWWWZZXZaU][UYYRV[[ZZSc]\^`X]YVZOW_Y\Y_SRYRXR]ZX`RZWYTXc\RZS]\T^ZY]QVR]UXZbXY[X^_XVUb[Z\^[cX\UUZa[ZZTWZYYYRVTVXZY\PSYWXWZTY\RTUW_ZaVWT]Z^P`ZW][S_ZW`VUY\VZPX\V^[_^UUVWUW_YV]KXUa]_[XRXYXY_aXX[VTZVZZZZT]ZU^WPXZ`WX\VX`_TXWUQZ[TQ[Y[T\\WX^[YTZSSXa[YWQWXS`U[PT[`XYQR\T]XXXRWYW\XYUT]VU\^WTTXZTUU]TWZ[Z\Z^[VX[]UQ\cUU\[YXZX`[WSWXfZVX]b\TY[YWZZX^SSUMZV]WTT`]R`S\Y_][\aYTSVZ_VU\R`X[_ZaWY\YZVRVY[VSRZSZ]\XORZWXZ[V\T\Z[Z`ZRTUWVWWR_\jYU\VXWVWYRZ`VZ[U[]UW\X_ZVW][_UX]YXYX`W\[VV\ZS]Vb]RTP\W]WR[SWdYSWUYXW]X_WZVaWZ[aX\XSXYZYSfYZ^]W]^X`^^a_VUNX[][QWTXZYZTVVVYUU][UZYWTTXR\XVSSV_PZVUYT[`\bV^\ZLYZXSY[X\^YRcYWUWXX^TYTWUUWYXbOV\\ZYSW\YYW\XU[^[XV[TUWc`[WTSWYZT[[TU^Y^WTY\W`PWSRSXYUWXTX[YXUW\[SZXX]^^RSMQ^[UVSW^SYV]Y]]VXQT[XUZTV\V\U`VMVYWRV_SXYVTYZd\]\[XQXW]W[SVRUZ[``ZYWTZRXVWQW]URWabYXM[[P`YZU[YYV_ZR_]TWUVX[^W]TaNZVV_VYV_ZSWSVZZSR^WTXXTX^P\[SNU\URZ\[_YRZbXV[UQ[YY^_WXWSW\R\WWWXS[_TWZ\c_\XbdYSXYY[_X\VNY[W_cXPZYRQbN[TZ[X^XY\WWT_]`XRUTZTWbVW]VY[[^V]\\R]\TWXaXW[aVSOXVST]]XVUaSZUSYWY\_]RdTYXU^YZ][[[[\`R`W]X]aXXWNZ[YXXXSTYTXTV\\_`VYSWY]bPSYWVa\YTWSS[WaW[RX\YY]aYP\XZYTVZ[`SWPRYX]\]OWXXU[VYZWXY[YZ\\WZ\S^ZV_V[[PZa\XYVZ^XYVU_U`SYRV]V[ZTOYZ^\YW^SaTWR[U^[UZTYQ[Q^]YWYTd_ZYSZZZT\XVaZXVWYbTSeW^WS`VT[U^g\R[YYWTOTU\VSUZ^R]Z]TT[VZXTVP_WQ[WZYWVYV]\\VXXZ]XX]SXWcXQZ_ZZUZYWXVUUOUYVS[VYXUT^\U`Ya]P_TZYRVYYVSX\^Z`WUY_T[XXZXUW[_^[YYT\_NUQVXQ[RT]ZYfaWY`VX\X[^WYRVYV\Z[YTTRT`^W`_UQ_Y`[aXXWbXUTWX^bWVQYYaZ\ZYRdXaVaVR\X][YV\^]fWYV\XY\XZXZ[[XZY]Y_[WSVQ^[W\ZUY_ZT\\]]UW^YXSXRTVZ]XSSQUZQSaVVZUaW^^]VVUYXXWU[VY^^VWYY\\UVVXR\YTWWWa\T]\]RZZ]_[\[_[RQZVWT]WY\YY\SXcPQ[TYUXYVW[_T\WYZZYSbUUYVbZ]XYW[Y\[NZXVXTXQXUVWZSZR[YUUWVX_\aZXZ]W_WT_bYVXU[ZX[\XZZV\YZ]V]VYW[]Y[XX[VYUSZTZQa\\[OYe\Y]`ZXSXS\[TW\_XUVZ_]\RTUY[S`XUV`XXTPQW\VWV[\\WV[\XNUUVTY\XaZ[W\V\ZaS]TY^V_`YQYfUWUSWPR]^W]]WZ[XX^W[^b\[]VXVTURZZY[QUWZSVXVZWVTV`U[T]U[W[WHX`\]VWVX]_YTX]VVUYS`TWW[YYXTYUWXTVW`W]W\_`TZY^ZXZV]XYTVYTcTTRUZXY`P[Q\ZWN^SW[[T\NTSVWWX_UYVXZWVPWQNYTVX^XV[aVZ\YbSbV[WRZUTY]`ZWaQULUXZ^VW[Z\\TZN`TYUUGZ]UXWWZUWXYSSMP_SWVSVRU]YWXV`W_[YXYXWTXbWT]SOV[[P[SYYZZXY[VV`RWTXX\PZ]XYVVYYPS]SP^X]^\X\[X_TV\VXYV^RQRYYTZ\RV_\]UY`XW\P\Va]Z_WY\[VXUX^VXTYWZY^SMUVXRVXW^VXXY][VUYX\O\QWTVYZVRZZSVTVSTWPVPU^]WXZTNRW\[ZWXZX_RP^_]\SIQXXXaY[T[U[VTPWZX]VWKZ`UY]XR^e^[WYWXM\UVUU]UVXY[RNXP[SYSVXZPVRS\\W_WaZQZZZXYPVTV]S`[W\^WU]WSYUWXT^UV\TVXYVZTaXVWVW^ZPX]VX\ZS^KQ`bcX\ZXTWY]_^T\V]^QSY[UZ][ZYZVW^\[ZRV_WUWPZV\W\VQ^YY\[XYYW[SRY\V[aYXM[X]Y]TXUY][RZXZV[UYZR_YTUY]\b]\WYYZ^XOZU[]ZcXTV^XUVXZ^[d\[TZZW]^VVdZ^fZXVWZ\]X\PWY_YYPU^Y^USWT[TYX^UZ[VZTT[eUXb]ZUXX]^SY[RdcT[S^T`VW]_T^V\V`VZZVXS[[XURSV]PYW[f]R\\YcZ^[]cVUVOT[bVS[]WUVZUP\VZRYZ\]XVZVVWUWbVSSY\W]WUXY[[UTS[Y\]RVU^^]\WXYYZZ^WXUYVS^`UT\UYUYZWV\_^`[XWOYVU`TUWTUUZVU[[TV\]XW^]WW]VU\R^XUPVZSUaZTS[XZYa`XW]VYTVYU\QVU\XRZQ]TW_ZUW]T_T\VXTZUXWUdZPXVQV]SQUWW^UZ\YXSW[VYXYT[XWRYWQW^`_X]TV\TUYOTZ_[ZQ]\T\V]VZXWYZVVV]UYWW[WW`UQWU\WbYV[S[S_VeYXXW[XW[ZSYPQVYb]YU^_Y_UYY^gV\XW]TZU[UY_XO\_Y_[SU\\WOZXR]TSSY[VWU[]bWX[]YPUZ[XXY\VWWYVVRVV[WUQWXSYXZ\XS\b^X_ZQ[]UXU\XX]WYWVS]UWYZST\W\YWTXZUT\Z^YWQ_ZZSRVV[L\UW\T`TWZZVZ[\YK]Z][VVXW^WXZS[TS][[XcZa[\\YWV`VXZ]YT]WU`WYSWU\XSS]ZRV[c[[ZUW[UX\XTV\X\TUZXRPUV]YRZU]ZUZQZ_`XVQZ\`V\TNWV[ZTS[\[`MY[UPUQXRSZaWTT[\W[^RV^VTY]YbYVc]ZXSX_XaTYYSZW]X[RcT[[U]ZZXXSW[XZ\bU[ZUTVU^ZVZVWbWXYWTYXVXV[NZZX]VZY[WY[OZUP]XQRUU]^WW^XSW_X[YYbSZVUV[VY[^P]\YSYXR__WW^g[^[W]X[]X\\V[\VZZSTVYdZ[SZX[U[T]ST[ZX[ZY]SSSV\YX_Z\VXZTT\bVYTUP[YZWUQeZXZRXaRWUYYU\SS`]^[U\]VZ^SZY[WXRN\SV\YUUQ_XX\ZZ[\T^TUUXTSXWV]Z^S^ZTYVVY_]]aV]hUNZX\Z`_U[YTTf_WcSR[]^V]OX]_\YWMV[\UUYXXR[_ZVZ[SUX_QX[TTTWPYZTV\Z[U\_\VY\ZY[\SXgWW\_YWY]ZVUYXWX_YVX]U[^[V_X^_SZX^USUXRX]OZ[VXZ[ZUa]\VWVUX\SYNTS]ZXUVSVXY\Y\UX^YXV_YT[V_WSZ[YQ[UU]]TZS[Q\\\VY]\WU_WUXXURV^V[W]Z\Y]TVRX^[][bZf[Z_YXZaTOV_OUUR]VVZ[[bV]WT[TWSWb]USU[WO\_]\X]SYYXQTZTTUQTQ_TVUYYXWX[OfXRXYWYWYW`WZ^T^RP_WWZY[X\_aY\WaWY[`TS^YVWUWSW\VWWX\SZWS]Z^XU[S]caV[c]Y[aVRTQOV]Y[XY^R_[Z`U\ZS][YX]YTW\_X[]]R[W[V\T[[XYVY[]ZZNZ[W\]ZVR[SWXOX[[WZ_Z^ZXYZVX[VU`[a^_\RZVQQTWVZ[VVUSYXXYVb]V`VaXY]R\_Y^]ZT^[\`XUW[[Vi\ZXZWXY]XUUZWY^`\_[WUU\\ZZ^WWWXYUXVZUYYRWX[^Z`W`Z\[][R\[_XQ[ZYXUWXVTXXYSQSWWYZ[ZV[Y\XV\[ZYXVX^SVX_Q^[XXgUVTXVV[Z_XX^W]XgTZYXV][V^YWZZT[VQWYYYT[Z\U^W_S]_[ZX]XRSZXQSUYXYXZVYVVUTa\]\V_TX[VTQWb[[b\Y\XXYWUTTTR\]Y^^XY_U[V__UUZ[OYWgUT\a_PTX[ZV[_`^XYQVW`XVWYZV]W\V`XYUU[\YZWVX]^bWW``bUXVXXX\WY^VU\VW\VWW[TZRTX[VRVaVWTW`X\YUWW[WYXZYYXXVZaS\TXZbTXXV[S[[S_R[YbSZ]VN^YS]X]cXW\V\]UU^VZWKXVXPXYYWXX`[YTXY]PX^[\XS[aWVZRXYZZW[U[RX[YY`UXY]UV^X`SV[`TSX]Q[URTVR^[YU\]TYZWS^TXX\X[\[WYUUXTXZ]VbZ\X]RVS^XWZSQ]ZaZ^WW^^YOUYVVUaT]YSYUcZT]W]T^]YWX^ZU^bYVVX_XVUVV[^Y^XWXYVO]Z^`WXNUWZVT_QZ\V[P^^TXVWR]XVT^_WUVTY[ZZX^\SXWZZZVZZYbVZXZY[]XQ`WYPRYZ^b\[V[UUVaVWZZbXYWUY\X]VSO]VXV[XV]XXTV]T^[[]`UZUUZ[PYZ[\U]XaZW`Q\WWUXYN]^[TZa^U\TYVZXUYX\YV\^cUZP[YUX[`P\][QZb\UYP`ZYU[YTY]ZW_\YZW[ZSX]a[SWZUV]Y\cWUa\dXUXZUW[aVT[Z^^^[WS\VZZTXT]UWSRTX[RXYVVZZUW^Y[_][ZYU[[WYW\]TWdXTaWV]`ZUPWXXUW^\Z^^[X^YOWYV[ZT_]]YY^VYZY^Y]XT[]QWZ]YM]RSVWTWXP[]QQ[UXUQTY_TV\[XTYV[cbV^Ze\W[^Q][TQZVX[`]VSW`VZYZQU[TZ\aZZ]\^aWXT]YY]TZXUWUSYWUWZZ[UZZVXYWY`YS[d\\[^SY[YbXXY\[`^`]XYcYTWZWRUT^TXWYPZR^V[]S\^\RWXZ\^\XZaTWW_TY\R\UZUOVT]`XV^UWSWYTWRQ\WXV[\RXWOP]TXYRXX\TZXTWa[VT_WU]VTWbZUP_\SR[VYSRXU]\[\WU_]fUVW[WZYT[W_Y^\]XUYgYZdWUVX^WQWU[PTbWPWQW[YWXP_W\Wc[WXXUXWUUW[YV\YU^YSS^`Q`TWW`VYXXYTPYP]VPQRZ`RZRWX\YYZWV\[X^X[]UaVZSZ[VXV^T`PYVY[[\\iZ_fUVVQW^_VVXVVU\VU_SXT[X]`YUVWcK\`_Y\Za_[\VfXUTaZSMWU^YVXVYZPW^Z[RR[Y`V[X]W\XXOX[`Y\[aYaSYWY^TR`UWT`UWUXOT[ZYUWZWYWWT\XYa^^\WbX_WYXVRbYR\_VYX]QXWWS`XSaTMaRYY_VZR^WV[`WT]_T\V`VZ\ZZWTZ^\]USV\Z[V]`Z\XeWVbXYXdWYY[VWZ^Z]ZSQXTXZTZYYZUU`TUTRQSZVXMYZ]]hPRYYTTQWR[VRUVa]SSYSVV^YZ_X\_T_VRZhZOZNO^TRQZU^OXh^\VQWW\]]LZW]]WTQ_^^ZbS[RU^X[UX_WYWRRTT[TQMN[WZUTRTRXVYXVXTXYWTTY[ThW[]PRWZSY]Qa\RXUTRO[[VVSYU`^ZV]j[UXXUX]dWNW^X[JXPX\PXVYUZ\[\TVXYXV^VaSZQUZ[ZSMX\\\S`WVpYPUSPK_PTYVWZVQO_dSO[ZQSP_TYbL^WPUYk_VTYT_\_O^UZUVTibbOb\QVMXTQWVS[PZck]MXVQWVX\`YTl[VSYSWZ]NVWTPVTRW[RWaV]^VMYRSPT`RUaWUXVX[aXTQXbUR[T]XVZ[S[T`UW[RWKSYdQYWURVeUWWVYZ`ZQWJdU\MXZbUY\bQYWTWZ^XPXUW_QVXWXUYP[TQXLRXYR_RW\^SdWSWUViY[cWTRWY]WbWVPZZ\_NV\U\[XaYfU_WXb^c_WZTUQST^ZW_WXTUXW]_SQWUW\ZRUYWW\WW]UZ_aZYZZY]ZP_U[X_aV[TQ]ZS]`URZRR[U_ZYTWRWY[]WU]ZVWWTTXPRZ]b\UUUS^Zc^W_UV_[\YXYZQeYZS\SUUQRZ[`VSSZW\[T^ZT^]XYWUbbVYZ\X\X\Z]\ZWX_XZ][\XWVU[a^WWVXZ_XQSSTT`\\YZRW\[\W\_RWWbYXXbXZUaQQVV[Z[YUX[[Y^WWX`T]ZZ[ZU`YWWTSUWWUWXY_XVXYZUUXVYXT[WY^ZXR^d\PW`XU]PW][QdV[TYW[QXTY\V^VRVTXWS[^SSYTVWT[QRXdX[\SWS^]VVbZXYT^TVY_\^\VWWUY]ZTYYS]VYXYTV`TTW]P]ZXWbaTRYR^Z^TVWYVQSUZWYQRT\Y]TXVWZXTUXYXTX]YXY`YRWbZVW]]_SUWUZ]WUSUXTWN^`ZYMbZV_XYW\^_WZZXZXXXXWTWXXTUYTWWO_[VZWTSWXQWXfY^YYSUVVZP_XWW[UV^`b`]\\_YcT[W\ZXY[[_W][`VYTSZZ]\\Y][aZQR`YXU\XTRV_Z\Y[YYVWQVVaYWZU`V[UWRXUR]XVYX[`\]Y\Y]]WZ^\[WY\YWYZ[]]`WS[WYXb[XV]\\]`VT[ZWS`YZ[_Waab_Z[X[YY`b\UXTZYUU_YU][\V]Y\\ZYVT[YdZVYXZY_WYSVU[_`]ZSa\Y\^SYaXURU[]V[VYbVS^[\ZWXYYXVZ[[VSPTUUXRW]UZY_XYY`[_]bZ]VU_`ZVXWZRQUZS]X[RXN\YXVVRYT]]\_`\\VXX_^PV[YWU][TWT]ZVXfYVZ_\^SUX\YXTVWQW_YS]XS[]XXRV[QYWUUNXSZWYYWYTVWTWWUcMXW\\XXaU]_WXQ[XV]ROeUTRYU\WVRTVYQZ`RS^TXVP\XUW\TZW\\[aWVVTU_[XPUaSXYShOR\W\YWSXJVYXbZVadX^]PVUQU_\QVVXTYYWZWZaTaZ[YSZXRURRS\RVXVTQPYWY\V\f^WRTa\]UQ[ZUZNWSVUQTWXJXV[LYUWSdQT`ZXN`RUSVYPVRSVTY^U_V_XZWWXXYWZRYPiSUT^Y[WXXVV[ZXeWPcTUQTWOXXPYPZYXVX]^XQ`RP_XTQWYR^]UO[_SUZWT`WX[^UTW[SX\^TYSVMPXUUZVUY`QR\XUUNV[^^ZPSVeTY\RP\aVXV_S[WWWD[WTY^WXXRUYOSRU[\hXVSXSVWVVS[WYQWOZU[Y_UQZVUUW]YQXW`QUXU`TaST[]ZW\^VYQ[X`ZbH^XXfPPVZWW^TX[\WUXWXRSS\_PWXYT`Y^WU[[\WTV][SVXX`U[c^[_UTUSTT[TY\OXYVQUX[[Y]YYS^YYY^QUSVUSWWW[\YXWYXYQ]]Z][^V^PU]_VRUXP[TZ\Z]YZ\ZS^X\Y^YZX`V[YRT\NW^Z]\Ya[QZYU_Y[X`W\TWW[]]U\^Y[YVY\U[Z]WVXXSTZZZU_VY`ZV[V`VXX]ZVWY[T[Y\SS^[UVW[XYZY\VXSUZdXZ`QXZ`\XSTW[[\XURVSZc\WXS[YYXYSXXZ]SSVS\\_c][T]eX\WcXWZ\UW]_T[UZVQ[SY[_UWZ\_Z_T_UW_Y_c^VYW]W[WU\]X\Y\S\UVTTX^RUZbX[TS[[WW[Y_`X[U[`]b][_c\ZQNY[XW]YYVY^RYXUPVST\\WZYW[aW\V]ZY[UYZUZWZYYYXWYVVaUP]^^YWUZ\URVY\U[U[ccW]_TXTdVY^\SXXXW^\WUVWX_\RUX]RXV]a`U^T[V\aYYN[VZXZ]\VT[YZ[]Z[YX]\XY\^X[YX`YZV`]\[ZZZ^X`aR_QX[Z^[VV\XMUZUUX\VZTYXTSW[VX]WW`VVUVSVY^\VZYVJWWS^]_YQ]PXR[[WSU[YS]ZUUWURVV\U[aQRTR][Y][\[X[YYQXZVV[VV[WXT]`_\[c]RXXZP^Y^WTSRX`STYWZb]XVX[WZTWf_bYUST_UQYV[Y[XUZ]VY\\ZSYZQQUVa[YSU[XT[WW[VVYYTUX\R]ZXZY\Z\ZVPV^XRRUZZVUZTWZ[\[ZY\XXRXYW[YVTYUP_V`R]WZ^ZRSYVUXZTUV`\VYVW]UV[X[V]M_QSY\OZ\[SW\VXRS[ZY]P]XU]SYW\TO[[Z\W[VWU]YW[Ub]UWTXJ\[XUQTVbYVXXQ]VYd]XZZ[Ob[\^ZTYVV[WNSVXTR]VXT]YSSY[]YcW[TX\QUOTWgdWYYSWbWVT_iZW^X[X`^TZTZ\TR]UVQWT`WW\][OYTXX]QU]VQU[WYSUZPTT[`gSSR\Y^PZYYVWSX_]ZTS\[R[`QWR][`YQ]Z]ZTQY]UWZVQXZZ]OZ]WWZPYWYTPVSZUWUS\XXW_V\ROXSQSTSZRS[ZUW]X[UTX^U\V\UVRb[[YY][dR^R]TZVSQRWZ\[TZ`X[Q_]VSZVVa`YeWXVS]YRTXTX\ZW`ZW\]UXVXOVTT^TUXWTVZW][VZ[UX]XS^`Y_YUXV[[[YWaVZXcUU]]VNYV^`LaOXTU^O\]V\_WXU\_\XT_\dS\[]Z``Wc][]]ZX`d\XXVT^WYSN\PgUWZX\ZQP[VYUWWcU]YUZZQX_YV[[U[[\V[O`SV]XYTZZ]_Z^T_VVUX]YZSc\X`[V`^U[]Z^XS[X[WXYUVZW[UXN`__SYZZNTZSUQUYVSSY^S\XYdTb\[YWXWWRc_ZTX`YVXSR_X^\P]WUU]O^ZNaUWY_Y_Y^\TUZZPTZf[\[XVX^VUO^Y[UTZQ[UVQSV]ZLZ[TaWWUNW\\WRQU^S]WZ]`T[XXVYYf[SVZXUXTZYYVZTOZ^XVZ_S[YV][TTXXU_[ZXRYTSXZ^S]U[QU[X]_]W[^^WZRS]VTSTY]VZ_Q[VT\TUUaWOXY\QZYOT[SSYZRPW]XNZ`]UY\[bXXVR[WU^XTYRYcYW_\^XTZUZSSURXRZSQXZZ]VZZZZUS\PUYZW\YWYR]U`RRZ[YXYXTWUZVO[S`YYX^ZWVWZWNYW\YVRLMXWU\YXUZWYRRSV]WY[WZV\W[V^RZYS[YYZWYZ_aXS^\PZSWWTV^[\TW\XO\[Z`TYURROW^^TURSYT]_ZUWSS[\URX[V\X\TX_UUT[W[TRXRZVY\Tc\]WVVYWZ^WX_XX\WSURVMYLY[XRYQSX\SdZTT[UXTWUZ[UQ_QT[WXUUVQUZ[[]\R\VaYQV`XYQWXZLZWYW`UOW]]VXS]WVWYQYRWWYVUV^\[QYVUWR[V[UTU[XXR`UZW]T^f_WZ[XXZ`R[XO[^VS[]X[[Z\WP^\T]RYZ]YRaTUa_XRWW[TZ]TYYZUZX\]XZW`UU\Y\\ZUY]XXYYQ\[U]RZR[TU]^\ZQW[NYZV``XTX`V[WWeWZUVTbUQVWVX_[[Z]\TT\ZZYZUUXTY[US[^Y]TW[Y^\UXW[`UQ_SW[TWX]^`VSV^TWZ]\YQ]b]WTT[bU[aaWVY]TXYVUVYQTZXT[^UV^WYXXVTYTYV_Z]TYd[[^\TXX\SZV]TXU_VV]Y\UYY[XVZV_X_[UW_iWZUSVZXYXTTa^Z[XU_Z^[X^TWV[Z[YVWWSZST[WZYUYbXXZYZV]TYYZYX^S_RY[WWZSbW[XUTSW]YSXWTVV]]XW[]WX[UVSV^Y[]WSY][aVX]XYQ\XNXUTXWWUY^]RUV[V^ZYUYOVYX]YVVUVW\Wb[`U^X[_[V]NT`WRVWZVWZ\YWXVVaUW^[Z\Z^Y]]YY[Q\VQTYSeZZYd[Zc[WXUT[Z\]^YW^UWWYW_VUXYYXX_[c_\VZUVX]T\Y^W_WZZ^XWVZ_[_VT_[]WUU][Y[T\SaWNWT\Vdc[^Y\YXWYX\SVYXUXX[]SV\]Y\Z[\`b]X[]eUW`ZW]X\[^W[Z_[OZc\\`[Y\[XOZ^XZ_XY`X^]`PTT_VUXSRWU[VXVVYX^VYY_[QUZX]]VZ\XW_XYR[YV_X\]WW[[b\[Y_^X`ZU_\UVXR]^U\W[WPOVY`^YaVeSXYVX^Yb]ZcZ[WYQ]VTSZY\_]WXO[YTYTU]\Z[XW^UU`VZ\Q[\WWVY\T]WY[SW\\\_Y\WWXWTWSVV[UTXYSVYTUWWW^]_WTXZ`_Y]_\T[_XNUWZ[V]VU[]aYW[[UQUY[Y\TUYZcUXV[SVXWSYUT]YZT^V^QUXVR\VY^\YWT\^ZT[[^`VTYWTXW\VR]\VUT\\d\\ZX[U]Y\YdMXZb]dV\WSVWZVV\_XWYZ`\XU]WWYUT^\\UV_XTVUX]\VaWXTY[V`d^ZXYU^VRURSTSZVWWV\\ZbPRW`WU]\\VUXWS[WVb\[]YT[cWXYWXYWSXUTXYSVTYXa]R`a\[XYVXTVVYPYaWXZVVZXT[`^V]V]ZWU\]S_VSaabSTYV_[bUYY^VXW_QYYUYYZYZT[`SWYV\T`^U\WRPaUQTbZ[PS_ZUbUg\X^Y`[[TWWVY]VWZRUTWO\ZYTRVXUSZ\\UYUXWW[]U]XX^T^R\UVc^X[VeWZ\[VX\TU_ZYWXYVWQ[WVU]VW`YRWVTRaRZT\XXWW\]YTUYY`ZW[WTZd[SX`[]Y\ZZXY]XU`ZUWZPa^ZZYV_[WY[XZUYSQ[W[e]XX[QYVQUQ^XZ^ZZ\SQZVXRUZ[X`]WQ^WWSXV^YRPV]VVWY_[U^Z\WYX[]_T^`XUR\]VR`WZTT_ZYX^[ZVW]VTb\T^TUUcYY[[SQ\_`XZSJYUYV[b[]UXTX^TX][\]^\QUVYYVZ\RZP]X[VYX\^\QSaYZYTXaQTUWV^ZX[]YVU`YYYWU\Z[Y`ZY\W[XZ_WX[SWW]VXZZUW^QYWU_\[U\QP^ZaWVYXT[][VYTVTX]S_XTVTeXadWXQX\YVU]UYXaXZ\YZXZXVVVZS\XYSYYVS\WXXWVX\XXQY[\VbX]WX^\[_Z\WdZXQ][TSU[W[T^VQXVW[YZXWZ\V]WcVW_Z^SbWUVTb]^\U[aNZ\UYSTZ_WW_X\XZX[^]WZWYZYZ^XTWX\V^Td\X^WTW\Z[\]NT\]RXVY]\ZPSXYZ[_U[XZW]\TUWUXZXTVaX_VXXY`Y[]WW`\\WYZYVZYX[UUUZSUZT^\XZ]QZRXW[ZY_Y[XRYW`YWZ]eTVTYUUZ^QSYb\X[XVRUWR\UVRUWP[VT]YWXXTYUR\WXWZ[RS\XW[XSWVYSOY\YTX\Y]Y]WRZ[YUVVZVZZW[ZYRRYYYXUWWUZYXV[W[ZZVUa[^W^WV[eY_SZTYYSYZXYXT[Y]VUaWYTUZYVWYU[^WRYWVTZ_S[WZY_WZVZO[QWU\[ZUTZSYX`[UTYY\X[_UX[^W^VWRQXXYXSVSX^TW[[Y^WYP\VWS^Q]VUWQW[\]VUVY\YTZTVZUUY^RX\[RWRXXRVXfRVWSWZ\VZ[VRaU[WR\^XSWX^aU]Y[WWV[PZ[UVVV`^XbWUZ\WXZWTa^RY]Y[UY`ZbT^RYTUVUZVX^Y`WSZV]ZWXV]\_QRZS_WVWTYXPU[XX^VUSWY`ZYRWVVZTYTSUULWWb]V\Y\^[Zc_[bXYWU]Xe[TYSQZS]TYX\WYX]XTZh[VRRWZV`\RQX[UW]S`YV\YVY\d\WRZYY\PR\U^XUS_WSVVYZX\[[XR]WY]WYUW\Z]UXV`_]RJPWRVS^TQZnRWXZWUYWWYWa[\YRXVR]YVV\^\^ZZZZWWZ\U[VM[O\NYYV`U[R\_[VYWZTZ\\PTQ^WRbX`V[QWXO[KY[WSSYS_V[Oa[Y\QUZRUVT[UZ\_YX][YSR\ZWYb\]U[Z\^__bYN[Z[^SWc\`\WVU\UZUWLYW^VgP_Z]_LRXYXWZU[VWZU__U\Z^]^SaXSTWYQUU\[[M]R[]WRS\V]XYR]XY^VX]Z[V\]\VYVU\QYW^\R[YYWU`YVY[^\QRPJ[XVgV\\T]_Y\X[WY`[UXU^^PPVYQ]VWU`V\RSVTYUR\XZVX][VVVT`SXaVXXVT]]OQ\\STY[T_SWWVVTXYYY\UXUXcZQSW[Sc]YW^eSZbRX[YYZc^RX^SPU\QZWN\WZYW[_ZYSZSb`[XXXUUXV\Ta\ZWTVX[Na[WNRU\VXYYYTTS_[XYZ]VW\SUZ[YXVUUYYXXU]XVWM\VX][WMV]aSYWYRZbRS]TXVb\\TW`YXZ_Y\bZZX^XYVTZTT`UXYad[WZPWYS\U]VXYWXYWYTVYW^ZUQT]WWSYXVTVX`cWPW]VUX\XS\\`[VSXZZUXMSWUUVQ[W]PYWYWRab]RUX`dRU]VVYVW[V[XX][XRY[ZTSXNWRWUWZTX^WVTRUV[a\XSTUPW[V[XV^SS^X[dZ]YUW^U[ZXZQU_\UX[XWRU[]ZR\Y]dRXZ[XTSYUYZfVaZRVZRSWXXRQVTWWYUQU[]\YV[VXZV[YZR\WXYP]^UYZX\UYZ\[Q][XSVWT[[aOXQTXZgZQ]V]\W]WT_]YZX[V_UT[]XVUWVVV]YT[bP[\T_WRVcReW\X_]a`Y_ZXXYSYWVT^[SY[W`X]`YdXb\[VY[`YTY^aV]YUYZVO]]c`XWRXTUUYWWXVaVQ[WY[X\a]\PX[YUVXS\_\YW_WYW\[V\\ZZQ^`Y[^YWV][XXVYYZWb_`XYX_UVZRWWgS\[b\T\VTa]XSVT_SUX]WV[WWX\ZXY[Y[ZV]WVYV[XVYV\ZWWXUSXT\RZXbaYWYUVZ\U_VPR`YUYYXYSZVVPX\Y[WU_RY\WcUU_VS[YTV[TZU[QQUW^YV]SVX]`UVXY]VXXUWRUXZ\_aTXRRTaVWXZVWZ[aZZ[UdWZ`TW][WZXZ]UYZ[]ZYZ^aYV\VWVX_XN`YUTUXXWYVYY^UVYRXXZ^\ZVZTUa]YTW\\QNUZXZ^Ua]]ZX\WYU]QYVPXXdWYT[[VWT\Z_XUWQXYX[VYTWZTTT[STV[TWTWVVXYQ[R[\SW[V`[\UbaXZUXVUU\[WUbVX\WVU\bY[YUY_QP_ZXW_cXZS_Y]WT[XTYWURXXZZ[RTWSY[XWX\U]YbMY]XTX`W_VZ__Z]WU\W\WWRWTVXN[fTUZT[Q\YZ\XP[\WZY[VX_V[U`UYPZZ\WZSTS`Z\]]^S`USWU^Q[\VXX`\QYYXZXXXUTZRZXSe]]LhXZ[PYaTSWXUYcWRb\YWXU[cW]Rf^XRVYW\WUW\VVX\`U\^Y]WYV^XSUTZXZZVW[^TPWWYUV^\W__[XRX]XYWYX_N]T`ZT]_YVUYZ]XRQ`YV\WWW]Z[`\]]\^YT\[\WYUW_[WWV\YNZW\VWYVUTXV_V`aYQ`R[P_YY^TZSZcYZ[XXX`T[QU\T\Y[RRUW_a[ZT_Y\Z\XPXQVYP[QXTXX\WWX_WQZPWZW[[]Q\\RSX^\WUR`WSOXWY\[V[P_XYZZY\RZWPWZWS^YWUVSOW___W`T]WWP[S]PSWZTYWSWWS[ZXW`aYOXXX\_W^WZT]]QO\SQ\[]QYUXPVWTUUXRWRVRWU]RVRVZdSY]VYX`S_]VSPVT[YVTYS[XaY\`ZW\WW\QWYWYWT[[YV]WSZTVXXU]Y\Z_a[[dM[^ZWVYVX\QRY[X[NQYV]VYQXVY\_YZ_VZZWWUXZTW[[WbW_V]_fXW\ZYTYPW^VY__^S][ZW]aTSYWXUU\XXW[XXYWVZTZW[R[VZXYNX]U^YZRMS`\XPZTVTZVRaT_SUQ[VWSR[`a^\UO[SZ`ZYWSRX[QSZQ\TX`]VWNY]U\U[ZVQSZ^ZVUWRXZ[Y^VZWVUZTPVSTYaVVPTV^YZ[X\WTVXU[RW_\W_OWTX]XWTSWSQZ\YVY]X^T]\][WUSQb\]U^^V]QXVTVY\VRWSZ[XV\]WXV]VVRTVUYXZYMX\U]YUU]\Z[Wa^YUXWXTWN_SW\VRVRPYR\XWYZUYWS[V`]ZYUVS\USUaVSW`RWQWVX[]TUTVXU\b[d]cTZQ[`ZUZT]YX[XXYTWWS[WVWUVU]Z\XNQX]YYYURRZQYVVV`SWYXcOQZU_XY[WUTWUX\SVRY[WY\[^`TX^TVWZ\XWaT`YXRXWTZ\V]QXT]VTWX\YUZ[VXZVUV[WUSXYRVU`ZWXWU^^bWP[TX^^XRTXaYZWQZXZVZWTTVY]ZZUX`]\YbXR\[aRYZ]b`VXWXUZYTZ`UZ]W^T^WWXX[YYZ[VX_ZT[^XaTT`[W_RXP^TU\WVT]UWZURT[\UZX[SVXY\XYPYVTXaYW]WYbVWWVYZTaZWX`]XXTWR^XW][\XZUVSU^W`U[]^ZXU`WVST^WYZX]UWXUTZVURQXUXXY]XWWYWXVYZYX]R]ZTW[ZUUYVPSZ\UUYQW[ZYX[V]XVTWTSVZ_YUU\\UXV]UT\WV[VLU[X_Y]YZWW\ZRW_UVY]Y[TWXW^ZWQ`TUYP[^_TV\[Wd\[VZTWU\S[]XZYV\TSZZTaS]WS]`W\QYZU\SWYYVQV_XTWXSX^XbXRZ[Z[XUZYYZX]YWWZ[_TWVZQXTTWaW\VX_abYWY]Z__ZWXVaXZ]U[Z^YS[US\QWV[WYSZXZZY\[ZVXVVZZV[RS\UU^]XXW^`\XQZ\R^[WXZXX[V][SQWYR]^YXZTTZYYWZ]X_T[Z\_Y]U_V\ZYY^VW^YW^UXdV`V[[W^VWX\ZXT`TWQSWYYTZZ[[UQX\^PRZ\[VWYVUZRVbV\VYaZ_XTWXSVOXZU][QbWUXT\Z\QYXYW^_XWU[U^UU[\TT]Y[bZ[UQSXX\[XV\\Y[YYaZR[U_UUYSWWW[dVSPW[ZYYaX`WU^[Z\[_YXVWTVWRXW]cY\T\aY_TWWX[Z\]UTYXZW\SS^\^Q][SaWWXT\^XSWUVUTY^\\[VWRUVaYWUY[\SZ]VZXSSTUT]YWU^UYWZVYaVVYc^VZ[X^UQR[O]\TZbY\ZaW_Y[cT`b]TcQ]XVTeY\\O_`VW]U^VU_`V_[XZVSQY\[UZTYaaYZ]\WP\[fYQ[_R[TXS\\\\Y\T][UUVV]YbVYWXX`aSUXVWWXXTUdSXVM[Y^W^VWV_ZYi^[dUVVYRZVR]ZZWV]^WZZ[[WW`USWWRXWXT]YU[]_ZSZYQU^gUa[`[SX]UgXZZY\[YTP]WT^_XTU[UWXUWW^Z``WTZ^XVQ_X_VS[VXU[ZZVYYZY\YYWZVSOT\UYc]V^XW`ZZUgXQVZRY\SU\]Y\T^UW]OW^Z^V[R]]U\f`VZW[W]QRZY\UW]ZWZTPP\TSPTR\^R[UW[[RX\Y^W[VWUT\ZS\]ZXY]_\Y_XX[S[YUYYXRUV\\W[XVU^YVQY\[_\SWUXXU[]R][SZ\[W\SV^X^]W\Y^ZZZ\Y_Y[\XUZXaSXXXTZ[VVa[ZZ]UWaTZb[XXXYT[SXW^SPXWURX[UT[U\[YY\VX]X[ZZ][_SVVZY\X]]SVZN__T\YZZVXYWSX[U[_ZV[U[\U`\[WU]ZXUYfSXW\XSYVX`RUXUS\WZ_WW\T_ba]]X[^\XZUVSVTZ^\USVV\UWaW`ZVWYQ_UV`Y]X[^VZYXaTTW^W[[]VY]UYVW]XUN_W[Y\ZOTVXVSXXW_]W]YW[Y]SVR\U\^T\U]bXVX[W[WVYaWP`RU[WTXYUZ\UZQ^TX\RZUY\cU`ZZVYWXUZZ]`VUY]TYUZVPYZUQ`][\a]WZXY[UX\YWeZTa^U_\^U\[ZWX^XSXU_\YVWVX\][YTZ^YZT`Z\YUZVVYUXUYPX_UUaVY\S\[\PWTYZVZVYTWXYQ[QUWWWZXXZY]ZZ`YYXZ[a[YYXZ^`Y]VVUUVSaWTXSVVUVX[VT^W^_bT[XYWW[WUYX[ePYWT[S[WWSTSVZ]YVR]PQ^YXVSPU\b\\TX]X\_YRYXPZ\TY]S^]]W\`YROX[`Q^T]V][XYS`VUXX][R]]YYTV[ZXXRXYaT[QXb\[\``SR^YZZ\SYRY\MUWV\YZ_WRXV\Z_WXV`ZS^]_W][][QbX[V]_[TSWX\YT^SWWNXWSZVb_Z]YUWdWcWX\Q`YZW^Tb^`aaW]_VVUVTaYVZVY_]USVY_bP^c\WS\ZTR_V_R[ZWW_YZVY\[ZSTaSXXYTTWYR[YWSZcZbZY[S`]UYWU[[SZZWW`[WZYa]ZZN]ZZSXZ_T[Y_UWZSXWV\dV[TUU[e`[XWX\^YQT^ZWV][^UX]X^\YZT[\ZZ[XU[SV[\WVWZR`RUXZYWUZSUYVXY[\^[^_XZKR\US[]^gS[[`YV\XUWVVUVW]X[TWX^XXUVZ_XUVZVQW[^W[a`W\WZYQTYWS[L]\\ZPZY]XZWY]^YWXWVT[RUUWUY[Wa^\VTVYY[aQ^XVcUZZ\Z]\ZWR[Z]WYeXSY_WRVZVP\Y[YXWVU[XcXWTXU\ZU^_UZZRUSVYTU[UXVX_\ZUY[\T[VZYVRT[WZ[W[WR`PZZZW\]]\TWTX^dWT[]`O\\YZYSXYZ[XXVN[[TS\QZU_X[YVWY[WOU]]PVc^W[\SVWWY[XYYRXTYZ[TW[eTZXYZ__ZW^ZZ[VX`VSTX]cYY_X^U^W\YUVTTQ[\W_T^S^VUVY[\XYVXW[^W^W[Z[WYVT[[UZQUZU`UZYa[X_[SRb_[[[`YY[WWTPYYZWXXRdZVZW_]XZXTV]WM\QZZXT][\TUUZSYUZZXVZT]\VY`b]YUW[WSW[ZVW\Y[XZY\Za^UZ\YVVUZZZ\`UZSYZ^\SYWSX`Y\d[TYYXZYY[WXV[XZ_YTV]V[TT^TWUWX\YQSWZTR\VXWR`X^[YXWY[X^Y[XVSYXST`UZTZZ[[[X]_UYUSZ[SWQ]_bTTUWXXZUWUZW\a`X]\WXW[Y][][WXU]Y\UXWWYTWRRZZ\]V[^UXbS]YZ[VX]]W[UWWVVXTcS\RhbWYZ`UYVX]XZ\TUU^XYZ\[]VX]WZXYZR\V_^VWWZUXV[][[]YZ\STY[[TZP[bPWWQWg\PaRRZYW[TWQVX^\_^``Y`ZXbXVVb_[T]YZU_W[]ZPVSX[\Z]aQ][VWWVbYZPV[VWX]WV\XYXRZY^\eW[ZOR^WUUXZZ`^T]XaY\ZT]X_SVZQUe\VWYVXYXUW]RZZ\XWY^WTO_YRX\W_TUWdWUXa[\WZ_VZ[aXVWXe]\XWXe\Y\[\Z^ZZ\^VUVX\cX[Z^U[L^TQQb[TT\`X[[VYRTYYW_`VWUZQXZY\YWTXZ[STXXT\RY^SQU[]VXVVRWVYaXVWY^b_Z\W[]WV[\UVWWUW]XV_\XOSRZUSV[T\YV^RWQUbZXNXNV_UZUV[]S[[V[UWXVcZ^TYXWSRY^TZSXT\TaWYTTWZ]VYa\YXV^V[Z_RTWSS\`[X]T_[YW`_X_eX\Z[U]\UUZTU[]XXSPTZU\[X\^YT[YZb_O`WS^YU^OWZY[[[\\VS_UUhURS^UaWW`]YVSYXZXZVXUUZRYV_Q_[S_XUUVT]YU[^W[TT[ZS[SbfRZab_QZ\T[SYXWZZ]ac[_SWbXT^ZWVXYT\YVZXY\YRYP[S]_YXU[NY\_Y`Y`T\^MZXTTaYX\VTWZ[]S\V\V]W\ZTTU]YQ[WUTa^\UYPRXYYSYO\SV\[]VYVXZ[ZbWUUZ^YTVXWOWVUSQY[Y[YYXT`WQSZ\[S[[[TV]\U_X^U_O`XV[X]UXWXVQUW[QNSSVV[QYVS[ZY^TTV]S]YTZWUXTTRY_]W]ZVUVZYXOV\WZX^U\VRZWYWVUS[_YUWSWP[WY[VYW[_WYUX`X\Y\Q\[[RZ`Z\]XWWWZRW][VWZZWYVR^X`ZU[\WWY[ZXc`RYV`X\YZ^XYWUYYVQ\URYYS]_b^UTc]XY[[VX\^UX[VYURWS]XYTR[YZ][aR_SYTRRQaZW[^W_Y[YRYPWPZ^]aRQ][[V[ZYWZY]T[XWRQUZZ^\RUXXY^^W[PZUWRYVS\]`Y[YWP[P]YT\WWgWcZVWX^UfUYX^YR^W[WUZTVZVVXVVVY]_Qc`ZR\XW\WT_[[X`VYYVRUT]WWRYU[T]VYUXW[SaVX[WVWaXYXV\\UY]\WTXVT[\VZ]Y[VUWV\^XVUXVWZZWZWXVY]URY[YVVYWU][\LVWUZY]ZQZXYTXZ_\UVTWWYUWZXeTZSQVZY]TTUXQY]XYU^UXQ[]ZWVc^[SWYVYV^[aVXVSRT\U\ZVS\V`X\Y[`TWTVT]]VVWW\\Y^ZXPYUWUZYSXTUXYSZ\\U`VVYU^RZXW[WP^aYYVWRU^UY^\\WXX]\X^X\UZWcXdWXY[[U\YS_TY\ZbYVY[VZZW[X^X]UVbX]STT_\YXZY[WP\MQWX]XZX]SUSTRYXW[]Z]YUWZUY\^SUZ[Z_^Wb\YVS_[XWR[Q]X\`VXZ_VTTZWUWWUQUXWWWRXUUT`N[[[\YSZZ^WW_YT[ZTWTZY^YbUc[YVUZRO_YX^\dW[RZYQ\YX]][\ZZ^[U\b\[ZX\SZV\YZUYTT^WXYZ^TP\WUZSUVS]WUO[[[Ta^TVX[Q]XXW]WRWYVW\XRTX[YYR^SZTVYWWYVQT^ZTReZV_[^YW[P\YTN[aYSWQXX\OY]]\W[[UO_UTSZYVYWWWZXRSXY]RWPVU_S[T[WZYaVY[_TXVTWV^XY\XVZU[ZX[UWY[a[Y^YV\Y^c^[\Z\ZZ^Xe[XZPVVZbZSYW\][fVWRXUU[YU[\YWXS]WP\YWUUQYOXUVTY]T_YYZ\d^X^T[S[VZZIXY`Z]VY^UVQNT^V\UV[Z_Z\YYT^WTRRVZVYZ[XgYYWXbSXW\TSYWZZSVTUT[W[WTYVWUZQ[VTZXVVSVXUXUTW^SPURYWYQYRUV^\U]]_WYT\_U_XYTQOU]Q[V_[\[UXXS_XYV`ZWYZ\]S`X[R]\]\^W]Y^YZW^ZX`\[ZXRWZYW\TTYQTS]WPRZV[Z^V`WSZT\XV\ZTZYWVYY]\[T[YYPXY\bZ\U\XP[SSZYXUY[UUZXXWYY_USSVWSX\]W_ZUQUR\[ZWX[Q]\\aYYZTY`Y\a[`WR][ZVRXRXX\WZYXO\YQUWXdU`[SRZ^XQXQZUVTSUTWZXV\ZYW[_Z^\ZUZ]XRWX[WWXX][UTZWaY\YZPT^VYUWUZXRcOTX\ZL_U\`]S\ZTT]VVX[Y^SRXQ[T[[XWPQSXU]_TUZ^WWV[TVTYWXT[UZT^WVP`]V`VTKY[XYXXPSWSY^RSTYSW]U`VWZZUY^_[VSZXX[UQUWVaS]QYX\W[\XXZXaUZXcXZQVXY^ZSSNU[_]WX]Nca\\\[]`ZTWXZaWVYZWY]^[WX\UT[[STVXZRTW[Y^\`SXRYYVUR_U[UVZ[YXQXZW[RVUQTXZ^OUVWSXQTWXWTWUTTaVV[^`UXT_WYX^TVYZV`bQVPZRXTZPS\VXVVUdZYZVSSZ]ZUX`TN_VYZ]X]UWMXWUXORYQ[YUNTNYPSY[]Y\PV]ZVT^WVeT[P\TSVR\SOP]S\_YVZQV\[X\PVS]ZZUWTZVT\Z[T^TWXV[^PXXVXY_UXYSZM[[XUT[Y`Y[VT`TZ_UWUVUQVZYVZW^]W[_RWPZXYOUXYXYXX\b[XVWZXXY]NThU^KRTZWaTYYV\bRWUX\XVYS]UZTTZX]QS^\ZV`VY[YRZ\[\VWTYPW\VWU\ZUZW[[YUT^XZ[ZZSW[U]^bVYVX[`U]ZWVTVWYVXZ\TYb_XWUVXVXX[WTZWW\ZY\[Q]XZ\[TX\WaW\VUVVYVTT]S^X]Y^\]^]\\[W\W[^UUZYUX]^WY`XUPVZX][YUfUV\UYYXYT]UXTRZW[T][_XU^OYY^^_ZYVYSWUVaYWX]Yb\T^XYX\W]cRSW_OW[WWYPYSUWcXVYZ[SUYUS]_]PV]U\T\VSSP^YS[[\WX^TXYUWUYTV`WW\\V\[QZZ[]YS]XUSVQ_\]]XQVUXW]]ZUXaTRVWYUOU[]U^QX\YYSZ_Z[RXXVU[QYYaUK\ZZ\UPS_^V_Y[S\ZPRZR]XR]\[UZS]URVXO]SXVTeWX[YU[UZYYV[UU_^I_XWV\T[V[ZZZ`X[YX\R`YN_\V]T]^aW[X_Uc\[X\Y\\N\\Z_kU]ZYUY[TSSYQT\[^UUZUWZVV_[Z^WZXUTWRUQQ^``\]YXaV\XUTVVRUTVX[P`YRWXaYUdSU[ZTZcX^^XZY]ZW]XaVZY[X[WQZ^YUV]UVWN[bReWT^UQ\TXYSYUR]YZZ_dVUQZSTTMXV^cXWWZR\\^W]STUNXU\SVXSYaU^^XYOZRfbV\^WYY\W\ZYX\Z^[ZWZa`XWW\X\XcW]VVVWORVY[Z_YTP]V[h[OWYZPX\WY[ZUXZVPXXYaUYXR^]^RV\V\WTIY]YfRb[WYYXWXVU[WPYXZZYY^`W[XVXVTV]_V][WXWVS`ZUTWT\[W[^M`]SRTY`ZVY[QS\PTV]VV]ZZWVdZZ\TYX^^ZZT[WWUUXW[SZXkW][^ZV[^S`W[`XVXTXXUYXVZ^\\Q[`WUUU_Y[X^Y[U^YSXVZ^P_VYY_ZT]YXZVWWSXWTW]Y[TYTUWXbTST\YS[Za`]ZVWX\\YY`WZ\V[[[W[VWSUYZT\XTS\WYUQ\\[]SZOZZQVYZQWVQZRU\UW[Z\[XV\_R_Z[YY]ZZS]O[\\V]VWZ\VO\TT\`L]VUVWSZ[[Z\ZVVTUT`aVWV[bQX\Y^X][XQUUVUWWXYZ][WT^VUVVU_[X\V]WUTY]ZSUaZYW\Y\Z[a[UTXXRaY]\RX`\WRY_U[YWT\UWWVXQXVT_TQV\UYbS_QVPWZZZ[V_^ZVYYV\R]UXZTZM[\XYUS]QW\SSZWWXXd^VT[UR_W_VQ\YY_ZaW]UUVZ]Y_^Y[[V\V^YWY[RYYUYY[T^RW[Z]QYUNRXZZSVZ^V_W\PW_Y[]XVW[`WaZ_`[M^\[UNZ[UZQYW]VXV[YTYXY]R^XRYUaeYXVY[XTWR[WWWZVUUSa[\\`VXZVV^]TRSU]cV[[UZVY`V\X[a^ZcYTPTZR]VWWZ]SV`XQWTU[U][WXWZ][_Y_YVX_[][TZ[V`WZW[\R_T_ZZS[ZUX\T^WX\^TX`U[V\V_ZYXWZYYUW`YU]ZPXRXTYRTVUTS]XUUZXZ[\]^VXVW\YTN\SRTZV_ZXR]X\WY\MUX[XSYTXQUWY_^a]UU_[VZYaSUT[VY][VTWVTYZZWZ[SVVT]VZZZYWUVVYVVSZ\][VZ]TVU][[ZXXTYN[XXZZYXRYXVXXcTVTTUYWS[^U]VYXWU\`YVUSYTRU\QS[[YS[_\UTVUXWRSYQ^YXWV\WdXXWZZXVVWVZWXPZZS[WXVZYNVY[[WXXUUURSV\UVTTUYU_YZ]U[YU_TcYXbR[YTY[VWY[XfXVVZRVP[TVOc\]abYMWaZ]]ZPX[Y[W[WTV]_cVV^SRb\TT[WSWT\U_[VW^UPTZ\TVW[TTY\]YUSXPYXXVWY]^]`WW^a^\\_V[_Z]\YUWX[]XUVX[[X^UZ\TPOSYV\YRYYYXVV[`[VYZYXWTTV\YTX[YX\X^PVW^XXXSYWb[ZSZXY\\ZYRWVR]WZVUV^W]^_]TX_]RZYZYO[YWVV[YTVXV[[^`YYXWPXZVXZXRV[VV[U^_WO[W[UZV`XU[W^UX]Z[UZZg\YZVU\\YWT\dRWX^XT^Y[_YUYRWQX]SU^TZWVYVSZYfUYcU\UWTWYUVYV[ZUXZ_TVTQYTU[X^XVYeWVZabfZWUX\YZLRaU[\TUY[W\Y]VXZZ[ZV\P\Z^\X[^[_VZUUPPh]WU_UP]eZYX_YWVd_VRX\YT_U\ZccUUPYXRVY\X[[^\]^\QVUWVWVXSSK]]TUdWRV`]VWdb[SVXW]W\VPYUXaP^]\XY`^WbVYW\O]VT`\[WYWW\YdaVYVVTSZTVY]aZRVTVUaQXX[RYZ\X\`SWTS\]YYQYWS\aWXWVVVaUVUUTNV[WU\RRRZ]X_[^ZZYWVR\]U\YUTUUT_SYZ[[^[YcW_Ud_VXSVYW\ORXX]YZUZ_[WZYZ\W[[\WYZ_U]WYWU]UUX[eV_WS_U[SSYYNY__`T^^YZX][XY\UZeWYX`XVX^`TWXaUYWZZVdV[\cS]XUaW\^WWXXUXa_aW[XRR[XTeUPX^[XXdWVUUW[ZRU`OZV\XSVZ]VTY^_\fUbfZ\dS[[^YQUVWZdWVSZ]T[cZ]b[_]_aTWTS[fUWRWPW[ZZUYU]YWZ]OWXTX`bXW_UV[[]`VWU]SZZZU[aW[\WSTWZ[_Pd`V[VQTaWZT\WYV[W_W\WWSW[[_bXZX\\ZS\XL\UW\VR]T][WZa[VUVYU]VXPY[XW[aVW[[WPUWUZWYWT\bTTUUWTVWSZVVX_V\^S]ZYZZV^YXWWZUVUX`YTW[VZX]U\]YXcUYNT]UYQX\]UXXZYXWWWVW\VSV`PZXYZYY[`SWUWW]TXOZ^PbR]^VQW[VP[S`XZZX[XT\a[Y]QaVW[[WYOZ_S[b_ZVY\]Y[XX^U`_[[OW]]XjXUhW`Z`XQSVR]UUZVVV\VZVXTU\VV]WZ]Va^YWRO[UV[Z^XfZZUWYaYR_RXWU]\ZZSZXU[]VWbS[YV[a\WM`YVUXVXZU\YQX]eXSYVbX^Y[WZ\[^PVX^VP^XV^VZRY^_YYWXZRX`VYXX]T\RVXXXZVUd]SU\TWXTYWWTUXSYTZR]ZYc\WUZOZciTZ]WWbT^QY^WUXbXYZ]U_Th_T[VWYXYYWWcYRWY\X[WQX[ZWZZ]]TR[WTTZZYTNWPU[XNX_R[WNXYQYT_YRUSRQYUY[^\WUXV]TXZ_aY^RT[WZRW[XYWRWXU[[ZZQ[\NWTZWOY^]U]XUV[YaYcQZZXYZ[]\WTX[WYUVR]WXSVTZUXW[VY]WT]T]Vgi\`XYPX_bX\PTZWXXTKX[U]c[WUXVR[UX^WZW[YYYYR]WT__XX_ZU\[`[X^QYTXW`X[U]]QT^WTZY^X^URVZXZW[S]Y\Y[PXcUY^ZW_Vb[U]UYUTZW\OZW^V\T^\[X^WcRWZ]X]VWS^XWY[TRWcS]R^XVX\YTTWP\\_[YWWSSZUTZ`[QTUX[UW`YZ[XZUUdeZ^Y[XVS\Q[XW]ZUWX_YYU]VV^eUY[WTZVV[UVV^VZ[Y]`XXa^Va]QWYTTaRYTSZYVV`dUX[ZU`V^_Vb\^Ua_ZY\R_[^XWU[dNLVXWYiY]TRSUWUY^PWY^^Y_X^Y\Pa^TXZ^Q[\XXW_UZZ]_PY[WWV[Z_R\XUZXUQ_Y`\ZZ_[^[VZ`UUQUX]T[^YXUXXYcY]VWaaWYZYV`[X\Z_TZW\V_dWXQYW__YST`]S[RYVbUWaXU[\[^WSQS[XRZ]JSTc`bRZYVY^[[ZXVX]XZ\[[Z\_a^X]]YZeX]RQ]aVeWNUSW[YZ^_Y\X\YRVYRUW]WZ^SWYSO]TMZZY[W\YST\XT\UYZ]XV^UUWc[^WWXZZWY]VWPUX^V]X`\\a\WVRXXU]UXXVUZUYWW[XZ]UWcUWX^YQYSR\]WYXYW\`]`[_URWX_cZWWaV_UYRUYY\b]NVW]SZZ\Y^^_[R_YWST\]ZZaZ\WXR^[VYWVT\\[XWU_[\\[XW[_YYXZ\Q[PUZS]VXZUYX^[XY[QVT\XSX_^XX[ZWaUZXVVUZUTS[VU]^^^W[V\VXS\bXVYV[]S\Z^URTROVTZX`]aZS\RU]YWY_U[bYbUUPXWYX^Y]TXV]W\Z\`UY[[TWVVYTY\bWRQZVVTU^]UYZWYTXY^VaZZbUYTS`ZW^SYYXeU[VX`[VUV[_WRSVZYXXY_U]_O[TUaYTYa`YUXW\[\^\X\YVZ[Q\WSYTWS`TWV\Z_VXeX_TXQNVUTYWYTWTa[SZcOWWRUVY[WUVWZaWZ_[^WXXT]VX_WOWYXPTZSV\ZS]c\W\[TYUSOXS[\aYTVU^X^_X_Y^[YZ^LXVU[XT^YV\\VUZYVUZV[\\VX^WVYX^X[XX_VTWW\US\\YZZVVXbSUSTRRR_ZSUX\ZZV[SUXV\S^TU\^SP`VVZZV_YX_^XVZWYYTSY^Z]Z]UX\]ZVYZQ^Y_TUU^SSWW[WVZYVYUVYX\PX\^c^YUWXYSQ\SZ[QaWOc_VY\VV^^\SUXPdWW[ZUXZUV[bXVVZ\^\Y_V`TZV]]WX\XW\Yc^WV^_V[ZXdUTUYU]Z]\\V[ZU]^QcV[Xc[RZZT[X]YY]ZY]R_Vc_`XU\YYYUTVX\\YdYSY[YZXZ`cR_X[XWYdWYRZZX]dZUZRX[`[_QZVUXXQ[SZ[[Y\[ZS^\WWaWYYVYXYPbUX\O^]`NWSR\PVUVQ[`SXeZXX^iVUXUXW`]YXVVZ[VU`[_^ZUYZZa_V]WVYZWWV[d^YaWY\Y^W]VXW\[YVW][]ZUTXRVa_X_XZ[[ZXWV[V\M][b^`]TW\`\YZ_W]R_RVVZTZZ^Y][XV\[\VUZTWY_S_TTXQX\TX_\TUZ\RWYaT][UU[]T[[\^b\[\SS_YZ[XcY_a\e_U]YMYT_VWQSYRY\]^X][Z`GR^\]Q[VVYU]f_^W_W\UYe_XSe`UaV\]^QVbWURX[\YVYUZg`YYT[^]]VbZ_WWRUY^]YWWVS\V^XbWY]UZZVV[QUXWUXSW]RXXUV[^R\S`XcKdYT[WWUY_[XTUS\ZPTUZ\UYZVQY[]Y[URW[R[cXeZSXYYQTWYWWSTYTWZ\VU\X_X_STYWRW\]^Y_[[YRSXT\\UOV[T[VWVXWYV]\]XTbPZ]U^WWQWWN^^WZXXWYZ[U]Z\WWUV\`TZZXU_`V[UUVXYVY^ZY^[\[OQ]ZT[X]SVYYX\aQ\XY^\\Z[O_WXZYW^W`Z[[U]WUW^P``SVcZS[Y]YQRVR\VZ[W]]WVZQ[U[WVV]^^[NXXZS[V[RYV_`Z^YXZVSZR[SXUTWXU[YY]Y^\^^U[[[IZ[VaZXU\WUcYVX[XYTZZZXZNWSdZRX\WbZP\][TS[TX\SUZYWX_WZVU^UVVZOZ[TZ_RVZ]]WYU[UXXZWU^\VUTQ^VSZUYU\TU[VU\X`]WUXYYYZWWV]OTXXX[PUTXUSTYY__ZVYYTYUVT[W_TWXZ[WXVQTT[QgZWVXTXV^Wg\[VRYWWRUZSPWY\[XZZVU]WRWXV]VV]ZU\W^QVXURYaVYUZS[\\OWX\X[\YUZRR`]VXb\X\T[U_bWcU\[[_aXVbYY[ZQZQZ^WW^X]WaYT\ZU\XXVYb][^RTXVV[QU\SZX`WU`ZXUUSUY]UQWVZUSW^Q_WOZZZRSZ]YXUQZWY[]]V\RVXVZ_YVZZ[UUQWUcRb[dVWWY\Y^YTSYP\XW\]TV\`]^S[Y]]]SVYYSZY_R\\^UV\[[S[WVWXU]]YVVQ^\[W[`ZYaST]V\WURZZYMXV_YZ_bZW[YVZ[URXUZS]SUR[Z\UYX[UWTUX\UVY\RYXU[TVX^XS[UYVV[^YZ[T]ZW\UaYXaYVUWZ_[[UUXWQ^SW\dXfT\WS`[YT_TRZ[WZZaTYUO\R[ZSWUSaYTUY]OVPZT`V^YN]_^_VURX[V\\ZZXZ]VOW[[[TWTXWSW[Q\U]TS`WVZTYVXUgV^WYX[ZWNSXTY[WY]\TSQR_YSRT[ZUR][T\X\[R`WWTVXXUXU]WUYQUZ\\S_QYbZ[^YYT\\\_YU\ZTUSYRZXYZT[ZXR]a_`^U]WWU]ZWX\ZW\VTZTY\WS[QXXONXZX[ZUXVVR^]Z]]YWVT]WX[WUVYWVVQ[QRVUVVZZZQ]V[TS\UXU[RZXXY[Z_^WT[WSWVWX[VV\]RXUTY\VX[VXZZ`UXTW\c]XXTYU[SbQ[ZT\^SYUUWZZ^\[V[TY\Y]Y]UYXV\XZXUXZ^VWWY[F[[U]VXcRVaSYWaY\URXT]\TS\WWX`ZZZZV\ZYVV]Z]\VZYYXVWd_RUUVRbZSSUTZ\U^SPV[WUSRZ]YZYbTXVUXUYXRYRU]R[UVVT\U[\YWZZ`[`RVTYY\WZUKVUWYOZYWSWXZU[^WVUUVYSQ^X[i[RWQVY\WSXYTV^_XJU^N[[SYVVZTOSSUW]kXYJTTfVN^\TZVYgcWYR\OXYWIWN_][WV\_ZX_SZZT\RXXTW[OQVVZU\][YRU]U]TZWU\WW[\]ZO_SWXSQ^k]W\RYW\X^_VVXYY`YR\UbPUQWVXZW[ZsWTXPX^]ZST`bWTNXR\VYQZT[TVSWZZ]]`RVShWTQVUaXXV[ZahVSQVjPUYZWUQKVSPUn\[SZa[N]SRRYYMQ\K[_TVSVgTXUTb\UXZaUWWUcYeO^\S^XZUWXPYURV`fcPXQVX\Rb_U`jSYaVS[ZV]W\SYUUSRXSW_ZPTWWMX[XX^TXmaX\ZXTWOVL[cWTXT_RUY`U[WUWU[[_TP]]WZ\[`]a[[S_TR\_PQRZW[\ZTfWRWRZL[TYY[Z^XSV]XV[X^QXSTP\[V\U^[UYVW]WZWXUOZWVScTZSV]W]]aWZXY]XYVTYZdOSVTcSW\]YQSPXYVZVTVWYYV]UZYSXVRXTYVNTU]]`[WZWVZ`V]XUUP\Y[ZSaZTVXXXY]RRZWZVY`XYUZWUQSVZYXXY`Z[V\bQ\V[VXRXRYTVZ[\XYV\\PSW\XWTWVUYVW\YVZX[X\V\XZ[VXWUYZR]`SYW]RX`UUYXTXUWW``O[XY[SVYZTYOT[\X[XXYXUQYSc]^V^UT[aSR^Y\TTW_X^Z][XY\U[]X_TWZZVTZ]\RWW[ZVWXMT\Y_Wb^PZW[XcTZTWY[Z]`[XV^R^_U\[ZTWVWXRXV[b\TQWVRP_U\]VY]`[V]VV_]SXa_[RY`YZXVY`WVZ^[ZYYZSWUZX[WY`]^\YW]ZZTU`[^UTVW[QW[Y[SSU[aVYV[ZWUWSWY_YXVXVYZ^_[`YYWXYZWc^ZN]\`SYZ_VTW\TO[WZTd^SRWYY^X[[Z\]UN^`XN]USV[UZW[VTWWZYXYQZ_UV]\T]YR\bRVWS]ZW^ZW]S^]XVU[]RWYW_^^[UYU_YYXZZXbXVUN^ZZRXWXY[ZUc]V\V]RXYa[\W\_U[S][SZYUZQRU^aW_O_YRXWTVW]YS^[`QVUUWYVLR\\STZWWbZU[ZW`PSUSW[\Z^XYXSQPWYd^ZXV[Z]\\[_YZYVUY\Z[RYUPTZbe\aXYUZ\][SZU[T]TYYSUXZdOaTT\T_]X\YZSR\RZRPVUV[YS_[\YZ[UW[WZZZR]\X[aSWV`XZU_\QU[UXV`\VT[LY\Z[UWU\Z_NWVYXSUSXX\Z\[OUUW`^UTYW\^YWWYZWSYX\PVSYXX[[W]_T\^YYbY\U[TfRZU[^ZS`U[_\U_bYZ]YSXW\TRU_bYSVUVUUTXWXQXT_W]c[]^S\YSYWP]]XWYWZT^YVUQZ[XPVZ[XXWVS^[XV^PTT^WVdXTZ\ZUNUV]VVQ^YUZY_TRY[_YUcW\WTRQWPVVY[YXQVUaZZZWVT[WX\XUURYZM]Ya\W`XTYdS]UXTYX[bXXaYUV[Z_UR\VQSbU^X]RX\eSVY]^ZXWZ\XUTS[QV\aWSUXZ\RXY[[TUU[WZ\S`ZWR]QSS]V^VTRX\TYYYWYXWS`TTXZWU__\WQV\ZWXZW]YYT[ZZSS\WWSWg^[ZSVXWSY\\Y]]YZW\W^V^]``X\ZVZWY``WX]YV[]WaY`aWXY]TWaZbZU[WZYRXW]X\VXTZ\^UR\[ZOYWSWU[XZVTX\ZWV[W^eV]eWZTT^[X[``^TWVWWT]\VTUYZ]P\VWSXcY^Z[Y`]UWWZQb]S[\ZR[U_]]WVUWXRU\XVTZYT\[_T\UY]a[VRZeQU]TUZURUZRWZMTY^SY[\VTYRU^Z\V][[W[ZRX[XZ`TWaZ_VU^W[]\Z[Q]XXUS[\V\Y`QU_ZVZRRZPZSTXWYaV]ZTSYTbVZTV\Z]\[U]XX\_WZ]]X\]YWRZT\QaXZX^eVTVWX]ZVaX^QUYWThW`WSZT[]\XT[TW[\SUUT]XQVYTRZWXUaUV^WWOTVX]ZO[Y]ZQYXYYXWZYYXZVWXTVRPYWVW_TWP\^aYY\YTZUX]TWVY\[WNZ\ZUXXXZWV_W]SY]][UY_TXY[YYV[ZVUPYQ\U[YUXYTYZ[WYYb[[Q\]]TTUXWXWRUW[ZQXYZaQVYNYUX^U\W^WXVXTZX]UTWT[YPXXXQ^aS^X[V][YXX]YP`WZ^WT[X]]U\YVU\eQXYS]XYX\XXWgUQXXX\[VUXV]bWYVaTWTS_ZUXWbUYY`eZWVTVYRZ\]c\X]\Z\]T[a\_]U\]STVY_^U[YT[TWXT[\ZXZY]\ZT]Z[ZR\YVWQWUY\Y[^X^^V]_VSZX_U\VY^^\YWV[Z\\XYaZ]^^dOZ\^VPS[X`VWSVW\VX[YR^aT_Y\W]`UYTXUZYWIVU\]YUXW]S\T[`^V[YWX\_U\\SVUYWbVZW]O[XVVZU^VX[[aYWVTWVVTO]^eSZZbV\U[U\WUV]XTZWVWcUYVeU[[Z]WZYVVWZ[^aTZUYVWTV\^XYQ][hUVYYZV\[N`\SWWhaPYZ]Y\ZYXXXPTRXX`W\d\SXY[][WYa\\WVS[Z_YVV\\Y\WVRR\W`]cUXTVS[U[XUYTSZZYWSZ^O`YWX]UUa[RWXWa\XYZSWYWX\WW]Yc\XZVT`U\UX\UWV^TZ[\S[WYVXUZ[Y^`^W^WWTZTTV[\[UbZ\\`Y]XY[_SP\XYc[\V`UW[ZMU`WVTYZ[_]dd^P\WdUWOW]Y]OYYZV\UWYT]aSTVUT\]W`[^ZaZVW]V[\YV\Z^\]TU[RXVUUW][YUUXWWVVT\UZVXSWY[\Z]XQZV\[UUYTU[[QUR]WXTW\YWXZ`VXWcSU^bbWYWY[SV[XVX]RXXUUaaZWXVUNWXTU]\^WXVVUXSUYUXWXYVgUW^S\[VYVUV\Z\Z`[TV]W\]]XbYWUSX\ZV[WZZVleRZ]S]XYcRYeXYQW_XZcTVW`U\a\X^aRSWYZ]UWQY[X[XYVUY^XZT^]X[[]Z^RXV]VTQ]VYZVY_]\XVY]ZVXeh[Z^QbRY][_XS]QVY[[S]M`WZ[W^RY]XZU]XY[c[ZXbXQZU^YeQ[Y[]UZUXZW]WV[UXZWU]VYU^R]TQW]ZZVdWUT[YWZX]USV_^QUWY]X[XYT^W[RYZXiV[UTU[f]T[UZWZ[WZPT[`[ZcX[X^aZVbWSMScZO[aTWTYSTXV[UYXSZdRZ^XU]YY\UZSYXWZULYV`N_Yg\XQWY_UU[aUXY[^T[]YUZSV]WSXTP]XWYQSYZ]VZU[VT[WMRXYT\]_VXT\ZTYXXZY\\XR_SIW\TXSS]XW[MPU]TWTYSYUWWYUXZW]TZ\SVUUXVVV]P[[XVW]T[^WSV^Z_[ZTXYUT_XVWY[ZY]XT]VY^WUTYZV`^YXU\VVY^VQW[a][QX`\`YX\_ZTYVXUTNV\TYYWZXYUZSXVZYVX[]WX_SWVT^V\UZTVVQVY]XWX[XZT]YX_Y[^c\[W][RYPZ]ZWX[VZWSROVVRX_Xa[QZRYU[Z\[\]Y\ZV]XWWWW_U[\T\`U][]\YUUU[TZX\_^Z[TYXWVQSZYYSUYYXSV^W_UTT[PWXR[TY`WQPTOYZVScWS^\W\]V[Z\Z[[PWY\T\UUZVYW\WUR]][WZSVZVZSWRQ[]NXY]VY^U\WWVZV]WWXYXP[]^WZaYTSOYX[Va[SXRWSR]OQW^Z_ZWQ[UZYTU[VWZ\^_VQTTV\UZ\\WWWSYW\QXY]QV\Y[][JcVX\XTVUZYURUd`X`YX]ZVZLYXTVTU[Y[]Z_]_Y_U[\W][WY\WV^VZYVWZVTZ[[XSY^XNVYUQ]VR[[Z]ZWZ[OUXU\OXZSTZYTO[^VUWRYT]UUYVYV\VWY^V[RZU\TWT_U\XW_YX^R[]\YVYZ[XWV[[TQY]Z\\VTYYYY^RVX\OVQ\afY]\YZSZYXYVZa[VZ]_]\ZUUNU[dPZRXQYXTVZXYWY[UVY`VWRXZSSi^_TcSRLXWY\a\a^S]OS_ZZZRZiXVZXWZ[^YQYUXQ]WSX]ZUVURWWh^^V[\VQZYY[^TPSdZUUUTRPSXXSVUVXVZX\\ZXYSY[hZV]Z\UWV`RSU\_]Z`WU^ZXW[W\_WWS[\X_YU[eRWZZVVVYYYVO[_]bc^\XW[_XT`\[ZdZ[WXQUUaZgZYUUXZTKZUYW[VRWUXYVXRVZZYVUV]RTZVZWW\P`WV[VY\XWbW\Z_W[X]Y_SY]VU[RV[YTT\VYWaWUVX\SUWNQXU[UPWQ[WW][][RRWU]X\^YEWXVZWVTV^U\]V\UVPWZ[W^WWSVVVSSZXWVYWWZWZ^`TT[SX^]TW`S]TXTRXV][SX`POaWYVY\T]`ZQY\W]QZ\UXT\][VWWYbZTaR[XU\]UTXWX\ZX[ZV]Y^YY_RS_WVU[YSS^VUUTX^\]XZQW^\N\V]YW[YZY][ZYTURV]VZXWVY\PW`a^ZQW\WORV`Y]VUQUSUZZUOaY^ZXXVS\[[YT`UXSRRcXOYWV]W[XTVdX[XXW[US^V]ZZX[]T`]Z[[XUQWUXWUZXZ`Y[\XXRRZ`T[fXYVT\SWUbW_\a^W]ZY_VXURXVUY\ZVZ[X\ZZTTWRWU\]ZX\UUY[QWQV\[Q`SU\VbTZVWTWP\[_`YaVVQOVVQ^Y[[[Z[UT[ZX\\UW`UeVXYVZVYR_X\WU\_`\X[V\\VVWZ\VU^WVV][fXTV]TUZRW]Y\U[[WVZYUTY\SRYU]U_W[^\Xa]][YS][`^YZYaYZWX]^UMX^V]ScZSX\OWYV]]XZbXUR^XX[VTVW_ZW\c_]ZZU]TUYX^VR[SWeW]YVY\WY^[VUYVUWRZRUVV_XV_XYV^WZcRVW^Y^aYY_SWWWTVW[^XT^Y[^Uf\[\YQ^^Y\U^]WX\_]^^Z\ZZTW_[XOZYXT_]RPZUX]][WV_Z^X[[TVd_`\WgR[MZRae\VWZ[X\^SURVSWTXaVYYZ^Y[YTXVY\UW_ZZV`ST\XYTZUZTZXYSUW[XU[_X\X[YQWUU[Wbg^SYYWUWUZWZW^WZVUXVYZUZ^]VTTSSaQY\WScXUZVWXZSXUSURWZUXdV\WUQOV[Y]TSYOTT]YVaSTSW[S`U[]UOZZZYXWWWP[T^RVS[R`W^QRWeYTVXWVUT[XPUWWU\^U[T`XY]b]U]YUTX^UX]WSZZ\WVaZY^UVXYXZZX]WVYWXUdOPX`UY^VZWaVV\WX\U\YS_YWXWWRZ\QYUOYU\[YXX`UZVUTWXZ][UWXSYW]VaS[[\VWXZVVeVT]VZ[]YTYZW[Y`\[Z^YV\QSVTPZXWUbXZVVXWX[U_`V]STVVXWZPX[Y[VQ\ZPROUbW^\WXXZW]ZTZZZTWS`YR\\[W]ZRXZ^VX\_]ZbW\[WQ\X^^UZ\[\]ZSYU_\SaXYWW[PXT[_T^[[RW\S^UZVYW\[bUOYYTYXY[fX[USP[]WU`ZY\UZRXWYUWW\RZ[WXY[WTUTY]W[\\]WTW][OWa]SWX]YYVU]TTP]RUXTXZX_V\TYY[[V^[XVUUU\WWY_XQRY\V^WXXVWWU^VUWW[V[]\TXTQWZ]]TX[QdVVW[N[W^`^]V]`X_cOYV^TT\^R\[R[]WTWZZVUYXPZSZYW[[]SQ[V`\VXX]ZW][YZZRXUXQ[XXWY_\X\ZSXXRV]T`ZXU_WSVbV_TQZY^Ya^]\fXMZWZ[]^c_ZY]^R_OY\S_WXV[ZVYVOXYX`[Z[TW]VQSUWZS_WV]TZ[[^\YUYQYVZZ_UVPRY^][b\gYY[YR[YTZ\]LYWZPYYXZ\SVTZOM[VSW`VYQZRYYYTVQRNZ[Z[RRZX^YVXa[VWWSZZWVYSYY\VXSYW]QWWZW]dY]XUYXb\]U\QXTSQYaZSS`UV`YaYZXVWSaUURXRYVVVT^ZbUU[T\RS[U[XXVYZU]Y]`OTR^]QVZXZfYXZX_UW[]U]YYZSX[UUQ[WWZYZ[c[WURRZZWOVSQ[SOWT`UYOYPVYWRXUOVWZVWWUWNXUTWWXTT]Sd^XURKUUVPR`YWX]QZ[XV^XR[YVUTXYZ[TYYV^]^[TXT`b\XRZV\UUYWW_^ZVgZTYYi]ZW^ZXZ]\[XQZWS]VWYV`SW\V^`\\[XW_]ZRYW_YWaXW[WQYWZR]`WUYYYIZXQ_[[U_QW__ZQYTUY\\\]`YQU^W_WSVWQ_U[Y[UU[ZYW[UTV^Y]W]]XZYYYd[U]\[YTR]]OWUaTT\Z[\]QVS^XXWUW_]UXg[UPVW_S]Y]YT`S`Z[]YXQ]]WYYYbX\XXS^T][]XYRS\R`XVZ^RXSUZTVZWTW_STZ]ZKTQ^WU\VVW_VN\^]bYWXSY[X^WU`VX__YWUWRTV[QY^]cWaUUVYTV\X\[VUVWZQ\T^SX_XcXRUVTSZ\YTZW\VYZW`VXWWVW]SWZ^TYYXSX^\\d]VVZSY[RZhRXXV[]^Y[[P\PXZWLXV[cW\YXVhVU[V\ZXZQ]SUYVYZYTYWOY\R]WT`MYYZVZWXYWYTWQaU]X]YWWX[TWQW^XY\S[V^dZUY_eMOUVTXQV[YX[Y\V^\][\XU[VWT[\Z]V\Y]ZWWXXVUVVU\`[VVZ_VUXUYWUW]XYU]ZYWY^UZaS_^OW]WX^TZ\SVSV[\^YNUZWTbVZPP\TX`TUXU\V^TRTSY_YYXWSZXYUcUX]\]X_`]_^\[\V^XQ_Y[VUUUSS\W\ZbWT\YU\_QZVXVUUWY^Z_UcYXV_YS]X]]_^`ZTVS\WXVTYT[\YPXUYU\Z\S_dZVVTTZWSTX\XQP\WZWZV`[aUTZ\QZUYR[Z^WWRPXRYVW]ZUZ^NVSZ]XX_ZZZ^X[VZRZW\\XYXRXUSTY\\X\ZYTVW_\X`YRXU]XPSS\eX\YWcW\XR]YkQQZYdWS_NVV^ZZY\QV_VTVU[ZTXU\XVVVTZX_YZ[_OZT]ZS\[`\\YV_RT\[TQVW_X[TZSU[OTTVUT[_\]WKSZSZ[Y[[V\SSU\TWX`SZYYUUWVVYSW]XVG]VW^MXTPZMU\ZWRUZS]U^]X_XTZ\Sa^WQWRVaYW^X[WTQYaVTYYWZ[VY\SUKYVVV^a]PQYVTPZYUUW\\X_ZSZSXUYZWYSYXSSd\Q][UXX[Y\XVVVV`[[V_\XT_]S]XTVUUY^UQ\[RTSWSTWZc\_UUYUUYS\^T[RXWc[ZPZQYQST_UWUZ[TX\Q]YXWXdZUVUI]XXU[SV[VVXW[UZZ]Z^]VXUT[ZUUTVRT_PWYVaSX]VTU\WW\XWT]TdVY`YLZZM]UWV\TRVYZW^YU^^Y[TJ\Uc[Z[PTWN_T`ZWaQ]_]b]\OWY\\XVZVU\YUWZXP\UZ\Z[VUXUVYPP]Q]TX[XZWbSWZZY][WbXWVRYQUR\S\]VTWSUTWUVZVU^SZZQMY\XTN__WVOZQV_^[W_^`XVZVZVRY^STQ[V\T[\X\^]XY[ZUV[V[UYVMXSZbQX\`h`Y]XV^ff[X][[TYZOZaSTWOUYUZ`V\RWZ_S[QSXU`RYZVUVVcZ][XXUZX_^Rc[_TPW^`Z\[UU[i`TTVUSVWU__YW^YWbSTYZ[YWZT\[X`[iWPaV[RYWZWWUSXXbUXYX\YWZQVYZT[aW]VZUV[SVYXX_X_V\TYWZ[XX]V[U^\XVRe`QWZXXb[P_X[YYRJYVV_Z[\TU]YZ[VZ[]\QTX\XZbY[SY]WT]eZVU_PT`Z_][WZ[ZXRTV[]W^R]`W_[\^cZYYQ]`OVWSUXU[PUUZQ][f_UcVV\bSZV]fZTUWQ_\`]\V[]ZZaUWVV^SSWTRYTWYV\Y^]_YY[`S]T`^UXR[\VRPZXZWZVX]ZXXS\YYW^YVWT^YZZZYVVZYV[ZX\X]\VPTVfU[ZO\VXV[YXaVYaVWXV]ZWVXUTVTQRWZYV[VWSW^]TX[YVQW^X\U]XV\\USS[YUTYYYQ\ZZXTTYWRXZTVTQUP\\V[TWWZZQ[]YWY[XWXVQUWYWVa\UN][PWTZZXTXYVSWVVZ\ZSVQTNOX\RXVSWUX][UP\XYSUXYbYXY[XTW\PS\RXYYX_YY`SYXUT\Y\OXXTPWZXVTY_dUV[YZ\UVZVZ]S^U[]O`P]cU[\bXXRZUVSVSV[RVTYQZYU[VYTRYYVSZQ]W\[ZXWdYJT\ZUT`ZY]TX[Z]ZXUTYTW_[UT]ZYWU_TYZSXR`WT[XNZZZYXTT_^ZRSWUOU_T\X\UYUOUWTZWTV\SQa\QSaTXRRTXYUXVST[[ZPPVZVX[YVTVVVVMTYYXYQZY_ZPYVWZZT[YMTSYXYXSVSXYaTTYOUSTVXQb^U[USRSZXYQSTTSQ[UZSVXWXZ\UVYU[N]WZYXVYWSZY\ZWW\WaWWVPSZW_TY`R[WU_YWVR]Q\XXWX[WWZXTUTUVYYRXaUUT_UUaWXYTYX^Y_V]ZYWXWVYXXW\WRYU_\]\SWSXUXZSZUUVYYZW\ZUVVYXaVX]XYXVYaUaWV^X_Z]_]XScdXYWYXWWX[R]]XW\YXWZ^VVW\_W_ZcV]QS^UW]ZXYY^_a`WVS]bY[TYY^V\UV[`_[Y`Y[T]V^TWZ]WZ[ZU\[WSVXRWWW\_[XYYWZSZT][ZXP[TR]\]aYRR\TUTVVW\ZZ]]UYZ\^^WWZ[UUXjVS[Y\V[]QV\VW\ZWZTTVWZXW_RXU`YXUVXYZW[V]V^\`[UYT_ZWT\S]`SXTVXW]XTSYYVRS\Y\SW\VW`XVZWYXaUVWUYSZTVR[[[WWY[ZdTYYXZYWWXWY[_`WWVYV`XTWSWa^WTS[YRUXY^ZPXb[W_\[_VW^ZUSVVVRT_U]bZ`_TNYXZYZVWYSUYQ\X`X\WVRVOXYTXS`UVW\V^_Z\[VW[]X_cPXY\\ZSc]VV^]UXUWO[O\VWX_T]VT`YVXWS[P]\]ZR_TYZTb^[^\UdSSZ]]X[XWZ[]\W^\Z\YXXYOYU^XUYXWZZY[YR^ZU_Z^X\YXXT^U[YTXWS[RYZQYXSYVSWYTWWWSTZ[WXW]^`R\UW`U]S][X`^^WYW^T\X\aXZXaWWY_\[X]RPSTZY_V]SSYYYVW\UUUQXZ`UVTWYZS\S`VV^WRYV_[Y^WT^X[V[]VWVXbTWbd_]ZZ^Y[_WTYY\^[Y]UZTV^SZW\WSPW_OX^TV]Z^Xd[ZY^TSWX^WZ\\V\[YaZWXY\^VRUXWVR`\\aZ]][_ZXVU^YSTXVWbW\[RT^]WRYZU[`\X]_W\SbS\UZcWWUX\YXO]^SWW_[US_V]W^[ZSSWZ[\W[YRYZ[XVXe]YYYZVZXZYVUURTRW\TZXTWOYYSSWV^ZQT]QUXSTV]W]Z[ZZV[Xd^UXTTSZbZUc]^SXTbLV\V`\W`W_W\ZXURcXZ_U^U[]^[Z^Ua_UTYZQZSU[Z^\P\[WRSXU`T]aY]\TUWV[TTXOX]UX[YT\ZUYUV[]VYWXWfY[XZV\XWZd\YUPWTO\]]ZTVOR`PUWVUTXUWXQX[YVQSUX][XSVZUVYUZXZUW[\[_TVWXbX[aZaYV\R]VWTT\[VMWaZc]US[bVVYZ_TXZ[VT\_`SYd\V]`TR[R\ZZ^SV^WUVY]T_YUVXV_UZQXVSXSZ_SZXU][]]YWW`[a]TV[XVWUQQY_WWO^dXXUZTU\X`XRRZUZXU`aX\SV\ZVYQXZ]YS]XYZ`ZWZTX\U\TUSW[TXQWQY[XaVYZ_Q\cTT\QU]Y[VUY^TQSSZ\V]XYWYYYaRXTUV]]XXW[WVScVYgZVR[WRVY_]W[XYVZVYaX^X[TZW\Vcb^Xf[V[R[Y]\^VRSWY[ZX`W[UWVZYYYUX`YaWbTWMcTQ[_TWWXZ]Va__VWYZW\YVWYS`STVNZUUSTWOVVRX^XSY[PZ]RVTVVS^[TWZYTRVXTYZWUU[[ZS\WXX^]Z[aWYYNV\ZQYT_\ZZYXSZVXYS[XW[XX\]VZ\YV]ZWZ[[aS[TVQ]UXX^P^]\a]VW\W[V[\[\^ZV_XVZXVVZ[PUVZW[TX\ZTaYUTV\YSYY`RQRVVZWWZXVVWQ`WVX_UV_VPWV^Y\SVZXUO[YVVYSWUVYV\ZSZYW]VSbXUXhXV\VYZWVVX[UUWV\SXSY_[\RZ\TU]YUQX[SXXPcTV_]eXa[RVRXVN[ZWW[f_XTVW`VUXTbPUZ^]WRRW[ZW_YX^RWXTSUY`TVUZY^YVWV]Y[X^YXXVRWSXWW^TRV\\VUTR`XYTUVUZb\ZWXWV[R^U^XUZ^T^\[Zc[XZbZXV][Z\\V\X\[fR`V\XWWXUV_\[\XXVYdXRV_UZW\]\[ZV]U^Y[VX_Y\T^]bZaXXgVQU`\Y\[X[X_]\X_[]ZY]X]X`T[Y\__SZ^TZXW[T`_UST[Y]ZXVX[XZ_VXZX`[][\TZWaX[^V]]VaSV[`^WXWW^R`TX[Y`ZPZY_Y^VZ__YX[XYXZ_[[U[dWOUaaZ]bS\R[\WW^WX_ZSS]bU^^cdV^\`T`aP^W^]WXXZUU`Wb\^^]bT[RXQZ\_]XdZY\ZWYSUVZY[^[]W_V]XX\aWTVSY^YZT[Q\^WUV\XZ[YSSW]ZYZZ[ZX`_Z\^UZT[WU^]]Z][\YT\caYP_Z_VXWZ^ZaSZ^W[Z[Z_VS[W\[[Z]XZZSaV^U__`YYcWZ\^^XY]WZ]PUQ]]^ZaSZ[^[T]_[]`X^``T_R[ZYZVZWT^WVWWXU_T_bV[VTWRZQZV[MTY[YZXWYX]^ZYW]]Z[W\\\QZ[UY`UZZZSYRWU^ZQUQY^QY[[VZVZW]T^VXSWYYOcWZZ_W]V^VVX_VVSTVXZXZ\SSTU^W\_QYbZ\RW_XU\VUSUQYWU\]RSR]W\\ZQQUPVVVXYQWVYTZTLXQYXaWWVYSRYb^_\UYXWS`T]XZZPW`\[[UYZZSPY_aSQT^X[VYYT`YRT_YTTTTWU_UH_Z[`XW`YYQZZTTn[YZ[[PXVe[UQUV[XQUUY[^Z`Wb]XZ[YWUQVSTTTWWX^[[^\Z^Y[YY][W_[RW]^[UXTTW[\UV\Q[`TS[UPRO[\RaY]R]YXNZTdWZZW]U[WTYPY\USWQYSXS[U[XOYWKcX[TZXVVUSWWYWRTWU`c\^UR\ZNUWWVR]ZVSUU]^[W\VTSZ[_TTWY[\ZWQXZQTV^`[XW[V^ZZPUXSWVXZVW\ZNXXWUVXX^TZYWVWhXXWX]YTXRXV]_WTT]TZX]VRVWTWW[^YY`UWj[^ZZTeM\YV`YX^RXXbYWOUWR_YY]US]S^[UTZ[WTQSXWaUX[V]^_VT\\[UV[_TZ_[][Z[YbYY\XaLYXVXWVY_WX\Y_\TVXaVXXc[XZYT\SZZV[bZ\XVYVYWWWUSO`aYZ^c^SUVT\[[\YYX^XW[TT_ZUTTW[UTVW_ZV\\S[XR\X[^TUWZ\TW[[\VYVYR]XYY[dYS\[[ZWVYO\UWXVY^UVMYZ__VZZWY[WW_VY]YYZTTTUURY`\VXXbXUST[SZWa\ZY]WW]Y`]XYV^U[[^ZS^^]UVSYX[ZS]V^X\VYdXYTYYagSUWUWaaXW^]QcZXRXZ[TU]PWZXU\YRXUUZUUWY\_SXTWWWX]\RXW]V\XZOX]^WYRXYZZ]WXYTYV_\ZWZQ\Y`ZT[XYf`V]V\W^\ZR_[^[TS][XUUWX^N_RXR\[PV`[^XUXUVYSMTXZSSZbQ]^XWa]`UaWU^_^W]cROVUX[Z]W[TUWZV^T^^[YWUUa]WYWPVXfbXTYYZQXUYWUV\TYUSSSU\PR[V\[SRYUZ]Z^SU_UPS\XUXVV^^XcYVUZVT_`^Zd^QUW_[X`XWRY]R\\U[WWZW]STW[VZUPT^UYUY`SOVQUWZ\RZ\VTX[Ya\^RWQWXOW\]^YVQZ[^YT^_Y[T\`]YVVQVZTVWLVdO]PR[`V^XQ\VWZMTRbY]W[X^YWVYZ\ZRcUWXWVX^VSTVYYcSTXZT\WU`\ZPWYR^\Q\\VWKZWVZZ]Y^VX]]TZ_UY[\Xb[UQSWU_QXRT`W\WT\]UTVXYPVZXTX[YYV[XW\R\NUWSR[^_ROZ^QK]XUWYTVSST`[_YWXX\VZTWVW_WZNUR]UWRYUX[VS\[ZT^[XTXY[Y[aZ[VZUaXY[UYZ_V[P]WSU]aZW\ZSUU^TSW\Y^NZ[][ZSXW[\Y]^\`SXXXV_Ua]Z[YWUYXYYRWVOTXWZY_V`XT[UVZ\S[WRZ[ZVSYW^WX\Y[\[bSV[VXZ]XTWSTXSX`W[W^]R\]YXYWUVTU[X][Z^ZUYVVX[^X[ZX^SSR]PYT\UZa[W\TXYZXZY]\YR[TYX[S]`_UZ]SYXVTWVXSQYUSWUXXX^[]VV[QVWZWZXU^_S[U]XXXYaYUZP[ZZYV[]ZZZVZQX^ZWQUXT^ZdVQXU^VY[[NY`SV\_XSZRbX\T`ZZcZYYYPSXUY[TXPY\[VYXUX[PU]XRXZYUVVS[VYXXYW\W[WUZSZZXaZWOZWTTZYWYaRSdXXT[WV^[_Y`[TaZYc`T[O[^VXZT]\`YVR]VYYZRMPZ^SRQZ_[bVYXTXUSYU\QZQSXV]dUUWWVX\VZbQ\\^XVU]XY[XXV[XZ_WeOdYX[^`XYXTY[ZUX`WWTVQ\TWWWX^YVW]XRROYRWOZ[XZQ\\PW\ZP^WU\WU_``V[XUYWS\bYZT\YY`WVXWUO\Z^ZaYYY[V`VX^VVW[WPZP`W][]VXe\^VbS[eXWOUWZTc]XYZ\YcUZ^`UUMcW][YSU[VVXWTYQ[^WXX[XUWUV_a^VVYZ[\VW[VW[SR[\YWYV[V\hVZ_VS[V \ No newline at end of file diff --git a/packages/backend/nsfw-model/group1-shard4of6 b/packages/backend/nsfw-model/group1-shard4of6 deleted file mode 100644 index 1a9846bf9..000000000 --- a/packages/backend/nsfw-model/group1-shard4of6 +++ /dev/null @@ -1,3 +0,0 @@ -WWe[[eaOWc[WSWVOR`UXUZVVXVUT[_[]a_X\\XWSX[_a\cWS]Z\QV]`UX^[Y^WTXZYVZUZSZXb[]YWU]YZS^Z\WWX_Z^gR_W]ZVWXYW]\W]\T^WUZSURWXX`UVYVZV^VX`ZV\XV^Z_T][[_fVX\TX\TYYU^[XXZS\^X\XVVhZ]ZVYT[VRX^WWZTWYRYXU]UW]VUVVM\TTWZ[WWYZQUUUWYXS[WWSTXZTZXYUO_XTV\_]ZXUVXU\V[\XZ][TWbU\ZYZV^[RaX^cWS\ZXYTZOZ\WX\aa[RYcXUQ`XU_W]\X[WVYSTQW[[Ya]_S[\^YRVTURUQRU[_XZTSeW\V[XY\SWXd_fUV[]R\TW_UYX\X]XTYWWWU]_^V`]XeYW]W_Z_X]X^V[UX[]XV[]^]U\]\VUYOVbSZV^XU]VYOUWTY]a`TS\^ZVZWWbZSS^WW\_U]\XV[X[YS^^VX\ZZXX^ZTVUZQ`\ZXW_]UVS[^\Y^_XUWTV^UZSWTWXZaZY]\X[Z^]Z`VY\Ta]]UTTUZXWXX[Q]\X\W`RQ^YXW[TUZYY`UWZ]VUaSPYT\[VWV]YWa\ZVY]Y[S\WSYZ^YSVXY^a[WWU^`\_Z\VQ\[WZ[^\S[^VS_OY`TKXURZX^T[ZWZY^Y[dZXZZ\XTdXZS^WVN\\]T]a]RT`U`S[Q^RXWZTV[W[NZY^S`\]VUVYXY[WS[Z_UQZWVX^\WVYV^PYX_V]VU_MQcZT^XYWXVWU]WYRXVTdU^R^XYQYXXWZY``VYUVV]YS\XS_YXTaXTWVUVZWZ\ZVY]XXXTOXUX[WVZ^PUUYY[]\`TSZ\Y]VZUWU[\_XR\X[XUT_WSVUTRX[PYX\_]`U`VW[ZZWSPX\ZXUWPS[QW]RZ\VXVSV_R[XUTVV]W^_]aZ[N[XYZZW\Z]VkQVYYYWZSU`XZVZ`ZVV\[V[e[]ZY\ZOZ\V[V\XZVUV^aUfV]\[Q[WaRSbR^[TVWU]ZYWZb_ZVXXYWZUXVWZZXSR\S]U\WTYYgVSYRWW_YV`[YX[XgWU`_O]UX\U][[]WVXYZZW^\bcXbVS][Y\SV[`ZW[L`YUV]YR\]fUTYYYZQW`XX\[S`ZYVYTYVT^^VRTWV_WYW^TVXWZYNWZYYXW\XUWXWX^SXW\RVXV[WX`X]^YXUUUd]RU\RWWYZPVTTVZUZWYXX^[YVZYWWVZ\W\XZZ[ZZ]YUV]_W\YWZUWWZ\^PYYS\ZSWWR\Q`]lYZVWZW[UYZXXYXSW\VWSW]YZZ[ZVX\ZWVb[VVUSZWWV\VbTUXYeQ[\Xa\XXY\aaX\Q[U_bZ]YY\SRX\YSRWWb`gSSVUWTVUZVS\\]SVX\OYV\WTVVXW[W`VZZWTYVZ^WNVTWZ_`WY\V\UR[UZcU\ZXTP\`WUV]QWVXWVXa\[`^[[Ub^[X]^[\_^TR_VRVV\UV\TYZYMZW[WZ]^Y_^^[T`XUWUY_UZXW\YTX[XZXW[ZZZS^WY\ZW]\^XVUXXYY_V]Z^U_[XV]WXT\WUWZ`^\T_UV^X_^R\TW\[^W[TT\ZZ^\WW]OYZ`XU_U[ZYZWZWR[_YVX]`SSZWUTZ^NTfV]_[[V[YYYY\_ZWXU[\UTUPVXXWUWZ]^YVW\SYTU]]_\QYX]R[aTSY]WTZYRUY\XUVQUS]U]V\UZUe[ZUU[T`TVK`XYV_YR\TVXY^[WYXVY\SW\Z\\Z`NT]\[ZY\YUaQTR`Y]T^RSY\SZVaVTVVZQWTSUUR]W`ZlTW\ZUSTUXUZfT[Y]UV]bT[VWUYYYU\SV[[UPTZZ\WZWZZWZ^^QXY\[\^XS`YW`\WYYXP_Z[eWP[_VU\ZUQOQ\V]ZX[X_U\XZU`WY]WQ[UU_S\\ZW[S]\UXTX[V[`X`]ZXW[VPT^]WVeY]U_YYYbRRSTYY`WSTbWZV^]YVWWX]ZYQSWPO]\TPUSOWRZYeXTiWR[]U\SePS^[XUTcZQWV]bQVUZYb]\T^ZVYcXY[WSULUWRU[ZYZVYYZ`XS]a^\VPWVX_\[[Z]XTXOX]^W[Y]_TSV\T`\VQQYWT][Z[RVXY\Z]RYWYY^VVWVZ^YZTW[[`_VT\\[X\_T^W[UYXVYQZVUaX[WWZVXTUUVUT\WX]RX[UWXVQ\WW\XaSR`\bZY[SZ[UTW[ZZ]WWYPXQQUUZVWQV_WQWYX[X[VSYX\[[VYY^dX\cXTaS\WTWXYWYSW]^WX[`VYeV^[]]Z^SXZYYYWc]YdVXXV]UM\\TXdWSZUYbZSW[[\[VYSSUV\Z\XY]X^Y^RWVXVRU\`^YYW`\VZ\ZYXXaYPWUWXfYVSYUSW\\Z[^ZRW[XRWVU]_T_YZOYQ`\ZUTcY^WYW_X[P]^X^[_aWWV^YY\UVX[X[Y[WYXXXZ^VUY^UZU]S[`RYZTXWZWYXYZZ\X_XVXX\W[SYZTWZU]X\XTTUW`][\ZQYXXY\]X`VV\]]Y[XSVWSW[[^[XXUUT^Y^WWXW]V\ZUU^W[XXZUWUVZYeUWVS[V[RWVZ]]XOWTY^YXYVZUWWSZ[T_W[]VV[_WfTTOS[[WYVVV]R[XPXSVXZWXTWS[V_T]XYY^\W\a_YV`[\[]OXVZ_Z^W^]W]X]YS^X\YZb\XQ\P[e^TX]\a[R`ZW_SY`_WZW\QZ[W\WU][[[\RSR]TW[XUXW[\QZT\RR[X]Rb^VW][W[cVWUXY^SZX]ZTZ]\YUPUQUT`YRZ_XTSWV][XQZWWW^\W^Z[ZXWTYVZXSMX^VXUXZZWUV_^U^[[[QX[VZYWZX[^T[d[Y\[^VY\\WWZ\X[`]Y\LZ^VVWQUYYT\SXa^\YX\X^TY`SZ`X]ZUOWZ_^XTZY_Y[]UUVTcZUUXW^SS`]XWV\\RWdRY_VUU^VZ[XWYYT\W_TVT[WX]XTVZ[V\VV]]T]UZ`YXW\[X][YUUUZVZW[[[RWVSWWX`QWYWZU^ZU[S[V[RSYWXRVVYXV][V^]X]jVW_STWSO^YXSNUY]WXUZTWZ[[W]W^ZUXU\VTUXVYWWSVZ^Y[XW[_UXTSYQZW[\]XYSZZU_^]\WZOZRZXSV]V[[VWRTQZZR_U^YXWUbPWVbXaZQW\Y\YYUTXSYeXSW[YZ^]]TWYXWW[ZOZUS]\TY\SSYXP[ZY[\WQZX\UVXWVRZ\STYbXaVXQ^U\X[R^_Ra^\WUYX[YSTVRSZZYVXWXLXTdXX\UYZWPO[P[YY^[X]W\\UeXVWa][YWWWX[XZXTXZVMS[ZMU^]ZW]SYSTP[WX`XYQSNYYVYYMT[\PRVZUS[^ZY_WKXZVYZWZTPNXWRSYXV[XTSVT\U[b`UV[Q[\YQYWZVaUUUS^bP\WV][X[W\SV[Z[YbWXV^X]^[X[V]TT]N^XUZVVSYWi\YZ[Yb]XNYYXZY[Xa\^[UTV\f\]\TZWQY[[UVX__WSWWYa\SV]ZZ[UWS_R`Y]U]ZO^_WQZfP`WOeUU`[[SRYYRWWZT]Z]XV^bT\W\^N_WX\WTUZ]]YXcV^^_ahW]cX__VWZ^]V]`aTX[]WZXWT_UVPZOSX[]^][XXZZT\WSWWSU[SYX\X\\XZ\W[]Y\Y[\XSV_XX]_YXWV]bYT_ZU[[]SZW[JSY\ZS\^Z_[[YX[_ZX[Ta\P\aTU]_PUWTWXVX_^[W\`ZXWV[\]V\P]X]W]UWbUUTXYVT[]YNYUVYYX_cUW\\[TS[i[S_Y\UcVR_[TYT\TZ`^YWT]VYaV]W[XVX[XXXWSRZTXUT]S]^XWW^ZZZVWRUXSUTZYY`TUS_[VUXW]Z]WY[^V\WWUU[SXTTYZVXcYX[XTWZYXXVZYXY`aVY[YV[ZXXZXWPTSVa_]ZM]\Q]aVXWa]YQ[[USUYY\XXZ\VZ`XQXZ\ZS\WW[P]_XU^YR\VT[ZUOXYX[ZV[V\dRZYb]X_VZ[\XR]VX\^NYUVW\SZ[_VWS`UU^UZ\SZaYXXYWX\RUWYW]cPZVXV`WQTVZ^_VT]WXV\_P^\_X\YSX[_^W_S\_\XZZOZYU\[ZaXeVY^baXS_TY\YXT_[YO]ZYYSXYXOSY[U[U^XXWZVVUWUW]ZZZZVZY[XWX^_WU[XXZ]d^SSbVUQUXZ\YYdZ[VTOXSY[UR]TYY_Y[aUWYXXSWZ[TZWZUUZYUWYZXZXX[V\YXVQZZW[S\ZU^W`VYT\`TUT\`ZVT\[Z\SWXWVTUZSTRSXYcWVXV\[^\U^[\ZX^]PZYX\VPXXZYVT\]ZX[W^X[W\]X`^\ZSXYXRUYYW]U`[RXVbVNY_TYX^^P]]___Y[WZTYUSYYY[TT\\Y[SZWS]]ZZ\]Z\UR[U\YXV\VW[Z\RVRSQXX[[_eWVYVUU]Z\]ZR^\XZRWYWWXYZYaWUWX]SVVS^`[_]UWY[X]\QZ]PXZZ]ZfXLQ`_VYSUeYVQ]WVYSWWYQSX\Z^PTP]X^W\W^^]_ZVRUO_^RRXX][Xaba^_XTXV[aX\UTQTWXW[Y\QY]X`\Z\]SZ\XVVV\ZfUQ_X[UYUTOVWVS\QXXZSTX]V\X^Sa[XY\[XVXZSZ[_ZXTSYZZXTVXV^[\^YYWWRWVXbYUWYRYR_XXW_VZ]Z[]ZU[VZSWXS[]WPV^Q][^SWXT^UUXTZVPW]UR]WYXTZTYQNV_ZZg[TX`YUVSYZT]W^ZYU\d]^[]_RU`[R_[PV`Y^R[WQ`XXYZYV[W[WNW[W^^XUZRVSW[Y[M\X^Z^VWQaPX]ZWV]WeVYUZTVXXUTUWV_^WTXX^X[UV]\UY[_SYV]`\X_VUYZ`\T^SKZX\\Y[QVQSX[X[S\_YVWWV[[UYZWTOWZWZSUd`SYRPV^TWXXXNRYZWRRZ]VYV]V_WTUXYW][XTSWV]\^XZQ\Y][aaXTTT_\UVVc[UWSSYTXSXb[YQXTXVST\ZXVYQY_\X^YYZ[]aWUbSXZ[RQXZXWYSaST\X^WVX^Y^[[ZXST]]a^^YZU\ZUTYWVTXVQRaUZWR`W[X\QXXVZX^UTVZeZ[]SZ[TT]WZP`XY_XZ]SWXXS\TWZ\V\Y[WZQU_UW[YW\YXQaVXZZ_XU^RX[ZWXSVRUXYXeZ[RSW_\YXZYVWaUZ^aY_R^[[S[a]SWaXS]RUSYXZ[WXVXZP^YYW\[\[`[VXUP[^T^\YSVTWZ]_Z^^[ZYS\XXY`U`U]YV^VYYUWYVVU_aXYWT\TWXVY_TT`XZURXV]VQX\XWX]\Z[Y[\^ZXWYS\VQ]WS[_X]\aYUU^_XYXU[a[Y[Q[V[VUWVYYVUYV[[RV[VZaTV[Z\UXZYVTT[\VUb[X`P[aZVdWYX_RZ_VUWUbZ_WXZX`ZRWXSU]TSXVf_\XVV[[S\`_aVWZUZXXUVSY^TXV\YZ]]\\ZW]]X`YN[UVVV_OUV]VYUYUS[[R[^\RYYWP_SXUZS\[Z^eX[_XY[YZY^[[XZ[`b[ZXYRXY^V^]\TY\U`VWVb]\X[SUVWV[XTWW\RX[XTZWUXVVRZV^U[WPX^UXYdWW`UUXZSUX_Y\`V\YUY[Z]XVZV\VX`ZW\\V\VO^XP[WT^TXTVXXZ^X]UZbTXUS^]Y_V\\Z[[UWUXZX]U]W_VT]T]_ZVZ^SXYWT\WZb^cR[^Q_\_Z_[V\T\\XQ]X[XZ]VYbVXYZVZUYVW]TUZ__TWXRVSW_UV_YXWZZZaZVYTTPYY_TYSPX\P]VVWYY[aVZd\[U[_YWZ]\XTYV_V[[VW\_SZVV]UWSXPZS\cTU\Z[USWY]Z[VQVUW[UPW^WYZX[WV^]YX\U`WWXYXa_VXYYUWW[a]ZVYRVV]XUWWYVT[X[R`YUZ_]VXXUWRTUV_ZYPYTX_RS\W[W\][ZSTTXYTZZXX\QT]PUWYUTZS_X[[VV]]W^TTYY[WW\aVWWW___\[]ZVOYTPYTYW[YQ`[SY_Y]TVZ_ZS\SY[\dUZX^dSTWXX[\XWVY\QX^RUXRR\TTXWTZTXcY]Z]]aXVUUY^V\cXYXY^[SbTVYXY[U]]UX`Y]XX[X[Z]bXVUZV\^WZ\Z]W\VRZ\^X\U[VXZSW`SV\Z\YU]\^b\WX^aWZd]SYWV[[XZaSX[Y_Y^U]U\Y[YXZXQYZ^V\UOXZUYVW]VSZ\MZSUaSZVXO]]R_[]\WZ[]YX\VTST^WT]Y[XZT\U[QYZQaVZQ[TaXWVWXVV\QT[[bURZWXSS_YXXT^]Y[_X]cWX`VY[V]X]YUUVSX^^Z]TdQZTQ]T^[UZVXXW[S[YZ\]ZY\`Y\\[SW\TQTY[UYYT[VYV[ZW[][OUWZR[X\SUU]\UR]SW\VM\UYVZYSWUTSZV[]\[WW\R_YUaTURTWZcYX`YZXY\[TZYWYW_Z[WYSWXOZS^VYV[\VaWWXVPUX\ZYTY]ZYUWYZTUUXZYcZ\[YUZe\U_XR[YVUUXZWZVYacPYYXYZV\UZZZ][]UZ]bXS]ZZ[YUXaV_ZQWY[WUVXUZUU\WW\WY\W[SYYZWQ\ZXgW\OUWWZTYYZS[XYTdYVV^XXW[TZWRYSYRTX[YZcWU[W[UWWWV_][VUU[^Y[\^VWWXWUT`TVVTW^_XYVXYUYRRWZVZVUT`]VRX_ZaZXWVZXUWT[Q^WV^WY\X]ZU[UYS^UX]ZU[V^WTYT\VVOZOUW[YUX_WXXTZa^_TZWY[URSXZYZX`YY][VUWVPX^WVbT]ZSX_bTW^\Y]WaWZZZXVUVVV^WTTUUWPT_XTcYUUQ]WT\\V\Z]S[bcZ^ZYXWV]]VVSY^O[R]`ZdV_Z\XUVSUUZVZURTWUQ\ZSQXT[\ZWXaO^V\V[WUXeZWVg\RS^X\X[VSXR\TSYYWVT`YSeTZXTX]bTTd^ZQV_^\\U\[ZV\ZWROZZVU]VVYYQX[]_\WVPbZRUXTWPWVU`UUXWUVRcWUU]WYYXY_Y`dYY[YZSZYY]YVXc[WUa\b_ZWXY^Z\W\_X[XTY_ZSVYQU[X[]UX[]SN]RVZU\X]VXYYZZ^_\STTYVYZbX`\ZWNTT]\X\Z[UWZT]aU]\XZQ_VWWWR[U]XS^]QZX]XTWWRTVTVQN`WWX_SaWY\`YXa[V`Q[YX[eUZ]SYaSQR^SPWZ]Y[YUUYQZ_VX^WY]WYU\VXYV]VM[a]VZTT[U\U[^U^WSZVXN\\\[bWSWTTWYR[P[X`Y_R\\UZWXQ]]]XTTUWZYZXNX^Z\RUR\UZRT\X]]YXVRYXW\TY]V[[X^W[XYYW]XVW\Z[ZTZWYY[bVSUSX_]^XWYTVZ[^[WY\Za[UTZVXWUUZV\[[RYS[ZXVUVZZSWRT^VW[T[Y\\ZWTUU[UVRTWVYZZYX]XN[Y\`[T\XWWVaWUU\XdV\WSXUZSOYYZ\]XT^YRWYi[RVlZY__XSZTUNXRW[UXX^\`\Y^]V\X[YQTWWXQV_UYS[_WX`YZUZ[XT]\YT^X_[S`UW\]XY[_YaX^Z]YUUTZYT\Z^ZYZWQXWWa\`S]QWWW\[VYZeZWXTVYWQV\^XST_Q]X[XVVWQU^WRYTS_WUX]Ud_\Y^aRPZaVXXZ\Y^[V_WYXY\T][XTXXTX]eV]WZYYR\ZYX^UXXVZXX]XVXQVWV[`Z]V\Y\^ZZVZVUWST^``W^aZW[W[VaYZbdUWSXX\TXW[_[X[V^U]WSYL[YYUTYWTYWT[YWU_\YW[XSS]\R[QS[\V\V]WTaXYZ[^U^ZXX]]\U_\ZTXVWQW[\Z[RVW]ZTT\TVTYUU\SYZYZXXZYSXXWWW\X\V\YZWhX[Z[XUW\RZYRXVVY[^P[ROTc_[[aVYUU\Wc\WV`bY^UWW`LQVSRTYV^[VYWXY]]Y_[Z[V]QUQ_[XYVVYS[_X[TYT\XRWTWWSY]\[XS[TY^Y[U_]XZWWT]WX]\VSZYRWYRY[UQZWY[\^XTVVZZQXW_`UU\VVZV\\X[]\QYXS`UTZZVYX_`YUaVVR^WXY^[Y_U]^RZSRSTWTXX\[WW\ZUTZ[QQVW_WYTWdPVQZWVVRX]ZX[WcYSgTX[Ub]TURRXTZ\^[WYS]]Z^X_]O\\X\_UW[UVS\[ZXXVWR_VWWWYWX[WZYRVU]UYZU^YV]XS^WWWOWSYY[TZRU\V]ZZSYRRYUW[VSVW\\RZVNWPXT^\S[YSXZ[ZVX\_Y[\UZU[T^\ZUT][ZTN\W[X`X\_X\TVWU__ZYXWTW]XU\V[RXX^[SU`_YXSM[WWTZXW[XW^XZaW\`RXXW[UY[RR[UXUY[XZ[]_TTRT\_[VYbY[][RWZTQTX\XVaRZYUaVY\ZUYYY]^TT[ZVZQ[[\YWYZ[VbPXQY`TWVVWSRXX`TQQZW[YUYQUZVUWYXZ`]`QZT\\`U]PT\XYZSZYX[a]PYRY\UW^_WZ]QS_^`[ZYVU]X]]Wa`_\\_U\ZU\YVYY[[U`bUY^YYaU\TZ^TWY^_ZZVVYTW\XRV]Z`V[_YSYYUY]T^XP[]^UV][Y]\OMVZQaWYW[UW\TY^RUVZbZ^R]SZX[Z[SSWXT\YV[VXZQa[YXXZRWTYWW[W^_\`UaZ^\V\[ZWZ_Z[XSU[WZ\WU`TZ_O^[UUSR]Q\_TWV\RQ`VXWWY[UFV_WTTV`S\W[_V\]\Z\YYWZV_U[ZWVXYXQYXY]V[VU\XV[SVYTWW]\Y\ZXXYWTcTW[ZfZXY\UU`_\T\e[XaTV[[UXXZU]TXXXZ[W]SX]WY`V[[WWXZ_\^YWV\S\TWUWWSS\TV_VY]RQUW^XWZgYSQTY\VSUSY_YRW[QTXXTV[XVSXXWYZYXY^VYXS__V[TPbWSXS]V`^ZdTS\XaVWRS_X]YQ]YQX^ZWW[SRUVa^TaV[Z\XVRRUYWWXZ_YZUWVW[Z^Y\ZcYX[[WWU^_T[XXQWQ_TVUR[^[QZ[_XWZaW^KW^ZZVWX][a^^_SYP^TXZ[]XXRY[UVV\]_YVSSXZTZZWX^_V]\YOb[S]X]^^aZ[TSaXR[QbZ^\XPZ_\VSR]WUY`Z^\WYYY^UVaTZV^\TaOTR[UXXWbXZ]XU^UX[U\_X[[XX[VWTWUUaWXUb[]XVWQLQVV_UY]^Yb[VT]ZUW\TXZY_dYPafWV_MbVZP[YcVY`QVWUVYZ[VWWVXSTXWWfYSWY][`[UWkRN[W_SVXWWZQWYSa\[W[U^\UV_WUWUX\YZWa^ZWX]\]_WZ]W\QQPQRVTTRZZWQ_TUV][PZQY_bY`[^Z[VXYYXVQXTZaXZXi[NX^MY`SW^]XZ[OYaOTVY]WZSWX]Z^ZWTX[\XYST\[ZY_ZiZVSY[_\QXT^Y`VaVY]_WVaWVTZ]UUd^]ST\VTU_`VWV\W\XV[Z\PWR_YZVV]YRYeWWX]X[\YVXRYTPORX[]\W]PWYSTQYXX^\W[^XfRX]VUWc^ZUTX`XZUQU__Y_X[ZZTTQST\]W`[YbUQQWWQ]\\\T[WfRQ\`VVYXW\YZ_[]S]UR_^Z[^P^TZZQX^Y[TbW\RVVY]W\VSSYYQTXSY\UR\WRXSRSb]YVWXZ^^`][WVSWT]U]YWY\^\\TUYRXUTY\TUY[[[YXUX\VZQUZW_V[S[YTWc[c^_UYT^RRZP`WYV\aWWQaWWYTV_XaYZXVYWWU\VY\XWZ]\\S^XYU^Z\b][cXV\a^YYSa^YXUXVZZTVR]XUWY`aZZYVQ_SZ_W]WS]\X[T]UTU_\TVY_X^UXY_R]SXXQYXWSZXWRXa\[YWXPUW[VWW\WVXXXX]XXVYYQT]XPYaYUYW\RWZXTUXX\ZW^^Y^XU[OWXQZgTWZWV\aU[\cWXVRT`N]ZYXUZc]VT\ZZVZTVP_ZSWXb\QVVTaXU\S^XZ`U^UYS^WYT[ZdU\W[\\[RVT_ZY]RS\YW[XUY_aZ\SZ]YR[VXYXYMZVX\ZW]bX[RVXW\UP]`V[aa[WNR]aW[T\ZTU]YYWXXT[VRR[YS[S\Y`]Z\ZS]\]WWUUVTYUYVQTQ\Y^ZSQ]W\WZ]YVV[YSUZY\]]U^SY[aPYUZd\U^TY__U]SWW[YZ`SQVTY\UP]W_T^^ZYRVNXQXPQZZU]\UZYYXZQSZSUdZ^_VXcbWX\VcU`XaZUW\\YYV]VVfWb_^WSW[]YWUS\[ZTWXXZRZWbX[X`V\Z\UU]`^WWbUW\[ZW_ZZZP]WW`VUYSW]^YQaSM[R[^Z^T]TW[\SYSY_URXYW`UZQ`Q[_]YbXXWVbUcXTZV[X]]ZXVPWYTZXWRZWZ^WbSXZXZZXY_WVX\[XS[[TWRXU[[VYWWaYZb][QZ[USWWPX\YUUZYSZ\`YZcWV[WcW[XR]]USgQ^X]_\VVdZVWX[\\W^XUXYSYaWSUVYXUYSXXUZXV]ZWYU\bXZZRVTWWWQ\S^W[\U`U]WYUeVWTXXXU]Ue\VS^TXXXNYVWY\XXU^VWXi][NT]VS\][VYU\Z\MY^aU\WY\VXc^\V]]\]WXY_QSUZWTUSVY^YYTXYST[WZZ\WSUUOVZ\\T\`W_XQUWT]VVWYTdUZZZYUb\eZ\cVXV_TVRS^W]U_U\V[T_[XVZV_UX\\WU\ZPX[VUSWYYSN]YYUUZ^SSZ[[`V]RY_VZ`YWXZWXXRWUXX]Z^^Y^ZUX^YXN^YiYTT[QYXWTXZTWZU[TSX^YYWX[U[YRWXUYX\[Y]YcW\WWUWUY_TUa^ZXVVSVXWTUUWZYWUTW]UVWaYW_WQYYRWYTTYYTe]SXXUUaZU[XWRVWRXdV[PYZV^UY\Y\[T]X\_^]`Y^\\WaZQ\UXTV`RcSUX[UTOY[`PTUYV]]ZYSZWW[d[UVYVYbY]UT[bTYUYWTWWTUT_`XWQZWUUV]aPW]XaYWRRaV[\]XUbRYVUXW[`T[XM][^Y\OVYXZ`TWW]ZUU]YU^^Y^\_ZWXaZ][V_X\W[Y^]WW]WW]PYUUTZ\d^UYUS]\U\Y]_ZYVXXYWW^ZbZY[]ZWZV\WVdXUWTZT[WU`NTX]VV[ZXV]YY\W_RRZWVU^YZTZZS_\_[[RUX]_W[QUT]WX^`[W\XXXVT`YY\ZYY\U\[UZYZZVYWVUVX\`^]VZXY][W`YY]VXS[VVZ[RSZaVWXX[RVWZTWY`\XVWY[Z^XSY`VY\TUYYVW[\W`[ZZ`SXTQYWW_]\Z_^UW[USZT^YW[W[XX^UYWWXWVW]ZUWUY]UYU]Y]\aVWZa]^Y[]OVc[S^Y_aWWcP[TVOXYU^UORUZ`XZ[S^UT\WXaTSYUU\]n]\PW^\WQS`^a[Z\\T_W\]ZaS\\Va\TW`ZRfYV[[XY[UW]^X\VaZWXRVXYZU[RWXZ\TUY\UUYZ^ZYVVZYbT\\TU[\UNTV]VU]ZS[WYb\ZUVY]YZYUW[XXXWXZTWcYVZV][QTTSbZVXcVT\WSWVaX]Q]`\NYTUVX\YUVNW]YXVT^cU]]^\UXVUbTZZW^YWRX]ZRWYT]\X[\PSPZ`U[ZUURU[Y\WX]XXV[^UUb\TV_X]YXYXZ[QUWWXZ^`V`fYS[S\VXTKO_Y\ZXR\W\]\U\Z`^aXT\_\X]RSW]SW\OZTaY\\ZU_[U^[ZW^^VQZYMZURa]]\[\SVYS\`ZVW]OXYV`[cTPY[^YTTX_SXb\dYPYQSZVacIWTVYV`TXZ`W[VVWY[URU]WZe\\U\WX[\Y`PYZXUVZbZU[MXVZY\`]RY\YYX\_`[WdP]XXZ]\UY\XRVSOZRWXT[[UXS\cVc]W^`^UUW`[[Ra[MX^TReZY\]_X^TYX]QU]UU^QZVZYYYWa[U[[VT[RVY_XTZ[Z]UYO`Y_RTYZYR^[aXUZYcWb[YW\WY]UVWX`U\_V^YYXWX[YZ^\U\U_ZWYU[RY\W^YQSPWVW^RVVYZXYFWaTYb\[cXhRZ\[cVVXX[VXZWUVZXYXZ\YYXYY[\XZR]TZ_SVTUW\WX]Y\X\\TWSYW_UTV[_Pa^V\VXYV\XVZYXZW\W[SYUYVYVX\WW[XXdWSZZRVWUY[Y]VRUZZYVUTVXV[U\TTWXXWN[T]XYWW]]UUQU\WZXX^XYTX[YXYXUXRUbVXYY\TPVbX[[VW]WWZZ\U`X`VU\W^^[[TV[ZWWZaYX_NYTWWX\S\[TWZ\UVXR[^[UVZYZ[aWVQ\W^]YS[\R[]WUSQU_ZX`W_^^X\XUk\W\T\Z\TW^V]TT[][T[XXYa[\_RWQUWZSRV`[ZT[SS\XMQmVOW\^W\_VZQ[YZYY^VVUX^X^XXZYXV]XW[W`TV\UYU^]a[\\\][[XUYUYaZ]YW]VY\TSUS_YTYYU\`\VWVbYe]\YWRZVVV[^WWV]ZVZZbS^^X^_W\WYYYVd]\W`^[V_^WY^X]X^\]V`[^TZT[RV^]]\SW[^WV]aWVW[fQW[UVUP_V_X[XU\WUP^XW]Ya[YWWS^U_WYUaNaUYVZ\TWW]VZ]YW^W[[Z_YaXT]WVSaXWYWUWWY\\cYT^ZV]daYVY_[Y\YURXXVUYZUSX[[XPVTXZV[[TPZ[[ZWYYVS[UV[U^[aZVY`]UYUU]XXWZXVS][_XY^\ZTXZV_YXWSZ\TWUY[ZcTWR[caRZSU[V\YZ`Y]Y[YWZX^V^[]ORZ\TXdUUZ_QXY[^WU[WYRXZ^XZUWU_U[Z\`ZW^cXW`ZR]YVXYZYVUWXUb[[WRY\aXeW]`a_]TYUYU[UNX]_ZZVZ]VRS\L]ZX]Y\R`^XVS\WNWYXTRX^UYZX\W]MVbWSTUY]\V[\]U[][TXX]`UU^YWWWXVZRVZ]\TXXV[`]\PXWW]URU\]XPWXMMUaYO\[MTWSUYQZQ^[\U[URV\[WTZUWX^OXU`[XWXXWYV_UVYXTVOXXXWT_TX\WcWV[ZXV[\]M\dTVYSXSXYZ`VWZ__aZaYUU^VUW\[\XTU_XUQT_W^WdWT\RXY_X`Y^QWYPV`a^XUT[V^]^Z_Z[U\R]Y[\]_^\\SWZ\Z[WfWVYY]WSYSPXQUWKX\Y^[]U]\[VY^[SVVV^TXUWW]c^WNYR\VV_ZYTWZYWPYV^ZT\XX]cPU_Y\XZU`^XQWZXVZUWXVR[b^[\UUYZgPXYUXZVWVZ[WQXU\^_TU[V\X\Ua_ZS[XRTTUTWXYWUU]YXUXR]]V[[^UWY\UYbWYYW_[]U_YYWTURWW^_PZ^_[YbYTTVZ[[X^\[VY[`\W^^SR\U^VVVcTXVQ_^X^XZSYW^UZSX_[[cZ]W_Y[^O[X\WZ^PQYVSWZR[[[aTR[XZ]S_W_WZQ`R`VUcZ\X`VXZ\ZaS]UY]USa[WYWUV]RVXTVTQ_\W^_Y]ZWV_Z_QYWUZbQ_YW\cZXZPZW]__ZTY^S_UWXXZ]`\[ZUWX`ZYTTVY[WY`V^SZRVZ_U^X\UU[YVX[XTQXVV^[`UUVScV]SX\[\UWVZ_P[]RW\ZWS]W]^bYZ^UQUS]VXYZPR`UZWU`TU_Y[Q[XQX_^XST]Z\XV\\`[TZUUZ\V]P^]^YTUUWXWY[XTWV[T[V\WSUQaWY\ZXY[YWX]]V[UZZYXY_Y[\WW[\R_MONSVZa_ZVfRV[[_\Y\VZ`T`VYUaZXST`VYZ[PX\SSS[\^][TZZZXZ\WVTWRUUZR`TR]RV_]T]T^X]YW\USYZXW\TWVVb\WOSR[STY`ZW\X\VZ\[]XUVZXUQWXWS`aUSWZY^XUYZPU\QSVX[ZVS_ZZUSYcV\PQOVV^^Z[bUU`_XXRRY[LZUdV\Z]]YPWZ]XWb[X\YbZW^Z][UVZcOUZ[bSXV]V^]XV`RV\QZXVZWT`U\_ZWXW[Z]VWVYYTUXOTUWZYbW`a\YSdXST\Y[RQS\[`[M`VVVVT^ZZZU`[UWVW[ZSdRabaY[]RWX]ZZWZUXY^[ZVXaU`WXYVSQX`TUYWXWTX[YYQLXUV`]UZdW_RSWYW[XN[UYZOY]P^\a]SZXYRU^[\UUZVVRVWUZX]_UWUZWYPYVWXUSW_][M_UWX[QXQUTe\[W]WY[YW\QWRYRS_XYSU^U\[Sb^S_VVSWYZUZ^XXSXO^W^aUUV[W]WZZUZW[T]X\WV\LSXV\ZYVVYVNWRS[]eScZZ[VW\X``YZ_Z_US]XaYYVYWVWaZVR\\X`QXQXYXUZU[V[_ZY`]^Z]YZRZcWR[_SXVY_VaRXWWbZ`SQ_ZSNXaYXZTe[XXYXbZU^VXUYSU[_WP\OXSb^[WgTXWYYPZSYYRYSX[WZVVZ^VZ^aSW[SWWT]Y[OWWZSXYdWXVTZ[VS[YVS[LXTXZW[aN`TV^`fXVaa]YZVURVW`Z_]bWZ_ZRPZcXSZ_Z[`S[TS^V]UVU`Z[WWZ[]]aV_\ZWXVd_YVWaSSVY_\SX]M[WZK[[Z_[YXX_ST\UTa\WXV[X]VUS]ZS^XSZVT\V_]UWVW\aXSU^ZTZVXO_VYW_Y\^U\W^YSU]YVYUT]`TVXV\ZSa]U[TW[]WW`T[W^XX[VY[XVR[XRZ\XWbWXUfTQ^WZVVTYZUX]__bWYS\PY^Z_]ZUX[UZYYWWZ]\TW\V`Z[aWYYYZZ^WS`U]\WS\XZ[[ZWW`U\[ZVSWT^U\\^YXW[WVYSWWZ^WVT_YWURUW`^TYRSac[X[[VVYZ[aU^Y__Y\SbTXXT`SYYbWaX_aQ[UU_QX\ZXVVZWWNUSYZZUX_^XZVa[VSW]aS]\XXTZaZTUP^]UW[^V\Xa\YVXYZ[QW^WWXTZ[XUK[YYR[OSRYX[ZaY[T]YU]XXZQW`WWV^V^XVW`NZ\XXYVRZOYXR^\^TVTXUZZV]YWWRXY^daZYOR]T\ZXZb^RVY\ZTYS\V\TXVZXWOQU^Y[[_\SZTV[[ZUP]WW`dP\URY_ZUPQ[^^UYU_\Q\SRVQXWVRTQUOX^TQUV^W^V`_SVTY_ZZQQXOZUVUSXZUWVWZ[W^`SZUYYTV[U[]WQ_VXUVM^XXRTZUOXXS[aZXYXWVZZPN\aXTYYQTV[U]^VXYRX^YUX[WLXZSPZUZX[S]bRQ[XbYYY`cXV\^UW_`XQZZYT]]W^RVVVUWQ\YVQ_[TV[UVWQO]WRV[VQRTVX[UUSSZ]ZTVU]X\^\NWZW\\WVRVQ[^]bUSV[[T]]ZVU_[ZXZVU]Z]_XUW^UXQVaXXWWWg`VZPUSVVT^W\[ZTZX\U_X[XT]TZTTZ]TU]UX[_]X`ZaURSY]VVWVUaZWUV[RVYRW][XU]W\^_TZWU]V]]R^^TZ_ZXZT[S_\\UZ\WY]YdTZ\WVXWeUQ[YU\XSU^SQZYVb\^MYaUXS[^U\YZV[XX^_\[V\XXUYXV\[a^XQ^X]Q\Q^]Y[QVZU]YY[`V]UZUgS[]ST\[[[UWVVXX[[[W`WYQWTWY\WXTX_XXXYZ[[^^^VZXYVX]ZUWaPTZ[VV[WWVW[][XZZYVZbV^^XXZYQc`XXV]Vb]ZU]XSWZY]V[W^^ZZZWZYXS[[]YYZR^YU^X[STSUSWc][ZVUQU[\WVZ^\^aaY^TU\`W]XOUWP_TS]Z`ZU[^Z_YVWY`]_ZZ\UTXQTVcWW\[Z[WXWQ\VZ[\VYaTWWW[V`R_X__]TYYU[aUZZ\YV_QPWZ[^ZX]R\W`TZWT_bZ]XX^^a_VYZSVXWUT^SXZ\YTZ[]bRW_[PW[[^XYTYO\VWaWWVYQY]a^TNVS^\]X^TVRVY\[\]YOQ[TTQTZ]bV_[UVW[UWXVWRZX\V\\[WVbZVNY[XWYXV[YWRXTSS]XX]QXVYYZXTV[XXUVYY\gVVYUUSZZ]YX\W]XRS]_W]WeXO\PWS\X[_S\Y[[_RPXXSUZdY]WWT]cX\\b`\YWXXWUS`XXX[[VZTVS_XPZX`Z[_``SYV`Z[VSR[[]VWTUVW\^UTYIWYWWaY[ZU]OY\b\SZU\V]ZXSW[XT^[aU\[UZX[_`_XUcaW\RWUSV^YbW_VX^_WVWVYVYVTUQV[[XUVVR^\WVS`__NXVYWVZRTVV[X\V`RZUSZ\U_X_^T^X\W^\SWZZWWZWX_V\PVXTVYRVWZVZYZTV[]UUT[Z[V^dPN[\QYTU`^_\Y[X\YVRV\UVZWV^ZZRYZWQ\ZY\ZT^Z^\WT]_VQPVS\WPZV\^UVWRY^`XV`UaWb[\VXYUZ\SSUYWcUWW][ZZ[U`X_SXZX[ZRU]SSWXZXVT^TYOS\UUU^YVU\XMZaYfY_U]`ZaWSVZ\^_XPU\]`ZWW[TX]TZXVc]Z\WV_[]`XYUQUXUXZPVRXU^\]S]T\UZ__Z_aX]ZV]_Sg][SV\XWS\_YXU[_YU[\XWX]UVYWWXY\YT]ZZ[[YV]R]SS]]R]\ZXWXWTZ_ZUV]Wa[X[XVU[\TYWSRWV]XU[`YZXW`a]TTXPSOVWR]YUT[YSVZ[[X^VZZTYR\TZX\Sa[]RVYT[`ZX\\dX[XWWZYZY]eaUP][\[X\YS[Y[[[WXSV\UZYZS[YX`U\\TX`[]YUaSW[RQYYU\XVYTZaX]P`aS[`^Z\XTU\aYUVXWUX[U[UbYQZh^SYUUY[ZTWU^`WZ_U\\TXWTV^^VSSU[RSW[Y[ZW[W]XOUY\[WWW[RYYTfQ\XT[SW\dS[T\[bXS[ZY[[XRa]^XZU[`W]WS[OYQ][^^YXX]\UYYUVRWVW`XTYXaXYYSX[TZ][ZbZZZVWVdZU]XX_dXV[[WS]XVRRS[TWVXSZUZWX[bX`HWT`\ST[YWb`WXWTXYXUTY_^]U^UUTXV]]U\X[cb][YVdX`N]ZWUS^VTTPOYNXVTWT]^X[[^ZTUV]YW_T^XUWSSSa`^\\QUa^VVdZYTeW`TZ[RRUXZYZ\Z][WU\Y[\SUVVV]USY\WUVXQ[W_XXTW[^SWR]Z`aab^Q[]\ZXVY^]^]XWZYXb[UWX`U[UOU[\^XY_^]SYU]T]_RWZRQ\XWWU]UWV^\][W[XR`]V[WVYTdYXXNXYYYc]UYQ^XWVQYTRS[T[V[WZUU]UZXWWW\aWU]T]VcX^VY[aZV]WW]^Ua\\Y]ZT`RPUXaVaXURcWYYW\]ZO`QYZXZUXZWVW_VP[YXWWY[XQUZ\T_VX]SW[_c_TY]TVV\U[_fZWYVVI[UfOSfUTURTeYR_WYQY^XZSVOVbXZRc[UY^SPQWUXZ]ZTWSTWZ\^XUVS_P][WV\XXN]VWWalYX^S\X[YX[TU[YVXY_TTbV\Y[TSURZ]YUdU]NWUUaZWY]Ph[XVV^UYVQZZ]XR[N]Y[UZYSV\XXXXVU[XS]hZ^aZZ[aYWVTNV]U\W[UUXUZXYP\WRYXU[Ye^ZU[[WXU`d_`VXYTQTV[U[\VX\YZX\\PS_US\XZ]WYSSYUWcU]R[\WU\cX[ZV\TRY]YYYU[_Y\OYZTOX[\\UP\ZWYTVQZSU[X\S^Z]\]bW\[QZUWW_]^RUiUV[XaS]_\fU[YaPZR\SYZ^`YWVWSXXXdUXWW`VY_[ZY[SVWPXYRYU\UYWfb]XXTW^X\SYUN\PYVXX\X`XYW[WeXYZR\WUXW^]]\VWWVXXZUbgZ_`TY]V[ZVf[UYQY\U\ZaYZRTY]TTZU]U\`^X^TZZTZWU^S_XSXWVXYV]WbZ[[b[VXW_]YQ[T\\Y\[Z]YZUUVSWVRYXOaYTUUQ]Z\]RYZR`MYYRZX_X[dW[ZU[VR[_\]\RPOYTT\YY[RVOTYYZb\ZWUYT][\WUWWSZYXbYZXZ`U[YY``Z\X_XS`\XVVT^VXUVTW[N_]XNVVX[ZaWR[YZ_\YTUVT\ZbY_YcVc]\^]T\XS[S`XYWRW\[TUSXbX[VYX]V[Z[XTZ[\SVbYP^XXZ_dXXVZUYTT\TWQ[^cPO]SaWU[[TY\VSURfVVcb_VUTYX^\YYZYS]TUSTaSZXWYX\[ZZWY][W[e]Y\[TWSZWYYTXaUYVZUX_ZX^]XU[XYYZ^VZ[UYWY`Z[UV[X[Q]P\[W_\T^W]UUXWTYUaZZTe_YZTXT_SZ[WRZRUTVYYRWYXUX\V^XQ^VZZZVVR[WUZZ^XUSYWU]^NRXP[[XWZX\Y`RQ[V[WZVYUZXY\X[[XLXV]_SPRWY[Y\_SWR`bZU\TW_TU]STVWZZW^ZOZZW_V^USUTXUV`Y\`W[\XRXSTX\\`X\YW]YP[\UYUVWUUW\YTX_ZVY_bX_UUYYTVZW[RUUcYZXSWVTZUXUYSRV[^RUYVTVU`WZY[WV`TSXY_QXYW`VWVMTYcW\VXUSY`RZV\\aRV`^ZZXUTWRXaVWX\T_X[Z]\ZUSVVWX^TWXQS[ZRUVhTX[VVUW[WWY\WVZ\ZW[_\[Z`\`\dV\YXaWSZXW\XXYRVXY[[U\UR][]YSYWX]VTT^PYWRZR]^R_cY[YQYXUYaX]WZUVb^WZXWYXVZSTRPXPYZXX[X]TVV[`R`\VWVTZQWUTYTVXXUYX[ZW`[Y\WX[U\VRTZZOZX[UUc]SNZ_VZX]RU]QSUVd^eWXUYWUYQU[_\XWYWWXZWYYUQ^W[\YU\T\YXWUWNYZcSZRTVYU\QQWWUSTYNZXUU]OXVPNZUZWV[XTSWW_UTXXPWYT`Z]WSW]Q^YSO]_[VXQ[SNVI[W\]RSZWWYSW_ZXSW_VX^U\WZYWT\YaPZPSVTaSUQ]WbVVWYYZZSWUW`VgVYZOYV^]Q]V\`_\VZYTYPU\RZ_TgZ\TU]\RRZ`K]XT\Y][UX]TVQNWR`RSXMVX_UWRNZXUXU[WQ\Q\WVYSWZUXa\QWQ]ZXYPX[TTWYSZJ_\U\ZVXX[dZXXTUZ^U\VZUZ]ZYTYWXOW[^Z[WV]W[WVZ_VYV_S\OZ[OYXT]ZU[XYWW_YXYX^UTTPMYWY[UGSR`RZYOZ[WYMZPYVSUS_XRSZ[^W\VRZZU]ZL^XZWR\W_[Q\Z[SXFV[TY^\VZWcU[W^W[S^\WYXT[]UV[]XXVbQZ`SQb]eWZYSU]\YTW]Z]YY[T^TXX^`T^Z[\VV[[]X`]R[][UWYWYWSWdV]X]TaZfZ[YXWWWYZ[TOSU\ZTSZU_YWZYUQUR\WZVT\ZWYVXWRXYVX[]XZXT^SYVQ^W_UUYXc_S][Uc`WUcWXZSZQZPZ^ZX]Q\YXYX[__\WUXWVVQVQVXZY\WY]\U^Q^[Y`\XWP[\^TRVYV\T[_\WVX[YWWT]U]Y^^VZZXP^Z][WT\\V^[XRSUgVU`[[PfUZWZYTWSWU\YTT\U\TUWPUR^VWT^WSY]XWWW]VWXXUZV\]WUWXVVWSY\[VQ[\[`V\OTXXX]VXXaWRcU]STaZO]YYZYZWZ^YYX[WXY_SZS]XRQU_W^ZZ\\VY^SbUbRSUSSVRXZX\Y`S_`X_RVTUYWTZ[WT[QVWVWbgXSTWUQ_\Y[\[XWX[YYYXSecXOXZTSZ[XY[YVXWX[[VZ^XVVWOXXW^^[dTYYZ[[WZX]XW^VYU[\\XXVX[R[TXSR]^_WSUYXUU[\VZU[\W_[VYaZVT]gZ\WSSVTWZ[S_W\[U\U\W[S^WTVTXV[W]ZYV]VSZVcZY\VY[RWXXXT\^[WUT]WVUUWWTS[TVZWURRU[[WVTZaWSVX[ZSZ^UXZ_RUSVSZWVUYVUPR[Y[SUVR^aUUXVUP\]XZ`STVYSWZ]YZVX_fWTWOZXRRSY[^\WZV]]WOX]Y^VUWZ]YQTWW\\[VZ`cUQTTX]R[\YZUZU[aPU^``W\`VSSP\VU[]`^TgYTWVSVSTPT[`WW^^WYTYX\T[bUTZ[[OZPRW\ZQUPQ\YVYU\SaTWdWXW_]WX]WZR[U_S_U`XZ\WQV\^YYQYYRXTZZ\SZYYW[YT]WV[Y[XZ[WZSY[[^`]]aWX^\R_VY[Y\Z]OXX[^PW[O][VV_[PYYZUXW[V^RahX^U]TVVSU\YXa`WYTXTUWVS\YY]V\^[Z^S[YXZX\[OUaZZY[WOVZTW[aNWYTYXYVXW[\WYZUXYXP[\SX^[XU[X\S]TX[VT\SW^RW\WW_UV\Z\^[\WTT][X^SUQW^UVWTV`Y_ZZQUTX\^`_`ZZ\aabX\NTTbUaWV[YUUZWUWVVW[PRSVTU_WZWZXYVWZ`[_Za[UaWYVWYUWTJX]]RXMWWaW[U^_`QbW\TZV_QU^SVbSVX[VZUPV\YYZ]Z\Z[\WWZcUaWP[TQ[W^]YWNYPWZZ]ZYa[S]WYZW_YZlV\YaUQZ[U]UXSWQVbVT\YVYVXWV^VSXYWY\\XWR[WTXX[^[Y\]ZXYXW\VVNO]XXXT\aW[_VXRY_]RU^Z`\Wa`S_TRc[ZSX`_YUWV\[U`\Z\USTPUZ\RTYPYYQ^VTc`VVQXZZ^YWP_WZZUWZ[XNV_\Z`VU^ZVZYTUU]URXXXW]X_\]hUZRVcTYXUXXd[\Y\WRW\WTXRZcV]XSZ_\XTXV_[__YX\^]X_]^WVVTNT^[VWV_`WX`^ZS[ZWVWUXZ\VS\\\ZRVYZ^TZOWUXTYQXZXZ]UZ`VU[UY]TYVY[UVXUa]UT]TWXSaaaSZ[V_\U`RX`\]VSUYW_WXSZTYVVZW\ZXZZUTUVWR]S\iT`VWVTXVUUY`YTUV[YY]\]XPPYU^TW\`X^^Xb[^`UTXT[Y\S[SbVU^R`]Q]]`ZXXTXVX]^\]U[YUW\XTZTYX[PYXPYYXPZNRWNVWVY]XYUb[WcXRTRUVWUX[]^YhWZXRZZX_TWUZYV[\\]X[]dZ]^U\ZXWTRVVVYYYY[]YZOMWX]VUZYUUXSUWaVVSXUYX]WVTR[UVRYXX[ZX[SXZXXXXTRSVU]TVQZYZW[QcXSVR`W[`^]UYT[Z\RWTYf\[XUXUZYZVXUYUWVUS[VRYWgUYV`TYU\_P^TST]ZYXXTdRX[VZ[\WRX\Z]]ReYZ_STZWZYVSWVZ[Y[[TXUa_[^UP_XYXZYTZU\ZWZS[YY_Z]PZ[Z[]X[T\XSWYSYVV^W]^[X[`UX]V\Z_W[\_\[W^YXVXYW\Y[[T[ZUWY\\QW]WW[[YVXT[]WWR[UY]\XUUTYW]Z]`[VTaT[UU\XVZPYS]V[YYSeX]VVY]Z]UYRVRZaY[W\`VUZbV\SUYZ\ZZVYY]XWX[YY]\`[\\`[X^XX[_YSOVZQR]YZTRYRY`YT\UYUW[SYZRWW[]c\VVZV_VSW[YW[T^TUY[]TW[Y]^X\[TWVT[WTU\XSZ\XWTWXOVUXYY\_YW]YXYRWgVY`\Y]a^TW]cZ[RZY]U`XYYV`WRWV`T]WX\\SUYTUY\WY\YYZTY^^VYY\X][^WU^]YUSUWUUWUXZ_T]^[TVY\[T[XY[W]YVXZaZWUS`]ZUR^YcXWY]WVYXX\OXZVYZaYVQWZSVce[aZ\V[T\YR\fWXW]X\SUV^XZVTZbWVWV[U\WWVVPUYU_WZ\\W]VS``_VZW]SZ_[XPUSS\Y]RWVZQfTZ_YRQZZQWZVRVPSZ^XRTSZXWXVT][Ya\ZdVUSYRY`Y[`W`[[YPVT`YaXXTTX\WWV[[Q`aYVRW[]X]WTaVZWTSWVR\]]Y^[^WVWZVY\`bZc_YU]XPRbWQ^TU^^\Td\YYW][aZ`YURYW[ZU^]VTW^YY^PYTVTR]YT[Ua_ZSZcWTUSXX`WT\V_Y^XVY[X^VSYVRQQXW[]S^Z^UTZVZ]W[[ZVPZ_U\ZZXWYXaY]QWXZWOYU^RRc\PX]]\Y\WbVV[V\X_VVWSQRbb[YWVXWT]]a][WV]SZ]VY^YS_WZ\`X[VdWZV_[_`XYR]URS^\YRX\XYZW^Z_[^[VTY[[[YWbRZQW^bMYQb\UV`Qd\XX\SXY^ZdTUYTTVXQ[a^\a[UXXXXZWVUXSXR]WXZZXZRUU\a^XU\YYYaYZ^XRZZ]ZVZ^\SYWZ_]T\P[_SM^`RUUV[TcVY[[VWW][^]`]__^U^bV]YZZ_[[TX\WXZT[TZU[\\Y\[SYZaVUYYZ]TW]UYXTUVX^Y\[XWP[\WW[VYTWO\VYUVYVYXYX[WW^R]Z[ZRZRYXS]W[[QXY\\\W[\]WUNURSTeUMWU[VSYX[^X][WXRX[N[V[RY]UU_bY]WTZUZRXYROTRRWX^][^\WZWYX_VUUR\PWRPbRTO\RV^WU^R^`WXZQZY][\\TX_P[PX[XUVW[\XWU^W^V^YWTWV][YVWYZeZTWW^[QWRRR[Z^VUXYXQa]ZUZ`PT][WYU[ZVZVOUU[ZVN[\^[UYYQS`WVZVT^^U[TUS[ZXZQXSPTX\UUUQV[[SXWVaVQUUMVZ[XTRVVSWRXT[\[[^ZYWSPTV\XZXQRXWRMaUcTUO_ZSU_]VVNYUNWLXWZV`V[]XXL]ZWWRVWSRcaZWMUUVXTPYUYUVTV_XYSSVW`YYX^W[\aTYQWXVZVWXVYTbYX\ZYXZ\YUW]UZ]X\VWZMXXaYYY\O\T[U_[_T\VQ[[RXSUYZS\UZa[\YaTG\TYX_ZXOWO[YTTYWX^YW\XYUX^`ZVWYRUVUYSUbSYTQZYVPVW[SSYUTXZYWVQV[ZVUTTXRSZWSRYVYS\_YWT[\X]WaT\W]YY[S\[PXXa\Z]YVVVPUVW^SVPU_TSUSa^^\SSZMXRXTYQSXU_[Y`SUY`QTY[T]VXYW\MYWZYYVXXTUacYSO]ZV]WZ_SWSPSWW`[RTUZXUTQVZ]^QX[S^PZV\WV^ZXUVZX\[SV_PVWVX[Z[X[WWXfY\W\ZYSQTV^UW[XXUYX[WZSWYUVUY^[[VMRXPXYYYXTWV\XVe`WSXXYU[ZQ\ZaWY[Z`RVWcX`ZVXRVQhWYW^T]\SVcXWNU\\YYVUWXXVY\VXT\\SXm\[Q[UXYVRWT\_[YZWW\U^W\^LZZZ\]Q[UWXY__YZZUZ\Z]Z\XOYWXRSY[W]WSX\X\VN]_XMXW`Z^Z\VU\^Y\]^V\ObQX[ZLUZRVXW]UTVTZ^V_ZWXOSWTaROWWeVVYUP_X]`X[W\SX[XX[XZVXaZ[YUUW`ZTWOX]]SU\Q_QX[Z[Q^V\\^OVXWV[^XT[UTYYX`UbScTYYXYYZUXXY][fZX\\^_TWUPUTZaXXS^`TTVXXeVVWWNYVWRR[OX]YVeUUaS_XYPY^VaSWXUUR_XZ\[XbXVYZX[gZ]\X^WUYb]VYXYU]XUXU`Z\XXPV\[TY\Z[_TW^aUYSQTWTT]RTRWWUWPRZaUZ]RZVZ[X]XQ[P[PXUW[VV`QbS^YTVY^Y``PYbUUVUY[Y]U[]U_TYZaS\YX^WXUS\VSWYSZW_WTZ_[XXXWZ\dW]XZZ[SX\TX[UWWU[P\\XVXU^[XXXX\^]Y]U][[_VhQZ[UP]ObOYPZ[W[UVXWYTWXYXRTW\X]ZTST[VP]TXV^]^VZUVTWVV^SWVT`XTWSV][X]S\R\UaMWY^[UU[XWWTZY][XS]WU[SSYYVVZaTWW[YZU[VVbWWXUWYU]VWSXVU[`YYTT_XUiWRS\YTYTY\SZ\[P^Rc\W[X[U]Z_[SY^a[ZYYQWTSWW[]XUVZXY^]UVR[RXXR]V\Y[W[T]YYTXXRYVTSYXRZX^Z\UW[USX\cTWYV]`TaVZUW\VZ\T^YYcWS`WV[R^U[Z[Z\RR_U[TW\TYOa_VXYRY^UPV\Q[Y^ZYXWSO^WT\XVYZSOUWT]YUVYVZZXWYY\]TZY]cWYUU\YW]XY]UTY\UXX[\YVZ\\PZW^V^`QYUY`]ZW^_WTYTWQZZUV]US\\U[XTX^WW\]XY[VZ\W\\^QYZX_^VS\T]ZTU[aYSXXTVYVZ\S_TT[[\XUM^VVZ^[\]a\^VXZZYS[XZRVUZWNOUS\][]WXZSb`]ZcWXUVbSYSZUX^_TRP]SaVYWVV[^`\]X\YRZXY[ZYT^QRXY_Z]`YQ\\VY[VYZLVZU`TVYRVSU_YOR_[XUYZ^U\\ZTZV]XUeZ\XVWXRb\S[UVT^]VRU^bZWXZ^WX\ZXYVUT^TWY[RZS[QX[PWU`V\]VW\ZeX`gVTRX]WY]\Z_RYX^S]^Z]^\]dYW]^WY^USXVV^XY[U[WYY[WSNXW_\Z\ZZaZ\USYUY\WSTTYRVb]YZTSZ`[ZXZYY]XO[ZXW\TZ]WYP]`U`U[WUTWeUXQ[[VXRQ\\WbUXV\VXVYTRS[\WX_UOXQ[VW[VW[[TWVXY[XVWXX^`]cQYZaTeYY[VUS[_`[_ZX[aUXY^VOW\\Y[UbWYXT\WZRXYUVQ^Z[VTUWXX_X\bTTY\LV_\a[ZWV[SYZZSZZ[XUV^Y\[YTWU`W[_]Y`VWW[ZWUSXUTRS^YXWY\]N[XZ[[[XU[[SOYXYTSSSQSZUVWZVT`\XW^ZYRUTYZ\T[]WW[YcTYV[]\SYWSZcXVWZ\TUZYaXUYWY\WU\UU]RVT\WQ]YXWWXWSX^_\_\ZX_VT]VSUWRWX\X[[Q[XWYTWXYV[V\VT[XYVUT[YRV_YW]ZYV]W_[ZWUf_WYO`VZ[\UUYVZUe^ZO`^bV^WSX_Z_^S_^\[Y[SUVSTWXVU[ZM^Z\aY]PYWZXVXVVaX]Y[QUVTQbURXQ[V[aQ[UTV[_W[Z`_``OYUZVU[W[S_VZMYZT[WQXVUc]TU[bWdTOSY^UXZZYXUY_Z^^VUWPaQYV\SUYZUX]\c]SXV[Q\cZVWUWVU^_TZ^\`_ZTUX]OZYTaeST]W]V[VT[_[WWUP\aZT\\YPaX^RZS_TS]\\]TZ\TV\[WZ^_WXRS_ZVUUTbN]U[]VVWVQR[VRYQ]ZWXXTRVZRZV^_Z_YSR[\UVX_YTVWZ\WVY]V[VWR_dYZOT\VX[[\TYWVUU_SYUWXYSXRYW]\P_R_WV]\YZVT^[cXZVWXSXVVbVQ^RXSZWVVbXVX\TacUTXWWSTWTaWYV_VY[\YUUTXSWSW\T`MYYVQQ\``VPV[WU[S^WVUVWYOW]VYV^ZX\T[MX_ZUU[^XUYOQW\dXQSYfSYVRYWZ^WRWm]YXXVVWdX[X]TYXZTTT_SXZU[SRYTP[UMZXYXZVT]ZaVZ^W[`VTZU[^\^YU\RXTY`YSQYWUSXWYWR_^XbXXUYVXZU\TWRaWYYXT[TRX[VWZZ]SUVTWXQ\UXRVPY\\`X]VS\^ZZW\TYZ]ZUYX\ZXW\PY_XUcY^]M^Z]R`S]WWYX]TT^[ZUUTXX]dY[PV^ZY_V\\Z[WXWW[LVU\YWURZVZ]cZc_VR[QSUY\[Y_]YWXXSZSYY[ZSSVTZPaSWP][bVaZXaXWX_[U_W^]T]UYT^Z[WYZYY^YXYQb[\N\S\SV`^XXZOSY[\]WUaUUZ\V\YSSVYT\W\T\QSZV\YdWUYY[UU]\ZZ\VQ][Wa_`\_\PU_VfWWU\WSW[YYSZUTU[NY[WZ][SXZXV[[]]YTVXe[R_STZW\TZYWUUUVT`XWYTZXWW\RTWT]YVW\\U\\ZXU[UVZRXXXUWXQTXYY]^X^_`UZRXRXZ][Y[ZWZYX\ZUUUYaUOXZX^]TP\^SVVZYZ\X_d[RZ]aYXbR]UZWS_XVVWWTVWXU_ZTX[VT`VZYWXY[R_V[ZRY[^\]`]\\XW[YWZXaRYZWYW`_X_S\WYPZYUUO\QWUSX[XS[e\Ua`WUPcaTZ`_VYXXYYQX^\YVXcWYZVUTX^ZZ^RX[baV[YZ[S_WWZV`]^X][[VMS]WVWdYZYZXY[]YWS\Z`VVXZ^ZWZ\^ZX\]ZZW\N`RXZWc`T]YXVX\[V\SZZ]Z\TYTVZYZ_X`[YYT]^cWZ[\W[UYYT[]Y`Y_Y[\W\cV][WVYTXTWXaYSbVWW\\XV\[XSVUU`ZWU[X[`W\T][WXPUZV[Y[]RWUTZS`VZ[[YW\O[[]WZYR[WZ\XUYZT^R\YVWMZ[YV`WZRVVXVXUUYVY^XYXXXSZRWUVWVY\[Z]X`^SOSSXS[XRRT\V\[Ta`VXZXXZZTYZVZZWY]ZZST[\XVT\ZPXVZ[^X_[USZRUZW_ZRTOa\iYbPZWXYZSUXUTUV[WT]\YYY^]\VTbV[XVZ_UUX_^YTYSYTYZUT\VUTVVYXQ`TV[Z]c\T[SVS]]XXWX[UQ]SV_WVPYT\`UaU\[ZWZX\WT]UVTWY]YXn^]b]_UYY\[Qb_[]TVMTWZ`WXae[XXTPTbbTXYTSaXXVa\STQl]X_WVRU\Z[`[\ZWTUWWYS^[Y\Y_X]WV[WaV\[`QZ]XV`^TX_[ZX\_W\Z_VX[UZU]T]XWY]Xa]UVZZ\VZYXNWY\TUXQ_WS^QZ]\]YS]X_VV^X]UTQ[\TS`YVd\XYV`\aVTUcVJYVbUa\UYfRYWU_V[[^[\[VTWOSZ`]RXYU[[T\]Xe]WYQZ\ZVZaTY[ZbVV_VZbVaX]WWZ[Z_Z^YTYZYaURW^TUUVO[\WabZU[Z]^WZYZ\XPRPX[ZUbTW^XWZY]YXU[VaV\R^QWYVVN[XZ^RU[WTW`WTSU^YZW_TSS_[]ZRU^]VQYYYVZ[[YWY[[`QYQ[[RVWZY[XWVXXZR^WVNZVVV[]][Sa]ViYWY^]WYQZ\[TXXSYUZTUVYZaaYWVZQY_SX`a_ZXXYXVV[WYXX[S]N_V[VWWSZVSWXYZW`^\\TW\_W[]ZZY^\UP`W\S]WYW`UZ_VYYU\^XW\S\TJY[U[^VSU[ZVWZZTVTTWYUY`ZQSa[SZVUYZeaWWP^WVTZTY[UWYZZdXU^X]`]XYUT`XWUV]SR]QVS[^ZVUZ`UR\\`TZUaU`YVOVW\XSNVd[X]RT^VYY\]T]VZ^\XRVX[VVUQ_XZWUWYU`SWZWU\RZYZV\bVZ\WV`_\Z\eWY[^Y[\[XUTX[XV_X\Xa[`YQXcXX^W^Q[SVW[TSZXRSVUYXU\VXZYW\[a[XY\]XWP]YT\_VXZ\[ZYWWXVZRYS\W[T^YYa]XSYZ\gZ\_X\WYXPTZWYSeWYSUZXVR_WVUPVV^YVV]V`]TOWP`ZY[V^UURVZ`_Y^V]]]YWWT^WZTW\YUYZa\XYRVdXWXWUd_SXUaXWX\N\]QUWUYYXXVZW_\ZV[VZ[YQ]Yb`TPZ]UMXdQ[^WYQY[QcXUYYd^[^XUY]_VPVZXVSV[YUXZYW]QRVYZZ[_aUZW\UZTZYZYdZ_O[ZTQ[TMTZ_XV]VXSYZY^\Z]NYZWYXRO\^YZR^YX^YXUaWWVZ_``OZPVSTS`[YZXVa[U`YZ\`[MW[RXYZS]VQ^YZbKTPZVW[TZ[\\RWYYTXZYYe\_SWT`]aVU\[VR]^S[VYVZ[V]QQU[_UXP[[\ZV^ZVaTQ]VWTXU\\]X]^Z^XW_Z[]XWW[Y\Y^[Y\W^cWbU]W\Y[Z^WV\]R]Y\SdTYaRQVL]ZYRR`_TYW^\ZUVRTWUZZYY[T][V]\\TY`[TWW[VWXXcV\ZYQU[QS_[XW[TZSZ[SeZXWWUVOYSZ^W\V`SZTYX[Y^aTYWSSWTZ[YY\^Z[^V_SXTZSZUVZUV]USYZXRYVYX_YZTfWTYTUYWTT\^dXZYOVSZSS\YQY[W^W[bU\\TTYXQbYUZ\SUUS\\RVTUXYWZYYVbVQcZ\VZYb\U^[[ZY[ZX\WVW]Y`TZ]XXUUUUXZ\UQWZVWWTOWXVYTc^KY_e[S_U]WWYX[MTU\\W`\STWX[\ZXU^`[Z\[Z^WVTYYWZXR[XVYZ[XRVWW]Sf^b[X[gWZYc[T^[]UXY]XZXPUSZ][Y[ZRT]WT_Y]^W^ZT]ZWdYYQU\bW_[[]VUU[_R__[\YVZdZUX\W^\YSiW\]SUZY[TTXX]U[ZTSWTVS`ZY^\[U^XZZ]a_`XYV[ZWb]ZUUVYZVcZ^OVY_T^]WRb\UYV]WU[XQWTZL\ZUWP]RX\ZWV\_]ZRY`XT[]SXYWWQW[YU[SV_Z][\WdY``SY^Y\]\X[]ZUSZVWYXU]VXTZVLZYYQZZZ`VWScW[[TQ\UZSY[YSZWWXY[UXb[ZYSX\WNQ_]V[U^Z[P^UWVY]SZUX^VYWU^Q[X]YXYW\gQ\UWWZ^[WX]RUX\WOWYSY[VTWXZYZXZU`X^^TYYV[W_UY_XXNYUVYR\WYW[UTIVQZTT\YW\V\\UV[WYYZSVY[WTWZ]^WV`VZ]U_]X`XZXYXQUVaYeUW[VVZQZVdYSXSSWX_\[V[ZUSZ\\XYTaXX]^Z\\NU]V\XUVQY[Y_XRS[Z[USQQY]WW[`VZZXWYW[U^TTS]]WYTX_W]`WTT\WXTTbWYOYYTYTTWWRX`WS_VWZUSc[ZbWX_VXWQ\V\QXUR\Z[Y\TV`VX]\^XU]YWXXXUUWZTWVZYT\U_a]TUVX^ZYNZVYVW[MVTOUYS^[PWXY[WRZPRYSET[QTURQT[\]ZZXTWZZUPY[L]ST\VZUQTUYSU_SRS\X[QUTSVWQTZXVUZN\Z_WXdXX_O\_WSQ]WI\LVO_XWRSVX`]XVYXOY^YMOI^SZOVYXXKYWWMOTUTZUVPWWUbRYSUX[QVTM\TVWU[]U\OQ\SUYWTVP\OZYSORGRV\YT\e\V^]^J\V\\\WQXQZTYZV[[ZQPYSVMYZNY^Z[RWZU\XUZVTPUVVWP\aHVVWU[ZONXQYTSUVYVVY[TSLJWZZZ[SRTWWRTUUWWYU\WTTMRV_VZQNRTSRTPZZa[[]Sb\]VWZQTRXPRXT[X[VWW`YOTO\PUR[ZUXVUVV[U[WWVP[WQ[^YXS\QWL]TT\MVWY[Z[SXYUOT[ZV[VV^YZOW[R]LVZ_SYUNR[VUZW^SYZZPR`RY^[WSWZQVVXUXU\[[]VZSUX\^[_]UR]_YUTY]TW_XVVU]Z\\`^U\RYURW\[`TPQS_T]Z\WZbVYST]XX\YY]XWcZ^]]WZSZPWUQYSRVYS_UZTV`[\TXWSYaYU_TUW_^WZVUZ_R\STVVXXWZVTVWTb^ZPXUW]VSRTWST]YW^]\VXYW`\XUVXMZ[T\S^ZZ\QYQYT[_Y[]`QVSWX^W\\U]ZXZ^]]]]T\ZV[SebWWW[_PWYYVX[aTYVZ^\SVXXVYZYXYR[\WXX[VYXSUVV_T_T]YaVVWZ[V_]T__ZYS^VSZ^UQY_SS\W[_^V\U]S^R[W[XTXYUYZX^a]]VRY]]\SVa^T]]YXZR]SZS_UVYWRRb^\_XX\U^YTXY\\R]VXXQZZYVPZW\_K[[_QeW\SZQZZTW\\Z[Q^]RZYXYWWXYWZZ]Z_UKU]]]X\S[[SWUYW\VXV\YT`UTUYWZ^XWS][d[eUZ[TX]UXV_ZV]WLT[YT[ZWP_WQPZXSVUTXZT^b`XcXZ_XSUU\[UXU\Z^YOW]`SXSOXTW[W[VaZVbSN_ZYX^SaZWVUZ\bW\]QV\WUZQWWZRY\[XXM]WX[\WWT[U[XP\WZZWNZTWYZ\VVU\Y[^T\[fWW_Q_[U\SW^QUSYUXXU[^S__YVV_ZSUZVY\[^SVVV_Q_[WQXXURZ[VZ`\[ZXZ[RSYVR^YZ\eVSX\[_U]WTTWWS[]QYbUVQZ_M[WU\aVVWYTUR_ZUTUXNZPT_\\e_VWXa^XTT^Z\U]XU\]MY[Q]YXV^\UUYU_\TZUSSU[WYWMbOYOYVQRSQMRZXYUe[ObSaXZUSWOQXXR`ZYdUR[STVbW[[U[W[^``U_XYb[XVYVcUPYYWSR[^\X`[[WaW\XUYYaVXYSY^SZTYSWWYYTeYWU[UX[U\^TRWSaXWWVXX\RaSbW[[_bVZVYXT\cTVZ\[XW_XUS\XYSY]UURPZX\R\[VV\YYRUNR[ZZXVTZYPZZZ[[bX_^YRcSXVYQSVWZTVSX`\eZWVUTRQYUWTZTT\RSbR`X\]WbS[ZUR`Y[R\SVXTQVU\PS`PZ`ZXYaU]\[XV^TQV]VWXTZf[\^\\UX[YV[SW][XVWV\V^RYZTkK__Q[^Z[^W\Z]ZXUYSWXV^ZYW\UWVYWM\RdZZWWVTVYSSY^_WUQYZTV[XVZVVPQXST_W\XVVYY[V_LQRW[Z[YVW_U]MWT[XZ]VWTWVbT[WV]ZY^VTWZQVSYRSX^UPWW]X\V_K]UY[WWWZPPV[UXX[WVY\Y^U[OY_WcUZ\[Z\`WVTVaVYSXXPX^YZJ_\X]QSQVXWUPQVXVSQW[UUYVVVZUTaaP]_[VT[^ZXU]TY[ZYTZVVWN_W]TQUHTSXVXXX`W]\VU\]T[XWWYWXXWRVXZUSXYYZUW[XZV\RWU[[WXWXXRXXSVVX\Z\VV^ZRXSSUVZ`X[\ZWTZY[VVX\]]IWZZW]`YU[^]YZ[ZWZ]YUKXXUTXVUXXY\YVYZYUW\X^XZZWXWX\YYY]VUZV[\[XY[XZZZXY\XZ[_XVYYY\TXQZ^W[[^]][YXWTWZW`YY\WXXYXThY=U\S[[V_ZX\X[[VQXVSXXX\V\XYYXZVX[\XXV\XXYW[U\[`Z]YYZVXXY\ZV[Y]UXXVSVVZZY`XXT^QZS\WT[YW_YZVW^WTYWYVUU[YUWXX]XX[WZ_]^W[\W\^WZXZWZ[VTZ[[YX[[XVY[XW]Z\ZZTZ^XUR^\ZSZ][Y[VTYXSYXYYVWZXZ^UWWZXX]^U[Y\ZZYR[WWR^^U\YZ[U\^TUXTUWVV[\TZ\Y[\X]UXYYZTUXZZZYYW\ZZ[XUMWXX\WY]]UVg\aV^[[^[Q`WY][`YOTccT\VWQUPTXU[VXV]aTaUbXU`S`XTZWXXUZKURYRTgV_OX_[VMUeXV`R^`7[RUVeY[^^W_NQhjZUWQWH_]\ZVRUWYVf\RaV_eXT\Vb^aV^WWTS\\TR`ZR_`S]SSTU]ZW[YQUUYO]VVRVhZR[YVVZb\bSbS]XYYZWbNZTONRTW`W^b[WYV[WWW[VT^bQ^]Si[cZ[PWX[W`R_^T\]XWZQYa_ZQVVW_gNFNZY\[WTcOX^V`PVUYSVYWI^VWd_QPVRV\WVOYVPVb^IeX\W]]VPURSWRW^^WUaRR][UW\aa^VTTQQTX\]UZTPSRQWR]QTS]\XN_j^[SaUSURVV\QdVQd`STX\ZTWTOOUaR^YZ_U]`YP[OWM_]QIVOSVXSaWG]T[T\U[ZXb\TRSTYYVQPc_UWYaY^VUZTP]\ZbPV>]]aXVVVVT\qR[YV_R]Vb`X`XXXYPZYS_XW^KYY]VTZZ_[c`[W^VZVWUW]ZWSiNYVi[NU[bR]WdZ]][YXWaUaTSWUVNQ]YXYS]YTVQVNX]TXXf`[]_i[[SS[Ub[^UXUN\[[]O]\ZX`]ZTVZ[[ZW[cST\XYWQWc`WRWZZfRUT\[d^RZbYY[YXX_SMYYMXYUX\V_R[YaZYXTQPP[VaUcYSUWSQV\XTTXWO]aXT\VSZ\`Q]PU[YTVZ\WSWQX[gYSZ]W]TQVQST\SUYY_VXZ`YTWZ[RU[eVZfQVTVXb[`UP\RZ^\XTaXUXXc[S`VWVXY_V]XYRYY\[S\T[VTST_\YXXSZfR^d[[Y[[]TYPX\]a_XM[\bW][UY_TT]YadZXh^W^\ZUVWW[]SaTfYXXY_bXWPZTVXZT_N]RXgW[^MSU]`]f[\_^ZVaU\XZT\US^\RbWXZT_XRYT`WZWYeTQUZ]]YTTXVV[aY_Xd]PUXW]]UYXXZM`UaT[X^UP`YXST]TdOUXZ\K`UUPPWUY\XTa]X`TWY`WZSWd^Z]^[Wbdc_U^YT[Xd[XQ\dYMP_cY[TUUaTWP\]_T]_YWU]UUb[YZUIWiXQV[\VbW_gZV\\f[QTWXX]XWXQi\R^ORZWa[aYWU_\[`]WdRS[Q^LZR^UWcPYNY\WTO`[ZYWW^bUW_^UZ^WTUZU^][WWRXYW[T^]\Z]d[JZ_PLbWSV]^[[LZWW[YWUU_QY`c__VaZdcZPYgUbUV[^RfSZV[YUe_Y]W[W`W_Xe^ShVXYTNhYOVWQ]S]TU_aYcYScLV`YXZ]TSYbST]bZ[JZ[]^Z`g\[\]WZVXcXaYV[]YVcYNU^`bYVTfOY^V]^W[WgnZWTZYUQ]WTYPQa[XVXY`]]WQS\UWZXVUWeQTeV[YaTXYVS^R[]VYU]Z]ZYMS[ZUZ[V[UY\PUTTTXOMU^XYaXYT\X[T_[WXYVXSXXXQ`S[X]WUZ[^YTYSYZ[YZT^YUKZXZ\PSzW[]ZTYVUdXYWVTOZYT]]dW\U^Y\WYYRS[YXWXWX[X\_XVVWTaVVW_X_][[[ZU_X`T[XVXY\TVT[Z[\V[Z]Z]ZUX\YVYS[USS_ZYY`XZSWbYTTVA`jkTPXYY]USXYWTPT[\VZVY[W\VX[]ZWRV\VSN^[SVV]]Z[UU_XYQ]XYVXRY\Z[XTUPRZXYVVQ[VXSWOaQYWYY^USZ^QR_bXTTXVRUV]`YZY]YTWX]Z[][U[[\[RZUU[T]WYWRZ\aZY[^V\[YV[ZXZ\RXRT[XQcTa]Y[\]VUWVUWU^\WUZ\WVWSXU\V\VVYY^VTZX\TVWUXYZTYX_LXX[XZ]YZWVPSVT\Y\WWaOVU^OWYSQW[XXYXZ_]_YSTWZZZX_^YU\^V[YVZ^WVZ]VaU[]\VTZX[]^XVeYQ^_]RX]Z[R^eV\UdV^[ZV`UWZYR`X`dXWU[Z[bTg[X[VY`[W[WXX[[TX_O\_UU[]TX]]^]SWaXXVXW[TW`ZX]W^PZP[\\RX\W]VWZaXZ[V]]V]YV[S^Z[ZU\[T[LY\XWX[`cPWUNUXR\YY[aW]WU\^XZRR\`\XS[T_YI]YYYYh`W__VaaSXVX[`_]X[VQ]T\WWW_eWYNW^^XXX^U^aTS[Y\Y[SRU[aZT]^\Ya^WQWaVY[WQ^`ZZW[YY\Xi\LbQWUYZaSbV_YVS^NXdZ]VUZ\PQM`[XQUTTaX`\X`SXWT`aZT]iQXTWRO\[Z\ZUPaZQYZQY[[Z\Z[ZUZ^VV[`TVSRX[[[V[U_YU\R\dS[UW\X[VYT\U_NUV^V\[U`[]cX^ZYVXWW`]TYV]T\]]]aVU_\b[ZX`]T_TX]QZRYZ_XVZX`T[bW[VWQYZU]QZ[XR_U[X`TO_WUcVU_b\WVV][ZS]S^UT\Z__V[R\[ZZOYWTWXWT_N\NVS]V[XWW^TW]gZYOQXVXa]Y]UU\bXSZSWT\YWUTZ]U^_Z\W^ZSWV^[YU]ZYR]PWXTX]]TWV_\dXY\\UV`]W_LZ[Z[ZVSZUUY[YVXSSL__][`[`Q[UXVU\`[_ZW_XYU^YYZST[_R_dY\^W[aXX[aXR[XUZU\YV\Sd\W][US]Y_RZf]P^WY\T\`Y[[^W^X]UWXYZbPP[W\[WUT\^XYS]T]X[VV\]\U[^WWXYXXXUX]\RW[YVQZYY]b]PRR[\^V\\Q[[_NYTW\WVT[[W\][XaTVWUOUVZUTWS\WPU_RYWZdWW[O_V[O]VX[UT[SZ\\U[[bW[P]YV[UQ_W\[][ZbWPXTXb]TL[W\VSUVW[^WZ[P\]RT__QTX]YXcXSXNYVQ_dXac^[__ZXcdjX\ZUW`\Yc_\YPVi[bTZ_S[]_YZ`aWY][Y\P`\TZ]TV\SXYUXQOX\TWWXY]YXXWUWYUYUSNOSXZ`XO]\`VWWT[^\RZXbZUWY^aiXVeY_g^\[XR^SX\R]`UU^ZWZ_SdUa[]bZSVWTX^bS^b\\XXM]_XUaRTW[SaZVVVVYVWc]Z\ZU^[eYUT[R^ZZ^^PX\WX_R[WU[OVY[YU]U\Z\S[^XTbXQX_Z^US__T\TPaWXUXXVUVYV[XX[Qa_^VXSSV_W][\eWXYQ]^YZWqX_UXS[WXX][\S][FXl_[b\`V][fW_WO]NS[WU[ORYU][eUaUZXZaf[WV`d_PZ^aWYbY`Y`]VcXLU`]W_]QW^`O^S_XYZVZ[^WbbUUU\WWYVY`PQ]]`V[T[R_\YYKTWWW]T`a]a^SYdYVbPVYS\UYULYZcfZWY\Y\WX\bc_T\SWURR\SYT[TcX[OXX_YXbYWV]]Y`ZW[e^WX`S]`WYZWVbT\`gY^cWS[Y`U[ZdXPWUZ\\^\WQVVU]]XW^T^cSW`QPa]ZWU[]UUZTVcYZYWUX_[YWS`Q[T\]_RR^U\XQY\QWXMZWXYSS\\^V[[WR[UY`RUXRT^W^X[TLY[UaZ][`VYQVZ]Y\LXYa[X]dXOXZY]UX]]\KZ\SSZP`gT]TZNcTSZSKLURQWTZQ\TWW]cV[SXT[TWXYec]U[^YYaUWY]bLXXR\V^XPXW[UXSN_U[TZNXZXW\TUV]]\Tc]\`WXmORYb^W[Z]YlY_aZdTVW\TYVUZT]NRYOV]Z`d^RRXXWQU]R^\ZUXVYWUX`RQ]`[ZUZ[[WW^OMT\OX_^WZ]SbXVYd[[Z]VZXXYOR`SX^XVX`XaY\YQWaZYXXZXaVU\aW\Z[ZQVYZYZ]X\WgS_Z][RaT[fY\\>aQiYVf\Y}ZrKoV_N`mdfYx]N`i\\o\m_e[]neag]\Wfaben_fT\\Vak]nlSL\a_d^VnWj^KL`bZ]YPXeclZeM_ffh]nTa[O^_jiXbdimVV[]WiT{Tg^hPba^\^`V_Si2l`W_dW`^VQ_]\^]i_]`YW^of]VZaYcmibY_j_CWi{_cQdqoaaccWa_kXmIXcd^YQ`SP[qJb`^`XUXcU[]S^wWVhT[^dW]iZZff[R]XYZ`fTiZXraeccJcT\e^T[_kSd`X]\VU\[KYWhjcbfTe_ohc_^Q\YT]WVYNXWXWWVXY[ZSVZWZ]TZa[S]_TY[USWWPTXZYVa_STXJUeSS\VPVYWZXR\bZWdaSV^UeWQRUZ[VbX`VOX]YS_WUXX]UaR_PR^_WUZLXWS\W[]OROW_YSY_]W[W[\ZVZY\\SbWUUY\W\XU[XSdWY[cYZYXUeR\_UXRR\SWUYVTZYU_S[UQPXN\ZZ`ZXZTZY[WVZQXUVWSTTZ]NcX[UUUYV\Yf[\PaMSVV^VQXZY^V[SXbY^bW\XS_XYQT_XSVYTXd]M]XTT]\[T_W[n]\ST^_WVa^MV\RfW[[cWSVYXR]\d^Z\Y]WU[QRVTWWUQ[[ZbP\ZYQYVQa[a\WYfXUUVTS^SS\PQ^XSS[]X\WVSVW_ZTRWVY\U^[XSaVa_P[UQRXVTffYYWKbYVRZS_[[WZWRX\`XRRcQSRSY_PYU^VZZ\WWXNOTZYYVYT`T\^_]ZOQVT`Wf^XXaRaW[[[YQ\WVZ[QZZWYTcY[S]VT\TW]]bXWZX]]SbYY^SQ^Y_LWO]W]VW^aWRX[YWSV`Y[V_cXa[[ZYNVUZUVNXXYXY\a_VTTZ]bU^fVXYTXYOU_\YZZVR[]\VUi^U^\\RYW^]S^Rc]\Y\U\ZUY^W\\PSXae\_^ZN_db]VWQ^P^USZ^^RfZZ]RYbW[RZ_Tg_ZY_VW_[d[TXYSYUW^\XUWZU[TZ`[MXR^][\RT]\`VWX`YS[e\Y\YLa\\U^UKdUXbX]RYcTPY[RZWS[eT]S]XVRYZ_PSdPTWZXcZ\\XUXV\`Y_XR[[SWZa`MLO\_T[bU[]\T`]`WTWT\`bUS^]YSYX][WdNVTXVY]RW]S]UXXUXYUVQX\VTU[XRXRcUUW`YTWZT\]Z]f]gU\]WV\TUWZZWYVVV\YNcYX]ZYTSY^VSVY]g\Z\abX^R^UUWWYU]e\X`eVW]Z]WUVYiSQO\Y[UWVXR_V^R^_TZSVYVZ]RRSX]_NbRZcX]UP^\Z__S_^]Vc\\`ZScZZYXacWU]ZSdX`XUZLUZ_bc^SbXSU^\[U\XUY]\TZU[[RXfhX_[VZKR^YU_[SY\T[dYbZ[c\[]dP\W]aZZWV`\UQg_`]UUVX]ZSR^[WQU_[TdY\O_[`Y^PRa]Vg`Y^[[Z`\W`WX\W[SVYS_]fVQPTUXcR^\UWW_]d``b[\UhW[]Wa]ZTSZY[a_]WUVV[SZT[\UdZ]NXVTY\SYXb[\Ze\VVSZ^NhXKM\\Z[YaV]NZX]U^]WVQUWRdWPP^[UZY\Wd[dX^V\U[^UZTe[SW]ZWVQ]\ZWW\X_R\MT_OS`ZWRS\X`\WU^U[YXZ^RWT_ZVT_YfVZWX^S[[YVTSV^[TXVT^_[W`]bdSaXUSOeUW[HcaXZa^fZd\TVV]SXRa]\MTUTYQPW\WX]ZWRVQV]KPWUSW[]ZTYO^SXX[YbVQ\QPYU\WOTZ[QZ\CU[SYOS?cZYTVRXWXWSRU\XQW[Y[[UT^UXWTcR\ZQT]SZYV\RWUQSURLUUKVXPVK]UZQTKQN`T[TXXRbKOTV^WYVZ^VQ^RY\XYVXU[cfIZVUY\UZTVMWM\N\LPXSO[VVW\UQOUTUY\W^VYYRQ[VRN\Y[[\[XUVNZVWV]UXSTWRV^OVRRVLVVS\T[]Y[Q_^[QWOWRW]UVR_TSW[TRY]VMTQYYTUSWVUOUY[ZWO]Y[SWdWVSXVRPZ]VJVVXZSY]_ZTWOYTWXZUXVTTZL_O[TW[^_XYQWR_Y]VSUbR]_^OTVST\YW\gWYQMRTe_YeS[Y[VQXT]]LW_W[VcVOSTXR[YSU[^_SSMTVY]VM_a[TWXZYYU\SYYLW_ZOTZTYVQY\UXXP\XWYLY`^XQZWS\Z\aY_U\[^^[[VY^][\]\`WWZ_[][b_Ucb]_a[eXZU[Z\e\\WaV|WcWUR[qZUZZZ[]U]WYUYZP[ZV_U|\\ZY]Z]]]\bUY_\YSZY]V\iVZ[XTU]\`T\ZZTX\ZlS_Z_\[Z[Z``Y[_\^ZU\b^pSYVX\^]XZ`_\a^^aXX^[UXZ\VYWajm[^RTV_XZZYY[R^Tba\eaXeY[[W[ZWYVZ\V\XX\ZY_aXS[a\T^Re[]\eZ[[\XS]ZXTd]XZYcVZW_cTYWUT^]WS[Y^[[Z^X[``T[_U^ZZ]W[`WOVVD__V\\Z_X\W]aZ_Z`XbZ\]_b_[X]VUX[V\O\V`[]\VP[[^WTb^W_\eXWX[[ZXY_YS]Y[\c`WT[`SbV[XXPZXYYTa[YXc]_\RWXcaX]_]W]_T^X[aWSd]US\WX_]XWYZ_WXV[X`da]N]^]a]TS\[[]T`^]UPXaY[[Z_YR`TUXYbR[VZVS]k]ZUYX`RV`V\\WZaU]U^\RZ[YXZWc\ZYXQQO^S]VWTUYYVM^Yc^SU[`NQXWW`[V]SQQ\`Q\S\h]cfSZWY\Q[^]XSS]\b\XYX]_jWZ[\^ZZUQ_bU^Tg\VS_`cWabV]XZ]V`Ma`Z[RU\V_WN]SXg[Q`TeYVUW\[_TWWRXKPZ]P]P[XYVZTU_^\cURVSZ\T_[S^W\b]aU_\XVQS[WfPX_VVZ_X`YSRRRN^NZOdVXW]UMbWPV^UUSYVWS]VWYYXQ^\ZRVWbTYWL^VT][]YP[\\[OY]^UbRRXZVX]_VVVXW`TPe\]Y[iZ[]^Sab^WZUQVVW\WWZ[dPV\XSUR_Z]X^]UUecZVXRV^Xe\QVQXW[SaUaWPWaXN^SR`ZXX\\T_h^[VTX\T[WU\]]]]dTWVWYZT^ZRW[Q\^Q`TROaWW]V]VR`ZST]T`XTakLTY[X^XUhZ\^]YNAYlQ_Y_fXZTaLXO[^P_\YX^\]aO_URYWRK\Y\]R]Y]NRW]XNRT\UYQWXUZ[[XbSS`aS][[SUY]R_Sa^]dSWV^RZYOd\^XUNXU`^LU_RTcSRYTWaWMZXX[^SSPSW[^N\YWQYWU[[VSXW^TYeUeXYL\R^[I[\XST__TRcTfYZ`YUYVM\[WYaP_XnO^TbW]ZRTUXWfWX]`ZYWPMX\XM[RY^a[ad^XPWVX[`\\]XYR_WUQfd[WUNY]X^`IWPZU]UMXXLUL[W\`TP\WdUU\QXMXT[OWOZ\K[qU\^[aVMT[ZSV\L^HSWYUWQ[OVb[]XSTWWMO]OT^Q\ZRYY`R]XWSX^TUW^U[TQ[X\OZ^]XSU\mWRX\YgXWZPRH^eXV^XQZ_NVRdP[\XTVS[^[bUZQS\Y`a\[_`c^WXU]\]VTN[]Z`WZ]S^S^Z_][_PZ\RUSUYWUcaWN\LPWU\XVWTU`[^YWY\SYYTNVPU\[VO__\UPe[URXV]aTQbW^YbYTUWX]YYbYTXo\XSWPIXXWM[^YZ__T\YQ\ZUSRP[]W]YOYSWUW`XUd^dWS\U]\[X^bPVST`PVb[T^MJZ`UU[S]YUUQaWR\[c`M[SZ[Z_]c]WaX[XY^WWXYX^Vb]WPYV[WRXW_S]YT]X\YXQ`[RV_TSZU_U^_YT\YR^WZUUY\VVT[VY[Y`VWP`XTRbVSUWdX]aRZ_ZXPO\aV^dQWOZNQ\bYYOfR^X[T_\Y\YVZSbeXXS[V\c[ZZjWW^_`a]]Q\[[[XU\XU]WUYUUaUVUVWaYYTXZZZ\\URWZ[ReRVU^[[XTZe]PUVVY[aXXWRTWX^\W^QWWZT^WRXNa^TSUZXNSZ^UYWYXZRT[^]\ZUXc]^ZXWUTS[ZVZW]RZS_Y^^_^XUP^Y[NUU]afW^]YV_SWaWSPU\VZ^W\[XTZWZUZYUVYZSPSUWXUVZZXSUY^`[aVWSSC`YcXXXZ^_bSUZST\_]X[R]^]WMUSSZWc\TY_[Y^XUb[V\UX]UVZUY\dY[WY\Sa\XU[XSW[W_\WSPSa^XWVRTWWVQWX[]\[bZYVc[WiRWSXZ^aYe][YW[XWTTRW[aZXYUW]X`XU]TX[ZXYTVXV\U_XW\SZ\VW]]WbZ[WWP_`VYZV]UVRTYZZ^[X^[\YUY\X^ZWXXcS[VVUR`bXYO^`ZVP\U[TZ]WUXZUWUdW]\YXUa\Yb_eXY\U]`W[XVS_XWW_e^WZ\[[Sb]Z[VXTZUV]\\]UV\W[Y`\XQZXOWYW]X]RbUZZ^T]X[XZWYYcTYVW_WY[]XQXUYaWUX[SbTZ[XRXc_TSV]ZWZ[ZZ[UYR_\ZZ[N_ZTY]XZVYUVaUX\\YYZWTQoY]X`V]\a]^VUUR[QTW]b][a\Zk^QZcW^_Z[]X\XSdRSXdLaTXXZWgYfbad]gU[YS_]aW^YUNXSR^[[WYT[U]TK_VZY\]Z^aURdV_^_[f\\T\R^`dXT][b\XYd\\SXX^^ZZ[cSVZZ[TWZVX]UX[Z\g][[[Z\ZbZ]^WW^U``QPV\OYUQWR_SUXY_S`XW[caa^X^UYbV]VVaX\TY\SfV^\SU][_V_R\V[[S\[T`]_]XZYZRZXV]b\]V^[YTYadhc^Y^`fVWWj[aNZXTX]X_V\Y[`]Y^aTXVTYR_Y_QW`V[XVZeX`^TUIWbVRS\V\a`_Oa[dY\\cWaWWYWUcWRY[aS_WTIcbX\[Y_NPban`TY[aVRV^]S`][UcYZX]h\Ua[]X[[SXW[Z\gOSYadYQ][VXTUfYaY[UWV`T^b_\WWV[W\Q[RXU\WU[YT]YN\W\_[]RZUZZX\_bU]dZSW]YfX[W\]VSP]V`RZeWZS`Y_[UYUbZXZ]WZSVV^RVV_M_ZZd]]ObZZ\UXWTU^^]Q]_caUY`^VR[Wb`^ZU[\YYYVP_a\UUZZQTSbbXW[Z_bY\YUVeSU[W]QUV`_WVZ[TWXSQ\[ReSYbSNY\WXVTWXXR_Y[_]YZQQW^ZZXVPO^\[ZXbVWcR\WXRXVR`]^TQaY`U[S`P[ZYWMX^XSWS_`[\ZYXVR\V_S\]W^[O\X_[^\SLX_Z[Z[\SS^ZNV_Q\^ZR[ZTXdOSTR[]OURV`\[TVY[WSTTY[UYR[SXT[^V[XV`W[_XQYUZNWWWZP`\b^VX`VVX_XS`T`UUObQWZWQhTX^bX[WWPUV^WX`UXYZZS]QZ\[ZU_S^^ZUYV]Y[TOVVWW_ZTXW^cZ^UX`ZW^\N[VScWWYWQ][[[SXZWYc[dSV`a[]aWXQ[RWT\[[RUd[VhTX[__^XW_`\XZaUXXTXY[P^Zia_acZ_X[Y[\][]Y^[WPhX_]^\[`W[eST\`Td@V_[Tb[[ZZXVP\aa[_eZXAYXR]]][Z\TYXdWbSVV[PdSQ]PURS^^VY^SV]YMX``UVUWY`^YSNVVW\[YWXL]\USRSX\`ZKRWPYYUa]TQPZaUQMVTbbYM]bUhT]YZSYRRa]_]`WZT`_P`a[[`YZVW[W[VSQV^U^W[YLWPWV^]ZTLQ\Z^]i]XRPSb\YLMWV\UZM[XVTYgYZaYjUXR`]YaYSW\YXYYVWYWWVbZSYTTQVS[d[U[SWXZ]\RTX\^[X[[UZWUT\ZPiZX`[L``[YYWY^X\MaX[Y^QS__LUVQYX^Z`[\YZ]PY^bUY`X[RG\[]QUNV[`XZ_^Uc^ZTX\]YXVXU`]Z]cbSORRYU[\YMZk^OZPRTX_SZRQ]]V[\Z[ARV^V]W[_cbV^^`[^Z^Xc\OZU[_b]^aU_`LM^Y\_U`\[ZRUWZ[[[S^V[][]^bK[ZYW^[XSXSU[ZZa`T^LW\V[]]RWVXWOP]T\]][[Z[Z`X[YWS__QcX^W^^bd_\]Zd\_\^V`\ZZVWZYW`XR__]WVOQTMOYWS^Kbb[gSdRYW^aX^[SYaZMXX_W\S\\]VTR_][a\WUY`]TgVYU\a^UV\VTXUWSSIVXU\]QYY`WRbVNZZXYa^Y\^j`V[aVUWXcSWW\RZ_][\ZVR[Y^Zc_\c]SQQYcTQ[Ycg^Y[^V]QXZ[RWXSdSW[U[U[XNUZ]WZZc\VYZ_WLVVVZ`\[XTTVXYTPbLjQTWX[[V[YVXX^P\^TgUQ\RYXV_UcVa[Z^\Ybb[\TUYZXf^\T\`hWW\_N\]U\]ZTM[ZXe`WbZVSWTW^ai^^e_]T^eWZTSVZ`Y^V_WTU^l[WYTcZ]\USQUdT_Q[_ZUYO\[XVd]b_`QaSZ^XY]]]SX^Z[__U\]ZXN[YdZR^YW_SVZ]UaRQ_V`Oc[RT\]WR`VOVW_ZT^U`Y[XRWW[PRZ\`ZU\aYVW\afRW[X[_T^PTTYVZRXXaX[VUW\`WP_Y_[SjRSa\]ZYMXW\]YciTT^\_XaNUeYQVYQ[`UZWYQUdU^TjP^UQ_[[ZYZSZZWWXXL`S[_PXf^\ZNYXXa_^\dZPU\][[Q^\\\^[S]XPM_^\YU[UVdb_QX][YWU^fRVS_]aZcYU^ZT[^ZWbE[VRRXQaWaUXXWYWS_P^_MW\ZUcZ\`OdTR\SZ^_ZRZTXWZS^_Uf][Pg`YWO_aN_YUd]TZRa_OcZUXS[Q`\VMa^ST^TZ^_WX\bSVYSU^VV_XaZSZZ^[ZX_Y[WWSb`YYZTVS]V\WZT_Z`\\X`XTl]TXX`\`VWUUV]ZO^Q]W[u`Z\XUY[WVYT`TZZ^V[_TPWU^[\]V\\Y\][PYSU`[]aVV^UXZ\XXSZ]VY^ZW[TWVYUPV]S\X_X]ZQRXY[YSZX^ZUUXbSYTdVZTT\[]YPU\XW`[^TY]Ya_]T_TTWWYZ[^TTaRW_\[YWUZSYXXVT[VX[V^[ZaXQX[[VZZ^[VZ`cVU\X[cT[_ZUaQWZW^aUZ]S\_ZXa[[WUWUZvKUVYXU_VTUYZUX[[Q]Z[S^ZYWZUVT[YVSQTZXYVVU]VXcUZ^TXVYa[Y]UW^V[\Z[YXZ^_JU[]^\ZZVa\[YYXWXX\YXa\XS]X_dVZYZ\[]ZXX_VTYUaYZ[V[XUWVTR]UYUXXUYVZ\YSYZXXVW]WZZW[QTVZUZUZYZTdW[MXNUUTX^NV]^\WYPNXNRTX]TWO]ZLYUYUZST_OV[ZVWYTZTY\QeWVW\XVhSfd_SZPb\`UTWZQPV^VMZM[RXX[UVYQXTVRURUX[[\PMMZJ^]MVNYMeVZXQ^\Y^ZTXQSYWYTZLXTS_V`YVZXXWS\ZW_]\YSTRcV\T[YWOVWUXTGWeKW_^PSS\^M\UURXUZ]QQPXPaY[S]QZYXWW[U[ZV[\QXaaU]XOT[ZUUXVYQP^WXVSVXQP_VWRaU^QQUW[ZWW^VU^bU]\UX^YX[OWS]]XRSURRWYX`i_YWX\UTXRUJU]TUXX`YWX[XUW]Wbba[VT\YZ\ORWQPZV[Y[TV^T^\OP]TQWWZY`YSWXUQZY[^QWQUZV`_WZ]VWVQ[aXTSXY_`ZLVS[QZ[`eQbOPYN[TbUSRW_RSZVUQUQ\VQZKO[P`[TMT]SV\T]^T[QWVWU]VTU`SY[dY]\]Q\U_[bb\][XWZV\YP[UY`UUZRYXY`]WV^_Z[NY_Y[[Y]]GUXgXVXvTVZ\[WX]Z[VXX[YYV\YYSZa[\VT^Sa`O]^[]XUXZ]cYTLSYW^WY^]UYTR[YRVXVXZUYQRaYUZbXQT_U^TXQTWS`PLSY`W\\T[Y\ZVdYVZ\^YY_bTRUUTXYX\SUSZYUeZ[\WWUV]YZ[SSZ[Z[ZV^OX\YSYX[^ZZYWZVT\WX]VVY[WaU[X\ZXXPRWV]TVV\Y]]bOR[TX`TYVZ]ZS`]`_^VXXZVY`_dX_MU\GTZZVXWWXY_X^YVX_VVX]VWVZQVVTTb[V[\PZTYXZSbXRTe\[WX`UX[SP]U_XZV]U\\X[XU`WY\WXQU_V_WX_pZZ]Y`[S]XOUV[SYXZTTWVVZXXYWWY\\_WW`TTUZNV]SZ[WW^oX^TVUVU\V\PV\Z\ZVfWdNa[bZP\TTUWSUcPTSaSRZY]`P]\ZYZSS[W[YW`W^T[WTYYUY`U[WWRYZTT^XZZZYTX]RZXZY]XVbaUTY[Z]W`PRTIRUU[]\`ZYU\W[X[`_W[[_W[SYPWaQZ]_UQXYZYb\]^^_ZZUUbcWZWVZTZQ_Ya\d]WVT[\X\XYW\\`T[U[c_\N[YYZXSZW[ZYRU_WR^TWb[\ZU[Y^WSW`^VYZU^]^_WWX^[W]XZVSYb\Y_XYVWV]_]RiST[``_SZW[_RUWOUZ[Z_\]WX_d\OSSUX[V^WZ_U_UXRTWXVVd_XZQQ\\YXRTWa[X^TbY\\\\W\UT\YUZ\Y\bY_Yd_PXZ_TZYYRUZXZ\[R]PZVW[\[[]V[TZWVZ_\^\YY_VY[USXWUZV\WZSYYcVWUROZY^cb_UYX[T_]aTQ[U\]ZV\UY`Z]VYXaU\ZTT]TUXhTWVT[P^UOWWYYXb[^YRXVbXZ[X^[Y\YSYYPSVdSVXZZX^U]XYTYRR`ZRVV]UVYSWOYP`]YXXXXPT\PWVSPTQR]RUo]VXTY[WRTcQXQWP^]P[_ZOVXVV\TWTTRW_X]WTZSO^NS`[WS_]YZXLVX`\UZWTTSUWXYhSSZZPSSUS\VZ^XZTWVNYWWP]V]\X]TNVZY[YQWZXf_^S[UdXeVZ`]ZTXNVZYYRWa\U[WQ_^SZV[[W\US_PZ^XTSVWTTZPbYTZTT^VWYaY[RTUVg_\[bXYfd\O_WNXZ]SPVTSTfYVTXQeTOVS]QcX\YX^Q\V]T^VOWUdVTTX\[ZUWNZTbSQV[[`VQRZTQUfU_RYRUdUVQ[TUYW^]\[UP\aVRZYRMP]TXZLXVRP]T\YW_]Z\W`Y\\RT\S[V_`WUXY]TP^U^VXPUTUWVUQRTSUVUSXY\UVgTW\RUU]^S]TTYW_[OTZVWVb[[[XXd[[_^XUT^XQWXXZ]XVU[W\[[RZ\VZX\TX]XW_]WWR]WWSSUYU_afaZRXVXWb[QV\aSZZVS\UYUPXTXZXwXVWUa\YQLT\WT_gVSZYTJUX_YZ\YWZXU]QV_fYbYZTSW[^[`VYWUXTVZUZV[V___ZYQ\XWW^VWX\URUTWVP^]T][YC_SY[WVXX]VSWWZ^YU\SXZVPYZOWVUXZZTVY_V\TX\^WZY\XX]U]]\]XV[^XVS\U^PW`JX`\]VUPQXWX_\YNW[Y\XXaXZUW[XS\[V]T]Y]PVZYTW^Y\PVZZ^UVZR[^YYX[VVX^YYW`YWXU]X[U[VXT`\acUYa]Y\WYW[VJTTTUT__SYX[]WV_]R\V]TUT]\TSV^RW[e`[W]TZ^^UTU\cS`SZ^UVaWQZY\RVS`\U[XU[XX\`V`fT^UZUWSVV[[`]]XTVZeOY^S^\R`ZLW\ZQTUW^YTVQPWKV[\TVQ^XU[QVWUPGYWVRZWT^YT]W\NLTPWYVVVUWMXZZJTS]O`_OYYWPRSWUbV\VV_VQO[QV;OJQTTT_]RV[[TVYUVXYXRZURQYMXQPVOWYUYTMUTSQN\OZTVZZVRY^U\WPWY^MVUQQ_RZSVWTXVX_V]UaM^SYJ^YZYONJP\WY\XWMLYVTTL_TXaTOYNRXUR^QZ\UZcRRTSTRY]WUTUTP]VQOWUWVUPUZW`TRSQMVYSST^SON]UWTP\UYUQXX\QXTVWa\[YR\[PYZQYZSSWXVV_WYP][ZU]YVXVYXVRUVX]RaRRV\]IQ^VPUUUVWZXW_\VYNWU[_cWW^Q[KU_RWM_YYVY^VkTUTUSL]ZZYRYUYTTTQ^YTQVYQZZTSOURXP^QQYVZS\]XK]QPU\YXVZOUTW[\eT\WXWYYVLMWPW^Y`YWT\UYNUdWTXS^ZU^XZQUZS^_WYZUT^U\`TQV^UU]\RX[WURSZ[WXWQ`Y]WS`XRXb[[WQ\WUU[VRVSTYZ\OUWZ\UXVXSYW\b^UUYWO[X\[^TVY\U^X]RUW\S`ZVUX\UXY_YZTQ`TY_^[WT^X\TXP\R\Y\RV]Y^YQZ\V][W]Z[PXX[]\W[U]WN]WNYiTQNWWYW[^XZZ\XUT[V]^RRYSZYY[WYRUWUXW^ZXX\_YSZV\eSWNZWNQY^M^T[Tf\TVXRb^S^Q[WZWXNURW^MaXTWW[XVXXZUW]XWXVV_Y[WXVYZRTVJXXSSV]VW][O[VYSUVU[XTSWWYRWQQ^dXUTeS`WT]Y]YWYY_\ZZYWVU`Y\VQUXUY`\T[]_]QW]SbXOYPWUUQXWWZYR_WZVR[RQdUUXRVZRWUVZTZVL\TZT^X]TZUURU]`W[ZXmWW\[Z\UXUWUWR]WT\T^]^CUmX\Y_OVFeMXZYXSZQYWdVSLQsbTSPULgPRUT\[]ZR]T^ZVUcPURbdF`RWVbSQRNV\Y_S[YlYWXXK^TcKVYXVlXT]ZeZWQbae_W\WZf]ZT[\NUR`X_TT___VjIYV]^aWaPSaPb[[YQXaYWX\WYVdRW`WZ`KYKOUOYUY]HZ\TLPc[`acXUMd`aYSIS[VPMaSW``dPaSW]Z_vOW]^^VX\Za_UT_URV^ZKXS[PXyPOR`X`OUSUVTZ\[MQT`O[VhES\kY_UJTdRSS]VOeXXfXYZ^SRY[OMWZkV_YZRQWbOT`Q\fjb[kgI]QPfRWZS_NWUVU\VgQWabWOU\[[OVXVbYQZUWM]]`^dVlTU\\aT__[[^`b[U\]X\N\mbXgVSUa\WQafW`IRVQ\ZXcU[[c\XWbQ[MO[[]Pd]ZP_W[PLWVVSN^Qc]b^UTVaR[[WR\QU^XXd\U`Y^[UQ]^a[V[UUUb\YYZXXRW_^XYZZ_[_eP]W`bYR\]`cW^^TYa[U[V\S]TV\Z[]WYY[T]^Pa^^URW]YUVTY`a[[YXQ[WY\[PbVS\\V_Y][VX[XUV\T[_WW[Z[UQX[Y[[[YSVXXUUZaY_^`\Y`[bSUS\ZS^[`X[V]\]UWYVaRZZ``]][X`ZP_\TQ_UWRb]P]ST[Y_[]ZPZTYUVVY_YY^ZYSaTZcUd[X[UZbPYRSZUQQ[X[WVXTZQVZi^X]Yb]U]\^^`XX`\ZNY_STaYZSXXWW[QWU^P\Z`UYYZ]cZZW]ZXX_TW[Z]\Z^[Z[f\dUTVQ_TXV]_[Y`\\YYUb\XUVaXZZY_Y[\`[`\]UYYWYY^W_XZT\Y_Uc[PUVVWZWUS[TTXTY]]W\TUYb]_Y\YYWOSWX[\TV_aV^U`S][YZ[UYWcV[XVZTVUW]\^[VU[\W^W`]YTKVXW_X_TPTXU^YXNW[XWPNUUWOXZR]VWV]XMN^Q_W^XVVY_[V^QP[XQUYP[\iPXPR^ZgUUX^cWYRRL\]VYWVZZ]X{X[\[^WbZg[TfRY[VO_^SRV_XX[WO]]Z_U\URZZ\LWJRXUWWXYPahWPb\\gOTOW\XUTYTVMMP\S\\aZ[`KPXZXV^Q^LSjgcUG^Y[RXbVUSYXcZWYTV]`S]YXSRQXS__`f`ZWU]WZU[ROYR_TXdRSYWSYM\X]ZXM\\X[Pb\TO]]gVWQ_YVO^KQP]X_NNWVNPQYF]U[f[XZZVRUjO\XWUY_V]VT_TM[XSTS]W_PcVWYSZOZeRYVSaUV[^MYXQHQ\SU`eUWR_UWP^QZY\Y[[Xc`TST\[WVVgXLWXW_W_WXVaT^SQ[QYaXVG^ZZ]T[ST\]Q_WYSL^QY\\`MWN[W\V\X`YUWUZ_S\TXYYWTPT^eUQbaY[P`WZPZUTZ[QVXUVNXXYcR\TWWU[`OdVZUWNPWZTSXZTZbXVQSTW[TUX_\P[YVV\UUV\VaX\UXXQWTVSU]Q\Z]^TI[QY\[SXYXZRW[WXTP[WUWYY[TSaX]W[[OQQXYa\\ZVOYTVZNS[QMWY\^XWM\RUPTW\P`\YXUYTZ]R_^X]PYTPX\SRTTZ`UUV\OYN\\VP[W]VTR[]WVZWTPYTWUYPQT^SZP]cZVO[XOTScRUU[\^bYR[YXUU\Z[^UT[VVV]TPX]QY\ZRXVZ]XWSR^PQUaW^SOGUV]W_RY_USTZRZVUZaS^[YQ[U__V][YUVY\VQY_X[XTQXNSXZUSYYTQZU\TWWUVPVXSUXaXWSVYPV_^QOXRVXS[TR[OYRZb\VTYWYXRUSYQ_ZXZZVWZW\[U\\W]\YVP\^XN\VR_US]WYMNXSPRT\`XWYXPaXWQPSW^YUS`YZcT[YQX_Y^X`[XXS^TOV\]TQXZ^`Y_^`\Y[`TWT_\ZWT`VZX][XWV\\ZP][V^XY[QUUV]cSU[XYNXW^TXaYMK[[]Tb^LZ]^UXYZQVY\VX[YTUZQ]W^W_V^T]bVYb`XUca]XdSRPdXZYXU^]PWW`b_eQRX\[ZUZZXZZT^YWSX\\RYRVlWV[XUPZ\][`UZZWbTYUWV[S_]U[XXYU^ZbSZTY\]UaR]TPW\]\Ue[^^]YT\bWWTY[YWNZ^MZVVS\\\U_YYUXQ_TVZS\Z]P_YPYXVZ_ZVYW\\UYPXRR_WTUXWVbW`UYW[YUaSW_aRQW[YVPW^VRZ[_WV^\[U_QVUZXOaR\WZUXZZ[YT\Z\VU`VaZT[QZ\XSZX^\eY\VST\W_\XWW[TOSYY[Y\XXTZZV`P`RXZ^^]]]RVTYW\YRd\_TQWSZZVgR_Z\b[[QVY[XTXXVZRX\WUW[SSWb\VT\_SU\VfWSU[X\WX]_WY\YYXW\ZU\XSZRaV[L\TYbSOUYaX=OW[\P`WZXW_Ya[TVUY[SZ\SU[\qb]^T\aY]WV[XVVPVZX]WV`[ZST\_RXWV]YYX]ZZXWWXSV^_ZSRTe^VUTWZX\QTQY_YQVXXVWRWY^Q\Y^[UUaY\WS]RYSX]YK`TXZW]V_[[^]Z]QVYWSPVUYY[VYUPUXbaLVXWVX_WZW^T\XV\]X\V_YZU[_UZTT\QYRSQOUZWVPZU_PTZSZ^N^^[S_Yf\YVYXSdZ^Y_UdUUXUWYZY[[`]V[Y\_]WTV]TZY_SRUdUSU\VTRYcWZV[ZZVYQTW\UaRXQ\^RV`RVMWb^]Z^WYVVXXV][SW_\TZZTV]UX]Y^bVWTWZTNQaYYWW^XY`W\YUP\SS[X]TLUYSX]Y`U_]\S`bZUOXY_Za]KPZZVWXU]\]ZR_]YLVP]ZXLWURYOQ^VTVSWWUQ]NR_bR`T`SN]XVUbWORWWTV^TWUVRW\\VYRXbdYWP^UXU\LZRYW_KUVVSYMaUP^N^a]RP^_ZTa]YVVN\PSYYVNQXRR[\NWXXYRVOTVX_\UdUf]VPS^LY\VahaaVTPT[T^WNSOQ]VT\^R_`W_Tc]TYS]T[XSSQnTR`X[XROMWSO]VTXQYUUNZePdUTT_VRMVQ\TUPRfPRSPX[WTQZMTZOOV^WX^Y[cfaUXXLSMVS^ZV]ZTZVc\dXVT\SXYYVL_S^WMTT[[_]YYV_SUWViMUVTVTQWNRW]cWQW]bRYWTVScOQdUQ^VPTP\`a\PVSQd`VTRSXNQbTPV\RSbSTVbP\PTXYLKRc\[^SRNVKbY[^cVe\XQWW]URSVQXP_NQ[SX[XXW[^_OTVXLQVMVNVZWSUQ\V[TWYR]QRO^ZVXTX[W[XWfYZWWU]]XVUUTUZYYSXYZ\V[VX^UWbZWY[[ZTWX[]W]VV^TTYXh\U\TI\QWXQYKY[UW]ZVSYXZVWZaSVVZ]bZUUS\\ZWW[YYTTU`WRTSZ^YWVWZTX\V^_UdZTVWZWVW\YX[XYZYZZ[_[Y[UW^WXW]TaYUXZX`_TVTSVZ]VVYT^XUYrV6`Z[[VVWXXZ[\UZ_[[Z^UXW[VWSSXlVXWURVXYYZX_VWWW]XbV_XRYW]VSZWVXXZYXZV[VU`V[U_VWW]UXZWS[ZTYU]S\XZXXZVWWZWWWXZ\YW[UNjRXZUSWW\^\YRYWT]U[^U\ZXUVYYWYSV^T\bQ\ZWXRU^VUS[XSZZYZ[UVYUZXYVWVZX\YTYZT]WUkUWVTXZV[YWSTRXV\U^U]]ZXSTRXZXU^VV]XYXWXWWXSVW[X[]WSUXWX^KYT^][XaZYWZWTWRVOPYW^][[fRaURRPWYRQXYWcUWZYTZOSgW^\[V[]UU_W^\UZYZYZ[STZ\Y^_cWXM[hW\\abX[_\T`^Y\\[Z[Z_WRWXYU[aXZTW`d^YVYPbTRW\a]MS[RVV^YXVTVYXYdYVXTXV\VT^YSRWYSXfVSY\YY]XSaTX\S[YXZT`ZQ\URV_XP[TX_VWYSV]__^UZZZVWX`T[_VYSXWRW\^X^Z^_UUWYTZ_X^]UNW\Y]TQ]ZX[XcS]]TXTUVVPTS]PXZYb]\VT[RY]U]SWcVSZYd[^Y\RYVXcN_P`YZXVYaWaS\^]]ZYYZXcYW^b[RUZ`ZUQS`WUZeY^VYZ[^Z[W[^QX[]ZXTZ`OXSTUVZVT^]_R][[[VQW[WZYOT_d]WWYZ[S]_XY]TV]Z[ZT_WS[cUY_S\VXZXbW[ZTRR[_W_R^S`WY`a_hUaV[OXb`ZTUZ`VWRXSZ_WW\WZVY^RSWUTTb[\[XRbb_QYYNfUQPc^WW[ZTUYYZYUeXYVY\U[YZ]_[XX`RaZa]ZZZd\R[^^MQb]XZ[VPQ\Xa]aRV]X_^aV[ZYRTXVTXZZXUZ[aYZ_`WOZXa_\Z]TSc\W^YT_`ZY\RZTZO]`\WRVX_`\_VYVa[S^YS`[\YZPPW]RYZ]TYWT`XWOR]PSUaOPQWVYV`^P[X[VcX_^[[YVSSSZ]Z^`WW[]Wo_VRYdWR\c]Z]g\gU`d\YY[^ZSXXW[]]ZXP_gTTXVXVYTZT[cWY]]\dZTVeWaT\aXVU[dSUTYWu[UTX`YY_W[V]Vda_PWROY[XWZXTZ^XLU__\IS][Z]Y\`a\YlXXWb\_[XZ^WY[^[c]\ZXYR]VcZX^_YY]\[T\PW^[X[ZV_YTWdU\^g\]]b][ZYR[b]g^\\]VYWR^TaU[P\\\]\X_X_`\^XZV`ZUT_aY]\_TSTPYZTi]N[TXSc`YUfZUf][SV[XjSV_UT_bVX`^]WTbZYb`XX\TZ_[Ma]`WX[ceY_RS[W]N\X\XX[[_[YQK^eUa\]^ZQc\Rg\XTYXYaY\`^U`PR\SbY^X```V^\QZRV_hb^[[\UP\_VeW^U]Y`_XUN]cWX]UX^fMTcU\_XX`Z[[TZ`bYQUX]`\bXa]b]X^Y[cSX\T_]V[Y[^U][]`^R^YV`Ud^_`TVWdX[[^\RZ^e^[XN\YSRW[V^SZc[\W]`WT`ZZfUR[ZVZSbQX]_WY^\VX\_ZOV[U]`_d`QUWVSR^Ze[]aYWXWWcWcfX_Z[`Z\\RWUU\S^[fXXdUZ_\]^XZ[Y`[YYZ]j\``_X^_YW\Y[T`KSV`YhZa`T^V^ZRWeXV[gWR`Xd[UT]cW^Z[W^\^[Qb_VY^aWXSbX^Ua]]S[_bV_\S_Y`ZW]TY^YV]]Y[a]dZYb_O`^`bY\SWcb_VYXT\ZP`XbZVM\ebX_W[Va^Vb]^[VV[cZ[WYSXZ\c^^]`TZOkZOYY\\D[U\aV^WT`X]XZXaUT_[_IZX]cTSe_cajWXc\S\]`^ZWdcdT]]Za\][PVeTTe\]TYZ^c[^XS]Vjh_bV[dX`VZ_[ZRaR\fRZ^^`Nb\`hi`Z\UX\bJVUX\]Z^]WNT`Za_\V]e`hZ^YdUZb__Ya\_eVWXRYSZZRTVXV_X[PWU^YaRXVfW\W_cRaY[d\Y_QV\aU][V[RVV]WUcdUX]RQ\S^_aZ\TYZZ[R^Y]Y[YY^]VOZeb_UPPZXV\WY_UZTO[K]RR\W^VZe[el[d`b\XSST_]Xf`YS\XUbY`_UU]UYYb[bXUcbY_`]a]V^[f]STN\XO^`YS`[hS[UTdW^_XYXd][`__YWPa[^][QZbT\U_YY\XM_WXXWb\Z^[`YZNgaPUU^[WVYRH[S__VLU\cSZc`X\R]XV]Y\Va[TJUMOcYgZR[bZSaWJRZ]]`R_ZYVWKJ]XUQWZNRYYT[We`[[VXBVTVYX~[VV_UTXfNagU[[b[SQV`UXZ\XZZ\ZX_aQXOUP\_X]]PVZXhWXf]]W`^^\YX[eZWaQPbZY\W`UW[eVZR^XVXPZQ\\W?TFNZSSY[\[TVQWWYYQVX_SXUccaYY\\[Y[`RWXbWXY\R\QRZcTUV[_VZZ[\X]XWXXVOcTVNZX[eS]W]OPRhHWZP]VXZZT[UJRVOV]SZV[YVXUTU[`TZ\^UZT[Z`[]Y]WVV_^bVgT\WNR\UPUX\Z[RWnYUPZX\U_Z^Z[Z[V^O\TXY^^VW`_[QWY_S\Y]\N[]VTXQZWTKX[\YWWLaS_]ZWYX]YU[VYJ^S[Y`PWK]Q\T[PYWTU\Y]\Z_RU>cYWW]\\`]TydS]]TWRTWKXWYZRWQY`Q[RSVaWiXYYY`ZPWZaW^^[TZZR[S\TVYYWYWVPUUcUTW\ZWY\U\W[USN^\X\WXZV\XZd[VPUX^[WR\^R_Z^UMYUYY[VWX]TVW_Y\XTV[P^XWW_[Z[[\YVdZ[Y^]ZU\ZWSZZUfZWTVYVYYW^TQ\[TZaPPSYSRY[\Y\ZRQ^RPaWXa`[abXYUYY]eTX[\Y^Z^OX\ZZaZ`aZZ_UVYWYZUP]YWaUSX\RZRXR^^YQZ\\dP]W[]YWS]]VPV[\WY[WN][\aaUZ^Z[L\UQX^QY\QZMWeWVZa_]SQlW`ZUb`UQVX_C_[XX\ZQWTS[_R[Td][_`T[TZ`X\TUhRZ]T`YQaYWUZRUeaT\QRZSXSU\UTR[YP\VZ_TURT]VYWVZUX[^RWZZ[U]SXWX^bZ`Z[VR]S[Y[USbV`Y\_^[X[ZW]]XZX^[WP^OMXVYdVa^[^Y]XZT[\UzbPUUZUMWU]]VRVYPLW]RY\ZY]dW`hUX\[d_]\RW]b^Y[dVYZZ]`UYYK[^Y]WWSX[[_^X]V]]]WV^R\\Y_UR]Z\QX_cUV]S\Z_[]S\UV_^aZ[VO]^`]ja[_ZZ][\\XZa`^VYY^[RT[\Y^]`R[\T[O]UXZY[\ZYc]]\^WWX\QY`S[a]SReXWTZ\fU\TeZ]b[`aW[YcVW]^ZT\oWX^XZZ^[[ZWaa^^X_]]W`UYQVSZ[]QX_a[WTY]S_XSUYa[]]XYWX``V\YQT[UYSZSVXZVU[Z[T[V[ZZ\^]Kb\_ZTT]Y\OXZS[dcSR`YReT\YZYa[QO\^PYdQ^^[ZTVS\XX]WZ]][[Z\]\^V\ZSWYcU[[HZae][[i_]Z\QWY\eZ\`J\Y^VYPX[_VVW_Z_YVa][Y`[_eRWU]UZ[_[X]XUS[W\OP]WVY\RSZ]aXY]_P`[[SUST]UN`Qb]V\WRUZT_WcF^SXRZVSQdZUZc_TTXUTVZTZXMWZXj^VTKV\YW__^Y_b_YVRI^VO\XSTaP\TZUU^`WUTSWURT[Rb[LXRLN\P[X^^X[ZVVaW_\WRUTVW^XZ^Z[\XSXSWSVUcNL_VR]S\VXXZWN]TTPV\SYbZRS^ZV[P]TRPT[R[XWRTVV_aSSYWUVhYT][[W]TQPZOa[RYUZOXVUW`\X\^SNb\`jYZTTSVVVVSf_[V]]R]R]QVP\[YS_W\XS^X[_]bVVYYaMUXXU\^[SU`e]_`OUc\RU`YbhXWS\WLMWSZVT[RWW\eXW_`[X][_SYYSVY_Z[OZRYOUZX]UPZ\dN^Zc^aTSPO[UcZXTXSVYSJaQZWW\Z_TUSXRO[T^LcTbc^TV[ZL`OTQXNZV\VQ]keP^SO\ZaM\X^hURc]\XVT[NR[Z]UXVULSUWJW\PXPc[ZUURX[V[NYj]YWQPWLWY\Y^MTX`U[SL]U[[U\[PW\\WRVX\P[MLV]\TW_O\YW^WN\VVXTWU]XQV\RO\VUR]\W[j\`VY^XXQXO\[XY\WZOPRiU]TXLlPWdYSTSYPT_X`XW_YVY^b]Y\YLU\IbS[SbPZWZURU_`\ZX[WMRRYb_SMQQVSTXbT`_\U[TU[ORNWWZWXgXYWS\YVT\S[NSYVY[PZWUXXZ`R^VS_]U]WNTXRYbhXR\SS]Y\[[WXWTZX^XW]SWYWXT^[X[LZYUUeOZW\SYPQ_]\T[Y\]T_Lf[aZ]f]_UWf`cZZ[RX`TY_P^OYSVZ`XZX_]XQ__UNW\^SScU\TYVLX^aTR_OTZ][[\NV[eT[UZUYV]RUVW^WUVW\]WVWVW\aZUaYSX[STXOSXOP^QUV[WYWZXT[ZZ[^MN^abVdN`ZV]UUY\UQbWMaZW_WWST[VZV^SUZ[^Z`^[\XXU\WVV[iXYWVY\ZRYQ\W\RQR\]YZ]]cVUY[YP^TX\X^eO[X`T`VW[[[WYc\[UXX\UYVXW[ZRXMUVWXXZ^W]U^_TXPYS`Y`^_[TVZ\UWUWc[X\VT]S[UWRRXWW`T`XP\\WXV]X\[[Va\T[PYZX\YUUV[\ZX\]\TZV[YWXVV[VUXXY]YUWWU[^_VU`R\aUXZY`W`XY]VYZZ[W[_SX[W\WYU\RYW^WYYYXTaTa[_[`^OYYcWXXTVUTU\T\WWZYUVYTYXUWV^ZZU[T[UWVYZ\YVXVRUX]]][WVV[dQ]XY\W[SZWW]YSVYTSXSST^VY]YT_\VS\Y[VUT^T^VTYX\Z[WVYVS]WXdV\YW^X[Y]]ZT\V]QWYT[cZYSbUTQ^_`T[VVV^YTQWZ`XWW][aWWPSQ]VUXYYZY^k\V[bN]Vda]Xa[Z\ZT]ZTXb[]V_[iV[R_M\Z_\U`Y[ZT\V^U_b\YRQaTW^MUaWXX[Wd_QcXTWYS`TRX\``RV[_Lfd`eQ^Q]X^RVZU\c^a^[ZYWI^^Q[c`]]`ZZ`V[ZUYZXZ]U^[U]^S\_]eW[dVZWdW`SMZY\^[aaVVXcV`aWXWYS]XYV\`bZ`UaQZa[b[a^WX`NM`XXSUVTTRW^TZMUXUYYbf_^^\b`ZY[X`e]YP]XY[\\TW^[U]W]ZZTZX_YZaYUh[O_Z[`^[a\U]^QT\T]T\W^VZ`USVWcNUU^Q]V[[_R[YYYX\[]YXV^X`RQY_b]W^WW[]eVaY[XYWS][[SR`U]QXWR\\[ZUTg[PY[RVXT\b]^U_YbeY^_`UQ_ZX`\_ZV`][a_YUX][^WbTa]`Tf__Y_TW][cSYcX_dZ_ZMYW`UX\[UW\Ya\V[aXX_]XYYa_UXZZPU^]`]SZ\SUUZLUUaZLT^W[ZT]]XVVXOZV\YX\^VNSS\WWW\Y_V[c^WRYaOXNXW\^WY[R]^VQV^VTTb\OTaWQ_Qcb]OmUXTNQ[TSaVS]\Rd_[[WVSV]T]RS[VWUS[Z^TX][TVRW]UXVX^YT`YXYXUcbK_WYT[c[YXVXd[SZSV\TV_\][SXaW\aV[_UT^Uc^ZWX\SQX[YT`QSQ]]]SXXRXWLT_T\[bWO_TSYPWW_]^cT_VUcRRNVZ^\W[]XRSZZXSTQXSZ\TNZYVYVV[YUYYYQWU]YUPVRS_XVVUbYVRR\YNZTX]cZV[Z_W_aUTVVPRLW^WUTVTWYPURT^WXZUUW[_YUPP^]LbZ]V_[MaVdYXN^]]X[U[VQYU^Zc[XaZdSYXVWZT[]V^dYXXSNUYV^]UVaYWQ`^PYXTP\UXU[T`OZ\O[WWW[`N^MZZXe^X]QZ]TbbZ\QY[VbTe\`_XZWc^V_VYWZZWVZSWWZZYW[UYR^_TU[UN_d]NMTTUWZ[S_QXZX^RTV`XXVdVVPS^OTV_RWTV[f_VW[eXZ[MbPW[VYUb[YdbYbW[S\XQURfYVT`UXYNQZ[YbT_UTWYSZWNRVRZTUS[ZWTW`YUSYa^SWVh\ZUUS\UY_P_XZYT\ZZYY_WW^T_OP[WU]PTZXWSPVWXY]Z`\S[WaZVaZX[T[ZTUPUTVUY]V\Z\YVYR^]YY\[UZUYVTWa^TRbP[ZXXXY]S^_[JXS]WX]UW_[\aSQOV\_P_P]bU]X[UVUcYV_\[P`QQVYaQUPLZ\SS^^g[ZS^OZ_TSZ\`]YUSO`QYZW\ZWXYURYZTNLZZYVUZTWZ[ZXZWZScO\XX]TVVWX^SRYXUWWW\WU\S^\`W\TPU]__YWWU]TXRZTOXQ^WSTV_]VYW_`[W\\[a_[b]XOTaWaYWPQXVXP[a]_W[elhdTbZffacN\Wg\[Y`f^RSdW]nd_`bg`i^^V^S`fU`Ucc`^kc__]cjVajfn^```TYkqVcXtbhWmj`bWWM]`bg`xdcdaQZcY__[a]\\aaaXS]qdbhd[VaZdd`[cdaa\ZjW\bk^lZ`a^^Y_WeX`dYT]d]hakcb_X\^\aTWScVe\fpa[^\ZReRPa]cchfgYpUnmZZcaihY[d^U\i`abo_^r_Rbdn_mhi^gW^`jMf`afYgafmd\gica_bddlca\Ud]Z]bWj`_Xh`kU[Y_]_\V`O_jSZfi_WTcdYX^j^_dag`]d\nk^h`]ZcmgZ\fYlgdc_g]d_\fhVVd`]o_nfZ^gifZhc[hh[aaQ[RaclYcd^_g]OYn_RahkbiTZb_d]h\qZ_k`LYfXSfe[``ed_gie_i]mm]fbf[p\aObbSf\clkbcVSQS_^XX\`efZarZW[TX\SXVWVTYVPZ\T`UVYZ\X]XV[USWXSW^T`Q]`Z^VWWUX\S\g\UXWT^XZ^TTVZ[[^QY]YSMUZ^\T\TY]TY[ZXUPXRVZKXY_R\[VX[X\`YSZ^[^U]ZY[ZYZQ[]UWZa^^TYYZYX^RZUXWUVTW^RWTWY]VZW^^YVQVY^^\Y[WW_\`aYXV[RX]ZZ^^\b_URXPVXWXZW[b]STWYU[_NZ[VYYYRTX\YXZTW_Z[XXSXYXW_Y^UU[YY[ZXXX\Y\_\UYVRTYYU[^^YWZYTRXV]]WPW\ZYYSSXW\^XX\PUWWUW\\YXTR_X]^WVW\TY]U][ZTZaZVVYSXY\M[WPZZYZXa\\UYUU][ZZXU\[\]YT[\YYWQXXcUVYSY]TPW]Z]UZc]ZaX\RZObXUXYTZUU[[][]X]Y^SQXY[]W[Y_X_[SU\WZTWW_XTTaVUNZWb]PS]^S[\SW[U_YXSdSX]]XO[UUR\^YT]ZT`Z_\YbZ[]][Y[^YTSWZYXjYeY\]]VY[VW]W]]XWZTZQjV[ZTXXnVSMVbVYOc[VXURL]WXYYofU]Y]^]X\\\Y]\WZ[[[eaX^Z[PfhVWYb^WW^Y^Y`cbTVZ\QXg\VU[bT^[RW\Z[bY]gWYXXZ_\fY_\R[VZ_UYcReYY\^YXYVaS\Y[UZV^YWaVZTWVcYU_ZZ\[bS[YVRYWbZ_X\a]X_VcXT[T_SXU^VQ^YQTPZW]c]QVXXRZ[XYX[XfQUUUcVUVXZXYfWV\]VZZRRYba[XX[WW:XY[\X\RW[V[W]WZYYa\\WXY\^ZWS[[OY\ZZ\aYVXV_SW\XbVUXXYaYZRZ]`[d[dLZ]Z`Y[]Xf`Y]UbZ\^^b`ZSZVXZbaZ__PTTRWZU_[YXNYPY_][V\Y[YRWXeXPUWZcV^W[aZWYR[P]V\SY`XWY\UWZU\`]U[Ur[X\^QZ[\^cSZWQ]_QX_T\RTZZMZVU\`TZXYdXXWX`M_V\XcSTY\VVbhYV\ScSUWZWPTWXU_dOTdcT^[XYUSVUbXUR[TVUNUWX`XVZWQX\V\V\UV]]UZd[^[ZbYU\TW\_XVXYWWZZUU\Z_^WS]XZZ[`[WQPWYT_VWZXURW[aWX`WXGQUQQSV[O`\\WRYVb]]U\TTQXWZ`V`Y_[[USVTQSZZT]WWeTRST^W`[URcd\VVSRZW_[ZZ]XaQYVQWUVOSVZOV`\VSTV]RUYZ]YYSUZZVWVV]ZR\YZVMYUW\`OUPV]ZU_\YWO][W[VXZ_]U[XZWTaYXOU\^VRT\]TPOX`UWZ\X]_]bVW^WTZaVW_XjT^S[V^dVO[l`WSZW[^TQb[V\Y^R\[`U^`US[S\V^_cZY^^_U[[R[[`W^WUV^^\]UXXZVXZWb_UW\R\YUaY^[U[ZSY\XWTP[VY]V]P[NSR[W[\]R[WLQYU]X[X`XXVVVZYaO[OT[P`[SYSX]W`T[[`\XdZa[[Y_ST[]]VYVTT[ZYRr[UUW\]YTU\\\^ZV^]\X]\X^^QS\UXaV`VS]ZVXa^Z[UaYaU\bb\ZXWY]\W[Y_[eZ\iZ]`\_ZWVZZbUV\ZYZ[IYZY\HX_bZVNXSZVeXTXUXXZ^\WYVYRYSX\Q[XU\\^Z\cVZSZR_ZYZU]S][jW^NZdY]W\cX[QX[W_VV^WXVUYXTWW\XQYYTXX[]VdaYUZU]YV[UVXX[YUWZWZ[ZYW]^]\[NT[`cR`V[Z[[P[QdTVW\YT^^`ZYVZVWUZYY^cRYWV]__TT]^]QQT]_WU\][VSfUW\XZVT\c][UbZUV[YX_ZYaPYY]R[SYXb]Z\\UUeSR[cbT_QSbX\YZTUYX^ZWaW\UT^ZQWXST\`XW^Z]_\SX^QOd|WZT]UXSTU\YH\HP_]WcT^^\^PU[XdSUW[XX_S]X[MNaO\UQ[]SXVUUJZQ^XaTTZ]Q\V`QWGnRJRXf\XR\UWjcWRNPQJRNN^MSS]VLR`T_VXU]JWfJUY[SV^XLO[W_STKZUPTWXWK_K]YjMXSZNcYU\\PYVWJ\MHUXR`SWWR\TYLtPJF`SK[L^aZ`PQ[aU_XZ^[U[ZM`L\JT`ZY^Z^YXSZVOU]ZOX]^`^Wa\O[[_T\TNZWSfW\YS[TdMVIS][SbNMNW`U^SYRVT\YdSaUMOOV[OYb^TVKeQ<\Ua[dT`S][_`YY^VQVNRV\XUZZ[iYM\WXVXQKTUOTNYXXXRcYZQPbZYWc^QUZY]SaPRbYqVQXW^Y`UXMaSSUVWabUXUQH\YROX\TOMTQVRNV[QWWU[[Uh^SYYRP^XZ_Ne\^bSUeTaQM[aRUSFLY[VRU]^UYUj_T\Y[ZWUUW^[f[QWVUUUUZ[fVYTUWTWYXXOSXZZ__ZU\VZS[]^[VTX_LQRTSaVWOjVZSa\UWWYVWWYZVY\]`XSXWaP[XTUVUVVV\ZZ]TUaVXVaXVTT`UZOiZY]]gVV]XRX\\SU[TXYZZTXPUZ[V]S]KTZTTWWS^WW\SXXS[XXYU]WTZbW[^VV]YZTXTQYY[a]]V[VZRUT[]\WZZY^Y`Z[WVXXUYXRaT[VU`TXPYU`_VWWYSZZ_R]O\U[_U_YX_ZPV\[XRRV[cZZTUTVdYfVO\j\\XXSYXXXXYSOS[U`YYXYU`RT\_T[Y\YYYWXZZWVVZVW[aWTWRW\ZSR^ZWTUU`_[W`VZPYYW[b`R\WS\YSS[XZ]VZ^Wa\Ya\XeYTY^Q[VPS^[YYU]`X[VU]XZZZS^ZVU\`UXVZXRWU^XZW^VS\bXS_[VXR\Z]QZ\WWSWbcSNdW^V]_[NWXYSOVUT]aUUV__I]ZY`VYY[UVZV^LZTX[_ZWWSXbTRXP`\[Za__V\XQYP^ZT]_WUZZXZP\SS_WXU\XFV\JX[g`[VV^R[VVUa^TO]eXUXTUVW[dOSUYW\[UZQTX\\Z[UV^YX\WVZZVXXJTSU]RQ\WVRTTX\YYYYW_Y[\QWYUI[_Z[RZRVVYVTX\]^QW^``\XUW[Y^R]WW[Y^WXWVWcV\[VWUX`ZPS`WY[Z_VVV`\^`aUeTQ\P[ZK]Z\^WQ`d_\_cTWWXU`[X]ZeaT[SUWZYXZ[RXW[Xa]WXW\\X[b`]X]ZWRbdYX^O^PRfTbWQXg^TO_UVWZYaRJGX^MXU[YQW`[WURSYXYUP\W\cZZYSWS[VV\QXSVYdQfZaZ\W\[aLQN\VUX__W^`_UT_TXPZ\VW^Z]OT`]][aO^Z[TU\WXWQX_\T[QKXYO\VTQ_T_[YVUQXW]UWYWZY\UXa]_ZXWYZ`WU]RaXUTVWTUU\UYRUXQV[YU_XW^V[^aSk\fXSTSV\SRWQPSJW]WUQWXYcVYUeZRY[ZT]PWUiS\SXWWUagZWTRY\]`Y^VeYcY]_V\LWYTRTU[_^POY_cU^UQX_[_[X\a\W`_S^[[\ZRdRXXZWXTZXXXPY][TXYW^WWVaXaT]Y^WVVWYW[_^WVTTX^UWY\TX[^WN_Z]YVc[VXQXVWU_Q^O\SWXWYQTUV^dUVXVYSVaT[\dLT_T\R\[UWRUM[Z\RW\^ZX]MUXN[YeWP^TYXUZXZ\V^YW]YYTW\WTZ^RXTXYMVW`TZU[TXTRUPY]^WaZTX[_S\YTUZabadYUX\TSWWX_W]]YVVYXXYQWbQ[ZZSVe[QX^UPSZV^\UW[^[W^aWWZVWdR^Y[\TXUWY\WZS]XVZgU\TYRVT_UTVZb`\]NZWW[VU]^PSWUWQTZ]Z\VWTVQ]UP]Y]Z[]_]U\a]UU^YXUXYW\R[YWdYZU\[[V\SMYUS_XbROXRYcWdVVY\RYV[V[aSW^]XQT[Je]ZVTTX`SUWU[YQ_VXSTZ\WKaX^\WSXYWW]_WVTYSX`_S[\ZN_TV`YaY[\RXbT^Z\^P[TaVVV\Za\W\SXY\XXOYZWcY\[\SPY_]e_ZZVT^WcTSYR\V_aR[ORXLc_R[_aYU`Y\PZ\RZ]S_U\_X[WOd^SW[]XTUZOY[O\VVX\b\W[WV[VGacRaXUbZW^Z\WR_W\^f]YWXQVTYY[WYS]T_ZV\[UZV\[T^]`ZNYXSaVWYSTS]WYYQ_UXRZeTXX[VZWYXVUR\Z\cX]ZaRVbSfW[WXXS\`aXVSZTZUPQU[P[h[OX[S][TYZWSa[bW[^[XR\\]XSU[Z\OWVUY`VbZY\baZSU_XU^P]X^TM[XQVRXTb[_QTUYUQX^S`YUWY^XRYT`[Z\_\VZYVSV]T[V_^X]V]UWW^Y\V]NOS]X`QX]VV[YYPVUWVTW[Z^XZ[_ZUYYYWW_]XTPYcUTVT_QMZX_U_OW_TZVZW[V[VQX]\WXW]a`TVR\]XW[N`eZUOTXaW_UUP\PU`aZaZU`PTT[]^TXPWa[]TUWtYYV[ZRNWR][[YV`VZZTXTV`_VURU^PW]]XSTLXSTUQ[aXX_Z\cSPTV[YYTX]WSXa]Xc[WXZV[TYR`h`WX_VWVTY^V]SaXa[POYZTXUV`PTZQ[JXT]YZ]^TbUU^RYUPW[UZ`VT^YWaXWTZZX^UUWQ\Xj`URNUWV`]WYXS^UT\PRU^R\QY__`_ZO\QOKPT[XaMUTUQ[[VT\[cbQSWW_]XTXVeTVMXV]_\^T^b\]TR_^WW`XSVURWX^d\V`_Z^\^VYYaSY\PUUVXX\YUSX\[\TYSQTRW\YQ]X[YQU[SWQ^[RWRYTUUYYVXXWY]XSYTZTUQW]gG^^^VeVnXWXXWX[WZW\_^\fU[_XWA\^[U^XVYSRO]WNZTVZWVZVVXUQPSVW[TYXX\]VPWWTT_WWU[[TSO]UO`OWWXW]YYWQUTVTVXYVXY]U[\UV[[ZW]ZWe[t:QUZf_W[TYX[[[YJV[YR[[T^VYW\ZR`X[aYSZ[WTSYY\ZSSWQZZLSXUYT]U\W\[XYX[T\\VVXXVVRU\NUVU[X_WUWVWTXY\ZVUV]WYZ[YXRWURY\AT^VYWUWVXWUN[SSUVUZ^NZ[V]U\UVXQ[^YZTOQTY^^\V\S[SUV\`YUU[YQ[XTRYSYTYRNaV_SXYZTUUZZZ[RWS\U\\SXY^VV[Z\TXZXWXUXWWY\VZQXT^TXT_OZ\]SOVRT`XPeV[UTXXW[UZMS^[ZY`SOX^][QSUS[\XWX_Z[\[[]TbWUX]fRWUYQZSTUT_YTS\Y[_\[SVV^WWT\YY]_WYK]R\`T[`QVYVXWUbZUTT`_QWVS`eaVRVO[ZaR]STZ[XW`VTXdXV]ZVR_QPS[UZ]_[]PV]VYS]QY^YW]OYUXf[[U_T\W[\][RVXVXW_X^[XXY]a_SUSZa\VcYQVUW^[\W]WWZTYXW^YYRZX][TWXTW]ZZXU^UWZ]ZSX][_ZUW`OZXcSXZYR`[]ZXV]^P]ZZR^QRY\RWT\UYXW[VWXYWZ_NXTWbW[\ViV[aVXWU\ZX^SX[UU_Y\UZ^RW]bVYVYba\PWkYQZXXX[W[YV_XYNWWW^_UUb\YTeSVTYPU]d_VPRZZZXTVS^Z[^URc^R[_P\eWWZZXjOZ`YWS\RVcWZXXWXWU^ScWaYZVZ`X^[U\VW`_VUY[WYb^YR[`Y^VZ]RVPdSUXTUXQQc_\LYS\SVZ]fT\VcWXMYQW\TZWT^`YWeXW[WWU^[\][UZ[VYVVZVZS^RYV[]`VRV_^XRQUXXT\V\[V]S[V[TUJkYTWSYXaRZ]`_Y_\T`]QSNQTUSSZ_ZPZXSVV[Q[^Z^UXZN\YV]PVSRXTTYaRZ\\]\YWRXUZLWY_Wb]X\[`WYQWRYPTR[lnTT\YYbUR[TSZSN\TXWQYQXQWYcR]Y[`\UO]QS\QTTTMURTTOSUQ^bW^bYZMa[V]WQZVXVa[LSSZUZYZ^^TW^c\Y_WX^ZTVWL\]`WT[Y[VUV^[XYgO[YT]R[[WMQVV_WUXTYaR^M[WXWT[^S]RXXScZZVbY]_XNT_WVYYR`N\SYYWTXUYVbUTTXSZP_`RO_[`X]`T[M[\YWWW]KQQZOUT_Y^YSVTVH_`PZY[RURPb[Z[YMXY\WPSX_Z[^O\NXZ\U[^U^Q[\UTUYW[X`XVbOO\PSVR\Y[X^WXUZ]S[YSOWX[PWYV]VYSVXXT]WUWR^[T^\ZVXXYaXRYa[]XTUW\TVS_XYTXUWUdQVUXVRSR\]YOQY][lY[SVUYSSXUaSTZVU[[X]SXbOIXXUTLNSZWQWUPZUaSQXZWZZU_\QZ[Y]Zb\Y][SWVaWQbV[W[TO[]ZWY__WVOXWWYaWPYTUQT[YTVQWYQZ]SXYU[[VYWTXWWNTY[RQS__WWSiTb_Y[^R[XXUZVeWXMK\ZsX[VaX\VTSXVT_ZXYX_YYQVSQ[\[RVW_WXWX\VZT_WKQYYVXa_VYTTVXfQSUR[XZ^XOZVLW`VXYSSaV^SPWROVb_YVUSZWYTS]W\\XYZUS]XU^ZZ]OYV\YXURRV_XRYS_WU\UX_Q[KU\RSV[W[V_bKYZZXUTP]aYQ`[Q^QW^RU[cU^W[XYOQQ^Y[XZ[Y`ZQZ_WYbNS[^WSQMWTTXPYVWUZOOSTVSUYYVYXWRRPWNUQQORYY`SWKPR]XX[WRKYTWSTNSN\VOTP]YZ\L[TTOLVZVVWQPOUMZWWX`NNWRWTVXT\RRTQZYVVRUUX]PQRW_\VQUOUYQYXUTWWSUUYVPRPTSWQZSWPRUV\]SQUVIRNUVWTSV]\IVQZRYTRKQY^S[]QPVUTSTS_SKZ\STRTOPWUP\YS_UQSRUXUVYSPTUWV\X[VRWLYXVU^NGXSURTSQWSLR\OVWU_fYPTSVUPQRY]TT[V[]ZTYUYQQMQTUZXZP\W]\TRWZXWSM[WWYN_TPSTXSY^^[WN_S`UW^RJYUWVNVTU\NT_VQRNTTZOXRTSRYQ[TWPYsWROSS^SUUT\QV^\XXVZUS[QXUNMRaXSW[QYRQSY\RXMVY[ZVW_WQSWVY\SWUWV\SPVVOPYVUXRIVMSQW_Uc^]\X\_P[Y\JZ[O`iWZZV]]cST[]\Q_S]WTZ[ZYY\bPa`Ug]V[f\SXb]SSST[QWTWWUTY[QS`X[ZWZb\TWWTWZXkU^i_VXWNb[UX]bP^dYT`VROXZXT[XV_UaYb^NXQb]\]UbYX`\gP[WX\n^SXReVO\\]LZVZbSaSQZ[ZW`\YS\d`UXTXUWa[Y^UWPRXY\VXXX[[V_\YXSWWUQ_PXX_ZhZZUYVbYZ]ZWQZX]RZWWdRU^YSceb\]fZ\SX`]U[Q_VS]QSUcVYRVS^YcS_c_YYObYX`UXX`R\WdWQW\\OaT_[T\XaS[SQWU`PZT]b`aY[bUYfXTYo\bMPT\QYWPQFX`SPW[US[SX]PZV^Y]XTXW_hjT\VeV_mZTYZ_STUSSa\QTXMV[OXWUdYTS[Y`X_TVHYV\QW\[Wd`\OhZ]PUVYQeZXU`WXXMU[\\YXT[VWXRaYS`\YU\ZPLZWUUYPWXT[WMZeONU_TZORLRWRUUWTQTX]MZD]YXRTYUYTVZZ\VX]R[^QSXYTYPYONYSX^T^Z[XO[TTTVVPL\KOVYU]PUSQKRWZDXPS\[`UQS[VQRQXbQZV[W[SSUXWLZW[H\OYZXWTYVUZWTYVZ`ZTY_RZTRV[XSWZRTW_T_VTZ[TWZWONZW_^U^QVSJ^WRSRM\Y]V\OX_VVXXXQ\W_XVYTTVUbXb\R^\YUVXOZPV\Z]TRUX\PXTXTFUW]TURQ^WXVTL[WTXNW[SS`XRSTPPPYXXNW[RQZYVORYT\TTZV]^Q[VYPVTXY\[ZZY_RXDUaa_X[TS]QfR_ZUH`V[Ta[SNVZZUXXSWUVYZZVbYVVTQU\Xb`UZWSZSRUVSN\aQcQjTZRXWW^XPV[[YVUVXOYYXZU^aUSVXWXQZMYPWW]XMSWWZNTZTX[QTUR_SaWZXUWYXZ_WPcSTY`X[_^RHOXUWRcPY^XWUUMc\^[ZTWZTOS]\YR^RXO[WUVZWZY_Q\b^Q[ZXTUX^QYZZbTY\aO[`VZbPV^\WYXa\RSVVR^P\VVQVV`VRVQe^]\`\\\^^gSWY[\^``W\K\\NXWTU^[\cWTY_YUR^T[[\e`]aNOUaX[R]QOcXecTW]SXTOZQ[XY^XRYV[W\TX]ZcZXRR]b\\YSW[W\Z]U]VWN]VXW[XV`_R\TUKV][SUUS]\XSG_[fYW\TQWYYVSV\Q\V_VaOU^TWQW`]_[TT\XYWXcQ\SWRSOXZOXgPka`YQ]bXYUQZW\QaYPNO\URRbV^S[NcUT\eWN\XYX\[V_VaZ`TSVX[TXS]ZZ[NXNWRZR^[\X[VZXSZ\SWUPVP_W\Q_ZXUS[X\dWTZWUUVWZZZ_YOZSP`XS[QcRXiacU\\OV^RTZQWYbXYQY\T[qU\Zb^TTXTT]YYWVWPZWTTU]W[[b^\aWV^_^[WTZ[WTYYUXZ]Y\\V[YI_[fVVOWd\\YZUT[UY[bVY]][\TSXZ[TVY[\WPSSYaV[eY[YPX\XZXYNXSRTeTVsZWST]][UW\ZXU[]\U\RbYWbR[VZWS\V_b_YWaXXVaVX[YWUS\\]\\Wa\b`U[[[\[ZW]d[\TZ]UdYY\\RW]WVN[gT^]aPVZU^VVf]a[]i_W[b\UZY`WXfYWV]W`Q_VWYUXR[`YZ]\^V_Y\[_TXU]WYTbZYX]_ZX^^TS\T]X^acUciZ[WRT^ZVTWXZ`ZYP^ZW_UX]UW`XXS`UWZcSYSbRUXXTNX`]aZX^a_^X\[[RVZRR^QVaNRZVUXY^Y\YYO[Xd]UZ^U\[]][[^]_VZXZW][\X][]_T[ZTYSYZ\Z^YXg\R]_]XVZXUU^^a]][]SURSMRZ^]_g[TY\RXUZYbYZXTXdUcXVS_PW]YW^WXenTPXQ\MSfT^O^\P\fR`]S_YX[WeZ?Z[kT[Uh^\ZaRX^YPXc[\bX\VUVBRbYZW_XRXURX_YQbb`^[`dOcV\ZVXTXSY[]T\\W\W[ZV_Z[TUYW\^PTVWXY`VRW_\[]S`V^\]WUR]W]YYZX`^]X`Xb^CD]WdYYZ_T^_]YVV^Y_SWS]ThTX\V\WVa_ZQUUYZ\XV[X]VZWdXWPU\W[ZcTdWZ`O_W_WcV[YU[W_^Ue]Yc]PRa_ZN\bSYsb_`XS]`U[_VXS^SS[]XYUT[R^]\Q_hR\[_W\UMVT^QXcZaQY^\[]^XOVQ]_Z_^TZ\SW_W\\U`W]WVYTVQ_XVV\XSP]UXa\^\X^\QVUbr``\]QYSXZSQ]SU[SRUUQRZUWYR]\cU_[VOXOTV\TZZXY\[`^~ZVW^]^aXVXI[^S]S]WYT\\]VXa^gXTVUV\VSTPY\^XWT]T`TZR[dT[`[Y\RUU\YPUW\]aW\`TbVUUW]]IVSZY_RqTc[Z\V`S^YV[TWV[[XXb`bYUVXUXYZYOV\US]ZZZUZU[]d]WTW_U[ZU_]X\`T]\_\ZVaVSWZTST`UW[\NWYV]Y_OVWR\bUY^XWWUUUX\\YYZVZkW`XV\]SVWT[YXUT_YQSWOTZ\VSQ[XXVRXW\XZ^]TWbUUY^YZ[^Z`Y_SWbY_XYZYTT[^UY_QdUb[T_]WZYVQQSXXYeVYRQXT[]US]V]X_^T\V^TVZW\K\]]X]T]X[]aa`X[WXR\VY__TT^XaXXcRXW^RUYWX[SWWV^VX[VZ[\W^X\ZOV^ZU]ZWX`aQUY_[b`XZS\^YZWS^eWUUY[T[TYUgUWSYT\OZPWXQYaUXZXWSVZX[V^UTW\PYgY\eWQZQUYXYf^T[R\UVTXWZVSZS\WU^UX^YX]YYWaYWXTNY]\ZYX\\[\VXUV][YUZWW][]XSYXRXUYTVWSWXVSZTWUZUZY^ZX\`WZXXV]X\WUXX[T\YYVYY]XZU[Z[X[TZVVQWW]XWW[ZXYU]SX]QYVW[ZSUYXYWX[aZ[VZ[^]XX[ZTW\^\^YT]UTR\[X[`XVXS]VYTYWbT^ZWXY\_ZY]WUXXTc]_VeWcWUWYS[\YWUXXS\[YVYX_UVTS[XYUZWXUXWUUWZUUXZXb^XTZWXWWUZS_YSVU[WXT[O_XXSX[XR_`UQ\V]][[\X\WXZZUVRYZW\[ZWWZ\YXW`Y[TXXZXR[`ZeZT^TT_Z`_[RY\ZQ[ZR_YUX]UX\YT[WR]UWYTZXUQ[XWY\\YYRZW^WWT\WV[[Xb\Y``WWTV\X[W^UZV_YX\XVXUWUX[VZ[VWUb\Y_VZY\ZWZ\WNZ[WVWRZX]YZX[SaYXUTV^V_\UVXSRY\b_XZ\]O[]YRV[XXZWUkZRU]^]XV_\XYZ]WY^TVU`aWdWQ_YXXVWUcZ[X[[WUV\e]Z[cUV^USo^ZVRY[]^OUZX][[[\WN\ZU_YUVRX`cWgU`tXW[X[UWR]W]XRV]__YWW]^`SUOV`ZZ\gZ\aWdaWWZ[ZXVYVWR^X]U[SZXX[_TQV[b`W\]TW[Y\YRZ][SYY]VQ]]_U\X\RTSUW\_Z[ZTd_]WbXWWQ\QW_Z\Y`UVS\_WXW[PWTWZ\ZXX\ZiXYZ]V`YUZ[UTO\[Z`cV\UZU^UW^`hT\[WSSXQZTTOVW`_TY[VZ]TTWSZ[VYMWXX^[]SZaWXVX[WVbX`[_T]\`X[ZWYT\Y`eWcXSWYY\XVb^\cXQSWVZZ_WQ_UdR\TfYYXWXXcX_\X]VZYTdYRZRY_TXaaPZ[]WZ\RWaS[NX[V[ZZY^VZZQ[h\TXfV]ZVf[]Z]VVT]WbWYjObQZW`XWTXYWZeZ[YTIXY^\WS[XXRl_`SWTTXWbX\P^]bX]\b]XUW_XZ[QaYWZY\bYZ_XNUWcWSUY\TWURZXWVR[\^SVX\T[\Q[ZWSZe\aZ\VdUb_WXWXVYSTQ^RY[[`XUVW[Z[^`Y[[PTWVS[TWWZb\\ZRU`YWSZNPYZ_\SWX[YaaWYYUPZSTZW`T]\]\\cb_N^bW\X[X__a[a\^`RSb_[YWYQ[dj\[_U\XTc\^XcUUXa[_]V``ZY_YKYS[cWYY]]YWaWY[UYWgZ]`cYXU\_Y\ZRS\SRX^ZWa^Y^_TYcZWfaXTVPUZbaT\TU^^U\VZU[aW[YWXZeWX_\VWYYcWZ\YXU]PXZR[__YV\_XU[e\VYcWRVXSST[VTXbZRR\X\YQ`X_S^Y\a\XSZW\a[[^R]_[]ZX`UY[b^XZY[NUT`XV^Y_\XQUWW]_^WVZXea\]Z[[S`]\UTU[RV\U`XYZXZ_X[SQa^\]UZZ_Y`WZ^Z^]^]KbU\fM[XZT\a]e[][VS]SSR_ZWafL^\_Wc\ZbV_QaVVZZ[__WXRRTYUeVU]cQ_VN\W]_d\UTUWYXPTLXU_cY\`XeUSUbbZX\WYZ[XX[VTV[W\_ZQRYcbTX]\L@R[[]VW\Y^\Z[ZYZUY\OXc_dY_VUbY^b`eS\V[eYUQ_]_Z]\QZ\b]Z[RZbWYY]SZX]ZZ]YX_VX^^\]\h`YQaW\\Y[]XVZY\bdagRU[Y_]^]RUaZa?WdYXaZ_WQYY[_QXbQ[Zb\Z]eTZVg_UaWb^XfV]Z[[aX]U]YYb\Wa_]Y^^^b\hbW`XS]aVLcX`W]_UU\UcY_VVS[`b`^WeZZb]]Y[]aT\bVYZb[SS\ZWX\Y]RccT\eVZ][[^XQYZUScSSSWZ]R[[_W]SW\Uc_SSUcgd[WYReXUNYZ_X\Oc\_ZMTaKSVXUaY]T\dYZUZWYTOaXMX]VRUX]UZY_`SjRQXYST_ZW[QZVS]U[TS]XQYOS]WZYYY[_^X_KV\_TZT\bVPSe\Z`S[XYNiR_Wa[^aVYUV^RR^M_X\ZZ[[W`VYT__WSW\YWcZcYXWWUUTgXVRPXZRV`dXX_Y^GWSYRT]Y_bb[U[YRWVJ`W\ZX\ST[gZYY\ZW]Vc^`Z[Z`S]`^IOW\\YTOWYXXPH\QW]WP\`[W`aWSWVRX\XX[POc]TWZZ`Zb`YVR[\ZTRWU[\L\W^NQSZRZ[RZYNkOTU_^^[^X\TSdVSI]Z^S`X`YTYVUXaVUY_U\YlS`bSX]WTYZZSWZbHIV]bVUU_\VR[\N\W_\bYNWX[\V][WQST\\^VVd[_WX_YSIVUXTReUSYZU[QZY\[OZJTTY[UEXVUIYZ[QS^YU]VW[Y\WGNZK\YQNUbZS^QZXPV]VkRVgTQWgW[OQSWUWUXZ`YdMRaVWP[R^U^XVP[WW]][[ZVVUZY\TU[[YQ_[\ZcUYY]VRS`UMVJZ[f_P[XWNWWTvYPQXY[UQ]XJXPPNLSTXZ^WUZWUZXrSUT[WYP\SXP[cY^OW[RSWQWVMaR^]TW]]^aX^^TY_]XPMY^Ta_XQXOSbfYXhX[pQXZ\S]TV]UUNOMVOW\ZLXVZQX_Z[T\dN^NR^WVR^T\RUbKWXlVVVZSSYZ`Z^QZ]\PgZZS\RSZFTPW]W[SORZV]VSZaV[VWWS`[[TYaSwXc]TTVXYNZVQTTfWXSVSaW[TZTY\JYXOMUUW_eRSVTjeT^QSQ[ScYRk\aQY_WUU[a[YXYQVWTXYSLWTWTSXPZ[XXQWXSOPPY_T`S^SYZUbTTRPQ[[gYWSS]\hWaPYW`ZT\W\JScSXSP_R^ZU_eWYXeWbZX_T]TVUPOY\TSUSRVQV\Q_TRU^XVXQ[W\Y\[bYWPWQUXQ[d[[[P\_T[SYX^RNVXVaZ[[ZQZ`RV@X_\XVTZTWY^\XX`^ZVPXOZY]\^NZc[]ckZbWZ_b[^WSXQY[R\URTWWPZO[OXYV]YX\\WXTVRXR\b[a[WURWT[ZUVZfaTZTX[YU^QV]XU^eVQZXUXXWO[V]]TZV\T\WXfYW^VYYRY]VRY`UWQ][T`[X^WYZVW[STaQbXWVOYXTlVTZ[WTYYXSWYUWTVTXSVTbT\\WYYR]V]]TXVT]_YVSR[Z][X\YXUUaUXVSOWXXQTTRXbYWUSgYWVXX_`NR\RSVV]YY`UZX[WWQaWYXVXYTZU`YW^U`XUfXW][T[YZX]SX[UYNZXaX`]N[V]OXQQ[TYUgTZ\VWVYNT[QQWVYSYQWfWZ[WWRX\XYQVT_PYWWSN\\ZZZTZTXZXV\_]SZXYU\][ZWSR\TQ_SWS]`]W_VUZ]^TUaTY\aWYYXW[YTWQgXX[RX^`X\PX^YYRZVST[Y^Xi\\RVZbZYYZSV[\Y]U]_[\TRRTXLSa``^YZ[VebX_Z[WZ_\\V`dZ]WZ[WV\ZWWXQTVU[POZ[ZTS[ZZYUMO\W_e]bT\ZXSOV[RZ[c[\ZV]TaaYS`O\ZW]_cXVYYT[YXZZ\aU[^_ZWZ\ZYYZ[[OXQ\N[R\Y^X^\W]VbT\UW[VVRWgVW\Tb]XU_UWV_SWVWX]_]YSYY]WZ^V\TW_^UV[R\T`YY_VSXZYYZRZZ\\][UWS^P\WWhS][NRbQXKV_ZYV^ZV[[ZUYe_]\\V]WZWdWYUaT^\\^W]YVW^SUWZW\UZWSVd\TV]bRV[`dXW]WPcY[YI^[UUZVYY]VVVHVSW_SWW\WUXU^XZ`[\[Z`Y_`UQVTZ]TW\ROW]TKSVZ_VYXYU\[ZVYVUTYTUVWVV\UZSUVZXYUZ[R]XWSOXUTZXT[XPUT\[TVX\ZVVYUS^XXPSZTWWYY]}RZXWY]URVYQSVVWZXQZW\UWZVQ\XVWTVPTKVUYT]XTUSRVW[S]XZQZVQYZXSJVNVRWU[^[VXWUYN[VVV\Y]WTTU[ZBW U^XTVTSYWWVZV[WWSUYVW]YXXUbVPZ[TX\]UZV_YQYV[[QVQZYST][UWNQYVWXUXYTXVWUSSXZUZSWXUSRVUUL^UUY^QPVUZSVSZWSVW[VRV[XUFXYW[ZYVW]WZSVU\ZWUXXWW[XX[V[Y[WVX\TZS[\T]YUUS[VUX\XUZUSUVSY[ZY[WWXWWXc[RZWWTXYTRRRUT[XTQUaT[PWZWXWUXVXSUY[\Y\T_TRZQXVSZXXT[W[Z[XYXYVQHXSXUYZVW]OUUW\ZYY[J^ORi_^SXXRM[_`\YXUXYWZbWWZZ\WV\WV`SV[[Z[M^\VXYZUdQX\Xb\bVTY_ZYUXbSdXVVa[XSaSU[WR_X`WYVXWVYZ]YYZVaY^dN]XVUY[VUWOV]a_RXS_hYZQXUXRZXY[YYMP_RUZY]SS_[SUXVRYXWY^U_[YZ_VVLYUYW]bR[Q[ZXZT_XX^[VXRZXYW_]SX[UY\MSQV\]`RZS[YTVW_[SXYSS]WWNUSM]VbVbSW\\[V^Z_VR`VV_`YYNQ]ZMX\b__ZeUPNbSXJU]TXX\jRTO`UWQXWLZ^VZU[TV`NS\X[T][SY]TZV[UTU_ZSUWbYS]UXQJZZ\X_O[UcVSX[VSZVWUX^TRRU\^WR]Pa[Y]WXUXa[[VUSTWbZ[S]VYZ[XUZYYSTR`UUYRXTY\[XVSWVWRVPZVbU\YXRYXZ\X_W\UZ^dW\OTV^ZaUUp[eVVZ^WM]UgbaVXQUU[WS_YXWVTVUZRY]TZXUZ]\T[VVS]W_W\`SUOV_X^ZYP\Z`PZN[SLSQ_J`T[YOQY_WTZXWU\ZOTT_Z[\[XgW[Q\\]\VI\ZaZWWYRSTU\[WVWXZZ_ZVPTW[XUYQS^]]QTWYVVY]PRXPX[[_TUZPOYhQXaYUXT]\bVZSNe\S\ZVaW_TYVXU^YZVUUUVXWbkT\Y[[VVXV]Z]Z^Z_RTUOVaU]gVU_PSWP_W^RYX]UZTa]]^`SYZTf[aRWZO\WTYV^ZYQVZUY[U[UZQWaScWSVY``MYVXYUV^\RXT[RM__Y_\WU[UOUaWZWVQ_Z]\SYT]a[W]Q\VXYQQ_LV[OYTU\\UOU`]XZ[YYW[QZ_QaUd[T\ZZZXTTXZSbTYPYUTQWXURbUTUXOVSdSWRQPXShZL]YXW]Y_TVWZRWS\YOVZ^YWS\PYTX[UWR]TXTZVWU]OU^\XXWWYd^`RWZXUT]c[RRRYZXSW`VY]cVWWPXQa\TVXY\XTYgW]SWVZ\VY\Tb][W`OY]_TaWV\]T[\Y^T^[]\\PU[XQSSP\`V[Vd^SXUU]XQ\d^R]UZWU_VP\]^R[T[TZRWOT]]^YYYTTVVRaTW\^JY`ZaSgXTUWX_PV]]_UWW[ZVUR_`[ZYXXam_]U_V[YXOVaU\V[b]`MUX`T[Y\ZSYWLVPVYaVWUWZVVU]UV\bU`MU[W]RW^c`YZUXS_YZZXWR[\YY[TV\YYaVYWbM_VXVNVXUdSROYZVYUZU^VQZbY][[O_[[dV\[VWRWW_TWYVVV^cVWXTXVZ[WV][aSWWZVU]WZZUXYV\_R\VXVXQR\[W[UXXUWWT][S]UWYSSY\P[PXTgWTT_bZXZ\SYVXQX]cSc[R]S\aWVSX\]_XRTWYSZ[gZ[[b]VZaZ\ZYWVZX_RUb\T[W]TTYQ_Z\XWK_U[YS_NUX[\YYU\X\U\\WR\WWV\SXQUU[ZUgZT^]VYNSX\RYWf[XWVYRITR[V]XQSOXUYRfZ`Z_aSZTQ\RWOZ\W[T`X]VVXXXV`\fYVVQZXPZXWWTWUR[Ta[]QRWZ\OYSSV\Z^ZZWZYZTQ[YXYZLZX\`^[b`T[\[VUXXUZUYYXVTXYXTQX`[]ZYYRZ^SOYWS\RZV[XWXSYQZZS]UYP[]cV[YW^`TUY`PV]WbYQPT]VWW\\XTYXcWVYO^[XVX]UZUkVd^U]dZY]^V\]YQYa\YT^`\_bYYTeYSTWVVURXW\^Y^]RT]Y\^a]UZZQ\VQX[YXTSXUY^QU[\TWOPZR]`dXZXWc^\ZUVX[X[[X^YRU\]_XX^UTSU[S`\RXUYUPUZVUVVYV[]\\`TSa[f[T^X[WZ^[]UTWQTXXSWSYV[RXXVWYTa\Yd_\[YYU[WWX[c\_`ZUTb`TQdhUYZ_`[_WSZYU[]YQ]YY[XU`TX^WfQYWTXP^ZYW\YQiUV\gWYZS\bZ[\X]^T\^]TXQdVZXTT``[pWaS\TYT\aUV]_XX][TU^_O]XYTSYXZ\OZ\[c]TYaZY\b]`_VcbZPdc\YX`Y[_^VaSWW_XSU^S^UMddXZ]XTQSWeV\YZUSZ]`X^\`dZVU\S[Y^ZZT]US_`UWYY]UN[ROYXTWQX]ZW]^cV[Y[X\XZ[W_WVTE[aZTNYS`Q]U^RZQ[WUS\UZ]V_\TPSU_UZ[_cXT_dUQWYSYSPUPV`\]S][TXUYV_[Q\[VQUWU[^QY\c\WZXbYTSPT^SU]S_WVWcW`XPRWZUTV[W^`T[YUYaYeN\WYNYSR\bU]]W[ZZW\RQ_\_UU_^N`XgYSRU`S`^MVUS\\Y\VbZXcT\][TU^_^[Sk\[^`[YUR\PXU`WWZ[UYQYYTUYVTU^XUX]^YSPYZX]W\YY\WVTST[]XY^_VXTTWR`OZZ]]dTXX\[`_VQaZOOdVTUXRWWSZ[Y]\h\[JU_]aQW\W[\VXWYUVSZ]^U[PX^YVZYLYPZTIYf]]V[dXVYTRTWYXT[S`d[YbQV[aWVVZ\[Xa`Y\ZYWPZXRVXRTaQaXW[U]UVXUUZ^XQNS[VSM_\_ZV[SWWZ[WVXSa^XTa_\XTTUVXTRSWPTW]WVS^^]T[UYQ[ScXUVTV\UUcZSTUXYTY[\PYWR]NZ[^SZP]\c_c\V[\[TXUQY`RU^TWXQTVVYWPW[`\^\][U]SQ[Wg\W_\[SXPV^][VW^b[YZ]SVX_aa_b_[QYIUYZVQ_^YVU^\PUSUXT[VS]WU[V]]^WUWUZWZM^VS[[^^WV\cR[[XQX^S\[WVV[\cZbRX[[VWS]QR[S`VR[RSXUZZYYVUUZSW\WXX]bWY^\X\[X_VU\][ZZ[ZeYV[ZYV[WYTYZYWT]\ZWa^XWLYVY`[T`[N^V_QWW_^YSXaZ^SVUZUb^Y[[_\OfZSU[`WY_XYTYXSQ\VVTV_]X[YXXWV_SU_^W[\SZTUWPWZ`SW`]SW^YYdZZYPX][VRa`WV\Z[]XX\\XYY^^]PVVZXY^U\ZXNVYOY[bWZZa\VV`ZV_UWUWUU_UUWXWX[RYWZ\UWYaZ_]aVc\]WX[YV_]V]Z\VVW\UXWVXZW[QSXZUPT[TUOXUY\\ZR`jYZVUOVVZZY_YZTV`WWUaVV^XS`__^[[_Q[[T]Z\WVjTVR\QYZ[\ZjZW`^YVbW]]TX[YZ]_ZX`bX\YYXUT\]VVZUU_XYVYbbYOP]^V[ZTYYYYZZSZXZ[W]VY\]VQ`W`[[XZZYT[VYXWWWRXb^T[WT[PSXc`_[YYU[\VT\WXTVWR[aW[VTNT\WMXSW[]WVXYbZYXUSUZW[ZT]YW]QXVUS[U]SZ\U[UUTTZXSZ[RZPRK[UY]UZV^VZXWT_YQVVXZ]XYRTnUX]ZZZYSSYNWXUQWZZTVVVX`WUUXXZWVWWKTYUY[QRVWQSXVVXZUVYTUZ^ZSXVTRXTV\[\TU[XXNZXWXXVXZXTV^WI\ -Q[VVWTU[ZXY[W]ZYZY]RP\W[WR\TVX\SYTVYXZ`XSXUT\T[VW]QR\VSZTUVXXZP[XTZbVWUTU\UYTVXYVMXWUOZYOWXTNWZTZXOWOXSWWZTWYXQGX[WVWUVY`X]YUSXUUQRRXYV\[\ZZW\STWZXWQW[WS`OXUOWX\^W[UWVVWSUYZUYY\\]ZY]VRV_UVVXY]W\ZVTXOYWZRZVRWPXVXYUVVV\XUTV]^RSXXUVTW[YX]W\WXVXXYZWRYTZVXW[YYRQSX^TQ\TUYQSfXWWZZYXbYTV]WWYS]U`TY\VeUYZVYZ_UQUYPTRV_WXXVYRU[VW^QSYVWW]R[]^VSQ\][VYPTWYU_]\RSS]VaU`^P[Ya]XPYW_]W[[^\Z^W\W`XUQUUY[\TSWb\WVOSRX[VVYW]ZXX][UX[SUYYVVSV]XYY^[W\W[[P_ZU]UX_fZRZ\VXU\[bcZ]_bUZ_R[]S`a]gSa\VcV\]\VX\PQVTXSXWRZ]\WTb\ZXUNZVX]_a[WZ`UV[U_YWZ^[W^gRXZVRTcU`d]YXaZYYVVVXTgRU\_Z_a[PYWS`WSXZ[\Z[_UQW\QR`S_XSZZXYT`Y][U\TTW\XVT^QSWaT]][WZXWU]aP]UWSZXWUTZaXS[]NSVYVW\\WPX]bYVPTYfZYS^XWTRXR\VUU]bSWZYYaXY`YY[XWPZVY\][U^R]Zb[VV[gV]XTV`[Y[\^PZXUYXZYXWV^UWXXUQVXXYVTW\YNZZV`QZZXi\WU\[T^\`T[XSZ]XWZP]^SQ\YXTPT`ZWQUVXbRSbQX^XXZ^Z]YaZRVS_]\^T\^UTXYVZSS\Q[W_M\TWWRYYYk_^UY]T[TZ[XWT[MU`_T[^TXYXT^WhTU[WQZSVc]ZM\^^YX`ZW]ZdWT]\aTXZ_QVR_fPRcZXPQPZ^]``XX^X]Ze[^iTW`VZWV\WXYYLX\XX[WXdVUSW^SUdTUQ\VMWXRcPTZZ]^V`^URXY\TYROYQZ_UYW[WWYXSUaWPXZT]Q\_XWbSRaZcTRSZ^VU]fYOWZ`[T\fR_gPVWVPX]VWZRfZ]VU_cRW\YW\cV\WVYa\[]\QWUU^YZVaKSYU]VTkUYRY]Y[UWWbR]ZYY]X^Y]Q]XQX]]O[TVVX[XTQQZPbWV[\W^VYdT\W[]XU]WWT_\X\_eVW\\\U^bUZ_SWZQVRMWUT[hfU]WZQSWXU\Ub_aSGZWMUZN\VYVVWYXT^\ZT[WWSeXO[O\NXWRWV]_UYXWXVUZVXT[UUhUR^^YYWVcXXYT\aYa_YU\X\\OQQYY[WPeTTUV^_UPT\abZPR^]ZXZUPST`UVYW\\URT_^RW\VUOUTZW^TWPRTVQZVXO\W]ONSYXX^WTRYZRQf\`WYXY[bTOV[SZSTW^ZYVVUaVZ[\P`X\_YSX^ZOaXd`NZWY[T^^WVQbXRe\UT[WSWRXXUZRQQYb\UaX[\R\RcO[^\ZNWT[ZTT]_\QdVeWXd_`XYU^W^`V[ZYUV_P_Y]VZPZX^\WU]\NVQcOZTSWYTZWW[QTM`RZ\`VY]U`SRXRZPXS[\QWe^Y`hT]^WYNWYMUXQTYS\\WSXTa_S[XWYOXVUZWQYWWaWTP^WP[YVWYWLSY`[[dXQVUZQT[bM_bXWU[b[TT]X\\eZaVYYRX]V[aQ[`ZXZUXX`V`QZT\Z\Z]^]WVUU\`VZYYZV^TR^WW`^T`XTZyXVU[^U=X[YX`VW_]VZW\XUVTXVZM]\WYU\W\\SbVTZYYZ\aQ[U[YXYbTVW[UV]XX\^\TTYWW^ZVW]TTZYV^\XRVYYVRY^XTX^R[^S]RXUXUZ[ZYZZVUWYkV`L[WZT[[\`]XUXWPZ]\W_YVWWXUVVSZUXS]YZY]WTR^XRRV_T[YR^`T[]ZXX]XZXV_TUXXWWS_[bXYX_\RX_YZVcXN]X_YIWTUXRUW[]UZ\[^XWYaiWYZ\Z[_W[a[_]VV^Q[_VTWRZYSYeV`bWSZZSV[ZZ[Q`X][WWZTZXVVVU[^SWZZXWZ`XS^X[WXZdWV\[VW[]XOZ\YS[\[X_UWaSUWZRV[SXW\SZZ_S[XUZQVXWYUXUTUZUYZW]NZY]VRXTZVVhRV_\[Q^T]aTefU[\XXi\]Xd[^\S[aTUX[ac_S``h^XUc]WUUW\d[_aSZa^_X]e]TVSadZWd^[kZZQ\V[P\\^]ZPSZMYPc\ZV_XW][]^XR]__ZT`ZYeUU]Ud]V[YVZ``T\SWSbWVTJUTQaVmQQ_QNT_[QRaQ^c^^ZL`PSeSb[TTX\c[b]YdQS[`heQUTU^XUTYhbYSZX\Wg]SX_WcXSSd_T_bV_Y`WTXeMYXeTPNVUV]]`YZZWdVS_OV_]`YSZ\UcO\gQ[Zrg`UaYWaZ]^PT`TcUY_Nf[_Z`V\VRlXXSW]TaZ[cRcUW[`Y]][WZ\UUU_UbZ][XiZ`aZ\V]hQgZR\WQ]XY[[Z]_QTUf[TZRVaUZPVNf`TVgW^WTV_QfY]TU`XaXYV^XeW\]W^]YZ\US_Z[]N^Y^^\\VVa[V`\cT\Xe_RaXYW`c_W^Y\Q\[ZUWV[\`XQU^]NVRTZdb^[WKt_^hXXajWYVcg^dZ__U`_dZf\ZeX^_id_l_]^VO]X^fhUUcUXkWaWYReb`[ZaVc\W]W\`[l^_dZ[Xd\Y]QCZ[bbWPg[gYWXQ^X[Sc]k_d\e_iZ\Z[f`f^La`V_bih`chUh[VdZL_eVWbUZZRc^`RVe^Ydb[Y`WeYSdZ]d`YZVUaWLZURf^ici_XXT]_`d]T[\iQYTpbZdi_ZTZ[UXZlh`^WW[h]ZZd[TdQcc\P`\W^Wf\Z[XacYYY\Uejcj`cU[]bZgY^Yc\[MXXTZW^YiZbZVQbV]dXW\]F\W]UT^R\NRX\g\`g^V`dgXdYWVZS\e_ld]Z[O_X_]`YUeyfZZc[fa`a\_SW_fV\`[Sj_UD_anZYbWaVTWe_aWXYpOWg]Y]VZ__^[Q^T]W\ah]]Kq[[^XWOX\QX`cci[_fd_ZWT^\\]Z]]\W[_c_^r`YZ]XPWZZT]ZdYX[`Y\[\^R^[XWXVSUOZdYV[S[UXYZR[XZ_\h^S_aSV_YY`^RZZV[Z_ZYV]Obd[ZUOTTTWSe[\X^WZUW^VZ\U\dWXXX^T_SYVeYTQY[YRRabaX[\\^O[VVY\]VaV]WV\VTdaZUPZ[`ZX\^^U^TbWWVQP[X]\V]S[`XNT]ZXZUVQVXVX[R`W[WWLWX]UVZWZZV\\Z^ZXYTXQU]^SWYZUPV`U[dZcbYZT\Z_[][\YS]YS]RbY\\URR^TT\^XY_\dY[W\RYROdUZf_aTdUZQ\\YbVW`ZXT[XaXZUZfS]TYeccgdW[[`ZT\ZYUZ\ZcVY\YYa]WWYWV`QXZYa\V\YaTT`ZW]Z\Y^YYW^SSXbTjV[ZXYVR[^W\[UM[\^\YXV_bZ\[^WTSV[\XTTWUYYNTZXS\eZ\UW_]lVZQ]W^]VXb]_gU[ZXVUXXUWZXK\RZ^[UVQYJaUeOoXZ[[XQYaQbs\`lHUUQRbb\a_]ZQFZQXTdTNb^N_WXZXiX_bV_[]Z[\aW^TZUP^U`^RXZTaZTRZUQRYXHSa]TVR_[`UKXSY]\[^VVZYZdcVSQUO]`VPLRcX`^Wf[Z]YNVPaVWZS_hRd`e[_Sa\^^g`ZUU[fWX_a]`\WaXXY[cXbWY^RTUZYSXZbXW_P\UQRTM[]_PQSYVb^^RDRVXXOY\ZWWe\W_ghS`YLjW[\YXU[X_YS`PT^V]cKSY[fVQWO\STVWX\UWa`Ql^gX_LWX\bR[XTQXaS`]XXYWZ]UYUYV[VgR^hTd]XTYZd`\TNUfUecOZ\TYOWT^UY[WZZOUXVVUX]OZa[VZY\ZSZYYYZWIWVPbV\WLaS`VVL[XjXX]FXXRb^Y_SVR___R^^X[ZZQUZ_]Wcb^S^URQX[QSN]VYVW__Y[QT[VSW[\VVZT\YVVTT]X]]WVW_WX[VO[Y_[ZV[[_]UVTW]WYYZZW]\^ZP\WQZXYRTTRYYWXYSUVZU[^\Z\YaYWY\SYT[VUX\YU[YWWV]ZV[TVUZYZUYWXP[WYWXZ^]XZXZRW\PXXWW[SSYXUTY[]Z\RZ^^[YYZWUW^][`YR\UURYZTZaYXYUYVYUWW]SPdVPX\Z[[\XYVXTd[^UcS`XUVZU[[\XTUYYY\YV[[[SVXZ]XYV[XXWXTRW]\VUW\We^YV[TWVYRZV\YVWUXW[RWNaVWXY][R`aUQ\VZ[Y\Y[\W\\\VRX]WZ^ZXUXUYZXTd\\QYZYVSZ_\dWXaXT]Ve]\QWZ[P[XP`XYX]VTYVV^WPZUVWU[XSV\[XYZ]ZZRYS\XTU[UU[[ZhZZa][\UV[W\YZX]Y]ZXZXTVSVVU^UV\YZV^[[aVZ\WWWY_XRY\ZVWR]UZY[YX^S^[Z]WbVU]`AUGpOWLQhUSZSC[YTUf]Q\VS\_bLXfZYYVPQTLPYiMO[[N]WSSLQ]TUTUXd`U_iO`VWX]d]U`ZE]YTP`R\V^aW`NKM[]X\e`Z]OeXO\\lUbSZfNbOE]_]WaTXOSZF[V^_[^?\gV_dWFWNWfQT\XcTcUW[]R`\QXOcd`M\P]YZZQZ^XVNI\]PXZb`ZU\X[`__cTO_W`SX_W__\W^h\Oc`XbRbXiX_SZXNQ_O_WV`Pf^[^PISRQ^]MORZNab[WSWXU[]P\XVXV^bJ[J]W][XRRaSWTU[YX\S_]SN]JU]VLMVTXVR^\^ZSPS[DQSPRQdYT[VUX[[V[MGe\dU[Y\Z[]S[MWUW^W^W[V_cHNPQ]_[TlaXbN`OeYYZ^X]NT`QUG_pX[`NXWNVURV`SS[MWW\FSVF^QRLX_[U_QXdVU[IMeREUQWQT^LKVXWaSZTUXZUYV`WYW`\\RZT\V]_X^YUVY[`YZTSQTZ\T]WYXgV`S\_WYaWTUWVXU[\]]^WVXZ\XUUWWc_[W]WZSPZ_`aZM]c]VaX`_WX`Tc[_ScXX[WXYWYW[UZ\\]TYY\VWTV\\ZU_`^XWS\Y]X[V]]ZZ]UVV\_^Ua\VTY^^WUVSYVOQYW[\][gVYS^VRX_W[TV_ZY][`VXY]\RU]]X[`XVaV\]a`XT\dXY^ZR[hWTY[]XUb`Y`O]^[TaUN[TSU]\Y]X[WUUW`[_U\[\WV\^X\UVYWP^UWVW_ZT[_YXYZRY[VU`PYX[[]X_^^Yd]\WZUT^S[[`[T\V[]XV][VX\T\YW[UYUZZWYe`XZ__YYZ[bRZ_RU[[]Y^X][RWVXXYX\Y_^WV\]VU[R\_XX_XV\\\U[\UWZc[[YX[WSZU`Oa]T_[XWU`[^UZY^^[[[\c`Va[Z]QVQOSHZZlZYQZS`T^^[V[Q^R]OZYZY\VTZVO\\T]Z_TZVT^V\WIP]ZW^XV`TUTRI]P]^NWgZP]V^ZU[]^]VRd_[W[^^WZ^^`UR][RVX]]WP\ZT\[Z[YUXTZ\]XQXXV^^W\\]ZX[V\Q]ZSRUQSRaYQc]Y\RdYSPU^X^]SXS_\I]XUYX[XYUTTWXRPRZYVTUXS[Z_\]U^ZXYU[^_]Z]cWT`[VY_YUWWMXVbYVNXR^gYU^QS][NWV][W]P_KV\X[YZZLTZZZWUQ[TJb[T\X^SSXUQWV^^[ZTUN\]WWRV[\[bUa\XT[\WZU^SPVZPZMSYVYU_QOTZVZV_WX\j\[Y]UZUXYI_VjUYW]a[V`[cYWRZR]ZX\WOSbZ_W[^^_O^UT\R\UbVZ][\PZW\W\SP\VZZYW\eh_PQ_[_VWZZb_RcOQWSQ\UXOcYVXVYXT[^bUV^RM^[R`YRU\[WR[VYW[[VQ`VU`W`\ZOVV\XUXUW^SSXUTV][XVYW^_cVUUV\X]XMWUP\^RTVU\TZXVY[Yj][WZXU]ZWUSQU[jXY`[\]ZaYbWUVU\XZ\Z[VS]YVV`OZ][UXUXVWY_^XU_[YZ[XS\rWYZP`cZV`TUVZ\Z\XTP[XR`SO_ZVVWUaP\YYWYUVWR]XYYU_[VTaeUWVTXS]\[__Yg\VUX^Xg]R[X`XV_W\`XW`_UYVU[VVYVYSPS\YVWXZVVYVeXTY]U[WZVV[WeTUOZ[XVcYZXRYW^YaWT^`ZYReVY[VYVWYS`UTZZZbcS\Z]]RSXTXZ^V[V[Y_WXVW[a\Z]^X\WUedVV^]XeTV^ZWXQ^`]WXXWU\TaXQ^\[PXWXYZZYRZ^UadUVlSZVW_Y]WYZ^UYVU[ZYWWSXWVXTUX\TY[TbYXTOe]PXWYYVT]YWR\Z[\\WXdWNe]X^[^]_SZ`Tb^cb[VX]U[T[Xf`ZOaYUWY][[XWXZcZY^Z]PMY_OW`^W\XZTOVW]SZ[^]ZT[XZUbVUVVU`]RUU[Z[_ZUVUWVTTTQQXQ_Y^VNT\]h`SV\X_]Z\cQYZ\XY[YPUT_XWYRUVZWUTTWeXLU^R]^V]_\^TQ]^e^U^ZWXZ\^T`TTVY]\ZVVWX^]RX`TZ[`YYZb\\YW^^^YZ_YWXUPVSY[UV\]\O[bdV`f\VSUZ\VM]^\PXT^eVSeUc]WMSY[bXXWcZVT\ZUX\^ZW[VWWN[R\\bWc]PY\ZV`]XUU]Y_RX^^^TTU`T^YTbVZZU]YY]O[XZaZQZYZV^_XXXYZZW]UY][VXXTU^ZaYWSU\eTVWX[SWf\YZ`WU[^[W\^cXX_QbS]RX_O]YWWZWXcS[X][WVXc\bTZ[RWRVPSV]W]QZd[V]QNQWY]VX\_^UV[[Y^_LUZ[`V\`YWXNSZTTTXSXe`RYXUfZQYWaSVcUbY\bb[\iWXZZd_U^XX\ZZ\O[][VVcXSYRT_T`]TTUWXUULKR`ZR^r`ZXaX^YU]X\SW`ZRb\WWTSQ\XTYVU]SUXW]S`ZW^V_jYX[U[WUTPbc^UU^]YUW^RZYXTL^URVebSYZWZ\WRP_]Z]UTXaaV_]YY]j[_WUTV[ZQVR]YRSSX]^\^bcX\[^e]c_^UUU_XYMR[TZNVZ\USVQS]bW[V][`VWX]`RZWVX[Z_aZU[XsV`XTZY_e\]aUU\[RX^^^SZa^[RVS]QOWWTUXO[]`SVZ]_TaQ^dYX]WQPhZ^QQ^Y[S\WVgd`U`UX[]YZ[_aUPdUePQ\VaT]U[OabR^`]W_`^]UPS[^P[WYWUM]`Ra[^VUY[W^WO^QP`T[VbUW[WRcV[X_R`TVU\XWVYTSTUXXWVUWVX^[]\ZYY[WTZbXRVZZ]]]YWYTW\]X`ZY^XYYWW]_ZW]U[TV[]ZU]WW[WVZUW]]YTUWePXV\WiZfXZXWXWXY[\\Z[`d]V[YTBTW^UUXWVWWUXZUY\[\YUZ]YVUWWVYY[W\V[[YZUXYRX^YZTX`VUY\YW^TYXW\ZWXX\[\XWYV[YYV[ZW^T^YYYY\]W`Z3X][bVWW^]X\]XZU\_XY\WWXXTZZ\][WW^W[XZZS\\]W^ZUX[[ZRZWVUX^ZXR[^Y]XWZ\[W[WVYUST]ZUU]X[\XVXYWU`Z\[XYYWWVYZVZ]W\[[]AX\TY\Y[Y[Y[T]Y\Y]]XXVXWY\Z[YUZVZYZ\ZS^YZW]WZW[ZZWYbaU]TU]V[VUZYTYUVTYbX[V\YYWX[^UT\VWVYY]XWVZ\Y]XVWXZY]Z[VZUW``TZWZYX[\\cUXV]ZXZW\W\ZaU\YXUW_X]YTUZ_V]WWa^U\[\]ZPb_aZWXXXUfVZYYX\WX`\T[]^_XcfS\U[bZU[`^c]W]YX^YXXYXQ^YV\Z[_U[Y[T]\Rd``SSX[WTVVVba[\\WSXVY\YSaTS_\Y][]^WZZZTW_SX^ZWXW^XS\YXZVYYUTXXUXU^Wc^eZZ]Y_URUZ\O^W]X\W]^YUY[U_T[X_^^YWZ]Y]UZVT\VXV_^O`RV]^`]X]NXTZWWXZb\YaYYVfYZ^Yd^V\SY_RWUS\ZSSYWXRXZUZRT[hY\]]`]XZ\a__Z[\_]S^bUYcW[XZ[TU^NVU]T]Z`SZXZ_cXWUZ\VX\VUZZ`Y[[ZW\c\dUUVS\SWY^]WYZY]UYW`\SZX]YXZWaXYX^Z^`ZTV[VZZ]W[XVR\Y_Vd[TQUWWZ]RUXUWXUX_YX\XW^`\`V[Y^XSTXZ[]SU]aS\U`TZTWZ_UXVdXY[WZWVUU\Y\_XU]XY]YW`OPaW[bZX`Z[MfS_SPX[`UQQEQeISP[SN]XRL^VMSX^[V[XUTO_UcUScVNQRWV]\W`VQZW^UQ^faWKSWQ\XWYOK[WP\iTb[`XM\WX^QSTOaeZSSSRNG\ObLUVW]ckYZT\_ZViPPSU\OWXaQYVT^XYVV_NPZTMUTQPXNOXSZiPOVZXNYX\^cWVL_ea[Q[RUXTVaXVY^_RaRbV_UHWQ`RTRU\Y[[ZgQVaT^UKXfOQSfWWRXORUKS^M[[SXSNRaW\WXLP\mUk\TW`NUQYRUWTYgSTVTTQ]_\_XX`SPZWU\ThVV`[UZUO\i\HOUTaQV[W_VUPXOWP^NPT^SXOUcYRSR\e]NXYXW\d[Qa\T\X^[YGZWWf\RXPV^_]TQZ`WOaW[\YWWWUY\WKUUWTTRaSZ[QYRYW]URQ\bZdNcVQVe^USVSWTa[N]N_ZcYUP]U]VO\XUT\`RNgYQVZPZ[`[VTV_ZbW^bZ[PYa`VM\_]bO_WITWQYSX[[\_MYQ_U\ZZ[XXZ`b[If_dUTTS`X\YXW]]VPW]XRSaVWNYdOWSSXkWSVPTcTW[]\`LRPWb\U[PXT^cT\pZiQLXb_X_WaXSTaTQ^]IS[Y[SOUTRXROTTbUN[dP]Zc`aVYUS\_VXb[Yc_YT^d^S\]T\faTP\bVZbP\TM]dW_LYTUMRV\WY^T[S`ZbWXYNI\]SabXYWYbcRV\_fYVUW]WHWVWSWYccWW_NWWLiQ_^]WXTcBcVZ]cfTP\VVTY_\YV[XcRYH^YYP`O\a[]eTZWiT]ccdQJ[KTSWZUQQ_]YULVVPWXWlPXW\X\LUWYTSZ^[QUQN\ZHHTW`NXXcRUY`q]K`hRT[QbWSYS\`UV_T\ZUYQ[K[daN[[RcWdLbVRkhRlYdYYU^TX\Y]PUUVL`TaPUWZYUV]X_ZVWVT^VZZ][XY^YiXZ^ZT``[U_U\UW\YbX_^TYWSVYXZW]Z\^X``W[W^bW\^_X^KXS^Y^_dS_V]WY\`ca_XbY[WZaYZX]^\dZR][_YW_ZY`SU`bSY[`ZUV]hc\X\aY]\]`\_\]`]`[mY^X[`hd]\Z\_aV\X^ZYX^\`\Z[^aaZ]U\W_VZY]\`a[[T_X[[[X][ZaT[^]\YRW[]_UZZ[`[VRX[W]`_UVQTWZ_TYQ]RYZWg`Z^VU_SaZ\SW_\_X^^\X`TSXTZZ\U\YWVYaOVX`aXR^VW_fW^\_Y\W`W\aUXa[bX\aVYUWY[Z[^ZZaQTXWZ\]]X`XUV``Y[ZdaVVXd\\\dV]W_XW]_aW`U]YZ`[aJ[]`ZV]V\\Tb[WURZ^WWVW]Y[[TbTX[^]U\WeYY_ZY]X]YcZ_UVT_]ZZ][W_R_WRLXe[WaVQ][ae`YU[S\fRSR^ZSU]RQVSURYMOVLXTVRWWTPW[[ZQOT[R]SUVWcaZUeSWPRQ_QJcPW[TPRUV[OVSMVYSOR_UTWUPVSUO]YXVPXSEYZZ]STWPSU_YQXP`XSWWVZZVS\WWUXTSaUYQYVVR\\TY[VNYRQNT[TUVSY\WSSRJSOVYQXWPYTYc[SXST`WVXUTYL]\VQTOZUQYW[YSZWXUSVS][\TRN[TXPS\V[VVNYZVWQ\cVUQVW[TOUVMPWMUZ[IUXXZOWRTXMTTZ\V\[UYYVWPUUZ[MZWQWN^Q[USX\YSMKWUNTTZSWYaTTQZ\PQRQPSOTR]S`V_WYXXYUVZQQYXVSXTSWLYWL^R^[YVWUWTXUZ[VUVaWUWIY\`XP_TZQVWPa`]WYVQ]VTUXURaTYXUUSY^TFSPRSUZ\YaPURSTXLRQ[[WVTXXYWYUTXT^\YISPUP[VYTOVVTVVW\_MZXV[[S^\]TaYXVXUVSX]_[WUSgRW\WYRR\X[RgXX[TZTYZTcY]_`[TZVVPSZ`^W^T_\Y^YZRdVQ[SMVRTQX[]^V_[^Z^XV]]`XcSZ\_TRZa\ZZSSe\^kX[Wa`RSY[`VVQZ[[YT^_P\SYbZ^SXZ^XXWV[]WN^VYZQQ^_WJOVU^^XQ]UZcdY]\Pa[R[X[[UNVQUUW]_MYS_UVZTWWbXV^UWWZ^[W^]^YXNVW^ZY\S]`Ze[XWW_Z]ZXU^^ZMdZ_S^\WSUPQ]YXZZ\g]^X\W^H[X`[_Y[`[Z]`V[`XYPPZR]Oa\aTZQU_cWYVTW[X^OaWS[NVU[d\[YN]`V^U]WTPWYdQZU[S\_ZQVVXZXa[aXY`^[WSaT\a[RXZ^UYWWS]YTRaYUPOXZ]^Zd^[VUN`X[YYT[ZQ^WZ^UZS_Q^OUVYYVU]`\[]_VU\X_XiTY]U^WW_`RU[[]_[]RWZ_RWXRUU]V[dTS\TXZ\WY]TXXTZ`WV]TT][L_[XfTYUQVV\\RRZTX_]ZW[V[UXTOM`U^P_cN^XcbX^]cXU`UOS\bTXOXO__XRRSTJaWU__TaXTSUT][]W\YZW^V^]^[W^Pc_QZWaSXVc]]OTZPYW\[TbZ_\SX]_UVWWWSYO^QUb``UYfUUTWZZPZ]WQV\WWNbUX]UYaTXR\UZXYPT]WZYW\U\VUXSTVWVXXYQTXcYWS^]WTU\^^SVVZWS`[OY`bSZPPbX^UZWZ]]YYZc\RV]\QTYYZ^SR[U]TUWQT\V\Qg[OZ[ZRNW\`YP_XVP_UXYcR\q^ZUWa]W[Q]YbTTYU]d^YURZS[VSWRZSWSS\[ZXZQYQ[QO][UYOSW[T_]P^ZZUYWXWKTT]VYZ_V_[\O_SL[`WZOXVZVZWVaXUSW`\W^ZUWTWRTXUXWP^OZSRUOTGOQZM[TTRTOV[SUWQQVJJ_H^XJXSRZQMUZ]OPXYUXQ^SZKS\VRUPX\VJXOOUN[bT]VRO\YSVKUXUTXXYVRPLZPHWRUTTUYWQPUTWNQXWR`TU]UPYXWWUPVNWNZT^UOQYLW\PWTRZMTQZROOH\OISOYTYNWPQR_QTXJR[ZQTO]Y_WY\XRSPMSWMUSQZOHYOT[RMSZTXVXTSIUUSXVYS[TOXLNLTTQUSMSYVWRKUWWPaWMRWTOVRWQHQXTWNcOXM_WT[QZWSX\TXVSZoLW[XQRRQUM[POQ[RXXPMMTM]WZTT[VT\RU[U`SRVUONZW`YQWSWMTYQQVXUV[ZWUYKZURVXTRWVRZTYMYaUVYXWZcZVYPRZTW^Y[VUV_U[OWUTTWU^U_WR[XOV_[XN\USMS_SPVWTKUXQVJNP_YTTNWR`PTMXZNTWN[HW\QQUUYYUabWU_ZZSYPS\UZ][d^ZeZ`SW[YSYP\W`V`STV^UQW\X_UX^ZSPW]aWX`]_YK[Yc\X[RgY\[]TR`V\^_[Y`\NQZTTbP_\Q\\\QV[^]RTXeP[X]\WV_V]RZ_SXWXZjZaZ]T]VUYWZ\R_W_\YZY_UYQab_bO[YcZPYZXcXZV_X[Y`_[][X]XWR[Z_S`ZRUZVY\_\\VRXZS__`]Q\WbT]RO]W\`US_Z`XP_[ZZ`W[V]]WW_V^T`WWXbTVQ[ZTSZ_S^USPWYZVWW\U]TWSXc_\VVQXTW^cJOU`\Vd_]TWXSS_^]W\S\\MVW[[ZZ^T[Y]`TZ]V\QUWPI[[[WW\Vb^XOZ_XSUT[aaTSY_US^_PWWQ[V]V_]TaT^TXYVPQIb[TWYSaPQ^iX[QTbVRYTa[a[_VYR^\W]UQV\ZZVa]XNRYZ]XQdXSaV^XaQYV_STRcWOb^UPTVUR_TXQ\U]\MZP]_[Pb_\\XJbQSWa\]VTTXZ[WQZRXUXT\\^WVYV^^TTb\\USrX[TXVUv]MZU\]ZXZ]TVSTZZ[\YUjRUQ\V_\RUZW\URTWWZSXTX]VT^X^_[W\X\YbTQeN[XYWTWYQZRVXW`]ZaUSWc\[Y`_jSYUKRUVU\PV[][QNOUVYOcVUxmX\`NY][R`U[SWXSXPPT^WS\]\YW\[]U\YQ[YW\]Q^VX^QR]SV_PYTX[[ROP^WTcQ`\WZdbZ\\VUSX^^[]PQdZYUXZ\YVZUVVV_cTW\S_[YSYVYVVSYZTRRUZVSU]]ZYO\QWZ]][ZZUX]QXMb[UXZVYVZ\]WVYSfOYYV[ZYT[^XYWW[f^ULX]VYO_VTTTW[cWWY`]YWTTRSYYZOZ\__W[Q_Z[^ZUYW\TU`OTO\N]Vb\WXP^Sd]YXSPkYcO\PSW\SSSQ\SVbSVXVaSWQ\O\[]Pc[QYW\Z[O_RWUSZ]Zb^US^dU^ZRU[XbU[UW[XRQV[bV[LYQOQYU]\XYaR[eOORWXMYVZQTSZ]QWTQUJ[UZPSYWU]XW]`S`PV[WXXNUWZSTUTWW`XWVUZTSVW[XQ[gWX]Q\[\WW]TVM\W[U][\[[STX_UXY[Y`ZTUR\Wb`T\SYbSYVS^Y\]e^\V[XXSZQXY_aXP[a^[UYZTVaZUX\^SXT^PYaWb^ZS]M^URZU]RZO_W[UYaU[TYYXTNTVXdVO^[HY\WTOU^WPa]UQUXZ_[_TT`U\X`Y[v[SW\OYQ[TUWVW^UX^Z^W\_U^]]UQRXNR^WWU^UT^]S]\\TNQYWVUSSU]YS]QTRV[XYX]OkU[UYOUWdcYYTYXcZNR\VSVVX[RPYV[QW_MUQW^Q[UZiR[Xc]PZ\T]R[Y_S\SX_S_Q[U^VXZZYPUX]U^[W]W[ZVTYX^VTX]U]^[[UUUWZ]_^ZVS[YYVWa]X[XXXYWZXXV\\WZXWYVU_Y\XY[YVWRY\V\SX^VWXZYWSWYWYZbXVXURX[WXV^UZTWXTWWZW\V[XQb\YZXY\XXYWZXUX\SZV\TVZ[[ZVSVZXTYX\[X\YYXXZXZU\]XZZZa^VSVYUbZ\ZWT\\]\vY9ZZ^ZUVZ[Wa_[WZW\\Y^UVX[YXVYV`UXZ]XYYXXZU[YTXTYY`\ZZV]ZXVVYWYYVXURSX]WXbW[[YRTX\VV\UUV_\YPYTY\WXW^YUVWWUVS[WWYZVE^XXVWTVYS^][W[XW[XX^QU\WWXXWV\[XYWZYR][\WVWZSWVUVV[^ZYWUXWXWX\\SVUXYZTYXZ]YVWT\YYY[ZYWSVUQT[XY]W^]WUZUXYXWWV][\XVXZY]XWU\YYY]\STV[VX^UXW\^ZV]Y^WUWUYUYQSZZVZRbUbS`[iUhIYQ[fV^\RVjYcbTVY^WcYU[U^ZFS[YYWZ_a\]RhZWV`RWc\eeR\[c_^ZUZTRaU_Y]SU[_TRkPS\\eQOZTY_J`_\UXWQ]VTYaMXYXZMYTZWOWJZpWMV]S^OYbRcRSVYUUXVMY[M^\Wd_LRZc`RdTY[RPXI`c_XZOP`Vb]QYR`ad\[`TVP_ZWZYU^YT]YNTQXVNX`[]U[YURWZH^\QZSI][ZT\Qe\W[TUYYYaX]VWXY\[ZTcSU^__YWQRZWZ]]VTRe^S[]]\U^VnS_UXSg[KWYLZ]XX^]RVY\[c^QO^iZ_eRYZZ\Q^Va]`[c^VRSQ^PVPTVXXS_bORV`XQWZYYV]`W[[[]R^OYYKY\aVXXO^QRSTaM^UDU\N]VYZObV]QSU\U[WZZZX`UQ_[[_^ba_WV^S]^g\XY`UW[V`[Xl\VZS^`a^^UbVXaeZ[R\RUXcU^aXOWhSWXTZTacTL]]RUVXZS`SYVZSWZb[]ZU]S[SOX[T_[Y_YKPQSVRUYVXTW]ZZLd_XVZZR]XYVV\XYPU^b\YPS\TUVTTQ`WdWY[`VSXZY\ZT_^VUKUdXRZYXT]`S[UXMHeP\[VQeQO[UZ_T\Wc_]OX_^]Yd]ZSTc`[XWT[NS[YPP]UO`\\XYVW]W_V]]__UZX[Y]YSKZ`UVcYWi^UdW^`V]R[X]KW\_YOTWVZVUa[bYRRZSY^`Y[[VKc\ZYSSSVbYQYSOOVfWSOSZaSY_U`S`_UgYdUW`^XU]_ZV_`TZ[\W[V_T\WWc`[aWWZYOU[\^_]P[]VZ\U_[a]W\eYWTUWTZTSYiRa\\YQUWSXUWSbX\[T`\X\FT[aWOVhQXR`Y]WTSYX\[]eW]ZRV\LXWMPSR]WTUV`RZfZ`MK_Y@XRYPQMVTS^ST^XS\^XX`\ZT]L\RaQ\R]PZYYW_NT[SN^^UV]VbX^YTZdTVUYZ[\UYeTRSW`OF[QTVQY_PZbWaTST]V[XWSW[`\Q_]XUYRWVVXXRST^fZNT[`a[SX`ORWU`YSU\cZZZNZSR[ZYZVV\^ScV[Ua[]VW[WSWOYOVNWNZRXTSRYWVSTQZZTQ_UUeP_`ZNSZ]UYicQYQ^Y`OVTdX`MWVeVY^K[\\YT]^ZT]XONU[YVWQ^MZWU_^Q\VUXUTX`Z[VU]SSXXXaNZMK^Od]aWgW_R\QdRXNUVUV]LUW[^YaTYZWYW^YYXSXYW[aNVSVYSTWSUUVUTW\PVZSRPWbT]PY[PRUWVOS]U[MWUW_SRU`Va[WVSYSZ]YYWYX`_W^Z`UMT^gRYTSbYXYZW^RZO`VYRR\VRYRV\U[RYVY[TWXbKW`RNV_PVY^\Q]R]ZaUSXaQTQ[Y\R`YVWP`VYc[TS]STQYONPWHWRVPf\QYT`ZP^PURWTTXSVTUSZLPW_TPLUSQ]SYQYZ[SRSQTQXPQZDYW`RYRT[`LT\RYMSZXOT\TRQ^XRMPTWc[RWQXSUNNSTSYWXVTQQVMWaWVSQORLLXTIXOVVPOYR_\LZQUYmMU\X\ZY^ORZQW^QXXOW^OUVNRRXNVQNLQVPaYXZVZQFZXR`QLYWVYMURTLQX]TYR^ZQSXTWYcWUUP_M_KTRMRUcYRWZOUT\XOO\VSQTUUSUZNYZ\TUMVQ`O[S_XWQY\]SMaWQPQPO[UYXUKJaXXZ__JV]]b^XRVR\YTJXP]SXS^XKZ\MZWQROXSR[T\\UYPRaQWXLXXMRTM`UPRKUL]Tbm[XM]WSfQN^J[]RV\TMVUIaQVVYTRXQaVYTRLYSORZ`[TMY^VOZPUQYXSQRZYZUbLXTX]KN[WTTOXLU]J`UYTZYV[WJ^`[PZRV^[PUaZZdRaXaX]aXVTUYVLO_W^TZV\YX\Z`bWQaR`]O[ZZQ'ZVZSYY]XXZVRWSZ`^[VQPX_PW_\aW_Z\[QSSGW^YZZ_M\hV[][WVT^T^NPYUJTe[SV[^YWYWX[[TRT]Z^T[`ZfU^_TR`TYTa_Y]VT]W^TUZ[[X_W[hZDWQQYQ`Y]SY^U\XS^_V]XKVWU]R[Z[_[K\]Y\]^VVe`ZV]^jbYYQ[Y]YgY[TRQ`[\\K\Q^\TZ[\VVSXTW[\`\`SS[\R]ZZbPtX[f\]Y]Y\WXRTQUUVW=JUUVZ[KV[\SX`X[[bYTR]XVWcW]bVQ\\XXZNWOXUWSZS[^`Yb\Z]bVYYXU]UbTc]\^a`PaTU]^X^P_Z^`]X_eV\Z^SY_dYXTU_V\[cb`UVRY\TV^Y[SQSVPU`Z\^NPa]PS\]`ZUWY][XYZ\?XW^US]aR\O[O\\]UWLWa\Z`[b^VR\V_Z]Z\_]RZ`XZO^W][d`R\[cRY[\Q_a\WXb\PU_\aXLPe]`^UZb\[U\e^]JUKZYUOXXU[T]TSWYXZZ[VWffYV]Z[W]US]ZVRVXRYST[V\_T^V^]\XWdaaS]R^\PV]eZ]]_UZXY\XUVRZ\Vi[V\\^RO[S[`USiX[c_UXZJV[Xa^[NYUPS[`WW^\XQVVJUeVc[PYUW[dcY^[XPX]UTRPXQUXTbOUWRQWVZUPX\R]Z`]UQSR]Y[TMRYWXQcOZXWf_b\V\^W_M[ZMVS`UWbRX\_RVSVU[d`VYY[YMZRb]`SWYVLe\cQ^^\YVSccVW^[Z\ZUVO\UVeZS]VWXZZaTUU\V\SY\^XaaQPRPWTYZZd[N\TVN]Z[XZSeX`Y``W_TXVZTWRU`YWYaSeQ^PUQR\SUTZ[WUeYTXVMLYXV[XdTO\lV\S^TWW_XWcR\VVXZZXUR[UUUV[UUXVVQWZ[V\X[Y[RZUXVZ[aYXXVOVWVUZbYT[JTZR[TCW_WSPU^YTY\T_TURUTRTVY\UUWUUYKXXOWUSXU^VURWO[TUW]WT]Y\PZgTQZWUR]XSYP\ZYSZWZ^PRVTSSX\WX[QVTUY[ZS]WUOU\\XURYP\SUW[VheYWVZ[XbMZUTVOZYTW_SPW]SY[WMYdTWWXZQOTZYWP`QZV^VVTSS\[XXVQZ[WSS^^^YXYS[\VWYZQWTXVXXXVRZYWVWRXKSUYZcOQTTYTST\US]U]]X^Z[WQWWWXPUZSZQTSTRWYXPX\Y[ZVWXNQ\Wb]VTTVRXSOSY]SRTUVV\VXWV]YV]VRW^BTWTXRSdR\WRQOUU[U[XU\RQTWaXX\]TXRX]US]ZWX^\S^YQK[SWWS^[[U]UXZTZPWTP]UTW\WQWU`YUWOQUYWTUKO;QYU_YW^bVXMQZSIVZS]VRJRZRUaPQSVONETPUVPRFQZPRRTZZPUUSRNTYVYWYR`KPOSMXWTZRTSZ]XPXI[\TWPS_\PNOVQUWSNSQQTL[YX\WOXYSSNNVSQPONVQQVXROWTUUQNGUKOTP^XIWIK^UPPVIMZWRTMNROOXVTS_U[OPTaMU[PM]VPUPPQQTWQTZKTXOMNR[WLPOO[MWWZIPK_MZSQQPQZSVD^]GSZRUPUTPOXVPRKTQ_OTPVNXVQSTaRSOMXNYQUVWMNVWXNU\UFPYWUTTYSQWOgYNUURJTUNURNLWNR`\MXLUKQ]VQWTY]YQ_TOXWLVXWRSQQAMR[VTNXMRFXNJQQ_RPMOWSRPSNMPU`VVOZSZMSZH[TUPVSVZL_POUMQ[ZJR]V[^]Q[UYLYXTQOPWW_\PLWVMRN\PRPTRXRYQNNWURTLWaYX[aRYWPSXSWWRXVY\]V]VYYWYYZYTUVZZQRWUT_OUVUTa^WUZUT[R_VT^YUUMVYWZW\\ZXU`XRYU]]W[XRV[[[ZPUUSUN\]^[ZXU[\\VVV_QYPVS^YTU[YY[QTU\URVZNYZNWSV]XTUOPRUXYZU]]RbWV]_SW\_YSY_V[V[VXPR\T`S\ZZX?UIKSQT]YVUTVZ[]RV_MY^`PYVRYNUZ]TXVZY[WPZY\YWVZUTTT[T[^VMYX_Tc\XWZUaRQb_bVUSUVV_S`[WVZeYVUTX[^P``W[W\YWZZVROVS[\SZXQWWXQS[Vah[TTVWX[[WZ^XTW[^R^SUVYWYYWVYUXZYUWbPYNY[S]US\PXS^Y\YOYJZUXQa^ZSWY\Y]YWRNZ]ZZXUV_USd[_YJ_X[]_ZZYbWZ[[abWGWXYWZTdM[WV`XWPVUR\VXRY_][U^VSRTYYUVY[WbZYVWST^VW]PX]YbZZWYSU\`W[[SWUX\\Y^RUWWYXZW[`^S^VZWa\aY[[KWR\[TWRSWXT]bXVY_XZWUXXUU_YRZRTU`\_RZXX`]`SR[W[XW^YY^[ZXX^Y\[TUVY^]cZVYXS^OaWV\ZV]XZdX\]\bVU]WYZZ]_X\YZZ]]^Z[YYRQL^UW]YPaUUW_Y_UWV[_`bYZT\XTXc]YdZ]WYRUSZW\\VZYRXa_ZUYY[eSWdYZXSZZZZZZ[RT]\\VYUTZ[[XZP\XWZW[UZX[SUX]ZQX^[U[R[QYZ_WWYZbWWWYZYZT\UXTVWT[[WO`_bZ[U_XYW]ZXT`ZpYYU[Ua\a[]WbXV[XXXY\UR][c]QZ`_Rc`ZWcZ\`Z^XVXVdU]XWYP\]_YZ`P[X]][YV]bV\]gZ\W[V\VXVU\Z\cYaYWVU`cSWZ[\[]YXVQb^XXV^[VY^\QSWZT\WTWU[XW\VQ\WTZSUYXWTV^\XSY[]Z\UZ[UYVZ[VZVWZYTWVUXUXZZXWVUYTYTY]\^WXY[\\TZS_XcW`T\YVXSVURZYZYj]UYW\[ZXUXV[UUYYWT[X^XYT\TW]WXYX\\TZYUYWVWZ[ZVa\TWX]UZ`V[W[VYYU\WYYVY^U[Y^\[^VX_][Z[U\YYYWU7YY[WVWTRXT]W\XUXWSZSTWTW[ZXYS\_WVX\\ZT[X[W]Y[[\VYVXTYUY_ZXZ_UY[ZWXWS\UU`]\Z[YXVWWV[VY[SUY\XTWXUWY[UWWOVXVWXZX]VT\a\WZS[Y[YW_VXVZUZV[YZ]\[U\TSYUW]ZTU\XUT\`ZRX[XXX^YVYZW[XV[Z]^X[]X\YXVV[ZUU\Y[VW]YYXX\TZW[]XSZZX^Z\T[[UZ[WT\TR\YXZ[]^U[UV][\SZTWSU`SXU[[UTWXXWWZXXZU[UWXKGWVU\YX`WZT]U[WQZe_dRUXQST_Y]\[[XZZXU\Y[`_``[[WYWa`YSYY]VVX^Y[fa^W\T[^\V\gVU[VdYRX[SX\\[cPP\\_ZP[P\[W[[\VXd_W\ZXSX__XZ[ZfZ]aQb[Z]Wda[\WUW_]aXWb^WP^Teb`[^OYUQYRcV]WRX\\VZWV^X[UZ\YSR_[WZ\b^W]US]_h^U^T[^XUWZf_dVZ[UX^aX[[b\e[XYdZ`XZ[UTRV[YU_[agV^[X]SXU]W\XZUXXRYY``WSX`b]bTPQVY[SVOQ[]VWUZ^XWXZXQYe]Zab[PXZT_[WYY_Tc[WXWc[\\^`R_VV[U[X^]fMWYWcWSYc[RU`[RZbWR_OYW]Y^]\[W[WSYWVWXY][X^SdXYiXWU`VTYY_j[[Td`QVYXaZ\eYaWXT[WYQPVdXaU]^V]]U]\XVSWQVV[[XOT`S[ZZXYc[\XXhVZZUQX[]W\]\ZVY`XZXZZaV]ZQ^dZ^[]TX[M_R[\U\V_TUR\RYUYWP\_bbdH]\a\gT`W\bY`VVjOZZc\WaUXTWSSX[ZVbhRSTPPY`Tk[d\WRedZRZSa[\V\X]URUURUb]UVdWbOXRSX^WP_QRZXO]\SZcNW[]USXcTXScTPX\[S[XYYZU^_Y\Z_[VX`[[\U[ZXWWYeRa_XQU\QZTUaX\PTP]Y_SQU^RY]]WXddaKXc\OZXWcUZ]W\SV\^YUTMZ]WZ[fgU`fSZZX^O[aZ]mbbR_Qh]\_SXZWZY\cgVTa^ZUVU[WcUVY]]S_[IYVpYQZ^l\WeSYQ^aZIW`S_`W^a_SPWWTURQUWUXSRNQ[X\aVUV[]UK]_T]YYV\YSe__RcbUYU[fWT\TUQYY[^ZXZZX_YV]^WYYRW^XR`N[[ZQ_RTSQdV^Z^\^]UWTJSR\VYOTXQ[\T[XUYbU\WXUZ]RUQcWeTcZaSXVZ[]SUTSX[[QOUYYUQSY``UZ[XYYRVVZ\]]eVZY^^UYLVQQ_XYT\]UXZcUZQZcZ]ZSUYYZRZVXZPU]Y^aXaTSV[[RUZSVXQaW^_YXP^U]VZYWW[aS]U]WXNVW\\U[WTVY\^]OfZWVUVQR]eTVRVU\ZddUhZOW[WS\SVVU[TVVSMZSR`SQX\bZRPXWWTXXT]^Z\Ra_c]WTW[UT`\\\^R]UbU[X^YUSaW`X[ca]XUWQR\SNY[S]aX^YUVWgdfS\UOdYQU^ZQVQZYgT^]elVXWZ\YRW\[]ZY^USY^SQV[_]]TVVVVNW]\R`SZWTdYY[ZQ_R`TTUTJTOY[dYY^W`WSU`QXZ[SV^^ZTZXXX_TWaTZ\Wci]R\^XYYTSNUTRWcURSYUXWVdOS\bY_ZUQXWQ^ZNVcO`V]X[[WV\]\XZ[X]_RWZVSXUZ[bY\XWWYWZZ[[_`XYYS\TXV]V\ZRdVW\WRP\[e\]OVU`TOX[YX^X]X]R[`SQVVW`_ST]XTYTQV]]^WedWVRaZ_ZQVYY^ZXUUSSZWS^YXVXVU[\[UM\[VUWSWVXY]R\cXiSSXVUYTYbWUW[XY]bYVg]UR^RQP^Vk`ZS[R]]Q\RT`[[WMPX[WT\S]]]`aS\U[_U_SY_cZWTWdVVUUWUTbgZ[VV\VXT_SX_WZZSWVV\Z[^ZZYWTUQaR[[XWR[^VX[X]YVX^ZUS[PXVaPSSX\TZZWYXSU^W_RaTY\TV^Z_dU[`YY^XTTY\R[XT_W]^][VRZX[VTU_\T[QRkW[VaZR\_V^_^U^WYdaVR^YZ^a_XU[TUTP]ZWS[_Z\TS\^YW\PUY^]VgTOZYQRUWb[MUVUdYTWPTb_\ZPbOUZY_TU^TU]\\\RZ`^VUeYXS[Ws[T[YVUU[RXT_]^[ZX]ScXLYNSa][K_`WQ[SX[VZYNXVORfTUYWZZQ_XY\TVfcY[URRTU\[agSXJ^USX[WIYb][QhYMi\VI[^^[aSV\V`OYUYV]OYZcNX\VYPj^aWb^kSZ]\[TTXOSRSVTVQY[YTTPW^[W__SVYN\QVW^WVZOXTXYWTWWW`][_YSS[_S[UVYWXW\NWWRTbVW^NbUa\YX\WQbUa]cUXZW^YTQ\g\Q]^UOcQfUTaUYYVUUPW]TPjW_gQMWLZfW\JX`\WUS[TVW]]WYdT^UURS_U\YWTZbTSZU]MZ[Q`]YPg_VffZWT]Z]YWSYVXXgYOPUaSYRQa`XPa[R[UWcWd[TQT_f\P`VRZWQZVT]YX[]ZQ[LVT[ZU_RT__XO^]YW_YYdOVYTU[eRRUcfJZfTVXSRUT[OXOX_\a^VOR\c^YZF`UbLS\`V\U`]X_[PTZVXRW[S[QW[Zc[T]ZVZTV[PW\QVZTWQT]\ZZYYHYTPSQaZPW\XLgWWQXW`aS[VXY[YXWYX]VfR]U[UfT`\QNY_XXV_[]XUV_]UJX]UbP[cVUPaXN[YUOaY[]Xa[UYWZZ[bYc]Q\Z`c_^`QUZXWXZWQUVZVT[U^Z\YSUXXdWeZ_^Y]bZ\SWYYbLNVY`bS^[aOVY]`V\aSYU`R\Y_YY_d_QbiUSYW]URT[\[YSSXUUTYSWYWXR[ZIZXR\ZPbf[\X_[OZ[_USZaXR\_`ZVWXbZWWZUT^WXS[^UTaU]TYROTY]^SQTXW]\SR^^QT_b\b]W`XS\^PXWTdhX\WX\QTZNUYYbYN_\Y^V_R[V`P_bYSUWbS]_dZZPLZ^W[TWTVXLY`\WYNU_[TVY[[YUWT^SXVP\VZ_WT[OVRYMNUUcZd`VTV^V^\XLY[VHT]VTU]YV]S]U]ZaPaXXX^QWY^XNW_[`^Y]LRV[V_UWXXZ[TSZS``YW[aZV^YXZ]]Y_XU\ZYYS\S]eSSZQbWO\TVMN`WI`SYYVdXT_YQUSXS[M[aT`]aaf_VV\UPY\R\YXQZ]\]daZXQVUX]WYPYZTVTWZYZaZZ[_fU[W\\TS[^N_\RVTQV[W\c[SRY\PVVUXZ]c^[\YVPXQ[PUS\\[UVUXX[W\USXYTX[TY^\TJ\UaU[T^\QV[^X]c^[[eTWYT^\SgSdUUUTdRXMYUTU\XYOSZTJVS\WRW[T]V[U\SS]ZS`VQYYP\XZ`WWXdd\`W]]`NSWYUU[ZZ[Sb^[SNaYZZMYZ^\\]YR`]T\YY]PNRR[Z_aWVTTWZZTZS^TY[ZS\\ZaVUaW\Q_]WZQbW\XZ[VTZYVXUVUXWYWV\R\c]]WY_\ZIU_]TWUVU\VUYOZ\[`WUZbb]WiW]YVWNX^XP^QXWUVPcQTTOVPWVQZU\UOYYYTTQXSTUT\SYWXV\X[LSVVZY^NR]ZRSW_RO^RVY`[[SVXYNXZVW`X][R\\YP\PYUXZSYXZWWX[UYLWSRVaVZWMZ]XRUSUXR[WURWWWU]WTXXXUQW[Y[SXVTSZaX\\hRY\UVPUTU]TRXXTcPcS\\QTW[UbdXS`OZVUYTXN]US^]T\VSUTRW\WRUYWWW[VSR]QVZQ`UNXQ[]]RLVMXZSWY\UY\[ZVYYWTS_R`YXXYVVYXWRXV\NYXVW`V\_fXVVUUZR[\R[[RUNVYWXS]OiUSaaU[[RXPUNZTQRVOVSVYP^UZTTY\VUNZXWNaVTU]TSXTVXWbTT\TPWXOKXZSVXVQSZQYUPXPVORLR\WWWTUL^TT[SYRP[UZSNVNLPRRYQZXXbXaMZ^WZOMXXTXTUWa_][QY`^YPQRU^VW`WTTEVcWVRWbaT\QZW\XTgTVSRVNNZUUYSV[VV\UR`YSYZVQPXY[XaY^[Q_VZVWTTW`[NM^ZV\\\dVX`^W[ST[YQU[SUX\LXYTV`ZUWW_\TV[N`M[`TX`]`XYSMcX[V\XdZ]\\^WWYbZV_ZVPZWXUY[N_U]cS_WaVW\[]\YTf^]_QS\^WU[ZMQb\WW`TXSObVR_[VZZ`IQW[VYXVWX\PYVV[ZWY]S]VXX[]Tb[aQV[QZQWVSYXUUUPTWPVVZWP\ZVU^]bQ_d_XS[VW`SQX_ZaQ\UVRV[W[XST]YIXTVTW]T\RQXWTVY\TQRVX\WYZOY^Y^`U^W]ZO[`Q]\Y]YSZOR^Z[aUXRYUWV[^VVU_XXUUZWY_QWUZ^VYUd^VRTZ^_bfZ^RW[WZORVQc^UYR_UZ[WSPS]PTV\WaZYRRgaTWPV\X[NWPaU\T^[ULR[_ST\UV_W`U\dTXaZUS`TRRVd]YVbWWQQS]_c[WMXYYT^XVaUWTS[XUNYUUUVTXQVZXVYV\\L_W]TgYOZZSWU^SYUZXWY\aT^[W[HZV^YXYW]VT[VVT_]YQ[Qa\YTUY]TVYYX\eIO[YQX]U_TUWQW[WWd\WaTZWXSZWQYY_W[bU``UTYLTZRWT[SVWWVb]KWVTZUMQUYZV]XSX]`[T[Y]T\XXXWZYSU]VV]VMTVYRQXW\[\VWd^V^XRTfYTQ`NZYSaV]XTZVVV\NWWTgdYLYYXSOY[[YUeX^QW\ZX\VZZZccXXS]RC\T]U^]`TVeWYaWa]V\^ZSUZ`\\WW]ZQ\S^WSQVZSQSYZRTU`Z\ZOWUZWVaYT[[YWYU[U]h`YSaYXR[\_\]NP]W[URNQXT^[]aZ`SWXZW]RTPSV^ZTSXVb_]SXSXZZW_OTT[\d\`XURWaaYXSPVV^RZTUWT[ZZUS]^TWf\UT]ZYY^Z_[TR^\UXYThWR\^Rdb\TW[\^U]WbY\R[RWVZSXUZYYV`a\WeTZXVSZV`VXPb[\TRgNT[U8YUXXRWQ[]YQZV`UUSW^VRcSWT[QW]O^RSpdZ[XVQN_Y_aRRW\\TeURWSZ]YYY]U^UT[R_OU[\U\RRW_ZQPR]UWQT]W_ZYVfr`WXZXQ\Nc[Z^WZTTZR[VTab]XVYSSUUQOXY`WW`]OTUSXUTY`Y__\TXYRUU]_^WS[XXXaZ[UYYXZQ`]]S\MXQWXTXLY_XWW]^X_RU\b[QXYVPXUW`ZYM]ZSZ``SeX]PTRL]^WVbVMS`[V[]MUN_UU\V_WWMdTY]S^W]ZWWSR[S\Q_WQPMdV\YW_X]ZTTVTQZX^UZWZYV_QVYb[XXY_][WW`a^]ROb^WT`gSa\VQTVUW]XURcY`PV]`TTY[\XV^WV_eVVVY`>UZeU[mZ]o^cZj[^SiQo`]VYaU[RRld`dj]`f_Z^[RfMQdlkPZ_aZS[Yi[hcXT\a[U`S`^WUZ]a\jOjd`YWl\g]Z>`\XVccg^ibQj[lY]ZT`a[fbYZ]Og^Rm[THYmQXZcc_KedXSXffac^bRdMcQh\dV^`ZdScY]V\lcgfcebMgT``WYY_Ni]OXpeZZ]`UeYeTV]][Y_hW`cY_h`kU\XdZ_aaTPa[XbKcYjYJ`VVVh[[^acYc[XcXkUTYXaY]\e[Yd[N\slRXfRjdU[\ON_Z[]f_cNZ``K]cWi[eTW\]\\\TWWVV]X\Y\\_[XUS\\T[[RVaU[RW]]X[ZWXYZQRaQRS[[SYT[]W_\STVRb]ZQ[SQ\\Z[RQXWgKXZZX^URVUQYc[WX]UQRVXWQ\XWZWTXWTTX[aT^^K_Y^XZ`WQ\VVYSReOWK_UNaYS_ZV\dR\X\WWcRbXYaZTY^VW^RS[[X`bUHUQXS`WUV[XU_NVUb^aOSTSWWTH`VSWVYY]X[K]R\YVTZZX_YU[PPTTWXRMWTV]SZT\WS\U_\[Y^[PSEUVW]SL[]]WP\U\TXV\TUSY^WXTTY[YXU[XV[RVQXYVWRZWMXTVYV^\YVZVZUWUT[]ZUYVU\XQYXWYOVZWVSYUT]VWSYX[P\WMW^Y]Z_\Y[TWZZSXSPTY]WWSYW[W^ZLUWVVVS\YXVSWUWZWY[^XVTUVWX[SUSOPWXZQX[UXTZ\a]]YSXV[XVYWX`XN_U[XRSWZQaVXQOR\W[YZY]X_YRZZWYXVYSWYPWW^_ZXXQYXXVUXU[W\V\R\RVRWWWUX\Y_Y]ZYXXW^WYSXWYUUUZTXXRTVUZUVN\Y[QVYYS]WYYTOYPXVW\ZY`RY[XYYUbVWSUVYW[YSUR\TVW_YTWZWWY[URZRPWS[W]TXWWXRU^[X[R][Z\Wc[SWWZ\TTZPRTWSXZRQWZZ^RVWNRS^WZX[YZUUY[UaUOdUSTVW]XVV[UYWWX[^UVZSTWXVWYXUQ[VXTZSSSWU\T\[ORWXXSRLRZTTP`UXVTTXWVQNRRYSbXUWZVZVWaW_S\U`XZYZ\^\[X`hSh^]]V[\iZX\Z[_^aaO[_Y[ZL\]Q`URR_[a^\ZYYRS\SSXVUWO_aTWVX[SSe\PX`UVXYX`X[Q^[UQZU^cYTeUQPVYVU_ZTRZ^][^W]\\``Z\ZRV]Y\[ZW\RVilUZ]_VXY]UQS]V^WXX]VWZO]Td^^VZP]MSKU^UWZWVMUWSMONWaNY\\V]_Y\Z`WS[]^[`[VX`ZcX[XT_Y]VbVQ^TT\SRYWYYT^VV\a[PY^OXX^RXWV`ZYZVbUXR\WY\W\\XYYOXYVVXVZR]^PR_]UZVTZPYUQWRUXScVUXVXVMVYYS_]SZ^^O]VSXVYQWNR\^UTWTfR_W\O^VRSY^\\XWN[aZRX[VUZQWOWZbTVR\eY[NW]YQWQSW\dYVYTXPXTZS`]_TTQZ_R\`ZS\]Q^\\WTV_^UZUdY[\WP\`OPSRbT\[XRWRUZUV]X[V\Z]S^XZ[ZQW^SU^Z]V[TYXT_W]VXU_[YYVW^\TTcmPWuY]MdTTSQY_ZYZZXaQY`WPW]UPR[UVV]]N`XQX[SUT[TWWUWY^[\^[[_Z[_Z]aaVhZTZY^ZWZ]VZXcYX^_`Z`QUOU\ZUZ]V`iWXXZX[[WTNcaPVY[[RV[^YTU\U\_\XX\Y^YZU`Z[UWWVNXTZMZa[W^WRYWRYS_\bZdWSYVPR]YeW_RNYU[WVT]YRTT[RN^VZVVS\OTSV`V`YV_P_TU]Z[\NSZWT\W^YRRWUU_[PWUXUQPPX\SUfT\V`]Y[RP\]TUWXUVXUZSXVOYTSWXRk[V]T[TZ\W`SWTXYXPRSPXNeVW^Vb]XZ^[[aZWXVQ\ZaUR[YVM\T]SPQZ_ZT]_URaRTXUYVPT^WT[^UV^WTX\^OTjUb_^V_V\^U[]^ZSVRY]PVXQV^U]RU^[XUWT\WfT[_ZV]\XYWZO\PRXYWUUUXW^KV]oRSS[NUeV[`b\VTR`X[aeeO[[^]RU[N_V_U`]_US^NPQVVUVX`RSYZJ^^`Z]YRSWZYZWZfMPf__XYZTX_XWUb^aYTPVQ[Q[^^N[YO]JQXZ^\[PVXZ[ZWad_ZYLc\[^^_[V`PV\XX[[aR][cXSbc_UR]ZVXbUe^XXWRWUNRUV]VV]]WP[WTY^]_[V\]R\_QZV[T`]XcYPWMXYM\WRbUQX\[Yc]U^[Za_XadaXY]MX\e_V_VW_UNPP[XVbRY\WZZVcJYRU`aTVUZQWfd\NTT]^Z]Y]W``_ZQ[cZ]W\TYX\Y_W]YX][fZg^VY__[R[X\ZTfaZXTZXZ[]S]Ua`Y[\Wk_TZUZbZ\WZSTRUYXWT]RbXWX\W^X[Ye_U[QNWa`SXYT]^WXZ^Y\[eYV\^]Z`UZ]\]\SW[XaZZ_VP_RWVRT]Y]bXU]YW\UXZ\ZZ`\`KbXaXaT`YUVSUXbbQUX\]SSf\XZbL_[[YYaW^VSOXe_`_V_eaZXWYTV[N`Q^SXcQ\VTVYUU]]YXUXYUV\`ZTX\TZW^XMaVX]W]XZX]YY]^]UVQVO]ac[`XUV^XS_Z[f\S__a\XU^YXUW_VYZ]j]\S[JTXVXSTURVUS_[`\]WVZ`XVX\V_V][\WZY\iSUcY]]b^[[RZ]_a\]]OXhM_Za]WY\\`Q]WXSbdVT[TW]W_`TOY[Y]XT[X_Td_W^``ST\Q^XYh\ca_YSY\[\_LX\[S`_YZU[RRd[W_Z[]X[PaQUV][TW[Pa\XX[VUNWa\cUf^dTd][]R`\jU[SQVVZYd[V^QYUb\U_U_ZV[YSeS\UZUYT^NWZ]b_VU[[aaYZ`[\T]TZZ]^bST^Xc\YPWWUfWY`^URTTZ[[`U[__PR^WW_YVZ\]X[_`UX\YRRWacgN\U^QWPa\UVP\QJOZ\[T[Z_a\TZS`T\^Z\\VZY[XZTTh[VMY\ZRUUUT[WVTXXRS`]]_c]RbZZ]X\WU^[VZ[X[M[UYQZ_U^a^U\PXR_[fURVX[UZXNXZ]P^U]VSTX\M`][PSScW\f\WPca^QYVUdVWX\]W`YN^ZW\ZWOU^YV]ZSSX^Y_bX[X_aWkU]\RZ_[Wl[XX[SYTSXXZYRQZR\LU_^^QR]TUXVNRU[\TTQR^QUX\RVVXUc]_Za`X_]_\[ZeWZ`]ZY\VU^fN^]SVXgLhVR\dVcVUVP]VVX]_XXZTZ^YWZVXYURcgX]^\cR_U_X_VVSWO\cXOdZTWZYj\MaWZWX^Z\bWT^XYWj_VWXWVa[WZTS]YWPYSdX[VUN^W\XX^[VWX_ZbV`a[^[RUSRdZWX_XSTM]Z][X`[\OZTSUY[[ZZRYT\\YXRYQb]T`ZWZXZUW_^X`\\\RZS\UY]a_Y[]X`\UQV[SVbU]aUQ[][UPZXTWRW`YX\VW[S_Z[X_UVST\eY]YPWXVUYUU]ZVTX[\ZWXV`PYUTZcV^]UT]TNU_RWXh]\Y[[Sa\XXX\TY_TfUYVM[c^_[U[^VVW]USQVT[YSVfXTWYUVWVWZL]YfRYX]h[XWMXT]^YY[SXR]`S\\]V_U\_VWb]Vb\bUZqVTYXW[V[YW_Z\aXW_hWVWPcURWa[^Z\YS[\UXgWKWSZ[\c^WZW\dU^YVWWYVZ_NSULZ`Y_[WWeWZX[YTSVTXXcY^Z[M^TVYZVW]UYOYR[_ZUXXYbX]RTYVXWS]UdO[QUXTXQNTeU\WWXWZ_[LXYV__j[XTXWWXQVUZOW`M\RX`ZWXTZ]PXRY^\]^[\S[U_[TZdN_\ON]ZQYXTZ[UYUW\`ZUbWUTRYROYVKTVVVVY^VZc^QZSOWNSPQUW^XXIAYMLRUXUN[\ZOVVd]WLSMPLUYYRSSQYWY`YHLQTYXVYN[aUWM_[Q[ZRX[TTSQRTTUU^[UAQ]TS\`XUTSaXWZPS]ZXZTVb\ZTY]TUXTSWJURU`VW^XSQ`\gDT35STI_Y]`dVVSYbPXYRZYOYRP\VLXUYW[WT`P]ZSWWVSTZXVY\`ZTVXT[NZ^[Y^ZPbVY\\dQURXRNaSW`U_`ZWRa]UXdOZ_\S_[TZRVRZPS^MZXVQu^`VW\YVUSTXYZ\]Q]`TUXOS[_YT[\Y[TQVZWMR_XYK^_RZOYX[[YYOVUKTUSZX\[a\NWb_ZPU\XY]QXbX]X\e]UTbWJdX]_PQXT\OYYVVTXU^\MVUNSPYRPV_SV\VR^Na[\^_YUQ[WWZZVXVFb\P`UX\YVVYXVZYTRZV^Y[YVWVVaRVUYYXZXWXSVTWVXY]W[ZV]YUUXURXX\]XUXVVXXZ}UVXW[WCWVW\Z]VUR_]Z[YYX^XYRIYVZVZVTWW[^WYY]WV[ZVXTW^WWUV\ZZWYWV[Y]\\YT[\[ZXW][UZW_TW\[X^WXOY_ZY_Z[W^WTVWY\VZXY^W\XZXRe\7UWWT]X[\\[X^\TUVWTW^U[]ZWXYV\UW[XUZWX[T^UZTYYYW_\]WZSV[X[VXX]RX\VVU[YW]_VRZ[Q[V[XY\YV]\[YR[XPVVUVXU[[ZSTW[XXZZ[c^[YYYWX\X]W^[\YST]YTWX]]XUYYWXWZ[V[V]]XXWV[XYX[ZU\VWXWR[XUWTVXV^]YXVY]Z_VTVU[WVZWZXYSW[W][YXWY\ZUYTTWXYYVSYYY^YW\USX^ZTX[YZ[]WWZZ[\[UPVZV]UZ^WVRcW^WXXUZ]VS[^XMW\S`YYOW[VVUVXV`LW^U^\Z]Z[[\^[WTPT\aYTYWa\S^`\X\YW[_[_ZWPS]TU`ZYRWRQTVR[Y[PZ\XY^Q[bXUW\PYXSNZ_XSZS\X]]WTW[\UWa]UXUX[[_VX]\XWY[bXUZb_Y[ZU[Z_][WYYZ_ZTTZ_[\ZZ\\U\_ZUQUXY]ZRPT^V[[V^YR`bZcVWaV^U[VUWTW\\YW_TUT\PPV\V\T]VWbW^WWVUXT^UZY\V^X]\[UZXX[Wc\VXSU\aXTYVa]YS[SYSZaP][e][^YYX]WUX][RTPXRcX^[VUW\XO]RX]\OO[T[[SYWUV]VYXQYZ\[VKXQ\[XNaY\YSPYUV[V[R]ZYVQWU[Y[SUUXU^UZQWZZYV[YX_XXWb[]ZS^VY\_X_Z_VZ[WS]RQ[`aYU\UVXWb\ZRZVb[^\VVbWY`_]d]SY\YY[WUZXUf][[\RKe\ZQTeSYTSVOVUZYSZT\STXVZY^QR_e^fMZV^VU^VXVNZ^ZUQUWa]R]f\YTSXQRYRVWS\TZVZVS[YY[RX[bVWZWZZWT[_IUaX\VW]S[Yb^_]]UXVQWVb[iU_VVZYcWXZXR`QeRW_\Q_m[XZV\WVYTVa[]XWRRcReh\]\^]Y`[^T[Q\V^cRVZR\QVUVZ[Z_SbYSSY[kPdZ\XTW[X]cd]^[[VOTe^\WSPX_[S_S\KLRYX]hgeWVYRN`U[iRSLX]ZY[VUZN]a_TgVMUXfWVZYU]Z[W_VJRUWbZVV[L]^OV_X_`b`TYN]WcRWIXZYZW[S`]TV^RZ[\^^OOcSgUX[VTRZa[W\[]W^XTSWc^X\X^^\][[]\ZbQZ[Yf[YTY`QYSQYYVSOWFeRaVVQRZWWPWKFUTU]ZXUaWOUb[WY\`\T[]VT[YU\VVWY\[V^QWW\W]Y]UX\RU_QXPIX_[NQWaXS\aPYbW[]eSYJa\VZ\\Y]ZQaY[XVRUZOVaM_V[fW^TZPXZTpXIZ^WWWRTYQ[XYhUWXVMT\WWTYdZbVQQSRZM_U_\\Y^[XTVSSV[^X[Z[UQadXXW^WbY^W[bYSZ`^QWZaZQR[_\XT_UWRO]aUYUPMRX]d]UaYYS^VbMP\SR]NZ^]TZVYVYbjZTXU\PZWYTNRWN]T^^]]QL`VYUZZZ[hRSgT[W[YWT[P\_]XZZQZY_Z\`ab[PWM[YNTcTORe\PXTQZ^XeZ`^\\^Z]gWVWhPTXZPWbP[YXRVa`UeXNOXfTaSUVWUVZd]^YPLUQ_\W^X^W[YacK^ZR]WaQbQfW``^[UTZ\^\bUXbSW`YUaY`hSY\VUb[^VY^VUZfaQS[]]PSZ\[O\VXf^^Q]WZY]XUU`XL[W\^]]LRRUWYQXRgXP\YeXlVUgXZX^YZ`]KOX_PYP\RQZ\YT`XQS\\XdX^XcbQT[W[N_Vf^WM[aQTZZUYZYP[RKYf[[ZOW_UOTU[_SU[NbaTRSbYZ^[_XZQY^W[VYZYbZf\PZ`Zdc_Z[\`aWT^XSaT]e[R_\\WXeW`bX[G`Yc`SSXS\WcITYXMYVUNXV`]a[WVW_XZW_]NQRZ]MWY_jcYaV\SUOT[T^R`eQ\SZ[YV`]PQV^S]WWUU^aMZiZ_WaVP_[c]kVVUN[PQaX]N^ZX^YR\dRTURb]]_YRW`^`SZYeNdaU\UWRmQeUTWc[L\V]VOUU[Z]`W_V]YYYZ`W^[_JW_YT^U]UT[iLgYUZ\cclO\VFJ^k]^\UYUZRZY\]T]T\T][IeaYRZ_eO^TWYaO\\\YZUc^ZtLUeWXQaVZZO\WYOZVPP\aUVRWQeUS\TXWYlY^[_Z[T`ONbVW\]QZeSXXaWXa^c\TZm\X\QW_R]YYT]^SXX`_WaRTXZcT[Q\T[X`\TSZU^][]_TO^dVW^PXZVPYV\`VPQb\[\^SVOcaTaSQ_QVWeWXSS^ZSUS]ZUOS]UZT_ZZ\[b`]_Z]ZW_XTTRTV\U[V__X\_[UNXXZYTM\WV\ZQY_[Z\QVZe^XNRZT\\cT`UVVVUXbYTVT^bf`[]^ZU[`RSSUT[X\]PZWZYVYaP[SWkZQUTR\STWUa[PXiX\M_]^UQX[XUZPUZ\U^UUPR[]XYY[ZXXY\`XVRQWQXU\UXY^\]XTNZWXQU\^aV[^K_X_[\^W^PTOTVTW`TVY[VVXO^PVU`[Q[a\[LWNY[M[]TT_ZW]YYUXXVX\eV^ZT\W]TXUUZSR[YVU`WeMW\U[ZVZUa\VYO`\Y^cXR]]RdSb]VUN_aWZY\WVW`Sg_XZYRVgb[]Y[f[WWZ]Y^QZSTVZZU\dY]iQ]U\\Z_eObZ\QU[_WZX]aU\RadUPYZWM\STXe`UZcRYoNV_\dZV__\\TYT^TYTZhaYXTV[][[SUWUX]WSU[V_[WVX_^OQ_WTTYa\QKJYYaN[RUQOc\ZgSZQ`VgR\hVKQPbXaY`Z__ZQXQWZT]WYV]UOPZhSZXWMZcTTOZ\QZZYX]UbU[XYXUUTPa[YcWQXYY[X]WbdSVXZ_EUZZTuPXSV^[YXVXYd_XMb[WW`\SWcaR_[RVSRZY^WNXWWZZcQ`NKWLYKXjOTV[[aWdWQ\TRXSZQX_\TWXZXWY]NWa[fPUVbZcNg[[KUNUV^UVZRS]]OY_aXUTXc`MjaQTaVSYdYhPWVZP_XWLUWZVYb[PVZXXcVUY[ca^U]PVYPYYP^`Sa_SVXY\QXZ\QUjOaYUZ[N\\NjZPS__X\XYZUZTgbV`lP]bM[QQQ_pRQeXaVO_KXbZUUSXZTeT[YXJ\YQ`_][WORSgTfYYS_XSUdX\SQhUVRZQR_\YT^LPQZVYY]OYS\T\ZV_\Uh]VYZ[bZZYR\WU[TZ\_bXMWULeYXa^VPeVYQUWQTgVjQ^]YSYW\VWYVXQdT^]TVUWQX[\PXg`^\TYOYVPN`_^cYTc\Q^]Z^\jYZU^VV^[RWYR\]f^Z]M[S`VaSVZ[ZZTWXZ[TRWTfR[`YcZU]Zc_^SQXOeNX^]NcP\\P^TMbbTbOaYVXZT_^\_ZZ[MmSX^YYX\_lS[SYPSSTS]`XZWWXSQR^RN_TbcZ^UYZZ[^b^ZWXWV]\ZWWSON\YYXX]UUZZYV^^U]M[]VSR_X^UUV\fXcUSSVXUR[ZUTIWWS\ZXY_][UUcSXNQ^[eZaVXUR^e[T[_\Q]_QViTSW^OX\\VQ^YZWlR[WaESRP`^RUYZXbUX\W\UbXWX]RTZbR]\]VaMb[ORW[^cTXXhYU]N\[RYaZRR`YYKZ^[Q\_ZW`[^^V]\Q[ZSY\_ZY[_PTMZ^U_Y]]e_W[QVV\YWQXPRUXIYUTZP\][TVUPTUS[ZUd\]QYMST[Y\]KX[WW^SXTWUUW[XVYZSY]dTZPV^Q_^TW[UQ^`W`V]XS\P\]\V_YPSY]_U]_ePYS[[TZ`]YTKVZaV\Y\__WTUQ]XU]]UXVWTW]\]_RUSPZ`XYX\]SP^aJ[\^YaYUW\_^OU^\T\dRZ`USZSU^_V^YZbQOLVZTWTWR\K`V^TWWZWZQRW[NZ_dYZ`SUQb`dNaZVTZ`ZY\USQ]TNWOQ^`XX]V_\YPXVTTUd\YOZM\bV\[]`TVW_bS^W][]`dZVRbc^URYcZ^NO]Y_T[Q_YV^\`[WV`bR\cVV]S_^_[[QMV^OYTTU]ZXSZ[ZZ]UTeZ^_U__XZ[XWUX[U\VVXRUT\PRWSVXYW_X]UM^a[[XYYdgPYYba]YW[Y[[VMUW[iV_X\V_^T[ZR`TURPYeZYiVZVeT^XbcTnXe[RPTPY`TdQ\^eTpaO\[\\ZW^YXPaRRV`_[\WXPdaU^\\_TfVaIaY`\OTR\T]L\MXZSbM[VaQUXUQWSZYYTYJWRZN^_PWLWPa`YP^XaTQ\RX]YSaXZT_WaIUQW[QW_PU[ZZ`XWZTZ\[V[`S^SRe\\YdRX[WQZYRVNX[\^Kb]W[SQa\\`SMSTWRXXW]eR[hYWVM^ZWYbPXPRRXaQUaZfTWZPVV^YVU]edTUP\ZZT^YVXGYX^NXSTL[U_RZ\UZZN^Wa_P`Q_TM[VOZLURUTZVWXU]UdXX_TVMXYYOSaOUQX[\\f_][\ZY\`NT]d]Ua^Y]RV^Q\Y\^YXSPYY`XU[]cTOV[ZcYRTWbWOO`^aYUZXLYWj][Z`VZ[aMZ^`YXW]XY[aQYWZaZSWWSWUe_g^RGTdWPRV[VWRVTVY[cVVP]bPXXWYaZTXZ]SXI][][VWV[bRXVT`XUVSYU]UX[aJU\WUVZcYT`aeaUT]^YVTUZ\XS]ZWQXZ]U_QWPWUYZTVX]PcY[[U]ZWUYZ`\\WT_U_ZYVTVR_WWb[ISa[aUUbY_b[^acS[QUcQZT\[ZZa^OWVZ\_[Ub_VZORUXcdUfZReMWYRV\UX\]Z]cUdTbMVe^YZ^`\IWQWehZR^Z[Ya`W`\W[Z^RTS^[WZSYR^P[^QXXS_OZQVabX[WXQ\W_\[cc[SMXY\WVVVUX\^S[_WVXW]YbRWU[VXYZXUVR\_T_W`_[TWaRWWVUV`]ZY]Q]VW\]RVZV^R^RUXTV[XPUWTSZXTZV]Y_Y]P[WWTNZPcZHcS_UWTW^_^WPU[Y_abWePTS]RXYOZ`[\]ZXfaXZ^`aXY\TQZVSW]YX`Z`\W[]YZQ^\\[ZQ]TTVOP]R]ZOUdX]W[IPWa\eXYU[RSPXUWWRSZTVRYW[P]^d]X^W\VW_^[\XWQ_[\\]XQZXYX[mZWbl[W[[qX^T^YOUS[[c`UN]ZONbgZUe`\_S`[WVQZ`XVV_[FXaYXSQZRWLVVXX^WTXX]UY]YS_QSV`SU[WHXTP]_QTUT[TT_WZ]YX`YlcbV\UYZ^T[aYY[UX\]NS`aVeTNRUUXP`UOaXWY`TUYNYXhUcST_^SWUWZ^H`]QRYYaQ`Y`^QYWcdY]^_ROYW\YQ[TVSOSUZeT`WUYY[TRY\]O[W`[U\VV\VK[[W[TjRZ]UNV]UYS[SfW^^QRZ[RaM\HdU[cVURRUQTUWbccmZP`YUWZW]^QX[Z]]aS^[]PQRPbWU[ZPTRW^]T\U^c_IhgUU`l^PPafJZYcW[V[ZU_R_RIZ`^eFaXXZ]XVaP`\ZZXU[M\Z]]TVXU\WRT`\T]TZTW^XUY`T^\T^[R_K_MPZQTW^Q_WSRXX^[VVY\\X\Y_UbWW_[[ZXWTSS`X^c`XK]Wh[ZJYV^R_QOZ\WXV]`W\[^WcS^]c[R]VXWTZW]UWRM]Z`_[ZYSTYfYW^`R^N]U\Pc^\YXXR`X^VX\QUWUQWZWVWXUXJYTUY[Y[XXZaY_\XZXWWQT\aZWZ]\]]Q^^^U\TYU^UM]R\VRWYU^TY\]^\a]\[[]aZ[[cX`^ROTZYa`VVVR^]XY]S^W^WV`[VV[`^TTVYUTTWWaZRV_`XQaYcaWN^VVT`ZV[VOa^\R\[XVUVWXY[QVR[[^Wb]X`QYcXPWK^WYYUbabSPRY[]ROeZT]`[STb]`W[XWaWg^\[_VU___P\VXcRYY[TTT\U__XWZ\]`NV[VWVTU\]XYWN[WRWR^WXPa\RV_WaS_ZU`UWaV^cZV^WYR_UIL[XY\YW_ZY`YV`VS^TYUiR\RbSi\QXR\V[P]V\WUQVVL]V`SYTYbW[STZVWXTRTWSX[UUaV^\\Y]UY^YZ_O[V]\SNVUV[]VVaY[S]VbZNZ[\\^PXZ]UUYTVVWV\`^_V_TYUW_S[WZa\RXW\Wi]OUW__[Z^QUXWZTXY_]U^R_[UV^UZUVXTWf][XQURP`Z]_XZaP[WWZSXXU^^RL^Y`haZWWZTWTZ\ZUSWZ[X_\KX[e]YVWXYaY\N^\\[_RUfXX]ZPKZWYYYZaY^[RTUZS`WZUa\\S\ZXNeR[\YVYVZZWZ_XYY[[X[W\YY[VPW]`Z[]Y_X`RPXZUbPX_SUO^]SWUS^\]UZW\SZ\Q]ZUVXWW_Vf[\^WSZU[X[U_T[PZSTU^bYaYWUW]TS[ZUaVWZZ[XX[ZPPTZ[e[Ya_[[ZSe^XOTWXX[T]RR\UTYYTbcdXSS[bWUaWUWRZ^VNScYSQNR[UXXU_SVWWSd`QTVW_UZ[W[f]hR\YYf[YTTaaM\ZWYRXV\RYd\S`P\`]KTW^`]W^WY^acTUW[[O]UX_e^^X]^PU`VbRVeQWWV]c\WTYQWWXd\`VU[XWWN[YTYZSgTVdS_URcOMXS^]Q\SUZVaXUWVSZN`[^Z\dZXXHXWY]VZSL_V\WQ[gZ[U_WXYV^[^T_ZW\VWV^WR_RRWT^]T\XZYXLPS]]]Z_S\S``W\XKfVTUPUUSL_Q^TYVPZ[YVid_T]XUX\\W\Ue`V]]bXV\U\Z]a]O\]_\bW^XV\Y]VZZRZiW_VaWP]dVW[[URaVV[XXZV\^YXT]^hNP_c]YLOXbYTWV]P\cVhYTW^\ITT[[]_`Wg`^_\R`ZNQ]WXp]bV^MYSPUOU_YTW[XURXW^XR\[]TVO\ZSh[PcOOUSaR]Q_W^[TW_cQ]Z\YXUVYYXg]\MTS]]VaeUZ[VYN\_`UYWXWRZ\TQ[^XY[[URY`W_PV\UaR[UX\ZQ`RYOUUY\UU[TR]YWTIYPNYYYY[WP]XMPTRZYeWVWT`UZ]^YVThY[^XeUWTTc\Q\ZUO\NKP]PYPSTZ]QbcQT_YP`SXTW`YX]X]^WeZN_U\NLYS[]ZSSSQXILYTV]WPUSSXXZ[\[Z[\^VZS]RZ\PRXW^`]X`][RY[XdXY`\ZL\UJXYYKZYUid[^Z[QXSW\W^Ua^Ug]PT^SWLXYVa\Z_TaXSPRWac[XVYYTV^VV\ZRR`]_RR[^ZTPNY^a\U\]TT`SWj\VZ\]bX[]nS^XSYZU]TVaNkWWXa]UWXQV[WU[R_YdXWSLeUVeW][`V^L^]Z^X]Y`PSXZ^L_e\Wa\XPX^]Y^PXTeYSUOUY\_S[YXPY^VU[V[SVT^P[[TYV\VYQHZTZW_UP``TK^^XX`Wc]RU[[XSVd`gRWS]ZZWi]VVXW`RWNKTg\UWWYSWLSRVNSS[WfOcMgVfdPSYZRU[[TbcOZXVh]U`_`]OST`WYPV^e`NMQTVZZVOTVYZ]aZSeVV`WXYeWS[`\T^VW]a[TfZP]YUKJbVZXS]k\ZUUadRQVSXRaWZ\Z]gVdlYWS`_T[\cWR\[a`Z_TVWVZd]]_VR]UR_PYUo]d[WWSX^XYY[YcXcU_\U`^[WTcT]UidTdQ[ZU^TWUW[WOXQ[bZ^N_fTYW_ce^jdNY]_Q]hZTaHP^Y\X]VN]XR`YU^TZTUZU^XYdVVWV`\_``V\[YZRvNYWQRX[TW[`[]ZNWVNV`RIT]^WUZ]^W[W\Q^\[KSbcIX[_STYQXfZUUjYUS\YVb]U^TYWT^^NYSNY`UbS_YTc\g]_]SXWUZWLUN^UUTb]WTLcYWU`W]PNT\__V[WYRbO[VPTU]MW[U\^ZW]SaXY\\TdX[OVjJ\]bS[Y^_XX]W_WY[]PZ\T`SW`ZdVYV_WZ^\]YdP]VX_X[YZ[SaXZYS\WZ`X`^aZ`Z_XQZWbY`_[UXT_W^_ccROXVUXKb\RSNZ\[[R[c]V[V[]_]KX[SWP`bX^^[aMOW\WXSY]`feTPVX\Zc^[RXZQVVR\^R`SU[OZVaXZWaTcQ[[L[RS]\PTUX`^ZSKQMONaV[]T]VWXZVbaMU^XdR\[^T^UWZZNdLZWZX^NZVWVWacOS]ST`W]]ZWVWT\QZYZRWRZ[X_M`Q]XUbaYU[VcXXYXM^W]cQYVMR\QUe[^WSYY]JS^T\ZT[Xb[ZOVTUYdYY[X^^PTPYOSPZOS`Y[RQ\QYN^]YYWZT]UWLS[e_Y^T^ZfVbU]UdYd^\daR\SVX]PWWWR]SZ\XS]aWTWPY\``YZR]^U_P_LW_\S_Z^U]WMNcaX\NPWZV^\X^XUY]Qc]Ta^\WWS\TS]TVVXX\Ta\YPbU[YY\hYX^YSZ]UTWQ]R_J[[^USSfhcT\XPTPWXWSO^]^SXSQ[_`R_RYVZXc[UQW_TVI\]U]\S\]^`\]_\[bXRdZJdOZbT_\`X[]aW]`XY^MW]]Xd\\YZSWcdYX]PU^_P]^ZTVUQVS^]dUUTTZX]MX`YaWM^W_UVXa[VY\W_\[W]RZ[`XYUaPa\eXVSQWZbX_PeW]]RTWRXP_W\aZZV][aY]P]iaXbWQUJS[_ZWYTVTXRRW[[Y\bS_]TXc\Y``YU]]YTRSS_XV_R^X[X\X`cQTRY\]_ZM[aRYWUX[[WWcQUM_SVSS\^NgVW^Y[TbWc]R[Y^M[eZ^WeZTZ]WMYPQ_b\X[VWTWWJZWjY^OZQb][`Ti_ZOU[^\TQaN[V[RSSZPUMWeQ\YWZ[PLReV[dYX]]WZX_SbRKWUSUXVJOZW[\U_WUX\PYXY\`XR[WXXTX]ZQXMYN`T\Y\Y_TaUWQ^aX[ZVVTO`ZPP\S[Y[PVY^UQQRfS`WRV^Z`U\WUXRX\_UP^WNW`K]^W[[]U^ZXe]YVQL^^Te\ZTVhJSTZV^KVPWWoP\WRXfFTabQ]WU[VNS_BQSLd[m]_VZ[Pa^XYUWS_[c]aY\Wb_UO\YVUKU\T_XJZ]\U[Pi^VTSUd]\\PXUZMNUdQRPbOnRV]dQV^^`VXNTUZfUT[Vi`OPS[TW_Q[T[Z]YUaYHZVT`Q[X_\LQ\ZaS][XSV^SXW_[aLXZN\ZUcaSUSR^[WZPZ\]YX]^TZZQ^aWVWWYR`R^[[iS\UI]_abbgWQVY^^S[QMZ_UYdZX_aUUY[[YbYUX]`YZUXVYbPTP\f_eZVaP^Z\TiJYV`Za[^Sd]P[^]XV`]V[\\\QUSI\QUVRXdVM[S\QRSc[\Y]PO]_ZV\\[[]WPPafTVUURQWZW[VUc[ZK[_ZWVYRVZX[^SOWW]UaXPYXUdKPZOXMTUY_XZWRO`Y\XaXXXaTWoWU]R]SS]_`T[[TYS^OQX^h^OTXW^VWYT\Y_R[^W_\OZWS^fHaZaPW]VU^V`\c[aXXKdYOgVUbhO_[WQXZV][VV^WPd_`\LPZ^YO^_QY\UV_TXZO_WMQ[V`WUYZ\RWYbT_V[`XUbT\[\SYRZR_U`TcbZb__RYaUPaPYS\adZeZNZN_VYX_R]UTUYP]faWW^]W\UZXRVYTX^]SRX^UU_NRpY[ePSRVW^dRZUVU`_]S\QT]USZSKa\\TW_`R^Vg[^SYUgWWR__^Y[Z_Y[VQbWbae[R^YRV[U\]WTS^a^YRRVZXV]T^\gQZVUhcQaY`QOcf\XUX_XTU`XWZXXW\S`ZX\b[[]ZXZX\ZY]\[_Z[VXaSU_Q`f[a^[WRZYU[S^\Y\VZ_WeR\fWWX[P]_YVUZcVSL^V_Z[VU^WQVYWfWYZXW\YXXQZY[\Z`YW[Y[^PWTXUT[cV`\YW`QWdZ\V_r^^YZP[bZYWa`V`ZXbw\]fXd`R^MT^NSdTajXaZ]R^]ZWWW]XR]WUR^_WXUXW[Y[^[S`Xe_Y^]^_\`XcgZWT[W]_ZVR`Z`bTYb\eTWUZ][_g]Tb[W\a\\Y[`[[[WUX]WYXSOZXe\][WVZZ[P]RYSSR_aPVTLUaW[cT^]af\UbXRPXSY[`dX[WUM`[_Y`O_V^UYX`\U]TXS][VXZQXlVT]T[ZSZZYX_]eVSbY\aTX^`T\[Za^e[K[N\\\\`i]S`[YcVV[WWR_[W`g[f_UZZ]T[`UWP]cg_``_XMZbVVG[XfSVRUXbYXSZSSTPQ]\Y\S^\TV_aXYX^aY`YbaQ[P^_OYURZe]^VWcZNPYXPXJ[[fZPoQY\\OTWaUN[[XX[SZT\S\WYPgXYfTY[VaXYZY_WYXYf`[ZXTa[U[SYaXLaUW^]Vab\FX[QV_TRTL]U_ZTOU_P]]Y]RTZ`S`W^RSV`YV[OcT[YV]QYXVV\WW[YabZU[VQWT]S\USWX_TY[WWTWWMMY`WWW]_`\YU]]YQ\\YW`YRQZ_]`^\YZUXMW[_\NcV_\SU]Y`gQV`T]eTNXSNdZO[`WS[bbaY]\cY]LUcV_VZWXZL]bSZT[ZRXSYTT]SUQ]ORTYcUWaTYVXPKZS[[]heQYaSWWZX]M]RYXZN\eUYe\O\]\OZWV^QbWVWRYZ]P\]\O_OYXOW_RaPP][JPLjSXUO\`SfYUV]TMVYYXSTcUYTYZZfX\VX]Z^T`b^PXYPZ]aXSS`Q[ZX_WXXWXQSWcV^VUTXXP[MSeQPWVWfZVRZ]_\O^]O^OQRV]_[\VURVXXS[J^\SShTYhV\`X_\ZS\[WVYW]^RVYUNSXWXbJ_f_L]RPNVVSa^TWUV_VL^XXXZZ]WVWZU^ZZ_fUUXc[[ZVTV_NZY[V\VY`\WWPWVXS^\[SWPTWU[dN^kVV[RT[UX_Z_VYY^\Z\_fZZ^[X`\]VU\U[V]_`S\[Xd\bY]Y\XWlbWRa[Q\RYVXQ]XU]\]UY]SZRW\R^gPWP\\_\XPTZ[[WZVR`SZbRSYZ\O\aYX\[YT^WT^YYQ_UKXcVZ\XRN_^`[UT\_QVRPWSWaN`SVZ[U^WSTTcU]ZTYZXXZ[YXVURVXTWTUX^NQWUXXQ`RXWSa\YX__]^RX^RUYU[jSXU[][]WV\WUZXVX\U_[V`\PeUO\]YXYT]baaROUU\_Ua]WSZ]l]S^VUZSS^a\XY[YZT]VZXQ]WRe^RW_]U[Q\YVbUYZ[]Z^XY[UU^aUTXPYVYXUT\baa[WVZWa^UY^YPT^Q]_WSX]KV^VQ_^Z^SZZ`_USPUUVWb[[UWVQbRZWZUOOc]fRR\a^[\TV_Sc\Z[``\S[d\iPYTQ^^Q^SWU\SXUXNY_^cT`Y]mW^Y]T]QO^UcZ^SVRZmaO`WcX^UV^eWTVPVWYT_[[\RYYeVQfVZYRXY\WeTUVVZ]W^\Z[^[d\]eY][YTXS_\aZYPcYbSYXX[V]ZfJlXZbPaUP]_aXS\aWO\a[WV]ZR[cYXUV^YWP]_VWRVXKTe[WmaXUfdYYeZZIVVN]RP]aZ\Q^YXQYabVTXV]QVR`[_RWU^\YSQV\Z[V[YnUYZYUV]Y_SV[WZV_XgTeZZcWU[Y^b[OSg`[]\XaQRZSZYcSP^cQ\[OUaWQZMS]URT[Q[\ZXUYbY^XQeTX[UaUR_JWWLVZNYUUUa[a\UWZ^^IT\iWVYj_VaQVZRV^_LYUY^W\ML[YeQMe_U`j^X^ZUUVRRQ[_T^PYTZ\UVSjLNV\T^VX]YdY\P]\SX]YV[Y[^PaZYXVV]_TVXSd^QU_XK[ZVW]WW^\XZXTWaUO[SRUVX\_]_Y_RSVh\\ZYdUWXXW_XOUTVSNTX]cYTZYSeSQ_M[^PZVWQ^USRZ\XZRW\]^Z^\SUO\aZR^RTgXX[YQYGY_WjQ_[ZKUc^XSMO]VZ]VaVRZcTZTYMcVRNWWcOQQQUOVXVNY^UabNYYYT[^OWZoW[XVWSVVk^WU]ZVSRPOY\YiXPVUYVZMOO\_Xh[LY[gXW]k[XY`bVXSVcYP\aZSWNQVeWmZZTmWYWROX[_kUWP[]Qb[T\cR[VS[^X\TaSSV\TaQQ\]YYbU^XXYTeTT^TN^`S_M_QVfYUZW`WX^[W[OYZX`f\P^TROcPTQ_ZgVSZ^ZY[OS\QUYYMSRfX[\cZSSUQY_WY`PZ__SW^WfYRXYTM]`^\bWYWNZbQ]bjZO``VXXUZ\Y\\[^VVTKUZTP_\]a]_bUY]YSZOSY]dcY`UT\\]YP[]VW\X]aWXYZMZ`\\gb[]`\XYZhW]d`YS\USR_PTc]NYYYY]^`V]VUW[YYV\MQU]U^WZaXVSTVY_WUX\\TZRUdTX[UYTXb^YP\`WbTYYZUZX\RWQVf^TeRR\UZ^S\YOb^X[^[\aXSV]R\W[U[YVf^U]ZW^ZU]TX[SXYR\]Y]SVUfS]PVU\d_UTSX_YSVTOUWYXUaYZ[O[YUX]PYW^Y]PZVUYY\[VWdVK[^SSUVYU[_ZXUX\QRWaWWScZ_b\WV\R]Y`W]\XW`PY[TVhUPZYQ]J[a[e^[\MRXZTXU[WWXZd\_YaO_O\WUZYW]_YUUZVY^_\_aWYLd]WT[R_TUTbXQ[YZ_i``\lZWVWW^QWU^OZYYW_RYTUW`]TRTZ]Y_[]Z]VZO_]Y_`WRYT[VXUYZ[VSSSS\UZ\S[XUbTZV_JZXWWV[WXISV_WW[VXSO`W\\V\_WRVYZ[WNUXMY]YXSRUQb]NQR__^UVZ^UQU_RW[[XU]V^RcYeVZ]MWSWV\\^eaNV\Y_X`RR[YUYZQaVQXUUU^OOahT_SZ[YTYZO_[cSONSYOMXRTPU\YaWY_R]QYTYXXPQZ[Y`XY`XVdZ`aVVNYVPW[Y[ZYPX]VWZUZX[XVXRfXMYYWT^YUXb`c_XXQ_\dVRZX[VU]^YTVWX]VZVZOXQaUc^c[ZXVV[`VVSV[R\NY]]Y]^\ZVXT^ZaWS\SX[\TUMZMT]Z[TRWYTZ[PMUSXc^HeXMZ`WbYRR_QbWR\[^ZV`\[VW]bfQ[SRRY^PZWTXYZQObT`a^^UdSW`]OT[\TWWYP]WZPUQdR\_b\_YSSXX[NfY_OQY`W^`\Z``UM^VUVPNZ^WhVfOca\^XZWRc]YN][R]U]c\S]U[TX^e_Z\UcX__\]Y[hcZ]RW\caXQVaTYXW[d]W\PRZW[\[Y[aUZWU[NQgf\_WY`]\]^ZVKc\WU[[\]K[XJ_TVNUaNM[[Z^L^ZVZYXXQWWOSU\XWR^\WYVVUZ[TbaYPWVW[SWabQL\\U_WX_\ZTRTVUV[WHdVH\YZWXWVXT[bTbT^eWV`YTbTYWZ[a`X\VYZ^`YcXUV[W\[Ub^I]YXXfW\Z]_[WRZXQOTiY[\c_XWUJXSfTaSgWPd`^YWRZZNSYXTXRY_K[^YQTWRT^VTWjXaTUU^V\`[]SMV]Y[XZdScTVW]^[QTTYRZaUZV\_]VT[QU[NUSV\baS^]Y_b`TYXWXRS][]STZS\Z_YTUW_R^YUXSXX_ZX\ZTWTc\Z[bXUhT]PZP[VUQcQ_dVXnVORXZRY\VTSRT\PUT\cQ^UYZT_SVc`K^]\WSVWW^XYZb_WOURSVCRPYVMTXQXPOWTWaWT[N]\[YY_Y`^RicNVXVRSTXeZaWYNT`^XPUSY[Z`W`ZTPX]Q[eZXZ^YbZTTXg`_JTRQ]]]Z^YeZW[WmQUXSM_RYXRQN\_X[ZP\YW]TZVXZNWU^T\]W[Wd__[TXcZX\VWb^YUa[X^USYV[U^QZWS`WXTSXTb_f^]YQ_XO_W\N_YhYQX]UYKVWMgXUPc[PK^YU]\`XH\WTQ\^W^HY_UTMXS^[WkWcRR[XWV[_WVc\MY[WRSWNZYXWQSdPYOZ_aYNYVU_P[_\aXXYaZ^]X\\UZbYY_WQaR\]XTX[\aVQX^a`\SY^WV[`^aZ^eY^]_T^VY^`YQYX\X\[WU[WWWO\W^\]]UlY[WUbZMa]SSUVUZU`VMaTRUUKgR\XVX]ZWRY]Y\Ye[YbYPXZ`KWgTMRXOQQTMYSPPZWN`_V[[\bePUVbc\Zf[Zl^WVbafWT]\YUZYY[RWW[\USRZR[RWOV\\b^_R]Ua^T\YYQTY]WQTc^SPeZV]PS^W[aPk`T_W[WVPVUfaXk\MfYfXWV[XZ\e]UgZRVUV]V]qUW`WOnR`YU^UVXXXUYqSYZR`UWO][XjQVOvWVdQRV[VVbYYRT_[\Wa^VRYaSS_[YbYWXOU[UbWY[Z]NaW\dUcb]V]\j^[Vc]ZTY_]U[]TZYVOdXYSTT\SST_V[[]TUVZTdcX^^gj]YV\LP\[eYX]WW^^ZXeZZ^WM[S\PZ]UTMPT[YfV`YSV\_[[S^][aTZ`YO[[WP[PP]WV^[d\X\UTOS[PYNS^\RZaZ[Yd\c\XdVdkYXTe]RbRYXSX\[U]ZbXSZ_^cXaY^UQdXRYT\cOVaY]`_W^Zb^YZ]c^]LY[c]a^RXVaZSZU[WUWST[X\SXTU]gVZ^NTUPUYSNVTZRQX_\S^ZQX^_^_SYZ[WUVTN_[QRVVaZ_X\[^TXXPMVY\S[V_XRX]RaZ`UUV^c]YX^Z]XYReP]LW^VYfYYVSXXTV^\V\[US\UTZ^US[XVXXTX_YW[[UOU\VR]WXQS^XZVR[XTcTcWV_[WU\YZ^`W^`XT]U`]\UWVSRXVYVS\YT[TOPYg^TXZ]\]\Q[]VWY_UVT^M]WZ[WPS^TkTXZXQXX]\a[PdY]aRR^P_PgZYX]_V[iZbSPZZP_XUbURU]][XV[W_Y\Zb[^RTYY^WIY\XV[VZQZTYX`Y\X\UXQNVc]]`TQSZV[UPUSYQc[YXa\[YY]TCWPVYQO\ZTUYaY[^\VT[P^YTaZU^]gfXZ_`RVZXPbb[[j]VZd`XVc\S`W\WTQRUU[X`^`Y\]ZYW_qNZ_ZUY^Q]eOLR]T\RVRZabRWPRXU]eUbbYVSPT\SWY^dYX_TSRTSWeZTU^T_[Z^`VUbZVZdRTaKN][]^aQYQUSZU\RV]Z`X[[^VZQPa[TU[VQV]U[TXX]`YU_YaTTYY[TSX_KZY\QYWWXYYPU][QSZWaWR[OSZTX\OZ`Y][SZjTRc[WWXagVS\Vb\TVfU[VZYY^_Z[UV[aU\`R^UWUQ]_M]fWQRQS`RXWR]b\dRUTPS`Z_ZUHi\_VU^LRTUXQaXYU`aWWO[Rc[VfgJWRWhZYZRP^XVO_SZY^^^YSVTaY[VL^VW\Y_UZaV\\aUZUUaYYaVLRSeQUSVPVPSMddPNW\PZWZf_R`]ZVZ`PZaMSUYXRMUcYXUZ`T\\_aUTdXPYY`OTRZc\WRXTVX^\VaPQW]U`d\V\XPWV[\W\]QZY]b\WF[OVY`YUTWQ[[XZU\[Rb_SRYT[]][SW]VYOYYZOXVXaJXYSVQQb`WXXXb^WRZRgMRcVVWZRVVSXSRcYcdT\^TbO[_XSUW\a]X^WY`LQ[]XSSRbNWTW^UQPYQ`RZ`VVSKU]\f\T^X`RSTZ\OVYVWZSYY[ZZWO[ZQU^\Y]_^STa]XUQZ]WSX`Z\`^\Z`VyTWZ^`LWPNRW]\L]\SYdYNTN[SM^V\Q\Y[`S[Z]OV\VY`UP\QUccQViReYT_]U^XSYWUMVZUYVV]]S\S\YcNWWX]\d_e[c[XP\QgSbX[WUV[PURbWSaTQ^fVVZXSPQ\UVbhV[[SYQPWQ^]^\WYca^a^`X^^TX_WUbTYZ[[^[ZYTUQYYTYVOd\YVV[K_Y^XTTM`\WS^]RdZZSUZP]eXOVR`WL_YU\YUWR\PSVVRXZXWS^cV^VUT_TYU[]TUcV[XR]YRR[TeQUX``Se\Y]OWP^X]eOeQTYdQg^^aSTP\b[YXM]WR[X^]X\]ZU^RgTUUV[Z`YGY_WYS][SXdWSWXXSQ^VVYTS\aWTXgcTWW_bJTS`WWQUVY_TQVUW]I[_XY]XPYYY[\SUPMVXX`\`XiSa\ZUUY]\NV]]T^SVTrZYWgR^cRXUZTZ_VY\aTJYTTL]\TYYe]HRZI\[]\JWX[UYU[QPR[O^ZYQ]bW[WW`X]X]ZZVQVL_TORVS^VZ[MRXUTeLZb\\VSQO_WW]WV^^XQaj\bXVRY_Ym]dUVX\_WW^I`OV`Ud\[WTca_ONgXXJ[bYLeWRa]_LPZZ^^ORdaO_]QZWUW\RPPb[[ZU\_V[WVVa`Gae]`dRbTXUL_X`YgSaRPWbS^UN_RWP^ZQWaTR_We]SS]\S\^ZZXO_OQLSWIW[QYUk_dQV_XV]X[S_RaZTNQPid_W\_ZVYf^Q_M]TXY`X_^LPT[X\QaYX^]WYWL]`UXWX[PPUXbaKXZ_aRUWP\bfWaV]SNSXSX\ZWW][WPYVT[NQjUUW^RhRcQYYb^deV]_ZVXTUQXZ\\Z]^`T]YPZ]^eTc[UYVX^U^X]YZZVdaWaY[WW_\T^SYX`S]\UdW^OYQQ\V]V\VZU_Z]SZWZYbYX\_ONWRV][]S\YYaSSbPXXWYReVfe_]]XYR[R]_X[UW[WZ\R\ZWURWWZUPd_hSO[VYYZ]R`ZYSNS\YXRS\XXLXYZ_WNOVXWZWWUYUXWX[YSKKUSSR\VXQS_dXe^[XZRYcWVWXWUgXU]Z^VRXUc]RVWMcPXXbSR[[`Z`YYU[P_W`YQVUTR[SXU^WOVTSe_XS]eSWVVWW`YYVYZRdWVOTVWX][OVVY]U`T]]W[fWYW^[^]Y`aYSgWZU]_eXP_\WYZZTU]Z]YI\S`ZWYO[YXOV[\UV^]SXRZG[RLUUX\O\SYXZ^\[VQ[V][YY^RaYQTYY\W[UZ^fZTRY[iPZSXTWZV`Z]XZ^RX_VW\[YZVNQUS[Oa_MbSa^[SPX^^SP_VY[WXX[ValYZEW[ZTRZK\RZU[QZ][UZc[XSPSV\_Zd\]U[WV]\`fOZQUXZZMX]WWYP]VXc]\YScTaX\VZXU^^dYTfY\Y^R^`]cXQW`]bZK^XXfd\Y^Z\Z^\ZXVYNUXb\e`[YM\ZZX[[[\ZWZ^LVLebUU\RYTZ\\`_ZbXXZYYV\TS_SZNX[ZQM]POYWUWU_WTbWNQN[[WYVPYbc\V^[]ZU^XWYT_TcVWUS_`]\`cP[X]RVYa]Uf\V[]]^VYWTN[Z\YR_R`XTX_UYaXc^NUZXS_MXZRNWeZTVSZZ__VZUd`\`Ta[WTV]YUPQXY_SWX\X[YZ]]Pdh_QVUTMUX]U]WeWZdQQUhVaTQ[ZSZU[Xe]dXVYN`VcVHVRCd_aXNVNQZWYMUkRQZsVcZ\P_VWeTUWQUQZVQ[NUZLU[[PLLZTRVZY\OSZPOUUQ\Z[U_PUU[TW[IPVY\\[^PYQ_ZM_SRV\`SN]IT]aY_VUZPd]\RaTQXe]N^Qc[YS`XMIYRadQWX]OVZaX]V[c_MX__\O]XV]TLVUQQXYV[VaWV]j_[`Td\YP[^[YVv__RVYYZmWQ^ZYWYQMZXPY_UN[[L\S_eXaYRO]EK]aXQaYRXV\_O^TZO_UcZ^]cWVK`MX]QeXakZbUR_`b[SRPZXRdX]c_fg`OcWU]YbYUU[QS|_YM[fa`ZNXUdV]a\iPjSLhV[[Y`[VSU]ZURYPYTYeWWd]OV^XDW[]_]OX`eNZXYU^\Mc[ZIU`ab]\afV`]UI\\YYTXTSOZQodZ]]SPOV^PW[\VS^VPVVQ\aLSJ\V^[]X[VYT_ZVSX]V]eOTV\W]Y\V]TVXVY_QZ\[TY_YVUUT[aYT]]e__T[YR_`_Y\Z]\]SXYV_\QXSXZfWX\^S[\[SXVb\[\QW^R`TVRZUY`S]SSZfXQOXbM]Y[_Q`Ve`aQ]U^YOe`ZWLg^ZRX^QYU\RW\]U`X_TSkRYTTYZTSPVaV[\QY[Z]T`YUlQUSTUZZaVcVYQZ_\Z[]YU[VZ[W][U^[`RZROTcZ\RZO\ZZ]UPW]VP`Uf_VQ\O^\O[cR^MXZVTSVU\[[S^Y^TWYU[`ZV^cZbV[YQVWXS_R\YRWWZV[TYSZ[\[U\bR\T[^ZT_TY_fWS^aRWYVYXOWX\V^NYZSQVWUSWZXV[UXZW\S[[YVV]TSTYXW[ZW\eUVXVQZ[^S[[SSOXd^XP\c]WWZVY\db]STUaSVb^ZZXQeTU`W_S\[aXR\aUR[[UWNY]VYn\TW\^Y^[^^ZURZWNV^XTPUTQXXQ\bj_b]aPeYWWTVYSPYcWWXSU[dXXObUWgb_X`WX]MZ]Q`TjaWSS[RVaYWWGYZSPS[^X\W_[RM`\X`K`TWTg`T]SUh^\YbQWT\Y`YZTLYUX[X\T_[V[MY`iWSRTf^UXZT_[[\S`KfR_\LY\XO^ab^[RReQ_fVX^\XOXVbUXg[W[ZJKMYZgR[h_[QV]ROY_kXhX[Sk`ma[e]ZX[YQiYRScTag^eNW_\ZWQbR^YTU[J_QU[[ZQ[LY\VdaaWTaOcX_\]\gWNRZO]eQ_][gUU]WXZYZVh`X^XYW\RUNMlUaaWQQUU`^Lea|TQ_\MOTK]bTUPQh^VUXX][QP]\cVZUT_WTNXSTc^L[XYMc]\^OJ]QW`f^Vg^WV\XV^c]\]X^]_Ic[_WYO_VWcUaQaZddU`\^g\^ROYb`]UUPWXUXUXY`QfZVR\V\YUVPZ`Q_W_XN]T`]USaJfbbX]`]WQ^R\JWZ[SRaN[X[YW_VQS_XS^ZPYXRPXa]TR_dV`TWT\Ra_Yc]OXeO_UU[YX\dTOgTQT]YSW]VTMYWYWUZXYRSdOXXTVVZYRWWWe]]VYV]f^cZ`cR[RXVbacN[\PX]UY_\L_OS`XO[[T\]UTZXZZYTXY\`P^WMPM]]\\_RRYOW^WcX[MYXN[U^PWaM\TaW^`bW[W[d_UKY`S]XcVX[^`]aQT`Xfe[TNWSSUYRUST^SQWXZ\V_OY_cRVTPDVdXZV^XQYd\]]_ZWVXVZYQPW\`]bYWOZN_bUPV_]OWDVP[VQdO\V[WPVXVW_UVWU_YZYVS^O^YTWUXTZ_T[aP\W[aXWV[UW^Wh^\VSQgeXUaWZ_P]VVOZV\UUQVFY\P_TZ[Sc]hO^WZOXX[]S]T^SXcOV^fVX_TYafaSX_`[TUe`V[]\TK]ZZTUSMZW^U`XYRhU_`ONOPcUU[^\ZTZfZR`SZTY`OMYdX\iQ^QbVZdVfW_]`Z]aXY`N^\`QXUWW`\\cZYW]ZWMO]^]^XXRTXPaQ`RRYXdR\XRSPR]XYW]]T^\RQP\^VVaRe]]\[PP[[Y`ZT[XO`^`U`WY_VT\WTM[`]T][UXPYaZWT\[[TV\VQYfWMRZQf[TWWMUU]_VRaXX]OYYNTY\TJUQf\QXUZO_S\V_NnU_YRU[`bY`Xa_W^TTV^^_X^S\ab`YSSSTXVcX[XVRdOPS\S^[^_]VZK`mS[LRYQ\XW`RVMXXWWYNV[S^`QTWZ`UUUX[HU]b[^[eT`P`\TZXT^[ZXXd\Xf_bWNYWVbVTWX_SWTOTcTaZ_YYNi^eZZ[]V^eR[UPUUTaTO]V^X]Z]Ynh`O[]\W]X]X^N]XSR`Z_L\US\S`YXZZdQT]Z_NXO[ZUTVTVYcW[Y`UUZUZjZ^PSaleWURTVTTLXfWYV[[M\V`[SUWeRdV]QZXgXTS^^O\YPWMT_GSOV]^OU][b\SW`ZYZhHQZWU_ebRYZVXg`P_a]WZ`jMU_bZHX]WWUSeQX[Xe\`WU^RfYaQc^]U]Vb[XeTUXWQ^Y[XZd`_]_WUaSVOcT_T^XTOM[RV_XPZPRUTXRW]QNXSLYTZX\U\QU[j_YYWU[]`WVZ]j`^XWcXcUaWd_UU`SZZbWdSTPXT\S[XRZ[_^YXZXSWiYNY]OR[LPQWV]STTHbScXZV[aSVZXgYXaVbRZ[ZgQOW^NQS[[S]WTd\[hWYSPUTQ[V\Xb_]SbSUafS^VPMi]Z[_QKXVTd`VXYWUWO\^]UTV^[]TQZ^SWeUVY\PWZ\X[NTW`MWIXWR]ZR[H]TW\WZ[U]XVQO`\Y``aSXS]]O^TVXZ\QgPTU``[`ZQcVY[d\\XZUW\U`YZ^FYXSbWU[M[U_YRX`ZRV_cXWU[eWa_TS[Y`OYXNNV]URW]OP^RQdXVWW^aWLZ``bX`_hX]d^WYh^]WQPeZajT`W[h]XUYbSTVO[\TUMY_SOU]^U[^\dTdRRXgYQ\[YWXXULWX]gX\[VLVbXPXW_[[hOZQOaYZXUZ[cE^XNQL[XMOV]\ZX`^UTdYcY[dWVKWXmX\W]WTYWgTZXWg`]lKMSLRWURT[XVbVOOSXaZ^`Q`_X_ObUQN[ZX^VYT_\`ZR`_]YO]S_\c\TU^WYj_WPXYUa]`^ZeWb`TTZcUdSU]gRS]cZUbTT]MRXbWX^gUW\hUXTgPXNfY[TZ^\cT[P\XTOaZ[j`_QO_TbfZaVcUQ`X[UZ\j^NTcSKeYX`Y^XTb_VZQS^VVaQ[UUR]_[MRVV]eNTP^RaV\MPXWNW\MYXWa\`GjW\]]UUR^XYTUW_`Q_^YUVZ`]bTU\TZRVVJWWVaZT`^\VZUT\PSfXcVWTMZ]_WoWTM]aV\WR`L]VR\^TMPQUWaVdZ_Z^Y^UU^XRXX\[SPMSXcd^Y_\Oc_XXQXgVZXXSNU_bJQ[daY[TaSHVZQGZ]_aaTc^eW]PXXfPaYSOV][W`]]U[c[W`UW[QXQ_VPZ[VaZYaYQYYPWU\^][VhWYmWVZ[YOUWUVLU[aPbLidX_^RPW\a^eYVU[XZ^_\`RlV\iXMQXURYeWXid^TXYUZOX_c`XXT_YcaSY_UZV\ZUU[^lWVceOd]]Z^Z\^\YYJ`]``^IOUTg`\VP\eWOWX[P\UUZW_X`d^^PTW[\cdn_YX^XVfT^]K^bRQlbPISX[\b`W\SXSSYfP_aXWSN]YTWdXT\ed\[g[NSY^a^`^fYhT_XiO\eaV\PORUbRXUUUccXZ^XV_TUU\Z\\aURZWXPZT_ZfYWYZ\ePSWVYJWOMPLUXTWYZVUSP^]TZWQ_MY]GZ]`XPVZSWR_[X]TMT^\WiSPOS]S`V\WLRQRKTLYUSVSSbT]ZdW^[^_iTUPYWYgZGUcPQXVYTOgRXc\RX]WWVLW_W]Z]`QYaWT_\\YfWU\W[[XQXYPlR[XU[\^\YYTXZRVW]QR_R`aUS]WPRaVZVUTSWWdN[UaNVXXY[WS_Wd[SY^X[]YUL_WZV]`Y^YT\SUVdYPRWRFRPTbVYZ[K]YUYRPdYZURS]VSbTZRV]_dXYh_^W]KT[RWZOXf^Ta^Z]bP^McVmMZY]gQZPX]ZXOcJ]ZQRZ\Y\UV`[]WYYXPOUXUe_PUPZV_UU`\]ZQcY\UHV_VaXN__RbUJWY[b`\TOTV`ZbV]TTcdV[c[mWWSIRTZ]WU]QR`JRSQZ]^PVPWV[h_T^P_XYZLXUPSVU[_X[UZZZWW^aRla_NUYYVW^UXWZ[X]MSYSY`WUdOMXc\^XSXTW\T[Z[WWYYWcVYa]SeTX^X_\\NQN_T\\]OW]Y\Y[_R\XVZOYNX^GYXdVV^WXWPZUWXXQQ]c]KPXU[edX\[\[OaYa\]U\\`KVW_`S`Q^UbYYZPQK]XbaXXb[\gV\`U^ZPU[ZWUWYWX\_WYPM[XUUWTZZW[UQQZ^`^Z_VWSYY]d`cX\VT]UX^gUZR[[YVXWV``[RW\^OY`_H\[\cWaX_]WV^QR_]W^TZ\YTV_X_Q]Y]gPeW]RRXX\YVXTNT[YYNO^TZRVbSVXZ^WW\YYYZV_TYNYOXbZdT_[QUa[\]]^V`SZVYSRWWX`ZT`XSYVT^beR]XZg]ZcaP\XRZ[OUZdLZW\[SYYZMTY[PQUUYT_bV[cd[W\S_SSZ^T]XZXVYY]W_PXWT\\UOU\T]TVVQZXVVTb]TXXZZ[S\[WVV[]ZWXSX[Z]__SbcNOZVXXZVaXSV^S[][^[W][VYXZ_[PWYVV]XZ[Z[_XWY[XXW`[P^cX_HTX`VbU]VbTWWZ[WT]`P_V_R\a^VZVTb`S\YVNRZ_\ZPTRf^\OSR\YbNYXTdUXUX\MY[ZUV]Y_YZZ^WSVQ[aT]UQWY]^]\]XMZ^_`VP^]\VZWS`U^^cWUZWSV^`YSPb\ZXOcYPWQUXTY^U[YSTXaWYT`P\T^KZ__WSOXXU_ZTO[TWY][WZ\XVRUSS\chRX^XcVT[VUV[RPU]YUU_VY`VWXOZ\[^SSVcXPW\VfY_X[]ZYUV_]TYUVZRkYV[V]PTUdX^`QUlURXR^RaVXZY`YXc[UXX_aUUa^UUYVZiT]_YYTY^\VgQaWTZ[cV`WPXX_YeYZXd`_]ZT_WQYWXV[PV\\XWPUS\R]V[Zd[[ZWZVUY`YN\YZZUUWOVRXXYOLSZX[W_YT[_^TWL^VbVPWZYQYb[Y[VWWcZ]ST]PQZRPZX^MU]bXSSXN]QTSVR]SQ[VWW_ZWO\XW^_\OWWZRUY^aWZXaX[baQRZMfX_Wa[[RR\e]Y[X]RZ]PWXZ\_[bI]ZNXSd_X]YVZ\Rg[RTQXN^]YZ]UYSW[TZ]^^_P\KRS^U_WP_SfRQ[Z\\^XROXN\XYLX^\VZWKU^[Q_Z\[QOTVQ[dfcR[_XXTc\PXYTPaY\X[VZc_SWVZVPTXVYbRTY[U\hY[]YSVV]YYWaRW`RWPPUV`Z__[[UUW`S^PT[XXPVaYVXS[TR[\[VYWcbXX_SZaN`Y^[ST^[LGRT\KXY\U_UZV^HYUcVZW`abMVWPUX_[][c^]WY]_]XOZ[S]aaQ\SdSXdO[SV]\^Pe_dSR`PTWZYZX]__a]ZYUZU^WT]VPXR_[R[\Z[WTZ`^_[V\\XXUYi_WeSWfVZ[S^TXVaUU_UbX_LWVWUT]TWba\O\XTUV_]NScSXXV]PO^[]YPWWVVWWPWU\VUU^]VgSZRW]`RV_Q[`ZPSRXWV]YLW^U^^Y[[XRZWhVTN[Q]QVT`UUeUZ\[kT[Pa^ZXUZcV[XWV[^SZS[ZQWNX^Q^XQU\bZV]RX^O]ZP[PYOiZVRZTVUQ`VSVTYYSY_\ZYYZZS\SjXLUYT^^]]e\W]UZbT_]]ZZWVOUVcY[RebRMNRT^MTVf]VU_eYV^UY\`ZfcWcSXP`YY^[X]m[Y^XX[c^MXYRWp`WXeSXaT[V]VP]WWU]SYZ^U[VWTXOVZ^XZ]S^c[QWWKY\WZWU]Y]c`[Ze_UVN[PPa`\\Z_SY`][XV`Z^UZXOT\WW]ZV_XTUUWY\[UX`P\PV]`VP[U`eTSX][TeRYQYRc[^T]UcTU]_]UZ``XZ^SZeQQhV_YVWiU[TUZRbWb\OZc_\Q\^^i\\^\VPU^PZ]T_iOW\h`YUW\W`[]QRZ]`OY[KXRd]QaZSUPLV][TZcY\WS_Z[ab_`\V\YYR[Z\XT[c]]^bS[_[P_U\`TYWb]_UXTX]YTUTNVVS[Wh^_ZLS__VZZY][RQZJVWXXZ\\\Wc_Zd][Z[gZSRRVYSS\[WYXUXVYUU[[W\V`^M^\nbcXbQX[TQVPVNPRX^ZT[[Xa[POXQUg[^WUW_ZTX`J^\bRS[TiWSTXTTfXSV]Y[b\]XaOQ`]XV]TRVZ^]V]fceWZKWb\XQi]XQZcY`W_`[[XiR\X\_^WSa\Sf\caXZ_R]USZ^MPZmUOUZTVW[M\YYXaaX\X[_`_J\YVa^\ZTWVORMOeZYRT\\VbWT]Z_YWi]gOVUXNVP\XSQ[_W[UWR]ZS`^Y]eT[YT[YaMR[T]^S\ZS^XUXP\TTXZURYVVRX\[XWVXW`Y[abVM[]aYU`VS\Yb\\RT\XRcUWUXSS_WX[ST`ZVYTTVZN[UPYZWZXR[YYPQVX\`[\YYWUaQ\Y]_VZSTU^MSTU[^QcTZXPa[VS\bVVUWcW\[^VTSU]TWXcVZSVKWUcN\_ZPVZSQ\]Y\`X[W[ZYRYVWT[[W\WRa\UUTXX[`RWYZLUWWdW]_ZXVYUOP[YZZ\_V`][TS^\W\VSOXR[f\YbN^WTYYMR[]VYUVV[T^\\ddTVb[WTXY]_VS]PXTX[UXNZ\TR]R[b[\aVV^Wb[cWZ\[]cU[XTYZXa]X^TUOW^Z_SVVSYUZNOZ]PZTVKZXRh[]SV^W[WWX[W[T\XVTZ\XO\YVVW\_gXPSTWVV]XSX^aTbVWWUdTXRR_QZVR\SZ[YXZ`ZXW\Y_SRZ[[T`YVa_[_XY]U^bbYXSVWTUT^VZ]LX\YWQTVYWPS`Y\YVcT]Q\WPTZ^SRa\_Y\Y_SRRNa[WZUg_YY^e]\TaOVdPMQSYX_RaVaZO^WZ^WQQ[]Xbe[\\i`[bT`VWR\STYYYaYX\[R_eWKMV[[`VSZUUVZ^YS_XNWdaUXYSXUUWWONa]U]VgW[YZY^ZQ`MY]UT\V\MYUUTY[WVbX\ZRWW^WX^]Y[ZY^[UNOOXY\^TZ]XXYX]ZdX]bTVX^^YXXR_X\YUgPaig]^Sd`]b`T`SfZNSSRTZYW[VQZHZYQQYSXT`^\aYVYaX^Rd_XI]aXVSc[[UV[U[XcV\^UTaYM[^`bhR_SXS[_U\XTQ^Z[ZW\K\T]aTTW_OX`ZUX]SZZ]TXb[Q[`PWe[Q\dQ`Z[U_UQTS_QYZ\[]]X\XaQ\QXX[YTXb\QWY]PTVRZZQ]ggW_\dQZU^\S\`\XW\QZ`[cV`^^T^]XZV^W][\\YS_`U\fYUSTRcYR]g[UZ[ZSKZZ^T[OQZY]`\]ZcZZYUTY_dWZ\[^YaaO`YQYVRYYTY_WRTP`VaQPX[]WQb[XZ_bb`]N\WPQ[UXVMQ_aabR]QWbZU]kXYVc\RY`W]YURZUk_P^T\QYR\VJU^UVZ\QWSZ]WeNWXUeK\\[\[U__\aUWdSTYZTTYZb^QSUf]R\W\]_TZnS^`SR^^UMUc_WU[YYfc]i`Y\T`_RQhX[OY_RY\Z\WRRWPWYZRSce[O[PYQdQYaZY[\iP[MY]OUPZKQUSQSZaX\][W`N\`ZYf]QRWh\X]UY`V^WbZ]aV^e_b_Z]a]UR\\`ZRTZX]MXVZXoZeYQ]WW^`__TbM]bWS]aXSYUXa[hW_laVaPTSWVVX[bZXNVZe\[LWTT]aZ^Y^dW__WWR[PUGJYbUfT[NSUViW`dVehTSUVT^Qac_Xb^XU\[TQ\R[RWXT[]W][XYY[[RO`a]XR]]a[\[YXSUTTZVUSVUQdcR]fYX_l]ZWZaUTUJfcY[]Y\\V]VV_YVO_\WIPV`W[M[[TS^fV^T[WNSTSV\dX_^aYYTcU[ZUZScVM_O`Y[[gTYW\[X\ZZPY\]QU\VU\SWYZ[acR[ZZ[NZYSd]\^Zb^TX^Q\OWPOVhfT\QSZL]UIeTYZ`b][V[UWXY`Sc[RLWW\mVdXW^YUWQaUZ^Q]_P[\h]WdcTVVf\eZNW^^SY`SSQ^SZX]Zb`_][fXdQf[dZTXXef[^^PQ\S]UP^_\VgTX]bV_`^W\UYK[ZWU]Z[]Y[_dZ`cS`b_`bST^^V`YXoWPV\U\_^_[WacRaL]LWO^NP\T[TSaP_UcYMPMPWWV`]UYQX\[La^ZZYU[RVY^]XUfYVU\TYVUK_Z]`YPNNbbQYa]][`YTXWS`VPaYWZY[cWV`_\Y]VMT]IT[ZYVRZa`VUM`YTQ[TYZQWaV^YQ`ad[W_UW]^\\]`USYPVVQXU[]YR^X[V[PYWkZZ[[VTW[W^UWeRT_X[YQSUN\XTXaS[MSXSRN`VaaTO^Z[SW\Z`\SW][YTWT[SV`TXiVX`VTfcU_WVSZV`QXXS_VP\V[\`ac[\X_]ZccVlU^[^gSSSS^VVRW_\XRWZ\XWZdRTO_c\cZVTZXJ[TTVTSRW\YTX\XUPU`UVTc]Y]^VWOS`jUeXX`VVPWPWSa\UZYS^XYSajUSXaWW`UUSJTU\MP]gZ_ZU\YUTWd_gWT^WS_cRSRXQ[VU[M`[W\\T[Y\S`WT[WZ[UZVZZPIY`MVRUYWZY`SSYWW]ZaRUW_\XXWY^]UTQNVWXWWW_WOU[SXSTWWYWbZZW]eINi\PQVWfX\\QQ`U]W^^_a^[\W[V\^V^YQZZa\SXRYW[YKU]_[Y]^R`]]\]ZUTOVWYaVSWRO`gWORTSaZPZ]]X_TXZ_S[_XZXb]b[Z[TTVWNVTUh[_P^T]\RSNZJ_URQPiZN[^Z`XXS_YdLTZ^V[VYXYU\\TZRWXTXX_g^\VTZVa`ZX_[[X\[\TaSWM^_WJbUWZXQVUV]T_M]OOSc^]bWYHQ\\fT_aYW[\X[UXSWf]ZZ^VX[R\NaZSZZW[VSWSR\WVWPUgfaV[VTRRiXZ[c]VR`Q[fRUYV]V_j]WeSOP[beiVJ^YVSYVTgb[ZWNZ\Wm[abZO\VTWV^ZYaLS`YW][^ZVSTdS[\U[U]PQYbW]^ZVXMdYWXm`cT\TVYRRP_ZbU[Q]N\ZPiITQWTXZTkcQRV\QfZ_[_SXY[][YT_]PXYYd[W]ZVaQXUTTb[OaVaWVOTX]\]a[_YQ]^WXXZWXU[O]P^ZY]eO[\YXg\PVWZSO\[Y\\WYWW\YR^]`Q^VOQPPYQP\ZR^La}WTTcSSVZTX_\[WeZUZZhV^SeUa]TY]_aNZWZP]VWVV[Y\f]T\]Z]\hZ_URSO_`X_^aT_XQ^\MUUUea]X_TXM]Vb\VX\X_d^]brW_Y_KZb][b_ZQX^UZNU[_QW`XVa[Z[a\V[iMZT[]V_OSYOYS]XY[_WQT^OO^QX]`SRaYUV\S][][YS[\aYU]]PTYVUQZLUXQXZUZZ\fYjSVaXUVVXYV[Z`VVV]i`^[Y\X[XZW]iWa[Y]^RZaO][PYZU^RVHT_WU[bUcYT`NdWWWUWU[[ZYSa[aRZYbV\^^QSSa]`TS_JUWgbX[Ua_U[_V^YVY]aZ[ZWY]]XT]_UZFXYUUWZOUUVWP\WV_\YX^UXNVVKU[`ZXfaITU]W`XRX]TYc]Z]ZVWbUV[eY\U^`[T[TPZX\Z\U`U]ZZdQZZIa[R[[a_STXfWVU_`YdUY\\YU[_a[WYUf[XWTWW_Zk[QUZScVRXdP[VYXW_g\WYXZ]][R^T[WTSNWZ[hT\]YcOXR]bhX[TWZUTYb[UTXSRZZZYZPY]S`dWc[ZcUfda`X[WU[_X\Y[WVTYRTRW[XXSWNX^YXZY]``ZW\Vh\[Z^gYUPQ[]XWa\\^\ZV]UTXZR[XXV`K`XZZW_XRXOQbaVVQY_`]X`YRTZT`X]Z_[WYW_T\UXTWR[]P]TPca\]WUYVYXdaPVY\T[]QbVfW\cXYL^V[Z^VV_[VXYRS\ZY]YQ]W\bPX__]\OZ[[ZaUUhgScbS_UgXRYWZf_VcV\[a]S][SXY[WZUWZ^jTVWVZ^YUUZ^YZRVV^X]QUYYR^Q\QWYXPWQYURU\TZY[\WWTXPSUVc\WaZ]_\RSg`ZTbXcXSZRRbXRVRVUa^Z_WW\d\VOWV\`TK[Z^ZUUbXX^^^W\SPVZ_RYY^\TY_WMa`\W_ZVZTSUVSRZZV\XROXWPNV_]`T\cXWNV]eQUVPTKXZQY`X]aYYVURTWa[]O_VTSZZNWV[YYWa_\Y\WZKQ`]Tdb[QYOOWU[\ab\d[ZZ^YU]HdVQZYWVRXS[XWRTW`XXIaXW][[ZV\VV\XKYL`WYd^YWPTXRZ[WSPW]VYWYZXPYW^]\\]MRU`_S]dZR]T[cZQSPZUhQZ\PW_YZUYLUXVVXWY_YR_^^dZbR[Y[`\]VWQRVSUV`VZSXWXX[WWX\UQbYb^SZ][SNT\VVW\\X[NkTRU^Z^XR[X\YUbUR^WT\UR]XUfX[QR`^g\[O`a_a`YXZsWTb`Y[_VY`_bUQXOV\]VTOTVYUZX^YWPcT^Z\\[ZZ]TTZWV]T_O_^STZVVU^[TY]WU][\V[`\ZOVQ[^[__c^MPZ[\TYPRRXSRZS[]R\]^JbeXS[WXQW_]TXYcSRRWZL]]YXZZZV_ZVYPVZV]\WY]NiH^]R\X\[WV^Zf\\U^P\NR`_YW`Y_TU[]_`ZPUX_RV]\UYXZTZ_YZ]V^UW\bXW\VTV]]_RTYX^UWSZ`X`ZZTX[IZMXWYYS]ZW[[[Z`WYYOYVVU^WZTPXVP`[RUYXRbb][XS_UYVSX\R^[ZV_WSPW[`zT\YSPRSZTSPXWVZO[W]R\RZ_X`[]TY^TTbUUW[U_TW\[]]US[T]ZQV\S]_\^`a^V`TWXVTUiU[XYV^ZV[]UVV_\dQYaRZk\VSbQU^_]`YX^P[XSUW[XWZXUY]]YUcNR_bZY^YVPeQVZMSYOVk[^QY^]VOZ]QMU^]UX`WUR\VRZcWaZ]`SXSPTVY_VV^WXRYbM\V_Q[`XXcRUX^RRP_US[QWbWUP[gcZ_Y\c_]N[P`SVjY]SeXYZ^ZSRT`]P^PZ\OdaU_iOWUTTeTUY]`XZTZUZZZY]ST\fUUQZeR[YVTS\V_]Y`\NX\UZZ\V`\`ZaXYTRS[aPRQVVY^]ZVL]YYZd[K]YaUXNTTU[\b_dQX[XhIZ_XRdWMR_Z`jUSc[SW^X^T_WV^]TX[ZV`V_ZUIaRd[]_]OZSZ\XaW\^`eaYZX_]URm\\^UZ[XYc]Ub_\UgYYZMTUYXVZSW]_]YP`]TcePcUQhUNSYU_UY[qSY`^WTYZZP[[VQR[\YZXRPV_XWU]UZZU_^RZ]Q]iRWVTY]NXPY\`ZON`aYU][PXPVQYXS\aPYU\K[TZZQ]R[eXWS]WXYS]cVWkV\_Z[]Q[dW`USZRZZNdVV\Vh]Wbk_WSWUWYRSY]VOVTXW`TT`QVY[YWYU]b_ZPXX_]SSP[Z]aYgUeLWidV_\TSTWXXeWVYYaZ[YfOYaWV[aISZ^[^YbMWXZkTWRQU^fZYQXXW]_V\[SXWYTbRU^\Zm]\RR^TRTXXKUeWZYTW`ZWWRVV`T_TT^W`OYcW^Y[TaWXShT\`TVR]]VWSXS\[XW\mYXTV`]VVV\McPVRSW\TPUOTRYYNP`\SXOYjOO[[Z[g^[KY\Qag^YUSWcWTWZUS]hNQ_RUWOe[O_\W\Z\dUO^TSXYT_W\cXY_NRS`S`SYZ^[_PY_]VXS[bST]]TVUVcYU[OeRX\X\SXP]\XP\UZ\`XVY]Q[YR__T_YX\_aY][Q[_Q^cYPWPIVNWPWVXVR^WVW[_cbX^Q_U][oTUZ\_XYhWRW[ZbaT[^NcWWYaVXZVTTX\_XbZP\OV_a__X^\dUVVXUZ^\X[XWeZ__MY\SQV]c]bShX\RX[YULQ]_]XN\XWZSeYOWS__K[[]]UR[TRYbUL\Z[bP_Ye]\aXbaY]aQUR[T\PX^UdWf]XWZWY\\a[X\ZXX\ZW[Z\XYR]QYTUVYYR[SVWZUX\SSVaSZSTRZ\SYWNbXZXj^RV^W]ZSdVSW^WW[V_N[[[OS`TaWX_^V_b`_VT_c^VYSWWYQ[]VW^_S[[V\^]U^W`WbWVXZa\eT\b_]^Xf]Y^[QWUbWHXTPVUUVPP`WSX[\[PXWYZ\\YL[QXYSV[\ZQQWSacYZ^X]T]UNW][YOXXNXb[TYXWXVZ[R_X[NUUQ_OU\]Y^ZZRTPV]Sd[b[YZU[SSU\V\V^VSUQ`W`TXXY[VWSUR_UTZSUcRS\WU^LYYc_Z`V]dRRSZeKV_WbV^WV`OU`SOdYXUZUWUV_UYZW]XYWWQ`^]ZUZ]P^T\Uc]UX^ZY[`VXZS_YYVUP[aT\aVU^]QUae[[TQ_e\UUTTYT\TR\V\ZYRUXZ[XWTVWYVW[X\a\WY]dWR]\[SYVYWTU[`RU[J]_Y`eeT]]d[RTSPRX^_S`^c^jKpYn[VMR`R[[ZS[^jV\Sd]RVVYUP\XXPQOUZ\[Q^c_UX_PTWWa\_cZPSX[[SJXlUZWSZ^]XYX]Q\\WSPSYb\Oa]T[SWZ[`RZTZ[fHVOMXUTZRX]ZX^RWYVQX\TV]\TRXQKRX]Q\\VXVIZ]^ZX[c_YWX^`]PZXN]dP`SX\K^f\[U_XWbiYhVW]X]TOcNJVLc\aQSYTbhWRNT^\I`Wb\Z\KZWnZYZSVWXdT^XW]VbOYS_YY\WaPUSJ`WV^X^^dSrWQ[c\_YdWWXS]Y[P_[WW^^UYL[SbbY[QZ\UYe_Y`]VWc[SRNdV]W`bZW_f]WTUY]PY^]N_^_\gS[cMRQTUd_e^V^O[[VbfScNWVLZS]YgWR^SZSWOT[\PU[SbKUU_RSZZW[\QHd^YXWOYbQZK__YPNTT_[aVT_`Y`TdM[d\TZTi\]VcQRmX`Z\`V\[]WSZZWTLY`Y_ZfTe[X]cSeRXYVQW[bWQb^\VQY`bXWWQ^UcYZV`S`YYWYVSU`\[PPa\bZ^_]OM\_Z`S[YRWYXTRVT]b\V[W[^Y\YbRQJVW^SRZWZ[h\WP^XabQX^\V\VXPXXWWPWbXVXQ[^[QcQTW_^Y\\LQ[^TTcR[S^RY[X^ZQYaXWZS\W_WLYUZQO_XJTQZ[QX[_T[_`SXRV\b\L\Q[RaU[S^IZd`^UZUKYQZUOTWhhTg]YU\MaUPeSWbSX_ZWNVQZXM]ZYQ^Ta\NVmh^XT^Uc_WZb^WXa\^`W[EdPV\]YM]WZ[R[UW[V]V^ZZPVSQPaUYU_PSW`^aScNZb_bX[eaW]kV`YVYUPR\[\Y[VX[JhMZX`\]TYYY_OY^YWVSZY[VUT_VU_]UbT\Z_ZTWZdWY^ae^\\SW`]WU[VRT_[^WRWaWTS]U\OTP_VQ\TUX`XRJ\X\b`UTWYTNQ]Z[^\VSXVVT]YaO__XUXYQc^hYUa_QVZS]Q^e^M[Q[X]VdaVSac]SUV\\dZQUVf`R[U[[UVLM^^VTTUQXUQbWSbZYV[QUR^dU[PX]]ZbVVbdYVaZV][WRNYYbdeTUPPXTZ[Tb\ZQVRfZ[ccXW_YMcUQ[bT[TWXY^`QYW]XNR`S]X`^VcR\^ZUTQUSZ[ZQRVaWU`V]TVbYUXXWX[Z[Y\XSUYS[cUTXYNX_VgWVXb]Wes\QjWTWOXTWTYM\\ZZ[iPZeOQZYZ`XeWRRTIYWUdmU`I[PJagYV_]dVmKY[TW_ZRR[OYZfXSY`eXahV`UJ\YXZUYZ^P_Y\j[]a\YXVYTU_YW]ZVaXQ[UWZ]`SXWZ_^`OT`d`R`UWhUPYVVTUWVSaP_P`]U_Q[S_\U`\\VS^SLjSQUZXV\bQZ]ZZ^WQU]Q_SXZX[]UbMZTSSSVRLTUmcab`SY_WbWTUUWQ_cW^XX^\^`UUV_L_]UYdcfOV[YXW\W]WUZTQadXX\YS_SVPZgK[[[YYn^^PR`R^^UUX_\Z[dd`VX\gZ[UgWT_a\TY[W[YLTT^bU`ae`SXVcQ^\[U[[[SRUXP\VX^[aXWKVS^SR^deRVUN[XU\YVYd]RQZ`g[fYXdc`WY_YYXSVR`_\YR\R]URVbhbW_bX^Z]V`_YS\WLXg`Xa\jdYbYY\YW^SP]`b\VXUQaXS]RgYVXk_WX[aSV_XNZdTYZ[VYb]Z^\XWUZYXYf\SZR^XRUOUkSTaXUY_M]c][]OYPZTOY[ZOTW[ZY\YQ[QeX^YZb^XWfYXOYP\bjQcWSN^]_fVVTcbSW\\aYa]ZZZ[]VRV^VM[Ye\XYTYTWWVXZW`Z\N]TYW`YZ[k^_VUZR_W[d[\UXR[YZZSQYW\R^XTWUQbRW^YMR\WZTPUN`Q_\RQT`\KZd_V[YXY\WVI[Q_Z]SZ[]TSQWRZUTVb^[TVYT\\XRZ^^eaWaYXTVW_[RZU_WWPKX[YcZ\^QYR[ZXTYQ[TZVSQXeRM[ZYZZ][VTQX]ZQ]PMTaW]U^WVVL]T\PN[QV]RRc]YbV]WP\][ZN_RYR`hV[S]SY]UP^\dXW\PXS]XTWXK`^^]YSXWW]W]YYQbVUZYTh\YZS^VYVT[UcW\PSdQZYNQXUZ]WYU[YS\\[WMV^Y]O[VUUVVVXN_J^X]WWWSUZ]T^[MV`W[\VfUPXYZfaT[XTUOPPXTXZVUZ_PTURUbVNbbWX`]bQYXYNRQWV[SNMYUZW[[dU^SYaYYWYTHPVUW[Uc[\W]]QdTM]^[XSV]US[UZS][YcWV`X]Va]YQ`TVk[V_ObZ`^\a\_T_WWcPSYV[[WX_aZWVW`WMXX[T`TRYR[ObY^TOWUQc`UW^^MZ[cWZMVT[QQ^Z_TWXX\M]YOXWYOVcZdPYTb\_U[P_^Y\\S[SUQXTZPYVOYT[jYSZca^[dMZTQV`h\TS`WTWXV]VRWRXYQcUUUTWWU[^^^ZTTKXO[_YWa^UXbcVYYWXXYcSTT]bTeOXO[ROXZWXJSc`Y[]YXXX\^URPU[W[S[ZPZ[OUU_YUXb`ZUVYU\`RZQYS\[LeNRQZW\^\Q]TWWdZcQf`YZI[RSc^PYXVRUXRDU^XTXV]aSY\bT\U^]MS[QSQX]VV^ab\WW]Xb_^R_g[XYSYWUXa]`fQ][`UbVYXbSVUUU_\SWKfXT]YaR]\ZXi[XRPPTRbUXWUT^ZZ^g^WW_`T[`TRYcX[W^aPZcULSRWZVNXcVW^\Y]\P[bV_XTXa]V^\aYRW[V\_PXZdOUY[XXO]T^UU]TYed][_RV[UVVVXP\[PVVRWL`OSUb_RQ_]]\Q_TjQTSZeYXSU^R_Y]fZeec[`[VRZXG[a]XFS[SWMVhZScqN]N^_T^TSYRT\^XYRbbW[XTTb^PdYSXS[QfaaVNARRPX_VU]aVY\SRHYd[TUMTUhV\GWRUSQXH`SXWXL\YTeWZaa^\Z[aY\YXg\]USXKVLU^WQZN\Z`iXbTR_Z_NVZSRYlMl`\aWW]ZUXSP\T`YT\SQaRQ\Zss_VaaQ^eTNS\QZ]YUO\aR\UPTM\VXYNI[XVX[O[hbWf[UYYQXW\]WZLTT_FUaWT_a\XNQYZ]SrxZO``XaY]QR`TUXXWW[[V\VZZ]^]ON\HM^Z]UXPNpaOOYeV\Y_LaT]XX^e[HXVUEjYR_V]aacbVfZLVZ]WJR[YUYcYOSiVYPfQWUXU\XZcf`CV\X_feZOK^``HOZ]RSUW^`^Sh[[ZY^R[TQVbUQ^XX[ZSVXYeW[ZaTWPdWZbPW`o]_V[XWWV\S\`TMQ_\\c[]LX^V]\aVRSTW_T]caPT_ZY]RU\XWQYWYQ^ZSVUa`Sa\W`UeY^``e[WX_UVZ[fMP^WWYd_YRcWX[QZaaY`]\ZZNTaYXRbWScTNcd[Z[ZWRUcYUeY_QbVNUU[\Z^_]VZXWYVT^UTQJZW\`[eOYZVXQbO[WT^UOVU^]VaXYXXT`[^^_UUO`SQ[RcZZ[]ZXQXRbU^TVSR]TV\UgZT_QQNSNb\ZVVXW_[VUZUQRT\U`XYYTUZVYTLZ_YYSYY_SZcZUMZ[WSRSZWb_W\]aRUX[XU^]Z_[W[\O\V^WWTV]URV\cabO[XWW[[a]\_\Uf^b[LWVNSUTZSR]OYW^QYchic]ZW[Q[KTdVWUP_XYRWSf_KYSS]^M[ZQR[V]UWZRYXWd[\`_]R^\QQ[\YJYH`ZU[dQ\^[\VX_Z\WR]]]\_a[TSXQ_aHUV\\WTTV]^T\R[TURWR`XYkXWXZYM\\[^SZ^OZNXRWWYY]ZV_][UY\SUZ[]OPYZ]W[\TcT[TX[\VQTTV[YTT[ZMPYYXe^Q^^PX\WU\Y^W\[^W_Z[YWX]X\VW[QXWQcT[WbZQaZVVUUTUW]WXRbZV_XYX\N`]``UMf\UTYZ[Z\YVVUUR]e]\_]_U_TX\XZ^]R]TQ`a[\XSUb]aOYXVWVWWY\V]aWc^VZ[WQ\Q^ZZYX]TOMU_T_Z^e]YaWUN^R^U[h[]Q[Y[Z`W[U`VYUZYYQS^_`Tga[V]ZXP`^UP\^X_^_YJ^`\`^Z_YaT[P\XHVSWWNT[SW[\aWVVP\^[^L\dRY[\`RU`UXXY]UZWSVXYYNZ`WSc`WYTaXTTYTVaWff]S_TX][]RbV^[XV[\_]\_T]TUWdXWh[`S_ZfXbX]abWUS[R\VdU^R\URYYV\\\]^WW]SZZX_U[^K]ZL\dUYVQeW[XQWWQXYaTYUd\VURPZnYY`[SW_[O^XXX]PTX[[VYO[^[RSSXQca[VWZXXYVY_YVQ^`fcI[[SY[daVT\XTYT[_UbdQX_]R\QWS[bV[]WS`a`R]__QTcZTjYTi]]Sa_RRVYYVTd_XWS^WSZPX_Z^bYaU]S\[[YQZ]gSKaa^`^S^]WWY[RdK`^XW]\dZOQUXU[^XUUQT\X^U[_Q\dLZOZPX\TZgY\]VeSUZVbVXZ`VUUZZVcW\ZfdTWW^SUXVXfM\URRcRbV]ZWX\iZ`Vaam]SP^^LYUQO_[RTRYa[[cQ[TaUNXYPYU_YbYZdTSTVT]TOVdQa[Tl`[WTUQQWWUYaZ\eT_]`YacWd]\Q_`RPVcYYV^a\WVMYcaYS[a\_WXaQYX[\Y]XTWW`]ST\RW`WVbPZT\TVUVRZ^_XUOVVW[RQXlYX\\XVU[[UZ[mTQN]Rc`OVWTTWaMPj][^\]U\OSR\FVhW[R`\XXMNNZTSXQXT]RXYY\YRT\eXYidTUTTXaPYXSPUaYSN\UVWRUbW`^W]TV\ZPUTP`UXVRdaXTTX`Z[WWa\R_QQQYYZ\diR`SVRQ]R[Q[UV^^XU`NGXPYZ]WOVLZgRPTgVV[U`XWbah\Y\SWVV]WWUtLQVUm[PTeXPSZXVY[`]WWLbXQ[V[SVaQSGb\UPTX`SUS\hYPU[]Q[\\`TZURYee\ZPX`YZV_[T[Ze]`]SW\XQRRH`NTTRYZUUWZVTnUTYOYPaXZWUWb^WYg_YOZiLYS^QNUXc[]]ZUReQcTXZPQWPSQTcZRYiUVXTRUZQNUXV\XX[\Z_YXO_X\VMYXTJZTXTR[WWRR`][dfOWY_ZW\XR[SXQZN[^We`U\ZbdOW]`USX^]UWaYQVYZ^]W\ZecRaRUb^\OT`QURFYUUTM[QOXbT_Z_XdQfUMcPTUT\`UKU`]]_SW[SbRQVeXYRXZYTXUebNY_U^R\^XdVWVYZ[V^ZFVhZ_P^TPZTXeZ\TS^XYWZSTSM]]VXZPVbMVMfZ][U_RRX\UZWdYUVa`P]cf[`X[`WcVURRVZ\[ZRRRMXRDgY[OXVPPZYR^\VVVP\]eiXX\JP__dFTY\[VS[TU\Y`RZUXV_d_aYdUQf_SXUSRbWUVY[abW_ZYZdXYWU^\Y^eYXYQJVWZE\V^V_V]PTYOQVX[[XXQZYTP\ZYTZPWWTYSPaYZ[PmjaWW\Z^YWnIU^\cV]LTRbV\b`U]iXWXZU^]RZ^\PTLWSU]cbYS\V`RS[Y]^S[dQTQYZ^[`l[NZY[RX]aYYVUU`f\\_[XYSZ\aW_XS[_Q[`YV]UP[WWSQ^kjSZ^YSTZOPIfW\R\RZPYQ`QbjT[X_cWW[^LZ_a]eRRWdWX`]LT^[Ka_cRQ_OPO\cVa\eUYW\IORWU[Nb^O^ZUWZW^R]ZKT__Y^`U[\W]\jZeZjbYT[V^_Za\\dbUZS`_ZU_YTTUWP]eYSVbbTTWZW\dUQVQb_VT[SQXd\TOZRR\cX]Z]RQ^\[WbZ]NY\URS\V]K\O^RVXnRV[PXXZYeeUXWS]WV]^cX[\^_VaVUQc\YlX\WWaW^ZV^^Ta\]iOR_UUWIZ\Q][ZY]_T]\UeNV[Z\Y[VTHZ\`^_UXXVS[]\^SPXccRdWT[ZSV\P_a][_`TRacXQX[SWcZY\VQdY_UY]bY^VOUV\ZiRaV\UVXSVXWQ^L^qTRP_bSgVbQQVe[S`VWYiVcVaZ_RcdV`U`NYYZ`TRaQWOYaYX]Z[\c]_gWU`[]ZOgZ[RUU^[V]ZWY^]_]^VRN]V\ZTXUQ[Qd^YW^WX[RRS[VQbU^_UZYZYM]VUQ\RcV\Z[UNXSVXYO_^dfSaX]W`YS]SY\T[WdU[^X[TXU_]X\X\W]Y^UVX\XPX\X]\]]TZ^PZXTWXX\XTd[XW[UUY^aaV^ZW[YT]V`T]X\UYZQO[caTcU_P`d^VZ[]ScIVRUYP]U]^e_ZYVW_[\WagYWS]cdKZWcXb\k_ZVQ[[^UV_\YYPU_c[__WYU^UWSZYcZMRPP\ZSYR]Q^\[_ZPRXSg`WTY]]^WY__OUWfX\_\SVW[\\UZ[[ZY\ZWVO\M]VVWRVXU`TZT]\PN[]YRSUX^WVTUQYab\ddZZZXVZ]WNX_SPWP[SbSZTT`_[][P_VUUX\XW[aSTVS\\[OWXaLbjXT[Z\e\ZZWZZWPQ_YTab[YVaSZTWRW[TZX[`SVXY]hNQXXRWUaGUfXX`]aT`OWY\]XYWRXVUXUdZY_[ZS\V\]WSTXWRP\U\TYQ_RRUUTXVX[SWQQTTWZ\V`_Xa_Wb_ZbUV_W[SZ\bVV\b\^V[N\TWVTWST[QW]YRYUOPVSWYSU]UVUaO]]\`SRVTXVZXP[ZO^Z[VUTVXjXXZSZYPWU`bY\X^[^bUU^T\XWWT^[OXVYZVW][]ZSWYXZWXa\WZVaQ\XT`ZVUQYW^UW`UZh_WVbaaPZZUUSWZWTXW`[YUXUVUX`\\XV^YYL_^VZXQU\_[b]X^YX]YV`XNP`V\R]aTXOWRUd_^XV^ZZYP^W]bZdUVXXXXUXNZ[WVKR`Z`]ZZNUXTd\RWTXZRWYXWWTO^[U[]T]Y`ZSW^VXUcZVT]Z]]W]i^X_XWSZ[VSVXaURS]_[]X]]YV[ZT\[ZW\W]aT_W]_b\WWSVL\[PQZWRY]PYWULgQUaSZ]_TYYQ]R^VaP\]aLWWQWWSZS[`ZYTXU]U]XYYZYcUVXY\]UbZ]VYUZ[RVSXUcbQdTU^YU[c[[W\UZZUbQcRXPY]^]Y^TY_Y[SUZRYVTX^YYXcZR_aV``VPUNUXV]\X\U_[]MW[^VVY\NXUVTYTi[^QQ[VW[][]^_SaSYS^SYXXUX]Z^YRSUXR[SWXW^X][a]SVO\PSU\V[ZZ_WYXY^V__T^W[[W[W^O\_TaRW`MUV]`Z\b]^`TSO^dXV[TRXX`U[Z]^UWa[S]XY]TYW[VVTU\XVW]NZX[ZYSYSj\\[`V]cX`TVW\U^UR[WaVVZXUX]YYYUW[dY]ccj^^bT\X^S^ZPSdW[T`Z\^V^RZXW[_Y`\[UZSZ\]S`\WWZSYQSZVXN[VZRa[PXT\XZcYW^e^][YZYQ[WTQ[Y`Z_PW]VWiURa[\Z^WXY]_[VXTQWZPca\V^SVjU]\Z]UVYXcXeMV^V\[Z\ZOUXQK^YcPRcc]VY[PI[^Ze\gXW`OMaSbON_Uh\P[WSUZTS[\caS_[]XSX\eMW\Q]QUP^YYYe[UgIV`STVX\[XY]Y[_W]UK[a_]V_\SU\VMP^cSgZYXcOOXY^]TTX]WTXZSP]`RS[QXVOTe]RZ[^_Q^i[ZYUUa[[[eVSbT^[Zi]\[`ZUWXXTPZfeW\Of`IZWXXSUTRX^ZVW\XY]^WRNQSWSZUV[WVPXSJaW[_bNRWVn\`Q]aPZbhUXWd^MaXXdRc[TXWV]hVWY\SW[[ZWW[fUgTTWWaZ[UM^W`bObXa\QZ\^UU[[Z]ZVeTTQbaPPbSWM^X^Y`_a_ZU`XTcXVXU[WaPWRX_`K]SXQN_UT[]XQU\][V^[gVrTRXLXZXV]XV`RV]NSV`YWOVQUaY\PR_^OgWY`M`VfTQXSV_VRT[Sd_QZ\WRa^VZRT]S^\X\`PVTTVVW`]`YSPSVVQVX^YVdaWcX`OZaS_[\YQ^_aUPWV_]VXZTci^RSXXdg`XRXZ\PQVU]ZSY[Y[YXVU\R\X[daY_YTSPR[VVYTXY]QURY[ZWXfW^]XSST\W^]S]XR]O\VWhWXYmc\`PX[^TYYXSX^[_\PVaaX[[UbTX\WORT\]]^\UTRV]ZaXLPUWQXYYT\YbZWY[XW`WU[\]\Wc[ZSUWYeR^hcXYT]URXVWcWlW^YOLWVJ]YSZWbW[X^YP[SZ_\XSTGPP\^\ZYXVf_bRYRRTT^cZf`SUX]Vk[PTT]UZZYZ[UaY[YQn[U`Ud\TTR]g_YWfWVNUVQaZUYRZ]\]PUY]a]ST`\P\W[Y^WW][\eQ_acUN`ZUSSbXUY^RSQYOQZ\Z^`X^^Y`W`a]]NZcVXUVNVhaURTk[MQ[RS[[c]YWR[^R`\XXi]^W\YTRec_^UVX\\\bWYROYS^VUW_IZaVU[VNWZg[QUZ`XWXX_SWYbQVTWQXXVW^WPYYW]WUeUW^WY[X_WYRV[NX]XP[TW_TTZ\ZWPUYRd^RWRZcWUbY[SV[WT[S^RcURXVOZOSZNST]VXh`XaVUWPacXdXUYWXbU[TVZ[SSVWQ`_UUU_YcW_YbRU\\_ST^YSZS_YXV\Q\\\[ZVRT]YVWbR\WT[_\\cb\\\g\^aXYXR]^SL_WWT\`_TJW\`QXVZMOP[b\f]`]UQJQfZJR^\S]cUZU_SUWZWUWnWSWbVWVh^ZNZOZUQP]gbZSSRTY[URYYY_YH[LOVS^YW[RYM[[QV]TVYW^\RG]bTN\YX_[YSddU]Q`cWbT`ZW^R`aYZdZ]]XSYVVVYLR\_hV\ZRWW\]XXYW]WU\[[^[RUSU]LLVYWX[c\ULf[UW^Z\\WX^_^Yc^_UNWUZXRdi`^ZjU[WTVWRaS[XW^V^O]WJ]UXSaSRbXR^YUdeQlV\TT`^^ZhX]UZ^]SY`WMPaTf]\RM_X_Z]WigZZYYg[YOS^RbPRWfYOTV]cbSWXXRZTbSQV^XWWYik_]OdYZR`WZXPVX^[VX\bYSWgbX`]ZNW^[[LTPWY[HTNIb^LO\USZ\T]WORJ[_ZddbVS]YYT]W]YLgVZ[WKW_RUcZZLXH_ZPTK\_U[fNXVOUWPUQOYab`]TXYTK\T_Z]UUZM[\Y][SaYVZNY_YLgZYWUXZRQZa\WV]\YVh[WM^SdXWa\WWVLS\WTYVWO\VZX[ZTWZP[^WMXaaPdSR]YYgXaVSTW]aQ[hVVbWTYfaRNSZVPQ`SO^ZUV]_\c^^^_\UUZ`\WXUV^]R]^c^[F\aZTYYTeW\UVYYbJ^SXM\Y[XP[VVZ_[XQZ[N`ce`VcSS[^VR[WUSWY\J^TWV`X^[X[PUW\YaVSGXUPO_QRPZc]O[YV^WQVP[NNPUW]P]_PRQccZYOSYVPMW]RWRNKY[aLY_\PYObUX]QSVURYZ]\R`XbWPFXj]]L_]XXYRPWMYZQMT]JP`d_WSRNSUMNQYL]cY\WN\S[RaVWMURRZRRYVLa^VRb[^W]TRRGKDTL_`PN`OQZRUYOQWFTXO`UXNSZZ[WY\LYNQZSTW^ZcVQZ^ZRVaPPSQWUM[SROKNTXVVK\Zf`RQ^YZJQZZXXUUQXTT^d^\VU]RVLgYU\[YbT[MZY\JRWaY\ZJ\^RWZQaYSS`S^\X_RZQJ]\ZJOcPZSYRLIPOFYWX\RMWVS[J]ZWaZJRR\PSSWFXbQSXSLNLHX][RgcOTZ\MWPaWS\dS]I]]J_\_PRTNQWX[]`[UTUWebeWVTWObRYYQKT^STP]VNOVVS[WXUXV]UYHYUXUTd`X_T[^Y\\UY^T^[]RWVVY[UYZSQQYNUWGXWTdY`WO]V]_VVTW_\XYWIbX]RY]TTTRRUZS[SWZLRbUJW`[[T\RQ\b\\H\VX[T[]RZ_[X]WTZ`WVTUX\WQSJ^TbWTTeUTX`P^RNhb`Z\XZ_O[TXShX]`OhZcU\VW]XTSe\OZ[iYM\[QVXehY]bVYP\RcU[^OWTfT_[QZWX_[TZVTYV\\YWU[`_UYY[R_PYaXQ^ZdNb]YV_XMXR^X_Reb^\ZTUWXUTVY[Z]SY]ZU_\\TdS_VXPLOXJX_SW[VTaMVXW`YKVa]YdMT\WYYSQgPXO`YX\PZYZTT[T\iYTZQfZSaVYVSZa[TbdQ^QTTSZQ`WVV\`VXa]ZY\WSXRPiTWM]PVQOYaYQ\Z`Y^WNY\SUkQUXQ\aRfXS\ZQhSTUTRRPW]UQPUXUSOWY\[abbbZOZXWZaVY\cWK^WT_XTMS^WZSXaeUP\V]WUa\bYVXTb^[XZRY^LNjXXU]^U\VSdXaVa`\_kVi_\TX[WXWa`WT^RXQUZLW[Y[[S]^``QcfRZZMPS[ZZbVYWUSS^TVKdPNZQ[cTXW_[bT[[gaUVRfZiTWUdSgTR]TZMMVUZUNOX\^\\TaUf]S`n\^T\Z[^Ya`P^fZ\^TUPTT^V`LZNW][P`RXXh_Q^TSSYU`T][[TP[VTVYcY]XfQ[YN\]\[[XTVMTaZaO\M[[TbUOUZaXbUUPW[UPSLXgTXT[`TXTSO\[[YSaZW_XX]IQaOQc`X[P_]b_T`JYZUY[`SOdgPW[W\\SR^X^Z_T\V[\bR\_V`[^[iTU[RU_ZZ]XR`Z^TSZSYSZMTf]^XSL`QdXXabU\NSYMMP[^bWXL\P^La[Q]M`[WPSO\_ZT[Mfd[VetUY[g`TW^kS`^R]J[ZU_\]TTVU[\XUQ^ZVd`WVXKYZYWZ^TY\UjcYgHXYY`_Z[U_SSTT\U_VWX__PRUS^TYTaJ_UUST]hVSXcbU\D]Q`]`\TTeTSZ^TRQcYZZO]qcT]VLKYYYa^\ZVRU^YTW`[UY]STVSGQPZQOcWeRWRX\UIUYd_\WE`WUYZ\Tf`IaQW\RPTb[STYWU\YR\U^UN^W[\^TVXbM`WVZVY[]a^SPbTSXdOa]VPUbV^_X]Sa\ZZWcbd\[g[RTSbNSQSUW\T\TS`TT[ZT^`ZVURZW^kT\TOO\V[WNXR\S\RVZU\[^Z``OZ\XYX^MYeY\ZWaJXWQUYYMcV\UUW^QKS[VVXQ^WGc_S]OUW^WW_UM]dX\UWRVZVRTa\k]I]QQZj]ZWYVTcPYZUXV\\aZQYU[\WT`b_XWXQ^Yc\X[TNVf]NVXc]YUPUUY]ZcUSV_sb\VW^NRdcSWjSZWbV^^TZ_WW[_Th]^Y[XSXa\cQm]]NYXTRYdU^aVRV_Q\fU]WMY_N\QRYgV[XZc[dYe``ZTW][VM[]]^SaXbT^U[UY]a_MZZSb\QZ`O]TYVX[USUTY\[N[UQWYY^]YX[XRX_NWX`WZXeZ_Y`TT\aY_XVOYZWUVPS_OdY^_^c]dZW_TXZY\b^T_aRT]]\\`lRTXZ`]XRSRWVR_WR]X_MdXRU][_RSYRRVYT[]ST[_X\W^TUV`UW\S^\kYWVXMTJ\]PeQ^TU\lNb^SN`WWW`U`[[bc]N]X\aTaSWT\V_\]VXS``OZWG`VYVbbWgVYXP`_RYXY^UTY]W\`U^_a]XU\Y[f]Xa]NX`Z\LX\]aSaML]b][[bdXS`[]WmOSYVcYaf\cRX`VTYXUTSXRY[Y_TVUQVZPPVTS[T[cYa^Wi`Y[XXaU_e\^UZ^wYL]Wb_SYZXP]a^]XTaZ[_UdXa`]YVUZ_SNXVP_USRZVY_TSQO_f_ZWU\\[_SRRVaWSZL\]WX[dZsVYWSdQ\b\_ZTT[VJRK`bVWY[bdY`YZ^U[RPR[YRa[bWZWZ\QY[NU\SUY]SRPVZW[[_VZUPRaVTX\\^`X^YKeWX_UTWZbWb\PT]RT[Z\LR^^LUWa]^USX^X]ZPcb\Z]XT[\_Z`ZiR^XR]\UWMYWgXYX\`X[O[PQV]YSYVgTZY_]P`V\Q`\Z\UWb\VOWS\XbTRY[gRUT`U[`XP\U[XGIL^Q_X^_ZXYZX\[_YR`OU\^VUXYTVW\YW[YXaY]]YYXUTXRVR]Z[RUOaaWXWW_LQ][ZTUPYYWS[[QaV[Qb^T[QaOR]QXZQUXL^QUW\`QZWXY\TXT^a\T^WQeSRYX]`dSSS\UbTXSRUTV[R\[\ZUZOW]Y^]T}ZYRgY`U^SXVRQX`YYRZW`^bTVXZX[PN\bXVN]XRYS\^Ra\WS^TRSUYRRPdUYUa]R\_PbU]XMMRZXg]]a^]eNbZQMP[XZXWMQQeUWQQcW]ZaZVS[Y\W]N_[[V[QQb]SZTRPXTVaX[\WYahaLb^\Y^UaU[STcQ]U[[ZXW`_YRVYY[[Vb`dW[W`Y[RVTMcZWM^X\^X\_\[OU\aaZZZW[WY\\aVTNYeVaRRcRY\YTT_SY[TZ\SNY\[ZMWU_\XPRUWTYWZZ^YXbk]QZ\NZV[aU^UZUYcc`TZU\VW`QV\eVRcW[X[fWgYPYTSU_XRaYaLX[VW[V[b\Y[Y[VRaTXV\UTYZ`TSe]ZV_YUSXXXeRQ\VVXNZO]WX]bXbR\^PdXXXcVXWW]`XU\WNNTUQRR[]^WcVXZ`Y\]VcSTUQRW^Za`]ZQP]U][T\ZXYZXRYVS]UX^ZPYfV]V]V^[YRNZT`T[`Z]WZ\]Z^ZZ^\WYRVZ^UZSXbZT\`Za^V[VYW[ZWUX]S^cMVX\VSZUNZ_a\TV\YXWXMSWTYWYZSWQTW\V[^XZNPP\`XPSN\U[ZdVXSVRbWYU\TaZ]R[SSM[TRXVWWZSaXV_ZiY\ZMX_SQX``YYZbXhQ_aZV[V^QUZjk]eVZP`XX]SWZM[ZdWQ[ZJaUPXZWWS^[]XRS[U\V^YQNSQU_U`XY`Z]W_WW[S^OZVRRP][T[LYW[[UYc^RSVM^P_UU\Te^JUVa^T\]Q\\[Y[[R\XaQgVVUYX\RbUVT^XNSVg\WZRQWkdZTX_aZVSTY`Y\WWOV_VYS[ZZa\`Y]WMR`YZYZ[WYVUUQ_adPVSZ^_^V^\W`LW[cZSVWYR^U\`[XXZS[YOZ`\ZTcS\[``P][]YWN[[][_X[VXYTZ\`Z\\U][W]\bYXX__WU`PZHSPWQZWZTdcXTQU\YU]YjTUai[\VYTXV]UST[YXY^[Z_^RaUVWWXTOTV\ZRQm]P]X]WU^PR]]Y\_`cJ_VWgMM_\WPO^ZQUPeXYm`I_agNVbZZ^NaVRZXQeMfVeUPUQQXfZNZaP\S[_[aR[R\XaTXQZRUSiZPhUWOWS]Pdc_[SSX][S\OhO^UYRZeZUUYSZZ\Xci`W\X^SVc^aaRSQV]YUTO]XZXS_^RS\]WNSV_U\WT`OPZZSQOWZRePeTaWbTTWVSPQWXWZY`kV_WWQJQQdXZ`w_][a_`YU`]YLbibXcc[W_UHI_\U^cSMb_NYc[LXVWX^[[^cOSQQI]WV`P\TSQ]W]X_ZVZXeTWYR[VOW^SPNX]`WVYTPY]YVWXX_WUOZT\WTWS_WSSQTLi[NhVYQYLZZS[_W_PcTUPT[eZSV_ZMLdQ`XVPL\MRT\cXP_YOYQXOXZT`]X\YbSZ[YVWVU]_NYOWZ^eZU[XYVU[WPZX]VZa`X[\aW`Tb^[RP\YVQUS\\O^\Z]YT^TTSU^R^S^T]X[[^g[eV]S]RUiZ_XWT]U^]Y[Y^R^Z[[YOQUQcWYKWdT]WRO^`ZWQXV[VSj\T[ZU]UX`SXWYT]WQ]`YUO]Q[VZQVOW]aYi[OU\W]ZZWR^\JUYc\VU^\e\`[TVY_P\YUOWUUR]V\_aWVO^[ZV\XXhWOaTX[TgRQXOZQOaYTVT_McUTYWU_YUWcVb^QY\SROZaV\YUQ_VXYWWUiW^]]TY\_dXU^Z^W[RXST^[_`XX`k[SW^HXRVXV^[TYSWVZ`^XX[WR`ZYa_f[UQOZ]ZTR[\YZPVXTU]XV[UQS][cZTVNcWSXONXb`SSRS^SXZLcY\MTWVVdV]UYgZT\TQ]WRT[XT\QPWU[ZdZ^\e\XY]\YU[]OYVXQS[]`VZU`VTfXd\U]ZTNcVZTYbRV\_OPUaTaYPWYhVT^Q]^S^WW[WZZYd[SQ^`YQXT`\aYlWU\Z]aWY]\O[[U\ZWWcVSR^ZT]QbVRYWaXUTU\gQ[aUU\R[UZZXM[_R_VYXUVUeS]\[b[OW]SRPjVZVJ^]STZYSYP]TU\e]YaVU\__iVSSTXVY]VbXX^STZ^Q\eVX\UkVVcQVVSJcVJRX[]TZ[QXgZJRYa^YQUQZ\Td[T^[QOTT`_VcPNWXW\Y]Y[V[X[VWkOR_WV[\a^LYQRJX\W\ZS^Z\LXY`RVY[`Y^ZOkW_KbVY\[iYOXeZOdZ[X^U[URZYd]YVX[W\cQ[c`SSW``\^jR[]RYYRM^[X_ZV`i[Zc]Tc]_b`UWWXX[S`ZaUT[aX^Q[`bYUMa_VSXWZQQYVQ]VhOSQXUXVYeYWb[VYT]T]YbY_IKMT_UW[UIhZSTPb\UZUXWUXW^]V[[]IbYOaV[[]YtbY`XXYV\[ZRTSKW^YXZVYRacUVTVRS\Y^NRZRXWVTWUZLVW[SZLZ[ab\`VRW^cQbV^P^QaOYYRQ^UQRWRV\[WYX_WYV[b^_W`\bVcVVaW\RZY\VLc[SUNVeZUZVQeY[ZTP[U`XUP^RW[[UUXP`Z]V\aITRPZZPYVTKQWe]VST_^Y[R`UO[VW\N^RXVUZ]RZW]\Sd\^[ZUVQNZ[ZaRWTV_X]h]_M]]QTYZZ^dWZ^]PTO_G_USU\_NUT]XlRX^SaV]_eTQU`S[TV`QVjZU]Uf]hUTK\_ZXZ[jXWa\QaS[^XYXX[Wj]SdKeXLWZaXRb[PPS]SX[XKV^Yc]XVT\d^_c\PZV[^IZYZRcZ]PYQXV^ZSGV]gPamd]PRNTScTX\XfcY`ORW^\`YNg]P`T\WVZUfabWVaTXGV^XZ]hWh^XhYY`RXNTXXYPb[J]V[`T^Z_^\]JS]US[\Q_`\VYWdT]VU\[b^T`YW\UZ`QTW\WZ[_UTTa^]VbXTUe^]ab_U[RWTOUZYd_bR]Z]SVTYJWX_YUZbeZR\_WWSMUW\T^^TYUV_O[`^]K]^`]Z_`XYZUUYZ^YUXVVWWffdWXE__QW_RQTW]XUiXTYPWS[]QRXXTSTRYYNORZVX^NQ\YQ[W[T^hUUXXY[\WOWNOZU``RgVPSQUS_YUUYJTVY^PWXVYL[XRPSWU\T[Q`[\Xba`^\WS^V_bOXZ]Y`ZU]X\U`UQUd^YTP[VW]YU[aQVZ\]QS[W]^^]NVRU[YUYWVON[RUlVTVWY^b_[ZXTS\YcYZ]\YTTM`XZbZhcVTW^YRR\UNYZ]\[bPTMTUYaYVVQaS\`\TZU`]c[Y^`Y`]VVVZT[b[Y[WTY\WYYX[`U]`WXSWXSYMcTTUX`VY^X_OXTXWagYcgXQR\b[SRP^_\_aZ[O]^SVPUUSYfTS[bRWZkN\LX[Y]Q^ZR_`^bYm\^YW`XQkWQRYK^Ri`YOXZS\QnJSaZUk]T_Z[`ZVV_S[YZP]N]bWSZW`VX]TYJ_MNXZ\XPgYUX^NfT]X\W`kX\]ZX[J_[YXZSXZP\Y[aVWTcU_bSUVUWZYPdgUVZ]\a]`YMbbg_YUWWS\XZ_V\c\c\YWUWRZR^Z_d[YWPY\[[R^Z[\Sg^LU[^`UcXfZYTW]O^`W_Ub`PT[]Va]lVQVS_TS^X^UZ`Xc^V^VQZbUZVoYW\\Wa[]XqSf\VUQY\]]RVSWVTS\[U^aYcR`ZWUXOQLP[^Tc^TXYYXQgUbV`V]SdX_[[fYW_NYXJQUWVUY]YWVZ]\WiX]SMXW`^ZSV`TQXON[e]UXY^]RWUXa_RXkSXPZa\WYY][UXZVWZXbW]SVfUK]OTR\MY[XXaXJdXYRa[^ac[_\`ZZ\aHS]STVXOd\TWXYVg\OZRR\][XlSY[VYO[WZRTZgPVV[ZZVa^X[a\fZTZd_YScWe\V^[TZWUUdbQXW\`_ZQZYS_[]RP[QSZT]]YQRXmSYT\Y[U[VTcVYa\P\\R]aUY\TdOZ\Ofd\^oYYVWjV[][VV^UYNXTQYT^OS[ZVZ[WZZUTUV[\T\S^b_c[SVPZUSb^[XWWRZZecRYPTcY^NW\bUNUTW`^YSXb\^XXWbWhUS[U\[\XT]iVTZS]TcU\Y`[\fT][QYVSXkZ^`g_]`bZ\][Y`UUSaRXOVVW^_VXXX^[mV[^TZZ`XWR[cVP[TVU``_d_^XcXWUW]XbZVegTU_PX[`S[[_\U[ga]\Y^QXYZ]aRgSYWYW\S]PSeSWcbXQOg]WTVRdZZMVWcYXjP_]^ZRY\YVQ[YVTVq^VT]aZRVNVXWXTXYbUTUc\PXTWX[cZ^WR\W_XSW[][aQ^[_XYI[Y\eTY^Q[VU[Y^S\VZU\G[[TOR]PWfXWWZ^YX\P\jXTcbWR[XTUQgRQ[VRTcRW_^VYbbO`TWPS]aWTPNRWWdVQMVi_Yc__fYZ_ZY[^UWa^XU]M`aZTSUVag\[UVMRRbW_[WSRT^b^UZ]XLZcXS]VNW\`][P\P[YW_VQX_Y[_S[^XS`V^P[T]cYXX^SSX\`YSVWTZX^\`V]e[]ZY^S[^STZVUYTX`Rb_kT[Q[PTXX^VUZTR`b^Yk`Y^_`XU^YXV`]YSa][`YHZbNW^`YNZQjZXRV\W]_TX^a^^`WXb\YbPXU]YWTY_VWbR\ZUWSYTZM]PR\]NTX``V`TQaTO]ZT[TL^TPPX\\ST]TNZUZ^R`PSTZWKWWc_L[R[UUZYaLXVQN\U\VYWZVWV[[Y\V^\cZ]Y[UZV]eZ\X`RWVdR]\^cYWR]ZZ`VYU]YZ^\]SWT\ZRYZbW\cMUTYXQV[\_\_UUTUU[__RbYVZQT]PQbSUVRVT`_`YeO[cXO_U\XaS]X[X[ZWUYWU\T^OXZ[W\USVZZ\YX_WU`U]__SYZQPSPVVaW_WZ\Y^^[WUX]VRX_\Zd[b^WYbe`_\WVPQYKKZ\^O\[\V\O_RWWZXQZZbVPXb^[[_TRWdWWX[WPUa[bXJUdZ[QfXOTc[VUfPXNTVYV_[\cR]XZ]^^a^\Q^c[SQ]VYVbYfN[cW\f]\d^YYZ[N[V`Xc^YV]SagS_RT]`XXZU\_]RIOT^WS^TNPVS^XKPV]XVUT\TXWT^`VZbS_We]f^`[WQfRa_K^Sc`\X\UYZR]Y]ZbVMNS\\[Yb]_QdW^eLWUaQ`d^W_Ve]_V\T_]_Z\XXZYcTc\]VXWRNZT^ZX`^_U^]XMNW[ZYYZZOVS\^ZaUS[rY\[M^P\TZ`OWJW[QYQ\ZYSWSe``bX\W[`WWU`ZWOV^VZS\T\^_U]TUNd^`^XibS^[VLTS[TZT[SYUaXW]NRVYSYQWVUTYVX]TUY]]V]WUa\Q]Y\_YXXV\RWT\a\^jVS_ULWRTW]^bS]P]_XL[TcY]OOYQ[OXW\P`Vc]d`ZTXZTS\SSUacU\V`_QhdY_[ZW`WQa[]VRWZTZZZVWTe[SSRUUb][OYMZYa[SVXUUc]YYVUVQ```TULVYV]V\WXXRPO\_]UXZZUXS]VU[T\K\\ZV\N[RaV[XX\\SS\YXZRGUY\VQ_^aSZWUSUYNcfZ\YUW`ZSQ\KXX_QVNVOcQSRTTdS`\[a^WV\Rb\SSZbZTUZS]_[V[`T^ieR_]YTXYiYWRaU^XOXN_\WW\ZSVLXSPQ[[SYcO]Q`]TYNVWOfY]`X^UTXVaZ_\VTO^YcWR^SVNZ[jRV\[QWW]^]ZZ]_Z[\TM\Y\W[V`_UZ[WXWe^X[[WRdWY\UPLm_V]\^YZMaYaW_pRRTO^ST]`]W[WQSW^Q[VXUK[Z^YZaUZYUU\TTTZ\P_b_b\Zd[VVN\fZ^UaW\XZY_M[SRUR]TZJYUQ\PVLRgM]VRV]`Y^YSVS]WWVQ\TSTQU[VZS]a`_[fSYOWXYX^R^TRYYY[QXSZ`XWU_WRW]d[Z[[TSTUU[UWQVNLN[U`mMSTdZcSV\^Z^RZQTggU[cTX]][`RXWRZRQYVZPXXaYZ^SX\ROSXZ]TcO[T]dSZSTVeW`U_KUVO_cWIc[TLV^YTY\YZZXf[P`]XYW\VfOYTWZXVR^_]ZYPXZdXTXTaVXOXX[OY[WX]VRSWUTdk[[M`UK`[R_`\QnYSl[ZV]R]UVWS[WZTiYX[Tb[\[^TWN\gZ^UNWZ]XSXRYW_Vi\XUTcW\UVXVYmYaVVOYZZ\Y\eOe_\YLU\cXV\N][SaW\^XUZV_W^WOPaZQ[gVi\UU^`IgeQ]S\YX\OT^``PSWd^QU^dYVO\`_^ePfcp]VW[XVcZWX^Teb]]XZ]]]Z`Z_`M[Ob[X^Xea_MNPH^T`akUXVcYZ[TYcLW_Y^N\^XVdKO`U\Z[fXXSZU[XUP^R_`R]\\cUXSaV^Y_`P``]RX`TbV_ZW\YieUTSc^]VP_fY\W^[K_XWSZY\X\TWi[]\X^NR_ZaX^VaRYUk^\WY[]Y`XV`TUab[fZ_TUUPX`^TW]b^]aXYW[Y^c\W[X^a\S\`TYcZaXUXRlTYQO^XP_WmQLbV[UVVYjac^SSYc]^[_ZZ_c[e]SYWTSZ[Z_a]X\^XZZb`cTYW``QPZ]XX^^I`]HZTPTMR_OU]QYac`PTee^UQW\XOP\M\a[V[XRHXO\^WQRPg`V_[WSLlZQYZ^[VTYcXSb][[]U\YYgbRVXYcn\U\XZV_bc\^VPi]aQdP[VMVORW[^bcOX]SVTk]V_TYZWZMWPaX[TRUV[[Z\ZViNVW`Z`XZbSMZ\Y^SYdZQ[]YQ[VaWWYWWSXUPiZYWa\XPQfR`^ZUYa]VZUZ\a[^]QPZNP]aJUO[f^a]NW[_`Vc[ZT_XIgY\dVb^\eRXOcW^]`OYTaWTVV\YXW]YWMSb]VQVTVYa[`XWfbU[XTWRQYVZUS^c`ZVTO]VXZPSVcW[e^^SOYdYGdfgaVPQTSW\VWaYU[UVS\P\aURTVgYS_bUPYTWNZXX\[bMIQX[ZZU\XOVYcV\fjOUTYZiPN]T^bW]WTSUXQ^aP]P[]RWYV]Y_][adU[Y\OYNVWaYXUXYTTK[]YUY]aZJWOXZgU_TcUT[^XWP_HVWVZQR_[OPQdgZTcPUgbTQeTPYXZXZSYYWbaYX[dZ_Y^bPWb[L^OX`_^X]\aWWcW]W\]LX_VWYRbafYXaSZOU^aXUZ]ZXL\Ya]MPTQ^X\bg[X\SRY`Ze_WWeTL`TcSW^SVT[QaYOYZXbU[SQ^MSS_ZXUViVTRZS[U^a[\R\]^X^c]\ZWfM_G_`TV^ZSWW^[^WYTQOS_`S[TUURY\X\^WVQV\PUQQ^^[WYVWa[X[[`P[R[W[U]XScaSea]QWSYY]]OZYWWNRWXWUS_XW^_L_[RX\UYVNhalUbUVQWYN^kM`OYWeVaR[K`SS_WVZXYWQPZQZ[SV_X[Z__\QXQQWYV^\[UcQT[Yd^bX^`Y]X_VYXQaUTQUfTYaXSbTV\XR\`n\hZXWRT][W\\aQZ^TT`STYYROQXP]ZW]]Qi[b_eQVXNSYYR[W\UQVXW`[]SY\]YWYQZVLXYZc`]WfXRQ\[YfTYbWc\Y\U^WaXgZY]VVM[YW^\Y_XYdTZWRZ\gc_]bY`]PV`S\_\aZZUVTSNZ^T`[SZWN[XaW]US`YSXPZ\_TZZT[^aZWR[^\Z\NQWZTZXW`^P^YZ\[X`UTQcV`ecRWP]\_WVO\YUNWT\dbV\Y\[V[dVWSWaX\XT_T\[P\jUPjW`a^_[g_W`VTYWIPcVaW\[OSa\^bTPYc_MSVZTT\XSbZWYbUZPVYTaWYbU_]QZWRZ[^Y[K\XW^U`PY\XiUXWYW[PRW[d]R\aWWcWYZ[ZXVVTYXUUaYQZPTTQY`[UV_X\US[O]b_[[URWSVTaacTi^TZUbXVP]_^WUYXTSV_WXWT[WU`cY]\X[QUZSX^\USVIWhbX[_Zc`[WO`W[]\TUUWV]Xf\YY^^baRbfT^TQ_M_`]XP\VUW^[^[XVObKTT[XS\WSZa\XY^k_XTYVR^ST[S`W_RTRPYaRZN^\S``aW[[UW_HQX`_NX\Xc^NP^RO[\aVQhTXZWZRLWU^PUdT^K_^VSVT]ZSeSU_\ReWYV[aV^[^UkT[XWYXZ[^`X\RXP^WbQ]PLQXYWVU\PZZZWK[_\P`]Yd[ZS`]VWIY^NT]_YXY_]\T^S[VY_Z_W\ZXL\\]]VQdRWU[]Tb]dR_PSPUQSWVP`XXZZVTUQXPYTRTV_WUWXR_SX`JZZV`ZY_\O\][ZYYbXQ[[YPPU`X\^[Y]YYcRVXP\_RV]WZ^`Z\ZK_VYU\U][[Y_X]Z^XT\ZWP[SX`iXb]eTYS[I^Q\\ZbT_]W_]_Z^TUZXYRaZU\][Scc`\PYX]ZVZUX]QST`ZZ_b[Vc^R\Oc[]UYM]^W^SKRXTVV[^RMab``U]W^`QZSV[ZTV\VcYQXS]WZ_TSWVTPH_\QYUW\V_VV\`V[UYVbYU]Sa^]ZgG[[fZX^U[\RZUVXW_gcXX\QgUY^RPRWMSV[hWLXg`LPR^QNY\d[[X^X]e^i`de]Sf]WQNfTLXeLqYS]WUTTVXSIXjS?]Ue[LbOY__R[^_[_RTEN`X^REOfN]Wl]P@QV^FZYVT\G^ZQb\V\_IaWZ`c^bbZX]cQRZT\PZ^^I]UVY\WZdZd^W^ZZDbVYU[[W\ZS_\ag]Q_WRGWIj[JPRQa\R[RVPVaV\PTTZP]ZO\P\MWYSgeYa`\WWRcaXQO]W`Yf^M[\RY]ZWO]TaXW_UgpT^LXTOP`\TD[a\UT[_QYTMXLhq\bY[mdNfTK_aWNVYVUXIPToSVc]eJX]YZaYmSQK``ZTZTSaQP]W[O`TNU_[LUbERUOSTSQ]P^\^F_gVVYY[\\UY``ZV\ZTsbWQXM_SaZZUfYeNZSYb^``VVW^Tk]YVNR[XOckR_]dRZZS`WbUSTUJX]I[[TQ_dWtWjVTfNbUMXVJa]a`XbZN[XJVTaRM][iUd[PQOP[``S^`YZPU\TSRYnWUeYW]ZWWZ\W\YURS__ZTU]ZRVTQWUZZN[RXZh]]]]k]L^`RS[\j\\WU[S[V\\_YYdV_[V]Z]VTTTVhZT]Z\cTUZUZXZMUZVS`R\YXYZ]W^XYZXMUIXY\QZXW]\ZVXWVUWVURUYPU\[ZYbUX]cQUY\X^UYQ[[SYP[TTT_RT_I[aW\TO[V]]^ONXXRU[Y`Y^VQWgV\Uf^OUP[Z[c[SU]\QZWW\PYU[a^P[a\WZcSRSXZWKU\aT[VWYXXS`XW^]QM^bXUXS[O]UTYJT]SSZ_UXXX]c[X\QdVTUcW\UNW`\XYWYV\WX`WW\UV_^[\NQYOb[\T]X\ZXZaZXTZVGTSZeZY]Zd\T\fUXPZVXW\UaVfQXV[ZY[Wa[\Q_XYZXNWYY]R]ZaUYT\SYRWS`SUYTV^XS[VYYXVUNY^US]][]_TNYUaYW\Y^WbZS\Y]]U`VQVV]XS^cWTVTTW``T[]YV^X_I[b[M]UN`\_aUgSYTa^QSSY\Zeg\U`ZeNb]QNO[]XVTSVd^_IUYQSY\h^Vd\T[YRTVU[Zc\YRYXZZVZQOXSPeYZ\XVZ`cZcYW\[]VXhS]dbXURTUZ^b[YY\[M]RcRZWVSe`b[YSY[PTRRXSUUWUk^^_`]Ta[\ZWZ[POWY[M`WVZ^[MWZ^UT\_dZR[Q\`NZZY^_aQPVJYbgSPVKZXeY[XWXWXZXH[YW\W__XV_WZ`PZXYVSRZV_\jgVS]]TXY^abVe[bV]X[d[Vh[URZW\]Mb\\RgMY\`\cVP^ZNZUVVW`ZYaZJUWYaUfXSMZgS\[eWaY\WTSdMSbU^X^ZS\V\LUPVW]OVTVV``]e]U[^VZXO__`ZGRSVaZUYUR`XpM]SWVZRZU\W`[YTR_OSWZbV`\X\XQUTVeW`VYSXT\Y`^PN\WZZZRTUWOZXYPa`[XbY]SW]_db[^QZZRSUWX\TWdUU_aSPXeXeZUUTQVZXb^]PTZYP`YTPaZ][SYbV^Q__]WWWRVZ]VZW\[^RY\ZW[JSWXW[^RWSTT[\[ZQ_Y\TUV_UPZSV^RU\TXWZY]YTV][PZYPSZ[WYUUPYTWV^^XVW_WNVWW[\RNUYYWZRdRVXYU`R[TkS_VY[\S^^aaZ_\YSfMVWSWQZ\Xc`\ZaY^XkXRdVWVXTQTa_S\WTUOYXYYYRgYUeY\]\f[UNWV]Ym_e]]RZXTVZ`YYjcWjUWR\^\h^S\]SZOZQVZ^UVWX`_T\[YGN\UZRT_\[b^Z[YO`a[\\jVRXaYReVZaY[[UR]TUVVYI^LY\^T[YPV]YXT[[XU_[`b`TV_WZWV`XaOUXLU^V\^XUYaZWV\[TPNmb__ZP[dRX[L`Z]T`R[XYPVhQV`a[Zcbc`KR[RUZVYN]\XiSW[QV`XTYXPUe[YSSGZY\U[cQTUZM[_VUSOcS^_SUYNW[SZZQ]W[Xa\UbSLTa[_f]Y^]SLWR_X[XUi[^PSZSk\XQc_YSY_c][XW\R[\Tb[VUX`Y[[[TZ\a_ZXRWXSRXYNZYab^Y]WU_T_aVZR_R[X^WO^XXZ^bY\[_\\a_VbVQ][aa\^f\Sf[^UY^`TYYW\RUZ\PbVaW[ZgU]`Y]VZj]bX[bYYYJW_VPW^TUS_YPcY\]_ZY`\^b`cYZ_[VTQbQ`JXQaTXS^^[XP_\YQ\]X[baUdRfU][NYNZYOU_\``Z]\]Qg[[XaTWT_XLZV[Y`\YZXY\OU`XZ`X\XaZSW]^Y^\Y^QYYg_X]_YV]cT]fXUXWUb_X]ZWQY\cXS\VR`ZXSTTSNULX\Y`V_]STOY^aWU\HVXTRYcYYYTd_]X_XU\lU`bVUVidY\W[Z_ZYM_YNZTUXaQ[TVZ[[QW]Y`[`[[^Y`[X]W[`]OH^X`XW\X[UNYYWWU`Jf\[I]U\YK_RYH^W^bXZ[\`Qc]bR]VPa_UVY[YVg__Y`VMUYX\cXXUNS`NW_ZjPU]RUX`W_TP_aYR[e[OV\[NTV`ZQQN^WL\RdR[]S_[VWVaSYXYUeVTXUuSL]Yk\]cUcV[dc_b][Q^ZeRdX\]X_T[mSUY]ZeY[LVTaZZVXVV[PRYXZVVQcXUbaTWcVZQ]SVRdiFYaWcdTUTW]UQYcXQ`RJW^[ZVWYWbRVU[j]ZUZc`\b`Z\]cSXcYaWUVVQSWOWU\`T[OWVcUQ\RKY\]eSOXcWba]\`LUY_hYXT`UOSX]\\__ZRb^W\Y[ZSS^Y^HW\LZa]_\[`^V\]Z\QNO_WRFSNi[Y]^QXYT_MZNUYaXY^QZVjZXS\aUX`UX\aSN_UKXR]]X`T[T`d@a]TZ]V\^WaRXR\VVTQW_\^aYZ[V_[RZTTY]TXXXWeX[T[SbWO]YVRcg[[[W]SVX]ZTSUUULU_]UaYVWRRXaRX\ZXYWPVY`^PZO\SY[YWYW_YW\^WX]TU]T_f]Sc[ZZWYZZQ\_\dV[\^[SVL_cRbQa]TXSZ[T\TUYTXTW]^OSSdYVYbTaVhLdZRYSY[WSPeUNf_XaWWaO][Z^OZUKPMSSZUVZP\UaR[X\d^XQ`\]ZX]^YVR]MU[YT`Y^YYW_dQVW[S[`Z[_^WWT\]VYcXVPYVZ[R\WYWWXb[We^bVaVXKQ[VW_XZZT]UUYXZXX^VUZN[ZVa\XX[N]^VR[\\[WXQ]cWXWZPYVV^]OXa]Zbi\JZZ`S[TZPfU\V_\WWRZTZX\\Z^ZQXgT[ZY^^PNNeY_kXKb][d\XW\[dSh_[TUW^YV`RUX_QZ]YZX_YR[U\RTXVUaXhWXbYTJXXkX]XXSW[Y[XQ_X\gbWRXZ[X\]XR\Rab`\\XU]YUUSWX[KY\U\\UN[ebQRM\WPfWYSTUYZOS\_XXZ_XQ^b`W_V][eUZeR_TQVX`_cXZZ\R_]YcRV[e_e[PZ`T[QU\\]\`YVfRNX]_]bYY_RUZ^`\[^]\HXWQUU`YUUaYeYVaX^^WU^VdaVT[cd\WXSZbU[XcYT^ZW\][U^\[_U]^_XS]\V_UXWR^`M^`XY`^SY\QM[\VSY[SXWYZXVLZTjSY]W[W]ZbV[^cdZ_QcWYRVWSYVYUUSYYN[UX\UXURR\[WQ_RZR^^a[aX]TVW[XWXZ[_U^MWf_\dWW`W]PQSP\OYU^Ub^UX]VTc_QVa\V\YZ`U]OS]][aVi`_UH^][ZS\QTaVeS[[PYNU\R\VXX]ZSVWc\SQa[TYVX^]T[^S[VTSVYP[W^NXaa]YW]NMSdTQTU`MVZbVXYdWQQc\QbXVWUZfW[YWO[RUWW\\WV[USN]VWQUNbW`Y_[W\]URckSUabXPeEU[P_RRg\R`ZcXcRdXTZZYi`Z\TUTVXZRcaO\ZYY[RQX`kXJ`YcTYY^YlUOeTV^[P]STO\ZSQTSTXbUXg\Y\id`]_To\_i]ZYWOTdPZZSTTT`OVPUaVQSUOOTR[h`VZ\X^XgTNMaP`_bbXQTaabRLVd`X`UbQ`OULb^MZcY^UUVYQaUZX]^T]TR[UgTY^aQbTSWN_RW\]NVPS_aRZbUb`beZP_TWXS\O]^_ZX[[h`^JR\^]\YYRbV]YT^U[Sai[ekU_X[MY\ZW^TVT[WKUWe^Vg\TgU^VX^\SOYVLUbNWOXZdcV\NVE\Wa\TJeWUhSWR]kS]eV^VdORbUfdT\YjWWb[\a]TUcVZ]Ya_\]]PXZXRWXYVMWT]`[WYZZdQ[TUW_WcUZ^_YY_YeYVXVLVXS]PYWQOYQWbf^TaVY\[WYZR]]PaGTZbQR]ZYUXMY]V[XLRd[Yb`]bbM[OYNQ\S[Y\MIEYRYET^[]XMYfOUaN[]SV\WVUqOVQWT`PVhQM\mOCMaQr]_[UcVhRRbW^TU]fMYW\b\T^YU]XPZQa]RP[[KU_ZiX\fRX\RPi_Uh]\Z]]ZOaO[LW]bT\HRhIS^WT\]Q[_VDRZ]VPTMeaO]ZZZ]ehNLSZZVZ]XdQXXVaS^TQLTbcNPOPbW_XcUYZRXWV]`bcZa]VSXdY^XVQRS^V[PwRYaJOX[T[UVN_^]XRZ|eS[X^XTbdQNp^MU_Q[jTR[c\SGW^TR^V^N`XNQWaRSWZ[cTaY\[UXS]ZX\H]ULSXa]MXZ^^hUeR[pbS^V[]U[[iRXXbZSP`W^[SXPXX_Z\FWIQR[\eXYZNkXUX^X]O_XVZW_VQ_^J\V^V`TTNZ[SULVV[V_\NROgcHXYTaLTPP\R\RYbfV`Y[PZ]Z[VbWVV[hQgX\XbTd[`Y\[VUR[X\a^TRhda]MWUbm[eY^j\QWZWUU[eLMRWbYX[Q`PU[YYM^SUehadZWU_gYINXgU[_bY][U_SaTXWV\a_PeYOYUO\U_\SUYYV]W]MX]VQM]c^ePT[PbZV][[XURRQZ[YZS\YZZ[V_VMaSaUUYUIQPXLR[[YeQOUMVUXV[[^N^ZWX]VcR]aHYTNQSj`[V[Q\WVTQPa[cV_Y_XY\\oSaUUgt^KO][[gZX`TOXa_QSXXZgVY]e^Zb^_MeVe]RS`VPVWU\\QVdcaM_WVO\PZ_V`aVWa\XXY[Uf_WRMObTX[ZUa[mVVUZU`M`W^WNXXOjSRUZPV`UXbVQRZUcY_S[\WaV\fd[VWW_XVO`T_TUXZY]IZSdZXV\TU_W_XYaV\^Z\[[U\O^`U^WTTUPLWX]^[bhdYV^XPP\VWZZYUQU]UdIU_YWYYYVPUZ^VVZYTdaP\]SQZO_]cN`Zap_NT_`\TQQY`S``[ZMPT\hYVOXPaWXQWIdXP\ZXcSYUaXTWNJTKeUr_WR]^RZiY\Y]V\]iT\WV\S\VLV][[_YX\UU]YW_aXZZT[[\V_J[^WM_V]aaUX\YW\LoNRSZ^YbNX`YQSTSS[QQX[U][]g]\PTS]OaYYRf[P_\]UeVZR[WSZYUNPXW^\fV\a^MWVT[X\YYPZVWdUWO\RKQ\S]RQYZQUX]`XJePQSVGU[aZYZVV_TTU[UZ`\O\UVYUZP[X\XR`]Z_TR_XUP]QXSQ`iSM^OS^STU\[VF`\R_^U]Q[_^[aYWXWe`X]][VZYQVQJRPUaLY\Xc^XYTSO]VLT]S[_dVNaTRTWZi[WaVVZWbWbUTYQQRYcScVVP_PJ_]lUPU_TT\RQXTSOX]gWWT_\XPh_QX]T[eXQWWWSNJ^RZSYU\ZYagZTU\TYSJcY`W\KV]Z^QRWZZ\W[\ZXRUh[^_VVV_]\P]UhU_RSNWVW_OY\VVY^`X^WZVXY_N\IU_Z]XZ\TY_ZY\\[X]^]aTU\RZ[UYd\\eZT]_U\_[XY]^SLWSTbaP[ZS`RUUTSUUWSWUReOWV[XZYXTOS]QS^U^XYVSRYaXYWSU`TZV`V]WP`Y]_RXXPRYRYUYVY[[VXYU\I\]OY_TTc[VSU`[`h]S`ZZc`Oc^]YUMWZ\aaUY^XWV__PY[TaWT[b^X]^_YXSRX]UeVb\aR^YUTY]M][\YRXYX]\TYUVTZScOVX\]W^`N_VXSUU\\VXYQ^ZSMSRTS^R\cZUbYYOWR^`IVZ_UTQT^UZ`V[Xd\X`YZXUU`RWReWfZVWXVQ\_aPY]YUXe[WUX]ZXXW_KSV]aL\]YXe`\XZVNY`Z[RXO_PQV^T]b\XQZ]Z`fY_V\\XVRSVX_SR`VYe\YXX_[SUWWYSTlQX_[ZQWTT\\aWWIT[NY^W]^^RY[ZX[QYU_YWR[\WW^SRPeVW]_W_\UbX^aW_TYKTUa__ZX]Z`Y^\SQ[R`ZWP]PYXO]\S]MgN_Y]\XT[YX_[UXSVS`]\QVVVfYdT\QZRPW`[VWYf\`\SY_\aVX\gd]PR^[SeYW][ZUWePcPfR[XUVS`[b\VROPZVRTR_]^YZWXbWe`[RaWUVJ\RUV[SPX_RKVP]`d`_ZRVYLUZYQaS]YN[bYYYWh]WWVQZP^NTM_XLQYZb[PT\\Y]R\cUZ\Qn[gWXYTTXZ^UV[[UTSUOPVTVU`[WXX]WXU[M_R]\U[XQ[KWS[_Wag[K]fVSQVZU^aZKVYPVXZ^ZQ^[Y[]Q[ePY\W^]`d]X_UWTZXS][^VQTRZeYN^_Z[ZY^UT^W^WTWS^[`R\YX[[e_Qd]ZOVP_TXTYK]__]VWYZ`^YVZbW]X_\R[JaYRVYV\I\\U\OX\WZTa\aZXdZRV^WXZZ\V^]^^W[XSV^UV_[YXS\Y``MW[SVJRl[TXRO[bOSYUgY][RQOV\`YPT^[Ub_Z[YT^KQY[WXWcX\OV]WWT_]UWNZRSbTLVVQVc\cUa_XKVTNR]WSVZXRXZXW]Y[YQX`RP`]RQS\QMX\Uga_`RWWdWYQ]SXa\gO\W[XaS`QmPVRYZa\YZ\YWT^dWTSTWW[\[ZbYNZ[MTTU_VOX]ZY^WTXGVReVYSU]OU[\bS_]a]Q\k[V\[[QZaIbVXRUS^O_aaPRbQWV^W\V]cWZf_]UT^\OdX_VVU^c\Z]bVXX_[`Xba^YXXVYnaY[T\P__YXXUZ\VSa]OS_OV]VT\V]ZbXaYNPW[`RZ\MP_W^RPKWYY[aZYUSWUIYXMS\R]VT]\TPe^V`W^bbYVW_hVL^V]\WS\WTdW[dPTXXZbXY^MI^XXXQYTXNRY`\TZc]QT]Q]R\SXa_RJOMSUZY_XbdP\WPOP^\`T[QNRVVKXg[]Y^]a]ZXaY\\WZi\_dVT]]c\eX[_a`TQTaW`ZU[LM\YlXXROoTQU^UYJY^TWVUZVWWYVclYcS[STYUYPZW\UXUgbPP\KY^Z][YcZW\OU^UU`W^UO]Ye`QbSMfOb^ZSaTX[YYR]TKKWMVXJ_]iedUZ^YRU]XPYS[TeeS[WWd_]^YVYWZcYUXRaU][^]W^VVO[TUN]M[RXU\R`[]JU^YPYZZ[\WZ_WVLXVYVgUNWb[\aQ[eNWeXRXbT\NWVYPbU[OaYU\Ya^XY[UTUMOf]_\UcSZX\QUSY[Z[YYI[U^O]V\[VQ[SXTa[YQ\\XXLcS^lObSQUQUOgX^_YPWQYZi\N^YUZ[][][TmbRYRUZUXYW]YTgUYQa`ePXg[[XZU`[[Vb][WP_W]XRTcLbeSb\YR\_Q\X]SQPX\^UTZNedQJYa`cW[VYZ`TUYZS_`V]^YW_XMXVR]_V[N`VWUW^TVW]TTVYVYVVbY^X\[\[VV[a[YXZ`UN_WSX_V]SPSW[]eRQWZTY`XTPS^gY]S\cdRXVTT^T_^OWTVZ_^S[^[[^VYV[^WgULX\PWOa\VU`]XRTWS]aX\WQTZXUV[Q_Q\aPUbeW_PaZ[TNTgUU^NO\^^ZV\b^[NXQ[VTO]adQY[e^X\WZSRX[ZYZUQgY[TWX_Yf^][[PUWRaWdXZVYRW^[RY^RVgTRgYQQ\TYSh^XS_RScSYO_\]NkYRXV[WY[\XRYd]cRSUS\V^T]WaXec_^ZXiTUP[XPZUYRW]VbVW\fPJZWPUSdj\a\QX`ZWOYeZWRYYVZQ\WR^bXbMdU\XQQ_YSNRUcYfQXOSZXY_ZZWZW_\U]UV\VW]MSYWZW[VPRT]VcK[TUZ\`Z]WbhbSQdP[X[\PgTP[WTYWhUXU\aU\Z[SYU]MhPZbgMT]hYR`fSaTeU`ZYgeX]\_TZ^JYYb[ZaU[WKMSX[YTVX]X[^a_WV`bfWUbWWUcPVjP]TUYTYdicOnOTWJXkS_b[S[[ZUM]dUiVU[\[kmYUYX^VT\_WYORRTOOdPmYVWYMT_^^OVYXRVQa^VTfWRYQSfRgOb`]WR_lc_YU\XVbUS\VT_XS_^Q[d]XS`^_RZ\O[PZ`ZXPVRXO\YRWPPWX\^WOVQjcU_]SRWVY_N^YXQO_KXV]TXYUK^SOVY[_UiRS[]SSb[[VRU[a_bbhWXUObXUY\N{ZYV^UfV[gR]\\Z[hWaa\YXXfT`VYU[SW]^_PZ]^cV`WZ_UXZT\Xac[[O\[YVmaY\VTZ[[^db[XZdW]]U[\YQXW\Q\Z[WT]^VeYWbZbXZV[[bWVMZXVV\WXZ]YlW\TSgUVXRW]QVXZ\d^aWXX]]\`PdQZkQVZKWScP]cU]XXYTRY`VUV_XWeWVa^^]SgSTTaZVJQN\SYRK^`VOb\VQ[eYWS[aZ_RZXVZNPZSSQ[ZU_dYUTUZc[QaZT\Sd\TVXb[^Ta\PV]_\ZSX\O_`U^WXXZ[RVaZ^VX_[X^_\XSRZTY\`W\ZWXXPXR_`eXWPTc\ZV`WLYbTOWfXZUTb^`UL\_[ZWYc[]TVZYUUV]\gSZXTQVaVU]SeVW\[Q]S\QY_a\a[]_TZLU\_Xd\X\`TXTa]ZWUb\YY]^PfYYYV][bqYXTVXOO`Q_X\Yb[[VcWSTTYP[`Z[[Y^TXVW^d_\KZ^^X\_Y\YiVOWQUbUQbVSXZ_bPTZYQ]ZSNTaeTX`ZZZX_[YV[[MLYYS`[S[LWRQ_W__USMT[OMPUTYWUQN\_\ONWU]]b_[jZcVZ]]gaM^[^ZQU[^ZVRTUSo^VOV[RV\TYcEY_ZMZ_WV[Gh`gc][_[bQWcPj\XW`X[WV]Z]]LNSXSUQOZYRfZX_g`R``O_]V[dSVU]V`YbVWdZoXTYT_TWJ\YSgSbbY[[V]ZPbYNTN\OQV]XZ[V\NaR\`[`XTWWSLY\TRO]R\[WSXXTWXfYSW\XUZXTbYRMaWTRRVTUWcO\]RXXT]]^__l\TXTTa[WMX[e`URUUW\OZb_\ZWWZPe`\cS_[]]T^RcWVaRRa\\NWJ_SUTSOiU[UUX\VKVVU[UTP[Z`Pga[UVQXU^M^JZWR]VOLUVeeMZ\_ZQPQXPV^UTRNV^]ZX]XVfbWTXUReVd]UeYVUV`[Y\VW[UQYOYad\eZPYPLNV\WTN]U\VSXNVY\^Y`\Y`XdUabX[\SUZZOUTZP^^Z\OU[W^SZUZZ^W\ZZVYSW]TQKYSPZY]RRS[_QRYT\bV_[Y[]]Y[[Z\NV\XUWgYUU_WTeXZNXOXcXY]SSPTUX\`X[W^[[W`L\NWWWU^UVS^X\]XP][[TW\Q]P`^U[\P[Z]`XX\QS\\OS[]aZYP[R`ZVOZYV\\[a^ZZ\d\Q_V[TXZTYRV]QYRSUS^V_ZXYYUU_\T`Y`RWT^V\OUXRNW[cbH`SWXT\\V^SXJ`Y`TUc]ZXZ`]ZeUWK[^V\O^bWZe^\UP[_TVXW_XWg]UR`SSVZ`QWf\VPaZPbLX[`MPUVTIX_PRa_Z[_eWUP[Zf^OWW[W_bWX`VXYX^PWZV\X_Y[SQR`[ZS^TUUXST][U]_U[iYcdSQeYSVX^YWZTTO\gP\Ta^YN[VTQYWR[UaY`V`WaSUS[YMXZSXXUV`ZeUU^U]]VSTPdP^XKT[_^^V^^mS^ZZ[ga_UM\fgWZZZSPVWUXaZbQQiXXX\bUQXUSQTV]XQ_^cRV`NZfXYPYVU\V^OVd^\VXQcW]_NUQ`P\N^VdY^RZbYccWaSP_MXbSYMWb]YV]XTONTS^LRRe]YXVaTTZ]`YYh_W[RNcSSRRPMVYUcRVZJ^\]MfcYTPMVUV[]]RPPITYaUW\W\aQaWYU`XLV[^cWUX[]UXQSR[XYXXYPUci]OU`XTQ^[Y[]U]]aWW_XHV`aRWYW^\[T_\[QNSZ]URU^_^XPYOSY_VWQ^_YJYUVJn`]SSL\TX\VfZV]]eYYVa_]\TU\_ZU\RW\XZM[VXVU``SX^PP\Z]WU[Y^\^Re\ZVaVVUKX]S`YX[L_VV]W\RYTh`ONOeYV]WOX`]VXOYYWWcUXRQQ\Q[JQO`\\X]YNTbWQ[PS\ebR\YcfYQRdjS`\\daYSSRWZ[\\VVWTUcbZZUVTVV_PXVUVW_e_U\U[a`WV[]XYOS_a_dTYU[WZSZ]WWQ[Ub[]UXYVXaY`VdSU_ZUVZVXP[P`JVZ`aYRQ[h[NUUQYa[r[fkWZXXcQ]X[\WZTYT]ZO[b^R]PX^ZYTY`UVZSTfSaV]UYafZXVZ^UU^gW\^YRT\bRVUOZUX_RaNRcWTO\WT^VW^\bRTX\J[bG^S`PUYaRSTXXSQfc[XZ\\gWc`_XbWUVUZ\TbTZSSY]WYZ]S[RVUUMYUYiXWI][WV__\T[[VY]RN^U\XUX\`VNTXVTPbWY^`[YK[MO_TRSYWVaaZ[]V^Z]S_ObdY^UTZ]MZaU`XVRSQ]XX[^\WZTbQXPPTWXY[X`c]TXV\`O]VNXKTXRV^RKZXO\Q]WVLY[VUYS`N\TXS\^XMPYQbaTXXQgk]Y]V^cdJZSQNg[[[TS\TUVTWWYVNYT\ceVMbX[WXUXZWN^W]eZWZSTdOPTXVdX[OW^X\YVZW`NTVPZaYNZXSRT_^XX]SU[\V]SV\TZ[\h^_XRRXaVX\OMRg]SKSLX]UP[`VcYX\UcSS]XZRVXNX`LYVVYYV[aV]ZQ_W\aVTT_U\Lf`W\YTZ`T\RX]YX[_[]_SWQW_XTWZTSUXdZ[WZY`YQWWZfZVQPX\SYY`\XbWZVPQ][ZQeUZ`UUVT]]_^ZXbZYZXWYTVYZYW^X^aTUXcWh_ZR[UVVYYaYR\TSZ\aW[NSLWUQ[[SZXXKZVU[X[U^]ZVVSYac]ZUX]SeWZ][^QSZUWWYWdWSc]XTRTd\Xa_aPLRPRP_SNWZSYUZZ]QZUZ[Q`WgabZ]Y\XZjQURTYPURYXX`U^PbWYQdWU\\_XgZR`VWZUS[MNUSQUpbTQbc\[YY\VYM_SS`^\ZZY_[Y`S]OWYVY___ST[QV^XV`YeMR[]Y[TNVW[OZVUPXbVa\XXLWe]\WQT[f_Z]QfXUZ[PZUYXUbKZVQ[VRZVb]Ta\`X^MRK\aWV__[j`[ZVY\na^TOX\aVU^ZP[RRN[`VXZ^b]]WWSeVVZ\ZNi[UV`Z]V_TWg`Wc^aXcc[TPTae`SYZWSXXfU_PY_ZebRUWX^^XSXSQ`NXSQUfSeaZYVX\Vm\l[QRR`^^MQW[\X]Y[b\__]\^]ZSVZTS]b^_XaXT^Y]]_RTVV]U_YO\_T\jT\WW`UZZXY\_W\VNaYZXeZVaW^^WdXdOT^VS^`N_cWYaRYQ]SPd_dVW]RcVUWUZXZU^eZVZMQYZ^_YWc`Y[[bR]`Q^Y^T`cZjR]UR_[Y[[QQcVY^VY]aWY]TUPRT^cSQaVZVR]gTbTYP`XZY]d\VXfWZOTPR_\W\YZRXfWTYYVZM`TR]\VXZQeS\^OWZdP^W^^\RM\\XgMaZXURYWR^ZVS`RSYnV^WVXaSOR[c^W]T][Y[TLTYeV__\YbaZ^]MZV]KY^SSNT`V[UabYZQSYa^[TS`ZXRRQWf[RXPQOUUURNeZTV_QXRWQQMSXW^W[[gaQZfaeYY\UXYcTbfbmK]`]gYFoeUTOZ[W]YeSaUV^O\ZRZZMO^WZOV^cf]M[_UaZOYTYU\JU_\UUcXUaOXYU\_RU[VS\X^WXRMdZZKYTY_VVUSTYSXXR^_\]T[\WUX^KYTWVVZNWdT[UTdhZVZ[bVWQjQVIlSbY]\NR[WUZT[RXWR[QeXUfUTQUV_\[ObNZIeU^OW[TNSX`][[VYbeRTVXUTV[UXKZR[M]\V]NXUFn^dU^YRUU^\VRH\YPVR^iVUPkRU\QWX\\TUdKX[]TbSaTXRUN[Y[^W]W_ORXXZYSQb_RSWXYQWSYVXVZbOG]SSOZZ\VQTT\S_[[XQX`WZ`SPWWZ__VMYQZYRTWaWQWVPR^fS]SZKUZUPVcYUb^_TeUZX_XQWP^ZW_QY]`T^ZYQW^V^[XYYUTYRMSdTUW_QOZSXX]PYOMKWQNSXT\SXWO[]Ve`PZYaS^[WP]aXS^YO\^POU_PSSQ_TZf_RfOYRVRSV^]R^_``TYYUU]WWPSVX`[XV^`VYWU``^KP]cZ]VZaXXU`WRfZPWQ\PZXTSZX[\[[XVTSYQQOYS[T]aU\TUaUX_WXZLWT[]Z^VST`]UX[TXYTN`Ta_[RQR\R^`b_c[YV]]NXNY`RLXbZG\UOUUSPReUMcWeZZ`^V]bW]^UVacYZYd\WXZbTXXaW[XU`YXMZOcVXX^f\_Wg_VZW__a\X_XbMZaV]RU\\\RWTbRR]SWPO_QL\S\YeVW[S]XU\SYKYQVRfVYSVSXZ]XVXUX^TiY\VR][`^TZ_cYWS[S][YW]WXVTNTWZ^`QUPSW`OUZU]^WYOTZS`VV`\[Y[T__QTa]]Z]ZYUHTZVUbXXZ^XQP[`^V]SW`Y^QZZ]^bWHN_W[PS[URTWSQTYZ[YaZUUV[[`Z[V^W[bZQT`OSTQPJS[YZVVUWTeV\[a^]U\\\YUWVVVTY][aZaQJTU_T_X_fX^fV\]U\\UZhbTZ]RWY\Z]b[VTXXcWZ`XVZV`X]ZSUO[WYV__[ZV_[X]V[[[VWWb\`a\RWUURbaP\c`WVUP[XaYTYUX\\XY_cUO\Z_[\MdReVYTOMScc^[[a_`R_\__YTbPb[TVQ][\T[YX^\[aZ\Vb`WZSRW^bN_U_XUb[Z\c]\dY[iZdLJM^XQOYYVW[S]`ZXPjRWYVX\\O`^YP_][\TaURbOZONNgQbSSUZZaVSOR^_Z[XZYVW[\QZYZdRYOU]JGWW\KaWMf[]Tc_VW`QRkX^UZWY\aNS]YX^YZQU\SZQQY^WSS[S\V]WeVWW][R_`ROYZX\]QTVX`[VWVYS]VTP[ZVZXV\^VY^SY`iX\VU]^b\R^SRPS[^YU[WRXU]^PRSXUXY^e]^ZMW\X_ZUZQ\MXdXIV\\]dYZSUUR_U^PWUV\OTaRWWdTXTMMTdbUYVQT]XOV_X_Y`VYW[L\TWYRLX[eQgaRONbV\\NSOh[TVQVSYYZY^T`R^\UkWY\Y[[Ua[]YU\YX[UcRP_Y_XZUb[`\S[S[We[\XQ[`^aVUZZUOWFUTXVRZgWQS[ZYWQXUX`ZUUUWe]USXTeZ`ZdVa^h^f^W[PXSYWQY[OX\Q]g[TRUUaWY[XZRP]]\VRTW^RXTSWV[X]UU`WWQV`b\lVTQYW_STW^PaZWJ[_^WUXR[P[U]WWcUbQQI`PVU[Y]O[I\YUdYSe\QT_`S^VXPI_^XUS\_SWN\aY`aUbYVSUZR\U\gZZTV\\MX_YVVLRZ]ZfzYa[PeUYQX[[YY[j_Tm^]X\W\XYN^e_VhNQ`OYPgfVZkLaUZYaPW\fLW^^Y\YPghX^b^VP]^Z_X^NX[X\_PVNT[TPTRgHS_[^e_KQXWb[YZ`^kUXYP`Zj^rcQ\LXTUW^fS__X^PRYXUUWW]][]WVUZd\V^MYXZXQSYbQVdeYa`TU]U_W[NTYVZ`[_PZXY]`]YSZVRXYY_dlePWTMjSY]bWY_SV^UbZTQTXVV\c\\^YZ[VYZPNOP]ZU_^UVdVaR\X_bSYWSgZTZ\TTTam^[]bY]UR[MYbV\[YZcX^WURYOT_eVX]^WTWfcTPVOWYcLORgg[dYZ`j^]QN[UYRNW`Ua_WYZXY]aVXS\QXZXc`T\[XQJW`RWZYSZWOZO^SK[\cYX^ZZ]Z\\bcWWYSVTS]c\V^S`LWUZY\XbZZRYUV]UXR^SY\S^QQ]TUXZ\Z\cVZbe\VVV\^]RXX^Xd^TV_^^OXSeTOJWRT^VM[UVYkXXSYYeTSP^RZ[Z[R`RQ\QQWX]X^RWSVVa[TZWYZUVYWTMOVQVZ`WZb`_ZXNWWX[[ZYVT[T\aYT]d_X_T_ZR[\[bPW`d[Y`[X[]SS\QR\XXV\hRZP[`ZPXOUWYZY\g_X\]Y[W`XQ\XQZ[NY^WeXUS[^X]YVSSQTVa\\YRUad^HW[ZU\RO[ZLdY]X]WZ`U`YYNSTSXaWQYX[S\_bZ\O\QYRTS^U^[lUWUVaUUQZZ_q\O`f_S\P`T`_`^[`[YTX[ZWWVU[_RVZW[R_SVX^aQW[VSU]VTXSV]XX[^_c[X]^X]WRXUYWWWUSY]XR`U\RXUYX_^WcYPbYT\iZabZYZ]ZS^NUY^`\UPY[UU^Z^[MP[PZObTN\TSRWdUYMcaRX[YeTMXQQU]Z_G\PPYc`XNWZgIUUVT]UWWTU[UT`Y^QUO[W_Ta^^]X]VRVfVSPXRZeZXYTafY[\VaS\SYYPdNX^XVZUZKS\WPeWUcU\WZV`[eVUUSK_P_RaU`]QX^[TSX][RXMUW^WV[gd]X_^XY[SWOJTRWcPQZSPVYX[SZXV\`\YT^XTP]V[YYX_VWU_WTe_O]TPNaV_UYX[YX\S\`[V_a[[RW\XbYWqYSUUUW]W\XRTWQ[^\OX``cVUU\X]]ZRaXU]W`hZZV\_ZN\``Y]URY^^Y[W^^V]]SVNUVN]bX\ZWXSZQSSOYTXPcSZOJXQZXXRHV`[gfZ\dUU`Y`MM]TVcYZXWPhV[P]WMR`TR]T[Rc]]]TSU_[Y``UZ`Z\OTMUR^\URaRVUdS_c\UN_PScb[OU_RUYXbVdYPQWWP_ZRT[`UVYXS]]kWUUcX]]RQ[_T\OWa^[aYcY_P\_RV_Wg]W\Oc[g[ieQZT[c`TVaZiZXbb[^_cQVWZSN\RYPYTT\TSV\Z]ZVJTbXNXVWP\MY[TRRYKUnKc\\R\\cP^W]\Rc]WXYYW]YYaQ\PTUOV]RT]^WTZ[PVXkW[Y`V[eUXeZWXXT[XdXWR[YK_Q]ZY\RgTV]WQcWVTNYdRXcbZXTbXYWX\_Rd][RURQT^SWcWVbZT_SW]^Z]Z[YW[T[`YTQY_hZY[X`VX_Y[[U\XT^]i\W[_XGPUZ_UeV\Y`VGW^MOVXRT^TY`XX\TUZ]SWb\[_RX__YYMSX`SRW_[ac]aN]hYOV[[[Y__OY[\Rc\YV]QX^^T]abfXRiPSVU\T[]W\VZS_WViU[Y^QV]U]d[KTN\]_`SWYZ`\ZURTSg_O\lW`ST]FTZU`PUbaU[TR_[ZVXRYObZ[Ya[]PUTRXX\aZSaZ_\[_QRRXWVf`^WSV\a]iTSUTZ[ZYZXa]\eaTZYdXLb\[XTTd\W\hW[hYSaZWXb`W[W]XTUUVgTSRY^ROW]\XUcQXVl`]U]dYT\O\XRWTY^\YYSVNY\\^\RW^YZbcXdUVUWbWZTV]V[_WWXZZXa]QW\[TRVQV^Q`]YR]\WSRVPYZTVaV[UacSR\V[UXRZ][STbW[\UZ\^U^eb]MZXUQUV\SRWa\WZ\YVTaV^SVVWXb[[wWVdZW[YXeW^``^[ZYXa[VS_\WWZV[Y`^VRTcZXUcYUYYPW_VVXY`^TVYUdZhW^ZXT[[XVd[YVNNU`a_a[[VXZi_U\TUYe]SUPU]UWQYNW_RRdWfWVXTV_XZXUUMTaPSWYZiXXVPUW^YY[Z]\OP[YZ\\[dYZ[[]K[UWS^TaSUZaWiOYS\dSXQYNcQW]PQ]^YWYXWZh[[WWU\KXUZQSSZW`TUR^`SSaOaQXV[VVPYO[ZRNZSW[TWY\Y^T\H^Y]ZXZ[\T[QU_U^WSeS]_WU\bZZSVUX\VUTV^UU^RSaU_VZcPZ_Se[YNg\]YVaZSV^QPU[S]cWWYUQUQTaLV[[ZOPRcYY]Z\WN]P[]M`Y\[W[^]ebWVVT[XXP^]Z\cZ_UR[P_WUYM]XYPgfOZT[][W]aWVPQTZYV`USONRVWWWNU^VYUV[UlaY]\X]]Y\`YXM][]PS\XU^UOZ^RRXXWYYRXYV\d_YbWUXRZS]]UYMWMS[bX\W^XO\`TYcUYTWZXZWRX[WWbV[TVZOWVUOR`SV\b[bY\VPWU`TX[[WaL^aZ`S][V[_Y^^f\cWZXZTfOVZZfY^YT]_^aUZYVUQP^YVZ\VJ_VbLW\Z_\]^LRZZOZUYMZeSRK\ZXXR\[]QNfQVWNSX`IX^^b\UYXc\UbVYT]cU[OX^eKM_WUSV]J`bda[WaY[Tea__bMOTUUNZ\NXVTTX\PUTZK\Y\_X`S\PXPXZ][MPW[W[ZNZXY[]l[X\WY_[W[RUUWRPWVRWMWO\MTS_\OeUV]ZYUY]_Y`gfbUYRW[U\M`ZRQY\ZVlfXR^P\^U[LO[W`STSUhRS\Y`eTUZaSbWY]J]VW[NLRT^UORd\VURRSRGYV^\M[[_bYXZPUR\UXSjOebX_QVa]WWaiWS`\XSJ^YbTXS[Y[QUXTRcU]\Z[aUYX[V]KN]OWVYWR^f^XVYVYUX\Y]\XU_P\Qh]RiTaOXEZb^ZWV]RPYbZTSbQaaP]ec`WdQcYXZUVSY_PU[`\_\]]kZYZZ_aKa\WTUU^S\TTV_WUR\MUT`baL\Zg_QYSZVW[SRUXZWV^YXT]XYZY[^Y^__Z]TVPUS[XPXcX\V[WU^ZVSS[YVTZX[\[[OY^_O\SR]UZXQ[YXYUSYWSZk`YTWT]PYYTZ^T[[UXYW[jSOdUZ]_aVU[W^WUVU\YVG[U[RY]\ZcWQT\\TX^XSb_SZYRV[RXUXT_Z`WXca]WV][ZfYX\T\V`]MZ]TWOXV^U\XRXYPV[dQYaVY[\Y_VW[WaVUaS[Wc\[ZYRN^WfZ\\C]YPX\^{Y^]R\\VQ`WYT]NViU]\Y]`WjW[Y[YYSYS[WU^UZNVfX^afaUVURWU]P_[^GZZjQXUXT]q^`P[bWUWV\Y^YVP]gPRRbWWUYWTT]X__XXUZY`ZZ^Y\UYTYRWPW]YSZZc]Y[cZTQR[MVQ^[\ZW[gb__bWb]L_Y\WP\[X^WTVUV^]Y[[aWWdLoV\Q[TU]RXTWxRaZRQVdR`Z[XXeXTXVVX\aRXYT[aTZQYXY[[]XUW[SRNeZZU]_S^ZW\]TPZ\UW\\TZ^^]XY_WNJTbYYY]R\STQ[NSUc`QSX\_XZZYbQR^`X[WZUXR`QUSPTUV^WbWRTVUX\NVbcK\`STQcUX[`WRV\ccRW]ZS\\ZZQPTVUV[S^X^`\TRUY_WXZZ[Na`XXdM]_bTV^Z]Z]UURY[ZO[`Z[XPcX\_W_XVZ^iP[`XIV[[eYYSTXS]cN[Z\WRQ[[KV^XZXZX`\[]QdVWPOQ[UP[_[TQ\PU_\Z\Y\^U^`U^ZcYU_XXVY^__UXOVVTM[[OZ]Y[_ZZZX[XT]W^XbZaXS]`ZYU[`e\WRa^UaQWU[Xa[]^XVWPQSY[VRTP`PWUY[[VVXa^_WV_\O]^XZb`_^YXXUX`UWUSR\[OUWYea\V_RZUgUNX[eOaO^PU`VVO]PU[XgYKcV[L_[]YW]Tf\RTUZVV[\OY^XRST^QXXWZYSWVYVdXS[``Y`PX`LZZZ^XUIgXaYZh_WV[VXYOcTSYbVZRWTZ]QaXWRZjYS\\YcYYXQ\UOTSVUWQRXZW^^bXV]NeU\VXYh^UWRW]SThQW\\WZ[YX_KWTYVb]SOT^UPQZPPY]XV^Y\NWf]fZV^Od\]XWW`X`cUT\]M\[^ZaOQLW_Ta\YiZYRXR\`[O^QSKTZN\Z[ZTYZV`]Sd_d_YVU_NRYRT\YP]^UYTbSXU]]ZUV`N[WWYYaYYRYXPON^[chSXT\W]UNVS[ZNPXVWYSfZGV[[TSS_TXYUVN`X\^][J^YP[XTgY[P[WUeY]]NUZY[QTO\V^M\PhUZ\URXZRd_HZT\c^GR_Xf^YYdTQOR[aTTWXhZVWVUYXQV[NdUeXRRW\OVWcR`WBMZRmPU\\^SDa\O[aUVURddLeJ`NZ`aN\bPUXX]da\RY\W\^XafZ^ZYZOJR_WhWUeX^WY\S\UaW^]U]Y\TY`JZQSTY^KTRcWWQWbX\`Q^YWSYVYWUZORcYa[WbTWR\RXSS_XZPZ`Z\UWYPOaWQdQ[N[_W]PLN^W_U^_ZW`^Z\[X[ZWUZThX`Z^WX]\^XSTXb^YWYZR\VTUS^V\\VUZXRN^a[aPZRU\U]`[X[ZXUWYV\]X^SPYS[UTW`UW[W^OOZYb_`RcNa]kQVaWQU[_]\[XZTTeQY\P]^WQYUVT`XZZ[aWFW^WVa`XYMTZ[\VUZVSWYW[gT\XRUZ]_UYUTNUfXSRUUZY_QY]VUXVR[U^YZXST^_Y\e^^Z[V`WX[]XZ`[UP_SXZU_\TWV]XRXYO_PT[[Z]TY^XYVTad[UY\^eUV_^Y`UY[TZ]TVZ\qUY\WT[W]^SOT_VY[\ZL[PSR[]VLVXQ^aWM[TVQ]TTU\_]YaVZWYV[^]XU[]RZ`VZ\cXUZc^U`faZT^Q[WZ]TeSUXYVKbBWH]QU\FYYX[hWS_Qh\\\ShXVWKU_W\Y\Y[X^WYS_aVZZS]dUUYT[b_ZTTR`Ue[dQOdW_X[We^Yh\UbYSZZXdOYeSYOO\UNWW^]d\[\RTN\\e[`fS`SU]RdTP\RTV_XNUT]TUV\Z_dZ]YUZ]WVZeQS^^cY^O\R_XRbTVXdXfOZZbWXUV^dZUYOOX[UYM]cUZV`cQ`Y\R^YTS\Z`RVTXa\WXOQTV]WPSWc[aOT[ZY_VPS`\]SRLS\]^O[W\USYaOP\S_aPUTRYc^ZYaW_aVX[Q^V[T^[ZQ\X_STVU\ZfZ_KgWQs^WQW\`\^RX\\Q`ZdZdVQkWWSQbQaP[VXSg`c_WYagVW\ZOWS[`TX[R[VVVe\a^SS[SZbUUGNSSWLSYWW]TNUWT[YXd_PUXW[_[SV^TRRUgWVYWRW^SVR^QZU^^\\ZVZYdOY[ZY]VOUY`\WSg^RWUTUXPRVPXX`Q`VQRYUXZTaTVVZYU^VU_RXWYW\VR]c[P[[eWbTY]\WW`T\R]RP\XWSWWWfUXUY\VPSYg^[[cWY_OQ[WUTX_[]TT`MSn_YSVVU_^fWZWVX]XLT\_WWZS[UZdOZYZZ]]aQ]UZ]Q]^S_UV\e\MWLVVWf^SkTsPTPY^ZReXY`X[TXWYWWW_igZ`bddYYX[cPV]^^\[UTJWa[\PaOWYVXVX]^ZXW]cWV^dRL\SjSPWVMQUbeLa_LZTRZUXLZVfVbX]PW\RPQ_bZ`S[ZSUXXX_RWadS^[ZZRZRVU[eX^ZP^[ZYYUfZhU`TXUYVXUYS^gY`SXYb]^WWXZSVWNUa_`X^SZ\IQ[ZZVQTT`OQV]Oc^GYXWUR\a_R_UZV[]WaY[T^[YRQZX_UUUYbV\X\QXWaeXaW\ZV]WX\]]U_ZS]T]QaX_dbTN[SW^YW]YQbR^YXPQP_R_W_SP\\`RQ\V\Y[[NTaWY_VUTULO]SPW`T\WZYYW`TS[RbGReV^]WW^\dZQO[gXULYghZj^^\Y[\^VWSQ\WQc`\UcUYPR\gbPRZRa]^I\d_]OabNYba`[[P_V^cjZ`RM_fY]XQPZX\SZVdSJ\XQS\ZHSZPZ\]XbXa\[cVYT`\gYaWSWQ^b_^VOYbZdW]ZTO[Vcc[Re\bPP[Z`YW]nXYVY^U\X_Y]]U]`S[]SfTYZ^RR^a_TOadWLUPWW[b\be^SbYaYOVTSaU\X]XVQedZZWgdUOZXR`YRZT_^SYgcV\TVUUM]VdY\YbbVU[]XRVXXaaP`aUQPkaYYQd`]J]dS\\WiYZVTV_VXWRXPd[Z]R\Y]dX]VWX[_NT\O_ZZ[`TX[LUOWYPV^X\]]W`SWYYVRd`l^W]YRYLUWPQ[^U]]WYYMSRWYWba\P^[aV`[OYZYOVTVgOUX]UX^WaY^P[R][ZVVXWUXXuVTPTS[\XVTVYY^KY[[]S^_UTW]`[VW]VY]ZYX]XZUX_UPU`UVX`SY\]Tg^P^ZY\Z_Y`]OWZcUPdRgTfTX`T\U[_]Y]\_TbTVW[VZO]L[VNXY\cWW][ZZ]TWfSXQdVZSRi^PYcZW]a]_aKWeUMXRZZQUW\^b\TQckVi\ZQ`U^VXV^_\UUaR`S_W^dUT^R[W\ZRWa[aUWWXOZ\YUnUUUW\d]h\RNU]R_TZS_PW]RSUWQ_SP[VWVSP[\Z\ZRZaVVRS`V\ZYYQS[PXVc]XTXbQZW_XYUVYY^YXR^^TY[VVa^VVT[\]WR_XSZ``VVXU[Y\fYYW^aXU[RWZ]RSa]YXRX[ZYX]]eNXaYQ_cQXXWIWccf\dZ[VUaVY[JSVTV[VSPLPSZZRSUZe\NS][_\^R]V]XYTXRWSTKmWST\Wdb\ZQUeQQSabXL^[P]XaMRYT]]QVSRcUU`JVPb^VSXSZ`WfTV[k^Q[[QWRWWK[[\N^SRHZcY`dWYR\UVQW[SZX\_T]U[W\\fbS[Y\daU[D_`[TTccXeUVVTWVZ\]ZO^SP`dX[[\[XWUXW]NUYW`UW\_Q^daRWVTXob]ZV[Z\SYXU^WbWZSeV^\S^hcUcR\]haWQZ]ZbZZW^PQQOV[UZZ[bXY]VW^c[USUSWTXWXeX^VXhWWW__XiOWW[RSa\TP[^gZ_ZYUPYV]Y^Y_\YUT^WeTYVZ]YYTTRZUZYYPYaVaS\QOZYYUZVUc_a]_ZeTgN_SUqe^VYdWQ[^\VORQ\T_dVgVSOWSZTPUZaZ]^WXaSf[^XWQ\]OUQ[RW_VRVX[aX_WV\XRUPR^bPZ^YTY]W[ZXYO\\b\VWX\W\]NJIYSXTYOdf^VcSZP]V_kPPNZ\bU`aY[\WS]]WXXTqQ^P^RXZ[b[Ud]\]Q`c[EQXYXVi_baOV\XtYfd^^TVQ`W`W`X`][S_O\\XPV``PTiOZ_][U[[QcXVXVPZUS^\RS]W\WTX^WN_YI_MZXORQ]Z_`TecbZcQceW_b_PS[S[^^YZTMY[\W^bHYQVTJaWYZWWYQbc`eXSVW]bV\[TFbTWSPZLU_U\U^\c[\_^YYM_`QPS]VUT\UWR_`bTZSZS]bPLX[fPUKTN^RYU_M[VWbgKZ\]X]`WcU^TRXPZPVMSYL\a`dQ^[X^XX`^`]lZT_`UT_OWYcYYRT^XVUQT[ZU[WTU`WSN`QUVMYhR]TY`VVaWaT]Z\V^WN`]YZWeaRaQN[^[bYVS]bUUeSSYPYYa]K\gp`bVUYTW]X][[d\^gdLNaQ`\dbXKWYU]VXUV^[^TlRWUV]XVNZ]`Q[TYVYUb\aX]UYZRRV\Z__ZTOTYRVNSUV^]\]VXZ`ZcbeSM\SPUWVcLWZVcZWe]\_N]TOW[T[YSMWa[F[WXUfWc]YbTXfQY[X[ZU`MVXRX]aSYWYVXWVX[Y^aW[YY[\YSaQMVYX\LLYVYQRPSS\VUY][^aZNZZTZUXVSZST\P^Wa`WT]SWb[ZSZc\XVV^VWZRTZST]R\X[baUbWYXUV]QfQUO^R[TR[VPXYY\]UUbX_RW\QUWQ[\RbO[Q]^SIU_SZP\PbaXgXYR\_`TUVY[TcXXWYXSZ]ZY_eeWPLPU[fYY\_Ze^^\aS[\\ZWV\R^[X^QbQ[^[^VVXX^WMQ`V`T\PYZ_SYLUVXd^SYUZR\UYSSY\WYO]Za]aYUUXYVYMdbQVX^^LbJ_VZ\^W[VZV_XYYX\\XX^VXUef]WdQSWU_[]WUaVUQTaWc[cSZWWZUQZeRRX\[V]WgYZR[VYYZWNV]R\QOSRaYT`_[V_[\TU_YWUF_SW`VT]TT\ZW\RS[P_SaXY\YTU[[[WR_]XOWSX_gTT[UX]WQ^VQ]YbVWTZbY`Z_]XU[P^RY\^W\[^Q[ZW^`YTUZ[_fWXb^SMWWbeYWWZNQXSYWSR`RU_^e\ZSZZ\]_SWYYQZ]WQV[dV\`e\MQUWW_Yb`\]RRRU`RYUZ[]Ye]Wb`YRZ_fW\`\^YXVRR[`TM\]WdYfZ\Y[N]_Z`[]RoZUUZTXZPP[\b[[YRU[[UQ]aZ^RU^^YX_ZPRXYU[Zd[^cQRSR[TUN[VVYa__Y[STU[V_eM]cYW][dRV]^UVYY_VWO[ULYM\Z\NaSXW^`WTcZ[Z`Wjed\]^`WZPTTZSY_``YVcVXYS^]_XTWZ_WaS`ZT\\tQ`WMbXTa`PYV[VYNNQYYT]X^a^T\RUVOV]^[[^]d_T\Xf]Z^XZaa[\`SUMSVRZ\QSYaY^TW[PKWVSRUVaW\XUXbb^NVX[ZdZVURYeYXQRU^UX`YZ\T\S`X]MLOXVWSVXX_ULPWfS_PW]cWW][Y_V]_\PWS^ZW]NUW]\VVZ\YYZVO_TN_\N_]ZYU^`ZKRUOW[WUVRSXfQRYUQUW\UWX_UQ]XV`XZYb_c_[\_`]RV`N`\cVTZSTYW\\gYObSU]OZOT`VXWTYR\V_Si]bXT^\[_VU\^cTZS][][TOUW][RY]]USUX[WYa\S^Y_QSZOUZYR_S^cf\TcXe_]V]jWYTiZcMWTR\LUW^LZMYU\[\TTX[`]TTg`UPaRcZRU\^YSR`KSVPUa\WWb`QZZ^UXXN_VRXVVUTQUU\Va_W\XU^TPR_O\YPZT[j^aUNS]URSRQWY^R`_VX[WQVV_O\YYZVXYYZK\Y_WM]`TUXSQ\XYQV_TYURTcU]`T[ZV\W^_UUW\V[PZIYXRJaUWV^[ZVd\\iRVT[__\TQZeYWZYMaVT[TZ^MdTTYb`S\UbWW[YV^M[\cl\ZX\]XcgSPV[P]Z]Y[UQ``TWQa[_SZZYV^X_VR\Yk]SO^dYa[ZVVV^ZRZTZa[YRRbXYPV[WS`]PVUdVZYYZ\[UQZVZWRV`V[VYW]NUV[RT_[SZUT_ef`RQY`V`RYQ`V[TJWW[]h\\Sa\X][VYYXXcV^U[WYUV^W]`UVY`[YV`^Z\\TVYVJRUZ_a\a_`adTNZ[^ZXZ[STX[`[aV\STcSTOQ^NTR`]hbSiXY[RRQcZXU_QZ[_ZV\Z_QVTZX\TTUTcXW_\PZXX^]PRb\a\ZQUbdY]WWRVgXPZZ^XPX[QaZZYYPUS\a\UXZ^V\`\ZTXZQOUW\Y\O\dW[TQS_Y\VZP_W_]d]eQYQVSO\[VVbT^SUa]]\WWWUS`VS\QU]Z[U]XK[]QaSTVW[ZYRRSZR[YZ\bW\bVQX`NP_`aTX\VS^UXWR_SWUaUYT\X^Sa`[_aQVSYZUR^[`XOS[WRbURS[[][^]R\TZXSXXZ\aNN[Y_VW`^YL`RZWPZV\S`f\T[`cUYYP[VSO]Q]c`VbSQYV^V_XX^T\KT_UZRUXRVMVWVbR^SL\YYPPVVOQ`cYN[YR\\XQ_ZVR`XW^`]`]Y[ZV[UUL``YY]MSSUNZYTbZ\ZYY_Y^YQV]YdXYX\aZUUbWW^[TX[VTYbQXNWeZVJP]RVZTTOYTa]U^WPbZ]RZ`ZS\\]MSR\Tc\bVbT\ZY\e\YRUkXSR_OO[QdbaRX^ST[S^]UWS_W`XPWZXZZSa\UM\UdXX]oSR]SVZaVZnNV_bTVZYbX]X\NXXYVVQZeXY[ShSc]]X[Vb_YXV`^__SI^\_L_V_U^]^XSZaIdQ\[`ZoX\SM]^[YVOYYONVWcbjPNPSbUpaXP^dUfKeTZY[S\UkRa^_TTS[XRVIYf[KXZ[RVS_WXnQVZWTbZR`RT]Z_UgZUXbYZb\[_W[Z[QZeaSSWUQ^KWbOZSU\WZL\[QbSgY[XUPURWXP_b[^ZaY`WebVk^Wbh\bU`XTc^kVSS_RXTdVmX[dWSVPWJUX\pShMSa^ffb^^SO]P]ThWag``fh]VVYRUc`RcJe_[]`OZd\R`Z_RQU\fWOYUQP]cTOXWZ[ROZPZY`Z`[b^ZQ\aTcUYN]eWeVRbYS`^Ir[LX[ZV]TpRg[YZU`wZQ\[NRUYV]SZhUIPN_anUfY\ZUQT\XOZS^a\VXVY]dcM[\QVTP]`]k`WT^Pdh]Pmc^^b[ZcX^VUTYZWPReLWShhXbYedSW[SNX^_RQY]Y_ZZeb\`QYTZY]U\\ST]QPUVZ\^Q\\dZ`YX^T^VP]XVQJW_]XSYX][WPR]Q^a]QVQ]c`ZcYTObQSN`YZfXZ_R_W\_X^N[[WS]SO`_T[Y`XT_ZXY\]YIgVTQTNRO^\QX]QVSgLX[XPXaZ\\][d[OVQYSYW_PWXTUTXXXZWhJ^MWa_PP\V`eWVSNYRbbS_R^`S^Yh\VYZ[SUXUVOUU_RV[ZUU]T^Z`YRSX\aS[TSdUP[SmeS`VU\VOQX_]TXa_YRcO_R[Z\OZZ]I[XWYT^V\LU_XPXT[QcW`][^f]O^^Q^[\_XeSX^Rc\[chYW^]_]NWPZ\[KNVQUVYWZUSfSYUUZPQV\aZXe[T][Q_`J^R\Z_cP[X\L^]eSo[YUVQL_T^hRcZV\QQdMcYdaYMdH^SZbUU_SOa_\cWbTZS^Z[Y[Y\^P\jUVRS`]Y^NUWRSZ\Z^XRZZYddUZRTZX]UQ[\[QRW[YOXZSb[UOTWXU\^UWW\^YR]`aT\YQ\VU_STURd`WY^`MUSbUZ\NRWXV\UZRV_eYW\SWUS_XRaPdZV_R[Q]T]OUOWU_[_ZQXV^XUO[W[VNSLXPTS\UY[XYe]]Xa]ZZTS`]_d]W_bYTUNSX^XUW\SR^\U_XX[]]c[WUVR\]_^XUWQXPRWRXX\ZXO[`XVU[ROUZTXRLUQLZTWWXUR]WbWY[P^Q`Q\SmXXPSYT_MTZ]PVSL\UO`SWaVW\b]ZPX][aVKKaXTVWUWXV``_SZ]TXUUU_LXY`RNTQ]VVnX]ZY`STTU^TVLTQUH\RQ^YVWaXQ\ZV[ZV`XW]XU^R\T]Xb[UZ]T]WaSVP^bV`W^WUTSVUW_Za_QR^S\WZ^UYU_^STMaTYVSc\QYYP^T[W`\W`TY]]ZUZVO[^YYTUUXVWmNVU][N\_T\]_S`UTOYZ]ZZYN^dRY^\V^Y\]W^_ZL]OO\OYYb[[\R^R]PWbQV]R^^SU[UTSUUTWU^YR]^YS[ST\Q[M\MUYT[Z\Z]YaVVTUQVMY[]PdZQ_S]Ze[NT^^WSYgXX[X^]X\UdWUHcUO^^VbYY]W^SQPWXV[\XX_WabQbabPMObR^PPZPQW\cX[QWU[MGTQ\lZ^X\RQRXZ[^e]`SYKRXFUa`T]WYVW`MO[R\PTSYTUR_cScVRPXZTc\`_YdXZWReWRZKS[PNR\RQ_Z_bUSgOWY\TTW^aXZ[VfWRJW[\UN]UUN[]PTYYdWb[^[^\W_\SMY_P]VVY]a[X[OR[OZ]`XQUgSTU_X]O[XRYOR`[UVmVVS`[]b\YXUXR`OTXV\\ZOQX\MHXXFYW`T[R]fRXSYbYUQeeVRaPP\Y^_ZWMOZbSNXVU^\RO\]bISSdPZYmUWZXV]ZTS^]WZXRUbbcTSn^cSXVUPRcRQRRW]UcgSYT[VXXMWUUOTWP\TUQYMZUZk[_TXV_[d_QaT`QWW[^\OT]WdL]_JXXY^RfYXV`WW`WZO[W^^faZh`K[abI^]Q[`UQ\MRX]UWWVXZ[Q_USVQ\SLXYPYWLXaed`T^PT^\YV[f]ZeU_ZaVPS[[\aYUVUXXbMZeQWUQO\VRQTYXWb`a[mRZ^a_US]VUVZ\TWFZ]Va`kUX\VWacW_SYTiYVUUZRX[VaXKLUdRWRSd[XUTTZWW[\WW^gVOYXTXSSUTQUY[_L[_cWZQVR`P[OWWUY\]R^bUfmWTWXT[USbZZ`Ya^ZcP[VaR[\UZWRdWZRd^VTdf]XOWOYK]R^^]VSZTKTgO]T[XWN]aXQ]SN^ZTR[PO_WZYYVT\\YVZX[KWU^XTWVTTXSMU]UaR[ZWYRWXQ]a[IZWV`YYPMU^VXWZY`ZTX\^]VSb\Z[QWUa^[UWSVUXTSUX]^]`_eScTQW[[TYaY[XZUVS\UXTZVcZ\\d\_RT^TVPXYYZ]\QZQVbXSXS^VTX]`[_V\\]_^TaYWa\WR\XW[U\WS__ZXYWVlVVVQaPSVXTZ[V[VXbX]QUY]SZ[^VaSM]_U][ZV\]SR\cYW[][YTW[`dWRT[ZYZV\\YU[WUR\V[WQR_U`ZQ\[S[_WZY]S`\]YY]ZaWTXTSWZKPNW[]VRS[WX_S]XWTSfZOVRaVVb`_SZ_S[aZQYTTL_U\SS\cOYW]\^a[QZSQb`^RXYY\^[Z[YZW_\eTH]XcYYMZQ[XWR\[acZ`]VNVW_UaaUXS\XWYOaYZ\[\QRRW\^V[VTS[eW\^RN\S]_[\Y^YOZ^[ZPTS]\ZYZYXXUX[SbU\X_^]V][ZWcYU\iZX^YaSVgXYZQ]SVT\V\[RVXR[ZZUW]XWVYZWVYU]f_[X^hS\RZ_V`VZPSbRk[ZW[[[[X`eT`VdTR\^[^PUV^NWTWUR[T]P[Z[c`TYWZ``XYYY[I[YPcVTTYPSVYQUSO[]Y\W`ZUWKRY[NeZ^]Y\SV`WY\YfXZdV]QX\YdUUMUWYYT]_\dTTPX\]QZIZZWU\VZjNVV_cXW\OXYN\X]_Q`VWMWUXRc`WZ[UXWTQU[RS[ZX^YWUZ[X]W]X[\PWPaUdXLdTQZRSVY_][WWXSP^[XW_QVQLWX]VY]\^]Z_dTYWU[Y^^YVYXdSZX\OaT^RZXhSPb[ZV\__W\\ZT_S[b[^XVZZTX[VTY]dVT_U[^a^ZXYSSY`RaRZRZW^ZY]T[YeYVZI]^UQ`YTXZN\f_^WVY\T^U_N[X[TMUYYWZ]VZSSRX_T\WQWT_ZG^]M[X\US]R_PNc\b[c\XUXVYOa^Y_j_ZUW\]SV\^bZ]R\`VR]TS^WV\U]^XRUQ`ZQ\YQTYH[[T]jXR]MKQ_\TQQWZeQS][UTe__eU[`X^eV^[^ZTMZTW_Tc^]^^UZddUgU^XX^eOcRZabYXV[`L_SYZ[hVb\YE_YYVVVWN[N]]_UYUg`SW^U[XYVQVa^Y`XfaZU\jh_JV\SQSSQ]`gUXWgM\]TUWYYY\bYZXZcNQYSR]HWW\M`^Z[S\TTY\ZYOOTUSM^HQeR`XUX^X]ZMTOUG]Z[bYYbGW[\NeYNRS\fTPVjR\UM]V]aUP]R]ZVcW]SN[R]gZZ]TSYWa\ZTWW_]ZUU_[e]QQU`QWVY[\R`]]WFMXZ[P[PVSY]XXLUY`Y\WN[ZZ]`_SVT\a[aWW^_W]WaXRVcY`i[XSjRVfUQXR[ke`ZUYYde\lX\[UQWiT\PcZS\gW^^``fSMZ[LaS[QRSZ]VFMLfQU^RYejTWVN[_TW\[RQj\WZWZ]YPZXPVSW\L]Q_N[W\XY`\WW\WNQcOR`MeRXU_[UW^b^`W^VSTXWVW\Y_YUSXTU[YP[S[X]\[PZPca__ZZ[T_\POPNSNXURZb[UU`aRZPPTVPM^OXVUY`\`][WSeWK`cST`V[WWT]]bSXbX\aX_TVW`]\YQfXQ`]c]d]`UhcaWW\Q`RV][MPOXbV_QXVUXOQNWWVSV^V[VWdq[VZZNY]MOPOS[QR^P[XX[\U`T[[XiXNU\\U\OYWYdiWZ^Y^WYY]dNUM]^^R_\OKe]SeUPbbMKMPQ^\ZY__XTiaS^\a\Vc\[W^]W\bZWP``Y\\aTWR\X\[Q[W[RZ^VYS]Z\`ZXXW_WZfTaZWZaVY\`UKTSPXZTPVS^UWS[`SRXPUZ`U[UUeZXHYY\RljRUcWZW\d[YYZNMUXaRV^cZL`ZT`hX`VO_UfUWTVWZRK[U[UdYHWN^_[TRUY]][TXUSUU[T\\abW^hZfMRYVWS`nZL_WM_VYQ\`]\\T[V[ZZYYgZcWYYVZc\VUZ^VPZaVLWWT\TWXXZRg\TY][XXXSSX[VWQT`TQUUQWVTdWTXZZNZO]OIT^VSUZ\V^XTOfTYOT^[[K]]_b_[RYYU[UiT[bTXYT]T`d`aTZ\]RR^U_RT[ZYVYXXXZVSMYXV_Z`RX_PYXV_NVYX^ZRQ[X[P]RRSWZUZ]a^`SW_RUX]UWQTUR_fY\cUYVT_cWY][MYXXXX[ZZ_TQZW[`[^WRRVY[Y[W\gZZZWXZWV^ZY\]XY]XRWQXW\OWUZ^_V^KPM^S_[_Z[ZSWYSiUX`UXWOWQ\XJcY\^RbYPQWTR\[[\T[PRY[UZYX][T`W^V^ab[ZW_`ZccVWZ_S[QV`[UX]XXW\VNRRXURUW^J[`bXXW\`e`h^TXU]P\TR^SQ^fY\QTYIXYYTTS^_Y]STQXU[S[Z__XUUNTVgS^UT]\fRUW`P[]PYOOVeWVWJUS^USRYZ]]POKb[VSX]FmVdUVOYW[]_OSgZXVPXZPXRU[SY[POVOeNIJXSOOISebXVQW`b\ST_[aNVc^hL\QbcZYPOVb[L]PSUYa_T^`YSNeR[VW]aoZU[]Ke\Tgd_WZWTX\XdV[aI]`_^\_[\ZaXVgZWh^TXYaS]ThZOWU`TVcYVT[V\QVVOaOUanWn^QYW\`PZ_RT\QZPTPRd]_T]YZQ\ea`N^UaR[QYN]T\bUWZS]UJ_dOPUT_WP\]]ZTZfXSTf_T]Zmaa[QaLZVVPWZLj[ZdUZVZWWQ]VUhRU`dS`[OZlUYYXNWVJW_qNTOZ_]^fQ_ZU\_WHV_^_^]_je[m_[MESQRa[\`TY\R`jX[PU]QW]V^^RTOT`Zp\TOYaS_YdafZZZZV\^RX\MNWSXTZcWPWT[T[`_X_Y_\UVWS]K_V_TOY[ZW^_]YYL`]\YQU[J\JUPNOkV]]ZY`XU]\bP^UYZWXRZXXTS_SeT]YSYVX[\_YXY\YT]SYeOWaZV\Ug[SX^]P`[VU`]Q[c[``^Z^`SUe`ZXVa[\a\`\VL]SPaZ[[WU]UY\Z\^`^J_`^YVVWZXZZ_TZYWZWORUZ^SPTU_WT\ZVU^_XPXY_G][_V\_XbXQZZSdQRZoRPWZVXTPaZe_fP^\WY_Q[KgUWcWR]\Z[WfOW]_XSY\R[c]bVUeSVRSP\SRXW_]QY_R_^UXX^ONPWcX^WPQUW_MSKTYWUdTYZ\_ZWbgYaYi]\YWSTc[eZWTZU\\YSaMQZ]W[]UXYX]VTY`ZZXZiYJVdW`aPb`ZbVRV`VNTYTfR\YS\R[TWh_TUTNrb\S]f`_QY]\_RUWTT[T\\PW[G\][YWaRZQ[Y^]YcVJYY[eIX\Wfl\\_aVUQ^jX^_][_]UY[TPXeUbMZ]\RX\WZOb[eXU]VPbQ]_caSU`QdURk[RW_TQQYNUUffWVOS]UWTRkXY]WJWbR_YSJ_bR]UCWS^dQZajmVegZaPUfZV[]]LSLTWVTUOeTc[RTU]N[`Xbc_eR]`RJTYm\STYV]YX]ccWS`T\[XWYUXZY_^STRSfaUZ^ZZZ[O^WXeXX]Wd]QN`VUb\Xb[]SQbXS\LPXWS][d[V[^^SUaUXZXZeNV\PZJaOSX`[T_YS`RaZUaeZWT[\OQaVdYWVWJP\_aTNZ]\eXZ`[W_TS]j]TaUSZbPTX[^bXPU[XbZ[abTMY[]RWNa^`_WU[KSQYV]]iVbeYfVX\qXgXTc`TXY`ZK\ZYWTVMWWZX\c^XOUQXWO_XXYRUUbQSQXWRfZcX]^X]TWK_ZPS^F^_^VT\TOdNfZWg_]X^YN`^XTYVVQR\SZZZU\`]Y_`iP\YUaTX_\N[aY`OW^XTdaSYbYcQcb]^O\WUYYXQTZb\^Z]RYZT`PV]ZY`XFRcYTZWTfTYXPPZX]__YSWU\ZWNTbbVZXVUW\[dTWRV]__ZYTTQV[U_[Q[[VWPPWYZUTWUR^XVM[PSY``f^Ye`XKWPY[`R[PRW]WW[_N[ZaVS[QbUWSUY]SRg`[ZYRZ^TXUQYSTUQcTVZ^T_T_[aS]\Z`LQbUTRYWYX]N`T`TZT\N^UTc]^UUXU_XXTQZd^b\U_cZUf\RZQaQ_YQPfQX^YOVZY^Y_MV_OdXXXYTS]\YS[Y]UXc]`RXW[_RcQSQWVTS\^VX_\La[WTY^SWVTXTV]XST\USTXbZV]W^UZ`WYV\TOW`UXZSQ\[]ZX\NcYRY]X]UWZXUWUM[_VWc[UV\_\YUY^Y[]SXS`UTYRYYXT][ZWXTRWdUVP^QZXTXRY]QYTVUS`SfeER^U^Y[WeNVTdXXY[bW_V[TWYTU]aUUbVV]Y^`_\\_SR[d[dUWRVR`XY\T^XX[T_bb[WVYVdVSP\W`O]]ZZQZX`SV[PW\PV`XM^QY]\P\Yc[`^T\[UXYTMW[P[Y[^^aWQR_`W]SPbX`_UW^\^RVZXQS]b[YYZT]ZS`a[`UXXTY][S_TXVPY\ZVVWZ_]SY[TSO[N\XUSS\^R\YTTO`V_VPl[cTZX[UWdaXZUWS`aT\`ZVb\^WaaZ_U\ZU^VW][YT]MZ[UPPV\R^Ul`Y[UWQV[\TQ]\VUXUSSX]X\Y_Ta_^e[Ug\SbS`^PYW_WVTRU[WVS\dVYYUZSeZNYYXYXTVVaUj\bTUT`^_S^^PX_P_VcY\U_RR[YZJS[^VX[WR\LcWT_YXbURWZa[]^`Ta\V]ZX^WX]VX_TSVXXiRXaS[WS_VP`VSRVaVXYabVZ]`TZTYTWVK\LTcPR\ZYT]LVbV]M[[TeZ]R\NXX\ZZNTVTYNXWQ]TQ`[]VYXPTQQSbJUS\`Q]a[V[[TN[eY^YZZYXSXQPTQUQZYS]YZbYRO_WUXTU[UaUPPTZ`U`V`TX`ZbT`]a`[s][RSQXTeR[T_Z\YfTSO_[aSV`WdVS[ZOWZ_X_QadRPY]UXSWW_ZWYWY]PXZY\W`[IYGQWf\a[]]]Y\VJTa`YW]_XZSQYNV^WZf_SPUUX^TUUZX^[[QSS]dSOUZSTOXWW[]\]YLcQXVKT\T^`\WXOR\VTYW\bW[T[T]ZZY[M\ZZRY_WT[d`QWZ_\e^ZWT\ZX[T\]c\fd`\PKRd][lRPZ]\YYYXU[_`YOQZ^\ZSU`TXRa`\eXX^XZYVS\K[eTQUHbcSjWTTRZXZOSX[Y^Y\[WPO[ZXYbV\VYdVRTXPYYcRY`UbZT]Z_\Z`^]`sYVSVO^YNVTXWX}bXV\b[[\VfT`Y^lTVWY[X^RO\U_RaZ\VSY^^XZ^VQWQ]XZ\]bVZQMXVZSROUXRaURS_XQdQ[XU_]S^_T[VX[fYWT^_WVXTV[a]XVLWVTf\SZUU[]WaU[LtZU^S_TXWPiZTaS\[_KR\`XTL`\V[T^`_]TW\XLSW^\UO[]ZT\ZYUe\TYU\ab\Z]SQPVRYX]UOS[fRXYZVYeZVUXa[QXW_N\_WRQZ[SZWYWVTPX`[TPTXMV^XP`_VW^a`\ZbVVQeRVWUR[UZS]bY`VXW_OW[Y`_QXXZYS\_[NV^^WeYJRV_ZleI^R_QVZZTWUV[d_]hTXcVYNTUU[b\SYYc`VTVWPRVc[X^^W`RXdNUZVXNS[WZRVZW`RVNWQ\ZRTQfX\Q^Xe^FcLRP\YZX[XVQ`QV_TTSTUKZZVXh\YjYYLU[Q\U_R^WcP`VX`PYWSaRgKVRVWO\RQi]`S\`S\\]aTj[UKT\XVVYP[fTQ[XXQPOW`_YTVWXdTcXUYWX\_UaT[\MP\NVUI]`_\YbZ`U^c[PX^VNQU^^LZ^U[S_QWacZ]ZYZSTP]WR[]]T[\WUO]_YRV]SXWa]]^TRTV]eVWYO`S_fTTSPWb[YXN\[TS[\[_d]WTfU_a\SKU_^[WVX[XQX]WeUTWYTRZeXa^Z^XWiY[UXTT[\KZTM^UaUT^T]]Xa``\W\a\WXbYYUTcRQY^_VVUXZT_Y\Qb^^W_i_[aV^SO]UV[VY\^TR^WXNd[UX[X_OZVVY]X\PXScNS\WV`^[]WYLLTX\b`R[UdUVZa_TNfWVaWXYQQP\UUXSXXXPV]OYURcTR]NXZXT``X\MjSVP_X_Z\WWXp\WX\TQY_TR[XU^\[]XaWTYPZY`NZUUSWW[S\^XZ[[]XbP[[^U[\YUVbQXCWVXT\YRO\VaaaTSV^`^VYTZT]UXOTV\T_MPaaSY]TQRX^Zf]Z\`XS`c_UY]TYY\`UaXN^^ZbZP[UW[_[QU^NVV[[_LL\fMRPV[_QUZcSVS[ZUdT^L]P\_[bVM`c[YX[SeWS]^VS]YWa`aSRWSTX[SVP[TZVWRkZXTW_`J^Y][fmb\QV]XgY`ZVYGZV]J\aaXUXXTaN\Y[LPRZVZNYVSZOYWSZYWZ\]ZZQ[XcQX^__^YPOe^ZX\]XcPTPbZN^S\XVT[VW]W[_\]Ue\ZYTRdZcaV\WXWKT_UUeZOWfXXc[ZRPQVYOX\Z\WVTpS__R][SW\ZT\cNTYX[\TaURU[cT^Q\UZWfX^QRiLY_`^XRUUSWXV^O^YTXgf[XX^SJ_YV_[_W\]TZZYYTXV\VYSWZSYdMZ^W\S_^VVN^c^U[VUZYZWWh]]ST[]YX^VZWQ\\iXXUNaZYX\]WZ\^]VX]VU^VY]]e^Ub`P\a\TX`]YRX^eSdZU\SR`abWRTYW]XbUaQQO[bKTW[TYXYbUcR`NNY[V[UJSW`^QWW]YZVUTVZVfYeSZkN`\Y_aSQVWSVQ\`QY`O`Z^]VVS]YPZ^Ud\^YR\ZdYQbZOa][dWaY]V__a[\X_bTbVX^^[a^VYT`VQTUZ[Wc\RVaZh_X\Va_Y[_ZP]U\UQ\^[L[QUf]Q^X[XKbUYUZ\U`UW]R[`Td_ZWb_c`VYT]UYU\RVbPbQR_e^RVTXV_WUOUZYPTQ[YYU`\XjQR`]VVKQU^[]]d\`XRPQYa]_T]VWO\^[]YWSZTWe`U]VU_N^aW[[WPTZVQbZX\^RMS[X^XeU[UQk_UVUUaV]ZVTVae\WTdUU]VTWYTcR\T`qe[U[VKgYYTZ[VY]T\SVY_QW]Z[URV[X]T^VX\bY_Y]_^VZTWW\Z[Xdg_X_KRWZU[ZhPZQ^U_XYT]V`S^YTZ[_[[T^X]UaR\^Z\^SYXS`SPOZXZXWVUaZX[VV^_^]V[UWWR[[ZaX[aY[T\L\`SWX]\YQXWVQT[[R[NWVO\\TQW^__bYLVYWVT`Y[aZW\ZRR[T]^Z_VYWXVQQe]`\TWWRVXSSRZQZ^_TR[XUXYTUMd\\Y^ZU_QY_]WWY^QXXOYY[HVb\^PYeWSQZW\YQXQSZ]R\bTTZXaX^ZU\]ZYZWYTWTZWXZSVUaT_[_^[`Xd[SW^Xb^a[U^dYV]\]^ZXXZ[YU]PXW\ZVZ]\\ZZSQWZ]Z_W_]OYO^XkZVTT_S^]]YZSZYT_[`^RdYX_]]YTQRTTS[UcWWUVS\XPW\fUXXX\YWUTWOYZ`\VXb_UVWVX[PV^R[]U[\RXUY`\TX[W\\T_Ta_ZR_PT[U_V[]\TY]QPX\VSUWUQXPWeV[W^[___XeYU]\VUUUcZ]\U[YXY\TbXY^[HZZV^^TTXYdS^V^ZW]UVYX]XbR\VYYRjaYRYOOWRSVRV\VTb[SVZQ\]VQNY\PXZedR[WX[YYSaXRM^YVoXU]SXX\SVKU_OPX_fRYZXZWT_XUKVZXYPZVRXSM]bR\VSRXS]Pa`d`VZYPZUY]cT_`_SU]`TWYg]\VeY[W\WTZZ\_VeT^\S]]WbYVO]ZK`[_^ZW]^V]elb[ZU]VQ^V]\Y[[\T_d\]VUTZY_WX\_d_\W[c^WlaURSV][XSU^Y]YV`^V\VNKOUZLPVXbcX]b]]cVS[bRTP`Z]SajUV[TYXSYS_TW]W[`PYV^bqUU]\\OSX\Z^\`WNW^TVYW]]N`Y\P][XeW`cP\d]WL^b]]`VZQM`U[NeQXUUX^XR^^bX]FZW`]\VVWd^X[RR[f\Il[cbWXMNX`\WYR[Q]NaIZfVTT^X`ZVXbRMJaa]R]TVYfb_aTUSUT[_XVZ\aVPV_TWa[]aeXQWP[V[dZa]i[XaNeVXZbQn]Q[Z^JY`TaTW\Y[\]PaWV`XX`fTPUV^_T]`^TU_PQ^TSd_^S^aWdYYeshX_XTc\jS\UUM^WIZ`]YWQZWa^V\USZWXQVfO_J]_T___PjS]\P_Y\`Y]ZZSYTT]\YQ]SYNX_Y`YZ]\d\RP\JVc\ScXYRVTbdRSYcNVZTgeVY]\[IdYY\O]VH_Z]bQ[_]YZiRZR]`NdpV`YXa]Z^WSZ[]RhI\aScP\P[]YZ^XQYdeaTfaNcd`ZW_UcVT]]WZTWR[ROMR^PYTZQV]PX^VYSX[^[dXX^TYURaZR\V^T[Y]`RPWbT`[^SXRZW[PWORVaY\X^iVWRVX[UL^XXZTmkXN_[TYPTVV^b^SdUWUMa\\YW_STcZS]Z[SRO^UVUaVsbYXQVZMF_PQZQ][PZ[HZVYWRcafZ[RXbW\TUcUf`]hObWU^VWdVYW\ZTg`ZUZU_X^VWY^VQYV]R_PX^bacSR^hb`R[ZST_]\\RTVWc[[PX][XZSUY^`RU\VdWTYbXY]V[VU[YU_YYUV]SXR[]`X]^aYfRXcPZa[`]N[^[XW\hRZ\\ZZX\VYO\VMQ[Y_TXR]]\VU_Y`XaYXWZ`_WV``abSpUZ[Zh^[bY`U\Y[UP[XWcV[^XVccaW_dQXXdR[\ZZW^\_]Tg\VT^Sg\`[``\T[Zj[V\ZT[\_\TQ]`_YUY[WV^aXZWeVXaSUX^RVTbJXV_[\YXVcdZQ\cOUX`ZXUV\WZTWZTY]j]\QU[Y[jKcfYMVdWTYTT_VUPTYSdQ^YXaYPWZSTZ]Y[TZUh[V_YS^gYS_YQVZQ]V\WWd]\VZP\ZWSYhYX[Q[[STgT__R_TT_HU^cUS]^F]_R^PWVUTBdZ_Y]eSRYSXNUYXU_XUON^XZTPW[JXiYWSPW[L[h\[RkTR\VeUOg[Yc`MP_WU\[XTZcU]V\[c`_LYh]ORSTXY`[]X[U[K\W^WPLaWTXXlZWM\ZUl\TO[^WNNOWf^YZL^TRZ[XVV\[[V_S[Z]ZXYXdUXWRaT_QVa\WjsOTc\UTU\\]VScK`X\`bXX`Z`^WORVpR[\[UUUXU\QUXYXS_Qa^YX]QZSYWPZKX\\^[YKVTbKPO^\V\PSSWbWXTUW_HTiN^ZPVc^V^^S[YZ]\[V]YXQ]XbTa]aXWSNObTXQKTWPNZdK^]^UYVU]UNW^[[OVWPQR[ZSV[]_RWXYKb_OWYUS`bMba]]NXVSVSX[_WV[`TZdTVPQlSOK}aXY\cWaUURR\^fOXVYh^[WRVZU\d`V`T_W[Q]U[]TWZ][T^QZ_ZTaXSZTTq\Wc][SZ\aZ]V[VUZRYZSOZOR\SPS[]Z]VdTX[XYS`QXYYS^OZ`]Q\QLZ[PVYWSf]_Y]]cV^gW]NVWVRYQV]WXYW[]^ZVfP_dRa_^_XeQ[Y]TY]aX\WN`[ZdYWNbV[XhOZZaJ_ZaQ`b\_YXLY[GT^]IRYO\[UV^U_\]YU`dRVa[]]Q]T\Y^bVa[VdXY`YTVQVde[[[TVb\aVYbWfQT_SZVOP__b[b`_YXTeUSg\[WYRYY`YUTZSfO[YWf][[[UUVW[O`]WUTZTZ^`k_R_]VWUU]aaYg_W[RfV\[TY_\R`QmV`Z`_YY^^VZQ[\hR_YcZSYbYS^TVYOTVOSVSaV_aKWSVZba[^]P`XUV\bfYURgbW[TcWSRSJLgUYITWYMR`TZ]^[_Y_\TVP[[S]T^S`Z[\WYbNV[^PQR`ZY]bT__V\UVX[`cR\V\UZVWd]YfZ[YVUXVtW_LYQZ^VdOVNXe``N\XWUWXbS_N[P_ZWYTaVZdXSU_TYP^UVYUWRViTQWYG[RR[_]ZZXbVYUWNYT_`ZXVU]\bf\a\RN]VO]YMZ[OQOV\Ofc]Y\XOWXaWUaYZa[^T_SY`SZ_kM`Y`PUb_UfPYRV`UR`UOSZXHTW]UX]SMSj]cZS\\PZXO^VT_TTYLV_]M`X\PUVba^MYfYTXZU\cXPOX]R^bWYNVXfbTSSZXRXN^[cTQUZXLLbQJTU_P\OPhR`_\WXXQa[i[X\^j]WZZWT]ZP^[YXWT^S[_YWU]PeVWT__VRcTYO_`]ZLOWT`]i[aXV[]a^ZT^WhVOVYVX[KZgSO[WYZaSZ`ZXVWPR_YWMaQYRXcUXV^fJ\_QUTPYYaQ\R]QYYWVV[TYWYUcTXZUYbT`V_WRZQ][O_Z\RWaQJWZ\_[PXZ[PRMZXVS]WRZVS`SQS_fY[ZR_VXR]\`]`]cTQ[O`WYW[Z][Y`_`_ZNI[aZ\SdSYYVb^]ZQYgZ_MNQP_aXRYWYTTc^Z`\Q]Y]Xc]PcY^U_XZQMWW[bWbUWUV]_NPbWUNQR^QSaZ^O]^V[Rc_O^ZQRWY[Q\WV_bdZWc\[^`]\VXW[cZ\`X[UYNPP\TW_YT\`N]VY\WUTVLcfXV\UPSZOkZWeUaP^^VM\eJVW\YZcUWXe]UWXUT[][ZQYRV^P\[WWWVQY^\YTZ`\_VR[UXWSR`XYVWWS_V[ZZ_\dY^P[^Y^_]TQ[TV\L]W^Y[S[\YK_PN_[[R[ZUVWRZVUc[YM]YfQZYXT[]YTSWNYR`QO`Y^Pd]V_]Va^TT\Ua^Wf^KU^iLV[YZ[XVZ^MRS`ZTUYZ`XXTYe\SYbTWV\USV`UYSZ]Xc_\ZWZQWXbZbYTZZRUN[h`MWWUW^RZ`P[U^]R`^ZiXRZaSVVRaa_Z[XWWb\QaX\[X\VZXRRYTTdV\dT[WTcUKR[[[c[\L]P]SW`a\SK^Xe\YZTT[XRWSYV\WY`V\[i\V[QZc[IUU[`_OZ_SX[\XWccOUX[]\YVV[S\N\WZe\b[XWMTZS_UV[Y_YZ\VWYYT]ZUgVUS]U\\KcUXaUU[\OU]SgPV]][]NSV_Ud\QQV\YbZQVb[WZY]ZXcZ[Z_HYNda\\]X^H\Ua^STLc^Y\W]WYWUWgW[WZWYYUR]RU_``^`UXXQV]XWcW]PWVVTUWUX^VcbSXfTS\S`QYPgWe[ZQ`fXdZXYgSa]YX\XW`]SY]S]c^[[[bRYTX^UaTNU[XUbY\\WaaX`YY]TW_[T]S`ZQTgTQPR_ZUX]T^aTS`UYMU_TYMW[`QOQ^ZgVeURWWU_\[]ZWS`Z`ZQR\bVU]_e]X`]ON[YUSX[d]\VeTcVVS^R]_XiQ^WVXNWU[RSW[XY[cU_]]]dXZT\VTYZXTOabVVdbTW[Vf]VQWS[idUUf[QXUW][hZRiTU\SM_SV\TMWQPOTXW[[R[UV^fYV\^h[MTQQVT=NO\OYWUUXSbZ`SWYWXYTZR[O__VaXXZZR]J^\WWULtX`b`XZSTYT[RRZYRLOZ]p_[]JX^X^cTa_U_Z\SWVM\W^S[WZbS]VQYRS]UbH[QZXUVdU[[^[X^iVPT\YXR\UP`Z`[a[T_aSW`VSZZSU]]bYTcZ^hZVZROWYXWXVVPXU\QU]_VWXOY_ZWNZ[Se^UbN^\k_KWQ][YV__[YTYb_V\TTXQU_TcXQf^_YSOZSnR^YXWSVc]X`d\UW\XVMWX^QVZWXVX]WUQKVY`[RUZXPWeX[V^\cSUcZV]RX`cPZYX]TXYaZX_ZPYG]hWTaZ\e]UTV[]\m^YXYTXTUYRY\]SW^V[VVVU\aQZSbXUW[X]VXh]W`[Y[R[SbIdW[\WOQVP\[ZU_YY_N_WcRgSaZLYT^^a\UVXLTUWYZZYVU[[aKOZ\\^cL^V`[c`\]\bS[``SY_VZ^T^`\R[TU[RWR_L_[]VZ]RUMRZUZVaZ`U[[bOV[SZ^U^K`gSYT``TWT^VVcTmYX[\PY\SVZfW_bXUQY\_]aPbXXXRYVkWgkX]\^aRcW^OOVWY[aS]]ZSW^caeb\V_XQSZ\ZVg_V[VgY]_^[YS]MLd_WcXXQ]Y]SS^ZPVk[SYNZUWR`dOWJ^U`T[WX`_V_ZUUZeS]QX\TZ^V\dUXVY[[[RRfb`c`ZXU_S]XWWXZZ\QQW^QV^WT\ZN_TWeSWPZY]T]Pco[TYXNPRWUW[UZ^\V[aEXZeSPN\VR\VOXKQNWa[h`NYl_jWXWXb_WJ`[PM\VWVSVVYUWXP^TYYTQZZd]aTOXa^BTaUX`RTOVWN^[IUS]aZbXT[Y[_WbXZPWSWReXTZ\V\cS`X]cUWLd[S[[Y[acHXUVX_aSZ[[`YQVX[[ZTWdZQYWX[SOdXHXP\W\WdXSXO^RVX]XYWWOY]]\WO`X\QYWZ^V\OUfY\_^e\YW[ZRTV_YUOTQjZWUT\\YV^OUQLVXYZUWS`dXXV]eXYU^ZXWUSUWcMTZZTZbSemaWIX^\L[[S\ZYYePVdUXXdU\YVY]_WThPJRVZOVZTSYZUgQ[R[VVRW^USbT]VIVU]UQa\]`USMU^U]PcPb[WX[]VUTY_f_SUTYXWR]YZZWV]XaV\Q^_QRVWcWZaRYW`bePXSW^TTY[M^^_Z`_X\XinUZXT\STNgU\\VLMW^Y[eW[^T]cQRWWSXV\TZbX\ZZVWaP]ZTYWS\VZGYLX`LYWWY^ZY`W]RbSbja[WUYTYcdVQW\`N]\_[aR\]XSVF\[QWXVXX^ZYZ[Z[]^OO\Wb[d\VYTWcZWNcYVjaYZXYQTU_bXT]c`^VQVXaKW\WOZV`SZYQ^RWQZNc[cYSY\WQac]QRL[Y[fZO`VR^ZE_VS]SSYdZTYXZVWZbXXOWZNW_[X]]TYZN]Vd\]TPa\Qb]YT_RQMIZ^bORWVVZ[P[dPWX\_\]ZYVS^^`]VWR\ZZ^bWVVX\T[Y[gQ_UdcROTb^V[XeVIV[XcnUZYXKWY_Vfdf]XOM_RTYXV]W^U`VRWWY_ZV^SV]QR[UZ^]YXWYXcNcVUWVZgYXYa^KWNXb`QL]P\lZTWU_QaW\VV^O`SV]V`VQY]MTU\]\c^_aWWXU[L[eQ\TfXUVU`eQXUaSSKZZ\STcY[PWZ[XeU^WQcY]]d`[`OUYX]VYfXSN[b_RW[[RW`RQMhVZb^RYZ`XXU`[Md[ta\\W[P_UMM\[T\Se\b]WVYXR[VTSXcV^UTYfMZaeUYNTUSdV^W[XYXUT`WWZifbhWbLYUMXY[_\aVTQZQVT^PUUXVK[E_\\W\Uf@VYZd\LS`YcUeN__TOUVZQKUUZ[WXX_[TXJY_Y[XQVWXYP^PWPbhXi`VciW\acR\UcdfaYQhZS\V\^\SU\[RZ]`W[X\XOW`aJVbLSXWW^TT`bTbYeMYJPWJVVWfbLU\[`Zb`PZSR^_YWZW^RZ[\NfYWSWSc]aW[_ckYX]QW^VUlVgZRU^VQTi]VU_W_XMa`U\PSXS]TXSW^XaWeXOLYPX]XSU_adXWgOWW^WO]gjPXibXkVVQsV^WSWXNXXbWdX\\HUa_VSUZ\RdSdV\]VKWZ_U`Ue_RaW\bXPYT]UjheeZVTSY[N]\bZd_R^Sdi^jO_]PSiUXR_YYS]\YSSWV[b[UTWWXW[_\XX\RY[]YPR_V]ZQb[ZZXbZX\VW]VUTfUWVWPVUTVVQTO\cRAYXRVUXT[T[T]\SYPOWVV]_^i]]VWUY_V[V[PX^^p^PVSZU[^RdWPLS[^S_SWUZSVVVTTfaQZX_WWcZQVWi_V\^_PaZS[W^X\a^VVXV`N_QSQZTXP\_S^__U`]d`QYT]\R[VWQUUWVUTTSQX_Y_^ZWUYZbeg^WZZZZVR]YUYS\R\XZQZTV`cUSQVSWXXST^VUYY^VOZTXYVUQ]\_TZ]QT\SZf`XWVTXST[Y\VW[SS[]UT^[XYUT]XWX[VWR\RQ^bVUZ^RTRaX`[[[SUUYX[S[SWP[TXYZPQ[S]UThQNg`[O[URQ\b[SWaU^[bY][UX[YXXYXX[`TQ]VMVUQVXU]PaUOU_L_bUTTM]U[QTOTZWgNV\XXVMWTWT^fUUXaYVZd]^V[YPfXSVQ[[XW[Z]N]Z]_[Ya^]X[QZeWU[\[X[TWeSYM[[f\PV`X_\X\TOiP^[ZT`U^bU]Z`^ZVUaZObYPYaSYT]U[UTV[UVT`Ud][kPWZS^`ZQ[V[Ya[SSXU[QeU^^\PU[ZQYR_ZcVSQ[aVXXdSPXRZ]YbX`rV\YU\T_]]aXTQTT]QYDNTRQOUXT\SQZZ^V[Y`VZ]nS\OVV`\[UZWPXU[RTROYZV`^O_g]\]]]b`[YO^VQ^bIWT^SVXXUUS[UYY[`YV]_WU[`W]T^US`fYZUV^XaSZ\WWTY]YV[\\Y\M_^WL[dYW[V]XRZTU`ZYbY\cSO\OTZPTV[\[W\\`MPROT[U]XWa^R^[ZTadZS_YZ^W^UYTXXlOWTNX\ZaPWSYdY^STMYUaUQ]^[V`TTZXZSY[gR_`haS`_Q_\XeYRWQ`cX`aXYTXX_]cVUZ`Z\TZW[R[WOhZ\\\OTUUcXTXUVW]T_WWZ`XRTOPSZ[SJ^]aQadXVcYRM]UhW]]XY]MRQ\RbUb_Z]dYWUVX[[Q\XXZ[YXWNdPX_[YZ_HW\SWWOR[cXXY]Y_Y[_OPOMO[Y[LRY[dTTSUeS[XWU]Y]PR_T^[VI[X]OOQR\cX\ZWa\`YNWaZ\[QZ_X[ZNSWUX_\SKRgPSTX^]^ZVQaROVMRXYXb]dR]RWUTU_g]\TS_UQ`\Y_O\V\Uf]W_bIYZSdORWY]^[_WeT_WXRQYMPQRRSZT^[aJXR`SYTa_S`[]W]SWSNYb`N[__gTTTYWYSZ]PURU[Sd]V]WVTYbSTOY^XZY`WXVZVYYO^YURPTXU`]YOZ[OYX[VbSY`\\VX_Q\YV^TXVVbbZbXRQh[SV^RMSUXWYZSYXOcURSXR\_UeM\UZ\XNOQVZ^UMb]ZmX^M^J\[Rc][[VWR^MUSYRTPTWVU```^]eTV\_[bSYYVZ_UY\_[U[YZXPV[\ZY\YSNKY][VZRX[WVW`S^[STWQPUVO`YVUSVRW[g[^ZY\WQUK_X[eYSPZUZTUYRUSQ]]WTfe^`ZNYW[X]SYUX]_R^T\T[X[^\`YY\RZ^bUd^W]VZbN[`^OOV]VT`YUYZk[T\Ub]X]cZ\`b]UNfYUT_WV[Y\WYU`UXT__T[V^Q]bWSPSW[UVUWHaShWdYY^SWVTXbRXQT_JIP`USVV[V\QXRUVUbPVUS\eSXVW[Y]YUSY]VSSKUVZUa\Y]K]VVUX\UNM[\ITTYcVQVYW[Y[WVUQbM[abST\Qc]VdX_USd[XfbUWQ_a]^SOPW[^XOVVZWKTVZb\UbYRR\[WV_WQW]ZT\T_TSZOW\SaYV\UVVRVUWPS`XgbSX^WYVYWWP\\]UKUXX]fXXYY``WX`[O`Ud^YYXWR\a_RYVXWY`T^YYTS[XYc^^YagXOZWdbj[Ua[TY`XgO_R]YSSaM]k^YW`^X`Q^[ZXUP]V^]ZSYa[V[LO^W[`U[cX[]YJWQXQj]aWPMV`US\OT^UW]S]aQVVaXS^X`\[W\WNXZYS\TWaTRUZc`YTZWQ[]OVaRY[]VP^T\_`XYcWZYZYYZbPQSVXWOUROWYeT`TV^PMXO[SZYXTNST^]]WU[UkYUY]XQ]]NSVaVYUSbV\NRNSVPOZRZYPYZSZYVcU[Y_ZJb^W]XVXXR\VYR`fQ\WU_[TZXWg`c^db]\b`\_[_XO`[b]OUXUWURXRW\_]ZUT_X_T^b^OYQZdbWXWhdWO[cYS[_X]Y\WRJVU]M]aWd`W]YU]U\XK\_[WSSiZVX_]SVUi]X\XWWXVZVZTYYQ`^RW[YUX`ab]O_]\[RR[UZYV\VUZUKf[WY\_R`[VZVR^`T^ZZ]\[YZa[YZTUcZbW\ch\WQWSO[TW]gSZWXW\Y_^TWT_Wa\RZUVXUUXSY]YWR]UXV[[WY[]b^UWRY\ZZOPVUQTYVU`ZUdPaW]JZZ]SRRaR]WVYYLk`^VT_WO]O`Z]UeXScV]QU`XY_UVZS`Vdb\\W_RT^PbTXZbZbP[[_PY[`UVW]SOUMTQ\SSQuY[PKZ^U^TKQOXMRaY`Z^YWX\cV\R\[T]XW]WVVQb`_YVRWXW[``]M[VZQVR\Z_gTVUTYRX\\VQZYZXRQZRWUUVaKVaKbUZSWTZJUVcSc^]\SZdVZVTNVSS`YRWcYZVSXWVVX[W]QQVb]PQOYWcbXZU\^[MX_TTSZTOZRUUV\RZ\X`cVX[T\dWf[]UYTUoZONUYRWWX[[TVTX]]\WMUS_WbTRW\[_\[`TW_WY[TNXdX[\YSWNTSaVU\YRU][dY[[Q^ZcZ`X^iYYWVac]ZX[Y^\QUYU]\bWVXWRXMOZ^YY\\WVSXWWUWXXUXaN``\VT\]SZVTg^Tb_UOQ[YRX\ePTb]_][Z_V[WXS`bZ_STWhWSZXc^c^XVXX[QSaS^VOXVSVYTTPYT[YYOV`Y]T`SWVZRU_]ZTVX_c^\XPdSVUXR\XdTYcaQUW\Va\ZXT_]`XRYWV__VT[dRWXYbTWUVU][TZVZWRU]MYYWXa]Yk\Yc[]YeZ]YMcUY\QW^UnTQcS[Z]gTa[VZ\RVWWWZj[UTa[]MRY[WXh]ZVY]`_\^]Yb`\WY[^^[Pb_UU]`]MTU]]_VQUkT[RVTWT\\WbXOP]NZUYVU\_^aWcUS_TP[TVSZYYUVOR]USYYJSY\VTRZS_^WSWWSQUQW\VV][VSVVTZ[gZUOSV\\UN`ZRScaXW[eW]]TeXS]UY[aV^_UQ^N\XYVXT\^WaZRX\[XdROTXQXQ][SY[R]bdZV^TX\PbVWYXVdTVXXXZZYVZcQ[TWT`eYVVZQYZ[Vc_[U`aVRYQVWUW[NVW]YWT__SRcTWSVSO`^]ScY[[]de]efKXU]XbbZV[`]`Ye_UdV_WRVYRZZOZNVWMS]VgbUYVXZRVXUVTWWVM^Y[OOadaQVSWJXWMSX`Y\X^MOV[MY[YeSgVRNfZT[W]ZO]ZQiIY[QIRXcc\]Y_NZcbQSXZcTYb^WRZdYQRYd^Q[Q]X\W]YY\WV_V[QSZdSMTXR]PZPSPJdYVZ[XXST]LT]XX]U\SVV[WWg[STRXTZSWY[`eZb]PZZVQ\UTN\cSWXYTQ[^cTZP[[UL]XXcXRdYRTabR^__bgdVQ[[Z_Ti[WZQZVXZ\SZPPUYcZbYPVTZXZU[V\_]V[[WUs[dTWaYY`[e_SSWYPVVWVSQ]U[Y_U^i[Z_]Pfa[`[ZXXQe[`]X[VWYYYUU[XTNZQTTY]ZZ^YYW[VXYa_\WVUW[XPYaZT[TTWTWUWTTWSVYZeUfZ[PO]`W[_X\UWbYP_^\`R\VRWXbTRZ[YL_YYTVXOgWU[Uc[RTWVWWW`WVZ\\bVUV^YUWW^TR\Wj[TKXDbGZQRccW[_YiGQHT`XW[[SaZVTYNU\YQeW[`ZWVLSRZU][^Ya[\YiS^\TM_X]VZ[VOW[YWZ]P]_[QZYOZ_TT`aUU\R[\X^[MYV^eYYYTnYRTaLM\R^^PU`\XT^XOZU`i^XWUWY[dSYTXUV]UYTdQaXX\fYPSR^VUSUbZTXY\ZQpQZ_dSV[OJXUZXWS`Oj\aRXXTZUWYZ^YWXRV\TjQR_PW]`OWSL`adX[p[XgU]^OU\]]Q_SZ[W`XW\VOVVY_ZTYTi_}cXVXYUYSWVVW\YZ]R]X_Zg\\XXXSP[UVSe_S_XbTbVSY[WPV^WVXQaW]T\Z_XQ_\UVVXYMXTV\XT[[Y^YZ\XWV`ZYYV\T]VcTZVXWPVY]YSWmR[[U\bSc`TWNR\ZVZXV_TV[X\WUTOTU^ST[[\WWXV_Z^\cU[IUXSRXNVUVWWSTTRT[XZV^WUTYVV[WRZPaOUVXYS]XKV[bVS\\\OSWYd^Z^Z^SVY[S[VWTYWQUXXW\W\QdXV`[Y`V[]\P_Y]VW[WV`T[Z^Q\YZXZMbT\[TZ`X[]WW[[eU[Y[YW`UYMb^UOiQ\VUYWaWQ[WJYYWUXZ\TVWZ\UgW_XTWXSWZVVVR]PU[XXWTYN][YVV^XVVL_S^UV^ZX[RR`YTVV_\`\]S\W[]aNZVZZWR`a[^Xh^ZUX]`_R\`Se_Q]^aZRWQ]YSgS^WRTZWY\ZUTP\[WPLX]ObWYZ`^I^XSWTR\^\XT\]XJc_UVU`UPadPSWU\XY]_TXWXbUZUVRZQYPR^\ZXZ[bY`ZVdTRZ]M`Ph\\^VXXX\W[YYU\gY^WWQW^[QZ[[fUYSXZXRZaYTTY`QX^XYOV^ZRVWN\TN[\TRXV_R[VZXbaKXa[^WTVV[cY]]WWTXYZXV\\RXUZZQ\`TL_[[\Yb]bOT`]QN[^TU\VLXVZSWS]bVVaVd_g\S`QUW]YTRXZUXU]\[TZQU\[V]ST]]TXXU[_YU^YT[[gVT`diXRQ[cW[[^`YUUU\``YVV_W\OSJW_X`XX\]YUR]U^_TTT\W]Y]YYRYXZ\^VY^YXWXU[\UbN\XW\X\RUWZPUZX`^X[YOZUUQ^]c`SdZXYRQ\QTV[Q_b\TY_T`\VX\ZWZYWWV_YYT`\QT\cb[SPOYQVXTWUZF`WV^\_LbQaZ[VVWSf\WWPV]ZSTSZYbTTfSTX`R^P^YV\SX\RYYYVN\clJaZYWWZ^ZNbdWVTV[RT\[^SXUSZ[T]kWV[[`WVZ\Zc]PTQX^eYbXXP^QWR]WXZVT`YYfaOZZa^]VWTjW_U\^QNWUMab_W^QXTUSR\d_Q^TPOSN^d[S_\WZVWURUM\OYTT]WWZR\XTWSY]WZUYWSXO\][PX[WRY[UOL[[[\]]\XVV[X[NdSXUXHn\TWYZ\aTRQd[^W\[YSX_XX\ZS\]\Z^Z]ZYWRUbOZa\V]VhXYU[YRcWXcYZR[ScZ`RXhURbUTTXS\_WU`_Xe_ZWTUYgZ[ZV\a\X\UXRYU^`\UTSXTPc_XXT\TR^O^VZZ`aQZZXP]b[Na_TdbQnk]YQQSd]UR[YYRaSaVKXXg_Z]W\RY]yZZ_XZa\[OR[YXb[T[YWQl_\U]TYbV[VZ_TYa^X\WUWaZQQLQZZ_VM\W]RZZ]WZRX[PTYWXa\W[Z]dWXRTObRi\UYT]Wa^UY`VVVQ]`UXXfR[Ya[`[X]b`cRW\L]][WW[]_YQZRXSZRWZ_T]][WY^h^[S^\JZ^[Y[YYQZcZUXZVYW]XXYYYZjY^]\W`a_]R\b]`\XaRSYZTkaXWV^_aYTVN[]Z_[`X]S\`YRQXOgQSVRVXXXVY\\odOV\Z[UXUXP[USdabLc[ZO^XO[SVOVUS[^T\_`]^bT[SWa`TZ^UZ]RSbcQWTUXK`T_MY^UTYa^TMdPWST[YRZfQSYWZbSJWPXRVY]UTQZ\R[`XUVSYZZVXSYZ\UUcWfbTZ\TVS\`_X_YQ\OWZ]T_WWfSXdW\UbWUW`[fea^UUP[dVMXUYUZK_QPY`XSXO^XUZaSPV`V_\a\ZXS][\WZ^[]]UPZYa]VX^[ZZY\U]WR]WTZY[SW]nQZb[Z\WTVT^VX]bV\PaKWXYYQUQZ[O]YaWWmYT]XWb^]dRTSZbV[Y[YN[X]]]RWWdTQPUSVSXP]bVRSQS^T_YXUaY[[WY^UQWRfRYYQ^bZSi^YWUZZd`XO\\XY`_UTY\`ZW\`X_Y\XZYWUa]MbYOWddVLOVeSgRUYTVX\ZUhaTUY^[WS[YWTZ]eUOZPeTWa\\]e_cYfV^QX[WVVVQYXgXYW_^ifYYTTRWXVOhbX^bKTYXcZ_\\\_[UQQZUXZVV[WWX[WZ\WY^WUbVSZb_XUP\PTUVZZSmb]WYYXXXUXZ^VV`ZVW]V]UTSWZPTY][W`Zb[SWPTYTWKZmeT[[L_[SYWYbT]UZUXYh`VZ_ZOXQWTY]aU]R^ZZeS\TY^`\Z_bTXWXX\`ZaXUcW_PQYcWXY^ZTWPVWYcfWVQbT`YXM[^TUYPXY`U]ZcUcYWN\VSb\]]]VVZXVW][Z]U[ZYcT^Ubb[WSWRWXVZbaUVZ]ZXY`PQZ\YX[bcXO`RYT\[[UY]\XZYUTP[TaUWbTVXVgOVRUZXZfRY\[USZTMQXU]XWfVSRNRW[[c[WYYZW\[]YZVZZ[ZYZUQ^\ZOgRXWSUURbX^YTPZTUZY[aZcZTSTYNRaUQQVd[`ViT]`QV]_f]\VVZ\XX``^dUSRXR[[W\W\XWMT]Z_ZUTXYZP^^[XRY^[UZ_S]WY[bWX[WS`Z^ZSNY\eUXPV^PXY]LaSYZ^UYVVO[WVZdU[[]TST_EX^dXQ_T_TZSRcP^UPMV\X^]gROZIZaSWM]YTYYWUS[S]WS]OfVX`WT[SXSXUfV\VaY\QXU^XYWU\_V[\cVXPX^ZPY_U\[[T[YXTVTSYa\X[gV^[fZbUL[VOXX`_cUZTUY]]VSXXd_ZRSc\VR[UNYUXWT`L]]YZWaKX\XgNTQ]USU`b[QZQPQ]XZYV`M\]YcWZUY[WZSSWWUV[VVQWT^Nca^\T_^\ViW^OJ^aQZ\_\TWb`VXbTbOQTTPVa_P\\W\R\bYVTXW`PP`MPU\VV^S_Z]RVVSJTYXNSQVX\\VWLVZRTWZRZW]]N_YV^[f`Y[U^`UU]_\[\T[RTRZWTUW\WRXbOYTU[UT\]TVgW_WOUU\Tc\\bQT^Q^\]GTb[_YXSVWOV`X]_TVZ\]^_[]]emSXUGS^VVR]`XYVUO^TgW\TIIY[Z[[^YaRT[]SUZHYYcfZ[NZYabl]QVL]dSMT[V^_UPTPNT`QWRSVZWJ\^VZVWdZSXa[V[[XXOZV[cTS`XXc`W_Y`\[^Z_RYQb_^R\TVfNZXWXWOX`TTW[Vd]SUW]ZeUdSRZ]\WUMaS^lTR\UZU_U_\[`[ZZOaRXUS_UWcMZ]ZY\^UMOO[ZXX]^XUY`_[TJOVQL[XV]U]J][Z\[^OVRWPUP[Vd]XWZYWXa^SUY]QTVE[ZdO[XZ`U][]g[aTO[Zf^VRWYPZZ\WWX]XW[[YSZUUZ^V`Xf[ZUY`YUZVWYTYUXX[]PNWaW\UO^VXWWdYYQ^\UVVUUVYV]QQ]b\Y[[TXa\^RQb]WZXXVQ_UPYVXW[NSbd`bX^NYWRbTcUW[MYZ[UQYY[\[eW]QJYUXQbYXWc]YQXVX_VQ[OVcRWWXS[YX\R\SZSUce[ZWTVR^bZTUS_V\U^gW[^UNWVUWUPUY^[_UWWY[Z]VV_P_VW]PYM[aWNW[VTZRR\QYX`YZ_W_WZY[ZcYUXX]edeW\W\TKSZ^Ug_XX\]_VY_PT]\W[Z\MS_`[]U][\Q[V_Xb^]SNTTWU]`[TS\XQRYU^]Yb[_VV\T]XX`MRT`UTSVQUdYWZ^ZZ^^YURYVURgZWRaPSS\R[ZYTX\W[WWY[PY[UVVUVXWYWWX\]V\\SZYZT`QUUWa^ZaZUVZ]ZYY]^\PP\^W_][ZXW\_\SVUVQaWT\]SRS]UX\b[RMbX]\YPV_^cTVR^cVP`XR^Z`UXR_XX]WWbYWeSTW[V^RY\\_XXU\YbOZPW]S[^ZgePSZUXYZTkU\TQZ]WVYZQ^VWW^XXOZ[ZMVRaPPXZQTYT[R[]ZbWT^UZY`bY_PZR\T]WaSYUXV`NVSMQZMYZL[YX[SXYXibSNT`T\W_UPXW^]d\_\UZL^WySW[_ZSXGZgZYaP`SUZVYRY]][Z_ZUTU\ZdT[ZY[WQYS[]X_dZSVY`NSQUSWUOZaGRYXeSaZ\YV[XPQXVZZO\]iNYU\TQZTXX_QVT^YTZUZ`YS\ZSb_TVQWePTZNWW`XO][\VYRQaS]^RTY\Z^T_aX[X[ZX]R_TXXXXLZ[SRf^[[YPZXXYTTUQ`ZR_YUWUT`^Z^ZSRVUZ[YQ[KPYZS[aXYYT`YQXSTTW]bYZRb^VO\OR^YRU^]`YUQV]XQbbReYWTM[ZT^USWTXTZZ[VL[XYXYMMUXV_X[VZYSQ^OZ`UXQTWXcTYP`Q`\YVZZWTY_YWW]^R_Xd]XW]a[\[WdQXNWTZVXWUYXXYbX\]O]Y[XWW`WWU]bVW]YUXTP[WY]WXT^TP][cS]\TYWPTV]UWYTYYWYURT]VTcWX`P_XUh\fYWZW]WWcSRVSYXWZRRWS`[SXWXZTX^]VWUR[XWbX]S]_[XYXWZZT]\U_VVUYa[UUV\]TSpVUM\UVWTQTP\ZWZhVSPbe_TRW\YiXSOVMSP[W]YV`X\T^]STS]SWT[TTP]\WRRYYMTWVTNO\`[WWQT]WYd`T[TXdX[RZ[OUVZ^WdXPUUZ]SW^S[k_VUTVUKYS^[W\XQYQVYVaWZ\Y^UUNWV]]]RWU^T_Z[SQTXYT\_UU^TQO][UYZTNTTXWXTX_f]XXWT\Ug\QNWWO]WV[]Y_YUZgZX`YWXZ`OP[UYLXS\R[UXYU[V\^]a\S`\XfV`YTS^]X[\aYT^^PWWR^Z\T_[_T^TWR[VQRWcfSfRTUQUYZNVTTWa\USWTW^SWTYYWSW\[VbZ]Z\aVMOUTXY\ZiZ\\TcRRV_TWWW^^aVW[\YTTQ^_]SWXVZTSTS[TS_YPU]U`]TSWY][NXSYRSX]gOUY\VWVV\VUTZUbYbVZYT\U_ZZUaU_STOX\\U\ZMOU]`XUVW`TU[YUSTP]UXW_VX[V\X]U\PVYWV_[X\X`RWV\VNVU\X[\ZQWYVYZ^V\YVSXPQ\YYU]VWWUVUYZTUZT]UTX`PTZ^XZUbYW[VS`V\WXWTVZPW`^[XS_YUXXRZ]VXZXVS]TXUYQY]VeVSSXd[WUS[W[Q[T^Y^_^Y`^R\RX\Va^X]XQZTaR[UWXVXZRZ\XZXVSWYSXWUZPWWVU[`WNT^ZZ[VP`WPSWb_P^S\\YU\W\NYS_TV^V_]SQSZfcT\`SX^gKUP_U[VTSU\_WSfROcUVbUV\bYV_\NYZPYZRYY[cQZ`ZSTTe]YY[SlXUNa_YZXVWVhYVWM[QUXXe\b\[RRWS_YZX__NW]RZY[N`b\\YaOTZ]U[OST]ZR`X`R[T]]_YWUYRZXZWQZ`\YbP^ZZZWX`jTX^[`QWUPWd\bSYTWUdYUb[^YYU[]U[XST\WmUUM[X]Y]`V`N[X[UQTTSXWoPRX^^\UUZPYdYTSZhbZIYXV[YXbTdO`WX___XOXUgQZ[[WVN`TVaWYUbag\XQZS_]`YX[\W]NWT_V\Z\Uh`]NcT]cTYUUSbWVcWTe[WZX_dWibSdYWXUVRR\^WRWaST^X^UQTibXbS\SUlM]UUZUX[ZSZ\dUTR^aYOUWWSW]bRPW^k_VYTSYZ]W\UYb\YQV`WVY\TcV[VRTLUZV_`WZV[SgdW[`WWU`VTh[W^bP_`JWV_WTV[`Q[RP\aXYYU\_QU]UXSX^ZV]YU]]WWPX\YdUfTWWX[UTZo[WVNdTiXZ]RL]VKUZXPXRXVTRUaS[URNYVT`VPS]UPa\PYT_V]R^iV]bR]Y]WXWmPVYWRlW\]STUdPnYT_[_NWSVT[Y]eVUX[X[VU[bRZZ[]dTZV`fRWYaa`V\^[YZQViWUd]SW]YcV^_PVWXU\RT]ZWYhOLbUTXZ]W]ZP_aZYT`WYSYkYZSUTZZSSWV[TQR_[XTVY\cQ[SYUVXZZVhUeYX\cZSXPb]\VU_`Z_Y]Y]Y_Z[VYcX_]U\QUY\aU_XUYOY^UZQVZRWYWM^`XYRRVX^XV^ZVS]R\QU_fhO`\^TR]^PTUWbYVVb\T^ZTZ[U\bZ[SXUO][YZUVY^c_US\YUWYQS[Y\RPZST^TUYRQ\ZcUZ`TXZRVVV[QXZU`\XO]\__WXZ^YN`a\YUXc^YPXOS[]PYX\\[UUX`TXUZ][TSWZZZ]ZQ\WPU[PX]bT]dP[PXTiVTXPcXOURPSXYW\PZXW\UZ[^[YZQSbUTd`[SaXZ_U]]WP^S^OVQW^NUc\dZ_W\ZV]][`ZT[]hLXWX_TZP[_OX]RX[ZY[VRTV]WRRZ\^`Y[WX__V\[U\\WWYX]Z[OeVL_VQXSQTRWFYSTWWRUMU\X_HUV]UTXR_V[[UZ][[[Pa__Y_XcVYU[SdW_[XRU_c\V[[VWTXYRbc^_U\MbXZ^caUPUMOW`c_]_TUZW\MX_\X\]QU^ZXUXXXR^``bZVZYTdWTZfUOX\[UaTT\WgT[WNWT^[]ZYYUQZ]]VTYYTZ^[SRXNfY\SUUYPWXXW_NPZXVkQ_[NZV`]eXWTVU^X[YWR_TWSVTTZ]XZV[V^XVVYULVUY]WO[TWPdVXUYWU]VX[[]RYXVUSUMK_UYU[[]YUWRTRXZXXaWU^XR\\XN_\Ra^XTZVYYWWXTVVSXUXVRV[WWeVV]Za]_PTV[PWYT_`P[TYRR\TZ_ZT\[WVWZVW\R]^PWMUYZXiVYZV`U[\VMZWS^XWVPeaXXRSR[YM^ORVXWQQPQ_d\dWZaU[Z^WcXSV]W^dMYLW[]bMZ]]UbZNNXZYXXf^_MOSTURN]]M]SZN]`UVXVa^RTUTU\WbVVTW]XUPZTP]^aQ[\V^^QTSWY^WLXM^[X`b_TWU[R\XPS]XU[\WZb^_[[_Y[eYN[f_K]OVhgZYZRFaSVWYT]`V`W`W]nRPWUY[[bU`R\Z\b\`VRYKXaT[c^_RXXWVWf\V[YVX^``WX`M[XX`]TWV\aaSWWkbNX`ZXWSYPSYQbZTWUaT\S\N[P]YW^TRUXa_f^Y^TTaZ[fYV]\ZRPTSYd`]XVW[YXdOVb]TcUY`ZZY^WEYPSXZSXYXUUVWWX\YgS][RS\VM`Z[]cU[TYaSV[YXWWWVVU\XWX]\X_WVYWYeUQVaWUSSZcXUUTaX[[Qb`bYRST\[TT_[WPac[WSXQWU`bVY]SXY_]YKjT[VSVZ\^YVi]QYUW]VW^TYY]VfUYWX[YZ_YY\CZ]WZSVWX[XS_R[VTb`iZ^Ubdb^SS^Z`UUTWd_ZX^U`W\YSYS]RSTYTTc`^RWUYQ^V[\TXS[UVV]b[WWUUPWb[[WeRTYWXX_w`V]UWWWWRZS]ZPWSRRWZWXL`XWUQ\X[WZR[`^\^`W[_cYYPXSRWN\Q\V^VO[\VbXWbXbY[YYUY^RWYRTXVOUZQ[QYYXXVX]R[T[SUV\RUVWYWUYW^]Z]TUXT\[rW\WXaPQXRWVWQROUTSZW^]\SSYWWc\[ULQ^Y`YTW[cYVZPV]\_^W\RWWZVUcVV]Z]`Z[S]][TRWYVWZc\P`V\[ZY[Q_\Y]WWP]UZW]W\^TUa[[\XUa\[UVUrYZ[WZPPUYSSi\[TZbXXXRSU_ZPZYXUbYRYT\UTaXYUYZY[R``Z`Z[WY]iZTdW\]NRSVYVX^\KQYP\cVVWU_YXYRXYa^RWXZV[RWXRYYW[\bYW[YZVgVWXSUZkXZVR^T\VLP\VY\aOTYVVVZVU[UUV\ZQRRZV`X[WYYXYYT\ZVUQNVOV]XYYX\VUYS\QP]R`V\dWU[TUOZ[YX\Y`W[`]ZT[UU]_[UYSVVYX\ViX[XXTZ^b]S[\\XRW^ZWWUYWUUb\aVXWUWYYYVR_W\QUROVYRQ\^YaTVT\WPZ[\SQXTU_NURc[^SZRUXSVXcYZYPn[YZ[YXVRU\aXVZVaQUWcXNcUY]dbPWRU\^QS]RXQYXXUeR][U\W[]`SW[Y|Y[T_[VTWRZVXRZUY^VQRM[USTU`QXYY`^]W\WWP^MbPZVWTUPZYXb^YRXZjSR_\UXY^X`Y\`TXYVR^_\]WYf[T^TdXX[UXZ_Me\PZVZYZWTY[[i^VYX]YRa[VPcRWY]^VV\[^R[YT\[YUU]WYWXXU[[TTYSS^dRaV\[XZaU_Uc[a\X[XXdUX[\g][W^X]YdZY_ROQQdJ_]U[SRRTUU[XOOQ`UcbVXVWV^WXYSSMSYiWVZUV_XVWY`ZPY_Z[YZ[UelXXdXTURYY_VXTXXT_^Y[]\Y^[Wb\PZ][YUU`^U\`QaZXWW]X^TXZYWUYW`ZOVe_]W[S\ZU]VT]PS_^ZYVTYUTW`YYUV\X[P[Y^SRR_TY_U[][ZRe\T`XQUTSRYZV\PXW\WW[^R`\RoJX[ZaSXQXYl\[`ZWWddTWXMU\Z[TZWZTVV`TX`\W\^[dZP`^YXVbUZ`[UYTQTVW\URTURUVYX[RSNYXY[Rc\]U[RZXXVXSSXUUhS][\ZgNYPXXZ[cQZ]YU`Y]]VWKM]a[TUKNGPWI^cbTWc`OWOSXWWb_SRYTXWXY]a`X[T[^VWcZXOVV]UURZSLcXZQUZOi[eZ[SY`ZV`^Q\^T[Y^a\UbZ\WXV^HPVVaVTSYU`TVVh`Th`WWNVV_iXPU^_\\^Q[]^WYYYWL[NViXTmPZY[\_XRSajW_W^WXXW^OX[[chVVZYXWZYbiVWWca[XZ\bZ[USVRYV[SQdURYUT_UaNYRT[T`VVSV]Z\XdX]VW_\WYTVPZYZT_SXV\WYeRPUR\VaVd\OYPZ_eYRQX_SQT]\XTdb^ac]UaR[V^a\]S[Z_XZJ]XdQZbTSXWbWVXPddWcYVeU[WNSVY^Q[_U_YXcYVTM__X[RYYaYU_\YXYT[]TZZWUYLXZTReWbY\hO_YX]jV]UMT[R]W`V]PV_YXZZXR\][N\\O`ZUUdJZVS`X]Wm`bWYdRQUKVa\WUZWTW`XRXdRfXS_RUW[T^UYNV\WeX^\VSYW[TVdY\USUdYo\R[XZ\X`[SbSd[Sg^XWXUVO`SO\_^_`VTdf[Z_X^_UU`gOUSeS_[ZX[UVTU\_\XW\XYXUU[RViXWTZWUa[fh\XXPTTUVZ\NbVaQNd[c][WaaYW]VXQZi]aVZZZ`\\X[]YRXU^YPSSkf[WTf_]^MWVZ[V]WW_cUZW`\ZTOW\QW_\TYYaX]UOWU[]]dZZ^ISdM_QU^QK_ZTYWNRVVU[^^VJ\ZWZ`]RP^UZbS_WoTV\RQZRXOU_TWVTZW]aO[UZ_\YZhURV^\[VMX_ZTRWZQZ[MV[R]S`b[\`ZY[[_[^WUVLcY[W_XSQZV]V[VYX[_V^XVM]gQU^ZWW]bXX]^ZKWV[\O_``V[[[PNZV`PTVTdVVU[Z[ZYZlX]dSQUZU[VXTS[[UvdTT`PTXXVYPU]RTPWZ]]Vgg[VZ]URXRj\\VaZ[hdV\\NR``hSJZUVON^UWZZROSSPVgVZ[W]YZXR`N^\[\_WUT\bR]ObZZbWTYUQSRS\OR\aYXNO^X[W]VPMh]ZU[`_[eUZ`VY]XYVMlTfV[]RZG]RVZ\`U]_]QZYVUYW`_YXRZQ]ZYQSVRoY_^[`RcUZZacHbQNXT\[_UZJ]]TPRUW`eU]]Te]aW]`\YRYQ`Ud^NX]XXT]YSVXLVWVSPUgXi\ZWnWP^UVY]O]XSY`SOX\RMVX]QWVVeQWR[[R\aVYRS^PbXTaY_Z[ZnZ_TpT[ZH^UTgSPdU]Y\YW]jq[TNdSTU`S^WbXN[VYWNTaST\UddPX_ZeV]ZWPSYXXLVY_\hfXUWVR^_aQLgTU][VZYXVSSYZ[Z_SYW[a[T[]SVNUZSZ`XbVSXNWV[TY[QY`Z`gRPVTQf[`V[ZTTcUXVX[PV\]LW`SXdQZYZ]VPQ[^QQUJc_TU[SUU_UNXT`RcUWUQ_dTVZUcaU][UYR]b[YXUVV_[n\PXZSXQTVVY_\^\PXWV[NTQUTXQRQWbLQYYTYXX^XQYQ^X[[a^iZWcSZ^[WXVW`NX]\W]VVTZ[WYhXZVS[YZ`ZXYXPSVS^Y`ZWYRk]UaYLYTQTYRRXYZQSUUM\cWRYTT\YSaO[S\fR_SWS[XZWSURIVYNY[XZWWh^RYV[YW]cZYTX[R]Y\aa]YX\ZTU`SWWZVWTUYXSOYZT^\W]aQV_W_\\VejLT\TTSW\U_\XKUOXaOTQ_OUZ]RUXY^YeSYMWYRaURPVZZZSQX\S\Z[]RR]bSV_VSY\[W[Z]\UTS^SXh_YVPVa^__VXXnUV\Z]Y\]e\ZZNZeWU^Zb\S^WWXX^[R^\STUZR]X]]^^XXXd]\WQRT\\WTXWZ`_\TQd]ZYYV_VU`T[Y\ZV\[W^VPQTZUUPYTRVVVX_T`V^YUZRYWUZU`R`_X[[_cYYZ[RMj^ZY`YjYYQ\]TZTbSTmUMUVSU^]WZ]SXVYaW]]TOVR\^Y[P[SS`^bYTYV`\T^Y\WXWPkUfYdYShZV`Wb^N`XVV\]bZQZ[PO\[[SYS[VQR^YVVV\YYZ^\Vb]_PX^aX^XY`OZYZ]SUX\aTX_VQXSdX[YVUV]Z_\[T`UY`XV^P^ZU[XSZb][Z\gZNSN_VZXP[Y[Z^XZWUc^XWnTU[SbXVRZmYZWY^l]]XZZc]\WXQbY[]YSVVe]Y[Y^]Y`ZfQNWS[WfRX]c]SWR[^YO\ZW^\R`X_[W\Y_URXaUmUcT[Z``P[WWW[\VYX_[eS_SZJUXY\V`XY_XVVd[Q_\VYWZVQ[VX\VLRW\TOPWWcc\SW]eQ]Z^[X\WSTVUX[a]UR^V_][RUQOW\S^Z\VVX`]`WS`[]a]Y]^\V]VR\]^aUeW\a\Y\Z[R\YYXbZRoZTZ]^S]QTY[T`UYWgTX\U`XWUaZ_TY[ZRYXZWea[]]^SbYWVPSWR^UdXPUeW^XYR^PUWX^[WTcXXUUP[]WTTPRQ[u^aZTVQQRZU[a[UZY\[cSY[WcWT_YQ_ZZQV^[X`WdVYVZQ\TYOSWX\U\UO_dFRU`XVXXW[QTX]]TU`W\UPVO\TXXVSY]U]X_VZ\^^U]ZXKT[SOYRVX_adcU_WWZTUUO\ZRRW`PaWfVJ]WVaPTZckVV\S^S`[NURYQiV`Y`UR[\\X[b]UWUZO_SWUVWV^\UP^JeSaQMXSVWZ]_]_S`]RV^RU`VXVYYZTeX[``c[OS^[`QT]WXWcYaNWS[U[\TZ[[^^\\Y\e]U[a^U_XXS[RWVSRPYYVUgZQVXV^OR[SN_\abS\XX]\V`^VW_MT\ZPSY`RUX^TXTWTUXTcW^aVVOZV\`VTTPQXaO[[XVURV\]gVTTUIbaaWRWbb\XRdTWZL_QY][QYUcYbP]\QVUOZZbS_LU]NVc]S[^YSYXY][\RUT\V__TaXVZ[VOSZZMYXW`V[TWYYdVS\]VT[Xr\TXRZ]d\\PU_^OZRRT^aZd`XdQggRSQ^T[TSe]e`TU][YRZZVXXRVV]Y\YVQbV[W[ZaUdSXSS\NaSVWXTQUXOYTWY[PTZ\OPd^SMZY^W^Wa]YQ[YYZVR]TQT_SPWc_bNUd[H^YTW_bX^YVYY]W`dZa[]PVVXM\T^cWTQX\T_\Y\WRPb_U^[]XZ]cZ[UWbgU]OXWZURTYYXNYPYWMXPd[V]VZSVWQ\^T]OPN[USZOWWYXWTLU[Y\YgUZ]J[ZXWWN]XjW\[Y\PUV[S\UT_UWT`UgWX]ONY`TQZ`WXSZR[SVWURLRccX\ZT[RY`cUWWTZXTWZU[X_bRU[R[TVQVXPcUUZVTWXQIX[U_TKWZYYfYX[YWZfUSRWSV\[YWT_]LNPR_T[]VYXZXUUUUXgeUV\bZYiRV]UYWW]XXPU]aR^aTRaW[Y_]ZKJUQU^`[[SYhYYZXYTSNZVPYV\QXSWNYjYNXZXVSVZS]XMcTUYVPnhW_^P[WZWUW^XZ][bLfY`^S]O\RLVYcYYg_YX]_Y]PTUhcJS\_cJW^VSTaVbaUZgUaPbVZTYeUZX]_V]YSW^TXVO^TLYRTLZhQTW]YUWVaYVbYYXXRZ\]O^\Ua_U]cZUNh_^U\\S[Z^^]OLX[TROUX\NY`MU[Yg_YZUZWLU[WUfT\Z^[V\ZU`PQVfVY\^aTZ^UK[ZXKcV\[UW]MUZXW`VJ]beXXULS^Z^XUYY]T[h\QhYX]ZY\LUlOP]U[V]ZU\aL`Q^VYPPSUWYVgO]X]S\]\TZ^MLZ[NcVWUXUJbS\_XWXbVURd]TZVYXWRNZRTOY[^Q`ZQVYXS\l`]YWN^]QTWQUYSZLZZUUTLQVZ`Vl^NQ\OT]R\]VPYbV[UXUPTQKVTOYY_TYYZV\R[c]`XUXb`_[SaX^[\S][\_V`YUXW\aWTbcQS_UWR[VX^X]ZSpXaUXR^\V`]]YaZNXSSZZTJ`YefSMX]RTR_Ua\aXSX\WFUW_Z_W]]ZZWT`W]_V[WRXMVO_[ZRQQ[Z_XQfZ[Z]W\XWcR^UP_\`__TT`[XUZWVX\[XbZRWWOaRP_R`WT\XK]cXUgV[Y^VdeVY]TZeZ^bZ[VNTDX^]Z\\[VYaQS[jf_ZF]ST]]TYXR[O[]h^]RYTXRbTWRR[QYOZYMTW_UX\_YSS^Y[[\SUYX]\\TWYZ\YTg[aSYUX\R\cWOZXhR\WbUVdWRVSW]TbV^Y\T^SR\_TOTU^YVe^RV]VVT_R\]WbjeZ^e]]\UVWY^\ZE_`XR_SUSRbcWYRXW[VbQ^RPXUcYZ\TQ^_QaTSTZUYWY\NXPT[]\[`^_bWT\XaS]`_U[RX[LVVTSbVX[[WXTRY[O][UYZaQTS`[U]dWUWbQ[WTT^YfZa\Y[PWRUN`\WXXX^`TVVPTW\aXY]VS]OUXW[QYZ[[ZhWXXUS_f]WVSWS]WcaZ\R\ZZT\]W\R[SaT]a[YSSH__YVT\YW\ZY[MWZ\_SWaZ_XO]UX\bZT[Tb_`TOS`SW^YWYUTQVT[S^WX^TWM`NX]\TVNVU]aZOYSd`X`YPHW\^QWZYcP\R`VW`UVTY\V[SYZUVYTkdZUVX]W]_MS^_YZVTV[bYRPcQQVX__YUUW^bUbWZUQQhXS]][gYW]NS_adQZPbL[SVVUWXWXZaYc\SU`TpVUW_]SQXXV\ZK^bZZab[nTY[\TYV\_UR[_ZeS]P^c\_[X[VX[WX[\SXW^]PYLWkZe][XT`\WYVWZSdWb^\TV_VlVJWXR\`\Me]NaRW^iUYYUOJTWYUaXU]WX_d\XZYa[Wb`[Q[RXUfQX`WZER]`YVU`a\^S[cW__`XSX\XQT[Y^\[UXaQb`YX\Q\\ZY]\WZYXXX[M][Z___T`VU_S`[ZW]Z]_^Y\PM\O[[ZX[YRcMccaRUY[[ZZL^XZaYVYO_TXU]\]__SZSUWU`TV^[XaLTe\\WTcTX]W^KfW]UTUc]kZW`Y_VXVZQOZUdRSRYMVO\`R[aTONiYgWO]XS`YZT\MJhUOVOZPT[YWZVXW^Q[WURXZUSe`UTXUUVVY^bYV[ac]ZZ`WWf_T`IPV`Ti\^S^^ZQdTYXTVYQ\MV[X^R\`UO\bZRS\cW\Z_RbaPNVTZUPaZY`Se[O[YYdXV^\PSV`][GTf[N_Xb^WYX_WRTS^RRWZZUP[TINU[XS\ZX[Y]S^[S\VaVc[_bQMUZV\WUV]`UbR[f[QXZO_Q`_TTQRT^[VS_`YW]Z]h[]U\NX^`Y[N\YT\L_VY`Tf\Tg]bQZU^TXYaT\_TXOUOZVWXZTSQXWWRXX[gXZ^ZRYdbVXTW_ZZU_[aUR_YNSVYX^T]YZXSY^e\XI^VXZT\]XSTZ\OVU^b]\^ZXSTY[\_PcUWZ\UYXb\]WWYVPYWY\Y\RY_PZc^TWW\]cV]zWY^TV[`]XcVbc_^UXVQ\V]XRVd]YXbVT`Y^S^V[VQ\U_\aWX^aUQPTX_RVUO[bVYXY][TUW\]S[UPTRXYO\WSQ_SY`\U[SUXKZUQYTU\_W]QUOUUZXSXN]X^[]UWS`aR`RZYNU\dVSXSXXSZd\RZXc[VU]WfVVZZYVW[baV\UXUT_WScTVdPX_WUNO^^W_YRVWMR]VYW]VX\X]eURaXU^QdOUX[\ZZZYNU^WRa[]iQaYaRVWXTX`]\WJWT\P]WVS[YTXXMHVXVVX^UUTgZZbYPYTVNV`TWPRcbTQRWYPXT^V`X]PXV[VXMRM[`\[Z\VdaRaW\cV]\XY\`\a^V_Sb_\bWVZYWT[LRPWdZRQ]Z\\NRb[Z[T`SMWc_[YTWaX\T[YYYUaVTU\X\WSX[Y_SY^SYc^[XV[ZgQ[XUZW\VcYPSSe_SZRcUYUV`UX]U_]bXZX]]V\US]\SNV[TUW]ST_dS\VT\]YTWOX\Pg_[ULUd\WMRTR`L\IZ_ciSRSUVYVSNYZ^UeXSLZ`[_T`XjKaYVaXcTUSW`TVZW[UV]^XWaXXY]`^\TYWU^eUW[[[QUS\UVOS[XVY_YWUVUTZXXWe\TTaSYWZVXNYPc\a[ZQb\XHQWY[Q^PUQ^Z\U^`U^^WVUY^\^\__VXcT[[]XWV_T^Y^b]Y`R_VZZQNMS[[`VYQXSWVY^`]UVJS_[YUWU[WQX[]b[]XQZPXTU[`RaTZ_RU^aPUU\`VO_YVc`_XaYZWR^YU]ZW]][X\SQ]S[VU[ZZUYWQ[VZXSWS[\Q]UQaU\Z[VWUVVdXPS[UXZ]`YYYXYXTVZ_XYXWZTS[bTV^T]Y\]WSU\Xa\SgY`^\XVVT_bXUQ[WQd_\QOZ_\^XU[T]ZRTM]W\_ZQbRVZWT[]PV[_ZZXdYUWX_W`QXS_]XWe]XaZ[^[YXNXScVWYZYVUR^V`U^W[S]R[WVXaYPW`WXTXWYV]XXX[ReaS]X]T]c_QS]ZQVYRTUVXXP[X]c\XQaYV[W`hY`\^_Y[`VPWY^\dX[`c^W]SYYS[f]V\\OVRYWXSTYXYX_ZZVRTUW_Q\Vh_VUVYQ[cXMV]a^^YZPVXXZZObd[V^c^\\]WZUS\T[PTUUS_UUa]bXUP[ZZ^\U[SWXWTWXNWZZ`R\]]TUaYQWYS\]`R\Wc_[WUN`ZX_V]Z\XTQZTaSU]XYRTWWN[PURVS^]aYV_WcSP_^R[^P]V\V[XY[XPiYWcQUX]V^^bZ^YRR_eTZ_XU\YT[\]UPUaVXS^]YZTURWWL[YVUSQZVYRWSTXYWW]_TPTbZ[UVWQ[P^UVY__TRX`VV`]TYcahaX^ZZVYZSY`VRTOXUTVVZZ\XbYUbSVQZT]UZWT^SUWY\VUZV^TbYXRbcX[N]XR[[\U[]][VV[ZVYS\P_VQ`Z`W[RUV[f]V^TMYNXPYZXVQ^^WU[^UXWSZZS^YZ\\[SZ[ZUTZU[\XaRU\VRc[VT\WWXZWWT[X[KU\SVUWX[c\\_Ub\W]b\VXXOVZ]ZQRa^XV]`WYT\[ZWWRYiUSZ^[R^`ZXV\U^`bV_bZTUU`Uc]ZVX^c`PNUO^T\Q[YMXYZZWY`UVY]ZY[P^W]R]QXXYXVUVXV_^OUR^\]ZQ_beVWYWa^\UeH\RZUPSfU]TUTVP^WUSXfU]]Wd^WYTZXb]P\SQN\RX]]W]WS]QTRRWZ^^VaZWdR`kP][_[V\MYV\TTZ[TYKeMXW[U[^X`OOYjWVdST]TWQf`c^]_OYX]UY_`R]\XX[Z\YWR[[WYaW[e\_WU`YVTY_YPWXPXXRY^ZYYRXbZ_Z]TXOZ\fZb[cbVV[^MWQO\WW]NWVQTW^TXWbWX^YWSZS_][^]X_PWUU]XQU^Z^\P[S\gWZ[dZRYcQUX^[]S\XZ]W\]]VYWZUeYSe[YbUm^[[bZ^R^XT]cVYaQZYaUXZRXNYZdc]UZ]OS[^aVUX\X_TeY__SVhbU\VQPZT[XVR`[WSU_]U[VZ_QKhX`Y_Vc[XTWPR_W[gSZeU\eYd\\WZWQ\dQdYRV_cV_W\WU[XWdRSX[SYVXS\ZZWb[eZIYZ\WTWPKb`UXJNhO^Z`]\[QXL\PZVV^PaY^fWR\`]gb`W^p^aXWZYT`RU[U[VVW]X^YXS_^l[YST[UfYUR^SYeYV\W\`YZV`aSXSTRTW\YZ^ac_TVSRQZOJc`ZTS\WeWTeZWTUbbVXXVZWY_fUdZWa`\eVZVXQVPVZU[ZY^\Vb^VV`P]ZSUW^LSUTSVcXVTYUY_]Y^WU^ZTdYSVeXYZSR[STfTRQegWTT`VYW[TT^WY\`VR\]]QaWcRTU`RcZQTWakYL^[_ZZXXP[M\YQXVRcPNZ^YTSbcQXU[QeRRUYZOP^\T]SUWWc`U_`V\M^]`WUbUTV]\XP_V[VWceL\RQS[R\XXdU[TZX\PY]\VUXWZcZ[QP`SVe^X]bU]dQU\U\RTYN[V[WZXZa[^YXY\OZQPQVPh^W^fcPTTTQPWZSUZW_\XVYR^\b\SYUaV^V]V`cZZR\dZT\V_[cZ`[QY`Y[YSpYVWNXYXXS\[WWTYZTUYN^YUYWXYZR\\ZV[^LXYWU\^UT[fXP_[`]eVYV\`[Y]SP\P^SYZ\WT^]U[QdZTU[bVPOZ]W`TS]RUX\YQSi_Q^ZY\T[SaT`WXXWST\QWTZTUR[RKRW^ZTZYXaSO`^YLXVdUSUZ]WZW^ZaX_[\[WR\]TV[VSX]O\_XW[^_a[\X\YYXUYRWTdTTXT[^TZZXY]XVYQXX_bZWaV\^`V_^O\T[d_]ZSRUK[UWL^_Z`W]TX\kWT_[RTbU]_PXYZ\W]^X[TXSc]TVWVbUY]ZQ^ZYTW][YbL\]Y^ST][ZTZVQT\SS[W[RZ]dYVWSYWX\abaPbWX_SYb`YZV^^bVZ^d^UT`ZR`YUVUWU]QUL[TXVT\WQY[V^\[SaaVT__P\iO`[TXTX]]XTTZ[[XYOR]ZQO\Q[NXUNT\hT`b[YeYZUTs[aOaZXZ]aPPeaVVZVVX]TZ^T^aYY^TXXd`TVSSeSTQTfdNWP`PWSZNORV_]VR\VQVd[NO]][WZWXPZ\a]PS^RYVcUR[_lV\YW[NaLViRKTY]fW^eUXYPS]XWTV]Za^R^\W]\WYV\Z_QYPTT_RYT`_dTPX\`XT\TVPYTMXPX\`cWWSXWVVXZMRUi\][[aPXVZT^ZWRQXWb_\X]WTV`XPc]^`\WTY^SXW\QbWWPTVSZe[RXX[a\_`WYTNPY^PZJhMVZV[Y[bPXZXW\QVQPRQRRURZW[_X[ZVb`dZTUKUSRcUU[Y[WWaZWfiYWPW^^`ZcWXVZ\WYN_YOV\TMbYQhRPV_aiLeN]`R[a_YTUQg^cVY[V\\[SYWQ[LS\TVVcZZ\\OZ[VWRZZYaVI_a\X\WUY]OXKM^SXW_aTVY\`\fZTTdXT\b`c\XN[i[VWa^W\_W[MKX[W_VUTV`XRN]SdPZ[_O^_[X^VR[XJ[XT_W[VVRc\VY]SVdXY\WV\VZX[b[ZThVVTWZW[Ta\Y^RVX[VWVX\bUS\UXgUPYUSO]TbdZbP^[^UbZQhUW\UTXa^YWXYd\OJ^QMS\aW_ZZ]Y[bT]][_aSSRZ]`[_R^ZX[WY^VX[UVXU^cRkZ`[ja^b[YTRO][\RO^_ZTObY`_M]ZWM\^ZRYcU[T`OZSU[SV^\\UVZRTZbd[M]^\KcY^PMW`_SaZXSeWYY]WXZOZbU^OYVUdXQXRda]ScWVWRWO\]fVW`V[[XY\VM_[U^O[]XNQXXYS\S_[SRTY_]V]WOZK[ZbdR[UO]]\RSiXWU_\TU`V[^WT[_PYQX_Z]S_UIUxaW\a]^VT^[R_YaN\RI^]dIWWX[O\SWXX\VXVSP[YYU\YXYWbXTaO]U\\WYOW]RRQWRcUPQ`[cTV^VSUNZSUTUSO`bNRVdXWT^V__^_PYcRVQSVXTRWV`UNTT]bXWW[W[XSSWaVWP`UST_LWR^VYK]RSYaY[^Te`VXS\XU\`U[m^`eU\Y[`WYNYNYMY\UXYLVUNXcNY^RN]ZY[V[RTWdXSOVaZdb[^TZYVOZQPX\LPVSMXZ\ZZZZ_pR\TYUQaR]UYVSS]^\_MVWd\UR\Y]ZOL]WZWO^[ZPbc\V[[XTYVRZ]^X[Z][L][VZab]ZR]b^VTNaZ[SX\ZZ]UX[Z^^YSTaUS^UVUTTYXRNWOTWTN^cYYZ`XUZ^TVXRUjWUUPY[V\SS[TZZ\h\ZVTW^S\YO_QY][N[eW_RRZVe]U[\U[ZY[TagNRRX[]Z^UTaWTTY]XZZYZPXWVTV[U][UOY\\[WV_VYQWVSUV_PWTYVOM]YNWY\cU]^XS_XZX`_YVS[XTZU^RR\]RSSRVc]UY^XYUU_Q^_STXk\V\WSZO\TY]ZeRZ[WSVOW[^VY[YaVLUZZVYNWVSZgYXXXSTW_\YSfRWQP]\Xc[J[ZPXYKQT^^YYV_UYZPXYZY]`T[ZT\ZWYXYMWT\O`]ZQYXYUX]VYcWXQTYTX\_Z\ScYY\aReW^XS[SW]TW]aTWVXXU]YUR]]YYZ^Ya\YXXUTSbZWVXYWY\[ZW]QZXTUZZ^RVZTXX]_ZY`QS\XdZYgUbX^eYYTZRYdbVWZXXSV[WU_ZY\X^SV_TWT^h[[]TVTV`Y]Y^YR]]WZXWQUWbYXVTYU`XP]TV[eV[bXSaUhYW\ZXWTQVdSW\Z^Y[VYY]ZNZWVQ]\Y\W\S]MZRX`ZNUbW^[WXS_^\`ZU^XYX[WWQ^\Yb\UXV[TRJ_ZYX``XXWY\X]\[U[XRW_ZTVVTMF^]^]XVg^VV]\W]^[hSKYZ\_YZSQSbZSeWU^XbZUZ^R\Wbe\`V^eZ]Y[]]Y_Z\\R[XU[bXZ^_X[]Ya^]SYeeZ`YUW\h`SQUZ_VRaX[][a]XWX^\da\]X`Y\ZPYW^Z^R[USYTd[\\UV\U^RTaOXX``UZYVVTa]UXZ_TO]_MaWYdZ^\[QNTZ\ZY[WYUXXS]MR^Y^XY`XUQ][dU\^R_XW\ZT\UW[WZ_T^Z]L[`\XYZ^TMKWV^KTVMWX[]TVSZ_\VUW^^TX\]_[Wb[ZT\M^Y_V_XUYS^V`[a`\V]PcbVW[TZX[bTTYYXcXQUWZ^TUcYoYTS]TV\MT[R]dRSZURa^TgWbj^^Q`TcWWW]SRTKYRWQZZS[ZWSUZVSXXZ_Z[i[UbXb[V_UVSWXUS[STYR`[WV\VWZVQX[Z\c]oSXZ[RYZX`WUW[UUSYWT^QZQZ\SV^Pdi[U`P_aW^\XQRPWRWfOX^_^_[\TZVT^NVWVYYXXZ\ZZ]YM]Z\VRQTT_SXUc\TSVQS]RZ]XU[XlYWXNL`RKVZY_c_XZZWdX^bZXYMZ_U]\TaUUZZ]ZTVXg^^\]SY_biTTMXNYYSXWZUXXVYXSVWU[ZYX\][[O\VIW^b^SVYW[aRVWWTfQW`a^O[UX`\VSVVXV]YRUTT[X_]YR]UaL]ZS`TP_]UWR]a^X]Zb_Z_f\\[TXY__Y]c]UTUT\XPSVX\QTTSU]ZZdX\[SWf[V]RRYNV][R[I_ZYV^SZ[^\QQXaT]^SXVWYmbWZYNTad\T]PWPYPW[b]TU`YcT_N]_[Z[b]\D[^U\WRY\[WVRWZa_SSYZLUTWY\]_\[o[bVS\[YU\V^_^]`S]VU_SRQW_ZX\X\Z^[SS\Z\]Yf[_YRWZVV][RYZcXT\[V[VUXPSMQVZY\UZRaWQTU\^]TUNYPXXZXWS`X`ZYYe^Z[T[bYSTY[Za\[dPWYYVZY`VYaM[USQ``[QVN][X[XUMaXZ`UUO\RVISc_T\WeYfYYcZWbUUZX_UdYV`]U[W_\VcQY`X_Z[`Z\^VP\]W\U[U_VcZZUQr]SW\Y`QaTZXVWVdV^ea\TTZPa[]UTR\Wa]VTTXS\WTaUTOPYZ^ZX_HRdSaORV\^]UX\_UW]V[UU\UT[XTTT_TQT]ZRV`SS`W`UZW__]`YRbXQlh\W^TOVK^W`[SbTS[UZYMXW^TVZ]YM]SPSXQXm[[cW]lYTIVYS]TURV]X_XW]VXa[\dWR_cZPO^RP[WYP^T\[QOWcQVUZPWTe_UV\_R\YRQN^`[^_RX`^ZZ]Xg`U^_]SbY]W`YPeX_Ya]WPcXUZWOZW[SdXcSX`ZTWTYS\l\\aYT\]W\U_SU]S\Y[S^Qg]XI^cWUQcPQTTVZUQ]eWZYVYQ[\W\QTWPbUZMW]WTTSSUYbRbPSUWVTY^c`RY]\b]TQWPW^UdXWPXRYV\SZRY]SUYQSTV^iR[T[SYXXUR[VQ]WVW_TO_]VUZ`ZOV]Y^YNUZTQdVXc[YSRVZfPRWZVZSaVPSW\\R]ZbY_`QTWU_]VZ`Ub^URXYVYaLQTUUWTU[T[VRKQ`Z^T\UVR_RWPTW[R\QWXWTPTaWYWUTTZZXKbP\VXR\ZZ\dQQTXVYYXYTa\VN_]WXPUVVO]VaW^WR^cSXaTPZTYZ`WNVVX`bV^WQOVW[NUa_d^mYR\bZShWTjXZS_[SNXVNPTSkUNUXX\XXNRO_\VdVYWYX\aTSZhU\TTZX[U[g[UUYZWWZYRW\\ZXVUWYb\ZYWW`USU^XZ\ZP\XYVWXTS__U\UTXT^V_Y\W\V\a[V\V^\YYVXSXXQaXa`SRXY^\WYW^STXV[aX]_TWTa\TW^ZXQUZYbTQYVXTVZ]XWYVSa^T]SWWSVXZ^YS[\TZSaTXVTXTeYYZXUZW[VQZWX_WU[WUSYWVX\S[ZPaVcRTWSTQWUZ]RXZXUZUXYY\[U\`]T[[T[XSaXTPaZ]_W^W`VZYQZU^d^TU\Z[X\XW]WWSTXUTVXZ_]Y^WRYWSYQZ]T[X\X\\\]TOSXXY[WUXWTYYZYZ[WTaV]Z]Y^YVX\]RZRbXZ^YZXV^UUTXZ\X\XY`Q^X][_[bXZT^YVaYWV^]ZXXaYWU\UZQTdXWVZXZUUOPUZ\URUWc[[U^a[a^Z[RUYSUXTcUSYX[YXR^\\SRWUWT_aV\[Z^X`WQVV^ZSUYdX^YUX\OSU`NT\YVRaN\IV`ebXXX^ZSV[WVZ^V[eLORV_TXU\U\][^]OT]RcX]bNZVcUQ[]WcU^ea[T[UVZUYYfMXS[X_W_PR_UNZnYEUQYd]SUIYTX`X_PVQ\U_Vb[XWa]YZXS`\W^YYZ]UcPKYQWaaWSVW[TX`WUV[gC\^XYaVVXOSaXg\JN\XQW^YdZYQWQW]e^_ZVPPa]UN\QWW]b^LWZWbVVPHY]RQV[`XWOV[b_TVV]]MUSYaMhTR`TZRSNr[_\S[\^\\ZTTPUUV_HX\kNUU]M[cUVShUYSN[\VRi\SXVU^OTYVYXVYRRS\MZcZYaSWUe[PWXMVYUbZWTcYdO_\QZZ[SOX[QcU_UjW`VIU\RVT[VSN[ZUg[ObXYOZO\SXSV`RQZ_fcXXQYeZUUUKPiZf\SY^UcQ_]TLgYVYY_WZ[[`^U`T[_SMZTWVZ\ZSifTPOa_YbZW\XZY\\]^[^ZXb[TU[\TVVTZU]`\iVX][X^U[d`W[X\_aL`[YZTV_OU\\d\Z_YaPS]n]YXU`XcUS^W]eRSb]MaS`f^[_\VZ[TSL\WdaVdZZTZ\]P_]W[Z_\[Z\ZQVOQW]VVZV[]_[VZR\TVNXWWUVWZ\ZVWSWU\ZTaaM[a\]YYXa^Wd`RO[TRXZZ^c\[_[[U[W][\_WVXeQRXV]]Y]XaRYXVZ_TZYRYY`XX\_PZ_^\VUdRYcW^[P_\`UXV\]^WVY]``fZXXTX\\[][_UVaj`TWSZjdZZ[Y^V^YX\MW_[VZbQXa^WYURTUcVX[abUY]Za`aY__VX[WITZY]bgTYRaUYZPO_]``UY^^af_YYZQTY^R\Z[Xb[S[]cV`Z`__[\^ZUXY[U]VUZ\^YWVWW[V^SZTRU]aTUbQd]^SaS\^^X\[e[^]XY`XRUYT]\URR[MYT`O]^\[Y^_WTZQWU]V]PXTVUV_PP_YY]^YU``H[aYYXYWZZSbQZVcamS`MUR^R^S__RWTWRXS_WZXdYSO\`[kRY^OMkY\ZTX]`ZZ]XP[XWWWUUVQZRZVM`XQdSZTWYQ_ZYOS\YcU\\SYZWQXSTWZVeRT[Z`RU[WWXT_U[gKfUQN_]ZMRMRTPXYYdQUT_Y\[UYTZZgRTXVSXQYVWW_O_TZYQWVXVTQY_`VVZ[SVZaI\ZeY_\]YZUUcYYO`RVTW[W[TZ^YZP]cU`WZ_X`WY^[UZV]XYQSXQb\TSeU^UY][OORVSVXX[e^SU]WbXT`XW^O\VTPZjYVQXZPRXWQWWXXP[XQX]UZXeZYOa^Y_^ZYVVVQV`P^_PbZZXS\b_SSUVUX[WaaZbZMX^VQVZFY[VWQT]_UW]\X[]_TOs\]_VVXYY]WXRR]]]VecVQWRdWUbYS]_UVZR^a^S]NcZc^\_TbWeYS^\WSZYY[QTT]TQca]TPQ\Y[V\XU^SSIT[n^VR_NZRPRW[[ZYUZOTZ[ZVSUXM_USTUQcZXTZ^cYa][NUQXTTU\ZY]N\VPOQ[PWYW[_ZTb\TUVSZZZ`\ZSTYZ^^aVUjSS_WXUVTZ\\_cc_VaW]mRYRRYUWTSS]SYMXYWXXU\UUfTX^OXWXdedfU[^VYV`XM_]ZXT\V\U_X][_[\QZYVTMc]Z[X[V]`^R[XV]OR\e_c\ZX[Z`Z`YTSk]WYPZ[YTRY^a]SOZ\YQ]\[P[YXZbURWVZ\\YWM]VX\WTO``RPVZOXT]^XST^WVW^Q`ZTTcU[TcRVg^\WV]W\VVYX\M^T[`Z\UZb[\T[Xbc\UMRTWWYOR_XnXWTX[^ZfZTbdSQXYTVV_TQXde][QQQVZY\V[VX]X]gY]P]RTV_ZeXWVW^XT^U_W[^cX[YfeV\h^d`_YjS[V\\VcW[]Z]YWXXWVUSb]_[[b\a]^ZZZ^_]eT]`[SQ]b][ah\[SU\YWZWZV_[[db]NcYT`SOZaaSXY[_QVT_ZbYYUZZW]VWd]`]Z`]\Yia][cYSb_[XXg_\Z^\VZR[_[[[XSV``OST\ZRQXVSW\[\YfSO[\Z]_Vc_@[RPa\m_\`YXRV]`ZVfab\Y^W[]]]f`V_^Za\_\___^U]f`aX\YYUZ[WVZeW[T_V^Va^X[ZVY^WOjca[\_W`UhSX[a\daW`[TZNWR^Sa`_PSXZbabYZJ_[XZc]cY]W]`__ZY\a\dWUbZZ\SY_W^_c_Y_WV\XXV][dma^aU]VXW^X_RXT_Y[ZY[WWXhXYXZZaT\SY]]YY_YZZX\W\S^[T[^Z`a__]U[Z[_RXo^]\U^Z`X`[`Z\bQZZ\\ZWRX```Z^d\\\VXX\\a\_^`UVQdN^R`U]SSKVVQgUT`]cYbXXeY[TVTKS[_`hQ]XXRXcX\Q]VYha[VVWYSVXYU[WeS^Z\]XX\]OPi]U]UWbiiacYXVYY[_WZ^T`W_R`^_Y\WZWR]Yc]]WRZZUW[WSOb_d[[`]TUQac^[U_ZYLXlY\N[QVWbP^_Y]^]VZO[QQXc]KSZXY\U]XYJdbWUTYWRRQT[QYVVWWaSZ]SIdXTSYY[\VRNXc`\^T^\[F\]YMZYZMYPXLa]TQWMbM`W\Za\[]Q]WMaYV_S][_``\YWUN_g^SX^YU]VU^^_YcZ_SXR[OQaUMNOOW\Z]ZZSSS\V][ZUZdXg]TNb\UTaT\\`]`SY\OUVT\URgXTXf[jbZ_Y\WZ\aZQ]T[TZV]SaUUZU[SR_SX_V^i\\We]dUSZX[`ZgVWUYS[WSV[\YW]\QmWYWZLQZWV[\\YTbecZUVYYZZ[fYb[Q]bKZZSOUUSYVYYdX[XYKTUXUYcUX[XXYJPeO_PSZXXSYSS\ZZ^GcS\RWVSVYWdUYaf^WPXZ]QVS\\QV^^YJLYQUeaZfPWVY\]VR_fYUVQWX]V[WEPSeUYgXXXbQ]\aZ^kYMfVv^SW[ZROTVR[\VZ]P`WPd\WM]XY_JWVUXcU[[S\Y\PQ\YZ\S]TXZT]RWZTP[Q]R\b[RWVYR\KVXVVlVeYXZ^eaMQMWYVT\b\UWYWNYV`WVWUO[TbZWYVb^R[YZWVTZK`VbU\VfcU]VWV[[WXWWZOXTSVV\SYp[Z[RURW[W[\R[Y[^TYWcpQZ^UZUUQb\QWWKXX]PWY^VR`TQYWVW[RpQ]I\PZY^eP[beWXTZ\ZOVcUW\SWRSZXYc}]ZWVWSTUOPnVTh[bLJS\YWX]MKZ]WY[[Z\[[jVb\VpWZMY_VRWY_UpW\PZRbSZ`VVXYSWUaSd]^YLT`ZZZTWQPZ[YUS[Z_Vr\V\\bUWWU`V_SaZZ_XY\UXTRTYXZXY[_UVQVf[TXS_V^]]WY][Z_YP\XXRV^XaTVOQVVR``QWX\dSWZZ[YX^fT[U^W\l\]\ZVb^TTP[[]TSZd][XZV\X__ZW\]WZ[[^PXZYYaVWbWTZU\^TRT_d[Z[\]YXX\YV]V[UT\T[_\Y\]]T[ZUV[SRUSYVY[^`W^WYZYXTa`fWUV]ZTXZYWX_S[dXOcO^PTY[ZWWS]LUVTS^[TcXQYU_R\OYZZ[XPWU[TVYWQX^[PYUYX_[TWaT]Z[Q\NVaNWc^[`WXR[VX]ZTW]XR]XeW`SgY_\^P]TVWa[XZWV`[QWVP\SVUV[RUcS_Z^XVYahXUYQSUZVZV_YbWX\]a^^XRVZWS[`UXSXTRwW_XOgScVU_ZSUUYS^ZaVVZZ\VV`]QTZY_]XaX[RVMWVYY^Xd\OX\\Z^T\XZMXSP^VW`XZTOWXUgMZORQ_OgdUXSWTUO^VM][WZNXSaXVZQV]VYXZ\bORU`UPQ_[Od\cYhWS]RY^W^W^Q[]\]TXZ_\\ZYRdYSX^_X_\\SS^W^VYw\[P[P^SZS__XYXYXTe^SW]TXZXbUO[WMXUQX\\U[^cWVW\V\ZYVUQ]SSKXNWUc[\ZdLdWZ^\UWVUQXYXWZaT_ZS`[YQOX_UbZT_\Y^XW[aWTTbtYbLQ\ORd[_cg[^VUT[PV]YRZNHTaVXRVUTU^OM`V[SV`XX^XTc[^YXTSY\UZTQSSSWVUTP\hPZOXdV\QXXXbN[YXX_WSWVYUQ\U^Sd^Z\[TVVVTWc`\UPUdWZ[T\XXMcXSeTVXZYYUQWWW_]Wh^YZ\dXTUZR_V^PUYMgU^RfYVXUT]fQSQOZ[ZWRaeWQYXX_Ra^_^QRT]XRZW\W\^S^XQ`T`U\T]WVUVgVURYXNX`XVWTWVY^T^O\VY\UTWWNOTY\PO`OYW^\W^cXPVS\b[c]fL^g[Zb\^YOXYaU\O[TTS`R[TdW[b\LSLLUZ^^[X^]``YbT\]ZW]S[[Y^Y[W\]W]\WUXTYT\\\^_\WS\ZVc\UYQVY[[ZVbeXSXXSSTQ[ST[SUS[XQWcR\W`aV\Y^[VVZ^ZZYc[ZX^Z[YVbUYYbWQW]ZTYJRhSVWYZcX\]Z\Um\NVYNQ\QW_RWZNZ_^S]Y`\SVW[RPQUWRXY`P_`PSj[WZ^YTX[SUTUTIY^_Y][Z^TSYeZ^X\QaiXaW_W\\TVbYe\]NP[ZQSSU[YPXT]S[S`TT_\SMTYX`SXYN[XYP_NWVVYYYOVZ[XOZcRM[NdWZ`X\YV^_WfRXYV]U\[ZYVVV^cWXTVTWPPE]XPUOWX_R\UWWZ]YT^\V`ZMZ]TSV[cX[ZWWVVQUZYVWYaRXYU[]QPV]\WSTTSUWZ\TS^WY]Z[V^W^TO\CWVYQRY\TSQVZ\T^]^ZOZX\SZZS_]XT`P^SHNVX\XdURTTX]VZY]QS[VZ[eY[TSW[S\_[dZQTVRX]XUWZW`]QX^cPS`^_bXNUTPSVPY\[RVX\XXUUYW\UUT_RYRQU\Ta]`[gRVZR]SM`^YM\YW]VUZZ^XWRYSVYRV\OSYaVMR[\[PPdVW\USUKV\WT]YWUNZVTU]Z^U[[c_R[S`XTYYW]VX[\U[TbZYX[NZVTO[W\R[_SeVSU`RVO_T]ZZ\U\W[WXL]ZX\P[WYVZWTPZ]^Y]ZRSVXXL`SVY]\bZRTZWP^]UYZY[Ya]S`Oe_UTW\TRYYSP_R\Y\OR]^UXZXZYWYX[\R\WSR\Y_ZRS`X]\TUYYU]RUZW`ZVZOQX`XZQQU[STWQUb[TUe`TSV[QPYMSYQTTXVX\TcRVVTZHUUSRX]]bR]MUb]\[]ZSSW\VRX]VQ_XVQS\]RX]SZ\TZWY`XRSVYS^RUaXOlU\WVWXSXOZV[^^NTYM_W[UOTaN[_Z`XYZbTX\UZWYW]YaXZYW\YYTT\^XdU^dSYY]aU\YXVYQ^[W[[eX]X_QVQUKXZLYZQZT[PXVX`^^RXSOYV_W`bYYR[QUUZZWW\VSUQYTWXUVTb_WX`dYX]Z_QW_ZR[YL\\X[S]L^aYRfXUbTWQXY^SZaYSPX^LfQQVWQWWZNRVaVPYY_U\c[\SSP^aUYZXY\[fMY[RK\SMN_ZjLTUZaWVW_VXYW]^QW]Z\KTTY]SSYXTUX^OWMX\WYLVZKh^RYY^ZWQWZYXUTe[SV^ZaP[VVQXURMUUXS`aZ[OS\WYY^eOcXRTRUPbP^VRYOVNTV[VUVSS[Xa`TRU^cXVTZWY[Q_fVQ[UUTWRUMaMcSWSURTXYYbSVSRY[X^X^P`\ZUUZSW]]W`[P^V`YTY^_Y[_VRX[K_S\\^`XYVQUYX\ZRXPWRYT[fOTXMbXUQWUK`ZYZR^\SYZX]ZOUVZV_NcYY^\UZaYX]VW[[UXeYSR[bVKHUUT^[YRWNbWTYYf[^SQaY\S`VT^]Ya^\TZX^[`T[`_V\W[\bUY]XSMYRW[]YhPYN]]]cYXNZ]V_KYSYYX[UcRYZ_]U^`_TTT\[QQZSaYXRVYT_RT[_\cXTUbiWc^]U]Z^YSQdP_f]TSRYXQYZ[^LMZ[TYLPUPTN_d\OQMWm[SbTRbZUYYVOXZYUTLdQTY[VYeSXV^UNWTVU[]_XWYX[QU]VUQ\WTVYWeZU\UYU][WTUU`ZT[UWZMQ[_PPWTWTaNYXZWbZV[]aXWf[VSORWY`^X[MX`UPYbW_Z\`T^Z_RSa`T^UV\^aKUVYTXU`SYT\YSRXU\WYWW\XTWc^]`^W\\Y[XWVWQ]UWYVSQZUY]YWRV_`UQ[XXZUVTNVSQ[Zc^VZ[aVXQ^ZUUVSUTUdZ]U[bW`[SQVZ[Z]X`TRXX]bNWT`ZUYYQQR\ZT[QiQ_T]bWV`XZfY^[V[TVcWPSV[ZaR^dRXUVT^`eS`YYYUYX\ZR\]YZ^Y`]_YQT]TT]TYWL\QRZZWRa\YTZ]TT_QXYNY`SQT]XWaYXX^W\TV\YSVYWO^Y_]TPR`US\cZYT^\P]W^XSZOWZTUZ[YPY[Z_`Y`YYZd\TZRY][[Z]U\X[UUV\TS\YcLWO[VU\TZVSY]\ZSZSZQ\WRVLWSZVR_T[ZR`Y]Z\YQX[VYW[P^[_ZUXXeZ_RZSUXPUT[]UafZU\P_WX]ZV\Z][QT\UhXV`XW`XTO^]SVXOVU\XVZWdYXW]OWZMXZ[\UWUZg[YVV\YUZ\R\a[[TQXWZ[WVUYVaYUVZYVZXT]Y\VWTZV^]VXUVV[]R]\XYYVX^XY\VW\YVVWU\UUbUe\WWZW[ZY[QWVVU\UcY]]WWQ_\WU^YWRWXWbOSXV\UT_Y\XZXT^^S\VVUPW[ZaXSZ^TZS_P[VUUYbZXXWZVUWTQVR[]WUVWYUYUYTYWYXbSWcSVTTTUVPY[OX\ZVVWYY[^YZZ`^W[\VZVVaXVQa\\`X^S`T[[TXQYbYUTY[[S_WW\XVXVUSTZZ[[Z\^URYXT[N[^UTU]W[\\\SOPW\X]YXYUTVZZYX`YU\S_V_WY[XX]]RYOa\[\YZWU_XUUW]ZWW\[_U^W_\`\eW[[YVYaZUU[[_YUZYSRZXYPScYVTXX]TVMQT[^XUSYcX^[^a]_]ZZVUTQSXR_XVXWW[VVX]XUTWTWXaaW[[V^V]YUUVb`VWUbU_[TYZXRTQYSY[SU`TRO^]_UX_UbWU^YZT\_`P_dT]PXbYYgZ]^]VJ\_NRaWVQ^[M_^OV[VVXYV]hOabZXf^aQRVZb_cY_bY_j[^ZVY\cV\RcOYTNXdYW[WYS^RYX^ZWWXYXXT[^UTXVY]OgYPSdXZeIYbZMWVZQWNZNP^aXUUVZL\SWY^UU\]RZ`N\VYXVSXYYhXV^aeTSVXPXVe[ONYPZa__X\T[Xc\[[VLK]TS@Rd[V[OTfQW]Xf[Y^`^UWWTR[U[bUZTYZ_\YV^SWURabXUYRV\Y\]RK\[ORSmYWVP_RXWVXcU\VZRXUUY_^_XR^Y^]]WVXYh^WWU`VTQc]cPY\WT[X[RH`[UXVTY\Y\R^Y\NWSLcWZ]\VPRQnXXcTO\[UTN]RV]^Q[Z[]Wa[WOVQdV_VXYSY[]TXKLVSX[VTZWXUZYR[S^PTUWIS[SfTN]ZU^TRZW^^dU\X]^QZU]jb]WVa_OZfXddXbaZX\aUZZQQPOWWYWUZbRTRTZ[bOU_\[`^\fS`YY]\ZQ[XT\\^]_\[RRXVZXUQSRS]ZR]YO[U]g]]aXWU]^^[YTU^Z]W\R]ZR^Y]P_]Y[RbQZLTa]P\ZQdOSOXVgaX_V_VRY`UU`US\YSXcX`]QV_T[VXM`YXYXYNVXWi^]^NS\WQ[V]SX[WTe[\YW^Z\\^ZT^^S]ZZTRZZUWZ`]^ZamXU]^XUbcX]RXb\U[SWTIUaTQX[WZXVTabb]ZgYWc\[PXaXOYVTTSW`QYWWkZU]VUW[d\ZVVXOUeWZW\\XXTVU]bTcZW]VKY[TXTdV^S\QXVTYWYXUXQc]YXNYXYV_]SXV[[X][Y^WZeXdWce[UTYbZ\a`[OSZYKXYZWac^gSUSbXW^Yb_SYXZ_^[T[XUXWIYX`[\[\[T\W]\X[c\P]^UcWYcSYXZ\^XTV^]Z[hYT\SXY^PTX[[UQU\ST^S[VVTUR]ZZX[[U[^SQ][XUVUUXW_TZRXYZZZTVSbXZWUX[X^L]Q\\[UWQSW[ZJ[QXST_\ZY\X]YScV__[fUYU^XYW[^\^aW[\Y`YUYXY^bOWY]X]Th^^ZZ_RZV`ab`TXYP[RRRSc_X`P]TVTWRXYVZWOYY_R_VYaW]`WZRVUVbZ]\XV[XYQWS^KV]eZXWWZYS[XW\XRXaWYW[[TWNWY^UXLXQ_X`VW\\UZVY^PZZ[]Oc\RS`RXaSS`R]OYeYXRX\UL[`bWRXYaZ]V[_[PTT\XOX[V_W[ZYWV`QZUY[U[ZfXRXYSXURb^XXQ[X`SSZRPKW\\XYTWQ^WXgT]MTLUXV\ZW\O\UObUW]WcZXQUU`VVZUU[`TYV]TY^\]XUWTXOPRTVXR^YURYZZX[WVV[^][WV[ZXb_[Zc[Y[jVYgbWZNQ\V]MYgY`T]XYQh]Y\YYadOUUOb^\]X\YY`\XUV[cQe^dU]YRW`\Sd_QSXX[YaUTZ^_T`VUYV[^R_STVUR\aS[WVXXTWXfVT^U_\YHYVPU`e`YSU^Z^UZZT\\QVNZ]dX\PUU[QPSaU[MPX^Z[]V\b\bWPY[NW\Wf[SX\S^Z[URW`\RXgScg]b[WPSZ`WaYi]O^a[TLbQ^OUPWg]ZVWa`\MZ`RUa_O]W^UT\[^f\XUO[XXVUe]_ZSUYSY[X_SVYYRZZZSQ[VbQVZ\TXS]\PZ[YZfSRPT]]QfZ]\TSYUaR^ZeUZ]YVQWSOMbSSXX[_TRUYh`ZT]ZX`_Z\b[\PXXSRVWnkfRVMWZ[_Y_U[fZRe^Q\aQXdSWQ^TgU`T^YVZ^heVZTX^`WUOYXTSZ[OOTWVNXfOWOYSZXSWU]c`eTYXW_RWNZXYSQQTSi]ZPT[JY]MU\MVW_YXUROab[\eZ]WaQZQY[LXZbQWX^YRVUQ[TW`cNUZaU^\UVSdc^UQRcZUR[TTVQSWYYXgbYY[UR][X^]KYZXYSVWPU[W`TWS^NVQUOZ\SWY\^XYeaaW_b_UfcRWJQGV^[NeR\WUWVWTgTbSRRRc[[\XVY[]c_V`]Y]b]_^V]^^MXXWPNM^XXW_NKQV[TaZ[Y^[XX[O_V_`VTNbZYTW[M]\[cUeZ]W_[Re^ZTWabVZYPVV`bjX^bSSX[_f_RY_`\WO\`W]PNQOdT[VXRTb]gaUYYlU\[RZ]^TZX]UYSc^XUUZYZUVa`QUaT[TR]]Z]YXc_\WTrSh]VTV^XYY]eab]X]ZGVUUaZX`T^T_gVYdcT\[TUdUcjWZ^OWVU^JXQPYT_SYPSQKQUTjXX\[U^WYR_X_aX`QX[Y`YR]_YXRTWVW^[KmScX\bX_YZXQQ\L]]MNUZQXXTSOW[[UXaU\aY]QSW\KbO_W]ZUXYgc`aS_[[]RUUKR]]VTi\QLjUS[O]RX^U[U^VPRd\]Q_[]UYWbWW\YYXR]XPX\`XXMZY_]VQYYXX[^T[WRX`XaZW[VWbYS]T]`UQZUYSZUa]Y[^IVS\\cXYXSW^VcW\`RUSUP\^\cQJ`ZTaZW_\]W[gPmRV[`VXYTZcU[LU][O\PORW\_]O]TXXU_XXTXa_e`b[PS]SZZR][S]V[OV]W\ZSP^[Zd^]W^WP\VY[V^XZ[S\Y]YVZ\V^X\Vc`RW_[\WSXXU[W\WRR^\\W`ZQVWWST`aZZ^`aXWUL^XTT\QYX[SaPQTPW\_XPWYWbf\YWSUS]WYUVXXdNSYZSYYZ_VZWSQV_VX^Y_UUW[PW[X\YZ^XViN_^UTWUZ]TWZ`WXT[TYXY[SRUYTYSM[UVQNkcZ^UPZ`Y]W\V_UX]RZ[YO\R\QZY\hWZ`[WTTYPSSPR[^TLYZ]WScdTZTS`\XYZY[]UcWZ]\^UU][TPUT[QVZXYW]Q\RbW[[[TTXYQJT^U[]Z\RZTXYZU[UVR]dXU]YcVXR^XYV_eX]X_[\U`__^_ZZRYU]XYZX`TZWZ\aZVZZ[`T^Y\WVZeYR[[\YTNbUUeVZc]W]VOZQ\]MVa[~]XU_Nda]]XX]ZaWQQVSUWaY_WX[XTWO\NThVQgUTR\ZQ_``[^VWRZYaZSkXVU`XXTU]UWX_TbXS_cSXW[[ZWU]SX_XPXTVWYXN[UYUQRXQTUWU[^[^UTTRYVOU[IYhY]UWVTXjPdaN]ZVUZ\WRRWQUWaQQQS[[V_[[eTTaX[\Q\[c\Y[\WdTQg\`WZiQP`\Y[ZUY^XIQWP^]WY[\UPWN^ZWb[SbVUXP[j\TZUR\W[NZ[X[S[V[XS]SZ]Z`YQSReY^SQ\UWY[^S]VZWTOXb_SW_\VSWU]\`[_TXUOaXVVbZWaX]Q[UOUQSY_UXaM\aU\SZbYaXZ[R]YVUZZU^W[WVS\[]U`\^SXSVW^W^SSWY`c\YXbc[`bOP_TX]]ScXYgYU\UV[WWaQUXZZTX[dXSVfS]TWdTVYZWY[gRNU`WWZVQdUSa\[[_YYc^]j[Z[TUOWOXTZdVcY]RTRUUXSbUXYT_H]dTWV][Y_cWRWWS]SRYZ^ffaZ\Q`aQTW[U[W\T]X[YU\S\RY[\XTTUUa]`XScSTXSTYPXQVQ[]_][ZWYUX^ZPQYXTY\W[WXaW[UVXX[RUUV[QXVRgQ^XYUVUP`WZ\S`]YaX^X[YZ[``TeWR[TRUVSO[\`a_Ve]SWcdP[T`V]XTT\[VV[YZSUY`[TTbUXYWPV^WWSTdXRXU\\XY\^XWcXZTZZQOYYWYKWT^aXY]VS[c[b_[\WX_\ZSX]XUTUWUUSpXY[ST][R\V\VSZ_cU]VJX`ZM\RSWY_VYWfZKY`^eTUVXYRVS]]aVVRVWfXS\RZXT][\TSW^SVXZXZXVXYV\[ZK`]Y_V_ReaV`[V]`_SYURZ\ZcX^WnSXZVUX[`Z^b_UZ^dW^dKWV`^\WVZY]UVW`QVV_OQXSZX_RWUZ[RQSP\i]W_YUWVXUZTYZ_X^N\abeT]YYW]`]^RaYaRa`QWXmZVZ\PYTYZT^SWX\a^^YTPaW\]__gQPYQ_[NSWUQWRZSYRT\RT[SWW]_`TXU^]YY`YVYWVZQVl\YNQQY[UP\YX]Y\WRU]TZSQ_SXWQc\WWRXXXZX][Y_WQ[[fiV\\VY]XTQ\_\]YWMWcZX]WYZcYX\YV[XYX]VZY[`\W^XR[SR[WPYMTS_US[Z^[VWY[fVV]ZQU]V^V[ZPQTU]]ZZ[cPLUi^[]k`UZ__^RVZT[YYX][RWU^UT]QTYSeVUeUZlcVNWWcVZTX\TQ^TT[dQUU[YYS[L\SUTUdT[YVdU_[UYXZOZQ]a[]Ob]Q`TYXZYTNT[VO__WUKVRR[_LcZVU^OUScZ^X^QS^VZf\UTV]U`PURWTY`[W\WV\ZZVSXQX^^PTXVZRW[V]T`Y[\ZYW`aZcY]UgX\\WU___`MVY[`VeVZRRW[[^`UUQWSTlTVTUcgSN_RbQU`ZYW^`RQ\V`^][\VZXVRW]XVSZWVVaS^gZXYX^J[Z[QTfPV`VYT^Y^`UaS\YUgO][aSTRWTZVdZa^Q[Q]\SXUWWYX\\_S[V[dRfZU\[Z[S[aRcjXX[VRe_]fNWYUdSURUT]VSVWWbbg[]W\QWbY[XXPZYVX^fXSQW_YUY^[PfUQXY^[[]\aX[TSRXfXVZO_WUf]ZRSSc[TVWQZf]U\aZZWQPX_VX[]R\TUVXRVWcg\RW]fVRTYYVbQg]XXUSTQT[US`QfWZTOYd\[^YSj[QP\[W\[XQSRW][R]^]VWeW\TORVRV^U[VUT[W[X`\aaWQZ\bWY\WX^UZVMfYSQYaP]XZ_R[X^WY`VWc]]Wc_UagU\UVU[[WXVXTeSYY[[XZTTXNVQV_\SW_TT[T[WVSVSZObRZTZVN__S\NWS^UWZTZZS]V\V]SVZVTZWVZQW^UUUU_ZUbZUVOQVZWXXVeVOUPX^YZ^X[SVRZZ[Z^W_SXYYUZXTXW^XZTZ`KYVTV_ZXSR]YMVWSTVQYP^RYW^]\ZP]US\XaPYSYQ^\V]UUXWXV^\TVX^WSXV[R\YT^\WZYTM_U^UXUaTQTWR\T[XXXWWR\WU^``]VVZc_W[\^UJV_UYRTRYQWTc^VUYJ]XWUZSWWZWVT\WYePVVZSXmR^P`SZNWZXaSeaiZSVSXTV\NU^PZ`Ya^YWRVRVaOXVc_Oc\N`\]WcWWVXc`XNTVZOSScSQSVNU[YTY\T^Y]UW[ZXWWOY^OTYb[YUSY[TP[MY[VX`QRYYTNTcdVRUWQ[_OWYNfT^PZ`YP`^[bRVVbUXZ\T\^_][U^T[cQUUa[W\V]RWVXXVX[]^WaTROSZ]SOZ_FbVZmM\R^TUTXXY^^LSP`ZUR_RnLNZV]Vfj[VN[WWUVXWUZeWY\YVSTUR\M\WQ[[\RZ[VZSUSZaWaYYWVNQVcV_WZ_WYPY\U\OXZOXX]_WcVSZQ]WYX[aQRQXUR\TiX]Ia]YYUKZ\TYWSiZaZUVXV^cdW`SY[^\Z[YUXiVYhWY\WQhUZYYb[Z^Ob[OM]\`OSZSX^[aJZ_VaR\V[OX`\vT^P`Z]TXY]VQSX[X_^Y[V[^hV\\RS_WVPZVWfQ`Oar_[f`ZTUZ\^W^VWQS]\USSHSYUZQOT`PW\XeTVUTY^_RW_NXgS\WUZ\\W`Z]WY`W]YV[TSPV^[Z[SQ[WX]TWecY_HVaSV[YWWJSUVS\WWSYUSZaOX[NPYUXSSZXYSV\_QYWQKZ]S_W[]^\hT\SV`TVZUUZWUXcZUX\\YN_]QXZWSaNX_Se_[VWXeScU`Z^ZO_Z]\W_P^aZ\PZVSU\\XRXVTbUW^aSZ`bZYUa\OZbd^_QZX\VUZX^SZ\YUTRLIZ]S]ZY^]NZPYZQYTQ[WT\WUVT^eTX_XTP\]_X\]V_[YYU[[]R\Z^`W^YPWXUaYbZU\XU]a`bdW_[]`ZSXUib`YYT]TS\XXY][\`UYf^VQQ_OQYbV^SYWT[TX[\\V\SZSW`\RUY_WlZYY[\[YXX`PTa`YZcU`WR\WU^USVTV[XSX\TW^OWWWPc[WTS_VX]WYWU^XTS_\[cUcS[\UQ`[R\PVRX_RV_cZ]TSTU^`]ddUUSVcWQZZY^TZVWP]YNYZ^SRY]XU`ZVT]U^XVUUV]^PeUT_[`S[Z^[VfY^T]NdQ\UQNW]RhSVHUYSZ^N[W_cTVX\aSXZ]YI[Y\S\PX]UY[^QXWXVV]YOcUeYUVTWU`VbZO[TS]N_Q_[`VZ[UXQSe\`VWXUWZXUVKJ^KTTX^[S[PTYYW[LOWc[cUUWQU]ZXYLN[RYWQ[WUTXX^YQRYX]YVXRZdY`bg[U[[PYUYZf^[W]VUT_\VUWZT[][YT_\e]SZdSS]UXZZZd]\[L`[XUNQWXW]TTW_bY_P\Q^XUclSSJTZO`R`a]YYG]ZaZPWPWZ_^aPVW\XTb`]QSORQ`a[X`ZaTZMTYaUTXRZYVT[_`RXJZTTV_WRUYW[R]QWWVgWP]^UWS_K[T]UJ`\WdXZVW_OWZV[NYVVWZWTXRVeRSX_W[VZ^S__V]MSWOXMKVRW`[VT[UPXZNVX]]_^^\QaX]_o]YXUSdcS_UZZSObXS]UXa[OUZXXTYRUSY[^QZVLShVWWRYU[UR`hPS[\Q`a_\YNa_ZWa]NXZY\cULZRQYZUN]]QSUYZUV^\XY\iZWZ\_XYUSPZVTaP[VVTTYPM]]VU[MW]WSZ[RUeX`\XZ[Va]YTV\SWXUWS[LYRUTXR^_f\XT`VW[VP`\YUR`Y]VYTW]O]STYYS[TfXYZR\VXR[SSZTZT^VPSQP[l]WT[SW\a[WgT_^ZTWKVa[Z^^c`L\YZUUa[bST[UYXWU\WU[ZZVXUWQ_Y^VSXNW_PVhZ]XaWW]baUPSPVZ_`OYW`WVTRV]`WYYcPIUXSYZWX]^VZ`XYYS\TYS\f[YUZUY_S^LV]UXXYUW_Z[`[W`VY]^_RWY\_UNT\_RV\_bWTYWX`YOWZOXTYW[UUZV`R_\o\\ZQ]XhTWXcW]WZSZk\dX]`T[U`cTLTWkUXU]aSXQ]WRPRZY\`\TPX[RQ[WaVSXYIL_Y^Xa]SW`]OPbUSc[UU]`hXO[kc]ZZYW_YLa\\_S\XcSWP__PgTS^Z]UMZTT]S`PQdS^]@[Xc[\\_Y[NVcZZeWX^P`YU^`UYW_VWVT_[\WkYW_[\f]XZ`^ZXWY[UcRc_[Q`XV^Wb`TWSZUWLZ^Z\[`[\ZcQ``Y]\KS[gZHXVd\aTXWV\]VV_[XRVQ_bYVTXWXd[c]WYRQYe]ORV^SXWVYWW^YSTS]TWT\Vb]cYVRVSWeW[TfZJWQXbV]OWU[fPf\^ZZWYXV]\RV[JS\SdYY\ZRiNZ]T^^UfQRR`]bZUNXZWY[KVfMXaWQVW_URVYVM]STWR\YQgS]bU[WVa[QmYeJ[]UWY[Z[X\STWRRX_UR[\RNUP\R\VWNTUVUeSTY[[V`[\S\YQgdcQRUWZ\WVaR[XW_QUSZSUZ`aWUSWVU]a[RVR\[aW\QQUV_ZOXWWUXeOdWXXLX^YQBTURVV^R`KU^PZRTXjS`ZU\RYVR\ZTTUQV\SZ_X^^YVWYO`ae_U^aSa^RVYT]RVWZ[bUW]]]cQ[RX^[]YXWWXVW[XX\SW_aSYZ^^Q`YZ`ZQU^WWLXVW\[^VVZQ\Z[bURT]VaVKRV\ZXRaYdSVVTT]NQWZXU\]T[c][^UVUWgXQbVVZV^SaYTZXKTUWW[O^USUY]VVXSXNOZWW[[[]ZWQcVXOVSZ]Y^[WR[]`VQK[\[ZSYVQ^WT]`YUWVTfUZTKQZUOPTYTZdWa^UXYRbTaUYYZ]VT_RRSPWhaWVYQTY^]^QU\SZWbRRVYXOVXS[T\[QPR[WWZZ\TQXOUYXWTVZXTQ^UQS]VWYZS]VT`WZZUSSdV_ZcYSX`NSTZVZ_]_ZNQXbZ[SZ]\\^^ZQX\U\NXWP[jUXWZYY^WXTY[bVWZXRX]\[U^WaY]`^_TUZUObYXZcWZaaUJRT[^ZT\WXUcPYXUZ^XY[XUYNZZYT\U\S_\RYQ[[S]POSSWNVP^YW^VW[[`kZUZ\VWQPU`UXSKMM`TUVZQTVe][UYRQ][X[WX[TRLT]QRRROXTY[FOZS^VYSZcO]\ZU^[]UeTcVR[_TZiWRSXf`\XWV[_S_[QY]]\SVIa^]cUT]SU]`UT_\USXWMWUXXV_ZXVT[NcQbVbRZ]VVMP_Q[VLb`[eNV_]]RZ\SMWWU]hWTX\`X^GcUTT__ecWLYOY_[ZYTXbVZLR\UMRTTgVT^R_ZU_PRVP[W[[bTgc``VOYYUTLVYPZWW`V^XQV`UTYS\U\]TPZR\\_YQNV^]WVVW`]ZXO\[RX]YT[ad\[cWbXZ\Y]^Q\O\Y_[VZ\WXZW[bSVZ_e`ZTWcV[XZXdaX_SZ[V_Y`[Y^[[bZ`TRSUaXcXUUbYdUZXNd[`QVV_Y[ZWKTWaiZ\\d\ZYfpVKT[Y`X[]Rd`aZWYZSTQ\f[W]V\YRXVXXTZZS^R]YR^QRRUZT[[]ZbRZ[VSQTX[WX`VSYUM[`XXSSY_[][VRWYW\Y`]XY^dZZ_NZYYYJTYQ]UZXYPSYQXXMa_UQTbYXWZQ`SJT`TJQY_e^`\R\SRVMa[^[ZVUZWVXPWZ\]V\YVUd\S_Tg\_ZLh\i`SabVQV^WaiWV\R[N]a\[[ZWYQT\a][SU^eR`d\VV]gRU^VOdg\f\LXXRY`b`YWZZWZfR`NQSbfYX]]\`eYS]UR\OcVUbS`QYPZWXZZ[PcTUVSX^\_eW_]KXQa^c_^_a]`YNUXR[Z\`XP[\X]b\[\PYak_V\aT[]YWRRV^\QWVYcff`]UYVXiR[XWXWWUbQTUVVVZSSXRYSW\PUaRTYYQRSXQ_]Z[P_P^WYR]SXe\aTQW_YW`Ve\ZR[WXYWX[XVXRX^RSUh_YSU[ZPP_X[WVWVWZWcRXUY]VVe\N]PV]YOKfSX[XaVV\]V]OW^Z]ZIVW[TTS[X_OSSWTTTQfXVWS[Y_RWW\Zc[\PWRPbWd^YQUTjV^V^\VLUZ^l[XRSX]QZaXXX]aZ``XWMh\VY[RV`_\ZU^`[aX\]SXUQZVZSZSSO^_WOMU[UaZ`\]TXXVTjU\\WSRUcHVVR[^W[V[dQP_RTZaWXWfW\`ZWZOSYXWW^KYX[X\XRWTZU\YQaTWU]_VY[Y[UK\[XaIY\WTTUV`Q][bSTdX\^aZWV[UV\XT^VTbS\[VUMb^TZSdVb^NXUTSTWga[___`VVYPOYZ[\d[XZ]Z^[`X_YV_S[\c[\bn]bYTcX]VibQMZR[WWVTWV\[VY^__\]ZWpU[Q]XbYZWVXSW\YXQX^MQ\]ZSYWOW]TXVaX^YZ]RMXVV]X[UUXZ^\SYZb[_UW`[j_X[WM[[`]^`[VYUYfdV\S\WYZaXZ\YW]TZVV`][XbKUSZsSX^`a]Zb]`i\Z^VZ[QUcQ[VXYYYU\TYe]ZXWflh\Y\lVUUSZTVZT^WWV^VYY]RY]^`Z[V\XYRT_YTWZ^\^MRZXXT[Z[Tg]XY^Q]]\YdNQgUXXYYUSSTQZOZ]b[S`^Z_YbW[XTRWMYWXTLTX[V[QcX[T]WMaYSYW^^WYYaRZV_Q^T\S\X]VY_^ZV[]W`XZZ_WVs[[\UXXTTWZm^SSRT\\UP_XYU\X[P_]ZX^aX\VTaX`X_aSbU]Zb\b[Xa]eRdWW[YUPWYY\_cZZ[{ORVZZ_[IaXZU_YP^_][gYYQ^[`^XXOR\UZX_TfXY[ckXU`UTcRZXTYRKPdVS]c^]WORZYYTR^RZaOab[\[W[USXUOZ\\SW`\`YRZT\X[YZRfXORNVX_Q]XQ]`UWcXXXTVT^X]dTSV]VVQSYU\a]SU^\dN\K]aiUj_SPUV\Rb_aL[RRR]WQ_SXP^^d\W`SO[`XS\Z_cX`_WTWaORhPJVQ`VZSSW]Y\fSP\fSTSbcY\TW_VYWWbgXRLYTZTZX[YWV_]`Xk\Z]MOOX^PTVP\S[WaTQ\]Wb]ZT]WXa_WXSVQ[SWf[ZXURYNb[WYV[]`WSRW__WY`YVVTbdXVVhYb[YXNM^[]iZ_RaU_^VXaUWXWQX_Z^Yg[]O^WP[_Qc]VNTYXaYTR[SUQSVVXXeb`VXT[XZ^^N\SP_XcZW\cYePUaY^WU\^STY]aSXQMSiVd_V^RS\_[eWYYZ_`Z_QS^WaZX[]^][`XT]T\VXaPcXVU\R\YWaWcR[\Y_aZ\VY[U\a_X_\`Qha[UTZ^Y^SY`_^ZZVD]R]]UWYVZ]TV_a\SS_Z_Z[XVZ]^V\`S`\bY\ZXXYZ_^VYX\V`YT]WW]Zb]__U]`^VWZ_\\T]a\]_Y_^c]X`]YTV]\``MPY\UVYYZS\[`\]YVN`_ZVZX[^dYh^ZY]bX]TRTb[[a_c_][]\TYX]Wb]X\\RT[[QXYU[[^cY^Y\[[ZVd[Y[e[YU[XWb]cT]\VTUZWgaYYYXZVY`WZV\Z^\RdY_VYUX[KbZY_`W[^^_XZLYYY]WWZ_ZTeY\YYXX]Xc^V`[^bWX`VRaZT\fX^TW^W\`Wb^\`V[YYY\\Sa`_[ZU_S\XWXbWZ[TYVY\X^XQXe_^ZWZZ^[V\VW_[Y]VTWUVU[[]V]XY`\^Z_`XYUc\XXXTS^P]`[T\[[^\[Q[VZSU\X_Z[YTRWfWWUR[WV^YXT]TW`WNX[\Y`cV`Y[URRW\X]V[WUVU^\PbVWW[S\VRY[`XZYZZY\ZJ]U_Z[QZTNXW]`YUOZTR[ZUPO\VMZWZVUZbOYU[Z[TYWV\XRKXUYW^iTXVQTTW^iUdPTWXRUUcd]ZhU[[]RWT\VZ\S`Z`X^\]\QZVWTSYWUZX\`Q[WTXS[^VVZXW]^SaXYXRU\YUXV^XWY[SRSWRW]TV]XX]ZZZMUYYXT]TVUUX`SUYUQVY[YZa^bWRPYbPVvPXYX^Tc[SZR^UXRV[YV[\R[[TYXYUWZ[TYYRXQX\VbXYUZ[[\\XZcTW`YPdV[[]UWXWUYT`b[WSYVP^`YZa\_RV_TYWYU]U\fbV\aVST][VV[ZY[^SRX]aPXOO]UXdRXgZ^Wb\_PVV_YZZONU]^XXXUZ[`TaQ^PWUVYQUSa^[]X[L\\N_][MSWYUV\N[YW\`W]W`]Scr[YTS\fKSXUUWeVUYaNYX_R]ZV^QNSVVWWSVQQTX`Sab[PZW^ZZSfZZd^[RXXYZUTV_[RUYUY^OXRZVV[UX\jeUXVQhcVZ[SXaaUaVV\YUPQUkYW]]Y`TS_XcVWeZPW[STS[YOUXTWZTUTT^TWRVXUiU[QgV[YSZ]WQ`Z^ZYZ[XUTYbTWW\XWbSUUcQ_UZQRXW_Sb]US\b\aV^TW]W_U_W^\YNU]VSSRedVSXS^T]]S^WTTRWY[WYi`NPWT\[H_ZX[]V]YgZXTQYWZ_KX[U_WUIX[[QZZ]^RYdYMSWWV[UUUc]^UP^ZYVXZVYYaPV\ZIT\^X^XZZUaXTPZ_T]ZR[VXe^RT`]WVUa^[\QSQ\^cVOR^]fRS^Sb[WY[Y]RNS\Rbc\gVY``c\UTaZTU[YQ_QYcKZW`RZQV\RW[Za^QYW\V_[RW]V[T]W^LVYgTWWXWXXZ^RaSU[dWXY`^bTS]]YWc]TURVjWQU^W^]]]UMZT`^XUXeR_YQ\VRU[WQKVZQYVS_ZTZSQb\ORZUXYZS]]]gc[QgNVWZZTXPX`[RTZO[aUUW]IW\V\RWcXSWam_VU^fVYX]VVOYTP]]`iWRW[XZ\_``YPVYTVUTZKTNPkUUNTY^S]SVZYT\[RZPT^SX]^UYYT[bUiMY\\[TWUd__bTYR`V\eWUSTWZWYUaPXWYQYVZXfYUY[dW`YWScZQVSQYWV^YV][SVXa\S[^eXUXT\WT_SYVRVaZnTZSUO_L^_\XfXX[RT][U[PTZZc\bU[a\UVWTSVVUWXZSZRQYXT]Y_O]TXZS__WeRRVbZUZWYWkaYYZ[PW\VNaR^YU[ZT_dSY^ciPQ`U_VWUZVOWaPYYSVM[cWWZUFX\ZWT\TdW[]RTdYa]U[_^R[T_SQ`[_fS[\\XRXeXXXXVZ\YZSRV\VaT`SWW[\SN[XZXWZXWZ^WYWVVYZT]^U][_VV\T[^]XWXSVXhRWVTU`_W\^PVJRT\SWQW`bX_{TXVV\_SWU[TSS\QZaV]W\TWbXYT]XQTUXY^TW[^[MY]QWZWdS]YXVWRZ]_eW[SUXTRZ_T]_bW\WXURWUVZ_[bZeTVT]\_NUWdaTiX\STTV\^b[bX]TX]UbWYVcbbUS^P[]S^^`URYaW]V^ZSV[XX]YZ^\ZZ[Z[fbNR[^[Y\[WZQ]`\WYYXZ\ZZIXU^`G_VO^dTVZ`X]MVYRSXWRN[WWYUd[UWS[YZ\[`_W`QbUWYU_RZRNWYZUW\`UcUWZdd\`VYRNWWRUZTTZXSSZVVZXUY[YXUWTbQbWSTbUbW^cVX[WUXcQUSN\ZQUY^ZWPVbZYP_\ZW[X]b^`QXXTTR[SP\]YYTXXS`YZSXWSX[UV[[VTcPWYWS`YdSWTVVlPW_Uc\V^jUQ]VUVYWXO_SXNXaPQ\SYaYSTWRZ`bSX`UHUYUWN^bZZiN\TWY`eVZXdY^WOR\S[S\^^YV[YXW\W\Z[`YROT]_\V[NXOR[YXR\PPNYZU[ZdXa[c_JW[XbUYb[WWV\V`Z^ZQYTY_PRURbZ]WRZaeP]OW\VQ`aYNV^[Rh]W]WVZZTY_VWU^]VXKQ_\bPPZEYYPWYSTM_ZRW\UX^NWOTYUS`SRZ_\ZTYUYZT[`]YWYRZRaTX]dZ]PSWZWY\^Y_^VTUf^MdYTX\[U\[SOQYX`\\ST[]X`XUZRRTTdVPV\[UYUUVZ`YWYTYb^YZUYVTZW]`UZ^VT_Y\aTY\\dZWaYZLVZ[W[U`Va\OSX^XYKWSZYaT[fNW\YXf]UW[\YZ[UgYZXaXVVT]X[W\V^W^cXPSVSdWY\^VVTeXYPRUVS]^[UUXbXQ\QaRU^[[VTS\Xd^TOY^TWVM[Xj`WTSNZTT\U]bXbXb_WUPXX[XS[XXVYRR]T^URTYXZR_W]OXV_TM^TZXWc``ZU^VZ[Y[S]TW]]TaXQ_RUY\X[T\Y]YcWXXOSV[WS_^^]Y[bV^WZ^V]YXTYSYT[mVY^aX[Z\\_YQZM]ZVNUP\X]`eUT_YTYT]XUf\V\_X^]]_PV[W[YYNX]O]^P[NbYMYb\LPYXY[aXWZQSWYa_]^V]WTW]W\VYXLZXP_Y\VWORVWTOUaT^[V^[QTIZMXOYN^U\^]WVfWSGT[W[Xd^^X[[RV]RUZQ`Y\\^XZ^[]ZYSZ[YKVYU[YWe_W\X\O[\WZTcRVZaYZJRYVX`]RQ]_YUTVeUXQ^TWUZ`W_U\Xc]^WOWccUTZT[SIYdWXRcWYWYPWTXXYW]WX`VZ^`]UR[]US[a[aUTVRP_ZUeWYVSZZ]TWRQaW]YW[ZWcXY_[cT^d^YUaTP^XXVRYWX^PXV\UQ_eZcPX`RSTVO^NZSM]X][_U`W[YVYkW``Y\P`ZWVT^XP[VWYPZcNZVTSRScXQ__RrZaW\\Q[Z]bR`a[ZX^XZZ^S[Wn[^VSbYa_XWQ^_TWaYa]_YSX]\ZYWWZ__\X[XYR[\]ZRX\Y\^WQSZXWcY^]U[ZN[ZaX\V]V^[\USYSPVcZ_SZXiU]Sb[ZceQ^UPX_RYQY^b]UVSP_c`]^UWWWb^XYWXQZYQWZTUma\TYV^YURV]XYa\SfZQ_XZZS^]Z]VP\RffQdXRbU_X]UVR^nU_\ZYSUX`UYOXSRMRQ_\T[[dQY[SXYY]\N`G[]YRTWUl]XYXZfYZZaZXQbYRY_RTM^SWUPTXYWUcU[YXZTZgRV_QSQa[`]UUZWXTLW]PeWMXWW^[dX^XX_XS^V]ZVU]UYUUQ\XTMVZXLYW^ZY_`T[[]KcYRZYVX]d`ZeR`RV^^UWbTJdRSSc]OTWcN]_W^Y[]LPZ^YdSS[aNXRO^bOdZ[W\j]XOXU_UZZ^RXXcdY_RUS^d]`ZVYV\YSU[\Y\XU`\YZZ\T^]bVKZW^cY_]WcUX_\XW_OTU^[ZOX\WP^X]baQ]VXfYZeWY\`aTi[_VU[dXLW]`bWbWZVX`_VZVRbYaY^gWM_WZl\]U\WXa`]\XW`W^U\Yh`TTW[YZZY[b[TV]Ufc^\QW_[`W[WQZTU[^Y[V[XWV[Z_WV\]XO`USX[X[[UYXZY`^\]gdfSTZZX[IXf`eUXXUSS[bZi\Q^][STU_ZYXYPU\W][^[Wa[QQZZS\bURX_Z^^W\\ZW\`WT]YQ[bR]^`XSa\UWX[YZdcV\[caXS[V\\afTZXVdV]^_WZ^WWfTZZYY]X[WRY]^PT]Z_TXUV_[`YXaRWP\Q_ScWVX[TVT[[ZWX^W]]Vh[ZQTZ\VWSWQ\_S\XT\ZbZ^URP]QT\\ah]aZO^]a^\ZYY_Q^RWRP`XVTZ^WZ^T^[XZ]KUVWXmdVTXWhWS\ZZ\W__UWWQ]VV\XZU\fUYYTD\ccP_R]UlRWU\\\Q[b`[bWYX\aYYbWV[]Z[RSVTZUYTaWRTXY`\ZZ_aRaa\RQZYXRZNQ_]SVVVZ^QZYTYRLP\Z\WYbUVV^PXZaN`\ZXaUSXVSaQ[O^bU]^O\UYY\YVQb^Q[VXY\[[[WV\P[bR[WXWa[]YZ^N\bTc^]^S\a]TVTZSaWUQZSVkVY\R_YV_cVSZT`[Z\eY]]Y\[[SY]YSUYURVW^YYZ\aRT[WXYWUZ[S^`PY\WYU_aUQ`SV^QROZ\[R]Y]^\`RS[WQP`[^X_[ZYZQSSQdRZY_]aVYY\STT[^UVRQTTSVR\[abYYWW^WVT[UX]FX`XYVZ^bYVOP[ZbXQRUdX\Z_YWY][MW[dXWcX`[UWYVZZ[VXb_Y]W[]VUQVSRYW^Y^K_RXhNOTaXV\\XdSSVaVY]_YU[U^][bY[ZU[[URWYPcXY^Z]UcZcXVUbX_V_R`RTMTTYXUTUPW\XRUYTWMRNZ^^]VVYVPVVXYZ[X[V[\[W^XYUY\ZYY_XWSWZ]\X^^YSVYeXOWRVT^_VUYQ^Q^Y`[a_\QOU^YX_aUbUWTUU[PjTQMRfXSZ^Y[UYSZR`VSRN\Y^`ZXZ[VUW]VXV[YTWUT]Y^[RV\ZUW[VZU\YY]\W\YUV^OTc`\`ZgXQ_W\V[Y[NTXUYVHZ\]cPW\Q]RhWYbYjUU^WdNUYQWSYYX[]TXVX^T\^[XWgWTVV][[[SWSSRTRQcVWYYTZ[UT`hbVPY]_SRYVVXXUQVc[S[TRW]Z_VYZWWYTNOTYUTPcVPXPQQS`TSaYUg[WU_^VZ\[[abW[RUX[[VPTUdb_c]TeQSWVXbPbhTZWUVYW_YRUQaXL_ZYR\^Sd\T^XQ]YXRYeYTWFWWS`YUWTRQ\_TdUSXUZX]UgW_WZWoUS^PhPPaZOT_ZX]XTX\YWUN]cZTZ[XU]]YXPVSYSWbQVX]OZS\YVS_[RbWSZ\Z_PYNR^LVVUQShVSYTXXQf]SRP^]i[\XXP\TYX[`[SWSP[JKYM\YPPTWY`MY^VZ\WaXL`QR`XZ`XPhXQ_RZ^PV[^UW_[_Q^_V]VN^W]RTPV\X[T\]YZ_\WYSZP\\`W^eRfTVUUN][RYQY[aYVQ]UW]XgNWSZZSY`[VPYPU^]TXLXXTUUdP^QV[VUcdZVMQUU[TURVQZ[]cXiX^WXYTSSUPWUJUeYUZVTYLU[YfQV]ZLWcT_XXRQ]]MbRQhZUW_]TbYSQ\XYZM^U[cZR[\ZV]XWWTT]TgZY[[RSSYVYSYa^Q\[]O]]Sc^LNUSWOVWS]j]UM[bZV^UaacXSf^]_]^R^WYYhaPdZYUb`a^[RUT[O\[RT[\[VXX]]UW^bWU_XY]aZ^UWTQ]Q^\cSZXYV]LWS]a]SSTYdRQVYYXU[WZaaQX^b[Y[`XXYU`]XKX\ZXiO\dUfZ]]`dT`V[moZSeV[ZXYaTXPZfVnWWVNPV]W]ZSdXZU]X[X^aWbbZYRVYQPTP\P^]SUXXUWRh\_[ZZ]a`WWQ[RZ^[`WZQ^`QaWY]X_Z[Yd[\_WSYZ[\]R`\RT^_Z^bLRTYWU\QX_Y_Wa_XYYN]_^Q]QY`_V\WQ]ccYVXU__WaU`TgRl]UXkVLXY^cYM_Y]`ZR[X]lbYX[V\WXm[SURW^^UXSQXQUQ\QVYY`lQ\Z[Z][\bPUZXYS\iUVTW]Yf\V[\SZaTTUOWWXSYYXWX]VWYU]TXWYYb]YYUSVSYReUW[[WMVW[`[X]YZSZ_VTZUWTV_S]QXSYO\ZYbRXTU^LZSUW_[XaWTPWS_[RYT_Y[XTcWV]WQ[YX^SXPYXUPQ_TTVZVaQW[X\VYU[VYZVZV`SQVTUN\OZ[Q_S^]U[\NaZ[]]UWY^]VYZYWVVO\YTV[ZWVZY\_UVYT^\X]XXXVY[_YVWTUY]]\\YYZJSVcY[`[Sd[X^^]\[VZ[dQUZV[ZZ^_]U_[WTPRTYWXd]X\QYQTUWWZ^YVUaPTY_R]\_Z\_]XcSYTbU\WWWbUWWVXYO[cXU\YXY]Z[YXZYV`TWTdTVSUZ\aV^SWZXUTWSabO]VUU^T\UUK[VTW_YUaSYZWNi\ZTX[bU_XYXQWXUT`ZZ[_TUWTZS\ZPQZ^`_`TW[R[T^UZSWUVS\YYRZ^PX]W]VXXYSYWSU]YW\XYVSVZSZT[RXWd\[YLOfZS[SVXVY[cW^\V^]`[XXXR_VVadZPUY^ST[bQWTZVRX_V^U`RNOZcTI]YVUMcZY_^h`XVQYaYZ[^OPcTSOgXXVYe\gY_I^PI_]U\WWcRUiTZ\`Wc\QX\Z\WbV\YUZVUXXTZQXST`XUWPONSWZ[OaUOWQTTSV\Vb[VRbeQZ^UdS\U]TTWSUXUZSWZXV`V[]VQLYY[^V[]RWU]TZ[SZYOPZVRcSVVUU^H[RWW[T`VR^XTVOUZZ\[YZQRSV]ZRZSPRTVZTYWXVU]UQY[VXVWOYTXVV\a]XW`X]P^\VkWaUOX]ZTY]VW\bYZW[R]]YTVU_ZR_Sd^OZ`RYUVdXV[^\bXV\NY`QVV[RTVYTVZXSRWTYWVMOW\PVT]XYYTWWXNVUcRZXRWT^^Y\KLSRR[_U[LWVSMSPSWXTXUX\YYMYSTYYTWTXW]Sa^^SU[U`_^bZ[QWUUUReRK_YX[]V`SSXTZ^\YZYe^VUSPXTZS[]URVVUUXVYWW\U]kc[ZWaZeTeTUOUZ`^PVUR]dQ`ZVO[XVc[_QaXaeWW`[VYbWSR]WZZQWY]ZR^RaRZW[WbY_OYVbc^UQQZSaRV^PZ[O]hYYT[[VMXO^R^RW\X`[[X\Y^JMY_i]aU[R`FNe^`ZWV[VMXTZXVZTPWTX\NKX`STTaPTWaSVWTTeZ\YV]Ya`WTW`hZVYX\Tb[^Z[^W^\YTNNZTVWQZTWhYQXbQ[UXQ`Y^ZTYWgVT^R`b[P^VWUU]V[PbRX[]`UWZd]b\YUXYaV\P`aT[gV\VTXMY^aZ]VPV_WSW]Yf`V[\e__[X[W]TWU][XXPYTRRXcRY[[ZgQR`SYUO^N`ZcaZ]QXXU^\RYT`[X`\OOeRdP[\YWT]TWRU`OMS]VU^QVVVNWPXZ_\[O^UW\X`ZRTWTRX\_WQ[`VSeWZ]X[ObUbSZUU]SWT\^aZX^WT]^X]WLZSXaS`WVZWM[R^VWQUZQYYR\`^YWQXVVMXOeVXScSUUTV[`\]ZWNZRVWWhYP_f[OUZWUU]T[aS[`_USR\Q[b]RUScYT[ZZZaXTVO]SZeWVUXl[`QPUh[^WX[cX_V[TWSaX^]WVXTZOVX]Z]UR_W]RVMVT[SVY\`RVW[ZZRb^TWYV_cXYWZcQWVWUZSTPRYUZ[WYQYWRYWXPhUVWQ]iQ\Z[XUX\_WUZXVZ^STX\U`eTTa[[^X`TXUQ[[]W[a\Q[Y[U\Z_`_aU^YU_]OY^WkVYWSVWPS`U^OUYVS^_RZSVVSYS_\ZZWYYVYX^YWXUPdUYO`WYZZUUPYUg`Z]\U[TVX__UWcWRVXXVS[TUQ[WW[ZT[[XXYYQQWXZQ[ZS`XSaUYXV]^dR[ZVWW\[YYVX[YWRXS_da]\Z]]XRZ_Zu`NYZ[a\TT`NQw^MXZX[WUUV`[\`MW[STdX\\WYTTUQTWdVU[VXT^VU[W[U\iX]`U^VRZ\OV]PXTYWRZVcTVUXMU[ZYV[P[UYXj[\Y[TW\bVU]cPPWZZRZYd\]\TYT`_\`d]][VP\X^ORV`WU\US\Yn_Z\XPYW[aXUTdZT[hYYUPXYRUOY\ZPUWW^YgZTk_XWZVRjPQUWWXZX[RYZX\`P^XbY]Y_XTdWM^eV_NWWN[_W`RbZWZ]WYWZOcP]^`P`]R\T]\R\abe\Yi^Z[ZXbPbf[O`eUXTWTaZj_SRT[^\]W[X]VT^RXZ[R\ZRXbOURP[]V]SVRVVZSZ\Y_cZXVZN[g^WYR[YaZs[V[\[VUUWXZ[WbSZOP\^]L^]VVVZbWS\ZS[YQX`aeLYW]`YXSZ[Z[bVW]ZUZTUVWSTX`ac[YPSRO``VPgS^UYUVTQ_VbXOW_T]ZTWOPb^Ub]PV[QZT`d_ee[^[TZgW[[`[cac[Xa^QUWSPl`Q]WXaT]TT[_VU`TWU_\kTVZ\XUYdP]XX[`RW[QZUPZUPUVY\PXS\`[`WYPLMQWaVbf]cQVLZbWbUhUWU^SV^cW\MX]TU`WR_XLc]gh[UX[YRYZNQN\PZ_jYbRZVVWcYSQcLcalUTU]\bV^Oo[XR_]X\\`dbY[VcRWRYW][bSZZS^[aw`MZ[ZeXKjQY^K^YXUn[YUSQ]OXhVT[[ZUPQTYw^WUYcWX[]aPZcaT]PRhNWTbKNXaU[fQY\]ZTTPf^SZPMZVahTiPoY\OX`[TYRcX[WaUXWQVZQXPYSVa`N[KVY_UK`XSZUWMYsSXOMUXUaYLUXT\l^[NRVUURV`XRQ]hNV\clfY\TThQ\YURh`US[[\_[Y\VXT[eUY[YO]V`V^WSVW^e]^\ZR`MW`WR\\]Y]dXVXVYd[ZV]XQ]^RWRPZd_\]]YQQ[XTWV[]OWM`U[XYW\X[WbXXUcW\VU_VWXWW[Y]U[VTeUTSVZZR[]Zcb\_c[[]^P[hPXa[PS]\TSVW\aTWVSTXTY\URRaT[VXTWZVZ]KcZbPWQ\\S[Y_ZWUS\UJ`QZ[T`RZS^XPUR^`WQUU^SUR\\YVRQU\XZXXT`Sab]UVPPU\VVYZ\eWcTVWUWPVWYSZXRUU`_eQPUSLUS\U]YMYX[RYRU_XX^W\\_V^\VV__YRRRTVN_cU_RYORZ`]XSeYUUWgUZ^\XW^d_SU\UaVYV]XYX\UXUUSTSKXPUX[YPVXa`R^NTbWZUVVZVUX_\VT\[ZWNSUSZPZTWbT`_OXZ^[\Y`UT`RSZW\[ZcZf[[_VaY`]KS][W\V`^WO^RUNTWRZPTWU\R\\][k\XW[YYV[X`YPWVP]R\]YYST^ZQ_VTUbOQ[]_S^QYZWZWT`RaT\YeXSXY[]WW^Y`ThXX`U[YWV]ZXZcVT[VW\[Va\TV_[bZT]nZVMZWZ^^RQORcbjZY^[XdS\V`RRQ_TS^b]LXY\ZT[U\bU[VZRQ_]fYUR\QSR]Y^[]RTVTRYQSXSSXYZWU_\Y`VXQP[`X]aWORRRYZX^^\bTWX^VWXW\W]X`\`TSWRJZ\WYVTY_XM[W]^SZZYS\^ZVUb\dTW^\R^XRXYSYQYX]\TXPUYe[WTZWVVUU_MSQeUYSUVVWU_\Z^`UWQOTYX\UWZ[TV\PR[\Y[NRYUTXXVSLUTdYYWWZQ^[YY_\_[V^WOPT^[Z]VUXPgU_XbU]S^XYX]RVJYYQQcZV[UQUa[YSVRUOWXUTYXTU`VXNUYgU]PV]XQRWV\T`UNcVQSXUXTUdOUYRVbQX\OUT\b[]jXYRX[S_[_S^_YZYWXZ_UZXY]XR\aXXDVbWcZWZ[WSVPVV[PR\]Ued[P\T[YbQYZUUg[]VgTXV]YWWXcRKSfaZYPfOW]UV_]]\VZYVZ[UdW`bV\UUTL]ZX^UNY_`ZT]_XQUVOXTIl``RR[Z]VVOZXXTQRU[]g``PUUhVSZPXUW__\\UXT^]UdOXVbYZOR\XYRTP[[TWbIUa[UY_ZZUXSR[QTaaa\VVSO`RT[WgX^^XXPSba^a_^SSWU`Z\MgWZYNN\RVW[NMP`[OYUcV]f_Paab`XMTVYRZ[XN[\S^S]V\gSYVW[]h\M[[feT[eccXRRPUUXeSZ[]UWYXY^V_[TWU[\o`[YYVY]UTaX^Y[V\\H]Z`Q[gWZW`QWUYcPbXUjY^X^^bc[[TYOTZ^U]LPU\HYXfVXS`KbcbYXX^VY\_XY]X`]_Ud\W]VbPVW]aR[TZR\aTV]WW_YTRb]\[T]SOS[ZZ^YcV]R]^T[ZW]P[Y[YS[^\RUNWRRW]W[TXXWYUOUiXTWTQ\OUaUVWYWXZQT_U[T\UZeQbXY]R``Y[UY^T[bZW[j]`[ZW][RT[g^SSYS]WZ\^VWXWQVUZZVUWa[\Y\YU`gcYU[U\URNWYWW^ZYZYVR[VY^\jWWZYoQYYX[XXTUW\Q[N[WZPUV\VWVRY[aXVb[XUYXS_cYY``]_U]KX^[WdiV\Yc]hXSQ\XT]U]]Y`]]XTOWT\TUaKbn``V]T\RXVMW_T^eVZTXTZVWY[TUV`^^XV^UXPS_dLVTOXmSaW\WWSTZNaPQZYZP\\UR[QNZXW`Y^k_X`]UWWZOdYTW`f`ZXRWgZXYd`UV^XW^^PW`[]U_XTUXK\_TVZcY^X\\ZY__UaZ]TYXVb[UWYS\V[OUY]VYU\`Y^UZ]^UR][XYSV[a_cPL[cN[PcWTVV`^V]ZWV]VRZTZYXXVW`QZ`NUc^K\OXZV[UYXQYRNQVWOSbUSV^_^MaQ^\Ya^VWULaWXYVZ^V]eVTYW[RXVWh`MT_YWTW_^\_XZ]^LYc^ZOSZ_VTVUQ`WYU]_aZVUaY[VPYagXXY\QacTa[QVLTUNj`N[ZaS\[VV]WXUR[R^h[RgfQLTaXYc`[]QgZU]YVUW]XX]O]_ZYR]TdX^NZZ[U\X[YRMbXW\YZLQYZVbZZ[Z]RSNPVTYV`S\S_`\UQOWO\Z`aXUVXbXUU\T]cU`VSc]VXeUXjXYU]]]TaWTU[TVjMY[gW[``[PWZWYb\RW\^[\^[[aSdI`X[P[`URTVNSTZUdaYaZ`UQX_U`OVZZSWe\WWWbXS_^T_jMYOVZd`\S[gVbWZTQSTY[QQUe[[STSPUyfXV^R``VZQ[UWYYRXWOZ]LW[[]XXZW[TZWZXW[[Q[TNUW[VX[Tcfc\_XVVVSV^fYaLSYb[Ti[O`XWPYWV[XVZWSXZRXY[dTOXTPT]X\Y_\P`P[W`YYYYP\T[ZULc`Z[cdbM[WUXQWX[T`TWZRRU[R^_^WVaZXVSVVXb]VbS[dZWTM_]\W[TKa_LTbZVT_U\XOcaTS\XSW^QUYQ\aXXQdWV_UO_^XU[Y\aWUSbcfaPVM[SOR[Y]Y[\Z_^T`XWYXaWSaWXaV^R\ZYRV[[UR_WUUW_^X`RVWZT_cRO[ZZ\NYRYYWP_TQ]YXZ`V[c_deYcZQTSYSQPX]L^bOTYW[YQObRV[RWccVWW[WbZQ\YU^fU\\cL[TY`SX_YXTZgQW]bYVWWXXU[YZPXWYXV_YU]^_]TUQTP]\^aW_X`WUWYU[X\`VW[R[VUT_ZZZWZWWOXS[UZdc[YcVX\cTQY[YO\S_jdQL`INTSX[[SVYQIVU_Z_N[`\jU\cV]]XUTUO[OPfTUSZT][^UMNLM[WWfVYhOV\QVWWaTcRVYcT]^\VRVZUWXc\]WRUNVYq_PRUXXP_XY]]MaaX`Tc^SVZXSWLYZVTSa_[^]XaTXT[c`SYk^UP]PR[XSQZQWOb_Z_WR_PWi]VX```KN`Y_`TRYaXW^U^XTZ\YL]aUSWTUaUWP[]MWT]SeX[VY^]\VbI]T^ZTi__QOW^SXeZZS[]TOXcTZ^WUY\VXOYWUGZfYR[^^[R`k]\XSXMU^U\UN_YWTcWUkVRbWiUWWWZVOQXSd_VWZlU]TUK`XLRR`mZ]R_aRR`UUbPTWUd]PV^[[MbXUQR\YWQ_TR_WLWaXW\Tdh\T\V^^f][VXX_XVRSTRWRQa[_`O[UJW[UbLNS[RcXYVQXiZTTTQ]W^Z\VZPRbOVXYQ]YYXTe[VTZU]e[a^YIXYUXP`YX^UVb[dgd_Q_`QVdd_[XbM\[XRT\VZVWTQVXP^YWTUZN[Q\XdS]YU\XbaU\`XVVZeOZ[UYYYO^Wa`hRYQcVbY\M_^]UN\\WaVMW[\[ZVfUVRVUWY[S[PYYT]^WZR^]\SaT_ZTXY\ZWUVQSXT\YZVYTgO\ZPgWWQkZZT`ZQiWU`VUVfSSZeSVWQQW]Q\ZWZ`Y\bVd[TWWaaXW[PTUbUaVRSa[ZZXVmNVROW\^ZaVVZk[]Z\VZdW[[[V^V\ZXYYVV]TUZYQnUW\X^N__W^RXWQXQUe^YNJVbPWVOWVWRU^^T[ShYVdY[VUaV]XVWY`]^RZX`ZX[bUHRVN]QVY^aR`TSXeZZ_XW\ZUUUS^fYXWRS[TWZPWXWYV^QPTeZXTR]\UU\Wa]W_Xa^XSdRmP[eZdZU[RbYTQSVOO\ZQWWc[_MTZOUUTY\Fa\\X\^QYf_Y_X]_TZcRV\VVbYaXYSfjR[TOWYbPYUP_[U\O`_VZ_`c[^cXiYW[W]UY_Zc`f[TfSVZ^QV[]YS^bRV^ZVaP`YXUVZ\^ZZPUY^Tc]gX]LWaZWY]WXWWXQUZaLP]b``LRZ`ZX_TZX]biVRTV\_ZbYXO``[WdSZPUZV^X\\VaTUQMW^g}X]QVZVR[ZcV[XX\]Z[[UXcgSNWRTSU_XV\TcYRVZ\[R[[V_[R\YYYXT[Y[[kbXVPSWVbYfZZTbYPi\_S`JXUYSWYXLZaXW\UXT_UaYYYaPYSS[^TZ_iVZ[Paf]T\XZ\[[XTVPh]]\YeTWYUWVSXUOT^bSd[a`X\aWQX`^`WZ`bWQSWRYhMRaQ]VTQW]YP_lZZWTWTZYP_YUq\QT[Z[WXQYfRRXZU]RZ^V`ZVqUVQdWbSWXPRd]S_VTUPTYYOSS`a_QL\TYUYVSQVVTU_LY\WVX]XO]XXS\R[[ZXVUY^^TXZXSV`UXS_UbR[]\WW[UYSV\WYUYR`U_SVO[e]RkZaWQZMZY\UaVVfUYQR\WVYXPTX[RU[[^_]bMRZ[VXTPY\_[bX^]]YiUZQT[PZWS[OTXVYZTLQ^XRVaXXYXUU[VYWVOWUPRUeWTb^_VVY]]YRRYTgU[\\X\VT^XaV_`ZXWXSO[[`XW\WWY[d]ZaTa]Z\TVVWQX^NY`YURVYORZZ[Sd[Y[XLVVeZNWaVYVSVS[\cMZP[Y`S\[`\WWeTYYT_VX\VZXRLRYTYWaV]VWa^YV_[_bdjSgW\[[ZS]SY_VR\S`VXXW[XSQN\WoSQV`VS^_XUOZ_O\SZV`T]^_[T`\ZVYYVXU^ST`VPSaV^TZ^[TW[YSYZXWQZ\WS^]R]UO\Ub[]]RW[[WaU[Y[Y]bXY_W\_\\`TPQV[[XXXXS^ZYYT\ZR^VVWY[[\X\RQWeWT[Q]S[VPaUYYZR`X]VVRL_TU[`WS_TVZ\^]UWW_QVRZX\]e^]XZVYUZaPXcX]UPQc_XXYVS[Q][XTN[^STT\\`W]N^V\VR]TW`Z\R]QTUUWVTS\Va[dZXX[[ZYU[Va`^U^NV]WWW][^UJZYVPYUUOTcYdWZRX[UUbdZZ\X][^^XdWY\XbWcWWZUXYUcWW[T[R^XcSQQXeXRUWYT`[`XV[W^[RUZVPSTP^TZ]WUYWRYTX\\^^`UXW\S^a^UZW]YR_\eWW^\_RSPV^QRjYWY\[]VSUPT\U[LVXRVPaXXVSWVeSYZVfYVMQYLVU\XRY_UXVXTbU_YYW^VXYUh[T]S[ZWZ`[^U][YRRYY\W[UURZ`W]XbSYOP^XSWXZ[WV\`T]ZV_[Y\ZVYWSVYS\`ZVT[WWObRWY[WVY_WS[QW_^[HZb_WWUT\WYVZQU]`ZXZ][Z\YXZTTWdYYTdV[eTZ[RWQRSaJXXZX[P`NS][\aRY[Y_[SPYW^cPXVWC_Y\Uk\\aNRZa]TXSXSN\PWVW\TYe[WT]aS[YSSYUZ_ZWYQ^TU[XSV\^XRXe\VcR]Vi[V[Z]\_Qd[TPNQV\SMYZ[ef^N[UK^Z_]NURW[OQOX]_^ZW\OOXXUSXTM^SOPQVl^VS^WXaOZXYVOP__SP`\STa[UbV`\VVT]dObTWY\URRVTKSQYWXZ_aN\YTZRVQO\PUYSWUWUgZbWXYNSUaOWSY_Z[T]WTULYXROWYXSPQWSVXXdWNXZEYdU`\NM]\Y[fXUSVZXUZ[S]S^YYY[_R`YYTT[WV^OYV]UQYT]X]UTYaVWUV[dNU]\^_U][YZdQ[OX^PYRTVQ^XWWSdV\OWUa`[XU\VSZKTYSaP^gTVecWYPZZM[`SaYh[WSVVYZ[fPTiXRYY[^Q_Qg^VZ\ZdZ_VZRWLVT]YW\T[XK[ZW[QNY_XV_Z]^SUTX\ZOLU[\NY[Yf]VU^X\[aP_Z[STWXVfWS`[`^_aQaM_i]R\[LT_f\S]V]Z[WUW_UZ^eZYe[TQZT\UR\_XZ[YXY]MW\\fV[ZMU]`U_TYOZ_MW^`IUV[XZ_MZU^\WXV]LT^SThYXRPSL[RV]SWW]QUW[Vib\WXSY\XUUT_VQkZTTeVYWSQRVSOPXVYVfhTOVaYVUXYU_^XVVUYS\^WYT]WS]XfdY]XWURZ[XjOWTNWV\^UXYZ`bWR_TQgfd[dWb]VYUMQ[[XUU[ZVhedUX\]UOVUY[P[XXSNbZSTYZRMYTZWXUUZ\UT]__WRVW\OUVWeS`b\bW\[XSZ^`MR][^YnZ^^XXbYOSYVV_Y\^YRVWSSTVX\Z^ZY^f[hW`cLM^\_UWX`]YVX^WZX\^TWS\SVUT\UTUU[PRb[ZVYXMcVYZRZe\RVY^YZZ\UW]SMXTS\XW_XZ`^T\][TecRXPYH[TSQ^RP^XWXfV]WTSVO]WaUNQ[SR[\USP[\WSXWVWY]WYWUUa\XQ[aX[dW]^Wbd_N_`Y]Q]W`Z_]S_T[X]XRZXTY^UVi^___WdY]^ZXX]T\XYSTSUPO[Z]TWNYRVXY[hZW\SQdRWQ[XQZT\Y[U[\WWUT`Y_XLSPXW\^aZlO]\WZZVYXRXS[T[ORY[`XTXbX[_TShWVV[Z^[[]UaWYd_ZRS[W]TVc]SZY[VTSVYWXYWXdS[[X^U[VZY\ZRWRU^]WY\WXXVZZ`ZYZZTHZ^T\d[YUaWWOO[ZXZVSZ_WTYQYTWYX`]YYYVQ]ZWRWVTa]SQ\bWTSQVZXXV]\TXW^V[Z]ZMUZ\\XPPVXPX\U_T_Y[a^S]^V]TWSV_TRXUVUQa_UY\[WWWUcXed[\]]Y^UPIb]SUPO\]`SbQ^\NPWXSV^gYY`N^V\XTVWVJXUUOSTOfUeU__NLZ]XPVP_YTYX]\^^S_V\^^YNZSS]eM]X\YW^[_PUT_][UWWXRbSQgVY]e[TYYZ^YUUS]^YVUQWXSV]RaUWSSUZWcbVZcYU^]M`Z_[UP_aYZ[R`URWZUYYN`WY]UU^TYRWXaV]WX\__ZR]_OXVUaZbVVZ^TWXV[_J[X]Wg`eaXPRWV_X`RPPYcKX`Z[XZbTXWWRVPV\YQbc`P[\VSURWTL]`S\TOZUQ\gWXSW[ZT^UWdTMY[SPNhRQ_X]`a\NUTPKXQT^UW\\ZVWaVVYTZ\CVTYWRUWVSlWYhTVgPbWTVcYSYRUZQWZXb^`SRQPMULSVUTN]g]aWcUVa^Yf_\SbWT\UTZVWbXVK\X_XWXY\N]WbYSXT_ZUVVT`QWa[YQS^XYWUXRVLXYaT[[QZSYV\bUcT[V^ZZZVWYX[_T[[SU`VTW`UQVPc^`U`[R^aZX]\W[[WZQV[WW]VVY`T\ZVTV_`ZSX[Z[TPXSY[fZ]XZZTVWaS\XQ\\VcWWaVcXNZQ_]TST\\iUT]X`UURZS\XXP^`VheWXXXQ[^XU]aZY^Z]TW^_TTZ`YRX\ZZSW[VVUY[RZUMTPY]Y\[Y\SUWcNYZNOP^UVZb`S]SYXZ]\U[VZb[SX\ZTZWYUY]Y[W`_R_[YdQORP_UW`X][XZ`T[Z\T]`P\\YTUZUV\_]][fVTb\TZT\SQ[]VTX^R[^QPW\U]_XYbQV\dfeZR[QbYSXRX]V\PRSSZ[aZY_Tb_Xd[TVTSXSYYV[R[YX]UX_ZVaTRXYZWR`W^TWdM[WXXWUWONT_V^a\X\UZ[YSW^aWZ[[UT\PYXU[Z]TX[^]WXT_Q^XUSVSW[[SZSWZXONUUS_OTTcZXZX[XV]_Y^T^^R[Q`^UTZZWXXVP[iZ]VUVXRWX\S_\[VW^bXbTX]YT\dg\RYR[V\dRT_[S[[UZ\WN]VRXZTTXX\]\L^_\WYT[OY]YRU[WJRXU]_[\QWdaVU]bXV^^YQRWUVYU\^cV\\WZW\SMT[]SQWS\RZ[UU`bV[UR_X[_ZYYYT\VZUdRU^WSXXRSVQS[V]X[OTgWW\M[Ub_TUUWR]SaUURZ\]VWZVYVeQ\^VZU_S\_YOU[`[YTcWU`X^\]XZW[V[XZTYVXS][TYW_[P_Z[[TO_YVbWVWT\ZXWZKZ^VVZi[W`[VQY\Y\XRS[UU^X\^^`YVXXQLTV]b\S[eYMd\VY]US_VY^UWZYT\WXTX\[QY^TS^WQQX[[W`dUXh`^UZWWXW]YXTRZT_^XUUTWU^ZaUQW^VY\U^dd^XY^cbVV_NSbYV_V]YPRL`]aO`NSUUT_Z`TkRV\V[ZZP[VY]Rd`]a^USLT]MW^RcXM\VGWNOSX[QL]bSKPVZVOaVbVd][UQQPTUVWU^Te\ZQ]TWY[]`PWZW^^[Q\Y_RTX`^XVYcTWR]USZ_XUT`\\VZKYSWTTXM^SSXWYMLV[OOWdO[\TUQYWWYTV]TP]b`\[NZPT[eNTd[YYY[QO[R]]Z_WhTSVVU\[VOVVRUaZLXfROZ\XYh]ZWU]]WVcPVYVVSV]`ZQTYWQN^WVYeS_OWUWT_]YZWSTLV^YLaX^^]ZUTWUTVUXVZZUYSVHXgWX\_Y\Z`MV[[[eRUTUTZ\__V^U\OR\TRPKZXZVMX^]JWW^WVZ[TTVNPY\V^VPWUVVOcSZU\Z\^XPOY\fSc\SS]YVZcYR]LVYY\XffZUYUX`_caZeL]W\WT]YRP^X[]aUOSWVS]XTTaX^[SSQTYYPUZ\]S[VV]RWTV_]SaUU]QRIUSZXWUV]iVSVS\O[PSWcX^WTYZ\TYXSbZSi\Xc]SW[MYX_ZT_ZT[ZRXV[RZXNc`XVYTWNX`VYZWX_TX^b]\aUZ[Z_YY^UaZZV]^WXT]\c\e[SRZUXfW[]X\^XRZPWV`TbW]STVS\RVMXRLSPX[XUVcaVeZT]`O]Y_[S`ZZSYm^YU[WSTNU_WNQZVXW]QQPWZ__]\XXQVVTS`NY[ZXWUS\[ZTZZXYWXTPX[JQVhP]ZYZW_S[YWfR`gWU[eXZdWT]VXPR^Z`KRZTP[]Z^\URVa\`UY][UTZ\TV_WR\`X]UXUUX^XQV^V]jV[UW^W[]YYeTZNWQYUSVT\VY`^]YUUTQWXWTa\VY_aX\aU^_UUP^SaiWU[WXTTUaPTXWYRU[S\VSZXX_eeXWS]\XWRQ\]RQZ`YZeVWV\]bwZS[bRSUa\]ZTX\cWVZTS]ZUT\l\WZ\W^`^]TU`_XXQ[X\W\ZR^RR^XUgY[Y]U[]a[aZ\W_VXWXVTZXVZX[V`^V\S^UdN]bbYSaY\^O\`Y[UVTdUW^\XUT`_YVW[kWVWVTYR`a\ZfS]r^Y]iY]SXTY`]XYST`YY\UW[ZYTWXWX^V^WQT[Y^YaZUR`ZaWU]ORVY_UcaRaX^R]RU[VUXX]^^SUV[TXVPVP\R[S_Y^[VX_VSTUXTTURPYY\KXWNT^XRXUOVZc_dTRSSTXT\`Va_^Yk\LW[MRX^V]XZZ[YVUO[X\Q^\\Z[[T\`YZ_^^Y[^VWT\`XU_QPOUOLZTZUPUY`T[WQ]XS]Q^]U^[X^YQ]gTh^TXQ[\YSVPXdQSOR[g`SXU^`WbQ]YS\U^XXQRUXMUV[TSZ^VNcVdQXYR_\_[VUX[U[P^VUZXYVZPUY[[V[`UXYUXUVY_^TZ_RVQ\\^TWQTXZYX[O\VT\SaVU`Q[VOV[OUccLZUWWNT[[UTTVZXOaS\_bZTTRY^dZXV`VW\XTQa[S\`\Zj_`^YLUOU\XZe^P\XW[_OZWSc[Z`PNUaUeU\YZ\MYdTxhKXRK[RTVQUUV]RUY\`\YTQXK^YO[VWaYVX_UTYZUX[SYU_Y[^YXZR^VRY]SUUXRTSXUYSWVPSVM]^fIQ]UZ^Uh\VV]\[UUT_aYZPv^ZVVSPedY\LQY^X__GRXVURVUaYVUSUWQ^\_WYUU_Y\V_][Y_W\[X^[]YUZYTRVZu\ZWW_^ZXYW^]TP\]X[XZQ[][PP\PZWXUXeQ[W^VVXKjXZS]TT^keaWkj[QV\aSQSWU`]WZOY`XU[TMY[N_W\YVVQTZZ_^YX\USZZUOQU\^KWcX^T^bW[]_\dPZWS\SXVX^YMKS[UZ\_RWSXT[PVXWS\TOWUQPTXWZ\TRY^X[[]Sb[O\OTWUaXXb^_hZ\^^YaUW\UW_WOUdTTV_LU\OYUWZ`^SYT\_UW[WP`ZVVXW[[XQc_SQWVZX`]W`UV\\R[UKYQ^SWUY`YUW[W^Q]`PVYWX^WYQTM_X\fZVVLWXXY[QUUPZYO]\_[^XWUR[TOMX_XO\TaW\YUP^dZa]V[TYXVZ_OXZWZXSVO[NXZa^_RScZYY_]WVV[ZYRXR^VTbVTYXV]cWZWV_a_SVST[T[Rj]VW\ZTV]QWYR\OW\RZ[dWT[][WZPZaO[UWYWSTaY[UZ\`_U][WPYbS\UTOWSQ[TU][S^^UU\^\WVX_U_XW_Z\VQ\^\SS`[XST_W[]WRUW\WWYdVRVVZ\T\U[^STXTZYQZ^V\Z]PWV]ZXWQ[OPYWYYYWW[UQVRTcaTYR_VYhITU[WXf^ZWYWVY]ScSQV]WYXTZQZXQScSXeWTeWSRU^RhhN\WUUYVS^VW\bW\^RUUXV^YXdZYV_Zc[UTZZS\]Q[QT\VU]T^MU]W_\]UTPWRQZPY]V`ZYSZ\U[VV]UMW_\Q]a^UUTYUXQ]YS\YWXYWV]a^RPVc^S`Y_ZSUOUNXRXW[U`Y^RYcSYX^TSSS`^bYYcWYZUUZ][XYZSNWVRXYabXWQ_bUQZY^^^UYU]\SN^X^[^XVeZZSX\WYWS\X]VYVTUUT\VZc[X[aZXTXYWSaU[\TPQZYYQLYW\bVZ]Ze\RZZ[UWV[O`d\WXbYVcYYUPYmYS\WVVRUQRaZVQXQY^Y`VW[WY_VTU[X\VYU[T[T\ZU[_SUQY]VSZV]_cVXTXNVUXP[]XQaUY^U`VRTXc^ZZZT`\Z[`WWVUXT[U[\[UURWS]][[[XUZZQ^n[[W]XZ[YSWfXUaZQd\WZUZ[WV_[Y[KXWYQLTX^[]SWXZ]PZ^cU`YVOSUUUZQV]j\ZWY[_[[YUT_U`c_ZZUacZd`Xad]bT[ZZZ`UW[Q^Z\XfXQSSU\JVaX]U]PaT^\^T^UU[`\VTQ`bUL^US]XNSYTVXW_YO^WX`V]`TXVibZSWPXWX_XX[USV]Q]]\YUUUZ`[TZTjdXQZY[VYVba`cXX[VQ`ZWNX]`bPUW_T_WSXYV[SXWSSM\P`TW^UXSYM^QWR[U^ZZP^`UOU^`XZdSZVX`ZUT`WV]YUVUV^W\Z\VRQTX[VZRXU^SU[XY`adPSXXYfPcQRZZZ^aPV]eX`YWXVXV\ZU[\QVWVQaY]UQYP^W`\T\USM^QX^]OYbP^\[RUQZiTX[RXTZ`lkVVWSZUTXS[SZT]WZ[[c]V_WWbRQN\[^\R_Y[VZTS[`^PP_]YaVZTZZQSWRa]]SSY[R[U__aS__[_]RUTY_R\STWQ^VpVTS[[ZTWXYXXYZTY`dO]ZfSWU[aYVRZ`[VUNZU\[V_fYY^]ZO\\_XVVXaXTXcXXXSVMW[ik`X]UZFZO[gWQWdRZWeW]]WbSZYX\TU_W`YWWVS^WYR^_SS]XPQXU\[WXSY\MSZ[\VWb]Y\YTYY[TWVWQba[W[P]`PSV[RaXT]ZY\fN[XZVYST\TiSPXWUY^ZKSVWTchSXQH_ZYXWbZW^TW`_Q[Y]YYZWX]XX^[YT_`ThYZaS\SdWX]WY\hYSU^S_Xl^WR^YYa\a[^VSXWYQYaTWX\aVVRXVYXYU[aSYTWVZX``ZXeYRZ_OSfZW\U[VToUO^Y]Tb^^RTT[ZXRWXU`P`X_dU`QSaMaWWZQiYaWXaUWV\WYYRVaXYWQWVU[P[TdWUZU_VWOUhUaXTWUW^V\YYPg[^WVYRT[[\VYgTYWZS\UZSWbVUc\UYjSYQ^aVTZWXZ^XRXZWPTT^TVYVOM\eXQUWWZQVPWV`]ZTXRXg\[YPZX]WXRY]RV\ZY\Y[_ZTU[VVYXXV]YL[U\SPVTcUXRXrWZ_^^YWZYGNV`XZSb_`WWTYJ]RSR\]QTVZk^Z_TUUY[^]T__OPdT_]\TVVVSXUYYYOSYX[WcP[YFZTVP`ZYTZQ][YQXZTSYYSb[^VVV^VZYT[HOWZYYSW\TaW`Za^Z\[TXT^Y[XZVOXZ]TPdXVYU`XZRMXSWOTXSXd]TZRUha^[\VWYYO]\aUXWR[W_UZ`SZXQj\aTUZWaPXZ\SWbRRPW^][]TaT^_]\UXWTgXT\`Y[b\V[SW[^ZaP[Y_`[\OYTXdVR[YY]WaZX[\QRUNdXV^YWUU[XP]^\]]`W\WUYRU[Y[RT]WUWX]SX]U_\V`MQYTVZU[bWV`VbTnZS_PXRVVZ\]SWURO^S]Z\WUQ^VPM[k^\PXS[XMf\[T\WW^WY[bQ][MYYWY\YSOXPWXY[YXU`[VXZS`]UmKZUVWT_XaMVU\V\YhUMYQZW]ZPW[RZZUX`V\aN^`Q^VTR`P[Ve[]]J][Y^RZ[ZUUWZ[[^SeUhUV\ZSPYQeVWS[W`e^\SZ^RTZUZX__X`UVUY`WWSU_OW[[hRL_]Zb^\USTWXQR]]ZcRVWY\\TU\aT`TUWTIYeOWd[\V\dO^TYSfZX]YS^QOOZUS[XUYXXR_WZbYUXUNUPQZiVPa]SVZYSX]XWV[YTVZXcX^OTVPTPVR]Z^ZNUM[[W`N\[SNVUXUSO`X^Z\QXZ[RY]UXYZXY_V`YZQ^U`X`QYVZ]PSTaS[]V]SSaV[XMRaT\[XRWVWX[`_YaXZ\NZdXXVSW^UUaWa\TbTXWOPVXSSWR`TX\VePTW^]UYNY`R]TXZ[cVWU[S^P[^SV\YZW]P`__l]ZYTV_\Y_^ZPZ`ZYWZTV^ZPSf`S\LU]_\QVYZ^YWX^ZWVXaUWkZ_iWYW\SdSRbWSS_TPTX[L\bS\Q_Q[Ra[Z_YU\RR[RRWZ]ZT`QS`S[X][eTS`QRZRX^W[[WYY]WZYPVTUXTVVQQ]VWV]_[_WYT]VW[aWbVUVYVUX[WW\P\SX[]VWQZXV\X^VTXX]WRRTW[QS[ZZY`VTZ[^VU_XS`OXTPUZ`ZQ\XX[TUUY_]\WYURRVQZ]PT\ZTRYZKV`[U\\ZW\QObXRTV\U^P[Xb\Q\ZUZTP\XQfNX[SZXZY`SVUTWO\T]RV\]YfXVQZWXX\\aMf\[VQ^RR_[[^R]U[RW]XReRcOWZRVX[YYXVWVZWPdRTTM\dYYVPXU\XT[_XYUY^ROTV]OSX[ZTXU[T_XYUTY]bWV[\^T_X`WQUWjWTSWZcc[TeM\aa[_V\[^SVZVYVXXSZYXRXaSWVTXRYb[]WUbU`\`SY[[VUQSWYW^[YQoV^WdV[XVN]_U[\]WUW`X_WXP^PZ]WMYZW_aTVVW\[aWUXZVRTYS\R[a]cVYYU^ZQTRUT^\WKQZdTbXaP\\VYTVUTWSXNXbUVUKVYSZWWZ^V`RZV\fZ[[``ZVYSZW_U[ZWVZXRZ[`[XTWYV^W\`acVZQTXY\\WRZeWSW^Vb^UXSPVdZV[OY\`ZWWWU]V_YXVUZad\\XTSa_VRR`^]VYWWfUZ`R]VTWRVPbX][SU[V]WTUd\bS[PYa[V^[WYX\\K\_Ta\QYU[URVcW]XYVVX\`[]UVXV__RW`YZYPSUXXRUW[]Y[\TYV`cPZXTVVZWUQSUU_ZT]X_`]^ZVbWYXW[UUX[\U[ZUWVW^T_VPVZYZUV`[ZeUTWTUQW[_\]_]S\ZWZYXYQ]TQ[[RR_TXPTc^\[T^YT`\[YUPUSO]\XV[X[VX_SYZRZ\`bVRYdM^US[YYYX_TS[SaTWVRUWZSXY[^XXUQPaW[_WS_fVQT^UYVRQ_XcHW[a^ZTZS^SabRS]bZ`TW_T\V]b\U[SY[`V\X^XW_UZZMP[POeWW`^ZWkZVX_ZU\W`YTVYbPWVNXUWT_W\_S[UQ`P_[SSSUW[V\X_f]WV_XWTWVZ`W]TN^RV[[SPQVb\RWT`XZ]IXMTWSVM]]_ZTT^ZX\SVZ\]TXSc^W^Q\cOUPdU]Q\Ueg^YYX`XWV_LaZQ\YbPV\WSW[\R^^Z[aIZWWZ\eVhVXY[T]UYTaY]b\[iSSUdZ^Xb[U]RZURTUUU[UUU]ZTWUVUbYZX[fYZYVaZL`WUPYRTTVVSV[SXTPUbZeNVQZW_c_SWQUZSPXWZJPTgPSVYe^SZZYOXZPY\a[YVRJ^\XZTMNP[XW_ZZUZP_MPO[_XTR\_^`XNTZUX`S^SZacUbWLZUOTS^Y^R\V^ZUKU]ZaUS`QMbaRUTd\^NUUL^U[WMUPbZ\U[TYWZ\UXY[fUc][V]ZUUOTY\\W]U[SR\WZVWTb[L^X\VW_NONTUUP[[VhZ_WWRZX\\_SSOU_URXjjcUiSU]S]S`^_WM^VU]Z^VLV^RSL[T[XVRU[VOWVWSKe_\[SSNP]ZT_YTR_Z_cPUUX`YQ][fhZWfX]`UYUbXS\RK_VYZ]dUUWbTXXkUUcVQTVWMTSZcWaXUX_RQ^TY^SaPT][\PNWN]XXTZgWZV[XRUYSUQVcX[SVU]YjYRQRcWY]a[WaRQZUYRV_UWRsYW`V\V[XTfdWaU[UaRTTS_MVbWXThb\TVXW\aV\`[N^`V\YY\W[\g^gY\QUSZU[YOVZXXPYW[[WY^WXgTT]OUQ]ZUUZR``[dOXRUSZXT]T\YVY\YRP[[QZkWWRW\VVU^[QX[VRTWYOTPXQRiScRXVa[ZSSWYYPY[WSRPQTYSZSZUaUWSP\Y\Z\TMW]\ZX\P[bT`Yd[WXUWWWRWaS^\OXTPcS[[d]ZVL\Y]QUeTb]Y\XUV[Z[VQUVYYSVSjYYPc[]`OUcb`W\VRcYR[Sh\XYTSVVLOU_VXZUV_YSVQRT[U^XXW\d`\PVaWVVTT^UmWVVVTXVOZ\TG[ZSQYVUVZ^YT\US_[OV]]VRYZWeTQUSd[TVU]RUOV_\L[^XYbZVUSXZZT_OOU[]ZZ]PTYO[YR][QSUZ_WT\_`_\[eVjfWSUUZY\T]\RSWWTVa]Z`X][VZSSSVVRZ]XO\Z\^SaPRSYa^bVeTTQ[[[X]SYV_QS\V[YaUVX]ZW_WVaWa\UZ_LVgYh\T^YVZ\ZbR]Y_ZNTcVUWU_ZW\PV]cXXVTRZWURZP`\MQR\\RPXUVWT`X[SYU[\ZUY`VYU`SWaNV[Z[ZW^X]dS[_US^SURX[V\XT]OV`ZT[^\^TYbSROOTU\UYTOXXXTY\ZRVW[[OUV^Z]SaUWWRUSYY_OPYaYT^dcKVWX_[ZQW\^WUVST_\TUUYZZ[SVYVVZWYVVXRV`X\ZUQYR`X[`Q^XdQhSQV[b]Z][`P]V[[VW_TWX_YU]^bW^XVON^dfUVTYTT`[YaXQ`SZ\XYMNUUWSWYb\^SVTZ_V]YSSXU^[[]_WQYROPYaNZWU^YVUU\MZTOPZSX^Yd[QP`\SW\^^WSXR^OZaVYbXRVaPX\VQ\TU][\Vc_]ZWV\VTTcXX[_^OXVg]OWTZZWPRWRU\PZ^]NWYKW[SX``XYOXQSZcZ[TXQT_SUXWWYMYY\YRMV__a\T[_ZXUZVZ\ZVV_V]dbMTacTWVWVaOWcRS[VQUh[XgV^XWRPQQ[[TYZXV\WWQQZVW\UXh^Z\`V]TVY^UVYVSHILjSW[VSZ[Z`kR]S[OSYUaVZZOaVbX\WST\US]^RUOOVUXQXWWNXTV[[RYS[ai]ZOXd]_Se[RSX]WS`PV_TN^PdU_TZTXZYXMVVPc[\_bVRUQZW]ZNOYX^TcSWVWViPgkYRXY`XYOVYWVf`ZTZ_ZUU\RYX^QRWYYYUW\]XbUV\ZQ^W^XO[ZYlc\^^RP`VYZU`WXK]bSNVdgXL^XSK\g`[_\SSggXTY^]P]_XWSJUWP][VV_VV\ZXXV_^Z]VU\RM^USLNYaTUU\W\R[WVYPPW[[N[TVdbZYh]O[U[]`^VWV^WKUaaNSXTRWWW`XV^^PVZbSTRYUjS]XVSaU\ZX\YV[`\RR\ZX\QTN]__UWWTTXWdcTk[gV[\\ZZ]]XWY[^^PU`cSU\Y^XV^TSRWdZUUMT\WZJNWVcWZSU]TaT[YY\OUSW_aW__WS[T[VY[XWRQTW[WRScV_g[WZ_Q[_YUbR[P]TPXT]UYWUUZZXZRbSVSVUVUWX[TR^X^[a[ZXT\STZUN_T[TX\T\]X[d[S\YWUT]ZOVZWTZRW]SW^T]QYZbYWYVXRSZVZhP`QU[S^WX[TVOTSXRV][TT`RU`YV\QZ]V\XT]TWKWZWQT[USXZM_PUbcWZXYQX`Z\^]ZaZP`YRYV\YWUXd_X\VZb\`ZaZ_X[V[XRRT`SRUTcc^_RVaT^\bcUTU[X^TZ^ZX[[^W\QST`UT[U^YXT\`[XU]Y`_TYV[[]NSXWPYXX]XY]ZXVWPZSNT[ZXZPY\VZYbY]`ZVZ\[cP`\ZZTPaZ[XWYdZ^WTXU[fW[V\^ccVPUa\V[X\UV__]VoK]aZZPYZS\YWYT[TZ[XR\^SWZWaRX[W\\[XTVTRW]RR^X]V_XXTUNWZ`YXWZSU]YWY`V]WVW[WY][Vc_[\_ZV\^WVRYaUS\W[TV[``_VNX]WU_Y[PZb]_`S^X`UWVX]W[U]dXVTf]\][[LYYVPXZQZUWV\iW\\WUTVY]R^RTLYVXXYTSWRYQOWVROVP]h`PS_L^d]\Y[[WY[ZYUWWc]_ZUXZ[bZ[VS\NW^Y]QUT\\ZTYUT[WZLW_[VTUVUQieXTWXS\Wa`PYX\\Z[NUQTXTOVX[RXSWS][bSTU]]WSVXP]Y]SW]UQZYXf_WX_YXX\aUTWVZ\W^VTQ\V\YFQZYcXa^RS_W[SL\[X_QaR^NTU\[_bUOLYYUXRYR\TST]UYU^[a_^ZMXUV^]Zi[_VST]OZ\W\iVb[RXRSUSfORTGSRZQKRWWY^\QOVYZYYaXTDY^WTWU\YP\T]Z]]XNRWTS^UYWRaOVV[\[bLYX^WXaVY`YWXSZUTS`W[]]\Z[^WXYYWUYYb[XV[YRU[OZ^a[XW[XLbW[]^`\X]YX]WQLY`SY\fY^TfVZYWX[WVXVXdSU[VYh]T`gUd`[OKUUcY_XZ\VYPL]RVcdX]]W[_\ZSVZ`ca[dUi]n`RYWkYN_RX]Z^MZ_Za]c]X]\WYaVZXUY]LY]Wi\[Ra\eRRUXaZ\_NYPT[aT[[Wd[YXXWUWXP\ibWSZSX\\[P\S\[_YV]Qb`QeY\_[YTZPYbWTa_WQaXNc`VORfY[\OZL_VX^]b`YWVYTPSZYa_W]aWVkV[VRSbYUST[`_bX]ZaVWZcXcW[YZccNRQ\ZW`XUW]W\KZZSUTWX[^[bRW\bddbYOV[OZWRUYYWTP[VZbK[VZaQ\WZV^W\bbdU]X]VaT`bRQW]Zd^QQT`\oRQS^\QOYORa_SZTMfYYS_W\__VZ]Y^US__OPfQXbc\aWW[^`WXc^Y]daMTT]WbVZT`YT]`VSWTS`WV_[S[^W\X]OR_SYYYXUL[]ZY^]]MWV`ZQ^aX[U_Q^YUbPV_R[^\X]\b^`ZVVeVfOaN[dX_K[_QX]_eXTTTYY_XLZUPVdQ_YYUUYb^\ZSZLM]Zb_VWQV^Ua^KYYSdX^T[Q\gLgQ`]PR[P_VWWT^[V`XV_SXSZ]^R^V[^]n^PSSVY\UXO^g]]ZJQ\_\X^L[V_]OV^`]\TTRVdTaQMU^hZaQ\[Q^\ZTbPT]\VYSTY]LXVY\WNcTSSVUT[^]SS_R[cSRZ`V]LYVVXaX]_^aacSUZXb][WYXOMZZXYWZU]T[GZS[SUVZOTVL\XXMK^V\\T[\_I_[c]^SVPX\W\PTXWX^T_[XRZ]TVVX]OS_ZWU[QOYSW`ONbYa_YS^XZEUZ`TX[TjT_hc\^QM[XcPXJRS[T`YU`R^UWWS]UTR[XRjWZjaXWSSV\UYQ_VTbZYc]\T^YV^WW[P^UUZZSUVYabSPXZVU]cOVU]P^NWN`cUV]SVNV_\]ZQUS[UbVRW\[[X]Nc[]RQ^QSWeXOPRQSYOVLSW`[ZPXS]^W`W]R[W[R_VTcRVTTTL]^VRTVOUZUZWUZZ\XTb[TcYZX[SXTTVYSQYQ^VRRV_UT[V_TUZ`[X]U`T]UW]Sa`VTY]Y[TQT]VVbXXVSZ`_OV_T[RV_aVSSU[TX_[`YY_Z_T\PdQYWWWYZR`\TQYSSS^YQRh]U^eVV]WWS\[c[`\_T_[fXSSUY]S\U]b]X^\U[RZ_c[XVTQ[^S^Q`\[Q^[OULUaSYZ_WXRTXO_\V]XTWZWYR^[RNZXbXVR^\VXYcaSZV\^U__SVchYYUZOW^WQSSN[[_Zk[WXZRYT]bQ\Z^W_`[WZ_SXZh^RU[RTcYXU]aZT[YYZUY]aVZ_P[ZX^ZXTWXWQ[XXdYfWQWQTgZXZVT\WXVST_k_VSXZTT_[TcZ`h[ZS^TS^E]UZSR_XTS^\SVaYUYYWYSYP[QUX^[[RT][bfQ]SXWYXZZVRJbT\]PH`_URV[^UcWQ[^bRw[TTZ[Ud_[PW[ZXWN\]kYVQQX]UV`d[`\XY\]U^RVVUPVaT]UdVU]_STW[^XU\WXXTVTRVpV`T[\eUVWZ\RRTRVSTQWTUU[YTUXUWWRTPYiYTZTSVZZU^_T][\`[[\VZ[XP\^VQ^YURPZXWQcV\WYW\X[Y[Z]WYQZ\[WXVZWd`\RVUSSbRXXUSXcUXVVUPVURYZ^VXU_\XXZSUTd[\YTUXS[Y]dLN[RSYVOTTPR]ZZWVUYPWXNRY^TZW^`R\Z_]TUXWZ[TVXZUXY[S][UZeYXYbdTZYX^\WcW[V\][X[]ZRaRWaQYNXe`WU[SkZT\UTX[Y[XWZWZV]WR[WT`XXTOV[VPVQYW\YYR[aV^Q_XZZUVZZ\S_S[ZW]`YPT[RU]Z^^_SUpXV_[QNWWXWT]WVS]^^OTOX_\NOb[UWT^VYYYU`OVjQPbUXhPTZX[W_SUTWVVSZ_U\PS]YTVYQQjRZRTVRUVWW]bZaZQiTZ`\QW]_]UV\WX^\UZ\LURbZYURVVVSQXSTWR]RUURVY[k[RR_L_[Rb^UT[ZYX]UYWZZYb^jOhZXYX[Va[Ybb]]PZYTWaTXWY\OZ\UU_TXV_UZ\bVVX\X_YX^dVbWLW\UY^]YV^XR^fMRXSOWNWOQXS[\YUYMWUaVVZTkZ\S^`aYP^T^WSZT[`^TWVUaUVRddk_XZQZV`YKQZTZY^X^[P_^]Z]VUU\V^X[Y^UTWl\QXVMNSXVYgSZb]TbT\SaQhV^TZ`baaTT_TZPZRWR[dVQZ_^][ZgS\YPbWWRZYUZ][U][\[Y`V]YXad]R^YO`\Q``[TU^VWZZLLOUV`UXUSVXbXU\eT^WVXWO^aaSPUTRMWTSSZ`RYXUVUY][^UR]YS\aRXU[bSX]_UR^ZUR]^ZX__ZV^\Z]XUf[b[UUYN\[dR]]TXVZQXg_d^J]Pg]PXY[cRWTTa\`fZ\RRSM`R_SQR^]UPVZRZYSSUcXVU[Q\[PYX[QX]_[[SaYXWRY\OX^\aUP_SRVhV]Y[UPU^YUXZXgP[Q[[\\V]`ZWSbRVY_QXY^PW^SSWXVOUURVWR_RTTgT`bUK\XTYYTXL[^ZY\WZLPQS]\XU^^ZYaSRYMLUXRMOO[W\WLYYcQeY^YTPXSRZ[vYMSYSIR]V]^]T_\YY]]LO]\_SORU[PVUUYU\^TWOZS[\eTX\`UY_ZcWaeYVYSVSVS`UPUS^ZVWWVUaZRW^UYW[eZXS]MSVUTMVY[`Z\WZUWXQZRPNZbXYh]WLQZecbYb\XUYRO\VRWVdYafOSYUXYTV^SPW[a]]VS]P[aZZVkXSTaYYRW]QRc_aSTWSSVTZ\UOb_ZX`YT]_ZgZT]]ZWVWhc[VVRRbWLWdXQ`SXUZSWWc[fQ\[cYYYR\VUXPXU[Z\j\R\`TU_[]aZYUQUW\V^:YTVX_OVZSVYPW\X[`X]VWTOeZR_RRSZZXXmdMeZY]ZW^_\XVSU[`MQWYYZ[V_dX]XT\Q[W`R^[SO[\]ZVTWWYUTX]UR[VUTZZaTYN^eVT[VYPb\XU[_[RXZNX\T\Ye]\YX[V`ZWV\XXMX`WY[[[USWdWUT[VWX_U]XZTZ`UV]YNR]U[\\QVO\dX[\U]Y]^\[O[U[YeSUZ\YXYcX[TT_UZLL\RR[T`TaWUZ_S_\V^f[`R`TX^i\bVKVU\QTXYPYQN_Z[ZV\`Ua_QZcKRYYKWmSXQ\\X\bO_lY\XZZ^ZcW]^Xbg[OVVdZXae`U_N[\]W\Z]Z\\O[ZZUaPRdTO[`UPZ^`[P^^USfWM^R_^`V\`VV^c`VQV^ZKX^_\dZSbQcVV]Vd[XVdQY\RV]][Wa[`[\RV[][ZhQ_[^`cjNT^cbWdXP\X[XZRa\ZXTJWe^ebaOX][kXwZS[cUc]TZgkTWT`YY[`d]VTRVYX\VZ]VU^]OOUNZaaUQ\VTUXaJ_TM]U]R[WQZb\YTS\_Ya[`WV_UY`X]YTi`\QR[ZNX`Z[`_]\U`]a[_aReRSW`cPa`j_kM]YXW[WJR]UR_Z_SXVYZ\WbVVTY\\VNV[Z]XZbd]\]UbW\g`WTXOHXa]cZT]]b_UKP]X_aUaYWOSVgZ]VZYjZZXRZ`[`N^``\]X]W\YJ\Wi]`YWUWXTNSYQU_gYJUidabU_][XWde]dTO[Nh^YRN\`cVV_[[Y\WT^TRPXaTW_UTR]OTb^QSTT[RYUgQe\V`RY[ZU^QTZYYbdRPURW`_\W^W[]XdSWSTYUUVXMSRURbYaZ\a]^]bM[WYVTcUZQSXTXSQbW_]`RXYVG]\V\`UXWb\[gTV[SZTTdc`VRVT\VZXf\T\aSW]ZQRR]_bVWTVU^YTYQSR\]eOMSRWSYUYZ^\YLT\]^^ZWWXZZY^QTXUUX[]]SWPPRWV]WaX[UUgXUTQ]WLMR[]Y\bYN\JZX^LXWY[UYR^Ta]S]WT\ZVXYSXTWSdYWZY_e]TWTRXZ_TWURWfZUXY]^SUUZZ]XYZ\TRXj[WWU\VS[_Ua\SZ]WY_d_^]PZ[XKXeVWXY][_WTV`_Y]URVMScWZV]RT\TUSbPZ[XYY\^WYVY[QZXY[]`TdYZXV]]QVLY`NYWSXZZSYQ[RYY^Z_[W\T[WTXZ\XY`]ONLRZXW\W\X\\VX^YVVWYTZTRY\_X]_]TY[W^[]^YY\_W]YV]T[\ZX[ZVXXVXXYYVZV[[XXW_X[]XVWU[^Y\Y][QWR]S]ZUVaZ`[XZS_ZZVQSRWUZV\Y_WVTZPWVSY]WW[W^Y[Y\\[[\YWQW\[dS^[ZTQXaSaW]aZW]UUYcVZW]_X\_Y[ZQU]_SXPY^WYYU\YZ[[^VUY[W]^UW[`[[aXW\XXWSZYS`Z]YVRY]WVV[\]\YYbUUTZ\YTWZbXVXVW^[XY_`\_SZ[XUZZ\^XXUU\ZW\YYZVZ[[U[\W]YWZXSc\W[XaU[[[TZUY[XeR[ZYccW][Z]f_ZYk^XTW\^XSZX[e[SZ_WZRYYXS[UR`TZZYXYaZ^VX`WV[ZbYY[YX[Z]_YU]\YXQZXV]YYYZZYXXY^YTX]YY\WW`]Z^ZZWWW[\V[SYX_][VY[_VQZd\[Y[V[_UXZZ^Y\SSWXS^_\]`XU\YRSRV^XZX\]WTWLVZWZRV_WVVT_V[Xd\ZTXhSQ\YY_WhNVTW[PU`WTS[^WQRYYR^Z[O]W`[VVTU`OW^RX]RV^TPSSRFR[_W\N]T[YOP]eWZXXY]]Yb^RUWYR_YNR^YTXWQSVVS_VW]lfWWS`^VVQNW`_\\UOgXYYYRVTYbQ`YUXY[]V\QPXaaXTO]SY_W\XbU\NWXSWX^IZSUXZZY]U_QYUPVQaVYXZU\_cVac_XTVWU]UXZXYVVX]SUXV\Z\SXRWS\W`YQWcUW[XWX_QX\YRX^[]RYQ_YUZZ[UTZSiV][TZS_Y[P\Z\TW\TV^NWZXb]LV]a`]RUZS]]XST_TUXY_Y[]TRXXbV[X`]fYYW[[]\_WTVTUXRZaaR^WYbWWWPSUYW[YOU\ZXU\UY_YWQ^ZcX__RN^X[YdXX[ZPRU^W^ZR[XRVV`dWSZbVWa\S[[T\TUXXSXT[ZPYQYXTUYX_TY[^]TYNYiV]WRaa]]TX^V]\X]_OYQWQURbVWMP[ZP_VXUV\YQUYUT`\XTc\^X[`]`aYZTQY`]VPZ\\VZO\YO[bNYWRc^RZc\SWZ[Vd^S\]WPYZVZVV[ZQ[_TPVTbU^PYV]KYM_SSZSOTUR][ZVUdTTRUTST[\\U]R]jXPX]]VVV[RPSfR_ZY]^T]aWU`]_^]`aVUgYU[_Z[UbZW_`WU]XVRX][VaXR[U[QPWZ[\ZdTZ[]`V[SSQ[UUS[PWRVXLVYSZQRh^iOUZNb]]]]U`T^^[aXWR`ZUVWehbZ`\]Q]TU]S[R]_]R[URRbS`R[XRaW`U[_PX]XRX[cXVSa]UZVUXQ\UfS^O[[VTYbYYSVZTUOQWYaa\[W^aX[`XSObYUV[WaTPTVPT][VS\WZ[YeYQ]kV\[R[_VU_V_YYJOqU\]dWNSUTZe\RbUT]RV^`V^\YYVWZWbSZ_WQYT[fYUV[WYOVRbL`\L]YO^f[UVUXV]X[PZUU_Y_^SZbV]XR]U\NhXiXSW\ZRS^V]W]dZSaSOYVP[YYYRP`XTV]\ZZYXT\W[YL]V[efUW[ZY`UQcTUVP`UWYUS[R]]SRXPVVX[UTVSQXXXdWQQYTQMZVf\RUcUbf_YT]Y_\][[]SV]UQZ[_eU^UZPW^USJ[]OXX\ZYS_]VT[XPeSWZYjVYRVYX\SRh^O^XcOH^SPVXaS\[de_S[XV[Z^XU^UTVYR[[YZ`Z]^`WNfYWPVe\WY[NN\aY\T[UebWS^OV]V[UUa]XZUi\LYdR^[ZWUU\TUWYdNYUN]eTQQc`STZf\YPTQOWZ\VRY\U[VfURX[`URWQS[TVM]\WZ\XV`^XTO]XLYRT[PYQ`X_[QX\XYXNZXZY[kb\`VUXYRUZYZWQ]YY[PQ\Wf_TWZVTX\_SSR^[UZQYXXWXS[Y\XYXVYRc`SPbUZbUTWb^WXaTUU[VVWWZVTX`frXWVUTVWPcNVRUSVVWMYQWZRXX[^`S\SiU]ZZW]WZeQOZXXSVW\VVSYY]RTVU_X^ZUNWOX_\^PcXRUVRSfP[_VZSWS_bOWOUfWXVWPYZWVUWZSX_X`ZWN[a[PRTWZVVZ^]`UPeQ]aSXWWQQdYWWX]RZ[P\\W^S\HXZM[RXYXV[UZ\QV\M\R\UWOX^mYVYUSX_ZW\]XX[TVaNfRWY\UYTZ`SWP\^nZaYRWXYQ[WTVX^XUXVTbiQ_OYUZ`UU[Y\S[^PXTQZWRaUUW_U_WZU[eT][VTS_Xf[W_VSaZZQO\]Y^QZVUQNW]ZR[\VdOQ^XXX[DSd_SZ\_^Z^eY]TUYhSWVZZfUZYZRaXaQ`XMYaY[cMaYVY]SRVXMZV[WWW^ZaWX]PQWXZ\W^[SZ^^RSS[KTVWc_ZYTU[UVP]ZYMM\WT[Z`sSPXT_YQOgXShdYXQdRTXQYb\VWURUlN\WYQVXV\SWTX^TSaZ[WW]\ZYRRVRNTVUN\MQUS[PVYSXWNYafYWVWaShYYYXYWeac`Y]`[[W`[V`PU[a]\]bdX[QTWT^YUWYQSbl`RX[SaMTWZ[V]U[XWWVUSXM]TUXZ\^K]UXXg_Sh[^YOV]RQWUaoYZW^UZUTV[R]`V]YTcPTVNVZK\YOT[RS^YVR\TUYQTVPfaPY^`VUP[QZVXUWTU]\ZTWZYUVYUSn`VTW\]VT]XZVVZYP]TQV`XWSaVNYWR^]_S[VUZSWVXZaSPXe[\YgNaYZfTT`ZQZg[^[R\V[a\XMPSRc\O[_U\ZLOWVRQZ_\STQZWY^WYTS]SVXV[SXZY[OWV^WV\f_aS[Xc_QWnXMR`VWUX]SQdOURQO\^YZUW^^c\WZVX]ZUZZWYPXSUUhfS`VQQZYSc_VS^PQ^_U[O]U[dY_eaSUY[^[T]X^RZ`TQd[T]g^X_^]URSOkRVXSfaZSRVSV]SVXZ\RVX\WVW]V_ZcQZ\U\VUXU`]RaS_SONX_RU]U_P`\P^^POZXU]RWfY\_ZS]_YW^YQW_]WZ]TcQV^TVUVVRZ]QWUZVbZ[`W`TT^WZ\SWR]ZeN]Q`RUSS]RUZXWQVZWQMZW][ZHW\\TaVRU\XKVXORVUZ^QSW\UO^YT^]XRSR]YR\\[WT\VWX[QUXXgZW^R^ZX\WTVX^QXR]`n]TcYZZUPL][]QbQXVVXSY`VTS]XiXY[U\ZQ^[UaXT\ZZSXUYPUcRZlXQUSQ\[SbQ[`\UTUUVK]WbYQXPJ[WWYT^aVZ[[a\UST[^\dWZZUPZXWUW[RY[UaUY\aVZfRVT^`^WXSV[PSS]\MZ^TYWQ]aecVV\[TXdXSWYeQWSYQV^[WQZZ]VdTXNQTQYRW[W\VS_[YP[ORgQT^YXOTYT\WSR\Z^YKX^WVWUWPbX\YZVX]XSQ]YQVX^Z_eZU[[bS\SS]\cT`SXXeVZT]U]\]SWWS`]]SWdVTONUcdlZTN_eT\bX\_PUZ[^XYU_`WX_WLYY^hYT_VONYML[ZSbV^TPdWW]TTZT^]RWZUcUVR[[[ZVXYWc^`USZY\PYS]X_\VVWVWP[WWX\_Y_e`aU^d[T_UUWZLWoW\ZUVRdZWYP\UXbXOS\ZdeY\dYSTfR^al]\[YTWNUWXWT[\_VZV]R\SXbRUNYYTTZWVWS]^]]]T`\V`QW][hRbUSVS]dh_^YdXVU[R[LVV\PTS_ZTYYSO_YUR\Nd\S]WeNR\^SX^W^e][^^V\SZZY[V^[^X]`VU^_`USK\[SSUTQXZ\ZVRaV\TM]UORVSTWZP]YcV[[_]UU]RUWeZXXRWZUQVUNOReU]RSZT\Vc`V]e]XYYYZRVb^V]TaV^hY[]_SY\TJ`Y\Y]^XaYYR\ZaVUSORXWV\]TURZU[]U\`]aUY]ZlVTXZSYX_QS``V^NU]YTPacXRRLXRSZWPQ\aVYaXTW`Ub_ZTWTYR_]^TO\YVRVSZ`]V\SVS]OPaZ`WYR\VW\__WRZZUOSUWQVZf[YUZ^fbYZKTW`_hTQP`\RV[bW`ZWXWWR^VT^\[_TYXY[ZSRZ^[]XW[ZWQS]aO]\fWXZ]Q\UUZ\XUTZYO[bVW\TYY]Z[YbRUY[Z]_N[_[bVZaZ\[]U]`X_`WbMRWVSUVWYSVU\cKSU]]ZWcUT^OXS[ZW^]WNZ]^eU`XbUO\VOW[YY[]^YYX`WXbTXSXV]X_s]YYUVZWXi]VXVTWMRVJZ^]V]ZWY\[TWXZVVYR\P_LYVKbUU`YWZ\LZY^U]_PaYZ`XPU[XVWYQZU`\OWYVRW\PWZYV]VZY`_UX\[]`O\ZYaXVa\WZTZUWXU[bPZ\Z[UTTX_U`VbcPTTYUTXRR\]]WVZ[XY]^_QTXXXUZTT^^]ZZWQW[TXP[eU]ZVZO_TW]WVVVb]]XZVTWSZTW^U\Y^Y_VV[V\VWVK]_aWYSb\ZMS`\\ZXeT_U[_ShUj\ZX_ZZ_XVSUWc[XSg^_XVTV\XUSWZ`g]Ul[SPVUX\X[T`_[QWXZ\_VQ[VVXUSfT^bSgXYYTaQc\Q[UUV^VVZaZ]MXXWX[TY\bVR^`UTXVZg[VZXUYTbWY_V][SaY[U^WVUYWZZ\Z[]Y\WVVU\\\U\VVWZX\Q\VgXdRT\]Z\QbLQQSW[NW^YMVZS`ZZW[RTQUY_Ya[ZUVX[]X]o`NWXUVZXW\Z^OU\WaZWXVV[V^XXe]\XWXTWRhXV_XQOY^RVYQcWaXZXUZR]RWZYWZWONf]TXVVTYYXWUOXVZSV[O]T`XY\T]`WX`X^TQa[ZTQUUFRTThZRbSSRSRYaZ`dT[W^a]][S]QVb``VYVW\`j]T\RUX[NXLZ^W]YRW_UR_Y]TK]Pb^[X]O_RSdZaWIQXg_XYTV]RVOSdY_VUTRZXPSTL_`PV]`ScY^_YVRUbV^SW]TTcXUZ]RTZTU`]RaPZUU`TZ[UTXUTRVYTZXOSTQ`MQ]OaSOXTRbWQY\]WMaY\[YZ^[UdQa\YWXYS^ZRUXUZ[fXWWZbTU[]P^XZ`aXSXQd^VW[QYU^]YZ[WYYUSXS^Y]ZaXVRWMQ[iYdWZOa_\S_]R^SbXU\XaWYUYaU_Y\XkOUYZY\ZWL]\Y\RTOUY_^d[PXTSTYTVVb`MWWXT\T\S\WR]a_]^S\YWPXXTZc`bYXVRiWXU[`QUVYXT_]TX[UXYUZSOZ[YQd`S]UTXUZRRUbUU_WVRSWRRWY\YaU_^_SU[_]ZYT]]VaiQ[\][VT\\SQVXOZTSVUZ]Zb`]ZS_S]XZcS\ZRY^`\UWX[^Q^aWQW]Z\LaO\QYZXUWNU\^bTdY\XUVWQWS]UYUQZ[YWWHSe[_XZVfTVZXcSSWX^ZZTQ]_]XYXKcQWUUWQ^ZZ^SSO[\WUPR[RXP]e[Z[Q^OZOZ`MSV`U[UbaVW\X[ZQS`TW^aZSPZ[ba^^[UY\QN^WXR[ZhRWTVTU[S[]Z^[]ZV\[\Z`Q]TWXPT^XTXWTXT\UY^TSK`X[\XVXUYU\ZW\V]TT[WX[Q]^]W\VYNPTUS]XXVVTMSKYPWXS_[V[U\\RS\RTXbcQWZSQTYVV\\P_UVTX[_`TVTW\Y[ZZVRe`VQM\VZI^QZV_[X\^V^Y]YQXLUT[U`T[P[eURVV`WdUVVm]_WR]K\\ZZ\]`UQOV[_\]QQZX\TX\OY]WL[U^\SXRV^^T_\YbM[ZOTZ\`^SeIaYP\WdVW]VY\XX\V\NMPQaZJZXZVXSWXZP[T\QX\XVYQRWYQS\bVZXKWYe[a]_XOUZW]gg]QZ^[\XbS[TXOR[XV[b_^UE`XRW`LbT\XXWY\dO\^[RV][[VRP\[[VYM^Tgc\iUVL`Z^_TN__h[dUSR`VT[S_JYSS`MYNQ]fY[YYePZVWU]SVMRW]KYXSa[ULdKRaXXZYZWV\VdX\U^`^]SWXVR[ZeVOhV][YL\WbVXQ^ZWS\Q`WZ[`aQU`e\O\QaTYU^R[]YYUaOQVeT`WO]bfVRT\UZPYZ]OQZUbY\QZTQZdYWSV]lY`a\WY[W[EIf[TP[^ZcgX`VWQU[TV^ZXNbUUWWY]\\\QWXVb^[f\XcSOZIUYVR]VHWXV\[Q[[Z[cQcV[WU`UcXZUNKV\^bWTUWYjRXOT]SYY^UP[_aWd^RbXeSZVW`WZVfNR[]_\[egWUY`ZTYVSdSaZSX\[XYeYOIVbYXT]ZYXc]TVXYaKUUUS\TVXT_bdU]]UVUWW[]SUTZY[^]QYcX]XYWWRa\ZNXW[\UQ_V[[T[VTjPX\\\XQX[WU[YZZ_X_YVZTOS^[U]Zc^]UTXYVQfZ\TWVY[eZUZbeO_[QR]\]kTWka\aZYV`P^PRXZY_^fY[^ZXZLTQVf\T\^XM^SVYa]S\Y[XaRNb][[U]\\XWSX\XgMW\YeWVNVTV_ZLl_[RXR[QQYTTTYZU[]VcV^TQa[Z]ZaTVRPVV\VTWY[PZT_UT`cUU^SYYX]`QZ^Za]WS^SU\PVW`UVj`f^WU\X\WaOW]UT[X`\]^]V_\MYMTT^YLV^_ZUY^TUX\Q\NZWaV[ZYdWSblX\XWVRWRZTYYLU[VV]Q_\XRVRZT[`VQd[e][_WV\`U[`WYUTUS`WX\Y`XWXR`[ZY_UZU]ZRdR\X]XW\^_WZYTaXSWV^OYeVS`WWXVaX[Z\UXSQ[RYTZXXT\XXgUQTn\XYZZ_Z`]YS^Y_Y\ST`[ZMWZ[[SZTSXPSUQZ[b\][\_Y\ZZU]XW]TTZUTZ[`YTT[\T`WXfWSVYVTbY\ZSSWXTPZ\U_XOTRZV]WSTYfUNWSYVU]^^XX]k^RWYW[[VXVU[T^R\jR^`[a\]`bZXNYUX\XUY[N`[YbYWYVY[`SOS]URX_^WU^S[VZ_Y]cPXVXZXWMWSgV[U_^UR[[YVVOYVPV\[\\cVaXNV^]X^T^bgZ]O]PXPYYZZ\YUZ[[XY[VSeYZTYV``^Z`XZSTb^S]aWVX_YUVW[f[O[hYMV[\Y]X[^WPXQZNUQXSZV_YJ[d]\SWQ\fV\VZUZVVMOVTV\[RVYY[ZXWWWX\Y]QSWYMbPMaZTZV\]]eYZY[PQXNMX^XVVTVb\T[]T]WZ`NTY\^Q]UWWZU\YZ[TWaY_]V^^`US`Z]\fWOZWX\MW^X[WTQ]R\\^VRW`^SZ\]UZSYYX\Y[WXZQSXXPUY[]YQNRUYO[VVa]X]XY[Y_ZVV[ZYX[]YX[PV[\W]VT^ZYTjW_[ZSXR]XWO]Q`W\^TPZY[Scb_b\]OWURYZVd]U]cYT`UZ]Te^^Z^PZ[RPX`[W^TY[X[TYY^RPYWZWW^]U[]VNXb``a\XdWW\jYW]^V_UPYXYYVXd]]YTZWZYQZ]WX\Z\TT_]UX\gZbTT^a__\VYSWbVUSXfXXX[XVUWRWaS\VZVSX\tX\YZej]W`XUTTa\T^bXZ`VUZPUVXVRR]VYgW\[[WX]`V\XVX]PVXU]MVUQY_VVU][``YUYSXZ[VX`QXW\PXSYUSWR\WTPROK\XUR\OZ]SR[VVZU[[SS\ZWYXVV[U\VV\XYXWYTVTVX]Z]XSWT^_`][UeQ\XZZ\TYYQWUVZUWQVW\YXWUXLVZ`ZWUOgZUZ\[RZ`\W\Tc\aNZ]YOTZYVYQVPaSRWRQV^TT`_[X^T_Z\XRUaTSV]YUZ]`SXU\\_]SSXOU]\dXZVQTT_Y]Z_]Y\[YYRVVX`V\PGeYXX]e`\aT^VVYXR^TYYQTXaZSVcTPXZRXTWUT]YKM[aWZT]ULY\^\X_Z]UWXZXR[TVX\a]W]R^VaZ\YUZZ[VZT\b`WTYPaV[Z`Xhb^WSYMZa^RVZ_UYbQSVSWQOYPT\VZTT]\PUXVSV\W^YUUUb^QnY[Z]RVPT]c[V]VXTZY`^[XRZ[LXYVX^]UZMYXWWQY`]QUNXP[_QW_S[Z\ST^V`XQ`\[_VcV^W^XTY]W\WSXST\[^\Z^YW^U\Y_VVbPZTSWZZVLMWZSU^Y]XVYaZRfSZ[ZQUNcaYYPPc\^NWV`MUUYeXYTQUUc\YRdOUUUa\^WYTfKX_YW[dU\UQ]\PRXZWYV^]]WTUTZ_U\YXR[VVUXdST\]XnYV\TRYW`UUSYUZUQSYMO[cZl]V_XMOZ[T_QPc]]i_WVPcOVZdXYUS`TfXWVZXOY`ON[UQXU[\PQXRZ^V\N\Y[`WRO^eR]ZSUXV[KXNY[bW]ZSb]^ZYZNaRO[MUWTY`SYXSRTZhXR]XQV\\KT]URV]T[RQY\T]QeWWPZ]cV`RSS`eb\UVWe`[Ya]Y\OWMZ_S\S_]a\[UUW]NVYZ\QTYV^ZTWR[WaXc]RPZ]\WTgY\h\YXP^QQV[fbYVaTW\__Y\UXZVVR\PX^SQYSTSUQeSUfXQV_Q^e[^ZYcYO[Q`[UXWS[UaUSZZZWW]\\UYTVc][^XQYPPYQWXWTYXdSXJ]RX`V_\VbSWRY^UWaYYZ\ZTMUVS\\SXTZRVVa^[XQ`WR`XRV]S]NaTSX`VXg]]OWRN[SU^RNbZRU\^^W]UQXVSRUZYVZXT_OWTRSVTa^QVOY\YTSXTTZi[XXTV[XW[W^N[\_d\JXU^QXVV[Z_XVcaSZX]gY\U[Y\LX[_[TaLS]dSZ[PcYWVUK^Pd[XRMRRmY_[OV]VSc]`WZTOUgYT^V\^YV\UUZX[VQWT][UVX]aeWQlUTJZZTO[W^YXUOYaLVRZSh]cQ[[dd`]WPbWSS^WUUU]ZVURTWk`Z[O]T[UVUU`TPZZ]URYZVR]V]WPU]^`ZVZSg^^\XSQZ[VX_[V^WZRQZZPY\TQQ`Q\WYYRP]^VU^RP]`SZVTZ\UVRZY]]P`e[Y\[^QZRSXXZWSYWTQWUUWQTVR[VF[^UbYUYV[V[dVXZ[UZWV]\]\UY\VZUSXWWT_\QNY\cZTU[^TTXZUYZ\R`[T^a[eO_aWXYRTVaV\OZ^VTgUOVRO]g`ZY[WUTPZabQSU\\JiUZ_U_XP^ZRYYS]W][VRW`PSZNYUYVR[QWaa\_]Y]TZVgPaS[`LYVPfcYWhXW\QZ^SNcXZTX_SYUXW\fOYWXc^YQQcaP^QX\Z__YQ[TRWZT\XOZ[caSQVV]XXKVSb\Y`Y[SS[V[ScKNQPY[bb[URT`XY[gaWV_W]LU[WVYXVQWYW\^SYXYYZc]SY\]jU\OXVR_^cYPX_Y\U[__\XRX^W\S[ZYR`W`WeUXVVWRXSXSWd[YS^P]XV\WXZT\TIc_b[VSU\U\\VORXTVVWKQ[MUb\VXZX`[WYZTVV_SUUWT[YXabaXYY^ZOPYZY`VYN[XZ[XP_UVP\]M`QZ]XTVaYTSTiR[hS[`[WaUUaUWWaW_YigXOQTLXT[S_QMPQP[U[ZR\[UmWlZdO^bQ\ZVRZZVTTU_SROY[W`O[OWXWTgUXXXNV`XXXZUW\dcTTYYTORSY][_ZQ\\^VVTSUTVUR[SNUJWWV^OZV_[]XTV\Y_[OaWZVWVTaXQW^[Ve``VZUUUV^V\]VQXT\Y[UbcYQXXXXQ[VaR[ZUXUXRO\V`RYW[YRQaYYW`ZZZUPYZpUfUYJVY_SW^VVWKZ^N^S_VUXVUZPXU[Z[VOOXQbX[a`YV_Y^TcU^MZZWW[U]SZ^_^[QRS[TYWZ^SX^UM`UYcR\VS\T\SYTUTbVRVXSUNRR\_TTZ\PSS^NUaaUY]XU_ke[RUNd]OUTOT_ZQSMS^VjM\eXUaYdVWW^[SWVRW`TeTWYUcV_QZSUSU[U][QXlJeO`UWXZT^TXYeO^[bW^YYZcXW]XU\^c\QabUTYPP[WS^Y[XY^[bV[M]V_XU^MPYPXXdZXY]W^TT[U[XWVTPge]_`SS_NUZL`^YW]F^XS\RSQURRQZ]P[o[PSVd\XTYSTcYZ[UX\XMLXaXIb]SSNb\V[_Y]iS\UXZPY]^YO[Y^XWORURWV]XR=JVXNIW^Q\[]XXYQTXTTP[ZTW[TPWX\WVXfS`]UX^_PYV[VY]MRd_QWXSVVSdSNTJYZ[N\UOQSdY]YaXTW\cYVXXcVSRYRTX`PZT_PIZ[R^ec[UWUdUb]_YZ[UhIXjUZU\Z[\\SXRVYQR[Z^_SST[PP[WVeOZh[TWV`cVZ`UVU\ZYa\XYL\S[bKX^XVYX][[UUX^YW[WUV_YU`OY_XYV\[XS^W[TYSZZ[U\YR[hT[^ZOW[YSXXW]WPWTV]VY^XUZQSON_\NYWWh`eVXRf^][\TZQS\QgUR[UMW]XRXZ]ad\RIVZYXc^]ZZT^\O[US_Y]RVYPY[U]U\TdjQXUVVVNWYZT^PVVXRN\hVVQ[XVVbf^YW_STXUXX[ZVbhRVR_YYY^[cXXLYT]TXWX^O\VZ\WQTTTa_T_^Y`ZTRVOUYN[V[W\SZX[ZXRV]PZVWS\XO]LXTSX]U]YW]i\W][aUZYSRXRSTT`SKaWVX\`aZ`WTUWYR_R^TZ\eXR\\\S[\QXYUW^UVYa^Y\U[]\^TRVT]SQWRZVXZYQd[VScZ[VQTXWXSZTT^^YV]W\QWWWSQWXU]X]eYbXXWXLV[YRT_\SeXce^TX[KXYZOWVZ]cRlTY_Z]RXZVWWZ^XUWYNU]\KV[_XYWZaYU]WXZfUPZ_RR[ZWZ\bV_UcX]Ze[XZV[_a[^bVV^UcUaY]OU`[Y]XQ`S`XT`QQSZWYY\VQT]PSUTYaUTW]ZaV][VZQTWS^f_S[Y`^TNX]U]TSZZ__SVRdUWU]aRWaXlYXZMWVS`YWYZUXWTY]T\ZTQOd[YQVfQ`SYRU]YYVW^`_SX[VY]P^YV\ZUX_ZUcV`bRUPU]X\V[X[WQX`S]\aV^_a[TZX[[VZ[\bU`VX\SZZWaZUYVKP_]SZTWX[Y]RZZWUVWR[^ReYOW[U_\P[[WU[]YTURZSM]NW[dZTZVTT[TUV]UVZPNX^SG\[PRWQVV[RVYXYXY_Y]ZVeW\daVW`VRMTZUc[XaUXYSZOaXYY^]PRW[VVO]W]Y[`V\U\]RaYWYX[TQYT\X]LXXQU\UXSUQT]ZTTUOSe[VS_Y][^X]WMZUb\ReWYXYRbUZS_\YYXU]ZPOMV^TU_VYY[R^YTW[\Z^^`hZU[]UUW^YQWT[^VeISbR\^\UQ[\\XYRSb^U[Z\VYV\R[^UVfYRMZ^MZPTUUX]a]YTY[V[aXW]Z\[XUV\Z\SR\YVWXVaS[TXQYVXWPZUV\YaWVSWQQ[TPTW`VUSW[S\[^RWZZU`UPY\aWYY][QRXXbTUSUTSTTTWVNZW_`Rl]Wi[XMSVYXWXa`RZ_TXYQZU^SUWYSaS]\_]\\\aSU\ZYYRWX]Q_W\[]ZTT]VuUgW[c[WW]^\]ZUVNS[VYWT[ZX[V[^UZT[\XPVX[\TqXYSTVYY^YYVYW[XZ\WS^\XY]ZTSY_SVUWQQO_^`_RZ^YY[SVY\TV[]TVWcV\bYW\[P[VWWUX`OSTbYSYVfTUQTQ[WX^SZ\i[VZVb`XT[UW[VUW[\R_UThY\]XW[b`R]P]ZZYVTZW\Z^WW\eSTX[TUUT\OcS[]ZT`QYZ]Y_TPXYQSUZgQRR\^S_WXZXRTbW[YYWTbY[VVX_QU\XVVU_PWSRV^Vb[WabVYTVaRWU\YY\ZZY\\V[_RV]URVRY[[UWYXVQVR]TVSXVV[OZdVSS_YY_]XZ_SSPD]UNT[U`ZP^S][SVRc\fNV`S]][[XVXV[]VZR_V_OY`X[__[VZX^`aUWZbRTXWW`]^VNbUfUa_bZaOX\`ZZQRaVZ[NYZaROZ_ZUTSPVV_U^TWUYXXU\RSXWWOXQd`T]XXW[VY[POYWW]VXOO\XVgWY[^RV^Q\\ZWf[PS`XR]TZO[WQdjYSZXW`WNV^UUYZVR^USR]ceYUZWW_QZUPKZ[]XWjWWUT\VYS\Z^\SWOfPYX[]bV_bYRYZRUf^OacWXUVTX[T\\SXP]YZWQUZeXY_PU_Q^`TY[YRWVTRVOW[_]\YNR]MWQT^SZV\X\[jUPRaVWR[`VS^PVUTSXT`[bTV^X\U]S_eTVXSb`OXYTPUZTVYV\U`bTdSWMZV[_[X^[ZZQZUZe\^[\YSaVX[VXZY[VWY_WZZt\TVZ_dWWXR\TWWTZ[SQ][V^OVW\N`HXYSY_\^NXVUt]YZXSX`NNXY\[_MYUSZaXiS\[U\RQ_SQb`^UTeQZS[dUYWUMZ_fYPYYTVZ]URUR\VZ\`TTIhW[\WZQ^XU\RYYTXQ^_hR^YNMWZUX`S[PW[Yb_TVQZYXSXWa_T\UcUTQXXSbS_RNSS\_dfULZcX[ZYJ]TWcQPYWLG_QL^VV^^YSRR\KUZPRLX]^V_[PbcZ\XV]U^^TVaYPMTUQ\`\\X`^WXUUSTOk^b]][R\VUO[UN\UXnbS_[RW`VZ[SYYROVQZPRPbZTqXd[NQ[TpXW^WYkRSX_`WV]VYJ^\Rb_WRUZX`VOSVUZTX_cXWUZ^N`_W\WZ`T^d[UKZZ]Od`YbUW][U]bVZYTTc]]TZV[YY_Q]QX\]NXOJTZ_VQ`Q^ZSYYXgZZ]YWZZV\RYdMUQXY[UWRbVWSYSaSUWPc][YWZZjSPb\QV^PLQWVXbQRSU[U\K]Y^\PT[ZTQcXY\OZ[T^VQ\d\T^SYcZ]aWN[OW\V[aZWVTR^TNR_]]RN]XYTgXR`]`_ZYTac`VY``W][hIXS\RU_]Ve^YYQWZ_V[_WTZRYWT]WV[YTU\_OK\Y^]WYWSYU^XacVeT[P^U`WWRX\R^[eWUW_\VY[TZXZ]fV]RaXW[NWVZaZ\g\VYZS__UUM\S\UeTZbWYSZWWSWWSRWT[e]]]XYVUM`R[[ZZ[PQPUYVYSV^`]cU]P^TYMZSJUYVUZY_YbTW[\UQUTa`]V[_YQTT\ZZ^\TZ_]UY_]PaOZVP_UW][X\SUWa_PSMRWS]XPZMYYSWXRY[L]iYWTQYXV^NP\SWZbXRYS[WVS^T[UbdMR_ZQ_]XZNRU^PNPX[`TX\fWXZXRVKVQV[[YaOd[OTa^^dY_ZOWWYZQ]S[QbSLSZZW_]STfW^V`UXVQWTYKTWO[R\Y^OVQRP_^RXgSTVSZ`TWZ\Y_V_TZ`S_`XX[UjYYWTXZT`XSTOWSRRV\Z[[YYW]]eXaVWMOYWWQd]ZU^^V\cWYZaYWTc\[XOVY\Y^_^[USWYRX_UWZW_TYZRX`WPZ]VbVYVXZWZN[U]QX[SYXSXLZ`XXVQYVZaXWYVYO_ZeYNUb\`TYH\_WY]]`TWWT\QWWRZ[RPZ[TLP[UZ[WUTUYTQPNRZWXa[QVY\WVNUWWUYIUZ_WVL^YaTYXPTSS^]T[]``VM\Z`[WWS^SZZXZVVXQVXZV_`WRaY\YX_R[\\WYVUT_VU\`ZY\h_RW\a\OV[Z\SYZTXXLWa``_Z^bW_UQ]VUUYaX][XhZZXZacPV]hPUXZSOVS[]UV\ZXS`S]T_cV[VZZUUY]X`XVYXaXPS]S^WZUJ[OY\ZUU[TUWQW]YPVZ]WVXSWXU[^^XZY[TYRifX[]WSU[YX_ZWS\NWUYXWVaZU[^Sc][YW[bX\`e\VXR[^V_T`XVWT``TVXQSXYeW_USVcNTYV[VW^[SU\RQZYVMUO\PeOOZY\MZYV\S\gXV^]XdY[WUXOXlWYZWX`]TUYXSWR[WWXWZ_]RgW]Y\UXUUY[aY]V`[U\Rd[RYR_\VYWYZPU]STUXR\YWV[SRXV`VOXR^_YQ_TSVZ]R_X\R^S\M\ZYWXXUZUUTY]QdVXZSaSW[P^U`eYXZ[V[T[PX[TciW_[\^[]V\^W]TVZ[X`W[VZW__P][WKZYWVSY\TUYXXS\`U\chURbnZYdU]Y[PXcV^XXVQTV_]VZTYZ]h^U_T[XQ\_YTZ_ZW]]VY_TYZX[P]W\W^`]OYZTbWNTSeTWZTQY[_NVV][WW^_XZWWSYWcZQN[V]R\Wi]W\TR[UV\R^Y`\VWYO[YVLX_WZRVRVZZSVd]UVl^UYV\SZXU_VWUVRVQZSVZYXWUUVZ\NVXQ^SiTUhYM[VZcR^YYS`TZZYX\WT]Z\VZ\V][Y\UWZYW_VaYa]R]SXUSZS_TWa]h^`XW_WURQ^YUU\ZQcTVWV^\TR[ZXZZ]]VWTZcUWW\[T[UW\\Zd[MR[X][PZ\QQTLT[TP[\W_UVQWRYVN]RfkWY]RSZU`ZZTSWU]YdZQ\YV`YS_W[XZVSYZW[SYaS\VU\SZP[a`YcVZ^XZ[PSbX\]USY[VQcPUO[S]OUZeW`QW\X]^ZS[cZT]ZQYWQZW`a_T_Ue[T]][X]]VRRZcTVV^YNWh\RUQXOTV^RZ\WZVQZ^TWRTZPV^\SXWZZRXXYV[cO[V_X[YYT\`YV[]X]XR_ZW^gOTTOS\`QR\MW]V[ZXV`TWZWZ[X^\QZZWY_W[SUO\O_SbV\YWKWVU`YR\RZXUYZN]OTW[d[[hVWlTYMWqZQXVY[X[Y[\\_RVH`RVWSiZTUPQVWWZ_UVXgW\]U_PUTe[PXRhVUUV\X_i_UW[PaWaUTW_YZXTWIU\VUOZVXSPbV[Ucg\V^WSeWfVXNXZ[Wd\]\YVYU`LY_YYRSbTWQRS_XNX_\baZ^TU[VWZ][XfdaZXVVTUcP_W^[UZ[ZTW^USU`ZWXKRXRXUZoTRU[aZ_PWWZU_TVaLVeYUWh\VRTc^YVUX^X[\\\XRUVfZWS\[[STaXRX\WPRZYXZSW[XbW_[TXOOT[\[URNXsXXLU[UZWU]PW\[YVWaUZaVWPSZ`OYV_lP^Wf^TWSUU][VcUaTYZU^\_d[SWPS]c_`V_V__Y\ZX_URVZVJYU]V]UYVagYZgZX[ZS\^R][VdY]PTWj_Tg`cYVZWZUUhV^^WYOT][gV\X]SeeZY\U\bUZVZZZTXQ\\TS[ZROoXYUaVV]T_STYX]_USVXYRWNbY`VZVYRzTWUaTZZR[SQaMYUQ_UKXX\ST[ZRWhU^]SY_jRRYUYOZ[cgY[ZV^[SU]V__W^X\X^mRZRSU[XQXe\QRU]VSWJa[YZY]\YX[Q]VZSO[\XTUVXgVR^SXXSaW\\VOaT__XVZ^`UV\PdVTaYc_]UZSXQSN[eY_b[W]ieYTXUYQa[WY`de^W[dVeW^WZX]\`UN]Z]\V\X^\Va^[YSaZW^PVS\a][XYudSYd`UZaV^VYYa\MXZ[\W`g_QacR\ZWS^[RXZ\Z^ZWUIUQYTWRTYWYXKS^V_bZ\ZZRZbY_`WUZQZ_c`V]VU^O\rVZ`PX_hcV[P[ZXd\XP\b[VU^YXXTaQVW[TXZ[[VP\`PZV[^QUZkgjaR\^b[Y\]]_X\YUoh]V]\Vk\gWUWaQ`VYSWTUV_`WaX^\`VZca^\a[XZU^S^YZQTXd`XZ\[ZXXY\]OU_V`T^VZTUYR\T[L\^WT^UVXWebUa^]\W[_XWNUSXTTX_QYY]\SSWR]_a`fRUZZW[RSOaQ[\R`]W[`VOS\\V]gZUSWWXaM^U`ZWUZ[XY\aV^WYYe_W]^WTUUXU\VIR^V`VWWR]WUcT]UUWPVbVVa^V][b[SfSXQ\aaR^Y_[\UX[VUX]cU`_RPd^ccYIePYTV]LYX_UNW^TVXS\aZ`RUYLY]VRRSW_]ZVPU]RUci`US_ZSWXV[UceI\f]_dPWXWUS^Xa[XciW[X`XUWbQVYPXNXSed_XZT]Z\aWcY\Vb_[Z\QZYPU\XYPZZHV]\ZU[YcSXWWV^WV\W_RTcQZV`e_NZ[W[b_WQbRTQkZdV`_ZOZb\XgYZ_ZXT]VWbTOmVQbQc]\`UXUTRU\TT_QOa_TPZ\XeZ_`R]aNNY_WZXY\XNaUbR[RVVRP^VQY[c`^UYWTb^`]_V_WZ\[T[P[P[bTW\SXYVWXY][\L_YXSYb^S[\ddRhOV\QY_YNbW[]ZX\XNWR[WgSYZUZZXZZZ]Z`ZZRYVaWVZ[SX_[\UV[U^\Z[Wa[XQXYV]\\SV\SVX^h^YV_[\]Y^[X_`\]^`RQY\d[UZTTTWYRTUX\]^dSOYWUdU\P`[Xc[]UZXZTW`XSW_V`TU\U]YVT^gPYSZPV_[\ZZYXZTRX[XWW`V]RTUV]USX\^TVVST]UPV[OVXTSbTTU`ZZ\WWXZ_YW\WY^PUaVYZ\T^MZ^_WWZVSUSXW]V[RZTcURa\[Y\YY[Y\Ub[]ZfWU[`P[][VXWY\RXXTgQZSXYWXU[[ZU[acYSTWZTY_XPUP\QcT_WZYZ`VUZbbU[Y]VUTNTYP][YUP]fU\[Z\VYPVUYS^WU`U_RYTXX[OT[UTZUP^XXZYXUUaUVWSWYYXb\UXWVPYU[ZZWY\WZT^]TW^^Z[OZbUX^T[[\WWWTXU\VUTUXQSXYY[Y^_\[ZS^a\ZbX\Z\^[UUYQV]YRaY\WcSXXXUaV][UXU[VYTTZWS`X^WWZS[\X]XVXVV[URdTVOt\SWUMUXZ]UaSZ[WSaX[X[ZXSW^Ua[YRRW\RXZXbX\ZZWUTjXRUZ\]V_WUXVVT_URUWYURT[YSTT^WUYWWZUSRQ]ZTT_[XYQRT^\W\ZU_WX_^XSX[RXTW_ZXVYX[YcWUdVZWTSu]TZV\XVXWV[T`XYY[XpRJQXVU_ZXSYaYZWSPXZ_^VWY^YV\WX]WUWYZWXX[RYWR[]PYU[SYVP^WSMbQZU[[Z`WVU[RZUaSWVX\XURVUaUWb[VUWKW_SXT[ZXP\XUZZZY_ZV_\bUVW[V`S\^WQTQ^S[\VZ[[TUWWcXVX\R_W^Y[YXbXRTS^]SYY`_UXRQO^UUZTZ`V[]ZTYTO`WP\]]QTV^S[TYYRS][[[NVQZSTYV\]Qf\TWUY]QZS[]^R]VT`[bXLQVRTW`eSVX]OR\bi]YX``S`Sb\W\X\YWgaXdXX[YOZTZTRVUXNXb^UT_\_OUfQX]_\X[WYOeYQZP^MTa\^c^VTX`_b[[[Y\U\\YkZ_VS^QZO`P\Ya_UZN`W[[_LSTYbVPPKPZVdX\X^bXVX_ZS]c[\YhZVWNVVK\`O\U_VV]]TO]PVUdV_e`TW[^Xn]]SZT_T]XUUX^_WW[Zb[PX\[ZQZ[VYd^TWYY_QLdYe^aRmgX`^_[]^WYi]bYUUT\WYcYVXWaXQ`Y[YV^[TWY[]OV]WZTYZ\XYmeTVSS\_YWZbZQ]WXaWVOZU\[cXU[T`]\X\V\UZhPW]ccU`U\Wd[VK[[XQVah]QOSY^[^]NX_aXV]WTS]UT[TN[Xaab^OW[XT^[Q[YW]ZRVZWT[SVa\SXdr[URY[_QW[WUfPUVZ][RTZ[UU\\^NZ`]dQW[TT\I`]WZ]\W\LQPXWUk[TldS]gSQSVOd_dWPYc_XWd[R\[RS]^Y`UYUXV[W^R^\adJca\TV^SZ]\ZP`[X_QU^^]bfX[RUXTZ_[Pi\ZYPO\VQWYY]hNSXW``]]V\ZTZ[WUWX_jYoX[YaheTZ^ZUZZZZWhW`]\RS[\H]S[WX_TI\L^RXOSR^RX\MUWT_SR`PYXVUZTaVZVbVSVhWaZTa`UU[X]UQUTUQXVZ^aTRRRUYW\W`YU[VUSWVW]ZS[SHYZQLTV[UTU[NZUaZNSW\`^aYXVXQMXURWc\U[RZ[bZ]ZXTNg]VV^Z^][XdY^SaQ\V\QPV]ZMZSTfT[\X]XV[aO\S]RWZOeWUQhYZXUXXW_WYW`Z^WVYeX[[RUWZ[eaZ[`ZYdQc[^YP\S]dQ_V`SUMX]T_YYYXeS^]cTNRVMZ[T[OX\YYTQ\fXcZP\YWWO^a]ZaW^KVfTddQTZVY_^LLcRoUU]`a`OVUWVLTYNU[TZY^WZTQQW[VYW[O[UT]TXSOXSVWZ]TZVdUS\R\UVQTcRPa_TU_WQZ\_ZW[VY^cPR]VVVZKWMXY`_WVXe\NYUU^YVZ_V\V[[fYZZT]ST]WcSRfYTX^X\S[X[VRSZ_Zh_XYa^]^WZSV]e^aTW\Z]W\YcfZ^UZZX\]VU`SY^UY`ZTUUW\UeSRS[W\_ZWUWUSNUUR]\YgaV[U[YT[LSkT`RU`Z[TbWV[RUWVPYUR]YXYbiUSVcYXXXV\`T_aT^]UVZV_WR[XaPY\UYVZV^SWWZ_X^^YYRVYX^WQZNZ\RTRW^ZQZIZPa]U\b_a]UQadZYYVV\WiTV[\Q`_VV\W`WTZ[Ta]STUVcW`[iZ][bm_X[]Y_Si]kU]Tg`Z^ZRZZUTURPZaZcYRWGXUX`V[ZYrS[Pg`[^_]X[WZWUYfRP[UWXYZXIONXZRSWV`X\b]b\^RWb]UXVMQj\ZZcZQZ]WYYVZTZRS\Z^^GTV\VVWLURLR[YjX\P_R^NSj^e\bVaRS\^]TQaR[_WV[TW[U_[SU]\TSW[VQXUSbSb^ZOUQUQS_^jY]_]YWUV[b`^`ZU\a_T]^\UcSXWSU_ZTdI^^d\TUZYReYXZ`UW]VWXUSX^VVh_YUcYUaS^`[PX\X_XbYZSVeT_eW`N]W`_\Q[_U\RMVZX^W[TZ_Z]\e[`[SbRX[TeZ^RU^UbY\VVWS][TYUVTZh]\TTXQL[ZTYUYOTQXQRSWXVXXcUNX[MdY^SW_V[]XSTTMSN`cU[Z\S[YX]JRUV[VR[^ZSXV\VPZWTWla[LZZUTSVKN`WTWWY]S[TPTL]^WYYRbVX^b]S\WP]QdRIZYOTh]T\SO_YPO[T[\_QcefObYMOb\STQW]YZ\QUOOUUWYSUbX[RQHqH__Z__jQXfaP[aS]Z`UQ^aN^VRSY\eSWYYXW\SSMdX^XWadNT]SaSnSXaTXQScO]aRWaLUNPRc`M`\NPaQTU^YiWSkWWV_bVUU]]\aaYYRZYPVMRY]Z^YcWSO^TXWY^]aYWTaOTX][eMXV\GMV_VQb^SW_ZXQW^SRTPZYRMS[UP]SWYYnVWOWTNNgUZ__wbSVVUWZW\cVX[XQWXTQ^OaUWaTTSVdZVWWVjZYU_VW\]X`TV]Yc]]JYTQcVmgZXUVSZb]WYUPSdSSdeUlU]cMZdT`Rb[P\Qnd^dRWbVWSRV][Z[aa[\[iZ\MQTPa[[[VR^NY^]W`Sb]UcMWadV[TX^U[R^_[VbWOeYN`[Z[VU_UN`[\V\YXSQW[P`X_Y_`JY]V][aUY]WRlV\WXYTJUYYZUQRTgTRWXXPS\XPQRWa_ZVMfYURUYZ\NXZ\eY]XZ[Qb`\UPWUWSXJaSS]V\[YU^]ST`[XaUXPWXSU[ZaVa_YPXW_Ta\baZ_R`WaZKQZUNZ\USZXWZR\_faZ]QXU`]U]Q_R[SaT]Tb[]Z]UYY]\VPcOWLRUa\SQ]UYXQP[PNYWZSUNQVXZVRdN`[ZdJ`TNbSYUYXZ\dVRWZOWQ\NXXX\iYQ\cg^\aU[ZXWPNQ`O[_WXSLvSYVX]WUPXXVVPc\c_VX^T^VeYRYV]a[YHr]ZSV[ZRV_[[TZ]WZU\V[Y_TWUQYWWSW`QT\YYWOgUhRV[Q\_XVWVYZWY[ZUPXWZUSQWUZ\W_YcOX]FYXSOZRZSYd\VURXTS^Y_TTTQVWaT^\QSUgXYQ[Z_XYZKhT\TYQYVWba^VMYZQQaYOaXZ]fOTW`NYTVWX]ZOPXJ`Z\Y\_]eZRXYQO`Z[YaSZX_RJ_^TQVW\cUZWTXWUTQTOV[[R[RZ_[W]cReX]TU[S_TQV_QYTW_Z\^cYSOTV^l[RY\YZXR]Y[bY[WghRXZ]^a`YVVZ\gWZYd^ZZ]`WY\^^ZcbR^cWXY[Sa^XXWTP\ZbX\RV\_UZVLZ[Z^XY[T`\TW\XZ`]aYJT[aRVWVPaXXV^S`]UZUYUMVSagZYcXUbSV]\XcUUYYTZ`cba\\TbaZTcP_VYUS\USTKaX[UQWb\YZSbX^SXW\UYNZVPX_\X\[`POU_TV`^^PVccXQP]MdXXZ_]d`[`OVbXUY]RWWZ\[S_fTPZgTWXMUUYQfZH^\P\_eWVYXL`\V^Y^\aY\XS_S^TXcYZc^YS_`]XO^YR^QLe_f[\\^[b`\aYRWaZVaZZVWS[OPbUWZ`ZTXXaYbUYYOT_YYUP]XYV[SU^\bX][Y[XZbXUVR[ZZcXVWY\QVZ^U[UY_T\VRSY][]ObUY^RZi\X\[USVTTSW\V_a^[Y^V^\dZWYYN\Xc[YVYZW_ZYWUQRUb\WX[T`XX[\^UUYZcYWa\[WN\`WhWY_hZ`WVZVUWV^XQZZ]^]V`SYVcW[WWaX[T[YbZTP^YY^[TWS^]OWXSXXWPT^XXS\SZX]W^SZZaYV]\QY^dXXXXQWTYW`YZ[][TXQWYW\U[UX^Z_XaYYVUSfZXZfVX\WZYZTcUZ\VVUW[N^OYac\jPZoXY`^Z]]XTT]XXZ^Z\[]PZdX[ZX[T^^]XYY^\S[`g^[VThTV^Y[U[YWXYd_^ZVVTPVYZXWU`Wa\]XKT[]T]^_ZZ_]_X`Z\ZSY^^YZ\]UXVZZTXZVQY_\_UWNY\ZRTU`YX^NZR[\WSXYXZVV[]W[ZY]T\P]PV]bVO_PRY^Y\SY\jPYZZZ]R`[XZP]VWi]Q`^QdZYT`SRZTdPPOY]YP]^^VZaZ_aNT]_ZQUNU^VWbX\XY`V]TWRXZX`^PZZcUYYVXWTLSQ[SSU[NOQYR[UYTUQ[P^_\TR[aZSM\XWVZP\ZVT]gaRSbbY[UPcX[PXYV__ZRYO_dW[TWYUZS^Y[]]ST_eZKSN`YWUZRXOaT_XYSRYVW[UbVZU[U^[\U^RZjYSZ]N`[Za[iWVZTVUST`U_MU[WSTT`Y[h`\_YYfTdUUH]PVcZXObaJJS[Z`^Z^W]WQ]_\VPWUUW\NVV\^X_]bYX[TZ\YMZ][\`VgW]ZXWVV^UVZWYUN_V^WWWhcWZRXXYQXYZZSWW^UZR`Q\[VT_VSWY\XPVTYZbdTPUY_]][T[[YYn\WRXSfXZbYZS[Y^_[[XWYTZ]ffSSWVWT]TSSUSJ`WOgYW[^]`[O\YT_hU]NXHUMXVRS\fYdbQSX_XUYbWWSTXTf]WT^UTh`[\_WVR[\U]c^[UUR_OR^c^\TZT\PYYagUZVIV[Qi[I]MT^Ygd_Rb[][VL`OON^T\J`YPeQTYY[VZ\TY\GWNU[\RNWWKVUNVbZSTVKdXQZQV_XWQKWd\b`VYXL\^]V]\[X[U^UYPqbV`V\W\RfYU\`WQVNXOXQURe_Z\YZT^\R]]`\OZM]Z]SVP[]UWbXbN][Ra\^W^VZa[UVSX]W[WTQZoP[T\UU\bTYWfY]O\SKk\TPa\Vh`g]YYNY\PVXP^]XOX[Q[ZlW[NT[U`R\U_S\[\ZHYbXVQbWXU[r[NY^YTTce_]YZgZcQaZUSMSPTRR\\`XYHR^XZ\LbdK`]ZaXXYffUZXUWVKZShW]HL[gZYR\X\bcWV\YQ\QUL`YNbT]UVfH]UVYQ\gWSYO[``\^c\\X^i[R\cacT^cX^[]X]X[UP`][ZTXYY_[baN[U[_^^g\`URXXUZg^WXW\SRVXZU]LaU[YTTbQ]\[Y]_U_YW`]LXQTT\]`\\Z\ZS`]UY^XXZcZ\U_fLZXY_YSadZ[X_\RW^_T[XT\VaL\ZYWYcYZ\T[WZZM^Yc\Y^]`Z]`XXT]dOe^YcSVOQW^]aU[Y[XWA[aU^\XUWbVcZWYaT[U^_W]^f]^M][WfYYWSaU]cWYZUgZUgSR[Z^`]X]aQX^\VTb^^SXW\T\_UY\^[ZTTRZXZ]YWU\VX[Xb_af]]I\[WS[XWV\Y`a\WX^S_a_YW]S[V\\_^NfWce[Th]``Vcc[dV[\[WYa^XZbaj`Z_N\YW^YcPaZgXa^aVYVXeVWW[RcYT\ZXeP[^V_aX`\_ek^_a_X[]d^SYO[UWVg^cbQX`]\TVY`g]XaQh]S^Z`YS_R\VY[RQ]PZSS[U_WVWYY\aGW^WYSZ]SQdXQQ_S_VVQe^PS_UWWTRTU^\`R^ZZRRNPVT_]][Y``e[a\WlR[UO`V_YGSW]fZ^h[[Y[hZXNZ\ai_WW`]^^\VYP\OZXYVTXUYZZ\TV^_YZ[SqXVd_WV_V\]\USHRPdV\eWS^ZZZTWPUHZWW^ZVZWRbY[\\aVWTU]YUUULYX]\[fVddVTUYPZ\aPXU\\VS^dTYYSRT_RYaN\QX\X]XY`QYRTTY[WeXVTRYbTeVX]Z[VTU\WUYRWcS\^XMUYOT\WY[^WVV]T_W^]RTaWQT\^\T]\Y]YTViZ]gWV\]L\XUWNaSaSSZQZTVPM[XT]T``U`QQYT]RYf_ePP\ZWUWZ][QQiTbP_SRTV_US_VZJ]\UNORW^\T\WgYOU^WMXRXbTXQTX]\WTRVTIYYZKYV\WR]_TPWbdTVb]baWT^W[ZOSY\Vdb]Z]SV]U[bYZ^XReSXKXTOSXhYN[XX`LY]RTTTU`ba^^WUTraXV[VO^^PeXIeRUNaTZa[W^WVUQTWZQPMSa[dYbSL[\h^UXPUU[iPUYFXk\]\XSSTWU^NZVOXNUPVIZjQ_N^OPUYgQUg`d_aZ]RVaQVfX_VX\PaWQ\VaVQGVQSZQR]P\YdQ`cP\Ylg[OUUXWZSWUZ[U_S`]T]YQ`v_fXKZZOiSVZJ[WZ]_[bg`[SXO`PVTWVWfY\\^PUYRb]OXN`mQ`QOcSXLWUSSRX`eeNWQ]YWYXTY\_Vt]V^YV[T`aVQXd_ZW\YQJZRgYVZTY[_XfWWOTP[WLgi[NW`XcVTYeUVZZFW[Ybb_Q\P]hMSY\\NWQ[\cSZlW\RLV_Tk]ZU]^VQNTXFVcOi`SPV^Y`cQ]d\SZ\^ZP\Pb[hOVZRUSW\YYV\^Wb\YSMXMZ][UQ_SQU^WRaVWW^cWY_YUZ\_VRX\S`T^QVVZZ[dKXKV[T_XUUW]Z^V\Zbd]WoYXQ\TdZ]^XWRhXd^TX\WMW_ZYUVTYYMdfWURRS[]RY\QX]XX\\]YXX]XYVh[^]\WSW_TY`][[k\UQPXaQg[[b\XZUVhV`SXTTSWZZfPY\^WTPVNV]gOUX[SXXRUV_[WVYXWZVZXXR`S]RVUO\YYWfNPZ\YWUTV]b]X^U]\YUMXX\_SZYZV]UXY]h_USM[MeYZUXZVVX\XUOUTYNTaW][WS\]S_TYZcTQT][ON[\RW\]VWVUZ`WX[XcQSYW^`UT_XG^bTSXZ^`NLTWVZf]WVYW[Y[Y]XTWUVVUXZQSQWZWMY[eRYdX[fWdRVjXT[RdSY[WS]_YZaPS`[WRPZV`XSVKYWRRVVY\U[^WSWZ[U`[`O]X_h`NVUY]WV[\b[Ov^YSTYQYlWX\]Y[VWaWTOZ_S_RYYd^^S]WZ]XXY^YS\TV[_[[V]XTV[V][`Q]WW^`ZTXXZbT\]]c`YVZ`YR\VSU[XcU\TZX[bW[\SVX`TW^aZUY\WYRZ\XX_ZUQYZT^QVVXV]Q[]UbZWZYW_VOSN^Y_^SXYTVYTWUY\T[SXR]ZV]^ZSVUXU[UQfTT[_VbZ]\XV_RXY^TSVXWiT]]YWZZ\[WcY[WZU[YXXS\[U\Sa`Y[V]Yc[NYaU[SY\UX`WXWYS]R_X[\Z`ZXU[R]]XT[YTLT`WXY]ZZ\YY[_cZV]\dXXYURgRXS[XUVSNXZYUUZW[U``T]XRXW^SUX\bXWYX[\KUXZ^VRX[R]a\_[T[OjTSZZ^bSfT_TXVS_V[b[Z`UU[^WVWWXHYZQZ\X]TUUZWOZUWT\YPWP]aR^dQXTZTX\YVW\ZUYYZWY\Z^[`]XRUZT^[Z\VOSRXVV\Y_RY[Y^bUYa_^U[X`TVWZZRU^ZU\XXTVV]gP_U\YTWNW\WZSQYWY^WYV]X`__ZSV[R]YTTY\PZRX^\Lae^^\TO`^RS[UUSWaWUTKUY[cSVUUSTbQS_aZZXZUOP`[Z^TYV\YWQVRX[]X]OUX]QV]OQVZbZQXYPT_\][WRSXZ_SMdT`VU`]`UXS]ZUaVUXd_XP^QSVZY\abVSfZY]ZTPXRUYXXWIPXS[[_]eROTHW[YZTWG\SYUTeYWZ]cUQ[ZW`_TRa[W_\ZX[WWV`Q[]Y\_ZcUM^SUXj[^\VXXYV`[Z]WZV\VQcR[ZX][OWcWV\PbZ]YST\_`UZT`XdV]WU^R^[_[[Vb[SPYa[V`k[URWTaR^VSXZObUb]\VUYZS^X_UMY]W\ZRWPY_Z^TWbSY[YZ]SXYUWVVWSXleR^UORTX\\]\^`_X_qUY_XXfWYUZWZ\afVQZOQaVY\Z_TR^U]U\VZ\TQ]XVUZSVTW^`QURQ_bKMTTGKRWY]WT_XUjTY]aNH`SWaTIeRUYXXRVVON\SMPVQT[[]gYbX^NQSOW_X`RW]Z\WQ]YU[_R\LfOZWZM\\Z[\UWWUZQjXe\UfY_[mcU[bZ[\^R\]Wa[^IaZVQUSac`_Qd\QTWXRQPYZWW[XY[faL_WQ]N\SXRUWZd]^eTXXQY]ZYadLPZRTUU_UU_TQcRPSQROcpVX[][Z\QOcPVRb]KWYTSJWZV_RXS`XWXWXWZ`]^S]`_ZS\c[aSVXZhQS[S`[XXVb]]QZUYPUYTRd`hRXW[^TRWUUVcOYWZWcWeQ[JUX^QNX\[Z\P^\PSRUNQTWZYZ^[b_XZP\_[YT[\ZabVW_X_WlOTLYTQURX`__VU\Y\eSSS]U\]XVO`TXS_aWaUbU\SVTOPcbOUfONbXQVVV`YQ\eX[ONZ][PZQ[TcWU]ZeTYW\\ZVUV\Z]Uf^T`]UTeTX\WY^XZUV[`ZY[]Q_]SR][W[S]^RX_fR]XPYVUUZTaT]`\QR\U^WS[OScTUZYXWfT_gXUW[TTL^ZcWJ\\VYU\SYX_[[f_T_OQ__dW`KXYNTSW^]cVQ`[ST[bZ[`VSWTQV^X_YP]TYTQZZWVTDRUQ_WTZ_VRZWNQ_RUfZ\U`]hU[P^WY[WX\dbEU_ZYSUWTTVcW\SNV^^^[Q]VWZ]oYSUW_WZV[_TT]l_ZVUT[bVW^[VWbWcSYUUPY[cUTWPhZYZVU[_[QXUXTWUQUUWSgUX_`USUVWZ^YRRUU\aWVQb_U\XNScVZM`T[YXX]`YRbXRW\VT\UaYY`X^W\S`W\WSXWOZ_VRbZVSYVX^YXXXUWV[SX`NWZU^SVhWO_T]\\ZWNa[a_VYYVR_T[]VQuVQ\WXP_\XXVWZY\XX]PS`XXSUXVZS[ZT[`a_X[Y[[W_WV]UWXY^]WZ\[TYXa]XXRZ\\SXPY^VUQaV_^SZkYUYXZZT\U\TY]\[_YW]W\XiUYW`RWZ^\YXY\V]\]YWXSZ]WW`]WYYYZ\]]T[W`VXWZcXN^X]cYX\b[^XUUXVSU_WU[Z\\^[^WYY[V`XVdYYV^T^[_Ua[[_SWYUX^SSTV^VXTX_WZWYP_W[V]S[X_YY[TVTXaTRZVQWVXUZ_[XXY[YY\YWYW[UU^[XYWXPSVVdXV[aW\]UV[^Z^[]X]YSXZM[UUZaWhI[dWX]]ZYW[XVVU[ZXV_[YP^_ZYU_^YV^YY[\\_UV\__]S^]WUZTWT[ZTY[e]]\SUUUUW[T\W`VZ]\XSPWZTTZ\\^\[]UZ]\bXYYa[X[ZYXXXUVVXZP[`[WX[XSWVWYV`\T_RWR[\YYZZXYZWYZX^XXZTScVdZSdYT]bVRXRQWjTVXpVZ`VNPYcYTcYh^[]`Y^ZY`UXZ[IUa`^`WWUSWfY]WVS[XY]baORSSPSWYYdYZ[]\X\TH]UVP`]XXS`cc]NcSXTa\`agSYZcTc[]dVXTTQYeP\_NX]U[c\OS[Xe`NTM[\SWUU^W[UW[SfN[TSSPWPbaSdXP]Qb\QXZ\_MZ]]]NNVTL^\_c[`^\_YYXUZUe[`SVU^Q_Zd`bT[ZRSSmRWSQgXhZn]bmiaTWYMV\]cVbXVKadYT\XT[ZM]Y`WXV^\[YaQXagbbVXhWUc[VVZYZRa\TY`_VS_QXgUWVSZXbXUNWY[[[VRVXbVY[PUUP\]`U_^\VVab[JWXYRY^YWZL^UX\_^WP\_U\WTFST\J[UWOOT_T\_dM_```\bT`YUUSX[U`PU\UQl`]X]OacVLYOUa]dMYaUb[YWZ[V[X^_YOQL[RUaTQ__OXXdJ]NXYSY_ZsS`S\QPUYSLZdR`SaXYdaSJ`MSWPV`TFaPSbI\]YMeX\]OYTXU\eJXT`YIRj_e]Y\O]WXUZYXbNXY_QVS]UTU`PXSY_[``XZ_SZa]KU]]aV\Zb[`^lT]Ta[TdaVRN`WS\T[e`UTZRUc^VgibRcS[_OYS[M\ZWQYTWTZ\WQRi^^_Wd`_OOPMZVQLSVVZSl^ZL`U\P[^UW^`gScY]ekYUWcW[_ZZRUR_ZQdVZPR`\eVVWTXXQZRXZR`i]kNPJ_\S][T[WSY]WVV^YYbM`Y]_]TUXSWTTRb^eYZOXZTUUT\f[Z\UXWVX^e[OPUSfYZTbUa]WTSWaTST^SNWTW^MdZ^]Q]bUZYWXeVXUQWWP[Z[Y]aU\T]^bQ\]ZY`VVSZeLXbSc^fY`UWQSQZ[_\lS`W_PXVR]XZSH]eX\WPa]_XQWVZXOPX]f]QVW^\VZ[QTT[\U]aQZZXXV[WXUYdeYT^STWXUXU[RUYZUSOMRPnSW[YkVXaSST\RORRd[Y_SOa`]SbQV[\b[_X^TKTV\[YV]Vf]TSX_OR]VWT`]`aR\U]foUl]ZWWSTfVYZSTYYTWRVXV\[^XWVRVWWSXU_^rT[VQWSWaZSgP\VYTTMZZ[`VWRWYZXX`ZURW]X[TZQ^\dXUVZK\[OZYYZSTVUSWU`Wmj^][UN]PS@QVWWUY\ZS[^hWPSWXOVYL[Wa][]aTk\`VYkdYV_aSl[TOYXj\^T\]SWUTaYWZ_V^ZR^TX^U]]`^WXvRPX\]cRn\\U^YU]XWW`UTUVcX\MZc[TTY]OUbQ`[YWYT]W\Ta[QScZdRYgVTYaVTXUV]VP_ZWfZY[aUSWU[`UYZ^LXRVU]U\fiaWTZ_P`\aYObiYZc^d]LXWTU^SSUWXXkb[NZUUZ[SUZ^]\ZNVXaQNSYXYT]WX_a\^dQSTWZUVXZ]\[[WXT_YVR[[XWU^ZYWR\XVWYZXYP]dXU^XOW[STTVT]TQVZYOW__`^RPPVP_XYVXXNZcR^SRUSScVWZYXXaSW^UUUMoQSRYXcTZXYaZWRQWXNMbRXTTWWZ[Sa]YYSU`[_XRM]PQUW[T][]VWU]XZXTRSVfZS_[S][[YZT\gcXUSN\fQUNVSPiUWZXRY_XZ^PVXZVZQQYUW[ZXgSPP_JXfW\KXX[X]aOW[YQ`PSVR^S\SQZ]RZ\\WcR_USY]XPVY]X_`TRW]QP_YPUU\^RQRYRW^RXaYXTUUZO_\VYZU[`aTMX\ZgXWeZ[ORTVSTaX_R^ZZXY]S[VZb^VYaYZXVPRU[YXWYWWTYV\Y]YW^U]VSYUX]UUd]YQW[UZQUWX[Q_ZUWRb\W^W\SZXTXRR_[VZXRSRVYdUeVUaXZcUUZTX]W]UVQQXZ[WTZXYZUTRVT\SbN]SWUN`Z^ZYWZS\^YiNYWWWUZ]SWY[ZZ[YS[_^QZP\WYPSYWX\]X\VZS]][Y_Z]N]Z[MX]Wa^RXMYU_P[\QTWTVS_LZTUOX[WR^XUT]VWSaSWP[XY`T[`cRTXVTXSYURUUI\XJZ[UVRW_V^^^WXQOPSZ\XOXVXZUbM`aUYZ]cU`WRYTc_SU\gY^SXUZRTTcUW\a]SPUXTYX_K[RTUO_T[Td\l]Z[XaMdZ\cVpZ[hYWYZVLZV^ROiQZPTZdRZS^PRUWTV^iYSSZWWU]YS[XUWX[V]VRUVQ\U^YZUUWUW\a]eZTUlViN_XT]`YNV[][OZROfWQS]VQPSYU`T]UgZVTSWYVf`Y^Y\WSYYSX_SNa\TRZ^`UUPNXXV[XaRYNScXYc]UUOR`ZXS\TP[YU\cRVQWK]QWU[\SZV^XTLO^YVYXRTXVfUWV_Z\^S[Yabm^QX]\PaVXQb`Q^RULZaYV[\`T_\VY`g[UQfVaPdVZQYWQ[P^ZVSV^[bT[XV`NWRT]S_]ZU]SP\JR[W^YVUQ[VeZ^eRZXV[L[XVXW[`WV_UY\ZYYWU\UaY[VO^eIgf[`]O_VZXVN\TS[YTO``[]WPQX^RcU]\VQTW`QWWXR`ZWUYZWRUeNQ]bZXWPR_Tah_Q[[_\Q`SPT^WW\TYW`ZbWXXS[\N[QOYO[XeWZ[SZaZ`QU\S^[]^Xb_OPVQccXXLRSZYXT\SXUXabZRY_VYVZYYPYa\TNZ]o`^XXXUdXWQWV\ONPZWScXXacPRafTUYYXSZ^\OeNZ\XV]]^ZQ[XcRTUS]SbZZTZNRSZZYNZ^OS\SY`[XPPVV]XVYW[YWaZeZXYWWMWZbXVfW\TWRXTSXcTUQaSK[eUqSX`N\W\MWYUYUVXTX_SY^aZViPRW_SZSRXSc]YQMZXXQPWT^\XaUUS^^bPS]WWS[T_`W[\MeMZ\^PhaYTPSZY]TQeSXZ]YVUOVX[RPYV]VUVVcWOW^^OOWUXXbe_aSOH\Z\fY\ZVYZTVXS\`cM[WZ\O^\Y\bZOXTcQULUP\WXUWT]dRb`ZYTYVWXZ]b\[Q[WYUWPT_iiWQ__Y_YMUXULZWRXTbO\Tf_XWVUZUUbXYiTaVf_]UUZcVQ\V\_RRSUV]Y[VaQSb^]Y^R^[[\Wh_Xb^iRT_\XYWeVRNSYVVZa]PbWSjUYTZU]X]b_RUfWZWRUTVOUY[`^]dZaSRWZW^V\YL[`YYUTTSScUT]fdY^WS[XZd]\^RVTYYQXTVWTWXRfa^\\[aVeXQcVO]UbLSWZUM`[cTR^ZX``aVYb_Q^RWOf[TYZY^a[^]^_]SUZUSWRURY\XPTiZHZPT[f[ZV_dXWfN[VY_S^fMRLfZKHXVNRXaR\[VW[hb[bdXUbUJJdHRZWUVYbRbQ]YIQSPYPhWW]dM\XVNaaU[Y^RQZT]YQQ\PY``RXJV[[SVYSbSj]MU[R]d]lSSSLTZY\WV]^O\WPYQNaQbXVWXQYjSWaM[[TRUNaaQPPObz[bY^Y_^^XTd[bTZT`ZMcPR[b]XV\_VNVSLRa`^_L]QYhXUL\aPaVOQuRK[Z^^YUQZ^X\`RWVYeP][VPV^]MLYcNNZVDQQWNaYWdZLRXWSZRc^_S`_YPNh\[TXR]P\WUK^`^XSX\QOT^gfac[LV[UUh_QV`SaaWe]UVY^YSQ[Y`\P[YTZ_]LaXcMVW`VVRU\dNZQTZr]`__ZwX_TM]e[ONYcP`[_Ua_]MYXKP`]cQYZOH[a]RjWW[OV`V[UX\Um\YZh]S[U`XULkXT]b]bXcU`jVWYTaa_UZZWT\VWjL`QW[`[YXUV^Z[XUYY]YWRPTY[[\TOOX\aYPXPZS\RY^QWZ[VaY^WSPVR\O_VY[XWMaRYWZ^TUaX`PZcYSZZ[\ZXQZVY[Rm[T^ZXXc\YUZX^WWXUS_XUZ[TTW`bSPa\YTT^X[W__[[^L[YdZZd]_OaXTi]\^ZSU][X^QP\TXSZPNTPXWZORUPRPVWR[PY__Y[R`UYWkcPY[URSg\U\WO\T[VWV^aUVVbYURT\R[dadZUWWWYXRGPY[\QfZ\]SUVRNWMO\UULY`]TWQ_]f[YcZ\_XZ[^V\TVUO[VSP\\Wc`_]RNPX\PZYcZcYTm_[VV^UXX`Q^ZYTS^^ZbQ[XU`ZUbZ\]YU][T_VUZVWZNi^_Z\OX[Y[XSOZT]^]VbZ_XKX[TWVU^Y_[UXZYPQXUZ^UWbY[]YaSTR[YP_[`TZYQc[ZY^`^XSUZ]eNUO]SSSPWZIRcXfU[NQYZYXSY\W`WZ[PeO]Z^\s`VOZT\Sbh\^[ZS][[]^[cTWY`ZVb^ZV`d_iWRW`]ffPYZ_YaWVZZWdVPYYYTYX`S\bXc^XZRTaTaMZYUUXV_RWk`_]XT]`Y\ZWW[\``PUSVZ\Y]OX`W[V]XPaSZRU`W`[PbUYT_ZWTVYi[UZVWW[SXY]Vd^UQ\bS^YW]^[^]_O[cVWYQXVgVZV[UZ^RV[[V``_c`UXcZ]ka[^TX`YOh]_dS_QWaVZdU_bUZ[VS\XYYUVY\YSM\UW]SX]WS[ZWXr]ZT_X]jQ_WVUV]\cX^]WTl\V[YWYVV^UZ]iS\W\R^aXY^b^TZYTY\VK_VXYPXaXmS[[Y[XTZa_WW[^gIWWa^TWbTWUKViX]\J^S[`RP[VXa^PMvf\\bPU\XRUR^Z_TU^b\YNggg]eZ]`VRYX\XLZVWXT[U]SVOUVYcQ[W[`_`Ugc`ba^b[U\[UVcfZRUT\\aXYOZURZKWY[\hd^XZU\UYYV`[SVRT^^QWVLeUZW]MXR[]VUWZZ`TZccW[[[OaRZT`_ZYQZac[U]Pj`Y\`VeYY_fPVVLYd_YUYYTTRW^[cb[ScaLU^ZWbPV`UWU^SLXSVSWT^W\\^[]OWTaWYQaWIYPU]WUY]^[XXZcZUQW\Z[MiTcVTZLUUWSXXX]M`UYYOQ]W[Zb]RXWW]OWWbVZTc[[YNMJ^\[aZ[^WZVQYXN_WUSQWZ[T]`KSVRYLdZQ[WLS^YRUVXP[`VZ`UWL\PIOemRYT[bUWVSYZUSI_NWP[TZZc]WY_X]UUWXXW[[MW_SU^iV`XY\[SXTVVVPVObUPO]RZ\PPTWT`UVNU^X_WXWTYd]`]ZWX\[SX[[WVZRc`U][SXTT^VXZWbXQYYjYXWb[WZYZYVVbZMSRXRZTVMSV\RT_S`[\NZOYL]M[ZPaTYWKU_VOSToVNZWOiX\UWUZQ[\^dZ_Y]\ROXVXZOScRRZRT[Z^STZZ`VP[YXR]S\SgWU_^TNUS\TRXU^]h]XWPRYVT_RPQWX\XSQ`TZUVPTXYTOZSV[YVUU]ZQcQK`_ZV\`H\]P^XZQRRYWWU\[\W[KOXXURdUUL^`VWZa]^^_TXT]XRU\[Q]]W]`RX\eRWVXNW]YQU\[SYUY_XUV_c\Y_YWQOOWO`UYUM_TTP^YW]XY_YYS`_YWYTY]RYaPScVPV]XT]S[]NbUVYNXgOWXWYWU\SQU`[YUcZY[UVSPRcVSQOVSLQ[ST[PSWZOPQPXXY\RYW]WecUTeWOOZ[V^RRNZ^]V\MOUYVbYQTVTcfURW[RfiXTPW[UW^UW\TNRY]TU_Y`^STQbYV`^`a[ZYaZ[UQX\W_\\ZUT\RZ]XXT\]]VNT\UUQVUeYU]WPaOX^XUTUg[cnQg_cWZXY]TUZ_WO^T_[fS[UYVXR^USaSQ\\TTYW]]VRYPWZVYTQ_RcNX]]W`XXTQUV[ibaPQXV`P^X[WWX\WTjT`VRUWOY]hP^\XZeTUS[]USHXS\R[WQ^TZRVZ\ZOYTb[SQ\[^TU][Z[SQPT\NZhZTXNVr^Z``KTWV^XYTWXNTWNXSQXYcTX^WZ_Q\UV[[gUOZR^WXX\XSXbTPO[aU_X]XR\S\\^aX\VWYYW_YZSZ_`Xb]WXVSW]]V[ZYY_XYVZW]VTNg`T]OWYV\[S^a_ZcY]fZUYSZR\f\fQQ[gXXS`d\[SU^]RRQXZ[VTbT_R`V]dZQeXZX]fSRRWUTZZWZZQWTXRVgVX`VXZ[X[eTP[YVV\W^RU[Z\Y]T`\WQaQZUM\T\gRQ_QWVX^GM]N]QeV]M]RRQYXZ\^XQT\TUZYRWQXSZ]cUYWd\OV^_TYa`U]QPcXV^YRVTY\XY^MeW^]T^PWU[PW_WOYUVTWX`TTdURY^PPSYS\^ZOVR]Xlc\WMQNaaY]VVSdqW[Ze\c]cYZS\Z_UVJ^TUOVMWUYR]^VV^QVY\TYXfXVWZTZVZVeRVUc[Z^\TNZ][Y_\WYMaRYVYaR_[HQV[TPZPJ`_Z[UYb]aO`bd]`VV`XXT\Z[\]]]ZYX\V]ZY[^VRY\f`]T_VUV`]ZLZWWSTZSdUTYWTU\Z\X^XXWZZTXVP_^aQPcSX\TOaQZ]XS[aWTU[`Nb[YkNJZY^YU_Y^\\Vb]WZWZ\VZdYTUSXQW`]TT[[T[c_SVRR`ZV^V]YVTT\Z]aY[]ZVaWRYbVdVZY_TeaaWWQY\VTObWSbZQYW]jY]WXYY^b[VL^VQjWaUNTZR]YO[\YTVSRO_TVS]geWM]RPUb]VgRUS`UVkP^MVX^XXZVXSWR]eUORX[TPMRQVPgTXR\[Tc^ZSSTd^ZVXWXNbXSP_T_c\\MSURW[^_Q^Qa]dbWR_WZ\VURVX^[YdMZU[M\YVVVW___]WZ[ZSaU^]^\cQM_UOYP[__T_WYWTQLNZGTZWZXdQWcVY]i[UQ`g\TVTTYYQVWYQaXSQ_uNbLcU`S\WReQiU_YWZ`eWaSMZU^ZTcMWR`UXZUVX]_UX^^`_STfTUa\TiTWX_cY^UNRYXcWWRSWQXZ_U]]YaP]`[\S]QUQY\R``TY[PY[]Z]^\c]iP\^bY[ThTdYVTZWcZ][ZSWVUbjYP`WPTdYY_WLZi^[SP[RSY\_V]^^WS`U\TVSW^XQZfPbTbVf^fXWdVWYVQ\WZVPOO_`^ZaWXQaR[YUmT`PN_SY`YV]WY^X\QV^VN_`V]]\TW`XhWZQ[[WJdXWU\S[XXTQaUXhZZUS\MSUMPYbV[T_T`cZ`ab]^cVS]]]UgaSUWj`e^TVXe^U[US^YXXLYbU]lSTXZXTY]WSY`[mP\j]`NiRZOcUYVTaZTQ^RZ[XRUWY\`VSS_QSPTdOaMUS^Ri\YMRWTiXRdW[h[VWQST[ZX_[bSSmVXWWXTSQhT]a^[dT`VO^PVdVVYUNXQXYVZXUYW\[ZTY]Uh\XZdYg\NXZ]j`_UZ\ZXVR`fTSf\[W]VWXb[W`difQ]MQP[_^ZVXNTLLSV]iX]SWOa\o]^TVnXe\]X`UXW[]HUVW[`_idYeV]a\bUUQRX_SX`bRTRM^]c_XLQTWUXRRZMZM^LdUUTZYX_^S^nOWNT\W]SOWU]R^^Y[TR_hg^NZ_YWVOY[d[U\iXZSPVT\^VSMXTT[_ZV^TRVU\SQUX[VY_LXXVWWONVGUWZ]JUX]Y_HW\]YSUW^]XTWNUUX`cU_ZTMXVWd]RVRR\d]]STRTV[SVYL^UT\YP[VU[UU[Y`W]XS_[XWPX[]OZQXWVZPP\[SV[^`P[_[]^PXXVVWXUXZ[FN]U]aX_RXW^QSXVZ_[^\RX[[`ZdWa]USV\Y]HS^b[_`WbSRZSZQXXVVVVTZW`ZUaUgTYY[ZXU\b[YS[Z[XQZVXTSVVSX[W_VWY[^_[WRSS\X[]XU[WZ\[QS[VTV`bSZSV^]gWTUZaY[fZPRkYTWQVJ[SVVYXpY[YTc`_X]X[SVO\[UYQRT\W_aZaUX[W[OTjZYY_^VQ[[VYXU_USZTc]ad\\\[_[Y`Y`R\bWZVWRaYV\ZSViVWNRSb\]]WUVVWRT\[a\T]W^QW\UWUWW[UUXWVX[JZ]iUSXSY_[XZWXXSaTVT\PVWN_XeZZ\ZSfZYRSX_XTZUYPaWVRQW[VWZ]ZZ^V[YkVYcTV[YP^bURWYXUZUU]W[[[^UTXU_WbQUT`PWXZjVSY`ZZWWTZYSVS^`TZSQSSYW`YZZU_WSWWY]iYTN]aSYSYVTVYa`_fSb^`RR\TT\UW\XJ]XYWXPUUNUVR]UYW\VcOTXWcXR_Z^YRSdQ\SL_U]bXTYUX[SR^Y[UXZ[\_UU]XV_\R^VW]aX\]PWY\W_jQUU_\QXXYVZbSQ\Z_XO[eg]SWW[O]ZVcZYS_\V^UY[Y]VTUc^XOcZZ\VdYRX_T\U^Q^^b[UOVXW]UT__X]U[[\T]]SSN\_X\UY_R_WYYWTVR\\WZ_UUY\WX[SRcSQT[SXV`WbXV`TUVUUUNRVhNXbUaZYS[STZWSZ[YZcR^`bS]`P]_S`TUXU\ZPZVZ\O`UYYUXY[RPTVeXSVYU[MZZP]WZVYYSTTT]YRXZcSQWRZ]aMUVU_TZPYTgWPjZWWjTWZ[VXUXUXY^X]_WX]KWSYc\UXS_V^VZcQXYa\XU[]Z_XYXY`WWRRa[cUXYT_TPQ[ZW^Y]XYX`_SUXXY\OW[Y]YV\YSWU]ZdTRYWSXZ[XURU][[UUTVHUZeUUXZYU\^U\\Q]ZZe[eTUZ[YY[aQXW\ZVQYWi[YT`bRUWU\WSYX^_^YYZ\`RU\_TXX\XWTTfY[WRXY[M[YZQTNZTV`VcaXS]XWWZ\[ZYUONcWV]SZWSRZ\XQ[QXUTU^VT[XgYSR]]U]XXSZRT_[ZNVTUY]XaSUV]TTQ]YT\[gR_YcL`VZZV\QX^XYX[^b_WXWVVVPVUSPURZQXaXYXSYXR`hZX`[WSe`]XS\V_[WTYZZXZTTYT^_\[SKXdUV_ZXX\XU[U]T`W]UT[UZZQQW`VTZWWZcbaWYaZ\]NZ[]XTXQWYVe`^WYVWaZ[]]]_\YYUWZV\VXZ\UYW^^`Y\T_[_ZXPS\VUW\[\SVRQROX_S]RR\fYTWQZVPKV`UVRX\VU^TUb_[YQ\_\Zf]SXXZWWS`QZaU`caSV]LWYQPhbQZUW_XTX]]`W[XgYXW^UZRJXQ[ZhY]R^IS_ZT\\UTTXRZ`UOUP\O\LVZ\ZgWYRR`YL]JUe[^iQU[ea[WVX[MTUSOa^MT_X\]VMVZVZcTXTScU\ZV]R^U]X_SaTOVXU\RVUVQUT[UWW[Y[Y\VbZVVPT[TRgXWgXURY\XZ\XaYUXQWTWXaZT[XV[_SXZ_VTTXRUYVVVPbZbT\^Ze]SY^^QWSPVSUVXbZZ`ZPOQS^\XWKRJUUZMZ\aPcb_TX^X]VX^VX^]Sa`XVYWNQX_cWQUW]UZYN^SUZU[W]^TZ\IbaQbYUUO]WVRPZ][WVW[_YRWVP`^\UY`\^UQTRSQ_TWUW]Z_XL_[R_QTYU_b__R`iYTSS]`VajZW[YU\\WXY]]WPWW[SVYQaTbUZ_`^UZ\YVTZRYY`WY^dYV`OSYUZ]VTYPW\ZRaQXfTYZXTU\gVLUeV]P`]WWdgZVV\SOOabS[NbQP]P[XSTXTQYRW[^XVRTV]XVb[\ZQVZVXUZQX[SSb\a[Y`[QQ]PP^^cPUUeSXUV\f\Tb[XQSgTV[UXV[XVWXRPSVUWWQYRW]bVPSXZSXRV^XXS\YTS]T[XYUVSW[U\WeZ[W_R]ZPVTYVXaT`QSQQSTUPWVbcbdQ]R^Z_SV_OZeOVWWmTXa_cYTWZW]WVVQXNVZ`V]WZW`S^XUX[WQa[]WQXXX^[UZPYT]ZVZTUWTQWXRahR[]WV]]T[YQ]XOXWU^`Xd\W^Z]ZVUWY[aUX[WV]X\WXaSRZUTXYU^]ZeR]WUbTVVX]gRT[`[WZ\[YXVXU\[XZ_ZZUUW_U`_RRcR\W\VR`WTV\YZV\[\[p[PKXZXbZV`PRQHYUd`Y[[[SZ]HcaU]`k\M\KU[V`XW]YNRQcaYSjTV^O`RVR^fd[d\Z\dPRbRR^QMWcZTR^[HXbV[LXZZNXQWZVbX^VRfU`YYTYfZS^]OmZT^`T^VUQaZiocc[VZVU\_Z[^USMSYZT][\ZVYRVbTUXZOYP^TSYY\cYZVVU_Z`g_ZYV[WWScfYeP\TYVZTXUPf`RR[R]dcM[`WSI`WORc\hXX]caaXZKXSOYXVT]^SZYUZ\WXbkV[[UJZ\gLj\ekNUgSWWD[USWRf[tWT[[YbWeTV[_OZaVV]W_TV_SSaN_\OZOT^\ZV^Wa`bQ[`ZW[e^tc]TV\[VZQVZb[UVbS_`]UV`\VUUMR\TT_[V_f]R_N\MZN`P_YTWUTXeW\]RX[TWSZ[WUUV``TZWTcWUaVV^K[McX^\VX_[QcM`Z[YXaP_HX]XZ_\X]Wc^\ST\]SR[XMVWSW_gWVWZRS^_PQXR^U`OcXRQfZVVLVrXVaT[cSX__MXP]aTSPXaUZQYRUW[]WVXR\[Q[SZjSN\PVe^Q_XQY^bR]YMSZZRXYbZcYS\RaXWTUXWfV_UYTSIYY_SSW^MXTV]SXI]ROQYTNUZM^c_QXWXVNP_U`^aYcLP^^Z[O]XZXWUNTTURWWN[UUKWUTNTT^TSbMWWQUYPWcUX\L[e[RWRgmh^X`ZPMUccUbfRWaZRQ^S\`]OVfYTXZ[bXQYWdSJUSWYXUMXPN^[Y]`oU`YaY]U[`Vb_Zf[U\NXMPYHPdXWaQU[Vc^WSRb]R[XWXRYYWXUVROYX[cWXbZ]UMWWVWOU]UXMVRNLSYdP^XW]ZZjZfX^VUQ]WU^B\OR[fKPYWVY[^ZWVd\X_H\WYOY]VT\P[WSSL_TUMQRSVZX_XXb]QRYVR\XYRVXYaW\\JQVd_dO]_PTWUYUTXN_YZZM_WU[a[^U_YT\X_^UT_W[a`V][[UYNUKPUU^]]`XbQQQWU^]][ZK_[VTVUY[d[]__XSXZ[URZZQKWVV[cTWTVWV\Tc\WWQS[WSWTKOYZSaR`]VXYUZR^T]]Xc[[[X]PeT`Q]^dRVU\\X[VVWUR\U_Sg`ZS[ZXb]bTP]UdZ`QVV[a^LX^WXa[TVXUYT`\bVSRWWY_SOO`Y[`][\[WZaXV[WbSVS^V[YUWW\O]VW_Rd_^`WYUX_RYWR\UcZZbV[PZZY`U^WYRWTOUV`\Xcb_ZLXR[SWT^VUS\ZTbVVWRZUXT\]bWTR_T\RXQf\XYTY]TPTY]X_Y_WWSSV^\\[Z\\]ZVe`[PT\Z[[[Pa_UaSXVVWRTW\Y]TUVYbceY]Y`OZQRTX^SWPQYc[]UTOYZSRYWZZ]\SXYQa_QdWRO^]YP[RY]]_hZYUQ^^[d]Z[YN^[PQU_Y]USSXVVX[^`TSWe[YY_UWY[_T`QQXWS]a^SWYZcMfWPUQ[MR\T\Ob[V[aWWOWQRZjSX`Q[]V_STVZ[eYVVX`YW_VTZVV^Z\gRQ\Ubh`UXX[``QYb_TZYPUWkaY\\W`UURXZ]qV\JVRX_^TZYRowSTU\QZ[R^^UXh\[QYSZXQ\Q[`T]VZU`TXTiW]PZSWW`]]PT`Uh]W]\[bWPa[UWW\]RW\TZ[Q\YXUdUZ\TV[OVUQX[SYU]NV]fVV[Q[YNXR\TSYLUYShVWY\]YV^WY_\ZYPZ[VU\VV\b_SXZWTNaXYYPVUX^^^[TcZPYTSTU^ZV^\^[[`N[ZfYV]SSWX^VhRT]_[]YUSXcR[SU]UZYWkQUO[cXWUe_ZUU[\W^RVkbbak^eXWYUdXWZ]ZTd_YdX^VPZ^VTXUXfOVRV[RYb\WQ[]dKZRWeW`Z^_SdKVW]W`VTUcPT]ZTY]RY\YQdNPZSXYX][ZMNTXhVQ]iYX`QTcPTeZX[lZWRX^SXTieaW^]_XX[YYYWQOVSIQYS[TW]UZ^[[XNXRZ`YY\L_YYTZ\XWZYYUY^QZQTWiVVLNo]T^VVVZPX]fTX]PUd]_SWWXZ\YZS[^VST]SWZWTZdV^VXUN_VWZ\ZZZoR[\OWciO`TRR[\aUb_ZU\ZPZYX^WQTOe\\g^WfYpZ_QPTU[Y^P^SPSXK]^Z][RO[YVSSZ\TR]ZM\\WT]NW[]bRSU]TW\[T\M\\ZTVSZVYWRU[WQYUacSSW]VSpY[^WRZ]g[[_f[MXWaYc`XXfPUJYVRZ\\[SSVXRT[KVXsR^YaQOZ[KWOR_TR\WYZXT_c\Y]KZYdVN`YXVKRWOb^\\VUMRQX]`aVPRX^XN^SQMZ[ZOXc^[YcW[cVSWV^[UWX^RMSObSXUOVVdY[ZX`[V_OPXZU[ZXcXUObYT[_VYSWN\\RVU]ZU]J[aX\^\bl\QSYX][[fS]YO[Y`RTWYZ^O`UaZUV_e\]`_QVL\UX^[O\XX[RP[TXYY[QcVUUHdUYW\XSTUUV]]YJRX]ZS[TQ]YY]W_UYcNV`RT^SU]\aXbNWW[]iVSVKZTOXZQUg^XYSNUUXRUNZb[[XU\QVNWX\W`V\XSbL`VXXlbMbN[R]cV[QXVWZ]V^eYSXgWUa]QU^ZUY^ZRQYPbPWPU^^PcNXQZXXa[]We_Y\SiRYVRT\eOWfZ`N]XXJXUfY[XRaSU\XFVUP]UUYOQ[]KYVUZUYRZgYRU^YhYZ`WU]ZY_\^VU`_bPYYQUaW[M[aZ]W]ZUT\WPcZ[NSa_VNaXURUWeYSUWYiYWTlTcM[S]QZ]_aNi[WWYZbUU[_ZhXQV_X]\PQRd[^WUR`STXaS]TVV^ee`ZVZ^fbZiV[\[VX\QG\ZXXYTYV\ThTTZS[K]WYW]V^m`U\mERWX\STPWSZN\Y]MbP]ZQSQY^YaURV^V_\cX\WNZ_cYV[[\ZQ^U\gaQcWSdUYUOZYROfY[^_X[\OaaZNSRXR[Z]h\XQ[SP^RcTTNKWTd`YVVTT[[\V[a]^[S]KR[SOU]ZNYYRMWVRRUZ]\bU[PM^QT[IL_nKUOWX\\PX^Y_XYWQQfT]pTTTX\\UUZ\]]bi^WfYN[\Q^OS[PUURVWcSaa_]\^QWbYWSWSVUSZRSUVQ\TbYVQ`YX_Ua[V[aa`Q]b`S\cT_YQ\cGd]XZXQb]TX\]S[[XTYda\e_Pc]]`YTdZPXeebXVnL[[TTeRJ\WUUT[WOV\XdfY_QUWT\`XTLVJaL^ST\Jc[^[WO^XY[rTR\TdLFX]acSUSXW`_U\`YWSWUX_XSQS_b_UVVZSNO[W_dQPX\^dS[ZaWbg\\]SZgdWY^bVgVZ\_JZXU\\WTXN]TWX\QeWUYPU]UUWW\QWbfR]dPXZ_VWK^XRYQXQShWNW^VUW^YWRYO_[^nXRQbVS]WU]QVV[WY[W`S[dcX\c\RWWXYYQZX[bWUQPXcTb\UV\b\WX`\YYUZ\RLR[XR^VOZYZW`SZ\UZZ\^\S][[^kRf[`cX^TYtXV[S]eW]QWR]YU]QV^UTcWi\\O[SV\YYQdV_WQTa\^]SQTbY]a[]edX^[V_XVVWPL]g]WVZYL[\[R^YObYSXQLXWWXW^`V\UwP`UV\]aYY_[QPRW^X]\WTXZSVQdcgVTVZMeXX`RSaVXU[\Q[UYOWUZWaWYZUSVYSZd]][PPYTXx]UiSXaPO\WZ_SWPX\^NdaWWYWYadaVPT]R]W]]VX\]WTV\V[UOWQVRa]f_Q^]_UZZQ\QYaUeNc_[XYU[OZVV^QRX^\UXXT[\`ZYpU[SeUZR^__[[a`XNdOWXS^fJHUiOWXZTV]TgSXRYO_hOVQT`QQ\\W[gMSZXR^^N]ZaPVZZZ``]`a`QjVSZP]WM`U[`RceMD]KUSSdR_bU]bX[YTVXPNY_XJcWUWVQWP[Y_[c]NRX]eMTTVeT[Ym[ecNdMZPHWSM\PRK]^kVcUWHYP[Rc_Wj[_W]^fTRUKgTfYQXQo_W]IT[\blaTRNOVU\dXTXVZ]RXWWX[[QPX]UY]VR]R^hSY^WSc\LZP\XWUYSXN`g`TYS[_T[R\\\^V\\_Sn``TVQ]XSSZ[gVYPT__SZNU\ZQMScWXWYcWYRTYXSPXYWVTVYZ[SOX[Y^VcYYZQOXVXUS[_cY^RVYSVhU^GYP^[`XTiX^`ZYUYKSV\ZN[bUTacS^\]TXVOZ]XYZOTeYXZLQ[LcR_W_ZNV[dNZYJRZK\Xf_bWYX_YH[[XT^OUb[]_YNcZTSPPgS]]`[G[K]]P`ZXi\RV[jS]PZTWUZbYY`XR[`aU]\_[\^Xd`Z][\a^fUQ]XVi^`QdaUQJXGX^W_]aTd^U`YTYMaYW]YNTP\GZe_ZbaVfR^YQ__`VX`]^TYPUZS]QRRU`SPYZVUWT]T`LUbUd``\\YJaZ]UYTR\a\V^USjV]ULTZ\V[TNPWYUZ^U`Zk\VXTeYTTZ]bOMS^[SS^Z_XR^_T`YTY^RV]R_W_\]fYUXW^VZ][TSZXWPXaSWQQS`X^Y^X`YLPYRVT^lZTV]RTe\YJQXXSaY`][]XQQW]]]WY[XZ^M^WsSXYY\\R[\fVfX`QSU]X^PS_W\XZd[[YXYcb^h`fZdMUY_dcV[Lp_]\PZc][Z`_[T`c`ZWROMUP^[`VQ[Yc^WZ`TYYSVaRYVRXV[NYcOU[SXUUMXW_Q[UVP^YSZZXVRWTf^ZT^Y]X]X_Zb]`W_VS\XR]dS[UV\Y\b^a\T[W`TYX_RTUV_][LXQ_TQUj_VVUVVQZTLWYT`\YVZUZOW`YeLRSRUUXWXRZYU]T`K\TR^ZXRRU[\K\^XRYaS[lVV`hP\_Q]XSS[[Y]_RYSTRd[RcRUVYU_]PY^][GXZXO[VYWUQWXhXSXTTQSVYVVPVaR[^]VeV_WR_[VQ^[QQtS[WR`QS]SQU[_\ZZi`Y[\^[ZW`iYTOXTfT\TTMWUX\\a]UYY[PWWVPSaUbXYVR_TgV``XI^Q[LZYX`TY\VOUUYeXSSYY^QUQW]V\d\V\[UjUV^^WbTRUYY\Q\UWWZZVWVZSQQYPRWSWZ\_OWRTSSV[XeT[YVTP_XSUN_VO\PXXUX_QUULST]Z\YTT\][]XYLYbU`^ZafV^ZeS[Xh[R][YZdMV_^\]\cUWKK\d^S\Y]eVI[YTUXbhZ]XWPOVcTY]SXYa^OYXTTT_TW[Uf[aWRX_UOY[T_Vh]_YUWM[ZUOXZ]ZSZfUTT_eZV\_gY[[baZZP`YRQ[[Wf[SX^TTVY\aUWXR[X^^R_UWY_S^Z^[Z_SOZ\aYRKbHaU[dWa[R\^\[Ua\VZXN`]T]Z[UZQYePTgZ[Q_gTaP[XdPbSVXUVNVYY[PY[RUUTSb_d^_WSQV^[XVmXWXc`YTRX^bOYNWY^eSYWU`\LUJV`ZWTZYaTVZVVV[VQWRVOZUY^dX`[OZP_ZUYWWURPZUORWWaR^SdXZVW^UQNXZfcZW]^\YMfaX]Y]_[UW^UXUUTZda\\M[X]VVWTWfWeTYPUOP\iWNORZP[]XZYVUUQWU_R]PWUT`TYQTZTWXUUSUOPX^`YWgR__Y`aR\IWZSVZQX^[dX`OQSUYQ^\FSZW_VPQOX\TP_YSUO\ZYUaW^S[TSUU\]]LXYZeSTUc\_fPMZV[XW^`W[ZUJO]XXe[[``\Y]VO[bQZXb_cQPLY[[SN^T[WTXSeTFTZRO[YY]VZ_@_M\dbb[U`Sh_XTY`]Yd^TR\PcPL_W[[][_baMVT`Nd\YP\]NQLXVXXZOW\U^k`^n`]XTOV`UMSS[^XXeVZUW[\QVZXYUWRQPS]\P]\ZVaZf[Q]R`TMNbSZ]`[jgQW^XP[W^WQRYSWfQVYO\PU[]TR`bWXTW^S]Ze\`Q_^W[ZXQ\TYP_S_]X\cUVV\VPY]VWiWaSNYcOTXXZVT]aHOa^eOS\O_U_]NRT]XZZT_o[[SQaUUSZ\MSM[UV`gLYVXYRXUac^Z`^bcUY_SdT^VZ\_WVOS[UXVUQKVYaW^SSQ`WRQWZPW^^[YWWL\beLZmQYYR\XY\TO^TbY^YSRZe]W\WVQLNXMZYZbWTNVQ_`VUYOOd]VWT_^\X\RU[XZTYXZ\[ZLVNWSbPWYNg`_LXXQS\\Y\UZ^UW^TQV]\`bUYOOTT`RWWTgf^g\_]]U][ZY_^WT^_JSPaZPTYoWX_i[bYaTSS]RMYXVO_[Q`iVM`\`\]iVg[\RURXXW]UZR[KU\dWW`_TPQY`^bVTeUYTWUGU[USSf][Wde`Z\SRZ_X]QZYbQb^Q^_jM\XNXSPYZTZV]TR\Wd[VT]O\YY\S\]T\XV^PTb^Z[[IQV[ZRU_]XUbXR[RW_YZQVTWUYQYWS`_WUXc\b_E\R\SafUNg\g]WcZRSeWQW[R]S_\RYXUOWX`VWYNVZQ`Q`U\Z_WSZ\TVXTV^\^SQV`WfWVP\a\W^QVWTZf`Y[`^PaX]VXM]_aNQW_NZXT[UZWWY\W[[IZXQWRV^[bWeZc\XVY]^[TY\^_`c]eTaY]]`Q^`wWb_XYTUU\Zm^_][]kb^U\f[V^Z_\SY\\U\WaWU_]PTYXa]ZTVS_TW]a\\WZ_ZRX_ZZU_\\[WV\jhVWuVRVXX`YQXa]dUU[TXUX\\b_eT`Y^\[W]YPSv[MZf^YXZT^Q`]W`X[[XacZT[_WUYY^OTSbe`\[QK\USIVZ]XXWXOX]`]X]XXV]VUZ\h^SbVYV`[\_b[T`[V_[W]Uf\\\Se]XXSSU^g[Y[^[UYS]O`[[_YWUZS^YbYiX~iWfZWXTcRW]X]^W[^WZWfYUMUdVXUXeRSX`UXZXcXdR^ZW\T\PbeU]{\W[d[_`YZXX]WW`W^\QbTYVcWa[[VVXYV[^Z\b[X``_bSU]WdXkX`\ej[U\ZX_YdW[[ZYYTbXVXTUQR^S^WaSZa_bRX_`TY]YU^WSkbV`^U`\haXSOYR^n\VSR\`]_^OT^ZXZX^TYfSU[Q^^`TTY_[QZUUTQ\`YVia]TZUTSVVR\VWU^VUgV]V[YZ^YV\YT[YUWOW[U\UWYVU^]YOXTZYcWUWP^\\N[UWYaK^ZZXVVXZO]bVVZY\WPWSV\X[XOOWZUVX`ZLYWU[YSZZ\beRXQ]XRO_W`\WYWOXZPbbXVSXcQXYYS\YVZ^ZV]VXVP[YV^_\XXORPRVcXPTY\VYd]gZU\X]UMSV\XX^T`[cePY]VSg`[]VY`S^RT^Z[Y__\VQXZVa\`W[fVbVd[^ZYXY]WSYWVXYSOQRZZ[Z]UYNWU\XS[\^VRTR`YXXX^UWZ\ZYUcYSZTcXUXPP[T[UZ`_\RR]Y]eY]TYYahOZOdWXWXUWTU_WWYRZXZTTRh^\YQVVbTVY\PV`WZOU^Wf\YU\XZRXUUbZZY_^YUPZRY`WUV][iSY]V_XaVP]XXYPVSVWVOZWW[YNHlR\VT\WaY[YbZZ[V]Z[\OXR[Y\Wg[\PTV\U`c_UNQQSYZWXWPNZaYdQQa_NY]_VU_TWXSkJdPY]m^XZT_ZXSR_PWUYSYU`U[YTT[YY\XXQ\QWZGVUb[\OWQW]OT\M\U\\b\YTOcP`UUojZMZVLYUYVV^UO^WY[X`XV[XY_WWeXWV_OY_PN\`NYaMQYZ_TXVZQNKbSTZfJYWUTX\_XXSTW\[NUPOXWfYQ]Z\ZTVSSdY\]Qa\\ZTZPSWl_WW\RY]\SQQgf^WP`OXTPSbaNhXL[ZkTVTZVJXhjQ]hZWPTZ]YSZ]]Q\\\Y\YPVe]QVW]\X[RZZbXS]M[aZmJYVMUSQ\[SUPTXX\OPQVYVTZX_ZYQRVUPX`\WWRbQSRb[WUNUSOUO[V\TSTeYS__QZYUWadX^Z`PUYUWVZVcSUW\W_RZP^VWKYU[ZaVVS[WUb`a_Yea\YdYR_[\^dbTUV^PZISSU]TYYYYdTYP_SP\X]U]`aNZ_cXPQ[[PbWYXTYcb]^VWPcYO^ONOaYOZOU]_[f]YTR]ZgYPa\}_]a[YnOZV_[\W`UMZRaRf[ZacP]QQ]b`ZTORXRNYY]S[RPSYOXcYRRcf^RUL^YVPb[NTOLgT^ZYW]XRVZ]Z[RZX]YWR`QeWXdcN[TYS`[QTZQ[XZcZUa_dORKVaVX_ZbQUiVZITU[UIIf^RPQ_XXgXHVVZ[UT^_WTfTeUV]L^WRUXZRRY]]XSZWP_ZUNXXOT]VbQTV[^Z\QSVLV[WSOUWQWb]_Ta\U^_`a]^L^_jWYO]bh]X[SdV\`R^sQTKVY[[[[_ZbZ]SXS]SSTUX]_[[XZ\]VS\X[T\bQ^XTbY]Le\`Q`YSOUXZ[[QTYW\PE`^SSSPX[bb[U[QXXPVKQ[Z]Z[V[`XU\YWYTPZQ]ZPVW\YS`RYZQW[TX_T]UQYTW\URY]Z_TP\HRXd[SXa\S\VQQPZaU`Y\Z\\[Y_]iX^ad^b_WOXXY^U[VW_V\_XP^MPW_PRd`_f]_ZXZX`]`RaQ\YZZVUQQ^\[XViZS]YdRhYOXOPVW_WYYhWTVL^XS_SVWQWLUZ[\T]WQRXUI_\YWZT\WWTaSS^\_RUTTU^[LQYdZbaO`hdPQV]VKT\TW^Z`YSX\^Sd_WZ^[\QZWTVWaYUQW`\U`RPcWVVVYWXRXSK\]ZX]SbQUVZQcaSWUYZZR_\U^VY]]WGYkWc\ca_c[UQd]W^]RSWQUX^VU_WZY\ZSPaUT]NSTYW]W]\ZZUR]VWXTPbWQRYW\Z[aZR]QXTYVTVU[XRRf^eYXWRYeYSVRRUVYZZ\WMORaTYc[L\ZOO[WLVbO\\Q[U]XZVLSW`ZS[\d\UeKUVW\QXS\\fW^aZXPX`VRQZ_[XTg[d\b]YY\bS]U`O\e\T]bXYPXX_PWJaVYWV\V\STVU^ac\[_`_QqYWUSWTS\R\ZZT[Z[dTTMQ\LVPIR[VZUVP[XU^eZ_OTT\f\UQ\WV`Z]gUWp]fLYYQaYRSRSWN_XPdOQPOTci^[WVTgT^S^bR^^LdaU[VORYY\baY[MTZ[Q_^^Rbg^]dZ[XhYOXTaRP`WVZOMRQ[ST[^K^XYWZQZU[aP[VKTe[OYQaZPeYP[ZWTJU^dTUXRU[TSVX\YSmXdHWV^ZXYcXWTVW[VUMXRTQMV][YZZUY[Z[Y\\dZ^SMVS]SW]\ML_ZRYUX[ST]Y_VYYZMf\_W[aJ[^SXYZWNWQOsW]SZaXY_XZU\RcTYVW^X`QX\bTRUYQ\Y`[f]Pe^]aXXVZJWVb\X\LP^JQR\YYW`VRVX_TVXTVUYZUV]UY`[PbbVTTVUX^SVWWXU]WVYXhaUYS[R[TWZ^[VY\W`V]YTZ_XZifNYW\WXWPWWUYWaP\W\R\Ya[XT\V_bLMZU]_UZVTV]VV\X]\YVVb[\SNY[OTWSXUSV_WLZU_SVV`X]a[VZ^[dV\\aTQ[UU`UUaXZ\R]Q[URVfOYR[`V\SWaXVRXWSSUUXVWY^[TaQZVUJbjTUVQVXUVUXYV^WY`^^XY_S^X\XWZZ]\RY\UYTZZXaU^LY[WYUNUTW[X]RSV\Z\]TQQQZZS]ZU^YW^XZ_Sd]YV`[]YWX\ZW^QWVZQY]]VYVSaWWOZ]W[XSYQX^ZYSO[WTaifXUaV]PS_c^_bT\ZWVXW[c\_YXURQ_VPOQVWX]aZY^aTYUWSSWT^X_[OWWa_VS\XYXX]UR\[YOX`b\`V[ZY^UVM\YS[lUZWY[TVYSYZ[WXTY_^ZY][R[cSW^TWXRUU\RZV[cY_XMTUX^ZXTecW[dSTh_WXW[_VY^YaPLXSZZZPWPVWS\SeWUQTVXlVWT]^R\W_UZXUbWdZZ\ZaX[TWN`\ZWVaeYU``RY[Y`\\W[\\cXXa^cb]XeePYT^a\UY^_ePVWRccQYWkVaZWLnVWJ^SZQWV^RSSVUTZYZTYWVS\WogZ[_UTY`[YS^TlaPYYYXXWYZYOYYRS]ZU\R_P^RUZO\JZ]\U[OTPd_TR^\ZSjZPY^TTSWWUN^_[V]SOLR]^TYTWXX[RVSXTTSVK\^VXbZW]`kU\TYU\NcYS_VXWWSUVTWR]TV_V^T_acUfV]^XccOLSQYTYZb[[`Q]WVY[TT[YRZ^XUI^\[W[[`[YOQTMUfUT]]YWjjYbYVX^UX\\NdYVHT_S_SUZ[\_^ZVXbV\XZWU[\Y_VTW^dl^]V[UZ[W_RVY\VR_LW_]\QXUdVZSVYQSUYfXUYUPUTOX^W^\VZYZYXRVX^TJQmg\]^kK]MXYZ`TYKVXj]V^VR\gVURXeXUWP__]QQUNXXcWXXJXLV^b_b_iVTQUNab]WYXRXd`ZSSRfSW_OVW[VUhUVXN[nLVXYS\YWYeYQQZXUTXZ`RXQ][[UZZSRSMZT_U[NXV`VYQW^^g[M[`G]V^_W\Ve[VcX[ZZNdU\QT[RW_`\WY^NVkbYZOW`XYWW]UUcVR^_]Y]TO_RTXTTTYYYSbgUYN\TQYThVZVN`W[WXVk_^Z]\Q]SPY_YR\Y^VTRPM\WYVW^`kUVQ^USZYgid^PRcf\TSXSc`XTSVTU^]R`YZV\Q^SWPZ`ZfS_N\\VWcUY_Hf[Yb]`Veh\YYUTVV\XXQaTaVb]TRMZaUZ[O]\bReSPT_b]UZX]FT]VbWbU]ZTcUU[\e^XPTWXV\R[_PUOXQWYYQd_WOVU]IPW\QXY]RZWZUfX]adX]\P_MXWX[[VLXZcd]\V[VR__Z]VeRWYP\WYYX_YYY]WPY\UY[jXYVTQRXVV^Yc^YOYM[[RS\ZSLZQY`_L[b[eQrZV]VVYQ_TYYJS^VV]h]c[SbXY_Za]YZeTT`d\PS_\SVPZYVa^]_WXY[Uc[RXXeK^Y\X\MVQROKY\SWOZZQ_YY^cT`VXO[cZOTXUZ\^SZSUXP]\USW]ZZZUW]a\eSM_VYbUVVXSTPLOWZRX^LVQe]XV\WL`cWSQMY^TRZ][ZZ`VSYPTYLYb^P]X[_\X[TO[V[Q[\[Y\>^VYPOSZU\^UYUXTYSuNeYUd]TOiYTRWV\YbW_YY]`]ZZ[O\QIaTQOTUXOYRZZ\cafTc\SYYRTXYb]_[YRaYZ\UW]`_O\RT\^YjT\VR[dhU\Y[Z_heZSSXd^XT\VV[KMbPXUJJJ]baOZSV^Q]XR\RNYRP[V\X\WYMVT^^]\SZ^RUZZZQZTZ^]TXWMbMZYR]ba\]USYUXRTRWTXTX`\WQXXWU\c]]XO]O]S]ZVMTWMQZQVZX\S`g]ZTRT_PWWPRPWN^O^\]aOV]MYPgNX\UXZ\MeXZTSJWYR_QYdVZ\i`[WTW[ZSZa[VkRZNT^X^[R[S^RcUZ[PWOVTY`aYSWY_\URbV]IYZLRXXZVTXR[TU`Q[NOYScPXQlf][N`YWZRZUW^QQUgZ`QVPfaXN^UbRTXY[bVWRQbcacOJfb_fV_RXRSR]_]]TR_VUWLSUZVRa[\ZPX]WZ\TWSaX\e\R]YSMUTGYd[QRRWPXV[]R`aXORKRZNRXZ^SSZSZQ]`UVcRYV]XZWXZR\LZ`aUTYQ^WaOR]XM[RQRVUTWK_WVSZ[Tbd]acRVST_VVOX`]TXRgRSQTS[^YZVQVJZYVW[WV[WbTbSTRXOX_ZSV^Y`TXVNY[TSW_ZTTVU\QZT\RV[SNaTTSUYWQRYP`UWeNgYNXXN[^QXTUYWWX[]U^_^SNQUVPL[bW_\bSi^X`TSRUZdTV`JWeWTl][Y_SZaTf`\a\UV][bWUVUWPU_XXV[TZfeV\Yd\]ZdU_U]\`XZV`V[[Q[[MXYS[YT]RV\UT[_NY\WOX]YVYRYZYSq\QNYWX\a\SQZKYTU[`OYZO\VV^OST_QUSXTXSOZXQQN_QW^dNQ]RT\UReeQRSZXddXRNMQSVRV][\af\^NRZTV]XT^`YSVShUW[Z[M[T^dRX`YV[VZcYUaRT[\jZV^bOYV^ZWTPX^OVSN\YPWYVfSUSY`NcXW[MXV`aXWV\WUWZU[VVXWdZVZ]V\VYUQYXVQ[U[`PYTXWZX\\U_RVUbVWIZW[\mT\WRR^[`]RYR_SPR[ZVSU`^ST]\M^\VO\gYakZYSX]R[W[KE\OTX[V[bQZ_XZX\ag^YTT]RZ^RNbWQnWWW\[Q\XZUV]b_[sW]Z^bbWd[RVPT]VUPNYXXQV[[XUWPT[VVR\SL[QTWR\VS[UN^ZTUY[UXU\]\\VX[]W]WSW^ZdbWT\[W\[`RXXZ]\^]UTaelUbUU`]\N_^`PW_YYTYTRbXRb[Ua[XR`UTW\XVTX[cS^_ZVP\c_M]bTTRRQVRSWaM\V_eTRVXaVU]dY`caV\ZWZTaYPZ[aXR]SfYQWS`GVMWZaZXRTXYOSVUUWQ`TWUSYSORRRXTYYVUU]YXZVVaY[^VWZYN]ZW[bRR]WVZUW[I\STYWdcSZVVX`TUS^\Ub][Nbc^\[X[TYXT][^bXYXcTXS_[\WaXdOT]SWTRZXXfbZPZP^`T^ZOS\YPbWU[aQU_SXTXYZ`XU^X`_]``]`_PYVd\QUZTYUURMST]TX[ZZZUX]\YXZVKYMV^WQc_RYVVUY^a`PXacYV[VX_SU]ZYOVOPTVOSX]YUXY[QdZ^`_ZTN^\_L]]cSNaRR`P\aaO^OLZ_QZW]aSUc[STWcMZRO_Z[ZTTeU]XQUjYT]V[W_^RSNW\]ZZ[YY\VRbS^ZOWTT[^ZUTUSfi\^SSPY[_[b[`Y`[R\QWV__YVRPb[Z[[RSSRJYY\^XWWPY]^YcYb`^VTXXWVfWW_`O\QS\mXUVNRW^^MTaYTfX[QTRXTOWSSXOLbhdYQXZcLXPR\ZUR]TVUPMQXOUVPOOWUURI^OWYUX]XTOVZQ`]KNOXPY\[\Y_KQ`Q[U]VZUPWK[ZJS[]QP]`[^h\_S`Yh]NPVVQUTVIRPM^P[[_VS`]NVMMYaSUV^^[S[ZLYbcaZPSWWTXVaYXTTX`XRPTU`_QRYZUbZMY\_b[UZa^ZSUQVNU]dUZP[dVVRVQQ^XVaS^N_VVPPSU]UTX[TaWQa_bYT]NUX`QTW^V\VWVfX^]^VOXZWWXOXTY^ZVUX\\YZYSVQUfWNSQ\T]W][YO[XaXS`^aXSTWdh]\\aPWaUVSWUTUZbOR\]]]]XT^LWZ[[Ybd\_`RUWV[FUT^bZYTUR\OdZRT\VW\]`W]SSfKYX[QTS\T]WbWOVfUZYS\c^]\UVRWYNQUaUZXTO`OU]ROSNUM\XTWUXaJOSAaT[\SS_`NZhUffPRXXXWSUTPYXQiTDN`]VUY\VdZSUWSTUeVVWQ\ZSXVSLZ]Y`Z^[UNQZ\r^WXW_T\`YR_bWMe[]WbV`_`TR]O^[`kUV_]bP[SXQl\Z[[RgVTYYb]ZZYYSeXZcX\V\^VQ[PbaXIZWZVVSa^^TT\TX`]VN[YNUYVU]ZWX]Z_^WXSSZKY\NTR[X[U[MPXWWb]W[YVWNQQWZaafhOO_XPZPTVY]Y\]dZUUW[Z\TWSROWWVQSRU\\S][d[Y[_ZZWZTe_fY_WVXYZW_W\W[_WRPZR`[TV\SQPXRUKTSTTgYObYU\[c\ZZXZ^d]SWVXR[WX\ZY_b]Z[^U^USXVVU]ZUZaZPSSNKQWZb`_V\]VRRYVUVUU\V\TYXTVUYbVZROa[QIaYZYWXXW]V[\U\T]URP`SR\bTYYVVb[`LYNXUS_]ZRWTVSX][YmY\]P`ZSeW_^YTY\\]PITSYWXY\TZ[YXXUSUUXZa[\U^^_\ZbT_SSQWRZTXZXa\TY_\YWRW[SXWYV[\UTWWZXSTYYYYPVaKVRcTdT[Q_PRf\ZS^R^TWZVWUSRZVU_XQ]VWV[UWZa[RVXXM`[VRTP_cOP`USVSTZRWVW_QRZYWX]ZQNWUYUfSV^iXb]Z\SUHYTWSPZ[Y\`]RXWScXQTbUW[XibO_XRRQ[USZUX^TVc^dSZZeRWYYYZ\ZXPYVZWcXUS\cUZU]P\W\\PU[UdX[RU]ZWUZb`WU]SUfSUVZSSW`UgYXXT^[Sc[]Y_\Y\[NZXZV[c^^\_ZOWYQ^WU\JV`YOdVXZL_fSYkabYU`_dYXYYZUIZdbO^TY\PST\``USVW\ZVZ`\PUSUTPTTbYWT[WU\WVSPUWWPU[SSXYV]bdWRQX[XVQ[LX]XNUYP[YXY\X]]JYWVWaN]TcfYTXP_\Q]X\RRY[WV]Y`ZVNX^WSTVOZYdR^[Z\ZTXVXQU[\RXdR]WZ]_RQdXS[XUeX_\]`QW_YYSV`Y][Wa\TbYSP`U\_aURPY_N^_X__ZM`X^cZWaZZ_\X[XUWWddVYQSWS]Z[[`MVQ`ZJSS[T\S`ORX[Z]SZUSW]S]_ZVYVZWRk\XV]QTQPQZa`SUWUXZ`[\aS[[X[`[YXS\\U]XYURZaZ][WL]Yha^eY`Yd]\UU__WTZTUYLhRXaZ[_W`^UZ`YUcUVZSYUV\][SSX\X^WYSV[_ZZV]U\VW]XZVR_]T\QJY[a[VVZ\Z[U[TT^Z_]RUOeWdTVSXWX\XW_WWZZT]]V^M]Q\RWZ\bZXXW^_Z^]VUX^WV\aSWWndRg\ZmZUYUXXWXbPYaUW`Y[Z_SUX\ZY]WNZ]^^XT[Z`ZXYU]R[V^VWW[XW^[YQRgV_YXUYRcTXWUeZX]ZNYja[^Y`Sl\[\U`W]T^X]ZT[YZ[R_]TQZWNZ]\^V\Wc]Y\WXbiYVa\aaWU_Rk]ScW]ZaScU\^WVddaVNaTZ\TcZ[VY^Z]S]Y`b\\ZW[_U^YTZb^VcUXW[SZQbUXYWS[ZYVQZ[VZX\bT\V^\SdSYYSVUZYb`R\TVZfZVYU^YVSWWa]\aaR`ZYVZV]]Wa[\^\bYXWUad_][a]X[UjbmYXX\]`Ve[QNXTZ]SMYWYW`]]dSRqX]YVWUOQY^VUVQeaUJUaTS\aUXXbW`[[SX^QNVSaR_WNMXY^]Q`WYQdZSNWYYVVVQZYQ_XX[[XN[cZ\[XU^WQ`TZeOcXYYTPOeVZQZOY[TQjSV]OlaVXOdWTVeXVYXRf__TXUcadWZ_\XZZlfSMWVX]Y`[^_Tca^eVTOW`SaX`a\VVRVZ\RVgZXPZSNT^\aXTTcZOVUNVRUUTO\WE\XRZWUU_YZQVTcV[cU]VMQRbYXLTWUSWSQW^SQ^`T]`RQVZXg\\UXXXXTRP[WWU[YVV_aS]SZUW]_VYXgU\[W_WdQUZV^WLZVKkYVTRcSwP]T]\hTOZaMXY][YRZV\XWZZRSWMRZVOXU_KZXbOXW[UUbWS`e_\ZQXYWT`YPVI`LXUV^UV`U`P_[WX^VXZTZZTbVWY]bYbYIU^\V[cRGZW\_``bRZVXTUJXU[dOV][^NS\J[\WbaVPlbUR`]W\Wb\YW`m\ORbS[WVXTWUS[ZPTfQYSSRY`^YS]ZVZXXkbZ\\HXQYTQWdVOYU\\WPE^W]V[WZTVRVXQYUPX`TSRYTT[XTYP[WXRRR]`XSR[Z]L]YUV`P^\VUQbTlTUVU][bZ^^]VV_Y`WfU[]YcS`[O`WWkY`R\W^PU]QT__[Tc]cYTV\RZ`\YKRURbRVZTWZ\dbX_QT[VTU]RO]W^M_Y[R[XMOPcVYX][Q`UQQ`\i\^U\a\[WUPV[^S[YVZ_[QUQ\UPQ[[\XNSTWZYfdYnU\T^V]ZWY\]V\SV]VU^V[gXNYN\X]T\cVRUS`_aUVcO[]UN]]UPOXT`eVUSXSUMc^W^ccbVYZU[ZhY[ZhZYaQ_Zaa]T_U_XWW\ZYVV[UT\c[a]MV[WQUX[VO^NPULPX`_VTbS[VXWaQ[`Vb[T]WVWa[W]YS]VQXXXaW^WMRVWgW`^XYSSWXY]YTQWRUWTU^^f\Ta`^`XWSTLS\Z^\VWWTXXT\WVQYVn]b[TNZX\O[_[UEXZ^O^UYQZMX_VX\XTY\ZU\U_SZPWmW[VQP[Q\QXhXZYSRUW[V^RUZUVR_VTNYWRM[^XYV^_VYXSY\`[SfRbOVZ\G[Sb]]TOU_V_S^KMUYPbZRZVVXVZ\]aSV[[TQ`RLT_WYVIQeX\hVU]Xh^RaWjZW\TV^NmUkNVNSYWUTUWR^Z[XM`TPZ\WXWRQV\`ZQ[fXRS\\TZ`\[ZWTSSUX^ZVg[V_TRXQ^\W[YXTRW\jZVd]UTXSUeZbV]^Y]TTWW\WUbY[_XV_V\YR[ZUV_Y`SQ_S`ZYYK`_X]\]`dS`SPW][Mb]XYZbOdcsV_[g\]RYYVYhZeU\uVVPVPZ[P]XPY^WUQXf[XTVWXZ[SXY`Y\YO\\XW^W]WXXX[YX\\VYWV]S[YUVYZXVP`ZV\ZaR^`[Z[TTV[UUS`]RSVWY\]ZXX\\YZZPXUWSV^V]UUb[]U]^WWUXXUQ\ZZX`U]Wd\ZWXV[]WUZ^[UPTTP[U`T]TYZSXTZ^^]WTT\Z\QVWUTWUYZX]WXUT[`W[[V\YXcO]WV\QWVMY`^T\VWQS]bXX[UfXXZW^X_SY^ZXRW[\TaT]TXLXZVPUW[W[VXXYZV`]WNZX[TWVXPXTURV[VY`[]Tc`VWY\Y`W^ZVUZUZS]\[\XZTPMYWXZcT[`[W^VRSX[Y\aXSSXT\\WR^[YXW[TWVVYSX[\W[Y\TWWQYXUUXYZ[WVZUTS]UWVUea^VT[Z\Y[Y^XSXZZKTYXXSZ\YPZTbWT]UT_YWX^hZ]VXXZWZTU]_ZWXV`]WZ]WXY]WV]Z[WUUXZSYWRe_YORYXV[_`Z]KUZaVUZ[[RXY[[TPYUXabn[QWR`VPUSQ_V[X]Xb[_\VLVP]ZYYa[\RS]PWWZXX_TY\[WbJZY`QiS^`PT_[YSP_rbVa\^]]R\W\T\V\``QORUYZWT`ZY]^UZ^WUTYVYTWYTI\OVZT\Va]YRUTbXPZ\LSVZdSZ\VYRNUTWVaRQTVVaeUZUX_SXNTg`_YXSPXSYVXYVU\WSZZ[YQNW^Y^J_ZObZWj[VYQRcebaXZM_XOWT]_O[^cZ]NRVWX^aUVZUXOXcSW`\]]^SPYV`[PY_^g`aY[_][NWY]PETVO\OVT_WYV_T[NY^YPYVV]W`TSUZZaU_SVXSSP\X_YZT\XYP\U]VWY\ZWR^]YXYS`]OUZW\``ZZU^[V^\WNST`auUUTRSTZ`[MPZ]W^][Vc^MZ]VXb[TT^YVYbOW\UU[]PTW]a\UYOY[__`T`VW`WXSU^TWfTOSRXT]^^YbZMWW_cgZUT^PXW[\QZSWVYUT[Y]^YT]TWV`^]OXWZXQZV]VV\bVZ\Y[ZRZU\PP`PgQOIk^^XS]W`RdZ[Z\Z_Z^Y_Y]\PWUVYdTWRW^a_W[V^\[V_[`_]TWQSZVSZY`WYSVQe[aYVVUeb]VQTYQZXTMQaRjUQYV]^YKWY[\VWL]`Z]`YRZ[V[NXRXh]TUYaWm[T\UV`VSVYcPW^W[L`WVUhPW]P\IWQZ\bKZ_Vg[VTLc`jTTZeZfS`[_W\WWNOSRYY_VULXYXU]VWYJ\[Z^VWZ[XTe\^`c\]XTW_^cMWZPcZ\VS]ZY_Yl[X[TV]_[WP_][V]XN[]``XVRNTL]`bVYLXbOVZZ`SYMV[RXRYYXOURS_V[]VOY\XVV^XYOY\VXYZLRTTOZe_ZX_XW]TU\UX`Z[PYZVTbUS^U[LgZ[[PY\XVWYOUR\TRW``c]OXW]S_SSTgXVZcW]TYV`]\___WXS_WSWURUUQ]lW^ZR[YXW]U^PYS]YRVRTYX^T`_XZW]\g\aSNe]TYZXS_WU[UZM_`_d_ZUZeR\V[O^lPQSX^WNUYZXXSbY_[_YUZR[SPT]YbZZQTTXR]V^eT_`UJN]\VZaTWfb[[R[\]SWZTUYYg[NWW\O^T__U\XZZ^]T^bN`\LaUS[TQ[[WVY]W\bZ]`Y[PWW]WXTY]YKXjgPiSW^S[dU`[WYW[aRX`\VO]WPY[_TUeXgVYWOwY\SWVWScVTTZ\U]]W_T_\Oac_UY[RT[OY]N_Y`]SgWZWWVdSWTTTP[ZN\_dYiSYWMZ]NU^TXR[QUW[[PYXWR[XXVXTSS[XYXXSS]TRSTWYTWZ_U[JfVW[YYQ]ZUUT\QcTUeX^[V^WUh\YlW_cWK]Zc[WN^]UkWc^O]\gTTNMTPTXS^QXXWQQ]VdTWx[H`a^URWV]CY\USPaUlsN_TX`Z\XZROYQLRV_WV`VYW\W_TXO_dbSRZSPQONRXZWSX`_ST\WZY\agLWbUfbXX^vWeX[a_UOjPQ^V[XUYS[\dWU[a[Z\YSKi[dU[K_]QVa^rT[[TQYLXRbY_TTWUaLMYOVXYW[ZRT\YZTVPWUQU]_YYSLT]ZU[Va[ORddYdS[\[Xbf[g[kYXZlT[Y[X`ZTZ^^[WYPQ\M\YbRVS^U_X[VU\Y^U[hqYQSRTP_cL\TSOLWPXXcNTWXZZ^\ZMcXX[X]YWYYPhbUTV^XU]QNSTX]WRQYcV^OVZ^PaU_WObZKWWc`V^[VY[TeOgX^O\X_V[kOSTRYWO[[[XY[bUK^Wtb`X]URUZ_SSRWXd]_`c`YK^W_YYVYPYNPOhbWLbQXSR[JcXjYUUYSOSdQU`VQPWRM[O\R^W[OSQX`RYJgVVQSVWSXOZ^SZWTPNn\b\WT\NXMT_Q_]\]a\Zf]Z]H[_YSc[[]^PW]STXiRXV]g\[QX[ecVU]k_`UWUfPOKTmIS]bb^_Wi]\Z`VVZLa\WMVZYXcUTQLLYTO`cT^Z]UXSfhd_RUTM^PYP]^aU[^`MS`^WXeS_R\WacVWTNnW]RUUXc`[\TUR\YKd[a[KZ^Y^[]XWRkVfVfMDTWPPgR^HX]J]ZW^KZed`RZM]Ya[LaS_^\_Xb\XO\[O[Z\_UL_WNSWYSLcZW[cMU__ZNZN]QX]U[YVUQZ^UaUaQ_^ibTaX[`WTXTZ\aTW[USUXZV[V]ZUbYS`WOT``SP[OXRW\Y\^^^eSRYMXX[^QRY]LbV\X^`cYVWXNZeQPT\bYNbR\\QYYVVDO^ZPPTNTfUSWVW_\^SSMWZ_TQM[WMXXXTSX_TYT[S[XVW^]VV\TZ_[WXZNX`U\V[WTTR]JMTi_]_WZNVXRPJ_\aWT]WWSP[^dZcV^QLPdRRKV^]XaZWXVXaPXYTTSJ[YZN^RWXbPM]\\][XZWXde[ZQ\ZZdRdVVJVYPY]T[Z\Z_XX]ZQUSXUZZYRcP[YdQjNMQWUUUXeXUUTUO[VYZ\Rd^U[^V\]RTQYXP`\R]X`VUU[P_P]OS]QWY`[WPSN^ZTUZYmYUc[[OVZWRYXR\YVZqZPV[OY[WcSP[W[URY\\XTSRZd^WZSQIQ\XRX_YYONZPd[V\SbT]NdZeb[]N[eRdWXW[`^U[WOV^UIQb[XSg\\UY][X]U[WZRWlUS\TRZP\TXWb\\[TfSZRUVQabZZYQT]Xb]][NX^ZZZPfRZ`YUXcXNT^VSUXV^`N]YNWUR\c]_RQ^WY[\UZMT\WL[SPNZZXc\^VZPS]YUPV__WXWRSM\UfYRR^YcVWTZ]YZbeSXchZVUS[R_ZTP_UT[[W]TRh[U\_^O^XP^]^^\M`SR[WPZ\NWf]WRR[OW`^RRQTg]i]Z]TQ_Pa_ZMWRPYUY^RL]UPWZSWY\_UX[_V_`Y\S`XUYZcWYcXI]UZ`QdVPXWWYWW]Ra``VYQXNR\aVY\^]ST[R^\cX^fhi]ORVRTZ]^^\]Z[YYW^`^d\SSVT^UPR`[VaTRV`ZXT]WPKLYYUW\NUVcQO]X^YlWPM`^OTQV_Ya``\\RR_T]eb][^UVZXV\JhV[V^cPVXR`]YkX`]ZUVKONZgP]UZ]OVRgZdVKSX^[QSX[V_WUOWQWiPO_X]X[XZ\VaN[XaIYRYabb`RZQWRX^XQ[]RRZ_YVeU\VdahX]TTTQXSXZPRfZbZaUcJV[bPTS^OX^U\bYKP[TZX\\[VZ\RPYUVjSLY[X`QT[F[]SSWXSYJa\ZjX[Z_\UedTb`^ZMOQTUbUU[RYVRVZYSY\cWSY[W]XSVaadTXUU]aRVNlQUYQVNQYS\LZQTQ`VYWS^eUWYgqN^OY^TTRhRWb[gNf`^VQOTZ[OY]VQbiX]aMZ[YUWPUXTT\_V\VYVRYd_VTWWR[V_QhVX`TTPXQ[M^XcQZWYHL\\OYYY[^\ZYOVOWNT`lZZ_LU]ZafRS]RUZPXV_]VW]`X_Q_TWVUPSXYV^SXK^kY[ZU\d`aKUUV``]\aTXYdSXPZYWZTUUrWXUXbbPMjXY_f[]VXaYQTO`N]Sc_cOOU\Y^f]TXUaW\XXVVN]ZTP]Z]Rj`PW[PSdYXTVQbXaZS]YQ\cUW^OV\VS]\YRVZ[cdbGZ_YY\bSd^[^XhJ[b[\s^b`WQq`S^QhY[O]Z[\T^UQ\Xc^PQXRV^N\e^WUWUT^UVdUX]TbTSZ\[SQXNOUVVhR]VGWZcXSWTN[YPOVYYaTS^YVUePV\TQPY`TQY]hbe\OPQYXQUOV\WW`TJWU_NYSYZX_VZWbZ]SZRTRYV]b_ZWMaQZ[XXUWSS\[YRfRVXQ[XZOYaTWTXZ[W]N[[\YTU`WZY[RXYYSaTKVWYUXWOQXPR[L^SZWMmV\\[NWWUUM]]PQXLYWVQ^UYMTSVVYW]SUZZZTSU^]RT[YWUXQ_LVWWZcXVR[_TUV\V[XTX\YQbS\bU`R\QToYMTeZa[\^`WTOZTUSUL\WXT[aZ]Qb`YMg[XZTQRdY[\_L_KQNWTZ\HRZV]S\TXfUWYSX]WUT[YY\\Y_WYRQUlZRU^`RWZ[YWZT\YVUSPaTRQY]^VdTTZY`ZYVOMWVSUT]YQ_`SVU[]YUgSZ]KV\\X_[\WZZZYUQT]SQVYXYaa_UX^XQSjUWV^Y`xX_T[XWTTX\[T^_T[X`cXUNQLWVXWR[^VUS\USZZa^W^ZY`RYYVUZYXX\S^U\aXYVUWVW^[cTWa`cXWXUU^VaV\b\TM]VYVVUQ`[RRa\X\SPXZU^Sl\YTU^`cQ^[ZY`TY\I`hUb`PVXWP[W\RZ`\VX^hQ[gMVY^OcTXZVSVZcQe]MVWXX`Q]a_bbUMT[Q^MSaRc]QYc^XWVXXJ[TYWOPXY\]VT`PZWQLU\LY[\XY]JW\W[``\RYZYQ\SS`QT`Ua[W]S_VPWST]SPa^Q_]Va]]SN^[T_ZKUVXXgVXXSMeX^[M`S\Z^ZV[YRZaRUTYR]VXVY]U^dUS]WUWX]RdY[^Y_YZ^]PPWb]RNS[XWNXZOVg]^ZagWVU]_\U^\giWWXW`POTS_VYQR_TXOM]Xh^V]]WXU^W_^VU_RT^WZ\aYZZVR]V`Ye^VYYVXWYV[MXUWWUbQU[YY_ZWdUTZWZUU[^SZ`SPPY]`\WkWUXRQcYXh]b[WQUUQe\U]SWTX[^`PSV[]Y^Y^^d_VV^[XUUgPWRUUWZN\WRU[W]XXZUUXWb^_YXb]_[^S\XX\SOY`jRU\\gUU[YTQ]WYab^^UO\X\YRRVY_RZN\^]UVT_W^VMVU]_\[_SZYRZT\c`YR`RST\UZZ]UY`NSTZQZV_TRZ]UWRW^\YS[[^VLPTQW\\WQTbbUUZcV]W[^YdWT`\[\_bWR\X[VZW[U[U_[^]XSV]VSXdYV`VW[X`PUT[XSXVXWTR\SYaMM[e[[YYO^TZXPWOhTUSYWV\R]X^Lf[V\_RSVXTU]QZ`gWOXf\VWTP_TTZYg\POP[aZUWZYW_eU[a^_QZaWPTV\RVXQT[YWZR\O^Z[RRPZeTTS[aT\aXY_WVZV\aVZ]W[VYNeXXfP[^R\UNS[V]XbWVTVbY`U\VZXTZTUVTYV_ZT\SWXWR[T[dWXWXTYW[U``QWV_QW_\WVRXf\aXNRW[[[TWYWO_gRV]M]R[GV^TX^Ub_T\VT[ZQR\e^ecSlS`QRTOdTQWOS`XXZ]`UdNR_SUMSLX[_`YYbQUY]Q^gfSbYdSVkX]P^c[TUSWXTWJYZ]_\TRSXZUd`WRSX^YZS[VTM[Z^fd\Vb_YUNS_`SOSYYVV[PYXOS_Z\[TYcZZ^WQ[YgYYWXVVYU\W`d^`SXWR`WSQZTXTUZRSSSXPZOZTYXZcsbb[VWm\TTXYW]`aTYSSKTVY\Y]RXOWSO[ZLR]ZXfZX[TWR\[U\PZ\O^kYVU]YW[YZUGUTNV\W[]QS`Q^Xb[Wd^Q\ZVVU\\T\STMU]SP_aT[VTY\VR\]cVVcTOXZP^]RVWQXOSZeO[WSSTXaZ_YYPX[aX^W\\SYVZ[]X[nXSX\XbROVKKURTTPYNXR^c_RYZM[X`[UTdZ]_[XRUZ^TXT\[UWW]U^SZQ[S`caUZ]^`WVQSc]RbPNS]_d[YXQ\PeZQQZZY[kYYVdSU`TUQYTU\aY[YWSZX]UZTV]^^URJN^^`[^XUXTX]ZaP\XQWeXTd`TSRYYQXW[YYUWTW^V[YcX_WYWXZd[XeRV[YXU\a[dOUTaUWZeZXcV\UZaR^NaS\Z_^ZeUVZSNTca]RLapW]VZVYWeXY]Vc]fSSRV]QQXXZ[d[X]TRS[VYQVL\YbZWUWTXMVX^VMT[Q^mOUMaWYUeRVSdY_^XTZbb[Z\^RbRSY[gdVT\UYkTbSb^WU\XQ][[Z]S]ZY`O]U\U]d\TUaUa_`\[WIVRRb^SX_QKXVZUTYWPUTQWUac\T`XO_JYXX`WXaUb[[\SVVZTXPO]OXYXh^VTVc\cW]VWVPVYOV\QTU^_VU_TR]SSYZcYQ]^][TeTU]dTPWVV\KVXPZYXRXQZcTM][PZWhT[SZMXULQX[\^YcYeRX[XPX_PTNVLYRcS][UUSa]\[ZR\TTRRZgTRe^ZZO^\YcVRdOWNPXLUZZ^XZYPRSccb[W[]XSY\X[XNbXXMR_V\RXMW`eQZ[RU[bVYRX_e^RaRVXaU\UW^QWrbcVgXa[_SWR]RX`c`]\^W\SU[YUTOWQ]YVWb]UQWYQcaiSZUYJY^K[V]jQYf_Z]SRZZUPhQNRdXZVZZUZN_[dYRVPSX_`XSdSSVYbgNXVUY_]VR\PNbQSWYbPZZ^a\OZPUX\RZZ[YYY\aUYNagSZRb`[htWXQjVLPhQMWW]TSS^RT`O`YYWZ[^XRZY^\]TSNTY]WW]\ZZZbMJ[YZUTVSXaeYXTSYeRSZ_\`YOWWT[cWlO`UXXYN^WX[`P]NSSZaOUUV]\^V[ZaddUJc`R]X]eVOYSSFT[ZVR\^PMVHU^MORYRZUbZWVT_XSWVQZTWN]`^SYaYea_n\[UdVVU^V\ZYS`[WZXS[Y[RPX`XXScVX^^YSX]W`PWU`^SUZeWY\VY[T_]Qrf[][YXWY\T[W{WXXPXYaUMa^WYT`XYbYVTUUTV^Yj[YSZRYWr\ZVc`\[TWQNVZVcPW_[UZ`WbZ[\SWSTRZWXWZ[_R[\VL^TVcR^TW`WYPPdeZbZTTWSURVXV[VQ_Tc^XS\ZgW\`WW_U[TY^^f\\`\]]]Xb[ZT]^UXTPZYW`T\W]cSfaXPWO_SX\[^S[]X\TWZ]WO`][ZXfXX[VTUVSSZYX[T^^OTUY\V[^_WOVXX]QSVZWTR]SOUeVVU\Wk]XT`ZX\PXSWSP[UXRVWZ\[^TXXY\\^[\kWQTRT]\[R_ZXaPX]Pbn[V\UNZ\`ZZRWQY[VU\`UVXk[[L_RXWW]bT^\[\UWWWV[UHUX\^Z_^^X^[bcX]URZKVWaZV\XTYYVWbRXWXO[UTWWUU^M]^T\ZWP\LPTR^SW`pXSW[aUWUbWZXR[^QaZT_^]TOKe]MWRX][S^U[^X^^TTKT^UXTXUSWUbOQ]PQRYNYVUgTV\STXYc^]ZS]R[XPTSXk\[ZQZSVTXTXZWUZ[\aY[_ZOZ]Z]QY_Wo\p[YQc_\TVMS_\XOLNXMY_\O``YY_[]Yc^L[ZN_UZ^W[WR]W`RZYYY``ZSWXVVX]QW`]^YZ_[[SXQXSVZ^RU[`[TRaSRdSU]]TX\Na`[R]Ne]UabQ`_]SSO\UTXZ]UlQRSTPWOTa_\ZI\Y[g]`SVY\]UZ\]ZQWYV^_YZKPgdcSh`O_ZUcTO]]XVZ`aTZ\\Y]QZTUWXSZZVV\[WZYbXZUQ]_O_WSj^V]YQVTW]]Y`SPXXTcWZV]\XVN\iY]UV\WeY]TT\NaZh_baRTUQ^OXXPX_kZT]YRZ]PSJg`ZXXQ_UQX\U\WL`U\_QTQ_dST`XZOWJV`c\_PQYRcYUWZRS^^WS]STPhWbZSr`PO^eYVe[RRYRLZcUUROdSQPXRVYOa^[_IT[`d^SZZUPT`_Zh[QrQXMZZ\iS_^baO_`WaS`\PdYTTURZV_WdQ\`TP]dc_OWZ_X[WgYfSVZbYW^TXdgeHaT[RV\_RYOXUSZc[ZYWKNW\Ub_bZXV\aONa^OaSUG`XVO^gNaO]MW[X^US]V`kbKWJ]MX_^cWWUS]Sf\\]WRXdVR`_\VPSQ]R_UP[Y[]aR^ZT[XN`PYWX[`cdX_^]X^XZXMZcPcUYZZZO^U[U_XV`T^RcQOXcZY_^\WZUS_^WQUSV\W_]_kabON^jZUa[ZhQX^_URVY\ZiZRX`WV^]e``[P]Y][[VaXTXbW_WUW`MS_\YWTTZU\YXX]f]bU^aRbWVXP^ZdVV`[VQVT`dP`[`XYWZbPZ^gSJXZVWaS`TTWRU\]a_ccXYYYTZXaZZXeO[KVYUVMeZPaVaVVP]gR`WZYWX`YTOcc]S_NR\`\TVW\ncWZ[YYOWPjWU[eZWUMO\XnV_\[WZUZIZQWTYQVTIUQS\UYUfXWW_RX[ZXa]\YRXL\YV_\XPLU`\Yab^Y\ZTVcNZY\YWMXUSTWNXY]ZWVOSbSLQW_b[Wa_\kUaRQQZc^QJhYX\eaVbLVW]TXSXWYS]`RWUcj^\TK`Y_eUUbZbbPT_{Zl^Xe^KZY\QdcR_[XcUZVYNbPT[W`U^`[dVb^Wa_XV^]TbUYU_KU[Tbf[[T_YVXUZOYbX`S_`[Ye\VX^UZW^VOWMZ_RXQVUZZXW`[[`c[aZXV[]U^YYRSSXZ]f`_ZYOZaaT_\c[QV\qWR]V[SU]TQXXY]]X[Ol\`\]ZSUZXXX`TXUURQXPSM[VUUTQS\QSTVUZZSVWUS[VZWTZa]eYXbSaXXYOXUP]XTbTMU[ca\e\oaVTMUQSXSY\U^ZS\V_iSX[^NZ^cYYaQY]UdRVTaSUVV_T[`UXgQ`U^VZUQ_]Ze]jXVZO[XXYZXdaZOSUU[WWY_Q[\VSK[UWS[VWZl_SZYYaVX\UXXW]ZS`X`T^SWQZQ]__YYU]bWVTXRnWQWY]WZcSW\VF]_YXYXXbRUMZJWWSU[QRWUb]f`aXWXS]YXYaXbaZP[aYgRYPWj]PW][W[gOSOi_XLVSU_aRW]]S]_^QXVTQUZXcYR_QUVS_[URP[``V\ZZ^\cOYVTRZPURXWSZMSRQOcNY\\WW[W_YV]ZV_QdUZ_TZZSd\QT]TQ_X\W]XV^XPgYcYY\cPSSYYVZM_Z`XSXW_bXWUSWZX`OXUX`WMcLd\SXTS_TT`ZQX\]`QTV\[ZYWc^^W^]][ZYbQfTQ_YTUY_T_`P\[[VY]^WRZZS[]SU^[WQigbR^_JZZZQYPTbSX[_TYPYOaSGYRXUSJZ^TQ]ZY]^WUS`T__ZSaeXb\P[UVWc^Y[Xa]]W^Va]^Yb[ZfYVS\SQ\Q\gUOU[Z^YNXQVV]b]WcdTURVYYOS]VMXZ][X^OXOSX]PbQTSQVTOZV^UX_[[XRZQ[RaWZTZN_UZRZ\TXXgW[U[^[UdT\UYa]RVPRMUT`[WTTX_TKOVZ]ZX^V_a[VRZQQVgQSX[S`ZL[aR]\Z_[WWUWTTaZRPYVY\T[c\XUVY`PT[]dXWRL_kV\SRSUeTZRHSYTYW^TZNZ\Z[]JXW[^W\ZJ[ZLZWeZV\YW[XVY\\^\U\SYUXMOQXYX^U\XUVYRQYU^^XaTW`caeWT\ZTZXWZZQbRZSX`RVfYkVbZYPSXZY[`fd^Q^QRaTUV_]XXVXS`bhZOR[UX\Y\]ScbZWjUW]V]WV_[eQSYcV[]`QVWRVTZTVQSUZUWeVaTY]ZW[[[Z[[RZYYVXfYUUQZRYZVPVZRMOaZYV[XaO]dfXf_a^[YVeXWbXTX]RZdZXNR\TOU[h_R]aZ\PVaZaX\]`YN^T]XY_bUXaSS^fRMRL\]YT_YY[^X\aYYUUYRZ[Q\V]Y[VKWXSbRST`XMbU]VZZPaUW[T`ZZ]VVUXOT`\bUa\eYW]WWU\QYQ[WaQOW\[V`SLU`N\\UZMY`ZQc`YS^WTUHXa\]_RXTXOa_SUVYZaRPSL`XYWVRN`bsbWW^YYXTZVY_N^RT_VVQSVZUc[R_^XVYP]TYXdS[XZVP]Xa\UcURSdYS]TecZTGU]PhYP[SVUZ`]_X`SYWWNXSX`VZeTYVbWYUZW[[V`ZXYQWVX\]WTXV]ZYU^Z_Q\^]XRVVSkS^VYUYWV^VWXXYUSWQPRXWc\aWSZWS]^jVZ^fP^[Y[UbX\\WQPYUPYX`[XZXS\XQaQdVVQXVWQPTfPZPQQSYW_YW[]][OcbOX]Kb`RTLYZUTS[T]XNZQ_TQVWXYYR[VSYVUXY\VT^WP^\YQ[NYbgO\cRUVYSc`UXPXRZ\WOOYRL^OgVTWURN][Qg[[OX\__QPeX`PWQ`XO`SXRdW[RDWYUfQV]U[h^ZVZUUUVVL\W`_X[WU\YT_Rj\WZ[_dTWVX_SXRbRUOWXP_T^OYW]c]Y]ZWYak_WQVTTWV\R^WUTYV\l_R]TPXbPXN][UXZTWlZ\XVYO[PXXZZc]SQWXW`_WVPZZW_ZIX[V[c`UYZUYYQVXaQYV^_\UXbe[QOS^WWSXVOYQYR\ZXWYSN]TSKSW_N]]ISXVR]YSMTKWWNZ]VX^VeYYUVNR]]\YMZXWUOXRW[S]ZXWZUcXT\STSXY\P[S]PZUZ[UYTweVUQWRaOLcVYXUX]V_PbW\T\UcZTO^^YhW[WV^[X[XQYYScZ]^L^SZ^^R^XPV^XTVZ_[RXd^gYXY^Uac`\X[PU_WORP_a_]TUYYTVUZNh`ZWYTSZTSWQPZ]_R]W\`\RQRUS_a_`_VUTWWWV[]VW[VYaZVXSUUV_Y[a[VSRYPVZQUZ^]RXOcLT[UO[^^WcYQVY^T`dUTXSUPWd\[[XW[_X\aYaS`^Qb[QRY]VR^YPXgeY\RZUYW^_SRQcR\[QVTW[Z\WXW]XSYVd_PYXY]YVUWe\U[W]S\YSY`_`aUU_U`]\NZX_UY`]QP\RYT^`\\XYUWVVUVWVXWXUU^ZZWRW\eWYZXTZdU[dWZVXVWUSc[NTT[SZZT^WS[YWZXYhaiVV_YX]U[T\^cRR\XbTL]S_H^Z[O[O[YRW`XVTVe`VY[a]YTRTXW\XWValXM\T[[R`K\W_^MbQ[[]Ua^[Rc_WWQQOb]]PPR`cZT]\RWM[Y]WcQM`_`\TS]^SYY\TZYWXTVN[XWQ^\Qc\_PaZ`U_b]XTVb[U^^X`cO[_UdV]VMQ[^`VNXQSb]S^Q[VUWYT_XWY[[_X_dZVWNWUXS_RT`UVQ\ZTQUXW^UPZ_]VRpXfWW\]Oc_[VRTW[WVWVbQ`]QZT[a\^VWWQUU`SYWclTSPP\TVYRN`[R]bO\hX]U][LYZUR[WR[[UXSlWUPNZN`YS\^]cVZXYQXW[[URY[UXUWT_]\bZ]M\XUWTS]L]RV[UQ`UgWUVP[]WX[UWXObT_T]Sg[]WVYSRRWYTaaSVSV^RRR]OTUP\Pa`K^_PYcUZV_[ZTXRYVSS[e\YU`ifZbYNaQUYXYT`Q`Va]aXR`_Ub_cT\dUP`]RPaYXYSZe[hRWZW`VT^XTU_aYTai`WUTWSWY[YU[XR^ZN\V[YUNSiU_]`R^U`XfQaZ]XXWS^RY_bR_XWjV`VZMTVXab\X]SQXLaT\OU]Rka_SPSXR_X^R]OV^SaU]QTXd\\fUQd]W\S_^[WZS`SNYV]PVX\VW_UTU\T`]d[U^WT][OSVUMV\_XYaWMW[Z^WZWOYYVZTY[\UU`VZaS]gQaZOd\\]YQTg[^V[UZ]`XXVT[]Z^J[Sg^PNRUS_TVUGUR[_R^QZSe\V_SPXaUYYeR`Rc[Z]U[XRYTZU\Ra`Z[_[c\[PXZVZ[_Y_ZTQVWS^OYO]X]WZbTUQaTWXZSWV_ZQUj_WVY^fY_U^Ob\aZcXVX_Z^VXNW_V_]LN\XS^U[VWPdYRTTMcWUTY`_YUbcM[YQceWZPZrUXVVTXZX^Y[XXZXdTX^VPY]SX]]RcT\WXVSPQX[TXSLW_LZVZ`_Z[ZMY[[XSX[W[zX^WUSO]\XZ_[[UUVZZPSVVMfVVgcZ[M[ZTVTPoWTYYfKW[[XWcUXWU\YTZT]X\VQR[V^[UdWTQXKP_hSJXSTX\\XT[YOJVZXfUYS]g\XWU\X^Y\U\[mUWZVXO`XY[^`PaUTP\TUXX_[KfePS\TZLWVWZ[X[hQO[]WUWdTRVYR`WXRXVUUTF_W_WWXWR`[gUTQVXXMRXhROSbJY^[e^ZSWPRcUWXQZX[[[[ZQX[Y_S`VTY`bbU\WVTP[V^QUXWPN]V\ZW\PYWV\c`\__WVXZT]c]RU^Y]\XQPR]V[RQ_WZY\h]`TUZfYYUf[W\geP\YNW]IY]K]_VXTUSNM^VZKQa[[X_PL][a_TVTYUh[`YYYVZbNdYW^hYbVZV]bg]W_WXZZ\bKTU[VU]VYX]NY\[PRl[aO\UVOY]UTTLd[O\`\Z\TYM[QbUS`VZSI\[LT]XXSNbN`NSbRUQZO[S`QZha\RP[ZXVTgU][Z]MVT^XUOScZfUaWTMW_MTbRSb^^PTS[ZYcUZiXV^W\YVT]UUMOTTTP]R]^XNOPcXWN^[X^`K]f_Y[RUQONZXWSUVR[ZRg_XW[Z[URTLT]][PaRXV[aV]OV\fZ]Y\\\K[bZ_Q_[U[W^[MTXS[TOQhaXXQX\TYOZb_QOZafY^O`WN^TQXX``YV^U[VRV[\_O_ZUaVWacbP\V_ZV[X_X[ST`QYS[P[^U`TU\aS_[_aPV`W]dT[VYSR^Tb^^`Y\]]XWaMTXV_UWOW^W`Y_]^b\XXRQ`[[XY[YUUTUSWQ[VYRZVWVVaaZU]^TgWciNSVSYQ\dIZMVbW[X_I\^RVV^RHWUPZ[S]PRYRWWWT[W]ZXSjU\VYXWSQ[XgRXZbb^YTXRSb\WZ^[F^l\U\NWSYW^YVVUVebWZU^YVh]VSV]WUVXWVZ_WYY_]g[UgeWUcTVXWZT^[YX[YZ\\[eS[P\WTV`Ya[Z^UO_babRc_VWPNTYW\YQ`[T^QXV[Z]`[XZYPN]QSZVSM`VU[]Z_XUXX\YYXX\YYUR^URLN^WP\bS`_e^]XP`\ZS[iRV[QVRVSWXUXW[[KOUSRVeZRPZ_`TWuE\YSQ_XZ^OYUVeWfU\QXU_^RYZ^RVONTQVdaU_[ZUGQZ_P]cdV`Z]]U[\OR\_[OV\Z^XWbZYaSX^\bbaZdUX_]Z_UX[SRVXLZTbTUYU^ZYdYTSZcgeRXXZU[\^WWYQRT\hbY_SYP[XSS\[UXZWQXVUh_QZQQPdbY]bVZ[b_QSWYV_VaS]RRp[aYYYUQZ`\V\]WWWaTYUcM^aTXSUV_a`WXN`d[PPVZXW]YScnVZVIOU]TXQYcKUNY`^U^TP_ZQWaTaZ^SRXUVgZZVVU[TSWSTYVeYU`fY\[P\[U^[fPdRbUeVX]][_UgSYXbTWbdRUXNS]WYP[U]M_\NQV\W\`bL\I[Tc^YmZYYZZTUYFNWTdSQ`\XbQaQaTYYXYXSN\Z[T\YNd`ZcTbVZVYgjZZcaZH[VR`SN`cP]R[LR_WL]YRZjP\]\W]P\W]YV[R[Y\[d]XPd\bVW[Q^WPRZVWWW[]cX[VTO]d[\ZRbSSVS`]^[SeWXV]YT^VSZSdbRtXZVRYh\[`X^[]SRYZRZZX_cVTU]\WabSRPPT[WMLU^_^KU\Ycd_UXbWZ]ZVl\V_YRWVU]UX\aNTVLZaWUQ^[UUU`b[[biW[\]\IT[VWRL\TUTSTV\U[S^`W\TYSUS_\XUPXWY[[]bYa`Z]WXbQSQMTgG`XQ[hVT]fdbN\SYSMU[QVWZUZWX[\ZRaQYWXY][ZWV`[XUU]IPN]Z^YUZZSUTQYVcZOQFU_TWUL]XmT[X`T\XeZ[ZRVlVV[XT_]_WVbZZUNXVS]aTX_]gT_XYWSPQXRYZTkaaTYLS^TZ^XVSUWVZ]RXWW_WUZ_\^SQTjV^ddUVTXYS\^YYcdWORXiQZS^P\iZcTWNVVZ\dJcV`RTYNa^T]^RZfYHYT`X^S[TOa^Q\JY[Q^lZOVVSWOMeVKSfZSXYZVaW[OU]ZYTXZ\Z\V_U[Y_R[bXSY^ZZVY`XhP]]VRPQQ_TZZOX]YS\RYT_[aXXUgVRWTa]OZVSRYUaZaW^d][ZVTP\^VZN^VQcVPQ[V\XPWT_R^MNa`Q\[U\WXTXU_P[ccI`OI\a`[ZLXZWL]Qe\YXWaZYWQRQ]ee^WcWUKT]]^[bZVZR[ZZU[HQb[\aO\[TWa]Q]Rd_TVSZXQUUQg\PZaYMVPWV[]XT]]TX[U_Z`]^\UMS\dSSSeVNV^a[[T`RUTbWdYX_fZ\^XUPSdYTTUZ^][YUV`WQdUOWROTV\QYKS]bY_Z`SU\XU]XVQ[R[UY`WeSUREUZUZO[XW^YYXZS\HSOYRYVYP^UMZbSKcNQZ\WQRYSOT_R\aTcZ[[WZ[c\YZX[[c[X^\\_cWTZUTV\ZcMVQ^URZSU_d_ZQb^KRWb[W_]ZZRYUd`S=`[VY]T\Y[Pd^]_\Na[_WYL[fTYY[ZW`a[^Va]SRV[cS\b]QU_VVYW]`WRWTW^\eVZdVf][VWVWUU[QW\e^YaVaVZX_Z_P`VRPRV[L^_\U]^[U^`X\\]P_UUM^`aS[YTW\TVT^S\VUaQeTe]VRP\Laa[XSVT]^ZZSJW^eVZNeX]L`iSV\XZ_ZeTNV^c^b[LWgYTXTZUXR\daaTe[YZ]RXUR]RVXO]XSli[_\]ZiX\TY[Y\U`QVeW[`T^VRSVmf[aWSOZn`X]_WX^[Z]PbSRZSZaUX^QZbTQ\UZd^Ub]b_]TVQWY^SWXO^Y^QR[UT]\^LdR`KUOY]VUPO^XaUcQ\^W]\PS^VOTn]W[]_ZVVWTXX]_\e^aUUTdUnTTWW\VYX^]QScUZPcT]\RVZ^R[TXUUat^U_WQWVUTPNZ_ffY]XUZ^UR_b_VOZUVWWQ[bO[PeSZRLS^X\SOYZS^YPYV[^WUcQS[V[[^_VTXLVXN]OQT_Q[_YSX\ZU^T]XRTOeUbR_N[UbS^V[U_XVS[O^VWZZ]UZU^TWZ__WdR^V\Z[VZ]cUY\Va]Me[`YZVUO]a^\]VXW[f]Sg[SYl\X[^OaTW^U^VRY`XUPea_M^WXRLdXP^TlSSZ[_`SX_`XY\U_cVeaZWM_V^caTc_a[[V[d]PR\Y[f^Y_W`\ffTa`bXU^Z[]WV_XUZSR[V\V[R\RqTUdTXYTXTij`]T[[^XZT`NaMWWWPXZ]TVU[VV`ZXUSSYWWf^YS]WXb]ZaQciSOYURZVTUaVPUMY[a[YU^_ZcTTWbbRZ`WM_dabS`dU_SXYT[cZ]NXXW^TMTYWZ`RUcR^[WXZNUUS_QYaRVXWcQRYQeTZUcXa[e_V]\ZORTdN\XXTZW]Y[[PZ]hX^aVRZ`RZZWX_UT[\[ka`Z__WR]\YUY]YZYQOUZdXYc_[]RIcVWVUX\QVfa^TZQTOaWVPXfY\UUaa]XWIXQUZURPOa[QN[\j]L_YTSaV[TcX\jZYa]idcdYbMZSVbEGPYYWZUQR_d[VXZaZ[[^SYUcbYjOXUXXZ^V[XZ\SmTRZPXUV_S\RZOR\_L`WS^adZSWX`Ue[_RX_\gYY[WXa^W_O[RdN[ZRTZYY\Q]XW\[Uc_[[NPK[PS\VaPX]QZRZYWc\aSYOSWe^TXTRMiXbWQO^YS[TW[WV[^[R\]X[_SX^WbTWd]T^[YU[W`UT[Z[Y[]P]X`YW`VVXXP`aVYXX`R^RUZ\XTg[RWY[XVWUZK]TWhaU\bRVYTZVUTR][W^W\\T]PQSQXSYZZV^Zd\YXW]YVIZ_\`UY\QXeTQaTVUWTKObRaV[`SY_TTT]XgYR\QT[sb[[SaV^VVYWXWVVaV[XUWe^W`]ZY]YYRcZTQ]XNQ^[XYVZ[WaSS_TWVVbLUV[aRZSQ[WY]^VYYVV^SU[RWT`VVX_S[^YcT`[[VX_TX^\^VX]f^TKX]NVXNVZWQWR]SUX\VaXS^WV^V]X_UVO[^UT^UQY_a\[\[WXY[\VW\WWOZV^XZR]VZXW^VeVY_Yd][eTSWYTbRaVMWVT[VS[W\W\UTXWZc\V_XY^`VYX^[SNS]S]hYVXZVUSc^VSX^US_[Th[QLUXhY[_YQZ[[\]YVYSY_S\SY\WUebNZ]UQhZYZWWZ[UWUYY\TUR[c[WSYUW\V^UWbZSUWaYcZZ`_^XSTV[NR_WYU\Z[^R]ZZW_ZYURWVVXY]RXYYeTYY_UX][]VVQUNS^aZPLWUNi[]YTUY^ZYWcVY_`RVZVa[Q\eQY\[_P\YST]YUU[TSVQZTX[V]PVQ\TV\V\XTRX][XWU_f_^_WOPT]_]PWUXXZS]X_XUO^XZZZbXYYRTVTQUOOXU^X\]]PWZTJWbX^VYYV\VYW]WV__PVZ\X^SXQWUYW__Q\_WUjPWYXVWYYWVXT\XXVZ]RSU\^ZYXV`[ZOVcY[b[ZUkVOaT`vSXTXSZUReP^RTa]Y\O[ZYhVN[XR^TPqcXSUWZbTcYWRUTYZUgVR_WW[VVVV_U[ZPV\UT\\ZVYSR[S]Q\XZTZSXXUTSUMdRSQWcUT[Z_\^fdaUVjbUXcOUjWV`PWW[RPOi\bXXQY^_XP_TJYQZ[VXSYIYR`]UZXPXZl\[dV]SXQX]UScVMWRTbQ`XRYX[PSQ^QLV^PQXVTPZMhNN[[\S^WQY[dZ\RgS`G^b]JP\f^ZS[UbXdZZkSYl\]U]IW`Y[]\WcT[UZTXYUVefSVZ[WYOQVSVZWPTOaT_ZdTY]g^TW^eTTaTX\\\Xs^WUXVWSR]ZQSWYZfZWWd_XRY^Y`WWT_b[gWPfPOYWeVTg_JXYdQU[hWY]\Z_ZYVUXfOTWTSU_UWRZR[XX[[Y^]\^U\XQcZ`PUUVZQR[\`WbWXU[[Y\VZ^^\SZV[^TRZN]PT_W^[]LcNWWd\Z[[YYZTYTKVNQKSQ_UO\UUQVbZWXZT[_U[TT[jTX]XVZMLZUTUXW^VSV[bRSZa`ORRWTX[VNHe`T^NZOXVVTSU_Z^VZM[SVY[iOS]YcX^^^RU^YVQ[PW_SUcW`OQW[\XZQVY\W\VX]d]XYP__]VYUh_WV\UZaW^UU\TJYZU\SYTV\\`_]YWY\\UUZaYNW\YYVYTXY]TO\UUX_^V_^\`aYa\b\ZN\Whie_UaZ_ZXS[VL_XIOWb^VXbZVSZW`OQ[\]Y]Z]UVRYWWQW]T_]Z[][YXYaUTXTZXMTY_ZTM[[XY][QUYZP[T[S]ZWZSSUX\QZRSTQV[X[Yn^_UT[\X_]ZdY]OUWPVSYVTRSX[SWZVORYY[_[c^k`Wd_[X[\RQSRQSZ\NQV[XR_TPURWVSYZPROOOZ_XPVdSSTbSTWaUV]W[V`\Pg[Z[V]Q^YeQZ]\ZVVZSZ[VW\[\[WQ]OYP]MUcZVeSXa^ZZb^Zb^[TXYXYRZaT\_a[NTYX[W]Z]\Uh_UUSaUM]YcQTVS\RbQ`YQV\]]OS^\ZPV\SVQZSYe\YLbO_TehVQ`UQVRUY[[fOQXVWXWXXWkXX^XTY`P[b]cSWaRT[WVaYebWU[PYW[Y^ZUY_]VZTY`XZf`QT`SUXU\TUUWR_TT[RZ_aSYZT`SUSZ]\QSaXPT\XVURVRPT]\TN\XZXXVZZWWbZWcUZZ\\UVKSZZ^`WXSlSU`ZTWXaV^\^[X]SXVXU_K[[WTYbaPUN^OU\[Y`iUTVV]eVTWcT[ZYXXSRSS[[ZXRQa`bWNT[^S^S\V`T^P\ORWL_[WcLS`LmbTTY\QVSZ]WUTX`UUNVZS\TXf[[Uf[WdRj`ZaXSVZbfONUZ^\WYeUQRR\kUWVSNZ]XSXVV^ERVTWcVb^VYSUYYU[U[YYTP^`ZMg]RUVTWYSZM[KZ`SZXgd]Y[YXXRZTTWpVUXRWXYZLNUXTRZVSQ^V\RaSWO]`TXY_ZV[XSTTZ]TagVTWY]TXdaVR^]cZTQURZT\X\]T`ZW^]WNUZWS\QZQ]QPV]TSbYYUJ\P`gZUMVWQYXSWHV]VWXRSbOfSYVdcRaZP[OWQQT`[NRdUbRdZcVS^e_[^XYUO_`abY`VX]OM]W[g]JXZS\[NUK`oWTkWRTMWT`fW\ZS[\WTXYQJ[T`^mWV]RQX\V\ObYZR]^\V`aNW_]bU\QV\XNZfS`gRf`NX_ZaU^^ZZ]VIYTYYVV\aW^PUXXaZRYRPWM^c`i[jSdSjaINZRZ_Td[[Vb\_^XZg[UP\jRVcTWUJTTa]U\S]eYb]SYVTQT[W`V_XUXTXPOWX[[WTQXWJVYYpV`Z`KUdVTSQaUVR[[XOWS^^I^V\ZXKZRMWTV]X\Rdb_MZWWWW`fVc[]abQZZ[UWcXZ`]TUOJYUlP]ST_P[]QNWNf`[M\MYQQQN]YWQY]ZfOhc]OUSYVVN]WUOcYZO`PcaXdUWZ]\YWYOTPZSWWPKS_XL_XXTeWIj\ZRhW^ZZVVLZT]d\VRV[XSSWVQ^\]`ZYWc]_PWSXbVV]Y_VXXaTTSRPS[XRYXjUUT]aU[WXZQVV`[WT[W`_]P[WhRcV]X^OjXT]O]UKRXjOWZS\UdS_YVP^WYOM[X]YUPTSQZ\`\TS\T]TXjZPRXVTYUXXQWQTTS`VVaZ\_XhXQ^a^\PX]]X^\]TZUZ[XSS]PQQX\^_\W]WVSYeW]UMWbXRS^\WQV[jOMWYXXVV_XTW_bTU\[R`dWOVVUQTQY_]VWTUYWX_^Z[SZZQVVLUT[U^]V]S\_UZU]O^bNNVXVRZZT\UT^WQVRJxCYO_V]WXRXTRXTb`Ta^[WQ\eWaVsOW^VZYPR[bU\_\PZM[WTRXWVlYXW]XJQV\_SJ`\TQZ\WbSZQ_\[\YYSSJbXb]U[bXLMUSSX^\Rbb[hVVX_R]WYSZXWQQaZZORM_XcL`YXTbg]UWk]XTQN]bUQ[UXPWPYNYcUW]WW`X[WQ\XWaMoeXOV[ZYSVZ]mR]`VWaZSZPY]cXaTi`iYWSUVUbgW]ScNh[kXQ`_Y^h\lVZT`XbVRRa]Vd_cWMOZ_`WV\cZT^XVeYQ[MY^Za`X\QSbfb`NXVWK^^e`]``RTYZ^Z_a\QZ[JiWVSVQf]RXV\ZU[]`[Tc_]\lg_P]\k\UXNRUYXjdPof^X\WUXcVMTV\\JU`_PWT[aMTcUYRcY\[NV[e[ZYR[cY[_ZdP]LWbYtT^YLZ`ReUW]ZRSZWWYaPUT_V_RXQiS\ZQXq_Q_WZc\VTb]ZVR[Z[U]\ZYUWU]^X^\ZQZiQdZ^VOWS`X`[ZXTY[I^VR_aVRRMX_CVbX^\_LLPXa\MZOSZi[XTG\V\UW_WOZW[STT_dS\UePaYQ`^SQ\WUWTRaSZdTSYe\\SZVX[TW_^^[TYXUR^SNV]VX^WTUXVYYZVY[PabWWSW_RYVbXZM^X^RWcY\UYWRV]RSfWY_UXf]S]VWcUXW\UbS[[\UVcMLYG^U[gXW^[Z[MV[UVVbcVPWcQOSYQZ]QMNUVQZ^WWZfXYV\[cY]aWYK^]K]b\]RWXZVe]U`UR^`fa^XY[gQUUg\UZ[WOSX_^dbTQWIkY`VYV\ObZLK]_QMVQXN^Y[W^OLM]NFY[eTaYWc__`]Xa^Q\_TN^TZP[[aU[ZV^TWWWS`^OWY[YVfUVZZVXQWPV^UVR_VW`PYVZVa]P`UW\RQSaQ\n\WXTRUaNPQZHWUXSYPX\ZeRUYTQRQ\YQ_]aWY\NZ^X\YUOcYbPTaX]dVYb\d[\b[SUWNXNZQ[U]WURY[U^Y^[PX[STeUMaNZV_TW[dRReZeZUeTT\TYXRVUYWY_OYQXa[P]UWUPX_]UZTUU[`[X\VZYQ][ZSQWUWWSZT_U^YUUSTi_WXXZSVSXT\Y]\VPSYV^ZaPW[_ZZW[U_ZTRVU]UX`WYYa^VUX[]_MWURY`[VX`[WVW^Y^X`_X]_[YWY_YZUMY_cX^UOY\VUaZZ]WZWV^[]\_^]`^TZTY\ZW]Za]Zb^]YSPW[Y^X`YZYV^_YV]X_aTVa\WZXQXZVXVW]XZea[XWXR^\UgRZWWZdQ\Z^_]^]aVVV[[YX[X[PVUVXYQYZ\\]cR^\[VVZWUVW\^aWVX^VYYUXQ[U]acYRX^YZ[\R\Z^XVX_T]^VWYXbZX]R]YUUU\Z\VRS]]_[aX[W^Y]UOTVZ[\XY_XX\\_V[cYS\TXaTXVYcSZ[\[QVZXQaXWVWX`VZ]YZYU\ZR]ZRXTY[YUXZYY]XTVTYW\X`^ZZ]ZcXXXUeX]_VWSVYYWS[\V[\][\TXVbWXVYX_[UZT]V[[]V`X\ZS[VSbVVTVWTPZRaZXSV[`_\U\ZWUW^X[KS^[WWSLUUURY\XVW_kXMT\XZahWWQ]]\ZhnWYTT`ZU_VTYaWQRX^WYbYZYVTUWZT^OV\TY\Zc]kUPUZXSMSUQ]UUYXUNaPV^^Y\`VTZZUPh]WY[RT^U^WVVY^YYVQXT_T[V\YTUVXT\T[SRZVZ]\ZW]WXSRYZ[faVYK_\Q\\TT^^W\W^daeQTOSYWPRYV\ZU\VU__ZTPZ\RQWaXXZ_OYVVZbWP\UPRZT^OYRXYg^aZ_ceX[NV`a_WTQXcX[RU[hX_[RXaYSYa_VW]UTVWW_XZVUc\YTRWYU_\^XXW\WZ\RYSVRZUS\VV__\[XTZTQW\UaYYc]]WMU`ZQaYa[PV\V]RbbQZYWX[\U[RX[YZUVZZ[`[WQ\SVUWNYSVQfZSVT]^SZZUS\U_SUTOZUa_`RVbUPWUVRVUSUPiYY\YYYYX^V\^r]XXYY[R[Z_WSn[Y_WU[V_SSXR]Z_YWTZaWZ^XaiMRaWNVMNSWU^Z[WX_]OYNVW[]]LnMeSR\_XWV\_RWV[UW\TZWT\TOZVV[Ue]h\ZVSjSQ\XX[eU[Q`TVOTOYXWaSQYUYTPPT_X_[]T^UN[N\RYUZQ^PhXQd]UYT[\dWU\aTf[UX^UVR\a]\hVdV[[YW_\\WUSW]URWXOSLVa]bLbW[aW]YVLU^YVQ^[O^KU]L`X[ZaV\XRSVZXZ_UZV\XQ[`gVZ`eVXTWTSTUYX^VWX[`YYVX_VN_Q_TVXbWPL[TP`RZOTVWWU^_bZURTV]W_[TZTdgPlPW_XL]^MWRTX[^\Y]]Q_XSVSTNZ\X]ZYTbTV_XcVL]W]RSZTRZ`\`OR]\SXMVaV\\\b^TS[^PUa`^Y_\VXNWdZVV[[TWZVXY\UU`RSSWbNXP[NT`UNaT\SS]UVSOWdV`Uc\ZYdUcaTWT\Z`Th\QX][dXZhZITYU`ZS^VWYTPLXV[alTX\_WRX`QPTm\eiZWUXVWV[U[S]]Q\gaXRMcQWSbTXVaZWP_[VY]i]]KW\`[`Y_YRXWQQ]\Ye\MoXSZ\\X^UXLZPOM[[\X^UTYX^d^XhY[TX\]_LVYF\TU[X]c_TQU_S_aTPV^`TXYWXX]TWNXVaZSWYQTUWYZUc`eVTTSNaa[SdX\]_VZQS^\db]dU\MVUW\R\ZWUX_WjRWQb]WdRR[ZUYTgW]QQZZZPPRRlbWY\X_VWTbYYQXR\bTUaU`V^U[KVW\`JcW``W\XJ]ZUU_XYWROZaPWU_UPacZTYUNXNbWW`ZUXLXQOiYYWW[UXWcad[SWo[TQY[UXZVVZWVWTTWVQ_OXRUV^aTTWP^R_XT\[UUVWXVWMW\UUUSc\SVRPbV`W^XYTQV]Y[Z[UVeQZ\L\Y]\Xc]NUON[TTX]Q\c\]UWXT[NbTT[\]YWSbU\V`WiQ]bVX^O[VXZY`NZ\VYUYWbORVZ[bSRLZ[MVFX`R__O\[VT`bTWU[VVS]cUVQdSO\XXVWXOY^\]VUVTj\XfV[LXNjVZSNX[SVWWS`_X[c[^ZZ_YVRNV_YeZW^\X]V[[\RRLUT_^WkQX[VXSWVdW\_ZcS_WUW\UTX_YN^`XZhZU]RFRbR]ZWTUUYWPUN]`SUMUYPZT\R]`^XXVHLT\[\KX]R]]aNYjTWV^[ZWZa_YUY[LS]Yh]TZKX[WZTTKWRhY^OTZ]XYO\V]WUYLY]eYSQX``YZVM[PXPRcbdQO]cPbT_[OZZXYb]Uh]YSZbP[ZYVVWRW[XUU\ObSSaNPOVjRdcVZXR^YX_VYQSOZTXYUJPWVVWeUYXaZ^aNYRSSYQW\XbNZXRSQRMV^]YNS^ZWcMTSkXWVSO`[S``mV\W_`ZIRWWUZWWTW\bY]YZ]QQZRiVQVU`Zh[PSTO^YaPWU\V\WYQ\YLQX\dFXK_UR\[QgS_Uf[WYWRZ\YUYUOV]Lb[[\`bYR]R[`PTWQN[XS\XORW[fPTUT\U]c`OZd^YO]XTbWS`P__LTZSWUY`TYVTXZUXTRVNPWWZZ\WKEcU]g[RV_W]WaMVc_^`WmNXbVVV[n_PVaVSY[R\Zc\VZ^PRLSKYR^_QN\YYcXVOYVVXWU]PWYUXMZ_USWPPZRYYXZP^]RYOZWSRY^RdWYV[^`eQ]T_ZX^RWYTYFSV^]QVVOZa\S[Z]aQXe\V`jXfW[ZcW]\YQQWPYW][V_[_YX]RYQTXS[[YQg`WU]MfVaR\Z[X`WUWR]SQXjW[]aWdVW\Z_VTO]XZ[W]PTR^fQRZ\bZ[PV\[UnZRdKPVS\Y_V`bSYWOVQ_Zd\VXWWWaTVWWMRT\TZX]eU\UZiVH_^^lVYSYTXX`UXcLTTWUJKYWWVUf_T_U]UPWWWO[e^ZJZVMWVUadVTRXW[WSNc[KaMUZYS[\W[S^^XdaURYZUZXXRZUTWaUW]eabaTXQ]]VXTXP\a]c[VZZ\cVW^[nRRUQV^\P][YUfYQ`YZ]M[dNbTZXVU_UZYS\RUNXTVZQeRVXLbLSRa^QXXUU\eTjT\UX^STWVZYZZeXRYWORdKXP]ZYVVXUV`NYRXbZYiPX_WdVU]SZ\SR^gVSL\XVXY_YW_]QY^^VRVWSeS_[TRXWYUZScRXSNTOQ^`V_\m^TZ^_XtMSZWQ^bXVWZaWTYPWZQVb]UUZO\_gR[ZQRRXSgX\=Q[M^u]YYYPa^YW^UPULK\SJYYQRbPSYPWROSVX^M]U]^N_cacUUUXSe]T`XNZHZ[ST^R]\T]Y\UYZRZVSTX[\V\_QWWa[ZT\\TXTN[YWXYZYf\RUUXYWeW\VZ]\SQXSOXYXZY[RWTWYX_TWd^]RXY]XU[SVS``\_Q]YY^\b[RYWWXXY\bY[[W^WT_RS]ZVWUYXY^XZV_TbVSVSX[TlTg`WY^ZU[ZVT[`VR\YQVY[YQ[T_YXU\U_W\WVZY]\TT\V[UZZY\^]VS[W][UZZSUXnQWXWYXY^Q[TXVU]\aRTR[UUUSZOSXSZ]`UWWUU^TSWXX[b[SgYY`XYYTYZ[RcXXSVSTWbZXSQV\VWZXRYWW^TTX\Y[X_T`T_[WPU[VddSZN[UYUTbUT]YXUXUWVUXYU[\[[QV_cZUPW[gUWZX^UTURW[VS\U[Z[XY\VVXPU__XUS\\YU_WTUb[SYT`X`]T]]WZYYWR^UV_^\ZZW[VVYSWWXVQ^UYWZ^UZTSRZYXWY[TUSZaWY[Y_[XVVUVYYWU^[\VX^WXXb[UZ[\Y[SPYWVUZYWiVPW[T\YaZXZY]ZQUXPVZZZ]UYRTUY^Z]VYb]]TYZ][XYSXQ_aV]Q]XT][fYYVYWVVZYaVY\[`Z]_UT`[ZWXUWY`UYWbU_UUXUX_QmSh^TV`XW[]VU\bUMZWQ^Z]XT[W\YXWZXaW`T\YYZT]U`U[UYXV\a`UV]YZ\V_[VX[pXYW\V]X\W]WSWT][c\YO]WUXT[PYZUX[[UXVUWbTUX[ZZbZRcUW`YWWVRW\PdT^VVVXW]]USUY]VZ\UZYWV`TUV\ZU\]VXSbZXXW[XcgRXO]P\TSeYT\[\XVWUYVWYVY[[WTWbbYWUYZjWZX[]XQRRVWVW]V\Ta[Y][VYSW\b[VO]YYS[VUS]ZVYTYUh[Zb^T_XWYX`XZ\aYW^X\XXZTXXXVX_QZWYZUXTTT[XWWW[TXU[`V\vQ^ZN\ZU\ZWRUXMX^KYWObTVL]PV\[UVPWXU_^XUPU\Z\SSXQXb^]VVZ]XQQ]XZRWR]VXSKWU[aWUP\V\WVV[_PUXWcV`bWN]YS^MVJOTUH`XkWaVUdKQ]SXkTTaWh\UZP_JSVQWVQUL^Vc_UdXOh_W[S\`\SXYU_ae^STQ^\KRP\Z^`OX][WSY[UTZbXeWO`XO\YXVYUTWLTY^YXVVaR`de^^[URR[[WRQSOd[WQVYWVY_a]YU]RVXPUZ\^\SYMMTYVRU[PPWXbY`S[YTaXV\Y]TcPhpS[]UUR\Y^\WN[SZXTVY`YVJTU[TRTW^UQMZ\WYaU\^QSWYYceIMOSPJXVUR]]L[YNQ[XZQ_^U[UXXZU]T_[TW]_WX\Y\WXX^YTUXZXWXV^]X]USWTg\VS\``^RSRXWXT\QTe\SX[X[d]Wf[RZZXdOVVaVS]]ZUPOU\][XaY^UXa\\[^RZRQ\bQY^YVXVS`VLWUj]RYQUWN_\Y_SVTbS[XO_ZTR[TY}TYW\S_T[YURSaWTS[fXQYTYYVdV[Xa]ZRaTZ\ST^[X^VSS_WSOQW^R]S]QV_\YVYcV\PUARV[^OQVTZYMgZWUM\W`dN`P\[TQPMVX^P[VOPZYVYZX``NgNHU\MXX_bY]jVVWZXO[^ZWTaR]R[]^PXO]^TZSNNWU]T^_]UMNV_cMV]]dT^T\VR\TVXcUQYK[baVX]\UaWRaWUX[cSOTTYTWVWOZ_S^dcS[VP__bRZVXOWdOWUT\][]ZZbbPlVUNWMVOZWf[VSZYSKYO\TMfR_SQRU_WT]]UTU^`WRaTZUV^RXXeQUKY[SXWOZ\^bTPYW]Q\T`YUWRPQ`^Va]RSgX^V]VYQ^TK^]XOVY]VLgR^S]N`bUWcYacQUVVZ\mQ^WV]]ST`Ta]XUcS^ZXQTXgJT`URU[WT\_TTbV`XTP[YYdX^QUVWVX[`\_X`R\]S]YPVWPaR[N^_NYS]TXURLTVNP_WNL\W[aZaZS]SbTVNPXWXUY^[STSUZORX\PRWXT]aQ_QQZRYTT^VTWZ^`XV^RQYTXWWXUTQXa_XO_W]YfXXXZZXW^R[ZUQ]cZ^S[RdZ[b\MUU_X[XVSUZ\Vc]ZOX\^UU\TR\RU]aXZRT[WZ\aUWOVSXYQ^YU\ZZU_d\SS][XUUZX^VhPTOYVOVQ^cd[YT\V\a^T[SU^aPZ`\ZPRTROSe\SeV^YW^\TZ]ZVTSjWTQTTbZ_SUY]SU[R[VW__gRSZSXV^QTSTYVW^Z[S_SVOaQUWXa\Z\XUSXL]SXVTXXY][WYWVV\VcWWYTXU^WYWI]LVXYSZRXXaZN\XXYFQcKbRYW^UPWYVdO^]TZY]W]kS\M\XSR[VWVQR][deXUPU`XYYVWWYUXW]VWY^YVXQbPOfZSWgZb\TWUSdS\VUZY\Y[NN\O[Z`[WZ_XW`R[UWV]YWRXPWQUWU[caba`^U`YZQXaO\bRZ\ZLXJUVVcTKZMb\VRX^VXP[]^Y[Tg`[WZSX]SZWZdRXYS`XRRQc`XYSWfXVU]XK[WTQQVVXYUebZXY]YP\]bTXOUZQXYTZVSVgQUUZWVRa\[Wp[`\SQWd`RZ^[cYVV`FRVW]UfY^O_Q`NVZMWMM_UQ^]WYY[UV^\jTZWe[Xc[QTUd\ShVZWYTXRTTXaXXY[SO]TZ[af]UZZWRVRXRp^ZROucXS\cW[WUUQVYbXSUUJh]Y^S\]]gXRZ`SU\SUYcP^eTVaeXW[[YVQQQRiXY\`WWUVLUlZZSfZVXVYZaPRUQPS]\\WV\Q\PZT`jV^MVV]UUZW^USYT`R\XU[YZ[WbZU`]a^X^X]U^VVU]KRWW]XX[WPXY[YV]W`chW]_V`aW_YXfM[VWTP[ZYSUVUYTaTVOh_VU^RUUQW[bT]VSS_ZZ^ZeNTWcS\U]YUVQNRP\XVRY^XX[XQ^TZRV]ZXV]QY^\Z^\VU[_WV]T^YY[`T^UUYSS`\UYRdMY^\_XdKSMX^U^WW]YSYYWV^YU]W]]Z`PaNYYYYW`XXOQ]P[^QXXXX[SV^YVYTeRVX\f]\bZeeWVO[ZcacXRZVSa\RY`TXTS[aUK[ciY`SZSaZ\SWY[UXT`_UU\WPPQY\bXcJXU[YS^_[^Pa\Zb[S\ZU_ZQb^JeUOdTRXVV[^RcZZ`UXd[VWWYdYWPUZROX`VNSZ^QR]S\SZcd`XZ[\lTWZWL\RQ[XOW[[a_^QRTSTN]VUdTSOWTYZRRf[]Z[RSWTYZfUXQWdT_XZS\WR[UVUTad`fYRU\]SSNSXYaUM[iU]YXh\R`Te]T]SVPRYP]VfaaNUP\^[WbTh_WjZS]c^`YRe]V\]ca`cWVYW]TWZXRg]MPaSW\]U_eWS[`N[GQ^Q`^[TdXZ\[YlWVeR\QY]RZUWXOXVUY]V`iWVRiR\]\b`W^YW[XW]RTdU[YSUTX]R`X]YbUVU_V[dccYV^^QZZV\\[STRYZ\XXd`YW_TMSVeZUTX]Z]X^YYVY[PblZYoXQYVP[`[Z[UfRd_NUO`VgUYV]\QZSWZ[`^]L_KeT`a][^N[SL[Zc]gRXX_^VT[R[dVUc^\Y]Z\bR[\WYLYUN\UI^_`S[X]O]gHbUUMSZ_WTNPXjTVUYVTV]P^XWRR[eT^NUZSY_RLWV\`ZUbSZ_W[S[kW^Y^VYY\dhV\_JSZY^YaYV\V^ZU`aWZ_OZOSUXcXV_faP\a\T\_dSK]V]SUMiXLV^VRU]qV]\\iZaPU[OUZVU_O[T`Z`N`ZURVZ_^V[V]dY]NSRYVJXQZ[MT^ZY_bX_]TVXkWS^`eZQaTXVZVXYPTSgVvV\MPW`[_WX]XSVP[ZXXTdPU_T[]aTU`S^\WQ^fNUVVa]R\`\\\T\ZUXXbL]NWbWXbWSaO[]MXObWSWV`XR]]_OVWVaSSTXd^\]`RS\_Rc`bVOWU`lR`UVSXTWg_[TT]U[KU\[Y`iWaY\^QW_Z]Q]\YTOWVT^hYWXW[W_\Y]UdVYWYM`X\ZZ]S_Pe^YUTSUNWcZQaNS_U\bWZXUZcVWa[X`cWPTT^]e\b\[ZQ`WSgU_VXWZQXNR^\^S\VRW]TQX\_Y^[V]^QRfmXUSaXeTWO[VV\O\Vd[VZaVa\[W[SMaXW[\ZTTWTRd]]QVR_V\XUU_ZVYiiSXSYWUcb_W__TR^OY]^WVV[YXYSWZbPUaWXUZZ[Va^TSX`[R`M[YYjcXUWZ]U_MST^`]^WYbP^Wa[nYZVcZLXYXYVT\_i[RTXb_R[TJYfYVM\[JUOT\\RZ\[`Z\`W\^WNW\V\cePPYQ_[QTNU[]_P_W\\UMZUVdbbUqaUkZUa_YTR\^dZ[RWZRWdTWXX]Q`T]QjZXS`[SRTQcbSVUW`\c\ZfUSZ[W[b[mVVSiT\Y_Y^TRLdT\L`T^WW]`Z`RXZUP_hWaZ^_bZbTYVWb]eYN\XaV\YV]_\^RSNZV^\[TYRRSYIb^]WV[_RPZVWbOW[]a[UZZbaMZbakNWhYVUZL]\X[VVZ[V[ZZ^J\Y\XTS\OZ^MW`de]ZVggLWWg\g\YdSTQXT[dYVYSlOYXORgPX_ZVW]\SfhW^S^PQ\c\lWXVQTQRg\VVS\Sj[QY]YsZ\d]OVcVYUYSV^SVTYO_Z_SYU^X^`T^YUXTZSX[VNYHO[[`_[VWjXOSKR[QTVTTZW]Y_]Y^TQ]S\RSXUQUV`]S[^XNU]O[SaROXX_U^YSYST_^X\RXS^OQYS\_^cd[[ZdLTVRW[PYZVXVXUNIV[UR[Q\YmVS]aVXOcRQ_ZPSRVT[P\XO]UPQ\aNXYh\X[[VafY`\VTOaRS[f`VYT[X\YVRXe]VXYWN`MgZ^S_XQ\]`^\YW]_T\YZeaOYXNXPSaYVPdZ\LRPQ\[[XOOZ_WT[f\UTTIXVXVV[WZU]VR]QVX[S][XRP^OaO\\ZkXZOZVQTWNO]mXX`WWNU_\TYXGRV^ZY^Y`S^RZ_cNXYV__]S\ZQX]YVUYT]\SQRMVQb`YW[[MV[WSM]HPIK[M^^cRY_NY[eX\Q^TWl^\b_ZWPY_\]T`]Va[`cNN[P\R\UT\YObaOQS]TVSYT]\SRSQ_XXY[LWUSX`gW_YV`]SVHRYY[[`[ZTL^YTYYcOO[RS[XU\Y_PS`YZQYJMmbVXS\YO`SVV^ZW]U[RWTaVU^YSRLUUYMT[UX]WRb^RZGcV__]OYVQW\TVQYVZbSU\[T`\[XZTdXXbbY[]\T]VSY[[TV[[XPN\X]]VeVRUW_ZWZ^[\TWUY^Y`YT\iW_TW[XU][TXXUS\U[TOXKWYTPZ[T[TR`\ZeTX^O`T[eTYTQa[S|QY_^Z_[X_aVUMY]\ZZWWZUVR[URRR[SWfR]Z]\UXW[X]b[VaYP^PVX[_UTSP[RaWZ\Wg_c\XT]^cXS][Rw_N]\\TidfkX[OWZYWTXWQ[d_]TgZ]YWO]X\[VRP\_W[^YRS[^aZdXbZX]Y\S][d\[[WOYXYUQbSfYVYUXZZVXSWeZX\V_XS_TXSa_eURORWVXVVT[[^YXbUOeZXSQTS\W`[RYXVWPXXT_ZWKV\ZZPVV[UdSWb[YM\\YJVU]ZYTZKU`]YSTU\X_\XTX]TQWXZYS]X`X^SVPU[b`VZWY[O\_RQabVkXT[PWQ\XXPYSe[[YY\UQ]S[\XZV[Zc^OV`dZUROVZZUZXNZW[X]_XdKV`URSWZSST_X]YVXZSTZZ[UUTZSXYYT`RS\VdNW_X\_\Yb\SR[bVa`_aS\VVWV`g]TV^UZQ\XXa`SYS\TSSV\XTXXaYRYeUc_aSSSTSVY]P\bTWVV_ZVaXS[^^YRWdU[RSY]S[\O^[QaZZWU]WNR_WUSTWSXWZZ][c`]ZVR]PUOQZSWUVSPWVKUR\\ZY[U^TV_USm_ZYZSSTTX[Z[SQaUXZJ]W]ZZUZYSRT[bZX`Z_cRWVYQ\UVU_YWTYYYZVIWZ[\^`]\dVZUVU\Z`_V]YP]UW\`W\[`XVWaMXV^YVQYWX]\[SSO^TN^ZWV][ZSWZXY[WYQ_`_QYUW\V[[SU_Y]d^Ve`[XQ_^WRVWVU\LWV`TZW^T\dVYYMeWWXWYlW^\SbRYSR_T[NU]W]^\[QUZKUUU^SPai_UX\WSX[dXT_[WYTac`YS^NZ\fQXW]T]WT]T[PLUORYYYc[QKUb\WQ[XVUTVb]V\TTTPUQfY_`]^Q\T`UZT]WXT[XXbYaSZVQR\ZQUU[TSTfWX\[SP^T\]WPXN[ZnY\V\RbSeOT][]^XUXYQ[TfW[]OV\XTVPbX\_XV]PaV_TjO^TJbVX^ZUW_P`Y`VdS_UPUVRUXS]VY^]]^Wi\YNX_VaiRUcRZOYW`^R_`]UTS`TH^WQT_VZZRPZR\[Wa^Z[bM\dS\XP[V\Y`ZUXZ\ZUTVTXNTUYVeSOXV\VXTRjYZYaUYUbS[Vb^TYbSWZge_VWXW[VQOP\WSVYW\IT\VVSXQQRTZbbUXYVWW[ZTUW[ZlTVZ]eWXVYZX[[PjVTLXdXO`eb[ZO]XVR_RZ[SUY]VXYU[VWaSW`V_SVdY\QSd]YTUUW_RPUXaUc[d[PRV]Y[QNcZ_[W[[QZWY[XT`b`Z\dWR][U[V^X[QW\\S]XSXZWZZUV\Vd\UQ\RNUXQVSaNaSX[N[TTRQ^G]WTR[U\[VU[S[YOdd\M]\Th]gOQoUY_eYX[UN\YOPcYQY[]\XXWYX_XSYiXW^`^lWV]WUSZKV^^dPbYaOTWeTYV\YX]aN`TPR^XVW\ZZRTV[[URLYZVT^S^RY_SSaMVVY`XSWKVWQW]^\WUU]TR_Xba[Z^d[RUTR^^YT`[UVVMR^WXQ]VSOhYVdNVWZO[UU_TY\]PTa\]X]RaOT[b^Z]]XYaTb]XPaVPTZS]XaSTZ\`YTV]XZVR[WZ]VXYVcUZZXTVY[WRVR`[XQ_[OPW[b[U]LYVUTUZRUP`Ta[]XTX^Zi\MQVXX_VS`YYWNVWV^[Pc\\\XV^Y`UVY\W`Y]VY\Y[\fRUVRbYd_\`V[ZJbXcVNYP^Z^^PZWVTaUT`]\\S\XXTV[WZ^^T[QQa^VTS]UTXW\l]OY]UYZ`\WZ^TWddTZOSZZeUR[VVRH]OWTT__SN\]MQ^ZZb\_OXXLWaYVY\tYU[[\U^Ob_Y\YQ_TSM[_P^TVcXcXNZ`YX\XT^bV\`YUZO^[WR[^PYQWS`\dTb^TOn]NX\Zc[XZ\SO\VVaRJY[XfZ^SYZZXVY^XaS]QY[TVT_a]NOQUZ[WSXRRQTXY[cbYQOYS]ZW]IdW]XZ^PXYW_]UP^QaSR^ZTWSTQV]R]T]S^UVZQPVJVU^XWUVTTcOW\YTSVU^RQTWZX^jTSU\g`XYY_Y\XVUQZTaT`aS\[e\TYU[UUVSWWXT\[^U\jdYOYRTU\aOYTSXUeYVWhTWTT^bUVQgWU_hZWZK`V]TU\aer^OZ[[N[VVYe\UXWV^^YOg]ZTV^_ZVXa_\X^_SR[UWSQWYY^]bUUMiZ_]b_WVhWV[onXQX\`VSX`UcX]XMPXZW^WYTVWPdUWWRXOWZbS[^eUUVV^Z^]R_RWNUW]P_WQcXV\iZVYNZYRY[RYQUTRZ^[YRYU[YSS^WZTW`\V[TS\\]Z\UUVSRb\XaPVVW_]XgQXYc\VWW`XQad`\SZkYWZW[ZWRXYV[]TVWR\RT\\YWXWVWd^U^VS\OTS^hZT[ZUTQ]XTQVVfTZ]WTZZ]]UTXZZ^V]TYWX\dcT\ZTYWVZYWW^UUWW[VUOU`XXfW^Z\U_Y\SUc]WS`WZT\TUSZWY`_\SS[bTaVZUbWZWQVbeTR]U_SWY[__Q[XSYY[O_XUT^W`XWYSRSZbXVVX_W_ZVRXRXTXWa[K[Y_Ud[^VY`[YRTRV[a]T]aSYc`VY[SPTZSWLX_V]UURUbdeSKV_I^\_g^^TPVW^XOOUWRTRX\STYUTQQ[]\W]XeXRYLORAc\O\P]X\WXbr^h[UXLN]SYY^UVgWNUWY[UXWULTTXWYQe_USobXidXU{dVOOX^`g[]X\ZX\XZVZS_XPU]^lNLYXYXYRT^YUgX\^^`ZQZ^XZOYQXV_Hb]^LXPWRWaaZU\aTYRVYV`VhMLS[UVO]YYfcYaW[aZZ[TVL]VWWU\ROU]a^`iJ`TFQQQUZf^UZfZ]XUUaOaXKWSjZRVT^YZUXUVMYM^a^]VLLOadTXPSNfdURXN]_:cT^VZV]cTHU\QY]\SU[_RaVO`JNZYYaORS]SdaT\YXU[Z[TUVY\SRN[^bQV_S_MTVRf^baZ[Y[Z^[TfVZP\acSTOSXXa[bS^QTYaa[TXVXYLU_[T_T^XhPd`QZSZ\RT]N[T`P[[ZZahV]SWI^UX`Z`W_YiWZcTWYYUXRW`ZWTO\\_^aTa\YTWYXZZV`PZV\Rc\TV]_YWYT]\cUUZX^ZS^_S\TQWRYV\LU^[\QWY[WVbP\\d\]U[SXP]WW[\V_hSTScVX[_[ba]VV]XTWVZgUVSU\[]US_ZT^Z]_VYNca\^]Qa[[N[Ya[YMOaKNX`Z_a]XUYaZMJgN[VKY\V``\`_LZZVS__USS\YWefReYacWY[YXMSPQS_]fPaUYM[YU[bSWdSOZTUV[W]ZXaX\RMYRUPWW[RQ]XW^[BXUmOWJTU^SZ_W[\OSS[XYYYZT[UbTZY\SR_c]Q_Vc`_YXUWUdRU\SkNXbJYXXX`W]U^Ya_XTXR^TO\XWS]_XXY\SXYP]OXWRU\[\V`UGN^YX\W]RQTY[M^Y^WRYX]USXUeRUWXjPb^_YY_VPLY`WTXaTY_UUWXQ]V[T`ZZ[RYRYd^[[[\ZTUWN\hQ`J\TZQ][PYT[`XXRY[QQVMZZSR[NV]KTaY__[\[[R\\]b[OY_QX^R^UTS_\e[VTYPWVYT`l]UhUQbZ]Q]^V]W[WLe]W]VQV_UTWOOWZ]ZT^VTWS`_XOZ]d^S[]]V]adU^YZX[S`WXZU[XXURSZ^YWRV`XUVWXV^]RVTYXQV]USUeXW`YVNZ\_\[YXWPP`[PX\^V\]`W[WU^a_X^_d\fTTXUZ\X_V`[[[TUNW\^ZVV]YWYWXaZb[X[\fT^\\WYeWVY\USWVUaLKZXZT]N]_jQ\ZdRUYa[]VUWZQ[RUL\UPWZ^US[U`n]_Z]W[^ZWTO[SWTW_XVXV^[]QWQT\W[YUV]a\VTX]_[Q_fW_PUWY_WY]OZWYRNU\UXYb_YV`ZU_j^QWZWUVUY_V\\VXZXXZ]VUZWV]SNWaaW\V[JWX^_e\XZWYMV[\ahWdM^ZVOYYcfSZZ\\\UbZZL^NSW[]Z`ZSRX^S`WVX_XRZ__Z[T_[eU]bX\ZR_YXSQeWT\USTTXlL[UZRPOTZYaYV]Ub\]VZRZHa[P^WSVVYjW\aX_SO[YW\_QTQ_TQVQRTX\WX[UVPX]O[[UXROV[XYVTRS]VUSVQ[cTYTYV_SYPRLUQ[U[PKQ\TaVdW\VZYT\QUXUTLK`X`WcYTVVTY[W]`YbY`SXVcV_VZSSWUSa\RbOXXWOQQ]XW_\]aSWTWX_WW]\bXWWQW\WX[SXVRPTWYUV^TOdNS\\VST]VPP[PXP^W]^UQ]TXV_m[__\aM[TUV`MUTZ\L\YZ_S^[PWSSSV]UU]XUMUXVQRQTZVc][RT]MVZWW[QW]VWW\VW`UVZXT_`O^[PZ`cYV`S`S_YYZZXP\RNaSY]bNVXPSQQJXaW^YdU_aKOOX^VRV`]MUZVVT_NXQT\Y^Uh\T[SP\V[WWUVOVbT^VPXfWQTTXZUXUb[ZVa\R\]WVSfX`VSYRRVU[X]VdXWR`RP`RRYkc`Y]^V[VUVOcURTY\kT__aUWWPWV`WTOOMZ[\VgVN\XWQ^V_`TcX]U^T^b[[TVRRU\\W]]keaS[YWX]Y\UWRcXLYQW[[[WYW\[kRPVZ^Y`U[UTW^_QnYVPWYXfXWOSTPZ]YOXVZgVXS]XVZQOROY[WVWYSeWSX[XeWOZ[]WWM^Z]S\hbQS`c`X]_\ea\dcUZ_T]^^_N_SHYYWdQPUYUPY]TW[^SVXXV\T\T^O][WXTUZZYOWTcYUdTVVUSX[TbZ[Q_RTTU\T\aWUT\ZXW[OZYWXc`kYTWXZ\YWRZP]_XYU]ZT_ZTYXMSSY\pT[TWUeYTU_`[Z^Xa]cU`W[^SYR]bUUUQi^YZXO^RM^YQWmVZQNl_X^ZWZZL_ZWWQTTS]V\YQee]TUZS]XSV[T]X\Q\WXZXc\\S]^Z^aSW\TVTUQYWVR`UYMYQU_T_P_S_ZLUVTYX\XfXWUWXX`YWYZT[T]Wa]ahMTU`[VZYVSURQ\\Y\kXRWTUPWVWT\TS\WUaZRZ\TRY[UWUjW]VTWV\[[TSQY\cTVVjTTUUVX]`WV[Y`Xh[U\W`XTQQeUTV^WVVZPRabU^VVRSVSYVTaNS[UWSHV[Rg`X^\ZeX]\XQIUYSNWWaV\`RWVWVc]XZaaZ[TYZVYYV[Z\WXW^^aRYVSZMYY`Y[TQ\XWOZQT\V\OSQXT^]U[Y[UTZWVYZSYUZ\Y^U^\TW^PVWTSQZYUZ]YVS\YV`WVTWjR[VTVOU]SXR`XZT\OXSZUZZ\[U^ZUTZ^`SQUZ^XTXXTWPZ\^\TKVX[S]WWW^_UYS[S^YXW\YWRiX`Z]\XYJaYVTX_^WWURZ`^U[XUWXSNQV]`USYXYXUSXUWO][c\ZU\QRLTQ][TUZU^SRQVXPZZ^YUcaXUS]YTV[PWV`]Y[RTV_ZY[PZWRV^WNScUXTVT\STebWXVOV]Z^WPXQQUWV`WbYN`YZVU[Z[]g]bYU___]OR[WUk[T_]XUVY_aY^_Yj\VaZ\`UT_a_Z^VVPhSZaOQUU_Y^X[^WR\Z^ZTYMV`VXWWX^U^bTSZRWT]UUOSTbT_]OWZXV`VdVS[TXZTdWUYQfK^XZYYSUQZZZ_YN\LZVdJOZ^cZ^cZQa\f^XZS[e[fTa_ZQZVYYYYS]Q]WXYW\T^XZURVZ^QZYb\S\^b`S\VUTQ[VaTU\X]dZW\V]UTQN[QXXX`_Z\OP\TQSVUWU\`WQa]^`ZTT^ZV_Ud[TVUXdY^QQ]UaRnQSgU[]WY\\WRUcOVY^[PYS\\YSWfVT\[Z[PSNWWYWWV[\cWVX^BLVWZhOOZl[\[ZU\XSZSUQU[TYSWQ[STa\ZXWTSU]UUY]UaXNWP[WZVXU[XS^YfZ\\XZPWSUSS[][cOVVRVKcQTVXgYWTW\VSV[]\[d_Z[dZVY[PVUVWLUPd^dTW^OZZgRQT[YVPWVfVY_UVUZaQQV_eTa]Xb`XKUM\\YTSSR_QWRTXSRSXQU[UZbUX[XW^^UUTN[OaZUY[YZTXVNW[T[XXbWTeWYUd\fRVNYZ\VSXVbR_LVWWk_bRYWQUY^Q]ZTNYYRSVUXW^N]]Z\gSWSWeYafVYV]VULZYiYSZdgT\hX[OVMXW^X[Y^X^[PSY^\VgYN_W\MXbWVT^_SXXYYVQPV\]SeS]YVlZeV]_TcS]TXbecV\UZ\^Y[aQZ]ZYSVOUeUUTQTQRUmQ_OdSZSOWV\[[[[[XYYT_ZXRSU^R\RZT^XYPVWYb`YQS\YUW^ZWY[\Zc^dXS`^J[WPZ\\V]]XU[RUT^]U[\fQ^]V[XRNXWTWVZVXZS]PUWZV^YURUP[VVT[d`jWd]RSZSX]Z^`i[PbWYa\YaWeXV\PXV[TSX[\RR^^\]bWaU`aSZT]SUaWQOgRXd[XV^VbV\`^XQW[_ZZS]WS\P^XVVRVUSRSO^VcV]Z]^SXZW`OUTTX`WR_VRQZ[_YfZPZWWU^WbbRa`WYRZ[U]VV^T[[SWQTaXSX`XSHZR`^T_[\RW]SU]SZV_TbiYcZ\T_`WXU\XVN\_XV[PX^lWU`gXUY_a[cUTRUQUX\ja^`\TaYQ[Y`ZUW\\R[ZS^VSPVWSZPSQWYZU]XN\ZcXb_`YU^T_[V\dZ]`YUY]VY[YU[W\[a[[^S]VXTYYVZ_WVJ^YX\WSYXXd`W^YVZ[Z_]UZ_[YZ\L[W\YSNWaW]VZZTZW\UTW`QXU^^TZ]_UX`UXXX^``S_QYZVdbRa]RQWRWXWPOTUV]Wc[SZ\[X[YTNNTPSZQNQY\[]RU^gWU\VUZXYYb\[Y[\ZWX\UWTWSZ[TIY^OX]Q]WQlPUXXYUYP_[V`PSTeaY`aZ]R`\WXYV\]TV_bS_XMZUX\UQ\Uaa[ZZ\]ZWMVUMYaag]TWU_RP\ZXWXaRZWR]T]X_N[PdVT[SZ__\WTbFSeZ[VNSWWUUTT`[YYSYVW[^TP_PZUT[YX\Z^Vh`LRZ\_VTVLYgRQRVYVU[\[JWXY\VXYORVbdWU[^\]SVULY\[[ZYWXMWWOPZQZUYZZZXY[TZc^Q[VSVWWUWYX\WYVY[L_XZ_XU^VYRRTSeXZVPVPX]VVV]U]^S\[ZUQdOdRVbXQXWS^XZQYZW_OWS]][^[TN[VP_QZV^X]T\UXZPYa[_cTYT[UUPX]VXWVWW^XW\XTQ[]VTVW]bV_W\XT^V\USQMWzXZ\ZWYRRU]WVad[QabWWV[\UdPZl`^VVUQQSZsVYKZWXV^YO]YVVShjXZS\QN`Q[RXTQ\R\\\ZUVSSV\aYcX\\VW[h[YV][V[VX]PQQKU]ckaRTULg`LZUaR]f\SNZY[VV[`ZU^[VPXQYXjYPWNVaUTQZXWW^SQ`V][WZQP]`ZR`SV\OPSa_Vs_VW]\[\eeYVdQ]PSS^SXV^\\RbXU][XYVWi]eeWU[WX[a\P[[c]e[RMWi[XQYlTX[]WR][WRWTOW^YXXS[LTo_YY]fWZXTTb]ZfUUROTic^ZX_dVYQ\[\WPZR\_VXX[VYW[UW\[bPcYWRVRXIPWRWTVURcWVVQYbW`P^VMTQVVX\UWUUUdWWSWZ[X]UTUYWSaRHU^\\Sg_caN_XbUfZXUZZU\_e`YN\Q\bZ[WOZa\Z`\Zh[XPNPZiTXXJ]Z^V\eJTYdYpXYd_[`PTOUXXXT^TUaVTaWZSXY[aSQWTZJVaTXW_YK`XbOcZ\d^XbN_\^]TeZOc^SXW__WP^TWYYTeMQaQSTR]PhXXTUWU[^WTYY^S[S\TVV^TYTV^\WWQ[TJRYVTXYZYX[ZX]SWZ]SZYNaY_aTU\]T`PUQUNPo[aPOZ]WVSSdZT^Y]XW\RVQXXbX]XXS`YU[_WZfTWj_P\cWXXXRSZN_XUVgYN\R`TY\W^YUSb]XVUZV]d]RZV]V_T`Y_ZN\VbZ^XTRZXNV]`STUXTbYcKaZY]V\TV^]dZT[UUYVXX]`cXUTVZUUV]UY[[[YXZTYSV^R[V^XUZTSWMXU]`[SSQ^P\YKFcZRQU]XTcUOUW]\_Q_P\fSQc]ZXRSVXbVZUSUZVaUZa^TXV^UXk\[\Q]UWOQ`UTOU\^Zeee\^ZWN^YSSjTU\ZTUMVU`_XSX_[RVXbYUWSXWTL\^b]ViQXYTZHRW]RWO[X`XUZX[]]WK]ObUY]ZUT]RQb_PV[^O_X]XWU[d[]aW^^\]TTeQdPUQOT[\dcRUXeWZbT^SUWT^^_^bR[VP]VQUOYUPXaVTXY_UReRU^ZIUQXW\^MVSh^ZWO\WQWdbY]WLQ\SMPO]T\W\XgiYUQNYfVU]WkV[MTRS\VUY[]ZPUSWOUZYlQ]RUY[YR^cV]WY[_YQT[UTgWWXRY^`XSQWNPVaeVPUWRWRpWjeKSR^\gQTT[ea]ZIQ]XT[`]LnQV\QV`ZY]NZQYZeQTU\h_Td`\ZZ\]WVVWRF[W]U\XaQ[\XaTNY_WXkTUOX_UZQYQaf`XUajLW][TS_W[TZX`YPXNWWYeOKVO^R]I`ZUV^cURZO][PYY_eXTXXXVPY]Z_VTR[[WT[^\W[^ZVWffYUXT\UTVUTYX[W]UPXTbYTZ[RQ[Z[_`t`WZUcW][YXZSZWV`\XXZ[YR[ZW_XZJaUZWZ`QTddYTRU_LXSQTX_TObPWXM][Wbc^TSiOV[T[WYPZRVa[d^ZPZ]a_]Pd]Sg[\V[]_dWbUYbX_TXRZ`af`\VUW_YgWWXV[YOWTRX]ZRTSb[^MlVXS_Uf^XY]Tf\PSQQVV_YgXW^NV]TU\VWZVW][\WWV^ZU\[_PWgf_UWPZVaWZX]XR_TQVYVXYTT^X^P_NTVQQT[YSZR]Y`W\YV\UXZRScZRXc[]XTZ\T_VT^U]YWWXTVY]S[_\^V\W[[TQT`\XeS_[W[SW[XScMTXSY\]YTXbb^XTVVa]WZTUT]]\Mfa\VcZU\^LTXbZQ_Z\S]Y[[PWR_S^WQYPgTXNW_\W[N]^ZXTX[VSU\YRUaVf]U_V\\WUQQRRUYTSX]\WVL^SXg^USXbY]WW[WX\UV]WZW`VZXZ^[bX[YSWZRbQTUV_ZZUd`YVW_QYZ]PS`WVeRVYVRXS\`\E[Y^\UST[V\V^\^VZR_T]_ReW[]V]S^QWfXSVFXURMSYTfjX^Y[QRTTVQW[X]WTY\W]Y]`Z`bQVSRR]\[Y\b^ZSNWYTZ]^SVWZXT_XRX\R^V[\WVKWZLWZUY_UVW_JU\QZU``[SdTSZ]VR\Y[[RZ][WlWXQbMWNZ[WV]bbWT`YOiQ^Zp^TZSMTTPa\hPWViNUU`URZ[bWVV\Y][aQ_Z[TUSR]WPPVU_GQXYVVZQbS\VQ^S\^S\jIW[WTwVS^WUVW[UYYW^U`_T[ZWV]ZSVW[[PT^WaZM_U`UTb]ZUXU[UM^V\TV]]_PXY[PaWQYX_U^US[UTZO_MV^RaRY`U\ZRU]YQ[S[YJQT]QVUMZ`YW[W\^[UZ_Yb\Y]W\XSiZR`VZRMa[L]URSP]jXTaXgD^V_b`Y`YU\[UVPOYWeUYVY[\UUWRONVYZM_W]SW`^UVSXVK[[QXWUaZNPX\dZZ\QcfcV\RbUNX`UIP[YYa_OU^ZXnhC]YGWZcXTQ\O_]m]T_\YiqWbRZUMVWL_\MVV[SQUYY``oW]N[_XXUaTMQcaVUTb[UVf[VXUYYYSNTVbTSXOUcZ[W^c\TJJWQ][ITaX[M_W\XTNYbiNcS]Z\^]WiRPVUS^]ZZWZ_TVf]T[[^WNbj^UXSU]TORYQRUQ]bZ^]RTUVU^XUMUUe]]NZj[^\QNUZQ^MV_YXSRLbaLW_]JQ[W]P`^\\RWPVSTTUcNeW\YUNPUZUZXaVWY^TQK[_TW^SY[SO[bSWURULa[ZXQZR]]^VScdfa^P[Y[WU\`ZO_TWV\[cSyYXO^MVSTS_XlWNV_W`[^QKfY_VV`[WSSZU[TNTNM\U^KWdQVTU\VYHU]UP[[RW[[hUZR\PYTUZR[g[TROWXC[]R^Y^[US\VV`_OVbVX]Z[NVg`aYZVYXZYQQR^E\XXSR[TPP_XYR]WVTZXUUS`XTQLQ\bccY_QVdX]iSYjOVWTib]ROMYi\ebXQ[YZYfRYYY[VQSeb\RYVXXV^TR[Z`NQT\UON[S`daR[UjTS_SZPS[hQXWXY[[PXQP]YPW[UWXXOXYZVZJXYGOS\RZV\YO`YRSR_\OZLQ[[WZVSVlTWWWSWOXVS[U`XS[SYX]XTW[[\a`jYZf[]^aWcRdY]f`XYOaU\SLZXXOYISZOR`^YPSRU\P^ZW[YOf\_iNNT\TYPRXSX`QYU[[^\W_YXZUW\TNPLQXX\MVY^^[YVRX`U]TYRSUTZRZV^XZYSZO`ZY`MOf`^ZjVSYTV[YTU``Xd[YXYVR[UZX`[P]WeT\^ZPQ`[Ub_YdVV\ZNZSZSV\V]f\VQaU\JUTURN]k]QgP]e`W[XQM[\Q`XOWR_TWQTV`WU\UhYa_[V`W\lWV\W\[WSUZVQUgY]PLbZWbZYdFYlRUUaWS^QZa]^[[Vb[T_Z^YVU^SLSXWPYW[`TX[kSP\N]\PZfT^[XY\dR\]ZXTXRQSMQ]mLUY[dYVdSX^b`cXZUhS^^TaZdZOX[WT]NPWTXeTP_TXUY][Z^bTTW\YYXuVU\UR[VPPX_XPUYcSNbW^SgYR_P_Rd^WQXU[UOYZST\T^O[YWa`ZWfXTaTOSaY_d`efY[ZiK]Y\]U\Xf_YZc]U[ZY^_[_Y`Y\XfQWR^\YU[`YUZWTRPWVP`Q\V\]PZTZW\WSSe_\\Y[b\WnXcZ^^PbWO_WNVWNXWWWVWSLWUJdTXdT`QX]Y^XTVR\X]ZSc_S\XaZXW`PTbSWT[WZUY^FX^Z`SXRWXYgPRX^VZ\QW]NZ]Q^ULVMR\WbL_]N^fY_`ZVXZ]SZPURYX[XRTkR^^RR`fXX\_QQT[VSYTZ[gYUTPX\OZ[\VZdW_b[SXXGgh^\WVR\ZSWTOf\TXYa_ZV\Y\RVQR^_NRYTYbXZVVYNU^aY[VXUWgPNaXQQZZgVeSP^PTS`\eZ\R_]QbUYXb^XY\aXKTWU`QiSXYUXZZbc_[[WYSV^QRRU\cRPRYXYXVGRZa[``TTVUoeaYVTPW^SYRRUYZOVfUS[VYSTO_\Q[UeP]`^^sP]S^YXNXSX]\fTZTZ[cSRUYYV\PPTUV]ZGRTJ`Nb^VVa\M[]aWVXbT_^]YUgWTX_VVSSZPP^cbYOQUY[]RWYYMYNTOfQOO[]VXUd[\X\WXYVVXVT_[OLTV_XcPYQY[ZWRR_UTPKYdWWQRVZX\OUZYX_]UTSSWXXY]SRP]UXe^X]fUU_Y`a\Y[cXYUTa\_XSZHU]R^QTVWWVY]]KYYbOa]V`X`UKbB[R`XYZNSUaTRO`]aVXR^ZRUPSRSZaT\SaRU^]^aZRVVS]__VW]VbaZ^XN[bP`XZROgOVPYXOX\[RVPYT[fP\_Xq[^Xb\aXSWCQPcQYRdRY[]T^PcQ[WTVVXVUZZN_T_]VJdXU[WQU]S`XYbMQRZTM^VXQZ[U[\ZUTQdRYN\XW[^W\VWRjVb[]XW]^ZHeX^VPXUZWZPXZWcWTXReVZa[Y_[MUbS[SNYS[_jNNQPb[]^ZhXWXUUjQV]YPZSY\Z_XT^aNPUOYS`p\NSVZP[T[R[[VWWVQXSWVWfRTZRT[^YYTQYaPiWYR^UQbYVY^U[acZYZU_^XT_SQX_N^WZdROaVbYZWYVX[[`SY[QUWWaTZXTaPPc[LOU]]cUOXPYUl^YY\R][ZW]b]NQSLZ]VSTWOYQQXU[O[Oq]UJUON_SLVX_ZN^XL\\VMVR^TY`YYJj^^^TRSSO_VXY[cSTXUQSSYTWSZa]VQ[W\WP`b`]QXUVUkX\beYS[__ZW`XZ\[XVTSUUT`WYZTXTWZRZYZbkSTSWS\bSXWTX`YZUNdVZXS[XWSSPQT[ob^X[LYQZVXRVO`LVYWOTTPYZVVZTZ^UTZOWcW_]S^U[TX[fWZTWY^YM\Z]]X\ZWaQY[_NUY\[SSV^XU]`Xf\`X\Y[Ra\YL]T^QTU[X`XXUZYUTSXcX]X\eYS[QNW_`dQWVUXXUT_O_X]Tb^X[P[VXWUW\RbbUYUQZXT[UVUQ^Z[Zd\VaXVWVTVRd]XNOVOXXYX]RPUYX`\W\WT]Y[TPX_]Y^\VWYQ^^Z]SVZ[ZS`aXYUW][gYR[NWYK[W[ZZ[VT[YTZ][QUTYRR]a]YXY[U\Qc\WMXWa`XTZYU^PZbVZZ[V[YXRORW]cXXRRWUe_X[VYZYU]VYQ`W\[aT\TV[RU]UZY\^h]^VWP_SV^N[VSOSSUWYYVVVbW\XS_]`[XSih[X\X[V]QV[WO]YXRX[]OObTV\RdUVSWZel`YXgk^QVZ\TOSZPRW\Y`aRW`QMQaO[[Uh[^]PSgY_baKZYkQNkY\ZYRZPW]WTTYgSVWRT[SdZ[U\[X[X`XVVPV[Y`V[QO\]`\]US`U^UT[_S\T^\e^hf^N[WWSbRQcWUWZXXN\Yh`YdXY\]WhU[\XOX]TMX\V_e[WS\X_ZSV^_VYZVW[]]TVWT^UavUeRWT[UVS[\VTPW\ZVQYQc[VX\X\Ma[heVMVYeYNW^c[XaWRdTTVTFQQQQ\R[TYTSWVV_[`VWaWXRlWYaYZ\eZS_W]STU]X[YUWZX]m^TU^XRUbeX`\]WTTTUSUUYUUZPWW^T`PW^RVYXY][WV[YTTVRTUX]YXT_VUXNTVXYYZTTVUW`Y[^VW\K[U^_`UXW`V\TY_TXY^^UV\_Y]USVX]UXWQb^`VW_T_WPR]WYZY^U\YZ^WXUY^ZOW]]XZX_YSTQ^__UTYWSUY[\UUU\Y_UUVVGU[cTTXYWS\[WY]O]\Xb_cTVZ]YZZ`TYX\ZVT\VgZVV[]OQWV[[P]V\_\ZYV\cRU\`T[V]WVVUg]YVQW\\K[XZSXSXVU`Ue_ZS_YVY[^^\VWPQaXV[UXVVSU^ZR\SURUW`UTTXeSRT^[V^VYVZVUa[ZOUVVW\ZbUPX^XRT\YUXYhTbV]O`WW[VXTU_[XX[\d^WYXUUVSXUTPTV[SUbXZUS[[S[hU[_^TUe^_VU^V^YXTY[X[YUUUU^^]\WNY`\YZWVX\TVY[_XbUbWWXTSXOSYaVT\ZWW^c]SZ_YZ`S\W\WPWOZVWga^TZWUaXY^[[_^^XSWWV]XY_[XUVRYUUSS_a[VXS[RWTZf`P__YKYWRWYbXTZSWT\XTNVXP_YWWRXTROWWd^]YXP^M[VVSOXY\Ya[_[S_[YTY[`Z_XZO\TOPTY_UN\Y`YWQLWP\U]^WYYR`YYcYbdUe`P[Q`VWVYXVdWX\WSTf[]XfXWWXZXR[aP`MWXXSYSaXSVUVSUWS\X_YZZb_VVY\ZWYTbWSbR`M]VV\a^USXU[\[bR]b]\VRZRRM\_Ya]TTRWXX\]\\PZZ\O\U[YWeZ]SYOTPVaYZTY[UW^\SVUVW\ZU`WYZU^JTYVXXS^OOM]SYZ[O[Z\ZaSh]XcZZPZh^aMWZ]ZO\^NNO[_eXX_XhRPXRSWQZXVRe[VTVU^SaR_]^[ZSZQRV_ZebXYWWWUWW]RXVWa\[YZfQZRZ\]ZTVXg[U^TYJRT\OL\X[NYUW[NU`WUM_VL^^X]RZZV]OT`YOnVZSUKZiPW\WXSUXU\G[\XTVYWSWYh]XVXU\^UZS^SY__RZZ]gXYSWTXVXS_\M\WTcRRSWSX`V`WVW^cXVYTUWU_STa[VOUWVT[RV\XWV[NWSW`OVVU[bLScM]\WYR`U\WTTV[\YZVXWWUV_a[RSXR_T]\X[[YTSO[Q\QjTWTXW^\YTo[\RZYZOSURSWX_[P^VRYhM^YYTWSG[VUVUXaTfSTXQMK[SUZUZZZ[`[]XSVX^^Z[SWYPT\\XbVV[^[UWTXRRRc]XYWYTPQQX\ZV]ZYb[_T`WXYVW`YRV`TRYQ\QeRWS[^a\VZPakUUWX`R^TTGdaLXNTP\U^SUMZW_WTLWWS[X`]YTYY[QNQZ^PaT[]UZ_Q]U[VZ\Qc\]TYXUQTO^Y]ObQ[XV_NOVU\VV[S\b[XZfZ\]cRaP]QS^Y]PXYQZ^ZXXTSZbWV]RYUWS_PYXPXaWRZ`QXWV\`VYSFGSNTW[VUUUXPTi[iTV_eXSZNV]VRQW[`bZU^]RUXQXWQZTaXVaXTXc^aVY`MXW^[UVYWYScURcb^[bRUSQOT[YUahR[[U^`SZ^[VWTQh^[[\SX\UW[V`P[\_SX^bcYZXPYUS^\S]PMj^MUT_PQdVYb_cTNO`F\\R[Wf\W\PT_VWROQ\LZW\`cOVXXUWSOO_ZVLX[V]QcSZUYXXXYYUTZX]`YbLWXRTXT^VYOPTWUeZPMK]]cZ_T`_[Ra`YNcTXRSYQRJPX^X]R_TV]S]Q\_ZcWTV_VQe[Q\XVbUTYVYWPPLfY_XRWQYSZRTZX]\WXaWWT[QSRVWW\OOLUUYYTcQOYb[e^Z_Ta`Ub\ZTQ[Y\]YXYYQOYU\L[QRWYaZZWUTdZQSYNfXb]ZUZWZ\aW^ZYVX[^^R]ZQ`VV\^]T]ahV[]_j]TMU]XOi_UQXUZ^UTYUXSU[Y[V`dPTQ\UYXY`RePY\UXLT^aJQ]TS\TWPQ[_\]RSdWXSUd_PU[TYL^aU_OVTQYW\UNS]OZXR^P]VZYm[WW[QT]dY^VU]TVaQPYbTcWdRcOXXYU]OQZV[Y]~]cROZU\YU`RaORaX_VRWSRK_gZYZ[SVV[OM\eZRU_RQJTRT`U_SUdTX]X[ZZUMTZW^\X\]`YR]YUfR_VdWaXS^[P_QZWYVPTbg[Y_UZoUVZLR[QZ[WXWKc[ZIQRVXe`\]ZUUeZUR^`ZNWMTS_QVcYSU\VKacS__dVkYWYZW\UWWZRR[U[_[^\[gQa]^QYTd^TY[cV\LZSVSX\bd^RYZYRX^PZVYRR`V]U^TZU^SYRX\RUX]WN`YVXZ`RS[bU]R][WULZSUQX^Y_UZXY]TTO_ZW\UY`^XTaVWY\SV[UXih]VXJ\V\[U_^iUV^VQOZTYO[T_YWKW[X]j_fUZ_WYaX\[^UbTTOWR`dgVXQQVYZU^SQWgcZQWV]PZZTUSVYVWT]XZcV`YOT]XTT\QYOSQXUXQcXTTWXXS\R[WWR\\S`[RTPWURZWT_OVNRXWTYeXVV[YVfYWZOdQQ\W\TQSLVMUYU`RWZWY[XTWO[WQS\WNZeO^eYTZZUXcUV_]W[UYSXW\_[[X[ZYj^S\_PYRYWYONNXc^VVXW\O]TZWZSWcTYYU[^VYVWX\\\Obc`eXP[``ZTULYXPQQfa`][YRU_S_YZQXPSXVSWTU\QUYdV`M[XTXVRSWSOcXYOaUUUX_SY]]`ZWZVS[Y\bOWUVPSSaVRPWTW]]RWRXYTSTY`ZQNVUPSSYX\`WaRZP\Y\RXX\WbPWX\^VSWWW\_X[_W\S]STcR`SVXVQMOZYWZZfbX_TY[\XT_ZOS`RVVVVZX[^NUOXIWXZWZYO_S^YTW_VT^YXZ\\Y`VVVP[XTO^PRaYSZjT[ZaPWVTPXYVTM`[WU[RWRVUMYU]R]XVOTST`ZVZRVST\^bTUbJmYZR]K[WZLd_\^U`UcY]Sha\TXbTV[cUEY]OU[Z]Qi^TZ[\SQU[]ZQP\TkTWQ[fULYUNa^VO]TTQS]UUYXbbK_YYOW_[NY]bVUPVXWZXYY_g`XPV[SlYS\WVUaR[W]UPTTYdWTbVYQk^`TZVVZX^UX]VZQ^dXYRURRRTMkX^[QYR\_WWY\[ZXYW[`U`Q_WWSY]UUUQXX^^I^dZdfi_M[cZQVY]fY[Nag]V^aQYT[XMf`TRa[O^XRQ[cS`[WQZWfX^YX_UZbZUe]WWXZ[W_VPWVbXZZ[Pe\UVQZZOWa\P^Q[QTb[lP\[WVUYVRcm[aV_R\V[_bc]fXMfP`NWP`Z[]VZMRWW^IWUTSWXSjOTRU^Rb][R]ZaVOWYXMY]ZUVZPUb\[U\SQ_[QR[ZXWYa`[YZRTWVYSRUUgVZRablVU\TY^`WVQ\\]]K\WaRWSTP_VQUUZXXXW]RZPQ]e_WW_f[aW\Q]PRYVb^YSUPJVU^WY[Y[ZYSRXW[STT]dNQiY^bqWY^QUTPW]RTbTcWZX\R^WZ\iU[_hON]`WU]X_VTXYU_XXX^g[V^SXQhVR]]QSNPLQW`\_UVXR^VKY\aVONQPW`UVZT\_SWWX\VPgZWX]_TW\`WVS[Vg\VQP^U]YUW^W\VY]TYLQU^VWW[]\T`FYaWYTVYUV[RW_NVTWWg[XXS[]U`ZLZZYQ^QYQUXWWUTW_TOQ]a\R[`[Y^U\^]MQRUaZN[VZ][[WXYWZWJZ[ZO_SOUZ_XXXXTWV]]ZcS]]S\VZYLUMQjXSO`WKRQNZWWT[ZUUZ`XXPS^X^UROSUM`ZV\]kW`RQ\jX]QZbZgUf[VS_WWXSVTWYh]TMT`ZRPXQVe[Z]WW`QV^PV`WUUQiaXWPW\__Y^YZddYYXgW`bTXSX_X^`Sf[[X_`V~TKZXX_YTR^XYY`UZRXRYTZOP_[LTZZ^\]b[X[RTNTX^[WSVm\Z\XYOTZ]P\SbPUVdZK\U[XSPTbZc_R]UZR[WX[Ufd_\]aRYRb_XSWUZSTVYQSfIQ]`\WV]T]PbYWPZ]TZaYVTpcY`SOP]``YYT]][SV\MUZQUOhOR\\WVVXRZN[f\UfUXTV\cUZW]YYM_i]WWXUTWZQdVLYhZSZ\YXQXSZ`XVS[UXM[NfRWQS\ZJaX[QT`SdQY\TRV[V_VUOVZWSWUYVUYY[]U`WSNV\UKNcXNTU[Q^ZMVeWUVU\[XWW]XROWLXUPcNPWWTUPWbW^YW\PRUgW[WPXZ_XTXSPN[[_XVP`[U^S`SU^tZZOZWWSV[]XVRPY_QOX\WbOZ[SYYW\][aQO[YLT]YcVac^[bZefY^VOU]X\URVN\a\cZ[^WVXo[TPUjIZUZ[OV]WQbRUUVS\^Z[[T]T[Xc]`maaZ[GXQXYXR]a]dSb\UUUcH_aR]WbWbR]ZMRPMP]R[SbXTSWQM]RDZMdUd\UOkMV]PYXUPYVTZTRaYRWfPYdZbx\XXVUK^e[Za^^WUR^TQRU]\XZR\`STUYXdVKYV[ZW[UZYUHUW^^lVU]W_Y[YURWUaZSR^Td\]YXPWZX[Sd_PdTWU[^bXYX_U`Yaa_^[TYWW[dUVVS_O_\RZX]PSYcgZ]U[hVZT\SVS[\UO_ZUPci\OWXVg\W[`[[UV\]RW]TW^[UZcZY_U^^]VY\ZgW[M]SZIdUaSS[V[T[\QYQd_bXc[YYbYTWb[WS`TQXVQ\S]g_T\XXXaYYZKZSMUXYTV]bYXWVZdU_aQWX]TOM\\WZ[UW\YWVVR]YW\]VX^T`USRZUTY[U_]]]QRZ`[Wb\\^TXX\[^ZP^bZS[XY_X\\Y]S^TZW]VY[YaVV[ZZYY^TXZXZ[UVa[ZS\T^XW_YYY^ZT[ZYiWXVRbZWQf\V`Sa`PXOYY[W]Q^YRX]TeZ^^\]aYW\`QWXX_[XZVX]XYlm[SVTQ_\X\_UWZS[RW\YZYZ]`MVTX`ZX\VXV\VN]YT[`PZXVTZ\XW`ZWX]Z`Z\V]TTVO[X]USU]UW[VW\a[VRX\\^Y\]^X]]``UW_XV^X\[UVQXT_\XZXUZV]ZYUZS[[`WTXYbUW]YW[W`X\]ZY^VW]QXRU[V_XQPYXY[W]Z]`TYYWWh_W]Va^ZXZ[QV]OcTUV[^]\VTQ_UVZ]\VX]\_YVZ\^V\XWWXVVYZV^[WZT\\XYWYYZLRXRV]S_UZ[_b^XW]WYQYTYVZUWS\UVWXVXT`^SU\\QZWYT]YW]\U^U\SRXZ[WnbQ_\\YY^P_[SXX]UX\]QXYdZXT\V\aOP\RZfXZ[\Y\WXdW\`YXTd_ZWTV^QTUUU[^R]WNWXWWTX[WX`WR_`[c]\Z`YR`SRdUU_W\cU[W_VOO`TYW\]Y\VVeZ\RV[UWQWUYXY\YSaPW[WcUf\W_VVSVXSZeU]T]a`\WX`WbY[_X]VZZUY_T\RWWV[WRNX`\W\OXXX\[\TTUYY]^ZTUWVXY_W[\XYa`Z[R_YZ[^ZbY_XW`Y_RXNWSX_[TZRZ]WVPY]XZUR\R[[XXWRaWX\d^ZW_[ZQZ`b_f_Q]`XUYQ\aZXYZXUU\`SOO]ZW`cXW`\Z\XRTTSSZXY^XRXa`VS\\ZWZbZV[ZZNZ_j`]XX\\\TWK_WV_bWUVWXWSWWUXYWXUU\YZX]YOZbYY]TZXWSUZU\_YU`XVYW^TYZXVXN^RZWXPXVaWLJ_[^[OLZ\UU[\`ZY[]`_bZSVP^`[[XX`_\WY`OjW__OaS`UZUU[\j[NUWWTa\[QXWQ]XW^[TWV\^X`NWVWR^TXPU]\RaQNW]_\aXZTTRTWW[SVQWTPXUP_YR\bLOQZ]cSXZZ[\_V\QW\X^cX[hcGSQa\ZW_Y[]]TYVWQTZXSXRNQSY\WaTQMMQ[TZRP`_UTXTRV_dPY_VS[TN^TOU]UJW[[W]XXfL[RZd\_WK]VkYVWST_Ze]UNUWLQ_QNUXU[Y^XW\[W\YPUTZ]\U``Z]`WTXXXSVa[YTYRS[Z^V]Zb`ZSWZYWRTZVVVSXbTX`TTR_bXNTYTVSYbQShQRZY\`WZSQS\WcYUWVSZZTXTPUQX[SYOb^_VYMRX\`YYT]Z^TNa\WZYVcUbWXUXWVdQUQZYYbOlTMWPUWWPdWXg\UU]_SVGOUMU]ZdYRYX\P[fXWVaS^[V[XS]_^ZYVR[[^PhWRXXV\Z^UTSaTbM]W_W]VX[]UXW]\P_aTSTPXUZ]NW[V]SSS[WVbaVWgSX]TbWH[YRQT]WOWG\Xf[Y_OWY\`ZWMdZYZSSq\Q\UaOWe`U]laQQ[ZVPYXQUYTR^S[XRRaZQ\c\dXXWLZRRY^TSWTK[_XjTVSVlWU`Tc\RQXaUQMSWUW]`T_PNVYWP[^XS\cR_S_SWYVPWR\Vg^dXWJXVYNakW]Z][UbRPWYQ[d^ZMY^\aXY[TXQTS^^aPN\T_QRh[WZZVO[RVYZYdX]RfVZSYd[UjYWULXVeTTa\Nb`^\_XSU[R[YY\^Vc\ZSSVZS_Y\^_^Z_WTa]d`eRY[VVRZZ_U]WOX[gXST`]X^QVQ[VX^V\M[UUMOYX[S]VgdZZMSVWRVUYTUU_^YVeYU_]^_WVaUZ`Vd[VXZWgVX]LK`YTZ]WaYZW\^O]P[O[QYKUPaOYbYSdZ\T]VXPVSXSVQZWUTTMXYX[XW^XRYaZZTWc\TaUZW]R\V^U`\W_Y\c_\Z`RiRYcV]_]SYYVPVQ\QV`[R\`LT_]`ZeT]P\^SXhWUhX`XJTTUXVYZXO]W[cZ_ZXR`XZRU_SKWUaXeV_^cX^W[Z[TXb^XY[SZdVN^UdZ[YXZPRSTWXVZYS]]LY[ZOWWTX[QS_V_SZUU^QTZRX]MZXX^YWT\VS\X]XPTSVURbaL^X[ZWUhVY[[TYeX^Z_UVXVUWZZjYWTaaYY`NT]V[S_WRZVUWVZX\PWSXa`R\`_XRM\NR^TVVVU[V^ZbZ[UWUeWWg]QYR^TXV^]RaScYUYVSUYTRX]X\UWbVSXUX\gUOT[ZWOOZVWYZQXP^SWZLZaa__TVU[]\Z_[VUUVU\XaU[\NUVQ__Z\e\NXXZSRUT[s_`VY_aWV^U[_SQW\]X^UYX^Qb]_\\da`dYSPSXR\Q]aZ\WKWQM^SU]T^X[]V]U]TZ\Z[\^^TaXRRQ_T[ZU]Y^VU^[aQQZU`VXRW[ZYXaaaVN^aS[bUZ]_^UTYUWcU]_KRWW]\W]UT[YUXf\UU\UROYPZ]\X]VZ\UTgkYX]^X][RY]OUGXMVVgUUQX\_Y^]QRWRX]WPfa]fRYLbQaWPRQXZTWV[SU[ZeTR_XU^RQbXiT[T_RX_Z]cY^\W`YQXVR^YYXU]OQYYY\^YNUUdOY[Ogk]b]Z_^][`\_\^_U\[\]N[_]bPWQ]XZ\]ZPc\O^^`\V[NZZXZT^f]YSQUW_XeX_bVWaVaW_sZ]NaWX\`bXY`YS^XXYZWZ^YX[S][YY`[\\ZaUQ`]SeX][VV_[[VbXV\VUWSWYb`SRTPTRm\TRYTXVhb]V`aQTRZUYWSVXNX`X\VRUM[UYXYVMddV[Nb]S^VUVeRVUbPZUQNddSU\X`VNSVZVVYNVYZV]VVV]XUaZW[_V`U^PU\U_X[NS^[PXNVS`[U]zVVXP]RUX[VONX[YdVNQaMQ_L^ZXbJ_dXPX^Y]d\Ta\]RNWQ``VaWW_]]_]`Y]a^UW_`\LZFSZWIP[M\[KRS^PQRfOVMV_cIUQ^[i]V]]ZU_K_\YWU[^ZS\]W[Za[U]^R\R[UT[]XTP_aIIdaQGXSZSPjQS]RWY^TYYVWWa\QTZYUTU]V`L]XW_SURXXM^W\h`UZXYQVZWYY^]PRYT[bT[XMbe_PTR\W]ONYcZ[^SSVR]TXb]a^[d^]cP^[Z\ZZVTZTIPSUQSSY\_N\QT\U_VQW\T]W`Y`YabcRlaU]ea[UY[\_P`STZ[YVTXS[^^`OVYQQ[^XWRcf[UW`Q\YZTVVPRUXQV^YU``cXdT_\eTXPYZYVURaMZ[T]V][XQbUY]S\Z[_S]WVc[\\XWUW]PTOgWU\Z\QYV\_T^ah_\[SYU][\W`XTSQcTMVVPM[U\_VMV[V[\RXWZa][tU^[WY\WaZlV[TXV_OWRPWPZUR]ZYWZY\_PWRQ[ZSUYMYUXTVXT\U\]QWjWJNZg_[_ZkXX[[UWWeUVdXYJRIXV]RXXT\V_UZaSXWXR\VUZYRWW[Q\bUXRTd\VbYMfVSY\WZNT]Ph[]UU]Z_I[[`UW\V^\OiX][PSP^XbbTRbZYWX[]YUsZWa[V]QPQVNWaX[]X\\ZV^MWNZVWKVM[UQaWZTH__[TQRSWWT^bXYUceVTObYQ][PYbRfc[X[YeV^TRUVWSX\WT\T_VZ[XROWbTUSZ[WTLX^OY^PUVU]cabX`YYJ^ZUTZZ[_]TWY\e^]V[W\VfprWYaVUTWQWXRT]YS[\[eVZY^TYhp_mX`VUXZ[Z]aPd\UWVgYaZ[XN\P\U\T`QUP]QTSRT[Z[ZS[WQZTclRTO`PIZ^ZPSQbX^_da^TY[_TR[[P]_SXXS[V_LZ]KZPWTG[VKRcRWVadX_XXcN`WcYbhaUZXQZ\baRXW\jWZU][cR^^ZUWT[ZU^YUNNdUV]P`UY\[XY_XZLL\_WYT]YPe_\X\aZe\_X]^bWUX^[XRZa^P[^VYeS][XcPSVXe\XXY`WUUMWPZaVXaQRWZ[SXaXXlU\\aWX\TXZS_\mVYVe\[V\X`X\`OWWZOTV[XWM_WbZV^^XdUW^SZT\Y_UWYRWUY^IY]^[YWU\[]ZXeQSTbYS_[VWTUh_Q[_[[[]VXZY]ZSW[\W\\c\QRWNW^VSX\WTR\XP^GZ_WXXTcQ]^V\[S_b\___\]`[\fa\aUSZX_X[`UiW]iTXYTXS`baW[VX]YP[VY]TZZ[V^Y^]^\UTU^^ZW_gafTZaQ[X^SWTU`VTVSV\^V_XkZTdQR]YRQ_XcL]TTYX[TY[Z[[a[YBX`YVUN]_\[]ZPR^N[TUXaV]R\XVS[]\^ZVXSU]\X]]\WcTXY[\_R\`d]a[^XW^]VS\TSTZYaYWXW[Yi__^ZZZS[\SSW][\^_[^U`YYbSU[V_Q``Y\[\\^YYVUfMaZYW^SZZSX^[[\ZSb]\NZ^]YYWZKW\\bXX]QRTUT[YYQfbR[S\ZaXUUSVRcW\X]\bTYV^R^bYW^UW[VWP_Pk`YUXZQUUTc^TYUZYZ\WW[]_XU[\fY]^WcUY_XVXUP[ZWSZZ][OYXU]Y]RQ`eSiTa`Z]XT[UVb[YYZYTO[^\Ya[`[`W^a\Q[[\SR^^^cVY_WbYYYXWV[QWdZU_WUT]XUQgT^T\fZ\[ZO`R[ZU\Xi`W[W^PU[Zi_WW]an]dS_\\T^RRRVZRSZT^RUR\WeSU_YVcWTSXXSUb_kSXZXPTZUW\U\XTRZZXT`X[`WY]T\`Y]ROSM]WPdQaR^UjZW\UZb^[S\U[\]X[YXUVUh]Y\XSM]Y]b]YT[[ZRYNOYXTTRZ`SKSaVZU^T_YPNUlWUTWZT[XQT^TPWh_VR[qaa`]cX\UYY[QfUUcVZVR\VS``W^\g[fMf_Zg`WSb_YWaMRU]^ldU[WUYkYg^OTSY`VSt`O^SURYUU]SY_ZXy\Y\TUYVUYTdJYW]Y^[ZV^^RTbWMTUMMWZ^SZTZR]_WbRa_OVL]eY[QQ\USTP[[SX\Y[YTVS^aUN]XX^ZW^OP``T]Z[WVd^XZYLX]TWTkXURX\\Q`[][^QV\RW]XWVU\[fYTVWXSdZ\]^^^^[VZmXZOURR`TZKY_XZWRTSYeR`ka`PeSZ^jN`[XPUS]YTSbd]bVVPX]SaTVScW[U_aaWXZS\X\WV[PrYXRQYX[SZ\XQQ]XVVgTNXMbeU]\WScZfY[^S]P^V\_X]cW[[QP[WZS^Z_^ZQa^URV_]ZQS_\lYUS\KQ[_PYMbW^R^[aU^VVZTURYVVQQ\JaZXU`YfSVW]^SRWWV]]WOZc[W[][RTacN\SW^ZZWTb`ZS^YY\_RY[KR^e\ZWRWXeXWVdZUZRUi\TTVPbo]cYV`PYdjQZ`Yh`F^Tfj]b[ZQNV]XZNTcdXOWbSRUVOjWZSa\XZ_TYf\SUPX]`^[cSc]SVU]]XZTU\J_WX]V`V]UXV\\_X_dSV_UQYWbfT]bZ^KOSNRV]VSR\R_Y_X`\WWQ\\b\\^XN[XUUNW^OfgPZ[kXSUW_VXRRS^U[YZVUT^ZcRVVXYWQX\XPGYVYXSUeTSRZ[X[d[XZJX]XS`UOUT[WT[QcXWQ[NZIZX`\]QZ\WU[XS[Wb`cqd_U^_VYRV^T[cSR]^SXVYVYU\V\aXZMe\dHNT_\[_VY]VQU[`\OKYX\T[U]S\`cZ_P\U\]_RXXE`PaVQUVYVOYXPU]]QWPXRhfcRSYQ_^W^R[XZ\YP^[[`WaXWWTRY_UWYXUe[ZZ_`XQ]`YYad_^WQR]QVTTSVZQbgYaZUXQ]UOY[`UgZXYZYZ_[\PYVQiXVTTOW^ZYdNSQXV\P`[VZQWacZG`ZQ[WV`\PPTWaX]Y_YI[WYYUZZ[XV_`aVZZRSR^PWM\YZYYQTYN`TRY\\XZ_Z]_W]S\]V^MPSa^XZb[[]X_YaXUZ_ZXT^LTWYbJZUY[TWM\VSTbTYZTdV[d^\XVYWVV]]QVV`XSQgY\W\Y[NNVW^[^cX[\UZUXX`]]RPY^S_URUSZ]YV`SQfZRWUZTYPZX`YXOYY[XTZV_[g`R]aVX]XWVZWeN^\SYXa[Y_b[\`SV`YYD_V]]LVTXVi^O^SZ[aPN_X^WR]ZcbXRVUVMO]`YM^ZZOE]T\T]P\TV[ghR_wVVNaa`SISV`Pa_NJ[I_X^ZSbZYXYc`UV\iX[YK[XYgYR]SY^V[acYYS]LXWVZ[^WKSNS]aQ_SZL^bW[\VP[Uc[`_mYVNTbH[QVS\UaTYgXV\WLZWWU```MVQW[abf[WbWf_]XMeWQTQR\V\XX^\[Y\_YeXb^[Me[WO[Y_GX^WbaZRL]RW`aT[b`fCSTXVUJSQMS^[W[`_kWP_VRZ[\XeQT[fQ\cRWLXQWXU^YZY^Y^[TeNgdZUYQ_cjUTT[nY`gX^F_S_N\`^UTZTdX^VWSSU]RIWa]][KcYSQjWiSVUlaPSWhlWXUcMRKXZ_XWY]lfNXXZUd[XZXncWWV_SH_Ra[Z]]TVj]YU[bSb_U\[CN]\W\IXU_VW]XVXYVV^\QQ_Q[UTP\[R]UN[TZY`^ai[bXW\[Zd\UZUZ[XYTRWT]UaZdWfSVYQSZVXT^OVPVVQYdVUbS[]^Y__`YYWWWZYZ`[V[ZTVQY^Q\VWWQ\QQ[[[XVXRQY^X[_N^X^T]T`W_Nd_YX]`[ZX[O[Z[ZOZXXQNWMZ\Y[UYSTIV]^NU[\WXV]gUSOaaVYTf_XWSYWTScXaTcgf_^S_]SR[eZ\P\Y_Ta[DPWX[XTXTR\]V]X\WUTfWTKU^RUPYUUYSScVTTYT^QO`_VbWVWRVS[\O]WUW[KN\WZTQ^Z]WYZQ[STXVX[SZWS\cfXYSZVY]WXS]TVXP\Z\Y`UTUY`VS\UTUWVZ\ZcZab\XSPMROWW_[`SST_XqTRTVZ]ORN\N\aYXPX^T[RTUSdSSN[ZO_YYX]ZTZWUWWVUWWW\d`\Y_YY[\U\hXSUXT^[XNUVWWj[^[TUXXU`SUT`YY]TUOPW]TYYWX]Y]W[dbX[YXQZZW^Z^[RWZR\\TWUUYjTX`_WiX\YV[^VGeX_QZTTZdYX\QYTKdYelTTXXXg`T\Y`XXT]^T[\XNeSYVY\_R`UUXUXYVbZ[\^eVVYR[\TWZUgYbWTRSRP[PQ\j[^dXVY\a`YXS]a^ZRVUYYXZ\_ZRXYTYfX\a_bU^^UY\RSYMS\WV]YV]XbNW`\SV`R\dQaWVXWZ\XE\VW]TeJU^UYRf[ZW]V[SZVQSMdWZVWXdSQQUY_aU]VWP[U^M`W^b]aW[T^[ZRSaaVTTRZcUgY[VZTTXX[X\`_TYWV_QSYaXWTW[c[W[YYrc_Xe^TWW^`Y_LVX^YU[S``V_WNP^X[WWXWVURTa\_WTXZWSYYYU]bY_UOYbPYXY`c[Z`ZegTZTUQ]RZUIQcdZa[ZeV[UN[SXbSm\Y^XP[O^UX]YcW]RZV\SUQZZWQ^UWR[ZYaZZcUUbS[ZZ`__\]aY\VSXRYWW[QmUSU[X\VWYUW]^\\NUV[_]ZcOXX]V]ee\[XPUWYZZR]XSVY[]_VZZRYTWZW^vZ[^RR\VZTVZUWTWZl[Xc[PUPSgV^`[bYZTX\PWc\XWh[A[TTWPSYTapUM[\^ZUbUTY^[\UVP\PYTVTVUX__TZZXcT[VVck][T\XS[STT\PR^\ZZW_ZVXV[WYY]WWVPXPeVaOWZYUV^\\TQ[USSeg\gSW`XP[cYTSXRZUYX^WXeRTYa`XVZP\[P_efU[O]VTTXaSSYWLVeY_SWURXZfgWcTUONaWTYXTZUYZXUR\KY[[YfQZ_IS`[VT[UU]Q`PYX[[UgaTQP[ZXJZW\ZWU[gYOR]Z\SbW\RKSYWWcW]Y^S\XZV[^[QX]bKYaZeWOR\XcQ]]^Y\ZPSSXY[^UQ\bV`RO_cd_ZUYU_[\TeY]\PRR^]MWSQ[ZUWiaOa`X\VQ^`V]Q^^]e^TTZ]PUW_YZO`\YPRTRUZ`nOL]LdP_TbJY^\OV]VW`V]^Z^Z_T[XJ\OPUOMT\\XPVkUSS`SWVQTWQS__V[SYWXW\a]]V\[VaOXVLUSPX__a\TR]TXZZTWSWcb[Zc\ZZaXOd\SXWSVM\X^VZ_]VZ`a_XHX^XR[YfaTTTYVQdZWWW^LTPULPSUQ]_ZXSaV[T\VfZKU[Z^W[hWXRUH^_PRSYUV`jRR^XT\YOU]OUO\eWWeZ]SbXYTVOfZkY_SZY[WX]TTTTfZWYI^\Y^_UHSWOXVa]Z[g_][VGXeX\RZ^VTdW^a^jTUfaVWbKXY^^[O[][W_QZTU\QTO\haXNbZ[UWRYV[XNkY[bWW[SeUOWXTcZ_U`QSZZYY^X[]\\]bS\XXS_Ud\YS^UV]YFW^NOXXbPWfb\bV^R]RVRaZT]UU`I[WR\Z[[NXaMeaVS\\PVZa^Rgc_R]YZL^VO`\ZfZeXRS\NY]T[\g[QY_Y^Y[]\RgRXS\PT_UaVY]WR^[RZKWT\Q]TXRL[UTVV\a`WZXVOW^V_YfWY\[YSZ]UX_QSXXm_[RUPY^PVUWgaa[POO_TP`[UY[^_LfX\a[NMJZVaY]XZRWc\UZ[MRRWXS]_cV[V]XW`[eXkI]TQhH^Vb\ZWWaWW`]RZb\XWZP]bZo[RefRXVhRSaZNZT[T_VVVX^QS_]UTeQUfbbU[aYbZU\\XYT^TYX`\UYS[XjVTS]e[ZOa_WY`^YZW[bXQW]W]\WUWVOOUN_[`TNdSTWX`VV^WXg\_^TU^QMTb_bcUbMi\a[ZYTT]Z`V_`a\ZQPT[e^gPZTTY\biibRNRL\]UYLYZY`PY`MV^R[UW^_YRNZ]XIRTYV\[aUd\[X^XSR[XXT_RQ`KVa^PQSZWZ]TbZ]WUTYPZ_e_XSZQ][gUaeWWV^[V]WSOOWWUWTJY__ZPVPYc^YUZVXWkLXXZ[WU\]Ec_R[_SZ`RZYZZSUTYP`OTWQQj][[X\Wc`X]VT^USS^[[Z[aVUW]VZYQ\Q\^Z]RXS\cUZZUT^VT\UUWW[fZZ]PcQRYP][YWXXVZRVVUXZZRRZU^UYTSZ]U]\aVY\YV^YVYQNW`OgWXaS\\VS`OS\U_XS_[^S^XVZYXUSPSbS]U[RcXZSYPWc\ZWX[YPTX`R\VUWae^RURZS\R`[WUY`OZMPKZYg[U\Y[VTTUSYMXSTRS^Y_YXZZ[SNRRPX[Z]SUT^\k^_SSd_\XbOX_VXScW\dVdYZZUaQZQSXRVYYVb^bRVSRSY_RO[W_Z]TW^\R]YSch`URXRd^]T]WUkS_U[V\_]WUbVVX`YO`YZdgSS^YaW]\b^R\^`VYTXVQcVU\_\WRTZ[_WX^^ZX\XXTQ`TaUT\_WbWUbWJ\WXWSWXV[\_`Q[Y_^R[cSWZXcZYX]U[STW\[YY]WTaOSSWVXQXdY^ZZUVVVV]NZ]Z[^RYTW[VXaXY^[^aaWT_QX]Za[WZ[`aY]SVKVS[VU\YTZJdZX\T[]YWW[ZW]UP_XWV]_VP`RT]TTVRVbZSSU\`]][V[Y[V_^UXXZ\WY]YYV[YXWK`kSc\WaYeTXVWYUX]\_]R[V`X^fZ\]YYbQS`Y^bXa``]W\TTSW[QXVdVO\`bc`N_UO`U`UVVYVXSP^VOZVMWVYVQWZT[ZX\\\]`]]`V`M\]S\R]YYTbVX[UU^`IW^cQWVV`[[UW`WX_`V\a]^RRTSXO[`^YPY\Q]]SYUW[]d]OW[^ZaRX_X`TKPZ\R\TWaR^YT]]YM\W[``VWVTXW^T_OZaZW]YSRYY_ZP`ZZVSY[O_bV]USN_^dYUPbU[_[UaZaVQ]_VTY__XaY`[YS[[_RZYbZWZ_YSTTPe^Nc]VYKLWV`[`^WXZ\YX\ZH[``Y^Q^YYXbT^IUYROR`VQWOUaQWW^TXd^OT_UQTXTX^aWWVTXaXWXUSO_XVWVXYPWOQSZLW][kW]OZ_Q]X[YSUWXWT^^]VQ]V\[QV[[RY^T]^Ua_aP^aUP\WWPSdKUVTbW\X_WTO]YSQWVdSU]\aTVVXVTZSQMYcb`UOS\YZ^\ZWV[V^W_aR\UOXTX_\`]W]ZRXUY[\SP[O]RW^][XSZYW[]X]\VUU_T]hW_TWWYZ]WT\\^TSYXY_WU^\ZXYb^VX_QQbWWVU[R[U^dMVaZYW`UTWXU_\^^UWa[NbQ\ZVUU]OVVSdQ_OWT[_]^YYUTZ\WY]]UX[^]XMa[\TR^ZbUY]ZPSXVO_V_QXXV_WTZ[Xd\]^]VTTW`]UUZXUWYTaS[[]^R``]Z`UdW]_LXT[Z[[UbaZXTZSc\WWZT`_VU\ZU[RSV`cY\WV[]YPWUXWeS_MT_aVQUSRU]W^^^WUWU\TPWQaWUQU[\TVUVVZQ[VY`[VZUQU^^[TbSVOZW\UTVTZ^ZXaLe`WY\[WhV]W_SVdVNY[XYWRM^YaWQ[XgTW[VaVV^`[dWXP[WUY\h]ZW[XW\`a`UbVY[ZRa`^Y_]XNYRiVT^VcZ__ZOac`VZZ[TeaZ[_[bZ_]ZRRX[Ue^W^\\ZWZ[df^RN]WRVXUX^WY[U^[ZSa\I[[[aYXQaWW_TW[_W`XSPd^YVX]TXUVafRRW_[YQYX\]SVWRVW[[__ZRXW^SVnSV[^ZPTWOUZgYYRUiVJY^TYPaTVSZ][YYW\XQXQ_TST_^PUZR_WX^^UZSYNoY^X[hWXeTX\ZX`[hdSYmOYVWRZbVRQQYWZZY`N\\\^X^ZYW\V[RWU^T_WgIY[XS^Wc^[T^TTUY]ZQW[_WVUYZ`da\U]UPRTYTUPYa[Z\XV\\SVVXOV`\[UQf^_ZWVY`Uc\[`]_XZR[Z^ZSS[[[_UV_Z^XdXUWWQ[WYYSXX\QQ_[YRQYZ]TWaZY^]XS_[TVXWW\]WSTfOfUU\[ZUZa]VYXT\VaZYWM[XSXYdY^R]VaVQXRV]^\][RZUU_SX]Z\bV]RP[\[bTY_X[QZ\\]Y\[fT^TLYs\ZUVX_SYbY[WeTaTY]WQXOcZKV`[W\P^_UWU`U_XVW^Xa[UVYdU]]U[[W\Z_^[b]bY\RVTb\wh\[WOXWVZeYVW`YTUYNUUcW\]U\O]YQUVYZ^cZ]X\XYS\W_X^\Z]YW\\YPTYWS[YVYSV\[U\ZWW^`YaTY]WZXaXYTUaXaXVXKd\U\P[\Vbc_]aWdXZ[QSSZag[^^R^TO_WYdf]eVfQVNTZPkVYV[aPQSg\a\Z\OWSU_^VZOYYTXa]WTV][[\]XQU[P[^[_MURT_VVX^\R^YQW_QWeTZV]ZZMgU_c\ZUUXT\XZPVWYTTTadeXTXSZRZOVXXRPZcW[[bR]ZZX^[YeTbZ\RV\[^YPWYW^[X[Y\YZW]WedW]_TUZYWTWYbTcYX`]V^UZ[RieYd^RX]eaYPQSV\UXS^[ZUYUYXYcU\N]^\RH_W\SX`Y]VMMbWYZNSYVUOXaZTTV]cecYOUa\VYZU]a]]VXSTZKXWdWW^[UWUK]`VW\^][aPTWZZaZXYZOP]WRU]Q[W[SSVVVQa^TW^P^UZV]SUXST\WZ[W]ZU^PZURVd[_YYTSTU^X[SWXU_W[^[_X[a]\ceV_WSZ_Y_TY^[RXRcRTW^\TXQ_YW\]SUTZ]Wi\TMYSPc]W\WW_XQZ[QNQVY[_\VV\]L`\\[\PUVaSW]R[WLVYW[Z\RUX_TU]J_`WI_TYRS_XbSS]X`TW^RY]KVUZPY]Z[[PSSYQYU\VX`[P[oVWWTO`Rb_PYWaV`[YLX\O\XSYY\\WX]^`P[TZ[YVS]T[]ZQRUTQVXPVNXYUKa]^ZNZdWXPZ_[]^`X\]XbVSWMV[gSPMKVXTX]VZOWXX`UZTpZbTX]\VNV[]bM`aMYYT\aPQVX]bTOMOU]c[]T`Oa\LUT`[K][ZOYYaQ]^]YXcZkYb]aWa\Z_`Y^U`RVZaZY\PUSUSPYZVO[[VY`YfYWVXZVZ[[Nd\^^RQ]U\WZV]`Z]S[Q[M`UKT`\eWPVX]^ZOVYQV`ahXS`XUXW]PVX^XRQL\TQbNZITWQUSZW]TlX_ZUkVPZYb\U]A\WZNXSYYZbOV^WR]^\aOYYUYT]WWSXSS[aXS\XNbPSZ`^`aUPR^WZ[^VXZ]aVVkUYXTP[[SYWb]cY\SYK`bXLVRRW`R`S`X]YVWe[RZTO]bMlUTZTX`TTcZaYT^aSdX`[YcYU_bV^Pc]YPUYY^Z\bSVWV]U_U[[ZL^aR[\[QTOXZZZRI`\YTUSVTQ_bgYYR]VQLUQ`RPQ\Z^ZZSQdZb_WWcWTY_[UcYR[b\KabOQWRVXTNW`]aVW[Qf^OY[ZaP[W[Y\XURVYMVX`]aV_O[X[bQQZXQRVS^X[\Z]V[UdjWYZSaZcVP[TTVSU[cZ[bU][OSX^RUS[R\YQQ]YX\OQKXV]]b\bePaaJRYaXYYdRNPPTScZY\M\WQLXUW[HVR[VYaXW\W`SY[Y^`Wc^]S[YOYSXZV\OXUYXPeTWPY`XWOWYOZeWKVWZV]YWVVWTTW[RdOO`gSYZ[WT\Y^bO[TRWWTbZX^Zb\oXUM^RV^YUZgXTUYUSQVYagWZKRWX\W^WaS[UU^hYS]Y`KZXRT^VMVGX\RUXO\\XO^T]g^J[XYYUWV`RMUiO[R]SXbaaKU^ONN]UdZ`_`_Qk_ZV`UdaVm]SZRZTZOXX[PQX`SVVR`QYRX[ST\PTQSdRX[ZTSV]TR\YMSYbTUUZ_VW`Wb^XNZWVSXK\OX`NyLU_T[YWPOZ\ROT\WNcefX[W[SfS_]UONPUY[]S_US\aUMSOcYUGZ^ZdIU]jXd[aTR[SOPRNVQZXQS\XcUSTiNWSWXfVZX[_WUUOVRf\_X]QTSPRXQ[d]PS^]L_UT]XVUYVQZ^][W_ZZTYXVW`nU[YSSRQTV[YTV]]NZZRTaTbOXTVb^]QWUXZXS_XLR[VHTN\YUYVN_ZQXXQ]UW^[eS\[Z\S\]JOY[]SSU]P\ic`bZT_a][QPZX\ZVa[`VWQQP]__ZPYRaVUV]XY\SN]ZZTV\ORScXV]YZaTUZU]`RXQ]MSWXYZSZYS\^Ud^aPQSZ_N[^VV[VWT_O[Qf[WT[MY^X[[Z\eX_]f`Y_Z[YT[V^V^aPI^`b\WUT]a^Q]^\WTTV[H_WWTXa\UVWTTXWbYUZTU\S]W^]W\N]TbSYW^aN^]c]^XZXc[^TXTWW[Z`SSYRRZZRRTVZZWYZ]VQb_RVXP[b]O``ZZWd\W_V_\OY`WYYXTZQ[[\Xg\W^WZ`XSTVZU[VYUTY``TX\O^T[P]N`NROTebUZT^U[WZSSY]Y^aQf][PUX`Y^YVUNWN[YTVU_YRQUV_XYVRZ[T^WVOU]WQUa]TUP\`aZXXU`ZZ]WXTW]W^VTYUVZWZ\]YcTZWXMWa^YbQYW\[S]XR][O_SVW[ZSV_^QR^]aZZ^YQRR\V`XWTZSXXO[WV`SV_QX_YZ[OW[PSRS\jTS_ZXZP][RWVXZZTcOPUZbXVa\i_YYa_S^YLVUVOS_[S[XZU_\XYY`^Oe]PX^ZYXO_[ZUXXUccddTYNPR_ZS\]^[RNQX[]`RW\PZOUWPYPWPVZVXPQaY_YZVTZ`T\WZN\[VNZ[a^ZcaYW[XQZ_[V]Z_WWN_WVZZYO`Q[]Nh^bY_`VTP^]PZe]NWU\Z[]TWTWYXXWWUSPUR^VRPW]PY[LS[U^VZXaU[_^[U\WX`V_V[^\QWT[ZRMYUbY^fW\^d[Q`YScWgT]Z`_X]V][ec[Q[\c_TU\^YWQVVZTX]aS^P]K[Zd[WZUUP\d_TMY_R[GUZ[R\jeWXVSZ^WTYZRR\YZYX^S\[\VSXZ[_ccVWXZZVaS^YXPUY[X`WZ[Y[_W^\_YXXTUgWVYRTZQVUOefW]RMPR`]YX_bNZ\Z^]VW]`_OZSbYZP\Ud[SWTb[XYZ[[_]TR[^]I\W]][a]][_ZSjXZS]UVT`SV\\beSX]O`MRcZaVXW`^_b\R\dTW]^i]WQTXRYZW^WO]Y^L[SQZQ`]O_WO`[cYcPW^TSWO^hT\YQX]]ONfPUURVVYWQPPUTXOX`WW^e]TaTaRZYP[_^WYN[[_jPPVb_XZRWbWYX\WUYaVZ\UWTOXU[ST\PWZ`\]ZQ`TOaR[`ST^WaYi\`eYRaaPMa_XTMLS[\NTO[\]cTX]^gZRXWLPY`dQQOYQSbR_RjZWV[ZOWfgYPZ\US^XXO[TTZLU_WWUiJZJ`WRdZV\OW_U^UZ_UdVRb`WbaUSP^]^ZY[W^VX]eWPW\WXV_aXcXYUJY]Yba[US^eIP[PY^_[OP^a__]X[\\bUQ\dQVY_RgUXY^X^TbVmZTRTRVeOe`WTaTO\L[kfZQW`Z[_YH^UPORX`ROLMd`aZfVTX`XMc]UNLUcQ^XY`RcVS[RY[bRMd]OXQTMaVRYWZTUQSYa[]^V_VX_^JT`[Q`]YVNM`Qe]ZZVS[ZakZ\XWVX_R]]`[SRb\Y]SUaY[\cR[PXR]\eaZOR_]cVR^XXR[aR]QUUZOd]ZZYj]R\]_\\Y[X[JdW]YY^\_XY_]R\[bTUYV]Y[SNaTO]Zb\XVPVdV^]WiPZ`VZagUZWYTajXQ^aUPbYeP_U\]SVRYYQVZ_]Q[U`[RXYQ\VdXUZQZXX\f[\aTVZY[RXWXcZUXW[_[\YTXZb_^WZYZQWbYYZWZdOZY_PZVWY^R\_WS[_R[YXe[h`TRU[ZYWhWWY[N`[^^V^_OQdZ^bTTbOWRRbSVYUV]PUW[XQT_NbVbPOTZYZV_cXT]S]WUPZXSVaUX[]YcPP`_\]MP\`XUSZZO\[\RTOVYO`QWU\i[_`YXPZLXU_Y\SSUaXRU\TVV\X\^[gT[U^YoPTbXSdY_R_dg\dbbZUScaRW`W__ZS[\[S`X[YZ_T\[^c^X\U[W_\UV`T^a\QX[XVU^TWW^\SW^WZYhVW^TXQ[^dSSaYSTXcW^WX_V^Xc^LZa_S_US_]b_T]dRD[TZd]Tf[WP]Pa[WVS__VaZeXQ^ZUf_U[V_dKY^`WZ_[b`[XW\RZTWZZU]OUY[\][]UeUU[Yla[\^^^\\VWXXUS_\\X\UV^c`YZ[\[WSOZ]JWOgW]]rUdUbUXZSVM\\UUYV[`Y]Y^^^UaVZXb[XWX[WYTW[T`[M_V[_X_UZ]VWXI\d]`V\TWVOUZX][b]W[`P^\YX\MWcS_\\MZh]Y`\ZXUpagZV^ZdXWZV^Wp_X^]PM]PX]dP^]RjbVWWZb`_Zeg\TW`YW[\YP^`Z]^Y_\YX^Zfb[TUZ]^]]Z^]P^ZYU_Y\\aQTeWV_TQ_\daM]Xb[P`]X\]UUg]ZYV^XZVS^\X\T[Z^\XV[bcYVZcU`TUXV\[YaX[\\V\RXTYUU\YZPYaX\YU]RY]\X\SUf^U\[UXZdXRU\Z`Nf[V[UXXY]ZfWX^[[[O`\QWaQU_RRYibe[ZT[U\P_YZY^XbZWaUZY`e^eZbY]]VZX[]`W[PWTL]V^gXRVjXX[Z[W[\V[R[]ZYSe[TVRQXXRN[bMVW^eUYMg\`W_QO`^UPT]XZ\YXZ[^V[S\WT\\f_\d\XSVZXXPW[_`hVT][U_\]WQ[[]XZSWc^YRZYSQXX`W^d[]XUYUU_\W`WQXWYc]X]\]T[R[XTVRWSZ_VSXTRYVOTWZRTQ^YWR_ZQSVcUTdR`Ub[UOV_T_\[[Ve]^ZXY^PSXT[XZ]]XW[RYZUNP`VT`ZaSU[]YTZUXTg]LcWPadQS]aTYUbO]aLWVZ\[\ZVW[[_\^U[TWVXVUY]RX][\UQSUZRVZ[VZW`^ZW^ZU[YPOZ[ZceVT^XUZ_Q^WSVR_TcT[SZYZU\YVWZZ]W[aZZUYW`UaZ\XXWV\WQdjeSS`_\RXRZSW^]^aVb^T\^Y\`UZ^Y^YgV]SRTZ^WVZXWLYX`SQSZdWWYXYM]ZWXZY^VZ_Q]TZYOUUTW\]Y]]dU\ZZWQ[^_Wa][^Z]UV\[SQRU]XcXXX\\`YfaUbTX]RWZ]^Xb\ZYT[]aXOX]_]TR_RY[\PS^SX[[]X^YYYZ_Y[XXWVSaV\XT^VfWXWb`R`UZY]WZ_V\aWcSSXZZRYWVW^\VY]\aYVXgWX^^YTV\Ua\bURWfPT^]\gPQXYUO]WWTQYWSXUU`\W\_XVWW[c`TUWQZYSP][aT]LUK\\eaWVMZ[]VVZZ]ZVS[bUVXQV]Y[XVY]aZT[RMWS[\R`ZWRZ_\Y\dKVPYW]QXVTPTQXQ^ZWbW\\ZYVZ\]WYXR_UTZTYPVXW^[]YZWbaWXZTSZ[Y\\TPQaO\RSVcY\Tb\V__U\VWPUSiZUZZY]\`ZWR[\bZbTQY\^]ZW]X[UV\QV\ZVP]\`T]]Y[OUUZOTWTYF_OLY^WVVZRUZYZZUYNZXSTOYR\`PadVQUX\\`[_Y]`]VW[^ZZV^NXRXU]\SX`S]]TZZZYWPMbdWX_]QVTYSUV`VU\WYWZX`VZYYUVS][XSU\eSHROW\XNaT]_UU]]WY[T[ZY[aV__V^Z\[VgXSa]TX]U[^WYWVWS]Z]\YZ^[VVZWS[\j_XR\Z]SY^XYV[TSP\Y`XYRRXWZ[S]X]Z\ZVaX]WVYP\UVTZ]]TYTXWV\``VV_^\a[WW^S_RbV[QjX\VcYWW[^VY]Sa^_dbXYS\XbXRVSUXXW[^Q`d]Z[[SXW^YNYR[Z\YWWYSW[_Y\Ya^_Y]]SXYYYT`[U[YRSRT`NaXPcYUd[MX\NVcT_O`_X`^VgWNP^MScYWR\R^PW]VhZYZZSeWT\ZPS]]S[S^a`X]ZUYW`WTXW[VQPTX[N\\YUOQLVY_Ua^VWXPPRYc^QS^ZV_[Y_VXOWZdSMY]]YW\XfVYb[RVVX[`XT\e]X[YSdWPT]RQa\^gma`gbTZbVeb_YYXTWZiSVY^N`\\TTZLPb]Q[]`[XXZ`dU]RR[^[Y\`RVWUW`]^YZ[RYPb\QT\W\g_YVTZPVY]ZX]YYY^[Q_XY_[TRUVfZYY^]X_V\\Pa[b`SQW[TUZN`ZYWRSY`_^YW\VYO]^aT]ZV\RWW^eVUQVPSTWMWg\Te[bWTWVYX\^XWWZDYX\]S[X_SO^\ZX_YTYT_T\XUYZZNOWXZVWV`XVT]TUZNcZaZXXdVZXSQZX\QT^^UcWaTRT[ZT[]YQU\VVUbOfYQQW\V[YVU`YVMRWY]YRjXYZYIOW`_V\[V\R\LX_]_YUb^T]bTWFX`\[YZWXgQ_]^UPY[VaPlPX[\VS`V[WVT]KUSVPXTOb\]caT]\XVW[PW[PXZ`X`VfWVXOY\ZUWUK_X`U[cY_WR[UUQXX[SW[ZVMTN\YQ`aYNZTWdPPc[UZRW`\_XPXXV\WWYUcZVRUWUNSPaaY\U_R]TV]\YVSe[W^OS\[[XbQ[][ZZTNZ`\_NPY[SaVUWQTUX^RWWdWZZR\^_WP\\UPW^k_ZS_U\YdYYWXWTVW\UY]eY[WXYLZWTUVS]\\WRbUaSXU\[V\SY[WLebLWQMa[TTWT[TXZXNXRPXRbVU_`WZXb_VWbVSaWNYMVbUX[ViURVYVZcYWW\R^XWaWhOMSTVUa\QVZY[_hZWRUULW[TR_XNbW\O^]IUUYX`WZON_VPWVRRXUTNh_UXMZZ`U[Wc[`YZRRLV\a]Z_cTTYVhTXYYXSDS^YW^WYZUOXVVWLU`^Z^]PYSTYQQZ[lWZaSRaaYXVUZU[XUU^TT[XXQWXSbI[YV_[YZY]^UWdPSYR[^Vnb\S[^ZX_X]eR^T`PY_]fUYRUPW^[]ZSQ]TXd[YM]Y`\aUS^\][ZX]XT\U_Ye`XQUV\UTf^[^YZ[^Y^PU^^`W\[SeR[YOTZ]WVRXU\PRZ[bPT`YRa`LY`V\WVU_JP_V\Y[Q[VVe[WT^RNSbZ\W^ZXXZU\\bWb[[UPRW[[^[Y[^bUTVZV[cZ\UXYPQV\T`eY^Wr^V^\[WRbWXYXb]VR_VgUZW\TeSd_X_V]TOZbX]\_XVTWWaXTgIZPWZ]ZeVbYNY_Z]_Y`YcW[SURW^RUXPW\c^`]X\[U[aXUX`YQYUP]^^NPZS\Z\YSU]W[^YX`aX[YXW[PRW[_]YY\`T^][UZaXb\ZXTY\UTVZ[V]RW]^WQVSaYUa]TSWVOh\I]YQ\VXWaQZe\^VQ^][ob_VXVeXU[U`]WX[PYZP`\U_UR]XSZXXY\R_[XV`U[]RZMT^cVXc]V[\Xa_^XXZSR[Q\SVTc[XVYdP`\aYNUZ^Sa]SU_XaaTV`\f\KRSX^^^bXaQNW`O\UVZ\V`XWY_XdV\^WONQg\Z[[[Y[T^cQ_JNYWf[Wa[_ZRVYRS^Zb]VSa^ihVUW^d]QXQcVQXd[[\ZiPW[_^Ra\Q^YSUX\TTeYTV^WX[V`_V_`b]\a\Y_\^^UXR``aYV]VY^\\^]W\Z[\\fVUURMXUO`YkY\[ZS[KYYQXa[i^XdUYaV[[VYV[RXWQX\bQU`UOXZQXdZUZWYWXV\S^[^aQbTXp]YeVecTT]]Z[LbfRWQd]\Qb\TQbVdUWX]\fbXiRSS]_]ZUVUa`X]^^]OV_^mVWZNY[PQdgMSNYZTYYWa]MTX`eY[ZYZeTab_ZWZYY]RY]]XZaWgWZQ\Y_TS^]Q[`TVVbWZKXXd^T_]V^UUPWWXRQYVbN_SRhVSdNZY[TUXYUSVRf^_]]dbXSPc_RUZYZcNPTZRTXXX[^W]TXL_QF`bYPN\P[Z]ZXaV]Z[]\U]VVUVT`S`_UTTRTmfS]WQZP[dRTZaV^ZR[aZaTU\Z^Z[XZTPTO[Z`c]_VGV``]_UWY\`TTOYbZX[`XW_`gSTOV\a`K[YcT[ZY^]_TiRf_T]X]^XWNRVVaQW][a]SZSZRN^[[]YZVfVSXQ[WPcc[QTa[_[SWP_TXeWQ]S]Z\`]^hTYVYKWWYfXVXS\ZWQ[_gPVZU\\OgXVNM_^b_[[bWVYOaSYX^XbT]WU_W]fbZU\UYVT^VZdYXeRZ]Xg[MYZWTUb_dY^TiY\^[V]PSVPdZeOTeV_T`LPk[WZUgW_SV^XY`Z`UV\[VTVSV[[RaTV^YT[JSZdXS`dN^WW`^S_a\[Z[^][c^_YOVV]eUV\T\UVc][ZQWNRQX^YZaVTXSYUZ]`ZZY\^PTjY]TYS[Q]VZ\\U[UXUZXO[U\[YYUWUX[]YVZ\Q^_XUkOOW`PTb]a\Y]Va\dSUU\W^G\MZZUO\i^PWZXVNWO^][VZUPTRVZZUOZLb^XVZYOTUXaX^VWXWYaUSP\Y\Zf^X\WXTZX[]XgcVVRWeZ]PbTSTUUYSNMR\WYYQZ\]]`PTZdWdZYTQV^XX\\d]__UYZciYUWTWTUW[XcVSWUX_[\RT\fX]Za[XU][W[XWT_XSQVSUXY\TSQ]LOS[YUV^\]YYTTYXV[ZQ[WQ`[aUW[\RW^\SZ]UT\]R[WQZZ]\T`[[^UVfQTYQ_TXU[WTZ\OSRRN`RY\XTNYdZOWeU[ZTWQU[QWTUbONc[]YRPY[Z^U\SXcO`_XOb_QLaN\[TRYMVXWfeS[URQWh\WaZ\NWUVc_WcU]V[Oa[[WZ[UaOWT[[QYcQd`^WXT]QWONP[VRSWW^PaROQ`ZbWS[_PfTY[[\YZTRUPUKU[\W][U^LfW]_fTSV`W[[\VXQ[`WYZLUY\WR^P\^ZTQ\`\M\_YYQXSIQYTUiXS]VUf][`U]WM^XX[QQ_ZLdiLS[VPcXfZZTW[_iX[PZgQTef[WTdNad_YSRZ\XMQU^YbSXXUX[TQXVaVWQ\daQ[UeiW\aaYMWQW[PX[a\WSkYZShVTZ^]URR\_WZdX_KUWTdXZYW_dTM\`TKYcjYacV\]TOYaPW^V_NUZT\YT\`SS\X^Tb[XXWQdY[VVYTTY[[Y[V[TXeW[W[SX\XJZcV`E[_ROPaS[STbXVTYS\TUUV^Q`Z[OYWO]R`VVmXea\R`TZ][gVY^ZZ_^UZYU\Y][SRZJTYaRXY_]SLY[oY\]QaZQZWVO]W^][Y]YP\\\]YX]NZlWTQTXSRXVbZ^Z][fb_V\_QVVahZTVPLYZW^SZ\]QQZWJhYZUWMWaVaXTSZS]WVXY^WX[]^MUTZ\TX]Y\PN^YYRXYXaUOZXRjX\I__M\_[UPV]SW^mVV_NVSVV\XWY[VXX^O[VXS\OWSfV\^TTYYYZZc]^QWS^QRXXb]iUTXUYSZZdYX[bSRQ[U`VX\W^UU^V_^\Hb\^SY_UQ\WUSXO\^RT_`YcX_^\YY`Y[Z]WZZ]MRXSYgPYWZVGUhTT\Y\RcUWSRT][QXPP^bQ]_YWUa\YTU]VX\UWV`PZWbY_VWZTUOOYYZZZX_TSWRo]YWYVYm]\WUWY[g]OTY_OV^cTX`PZ\R\]X_fXUX_eY[YWRKXXY[Ue_[ZWaQQUVYOOTZe]SS]`VUZS]]^ZUj`W\a^^XZ]`[QOU[YV]a^R^`Xe_R\^[ff__cd[\ZZZZUYUVUQ[dXRV[VVYVVR\XYSXYVU]\PXUUTeUR\_TPZR]S^[WX]P`UYcWWPWW^[^YY[XVOVd_\[WYY[]_`VWZTW`ZX\UVSV\][aSPRWUTaYYYbMf\[YTVSXU]S_]XVORV[ZSVWVP\XUW\\We\`XRTiV\TYV\U[fQe_ZXUVjX^VUW]XYZcY]KUZW_ZUX]\]UZTU^]UUTVQ]^cbZc\VOY[Z`TW`XW\X]WZ`Z^VQTYTVX]U^[TZW`^a`d`nb[UZcZV\ZWUY\Wg`VU[SW`XUMVWa^]ZPWaXUYTYY[XX`]X]ebX][RXZUaSc[OSWW[WPZ]WQ[WYSSYVVV]^aYSP[YiU[J]aSW[PdUNVWZXZ^YXSZWb_^iNU[UUP\SS^^W``Q]_]UXNVXYaRb\veT\WRZSZX[XYT_ZXWWTZJUU[_S`KY\Z[[QRJ[d^`[a\`UYc]bVXWTbZXWYUdXR^`[PMW^Z]K\^SV]]Z\ZZSRW]Za[^ZaU[ZVYT`aV`V`TZ\Z]ge]WVY[XiT_[\XXuQ]VWUP[_^QR[YZ`MZTZVXZ^O]`UWc[\O```US]`TWc]fbbXPUZ\Z][JV_b[ZaQ\SQ\[ZTXSZNSU^]U[X_\T_\ZUgabWiW^[YUeZYY[SVV[``Vb`VXV]VSX[XXQ[XOSa\JZXYZTV[[]WVWXVSXUT^[VZS`\ZXZSPPX\]`XSWWMYX`d_cXQXP\a[cY\X`V^cYVURW`_Q_WQcZU[Y^RbROZRPWUbRT^VZ^^ZNb]UYUUVZ[XTUTUTRPT[XV_XUL`OUXZT]`][RVeZVTWQR][VYXZUSM[XWVSVUSQWYRR\QTR^aWQYdU[ZW^QTS^cZ[SaZSZZPTO`V_XZXTaW_]W\[SQXSZTPRacW]WdXZfX[\POVZh\\U[_UcR_KbfU_eV^S^`TZWOZVXYTWQSXYYY`Wc\[U\^SXY[ZZQWZRUOSZ^YbWObX^\WWWQJXTT\\X]VWR]ZWYcOeYUSTX[]bYdNX[SZWQPNPWQYU^ZUWWeZYWeVhZ]T]UV]PNPX\Y]^dYQUXY_WZ]SZWYRVa`PZjYZV]]QM\SRbSQ[Od`\e\V[ZYS`^_TRUTTd^Q]_`QP]QX[hU[eY\^[Y]U^WQYY[QTOTTV][`LbR\YPW\XZ\WfPRWQWTVX\ST\XZb\hTXY_LZU^W[WSWV^Vbba^UNaPYTNUlP\^ST]XVNNW\XXZPbV`\VbdcaTUWT]SSSdYUZVVT]_VNTZU[]^YWYKR^^NR`YX`dQWWVOZ`RYYhZYdU\cZ^\Xb[\XV\TabcVZUX\TeOTK_TcXa]``X^]fc`VZMS\^ZY\SZSTX_[XY[YXQVS^]_T]PU`OWXVa_]PeV\YiR[XPKXUb^X[_YRXZYLRX\WYfRPS[S\N\TUYWTUT`bT[PRUOUScd\_a[YTRQVRXNP]]YdXmR^XV`\WaQWW[XVc^VQY[S`TWZXTS[K[WPYSZZ_aNQUWS\SWP_UbRZUTYYUT]aS[__`OPQ[[fY]\XSXXTleW]TZYicQXXJ^S\RXGUVT[QP_^WI[]WZSNVLfQ]SUa_\XZUe[QQW^V^WTXbXYWVWZX_a]eOd`bVZUMZWL^]YX^\OWPRT\\b[PYUYSTWZM\_SQVN[ORSX]daYZTU^^RXVaYO\fV_T^W_\WN_Ra\[YXTPQ^^]W\RPb`LTSgbW`OaUXTTWXKX[[\QTW\\PWaSZ]_TgYg[ZY]c_SXXUV[WZX\WWRg]W]PT[R_SYR\Q[\NXX`U\cRVcXWcaUeiTS\TT^ORW[YUWYUYSP[_T\[WXSU[MXWWV]Z]ZY[XVYU`ZWYYXWVWW]O\X[ZY\TZYV]\YNXYWT\a]a^WV_LX\\P[]^RV\]^VVZ\^\TVRUT^ZX[WZQ_\aZW[Z_TXYVZlT`WQXUc\bWZSWTX__WWdXSU\_T_MRY_ZVY[SPYc_RZZM[S_Ra][^ZZRWWRSXW[^]^_\W^ZWRaURXWS]\]XXYXYYVUXVRPZWWTY\SV]VVTZ_XRMTSSX^SX\TZ\U\US^U]_[TcPNRd^[UTfSWWcYMTLZ^fWWYSVYY^XWWT[c\ZdQZQW[]YYVS^W_TXY\cV__XcRaTVYVSOUZTY[]\OmV^_YZb\^ZZWZ\O[U]_RS]UVTTTX[YVQWYXTSX\VXX^]PVWPWWU[RU^UZ[XYZZO]Y\aVZ[[QVZ^[Y\PdP]XYTYY_TYYYXkY^W]\VQZX^bT\a[^^X\W[WYY[\]Z`WVX]_X\VQVU[SZTbVnYQV\h]]][Y[Yb]V_hQ_^_[_bSYSc`\VbUVRR[WTbZPkNVYW^^_TcP\][[`ZgW]YQYV^VWg]^]Z^TU\a_aWV\ZU\SVha^QRP[V[TZRY\X^_TUU\]W\QZTR_aYXWVaVTY`U\WRUZ^T[VYUNQ[UYbW^UX\fR`MTTVWdX[ST]XX]YW]TTVXS[^dXZ]]gO^e\XS[VZ_^\VdUWXbc`aTZ_^W_YHOZ[WQYWfbVRXTT[SV]WPf[W_ZSOZ\SVSPX^[XX[WX\ZYYWR]XUX`RWX]RWYTc\P_bZR]XRZ^ZV`VT]XURQ[PZ\bRWQ]UTVR[jR_eRRUYUWV^k]V_cZaUZ]RYaV]cY]P_ZNbU_W_[WU`\PWRO^XTYFLbeTRX^\aS\]^VUWST_aWV[WZWZZRaZU^V[UY`YS\\dQaNXUM[dReU`XVW\iRX[S[XZT\SW[Z[T_XTQXU[dZPVX[_XVnQVYYO_VZ[TW]WU`LWZRWVQPRPXUO[Y[]P^MSV[WZS[UX\OVVZQ`ZYbfX\YfP[XW_SO\Z[N\[]SVb\bYfVX`W^YUUTYVeZ]U[ZmUUZ]TPVZ^`][a_V_ZWXcYVZ__XUdV\VTbY[aXXdTY[TZ]VZVSYNZZc]VVR[ZUROdZZm^ZWWV\YU^XZTXSTX`YcVRcR]Y[XVLUUO_MoPY_RZV`\Ub^_TeXX]ZYUXY][[PXbZP_WYS][a^XNRmbWUS\`VWW\_Z`bcUVRacVZaPT^ZSU\[Z[\Xa]VY\\\^XR[VRUZZV]Q\ZMj\Q^ZRWSbSXTKWSX[JZPW^SWYYUUfVYY^WTTZX[`UWbW[aYV[RbS]VbVi[PT_aU`V`ZOUOVPZp\T\aVYVOWmVXT`Y\OT[_STXXQ]SZWX]aRc\]]^cY\QUUUZSTYTXXUZXNZUZ\U\W_Qi`Y]PXeTWZRZXPPZW\W^\TZ\VZU]]dW\QS_Q[VT\X]T]aWadUTWT[KbPXaX`\LbWfVXQYRR[[Y[Z^VRPa^k[QXSXNbVSXXV\a^TVUYXZWaUQWWVXQW[URX[V]XQWY\ZJYYTUaZWVM_V`TYS[_SVM`YMWW]VRXQR][[ZMWPVYWXQ]``U\XTXYVVM_R[XPNVP[XUKW\gSQ]VTR\W`^Z`TSRZYOYYM_U\[VYOc`SQWYXR\SR[[d]WRVYeW]W_UTaX]OU[S\V^\TYS\TYTXW^[UWaYWVMVW\TcTZRR`[aX_^[X`XZXZ\USThRYUUe]TZRXbS]OWUYLZ\YUPYYVfRTR\]VR`NTWTR]WXTS\a\KYUYVXT\Wf[TYSW\[[\VW_UbR\\RPQWTVZX^WUUZTXUZVVM[_]X[Z^XSWZ]\gW`U_WTU[[X[]Xb[LVPQUaPU[WYRUZXOZTbROX\X`_^ZckUbeW_`UWV[YZ\_RYQWZYWORU_NVLTMZWRWY``\X_`UZW^VWZ[b_VYZQSPZ[VWcWeX\[oWUT]]S[UY[Y\ZTX]X[WVXM[XeT_ZPVW_XZ]`TY`Y\UXXM\XXaeZ[ZV[ZTSVVWXa[^XR`\b`c\UW^XWW]e[YQWSVUYXY^]V_VYbVUbX^UVTSTZWUS\O[WYW\_YWQ[YJ\SOVUYZUVUV`MW\WbZbW[MaT_^OZbY^[YSOSQ^LXSSTZWcU]XR\\\U\SWQZYQ]O\VX[Y[S[SZVUYYdYZVT[]_\VSS`OTVS\U[[\cOXXXiPR^\ZPWYQ\VWVVXYVY[__\ZLYX]\XSX[]_ZY\]ZXSYU\\ZXT\RS[KbVV[U]\Z^YZP]bWU_`XWa_YZXXXPTQR\YTWZO[[XZa[TVYO`VSPV^RZX[S\jTfb^cZZRI[NZ]UbZcV`bYWQY`S\_XWX[]Z^[TYWZYWZYQT^]]MTVXURP`aSaXiWW`S]PcX_[^R]fQZ`UT^WKZO]WS_N^\UWXPT`RYaYY]XXR_TXX\YVTTUTbYQUUUg_VXXZVU\jVRYYQV]`\^bUVPWT]d_SV]VXW`ZMU]^ZUUWaW^ZV\\WTWUeRY]^YSVX_WU[PZiXSU_]RT\]W[XP[V_Z^OV]cZ_YXb_RQWYS[SSR[aU_h[`T\\T]`WhW_\SRWlZY`QWdT\XcW][ZWUVXU\\\`WS\V[O`SY_YQX]_[ZZS[UcWM[SQXVR[Y`VP\aOYQV]TXWTVWRW[ZU]WWWX_S\[`PTXVXbYNWVZ^UgV[Z^^Q\bZZ_hXU\YV]WTZ]R]_UYcOVSWSY^Y[WV`\ZVX]]c\c]\ZXNRVhZRZ\RPZT]U[XKTMaXW]U_`[TRWbSKWVW[\KU`ViVSLPW_VUYHbZSOV\]VMWYSZYTaS][Q`QbV]WcY[XU_STVSVZeY^XZTX[bkWT`XYQS[XU]_[ZXZU]XQWXWWbWSO^\YO\`WeWYYcWVN\SVYVT^[X[ZTWUU]bZTaS`X_\SW`]_]OSPS^XfYdUQc_YVVf`U[]TT[KTY\VVNdR]XUbZWOX_WSRZC\NXRRRW[USVY^XNJUQWa\b[^RYYYVX\`U^]ZXNVVaYSVVPb[W[X^WWWRKd]U\MRWKU\Z[X`V^^OVWW]VYXSKbZQRX^XR_WXa\TaQST_XUQXZgZ\WWYNWYYgXeaY[^\YT_WXaWZUSfaVbYcXX`R\O^ZXWLYRWaYRQU\^YT]WZRXZTW]ZVZSX\S[XJP\RVWZ\UgSSSPnWQZXYXSLX\\[WTUW`PaU_TX\`VWLVVNUNXLY[[MX^TcU`_cVZVUQ[[jUROR[K[SX]]W]Q`UT`V\X\VUZ_WeZ]VUaaYXUXVVWVRaRMbXXUZYcYa_TUbTUU]KX\R\S]\]ab^QQYSPVnRX^\ZfVZ_`YZVWdUNYXZPr[[V\XLdoZYZ[WZ\W[Z\_UVYS`ZZ\_R_V[T[`]XP[SUVVTWNcb^Wb[]\UX_WVc_TZVZ`]\ZSXT[V^UUUZ^UT_\aUQRVNP[VV^RWXXRRT[Ze\UZbXWVRTb_HZ^YW_XYXYY`MLWW_]\TXU\QUrWZYWVSZTYQWW`US[_T_T[WS^dN[Kg[UbU]TWRS^XZRS\TRVb]PYfZN\YWZT\__UW`V\iMZ^TXW_VZUU\VZX\[TUY\ZN[T]Z`iWOOX_[bOXZVS^b]ISbVa`UV[[aSVVZjWfZd\Tb^U_ZHW[UO^J\T_WST`a[^Zb[]TZYQN[dUXhQaSVUbVPR]WW\O]]c`[TU^MX^XPPY]MZWbTlT]UU\`X\]bcWUS[SVXTQYYQaZWW_UbW]UUNQZSZT[XY]TYZW[S[VPWYVT`VaUW^XYUUX_]Z\^^_\W^YWX\[OZXV[ZYOYPWYOWYV[ZXWb]V\Z``ZRS`TXU\S[c]YXYQ]QU[SZYZQQ]RZZ[b_WYdYY^\S\VRWUVZ]OR[X]WQYcXWWUSXZ\ZTUWRO^bZSa_O`\X^Y]\T\_ZZ_\VUW[VWV\Y]b^[WRT^W[]^b_`XY\ZVW_]Q_TSTL\]YZ`R[_SUVY\UTXbZWVYYWX`[[[aWR_][[VNZV``ZR]R_VTW\`^\VV[[^_\TXO[R`Y[Q]X[ZYXT[]Z`Z[TZSYUYW^WRWOY[YUVWRS[TRWTZ][[bYT[SY[U_^WQSW`dWZU[TY[Y]gZYW\YWPX\[XPXc\NX_SWYP\b`W[UWN]Y]R^W[ZXV_RXY^[[URU]W^_WX^RVNVT`_Y^VWZVXa[RQbYVM[NN_TRZ]WZbV^TWSZZXUTcW\RZ_X\UYSTSWVZ^V_\QY\RaZ`WXS`YcWZT[V[XYWVZTY][T]`\^ZZWXWV]N[YOa`Z\SRTSZYVXV[WVXZbY`SX\T\ZXTVaZgWTRV\ZYU\PY^VVX\YW\[QX\`e_Ye[^UfUbSIXZ`X^\O[^URVN`UWZSK[X^UR\\]XX_ZYUXQaYT\X^YR]L^VSN\W`OVX`U\]fS_`Z\SRV[]]VOTS]SbXQU^[TMX^a[]X\WU^XTUS_U[]MSiX]TM_UYYWPQZ[SVWUUWUWPV]TUSV\QLb_VaTXWXMYR\_\V\Y\[\U^b\X\X\Sabaca_[ZYTQWQU[YT\Y[a\^[eYNYWXb[Z^]_TXW`\`[^[S_W[WU_ZX\XUT[QUS_K[YWU_YNUN^bFZdUW[VNX^ZRM[Y]cV[[]X`S\SXSOXZUSR]ZV]Tc[XbZ\VMRSOT[WMZP_Q^XUUfQVZQV`WZVO]T^\VP^S[VVaZWTRS_OSYgaYV[Uc^\VWYWfVW_N^__OPRXhUWN_UXPZW^SW`UR\\ZXXig^Y_\]NTX^YQ`\TSV^[GJYLTedXbXV[VUQ\PZbOWXJY^[[`\W`WV\_U]^U[_Y\T`UWfOdQXUXNX[OTXOSUQ_UV]YdaUU\\YX[]`YZ`WR\X_WUT[Y\U^]YZUVTQR]Qb[QORYVTS[`XWS\`dUTX^MF_YVXOTRWXWZ[XYSWScU]]V[U^]ZN^WYW^]VR[ZSOPVTZ^\_U`]dh\WV\XVYXebd[RWQ[]VLYXSPOZZaTOSXZZa]SbZK^Q]Z`YObRXeZOj^Z[MXcYW\[U^QT[_W[ZM\VW[Xb[WUXd[STS]WSa[]YVYQSZ\SR[S]UUPS`Xa^_ZYZZWSTSVBQdUL`S\]\XccQbT]^cZVdadT[`TX`PTV^[XT]a[QNXUZ\RVaX\SZWXXWbUjQUcQW[ZFa[e\fWcTY][S[jZ\b[]S[XV\X\ZbUYQYW]SXYYb[[VgVYLX_U\`]bX`YY[\Z[YR\MWaMd\YRXbQW[VYX^dXbb^W\Qfb[S[]YSTWW[aOUVZYddXW[\aWVV_cVOSdTT\ZWiWY[SfYZ^^SXb]TUTNSQRRYU^ORUSZTWPZRaVOdZUURS_Y`cTUYVPUde^`QV\ZNLXRVKR]TPWQ`e]NV\[Z[X^N`S\Zb^R^Y`]J^[UPUY_YWWZTSc\SR[`]_``[XN_^]VZ`WZR\X]]Y[JW[T[WaZZOU^T[bfY[SZS^YOU]UWeWR^`XY^UY[N[d^]X[RQb[^YSSVX_]XZRbTX]YdWNYV[LQUPV[^][RXVUXXTUY\UZc]SO]cVTSJXUXWQKSSaYQKf^[WT_TZUcSZ\XWTTNZ\[X_UXTXV]aZ[UOXXT^YTad`T_RNU_]bX`RXa`OY\aS]S\ZQX\UOYZ]RX\V\YY`ThaV_TYUf]QRgWSW`]]WSWPTY\Z^U\`]VXXYNUT\T`]`^T[TeXY`T\UPkWdPXRgU`U[PYYWXUVbRX^[Ye\TXVO\VQUW[Zo\WP`WS^ITPcVS[_Y][d\XP]ZXV`PV]_dXXRUeVWQ^SZW`RXZ[fXUYd_YYZeURTO[XZ`][R\J^\VRNXYZ^]T[c]cYVU\YU]\Vaa\UMfW`_ZUUY_ZOVO^WZXX`U^\fQ_PX]LQYW[\Z\X[Vb[Y_VWPI`TRUTTZbW[]XLQdTV]_M`_XWZcSZ^ZTXdg]V_W^RN[TWZ]V[U_`Y^Z\^PbVXUVU`TQ_UShOhaWWT`W_WQ`[\`YgXWT_Nb[]SaMPQX\WaQ[VLZ]VX[SK\Z[ZbV[ZXNVRWTO`OU\cZ[[pUVPWXV\QX]UWM\\^Y_^\WMVXYZST]RZ^[PZW\ZS^YPROW[[YTQVViYP`PSWSPS^ZTQSY]NSeVM_STYVffRTXS^LUJYTY^OZX[\XTZZ`[SU\Ya^RSWVZdPPTYQaR[RZOWYYQY[QU\]SXYaS`UcWYMVR[TZ[S_T^ZN__G[^SYPZUUYWKeXZ[XY[TK`XRZZMSdUVWcXScaW\WWd_VUZYT]S^XcU\T_\\[UIWZ^]WUYYS\^UVQa[WWcVT_QTUVSfLYYSTTUUZ`V\eWVWYYS\P]XYWS]^WTRVH__XVLZYU]W`Y`VcYbRZ^PcYTUVXXTXZaWK_ZYSYY[SZPZXXTQ[P[\VS\YV`XXXOSUaXT[Ya\bYVWWY[XWc_QgSQ[\X]VPXUbRU]ViRXZQUST\ZVSWU[`[QZN`X]V^bXbVW_[XeaTRgU[Ta`[NfZYXSSnZQcLWUZSZ\ZZ`Q]U`UVWZXaXZ\VZNciVVZXU\QRS`XSZW]^d\R`\e^UZZX`WT]SZRQa]WUQQ_]RcV]NVYY\aMVY\X^TKU]^VbR[TXRZ^T\H[]T]WR[VV^SXTSWOVW[X[SV[NYQT\W\XWYSN[W[VS\UPZTNYN]aV`X[\YUZQXW]\WWaQbY[bYXZZXXSLW_[W]RT`[Q[XS[W[ZWUXU`[dRSZWc^U]VV`VZ[^[WVXQVX\WeUTNSPYS`SeViXXXNU]W]bOW\TZXe\\SaXRYZ_]\mSX_][PUSUT\[^\X]WXUX]XX^]OYH_XY]U\Rd\`XUO]XOUZUYZeNVUT_cdUi_Xc\U`cSUU^UXa\`TVW\Zdc[X[Z\UXTQJeXRWXUQTTRSVV\[`UZ_QR^MVLY`M[M]YOdTL^QVaRbXYXcTLY[Y]jZLn\TNRLTa`\T`YTXd`WYTRaPV[]\bOUW[VeTWcaTQTgZRR]WTS\VS_X]b`RXW\V\[U\`\XZWS^_OQUcXS]X`QWSZZcOORd[YYRRTVUYXR[UaY]QSTS\dYM^YbW`]]ai^Z^\XSU]U\MSX\[PWaY`VXVUPWNZ_[_Z]USX\WcT]\b[^X[ZX\OT[N[]XUZc[PP`SXd]P[VTbXZ[]V^]QX]Y[^W[dWUQ[SXZ]WO[Z^R`]XT[V[XTQRUVI\ZWZUXZVUUUT_^fVXVS\Yc]aU``XRYZS]XbXY^S`UWSZ_fVV[[UZWQa^[V_ZWZRZ]XPX]SO[ZR[]\mX]MRQ\UV_TXR^_ZWaT_YX]YcRWXY^XbQWV^UZ`XQTdW]]XU[\]PWY\UW`X[]L`ZXZYRfWXUQVf\KWbV[V[WWXZVUP\]^QYWV`T^WXQZVTWSYTSQ]\`[`\W\V[XSVX]XNRWS_[Yc\Vf\fZW`^TUS^`ZVS[]\_ZbbVYPV\S\Zed^V[RV`P\XWXZY[VYWTYWWZ_LYVUXZ]\YVYYXQ`ZRX_YVUacNVTZsVO^UUWXTQQ]YX[\VZZa^W\^RW]TS\\QUYWVY_`TV\XXbbd]SYXaXOTV`R[X]XUT[eV[jTK]V^^Y\TUYWT[a^PaTZQigVRYcM\cRObS[XZS]XY[`U]_VSXa\M[^_b\_Z\VZU][W\MUZ]VWUWZYRXYT\ZXYSV\TY\^VSZXUU\TW__^NaXZX_]_aZ_XVZ[WYYVW\XbYN\S\cX{P^[YUZ[YWeXZYiWWXY^_n_eUYYeZ]QS__h\_Te^VTXLbWRYRT\UjaZ\Xb`]i\[W\Z]WXWRPWaNT^^[WX\RU_^S][TV_WPZ^e^^S^YER[UY[e[ZT]\R]aWVV_VaYcZUX^_eTWXPVZ\UW[W[[ZcQVY`\\]QT[T]VUSb^ZX[^WXY[ZV^ZbfVTW]XVXi[[ZWZaR_\\VXPZdRf_XOf[^VVXYQTY]YN^`[QTZY_XX\W^XVZTcT`lO^^i]]\\bWP]XYZ`\`S_YXZJYV^UaTkS`d\TTZZYYcRXXc^Q\_VPXYWX[aY\ZgedXFVUKYf\UY`SYm]bUhPY]JYiPR_WWYYSZXV`RVUSX^YVWQ_[_g_]ZZ```^bV_aWeZYY\W\Vj]`[T]OQ_WZSWXY^\\^RV^TY[RN_ZeSWZWW_\\cYbPdXZT[SZXWKh[QbO^dZ]XgZTXN_aV_`VUZ`YXS_fXNYTjPOWdZhdYnYP`YUb`cNV`XVTX`XWV^fSYZRVX_WT]]^[^]S]T[WYXT]V\M_gWTWXM`SPbQoh][Ll[\bY`X_\]]MdXZQY[[agXUYXZWZYZSRUQPb`U_dPXTZU]QYZaSYea\]UYQYUcL\__NY\cZZ]cNZh`VTR^RY[RaRnh]TX\YbbTcQX^^QhSZZPTYVVYV]Z\]`_sTXY[Y\S^]QXW_[]MV[USR\`SZRQV`ZUXT]TZ]]U\[LXPZ[WSYYSXZUUZOY][VbUU`WWU^U[UWYS]\QYWaVW]UXUVZT^R_X[T^[WRXR[^YX[WOSZY\ZVVZ]W\]WTWSX`SQYVYUWY[TQY__T]]R^OYW]XOWdZ[NT\U\VTTYaRUZWeXX[VXXS]a]VOZWTT[WVURW`XaZTV[YY[_YQ]YVWZWbS^X]bTY]TZ\bV\TYSYM[`[V[`U^QTZY^Q]_WTUR\]ObW][ZWTe\]YWUXT[ZYYU\[ZWUZYVWUY]_YW[aVV[\XT[[XY\M\ZY^YWP]][ZVYXYZPXTVX_U]]Sa`WZVZ]RZSXPUYTYNaQU]`M`RY]TV\_c`UU\`TUXUY[UR[_T^U^VZWZMPVYO[U_ZR[QZYQc_[fVQZUW]^RWTWXX]TQU\]X]ZZZX\TWX[_Zb]VZXX\Ta_^[\UPY]UPYOhX\_\QW[SaWUJZ]\RWTQZ_UX^UNP^b[UZd_RZ`KUZdLU]TYW[SYU[ZRQYVWQb[XUZ]O^cUXZYMbUR^^ZT]XgVUS_[]][PVX\^\Sc^cZKbX^b[\[[PX]OXVQX\ZX]]WO_ekPUZT^PEZZXUXNR^VY[ZL[OWU_^Ua_VT]QW^S`U[ZT\\\YVQWRWZVXYVSS[c[j^ZQZ`TOLYRTVTaRUSKU\`XTZQ[WjTW_MdTO\PcUZRXVQ\O`[]^XZ^O`[UVVeR\c[WYUSYaPYUPPZUaX\HZKRXWdf`ZWbRRTV[SYYeUZ^Z]MV\W^UTSYP^Y\g^^_gUU[\bVY]hbZ`WUU`]RUTYZ]XTJZUSRPTWWY[TYXSXSRNaN`bY[V]\[^UQ\VQT\U[Y^[Vc[Z\PYdYXY]^^YXU]Z]`\O`NYU^]]W\aaW^\WT`QS`XUZTVQS[Pa[UO_YZaWVZQXX]L\[QZ[^Z]]T[]NRU[_^TaUhe`[W]SZXdbR^\XZS`cJQVZXQ]TWW[O]ZZ^V`_PTcYYT\X]V\XZRbNgPa]_\a]bUXZVH^WU\WTbQaSlddXV\TbWReWXU]dK_TVZdQ[\]WN\Sh]]QUUcYZTTb`TPYXVZQMS_OUbQfWYRbfW]\T_[Xc\Xf`MYhN]U\VYU_hXWj[Wad_[_SO`a\VWWVTaZe[sYY`^^ZZYYQfYMTZfS_PbZXnkXY[aW^Z\\Sb\^Xd^_\RWXWU\V^XOYUW`T[bcS`ZWVWSYYVTX_US_a[^WV`OtfUXa_[_YXVU^WUYbaXTfYVOXTTaVa_Xcn`YY^_][aOSTQ]Q_XYLU\WXZSYeVg\^Z]\XY[UYUXcU\W][XdY[^PUZcV[XZ]RPbWX]V^RcPYT_Y]Qd^WZW]\_PZgTPZSXS_\eT]a]VM\gW[YT_d[Sa_a`[Zl[^TT\WVR[Z]d[ZZSf]dYTYcWbZXUZY]TdXZY[^RSZ_W`_SWYWU\\Yb`b[Xf]WXZXWVTSdYeRZW^VY\[Z]V`QT_]XU_RWVRZT\VX^XZU\bYc]]YYZVgU_g_V]xT^QVOYVXTX\hbUXX[XT^[KQh`[Z\d_ZXiQ`YV]V`Y[SZZ]^VUZZZYURU^QVUcX]U][\Ya\XZlUm`[^UV[`^V[\Zb[[WWWUWYaTR`a]\X\\\UZZZ^TZT\X`TcVNU]TW\ZmX[`bTTVc\][_SYQVWU^]]YX_YbZSbaZYWVS^NVZWW[SUWXVZ\^VWra\[[ZI_Z[XTT\cW_]aS]XYSX[P]XV_YVXVWbYPcYf[XUf_\YZ[SVa_[]VXUZ_ZWRXXTSVSZc[\^[VZ[U\ZTeZYS^\cVXZ\[W_[PZQYYSRTU[VXcbe[W`WUTba]\UP`WbYXkRYZZU[Y]Y`V]WZMXVVXRUWVYU\cVN_YYQVOV[WgSYR[ZWXPYU]SUSb\XP]WZX^ZUZVYTTYSY[WV`[[XO`M^^XUWTSU[U\PUVb\eV]\Q`VX\[Y]T\\XdZX\TMROVUUYWMWZZYXXeUWX^aPgO[^V]X^QTUU`WQ_QeULVVW[_S^^V`W\SWWUW_[K]abVSY\\ZVU\ZTVUUS_XVZW^]YPYQ]ZWUVVYVRI^Yg[ZSWaUYZURWRYZd^TdRUQZVSSM`Z[[ZYT`YM^QPQX]_cXZ^_WN[YVX]^UUcVa[]Q[YRUYZ`U\a[V]`US[VU[WR[^YU[cR[]a]`^`ZW[]^cZfUUcTT_QQXZYWPQQ]W\XXS][XdU[WdXSb`eg`bV^LQO]X]SaSZXYbP_VV[bSY^YMcWWdPXcQ[_TOabT_[QZXZZT[ScZUP]T]X][V_RZe^YZY[bXYVZPZUQ\PQZ^VU\^aXV_XbRP\[]YS\XYaXdTT[WbaIUbcT^]cnWfUSac\OXQ[YLPW[R\TZN\O[]^LbYWWURP`X\YPTUST\^TRW_ZW[MfRSW]Sd^V_\YbWW[T_XT[MieQ^T^Td`VZbQY_V[W]QK[\ZWfURVf[PZT_SPY\\Q\^OZX]YcK\XV^W`QYRZPYV\TZYcOT\\QObUXXWTSbYXWb^d]]_^VS_Wg`cY]]SXURTY_WUV^PZbLV[]aQcVf[TbXc][QZbTU^P^]Z`SSZ_P][XZOMU]QUdQ]YT\NOYXb_YWa_YW[WVZ^XVXW[ZYO[`TXZSX\jSYSZT_fVRR^TT^XgWYXVRTL\MNY\c^TR[cWY]KV\RJXNXc[U^NVcXY\VYRd\cO_N[YNQcYTcdQWZ`LZ_TXVY]^c_W_Wg\RYX^U\c]X^UT[RbY_[_VfTW]bSMSacOSV``bMY_T^Y^cZ^dVX\X]QWY_ZZX^ZZYQXVP]Z\^[ULTZ^_\RYbXYYWNQ_Y[YQVSYaWYTT`X[UWXV[V][US[\ZY[b^KY]d_[bYUZX]YZYTOXX^W^_\_bVVWX[^WYeSVQSO]XaVWS]\\XTVR[[TY_Q[ZX^U]bXY[[VQT\WZS^W\XY[TSJWZU\OWSRV_SV[UR^R[caVW^V_Y`TZcXZ]WU\VSWY\YTQdTX`QXU\XZ\YSV^XWV[YZYS]VZWRX`cOZVQZTYYTYSWSPVTN]S]`YYOTVZ]]bQ[SWU^YbW_UShZ^[XeU]_WN[_VZ\UMW\]Y`V[OUTdMYtcc[Y^ZQZZbXWZWaZabUUS\[TV[ZYP^NXQO[SS_Z]ZQ[NMXUN^^]TT_[WcgUO^ZYRXU\XcZU^SZVVRRXOTN_OZVQYZOW^WVYVPW_`YVWW\\`Kc[WX_S\XXY^QUUUUZVVX[QUYUZUS]a\QVT\XUPY]\UXZVQZSX\]aW\YWYXU\``YNR\ZXbW]S`Y_R^UVcWULR]X`YVVVSaYP[UZ]Y\QYWZbSYTWSW^U[_V]V^V_\T[ZY[\Y\SWUaU]S^T[cWZQ^XQ]JNW[WKUWUXWcU]XYWZ\R`YYVU[WZT\XR_cV[WRVQ_YRVN_WXTUZW_\XWU[\SYW^\OYTXXSaYYS\]YXUN]`[bZPWVZSZSQXVUcTUP\JU[SWS[WPXTXVU^Q^[T^PXbPXZe`WTZcUZWW[ST_Z[N]VWbSb[]^YVOWUU^RRcZ[SRZ^PU[YWTRWS\]\]V`X[`ZTYP[Z[WYR[]V^XXWRUQOT\ZZZd\U^VV]U\[ZYYPY\[]^[XQcZZ\^VPT\TZ\UTR^NVX_V\XUYYaTVZUT^W`UTN\U[aVRV_Y^YWQXfVQd\U[ZZ[[X_Y_KXZU_VURTXacQ`\\VY]X_dS^LeYYWSXY`QYXV^\_VZ\UXZ[ZV_aX\`T]\ZW]dO[a[OT]dXR]UQUWZZUWU[SS\TWW]VW\XaMa]ZUXR[W_\`VYRYZY]VVS[VcMr\_UY^YZ\W[XWXTSR`ZYYY\WTVRWYSWZVR^[YYQRa`RVUVc^SXZQ[VUQXXPXVbWU[[\WZUQePVZNTXT_QV_[VWV]XWXZIU]VX^[egZUq_[\VXW^YMXS]P`V^bWQ\]a`ZS^U\V^R`WcSTYdQ[ScONTNYYQUVTVZXQW`T^WVXY\^SdbXXTaRZP][WX[U]\XOVW\U[\]]PYWVWVZY`ZHbU`[Wb`i\WX]VWU\RYS_\YUOYY]VdZ\S]UXY\Q\YS[MYTTaXb\[R\TZTWVV^VYXVR^V_TPVVXZZaTQYV[T[]WXSTZ\N]ZY\XZ]XaZTRMXVV`]W[S]SYY_SVRR`ZY`WV`YYW\VY]_ZZZ\USYQY\RRUbYXSQX[SWWXVTYaTZcTZVJUTSOZXTYPZI]PX`[jPZ\]MZZXTYY\\`\`TY[_Q\SX^\[YeZ_YeXVVR\X_WT]]W[\YWYXdhSaY^`[SXbW[Y\V]iTXWfVVU]TdTUWcXZSOUQMaZ`[S`V`eWWSZTWYPVS^O^_Z_YRQI[R]PYVZVVMbT\XOTZXTPSIVVS`ZYVV^dbWU\Y`WVVWQQ[f_db^VWWVgZWZ_]iOMVXaZQRN\aTe[^XUVUXZYR_T^T^ZSMTXSWRVYYZ^\__WYTM]WZWZPZZb]VPUZW]VYSdXgVTXSV`eYX^T[VXV\NN[ZYVNcX_NX\\X]dWZJ^WTZVO__ZWSQ[PY`]Y]TXWVLQRWL`YQ`SYZWSRZYZ]RY`STbOZe^ZPR[]S]cXZMYWWYWQ\XZa^MZP]WP^_TXZbYRWSWRWM]bTX\aWRT_VWaXSV_ZY\VW[O`W\\[PZ\W^VN^ZS_T^WXQ^`]YW[YTVWTYcYUZSUWXXPR]Z\V_[[[Q[Y_W[W[S[TT_`[]V^]VWNVYeQQ^]_VaOPU`e`TW\\WQTYWTWZ\OU^^X\U[VSZVPh]^X\[[]aPXPWW]Q_YY^]Q[U`Y\X\]\PU[YUV]^WYTYZ]W\\U\a^XY_XZYTPP\]TWYWVUWR\ZSQWYT[Y_]VZTV[_K[\\\YTWUP`Z^YZYW^VU[V^WWYQXZYObV]YVSX_WV]YVURWSOZX^VR]Z]TYZVXaUXVWZ_UaVVUOY_Z[YW\V\]W[_YUZZLWZg\WW[[dTTXQT`RWYWRX_XWXSWUYP^^SYY\[TTSZO\XVRW]`TZ]\XYX][ZV[VOg[WSU\\ZYdVXRWZTMMUTZ[WebWZQ[_[]MVbR\`ZXY[fWQS\YUSeVS\RXYSXNWUS\RUMUXX^W^Y^U`XYZ^VZUW_S[QXQ`SRSWSYZSRXYZXSWa[\QYVXRYcPQ]aX[YWXWTYe[^O[\]ZXW^bRZ^]O_SVW\XORfO\ZX_QPO^TWXcWZPVW]^\TT\`UR]`ZUTSTa[RYTXUXeX\QZ]_Y`VP`]X^aTV^ZV_VTW[VR^^V]XY\X`T^XXMU`YYXeUUaX\KRZ^`[_YQUZQRMUUYSXY^cMST[W^]Q]a^[TVT[bVVOQX]]YaOZ\Y_[T[U[U]ZSb_ScRX[XY[\WZV_XYW[Z\VY\a\Z\NN^_PWV]b]XWRV^WWVMZPSf[ffUV]YTXPWXSW`eQSY[NbpWK]XRWWTd`\Z\igY\X^ZTY]SR^PVVWcV\STaoWZOTOVX]XMP[VUXZT]gZ]S_USTQRUU\OYYe_RY^]_Y`^[S]^VbOZ^PV__Q[_SQcWU^^YcUYXQ]RRW\PTR[V[VZ[UT^]\UYe\\\T\VYS]cb^gW]WU`RTVZ_aW]V]VRZXZXX`g[WWQ]cdfZ[XeZX`WSTW[b\Xf]TXSUYSW[\`_]\U[_\W\SV]`[Z[NW`T^S\^Q`ZTZ\_\XXWdUdX]]RX^X\TVWT]RZdR\]QOZSe[]TYZXXSXXY\__SUU\___ZP`[_Ud]P[b]ZZ^]WYYZTZZXPVQUT^[ZWU_YZ\S`ZZ_RRJUb_X^S]WWU]Y_]YTXWS[TP]VY\YTV\eZSU^Q]^`XWZYW^bd]V]^XXYZ[RQ\k\h^_WiTXYYR^]YUX^TU[[URX_Z]QWZQW_T_f_fUY^XdYbR[iW\SQRSTYU^[T^RVZbd\SZUUdXYY\\Z`Z`YSZWRW_QMYTZ`Y\STS__WYV]PPS_^W^RTYOcZ[ZX\[QW[Y\YSW]f__SXZUZ[QdRTeY[ObWU]TYORXS[\_b^P[[KNZX_`S]dVaY[W\XWTVS[XPSWXZQTYVgDcUUV[`XUWP[T`[YTY`XWSeRUTNVTOWbZ]Z]^V[^X`UaYPU\Y^MXU`SWfS^XUX[RbQU`SUUQW\[^WUZbOU^VYU^[ZRda_UYXS\SVZ[cVbQSW^UX]\W\[Y`ZcYe[VX\aWU]Z`PXYWQS[VRR\a\Sc^_\QJ_VX_WZX\XWYX^TVRXXSOUcWjYZ`\SdZcdWXSe^OZT[W[^]O]^UY^ORSWXYTiSTURZWVKY\Re\USSWKcZb\^YZVTTYRZ`[Ua\XiXVS]XW^Q\Xb[M_WWYVXRW\VUXXdYX_]]R\][WTY`R\_YTY``W_^JQ[XS`^UZUNVQ]T]cYX[W\TXQQVP`Uc[X^Z[mXVV^WQVZ[W_YURTZRRW]RWYSO\_UYY]RQaWRbOYV\MQUUQP^`U\\]TWLb]V`ISYchM[ZU[WSX]_OT[ca[\XY[SVSR_T[a_X_T_XaXb`UVQUWT\RM[S[a]\[UZV]WRUTZ]XcXJ[]^X`WUSY^^P^VUX`[P`bYZZVNcOV][W[WSZNSSYW]^S\TO_UZ[R[P[YYZXZL_[i]_XTZOUSZcSSWQ]XWZYVX[NVRU`ZZ]W]^WhacSV\bX^UY[aZ^^UUb]OW\KYTUU_`X_^aWZYW^`YWZZa`TUUcXVZV[VX[`RLZYS`LZZW\UW_]Z\`YMZQYa^]V\[YZZ]ZRHTY^RZ`U_Z\ZU[VPY_RU][\^Y]^VYOY^VeLhQ^]^XR^ZRRYWaR^UZ`Z]b[SUVU_RW][QY^RbUX_W`\`SRVfKR]SW_\U^ZTZ[^^WYXaZX]TX]\SW\_YaUb_ULQVXWWcYQ^\WZ[[_XiV_S[STc_Z^VRSaTQ]V[X_TRY\XY_WVaYVTWRSVY[XRcSUiQ\]XYKPQR[YRR]R[WZWXgV]Y\VXRc]]`PYRPRZZT\cQ[OLX]^ib[X[Tf\WTW^[USXWXaQYYXRW]RWZV_^WZ[PTVWUW[YUSW\c[WWWTYXWTXV]ZWQS[Y_\XQQZWTY^[\R\XXZ_ZUWYSVUUR]]YXWZ\`]__\a]VV]ZWRYWVYWUVXXZYWVUPRWWS^WXcYTW\S\Y_UXPV`XYVTXWTWYTWY_XU[ZTZU_XW[QWTVZVZM]ZYP^Z\X^WXWTZTVPTWUUWWX`OZ[XT\TSXS]U`T[ZSSXOabXVYVUUVURYdMX[\^RYU]]`Y_TVXVU^[g\QPZ^XW^S[YYRQXSSRU_\RO`Z_SUY^`[WUP[WZWW]baY[V^RVXT[W]Y_ZWXTVfUYRTT^WV[gZU]eR`V]U^PWTT\U[IXZWZTWUTYSUTVZY]X][Z]TU\UTZ^[UTSQWSWV^\TYZ[YWVUSUQV`\[g[^UTXUUSUYVUi]XZP[ZSVW^UZZZX^X_T[W\W[Y^[U__ZY][ZUXYWXQbR_c_V]V[ZZZ^`XRXYR\Y[XeWceXiZT^eceY[WXVYX_]XX[Q[][Z_U]SUUTXZZTeTY_[Ye\_UT\V\KXXWZ[\XY\\]U_ZXTW]W]VTTc\WUWOgS\]_Y^M_^XXYX_[Q\\^V[ZZXZ][WUSWZYQJ[N[^XYT]\SX]QY_W\YT`YKTVfZaZaYZZ[ZW[oW]aZWZZVR`TYS^RTXVT]X^YVW[WXYXRVWY[Z^SY]U^Z]X]PZa^aS[Td]X]]USaQXKYPTVVUaT[YWXOYSWa\ZTVXUVTddRYXS^T^^ccXN][\_S_We]V_WXTWZW^VY^WVTWdXrVTWYQ[c\W]ZXNdWY^[V`NPXQ\a[dPba__T[TaWb^YTdTVXVSWT^^X]T\kYZ^]QZV[U`b__WZea\a]VW_]WVe[\YYbUXYVSP\]aUT`ObcT_TU__`iWNaWQWId^b`SVNb[Z`[NV[VNUYMX]XWSYXRWUS_QXY_Q^WUV]ZYT\TR`P]UWZU[WTPUT[^YZSWS]U\XN_UYd\_S_W[_OSXXYQDR[\b[`ORaXegXVRUZhVTQY`cPUYXR]TJQQ]\Q^VW^UYYV]_VVVZT]S]YSTYNJYY`cY_W]]\caRTTXS`PO`TRWRcVS^[][\\_Y[^fZT\dSYZZcSO\VYTWVgRV]YZ\XTTY^\YYVVUNkSRZZTNRW^iQ[\WQUT\NTRTWNWb^NdUWZVOUZTW\VRYUTXcLX^VUlXZ_[YYWZSRUaW[\XUb\TYUNV^UZST`Q^M][]deUYaXSSY_ZOU_``[[T[a^][\T^VYfQXUWiWU[dY_`ZV[bQaS[RQXUe^M\\[aSWXOPTTVTSWNXVWW\`RRX[XZ\W]RR[W\^M]WZ_]X^TYYV\X\Y\a_c[VX`Rl^Z[^RZU[\\QcV`ZYT_QTX[VTVVW`P]WSU]^N^YWXXYUV_c[RS\S[\Vm^_XSZYXPRQ`^^dY\Q^VX^[\U^_`TVRSeaZV\RYUdfXPT^XXUVXRVZU\\SZXUW]ZXWXSg[W]_^VY\YWZ_WVSXYXTVVX\YSZPXUXWXS[\X[cZ\`]WV_]YZWWMaUYYU]nZRRWYRVVXS][X_U_^^X\]W[VUQPeX^]V^_aQSYR]ZUWVR[MWXYcTW[T\UPVVXV^\\Pa_X_P[]QT[RY[XQQbRTT^fS_]baZ_WY^[\VVS[XVRUWW]RZVYWZUXZ_hYa\`WT\SRY`WT`]STZ_X]XWR^M`SXXVY^e\U_UV[f`R`cSWUQROV[S[QYS]]ZQMTQaVY[NZU]SYOX\WVT]WV[a]V\S[W\Z_cS_VWTVXQY\TZ\^eU`\YW^WZQP]W\`]XYYV]WT_S]QUZLWTYYQ_ZUV^[[\vTbaX_Z\_YjYXV[WT]XXWTV[SOV^YY[VWY]WVVZSZ[Z`^\WSbUPWbZ^WZWU[X_fVV^_SS[V^VUXQ[PU\TYjRWcN]]YZ[WWV``TVW[\WY[`RQKVWQXaXUYYXSJPU`OQO_RSYTZV[VW\XI[ZWWG^X^XUUgcWWPU_b\W[_X^UVYR_XTS[`Z]\STYVQY]_`Z`QSW][\Z]`QVZ^Z[UY_WXH`Q_T`dZVRc^iYZYW\RY`W[XWT]]W]a^_YbT\P][XS[WQ\]T]S_UQYeTZ[^\TQY^VaZ\LYZTR]ZYUV_^Ta]TWWR[PTZXU]\b`YcW^]^Xc[XMLn[URebUOZSOT[OSZSVVQUeVaXaO^\YU[]WW_[Y][WcXS[\UOYVRXS`S][_TRR`XYUZVSSY\NX`W[gaO]UYX[[VZYU]W\SVZXOPWg^QUS[cO[SXUWT`PViW^TWP[[ZaT]QUX[ZbTUQWbZS[WW]QT`Q\RYUR[QZ^]XYTZY[XVSebWc\Y[d_YPYWd_Zb^]]TVPUb^RY[TR\aVZMY_Z]bSUYN`_UR^Y\P_[[YYWWYYTacMXZT]]aZYgV_UTSX_VY]UU[SVVYTYU_WX\TYbTa\X[eTQVWTRYU_M\TX[[YU]VXYX\Y^YT\`VZc\WXYSXWVSVU\OY\^\ZWXS]XXbTVZZXWUVPYYOYQPTbYVKYWZ_V_WWP_Tc]ZV\ScXVSTjYDVM]WYWYYQTX_YbQcSaOYSa`^T[_ZRWZW]WWYW[TWYSZXT_Wf^MgZ`]Z^URQVaOST`TOYTX[UWU_SLUUXTbXOWNMTSY]cX[NZXSYVKTXRWJYYZX[]KVTVYbSUP`UYf\aYS[\S^NbZ^VXV\WSZXPSXN[OZ]YbY[`Y\]WSVYY[QZ^NicU]TR`YSNUUW_Q[``dZZ`\[Z[\d\XR[PY[\RYZZSUVZ\Te[PWa]\WXWU]VV_RWV[[V_[[ZWWUP[ZVXVTX[X_\][YYWU\W\XTV_[TV[WTUS]YbX_WVVYSZNW`XYW^cTVPTWXSWaVVS^]Ua[^[YUQ]d^]YZQd^V^S`VcO_[^QX]PXWK[WeR[[V^cXXORd\[bYTZ[V^VTYZNVSXSXRUT[YWYU_QTURZSYRRUQ\VQWVWW[Z`aU]URTZ[T^T]ZYYW\TU]_[]_YWX[UOR\S_U^VSYVYc\_V`QVVPS[YX_Q\PZVV]_PVU`WOVOZUZ\_[iS_\Y^^YRTUVY_UUVY\Y[RWY\`e_]aVUXYU\WbTZZ[SX_TZXYYR^T]RWVgYVPZMRVTVT]\\ZXVY][KXPSRbZ[VZ]SWZQRgXYW`XX]\XUV]T]ZX[[\a^X]]X[^aVQa^MWWT]XZ^V[X_P]OUW`XYWXXVXYVW\OUVTY_d[OWW_MUKbOc[aU\[YN[TPa\SW`T]VXU\ZkXWVU[[Z\j\\[\\PT_`Y`ZZJbSW`TTh]bZ_SVRaWRUT[W\ZY`ZXSYSkUWW^ZWcXUV[_[Z]eX_^ZYY\T]VM[VZ\WQ`YPZSQaXfNS_\YSRO^\\]_[YLWVKW\WWTWa[_Y^S_TYWZYcSSV[\_[TVVZTUh]lg[]aPY_W]_U]aa[TUZXYU]UU]PPYdYMPTZTZXWRU\dZ[b^NbW_ZZVZX[\Z\[XW^S`^`_^cdcZGZZZZQ]aP_eW]\U]NUW\Z]T\XZRTRWXWR\Vc\ZZ\R_W]^V[]V]^USQ[TSVX]W[WWX]XV\YNYXPZV`U[SQ^YPYR]XVVNVY_TgVZZVWX\]_UX\]]\fVWYU`TW\ZSXaXZ^OUWRRQ[PbYS]S]TgjZLXY\OVb^W]WZ[dSX[WZTW^XTWV[M\SWfR_TY^[cTVXWT\SWV\[S[ZSTYV]ZZ[VST]Y^P]V[[[R[Z\^TUW\]cZWPSR[V_RV^\UX_SaTMWRX^^Y[a]MXVXVSbeYP]YSXMcZZ_]]VRj^X^O^]VWVcVQ]\[\TXQW[U[NYZV`SVV]X\Ob\VTTZWTXZZbZUUS`^YOZ`TK\TXXa_TaQZ\WVTTZ^YRUVZ[T^RTU_`\UYWWUX`V_ZfW[YSXWUhNXYZ\\\VYR\ZXZWVP]RR[RUX]^WTKYHU\_XTVUP^UTXNYXZW_YXaV]W\ZYYP_[LU[W_\UVhXV`cX[U\_XRUWfTXaYSZWT]SVXUgY]U[SKb^RP\aW[Xf]X_Td_iYWVURTXUVZZWVUbVX\Z]g[T`\UR]]S\^VUbPa^USUSYabRY\QXQWS]SfaVLWXVZ^Ueh]_^XY\^KX]SM[XT\aX`VZ\X_^SfXWWYXTT[VX\YhMZbYZUR]^^]SVXUTdgZXXOOYURRXZZ^XJ]V[^V\YUR^d\QV]Y^V[VXbYRYZZTY\ZSTXZPf\Z\_af^^^ZS\WMY][V_V^SZU[aX]QXZ^]VQ`VVPYYY[TXZ[]Z\SWbSXPWU\YZ]_]^\_QYZVZ^Wa[Y\YTZSVTX]VZXUVZKVXXZXdRb[X^TXYQ_TUV_TZJXWYRXQUR\\XU\_VT[W\ZZW`aW\]ZVRVRYU`TVZ[Y\VY[aVVfSSacYXbRV\TNcfT[LT[P[XZTWYX^MZWV[^YaZU[OYTYSWcY^Y[eQ\[ZU[ZVW^SYQ\P`VbSUS\UXU\X\VPRZT`aaXZ^XVX]YbWW`]W]Z]b[UQZZXW`_UQaWYRT[`\SbWW[ZP^ZY]\_S[XcRTWX[[XUYTTUU\V]SVUZ`T__YN[Z\WSaVQSaZUZ^Y]YRSZ\UV[]SZSXVQdSTN]\YUa[ScPOXXWWZTY^U^XUUWYc]WVb]YYTZaYW]W[^bXK[UY[\^Y\]]_WcaVPP\VYTW^TPTQ_RXU^Z]]Q^K[UX\ZY`\`ZW\_U][]cQ[][URZW]YXW\XUP\^Pc\W_R`YTSU_S_Za_YO\VQWP`Zi]dSZV[fVRa`Y_cdXYZU^Z]SVW\SQVZTVZT]WU`Oa\X[[ebW\Q]N`X^\VY`T^W]PZ]WUUNWPYZR[ed[aWQSYUWUZ[N^^R[ZaXUWObSNRZZTY]VaZRPZ[^]`Yb`ZWbT]W]^[]WQVdaZUWj[YaWYVc\VWYXcQ`U`ZY^[Tb^bRXTY\XXU^S^X[^WXgX]OPTZaZSZ_^chUTVZWVcO]WTUR[WSTYQU]mVaSZYXT^[R\VWYWWYdXRZVPPWX^XUZPX\S[[gZ]UUV_Wb[UWZT\WTaY]]]^_aVVUSaSU^M^\VX]O[Y[WYZXV_WZTWTSXTWR_`LZRW[`[TL]YW[\QS\_X^VUaTYbZf^Zee^ZV[VJ\ZcVVVQV]`XR\P]\RU[\a\WUUUOWfW]NTY^S`O[b\\]\YRUX\QZR\PR]T^cW]QZP^W`\\YOX[XV\_OP]^NYY]XafV[RYWWYX\WZ_YZ`L_VTXX]LY]RX^[UV[YYZYUYU\VYXYQV]Xd]ZXXYVX\PVZ[VS\]WY]X`Td]OZbPSWS[[`TZ[^]OVYZ[XYZ\SZUY]ZS`R\^QZ\_X[S_TWWYYUY`]]_W\^\PS[XT\ZVhc[UWNTW_[TYUUWYXZUYXZ^N]_TcU]eSRZ\_PVbU[UUVbS[_WdY`XbbfYQLPSYRZO`L\^fXa[T`UU\W]\`Ra^_`\PRZSZiW`\PYT[Y__YSb\ZXVQX[P^ZdRb\\ZYRUTWX\[dVZ[YVW[^ZP[\]RfVU]X^W\^f]]P]SVWY]Y[__W^MYc\[YVW\S]]ZTTZRUU\UUVY_W^W_^P\WSX_\XXQSVWZ[WZ`WZZX[Z^aYXVTRYV\WY]V\`[`Z[WU_ZVYaRRT_R^X\Y]SSW]RZRVk\X^]RX]UZZUYZWYK^][]\V_\X]R[ZVX_XXYR[[[XSVbNXYX]\WQSQ^]XZPR\VVXWUUY^VZ]PVUZYVV]QXS]UZXY[\W]XSZWXWaW[\ZRV[aWVT`RZYO]c^bWYZZ^bYa_`XPYZVU\XXWVYX[dVWV\SWP_Ucu]UZdZ\\U]ZXYTOVYWWZSXXaZY\\OUZVWT`OWSd\RRXZVZX_YYZYb[VZXa_YX`^TXT`WXUX__UYSYXXTTYQR\cdZYRZ`Y[WRY^f\WVeV`ZV^_hVWTVY\VXXTVXVS\[NUZZVVTWT_lZ]U\UYXXV^VY_WXUZYXb[S_[ZVYS\JUZ\T\TQV\YWbW^SaWZU\T^SYZZTSUXVR[MbW[SXYYX[WZR_XWc^TWRVPRT]Z\WQ[[Z^ZUWXXOTVY^^VUY^UR[YS[YTVIRWWTU]Z\SYLkYOVY_RaXQ^_PXbSRR`_QZ_Q_[TT\NaZX]QTQU]YYQU]Y[R[[UX\V[ZSS\fWSSe\b``]YVZZPYcQUa\^[_Z\T[TYWX^TiW^YV[WXPR]YY^XU_PaX\ZVNRXP]ZVW[ZVRa^WRVNVU^V]\a[Pb\ZTdXZeQbf_LZV\VZZNUSPXTUWU\UZZT^UZS\_XNd_[VZ]V[`ZW`_ZVXPJWYhOUTYR_WWZYaWYNWXOU[ZYSXcVZ\Yag[\X\TSK]YS[VYTU\S]c_hSQZXYUZXXU]`[XUNSVWU[gUeYZ]R_[R[X`[V]]`OYOTdaZXYN[[aVUZT\\Z^Qe[dWXZYNPZRUWPYU]]Z^WXTTiUb\Q[PQcSW\PVhXV[YVTTYN[[WWXUZWX[]U_V\Vj_V_aR^T_X^XZRM`XZ[]MR[YYT[[c_VRWXNTQ^[WNWg^nQaVTUXQZTRUYaUTYbXbTPQVNd]_TO]_VWXUiX]YRYhQY]^`S^[^S^\X[]]^VWS]LYTPO[b_VZWOOZ`Y]\][UT][[SX^XQTZT^YbZ``W`^YW]a]XZY]TVaXT[^\RPRYZUSSM\WSXWRfTX[V`Z[^UPUYXZ_\_\cNT_R``VZ_hY]ZN^^RTXaQZgVUcWeX]^X\^Y]\TZ\T^ZYcRUb[ZYTcZXU\Y^TZ_`GQ\XVcRra_^VTVU[WWU_]VV^bR_YURRPZ\_`T_XOZReOeURWN^T_T_XVTXRUZQW^YVVTP]_gXR[SV\_Z_[^UWdYY^YRX^ZcT]U]YNXZO_YWP`WXc`QT\X]_O[UX[WTZZTUWNWgaZQUZ_WR[g\^\SQZXRD[NS_VceXYZ^]]_WVc[ZaW[UeX`]YX`YT[[_aWYXXNZS^`SaXSY`_]YZbQSZ\ZWUPZ]WVZcXQ]_Z]TRZVSXY[V[^\URU]^[[UYTXU\X[ZaZRYQQW\VXN`bTU^WRZZYW[VZW^P\UV]SWSTc[WU_`[LR^^S_cZ\SZa\Y\R[XebWZ^XXXYQUdXWRU]ZXS[Y^Sm^W[YY]_L]UZXTXY]Ta^a[XTZY[VVXYUTabVjVT^\aYRfd][^T[PYTUWQX_VcT^jUUXYR`bW[dTXXZXQ[WYW\_feXU``V[__WW\_]W\TW[PUXYbX^bU`\_VSS^]T`XUV]PY[fYOWb]YeYXV`ZaY`[Oef[V]Y^[UWRVQWY]_QS]\TRaYY`\[^Q]XV]N\Wd`_]RUN[]]dXYUWZUTV]Tc^_`aS]Z[OS[U\[[XXXQ]R_`U\TVdZ[WUX]_Q]bVZR^\Z`W\YT\TjfR[eTU]UXX^S[\^_RW_][P[X]UZWZZV[^[ZaWX[WR\[R]\X^eQ]]\[^U[[fZXQbRWZSZX]SOS^[QV[YV]]aQ^[f\[VWYQWOPTUb\VOWY^YUX[WYKZWUXa\[M^TRS^WXW\ecP_YSWYT_[ZY]VeaSX]KVSYNab]XQ^M^QPVa`]]O_`]WZVa[[UZ]W\f]XOXTYgQ^W[ZV[UY\\RZO]SVXGYZeUO_Vb[^Q[]fYTSUQ\ZZeXXQYSY\Xd^XV\a``[RRZ[c_\[\\S_WZZaU[ZYXZWVd]SQZUU\cZhMaYZ_ZXQT_fTXWa\W[TU[Z^Q^[cSRbWUMWZVWYWO_UUUQVTP[MXdaOXSc]\T_cU`TYU`VV^WX]Y_VXXQY`WWaWN\XYUbOU\]USe_Z^ZXS_QZU_TSa\_c^VV[[_UWT[ZOV]RQWZY_YXM_c_I[aS\`_aYXV\dYZXZTWgU]_aXZWQdXZNYXdU_ZVMVQR\N\YSUZS[ceVVX_YQaVOReZV]bXRZ[TXTcYVR]ZZaUZ\TXRRT[U[SZXYZW]Z`ZY`YP[XQbaVYWZWT^^T[Z[_T]ZQXYYZ[\PYVXX[ZX_X_`^\UZU[]W[X]RVXWUWO\^]YZ`U]NW[VYXV^S`dR[SS^^W`\M[MQP\]ZUPZN[PZY^TQRUYTb`^Q[UZaKXUZSZTR`Q`R][L[U]hYUTXce`YO[\Y`PY^_WPS\WXXWVV`TY[VWViXVU]VW[ZZWQUTWSMXLXaS_fW[SbYUWUfV]TZbZXSNZZRbTX]^\VVQS\V^`OWUdZ\\SXXPTSVZX[XcP_TeZURTVWV]XZNZUT]^XZ^[\UUVXVhYWZUcR`X[[T[R]YSb]TRWWYW\^UYZ[Z_WN]W]R[U\[V\TNP]R]Qk[Z]Q]ZSYYWdUWWXfSa[YWRZZN[VZ^]XKX]Y`[[TVYNcVRX_WTVVRUO\X^P[ZZRXTSZYXMSTR]X]XZ\RUZ`bKU_TV[U^ZSLadX^LZYUaU\U^[\WXT`][TY[PRVN^]Za[\[TUXV\XWVV^_]TeSTbNLa_XcS[[RlY[W_T`YTXW[V]`XRZ^QYcZbOQ\[PRVSZPTZU^VdYbX]UaVQV\VX^YXZRV^\dWV`gT\Sb\aeUXVZZ^RUWUVQMRV\OVW\a[VXWY`V_XYRaO_d^W\]MaTQa\VUSYP\WX[[UX]ZTPX[O]bXWVF\ZaX[VTPQO^WXYTbXV\WYXWX\[]V`^ZQW``V[afXNU[]Uc\V[YaY`^UjSWOZWLRTcVaZb[YYSVT[LYUUYNXQ[ZZ_V__N_WXWQYVc`Y^XQX`]U[XYLPU[WR\^RRQZO`ceXg\\h\SiZWT]a`W`YKYY\UTdPTV\[XY]\dcTX^^WSWXX`XQVUT[bWZU\R^W]\V_S_V^O^`OSQ^VMZ^]X[Y\YXLZ`SXVY[[[Z\V_YY]YWX`QS[TVRUY\``\a[TR]]OWWS`a_XX_UV^^Q]RScSVaR][OV^][]XpT[WTXWa[][\VSSWUZVYS\UdZP\]SY\bfWa^[YXMV\QV[TWXU_V[UTaV]d[`\]RXUc]ZUVdVTWZY^[VXb[XWTYdXXVVZ]RVRZ]WfTR^XXYT_SbiR[aZ^VSg^__[Q`VUl_ZXY^SPX[^TNb^Z^TLU\P^SPV_hM[ZV\VVf[W\\`^`^\PY\YZUWaUOSaW\PT_^V]\YdaR\WX]P_[YTJa[\WYbYZX`baWSQZXTV^Y\ZU_YXYUZ[S]]e\TR]N`\\YPVbYZThXSVVYS\X[Z]RRYRWUVcKZbTZQZ\ZNYXOUcV`aU\\\R[\\]_Sa][[TfZSR]fRnW]X`TW^^]c\YYXYOWYWPTSORYYKYZTTZS]YYUVd`eU`eY_YXZYXTTY[`[X[SZSXWS`[WSVPV_VW\YQTVYdWX_[^V]PXY_\]QN[[[YTXXZ``S\RRY]aOU\YSXQa\[R^bXVZUSSOV\QaRV^MZSkbTVTWVVYa_]VX\XQO\T`]Y^\RaVV^QVY\SVWRXXT_TSVab\ZSPcSVWTWRV^cZ_RVbT\^aVV^a`VVRWb_kf\_P\^MZXXXWaXWZ\^]T[RSX[UYJQSVZ[WYd[[]\\SLTSbVM^V^YfY]R]^UZVSSVIS[\P^_YZj__]U]^V^TZZW`URZ`\`WY\[MJ^Y[\\[QcTVba\^OT[Y^_TX\SZRVVYWZb]a\W^XRU`Z_ZZSQN_SY[hSSRSTYdZXZaaV]X]PU\ZUY_[WaSYUUXUTTW^R\XV\XS\PTVWScWPUVQWUSS]TZWXUZLZV^_U^a\NX[S]]^YVWS^ZXU`d]ZT\R\dVTgZ]^nZgT[QWMcSSOX]Uc\VRYVWVT[WQQSPSY\[W]VSadX[W]cb^WVY\]V^OUURVbY`UPWc[iPXYU\[`VSTm[Y[\V[]TaUYS[^XPXVGV\XVVMYXZ\VcUQ_YVZVUP`]VSWU\We[]V^Xa]VWf^_SaX^TY_NZbdZUR\TX`SY^RYP\KS[[TPUUZYKV\SUNcVW^ZPW]VUXWbOU\X[TS[bOTLVReRSX^NWYWRgTT^UX\WMLVIg]XSYX\dUNZ`ST[^bhU`XY]PP\TT_S_`XP^VaSVR^S[UZZY]UY]eZRZWh^^dUYR\KVVZLP]XSNST`NTWWUYV\QaaZd`W]Y\VUW]]YTZ]WRM`\RUPeUROjU_W`YPVVZ`TPW]TN]N[VW\aX\]XU[b[YWP_ZS`U`W]UYOS\P\VU\SfUQ`YQ\S]SV^\ad_S^RcV^TYcTaWP\W^S_^TfX^TXiUTYPW[b^W]SWn_YeYbW[]YYQZhcTTX_e\ZX[\ZeXbXjUaTVbf_gPU^YfceW^VR\XTYZPaTXWPZU]cXWYY_WWQZN^T^X^TUVVX[ZYY]QU^R]_Z]\\]QY]V`XYXZ[TQ^MaWMWYZXY\YYQcVTSOZP]^W^_][_`NVZYU\\YUZ\O`eVY]YWcNZTWQOSY^UOQ_R`X[IUZY\Y_dYU[SRWWXX]RX_^XQT`WMT`XRZX]]W[\hVZUP^^Y[[bUY`Y^ZZWX[VZ[`aQ^fVTVV]YS\UXXU\VScXaSUY\aWb__j]bRU\[``RWYNS]NUHVUR[`X\VWWcTY^\R]bZ[R[NVZ[VM_YXYZZ\VP\WSWTZWVV^WVY[TTYXX[][bW[ZSUOQUWTWReXY`XQ_U[^TVhbP^\XRR_VSYMZcT]R]S_][]R^Y\UaSVO^\PNTPY\`UU^RZRZT^]QQZUZUSUWVZ[^c[XacX[RY]WY]TOZcZU`V]WXaRXWX_]JZXYSYOVTTT^SXaZTVUTUYQ]^ZJUNP[POQ]`][ZZR`S_MTNNUTV\SfTTk[KY[SNNY`e\XT[ZY\RWOgXYL\]RdP_[RX^QS[\UR_]Oe]cV_PQYeWLQT]TU[aSTPZVXPZZW[[YWPSUZNP_VZNXZP\T]bcfTTbUZ`VVX_\\RLW\^NhRY\OYS`XSW[\[[hWS_\RX]TkWTU^XQ]]\YURXWWXSVTT^Rb_SaTSIeWY\TXWTS^NXZSWRWMJQcX\_S[RUWf[^S`\e^ZXYSShNQPWXSaY\bP`gbYS`eZ]aWXPb_[SWT[]VbXV\Ve\XfZOYNWNVdVRXTSXVNbZ\YVXYV]KSW]\O[`cWTS]^ZQK\Z][WU\\^XY]WZTSZaP[VN\XX[b_QRUdX\cR^[XSQTSP]UT]k]TO^WRMPXOWYLUSVT[WXTVQbh[\VS_VQPdYV]dY]_PWQQXTfSWWZ_UTcOYY]X[TT\`^]SI\RPKXaW[W^UXNSURRX\YSXWOTNc[WURNQUOWWWY^`RPVSYXYVUXXXP\_LWLU]YXXcaPTTYUZT^RN\ZRYcfRU`\\\]VXUUW]SWYX`TNY\[WVVW_T\[SXPYVa]^XST]W]]NRYRUVU`M]TZUZWeW_ZY_fVTXZ_P]VYPZXTbM]adRUbRZSZ\XaX\Y`\Wj\SVVX`YWV]\QW^X]XV^^PUT`YVUTWaZV^Z^^V[icSYU]UPZ\WhTVQVTSZR]T]WXbZXPXVV]YUZ][\Y^`PTZaX]^\TZXS[bYZW[`ZM_Tc[V]YcM_XXYSYV_SUWcXO`Y[P[QbVY]ZcXOWW[TVZYRWTb[\YOU\XgVSUZcZY\VS^g\S\TZWKPPUWXaVPY\TTZWTYMW[YVcVOWW]]TYTUU`X`W^]f[XaWWQXOLeUT[W]WS_ZQYP`X\UXR_VXU^UVfVZVTW_[VSVb\LV]VUX[^bSSWY]fS[aWRaQ[bTZ^RgSYUVOUXPRXb[T]dXQTT_VQQVUL\YUSh_TUURdUVU[\UZP^N\RYYQ`[\VYW^iS_^Rd\cIjYOdTV\UTVUXTT]d^XQXZb]S`^WU`XR\_UYahV_\SRjeW]XR`a\YLV\XM\QO[]U`]QU`F^TZTaTQUZKe^^V\QdS[WjNVSWYX][P[VQ]P^\U^YNWQ^V[\NiZ_Z\XV_`[PacRZd\ZSSN^e^VZ\^[dbV\VQ`]VYZYFYZaNYOObXcc[TR^_`aX]^^VTZWaP]XKRX[ST\_VUWVZT\SMSHTO^WZcS_SZ`gWS_XU`dVX`OVXgWWRT\X^bZPhTQQaZ[UZTTd^XaT__U^\SXWOXYUY[S_PV]aXWU^c]W\`VVbTcVejaU]LZQ[XQ\O^^ZYQX\Qd_V]R]a]]ZQXYSY\kNXU_Y[VQWU`XXXO^V\ZN`\_YXTU_^`RcZb_RRNXTRUW^YK][R\[PVUc^`Za\[ZYWQaZbQ\TZSXYSYU\Q[TM]l[QXTaY[^Uf^TZL]b]ZSTNVU\RdY\dW\YaYWSZR]`[V_^eUbVWU[XWYWW\W\Q_bUQVWU]aQTV\\`X[QZYWTZaYg[NXRXYdWUYT\P[aP]YVTZYWY]XR\^MZWRRcVYe\X`Vc`nWUR]P\KSQ_O`Y\SMYTXdY`QVU^YWXe^]`T^LWPSZbV[YNWaZ\S]]XXQ_VYU`d]RU`[bUYi\XRa`eiZcXZY\OQ^RUSaR[QSZQMPNS[ccXUYc_aX`RLVYPV^^UbcW`^T[_^^Y^VYc^\^MZV\KPPSU_SRXW]T][R_WTVVWaTI_Se[QW`TPRRTRRUaWXWXV^TY`WZ`[R^ZQYZSPTSfS]XVa\UZU[UZ]ZU\\P`SX]UVUc]VaZbVj[VM]aX[pTe\W^P[XkY\bWW[WPNXRb[akZc`[^RaRT[UIX`[[SMbTTYcSgZZTZ_ZW[ZZ]TN\Od^V_V\WjW\VV]_kT[SZN[d`YM^WXS``YVVZ_TRX`Z]_ZXQVY_SXhUR\SXYV]X\OVNK\RZSL^U\[T_Tc[Q[VaRX[WWZ[UY_V\\cXVTU\`R]]RfYV\PYL]RkcfYRTVd\ZVW\VVXVU[]]VcZVf[HL^\X_U^j_Q]_VZZSUYTUWWU[QaT[RS[RbT]WV]SMnYY`[Od`VWVU\ZNZV`_T[R[Y\Z\`S^XQ^TZTP_XMYUSXWa[c[UM_JW]V]SUYg\bZUqWYYFT\Q]cgXTSR`PWOXdZ[XSXWT]`^TQ]UV[OX_Z_k]UR^VTYZhV][YZR^QZb[[[[XXPaY\KSW`YU[Wa^]PMMcWXK[SSWTeR_YY]Q^d]KXX\S_[XZQS\_\WbcYKXYYVOUWSYOPRd[\KSWadVT^X^ZXTWZ\\WUXT[W]_TWUaUR_ZUZ`]ZX\[^V]R]]\WWWUVW^YT`U]ZZ^[V^VbTXTYPTUQ\P_T`_]U[^\UX_WX\MP[[]ZWZZ_WSV[QZYVYWWWR_[VYV[bTaQYWQU`]VQ^X[^PUTJSWZYQ_QTZTVXVZVYTVY\]V[RP_WN_^[]ZP[SZM[\UWX]ZYTWSYT\XX^]WY`]YX[V[][YPYVTVWUZS^W\[[a^YZUTMQVaY^Ya\V[VTeWQ]SU[QT_R\UYXXW_ZXZ^WZW[ZTU^Xa\XY]PVcW^YZY\\\]QS`bRSIT_[[R[V\dVTX\XaY\\V[SZYUVSVWYWYT_WZVWTYbMPR^^^XS_R^Y`X^c^VROVRa^^]WW_ZX]]SYSRRSUX[[\R_\Wb^VW\W[daSX[RUVTVW_ZXY\bYTPY^]\\UYYUZY]O]^ac^[]]^PUT^UV[^]UaXST[YWWPLM^=QSX[YYX]YYZSWYScWSW_dQ\laX^PVV^^\VRWYWX]\VTSYWS^VWMVV]U\YaZ`]^^SR^Za]_V[_\WWU_]oTYYUX]SYYUVZ`UVUX_]YWV]Y^_VXRaWW]_ZVWZZY^XWfVNc]aUSNTXZ`W]^RYTXUZ_OZOi]]T^[aamWWQiWTYR[[SYY[cd\UU\d_TY_XQTSVWXV[b]cY]ZS]^]VXYYTU\T]V\[WQTYQ[\UWTg\WYt\]YUfSidOXRNdO]_VUMY_]TS]VgTa_aXRVVScbVXM[XQ`^RTY\X[Y]RVQZWQR^Y[UY`V[TTYZOfaXL_WRSRV`V\PVY]^VSNWLYU`Q]V^aTbYTX`VVXZUcXcSYX]YOT[]b^UUP\YR\ONZYUX^Z]XQXZhT\`\UaXV^ZTPb\X\TXWVZ^M^UYXYW\Z\VU_PZYWSTYQaYkYR[d`UYVWVPQTOS[_STWb]WU]Ua\J_Y`X^YXZUOZURYWQ^RS]LT_fXUaXWXVWZVW\SXdVYPQaXZU[VVVS^[cX\U[\VUTY\[VO^\dUZQRWXU[YVfZVUPPVaVUX[ZYZYW_T\^SZW_YXOZacY_V[\VU\Y[Y_OUVVSWV^VY_SY[U^PSU\YTRXX[XS[VZ[ZY\S^aVVWPU`VY]T\UWTXXM]\_M^SV\\RXY[\V_VWZW\YR[WZZUa[^\Y^^TaW\[TXa_\WT]VY^WYTNTY_XWU_TW]Z_aZURNa^XWS[UW`bR[XS\XUZQY]UR^gSWTZZYX^XSZ\ScXVS\XYY\XUNTWVSY^TVTYVV]\X_Z]Z^YW^c^a]_Ye_WXTYZZ\V]\e]U[VNWYYYSR`ZXV[[YS_^Z[[^_YW\TT\aV_Y^`^WSWX[UeUZQXZ`]VXRWWXY`XPRSaX[\YbY][`]VbXXZ]_[ZRTVaUVSPaYaYWUU]Z]OP\chZZ^W]VYVVZW`Q\UdZW\WVTX]SoVbW[U_TS]WPWTPTZOeQY\FcXUeXV[ZWPUWcTWTQYi__XX^TcYeOb_\PXXUWOUa_MYYV[TWi\WaYXZ__VZVXTZ`_[]Y^V\NVTTTWOO^c^cWXaP`[VY\STb^VQTWRaSg\TUbXY\YYTU[^]Q]YV[^[PReYbP\[cPZRPVPS[[\WQOW^gVW_ZY]]Y[WK[\V`ZYZ\OV]VVZW]``Z[oOaSYSZ[[\c\^XYZUN_ZW`W[T\VVgU\PY[YhLaUYU_KVRR\S_XeOeb[VXb`]XW^SPVWYX[V[Y\XMSXX\OV`]ad[gUT]___UZbQUV\QX[][T^e`YJaZbW\XceMXU^T^USZWWW\^RTTYZU_TJ_Y[\X[RU`U]YQZbcQ^W^bVaSTT^\]XVNTVaX`]O\Z[`QO\STOQSVPaQTb`Q]_aZ`d\XVS\\[X]VQ\VXSX\YXS`PRSWXW[]V[Xb^[WV^XV]SW^ZYP\XVYTUWU[T]S\X`ZR\YWX\SVX^dQWV[UaZ_WRaWZYR][T]YQ`\_XQXUYY^VT]^UY\ZTVS^UWSZc[WYRSYWR^U[WV\UWUZTRgURY_We_XUWXYQWhYb_Y[RZ]\UVeMSRYX\JcS[\VZSWV]U]\M]XV]_Y^[\Y\WU__VV\\ZWYUQ^aWZXU]TU^gRZYYW^]Y^YTSZWU_T[RZU[ZXX^WXTSX_UXSWUSaXTWS]RUYZ\VT[XTOZQUZXU`N_VZ\W[ZTW[XXWXW^Q^VZ\QW[^SPYf^RZZVGT``T^XZ\UZZ_\VXHZV]_^[Ri[ZZ]V\W^]a_QNR[\[]XW]UZWXdW\U[PUe[[YT[UWR_[]_VXXW\VcW`Z]XRXVZ`ZVdVRTZWWYRW][XZS\^T_`SZWWX`\O_XT\Y__WXkUVXXZTYWUcQZ]\X[[RNT^fNZ\TZYTaNcSIWYTd]YY[]Za[TYM`b[T^VaWV\VYZRa[[`XWTPYWYVZ_Z]]YVU]ZVL^_ZWbQVZNLaROYX`aWOY^WWR[aaOcUX[\c[XYTJXfdZ[aX\]POWnTYV]_eaURQU[]WYakPcX`OdbQ^P[hWKRZPPZW[VSZZI\NXXSYX\T_XUYWY^SSaVYZRQ_Z[XVTL^ZVcZ\Z]PT^dV[ZcZObV\U``YTZ\VMbbZOW]`UVXWc\YQXWZ\^]T[S]VT\^W\\QfXV\Y[ZP[LXQUOc]ZUQ`xe_R]_ZdRN`iUTYY[QVXbO]\_XX[bOWSdVSV_\h]^\YYW]]YbR`b`_ZX[]VUTTh_^ZOTXUSOafeX_VVWS\bfMVUUTT`ibXY`U[ZQZ[ROX\ZZUY\i`^VWfZOZ]^ZVY\Y]Z\T^ZVSM\agZX[[ZTSNY[W\[WQSZWRZ^P`XRS`HXTWXX_WRN]UUUZP^g_\QVNZbX`VVZZUT]U]V[WVUVUYWU\TRVUYWTWT]\XXVQ`XjWVNQ^[Z\gWQb[bT[O\XZV^YhRLXS[TUZZJaZXYUZXbU^X[_LVW\V[`S\UX[cZVUd\VY[RWV^XbQZZL^i[T_gVXS[]`Z]_Q[^U_\[YaRYYWQaO_ZYbYWbXQYTQVcUTWSZPZVOcSZcVaQSQ\\[[WW\SfX^gYVSV_TaSVZUVM_X[NXWZY_STWY``T_[Z`Z]ecP[[^XRUPXQ\USUSZbX_OXfW^Zj[WY[UWYaYS]V\W]\W[YT\WN\WV[ZVO_bWNYUSS[XWWU[WWSZYZZ\bXRZRUTV_^NVYQZ[]XZWVaWaZ[UO\]YdeVcTdRWaYXSZ^WX^TWWZ^SXYVXM\UcYTWXV]U]ZVT\[\\VW[bSSVbTR^VU_[WcgXXVYX\XX[bYQVZYaUX_TSVWSYdfSV`\^b_QTVUXXc\Z^NU\h\XTW]fXWb`[\RaTOU\_[W_M[[R_T_MbgZ\`WQ_XWZ_U\]V\SaeVYV\W[UWW`ZLW`YMTbNYUS\`TS\SgRTTZYY^c^XYUTXVYVUTV\RV^[WX`ZTVZRY_[PTPX]Zb^Y]\kV^\UT[Qa\Y]WQUXWZZXTX[]ZTZ]Ra\PR\QSdOaYURRRha`\Y]_WUUNVY^YQWV[e^`TY^]jXUZXV\PXXU[\TVVVX]Yc[WZY`[Y`XYaS\PYPZ_bXY\ZQWR]]\Y\]UQWYSe[Z]VYX^Wd[Yil\S[TS`WUgV^W`^^[[NWUPWZZ`YRVaQRPT_PSTd]a\]WXXYZXS\V\SOQ^bSTQX[`\[UU[cTXcVQa[\SUaVXZT^_T\_[YZ\WTROZeaR_TY[_YaU^c[SVNRWYT\XbVS]`WcXUY\V\__PTXZRXZ_TWPYGYY]VPQaYRVZTYSUUUWQ[TU\X[Y[MbT]^X\U[gWZ[YW\RTU`YZXUY]O_WX]V[VZZQX]\TZZ[ZZWUXR^T]U[\VUJ[Z\W]U`aTek_NSV\UVQ[T^TTXbbRWaYXRUaR\ZRXSUU^f`Y]SZYZXPZk\e`YWT]eQTTTUUVXaZ]VbUT]MUWXWXXZ[][WTc_[WSPVZZeXScVN[^bXSRWUQWXU_S\ZZVb]ZgURRZ]UXbUTcXZRNTXb]QW]^ZN[eTTW]]UMVWV_QPd[[ZXQ_WTbUM][b\c^TXcbYa^XXSVWcWUa^[XUO\SWX\[_PeU_bVVP[UYZ`[Y^YYcVW[GcW_W[_QU`\c_VQ]LS^]d]YSM]MVYTV`N[TdTPNZUX[Z^RbWWb\TaaZ`\hNTNZ\NWT]WW\XW]SZgZ\iS[S]VYZZ`XRa[[]PTRU\Z\^UL]TZW\P\_][WU]X^Xa]YWWY_[YTY^S]Q\dNeUY`T\YcWWNW^QOSUoXWiQZLdY\[YZ\[Q\P]`^X[XZ`X]ZU_ZSTfRYYVXVY\[fP[SYX_\[`OQ^UYQXZeSP]SVXXXNQS_U^SXWT[SXZP]aa]bPO]ZehUXZWUYPPUWNn\]U_\]QOWSSaRT]URVWTW^\LTX[TPXRVacRR\TjbXU`ZMQZSVaXU]P]f^TWVLR_YWV[YSZbXa]TV^Z^ZaRSXUSZXV]Ug]gTIXMWcZ[SKTUTVYVPdXOWTbMjKcS[YVYYX]Xd[XcW]PXXUUXaXYyWQe[dR[dUW^c_RcW[[_UZ`UPWS[bWi[_R^ZXU_WTP_RRWYbYSSTTTWSSQYYZ\SXcW\_\[RWW[^U[UVa_RY^^[V[WO\q`jZZ\WW]QWV\MTTRWT^_SVWWhXaTVZ\TRYbXdUYTQgbQ^XPTcTXVR[W^UVYYZY\XV[RTXWVZeVnZPQUWWUTZVWiV[U`[Wf[cP^\WSVRYUXUXb`\STZQc]X_a^UYU\[_][N[VTb_XdXKcQXPV\YZ[ZYZYO]TZVPX[ZW\ZZVWSSWZSVZSg]m^Pg\_TVa_TbUTRYXWT^V_VZ^\RPUUSOWSd_bPX[[fT[_X[XZW^^[aYZNSYRQVTNZUZXWWY_]W\NX_`W[Yk[[WYWRWZXTXUZ^_fNQQfPgYVZ[[WZYTROZXTVZ\fZWPXXQ_UXYWXYSXSZ]Z^\Wa[MXWU][aY`[NZT[XcNY_V\UX\[`U_`X]]ZU^RT_XZ\NZ`WYWSU[[m]XWXURY]NZ`Te[W_XXZO\[Y\YYY_R\]`PUVX\^KXcX\]ZU\RTnK[\W[dZ[VXTUSUaXQ[[WX^dUc\_SWVe]U]UNXTaY]ZaW^S^VYaWRS^XRdVSQ\kUaRTYVV]TYYZWZYUSYYRY_VZS\SNXU[a[XaYSXTYW^UR\Y`UZYXNTNaVNT[ZRWQ`[QVSdUV\]aYZTQ[WV\\ZUN]ZQZc`WXQWY[PaX`IR^\V]YeY[ZQ_bZT]]\K`XUV[UOaQRbaXSY[[K\ZVk[[ZUO^[[]]]YVX^TQ]^TX[ZReaU\U\RaQRX^Y[YW\YT[WXXZdSY[]SXUVVS]W_]YV]Q\WYSYb\^XZS]ZXWYNV\T_SZ[VZY]]PRZWUSZX\RWfVe[\T[YZ^VT\bS\fX\_V`WZRWVX^^SZW\Q_]XX[RZVYSSQ[VcYZUcYaUZZQ\ULQ_^QTQZR^Z]W\RNSTZR`YYVTZZUMZS_[WbRb\QXT\Y[ZPUSUQUX`\Z^\[RcbTP\Sa[]WX\ZbZ_XXTXS]\VWZZSVa][TYWc^TYZ]_\UYUQYVT]QUVYTSWUOVOV^^R_W^aRP^ZWdTXTYY\\UU][\UW[\RQ[bS\hYUWZ[Zd_USWU\\X^\Vf]l\]V`RSXXZQYNSS]\YZ[QVQ[S^SYWVVZK[SXXTU]`]TPW\^W]X\_O[VVU]UVWUZRVYY[VZX]dYN\WXZ[[U][UWcWQY_ZTWZdS]UffdUX\VXOSRY\]_XT\`V^UXWW\aUXWVU^`XRS]Uj^YY_ebY\TZmVZ[RV\ZPYYXXXVUZVVZXVYUTY`PXZYVTXNY]`PXTYX]SQYPaTVb`SY]^WU]]Z^X^W\X^Y^WWYeXUVX\W_WNYV\bVN]T`T\`WY]_V^XWWU^UbT]ZUZQUV[TXTYWSXTYWcWYVV[YZ]j_[ZYTT]USXU^`[[XW\\VXY`YX\\TVY\Wi_YZP[\WYWYWT[Q^\^QRZYVhYZZ[QZZVSTYUXZYhW\XUZ[]WWXVWX]ZQ[\XZU^Q]~_Ra[PW`^\ROO[^[W\XVNV[U_PT\aYVP\[V]WX`_S_W_V]SX]RWbUXO_VQXYPZ\TVS[SXP[Y`YM\\^]W[WRWY[T]TWOWTW][V\RVOYVWP[Z]eWWWXRX^]]Y_YW`VPW[XTdNR[f[g]`LZ[\\_\\\\^`cVRS^^XY\T[O]UX\Z\_XSZdWVeUc[T`^Sd_OVR_[\fQVd`dYIY^^ZWZTO]`YT^Q_W_[N[bOW[U\XRVXYXh`eVRi\KWUYSScTc^WN_QZTbV`WaW]YZ\UbZ]^UMYU\S[]hZQQbWYW\SWS\XW_TW_RW]dcVeT]]_RTVOWWdS_UUV[RPcWYXZSTVPP\[U]T_TZP]\TUQ[V^YSV[[V]\\TXaNTYUNXX\bYXV]WY[]YVMTY`LZZLd^Q_[\\[XYT\[^MRX\NZaSZPWcWZ[YVZSQV\UPU[P^Zb[ZY\WZNZbWPWZTYaSf\Xj_[kZVPUXZVT\V^LUWYR]\]aSY\RYY^Z\XRW^VZTM^^YUbQTRUTY[YU\cQZ_VZ_ZSZ[VUSgZQYPjGQ`NYXQSTX_^JRUZ]VV]d]V\UZZXVRcRS`YUTTX]TUV^TXUYYcVPT`OUW_^Q[RZd[Xb[W`[OX]XLU]R`VSW]XYR]`SPWST]^\VaSQNWRYYQ^eT\R\VXUTV`WX]_^WPUVXgV[UXXbLYNX^[_WTTY`UR_VX\Z^jSZY[TRYSQV\V\WbP^]SVUW[UYYZ[YRRVUWY`_bVV`T\YVe_YP\\MRSY^U]SPXUQ[_VXWUTa`UYR\W\]YYVTTWR\Z]WbUNWZWWVV]Y[`RRXYXY[WV^ZV\WT^QURj[USWS]`[YdYT\Z`bWXRTSWY[\S_XW\YY[^U`[^\ZVNU\T]YPQRWX[NfkW]VZZbYXSVVW`Y^`TSW\X\SZXaP\SZ`Y\QWWZ[V[ZYdUZQUXZSW[XQUW`Z^YQW_YVYOXaYIW_][i\]`M\gWRZZZZdVTYZUbTRY_UWVYUX]U`eQ[]Q_[S\aSa\O`__cZ`SSRX\Z_W\]VUZW^TX_SWWZYWLRZYZ[`XY[Y^RVTObM\W_VPU\SSUcUWSTb`VTW]SQWP[\SZc^\VQWZ_\Z]S^S\Y``fWWUSdT^YUPV[TXjTP]UO\V\NjWW]dO`ZX`WN[V[bV\X_XabS``eMVW[OTY`WU^Q]SP^X\WTSbL]S[\_]NUTYVeXPKXYX\[STV[WQVW[_[`TWRPaX\YbTS]T^^X]MW[^[QR`WaTYRTTgR\\aXXaF_VY_RT_Z]XW[V\Z\`\RUZ^bU[SYU^]VbU]XZVO^`VTR\RWcYaiMWP\_`QaV[ZRZ_^TT_UZTVXPYVXQXSWZUTVX^]ZVVYPVgWYV[__eg`TG^USPUcbXb^b_[[_TWaaVcUY^VbQX[SO[]a^UNVKVYYc[HS_[PT_VOUZS\[^T\VYOVWZ\[TYY\eU\OQ[W][[VYZXVY`aVS[]V\VRY[W_\V`XXU[VSTdVbYYQWZcZRWZ\_WYU\][W`STYZX\PZXTbS\fWgbSXTW\\W\\[UTbc^i[RdWWUaZXXVZWSO[YYTXbS\LQURTYT^a[Y[cQWVP^UZTbYSSVK[Z`^VUXWYUT\Z_ZTTWT[VQ\WUM[^UZQRYX\OU`WYZVO\ZOWRS\[`[YVObeYTMSY\_^\PRVaaZ]]aW[[Yb[Z[bYYV\Y]^]ZOU[VXW\]ZTU]YR[[^[SKTYV[Xd[[WNWRUVUYXT[X\T]aPVSPR[[W[]U[ZTY[Zb[Y_UXc`[S`YV]`_XThV^^YRYZ\VVQXVW]QU\NXRVYTRRWVViYa[^SXTQ\\Z]TJWYR[\W\UVbTQXU[`XX`UZfWV]b\URZTNdaSV[\cZ[TUV_XWPU_ZYYcYaXVUhUQb\O][\VZc\YV^QRXUR^O^ZIO`[TZPUXP[UP\Q_IY]]P^WSgVWVcf\Z[eXZ^\f]aXa[Q^S^S`\[VcX`Z`]Qlc\`]aNZSWXZQ]XYXYO^^SUZdaY[[_^XVRe\ZOJPWZYdUdQTVYaG^]YLU[`UbY^haV`WX`OSMUqZ\ePS\dKUYSPK]KVTbgZ\VYaI[^S`YOQKXT^Y[QcOZXTO]XZZXT[J]\RTXSb^bYLTLbTLXZ``SXb\^YYP[TkLSaQ]jPYR[a_dZ[^`WU[LmWOYQZ`bWb`ZW[[ZLNYZG]MTRW\ZQ^SUZ_ROORIWZMUXaNUVRVN`WX\W\ZZTQYYaj]^SnWP[UYV\eW]YXQ\cZ[X[[OXWYZWWRU\_RX[VcYWX[\X[YP\egWW^VUQTV^VWgX_[Ue][]QPRUSRVYR^_QgZQaUQWQU`TZ`Xbff`\[QTYU_VWVVhX_]YYa[\ZcSYTZNT[`YZWV\TUZWWYQRa`]ST^eS^Z[UWPWTTQM[^WZO\UTX[]VVZUW[VXPVbVZ^XR``YY[gYZfQPK]YULSR^W[TXjW]UZR[Z\S[ZYYYRR^c]QZZUUOXV[Y[Y`WV]UYQmTQ_O^WaVNY[^WYQZ[aQXY\WNXMT`VRMS_ORUV\lVUVU]YXXSQbcbTWZRXSWTJV\O[pWeQfYYO_]SSVXZbOZW_bQ[T\ZZXdTPM^]X]WSYT^fPL[URXW]P^KQU]U`ZRTYcZadXPa[\`VT^RYXXXSaQ[V\`aXaSNWQWVZURS`_[OXVUUbaYS\\V[cRcWSRO^WbWRNbRVUPSSVReY`\U\[JXUa\S[QW[W\VUeV[]Y]a^bYZW_cY[g[^VSZR]XN\[ZdYN`NSe\TRR`]I[YXTa[`R^[YOcZeORU\XU[cTRUT[ZZ[WWXkWXXS\lUW[^[S``]Z`Y\V^YVb[XYMk_`]aVY_YZTUYYbNfYTSTfR`]_Y^cR_P^P]U^R\_X[XZ[UUiYPZXTQ^U[Rg[WR]W^[U\MZWRXOYWVR`Z]QQZXYTQTYOXXYNTMU]md\TaZVXQVUTZUZ[[]RXUSXTW\P_^QYZXa[XRXg^^aW[OV_P^RbRWTT`RW^XJU]RTX]\R^WX[TWWO[^X]XTNQ_R\Y^ZVM\YZXWc\PSRSVRW\hZOYbTbURTPYdRKTWPVZZXYT]UYZTOZPaZa[]PWZXXY_ZR[TTVWXT[YRZXaNLVXSV^W^ZYabT^ZSW_]T^WOWUVeWZS_SXKY]^TLgVcWYLQ\YQcYVR\UTZYQY^fX_\lY[Za\dUR\c`XQJSWZ_[_j]W_dXRX\WWW[Sb[\XUT]XT`\MZ[]SXTZYZ]fbWdW]W\VUPoZ]V\\U_Z]_XNY\\PfYUWTPbdPaVUTRTRWX_X]PXX]\M[[`cUPUUNRP[^U\aJ[Z[TUVbb\XbbVX_`PVWZY`ZaaUZTae[Wa^cVjZ\abUYV[[SR`RbQR]S]_aPXT`SPRUZWRUN]_Zab[QU^UlRR[YS^SaW^mUUTgQ[ZR_YXbUWRVW_[`bS\cYVVSZTlZ^S[RXNR\YYSUWa`Xb^VWU^_PNZ\T\_S[`__UVOSZ]OW_`eS[]dWX]aRbZTV\SYP_P[\T[IU_ZWCPXQYUYg[]cUUW^^[_^dT_VX[UVY]_U[ZTh[Z\X\WWKWVXa_]`j[YUWYYMVQWS]XVbRT[YSMPXbH[QlQ`dZ]SWTa^kg\USS\U_PUW_hVpQ\^YVd`YVd\QW[USX^WM[UT[]VZc\`O\VINXU[ZWW]YQ]RXc][ZYSc[U]RY[X]^S\Z[RTXU]\aZR]fUgkTX\^Pb_ZTVY`T_ZXMXZ`\`X^^W[YYT[ZXXROSS^X\X\[WX^[\USMRJZ]ShQ`XI\QW^HQ\WVWWXZXRZSWRSfTSUUVR]cO[[aN[cUU\]VXYdWXl]\^Me\XVV`]WTWZbZRWZX[F^]X[KTePUOR\eTYZY\^XVUTZUaPQZaWQVP]TUXVQYXRN\_QX\[Y[WRdOcSXHW]TRSP]Y_ZVW^cZPUQUXb]_`V[\ZaN[YTVZYY]aeTOXY[WSfX\KR]\]aW\SU]bYcP\c[]_TV\ObS^XTc]MVYWTVLUZWTTdUZYZWT^T\TK\ZWfTYUVQXP`VSUdWOQ[Y]RUWZ]U\`N][cV^V]XXLYTS`YTTSXW\[VXVNORYN^XUYb^RW^V[R\WRTUUQXNYY[ZWQX_]QRPVTT_TUQbSSZ]]c\WOYU^Z[Y[^SYWVUSX[UY^R[UPK^WeOYPXQTgTZ]cLX\TXUVYS_\SQ_U^^W[[^\RUWZW^U`][Z_\V[S[[Y[^YWSO]QbTY[NS_\SUZYaK_OOZQWQ\UMUd\UeYU][SVX[VQb]U]f^W__Yd][^X][XSbd`\[gSQYYY[Y^_^_XUYX\[QX_Z]_ZX\e\R^SaW\VYY[\WRqX]YXVS[`[[UT\bR[U[Tb\QWZ_YR]X^TgV\j_\XWV[R`_VV\\^daQ^Y`WXT]ZW\KYO_c[\XX^fYP\ZaYUYLx\\RYVXZX[^URSNaZV`\UUa\WWcgU[^SRQ[_fXY^W\]M^U^YSX^TiUWWX_XT]\RT_aSW[hc`Y^\RO_^cd\SQdYU_UdUNT[[_ZQZ]V__VcT[WTSVRWUcxZa^[SZQV\\WS^P_TZ[^_]W^b]XUZYZ^WT`^fUZS^VXYVXZZ\VXWMVY_f]XU]VRUWVXTSX`]XY]YQSUbZg^YT[NWlZh\RVWeK[VUV^SZZZWZ][RY_[e\O]]YOZVVVW[Q[W`U`_RK]bZm\W\NX^ZVYXV_[RV^KcaOUVYKRLYOQVOVLUQPZUTXNXYY_TY^_OXTT_^YUU`QbURQX^[UUT[LSTTWRSc`\VWT`RcaeOHQZU]Z[cWa_UJ\WVY[O^XXWYXYVW\V_XZW]_cVNZRZOTYQXUbcZVXWVZZ]Y^SWgRXRWTgZ^[PVWWZ\XQTZ[VTO]YSWZTRJY]aVNWa][[RQT_]T]dWVc^]fZUZZ^GX`^`RYjT[X_WY[S[VSV_OYoZO\KZ^]Pb_ZVLW[cVc[]RZT[[gRRVN[QZ`ZXkYUPYTQ[[Z^]PMVKUJWZS^SYaZY[LSbYLPN\Tn\\TY]`ROSRSaZZMaRU[XSL][T_``S\X`U_[STYXQLSWa[aRVZ^W_[^MS\^`^YS[c^UZVVUTYaXJUQU^_TMeKSU]Y`HYaSSX\]U[ZKg]ZUeT_T\NRPeQa_LV^^XQQRQUX[T\U\\QXTV[[YUTPVVQb]ZZXT\]_Z]UQP[UZ[U^PV[V\[SQQU[WUWe_bVWYYZXYVY[WT[N[TTZ`a[TX^U_\_T[UQO]UZZP^\WNV`TZXU_XO\X[WSZW__VVVSWaW]YbWT]VdWU[^UYTUYVUVZQ]XVYR\[XV\`XZWUVaVWZZ\U^^UdS`^WWW^RZU_Z]]XST\[XN[[fQT\^^\YT\S\eU[d[Q^WT[\Y\VUYXUYXfY]aRZWe]T`W]UUZ\_X[OS]WP_\VYUX_TRWQVX\bdX_^VWO[][\ZOVXX\][Y^_[\TWU^MZ]\RV[V[`_Y\UXbXXUZWTWW\XYOTTY`SRSR[\UeYW\^S^QWXW\YZ^]XRX][[\XWUPUXYRZXVL\\TPUUW_WV_WWYWUa^]`Z^UYbYW[XZX\cX\[]`aWXNd\RVUa\U\YZYXQZNXRaYW]]TaO_Z_[XR\SNWWR\`WYaY_YUZWYbXWdV\[`]XS]QVVQZW]YOW[VT\\XX]a[SUVVZY\[d_`TdWZWWW`YX^UQY]`RTUUVRX^cZUZWZZWUccZW_VZX[T\WU[YUX\]UT[\`XYZX``gR]U_XUVPWVUSS\`W[R[ZQ_]RZZ]\\ZbX[W^a[[ZfMMfZQ^PWTbX_ZVWZOX\ZZW]`VXYXhVZWZZXYVQhU\P^ZOUS\ZU_T[YW^\V^Va_YRZVhbZY[ZQYe`XWUTYe\jTY^bSY\SZSX[T^^]WSVYLT[\\[c_\fWbV[S\TWOZ]WVWUU^\`P]V[ZNQd\Ya^TUJ[[[[XV^\XSWZVaY__VZZ\YW]STZZ]VUleZMXSRSU][cZV[]NORY]W_WY`_TR]Yd_ZY_T]]]VYVTcWZXZ`\OSVV]RRWW^_VURZ[SUWW[\W[X]Zb\dYVRYZ^Z`PTU]UdY]T^\_WN`W_XU\^QOSL\^fYUWZ_WT^ZWXY`T`PV[VU[[S[]YT^bS[\gTWXOXUY_VcbX\[Ua\]XZ^]ZZ^TZbY\UZTUS\VW_WQ^RY^_ZPgZ^bTV_X]W[U`SVUYb`USUX\\]]\VXXUOO_Y\_TbcT]XSV[_TVZWVXUWaXdPVQZVWadVVUg]X_YUZdY[Z]YeXb][aWYYXXW^_WPYbTXSZ\eSSWR]QUUXYWX^T]U\\\Z``[ceVPSL[aZaPT]TW`W\^WZ_Y\^YY`K_]UWVUV[Sc`X`b]\W]R`WTKYWa]e_QX^XS\]\[S_TUVX]Y_SQ_M_[^[TWX^[]^WVVW^]W^S`\d^WTW\[]aW]S^QbWSaYSYY`U\VV]V^T]YWV^Y\ed^dU`]][QYWTV`RWZ[]VZ^bU^\SW\TQW\QbX^YYUeT^T]Q[aSXXYW\ZUaYb\_\\YW^YY]YTTY[VNSWYYX[`YV\UZRW[WYZWUU^Xi``VUHi\[SUUX^[X[ZQY\YTYX\QVWXR`VV`SVU[QXW_ZaUPY^\M[Z^YW[UaY\]U]ZV^^aO\QUXUR\_a`ZQ\PN_RW]a]T\XMYYW[RY_VXa[_Y]ZRiXQZXOVaXVPPSV`T]R[[ZbZS[Tb[RSX^YaYSM__^ZSYZT\\SZQ]P`]`SYT`][XTZU[\[\]S_[VOQX\WMNYc^XZOZcMY[aT_YRUVYRZTT\\SJ\UOe\^[ZW\UZZ\UU_LPSXSQ]STV_ecfZ^TVZO^ZY\S]\_[ZYRUKUNTaSX[QUVNZ[cRZg^_UYQ\WYYSLZRTWbZYVSgPUlVO^TYV[n[[[XX][X^QSX\U\SPVVPaX^QYhWSSVZ^Q_X^TSLSX^PPcSW\TWV\`e`UOVbY]LXcT\`\XNTTZ`[QXUS\Z`[R_ZY_[X[WYb]N_TZP[NU_R]\`ZeU\RON[Pb\S]NbYWSSSZKPT`SOWUUWN\aVSTZWYML_XZVVP[NdXP^YOg`WRXWOUTYZ[gVb][VW^d]bg`alUUZ[kP[W^U`f[YXXO[QYb\XbKVTTQVW[ZYXYaY`Z]Sf\LZ`^TZZ`[aWVSE^JU]aR]jVXZXSXYWf^X\SRZ[cR]f`LYY\\aRTSRYdUZQba\VX[\VUbYZ]SSX]TW\MddTR]eZU[W^[URWY]PT\YmN\HabalTL`PUaXYY^WbZTXXUX[U]c]W`XQ_PN[`TZQbWTXb_aTaa`[fS_bR\^UXa[\Y`TZR[RUUccWZYV\_S_T`S\XSaMYbSTd_PaaZTWaX\YTOVRTPaNURSWO\PaY\_bZVYUaGVmTYR_aVjbZY\Uf`aOWV[a[^Y[T`PYYOW`Pe]_YTYUMcTaSTGZPPQ[RY[PVP^`XG[[`][iXeU\YUPS`QZVXZ]TZQS\c]RJL]d[WNZTV`\V^VPQYT]U\cQZX`W\[WYZjR\_SnVTcVXUwZT\U\VZSYNTjUVYWWaU^OI^^\ZTSWY[bVYTc\dQYbjXUUWVQUORYW^W[^RNVSWY^Va\kbXWSZRVbZYR^TT[[S[]ZQPOTn`W^i[R_WX[NRWPUXVbY^P\QZfJ[^`^^U_WZ_SaYbWXUZYZ\\WS^WaYXZc]kWWaX[PYZ][WRbU^SZ^m^XXXZ\bW`ZZZSZYZVaYbZZd]XVVY^PSb_S`RYPWYTXdTUec`WVWNZ`L[XT^]N^VSU[[[aWQZ_[VVWZTaUbVWkX^OZV]QW]]]Y]]VQTUZYYXTUjWZiUU[\SbWaaS_XVT\J[`UUZb]YV]XZQ[TZTN`_[V[YPTbZY[QUUYWX[\ZfTdchOYYYQ^dR_Z[PeQ\\VRV]V_][SZOWW[aTWSW\]T^_`Y`[UZYYYSV^WWPW[S\UXOUWZVX]SZ]Q[\Y_cX\]Lm\[_XR[WZX_RPV]WM_\P_U[PXXSZTaXYe^gW_YTO`_]UXXLV[\\ZYaXXWZV[W]fOUVZF]WWYXUa^_W\`][XQ\XYZWY]aZTRWV[U[]UYW[acUVaOPNUdWUV`]eYbVUWYNNSY_TPb[ZV[^\_VYQg^WU]PRT[UURX[TWZ_ORYUVWjYK]YY_^YVaST]SXVPVM\VU_^^W[Q\\]aTX[[YUV]OX]`T`YZZ][m\WR^YUYZXiZWfb`PRW]QXZUbSg]Rcd[Y]]WTXXbYWZTRYgROOZU_YV_OWRX]XYXZUVhh`b]`UbXY\X[\eTaVUXXTONWY\ZOPXd_VVXY[S\^bVP`[bTTXS[`SQaT\[ZTUVbN_gX[aPX[ZZiVT\]R`]aWU[bTLU\Vb[SVX\XT`UTSUUHQP_VMZ_VYWX[\P^^`SW[[\Y]RR[_Y_\X^jXV_U\QTQY[\^Z_OXUXSVZZRY^TYXXWfNVV`QXa^ZR`Y_^\^[_UTXRa\ZVYU]\a^Z^OW\[T[\RR\eR_TSeUWYUb]b`YQU[K^WYXUYU]YZZTSXZSPUOYSWaQ[\YVTPbSb]`MV`[cSVVXU]XT\QWVVNWTb\T_[]Ui[VWO\PKXZUZVX`ZMY[TXQQZa`V`V]RS`[OMXXY]aS`YXUYVUZR`YU[ZmW[XZ[ScV`cTUdUTT[ZUSW_^Z^_S[MZUPZV]VPV[\_]X[TU\UU_^XZ]VWYS]X^XNcQ^QQYW^`_NSYXXOXTU`a^ZbU]YU]XeUZVWWVYVXYUVS[d\jYWVS_Ua\Q_^]_UW]SbT_^X[aPSUWWUbZVWW_XW\_TcPV^^[ZVZU[T_[kW]XNPZX[a[XYXY[RT\[\T[RWYYTS^fY[T_WW^RYUX[UXVWXabZ\NVXQW`SbM^VYZPZ]S[aYU`VYaZZS\_SXWcUVQPYbWaZVOR`Z\[X\dOYYSWT_^W[UWdNb]\YW_LY^`MMW]X^^ZXVT_TQZ_UT[[`QRYYUS^[]]X^XZTZO_`YOdW]U[R^^U]P\S[TORV[[WOVVXTNUPXVTVZR^UWXYX_OS_UNWdebVTY`[][QLiWT`ZZSSXPY[_X]PYZWVWXU_b^V_VU]XPT_^US[_L\]aUX\SSeVQ]YQWV\TUPX[Zda]T\Z]WWZ__[XTWYUO_SXRMV[ZWNZXO[YWaP[PXWRcSXXX\]UQa]YYOa`YTYOZVYYW]XZV[Z]\PTZX^WhZWWWXYSSY\^XUWYX_\[S^YYVWV[[cWV`\ZcTPPIXO^UU]R[^Z\\]Y`]^OV`PQV\XVbZUHYRUZLQZY]VXSUKO\S[QXeW`RT_W]MdX[[VhdQT\[[YVZ^[[T_WTdXTV`M\QZG\XQVa[QYTb_WbR`eT]]LW_UT_WWLP_\URYWWbTeZXRcNYTX]R]^Xa^U[YXTaNV[S^X]Q`a^\X^V\\[XNW\SWReXUYVYV[LXVTcYY`RQjXYWb^[ZUYZ^RUURU`XXUWScSURPWRXW_Z]X[VN][SUZFdZS]cYS]\UXcaW]V[c]bNYUPVS^R\^WNZf]]SXOX\MJdR\TRP]NZTQWT[Y^Q\cYWYQLTW]Y[YTTZ^^VWUQY_VPU[[WQ`Q]\_]dZ]_VXOYa[X_[UQe]]cSQTTS[[ZgYRWV]\Wv[_f_eXTZ[WKV]VYU_ITaYSUNbW[_Z^Q^RWSU]R[`Zk^YYcTYbV\cZR]^VZZP^kR_P\NW[_XTdVSY\UKKURV[RXX[VTaXZWPXVZhbVWXW\ZYXX[UX[Z[\PWbbS\ZaiTy\[aZbW`QPZSi\ZRcUSVSY_PYTQURVZ\Z\mVZ\NNTXT[XWUcQRXRLZbgZ]h]ORWS_VJaZYXSWPRePP[PZN[aV]_RQ]UYV\\\YRWY]VRX[VZ]YMUZi]^[\MVT\TNVT[XcS[WD\Y\T\]VaNVUU^`_cZYX`MPZSRSVTUYaUVPPYHYaVVZT`[aZPDXZV`N]_S[VVS^MZW[_X[U[U\]W\WOVV]X\VZ_e_XO\XVRUYOYf^^UV^SQ`ZWYWaU_Y^[]X\YTeZPZ_Y]_TTSPQ\W^T[Y[X[ZXVS]ZRRTaVJP]RRXKZN^R\UVRQSZUQUSWXXTWZ^`Z\[QY_ZQOU]OTX]WW]_MXa`QPU[W^XXd[XYOYbX]MVW`XTKWQaWPSWgUaXVXZ`TeRXUWeTQST^YN]WXKWW_PVXh]RWYX]VT]UYLT\[e[^feST`SY^YTX_Q[L[\WVSWWY[WPYSaS`cYXWf]YS[YdQUZW[X[T[\WZVRKZW_X\]e[XVYVYZ_gSRXX]`TZWTcVbZ\ZUSWZZTaUN[Ygf\VZeS^SWW`][aVYTXV\U`W[LOU]TVgY]UPYR][O`[e[[SXSWZ[[VSSWZS_S[^YaT^]RUTNZXQ^\TWTW]X_YZW\WL\TXWMZaYOV`_]V_YeY__VYXUXWbZWZRWWUeZZlXWWQ_VWQ`UYXVYTW\SU[]\UZZW]X_jMW\\QWWWZ\[[TQ_WZa`T[XT\`XSRVTQ[Ma_Q^YSOZZZ]XTUZU^OOaWY_\Q_\Waf[^YX^YUZeVXXYRXWUfXRXSN]VNY`[XeSWVOaZTabVReTTRVUoS`QUYJ^bWSP]_YJ[Z_WSbTT^TWU^YTWZYgcZW^V^SSUXV^`WSST`\^T`Q]R]]^\N]GOQZY]XSaWYc`WdsZT]XZZSTWY]U[VUYZZQ[QYW[SU`_]XT^PTQZ[ZSc^a\UZ__MRPbUWXXZZT_]XUTW]XU[dQdZRT_UV_\]eU][WWbYTSZuQVNU[[XVa^RWSbTT`ZVL\[_YT\TV`UX\dSRdSb]XUZTV^^aUaTTa]U`UYTXbaV\\^UZ\_K^V]VZg\WXUWS[Sc_YUY\_`ZNSa\XVS[\WY\^[dP\a]UgRWTWZYZM[_YYX_ZX^YPiLUZYUWU^WWZZ]ZTT[Z[N[YZVY]UZ\L^MVZTabSU^[\_WZWUT]XXUX]V\a]PZaWTUZ]h]U[UVYZbTT\W_[\]KOXbVTY^U]UZdW`^W]Y_]TY`UY^Z[N[^\gQ\a^OX[[dYQaSVbSUa_SN`lZWi\TW\]RVOSY\\cWX]SUXV\fP^SX[Z\]S]RXTZZX]][VZabVVd_c_U\XT[\ZX_eN[T[ZP\Y]YWITZ[X[[W[Y^W]^]YMf^\[`b^\VX]YWW\S\WZTXbX\Q\WTq[URSYX`]`Z_e]Q]O^UWOW^cR^T[eT\ST\TXUV]]PIbQOUOUYY\[XT`SUbO^SY[TYY]YZSPUbR_a[NeX[_X]WXYQ[ScYWb\`VNYXT\`XW_UV]NZ\PZ]^NgZYWU^^cO_`[XXU[PWWRZ`W[iZLV]UUU^ZVZW[T`^pcY_QbVVS[[S\_YN]eWQRX^YYRKQU_][_ZH]_VWYWY^PPQV`V^b[O``XN]YS_PSVTYUY]XU^SZ\_W^XTSYcW^bbV`Y^VZUYR`RjZ[NU\S]V`QpT]^[RV\YQ\Y]XSVPRUSZ__NZUcWa[X^W_\^g]eYV^ZVZX_\X[SU`R[[ZOW[YdYi^TKfPW`ZVZd_\SYTVT[a]UQVYT[VRYQS\VVY[VI^W^Q\U`^LTZVc\V]TUVWZVXZb^[V`X[ScR`dRQZU]]`]XSe]ZhM`[RKdV\ZXQXTVQXRQW]NVWT]WV^U]Q][NPVMaTSZY\\P[fZ[TV]^QYXZWY\U^VZUa][XZ\SeOQV^WWU^Ui]ZU\]Vd][]^dOe[Rc^WU[SqaW[]YK_STWP\R\ZW`^VZWeVVaTLX_LPXWXdQZ_XVLl^\WYQXRSYaPW_]ZbOX^YZ\^`[ZUPM][\SZ`ZTTTR^``nZe^[Y]bT_WXVYUIQUZT\Z[VGYX\X^NURQP]ZkQV`XY`YU\QS_YNW]R\`L[]T^WhZYXM\RXSZURSZX[X^SYVaZPaP[WVOUgYVXgWWRTWT[WaYQdNSaYVN^bVSWWY\WafSZ^WbW[NZPW\ZTRWV\]XUO_ZZR[R\RaTV^O[[ZZ[YXTL`WP^ROVWUO[]TS``^ZHXUdUVlXXdYbY[[[\\SQ\]^TPOVQ]SZPYX\VTc\]TUPS^E_TWUUdWbXXXYVVYgY][Z_RUdYZZYUQJUeKh_`WTXUPXTUQeZRQU]OW[\__YW_SX\dbaTXZLW]W``\_VYUZe^[YRQX```\^PUY`UTaYXQW`OaVW`T[`PtSY]VZ[bYXXR\VYZcVZS\SV[VWOX[YYXUSZd[aa^WTN]UV^\bUV^\Z[\^aU_OTXYT_URS]ShORT[XS\P[YM\ZVW[ZMNVJ[XVZQSZOeVUUVY]XMY\ZaYT`VYQlXXWOP`Qb\dYRRX_ZTaZ[S\n]]P[]PO\RdSXTYYWSRYRdQTQQRWhWYVR[VdY[NXX^XRSTS^VWZba\SU[^LX[^OXcV[^NP[[TWKU\OXTXU^Z`Xb]aP`V_JSUSVaVVXWTUTR`b__b_UZb\\X\dVeYTTV^WTT[RVYXTTO^\U\UZZQTWZXYY[ZO_WTdZ`YRVfTWTZXdaX]X]][YWLYXa_bY_ORWaXXTWVSV[Q_W^`cSVZWTMUU[SSaR`\b]aXaP[X\bUXS[XXWVcQ]_X[R^W^^TVbJRW[`TXRWWVQVUWSVY_ZX][XZTZOS]aYP[HY]US_PRWVXaSRQWVTRWUeVTXXTVTP]XY]S[[RZWQUV_XeY[VWXP]]]WZUYSb\UTWdWP`W[]UWW`ZWV_Xa[Y^Sa^ZX_\K^``T]U[UYU]SYRVaX\UWYVWV^dWZYW_`YS[\X^X]TZWX^a]_\VV_VZPXSZ[YgZXW\Y\`WUZ][X\eXTWRcVWX\SY`[bYO^UY\bWYUXV]RUUVVOdWSW\WU[\VZYbgeWe^Y\cT[SYVT\O[X\NS`XTc]WR`YZbe_[SeVYT[Ze^V\ZRXW]bSRaZ_T\LPTaV]^WPW[TQYUXS^Y\``\Y`]_Y\VY_RVX\c_^VZTSYW_TYZ]\QSWZWYTYcUf\^RXUWYXZYdZRZWSXTR`\`\VVYQ`WP_QbV^SX^`[T\VfYYZXY\cRbQV]V[dj[][T_LW]V[[UQYb]^W[U\aTUSW\Z_e`\WVW`ZU[\V`Z[^`\XWSX]YX_^VXWXQUVXQSXZZaVZUQX]T\YWTTY\[UZ[WYT^N]\V]^UN[\YT[`VWV\d_[UWVVVUW_ZZOR_MZ_X^MLY^eMXQa[NQSN]]ZQ[USWWSYWUe\YX]O\Y_V\X\XYXXLXX[PXW]PaNZXT[WZWMUcP\S[]]X\X\ZNP\Y\ZWVWXVbVZV][[UR^U]W\WP\WQV\M_ZT]_\Tg_ZZ[RbYPVhSXMZRSTU\RZ\Y\XUZXK_SYX^U[_RSXUXYSYX]YWTWZ\b[S[`VTZYV`W\Y]Zg[U`j]W\SOVR[ZZ\`XdVV`XT][TO[[\_Yc_Y_Q_ZUUaUd_[\\Y[ZcZMY\[SUUUWZb[UQUNo]QZK]PXXV\Y\U^[aXRQYU[[UYU^YZVOR]P^X^]YaW_]YQ_VnP`aRYT]fUeV`ZOY\N_\[[ZR\NRZY_VX[WT\TYUU^V[V`V\V]]XY]^^UUYWUgXa\^_VbUWKcTU`hOc^]Z]RJQZU\PhdYXU_WY\b]ZYWUVNZWc^WbcWVY^[UU[TSX`YYPSZ\TPNN\ZWR\ZdWWXb^gTVUTZaaZ\\XTWRYX_QYZS]UYTgZ]\V[XbW^[SZ]haTWYV\JZWR]STX][WV]PPKP_YRXYlVaZXXZ`cVVT\W]]_XWX^YP`PdTQa]]WYU[Z[RV]_VcacXyY\`XWSZ\X[XW^WY]UZ^`U`Z\TRWb[[VXgRYV^WXY`XOTZUTRk]UWS[XaWQXhPUXOOTYVQRTWSVZ\VO]_\`^QWUOd\UTaO_KVQ[Y_YWXWd]`wZ][UZXWS`ZXa\VYRY^X]aZXTUZPj]SOVS`TT[UfYRYb\RYaZ]QU^WN_Ne\^TRSTMURYSYXYbVSVQ`FVUYbY`X_cZ[V`]W\[W\[hVRhY`ZM[ToX\TUYh[^QTZcVWXafZYZZPgV]SZT^\WSW`Q[\RTTSb\bQWSNUUOUXSfZhQ^a_UXZ\]abMi^Y]UYWMVTRVWTNW_O]XNVUeYXNTTSRh_WS\UV]MaWchZTOObY][\WS[STTWSY]T]dXY_dZd\NR^]WQb]Tf\V[hWPNWaf\\QXX[OYa^\YWZgSTSSUU\]S^ZRZKQXUcXURZWaQ\LHYZ\YSZ\W]Y]T\bf]QRXdX\TNV[XXXbZQU\IaVZ[TOUlN\ZRN_YJbQTTi`[]TdZVMRXUSYQZWXOiWM[VZXDOfW_QUYZSR^X`]WdUR\QW`PXUG_NY[\WT[PZPMRV[TV^_OZ`K]X\U^YP_][S_PMSVX^ZN[hhSNURWRO_kWPPX\VY[NWZdRXWS^NWW]XT[XTQNTYV`aXlX^POXQWY_RRYcRWVcfbYLR_]SZX\]bYWU_\[VdXZXUR]XPUPT\WXNUXP_]TUZXXU^`[YSKcW_LTXQX\YY\TZZVT[U]b[XU_NWVT_S[]SZV_X^ZZa`^j\SYU\U^NR^XWSXVfR[^XVU[V\]eXWWVaI]UWWdTaQUUUTTVOXL[_VS[YU\ROXTUOcRYa\YbTV[`NQYZWVNSQXWV]X`ZRW\ZPWQW`TQLUWXROYXQWOYaWU]eR_S^_XYU[VONZb^^SVT_eXS`]W_]YQYRab]zZKTZ[ZZZYUQ\K[Y`]R[afMPZc[RV\^ULXZViW^X`VcXXW_g^^Y[VWQ_XZ^eOYZ\_XYTY[QXZaNSZNeXWZUSOVXfXVVPRQ[Q\Y]a]]UieWNTj]k`SU_\RSOJYTYXNTVRQV[TNT]TSOVb[UaX^ONY\SQU[XWTTS_V^\W_d^[W\XQYcXYQc\`^^XTP[T[\`dN]ZRWRW[Q\YY[\a[Wf[OWd\[WUL[RQSX]\URQ`kY[ZUUXLY]X\YY\[R]\TuV\QUq[ZZZZU^K^[[Y^WTRV[ZZTbYVZ]YY_[Z\]^Y[aXPbU[V]ZX]UZZYTX\URKWOTWZT`OcVYQV]XbTTUYWZXScYVUV^ZcQ_^RX[[[SX^VccOb[`]N_`a\YI\[OYWZYJZZ^\]SZ_QaZkY^VXY[__T_[UXZYW[UXSZb[VW][YYXTX[XV[Z]^[_qU_^YRRaWT[aTKZX_[\V[YOU[V^bV]Y`\Y[XWURRYYW[`bZGX]XU\^[X\Y]U\_`^Yd`Rd_X\U[S]ZZZM`RY\WZR_QU[VYRbRVX^_LZYYV]XdRKfaSP_]YW_Z^PWZQ^TQ^[XX]XTahXXYXLXU[eWX]STQfQ`ZR]V_XK`YWYYYSV[[VX[[VT[Oa]ZT`SZaaXYSXf]OY_aX[NbXX^[LaM]Z_bXSg\]]TWbTaZ^W\\ZXSaYY{cSXQcbZR]XP\V\YYVYSOW]X[V\`[\^Za\bY[[TeZROoWWSRV]]TdZVYS^Q\ZW]SSYYT`][^fYXZ\U]PeRXa^UZ[bSZ[XRWUeQ\dbQb]]^\`bZY`U[Y`[`TjYU\MZ\[V]Y[X^ZWY[X\TT[OU\Z^\][S`Z\WSW\WgLa]SUU\[`XNZ\VT[[VXRXVZUV^^^a[\ZTV`TbbVTW^ZVRQYSSSOOX\XQ]^VVT[WKeUU[W[S_bXW`aYU]VXYZ`[_XVVY\W^VUSPbU_YTUZ]Q^YWTS[gZY]UZVUVY\]^\Q]J^\QV`TTZQYWTTXWXXbPWPVa[RZb[^LUNWX\WPRdXXTZ[XZU\O_X]_]Y_WYS^RZ\XUZYh]VSZbWZ_[VVVVWTe]W\YSdV[Y^RU]]RXPXZ\S[`WW`[dSWVWRXSSXWRZX[_UedRTWT_X_^\aV[U^YYYdY_T[XX^T`]UQZeY__U\XYWiPbXTWSSTYYcU\YbWXUU[L\OR_\Y[fKNPQZVR^b\RahWTNSVOSVYQ[OYXWbWPPS\UVZG[ZXZ^WeX^a\[ZYY]^YZ`Y^Zb]M][UQY`ZMURV\T]NUaZRS]X\XV^cW\\[PVSQTTZSWJ[Q\VWVZ\XS^RVSV\V`ZQ^]Z[ag^WfVXX[W\^Rf\XRS^ZRUSRYROUV[_TYYTYUgYdPUTXEZVTX]UUTV\WZSSPVX[RWWWW_VZWOWNbVa]a]`RV_dTRXVXRRW[VX\\X_Rb[YH[^[_VW[NSQbZ`[`S_]URZUX^^VX\TW\[N[TZaWWW]_]PiVZ^T`[[TT[X`[XS[\MZSYYX^UUTPPWeSUTSZWc]]UT^[Q`ZZfXSZTUVRYacVQOJSca\WQcOUXRWV^Y^V[]`ZNSUaQO_[TVXWW_WcZYXNX_^T[S_X]^\\^WUWQVW`Y^]VaYY]Z[``_dU]ZTZQ]XVgSXU[QT`OSVZ[ZYY\YTU^YUPddXZV_TSXTPaXR_d^PiNcZVZNSKYO]Ui^\aTUYUfZ]Q_PW\YWYTcMXVdRYdV[Z`_XS_UTTZXQa\_`SXRMYV_[\LSaRT`PSX`TQbdRZcTVZY[YYeTUYS^YWWYVYZ[XUZT]PX`PUQXVTWYgQQSUXcVWK^TVWYM\]WZZQWRW]_U[]OYRZi`WOX\\RW[\UYTVRZRY]]Y[YZSYV\^XRY]X[`\WMV\bZWX_Y\^XUP]IX]SWZ]UY]YZ^OVHRV_M]XV\YSNWU\IX_^ZS`XVW`TS[ZU]aYXXY_[KTM`cXXYZYSTWWW\TMOn\]YWYWYXS[HRXNdSWS\ZdS]]`VXVQ^SW]\SSXYb]YUXKU[]VYaX]ZdQ]UZQRX`_Z`ea\b[YXWUX[UTTZNZWYbU\\\Xa[ZSW^UUR]dYX[MSWR\YV[XYN_][SZRYT^ZX`PVUY]VXX[c]\QPVQeYRjTZWW\VM\Z]VPNXZR]XV[SWXY\YVPUUVOV`WVY\`XW]X_T`W[cd[]TQYW[Q_]WZP\XZcS]X]\ZVc]`bZWTT[\X\XePVUQW^VYaXWQSfWYb]ZQUV]WVWRl^Te]Y_YSS]XVaTY\ZaY_\\T_VWYY\Z`WSZVXRXX\U_YXXZ^UV]VNU`TTPYdW]WVX]\_YVNVRUUTS[UaS^\X]UYbbWX_NR\W[]YTPYYSaR[VR\Z[WX\^aXUS[`VRJVY\\^VW^YURZRbVTT\Y[VQWVWVTZVNX\TQX[^^dXXaVaT]R]P[b]U[OZ\UX^\aUXcdJWXfYV\QX]_XWRZ]ZVZWQSY^SQWQVQ[gXiTXTZWXU\XVYd`SSSW[Y\OYXUaYW_YVTJ\[cXVZ_HWQ]^`RWTc\YUg]XbYSX][UXWWPdUPQT_[\]XZMQYVZUXTS]W\SZV\U[S[X\VSUeUXXZV[UVOZVNVW[`\XYV][]ZUYSXZ\]]PUZ]QUa^\[TW^W\XXR\P\WR^]V]WKPMZTX^U^SaJeV]XWS\WNXXVZZZRXXZR][`USX\`ZRObSZX]ZZUXW[NZ[[[VZX[__O^U[YSU^R[WZWWZ[PZ`SVVTUYb^[QZZ^[X_]W]VR]ScVOVWVX\[S\[^VW\XP^\Y[^W[\Y\Z]ceSQU]c]`VQRVU\aaT^_a^[UeWWST_[VXVRZNcY\U\U`U`[_UWkUg[RX]WVR\UY_YU^Q]fX`XVT_]XbS_\UTWV[WYW^Q[VUYUXYQJ]_SXXVVS]bWYR[_UY]X^]_[XZ\hTZ]YX^X]]NU^ZTOUU]^XYXTY]R^``X\]SZ[U[\^YNWSTWXORSZXc^bSWYUZb_URX]ZS[eY[MVUQeZ_X[WU\c[\cRRYVQXV[^[XY[acUV[XYcW][Q`XVaVX_\WXMbZ\ZXRhaNO_Q[X]b\YTX^aaVTaYhSZ_W]ZT[[`PYTp]WYbO]Q\Y]kMVX[]gYWRQS_P_aW^n\\^dUSXTZVXc[^RShZXRQb[TTX_UKY\U`Xa]U[ZZ_X[\hXb\]\^SVT`V]_[`WYZOU^]YY`ZVZVLY]aaXYX]_SNSR`ZeVW^T[YYh[SVSST^\j]Ve`]\[Y\\V^TYYTXbSYZW[[U]Z^[SOTRWcVVXcV[Y^Wb]\_XV[XYWX\_L^]S\`__`aX^`Oa[YY]U_`V^T`YdXV\fZUPbU\]\X[`Z[WRUU]eTP\ZWXVg^YVMVaYaWa\Z\^S][UZ_^lQ[]X[\WR^\VUTUU]UYVV`[dSWlTlZZVU\VeZ_Y\\SXTSZWYQWeXV[]b\[\VV\eYc[ZUYTi\]Tam`W[]VY[U[[Wi\WXT\UW\\K[RXRURVY^VZPbTa\WV[UZ]cNV^ZSQ[dUY]]PQ[_W^aNXWOW]TR_SbORNXY]P_gPT\\R_Zh\Y\]Q^WU^_XXXX_X`Y[MTWdZ^\_\`QWV]^[U[U[bOSUaV\^^\RcZXTY]RRYW[_XU_\`cY[ZYUaR[N]U[YYZ[^\ZaY[YWVVOUS\[_[SSXZ^WQ]T`T][QSUUMKXX]UTaSWU[_^^]a]URRYbY_Z]^VXX\R^[XX[^Z`Td^c_Zbe[\[]WSYbW_WVPZ]YV`eSUYUL]Ob\YXcZRaSgOSSXW^\RSZXXTS`^VeQZYW\U]N\\]WV\\JYUTac\ZUOQXV_\[]]^X\P]KSWUT\VY[X`O\_VRYQZWZ]X\\WT]XW`VWV[WU]URRX\V]cV]Saa]`QRW_SeY\[PVYTU\`ZVU^PW[ZWZ[YZVUVR[YS]ZUV^RfTeXR`_\SXRaZUN[cWY[YYRU\OV^R]\TSSL[YTXcWT_X^YXYSVY[d__ZXXW``UVVWX[[VjP[gbYY\YX``X]^SWfZ\Ye^T]X[YZW[OYUXXUQXXZ_VbY\]`Va]]VJ^XZZYXTWSQ\SXV^X`XTY`c\_d[\d_\X[U`WWTQ^VTVWUS\T`R]ge]OZU^[][S\`PVYQZI`]XU\Q\]XZ]]TTbYVUN_UZUUQMR_YX_VO\\VTXSTRTXROPYXUbU\XZMVSUTVWU]QX[YW\QXPWZVYW`R_aXWVZY]WXb[ZR][`VVSYaYWZPHYW_Wf[[RZWTQ\_Vb][VV^ZZ^_U[]PTUZQ`SVYUXaYV^S`[XX\SWYZY[V[T]W\]UbWWTWU]_WVSaWVTbWa]\R\\]\aX\Z\Z\VSX]YQXOXYN_TUZ]YiQZ_T\XZR[W`ScZZXVeQZi[`TS\]XQYVWY[]a]YYT^UVT[]U^_YZUWYWOcWbVZUVXWYWcXZ[[XO`YPVUV]`]XX]]XTPO[]R^\`QQT_]_XSZXZR]a`[Y`_]SZPWSR\\[[YTVZV]^TWRYZSTVSUVUSY\^NWZ[[\WTVYUVY_VYUS\[U_\[PW\UU]]SW^VYXWWQQZU_a[NV]]WM]Q\TW^aWT[^NMVXW^^\abcWXRdTSWVSVU[_\TSU^UZSTT\XYY^UT[\Xl\X[VYZZ\RT[[cSXZUWcWP[fZS\bWU]YVZY^TY\YK[US][VV_][iTZT\`ccWTSYXWUW[N_XXY\QWTRU[ZZUVZ\c\]YTYYZdXS\RT^eSS`\VaY[WUYYV]aTUXYWWYYZ[UWRbN`VX[[[XTOZhX[QW]X]TReQVPUQZVX\`][WZWWYSW`WZWX]VUX_XcZY][XR[bV]a]bYVWWX^\XPXYYM]WZRQ[[R^T_X_VTZYa\[[VZYT\VVRQPVRVYX`aZ[e]W\T[U_VVXX\XW[XZ_[Y^PY[^[XbXKU^\O[VSXXYaVVLWRTXTMdY\XSW]ZYZS][Z`XRZ[MWV\bZ[NV^TZS]SYZSXW`VP^U[WZPYMYNY^Y[ZXRZ[TWW_QKXOVYT\ZP]]WU\]eRYX\a]Te_T`c[[ZbeVT_^T`Y][d_]SRVVZR]Y`[RN^R\QUPcZaW]VRXZWZ\X\WWZ]YZ[S]dW_XZXW`[b_YWMLXS[\\VX_VTQQRSUYUYT`]TUVX\OSTLXdW^XWbca][X_V\a`XVL[_\XT[PYRYPRVYS^_cU\\Va]WUWU^bUT^]Rh[Y][^ZXV\YWUXZbkc^\P^WdUZ]XaJ^YSYRUW^PXW^a]WZV\\S^Xa[]QW]]cR^XTXcUZ]ZUSYRVQdWO\a\gUVUXi`V_Z]MYUfYQYgQjWY[RXWYVd[ZXXM[WXPRVTY]SY`^]V\^ZTTXQY\_`RaU\WWW`TUSU^^\Y[^VX_\bYWU\ZRVWZV^MYZTQX\[VZRR_VYV_ZSRTZ]]VO\]TVWaWYW]PW^XP]VZXZ[V\TZ_WYU]c^NdXNUXcbTW_`Ub^OOWTZNR]XWW\[]YWYVZ`[SUdZXZ^U[a\_VTZ^ZUXVS\`U[[gT_ZVRTXX^XjWZYVOVVS[_OUZU^^XW^VTYUZYaVVWW^]YSYVVUTGXV^N\\YVUMTf_WTYbWYUX]Z[SVYUVRYVUTXXS_ZSYRi`VXTg[\VU^\`VUc\\SUX_P]PPQW\UOTTV^WT^\QTXXWMUZV\`PVZUZQRU[]UVW\]VRX\bS\OWe]\\\^RVTSfZ\WN^UWXIYX`VTZW\UPJ\S[WX^Y[RV`PSN`\WZReTR]aZ]TS\VQYQZ^W`ZT\aTZMW\S]VT]SPSZSW]TT]XZ]UOQTWY\TZQWXSZb\WUVYTUZTNTV_V[VTUV]Y\RXXSUVQb]_aYYM\VUWTRQ\YYVVXcU^[_W]]Y][TZaVWeSYZWXXOWZZZ_^[`_RM[`R[O\c]WTPb^VU]JYWYPQZ]Q[WRPYiT]ZWTUL_Z\O\_[Y\``YTX[SWLa`\Y[cT\Y^RZ[XXXU_[^WXY]U^\WKZ`X^ZYfgX\YSWUUVJR]^U_Z]U[T[^^Z^W]TUgN[]XcS[]SPUKY`Vg[aZWVRX`UZT]R[_[Zg`VZ`Z_]KZYV[\SXR_S_WSVSP]^[TaZ]Y[VaXZYPS\b^_R]U`YWZ[XSS]dZVX]WTiW_YS\b[]VUSUb[MVP_QSTXZ\X\UaV_[S]ZjXPUV]bVcd\ZeSX[Q]U^ZW[\[\Q[S`Y`^UU`NY\][ZXV\Y`YOSUWbVUSY]\V]TXWe\Y\aSW\WZiWV^bQVWVbPXZSY`aSV`_^cTZX`_Z]X[ROUU\\^\[]R]YVXT_YV`XfS]YXWTVYXg`WVNSaRRXZZYPUQYS^^UXNeai_\Q[V\TVY]]eYbWa[VOVSTWUW]`TQ\ZZb^\ZX[U]SUQ\T^VbQ\V[ZWWNT`VXSUW\XUR_T\^YZXX^Rb_[VWYa^RU]bYWZWZZ[RR[RZTR\]ZuV\WXTWPZX]YXVX^RWTQV^YYXNP\Sf[aZ[cOZXSXTO]UVdYeVO_UXVJUXT]VWQfU^V\Y]hYVaQWVaOWHTQ^_^_YVT`cTU_T\ZcZ]\TN\_TVPY[R[aV]QbVa[ZW^]\aS`dWZT\R\W]YO^ZUYTf^\ZUWdWW^\WTXYdSVRd^]QYU_YK^ZVWTU]gQ_RafVXiVTW_eV[[Z]XXYOU[U]ZV^dWVXWaYTRN_R[\`UOVZRRQa`\UTr[Wg`][PQ`OYXV[^]_PXU^a^]L\]TQTeTQXeI\Ya`Y]^UN]_^b^W\\SP`^RXV^PYLRNVL`SR^M[VS`__Z^_WZeVeTXX]b_QT[R^TYOWQVXbYSSWS_g`_\V[SVUV]pb\[[NVQVdSS^[\ZUTU_S[YWX]MYbYRb^WcZVN^XiGYXXgVTPY]WWWT_YZSZVO[j`c\^_KQUYb[ZeY[`WZVXTe[WLSUeXUZc\^RV\[Z__TQUXVQfOShW\^WVWRVX]_P[XXOcWP]\PVW\VYTY\PW\_UQZfXQVXU`eWV]^]W`QX]MZ\WVVgcf_L[XiRbMMPV][UdSYZV]ZT`XfX\QOUST\XRQ`VRULVX`NYVXMVH[NV_^VQaZRTQQY\nV[Xe____UiV]g[R_]Y`]SUZTRHWXRX`T[_aQa\T\P[]_\WVY[[WTaXbSRXU]VWQ^VZOZR[V^cTSWW\Q`P\H[Z_YdXPIWQ_VWI[ROPPacU`]RWU[K[PbTY[ReX___`RRUZ^]SOOZIfZT^]aRSTZXX]\X^WU`aYg^R\UeO^]XW^caa^_c\R]YNbSkZZXV]WP]^W`RcY`UMX]SX[[TdR]X`[PSRgabXVTV\Y_^]W\YQVUXXYQR\Z_mc^]`beHR_\^WZQUVY\\Y]X_gYYTTXd_ZWjPWWVSXiDW[Q]X[ZZ[bRXk__XWW\W[^UTSWUY\W]kWYPZd]]RV[N[]VjS`M^[TROSfXYYZ^\_Y]Z\\Vb\KTYSRTX_WXW^^W_U]ZZW]WYY[Z`TT`gZSWXPWbWRecX^YZSU^ZRNULaU`U^U^aYWVT[TVWX][WXYQM^VYW\dRYU`WQ^YWTdYVjNVXUekXgbWY^XSW`]R^RWTPT[_WZWZYRUXYXZXe_Y`UU]YeWR[USRR`ZUSDZXTa[_WUj]VSbX]`cXQWZ_U\]Tf^_ZNd^VU`KTTWY]ZYXZ[[T_SRXWfYW`YZ[SU^Y_UWNXSST^O`XY\ZTf\R\YVUedZWX[SV\Ob_`ZRbaTY[^OYUa\TN^\\W[RSPZXSVUQWaXU[[OUOUQ`YP[Vc\OZ^YTdSIPRXWbRWQV`XU^Wd^^RKV`WQ[OaXaSS_[_Q\_VZ[aNVZNVSYTTX[XYWQZ[T\ZTPWVX_OWW\YM]VUZRQUYOQQXX]_W_ZaY^V]YXTXaUZPTXZPZRVY\XVmW_aVSWRWcXZPRL\YZQ]bYM]^RU_X[[VVVTV_WOZbRX]SeeW^^]\^]\QQXVffW\]YZibPVfWbUXPZ^SPXWOY_ULTWV^]QZL^LfVWJeSXZMnZb]SWTYV[NV`UWZRV]YTXYQW\a]QT\XW\YR`[QRS`\_SSWTWRLOO[XYcWM\YZVQRZ\S`WXbWZLTX]V`W\_YV_YS\ZZZF[iOTNa\WU[VYQWR]XbVXX]e^iZYbZcbRP^YWdQUaP^_Q^cZXMK\WWUYSOZ`U]\_LZX_XbPS[^ZNc^YRYYXVOX\UYYRQRbdUZVWZ\UZOb\YdZ[`UZg^`_ZaQYOVU[R\\X^RYXTVVXb`]\\XVUaPUR^XQeJR]WJ\bRZZYZPZm[UUZZPVU^JWX[dX`VOYS_\WWX]T[\RZ^X]`V\X]Y\ffaadSQI^UOT][UW\`\bYUYVSZ\]SPW\W][^Ue`]USTZV\UUWXSWXU^haWWYQY[XRUT[X]^TTW]WdWT_YZ]cS][[W[XbQNR^`ZXRTVXRbdRO[]WS^S\VWae[VWUPRX\X[Z]cRTVZY[WU[^YMRV^aWc]W\_SUX[VVZXPKXU^Y\]SZI^VVX\VYc_\TY^P]]X[XY^]NYYXX[QW^[ahYZWTdYUUJ]TU]TZ\RYX]^]W[V\\WUX`\Nc[ZST\YUQ^TXP[W`QXWYd^_W\ZW]]\[Ua\X\`\^M]R^[TW\[TZ]Y_\TZ\YUYTZVX_`Y[[^LXSTY\`SXhUUX[YN_QYcTXUURU^cKQZV`ScTYYPUOTVUZ]ZXRXRPY[WaYSgPVZYV[VTTSc]`[\X^[^[_X[U]^R`UWYVNZ\XRP^XUT^RYU_]\PaZ[YV]WS^\S\ZVN`SZe[UaR[WRdWKSRY`ZWXXX`]RWcaZXVbYXR`Y[X_bZQY`ZP\\UZ[USW[ZUZ`SVb^]XTSYY[Y[XYeWT][XUT\[bNNY`SaWY[PYVZZ_[ZUReWVTY_VZTU\YVYX\SS]STc[Vc^Q[WF_\[UTVa\aTPh\W^^WTfYYSOT[WYZUUT^[[W_YQZVTZRU[VXO[_`QT[Y_\\_dYY]XT\c__]PX[ZRVWTUYZWVVS\^\[YYX`[O\``RTSWRO^WLY`Z`U[fZW[WSY^YPTWTf`Z]T_][_hUP^SVaaN]bYVXZ[XLdZUYRW[PRT[TZWXYYX\UVURUN^SU[XWSW[V[PU``TYVZVR[aWXZZPVcVhZZXQ\X^`a^W^\\^PV]RUZXU]TYZYVRPZZQL^aYU^VcTVRXXLXc\VVY]^a[Sc]T^[][^]PVUTXYRZTUbJ\QWLUYT\\VZ[WW]VZ\[`[[ZXS[T_bNP^N]X\_YX\S`RVbZSTYZ]\VV\aWbW\Yc\b\^ZZ\PZ\U\UT\Q\bWWTSU[WOX[X^YV_XSU]ZXMYYTSY_\QXSPVU]W[UQXTTbTQS\VU^T^T`dT_VU[VUV]V[PORZW[Z[XW\NXWYVWYV]ZW[YV\R[SZWXP]SS_WaVX\VY[RUdY\Z]U_R\X\_YWY\YU\^X_\bLZV[JVRZYTZd^T[O\Z[VW^QOV]S[`dZWZN_V`[X^gXVW\RY\TYVYPMULZUO[`baV^VUUUNYUY\UdY]S\O[c_WX`ecSUXXY]]U\^\XZ\TVZgXTS[PYU\`c^U^\[U[WRP_SQc`ZU]WV`Z_ZW`\VXZdZ][\_UY_ZX\T]XU\aZgUQX[ZLY`aSXY_XYQSS]`T\^VX\TXXY\[[]]`_UTa^XO\XS]W^ZV_RWPf_WfZ_\\WZ_\\S\Z^bY`RRUXYT__X\]YRRZJaV[[Re_TM]^YYRQ`aJcZYTV_^X\WXWaYX`XVXOZV^Y[YUeUXcU\W[Z`WThTTQUUXVXa_PYUY[^]^OV^TWSKXHf^S[][Q]eXZ^R^Y``cbXS\OdU[YX`\TXURGO_c]dTaW\bWWPX\]JQQ^fM\LQY\WYTZX\[YS]`UZ\TQWWSSX]ZVS]]JO\UYWPYSaYU`XWXeZZR\M\STXWYSY]X^VQUYVVX`VaXRaLUXR_UTTXXPW\V[dY]UZXXbYRZ[WYP]ZXRW[XYXWbWQVSWUQT\bXbX[TTXYYUZ^TSRcZTW`TL[YXfX[Y`ZVcTYRX[Pb\SYZVV[TTRUU\ZWV`TR[ZVXZWRccUW_aUXRXQ_WW\[UTS]TO_SZUT\Z^`_Zf\VZf[X[[V]\TQUSVY]]ZdZ[UYTR\WZ^YY][JYVWgS`X]`RW]MZVX_RQ]Z`[JTVcWX_Y`cT\XWZ]UUVc[[]Y_YbW\`T`Vc^X^VRY^XWY[]^WTXV]TcYR\S\\Z^T[WWOUW_\SaVT]XZSVX]S^V\V[[^dhbU_ZVTQX^XV^[WT\YU]S`X^WVT\T\YPcZRTLWX\]WX^[V^SSaWXa[Oc[[RO\WWZV`]YQVbYh[RUUVZYYTWVXUPVIiYTX\XUPX`\UUWXT]][[YR`W[\WY[`[YX^WjZ]XX_[Wc_b]SXVY\[Xa^[`\[SbdTZZgVUQTUV`Y`VM`UWRZh_U^`PXX_WZ_SQcN]\OaMbV^Z\[[^O]ZXTUSUVY^XW]Y^VWRY[_VQ^ZQWZ\T`XTO`SY]UZYhaTRUP^ZZ[]U[Qg[YXR[dY]\ZYSL_VVZLYOWS`^V]aVVTUXYRTSOSWWeXWMSZTZ^\XPZYVTZNVYaQV]aSO]TVZ_ebT\Y[\\WT^PdYWSR[Z\[XRa_STXKVSTV^SQNX[RR\YX__TO^TVXRUUV`UX[_^ObZ]Y_X[R[Y_T`\^[`XZa][d^TSdUYWXWaM_R_Y[ZWWP\^XT\QUWYXXSXX`iXYYYY^LW`UW`Q]WORUVW^WT^_`V[XX^bTSO^cVNUYZZ^S^fNb^WWN]VKZYYUeX_WZSaUXVXTVQQ^cW]_U^haUKTX[XYa[P]^OXZ^^YLV[`]d[VWP[S\^T[XNOYXanTXJ^N_]N\[WaMUX]XUVV\ZPWW]]aWUXWSXT]WT`^QZXT[bb^a\YYZZXXZTM]ZUeRSXUUSX][V_SVdT`b\]a]S__`aYQbUPa\U\X\`Ta]aYWTX[^UXW`PX]ZZ[YZW^X_[R\Ob\YV\VTZPaPZQP\[VZU_[TYXaV^TT[c[TSSR]]RTZXWW^W`VcTZSQWQb^\O[VUQ]ORV[U\W[Q`Q[fY`VQa[]SRYa[VTYYdbZX\ZXdSVYWXV\ZX]_\\Y^ZS\TZR^[W_`[VWT[WQ[]W_VZWZWWVXURZ[ZT\NXcT\XTYb]XX]\WVUZYU`Y\Y]W^UPU[^NYTd\S`YYTWZTQQjZ_MZYSZ[XbU_aR_R\Y_VZZX`RVT^ZYR]\Z\d_XRYSPYU`UWZb\^XbZ[a\_U]\VT^\TXZYW\`SZa`XXQ^XVTX[[aR\WZSVZ]\WRZTM`RUXQa]TXXei]ZUY\_XWSQPZSY\i^RORZ[bS_\RURb^`OWRbW\Z`_^R[Y[bYXRQVL\ZV\SWd[]]W]VUWW^VYYcfY\VSY\dUVYWTXZ`]^[V^VScTdS\dY_XYTb\OXRVT^UOUac_VaWZZ\RXZc`^RS\NVZ_]S[_V[\U\Z[S]U]YVUWWbSXaSQUbVR]ZXXV^ZQY\[Ze\eKX^ZXWW\_VN\XR[fRaRO]UZUdTZ_\TSZVMV`][WRWVQW\]RMYWZcWSWWVSa^_]iX]PVV^]`VS[\SYVKKSPVW[]ZUZ[[ZZaVaZ_dRRcU]\R[[X[`^RaY]X_[Z`\RW^VaYWa\[RXN]\T`XY_L[^Qc^SY\^N[XVZMZS^\Y_e^WXT[e[T[PV[XUIfVXXYk[`R`[[^VRWSNPYTQPX\]][XXTb^^YZcWWS\_Qe_]\_T]_U]KXYUXOTUXUV^WcUPW`aURQY]U_\W^X][Z\YUXS`YXVV]YXYbXQM[\TQXTXUVW^]\\WXXW[TaWXZ`VWWYQaVZ[[ZQbV_[TVTU\YYRTZVZR^]SU][TVQQPbXVZUX[VPVcY[Ra\]_VSWTQT_SXVj]_XVX^SQV[]PZUQRSXVP`TUTQ\V]d]^V\g`]UYMX\UIRWU[SR]U^L_\_\UZR`_W`\a[^WW`eXWYVb\WWWWY^]XU\cZXYXRbPU`QVZYNV\ce\RYWVNSYXTW\XYRY_\VU[\WkZM[OOS\ZPdX^\YZU`WUZZa[VX[U]_YVWZX[QXX]RWYUeO\_\XRXb_X]^dVW_UX[VYV[WW`aYRRTcTX_gXW\U[Il]]ZYd\YS[V\]\][VZMWY\SS[YWZ^[dXeZW[bYW^UXW`OTTa\O_Z[SQWSYX^\VNRaYWX\c[VWUTgUUV[aVWZ^\WZ]bTZSSXV]\\dV\WS[\U]U[^YWa\Ve\YVh[TN^`[W^\UPVYWZYZUT^WS[d\NUU[dRVZZWYUZRUY^chO`V\`_SVRR[W\SYWURMaUWUYS\V\Y]U_VW]ZX[VYOX\TSWW^b_ZXSSWeVQj^`\Z[Xf^O`PfR]aZZQX`X[TQ\RiUVPWUZ`ZU[YXPY\Xd_Q`Y`UVXS\\ORQTlXX\Tb`PV^[MQZ]]S`WZ]]UZ]^ZaSY\V\fSQc]^aX[VIXQc[cXb]bY\^YYXTUTUSWaYWVTT\TRXUVUJYUTUb^\]^XVT_Z^aXW\YY[SS`Tf^UVWUcXNZV^ZTUWXSXVPVcbO[ZXT]X[aXYUQSY[ZQ^ZOXXbdSOV[Y_PW\ZXP[ai\`SKcSW[Pg[W^[VZbP]XTVYX][_XXYZdcZ^VdWbX[TUJ\U^YbX[USc`c[NcU[`V\ZWZYRX[`_`Z_cXZ[_]X\UQQmZZU`\WXa\cV[YUY\QWYZ[^[YXVTVZRVR\ZWVWeTVS^U[`WS`TXVY[UQ\[[TWcR]NaYY[RZThOV]YVTYUZda[YZVTCVXU[[U\P\YZSV^US^V[MSYYRPWZUXW`UYXSXZ^VZ\XZRXYk_W]VX^UYTQZQWYZ][^\UWXXPWVUNb`W_SYS[T`Va^V[`VgTPV[ZZO]QQUdZWUQYRR\Z\V\ZWR[\QO[TZ_\TQZ`Q_[[T_\YXVUa\V[^]X^TRZY`XTSY_XWP^YVYXVUXUTQXSUYY\aZXUQYZ^WV^\WU]YXRMW\ZWbT_ZZ_SWXWa^ZTNQTY[gWZ_]]`XU[[aWYYURYVaUVXWWPVWXX[Q]ZQ_Z]VWYYZX[VSUZYTY\\]\\UYhTRW]\_X]`Z\_WSRS^Ta`ROLUV]SXZ\YU[`WS[[TOVUWXSQ]]VUT[WYYYSYOidXNXRTWYS\VWVTXZaSQTYV\YXXWPZ[YUYUO_\\ef[YZYXU[VUX]U]QWXZRW\[URdOQR\TYVZVZXXWT\]^S\aOTUZO\SaO_UY]WNWQ[WVgRWYXW[R]_\^XP]`]UUIY^VYR^iV]dRRZV[hYTT_WeUQ[TZbTZ]U^R]UY[[[Z_\TX`TUUZTYTZXXfYXYQYX^bUYYY\`aO\RS[ZrWWZVTZeW\SXT[aTXYTWXcYY\WVS\XX\_[VRYT]U^YYT_^_URX_W\URTY\U[XXPYZT\[T[Z\Y]YMXXXV[\O\[V^VV[[]^VZR_`XT]USOY]XaVZXR`eMV^c^X\QTXY`\YX\UX^WXYX_\`RX[\UWLTYXVUVVXRPV[\X\YeP`YYR\Y\\RV\ZW[\NY\S[ZX^ZY^[XS[WYYUXVT_Y^TV_SZU^WTZTOWPd\X\Tg^YZ^^_ZNY[_XWUN]QV[XVR[STVSU\RY\X\TdWRPd\^S]RSW[c\]VcYTZUXWZ[QWZP\WS^XSWaZROSRT`[WX_T\UY]WaXVWRcSQTTTV`PY]URUW_XXV\XXQKZS]U^]QWdYVYWT]R]PRSUZ`^WYSYXMTXO]TVWWOYYZUQ_SSZSQQaUVNQeUWKZa[Za]]V^RNbH_TXdVX^VdS_^UWUaZZ]RmVYZ^M^[YZ_V[UTVUV`X^Z[[ZK]]PTQY^TaW_ZSXT\MZVZXXYN_\[ZSQW_Ye\TZ[WOS`SZX[[TZXS`QW]^]T^\WXYSUVUQWeb[O_T_SUQ\^\UaU_]ZU[_LXVZ\R_SX`[\ORR\eZY`QU][XWOdTU[SZSYZ_][WYN[^OY[aRRWYTUXVXYW`TMKcQZZ]POTU^\Zc\Q[[ZV^ZWYZZYXZZbWVTeXYV^aXXT]LYVVY]`XRNNMX[[YVV^]OY_WWV\dXR`RXXRadV^h\X^]V]ba[[W`WHfZW]][a\][\UX`fTWiYTZZTbU][^_YZ^]dU]_UNXTYX]QY\^PRbMXZY[TXXc\KaR]e[WY\[RYQX]Ta[WYWTaZ][W[^ZPWTPXJWXfUYPX[TV[S]P\TTR^[UX^TY\VUT]ZUTPc_W\YY\]QaU`WXXTVbXZUZU_ZO\Q`[fTZTS`TO__VWYV[fYTTQUUZc[SVSNZOWQYTf^ZYV\\\_[XX_TWX_Y^ZOUXYSWWVYVX`MXQV\^UZSZVH[ZX^]\YeZPPNSPRSV_^K]JYULQ]SYSWaZYXZR`WYQX[\_V_UWWiXaVUXYVWWXXW_ZZTXQ_^VTVVZVWQ[ZZVVYbPQXZ[XQ[SRYYOf[VXYWUQZQPWW\a[\[Q[WQ^VWXYW^VR][W\TZXVR`VeYXZdWUMTXZZ^YYWWYa[V[VO]eSQSPbaWVVWWVSP[aW[ZQUSXcXLUTYYXa_SRZZX[\JR\\YY\VW][PW]QWS]NQQQVZYZPKRPRVZNTY\PROV\mPPeVYLa\[UZ[Xf]\TZZi\_XWVZ^fXVYaV^QY`cRO]\\YXX\]NYY`Z^\cTRZ\]`We[hZV^bbPXTV]dQ]W^JZ^`\ZRWQNWSXXSi]\V[\Z[\T]U`TZhWWUS_UQ^Sb]_bkbaY_\\aOTZ\X\_TZWYU[]NaeVP^ZhM^UTcX[\SZR\\_^`VY_WX`_Z_VV\QTWV_RZ`^PRbR_RVccXR`UY^a`\i^_\ZTeT[VWZJU__XNWZ^^]XVe\Y`NTW^a_YbOS]`ZbZUUXY[UY`[c^ebT^_\]\_bSdYWTVZe\^\XeYXWQ[VZTKbUa]LU`^TNUYS`V\ZSQP[dSU_c[Zd`bYUdSQ`MMVW^^[PUVZaW_cT\QUaZaZZ]WPZQ`YXSSY`TR^bbfRRSVaYWZTYULS[N]ZQXbcSSV\[_\UKQ]bWYR_hV^WK\_YP`UZb[YcJXXWP`ZeXbVUYXY`SVQQYQZPQ\TW\V^SPNVZQS`WX\a]\[URP[X]^QTV_SWXPNdbSSTZF\\`YR[USU`q[[aSUXXXaTUPR][Z\SZSSaS[eVRV`V[UeSU[_\X\XS`aS[Y\VdVJaZ`_QlXXhVPN`k[S\jSZZX`Ta_V^X_TZ_c[YY`S_^ZW\ddWYcYa]VZ]VZWXdYSVT]ZY[V^[]Ua^QZ]Y[\SW[W[bYb^VOWTU[XbW`]Y\Y_W_^_N`ZZT\`Y`TXYZW^_Pa\SYdXXYXX[Z_e`K\XWYOPQY[Pb\_R_\V`]XUXmSZTQZX_`VZ^SUe[SXNQXSZU`W]T[QeVPY_\SWXVZ\WKUY`SLPR_RVV]\c[SWWYj\YdZ\X]iUZYYU]YR[YZLWV\[TSU^`^YaMU\S[Y[^YTVXR[^`aZZSQcYW_PZ]ZXNMNXfi]SXSbS]ZVQ\TZZYXdYS^dTtZ\_`U]\[g`ZX^_Y`W_OUXa\WX]Z]YW_VT\^p]_V^\[[YRXvX\YbZcc]P^Q[Y`YgXRPX\Wa`VTdOVR_oT^bS[V_[f^Z]]_^EZ_Qf[XZWZVXT^\[V\QQ_ZU[OUU``X\U[[VPUYPVT]amdZZ^TRX[Z_[U__c]WZUWVTXZ\RQUTQX]SY_ZWP^[PRTGXVU^bWQU\X^^XKY[WOSSSWXRX\cYWZ[WZ[W\XZ\T]WWUV`YT[eTSQ[R\]YZ[\T^PiTJNV^ZSYi[XZXN^_WMTXWT\\WWT]X\kXPSTVV^XfZ\PU]]UUUVVbQH\QXWVYVT[XZXT`_\KN[]a]UWXVYW]XYV\dYT\[mO_ZbXYXOWV\TO^VLgV[X\\]UX]VXSUY]]UYT^[W[[XXYWWWZY[WcUZY[aU^XS_Y^d[dZYZZ]Yc[UY[WY^YYXZVU]_QRY[VW[XXVY]^W`USYP]]WX_[YVWYWT]^TU]WUZVVQWVYX]^YbR^\Z_^a^]]ZV\bVUYaZ[TU_ZUUV]PTVSSTV_\[\\QPZX[VYebUS\_YTVVS\YaV^RR[d^YQ\TW[VXUSTV\W`\Q_XXUY^RXVU\[UZXV[X]K\MSR]PVhYUZUXQ\aZV`XW`X`Va`TV^[XVT_cMc\Z`c\YY[W^`SZST[WVW`\UOMSOWU]]WMee\[RVWQOdWVW`NddP`OaRZ[SQeZbWWaUOVNRZRQXVV^[^PR[WTU^dUPfY]Y[Y[_Na_][XQc[^XWV^Ss^bS`PUVPeRXZZUYYd^VQWQJ]RTSYdZOXS\SbVWbbSbYWTc]RQh[\\ZROlN[Uc^bTdZ[ViZ^ZU[Q^U[b\XdVTVVVVcV`\XUU^[WPVQW`[aO]W]WTYYXWVNVZYca\XbS\X`dRUUpW[^YTTY_O]\SUP\XVX\]R^TYjY\S\UYS[X[]YYV`]Ya^Q^XlWY^^TdVWjVVRYSQU_LYagU^dUO]SbpSVeUQaWU^[cVU\ZV\VRY]ZUSMTX[XU][YU[VVaYT`_\Z_YV\KWV]T^`]WTbWXUUQYWW^[[P_]]b]QVXPT]VZ_V`UUYTVYY_UZYSaZT_U`T\RYZUj[]\]V\\N]RYZ[SUVUYYYTWY][PYUc__QRWVU\UW\YXSVNKTXVbSYWXWXQ]VX]_ZTTUX\[cQkR[]_XWQTSLZbVX^U`VZY\]]WUU]g_WYVd[Y^]WZYQYW^_SUWQ[UXX[^[[QQaS]ZY_QRV[XWTZ`Q[W_PaV[[UaR_U]XYY^MTSWXV]WW]Q`]TZVg\MTbR]QM^[XKW[RYbWVQZYXU^VYZYYX^XXX^W[XYZVM\WY_SU]\_X]`QM]^TTW`dTKb`^UZX\W]ZZ^fQRQTR]Xi[WZ`_eYTV]\\XVYY`^Z^S`RVcTa\W\WVXTaYUSb_\VPMZ^UNR[aY`SgOVZ^_WSV_\RVWWRbVTdZeZYTVXW_^[TYWORSWZ[UWVYY[[PScRS[[`RLWWR`ReUU\Y[PYZX_RWXW\WW\XQ[YR\[U[UZ]ZUU``[hcU\[]bXXVTb^cTPT\_P]WY]WOU_SOZ[M[^V`YI`XQU_ZX\`Rf\bRT^SZaYfWXT]SXc^Y[RX[PQZSR[dYWU^YdPeY_`YWYXORVW^[ZMX^SW^WVUQ]SVOPTX]QcS]UMS^W^UUWccYQJWXXJTMWbVVZLQWX`YFTYUQb\SVXUZPV[XVXQ^XSV\XXX_Sd^QQU\PPTWXcWaVYYcX[Veq[ZQdZ^XY]V`V`U][\_a_\OV[_VL[TP\i_^_YYTWUXMVYXXYZY^YXZ[\PYZSPYkWUPY^WY[Z[VYZ]X]YK\]\WYT\^^f]ZWRYQWUd\W[OZeWY]U`QXW`YaXiOUm^XYU\[[UJT^MUUYYkWW[aS[VXSYVY^YXSZWcMMLSYOX`]YVX]Y__ZVTZ[e]XVQ_]WdS`UaZQQWUS[cVe\V_hUdX^`YP`TSZV\X]ZVaVZW\UZTb`aYbSSTTUUQTVVUOYQV]SUaTRYU\ZVZ[aZYZ\NUSZYVRXZN[ZP[bTX[S]^]aPZQYR^Z]\OUN]W]YaWeWY_Y[ZWW]\YZUW\S_bVXVNY`UKOUOWSL\`ZTUZ[VUVWTTWQeVILQTXXVUZXUgR\X^UYe\[UXTRTYZZcbPWNa^OZ]R`Y[^JOVWQ[gSU__YZ\YUcWQYSeT^ZYTWVX`\[ZgURZ^NS`N]YSVYM\]XZcWV^X]]aPRXN^UXL_VdUYaUQeXZbIafWX[[_M\WTS^^Y^eUZS]VVX^WaU\gWV_WPPZ\SYUZUP[TXSYZQZNMQ`T[TU_^ZZPLVRS]TZJO_VPdPSWVY]PaR]RQRQPWcL\d\TXZXRN[dNbUZ`SQV[WS^O_Y`ZVUZ\SPWaXU]O`[W]WWLVPM]]\S`aWWhUJQb[O]Z]WRVXY\MXY`HV^NeYX[]aPSV_RXZ\YXX]eQT^XRT]efZ^\SVW\XYMM`YbT\XVU\QZS_]ZbXZRR\U_UVY_YXPYVT`_[XVU^^cUSaQR]b][WXT]RcQa^[R`VgUV_OXk^[UYYT^hb\YQUVY[VuRW]]\`XeXe^`VXY[XXTZaZ^S`Yh]O\bV\UX^Ta\`fW`\ZTQ]b^YZR^Jac[QPXNSU[Vd\WXY[[anXeSR\Y\YWTXU^Y__TW]Y[V]]aXYY\XRY^SX`UP^TdYV^^OZ\UXY``aUaXUXV`S`c[_VT[TV]aTTXe[`VWW\P\PUWY[ZV_PV[[WY\R]KWTZgQ[X]W_Xb]WXTYRbV]\X[\]VUYc[XWUZX_VJeTdYV]Vbc_aVY_W[aWgUV^_W]XWRT[`WXbYV\YXXZYV\a[ZY^ZWUjTZ]Y^bUT[X]^Z]VRV]b\Y[Z\_TRfYURZPfQbWZ^dX\aOe^ZV^_ZSTZ^[]Y\VR]^WW[TUYPS`VW`Xk^WYZ_R][YR]gXYSSaRUZWS[QUQT[KPVWQ][Rg\VW[MYY_WWc_W\ZT[SWTTNX_VXU]_J^TWg`USb]bT\U[\NKY_[SS\WS\`fWZV[YVVda[ZYVTMmVOLeM\_]TXXU\TOVZRVU[ZfWZVW]cZdOLbU\[`b^RYTV[[cSRTYYPYZb_ST_iWOVaSbY_bhYWd[ZQX]X^X`h^P^VYUT^VNUYW^ZOjXcVNNVXWa`cVWYUZXXa\WVLO^ZZcX^WZR\PZJ`\UbX[[\TSW]WL\jVX^[RQZV][R^WVTVa`SRYS]VQXT_[MKVTV`aV]^USVXq\WTZc\RTTUXQ^SX^VR]WSVaYYW^VSMPTTXZSc[Q`_[^KT\W\_TVRRdZWa`ZIUU[\UQSUcL\WUR][_UWVOXXbSRYNg`[`UW_[QPXURQVU[^XW]U][bXbYRVggV[`^WW`X`^\\PRZWTg]TeY\YRS[Vc[U\XVY]Uc\VOPPTd\cUfSOXPYQ]lWQ``[ebYf[jV`^][XO_Q\\^gi\UZVbMSVZZZY[V\RU\M[]OcSXUX]T`^SHXP\QTP[\f]`]bRWY\[XaXSPE^`VXWa\WfZOcVQTTSRYSXSTSNNYa[W[gV^X[dT]W_N^_K[SZeU]OW`YVX`\[XYaO[eZ`RaWZU\US\WSbcZVWe^^^Ki_hdY[ThRTNSR^ZWOb\[]TeW]\UQX`Na^YFXScU`][UcW[X_aRQb`[^RUWYYWQaUT[WVaUBX]`W^VYa_X\\QTMUTNZ^`USb_XVLXN[VVSaPXgRP\[[YY\\Yeb\iPUURYZ[UWJd[X_^]OSX`YXdTZ_XSUS^VZe[OOSS`ZXRdOT`Y]WYUhUfT]hHQYWP\dU[Y_Y`ckWbOQN^UVYc[YOQY`QaZ\VgY\ZRb][Y\aaRQZT]\XXXT_aYO[[_][[_L[bTWZPVY_e]XX`]\]b[cTbRU]^[YO[]STY^hQ]\R\X]OQO_UTSP[M[[WUW\fSTVcWVYSWXeZV]aVj`_ZY_YTYW`bSL_]YaTVXZcXUZUTZT[WURWTYUZTVQSad[bV^[[YNS`V[ZWaTUa[[bUWWOT]]XUTcYUlgWY\TU[U[UVaQU_\P`Y^XX`\UZU\XVWXbU^WTNRYbSS[OTYU]YY[XgTWSTZ^W\aXY_eNVd]^]dW\YRR]ZT\\PZY\[U\__VYZ`YZYaXUSX]]^RTVcYRY_WS\Z]WYQYS^XcYV^KZSUWZ[^VVTV[U_`a_]]QXZ][SY^[[d\XUY\Y\NWV[]WS^PZ][W_\RgTZ]W\d__V^`RIF\ZUWWd[STZ[bW^X][]TWWQRQW]RU`aV^[Za]X_cfbTXXXXS[ZQT[[TTYV_ZYR[`\WZUTW\VVVRY[L\UX`ZTUUUOVRR^ZTTXXXXXXb[NXYaTYXX[X\S^XZK_c_ZXUZ\ZSRUZ^WPW\Y^VUR^\ZU[TOT[UU[Z]TYT[VZVVXZVWUTT_W[[R_]YY]ZXSM]YZ\XSU[^Y_\SYiZV_WXY`O[RY_MXUVS__[V\]UW^]YN^U]QY]\VQZVY[W\aS[QUR\`VZWY\[TT_T_Re^]V]VRR]SR]_ZgZ[\[\\UZd[^T[bQYYU^XY\PbhW_\YX^U\Y`_b\T^]YO_ZZ^Y][WVXZK\UXYZ`\XTUKZURWZVR]_QgRWQRiMW[O[P]_PS\T]]VYUW`WR^VWJTUSV_VY]XUY]P[Xe^V]\]VVVcU]^U]MTYU]TX^cZ\XiX^\`VP]`WVYXZS[Z[XRrR\e]XX[XXS[\VSP`ZTVRX[Z`^YLZ[a[\][k^UXX\UW\^V[SaT[[ZYSYXcc\``QV`^YQ\VYXMUV[QaVcWZQSTZVV`[^LR[UZ`bXVYZWVQ[XUTR]YU_Y\abRTXNQRaL[WZ[`c^RVYUWSYUQY`V\SPSQYdTW]ZT\WTX`[SUZcZ^]Z[\[^T^Y[SUUXZXQM`XURWV\YQR_\Y_TU[QZR`YXS[]SX\\[WWZ_]X[UY_X`[YWVTZXWQ^VYWQV\[OYS``S[YR^_SY]\VU[ZWTWUX_RTYV]^VWQdc]ZZV^[V^_ZY\\[PU[Z[U[TXV]dYZ[[]TYPZb]aXWUS]_P^PTYY]d`WYW]`Z\VbY_V_R^[^W^ZPa_HXU^UUM[XQVa\aZYXWUW]U_[a_WRZUYWW[VZ]XSR]YXbWXWTX^VXUVW[Y^Ta^YZXVU_XTZ\VR\Y^WYR[SQ[[T_WXaQXWV\UUXWV_]WfS]R]U[WTYbZR[U[UYWd\TVVS`PXZ[YSZ`Y\YWW[`_YTTWbZ]XYZP^][WY]RQoRLZWRag\aK]cUWY`\PZag`VRP]YQ]^PZZ[NSc[YSTSb\^WYYSWX\^PijWZ[X^][UQc`WZi][Y_T]PO]YfWYRSXiZbe]^a^]ZWVRU_RZX]US[\QVVU\QVTfb\bQX^SXXZWIWcZP\\][XZVP[IXNT]i`XYZVZ\I[YXZLY_YYQVm`UYVXSPYPZU`VWX_TUXV\XVN]`P]_RX[TV[U^QaSZ`SbXiLSMTX^L`XYZ\`SUVa]\N[[ReUSWTaOVUgMa]\V]NQ^^SSWTZSOXLSW]\M[\`Y^QWVTUbP[Q_WaSVfUVUYZYZZWYXZcL\YYU^TTR_ZTT[XUUb]`P^VQ_WTZNcTaX\QVS`Q\U]TbaPOXU\VVKeZ_b_[\bcYZY_c[aV`U\[WUZBg^bU`U_V[\YXVY[X]UVU[QJ\UQTUVRY^ZRZa\YR`XdN[efYX]XPQ[NWXXZM\_]YUTSWX[e][b^VPSSZZQTaI]YSaRT[N]PXYNW_]WOMT^VWWU[Q]aUTPYSVZ^W[\Z\_VOUP_`]W]VXQTOMQYTW^T^XWSY^VfPSQdUTXU_SZbSZUV^`Z]Va[\Z\Sa]WVWWVUNZ[bZVYWjX\[M\ZcV\QaeZIQ[]\YTXW]W[aRUXY\\`W^`V]]Z_YZYV_ORSZ\TYXZSU^T[R`b_cYUe\^_`W[alS\WNZYUb\bW]YU_]O\_ZU\^]b[T`RTZLW\bcTU^fVQ]UXa_Y_YU]\WXU`PQ`RYeT\_Y`]]UXRPYYQS^TURUWY_TYVWUY\aPQOZb\OSWW\\UW]d[^S^FW\W`XU^UVZ\VU\]^P\VWYV\^Q[[cXZYV\HVaZ[^UUaQQZXWUTbXg]NSZTVcV_VX`Q\TS\^ZUUW]\]XV\_^SR\YbhXU[X[SZ\UXa[WWW][V]aXYbZbVRZka``]_ZUJUM\YZWVO_`ca[RYYYUTZZKZ_[WYZaVQSRRP[WVNXZ^S\T[TPR]ZhWX^V[[UYXSVYW`V_T[W[XUU\ZVZSWeXSSY\\ZNWN``RWXS\RWXXT`SZcSZ\b_aT[PXXXT\TV]R`j[]RVWX`UVWUXZSYYR[Y\TXQLYcTR`YYXS^\RWPUYX`Zd`X^`V[W[XNcQdYRbVZX]_]cW_S`SQYUYR]UWVUX\UW[YU\^RVTRV[ZRQZ_YY[UaVXSTY^ST\UU\VYVXXZZWSXXZ]XW[TdQ][Q_YYN_\YW]^XO`T\YSZbYYZ]^SPW]VZZYTVZVQUUYVWfZY_ZTMXXZWZR`d[RZXYaXXSQRcXXYURj`U[L\`UYgYW\X]VbVW[YaTbT]QTXU_`YZWX`aQZQ]\[V[WN]YVcWVYSX[aYTQORaWWW\\bXR\`STaYWX`YT\\U_X``[OWbXZ`USPU^XdPVOYXRV[PYc`RJ[YSUad_WZYP\YVV\SWQe[OPSXQYX`V^Ug]YiTURV\Q]R]UY^T^RYWM``YZPO_VhK\SZ_\\XZZ\WZU\OSVQYZkga][_YV^URehcTXdRSNWTT^\]XWZa\W`VUTaaXZ[ZYa\\W[VZWaVSWSPb\P^Va]W\YYQcZ_M_VUVY[_[RSW`ZXMYSV]Ob_VR_SVYPSa[_TYcXUY[\Qb[PUPZX[ZXZQLXU\aUR`Z\Ya[VR\[OXZYUT][[__TXZSXYX\WYTXZYbgQYQRY_S\RZVcTVYZTUSVW\Za`Y[Xb\]^W`^Z\^]SVUX]VTQYbV[][YU\[ZTNOddQ_^^^a\U\fWSYY]ZXXYXWZXXWRU^X]fZVMbUY[\OVYZ\VW]ZUQ[b\YZT^VWYT`_\X`TZSZWS]K]RZWU\XZ[NUR\Z]TU^Uia^VSUW]TbbY[\XS\SZVYb[_T\P`VWnZR[SU^eZY`YT]bLS]USafTV]OMV^TTf[R_RV\XOYWUWZUV_VYYP][W]Z[XY[da\X[^VS[_X\[YMS]U]NYUNaSOWYPQTTTUWbWQSWYZTU\ZXVZYU_KZY]`[YWS_VUZXS^QVbTNZSPMRWiYVUWXUN^XVPVYZ_QUQTQ[QYYQWXZU[]TQZU\]dWRRU`V_Q[XVH_Sk`[NRPcQUYZW^]VSPSTZ[UWR[X]SU_O]]TZT\U\[[X^]RZaOT_VT_Z\VF]USWWT^PYRXXZ[X_W`S]XW\VaRXPc[XYfXRWg]ZSXwXQTLWKJ_W][RWT\^]ZcXSV]]U_Z_WRQYYTb\WSR[fW[Y[[flh]\YSf\XWUQQSUSPXW\XXW[t___cTT_R]ZSVM\\hUXYdYQTQ]XXXVWSSVS]RSZSWYX]Q^[Re``ckY\XUVZTYdY]_e][X^PQW_]XA_WaVPWVPX\VX[_XZ_WVXRNd\W]Pb]g`\_RIS_aVS`aT\[XR^lVWWX[]SN\R^[YWPSa\`U\Y[Y[RfUkUUYWIVWRaZ[OUWSUXNX\`WU[SS[bSQSR[TUWj]XO_WOQRXYXZTZWSVXU\^YiQ]YWZWdRQP^]RTV^P_SV\Y\bWUT[ZSRU_ZXZY`ZZ][Z[W^]UOZ`YWcb\TS\T[YW]bUZ_U`eZWYMf[WSb^[`WZ`UVUZ[V^Z^TSda_Y]O[OS^iZTY[Te^RXMWUYYS\Z``ZOYPSVUYfWY]^YP\Y[X]JUZ[eY\O\[Z[YVVY^_[[dRWVYTYQX]ZSSXfYSZ`YPWZcZ_ZYUOP]VXWU[aTaY^^YXXMdNL[V[TTPS[][Zd\_ZbZ]M\[[YW^WXQ[SXZceRPWUTFaaO\X\[bW_^R`^UUTZaVUUX^YVRbVV]_V]U`bVXTTUUUYWXS[QZ\mSYR\RYXZRZNSaVW[X]SZY\RZU]VXZ_T]XWUcYXXZZY^WNXc\UXYWZI_XQaWY`X]T[TVO]QS`ZSZRW_RNZ[j\\gVY[_baWYZWU\U`URJ\aW[RRRYT^YV`XPV_YYdWQVXWYQaRQYaW[Y`[XM_^ZXSSVOSYWZTSUVZV]bRZWQWSWQ\TRTSXRWbUP[U_SaTQOWScY^]^[VYQc\W]]YZNTVZZLQSZYVcY_ZYUcT^WRYTYVZUT[`[_UXdO\RU]]V^aX[^ZQ^Y[LX]T[[QZKZVSRV`\]RPK]^aV\W_W[_]_TXTRVRT`TVWXNU_SUW^YQeUXbTZZZZUYSWX]OPWR\RXWV]UePSXRX]VYTPXXZTbY^ZXWZTV[\]U^X^][[R\US[ZhWP[S[YaRYXW]WXVZe\\Z_XQRZZSQQPXXXWeYV[`VY^WZW[U][XUQ\bTYOdMUVV[RVY\R\[aLYVW[W\ZYSU\QUU]RXWgYTSY]ZIQ^W`]YVJVbYX^XVQ`]VX\RWdRZkRWXVk[__]^YVe^OWXU_ZL^X\WYZV[ZUjTU^_\^_S[bXTWU\X[SVXWdjS]\P[O]XV^]X[`YQ`_[[_WTT]bQT[_`RZZYS_KRPX_UUb[SXWjTY\cagV`SV\[]UVNVZS\RcI`[ZQXWOWXVVYUTSdTVV\TZeRZWVWaRW\U\R`WRcXa[^WUZJZV\S^TZ_\ZQZ\TTTZP\WZUUbZUUTiZQRSXW^^P[[c_]YTYVT`Y]U[T^VXS[\XV`aV`]R]gUUSbTdOa]WfU[Y`dV]TV^NW`RW[\USRXVYUUS\\kX]XZY`]W[VXWO\a`WY[SRSUTWQWbUTTQZRU_`GVZYYPV[KUZ[XVYVSXVXYSXR`][]XUR\`[UWQVaXYYRQh^]^YW[VT[ZYUMV]RST\STVXPaZbXY_^XZQY]UaZUe_PbN^U[VRK\[UM]\f[Y]VZ[\[]^V`Z[YWZY_RYQ_O^`[YaXZVUacVU[TUSUR^ZRY[Wd]^VVYX[R\[\WY_Q[YY`QQ^SXSTWV_H\bZ[XcRXaUXVUcQTWZ^OY^SYXU[fj`XUXYOXWebXTSU]_Z\TXXZ[\XZX[[^ZXVK]XTUR]WVVHXYROaUaWWTQ]S]YU^_`X^VkZX[^XT[R^cSUV]`aVP_ST[UYUeVOZVNSZSdWYVX\UXK\PTbXWQXNX\TWQTQaVVNNZ_XP]TR`SWRVVU[Z\aUg\UZdY[VXR^XbWZ`WW[V[]U`XV\Q[RL[`[LVZ]][QYTQaeTSUZ_Z^SSV`O^UUVPRVa\RXP_X^\V[TRWUYVYT\`RbY[UPUV[W^_XV`YJXRX^WR\TZ_ZXQVcUVV^^XV]]^^Z^ZWQG[XK\_TVUT][Q]W\UX^\[V`WVUYX\ZY[Ya`^^NXJ^]Y_WcX`JQYW[X^aYYbW\^ZXSUVdK[X`_W[^VSZXKRVfX]VTdYa_WXXYVUY\[XWaY]RRXQbS]RQ_XSQV[ScdSVNZbWVTT^XYf^XZ[^[S[WUmcTW_XTUSZUWdR\TYbUSQgOG]OVPV\XV]QSUYQRWSQ[V\O^VTV^XRUN_]]aTT_L\_WZZ`^XPRS\R`OXV^UV^\[WRaOW`aWWYXQQ]XUVZ^_X]UX]ZWQ\\[XQVUWZZU[P\YPVOZXVPXV\V`^[ZNYPaUXXX_PXc\_Y^UR]UXU\SXTRX^[`PTU\ZZSSVT^ZVNTXY]XhTT\dT[ZTPZY\Sc]af`NSURbU^V\\Q^X]WYVWdYS[`XO_W\U_F]W\ZQ__`ETRNW`U^\TWZ]V^]X`\QT_OX[X[[YZO^X]`VcNV`aPiSV`[WVRW^VOP[VTX`VTMW\RR[e]Y^bVR_[OVSZTYXY\VWNPQT\XU_\aUb[Oc]QT_aUVeUWTOX]XS^aVQQ]^]QS\TVW\f\Y][UQX`W`N[U^QS[R`T``X[Z]S\YTQ\WRXTZUb_XSX\VYWR[WMXZ`cZX\XXO\Z]hk^^YaVTaO\Pc]Q\TXWZZ^QW[`Z\ecV^V[^U\X`YR[QS\[VYP[Q`S[\\SUNSZ\`V\]ZP[VT\T[S_dUUVWR[V^^XYWPeY^bRUVV[RacXeVUL^WW`^UYR]aPS]XUXO\NSN\[_T^S__W\FYYf`ZWWRY_\WX_[_`b`[MXOU^VVW]PYXWZ\aUQYR][T_\\[VN]W^\[XZ[[RI_]NTMPXY]YUY[\QVUYQV_^W`[\US_W^VaVWWb[YUTXU][gVYW]XNRSUZcZ]V\S^cZOMVaNRaaQ]YObNV^[TaSZWWXb[_RUV][VZYQVdYh[[U_[a`UVm\^xVZVSZW^WVWc[XNeYYWVYTX]XLY_KWKW\XcR[YQ^aWS[aTXXX[W[VU^bXOU]TQZZ\PTeUXaPNQ[S\ZUSX\R`aZP[\[fbSR_[aXTLZga^]c[RYSRxS^VRUX__^d`X[XYZR\YRWYXT`VW\T]XO^][[\Z]U]bT\R\eSYVeKdSQceYPYX[aVS\UPVQ]Z[XUU]UXWWWX\U\`VVQhWdUTV[TYQPeYRWdSdQb[VeXS]X_S[]fTZ\`T[[ame]bYQ\[YV\SSQXYjUZdYRSd[YVXXX]hZW]TKSUf[TcUUS^Se^|[VTR[X^UZU[^XLWTT]R[^[UjVQ[SR^YkXg\ROdcUY^bvWKWaWW]Q[LZNeMQZ^^Y]V`[dVZQUU[_XeWUQOYUiZhRTXVbdZf\SpTXVeWXT_[RWUd`XP^TTTU\cYWRPbTjdKQV]\_S`\R^b]Y`ZPP`aXRXX]Q[\\\QZPZ_UZV`VZ\XU\\aRRZSaO\TZ]c[X\`mKIRXZXd^XXW_ZP]U^`SWYfX^XTVU[\TZUYRTWTZZUXY_ZWZT^_SQ_VT]W\]\QXWRWcUXcZSbWbZUYVZ\\X[]XTbXU[aWQ_WMTPWUXUYG_YXa_VUZQVZ[VUMWSUWWZR[YZaW]\`]Z[ThU]^UZQOc]_^\Y[P\XSWOXRXPROSXTN]_WSU^WXN_ZZWXUS]aS^ZX\cSeXT`YX[[X]O]XXSRa\[[UVj^`X]PTWXYWQ_OV]Yc]S\]ZYMPUUa\TQW[UZUf`PXUZIWVX`T^QT\SU^\V^TTUZWcdWPdXRY[WT\hPVVaWSd[Z[SZVX_WT[^PZYVT\\WW]^eWOVdZcX]OV^RWS]]^Xc]__W_VZTfUQUZhSV[PRQVXW]Z\TZXZXaM\YaHXdSkUVT_PW^ZUSTQYU_X[U[]^UWUSaX\^VeaWY]UX]cY]`]V]VT^Z[Y^YXYVbX\^`[SVWTUZXZ_[\U_X^XXWWVRT_YX\Q^aYWRYUSVXQXXb]XPTZdX^ZXd^aTVTacRV[R\X^aV[X[a\T^V_^[YVYWPeZ^VS[Z^UT\Yc[_SW\TZ^X^Y`Y`dd\\_\UTYWX]TYaWRV`Y][YPZZV_TXSOU^S`VZXXYZT^[X[TWYVYX^V`dQ[[ZYab[bW\YWZ]^[XabRRX[\][VVWVY]V]TVVRWUTXYP][XYf``[fZ[Lc\Y\TX`S[^RcU^UaM]W_X^[\h[Y_dWQUSWZa]V\V`T[YWiYY[_U[`[ZTYaYYYU^^XYXV[\YWVU[QXbT^XY__Y\_VXbSW\Z`T[ZZ[`PU[W[V`Yi\T\ZK`XRXhY\\_bZaZ[]Sb[]\bTcS_\dc^^VWWXYUdVdP\bQ^WUc_QaXWYaV\T^d`YXaQSTTVYWY_UYT[bY[SaQVRR`UPQVTY\YZ[\RS`YV][X^TVYbYUVTYZUb_Y^c\YPP[\SZ[VNZ__ZUbQ]^YYOX^Z]TWTZOXPV^V\a_R[XZ^\QXYPXbX`]W\[SZU_^Q]^\^XTbbVW^\YYTUPZWW[Z`]`X__c^bd]`^Y\_RYYWY\`PVW[feVVR`_[S[YPRWV[ZYX\PTXZbVV[RYP]\`QQR[YU[SPVQbW^`aXTR_fSaRO]bT[YXX`[S[b`WTf`X^aaTXRWSNL]\UMbS^Z\j^[XWWcQ`iXUV`ZTbZUY[bZ[VcY^X^U_SWR[QSWWRNRYRRY][T\VO\VZVZWY[VU]YUeW[a[\Z^\WTUW[[X]fNd]WXUi\Y\WWVU[Y\[SXWV\WP_XWY\Y]XT]^YVYWUYTUVY]c\^aTdSVSYd]ZVW]WZY\^UV_[R`VY]cUW]`_cXZdTL[W[Z^XRcXXQ^^ZZ_[aQQ`Vb]^YY^X[^ZYYUcVX`U\YqXVYaX\ZaXYV\d[\YYNaZQbYX\Y[\^^ZVc\YiP]WU`]S\h_dV^U[X^]RObX\[Y__U]XXbT[[X[YWaTO]\S_Z\cXXbQYY`Z\SZQWUa[VWQfY`^[\ZZVQdZV\Wk^VcXc[\^\Y\Zd_SYbTXOZ[_T[^[_YT\j[QccWVV\VQcVYVW\Xba\V^bU_]TYVUXWU[^\aQX\]QaZ^gWUWQ^VaYh_\Z[]Sda]ZX\RU[]T\ZM^XXVXWTPT]dS`__UVR[ZiV[^bZ[XYZMX]Z[XSU`W]Z_QPWWQZcSWZ`O`Y`UYW]ZUb_[]a\Y\TWRQWVU\Y[]VOU_[[]RUX[Xf]Q\^RTSPSUV_OXZ^O_WRP\Y[WbfQ_V\]^W[[]X]S\]]^YRUcZ[TZ]_^a_^aUeVYb][TY\]ddT\]MZS][SVQZdYWX`QUSW\YZc[\\]^[W]gXWiaR\[Z[^SXPgZceU\b_]b[dSXY_V`dS_[]`Z[Q\cZ\\YUWPaX\Y_RV]VN]Y`VRb^VY`eZ]Wc_RXY\QjVZ`]_V]V^M_\SW`bT]UW\WXZca[USZTWSTUg`TR^dPUSXUT^WcVZ_TYY_[\VT^XU]b]V]Y`S[U\\OTYSahTTcSTV[`[SS\SQV_b[RZV]jOPX`YW^k]U^iR_M[ZnSScWW^PSS\R_SbMU^RZYUV]TYZZ_Yd^ZSUbTZUXZTVX\^SZa[bR`[^UYNf]^T\ZXYWYhT`ZX`[a^]ab]\Y[[XfXVRWgZ\_`TY_`Z\\U\R\^^S]SWUa`a`OVVaXY\\WR\]X^SV]QSRSXVU]SQWRbZTS\Mb]UPQP]QgUYWH`WSY\W[ZW^^Y]_\XZUVU^[V_UX^]MYR`Wa]]RhbaWZ\X\SaWWKf]WeWXT^Xa^eYP_XVWkW^\`Vd_ZQRdXWNZZY`b]\TOU[oQ[YZST_SRQWWYXYOYU]ZU[_^[RVWK^\_ZXRX[Y\^mYT]Z_V\_YUbYVUaR_ZUbbZ]ad[[iP[jYW^_NWbYTVXcZQ_N^\OQZcTY\Vc\QgcTU[[_UWXNUa^\bWTTW\dM_[PfcV^eYVTTW[YX\]P^W^Y_\a[\ZcX\RYQVMWOY\RVX_V`\S[a_SXY^bXM_adKTT\[c`QScQQVUZ^\TTbU\[_NXX\U[V]^[\\X\Qb_T^f_dXTaWUXQTZTZZWZXS[M`^Q_XOSZcZ[T]OWWTKV]U`^[X]_WT\_T_\]VYVXZeTU[YY[_ZXW`XXW]W^YV[b\WORfZVTPU^f[QVfZXVO[ZY`[XQ]Uc^R\N\TXYSSOQS\WV`^^U[jZ]ZdZZ\^XYSVZZa`VXV\XcU]Z^^QVYN\Z^TY[YVVVZX_ZdR\Zc\XV\V\U`^X[`^aS[SVm\Y_]PYWTdV\e_TS[\\RR\SWWaP[LSaXVSZXYT[XU[T\VeTT`YT]UV_\[ZOZa\\WScZ]adYbPWfSYUYgbUa_WZPMW^VW`SWU_``X`W^QV]c[S`YYUS[\TS]VdZW]bS\[QZUXU^ZTYVV[VXU_WZ_VU_\Z`Y]`WZd_X]^]b[XaYZ[a]T\bUUZVUVTWXR[]X[SYWbVY_ZcZaU[[]W\SSWZTO]U^M[d[`QUY[TZ[[VZYZYY\X\bQTXTTY\Y[dTZWWW_^TY[VR^e_V[^^V^]]SZPZ[W[a]][U[RZ^[[ZVLQVXU`^\U[ZW[]Z[Rb_YjWUXY\UaS[[UR\X^`TZ\dd_Z]WQa[VW_VUW\]\UX^ZY^]YYfWV[R]\\Xda\a`QU\[W[UaWV\[^X]\\_XV\Udb][_`XZ[TTZWWST[W\_R][TUX[WRYX`TX[bV[ObNYRWQ_RW[RZZPVVcW_WS[TQZSYY[eYVTWVZXW_ThYUcX^YYZXb\[T\_\Z\bZQU^gT``WX[^YSWU[YZ\Yd[`V]XcW\TPUU][VYX`]Y^YVbZ_dUUZWW]UcWRU]WVW]^V````QTaZiXeRYTX`V`OX`[c`\YOiQaiTXV]_bVKMQWWU[V\WUW`_QYUUU^^NVTUWVYWWZ_[[WW]V[dYYRVcU]YUURWXX\^YXZ^OV\[VQW^V[WZZZT\XcV[SSQ]S\TYW[Zc_U[V\TOUUNUY_\\V`UO`UZ\cPQ_]R[UYTXWXUlZW^VSs`[WU[\^UfPOT_X^\X^Z\Z^WUWV^W]RYW^]U[YWbYbWYWTYb_\WX^ZY\R]XXOY\WXUSUZZVhQQQZ\WXdYV\V[ZVVX]]WUXbdSX]SYZbWTQZ`[aWXV]ZXWeUY\X`[[[bNV^^_\`TV[\V`Y\UUYUR[YYS\ZV\WY]QYZ[UZ]WYR][\VW[XSV\ZW^Z[VPQWSTMWX^VUYWVZ\[\XWTaRaZU[YY`]TX[_YVUYX^XW_VS^Y\]WVZYeaVZaY\RZ^[XXX]ZX^XXRYVRQY`Y[XSb[Y[Z\[VXX\V_`SYVYWSWWYYWWTU[V[[M^YTWZTSVT\RZY\Xc[ZYWQZ[M^X[_^[\U\YYcYX\]S`S_ZZWW[[RT`XSZ`ZVVTY[R`T[]SXVXeaZc\VUUaUUSQ^bYX`UVT[Va]Vc[Y]PWZU_\UUaW\kWZ\WYRdTZ]WU_^XY^YP[T^WZacYWVaX\\]VVh\bf`]RUSWTV\U_XT\X]ZXa^^]TUXRWUgWUf\YQWRTZRUUX^^X^_U_[WV]VY`UYRSXSWeWU`[R[TQYXZ\ZZVX][UT^VV[V[ZY\kbZTXRYV_ZXUcW]^X]]OP[YXYZXTY^XZXV\PX][VX_XdU\YYXUVXWZ\ajYYWaVY]PQZVTUKRUVY\ZZX[RTYWXVVZY]YgX[_SV_XWVYVSWXWX\_\VRWTUT^]Sf`W_Y_MV[X]\YQWZWSaUYYV\XaTZa[ZZ`VTTaWaZ[Z_[VZSZ[XU]UW\]U]VWW_\WU]VWXRW[a_YY\SZO]ZY_QXR[WRW\UXRT][XXYSZUZaYWZZU^\QY]S^XR]XTYW[WP^ZY[cST[X]WZ^WTWWY`]WWT_TU`W[SU\`[Y\YWWZ^TWaR[`dWSaXXcTZUYUWTSXTRU[V[VQcPRa]\b_W_[UN`\SZXUOWj_U[dPb]X[]Y\U_haebWQR]`XYYO]`c^XUM\aSX]^\YO\ZQV]bXWUZT[^Zd]ZYQZ[`ZUeT^\]YTY]c]YUUPRcP^VZ[YY\TUU[V_TNYb[U`W[ZUfV`YcZWdWWeV[Q]YYdSXZ[\STQWWWaaSV]]ZU[c`\^XVgb`V[bYY\ZWZVVSaZY\XR[[UfZYWRT\VcS`]ZWQVR\[[U]X[[[UYZ_]ZYZXVZWXQfQU]bZ`][UXQXYc\jSX\UQW[[V\VUYb^XPQTd]]SV`Y[SYR\^W[XbVXXRST\\ZbXYb]WVY^OUaXWagVW^eSOX^[X]VW`[_\TPYgVYQ_c\WZWOg]\g\_QWT^WcSUXQ][SU_S[W\dc]_]]X\\\dTTUXYV_O]X^U\^]R\_^Y_cX^MZS_P\VTWQTTaZ[VUTY]SYcXbV\aYXa]YYT]Z[XUP^T_ZSZ^cZW_TagfZZ[XVdc\W]SYYU_UWW_aZVX[]`UWeW`Y]UZU\V`YXWW\^VRZX`\[ZRYXVZUWY\YVVX[\X[VUZQ`[RX]Z[Uf][[_XX[\\XYVfSVRR__[V]WXUYk^RU_YWXYgN^[[^WX^YVW\PYdX]ZXWY]XVWZjZXWOUZXbb[W]WX\U`ZU^]_Xd\XS\XTYPXZ_WVUXU[S_YY]XWcaV\XUW\[W\RWSXWTX[^UX]W^ZX\UW`\\W[XX]W_X\]HZUWXZYb`VYYUVYTT]bX\YW]RT]abVW]c[R[]YY_SXX_TZ\SeVXSU]aTXUXYS`^QaR_UZVZ[Ti]\Q[aaTTWQXZ^TdUQ\VVb`XSUcZWYVSVXhR`\ZZYY^Qac`TW][ZbXSZRVTW_^_^\Z[_PXRX]YUZ_\UVY[SeWYUU\ZYYTaZY\Y`^XYMa\XYVaVX\^ZXbWZ]QQ]a`]ZQ]ZNVV_TTRUUVV\geWWUXYcWaYUU[^VU]SWbYV`WZZQN]WUW`ZXWMYSYb`^YRX[Y^]WW\`YfVSVW_`UQ\RWX^ZTXZdUaXXYVOVV]V\]TWWd`^_ZY\\VT\aQR\QVRXXZ^Ta]_Y[WX^S]WV]bUS[W\[c[VYTiX]VXXY]V]W_WWQ[V\VZY]VZXR]bY`Q]TS`[[SPPO]VVY\XXZ\X\V[aUa]W\\Wf_]YQWX^Z]_\ZRY`TcaTaYQ][]][T`b[aSYZ\VY^WV\a_dd`WX[ZaY\Z]\YQQbWYTb\VXV[bfVWYU[Z^XUOYZT`]_WY\\]X[]VbRRSXX\WSiWRYdZZ]VSSUP\e`[\j]a_Y\TY\^L``Z[V_UdPQX_W[LTS_YUWUV^WYZOfTYW\d^^bXPZZ^YXX\TYNeZ\VZ_SbYR[[Pc]QSUUWYSWg\qW_lTXUVU^kXYS]UeZ_W[UbRP^fUYXXV[WX[PV`Ya\[\dWZVVS]WbRY^V\XRUZU^UW[W]VSZS`a`aV]\\Ya[YZWY_^][X__]X^RYWVWX_]W`XX^aUWQZTYWV]YT^ZOTRTTaQYVWXW`\][\V[V^e^WQ^RXbXZb\\^PPTZYa_RXURQ^VRVXV`YT^UY[WW_VScWTZYY\Q\bWV^Y[[U^X^PPVXc[UbU\XRMY_QXQ_[h]S[W[`XXW[WX[ST[Yh_Q[_^X]\\V^ZZUgZSZT]Wb[W[[PS^W`ViUPcWTYZUa`]VRZXQZbXT\dR^RXaQYVWM[XV^RYZUV\bWY[VSVUZ\WYW]ZO[ZVb[UcZTX_T\aPWUY[SV^_c`VWVe[bZX[[V]Z]UcNXZZZZZZWY[VZ\ZY_Z]W\S_^Y]^bXGK`VaZUWZ]nYVXT\\^bZTWZWaX^]cXQbU_]XY_USXZ`WYQXWYOVWcRVXWZ[VXX^W^^bQXUYS`RWiaZYWP\YS\WZVXYVR]W[SR`^XWX_[[[X_VYYZ^^TU]_U[aT[OX^[Z]UgX[Z]X^TZ\XZVWV]X^Y\ZYTZT]TUY[XUS[W]dQ[[RdQ\[TWLdY^`]Xf[f\aYbY]fPYVTbQXWeSV]_N_XR^_OU`X[]b^_`_ZdehUZb]^\cY[QXY\VcaXTZ]U]]aVRXc[_c]X_U^RZ]YS[X^XRYRRYYWRa^X]T\VVdV`M\b^O\ZU`VSYUUW]Tbgh[YXXUf[YT\WX^Y_]ZWUXPW`LOZVXSbVVXV\c^ZeXSZX[QcTW_W\`\TaSW``e\U]`Xa^[VWcU\S\Ya^_UXXoUZT_\^`\TUZgZXYZTZXNUXTVZVOTeYSTS[P\YZYYWbbVOQ_T_a]Vd^afV_]k^^TUVd\`^\UXUVX^XRWQ\VXU]UW\UV]XTbU\ZN]bb[[UW_[SQ\cWXUW[V`T[XZXUVSXXW[PWWYT[VRUVc]ZZUVXZX\TR]Q]YY[\`QYRm\XW]YaeWTXR`YXTWQoVSjP[\W_VOVUWb[XbX`XW_UTR\[TUX]^YT_]Z]Z][[[UbY[WQX[]]ZX]XYWWX\Pd_UWWWU\]\\URQc^[Z``a\X\[b^jW\SXVQcXYXTTaWc_X\RVV`]\`eWTXQ]Z`]R^baVXda^WPV]X_RQSTW[[c^XV[]^UXTT^Z\b]TY\VUT[]WZPZ[aQ^R\PQ`Vj]W[VX`\ZUe[ZZS\e\^\MQ_][XV\^VmZ[]S[QWQ\d`K\b^\\\UVVXVfV]SWb_[OZY\VcY]bXQX`Ye`YaWX]aa\Q]bV^[TWa]ZXWXV_b[XZaV]\[VW\TYUX]^Xa[YXZZS[RUSW_e[XY``e]ZQPScRVbVWZc\R[R`ZeWW_bXZU[XVVUea^X^b[O`P\WNcbXWfTSQNNU^Y^R\SceVYSTQi[`\^aTXKd\cb]kZb_Z\RW\^d_`ZP\YTZWYUX\`N_fd^\V\^UWbW^aWXR]Q\SWUV`MVR][R[d\ZXRRc^[gW[_aZTXXZL[T[aVSa^\T_Z\VWYQY_Z[[cRSTQ[]W]T]\RWcSU[XUZQSa[``__[P\YO[ZQWQRZ\a[PWajU`XYTTQcNPWPTW`QfUMVVX[[^][]b\O\SW[ZTU^XUWXXYYWS`T`W`^]Y\VdbZaV_DXR\]f[dN`RTYZXXc[[YZ^`Ye]Z^V`RYY[[`aXW[V\OX_PXZSPSWVTXX[gcXTZUURaP[]YMY`U\S\TZb\PU]Te[X_bWY[]VYS[XX_OZQdUPcRde`Zb\XQVf^\]Z^Y]^ZTWWX^\[h[aZZZYYXVL_Z\\XX[Wd_MW`Z[XTVV^X]V]UWSYYUVaYUT^X^YQYUhZ^]^]YO]_V__V[VXPaYTZ`ec^OVZWX[Ue[YVSY\WYSXQ^^\YU_[WVVXZQ^__WX`[\WZ_X\PV[]`TX`eWTRR_XXVX[X[U[YV]Z\V\Rd\^_UeWcYUWRYWMYd`TWZS\_XXZVT^\XV\U`ZYYR^SVZ[\[X\YSXdW^ZRg]UWTYSVXSRb[R]UVZTWS\WYX]W^_ZXYa\_X\RY\^UL[XVdWXV\]RYXORbYf^\\U_T]ZQRY_W^ZUZZ^]\_TSYVVVUa_[TY`RVWYaT^OUWUX[ZTVSWZXR[TUSXSWV[Q^_^[Y\RR`Q`X_NQTUQU\VW[Z\XKY\_[Z[WQ[WV[]UVSVV^\Q^_^XW[XVT^QWZV[[\`^][VTVTYc_cV[[XUXa\UY\[cX`TZ]\Z[YVd][XZYZY__UXT^a`T\V\`VXXa[TWZZbaZYYdZ]SYb]Ue]^ZW\^[Y^RsNfZdc^WYU\_\V]SZ_Ua\WSXPgZ\U\V`UZYXYYUTTZW^ZZ\WUYY[V^c]XY[]]c]nUX]V\XS`W\[ZXWbV^b`WZTXV]USUUYfU[SVX]a\_iX\UXZZWXX`]]P]\W[R\VU[`S\UX_bX[T[V_USU^ZRcSZ[WZZZYVfeVYcZ]\Yca_]^XYZ[Qb^_`aX]Y[Y`UQ_RXaZ[^`fSmXUd`ZlSVe`XTOaZZXW^\YU_W`\^[]SbWZMVZfVVPV]]WPaX]a^`VXXYYZ\\^XTU]TZP[YWVUVZTZXWZ[Z]i[WY_OSa^XQd_`UYQWTZ^WSSYS]]YOXV]U_`UXaXY_RYWQXaS`\XZW]TXXWYbaTX`SXXPU_YbU_TRWVVSWP^VaXZXTTcWQWSVaUbY]\hVVdO]_WSWVZZYPSYY^W\U_SY\^OcXYTS^[[[VUa`Z[Y_\^\YUYPSaYRXSQ_YXY[XTV[^\X`YV^_\[V`XWZb\V`UU^YTYNMURUUUKQ[YXYU_cbZVYWWZbO[[XTSVWY^WV]PWVJ\SXUVVaYbUU_ZR]Z`XWXVPZT_ed`Y]Sg_ZVTXcd^_`XYUU^ZWWTTWV`[UOSfQ\V\Tc[X[XW^QWUQ[VaZXO[^ZlWZVWYYXTd_XbYO[ZJXUZYW[V[NO`\TO^Z[ZW\YWZ_Y[Tgb^c]X\Q]X\`^YZh^VY_XRWfXU[ZXYQU`]]YVdX_Y]\XJ`WS[SYSY\[TUYXUWWX]U[VOYZOR^f[UfYW_cOaXR^W\[Z[_\SaPYZ_RSaWU^SPW^XZW[YWVYfdPVRe\XSVY][]YXWXfX\RWXZWX^SLYXbWUYUX\[IPYTd[VRW[Y]WUZ]]SYSaX\PRhQZYaZU]VZ\_^URMPWX[][]ZXUX\YTXU]STTQUTN_ZYcTYOPXVX\[\bS\SV]X]W[YXX`QY]TVbZZW^WVZWTY^Z[]ZW\P]ZUX^QQVX`[RgZ_]]OY[ZT^SbNX[[TT\XXZZWURUWZYd_`\b_\b[R^]QSSYNOXS_OMXfTa\d^IYZXW[[Qb_ZVXVWQXW^UbR[`_`WW[OSZRVU\[ZcW]YZUVVdU[UabW]PY^XYU[]X]\eZTS[[UYZV\XUXYUVP]SUWVPNUa^QYdUV]YSW]O]Xd[X^a\ZZ[`VSZWVY`XZb^Q^U[W\XTUWYUTUS]\a\[X]SRT]_Z`YO\YaX_NZU[_]U[Q`SX][X]V\T]ZWV\W[ZZP___YWca`X[d]WSeTS`W[UUZeVXVbWZcPbc^^WV`UY]\`\R_XYR`]`TUZVZXYW]\_SY[WQa]WdTYWlcR]fY]XZWS]VQQZ]g\]QbWXR[]Qe[cT[UZX\YJ]bXRY\YbZYR[WXXYeSX_VX\fPWYY\bV`]Z[Ua[ZVSaU]XcXVZ\RaTT[TX_R_Y`_\[]SRW]b`aUY_X]`[V[Y`^YR\XZ_Z[W^TZ^\VUZNaKZ]ba[ZXZWc_sXUaMTU\SVUTTcObSTZNXXZ\dSVZU\T]_\ZO^XYaS]\[UgaWY]]cTWWV_PW\XFZccLZU\TV[^RSYT]UT^aX^YZbZYXSV\ZUZ\VYaO\T^ZU`]`^XWVUPSWY^^\bTZZTUUY]]c]dfbPR\W]U_SQ\W[^fX]cNTb^T^TOT_`ZVO[[Z_dRa^d^ZX]_U\\_XRITab^[b^XU^]^XVSZ`aRK^UZ]MVXZaTWdYeXV_bTXXZW`_ZdVNVU^XWZ[][[\XZbTXL]Y^__Q\XXZ]Sl]XR]R_XY[aYSTZkVaeNL_]\TSWU^Y[gR_Y[YNfQ``_VUeb_[ZWXU^aZTT^ZSTWbW[]TJX`QXTUQTS\X`WVaO\X^VXUKYXQZbZWSXUU_]^bYPe_]YaYR]bZ\YY^[YVPP\aTYQSYP`Z_VTZ[bY[`^^[^TYTPObQ[P][W[\R[QaTW`a[YWZTW[cU]R^e_Y_[XTU]_W\WZgYWPbWU[\PZVW`USOYSWXZZXc^YSZ^Q^aZThZUI`dUa^b`R\TY\[ZOZZ^VT^STZU]]]W_NY[W[TRcWW_gQRWbSYZUVVXQYZMUOUVZVUSX_Xd\\^\V]ZZO`Z[UaYT\Vaa\Qb]cg[PY^WZUVMViZU^a`XV_\WUPXRUUUbclUOTVWbU[W]W]UZPX_WUWZ_]\\_[h^gTVQT\X[\[T[_RYSTaY\SVVUX]^UdZ]UVZaQdTa]`Ye\Z`[V\PYR]bSQZ\W]b]^JSX[ZWMTceZ^U[]\^PWXV^XaZN]]aPWXYdXW\]WYY``\]X`VSYaUYS[UT]`_d[P_[VScS_[URTKSRR^WYSaVUY\WZURZHXMWUX][\SWO_SYeR__YURTYU^``XR`_RVS^sS[aVa[Y^[U^Q_\X_WVR\QaXWW^\kZ^Tf\SW_[YVW^WUV`a_SWbYY^ZUbLYZVMVTVTTY]S]Za\h]]\[YX[R]UWXdZ\]^VYZcVSTW_S_TNZZUZSX\YYWb[PoPXX\V[YZ^]`ThXR_[l\VPZZkUXn][SY]SeUbWT]U[]b]Z[\[[YTaV][X[ZW_bTVUaWb[XVZL\PP\Z`YbWYY]Z\`\nVW`[[YZ\`iZZPUZ\QYNe^^^WUZYZZcbXRWRZ[RU`hZXW[eWfMQ`eYSUVVSZVQWXV^O]\QYZTZ_WTbWV]`XW[Uh\Y^`e_a^l^VeIPSTQdSaUc_YPT^]cV[Wa\V^U[VMZM\TTRW\ZVX\RfOYSdXZYXRa]T^P]YXWZVRLYWTX_^XOXTcMbOcRj`Ub_ZXVR_Ja[Z^\__\I[ZWYX\fYd]R^[YU[XK_PX\OV^`HY``TXT^ae\WTR[XeUrZUWZWa^TX^R`YbbRYVRPYe`YQTWmWQXWZ^YaO\pR]TYZZXQV]T_`aZ`cP\\U_ZbSW`\\YY\XSS^RQbe[ZYZYa\[[WW_QRlUdVcQUXOLZ^\U`RWZZ][UXf_^PZTSV]\WU]]d^aZQ_hSYXeXS_\`WZ^\bRY[\[N\_cW`^TRWQNvVdTTZWSR\TYURTQ^ZT_VPR`aa^YVcST^\ZegSZXQOY\^\ZZMZ[UTa_]TVVUZO[SYX_^ZXRa]YRR[]XVhY`TW]VXVTTZae^Z[\Z[[UZY^NYZ[VUW[fWUZVTTTbSZ`bVNY\X[V[]^RZY]Z]X\WXT\S[]V^]XTW_[[\XXW]`Q[^WZTRTdTOYccWTQbS_PVYZVXWZ_VVYZWO[[ZMS]]Wa]]^YWUdVP]\]`S[ZR\XZ_[V[QTZb]XOX^SXZUZaVdWVTVZSZ^YQUL]^]UQWS\X[aXQW_UZWe`]ZOP]Y\WS[ZbSVeZcUQZRVRYUS`\YVlaVXSVZXV[VTT]ZUZY_Zf^X\]kQ]dZ_Q]Z]XY^X[X_`W]ZSPVaW[aY\_\WV`dXd^cV^_QlY^PYV]ZU[YT]T\]JUU^UXLVNUfWhY[[T\\XXZ[]_W]T[[N\XV_^MOTZ[^_T_`WVYVPX]U^`XZLdW_U\U`Y_ZRU\cUXXaaXU`Tn[W]VW^YY_`WZ^WYX\\[[SZUU^RVRTU[\V]a\WXXha`_gWTZ_\Y]XKaLSRZ\Ui`d`W[U_eZe^VRf[Z]SY]X\^^`]NZhPWYZV\__VWaS[T^V`Z[UU]beXhXWZ_VRVYXbS_[bZg^[YW\V\UY\\ZlZRW]aVO[RceTYbaWWZYR[]\[ZZZ]\VZ^d\\bTZYWU[bYV_VSNTW]e`[[dXV[V\Y[[fXV^^VZ[b]^ZTU]VbVWPXZdWWU^cYNUTW[TZQVV_ThS`[\\]cWXWSYU\ZTQcQY^WoVSZZVWW[b]ZX_R\_YWXRU`VRYebX_U[R[U^V^RSVc]Z`\S`T]WR`Q_[XYeUVZV\_XaRS^^US^\\]\K`T_W^R`]X]RX_R][O[b]]SMP`WYU^_]\XYSX]UXQSRS^VQ[b[ZTZTQWOZQa\XRYZ\OWZdQ\^UYaWY^XXTgYW[ZYZ[O\`NTGcTTYTWSd]VWVZdRUMYQcSY^_Xd[Ta_[[\hX^aZeXKXc^ZXUZN[WRR\TU\VSKQTc`XNSW[`^V\^XWXXSa]Z_^_]bZW]S_^]]V\O`XV`\[UU]Y^bk]YPYT_RZ^`]Z[b__WXY]ZUWXW__WMb]VQZ^WTaNdS^k^[RX_TVYaT`\MV\USYRaXU\\T_WOa_\WVZ[_ZaSMfbWXlT\ZNMU`NXQXb\UZ\WQ^UZbZJYNM__^T[_cVW[e`W_ZX]e]TWX\e_S]XRX\TXX[]`]Xc]S[c^W_WbWe^_`X[Y[RZ^U[WYQaZ_VWcV_]]\U]WSY[\S\WUU\Y_]Q^KU`ZQYYSZOVZ]Yea]WQXZ_XZSX[WXPV\ZU][WWU`WcV_RSc\WVe_PUMT`Q^XTU^VX^WVQTWbZL^U]W_TXS]bTaYRZZd^Zc_^[^\\[SW[bT_RXQ__b^WPSV\]bXS[Oh\TWS[MW^QT_[]U]]]XXWY_T`XY`YbTZP_XWYZNT`P`]RfhWUWQa]^U\\O^KX`XVTa[TVZQ\^]UX_YU]ZaaT`TS^XdU]R]\UT]]_Z_XRR`RQ[\^RVXWdd_Pc``[_]La]V^\^U\VU][TV\\TYV`Z`TT^ZP]Z^VSYXWS`SUZXV\Y[^^XU[f\Nd`YY^V\ZTTXZWVQ]S\\fRSU\WW^_`bYX^^YYZ[QZ`S[YdTYY\Y_gP^_XcW[][R][]XiXdZWWV\]WXfXY`X]\[Y][WYZ[Z^d_TYLQ^[_WYTV\[V\Ya`bVZUZ^f[QX`_YVW`^\W\cW\X^aMe_X`PH]VUTRUXX[[SacTQYUbXZaXV`Sc^T]OOY[S^Y[YYX\^aeXQRW[]_YW[Z[\d[LWZcXVXY[_[ZTXdP\YUWaUY^`Z]]^P\[[WWd`]Tc^VUUeV\Z]SaX\^XZZUVYTYU\_Y\Y[ZZVUYcSPdV\RWXVWT`P`XdaYZWXLR[VOWSaWNYOTS[_W`Z]WSTXSaX^VSUWW]ZcaTXdVUcUhV^XW[ScX\VWR_[[cT\VUXaZ_PVYQ\NVV[U\ZVRdXXZZ]ZVWTcTRU[\YXSWXW\Z^PR]\]YX\VV`bb]VW_U`\[VVXdTbXYW^]VYU`]\[O^W\a[[S]W`WU]S_TVVYa^[cYa]Xa\[X_X\b`ZSXZ\V][X]UWWaXU`V]YZRUZ_^STXZ\[V`RXWWTRYWZXWN[^dUYVSZXY\UVWZTV_b_\j^`X[YVUZ^U\WbZd]^fX[_ZT[Y\ZZaSUX]U`UY\XUVR]YS[XWX^ZdZd_][TbXOW_\[^TV`^\^aYZUcY\eYS\]]YTWU[[ZX[U[Zc][^VWY^abSWNYY``WZ[VVZ\eXWTXUYY^U[h\dXbTPc_cSX_VWU`[[X\\X\QbYXX\U`[]Z^[[QXV]W\ZW]Z]X`Z[\ZVNQXWYXWeXVUZY^[SaV\XYXVYV[WhPY^ZV_^eXX]VW[[_Zd\b^_aX_W_U]V_`_OX[UYXWVTWSU_SVWVUZZWYSS]VUT\YRTVYXXSZaWa[UYWXb^fW[f]U[UW[Ta]TZL\Y`]^^TVZPUW^a\\WY[_S_Y][Y]T^\]e[OUP^YW`X_QaYSVa^ZYU^c`UXYTWUVVTYOXTZXXTS]XZ`PZ\_NZU\^]X^^WUXYX_W_a[NXaZTX_]][[b\XZTXb[W_XZWYdUVST`TZ^_^XV[_bd\Y^T[WT[]UZQVZXZYY[d]Y[[VYTVZ]WU`bWTY^`b_[Y\[`YXV^R[[RZT\XX[_^VUXUZZ]VUgSYV_USZKQ[^U\U]U`_Q[cTbYcUYR\Wa_TZY\d[S\XUXTd^]TY\Z`Y[XVNTY[\[SQU_[]QY[YaY]ZgZRa^WXV]XUTR]XYXUUYZWX`[ZWVVQRZ[W]YSXVUXUST_KTS\VWZVaXYaZWVUZV^\_fZX\V__M`]YZZYa^[QT[WYUVc\TZ[[VO_ZY][VVRXVaXa]c^_W^aX_c_WUe]Z\XTZVYZTPZRd^Ta]U]Z^\[eT_YZ\YdXWU`b]\_^_[YVfTXXT[S[T[RY]Wc[WcV[UWZPUUfWVbWYVVXRaXqV\[Vfa]X]U_S[YWc\bbgZ]]XUQS_Z[h_T[[^V[WX\WLZSRT\bY`XVZ[X^b[WS^ZNUW[V\]SYbVN]aUXXUVY\TSbTZcVTV[RZVY_\X`ZRUSZUUbRZc[_[_ViZ[UWYWTX[TSWZZY`[XVRYUYa]Ue[UVU^WSR`]\_]XVZVXX\\[[YXbb_Z_UV[V[^N\XY\R^VbQ^cYZV\T\]\[VUb^NhWXYWV\[abRYVcS[]jXXV[]fQfNVfL]`VYReS`WT_a]V`UdgX\ZTbJZX^O_aY`^TQ\ZbUV`V\_]W_``W`XZRoTRX^VRXPVSZWZXQN`ZVYWY_VZ_TdZXTUX[QTW[WWY[ReQ]\_SWYWUR^X`Vm_XW^[P_cO]cWYjSWj]b[b^^S]cYVWURYYXbY^cT[cf[L[g[URW\`ZXZ^Ve[[YZQOZ_XOZaY\`\`]NRYSc_b^_UZZ]\XTX[\WS]XZX]VZ^R\YcYa[[[\UUXT^`YcT[`]V]ZfWRaWW_UTTWXOYY\TW``UNZXbQWOXVZ_WZ\[X_aVVYf`SQ[UhXYbWQR[XSWSbNXU[SSSZW_gZTW\Z]VY`^X[S]Y]Y[T][bUSaY]^baV^YXUZXWSPVZ\[XW]aWXL`\WYUU\`^WXX\[X\_ZQ[[XUYYV_[ZUVV][SP^Z^_Wc[WVV\S`[Y_YR^[ZUZb[Ub^X^`Z]W^YU\\XdfWUTZYRTVWYT`WZXY]TcW_]\c`a^]\UXYZ[^Z\gV\S^U``]W`_U[U^^[bX\`WXYXWX_[_[S``X^[\\WY[YRc\X_XdTY_WZZ\U]^XZ^`[YZUX`SUW]_Y_WSQY^ZL]W_\`b\ZT`bUXVbY\_[\SeXT^\_[[Y[[Y\Q^Z`XP\]RW[]fSZY^dR^XX_SSV\XaaVY[ZY][V_W\fc\W]\_Z_ZTTZW^[XV]S^RRSUabV[ZZ]U\VT_[\b\YZcT^Y\a[U\_]YYYXS[\X`UWTZYeYURN[aWQOZXY[O]XTcY[XY\X`b\WS`\Qd\ZVSZ_\___[VMXZTZ[VVP_g[YXV]Y\_W\O`Y`RWVWW[Y^\Z\UU^\^^]Q^\[]TRUWS]Q]ORWS[^``UPWZ\YZYQ^SVXRbZWPZOVSU^\]S_\V\_VYW]`WV`TWZ^U\c]RQ^QUdVSgXWdZ\W^YXX[Y\Z^X[WRUSYdWW][RZ^^^T[VVXT[aWaXVX\SYH`\TaR_[`W_^[`a]UeZbJYYZ^WaS^XT[UT^XXT[[TXVXX]VZSh]P[dScSZ\b^bXQUW[RWZZVVWWWa[QZSaR_ZOTZZW`UUaZPR][X]XXU[R\WWZ`[ZS[d\QUUY]fYf]_X[VVZ]\[Y_X\eQWe[^SU^`R\gZX]\WTRTXR[Y_WY_\VX]]YTR]WY]\^\SYYZUNX\Y^`\SW_]][^_^\YPY]YaYWXbY^XSVYSV[X\WT[_W^^XZXRWOY_\TbOZZU_\]UZZX\`SNZSRTd[SZXcXYb]X]UV^ZWQV_YZX_W[S\XZa_XS[VRZfVVV^]\QW\[ZcY]^`_^X]X`[WWXUY\]__TSV_]X\XcV\VV^Y^P[`UYVS]TXc\WU[\Y]ZQZXYXYYc[TOZSXZ`hZ[W`YZWYUbZT`R[dZ\UVcS[a_e]`ZYTSY\[\U^S`[aPX[ZQ_YcYQQ[_Yn\b_`YSV[dTVb[\SV`YXRaO^U]X`T_\]Y_cXTS_\XNVVW^Ze[UbW\V\_faZ`]YVVaR[VXW\ZY[[[]T]SZOZVW\YXb`[[^SZ_Za_UTW[[U_W_ZZ\\YWYR_M[YX`Z\SYT^cac`i`YaYW`UV\ZRZYMVUX`VaPdUZZZc\\X_XTWTZTV_UWVZZ[ZU\_T`[RW\YTT_[X[Y]`ZSTV^Wf^TUXR`Y_^bUZ][\QWP]YY]ZYX]UdZUY\ae[R]SWaTXTZ]_ZW_[dT]_YbgbX\^c_^Wj[ZX^YTY]TV_ZY]`TU[[Td\\^SXUWT^RUfaSSVW\_a_V\RXOa^Y\[U\][`Z[TS`c]ZXVUYTSX\bl[V]Ye^^XW`][]^ZXSZRc[[af\V^WX\V`V[WZZY\WXU^YaZUXTaXTZ^g]cVYXa[^bZ^UZ_\[X[][WSX^TW[T_bVX\WUiU]^Z]PZ_\a[a]_TXWaY\eQ^d[[OTJ]VQ\P^ZVW`WP][[Z]PRXW\R\cW[ZX^Y^Y_ZVUURVWTZ[Y^WRR^]VP]YSVXZ\eYUWV^TUYYT`_[][`^YWZTYW^dO]TY_\UTY_PVSS^VZWYVX]RTXWVTTOYZVPb[]Y_PdZiWfof__Y`_WnUaWRW^XVWP\N_\X^\Z`RWOdUYR\WTS_ZZ\T_P^aX`Xb[NY\WPQVU[]ZU]]Z[Z_UX[hSUWe_[WXT[dXTQZY\RYTYhR`^XYc\\ZP]\ZaSTZeX[eVWZX[c^XTT[WX[ZaaXQTVVVYYlXSV\Q^WhX_d\XcY[_Xc]a_QcSSWQSeY]ZcX_Uc[We]XUX]TYb]]aZT[\SS_X]Y\_SZUVU`UWZV[ZYVaQTdZV\^_[SVT`VYNcZT[YX[YQ\QX\LWY\YSX`VWQ[UZXkcYWSb[SX^UWQYYPUdQX\^RUYVQYdQYZSWe^`V^NdaZUUZ\M][VURSVWdW_`bS`[arX]U[^OPcQ]YUaS[^\\d[Y[UbUQ[Z^Z[Z\Y^VXY\\\]bZi\WV_\`UYX[VUVVQ^YUbZ]M_Uj^_^]YiXXXfaTYQUVV^VVZYX\YZ\[VSSV[]_WUY[JQ^`^\h]c]Z_`[NScUOW][]TWYWX]Q[WT\\Vc]`V`YU^[X\Xa[XZ]WZU[i[YWUM[cN_VQWUXgSQWZ]UXVZXX]ZXVY\XXYNWTZc]\^_ZZ``XRUUW`]XWY]XZYS_X_ZQaS\fWZSQVW]WO\_ROSZ[R[QYZS]PHVR^TS[aUdbYR\XMYS\RTTXNdV\\YYXT_VZPaX]TTXQVW`_X^[[WVPTO\lVUTW_X^[Wa]WWM]hWS`[[VTW]V_\N[\UWU\`_UXWX[RST\T]QhaUW^`VUT[UV\V[Y[aTQTXSS_VVS^[^^gSSR^\]PdY]Xab_WbZTeVf^\T[P\`VRTXWXTdWU\ZS]PUXYYZZ[OWeWZ]Ude[oUUVZX[_[^]Y^X[O[QVSS[[V[\]T][cUWf[[]N[TYZW\XUV_^VOVUX\R^[`UYY`VaVW\WYUWYZVV^RYRZ_\e[VXX_UVe[UZbXO\SVUUbhVZYW\VccUVTY]WNPYT^YV\\[ZTXX[ZTO[\[W[\ZV_\Yb[T[WOTUf[[U\WU[h[RYUWXW_W\TkUN]OUVX]^TZ]TaX]\aV\SVWYRTWWa^[\[_]bOY[\UR`SNP[\`OXQae[`[VSUYT]\[VTXcXRSZYUVW^W[\[]^bZ`Xa]MVXa`]ZTaaT`dPZZ[[`\\aYU]][^eV\\\QZZ_PW\W\b[[d`US^PYU^^`PVQ^RTXYWZQYbXV[VXYU[VjfYZMZWXZZlZVMTPdaa\YV]SW\aRVWTcVR_bU\R\XW\c\Ta[i]QRQeXdUZVQ^^e\]]ZnPWR\]Xc[YTWR^S]]TZ[[VZNV^\]WW[XP\VT`Pc_[Qb\XT`S\[ZU[]S\XXYWXQX\VR][^TWS^XV[dTT]Z[Ub]SYYZX\\TRT`TWXPUYT_^Y^SaUKUVV_\Tbi\N[[U_VXTQd]\[UVWf`SNY\WXX^\X[\[VZ[^XPVU]W[TbXXY_U_W]^cVVYSYSZWc^UUMYZXZZYVQYSWVY[_\XbS`XU`Y\UXZW[TXTQY\USc]RVZQ[ZXXS^U^S`_YRUY_X_Y\S]cY[U[XW^eZZTZg]`^]X^\Y\[VV_UWY[Z]]T_Q_YVXbeX\UU_UhVUX\ZY]Va]YVYX]YR\`\VTYYR\\Z_VZ\XZgZZZ\YW]T[RXUVXW]YYPYPU^YSZ^]X_Z^VY]Q]W_RZ`W[[[Y\PU^TYWTWYUV_]WX[[Y^`Y^S]`Q^]P]WUWV[aWV_Z]a_ZST\Rb]]\_YVYXYNUW\b]TZXY[^^[]YYbUUVUm__`ZPZZXXX\U[WP_[TXXVTV[e]\[V[\PU^\VUWZ^^[aaYV^XZYVYYZYfTYV^[_`WVXSZT\SYV_SXQSbYYYX[f\XXS_\U]USf\YZWSRY]VXR]\YPX^[\]][baXTW[ZaYWUXT]XX]YUTXfWZX^XXXTYZX\WZYY]Z\`YW_X[^]VZ[XVWUUVUbTTdbcYgY`TZTWNVT`_Y_XS[X[RU\a`\]Ubh^`QRNZKXNNQW_oYa^[WO[\PaZT[YWT]YfWV\XY__VVYSXTYZX[XXc]YSTTUcWV_YYZZN]T\Z\VTV\WSUO_f`TiZa_eZQTaUYVQ_XYVcSW[Y\]US`[WU][\V]aV[[P\PUUaX[WgaZ^[Yb_R[\[V^T^X]\UYNVYWa[N^Y]O\QW\WRcaVQY]Z^XYEbWXQ_X]X^]`_UX\XRQ[R^UXRXZS^UZTfTY`ZZSTYWWS]WPj_]YXdTVM\`^NU^\cWXZ[V[V[XXb_XUX`V]ZYQZWSTXc\^YRX[NUXXY[\QTYZW_V[S[]T\SUM\TZQRg[ScMcaQTa\ZZ[W\[X_bXXZXUQVM]VT[`URanr^b`X[[\SYWYQ[Y_Z[[ZWX\Z]YRYZWYZRWXZZWXY`ZPT\^SZZWdZ\V^]T[ZUaYZ`\ZU`[YXPX^WY\YXYW`\XZb\^S\[SX`WX`_W]R[XVY[dTW[N]Z`bYX_XWTX[`TSa]_fTZM\XY\W^`VW^YWV`VX[[ZVVs`[W\WWWXYXPSS\Q^UYU\T[aWVb\VWX^`[`YSX[V[ca[^Y][TUbZZT]`b\ZWVZZ[\X\``WWXS]W]T[QZU[]WV\S[\ZT[\Y][]Y^VXZ]UaZRTZXebXXVY\\XZeVUZdX^VX__XYY[U`YS]TSTWXX[]^\aZVTY^YcWPX^]V[^[WW[iSUaXZW^Z[[d^WXX_[^^XYhUUW[a\RSY`UW\_\XZaVVZ]QXXWVUXYY[R[][bS][\TWWb[^]W]SWYV\bRRWXSVZ]iS[YXZVUUXdTWY[[ZZ`a`SPU[WVX]WZ]\[^a[^]]Rh]S^WeTYY[Z\Rc]UUUYR[^_U\WcWTX\Z\XYXd]XOcZXQ[XXWVY[^ZS\Y[WXZaWXY^TaX]RZ_[^QTWV\WhXU^e[Y]RWTc\QU_XZXYdgXc^a]fXZYUXdW\RYWRZ[YY_OY_]VYdYga]QSX[]fXUTR^_g\\V^^VYX_YPgW_UU^ccWfXYZ]f]\V\\YX[cZPX[VX_UYZ\_^\][SY_]ZU\aWRXZYS`S_X_[ZXd\h[aYSVT[XW]Z_QV`[Z_ZX_[]XQ^V``Z\XX_QZ[[X_]Z\ZXYUaYNWVV`]RX_^WR\SVe^XZO\T^URkSVXVXZYZ[VPXU[T]WXXWYV`WU\[]c][a^]^cTS[T_XZk\`YWUZ]SXYYU\WQa\ZW^XaWZWZXUW^Y`Y_\WTXRPc_RX[UU`W^Zc^^[U\fcT__[O[VWT\Y\V^VX^^TW^VVcYN]\]]SST\[\Y]^_^WWWZWXYZ\Z[YZddZ[bU^_XXdbVT[bXZWX[[\\]ZT]XVVP\`TaSRYb\ZYVY]XTTZ[UYaacZ_Y^]^[W`^T]YYRVb_[TU^R[^kPWZ[VX^nSX^W[T]\U]`_hYUYTRUXXY\`Y[ZUWZX`QY[ZUYdW_^eZWZ^SZYb[XXT\J[XYXTTVTe\ZVY[^UQWX\XbXZS_hXZUXVXR\R]SfSYY^dYo\bZ[P\`_P[SXX\W\U\OYX]^R\W^XcQXW[]XUV[T\`]SV^T\c\WY`_Y_W`W[`UQQ^VUOYZ\VY[X]XV`XaR[\Q]YWYRPVcL[WSZZY\XQ`S\ZU\]\fYOkYSV^SX\SVX^bXg[XUcXSYZaZ_VWTQ_WUWU_^W\QRU^bK`TSTdXZc[WXWVXVV[_\]XaS`WTRT_]RY`__TWRaZW[[T]ZaV]`WdQ^VXZNZY[XZcSW`aXYYZW]TZ\YWX]_Y^^cV`^W]\h\STXUbVXUZ^Y\[PUVYVZW[^XZ[YbZUZW\OX]QRZWZSXVX[W[WbP`^_^b`YZ\`Y[``]MUQWaWbUMTUbQXXY\__O]U\WWURYYTWZbXWYZZV]YVRc`XWZRdRXZXS[U[\SWcXQWXYS\^\T\WiXWZUgb\T]bV[OUXXS_ZVYUU`YPhTU`W[]ZZXQ]T^X`bYe_[YTYV\ZYR[_YXZXg^^^d[WV\]XYSVYU`U_]ZR`X^YYh_\YZUP_^XX\ZZX\c\R_SX[SbWZ\UYQYXYQV`\\M\WUYPVdWXURUX]TXWWWeXY^XZaS`aZfWSXYZTUTUXTW\YWYW_RZ\YQW_WUTi\[[YVZ[_cUW]^Z\Xf`XWYZX[ZeZXTSW]U_WYXYRYXVTX[YR^\\^XUWSZZTWVSWV[TP^V_Yg`VU\UZb[YU]TQZ_TZUfaQTPYYXV\V\P\WXVVUOX_UXVSWZ\`gWXWYUWW[e\U]eXWb]XZ[UVa^Vb`\Q[_\\Y`]TSY[S[_XZ^Z^XUSX]Z]\UZ^WZWhWR^\[UaZ^\aT[\_Y_^VXSY^UdScYTPX^VVY\TTV\WZbY[XXSXgbZY]UY\Y\^UZ`G\ZX^_TY_YSY\V[^bKNYW_Z]SZX[XSZk[VR_UQ[PYYQ\R^ZYe\^[XZZSYWXfYR]bY\VZ`^SYRYbdYdYV\O[HQSYUg^^\[_SV_dR^WX]YXY`MZ\]`a_UXcZ[TXT]`WT\`aY[eWYbXbfVRZ]PX_^Q^YMTZ_Z\^YTUYYV\SV__\UcQSZ\U]iK^aQVU]`X`PajWiXU_bc[^R]`_RXPh]eg\RUT\ZWT]ZR[^R[fN[NkWV\\W\STaYSZ]ST]]VXVYaNL_RXW\RVcNXSZMX\UhaZZ`Z\`^]Q_^TYQMV\RdTd[[hWQ_WYTlRP^Xa\_[XUiQRaehZXU_[WWXY`WY]_QRW`UTaObgRW]d[YYPdUV\SWN[Y]WUV\\UYZWY\\XXc[\ZS_Wk^WY\o[_YUaWWY_]XUYUW\TceS^ZU_c\\[UWXbNXaYTQZSWZUXZa[YVUUXW_Y^V`TX`YceYZU^VWU\^]Q_]TYT\a]c]\UYaT\TX[Z[_XWXfY\`WUW[^Y[_W]\R[^XXYW[[W[Zc\^UXVUW_]U[^X\Y^\h^][XX\ZW\WWX^bRaZZVcSQa\]Z\Uf\ZWUXYL^ZRXS\WUW^d^]^V\_W_dTUZV]ZW\ZW`Z\[[\_[\VW[YZUPYX_eT\[Uc]^^_P[`\YYVWW^S][\][YVWbXXaZ^bRZ[W[_V[SW[\_VXWVX[SPZVfcYUU[XcTZ^]^VXX]ZYUW[TZX\\ZVPS\_UcWb\[U\\NWZ\WVWVa]T][Vc\[ZXbXa[Z[^[YY\VV[^Y[X[[SYRVVXU[eXdXRR`]URTPR[SZSbWaR[]ZQ\^]k]ZTZXTT^R_Uae]YVY`T[`ZU[TYJVUXQ__W\^R[\]iVaU[^]VONQPb[^WXY]kZXkPc\U^WgZRTYU[[S\dXUYaQ[[[Vg[Va]YS[W][\\XUQ[RYT]Rb_^cW`O^[TR]Y\WO_V_\gU_^VhTSU_QV]\X[RVW[WT\f^^VT[_QN_[_T`eabUW_W^^WZY_\Q\X`^^]T][ST]^YYY[]]QYN^^QS[]b\WZLYV[V[b^VW^ZXi\Z]_XM^\[YXXdPZZ_UUhXUSY][TO[bXfiQLVUZTW]TZW\X]X[QX[bW[aQ[TW_UVW\]^TVS]ZZRYb`SRUXgXSVaXV_YRVYX\Z`Z`V[[_bTd^NXY^^PVj_WXZ[adTb_^VOTVWS_TaPP\VdcYZTZT^^`VY_XXdWX_[UibZ_ZQ^SRYSYWWZdV]V_YQb`X]WUXO\STVTRXYYbY\YX_YZZRW]SX[__\YdZNR[L^Y\YXX_\]T]UfVbPXTKSZ_ZXYVS[bP`SZW[`\RYbZPNebYY^XXVXYYWc[UgPb[TbRRb[XTdfU]]XTW\][]Y]bYVTXQc[YZWYYW\VUUUXUZ\Y\\WN[]ZUTT[SVRR\P[UQYWlPeXT_]fVT\\_YTaX\gW[P]Q[XZ]NUhWQZfUW^R_\X\_aZiW\PVUceW]P]UV\ORTV^XbXd]ZWYZPWZRW]Q]Y`YcUc\c[]V`X\bZXa[[ed^^\QY`dZY\SaY]SRYTQ\YVRZ^TYW]WYVXZfPZWa`RVYTWZOcSWZVU_WRTVR[[UbfWXVcUZU_Z`[]P[OX]WW[V]V`KXdhRQYPba_[T[Y\YUS\P_Q^X^N]XVcWU\TTWZUa^dWV^S`XPXQ\]VUUXZ\SbP[]RVWWUWUYV\PJVL]RQS^`]UXUT[X\Y\bTc^\W^R_YR]USZQW]X[`[f[_UUYLYQSQYT\`\^QVXRQbU[YVRVX\WNa[fO_`^SY^RbVZk_SXWZVS^ZaXY[WWbZfaY_W[WYP]\X\dZVUWY\Z]R\Y]^aTY__SYVYXR\OU]cZdYWaYYT[Yd`UkWYTY[ZQU]\YVVT[]XVc^[XOYYU\eRRXfNTYV^Y_S^WVf^_QZVV[aZUSXYY[S]X_VISXXZj_YcUVMVY^UU\XRXXV\Z[ZXaPVdUWSVZ]VaYeURS_^]TYQ]UTVX[`_c_a\YS[YSW_aT\^\cRZZZ[\i`SPX[ZYcWRZ^UQbWYf][`ZXXUe^V]ZWOXYVR[YVTQZWYYZVX_[[WQX_\ZW[\UPaVUUZ^]TP`\]ZT][ZY_ZWh]_QZVO]VUbWT`YQRWa^XZa[Y[^YPMajRYKXYc^QYZ]\XY^^XaQba]TZVOdY`QU[YVXV]Z__RR]R[QW\]ecTX\RV\U\UaZYUY]ZYV[Z^Yb[YU_e]]TX`WXV_PXW[WZV\OcZS_YV_`RZX^VY[WUZUXZZS_PYYPYX\[`R\SZYULdYUOZW[ZX\O[ZbXZ`XY[p`SWVWRW`ZVS`_PVTUjQQYWS`^M[R[bZ]\^_^Y[Y^][cWQXQU`YOY]_TZSWRZQVUOYaXX\[aP[[[ae^V_\TXWZS[[^TM`^[YW`][^[WY_]WXTZS]ZXWRXIZYdVXRQY\`Z[WT[ZWcd^RVVa[ZS[Z][aLaSaZdS[VYXZX_^RNS_RYWZ\WRRWVVWaT^d]Z]TW`^TSZZZbZXUb]TWQUWXaZUXaZ]aS]SVS[\[fRSfV[ZgV`\[UT`VQS[T^TZWZY]W^UU[[\iP^W[YZPTX]YYSR^W^fQUTcc\]Y_R[`bZPXVTT`]cV`YP`XZSXTQ_^VS]XRaUcXV^pWTRSWYaSaO]ZW^\PUW`[[QT^ZZ]TZYdSf^Z\X[P\\cX`c[a]\YVU[\UUVXYi\WUR\]YYXSV\m[[bWRa[XNYXXSbT]PbZYciXYXZ]`VQS\`Q\bVYXfXN][XUS`^UZYY[[dm_Ze]XU[\QQaWXZ^PPV^ZYVZ^^[VZXWWMX`MXU[YPdYjSVWc^]bZ\RYVWY[XYT\S^\kdK]ZVZXQVUTPaZ^XaR[VVZW_R^^^XYWWXY`ZWR\W_YWcaR[]]XZY][WJTa^V_^^W[[YXV\NYT^]NUZVYUZVj`^iX^]\XhXbXaOfXU\ZXd[P]\\]aXXfUZPXaVaVTVQ[fP^]Z[WV[^YYdWT^^UYdTYT^WOnb[^W]]Ld_[\T]Xd^[V\]\`T_YZPXY^XxkZ_`PSWW\Te\WT]US]\Z^S^XYeXP^Z\^\ZWYZWfU[_SZZZU]ST_aV[YcVN\^]`Y[^_XaYYU]Sa[[RMPTVYe]^Y\\VcU[\Q\[]WRjWYWRWX]^OSXL[X[ZZ_VZUZUVT\XXXbQUZ]Y]bZa]VYXdYQbZYSXaTXYU`V]cXXYYY[TTMVNVWeVX[PWSUW`a[Q[ZX[Tb][cZ\XXX[ZZU`XR^Xh\^QZ\_\QRbcUXSXg^WVZm\eR[UZTaXTPSU[`SX[UdQTi]Y[T^[\_[[TVYNQY\YYS^L^TYa_N[`ZaNbh[Y^XcRVTU[XNYZY[OY]WaTX]c_hW^YYYSSI[^j^aTaYd[WUVZZWMZYU_TXXXWP_XYTWaW[U[b[d\ZYca[QIfQ_\T^R[\^^WOWVYQSWUUSdRZXXcSZQ\VV]_[VPUdW\[aW_WZY]Q\W[_Y[U]dZblXYbbUW_YXe\OeZVSZZX^Yc]fYY_WV^Vf_^O_X^XU^UUWaY[WSZRKS``Q^X\cV[\Z\[XVb_SdTVWR[\[__[d\TkTWY[\^QVXRQ^aTXOOY`Z]W_YWX]YWR]\WYXSSWWQ\Wa[RXWVZRbWZ]ZZ_]T\\X[UY[]^P\ZYdUR\]W[YYZWW^\]VR[W[MYg\T][RR\[fZW]UQ_[WR_[X\XW]PUL[UWVYNWZU_iZU\W]QVZTQ^PXZ\O[]UZU`^P\^WTU^]aU\]^OWZZVTUXVV]W]\\\aUT^\]\XT]hU\[VaOR\WVQT\Zd^W`[OWbZUW]^ZY^\\T]X]RKdUYW]\X\UZdRYeUeZ^TXSXc_YWTT[RXSTZT`Tc[`^`XXX`]ZaP\X\[R[^\]aT]UY\YaVW_YUV]^^WXZZfX]\\ZYXR]W]]VR_^[XP[VfYY[URW`W]\_UX[V\T^YX_R]gZOQWVXRYb`b[YVQhXQXVY\Z\ZNZUbXXMTYXZWWP\S\U_V[TYXZWZ]VXT[cYR\`]SY\]U^c`hY[]`XUUTZdVVUTVeT\ZXUS`UU\cWS`X[UY\VWX]X`U^T]PWRWYUZX_QW[bWYVR^W][^S\XZZU[P^XYPZP[X[VZQ]XT^VTaTTaU[aVRXZXS]ZU]W[WX\P]a[QV\W`bYW[W_VYSZd\XXQWYXWWZ]`P]\`[R\TUQXXM\XQOX`M\Z`X_XdRY[ZXX[ZW\ZW][V_Q`TVbj]X\XU]]dYVXa^^ZXSb]V`Q\[Zd[[T`[R\VS^]U[W[U_XYaSgU[^XWVO[TR^ZW]NYaMSY[UX\VbYS^WXSbRZeVOa`]WNa^[]ZV`\[QPaUY]X[R\YTh\YW^VUYVZ`\SUYb\SXdV]_bP_WWRW]YOYYVS^Y\U[T\\XPXX^QXXXWUV`\N\\_T[X`ZYT`UTSX^]X_QXZ`_\aTR]XYVXZdWUSZZ[YZW^T]RV_Y_[[XTVV`SVVX[WT[bXX_^`bZ]\^[fcQX_QR][XZcQ]TYbY``][UW]\]U]]WZWST[WY[ea[UX\YW]N[jYY]XW^Q\V_aPcUUPbYU^XUW[U`_b_XU\^UXX^WXQ[^Z^Q^XcRTP`YWUV^SS[]PMS[VXXSZ^`XVW]YVVZdS_YQ]]XR[PTXVWYYYU]QYSW`^[UR[SaaWV^XYXU`]RYOdXWZTWTX[[X^d[Y[aW]]c[`\]\W]Z[WcTZXZW]VS[XRZX[aaV_U^X^dd`Y[\VRYUZXYYaYWYZbWT]SS_a\]^[``YXQ\\ZZTZbYXWVa[U]V[XYXR[MXReZTQ\\UXYXaX\dSSRfYSTYSTb[XU_cX[VV]Y^aQY_eT_a^S][]^_[XW^S\bZWZ^Y^iVZ\UWXYW[XSVSZ^YVYgYY[T_[c_XXYS[X[WS^ZUWdV]]^ST_RbW\Y`ZW[\TZ[ZY\PXWZWi]]UI[Y]YW\^YU]\Y\RY_VV]YT\XZ\O]VcRda[\ZXYURW]aW`YYUUTSbWUXXSOXTZS]\Y\ZZ]SWba[_h]X]XcZ]VO]\WU\Y^U]T^kWWZVZ^Y\]V^b`TZXc`gZS\UV\_dU[XZYTVZT[_Xb^\_^Z]\YZRYTSWWQUZ^]cZWe][jPY^`SQeYd^YR\[[dVZU_\`YU]^VV\WZ[cdZ`[VSUUf]cSX\WaYWWXSaU`^WUUVR[YZY`XXSS]faUW^U]^_VT^\G]YYSUZYYX[\[Y[[VZWXZ\cZTV[Z_V]_^^^]WXYT[TSMYXZZ`ZPSVZ]WY]YYX[V^ROZSVZ\ZNS\b^QSaSX]Z\]S^ZXdX\ZQ[E]ZP\\VWV][[^hZ`Ua]W\VPXY`c_`YZW[W[RV\WZW_W\_ZT`cX_]UUU^_QcYZ]PVX`Y^]\S[^TTY^XY\\[[ZVZU^ZZZSW^XbZT\VZZZ\`^[^^YXZe\U\Y\b^_YYVYV`U]`^YY_T[\Y\XYW[ZZZ^Uc][^WS^QqXVQXWTY[UG]XYWRY[aV^ZYQN^[WU_V]UZb[]UUZcZh\_WdQYW[X`SYZW\ZYVc_a^WWXXbbW^bWYSVYSUZT]iXT^T`UVXUV``]XXPb]bWZ^Z_UW]bZYXUV\[V_`k]]Z^Z[UWV`ZXWc^W]X]TOWUVSY_X[QSW\b\XXSV\UXR]a`\YXX`Y[\]T]]VVT]aXVZZ^V^hbWcW]aUcS\]aXY_X`[S^^YWUcZX\\YTWUW\XYRZ\Wa\gZdWVX[UV\Xb\V^S^OVTXX^]WZTYV\bU[YWVX[\VTc]\QZX^fVXZ\YZ[LbZZTXZ`eY[P[YQ^\YW[W`ZXYe][T]Z`d[`XYPYZ^VZOZ`\UVP_WQ\R[ZZVQX]XYZ\TbeYWUT]OYTQW^UYW[SZWZOZWWWZZ[WQTTW\ZX]UUXZXTSZ\Y[YWZ]YYYYX\^VYZWUYRWZ[W]^PSRY[[TV^V[ZZ`ZXUZZXV\[V[ZVVZU_Y`]_[\XXWXX^\UTXZ\[Y\S^^Z\b[\XTSXWSWU]XZT^_TYX^QZf`[[][W^\\[YVW\RUVe^XPZVU\SZ[UQSZ]\U_NVSTZWT[^[UOT[_\cSZU\hYYY_Y^SZUSY]aYYVYX[WXWS[[_\X]SYW^]UUWTW[Y]YX`WYX_[RXYZV`WX`ZUTOU]^Z_L\S^O\YVZXaSZ_W\X_WXWXY`\YY[UW[^WeXS`XTVXb[U_Y\S]X`WZWW[[]TZ^RTZ\hWXYYYUUTZec[\XV[ZdeWXXZWYVOS[\bV`\ZT`TZS]XU\NYSURZXWg``Y]\W[QT]SS]]^^^Yb]^WZY]aYZa^bSWX\[\[VXYUUXU]aS[YV[[VWWVYTe[_TZPOWZ[VYULQaf[bU[WXaT^RRXddTeY\\\ZaXR\ZWX\_XYZVV[RY\aZcRXXY][[X^[[RRTUgXR^`]Y]Z^W`\XO]XT[^UX\V\`YTOR]VaXZZXb`MV]Z_Y^T\[aY[bRYV_^c_bc^VVUW[W_VWaZWa_\^UZ^YY\\[VZVU]VZZ`eV[W\]TYR[d^a[YZ_c_^[VUX`Z[[^[W[LTZROS[L_V_\XS[UT[ZRWWTX]bV`WW`VdXU]UW\VY^Z^Z\NaOTT]Z]Z\ZYWU[ZW_aa\[[^^S]QdSbTTXSW`fV\eZ]Y[R]^ZZVaV\^Z_ZaWcW\adWXY^ZO\UX]bUV\[M\Xc\Z`\]WYOVV``XZaXU[XS^^YUTbUXYOX_XUQ]TY_X]R\^\YUWSe`R[W[]YV_^V]USWX[WSb[KXTT_bWYT[UWWYVYUS`TUbU\^WY`^^W`TZ[T^Ve]cRT[VYWX_^ZYQ\^Y]W[a^`fSYQ]\SXUWTR^U]][ZT[_Y\Y[aUZSYZ\_XY_dTMXcT`U_]LVZa\XYTQUNX^[cd_dZeU\UWPXcQUb`X\]ZV^UPY_ZZSZ][XWS\O]cSZ\ac[[^^R[YVZYVZ\YZ^SXXY^[TU[aYZ_][R[_^YZX[UVPRY`a[WXfd[Z^YgWX]WXWXdP`Y\`[Y^cSX`YQaV\\]UU\Xh`e[OXUWUbVZSOWY[WbY_Y`[\Y`WY[bZ\[Y]QU]_Tb[^TYZWWdXRd[\SXZQ]U^`V\Y_UZXjPX\`aXW]^V[`RXeMZSYSVRVX\YZMVZZX\OWRdR]ZW[QZWU[RSg]n[STS_PSZ][X\UYVY\[dYRaZYaSagYSYWUZV][WUV]jY[`^]ZU\_US`Y_SY_[`Uac_P[^We]X][_`V[ZXX[aWYdWS[]TRT^YXdVQYWUT_\]_[Z`XQZ`UX_oSZUV^QWVa^^V^_WR[ZG[_VU]TX_`YRUS]RY`XWT\TWS\Z[aM[Z[]Y`]Z[RY[b[]_V^_Z[[[Xdd^cYQSZ^[aZUY[^Vb^T[[Wda\ZU]V^UWW^\[[_S[``ZSZ]]]V`bN[S]^X`]]UaXcd`UVW[[\XZZTS^V[ZUZ^^\b`X\UWZO]XZ\VU^U]]TZZTbPZWad]]\NaS^[^SNVXZS\j]]TX^T]]TI]USXS^\XZVSdZXXV][TXS^X]]ZN[W_VWURU\YeX__cU[`]UXTZTXXY_IX^Y]WRaZ`QZWZZUdb_Z__URYXXNYYPXW^Y\Vd`UNXNWZT^ZTZV[\ZVWTS_ZaRa^Z[[QW^^TTiVYXWX\XXSdW\[[WXZX[\H^Z]PTZT\b]YZ]^]VXbPUOYSSXZ`\Ra]\VRS^YYUUYS]]WfUUY[Z]^^`YVZVahV]NZ`ZbXOT_VXWU\SYYVTWQ[OT\Y`XZWVaSW^[YUTZbRXYW]bZSY]\`WXU_a\ZZ]TZ\ZTX^XXYdePX\YW\ZZV[V\WQR]R^_\OdXR\cM^V\[i_Z[PZYV_VZUVS^^_RUZ]TUZcW]ZP^^Z\[VXR_UY[V`WU]RTSRST\WUS\Y[WZ_[WV^YZ`XR_PdYPWYT[R]V]\c^]PYQ[aU[VPc\V`ZXW_V[Wea__NU^__[[TZWmRQVU[[SY_QYYRVR`\[VZYWObUYVY`[\ZZVZcO_dT[[[VO`WNb`W-MjUVZUPdSSb`ZH^XVT\Q\P\[V__G\\P^_NFYW_\YUZZNQ[\[U]mW`ViSZP]OZUY[`JSTZ\\\RWV_UX\SYQOWVYUVXYQZ]eUW]W^]]_]Xa]UXT`SUWYQ[a[ZJX[^TWSVYNUT`G]IP\VVS[Y^WTX\XZZXeYDI^XUO\YTT\ZXZ]T[UYSR[TZ]ekZXZEXY`WUQ\[[]PZ^`WeT\T]WTWURX^XW]Sd_WPZYQQ][_\^VXZ_d]fTZW`\[^\\_U[]NTZO[VYUWaPY_^][_L\WS]YQM[ZXU[bW[\bU]UYVZT]RQURe]QY^I[S^VSVTVWYWUUVU\ZS]UYVR[^aTT[LVTVX[a\VZZd[X_RWacOZWX[T`UV\ZUV\W]eU]Z^]`SZ^QYaPY]b]_YRbRWTWX`W[Xa`\Q`ha^RYWW]R]SSVSZY^S^[RXYVUYY^\V_^a[S]UXUX\XV\UQ[YWXQb]\\V\Qc\PZSXW`dTNS[Y\Q`]]`aOWNYZXZZbX[TZ^\XSQUX\^[Ric\VVZ_Xe[^\[^M\ZSV\\OTUR^UVd_XU][WbcXX[_[\_U^T\^[Z]aZWZZ]a^WN[Z_[ZZXS[[ZUXZSYQZYOSUU[ZZ\eXV`[XY^UZVW\[X[\\dYZ\^`PYXYZ\^YSZcT^]SUX[T][UXQcZUX`X]a_WZU`h`U^VVV^[e_V`a\XWYTUPXZZYYU\X_X]YQYWOXh\e]]]XU_XXZ]R^YVV_c`VRW_VY`Z[aRU_]]R]b_Xbb]^[VUX`VbW_\Pb`[]d[\[UlW][YiaTXTRV^[^YX]`O[STcS`eUUX\_ZZTYYW^VW^QQW^W_[b\XVb[`]\[TX]T[XZLQ]Ta]^P\]^P_[YZ\X_WQ_gRY[[Uc`RY_VYW]YU[[^\\X\Y_XX[Z]aQ[RWYZ\QXZ_]YW[^`XWQ[Z^\^`WUUZX[U^YZTaW`\UV\QPSTZUcZYYUWW^W]\UYVYVaX\NWXY\KT\ZbVV[^^RW_Z\eVT[Y[U[``[b[]Y\\\[c\hUY]fWW[\ZVTTZYbWVY\Z`VWeY\\US_UZ_c^\SOZMUSZW[\Ra_ZgbVae^Z\VX[]k]X^dRTVOVWV[TUW]\R[ZXYRPVUWY[\NNSXZSPTRYZSWYd]\UYROWZXcU_ZVa_W[i[bZ^_V\SYQQV^ZYWZVYYYWZ]Xa[XaX[Z`\`XWdVUU[cN\ZW]\aWU]\[ZWYY[Z\VZaQfTZYZW`^`SXQfVY`ZQ]YY_U^PaSZSW\U\_TX[bV]TWYWZ[ZYV^TU^[XZQ\\abTZ[TfZU^\XVXW]Y[TWY\geWTiaOQVVN_WaYTUZ\VYdVU\WeW^[]ZUZRTS]XXO\g]YYebT]]UUL]YgaZ]ZYVP_VaZZ^Y][RRXY[W]Y^b_Ucf]XTYT^\TZ`NYQb[ZUYcZZSZ\YKWOZKZYc[Y\SY^V[WWZXWRWZUW]SaVa_\a[MXXX`SVTZW][]]V]`^N[URYRVUWeR\V\[Y_TY[`U`^^RP[UhW_]Ud^_V^Y^T_^\W\XfW]SYY[T]]S[TW]aNKSZVSX[V]bR`c]U[\Q[TZRXO\MUT[SWXU^bbVYWWUZYgUQTYP^P[Z]XXQRiUYd^M\QUPY^UY\d`WYRUe_eUUaMO\dZ[aY\R[ZV[XS[\WeW^fe]TTcY][TZ\V\^OZQ]RZXcYXZ]Y^RZTWTTY\WVWb_\[X`dX\\YXWWX]Q\[]`]XUc^`\aVUXYS\ZcTPWY][\V\^_XWUa^^SZX_Y\XXTdY[feWYVSZ^eVOZVg``Z[e]`UQYZZ]^XZVYURZ[UWT\_WSWSbWZ[VX_QZRXVYWZX\X^^^\SVWV^ZZZVZY]QYYX[Y\[_RRaX[O\_eaQT[\R[WWZQVYQ[YZNSXaUUYUZWTWYUSX[YXaVYTV]YXV^UbT^UOXZ_Xb]V[TQZ[W_PVb\]ZLQ]\`fY[SVX\^[aX]W\[R^YTZQ^[`WWX\V^_[`\YaV\Y[US_aYXXUb]h^hSY_^_`SYZ[][\Yb[T[bZUeZ[ghXX]c\aTZ]W`VZPVTZ_RaO]S[XRQVYcTT^Y]U`gZaWSaW_]X[eYY__aUXXT^Y[S[R\]XQ\^WcWVV[W]c\_cV^Sc]YUcS\\ZP]gTWZTd]Y]YY^ZT\[[Z]Vfc\[UYLR]XcZ[^][YQSd`T]V_^[_]M_XSXaSZWTeW\\SX]]dZRcVP\dWQ^[V]X\dWTdZUTa[\XX[][\XY\XUSZ[U_W\dZZRT^]SXXb_]\jS^ZSX\\We\YZ\YVUXR_\Q[bYW]ZWaS__ZWRR[^\TRS`ZV]\gRTV]\[caY_Y^YYeXR^R\\L[]gi[WTYWS\VOVXaSU`SY_W`X_VXX`aVVTWT]U_bOR\[VZ\TWX][kY`]SZU^X[[RU\]RWYRYW\XXX`S[V`^SZU[]WR\RWTSYRT]][T`WU[_\PXRZPYY[^XZX_PX`^VW_ZWY^[_aWbY\UWX_ZVXW[Xa\Z_SU_]_WZe\\\S`VeTW^XX`]ZYZbY_WN_N^YQ`ZV^eV``XXgW[[S[YXX]TWYUX\Zc\aaTa_V]WYWZU^_\X\Sb_a]^YY]]TUbScYe[b_a__XS]V]TYWVSYVV[R_V_Y]Y\\ZRQU]YYMSi_UOY[TT\V[SWTajYZ][`WgYZX^^VWh\R[VYZYYWV[^\YPTX[]SdXc_gPNS\ZLQ^Z^[eSP^QZ\bVQWW_V[_\^^]][YQST`c[Q_eWWXaRaca]Y^P\[[YW\ZTW_a\U]VPP]S^U[Y]ZbVOXRYbW]]\_MZ^YZSSYd\`ZVaXVZRXRV\Y`[c\Tfh\`YRXYfV]Y^UUTWa^OUWTVaYU\X[[TVlWMZ[]ST_\U\dR`P[QOTUWU]O`X[^Z[XXS``WPV]]Z\WUY_\[V[^V[eVTcRUTZ\WXS`WV`\\gVSY`V_TXWY]caVQb\_[XZZZYZVMfb_]]]]USNXSPVe^Rf]TZXSdYY]T`XcY]XXTRXV^^WXPY[VWcbYdaXV_]VOY_Z^UR[WVjT^aWXTYZZYXR]WaVb^d_a]^YSWb\d[U[WVY[aYTXn\NXW[\QYWS[ZYRVTXi_ha`X[_Z`ZUV^ZTU^[WVU`W`YTPZ`\`URT`Z]W]]eV[`_ZZXLaY]VYWTPNWbZOWjY`[VS`YVZV[\]Z`WY[XRWTW]X`[aW^YRW_TW[WWTZQ`XVTSRVPYVS^UZ[VU[aU]`V[^WT`WY[Z^^SZQXZZQUVXT\]`ZU]JUV]a_\YXOTUVSV[X^`UURWPU]^WT`YYVWXRUUY\W^[\XVOU__WZS_YYYVV_W]`\YVUSXXUQYWYVS]XMhX_LZZZb[]^RR]YY^ZW[[WYXWTXRURO`S^ZTcVVNZ_XW]VU_WbUZ\V_OLV__OU]WX[^SX\^RUZSU]SRVUYSb[dXY_h[`\[UWT^WT^ibWYaXYUSXbVYK^U][U\\U]TXXd_Y\T[ZUM]YPY[\TSZX]YP]VYVR[aU_X[WQ\TW\g\cRZVPWXSSS`XXVRYV\RTVcdRP]TU\^QPVT^UU`]M^_\Xe^ZUWNQf^fd\`TfSUeUXTXXfVS^^QYJUVS`fW^SWSYM^ZgVKXVVYV]YZN\RZd^VdZYS_VV_XXSTMR[MWVRYY]VZT\\]k]_Yd[U^WL^VOR[RXVcc`_[RK]VZZU^cWZaXhg[URZ]g\_W]XZb[WUaZ[aRRP\cXULXVT]S_Y\MW\SUU[ZMVbQT[WR\Qa[\[K]d^e_\eY\eSb^[YWT^YdT\]QaW]Y^O[J[WYWJ\[oHWXZefh]ZUQ^ZYXlXaL]Y[YeO]S[RS[U`g^VYdX]OYR]QW[T]XRa^e]W\WX`LdYTYUOPd^^UQfUVXX[YdWVVcUj_Q\MYYQN^Pe\NkYX][KVRXQ^VgacOWZmUlbSL[U`eX^NPPZ^UZXV]ZNXP\T[Rd[VaV[iTT_Y\YV_V[]\YUW]XUbaZXQ[]WUa[kSQW\dX]]XOa[YU]WYT^RWZUSX^ZVUVYZU^YX[S\Wd`UZ][`XZV`]W]ZYRRjUU]b^S\XeVUX[]WYZQ[VXYST_Z]TV\SWZVZ^YYj[_gg[U]QW[_ZZSZ[XV\[RSQU`^WMT[WVYPSSd[SbaXRcUTb]WX`XZXUaX`aYTZS^[eUY_RVYQ\U]QRVT[TW\Y^YUWUYNPR_ZXTXV^dUWSY[[[]RUYa_PXbYZ\U\hS_]VcR]N\\Z[[\XRYY[YO\YO]RZZZZPVO[_^Z``QYYXPcPZYVXYSWO_Nb[[ZR^WS`WYQY_\Z[dVXWTV^^XX_\W]TY^V_[e^T]QR]VX\YXYXSYRX\X][[W\VRRbYX^_WW^YZbeNV_[ZXU\`VUhW`YZaXT]Z_UXSSW_^Zb\_[PWW\a^ZZYNXR\ZS\ZXa]aUaWVUUXSQY^USXaTbW]QWW`ZW^\^`W[V`VXZY`YZ[[XY^QPXYQU`XP]XY\Y`Mi_`NYYQT\W\a^bX]W`UZQ[T`^hMY[Za[PQ^]U[OW^ad]O`fZaR\WX^_X\]]iXWf[XXSXbVSP_XWQXUU_aaUaX[ZTTcWXWO[WWXWY`VZY]XW^Z]^X`YYXZZPW^ZXVcXhUfd^^Q]ZUWYXU[UaU_YaYLYY^]TSV]TVZYUV[T_\^\]U`VdR][W]\c^`WT]Z`V]YWW]_S_YZ[W\VUPXc^^\PZLcVVLSZW\TZ_XZQ\iWYjRY^eXSX[_`Nb\UOUVV`ZW^WYWbaY[^dUZV^]\[[UY\TXV]P`]TS^][^XYaUZQY[Ya]l\XXS\Z\\^ZV]a]^[SUTVV\]_TV[W^\VWSTVZXRbXWLYa_Z]YZ[[^UU\Xk^ZXZbWRXTPSTXTY]WZY[]`Zf^ZZ^_T\]XSXX\RRRX[ZVbV_`\R]QS[QWUU]RUX[[X[_jZ\b[RXXV\\PXWY]U``]]Y^\\YTU[\\\[YQYYeU[UTR^VWQ]\aYVTaaW^WVPbUXZ`aXe]YcZ_^V`ZYVZXPZ_SWX^]XdUZV][Y_]b[XZUUURZVXbc_fV`bQXfXcYW[U\Z_[Y]VYTQX^WmX[UaWR`MW^XXZQV[UV[\g_U]U^\OOSaU[ZaX^]_WM]ZU[SXXYXUZV[YfSRKYVZW]]Z_a[XXZaSVa`QUW][]^UY^VZ_WSSV^X]VN\V_YUZbX\^K_[SQaVY`YYe`ZTXY]_UQXUWU^[`[[c[_YS[]ZTWU`XYa[U]`OReWXTS\WYYPSZV\UXY^X^YWRVUW^Y[XTXZWRSUTb[XP[cSPU]WZ_RT^YYT^VUbYZ[YX_ZY[WRXaNQUT^[[^UW[YTY_X\XNmSWXSZY^_ZX_[VZoRR\W[hYTV[S\\nYVd]ZW[^WRXa]V[`[[XXWSaR_U\RZWSXXWZO\\ZV\WZZ^i_T^`YTU[aYkaUVT_X\^cTU[a]P\UY]TWPY\ea]TU[a^]W^a_aTWZ\KR[VZcZ]^[T\YTPWSWQ[WeZYXd[dZmdYU\\W[\YWZS\WWYTSX\ae_YVSYZa`Y[XTX\^TV[d[]VP]]]`\YYZYXZQXW[Q_OSbXYU_cX\XV_XV_Y\]\SfTVX]a[WY_Y_XbaYRV_Z\WUXXZ]e[[S[VeRZ^ZT\\]]Y`[^^d]^]TN`ZXY_[YXXaVZ\XUjYY]_a_`^beTaZXYe\_QZZSZX]ZWQW[URX]X]]V^]Xjl\UTUde^ZXTaaLO\QR\hVZ\ZUYSZa^c\ZWU]]`OUTVV_]VYUY[T^RZW_b\gaYWYZ\c]`d\XQd]Ti]^\[ZWZXZSYRe_a^Ob[`_URac^W\[UWWYWTWO[VXUZaYf_RW\YPVT\Y_X\Q]cPQVYR`ZRMb]ZW_XYZZ[Sa]_Q]ZZYWTW[XX`SV[bYQU^_TZOVTRYTXWXRl\YTURWUY_NUUVOTVXh_[fZYb[SSTWXX][c]f_U^OWXUVX[\Oa_MT\ZS\TY^XFXdW^j[OVPVZTR[_SbXW[V^a[YYRZUYZ^[eWSWZWa^a]U]][PW_Z]RR_[YW]UYXP^c`U[O^[\[\WYXWY`X^VXXV^aVY]^X`PW]T[UZT`[XV`[_^WbSZVcQVMT]Rd`XS\YURNUaUZSUYXYYYZdRYRYS[R__aU\_bPb_\`PVUU[UVV]\TUSZY^XTViWYU`][[ZO`^R_[ZURZ\TUYXU`Z`M[^f[PZaaTQWX[U^VPX]X`L`GXeZVV[XT]SWU]]Wa_[OR\ZXZZT^`YQWXVZ_Z\cSXe^_W[aWZ]X\yVPXQWZSZWAa^UVYZX[h\VW\W\bP`T[ZRYXTVd^_`^\c][^Q_W]R^VWWZU^\YVX[\VX^RZ\Y_TS^U_\TX[`\U[[QbR]Wc^]XU^W_WYL\RXSWZURZWV\QeWa[XUcMSXZ\VWVSP[ZNXcYYWTXVYYeY]U\\XV][^YS_YV_^X[Q^RVZS`^XdXVV\XUTXcZNW_fSY[]Y`SZXTV\`VVXTU_O_aVZXh\XSTZUX_^bT`^X\RWS[Y`YYWWT]XT[_VZTcX[\ZhV`^``c^]]aX[T`\]]U_XXWUTX\`_ZYWfWSQ[UYZ^VXa^W\W[^W]W_a[VVUZ]WWU\XT\iX`[X[\PQVY]UYUYW]\[^bQTV[cTXf`aZUVYUSUaTWa[ZSa[Xe_[VU^VTaWVVS\_W]TWXVY[U_TbWX[S^]b_U^QYTOaTZ[U_WUbV^aTX^ZU^\^[O_YVYXWZ]\W]b]YV`W]]VW^VTYXR__WV\cRTRe]XVXf][WR\[T_Rb^aSWWXSTPVbXWYb^\PcXY[X[_UYY]XWTWQ_\X_ZYWZTS\VXW^^[^ZS_WXVWVWW`\[WaKd[Zc`YUSRka\SQZVX_[UX^a[WX\TW[YPYPV_S^`YVUTV\SYW\UY[[U]QLZS^T_e^XWYXU]YXSa][ZYY]SWS\XaSVVZ_[]YXSQZXY^bU\UV[WUTP^XW\UX\[^]\QX[\[YfSeY_XT[YZTeVUV]TXUZZZQ]`XeR^T`]eb]XZ^_WZZTT[`YbZeRY_^UXWZ[dV\\Y[]ZcZ\Z\ZXW[_TWf`]^_VWUWQ_YUUZ]][WXYV_[]WVZ\XT_XYY\VPg]V[^UaYaeVUW^VY\SRR\XZX]]PU\eWT[U_[SYYWNOV[\`S_ahZb[Q_VUb_O^VXjVb\SZS^_`[RQUcUWbYcVaZ^\V[[N``W^VJ\OY]a[\_hTT]VZY_T[bUVekP[VZWWV`d]Vf\Rc\V`R\P[`\Z_XY^TXc[WYTTYZWWYZPUVXd`ZYWWTd[[Y]Z[VTOSdYXaYY\TRVYPN_^K\\YVYa\S_]eZTOSZYXQWU\SYVZb]]W\VRSQRY_[ZRL]UYYSd\UXZbSTYa]URUVYTfVSZWZT\e[XV\T^fY_U`UVY__^_]X]V[\[XRdYWX_TWZ[[o^[R\bW]PURV^^]WUPXTRZVPU[\]U[U_bSYR][^^NY]`\U`TWYkOV^WXZ]R^S[VaT]bWN]U\[XMR]X[]WTS_^\]_]dQ[_Z[fTa^l]M]OQ^bRQN[^WcT]RYTeWVXf_[_]Pb[OOSW[UYOaYaS^V`_[SU_V[acaV^]Z]_R_`VX^SYQZXWXWZePVYXXiUTXWT`V`R\WXY_^Yc^UZ_UMYVZ\XTagV\_VY^X\Z\[Z_eXTTW_WQOYVRWV[\TXeV\c`WUZYRZRaYcYRXT]cX[VSc[URN]\YZS\XbZX^dWRXW_YWUieYXU_RRec^]RYW[`V`W^cZXTVTTWYf_XUX]aVZZTf`\OTh[\^ZZ[_XUbT^[\PVjTfW[]`[YXUYPYWXW`UTaTXW^UVRVUZ]XiV\VV]VWbV^Y\TYU\ZfaSaXXYVYTU_TSVYX_Z^VUUSWVVVYhRXY`aVXZc[X_Xf[_ZTU`RbY\[RXWWWYPVRSM_a_VRTaXX]X[]XTWVYU\TXY^[`XUT\eZWPUZ^WQ\\SabSTPTNaWZOQ^Sa`\P^V]`aW^SRbZUW[X]_WZTaZXVSYOXX[`[`bYY[acV[VYZTVWSW`TTbUJW[c[U`\W\WYZbORYaQYaSUZSfVXPebW^Ve]RTbX`]ZYW`^]\We^VU`STX`WVU]Y]Rb\UT\PW]`QT[XSSV_Z^X[QY]VYV^`][\XWV_^al\VW_]Y[W`TcZOSUaWZX\W_\\ZRUWWXY]W_ZZYag\RXXN]W\Y_NXW_]aaWdTY`TX[]Q_VSVY\Y\WU[U[P`bVbTU_UT_UXYWWYWRZYXVhOR_^`UVX[XM^]RScY^_U`\^W\\\\TU`STRX[WVaS[VU^V_\\`WXYWV[T\bS^]S_RWg^]VW\dSYa[Xa`Y^UWZZSRP^R]_[U\Z]_XXU]TYNlX\^X^dH^Y\h[U\ZWVb]_ZYfNNgVYUSOiJK\YQP_WVY^OXUUURS\SScNTRR8ZXTX[R]XUSS]`YS]PWadRNRZKZV]YVKVOS_N^UUPZPYaH^QQL^\YcSTSWY_RaPaXX[`[[Z^^wSQSdTbSWejYSGOdQRYX^TRQOS@nWQ[^]XZ_aQY]W``_U]\7*OOS)XYJ\R\VYT\TaURNVS^SS\`ZRIPdQN\VUT_]UXiTZQU^IQ]SYKOc^YhRW[Z`RXWY[Xb[[RWX]XgSZQ][]V[[ZXZXaP[UWKbX[XZ[S`^WX[MU\TTiWTVSPOcbKP\d[`YVXTSRV`ZN]UOa\P^SeSO\WT_S^QOVbVaXYTZTTYVeTU_CVUTUVb^RZWdUX\WW`YbIXX\S\jZVZ[_\\PX[WW]TZV\]VX`Z\WUVeWOXT]XXeYNYYW\Z`TT[^X[[YY_[Za\VX\VT\YTRMZ]XZVm^`^U[[ZYb\T]]S\SUYXWX\YVTT]_YXOURRVVTSQ[RVXXUY\[[ZVZW]TR^X`T\`XWTQ^SMYVNW^^^YVcVVV[^^`Ti\U]W\[\```Y[ZVaV_WVaXY[XVTU\XW\YJ]X_V^\Y\ZV`ZWWSUa][WYSY]TX\RX`_RQW_[XS`]YcN`R[\R\]aYZhZ]ZVTZSUZeTWXXTRa_WWZV\]UZc_a]a[]QZXU[Z[]ZbRXWb]X^[Y[^VaZ\US_UT__\URVY[ZS[XY_\Z]cgc^\YdXU^X]cWaZ^[a[W[`YZVTUW[ZYXYWZ`U_dRW]R[a]]\Y\\[X]a]RUW]YRbZfT\^Y]UTOUVZUQ\NYYZ^TbNXPYZURTXLS`XZ_[ZgXQ\WV\[i[UP^Sd`R[PSXYYZb][d`\PZVXb[RVTR^WSXb`cT\WVfXURZ_ZV[XY\\aWTacT]QSW`UU^YTYP`]]VX[Z]RU^XRRUeaZ_Od_SVYcTaY_WTZcU\\`[c`o\_TW\WWVVXbck\^^cUY^dWXaa\Y_WW]]_WTW\VWWOZ[`ZUT_^V^a[WVL[R\RW_ZYYW^V]ZU\_a_aZWXJ\U[VU]XT\Y\[[QS`S[[YZ\RXY^X]_YUYXOXMYYVZcXWVY^[N^aW[Ye^[jVS^ZX\YYU_\\`XXa]kQP[X\dVWj_U^Yc]VYWTXZ`ZQTWR_kZWT_YWUVXWW[bQW`[Z]YeYWX^SU]bNWXYWY[a[YdWVP[W[VSdaaWY[NZY[TUd]PXY^PZe^WT^W_WY]SVT`VW_s\W_ceeYU]ba[]VYPX^YVZTRW]V^TU`TVPgV]_]`WY\TW[YdVUZc[Xb]`VY[ZTWdZNa`ZSPYXTUZ]ahK\R\]aR[Y\SZ\ZcUU\YPXfV\XST]`\TZWZ`]VV`XUVXX[U^YWZUPX_RX^QUR][X^UY]T[]\[]\VX_tW_X^[`PZPT[_Tfa\Wg[]Wf`U__aXTRSVYb[^UU^U[_W]e]Y\b^[WVS[ZUX`\fWQZ_\Q_ZTWaUbfUYXY^]a]R`^fQ]Xcc][X]][\YZUV_dX^UVXS[aW[Z`jX\SUXe[`SXRW__XVe^_MZ]`YZZTfXX^Z[PXZWhaTU_TZ[XS[dW^S_gVPRW\T_^[]Sa[`UUc[\ZWZRUY^UhVb]^R^X^UQT[VSRWUV_UaYXLQQVXYaTL_VXUX[_X_c\c`ZRSeWWZ[OY^UVZ^\cQUO[Y[WZ]TXRTZR]UN^ZNLXYS\O[Y_X[f^^f[RTSWWXfZZdafZWWc[[aRXWP`aS[^YVVY[[[_VT\T`W]\b_W\a`YYUU\R`dV`[XS[PSaZW^]U]Y[WUfd`[_[_a`c^WX`\\QXWaWZXXaZ]TPP\XVR\Wb[W]dQZaX][WTZ\W]__[[_\SSVY\b\]SUMR^YXdX\eVXXTUOZ[a[dPWWbT_Z_V`]UX[_ZV^X\^XaXS_TZXObW_]UO\WZ]WU[]X\kRVcWXWUUVZXaRY`VYZ[VcY`[]ZV[R]\X]\XZMV`_]`a[YIaPWTaRWcR^XbXUXV]V]VUT^Z^`Z[U_XZaVYY[`ZU_^SZX[U[Z`ST]W\V]UW\UYZ]LZ^\YUS]Wb]\bc^cY\Z\YVYZ[YQN_Wc[abVQVWVXTb`]WYTf\QXSZ[][SWXW]W\W[[ZcSg[Y_]^QfZ[\]^XWW[U\XOTZTRZX\a\TZZWZ`VYVZNZUWX^SWWWY]`d^\__[YVWQZY[iQQbZ[RRdba^S_SST[VVWe_]eW__YY]Z^_TZ`c[YZY^ZZ]a]fZl]T\TYU[bUVa\UPSVUXaV\`[QUeTX]O`WW\SZYV`_\hUV^Z`ZSYdY]SST^W\XUUeYYddWZb\V]WWYX``ZYY_ZTZ`ZP\[WYX]`[_\\X\[V[Z_Y\_\\WUXV_U[SZYZ\Y\\_b_[Y]M^YY[[XX^^YX\Y[V[d[[^_P\eSYV\ZXVY[W\ZQTYYXZ_cQa[\WY\X[Z[V[\_Z\^\R`[`ZWcb[V[bVXZXNX_dY`W[W^`V^RV`]V[Z_WU]c`Y\\\aWVXZ^XaYa`ZSP_[^YdXV^[WTaXY^\^^e]^YZ`W\cU^Zh\\`S_`[V_XXMYW`SYZSVYWT[TQ]`Z]WWUa^XcX[VWZ[^_aOU[UYU[^aZUZWW[YTYgV\]\YVS\Q\`^YY\aX\\ZVZ\UUUV]\\cUP__Z^YWZ[^TXWX\W`^WTZZZ]YX[\XZ\XYX[QQ[\X]\XVTZYTZY\WYU_YU[ZWYS_UVcT\Z]]_U^V[eWZ]]_baU`]_[Y^VX]]QX[P`S_[[[\XTSdYSTXMSTV\\R]`WPPTUd\V^YWYYWaYUhTZdUQf`QdRT_Yb\Q[b\RZXbWX\]Td[TV]]WZXXOR]WZWYV]\_ROaTVTT_]_SUSdU_\^ZZQUTT[Zb^VbWW^Sc^U]TSXYa]W`FVQZ`cUQV[^YVXiaNXY_VdVW__kb]\QYTXTW\^[U]\VZ_ZX[[VWV^Sb`[PZVUWPRQZYbXa[X[S][bWQ[RYT`R\^`WXWY`WWXXcTVRYX^WT\V`XY\WZYZ^[TLVY[Y]WXV[R[RV`[_X`]]\MWZSZZ^W[VNZUV]Xa]Q`]TYXb[WcbP]QT\\`iWVUVXU_dTbUbcVW]UWSYU]_S_bV^VY]VZ\VYXSSjWV[\`RQ\Xf^PQZlTUYZYi^]UWQ\Z]]b\Z`cT\QS]]Vf^S`Wa_`\UPWbVTUYVW[[]WV_X_V^LU^TW_QZYaS]V[a]XbXYT^]OV^[bX[VSVZY]MMZ`ZfXYWY[XV_YeZ_\adU[Q\R\VS]X\`\`aTMVZYYaU^WTZXRdSK^]aXV\XbaZYZQ]W[_YXXY^UXYVa^g]Y`S]]UU`T]aaZ]]`XeST[T]_XSLXYYV_UMYYeV[TNUSS_VWZXRbZbUZUZUbZW^]^WVXYZ\]X[\[SZWTYT`X\W[]Y^\i`a\R]]Y^SXUYXWU\bhUXT]YM\^XTN\V^WdWYTUbVf\Y]]WOVUZYdV\\Y`URUbPqU_deZTYXX_[hPLZV^eRWS[gUaS`UcX\]SkWSXP^fWTWW]SWRaNWYSO_`USZZ_[X[VPYX[h[``XdW[XL_YT`VXRTVYTX^UURVcS^[]\_YZW\T^bWRUW]XTNYZ\UbX^VV[X_X\TYY[WuO[[UXXXV[_YYXZT\\\WZWTP`[MY^_^WdgZWYRQU`cX_V_YXWUYQYZcTa\WY[_ZXbX\Z`[`W`SRWR_R]WeZ]^TU\X`bOZV[UZXf[`]ZXYYbVc][Z\UeXU\bWg[aU[NRURWXbRcQ_VZ[WXW]]YPS]`^Td\X[YXVUWMX``VUeX_U^TObYXSXU\Sd]d^VV`V]SXZh_YXTVX`Z\\\d`[^YQ\\`Zc]NVdX]LXdX_amVa`Y[YPU]gY\XX]]Zl[Z^`^\S^YX[hZZ^OVYc]\UdP_X\aV\PVYRW[[UXWTZ[UVRV]SUU^Z\VY[aYhQdRVZ\YUX_V\XV^[[fXWXVRPZZUXdWUSXUaZR^Qfc[]SU\\QfS[YVUYST`XTb\PZ]T`]b[[\[^Y_]UYb[UR``\`]WaW^UaZZPWXOb^Z]\WWVVXY^SaTgP^_U\UZX[XZ[XOQ`PY[h\^^\U[\UVTaQUQ_X^VQ^`ZTXeYgY_[WVkUWY`ZSSVZOZSU]_W\[W^`YZN[TVX\WecSV`R]ZYXhSbQYQW`WaPRURW[V^Y]Z]W^VWYZ]ZY^c]]dZ^^Z\VSS]R[[eQ`\XPM]TaaVMTa_YUVTZY^iM]ZXWWW`dXWWXTX]aR^YYXQj_VYVPcVY]OTbaYRPS[f]YXY][TYeVRc`Uf`V^YXWVU`ZSXcWVXN\UbRXV\\[W_\`U\X\ZTW[VWdnaZVTZZ^[Z\TVYSVUY\]U^__VUTWQTUYh^VYZ\VNU\[Z`VY^RZVc\]]RZ^]TXXYY^kdRd]YVZU`PT_IXXP^[TTeVbh[`SZV^SONQV[Zb`Rb[R]]^VT`W_`^^X[\^ZUOX[_SSd`^[XZb^UPOY\YbMRZ\_bYNWOV[[R`_ZZabXZ`UbSOR]TJ^ZY`]SX^deSU[cQTO\Q[YXbR[Z[V]N[WZZ_S]^ZMQ]UZa[Vc\X]ZPUWU\Y_XXXLXXPa^YWOUO_b_EXdi_Vc_KYR`ZgPO[ZZd]]QeWQ^XbUTaW[OZaY_]^aYV]``[ScVQP^WR\]`S\XWYWUY\SZY]\WY^_SQZ`Z`V[VV[_YO`jXX_TWX^[XS_ZUX_\^]]PWV]bY]O^^QYYUTW`b[U^WYPUWUXSSh^SS`UWYWUL[]\XXSTWZYOY[ZZ^Y[S]X]WTZUWZa`[[\`YSR_ZT^\]S_U[S]T]YZV`]NZ`]XSZXT\ZW`TPWUOYa^TYUj]UWQ[\X\\WXSZXRXWR^bVU[XUXW]S]WX\\WSR]Z[_c\_]`WZX]__WW]W\U[[cRZWXZ^XTZ]][UXWW[W\]\[h^QY^\g`\TS[TW]VU`TYeZ_[fXY[OWaX]UWbUWVfcaYUX`^XWOb]Q[_adT_`QUQTWTb\\X^daYX^V]]^ZaZZX]]U\[b]U[SZX[VcT^[UZRWZX\bVehV\[YYd^NRXUX^^Z\[Y_ZVYZZVV`T^Z^YX]UY\SQ^^`VXWWZZ^TW]]\W[WXYU^UWZcV]VY`ZU]Q`Xa]YSW][SY\\[YPZ]UY`RV[Z[VcWW`YUX\\WQ]]X[S_`ZXamYVWU\WV\Pc]XP[\OVX]YZd^`X]g\ZX\U]\OX]VO\ZUWZ[\O]c^]VVU]ZQc_c]YPh^`U]ZT]VgTbW^WZYXW[]]\^]`\d]\^][c][[[\]WdTWP^SV[WY]Sca][\XUTTVY]XbZ^b[]cR[WW^U[\TXYRWPgYY]VY\Yb_Y]YS^^T[\RWYV\[_gXZYTYdVMaeaTZTTZU[c]\Z[^XbZaXT\ZZZUZXZ[^iW[\X`d]RhaU]UbWWRYT`YXYVZR_V^Z^\Z\VaVVU]W_`d\ZZXZZV^cUVWVVTUW\ROURRY^UQV`RYX[^gZZUNR[WUQ`R\i^WbW\VSV[`V_dVe`YVV[OWXbWYYUY\\X^\W_QV[\]Y]R]VUW]Q^_eXVSYZaYX[^cV^]WZZ[`W`_]Z[_\WS[XV\SWU`YXaRdX\WU[YUTTUT_\ST[jPY]]cTZbaT\`ZkeZWW]bq_Z^TV]\Xk\[Z\W[^Y[UL][PZbVV\XYMV^][R\V]VWT`NX[[\]dTW_WTV]XYZ]YVXX_SRU[X^XZUYaRiT^WYXZT`W]VXc_WYXZXdW[[[_W][\\SbXad^e[_SYXNZZY^WRS`V`e`YOWXaYWXY`^[VW\\UcbVS]WXdZZWWYW[XYd`^W`UVNSOZ\\V`_TXY^P\UTXX^[[LVWS]]cXZTVV]RY]VYU\fU\_UTRYX[\]TSXXNQWX\b_X`UbYYMdUlRWU\XXQZY^eRZ[^nUWXdUSaR][a[YbX^][_`XN`_XUZP]`_Zc_VRQ]Y[cTZUNOROQV[edZV_^OXYZ]XRV[_^\^]ZY\Z_[fY\`WSWYZXQ[[`aYdXV^U[a\T]b\WZXVZ`Z[V`YWZ[XYW[`T]V\[Y^^R[c]e\\YWVYU[YYX\YXZ_^UWUa\Z^WY[VWZ]ZYYdZY`TY[[XUW^_VVW[ZRVP^UUY]]eZ^VXVZ]KXY_VWXSTST\YWYUWUV^`S[^UYY\ZZWV\Y[\YZZ[U_Xa]\^QZUX__[YZ_VXaZY]YUXV_[[YYOZcZ[\[O]\SZ\WTZ\YWXaQ\WPW_Wa[Z[[^YV^[V[U\ZWT_Xh_^XV\TXWYWYUZ^\ZZWT[hU[MRX\ZVTa\]`WS_XVUZQ`S^V][UUUWZXRXX[WYZV[]S]Y]ZY`UY[XZcYc`]_fbU[[X[\YY\TXZQU[\[Z__W^XVZR]`QO\VUWbYYWaWZZU\VSZ^\VbR[WQ\V]a][TZX\c^W\_]U[ZPXTQYV\]X^WY_T\S[UQX\_T[Y^`[ZdTZ^[YW]Y]VW^^\TTZ[TRX^S`[^_\TYXX_Q^XWXZYQ]W^cRZQYU[W_R\WS\ad_V][_[VTUU][X_TXT_a[[[]OXXYW[b]a_`X[YXR[^R^VWaX^YbZa^YXVZ\UWW[\Ub^]W^YZX\^XYaTUVY\`ST`XZ[Y][VTZ^^[XYVUWVYUYSVLUa^LT[P[Ub\X[_]W\U\ZW_`^Z``U[eVaY\WYZ[SW[][[TPYUXXT\]Z\ZN_gZRXV_X\VWU[[VWTaWWZ\[ZTUYT`TTVhWXTUS[SMWZ`]VVVZ_Z[ZU`\]\ZQOc]TWZdWWQYN^_X`YZYWL[b[\X\XgT[\YQ^^TZYPRX]Z[[Y\\]ZZSV\UR_cSW[WXWWWYWXVWVUVRZ\`XYV_X\[UZW\d\VTUWV_[TW\T`__]\ZZRZ\RX`WVSU[X]ZZ]P[XXZ[WTV\`VXVY\][P\UX_[^[Y`S[RbWTbX_WTZYaPZXYVY\WT[]Y^\^X\]XVW\]Z\Z\YTTPZ^UYW]R\[YYa[`Z`WX\XSQRUXdUZW\Y\ZV]\ZYY[_^NaZUXRV_]YXT^\\T\`_XVT_ZTb[^YY]PXUWY^\U`^V_]]U[V\S_XgTX]ZVT[]_YaUW\NYVZTYXaUZVVZ\T\`V\V\WZVhU^YYWTVVXc\[YS`fZW_Z]U]ZYT\WXYYY\S]Wb^UY[V]ZW_^XW[TPa_\[[YXXZU]VZUQhX]XQYWS]]S\[U^Z\Z\XXMXZO^^aXY^\TVUYZg`S[Ve^[U]\Vf]Z]ZRUZ[gY]Y^^`Wb]X_]ZZQRXXT_SQ[^WZ_YU]WRZYX_YWa^]TO[V]`cYXTXZ`TY^^Z_UY[Z][QWWVUdQZYU]XT[_]^`V[T[\eUXZ]VV^UdV\ZV_WV_XY\YWVZ`^U\[TZ_^V`UYX\SU[P]Z`^W]O[cU`Y\RZaVUS[YV\^TcV]W[W[ZY^UYWZ__\WWNW\[XTX[X_aY]W[U]Z[^a[UbVZ_^RY]_UM[WQ[f^Z`a[U_]]RT]V[X[[aZdUR\\UXYSaZ^V[_X_ch`PZZaYYUU[`YbYZY_Y\`ZPYZ\XXZV[]]^a[^X\TW\bSVX\^kTL[Y\`c]RR]VUS^hbXW]Xa]YaXWWWVR\X_RXY]UdTV[d^_]X^SXQa^Z\^eTZX\PcY\cV`]Tdl^MXWV\[[O[riWYTUWQVMMVSSZ_VY^`Yg[Vf[`[[WVUX]X\iTY[cYMUW]jaUX[_X`^UeW]OeUOY]]Y`YZVVcW[ZWX_WZ\][UXYWTR\bSW]XY[\ZPXRZ[`bW_VaW_`]dZ_Z^]ZX_ReWU\YWS^fYTPWVc`_]SW\WXRY]NWY]Q_a[\pWWY_YR[WVX\\\\W]\Y[XSb]UP[Z^VYVWaa`Za\bVVZYU`YZZcZUV\^^_b`]WcZ`WSQ]YY_UT]ZLY[O[]PY`WVUe[b[R`P[[TXaVk]`XdYX\OQ^WYYTWSZXX^_SSSY[\UR[S]ZiX__YZ^Y^bVV[_]eQL^VWe]ZUU_Z\ZWW\`fO_PYZS`QW]LSTa`^[P^[XcY`UVXV\XQX^PQ[^Yh_WVJZZNXYZRYZPb_cT\ZYQX[eaYS[aUZMV]bTQS\S^_UZb`U\Y]WcdYT^WZZTUb_SWZQSZaTSUWQdXdUWM^_W[U[XaPW]SYXTfbY]UVcTTZoV[SSYK[Qc^\WVUZI_[_^\^]P^RPVT\[TZb_W`NUTVZVYZ`SR\`_X^bOTPV]M`]T\ZbYOkVXbaVY^XVeZU\XUU][^VhYYXUWZ]XTSbU^bXX[X_Ze]Y^SaZXUX\UYZ\[ZZi`dS`eXeXTXWeX[PbSZZVXZPTXYU[UZY[dY^VTUgdYZP[YZf]UV[`UidWXX]VgWPTYV[VfWY_d]]OQPV^_`\``[\Lb[XNV\[ZVbWUZ][dShXT_\NXa_T`SYUR^dTZSW]Yd\Z\XWUWZ^\VUTU_XYYXY[P[`\cc[N[RU^b\V[QVWVT_Z[[_VXSaUZaS[Z]YUfZUYY`XT^Y\\XSX^S_fZ^WV[XYUUdX_YZT^`cZX^VZ^X^WZTQ]TQ^U]V]XTYT`VZe_a[Wb\_POY]Rb]\X\^Ra^[Q[[UZVSVaY[Z[eMV^]Wa]T[Z^T`[zOXTWYQZX\eVZ^Zg\_]W]YZY]\\UUVW\[VQYd[cYVWcTWMUUbTW[^YU\WVVWXZTUXTTX]]W_[lYXVZbkYZW^b[PRa`Z[^X_Y`]SZXQXd^ZTWW^^Wj[Sb\[hXgK\ZV_WW]aVU[VV[aW[W_WXWj]TXXZd_WbUXRU^_XYYVaZYYV]UUUU`YUZQ\eQZ`]SacLeUSibcb^PP[eZST^V`W_Wg\W[VfHRTbgW[W\SV]QU^ZpdX^ZUS^Y^`QUY^VYSSNOWcfY[Ta^cYXU^PQ\eWYR\Z]\UVZ```X]^dqY`Y[`c\]URWQ[S[XbhSZPO\J_[\S_[WbaUVTYT`OXZcT``NZd\^`bSmaU]_Z[_SVedU\\TQZ^Vb[`c\^UY\\Zf\\PaagY[WUXX[SO^YR`eV[[_^OPRbRbW_MZZZSYNTjPaOY`Va[`^P^VfbV[\a\jOQYXX][YaL^YWWc^ZYZRaW`TO]VNaYBPXSTYO^^]`[bPdX^a^W\\X^Y`Q\YRZT]iZd_`T]ITZ[\cZWW\iU`[W_SX^ZY`S`cNe`c[fccUW]^gV\TRUSY[UUaUdP`W\[T\aYQ[WWhT]aVUWZdUS]ZUUUUXT]Z_RSSYV`QeXZcgXRYY]LNYVRZ]VfSXVXSZ\TZP\XY_[WZR\ZQ\aVPTa\VUX\[[aY\eVQ^UXRaYT_\]S`[XTSSYS^U]MRcW[d[ZU]bRPYSZ]`dYWQUV^UYU^WUb\^U\XT^[S`P]K_VVZYa^SWXUT^XM`XZQQ^[TVSgXMWUZZ`TW]RZiSX[VgV`U]\UVaSdWh^_Z]WR\PYVVZaedT[]cSUWWTX^aT^\_[U\U]^d^cZXYT^XXSaVTbVRTd_\WbZ[`TTRUdT[cW[VXZWT]O\][XVU_eTX\X[^Y]XU[X[_YbcUNZZ_fZZXX\[_UV[`iIhY]XWXbTaXW]aai\\WUaW[XX_RYZYbRWSeRXTSaURXf`aXfiVV`UV[SdZW]ZVa]dRW`ZUQaSPeZUWSTY]]M_QW]Y[X\SeQVYWa`P[dYVX]^W`^TW]Ya\YVV[PY[[V]iaVVXY\W]]aTaVW\Sf[b_XV_]V_]\YXYXV[Z[[WOYSWT\cZVWWPW[TNU^W[WYWVaQXU[\SW\RUVXXa]XYZXTPU_ZWdd_^\\XXS]Z\\XaXV`\[XZO_][_d^WWRaU_`VV]XXX\^aPTf]d]U\c^^QSZU^gVQZaZ\\ZW][RXYYX]`Yd_TW\N[XU]UZQX\Yf\aR[_[b^^YV^Z^\ZUYTT\MX[P[`Q^YVVWVZUS^]]ZWXTWYUZV^eZ\ZbRZVT^[XUQ_[TWZSYVcV\XYY\YXVXNfi]VYVf\\Y`_cZT]TV`[YRPXV`PVeVX_XMLXZ\P[]]]\b_WYVU_\`]TY[QWaXb`\aa]XT\U\YYU\ZVXXba^bZcXXYfZWd]Z^[]`W^\XWVWVUYZX_YU`US[]eUaO[[U\WhaS^\\RT[XWYRe^^WX]bTT[a[_`STZYRbUebRUaX[WYVS]YVYWS\[\ZQ`^PTTa]ZT[\_\TZXg[Z\a^W`N\V``TRWXaX[Z]TW\_V_`VUZaV_YWZQW\\ZVYXW\W\\NbOYZ^WWYYY_SZP`WV^Y^WNZ\Y_ZYX^UXR^XYZZZVj]]\`V\TSYc_]UR]S`dVVZP[aZP[XVTUUYTZ_cY`_WVd_]W[Xc[\QVXWY\^f\YXX_QYYS\Z_UX`W`WTWU\^ZWXRT`XVSSS`XYgV]WT]]TV\\][PlVQc]aV^Za^][cb`ZSP[X_WU\RTZ[_]VZej_]_WWTYa^Y[V[_aUY\`Ud]TaPZ]`^c[TSeZ^PYYWXZ^_[UcIS\R_W[XV`\j[^ZV^]\Z[UZXTY`ZcSbWVfW[[Vag_\UaUZ]YZTMV`MYPWPUU\UWNZW[UX]_VQYXVU_P`^YZXT`ZgO\V^[_eZRdY[R^YW`^Z`ZUUXSR_ZdSKdY\XT`S]YTU`ZWeMY]UVY]^UY^NZQ\S`mSZVZXS_\Zc]S\[YXTT][\[Y]_\ZTR]`gLUbWbVY[dZV]cV]^TV^W[^Z^[_[dU^`]^Z\_YV_\Q`k\QRXQVZ`Q\V[UTbaT]Y\^[\U]\UZS[^\RXcc[UZNZZ_][]fS]RXZZ_SUV^cZ`_XXX[TZY[WOh`V`SZ^_Y]WYTP_ahSdYSU^XS]MSi`XXS[\eTX[VYVU`[Z]]W`]T`VZ`P[VZfcW_\RVUaS]bX^YTX[RbY^YV`XU\f\]UcZaYSXbW_[e^WZW^V[KUW^aTXLXU_YMTbZ[_P[V`OSQ^dR\][WVYNYW^Y_\\WX]Y]YVbZ_V][hf_a\W`_[VYP\\WcZV\cWYZYYZXWR^Z\SZZ_VQTVUb\^TVTePU]fi`YO[VZWYQaTJQOf^eSU`UT[Z[TOZXW[[\Ua]\VWUbc[Y[UZ^^QXXX]c`UaaVdS[Ng]XSfT][gT^YW^`\Qa^XRYZ]`\Xk[WPS[ZUVT\^\a_Z[U[V]YR^YZWVRV[fVZWW^WVbVXSfaO`Q`U^^X[^YWNZY[]XZaTSW]YX_ZYOdKb]WZUcNR\S\XT[^[UU[V`jX[WUcTPZZYaXVX`YbV^Z[TTZTYQZT]VT`URO^c_WWVXYR_S\ZSU\PY]Z[\TVRSYV[a[ZQVeYY`QaNPgZT^YSZVP]a[RWUVWRWRYYW^lZYb]TTY^NQQYm^_UWYYV]WVZ^_\bVT`Y^Z_`e\dTVZV[S]PVY_YbXU[_]]\Z]X`ZOY]U][[SU]`_[WSb`Yc_WWY^L\`cXVZPUMUWVaPZ_TLZRO`]_ZZW\SWZVT[l_VcZaXZL[[Y[aYZZXRYZaSVSTZX\_]YT`bcT\O[T`Y\^b[dPXU]MWXRMS[TU[T[XYXWXcZWTZ]QWTaXTU\\`\`^YUTXZVTMZUY_aWYWYVSdY]Z[_YZUWX^YNVcW]ZW^bY\WXaXW]UMVSXaYOSVVNY\\VUbMkLj\WUUT[bX\VV[[U\SVZS[Y\Z[YX[XWf_ZYW^^V`]XX\T\_aTT[UUb\a\WXYRWY]WW[]YYV]ScZYVRSW`RW[ZgYUZW^YZTPX]W[UY[\UWbb[b[ZWZUOW^d\_X]fWYT^XY[^[X\TORZ_TNY`Y_]^ZXN`_SV[]UXaZZRY`^YYS[YW_^V[\VYV]^XWZXX^RZVO^UY\W]ab`Z\W\Vj[UaZQTSc_WXZPUa_\ZVMaVZT_VS[YWOS^]\XZ_ZWU]ZX_ZZRTXmZN^WWaZSVVW[XYWa[VY[ZT[R[a`]RX[abZ]W^`WTUm]TWYWf[SZR`_cXRX\Y_]d[T[ZWeZ[UW\\XUU\^UYWd`[P^RXXWdUXYS`[[^XS[][XWYTT\d^bMW_WdY]\T\VST`\Y^Vc_\^^O^Y^S]YX]_]VUVZZS\Q\SXW\RX\S]YYYWZZ\YX\_[XYVYX\`X^UYXZS[UU]VWUTXYXZ]WbY\a[b\`bVVR[[VVcQVZYX\V][_PXUVZUUW^V]VUTU\ZYX\`[Y\[Y\bV]]U^WT^[[U]ZZX]X[aT[S[SYT\UQWbW_^``Y^Z_SY[[XXYRVa^]V[S\Y[d]T_XZ\YSTQ\SSV\YZ\XOZWa[[^`TZUc^e\]T`[WP[YX\UVZRZ`YV[`SYbVVSRZZZS]RO[YVWY[T[]dVb]ZaYX]PZY^YV]T\c\YWXYV]W_XR__ZPWUW`Y_UW\^\`bX^^daTYf^bV^b`PO\SYZ][WZ[T\Y_jUY_Wb^WSWW[_X[[UcRVX[\V]\UW\_X_XVZWSWXYVX_\WddVPYSbZTU[PXX\P^_UVUUTZeSV]f_W\SX\YWS[]WXVZXbXYXTZP_Z\T[TTUWYZaQWYRY_^__WWXT[__^Ya`XVW\U\XZ^RVVZ]e\`ZaYbaVRLdSY[WVXc\\_Z_\\`]]PZRSd^XZZX`UWYYW]gWXYUNeV`Y`VVU\i[V[XQ_XTXTZ\[Q\MZ]ZYR[QXWQdTdbP^dU]TZX^[WY_ZV`aUOdb\ZWVX[\]WXR[\R]]`YVdT`WTbO`UZ\[^h`Z\S\Q[]e]eRO[TZU[_^\ZPYX\cVZ[U\bY[U[c\W\P_VUV[Z^W\bNWXUR]Y^P[X]XY`VRUcYU]W[T[Wc\]Y^TUR^YW[Z_Wd\Q^\`\KTUZ\P_XXSSZ]Z\UZZf]X`ZSORZ]ZV[\bZOb\[TSOVZ^W]SZY^UX\ZWZ\]g^Va_eVWRQX[XQWWaZTWX[We]VPXX]WWVTTV[YZS^WXURRaX`[YNVUY`XR^SYYZ_YT_SUcRZYV[aYYWXZ]TVUYSTU^gQ\Xq^ZVe]W\^Y]bd_RTf]YX\\ZVXWVYW`][W]]N\XY\XZUWV\^YYSjT[]XQZRVUVXT]^[WSYYcUU^WRW[fSh]S[]YXWSZY[cYU[[YO\L\aO`TXaY\SNbXW\U^e_Y[WX[WZWZXVXTYZURZ_TWZhZYS[YQV`T\Y\TcT`YaSXWU]TX]U`[QSS]aXWYWN]Z^T[YQ^]RWZXYd[W[WTY[\VXXYXWXV_^WSSagYe]OW^N[YVObT^W[\fUWXTVS_[IbZhTcYX_ZQdZX]YPYZZVZTSbb[[_ST_[Ub]]TcYXX\WTaYH_Y]U`]_XXXSTZVX^R]YXVTVaX[QaZW\ZZZZT]T^_S[j^VSTaXXTVdY]_ZXW]VSYZUT\XYV[YVX^_V[TUVYSWX^[ZSSWU[bPUXU]RUgWY[UVWaST^SYU^O`U\TZ[a]b^RY[TWZVaU\WU[V\]YYYaZTf[W]acaYY]ZYXWVUTTUWZZTSRchYX^T`XY\\^ZaW_TZUfXfYZR^W^X\SYWW^Y^aQYXQZdU^VX][aVZ^U\Y_QZXaV_[^\W^\bW]XUXZVeVQ]\`ZXUW_^]W_RVXXaKVWWWRR^\VYWZ[QZSY\_YaQ^]ZYVY]^^ZU[ZQWXb[]bTg^bUaXY\VYYa`^ZsXRVX\TfR\U^V`bYZWVX]WXZWc_WZUTXVRZ[^\e_X[VXdfX`VX[[dd[X[XgP`cUZ^[WYaYXYXRVeX\kaQM[Q^aZUUYQW[R_OV]TYY]a^]TVac[Z_^oQT[mO^RN`NWafZSZMP^TXUc]`TW]\[WZXQSYcQ^e\\`XfXP`]TkaRTabZ]][V]WYb\_]WbSd\TW[UR\NXS^T\QbddO]ZW]^]YRW_]QRXXb^UcaVXZUUUR]PRRhYZbbf\SZYY[Zb`TSb_XYT]WbV_SZ^[bSb[Tb]NX[f_[_^L`WbfVTTZ[VY`\X[S]S`Y_ePPUaVWf]OYYVb[\f`dXZeZ_QYRZOSTUdYUZTZYcU]RQVPNVdNcN[V_dWUfUbX_XY\T\\__ZSRcSa\W`Y[G_Wil]^\]^TTW]PXR]dRW^\YVYaWYZZ_XZ\V_W_^[Z`U[`YZYjU`^^[]_YY_V\^U]YUVa\^]`\\]\VVYZVYXVb``[]]WVYY^`]ZXZZW]_WbY\YSYU[\a[`TXS\a]\X\\WZZ[[^U\WX\^^X^X^[_X[aWWZT^WaWfYZ\[[aZ_WZ[]c_X^]\]YXU]VWYLU_Ye`_Z]\R\U[XTUYZ^W_[_ZR\^XZSY\\Y`Y^`ZW[VZ^VWd_Wg[_[_WVV]]W^]SYY[VY]UVWX[ZXX^Xc^X[STbZbTWR^[Z]W\[]aYV`\\XeWW\YZ[Z]]^^YUYd]V\VYYQ[W[WYTY\]fYZY`TTZ]XZUUX]bZ]_]W_^UV[^[^]U\Z\[[YY\YXWXZSYZ\fU[[XUSUeY\WSTU^[[\]][\\ZW\W\ZU\[[\]dTXWU]T]V`ZQZXZSZXaZ`TcVXTe[W]XX\XcY[\Z]UUT[M^[cT\[UZc]Y_\UYZX]OT\UPZR]XZTX^jSUW]dYTS[PV[ZS^XXP\VZ_S^TXeRb_I_YX[W`UbTW]ZXeN_`TqXX``[cWK^XW[[YXVWNc]_VbZ^_RVf_RZV`Q__`PPRX\Z[Tb^^]V\T[Y\V^QNe]XQ[Z_YMZTW`O]]\YV][XfWWMTYeZSX`XZ`YeT\]R`a`Z[Y\_cZ]a\ReZNSZYU_X]VOcSWMX\^[T\WdVXYWWZUVUW^bfZc[^dWX]cV_YT`QYUVX]VS[baUSa][\S\Wb`__UTSZYg____`\[`cS_fXZUV][\kePPNXYS^\TROg\TYYV^WQVQ]`\`^US_iWVTXY\T][_`X[Z\`YXXZY_`XQR```TW\R[^V]`\ZaSVSY`XX`]\TX]QY[]Z[\[\XZTTUcY_\VVZ]Xc[WYNWT^^X_U\SR]eS[^[TPZ^^Ub_X[^R[N]_SUSZR[WWU^^X_UZQW\Z]U^Q[\QQUYVRR^\VZe]]WTYYWU]V]SW_Z\X`bTY^d[YQRWUZ^TXYWZ^^R\YXbZYZc^S]fZVY[^YZU_UUY[YTTVXX]^[Y]W__S`S`Y[VY_V]S`eZ^ZV]YaV^Z^^T`XVS^OVWdWYZZ[[R]\QbQXV\\UUUYXbXPQ]^`_WYZ\[X]VOZ^RbaW`ZXX]Ta]^]_ZUWZ_U[\_\XYZb^XZbcUXabUUT\XXT`YV[UV\UX^TYX\RWYSX[]U`_[[US^_]SV\]W[PfSfUXTTgaZ[UZWZdSZZSYU_Ye]V\Z^Z\\Zd]QYW[[[Xa\S^LTWYWeYW[XXN[Y\WciY\YZUXVYV_c[e]ScVWbZUV]^`[]aYa\^]XYZZR[\S_VTXTUXXWYUZ`X^\YUVZUkaUT_][VYY[WY]`W\WS_[ZVR\`YX\]]c]XaTX[UdZWW\Vf^\Y]TY\OaXZ]UWV\_^\Y^^UZ]redZZYZU\VS[^V\TV[^WaYeWYQTZUYY]\\XZjUUYaYW[Z`V]\[aQ`_`ZXUZZWXbXZ[cSYdXUT^ZR`]^XXYYZRZ\^]eZU]WeRa[]Q]\Z`ZVUVXa_Q_]]`a^^Z]^TVQ[V[\UUYUhUc[Y[[Z[\R[]UVWV`\WbXW_^VXXci\^X^Tb\]UW_XUYUU[UXW[[[UWZ\Q\OYZV`][^X`\TQZYWYS\]QWb\]TSWSTcaabX]SZ`gSO\]WaVUeW\YZ^SWYZYVXWT^VYWc]ZVT[cVYT\TYfN]WVZYZX]^_WY[^]_WZZUTYT\U^TZYVRa\QWZWWaU`[][Scc`]UbVXW[UUWXRb[Z`SUYcTY^ZYWUXWYOU_\^d^bO\Ya_NRWYYX[XU]_bUQSPQR\`dUYSTY[^QZUR^WNXW^\_L]Z]YYZ^SSb\QTNYU^U[ZYV^XRXa\]_XRYR\^R[RZaW[^YW`^`[UQ_^Y]RZ^TUe_\VaU\g^QRXVQ]QWZWXb_Z_XZ_Y^VRX`[\\VUXX`^dQbT\Q\^P[bWV`W[Z\[U[bXYY\^YcaX]R`]][TO[a\SZa]U]bURZRS_^RTT\Q[TY\WX]f`^U\[\X[TQX[_ZXV[UaZTTUVZ_\\^T]ZScaSUU]ZYUVXX[XV^]Y\UfTXTZf_Y[X_Z]TZXPUUX`]WTX[WQVS`[W_[Mja_^XSZYUoY^bVXYa^VY[gV\^c[W\Q]Z[UXVZa^[[`ZY^VZU[bkagQ[^XTUd\VUWVVQW[[V]WW\VO^T[`]_]XU^UX]YW[dYX^[^]f\UQ`WRPTQYaSfRV\]\TWaY_XYT\[[gSOY_WX\_\X[YMV\\RU_RRQSV\WaZXZS[]^Y\gQXd[XUWW\[QVRTVWUS_Y`T^SdP]\XaXWbWUVV_TUZTZX\R^WYVh^\QZN[^aWSTQ^W\]SY`XY\^YUdV`WWUTXd\Z_[XXbVUM\UTT]^XVUZXRWXWQVZT_SYX_V]WW[WZdX_^STTXbXVU\]]X_^ZT[\[Q_cZ\XbUS_ZXYYXSXk^VbXa\VWYW\XTX[W[YS[]V\NZU]O\]`XSU`YX[\QgVZZXZcXXdYX^KdVV^U`W`RV]\YZY\RcP[O_TS`WZXTX_hZXZY[T[ZUX[TU^WY[[P]\ZZ\`TWSZ_`QXV]`[V`_Q[^abV\]h[XZXTV_]R^^T]X_cWVX^XWWlXV^]UU[_UU^`\Z`_TclcZa_\YY`Y\^WeZ]XhSYU[_[V^RZWVfVYVMSX]ZV^XUZ\UX\ZTY[UYVYYYY^ZXXa[S[hUX`YO\UXRW[X[Zg_^XW\[X][[PaZZY[[]Vd]a`\XL[Sg\T[OU_VUZ^`i[T\TUZ_YSVYYYeYP_\XQfXV`^VTPUYZZV\HZPRZcUV^RMWXX^[[XOZUUZ[RSZS]_\]a]b]WVVY[Z_STWRTTUX_TYRZQaaXea[`VT[bYYT[VTZU]^Y_eVSVbOQY_XTbV[bW\UTac[Wf]bUe_QYVWZZX[[^ZeRYVW\SRZW[X_]SWYSSYW\[RY][aZUWSV`SWZX_ST]WR^b`Xdac\_cVW_UZSZ[ZV_[TYZTU\V\hk[XYX_VdTcVM\ZR^WZN[gZXP]YXRU`]TJU\ZXg[]TaW[W]\QViQXSTKXTP[]WT][lZPZ]Yf^^aNPRVWZZ[YXX\`JXWR[WVVQ`RUgS^_`\O]NZY_WYYYVbV^V]`T^[UUYXZ\^TZjUVUhSV]V__`]WWd`ZgeXPZ[RWYU`VUSWPUSTS[VPVYQVa]XXaa_d]XY]Z[XXVdZR_`TVQUZUVVSVTN[TU]Y]Z^XXZ\d]]YZc\R]XWXYd\[aaaZSX`XYZZ]ZTZY[b^W]\X`VW\W]\[TSXeZSQUOW`Q\NYMZ\[[aV[R`X[``WQWX^QVQ[\S^QXQWWQ\YT]Va`\V]W[[Z]QZgVc[XZRUeZ`e`_UT]]TS_VaYOT\U^X_[X^YV^a\VWYdTO\\gZYX\Va[Ud\gX^V[Y\[ZN\UPYea\UMZTW````U]beURX_^[VTWY\`[[Pda`[V[Z^\R_bYS]ZZ[VPV_YS\[TQXUZY\`]Z[[b\[XVbWSN`YZZQX\_XZUU\X]ReaaSZ[^jWdTXTddgZV]U^Sd^W]^\_YZ^\UVVOQVe_VUUW[[X\da^YW]_MUQWc\_V^RXa`[VYTRX\`XZXdX[YR\RQXV^TYTX\XTXYZYY_VX^Y_WT\WRZRUgWXY[X][XY`[_\[\XV\\`VNW\cdV]ZZX_T_YYXOSYV[aZYV`Y\\YU[TZTZZfWSVZ_`Y[Y^XdZ]ccZlX\TSZZ[^QY\Y[TU[]YY[^XY^P\[ZVTYTS^Uc_U\_RV_ZVP^X^W_ZaWYV^S]]ZZXT\^VYb[V[YZ]SXSRZ[VZZ[][[dZQWZVYaYP\PWZ\V]UXeTc_TXRl_OeY_\XUbSVXTSZ\OWUVY[\QZ^S[]VQeQXWTVV^YY[[\]_TZXReTZZW^UaPWNYT\ONYVU^cUVZRcWSa^]a[YMTYVOW\YZWdSVU]SSWahaTX]^^[cTW__QV\RSWWTYYUZVS_Y[d\`W\Z_`W`Xc^ZW`W]^UeUTh]aTRa\UaTWiQ[b`_^ZU]V_SXiZYg]_SX^Y]VZ[YVTRX`T_UYiUXWaX[hSYThUX[Y[PV\dY]UVNQ_ncZR[VWaXTVPXVXYTXURXmYb]RXZTW[g[V]WVV]Z[U^U]\][W[X`SC^YZT^WX]^UZdZVZUTR[SZZZY[VbYS_[U]\X^\VZ^cZX^XZ[[Xdg\\]VZpbTa`cRUW\aWQaQWVSZ^N[O]Sc_aVR`Ukdb^Xe]hR`a[Q\YRVLO`WVUZ`^\WO]\R[[]YTbV]XYZP^[Xb_YZ__ZZ\_XOWX^XPdWS`SZa[d[_^VU^]_[MT[b^__^^\c\bfVWOWXZceWU^Ve`[g\ZV[Q[UW\W\ZXNT^bS]U_S]UX^bZZVSZb]PRW\a`X[^[Q[X[_XTUVd\Z\T^RXT^[VcXV]WVVZX\[\OYV\XVW\`a^[]S^W\SOTUd[[\T_^U^`ZZWRaXPT\^K\RYSQUXV[\[OWURZV[W[^]UUZZ^\X`TeZQ_ZXVbNZXXTWYUb^Y[P^VXQ_fY^\WWWeTW\ZXaP\TWXZ[Z\VT]RQSX^UXUZ]YZXaUW\VXgW[^TYTV^]_\PZ[VRVXSSX__b_YYXR]`ZdU^]VRW^XX\WNS^TVZZSP[XX]e`_V_[bUXVI_\W[\ZZ`WcYRX]T\[Z`_VXTX]Y[NW]VZZXa^X[Vba^[UQXQX[\\ZW]VV^ZYS_U^O_W]ZYY\ZSV_^ZgV`SQSXRUYL_X^\YZR^XXZWbXjQ^YcbX]c`T`bXX]Yc^VcU_[P]ZeS\XV]XNNWSWaRUQTU\Q^]YeXVT^[Z_XeTQY\XXdKXNV^RV[[ZWU[\bcYP^X_`T_U[^SYXIbYR]Yb^]WZT[`[^ZPUSVb]V_^`RebS[YX]STM\XVY\S[ZV`WReWPg_ba\VVWZ_`OSXT_k[UXZX\cXX^SWSjZbbXTaVR_TZW]_WZ^V^YOWiSUWQV[Q]g[`[^KUYSdaW[]QeX][[[_^R\TSV_WZVUXTSPZ^RL_S]faQW]TQUYp]U\YaXK`aV_b^W^YT^P[^^_e[US^OVYTWZX`[YZXTVQT]UcXXVXTUSXZTTWXWgT^[eZTYWcmT_`TYZS\WX_Qe\Wa_\UW^VZRRSSWiTS\b_L[dXU[TVY\acUVSU`hUYSJZgU^VVTKU]fVVZTVW_NT\aXPWjaTVaQX\PWQZU]XWVjf]X\\WUiU]c[R[S]XTURZV\aXS[WWZV[aYY]WTZU]\VXU[\\SUTVS[WXYVgT_\d[WZ]e_^aX[Ya^VWPUb[[^][Sa][UWV^]R^d^]aVUX[TW[cSW[WQXOVdVY\[\\VW[Q`XZ[VW]`[XY]T\ZYYTX_XVWX[e_UU\\V^U^ZXNXUS`W\VWR]U^cR]XZSXQXWWVb_[YWi_XZ\YT]RW^W\VXXYSVU]qW[b^VVWZd`PVWYZYVaZZ[^T_Zd\^M`YUVVXSX^[Z\c_V_RX[X]TT\T`Z^XT_Xg]Y_WZnQPV[QYXZaSV]_ZXZjT[X]O[Z]ZRX[XXYYWYXUZYVWWZUZPYYWT[[S\XSbWYV^Xd][ZZVTPYV[c^PUb[S[[PXVa[T\RV[OT\TXYZR`RUXYZXUX][^R\OYVYcUSTVWTY[_XR]\YZUaVVWY`W]^[]VbVXSWfb\WjSTY[]WUVZ[e\VNZkhaR`RWZaP`ZR`QSYdYSSV\\_]`VcYZ\V[[TZZ][^RVaUXX^WaY\[WX\bXY\PYQ_NXb]\WTV^aWSVVUW_W_WXWY^^[YYb]]^`[WRVWYUeX^]]_YTT\ZX]Y\[[SX_]XZ_a]WW`\S_TZ\eZT[WW[^]^UZ[^^ZWZc_TZVZZVVYRdZW`Y`SVoTaXWaYT[U`U_SWSVTcUWX[`V\[ZMd[\PVNY\_QbRUWUWXb^W\XY[WdNR`WU\[UZWdYYc]`aR\YVb\_WX[iW]VZ[U\Y]RWSZY`VRWVNVbWgc]RZX`__]\WZVX[YkV\XRba_[^NMYZ[`\\`S``dV^ZQ]O[VSRZVXTSWOXmY[\g_YZ`SVNS^\_^T]Y\PUUiVY[XX[STWWX[UUV`XQgaT]\^VXX_Yd`V_\fUW\M_VPSYZZY\]Y[ZW`SPaOcSV^]TVWhT]^[T^WVXZSYV`XYS]K[X[_aVUcP\ZfOSQP]TaVP_VYSY\WUS]]eQT]W[YX]`XVi^TchYYSY\[`_\\I[]ZQT`WW]RaRa_XWU\MS[XY[]]ZR]XMYUX[ZcaWSVZN]X[W\]WWYVVXLRUO_ZaS^ZV`XXiWU\PU_XY[bWU__^`ZTYSPXV\\UOXU`bRSXW\U_Y_^XYYW`[V^W^_P^[[[]V^ZcYYVVd^_YV[^Ya\SQZ[R[T^R^YS]R`_[U_\Xd^FUQcPT_\ST[YVaWYUURZWW_bVX_Y_P[Zc[ZZaP\^[Z^[Za[VVZc\U[XbT[]ZXY[QXZa^ZYTY_VZT^OYQ^Y\\T_R^PXTWSWZS_McSaWQS`]U[RTY[c]QTVWPYZ\S[TG\bS^TcUa_hZVX]b^gQS_VaMbWXUWeXQXOaWW]\XZ^YYO`dS[\YUYSXZUW[W\X\[NVcTS\VNhZZ^WWaXRV_`UY^XQWgVU^Y^^TRdYW\\Z_]UfT[Zbc^kSXWWXUU[XUcR]ZcXYWSYZ\aYYXh]lSS\WZ[\^X[WQXWLRPT`ZYQ^WXX`]\WTaX^QS`YU\ZeWZUZY]`YN`W\ZRY[bWYYTTVUTZYYS]XT`bZVVq[`_VWXTbbd_YYOR[UOXWVQfgUbT_NbUZYRVVdUY[XVQURVUS_RZT\]YTaY_S^\^ls^ZV]Yd[V^QQO[[XQQYSUX_W]YXj`_oc[O]UgRT\_UXU\dVT\S[]aYZTZUWWV[S_\`XZYSPSabT\R]]eXaYZdWQXaWVR^]XYY\XRZbVV`cM\`TZ`ZYaU_]QX[[U^WS[Z\X^Q]W\\Z`T]\NYZ\[^Tcfe^^^UYTQRUUV]ja^U[aVV`VXSTXW[TcQ\YSSfT]cbWaV`_a[Y\[O[VUYS^XZZ][[W\XOO[`VTTXYW`ZXU_OZRZQ^WT[X[cXMRX\]WQZc]XVXXSV\\X]eec]gh[YUZ]]X`YV[UYcThb\ZX[^U^ZW^X[\U]X_RY\`^M[SPZWbXaZ[V]U_[T\YdVZ[TVX]Z[`UW[ZeZP]\WVN[WXQ\Z]Yrcc[_T_`S^b\TXWVRa^_\Z[gXaScRXVVZTTYe[R[WW^\^OQZURY\[iW[SZ\Q[d[YSZrNMVSWb`QUY\T^eTVU]N]\PPYURVXX]SZYT\TOUP^Zh\WUTX_VWWZU][Y_aWgUW\cYVY`OY^gXWYWV][f_UY\S[P^WhVX_XaSj_aeRT]]]L^^ZT_[bVecW\W]ZZ`YVT[QVQXYT[Wg\QSYYa\S]c]Z^UZPVWU\LVU]\\PYSRVVYYSe^S[UY]WVWZW_\bYWi\WT]\_YUdVaWTX\[ZcXR_\W[[\^bR`]b`^Q`bUY^PdVQ]U^ZU[c`SUV`\QU[S_d^UW\WX[UJhYaS_b\WVWer^XTV_VUOcccXUYZ]WUQSbWVQ\\Z^a[XTTNN[dVXV_`bVQPYQY\P]_XeUWX`[[`]Z_RjeW\b[WhQVS[ZXZTXX\VbeQ^SM]Z_c`^XgTa`UU_VY\^gfSPfZ]XUUV]TYbmaUXRYSU[bRWXVdSbRXXTYW]TXVWbT`VW[Ya]Y\_U\TVPaMT^XZ\eYe`[`]W[dYZVMa[ZWX`TiX`Q_f^MQ_VcUN_ZOZ][[QVeXW[TVabPQXaXVTaUWX_SOXaT]Q]_[SY\SYjdUObdUeMVWWXVZRYeSNX]c\]T`R\[`UZa[eUc_XVVSa_[RV]TUh\W[XZV]U\`TQXXajW[\]eW`aXYV^QZXcP\]YYWQX^_RY^ZVRY[]UUXWK_UYUTVQU^[_UYS[a\VP\Z]a_][UX[a\S^WTXSS`Zfdd^KbQf^U]^T\WT^ZXU^XVZgRTSR]Q\W^[]YiZ[^WWTX[YUcbT_HX]^_aUVQhVW]fY[ST]a`[Y\V^^WVZZ[ZTRQRYYYY`Z^_e^Xa^ZURZ[SSSWSWdW^X]cWc[ZZVYV`ZVRV`YTRQdZ[ZYVafSWb][]VZX[^Yb`a[WaVX[SdUYUVbSXi[fOW[XYYZ[UaUWO_Y\c_NWZaZVZUZWPRZ\P_T`\TTZR_W[T\YkZ]\ZTT^W`W[_]adZaib\[WV`SWaTYVPSc[R_Z^aVZa`ZTUfXYbZS]Y]]ZRcaWTcXS\`^VXWV\cTeI]Y_ZS\ZT\ZN\ZNUW^USgVaYPZ[YQUY\ZTbXVYUWX]g\Yc[ZWLUVQZ\ZWW[RZVY\ZZ^aXf_`S`_XUVXXUdWTY^[ZaVegaTcRib\^NXTU^TQU]N]\`RLY[YOLZ^ZYU\``_VcZd\[Y_QS_JW]QTkSa\ZY`RXRZ_UZZTWZLj[MY[VXdSW[UbTZQ_[VXe`OS]gbYZ[[Rd[Y_[XU\ZN\^f\ZUW]SU^ZYc^VY]VaWQ_LV[[S]eV_VUZ\ZUVQ[h\bMURT\WhW`^`UVRWTLd^ZVYZTV`QUZbeXWaeaYVWa]][OQ\TXV^Z\[aWRQ^VY]X^UW[Y_QaZ__UO^U[YZUPQXZU]W]`_\PaYKXYVUV\]]X[eaSXWWUVXYYSX\NX]R_Vca^X[[RX]i\`f^iWUcV_[XIWb\YgY[_dVKe\QQSUX`RTP_[RXKZ]R_\VW]VWYYVRN[Z^U\WX\R][]UTSU_a[^YPYU_T`W^`bPaO\WX^]\_\]_LeYWYSVRUSYaSUUS]PZV[b[ZeW^N[a_cWYbYPX\^SoW^]^SSf[UV\XZ]WZ\RZXUa`YZUbcUMXTXSLXSZTZ]RT[VVXTYUYVY\bT\^W\YX[^WYbYT_`aYX_b]VVQUg\T[_TVW^YhWkZS\`[VOZSUMX[[[\UWXX^ZVSVYVU^cUZ\ZX`^Z[YSVZS^YV\SWS[LW_WV`Xb_bQ_QXUY\[S[Q\XbW[WaVaWZ\Ya\RgVWXXr[TZ^dXX^VRS_aTUZV]R\X[Y_YVWN^V]UW[]ZUYX]URX]TQYQ_c`\WST^[[[NSTP_YZ[`YbY\Q^VXZZgTXZ]\^XOR[[\STT__XZZ\aX_VS^XfSP`[MTWW`[]UQUP^ada`[ZXXX[XX^X`RVcZ[\UWdWW]VX^VRTX`^VS^ZS[ZYSZVZUV]cZXZSUXWZ[USZWXW[S\YT[]VdV^cXZ`dWZW[`XWZU[_VX`Z`YZY]QSYS\\T]^[d`\dTZX[SWQTWXV\V[_]UbWS^]XRe[Y[WQ]YaTM^XYXO[`]ZSUSVVYUTR]]^QVXVX[Wd`Y[V^_^Vd`VXPXU`X^XWUXbXWYXX_^V\ZcRa`Z`W_]UV`[\VUYWY\^Rd]WV^X\RU[\][R_Sc^RWTc`ZRYYY]VTS_Yc]T_TSSYW^\W\fZ[bVUVc\PRXT]_^QTUOXSZS]eWQ[NSX\[U\]Y]NeP[_`OWdcZ[QZ`VYW]\SW]]\Y^R[YSY\SYWW]XRUTTQ\aQQ[]^TWSWTSVgeVaV^^bPYU[UZ]cWYU\]TWW]aWRbYWTUaN^XU\`cbX]XT]aY\YZWYV\[WOQRVXZ^Ua[YVX[]Ub`^[^f^\TYVR`\ZcYYVXY_YYZ]`]SWVY[X[SjgS\YVTWUT\SSQeZUXYZW_[^`a[bUZV\X_daWSXV^_eU]aXW__bR[WUVWY^fRf]P_SaR\Z_ZTW[W^SdXV]__cb_NaXXW[OVbXaYbYXQZ\Y\\Vk\UXYZWTUUd]bXPTZWXOj]ZUYXjZY^[ZXZWZQ\[[RYSb^]b_]\\W\\VSUY]Q`]^UZ_]Q\T`ZZ[\[S[W\^U_X[bXWV^YZY_YTW_ZTWY[\[X\ZWTXRWUVa]VcV\WY^\U\XXRXT`WmWY\VVWVTUZ_]WUTVZUPUW\g`UWSYW_\cWQ[UaSUR]c^\[cX]`]W[`VS[]WSbW[^[\VWWVWfYbWRWU`RXZ\]PbYV]eYVYO[U_[[U\Wj^^bZUPXa_V^Wa^[aT_WZReVV]Z_WWWT^X]bZUWVcY]_VVaPZ]cZTSNY]TUY\Z[RUQY_cZcZ[\V[SOWWUPQYZS[YUYQ\Y_Ra[]RV[Y[]Wd[SVX]US\W\^VaYVd[WVZ`]UmZT]YVQ[`bedXXSPV`^V_XTXY\U[[`YYW^VWT\`V_WjaS]ZTVZ[VbV]SZSV^TS\X]T^TNV[UT]WYa_ZcaZ_RYTYaTaT`UP[V\`X[cW`YTYU\[[ZRPVXOWS]UXZPRRQYTUPXXX_YYTXQVZT`]]]Z[ZMSUUZT[R]ZV_`__YSZeXZWR^RXXVG]WZTUTYZUf\V\RTVYVaVTa\R\RP^VXVWaS[WXX_`PRI[]S[PVXS^dZ^X]V\]X]aWda_[VSQ[aZb_`QSXWWY[TW^^YWYQ`TTRSTRVU\TYWWP`cPZhR[XNVW`[[Y\VYURfW\ZK_[gWaS_VY]YVY_Y`X_Y[ZT`U]URX]\XXYVYTNWIM^YZg[U^_ZZ]OU_MSXVa^VU^V]_d[KYW\[NKWO[R^QUYTUSW]VS]KTYaMVLRP_j_KS^Vbd]R]TXTS[UZ^WYXZVVUW]_XTY^QZT[PVVUW[PT\gWSY_T_TU_VVP^YVZdXW]\WZW_aTQ[VUXeV\YPUY\XV`VS[Z_PW[XU\[]Y]UMZYSb\SY_`[VXSZURP`PUb[T^USYY[ZYTZY__X]c][`RV]NY[ZYVbZ`[V[b\]`_UX\YZXXMXSQOZ[eZ\W\SV\bXX^[d_abW[SYTOXTWYXZT[X]VQZZZRUcZaXR`VX^SVZU]W]WbQYXXK[ZN^PW`Wd[Y[NX`WRePc\SRR\]^ROajTVgbZSVQ[QQcbSW]VXadVVPW[[SUY\YZ]]^WYSfW_VZZWVQVV\Y`]hLWVW\YXVXUU`W_[QYRUc[ZYPRZZWXQ\]OdZ^TaWaXUfX\^XR^SYVRY^c[N_SXY[XWWPTNZ\V`Y\ZUY]a\UWbcV]U\XWUURO]TcZUaVcW^P[ScSfa]^^UZZa`[SSUZQXR_SV`\[NV[QWUZZRa]VXcVU]^NVZZY_TbXSS[U]NRZY_\Z]aPa`YWV]Y_XX_[\\gWbTZRUV]bhUW^TWYU_PWTX^V[WPJTUTWVW`_W_WWZU\Z]YTVX]ZXYV``RT_XYYX[\W]S[aRZVYQcZU^TYYb`X`^WW[jZ\]ZWZ[UXQZY`MNSa_ZOWYY]`b[XW`ZT\YZb[YYS`_YX_XSRUSVT]R\i[Q^gb_XSUaZQ_\__SaSUd\^TV_TSS_`W_[[S]YT]ZZWh^gUWZdbaX^Z\VcOU]XT\OTPVYX[U[WXQTZ\][V][\cVRZ[UYVYST[ZXXUZf]UVR\XVV_]ZRWU[aR_\WTZV_X__l^TbR\T`WOYYVTYYWL^ZgW_ZSbXSXT`XY`\]ZRXbPWYY^\Z`WRS\\[cUTPZ[TZS^XVUWYXZUQWUbdZTX[WaPUVSV^UQdVaN[UbaVa[Y]iY][\ZVTeWWV]WSV^Q\`TO[_XOSdXVeU\Z\[YUQRXVY\TT\]QjY]YaQiIPVWZ_\gX]XYb\RU[UNXPZZ`YO_VOS_VU^\YcZdYXW\OY[WWT^hSa[TXW]WYaVSQcbR]ZYV_TfZSYc[YSZRYZdX]_RY[^\V]WgXU[VZRZbhPT`_]WXR`Y\YVYYTW[YS^]\WX[XU^ZQSWT]WVaVRV[VbN]R[XXYWXY__Z\Y^Q[ZWZaVXTK[Zc[ZZX]LXT_cVX\RPQeZSQYSNbWV_S`\V]cUXVXiSYZ[[VU\O^[\TTaVbXUdVW[`^_SWZ\[dX^^_Z^\_TNeYW^[VX^O_^XRQX^]\VV\[YeXO_P\[g^`_V\TVVZS[c]i\X\eXXZRSW\_V_QQX\ZWXUWU]X\RVV\[YZZVZVVXXZgV\TZYVWY]PU^d[\WX`WRRUZ`O`\X^\]VWhUUZcWfdX[]]cWTRbZdQXkfZgSSW]UPS\[_VR^P^\W\bWfYXbUaX\Y^`Y_UcJXSXX^X_W\X]W\e\PVW^XW`\XQ[[^R_T]\YVW_VWUUZW_VS[\UPY]VVU[YVXWWZ[P\XZ_[^^VaaX^WZ_VhR\TSZYSaV[QZ_X]\_QXSVTX``OYW[[b_WUSZXXO^X`^^]]a]X_YaVT^T[aWY[Z[XZWWWZ\Y\d\e\_U_VW\\TYaX]]YPXZV^`ZZ\XZY]`Ze_SWZT[]SYa[b_VY^T\[\[WZ^hTYU``cXTS]^Ta[bXVUZ`\`XX]XWYPWTacVa`bX\R[Y^^QQ]VWW\`e\`TVUUYSa\V_YY_T^W_]bRYYaYTXkUV]VaXYcUVTRYYYZd^Y[VUbVW[M_^^^V[YZX[_UT^XgZ_[_XdT]VUU^UTYZZ^[T^^`WXS`OaYZWN[VW[T`YRYW_[TVSiWgXNX\cVUg]SUd^YVSXXZUWYWWf^[YW]T`ZTX]TPY\XV\X_Tk`^Ue\XVVS]R_W[^YUZX]URTPX[RNfS\S[USTXH[Y]\ZZ\OYUY]dXUa_\X`aV^RS\WYd`bMYWOR^XURTaQfZ`YVTVS]^QVcVP]^gNZTWU_e]PaY_\_T\YXaW_V]`eZPhSZYZXc\XiW^UXXdS\WpT]g^W\WbdY`c\\gfX]dcO_WYeY_VUWab]cXV]cVV^\YUb[YbNa]WWZbYh^VYSZ\\ZS]V\OWW\VST]QV][ZZY\^WYW[]X]aRVV^SZURX[S]__]\SXWaS\aX\U[Y_R\PT`[Z]^fURcYT\U``]WNYRZWWUXY[]XWaYYSWSc\]eYZ]TR[T^]UW[\WYRVTTZbVTV^dW]XVX\XU^eSW[WXW[XNVd[R]f^[[Y\T]`aWZee[V^_TeWShTgZUU`dY[V^T^aUbTTX^SRZZcO^Yc\RSWXVa_UY[aQYY[UVTT\bW]UUU[YXT[Vc^[^SZVYbW``aac_U]\\UVY`X^XeXTYYU\^cZ\eQX[SYVVRYYS]WYZYd]ZY[\VdO]\[R\cT\_Xc]YZ\VP_RZ]TQWORQ[\WZT]Z_\Xc`XXX\\ZYX[\Y[USaXajWV_X]eWOg_UTTQ[NW]h^^PZL^VUWIOPZR\Z[[g^dhOY]\[ZVScJV\YXS[[Q^WQXU`Ub]XV_ZORVW[\OXWacZV\OVZXX\ZVRW_\TUa[YYQ[QYS`\Z[WdSV]XbURW^SYgVPYYNYZXUSXVkc][VYdST[PWSQRQU[XUWVVZ\QaYWT\ZWS\Oh[W\XYPcRfUeVU[USTYPZYdQaUWTXYWQUdWWUWUUZRZUZYZ^^\Xg`\\iSWZYcVX\\\[Nc]U[[UP[Z[Y]U_VbYW^V\YZS`WkT^T]U\UR[Zg[ZQ]RaZXY[d]Vb_Z[Z[]XZ]PWa`__VTVYbVXO[[Va]VYRWTQX]\V^XVRa[TX\Z^d_U]Y_V^P_V][`WXV\RTV\V_gVU^VSXWZVV[XVZW^YX^TZ\^SW`XOVO^fYU\VOPY^SXd\TW\aV]aSYSVVZ\X\Z^TbXM{PXVSUTY^X][^ZVSTY]Vd`SS`ZR\gZYV[Z_\ObZYbW[UX]Ph\_Y`_XYiRY[[\STb\QZh^QY]QNWYWb[[l]RXZ\ZZ[Zc^[PNbRbTXc\_TTPPVcRRV\^aP`QaWYbXQ`VSmWYfUPR\]bZS\T`J\Q]cdU`]WQY`WZ`\QSW\`VaUUa\ZROSYQV`\TVeK^_Y]ZWWc[QVR[VZTNTTU\VUc\RTZZY`VOZg[]Z\ZfbYW`\dYfVWP^Ue[eYYRZX[XVP^^[^_T\_]^VYSYVTbZZUXVZ[]`UTUaUU][ZZR`T[[T^M\ZSRWW\VTS[UXUZZ\M_VZUO[T[QaX[V^SZbYZVZWm]UWaSWLV]X\YX]ZXT[]ZX]Z\^OQW^IO]aT^^YUUXcXP[cYPcSZXNXQ^UVYlWYNOQY_VRgR[WV\d^TW\i^WSVd][VXc_W\\\]ZaTUWRT][dUWVZYXaW[XZVYUMTZYV]^^X_[Z\_YeV[ZZT]X`^W[VcUUTSMQSTYSTY\VYSbgW\^YYXT^RS]T\]\YS[SYaWYfTd_ZSUU\aVX_Y\Va[Y^Y]\]YVVV[]VXWY\]][VSTP^V[OUZUUZZ\]WUQY^WYQ[ZT\[]ZY^XUY`WZWZS^Z^`\XUU]UYX]]e\]^[[Q[T^WaRd[WUWX]WW\]Z[aTVRYe]`Z[[Y`^XW[S[_[WZ]d_ZZ]YRZYYYUTXS\T[YX[Z]UQXWQ\`VPVXVYY`WPYXYYWX\WWYXWaVb\VYa`VXVO^T\ZUZS]c^X`YSZWR[`[Ze[\[\PPPW\\XVR]RPZVb]UP^^XYZTZaZ^TY\[UU`XZ`W_RV^WVV]VZ]a_[XSY\X[YVaY\WZYUQVbV\`YSXW^[W[adY[QhVRhSY[TW]RTXTcVZXPXZ_Yf\WXVZR_RX^Vhc[`]KgPX_WZPZU\[XZXiZXWVU_TVa[YSPWU^V_YTYdV^XQY_\]NWTY][UV[hWZYRRWVWWXZUWV\[[R[_WUY]fUcZYYRZ\RUm`[_^V\WXZ\ZaW[^Rj\\RWc`TWTW_V\^Y\^__YYUU^Td^^WZRXVZeVWT`W[Z^^Y_^XWV[]]Q\XS_eYRXX^aYZUUR]dbQaV]W^VY`dZVWZ[YNQ_VVW\`Q_SU]edWTWZT]U[MXYYW]USVX[^U__QQZUeTYYNjR[a`X\[cS]YWYZYl`W_ag\_QZPW[PS^WZUSZcZXUVcTUKW[a^VXT\]YUbWgXV[[WXSUb\XXXWZW_b`]U[WZcXWZ`^ZNXY`TXObO[YW^T][fXW]Z]P\[VQTYYZUT^ZXZ^lPWUZ_ZTX]RZWZVWW\]\[VO^VfYVYeZ^YSUfS[Q\\]V]bVY_Y]Y_bWaac`\ST\XWZZWTW]Sk^\[Z`_TVX[SXaZb`X]^`V]eZWOX^ZVTVWVZY_\Zf[TR[WZ^\[[Y]a_WZ]TWR[X_WYTXWZW\Wb^^[WWY_PT[[\^WZ[VZacZVRR]cZXZ\_]\`Y^X\`YX]Y]TbUXZaZSU^WSXUP\^YT][`]^_Y\VWY[VVU[cbW\]YW\_dSb[[[]YV`\UZY[SVQSPVVYe]VaQU\UM\WZZc]]YY]SnY_TOUW[U\[VZTdVW^`[^b^[]VaVTWXOY]\WaVZWg^UYSTVSP^\bXPeWX^^\dZVVUaX_\dXZZ]]QWS\TUcOX[SVRQVXWd\`\YMZ`^WahZS[UWZVTUOWPY\YT]RZVRVWVgXWfZb^Y\R[WV]cW\QYaXU]c\U]gY]TVSb]T\W[YWV_VVXPR\\O[^`SY_QaVV^PT`^\_`YUSRZVWT`SZXacW\YXY`YZUTZak`eXa`W`dW``QRQbVO]XbZPVSOSX\ZZP\PUVZZTTZeYZ_P_ZbVNWXZK__W\`Y^ShTWPOQ\Y`XWXWUaUZe[XRRYZ_R`V[RbW^V[VPU[\XWOcUYPYZT_SUHbYXZUYXXTa[T^VYa_R[^T]ScUYZZUUiZ^QUTYaWVYY[[PW_]SYfT^WXa\UUYUTTWaWUP^YTS`XTa\ZRWWQWWX_\`Z[`a]XTMbaVNW`\]ZW\RW_X[SSSc\WQeT]`aRVWXWa[\\^Y[TiW\]V]R\YY_]]XT]\c^aU`W_[UVW]X[ZNTYSV]Z\[\YR[ZZZRg_S^RO[UXRa_]WYXRW^b]da[V[XVUcSQYT\]P[S]_V^Z]Z[V_WYYX_^dRQZ]\QdVPW]_Z[^S]^UVXYUZYZ\\]L\Sd[V`f\]V^US^RdUT\R_g^[XQ^c^ZUZ`ZXXV]eU]Q]ZTR^`Y[_VQkTPbT]]X`Y\UWdQ\PacVYa`VbZR[^[[WV_TbY\WLPOOY^YQaZT_^QYfYYcXOV]SXPTg^[^fVWaj^\dVU^Xf]VTUbZ__dU[\TYQU_bd\WY[YVSYM]X^aWX_UhWU_\W[`SVX^Z\ZNaXUWcdZQNX\[X\X_[XMZVXYX[^lZVRVZd`[^WWSYUOZ\XZVR]WZZ\UTWZT^VW[ZVQ[VTVRZ\O\_XOZ`X\cOVVU^\Z[XSWVSY\`[SQUgZ\PS[Q_QU_^VbSYW^`[aV\]W\\\R\WTU\b`]c[LTa_U`SJUTW\WYV`W]UQWY_U[\Tb_QOZZ\_aUY^^VUVWQ[T\ca\VUYTXYZ^T\SVSbUcW[VgTTSXT\[VTWXR_ZobVaVVZURZWSWSV`^WR[jURVT_aTY_TU_WWdZbSRZXW\VXXP^Y^[U\WYQ[lRSUX[SXU]YRX]`X]SYd[_\YV[^Ya[QbTVWaPTWNRX[^ZhVXU`V^W[\ZPXSUa\SY[W`^\]VV[^[\U`VWRaWUW^X[U]^dRgX\jUXZYYSXXZPT[R]ZZ`_WRZWbS][e^cXZZVaSWTQU__RY^]VZUYQX]^XY\XP^XWQ^X`W[XSU[ZXT[a]`ZZjVT[UXS^UX[W_WUWYS\USS_ObZUZZSPUV\S[dXW]RV\ZVcZTV\_UZ\WXZTX[\X`XZ[X[ZS\^SXbf\UU`YZ^Y`][[\\Y[M\T[ZTj\YSYXTW`^S_g[V]VK]dWXRUV]cYUZWZR_^W\XWZWa[\W[TOXXcVXTR[N[Y[[RX[W[T]UR^PWUe]Y^[b\VbV]j\cYUU^LaSaWURYWYZaWRb]UU]dW\TU_URSYZT[WUYT\WYU\^`]^W\UWSW[]bXTY^XZXQKVVTZ[X]_U_[X][QX\UV`WYWX[cY`W^[^]XYXcUWWeZ^[XXabUXdWWVVWOVWQfVUdY]XgQ[aWfZ]`[[TYf\XK]]YacS\SPY]ZV\S_\XYOMQZZWd_cQaRaORTNcZXV^_RWXWlZRXaXTRaUXOTZW\T[TT_R`[ONXX[aV]gVW^RVYVW[YX^[YTaWYW_e]RXaO\[\Y[aX\\U_S[^ZUYU_WUVX]OcSVVX`_O[ZYZfZ[b`a[cVXagV\^ZT\c[ZZUX\S[VXZdV]XTWIbZ[X\aX\`UKVYY\bVT[V[iYRNXZ]]^f[P`_QT^ZOYXXcVMNYSQadbT[XSdVaXY]SX[[WcZ^]V[OQ[`b]`^OX]R[WOQ^^hOUY`Ta\\VNUPV\fa_acYVQ_P\_UUN_[`V[XU\`ZO^X^XWSUXUXY`_WZXWRaSZ`U[UQ][^][S]T_YU_ROQU^WdUYaUXWVWNVTW^SYXZ]c[gV[XVWSaZ[T^ZU^Wd^RhX[]\Z\^]YXUYXfXT_ZSYXNTWYR`[bZZSWc^^OeWV\XeZY_[SS[Y]ZReRZTZ_UV[]ZQe]VPa]\YSb\Y\_Xa\UW]VZfYRWV\XW[aYURZYSZV\aZ`WVXabd]XQ]ZVXU]^SOR`[^[\Q\`^WS^VYaVV^SZW`QZcW[TY^\PV_R_YW]`UVaYW\WYc]NScXKRT`XN]^R]d__Y\S]UW[UbXeZZcYY[`aURYcZO]PWb]O[XZVY^YYZ[Z[UYWWa[WUXWTS`\dYTaXdZYWXU\\dZRWVVe\XaYW^^VR]W^YVV[U\W[Y\WR]cW^[^UYRZX\dY[VZUV][OXeJaW\O^SVVQ`\^RVZZT__^\TTW^]Z][]e^bV^a]Xd_ZVVWU[YZ\V`\W][Wb[Yl]fU]f][_VXb[UbT[T\ZgU[\\WYWWWPZZ]aYZV][WYTYZZUV]TY[T]_[S\[YVTePZ^R\VXXe[\W\[d]]Z]KX]URSS_^c\\U`V\XY][Z^P[\[aYTY\d\[_\Q]ZU_U^Vc\\YT^WZ[Z[X\]X]T]Z[\YSVbU[W[Za\T\W]^SW_edUWUPW\aWTaZ]P]TY^VYfOYU][^VWZY[SaUR_Y[RY`[ScV\VV_SY^[]T[aXZ]aX_RdUYhU\b][PV\ZYZXRVRfRXXYU[cPVXWXZ_Yb^iT\YUY\VVZ]PYUUYWZ^[]\^SYQLW^[YV_UYb_bPWWZWVZ[\\b]`QZX[]]]TUXXR\^\VaW[\`]ZWZUV`\YY[Lb[IZQTVRV[T_X_W]UVY\ZZV_V]TTY]VMVZUa]Y[VYQ[YVYXPXfYU]cO][SZUXN[TQ`[VWRbU^ZZSWIRW[^UR[QURZZ_]Q^_W`_^RMfPRWaSVU`]V[d`]ZXNZPTQXZZ]Y\YZ_\Y_^Ua`T`_Z]Y[c^XUbfU\\TQc`aXVW]]V_\YWV[\b[\R\YUYTYZRcVUc^VZ_[bYXQaWfWTZ\aYZX[XTZV]W`_YYS`RT_`\_Y[X`U]TNWWYY[VQTfUY\[WYVbZVSX\\`[Ue\bVV\XVP\SU]QU[Lc]_ZVZWcfQ]_VZZUWXRe_Z]dRfZX[^Q\Z\UR`RZ[YTTXPX]`aRRVVSQWgNc^^ZSOPTdVWVUYdSRSQXVWR[W]TYWVWX`Q^d\Zb[^ZXUaV[Z`WWY\Yd\\UX[XWd[YU^LP^^V]`_X^SXLY[TcWW_^^\XXZaaUXSeYXPObVPZhSVVUTZYOVPUd_Z\]`Q]aSVVfYSYZXZh`^Y\d`]]PZZX\U]\ZWaWQ`TMWX\aU[Ua^]nST[ZSY_VY]Q[ZZTaWYRRYY[UWZ]W]WZV`TZTXZSf`X\R_SP]O_VVZ^XT]]VSTb^aZY][[WVTYQRWSc^YTUX\^\[^[YZT\gV`UZgXZYOU^U^NI^a`Z]cVcWcY\V^\Lb_VVLRPT[Y^TVY\W]W_U_]SW`Zc\c^PSVY[_[YW_bUZ^`U^TQSS]i\T\ZT\_e`WW`XeVV]VSXZR`jVTY\\\Yg]WV_\cR^VY_bX^[S`SLXVdVUbR\XU`]XSa[^]cTUQd\YYO[_UX_^`Xc\Y]UQRVRmQX]]Z_QUp`ZWWYVVUXaUZRTW\UUYZ\TXQXYaeUWdWcYRV^bZYYVSbX`X_RWXWXUZZVZ^_X[TW]V__PRV`^aXbXU[Z[\ZWVVahZP[WSUa]Z\^\ZXXa_^Y_acZQg\S]W`_T[RX[SWX^XY[_]SYTd]XZha^ZY`YN[TQ^TT[VXS_YP[WWRXXTX^X^`TdSW\\dUZ\YR\YNZ^[S]ZSX\ccj_T\ZW]]ZWZ]e`OTTZYZ\[R[^U\N[]\Y_^SZ_NR\YTWf^UV^\T[Yg^aVY_VKSMYYYblb]Wka_\[UUcWXUZU[W_[SU`TZY^ZZUS]XY_UXYX^^W_Z_VWU[TZh^RS`fQ\V^YVS]j[]fZ^QR]^^QVc]]\^U\T`Y\TPXgT]VS\ZWhc\S]PV\^V[_PVd^VYc^WRh\NTYZd^[]]ZS\]_dZ]VXWYUZX]Z\V\XVNZ\VR[aV`V\U_OX^YbVPY[YK_S[c\Y_YibX[UWYXZXR[VUa]\SZYX_]YOWT[]bOUXcVTXQYjSXRXgZZUcW`UWX[ZWVebR]bT_W]]][ZT\TVSX_WQ\\TR\\W[VY_WXV`bUTMXZ`V_]aeYMa\gaf^\R_gTRQ\^TXVXWSZT^MdWWOZZYVab^[PNcU[TV]^T\Web`X\WUSPXNTUXXZPZakaZZWUfXXUVVYfXVWTbZZ^IW\T_RRWcS[RW[^[ZS[U\YcWW]\[W_\_YZTO[MVYX\TSZYSXZ\aOU\T]WU[W`[PZVTWXYUTciY]ZZ^VeZTgX^[VVZ\VXZZRTPZ]XS_XTXT^c]X]ZV^\[WjXZRT\`Y[V[XP]R_ae[VfbYX`\iWZ_Q[ZTVWVZQ`]TYPbUaZNTXY``[]S[T[Y[WY`_gZOUTVU`a_`_]T\dZ[cYYS\VW[UZ[VXaW[X]Y\[W\^U]RWZ[\X[W[XVRTR`VU`ZUXRYaWZXXbWY_cXVd\^`\YbWV\`WUYV^R^SSWUTY\T`VR^V\]]V^\SXYbUXa]]RVZdXea_[TY\V^XQ^\^^`\`ZYQY\TZ_OZaXXdVaSXeUYa`WVYSXcVXVSX\Y^acU`XXN]UR`_YT][XY]]V`UV[Y^\W[^YXQ\OY_\V\Y\\TaZZYS^d\YZZRRSQXZeYSPYZU^YSV^XV\YYVVPUS_^`]ZXdZ\Zcg^]X]ZUWYPTVZTR^^]ePaV^eUU^Wa\V[YPW[`ZVYYVZR[]h\VbZUU^XYTY`\]ZZRZUZ[T_WTaW[USZ[aP[W[Z`][]Ya\WZeUZaZ]]W]^O[YXVY[T[^^`RWSVU_a^_[[YYY\XV\^WXU\V[]X[dQTVV]]dYP^`VZWb[V[[SYS^V[b]VY]TY^TQ[TYZ\bYaV_TYaZ`Z[V`WRSb[Z^V[a\SU]ZVTbX\b[YXaUVUV[[[V\[X_V_WQRU__ST_XX_b_^W\^TSXU_^\[`Q\VY[_\b\[Zd\ZUWUWZU]XYW]U\XZSUUVUQWa^ZVZeZVgXTWI_VVU\^SZXUZX^SV\KX]VYNW]SZUT\UWZV^cUW^cZ\VT[]Z\R[a^V[V[\R[UZeZ`VdYY\[[ZaUVVUVZ[Q[T[_T_Yd_]ZXXh]^[`XY[`YW^X]SXgYTSZ_ZZW[^WYVXZ\T]YYX[\XUUVXPT]`WRXSKcYUPdP]V^\c]]Y^[^Y\`ZYYWY]QUVSa]aY[^]WgSO`eYYZa[[]]YeYTZP\[QY_SWUcYa\WZ^W[_][e[W[_ZVSX^TY_[U[U[aQZR_TR_`\XbXZYRX[R^[R[XUZZ]V]b[UZW\[MUZ^ZS]]S^TYXW\_^[XUZYXVXP`^VdZUZU\Z[Z[\ZRY_\QU]][]\SY[V\]SW_VV^`\ZVZY\\_RZ]]ZSV]ZZ\^V[XU][\V\]YUU_QZ_V_YZYZZXSZZSZ\V\SUdUTV]XUd[Zb[Sd]Z[feVP^^][U^ZX^`[YYV^aPUU_Z[YYYTTZb]_VX_UV^WaW__aYV]TR\T[\ZU[X[_ZXQ^[`YU^^XV`YaWYWYWSVU^aSYVYQZV^WZaP[[\T_WRZ^[_[`XWTS[Ye]VX[c[\akZ^XZ\[[VXTYZUYRVVSYd_X\]\UT\\Vd_][SUXWUZ[\VQ[ZVaTUZSYbZVZ[^j`\TU[Q\Ua\f^MZZPYXUUdYRTW\_T\TZaVWVWVTTSY]X^YRY_\WYWYT`\Z`bQQVS^UQ]Y\U[[dZ^V\WQZRSTN\R_P[YVP^WXXTRbR\QUR]P_aW_NT\YPRVWX]cWZZY^XXWWO\TSUWR\VVZQZPf[SZ[YTYZYaZZc\YZY[N\RUWYVb]aZVZLWdW\XYYaXUZXacXa`UVV]_XRdYXU_Qa_X[aVQ[_XTVP]YXYaPVSX^`gYY^O`Z[X^YVWY^ZRYZXTbS\Y_[Zaa\aUb]_aOSgTVUYSZaUaOV_OZY`SXNV]\ZRZVYYTYR^VQS`\RYTa]MSYXVXba^cUXU_O\h^[Xca[N[eW^UW^YY\[NZV_XS^SM\Q_\QRSZW^RZXZUWVZS[f_ZbQVT[XUYRS]^W__WZW_YSaSYd_dVQ][^dZXWR\_[WTPcSPbT\XbS_Z_d`f`Q[P^Va^\ZZWSUR]U^UZPZ[]g[a^W\]YX\YNdOVZY]VZX\YTXaV^Y_Y]a\ZbXOZYdeWYaXTX_aXYVWaTX]Z^Y[TZY^\YV]\]ZgVTWbUQ][`j]YWX[VNVZWW_RVLZ\]LaLZ[]\Z^VZQRYSUYY^dY`UX_WSUXTaLR_XOS`^[^SU``RXaSVX[^OYVXZVWb\RX[PWHWXWeZY[`U]cWN^SX\`b`WPP[P^VYV^ZWTZ[YW]_``U_X_[fZ^QY]Xd\V[W_\YL[hXa[a^[\U[]S_ZeSUWU]a`UZVZ`WVfWV`LQVYR`PXWUZfS`b^YW\[NfWVSaZU_\VTR`]``VX[X]^^`PVY_WZZ]W[`T`V\]^eTU^`T_XRQ^hUTSO\TYQYdRR`\W\Qm]Wa[S[]XPNP_RYXP[`XSXQ\UZ`WXU[XT^aTXW\SXYW[VV\]WU\SXYVePaT^W]V\YYW]YO\PWdYXV\NQV_V\YUW`eZP\TUWR\_V^STX]R\`da[QTdKXii^\R[SSQgQW[^^[WPUTXa]UkSQWUa[[dVUXU]`SU\TSXW[aV`[]V[U]UW_YbO`[X]VWY[QTVeTW\XY_X\_R_Ua[]We[[UW^^[bT\YTY[ZVUZ][SV\\R]^QRY[[^]dZ_TYV`^]XVUa][^`ZSU]]Wb`][YX[Z^ZaqW_^]_Ua\QX]QYWecd`\[VUY\VWUWUZbSWRY[T\__[[`X\_^[[aVTW_[YS]Wd`]X[_^WZ^[_]TaXZ]bRe\[^]^WZ`bV`_fbXRZ[WaiW\][WaUX_WbY[bSYYRW]aaU[ZU^eZW[W_[WX^_XZPNO_`^Za]bVU\_Z[b]]_^a[[_Y_XbYa_[]NV\[\Z[XV^_[i_bTZ_YZe[]]W_ZZY`R^Ye_lXbciP8ZVX`_cWZ[SZd[Z^^Z]W\[\_[UYYVY_W_\[YZVT[TV\d^X[Y\[WYV^bdWX[^bX\Y\YUY``Y\]T_Zba\SaW^\c_WY[][_b\\[RSURTVWVVZ`XQYYZ\ZRSU]V`UVaUTUY[XZP[WNgc]U\^`\UY]\WW[ZSQ\WYTX_PYZVhUWVVU]a^WYSZZ]]XQa]Z`WW\VfT[_\ZW]\ZXTZ^]VWTRZUc^RZVdc[_UYYUWVWUYU_cSN[\[^a^UWYV\W__XSZ[af]_ThTWQ`ZVVQ`UZh_Q\^\XX^Z^ZWZUYdaYWT[XYZR]\TWWW_W`^V_\VTXY]][\SPbVRZa[V^XYSWZ[\T]P[[\ZX]XY_XV_`XVXRVWQ[[YUQ]X`e]aU[OT\\U\c\ZUU[RZW\V\TTXX_]Y\X]Y_[SZbWV[\X^ZXZ^X]WW^VXWSV_Y^X\X`\d]X^]V_XS^_[]\Y]S[URUUZXR]Z\OWW`YTXaa\VTU_VWWb`WZ`We_^ZW^bXUQ[TRX\[_SUYWXVVU`SYTaT[fTVPZZZ\WUR\cZWYbUVS\ZXTYZRT^gXKUQKWYW\Rc_Q_YYY[ZU[[[WY\Q^RRZhYSY_UQVbXWO[_]WWT]\SNUaU_UbZW^X`Z[]US]\Xg``P\SXTWWX[\]]OR]]Z]S[^WTVZgTZUQ]IYUaUW\[YQG\R_R_[\TOYYZ^]VUQ]_vQ^VT_SX\UaaZQPYN]XYVVXZ^VYYRUX\RYX^]VZfZ[XW]V_P\dfYZU^Zb\SYXV\RYVXX[\VMc_VYZ]]xQQY[UXY_\\[R_VRWWYTVYY]VQY[WVVbYR]aPbWTVXQXSY[aQX\V\YdPUVY\[cU_\\X[U^Z[\UO[[\RShMMTXZ^Y`V^ZX]bTa]aZ_P^UbVYVTX\W_SL\Z]AOj[iRZUeKNX]]N`S\V\VWYWVZ`VKWfUb[S2[UU]]TYRWRT[ZXZWXXcbXXRcTVO]W'SWR`\K^]]STX]bQVUSKZ^YWQ_U\ZfPVZR^XW]Z\p]`W_XaT[Z^`VS^@b\abZU[YPURXGvOWY`Z]\]YQ\VVWhWS\aFCaKU;V]NcaUdcY]UU_ZU^ZVY`f^XVJSY[YVZYaV[V^SV\WPT_V[c`SMT]aW\VRY\SU\\V\^_WX\VYb\\]V[ZXV\XU_WZQXUSYVT\YVS`\`fW\V`QT_WYeOP^ZWP^dX_`][aK]^WZYWXTK^\OcVQYPWWXWW_UR\\]_[\Xf_^TUSUdeX\Y?`XUaUe_UV`[Y\]X[_Y_^\U[_O^bWbW]jY\bZW[\[SZWTO^^R\YiO\UcRY\TYgPV_[YW]aVKZYWXXX\^eWY]]ZYcYV[bVXUWnh\S]VTSYW[O[V[^V\^]]VUYXRX[YY\TNaWX]TP^Y]UUYRWW\nPV^U\^ZXVfYf]\VdPRXZ\[XXSYXSZXb`fUUc[]UVW[ZVSWZWX`ZSZeUS]\QV\VhN]V[UcY\STc][PUT[QQV^\R_XX]SP[jVhSWXPU]mP[``YVgZT^WWMZRYW[TY\Sc^jkNaX[X]WQU`dYS_ZWWY^L]ZfZdQ]YUUVTY^ZVZZVdQcaY`TWZWUVTQWWXcVdUaQjbXWbIgZeU]`UXh]WVYiY`ZUYYXS`X]TXW][^]UbSY]UQXYRV\\X\\UT[ZSV^WiU][R]XZbY[SYZ`^U\\]YN\^TOV\U^V]`\^VZ]WVZZ\X\WUZZVZ\VO[YX\UYYVUbZ[VSXX[\ZY\YZ\bRYXVY_V]WZ[dVXXYZZZ\]WK^[^YVU[V`V`bVQ_V]UX[`YY]WXVVXW_Y`^S`WbXZX`WaT^W[O]a\Xc^[\\V]aVXYV]ZYY\YQ]U[PW]Rb\W^Z\VX[YWYV[[^a[WX[S_aX\P_SUQW_Z_YXXW^YZTbUR_`UXZYbS][YXW[XXXOZY^]_a^b\cQS^XXWWc]W^`Z]T]^Z[X^\Z\_^^T[cSQeY`b]X[\U^VSU]V[UUU\S[\VZ^UY]Z^UUbYV[XVZZ^[WYSZYWUX_ee[V`W[WU^[USTY^R`VVVXX_Z_YXUXVXWV]`^d[\VZRSYXX^d^g^QY]ZRVYL^XYZUUc[^RdYQbZXV[SKge[WZYT__]_R\^Uk\XTf_T[[[WQZVSV^\\YXXXRcQVeT][WU[VZXZZYVZ]UXiUXXQ[QQMcS]XWUW_S^RUYW^]ZgY]WOaS[^ZYZc]S\^_aYYPSX^`T]cVV[`Z^NX\VT`RY_\Y_UYa`[U`\RP\ZT\\Z]a]^XZXXWTZfndXTZ\Vf^S^]VTYU[XY]L]a`XTZ^SWTZgRZTdWZ[iZVYVXWaY_U`bY^WbVe`Xf\T`YaVXXZX^_X_TOVYV]\\ZQWTi\][V[UX_\aQhVZ]aUPVZZ]NO\`k\`VSYkZWd_\eQRYT^[QSW^UZ_gR\fW\]XYXZZXXZ[XWW_bXYZZR\Z^\UfVR^`[iS_]WZZT_YLYXSeaY[W]OVULST[XRUOY]V`V\[]S]`VYSd\[VYVZTTU]WVcWR\U\_c]WP_[UXRV`hSVYWWX^_\UiYSPYP]ZYWXU_aX`PV\aXPZ_\WaYMaUUUUaeZVfeYUe^V[_TbeY_]R^__U\Z[V[WQXUR]]RSVPZ]X\QagZRoZO[X]`V^]aPa^VbYg[Y\eWRYeWbTTU`ZSVXaX[QTd\`YS\ePjVT\\UPQ[_X^TTU[YWUJUdMV]RXUi^[`Z\TVnYR_c\VT\SNVg\V[X]`]U^UWRWRP^[YXb\[YRLQd__`bXZY]RZYh[XZa_YPb]adZSY^_kV^daTiQRTYnXVTRbSOY`UWZcTZQT\PZSSUc[a_TOcXb`RSVUb\U^[\ZPQ^\dVRXc]QQcVOPV\\[PYP\]YVVd^c]bU^X`WW]V[^]hYP]_X[XUTWUVYIWaS[_Za[QRX_WWJ_\X^`ZacUbXZ[RVUX]_XU]OZdZaZ^a]ZX[ZT\\VVZY`YX\O[RZY_]aNW[W\TU^]XdW[V[_`ZZTaOa[]WV`WYaZScWY^RXUPRVW[ZT]`[][Q]YWSZV]cZ[_R[`_^[PbW[LTYLZUbXS\^VQ]X_WT\Y]T^T[^WW\YZLMZ[_]hZbWU\WSZNWKSaXQ`\]^JT_WYVV^^Q_QZVQV[T_WYUTcWM_VTdZYWaYUcZW`W``X^[OOLeWX]\MPZUiXe\QT[iQ[]Y[^MXYU][_SU`cX\LWXVOSYVlUXZ\RZQ^\_Z\Q]\[\^TVa[YQg^W[[ORTY\WWX`__R_WfU[OQef\VVaa[[]WVUX\WVZ_XeYcaXUUWVU\UZY_YTWXS^[SXUZ[Y^VTYZZZWRXXYWWNUTh\Y[][V_W_YZUYW\ZjWTRVP[`^\\^UX]`WacRYSWUX^^dWV]c^XWRU]UVZb[bU\TO][\XN^UZ\Y\[_\bWZVVV`S\X]WV^V^_W]WSbWYYX\MVdXXb`TZbPZ[W\ZR\^VYS][`Z[YZ[XUYY[XW[ZY^Z\][YV[\R_\[\Z[RRc_]eOP_ZURV[Q[YVd^WY\VZY[e]ZdSOXYZXVTU_^S]ZYUW_UX[\eVWWWNa[W_XYYW]_XV\^XQjZR\ZYX\UZQZk_]PUY[WUX`W_TLZaU\[U][YQY\UVXWb_RXZ^[ZZUa][aZe\UVYTXSX[]Y[XaZRfaT[_RSXaW]VZ_\Wgd]_`cUXc]^ZWUZS[[Z[QW^aWUU\ZS[Y]ZZ`T[]R[TWX\T[SVZ[P__W]^WZ`ZY\V[RY[Wagd\ZMZZXZY[Q^RS]dTZWWSNZXW^bYXYWWUS\W]]cTZT[Wb_WcSfab[_[]V\XV\\cbW[WU^VdYVV[ZXRaYX[WVbWT^[[]Y\]\XXWY\WX^VV[VYZ\^]]W_\\U]`R\^[YW^`W]`^[]]Y^_WS]`\dXTPWWYWYRWR]MU\ZV\Y`WXd[[W[\WW]bZ]e^YbWfZXX]_[`Sc_[YWeYXTR\dX`WY`VfZYb^YR^aWb[\P^]Q[`UNgXT]^Te[ZXSYY[XX^RdbWYW]SSX__cWZ\UV^TW``aV\XV]]``aVUXab_S^M_W][_[g\YSWR\^VP^[__SS]RVW^U^PV`UMVS\]Q\\T\V[\b[TTTV^V]\h]R]b]Wb\gmW[TTUZSV]PO]WeXXTRSceW`_RYTZf_b^RR\[Rd`YcVX\T_`OVY[`aXPXZXXX]_U\_ba^d]W_SX\dX[QV^OY\SY\ZX^UN]WR\[^Z`\UQZUYR[X\Z`]eP_UWZTXYPYYZ^TX\WK]]^UXY]WWeSYX_ZbTSVX\Ye]][XWRZU_V^XY]VU`]TaXT\Y^eZXMW[[]\XXOVTc]XXSQ]ZT^_WWYXX^^Q[^XXTW]YTTR\aW]YYZXYTTaZV_]VWVRW[[UWZc]Y]]\[VTV]]WQYR_UMX[Pbc^XVR_[Y`_dSW^YUZ[ZUYV^ZSgXRVY]`U[WeV]\U]\_XWX`WZZV[]Xa[XWW[a\UZV\^VZV\\XR\YVWbRcZVX][RXS\`YQV]^WQVb\XaY]\aYZ]ZXZVWYT_\[TTUV]UYPYUY[V]Va[[XY[]UU]YWYY_[\WUV`XZ`eVUX[cYVZUX[`[Z]X\UR]Y]Ucc\Z`TZ`V[XceXa[cW[]dh^bZ_VXWb]QT\VV[YfSc^YY^\^\YWVU__^ZY\WXd^_[^R^VT\[WYYZ[[\h^TbTZ`V\^\ZWTPYY[`YYZWZ]QQaWX^X]XUZZZ[[^VX[WX[WV`Vs\[_ZVX_NY[dX`]Sb]]UZ_Z\ZTXO[V\X^ZS]^Xo[ZX^c[UQYgTa\UZ_[YeRYQb[TZWY[[[XT\UVX[^ZYYTZXUVWWYYY_XU_[\`[cPYY]\W[WUXTcR_YUX`VZVXUO^YV^^YTUV]ZmZ[^T^VVX_YX]XYUW]W\^[YS[Wf\^\]gS[_hU_WdX]U^Y]\aX]XXQ]\_[UTTY\VZXXYY]T]YVYXVRY^YU[c^Y\U[VZ\TXXS[]SUZ_Y[NYa^][SX]X_]WX^ZVYYZYYZU[aT`Xb^VTUYVS\RYVa]VX\^ZWaXVWMV_b\YZUda]YVZ`U\\Y\Z\S]\ZaSZ]WXTMbXUV_^YS[XXa_YW^aU]\V[WPZV[U^TTZ[YTV_bW`X\Z_X]]UW`V\XYZ``UZXU`UY`[V_^]X\YZXR[Y\]QaXXO_[U[ZZVU]Y[W[RcXU[^S[YYU\R]YXT\YXT[]R[XYZl[]\VWSaXVYRX`ZWd\W[YZXZ\YY\T\SZUWTZRYSUYVZ[UZ\YWX\[]_XW[`^W^RSVYR\RPSXS\]WaY[aRXTWW^[VT_UbVdS]VY[QiUXYadV[[]W\ZQSoTWN\eWTVT]h\\][\]PWP^TXWV[YXb`]VVZWZPXPZ_ZTQZX^e\V[XVjQTeUTZQ]SP\R[NSjf`UO[UYWUddZYOYcma`VYOZLO`VP][\c\X]Y\X`aUXaSYVQL`RXmS\XZba]ZY_OVg[[taXXcaVSVgRWXU^VSS[X`T[UNUi\ZURRR`Xa[W]UPX]cXa]UZZdadP[\fb[O^JY_JWT[Xa`STX]XflPSSRcSV`eY\UYgXY^]\_UWaTjYQ[ZXgY\iSWYV_jTWV_eeSXRSp\Saf[]Xb_T\TY_Y\cPXQe\[WT[RQOb]VYT^Z\X_XRYVYRU]UY^cZXSXUbUV`TiRY\U[YUNNOUV]YVX]\R\[ZQX_S\S]aQ\Y[Y[[bYY`]YWW]\WVWV[W\VUSVTdYT_T^a[a]ZW^]X]b^[cVPVWWYYX^OZVP\T[[WZ`Z^XRYSXY[_TU]\]aU_bZbYTWTgTcUWdY\Y_[WbZ_]\]WRWYUZWTNVUXS_cWSXV_\VV]XYV[YUY\OY]\YRV[`Z^VYSVTYVXb\\_VVVSRZaVb\PZ_a^RVUN`VVY]Y_SUY_SSPbZZWYOU`\T[baWS]YdZZ][U\Y[[X\YdWS_ZZ`^NXXYU[ZWX\]Q_[RU]YXVc`]]UWZX_YZXVbZS]XTYX^XVQ^`VOY[\R[]abUaabTXXbY_XU[I[_X`[VYZcaW`S\ZZWXXf]cL`UW]ZZX\X\[SaZcVV]VYUQbQXXYZjQVT[TXVX^a\]fOS[N\]Q^VZOYZT\Q]\UVZ\`^U^_YVY^[Y\UW[\XaZVXYZV\WT_WV\WW\XdWZW_[ST]m\WV[WS]\`eXU`Q\]]][]Z_ZZZ_TZSX_RZ^TZZ\TTQYXZVVObVT\WVV[\ZXASYUWYWa]VXfX[WZP^V]\XTbYV\VTZPZZY\][ZT]YRVS[\ba`fVUZbUY\RcX\ZWRZ[K^gfRZ[UYTZZU]OXPa\_`a[bTXW]VVcXWbY^X]cXWP_cZVP^OX[^]TX`Z^S]`]`X\XYYUTeXbZW_Z[UWcQPRd_][Xb\]YUP[V]]UWVX[aUW[[X_XYWX]`WcX_]]_`Y[\X__Xa]YUbbWN]ZbN[S_[_\_RbVVf`V[cgc[eXT[T[S\TRZ`XQRZW\VZZ[VjZVWWXT[cRcYZ_XX[YXaY^]\`]\TZP`VYVc]a[ZWeUVT[a\VZYWZ\\]UZTT]bV^\_V\[\TYXU[ibZ]WYT_XXYZT`VVYXV[YYZ]`_R`Yb`_`]Y^X\QQUYVY]\Z`[`]^eZWbTa][U\P`aYXa`YUY][hQWVWTa[SZXf^XWUQ[cbXSU[^]\Yb[Y]VaW\WRWUUY`SS`SYW^Xa\ZQ\Slbf`TZid[``ZbW[XaV`U]R^[`V]XUT][U]\WO\YaYWSZZX`XW]W[RVYXZ]T_XV]VaSLd\T][\TeR\YWZ_V[O[R[\_YWT]ZOPXTWRVbP`UWZZZY_]^OXTPSYQZ_QYZ]Z\\\[Ub\YWSUZYTWTVUX]X]]VW\_[ZXa^U_`TZZhhZb_`MXWOST[XWLRa\Y[]U[c[^]ZdPXO^UdNc[ZcRThXZeUWVQXU\]VbVYUXYYXUZRUTO_URX^]`^WWYTUWTZ_RYaZVd__ZYbSTTWZXYWYUZKVVSUOYORW][YPbW_ZZQVSVR\Z[V`_WZVaYTW[WVmahOR\iWdR\XS\^W^]]Y`YZXTT]Z\ZP\[\S_e_T][a_Y\YZYXcV`ZVX`_VXSe^[RS\T`WUfZYO_[]R]Y[h\XSZVUbY\YV`TSYW]PXYVW`R`WSTRY[]_Y[VW^f^\QPYWg``V`^QVR[WVXY\]ZbV^]PQ`Y`_YRVYZWXPl^\PWZgUNa^T`UUX_]T^^YaO\aU`]bfYVRa`ZcSP[_[Z\VRYc`VZPW\fWWc[UVZ[XW`XUTSS[^PZWjX\RRZZ[R]Z[hZZWbV[]UW[\]`[a_^[_TZ\bb`_ZXWZLYQU^ZbeT\^YXVQ]ZPWX[[[L`Y]Y[Y]`S]VZZVS^WfU\\c^\dXSV[]U]_aa^Y[ZXZ\_]XbZT\QTX[`[WVZX^^^aT]WTa[[WW]^][bXZ]Z^XbNZ\[UV[WYUVUVUW`UW\aJVWQ]Y\\c[WWYZ]SVTVYY`][]h\\^Q^Wf]TeXYWTeT[]Y`]Y_YV]SY\XZQV_[P]Vd^TO_XMYVYbS\WXX]WUT[dTU[WUX^^RS\Vaeg^_^V\SYXUS_PRVRcU[X^Yc\SWgSN`VWbUUTbZS\_WZPTYYZ[XLca\QVW\OXRaVc^a]\\QZYTV]]YamW_a\[W[XV\XUYVU]TQZQUTX[cSVT\\]U\V]gYaZSYVadZ\U[]UYZZV\UaTUY[lZe^d`XZ^aWUT`cZlYY]_^TbZO\^aX[]^WWXUVZj[ka\dZZ\YZ]Z[XRZTS_j[ZZ`VYZV\UZ][\S[X\V_`Y[aYf^X\ZS[_Xb]\[U`Z^RgdZ]c`]YW_XW`ZX_aWUWSX_[WV]TcXO_b[h]XgbOYVW`\Y[S_]V\ZZ_Ue_\[]h[ZYT^WWWYbaRTXWZ`^b_X]YgTZ_Y]YUOd`UTRRbZ\VT[UbaYRXT^[[SZieh\XUV[]ZVY\]Y`a^R\`TRW^V\X_]cV^]aSWe`\Z\]aZQ^[UR`Wb_lc^_Y[VTUUV^a^_XWbYba[YZQZZWTWXT^UYcYc]c`ZWQS]fX^Z[U`WbZ^XTTY[XV_c_`US[eZ^SX\_b]_OdX_[[VVPZRXYXVWRYXSPaX\WXLWUcfURSaZZZY_URUVeUt[c]_PZS]cQaN[cd\Ye\U]]VYZc_]PW`cYZP^Y`c_Q`SYYfXRWKW[YYY^WYZYTUU[_\hU`XWQVS\UNT]M\XZZ]VSTVS_RV`h\SQ`fNkNXYUZNe]ZZ[^RTiYYW`\bXYVfUQSZTOO`\HT^TbS]TZQXX`aUcYa`S[]U^WbW`bZQYUUP]X^YQUUUTaQTXaUVeXgRUZ][V[\WZ`^]]eQV`]U][YQTSW]][R_[ZQVc\`YRWVU]\ZW[U\[SUb]U_T`[^a]VIY[SSV_Z]bGTQ[X[\^YZTfV\SR^U^RT[XXbS]TW]\UXZYVV_WS_PPXO_ha]TWO\X\g[]W[V^\XXZW]VW_c\XOXTfUWPX`[RdW[[bbRRUZM`cXaUXU[_PZg]PZXbVZR^_SYW_]pN`Y^RYV_\XX]^ZZ^_YYWX`U]]YVXZY`PXZT]b`Vd]UafUbe]\VNZZWX][Y][[M\WWWRXVTW\XVQ^_d\_SVZWXVVY]SVVWd__`KOSWcXX^Y\Z`UbeR[\jXVU[bYbUXo^WL^V]aZW^_YVZZdbaQYU]OWRaZU`^Z\ZXVX^WYVeQZUUX^[XZXa\SV\XaadP\_[UYZUiYRWRWRW]RT]aXZ]]V]^ZWfd`XVa[``XhU[[VhVWUZTYTNYZSVV\ZYS][UYaOUYXZXV[\VOWPcVO_W^Z[T]Y\YePVQ\SYRRS\ZXTcX]X^aWYNTWa`ZVSW\VRXfOY\Yc_UQYT\RWZZYXY^WVSW[]ZVUXTVQSLWXVWSV^PW[VY[d__]VfVY^SZUc[V``RX]\c^\R`Y_TT][[UWQdgRZQ^]TNcaTbUU\]\cUYZ[]]WXcN^WdT]IaZQT`W_V\aVRM]Z^OpVXQX`VVX]YSV_aXVYYTVT\Y\QOV]Xb_Z^\W^TdVXXf[YUWb`Z[ZPYX]^]QS`VWUZ\_ZhV^XVRa\XjSV[]hc^]SSeV[PWXXS\UaVYX]U^aY\P^d_\__ZWMZ[XTcVa]ZXWVT[`VVU\US\YgVWSY]XcOUU[WYS\[bXRSebReUSZ]]WiVTVgX[^\V^ZYSaY^^Sd_][^[bUYUU]W^VVWYUYZmXY\\UUWPYR]Y[V[WSQW\VQ[P^cZPUcY[dcU`W[[UWYTUQST[`QT^W`X\Oe^TXPX\c_^_VUX]YWTPXXY[MU\o\S\W[\^b[ZTaXY]]\WT_V_ZXTfWa_RffYV]aUPY[aVVTgYWaSVW`\[VUXXa]TT^TT[R]U_\QWQX]\Y[V]UU\XRciaZ\\[NYeRWW_bX^Wa]ZbSVZWcS]STbWXSM_nYZ^[ZSXQV[\YOOUQS^O`PP[Z_VY\WXNa_b_[VXaOVW\^]RRPa_Za[^SYVXWWUW[U`WRZcQ^QZ]aYZUbRYYWWVSVUN\[]]S`[RURXYZ[ZY_]Vg]WZS^W\cU\f\cT][W[^Q`fSaWadQYSVUV]R]W]RUQ]]TZQV^YR[VTZT[ZXY]X]_`T\]YVk[]RXbWX]VUXe_\R\WVW[Sf]RdNTcZR]Wb[]\Q\UR[X`TYRURnSXcb[acUU`YYU\iOQP\QaPY[cQ]QS`Y\cYMZ]VW\SY\o_WWQV[ZWbV[mXZc[URVXc]Uc_ZZRYXPPVZNSXVaV[RSRf^TWSV_Y\ST^Ra[`[Y[SbNW[W]MZZVk[e\WY]W_V^U^W^_SbnSXU]SZVZSRLS]Z_S[YZVV]RUST[\YS]Z_YSXdT\XSZYSXOdLLSaTYXZg\U[hUW[ZWUcS[Z[UYW_V\[_TXkZbYR\aYYVZW\SdW_\T[UNcV\m^d[Z\X[U`[WNWZZTVVOUTZZdZTj\dXZbRZV[TWV[X^^SgT_TV^ZWU[jWa`Q^TYXU]V[N][]QQ_Y[\Pa[XUe]YSUV]ZQ[`U^WaV]XTUXT_VZ\^aYW[eTaXP`SU[V^ZXT]ZS]TURM_TZVRYQaTcXZ\V[]Q[Ne[\TOb`[YWWZU`JVP`b`[_\XYOXeYeZYOVX\a^]aY`b^ZVRUZXWYSV\Z[^TX]fVR]\XYWRW[]ZR]Ybc\ZZWb`YVVR_eXb`Zd^VY\ZQWPZR]`UYbSPX[UUUUYYTYPT\bXUYPPVd^XYZZViP]X]^TW]^ncXYgbW[_WZYR\UU[bVV]QUZb]\b]\^^Y_XWaXXT_ZY^ZRYR_c\TWMS]XWWS[eR\_]S]YeeZ`^\Y\]]^VXV^^adZRX_VVYc]dZYYfZ[Ye[ZYWYSZ[VeSMZ_bYWZXag`YQhbWO]U`]YZZ\TSXdWQZ_]TU_XWXT^WVVRVj_QPP_^ba_Z^YY]VYcXWXZ[]UbZfYdT^YTeWZ`_[T[YTRQVPZeXSVc\TaTQT^ZV\X_Z]`VR_VeWSW[S^^^a][PT\`aYXU\`XTW^bd`YQ_TT[[TUZW\^`ZX^ZXSXUXXW\ZZVX[W[]RTVQY]RV]WbdYaWXT\XZ[\VRV\XX[U\X^WaZYY\X[Y_Vc[Z[U[XUVWa]XYaZVX\b_``W_U\cV\Y[VV][W\[fXTWW\]ZR`i^ZX]VWYRYaZT_\ZU]UUVXaR^Z^ZVV\ZaUWZW_W]\V]YY]UXQ_V]Y`TT\]W]YUTX]XT_[bXa\\W\[VVT_XZYROV]\`V[SYX]UZVWXVYV`aaUYV_W^^UTVW\[]_YZWXWW[UPWUWUUT]bZV[f\YWTf\W]_YY_WR]Y\[ZP_UVYZZZ[WTR^VZ_W[]`WdVTSXU]SVU_Ya\WXb[eZRS[eU`YX[Za[TSVUFmW_TPYYbWV[\]o^[]X^TQYWWWfTRTYZWQdVQ[^ag\VYXZY]T^ZSXU]WXTSi^V[Y^V^`XWWSX[ZWVTSK[c_X`P[c\VN^VZXW^]a[QSYSWYd[^`^S\T`a_R[[OV^ZS[_\WW\^WYY^_ZWdZZbY\^VSRU^a]YW[[[VZNaY_XV]WS[^TYYRi[`[]UR][\Y^XXT\S]UU_S]aXTU_UUYUkUWX\X^\cVORR]g`UYTRR\aRWUTYY\W]PU^ZZT^dZ\YUVVZ`X_TTZYV\]WRWYUTYXR_[]YS^PWVY[W\_lUW\TU^f\hV[Y`RgeZTaT_]XQR`TPg]Pb\O^VQNZUYU\QVP]V^Z[U_[\^\WXUXZX[ZXZOWZ^[SXZZTY[ZYTP^LXVQWZ^_V\SV`cYX_TcYOYV_]ZW]ZWXaS]Rcc]VUZcY\UdQYZ\WZZYYZT\ZgZQTT_[VVXZYRX[UZ\XWbTVWXXYVX_VWX[X\TVWUTXUX[ZUTVT[]XV[WWXYXSWOZ\VTSZ\Y_Y^XSSQWZXS]YZdRRX_[`QUXXVWP\\[W`WZ[UYZY[[YRV^X\U_R[c\X^T`fTWY\[UW_[_^^]WWX\\[ZZQY]YW_TXV[ZYZ^jVWcc^RZaZaWYZT[SV^Y_[[^ZUW\WZYYbWXTbZ[RTY]]aTV_X`c\^WUOVWiTXT^[W_TZaWXbWThY]XV`S_XY\]Q^aYT[bWXWXVZUVWR[[Y[WWY]Y`^SRYWX[R[T^\]XWYX\WW\^\YZZUQ^W[ZVOZXZ_[[S[WV`_\T\Z\TZVY^U]`]RZWNY^LTZQRWWa\][RZ]ga[\WSZ]^[e\WY_M]PYb^R\^WPWT]R_WVOZT`^U[WURZWYVV^^UZba^Z[_W]\T_XYZX_WTQ__WS_kYbXVZZa]RWQU\KR[X_XXSNZ\U^MRUWTW_[\`WU[^\Rd\ZYVY^XXY^VoVUUZ\U[\aY_WWV`VY_TW[ZXZha_\SSV[^T_aQX`ZY]O[WTTSU]U__]RU`PT^[\VRY_kd]]V`S[XWZmZTWS\Ya`UPYb_Y^[_^[]`SS]b]ZT\]afWQNPXZi[dR]cZTWR]\`ZU]_WVTYZS^][Y[_WVeM\XR\ZZY[dVUOdT\Y]\Qg]W]Y[YRRSRYRYYZ]RT[WWRNV]SQgVZYRRX[]YaXc`_YW[e[Z]`Sc[fOU]\[UaK]gPhUUe]Yc`_Ze[ZUQ_X^YZWb\^T[VXZYYNQbNZU]W[_[_UXXUTT]TWdZZ`W[^\XWZZU\^_Y[S^PqWX[P`eWWXU]W\eUYXWUNVVV]XPVVY[OXYRd[Q_N\Y\aXWZSUWXXTWYXY\XR]S`Nc]MSXVZTacRdd^]UZUXY`OYZ[_`]YYWH]R[_a^[W[USWXWQVXVTb^W[XR`WZT]V_UX]]Q^_`\Z^W[ZYSbXXcaZ[XPXTRa]NVTTW[`\UcZ`QRV_Z]RTVVZWXXXOa\f[T`UTWTbZc\cbaURK]aS]cZQY^XRYUTV[XRSb[ZRY]`]YUZJT\VZ\WPZUQTV[TQXMK]QbTYZaVW\_[YWV`V]X]a[W^OkWVhPm\e[[cQ\QZV\YWW^X]]XZOUVZaWW`X[`WSY^XaW]UQZZUXsVYUVYTVd]^XZZa]UbdnTVWYX\YZZ_UWXZZ[Z]d\^[[`XXST[ZXZ[_UX\ZUYZTW_bVYY^\]W_YZVR^W\UaUZYZ\[]^jPXc_VVS[lTeUYYZUUUYQTW[`VXe\NTd\Si[ZY[RUT^fcVS`gUVV\WfX_XY^TTXWU_]RYW[RZ[ZY[[OXaYZ^Z\Y[UZVYW^`YNXUZZX[S_VZWWX^_ZVYXXb\^YZYUWT\YPZ\^[TTZ^ZmXPX^TXcVU]^XXRO^SVZWYW^[RZYS]_Q[X^]YSU[]cXZ[fYeS\WYW]Ta\NZWVX]_[XRYWZ_e__N\SY\`QZb^^X]UT[ZV_^^c[XY``XWT\ZW][Q_RY\_]XeVPY\U_T^T\[YY_^RXUT^XPV][\U`S`OWRY\TT_TYdV]YWbZW[[\WXZU]V[UXYTXYZ]XXhbWXSUXXaZXU`YZ\[YYTZ_WSWa[^[X`V\X[X[[R][XPaZhVP\WVXX^]SXR[S_RXXUY\bRXVW[`dYZXXX\VYSZMU_V]Y\VWXUWXZb^ZTW^[QfX[]UZUZTVNa_ZR\\WZY\\[[YQYTWTUZWWYYVWRVfRVVYVUW_\TSUXTXUYaU\\]SXPXU^]YSY]VZW\]WRXf[[[\W[W`]hXVZTbX`XbY[YaV[^VRX\WQ\WWVV^SRVZ^[W^]ZaRRUR[W\VYc^XU^]bY_]kRX]TYSXY^VX[Z\VZZYX]RSQYUWT\ZYU_[TTiZ`_\XO\]XTYWTYY^YU]Y^UWTaUYTZW^UX[\_^T]^dWYgWZMTTY]V_RWY]V[TjcpXS\]]TUW[YQYWYYXSX`YVZ_WQRNZ_[VW`VX\VSO_YU\ZUSZ\cWXN\_TY[a[^\U`USPW^\VXYZTT[O[V_\]SV`YYTRWOX]_VU^X[_hMTYZXXQP^`\V[UYZUT]ZZ]`WY[TQm]UaUXVW\eWO_[[X\Y^YZS\TTYUV^VVXS\`T_^X]UZfY^TTXU`X\\YMLZXV]U^Y`e]\W\]al[[QW[c\cUQ[X^T[^V]]RZVYXWaUQ[RU`\eU`Q[RT_V\XPMVY[^ZYRW]SdS]ZXf_T[ST\URX]m]_W_a_ZYXX[XY\XVP_S^]XRUXYjX\ZdYbWUWPN\][Y]`^VW]T\LYX\SUSbYd]UaTY^WX_WWa][[U_XZZ[[Y_US]VU\S^\\P_XZUSiSU\_TXYXT_dWZ]UXSWXS[YWT]Y_V]U^_W`Y[XYW\\Y_ZX__XbPjc`TX\][aVVVSW[XXY`VamccV_V[ZYQ[d_YYQS\\Wb\S\VYbSfSUb[[[Q\_\[bYZW[a`\_XMcTTZV^b[Y_X[f]YQPfZWYmT[^[\YY_WRfc_WaXWf[XV\\``aP^UT^X[YQ\UXWTSR`UdQNiTWd[[TZUcWSkYWVdZ[[WVTaQ[T`cU]\T^ZYmhSZW\`Y_XXTi^\jYXQdSXP`PY]````XX_]\U_Y[bd[ZTLTYQSZdVS[UU]WWaUQ_Y]XUV^]WWT]PT[Y`cZUbMY^`VVYfQU[ZRYXYbV_[RRUZ\OLZW[S``[SX]TZ[cV\ZZXcUPTSX_G[\[WTU]ZfX]SV^aZY]X]XRbe_UX]TS^]d[SS\_\a__VVMWRXR_XbW[VY`^W[ZWTUVV_SZPXZ]\eT[SYp]\]\^\YlX]]VZUbYZXR[X_WXbU[YeSW[U\]\c]\]SeVVa[ZY^[\XXVXUVUbW[ZY\X[`XZ^[VTkePYg][Z^SU_XOZX\bVeXQa\\[XXZZWRV]V]Y^ZW[[[[Y^RY_[S\VTZ^d[V\ZTY[_XZXZ][T]\X`i]T]S\\cTQVY[T\`UW\e^cMbX]]b\Z^Z[[]T]VY[ZZaWZ\_`^X\YU\X]YWZYWVUY`]\]`WSf`W]V]VX][RZRYV^YYUUX[O__WQ[PY_`dVX]^\Z_VW_XW[^^\YT_Z`QUVVS\]TR]SVUWTTW^ZY[WZb`YXYS`RcaZX]]^^a\P`^^WT]`cVS[ZQQa\]YPSU_e_e^X`\\[YaR`\`T]UbUV\VaPYWaZ]ZT^WUXWX_^`aNXXM_ZWOZ]T[`][YZXUVV^bV[Z[ZQOUWZOXPTT\aW[WXP[ZVa[b^S_]WUZf]Q`^c^Q^\N]W]_[cZV^bYXWY\RU]_ch_S\VUZgY\Z\\Y\`V[aVX_dY^TW`WRUVWdUUTYZPRXX^U^]Xa\ZWg`\WSTYYXYgROX^VU`VaVRX]]c\Z`\[M\W[VQZYXcZ[W_Y^UU_[_V^[[ZV`W[`MY^V]b[STc^a[UYaYYUYb]LRZRZUaX`ddZYTUN\SURZYTUX_U`X`_\ZUJQNXZN[]VT\`N]YWTXQYdaY]PUV][aWN[]\[XQSZ_`WY\QYY]UXYVXhiWWS\\ad][R[XXaZ_\^Z^XH]U^T^]`W]^W]Z\W`T]VYY]XS\_RZ_Y\]]XX^SZUX[_VZTYZTg[Yd`\`[[U_[]^T]QVU]g[^XZSaRTU]XT[^VSZ]^[WYYP_[QjY]T[\dX[bVOW[]Rhf`YW[OZTS]^dZZV`P\[[hTjYT[[_]`VOQXU[\QUZW[_XT_SaU[XTTXUWf]bXVX[V\c\ZjScW\UZ[Of\]`b[`b_\Y][R[[^[VS[Vd__SZVU^ZbbXcWWk\j[bPZUYdRUWQZVQ[T^\__SPgYSaSUQV^bKT[U[S_TlnWUXYQ[\b[Yab[V`X^YVYeUeZ[ZX`QcYT_VZWSRY[_VU^U^_TW\S]YX_\`TQ^VbWX__eX\jaY_YXcWf[SV^\WX^WSaSVPc]b^YX\XMZ[]T[aQQQYY^RXqaUX[_RcW\]WRc[N]VTYRZXVXR^UQZeR\]V[T[Q_RX`WUkQdS]ZZVUM^Sfa\ZT[V]hY[RXZhVedSWbOLe^]OZXcU[_[VWVRg\TV]]NXb`TyX^_aSU_`h]VI`aTWZ]cNYVUYS`S^\XYUUYbU_Za[fY^TXU_U[WYRYebaWVZT`\ZYWJUe\VYX[RYYVTWXZS[c]U_ZYJi[\bVZYiN[c\YSZOe[aa_XY\``ZVTU]\^[^]WX^T\VR\TX[SR__YYcgXUZ\RNQ]`Y\`eaf\XSVTMZ_dPXSg[fcZUZ[TYR\PSeZ]TZ_VXZ^dbV`VVTZU`[XXZ\^[WTcOfVV^UUU_^YY\e\QUeUXZ^RUaTNYWW_Z`[ZW\\ZVWbW_\]bSNXV]XSZWbTX^TXXZ_`TUWXVO_[W[\X_[``_U[XQb[TT[]_YRcT\W\\[]]^[XN_YYYT[ZU]\UXTWL[[[_ZgVbV[_M]VV]YZ]\S]V]PY\T_OZ_WZZXdVW\YVW_\^W\YZ^[RSU^XUj^PXZX[\WX^YUYZZ]P[]\_SWXbb_]`ZW\^TW_ZWUaV[_[XTaYPfV\XZU[ZOPaWUa_]]ZUZXR]V``a^WXVWVZSYZ[V]Z]XUYcb^TXNR^Z\\ZX]NY\[W\bPRU^^WT]XU_aX^Y_aY]]]]^WY`XZaaUcU`[XY\YX]^\WSZb_XY\RX^VUaa^UWWX\Y[fTW]_U`[ZXYXTaZc]_ZPXXVXU`XWRT[V``[^RVZ^Y][W_`XYVWe]R\WWWM\[^][[aQZU^^ZZRVNX]WZZ\e[XZUTT\U`_WbYXZ\YT^XU^^`ZQYWY`^QY[ZTYSYU]XRZ_UTSS[YW\T^WX^UdVY_QfX\[W[[WYZWcUVkU[\iSR[ZeTXR[_aVSUV^]__XaeUYWZXaS^ZZ^b[bUSUWV`WWWQZ[]RWY\ZTR^VS^c\[WgeUdaW\^cR\QW]QfYZ^RaUWcSYTTbZ_]U\YWM[aZe[`eSUS`_XZUZXZhM[[^W]hTa_QY\]Z]R]ZZWPVW_cQYXYXSZWTabV[X_XVWT_TVYdWeZ]Q[^ZYbWVUZ[\d]_VZ`]WVWUTUVRQZ\SkXXUY\TW^P^\VXNWV[UY\^aRQ\ZXeQ\SYV]X]XSXS]^`McO_[YRSZY_[]V[M^U`Y\U^MUTV_^WXa[aWcfTXS^`WWYb\[LZaT]YT\WYTZ\P[T^S_V_Y]VS^WX]RYXXUT[VYY[[]Q]Y^V_f]RXYVYaZW[VU^_\]]]\[ZTR^RXQ_[Q[TXQcYV[QbSK\\[VTYUVe\_YaZ[^]_MXR\U[WNXacWWYR[YZRS_Y[Y][Z]g\]]RXTbS\U\WXVY`bN]aTZe]eUY`S_Z\QahWUXZ``W]YW]SX\LTXYRS_]TT_ZYRkW[TQZ_cRXWXb_TZQ`UTVWTW^Ta]TUWh_STbTNP]YZTZWg^]_U`VVe[X]Z[WXX\]X\\]TQXWW^RXVT[^UWZYWec\U[SVVXTTRQZSZZU^\`\]WeXTXRXRdURXgaR]Y\PRQVU]VYbWWWVQX[UTVbXU[X\W]^jZZ]a`\[VV_UZT^RSWUYU[TQaV\V\XS\Z\NUWZORTVTZgRZ\]fb]YaPYZYk\R\ZY_SKZ^^V[[[RYY\YeUZeWS[`cWWWX]Y[We]^]ZYWYaSOS\P`\V[^[RUVT\O_WV_VhXW[^aURfbV\dXZ_QXTSVURPYQ^_aWV`gPZZ]YYV`c[_SUcS^V\STWh[\_YR_[\eYRZNWXXcZWT[aPYOPZN\VfT]Y\R^PZXVZY`V]TVcSTSZW[\VVZTQ[\Zl`[X\W\SYRWbl][VSZVReWX\R\[fZcQO_WUVTOKVi]_VX]UUYZTXYcWPY_ZVXYW]VF[YUXaZVMR^LXhYY\UT_]ZVVYY\]ZTU^^X[]ZSdY\Y`O^Tc[^ZX_ZRSVYYaUVfW`QZQ`ZMQ[R_VX[bYXW[T`T[US`SV]_\\R[Z]_\bcfmYZVY\UNV__U_XX]WX\NdV_[VXUd]RYW^Y`W\\RSV^YZZ^hRTUUXZSV[Zaa]`_UV_fN[VWYbXV[UUj]SZZ[]]UcZV^_[]RY_YbW[WW[]UT`ZOU\W_]dUXOcUUWX^TUVZUUV_bWY__YRSZ\`]PUWX_^QU[PWVWPW[baX_SY\^WYUVU]bWVZW[_Z\WYW`_`^Y[\WgVQ^\aVXRZX\YOX]WS]WZS[VNPW\\\WXYZ[aTZbQ`S\S[_]_YY\\S\S^]U]]V[_S[c\_ZX]VY`TR_[^QVLaZaXUXJZ]bPV`V_M_WXY\R`ZXY[SY\^]S]^\V[XU_]^XYUS[SX][VT\SUQYSTWT[QX^Y[Sdc`U^XVVWXW\]]\_Vbj`X_X\[RW^VT[XXVaXXdU[YXY\aUWS]XX_[`[]V\[YfYT_V\fRX_OZX\_SUV[]TY`SXYYU_UVUZUXRaXVY[PXWT\SZ\WYWZWYVZZe\cWZYVWVZ]WS]R`c^WXZX_][WY\]`YW^\WWWW_QR\`ZW[[_[VTVT_WXZbPVUWYS[gZ]b_YWdV\S[]VVSXf\[YO]X_]UYWYbU^R]YZSZSX_[\X]WaTWRXX\`Y^WX`WT]SSRXZRZ]X]X\Xa^T`_Qb]Ud^XV\W\YS^VWYUW`WU\WYYQ]^X[UTiVYVa[`SY]TYb[[_\[Y\VZ^\c\ZSTX_T^V\SZ]U^Y\W]_[^[VS\Y_WVUV]Z`eWSWXXV\_^V`]\^WX[ZYW[VSZVU_[Ya^eYX^]ea^W]WR_XZXXe`XZ\_TY^[R\VWX]WdVcUXW]\R^U[VVTXOX\[YXYXVTTWTSV_YV[]]VVT_^WT`YYT]Wa\YWbVZZU]WR\[]]P\WVV`U_VUYYY[]McZYYVUZ[X[W_ZY[SSQ_X^]Z]XUQYSYTcWbU]YVRYcZ`RXPZUWXU\_U[WZX\`V]R_V^fZV\Waa]_VUY^T_Y_`WY^VcWcURY`W^eS`XVRb[WWVbV_`ZhOXa[cZVcV\b]VTa][VZXYTRR_UZTY^VV]bZTYRTUWX_^\YX\^_`^ZZZZTU]TcYRSYZZYT_UW^VYXYQX\VRTZ^\YTYPUQTWV[[SSR[cWdYVX^V^`]XTZ^\YUY]Q]TX]Z^\\aR`VTYWTYWTZ]T^VY]af[XS^W_R^ZU]TZTc^jWWW]QZaU_YUVR]XbWUZ\TaSX`YZR^YU_^XYURX\W^XX]Y\[XU[Z\YYZSQWSN[YW\YVUaY`[\YbUUXUY[\^Z\YRa_`\[UUhXYYa_TUS[Y][Z]Yb`V_XNS[ZU[ZY^aU[WYV[\]\T`\[^Y[WXZU[\\^VRcYYXWY\UX\UYY]VX\[YXY\`VT^[[ZT[W[^[X_[TZUX[^`]ZUWRT`XPXT]gPYWaXW`Y^ZWc\XVXS]]WTPXeW`U`]YZZ[\T\Ta]U]Z^YW_\^T_]]ZQY_c\[ZQYV_\SUVQZTWTWTaUX[T_U]SdWY\Y^[V^VXa]YZ_XYVVYP_X_[`\YWZ]TUX]]`X`XZYUTOV[U\_Z]U`^c\YU\WTVSdY\YU]e^ZWXXY_aYOYPY[fU]\TZMckcVXWVUYZYSZVWR[\`WaWS]RVY][XV\]PXZ^ZUTa`O]][OUWYX[YYY[S^QVYW_^`b`f]aYYgRRaTXW]cV\P_VqZZX`Y]ZYXXXVZ\TUZVVX[c[[ZfWT[`X\V^VX]U[`^a]\SVV\a`WTTR]WS_aXR\QhWi^V__Pa[[P`_R\PbYW^TXZ][ZXbXYSW\YXeWTXWUZSX\a\YZ^[YYZV[\WYad[dWW\[\]VbRX_^_XbTTYRRT\USXWYSZ][ZWRT\Y[W[TZS]]T\^`Z`VZUVUbWZYVWW_]QYdT^Vd\^]XYUUXTZ`]WXWY^[X[_c^\bR[YYKZYaQQXOWc[]`]b]T]\_VM`Q[^RY]_U\QXUeY[XRX_RZXaZ]^`UgO[YUVSW\]^YYUX]VZ^\U^QTSU^aNUWP_NWYU^YV]WW]^TRT_YXcMXV_TZ\VQW_WkfX]_UUOZ]YZYSaRcb^T`XU\U^P^WRWMZU]^QbO`^V]WO\cYccXXUXWZ][^U_XTRZM\[TbUb[YVUaZ_Y\Td^ZOOYWZbaVTZ\`]bWWWZUMZb\\`Q_R\^a]YRS_[VdTbXcW^V[e]TT^X]YZcWQ^PWOZbb`Y^\MaYXRbaQNVXX]bS[W]XdUZZUS_]TUXUUZRY^VVXV\^\T`^TWPea^\ccVVTXYYQWNXZTXZ^MSWPKWZSZX_XVS[TPaMTWY]dVRWNXalafXUVXZWfYVTW[`be]QSaVe\aM[UbTU`^SSgWWhUVWZX]RSUU_ZRTWaZSUVRXRX``SXYX[U^RSS_YRU[]OMX\^aWV_ZXWZUUdKRX\WXPX^Z]b\RbTbXRYX[UX^S[ZYZRYYT\Y^UcX^\YVb`\Ud_bWXZ[]ba[XX`]WUZWY\]_TWYS_XW[Ni]TXVX^[VWZ[[^\XWSUYUZ\[^`]^WQO\ZZYMXQ_UWUV`\\dTV]YZ\XYZ_T[WRWXXXNS\[XdZXW\cZWYZWkbS[[ZSYcW\[YXaWN]TYZ\_PXZWS\XQdWZSTVVZ]X[X[W[YQTaXS^UVYR[mZ[``W[]\b\VSZ]`Yc[[Wa_S\TYb]^WTV^[]]_aY_\YRZaUXXXR\^_Ya`]_U[USY^]WRXT\Q^kX`TcX]_WYSRT[X[T`WZU]]VeYUOWUQ]XaXX_]U\^XZ^XV[VV]PZOWMZ\YYPa^`W]\_aXU[[W^cZ]RSSeU^YX\gZS\X`Ta\XX\ZTSXR`YWQ\Z`PPX]Y[TLUVWP`QbSYY]V\]POhG[J`]SZYTXXSc[[YZTgVWRWZPP^]WSYbSPV[XTeWZ`OcU[]\\eSTYX^abUKVRXLVVV\[\_\TY^Y\XUYVXWW]P^[YU_[_^[]UQ]VX[Rk\R_XbXURbYU^]O[_cQUWRaSXaabY]\^S]XYacSZ^R[YPY_PSZ]YYW[ZXTV`MZSXW_Q^QgZ\YT`W^SZM^[cZUY]_OT^YQTRT`d`ZUXZS]ZM\]UZ^W^a]_SUYVWaQYNYG]X]S\[e]RWY\`[QOSY\UP_PPeWZQUQ`[]_]VPb\[WT`eYX]a_Y\[`Q^\QVV^`^Z_Tbb]UZYgM]SXWY^XiVf_RXWXT\\TVXXTTb^XW^YZSW^iX\cWZ\f_XY[U`UcXTc`RVd]UbY`UY[XSYV[^VYUTXW``]PXR]XSU^[Z]`]\Q_VV\X_XXa[\`YQVcZcad\``]Ya^XUYWWYX\V_UWWYU^Z][Xh_WX^\YTZWY]VX^XW_X\]]WUaZWcXZXaVg\XWPZ\XgX_`\SY`ZV^`Z]aaZWVWbYc[V\VW^Se\QUV^Ve^X\UX^ZWZRUX[[\YZ\^LQ][\TX[[]]\_`]ZT^]Y]c^U^]^XdZ^XZXTZUXRUYeeRb]^_d\T]a[`Y[STW\YTT]]eSY_[`PcWYWZWZ_\Sb_Y^VZS[V`Y`ZW^NX]\U\Y\YKQYYZVV[XWU[U\SX]W`\V[[XWd]Z[eWYSZS]T_X_\W\W]]V_\XXYd\][ZfZYV\T_R^YRZ]aVbX]ZTW\]`SQ\YY]\[^_ZVV_X\aaUWY^Z\XU^WS\PY[W[WVQ__TXXXXVVebWV_XUYYZVWZW]WT[XRZY[eVXV^aZY^c\]YYW^WV[X^Y\UV]WV_XX]UTVbZQlXZY^`ZUUVTUWUY`^\YeW[W`Z[T`ZXSZQW[ZbbYUW]WY_`UWWVV]][V[^SW_[^U]QRfX[_[a[S\[XPXVYXT\Y`]`]^X\PW]^WR_[W\XZZ^ZXUY[]VS[^^TVU^X_^VVW]QZZSbXYTeP]NW`Y\VUXXV[T`UW[X`V]ZRW`\T_VUYTRXN\\\WUX\X[^\[Z`\\PUWWY_[]\XYX[T[Zj_Z[ZQ]Y\[bVT]RWa[YUVY\YUS\YZ[\]^_`bV^[To^WWUXMg^d\^XXWYcdY_][YN[aXYXQWXVZaR_hW^Z[XkOMRZYWQV`\]a[UVcP[^bWUPcQYbZPaYVV[WZ\_W\W_QPTY_]U^VgY_Wf[Qc_\`aU_Y^WXVX_X\SXU]UNS^\WY[XVVWdP][TTWTTUWU]aU\\`[d`^V]YWVMXXZWPZ\_XXUb]_bWmKRf[LXTXWeO]V[YWRTV_PTSY]U]YYSeSPYYaSVXYUYX[X\dUVdWUWWYaSS`SUbcQ[VZ\agXU]RZb\^Q[mTT`O\][aR\X^eX]]XVWVW\SZUV]YQ^[M\ec_aVZZZ^\[a\SVXQXX`WXZWZTcS]Pg\`WLR[S[S`PWZRYVgXSXYPS\VaS^`^\ZQ\^XUUjTU[XYZ\a_`]Y[\OcXTYTWYWUPV\aVYULXVQfXWURYZfZUXT_Vj^lN[]fZ]YZPS[T`^Sf[XP[PZ[WZY\aUURX_[X^U[]\TXWbZ]WMX]RZaWmZbZU[Ob^XUYWXR\\]]ZR`aaXTZ`]bTM`[T\SYTX\^XaZVURRd]]SY[NVQV[TYW_]Rb]ZU_T^^XUTWJN]YY`TbTe][^[T][Y[^b[`ZW_LT[WZQ]_XS[Qf[TXYUV[W]W]SWWVWY[X]_bW_UV[XWWSO[QT^T\[YW_WY_ZZUQa\T_]`X_WWVS_V^WaW[ZRg_iYRZZ]oZ[^VSVXZROaaj`]`OlZXPYSRUTdVY`_UVXccZ_VS_kVaUXTNSSQN_bVXW[WW]^U^`_[WZ]]TX`ahUQ`ZYTWKc\O]U`XY`WZW\SXLXf^\`[X\_Rd[N[RbY^bRYTZWXVb]c^TP^SPX]NL[WX^VXUVY^RaaSg]YXZ\[[U_S\U[Y\V]eT[Z]U`SbVZXR^bZScQb^c_^YX]UMc`^TY`QZYZT`XWi]ZRT^`XaZZad[YdO`XT[QXXZ_TX`SV[U]XZ^LZVTPZ^XVV]Z]h^WYVV]ZP`aSXWa`YVYYUTW^Z[YV^cX`bXec_ZNX[V[SQYV[[Wg^V_[YVXVP]ZWVQW\R]UZV^\^ZPOZTWgZYQbWVTT_V[S\TZ_c[^dVXW\TYZR``W[aVV\VQYVTRZ\`VXXR\PaVXefSU]\V]\ZUSdZW^]\cTUU^[bWbV^Y^cQVS^b\[MX]R[\[VQNVUU]VWWYY\[W\TTYYTXZPU]VWXVUXU]cUVV]\[ZZR\UY]bTJb]aVdXZX\M[WT_^YZcSiS_^cZYWYdS[Qb^VTZS\YW[[ZVUbbY]_Z\ZcYkYX[ZYtYYUYae\T^V[_^[T[YahXaU`Y_ab__^VU^\VZ_VP^R\^YYW`VaYbU]YXd[_\cU^YYXSdST^RYY^^]eY[dXTVS[Y^U^\TWWVY\gdS`XSgkcYqT^\PXgYkZ^cUQaYc^X_\Z^Za\XjQb]USW`k\MabXKUTVWSZ\XXWYbVkTV\`XNY]^bXW`ZhX^[WUsXh^S[s]Y\TZX\YRbfa[QW\P\^UY\SQS[UWZd^WQU[^dZQTZY[]\XdeW_c_Xc[X\R[ZgXV_^R\RXQRY`YRYU`SUX`ZZVZ]^ZS\XZ``WTW^aRZUYOXXP\VRT^PVXQXPWd[ZR[UYXa[TUYZTPU`\VbWWf_YUV^W^VWZ\a[YV_Zc\XWdUVVZYP__e]PUVXUX]VWcS[XW]PQb`WYT^VWTP\OY_QZUY`Ta]^XZ[hVUYZ^XXZ\RUZVXWZYSU_f\W\UYSXUUUW[XWZScXVVYbVX]Ra^^W]\^`USU`^]X^b\\Y[USXbR`UZVT]aY_[X^VXXZ\RO[^[\[TZ_T]ZWf^YWXc_d[^SXZdV_VRZdb`\[YTbWT]`b]TZZ]SUY[[[Y]XWe_`O`bWbYbUbW^n`^VUSWPZVZS]^WbUSIY[aT\X[^[XSYXT[bXSY_\ZYSX[[QVO\Yb`Z\_`^VQVR^_UeT`aX^T^X^WXVPU\bWWbY[\WPW]Z][T]`YV[Z`]dXVQYVWYd_V^_]\\N]Z[e^Y[UZ[`RaVQY``ZS^[^P^b^YSUWZ[^YZUX`ZXX]c\[__YUZUO^\[VcV]STZ\hTK]_T`^ZZW[_[YUT[[Y_^VbWVT[TYU[ZZPTYRVT[R]\XS[aZ\`VSRW\QQ`f_]VWVZaPX\UQ[]Pa]YT^WVa\]YWZ[VZ\Q^UbTO_bbVa[_^Y^cZSg[WZRVTd]XXXT^S\Y\fZTdO\]\YU_YW]X[YVX]X`ZUZZX_WY][VRTXSZaUX_XS[^W[YZS][\^_^][]Vh[Q_`UZ\_\TS[XbTM_]ZcU]ZY_geUaaYW[ZZUZbZ\UeX\]W]YY[YYXd[[NZWaZYbSXUX__YXc`[XX`S\[Pc`\]dXX\UU`YVZRZM^[_WWWk^\[R^XQZ[Ua\VRXdVZUZ[]XZ`_Y[WNVRUXPe_SWWXVZ_YXWe]W_XVWXXVS]TOOU^S_S\[VS_VUaa]ZS[SV]TX^\N[VRU\QTXYbYa\YX^ZYWW\]\f``\Z]dhN`]h\Y\[W]]ZWa\NTe]VWVXcWVU[UZX[`Z[abPZ[[V_`X]hTgaaRgXNWW^X]YTX^UUZKOWVa_NP\W]]QWV`ZTaXY[b`W`Z^YdW]X`YZ]_TY\YTSVWZSUeXYVbWWZXZ`RYZ]TgW_\Sa\P^ZcUW[^XTe\ITQ\X^e_S^VR[XX\d][Z^[XbZ^fYaZ\]U[ZYS]__W]Pb`UW_J[QYdXVcZ^Sb\^VYXZ\XXZZUZ[IY_SSXZWb_US[ZTX]Y]`\PZUaddRVSQ\W]]VXZT`[WIYYXTYOTZ]VXU^YbZ[U\YV][RZe]VRRZS\^_YTPd^U[R]UT]]M[WXT[UXYc[T]Y\YVY\YU[V^\Z]`POcYY\LZV[T_cZW[WXPVXZ[aXUSV_`WUSPKUdTXVdY_XZUU`[[XYl]_kY^QYXX[`XXWbe]WVXaVTWWX]\VWZZYSY][]S]Zaa^c]ZUX\T\VQSV[ZX`TZ^Y]X_ZTMXXU\\XQUV^XgTf_ZZWVVY[WZVVU^\dYX[Z_[WZ_`VR]O]W_[ZX[YWXR][]UXY__UXU]TbY]SYZ]TXUV[WV[RTW`W^XW[W^ZRbZ\XfXVV]RSTYT`Sd_bSW[`\_Q`^VZfZ`V^cbU_\[\TQ]Pb`aTcb_UeTd`V\Z`XXXY^N\YV_WW[[__Z^\VZ^WXX\UZS^bQ[V\Z_RVYV[XUY`]L`[Z`\Zga]bVZ^NU]\[VQX^W_Zc]P]PSWX^X]LYc_\]RXYWY^`[W[\R^_V[XMZTZWXYYZcY[R]T_WZX[RYUbVYYUXTY[RXY`\cU]V^c[[YWQX^XU[\]ZSZYQZY][Z]Ybd_S\WWYZiZaa^V[]`YY_]QT]WZ]X\ZV^U\\_RQbZ]ZYaYY\URT_YZ[]WZS_S[b[fQ`YPTSWSX\SS__a]^]YXSX[d\[\bV]YVT]YVYaZMRYoR_S^WbO[\]\Z\ZWZa[T]Y_\_XYWXOV_Q_V_aZX]XWZPSY\]U\ZU][UXYVPR[`N\X]\QlQ_UVX]QZ`YeZVVTVXcP\]^P^[^_bU]`XWe^`__XRT[bWZcWWZ[XVWT[TR`_WUWZUZY[ZZWUTVTX[X^Zbd]h^[[\XSYYX^]Y`WSeR\eX]\WW]UXPY[TO[PYZ[X[YW_ZY[[TOWWUcW^TZUaZYP^TTYWTZVUT_`]Y]URWQYX\bRQXS^Z\T\XXWa]]aV]TV[SZYU[ZaRXRST[Y\VT_X[URLUX[[R\c^^Y`YVXR_^WVVUYXVZaX[WXZf[TWVYkR\TL[[_RW^dUW]QYZYabWSVV]_YWZ\^aW_XYX^]XVSXUaaWWZZX\e\ThbWUVVU`_TSYZX]]U_V][Z[_ZWUW[UV[VQ\]WZOZ^b\TZWY_X[[[Y_X^[TXMX^_[Rg`YQYVVaTZVXRXYXRZU\]SY^ZcO_Y]Oc^cZVeY[_YVaOXP[ZY\a]QVPVYWUW[^]XSYVZScVRW]Q`VUUX_b\dX_^]RcV\[[]UWZRZ[Ye`aTiZ^PVZXbVZ]]^\VXdUSOU[OYUZ_SZY\\\S]\Z\QZQYUZ\`TW`Z\SRYXU[`\b`TV_XYYZ]VO\Z]\YV\YZU`Y_e[`YTSYOUZVXX\aXUY`NiQZX[_QZXRT^YVWVeWT[W[XW_cWa\PaWS^[bYY[W[W`]RTRY``WV]TXYU`ZYW\YWUYQ]WVYWWW\_VVWeY_^YW\YS^^dT\[XW]kWX^UYU^aZP\]ZWXV_TYPV]YZOQY[[[ZXW\SZ]ZT\YZX]cY^VdX]SYTV]ZZT\bXVWRTW[^ZR`\W_W]X[SZ\N^ZZ[ZTU\UZZ]VlcY^Y[]\eU`WV[QSb^WYa_W\]cZZX_]\N[XWZVNO\cXVT[TWUVWRXSXfRRgRQ\QUU_TWWUZV[VQgUY`abTaTO\T[VcRV^XN]Y\cbWbb_^P`WU\[RU_\[]a`_VVR_\ZaN^TVURV`T[TV^W\a`gXYV[P[_S\[\a^]RZZRXX_Y_e__^`TXcWOWZ\\]]\UVUY`VT^QN\W_[aZd[SWVTZUWTW\Y]VZZW]\U\VS__[\YYYYdb^X\]bWV_T^]Y`WTTT_b^YV_^aVaVc[T]aXXXUX]\]]YK[[UZU_`ZVc[_^RYZVVQ^S^\Vb[dZ[Z`\ZW\YYX[SS[XV_V]^[_WPY^^QR_WZV\aVP^[]PfRU_bY[SZYY\WW^ZaVP]Z``]UdYbTWRTW^^NYVZaXY\bZWO]RW\\gTd]S[UXV\bV_cVYW[ZVS^^SYcS^ZY_]XVbYSVbZWY\eS\V_R[[XY]VX`W\VN[VUS[W_W[T]]XZ\S\U^WWhVfP\`X[V[XjcY\`W^QRVQZYYTSP\YYY[VXXZPXMVZYjW]VaZ^YVcO`bQ]SQ`TWRRVSWX\WTY[\TUP\QRVXZVWc_cVXLSUZVVY^UaV]ZTTUXU\b[aVb]^UX[Va\Y^c]W]XXUY_[USQV`\UUY^]Y^]TVV]jOM]USU`SR]ZWZY_^[^SXPV[Wb^UUd^^VN_`]WYYSX_L^hW_]ZY\W^ZYYaSY[][_ZPWUS]Y\W\]WcRSW^RTVZc]ZS[[\UTf\`XbZS[UWZ_]YZ]VZVPU[WScU\_[UW^c\mcY^\^ZYV_T_YY\[g[_XWMW`_\`R_RZWSX^TUXPYcYX`OOR[cSV^USXZ\`bZaWXc[ZOZXW[VWfWZZVSO\WWdUbT]a_WVY[WYXbeYeVf^WVX[]RWa[\ZV]WWa]aU[`]]X_ZR_Z[[Z[V[U`V[PXWXXZT`R^[[P[Y[^[^ZddZe[[VXUSiZ\W[XUZ]XX\SUVUVU^WTVUb[R[c_Y^WW_XXV[TV`XXS^WZYY`UWQVXZOXhYVT[X][[S]`V`WSaY]T\_VQaZWZ[Z^`UT\^`VWY^R^\L`V]Q`Y[U[[eWZVR[U[VW^ZYTa_U_hW[\Z[UViZW`W[XZ_^]b\]RX\ZY`\WU\L[\aZQ^XNT[^\WU\[^^_bV\dZZ_W\[VXWa_WX[YV[P]YXa[QPW\`\UX[V^YXV][RWX_]]RVY\YYW]N[WST_YWWXXUXUY\YXRXX[WX]UWX^XS\\Y_ZVTY[Y[X_ZT[L^U\WYR[^TQ`SaccW`\]fYXUbW^Qc[T]PahY[]U[gNTZX[bZMXeWY\TSSbXUX^YT_W`XZYN`g[][PWaRXWaY[VTUNY\WUW[R`hXV^hbO]fZafP]aRXZ^ShVZacWTYZXR[kaPa]dZbZadUaSZPYVNOZ\^Z[[V[[U[V]`KVZ[]dTQ\bSZY`VSR]Vg_W`]XYZXVW^SVWZXW`cYacYZVSY``d`VQ[b_PUXMYgW]SVXW]aeWV[ZU^`aV\V`\aaWNZ[]\[kURVXXa\X[[]VPF]YZLXRZVT[[[YPk[VcXKO_aZRUMPaeY_\^ZTZ][^RZ[dVSZZ`^VNUST_e^Xb[^UXdRdYZ`\T_UWZ[VTa\jgSUXVNL]eYJSQ\S]_[TUUZUZ[_^T\QO_[RWi^YZT`b]SWZW_W\XSYYab]c\TVY^\Z[YWefUWXYR_\WXdXa^[]hZY`^^JR[Vf]YTVR^^SX\Q\TTYW[WU`\Y_\XWOXQa`^PcWZO_VYWQXWdVb_ZPXVUYSZZSUZX\WRYQW]^[SSWZ^Z^XaaVVR^ZbJWXUWSTYZcYZ`YUXZdZ\ZW^bZXZa[[XbZQ\TgTUX[U]a\X][^Q`VccVV[X\^`W[URd[SYV[^YZUVTWiZ_Va^[dX]VSYUc\WTVQUTZWWS]\aSTYUX`TQ]bbZSZWQTXXZ_`V\ba_[YWWUZW^\e\QZRW_Y]TeSb^ZaS^_XUWWW]VbYQQcWcZfa`_V`_ZZQ]dd]\Y\Z^SRb[XT\SU`\`U]VYTXRUcZ\]RSeSYh\XVW\]]T[XVY^N^c\XYPQY_ObYb[RYXa`YU^TeT[XTW`TWWahPaSbbRQT^YgNY[W[YYQZYXXUaWUV_WYZXWPTVTXY[QQWV][Y[]Z^QSTW`^^TYZXUX]XXcV`e[Y`bTYWdJ`Y^]_^aRW^RVL\XZSWi^^VWRee[\YbV[XUY[\[[T\\eaO_WOY]X]TSVTY]bX^UNU\VbXOZUaSTZQ[^XRVdW^TQ_Q]YY]UVa^aaSXbYX]h`VaX`VR]]\]XV]XSaQW]U`LVVTe_[UW[]T]ZTWVX]X[Y`Z_Y_R^ZVba^Q_RTPNXX\W_Z_S^ZQV\]KVYUUPN^ZTWTUY]YYPZOgUWcRa_Y`^[\`UX`YXfR[_\VVN\f[\W_Z]`^^YUZVR^YVUc_Y[]]^ROYf`LXQQWZSXXXYUZbYNSTX]XW[Y\_\P^\bS]YQZb][T][\\^`V_QXQUSQSaS`bb[WUZO[QWUW[Y^cU[YdmTQVd]WZZ\[V\bVTM_XS^\[WT\[YQTY[V]Z[N_WXZW][][QTU[^XTcXS`[\\V`ZV_Y]^Y`ca`WWYU[Z[V_bUUYc]YXVT^XgSRZbV^UUa[\f_XaW]]`ZZ\WZR^TQ^ZZXZZWYPT`]YQ^Wc]d\YY_OTXX]]bVa]UQVY[bYWg^_cV`]YXYQh[cZH]ZX^]Z_agWXYZVQYUYZWYR\\`WX^Y\[Y\V^[UUfXTUZ^ZkYXV^`VV_SQS`X]RhV\[Zc\TQV^T^bSZRVR[`b[YXU`TWa\\W\fR^WZRVW_QTRZ\]XSTXboZd[TXVQ][fZ]XVXU`]\Z\[Y[eZgW\cW^[\c^eX`WVcYPW]RXPXWVWcSa]^YZWUXgQ\SWUQWY^X\\_^P[YXW]`aR_VUXX\`\XcUVVUZRZTRZ`S\[Z_XZ`YY\UWUZ\[\XXWU\WOXUYdXZi^N[`]XV[YaZ^ZV\QQ`TVeWS\WVT^[\_VTY^ZWX]cV_QUXX]Z\QS]RPUOXaVZ[X\RXU_YWSZV\XT_SUURU\^XWW_VcQ]eZU^WbU_ST_kbW\[a^XRS_VXXV_P[Z\ZXYY`PkOZZ`UZX[Y]^Y^W`Y^OZYZWZ`ZYaX^TWY]U`^bT\QYR_RZYVS]UYg[W\W^V]ZXWWVT`XSYZQZVaY\`U^Y\YSZ^aY[V`W^Z^aWWYXZW^`TYYY^[aZSZdY[]SRS_^^VZPSZ[WXZ[YWZf\XX]XWMS[YV^XV\`a^Zcd\aXZXRT\\[UYROTXUVV]hW^T[Y[]]Y`V`WTZ_Y^UWVg[\ZX[Z_VZUcXVX^YW\YY^WU\UUh[]WTWZRSZTP[bZZZW_SUSZ]US^SZWYR`ZZ[[[U\T\[__]\Z\]Z[NY]S\_a`aZ\]]R`UQY_U[XaXOTV]_V_XVY``U^d\i_SQ^RVOY[R[[[WX\[ZXYY_Wb_Va^]____U\TXQaaTYXYYTXXeX^ZbX[S]]\[Z^[VZ[b^[NWY`]VW[^]YVWZXXWYQ[R\VW^\_T\R`VbhU[[YQaXa[WR[T`\\[daWcVRWYS_bZW]TYTXTT\]^b]X^UW[a^USYRQ[\]dRcRZYSZOWY\WXS_XXS^Vf[fZY[]ZWbWZWWVfgRRXV[]ZV_YaTZ^WaO]Q[W\[[XZVo_YXb`WH`f[a^^`_cTWYYVTVYXZYT^[VWXXW[UX^]\_\SYVZ`\UYUVaYW]]VWYW`WZ_X\]\VWS^WhbQXbWY[YR]YWZ]^]XW]TWV^XV[Y]_XZ[UWXSW]UQTU]_\\X`c[]]YT_^VYYW[_VTVh^^]Z]V[ZW^[Y[a[U\UV^SMWUZaYUY^YR`YSX\`YS[WZVX\cTV\]YkZYVXYX[WSV^QWaTTWVZ[_Xe`W_^VUTQXYdXQWa\RaQZ[YZ`bU_\]NibXZZc]SRZNa`X_RibZU]ZaOWWVXZVYZYWV`\\Y^Z`VW[^\^_YVPSVW_\_ZQVcWXWYUT]X[Pa_TW_QYZX]`^WY^Y\_\`YXWZXQVSc`U]VVQN\OW_VRZXYXSRS^T`STReZ[TWc_cT\X[T]_NTmZXc`Z\N^RY]WYWUQ]YXZc[^ZXNVYZ[[^ZZT\Y[ZSP\WTV_V^P^^c_WZe]\X\WV]T_SVYSXaPcUXVW^RSSYa`SXTf\]NXb_]c_dX`XdRYVYXeS]\TScV\QWYh_YbVfXgXcVT[[PW_M]d_b_cUWeT]TX[ZiLW[aNTX_gQ_Y]U^`WZUR[[[_X\][`X_TK]`aW^`b[NVeNV^UbT[UZ[[_]XW]cW_n^TYZT\a\NSXJV]PSa\bZMSUaZef[d[Rcf`\\VW]RdaU`a\dcRP^Kd`fUd\SUQ^NTU[OWQWXPW\ZUj^_VZYYQ[WWZYaYl\WVTVcT_WPe]n^Md[RWRZZZWPU]JZ[Xg\`OU_TUTRUZ]RahY[b[RP_^Q^ZOXNVWMZc]^ST_]Yf[ZZ_\UaXOW`Vb[UYa__VVdUf\]][`]XWW[TX^aYZT\\WaUXY]VSXO]V[f\]V]TIWNT\\V[\[UTWRXY\W]UY[MRW\\b[[_Q`a_VL[RZW`XS[^gUeRW]\b\bXV[VUW^^NR[X_U\R]m^Y`P_WZ\S\[cU]ceRUSh]]\WS_UTT_[U[ZZVWXd_RQU^[^WZ__W[XX\X[\[\`\QRYTW]V_USTU]_XV^`WU\TU\\YW[`VT]]RX`dWdXhinVV\[X_YS]W^cR^WXXcTZSWUTc[bTUVYVTZWS^YaZW[]_WhRWV[SZS\\VVR\U\X[TUW[WXQ`cZ\XYYST__\_[`Z\RXW\[`W]`X`TSX\UTUabQ`SUZY_\cZ`R_Se]UW\X]aTW_ZJTUbVYYU`XXOaUZYe\[cYV^XXVa_W[UY`XX`XN]^YZaZSTNTST\UWQe[RRPXX]ZaUXTVVVab\][ZYU`X]UbQU[`[_X^TX[UZU]U\^[]a]eSMQabUSTRZcTV\VVYW^aa]b_ZUVW`T^XZ_`LVcSMUV]XZXRaYUP\X^dWT^a\`R\fVZ\Z][S^YZSX\SV\`Z\U[TZgVV^QW\TQU_oS^U]ZZ[O\YWd[U^]TX\X`_ZYV^\bYNecU]ZRb[V]_biaa[PZZh^`TYce``ZZTee\^ZTZYZZU[\]WNWUQTSYRUZ_X[YPT\T][]WbXZPRYV]Z]\XbZTN^UU]\_Y]\XSVXNXRgX[WXUTX`Z]T[T]XdTYcZhbV[VT\Q_YX_UVUVY_X\^R_YZ[TZbT\YbYWTT[\b]cZdcZTYXQYdZRZ^dZ[_VU\V^`[]`QWTU[UYR[Y_aW\T_WT^Z\Y`_WXXc\V`R\[TZU_aSRZbYQ``YYaYW[_TWdV\hZZ]X_V]N\T]OSYT_aU_ZPdX[Y^R\T[[Ya]_U]T]Y[X\X^ST[YXViRcVWZZZVRUSZ`ZV`[]X_WUZW`V^a^VaXW\UX_Z\W]ZS\][][^Tce\Y\^XZR`QX]Y\T[][U]\XSVZYQ]UPUaZ`V]UZXX^W[Vf]ZUYcYRSU\]ZTi^U]XYX\WZ^^XaS[YUVUdfL_V`YWZZ]U\aW\VZYRdZ[UXZ]^VY]T`Z^eZYXVSUXY\Q\\`VWT]QZ^X]]VVNZUUW[^\\W[^UcW\gV]c`^[bS]`T_^fR[YUZ]\aPW`V\UX_[VY\ZcR`][XaQFUcXX[RVT\M[]X\a_Z\ZX_XXVh\YU[ZR^\V\Y_XRW]X]Za_Y[_XSYTaS^T]Z^\^SVjXUMS^QW[VZWUWSSZVR]Q^l]XZeXccS_W[]YbRTZbYYS^RT]^\h^]`[_[RcZMWP\\hXaa\S[WRUWZhU\YUVRR]YYX][JYX^Z[_]ZX`agRW\b^TbZU`^OTZSU___b`U]ZSaUV[Z]T][T]WYYb^^bX[TYYWbY_\XXh]ZRZVRYc^eXWZaZ^^X_[VTWYZU^XXXXUWWV]\^W\TZ_aXj][gXZ[UfZaahXU]VLXWZQS[eVWZ[Z\dU^YdXOi]YYRY[T]TWUXVYZWaYd_^Y\MWaPcUUYUYZaYV]WZ]]^Yd\T[N\V][\XZ_[ZUWSSUh^We]NXUXYXU][[TY_XT_^^ZU]WYN_]SUeYZW^\SWWS_\\TW[[UTZZV[YUU]SZ^W\VWY[WVO[WZWRTY_ZUQYfdRY`ZMa`\[ZVWWS\RZU`U[YYRTXPQ]ZWUWY_\YV^_\_T[S[X]bXUUVRWWXY^^X[ZUZW_P][\Vb[[bY\XV[OSXW^RUS_[V\WTV[]\WZcXaYW_V^R]YSXXYaZXUVUXV]]Y`YW]Z[YYfU]T_X\XbVWbV_YVYZXXXVM\cYTXYZ^YWXSXXaU\WZbYfYT[`Z_YSYZW\SfW]\YSTW\_YY\]Ub\aSUbW]b`][a[[W]VV_Xb`[Yc`c\]T[OUWcUW^[_UaTUaXV\W^WcU^bVWXYX]ZXV^YUWR]W\[YYZVdZZ]U^Wi^WO_YZWTXWWXUZYROU]b]^]Xa]RS_Y\XVUZ]^V^db[PbZ^Z\U]WQYTZ`\`X\c[\Y[\Y_W\TUXZg[[[OW\^SZW]ZUb]WTU]SXUXXQZ[YV\UQZVS]ZZX\a]`TW[^YZc\V\V_c^]WYYVU[W]\Z_XS^V_^XPb\UV]dYYU^TYYZ^]Vb^\VWY\[[WRVXRS_YZ`VPbUN^VV[__[`^Z[\W^WU[ZX[Z\SXX_`^V\[V\QX\_PY\\dVX\[Z[HZZSQY_V`_YaSZ][Za[[\]\^[QXSV]^dZd]UXSYVQ[[Y[[WSNR]VW[S]V_XQYZSX]Z\S]VUcUZ^UU\W\U]TV`Y_WU\fZXWUW`XXR[]`ZUX\YRZ[b^`X^Yg][^YWXVZ]bYYV\`UaYZdN[a\`[]aYSSX][N\VYSYZ^Y\\][YWNZX[U[V]T__TdWVZVT`]Y\]a^TW\`YYR_[X[RX]VRc[^^_VUX]UaSTXY[V_^WYS^VX^S^aP^ZYXeV\W]UWW\Y^X^Ya`\Y`Y]XXcRX[[`[]X`Z^]ZX^U_[[WZ[PaUZWS^[eYUZXU`Z\VXZXS][]\ST[UW\bWTaZTY^\aXUWWScba_Ra\YO[[^T\[[Z`^[]^WbZY_]V^^T^Yb[\[WXTQ[`^[\][W]S]YYVT[\[[fabWYWXNX]W[]WWYPX\\\UVe[WWQ[WYUW\YQ[TXTZXZTXZZa`]]\YSYUVOXO\aUdV]SQ]XY^RYUX\YZSX[bY[WX`[\YWVcc]VR]\Y_baQXS[YSdZVWOXXOXT[NZZ[\\T[Y`SZXXYO`UYX^ZZXXT`]RU[^L[UQ\`_UU[YTYUaZ\V]Zb^ZVcX[[VXL^[YpVbW\VNUXcTZQZ]YROVT]Wd`^ZV[\WY[X]]\_ZUfLOX]WYYW]ZW\Y^TObUZXSSX`[]YW]]Z`YZOYVZU][dUh\f^VdXSQ]SYYZY[XO\XRZ]WWWYZ]WUULZQ_iXWX[ZVMb]V]iTsZXY_YTYWZ[WXaUScNhVY^X_aaPUZQ\T]V^TaaV`R^^WYUUcYZZ[WX^ee[V`Q][X`XX]WYZS[]``V\ZQ^`SObUVWbXUYS_VUWSNR_VU_^VSYTU[_^TX_WWWeicZ]\XZYYTZ\d]P]\OX\gV^XZ^T`VVX[\V\`KXXUWXW]SX]^XTWT[VZVVYYXVXZZ`UW[Y]RU`XXYX^TOUaW[UX^WaX\YWW\WRYW\K^WZ]`ZUWX\]Rb_ZTXW_UZYU[]`Z\SYV`US_aZVRVPS\T\[SV[[f[Z\UcWa^Wb]XZQT[ZUc]Y[Y`ZSZ]VX[X^^Vb_XRVTY\U\ZUYZ`ZYXZ^XSW[\S[VXX\_f^ZX^XXU[_SW[X^X_Z\Y[VWa[TYWXXTRPdVVYXTR`\[VTX]^UYb_XfSUY^YUaP_T[i][W\_b[T_QXW[Z^\dYUUVa]WS\[\XXY^YVT`UZSXVd\V[VbYUNP[ZaRWW[ZZ]ZU]O`cT^\ZYO]Vb^\VVVVV\VXYX_eZbWPW\U[\ZZY_Z\\WPU[XVSb^ZYgZ[OZ[YUdUTaTVX\\ZWUUU^XZZVZb[]WVOZU^XZQQ__VVXQZ_U^VXS[WNYZ^bWTbU]OXcVZXbVbSWVW_`U]XUW]`YW]_WX\[ZYYPWZ[aZX_YTYZS\][V]\^\X_VZY`V^YQ^MRW\UUUb\dX_^VZ^ZaX\UZZ[^UWcYKeVUZ]PVN\]a]X_YRZ_[XTS[W]WS\VdXd[Zg[[_MTT^XX[Q`LZ\R[W\cS\XXYWYY_Y_TUZZV^]VYWb[RX]]YYWT\VX^T^T]W[TQW\cVaQY\bcU[W\WS^bgYW]d_UW^cU^W_W[WTgY\UWTU^Q\bZRWXVY[XP]STU_YUTZ[`Y[XVX][^[]b^\]V_T`TVWYZ\]\\SK\aUa]`e`_^bYb`ZVTYUYZbQVcX[VY[\T]ZUUZe[Z^YQY]bUf_YZX_PY_Y[Y_M[YTZ]_ZUYSZYW^^\Ya\WX_TYY_^]N]^Xc[[Y^[[aZOZYVSO]\V]d[]Y]X`YY\Y_`[XL`RST_OTcWSRZUc[SRS[S\\W[l\_UcYXW]WOVZ^UY^ZU[XW[YagU`TS_^_Q`UV^W[VqZYUZXVSS[_W]ZWSVU^\^\[X]YVQ]O^]\UVc^U`YUVWXZeY]S\UcWTd`Q^gY]ZSaTW\ZeSQZXZZ[PVfW[YY_Xd]XQUWdZ_f^YXbWZS`QWZTU_RTVY^X\SSaVWZa]WW_U[XOSVT_X_VU\Ra`VTY[ZcUQX^Y]UTV\WWRXWY[U^]OW]\YbZ_ZZVRfS_aWVofXTYTSQ\U`WT^`XZhO^W]\SaUaN\[W[\W]NScbQZRaX]N[ZRQZaXTg[aUUSWcYVVbV[XZ[]W_U_cSUUa`RXZ]PYOZ^WbNUXU\aeYZWXZ_RX`]bSYV[Z[\bXU\U]SYWY\VP^Y]XX]^VWYZ\V\[WXUW[ZPZ[W[ZTcUZVbW_XWg]UURWR^SZVSYfQY_b][b[V[VZT^Z]UYZUbSW_ZaYUTVXWR`WYRZ]Z`UY_TUbZZRXPTXZ[a_WYaY[P^ZTY\XW[XW\^X]YVZWeda\\ZU[Ye[UZb_^^\XUTdYbXZZ^Y_XX]\^]V^XXU]\WWW\]XV^S^Y`YTWb`[[ZOZT]\^Z[TZV]_^]`\^]\UYWVTbgdS]]]]\PWaZKWYSbZZa\`STU\cQUUR_X_[X[VWLXibfXUX\WUbY\V\YcUYWXY_\Z[_UWYYW[S[Y_T\`[YX`\[URWW`WW[[V]UbVY]YXTX_YY[T`Q[ZW[[\[dWZ[UVW^d^_WYWUYXXWRa`iX[XZeRS\V[w[[Q\ZYW\f^T`UXaVTWXRYYc^_WYW_WSSfY\XXQZVX^Zf_YWZYXeYV]S]ZTWQYX[XWbYcdVTZc[RX]ZPUYX^O]UaX_[\][W^ZOZ[YXR_W]Z_Qbb[a[]RY`TXg]b^_UZPe^]UcWXcXX^a]V[VWUc_]XPU[]ZcX__ZYS[\WQXXYT]RSl\ZOa\YYV]`]Y[W\^`Rh[[YWX[cT[`^SV`\RWW]Sf_XUV[YYUX\P^USXWYVUZdU]]ZMYR^\VU]UT`XPXXYWW\YWUaTPTKO_a]_cO\VTWX^YYX]ZZY[\WZX[_W[__ZXUUUcVUYU`h\X_[T_[]OeUVYWRXWXWcSUdUVXPWacU\_Xl_Y_]]Q[WXX]YXSjUNYJS[Z^VmYb[PRVN_WWW]Z[UT]dRWVWWXac]RUYfXbY_mO_WVXPNV[\U]UPaTT[[_UOd`aLSWZZ\WSRQe[eZ\Vd]^PW`RZYQZ\VT_Z[Yagi[OVZZ_`]T_Z`]UU_aP]ZQV]eV`^NSa[X^Q`SV_SJTO[WWTSZdXO\X_YVVZ\\\LFR[R][]]NXYh^^UPW]R\[_\giVgUTV\]TWYRW^LZaT\YW[^cV_UTQbZXVVXU^]VhZgfcT]P_kfT^_][]S[T_\YZ[WX]\ZhSW]VTtbZXRb]US\_P_UaY[j[_V_WVT]`Wdf[[HYWYXVT\ZXU\Se]TZVR^a]Y\YZ`[WVXbTNU]`XRk]__`PbV]KReR[ZV^]aXXS\TVVY]VZSYaW\`]SVWeXU^\YV\XU[Z\SV\YKU``]Y]W^XSTTVYTYY[ZP^P`ZZZ]WS\^]_`ZcWUWbVWW]VY\TV]X^ZX^aV][R_[]Y_VUZ]RYU[XUWSbVZ\TP_XbU^^XMTYOWZXRYbSZ]VVTb\[[WVTWXSST\VT_\\V^^UUPUY^W^VS\VWNU\ZZ^\WYeSWXTXUeUZVS]WWTYTRWUXaQ]R]aXXVXYYQWQaeXVUWcTR\[UYVZYUKR\]P\RUXYU_\WXZP\U[\R\YWVZcPXYWT`VXWY[bXUY][[]UXXcWVcdTZ]YRaTZZYTSZUTNQZX`Y_VZXSe^YWXTXVZZaXX\YTZWX\Y[WPY[ZVSeYV[^[]_O]`]a[U^`S[_hV[`WXWU^VY\U[TYWZUOUVY\OaQV_XR]bQX[QX]Z_XRRTUSOYSWSZ]YY^V]TNZ\Sa[T_VVa_ebVVYPfW]^]WQcdXWXgV[\cXPZd^V]UUZ\O\deVaY^_Xc]U[_^^UVXWRWV[WQWTa\Sk`WYZSZW[XXVU\YZ]bSZ]_a^PZ^V[`Ug[a[Td\bU^VZSXZV[cY_`[YYaYU]`Yk^SXWZ[_[U^U[Z[P`Tf^[XYWVVgjWR[YbX[XSY^e[QT^\[XeZ[aSZZPTS]QTPW]\WXV[^XRo^\][OSY^YXRQV[]VV_Z`V[iOTO_RZSMXa[SUYW]Z^b\a\\bX_Z[`\[VYgZUXTTVUXWR]TX^^RUU[Z[]Z]WU]XZUScTWSSb[d\XX^^QWR]Z^RR^bUZZ^Z[Z\aYYf^aTW_\^[_VZ_Y_[Y[aWUU]YTXZ]WRX\g^VYVTU]ZXc\S`\RXUWW^[e`^TWb_ZY[aXWXQYVYaYZQ`YZ\X]\X^VW^ZW]Z\`_]Y\TXYQW\ZYYZX]WXWW[Yb[SZ^U_Sb[`]WV]_Y\`[UZRV[ebTWU]^_ZOY^URdTX\\fYeYaVU^X[[TZW]TVXTZYR]TXWZ`VUXZb[Q^TZ\[W^WU[fV\`^`YX`b\cYTX[Y`e\UbZZ[\[\QUZ]d_VQT[Z\]a_XZ\\\V[[UY]eadWbdYZb\a\Z[W[\Y_bQd]UZZ]X]`Z^VR_PWTd^Z]TSX\eZ[VZgcaVXXVWX\V_]UP\YeWUcWST[TVVUdZT^MU^PWW]Xf\^[\VWZ[^WZTZRTUX\[eSWVWaR]TTWcYVUU[UZXXQ_SY^QWfSXT[^XcO\XV\U[RVYSaX^T^T_h`T]`WTTULSWWReZ[RTaT]c^YU^Z[M]XX[KV\]RZ_]T_QUTaUZ\cS[]_UV]`aZS`b[W_VW`aUS_\TYc\]UVTc_PYU\_TY\`\V[NZ`Z_^YU[LZR`RU\[VUX^RVbaWUZ_PZ]ZQ``ZXNaRX\UWSZTTgPWVYRPhYVZ[\\[WTY^OZ\aaZU[X[^Z^P]YX__Z^][\[WP\ZT_bPWW[\Z\Z^Za_^VVVXaZZXZSZc[UYP[T^UZZXZUUYc[]\T\]Y\Z`Y[a]^^ZOTVbZQL]_]UTYYcRW[\^WZP^X][[TWaNN[NaZQ[]W_ZUV]^Y[RV`ZY_VU]YZYMQ`YWTYT]SXZXP\WW`U_jYVYa^a\VV[[YWZ[XbV\SWYXX_VPU_]SY``W`\YW\^U\X_W[Y]WWRfVb^ZYfaRW^^[Te[aYTRRW_maR^]V\Y]`^XMeN^_XaSVXRaWZkXTZdf`_U_T][e\T[SYUSZSa\\`Sf]dNa\]`WYZdY[YYXadZVaU\WXW][SPVZ^_M_QZUQY\`Z\^]WeW]]YQi]^^YRc\\[ab[PaV[WYYUXY^Wcb`V]XY\V_XVTbUW]X_ZXc^c_\XT[[a`Z[VQ[][VWR[YY\aT^Yc[W\\\c]TcP]T]U\[dN[UXZ^Q^gZeV\^\V_U\bQbZ\X[V^^\bVYYUXRXW_[SU\UTY^^TQY]^WWX_^TU[\`TW\cTYXW`OScSXY\[ZQY\XXYV\V_TZ_kUT^[]U_VYWRS\XXV`bh_ZgRYVPZYWS\W^SSYVYg[Ub]XbWPTUIKZYPUaWZZVW^XW`SS[Z[`_ZZWRYYVZe_\WV[OZZRU`XY]Sbg]U``^Y[UUQW[[T[V\SRV[a[cSTbXaYZX]]TNZ\V[PSZ`ab[[O\`cXUVP]UfYU]WVUTUYYTSXST_`ZZU]O^VVV\SM\OXbXWT_`Yb_WVaOYPc[WVQ[chaSV`TO^V\R^RdZXeZQYW^eeT]ZXZdOVfgTWZZY[ZXZ^Y`UZT^cU[XOVTTS^V[V]U\XeXk_U]ZYn_bcWR\[[[X^XibX[lW_UbSTe[YXSW[Y_\\\aTPRe_idSWYWZRZY]dXX]ZQ`YT_ZXQUQMW]MT_bYMTgYNU[WVY\XRXk\UYWU\aPUaZ^[]WUVaYV\WVZYUT\P[VT]aWZ_\ZHP]UWX`[XMTX^g[WY]Y[f`VXZ^XR^VZYZXYV\VR\WYVd^VX\Za\V_VZS`SXSR]ZX[T\UWUV^P\bRY`UX_T_\ZWYT[\VUXQ\`Y^XSVXc]^XbbUcXYZYUW_^[`bWR`W]UTWZSZYZTXXX[[TXU\WZWX\XYXX[a\SO`X\SXV_`aY\[SX]SZWW_YX\_\YWcMSZd]_Xb[WY`aZaV`a[Y`WWYRT\_[UTXdW^SYXRU\\Z\\U^_V`d[WXZ`XX`UXYP\[ZUSRX\ZZUW[Y_dK^TXY_ZS[YpXSU[XU]]UWWVX\VZ_\T]RWVT\_W]SXQTb]Yb]V^YVUZ[ZYU]T]SQUWQS[V_X^Zahe[]V\]baW`_VXZRX\[UOSXQYV\PYT\WW[]eUWibZZYYWYY_ZZUVaYT][a]UUQVXZUY]Z\R[cS^\[QXfZ[TXYcXVhOS_]gYVY[\TRVYZT\\W\TZ[cSWVTVXVSZZbQS]X^YQPY]ZQ[Qa^_XXQ[YY\ZYg[[YXYb\UW\\`XgPSfZ^]]ZZZNZXa[X]WW^Z_Z^_]h]XZh^YQ`WU\^\Y\^X^RUdZXXZZRSSQQ[`_[V^ZcX_Sa\Z]\SR^[W]U^YVXV]V`[XZ\W]XWWUZYc][S[[YTSWSWZ]XeWYVX^W^WZ^_][[Z[^TZS^bQ\fZSZ[Z^WVXWURZX]VWRU[\Ya]W`ZQV]XZVSUYXaXRQOU\\X]VXSVUWYYYYcVZ]\^V\QSZUXVaR[\^U`^g`UaWMXU\`YiWXW[V^Y\]^]aKXTUY^XZZVYTZc\VX][X[\VPYXXRY[\ZX[V`YZ\Z_`UY`WXaUZ\Z[Z_WV]`]Y[aUVXW_RYXa]YZYYS_Y]W`]RZ\fdZW\WXVb_[]_RYV\_WZZXSY[\[]Y_]Y`V[VW^^YX[aZ_X]Q\YbYX[XX^^dYPWZ^\YeVa`Y\[T[^]X]ZZZU_U]Z_\V]X\V[\[\XV^c\W]`]_YZ^TW\QVaWUR]Z]V\XRZSdR_]db_WQUWfb^S_TaNZX[X`[ZU[PY[WU^Q^XYgV\M]U^[X_Y_]UZ\bWc\T^Y[UXRVWXVYUSW]YWWY^\_Q]SccbT[UdZV[]Q[_WWZaZ[a^VYSSTQ[UW^\Z\]W[^TRZZ`V[^`UZa]Z_ZY\UXWf]`\d[^\VNVS\XS^N]O^SQ^UVObZYZZY_OZISV_Lf``_SX`[Y^W[VZXZ^VZUJTkHTZYTV[[MO\PX_M_W]^a\VZVdfdZ]\LYV[[VRaWh]Z\`^T_Z^\T]diZ\\[MQ[MUQ\Z[QSZYUZ_Z]_TSZWWXYSUVX[Y\V[XRaW`_ZdfSVSU]_XWSR\]e[i]^\\Z^ZQ`PQVV\Y\R^\PPaR_YU\cRVd_YaYPO[VQ[SUTYe]VWW_TTU]fQIVXYMbWWUZTZfZXcQWTT\ZcO_UUVP[[[^SMY`[ZcWTYWZUVP^YXK^XSS[R_ZXUUYXaWgX\[VZW[]U^[aTbY]TP_[^QV_QPYSUTTWV]Y^UWOSVSXg_^[Z`^hRSTVUSXU]Xb_Xbc\S_XX^N_Y`_SV[UTRNU_LcVhZSXNeYZ]`ZR^c`aVTgXUUW`[c\SYWbU^V_`TVZZYNV[[R_`^af`ZYVXSW[VT]RaR_W\SYYZTWU_W^\[[YT^^[\\]dYTaS`SW]X[^\^\W[Y^Uea_YWTSTUR[P[YS`X`^WWZX]]U^VV\YgY_\W[[^XY[^aU\eYNWVZX\]WS`TZ_]PY\_\TSXR`XZZWX\\aYXZZ_`UUc]VV]Y\UXSbU]cXZXa]^cXXYe]]SW[^\[]^\YaMV]WaV^eXWQUZ_W`XZ\VZRWV]fWYVTQcYTb`VZc^^bT\V^YQYd[Z]ZTUST[]U_YVX_[Z\W[XR]YU^XcUUOWX\RRZX[XZdTWPV[KVP^[Q`UV[SUXZ_gUTVY[][XZSWSZPYS`YYfW^YXRTdTZSXOS][V[`UWY\Wb_WR[[Y^[`e_[PRZWcWVZ[WT`WU^YWMW[bOPZ\WeSTdaSZ_W[^\`[V\]`XY`][aTZX_XSQV]SZTU_\]PQVVWUVUUYY^Tc`\XZYKR\^\_ZSWRYUfU\VToYZSZVSW\VZ[VX\YbU]`UTL]]\ZXV^_WYZXVYZSM]]`Za]YP`[UWXWU]TUY\\UYR]S`[^YX_ZT]VXXT]P[Wc[XY_][XdY][ZZSWbYh[YXZ[UfX^YqUWZW_TZ]VS\XVbr`YUU[VXX]UUQRPW[`OYX\[\c^XX\XRUYZT_SXTZV\_YVY`]NQQZZYSXOPcTRgTXVgWYT[`]VR]cVX_VYY[XVWW\VbVN]^ZbcV[bZb\UiUUUSV[ZTR[YUXZVWVRa][VTXZTYU]W[SZZRYX[VYW[MYWU]XUVXRXW\d\\TcYZ`ZVZWV\UjV]^Z`aYQVUWTY[b]ZZY_V[_V[dV[\WN\\TW]`_YhZVWX[VVZ[W]VZTYW[YYW]XRX[Z[YZ]Y\S`dVX[bd]ZcUW]VXVaaV[V\]YW[W[U]]aS_eUaXSVc[Y`Z[U]dVYV]V_XTXZRW]Y^YS^aXT\Xa\XRXQV[Y\VVWZSTYWYZ\X]VVZXS^Z\[X[S`TV\VTUX_XPXY[_ZPZYPXSUYZZ]X\aO``W`YZXXX[QWVY\YTVQ[VUW]Z[\\ZW_SW_XZ\UZYZUVXWX^S\_O]SL[Y^Z[XX^\ZXeVWZd[]Q^[ZYPUWYTYS^ZTU_]RWZ[XWXYVPUYSYTSW\bhTb\[]ZVXSVXae_W\VR]_daVYVZYXPTRRcVX`[WR[hgUZW[YWSUVS[Y]T[WVVZRRX[Z]aYYQSVU]RYXYVQRZW][UWYWX[[`XXZZVNZX_\XUYX`R`[PcV`VWWS[UT[`OXT\NX\W]MUXWXUj[_\[XZXW[UcTWf^UZ\`YUR[SUWYTW_RX]ZNSXUZ[ZZXZYQ^PTg[XW]^UYfZW\\_`URZU_P^VVS]ecUWZT`VfQ\ReUYXbaT[VZYaWTTTUWRQb^U^`]ZWeXYWV[Vb\WU_lZUZ`TaPZ_YZSXX_S[XU\^WY_SU^ZX]YS\WUWRWS_\]V^YXSa^XSeXZ_PgZZW]^WX^^SVZcYc_WWZSYZ^ZU\[_b\YcT`_SaZZbY]^V[]WXWb[[[[`TUVe^]UeVZYZM^UU^W\YVY_[PUW\YZ^^[_^TW[XgUZY\\WX[cW\Y^W\[QYY`_^]ZTXXX[Y[[YVT^Y[UZY_YbVVW\WXXV\ZZS[ZYWVYX]SYRS^d^XZW]WWS[V[VY\TV_[XWXYY\Z[SXWXX^]_a[ZUW`aT_UVX^dX]V[WYTUZ\UW__VYaf\^\_aWX_SWZVW]YZUW^[\aYZY^L\ZWZQ^[]T`XT][^UYZWXY_[S]\^XXV^W_^YaZaXU\TWYY`\XUXV]_\\]^U[S_T\`P_\_W]\ZM_SZcg\UVZZW[[^ZbXTVV\\W]YZe]_[_WYYZ_YW[W\ZSaXXTZcaVYYQ^Wa^Y`S[\Z\UWU]VbZ]^ZXaVT_]^]WbVWWZ_^U\Z^Y[`WZWS]_S]Z^[[XXW[X\X]ZWa[X[]_]cWcZX``^YVV\RaZWZ]SXSV]T^Ud^W^eY]XWW[W[R][_P\X]]XW]YUbYY`P_b`XU_^Y\VX][TWW[UXSSRUPZ[[[VZT[Q\Xh_ZVaM^^Yh]\\`YYY[X[Y^YZZ[ZZWW_XSYZZX]bX_X^X[aWUW\X\VaV][UTgYUZ\UTW\^aV[Y[V\MZZ[bR_UV_QWXS[[dYWQ]YVY\Y_gWRYWYVSb^ZWY\[VZQUYVV_dYWTd\[VW[VVZc\Ye^O]ZV[[ZXVd\_X`cZTQX^WZ`X]^W^YYYUQQ[R[[YW\]`adU^\``UXTUVhSX[_ZUYWUZ^SR^U[U_VgWWT\\ZU`ZY\^eaZX]cUZZYUVYX\TYP_Z\YXWXZ]YSQX^[URV[YV]R[\^WVX^]^^Zb[WQXdXWf\]b^XRYZV^Z_RYZZ^XRKYb[_[]VaYZXSS]WUcc^WZkTZ]_YX^X`[c`SW^YVX]X]\U__ZSZ`]Ue[TXTLSZa\bXT`\^X^Q\XY[TPXSU[TP[SbX\ZUZX]U_YT[cXW^YUUWQUN\YZYZMZV`YW[[ZabSXXeWaYZZ`[X\XRYR[ZVT_PU`SQTU]ZZXX\Y[^W]aS^^eUWZP`\S]X\VQWOWUQX^RaOcX]WXYT[YZ\ZWVVYT]YUXX[QQXQ_[Y[Wa^Z]V`dXba_YWWXV]ZYT[]^[WUVOcTPXZWXUScOX]LZZX\][Tc[U]aZOW_S^^W]b`[\ZW[[VXca\^WX\]Q]XVYTfR_]]\Z\SKTTPc\Xc[Z_VXZ]^d[ZWdVTZR[\Z\_UeZXTaXRf_WZ^V]T_]V\\WXXV\\]^_[`]P`VXYVZZWTSfWWWWXZNYiVe_jcS_ZYOZSVS\XV_UU]Y[X_R`TcZVY_YTUYX[^ZZYWV\a]QbQXZU`]Wa]VVXbWO]YU\OT[UX]bbWW_[VS\XYW[dVQ`OWbNY]WTVZXX`_UXUW]M`V\WRaVPaZZZ[[Z[^Y_ZZW_U\WZci[VXVbT^W[[Y]X\U\dWUUeYVaeYXdYV[ZZ\W^U`_U\ZYY[`XTZ_Z_YdZW[X[]OgOWTRVa[X[ZUTbUXTYgWW^^`]XOLV][iVUYYXWT\^g\]WXT^cUZWWLW]\TV\`k[VR^_]ZTVVWQYVYZ[\WP^VVTZ]ZdUYYcXZOY]]^bc[Z\fQNYUWpZW^X\]X\UXaXW]ZaZ\Ze[P]m\cYVY`eV]VQXYbXTZYUVSO_WU[a_\b^e[\TSS]Z_Z^X]^eX_XSUXUP[bX]W^TZ[V]TTQ[SZ\]VSZX\W]_YXXR^]Y_MZ\YXWfYU_e^QUi[Sb]VbOUVZ^WTTXUVWS^\]V_Ye`\X\dZUS^X[WVZ[]V[VZdV\YV]b^Z\\YcUPUZ^R]WQXU_[[fVWXRU[VVXZRU\]Y[V\YW_WPW]`UW`VWUTVWXR^[_Va^]VVWUW\bTa``X\SRV[TZcXXdaZT]TX\YXh^bSTUR[PVV__R[VXSVZ_Za\Y\V[UX]Q_YX]c[Z[Ub[WV_S\U[XZ]_X[WQRW_\YaZ]_Y]QR]SY[V^_WSRZWWV^]_XZ^Y]W_Z`XU_]X[SXZ\XV`S\X\]aRRUb[dUWZY^UVZXTZ^_SWRU[b[_ZTY^XiXbOZ\ZUSZa[Uh[SaaZUfXXZ_W]WbW__`Ua\\U`V\\ObT\Y\]b_Ybf[TXXZVN\q[TX^UTT]ZW[bYS[X]Y\\WXVZXX_ZVVSW[ZW^\ZU_UbVTSSU[YT^X\UXVb\UXPV^^dYTY\RR_UTSYZZZZ]deV^Ub[XPWNXa\]_`Y_QY__X``RXUTna[W[V[^VTVVTZcU\aZN^^PPWQTT\`W[^XYYk[aXZ\UW\S]bPXZ_Wd^YU^Z\c^VWXOXWXYVVK[YT]T^UTgSYTRT^ORQZ\ZcU\b^YUYVZ_S][bPXT[OWWV]\VRWd^PY_VTT]PWWaUWWW]][ZY_iUKQ]L_UZW`[eXU]ZY^XZYchW\^]\XLV^UOgVZM^Y[^WXZdi^X\VY]W_WUUmaWWZ\UX^]_XQZZUTZU[RU^_ZXfSY`]ZV]SX\N_^d`WZ^]UYTUQUY_dWZXU[dXWXV]WVUVb[T^\Ub^[Z\YVXQ\\UZ\URV`][S\_`^[UVVZaZWf[Z[\Sa\\[aZTX_Z[]a]\V`Za]Zb[[VUUT]_OXW]PUYVUZWO_eQY`^YXTN[W]fX`THb_U]ZU[VZU\XbYV]V][TTTaZZVc[dX_TSQW[jb[\[XZSR\^VVZ`]ZY]Q`\W[WZVTSYTckZU[XYYV_ZWVUYgX_bVZX[VZSX^UR\XZU[`U\[X^a[RZeSZ]^UVX`Y]`X]RQ\\`\[YhTecWZSVaX[XZW[SQ[UUZ\]SZ``YQTZXZQ\Y_^gXfZW_\X^Z^Uj\a[UQ^P_[UUYRX`ZX_^YP[]ZVZO[XYV[VQO`[WYSYVYVX]ZYYTWY``aUZX[XWZXVd[XY[R\U\_\X]^XV]Xbca`\\]YZ_`X_ZZM[V[_XXV_\VY[WZTR[UXiWYWhgY[WV^XWWVU`U`]NXgSX``T`aSWU`VU\]]]d\T]QcZWf]TS\UYWZjUTY[\UT\beN]O`WT]VQ_^VXYR\YXWZ[\UYU`]ZahVV_UV_[[`[RXMVYS]_Ra[^X_]^UZ\`^afTfQ^\cTaXbXWbYVSg\X[[\bU\S[[ZU]`O[_]WVZWP^TXW[\YYaYWX]W[\UVWRYWVW\XSWY[UU\[XSa[YPZQZYV`cRec_NS\dMT`Y]SZYYU]M\UXV\TQ[QaYaZ^QfVWUUWUTZeZ`Wa^ZP\`[SVMc[][OZ_TQQV\VWY\WXT^TZ\QSSQT[UZ\Zc_ZT]aZXXVY[SXfaZTQZ]\XXX^X]Wdc]SaYQVRWSaUSUUZ[[a_[\S_ZbYVaVOOVVV]V`SabZ^Qf]ZXR\V]KSXTRPV[c[ZQRRZ_X^Z]NWYZXS_XXZZ`XbVQPUZZS\TQ^W^\V[X\\Za][c\TcOS\WV\T]VZaZTUY\W\YXZY]ZaZZ[YYWU_PY[_[XT^_RQYe^U^S[c]^Xc_VRW_Z[S`aWVO[iZ[ZYWOVXU\\\_^[_]]bUYc]heYWWTSbbXZNYSTWKYY]\\`]\_`XVY]Z_Q\LV`[WV`YU`VVSWYTR[]WYTU[T\_`XRYY\\`XPWZ`SW[^QYZ[]YZ[QXW]U`XTRYT^kVi_Zb[UbRg\[]PV\[TjVZ`TSYUa_QSSPP[^Q]SX^PZZ\YZaT^[USYWVTRSba_[^QVXSXTc[[ZZ\^S]NVQfa]Z_NdX\[ZV^_UY]XR\\U^VRVKUV^SZ^UWRU[]U[b`USXYZO[ZTbUXV[Z_Y^X^Z[]]V]\W[Y[ZRUTVZ]`ZVb\XRcX]QV^TV\V^WZX\RV`WW_YWZaVX`Z[RVT\c[X`[YUVUZWZWWQYYQddUaYg]Z`VT`W\]X\cXT]VYUY^Y[XWXWZSX_Z[X]WWTUXUW^]^Q[\[`^X]S^iYd^N[]^YZ[WZKUW]WYZWYWVXYeYZYUU]TZVQUWYVYYb[X]cW_\Y\\aYcUZS_\TXWU\\\e^[fW\R\X^]_kO_YUTZcWVW\UX[[bRQT]_^ZUa[faW]P[WZ]bST^XPQ`XTZT[UWO^XX]\YWZW\TT^WOabWYY\QV^aaYg\W\TYQkYS\]ZcU`^e_XjZXfZT[\XbUJQa^\`]WVbWXe_NLZ^[ZfQTdYW\eX`]dZXXTjVK[Wd\]YbS]Zl_bTXd\f[Y]UU^RV[TVXZYVY[[W^VTVTYXVVc_\VaO]aQ\\X[]Xa\aV^TLY_XYY\\YVZc]OW_U\RR\UdWY`R^W_PRaW_^aXW\^`\X`]YYZYT`]YWS[dXdXSYj`UUZR]XRYZQTYS]\aU\X^U\_dbUc^a]ZXX[RWU[WUWV\Z[_VWeW\Mg_\VZ`[d^XY[ZU[[[Z[Vg^VUZSZPNLZUVYUWSQU]ZTUV[RUV\__TY[]V]RXZ`]WaW[Y]_SWTTV]ISX]]UZY[X[]ZY]QSZZ]ZUWPYMc_VLY_OVSQUVbY_XXXTVU^TXbTW_TWPc_^SOZXSe,Y\ZV[X_TW\SRYY^[aF][][YZaT\\]\a\bYU`[b[[WVV^a``[]QkV@\Uf]Xe]aYPVV]TXWa]Z[WS^T\UVVUYWYZX\ZXUVVVYSSLWWQU_WTYe`]WU\YZR_WWY^[XmWRQQXW^ZS^\_\ZV`bXZM[Y\bVX]ZbZ[\Z[\_^\WZ^[Pa[IW\XOZZIQ[ZaZaURWVYdPYZW\\L^T_bZK_W[_QVT]T]`SWSUW[Y[b^ZOUWYZ[WXYY[^XM_]TY[V]T[W[U`[0S\]Ve[SQPU]\UXcRS[VSXXZO^UYSYVP]ZUQXQTW][UZVSXV\\XZfWXYNV_ZZZW\WSYT[Z^Z\UUTU[ZSQRbaZ`QQX[`[RZaV`]UYcQXTPTZ\ZYObOZfUQXZV^]c`[\NS\aT]]`[ZSYUZR`_YV_XHUZU_]ZbSXhUVP]_WY[`M^UWZ[[MW\]bdbXTYVZ\^VY[bcU_^ZU^We\W^Y\gYSWURX`PQZca\Tc^]YXRUaQTVM^VbZf_Z]N[UYTUWZ[ZRYP_TYZX]Y\QVQ\S[cb]SWUcjZPZT[VWVZZd^Z_SWVfYRSac[J\`b_Y^SOYXZUW[XXZ[^_i]]XYbT^SXZ]QJ]eWZR\T\YV_f`XTbOTZSSQLUV\eXUW^[QXR]V`e]\\ZS_\\\bWZ`\\YUdQO`X\]\^h\WW^]W\fTU[^W[R`XTX[^Xb\]^ZZPYWSPXSZQ_[X_YXcYYXSWZV[LbSWQW_mZ_ZX[ZcU`iW_[XX]\^cS[WYU[_Y[ZTaZZ^OZ[Z[]ZVR\VXURW\W[R^aO_Z\bX[U]WVXTdZW\\TX__ZbdVSeSW`UYXV_VV_YWZV]QYa\ZW]WOWcOVX^W\XSRVUV]V\Y_MV^fWVWXWUQR^UW\\\ZQ^WUVV\cgVZYZWQ\W]W][SS[X^XX^[U^UMZQ^`^Y^_KZZX`QSVWU[[_`U]ZTXYTWVfWWTV[UX^VXVZUWZWWbUR[WU[ZZ\\_SWVX__YW`UVUa_P^TWU`UW\Z][XQWR]_ZTTUS_SV`^Z]WVYbXcW[TX\YbaY[TZWdWKdYdTg[U^YfXb[[]ZRVUQ[]YfSTTZX_UO[X`X`Wab[X`aXZ[X]QZVaZd\\^[WY_WUTj_XUM_NTZXSZ\\`bU\``\QR^\Uf[Zf]SV]WWUYXU]WYV\W^Z\]\]TX__VY[XVVdZ_S[XWT\UY_a\TdY_[^V][[R[TZXTVWVU\XLc\\\T[_^W[WV]RYU]VU_[Y^W\SVX^[Y[`\V[\XXYSYS\X]YVZXWR^T_\TUcT]P[`WXV]]Rja\T[_]Y\[aUW]S\[e\UZZ[_Z^ZZYZZQ][WTaVYZZ[[W]NYX]aZXXVXTWZ]\WZZWW[\ZbW\O\[V[ZmV^[W\\SYZSSY_YXUY[TTX_`[^dYYkSUWUdZbXY\]Xbe]WVXZZ_ZZZ]^[YWZfX]U]]UV[^Ti^Y^R]Wj_\M_YZ\V^][[W[TX\aV[UVXR[bdWfZ`RU]X[YVXYc][b[YdRUV]]\SS[XTR]YdMUZ\V[d^\WYPZXZ_SUSWRQ][_PXUa[_UX_[Xa]WaRe]\\]b\\dZ`ZVUU\YWSYRTc[UZRMX[ZUV[U\X^SeRe^cXYX_TX^]^]\YP_^SQ[Y[S\[`id\^a^ZU_]XdWZ^g\]_]QZTYWW^XY[Z[XYWYYS_aZ`Ta^YXa]VZ\Vc[Ya`^Z[RWQeS\Z[ZTZQ_ZSV_YU]Xb\TX]Z]aS^^V[[XVcX[V`_[U[XYTUVUWcV_PZV\^^TZQVZYU[R`[_R^^W[T]RX^`^de^aWXSVX][aZ`S_ST\]_XVaRb]\ZUYZYWbX\`Z\XRY\ZXZVXVaaXZ^Y[Wb^b[UV[Y]TaV^`V[f^W[Ta__QYV[df]\LcdSU`WZ``YYYYVVY[^MZ_]ZUcO]YZVVY_YR]\SY[X\WUYVWT[[^V_\lVb`YPVXQ]YXT[\cVS_\Saf^W\LWb\`MY`R`YaPd`YMT^Z^Y[MWWNRVXZa]QcUZ]\]TKVRLV[\\W_VW_]VRVa[VUTcUO`WdZ`SYYZQSYV_RXVfQW\[[a^NVOX^^RX`ZWSTRTUaVYT^Y]W]\YYWU^[U[_]WYRXd]UaU[[W`ZV_VSOO]_[bVRPZ]]`^cV[XX\\]W]W]^TePaRU\[W^VTfcabSX]ZWY[TWYSRbd]X`XeWW_feWM]hWQTZ\RVV_ZSSbZMYZXRTOYWZ^U^XWcZdTd\\fiYbYWT\a]`^wXT\ZT_QaOaZWaTbOR\gVcaZg[WSeU^W[RWW[Xg\VXdUTUKMa__]VTZQ`[TSSVZ^`R]YYXW\[WRWY\NOYa\ZMS]bYWca_cZS[V`WRb]SZVVZQ]QUYS`^cYVSQ[``TiTVQdU^_YWZRRSY_Z\\UXQYbX\]]]aOX_[T`]\]aW^O\XW`NWY[VUcaSR\ZXY_YXYVU[\caVWZb[d_WN]WWRWeN[\b^VYRVYZYUXU[WVRbZ[]T\YaZYZQ^VW[YUcW]T[P[SZaUQV[YeUL\[VT`W^V^U_dVZXbS\P^SW\bYP^\_\b[XV^RVR]TPTQ\]^_WUS\XVX^XYbdVOYGaUWQVX]\T[VWZYXdYZedQY_^XRl\aZXY][ZYP_TYYeXeXcYVV`VTVZT_bOY`[VNPQZSOTR_VQ[UVRWYYZ]ZV]bXNbVYU_dT[VWTT_cYUeRWRU]]]TXW_dTYOVb_\[]ZVZT^SaY[`]ROabdQZY^fQWYd\Xe^VZUZTVXYX[WXbm\^SVWXZSSZwTR_YZY]WfYW`UXTNWTHMQgVV_VUV[TYWZ\`cUSWT^WV^\aW]aY^SUR^`VdSW_gXRWW\T[ZTSVOXVTS`OTXNQQK`S[Z_[YOUg`[]RO[WaX\R\]cSO\Z^]XVWeX[`^WUZYh`ZXXUb_fXWacbYTb]W\[UWTP[PaeJYb\][MR_UW\l]V\W^klZ\VNX]VQb`O^_J]R]kX]N]P_R^b^__RfQRLN^UM\W`YY_Y]Xh^^SYU\M\XX_^Vb^WYk`XW\TeWKY][]^X\US[ZYSVXeUKXW\UTY]_U_V^b^VYZY^XS]aWZghba[]VXRiNR][VSW[]QVNSZObXWX\^\VaR\[T_N_ZVVa[N^QZcST\T\`U_XWdcY]^XWW^Z^XZRSYcVPWXcWX_Y[^ZbVThS`Q\X^X]W_cX[]Z[TWZW^bY[ahWZaUR[Z[QJ]R`U\ZSP[YeZRRWWXYSZXXLdTZ`WPZUX]`TUUN]a^NT\ZVcYVZcV]TOfXVULPWXRTa[ZZ]OSVS\VUS`\X_ZdXY]XVRV`Q[\QSQW_[NV]UQe]]]YP_YP`\^e^VaW\SXXWUY^ZPaSR[\^Q[`TX_YYX\TT\_\Sc`SKVZ]VS]XfYa\VV`_[UWWWY_[RZ[XaR\`[caX^_Z\YTR^ZYUa[dV\^X_fVaWUV^TbU^SQ^WT[[RV\XXUXYcZXOW]XWX^\ZV`^X`][YWUSXXdXYgY^PVV\UdU[WYZZPVWQXU`TWVfXYW][k\`[SYa[XW\_WTPVX[STTYT^QZ``Z^WYR^^T^V]\XTVYS^X\\bUT[V_]Rd_]\W\dZXWZVW^a_WWZUgVLYXSWN\`SVPVR_\TUSZ_bTOY[[d^[MSPbdV]WYT[dZ\[L\_OPP`Z[]Th]ShQR^bcUUV]\T\]_XT^V[S[XUO_YPY[ZVV]][XVVYUW]W\ZYXWU[WUVddWZUcZ`VUSWW_NY[Vg[T^YR_XRUXSUX\ZWW\^ZPTW\[\X\^YWTV`U\X[W_YgTYT]ZX^__Xf]Y_VbW\S]YU]W]c`TZY^cWQbXcX^VWYRTaUVc^P^W^[YTYXQ]^]]`WTeWiY\\Z^]PVWX`WdZ[YV_^W[PVTV^^WS_cNiXZUVeW_^QSWZXY\aXXKVS^fZZW]YNXVc\WZVcUR_]Tf_cS]`T`WX^[UZYO\Wc_WS^WYWY`UTUTYUQ[YVfPT`[c[UV`TR[WaZW[T[VP_lX`XWaN`VYV^WUUM^Y[\[\PVW]]a`VdWdX\X[T\dWUgZ\YZ`SV_SZd_UO[OZUW`XT[ZT]Za[VXYXX^]ZaSW`S\`H]WYP^YaXWH_YV`YXVYVm[VaZ[VaaVSY`XZ_YTYUVX]VZS^]\WhW`[UVZ`i^TUS[_cZ]_[Y_VR\`[SYW[XTZ]gW_YTV[XWXWTYY]ZR\ZZ_XXV_abYY\NTd_XXZV`fW`T\[\SXXV\XXVUZQSUYVTZWg]UUX]VSgKT^fZU^\X]_P^[[]VY[XTWWd\cRgV`RU]mb[WY`]X`[^WUYWQQfXcUP_WWZ][Z\WUY\X]]jX`Xe`Uga^ZaYSWYYc_Y[XXWR_`[Le`X_XW]NTgSQNUXS^Qb^d^XLbVfLZW`GWWVWZ[]g\TZ\`aXPVVY_][VQYVX[[NR_UO`aYX\TT\XXSUU[ZcOTdT]T_T_Z\\`UQTh]WeUUWW\UV`QXVVWYYWTYc]`VTcfQUY]Z^M^PVPYVNgWVWUXWVc\NUZY_TTQSdcTR[WWWU^W``bUYO^ZRSQ\SXTVV`OPXfZ`YZWZ[]ZV]WZZWX][\OdVeUVdYfdV`Z_[NPRXR]_XU^aWUS[VRY^URUTWTgLUPVSa_YNUWTalSZ[][XX`[ZZ\^bV]^SXWSb]OQbXYSVRZV[[cW[^[ZW_YZj_ZYVZKVZ\_YU]Wf[TY^UmN]`Q]\[XVY\cZXVRMc_^XONZYYYXHVM\\]VRZ][_MWV^[UTWZQXWXd\_]TZ[W[O\WhZZWV^XUTMW`[]UUeaYY\X^Y\WTR]VYWW[\Z`ZS[]\Za\\UP`Z\^WSRb_SdW\ZYO\b[UTWdYWXR_Z\Y\WXRW[YWeZRlXUR`]dSa\NTV][]W[[dXW[]TYZ^UX_WfTXUb]ZYX\[ca^afT`ZQZVZab[X\[^QZ^[_d_WZ[\VYP_ZibWb`_WdW[_[\cY^URVXV_QXYRTZbh^WV]R\f\ZSdO\[Z`RVSSZQ]_]e^TZ[WdXZU_bd]TW`YT^_QXX\n^^T]\`WO[TYRZ\UXYVUY[]T[[_[TPVRe^Q`\R[i[W]VY[WZ[ZYVWZ^_VX_b`]^UPWX`ZY`^^ZMU\S\W]_^`XXUU`Y[]XRdMSZYXVW]WYSYVV_TWS\WW\UUZbYZXUV[]WZWVeQV[TTZ_]_XV\Z]T\ZTYYXQVTYWUYYYWTT[YYRQU]VXRWLXRWXZWX`XXb[ZcX[RYXaUbX[ZYZ[U\UXX_S\YWS_VTRZ[[ZYRRf^XS\]ZaXZQUZ^Xc`b[Ta]aVRU\OP^YYYWY\W`UUYVTTaTV]X[ZXWUaPaa]a[RVUVU_]ZNT^TY`LT]^V]gaUXVWYWc]WHSPX\W]VXQ^VZWK[S_[[ST^[XV\WUQW[Ve]XZ\_]PSYWdX^YX``SXg^SZU^VSd\XW^Z]VUTS][T[V\[NYVW]UUU[SZV[YdZ[WO[WZYY^]W^ZZ_`N`V\W[UXWLfPV_]bRVSSVTT^TZ`[V`_\ZVYTUVOY[Z[STSZXcVZXX[P[ZVYcb^TZYRW`OVRd_aVVVU`a[dYY]]aWcZ`TTZXWV^U_Y[QVVY^_W\VeOXXYYV\UTVZ[ZT^jZ]TU\TQiV\ZYWU^QXW``Mc]V^_bVVY^aQU]UTYX_Me`WR[X[[`__\_X_YhVRXX\YVLdS^[b`[_RTbTZS\\L]a[_^\[W\__UX[XeY^VXTZ[[^T^NZUQ]\^\Q[Z\bSN\QU\[Z]cO^aWX[^]\aQ\U\`U`NYVZ\W`\gOX[XW\Wc[XaaYVXZ\QaZSc\[[YVWU\YU^VX[V_V^\U[VUS_Me[g\[][YYPVYSNU]iTW`Y[`XYNdQ`QWPXX\cU[^dXbTZ]LSU^Z]X_XY^^bRRq[fb[V`_^^Y]PWTRb[`YWXVRSSQOhTX^[X_gSYUXW`TTY_]_`b`T[]WZU[QZT\]Z\WR\Y]Y[WXZ^eVRaVXUr^[XQT\U\b`]a]aZUYaYWWY_U`XZVXWX^^]XWU[^NTXW[\YW\Z\YUW_\Z[`W[[XXTRW^fY\]ZZWW\TSZ^^Z^[[ZYR\W\]SZUZV[VRdZ[VZU]`]Qb\SW_Y_\_[^`VUU[XWUZaVS[]RR[ZZ^WZ_RZ\ZnX^X\URU_^TW\ZSU\X]T\]Y^_\TW]ZZ[]S^c\W]YRUXMSXN\\[Y_ZYWXWW^]Z_]\[X_RTXYU`ZXWW\^[U^S\V[]\iY^T\YRWYZZZTaa[[`TY`VVaXcZ]X[Z^bTZ\]W]\U^\\ZUV[]XXVTW`Y[^UVZYY\W\aV[UY_`ZUZYWWS][^\Y[UYYX[aeZZ_b\YWS^T[cWY[TSVY]YX]`a[VbZ_QT\YZ^^^VTXSVZZgUT`YeXhUa^dTeaQ]R[YTYc^XWc^PWX[c_\]eWXZW^aW`YYVWV[\]`Z^]\][cb[^ZUQ]TUj[_Z^S`XSZXYYRVadcZeYOYVV]WXWZTcT_X]Vf\XRc[W]`L^`^T]ZaOTUT\^]YbYW]dZPTWSZTQ[[^VZOSaQVW[\`YSY\^Y^VSXYS]ZSLOS_^\c`W\TdUYO_]cX\\bV_]bP`XdXVgVXQX[^P`O]^XV]XUQZ[eS_VYY[Y`X]^U]^``VkVZVgVRUQO\cYSOQR_W^WZ^`WY_W`Y^XUSWTUUVUX^XU_Z]ZUVUVQWYYTZ[YYYZW[\W\[X\U`UTRZZ`Y`P\aOYWW\WNTSV_^P]TLZT[NTU[ZR[ZX\`[QdSZX\aa\W[X]Z\Ri`ZR\UYQXS\\Te[QR\ZY^TUYa\S[`RcX^YY\V`Q]Q[\bW[``[]ZaaT^ZcRY]TUZZYYXUW\W]TX\Z[W\TZd^Z^V\^aa\Z\VZXSZ[\bWQS]Tc_`]YWdUe[_XaYWV_]UlU\bYOX]\`e[^^ZWXT^W`Y[]lVTYVVlZbcYZ]`\Y[XX\X^TVXaa]UU\[chY[TP[[Y]UgU_^ZT[XaSY_]`UWX`_WhK[Y[W_LfTWT_ZUk^YXX]`[eRRYY]ZX`^U[gXZYWUO_WZX^eY_WUdb]UYY]YRVYR`ZP[[_]gU^VYVWdaNW]eP]^^QU[^gWYVVTVgYWSWiUZaZ_W]R\TWY^``RWSQUT]U[Y[X\VbMYTN]YUR`U[WQkRX]\_SR\N]W^bV]T[Y\T\\`T_[V[]YS]Z[e\RX[fX^Q_`TZ`VV]XYQ\V[YfYMWU\XY[YXR^[Q[]WR]X[bXb[V[a]YTXY[LTX\]\XVP^^\eZYUYdWP\[WY[UZZXVPZO``RX_XWdUPWXYURURfYaY]_^U[^W_V^XMY[T]RUU^]UXW]`VZ]Z^X\YZVRWXc[WYQ^WYZQSVYZdTSVSRXUXeRQ^UYTT]dTW[_[U\`S[Z]XZUW_YXdTS]]]TY[V[\WU\R`XZ]b[N[]R`[WVR_VRWXXXY_QZZ^gWXYZZedZW[XWX[R]^ZX^WUUS[XVSPZV_WbV[^_Z[WRbWQNQRO[[R]YZ_S]XV]WUOZZXU[[YVRXVTZZY`\SXZVT`Y[UPSVZXTZY[]eNZaM\T^N[V[RUYZfY[`Z\SZY[YPT\ZUUXY]ZO_V_QXVV^[\XU\US`ZVXXR][TZ]UaYXW\U\U]ZYY`cWXN\SZ\_[YSUSRXh`Z_WWXY\TXdQV[VX\X`_c_]^QUZUX]]UYYWVW[aXY`SX^X\]L]TUW`[[ZX^da]U_Y`XU]X`QR\]TVcU_WeU`[X[__LUYOU]^UTWTT]VS_WWYUfY[U]WWc\UYa][V_ZW\]R\SZ[ZbRZ]Z[U\VNaXdMQRUKX\feYS[XRYV\X^[Z\YZX_TR]YZ]eUWUWWZZVdSJLURZeUX_\``M\^UVeXRRRXWZbW[\YZOXYWVkZcZ_S\]cSXZU[^Wc[^__SSXXYcY]]b]WU][TPi\PV\\YYTSOUU^^T\`^XX`VTZR`adVdWNTY_YWZUXX`X`QZZU`QW_W[_Ve\\ZUTX^e[^SW^Vf_`_b]ZXZV]U]VTVVYW^V_Wd[RYXYTZ`[QbZY\[YW[VW`VSRdYYVYSZd`WV]\TScYT^R_gW[X^_YX\VR]YSVZQ]UR^^VZ]\]S[YY^ZYYW]WYgW\^ZXYXVeVWPZV\]\\^ZMOYXeSRTVXZSWVX\fZa][]Y]Ub_VXT[W]QZc^W\YZXY[]ZXXUWV[b\YZ\VPY_h^dSa]dYVX\YU[ZUY`YRTYUdT^[T`RXVY^YQ`\WYQW[TXYYX][WUXTZTa]_UbbS_R_Z[XUUWX]bSZ]W[]^X[PWVNZ[^SYUJVXWN[hSSU\TR[XXZ_VN\T]f^SRYZ\\UUXXQhT\\^[RQaT]`[`USVd[XQYTZV]X_WMS]\YbcW_a`SWY`[V[W]aX\[ZXY^V[b`\[]c\\UYaV^TV]PQY_X][ZYRP]dRYTUZXTYW]NWYcX[ea^VdUW\b]]UUQYSU[Sc\_Y^VX^\ZaT`VU`^^V[W_]SYZ[XTZdU^X][[X_YXMVOS\XYWXTQTUQ[UT\WZY]]^c_R_W`_T[OTaX^US^[U\U]SX][_\WPYPX][bZ`]TXScZSY[We[Y[\W_MUc`\^]W^O\XX[a[Z\_OQV][aTXQVT\^TVWY\[R]N[Q[WSYVWRZ[SW`WWXX\g[adY[]O\YU[\VWZ^_^^Vj\^d]Y_Xa]UY\WU^\TYU[\WgeZ^TdX_WQcYN`XTOWR`T]VRV\ZNYU_[SYd]ZT[VV[VYZU\XQZW`Va`XYWKXgYZYa[XSYXTZV_ZT]YVWT]XZUV_[\XUV[PVUYZ^XXaYWZ\YZXU`RYXX[QPWRS[Z^O\M\\W_`\XUZZXZ]aYYc_[Z]XZ`]_XWY\ZVO]YSc_R^SVg[[YdUb]Vc_YaZY\SVX_[WUW\T[WSaUVfTZPYbWXYY]Y]ZYV\SSZX]Y`RX^R^_VZ[ZWX\UQ\X`W[VWYXWQZd[a]W[XQY\ZYUV]XZ\X_]_YXW[U[^[^^]TVgZ`]SSVZWRVV[UZaTRZ_V[[Y^YX^[[X^UUQ\YaWb][Q[W_\\Y^^^Y^\XTUT\[VX\X_\UTVO][WX][_ZZ_]XU_\UaS_mVSV_\WWZPU`\\_Y[]]XaX_QdZ\aXVe[XRXXS[]VYRV_``V[SXPW\^SPYUZQcUY_[RPYYZPYZY[PU_b\\YRVaR]XYZc`WfUY\_[RYSRR_YOVZbZb[\[_T[YV[fNf\VYZUXQTZ]ZW[TVhXUY^WZZZVWPOU_]VXYSV]]Y[YMcYgT_TY\]XV]`aSZYXWTVWWXPXZWZQV[T\b[U][MXV\]S^]WfcTYTU\^W^_Z[SaWMWNWUQ_a`XSY^_QWYYRT_V\VSRVTZ^bObZ\XWWR\^YkTZZVU[Z]^VT[UVS_`V]UVUWWX[WZWX_^TPU^b\SZRT_^][XXVZ]TZYWX^WYXRMVWRX_Vn\UZ_gZ[\\ZRZVYX^YYQQ]Ph[aTU`d_PY]cYY_Z[ac[TZYeZ^\\\g]TWZ^Y]Wd\RIXXV]]\YX\_Rb_]]T\UZfY\_YZU[^STXa_^fW[`^XW`[bV]`[U[[V_ZgS[YSS[QPTVUaid`W]NUZ_RX_fWR^ZVhP[YV\^_NZc[_W[[SUWZY[`ZKY]W[U[SdRVQQdb[UHT_NdXMV^PX`\XVjPWVQOQ[\n`V[NeR]jnUXk[fR\_YZaXYa]\a[]bZV[Z^`V__RM`UU]YK[VQ`YWcS_c]STQFXe]TPZUTTW_ZacY^V]]]WTXTUXZ`e`XQHV`RVgN]^Z[j\ZYb[WP_nZ^_[V_fjXab]]g^Z^bRUaRR\\b^WbT]`WSbaKZS\dcdZaPPbVZbaX`]TlQVTTRX^eXjc[XTcYbY_]UVVQRWd^USYdVZU]TW[cRRbOSUZ^QWZX^UZR_RW\]S[^M\QXWL_Z]Oi]WMT]aRUSLkTfS]XWdSR^QaZX[NYUUSVPgSYX[]VTVYUT\W]UUU][R\ZaQ\VUZ^_WU][][ZR[a\^X[TUVXYeZYS__YVXST\Q]YYeSY[VWZc^ZUY`\_aS\YTU\XZQY\V[[XX[\Y]_T^XTVZT[[\Xc[YSVYYVXT`V[SPSX[UZ\ZYYZU^UaYV]UTY^WVVWW\YZ``c`T\jW^YM_XUV`^Ya\\U^Y]^VX^WXNQW[[`ZUWVcUV]TX\UaTRX^QXZ\Z_^UW\[W^c\gS[^]^W_^^QOVUZVXYWYUTUW[][[aZPSRY_[W`ZU^_a^W^YaT^TXR[]Y[]UTS`ZV]RZ[XZZXSUXXbZQY\S]YR[[]UYO[XUPZZV]XZOdVSTXY\T^TVWYUWYT^\UZY_a\YZS[WZY`aXTYZ\S][Y`Wcah]WXX^Y_WX[YRNWZ\b_\V]`X]WZUZX_]VYY`VPUOVV\V\WTW]bV`]]Q\^WWaSSWZWPU][YYeXQWVVWVX[UVgWXbX]`\\^^V_^ScRRV[Za_UNWa[_S\fRTa\QZUY`[]YW[Z`W[\[S]\[U`SW_\[_aQUZ[Z]YTc^`Y]]]YWTWeXfVZW]\Y]][XVcNZ]^[W^YY]Q_`S^\YW]VTVZ^]X[]W]YWW[VWiW\]L][ZXjcZab[\[X_Q^T][YUVSUT[O`R^YXXZ_Y][YXWZTSW^WYYWV]USZaZX]R[Z[[VWU]YU^]X\XYV]XYW\WZZV^``XT\[WV\Y`V][^RPR`VUWX[VU[UOSS`U^YZV[UZQUVVWRV]]XYZTUZ\_\`Y\WWXYZ^[\d^UZd]dWdZUVYW_\W[SVbVV[YWUYYbXVZ^Y_[Z`_V[WZWWRYWYSXYUWY^[X_[^XWUZdU^U\WWR[YZ[UTUW[`Z\]^[XZRWZ`Ud\[c]T`]aVZ\[PYWUUZX\W]XYQY[ZP]bV_g[ZNZX^XX[TRXW[[^ZRZ[WUUac[\XX_cVUZXUhV[[\PY`W]UWW[V]bYWSU`Q\[Y_TTZUU[bT^[XXW[RU^[XZ]S]^Z^[YWUVYZ]XNX^Z]_\YXX[[[a_W\^[_R_`XXc[VX\^[Y[ZUf_S_UQY[dVZYS^^^WVYV]^YZR\\WYR\V[VWVYSdZUSRZZSYVeQ^]]fR[^UQVO^PTcX`W`\`ZcXYS[ZWV\UPXe_T\U[YRVZSWaNWVTVYTZf[W`WTU[WUQYY_[\UQ\[__[[XYRY_U_Yd\\Y`[Y^YYXd]T[\ZbXcTX\_R[U\WRW_]R\Y`ZYSP^[V^^iYZVUQ\WX\RV\[Z[[\UY`Vc[gc\]VaWV_`dRZ_[\W[Y\N_`eWZaoaZRZYUP]]\Y^Xc\X[YXT[`^iX\]Vg\ZY[e__^TXY]]c[VZV]YYWZRZca_UXb^Zt\_WVbiXYTU^Z`__\XP[V[Q`UYYZbXd\Y]Y[Tc\UZ[WalgXSWVRd`UeVZaRW[e[WT]_XTRX^ZTTX\YQZW^\^f_aT\Vf[`]_X\\QRZZZY`\Y]fMWZeS[Xe]SXSW\SWYSV]]W^WNTXVZVWZ^OT^\RcU[ga_URV^[JVP[_TY[WWY[^T]T[XMSTUXZYWfdXTY^XWY^U]TZ]a^OU[PYXXa]\gX^X^ZadT^_cVWZZYUfc]_eSW`\WTZZWSY^i[W]YSW[aVU`WZW\]d_[ZVUUW\]Q_Z[Z^XLT\ZSXS\b[]S[T[_SR][b\UUN\`cX_[\aWXWTQZ`VV\X^\h\V[W\VU^_RR\SR^X\[Z[YZV^R[Y[ZQaUQVSfTd]bgV`]]QZXVZY[_[V]XZW^\W]ZW]dT\V\aW[YU\T[bPSTQ[\bbX[V]_V_]gSWX_[VPPZ]]`_^bhUZ[ZVTUa\Z\ZU[UZV`\[\Z]]T[W[_Tie_Y]YZVSTZYYUSP[a[Ta_dP\_YR^VXW`VUU\XWYWSY_[aYYTWV[WY`U]_Xp\\YTTXS]Y[[]WTVbWW[TbZ\\]U\VY[ZV[Ye_eRZQRe\[XZW\Xac\]R`]WZZ`XWR^V]]Uai[RVWTTUXY[\]b]XbYT^b^XW[V^XXb^c`_b]WZTZa[X`]\]]aTQV[^O`WSUVW[XU_XOXXXZUX[XgWYUZT_ZXZWUV^^_QWZW^__ZVSXUWXV^XUR_YW`UXTXSYeWZV`[ZYVe^XbVX\VX]^[^PXTZZX\YWWS[X[ZN_ZTWaYXX\\ZWc^VYV]bcY\WQX[U\YeW\UZ_U]_]_[R[]RVb`VZYQV[a]X`Z[U^U`Zc[^SY\`R\`YR[VR\YXY^^X\VZP_R\Y[\XW[[XZVVX[R[WXW\QYW]SQ^SYW^^XTaS]`aVTW^ZV\UTX]Z]X^[e_OXUZY`WOVSZbUYPZXZZ^MZXYTVQaX\cOVfY`PRY^\[cg]XU\X_\WV_YXVVdY`\SZUUYVS[U]]_WV[aXeUSYXV`YaafYPeQ]\QRWVVX`N_\SQT[WYXVXaRRKfhWa\SXPJYMZ]`QIWVXZMPf^^VLa`OQ\XN[p\]`YfcY\SZiZ^]][R\S`YLYaP_\ZhYVU\aURUUW`OUcTYR[a]Z\\VS\[_aObYRP[`NQ_bejYY`QPZX]_MVaVaT[m[YVSY_SbggQhdUnTbOaVKVPTJWiWVbPWVZTiNYXI`Ub\Pl\MXRaXPUWFZg\]Q[Yb`Z]U`_MmWiQUKeQg[TUQZWebN[VQY\ZVY[PXcXZ^SZ^cYTkTjcYTWMSjN]G]R[_RWW`RUXQVUUc_`[VZPWcT[UBbbYSZWTXWVUVX`TUXYS^S_`Sc^PZUPWR_XdT^YiWUTsTcPTVbik[OW_U]UTTSUlT[_^SZ`]YZXb[VKiR`YWaUWV\WU`^ZZQV]ZVW]_Z]\VW[TUTQa[`WaY[VeYYW]RWVa]ZX_U\XTV_[[VcXgTT_[i`YWY\\UTbdUYYXXR[`cVPV_][Y[S[VTV`N\RYZ\pXjZ^[SUbX[\]YWZ_[R^b\VZ\W\XT]Y]\Y\W^]Z[YW]dY^YWURVWZWXUa__\^TSV\[[ZY[Y[YSaO`aU\Za\^YTN]`TVS]WZ]T_ZRY[ZYX[`W_URb]NVY\Zb\XU_RZ_]WY\STVXTYTVYbWTUamY[RUZ]V[ZTW_Y^UZcX[W[VQX[R^]SZRVVY]ZaZYJTXZZXZVUVX\XUUQ_dZ_SYYXU][YQ_Z]\USXUU^]\\\NW_XUTcV_WWT]SR[X[W\Q[U[U\TX[_VWbWSmTU[WT[ZWWWSZ_]fY\WTZTT^dO[_a]\Z[IWbSgYe^O[^^\XXYWSUUV_TVT^]YlT[bZ[YTY^a]S`[ZTWWY\`_[^b[aV[_UW^[]]mOZWYZR^OaW\e_[ZYaSZb[[WVUcS]VTWY^WY_^\\TWTUMSZQZUVYVlVYNRWTe[ZXZWhU[i[ST\S^XTPQYZP^YYfZ^YY`]\^_V\SPVX^Y[_W_SZ\XfaSX^\R\\X]^]aKUZjXdYZOasZ^TX[ZZeXSXVS[[Xa]RgWYRZX]Y\XMYOaY\]aYYZV_Zd^ZV\WQWe[^RW`ZMY_VTXUYXTTSVZkR`[b[]UaZXX[W`WUWa[XXTUXYbWW]_Un[Z^YZSVY^S_N`YVMVY[VcW\[LQVUQ`aaUTZa]X]UXY_cXRX[_VVUSbRY[X_W^VU\[^YU^`W\VbiY\_Y\UUQZZd[_QYTVZYURc\TWU^TN^]ccWT\\aUQVVbU]VO`]UY]SYU[Zb[RX\^SU]]TMq^U^[]b[_ed[[Z`]`Y\_[UTWW[VWjYZ[VR\ZVP]W\\UYgX__RNZYVYWXb\VZU`ZY`\ZZ[^ZWZb[ZRc_UYY]UZXTY[\YUUa\_TX^\WWUXZUUZUY\\`aYYVYZUY`V[SXa_W^ehbVTTV`R\[ZTUYW^X]X]bXUWTTca_V\afRbZQT`UVSe\^][[^VWVccea\YZTZU`TU`\`UZ]X^[TSTVY_dcUYXdVT]VhWYZUXUQd]aSTX[_c\VUWNXUY]`WLbbRUQXYRX\YPaXYcQW^WbXQ\Q`TZ[iKV^UW\^SbYQ]VbRa_VN^\UV]\XVYWSTX[\VZ`iW[]YWW]fU_VT[[Q]VZX^ZWVUYQZ\WZTNRX\WQ_eYYR^Y]VcVSc\]W_XaYT\_\U^]Z]K^[[ZUSZU[[[RUZ]Q\Z_PVYVU\^^^YVYTZX[ZWURZUYSZZVV[UT_[^V\`^U_Y[[R\X^V_Z^]^]_XYZ]\Y]SWST[W\X`YYXbUT]XVZW`TXYdX]\]_cRYgVWZ[]\VZS_^Web[ZX\[\Q[\WN^bWXWS^W_Z]UX\WRaZ_YRSQ]PeR\S\VU_RVY^a^QV]TVWZ^\SZWY_T`Z_eU[WT_[`XSSW]YYYP^SYc\V\XZaW^ZWV]c\VV]]Wi_]]ZTYYYY[ZTYXaTVgV\cXR[QV[RYXe_W[X\WbSWQVYVW^^WYW\YbXme]SYaS_R^VjW^UVWc^bK]Y[QZYYk[\c^XY^XTT^XUZZ`\TYZ]_WYU\]U][PY[\ZSUQRPVWV[YYRUX^^XTaNa[Tb`U[MVWZVZ`UY_RX\TXjRYX_^YUY^SSXYa\SaVZXgTRWQcTdT_dR_\N[TaZ]UVd\jXW\]V^JSXaU^OeRcT^ZXPXTUQ\XXYRT[PSUXW`^[]\UXOcW\Y`[_UVQ\]WVcW[UWYZ\VZcYfRT^VZ[[WS\WX]YZZTdaYaX[f\WQSUj^dV[Zde]\\Ya_O\SdUTb^S[`b^cQZ[RM]bYWfT\UW[VYTU]ZWVX[WWXbWM\\[T__Y^bX_[c[Ybfci^`cTaRW\\STV]gYTbVbdg[]_UWcOX\][P\VTacZWYWZ]Y^W[V]ZWYT[LQUkTTXOZVS]QMU][^eNZZYUU[VRWXfP_RVU\ZUYRfVS`VO]YWaUSaN_WUfZSXV]cRVZZY^^^`[PaZUJ_]hh_]WSrc^ZhN[\Y`VcWbSS\d\WWY[]]abU`TR[\U[T[YR_UXUfQTS[TXbO_cVLc[Y_gP[aS\bZ[YD[\]NRVN^N^ZTXP^\Z\VaWX\W_aaZS_\XWUX[k_`QeYXYWa^Z\dJVWUW\YXX_VYMQdYg[]VW_]\N]ZNXfcYVSUW]YMK\UTfU[^S\fUV_XKT`Y`VTT[eWUc_X]\^a`^e^LYSbG][RYb`YTUgPiW\YS^VZ[\XUU\UU[beb[YVZWNaTZ[dg[SWadaT`TUV\^h^\RbR`QUaRM]URK`OOZNV^[WVU]\PXZT_V]UjQUS]`Y\UX]X`SWn\X_[V^^[_`\[`aUW\VZV\_dZ^VcXaY]ST^YYU]iU_dad\VSSYbYV_S^Y\SjVXY`VXUTSQRZXUY]Z[XUO[hWT_]ST\XTYXb]V\Qb\YHW_jZP[Z[`SV\ZKQ[aU[T^aWbVaXfX]^X\ZRZaa^^]UXcXQSYP^W_RUe\Z^`cZZQ]^^RVZXOWY]]o[VhQYTW]Zk`^\_^YN]VZ_UVR[QPWYRWZXZRgZZURYaU_m[V[Z_TVT]\`_XTXZTP\XWVYVfWVPXYPWSXYaRQXU]ZZ\eba]XVX]dWaUR_YaSUU\ZNWKTZ]UV_`OS[aOQRWd]U\UYUV^TXhQXZ]U\^bU]^eca[[ddZZTcVUedUVaV]UXTc[^ZmU`WR[\ScUY\VVR_f\TRbU\]_[T\VXV\S`[VT`\VUaP``aV`PbQUXX^\ZW]`^]ZWa`VXWXcWSRRXYMWY]^o^bURLS^UX^\QUZW\Z\UU_dXS[Y_PWX[YXYXY^[Zeb[_WX]V[YmU[[^[Y\^WWRUQV[P[T[`db\hUXY\m]WT\QNe`^TX`YWZ[bWSYX]XY_]W]cWXZVZ]PaXXX_RWRZ]_VVYXQ]UQ]Y[hYYN\WcY\TfT^KWW\[aY[Vaa]WYVVUV_S^UY]c[TV[XQSb\_\[X^]dSZW_OZ\aXRgY__ZZW]YUTT[W]RY[]XMe^^UWkWZ_aXTVXYVdY`^U]WWY[Va]MT]Wa`QJ`X[\ZW^WVZ^XTSQY_V\TSV]`[XlYVRUW^ZNSTYV]UT^]V]aW\][][S^aXR\T^]^_[TVZXXUZVVYWcVY\TO\UTW]`_a^_SbT_Y\^Z][]`SaXXZ_ZdZa\e[TVZX[abX_SWSZ_YRYaZ[[YVU\\^WUV^bV[d[YZ`NU\a`X^XVWW\[[^YV\ZP\YZWWMZY\\O`Y]NZVSR]Z[[eWQe\X_`V\SVdY_YYT_`^]\VacfVdZU[ZQ\]SQVeSUV[[V^YUUZVX\V]Z_Z\cZZ]ZYX[b[gVeSYXdQ[cVU`TX\]SYZZWTS``[^]\X[YVRXTU[UUb^X`\a[W_YV\U^h`XaXc]S[\\]ZRWVWXTifL[UW^X[X[aXW]^YU`]WTWZ[XW[[YaTV[YV\XU]ZSYXSTSVYPa^\VWTXRU]VS`a_\W_`^YUd_YXW^\U]]XZWRW[e[YWYXUZ_ZUQXYWVYWT_Tf\SWY_LX_WTYdUN^OTW\iW]dXU]c`SX`\USVX]aTcV_[SXRQVXbi`ZX_Z]Y]SVTXXZTZ\V[M\PRXdXifWR[XZ][X[TPW\W[VW]YYZVLYOiTPZ[VUaa_[WcXYacY\`_aY_VfZU_^V\O\SXb^i`[[V[X__eUTTXWZ^TQV^TaVWXfOU]V[X]\TVVWST``\XQPZb[Y_S[RQ]^Z[][h]]fZUUSVaQWR^]WXVUXT_WQQT[QTTXbS`RX[]TRS]SYU]RY\ZY^RXVWQT]`^Y_^VR[[V[ZeYSTW[RVX\XVXZ]]I]XRa[_^WUO[`\SQU[TVUZUQQZ\^NbOVZc[gQZ]MYVXZU]U`TSWYX][XcZT[Xh_X]VWZTTUcU[_Z\Y[WU]W\\O^_W`YRbYUUWYT^]UOYX^\a]TXcXYXU[Vf^^VT\^aU\\YR^WYV^XY`cYUOUXSTWVb^\J_a[Z\\dXRTPXMS`\UWZX[ZZ\`RbS`TY]_ZiVWXYYSVaZ\e\T`Zj_NbQb^Re]W]XZQU[TYZWWXR\ZX_XSW\VS]R[bV^YV[[_bU[YTXWY]ceLSQ_bSW`U_\_ZXWMUcdaXYZaTT^a_SZ]YV\X\eRRabR\R`^U]^UXbZaX^VWSeYW_cS\``Ue`QQY]YJU_URde\aTU\K^T[RbNON_Y`V\OVZX^TcYRcS]Q_dXVOUZ^\`bY_Z\cP^fW[\TLYZZYPZbO`\ZYZV\[[[^T`[TXiSaTXV]P`[TW\W]XeQa_RSOgXWY]WVaVd\QVRYZVY]YYTXUd[VWZV\[^ZWaTUSWbb_^Y[c[]cZSR^]R[^Z]eb[[QbY^[TSSX[ZZ`TVa^STbT\W[_Y[Y`_aVYW\PZWXdP[PPR^ZWZUZSYU_\V]Z_YUN\^bSY^XZYV]RXYe[VTVWYY\]cP^\hfVXc\c_\YV]\RYR[[XXX_g`XSV[ZR[bVWYgbYWbH[[SWXXVVYWZ^X]VY]Y]n\XTS[RZWUSVXR\\V`XR^Y^_]Z^MXXZ[YWZfdX^VXbYWWYT\XV\ZWW]g^QSSYVaZl[_^XX]V[XPV_[dWZTaP\SUY\`UX]RU]_]VRgX]bWX_URZZrYXX_MYW^RYS[`ZYWXXWTZ[`VV^YUZYY[Z^\_ZWWX[UY\PV[X]bW]fXYXOZ]d\^V]\RU]R\S`TVSV]UXUd\aWXYbU^]T\\WZRUYeVRXZW]WRT]USYYL`^ZUWZUOVmcYRQb`WWYZ^^S\WX^ZaYV[R`^]ZZZPWe[[TZYY[VT_Z^W[[UV^RYRWXUX`ZW^[YTXW[YaU][YZ^WT[Za[ZZW^_YbcTZTg]\[[]VX]WZZ`^^bW^\Xb[[UU_VWXV]YS_]VVZXW]WVTZZ_XaY_^RTSTPTbVZZ[][YVZYV`^c\X^ZQ]T`Uab\WYYX^_U[YRULgS\Ta\aZXWQWVX^X[aYTYYUZWZ][hbTaVXX\Z_VVYg`SV`VV]V\WVYYO_]]bZYZX[[^\XRV]XSWY]XY_a[ZeUU[Wb]TX[\a_PXS\YVYUVTfa_XTV\eXS[_XZQgPWYSWXc`\WV[ZXbWYYa[W_Y\_T\j]VXSV\WV^U[VZVZY^YR^W\[[UYXaUTca]U[X_RV`XZT[Y_SPUPZT[SU\YU\WU\_[[_YUWZ\]Y][a\\WWPU\UbQZ[VXWXZXU[`b]TW\YXQQiZ]UY`YX^XZ[]^QZP_VY_Z\cWc[V[UU\V_UUZVaaVXVUXWWUTRbY]\Z]_Z_XZ\U`\T_X_YVRXSVaScWUbUW`^]WQZ[]RjUYWa\Y_dSbU_\a`^Y]S\`XWW_W\c\b^cUY]UX]\ScZYaR]a]\WYkNY\cTS^UU]\^\UUU[[S_TTZ[TcSTUT[^TWT`_S\TQ[[V]UZ\[VS[P[S`Y\W[YYW[^]]cZ[UX[bZYQQ[UZW[]XZX]bZXX^bRS^[^XVPZ^[S\V[^^UWWVWZ[RVRS_[V[\U]UpjZ`cTUTKWc\ZZYYdL^RYb[U`aQYaUWaZoT_XZbVc`hYeX^bV\a_Q_W]Y]Z[X[UUZZb\_\XO\T^[_RYdWW`TNZWYd_IRRWbaVXT^[TXY`XQUZ^bYRThfY_]_UPd]X]IYR\Yc`YZWZWRSbYTU_RYWZbUdUh[_Y^XL\YNSSVWWdX`YWTQa\S`b\WZeeUVY_Z`W[k]YZ]_b^Z[_UdR\ZdYWWYZWXPYZ\Qe^`]Zc[Sj]XVX[RUVSMXRaec[VUaW]TY^ZNXYNXXyM_^fZdT]\biR[V_gYW[]VXW]YYeTWaa\ZW^Ve`Y_ZZj\a^YY`bVjXgPhTOoXRdWWTO_VNXd_\aS^XVZY^\O^`bZLcbfchXXO\^cYPu\S_QZefWYd^SSV[QUY\]PW]]UdY]ZTWYOXYVS`WelQW]SVS^f`Md\YaWT`X^a[RUZXR_hcaYZdRRUdSXYPcYP[TT^ST[[UXVcNTS^XZQYS`_Th^RYWT[PX[RMT_^ZlcRXWYQWYXV[^YR_Yf_XK[`V_^TY[SSUWVY_VaWVQaYi\XahSXTUTcYRRTZcS\XR]gQVUdYZ]QUS]bVWTpRVUVeVXT]^RVY\\WSXY[YVcW^YcVVUV^ZU^U[U`[WXV[XO]bQfgUN]\Y]ZX^QUZRZZUSU`QY[XQXe_ZZSWUYa\aV`gQ^XWVXW\UlZR__cTZ[[cQ[[XUaXRYZYaf^UPTT]]VW]W[[\T]Z_V]QPZV[TQ[ZbY_VZUbc\WJXVYYTV[\]Vj]TZW[YbZS[V^VYSbQa[O\UQf[^X[^QY_V^N[WXU^ZYcbZX[cXh^QYWZZ_SPVZVcPVb\WY[YjNS_YcbY^UVTU^\[XUZTVZ_XQXYQX\`^cX^b^WL[[]WUXR[][SZ\`ZTZYP[^WXX\Y\eV]TWUXZaTZZMYY\QXXZ`[^WPRU`UZ\_VYZT_[R]dWZXj]YSS[ZYY^Z]\^Wa_\N\Sb]UTOY^RO\SVa^`MOY`UUU_ZZaZYXc_[[TTUcXTU`YSYZ`\``]WTSVT[bY_UecXSScZS[gN[[[U][YSS\[ZYQbW[WTa^]UYY^S]Q\WbWTbcVUd]YTXdU[YYUU\[b^[_VRSZRU^YZaVWQZV_XXbZ^W]OYdV\VZY`WXU__`]VXVUUMXXR\[^YV_\ZW[TWYTY`WYTWoPbQUT]W\P]X`ZUYUUg\PWVmcbPSXWS]]WUe^T_`T\]XX^RS_XTPS[`UaY]]Yd^fS[YbZXU]S]V]PQSVYYSZ]b_PY]\VYW\^V^Uc\Q\YaW`W_UWXWaL]GX^RUUVV_OV\WY__dQXVWXb[WlXUVY^[[V_V^T_b_SeVZ[STP\Vbdg[XS`fTVW\^VSZXSUXVVgZ^ZPYP[VUeWfVNRU_RUSS^]]__OPdjQ[^\YY]W]SR\UOZbVXUPb_^]U[UeY[YVY\SYPbUeSi\]ZX]RU^\RYWR`\TQSPN^_W]_MRRNZ^XiTXW\PSXdXaSdMWSa`[YWXQ_cp\WaVVUWdSRS[W^W[YRUYWZ\\ST\TY]WVUcXf[TVN^[[TUUTYTRYVWVKYRT[W^TTbQIZQ`_W[RNZXYTXX^_bY]a\Y^WVV\^]Y[ST[X^R^QV\K`cahYU_]QU]SXYYX_\WVT\Z[_\]U\U\VcZ`fVTf_]c^X\RUY\ZXYSYYY__UYZYY^aZU]bZU[[WLY]MUX\U\^SQ]X][Z_RT[]\UWW]TS\]VV^\YZ\[[T``T`YcZZR]SXWQ_\WafWd`]W[ZNZY^UYQR\^VWSY[^_Y[XW`Vbh\GUX^UVcZ[N_aWa_^TSWZ]ZXbYYX^O]\`Q]g\XWW[dcV]QRYmU\YXWP]S\WRWWVY^X^V\\Z[`]Z[_X^UTUW]ZcU\T_Z^XXaXY_^XZWV[QaaXWQ^WXZaY[^TZ[ZZY^X[UX_]V[]^W\VVYY[TcXS]WZWXOT^\\Xd]^YU[ZYhY]XVVV\YTZXaSZYV]aTSXS^O[XXd]aXX]SZ\U[aTcS^WSY_WRZ[R]gWfQ]R\]]]XfZU^\WZQZYX`\]WZ]aeWY]d`^Tb\X\\P[M_U[XWUgVaXa`Wa\_VPVO[RWWIUYS]VbQWOWVU]U_ZXUS_Y^`[WVSQ[c\_Wm]RZQX_hU``]c_`STSTUTUVL`_XO[RSW^bWVUX^_RRd`VV[Z[TSb]P[bRUYWQOWR_Uc]]WZ^fVSaeKhKRTUIcTW_``VSUZVQ\YSUZaWX[aZb`X[S]^c\YUTZ[UV]VWSW\WTU\^MVdWZXPSZX]^TaT]XVZX^WZWaY``\UTQQYOTTY\RWTWMS[]]TSZ_]\VY\URUUVgVQ^TTO[b[X__Q]WO^XRT]g_R[W^a_]SMUPXWU`\b\UX[XSUTd^]Z[T^P_W^[TT\VYZTYT[fZWaST[N^UTW`[UWXUWY[^aUYZVNTVS[\\UbUQ[U[UZd^ZX]YUWWOabXiU\aU]XXmQbR]Z^cU\^SZje]Y`Y\_Zd[^O[T[URd^cZ`[YXeVXRW\ZW]\YSb]_`aWR`cWZTdWYRSQcY_T\PUZRTeXT\a[V]XVVVS^[iYVXceVSV]YR]_Z^W\^Y\PT^^[[RZnU]WYXW_aVb\WX[T^Z\WVZZ\eVWZXWcYWXbUW_S[`QZaY_Za`XQ^\Z_[g\UXNbX[\fVV[Y\U_UZXm^Z[YXa`_Qe]dTZWR^XXQQ\\b\LZORVXVSS\XQ[Z]YV_WVXj][RZYQV[WRSXZ_TQVQ\\eUaVX]^VbeVa]aaibYfe\fZRX`WUYYXWS]TZTWVSVV[[[aS_\gXXS]^a^X_\ZYXZ^`XQXZcW[YYUTTSYYRTYZ\WS\U\YVW[YW\^Z[XQbZUYQXYWZ[VW_WPW`X\cRO[TXY]UUYU[_W^S[WiY^YY`b\VYUY[ZXY[YZVa]ZYZUgT\X]^YUYX\S[^\aY\abU`[Y[Rbl^X\NWXYb[^_bYXU[]YXge[SZ]ZZY_[^T]WSXcZ_\SV\[ZeSYa[fV^[Z\T`WXV^ZZ`WaYTXQ`[[\\R\O[aUWXTVW\Y`[RSUWh]]V[fUW\\ZYU\MXRX\\T[SWYaWZ[WUPXZTXX]V\XMe`\V_YWiYUeU_RX\^UYZVS\X]V[YRWaS\[UXX[YOXQUWZT[aZXdV[]QZVaY[[^[k\_QVSUZUY^[]^[`ac_`b[Z\XT]VYWXZYSX\V_Y^YY[\XWYWPbRYZVUQZXVPV\S]bX\]Y]YT``_e]UUT_XVYXYcZTS[^ZYaTS][YXU[^SXcV[U^[^WQ[[[dVUXX]_QZSVR^U_RXZS^V[XV[W[Y`\ZXaUV^\dZUVZ[R\V\]WZUX_WaXWRTT]fXYZ\e_]^TTTVYYSXY`_U]]^Z[RV\dVXSWZS]^]R^_aXY\b[S]UZ\Xa`XYSWQSYc[b]\YP[UN\V]X^V]b_[UP[U_WdaeSWfUd]^VQ`mX\V\Z]YZYUUUZ\R^W[ZQbX[SUPXbX^SS\ZUZ^Z]_U\WVXR[T[`[^X^\[Y^\]U[W]XVQV_VZZSUTNZY^`^[V\\_gRT[T`_N^V\SQ\YZ]ZUX^Q^VY^Y^^aW^XbXW^_W\bW\\_WfZaXMYSTU_[h]^VT]WV\[\\Zf]\TXWbc[UQ\YYY`_WY]SV]MVYXSh[YX_]VTagXS\[S^aXUTWVZ\X_XX^b]fXU[kUUS`TRY^VURX\\_[W^_[VZ_\[YXX[\c[ScW][Y[]bWV]_XZZZQT_Y_^WZ`[b\[W`\dPQXV_^^U\ZXV[RUSUZWU[XPUMV\gZQQYS^aVU[Z_XWW]ZV[^]WZcWT]S`VW]ZXc`Yb\^XV\TSXX`RXYdXRXY`QU\]]YZSXZ\d]WWdS`[[]]Tdb[U]n`aUaWZ`_WT]]]aXXlaWW[][YQXZZYUZX\SW]Z\_[UX_SWTTV\YVZTTYVZ]Qc^cTV`U^Q[VdTSQTWR]YXNXVQOVSXZTY]_a^M_R\ZXYRc[WVWa]XTa^WT^[Y\TYYXR[_TZY_]aXW]dX_\Y]VX`WVOaS]SU^\ZTXX[T_YZSTZT`[_TR[`P]]_Q[VZSQZ[X\Y\YRS[V[VV___URWTVU\]]eW]_YUV\K\^]WUaZ\XYP\]\USZ`YX_Z[XUbY[NYUaNWVS\I[\PYO_X`PQ]UV_^S_][QZZ\`UQYU[a[_VZU\X\]Y^[S[^UXgT]YU_\b^YU]YY]ZOZ[UY[aZ_XXR[UZ_XVeZUVY\PP\LWhcZ[UZVc_VP\[Rbb_[]Re[X\XM\^aa\TZU_aY_TWXU`OU^]V^YPUWZ\ZZXYV`\]Z]YT[]SY\^a]`f^R__[Y[ZRP`Z\UWYZW^VTRS`YYdYU_[[WXW[X]`[W_W]QOZ\ZU^bRe]b]X\[[XY^[`_UYZ[Y\UW\ZfVUQ_aWV[V[e\fWXVRc]TTiZQYV[\O^d_R`YaRaZUe\UXXZ[XYa_USYT_SWP`YP^S`V`\^SW`bXaW`VVTUVOX\TpU[XZZZ[Y_SV_QWTT[[VSXc`PPcRMQT`^UPY]UQbYXVXS^XSQM^_dV\VWaWWRTZU[U_P`h^QXa]^\]LaZNN][]``VTaT]ZP_^\^T\U^]ZQS[`Y]WXWUQe^WR_cXVb]ZhY[ZRXSaTX]SfVPUVTUQ\ZRP[\\[O\WS_][]\[^T]e^RVVS\kYYd^Wa[Wc[YOV^XKZVUVQZZX[[[Q[^Z]\SQUaYTNXXgZOXWVcbUUX]SY_ZOYYZZXdS\ZUb^PSUXVS\ZULZ]\WW[^TWU\vTUaWWaUY_`YY_\SMVbWS^\^[VZU[\XSfY]eQ[a_U`RWVYSSTb]ZaU[VTZ_`^Z_YXXaX`XTVVYO]VO_ZYbUWQbY][W\W]]]]ZUZWSWS\]XUWaZ_bZUYUW]VV[hT``YUU]^`YXVZZWSZ_[X^UVb`a[ZY[]VS]W]a[\SUZXXaW^_UZYTVeWjQTUZ_WPW^V]_YQS]]YZ]YRVbXS\\YX[WW^ZO]Y\X[`VRQaT[V`YTXT_YPSLdVk^]WWQNSbNXW__YR^TW[Y[]aR\UZ\W_VaVQX[OWVPXe\ZW[WUVQSgY[\UW[TUU\]R^^TQc^b\]YQ^\U`QZU`bT[QS_dWRZXjaX]^UZ`XZYN\Q_RS_SZ[Z\UO]Y[XXZ^SfWRZM^dZWWUVU_^`[cUaaZZMY`e\L_T\Q[Y\TU`[JT^ZZ[UX[__[YY][[eY]N_TbYV^Y_Wb``STS^QQR_\SZMW`XXgX_QRfUW[^[XW_WXc^]_XZQ[QOUX\RR[X`TXS`]SX]ZZ][WX^Y[Z]aRVZXZWbX_]\YeQP]aW]]VV^WVZONb_YUOZ[PTR_ZKQ^XY^[^^dU[RZbVZdVXZ^W[OXQ`ZW[VNY^O[^RgWTO\ZTW`^QR[ZYeZ\TZZa^[]YadXRW]aXSchTW`c\\`TV][S_USUYZ\W\TXVYZRXSLSVYcTYQS[Z[`T_MYggS]\b``^TZ\``eW]\T[KQV[^VW[XTc`XdSaWUWaV]eY]ROR[`^ZWVYZ[Wg_SQORiYddV^YVX[UTYVa^U^a[W`gSQc[TRTRXUVWTbUe]USZdb^ZY`VZbX]R^X[]]WYa[O[d`YQY]XTYVQ^_TY]_RTSUT][UU]i[RaWP`XWT[XibWbcYSRWNZ]VXXUZVMkR]\ZSUW\I_][T]`^_WZZ_UPhc[XUUUWZPXT\[^VTfPZZVWZX[WOYWUY]YYXb[_gZ]_TLW_Oc`R`VTX^Yc^YU``X^VbaRMaY\cWTfcZUXTYQYceWZ_W]\SbRYePXUV[MS[TTh[TSZRiY^TVT]I^[\Y`ZQZ[W[UR[Q[^XYZQ_^PcM`S_R\XZTX^PTNST[ZRcZYT`]XXXPjP_Y[VbWgSccZY__VgGYW^\Z]IbTV[RUZ[R]PUUXRaYbQ[]SYXUZUXcfZZ]ah^W`UWRWYY\R\\]QSPXO^NYaXSWOVae[OiWWZ^UT[\YVSR\UVV]Z[\[WYUWNOWfSW]\YYbZ\a^QXVY_Z^WbS]URT\XZU_^VWSR\_[\`jXkY\R^U[YeS\bZ^[WUQ^TaT`QaWZ\\`]W_XWVYW]]S]TdRS_W]e[WZXcRb[Te^ZS_YRSXbRSVYXYSX\Zh]]QX\STX[a[Zoa`Xb\U^TU]]ST_[ZTW^\cbRX`\PZY`VS[\[Yf[bS[Z`]WYRY^XX[UX]d[][\[^[aP^XZ\U]Y\TZZTUZZ_\R[`Y\W]\^VoVTVTaXYTW^_^XWYYW`XfZPWT\QcT[bQWc]_TSXZ[^b[QU^]YS]VaWV]aZW^^]RQX\P\_YYWTYTVddZZf^XYV^RYXZ_\\Y\ZWQZMW\Yfa\ZX_aZ^adVTaaT\XSVOZYUVVa`T`Z_NXa\W_]eZ[]ZZ_U\Q[[bOaZ\_`YZTe[\W]`W[XXXV\\WZTU__[SQ_XcVZWb\QWU\aWXWZW]^R\_Z_YSX]V\YX\[Y_XX[YT`^[_RY^`Za]dYW\W[]\S`Pc^UTUVWZTTRdWYQZaX\PZWXW[ZcYeWVU^ZZWYYZV^XSV[aXUZ\\YY]^QUZ\pTYd\TaZ]WTVWPe`YYUPWUa^k]VXXW[d]UZX]_PY^X_T[YVYJT\U[R\e_P[Z\VU]V_^XZ[aX\RZ`[XYaX]_[][UZ]ZX\]V[^\\aX\a_c^^RV\WUTXTU_]`\Z`[Z[^[YWX]UVZ\]^X\XXZP_[Y\`PU`W[U\Xd[[_XVY[\\UaSR^Ue`W_VY^``V\YX[Z\ZY`Y[ae^^`dV]_YT[[YZWW\V[ZXX^`cX[VV_YUe^WWaU`_h\UTPXU\^\YTgWVVWZWZ]RZ]QWXX]YZQQURWWSWSWQRd]\TWV]\YXTSb\TV]RMXWVYRU\``Y\cUWRO\Uf]WTRN]S[eaPY[UX]X\[VR[[Y^_T[^ZUgXTSbU^XgO\ZbUW]QVU\UVQZYa[O^^a_^]Z[Y]\]T[_TP`SVRWW]XZd[VUQVXU]g`Q`ZRX]\aR[`abJ]YW^TYZe\XaY[Y^Y[WcX\ZZT]]UQ]bYRZ[U]YUZXY`a_]e^Z_V[U[dZY[`^Z[[YVWcYTXUX]UWWYZSZTWVUc^YYW\TZXVfS\YXYe[ZW[]VSZUQXX_SWcZZS[\U_fORUZIVR_ZVT\\^UfQQ^iZ_WZ`[RY]VU\][V[YY\ZVeW][\b`b[aeR`T_[XX]Za_[YQSV`QU\S[X^eXYYTZ`V][STfU_X`paTWYZRTV_R_WSWX_SW`Ya\Z_dZ^^V\_XW]YX\W^YYWZUZ[dWVTSXSN[`ZSYZd^WXWa_ZTYR]][XR[be[TXZbQV[YS]fWWf^\dRRX\ZRU[[][W[[S_V`YXSRXX\W[WTSPTY\YWX]\Wh^XY^RXYRWUUXWR^_TUQ\QcYWcbb[_X_TX[ReYTX_aXRZT]ZU[_[X_XS[XS\][Sb]]_`]bZ^_SZ\X`_XZXZ[XXVbSQX]_[_Yb`SQ]`Z]V^[]]V\cbgUaZ]VSTaSZ]UQ^\[ZYYPYZWVW[VWU^Y\Xa^bWZX[`Z]Y]]\bVTQUYc^[YTUXV`]bZTXR^W]W`ZXYWQWS\YY[d[a]U]`Ta]\TT\^\Xa[VV\ZWVXQUVV`UZYU__YV`U_RVXR[TWZ[UaehWSVY^QV\XS[SZR\UfRgT_WX\UVbZ^J`PQSUZROSQ\YYV_VR\RSSTWHUZYWPXXT_X^bZXUYb[a\M[S^T\[ZXZ^YX]bX\\Zg]X[SWKTRVR\STS[`X\YY[_TVUXSUXX\YYZ_[][V\ZYcS_gRX_\[VPSU\YRY\]aZabT]_V_]Z^Z_O]R]Z_`W]RWZZ_SZX\[\VY]YXe]V]Z^YaXQZ^bdRXNYV^X]_b^W^XR`\YXZZWS[XU\dZ[ZUd`X^XV[]bZ^XQXX[Y`XUTa`\_XVWX\WZ_We`QXZZ]WV][a[UU^\]h\Ua\YYW_TXV]]cYVXZWTW_XUSUVX`VUXYZTZXYY]XXSXXX\bXO[Y^XWc\_ZdMV[TXRVgXVZ`_[VRUVeY^^TaZTb]Y^YaZ\TXX[_VUTYUU]W\VY\XV^``^QWZcZ[dZ[TUXYVWWTZ`^VO[XSYTYUUVWZ^Q\Y]gY\^ZU\]\T[eeb]aZ]]U]YU\_W^SYVZZ\W]WS[U\\W]UZ`aVY\VWa\XVT\TXU[WYYQW]S[`PWc]bWX`ZUTW_YdVdRW[SZ[YVYY\XY[WTVUK``S_SZXWSUX^WUS\W_aSVSU[^a]Z\VXY[VadcTaTcYWRZNXY\`YcVRU]T\VZ]YOS_VPXX^UebgZSTWWSYWXYX[\\^[`\\XYZV`U^T[Xf]_WT[`W_ZbWTe\OUT_[\YVeYaZ\^a]XVV_RScaQZY_]^aS^][MTQV^][a[_PZZ[XfZ\TZYZYWUZdXQ[Y^V\QaTZb\N^]PYX[Z^X\Yf[X]`T_[VZMVTTUS^[Qea^Z\XS\W`ZbSc\V_ZXXQPTSZ`TX`Z_`TVWV\ZZU[TgW[VY`QVV]WS_aVZ_TXWZ_USVOS]VWVhYY]_QQNiS_[Z[PdZSWX^[VTa_ZYU\RPURP^WRZ]XXUSYaRU[[]`UQZR\Se\\^UYT_^P]Y`VZ^Y[cU[Z\c\WPVc_WTXVcX[[Y^PQTbbXVUUTVWZ\[ZaTXVU`WX\TeabYYa[[X^VYS`\C^][SWY^W\XVWT\NWeZUYaUZV`Z]Y]XXVWMQ]UYY\^`aZ\UXXaZRc[XTZ^\XYZ[c^SXS[Y^VSbWbYX`Z[VTS[VZVgUYU[\__\ST[Y[\QZWZbW[T\bZVX_UYZYUUX`]Z\X[VWX]YbS]\XWVY^WUXSWWP[^YVQ]XV_dU[_PX]YTS]WRYfQ[YLYcS\bW][`[XW_XT]`^]XT]X`a]V]jXa\]_T[\[]]ZYUVZUUVcOZQ^Z\S\aV\YOd^\YcbVQW`U[WWY]YVVS]dUYZ\XV``XZ]UXUWUXZ^U][WUWWZ]Z\]]Y]d_ObSaXXV[Y_WW^hXWX^]\VcTZ^_YNbO^XdY^P^WRYXXZaXZZ]e^RX]S^g[WWaXUVZ[R`_b\V[[cWe]\X_XYQW^UXUTXaXSV\RSTVZ\\ZVTa]T_VM`ZX__Z[^VXX\ZYXY`TdZ\ZT[dScYY]YYXWPY[`cW`\aU\TTROb^Y`WY^eaj]SV]^VYYW\b\ZYYXWTYS^ZNdRXUPKYXZdZXY]XUT_SYWeb_UYN[\VSZT]M`^Ya[WY_V[aW\ZU]^U[`bV[PVWVPeZUSRV_g`^UX]^STXU[fYZX`O^HOQ^URWUX\T]WQhYQVQSRUV\^RY\[^TdXUZ]`bXUW^TXYRRV_b\`PZe\YYSQMVVdd[SR[WX\`c^[WSVf]i\bVd[VYX\fWVXUQjRQ]XLd^XWZd\aP`ZhW`\[Y]Q`TXUYYSQfWZUQiTVTRcN]bVYVTTagZaTT_[YZQn^R]OXcXcQc^UZ[^TWUgT_ZXVWKQ\]PXWT[X_YV^^R_``VPQcY[bKM`i_bZZ`cV^Q\W\RZXbZQU^XZX[XY[PV[\VfQT\\ZU[Q]RYSUY\[SUWWXYW`ZYYTLTT_YQXab\SXUT][ZROXQ\MXVU\_]]VRcWTPZZ_X^\YbKOVQWQ\T_PXX\QZQ[^W_UVOa[RZXUSTS_\SUOVU[a[_SQPVQWgSVQTV\W[QNY]XQ[^XYWVVXZWSUQUROVYTYU_QPUN^YU]VVW\VUYaUUV[ZeRKROWT\S[WaVVVKVRc^[WW^`[\O`\WcZX]O\_UXOP^ZNQ^NVRSUZZ_TS^XUNSP^P^^aTU[VRbUU[`WVOZUXTcSTOR\VXYbWb\^TW\NS\WJQV[Z\[[^XWTXTQ]R^XXaST]cX_XYT]Y_RX[R_TV]OZWZ^`EZdWVQU[YWRP^OU[VSaN[Z_ZSUTYSQSVSWVbSIU^UWOUYUU_OX^[V_TZWY\Z_WRZXYSYW]T_SX]ZbW\_XY[X[M^SYXWUWVZPUYY`\Y]W^cY]YMZWUVVVc`^]aVNX[Qa_YWWRKXYXO^X\[ZYaPTNe`YXdTQa\Y[]TZV^_NYhSYT_Y_Y`^SUWMYS^_XRZW`^[\dV^\`ZfQOaZcX_^W_T_^X[[c^XXX`\_UXZWS_k]]U[Z\\XZ[`RZY\Z]_cTVZUSZ[g`]]PXRV`d]`S[\^QYcTZZ[SQ_^[dONU^a_`S]TNV`W[YgW]S`SSWZY[c\Q_YP[X`dQ]cXeS]\dT\SWZ`ZZTVW^T^Y[Q\XSVfSOYZ[XZZWV]W[_TVWbQ`cUOZYVUa]VLUY`\\TaZYR[O]VYZLVaf]Z^`XY[[U]TY`aX[][^W^_T_]TUXVZO\U\]Y^eZU[]X[SYXTZc\^`UR]WRU\WVcZ\b^TSZYWa^Yc^ZYYWXZc`YSXVVWRUU\YXTY[YVOf[[Y``XQY[VRWXY[XUej\[UX_`X^TXY]Y[WWVUU[Y_YhWQSSVUZ]UUUNWY`MS]VXUMZ]ZY[VhXXWRWZUZb\Si\\WafWTLX\_ZViVOdUZSM[VY`Y_NVUNYZg[RT^_Xe[Tbb`\PTZU[^TU[WXZOTTUYfW[QUWbX\SY\^YaTWWYXXW_PYU\ZSTWaX\`kYY\Z[T^WY[UWYTXQ\TTY]^fVZbc]VY[WT[`[WZV^hSeU]UePLVT]TZTX]W[\]TR[RUXVY[QMeSP\`\d\`d`Q]\[VWVZ[YX]W]SXU^cO[WTV^_U[YVaSS_bYYbYXTd]URYVZZ[VZW_WXRaZYZM`[[]^aVSZaZUQW\XVXTXV[\VnSWRUVZZZ[\YU[KXZVR\^LN^[c]MV\O`]]W[_][S_\^ZiTWU^VQVSUWVXaQXXQTPXRfTRIQW[[QWX[bUQ\`YZS\cXUa]VUW`ObX``SX]NUedYmYW^\Y[^a`VV_TUZ]XWQ`UZZXWbU\c_S\UPXZXXYVQ]\jZhSUWSQ_]aV]IXZUlXWP`eZZPW[\VWUU`MTTSeZY]Q\_VRYW]ZSXS[SYaK]]SUa\[SW[_^SiZXd\YXZZ[_VPPeWQU_]UXd_\\`\WSLWVWhSd]WSSXVR^_TZXUZX]aTRVi^T^TWWQXZ[^aRTTR]ZUVV]RXVWV\[]\[[VZ_YdPS_]_MUUXV]W^V\WVeQQXUYWVW[UY\VWdOXPSdTR]dYWSXeURRXY\Wb^]Y[_aeZVVaY\XWVZX\Qb_KNXV]fZkZXTV\YU]p`^_\e\eQPX[RKWXVUaVYXYSTYTZQXd\ZY\\gVWVTX^UUQV_Wc__XXVTZWWe]VXrIZX^UP`]eWX]RZTXeUX_RQaYXXY_cRT_cUYVbb[[f]YZTTWa[[\bWKRX[WMV_[[V[TV\QTV][]VU\TYZYXWUN]WY]dV_cWUQXVcaXU^`UYXWfYZ\VOZj[\_[O[[X_]ka_^MQRaQZTUQW\MSiXZa]X^ZbQWXtWaZS_SUd[TZ\^X_c\dYbU]XlVP`Q[YU^TZaYT]P``W\a\S]eWUVZUM[aOUZa[Z[`^_ZT`VV^QWSmb`aZVX[UcSZU]XYZ`U[L_a[Y\c_V[ZQgU[RcWe\bcRTWZ\VbZ^N\T]WZXY[YY]US`QfTW[UYS\c`TW]]WW]SX\WYX\Zb\_Z[][\S\]T]\O`ZbVUUVXOP_][SV]^[TYX^Z]nZ]a^VlYZYT[NdRZVXTd]V][\ZYUaWY]VZWZZQZSY[`XVUV\]YX\[^k\V`VX]]UTVScXYUZ]X\[TY\TY`X^]ZUYO\RaYOZ[T^]Y_]VVZUZ[Vbd[Y\g[]\dc\[UT^bV[\dZUUcZUXSW[[Ua]`UaXT\SVU_[`P_VUXZSWQWW\[S\WY\N^SWU_W^XVWZ[VTSYZ]X[^VVS\\YZPOWWSWU[^[UP\a[V[fTW`ZcYRfVVX[Yaa[_U]\[XRP\\Y`g\TTSXXV\`Y[\RZXYUYX^[`[_YU[UT^TTWZUVYYZUXT\YTYWmXZ^T_\TVaVUSYU`\XZWXXUYXQdS]ZST_VQa^VZXZ`ZZ`][[VYXQ_ZVZZZWVY_WVYTU[QV]WZ]\\^`[Yi_W_XVY[RZQcXYUUZXXVVY[]]RW[XZT_XcU[^U]ZYa^WZX\aXPW{Zc[Y^cSW]]U[\X_Y[ZW^[ZZU\Xe]ZV\Xb`XX[YVW[SZSZVXUYRY\\Z]aYU`[]W]X\YSX\^]VUUYWWTWWUT[aY[WcW__[\[WXYS[[]hS]\VWT]VWV``\aZ[YTX[Y_XV`QWWS]]Q\ZZU_Y_\_XXUXTVbTZ][XV[Z[XRXTbW[V\_\aX_bXZW]X\VU^WSZ_aiVTQ]`VXT`^a\\TVVT`hLWWT_]]Y_UX]]RUWYZXYWZYQ]^WUW[`K[YT^UYVf[lX]``UZW^W\Y\\U_ZX\`Ze]\UZRYZUYXbV^[T\\RXgXVTZ^ZR`aXaN`jX]YW\YWWZYhRa[Y[QSRWQ__VU]YSYVUV]W\SX^YWgO_\TVcUb]^WTZTUZVZY`UZZUZ[VQ]cW\V`V_aZ[ZW\ScVa\fZZ[]WYSZYW\OUZW_WbW\SV]SZZPXT[^Q]]URX[a\\Y[U]WRY^\XaYYQX^`]VYWYWVYU[jZY][S_YW[X]`RPZbY_WUfQUVTcUVU\UZ_]X^dXQ\XP`WYW[X\dUYOVTYV[RbZfY]U]`YQTWYO[`^Z`XYTVXYemXc`iTUS[ZWd]Vd]d_XRQO\[TZVoW^gW[Y^WX[\ZZUXZcSeZ[TXV\YdT]^YZc\XX[a\YX`YUgZUZZ\PZVYTRV_[]_^W]T`Ri\UYX\_TWUkYX`OW\^_XUYW[\XZ\RU[Qc]V[`[Q]]]X\bWSLPP__[[T_X[^S^OZXRXO\a[[^TVTS\TYWTVRZ`Y[[Z]ORcVZ\]RYRSX[_SaZVWSXWYVXYTW[U_W^VV]\iQZTYXZ[X][W\O`W[T[ZhVbXX\YX`X\[_RU[^[VXQYU]bUT_[bNWYY]S_VVXXc[[[\T`]\Y^g]_YXYfXWNZh[\XX[[Y_ZU]XU^Z^aXYYX`hVU]TZXX``Y][bT[\SaS_pVTW[_\^`RPWVV[W_S`c`SacZ_\R^RW\UXTYZZYZW[SYd_[TV^VZYR\[WfQWa[[iR\XdWVlWZ\ZZYV^aX[\[ZZ[UQUYQOX]YR_eVZXX[ZZ`[]Ua^^^aY[_RRTUTRTWTZRVbcT]TPgSZ[Xa\]W[Y\URY^^TXc[_]a\[]XXb_bV^W][W[XU^QSZ\[^OX[R`T`WZZSZV]Zb\]X^Z]VTR\\[eUY^YYUS[Y\Y`NT^aYW]T]QYXVYY]UT[W\]SUZ`ZeQVR][UU`]TP`TXc[ZaXVZY[cUZY\]X\Z_ZYXWXXU[W_`]]cY^Z[\_W^WUS`[XdY^YT_\^^[W]^\[eSXbV[YY[V]_[[]ZU]VZ[VOV[Y[[][W_^Z]VZUSTOYW_UdTadX[]ZXZZUVYWZTWXXVYY`[WZ[SOWW]]SXYTQVWY]V]X[_W\Wa]SXa^\eZX]PR\`XdXSg_^[XXZV]SVZ]Z^YXX[_ZVYXQT[aXW^YYbX^\aX[WZ_^SkVXb\aX^YYY[ZSY_VadT[WZY_b_`XXVTWZY_UYV]Y_WX^WS]R[Wb]Q]Y]aWYYNSU^_\_^\Z`XXYScYYUXOY^Z[[_][XVYZaQVX_`VZSVK[jVXbV\]XXe\_[mYUXZd^ZOV`ZZaTX\YVe[W[^\XXR^Rc^[WT\UPfXY]`WWWV\STU`MS\a^XX`VY[SV``USWfcZ[]YXUO^YQWXV[UXkliYI]_\_\SOV^^VYTaTXW`UVY]PXZWXSRWVaZR\VV^WTh[[Y\QVdgYRZ\VYNUYUXXM[]T_W_V\V^][^WZ\Yf]XS]VYTT\eY^\^cY`WSPVX[YQ^ZVW]XRYXWUdRW\NVYXTW_a]UWgXUb_W[]_WdP^NYV[PY\UV]]X\VZT]TYVWSc]TScV[VWWbX\ZYPRdaZbWT]YSVX]Y__[TV`adVZUWVWWOe]f^UUYVPX_`U`YWSW^[_PTVVPQ[`SW\Za[PZ^[WZ_ZV_ZV\XXfWXVO[TVSY\[bcWRYS[]XZwZVWaXX^WXYS[V\WSVZV]Y\^a`[\V[fPXV[WWZ]]bX\XYX[aa[VUS\R^\X\QZVU[Y\\\YYTZX]WQ^RfYYXTT^f_SX\[[Y`T[_X]d]TZZWU]V`]`[VX[XY]aS[VZR_VV\[^XX^ZR\X\fURTcYZT]W_[\X[PVYZUV`ZT__b\hWY[WYUZ`^X[Z\WZeeY]^^\RW`[U]W[b^ZZVViR^UYZ]\WWV`Z_T[SRXRZ]W]UW][\Y`\\RZTSW\]ST[ZYXbW]Ve\V^]XXZOgZX[]UZXY][\^VX_WR\WPQ[TXVW\U]UW_X^UPS[S\WXd]Y\SV`UYQi\^Z_WX\ZW^YOW`][VT]eR[RZWiTQYX^T`_PVWY`gX[[XOYVZS_X_XNX[LWU]Xf]\_WTTXT]WYVXUR`UVZ`UVVZW^ZWX^TZRY_aXRU_YXYZVWYYYPg`h]]UYdVWYYeY^[TZ\\Z_XY`U_^`babYYNS_U^XQRZbQSWRX[UZ^UWUZ\\Z\ZNSTVcZc_VZ[NZU^^cVX[^Y\S\\ZRZZLXM_W\[RZSZL_^WX\\^WN`\Y[]][[WRUNW]d[]YXTT^RUVRWcT^[XPOIVV\_]VWX][VYZW[W`UXR^`UQV\P``]]STZ_S\XXUVRZUWXbR]`]R\\\]W__V\\Y^[^\YT_[VTPYU`lXQWV`Z\e[fca_\YUXTY]Z_UQU[_Y_fXTbX[_TYWT[`YNUW[ZWTZQTXSU^aMZ[\^^VgSaXPRV`\Z\d^XbQV[U^ZRWYWQ_Y`[ca_UWTNXU\WZ\[^fZZSRSWVR^cZ]\^Va`R[UlbbbZWhS\W[T`WXVPYdaX[ST`a_XRYSXP[ZVT[a[cQ^QSY[PJQ^Kce__Xq_Z]]TVYZ\[YeRXZ\OjOZ_UYdWSj^PW]TcR`Z_fYUlRa]VYVc^X][Q[W\YYUX\VaPY_XOWSVWUNl]Z[XYYPVXXb[__XWWSV[]ZY_TWS_Y[\XVZWSW\\W[SkZTWZaXV`YXT][UXZWVTie]WSRSX[UWSMk[PW_UYV[RZ^YUU`WS\TPViY_W`YWU\`[[_WWOVZeWOWXRZjZ^VWZWcYUTY][NUVX`[QYZVeMY\V[XZ\fUZRZ]VWTXdZTZ\VYXTaY^ZUT[[TW^UXYXT^W]^S]V[_SWR[TSWX_WfXSfVZ[bc_[\IXWV\\WWW`_TV\Y[cSYT]e]_SV]Y^\_P\UOOYL_X_^^R\_\a\UTVbbYZYWWXY[\`[[XZXXV\XSQVVXX[]WTUbc[_\TSU^OZ\e_SYU^c[UOTeV`_T_X`WUUQUWdc[SFZUW[[ZTZ[S`VSWVZ]LXW[]]Y\T]]ZUgVXU_Z\TX\cZUUX^cX\VMVRSVURVOWb\\SWSWVXT[Y`\W^S]VVYXRThWZ]Y[UaUYXV]XjY^[W]_V^TRWMVS]ZT_V]Yd[\WXUe]QU[RibTYXdY[ZV^`cbU\Q_]ZZWWUX\[c_[f_XVSQ_b`_VZYNXUSSQ\S[\O^bY[RVY_Z\XVVaZ_XW\[WZ]]^]X`ZXYaYR[WXWVXXYY]_[]\UUSTZ[UX[^WXUUQ]`[WYY_ZZWYVT]]YZ_TV\X[^_V\[VSYPZU_V_XWWWVd`X]Z]ZVW[_[YY\]XWTTV]WYUV^]d[cbVbS[YcWXX]X]WV[_^VVa`ViZa^X[\_]]Z\YV]\YX^[Z^^[ZT[]\YYaZTXT\Z]Ya]YTYY][\]WQ^X[\KUXXQ\[^_U\U[]XV]ZYZZYRZ_]YZ\[Z]WX\V\X[bXcWV^XU\UV[YVTR\_\`Y\]Z[[[XRVOZS\\VV\]\VWY\R[[UW\ZQVV[VY\[SbQ^S_^Yc][c_V\aQ`]]WYVWYYc\[[^VV`UX[UVWa_YYY\Y_Z\XXYWcRZYc_^]]X`[\YYTXZZZXQZ[W`PdXU\S\XZ`\\\ZX]Pf^\XW\T\[ZRT^TecZVWhV]_ZX^XX]W[Z[Wb]ZU\RYUU\bZ^XR\WYT^bXXf[ZaXYYWZh^NeY]Z_V]_SZ_^_\]_Z\\ZS^SQT]WWdS[eX[b`[W_XdXV[]VRV\^V\_`b[VT_^bZVZYQZ`T]VOS\UeYe[ZW]WSd[[^X]``[\ZWZXX[SeVYS[\S^X]XcRX\`V\[`XTcT]\``X^`TYXaY__\[ZbYTTZXZObXW[YRVXY`WW^]W\Z[YTW[SeZd^WZQ^Zc_^YY^]][PZT[YV_YY]RWVY\[gPWWdSWYVZ]V[b[\eaYWVRX_\YRT_TXSZV\U__[^__[UXT\`m[YRSTZZV\R]VZYXY`W\VX[VTcYYXZWVV\ZWWVSWWg`Y[bZ[[VW^_cWX]]TWX\]\b]\]X[[YS[UZT]Y]\WV[UXZ\_T\e][T\[Y[aRLR_VSaP_aX`d`X^WTY[`[bXUT[c_][VY[b\[hWfZ]W\[\^[SNV]WZ\WOXWYaTd\X_[XX_]^YUWPZ_X[V^V_\`RbVTVU[YQMVR_YUXXU\[X`]mR\WiaVX^XSbU\[VWQV_U[`bVT_UaaQXdT`Y^X[WSS\[^]TXS_^WX\[XWVY[Va`M`^ZaNg_aWZRWdWWZQ\Y[TVYXUe[VWTXWU`Z`dVVZ`P\]XYg_`Rc[U[aWQTZ[[\]YXXZWU[XX_[`gZ^_X^U_XVSW\\e_W[VTSZ\^XabW_UZXbOJU]XZZV_MX`Yb]T\U\VWgO_ZVQXPYT^YTT_XaY_UXQ_TU]f\\RYSVWX]Q\UUVbXTY[W\_YbX^^^VbQU_[[Z_X^[UY]\STVXXTQ_XVZX[Y\[QTWYTWUXQcW\X\\`Z\^U[^U[Z\[_V[SV[^U[Z[UZMUaLWZQ]X]VWW[a^_YW]UYUXTaVYYRQ\VUO]RbV^U]UXV^a`QcQPbUZ[bTZYTPQV^aaUVTT_aXYZ\Y\TX\h_WXcY_cUbW_P\_ZVYWYWXYX_YZVb]Y]V\TW]adR\L`YS][Z^af[UXWaYQVVY]OZTYYW[[VRUWWS\YPZVTSUY`[eHWP[]hT^Xa\`XS\g^XV]SYX\aWUYX\c^V[\WYVTW\__fT`YYVU`ZWWV]a[WXV]ZW[dYiUXWdST[Y`V[Z`RcYSW]YUcVX[TQVY^X\`UT[UdT[Y]\PR[V]ZR\Z^UPZ[[[dV^XS`Y^ZQTaeSWQWZ\Vd[WSZZX[ZY`X\Y]W]Y[^^W\^WZW\]QNXVYU_QXa\UdTVcZUfVX]]YXZ_WYS\[\RZV^_]NY]][YYYVUZ\ZXO\YWS^WX]RZXVa\[W_UWV]^X\e^[ZXVVYW]VUTW^U]Vb[[`V[W\YU[VSaN_Q[VXXVVUXY[QUWW`]W]Y\\WVaVS\X[dW\^YS^RZ]^Z_^UW[YTYUWViRXZ\XUVT[W[XWXQeV\_[YWXa_aXV[`TV^ZURXZVVTW^_\T^OXQTRZ\\Y[\VSVY]U[YXT][]Y\W\U`YTUVX^Ra^[`V[\S\_R\\[WZ\P^W[UYb\TTXUX^]\\ZR]cSh[^\^U\_UZSWTTU`SS[aQW`cU][UT_ZR[WXZWY]eafZa]XU^WS[]QYX[SUP]XRZaYIXO`XX[^LXWXZ`kY]ZSUVR^_Z]\Q[ZbXZS\ceRfcgeXTS[jUZ[X|Y[UZ]PT[e`Y^TTWW]aYY[WY\We`^`Xi]Z[^UXZ__UPTXVU_fo[_bc^QiYTZ^XUaaY\P\VcY\TY^XZ\]]YYWSZeTVYX^W^ZU__hXXV_T_f`]YiU^c]QVSVYW^YXal`RQP]SSSe^[lX`YXXYX^MU`UX`mSYUVUMVX`W^X\VST\T\\XXVUVUdbSU]XPW[`VSU_Wac\[]XTZ]UT\^\_U[^Vg\[YVUZfR\gYYVVRWZM]TXaZ[Y]Y[bQXQdUPPU_X\UZ^]]]_WR]Y]UQ`[\X_^QRYbU[TS[[^Y\|]\S`XYW\SYWU[Xd_X^\eQXbVT_SU\V_b^^ZZR_bTS^`a^U^VY\YWeWZZ]\aZ_[[^[YRe`S]`^X^XgfXVVXWVZWR_[]Q\S^_XUQUVX^ZW[Vc[XZVZU[_`^WU^X_RYXa[X]XW[US]XYWZ]ZV[WX_ZUg[TV[X]VXZZW\[^[U^VR[XXU[YX_T`_YYgT^[USZ[^V`]ZWWXa]ZX[`YX^T\YZYOXP\YVYZ^_U[ST[X_XVTXWT[YS`WSXeXWg[[[VTS[VZW[\[^^ji]W^\Y\\ZYVW`YTXP\bh\VPaXh[YiX]VUV]b_WTYS\ZPT^TRaT^\hYRRjXY_S[`ZQZWTV`^WaYW^XWZUPcWX^O^]YW]]V[VbS_e[RYWWZbY[WR\Z[[gURR[[WW\YVZ[T_YZ`YSZ]XTZVd[`h[W[Za`VWc\mbQWNY_PVQg_]VX]`V[_^WXUTTT[UVWTWR]XN_WP\\g`[e\MXX]YSZZXfTURVVT]XWbVTQVYSTYTRaV\\XZU`ZfRTUX\aRUTWOTZ[T\Te`[b\YY\\ScVYSW]QY\\_UVeR^ZU]XUX\UObX[[Z]gR\SVVPTZ]WYFeW]UWV[W\]_[]\]U[TUO`djNUSV_UZV`bZ\jZXdZVSf_\VUW\N\XcQdX[hVYWN[]XU]cVX^QWS^fcSPZWWY_Z[_^WV_XR^_`Z[VZ\`a[KYW_XPY\XW`V[`WSZ^YWMWUNaWV^]Udf\ZWbTVX\RZ[cXTRXEUXa`XV[YVdQYU[`Pc`YV]YYWZ^[XQW[SZT^[U\YSfaTQ\X]e[WXYXYXQb^]RXXO_WfVZZg\_[VdY`[bUYb[\P\WZRZ`XU\`TZX\ZZY[Yl\XWRZXWeXZSQ\a\Z_ZSUWbVV`dR[]`V]YUWl]U^^U\^Oc\TX[]^VPV\XW[L[WU^]]_YZ\\RZXYWUY]V^V\ddVS\T`TaXa[Rc\YZ[UUT`U`_UV`\^dWVebWUYT\[TYQ\Y[PUU]V]UQWS]^TOX\aeURX^]UW[cZVYWY[RJV\Y\\T\ZT[bZYY_S\[_VWXUaSTXTaWQ_M^U^Wg\_WS[^X\RT]`QT\QMTRVN[[TZcYZYWVXVX^URUZ\XY`X\`acXT[_\^YTWTXY\UUV^Ve[ZRaXQ][]Z]X][U]gYUUSTZ[^^US[YRc^Z^[_a\`[][RZX[WVd\OXO\XVM_SZYYaZQ[]^]XY\_WU]\YQYWWWWWX^ZT`][UYZRO\]YW_]X^[T_YXUYVWU]`_beYUX\Z[TZUVS\nQWYcZT]fSU[XVWXjU[\X\QbUU]\[W\`XeZU\Y]\_\YhZY\ZVXWU[^W`_Z_TS_[ZUVdOS]ZX]YTYZXYY^bc\Ub\ZWUc\ScUTUeZZ`aYZVW\aU[[[U\XY\]Y\]R]^^VVWS[[Wa[aXZd[[\[\]bZ\TS[^YXX_bJ[[ZS_\_YU]SUXaaRa\WWWRaVYd\W^WdY_NSS]S^^Z\_]U[`Tb][]QZYUYTZVXVUVWa`iSUiY^]ZV[SR^Y_X^W]WRVc\UVX]S`XOYWb\`SRW[UTYUcN[_WWZ[VZN]S\XaX\ZW[SZWU^UZ_Q\WWZZ_XTX_WVViVXTb`TYZaPZQ[Y[^]UUcZWVY\Z`Xf[XZS\YUX_[WbV]U]ZTV\YZc\PS]\Y\\a[XUY`WXRfT\[ZW]RS`\XW[YWOWYYW[[[W][\WkW\Y]Y[WOSWQba^[[SVRVXZ`RcSZ]X\\Xb_SVVTZV\RZTUWZ`ZRf`VaUV^Z^\eZV\YbXY`McVWVRTQX]RZ\XVf_TYU^cXY^YW[Y[ZhWZYWX[_UV^[gXT`]VYU[XVS[ceYTZ[_RZ[]XZM\__[UZZXXYY[^XaUXZj[ZUJdQTSXKYZ\STVXTW`Z[Z`V`XYVUYX`[^aVi[XXZXeSYSTb\U_bRUZV[TfXWQVXY\T]XXXZYZa^[W]cVUTW\^Y\cS]ZYR\^__`XYS\YXSY]Y\_f]^V[^]`_WRVa_T]UWXXR[_YYHcOVXT]X\_\Y[gPNZ\OeyO[bWX[VR`\QTb]UZP^ZPT[`fRZfa[ZU[R[^UWQeUeUa[O^X^R]ZSQZTU_ZR\cZ[QZY[TTUWlSYWTP^jN`TVpWQZcSSZUWZ\Z`O[YhV^cXU_W[ZXVU_UeR\UeQWYX[dMSa`\NPbZd^ZOVYL[XW[c\`XY[XYWT\\U[UVm[gVQZaf`]SUVUV]YX_\bUU_TU^cWeYW^hPS`W]KWJVTebT`a^]bPWW\HZWVUTJ]Z]Y`_V]UUV\bbZ^ddSNZZ`]Y\_j\]^`][UTVcXY[ZYYZSOUbfSVh_V`[UWYdbQZ[^]SKWSZY[WWV]SVVXUMaW]VRSY[YXVV_U]dSY_`^YQe]VZ_WR\Z[XVV[U^WWW[f`ZdJXXXS\PZ[YbUVZfY^VXZZXY_XVVaY_YWj`WZV`ScWQbZSXXW`_Y\VXRVYVSW[UacW^[SYRUVaQ\TZ\]\RZ^WRa[T^YXYZVSXOX]cW[_[[[gVcYUTK`[X`ZU\L[]T[ZXV\RZR[UU_[`cUZUejfVXSQ\V^_cZ\UU[NOZ]]ZUd[WRWUYUZTZVXVX[Tb[N`V[]W[NY_YV[ZlYZS_^YQZR]\bV]V]`_OV]\]aY]U_ZV[cRXLQbUWW^]Z]_^XaR^[^ROXXVWU^]U[W^VZ^VZ[S\UVTPT`Y``WT]U``NUY[[W[VUY]]Q`_ZUQU_YVOW][da_ZQNRHZcU___ZXO^Xia]W[ekSVWZW`[XXX\ST\RYXR\^Z\Z^VfRT\VQ^cTW_VZfPZRSVQb_V]X_aa_]TTZV\Ze\NkX[Pc`_]VdS`NV\Yg[_nYYYYUV]W\SWKRldNZ]`W_U]SX]ZYYTTO`VXeVS`^SMUQhRUTS]ZRX\\Uf\_YN]]YPTPXVc_YZWaYTZ]VZXRZXZ^Y^V^TWXSb]YYTVX_[\UVY]YWWX]PTXcb]Y[YXRQN[^PaVX_UZPTXRWWYYZW]W]V]VWZPO\\^aYWR[^]\b]UaYYl^R`^XRaP\\S__WWT^aUVOfS]VZVaNTWXLWS\TW\\XTYQeQZP_QOcZ`WUVbWLWUW\YPZVTZTZa_OZ\\WR\S[bfW[ZZbL^TU][Z]bX]QUVW_YTR\X]cWX\_f^URVVZ^aXWV]aZOe^\O_V^TTRh[bX]Y`k`P`_b`UZ][U_S]V[Yf^P_T[QSTS\c]XS\a_WcXYVQW[YZY]]VQZ]R^]X]_^XcT[[]VYYRXWT^cc`g\ZWVXRSVW]`ZaX[XZW[a]^Y\UbUZXa^XaaXXT[V\WUT[Wd[X[eVUXS[W[VT_`_VTXYZY[YZZWVdU__V`VLWb^UZb[[aZW]a^\W`lZ[VPYY\dWXXV_ZXWV^W]Z\\Z]\]YaXROfXU_YX`ZRaT\WYXVWSdPTQY^ZY^ZWYaT[UaX[ZWWc_iSTXSZWdUZPXWQWY_bTW\YZ]dS^OaWSXLVaYS[VUX]WRXXSVWXX^Za\f`UgVY]iX]_\WVXYV^VcbWPNhQ[U\_RYT^[[UZ_YS]Y\]XX]`X[\\WV^XZ\XY]Q^ZS^Y`[RXXXXV\U]WX]W[MXTYT\LRc\`S[[fcUMS`W^_U\]VRUVZ[aVVSZWT^X]YZ^XUZU[P[`X[jU[^XVOZ\_YZS[UaVSi\^X_dV\ZVc\XZQ_XTYVZdYZUY_XWU]a_VYPUP^TVSNaWYdVSW\Wg[XZQS[^O\V[ZdUY^]RO^YT]XV]d]W\]R^\VZVYU^W`]Z[U`^WU[XUTXYX_TYPX\Y^T`XX`^ZXYNW^O[[XQVUYVU]\X\]W[ZZZW_WT_YW[XZ_\UWR\^WTVXXYTZR^W\`_bT[]VbURY\`^_YWT`aU\VZ_V]_^Y[\S__[[UW_`YWd`T\\]RUYZWUXZ_OYW\U[V`VZTV]^[bXT_ZS^SZX[_aY^ZOZT\[[ZWNSWX\TWXX\\]TXVWWd[_SQ[VQRTR\h[]T[bVRaUYScUdbQ\U\Y\YW]X\SZeSS`d[dZ[Tba_W[ZRXUUZ_^VWZW^\[`Z_Z`YWlR`UXZZ[\\S]X\WR[]XTV\XRX_^]`VT[aP\LWYSiZZQ\ZS_Xcl_YYV]]WVWViT[ZVUaVcZ[XTTZVUSWTXbU[_^SY[SZXQec]`aQW^a[][RX_RXY^Y\_`X^^]][ZS[c`T\_^ZXY^S[R]_WY`_\VT^\WW]XRTUWUd[XnYV\R`OYYYNZ[UXXZRYYUS\T`ZV^aZU\Y_VQ\SQ\Y\^]RXRa]T][[X^]XVS[\Y[ZXTZL]Y[^VUSY]L[RZ_^YU[YW\ZYX`[SbW^ZX]TVSLe]U\UYW_NW^SWcTYdUXbYVZYY`aaX__R^]\`\VPZa`[\XV\_b`^SQVS^^\[XSSfX]XQ_Q^WX\XYUTSST\_V\R`VbRVdV\_X]TYY_WS_[_Y`aR_SYXe\VSW\WZ[W\[g_PZ]XXLWX`_WULWTaQhYZ`V]WYj]YPY^XSXZQSMVe]Qa][ZYOS][QQbWZ]^Y\aYXXfeVV]]OUQWV^bZVVeSQQRR`ZZVdU[^\SNTZ^__VQ]c\Y[YSWQWiSMZ^RZVTS[WTSV]_Q_ZVZ_ZXaVYb_hWV_]^Kc[YUUVXT[[V]V`VQYVc[XUUUSUbXY``T_YV[g[WbYV`X[^ZZ[[bUP_fUW]Y][P`W`cffXTYg]Ze`W[SZ\TcTO[RVXM\aY][aOXU\^[]^ZVS]Sa]O`QWWVYZcY][[Xa]aX\WV_^^RR[^SSeY`TRTN`QjbVUOQZWLYYXbXUOT\\ch\cb]SYWaf]ZZ]XYWV`hb\YSZ_Z\`^X][bXcWZWU]Z[V`_]X^^[^S_`VZY\Z[U^[T^_URTY[bZYS^kX[STZW[VV_UZS]YYXZYT[^[X^[TZZTT\\NaZPTXeYYSN`V[[SR[XXUUW_]SYZ^\TUZ^RQZ[[R\^\VZ[T\\XXRY`a\URba\YT[QUZ^XTSUeYPVU_TZ^cT\YYXTYSRS`Z\W]`Xa`^[[[ZZLXZbZ\RleW`VY[[ZXR`XZ]_ZUWZRUdZ]UjQZYT][[^WW]U_TU\U]WZT_W[PcX\[_^YPXXP[VYYP`XYX[VWTXT\W]baT\UXW\VUXYbTWWYPZ`VTZ[[[Z^UST[_]W[\XRS\U_ZW\XWUY]_cWY\[T[\[Y_\`WZY[X^U\U[bcUOX`\SP^TQY\]mac\TRXWa]T[TW_WTcYS\c\YTh[Z\[U[VV\^YVW^ZSaVT[c]Z[]ZWVXYYYVgNY[d^]^VWZ_U\[]Vd`VT_ZK_WT_YTe\X`TU_[Q_WdZW\W]_T^YSZ[XZ]QYcXY`]Y^Y^]VRT\W\YV`W`bfZT\Q]UT^aWXdYbQ[XYZRd\[eVRgXXXcWVY[YgZW_WTWZXTO\XWZTWYRc][V]TTSWXmYQ_[XYOZZWWVUOWX[Q][SX]_ZPYWU`V\]hYX]_R^\W^_]YYWdS_Q\S`Q`PVXWeXZk[_USPU`\[W\[Y[U]W]aTPa[W]TV^VROOXUTYZYaVS`]\X[ZXSVV[_]ZW\Q]X\R[[SX\\^^WVZMOcU[XO^TO\W[XZZQXSUWaVK_Y[ZMfWUX[RZb^lTW[XeVWc_W`\_Y^XZaZWbZZbRW\bW`TXXYWUZW^Y]YV\T\[RScU\_TW\TTVXVRYXXYWSTHU\Sca`XZd[YQZZZ`\_Yd``YUaWV\XX_TgcZ`UUUX[ZX^ab[^SX]ZP`XNU]i\V`^WYYUOTaRSjZR^\M^W^RW]Y`RYSWYVO[S\Y`RW_SX_Y[]VRW]`bV[[]T[\V\`X^S_YV_c_WRXVO_VX\NQ`YbSd]R[QVU]WZRT[]W\WRaW\a^VU[RYW`]WY`h[UST^VY]VYXUbTT\^XW\abfXYZ\`[[X[SXZXT]_YUUWTW`QeUUXUWR_XZP[WXQO\SSa`ZU][^iMXTTVUT]YbR^ZVVYW^VU^XU[TXZ[ZWQVVV]YYXP\WZV\YXZOQT^XW^S]S[ZVU_]S\[YX]WTRWZZTXXRZ\VUWV]YW^ZR_SXW`U`VSXZ`dW[Y\fYZZZSVRR[YZPTTXY][WYPTZ\Yf`Ve]ZYZU_[c^]VZ[X[ZUZUZ\UXV[_QOYW_YY\VZYTZ[VYZXY`TWYgRXb]fUVU[]b]U[SbV]\_T]YV`RU]^U`STN[[ZS^V\Z^^VZZSZVU[S\U[ZVXjW\]V]VdbXW^\LX\_TWUVVVZS[Ye_T]ZT^aQWU^^ZeY]ZZ_UW^TS\]^\WVWfV[]VTc[aS[[_U[\V\[]ZQWTUXZ]]UW\P[YTQYVZ[XZZ[[S]TTY][XQT^ZRZXV^Z[YVY[\YWUT``[QVUN_WXX`PXYYZV`UVQWTX[U]T_WZfRYa[UUYbZS[VZVU]_eV[UXYYQ_Oa\\cXUOZ[[^RVgR^S\XQ\aU_V\Y[aRXV\NcRWW_[[[WWZfZU^Y___`\YcJRY[SdTYZS^^SRhZ]RX]XUabVWS]ZQ\ZSSSb[`\]T]ZY_T_aU`^[aRTZ\\`d]VcXZ`V`ZY`Q[bVeTWTWXYXXXWX^\[XRYZW\Y^`V[X\U[[X[O]Z^f_XUfZZ\k`^VYWUQ[XTc^R][Z]YWYX[_ZSeYX_X_^UWWXbZWWaY]\`R[\\ZWQ^WU^Z[U[S\^d[W\ZYURYScOWQYYW[dXU[_TZ]Y_VUaaabTTY\WTWaTY\Z_^SY\\T[XQWV\ZVWLaXXY[bWO\UXWWZ^MNbWX]WZUT[]T^WT``d^UXX[fZSZUZU`SV`P`[W[bY`]VXXUZ[WX^aT\\da_QdXWbS\YQYYZ\WZ_T^X[]WV`UZS\\U`S`]c[XZd_\\TZ`^Y^T^Z\SXVVYUUWaQeVaYZX\X]Z^QT[[R[UUYXVN__^Z[_YZ[[_\VZX[U[VVaaUT]X\[YWWR]]]SZT\T`Xg_QecbT\`^]Ubc[U]SfT^][aY]W\b`XY]`gaUXYZYWX[W[Z`]gX]X]]ZZW_OYUR^fYaXWXX\NYV\\XVZ\Zg[\SRR\VZ\\UUeUYPaWXZ]`X]b`YaTUaUVWeVXUZf]X`W`Xb[XV\YQY_a[ZY`Y[SeX[k\^_\]_ZTVaW[WbS[cd`^SRURT_VOP\\b^\]]XcUZUWZ[QSVYY\UZ[XhSRcX\ZVRa]_WZUVc_X\UVVQ\U\Q`]bR^R[[]hU`[XXWXS_X^XTZZ]ZaW^\]TV\O^aY^aXYYXW]ZfTRY\UUZ``bQ_^ad\WYdUTeXX\U[\c`]_V\YX\aXbb_]T[\X_WOQYk\^]`^bYWW[VWd\VTdTYZbXTY\X_\RX\_^ZTUYdY^TU\[Z_YcVXd]T]_YNWWc`Yl[Vaa`adY`b\Z_\bXUaQZVZRUO_\PX]R^T\`ZWh_cWVKUZ]YY^QUS\OPVW^YYSUV_WaUSVS_\XUR\SUVUcVY_RZWRVa]WTXUPY[[UYU__l\aUdV_bY[_Xb\a^`YY`VUX\^V[K^]UVX^XcSIeY`]TNWXUZfaV`PXUW_Rd^XWVXZWUTTSVXY\]WUUU_TY[\Vh_\`J\VcQ]_XbT\j^[[[USRY]VZ_[OSbXZaZniaTZbVTjbY[\Z^fYV^`^[TSQRZ[U^V_Z]bRX]hVVU^_[]MSZ[[X\eVaU^VTZdcU[X[VUYTUQP]]]VT[^RXW\][]]XRcUWb]VURU^Z`[XZZWXYRWX_[dK\RXX[]Y^M]U]UV]WZTSUjW_VUScfbXa[[dUUSS]U\ScUOVWdaW`bZTW\^^RYeL^Y[^Ya^SYT[\SK_[WgYX][aV_]ZW]UXTeWUXVZWWX`^UaTZYRW\_jTVgY]]_PYcUXOTTTSXZbY_[TUZYIe`bXZX[TY[\]WWYQ]\XWV\WZUVSZ\\g^hVT_XRbWGSU]OY[Z^XXY^g\SWYXQW[ZYTZW[cZ^ZYN^`b\`QPWbUWXYZYVYTbYPZ^QYTN\ZZcNZWYbVVSRY\ZZWT_V`^YR\WS\LW^aUPWQSa_\YW\[``_W\^WU_a[ZeYX[]Y`V]`__STV]WZc\_S`_\[\Za\SXZ\V\POR[aT`VX]Qa\\XVaP\U`T[TY]RT\]\ZO]^\UTRYZS^Y\XZSZW`[`USZU]]aX[]W`XUYbX]c^OYU[[T[e`]WNVbZ\cUUYaUT_\RSVV\Z[Z]YU`U\W^W^ST\^]YV\TY\X[UYb^W]^\_^dYZ[U]_]T`Zd[W\`Xeg\_Z_^ZWZQ[R]\a^Xe\\Y\W]WX\YUWRWTTX^USORNa[_\VZLUV\Y`[bY\]WX]_SR_aV__T]hXQ_Y^^Y[Z`U^\d[\YU\XZXZX]WX`V\]`]WW[\QUYVTUW\c_^SVX_XaW[U\\ZZXa]dTLW\ZRg^_TT]UZ]VYZ_Y\TYWT\QVY[Zc[WYXVL[]UUXSWZPTWRW`^Y\eabeR]XUY^ZhlTXQlUSbZdiSUf\_e`X\TZfYf^ZPZd`W[`XSZ^S[W[ZRZfR[Z`Z\U[YRY[ZYZVbZUXXQIcW_leR\S_aWYa\Y^R`XdSZVPc]XbR[[\rONPZTX\Y\VWXZXTYPdTX`RR]Z\]\ZUZTXWdZV_gTJUb]b\WYX[W\\O]X]WY_QRPTZU[QTXX\X_UbZVNU`aU`nWR[cZT`[gg]]Z[XOUSYYOL[eaU\WfV\[UW\[XcVYQTY[XV]`Rb][Vb^d[WTYbZXVXZcZTU]fTWUdYa^]XWXjXVRZaXWV]`cYTX^YgUZXZZYbLPXR\SYS`_WQYP]cSa^[fZT\WY`U]ZWU\\U^X]YYjd_Z[`YX[c^\UZTV]^Y^]d\[c]XQ[__Z[[Wg^TV^Y[XUZ^^YYZ^Z]]U]aUR\US`ZOWO]RWUXObYZb[\S\ZQ[Z^WQfVUXVU_^X[]XZWWZZVZaVXWS_[cUWGWXTTUT_XYXY[Sb[]XPbP\X`[XZX[\[\\\\ZYXbdUWSZZ\MY^Vb^PgZ^TZZg`Y\[UacbRRYWV[RVTYcWZUWc[[_Va]^Q\Q]Y]__XYVUWOZUS^^\UZPWaZ^WW_U\^S\[\cV\cXU\[WZUX[PcZ\Y_UTY[TZT^XYX\^b^T[[]\WWYUXZg]V\\[YZW[W\XZZUZTbU\b[_d]^[[\X\T`Wa^\]YWVaWVQ[\SY]QT`SV[SVYbVZ^[ZY[^[X[[e]UWUXbXPZ`\bX\YXY^V^RR__d`YXbSg_\W[Y[TUZUVbWf]YQMV[bWYb[\T_Z[`\TY]W_cZY[Q\X[S^]VXWZ[W\ea\TTYbT[_aR^YTYU\UVb_UYWTX\ZaUjfT]X\_YcWRZ_VZcZVY[XTS]UZZa\\TV\bc_\`W^`W^Ze]^TZiZX\X\TXXYaZYT]`PTa^^X[YaTRaVafWXT\WXa[VYS_]`O\]ZS]NW`Y[\XYiWbY]YRYY[VaW[XUZP^ZNZaVQZXVVc`WY\QQXY\]cVYV]^aY]VWPU[YS^aX^UXbZV\^YZZ[[_b\b[UT[^XS]V[cWVWUYWTTNZX[S\W]R[USSWX[`ZVY\cYX[X[[VWYURUVWTW_ZY]]N\TY][UbT[W\W`iYVaTSU]^_SXgPZQYWT_UVZ`XXWTZQU_]YQU[ZbTcU]ZWUUTSWYQ[YeiUXYUdP\\X]Y]VZYRY_[S]\^X[\T^cWYXY`V^[YU[SW\YWUX^`]]XVPYZX]]_QZXXM[W_\XWXW^R^WT[Z^Z\Z[S[\W\^`S]WTRZ]WT\`YUXT^`X\aWZ]]`ZZZ]XVWbUUhUR[XUY]Y^X]^cX[VWUT]XgQ^\\WXWRTZX_W`ZPXOYRWU[PU_SQecaiTT^_YbUYUZQWRc\WRU_W^]ZXVXVZ\]^XaaVZH^XQXTYWWUYOW`ZTUXQUe`VSZfQVV[URTadVQ^]_UWR^MZ[^XbURYZ[S\S_aTQb[XPYRZdTX]\WN[]WZ[[QXWkRSW[Y][VZYXY_X^Y\SURd[S]d\YWZb^T^RXY^TaYd[VZX]SPW_U\WQTU`XZYS_YXX[QWZ[ZXUXTT\`[W^Z`[Xb[Y_\\SYTQ_Y]ZaXYUcW\Y`Obb[UT\YTVaX^Sb^[`WaUW__VVQdXXXQd[YV`XT\TXTXdWTT\Z\ZURS_OYQcU_SY`VSWW[X][VWZ_ZVUaU[`RXSaWS\`Rb\Ld_W]\b`\XY_W]`VVdYVcRSY^YaRU_S_\cVU\YhXQ]W[h`\[ZY\^_UUY\bO]WSPYOYZ\fY[^YQUZZZ]WW^a_VNZTX\XUZRUYe_QWY^TQWSZ]T_O[Z[`X]RaSWSYZ\[W_]TTYV[aYQ`Uc]aWVSXe]`d`aTZp\WUTZ]bW^W_jZW]\X]W]XXaVUYZ[YaX]ZiZZUUV]XURQR]ZVU_RYVR]SV`UaWUYX]TVZQZ_X^T`Y]cZZOV_\UY_[Y^V[Z[^]QU]]TYYV^bUPZ_b]_TXTT`XTZY]Z[V`TZVeaWWbV`XV_O``a^TeW^a^XUTYc\SYXV\ZNeb]VVXZ^Y^b]TZXYQ_XX[^bV]Y^[VRXfUYT\TaT[S]`WTaZP]UQTQ]\TXSeS^[jc[UWUQ\VYUTbbZ\Z[[VRY`[][NZb^ZY_bZY[kR_TTWV[^\aP]adX[_]]R`Z\Y\]QZ[XYW^\Z[YT]TYW^Z[Z\WgZZ_V[a\Y]VQ[Y\bPUZT\T`WT`[XVX_]aU[cYSUV^WW[\UW[UXXVYR]_XeTLO[XW[`S_SdZ^[Th^XZ\[ZSY]TQVLS``cYZ_X^YTTV_dT[T[QTg_ZQgWbdW\ZSWeNYPX^abVa_UP`STT[b^Uc``[Y^Y[RWT^YX]^`YX[YVSUYTTZ\YOZXXRiYZSf[P_]OiRVBVRY\LY\d[a`QXY^MV^]O[SXPaYWVaTUZXMYXMVX`W^]K^XZcnZ]UWPM^PST_Wa_]\QbWYPbe^VaS[gOVQeQaRYTXRYUO^RZWX[\`ZZ\[[YXTVcWI\\[TQVQVSXVM_WXO_WQXWZUPWZdoa^PXf_ZVc^OZPXUoNS_TW\[`b^cX[aU^kUfLV^JW^X[Z^TZ[^YgPP\SP\YY]RTW[[YeTkbRW[YiT`^]SSS`ZZVZ\W\TaRSXX^ZUU]TQP\Y\WY[OP_\W_^UbPU\``aXRcTWV_W_iXPRPh\SVZUV^c_XUQUYh]__eW]c[[_T[^RYZ_`aQ`TSSpaZ`TNWTUYT_aYPTYWZX[OZOU]U_S`][N^fLOVVWbUTWYT][ZV]\[X\VQ[XXcWXYYYVTWLXcQ^YbQ[XbWb`U]VYTZS]VUXY_U`\V\\W`gd\cSb^`W[V_R\T^Y\\RWa\]TV\[XUZUYUZVWWMOaa\b^VWWSQ_]SVfU`Z`[WYeXa\^\iXV\^_[U^T_VYYTYYjaZVc^QSYZZXZ]\Z[YZ`c`QXZTR[ZW^V[V`YVQSV_\OZS\__]_ZQZXiNZSX`R_V[cc`ZXW^P]RY]_]eXUfWT`TW\YW]VVV^WYST_QU^PWXX`[TZai_Z\\]X[_`]W]]MQZXSaX_aUQYVXR[]\UVXTkj\R[VYYQ[TZ`bQTVZXVWWed^]Y`Z[]U^`\`YUWYQYae_R]jZ_W[TaSZbYV[YQ^VVRVVVS_]T][QW_R^X_V]SVcYYXVZT^\VSSTVTYdU[X\U[PfV]Ue\V[YcX\W^XdW_UUXYf_`UZfR[]ZUT\Sb`b\XXRtdUZ`\Y\\^S]VTT_RWU^P\W]YV[UY]bcWZZYURcTVPfW[TcUXSWYRUT\RiXSVQ_YY`V][UZ`[WVU]]aQbYX\Y[eZaSX[]QX]X]T`XV[WYYSZVXXWYTfR]RbTVY_W\[\]SVYUZYTX`VacSd]c\Y\\]ZYRTU`gR__^UQ^]bW\[X^W[U_YZa[WZ^^Pf\jUbTh]^RSYTVV[[TY`V^hXRYY`[YU]ZVTZ_Va]^\T__^R^ZVbY]U_ZRVR^]XW__WYS_US`ZR][Ta[YXS[XTTYbUXYYS^VWaVYZWYcZWaS^]^TWXW][eX_X`VWUVYjZX[^XVWTYUVZ^]VU]\^PYXc_b\WZV^Z`\R^\Y]W\XTWWYUb_[MTV^WW\T]WST[U\R[a]XVS]TZPVQVcZ\P][OTU[[_d^WV[WZbY]QVUUZSTUVUa_^[[cIc_T]`\_`WYe]\XaTZQX[QTT]VU_ZbcV^`WOQaUYU[[bVVXZTfeWdWbR^WS^YY^TSGY]XZfbZ[W[\^N]\^][YNa^cX_[[WUYTROS[ZbXMZPW`d]RZY\\U[ceYXW`TXX[XU`]Z^__VYQVTWYRV[`MUb_fd[\XW[X^\WcOagTcRdV`cTRP[[S^c`]V]S`XWYf`V\S^[\^`URTS]^\^S]XRYNMRTXTY]^^XZXX]VX\WSaYY\MQ`XQVSQUZVbU]S[[ZYTSYWRQ^WWZ_]YWN\[STT^VR^YSRb\[TX\ZXcVdUX`PRXZZWZYROT^RSQ^^Td]\[RXUY_TUZYRX]S]_TUf]YS\SZgVd\YWbPW^SOY]][\[VeZNa^VUYYXX]Z_TdST_VaZVVYV^Z][Ue_MTYX_X]fRRR\[VWZV\SWXWVNbSZPY^^RWV^Y\c^[UTXeUOVb[Z_[UZ]aUQZ[YYPW\ZYYTT`MVUW_T^]YZVV_OSQWVZ\_SVWVe]XRWORYVVV\d^NXMYbZcSVXZQ`^ZW\[Y\\[WRSRX]S[QST^_[Y\aSZ_SXeO\cYW][]aYeVTTR\XOS[]\Oe]aW^^LbPSZaP`X`[`T\Z\WgUTZV[W]V[XXQY[]`XP^\[T\X_VYXYbbVZ^bTW^Z\bVV\ZWWTQTb\_T_NRZZS`V\]`ZVVZ_\_f]iT`Td_[YV\[ZcX\XX_dcV]WZ^_WZ\`YVW[bXTSRWYW[dZdSXYZXV\bZaW_TXST^^T^dY^UW[][X[YVc]UZ_TUSVYZa\\XWX`[YOYYeW\_ZVUT_PW]d[][YWfXT[[UXZ[\`_\SRWSa`PTaUX[SQQP\ZR`PX`[\\UVWNX`Z\UT_^[S[VaUXVWYY^WY]`W\fYTQM_YWSVY[\]VU\c[Z\UQT_XcWVWR^YVR\U[kTZ`ZTTPRYO_TO\Y_TYUYY[WUaXY^[`TW^UZY_S_YZYXX]SVVZYhU]VTRc_PUYa[]^SWZSZ]U[PXY[RZ\`\YY][Y`XVV[_RYY\XV]`YW`YXUXj_S[V]\UY_X_ZZVgZ\][Z^URa_UTZWQbdY[TXT[c`Ta^X\ZXa`aRQ_VT^VUZZVUa_\XOWV\U[^XVYaWQZX]]VZV[VYVZZS[X^ZOTQ]_XP]WZQQ_Z`WU]VT\VUS]\\VS]XR]YVW^Y_ZXXaZS]XWT_QQXXZYU\V^W^R^SW[cYeUg[ZUegW\XSSWPWWS[YQX_YW_VY\[UhSQdTe[^Y[XOVZb]SdTa\VYZ[U]Z^WT[`^Vh[_c__RYY]TU_X]X`\][]\\W\]UTXZZRUYYSZ`W\UZPY\ZQ^ZRXTSUb^f[ZbZ[YV[aTW\Z\VYZUR_STTOVQUX[VWWVV_LUR\_VZZZQ]TY_Z\XUV^SZW]b[WW^YTVWS^\]VU_M^Y`\Va^_^ZWY[PS]S_]XT]\W^kZXT^UVX_^XaZ_TbV\^X^]eOeWRVQ]U\[ZZYZ[O\]aY[`L\XYYXS_]\^^_UVZVVTU]__X[cVVY][UZS\UbXVb^XcZR]]RaUe^Y_ZW^S[W\Yc]_XU[S[XWdZ\\ZLa`W\^TTPU`f^\]cX\\Z^[Ude_Z[`XUXXd`VdXR\U\]XYYe^VKTZg\YVURXYTQ[eWZXZY`eX_][YSVcY[ZZ]WXY^QR]XOZh`Q^TTYSYQ][[V^WWaTYXP^ke\WhQXbdYYWX[Z[TUYTS]`YX_Y[^cXZ^XVZZXR_X`^U\U[]UVZdV[VWX[^]_UbX_XUZYU]V\Z_eVcY_ZYQU]YV_VZ\ZWOL\[^VSI]U\e]aZOZ]UTTQ[Y]XZTUT^aTYUWR\c^X[WWW^T^W]^YRVT[Y_SWYV`gR^\TVTYV^YYQYl[ReQZQY[N`YVW_cQVe[XcYW]YW`VgU\[U`dZ\XW[XV`XXV[\iOTSag]dYYRT_WX\WTX[\Rk^\XaZY`\SXYc_Z[ZUXY^XVWa[VQ`YZV_T]bXqOZZWV`fbVTW\[XXZVXW_^hUX]__dgc\]W^\iQ_RWeWR[V^Wg_WYUU^aU]V]YdcWRU[SX]SWSQcTX^WWR^_UUW[VW\aU[V[X^X[ZU[]ZX\[VYW[^`R^UXZ[ZVcT]URYWWY_ZN\[\X^`Y]U\TRUZb`ZTZScWa[[WY_S]QVVS]ca[Q`T]cVQZ\Y]S]`YY]PXZ]Z\Z^W\VXZZ\RU]SZZWNX]bfWW^_ZRW_R^T\[RQWbgXZ_WVVSX]\\R[NSVWUXWU^^SZUl_V\W\WN_]X]VSoUX_TZ`_XUYZ`Va]SOZ[VV_[Y]RYT]XY\^]_[[aZSQ[_gXVWQYOReQS[]QWab]PZ_TSWUYZUWV\S\ZeVW]UW_\PVYP\YVWaRcT\^T]^e\R^Y`ZXZ[S]ZWYW^fY]QZS`abU[YTS\SZY`[dcYZ\\^UV^YTTU\YZ[]V`WU[VS_YX^YYWM`\SdSYYQRXSY]]RaT^^ROYTq[YWZTW`]\YSZMZaTUZUOZYVXTWQZ]PbZ^^WP[Ud_R\X\ZVZYTPUY^ZS]XZ`WZYX][WRZS[ZYi`SYY[UV`[X^WZUT[YVSc]X[W[[]a[XXXP\XZO\UTR_UTaaXY\^Q[T]PY_X]UZUWUYYVTWZ[XQ^UPU\]TSZUTV[Y]XVbVcUg^US]VeXT^SVYVXY[ZWZWUV_XTTWJa]SZW^`\dMUY\]QWO[[VOTTUX\VT\UOQcOYZ`Ya_]WRXcYPRQRPU[]_S\[\YXOXZaVfROQLXY]ZNa\T`Q^bTVYWWXXO^^NWgY`]POWNZM_UT_c\UbRSfW\`aYU\ZQnX`^ZYX_VY_gMbX\]P^YbZVUWYV]XT^aVUgPZ_W\cT[QTK\X]^NS]\[QSVSUT[VRbQ^eS\ZVOcUUW^]S[\Z\XfWZQRW[]TSW[[WWT\_[\LS_Vg[QPWUTUUW`NUXS]cUYURXZU\VWqSXZZVUSW\VZUVW[XZRZZ^X[]TbX_VP]daXYQXXMgcRN[_OYcQ\]ZVT[[ZV^SOX`\X`ZaVZ\Z[^]TZ\X`RUWU\MV^bYTWXd_\^YbQVRO]ONKZY_[XX^^Wa_^ZTXTZa^ZSXVPTb_[TcV\PbR\WSc[`ZY]S]a^XTVX[fYd_Wd[XSYfcJWT]_\U\[][cVcUXV`XW]^ZVRR[_U]QZP^UY[[aTX]^`UQYYVXedU\WU[[^V_YUY\ZZc\aWW\bZ]VNbdWWYY]R\\STaSjZTMV\gXcXWda[b[`\UYY_UTZZaYW[UcYLYZ^`\`Wc\]\WWZ^X\T[`YWZXXO\VWUZU[UNbXZ]]\TMR`V[b`aXVUUYWUYW_Y_]YdYW\Q^X[^XV\R[[UWWUWSUaXT^YX_RYRV^_ZX_WTV_QW`\XU^[W[U]Z`abWUT^VOS\^W\^`[X]]caYZe_SYTPY[[^UV_UeUZVSV[cVVXR\RY[VXa^\_[VPT\]]bfd_VbT`ST_RVk_V_^RZQZQ^UlYZUVeR]V_TS[TY^RZ^YWU]YZfVRXQ\YUY`]^UTLUP[X\rdW]a_`]\ZY\[]VR[XNXVRYUUd_RV[cc][XZ[\SVa^b\_]T[cYZUX]X^XVTUWZ]]RcXSa\[[]ZXXTY[ZX]`Z`WbRTa\]\`^W\\\Ub[T[W^T^QXrRO[_W`RbaY[UTW]WOUWbUTVWZV_\[SWW^V_WUZV`Z\WU\\U`_`TXZZ_c`Y^aZS[\WY[TZTX[dZ\]SZ]W]Z^YYQZX\jiWV\[h[Xe[Ya_Yg\]YYWXXV][\[ZV\l]V_X^XV]V]X]W_]c\]cZYV_TWU`XW[[QUVe`ZZRXSZUWbXnW_YMd^^YW]^^`YW\UZU\ZQVWaTdUYPUQU_\XT]U[Y[]V_YZdTNcV_U][[dX_]XWSW[_W]fVZYX^^]]^YWS`XZaM\YRW_TY^WZRU_`_WZ[WVZ\R`V\TUXWgX]Y][TTTSXS]Z]`\YU^XZ[ZaVYWUW\ZYWc`V`_]UXZS`XVTZM_[T\S\S[UYTSVQ^^dTW\U\\_SXUXYT]cV^c[XiW\WZ`^Z[]TX]ZZ[U\W[]]NX\V\`NdaXY`XU\XWUXV`VZUR\ZSTZXWYNS\`VYXY^R\^cV\SP]YX[[[UcTTYR[_^a^WbQYVYUK`[\bZ\[W_SUWV\[U`[`_M`\XW[\`YUXVdZ[bW]VhMZdY\[ZT`ZaZ^SU\][X`b_ZUYWYX[WbOSX]fZRWUYTeVZ[YWPWYWXQ`X^XNSdS_ZfYTT[Y`ZZZRQTU_KV]V[WUUU^[SWQ]Yi\\Za`a_XRW\_^U[[ZWW]`Zad]cQV\ZcV[XT\X\WW]Z]^RZ]WYTbU\SW^[YX]TY\[XYVSWTZZR[TWZW\PU^^_]_T\[d`\^T`[UU]\UUXiW_SUa`USZ\WXXdPSRU\M\XWXZXTaXZYYYSNXUX[WWR\]`RQY^WVSXUYX\VSUM]`\VY\X[`PSTc_\TWVTUdW[]XmYSXTX^SZN\YXXOT]Q]`WRZbaQVYX]\]SNQW\cP]RU]WYW_WW\ZZ\YYUUX\TW[W_^WZU^fV[WVVR]ST^SOf[[Z\^WXYUSa]XScZdZ\T\[ZTa[ZZ]Q_W\SZVX_\WRSVTT`jUUWZ]VSR]ZeV`RV]L\[]Z]X^Zh]bSYY_XVZSSUW\TYUReT\YTRY[bV^^\hYSY`\RQ[gQZWT\VWZZLTgQQYXe\\\\TXYNYYT_]VXWSaORQ_\[jVUgTT[UYYeaQYWZWNR[cWY\X`]TbRUZVWPaVb^e^QYV[[\[bQVZXVWUX\TV_T^T]STJTWXVZX]QQZ^Z[_]fT^SRW[OU^URaZ\^Qa]T`TZ]PZ]Y]WXZ_`_VN]]bY\[YdSbUX[R[_dbUYS[VMY]\a^UZbK`eU_SQaN]eb]Zb[][`]]YV\[\XU`cc]YZXZSNQ_V]dVQT[PiePUU\^^\^YX^VuaYabSW`YaVPW[YRgWW]X^\dQWX`\WOWWY[S^WTZSUVd\SS[[^XN\[XZ[R^`[\[\bWTYXWX]WTZc`[WZh`K\[LVZ\X`KR[Q\a_VcYb\X`Za_X_ZXXZ^SP_Yb`_Q[US^\Tc[bYY\\W[VL]\b[f[ceTWZZLYU`?TbSWXYTcS]^Rs[X_UW[]_`YYaZS]NSZY_cZSUY[U[]W\STV]\WYbU_XUYW^[]UdTU[SX[[WZdZTRda\]NYWR[]^XY_[UTYTY^WYU[XZYUZ_]hWXW^TK[[Y_STS_[]QVPR^TYUTQaOVRYYXVZX[Y^a[`UUX^LNW[_TO[UUUX]`\Z]RZ[X]b[^ZeZ\^IRW\cY[W\YY__\WUaR\[[Y]\XR^_P[TZ]`\Q]ZWVT]]X_U]Z^`^[Y[[ca\R]M]VNaS\bYUW^\TTT_Z`GSUVUV[XZan\TXUVVZV`]Y\_^TS\[PQW_W[[UV\WR\WTUWSQUZVZX[Y[f[P`\QSUXV[[W^LV^^^Y_XY^RdbY]Z]WUXUSYTPZ^XTaYV^PTX]\aWX[[UVXWUWb^]TV\XZ[P^\XZU^cYT^^c[\_W]WY]YTR`WXYO]SXWXdaNPY^^XUUVY^S[^RXROYTXMXTbW\S[[UZ][YT```OX]\[R^\Z[RV[^V]WeL]XYX[VOc]UV_U_YX^e^X\[^WWX^\[WZNVVjTUQ][`\U`S\TV[V]^ea]]R^YT__QUW^PX^ZWWTYTSYYUaU`X]Q]^ZZXXfcXY[Y\SK^dhT[U_bX[\^Z[L[\VhV_VUU[]SXQaVWXZ\b]TWVX\\YVTdY`aVXST]_O`Xf\TW_LVXXZ]WZXYUXX][\ZU^\a\b`^YYYW^e_W_V]][]V\[UXWPZUWZMZXQ\Wbb[PXSZ_[YWgVca_W_NXb]WgXUd`WU]U[YZZZZ`XYZ\aSZZYQ`RWTc_RV^R]SW^WVZUUVN\_[f[V_fPW]dUUXWWZ^[^ZTm[SYX\^Q_SS[Xa]WUV[U^T^TXTXXcS[aUbYTgd\`TXS``cU\_^YMN^QYYVQ[Rb\Z_^[YQXU^Y\UOW]XcUUW^VYRX[X`UJW]\Sa\XR\YSYXXXSY\W\PV`YUaYT^dMUW[\\aWXZ\\X\[_SZXQ`XV[O^VWU]UZY^ZUW]]TV[`T^VPSWZVY[X_W_[YV\VUiS[YYW`_SWRZZYZYX_\Y]VYZXRTXUX\_ccVXdVRXaT_YgUaO^QT[VW`Z\[L`RYTV]YbYVWXb^RWY`YfYX]VVV[WYaY[RcRPVSR^VWVZ[fV_ZVWQV]dKX\YUXWYWURRaP\N\U^bJ]TTa[U[^Ui[\XajQSSQaPT[W\[]aS[^VdXWUS[]QRlW]PXb^LV^LkYbO_`TSWfdcNZ^[YTYUehV_QcZT]VTSWRMQZb``VZ]_XZcWSZ^ZTSWThY\YdWW[ZW]XR]RQ[YUN^XfXYXUZ_d^YFPWZRY[YV^T`g^eZOT^aYW[TX\^Z\TbVG][QOiS[SWY[`ZQ^`][ZeV\MRYP[^`WWcTZUYYUcZTTWc\X^XVX\]]gZZUURbNcZ\aZUg\[V[UOXOV[\XX\VX^W_ZYTZQ^YTWXU`TZ[e^TOUY_^XWU`WK[^VY\PUiYUUT^\P[VMZcMjiQg]U[VSQR_]UO]dW]a^TRW\S]X`aTP_bhU[TX]]bUa]VYX]Z]]S]VPPSaa\WXaaQUZ^R]TW[`X\[\[bZVVY[bZhSWW]^^a[`]^ZXXV]QVRWWR[HaUbiV\TWZ[TUQVUPQY]^YdYXU[_\ZYZQV]Qa^ZX_QcW[X`YUWZ^[YZTZbYZR^ZUL_Y^]XTV^QWTY]TWTRVY_^\WV]W^W\^W\[Y_S_TY\QZWXTUXU]SYRXZ_]aU[YXYVV[M_R[MVSTQ]dXZ[WVRVZU\`OTZUZUXTU^PU^[ZVNZWS[Y`VZQTYZ`[V^XS]^XV]_\W\[U_W[QXUZSY^YWSYTVT]WY`][YOc^_b_R]LS`\Y[bWd\R[S[`Y\[WP\Xe_YXYPZVgb\U\XV_S[TYaaVQWUSXIVXXaZYVQ[WaZ[\bZc]\\YXRZXRVU[cUXXTWYa]OVTb^\^]]WXYXR[XRMV^^YY]VO]^RYITX_Y\^[WW\\bQWT^ZPSSXQWW[UYZ[XUSUTRaUTY_ZXW[[[NYYOZ^XXXXUP][XY`]U[\V]TWV]ZYTU\[c^_UVYWVT[VeTeYa`TVhWV^SZYWX]X]]_\]XXY\S_Y^_\Z^ZW[^VZVUUd`^Z]TUU[X\YdTV_\VVY[VXZX[Z[^cU[\YUV\ZaXPW[Y_[SY]_UcZ^Z\WVS]YWV\TUYNQcSX\\]O[WV]YT_[RXSa[YWZgW^UV^[Z`]\d]UYUPTU[YOX]U[]_U]]]OYXZUT^_[\`TUZT_[^S`]XRXYW\YUYQYYRQYUUYWXWWX^NXaU]f[`W[Z_^[^[YTXU`T]V`XPV[^QZYS`[QV[ZUVZYUVYR^YYTWZcZ]UbaZVXOaX^PW[WYZVSZ_USZ]`b_TZeYaZ^\]fTUYT\WXWbUWU]WfZQ[ZVZRWW^XUWX\[OSaOOZ\[S_WUbTVSYXYVT[Yb_TW[aX`PWXTfPSZ\[rdXeL_[^WL_]VX^]]S[amUWQYcXXZ]XS][X_YZ[YQ[ZYZY]\de[YSYT[XJbiN_TYaX\W]VXOUR]^^ZT]^Xh[ZPdf^]XcZWST_WPaV]fN][XXU[_WcUVZX\fT[dYaRRVTV^V[WiY_[YUVVen\V\Z\^bQaXUXYV\aUVVXXgVQTVPbW]Yf_[[X[PVXWQ[aRW`TYE[_XWX[VaT_WMP^^ZhV[i^YV^OZSX[V]Y]Wa[QfV^VU^[WV[\^Y`^WUYbV`WZgnTbVhg`YaWV`YSWYWRQ\UaVZZSWWjQS\RZYV]SbSYZaTS][_]OTVWRZOSWW[WZ\a_^P]`[VR\]\_V\TXZbT_RM_aUaXTb[T[V]^\Sb]SZa\Y]X[dVY[TOWbcQYVXWUXhX\ZVV\a\\[b]Z]^VUZZdd\XXW`\XVa[]YVfcZX^TYUYY_UYdX[[SWbR_Ye__XYRYMbT]XO_XZ\_ca`P[UZWUTTVS`X^W\YSha`J]WTcX_TWP[sJW^_fdUS^NcTN\WTZWU\UXV\TY^`\cU\U\aPe^LWXhY^Z\_W^^`Y\_U`XSU[SOVaZVPZ\YVV[`UYUX`YYVnVWXP_[aQ[ZNPdY[Y[W]Z[ZbS`Q_YWQ_Tha]fVJc`[ZmV^VVjjYV]RU\^UbaZWWRZQZ]OYcSW[YUWY`VVTRbWde]ZTW`R[\XcZ]URVZVc_V^cOYTYY_T\[USX^\aVW\X\PW]ZY]YTX[UZX\`Y\]\]Xa[a[bOUVY`b[R`YUZX]XUT\ZX[_YWWYQYP[KWUV]hZ`W\T\WdXe^SZUaVX\YUP^UZQ]TYWY_WLV[\TPYZLTS_WV\YXTSYgZ[X_O\SUcZZbPR^YaUQZQ`Y_Yd\Y\]fWYgZWa]]WeTSca\RZ\]WYU`OXZS_\`\hQMO^YHUTZ`ZR`YZ\OWd\[VcSSXX]Z`\Y^SWWYW\YW_XSYZU\XYVWZS`V\TYVT\X\k[X[YeMYYW`PPU[mOV_PV]S][Y\ZVZa]U\TWWXXX_^^]\[cZUW^Z_ZS[X]WXU\Z^XVVTXZZQ^V[^XSbYhX_eaWdXWNOZ[Z^UWNfYXVX^aY[XcT]]RTUMW]VNT]_]T\\_d[\SZXYPcVVQb\YPV]^Y]aZ`bW_XaJOY`_VUWc^XZa^T^WZQS\^YRYY[\PXXOYXdXTbVZ\fW[OVO`]o^VZVYVc[Y_[]VXPX]XYXX`ZSSS_SRb\TUXTXZeVWNTV]\[V`Z^WR_S^XYZd`\XXNW^QVXZVSXb]]Y][VSZ[T][VbdWZ][SQbVZWfUU^Xb[^bTQY[Q[b^Y^W_WVc^UTW[[J[\bZU\RaScRcZm[^ZdZ`QT]__hS`X[X[\^[XXdaWcYS^_`bZ[UTY^cYUV^^bUSYV]VV\ZfVW[\VU[WT]XNYYWTWgV`Z`cZXR_X^UOYWZVUQ\TU]PUV\S_Q[_cR\Y_W_b_[kW_VYXVYSSZ\Q[UdWR_b^[O][W[^SXRZ`ZTXXQVU[XTb[XV[TWZhaaT^V\O[TSWR\YTUT[TVYW[]`eZe`UTOYZaR\b\X]THSYU]`YU]ZTUaYZ[T\OTZX\WV[RVX\QXYZVd][]^SV[`_R^\[T][[Wc\XZQURcRXYZ\eS][QQiR[XUNVZVUUXMQO^\aTXaW\Za]U^_W[T\T\Q_\W[YY\MV[U[_YUVaY\a]dU\YR\Y^dWRTQZZNTZ\X^[aT^UZ[ZVZ[aWZ\VZcYgS\\RZ]_TVZ`_N]]YL_S]^UUS^eXWUW][a_ZYVUWbaX[XUfWW][aXRUVSXU]WY\``g\XVeNWWZZ`_aTZbWU^Y]YaX[WTT[fg[T\ZXX[XWXYWQaYXXUXbT[WO]]Y^STXTP__VTXUT[VRSX`[XXRaYSYUTTSUZUVV__^\[VVPT_RWN`S^XUZZX[UZYYdVXc]PaOe]XH^N_^[\]SWTNZUZeRT`^]WfaNRY\ZU\\UWOWP\jOPUYWbSZa[SOT^`hgY`WY_QZRS\n_XUYf\SWWTZgV\g[_^R`W^[_RZd_VT_]ZXfWZ\WbTS^[e^ZT^NU^Z[f_YTbR^\VaVfObV[\RXa[_UV\f]^V]hV\a]MXdU`bUSXSV\VZ\_\]XUVSQ`X^gZTUSe]VWP\TWTWRWZZSdNVS]UdWOY[aXWZfM\Z]O_[^OMV]UV_ZVTXT]Xd]SdM^a\RUSaUR[W`\U[^^Xa\UfX]SQZZd\[U]]ZY^QdaYbOTRT]JV\Zd]WYWVef[[cQ`UW_i]YPYTZZWhdZ\U\bXgNMO`^YYXP\\_ZQTXYUSXa`T`SSUW^ZUX[QXY\TOYPZZ_MYV^WSbYRT^aWXY^\ib\[YV\RXZSZ\_^XnXY]UZ[]Z[SOZc]hZ__TV^YdUhM]VZ^V\[WaRU^eOX]\ZQU[WcWR[VMTWd[`]_OUZfOP`YS[cTY^SWP[T]^[R[V]cSbOXXT`S]d\^ahZVbZ[\[[`UZSa\YUTKSS\OXPR[ZUc[W^RRRURXe\S`Y`b]S`U^bfW`VW_UTWd][_dQS[RWIWQUTTbVYZLVOY]UXhhV]`YP`^P[YWYIVUP^QYW\SWWSlV[XahVR^LX[YcQaSZ_MQ_cV_U]eSS][TVX_[ccYYZhkWZRQf[PbU\^[qXRXX]PUUT]b[SXY[Q[dNWTU[RXSWY[KV[cY[VW`_SPYYZ`_VZeUaUOY]_YaaZVca]U\_RZUcVZXU^ZURS\a`\cZ\V\^dZfmWZU]_X^]Zc``\_^VY]`ShVVUYW]T\bX`TYSVVX[[`W\c^WZXY\UZdOYXXb[WQ_X[[VYX\^]R_T\VZXRQRMabYa\`SS\RYZW]_QVa^TRS\T^Xi^ZZV^QU^_YXZb^WcYY]bNW\YbXZXWVXbhTWZL_V]RbScYZ[_XVUSU[[WQU^YUYb\\]IXS[WTMiM[\X_ZY^YTTWSXZUa\Na^NYZXW\Y_^UdUS^\^UVV`\XXVVXVUSPWSSX[gXWTTXXS]Y_RW\bZPa[^\YTSWUZRV^V`X^V^[]XT`VQT\d\QT_ZdXZROYZQ`ZX_X`S]gY[c\^\Y`UZ[WNU^bTU\_^gbYWcZMN[YW_[bY\\SQb_ZZWYVXYQ[Z\cW_TYXacd^[^UZT^TXZSUXVYS_JZUV\P]_[^cVXXUV[R\[ZcJ]^gWZWWUXVU[YX^V]]]T]\Z\VYQYVY[WYW\S^S[`[dYY[\O]bU][Q\^VRWU][^^^[WP_^P[]T__RUk\V\Z[\``OWc[fXZPc[Q``YWThf\Wd\dTY\VfWU[WWcT`T]\XZUT[WlP]RdURRS`][a\U]U``[Q[SRPZ`WZgUcdT`XYS\X\UUUfR\X`Uc[YYSWb^cPRS[TQZ^ZTU\V]jQ_WVcXVN[a^^_VY\SV[WZYYTg\]WXW[YSST\_d][RcTTUWabTX_U]U^Y]Uc^eTdT\YYWfSWW[dZNYaZaa`WQ]]\VV]YTUYY]V\T\Y\SYTXVcTZ^YbTbTZUV\WT]ZUXXRZV[^XSbRba[XZL]ZV[`ZKTVW^X^V[X]_Y[]W\WV^_cWXUWYYSW]\eb^\RZXVNYWS``L`dWTVXT`_WbYYO^bU_SYU\YPV]YV[Y[UUVZR]cY[VT\iXXXVYV^^^S\`cVW]PW_`T`vZVLU_^a`^X\^jPTTamV_[]OaW]ZVZXcapTRTVe\]Sl[\ZbQdXVdcV^L\YZX_^O]Udea]_W[TcWaY]VSkTP]Z]W`eRZTZZXfSfV[\[[Z^ZdXUYWVW[ZbZUk^][MS\ROa`SUUXUZ\aVd^Ta^ZZYkZRO`cYZSh[cR]_ZR\XXZW`\Q]]aTVYTT`[WYXZQYYYdWkZ\`deUbZWXZ[XZZ_[PURXaXT_SYYTZdXV`VY^__ZSYPWVYgcb^\S^ZZeTSSYQ[[Y]TZTjX^dK\VaP\UZZY]dVX\WWZc^YVWWV_ab\e`XVW[aUYW`YZ_R\^^YTV[NWWcRXSTVPUNVSR\Q`RUVXQQQfYQ[XVS\gP[W]]_RXYZVSXhUjSa\UYSSZYTX\^]KWY^V_XXY\X[SbUZ[Z^_O\Z\ZTXUUSZTW^W]^a[Y]WTWU^YVU^X\Y_UYkYV\XYXQ_]X[]T^^gdS[XS_]WXVPY][]XUW[Y[Ya_]a_ZTW\]WY[TaaacV`XZU`PVY[XZXSOWefWga\`V_YYVUS[V]Yad[[TSUZOZ[SX\TY[]ZZ\UR]\^adbV]VWXV\Y_`P[ZZ[bV]e`ZY\ZSZ\\\[b[X_UYa_WW]UU_YgRVq[YT`Zeebf[[QUQZS_XYVX\WQ\TUa[]XZfd_\ZWX]`[Xb`U\[Z`X[WYYWUWaZX\_XUTRWRYY]^WYS_[aYZ\YWUV]XUcUbbVRWZTUY\QYS]\URW[dV_VXgabVWWcaUTYTYV]^W]]V`_U^[_`[WR_TT^Z^TR[X_XYZ]cZ`RSWVY]\ZX_WY^e_cYYXYZUP]TV][TY]Z`\ZPVZXaUVRRTXW[XYXVXZTaYX^SY[V[XZV\dOY\^Zae_aU]XT\_a^Xa]RW^Z\Y\RXVTTZW]WWXUZTXXXT`[XYh`^Ze]`Pb^YXWYbS[[ScU_Y_SY[^\^YY_ZVZ`VPWU\Z__S\W_V^YXfY]\XWX[Y]TXd\\UU[]XYWZ_`]TWV\RT^S\ZXa_WY]WZbVV___T_YZ\`UTZS`S\_aXVZZNeZTY_^aX`^Tc\XZS_ZT^_ZbXc\^`\ZTW[U]Wd[`Oc\RXbV^\Wg[YZZ]]Pc_c\V`ZUWU^[UZ_YZ]aaSVYcWURTaRTQZTZ[V__ZZ]]V\[\]\TSVZYXV\YVUea\a][SRQ[]SZZTN[Yb_UcVX^a]P]WTZVUZZL\S[ZYaa_SdTXY[V[\NYaZc^TcRWWR\_[^]\aSYjcR\YXY\XaPXXZZTa\]W[X_Y^eYe][YYU][aYZ[XRT[^dUTU]^^W[XUWS[VWWWbTR\[aYT`U_T[``SPMaYZ_QQTKb]ZXgZVQ_jX`XSX_ZX_`XhXU\geX_dZ\_baVZRVXTL\WUOcSWW\e\aUV]bRba[\]_XUa_SW_a`\U`adW^\\X]W]RT\YTSYZQU[`\V^VQ_UY^Y[ZYWT\[V_Y[^\\Z]ZRSYVZWZ_gPd[ZYUa]U]\[YPVVYZT[WT`aR]VX[Z\]OQZ]ZUVSVXWWWZYc\__U_ZXTZ^^_WX_W\ZZ`VVc\P[WW]\S]^d`cY[eWH\Y[V\WO_XUV_`[XY]^RPcSf[`YY\Z[[ZY[TdZV`W^Zi[WZbV\]_X[W`aZ_XUPa\J]Y]\XVX_^US`Z[fU[VY]_Z[^[eR^RYW`ZSS`][\]d\UZ[Y`V\[Y[\YcTR_\Y[W]eWUaOZ[]Y\UdQWTc_XYXdX^^YZWZ\SgZO^Tl^XdXcZ\`_\V_e^TW_TYTYW[ZS`^]]TZjXSgfYTW\XVfZ_ZU[Z`^^OXeR^^UVXUYWQ_\Y]S[Y[QZ]_bVOWR`U`Xj_][]]Q`bZ\Z[PRV]T]YQ][ZSWWZTW``V[^^YVSVXjSSc`YZYZ]QY_aZ[SZdV[\\SUXTU^aSWY]O_V[]^V\WU]\VZbWX]Y[TVWTV]T]_XMS_WS]S[^[Yf_PW^RSWRVYT\STZ`P`VOR[XYW]bWdXZ[^YX[\P^UZ^bdXX]`Z]N``]^`g\^XfU^^\XTW^`aeS\YL\Y]\YWQZa[ZV_QQQU[U]c\c\a`VU_dXYc]S`WZ[_TZQdR`cX]_]ZZZf[VYYZ`aU]a[_YZR\dZ[^^YUQ^V\U]UT\ZR_[eUNW]UZcd^[W_]XWU\RjW[bZ][^\_K`WTVbaWbUU\XVVgc]SVYZXPTYd]SV\aSTRUTY_SdT\YV]\`[\XXaTP_]\W]V_V[VY\SQVPbbVSbQUV]Z]X\cYPVc_TZ\TWdRSY]ZXXd]RZfX\OZSkRSaVTZTZUZUZWZTXZVW[V^[W\[\`Za][UVcW]SX^UUX]`V[aadX\U\VX[e_XW]][Z[^_Oa^XX[Y_\YbaZ[cWYdVUVR_[Xc`W\]]YYYYXUY^eV\XVWj`a_S\UgRW\ZYS]]Z`TZ[VYVPZTUVTPYO^bTWZO`[WRRS\XdWOUP_[[[][ca[X_Z]``T`XWY]WXbZT_ZOY[bWdc]Wa`]\TQSXUaX\N]ZW]VOU[ZcY^TS]ZX[b^[_dY^\\RPcX[UTXZab^YVSW\aS^\TVWZRRRXXXYXQVY\TZ]^Z]SZWN_]d\VZY^WZ]m`WZZbY\[XW^X\W^ZaTSZ\X\_b^bhVYgV[^^UU[]TXVd[RaS\[OZXdVSZT`\S^eYP`Y_\VTOYbZ_[XTVS[[M`YPacTZnYY[S]X\XZ\PTWhZ]Z][[\bX\W\TWRWOZ[U]^dZ[bU^\OPUZUWbM^X_QWZ[Zb`[V]QVbWY\`Y[eYeXZRZZ\UUX[^c]`Y\TY[M^_\bYXa\YVNP^VbZ[Z[[YOZaT_TTSX`Z`UaS^]WSVbVcaVW^^ZPZ`V^a]WYY\Z_YXWWX_]R^b^VTU]]cWW]__WZRd[\UWUjdd]SbYZZQXTWb`[O]X`\R]O^V]\ZWUQY`YZUXTXTjX]\b`Sd]VTXUW[`ZWXWX\iVbYZcK][Vc_gXZ]\S[^XZ`[VNV`e_YQ]XcRZ]Y_]bZW]UVgYW]]U^R[]U_c^UUVdYRS_RVU\_`TS^]\Vb[^VcYU\VWRi[X]TRbTWa]Z\QVb\[XU]WbdfX^PUeQVYZc_Y[^Y[RNWaXV`SU\\a^Xa\[RT\a\ScYURSWZQP^VcUWb]XZUSXNWX`XVZUZ]W\R[XXbXVbWX]ZW^UZbXWc[Y]XW\VUWa_W\]QQTVWYRZYU\^U]URWdTW][bZ`VZY_ZTSTVaUQVW^O\_ZcPVUZXYXZVXZZZX^Y[aUTYRUZZZVdUXWbX]dUYYTV^m]Ua\WWV]`TWPScYZaV_ZXYTZ\[[^YKQY]V\^XW\ZXZ]ZXRdbUkUSYZ[[ZTV\RR]U\]T_\e__ZZ[N[ZTWXVSVZ^TS[ZZW^eXVbVV\Qaa_Ve_X\[PV\ZY\VbYXX]][XbZ][U^Yaeb][\VYaWRYXSROUZ]cSX`[U[YWUUWaSVYbY\RbR[TUUXSY^SUXSXW]W\YQ]RS[Q\[Xc^UU[U]WZaUbW^`[YXZ[UaX_Y]dX[]aXQX\fTZdZZ__[SZTYY]]Z_U]TZ[`X\[QXSe\ZaYb[VYaZ^Y`dTUUUV]R``ST]RVXV\YecZaPUXXcV^RYY[[[]O\d^d`[PPeUa_T[W\Y^VNNOWVU^TZTWY^aRY\ST\\SWTXZYZSYY`]VWZ]T]cWZQQiS_TTXRX[TZ\Z[X[WU^_SNU\STY_VYVXSaUYRVN\WaU]]c^^^VZYXWQQRL[X\V_XYVQaVX[_ZUc^QZVVVZVZUjUVYXUr][SR]\YWiUQU^W`\Y^Z]Z]Y[WT\U[Z^\[^UXZW_Y`[XWTY`baUXbYXaRYZ[T\^WYXUXZ_ZfWYS\[YVb[Y``ZXXRW]^XTY`dWV_WW]`ZPP]c^cY[XT]ZXcVX\Z_YYZaNZ[`[`_TZ`aTcZYUYYUT\ZXS\YXZY[^QYW]VYaYZPb[VZWZWST\VVZV\VTQRXURWUdWZWUY`aZZZWW_SgYT]YY^\W\[[[UR^[XRUaZQ[^Y^X\_WfcZZ]W\T]]_UWT]VXYX[R[VUUXaXZWX`]\[aaWV[X]Sb\PWW]VTQVX[UUUTUS__M^^[VYUSSU^RXZ`Y__\Y\R\\NYUZZ]^]V[WYa[W]ZVdR][U^\[`VRbWQ\[\UTY^_XaV[\SZ[\a]`a^ZVRaVZPV]`WY\SWX^V]^XaY_[ST[V[[WR`\[mZX[V^VcYX]SS\^XZ`_QaQ_UYaeZ[V`U\]_[Vj`dcbX^WW]UY\^[`]]SZ\WXX]UVXeZRQ[^Vi]^XRS[^VRV`dZZ_cZX\aa[]R]e\S[RZ_XX_]UiVWZ\]\X]XT\XWUha[\]^ZYXKa]\ZYXSe`TUa^^X[]aVR\X__XZWYa[^\W^TY^VYR\Z_U`\RWWZYVVbaqUZQcY]YOY\XS]UUVZY\WVV\WV^TWRY_^VduZXaZeY\\U^\W\\\T\^]TPUT]Na[Z[X[T]RVZR^\X]\_^UdSaXW_Yc]a\^T_[PURYVdX`W[\\YSYcZR^YR[g[TX_R\VY]fX[ZR[_bZbZYWXX\YUjWY]WUJ]aUYVR^UZW_ObV]]\Za\YZ]]]ZY\^Y_]ZXZ\[Xf\]_bWd[[YQ[i`PYUZ[[XZ\_VQUOYYR^`]\_XOXdaWU_S_deWQaWV_VYRVSZMTTTTQ]VU\W_JS\_^b_R\\RN\]U`VYQVmdYW]W_ZTX_X\WQgbicRNR[aXYTPZ]_`aPMYaR\S_ZXR]ZOSZ`\]U]U]^Vd]X[T]TY]Y^[\ZY]XY[a^XTSLT\Q^Yb[WWWQWT[]YSI_dVT^UV[QeTYS]XYdWSZS[U[W[dXW^[ZYWMUTVadWUV\TS[ea\]]Rec]R\aVPYZU[USTaRZ[`SWVSg[UXRXZTaOa]ZSLQZ]WZV^WY\[V[[abZXYURX[\TfT]^eUaY_PWR[[]^aS]`SPQa^UZUS[^\WNTYb\XSX]UYSTQZ\Z\WXVTUUSPW`^b[VZWRRU_PSZXW[\RU_`QNT_\UXQ^c[aZQQ\eGYT^jcUZ\Ob]^c^ZPXTZXcWVZR]\SV^WXY]d`\YY[_\[Z[VQZXWXYU_T^U^`XQ\]_\\[U\R_Q^[WUQXRQd^Z\UYZXZW\cQaU[bUV_Z]WW[[XXVT_R\]XZ^\\WZPcdaZ]U\W^bWY]V\WYYRXW`bYTY[[dT\c[b^XSURYX]ZS[X_XTU\Vb[Z`TYSZXWYY^\YWYY\Z`TYZQb^TV^^\[c]V[[\]dY`WWUhTWYR[`ZTaYYWZddYU_XZX[gQbZ[\TX_XWY\PWaV[\VU^[ZXTT`[XXWR_Z`cXU`YT]V]YX]\aUe]VYY[WWS\X\TXU^WaRX\S^ZUX_UYXZU[\[]XZU]XUVZ^XZ]Za[^bQ[a]ZY[[N]UZWZ\N\U[_VZ^ZTV_[TZYV_cTXZX]OUb`dZOVc_PZZX[UW\]bXXbSbS[RR[^WWVY[P[ZS_XY\YZZZ[`Y_P[`_RYYS[[ZRa[P[RZ_Y_SVa[W^XUVVcS_[X]\S^ObdaRVVcWX[R[LVU[a]Yd\[YeQTRV`WV[^bXT[WYd]YSSZYZU[^YW[[]][ZQcZQXQ_SWZ]XUeY[VUP_Xc[^U\ZR[\cPUPWZY[\ab`UZYVbW[^SW\_XY]VV^[\\Z`]USaYTU`WYZLZU^\VaZOWXZZ`[V[]Z`QSWUbaUOZSTWZSOX[cUaRX]SUWS\T^]QSWc^[aVS[ZXX_bWV_TWSSZZ[T[]a]]_[WTZX_\\[Q]VZ]d[]XYiX`XUWY`S_UbS\R\W[Q[X\QYRUc`UaLZQS^^[SSLN^VS[[X[YZW[[Z`U_aVY]VaaW[TTXZ\]c`URTaP`]P`\Qd`afWRac_`R^Y_UYaW[Yd]cd\RY\XdW^^W`YPQ`][[Z]SVPW_cYZ[XWYaVRR_ZQd^W[S_b\YZZU_URWWTSWPhTSUlWWXZTW\N_\aW]c^b`W^ZUZ[J^aYVU\QfWQ[e^XNUS_]QWUScTO\RcTUUXccZ`WMV[WY\WYXZOg[VUZ_YaVV[UM]]STPTXWQ[jZjYbl_XUWWXfTYR^XkZ]QSWhVM]cYWcW[XQV^Q^[W]][]dZaUTS]ViO\aVYUUP]S`YUX]`TNRT^bc`YZU^_\TWQYZ[ZZV]_`^P]T[ZURS\_Qa\XW^RWVcPRTX]YQ[VSUMTWZTVVZUY_Za_]T_V`eaUH`T_gY]bY_XMVXaWdfSYVQXcWUQYU`VTaYX^YW^VSaYOZYUgQ\_\V\[\YU]YXMQW[cXTbTRSTMXXQVQYSdYV^XYaY`Q_TWYYa]\gaO[`bWc__[aX\Xe\STP]Ya[XW]]OWZaXiVScWYXWX_`[SWW]UXbbSaeQaUPcSWQTKYXX\UX_WUcmWT\STTV[YUZ[]_OYXX_ZXbZ[X]V\eQWVW\KV^f`[QTYiUc\W\[WXZ\Z_NTU[][ZYRYaXXXZ\]e[SYN]aZ`_a`IL^U^[UYT`gZPUR][ZdVU[YXbVYbaRQbX`^\Z_QWXba\XPZVZPWW\UPRY\\YTYY\_`bPYX[P`SYdeWWTOYUVZ^`VZ]TN]W[SP\YVUYb[YW[^YW\Za\NX^aU[fW`OX\Y\\Tl]_X`UcXVYXYYS[^[]Z`]WRTU]WW\[_TZbY[_Q^XPhR\\VVPb^Z^\Zj\h]bT`U]hPUWSYPZZdRU]_R\\S[TSU`^Z\[]^_\]_bbRYeX`ZcZ]T[\ZS^aVV^^XZYcZPZ`[]caV^Y[VZ[ZR]V^WR[QSZYZWY_\ZT]YShUcX[aYQ\[V^RTSYRZ[Rfai\ZQZVg[XY^YY[\cX\VXXPT_SPVWYT]TVQWab]TdTR[\[U`XW`ZVZ]X`T[\aa^VZ[[`a[VV_W]R^Xa]`UXZdY[W`[`[]VN_e[[WXW]UMRYXTYRNWaZWRN]R[W[YYWc^SPT_Y[\V\aZ\^U^\g`]TX[g_`]\TSWRP`WYSQ\WWU[WW[SW]WTeWaYR^^dW\U^^ZSPV_VTR\bY[XZSV\WUSXTU[STVYX^WVWWc^]YSRV[YbZ\]WcSbZW]TZShXYV]b_`]UVU\UYRPUgWU^RY_YcXQYU_\WY\]b\O^WVU_SVSW`]YS\_\\X\]]]XgX[VU\_Z^\X]XWXSZZSdaVUWZQX_]^UUQ_^\V`_\`YaXa]nXXPUUSbUX\UVXX\YZhWVXb]c^`^RaV^^Y[S_`]Z\c^__QXZV[YQWZXXZ^XZ]V\\UYUVad``[X_[U]T^]SYST][RUX^PQcVjWX_UUeaUZfX\]Y^bY_^RP\^[VV]^UgZZ]UXNTV_aZQ_XjW]dVVZZYdUYYS_eVUZZbXYW__^QY^We`[\YWZ_c_S\fV`]VVYa\XQVY^d[Z\cU\\XRZ]QWVWYYWdYRU_`VYSVXXSd\[[_bcZYUV\`TWhSX^\`U^V_XeZV^cZ\UXQPVT_Y\YffYO_T]SYb`[TaPXRVNU`V[PXQ\_W_TLLfV_\_hXVhcTh`bjTc]`\RX\]i[ZYUVVSWc\YR\dPXnfY[\]]M_]RY[YRWYUWORXU\SURUYVa`[Y`MOc[[fUP`eWUbUYJaRP]XT`ZYT_WV\S]I[_ZYXfRU[RYR[YV[[PTgWQZTNSULacb[_d\M]UQ^dYURU^_bVRUbmRZRVVRRhQQUPZU[OdTNUTUZc]XY_a]H[P[[_WWbWVVVR^[UPVYbR^\^[ZUab^aW`FVRX\g]^UaQXWWZ\_YV[V_eYdWZaWaZV[][[c]TYVWO^\OZYRROTP\W]VfbVU]ZWP`TXbVMU^SXNVS]^`ORbUacRd`ZYY^SYR]U^dPT^bPQ[Piad[]]XTVe[]Y`\[`\ZOUXWY\^f^WW\XYZYUKZ\_Q]U[Tf^JU_T[\YWWWX[UZX[S_WZV^\]W\YX[RWYe]Y]Z]ZTce\W`W\XYMbZT]_[e[TXZYZ[[^X]UWXYXWNVV[]\YPZX\ZYW]OZZbYY\^_W[_WXRU[TcZW_eVXWT`_[WX_TZTZS\WZXVUVbY[^YdYa[YWM^YMY``VUYS[^^Y]TU^\WW^T^VXUS]SS\WYaZ`ZWWeV[^Tf]SZU\SWXRR\WNXRVVUPV\\[Z[R]`X]]hVb]^S[[XXL]STkR[U_`TVZWS_W`]\^W`Wa]QSU\W`TUZ[]YZaUS^\XUX^c`TX]XWXX_P]QU[\Z\YRYZVZ]R_TSKVNYVZSc^Y_]YSUbRaZ\KYOWV[]S]X\aYT[X]Z[Z]QXVXWbVVTSV`WR^__VTZZWW_SX[T^[\c^[]VSWWUba__ZWV[Tb]VZ[YgaZX_\^Z[[Te\ZV\VYY]gTUX\\_RYXYeWXY]_YTW[`]\\UaX[TXb`Z__[[T^_`[\TpPg_dg[WVTb[aX]RW]V_YWT[VkZ]ZbR`YYcVZ[YUYXZZ[]_TR`^XS^b[[]]_Zd]lU[cWYXR^\^XZR[^T`gbX_WYQ\YTPZYeW]TUX]hUchVaWV\YYXUaZXR_\V]VUYTXbYYNTc^Z\PVZaWSV]VT_UZ]X[XTYXffXZ_\^[Ud]abZ^W^`Od`^^^^[Z_T^VP_PX^[__fcSgVT`bTkR\^_YVNeXZWW`ZYWbWY_[\^T^Y[LS]eSWRX_\ZOaVZab]YVSZ\]\_b_R[bS[O][ZQSW[SYXXYY\`e^\`ZQVb^VQc[^X]S^WZ]XSWVSXZZQXZ`a_dVXaX^`SZ\Q]bR`]YY\\UZ[ZXegTScYYYRS`\eX^YRUTSRRWfV^Y[[WO]RQ]WU\NaX]WgRWbP[aSUZZXYWMOY_ZUaV_XWT`Qa^_XU`[_[VSb^^^Wb_Z_\UUUY^ZUYQR]X\[[YWV]aX\bYSYb`[W\RVY`aTfUYYWXUTT[VY[UOOb\SZX^bfWSZU\ZcL\\XSQYY[\YTcPU]PVRXVT_bbYW\d]Y_Z`YY[WPYY]]ad_\UbaXXQVge^`eWXVTaSZSV[U\c[\SWaS^ZWZ`[_]\Z_QYRR[Wc\TRXcZka\W\\[YZe_X`RO^ZFXVW\Z`XUQN`]URZ^]YWYWV\\W^U]a_a_T_RYWZaZT[`]YY_`TZgVY`R\VS[^baZYaVbWY_OQ^TP]UaRV\[YTZYVVZZYOZQOX[TY^eZ[h`UX[Y\UX_Z\ZYZa\V_Z[`\ZV`WV\XP\XVTZ[\QTYh^S]Uc\VRVW`^bYV`[f\XTVX[^V]QO[UdRXX^VZVMRXPbZYY^^W]QT^]XWWT^[ZROeP_``XX`RZY`[RLPWR\]YX[ZWVXYSQZU^UUWPIQO_\TdRTTM[Y^Y^[`W]UQ[UaYW^WUaRX[XXd]UU]VV]YV[^Z\_VV_N^\XY_VTW\]^P]Wa^`WZb_V^UbQ[Y[PX_X[[[\]SUZYVa[\Zd`[f\U\XWSVPVR\T\RVXbW^_U[NXcZU[]Zc^\\UVUQ\X^W_S]^Z`ZR^MUZTWU^ZYdT[]]WVV]\ZP`dRZRX]YWX`^T^XZYVSV[Y\WX_]T`XXUQYTWZ]OOT\`QWfTX_YRZ[RYXd[][_^TWV[YQ\ZT\]WX[[MYVZX_ZTXXWTZYUZ^]W[Q\UUS[^XbVRY][X^OVUXa`S\PZP]_]S]Z][[^YT`U\\XPb[\YWb^`\^eW\S]SV_Y`TRWfVX[bXZaP^i]cVU^O[_YZ^X_U\Rd_aSZT\]^Z\Y^_RY[YV[\VbRXYg_T[dX[Z[WWZROQVZe\YUaWZRUZObXaWZW[Y^WNV_TS[[V`YdXZ\W\afU[WZXZiV^V[^b^b_\ZX]XUUU]TZWc^SX[OZUP\VYZV]`^]YZ\WP[\d_ZVWbYY^^][\^]]UVVWX[XWcV[^^S^UR`O[Z\k]WW]X__nXUcKRS\UVUTS^S]RT\OV\U]]RUZUZP]a]ZO^ZW[T\[ZTd_[^`^^U[WS_LY\UOUcgM^UaSU[^PRYS_YT]aV]Q[`^]UTR[WU`YYXcQ[R_bUaY`bWWPSJUVXX\Z[WW^SY[W`]cbef^TO[V\P`UQ`SXaeX`^PU\`T]URU`a\RQ]]V^^V]]`aYWXbV`]`WROT_fgZh[V[^\\XTSX^\PNbYU\QUZX^X]eZ^XOe`TTY[Ua`Ue[RWV]YW\[]a\X]\cUWM\Xa^dT_X\Z_Ue^^UXS\XX[\WNV^fV``NSS\YWTXTbW``Q`ZaULhOa]aTPha^_XXXQ_aYVVb[VSWaZ\[QPV^PUVSNVNW[_XQaTWU_`VTIZZQ[^VXU]RWZ`]aZXcZYT^YX]eU_WWYX^UVPX`WYRU_SeTaTUZV^]\\]Z\`VXYQPcX][b[VW]U\O_VUa`a\WWVZWcV[T\b\Uf\YYS[cZd^WaY]P^ZUVYP^SYf]VQYQV\]Z_]\ZUV]S]`\T`ZRNcaRa\Z`QbSZ[\WV]ZZSS^S[UVY[^T`SW^U[TR^ZY^cVRUdRWZW^SWPV_MURWUYSSTS_X`Z]]XW]VYQ]ZWWd\WVW]\\Td`_i_QX_ZSZPO[a_Q\^_W[Y^ZWJYV[WS`ic\OXT[bWb[a[YOWSTcTZRYaXZa]\jXdTXSV`Y[YZPVdUZPWf[ZQXVV^^]YdYbRU]_PbYb[V[aZ\aZY[T\TZeVPZ[U^_]_OST[Y_QYbc_^VTe^[TYUU]V`[Q][aQ`Y^]WUX_X[^_\Z^]YRSW`WVUSYU``^[[L_^UR\Y[ZXTYMUVS`VTS[ZZYaYZVT[NXXVXWYZ\SWP\VX`V`_UYTWUZha]YT_c[UVcgU_bR\[Z__\^Q`ZU_UTV\O]Y]Z_VhUYUc_RO[Y[[TaVVUecbWU`RT]YW\MWYXJTWXTTZZS[Wk_h^XeW]ZZT\WPRaZcY]WVX\TUXT`TYVPT\V`VR\YUW_WPdTYWYZX]bZ_dRf\UcZh_XT[YmXTfZ]RX]WeV`XN]V]]cZVZ\X\WWaXbYZ`[\]bXXWbSd[TUWK\PS`[]\aVZW^V]_\kTZd_[UYWcl^XSVU`QZMiV_]XP[W\[gg[RWVZYQUajZ[UYeYhPUb`VQZZZP[URXYU^O^]SXXTY_[U^YSdW]S\Qe]T\[a`cX_STfNMTVYcUcV`Y[RVXa\ZUUa`TWVZ\OZPTWTW[bPZQ_ViQ]O`Z]Y\RcUVeV_ZXZ]XSNWXX]^XWKVSYNgR`ZnVQ]UW_YZ^L_YWXb\ZYN[[ZXVZbYcTX]^\PYYO]NVVLR^ZKW`^K\U\f_[\VV[U^ZpcYT[Wc]PV_T^[[VW]SSTZb`VTXWhSTZX][V]N[gY^TU\]\QV_P[[ZUbfSZ]Wc\gWU__aX][\WXdMS_g[_VTWfX^T[U[STjSbTcPU[WTVdZZ^VR[S\XURi^UZ^TZ]\ZXVVahXW[W_^U_V`VQa\\[VZYaP]]ZXL\Z\V[`SRUQPtVaVS^WZQ_V\WTTVXXQaYQSdSd^]R`PU\[YfeNVVPWT[X[_[QX^TSaeYSRWRWO[U_XaaUTU_[^RUZ[ZTcW\VYWWU[ORXZ_]\Z[`YZQ[UYP_WZT[RZaZTXVPVVeN]aaTO]^W_X[^ZR\VZTaY^\SWZOUbX^_UZTZb^[ZX[[[QV[V\PPVdRLXd^[SPbQXVZVXWYXXbVWXW^UXZXOT]`R[[]bZUR`VVX[d]S]YM`VV_]U]TVXaa[W[^WZVS]aZj^XUUZ]Ud]SQP\^aRRUR]WY^TPV`V[UfaWYPR`U^ZSWQcPU^W`UT\MWNXWQV^[Yj^V[UVZWT_VXT\YW\Z`Yb_\^[jM]cY_S_Y]\^hZ[]Q^X_VVUU]\]_XV[ZZS``Xl\_V_\Qb\dQ[Xc[WY\VYT[VJTSYVYMWSVaYeZTWVX^Y[^[\bXZWX^RVX`[^PTWX`X^Pa`TVZUV^aWZ]RXN^V[UZWVXbUVU[aV\Va`\V_Uk^[aUV_`Y`]OW[UVX]`]\PZUT_UYZPTY[XZ]_VZVh\^YeTR_b\VYUPbMTNXWUja[^ZXXcZZ``VRa\]ZSZb[\^ac]QYjR[]^TYXYXU\NUV_[`[_XV]e`Y`T`[`[TTXTcRba^Ve\UWV\UZZZW[Xi]QUaaUTZRaaTZ``T]YVRYX_\\V\_Y[\hdYZc\WZ[WYbZ]]YWKWTVa[]Y_UWYS`ZXWaVT^_VXUZ[`]OSWSdUWKTYaU]Y\fUOWQ]WU]QYW]VfX_^[\WbYYVVYU__TSaO]bWnVSX]UUZ\`]ZXXS[^[WZUT`YXVa^XdQ\Q[P`RWTW[c`ZZYV\V\VS`R]XXT_SY_V]^XaTVa\RXaX\YTRaV_S]W\_Y]RWfW_^Ta]aZTNN_U_XZ\aYVVWY_XXQPVX_WR\a\aPWPO[OYU_ZZRZZ[RTWeU_^W[dZ\[YUYeXZ^XV[ZM\bMVJfXU]SUUbbQZZY^VVOXNaTZ[`Wh\S^a^YZdYbeZdTLZfYXSZXLVWQUZSX\XTIQVfgURTT\\\U_bVT^WQ^Z]bW]]\XX\S^YW^V^PZ\Y]]^OX_X[fj[ZSWV\RYab^XUd]d]VW^ZWXYSYeZPd\UP[_XTaJ`Ubj^YP[^VTSZWa_QUSSZUSeZR[VU`WR`YZXRW^\]`RPagZ[iU^[[QTcNXOV_]TU_VP^[^dUKWNJ\a`UV`aUVX`eZZWW]c[XVV\a\Ua^VXZPYW^Wc\Wd\RV\[\aWaTb\\^ZXR`SY[SbWYQ\^\UZZX``Y^XWSU[[dU]UU^^ZZ_VZKW^YQSYVTT[Za[nf[ZUTY^V\WY]WWS^\UU\ZVXU\V[TaUV_\XUa\RPQV]N`V[U`TYZUUTW[aXP`XZTdZXQ\^WeYS[We_[cZ^YYY\YLSZaV]U[Qbbc^RNXWb\\VS^Sa\\ZUZNW[SX[Z\TX_YVYY^ZU]UZd_]T`VaWSWZWV\WU]W`cVUYNcZ\PV[U_M[`ZWUbWZX^Qd]\WWa^T\T[`WdVZ^UcSYTZ`RU\[X[_WZX`PQZ_VXXXVb^aQeV`[`[Sa^\fZ]V]SVdaS\\[^_[cY^WX^UPV[aUQR_YX_OVYWW_WX]Z[SUcVP[_[[^WY[XZY[YVSXT[[_YXP_YV[`\[XW`cWZ[^PQ`SXY\T[YVS[cR\^YcVXZYSZ[`Wi]`[WWX]WVTdUS_\aYZY]ZX[X\\[g]U[TS__]VVUV\aXZ[^\eXXW_]b^MT_^W\[`\[Y]cQZX\^MZ`\bUKXSTTVUZUVYW_[[R[S[S]]ZY\W^XXXUQZ]WYa\\TWX]Z_YOTZUSVYYUZ]_fROV[Y\XX_\^_[R[gM]YSTZQTa\U\_YQXaXT[a^[X\c[XU]U\T]MdY]]\\\RSWUSXZ\Z[S\U[XUVhTScV\RSX[[UcQaY^cVVYXPWXTTXRdWO[WTSZZ\`][USX[UaXaXVYTU^[]`RTbYQaXgWZW\]VaTZSYQZZ_\NZVTW^V]NZZVbPU[YObRTQdV[W\Z\ZZTaTUXXZWUWZZV_ZZRV]_YY[[YYdb`]\_bS]]VP[XaPc[\Z]`TaWVaY\W_SY_XZQ]Z^]U[RcXW[UaZZg\[]\_^[]d[Z_cZTZ[WZ`^\^VUX\[QcS\XWO[X__TUW[ZYX^YXTZVZ_T_TVKY[_WVWR]Xa[YXSVVV__X]d[\W_[UVZ^V]W`Ya]^dW[[ZX[T\WWfSS]\W]XZ[WPUV\YUZZWS`[bUc]`_RgXVW_X``UQ^[^YcXaSd[XZ`R]]][OV[Z[^SWTV\bZ_`UYT\_a[SMZYbb\]ZWNX[cWZTYR]Z^XZj[a^^VQ_\[SWWVYU\XZY\\WXX`XTZXS\V[]__WTYWZZ[ZUa[aTc\[\XTJNZW\XY[WRSXW^\SZTYZT\WXQZ[gQ\^XTZ]gVV^ZV]Za[b`f]\^X_YaQ_W^\]RV[UWVUWRYUTXRVX[ZYXYXYW\VVQ^ZNW][YZR[`Y]Z[TWXb\jU]hYT_WV^U[^TWOaW`\acVUXQVR^`]\\\`XW]WV[\[U^]]i\TUT\UT]c`U\VSU\\UWU^_ZWSYWUUTVVXVZV[WUUTXUY_NZZ]NWR]_ZV]ZYVTXVaX]aYXV`ZSW^^[UYe_\]XWeVWcU_TOdSZRS\XZ]\_UYZb]c_WaTVVO\\W[MTZU_VYZ^][][WUXU^^XTc_VV]]_[Z[W^][W^WVXY_W]OZXU\\^Y\WTTV^WTiPVX^RS[LQXVTYY\Y[cPWaV^`fXUUZ[\`XZXYb_S]NRYUhY_Z\ZY_[XWQKYY^[WUPX\U\S[[U_[XWkYQc`\[T^UWOP[YXVWX_\U\\]bUWZRPY[ZV]STZVXVUS_MTV^UQYZh\SaYUS[]YZZ\e\^ZX^^Nd\]][V^^\TVY\XZUaab[YYQPcXV[XSXUVXbUa_`_\Z\a[dc]ZUiZ[[VV^W]ZWMTS`\ZaaU_[][`^Q]WX_TcXUVb\\X`b_VT^cS^YRaR\YZUS_RgX\\Y\]ZZRZYbTTeU^UWZZcWeUa[\`b[Z`S`WXU^a^`ac]Z\ZXWQ\\[kWRZaZR^RZ^\R[QWS\][_[WdSVYeXVP[SLV\YWVZY\eTO[gTXY[WYWVV`U[lVO^[ZVW^d[P__VWY`RZZRTdVaXbWfVYP[bSTQ^PZV^[XXZ]YUW]W`\Tb`RX[Y_UVc_`a]]WUX\ZX^]]Y^hdb\aWVTX][Q_VX[P[W\R__\TX\\Wb\\VSb_MaX[`YV]ZbbT\XYY\YjW[[V]^OgPZeN\_ZWSfX_]S_\[VaVchW]ZR\NYX_Qcd^`eSQ^\jQ[dY__ZVZacXaUSTeOP^_[VWTQQ[XVYPPd[WXZX`U^YSeUXWZYZTPVZUY[]PiQ\b^TSXURPZX^WkZUX_^O[aJ]fRVdYWf\gX`^YO]bTXV[S[ZXcX]dXZdb[O]d`USV[aZTT_TcXYZULLXaVMS]W[bX_YTQTSiY`bdX[V^]WWZVZWV_Z\UYXZZU^WbY_[[Y]RVZWZfWaUW_]R^T`UT^UVaYVWXXSW_]WZZ[WLVT[QWO\[^^W\YZUc_WTVe\WOVUj[\dSPLV[TWU_QTZ]USUWQ]^[VY`ZZZYZ\\aV\_aWVU_^`SUaY^dbZX]XTWX\\SORT^YUU`_Y\Rc^U[YT[b_WXR\]Q^^bVV\VQ`VX^ZXWWZ_\TOYY\VU[\YUVQV`_^_WZ_XWWU`[Ydab^^X^V_VXYTWcdXXT\[WY[OZT`ZU[Z\VWR_^YcYc_Y]UZ[V]_ZYdUYU]Y`_XR^YV\TV^\cV[]R\WWW[[U_^S^`X[W]W\SWVPaaUaXeOZ^X[\\[`\YV]][\YWY]UTV`dV^VQXT]WNVR_``ceYXacWYTaV_`c]SbVS]bbYY\Zba_OX]`\Ua]SUZXdVY][bRgSS`TTX]VccSXY^W\[Y_V^T^UV\Y^Z[X^TZS]\WV_TdPWVXgaSXXVYVWTU`X\eaXW\T]Y[_[S[e_WYXRSZ_T^SVSVTg\VNO^bU\PZ^VaWbZX_XY^X]W[b\WZ[_Sa^_^VZa]e_Y^WMW[TWWTXP[cZWVVcXY^^ZS\WcRZY[X\\b^[\QW^[]Y]][\XaWTUWR`R`OOXZX]bcSMXXYXRYU\RVWQ`YXPYTYTV[^[\\cU[c[\^[_WYaUSXcRW[XVVdSWaWXjTTb^^[dY[UWW\]`T]SUZSZdW[`[WUaa^PYUT\VZfYa^WYXU[J\cX^U]YbZ\b^c^YTaX`W[UZ\W]TY\Q`RP^X]XZWWZ\\Y_UYVcYO[hUbU[[fcbWOXX]ST`_WXY^Y`ZU\WaK]XSPX\T_XXd_QP]\[YXTWUS]V^Z\ZZP^a^NVYY]d\b]cU\XV]\[][_Z[cTUa^dTWa`O]gYSY[`\TRXYZ[^VY]XY\f_WQQcXWZYaYWSZWURTY\h]_VY]\`_][_]\WW[Y`[YZcU\ZWVSQZ^[U]W[cVZ]]^]VVPX_ZOiR[YW]V[U\UZ_eYM\VQSb]WZ_aXV`]Y_US]YZXU_\Z[_[XRYYZ`Y^VQWUWhUQZ^`\[Z^^[^T__^^^Y]W^VYU[Y`[[]XUPTaX^]RhVZSV[\\VX\UWYW`VY`^TUTa__YP`WZXWTc_YNXXYZ_d\^T][YY[V_\UbXYaR[X[cYZ\^^\]W\VTY^YYV\]_[^SV[ZRd^bbVP]XXj]^Z^[SXZdSVdaYZXaY\U\O`V`XZV`\]Y`dXVX_\WQVUXZ_e[PcUX^ZXh]]^\V[QcV[YXW\X[\^VXUZY\LXTU^YYac^_]S\YY]`VWW[_UXS[]ZZ\X[UU`QWWY^\ZUVTZfd`_d]V_W\[SXW\NZULVVTYU`O`QYWV_Z]W`YUZTZRRaQWM[Z^[U`_T_\UX]YV[\\X]V]ZYRT[YZb`RVZP_ZXZaV`Z[_P[RaXS_XYW\XaYU_[_hZQYZUaUWUX^a\W^X`Nc[Y^e_[^`\_[We[^Yc[RX\VY^VW]_SW^ZX`]\\SVZWV]QXd_QTXT[[d_UVRYS^_[XYX_\[_Y`YW`kYZX\RVWYUXUh[[V\X][\Xb_Z^ZYWV\Qd_Zbf^W^ST_Y][\SYYW]URU\[^_W]SaVTY_e[fTX\^`c`YZT[\\\U[^\YSYXXO\Va]Y^YRR_Zd\Y\PWb`gW][aYZWaX\dO_cXYTTG]YQ`P]]WXYSPX]^[_RVV\\T]bV]UZbYbV^XX\UVX\U[ZVZWXO`^ZMVZVR]WZbXTR^]U\\_Sf[U^Y``T^YSYU]cSZQWZ[^T[dSVVS[UTZ\WS]RSXYVRUR_^SSXZ^X_MZ]k\fp^]^X\T\jTXWSWcUUUNYP[\\hZ\`NTWcWYLVQXO\\WWWcX\]YVWa]KZUWSUTW][YS\]Y\S]PZ[fNPX_]T[XO]_XSQ[ZZVYUVfSb^RU_U]UJ\YZdRXZmWZcVVVW[g^^TO`SX^VadRWVUTZ`XgTUYYQYWeWca]WaVYa^`_`dS`SSXRYdYT\_X[[aVV_[YW]W\^[[XeSUZXUY[U_YY`OUSRUhXZ[WYZSS_TVb[T\``VRYUZ[YP`XTYWX\ZIYUV]MZT`SRVZXULZTXVbcWVQ`ZUWbMUTTZQYeT[_[VVXWXWeXZ[RU^XbQ_Pca]TSX[RZ[UTXWXWhVZX\Q]Y[gTaSV_QUcPWWQ_WZ]_X^]Y[W^WQ[a]]^[a^^Wd][[b[[VfZSXXa]SUY]W\XSQ^UQ]V_L\Qa[_^XYeTWVd_U`QSZT_XUYYY]\ZZZSXTW_]_SM[`HRb\YZb[e\ZU`SMU`SO]ZU\WPUXU[PY[T[ZRa]^X\VV^][][\]V]WY^WXhWX[TY]jP`\R\WV`TPZ\]YXQUZW\S[[\WT[XQTRVa][X_ZZc^ZTWSZc]\UR[[_TSdZ`VM_WXcXWSNW]aUP\_YPRYQS]XZXU^RNVV[WQ[bQa]UN\ZKYK_SVXWRdS`VYVWW\\TI`Z^VZ]QWSa][`\W\WOTNV`UZWZXW_[T_ZVTU`_VVdZZQXX\[Z]P\WWZWZ\]QWZWWQVV^RaXh_XZ]bWVTWTY[ZZX[^UNQXVP\U]P_T\[a[SS`YcKaW`[h`d[b[__YecZXZMWXRTTXWY\cP[XWTXOTXZ]^Z`PX]\\_Zid[mXXV\^\[_^W[^^^JYSVTTYZZZY^XZa_WYdZ[`LbT^[[`V]SY^TL^UTaS^Z[]\ZbT^UUWY]RZ][SX]UZU[\be[YSVaYWe\W_gWT^RWSQbeT][WYQgd[UTY\WPT[a^[T]\]ZPUV\YTN]XT\^b[X[^W\YS]XOTRb[_Y\ZW[h\XZXWVY`[VPeOSZSZVU[_ZX`VaXZZbWYZ[TYUVWWf^\Z`a__RYW[XUaRQTXacUZP_aY]\WV\ZS^ZbRVZaXRTUVUXV]Q\Z\]^aZ`[_\PVU_[[]U`^Q`cP\_^^`[[cYZ]W`\cV`b]PaZ^RS[V[dY^]^WR]SYSb^^TVQ`VXW^XVSThXXXXYkXY\d]ZXSUUX[]e]WT]M\bf]_UaTYYSSWYT^VS^bV[V`XTVd^T]Zc`XTRdShO^VTZahX_][oPYO]`Wd\]ZUN\TY_QX^W[XOT]Y]RZZYT^WT`S]_aV_XZUZW[][SV^]`YVXYZSSXVO_UYY]PaUY[_XT_[YVb^VXR]ZTXUVZ\TUZLXZRa]Y^O_YQTYZ\ZZic[S\aU]WVWRb\Z[TRVdbSTY\SWX\^WZ\aX]_eQVWTYXaWdYZX]X`U\_fUYY[[QYY]ZYYRZYSZUW[T[S[UX[bZU_W\YS`Y`UX^W]UZSQXbVUa\OVSPbYW\W`V^W_\_U\X_W[WZX`gU^P[WT\b\XUQd]`\[Za^XX_STXSYX\Z[_XbPcZ`XceYXSSdYgU]YcZX[Pa^dSX[]QS`fYXU^VQ[]VaV\`ZXeXY[XTX^RZUVPU^W]XTN[RW^[ZT]Z[YX_TYfVZSbRX]XWWW_^PUZUTVUTURT]]VXPVW_cY]S\ZQ]]UWWSVW_hXW\a[g]\QOZS`\d]\SUXVXMT\Wb^VZYXWYa[[XUhR_XTn`X`ZGX\[XWYXZWPb[UVTVQX[c^X[VZcQQ]bUZX[^`Xc__Sc\^]^Y[XX\UUX`XehTTUN\YWP\S[YQTT]XX\VZd[`WY\[U`TZjTZZWRNW\TSUY][OYZ[ZY^ZcbVYV][e[VQUTXYT^TW\WdX]RZVVVWZW[bVZYT]`^d[T]U\aa\Y]]\YVZXX`UU_`dZaZ\YWS[RVSY``^\V^\YUXc\bb[P_e_fRUOUO`PO^[]kb^U_^RUZVaYW\XYR`Tc[\^^X`cRX\YTUXXX]\[^]VR_ZSa[`YVa\ZVZ]]`[S_R`RTUTZhcWaT]_c\QWcTYZQ]VWQ_VZZV`[[U__PY[[UX^cXX[QaRWT_Z_SdaV^]Ya_X]_ZZaQ]YZbV\QUVVa]S^[YZ^VSZVRdkSOYY[^TXNfW[X\_\YaZ_`Y[UZRU]SdWQSRYX_UXRjQZ_YXWOVZ[U\]Xd`]U^f[XQ\]WOTba_X[UcXWTZXO^R[WX^Ya[YX\XTQZa][VSX]LW_ZW_UUS\ZYZW^S_ZZYTZP]RWMMh[RcLb_NX_\ZYaXV_XaaYYVQUVUQbVYXaVQ[mn`a[bZZWS]SZQ_X]WZXXUYZ[_UW]YWVVNVT[YVR[c_PZ\_YYW[]X\]^aT[^S]YYZZVUc`Z\VXdU]Z][[Wa[YZc_WTZVWV^WU_bU]TY[Y[^_OU^N^\\cXZ]]QWX]ZUN[Y]hS[M]VW[W]aY_YZ\Z\QX^W\VYl]\VXXZSZW[Q[V\PZZWX[X_cXZdbVWU\_Z]VUX_U[]c[_[WTXWe]ZY`eb\]XWY^ZbX\d]^WVX[Z[Y[RYRZ[VTYT^[[VVX_\XZR]TYYdS`XVTWYl`XVRY]]\]eVY[dY[VXY[WZ^UXa_R\URXUYYX_^_^YUVV[R^WNXYZS^]\TW[kSW_YXR^\ZYg`W[\d_YaXYd^[X\a]WXZ`OW^\WS]^SUZ\UXVWTW[Z^WM]X[aT_^ZUTZ_[`dU_[TVY]hQRXWRSWZfSWZW]VX\ZeVZYZWZ[]ifURP[]UY[[Z`_Wc^Y^]aRa\S[WeRV_WYTVc]PUYXV]^\WUV]\R[UVWVZY_]YNeW[T[WWWUY`]XW\Z\W[\cYW\`WfXXTXa\XIUQXXWdUY\`VX^QV[iWUR[XYV\\fZc\a[eT\TXWfX\QZVRZXXW]NWa^T`eZfb\SSRXOmVTUT\^_X\P[YS\Y_aQhW_SSZ`hPb[VY`e[Y\XZ[[Zd[NYXSW_U[XX]\ZXYVT^[US]bNVW[SS]L]]gZYUa]fWaUR\TXVW]Y\PS\Za_[Y\X_XQ`W[\^^XZZNZZVS][XY[UWT\ZKUSXa]SZ]XXP[QVf_ZZLaT^[QhTX\XZYXY]VSYTXR^]ZWYYZ\VW`YZa]Z_]\\[SRQT^U]b^\VWU[\WX]Y\^RNaZ\]`TbXUXXZU[^dbXc[WWZUQdcR]^TP^X\\c^]SV^heWZaUR^[TUVYbWbXY[ZWX]YV`ZNY_Z\WRVYY]W[`\^SZYXYX\[WVZWXcc[acVa`XV^^TV[c\^ZY[]_]Y\U][VXS]`T_XS[`[VXSY_ZWY[\T]]ab^[Q_]`Z^c`T`TVVYa_^TT]PY[fWXZ[ZY^kSZ]W^UY]T]_`hYT`RWW[XY[b]\ZSVXX^U[Z]XYcXa\f[RX\U[Ya]XXY]U]ZZWTXXScZ\WW\ZVVWW`W_X[U[c\[VWW[S[W`XdZ[\_]\i[^^_S[]XS[SVZ^UZU[PYY]`SZW\X`RTV^^WXW_U^\^VYXSUd]XY]]WaW\UXaTSOXSUQXVcVW]Z]\V_Y\Y[`P]S^WONRiMVZV[][YTU\O_YT[WYdVQi\TV]UXYXQT^\V_`^S__U\^bX\ZSRPZ[WYW_ZVXSPT]cMX[TT^[_\WVZT[TUU]]]\T_Xa]SWPc^T\cf`U]SeVY_YT`Z[Xg`VcT^\W\O^[ZZXaYX]e[WY][]TY]WXV][V]b`Va]U[`k^TVSU_VYVZ\TT]QVXZVZYUcZX[^bWWaX\SY]OUXTWXWW[ZT\T`Lbc[_^`WYb__Zid`OYSVeX`YKS[aVZXZY[`N[U_YXXMYYTY[aUY^[[X^[XNeb\QYSbU[ZYR\WZ\WX\WRZV^QYb_W\VdZWVZg`_Ybd[WMXVZW`TTZWQ`YS\TU]W^YZX]QY\ZX_eXe_[]T]V[YZNZ_[\Y\\`_YcWWV[bZYT[^W^Y^\[W]Z^YZh]\YX]V[aQYTc\Z^a\Q\UU^RfUZWVWR]WZWUb]]V]SVYOTgWWUY\Z[Y[T\XaZW^X\`YabQkZTZ`_RR[ZWXV[Z[ZS_U\U]QUXUY\b\^[Z[Y^__WX`WYW]]\UV\]YZYcXZ\UTYV_YYYXV^Y[VY\`W^^Z[WWUSSUWSVWW]^TQ\W^YdbVXXT[_YXWTTS\_V]Ud[SXPcU_V[XdO\SYV^SRT_UX^UY[`dbXXZUTZW]cXW``XUf\Y\]^WVZY^`VS]_VX\]ZXPWYU\bYZ^\^WWWYd[][[^^O\QkUQ\[]V`X_]]QYS_X`[ZZR]hX\P_XTSSZQVU^UUUYW_e\URZSZlcXY]VX]VS[S[aIZYZ\]VX`WW^TW\^aLOVZ`_]TYVZSXZlWWUdWO\PZ\O\TXS]fWTb\b[SXZ]bUR_^V[VYe\YZU]acX]ZSWUZIWQ\Yd^`\[gU[]cUbV[\VXZ^N\Y\[_YVWe\YQ]U`aVW]bd\a[W^[]a^XPV_MW[]NZYMMY^][XVYVV\T_OX\bZXeOR\UUYfTZaYRU\g[dN`iWhXT^bc[^RVb]XXQd_ih[MVU`YYUVXV]^R^^PYOi`\\XV`X[dSRX^UR`[VXVT`NTZTYZZRW`R[NTQ[ZWacUZ^][b]TR_XWYKJU[Z_WbZWcYVbVXWeURYZdX_XRQ_TY_\h[TU_YXYW[eZ]YZPPX`WRaJ]bTYVX`[WQgVW[UXN^YYYXW`ZR`W][\Z[Xb[[YW^QeYW\Xj]\ZTaUVVa[ZQVS\\UaiUZZWYbXX]NX[dKY`UZYWYV[RZV\_XXUVUT]V]YgSZ]X`jX_U_TWWW\[Rb\U\SXdaa[^SY]W]UY\\]XXZV][][]U[Y_\Z\V^TT[YWZXQ_aUYWj^`SSWWYY\T^\[XU`Yd^`[YVYXV_\TV[aZhX\RbRQ`\]XZZh\UVTT\J[YUSUXXTU]]Z[[V^^^^iTS[Ub_Z^ZX__cTbZ[W^XVWT[[RZTdfU[YUab`abS\^^WZY[VZV_]X^\\TScW]]Y]]SU]WZ\TYRQ^Y]XTRWT\XPXWgaX[XYY`S^c_^UY[\`WWX\PZV__W[SQ]]Wb[`ZaU\[LXX[YZ[V``W\]W`[\W\^Ua]\\`X[]bTSYcW^]][XURXXZU^kUcVUR_ZZVXQQUXZR`UXR`]\N`^^h\YVYUVQZQ^W`ebVW_]T\dZWYWTKQZUP\]WUUQ]\XeV]Sd[`XTQQRi[f]V\biYXfMg\Y`UbcPP^VY\Y\aWUWcV\Y\SeZZ__RQZV`b_`\WO\O]RYS`YZhXaMZT\P][\WS[U_bhW^aYlUWT^SUaaL[PUUaVWWd\[YR`eOR`^^\eaa`U[c^[^V[_]WLYVd^\\T\WRU^\]WZ]]\RZRb^OPXZc`Z[HRV[U^\_SV``Wd[Y\^WYZ]b[WV\U\W\XX_ZOY]aZYSUhZdjULYQ\VX]UaYXW^YYQW\`\^_Q]VW`Q[TY[cXUUW]WRZf[YSP[gRN[aZWaZVT`^XX_]gUW[[hVe]SUZ]bOTa\S]Z`gcUbb[UVWQSV\W^QPYWb]\WVZZab`W[_VX`V\^VZfaZ_`T^VR\RS^YY_^gYZYKeaT]XQVVYUY[QT[\W]WZVTa`WXUUWOYW\f^YdYOUXT`Y\SZ]^\fWYYbUdTY\FS__X]YWVZZQZXY^S_\RYf\SNbaS^_VXXZ`VVg^VbQeXV_RP]S[UigV^_^SZ\\WYZ]fZVRZSabW\U_V\aTTWZXUWW[bbUP]_VWVU[SYWQ_O^[RXZkW_UW]\bZUZX_]S_[`fS]Q_\`]V[MZh\TXmT_^SdbZ[[\SfY[RW[\ZY^T^Q]^SVUT\WaQ^[VUWZT\_VY[S\S\YeVfYb^YWaYX_[Tb[[ifa^XVW\dX]Z]aV]TN[VOZ\XT\WTWUZ]ZVYXdS^Z]]RTWRWZOcY]WTT\XZPRSYYR[bSYReR[Rae^[]J[JZ\US\U[Z^NX_lNSQ]eacYT^Y[]VMZTcNZT[M]UU^QWX_SU]U`[fZXYQ\ZRYQWZVTNYWYVdRYaRVVRVZYWR`TJWMZMTMZ\_WU[NX[W[[fVc[`XbSZRS]UN^VZZ^`_ZlY[[d[OXJSPXZZ\Z\NXYZWaT[WWTVYcTN`Y`Oca\O_^P`R`bWZZY]YQ[YaRY[[V`Zkfa^YWX\M][ZXbYSS[[ZXZWSY`XYT[^]\X]XZSWTO^eZmf[]R[UWZd_ThTZV_]WPVZ\WSYZ]]]NaY^[NX[RZeSQXjNWZW^^`R`ZWe`bN^R[X]ZYM^[T\QbZ^VQXUaXhaW_SYRVY^TS]WQVUV]]\`U`O[eYYTUV]VaZd\SY__^U\P^PUWU`\\_`aW[VZXRWa]UXU\aSYXX^`g][UX[X[`ZO[[QSaU_b^[]XUWVa`RcZVTZX\PY^YSRYWXX\]Z`ZXTY[Z`SZ[_SR`UYTbfcSNaY[\\^V\[_WTc]_O][NX\[``V\]USSf_Z^d[YYd`TN_fRSL[^i`UY]^bYZX^[_U]g[Q[PMdZ[RZZWV[UU^d^US`TWYV\Y^^VSYQV`R[VZVZVV]VX[cW[Y`[WX^fY[UUaXTU\TXX]W^][O_WS][Y^hR\V`SZ^[VVWZb`Q[Q_XQ]YcV[TXWWXSQVWWR_XYXYVHTVeYacR\[h^OXVXT[eZTO\bMXYX_PUWT\[YO`W^ZZaUadZW_[[`Sg]PWSX_ZUU[[VWXVTWRSLQW_YX^YaRc^Y^_SU_YW]X\PWXVW]b[SZRY]W_W_][XV[XZYZ\XZSXL\XaWXUX]]fR]WWcWZd^cXW]^^WVUZ_W^S^TcX[VZY\WW`Z]OMP[Y^W\YWURYR[\bS^\WZ]QXd^QTUW^bZZ\bWRZSWWWZYS]`YYYX^QRWZT]cWUf[]]fSc[[TXcXQSXY[V]YV]^U]SV_]ZbS\S\XXRZX\Y_YWbU_\USU`e^ZY^T`cdaMXTOS]\dYaXTaYZO_SRdZXT]WV]Tc\Z[eXVSRX^^RbV[XV[YRWWbWcSVX\S[X^W_XfVR_YYMW]cY_^]`Zc[QV]bTTUTVcaYXT\XX^ZTZ_hZ[eYO`aUPcZUUaVaTa\Y\d[X\[^aUSR`_TZbX]\gUQZT\XVY_R[YZY\cieRcXXV]][RaTWWZUSWWXXZ]]\]YXYXWN\^MUV\SUdTjQVY^_W`SXU^YYY^[YVYTV\giN_][[[RRVUP`^[YbSXZU\YaQ_a^Y[UVWW__SR]Y`[^c`U[]VZZUaUVIW\^S\XeVZX[XVYNWU[`LZZSUW[Ufd`lXaY[XlX^WYR_RU`\a\dW\]WXc]ZeS^SWd[]QR[OVbSa]XWXX[Z[XcXU^]Y]dWYY^YTmaV]YXZH\\_[Y\U`__[_[^^WZZ[QZ[_Qlmb^aMQWY]Za[QT]UZa]SXP[WYc\S\[^[_VTY[XaUYVWV\VU]ORY\T[U]\OY]^_S_^aWcXXWdS]\ZQTVUZZc]_]\\T]T]aPXa\XVlYW[TYY[]RZ[LV[X_]d\YVXRUa^X\VaTOZVV[[\b_S[Yf\RcYYRY]OYUWdW_^Y[Y[UiXROVOVYgTZ_VUYVU[aUSkXV\Q^Z[fY\ZYXVZXQ`RPfVe`NV\Yc\ZS``PVTYd\RU\p\eU\TUN]TRPSUTjWZZXXPQhWXYP^Y[^WTUV_LRWZWXW[Q\RTbcSZ`U]Obd[Y_[]MZPX]ZQUcQZR^VS_QSXa\hT[XW[XNL][bZaYVU_VRQ`VNWPYXVYZSUP]S_QWWWbUXRWf_a_V\b_XPN_Qj`RXR`Za[YMQRXPUUYYQ_S^ZYhURUWMYX`cVSX\Z`ZXV[ZYVTR][ZgX\Y\cXhhVYddXVX\X__O`U]UZ[WRY]Y^We_XY^Rd^[WWY\XV\TN][TSWNXSVa[aR]]X`TYUX[YQXacVaU\YX^[X^^_`]VeXUV`]\SVXSN`^TPQS[ZXXWb[ZZ]WXU\]XWVVUUUSYVaUTYXUXUdYXWY[`ZQ^[V]S\_[ZR[[]aZS_YWWWXXW]]^]UO\U^PXj]U]XOR^_eWTYWQ_[[RYZ[YWXaUYMWRYU^RXXW__^XXU]RW[RUgTV[[OZZRZVcfO\\VUX_Z^WXW]RYXVWSV\]V^Z^]Y\\RS^\]YWV^fW^^[fRQ^YURW`Y`cU`_RS_^UV_bX[_^YX_V^VNcXVZaY]\VVaQ^aSha\QUOXdYWWTS[TYSQ`WdYe\Z^W[][^[Y]R_ZV]S\[[^_PZXV_]aVU_]XQ\XZXX\YaW[[ZXVZR\V[_XQ[Z[QO\QcX_ZXPW\V\[bUXWX^T]^[^T[f^RTYYZVXbhe\ZWUeXRVWV\_]XMUT^V[WTVUTXUNZQZU^TXKUaYX[\X[YY`TPXeZaVaZU_`b_U\_`UVUSZfUVUZTdT`W`SS\ZQb[WZ\VWUZ[XUZ[Z\VWY[VUWZYV\X_RUZ]VVYQ\UU_^T^XYaX_RaXVS^N\STU]UZXVhRR_UY`TY`WS[V]Q^^XUXXWZUPX_]UVWVZ^[Z^UdT^TZe]WWPU[\XXXZ[SV\^]UWXVRUVL\QTSYdI[[]V][bW\XY\X[ZX[XVbWTbQ_US_f_YX[X][`]V]eYZZXV[^V_PZ]]]V[U\Z]WXU[^U\VVVb\X]SfU\[R\UP]VU[\T`MY[NVZ[QT\Y_XQ]UXUbY`hRNf``WPb`Z^XY]][TTaSWXS\QVYYj^USaWUXYX^\UYW^ZTVXPZacMcWYSW]YSU\VQ`W^Y[UZ^\VXZ\TYU[YYUa]P]\]V`Y[^WR^TTT[]aY^MW[_[YcTPYVYU[\bWWT_X]WVVaR]OX]Z]a`TMZ\`SU[Y\WY]dZ[[[_`Y\_]WcaRZ]OPY[]Y[QZRX`W\^][T[ZW^Z\[O[YSTTWS^d_VYW\TS]MXc[X_XSWSYX^ePdYZR`XW^STX[W^]`^[U`\VSX[WVOY_WaR^YhWXL]]WZUYRU\]SOVXZS^Y\a_XUV^YTTYeV_YUa^YQ\MZUTZWVYXcSZQW^^YVV]U^aYW]YYWQWXT\NaYUZRUQXYZW`cZYY`TZ^c\^^`]V\Z\\gUXYYSZZWZVV\VV]aU[YZW_]ha\ZdVQ[XZ[Y]c[\XYbRVZQU`_V_a[g\^TO]X^ZPWbTZ[UfYS`YY]V[T[NYQaWVS_]W]WW_SafTTT^\XVYQWd]]X\cWUUT]W]_O[_^N^`_Z]Z^Z`]YZ_Q[b\WXZW`hTZZTYWXZZ[SWTY^YSZdWWWXaZ_dYV_PaWUZYf^RV^W`\]ZQdVcU`U[[W[[TV]\WXVYXYNgaaXK]]^[]^a^R\`W\RXbV[_ZP\ZTZT[UaQh^[V]YV\T[[`Y\X^T[RX^VTVUQQVU^O\_V_\U[SWe[\bebUZX`U]XRY_UU[ZcYZXfcWQ]TXY\^[X^bZZYTf]ZXYWXW]^^V_V^bTX_R[^^[\]c^U_aXUNZTPWWRU`^\_ZZa\]gMZ_eUPcY][XP[Y]^ZYPb\]]R]WZWY[\]^\X\[XVTTac\TXd[aY^[VW\UZ][SY^XXW[W`[]ZYYl^SUUR_aYXUb`I[\\T]_YYV\a[Z]^]VY_V`dsSY[dZ]^WY[_Y]Y]_^[TRZX_Z^[SWTGST[[\Y[]ZYQSYV]]\`NXWW_\U[Z\a[UZTYPYdXWaSZ[^_SVX[U]aXW\eYcU[[_]YZY[_aM]UV]\ZZUU^]\Y_U_\_\`^_\]XUR`dX[XYdTY^S[T[\T^`PXZZ]X`[c`UX]WY^\^Q]X]W]Z]PU]We[bV\[a][a`[[[Yc\bXX\^XVX^__[Zf[_^[ZVYX^WWU]VdY[X_YZOoXXWYbOY[SDaW^[SXV[YZYXQRccPX]W[Va]Y^M\W\\_Y[W]SZT]Z^[\ZT[Z]V_d`__Y[]Zd^]_ZYXV\UU_ZXdUWVY^X[ZVX`][W_Q_\][][[ZSZWc[X^TY\]V`b\^^Z[]YVXWaWZ[f\W]W\YOU[VTW^[VPQ^YfXTYRY[VVX[a^\WZZdW_Z_T^aTST[]T[\_cU^naVgVXcW\S\]`U[^X][W[aZYZ^XW]XXVWYV^ZTPS`Ze]k[_TV]\YSWY^^V\S`SWSV]\]W[ZYXZdX\YZUZW[ZRb\^P[[_jW[Y[XYZO_]ZTY\bcX]UZXX\Y[RXVc_ZWb^XV^\`c`b_ZL]U_X[RZeZWVN]UU\SZW\YUZ`]Z[aVeeZZWVaM]VRY`UXV\W^WWRXYUPVXXUPSV^\]V[UV\[[YX[[\][YY^T\[X]YaTY]\TZWUW^Z\\PWWYX]SX^SZYZfVXX]]YW][X^[[U[Y]\^_Z\^WVYSWZ\TX\\[UXYT`ZYYe\^]QQXRQSR`T]U^cS`Y[QYb_XV^\U`Y[ZYXW^S[ZcaUSUUV\VZYTRSX\[R]OVWTSVQ\XVSNUV[\dYZZXbXY\^XdUURU[]`[\WPZ`XYXOWW_[[\TVSa_TSYTZYX^XVdW]U]`OW^\P[UT]WUQPT[_V_R^W]L[ZZ\Y^QZ`VYX`VUXTX`]V[]VZY^Vc[Q`ZUU[_YU_[WUYY_T[`XYZ\WX]STWWfUUW\VSUTY[e]^[UWVebVTXXWZXNQ`\^W^[WW\U[TZXTYQXWUQZXUa_\]]^S[U\YUS_ZV]`T^`^VT^Z]TWe\aQTXYUZTQXWQV\WZ^OXWY^ZWW\X\SfY^VWMOW\[UWWLRfcYdW_][bZ\PXYcbVbVX^YY_VV]X\YY`VZ_\TWP[Yc[cWRXVX^[[YZYYRTShYY`_YZ_W\Y^\dPXWT`\UZWUXcWUNSYUbVW[XabOX[ZZ\^R^Z_Vf`NXW\Za_]b\TWWY[Y]UWcYUaaX]XScUXV^_[]ZX^VY[\fSZW]ZUYN^][\ZY\\a^^S[SQ[b\[cW[XN[ZQMS[OX[b^ST[X\_YRT[X[ZeR\\TgTaXR^TX\XbY\\Y]L[QUT^X[ZVXUWT]\V^_aYa\[aV_WeTbTNUOX_aSZf]]Z\SY\]T[ZZZ\Xa^cQfU[ccUW[ZZUZ\UaaUYWXO]X^ZZdY]SXTZZc^^Y\ZSZTU``[WS`OSZKZ`VSU^VZdW[Y^^YVUSTe_S_[]\^Ra^Z^TUUS]WRa[IYTR^cYWS`VYWXW][T^YRaX[bXV^^`XbR[XTZUdXcSSZW\\V\X]\T^_Z_XX`a]\V\V\\T]YVPX\S]^Z^TY^XXbZ\SYSXVde[]]_UIY`R^ZY_RY^a_XW[WULY[X_d\bXgV`SXTZgQPb]T\]SX\[T[\Z^VYXQUW\bO[gO][ad[YZ[QXVU\]ZY`XT\VZU\__TVV__Xc^\R^X\[^][ZVMSY[`\X\cg[[`YbTXdVZYZfVbZ[`b[\fPZ_TM`S\Z^\U^V[df\RXOZQbRZOPY[aV`Xdbb\XZ]ZZZeZ]W]^PR[aZbXYQZZYU_YWcZ[S[SSZYWaY^[^W_T`UX^`bXTY`R^XR\aNVU_STRNX`Y[MT]W[_RRPfTWYX`TUXSSTUbYv^OYO`XP^X_VVWVWVa]aZP`YXbY^iZVUQW^R_[WZ[^f^\]X^ZSZ^ZScX`Xae[YU``]SXX^j`Y[_a^X`ZTX\^VU\]S\_VXR_YUfRU][VR\\WdY``USZYVZ]hTWVNVQW\`_`_Y^[QYbO\[YY[YZ]\TX]UcPYa\]S[ZWT\XYYTZ\ZV_a]^]T]^\aZcWb[W_Z`Wbj]eVUU]\^`Z]Y[`Ye_YZXYjcY\V_Z[WXX]]SZ]QUb^ZQZX`aTZ`U\X\Z]a]VZ_ZaXlUZZW]^]_YUW\X]`W^\^Ybb\[ZX_Qc[\\X[X[[gWY\]eQ^SaV^a[Q^]\_^WLZW^T_Y[SV_[]]ZUW]TW\O^]`YZRma[VX`XOXU\_b\ZReYcZW[PY`[b^ZbhY[`^X]TZSZYV`PV_`_TUV[bUYX^]XffaZ_bU]^Z[Q[ZTYY\ZZX_cXL\L\^T]_TcRW[_YXVSZZZSa^ZXZO\[bWVaUYWW\YTZR`V\[\[[ZYX[K[X]PP]V\e\\Y^\^WV[SWJVVRS^i]M]_XQSP\YYRSXT]^UhXYXZX]_^[Y^W\ggU\MW^`YUUXZTVXT]UZYXU]NYTR\VdW\VWYVWYS\XUX_TW^WW^YZVW[`VWWdWdYZbW[]VOXZ[UUchURUXX[ZXUdUXYSW]Oa\ZSb_W_bJ]W_Yc\][QZZYaWXRYW[]YQSVYURZaQY\T\`UXWXVR_ZXUY\WT]TSSVTRYUTW[STT\bXVYX_\^YU^S`[RUVT[QYV][`a^R[P^fVYVT_UZ^\WWZV^Q^_\`PV\]cUbUZSdSTZWWYSX]TYYSXW\VTTZYVKdRVX[_Z\[ST[fP_`XW[YTQ_ZM`^Y%O`VPXVQbWUaZ~[KXYQVZT_N[^W\ZK[WTa\Q3TW^[U[YXNRZWYR]eZaX`V^UZTURX[nNR\]V\\Q]Z`TVTOWNQ[QUZVYXSYb\VS]T\^[^[ZZ`Vr[X\LWXVK[bT\O\Z]XZUTZPUN]LVNU_TUQXX\\QU\WXVZ`TFV^YSSZ\WQ`YTW\R\NZVWUV_YebXU_H[V\QSV]X\]P[^[UgT\TaZSWUW[ZWV]Vc[ULXYON]XYX_WZZ[aV`NWV]WV[W[]SW`NW^U\UYSX`NVY`%^TWP[ZRWUoKR[W^YWbVXZcUYXRVXV[UNSTe]TTXNVV\UVRUYSZTVUXU[[P]V^WOVZ\SU^TVT\Y[c^T^Xb\WZWV]]SWZU]OaVWXYVT[Zb`Ua^\\gX__SYbO[WY_ZWQhNXXYRWUW]c^`U]ha_QXW\Y\]TTVS\[XP\_VTYUTY[ZaXc`d_Z^X]UP]VR[^U]_XSL`_Z_VYL\`PVY`VccNNY]UYRb_[geOXOXXXZYZY]T]Y`ZQRVX^aWOh`YWO[ZU^XdU]^QXYQO`\JS[O_RY_WZQ_^X`hWYY]Y\`N^U^e]W^`[[U[UdYVV^XYXZ\WNb]WT]]VTO_WPTTO\W]YdYR^\\]^V[XVYYZ^WXfXYXZ^NYUZT]XVUZbQ^\^TX]N^XWVSaZU_\X]`_X_WY_aWcVXU^]`]Z[cY]YZWUR\XZWZX[W\TUZLZXQXlbdZY]WV\W[V^R^[VUYZ_YTV^YV]a`cSX]]\T^[aXcc__]WYZ^XcY]_R``\Xe[[aUaXaWWdVWXVUV^XXYX]_S_`UbQ^dVT[^Z\ZN\\_\WW_[UUZV_]XYWVbY^\\VV]_R^[UMWXYaUZX_a_K^[^[XV\XTbaNZ]YS`cXY^SY[Z\Z]]\^][[V\YXY[^YTZRSSXTPVYbZ[Z\Z`WYQ]_\[]^W]X[PYXWZ[Z_Ua\UX]QRUWZX_[[WYWV]U]]\ZTXX[W\OXYb\OSXXbPYX_\P[aZ]`ST[ZTV\c_a`^cVYW\Vb\fTYXcVXW]WOXSY[dTV[YX^RYaZ_\TSWT\\\a`[OWMZUYUZaUc[YZ^Xfa_\ZPUUYe_ZZcTWWLVS^XXUY^[SUY[[RUYYX[\^NPUZZTRVUVZQZZi_ZRZOVVXN`VYYV^]UZf``Y[YU[TWQPT[^_XWQYYbWV_Yc\TeY\Y_Z`WXbUTV^dO^\S\[]VW_[[\VZV^ZWSZ^QfTZYZXbY]YYP]YY^ZQ\YZ^SbQdS[QZ^S\aTXY^X]SYXV[\Z]X_YY\\XYU[`d_WY[QcXY\[TWWU\TXVXZ[cdTQeaVMYZPWV_YRWYZU[bTT^[gY[\]VW`VTYYTXU[e^\YfeV^]UUN^Ti`]a\YTSYRbZ]_]^WUTXT^Y_X^_\S`e[VVXTYbT\`MWRbZZRX`[\U[]UQ[NXM^[c^XXSX`Z]ZUY[UTSVR[YV\V`__a\OZW_bSXVZSYZ^XU\\^NXTT]ZWRXeUVZYX\ZW`]_Y]a]UR]RgX__Sb[\T\S_X`b^W[Vb]]TY[YU][Q\SW\eQJU\XSXbYZaT_i]T`]O\[ZOYW]QVU[TW_UZb`W\XSWVSbXUSYU`V^\[Z]QTkV\\_R`ORQUbYWZdf\]UUe\dTQ^SQW`Y\b^^T^[Y]VQ`a[eWZh\_SS][\[S]ZTX]OVU\U^[`ZU[`ZXY_TZPT\Y[XWb\Z\Wa^WY[Y]V_VXR_\_``WOa]\Z]WWXXS_\bWOZ[_W\Y[`aZZ\][]N_Y\T]YYR`W_elX^WY_Z_WQYYc_d_Ya[]WSW[Xa[ZWW_SS[[TYUY_ZTYYbU]TZW^UZR^XXR\RZXY_Y_XTWY`\[]X_]^V\]Z`\Y]]VR[SXL\cbbQU`WW]YS\QXYU[^ZNT\aUXVVc[VUUTWYZ^_eW_WUYVZYXUcU`XO^Ya\`[^WVPVYZXQWfc`[RXZ\fg\^TXW`^ZY[[^]XV\WWXP_Y[\YZaZXaW]\Q`X[Y^QS^]U]ZWbV_^ZSX_a]dQ][[[[ZZa_T^dZT_]]\dWVWa]cVX^Ua]ZPUU\_R\Q^T^XSRZUfWX^YZU_bY`[V]YaUUZcZZb]`SXZZ^\]S[V\[ZVZUX^SZR[_Z`\_dX[Te^WXdS[cYT^eYSYQb`X]][\YY_`\U\[_b`ZT[NQ]Wia^c_\_TQg^W]WeY\^[T_ZU[^U`ZTaT_ZOY`Z`XW_TN_cSS\]Z[ZXe[O]YSZcVXXVZ\`VX[\[XQ^\V[Xb\[[TUa\ZX]]]WYfZbTQVX^Vd^[[]U\Z]S_WUZ_\Wf[U^UXb\SRQ^]^VWY_^Wb[bRVW^YX_bY`[`Y[aYRcPZZU]^ci\WQYV[TYTYYbT[aS^_S[\aRXXd^WYUQR\Y^dSSV\[ZZWV\_UhZ`[T_U^Z^]QYZ_T[WRRY]\^\YWYVa\Q^Ta_\QZWSSQYUV]aVYeWS\Z\QYOVL`[]ZY]]aPVb]UU]X[W_[\^Y^YXPVT\YXXTZ^`[__QSZ\a[Xc^WXRcWeVV^^Ud\Z]Z^[aQP\P^TT`^XW^R^bTZbP^YMXSW]^NU\V\ZX`^]_VaeZ\ZYVZX^`X_[TY_b`\][_\WYaRfWdZ`bbb]ZV`N_SYYXRUWSYS_Q[XZZ``YTMX[Y]LRg`VR\`UX^S^USX]fWZ`\\WcXV[Z^VV]XTYW\Z\XWR^V`XTQUZ^ReS_beRTQ_VPWZ\^XbUP^RW[cRPVU[YZc]Z][X^[UZP^aXO[aW[^_Vcc^`W_P\X`[W_^ZV^\^[YSWQ[W\UXXZ`\UX_TWaUT[_`QZdWWTU[aZ\]Ub^W\UXSXaX_\g]Tga]`WXWb`TZ`aVUUZ`\RWWVUaTU^VW`UXk[N[_^TU_XUedX^QWPRYXXXZN]W]Y[[YWVa\WQ[_^Y_YU___WR\aXVbQVcQOSWWZWTdYUacU`SXS]ZbTXXZ]cbVV^b`[RWVYZXVPf]\ZeYbTWLZSUYd\TeXR]URZUW\V_VcZ`SXUSW\\\Z\UUXW]fgVfdTS\\SO_\_bSV\ZVhWUdXZWWY]\XV^XbWd]b\`T[ZVY^^[bZZVYaYbYXYe[TWW][TXV[]R[UXQXf[acaX[a[_UYV\[VQ^\X\Ra`dZWR__]bRZWkU]RZ]b_\`Y\YSPcZ[QX[SUNZZXRY\[\VVU\YTUWVZZ[\YVZ\QUTZ^YcZ[XY^PZaT[X[YVSO][\VWTSMYRS][[^SU]\XajUWYZW`[\Z^YZRTWTW\VXLX\^YcWT]TVX]_a^VWMRVVWW\XdcTTUSHU`cPW[[XZXVPYWX[X_YX\UOYa\Z]XYWOWWTcS\a^XYWS[X[PXY]SP`XQkUbN^ZU]]aWNVZSW\\ZZXSV^ZYSUQOPcQY[YbVUNVXWXeZZ[]^XX[V_NMW^_UTaUUW`UW[ZTYUWW_VPXQUU^VeX\_eaa^]ZWS]YScicVW`UVSR[`XWL[W^[Y]cY_WYTc_S^OZZUTW[RU\UUV\T][PZWXYTWXTa[ZZQ\]WWa_]YXVP\WSPT^XXVSWVWVR]e`RPaSR[\RSWX[XSaXQZc]_^\\RVKOg^e`\[WhWQcT][WS^SQZ`X[PVVT`_XaTSUWSfXk]PVYZ\Y_Y[L`UUbZY^V[PbWU[ROPTST`SY]V]_cZUQY^Xc\Z[W]SYXOYURR_XYWd_]Z[TO[Z\[Va`Yd^TjiZWNZ_mYZW[UWZ\WXj^Q_M\S[eYTPYTR`WVZ`WYYZ\Y]]RZ]PSb]MXOc[Y_F`_[`ZXXVfj^eb]^WW_\ZW[ZP\WZX[PVP\SYRKU[iL]YZidi`[VSZZVYk`aK`T[\bL\W[VO]Rd`YZ^fU[M\W\T[_\UWTa[g^V]S[^SlRWZZNTlYZWRaZQZSbYfZbY`WgcT]S\^MP^R`_OfV[][OUS\Q`UdfbQWUcUgcRV]Y\c_^RVU[`X^^X`WObNXXXTgWTbV[gVT]W\[\`[YcY\YVdWUd^V\SZZYR\^gTTX[fUX^XO^bXT]XcR]Q\`ZM\\WU]WZXUdYVWUaXhaY]c\`Z][^`TXZ[VTcUX__YRUU[XTUV\[Z\U]VX]WZ]][WX^SWWW\[]X`W`fdZ[[VY][YVOX\VSY[STUUacXMS]VV\PYRdYT^cXRdWVc]Y[_Y[V[_`_^XZTRa]cZRbVTVU`]cPUXQYRX\_]YWVU\OOR^\[YXWbgX\T\c`U^TTU_`SW_U^bT]fW_]WaXVP^^W`Z^SS\]\WV]ROTTXU]XWWTb^a^]\R[XWIcPXXZRXT^J\Q^]`]UdVS_V[T\^\]YcW\UQWYeUWa_^cY\aT^^^[T^OT\TV\VW^YW[U_WUYYWY[RSV`^W[[[XY[[baMZ`[XYU\_SRkXaW\`VT^\_WXVT[`a^_[a^PW^[`]V\ZUVV_YR^WZa[bY^UUTVSXSc_XT[iRcT]Q[Q^VVbXX]Y_V^YVV[[[Z`X\V\QSTWVU^VQ\]YW]cPda^N[\RW_[^\_`TZTaV]X^WaZfOWY[]ZUUZTSZNWaXhYU^dWeS_UV^a[Y\\fZV]ZQYPX]UPS\XUR]RTY`\VgZS\RVcTX[R[XSWWY]YXZVWWaZ[^[_XTY`YVV]\XU\XdTfd^aRcYTXX]QYQcW^U[XMYZ[\SUTXSTaYV[]Z^\_]YXbTeXYZY_[fZaTT]^^[VWWY\`UX\X^^VWYR[bXZZVYL[VROUZY^Uc\\XTYaYXgN[\dXSZ^aeL`^MTWUVb^ZWX\Pc`Y^bcUX[^]W\WUWdVWVVNb__S\Y`USYaPTUYXZ\\d]WSY\WUY\TW]aaa[PWTTYWZ[VUWV^_WQUWYWWS^YWK_^YXZZ_X\dSTZYfZYRZdUQZVQOVSVZ]UU\[X]Xa^Z_[ZWZ]WT^WZXQKYXZWZV\]^OYTQZSZRS[OWUTZU]^dZ]c]OUVY[VPTUZ\P^\Xb]^_b^UTX\\VWYLXXbL]Y]VaSXS]`\\SR]bW\XWPdSSYa`Wn_[]__ZTZYZQW[UZ^TXa[WWfS_Z`YY^YaZV[\SWQ[VUdd\iS`^KSdZcY[YX\Y[X\Y\]UP\XSfVYU^URaNW[]\XMX_VU`Yl_VZSZZRNO\XY[hYZX[WL\VU[TTVYZSXSYZeTQNRT`Z^^Z]]^\ZY]SW`^WXXX]aYV[cY\[UQUU\V\SM[Y`VVVa[[_N\\TSeVRcZ_a^ZYZa[XbOZQZXa]aVUd^[[V^bZTRW^XTa\XafPP_ZYWT^VX_NUXV\YY]Z\c[YVcVYU[YUT^XZSRXYcZVRYXXUU`XYaQS^[_[eWWb[`VVZXW[WQQXXRNXX`V_]O^Z\SU`V`VRcU]WRVZ_YY\`]U\mUVU][eZUQ[RZegXZb\YVY`VTYY\XZYY``XWU`Q^WXRVVWU]RZO_\XUZX^_\l\W`__V[Z\\d_SYNXZ\caVW^eYUXW[\V\PXYb_ZROZe`c\Xgaa[QXXPUYX[bX]_WS[YUS[NYQZYaXZWd^bXheZY[aYY`^WXX^WWZWQ^^Xc^TRYYWa_\`VVVZYY\e_ZWXV[Z\b^WR^^WYUYYXQaPR]YVVVe\_VX]VWcW^]^S`ZO[Y^]\YZYXUf`\WZ^ZbZQZZ_ZcYYX]Z[SVXXP`Y_[T]\__d]^]NPcU_Z[YZ[VcZS`YTgUZ\W_W_\^`X_YWQa[`R\XRXUZ[VORYUSY`\YXZ[^[fm[UUV_eYXXScaRQ^TV`cYYWVSURY`caY^[T^XaRTPZW\YUTY\ZXWPSVa^`_`YSUZY__`dXURcZX^W^Y\UVYY[XSZd\X]U_``_TU]e`XZWUUVXUQYNVZYUScYeeOTXYVTZW[^YXS[WTXYWPZYTJ_YV_]WUV[ZR\^]QW\ZXX]V[bXVUXXb^NU`cV]OVVY]TTXXTh\ZPTRZYWcWXZXKXSWd[_cXYd[SWYXVVa^`_a_X_QWUXZUa[R_^WUcVT^WW`ZOWdV^o\P[PZ[Y^`[VdS^TR\c^^ZV\VV__WeY^S[\fY[VS^__TX`UeQV\`SeZYWYRddb\XM\`^]]XS\SX^[W_WTYZ]XY^^WZTUdWZX\W\\WVb^_i]`T`WbNSSR_Zg^YW_YVWRVaYUYV^WV[YZfSUT`NXQX^[XYfgUa`ZbU[YT]WY]_dVXM_^gXUZlX]U][^[ZQgdP_]bRWV[UP_VU^X[MY]gVS[e\XO]U]^aSYYh]^JaL[fYZYZU^VWSMda[_^UNQ[\\ZaO[]ZQW`Z_[WXfQae_d\c_[W`bW\UPUSYcWYZVb\R]]WT^\_[V^ZU`YVW[^V^XUXeU[e\abWaaSgYZP]W\]TZ]YYXQaT^ZYQWe[aN^_XbXW`^`_U`\WhYbQ_a`YT`UcVWN]SYWT[QV[SR_X`W]W^YbOV^VWY[]UU[YP^^[\YTWXUSbR\Y^\WXY]YYUXYW\Z[TP]XT[S[^ZcXZW]YQW[X]RW]eRZY[ZcT_UVZ[^YXYWN\P\`RYWh\XUWYYS[XbQ^`Y\TYY[^YYYQ[U[XRV]\UXfVW^^eR_[_Z]^Y\]VZU^V]aV_^TYTUYX_X[UTeZSO[XXXZWX_ZT^YTYZ^T[VYYRSZ[U\XaXRaeOe]Z\bOSSWXZ]UYS]YZa`UTV^iTVaa]SUXYWUU\SYcZ[T[_UbdXVM^VN\TXXZX_UXUVTWUZ[gP`XYZS_Y\[VaNYTRbUZ^WbWVaY[`RT][W`^^ZT`[RZXWUdZW[hZ[VZW]\Z]XVPTPQ_]YVZ_PSQ]\WY\cX]WLX\Q`P^[cMWOTQZTVbWTZc^^U_\\^Z[_VYYWZWWXV_a[VU\ZZUT^d[ZZ\_XXS\UYW]UVZc]aScP]]`^aYVXSb]bXTXTRaW[W_`YWUXWWX\N^QR\R\b\ZUUZ[XY^[T[ZXVYQLXO_X__a\`XYYXZ\UaX`WVW`Z_T^^[Q[YYa^^SSTQZ^WZ]PYOYb`UPP]WZVQX]Z`][PS^dYWfUiZb[PZW]WbUVS^TYQ][\S\_ZmO[X`[e^]XX\WUZcTVW`V_Y_PW`aVT\^_fPc`R`^Zd[`YYXXVY\UTc_b]ZUXRXSd\XXa\[XSYWZZU\VZb]YS`WTW_TTeVW]YScVeaUY]]XUaX[R\WY\Z\SWZe\T`VaXVYW[RTNVUXU[_j_`YQ]TP\bUXSXe\kZV_Rb[`ZUUUbZY`Z]WeX]ZVXXQ`aR^WL_R[_aYYbhYUYQ_[bP\a]U_hWZ^\TVV__]V_cVa\QcUZSZ_`[cUUcVYbVXUVUS[VQX\SU]V`cZe^TQa^d][X]WXJUdXX`[X_XNUQSSa\J]^ZQV][SXZfZRMQ\\XQZZ\XU\S`_YT^[UWVN[^SYSOcUXWX`[TY]dTPWa^VO[^\UdTWVRWSWkZWXZS_a]bW\WYYZ_c^UY[TXWZTRd[UYYQYZaZjZ^R[aZYMSTSX[_TSNVVTZTPWZ^]XYXYeW\\`Yba][[]\WdW]YX\V_UW^]UZRZS^Y^dRR[\`][ON^]YX]YU\]YXd\bRY`ZZf[d\kZP`MQX_SVQjXW_W[NZSbUOX^`[c^U]ZIMTW]VXI`\_R`Z^[WTVZY^`e^Ua^X[`R[_Y^_T^ST]UVV\bSZZVUkVR`XTdS_P`TTWe[Ye\\[`VPWU[]YTd^\VbTWeV\T^_`ajYV^WaSRPZTT[UX^UWkV^bdVW[WR[QcVbYRWT\d]^SQ_ZTRNZZZ[Z][aXT_f\RYVZ]VThb^ZTdVP`]_[PYU__X]X`bZYVYXUUZg^ZWXZfTUYUm^_RVgX^]W[]Z[XfRaX`RUiUdTZaaXYYWVOXSXZ[US^WW]\UUQVV\]\aY\QZ[TW^Y\XZTXRUZf^S[V\ZW^U[[VT[TX[YaUVTW\XVUWkUaYc_V\Xc`Z``f`^YSYaT_W]^QVZVUYQSSRM]d]SSSdWY_XX[ZVXZYUaWTX][a]TWYg\VNV^^ZQ]YVadWVOUTb]WPQ\Wb\ZL^[]_^LaQR^XTWZSZZV]R_\\WN[VXXZ_[`h[XVcZYYSY`RSUOV^SUaRMTZd^Q_\U_[[WaSO^dQ``SXZTd[[Ra]Z[UgYQUfW^]YVV_\YZXe\XVaSTWaTSW\Y`Uc[RV[NS[eOT[VSOY_Y^[YU_\YYTY`\YXX[Y__`k[VSY^^`TcR`YRRY^X^X[Y___`QUVWX[ZS]\[_]h[TZTP[UZV]RUYZ^daYcSY`YZ[XQ^UVX[^[aUY]T[T`aX`TQaXS]PU[WUXXTX\WVfTSc`cWXTVXN]YRUdV^ZS]]^\V\[URU[RYOW]WVeT^WQ[Xe^X\YVZ]VZU_ZS`^V^RSe_YTVZbVWa[Y]Y]_ZQV]QVS_R]`\S\[`b\TS`XWPh[X]X^gI]\_iXTaW^[c^^S[cBQ\ROYWOYKSTRVT[[Q^WSXWWUQUbTVdPWQRmUWXRXT[XQZOV[XWWU[_bQQTYKRabZnLOMR]NaZPJ]PWbO]QNQSZXc[YKPbXU`PcZPW`a_YW]UZRT[SYWV`]SSHPfVRUT[TLVPRGTXPX\haX[^XX_U`_aT_X80NRY8UVM[QTO[SUQcZTSMU[VX`\VWVHhOOZZTQ[dT\`TTPU_JVZQ\IRR^YeTW[ZfPPQUXVZ_\YSXROcSQ^[Z]S^]VOdZ\TVWZP[YX]WXWZ]HYS\IUZSZ_p\V^PYTZ_LPW^Y_\UYVXXS^UP\SN`UJ\TYUS\ZV_TWRO\_WfXWX\XRWT`SU\PZSV[[]\SZRgYT`XT]R[TTYZSX`VR[^aT\PWbVWWWWT\YYVYX_TWX`VRUSWZU\[IYaX[W`TT\]XYZWVZZ\aZXZYUW\TQUOW\VZVj^[]VZ[\Yc]Q`\UYVXYXXV^ZXOY]]XUOVUTWVPVPWRVTZXX\XYWVUYWVRbY`U_`YXRSaSLYRLY^`]XS^XWUXY`cSdWU\V[]SaX]WYZR^WbYUd_V\VUSQ[WWXZLYX^XZZZ[UUWWS\RY^\[UZU[ZRX[VX]`QOX][XU]YZ_MePdVTY_dXYeX_YVQ_TYX^U][VUQ\[TWXV]WVYaZ]W\XXTVZWYYZ_YaWSU`\SVY^W]UcUYZQ]VW[_ZQRTX^VT]VXV[[]_ibZYWaU[]W]eXbY]YbbX\[ZXTX[V[Y\ZTS\cX[cSYZSZb^\X]\ZXW^]XSXZZ]Y^WeQY]X^VWMUWZVPZP[YU_S_JXSV[XR`XOU^Xa\VYfZRTYVa\cZXK]Qb[RVOORY\Vd^\cdZSUXYaYPSSVYYVX_]aVZSUeVXV[YZ[\Y_Z][WT`bVXXWX_UZXWS\O]ZaUWZ[\OTbXQVX`a_bJcbWV\cQ[]`XS[bTZ`^Y]\k[cTV^UZS[Pbef]bafWW[`SXacZ]aVXY``XRXVWY\R[\`Y]T]\Z`bVYPQ^W`SRbYWZVXWY]TY`c\YZTUMXT[SQXYUXYX[^PWgU]\VX`U^UbW_X[UXUNSRUXXZXVWXZY_P^[YZX[^\mPV\aVRV[T_]\\ZYb_aQQ\Z[bWZ_^SbRaVZZWS]Y^VQUVW[hXSUYXWXUZUYV`OU]UY[Yc\X[\XT`fMY\WR[Y_TXfWYQZOY[Td__VZ\PWY^SV^]R[YWNX_aYRWPbU[ZTfY^ZVdj]Zcjeb\Z\bc\^[XNYb[X\RSUXY\SQ]XZTbY]][aWY^RVQYaUUYcYZ\[]TW\YXUc_Pca^NSY^QV[_\eN^OXZYY[Y_UY]TaYYaWOSlX^YVR[[]S\WY]ZU[^TPUXW^T[[Z[XVT`V[\QXNZZW[QZ]V_XZYYZYV_mU`W\W]S^VU\^YadXS__\Zb^V^d^WQSTSZ^\ZXYdS\X\\g^Wad[\XZX_\SWY_\YT^[YS\ZUW^\aYWYTW^\]^Yg\dP]Sg[^YZTYZ[\ZVWabW[X[WVU`VWWfkZ[WUVg_ZTWRT`[ZYfYaK][]\TWX_OSbY\QWX[c^U]bTY^YXXjX^S]eUSRV]Tb^Y[V^]_XYaV][XZWWS^Vc\_[\Wa\_WTV[WRQRSV][c]\PROUVY`YK\VXRWYbZ^a[e^UVXhZX]\NX^RYX^]bTWM_Y^ZY_R\VYYR[XTVZPM\WPUQ[[fV]fZ][UUZQVVYcYY\a_WRZb]Y^W\XO_YPZ]XUTPTX[XWV`R_[ZXdaV\^_UYWV^T`c\[`_SYWT^Y\]_UbZXWUab\]aX[a`aYZX[WTUZV\XZY^fX_TPN^WXQ]X`X\\dS[cV^[]T\[Z]X`b]^ZTRaTY^\]QVMX`[T`YYeSYZRXNZUd_eSYX[SaZ\^b[VWV\]Y]Z_]W]YS]VW[U`X^[XQ\Z\\VVY^Y]oRWdYS_RTYXXeLV_VX]Z[cZcZ`W[US\^V]VYVPW]\W`\[QLbT[RaRW_R^Tb]U[YZZ\YZWaV^`ZZS]Y`a[VW]aYX[ZTaW\VYV[YQWX]Y]RQWU[W_JZYcYTT_V]YY_\]`\\X^WXXWYWTT[RbXc_SQXWXZWcaYUXZh]SWXZS[YVX[W]ZeXX]]aVdZTa__Ub[Z[\[Y[VVVYZSZZ[W[ZcgYRZW\Y`^[\[OYXXWZSYXXY_`_eZY\Y\[VV[X[aVOa`[VU`aY^WRTTP`YX[c[WdU^fX[\\a\UZ__\W[_bWXa]ab\jeVYXYW[\\R^]RUT\\X]Y[^]SXdUUXTcXZ^SZYUc_\fYWiVZWW[eW[WVX^UWZYSaYWccTZ]Z_\XXWV[[^[Y_XYZZXR_WUY[Y\]]][YZ`QXYXX[`^]]U\V]X\U[YX[Y^Z\c^[Z]O\WV\]UY^__^\][Q^`[\``T``SVW]VYWY]W`YUZVWV_`cQf\^Y^\Z_`]XX^c^`Y[VaZ[_Zb`XW[\WZZUOYabQ`[ZVa`Z^MPaXY\Z\XZa^\YXX[[_US[_Y^Ucc]UR_Y`\cXZbYZLbT[^ae^`aaUW`X]bT][j\_`Ta^YZ]WZQZVdUZ\UZ[[WZVR\`\YWWQdXU]a\ZY^\c\]TY[YWTM[cZTXTR_VYVcX]\WWRU^V_`^Y\\fXY^VWY`YZ[W^XYaTU[UY_[Y^[^V[TZYU][ZR_YVaX[XYT^_TW]YPYV]UY\[XQXVV[\_TZQf[VRZY]SeT[gPX]ZZ]S\X^cXZX]ce]T[[`ZXbTXV[RV_O`R^^^YYZWQcUTW\OUSWZVZ]cZQVRU^UW[]XT[Z[WPdT\_URagQ^RS_[]YS^\ZS]Wf\Z_aS^Z[YXZUZ\ZRPcUX[WU^XZRO[TVWP[Y[QPT_S^Z^ZTRXPZaZc[\cXXXRgeU`SSTWccWcFVQWabZPV\bR^^e]LWZUW]Z]\^d`a`P\RY[U[_WY\XS_a`[\VORT^Zg\VSZVWTQVT\XcVgZY\XVVbWQZUWLaSYZcUWZU]WXZTaVUW]`]SZ\UXZW\TWU_aWRMVV[WXPXYXVQYZa]`\^`]\PXXS[[^XZSLWW\[[_[P^[W\UaZWZ]RYRZ]`fX\[TVWScdTXUa\]YaWXVXW[^V]cScRW\V_\UVUQTfUWXY_RL]\g\URVlWVT]ZiZaVXO_WU^a\]acY[WVW]bgXU[[f]^YWOXdZTU]XW[`X\TfXZWeO[aUZ`WZV^V]VZbV_dTZQ`aRX_]a[^XOY]\]KSaZ]bYVZZ`XX\ScX_aa`XYQWP\UU_Y\cZa`SJX\]YaVXZQXSTeTU\^Y[[_[]eX\^U_SX`X\^]_RZZTd\hca_N^[RScR[[`caYlW`SVZU_`YZPZ][T_XO[VbS]TSZPT_TWXUUWWaVbW[W`Y\`^_ZU[Y_d\X]X`UVTUUWaY]YY`]abgeb\Q]][bN\SVWXY_bgY\V^YPZVWZR[UYYhX[SZa^iaV_VYOVT^XaT]Z[aVWU^Ui\]]fYWYTZ[[cZWVUadS[V]eT]UbW`YY]MaXWZTZeVWVX_WTVgPXUUXWaVVb_^XaWWNW[XbU`fXbS\ZQ`VT[U\TWXVUa`YVPZeS`XW`_UXUdV[^\LTZZ]WT[Z_Xa^`NRZPaXWQXaT]qRYZXZX]TZ\YY\[U\XV\Z]RO_\S\aX]U\bYVZSSS]gW_XV[UUR]U[^^ZfX\X^XZYZX]_aY]TdWR[ZYQdWa\\_QY]Y^^S^UVRZS\^_X][XWdW^ZZV^YdTW\^Yd]aV[QQXOZUfSbV`X\^VWVT^YNT_[_XaY\[Z]S^VSWa[QWdQ\WeOPaTWTTQWQ`]c]XV_[bUWTd_[XUT]]XVZWaa]aYO]`gUeaKYd`^K`bZ^YfTb`WXYU\\aV_VW\X]f^^W`b_S^YVTd^X_URX`W[UaOaY__X_SWVUUZZZYQPUWSSUZ]VYWaW_UWZbSfKeRTY\XUZ^V]WYe[WeWT]WOP]ZTVcUWT\X[]SZSga[^SY^[TeT^[ZR`RU]YV_UO_\Vbc]YTZ_]WUdUYbYUT^][W]Y[OdUjX[O_UN`]T_ZW][VZWZRaScS^\WYSUV]\U[VQS[R\YgZbX\Y_YXS]]RVSbVZUP]a_TTg]n_[ZUViUTYVZST[YT[VRUeT[[U\][WSXWVX^Wk[YV[L\XYVgTeO[PS[ZbQNVXV\U^WaYYY[TZWUbaZfea\b]_`\^RVT^VX^cS\[UXP^Oa_[JQ^[VVYN[V`dI\X[VZZ\aTZ[WOYY^QYY[\Sd]VVVPd]^^PT`]WNPR]^b[[[\aVZ]WTdYV_[UZWYUVYYV[R`XWWMZWcRYV\aeW\[`Q[WY[^\]TT[gbZYY[[^W^aSZ[VVUS[\R_]bXPXRNXW]d\SZZ\XPV^ZW]VUaXYVbaa`U^_^WP[XY_j^Oc[VYVV_VUaKUVMbZ\VcSdhX_S[PZSOTP[k\d]Td]TXa\[Xg[dc\[YY_[`UOUZZTTa\XYYVb_YXQZXYbOWXW^^aOZRV_]O]`ZUbcWZdX_TUOXUM^UWc[O\_caTVY_OTV^TaWS^SZV\Y]RXW^\]V]\XQX\UYYYY`U_YYNRZW]\cYXTIV^T[[YXOYQW\`DWah]U`]QUQb]aOPZWRaWXTh[WVZ[ZW][_NZ`Z_W_W^WV`a[Rc[XOYTUbZeR^XWYV[W^R]]_^SY_lROY`X^YY[S[g[L\`V]`TUW][TU]WTQaW_[ZTWU\]Y_O`\PZ_RSVda]Y\Y]NW^TVQQfZSQbVWWSRMY`ZU]WYX]VQZ]b[_XRS[QZWX^RV\_`Y]\`YTV^TYc]\OZ[VR[Q]WZY][OVbZVVaWU[ZVcRQUSOZaW[XPb\PYP^]XfUZYUVVPXX\_dVUZZWTZ`VcZX]_^YR\\Y`bY[ZeY]XY]_UU]Y[LZ[gTWV[YfXUZXZYQ[Z[_V^_^ZgXTZ[]d^ZWYZUY`VSaSZ`]d]_XU[SVa[^ZT`ZXU``^aWX[_XXR`]NX`dhQ[]VRPS]R^_^T[ec\Z[Z]b^TeY^VVbV[\`ZXWVV]ZS_Y\]WVPV[Z[dUgaTc[Y[^cZYWYW^[[\]XdVVYU_YTWZb[^YUXU[XWT\``S[XX\X]TVXZ[^\TYZQ\VWYb[[WZcXTYP][aZTPV\WPZ[b\ZPXX[\bST_\^VeYTbUTT\c^NX^Z^R`_Y^_mXWWR\WVXO_[XQ[WNVZ[WU`[`X^i[^SWS_\SV^ST\\VY[[ZR[c_XVXN`XTbYbX^Mc\[T`[TZYaXdXYV]\YYWY^\bY[]dT[]][`XWXZ\US^TVNXRU^W^\Q`[W\YVVTWWY_]`ZZeZZbPZXZ[Q]YRUZOXReZ]bXWZUb`T]\SX]UV[PVOV]Y]`Z]YVYfUMbc]RXORZOUaZYW`XZ_[bWYWT^^W`U[VYdZUZXabYVk_U]VcUVRY[cXXYVZR`Z`[]XZ\T\UZSaXbcdXUXWZVT]hWWRVPY\W[PNWPRX\VOU]TYYY\c]\]VQZYVQaN[k[T]ZYROWX]S]cWi[ZTP`QUSc[VXU[a`YaZZXNSY[WU^QUXX[^P^bgVQW\VcVXZ]]U`ZW[\Y`U`\^\V[[\VXWVYTYTZ]T`U`VaUUUX\RMTTf`SUYnRZZZaU[_cYX`Xib[YV]aoY[WVWYZUc^[WX\Y[YYVO_[QTkYWY[WMVYZWTWYYXXR^K\Z\X_eUV]XPZ]WZV^YYSXWMZSYU_WWSW_QeU^ZY\[XfV\X[b_U[[\]dR[YY]Z[V_[Z`ZZc`_WbSWYW][[YZRO`U_d\[OUZ`XTY^b^_UY[[Ug_YSZYW^ZXXWVUW\T\_d[^SVMSR`Z[Y^aQZY^O_YWWZaOZKUZPcX`\\RP[^UZVY`U\dWbXRVRUYY^][QWZOPVSYbcSZQcY\M`RlWYU^X[PY[agRW\XjZXU`VU\SaabW[^XY[W_]ZLbcWW^OZY`Y]`[SUXZZdWWTPQPVTVafjXT\ZM]Z[[XTY^_[\^[XYX[aSb^_`WXTVZYT_]cYY_[RTU\_]V`bcV[[V\cW]X\[V[`X^W\bW[[\ZW`_R[cd\[[YWVWV\YZ[YZXX_]TZW]^Z_XX[UX[]_[Yd\W\WZ]WVVVZ^TUZWSRXU[SYZ_XkY\[XWY[N_Y[W[YP[QT\V[VWZVW\aR[_YYY]a]\X]_Ya_W[\Y^Z^^Y_XVVYZe^VZ`X[^WYa^VXW^YXZYNY`\[^]Q^[Y[^V[Y_YUVdO\VLW`Z[VXU\]VU^ZTZT[ZUV\Xh^]ZU]UYRZX[Tb^][VUV[bVYSP[YZVN\\YYTS^RZU[WbXXY\Z[WVT\XOWS]W[YV^[W]\Y\[aW\[WZgZ__[Z^dY^YZ_\XV`VX[RU^_[\]bSaRW^S]bRM[XWZ^^\V^X[[Y]RU_b]YbY`RS^WaYYYVY]][_R[_\XVUTVPV_QX`Z^Z\]YcTYSOY`]XYZ_]]W^W[`\VTZY[UZ]b\UV[]VRXZYZZZ^ZUZVX\SaVXU_\U`YadX`WXY[W_UZTR[[e]VXYeWVYPU[YU[Q\W_bXW[bM\X^VZbZ^egZVQXR][N[V[bXXW]Yd\V_S\\VZVX[U`ca^aZWV]^Y]cVPUZZ^SSf[VWX][VR^^^_VVZSVVZT\STPT^]NT\O[UaYWYc\TZZZXP^_]\^i[^^X^UZVYW[R[X`_[XMST[ZT__\[ZK`aZSZYdSXWSVZ[XTSaRY[ZZ]UWZTcRSSfX[WWR^ORUa]]VSVVbYT[Te_V]WSO`bVY`aWWVVO[\ZY[]ZXQ[dW[XYWgR_Z[T`^X\^RQVZ\^\UZ^ZZ`QY^XS_fST^UWWTUWXWWUTTTTY]^UTWaUY_RYVZ`aWRWYSZ`X[WPZ[[_\U\XY\RY^ZQOU^[XVX_S^\TZ_[UX__XUSUYZ_U[T]_V^ZV`WXTb[N]Y[UPYX_M\XVXZZYY\_ZXZ_ZXa[UZW^_ZYYYRRO^_W]W^SZTY\b]`Vc[V[WSRTWVcWYUYZ]WV^[XYU[`aN]ZSTSX_[X\UX^`SZ_dZWV[^S^\]\]\PVWVY^aU[^W]\\OXZaT^[gVX]VUSZ]_]]OXZQWU[WW[_W[TV[^PY_X[TbU]WgV]ZXXOTW]]][[S\aWWbY[U_ZXQWXW[X^[T]Wa^VW[YZX[_ZTZ]TN`c]VYXWXYV^Q]VNaU`]UWXRb]W_XZ][`X\X[QYWN_\d]W]ZSWVY]k^VXWaZ^SZWSh]ZXUURXYfUX\^[ZWa]VfY[`QWXVYaTQ[^X__YT`WR`]]_VYbYZR\[[^]dZXW\X\XWaa\^XTY\\[XXVYS_OYZ_^VVV_^]aZWQX]aT]YXSW_XcWXXX^WW_[Y]_YWV\ZV]XRV^bTdV[Y`TX_PXZ\ZU]O[_R]a[TZ[XPTYZU[ZP`TWX]U`VVZVVW[aZV[WNU[VXUVVXYaX[Y]Y^^Yac^UZU[b][Z^^TT]WQWlZ^`aWY_]dTY\^ZVV_gXcTV`^SUXPaY]V_][[]h]PZ[]WYXQZ_ZbZZZ]X\a[PX\YY\YT]_Ya^Y]VXWTY^UUT]^kPK__Z[c[VV[TUR_h`VS]Wb[Tc\Y^YWO[VaQXX_Y_RV]\\aaVdUXO]_ab_aY]^cKcY^bS\Z^fj]OYXW[X]OYqlYVWZWTWLQYUU\^TXZ_Yn]W_\[XYX\YVaY^`[[\cZRUZ]j`XSY]TbSXbS[P`UQ\^\WaX]UY\V_YT[ZS[[Z[UW[TTR\^TWZSXY_USVYX\_`VSReY`W[dZ`[c][Z\Rb[[[XYSXbYZQSUfc\[QZ[ZWTYZMXZbWa^X^mUZP_UMb\R^Z`^]Z__T`[OdbVNZ^`SZXUb^`[_[`[S[XUf\VW^WWVZ\[aeb[T`XdTXS^WV_WV[XP[[QV^PZ_PVSf\`_WZM^^VVdZj[_^b\U[MNaWYVWSSXZUb^SVVY\]RV[RZZj\]]R][ZZbTWY]\cOO`STaXbWS`Z\\SY_[dOcQ_^TcPT`LRP[e`ZQdYTgU`XYUUXWVX`SJ[_TjaUYK]WRVY[Y^VPa[dUg[ZNRYgaYWX^XZJV_^MPVaO^aTY_ZWVY]Xee_SaT`YUY\`VZ]UOW`[TXYVaR^ZRMa_VZV^XaKN^PZQS_^W\UZ^RTXoU`UNQE_O`Y[ZPZ]C[XZT^baMYQNWSY^S\f]XXISRO[VUU`UR[Z^XZmJURZZK^\WY\bWOmLW\_TUaWTdZUTTRR_ZeOjTWZXW^ZXWTZR`g\X^X\Xg]W_T`YXRU`T^V_SUWb\fT]`YhUO[Raa^MaKWVXV[NVWUT\OT\]_Z_UQYlgVQS`YZc^UW]\QehTU][WdUIYWVZQc[V]b\^NRRP``aZ_hU[KiZ]OWTW\Ua_PYaW\VgUX]WQXZbWaU^USZ^SYTOWTa^Z^[UX[W_`YWWX`U`YYW`Oc`\a_]O[TW^^[WbK]URV\[ZP`VRR^SW[X[_^YT_[UY\bURd[]^VQXXX`d^YXWVTVYVcY_XWV]]_\__V[^T_X]UQ[SSdV`O`]YZU]W]cZc_[\[\QQZdW\^^R[[\_]VS]]S]TY^cX`[]^NZY]Ta\VZU]YaXrRSWWXQV[^gVV^[c]W\_XVXW\`^\ZX[d\XVW^Xc[ZWfSXNXU_VW^XTW`V\UXW\OVWTXYYYPhaaXTSXebVRV^_^SX[ZZU[Z_a_[P[ZVXa[ZWY]\\Wc^Ub\ZeWhP\VY]UT[XTYXXX[]W][YVRUiYX[[Wf`R`TSRV__WZTV]Z][VYSUV[^\SYS__V]_XR_ZNdWSj^ga]KOZaUVU]W]]_P`\VV`^ETW^jV\W[RYYQWVVlW[dVWY[X]`QR^Z^XNXQMUUbYVRf^aWVU]NRXdZ][X\`^QUS]`_Ydc`dZdYZYhYVUQPUVQZWeeT[OSUM][`Ta^Rb]VSR[WbSX[^VYZLYbfY[bTl_S`]\]`SRe]\XbVSXYX_a[`ZZZVe\SZYWQ\e`ZSYP[V[VN`QVYcZY^^aRQT[QQUaN`YTSZOQhV]Na\Y^Zd\I^XabRW[c`hNUXZY\ZUdR__S^_\TXTNd]]TS]MQZ_HN]YRZPW_ZZ[bN]WZ_aU_ZVXY\_]aMVO[iUdYZTZMXYZ`^VYOZ`[dWO`KUZVY\Q_\UacbUhb^]WW^a[ZQVSU^]QXcU^UaY]\N`cZQ^TPbS]cVXW[fUW`\XVXXXT_Z^SRR[P_S`[R`iXSYY[PP[WS[[]bUUXYW_\X]N]aWb_[YZaTR^b\QV^ZYYW`^[]X^eUP_W]R^VVb^]V^[ZSQUYTYZ_LT`SXe[\S]dQS[VW[\cYYR]WbYXT^RTbU`UVWVZ^P^S]K\V\XXc^R^TQT\ZSa\YQU^^TWVe\O_Z]\_SV\SZfUYXYfVaU^]ZT`T`YgZ^YYQTUP[VWZbf`UX[^TXYTVXa_RY^[[RXX]`d]gZXYYYWUP]ZX\VTVcZ_TdXY_TWVUaRXeYZXUYVYaQ[_ZWXRaaS\YW\Z\YWW]X^^W`gTK\X]a^c\U_UXXX^^cMgU_XUZ`UdYP[`bh\_XY`U`U[XSZVXcRWTdTWTW_ZUUb`[[gdXWbTY]SfZUa[W`]aTZ^RZT\VPaZQVUVUZ\TZUW^XXX\T_RTZWc]V`bYXXbZ\abQU]V^Z\\YZRXY[U\caXYXWYY^Y`U_WX\UeYaaZUX[UaZ`[V[UY^_XZRRVQXV^b^TXZLU\UNU_TWXWXZaTXU[XVV]RYQX[f`TV[ZURW_ZUbb[^^Z\[Q_X[WXeYWa[XV]Pb\Y[^^ZZS`X``WWbY]U\Z\RWfa^]P]b`]YVWT]eXSZ^[W[]V[[QX_V`]VZd]PUYR^\V[SZSZ^Yd[\OUdYa]YYV_Y\^WVYWPZNWWQX]P^V[ZYU]SPZ\ZVR^SWTVXR[dXXVeSWZT^[ZVQ]VTXZOOQcT`^^V_YXXUPbjWZWSfZ\[`cb][\SZ^YWRO[XcOVcT[ZZONX]]TV^_c`[YX_VUdYaZS\[NU\Rbc]]a`ZW]R\[ZR]aYYUa[Wb[aYXTeXYe^[WU^_Y^^V[ZTTV\VX]USbUTU]fS`M[]X`ZedS\YWTR^TScSf]dVW[`WW\^ZZZUTV_V_Tb_TQbZ^ZYPR]_WZTP\[W^Tb^SQTdZXSUXbXOX[aUYZc[U_OWTb^QWWUdV^[ZPXY`S[\UU[dXdUW\WW^W^T\\Y[UZaJ`UV[[VRV\XWQ[R\WW`[ZXMYUWcYVTaUZT_YY[\^RjYZZ`ZZUR[UYbWX_S]^YOZUag^P[VQUYYZWT`cY`YQU`[aV[Ya[Y[WUVY\[a]\UYbNYZW^ZYV^]U`VZUV]YZV^PVbYXTSSaW[jWZZO]]VQ`Y_XNdZXY\c[\Za]X\__\XTU]XVYRVQRZWZ_XVbdWZcW_QV^__]X\^\WY[_]^ZR_P[\^__\UTbX\RXZW[Y\^YTdIQaUaV[\R]\cWb^YZ\]\YV]XU]_V`O`WPfTVYUafb]S_WYZX^VKT]N_TSUQUbS\OVWYYU]]RQ`WXZ_R]`[Z]VbT^Na]^[Z_XSaZ[M[VZ^[Z_VVZ]RP^ZeQNa[XXRbR\YWQ`Y[[RTZTUX`^SWYSTXZR]gTUNUUV]VUc]TVXYRVV^XX^V`_Y[YR`\_QV[Qc\WYbaW_bZYZTU]W]^\Y^ZY\SZ^X\Z_ZUY^`Uak\QTSVWX\R[X\RYX^YZS\[U_WSWS\SW^VQT\dXX[SZW[[WaaRWV\][aOSMbcYb`XX]ZOWY\WQk`SeZZ`bW][[TT[bgRcZWY^]TZLTj]YWVXWfXX`U\RW]U`\gXWZXbX[bOZWYZb[\bQ`UeY[Y_]W\XTW\Z]X\b[^T`X`XYZX]QWdS_Xc]W\YYR]MVQ[^XTS`V]YNT_U[\PZT_SVU^eU[V^UUVKYX`X_[VSX\[XTWb[d][Xd]^[]YY]XZWUbZV[[V\_WZSWVVZVQW[]XZZ`_QWWZgZYWVShNSbeibYRYVY_]NaPMRT]`[QZ\XO^[`XMZWXZZ[Za\WT\S`bZ\]T[V_TWZW\^_V`]W`RYP^\UQaXb]^T\XWX^UQY^ZSWUXcWSgZWVXYW_[YZaZ^]\YSXTXZPhUWWXSX]^UXZ[Y^Y`LUWjZP]R_X[][\`VWQ]XW[ZW`UTZ[\SZYVTaMcUX[S_QT_U]WOW]XZTZZ^h[X[SaQUZXWb[Z_dYaTaXYUU_WYVYUaXW\VRQ[]^]_XYYQaTYYRV]SZ[\TXUTNR_Y__[[T\b[V\ScQTgZSbZUWWV\d]SWWVVTRVYVZakYVc[YU[\QMOVj[`VTX\YbTW[Z]ZgYZZSZZ]cfXcVV]Y^P_LU]\OcWRW\ZY[X\Y\UMXgU\W]VU[a]^US`\Vc[ST\dJ^]_ZV\RPLXVTZNa[SP\NP^_]]ZU^RRYYW[c\UaU_WTNZ_XTa\]VVRTU_ZWTP[Z]a^WU^^bXdT[VZXZ^[YdSPU_PV\TOU[WS[W]ZW`Y\dYZNVcSSVaVWUZYbe__\S\UWVSOZXVa`U\SYVNaY^ZV`XW[YW_]QTcY^ZT[eU^YVcY][SNYO[a]RU[WRYX^YTcTjQgZUSWV\`Y[WYXXP[QYYTYVWW[[U\ZQcZaXS``[`[[Z`\caaXSZU\_Z^^[V_UVXY[Z\^]VTYUb^^UURU^RX_YcYY[Yc\\UWX\UYU]Z`YY`a\`[ZYYVOY^c[aW_hVVVYW[X_aT\PPOY_QNYb]__]XXPbeQP^_TX__\W[_[Z\SYUQ`bU\XV[R^]ZVZZZ_QZWP\WYXR[b^cXYT]UfVVf`MU\^fY[YOV^`_XWJcV\T]SYaZ[NQ[f^T]`ZZV^\T__ZZUSiXO[UU\US\ZWZZ_Zi\RbWYVYQ[]^^WZ_b`Y\U\\WXYm^TZ^Xb]QYR[ZcYQYXW_]d]SWVXb__XXX]XTXV[X_Ve]_V[QWUVeSZZWc[_`ZOY^ZWUWTY__^bQW[Vg^c]T_W^Tb[][Y`\\bZOWY^S][W_^ZWU\WZWWR[SVW_MUWQ[T]SVXeaYZX[ZZ\X[WWeR^W]Z`M]SU\WVUUY^\[]XaU[^\`\`aXRSX\WYaUV[YTWVaWZSXUX\UW[]U\\XST\ZXW_^VWY[X]aS[]S_ZYZ_WR_X\]aZ\_T\UYSZV^OQXbWe\\_X^W`VZ\`YY[SU``_XXV\X\eZW^W[YVXYRWVU\\[V]XTVVa_[[bXZT`^a^_We[]Q_[WZVTZRXb[XZcS[cZTXNX]]RbRP]ZV\WWSZYdYgb[cWVZUYW_[V_UW``ZZV\UZV]WYY]YRWURd_aWX_]]`^\^^b`VVa\eX`^_NQ\RVT\XWXTP\X_jXXbZ`^XWXS][X\[XeRV]__W^^SY\]Z`ZVYWTYTUXXZ]WfbTP^S\_VU^SUZ]PV^TVWU\YYSUXb]UYYXXX[UY[\ZU_X[U[WUXP_XXWXVPPUU[_TYXPZ[_][UX[ZX_b_Yda\R^]V^XXXPUZ[\eW_Za^b_TTR_PYYWYZ^ZZd]`Z\\]]TXRSda[]\\aWW[ZV]jVVZYNdU_Y]QZT]_\W^XT`TSWZ\Y^R\SW\WSO[RZVPdUcbS^^UbSYW]YVW]YVb^YN^_]Y[VY[\[ZZN]ZSa]\YTaSZVV_S`Y[][_b]__S[S[^b]cSS_X^RWc]WVR\Y\dV^[RY_[WXV_[UaX^VTXWX]Yb`SVVWQ][\PZT_YU`VQSaTR`X[U^Uc]^Z]PWS^[Z[W[Ya]Vb\\ZOWXYWS^_[VUYZ\XK\\j\ZfXUSUZ\ZVYZ\[P^[VZXRX^][YT_YZQV\YXZ_bf]WdfdRVXX`Y[QUY]^^VX[Th[WUYY_WRYSTWZ^aWe[VTRU\Wa]ZN^ZTbYPgP[YYdZW_URbWZ^Z`^Y]X[XaVVV[VWYakS]Ym^TTb[Y^b^\ab_RVb^X[`\]RYW]`W\[bQ\_R\T^\^VXXU_aZWRoZaZYSZTTXT]V^V[YXW[eXY`ZSY[fVdZN^^VWXOZZagbT]aZN\MZ`O][[_]\VKcXU[Scd^[]VW[Y_[\UVTXU\TT^^S[Xh[VW_]SXfV[ZZQjQaXcSYX[[UV_Z_b[QY\b[SXVLU\^V\ZTa\R\^WUdc`]WSW]\[YZZYX[X][YXQ]mYgaUXZT[YSWaQ[YZaj\VYUYUaYOcZbYaYZaYUj]a]\RXX[Z\SX[d`\^RX\XSc_`S_YX]Y\U_VI\Y]ZZZ`XWZ[RYYZ_X\WUUWU\Z\T`XV^\XPYXYWZaV\c^UUY`[ZWRaZ\\]YT_UQVXTUYYZTXYTX[[SXVSTZSVZZZVWVYYYiPS]T\QR\UY]UYVZSYYS\WYP\XZYYZa]e]TYWIRXU`T[[VVS_]ZWV^ZUgVX\b`gTUXX\Z\WVTUV[U[RRT\d_X_[ZUYVS]_[U]SVV_\bWYRZU\[[UY]Y\V`]U[ZR^dW\[VZ]bZ^XVYXcNVXbW_[]ZY\\cV[ZZXYZcWQ\Z\ZSSV^cXWbRZYY^OYYVVTWd\UWW`YUVVTY]Z[P__YWVY[U`[TV`OXY`]_aUd]`T^\Za^WU`baSnYWZWWSaV^WYYaYV^YWWbW^\Xf^XVU\YVX`Z_YaXXaSYdcUc]Y]Vbb\^Y\XY[gV\Z`U_]ZWRXTV[YWd_QU`X`c`WVXRWaSYPY[O[\]d[[VX^aVXaalTT^mS[QUfIY]aYXXQQ]WUT^ccQWd\ZU[WOX[fSaja]_Z^]R^`[caQ\_a_Y^cUZ[cbWdZX]VjWVVWYVYNZW_RYRXXbP\UYfYUWQUY^WV^U``Ra`YX^ZZ^Y_YMRaZ[c]f`W[a\V`acNW`]SZW[PcYfT^^^eW_[S]XP]Z^dW\^R_ZbeWQWa\TXS`Y\Y^PY`\^QP\eRRf[P[ZVd_[_cf`V_`^NXRXQUWY\XX[[]XhVbXZZNW\`N^U]W_eSS`[a]][W`YXX\Z]STaZ[_W``UN^V^aZ^\[W]YW]MSS\hVY[]bUWbWY[[^[Z\Va\bX[_]UZd^\TT_b_a^e]Z\^\`]QfVRY`bWaoa[]W]^a]WZ\Zaab^_`Y][ZdYY\YXRZ_Xm\]WV[V[bOYc_YYX^f_\`YX[\]\fQ]XVY^^Z_Z]^gYbeW\WTbT`ZhX\_\[ej]Q]_\^ZaWTX_SWYcV\[[T_`e^YZ^^TaZVTMZ]bfeYL`Y\b^Y`K\d^Zb[faYV^X]YZYd`UZa`_W[\]_U[_UY[]XX[SUXY[]TWbXWeZ[YOdZc[ZQ^`h[W\^__`YWaaScS]\[\aa][aWZ^Teb\a[[^SYZ[]_T_]_R]][^\T^Q]ZWP_`_V_^]W_XUZ][_`^VY^]\]b][^XZaZTeZ_kS\ZW]XZkWYQSV[pYZUXbU\^XVYR[][abZZcfWYSQ\PaXcUR\Y[QYY^]b^^ZY]f[XXX[UYa[\[_[X[RWO]WdW[\X`eXX_ZQV^T`OS]VL]P]WXWP\hRTYXeYTPTOTT`UZUTWYWZZR[XWeT\bIcVQXVbYcXY_`YcM]iSn]W``Zb\SYSYSW\[RURf^`T`X]^WVb[OXW]Q`_^OQQY]_XR`\c^YZSZZXWZRIa^VPX[aVPQTV_Na__][Z\XbVTMW]e^RZ^Z[_VeRYbU`Z_VWX^[bVXacOeURXZ[S\W_\S`PTKW\][U_W_PYZZVY[TWU[`aZdZe`TVYbQXYW`S]SXY^_T]f_VUb_[ZSZZ_a_\VXT^XcY]_][^Y_jS_d\[YX]WYc_UPSVSR\ZVPSh_UVVZ\XL\W`b^`_ZU]jXVVZ^bT]]d`\YZY][ZWYY^`]SVba\XV]TX]WY]_ZdRUWY`XVUX_TV]TZ]cXZY[aWWYRVeg_XXX[`VaVXSPUR^a[]RYUTY^PZ_YTV[YXZ`fW[`Q]Q[[USR[S\ZVU\`Z`R[QUX[[TZY[_OVVYSTQcY\Y_]VZU^Y[Ud]]VY\S`[`aT\`fZXTTZTZ[TZYX\aWXZVW`\_Yf^U\cY\][`V[U\\XY\YXVSUX^[`[ZT_bR^T_ZVYW]T`Q\bZZYVW_bYa`]`M_WVTZRXY`^_b[[VO[dQ]TYQ__RRX[W`WQT[d^aS[S\UWZXSY^S^`Zc_^TZQ][ZY^RSXX_^ZU[\\^Z`^ZS^eU]aaYPX]ZYVeYW`YT\V]\T^WYQXUPV]`UXbV[TV`\\TV\\W[SfOiVYSVf]ZZYYYZbPYXSZX_WbWT]XdW^YY_ZYVTX\XV`YR_NQ]\V\[T[X_[]TZXh[[]YYUXZ\XZaYf\Ue\R^YXV_a`[\^Z`S][X[UZRX^Q^URQVQZ\XZP\`Y\WUWSYQjcTQ\YZYU\YV]][W]WT[Z]WT[_]WZX^j^YZUZZSeXYU_Uf`]\]TU`O_[[_U\X\Y[YZ[^Q[[m`^\YYWX]WTU_X`SXW`][XaV[UXZTYU]dYX\`TXUcZV\YZXa[Y^Ra\^XZXYZVVf\[[dSV^V\U^ZSfb_WUZWXVZ``]aZZ`RcX`W^XZY]dSYWWX^^TX^[a^]\Y\aVWRWVZ[PXWVhY^]VZ^ZX[TW_WWUW\_T^XYX]YSUe`W\[ZQ^Z\W\[WWVVR^T[VXY_WZW]TXSW`\\]]bW_^YTXYZVV\eSZc_WYURQZa\^bZ]UY_aXTZYYbVZdXZV\\ZX`]X\WTVXRZX][]ZYZ`QWWaZ^ZR[ZUU]YZX`^_UV^a`W\[SUZRZO\[XVVSZ]TT_W^\S]X\\U\^^]T]W[[VVUYSV^[R_U]YaXX]W[YZZURV___\jc^N\YZaRUZXY^YXY_^cSWWWWVWb`YXTW]]\U\TRgXUU\`]\Q^\\[TT]VW]ZVROXW[Q\X_\W[P\Z\_[WY[RVZRWU[]W^_\U_^aZW^\_ZaTZ`UVjV^XbWcfbSRSZ^`WWTVVe]VZT]`_d^TYbT\[SZYR^]_U`Z\V^[Sa`\YWTYWX_UX_XZYZ]X\Y\_P\e\WZVY]\YZ`[Z\^YWVRVYWTYXaVaYZ^][[``^TV^ZZ\RS_X[WWXXX[VWYVW[Y\_`TZYWjeSWW^ZZVXUW^YSX]T\QaRWQZ__Z^[_[_S\\SWSYd[WVZ\WTZSc`[\[Nf]faXTWZQn[^`V[Y_bXZZcTc\_ZV\TZ[ZPXXX^\b^[W\[ZYTZ]hgcNW[ZTW`]SUVVTTR\ZV^YV^VS_SZ[_b\^Y\UYS\RY`YU__`YdZZSYVPUSS[_UbWT^]URW]ZaVVU[][hOQ]_WWVc[XWYPWW_T[ZRRPVU_Zb\W]T_``W]gQY`aYSVU[\SSRWUTVS[b`YZQ^QW[VXWZbXTQR\Q[WWWS^X_Z_Yb\Z\YPYa\Z]SQXYcYWW_VT^[\U`N`]W[VXd[Z[XXTcRYQWVTXY^YXSW_WUbXU\TP]WPW_YbVZZ[]\ZZ]XOV\cZYW[]\Ya\XWVcUQa_SZdb\Qc`V\WYP[c]R^Ye^V[ZV^XPS]WZTW]YZ[OXY^Q^[aWQY]XYeVSiUU_WYgZRbSV`IkRXYQ_\^UVa^[S]\V_UXU[TR_UUWQW^dXWWX]YZW[X[YXZ`X^VW^WVYX\QUUZ^\OUW^\[Uc]WU[aaW_^gZYWUVS_[Sb]SaY^bYVS`]ZZgYT]TXTTbS\]^^[Y_Rgk\[`[[XX[YW_X^Y\XhWXY^]`[]W`UWb[ZVVSX\V\^\Y\[Y_\UT^U]VV\ZXU^XXY]YVWgWX`\K`WUU\YV[[d\^X[\[U`ZZWdXV[Xa`\^X`f\XU\TcXS]XX_^Tb\`cZUZUW`]ZVX[YZj_N\_YRf`V\bWWQW[]]W_LaUS[bVX[KMZ`R]W[YR]QVYZTPZVVaY[]`]Y]UYU[W]SRYQNTU[YRSP[Nf]]e^[_TWYgYVVVTUWP\_X_^XPU`MQ\_XW^VY\\VXU`a\XgalTadO\XY]\XXWYTbOWSWWSPXUUX\XRYVQZXUYZQU^YbY]WOSaPTUSYOT[^RZ][Zb]a\_aS[YQ]T_YXQ\WTT]YX[S_hd[X]X^TeUbVRYXV[SWJ[gY^V\WSMXZ_WJS]^[_[_Q^]YU^]PSdU]VQLYXO^aUO`\hWTW^YaZ^bRNRURYXUVY`]`N[MR[V[TR_PWdS\b`]OYRV[ZT\RUZfQ]\X[T_YUW\VYY^PUhWUSdTVZU^^]^ZTg^X`eSUWZP]VW`RUVWRSXRU_ZMSZOTa[XZ]]ZdZSTY\Y\STg[RZ^ZZU[^TYUSQPOZT]YT_R\SX[[`da]Ze]OZ\TWVh\_\k]\VV_X[^Za\M[[\b]W^YZYZV\W_\XSST_]SMWLV\RYUYM`ZX\dWZPbXYZcZTVY\RRT^\T\N^QZTO]UU]X^_ZQ_VXV[_T_dR]XY_RUbY^cZ^US^\TW\WX\RRYX]Y^\V_TX_b\YU]b[O\[k[ZY]S\[Yb]lZ^VZXYY_O^bNZ_^eTNZVZY[\mQ]__ZMYX\aWXX]]eaZO`_]YZ]X^]VWd]P^\Y^TPP\ZW]]UScT\V\hZ\bX\`XVXaZWM`Z^[XW]ZW\ST[\\V]e`QTX\iUbVVUbaiZU^VZOb^XY`[[Z_^_XXYRVZa]YSTUaXZW`ae\VZ`SWW[cVbYZP\b\YVWTRV[eX\W^T[WXZXSXV`S[UX[SUXZZWYZVWX]YTV^WTYQTbYW[VZ\^[X[]Y^WaVX[Y^UMV]ceY\WXX\U]ZW\TQZVZ`VYU^U^[`U\UZXY[dZUVZ\\[\_^YeW^_a]hVbVW\U]`T`^\\SXZaUT[YUY[O`^^^SXMR]Wc`TX]R]]XWR_YYXXVaZZY`P`]YSXV`[WWb]X]\[^YXVVX]V[_[]YX_UQY^X]_WQXQYZYS\SadQfaT[Tf_TaWY]XV]VW\YT^\PUOVW^YV_cV[YYOgUWQUXS^XX]Z\\^U]^VcZZY][WaRYSZVXOX[YV`dXUWX`UVa[^`X_OZSWL\[^WV_USU[UQ]fcdYW][VU^VYb\TQ[TWY[RYYY]ZU^^Z^\`\^YY^Z[Ya_V[b[^\T`SSbb]TRa^VeNSfN\`Z^V^WY\aQ\iWUcZ\SWZ\bSY\\OTSX`RdSYjOWVc[[iT`PfVY^W[OU[WYXQXLO_ic[OWYT^XVTQ`TXX[bZJ\jTfYQb]UU_dY[^SRWb\YS^Q^]WXR^[aXE]XZR]WWdVTTdVWWVRN\O\WWSZZdaS^WYWcX^\S[abTXaUSZYVde_\ZXYjeX`^bQV\[eVOdPQYUVdG^MYSf[aSS]WocYa^e]fS^[XRXXSdNL]XXS\^]^[J\YSZ]]XPaY^SZVTYUY_b^\]_^SX]VNZRcUSeXS`XXgZeZ_ZX^^U`ZNWe[b_^c^\a]adRRNWX^ad[SbR`c\j\WU`OVTSZW\ZWRR]TPbT\UdR]^ZVRXY_^[NWXZ`cWZaaS`YY][VQ\bYZaS\SUU][UdW[aWXTVV^\_RZ[_ZYV_W^aX]T`WZWSVSd[[_^^\U`_aZ\PcSPTY`R[V_TSV\X\[YPXTTY[][^Z^VTS]d\Z`Qa[U[ZXS`PXW]VX[Uc^YYNaVXPabZXZUZYcTTaZUdL\TSV[bX[XSWSSUXYTZ[[\]\[\VWZYWdVY\SYRVad_[V[^YVU`QP_^_b[XX]M\`]^U\XXUVbUY[\PS[SWUXQQ\U[]db\TbZbVX^Q\_UV_\ZbWa\S^^T[]Yc^UTYVb_ZTXbUYWSa[VWVa`[[QOWTW`[YUX`TVa\[R`X\OVW_`YVZ\NZabXhS\ORSWTZ\R]S\X[\S\^[WTf]iQ]]h^Z]fZPdcZV\Ya[VhT`_PaYbR^[U\]RSWZTaPSUVWZZ^]VfMZX_\^`VaXPYZZZeK[P[ZQ[Z\aQUWdad[P_UXbVdUZUZTYHYWY^V\aYUYU]Y_^[NXVUaWTd[VSjbQZ]YbVXM^_ZWZV^\\`TT]YTf\_][XZ\]baLR]UhnXVYUW_\WWRT^VhV`b[[aWR]TTR[`SScV]WPZj[VYUW\PYd[`WYINQR^^RWbPdYX^`U^\S^U[MeTZZP^PVMXbYR[V[e`MYZVR[Yo`\`[a[I``TcbV[Y[UbSVZ`\cTVW`MXTKW]\cYZbTYRTVbTbXbY^XUU\YWYWYafW^Uf]VX]hnS\^T\[R\^XaPeZYaZ[UTXTZTOSWWeSSdb^MUbUZ]RSYZ^_[XLVbfTWQTVeW^SWVTTakTWZWVW[LT\aYU\d_UU`OXYSUT\W]XSQ_[W\ZUZT^TcgZQ[TZ\YZWXUYd[W^W[ZU^`ZX`TQWX_WVXWY[\WXRYXZYV\[i[`[UYT[_aa\_YVY_aTUNYh[_`\^Q_`ZVW[\aR_]Z]aTV`ZWY`bTWWUQXTYZYSZV[]XX[UV^YVW^ZXd_[W\YU[WTZ][WSTWe]XUXZVaVX[\LXVR`a^TUT]ZY[S\UWS`VQUZV]YZXVib[\\WR_WQ[YbYYYWVSRXfQV_YUWQ\\jNUTaWZW\WWQZQ\Z`][Pd[YXWZRW`W[Zc]X]T\[YXTRVW^X]STaUm`XbZVbQS[YXVV^`RU[Y^VZgVWXXYZU_\VUYXWYWU[ZS]UXWUZV[UPSaXO^L_^TaWTWaPc\\`ZZUS^W^e_UVcXU^YRWVdXU\V\ZPT]WVWVWaUYU[W\UY^]bW[QZXY]RPPZVM[\dWU_^WXQ_TT^`a[`_Z_\^VXTTgc\WdUX\ZWVYUX^c\TLXijbX\RXXdR_YT^UVXgVUUX[^^X\VZX^^S_YTWZ\Y_VZaSWY]Ye]Z]VZb^\XXRZT]OP\VaVTW\e\TYVTS\WZ]XTY^^]_ZefZ_^XXTUWXVkUWYa]_VOXZX_YZZ]W^_ZWZXgfW[^dTcT^ZdWW`VYY`W[VZYbZYW]ceRWXVV\XVTe_W^R_TUmTbXWb]T[Y\X[WYWWPdV[UZ^T[\\Od__SVQY_ZW`SUUVUV^aU_YY]WaNU`RP_[T[VbW[h]]fO\YUa\\VXWeTXU`[V]ZXRXU_YdSSSSOYg]abYVZYX]b[bU^UR]ZnU[WU^`XZWQNVX^^]b[[aZeT^TR`M]WUSUYSWURTXfZ]`e^Z^_YWQT[\V`XZV\QRTgX[XYW\NTTUZ^UST_]M^\U_\Y[RRaXe]XY\bUXWM`XVTYUZVZeT^UZeTSbPdTXa\UUa^\X`XT]\TUYO\V]_YNVJSW[_[QWXUZXfUQRN^VaXM[[WV[\SRZV[dQW^XWTW^bZWiaWcjZ]RUcWW`XaOY\WOWWXW\OXTaXYYTXQ[U[[^Z][W]TP[[_^[aZST^]OWWXS`a\[WUV[TPYRb[^R^YV_R^h\XaQVb[W_bWU[Z``UQ^OQXY\dZPWY^_SPVY\U]XX\[XZW\^VZXY_Q[\XYaPVZcTXYYfYZSSYY\`]RPXWX\[]ZcVX\S]^^YdXYe\JVRbTV][TWYXVbXYVSQWXY]^O\W[WV\WeVZ^_OY[_[X\X`]V\be_Z_YZWUZVYYgQVYX^[YW\_XZUaPVR^TX[WdN[NYQYWXVTYPcVaYLX[^SaVSX\\XTUZYUZZYS[SN\`U^QgR[a_\OS\_]aSR[\_TbUXWT^UTZR]RW]^[YYU\P`cS]_`WZWYZUV^X]X]ZTThSPZYPc^\\YW`[TQY\XVYZQXbXV[W\aXS`[YYb[b[WfTU]_eciV`[V]VVZ\RaL^[bU[[Q\_[]\[Ve[dVZ_W^b\[\^[S[\URNT_`\WYXXW`\^]TX_hQR`[T_[`WVVW\\`YSeXVZPXX`WSXMYXSSZ\ZSbYX_`^TZhWZ]SY]Va^e_\\ST\VZ]WWR`dXdV`McUYWRVRbXXYWTRXVVTTYOXVX[UWXXgWW]\lkbVW\[a^W_PWR[ZZPP]QUWZU_X]\f^kbXL\VgVYWdYUYZeTTZUW[dXYTTRTUUSZ_[W_\][RS__V[S\Y_YZ[X`VRVdVRX[U\XT\ZX][WS^`I[]VW_[Y_Q[cR\W_W\U^`\cV^Y\X\]]ZWaYQY[ZY\T]dc\Y[ZTUSPTW\Yka^T\ZWT_XZURYT]YVSYWWV_W^_bX`W^Z^UUbYO_WWWZ\XXU\\]YbWTM]eYSZ_\T`\SX[PXUYPZSQY][hULQZWZUPZ\fZUZYWXS^Y\f`fa`cY^S[\^Y`YVUVceX_eZ\XZbP`[WcZ[ZSY[_UYX_^NXQT\VaT\VWX_V_ZWXUb[YYMU\XYYUU[^ZcZL`WUPMZVYXe[[[wagV_T_bR`d`P]XQWb\c^\WhZdR`RSTVaVUSbYR[X[`Y_SQVUVY^YfP[^X^QYdX^STgTNWPWcbOPXXR_cRSS\Ma\OV[TMVZ[]S]WQaRNTP]\bUURTXaYYXWR\[\d^VkZU\d[YO`NXfgW[YWUcZgaSVaTXMaXfYX]W_Vj]]dUM]`cM[dYRa`cVf`U[SXZZ\]XWWMTM[UUaYa^STSZa\R]dZ[\UZQT\Y\PYS][XOWUUPUYVM^bV`UZYXWW]V^_^YWdYSUa]]ZVhUdWW^^W\]]R[]V`YZ]^Sb[^f\T^[RY^RbWRcU]ZV]b_VVTb]MS[Q`e[RTYVYYRMc\]O\\[S[\dk_ZTT]UXT`caUWZY\YUPPgWXUZVYaa[WWPMP\cXWV[]`TSSUQZ[PbcZeUWXc]ZZ]`aUd`Y^b^YdUUPZWSUVWU^VbdSaVMbY\cc_Wi[`_YS\Z\\`jcTThX[WWSUXWXacaXZRWUPUaTZ[W]U^U[ZWXT\ZZQ_VY^WY]Wa_Uf\X[UTOdOXTZYXfWcaY]^UZcYUVM^X\][]ScZ]WbdZUS[Y]UN`_LX`XZQV^YS]VVabPLUcTYPaVT[dWQ\bScR\^VUb[SWjcVV\gRcSXPVXWYQXaWMXYe\]Q^Q`VdTa_\iWc^[UWV]e_TY_UUa[[_YYXYX\_WTUZ^hU[_]aa\aWWVYQTZ_OcZXWSO[]aR^YY[[ZZ\[ZVXJcX[UWSSX_Z]VZX\abVTX\Z^_Z^[[Xk[Z^^YZPV]\j_daOaUe[SYcV\VTXYTW\YU\hTUVU^W\Z]Y^Ye\T]`YXX\WOb_TZNZ^``h[ZUdZY\gW`P\\fZXX_U]`U[X\X]UUPR[ZXZZWa_a^b\Y\_N\WRTVZSZiXY\`bWg\XZ\ZXaXWVW[XTUT][ZT^X[`TY_XYaX][__Y]\^[Y_YXYR^X[XVhPXeUcU\^\_Y\YLaVWTdZWg[RYX`\XZS`YSU]^S]Sd[UTRW^VYWb``YU__YQZW]XacV_`Z\e_\cY[aYWbUVXPV^_T]]`_UYa`]VX]WZf_V\X`a[SbhQQ^[X\]_XZWRXfSdM_Xc]TXTX\ZV]XUXX[TQgYaZXY\ZSW]W\S`X]`UZY_e_YaYYYPT_SXY[YX\S`ZYXYWc`Wa^`Q^_UUYZWU_ZWS^`Ta]^_`R_Tf_ZaMWWU\SRWaNV`[RK\W]MN\\ZYU^bd_W_ZgWWW\PYSKXZRUfX``VW]]XZ]\PX[P_]OaXNY]UXcVTaT\X\S\V^^_bIW]da\[_TUcYWW]WXZUO^babWVXYW\^_]a^UZc]aTN_NRa\U]a[WWS_]YXRPZee`MUPU^\bTga^XZYWOJ_aZV]XR[fPVW]q[_bhcZZU]]bXPW_W\Z\P][a[MO]W[]Y^YXW^cP`ZdaVO`Y\TYUSXYYS[Udbd[Md]TV]XVTZ]\Z[aaUXWUYUYZXTa[TT]Y^S_ca[^_O]\n_a]ff]T^YbXWNWb]\f]Va_QN_XQUTV]bPRT[[MYL^bN`]RXVXR^VTSKWZf\[UW_U\WZXYRS[Y[]aN[U]R`XZ^ZUcXdWTabXZ^[]Nb_]]ZTRZP\\WXTWWVVXa[]M^V_Qc_^jUX^bSQS`RbUadbQXc[UX[TYaYVVV\`V]WY^Z`eRS[QUSHYR\ZZWXXXZU\SWa\YX]TP`]Y_YY^[^WfV\ca\Y^]gWXSUZ_VSZ\YTZ\]bRdXOQ`]WNZUUK\[``bY\WX[XUVVXZR\^XX\\]_[_WZNXYL]X[WZ[S[KUYVSY[a^`UcWZXY\ZW[S^Z`ZYT\a[TY[Y\_T`R\VWm[U^_\W^bVUX_bRXWY_P\Y[SaXWSO\ZYTVU`]RY][XVU_RR[T_ba]U\S]]`Z[PRQZYZ___^Z[T`_[VV`T_[]SV^KTYX^]WV\`VZUV[V^WR_X`WP]WSTWT`Z][QNSZ^\Z\\_ZXSY]Y^VbTU^VV\UWf\YZZW\TUZWc]SZcXSZ^]R\WYUU]gXZZVY[WZ\TR[V\T[Y_WU]\YaU[dYX``XTY]dY[cXX]XWc^aX\ZXXXXS[ZXb^Yh_YeSXX]S\SV[]W[Y[_aSaUS[\^Se\[]RU`Y\UQ\VYWO]a]ZR]YWXXUUQ_Y]STWZW]Tja^XX]c`Sda]\QZSa\^XTWUaXQZ[UZfZZYbWi`]_[b\YW\^]TQ]Z]_\UaZ[S[W_TW\Z[VQ^S]`YUVh[^V^UYcSVSbYbeWZWOP]W`YV__`W^RUX][RP[U]^^TTSNYU]R^`ZQ`YQUW[V`\Z\S^SX__V]ceY]QZ\T\W\\WVY`ZZa[ZYS\_SZVT\]SVXXN^[NSdVYUZWYVRVicYVW^Z^T\W\UYa_YW[b[XVY__TVeXZRW_LdST^\d^a^XYU]XVY\\ZVWTTYMVWZWV[cVST^Y\Vj\]XaeYUVYTT]WUbX^SYT^WX[[`\RWV^_X]RflWY^WTXVSXVQN`_XRV]X`[\^b\aZWU\UY_]]RUYY]fRbfY[X]^SUYRW[XabW^`OZT`P\Y`YTX[YZQjTY^ab`hZSgUSYXQZcYe\^[[NVTV]^Xk[XU\[\VSXja^XT[[YWLa^QV[Wm^Y_W]Y]W`U\XbWOSbYba`UY\U]ZWUVU\Pa`aT[[YR^SaVU_YYV\[XbVVXYaW\S]^VV]\S[VXTVT\\SUVVUWZSUVa^`W]S`TS_[Yd[ZVWQ`Vf]XVXZTOQV\][XUTYWRQTU[m`WQVXWY^dRPVW_SYV^le][_ZYaY[[cSUa[XO`^YYY]XSYWVdZa[Q[S[RWXX_QacTY]YZWP^ZXZ_Z\Uddd[XSPYc`U[XdbZcT[\UUjcUXTaUZ]TY]b_ZVYUbU`\WYdOZ^k_TWN[V]TY]\ZVWSU[cYccZVXVPVW_RMP]`R_XXUR^[ZS]WZTWYYa\Xd[WU\YQW\YZ]Y_WQ_\XVU]\YbZTc[XS\a_^eUTWNUa\X\WNPT]T]``^[[ZOXR\dUURgbX^WPWUYT^V[QYYS\TX_YZR[XNZ]VOYTV^]^_a[`T\TU^U`RaYT_X`\VYkX\YV]QY]Y\QTYUSQT\WUTN^QP^T\Q]RXSZWWUTZZReXXW]]WORZRZPXVY]Z^^`_[YYe\cVV\SQXWK\Z]ZXWZ\[i_U[TWV\[aYRf]W]TO]U\WW^T\WW`Z\NTJY^T[PYRX[aSeZ`XX^WU`W`X\]VVM_]V[ZVWRWXZVZU[]_V\RK_bSYXWYZj]XVW\Wa^V\bO^\PPQdYZWY[PTOb^Q[Uf``[eTaVNhWZZ[\cU[Y\[PVXbTT^W^][`S\ZS\HIZZVaZU^[VV`IX^PRSYZaLY]W_^^UR[`VTNKUP[W`S]STYZTXVU_MWZcJZT[RZlXRR^Uae[W]QN]Y]VYYUYU^]VXW_V]P_fWZQ^UUWTZSSXXhU\SbSbTT`NSV`VT]`WR\[^[V[fNR\YU^`VVeMWZZZWb\W][_Ka[aOZYYW`RZW[P_ZYV]WYP\R[RPX`RScWU_QRZ]aXVTU[`WU^e]]`T[]P\VWWYX_`Y[]]\]]]W[\[aVYMWNUMY\g[`XWR[\b]TYYd`\^VUXUUNZ[RT[\W^XWXU\UVWXfZ`ZSY[YXVYXT]W^S]WVXZN]VQ_T]`[c[TWLR[]YlObaTPPYZbXGadRWgd_YVQ\RL[cV^^XX`bTUSXV\OV]`VX]Z]YTWYX]Q[TZWYYW\[[_kOZTW\Wa[XTU\S^WP]XTeYZ[ORYVYVV[[K^[dV[XaYSfY\]_S^QWZR]_^[O_Q[ZUWUYLUP[\[][dZWZWbTRW]bUXZZWTW]SRaV^^S\Y[\^QVVbUga^\\WY[^a_TZ[YU`SaTR]Z]OZaVQWWW\d]`RgXZY^SWY]__TYZRR[_]OPWRZZYYaR]aSVPbYZ[Y_X\YaVeMUUWR[ghSU_XV]W_PTUWXZVWYMYYTUUV_eX]\R_ZWV]XY\WYR][Z[`TV^][^X^V[bPXbPYSZScZQXXWWd`Ya`XUVc\Y_\[UZVYWXXcLPYb_YUYYX_\bXR\\ZVbZW^[_]Rb]_YaW[UZR\V]Z\daV_jccVOZ^TWY[_bQdWZf][UU_TWY^UW`YYTb`Zc\WQ_\^TXXd_^d]WZTcTT\WV^QWOY^\]T`[^TW\[[b[Z\X`OP_XXYZ[WX`\ZYY^d]QYWbXXTW\ZPW\X_U\YXV\ZaVYYe]TcTZU_TTYXWU_]UJcThWZ[S]WW\VWV]b\^UUU\WX^Z^]`b[PR^WZ``UNZcV\R^[UXVXX[UUTT\]\XZa]fVWVWV\WVdU`Q_W__Tca[X`YZa\XZUbWVX[UQWbUXbVXY__QWaYUdZaZ[Y]\UN\X[`V\^]QfXa]WRcMSYU^aZdT_VZ\YVW^RQWT[S][RZ]PXdXXZ^Z\ReXST]XZ^[ZS_cYZ\S\V]Y^\YRTWeS\XZV_\_\RWbYYVTT\[]Y[_S\a]ZZ]\bXVURXQY_g^Tf]aV]Vc]W\WZ]UT_XV]XZUWYSUX]OWSTTSU`OX^^VaSZR\WWZZX\^^\`\aUW]S\cY]RT\[ZZ`\U]LWO\cV^_USNd]YUWUO^WUWQa_N\aR`X\fY[VT^^T\S`c\VP]V[WVg[Z][^YVU\bVaW]\c`]VWPQc[W^UZT[P^VWTRV^bZTZYZVc[U]RZ`f_`[XVUVZ[S[_YjXU]cW[\SV[Y[XZUQY[\W[RSU]R[UUU[`XX]UWRUWWZa[`WZVVU\XUS^fZ[[Y\YSXSW`Q`YW_]\WT^TZ[eZd`X[UY^WVY]^eSVhhZiYUW\[WT[YaWU\Q]_X[cU`XT^T`XYZ^Z[`XaI[Y[ZVTbYb]^Xce]WTS\VUZ_[N\XbYZW\Y[XU_ZXUUVS]SV_]TRVYUWU]VZX]YYYVYX^[_]`VZaV^TX]QbPTZSWWQcVaR^a[\Y[X[\]XY_\N]Q^`f_UTS^[VT_TZ\^\V]YX]Vb_VZTYYZX][]TZYW]]\`]c[bZ^]]Z[[aVT_\a\XQVUV_\WWb`\Z\b[b]TXXZ[^S__a_\Ub_ZZZa]VW`aRZ`]ggXURX_X]_eVZUX]^YTV\^\UTZV\aTadaT]NZZ^XSOZVYV]^da]UUYTZU]^T]ZZ\VZS^\`Z[`]`TYfW[]VbZYeUSSOWW`XcZUUSQdSYYRb^\YYZYZ]W]WW\W`Ya]^ZaR`VTZYUSTYYZ[T[ZcRVR[QYW_WMZWY^X^[UYfYY^VXfZbUTYUfYX`\SZ_YaWSXXYUVW_]jaZWW^ZXaPXXSTW[WUXY]Wca_UdX^Z\U\P]UX]TR[W[VTTMUVWTfO[S_TQUVI\X[`_\RSSUYTgVW]YWVh]W]SPWX\_\^Q^UVV_UZRSbTiY\WVTPO[aTS^YUZ^_OZPYTad^T_Z_\dT`ZT\W]U\Ya\PjRVWUXec\mX[V\YbX^\fSXbaX_Ya_\Va]Yd]ZY^`TgRUeR_ZUUbdZ^UW^eXX\ZXY\YW_M`\VYXb[kZW`S[^]_V]V^LZ[`Y[S_S\`[[^Y_`T[UZ\S\cT]`[MZQYU^Q]][VZU]X]U]fX^X[Z]V]Q\b\X]^cXPbZR`OcacTT\RaW^TZX[WXV_X[TUWc`^]VfbXQ]U]\YT[^UT_WUSY[Z`WXkT`YV_X_R\VOZ\UXTWaLVc]P^`dX_X[RVf\]\ff^UY_Vc]WfSa^SZ]bRgYaT`aP^VU[ZNZW]`MWVbWRVY]\b]TYXaRS^`RXSVPcZ`VWWW[ZVVVa^X`P[V]aW\`c``VT_]\XZ\^T][aYS[VR\^YVl_TX[QYUWTYUQ^X[WX[Y^[\ZWdPYaZS_fR\ZT^hZbZYT_UZ[WQVOTXXY[TQW\Z[[`bVYY]T[Z\]ZWYRXc^_mWQ^U]XWQidTTSQZOU\i^cRYL_ZVSMOUZP\WWYb^efT^Z^S\OR]MW\ZVQXYVcVQX[\X\Y]VaZNWRY\[NUX^eTS]WV_UR`XbSZ_aWV`ZTVQVUTTbYY^VZRO`UcVUYYW[dSQ_^N`]]XQ[Udc\]UYcSRZX[WWPSW\SSTUQX]TaUTV\aOQaOa[U^YWT]S`ZdVUbVOSZR[Y`O]VWVZZXOVdZSV[WV[U_ZW]U^\[Wc^_[fZXZYaWQ\^[^Pi_WY\US]Y\XYV`Z[\YYXZW\PaVaU^U]T[UPYXd[ZQYVc\VVY^\YadW[ZZZW[YKS`[^XWXUZeWZO\^W`]UVRP^R\U_[_UQU_XWR[]_bgU_Y_QVOZX]`_SZSaUY]ZT^gYT_SSUVXZR]]Z[VW[X]TX]\VSZ[PWS[iZVZ\RPZVTZ_]QXYXX\dO][WUY_Y[\bRdXNwOSQZW[[\\[]`Z\USY[[dZQW[WR[f^TW]Z_ZOc\SaW]QXbO`[^^[ZVUaTURY]VS]_T__dPU[WRXX]]ZVj`Q\[]YZQ]`UYOO_ObT]_^YRVSUYdNV]^d^R`Q]T[aZN[SQbUWbXRTW`^[OYWaM^L``cZ^\[TZ^V\daPVU_ZYbUY`\aUSS[R[N]TV_MT[]^]RT^USSXVSWZTWWQVZ\`WWSXTScSQ\e[Z\XUda\W^]h[`WWO\Se[cZ[T\^`RRR\\\]ZY\YY^X[WXUWZYUSZXXX[ZVYVbWU_XWZR[T][WZGZ^PQVVaSVWYUZTXX[M]R^\[]T`Xe`^U\QX_]YVTXi[[Ub[SOVXZYXZ\ZSX[\X^X_ZZUUa]RN`^[Zb`TNZdZT_a_PdTXSQWSc^\WhVWOLV`YXXfVYVW[c`UYVg^W]Z^][VZ\^V[]]`ZkRYRSR\X]VXW_WZcSU\^\U[KSXYTYZYTZZ_[]V`Z]ZXWbW^ZUZT_cWVYSSSTWVU[]WVY[e^V\UZWSYUV]V[Z]\TZQU`XWbU_U[XUX]]TS`_aV][YhW[Y[[[SQ[\WVY\Z`]XYWWQ_W[MX[TT\YV]W[SW]XWRY^X[^]\Y_VWZ\UYWWU\Y__`WYWZY[Y\``]XV]\WXX\W`S^ZZYYV\R_[[ZY_PZR]]`dS[[UZ^SU]V^[]UY^e`Z_]WQZ\W[VSYRZXZ\Z_W^WTWXZ\cPQTUR`ZcYR[SX[TVZ[W]ZY]TZYXTZ]XXQP\S[^T]X]e_Xe[MWYRY`[Wa[_X]QQPS^XTVReQQWY[Z[K``TY]WWeYZXUY[UW]XU_X\US^UYW]V]]baZSSVX\[[[f[^UXUVRY^LZcXSVTa_U^\cXW[fWTnUa[QX]VVYYeWV[QZX_UiYYVXYR`T\ZTed[^\KeSV\[[R]YW[UZXb]XUUX^STaXZSO]T\V^ZUYaU]USUZ[aNWSZ_\ST\c[^WSUSWWX\ZSYX^Z\T`dVSX]aU`]ZYT`_UVn_X`bZ\X\[`ZcVW_Nf\_MW`YR]XRfTaY\Z]a^YZTX\Wg][WWS[W\gTVWYQ[Z\^R[^WXUX`]SXRT_fZS\X]^XZZWRZbaV\YbV_UW`_TY[Z]XOP\]\[\cWcRV\`fZS[XT`R]XVZ\U[WUZX`^VaaRPRW[T`XNhR\_^^[ZaU`[XZYWh_Ua^gY^O[TV\MR]W^TTZa^VRXcVWOZ\bYZYUYZYT_WkYUW^UZUW\`X\TYXX`e`]WaT\[SV]_^YRYR`PWR]RaS_\W_]hX_^X^P^VXUY[^]VU]T[\ZjOW[[bXRXYN_UYUXVYZ`XVRcWcZW^daYZRRaTVU\X]WZWVa_V^\caW^ab^[UW[TTXYXSW[Pd^a][\[WW[ZTZ^Xb`UZZ^UadXXPYZZVSYSXVZ_c]cYYQ_YX]W\TY_VbWZVUXWYU_UVSZa^VbZZb]_ZZU_O]X\]]VVXUY^g_WUQX\T\ZXaaY]Xb]W`TY_[^XfO[^Z^TY\VSYYRZ\^Z\V`]]ZZVUT^YTZXda`[T\YXUcaRbW^\V\VZ^R^YZVUQVP[[[`ZR\RTYWK^YZYWcc[T\Wi]aYSUWYZXYWXWcUX^ZYec]^]V_TWW\UT]\\bW\Uc_UVSUZTU[\`]NbVX]a\[YUWT_X^^c\UZd^STW^VYeM\_TX\S]]V^^]^VPS]^WcfZU\WX[VRWXXRT\ZT_T^XOVXWcUQaZY]X[TX[V[^[^Q[cX\Z[_XZd\YWSV`]XYSYZSUY\YZPPXXOXW_W`WT][W]QUc`Za^Y[RN_X[U\SYWd`SZ[YX\W[SY[`ccbW_`WbbU[_TQO`TT[Xb\RPXLVW]YYQbSTV^[OSY^Y\`Q]WiRNSV_PY[XWbXXVbVZQQU\[^Z\YSQ_QWdV\QPW\bV]SYRcW[Y\XRV[YYWOZVXS][U\LVL^WX[WYZST_WU^YZ\YUZWV_Qg[W]\US`\\WYV[_XWWZ[[QR`\RVfQ`TS^^QTZWVWUeXUObYST\YSb[[VWYR]W[\W]bW_^YZVQ`eVOZd[Tb\^SS^^ZVYXfVXReRfafRUTWV`^a[VX]UdU\^WaT_V[a`]VZ^]bX`WYS^]UUXV`\ZPYZSY^\ZXZVW\U\XUi]R^PQ\OZW]YY\\YWZ\X[da_TXQWUeU[YU\\PZS`[X]UYYYRYTV\Z^\aRPU^^PjVQWZ`]^\UW]YUW[SZW^]\]M]X^XWVhZUX]WS[SfTU^P_hX_]Q^`]_TZZUVY\ccQ^R\XQT^[X[]RWkTN]U\b]_\YWRfP[P`bXZ_b\^\V]\_`VX`V_ZVYHRRQW\XPgWV^YVUcXX^ZQW_QUU]a_\acSY]e[Y[UVdWa`[TT`b^^fYWYUZWO`ccXWVXTTTSNXV`bZ\`Vd\\Ua\[`QWW[][XT_XS\ca]WLX]\_ZYaVSP[XU\[[Yi^YV\X_\[`UUTYUT\[\WSY\Y^`UVWY\SZXVTY\T_T^ZW\TQ^_ZPZa[_dRWYU^\[_]WYVUXddZVPTbY\OS\Q\RQe[R\UTXcc]_X\^[^^\V`ZU[\^`Y_YSUa^S^]QVV\`X\]YYWVTZ\`Va\VaZUPYYc]bVX_W\TYYUYS[ae\TTWVV\ZcUXUUQaQY^YWdZVT\X[ZVQWVS`\i_W_UVYUXYRXWS\c`WQ^cQSYXa[YZ[SUZXW]VcUPXZZZYZYP^X[[Z`[]QcmSRWWYTWV\YUZb\\^RY`[\`UZ[cZa[TaRWZ]PTTRSV]\Xg\U\bXh^[XZT]UZc`U`ZZ[`W_VWX_^]W^T\SaY[Y\VYXWWdRgZ\dY]a[ZW`VYWVaU[UY__[Q[SYUZYf\_[VZ[[ZORSWZaUZ`ZTYX_P_a\X\\XS^][PbZYZ^TSV^ZXTW`\aZ^bVSYXYO^U[\\\ZVZTUcTVVaR\[S_^UVWX`Q\fWVaVU[ZY`_V]]\WYW]\WU\ZXSdX\][\ZSZ]QVea_\SeWXXa`]YZU\QYJ]UZYRgYZTY\U\`[U^dZL^TL[b^VRRY\`]VYV\U^]S]VWWV\S^ZWTSWUbYYSORM_XY\SSYYWR[VQXTW^Z\[Z]_]TdY^gddSWW^I\Tc^UQ]X]ZeXSa[SX[bXXWZbRYP`YUWXVZX\S\UWZbZb[^RYYSZ\\\SU[[]XSKXR^Z^Z_[T[XW[\MU^WPbUVVXXcW\S\X]][Z[\T\Vc\]ZTYeeWZ_UZTQXPYYXkXU_VY]^O_XZ^[]XXYV\dTYLX\W`h\[UTW\\S]S^]ZWPJOW\Xe^fRZVbQPTOb^aS\dS[XYiYQW^YUS^RWQW]Z^\[V]^Q_^SO[TY`V^oQ]^TSZWZ[ZZ^XWVg[YY^f]RY\P^VX\VYRZ]U^Q\`VVVU[_VSZ[O^V\W[`\S[\ZX\W\]biZbVX]iYY\\UV_aYWUWZUXV]YeX^TSXH][YOU`Z]^XMNUXWdVUWUVfXWROX\[afYS[bRPXVXZTX]XMN_SS_]aVZZWaScSZ_VXb[W[]^ZWWPXca`W\[OZ`V]\UU[ceRRVb[\d_WLYQYYjcb[][XSbP]\[YSYZ_YVSSY\ZO^[[VXWXWPVY\b\YYXUYU[bT\VR^`_b\U]S[X\dQTZU[YcV[eYYSTYLUUV_QZX]^fWdWZYR\ZbY]Z\[S_VdZVeZ_YZZ^]`ZWR[XkVQ`XX[VRVWYbZZeZZSXa__OeWU][c]Z_]RRZ[[]Sh\[W_cQWW[]YhbYU`]\\Zc[^^[V_]UY\UVeZRVWXYU]cWSV[SUXX]^Z`S[Vh`c\WP\ZUTU`\QPT]Z`\YNZ]\WU^[[\[W`U]WfT\cX_U]Z\XT_S]]ZW_WWb]ZY[W`ZQScXISS]VQ`_T^d\]Z^[XUZXSgPcUYd[W_mcWPZ`[O_OW`YR]R[U_]\Z]`Z`R[SY\bWR[WTU`[hZNaTc^YU[\Y^gWVWQTe[ZbUVYVTT\[X^VU]X\V_[_TO_cU]^\UZQU[[b][[ZWV]]MYbN_W^S[WVYOd]ZUTY[R\gc\UTZ`_\ZY]aZ^V`a\V_f_WUZUZZ[]T[V^XYW_[Pi]dUbea_aX[_YQ^Y^R\ZfSZ\[W^YUZOYYZ]ZXS[WW[XWXWVW[\Z]U]`[S^\Z[YfRZ[VbXZVgYcZY^d]\[[OWZQXUTb`b]`Y]VZZ\]^ZXMYV]dZT]YZb[`\SYZRZYYW^`[VRZUY[W[^YZ\]RXZ[YWSXcUYTYVZ\UYZZbSXaa^WUSQS_`XS_e`N[TVaUYdRTPZT^Y_TXYT_TT`X[U]]VR]S[VWcRZ\X^X`[U^WbW`Y^Y]_VYb]XVZY[SU\VWUdMTVZUT^S\ZZW][ZZX_SZZVVZSWT[S\SVVZU\ZWY_TUSQWZ]ZXaU[`_bQUS[XW^W]Yh]aVZ\][\\[T[^R^[\\bWZ\_[WYXUWa`aZVQe`GWVTOVVZTYaWXUWTXd^UWYY\SUXWaQZRPdWZ`YYNZWW[YT_aVVb_T_YP[\YM_YRbXUXT[Q`Y_PTLPS\[USPZUZ]R[[PY[RX^WWRfOTT_PZUa\W]b\\[ROWTRVW[[[][TZ^YZcYS^^U__[ZWV^XUU\dY_ZRV``YW[V]^Va^ZXU]\bY^VY]TYU\[V\TZ``T[]\c\UUaZaWUZ^^ZX[\VN[X\V`^_YT[TPaa^^Y[XbTVWLURYY_YSYbSY]VYVY]VTRVVVa]\b\_W[]YYR\XW\PZ[Na\^[UaW]a]][U\YPRYURcY^gPeXR^YR]Y\TPXR[]^TWZTX^]`TTQ`VQYfWd`YXVRPOdMWTS\\OTUT^UVTXZ^WYU\XX]WacXU^^ZVTUeUX\[ZZZYV^Y[UXZ\Xc^\RaMLZe[Yd]VXT]L\\[eU^aZ[[[Y\e][VXbXUURaSV_]TRYZVXYSVRV__W_\bQ[_XXYb^TYWVYbaZXY_`XTTZZVZW\`Z[ZZT^WPTUd]TYY^]^dTRY]TV[\]ZV]]YVh\VQXZXXRRZYX[Z\\XW\O^XZekU_W[UU\S`UZ]aZV^_YTNZ^bZS[YXYXQVUSUZ`]WSS]Y[[W^^Z[W]aT_R_`QZYORaX\UK]bYXY^R_XbX^Z`UL^^X[LRPYW`_VVYXY\V][[`SZeX^X]`RSWV[]cSY[^UW^]U\QRMW]d]SZZVa[ebYX^SZ[Y\UZ[\Ubf]R]VYa\f[WQ[\`UZZW`a^\X\[QO^YfUYfO\YU][YU_Y^XdTWO^ZXXP\eXVY\gSdWZ_UUOYOj^Z[[QePSi^WZ`TRPSW[YVUNXZU_[XVRWOdX]gTSjXcTSW_cYO\YQbWaVTSZX[W\X^X[[XY^^S`R_`PR[c^`X`TP^[Z_\WRY^e[MUWPQZ`ZVY[[U]X[\S]ba]Pl[T^Z]^T\OWSSYV\S^UXVT[PaYU]gZ\UX`WS_QN\USWZWT_UT_[RN^RQQ_X^^SdSXXVfUU_QPYXRX^\T\XYSa`dh`XXWU``\ZZYdaQRSZXXc]UZXYWPVb]Y_\RV\PO`]SUe]VUa\W`VaZ_Wbc\LNMYTXgi`_Qg^aZWYPbU[TZ[YVXXXXXOZU[\]NRbZV_TWUU^^X^Y^S^SZTVeSQW]jR`L[[VP_jY`_^\LXZ^bMXg]W``M\U_\\WSYhVcTPb^Xi_]ScP\[_VX\PW`]V]`^ZTc[RSSY__[XZ`S^]ecY^WW][RWV]VZ[Y]WMX_TQXeYfTZWeSX^XZTUVX[J^V\c^^ZNb_T[UZVUYSVZTT[Y]SX[WjZXPPV[^dUSU]WVYP[gSVSZbZZV]ViWZX\^VTe`QcdUXY^a]ZZT^USXXdXL[[XQ[[YZT\]TZV`dUUPR]^Q^Z^iaQ_[n_bd]\]_ZRUYZX^XTUUVO`LhVWQ[T]Y^\`WSN`U[RQZ][YVf]aV^UWUPZRWUZVWW]bk]]ZZZfUVXWWUaXX_Xh^_ZKYaW^SSW^S[SV\^\\R`Y]ZaZS\QZZ]\cYVZWVK[^X]WU]ZXY_bfMSYW^T]Z]_TOZVUU]\WXba\S[]a^cXRbXbYYZVYTW]\UXPW]XV`ZVXU`h^Y\\V[\YWiV\SU]YR]]]YVaSae`[PhdU`\]kT][S[VQTTZXO\[R[RdW^VUT]X_`a_WXT^V[^\\ff]LYPXX[c`^^]VVa\Y^[YX_UVWVTWZVgYX^_S__XX`V]RRXXYX[YYZ[UPNgPO\ZVWVWdWWZYbYY^_VV_bf`[XbYW\]\SVWdU^VXYYSXeU[XSaY]Y\V][WUT^OW``TRT_^Xb`_]VZ^T][PY\_[Y]_\ZOXZX\\Q[WS\dS\WX]X^a`VZ]OYZ\YTXZW[_]eT`XYNZZT\_\UYU[^aaXbOZVX_^TZ`T[SWUV]ZX[ZY_WY\XYQ]cWYW]TTTRX]cUWQYZRb\UWZZZc[XTVMZS`Wb_YUe\\ZbhV]Z[[XUWYVZ[UZ_]]cP`X^fVTYY`ZT_\SXW^\WYWZZV]]i[XZZVR\[XPW^[WZ^VZVWYRZXPd\YZW]^ZX]WVXa_\[T[YT[cX`\Y]dW[]N[XXX_]Q^Z^aSYPXR^]\^_W]^]dZW]]WYS]RT[XVbSZQUZV`ZN^]\VW^YRZVR\WYPY`VOW`ZWZUVYYWZYcTdU]R^\[_\\ScSYPf_ZWXVdXUOW]VV]XV^Y]]aSRTVUYZZ]ZZZU\]RSRcbUT`WT]]acXdYQUUV`ZY]`Q`U^_^^`Y\VadXVZRWWUZ\VS\Ub[ZWWTRTWPk[WSZb^XbXTXEZUWS_\Y[]SZV_TZ[NW]U[RT^ZYYY^]WZW^bWY]dZWYQ_`W_QX^\VUW\XW\WZhZ]W_XZYYV\a[ZXXXYYR^TZ]X`Tc\^Z\R`[Z`[][]^WV\^\U\gYRRWaZ[V]\WVUXZYXa[YX\YVXXQUQSV`TRXVO`XWSeT^YZ^b\\Z]WYZ`a`Y\WU[WXYSbX_\Zc[XjXQ__]\\]\``[U^ZPWS]VQVaUZZcc\^YV^\b__ZbZc^\WZUY_TY[WV]ZVaT\T^WTb_[WaUW]RY[S\WSXUSaWWWc]\[\RY\RTZ`ZX[]U`SVYX[]]W[T^Z[VZP^^XeXTZ[cYY^[^XSXW_RV]XX\^SY]X]aS[cY[]_][Y[X`]ZVZ[\`SX^ZVY`W^ZUZZWX\\[WW]RXaT_ZYU\YYY]\UW\W]VXgRWW]VXd[XaXWc_XZ`hZUaa^XW][X\`_^[S]`QST`[aZSYXV]^]\YZ_SU[XbXaccWX^TT\V[]\UX\X_ZZT_\bVUWaZT`ZcY]Y[UNWYcbT\\\UYX]UZdP\XXR_XQ[]`]Y]Z\XU[Xa\VY\c^Zbb[^Z]\]UUWTZ]SVTZ\YYbXTZb_WTY[TjcYVWXUUWSZ_XUW^]bRWY[Y`TSW[`a_[V[^X[Za\daQ[\U\VW[c\UXV\aT[X^d\S[YWXTYZ^Y]\T^_ZT]VXRcZ[caTQSS^TR`Y\Y][bY[LY[QZTVUM^V\S\UXP[[YXURdQ\RTS`T[_YYQXZVOWW[YYaT_[\_VZUUS\VQU\RbVVZO^PaYRZ`XXYZW[VX`]Z`WcK[WRYZ[d[]UVZNWiUaY[[dXUY^bdUe^TUUZe_VdWVQcObYXYcUQ[[WTUP_ZY[dQVTYW`kV[]K][\Y`^RWY`VS]`ZT`Q]Z^X[ba`^TY]^bRPdR\SXQY]Y[NWbT\S]VTNRZc\PZURYSWR\XRTc_RZPa_OOVWWUcZadSWQaOVb\\YiW\NW`]_XY`TVZ[RYWZTO[TRYS^[RUP\[^OWQ\XWQ[NW[b]`RW[ZVSZOL]`Q\_VYX[_UaPYi[a\P]`^^^]TQZ\_X[O`OU_V[XdV^V`d[a]NUO\Uf`X_[]VWQZS`T\MR`^e[d\W_a`WZXTaPU[YVTWX[WVXgUb\\W^f[__WPaX[`Y[aUSW^`^ZT[`ST\Z\]ZQ\[]XV\\XRZeUOXaZOXZ_dXXVWXXMUX_W^PWO\[YM^NRXY[\_WXRQZTTZ\]`[dWX\`VX[SfLPYZQSWbY^WUaaRRcQTZZ[L_XUXVW_^SYVP\JX][gZ^ZbY_`XQ[Z\__Z\WNQWWZSZW^\WO\^]W[``aX^Z``gW^\]`WiZZV\``XP[eZbY_ZX\UZ]Y]]eWWWU]gaWZW_aVSa[T_JQRZS_Q\Z[\`Uae][Z[]OdZUYhaW^ZYTU^_daVXYZXWY]PUXZTY\]U\`Y_X`TafWVY[V\YUT^eYRRM\SXL\cWSaZX\PdYZd[^__aVOVYSZYW``USWPa[]__UU\YZZ`SZZVS^XY\VZS`TYZSWTWiQ]RZY_V]WZUXUW]PX_VWX\TTZa^Y]TX_i\SZV\^W^[[YVVX]Q\^cX_OPcMTgiYZQ^VVTiWZWe^XZP[UU`]UfNX\Sb][_WWTVY_R\[OXXZ\aVcT]T[VWTXa]_Ph[X`SW[XPVYgU[ZV\aV`eW_PdUeUZU_]TY`aiYY\mZ]XYXWY_SWU_^]jYU[[X^]f]^TPS^`e[W]eYYZY]VX^c\aXa\ZZ[W\Y^gY\`[UK^ZS[^W]]``ebV_V[Y^YVTXVZcVWZ[YX\ZY[XYTaa]^R][YS``\X^Y[]b^^]eT^ZV\XS[TWT[df\`V^_U[abX^b[Y]\WWV_aW]``[\Z[\XbS\YT[WTZX\_QcZRe^\UUKaaYYa[OZQPSaYV]]\n]U^[`WaY\\_\[Xa\^]aV_Y_ZVZ_VTVYQZW\_gVfO\]Z\aa[\W]ZYZ^[`jZe[eUdc`RQ[VXb\`XXWYYe]UaZXXVZ^U[\XWXYW[U_ZX[[WV]V]ad^]`X\_X_QY\_YRX_ZU`U`Y[_Zd_^`Y^Tab_QbZ\^a`YXX\Z_]X]ZTY\QZVRXU^^^R[WV`\RSY^Y`XW[TRUYZ_ZO\ZMee\SV^`\WS\^WX[\OT[[XWXaMUXWcWVZXZYb^Y[U[c\cTTc[a\USX\_TY`^\S[Y[XRXY_UURQXZ^eTYYa\\^]Z[T[RYV`R]aXMXe\[abWZVSWXd^[MZZahYaSiYXR`ZXQP\X\daT]Z\^W][ZZU]Y\dcW[O\XZ]U^[TST[`U``R^_RPXYY`^ZVPaUUZa]T[YZVZZX]RYP[[[XR[ZXaZR[aVUZQ[YQ[ZXRUcU^^W_S^RTZ]V`gZYVS^SXTYXaWVVX]][XT\XaWSR`XW[^XZUVY[WaSVcY^[WS]\^[^W^\iZZg`XZ[Q^`YXfX^R`TTTT\SW\YZQY[bWT]a`\UXXc[ba_`R\^[_`Y^Y_]^TUW\[JZYWVQRW\RSYU}^ZbV[f^YV[TXZZYX]k__g[xSUW\Y\][PV[\RU^\TWcaUWX[UTY\VYUR][XX^RP[_TeY[TVQgRW_U\YXY]TUYX^XXZ`[e[]g_TX]WTW`TUYTV]]XgXXX[UVUU]`XTX\X[WSY\UWY[`WVVZLcZTXTWZVcSZXeRTXVU\V^b\_Nf\V_eW[WQZ]ZSUXYZWT\UUNZWVaeWUZXZZYZY\Z\X_VW_VUVR]VZX_\WUYZY[_VV`Y]W_UT_YX_WV]XW\^\?SW`XR]`XYH[VX[_\\]V`]aX[O\\[^W^_XU[VXaUZVOU[YS^\ZS]\^]Y\[PYVZY[WZcWVPZXXW^S\cZTQ[VSZV_]Z^Z^\UT_`\a_[\T^a`TXY]TZ``QPZ_\EWbX`WYQ]VTZ_w\Y_TWb`ZVY\S^]YR^b_`d_oWTS\]W^R]XYWXV`]ZYdbZZW_XYW^V@WTX]ZZ^]TS]XU_Y^TUS`VXYSXVVX`\Y\S^VUc_^dY`cZ\VZ[VWaW[XSWa^[g\[Z]TXY\WeVZYY`\U\W_WQWZaUTWZKg\VXT]TYec\]][^Z^ZaTZaX[YpXXdhTU\V[a]YTU`^WY]XUV\ZYabRQ]X\Y[UZ_]WXZ[WX]U[Y]YZ]RXVSYWXZ\XW_P]UWSV[]Z`YW]]XZbWJ^Y_RU[aZbWV\_[\b]V]UdZ`R[e\ZWXZZT[ZUXWZWUW]\V^_[VY[b_Y_W[`Z[Z]U`cWSU[\PR`U]\TWY_UXXX[\[TY\YY`P\`Z^YYd`\cWSZYVU]]O_^\U`ZgRYX`O\YT]iP[U_`R`bTKTZ[ZRZX^dYX[Z\ZbXVZ[VYSUneZP^YUVZYYQ\U^_R`\W\SXWVRT\^V]UMaYX`WT\YTTU`RVX[fRX^UZ[\VTfZf^`V]SUZ[Y\^ORXWQ\[^YhSU_V\YOU`]WVTZU^^WU]eTSZ_TY[TmRYV\V]Y`TQa\\ORR^QQV\\UeZYWWTVgPkTYZQVWjV_Yc\SdWT\YSPWP[[bSV]Za\khOaY\YaYOT_bVP^ZV^]aM\YeZcSYXSTSUY_WZZYZ\MicW^WYWYZYZOYX_`UbWcNh`XW^I^XcTZ`UWc\[UWg\`[SWWYWaX]N\T`[_WSaOV]OMZ]QYX]U\_QS\XX^\XkW][RaZZdWZSRXd\Q[XdXT^`TOR_WZS_`[\TY^UVVY_XaYZ`YY\[[X]^W^WW^VV_XYPUXV]XZZW\WY_QZZYX[TaZX]eXZUZWW\^[WN\X^WYZ[XZV`bWU]T^X[[^WX`VZYZ_V^[\_T`YaW]XYVbSZU^PX`YVe^Z[`S[]WT\X]\ZY^YPZZVOY]Lc][fV\XX]XQ]R^\^^^YVSQ\`X[U[SVSW_Za[YXYdYWVYVQc_VXV]ZU`X^_V[YVXN\ZZ\]g^]]bVTcXYUYd]^_fZcUWZ\YW_^ZY[_`QWdTUeT]c][\^W\XQU[VWTTTZRYYZ`ZS[^[^YXXTW^\T\[]ZXZUWYWTT]`cZV[V]YWb\SMVY]R`WWWVWZ]`[YWWUZ\XYeZe][X^VQYZY[_^`^M\aYNSVLbSNYVZeZdLjUMfTWUWVUa\\N[VO_ZY[TXVUp]TTdaW[YZTUVTNNV[VWOYUW]NUcTZZZPYOYZX]STU_OYWUTONfVMFcV[XWdPYR^Q^VVcWPb[XRP]Q^^g\\hQP]^Z[QUWVYZ\U]cUU[eQ\MYVVPZMQ\S[YNO[cWXb\NS\aRYZ^bg_ZRbULVXX^nfSQXSSh]Q_[YPYQYWQYLZ\]TVU`UUSXcT]NfSW_dWXXWUYYWaTVcXeV^O`dWj\T_UdXOY`V]RW_UTQXYWWSZOVSi[aTM[NYcYYNbV[U]ULYZW[KP`ZnR\VQSd`N]a[nSORRYZSOLXY_ZbOMbRUXWbWVZSWTXUUS_aXXUYI[X\Y\kTTbgUhTa]aXe\_TN]PQ`aa]X_MW[IWXXPUQQ]Yb[QY^aV``V\TbZ\UZ[ZXNRZRYd^P_S[_i]UT]_XXTU`lWUSYYZde[Si[TQYMZWXV\YZ^[`NVV_WIZ^`UfYObTSZV^gXXf`^VgZUZZTac`\ZXV[WS[[^VVQQQSR][UQYPVbY[M^gVMpRR^W[cU[]aR]^W_[c\X[`SUZnP`UQW^VXUZ]V[WW^]^VS[gVlZUYZZON^_XYQRX]VWRMTeNY^RYPZd`^[cOWkXQ_`YVS`VRWhXRX[^i^YcOZV\OP`YY\g`a^YMT`bb`eXYZcTW^hWYWb^]LZ__]Z^[YfiUc_]TrRVSZ|VSRPcONR^VYV`UZOQ_PX[PPaZ^fVKeX`[QR\T[[V`X\[QR]]cZTafhOR`TTTW[\[UWR][VSS[[aX^T^X^VYX_\\]gZO\aVXUVWYZX\LWeP^[[^[NWV`_WJ[][ZX[e]T]`b\WWXTTc[Q_OZa[`W^b^^[^ZV\YTXXbe`WZS^S\W\W^L\[WaPS\_YhY_Z]]aZY[gNcU]TT^YU[VUgYZaOZYTSVR`ZUY_YaZSX[XUR\\\[_cXZc]__NbRYIW_LZ\f[U]]ZNW\`S]XVUY\VX[YW]X[OLYY`^`X]WUZRXWMUQQdTP`\\`GTdRVVXa[UaS]VUSYU_S]SPc\M_VTcZXV_VObZQaS_gU_]MPM]X[YWQWWSgWfYLS]_QZZ[a^PX^YZ\^QWcbY\NX^UUX[VfWYWYRZNa[aZ[M[]W[ZUV__\Rbb[][PTW[^UY]X[cY`TjT\QSac[UV_gZ\\^VW^^ZT[\Ue[cbUUVVU[]UWY`YXVUT^]XYRXWV\TU_[]ZXRZYYYZQUVb`YW_YYZUaZWV]V^YfXSSYVW`d[b`XZ_aW[dYVP[TR[cdW[Zg]X[XW\UXZ[[_VXPNY^[XQ]T^XW[QaY]XXUUS_S\VbYS[YVZX]\QeV]^U[WSiW\i^VVbRU]YXXX^`X[X^a[ZZ[[XYW\\`XY[aY[ZYZX[Y`ZS]Y[`\\XRW^[hNQ[^XRW[V`\Ta`WWaR\V\ce]bXPXX]WQRVc_Q^U[[W\YX]Xc\XVWNb[T^W]YV\b]UZYTPk\U_]\[\ZWTYf\bPV[[TTV][_URXZU]VX\`]U\bSXUZbaWZXaZZZXc`Z`YaZUZWRZVW[\WY[^]R]^SY_SUYgZbXY_`UfbZcY_UXc^]YUSXR[[RaSRZYVUX[\X^a^\U^UZ`QRTTYUR\OWW[JZ[_VZW^l]XWRYS\YTaca\[OXRXZX]O]RTYcTXYXSK[YYW[^TV\UVV`]`ZgVTRZTda\jTcbbWaX[UZW\_[abS^UUaWk[WR\XWN\WU]YUeULgW\YU\``STYZ`_ScSS[TY^\_]_U^\ZT]`W]Y^SX`cZ[a]S\]X]^aR\\d_VUSTYWV]OVQZPTX[U\Z\R[]Z]][[WTZ`cbb_YWZgPXW_]Z^Pe\[\Ve\XZSYfV[Q\eR`_X\^YR`dW\^UQY[UZbTSbWS[YTgYWXVMW]WS]Tb`TZY_RTVa\f_[XUU_VV_agW[YXb]`a]YTZ\c`U_PfRZ\ZTd[XPXP]^UR^^bZWU^T[W]Y[TWXSNSV]`W^]UYXY\\]WUVQ]S__c^ZZd`Z[]feS]RUYWRR`LQ\\`T^WUR]ZW^`NYSVcab`RWYZW\]XfUV[YZ\PSZY`aZTX`TX\]_Q__^``fZY\SZ\_T\QX\Q_[MWV]V_UNYVV\[`Zd[[QXY]W\Q_[aW`W^X\X\YXRUY^[S[]XM^_ZY]_\YYdYXX[ZYXUY\]V`^]ZZ`QWW[WYYa[XW^ZUa^VW]_c\\OYZ^ZZ^[QWS_[ZVRMZYT^Z^WUWU_^PY^USUUaQXRR]^S[W[^YTSX`ZY_\WUZQ^V`TUW]]Z^WaXUYW^Z_QVP[XRXZOca]YVT_\_]_bWS[ZQ^cXXVTaYWdWP[Z\cPZVhX\XW\\bT[Yd]YZUY\VZYYT]a]ZXXV]_TZVX\SV\ZTR`SeWVZZZXZSZdWSV]aXPUb^Y_[\YaY[[_WVUWYSa]ZPURRZU\TYTZYV]V_[^XV`^XV_\Yb[c]^TUW^[VbgYTYZaWY\WSS_^V\UXUSZX]PabY]aYY^T\VadS`[[X\]be`_]]X[Vg\RV\UV\WdXh`U\\[fYYXWX\^]\Z[VWf]\V]T^SS[WYYRY]V\e^U^W]]Z^`ZYVWRUU\dXZ\VZ\SN`T[bW^\Q`X]X^_UYW\W\XW^[pb[aUYZ^NZ^eZWXWd_^U[Z^Y[VZS]U^X`YS\\[k]WS\`YROXgW^^VY_]\`R[R_[TV\XW_ZYQ\VXW`aWYZS^WYSYY\[Z_[X[Z[cYdR[WZ]W_YUXTbMbZWVZX^V[VPXVT[_SVVWYXi[YaT[ZW[^\Y_ZXWX[Z`\[\V_Xa_a``bR[\jT`ZaX[S\[Z]\Ta[YLZ^[XYVRZ[YY[\YY^WZZUVU\MXZVU[b\WWV\S[ZUX]W^ZUU^`\`N\a]_YTYZW]`UW\YXXW\YZYZ\]U_]a]USU\SUYT[W]bYZ]`\T_ZWRNT]a\VZW[c\\W]^Y][WVZ^T__[[QVYX^UPdUTV]\WRWW[`a\X^]T][V][QXU`S^XW[WZVU]gW`Z^\]\]ZXYcVYX]\a^W^[[`RW]ZV[`^]^WYXT]U\]T`XZO\YTX`YVV]]`UZScZV^aX^\XV_RX]VVZY\VYZQ\XY\i]W\XZWdXUYRW_UXb]VZYW[\X\XWRZS^XWU[RXRRZXZ]X_][VXYX\bXY_acT^RUWWS\TSZUS^[U^[[TSXTVX_P]MZ[eb\WbZXSW_Q`W\dY\WZVaYQUpRRU^fVZ`[[g\]][_aRXS^MYV[YYX_Z[YWTYYTYRXcZVV\Z_f[ZZYZjW[hPV[ObVR[P]KQliiSNZ\[WRd][VTSejbc]`QURR\WR]ZTd[[^b[Vc_VScQSUIO`X[gTX^`b`a]\dRQib[pfYXe\VTWfYVTU[WQVZ\cRURQTfZ]RSKV`VbYS^SQT[h]^\ZUQ]]eOYYd_[VZJ_\PXUa\`bUWSZWahJQTRcTTbiT[ZZkZWddX]PP^Xi]WW]_]W^eYRYUWe_UWZcdZTQYg[L\a\UQb[U^YU__gdO`Pd[XVSaROOfYVZVaX[U]ZR\RWQP_\\daZ\RZY_XY\VnU\[UUVXPSOSX_TUV]USZTSY^`ZZSX\MaX]^Z\]ZXb^TXV]\X[[S]V[]XUVUeYW^U\X[fb[V]Y[`c`WcYVWZZY[YcT]YR^Y[VRO^Y_UZSWWW\bTV]^[Z\`cSc^RYWjT]X[^[__ZZVd]jd[[\RXbX[UQK]WWO_cXS]V`ZXVcXWQ\ZS]ZTV]^WQZ\]Y]UWT[VRSTYb\_U^ZXWVgUg]S\^^]SVPPhZS\]XdQNUZWPXZ[^RVQY_\UUecWV^XaX[R[S_dZ^YV]gUV`a]^_TUV[SYZT[_^T__RY_Y\WeeZ\U[XZ\[]WY[XWZWR[R^[[VVdXUV]]VV^aaSc]dRUZcX_YT]IS]X\\Z]Ua\]fW][]UV[d[]K`R\Z\[[VWYXTZ]gX[YWZVNbSX[c\fRSS\UYY]_a[XbQS\J\^N_\[RZZUS[][WX[ZaWV[]WR^^[YZXY^\Ud[[Y\XTYVX]\SXXY\TZZXX`XTX^k^XV^]V\\bcYL_RVZ__ZaY^[V[[T\WT^SX[V^a\WUT[Z`\YQ[RW[WWPX^ZZHQ\SU]ZhXW[\X_^YRaQa\YW_ZVcU]YS_ZT]Z^]VZ^XWVY\a]chPXZa\`]RgY[VZQZ\N_chTVZYRP[TQ]JZQd^ab]Z_U\YbVYa\Xj]^[cfVYPb^XUO`SXY_]UYa\[W^][_XYV][XZdY\VU\`]WZcUVU`dZY]_[_^QQYZdaYXQXUcWV_][cX^^VcaZeX_a^]b[`ZV\`Z_^T]b^YNc^\MWSc]a[_ZaWPa[XThqf`^YU`V^X\SS]\[QY`]]VW]]Ue[YVYXU_cVb`\^[V\_X]X\^S]`^RYW^SWSc\c[[T`UWV^_^Y`WZ[^Y]V_SZ`aX\Z\VY^XUWUUXb^Z^X]U`X\XX[aVR]S\^SZ]Z_aU_Xb]`_`^aTYQRZ\UZb[X`ZaaabZT_[^__V_QX_WRd]SRU^XgUVVVP`WTRX`^ZUWPU`\\VPZYd_Z_W[]X`V\[T[SV\\SQ`VXT`Uc]ZT^Te]WcZY[cU^d[ZY_W`XaX_W^Y\WbUTS\^Q]]SNaUZYXV]WXU\W\Z]TSXZ]ZT_TV\T_RN`^UZ[X\aV\WV[bYaXYW_[]ZYX]PQT]OXRT^T^TZXXfV\Z]PUUSQ_VVaRWZV\[_d\Y^]WXUWZ\VWR[X^ZY^]USd`UZ\Z\YcbRbSffY]a[TUXOSXXWZORh[_Y]X\\WZ[YcTZW\SbQZY_dWX_Y[`VYSRWS]aU_R[ZY\UUZ[TRYT\VXZ\YU_Z[]TX[X`\TU]W]df[WX_SXVYTYYUZVbNVWYYWYWVW\`[Sb\Y\VS]YWU^ZZXbeV_V_XYUYNTiacPN[hRhZ_\R^\_Y__]`NVSY[^Y\WYX[ZVb_fT]]aaX_ZUVUeZ]^U\bYWTYc^`XR`ZZWRd[_RaZUQZY^fU[OUZV^ZUZ\fSWc_]OU]PU_V]YOVRX^YWXaPSU]\XNSa^]\ZRf]WWT[ZTUZ[XX^[X^QT][\[]YWW]Z_T\\[TT^dUU\dT]WYY[ZVc^Y\W]cVb[\[[[T^Z]`WUWa[\ZTSYd[U]TY_^YVdSWYWYX\^YTZYS\^NWTh\XVOV[ZVabZf]WTbQ]_YXX\`aWa\]]\UV^eb^bWUZ[L[RY`[__Ya]WXXU^]RUUWYYMb^`_`W]_RXX[VUS\YdU`\a[__\VX[[S_^^[YY][]WZaX[`]U_MQ[\c^VU`Y][]Y\ZZRd[YXZ^_c_a^Y]Y[^cQ[Z^ZU^TZUTVYTU`XZX_LW[VcXV]aZXRX^Z[UYXW\Y^[XgZZ`NZ\g]YbR[X[dWY[\_^^^WVaQZY\USXc\P]Vf^TSa\P[TWeQZQ_Y[ZXUZ`QUaXWX]ZRV]T`dg\aZXYRWWUS_OOZXdYYX]ZeYWZfTN^\W`TXWa^Y[^S[OWZ]YW\Hf_[Z]X\O\TdTd[Xa^\MZUXZ_]Y^lYY_^_Z`W][[W[ZW\SVZSWUY[bWZ[^_aR[Y]c\X\O\Y`bZ]RYY[WYUV`Y`QVWYf\a\j\WX\dZRT\fWnWVa`dQb[Y[X^Z^[`YXeVTZg[nf`dd_\ZZdX[ZS]TM[e]XUcQW\VYVT^[Z[W\WX^_\ZaZeZZ`WP[\X^[Y\VV[bWc_ZZh^aVV][V]PT\]RT[SX]YUVYVfXS_`Xd[Q^bQXWW^T\[MX\NXU[^Rf`\aZc^ZST_TT[Qa[WP[X^_[b\YZSjWU^^YUUR_bTOPUeX^UQWZ]W_PTT[\[SSmciaSUTZ`^SWY[`]]`N]\QPWeZ`Wba`V_Z_ZUg_Z[VZ`XR[ZRXXX__id^XSX[YWNV_]W\]Pb_^bUVWRXZYRZ\S[RYbUbXbbYZRVabVa[^P_[cR^UTU]ZVYeaY^[Y]c^bWWY`^_^TpXaTWVUSVSWTVUUHYTQP[[^YXN\U^`PXWbZ^_VaVPTRgUwY^]_PYZ[`P_J[`a`Qf_SaWV]^d^]NZ\eY\L_Y`edM_W]S^[KRGXWZQ\]]V[R[QVcW\i\\VSTTSXWTR_NaQYS`\UUZT`XXafSSUaaJcR[YPXMh`ZZWZQXf\[[bZ]U[YcSRQ]WSS]bNYgVaW^TYVST_^SeY][V[YY\_dT[_`STTZUYYTVWURW]VNX[aZXd[`SX^Z^U\ZV^c`^ZfT_^[]cYUQTU[[]VW]W^PXf\ZSPUZV]^W]bM[\RVe[V`Q`\Yc^VM[]UTSaU_dJTR]]\[aUUXfUZWQ[VfNSaXYZO^TV[_J]\WZ^]TSgPVVL^fZVSRRa[[gZdX]Ua]XcZY[[\]a\VSYYa`YR]`bSaXWZ\ZRRUYL`e_]TTU\_TUc]P`]_XVR]_S]Y[YbTaZ^UZTa[UV_`_XZ`]ZWX^XX^[V\XZ^PZYY[b]Y]_]e^Xbe]]VOXXQZa]\cYVR`[Y\WYXTTZZ\Sd^c[\UZ_ZYUW^`UX\Vb\^_JRST`W\]U\Y_TaiUW[jWVO^\X]WYj\\O^V]aW[]`[TZZeb[WZUZU\R\XW^^\\\\T\ZYYU]Q]SVWXX\WTacUT^Z^\eUZX[Y[\VbXMUVYSZ]PZ]bZZ[TV][[Vde\\U]Za_Vg[ZUS`PXXRQ]TQXYWXV][RR[X^YbMWZVVUU]WVWUT_YU_R[X`WY][[cLZSYSXVVT]Z\Vba`Z_fX\VMTZ]YWVRYTP[cR^bVc]STWV_RV]YYYUdYWXZY]WZZWVRQPK[[WYTPYSZVZXWh^e\S`YZ`T[ZbZY\YS[`ac[\P`UZWO][ZQLU[fSWWb`NM^fVaPXXY[bSZ^Z`ZYZ_M^XaPXK_WSR[V_Z_^UVK^\_UoVVRUbTRT[WTWa`UUXZXTQZ`YVOU`X^_[WYL[Z^SR\c]YZWb^W_YR^^]WaRNaVPT_a^XhYVYWS^[[jU\]]eb^`QX][XMYTYRYW_SZUbY`_Z[O]`[YY`\\J]VV\fW`][VSTWWaUSTXSU\UcZWU]^Y`PRYY\[UZb]URQd_YhYN\X_PmUXShW`U[T[YWR^Q]YV_bY``ZYR[SS[[cVUW]U[^hVR_YWVZOXN[^[RV\NWX[SOZO^bWRXaXVaXZh]YbSZ[SYRSVWcSTa]aW\Kk]RWPY[`^[b\TT`ZVUMWXU_QX_pVXU[WZ^e[[YaUY\YVWX`Z\YWTb^\eXY`VU_[VPUZaV\PdXY^SXZ`]cVVWTblVW_VX\R]W`YQ[S``^Z\T^ZVZYU_abYX_ZUZcUUVa_ZY[a\\^XSXXaU]TWa[VWQ_e^T_VTTVNT^VXQQVYPXPYST[Y`RZYYZLdc^`WVY^OXS^YaPST[_Zc[YV[XYPYPUYY]RUWaN_SYW][YU`V_YXUUZUWPW]][T[XPWPW[U]ZWe[Xc_SXT^W[bY^dg`XZXTYdVbhS`^acO\VYSVVX_Y]TYP\[QVQQ[VT[YU[WZV[Y_YZ`ZQaZXTjd\XZ_VW_SXZa\[W^ZSV`Xf\UfPU_[O[_c_\^UVUN\ZYVYVXUlTV`cYadUU^_]TXgKSMXR\M]Z^O\R\a[\^YRYZQUXV[]l^WVRW][WbY^kSYa\QYW[\RSd_ZOW]\SQUZPP[V^V[SVSkVXRX\`ZXVR_V]\\_\]VcO\ZW]OZ[VaU`_TX[Z[T]VXY[^MemSUS^X^\XTTLT\^YP^TZTQbOSMW[\XWXW_WM[bZYWV\[QTPbKKY_T^XTaXUWfX[\YQVgY^U^SVN^U]Y^QVdX[XR]cYYTXYZPeU^]V_SJeXViWg[SWXcSa[WMV^[PT[RYS[]cXRe`cXY[SZT[UWU]Y]]T\VWT[]RYU\iY^^NZUUTUWVQPa[[UO_\Z[Nb\YU_cYRVVbZV[^W^W]O[[UVYM_T^U^cYWYbZiUT\TX\W_\WY\`N]ZVVQaYZUQVP^Tc[`ZX\YT_M_\aOPa`X]ZX_W^PUQ^^c]\YXXNXg[^[YLYWXdf[\\[^bXZR]XXUYTWUZZ^VX_aVN^_T^XNW\[\R\^_dWVUYaa\TTVYbV`aYi^VT[URWQZTT^UY`TOYYXYPTUXR]QVY^ZWXPPTb\ZWV_YbQ\[^]RWV[ldWVa^V\bX^UPbYV[bUW`SXX^]ZZ`]^ZTdXX_VUUbXW`bRYQ_h\YUOUYRYWN^iS[^YTZXa_^__^[SZY]]SYX]bd\NY^UX[bY^Y\\cWZ[ZU[YS`Q^\ZbUR_b_\WZXaf]^QcaVIYUZ[ZY\XUQU`WPXW[LV[[VSW_TWWWSfYQQSeZc[[W_WV[T]aTYWZ]^P`[dV`P][TeW^_]`VXVRPSSRYdXTPa_U]STS`ZW]\^[_^UUcXf\ZQXS[[_`X`PU[\`SVS\`WRXY]c_YQZXZXXST[XZ^bZY^][RWWQYYeY]X[[U]`WW[PZ^V\]X`\[bSYP\[XZWXQW]XWZX\__W_^Y[[^]W_Tb`ZZWZXX_WeZWZ]ZXWa`_Z]V[V\aV\X\YW_]WXYeYYWW[[_Q]d]XYVWXYTX_]U\c[TYWUXUYS\Z[YSV^[]UXYV[ZZ_W_YY[WYU_RWU[TQY_X_XWXY\XXZ[bU\Y\Y][PYS]^]WWQUab\U\TSV\V\UXXYX]b]_ZZY\X^\WZXY[XZ^Z\S_XWXVV\VTVWYZc[WYf_UUVa^UZ[Z[[UQZWZ^[U\RWT]WYY\RW^WZbUZ]^\cTSR\Y^T[W_T`\ZZ`Z`VUS[dX[XX^Uc]VQVUHjX][RYZeWT[Y]l\][b^RRYWVVbRVUSZSRcUJXYbdWT[UYY\WbYUUT`WXYVk[SZX]V[dPXYPYY]XVVRO\_]X^SYdSVNWTZVY^^bWOQU^Z\gW\]aTZX\h^YR]PR\YT\^_UY^^RUXaa[V\Y\iP`cVRRX^a`\NV^]V[P[W][\bTTYZTXWS`_^]XVXZ[^]^[[V[T_TXbSZaWTY^VVZVvWXc_[X\]SQTQ_d`QQRUS[aNSVXX[YX`QW[^WS^aW^\UTXYdZcPZ]WYZbXRY]VRPUS^X\[]]SYUR\[_]f`W^ZUYidiT[Y`VZj_Y[T`^TQR]VLabT`XP^UTRZYWS]OVQ_YdX^Xd^`]ZZZRaUZZW[[J]\_YT^[XT[^^ZNQ`KXSYUYY]U`POX_YZ[U^XSYSf_\X\[RY_R_Rcb]YWX^UYSgLVW[VZWW]XTZ]eWRSR^XZSX\YTVYW][WV^SUVZYWWYaSVX\YZOVYVPTUZ^Z[UUSY[[U\`WXYUOXO]]XRR[SV^Z][XUNUZXR^YTeNT\\X]PXZXVXL\VSWcTWWT[ZWXYXRX\YYY`Q]`XZYRfiRRX]VXV]__\]YUYX^[^ZYQY`^QgSWUV[\X[iWW^b]Q[_XaRTXSVUVZV^VY^TTW\WUWWgYURaXYUUZ[a`RV]W^]^_XYPYYgVXR`ZW^S^XSY\TTgV_UYcU]VT^[R^`]V\dUZXVQZRUUPZ\V[YVWYZ][STWX[XQXR`Y[Y\ZZ\TW[\]W^YTSd[ZWUOZZ\]\_XWWW]_bP[[XUYZS\Q]_]S[TRVbSUYQSYUdXZZT[_gdY^[VX^bY\ZZ^_P\XWbcUZ`UOTW]OZZVL^VaYXWYWVZXZXVZ`SY`_]V[b\c\V[OZ`R[\SRaY^T`g\a]S^X^^UYTW[LYZWcWVSNX_R_NRYUVYbZbdYTV`\RWVYYT^TWXV]QhWUX[]S`a^X^]WY]ZY]VY_[]Yd_]VSTS\]XY^RT`\]WOVVWTVSYV_a`O[_MU^YYWOU\jcUXY[TWTVUk^VXPaU_bVQZbXUX^_]`fZQRZicYRc\[\YTPSS]hZ`S[cYQVQXa_]S^]XVVYWRV[[\YZ]XbI[VTX[W[WaTVL_Vb^][Th_T]T[\RRVSUQUW_[TUWYQQQR`LOjUV^RQX^bW^W_Z`YW]b_[a\UdabSZcY[UhP\gQgVZYY]`Yb\^ZYZR[]^[[U]Y[Z^YW]XdRWbRWUT\\[a_UYRXR\\WZaZ_[VX`_WP]\VZ]bZURaPgUW[PabVWYY`X]eZ[TZQUWX[\YSYUYXL\^Sd\UbP^^\ZUT\XWW[VSZZTY]ZV_N]R_]U[ZVbVafUa]``U[\ZV]QVZ^`_hX^[L[P[d^`W[WURXYZPUYYUaYWZVUa[[X^ZeR]^ZR\_[aXfW^_ZT\SU\_Z][Q[USb]QYZS[_^\Y]^^RUW__\TPTVXRYSXNe\gVV`VUXT_]^^iabZVK`]UYcZVT`XWX[RW\WQSeY]UZdb\VZ[LR_[Va[V^TOUXZTXWNNdO]RX[aZWa_XXYT^XZUZ`c[cUeURbUg[d[YaU^T\ZXYZ[]^]XX\NTZcZYU_PY\VQWWY]U`SS]XTVqRZUV]QYbY]QW\`_ScexSYUWZU[d[_UUSaW_WYa^qZ\^S\PS]TWX[_VZVXWXWfWaiRfY\[_V`\WXU^aaUZPZZ[b_\ZjLTd]WZM\sUjU\ZYPSTWNTVXSRVe[NY]_YdY]]TXRU\k_ZT^fUZV\R_XeVUZTQYVWYZRXSePWdYXYYOZ\UYZW[\VZSQ^WY[UMZVXjTYXYVUSVWYZXRUXVkZaU[TRXW\[S\Z^]PPYYT{UP\]VZcSW`_VVST_PTWRYXa]SXWR[SK\V^YWNQaaYS[XfYeQTY]S[RdWPXVZTVbZYV^UV[\_[Q\SYafPZ_]`^\ZW_`X^`_cXXU`]XYUZeVZWM^RWWfbYcXTV]U^S`R]XXW[XV\RW_UQW\[YTaPYMUTW`RX_[YeW\\X^YU]_YXX_QVXZYZWQXTY_WY`dZYS[VYaR^WV_XZcXVV[_WS[eXZ^\]ScU[YV]SaZZS`ZeUS\XSV\_^SXR`Q^VWYVXWZRRTV\`b^_WUU^VXW[QR\Ua[YWVYSRUWc^WUT`]QeW_`RXP_VTR_aZVZVWXZ]]]]YTXWXRV`^VXe\ZUZaVWX^WSV\[VVZYV[SX_X\X_VTNYZ_[\U[]UVY`_WU\m[^Y\Y]U[ScZVWR_U_YcW[[bU]]STZbXRaS[XVaVPWY^^U^\]cZQXK]X[\]b\YT]adW[XgNVVSXVZX]XY\ZYXY_\_ZWTW\WTT\[^YbXUQna[c\ZK`[\YVRUVX`VS]]]WPVcW[V^Z_SW]Te[SZYcUY]\ZRYT^_][SZT\V\Sido_P\Z[WWR`^MRY]]VXZeTXYZZTTQY^VRT_TY]YZTbVP^WRVX^cTZWbZYUZZV[VT_XUU[^aWXZ`\XWVUW__XXW^XWXQUPW\ZWU]XS_fQYY_VXSVS^]XZXYVTY`[Z_\`YZYNlVUaUWY\\bZR]\\\^W\V[S]UY[VW\QU[Tb\Q\\YWV^`Z][UUW^Z\XXLT[^W]XX[]k[_YZ^`fVXMWea`aXTZZZW_\W\]Q\YZWT_ZR_SW`W]U\R^PZcXZUUNY[\ZX]PU_T`UaWVdfS[URdXSVZea\ZZb\Z]\[b\XYVQWaWZ\`UTXXiZ]X[ZZZ]^TOZXV]]bbWT[S_RZTVVZXfV_\V^]Y`c_a[[\Z`WUe^W\__ZaQRXZVXTW_YV_Q]OUeOXWaQS`UVceTY\YVU[YWZ]PTW[^O[WYfV\[WUZ^V[Y[ZZaaWfRdb^SU]`Z`SUSV[\\[UbVak[cY\R\][R^e``\ST_Z^]aW[U_fUlYS[]^[PZdYZ^[WS[d`\bVNaQ]dZ_a_VeW\f`ZRLc[[\hTZ_^]S\ZZZg\]VdYR`^WTWccc_K^VU`XXYO\Z[TTPUeNaTPeYWh]XTWSaXNj^ZS^XWaVVTaX\Q]nX\VRbWZfeScZbXX^YWPa`_bWWSdS\R_TYeabZ`YZda\[^[\^bTZOOR_LQ\dUSVOV\OUbQV^X\WSSZYWXSXRScZViXZ]PQ]_WN[hWS]YX_]Q_Y\ZOSQX[RRQV\S\a[QV`UW]iVY[WZ_TTSWV^G]WZYSW_\cYcWU^aVYYU_WXdbZZU\XV`\a\RRZ[^d[]VXMVQ[RZX_XUPZ[WUYWUUSTT]PYU\Z_ZdT\TUv_[[]_V_mY[]VXY`\^\TWV`WXaR[ZgTU\VWV\eZZ`RbWQ_ZYVY]\[YRVWYSc[\WY_ZWdUUYWVSmeKWdZZZWPVc[MV\Z`YcZRdX\bZXXZVNX\R[Y_[YYZWe[aPZ[_PZVU_daZV[[N_WXS\Y]_YSZ\\]o^QdT]\aRRSWXRafXV[d^bPaQ]_`\[^XVWZUZSZ[UW]TZ^^]WR[]S\YYYUZ`PU[_ZX]`[XViaX^Y_V\^XN\PVS]YY[TW^Pa^TJ_TY_ba[Y[]X[_XTaWW]]``UR_\_QVUYT^\TSaQZTVVYY^[YZX[b`WTXX_Qbb\Y^^ab[\Xh`\YQ\ecWUYYXXa[[YUWX]_[e[W\Y]VY\Pa]]T[Z_YU[[ZQRU\\\[Q[XUZZc\]Z^R[YO]]WM_]Y[W_]ZWZYYY[aYXZ[]TTXY\RYOUX]aX_YVTW\V```_U^YXT^h^TY`][M[gL]Y_aYhXW^dVSVZ\URX`e^aUVXW]fX`ZZ]_`_XY\U\^gZ]TXZWRYZ]eUTW[WUUXVZU^^Yf\\Uc_YUUSZTVXf\QZYTZ_VdSQ\`]cY^aZYOUZ^\UXV\aYYZX]_YY^[dY_[^\UcW^fN[_VY_aOSc[]\YZaUbTXa_TQYU^VeX_cb]ZWWUVRZV[WYTVcU\Y]^]UXNWOOZTY_UV]^S^VWPXPY_`\\SQ[a\^SPX[]WXSO\]]VaaUX[^X[Y\Zhd[TW_VceYWRXXXXYbZ]ZZ[PZV[N[c]]W]Q\aS[aT\VXV]XT^_XW^UT[]S\UR[WWS]XZRZUUdX[a^]_^XS]bW]T\RTUYe\^[ZQhQPTZUU\_ZUX^^]V[\N]^U_W^TVWfU[\VOVW]Qbb`\TYVRTU_[`XZY^PZXY[OcZY_Y]]`WRW[XYaOSXXb_OTaY\V^WSRQWVdZ\TWWYV[eXV`Q\[WVTVTdX[`f^YW^]V^]Q[V`SSS\X\cbW[V]ZZ_[VcUU^[i_cPYQ\eWZWV^VSUS^\X_RWeYZ[QWUS[aOQRRZO`XfeVZ]XTV[b\[fg\W_T_ZXVeTg\YWVgR\_[[UUTUR[Z^^T_S^^\U[V_[_`Y[TWYYdVba\]W[`_\]\ZaZjZVV]]VX]]U\QUO\\_^X[X\KZ_`SZ]VSIYYYTYe^UYZ^SiT^YVW_\OYUXUQ]UVRR^SMVaWSaT[V[RbTVbYS^TgV^[XUdNY^a`ZWR_VZ^[[RVSeP]nSWaROgf]OYV_YZ]\WZUQiXRX\^PRb[YxR\_]RXadn_VJ[aQTYc`LZRTXM\TY[TWQT[cTYV\`gY^VWU]XZZOT\cbbSXZ\a[YYVLQ]ZWWU`SWPWTX_ZM[baXYX[Kh[ZbT[VaT]\dWPXNd[^[_Z[b]^^XQYWWaXYdUZgUWZQ]P]WZP]_YU]lUWX]TRSY\UY[cbcYPSV]HYZ[OaPf[ffVW_XU_O\TQeVY\X]T[XYce[`QWUYT`\WV`]^\YUgVaRZ]ZWYWd][Zc`QThTZc^UT[TQWXZ[Z`X]VXWWW\aX[X^`WO^WYTZVZ_TZYRWSXa_YY\UZNZVU[^W\Y_c]ZX[Tc\UQZ\_[R_TX\a^Wa[]WUMZW[[Ue_Qa]X]UWV\ZYb^gX_Yf\S\VXY\_[^R\Y[RY]TeJW\U[\YcVWZ[P\WWYZW`][WOLWaZVkZQ[^W[]WXg[TYS\\OZ^[`SXXk^`\d_ZYZOZ\YSXa__f[TV`WMfWXWVQZXSO[`S[[_Y\VXTQWT\a_\WZYSVUV[YYZb]^ZOTZYZPZTQZYZZ]S[NV][U_fQXQ]bVTa[^bbY]W_^b[XZ[_]Y[WYaeXcW_WXZ^T[\_VQTXZ][Z[NYVSTca\TYU[\UXdWY\\U_]ZWXVX`bg\`_OYZS^T]RTWWVX\aZXTTZ[VX\]\^]\UXg\Y[Z[XT\Xg]YWZS[R_[Z]NTPY]SWTW^\^ZTTV]U]aZ`[YWZXZ]\YY^]YVYXY`Y][\YUXW[X^^T_ZVVVVY[OZX_XY_[cX]ZS`[^Y[S^\Y\T[SYh\ZXbUTY[dSRP]`]TVST`_]\ZfcWYV_V_U[YY^d^d[X_WU_XUZVXY]TZY^ZXR^XVU_]]VfaP`_YZ]`Y\PXYWfV]aU\XUcVXWVf[_aUXV[LX^Uh[]cQYX_][[XX[YbTZ]`Va^Wa]WW]]X\V\W\YUVXa^TXWZYNYXW]`Y\[`ZYUW`QWYd[`^\RX`XZcYWVU^Z`_^W[Z]YZZTPYXPS]aTe[U[^ZXZZSWXUXTWS\ZYY^bVRZX[aTYTXXYZYWR[V_`]Q^X\]ZSZWX[Z_Z^R][^Y^Q\IURSY][\]_ZW^iTRP`]VXV`]^N[cT]XWXVWQ]ZT[X]NXU`]WUUXWSYR[RYRUZS[\ZY]SX\\ZcjVV\SUYgVRXTSZ_X]Z`Y\\SRXVWK^aW_RZTe\W_R`NS\]VUOUYXg]bY][Zb^]QRX\\_VOVch`YTSSU]US`[W\X]]^f\]XSWU^R_T_VZQ[_]O^aUWg_e[^^T^]TSbfXTYWb^X[UXaV]cSSX\WUa]USgXTRiU]TU]`^XVXXaa]UPbQSU`QW[V[YV[Ze_UUbUIL[[]V_RfdV^U`[Xb\[YX^XYX\]UWX]ZMQVTYRYTXY\SZVZYj^\VXXURVVWUV\WZXSh^[[`X`ZXTTURdUR^a^U[][XTRXW\QYfVQZVTYWVSTbUS^W[S_]`ZYZc^^WQW_Y[[`SRYT[QZ[R\V[R\Y]ZWXKWVTSNVRV^`Q]`\j[W[cYW^YbXSb[XfSMV_^V^Z\XY]b\__ZgVZY[gWS]PcYXX_Y]Z[SOR\]JS[QZgZX`WXQTWZOcSVaYiVVX^XVS^][Za]W_SXXUUYOX_SZ_^VVdiWYX^W[Yb```UWeTc\[ORTl[Z[YXd\^_XTZDTWYbZXPZZW[QQXRWV`\ZUYT[NWV\\U]Y^VebTTUb\`_ZW]UQ\[[od\[^YX[ZUY\eb^SX]WWdZX[Q[]b^aURX[\WUONV\Y[YS\VXV]YSV`XRc[\^YWZ^XEVWT^d\^TP\J\lW[YUV`Y\XVZWY`Z\VY\_\f]Wf\XYdPjU`Yd[Zb]VUVX[dWVhW`S\SaYSVXT]XV\b_\T]YcSZSS`YY\b[\T]e[aX[benZZRY_VPXZWV\V[[V[WM`X^_U]^`_RYY^[aZU_UWS_[_`_gRSXU[[QX\Y^^[`eS[]fNYRX[_`_WUXeeW__^[^Qc[Y_`[^R]`]]T`[X\b_VaXOVaSZ^cRTMf[VXYbX[U\WXQ\cVYdc[YTZVe\TT[]^_PU\PXZYUX\TgRbXUZZ[YVUV`iYXZWZcU[XS[bcb]TXXX[YR_WZZTSWT[XT[\TTZZ_Y]WRP\[\[][]ZYgS_[Q`V_V]_]d^X^aVTQ_\Vb]Za^W`\\\XY^[^^VR^]YT[Mb_]YYWM\_eTUe]^N_WVYYU[]`Y_T[ae^U\[VXZ\S]_[ZXWUZR[X[SS\XZUYXYXS\Q`]`XRca]U\XYUU[Z^Y[[]V_eYY_Y\[T]ZVXW\ZXcYY_\X\[RUbWZTZTXa^^ZXVZ`Z^[[\V[_UXbTbY]_SWTV`U\_RXSXTYVYW\TYO[XTZ\R\Z]YP^ZTUXXZ\UWZd\aZSXVXXY]]W\W\`ZUY]WW[[YY^[]YYX[XZ[U[RVYbZV[Zd]VXWQXYVX]NWWYUQZe^[^cYW_VZSZ[\VTZ`\Z[SYT[]XYVXdT\T]UYU_ZW`[]Z[UfQXRYW\`YfYW^WW[TRS[XV\]Y^Y]]aZX`]Ra\W]]VV^W][U`TT[TY_XP\W`ZQ_XY[VR_V[[^[\ZTaYN_T\W^Z\]UX]^_W]SWX]U`VWQ]VY_[\YYYY]WYUYY_Z\QWY\ahXS\ZZX]^[S^^Z]\ZW[bTWSTZ\S_]WZY`\ZcZh__Y\WQV`X[W`cW`^bV[`_TTST[\[_T_RV\XZT_YYWVU\Q\UY[UW[U[USXQ\YZS[^^[YU__YZ]ZZT_U_\WY\UX[SXXRWc[\S]XUXaT_XWXYX[_Tc`MYYWX[TVN^Y[XPVR`X[]UbXOTWVXUbX`X]WVRUbZ]RUWVVWYW^`U^YWR\aR[U^TY`YX^Sd^Y^XWX]V_V`bX]YX_\eTR]^\cdScVTSb`T]R]]be]fUSW]bXWaWZg^VSYZY^\V\WSR\TWRV_UYe_[XWXWZRX^h]W\`\^_`WY\W_VaXb\RWYWZXMURZ^[ZYTXV[VVY[YU[S[PQRXa[^\QPXTb[fUYZaTV][_QY_[ZSZWQXTYZ`Z\YcR`YV[^SWYTYYY[ZUZdd\\X\V`T^VV\ZWQd^a[WV_QW_O\YVUPZUdWUY_U^SZ^Y^Q\WW_[XXWQWYQ`Y\^W_]XU\UXYaZUOYWOYW\]YVX_X\Z_Y_VX[UY[Y[[]XYdc[]`VZiYYW__YXT\Z^VZS\f[\]ZSS^XUYVYW[]]V]\^Y[\Vc]^]U^XX^NYYWXUR_YXWYYYQYVU_[ZSYZZWWZ]aRWY]Y\X\XY`V[`[V[YXZ\`\^RUUQeZUYNZcLYX[W_`Y``[g\UZVV`\ZXOWgVaV^]VUZ^_U^Q]`V[W]YZcZZW`Y^XS\[eXZZR[Y`_TQWRYSRTWR^UQYQ\X\T_YYY\\ZV\VWX]\aaUZVXWR_Z\V^cXUV^RTT[\]U_[XWVUNZaWb]U[[\^f\]V^]VYNd]Z_X\i^ZSZXS_\VQZT_]dS^bUXOafdZZTVUV[[V[WZX\YkU[VWYTV\^[]ZXZPW^`YXR_aQ`ZWPQW_WVZV[XT^V[VW`_]]^b`bY\eSRbV[Y^aWYR\Vl\aY`WZ`W\UYUZbUVZUUU^aYYXbQX]cUaY`ZSYW]]]cXXRYZ]_aZUZS\VQf[ZS`TaUf_Ta^QdWZVZZT\Se[U]RR\^Z[V^[[VP\UXhWOZQVZPYY^^[UY\UYYYUZV]b^\hT[YZY\VaWVaZ`VYRSTTPTXRVZ\VTY`[_V[W`YZT]VVWY[VZ\[ZdUW[WQ]UaTZ]Z`_SY[RbZ_ZYbYXZTXTY_`\Z_[_ZWV_`aZ\T`Z_NYY]LNcRWeaZ]]^[Z[^_USXP\XVU_ZT[QXWfUYZSZcTYW`]W^[RdTXVWXW[Z[`]YQU\TY`\WbTSR][aOV]SaOYXTbWWbVXY_YSSXXU^N_W]YYYWRV^UldYW_YWOZ^YV[VZSc`XS]ZUW[XOUYRYP^U__T]Sb`W[RUZeU`a[YQ\ZY][UTb[SSZN]ZSbRb]ZVUdZZ]ZVbZ[OR^WZ[_RSW]\YbYUVVUK]b^\ZY_QY]c^WTU_[W_T`X^XZS\b^VRYW[XacUP`OZRW`acZ^[R]WVVd]SMQ\Z\\T]W^]`SWYRR[ZUTYUWWTTY^UYS_^_T`[TXSb][[ZaUWPYT]MZQYSY]Z_PTUOJU`K^V\YZ\]UN\LXRYV`UVYOTki`_VZVVUY\Z\SQZa`^`ST`Sa_ZN^RbYT`YMZeVUjZOVQP`NSUT]XTTSbZVWUWVWW^^VW[XY\`PNT`[UXZ[MRZ[Z_VV^]VWVVVeMSZ[YUOYaYaaZUaY]ZUZZ\TT`PXYV^_b]X[_W[h[]]ZW_[]\h^\W`X[\ZeSYW`_\U[X]^^VV][X^Z]VOfXWWTZb^VTX[dZ^YYRSY\X^ccX_\WPTZ]WYMXO]TWTX\X`aWW_Y]XX[XhXY\P[VWZOV]\W]]S\]`WYS\ThcS\]]XYcWa[XYaYQ`R[]]cNY^_P`XXdXXNVVR\ZZ]Z]QVXSO]\V`RYYT_kYad^VY\``bXVYbbX^]WVgaScXZga]VYYaW^Xc]Yb\[YZbWSU[R\][VbZ\^VWWQW]`VQYR\VbeSbR`X]ZR\XRT`UWYbWZVZ^[f\SO[XP^XaYX]aT`_WZ]T]ZRR_U\NWPXZXVQa\\XZ_X`TQW[QacW]VW[\UUXW\[ZQZY_V\WZY\WSSX]a\[S_UXYRX_WWXJTZSTcRa[\^ab`ZSRfO[N][UaYXY[U_^VY]O\WVTZUYV^X[VWaQNN[^W]U\_QZT]^_[]WOZZ_`dLOUTZRWTWXY\^WS[XYY[S]TWYRcZTW]Wd__Zfd^VYV\YZf_YW\dSRU^WY\dTZc`NOYXcX\___WZV`WaZR`V[]W^TXTXWQX[`V\UW[[YU]U[T\^aS]WhZaUWVS^[aUfZ`V\_ZbKV\[VSUS^`XWSVZU]\O^XW\][]ZW^TWYW`^SXRWRaWYWY^acVZ[]YZTQXXTWT[RNb][OSS]_Za\YRX\]X\a]^UT`\Y_O]R`WS^O[_Z`\T\\_UTX]S`RV[X[[gZa_SWUVT[ZS\[ZSU_\XU`X^QX]hU\e\ZXd`YW]PYW[UWaVXRdZY\ZYTZ[ZUU[Y_]^ZXTZbZ^OXV]Y\Z]VW\]a[R]WU[U]YX\X^_ZUUebaX`W]b^[_YUSUUV_ZY[cVWSQQ\XYZW^[WSY[ZYYSW\VX`VUcZ^`UXUZ[WbU[W_]`ZXYPW_S`Zbc\VSb]Z\_UZ`_XYY]fY^WV]WV]T_aPTZ[Xh_WSWT\SYZSZYYXVZZ_aRO]UYT[YZV^Z`__\Y[`X]a^X\\`UaY_UUVPYY\YV[c]T\]_]f^X\_][U_TSV[UUW\b^UV[`aK_`ZZXZZ\XRcg[[YdR]TcX\Y\\QY_a[^^^RMO\WZVT^XVVYV]R\YU^ZVZ[WVj\YReYZR\YZXcYa]V[Z]ZVg\^_Vc]\Z[cXZSXW_S`URZ]aY^TYZWY[`]SUYVV_Y[ZZ_]U[YZ^_ZZW]Y[\U_WTXU`WWZWYQ_`T[[XTTVbaXUZYXXaYTXWV[XV\YV\S\gX]V\c_`]dZ`Z]\ZZW^[cY^VZ`XW[R^\XXX]WRiRYZ]]XXT\TUYRY^]^]mUTX_X_SbYVSWRX[YdbXXV`W]b`WUXW[Z_WP[]WW]\aUZRSfVU^[U[YZ]VQ\XTXV[X_`^^[\\NU[[WR_]\[^]]`[YWZ]aYS\_\XTUeYV[XYW[P`XT_VUS_V\Q\\ZVWWW[UXY[VV[XaXZWVS^][]WTZUVXP\\Z\XU]X[\Z^Y`[`SYWU\a[^\]Z]YU^\f^X\]V[V]WZVW^MXd[WX\\^WW\]YV_]]b]b^T^\Uk_ZZSTNfU``]XZVZ^e^]]ZYST]OXSWX[ZZbX^aUc[\WhQOQWZXSRcb]_[WTbQZZeXRO\STaZQdUYX_UVYaV[T\YTYY_YS_\e_aYb\O_Y^_fYX]^]ZXY`]\UXT[TKX^ZY_YXSUV]OXTWPYVVQ_Y]^T[^_Y\^^W^XYTNRZZVY[b`S_SZ]YfSgMRh^PXTZW`W]SZX[VWW]ORUU]P[X[SaNTXW_QU[UTZZVZ]iXZ^`TWZ\YUR`TZ_aV[RV]\bXZYR[]XbUVfYWXObU]_TZY_aUXZWWWST`TX[R`YL]]K]c^]dSXR^R\Yd_XXXRVV`W[TUZXhTaP_]c[SWUNYS`PSZV^YeYWYZRT\UdSb`\YWT^`[SWkWUVY_\`b\a^YZ^Ma\UZWYUXSVV\dV^XL^UUbQZWQ\[eV\YX_Tk^^KZag\ZTYVUVYc[U`\\NZSXXOWXYgVUSW\hRaT[_Z\VW_]]MR\^PXZSm]]ZSXQW`_]_Z]W[][dYTa_[YX\\[eSP]YRYQ[VU[\ZaY\PN\cZ_U[]RSQW\Y`T`YScbXWZY\^YNYXOS`ZZ]VcY]SWYRSZYWX[a[^XVcPZ]V\M][XM`Pe[XWZZ\]\YY[UVTP[T[W^\bV\ZV]WUVXQ\TZ[S`XTWZX[^]`]Qa[V[]cVb][YSYZ[RcZ[Y[c^cYVZYYkTYaYZXV^XWabm^\]SfbWT^TZWY`W_]dQZT]aQ\XSWjU`ZXRLWVQO^e[ZT[YV]_Qbc^_Y[^]QX]ah\Saa[X\LeTU[X\]Y]U]Y`ZXSY`[^c]YY^S[_N[VaV_`OYUUYVV`\_XSXcRP[YQLYWZ]XYVWV`Rg`Pf][RX^U^X^R]^[\^Qa\T_WZSbWbW\YQ_`XUaSc_a]`W^\RO_^_ZaWP^X^W^^Vi]UNR]^Z]ZVc_XUbN\WOYRU\X[WX_TXaUZ^WULXUUKX[XVVa[Zg[YXXUZWT]\S\YaZZXWZXRS_\X[ZY`WYaS\b^]SV_S`TUUSWV]aV\UXWPXWPbYXTRVXQ[ZWZaZZXSXXVYb]TSfPRUQ_X[U[Sa_][^XVZZWUYYQb^UW_UVZUQVVRXZZ`SXVVYUeTTbaRO`ZT[][TP`[\^[\aRURd^d[^SZV[bRTN`c]]K\^N\^`WUNVTX[VYY]W[]XYVZZ\R[WRW`UWZUYWZ_bTTX^[YXZSXU]_e\Ga_g]aVZ[\NbZR_ZW[\]hT^[a]XX[eWZNf]UVZR^YYa[UUSXb_[`VU\fTkUXZZ\u]YWZac\X[YVY]ZQ^Z^eYaXXZa_g]^^OV^`\T_YScR]^XYZ\S`YjXZ[X`]XYcVZ]X[PbVU`T[WU\]dXZdZQS[UV[PZ]UX\VZYfeXaXRfhe\eT_WKVnWh[\`VSbWc_^^\X]]c\YlSbVTXT`^\L]`SJSXX]Y\^QYX\fTlSUZhYJWZ_`]Wd]jX^[WYqUg_U\n\V[SZZY]Rah`_NW[NW\VZ^NQUURZ]_aUTNYRbUTZ]`V]bXbZ[YaaY`YYWOSXe^U_^SZOYPVWdTSZZ]UVW]bZV[^]]OaXW\_\WXb_T[RWTYYRaVTV]UX\O[OY_]WP[UXW[ZSX[]SOX\]WaUXZ]XSXZW_TT[[[^YY`V`\\XeZ\X_WP_^_`P\U]OU`X]`Z[T]_QVa_X]U_RTXQaMYXPXYVfZb]_^[ZZVU^YYTUYZSUZTW[XXWYddV\[X]UVWQZ^WXXVW`YWRV\TY`P]W^U`W]_W[V`]U]`e\^_]SUXaT_UYWU[_U_`Y[Y\U[\RUZ`X_][\]WX`ZdYWWUa``Z`TW\lW_ZSZba`Z[ZW^VX]`^_X\Y^SMY]ZZUaXW^Y_Ua[U`\eT^Y]f_ZUVSYSV]YL^\Y`WQMbZ`W^[[\S_V_WU]\YT`[WYZRUWZU[S`Z_\W\ba[XPXRa\YbU^iU`V`WYX]XTWacWT^WZ^XX\eZ[UW^_\VYXY^aVRRZU]S__ZZ^[][P][Td[[\V\]\SdZSW`[XS][VW_cX[PWU]^]_ZV`c[UY[_aZa]ZYXUQ_\[TbX[RVY[cVQ[\RdZXXW[Y[]VV][Y`cV^WWX[ZXW]XWQW^XXPXX]^UR_]X[XZSUX[[QcdaOQZV[bQYaWVXWR][SW[WW][`T[[[VY]U^VZVQ\`a[`Y`\UbbYTb^YZTXOf`\TZR^T[\]cZ[`OY^]XX`X[][[UT[YUaYV\T[\ZY_ZWPUZW]aUVaZUY\XVZYU_[[\a_][ZTa]V`bUXZ`^SQ`VbXJc]]cXZWY_d`Z`baQY]VX]cX]WbX\aXX[YZWZYb^ZN[V_\X]T^WU`^XT`_YZWeV_ZLa\Z[_YY^WW^XTYR[R\^[XZ`d_[[R^YTZ[WhWVOWcUXTXYZZ\aeXZWRYOU\RfbRTZWXZ^]XZcYU][\WWYVT^WW[V]S]Q^]WU[ZT]_^YSWRR`SX[YL^RNW[UUWXd\d\`ZbYX^]]Z`g`bW\_^fPc]c\YW[\b`[Va\RW^\YZZZdWUVZU][W\\[daS\[RTaeV]`Ye\`VcUPZ[_W]WVZ\TYZQQUW_XPO^Z\]NUS`VQ_WY]g_V`Z[[bU`V\Z\b\SWZUTUZY\UThW[[dRX\W_`SYU\QjZa]Ug\R[YbZWZ`TYh]LQQ[VTcZRWXP[[U\b^`XaWWb\]d[_]S[T\_^SZ^ZR]Wd_[YbNZSV]\Va[eP[^^UXZ_^XZXTPWVLZ_TR]_Xd[XVZZWZ^XZ\[RZT_bdPWXL^Wa^X]YQ\YWMYWTVXM[VZX[Y^W]Z[W\TX[dRVcXXTRZTZ[eSWLb_Z_NTZS[^LZZUUUQ\[]\^UUZ]TVaZY`U]X[[YSQhWW^S\U\V\b\\VW[OWYVY]XWVZ\cWQQWLO`YXYg[^\[XOZZY\^hYYkX[UWXX^bVZT\i^TUXZSSZUY_XZ[SRZZa\\_SY[[b_[a^SXZSXZPXS\^Y^W[`[_U^WQO\ZPa[UMVWXTcVgWX\U_YX^ZVTSV^Y[]XW\ZYYZ[\XRVQ\\]W]Z\VYXU`Z^VYZ]cRXTYS^U_QV]`T][VbUYYSTZbT\TYb`_QVZ\c\_UZV_OOSVW`Y`^\T\W]]`ZaV\ZcZaTVadUaZYY^TWQb^gR^d^SaQ`]RZZ]ZZ\PbO]^X\`\_]]`Wc[X]]X^T\URWWbU`Y[V^UT]W[XX]Z^P\^[aYZkdb\XXbQTX_^UTZZX]Ta_P]PMWV_V\LTeY]VVW^SX_^YW_ZPcYTY\OYY`R\UVZbVZT`X_[W[\V[Y_RX[USPU[VcX_[cYXR\]V[WVWR`\T`_\[R[\RUY_[[]VdeaV]TWZ^^X_a]VW]^V[[_TW`XYWYb\T]V[_ZROeX^aYZ[]]UTQ^YZZZRYO]S_hXgQYYQXUSQV`NS`a_V]]TZXR^d`X[b[a\XR[YZSZVMO[lR]S^\eJ[]bUZTY\X^\PYV[Z_[[W\UW`Q`Uaa\W_X[YPSTY^V^`OY^VYYUZR_`N[]TXQ`O`VV]YMX_We^UWQTV_QX_aR\[Z]aV]XZYe]\`\\VS]`VXbYV[[ZUWRaQSabVS[YQ\SYX_XXVVV[[VbU][`h`U[\^XUYX``X^YUbUWaZ`]WUbWZXW]TO[SWYZ^ZX`_XZ]ZTN\Z\cTYRU[`XYR_UT][WYTTR^_bWYRUVRXY_dSS[P^^[]\WXR[d_hV`T[ZQ[XXZ]`O]UYR[V^VV^ZbVQNWUYUOY_^Y[_WV\Sa`VU[V]SS\_[_ZYY`]UTUYeRWXRUYbV\c[VV[RZX[^\XSUW`b_]X^\`T\[T]\`WSTYRa`VWXaZ^`\SeaUVSVWdXXRTVYa[V_WZX\Y]\XTZYUUbTOX]VYT][i[RXZW_[\_aVYT^aTURX\\XTkbZQVRZ]Y`SONZ^ZTXZ]bS[]^`N\]ZQf^_aYeU``WQcN]R]ZWXafUXQY[XVZ\X\VQ[^WUa`UT\U`ZVUW^e]eVa_]SdZ]_Y`SV\PZZU^\`Zb]aN[ZY]R]]XZVVU`XONQ^P`YcfR\X[^XN`WS[U[V^^YXYXP`[^OJ[Y][^Xg]UV_\QZY_WL\]aV]YZW\UaR``\]XSQXMV\TZZZfW[UdQiR][]^IZ`TV[ZYSWdSQYWUYWZa[ecPbVW\VcWUUU^[[_PTRYgbSU\VYXVcTYW_SUVZQZSTY[Y[]bZWVhV^\^Z]VXd^fV^ZUZ^iU]]S\V_^VW\hU_\\\VRLW[[UPUSUZbXVV\RZZXR_TX[^_U_\a[bUZTV\Y]W_cRV]TTT[`YMa\U_UY]_X[]S^[Y\]WX_T]V\Tf`U[[^[]fSeTYYQXhcUW^V[X^aSYZcaWP`[ZaVPQZ_VVXYY[WWYRWOZ[VVaSSYOTR[V\VWXY`TOiWZ]`YXc]S]S`XaWW[]QaX\^ZX]_\YS\WW\WPW_[X]a_[SXV_]\YRaSTSVT^X[XWaTY_]bWYQ^R`^S^Z\h^]TWWVWX^]bdYa_]SXaXPTXXY[W^VVVX`SWYTPcW_TbWg\STXVWZXSZZXbVVV[[VZXVU`^_aXYXZ^_^XR][YXXX]WX^WXTU]]b[W^Y^WdT[]R[a\TXRX_eZ`ZMX^WTSa^XUe_`ZU\XVYPYV`^\c_b]^]\\ZVWY[T[XT[XW[Td`_]VQS^bSUaXYV]fXO_\\S^STd\Z[TZ[Z^[T]YbWP\aab]Sa]bT^TSV\]VYV]cX_Z`Z]N]SYZ]hUh[S]SXX_\V`cYYUY\YU\_O[fQ_[`_\XSdYQWaZWW[hV[[_ZVXY[_W[][`SL_TUV[XcVYS]YXXZSYTZ\VgZaLZ`YWU_Zj_U[]UaMPUT\W\]WTcWTXZYYWZSYLQX^fT\VaS]TTcIcgRZOR_WYVRVQQZaVTZ\]SYOZYVV[]VQ_[iUUPVR]Z\\aYcZ\ZZXUX[^bW`W_X[W[]U\_T[b^^^XUQZa[ZPWVaZYY[X_Y^_SXTcbSR^XXUZVQ`VXXZ_\ZYU[RTYX`bZUcZ^TRae]VWYZU_QcfU^YZXXZ`[UXcTVWY\][YZRSY^\UT^^`TNY`XTYYb[\VY\[TUo[[]][R\X[Zd[X^aX]UWW`T\_V^]ZUY_dZka\Ya\\[U[Y_ZV_^aY_PXNV\_]^W`VYZRYcXVVQ[c[W_QUMVbO[bTVWW\c^\cXVhX]OZbXVRSdWQXUVT^XRfY]X]bZX[[^WXZ[b^`\_[[[ZZZLXc\[WW^\U\UaW]\]\a\bQ]bVYX[UZV`]aSbRYUW[cU_\YS\Z]V\dVe\[\`YZTUNdWZY`^U_[W^URZXVTY`YRYWaWQWj\SaVRcYVV[XU_Y[Se]WV[cQYVY\[QYgUVV][[[\QZ`[bVY_X[P_bUYT[\P\\][VT_aaWVXbVccV^Y_NVP_Z]^aZYTVYXY\[XbXT`]V^k\[]_[^Q_X\a]b]\Y\]fZ\PZ\\Z^[RTeQ`Ta\PZ\QXZb\YWY^_`]^YYaWYbY_[YZY]\WV\TTZO\\ZZUQUYV[[WX\R\W\VYX[ZW_XVTVW]Z^Y]UWX[W_W[YRXVUYWXXYSYZdXXUTY`ZXWZ[TX^VVTY[X\_[W^NZY[QQW\_UMYU`dcXa]ccVWX`[aQ_YU^O^\SX\\VdJTUUXYcPUbSYTYRO\UXU\XO_W]Y]TNafT_]SV^PUV`[[UXRNZZPYTZSal[\YdbW`kU_dO[_SZX_V`NXe`RW[T`V\e^T_]eZ_V\aY\W[KX[XQ\]\USYZWYRXQW_HQWW_^URZbS[[aXSN[XlZY`\Z^Y[TS^UVWXXS_bYf][^TWWe`adTMX]aSPUKVeZ`WMUQ\ZeZV^[X``[XWSb]agZJYYX^TlWPV[\`bTYXUTLH_V[PNPXVUYW[XThUT`XJOaZSSQONZ_[a[ZTXZ\Y`PYWcV[YW\`YQROQ]\dU^WaVVaReQ[]\UbUY^]WReYfaSSSUMST^ZJNV_SYbeQSVZYZ__YP]SNYZRTdZU\ZZ]YRV[X`SZYQXVba[a^ZVWaVTVVNbfPTXZSZ\VXdW^^[ZbW^c[]JQ]SgZXUTRcZRY_Q[UZX[WYY]^]Z\TUMZWY_^T[VYS_V]TTZZbU`^YQZZXWTXVTU[XYUSXQT]_YTRWZb]`YX]XVM^VdNT[ZWQQ\YbYX_ZUW[]YYXX]aZ^]^[XUaXP[TdQWY]V_a\Z\[]N`XbbV[Y[Y\_Q\XV_]VVZ`^XZWQTYgX_YbZVaUWYSUWbWUTXUZXZVTU]\`RTXWY[TTZfa^T][RXTVZaaV\b`aYZVVU`Y_]^[NTPS]X^WdQ`YX_L^bYZZYX^S^ZMT^U_U]_``[ba`ZU[\b][X\ZZSP`[VV[S]\\^]VWXRWRXcWY`QUdTYjXRXW[[VW[VV`aO\gZ[_SPV_SZWc\RWT`Z\ZZYcTWYQVeYZW`gNaUaeTTSYWiU[UU^V\OU]\WS^ZWT_PZZYWUYZRZYaQLYWaaS[_Z_P_VVXacUYWZQX[ZZcXfdZWcbRSU^McVa[VbaXUVPWNUYXRUeZXTSRh^Z_Z`V_WVZ\]]\Z]b\dQa\S^_U^UTT[YVbZ^YOX\TgXQXW_UW]R\bYUScT`ZUaQ[ZU_U\a^`]TXc\[_k[X[Wa[QY\Z`ZV]WP_TU[V]QZUQ`cYYU_YY]YMZZV^U\ZaY_T^W]ZWb^`P[VTYSYX\[_Z[S\^QW_[TYXVVZWcb_ZXXR`WXR]QeWZ_X_\]^c^_aZT_XVfVYYZXROb`[][^^_c]]WVZSSX^URaaZ[\`eXOYe^PXRT[VTW^T\TXeVNXTVcS][W`_^Q_][SbZR^[]YO_[^U]\\^T^WWROV^R_dbXWYYR\PYQ\[Z\gW\XcmYRV_XVVY^^VYYQTPW[W[Y]\O^[XOXZXX\^]SZWX\^X[]^TWV_b[XdV[[]Z]RbRU`X\_YX_c_WXVS[Y\R[cRUWbW\PUR^Z`WOT`W\\Y[_bkg\dTb[[V_\RWUZURYU^Y[Z]bT\Y`XL[RaX_^\T_PTZVZZbVc[^RSYYZXVdZceT^[ZZXSd^g]JYY\[Y`aXk`[TY\S`Q]Z\\V^\ZR[^ZZW\X\_ZXXkXSYU^^a]YV`a[V[WWOYQaQfWbY[`XSNW^V`]T]XSTW[^VQXUfYU[X_UZeW]ZXQVV_QRW[Z_ZQQSijSgcT\TR][i\_VX[SbUYXX\]\fSeZ[cZ_[ZbXfT_ZUb[TZXO\QYWSZ`QZX_XVVZ]hVXRV\PZYd[Z[][N\\V\]^[T^SRWTYZ\[_P[RSZS_RQY^YY\UWUY`YT\XTRW[ZZY[XVYZMZ[^c[^iaS^_]WSbVaUZVZZPR]TX`WRYTYW``\]VSU^[XUaZVZRYVWaWYQU^VUWQX^]V[V^WWRbXWX[WZRY_X[ZUXZ\_WU[TiT]fYU][bT]RV\f\X]X_fXRU][XSV^U\YZZ[W[^UcNU\\SXXVUUdV\[^UZO\XXUVb[Z^YcRW[\S_Y_SZUYS`WS_[UbWUd[U\WbT\WRYVXW_\RZZLVW_[^bXWY`[T[X^X^Y_XX_\_XV\VUT`cUVXWXU^[V^`YZ\VLO]`[UXTR]XVW[[\YWc^]Z_\VOW^\U]RW_Ze\Zb]Y\ZZXSUZ]]WSPTVUYXW^iT_S^[\`\Y_WcYXV_[bV[ZaZ^[UZY_RZWjXTX]UTZW][VQ]UQf^\]WWWSS\VSZg[Z\T]TVQ\YUTXRZYUW_TW^[`W^X[Za\[\]]_X^QV[T_^`^f[\U]U]XQ\ZVYVc]MRSZ[W`XXUa\S^j`kaTTa[NPZZPZ`ZWXT]\[UY\Z`\]e`W[][ZQZU^RfbQ]Y[bSTRbX_[cWZVaZ]WX_YS\_^`ZNVZ_`UXZd_ZQ[ZUYWZUWV]XV]Z`TYQ[[dgVaYVU_XgVVRTY`[X^YcThURWUT]`_X[TYSVUYZ][aYR`WT^`^WS[OWZ_]gQbSZYV\QXZXWTQa_YNaZa\bZ_Y^S]aV]\XUfdXT\ZYZ[V]R]W]]Y`TZPZV`^]WV^j][Wb]ZK[d`c_b]]bWWWY\XV]TSaT]ZVS]YW[TX]^Z]^Q[SY_[X[YVddZc^WWXW`PZc_c\[XTV[Xe_RY^VYUXQc[WXZZc[T^R]U^^W_YX^\XYVUVVY\UPTS_`[ZX]eZ_]]U\^ZWZWY[XVTe[\`TZ_RXW]Y]Z]ZU[PV_TOQTT`ZWVZSU^XTYZ^ST^`[U]_aZS^^YiPYRXZYZWSY^SZcVXXZ]_ZWaaX\dSWSTX[bYTZ[TP`SXZXVa[T[X`Pc_WZY\[SWZP`]UUTc_ZW\[\QW[R[UZ\[\RUYZaX]Y\WW\_Ya`]TWOWWZUa]T[aZZX[TU[YXR_`V[`P`YVaZ_\ZZ^Vb\\WYUWWV[Sc\Q\UXSQYNVVTS^XYZVOY\X[TVTc[ZQR^_[WZU]U\]LRmYQZ`Y\Q\UX_\U^WTV][[dZ^UaLUXX]Y`ZVV\U[UVRYVTV`X]OZ_e`TYdY[VXZW_W_RZTTXaNbVZY^\SVRW[cV\VfU\MY[[Ya`bV_XeV\VQZ^QTXWR_R\RW^d^XbX_Z_[bUU^WRQ[O[d\`^\X[]UfYY[XeNUZ^QUV\fP_^YSd`][SSaW^aTU]Y^Z`PJW`dZX]eYMZaNV]SbU]U^a[a]WVaaSfh[X]]Q\`[QRUIQ\QT\__]TSX_]`eY_^T^k`Z\^Y`Xf`RXb]YfYM\Jc\aVcXPWT_PSS[U^RWQSZ\TToZ[VX[[MYW[YTcWcXYQRZaR\UP`Yi_NfTYRP][^UQSZNYZWdY[MUbTRVQTW\Pbe\\dYXTWaOYYM[QZXYYgd]RR\aXg\VW\[TbVRX\V`XR[e`_RRdTg[ZdYf]UT_ZTY]bYTT]]Z\WYZZVRXN^Q^f^XV\]KZVYVdU[`[YVVNVX\V_TUZPYRX[Zd\^M_\aXT_R^Y`SSZ_gWhL\]^dYdUXZWS[c[LP_ZZR`P_iZ[bV`XW[VXSfPY`dTSZc[^X[Q\TYT\YRWVXXYUjULNY\U]V\b^TWXU\[[]VZ[_NPVTV[T^WSORa_ZW]\[S[TVTZWWVeVYY^SVb^Ya[g^qVPWYR\ZW^SViQVWUWdOXUSUaa[`LWY[VSTYT^]aZT]XgVkOXV]S[UZYSUPYT]WXSTR_XZO^c]\UX[O[[e^_]b\`OTX^\hV^d_aSVV^VWSbcRbTVeYX\V\bQ`Vb^^S[X_\TXa[JTZ^^VT[`V[L_W\Xc^[`\UZW[V_^[VXXaXW_XO`^YZ`YQUTVQV^VXQaaTTN[[[^\V[UYXYbd_^[VVS_U`Q_T]W[ed[aSXZT]^ZY\_Z\c\VQMV`jRUQQ\bVRWSVVR\\bg^]UUUb`UaX_[_NU`SNRU\``ZVa\WJXZaaUS_cW^N^jV`Z]`YV\^ZSWZWZV_V]RNXZjT^ZRS]VPU`lS[VUUU[Q]]U`U]^`UY_]\`Z[X[Wb[N`fU^TUaUWW_am_c_TXdi\ZT\dfa`[]QdaZ[WW]X[_[\][ZIXWUTR[WY[]ZVYUZXT`V`[aYVRRUU]_\ZXd^YHaW\_W[Zb\T]T\PWReX\VQUVX_ZaR^NaU_Q]aXe_[]YSVS\YV]XZZW]]V`_Q][[VSZ^U[TaUTUQZZ_b`]Z_WX\TY[eXTcYc^[^TWcWccYaTRZTV\ZWUbY`]_[T_YW]VY[]`]X\a^TdSaZVYZ_]SRZ^\PccXXf\UYWSY^XXh]Z[X\^aS\X\OQ]S\bZ_XP`W[\_QXT\[U\W]Q_Q_WXWX\[QRS]VThTfRSYSYUZYUZdWV\a__dVVYY\U_\bYZXZ\Q^]WXWYXT^ZY_Y\Rai]]_^UYRZP]cZ\U]cYS]YWTU[ZS^VQQ[VaY]U[ZYZT[Xf]\[\aUSU\]ZaOk^Y\YV\\[V\bWcWYZYVVfiJXV[]UX`aUXcY\WZXO]]XTV[]aX\XW`V]hZYUWVUVWZT[]aXWS^S^]Sa_Y^XYYWXYd`]ZXbT^\ZcV[^``\`QY`W\\hLZ\Y[\\cRY^R^YXf[WV\VcTTb[V^RLWbYX\TYVWNWVX_``]a[U]VXZZZYTY\W`XXZXa[TZVW_Z[^W[]YP]TcR_U[Wc\\VRiXORV^TTVW_]WUWP^WX]R_d]W^_V`XW]V[YS`XXZdWZO^YT\Z[ca^_c`]Ua[NTK\\iW^ZZU^UUVRZaX^]WUXXW\TX^\N\Y]X[][X[]`cXQ[d_Tk^R[`LR[P]^Z[f]WYaV]UW]Z_W[c\[_WX[^\dU]TQVQ`[\\\Wb^YRZ[OYh\]XVaf`]_WeUWWV\[V[YV]]TWXT[W[Z`TYZ`Yl]\cVS[PcZedf]TWSMWTZWTYdZRZ^X\b[^Y_XU`WYVP[XP\X]Y[YY\^`Ya\a^ZPZ_KaYXY[ZZbXY]VX]]dXh\S[P^WW[W^U[Z]SZVSSeeW`[OWS\YYU[UXQXaVVXaYZVWVZM_\WUaWZX_YSYSX_^^R\Z[YUU]UYbXT^RW]X\WU_XYVO`[YXWQ\_[UURbhNY]VNa\ZZWWTUR\TYS^UY_XSZTSS]ZUSW_^`VUT]W^V_QVW\a\WRUWWUXZY`W\WS]X_P_YYV`\VeX_YUZPVX[XNSS[[Y_VT]Z[^X[`U`[V^S]W[TTWTVb]T\ZWZWZ_]\VSaWYZX^U]T]WTYaYVf\aXZaWYXVTP[c]TZ^]_\S[Z[TbW\WW``bWVabY`ZSXYW_RfYc\XQQZd]VS`ZW]^ZTWaY^b_[ad\]W[UT^Xc\]X]]`[\U\OY]aRW_^b\`WUaYY_YeWdTb_[XYZ[]XWT\USRT]V\a\XXVdXW\Z[^`]XN^_[WRTWXUY^\VRW]``\Y[ZbPVW^^^PR\[[TXed[Q`V\U^U\YT^W]aY\[UaYU[V]VWS\W\XY]ZZ[RZ_`LWYXXT^_[UZWTSSW\U_\WV]VS[ZT]Y^U^^Z_SWZhY\ddVY[_c[YZ\[UQZ[^X[aZRdVc[VSc^NY]f[XX]TVZ[``[][aWWY[`]ZUT]RQaT\`OQcWV_TZY^][]\YZ\V`VRYZ\\]^RWXecZ[_\YZUU]YQWYU[YYZY_]OW\PT`\\a]YfVZY[]_ZW[`Q\XQ\T[[acXh^USW]XT[]VYZ\NNS`YVaQaXaTTY^Q]\[[TYYW`V[\WT\YZUX[VcW^SUefXVXXV`Z_QYbX^ZV^ZXX]b_`UYTe^Y]TXUYZ_b\XT\aS\YZfRZY]`[ZbZSPWZRN`TYU\YZY\\\ZVSS^V]R]W^Ob\VjZV_WSg]TWX^WXW\]U]SWZUYQY]TSaX\]^WTYXR^WVVW[W\ZY\T[TZ_TZ^T_XVTdSTW^XXXYZWX\Xa]XY`\\VXePV\YaZZWeX\Z[V\X`\]Y^ZTbUWUSY_cZTZZT_]YUVWZTZ]Y]SRZYVW_WMd[UW`[YXVS_Ue_[^S[^XR[\ZX[[Y[[[T]YZaXYZ]W]ZSeV^`_]U[WRZb_Y\Y\T\R`W\[UZY\XafaXZVXS]Z[\ZVXQRZ]YZXWa\URPY[WTSZYPVUXXTTZZUZYa\YYXXSXWVOWO\cUbW\TR]TX\SWYXZUXUXY]Y[YVZZ[_RZfdXXQZ`W]^aPXUaWW_`U]QTVQXV]NV\W^ZX\XYY[[XRP[U]UX\\[WW\[QX^ZK\VPY]aWXa^S^S_X]O[_\^RTeVX[UYJa^VeWaW[XMOYaY`S\[ZUOXW`Uf\VWX[Z\YZU_[_\\Q^LNZaX[YTT[UTYaRO`X[URUW_[ZYT[\_a[XOWW`U`\bXd[fZU]RSU\W[ZVZ\WS_TPX`T\V[V[WSUP\T`mWYZZ`TPc]S[bTp\W[[XV\U^VVWZYNbSeVUfY^`_PY\V[O\UaWchVaP^][[VSd\RZ^W[_ed]R\T[UT][SZU[W[Y[_`U[YO]YXNcRW\d\W\O\XR^UNR^YU`^WRXTVYc]XW`YTY`dea[]WZZWW_]aYJ][O[bjV^VXaVaRTYY[[Z]RVSW[ZV[VX^_[XZX\R[YWZWYUX[V^UZZV^RR]TT\X_WMUbUaW``V]X]VU]XSQaT`JZUXZ^YUZY]YShaUWSWVWXWU[]b\_RXT`UR^b]WPYVS]XZ`U]ZWe`UYT]X_bYbZVYZW[[]`XXWVaZR]\SZZ[a^W`\]QTUW[O_UUXX`YVRYZVPXY_Q\Y_W\`caYYcVPW\ZSW[WbR\YYXXTW]]TXVWVTTK^RQXdVP`WVXXVZ`T\`ZUaRRa^YV`N_QUd_][Z]^TV\ZW]Z]\c\[WYY^YUXWW_YXV`XZY^Za[SUcZW`VcWVSLXZ_QWYYUVc]XZP^bV[`WSQZYa]]VSSXSZSX\XW\XaVQY[^ZW^YV[XZ_VMW]YXW_][XfVZR]__KaWXbQTYY^X\RTW`U[YV\g]ZTXR]W[X[WQb[TTYLW]U\SSTYTSZ[`dVLbV_U]dTZ[^U_PUTXbcX^OYTa][T^`VVYdW[ZVX[^`WX]VRX_VWZ\RW_\ZXZVSR^]XYU^PVW[WVXY\eZ]ZUX[\dTZWWSU]SY^TP`W]VYO]Gb_YTZ\[OV\VXNQWV[USUUd[bYXbZ[^KXQ`\P[M[LU^PYWXaZ]WW][ZVgZ[RTWUW]^ZWQ_Y\^_aXXXS]RX\S^OSW\WTXY\R\TZ[_aZTVX\TXjhcX]]]WS^bV\X`W\SXjYXXWXVWT_]YSSWQYUZS`URQbYVQW_gY^XVW_^\X[d[_\VaX[TWXU[XYZ[QH^_X`UfeY`_^ZedX[QVOT]`PXbWYVZ^\P[YXX[m[\d\RY_^UabZWS\U[\\\X]N^\R_W]]U`UZXW[\Xab[SU`NYYa\VP__Ze[][]a[cYQXZWQRY\X\h\[T[`aZXZ\[]YXKeUXR^PX`[QXWU`^UZRVS^^[WhZ^UgVYXVUTXZ]XZ`YY^ZU[YbgUaRU^^dS]TZ]Z[[k]ZT][XYS\_XbZUWZV]\_[YVYZSTZS_aWYNcaTd[WXSZ[f\YRWZeYSacO^c\`^R_[Y\]eSRZV\WVQP_Z_WZ[Yb`SSTYgW]i[UZbS[UbV\]SVcQWV[[W^XXiVYXcVUXZX]ZQRRWaVZW[]Wg_[X[e[dXSW]V[ZVY[YZOVX\cS]\RZ\^]][aYZZSdS]_ZTpbXTWVUT]T_YSV`YZfN_X]^TbT_L[_Y^ZXZQT`^TZW]Q]QYZSR[bZRcbaRPUWbZRZ]SY[Y[^U]X`_SUS_]NZ[]R[QV[XcNRXVYY]`WTUY]QX^ZaT[ZY[^]^UTb]YRZ[ZZVRZZ[SX_`WV\\[UU\V^ZWX]RY\R^]UbR[V_^a[UdZTXWZS`S]PUVgVY`_[Z_XU_]ZQ]TYP[aUeSZ`XeWXSYUWUcY[S[\Y_RX_XY]ZXRXYVZXZe\V]f\[R_[TY[T[SSZX_Xb\ZZWec]YX[W[\cYN\a^\`VUTUbXbY[Y][`S\]^cXTZ]XSa_[WU[\XY]P^Zb_TZcaZ^\MXVcYa\_QW]\\^[`XZZU[WYYXdgfW[`a\\PU_XSYYYbX]f\aRVT[`MUTV`Wa]UZXUM[d_`XZYa]VcZ]WXWeV[WZSY[ZYZWR\WX[U\[^O[dTZXaZXTUXYaU[YYX\V]S^[W]YYX]Q]SaSZ`XZ\[YbV]ZXTU`i`^YYXXXVWYR`\eXaUVbPT]WZx_bNWX\QYd\W]LU]WWSZSX]b\dXXZUSOUj[^YXM\TU\_dUX[ZZTbWV^QX_RYUYWROY\]]dTT[k_PS]\NSZYZN[Y^WRXY^_\d\PX[YWU]X^YaUY\Y`[dSYeRTb[\Y[UYMj[]Sd\W]^^`^][]YUTb`YSRPd[W\Y^`Z\S__\KTT\QWOMg`XQ^YXZT__Z[[WZacRi]\YTW^_[YaaT^_]U[X\Rd_UTTSXV[`YOV[PV\TYQZ`V]Z`QZX\]VO\XV`SR[fYMTWYTZZTVUIW_aY[gTXWSUW`Y]\V^]X[YXWYZ]`^b`[YZSW`]YWYba_W\YYYX_RiTWTUVVY_^eU]dQYWRX\dXV`Y^_V\b[RX\]Z^XYShRH[YWU`dZoXe[TSTO[Z[V\]X_WZdR\ZY^Wc^]QTW`Zd\ZdRdRXUSRVU\T\VTZXU\T[VSe]]PU[Z[_VXTO_[[Z[Xa^[VVZT]WSa\WVaX\Ybbb[RQVX^c\T\Z]_XU^bQ^\NUYdY`bTV`TZYS`QX^SSWP\VXUSYa\O[Y]YXV\Z[]SGRYQ[_^UPV]fYbXUZ[Y]WWafd\eWUW[\XU[RV]M\`VVWZZZdV\YWO`YYTSXS_WZl^dbaS^O\ggY[\bY]X[SbZWXXUW^\]^RVUZUg`WVPb\VQ[`ObW]XXg\^XaZXa]^XciU[J[VZYWV\\YU]Qh`WWXR\ba`ZXY_]YOT\SRY``[Sg]adbSbX]QTcSbZZ^^_[[T\RRY\^[\QY[Z[a[U]SdXT^XYNYXVWYYSUZ[NV]ZVZWX[ZR[ZV^XU]ZXN^UbVXT]TRZ_Wd^]]WVYcWTW]TYYXQ\Y]XXa]V\_V][^Y\WTW`QZNZZYXW`W\ZWR[UgSYY^OS\RTXYSXbOZYSSQa[\]ZVUTXVSZXRX_W`RZ[WUSTZ]X]UTXYXPT\Y[[ZYZcT[TUWTfT\YSaXRWYWUYWVcO^Q\bW[ZVZYSVSdaZ[]ZcRS_]RYRW^SOP_\MYLWTYV]\WX[R\VY^VXXXTWcWY]WS[YZ[_Z_VXWaY\XUVWcVU`dSZ^YSdSZ]]NT[RSPRYX\WZZUZUa_ZXUZWS\[bUS^XSbTU[VZVRX]WUV`XXXXa^`Ta`\\UW]]W^]aY\aXYV_VQYZZXVWTYVMWXZYS\ZT`VTXaUV\T\]Z^ZTRQ[RNTVTV[^\UgX\XNY]PeYSaVW[da`QX]Sg]Y[dYOh]`XVdNZ[dVUU`\P]W\^]PVi_V^\_^Tb`T^`]gRZWYTPWYXVWV_`TmcXWXWWRYVVQTXYWZ`TYZ_a`OU_T[fVe]]YYaYbWbX[X[[\_]Z]^[PRaXW`fXk_RZY[^dXS[RV^YO^Ua`WWXTVVkmYPVZ`X[YV]feYPS`T[]h\bbR\]PYXaQUSU\_Z[WVgXSmW[`ZSWR^XYTRTY^NW\^ZW^bNZR\MWLK^[YQXQW]Xa\^b`^_[\TX^`YWXcZ[YQVYRWXX`W`ZdSSS]V\YZ]YQ_[VZ[]UVTV_\`_W[^[U[VX\^VR]dRZV^UUX[d\Xf^_QV_ZYXYVZ]\dVY\_[QW]WUVU[VRXZcYY\USY_XZb\TYVTYYYYbTd]`RZ`[[XXZXWZTWUX\[RU^TY`X]VYY]Y`[[[ZVb^_X\TXYSV\[WY]V[[ZXX[YbYRW[UWQcW_^UUaYWb_\VUUS`baSSY]Z_]L[`TSdSY`^`W`Z_WR]\\\XYUXVV_VY[V^RW[Y]ZSZXe\W]T_`ZY_]WYcV\]a]]Y`^[aXSXbY^dbU\[Y\XX[PV]Z[aXQU]X[Wd\ZZY\^Y_WXZ`a`aVh`X^d_aZV[X[X\b_Qi]WW\^U`]U_WX`MUWc\Z]WTX\j[YVXc_cVUZYXW_Ta]WRXZ_]U`YTTYTWXX_]ScOV\RZYc^hY[\WTV^`^X\W^UWZYZ[hQTUU`R`UP]h\VZSXRVXRQYQW[OV_YWS_bY`R`XUZPUZXVMdZXPcT_jaV^\URNUHWUXMh[bQS]O^_\Z[[YYP\^X]MX]TS_^aQVUVSZXX\aR\__VW]_fVT[c_Y]VY[`XU^ZY\^\]TUYb[KWT\bSSga[S\L^ZY]`]S]Q`[_USW[SWZcQU_b]\Z[RU^[P_Z[^G`UUZYXPVTXgQ[S\QPcZWXY\\V\[XhS\]c`^XVYV_^bP[[V[\ZYYaaXZS_OY`dOXZ][[\\_X^`bV[RX`\X[\V[ecXYQ[VUYY]U^XW\dYXYS[]\YTb[\_TYcUPSXbY[La\`YP[[bSXZ[[ZWT_X\^\QW\TN\RbWS]^V^XZY^aXcQRZXXhWYb^VVMOYXUUZN\RTX[S_Z][V^aSSYd]b]S]_\XX\TZ\XVRX[WXaZOT[_QZ^`Y^T\XY\Vb\_ZZWWTQOeW]\\]ecRZ][_P]Y[YTSU[aj[Ua\VYY_^bWXaPXaYnTY]X_YWhSV\fi]]O`SaYbcWXUSVSZNaa]aRaXhL`]^^VU_c]XTT]`[XVcU`XWUY[TSZU^bS_UXWUX\`X\^[X_VTVVUgW_\XV_^XY]`YQcS]Y\YZXT[Yaa\WW[W`TY\UWbWVUZYYYaYb`ZYQ]]^`W[ZU[`]TVVcZYWdQ`V^^YX\_aa]iR[Q[V\ZdT`TZUVQ[cVhUb^ZY]S`WR\XYZXV_]Z_R]ZXYWYW][OR^RVZ^_VQY^_YWW\^VUcZbX_ZfVWSZaSR]UW]\aYTX]XWYR[[`VT]hWXZZZTa]QXZXXS\XbcV_aaQWYQXYYVRRYVYYVZhTV_[WcWPZ]OUZ[MTW\_]XVZZ\`SY^c\X]YZYPY\ZVc_^UY\RXWUYcW^YW`e\T^`cXXYVRVVZXYUXYWX]VYaUSdX^\\U][UP__\WUUY`b^SRK\__\SSSYUeWY`ZVTRYUVUXZWVZ]Z\T]SYZXX\UMeNXc][U`[^b`]Y`TVR^XZ[YZ_b_SY]UR[YZW\LgUScXRW[_gbXY\TYaT]eaUW`_Z_Z[`a[^VZVUfTYUQTVUQ^TYVVZZ[dUg`T`WZb`ecZVb[`[YWXfdX]kUaY^PSg[`WT^[VeTXY[WORa]e^YVVYcR\UWcZY][W[VVg\TNUQNXcQVaTYRUkXRTbSX[\SQTca[WNT[bUW]Z_\[YWS]VZXVYVXTV[RYUUZbV]_]VHN^XTY`ZVMRZZ]WXU_[^kaXXXaWU^TY\XV^X\UQ[ZYZf]TT^[_^UZUXUZVWROaYWWUdWSVWYL]_XY]VY`U`[[YYRW^VWZQ]`]Z]VWUb\]T]fVaRWWUXW^cZ`]WQaX^STXXP[WWRW[X[^SYYZXZVW\UX[Z\dYOOcU\UXUb]cXY\S[WV^WW\WY_[]_YeKRZl[_XaZWY^bZ_V\bYY^VX\VVX`ZUTW`Z^YU\TW`\UY[X\_UbgZSX^^RVdXZ^S\]ZUVQS]V[WTZYbfJbP[Z_WW\\iTSO\^S\ZRYZYV[U[a\T\SXVSW]X`M`QSb_Z_[V[\YUY[Z\T]Y`WPXTPV_U]V^[bedW\U[WeaXY]ZXVSX_XQQV[OXWaP^V_Z^^[eRUch\ZU[VWYbX^TWY\Y]YeeTYPWZXVWZY]SZ^VUY]QXaYVXYc`\TjQT\X`[V[`\WT]WYYY[XYU[\dVYXTVYTNTYaTS\V[]SPZXXU\OZ_ZZYS\[_\VVj\Z^\Z`\NT]Y`VdNTcV\\YZ]]P[Z_Y\aUR`V]ZbY]i^Y\e_XRaSXZ`UZ[^Z^PXgZY[aWSPPWQ\`_]WbV^Y\U^R[b]WQ]\T`][VVVXWY\XWWVV[VY^WWZ]b_QZ]^YP^WR[^Va[[XXcSbS^Y`ZY]\VbQXW^cT\^YT\V]YSSU[SPY[]TXXYYXWcWS]YUZ]Y]UUPTXcVUWMT\YU`S]QVVUVZZRbUZZ[_XZST\X[TaT][XY_[b]V`TPYVZbYbWZZXVa\[]]\\QUXW[_[[YYYSZ]\Y\X_ZY]URXZVTYU]][]X_]WZZ[[TZfYY][YZ[_Z_TYZdYZ_`TWVRYWXYa\\\X\U_YYSX^SZ_c^`Y][UVY_\b_P\Y[^STXXQ[Y]]_WZ]N_Y]TYW^X^Y`\]Q`T\U`V^^Y[`_aWPWWX\Yf[b_V[XU^dXXZY[ZTZV^Zc[Y\Y]W]^][[U]b[W_`]aZ]^TU]SXXVTS_YWX_]W[ScP^Zbb]WWRZag[WaW_RT[WY^VZZWP[YTTdU_YVdZZO\W_XW_Z]\UY_eQaZU`YWW[UTZ[WTXUT^\VVX`]]R_Zb^bRZU`[R[_UZXXWXb\^`\V[RWXSYWU_[Y]_VZ\UTWVcVZ\^UU[[Z^WY\X[ZcU`\fY`WULSU\WVXJUS]TOZRUMa]WXQVWRaJQWfS^b^VSYa[]\[ZU[UY^USVJVjLVWZWVVYKVZR\bR\^\^_ZV\YbfkWXYNVSZ[UTcVg\\`]`O_Y_]T^jl[Y\ZKU`PVX\[URRUVV_]X]ZQRXZV_`RWSU_[[W][UY[\_XZhNTOVXSSZXN]\eV`_`T`V^]O`XY[cZU^TV`RM^[`WU\bVUb]^Z\PP]VZ`VPUVi]\TWbYVRaqPIXU[Q^Z[RVUWeZ^cXWVQbZ`RZVRYQVVW\YRY_XUZRXWYaWTV\VZPd[WPZQ\]ZTX[`cUjUbYYWYQUQ\Y`T`VeTS`^XRWVP\XWPRQWU]SZSYRRaOWe`]^Y_`eSWPXTQXR\V__\cadQ\X[^NZZ][WU^OPVLY`L`Ud^SWPeVZ\\]Sdd`aWVf\WZZ^Y`YYS\^X^[]cQV[_\QX\[W[aX^c^]XSYTWZWRZS`TYVZT[ZWRVZ`XXZ^\VW^_[`\Vf]SdR_SXYY[[Zba]\Z\Ta`_^TTQXXQ\R[ZSa]_`[W^W__XaXW_YlW]\]^VWXY_W^VXbXMRXZZZXSUdZ[[YJW`_ZURSS]YZaWX\_^XVWZ_dXRf`XWZZ]T]TcV\dY[Wj\W`UXZb\\VSW`[Z\c\VdPX^UcUXbYUOSZ]Ub_[]Z[VSSYcYVSVSaWPab[Zb\a`W_Ua[T^d^Z\[STPSZcW^WYV`Z\\XWWV\WUVS_XUSY\[OMW][WY`TYP[YNWNX`QcSY[SUT\YaUXXZWZ`VXQW_ZR_ScYZgX`YVZTbWZRXRU]^SW\WYV\Ub[XUZ^[aZcf`^RUY_[VY[Z\Y^ZS][QQY]`OQ]X[dQTd\Y\]Y[[V]ZVZa_XW\[\YR[\_WTST`W]UT^YaNQYVYYTVV\X]Vb^WZ_XMT^[__YT]S^WgW^UTeY`VYTVZ]VY[WZ[\a]a[YUQaY\XRV__UW[WT[XVJcZa]^[QU`]TYY[Y^VRZZ_SZSYX`X`YZ\\VZZWTWaX^VeZ[\[`VZ`Z\ZVSTY]Ze\XRVZX`Y^VkVVVVYTY_YUZ[Whh^YXV\[XV\U\QPQWZYVXYXUZb_Y]]WR[VSV^S[ZYZ\`[WT^YUTT\YXTXMP_RX`UUXgZ\TXa[]TW_WW_Y]V_]\WW\X[VL\Z]a]XY`W\YYdWSTXUZ\V]UY[X^YXWTb_\SWY]TXW[WX[V^XVV\WUY[SZVT`\QPXTY[]_ZZTaXZ\YUZSUXUfPY`Y\bXQVTVYQZa^ZWZa]W^WVdY]^XPT[UVZ_a\a]WWWYSU\\YdUTT\YZV_YZZT\X\]W[YVYT^bXYW\cWZ`XVZT[T`fUWVY^W^XZSU]]`T^dX[\NUd]X`][V]_VWWWZ\ZTYZUVYTaZW[[ZTV\_[VVWSR^VYWYU`QSZSVZ^U\VUWTS_W[YURU\RY]XUSU]SNYZSX\MYYNUVZR]T^]\\N`[X_WZ\XY[UVXWVTXYQYUTWZ\Z\Y]VaRT^VYZT\S\UUY`YYOX]LZNKVXU]\T\ZWYX^PW[dZ^T]]Y\NSU[W[TW[TS][SXW\XWWQYLWZWUVRW]^iVa\Y^[WU[RTb^_X[VUY`dcW[W]Y]RRNQ^TW^_WR[fdUWUdTRWT[XVZWVXVTVVRPUY[W^Y_STT\`VZYZUSVW\WWSXYX`YYaYRVYXJWZaWQWVVbS[`TfUXVWSU[VVX]OTTcP\ZWbJZ\U^ZgV\\[]WZXc^dXW_ZY[[\QVXXTRRXRS_PV^UPTWSYWT_X\XP`KV\[\XW_TZc`V][c]ZS[TdR^VTT``fUWZQ]VdPYOcR[W`eJSY[VY^STQVQOQWZU[_V[VaTVU[Z[]XSWVfXZY`S_TX^]XVYZZX[VU\]YX`WRZ^W[SUY\]YTVT[]ZUcYUN_\V[bYZ`NcTZRV`bWUZWVXhYb]Wa]SYZbYW_Y`_ZW_U\aN_[[gZ[]XWWTRS^V_ZY^WRYha[XcZ]Q_JWRZc\Z`XV\\URW[[e]__\\VZZYcXXY\aTXT_XZV_V\`RQYaae\]RX\XVVZ]Y[Q]W^U[\_ZaUX\ZYZZWY]YPXX^^\YX_SYQV^^]WW[X[`U^ZZWZ[UV\[YW]U\[R\SY[VXbca[ZYXYd\R^XZW`cQ_VZUXWWT^TU]^RY]g[___cWOaWV\SO]\ZVT[Z]_VX\\R]YXYT`Z\RbTY`X\WW[XX\_ZU]\ZU[X^W_WYaX]XW]WV]]]]WWTYZ^_]_^W^S^ZZ^R]]\W^[_L^X\]c^UXY]W][_\bXSS\Z]V\[Zg]\[]YXXZ`\XY\`[ScXWT]ccRXRWb[]dZaS][[]WU]`Vc^_][X`ZS`\``V_ZWYZ\[W\[_Y^`U\VR]]U^YY_UZ[]\X[X`^acWUZ__]bV_X[ba_\\SNMgUWX^VTUU[V]RfXT_\\[U[X_S_PZZ^OeR`\SQ]UQ\ZZ\U]``UX\\`XYX_^TW[^Q]PUWTXW]YX\VX\QZVc_\UcPZa\h\`[^\^Y\VWSZY[[[XUYS]VVTZZ[agV__[[[a^XTUYYV_T_]TWcYU[^WRT\a^MZX\SYMYYZfS^VY_RNXT\U]X[R[[XX]__fZSX[XWW[aZZU[[\YRTZVU[`YVSdZZTZZURYa[U`\O[XV]`]aU`]bR__XSNT^QW_V[ZW\ZU[VNV\N[UVVY\`jeY[XdZ[VYZRiPYY]]Q\]RY]QU]W]T`Za]XU\YXT]^Y__f^[Z^_Q\ZXSXU[_VYQYZYaUYQXZTUNX][PQV\`U[X]W\XSX\\`aXcXVRUb]XgYXc_USW[T]YbUb[Y_[UPYe^cYVV`\aYYZZ\Vf^]YUkPX[^W]ZX_YbdVX^QQ]_U[^W[\ZP[`Ycc[SWWQT[\YcUV_`[ZcQWV[YLTSRW^QSX[cX\XVZUZTaZS\c\X[XYQWSWP[\W\XUYUaW[]^[`aT_ZeTcVV[[[YY[PVSX^PP^S[_YVVS_U_VX\Z]^[\`V^\`UW[P_[X`X_YXSVYXOV]TcTdYaS]XTX\VWUWSZYV]VUYXZQS\T][\\Wd_ZZ]]lXd\_VS\[WVU]UW\[_WXVL]QS[ZW[TXcQX^O[[[^`ZXd\UZ`TN``X_]Xcf_ZT]Z\[TYcaYbXV`]SfUXYSbQe^^^ZZRNUVNb]V_X\_SYY[ajYZXaYVUU`XT\cVeZWT_XX^\W^ZS\SbbZX\YZXWe]Y[^[ecSeUXZXY^VWUcSXVYZZU]dTiceaT\Z^JZSWVZXV]YS^]aVWR[SaTUY`ZRYY[ZZ[[^TTZb_R]Q[VYc_V``VSS`TSaXT[QUbWX\^_V[^_XTZZ\]\]WR_TZcOY]SUSZXZ_dVWYU`M]X_UT`USa[W^[]XUX\[Y[Y]W\Y\di]UXSkVZZ\]U]`WT]g^YWgTWbdWWd^VZ]X^V[Y^_X[[WW[bXYYbZaX`]ZYYX_MhPRXOY^ZUdXVY^YXVRcZX_`g]XKOVaYdZXYYU[ZacdW_Y[WafR^T\P]^^YT^bqXYU`d_Z^XYVSWY]Y^^VS`XPPZ_[_T[^aXVRW_a[a^Y]_gSNZTVh`XZZ[ZYXYX\[Y]]]Y]YWYXZl[daY[\cV`[V\T]VXW\VYQV\]Q[\_[Y[__`UTTXXZV\]Wa_X`WTUZKV[\V][_V]VXdYUVXZ^\aZUT`YUZ^W\\Q^b\[M_X_XUaTV_eZUTeZN\]ZbS[\a^VQUWWRYS]Z^V\Td^Z[\`ZWSa\\TY\^YZYX^aY^Q[Wa\WXZW_\QX`ZW\[SZYcZ]bbY_UZYXYX[SVZZXXT`[_[VPW_fXY`YVYUSWWS_[`Y_]S\UWTV\]\_i^X`TTX]VZ_XY`aW[cS\ZZZb_\RRSW[OXYY[V[WVP][]Z^a`TR[QW\Z_ZT]e\Y]V\\YY\R[X[XYabYTURW[`YXhX\]Z^TVXY__XYbZWXZ^[[a\]ZP][]X_^cZRb\Y[TXVZ_V_W][X``RXX[XcZ[WX[XTW\YXYZPVQTb`YbZVZgZcY_Q\YYUVV`YZ]\T^bZZhZV]^\\YZX^ZcXU\^UYV[\QcS\XY_e\Y`d[RUY`WS\fbUYZQ\Ua_WYeWT[\WVY]VXTZX`_XZWV\]_YeW]T^XbVQT^TWRXYX]V\Pa]XYMV^^_YSZ\RS^RXXYZ\W[Xdb\\Vb\ZQUN^b_bbbT^UZ[`YY[S\X[ea_Y[\X\WUZRW\\^]][KWXRUXVWV`^ZX`X]YiXeWYWZXZY_\ORW\Ya_WYYZ`gaXWXOXZXXTZFV`YX\dYWeQ`ORZ[OTP\\[e[Z^cXVZSW_TbYbYVV`WV`U_^UYXb\RT_YUW\OXU\STZZ`Z[WZ\cQOSaN[W[V[^a]^`]_Y^\YYhS\]dZaK]]RPiV[RXXWVUUX]c_X[SW^Z^TZXj\XX[YVV\`fYSS[UTWWUQU_^[VfTT_ZZXZW[XN_^_]U`c\XVXVPU^`cXUTTTgZYZ[XWYST_WTX[U[b\_[[XWR[bUZS[O\`]\UYY]Z][ZPZb]X^\]\ZP`]^Y^WP^^\Z[_`[W]Z^[TcZXWUX\^]PW\VRT\QU^ZQ]gM^Z[WVPMXT]dU_UIb^S\XTZSZ[^RbYY^V]^WSX^W\R^]hY_WTSVXi\Za^WZXTW[ZZYc[[\aN^Z\\YZRVXXR_n]U[WVVU^ZXVPYdUZbUVY`WZRV[TRYZWY`eXZ`WY_[U[gSYWdYUX`W[_S^OT\Ya`[VeMaaVYMUdV\OYTUTQZUT[Y[OS``XTS]YXR]\beeZd[VaY\ZWaWhXe^QP`Z_YWS\PTaXY]\[TY_YPWO[Y_X]XUP]\][YYQY[Y[`cXVRZY^fY`Y[XV[YSd_XX\R[VZ`[V`cX\_[gl]\^ZV[[_^Sa[[R]QXcUY\\`V^_Z[WU\WZdY[Y`i]X[W\XQZ^YeNa_RXbP``_YcZRZW_UZXbaaZ\W]P]\RcaRS\XXVXmUVUZ]`S^\^S[Q_ZUdPT_XX[WO[ZYZ[Y[W[Yd]]agU\]YZ[XZe[U\S[YT\_Sd^\YYYXTU]]]ajVqVY_cOeTfWUeZYPc^R^^aXW\S``YS^^P[`_TT[VUgUVU\\_XbUVSZX\WQZPSSVRZ]_WZZ\TWa[VXcZ^[_N[[ZddTbi[MRZdNT^^`V]\[[\JX]VZcUVZL^Xh\]RbXUVSWZYU`WaWacXVU`ZTUL\XZ`OWaWWUR_]XR^]TS[T[\RTYSXXY]]Ub_\Xbc^YT^^UU\c^YOP``^WXY^UZ]eg_TcYQZX[V[XRSPg\Ze[WXZgS_\Z]TOORTTYWeTbc\\O`]XWU[RVNXVWPPR\`]]SSTVdX\Y]HZa_VUaX_\YZW[UYKY\]PWSU]ZXVX_Z_[S`aX_VW\LYYZR\W[YX_WQR\aPWZYYZ]]fZX[Z[V[VI]^\\YSY`NQ\b_RcRZe`RW__PRZ[V^V\^W\SVkWZY[WPX]XYZV\\][[`a[\d\caYSVOXWbXYTWXVQQYQ[WZ`_]T`XS\cZdMUL\]\T[aXT\VYYZ^XW[YVZ]]YU`e_WOU^YX`UQZX[VVW^Q\RZ\U[]QYW`Q]ZRT\O`ePh`[`URaSba^]VV`\SfV[aXSUXZdSPVOQ\\SbSZ\RW\_YXeTYWVS\XXQPR\a\b^QPXVVX^ZXY\Z]U[TVVbg]YVS`XYa^U\aRXbWSY_X^XX[MXW]R\]SWQS[XZX^bWWRT]VY_TeYYYWW[W]V_\`ZZP`[W^WZWTYUYT```UZ^UQ`\ZMR^VZTX]ZZXaMUbVU_Y[V_YYb]YR[W\]ZXaZWZWUZ]ZWYUYYR``VYXeXY[VYfU\_U]dWXaXZWXXXWXZYYYT[YUYV\]]TXVUU`ZYPaW[^]W`V`fZ_]Q_e[TZWZ[KX[^X^_SZ[W\YaW[YWX]TVWROWXT[]^_YYbWaYW[YaXaSZP``UWU[\\Y_\d`YcTZ\`WbgSb]SV^_]RW\VY\Y_RSX``bYX^YbZ[[TY\`X]RW^ZTR`TWZS^WWNZ^Z[ZVW[Z`SV[ZQ_ZVZ[\NV_]Y[iXUWQYUh\Q\YVdU_[g[U_YW_]UZ^XaTLS]XV\aYXcUYcaLN^^TZbPVb\Q]cZ`R^Z\`TeQO^\aY^[_UYZr]dWX__dW[\TXZOYYSVUWYWS[VW_XZZVWUTVaZ]Q^V\]ScXZ[]YaXb\_PO[_[ZUZ[[VWa\WZ^SZT\^ZaX[]Y[W[PQdTc]_YY]]\_WY\V[X^Y`[XRRZaXaWUWhaTUYY_XUXZQTYU_\[RXU`YZ_dfYcXfZ]]XWQ[]YXZ[ZXYWaYX`V\Pb\]Q[b\aaSYV]_VYYW\Sa[YUY[XMML_USWT\SNT\WVTZZVVU^c`WZdW[]QY\\eYcXSXXcYXWW\XRUYa]Y[XZ\``\[]QTY[ZZWXSYQdUVPQ]QXRPQ[]\VUXS^UTaR^[PT]zTQUX^a[Ka`Ta _`RVXZUX[]RSVZ\^^H^T\^vX`UZY]WV[a`TY^^U\PPV_Z_d^_TbWTWW^_\]Y]^RVRXQ\WTabQUX\OVRQX[YVUZYaRTWVUVUCXOSSYV^ZSW`ZWXWW\XMXVX]`ZT]RXLSba`^O\XVVTUXbUMLQ]e^TRYVTU\VT]Y`Z^Q^WZVaZEZ[UO]]KV^P[[`XXWQN_R[_^X_JTV\`XI\TX`UNTaSY[SXSYU^VT]_TUMWWV^TYXTW]VJ^ZUWYL^VTX\XV[wQRTVdYTUOSQ[[SS^OVWXRWWXO^Q\ORXOX[RWXPSWRZJYWTT[VVS[aWSZRY^Y`ZQZWQW]UZb^_ZRXUZQQQOab^]UOUT][[Y[ScYSX]PWUPP^\]YPcW[aWPYZVSeb[[YPSWcTXXa\]S[XWQg]XUaVbN^Z_^]qWWkT[O]eQ[aSP\URWYWJmXUcdbTSWSV`[VX\cnac\YW[Uk]XaXX]VTWYJXeSQZ_`YSZZ]S[SU\QSUN[]b[b_W\PXW[VTVW\[Q]NWPY[XZYXQVRVTXZXZOQSqiT[VS]USZZ\cVZYQXYgZQQ]`]HY\]iT\WRXXTS[[XVWWYYe]ZWYYVfTX]_OL]hVYSWVoXU`c`YP_LQTTQUSTU^aZUTV\QXQ\MYe`Z_WRYT^aZW]^[Z[RYQQ\UZZ\`hXXU[_V]hTTZ\Q[Oc\WZ\\W^Ud`e^ZYYTSSRXR[X^^UWeS]dVUWM`NeWdPX_l]X[YVV`P`iXYU]^`Yc_S\WZVVa[[WVc\[VS_b^^\\WYYY^ZRV[W[Q_[R^W^d\\W`XVZZc]`b[X_a`WcdSWdZU^U[WVYVT^W[YU]RZ`V_XaSWTfSWU^X[ZWSRWZVXYb_NRZbZYUZ\TPS]XQZ^[_OVZUUV^_cXU[ZZSVU\V^[PP]R\SW\]V[VRcP\c`X\\O[YV[TUVWW]X]bW_\]][QX[_VYSWWW^\WTRVXXYXYbUQ^ZVV[W[V\T[WW\[YVeWXTebQYWZX]UVY]`ZXTWV`Z[TWQUcUX[^\c\]XiVcX\OX]WYb\ZUaSa[U^WdWl\Y[V^_`[Y[]UUWQY]W`UWS[VcYRXV\VaWacZZb_X\\WWRZUaWeZ]_\XX]WSVh^XWS[RVWZUYZ``XVY\^YQT][Ua`YaZWSYVWU]YQ\T[VXYUZ_Y[YWSdXSZ^WUUb]\VZ[[V^]\\aYRaYb[XWeZbO`QXXYRXVT`XNe[\[W]]_[\UX\PWWXWT\WXaY[SXU^^[X_^YZXcWVRTU]XZUX_TUU`R[[VSbT`P[bZXW_^WnbYP[X_[\YeVTZS]_g[XY^Y\__SWW`^O^]VU`VYU\Y^]\MWYZ]Z[^XYUX\W]V\V\VaY\ZU[RXVZ\]rV_[YY\UU[XW\^]YTWZURV`_\`f[XgVTVTh^cXYZZV_fYTUUV]^W^W\^[V[YdR]V\]SZZZWgSX^M[Xi_\PXVU^Td_XYVWUXc^T\UYUP\`jZc\^SS[XWYUU[cYScXXkRZWa]YZVZ]QQ\UaOV[^V_f^YYUTWVX^UVUWQW\_[WXSbZ_SV]W\\\WePe\\YZa]\fX]UYUV\X[VYSP^ZYZOPWZVVY\RV]^ZgQc\c[`T^RSZV___\T\[TP]YXZ\`^fe]\]^\\^\X]W]]g_^[XO]W^X\aXYYZ[XYW[WZ]\W[Tb\RZ]\W^^Z]XX`_^U[NWMdXZ[_\UZW_YT[_\X^Y^ZV^_[[`T^\^[T[SdXXU]\\U]ZYQXYUSaUYN^U\_^X]UWYVV]PZX]V]Y\YS\TZ^[]jc^aVXVVSW`[\_V`QRZ\[[Y^Sa[ZWVX`ZUiYT`XVVTW^[ZaYUXZaUY_]WRa[_WXXYY_SaZa\Q`k`U\Q[a`O]VZdd[XHcbTW`Z^__QZXZQSV[\R[^ZY]bP``YUUY\YZ[^PYXXX\V_WX[^Y]V_[iT^\VLZWP`WXVYZ[QX^]QZb\\ZLX]X`N^[W^]]SbYSPQV\cZ^O]XPUV^\`]TaU\]XYTK\WNU\Y_\TY[]cYZW]Y[YR_ZP^ZePYPXW^RU\XhW\T\M\XY]\`MSSZc^YY_ZWQLMRUaX_T`V_T\^[YQTZSTP^[YRQ\c\VeYVXQbWX^WRMM^cRbYQPPcZZZ\W`[Z^[U\]W[eYiVaTQ\[QaYXg`\^R\V\S[YYWSSU_beXfQh[Y^b\WO\bWUYW^VYY\ZOPc\PXZUTTQVWX\Y`\X\W]P_`Ua^WZVYTR\`[`t[T^cVaOaWePTaV\LU\bPd\^dYTSeV^RVP[V\VeXV]dVU\MOd^acVSY\e[W\WOYYZRU^W`QXVWS^Y\MXZ[W\NU\afOcbZc[WXV]WQe^QZSW]Q_ROWP^[eYVTR_Z\RcURPbW[TUVZSSU[b[Y_VYQVcZ[\_]^PU[_Rc_^\eUZIbZUaR\YX\T_aTU\]\V[[YWWYYVa]WW[ha__SOXTYQTbP^c^eYZTXUZYYXZ_WXSdX\VY]ObU]ZSY`V[WU^V[NXT\RUfMR\W]\XPWYVQ^TY[Y[\gWZZeR^X\SW]^XK]Z][e\VU\UXT]YONP\\VdWVT`PSZ_XXabYM_LaW\OTZgUW\XXVWVbTYdaT^\Z[Tkd\YY[a_ZZSYXZV`X`X^\UUbWV`\W\aSXZZZNUQYRHTQ^SY\WX\V\ZX^XW[f^SbV\V^dVW]VQY^aYV_RXQV`^[XYZbhLTSX_[X[`\Y]W^OaVVe]ROcaZSY[`^VVWc[U_^WXUYZVUVX\UXfiUZWWVVVZZ\fSSaP]Y`Z_Y[^WYRTUZIOViSU]YXY[QTS]V_eUT_S`VTW]^\]^^YVYX]aWcQ\_aWUUV[SW\QTXUX]RU\NYXOWRI\S\__b^WSi_]\UQ_Y`]^X^]]UUW[[Y[WYaV[_bRTYZfb][_Uc_iX^ac`YTbbR]^[ZUQXS\aL]\__WITcWXYhY\UT]ogXa\TX]VWa`W\]O]Tak\]N[U_T]`_a^T]QTJRXRM_Xc^^][b\c[`SZX`R[_S^_Z`[XZe^ZR_VdTRZ_ad[UbUXa\`XURbVMXX[VZ_XXW[V^cZX[RSVZY]^WZdbc]S^WYSeQRa\RPVY]WVPS[S]UYX_Z]]]WeVX`T^ZWYYXQVRU^YWcZY^[b[U_cU]_ZTYbX`_[OYYYXMU[aZV]VZ`\]UNaX`R`ZaX\Xa_\Z`W[Q_[\]dVYa_WZeTQ[U[UKYQbSbVWT^ZcYPSUW[[V\XYN^Xa\XR]_W_dTWXV]a]MWZbUhYTZaVbVUcYUUPV\^YUZ^\VYXQYUWYV[c[T]XeZU`^TSZ_O\^RVT]\^PUYUTeWX[_SVZP^]]j_U]UZTWXYY[[aSbWQ^\ZP_dZS`[ZWWRT\b_Re[OKW^[`S^Y`W_YYT_X[VS\UZ]XPWP[`S\_Xf`W\cX[]PRZZ_U_^bY^\S^`V`VUPXUaX]XRZZVWV[VZXWWWS_XZWZ^XZX_]\]]Y]_ZV\]URV[aX\dWaTWU\W]V]T]Z\RYZT^UaXYSeWYX^Zf]aXRTf]WXY][XO[W`VSUXVWOVc^VYYXUc_QYTX\ZSUWU\R\Z\X[VR`\R\Y[U[\f\Y[\X[\cYYUSXeVLWVPeR[bYZQYQ]]WSWPbeXN\]YebUNTRb^Ya[_U\bY\^M[_RSV`_ZYTjXRgQYfa\VWVZ^T`[^_VcU[WYYOUWXNVXaTX]_^\YSWR[cZjX]X`X[YUZd_X\V_]]ZSTTV_PY^TcVV\ZR_aSV[YZY\]_YWZXQWT\X[Y`b\XTW]SaY[YZZbV]Qb^Zc]]Q_UY]Ra_UX[VS[_d^cZ\^VXVMb\^eZ[Y`XZdQT[YXYU\VXQ[ZQ`_Za_SSbUi[UYU^aOXT[]ShX][[Wc^XUUZZ`_VZW\Ub[V^T_[b\PUZZWY[eY[LULdd[]W\XNXQaYX[^_VW^XU^]`PY^X_UX^YWW[Q[Q^\^V]WVV[ZORX\\WU[YTaNYZ_b\ZUY\R\WdZX]W\ST\h[^YO\Ufbb^[TSWLd[Ya_^W]Y^`d^XbT^Y]Y]S[_[YcXZYaWTT[[[`_WS_QXWY[\VX_[Y_][OVWZXd`^_WR[QWWTQZZR`RaW\PbabfY[VVN[\`_b`U_cSX]b[\][VSUVW[TYS_cWZdVb`_S_bcZYYV^bdY\a]X`UT^[VO\Y]XZX^g^XTQR^[VV^V_Y\_Q[ZW^VXXWc[ZT[VWb_U[_Za`PYXXRZWYZ\ZZWZPVSS]XWY[X^]VZ\]OS_TX_V^QZ^OZ]UXZYVWcY[Y^SaZcYjYaTU]]g][\[_SaW\SR]SVV`U^VXeVZQYX^XSQ[ZX]^cY][a\X^W[a]]VZ\U`XZWUUVP\ZbN]ZSY\Z\KVbVQSZ]U_S_Y_cYK[VeNXYcO^TTUZUacXPVb]eSWXZZ\^]ZQ\TTU_QR]QO`g[U[VTXSVQWW[ZbOYcU`XXO^ZZ]\VVZaU[dSWXZaZXaR\VVUO^XTX\^XWW`fSVY]UaL[PWRUZRaQVXSZ\V\[PXV_]TWL[a]XWXZZ]UWW_ZcT\SZ_WTWYX[YVReSQZdYWR`WYY]XO]U[WTT`[]SgXbVUd[]_XeW[`LMSWX`\Z]YaVMS_VSW]TSUYVWePXNUUc``UVXV_cVZ^]YZ\_WXXY``WY^RWW\YWSE^ZVXZVVW__gXY`X]\YYad^Z]Y^OX]\]VV`VbYS\\XkK[eP_]]`YXW\\WWSO_[a^OOV]\\WNTM^cd[U[_ZWLUV^XUUT^WZS[_Xd\X\bV]X^VcX\[V\TXYLX[]YXTa]X[]W^^ZTUQ[Z^RV^c\\XU]^b]a^]WT^Z]_YUSd_QdWcUVO``^VTX\^XXU`[]XVYYTZ]VYdYSdYVVaYbV`]QZU\Z\TW_bZVZZTZ[]XZdUaTY\[_YT[]X_c`ceT_VR[[Uc`bS\[]WZ`Zbc]ZZ\`TYKa[i`Z`eZ_d[^\Y[dWVYUTTY_NZ[VXZgd^UYbX_^`XZeS^YYZTVUYWQV^[cZV[URaW[XZ__WTO\_U^\S[W[j\aRWX^YPaUVOXWZX[WSZ]aXX^`[TPYQc`R_bR^`SP[V^]WWT]dWZZT\ZY_`]^ZVUVZdZXZa[^QS_W\XZ\Y]WWWX]YWY]U]TRWXYV\XT^WYWVXXYQXRYYUQX`ZWZWV[\`]TVaTZVVXXa\_\V`Y_W]YUWZPWTRZTTUZYSUM]ZWUTV^ZTPVOUTV`YVW_UVdYVaVUT]\^U\SX]Y[`XZUVQZQ]ZYVYUWT\Z^\[SQ^\_R`[[]TTQXZaWbZd\TYa`RUUWOR^ZXU[[[YaUTWTWY_YY]ZY_V\X_Qa^a`WPTQ\XZXVQR]TY_JVZZVXh`YZWW]WhX\JQOYZZXZWTXUTXLYS[]WYZ[YWY\UWTY]V`ZWV_b[LO[X^Yc]Wc`U\j`RXUWYQd`\\[Z`[SUU_ZXVX]^LVW[^VYT_SWW[WaU\WNUYZW[_[V[ZWYZF`W`XWVWUO\P[^_`VYXQXRV^UW]YZYc^ZTWS\VP\\[YLSS\XhUW\YWQ^_TYb_`SYWS[\OZNb_\XXYVZ^^fWWY_`[XY^WYYTYX_P`YcP_[\_[YZYaSZUWW[]YR[\YYV]e`XTU\TUmT]]SVZ[QUV_]MaYYZ_`XUXf[OU[TTXY]Od\SQ]XZ\\[Z_aW^\[YQWU_V[LcT][\d[^QZ]R[V[VKaa\]]YYUd_[T^[ZhUa[WUW]^\S\VZSPV^^]X^`\^UP\U[XWYS_Na^\V\\]WbR[W]]W_QUZ[\[\adPX\YUYV_ZZc^]VUVZXaZUfZ]_YTYRaWU^^YW^XU^ZT[]TW]TeXcZYb\UZPWZQQT[cVZ]XZ_XSQ_UYPWQ[[\^S\\dZ_UQ^PVVaZ\\`X`\[^SQe`d`]]_^X]U^MXUTZ\]\VWUOXUPT_TY^\\`jW^VUU\RWYY_]^^XT`Y[]UXZYW[]Z`UP^Y]]YXZZ^a[P[SVUw]_]VWWT_a^`\^]XUYdVYZY`X\ZYUY_U^_\XUW_bPSYXU]YX[YZ[XU`^[]dW]\YXVU[Z_W[Y\]]YbSU[Z][_]YX\Q\Y]ZWYR[U[UOaZ^YYSWa\Q`]SW^_`\]Z[aYXVWZXUZ_XYZ_RR^WZZX]\N\[ZgZaWXZQX]bY]Y[VR\X^TY[\b[\YU`YZ\bRe^dWaXMRWTYWKYZZZb^WXUWX_W]]cXV[`QRXYU`WSXX^ZXX`V[Y]]Z`Y[PZ]STYZT\U__\YaSV`VXe^aX^X`UY`UXVZ^a[V[]^[WYYWVZYPX`UZ^XXVY\\X^bS^U\]`ZUVXWVR\^[_X\ZYUY`^gZW]]`[VT^[[cX\YVUVV`YW]^c[\_Z\RSZYTa`eUVX[YXW^TY][gVgWhZ]Tf_O\P][T[_^VWi]QUXZd`XYiZZTT^[V\[T[ZUYWY\W]Y`]ae_Z`^QU^OYfY\``UYWR\Y[^S[a^f\\ZJ[WUW[U[XS_VX^`VaWSY\_Z]`N\Y`U]Y`Q_TS_Z\a`[Q]`ZWV^UY[PY]\V]OP^VZ]VT`YRWZaScWWW`Z`YUQLX]ZYccW[T__YQZ\`Z\]]S[Z`J`XbXViSWRVS]L\RW^VX^XXN[[lS^UY[T\aU_XU]c[^Xg\UVcYSUQN`_VTOSS^W\V[`_]YaUcZ]Q]SYWXSVY^]WX[YaTXXPTUWY`VZZ]W[VX\[W]X[^R`QQVVWaU`S^dOWX[W[OS[W``QZWH`UXQUZ[]X^WVXc^VaTYZQ^`[W`[^U`Vgb]U[QYRVT[`Z_eYRV[V_SVXZWVVaV_YZZWZUcT[UX\]YVW][^_ZeVa]_RV\RWWXZZZRVZTXRVVW\WYX]a_T[U^\][\]cTSZT^\[cUPQZQ`\^`[YaX]WWT^[_U_\WeWXa[P]Z__e[^[\XUS\R[ZZ[h[WX`Zb^b]Z\]_]XY[WZY^\Y[bdYRY\X_e\^VPX`Y`VeWZ[SRZW^SXV]^WSZ``YeOXYZV[LdXVRa[UcYVUVZaWaXQ^[Z_[d^WX]SWUWVU\\Z[abZ_WWdc^X[YX^RZXQeXR_]]\bV[[`VUe]QW[SPYY`QV`XhVUVVSXeY\QTdUYcWY\`O_\WY[``OTXRSU^U_[`W]W]L[TNX_VX\VYUWfUX\][MQZSYUY`T`[`]_U]^^Q_\Y\\[Rb\[caRYVbW\U\[QWdUV^ZWPfZ_Xd[OU\^bXV]YV\bU\\YTa[Y`ZaUZ[b[_Q]V\NWUX]]VYU[Z\b][R[\VS^aXZ^S][[TP[Y[_NY]^\eXPRZZVRPScTdVa`\T]_X[Z]ZNW[Q^XTS^_VT[]aY]_^aT\YWVTXSeYTWU\T[TPRWZ\cPRWWS\T[`XQ]TZS[fcKSXaUY`dTZXZWcYVd_UcUT^`_R\^U][WV]Y`^cZf[OaZTeYWZR_TRXUYZY[XZb`g[VY\Ve^ZXWYY[]VZZYY[VWVP]]TWR\WZ[aZ]`\`cUUaZWPSSP[YS[XY[Va_TaVVQ^YVSW_[QRSRXT[]_ZNY[ZSa[YTOPY[YW\\[\bS^dNXT_TXUcW[[VcX]aT^P[]\URWZ]XZ]X]WQeQ]RVSU_]d\W\XS]\SVTSY\YX[W]ZUT\Qaa[^U[\aU\O\Y[Zc]TPVVVYbYZZXYZVZSWcUUXZZ[`]`ba^aQW`SUWYU]YRZW_^YY^UZaX^[K`WRXZWUZZ\_[Y[[XaWP_X_PZU`SXbU]UcW`ZY\[cMN[RVW\SUZUO^S]`WQ]VaTW\^RP^[UYi^_U`U^Z\P]SVY_XT\aZ[S]QPg[eOUPXO]VgaWU[XSZV\V^[aWVc^`TU^aUYfRVRVWXYS`WMKTU\gWZ]\abN[ZPTp[ONM]YXc[\YPZRYYY\kYfWVQ[afRYTY]_Y^]`]^QUUTU`T][b^QRT^NMnUQ[X]WY[QQT\YaQZ`[ZY`VW[VbcdV]XQX[a]W]U[Z[^bOZY[`S`cY_`Wa[Z\UVZZgaaTZcXb\c]cdV_[UaPaTVVV_UYZ\V_[SZVWV\\]Rc`ZW[Z^XT\eTXUgUYYYV]c^RV[WSV^XO`Q_gWX\^_VWZ[U_YQWYU`^V\`YW\W`XWUXXYTW[YU`b_\]XZZU[bVXQVYX_\Yd]ORW`hRTUVUZTXR]]_ZZW`^a_S^`RXX_ZaOXh\\XYVWYY[SYYVZU`eXZ]_PO\]e\iN\`e]\W]TT^`Q[_YSV\UaW`^[^W]YYUWTVdXYQV][YY^Ua[YUZ[WXdZa\^hU]R`\ZVUSVY^dWW_[_b_[\TRVP[b_WYPOWXZS\fUXWVTN][]]`UM\VZ`\TVX]_XWWUXN`R__]ZRMaT_`dcZSZhYXT^X_\[TZ]RX\YQafU]_[UYT]\W\WV]Va[[V[YTY^[[Y\dX]U\^QdXW_QP[bT]]YVNPXdRaWVV^XXY_K[Wa\Ug^YZ_WZZcU\SSTYQXYRbS[^bZZ]Xa[SaU[Y_`Y^ShYTY[ZYUZcW[WZZ\X\XYOUYRWVVZQVTUVJ`YWZX\W_^]Y_R^S]^W^PV]T_XQ\\ZYW[U\bXZ[UNUQWaY[Zb\VWRfWTZ^[^[X\]V^YSa^Z_\SbU_\Z`\\]VdNT]bZ^USRSU\]VYVVVWZ\PVR]]WUYUQSdVW`WVX[[d[_ZVYZS^[TW^X]Uga^^Qm]ZZXU`Zb`X]_UW]^W[SZ\XieZ[WdVYYU`ZR]^VVZT^Z^WXVSXKTT`\QV_`ZR[VU\SZ[V\XS[UaTYaY[WNZkZ`Z]\\QVUQYU_ZP_]WXQbT]VZ\ZWWXR^R[VZX]Z[XU[Y`V[X\^QY\Y]TRVSSZX^S`JbWZe`\WUW\WYY^\\cZZZ`Y\]\\W]^_[WP]URabO`VUe\\[f[g`Wd_Z[[W^V\X_WTRXYSZYWdSXgYUNY\TYTVaWYY]U\SS\W[XbS[_T]^[\W_YW[UPYY`U\UUZU[R^a_^\VV]SZZ[^WY[^__V\_\WXS\W^]XWX_SRdWcYRUVV\VWXaQ]_WS^fX\[W`^\`]\Y]ZTR\[ZTa^[RUY]\\XX_cY`][PSRY^YXZX__UUWN`YVS[Y\]^\T^PY[\[X^iUSU_XZV\NTVZZ^W[\]U_\bTc\Xa[Xc[\SV[UX]UYR\Z_^WXOWTU_ZXSXYXSbUZZWRM_[TPX]ZWNR_\[V]RX[OZ[XXf`\_U_V][U_TYSbZTYV[V[X[\]XV^WY_Re`TVZQVRQ]]\WYUVbYU[]R_X]ZTQUPc^UZXQW`]\\XU_XiT\VY^dZT_\eUQVV\V\\UUTW_X]SSaY`a\S\ZO]Y\\SXaZb`US\T[aT\h_YRdVOVUZSV`]c\SX\aUZUZQV]S`YQVXVW^cRc`YUXWQaYVoUVYXX\YbYQS[SYV]\WYRSVZWY\YZVX]\WRP_fXXWTZ^`^^\SW[]R\YWW][WSYMV^S[]Vj_WXa_b\\Y[WYVWWd^bNVfOaZ_UXd`^UU[_Z]Z]VY[WTZ\hYZZbZi^S\\^XY]f[QG[]Q\]aYV]^SdfZ\W]UU^Y[`[^X_`TWR^[[bTV`a^U\X^[`fXYa]U_XaRdWXYYPWTRT`dg^Y_JUV`PZNaWT[^QlF\UY`\`RYh[]W_[TUTZO[ZVNUXZ[XYSfSTTRcU^XOT^L_WPSdU\b]TTiRSZPOV\_o^XRNhS`emWZp\bTVWX[cVV`[\`YZ_\TV\[_Pb]OSeXUcYE[XQ^Y\`UY_ZQRPKRa]TP\WTPW_W\aVZT_[^[OVPT[\]eZXMJX[QWiL`]X`jbZ[aWYRbpZ`aXV^dhUZc[\bYYXbVS_UU\[_]Y]T^`YV`^S]Y^Y]dRbTUcY]^bVd]XjUVWQUVZjSh`ZXT^V]X]aVXRQRT\[VUTaS_Y_TXZ_WVaORX^bUQ[X^YRT`WWaZWYYS[OVUP`\_Pd\UMYbaO\RPn[eR\ZRbTPaOb]_]LYUVSUSgWXX\YZTSVPY\W_SUU]ZW\YbX][Y\[^ZP]Z_[YS\cYSXYSUWYZbZUY^`W\XXYZS]UVbSZ^WYZbX`WY^^beU]]QU]Y^STYUX\YZWV\\^XZZTV_Y\W_Z\][UX]YWZT]XaRTTY\U[\]XPWT^UXYYaUT[^VWUZV_ZWdbcbU]cR_YO\[VV\[XdY[T^X__SXdTTOTZYX`YWYV`[[\WV^X`VWXWN[[ZX]Z\Y]]Tac[d\]YaaXb]aPTVXXQWZ]PVVTU][WU]]OTTW]\VZ]WX]\]Z_WdU^TWRWaXXZ\XS]\X[OX[Y[WWUWXV[\UWVU\WSY`[V\KZW^PZWY]]^V]USVY\\X\QU[[PTXW[[T]Xa^bY]V_XXZ`dYRV\[X]_W]Wa^gbTZYZ[aWVZVTQWWZc\_SX[_T[]RZXV[V[[`QV\O[Y_UZVRYQ^\U[YR\\YV^SQYWTbSUbV[aWPYPYZYZYVUdV]dZ^b[[]cX[_UbTRR\W^`XRUYY[Z\jWWeXVVR^`U^\Va^\X[]\Z^[WV\RUdZ]ZdR]^YZ^`V`Zd\XX\]]VXaV`S_U^YZ\]]WX]NX\bVZ`\X[SacN_`\\aWYV[^_YY[V[][TYTWnW]_Q\]WWdb[db\[Y^eO`X\Y]VSSWUSN\SW[^Z\\W^eZY\_WPU_V\[VXXWWVh[VYL^YWZUVQb]YZWZY\^W`RZQ^WZWZY_`aW`VTUaTb[]Z[SRPaTYZS\PX[ZPUTdU`XYX]V[OS]YXRT_]\^[UZ[\\[_\XXUUWR\Y]`ZSYe_aX`XQR]VYaXSWTbV\^XZUW\[RYSa]b[[Y[UOVYS]UWZYSW]UZVd_VX\cUUNTXX_Q\WYKZXZYWWLVa\^^]_YW]QVUcRb][^XUX[\U[\\SVVSZ[WWSWV\RY]ZT^bU`d]XJ__dVX[\QS[XY_VTWWTVQ\`^`XW^`WT[UWhX]\XR[^XZYUTYXae\RTW_WXXW_YQUSZY^R[XUWYXSRZWWTXQ]_ZYZV\TTUX^XNW_Z\]XTZWY[`bYZY]Z[R^ZURa\\V[[WUS]Wc_Q\WUYY]UVXUaZaQ\XY``U\XZaZYWYXaXPTUTa[VSPZZV[W[O`XWmS^`TNQRYPV`X]^Z`]WaYSRZVX\`URTb]R_UX[QS]UVdQUUZUYQXfXW_[PYZSWRSZZXYVMX\``\VU[V^]V]Vd]WV[WY\TYUa]R_WV][aRVW_QSY]TTYaaV[WaYaQP^[WbYeXY[YP^TTaQY]XW\\ZZ^\[]\bd^`YaST__iWZ^[^[W[[Rc_fU^]f\SR_VUSbc]W`Z]^Y[[XY\^ZgXXZWb_XT_cZ^aRYUXWc[^VR]ZZX[RVb`aWY\b\p\aWVccXZ[V][b]^[WRdVYUdTZW]\YZYZYUVX_[[W^U_hcUPWXXabXeX^_PVZd]VSX`XSOYT^XZ\`QP][\^^`\dUYYc[[_^Z[^WQW[[VaZY[eLWP_YYWd\X\T\]RZZVW_^VaXMS[UYW[U`OX^WT_O]bb_VVV`]NUVX_W^[VZ^^_ZZWZ[OUSVU[\Wh`VYYeUZ\\S]U][c]PV]PYUZe\[_]\]Z`W_U\\cVU^\ZW`\\_c[Sa[TT\VTZW__[VY\RU]aWUbUX[VVY`_ZUUXX_^R_W\\XYOX[TXYUY]ZYPY\[^SU^\_ZWYU[b`W[[\_VU\ZR\cXT^SZ\dWS[UYYV_YTR`RRYZ[\[YZ^X`UY\`^V`UNOV_X[Y_bV^`ZSWURXS[_aX_Z^UYZV^\X^`V[U[]W[WZ[R^`LOVQZ^abW^VZa\b_gUWZ^ZYRRYa\`]ZfaX[[[XRXa[\]RQWRZW`[]ZXaYWXVZ]Ud_ZYZVVZQUW[WUNQ[cXWe]`T[\YU]WZV]WTTXUV]XW``UcW^RXP]UV^U[`Wm[WYUUXT][W]VUXYgXX_O`YZ]XX[QVUUV_We`dMWRVi\\Z]U_YY__]UaZS\X^WQT_U[YVaf]SXQWV[\WXZZe]W_^Y[^]VWYRaUS]\cX^Z[W\W\]\U`\V]]aWPSZ\NcSNWWS]]SWZR[]U[XVY\bXYPYT\VV]T\S[cbVXY[]c][VQWVXZZVZTW`VXb`]UPRX`ZZZ^XYZT^^X\S_ZUW\[UUS]Y[^[[YSZSQZ[YO]]VVeYUYY]^R\\XXU]c`]VXP\]W[\cT^UVaY\]__\PY\XVd`TVSSUWWY\a^XW[ObYaXXUU\^TY_ZXZYP\]WWZ\WWZ_\^R^UV]QZ\\W]YW[[S[YY_`UXUcVQ\MUV[YZRbQWd]ZTU]XYZ]WWTX\WYaaWQXU\VYWXWQV`U_S[V\]YN\SUXVSbXZZRQc]_RRX\[]_hVXU]X`WUR]ZVV[e^YYTYYRWZV^Z\[a][I`WkXRZ^XVY]f`XOhQ_\QUUUT]`Q_WOVUXXXXV\aUMJbkW`YVVSG\PY^aROVR\VIVg^^PPccQNZTLUr``_WkgX_UZf]e^ZRR\Q`^L^cQ\ZZeRYW]`XRUWWaNX`TXNZg[WX_QQZZZZRa[MM_]PYa_ci[W_OJ[UcYOU]X_T[`VXVQ]YRedbRecVlPdP[QISOQXWnU\]QXMYShNWSPZYeWNlcGUP]PQTPKWeZ]RWUaa]XSe`SlVcVRLhQ\]WWMfRaXT[RMZ\UTW^OYgT^[RU^gVScOgZXVXIRbOXFXNW]UW^WRScOQRR_^\YV[OUcNWW@_c\V^TMUQ[TSU]UVUTT]R]dPdaQXTPSNd__S\WmVWUqTbQVXdeiXUZeU[SXUQUhSYdVQS``Y]XdVXIfSc[W^WX[YSZ`Z]YZW]jSV[bT_\TZZVYYT\W`Z_XUUfYVV^XXX`ZZY\UX[WUb[ZW_XkUQ\Ufb]WWa^SQb`YXW[VO[ac\YWbb`Y^WYVSV^NWPYYXnWjZb\RVcSYa^UTYc^R_]]VO\X^Y[]X[`WZT[]XWWZ[eVUWWWVXS\VYRb^\ccXTY_UP\ZXQZ]SaPadU`Z^]^ZTQ\ZVUU\R[_T_]XTZYWX]^T[WT[_PUX[[[\]U[QWdXVVZ^UZVQUVXZ`VWX[eZ^P^\[Z\[TW\`\QXgTTTSZQWYWP`TXQXX[XVe[ZOVZVY\]QS\[^WWZS[`][OY\SUd[XSfZ[XTR[SX^XZ][NUdRUQfZXYRY^XV_[U\\QTXbRZ[Y_hSPaYSjT^aWR^[\XYWVd^kV[ZQ[TV[_PY^\]`YZLX_Vj\e\PZ`Z]\XZURUW[_UWVYZVnTVaYZXQZ[cZO[ZYYTWYW\`[^`d\S_`VYd\]]iM_WYXU_R\U^h^]VXfX\__ZZa[fO_WVVX\VX\^\\]T[TQQYPVWUYYiX[UVZVb`\YXXZVZiZWW\R_ZOSW\^S_]\dZ`XWaW\[^RZPP\W\]\_QaYZ`Ua`T[\ZOX]UZ]\[IQ]gXbV\Qas`]QWY[W`XT[TV]WTbXOf^TKZ\\T\YUYU`XY\f^Y]U[_cbZW[WLVb_]S\]WM[]]OYRY[WTVVXjT`\f[^Xg[UZZWcUVXa\cZTWY^gYRZ`Qi[X\Z[PUX^S\P]SXNQZ\IaUYWLRYUQ_b]T]\a\X[Z]_[\VSWZ^VXWTfMX[[a[]VYYXb`ZYcUVU]f]W]WZXVVYZaV\W[YUbZVTdYVZS[XRXZZaXU]P`YMUUaXZVO`]YYXX`\[TZZRR[WSS^[WPn[V]]\dT`f_Z[\eZ^W]_YTVTQ^P^f[[YURVXXP]UWVX[_V__OTUZQXWYeYUZZ]V\^]Y^X\XWXfVXS_^WXPVUaXTO[_\T[aYbZWW[V[RXWSQ]WYXR^d^VXTRN[^\[T\ee[\afbRVQR^Q^X\UXXScVWW]a_UWTV\[WYY`hRaWUSd[VUdeaXZ^_SZY`cf]aVXS\U_QT^[hVZ_XZXTXTU[abaPYRaSW\VhTWZTSZUb_dQYV\WXXRWSOYT[^^YQfXTTPQ_VWcTT[YU`NY_U^[R_V^S^^jPZdXRYeUcYR_Z\T\]VNW\XY^b\ROQSUW\[UZ^dW[[ZS[[iQZ[U^ZXZZ]XU[WVU\N[ZWXVTT^ZXQdb\]Q[ZXVaRUbZZZZY\XV_aZV`W[ZN^\[VUZ[TX[[RVYZN[acQS`XX]^\Y[[_UZW[_YSU\VUSZXXUWXU^]]YY]]Q\ZV[R]WZU[]^\^\]WWY\^^_UZWT^WV\_ZUZ\[X_ZWWT]WYW_Y[^^Z^WXbW\X^ZYP`X_[S`aVWX[\ZU_[UN]aVX[QbU][\W[\WR^XX^RSV\MaRYY_[V^WXV]^_SW_VWYWcYPWY]\X_X[bV\ZPaV^YWTS]WV\Q^UU`YTZZZbYZ]X[Y_cXW_]Wg`^^ZW_V]^^[VZUaVX_Y[]WRWQW[TZYb_YYVZX_VZPW]]YY]\YSa[gYk]^S`YV`R]ZnW`SRXf^`Jb^[O\V]u]\caZW]XaUZVX]\]`TVZa`Z\U\XT_\QW[_QVR[PSTRUVVYUTY[]WO`L^aWf`RXQVXVQdbWX]PV]YXkPUX\^]TZYVU[[Z^V`TYSjPTWY`Y]UagT_[TOT`XXUW`df^TXUU[HS[]V^LcWdXa`XS\YQQ^[TZSXTLTVUT\^[\YRXPbX_Vc[aSSTU]`X^`YOUW[VQVe[dVOYZV_WWOWXZ\Z`bWca\ZZag[[VRUf^_XZ_fe`\[Va\Q[PgY\aaRV__^`RYaLU[YVVaXdVUYVZTX_WYZYZ_UZaWO`ZVX]^_c_Uc\]]]\bdd[ceTaS[Y\UO[]fVSaUabhZ__XU_QW`^\YbVT_d]SVTZWWb]\Z`^VZYZPO[iUSXQ`]Q]OKOd[_hN`bZQXa\TVX`O`MZ[]]Y^XbRTbWP[\ZaOT^O]fUc[XZ[\]S]Y[]^da`[TbbSU]YefacWOij][bJ[WXaSbWbRSceXW[\^]Y]d\cUP]UUZRY[Td]XWjROQZV[_P^]]JlZ[`gLZcYZ_^V[F\b^RU[L]P`YXYVZ\W_Ye\[\S]g_\N\^X\Y[YjaaQgZU\Z`YW\bO\]YW\_ZZ]S[PQfU`]^VV``^JcWRZbfbZU][ZZMRWSQeX]STdaYX\XLSaY\V^S]`XXa\Yb[`bb\[dOXV_Q]V[YZgYSPcOeU[ZTcX[XbZR[_UW[`hfYSY]ZTb[[]bcUSUaffUXX[T[\e_`Y[RgRV_NRYSTR[WL\MX_^XSVV[YZUWVY[SjRVX_^V^VTWY^PVfZ\ba_[[`^\YX^bXY]WVWYa``dT`SdW[MWT[]W_fX\g^]^YPU]^]ZaWaY[RdUV[]ZRWZSVVTYSY]Y`]RQ\kWQ^VTX]T[T_c_X^Vd^[JVZfWO`^WaVW\bOVYYS\S`XY[YbYaZ_^Y[[]^bbbadW^_RPXYW]V`QP```_a\Z[S^[Z\XYXMTX]YjUYmV[SX[aj]^\Za]P\Z^]]VUaRV][SSVWV\bY]SY]`W^h[UZY_UXS[]]^\\WYZVaVVWX]]YWLYWMS]U\cYQ\XZWZX\^[c\RX]b^^UUZZ_URWaWNZLY\TWYZaQRY_RTUZb^X]Z[PS]UX_RU\cY`afUZ[hg^_Zb^XXSiZV_\T\cR_\\PV[_`lV_TX``Ra[X]VUR]b]WPgZaZc_X[ZYUYTbWWZa\WVaRa^^WYO`RTUY]]_U[[`WV[g`WXSVaUQUNQZNWX[Yh]aUNQ[[U\X[SV`Z`W]YY^kSN`]_QZZV\ZXWZ_[Vee_c\[\UWVl\`\YW[]_YZNRQXYZ\U`_Zb[iTUU[l^\W]TQb_aT]^W^[\^XT[X[\]`XXZ_PZTWZ`O^XRZ\SVYYb^XXZ`W]SQXVYe_XS^TaWYQcW^IYW^[bYYYb_]VYVVRVZRYTYY`YUW[^NTb_XY\Y^\aXYX]OYbdYSiY_\][\]YUXX]Z^YZWa\Nfc[RVfWV]`ZMUW[Sa_``W[SYX^Zc`NP[V_`TRbYXZX[VTXY^^TYN\eXc\WV\`_VfXUPWY^bNUM]Y`XT\[]`]U`]`Z[T^a\T\XZ]^aVWXU]V\ZTYRT^WYYVQYXVY^]`c[cTbX\Y__X`W\eR\ZW_e`gZc_c\QYYWW`\WfRZRZ[WQWgVWVXZU\Z\ZSV]dW_fXXUdVQ``\[[YX\Z[_]aVR[\N[YXZWLX]][PZZ\QUVXQYXX^`SObYVaaU\UQeWZWVS_`^`aY[^eXc_W_YUa]TPSdSWN\ZWa[WWXVU\U\\[WWa^\bUXXY\\fScQ[ZaOX`VO`SWZaUZ\^WWPd]Z[`bY`ZUQRTWUTR]][a[`]Q^]RXU^iaWb[d[Q[a[aXSWVQYQfdOVTYWZ[V[bYXZYWX[YUZYV[WVZY\]VWZX[\URb\V[YMVYTWPa[]VVPZSX]UU]^b\\___SZbdYRU_]Y_ZWVWVYZc\TX[WNZ\ZWQWR[V\SYbTbX[^\_Q_]XSWfSP]SOW]lU__WY]_^UXf\UWTW[]U^SWbSWTTUZ`gaYY]X[Z^VTQV[[WSZTYNaPOZ_XidYQ^W_]ZVYVQU[VXZ[\`U\XKTNgXO\[TV`bb[ZbRW`dZUc\]V_VfZTWUWWSXU\e\g`XX[\Z`^`YYW[]]ZYUU`UWWSZ_RW_[YW`YRX]\VT][^[UPW]^UbS^VO[`XZYXb]_eYVVOT]VXMa`SXXX]TY[OVU[RZTVbT^UVX`UPZaTYV_RZY^\aRZVWST\`]Ug]WPW^V^\hWUTX^NT^^XTT]\ZJYZX`YVZWVSYd_WSUXUQX[ZNR\]`S_RSUb[jOZWMTU\\S`VgOTZWYWaY_ZSXXh\WZVXZUWY`QZ^ZY_\WS\T\^ZaZSdYT`YU[TYa]]XR\Yad_[VV^WTRYVSe[`TTW\_OZ[ZOXUZ[`YU^eYTOWUPSVPeb\O]`ZZYX[USUV^OVa\[WU[UU^`]T_S_W\X\[cTUXXYQW`Z^bZUUZbYN`T`bSgZX^V^TY[V[]SQUMX\X`WWYYYVXY\`T_TZSTZdT`VPXUUY_aPQT^bVV]Y^Va_ZUPS`ecVXX]QP\eXOZ]]T^X^^SX^eR[P`^V_]ZWbV_X_VWSbWYZ]TYZ`XfbORZ`XPVXRSbba]QS\P_R^VaNRS]Y`RZT`VT[QhZRaWaV`dXVUT_[TYcZ[\\^T[dZ[YSNX\[^SY]JbYXYXSV\W[[S\YV[mR\Q\[]TdXS\XVTZcRa`SUQ^XY_]TX_U^]RVT[VZ^aTXWXQd[WT\Xa[XYXaVWXWca`\[]fZZcaXTa`U[^Z`c]^[UWZ^\XVUd\Z[]VWf`WS`O\UYaV]_Z\cWXXfSZW]dP\TSO^YRXT[TYWa]X^[`XYR[``SVbWZXUcRUSgZQWXWYVV[cR_UdeWVcVa`Z]R[]SVQ\bXXWYg`RS[\\U\\XTTb`V]_O^[QWVZWUUWY_XXTXaY_raTRSZS[TTNUXSZUX^WV[Y_dUaaMXY^YZU[abXYQT_UXXXSgYX\`WX[d`RWR^WcVm[]`UX[Y\WOV[\`V[Y\O]RUY[aUXaTU^^`QRfW^\TZ`VT[\oUV\]KZS_P]UY_\[UUVWS\]_ZU[]YX\YWXbZ^YYVW[SXaWXWV\d\^dTX[SXYiY]Yd[WU_RYUfNXY\^VVYf\`TYY_TYWUWZY\UX[cWOVTY]W[S[VX_XPc]T]YUXS\m^\SO]bTVWU`_Ta[S\Z`ZU\R_V_UYWS^b[`PYUW\URbYa\^TSVaOSTS[WV`]Y]^VWZ[X^aU\ZYWUVTZ\[]U[W[[TaaW\Pj]XZY`WU^UYWe]c_ZbWRb^YRX`ZWXWaVU\\ZZW`XbWYVY[^W`Y\_VSTRQT\YYS]Z]VXXYVd`h_U]\V]VaV]^`Z^]S__U]YRYMiQZXcY`\ZQRWVWdW\c[]UaZYX_ad`]W`SZWZ^][SZhbTW[RR^S\XX[]Ta]^^]V[YY[fbYRP`WRU_\TW__cZ\UZUTc_W[]Z[\SYVXV\RWURlb]STWYdSW]]X\PbPRXU\X_[\VZ\W\_VZY_ZUaVXZUZi^WUXVYYR^QYYZZZX`[R^Y[]ZWUXYYW^bZWYU^UX\W[UW\[UOWU]V[TU^YQZVZ__X[[VUZW][[a[b[]WXWU[VcS\ZSXWUXZS[`Z_RQZXXUUk]`TZ_VZ]VZa\[R^Q_TW]XUcW`[UW\XYX\TVZUd\TUSS\VXUXQa\]Z_\_WeZ]ZV^WMYV^XTWRTX^MgVTbUY^`]XUW\WPaWRYbZZ^aS`YY\a^`W[W^]UURYW[bX^]aZZ\X\[\R]ZW`S\b``WWgOT]hYT^TX`[a^VTU^]VZVU]VXYWTYVX_O[Ub`X[\R\YY_YV[[XPWV\Q[W^WZYYYYc\X\\]RW__\YRTXV[YX[XY[^`[VY\]RP\W\XXPXVZSaVW[^XTUQY[_PWRXe\Y[^T[P^mZbcSVNMYc`Z]\RlTZUZ`__ZgRW_UU]^hQ^[YbUe^f\fW]]R[aXR`Y]Z\WUY`TU[Z_W^[US[YZ]ZXSlVWdTRXR\a_MRYY]cUT[`\WZWX]QRa[`]SUi^WY[]WJfWU^OZV[U`ZXW\[QTUcWSU_VX\UaRbN]\_`]WL[WPVP[Yaf_ZT_TA_[XY]_Z`]aUWX]Y]WeaYZ][XXZX[]_^Od[aTVX\QRWPYW\U^_]TY_^T`aXaS[SP\RTYSb_h]RW``\JW[[QT[UYXiO[f^W`XXZgbRbTYcQ[Y\U[VaXYbRVVbbUX\Z`baYYWfcj\RVZh`dU`^mRMhNQ^TSWNZQQ[e^\bUZ\XWY\\LZd`[P__jgqTVT[`fZTxYVeTTbfY`dZWWVXPTV`UN]YXSdUaUY[\UXX\S_YdfVY_WPWba`L[V[aWUb[]aXQ\[ZS^dacZXaRPXaR`UOaWRWRW`UW[XR`TgQZQ]Y\YWTb]Uc\PUSTYS[XTOT^\Zh\TVRXRVTYTUbUS^Z[aYM_aXZZT[]U[R[ZZ_RaU[NaXjZ\d[Q]ZTRb[SSTU`S\[SYmWVUaRSZNTR^]X[QgQYVYgWWU]`VV\[\OQ]X[\UcY_U`TW\\][W]WYS__[_Y]TTX[S`lUS^[Y_\Y]VX\WXYTUW\R^^ZRWebY[R[SU[\bUbdTZW[VXY_TgXUXVZQZXSaV[YYZ^XR^\YYf^WQSTa_XY^Z_`XWbZ\WTMO]R_QPYX]VaS]PafWUPYTZYXT\aYQmRWcXVWeZZZY]VZTe[VWOXQUe]]Z`[QW]Y]OW]XT[^Sc`XYZ^Xd]R^T^\dTSS[XfSR`[V\YYcMY]`bb[`RTRW]Y][WXSXW_[SWXS[W][\UWc[WPY[ZYZZR\a\P^\a[U_YR\_R\V_\\bX]VVXXYbZZ\WYZ[Q_XY`\]UVRZdL\[YV[[SY[Q]a[YU_^XRPW[U[ZU_bcZ^\ZQXY_XWTMY]TS[PR_[_NSU\WVT^aX]ZZ[eY[aWZUiVU[_YP_ZY[`a_ZZSYX\cX_TidUPTfTT[dQ[[^U_\QWM_ZZ[T[V^UU`T\RUbZS_Q]YZUU^]VS]]YUZgSY]UWV\Ya^YcTTU[VQYZ^dYXQZY][[_W^W^UUcY^SYZaW]X^`^]VWZWWSX^Q^X[ZY\[ZV`SXYU\_WZQZfRbTXV[Y`V[SZXTUTZd`PWUf`bNTZ[V_XXO`aY_\VW[U]cYR\TROT]e]c]Y[Ta_cQW[`YYT`ReV[YK[VXWWXa`bO`\`T[^^ZVXRd[LfW]\\[aXV]XdN_LS\M[W[WYTS[WZ]_^TUYTX\^Zc[T[W_ZZ[cX\ZVh[V`WWYUVP[X^cc]XR\b]\Y]^TUZ]ZU\[[bUZ[SZQUZSdW^]RTVcUVVR\Z\VVTTckRZXU`[_[`ST_UM\_SZSQ[d^ZT\Ub\[[[Y]T\T_UcSb^^Z]\YXZZUV[QbbRWYSQZdZXZTPRRTXXdT\W\USSc`cP^OSS^_YXYWW`dkV\bW[VSdOTW_YZVRWRUR[\[YTY[TY[cVV`Yc[RTN_\^WSVYSRXbX[WL[TS[W\XR_QKQP`_TXQJ\YZQYZ]aa[]^^X`ZXSX^_WWXZ[U`RbSVYN_a_eZS]ZOZ^YY\]X^][TWX\[^^XRZY]WbY`fUTbV[a^YcPUZ^[[XQU`W_^YV\YY^^YS`cYX[YZP[cQ^\]RVYRR]V[][aTR[WYRXY_YSV[UVW]\X][UV[\XdYg^]P\SZVS^aX`h[h`]X_^WVZ\WWRP^YZUQX[aZY[VZ_U^h_NSVa[UaXYMa`Wd__VWU]Y[VeT[\^MY`cRXb^WXZYdbX^XV\mTaYVaP^PZ]PZV[Y_T_V_]\Xa[[W^X_VTXVa]_Y^V`[_VS]ZWZ[XaYV`S^`TVOZZW^^Z\ZNZ^\ZZ]XVVTZ\RZ]\W`VS\[XZ`YW[X`XZKR[[XYa\[\U[ZW`X\VWYR[WW\]^WX]\_[YQWWdS[ZSbZe[VZUZ^[Z]PcQ^XOW\VR[WOabT`U]V[\Y_V`Y[_]^[XZZ\Z[\U]\_d^]af]^PabY[[PZO_ZY^UUdX]U`[\b^\]OXSZX_UKVYQ[V_SYPYXW^UZ_ZVUaQd][\WXPY`]dSk\TZNWZaXcd_a]^VWUPW[ZWO`^YSYTPZ_aVVTa^bTTd]TQ\[WRYcXU_fR[aXOQ[Q^Xf[\TY\fTM^bKlOQSULcRZcddZV\[YRWdQS\^ZZ`^]Y`[`P]\bZZTX\RW[ZVX\Z[\\_\^LU]U[XSS`Z]ZYbV^ZR\XbX^U]VZ[[VRVQWTWSWUU[YVSW[cYSRX[]XXWZQSUTUiUYbRWQX^cW^[X\VOeXYM^h[T]`\db_UVVS\ZSb_b\QW[WUVQd\Y[ZW^P]V`XWV[U^]VPRXl^Y[TQ_O^XYVd[P]QWWV[^bXZ]VNRXWP__VaOUZUVZ\dWXX\ZUUUP[X]dQ__X\\ZfW]VZWYjTZ]LYe_]X[Wa]Yb_ZMZT[VS^[iX]UY_^`ZRU\XVZ]ZW`Z``aTTcaS[ThXUWQTbYbUYUT\WUcXX_bWWVSRUQV][hXS_cgXSVXVR_^X_U[]UZOUV]X_SVmUY\WUS^[Y_aWXWW\W_TVYXa_[SY[N`V]Y^XVbQ\^SYa\`YdeWTZUV]ZfTYUV^Y^Yh][[X`^_UUYiaY][YaY]UgYe[XWU\UUUQYZ]_KVVO\W[XTdWSW^\XY`XYZh_YRZXSWXXRXXT_QQXU\ZfWeVWa`T`gQ^b\adb]da\_XQXa[UVY]USaXZUXSUWZ]]]]U^TaZYUY^`_[`^WZXWY_XSVX[V^Z\YTSTZZTSYc\YR^W]XXU\UVZ^Z_UR[]W\PW[Z][WX_TQW[Z_cUTYVW[^VT[TY]V]VZ[fX`X^^a]YVZ\\\XY[\_W_Y[[[UeT]X]_YWU]\S[\^aY_[bY^[X[[bf]\[OWXZa]b\^YUTZ[YZadZQZ\XZZbY`W[UT[_Zc[SXZ][bRX\YeT]]W[V_VUY\ZYaW^XWZS^Z][[R]PW^YYYVWZZV\\SVVVd^\W[aWV_[_XXZPXV[\_WZXXVaWZ[WWRVYU[UZS[ZMf__R]]]_[WeUcTYYfYVVUW\ZXY`YSYaU_[UXZXXRTTR[`V][ZV`P[^SWWa[ZW\\`\aQUWXZWZ[YY_Ze_aaa`]\\]Q\V\SWZXXZ\XaY_Z[YXT`SZO\QUUXUU^UXPZ\P\cZ\VUWZR[c_h]RWU`XY[XZe[XW]ZZTgQV`Z^[Y]ZV\hV^WYXYSOV[\bWUY^[aMYOXTZ[`S\W[Y[YRTZVcXa]_\YUX]^`\VUaZVYYYYWWTWaZ_XVSZQW^ZWV]a[a\XZU[^WX\a\^YX_XVTSZYa]WQT[V`_\S[^[[\\^ZPcY_\V]\\YYZTP^c__]ZVTZSP]R\YTWb`[WTTXU`TcccXWeUfZ^SW_d[]VY\[ZaXUWWV\R^WZ\V`YWVXRXaR^]T\WW_ZZZbW_VXXTZVX]Z[YYb]VY[_S_]eYVQ[`S[]TXUPXTZ\\X]X__hPX]QbVNYT\WR^WZ^ZWR_UZVY`VY_[[[W_YY]hX]\Y\Z]R_[]XKXYYXX[eYbUVWTRVYY\Zfa[U\S\b]TQV\`W_^UY_XR`RT\[Pa]X^^^WU]fUQW[Z^ZURSX\^]\ZW`_aedSVZhTSScPTR^UYW\WbYWY]\WX^aY]X]\T[aVVaZ]ZYZZXS[[]XSa\PW\[Z^[]`\bW[T]_gUR_XZ\]S\WTUXP\QZ]ZVY]Q[LW[bXSSYWY_VQW]ZZR`]\Y\[`ZWWSUdSeVVZ\Y[`Zb]`X\_WRWaZSYUZYPXRbPVXU[]ZTVZ^^]TYaQbX^\YQb_[ZXj_[[WYWbVQWX\`dXXmZUTY_cYQ[[a]Z]X[TSZUVZZU^aQZUVWY^TZUSYVU]QfYYTW]ZcPXT[XSYSYP^]VPZXTNZVUYX]Yb`aSbQX\Z[Sdc]RX^V]VcYYU]ZXYUWWVRTaUWX`\gZYZ_\SZYZ\[ZXZN]\ZVUe\[WYTbTZYXWZcY_b_VUW[SZ\_XaXWVO^[U^^X[RTXUXWUd^`TRTVUWd`\eZWaYUR`O`X^ZT_^]UWVX[ZUN_`[[e\\^Tj\TJV[`S_VPWN_[OUR]W]RQ[RTXb[\^VSW_`\`U]WWeV_YXV\Z_\[`[VVcVZ_X_Zaa\b]WSYWY\UY]]QX]_Y`]WP\S[^SVaYTZZ[SN]PYaeV]M_Xg]YP^XOcmg^[RbX[bXR_Wc_YW[Y]`[`VXZYdQSWZW]bPP[\YT^UYZ`YY]YXVYYUV]d]Z_b]S]d_[^YQQda_QT\[S[[RSS_ZWbYW^Y_[\VYUW]ZUcXaURZ[YV`cX_[a]X\_^ZYa^_[VZZSY[WW^abUVR``U[ZS\bWbWTWR``VTeZRYY_YS]acOZY`T`_Vd_UVZW_YW`YUZYW]VRNcWS[\\U_XURX_^[bVaZUSUYPZ]VlW[_[ZZ\WcU\ZUVTWWXWRZb^VXbXMQYb`PNVVYK^UVXTX_TZYRX\aQ\U]\VVLT]W]PZSbcYW[b[ZZ[M`]SRa_[_]TW\XY^NX[]\YZQcX\TUZ]X\^]SSRiWXTYaVXb\[d`[^W[V^SVZSdYOWYWTP[YNTXWZZR\YY[a^a[[bR]\]VXVYehWVf\ZWV[`Y\P[^VR[[U[SY[Z\Z[QVdU^_TQTZVTTWXdXS\WRc_YXX_QZ_XQU[]XYeSbWWW`QUXZYVYZWO\Z_[V^[UWW]nUX`XVc[U``^Zb\XMYbYSZ^]ZYWWXVUP_U`bT\]aWYRWQ\WVW]aZ`XYPY`_^Z\]XZY\Z_WUWVWQ`WTZZZgYSNcY][ZWX\cWZZTOWOSY^^^VYbZd_\X[T_aXTYjU`cUVX]f^WWWYaUSX^ZW[ZT\aYXYXXXTO]Y\c^^VYV\[bY]bY[XVYcWgSRVX`WYX[]\eZTO[cY[]`TV^UUX\Va\[W]YQ\X[\[aVVR_YYWa_W^]]XPZM`Yl^`VTXVUbOUTX`[V]UV^^TZ^XZYZYSaZ[WSVWTY`QZe_YX]W[]SP`_X]R_TVZZT^QbbXSYaa_\XVXbScR`Vc_Y[TR\\ZQ[\aa[d^VVW_]]T\U`QX^Y\X_\VT^[SYY^\TaVQ\UYhTX^YXR\]cYeTa^YWSX`a[NXVaSW^VWWaWMXd\^ZVX[XcUVSc]Z_Y[NbWbTP^V_Yf\YSSS`MRR]VZSS\ZXUbSZTSdYS]]WYW[]U__`_W^RZPOR^ZTP[Z[UZWf_ZW`Z]a\XXeZWZY]NQZ^\SYV^]WZcNQX`YX]TZ`]T\NPeX[QPS]UQO`VISW^XaWW]dU\TY_[^fT]WaWYSQQb]VYUMU_NY[LaSWU[_TVbaUT[Z\d]\W]V^[Z]SbbWOR_[YXieQWad_]_TW[ZS]WRZWW^\WOYWW[VTXTUXX^XYSR^V_aZ_PXmcU\Z^]__XU^aafV[XPOMUY^YZW\[Sc]W`R\TSW][[cWaQVS\b_^XSZ^ZTgZXQQSf\ebX`Y\S[VPW_a]N__[ZhkUWaZZVYRUUX\WcZb[XQ[]ca\_`Z^dYbZ`[\dXXX_^\]YcYRW[XVZYNa[UW][WWRXU\ZZW]]\M[\NjVSTZTb]Ya_WPOURTgWZRTYWLbP_[]W]]\H__W[]c]V^W]`SPle\ZYXQX]S`QW[^SPcU]^VS[XX\S]UVW_WV]cX`c]W_VJY]UaZUbVYT`\e_XT_^[^Za_RPZXZaVRh`WVSQYNU]f[X[V``QeOWdTXWSXMTXVSd\VUYVg_XYXRbJa^\X`ZOW^VXPO_TZc\Y\P\bNcOaRXT[VXZ\]QUUUO[^P[W[Scb[\XOjUb[ZZ_SmRf_XVa^^dFXZ]Y[iK`URXPP]^QZNSTUY^Z`RX]RYWW]XRad^W_\a]ZgYVRY\]]RU_]RYVXQaS\a]S]STdf[OiZW`YUU\cO[VV`RS\\XY\ZSUUYNUY`WW`ZVVhYZ\ZLVWZ^Y]Z`U\RTR^X]Y\dTQUVXaXX^dWaY^RZWZWaS[fY`Z\UR\U\T]PfT\YTea[eTZT]Y\YVYUeTOYT[b_Z[WbX^WQc]XUZXRS[_TZTYY]UW\_c]_SYZPR[Se\YkbYVjaWWW_Y`]U^^YUW_^`aRV_]P[W][V\X^^f_^R[Zg\WYWY`X\_[^]e_]XZ[]]]S`S[[X`VWVWUVU[YW[W^Y^\[\Z[SnXVVXaZWUTc_^YVZ^Q_[c`SWS[P`PU^MXdY[NQ\X\Yb]OR\[U]^WUWY[`[TZ[^SR[UR_^U\ZRWXUeb\^c\UXV^SYY[a_ZWcYRP]NWWYed][U]f`c^_SZa_RZXXUM_\VYTb_T[WYTV[Z[\\a[X^[Y]U[T_Z]Sh[X_\[ZUfZY\[^[^Y]TQ[bYZVW^a]VRa]cTXT`]SYTWaVZQXYa\W[[ZYZTWaV\YXa\ZdVXZYT]]`bUX^`Z][`X[XR\^[WaTdaUTSXW]UXS`TSS^bYVXWW[ZVY`[bQWT[X[SZYWZYVQU[^UUZ`ZXY[_RWZWdTZa[U_[[YSUXV_]]XYQUW^bd_PZVYZ_\Z[_Y^TZ_[[VWZVZKV[UZQ\dZQZ\^]U\V]\YVYdX\SW`Y\YaYZ^ZZ]U\ZX]U^WVa]V_W]Z[f__WZ\WRXYVW^]`Y\[ZXW^\Z_XZRW^Z]`T[\TZP]ZYY_OXfY^X_Y`\YZ[WY\Y[U`UP[Y^bV_T\\\]Ya\Z[[a[WaYYbggY^fR]^XV]ZOZZXXQY[UU\Z_Y^VX`UY`^SY`T_]c[WRPWW_^YYSaUXV[^VZ_N\\UVUVTX]UPVVYUTYUVSS^[`WYUZ^V]VW[SSX^UMXYW_WUaZ[\R_X\VM\Wc_UURObQ\_cOW[UZYW]XQSUXVa]SZ[[ZYXXS`V\\_Z][aWW[RYXZVRS[SbZR^_`eZ^]XUd_^YT[SW`TYTWWa\^bUVURWZTYi]Rf\QRWX`NWZe_O_ZXaTYWj[Va[`U]ZXS_VZZ[VYYWU\fYV\ZV_]WXZXa[]Zd`XdUWU]bXU_X_W^XSSWa\YZU^ST[XWXN\RXYOZ^[WZ_WWTX]RYWY[`\Y[Y\UU[XQ[V[US`ZYQ[]T\cMTVYIVVYWWT]`\VeSV]fW]UW`XW[]QPZ\ZV[WY]XW`Y^a\a_c[[a\_U`XXUaX_cZ[VTY\RV[VWXZc]WXTZ_YXU\SaTc\dpgSXZZVSU[S\UVaV]XV]TcZX^eV__VZ`ZSY]X[WbYZX\VTZcUZYXYUOYc^RWUbaVST^b\W\V`]V\SY__XZY[iTS[VV_dSYb]XbVTZ]\QW_[XZYY^Ve]a[UVS]U^XY^SUQUY[XYVaVYdaU\_SY\OVT[]XS[]YUP]W^\Yaei\`X_RTYPhWYW_dVOVV\YTZ\YR[ZPTYUY]WQ]cZ]c_aXXfW\_Y_ZVWX_Y\YZaTVQY^XZZ[^QS]_Y\\_YZWX[d_dP[\cSUS^O[`WS_ZWZVYO\TUUY[YWR\[\W^[a]\W^`[\Y_`ZbZVUSYab`XYXZWc\gYPUR\XdX[[[WYUXUWYX\e\_^UZ^WaZYWP`\\Yb_^V][UTURR]W^T]XUf[W]`SeUVVQ[SXYY[ZkgZQV\^QYZWQ[UZS[WdRcR^X^\PM]Z]NbQRNY_VPUQ^X[Ya\T^SUWUVH]YUXTWXQ`\\`XV]]_`[\Q[Z\TV[Z^XYZWYeZ[]_dc[YXXNTNVTZXSVX`[[]Z]_SWUXRXSU[Z[Z]\]_T\]^aPWiTU^_]SMUT\WVWY`cY[[Ra\S_Z]^`dL[W\Ya`X]UWZY`SYW`^\YVZWS\_WZX_Y]VSU[^cR[RYV_[Za^VZ\SVZ\YVVYWP^ZT\d^W^Sc]VWTYW_`^_VS\W\Y[X[Q`][^W^YU^ZY[]e^RVQX^ZX_X^ZZX[Z[d[W][WWZaWY]X`cTSXVWVUZXUSXRX^]U[ZYRZ^VYZ[YXZ[XY_SQYZaRXZ\]]^PZZX]VV_^X\aWaXQVYcY\^T^\Uc]R^ZaU[T`VYZZYVYUZ]WWU[]\W]c_ZV]]b^\cZ\VXSWZWXW^hZ[R_ZY[U\RWXV_bS[\\eY`]\Q\aZXYjdZ[a_Y_[\YT^a[dR\VX[YWcWTZY_[W]U]`eV[^WX]_[YZbPWV`\V]YYeR\\MXe_aWV`\RU^^YbS`VXVTXVZVZ[WZXYXU^XPcaP^YYV\UT[\TWU^X\`WZUY]Yf\WZN\[][]dbScTcZ\XXNVZ\bU`TVUaV]XZaZYT]]O[[_Vg\aZSTZTV[VZ[S]cX`_aWZ]VXZ_UcTW[a_`YW_\U]]gVT_ZKVR[[ZVXgV]Y`]c]\T[^TXbaZ[\c^ceRb[\NVXZX]UbXdS_`Z[e\cScVUZTYZ^VV[T]OZU\SY^YT_WR[][ZbWXWc_^]aU`YY_MU[RSNZ_Rb^Z]^ZSYV^V^Xm\V`_STVOUTY^RZ\Xa_UYVX^Y\WXXkX]U[cSWX_XR`^YS]UYSYWWQUPW^QUSgZZ[]PNLnW^Y\YSe[WSXS\PW]_X\T\RUTMVZZUY]XT]WZ]SX`U[cWP]QYXdaYXYaQZ[TXXcUVXZWa\X\ZbRWQb`Z\RU[aTVZZYSQR^_UUXWTRVX][VaSWVW`R\]XjZaV[_TZ\aXVQY`H[Z]WZ\[Z]YW[U^RYf_XSaYYUc`\W_VUPZLSXSY[\^[aZ]WZYdUT\XYT^__YV]Wb[UXZ^[bTYaXcVW[\ZXSY\YZSaW\V]Y`d[STbXbWT[VYVV]V\VbTYcOVZYWTZ`Z]\TZT_V_]^S^VYUVVY[XYZYZO[\[[NZXXUeZ^aU_[XVRZWSUiT]XRTaXY^T\XWX\S^ZTaW`]WR]]_cYZ\iZaZ[^U]bU\]\]SS]QXX]NWQ]XVT]^UY[MaX`^a_[OZ[V\\UW`WXWPaeQWY[V\bbUZ[YVUUV^X^S`WTUYWW`\`dWR_c^Q_Q\T\TY[fVU]e[\Yc\_ZbV[__TL`R\]^TaU]ZVZUW[]YUZbfbM\\YZ]_Y^\YWVX^S^idZU[U`Xcg[`ZaZQWYW\VRW^\RVXYXVW^][YTXY_T[XMdXTbX]ZUVZX_ZXSVbPc\\\T]hR_YT`Y\YVQW\[cZ^Y`UVT\TL`f\`WW\cag^RV]`XYYS^h[X\UWSSXN`XPcMXVOQ[Z^eT\\\VXQ[VYWb^cY\S`ZUSZU`V^_\a^SX[Z\`[YZSa\TYea^aSSRZTgZUXWS`caVUTbZUWV[]gT]\\U_JQT]\WYRS[RWXQb[RZSRVTW\XPV^SYV_XX\]b_YRVaU[WSRW_Z^bP`gZ^WWUOZV_bZZY[Y\Xaf^[XW[]\n`_Th\V\Vbg\TTTXgST^[Qga[TXg[^N[YkW^\[\]UWV]QY\VQ^\Y^RhUUQTdS^\W`MVZbg\`UW_YWXTcYTbPYb^_Qa\UQ^^VYPgV^\XTXIO\]K\UWX[[`YaaP^]_V]PVSZ]LO\e_cYWc\Y\Ua\^RUY\ZVSV]\WUY\_UYa]UbPU[]]V_O_RYQTZZ^UTZUZTY^\W[YNSV\YSWba[SXYPY\eUQYRcSVV_YdW^US^XNFO^\Ka_acPSRUbVWT\WSZ`S\SZYY\V\L_YZ]\L[X_Z_PVRSXZgYbPUITYT[X[OQV`ZYSQRfXU[]VYTXXU^TO^R]TRP[^YSfUVLE_WUdUZZ`XL\_VUIRYeLGXD[VUWT`aR\^TT[l\[QI]s[]I[UT_^U`PW`QTKL]QO__MU[ZPT`bVNgQ`QULYW_Z^LWeUS`LLV^OWYSLXRYTXXM\[VceWh[]UW\HQT]MUT_TdWYWTTSVUN[T]VNdJ\Z[X\_ZVWV`TV]T]]WYMXQbe]KQgZTPZ]Y`gWZLZ_VL]PX[h[QRVbYNN[Q\Y]NUUWPOTW]SU`V]YaSaUTZX]QYWNbKYRST]][OSa[__VbYQ\]\Q\VY^\VRYWVVXYb`\[[_`a[XNTUZQUX^ZaY_XTW^O]\[WXSMVR[O[[][XZaPRQc]\Tc[TdVV^`XVWb\SRfRZT\][W]aS[WM\P^XWU_U__Y`eUZX`X]QRc[]\`\Y_Q`]Q^]aZVYU]dZSWXVU\hZ[RY[^ZX\]]RYVZWXXeR]WXQY^`]ZZNWZS`bW\QZ^^T]_SXW\WSc[aaRPV^`Y^U_WOT[YTZcWZU`OTSV\WfXTZ[N[Ya_RZcXgX\ZbT\Q[`\VYVZZZQ]\WRY[YX][RUWXW^YUWZV[^TWV_PcaSQYWYU\XVMZ[__UWbYYWWRYTV^PXag\V`bRRZZSWS[Zb[U\^XUZ_Q]\RYXT[S`VZZX^c[S\]XZSY[TZa^_^RUXZRRZYVa[Y_\TV\X^`\Y^^]Q]]cYf`YRX`WQOUX^TVRX[\YPcY\_`WUT]TXU^WXVYZch[ZPXa\T]SXW]T]VQ[TRYZ`[iVPSUWT^[RMZS\QePRbWYWM^\SY\^jYWUOZ[S`aWSh]]^ib[OO\c_RVbVNbX]WSa]X]TcRVUTYTl[NQVV[]YU^]a]KWVY]XMU\`\\VXR][eY[O[YcX]RW]^YYTUVeWQVbS\UbUTTUgY[dhUZZ\XP_USYSTbPUQ]YX`\\bW\e^_UY[UUZ_]\^Z^eQfS[ScRR\V\T_W[^V_\_US[TNXY\SRMgNS]ZZf[ceZ\gXT`\T[^YXXWXTSR_bPVVSVcaSS\T_]T_bSYgUMScb[NXX[X]QVWaVdO`^]XSf[Y__]XR_dYYTS[]Y[O[[]]WgUYURWYWZXY]W[IXVXP]]PZ_^b\NX^N_^b]]]baXZ\Z\^VTV[WY[QVQUU^OVXT\T[S^RRMMU[aQQT`dVR[c^_TWcRX\]ZYSaV_^_XOTZQU]cY[Z[[ZT_[bbUZ\TUYaYZX^P\Y\Xb\Y_ZWVXRV^VX[URYWfWhUPWQMbV\WZMY_XeZYTabaSTXYVZWVSXPVXRaZS]Ua]TQ\Z__TZSYUWUM`]QV_]WNYZ[]Ue\^d]RUW^T`ZQRd[ST]\W\^_b\V\[UMY]X_Yb\WYXWYWZaYZXTY[ZcPTR\]\_UUUUZ^`^hUWUUYU[WSZS[\WWZaZaZ^U[__XRZ^]aUZVWXXTWTYW]ePRTX]SSW\\X][VeR]QTiUV[cZ[TWfSRTT[aT^]\S[_b`TVZaV[\VW[Z`N]^NOYT\gZcU\LYZYU]fa^Z]e\hLYXZUNTUUV]UY[YRXUTZPZ`Z^\_WbU[UUY\PWRVaUc_bVXTV]XXc^TToLZ\aRV\_cPXZRWSXbS[YUR^YYVT]eXTZ[WYX[cY^d_XZSWV\`YZaXOPX]VNWaY[OVXW]QVW]__XU\^ZXZXPYO[YYZbYa^UURUTfcXY]`VVUWbZYbZOWa^]\ZO^]Y``gf^]JRTbR[TVPR^QQlZ^^^[XZ_OWXoY^ZV\TT_YZTY^VacZaYZU]YmXX]P\WT`Sba[X\P[WU_]XRZh[RUYRQW\QUW^Z][^_cX\c[U`QRSl_b_]WT\Y]X\ZZZW[^UZOb^_Zab]YV\PaV\XaVfWbdVPY[ZXa\`OZS_Z]WV[TXcUUbWfVW_XYRXadWW[]XVZS]XYZ[ZY_Y[Y\_XZU_[Ya\J\\`UURVZOR`^[RZ^^[PXY^Z[qXc[bRl[_WV[QaSTU[Tc]X\Z_ZYZ_WZTX^YYXQYUX\`VWXV]]XW_]YcYV^RU^\VRWRbTYW^_Z_VQXZSZ]]^VWPYOZT]YV]ZR\aZh^\TXU[YWdbW\[h\]`fa\\ZP\eWWYiZWUaVRWRRXVUe[d[eVRXSXS[W`Q\ZZV[W[RUY]VV\Y[RS`WWV^W_WW[[\WTR\b_Z[\[ZQ^^[YRLSXS[U^\WSU\`\TYdXXbY]YQdZa[[V`e[aT]W^UZRc[ZacWRVWVVV`ZZY\T]UWTYU^`b``\U_[SbUTY^RV[YYX^U[VP`VeZY_S`YSY`Q]RZT[]V]ZWXT[YQeSaSQSdTQ^]T[Y\^[W\[^]X[[UaZVWZ]VXYbYQ\VW_PZ^`X]Z\\]Y\kWW^XV\^P[T_UZYWWXWZVYY]cPXW\]TSXcT]_ZcUZb]XWYXbWQVu\c\S]`TUa_V]WTTZZ^W_[XWUa^e]ZS[W`eVRY[TTZT[XYXYWTTY\[Y^aXRaZ`UYS\WVV_^ZWUUZWXX[YXUZ\ZZZbU`[^YYTYZW^YYhP^\UUT[WWWab`c[bTUY[U_RU]SSTYZ[S\]YTbX_[[W[R[WRaR[gXYZYZ[UQYPcU\WYZ[dV_][XW]\]VY`WU\^_aRVR_bT\P[aa\XURVTZhNUXT`Y\Y_UVW^RX^W^ZVZ[[O\_WWZ\`N\WN\RUZdajU\Y]Y\V`VY]][T[[UZgWb[]SYTWXUW[cYf]QZWZWlZSVbZTT^_[^L`nZ\^Vl[XY]ZhSfZZ]TQ_SR]]U_cXPZSVU[][XY_ZXbO``TLmT_\W\ZXUYZX[W]UWaZ\XVRYi_ZTcSW\_]\VVV]Z\\aRZ\]WYRYY\WNUUQ\XaX[TW^VZUNUTTcT^YUNS^_^VZWSZZWW]ZW_VXQTeb[V\QYUX^VXhX[[[R]]W]Z]\RTY_UcXSjQWSP\WVQXWZ^YX_`WSXWSbV]WYU[fX[PTRaXZS^TcZXV^XYQV\\RU]Z[aXYSQXZbaYl`iXURY\_`[Sb`c]SPTV[ZW[YqT]fYYU`X[\XY\XVX]Sc]WU\SYXdT]dZ[fYXY]]^TT^W[g[TZ][SYVZTSY`^]XaU`[aRdYUTY[`Y[Zo\TdLR[\[USSSb_XbXPW[`]ZVXbXV]^\U\aZTMKQ[_[[YZTZYX\KZW^YL_]]]UQQSR\QWVWTS^Y^\VW`SSk\\[^U[MSX[\Sg[UURTW[TWYVX[VhUYSV]^kR\UYU][T_ZX\NZZU][\hYbY[`WV[WaX_RZYg\U[OXV`\XQc__OW`X]O]VZ^XcU]`_X^[[XbiZ]VSXe^XN]aa[VYXYU_WU[WWY]Z`UV[X_aS[aW^WT`]R\[eWS^QdS_oY[TX``_]YOZVX[VZU`ad\[bYa]Q_\[Y\YT`ZW[`UYSY_]ZUY\T[[T_`WjPY_]`bV\XhTYkW][Z]^R^ZW_UVY^\VS``SPV^QW]gT[aX^]UbWaU``^[aZ]eUSQPYOT_W_QQhhSYWPhUY^[aZ\X\WTWU[_\VW][]\\X]ZZ[_\_UZU\TXZXS]QRW^\`QYYR`U^YY[[cWZZaZW[c__XRSZ[\iSZ`YVRQ\]YWbJS`^\Y^PcV[XT^\]VUZXYaSXXaW_QVL`^WYdfSR_WZaXS`X]^[ZcWWZ^[U[YUXVYUX]V]ZZ^\V^V[WZ_bV\XU[\]X]Y\^U\VZ^ZZ[[Z\`RTdTYXUY^][YWX\RbXZ][PXYZ[WZVRf\X`SUXTSMZW\U_W^bVX\[W^XWV[XYWRSY[YTXZVW_XH\Z][SV]TP]VWZYWRV_][\[XQW^aYhTUYQV[\Yb\Td\^_TXUXbQWWYWaVWVU[ZXXYSR[dT\_XX_W[]dX`S[`_TnUX`d]W`aO[V^S^WWa^TWX^Xd`]^YXSZV]T^X\VZW_VW_VY\S`Ve\Q]XZfVZVVUV^]Y^[[Y_Y[Y[_^WYZTZa][_\ZWWVWS_Q[V_bRXOXN[gU_]WcX]Zb\X^pWUTXfa[TV^ZY]T[^YVcY\Y[[YUOaQd^[ZT]YT[XW]_UVWWaYRT_LWYb\WX`ZVUTUabTTTeb\^YUVVS]UWU[U\X[qheZO^^ZaXYPV]`U]SaTXS`XUX_U^VYUYTSZZ]Z[UV`VUfY]X^N[de^VY`UZOUXYW[P\\U_Wc[]Rc^Y\WS^]jbRQ[ZXUUYf][W]dYYVSS]^Z[M^WVV`VX]WUWcNV]OXXYUR^cYRZfWWbaY^]\VdRcR\O[VZZXTYaY[[SUZVZXYR`^UUcVVX[^eXa\[ST]dZ_SZ`]TVU^[^b[SRalhXZNTVY[Qb^e`[RYWN\_YT^[XPWX[`QVZXSR\_RWbYb\TZ_ZX^a]U]_U]WY`YZRR[[WT[X]dbZVYZ\][]s[TXaQXa\Z\U`QZXTTSTaY^``\_XY\gQ\V]XVY^]`W^]_\\]bYXTRZP^[\^S]WZ_WY_[XWRZV^YSZUfXYYW[^gdS_\ZX__\^^]ad_TX\T^_Yeb^[V[Z[W^dWYR[SbZW^_ZYXaXQ_Va][VW]\\SZZ]d[X[QV]_WSa\V[bd[cXZ_TZW\ZdZZW^Y[ddT^`Z[TV\^V\]Z\^WW[VeV][]W]YXUXdacQ]OTYTWc^YSR\UUX_^`V\UVSa^WWVWY\\XdXg]R_\YW[JfWY\]SZ]Y]^^c[\]XS^[RRZWYZX_U`TY]WZWNP^T[X\]]\ZNXZ\aMd[_]\UW]TV\`VX_UZ_WYdSZW_WaSUW\[W^]WU_[__VYXVQ[T]Y\^ePUU^SVT[Y`b\ZXST[X\W[U^UQ]RUZ[VUXRV]eSY`UQTW]cYSY\YT]\X[YU_Ll]g`WP\_TUYZb]a\ZU]e\`X\^LZ_]a]]WWR]ZQ[WQQVgRUXQ[aXZ^RYVY][[ZZSSQW_\b[WY[RXVY_cXWZ^\[SW[VU[`JXP^RY\O\[XR`dTZc_^XQbYX^_\ZXUPWNSVb]]\ZYX^PVXTTcVa[VSWKVY[`\Q[Vb[RW\^aY_YVWZ]VLW\O\_^]YM\\P^OYWYXZSV\`S\b[L]^\[We]XZZYaUY_\V]_YSJWVamXNWSd]^c\`gc][W[YTX_]`VPTXX\cdVWb[^^UWVSZ]^N[QV[\WVQVXXU\`TX[[`]WiQ_\TRV_[[\b^\aPVZX_]SYWUQYWd`cbYZWVOYX_SYYaZe\\RRTWTYXee][bZ^^YXYba`_^XdTZX[X\UWTUXb`WYUSY`^WYVV\SYWXR`c[bR[TUWZPJR\Mad]]Zq_X__QTZVZ\WfWZV_SnTXaW[W`Pl]VW[S^Rb]`bTSkR\\[\Vc]YY`Ta\]UVVV]U^OWa]UXTVY]Zp[[X]YYTUWXg_\_ZUYXZ_ZaW_SXTbX[]XZXXST[\X[Rl`X]^cZTaSVWZ]TY\VVSi_[RUSYVdOYXKhXQVVSZRYP[`]XXaXP[WRTl^^U`[SU_eXZ_XVSUZk[NWYO^dT\V[VVaWRN]]_RRXXfYQ[]XaRY^W\VZZgRUT[^YXT]_ZW]]\_RXeRXUVV^[WY[\YZVQaX\aS^X[]SYX^PRYZ]Yj]ZbRWVa`Z^XIWXUeYQUY_VPY_SY^VWUZg[bUV]Z`[WS[ZROXRY\]_`O`b^ZYUVZfaVY[XPY[Y`^[XYTURXWZVPVPXZ[`PZU_eW[XbRYWLWViWPSZaZ\UNSbU]`Va]_XUWOSS`_XSFYLTXZcT]\U]VSRSYUJ[Y_[WVYZW`WPeT[S]Z]VUUZWPRU^c[ZTQXMRVZ]XQ_d^YSUTUUWV]Xc_^^P\SU]WNUaQ\\VXX_X[ZWaWeZXWW]bUZTPVWZT]YUfUa[c[[UYU^ZRX_Qj_U\S`X\aT\ga`UZP\gZUYU[[U\a`XfYUXRQ`_[cS[WN]VUVO`VXZNZ`W[VWV`\\XWZb[bYZY[^XaX^[[bWYZa\UXXUYVWTZV][X\ZVTUS\_TTU`XWTTS]ZXUWT]VYTYTS][VY]RXYVY_a^V\WUXPVR\T_ZWVXWb_]^X\YU\Z`]VY\]ZWQW[ZYZRV`[\Xa^RaQXTWX[W[X[TY^e[RSdgWf[bYWX`Z[[Z]VUZ[TX]\Y^]]]Y[\ZXU_WQVS]Z_Wa^WVXU]\\[WR\XXXNSYUJUX`[U^WZ_[Y\_YZ[ZSU`ZZXX^]\U[`SZ\^_[dYU[UP`VV\ZTUU_`Zc[[^Y[\_WSVPYVZ\UZ[[ZWVZ\V]^[T\XNXX\VY[[VbNWT_cW`\Zb\X__O\[]WYVZ^\d\\][WXZSWVSWUc\`^]YZ\U]X\\X^TbTa`a\[Ye\^SWWV]ZYYSZXP]Q]WVZS[TX[[b[[TZObbY[X`UX]ZQV[W`a]RUjTXZ_U_WWZS`^\Y^R^\[XaVYa^`\ZW\VWY^e[W^]c_^VTYY`bKlYZ^YS^cQZ[Y\X`gV^`ZRZTRV`XR\VYfV\f]RUX\cST[]YPVYYW]e`\ZVS^_bZ\ZZPY[T]WPSXY`]gb[W^VS`S\_Y\``Z[XSYWX[Xa]ZP]UQWZ^U]VX^aV___]Q`Z^WbdX^_S[Z`_a]X\^bX[U[Z]P^ZP\YQV^U[ZW\\RWZ[][]\RbWg`WYUf[_aUY\Z\`\Q\Q`WXcVV\S\TYedbO[XdYWZUY[XX`\\bb\XTQUZZUPY`YYUPUYVeXVa`]XUWZYegZ]ZSXW^VXQaV[Y]XTVV[W\URaPUZ^WXN`aTZXQYU]d\][Y[\VQ^cbX[]]WWU^_^]c]`T]^XU`T[SZZ__ZYWY[X`^TZ``[YXX\\dSTW^VU`V^]]^ccX^[UVY[Zb[SR[fb]]WZY]WWaZhWYYTY`\XSM\\]X^WQ\XZ]Od\TZZYY]_\XVTP[aYXU^Y]W`QdZVV[ZZVOUQ\ZUWYUZUYaXhV__e^XV]VU`Z^YP[RV\T\`[VR\\^eR\aZ^U`X[WSRYZZ[TVT^]W\ZWZWX[YW_\O]\W`Mb]]TZSUaXZ^N\TVVQWVRg^ZZXYSX][^`VRZ`PZ]XTd]ZP`^W]aWRNY_T\]Y]V_VVVZZ\]^eU_\^_X`YTUW][bZTVUTVXX]T^`[dSYW_PLU^VW]S]Ra`Va\QZP[YYcP[ZZZYSVXaWWU^Tb\]XWP[VWXdX^R\VW\[_Q`UYW_YZWdUZfZ_O`Z[TbPQ\X_X[VY\S[`]SZVZ\XM_VYXY]YY]VOU]WWTYVhU\T]ac]Z]WWe[Z\\[bY_TW_`[[YbTTNVbQT\Ua[ZWYZWa][[TZSWTWV`Q\XYQ^XYNYM]V^T]Q[Ub`YSaUO`VZ\cVT\XPQX][dSVTUab`YY[X]TWYh^XYdba_WbV^UW\ZWYYU[ZUXZY^V_ZXbWaPY^cfPYNZ[[]YVX[f^UVXaZRQTZXR]TXXWa^PSYYUMZSUV[XWYUa^aKTOXbaRcYbZcSUX`YYU_OZTYcRW[X\`\YZWYXSQVY_diRbU\UQ`[\^TZbWVSR\Y[Xb]aUUXbWTXV`W\_]NaVRX_WWbXS\\QTW]W\_VXbS]V]Y^`PR]\a^T^XYWTZ^ZXcV[ZS_Z[ZPWfdUZXXZ\TcaXW\YV[ZZ]X^[]U^WV^]WX[Xa[\YNP\W\R[RW`YTbQVcWPh\[]WYWX\YZR^[XQZW^Z_O[\ZZ\XWUX^\Z^R\^[TZZV^V[S[\\\ZcVUR\bW]a[X]]VQZT\XVVP_T]T^][cT[S[WYXWU^QbUYUWWVWTV\^TTSU[a\YZZ]U]aTS[X]aW[]Y[]UZVZYV`WZ\XW_TNVjUW^\XVXU\V^VRXRbT`a[WXVc``W[`fPV[\TTV[UUUW]aZVbVWPSP[`YVY_YPT\`U^SUT[^X[ZU]R_TXRUU\YbY\]WZZQ^`T]\[SZ`P]WX\T\[UXXYZ\_ZV[R`eRcb^[\X^^X^SXUOV_UUXbR[`_V_ZSU[`W\WZb[X\cefWc[ZWbWS^ZTXYYTWV^WURc[MVTc\U[]OVU\]_hU[^YSRQ[_X^ZU[[bUWO^ecWmceb\YTZoRW_Xv[`S\`STXc[[_YNQX_aX_\]WZUgZdaXlVYX\T\Zc`XNU[QS^clV^_g]QhWWZZUU_`]ZLTUb\YX[`SYb_ZZ]UZ[]WUWZ_Wd^X]`dYXW^W^d]W[iSa_YP[VV]TaZN\lXUQRUQUVb^]k[[[UYYZ_NR_SVaeRVWVWU[V^YbV]VWR\T_X[\[UZZb_SP_XRW\`UR[^T`d[]_`\][[QYX\cRX_Od\_ZZ^X`VbeY[X[TR^SZTP`Y\YdZ\bPWOgTYRT^W`WZ_[]ccPP^XbOQ[WV[a\SV_`WYMUYZZUXaZXY_[X^RT\W[YcWX`ZcP^d]S_STYW]\a_ZXW[USQ]ac_UbU[ZY]gVX^b\d[]\^`YZQiaS]`cY]Zf^\WRUVYZWS]Z^RYR\[ZTKPVVZXXYRcXY\XaVXb[YZ[`ZgOZZ^Z]cTZYSVUYZSX]W[XV[^YXaZW]_V[VTWY\ZZ^[V\XOYXYSW[W[Yb[ZVkU[`TW\Y\Rb\ZUVY`]ZZ\_WX]V\Y[[RYN^WVYU]`Y`[P_a_TVR`VS\WTcWV[\QTgZU\YWYZXYW[][Y^me`U`[ZY[YZRT]^XWS\]m[[Q^[f[]eQ_PWYacaTTaV\TQQ^VTcU]\aWSUdVX`N`\[S]UQX_\UcVW`_T\WPdXS]Na^YZ`]S[TcN\dZQZXWXaXX[O\VYSdXXTb\YWZUS]]UYX]\ZSWVYQZ]Z[`cVWZY__UZc]kaUWRZ_T]Ma_XV[Y^SX\dVVRVXRYWZWT_U\WQaZQXbab[h^TTU[[XXZSbVUTWVZWSY`XWSU]TU\UR]S]Z\[Rf[bRX^V_\VXQ]OWWRUWV^\[\YV]X`ScW_SYYTY\^[XUgXa^U_XSV]TKeYV[ZYhT`VUURVZZZ^IfUYSXVXY[aZZZ[bX]QZW]]iRTUWaZYVZ_Y[XUX_ZZQjeaTTY`Na[aSf[[eQYXPUSXWd_UT^RRU`[_NYZU\Ya[`[cVU]ZVab]]_XWWb``MY[[WSSYYZ^QY^[XYaZYL[WOgYVeYVcaZ[Sa[US]O_`_ZYQXES^caYX]W[aQ_U[ZRf^XQ_]UU\[\YU[UXWY]ZX]UW`^ZRWSX^ZXXZZYZT]_YRUYR^Sa^ZWdY\dV^X[Z\W[^UVT[Z[RZ_\\WcTVX_S[[_\d]\URXXQ\WeRR_`Y^c\SXW`YW^_Q\c\Z]ZWVk^T^]R^[R[]RY[\_VPYVYT`SVYV_^_`XY\_SXXVSVXYW\]]\aSTXS^R\\aVTf^WZXQZU`Sa_TY^]bbVVcaZWVS\VXXTZ^[QZWZU^WV[S][TP]X]bVR[[_Y\W^UV[S^[QKVY[]ZZc\T\]YV^ZRXY\VRVVcSYVQ_YT[M_UaU]^aZU]`[[OQ\cWS]MTYNUMZ\Y[]^[TVXXX]aQWRWb\V]VS_]b\U`a^bXR\UTV]ZVWaWe\[SaSV\\YZZX]XX`eUVUUZa[[`SW[WQe\[\W_d]`\]ZXZ[Z\W^\UUMWUTQaUX[We^V^\b]X[W]XXaZXNYY][ZUV[TVaa_S\XSR[YVY\ZTXZW]]ZTZXY\XYa^dXWUZ_WW[WWT_iR]W_\RahNX]_ZXXhUWZ[YPbVV[^_U`X\_ZX]X]]eYZd[\\YR[ST[]Wb\^aWS^]ZUW^OU]ZW_UTYYY^XcccWXde]ZSfZSdTTYbZ[a]YZSZUbSZZYWXR[]ZZ[bU[]]UYVS]_Z_[^X[bZ[]\]]cW]XSY\WYZ^_Kc]\T_]^]UXUWVf]S]X[WYV]TXdWR]VcU`ORO^^\_]``[XZaT^_Z[M[YX^VW[YTTX]babTWiW]ZWQ]VOYW`XXT[ZTZ`[QRY]P`XQYXcZ^UTU\WQXUbQ\\\WYYYXQ_U]Y^WbYX]R\XR[Z[aS[YU\\`[TZaXXWgZYQ`\S\Z[UXTZUU\WUU]`X]\]Y]Zc[VZTXWWUaXXeZ^RZ[TU]b[a[QT[ZX]^Y\eVYfWXTjSY_XUZSWaZYX^]TSRTZX^XYR\b[ShW^\bXWYPM[Ue^_\XZXPSZ`kXhT]`Z^WZ^XXYTSVWYT]UTW]_YXf\UaTRZ[]Xf^W[ZeXXbOcZSXXXS[ZSZ^\X`^T]X_cV\]^V[\[]j[ZYXU\^VTb]fcU^^Z_SVYSO\^cVWYYcR[aUX\H^_]QY]]QSYVSbXc[[`lXZTGcTSSWGZYZWUR[U^aX_]YUcXYSUXX`\\cXiZ[UX]\[XVV_WR\bPTXV]Wd^YRTSZ_Y\Y]WZZW_[ZY\iUVVY^[]^ZW_WWQ_[^c]\XV[\[R\XTcWmVZT]ZZ`_QUZcYR]UWZZTZb]WJ`QPWU\[\[]Z_\NTYXNcsT[bWUXRS^`RVcZ[`SWXOSWbdW`^_YVX\T[^SUQYU`Vb_H\RZTaXQQ[VT\^PX^\_TZ]\YXT[gRZSRNXjQcWTfVUZbQTaZTY[V\QWO`R`b\U_Z^ZVWS]Z\TV_aRYXZYcHW[^^KRc\h]]OU\M[VWXe]VQY`S\YQYXW_ZXh_hTTZ_`_cQS\XXeXU`TbUS^UTZ]V_WVa]RT\XYMVHWWZ_Y^b[]dUVYZNYYT[XU\X`O^]VZSZW\^]X]dgSR\\aWXaYja^[`V\WXWaYVXU[QRZQU]_TXj]UaWWWZc^RYU`XTGTYX[[[WR]OTSTSQaWXWQTZZXPTYdX[^VWb\_TVa_W\cZOaV]\WV[U]WWWV`^[^MWVWVWVXX\d\V[^[]Z[\XUX^^Z\^U`\Wea[VS`S_XS^]XUZ]`cY_Z^WV\WT`WXc^U`aS]S[WYS[U^\_]TX^WRa\VaSYYY\UVNZZbV]]TTXfTh\STNb\YbXX[RZ[T\\Y[YS`WXU`bVZ`S[O^fcUWVM\Z^ec]XWXXOVYV`\Vf]XQWTYX\TVXZW\[Sg^PaZ\^[SN^bYQ]`g]Y[\\[QYW^X[]aY^]^VX\Z[_Y_X^Y[\cV\OS[YZZ\WXf]dW`Q][XSTTZ\XX_YXXUcZ\YYXZTZYYQVReYcbUXdW]Y]S\\^Y_^TYV\S_a_XPXcZ[UZ[^d`c]QNWM^hZ\`c^ZP\Qf`ZTXhgWZW\X^Z[YZYWWUV]ZWc]VXZ\XeYZZQR]\YV``YfQ]RTZTfYWYZ`\`^XVXXU[W`[^gTXObZ__UbRbFV^\f[Zi\X`WR\bQ_SPM[n`R][UZ_V_TW^W\WWYNaU^jZR^ZYPWPcU[WQ`^UYVdXcY^[Pb^SPXO\Z^\U[Z`]X[^TXU\WYZXX`U]TVWP_WXXVYWb[YXUZ]\XT[`TQ[dd[W_^[QURZ]Ma[YeTWLUXYW[_YZX][YV[VW[ROVZ^bYZW]]abaXY[VYp^S_[XU_Va]SZc[VU_TVUP`S^[WSeOUYUO^T_VW`^OW\SaS[Q]WN^YbYQUdVQUW[R`SXXP]YV__NZ`bYTYVZ[^ZYWXeOXPS[_V[c]_RXWUa[QR]V\aZ]`ceWWU[WYa^ZYV^X[Qc]\OVT`VTUe]]Z\Waf]Ob]caU[_`Z]WZ\VYaZSbTWRXQTb^ZVR\\\R\TaVOYU`S\`WTN_[T_\[W\`W_^WW^VYVVYUYdaa`_VXZWOSUXV[d]]RYZYZZ_ZeX[XaX_Va\Vd^aZX_[\UQR[[c\UabXPVO_XYXZdd^VQVVZY[W]Y]ZdT_YV\VPWa]PWd[`_YYX]W_TamZ]ROXZ_eU^]U`\Z^U\`\\__d^X^]]TOLkZQ^Y]\\TgTXUZ\X_Pg[[X[Z`XaaXY[PVX`XWZVV_[iVU\STWbWYM[VPVT[aSX^Z[ZbW]Qe[P]M\]ZX\X]V]YU\WOYZTZ[Yd]i\X\VY^aZ[^YUSWX[\_bYXUSbP]UV_MWW[V[W\`XW`^X_SU_bX\a\]Y^_[]Y\_Wa[R]V]YUZ[[VXXSWXY^Z[PWR[S\SUbZ\V]Ye_YMQa[]bS`\VVXXXU[W\VWXV]VZTZZTWXX`S^_[YiQV[[XOZ_aZYU`VX]TgZ_V^cX^_V^aZTL^YRVSS]OXWY]ZXZ_`^UYSUO\RVSOdY\fSTTaVeZY[SP^ZT[R]W`XX_[PR\YV`TX]]^XZ[W]\W[X]Q^X]Z[^XcZ]W^YRYZ\SaQ\QWYY]S\WW^Y[UWQYbSWWOSUZ^[Ra^W\`Y_[`_Z_VZc_TU[[Z^RZUW^[TYWX\X]O_XY`ZZXX[TfSSRZe]bU\UZd\\ZUXWa^_Y]`O]eX^U[`ZXV_bZ^^YQR[]ZWV^_RZVZUZY^WZTS`d\\UO^YQZR]X^^]Y_ZSZU\Z[[\TSYUZSX]\YW\S\UZVcW^SQVTTQUS[aWYT[cWReRYX^V]aOUUYZ\Y\]X]RYeRZ[c\gZ_W^a\TYZRZ[XXb]TYZYYY^bZXc^UYfSeR[]VY]YUb\[XUX]ZVUZWPW\[`bTZ^aN]MWZ[g\Z]]YR[[dhcZVU^[YU[UeNXaYX_YgVX[XLXWVW[QU^N_`[QacR[]Qd_Yc\VY\_Z\WKV]RWV\\][_YY[[[[ZW[eaRY\`WWX^R[U]`YYd\WSS`_VT`XTT[XUa[UiUUXYaSX\ZQZY\XY`UY]SQ\Q[[U_^TR]Y^ZSZVRY]Z\]O[Td\S[Y[W^`WWYX^\_YWQ\P\\ZbXSRZ\K_U\_[YT\SV_U\Vb]M]WZ[VXQTRNh[T^UVV_MZXSZ_W^`VXfVYZ[__\c[aaP^^W\_VUb]`X\UYY^_^]QWZT]^Z\UVRd_^[P_O_ZYURUTYXSX]\\UUZScVV_R\\\WYX]]UU^UZU]]QeXWZh\YSSWWZYUdUb]OWaYTMXXbaWVQSZ]UfX[^XYZTeb[ZTaVYXXQXQS`YWcXZWVRS_ZUPdW[bY[]_TZ]ihYTe^OSOX[Y[bT[\`SXSP`[[ZfX^_\SOTV\]YZS\]bXZY\VR[dVO^[RY\URZVNSY[_R_VU]ZWYfUYd`cXY\Z[JbYSZZUVU`_W]T_SXSXcVYYYZWUcUZ^`X^]QZfYW^ZNZ\]YYXY\]ZN_gWYZV^ZObZecge]XZh`ZYaT^T_Z[Y[WWTPXQXYW_Y`NZWZ]SZ`WZRWM`[S]QVXYW]V\^]ZY_[`W]_\_]`MWY]VW\XdVRTMeRacV[QPRXNV^U^[UOS`^bfWe_\R\]`d_WYZZV\[]fb`^T^[Z_]`X\\bW^TYUX]WZR[\WVW[YYQYbWZ[]aUT_[O_\WTR[_`[XZ]n]ZVR\VZW[[S[VZ]XRU]VY^\[d]R]ZRX]ZP^[RTWibVVT`Q[SUUY[ZXST\^N]\]WUV]WTU[X`XX_`UWVSZ[SVTY`fWXWg[[XTRYTXaYSXWaRRNT`XX_eXZYXYUXQUXZX_YYaZb_a\]`ZXIT[_[VVn`WcR^_XXULbV[]^WTTYLVab\YnO[^UZ][ZYQ]VZOT_\]Y^T][\UbTZZ_bWR\XQXT[]U]Z\TXXWSXV\Z[fbU]][U^YS_^`ZZYWPWcYOY\]W^[UUT[Z]VY`[VV^V`ZS`ZZSS^\]S\^]TcZ\W[^^ZXZ_]bRZWd_eUO\\XPS]SPX`]n^e]SLYRe[X\VV[]Se`V^dXWTdXU`[XVWY\bXXZ^[ZWVW[`VVW`ZSZ]YXXX`OUXb`]]\V`YYY\aNb_VTa^P^YU^TS`^ScZV`]O_^aZY]RZaVeWQW]U\eRY`[ZaXXY[]XXPU[V\]S_Z\Wj[R\NYSTf`VWb[cSd\[^U_[^bXReZTXdVYYW^eX[\WS[WVWPWT\WSUZO`]^[[Q[OSWdTO^UXZPX_R]V]OZZ\Q\\PX]cYMXSWa[^YdZW`bQY]Sd\`[WZ`V[U^ZcR_R[^RjS^h_^USVVZ\Z[Z_[WVXXY^STW^[[TT[VOPKURV]bW]URa[YZX[]SYU^d]VX`TaXbS]XTZ\^b]ZX^LPZNZSQ]XM]W\\[ZTVURV_WO\V]XO`VZX\U]]\lVX_VaZZd`V`W_Y\XXZ[Y]\\bUQ\_XZUXX]YV]WW[YX[YX][VR_R[`Y^]VTXYYW[UU[UPWITYSfacWZbZ\TTVW^Y^[b[a[U[WZY[\bWa_Z^SWVW[WY^_a[XSW\]O^\OX[_]V\\T[YYWV^WUi[R[XOXZ\UV^][RUQX[TO\U[[^OX\S\\[^ZYXVb_]V[T`VZbT_[]^W_TVab^[QaSR]TZ\MQa[aXeZOYUVT^WVUS_[W`UR`W]b[ZU^SZYZYXVZd]TWWaU]][W\X_UW[cYXTeejVY_ZaZXXYSS[ZUZaUVZVSV\VdTVTZXT^W[T]XWRSYXWcc\V]VZiNYRVXVV\]`S\\WV[[dYZ_VV[XXYU\[TUZVVZVWRd]YTXYXXNUT\ST_P[TYYXVe^TZ\YX_XWVU[ZUWWWV]W][V_ZV_]T_[VW_YaSSV[Z_V`X[e[Y]WTVQQZ[WURSWVY[QWNU\\VaYYa\[WWUcYb[bY`YUW]YUW\[UZV^^VOZW]V\^W]XVTZVZZ_VdX\ZaP[`[cWW[]YeYU[RaZ]Z`V[\WcW[_fVbYSQ^\XW`Y`[b^[T_WZZS[T^V\UXVfYX\Y`Xh`XT]YL[_`YYRWWSYT_Xd^R[ZS\\RXVZ_\eZ^V]aZ\^UVb[][WWX_ZX\YV`YhY]\`WpZZZ]^^XTVTVYY]`RY]S^VYR[X[[^aZX\V]SWX_XXQUb\XYTYY[YYVY[^ZVWUZcYQZZQbVZT`QV\[\Z_YXP^VV^X^U]V]dZZ`^TO]b`QZUYUW^ZcYYV\[XL]W_ZSe]QR]XXWTQ`WdS^UU]^W_X^\\dTTVXT`X]W^TZ_XS\edQ`_d_\]`ZeKP]XS_Q\[UbVSTiY]R]^XPfaZXY^[O]VRUS\Xa^\ZX[bbUaaX[^aaWU^Wbbc\Y_X[]T_X]_]X`WfSZSXXY`X[T][[Z`N`OX_Wa`PRXWT]\Y^M^[abb^R_ZX[gdZT[VWS[ZS`\S^W^[]YX[[YWXg[[aZ[]RYVXcYXX\WY][TXQYUVQYUT[Z_S^VW_d`X[Y\VRXTaRYQ\ZVXc\Y\_S]Z``WUa^\aWXTYWUUaYW\Y]_U[Z]X_WTTX]WW\I^X\[a_YRZWXV[RaNR]YVbW\UX^ZRbVQZ^f`XW\Zj[TZVYW]S][P\]ZYb\]^UXZY[YSWZ]W[[\gbQdTVaSWXR[X^\XY_Q]XT[UTb[XUYZS\Ob_`Z[[^gZZNX]_ZfY\YaV^US]SU[`UdY_Z\ZbZ_[[WRT]NZWWYUXQb^]ZX]\VXY^`U\\\R\QYdbUT^VY`XVYR[^eQVWaV`VhVU[^_Uca_ZV`eXWaUeVa^\[X]W^`^YW]ae\YWWX[WVXXXZ\Xf[aX_\WXV`PZTU\eYa^UXY]NYVZVXWYUZda^RSQ]T\\^YW`T[QaTWX_]S_f\WbVO_[XVeQWV\j`R^UiWbXURY[PZ]b\QV]\^TbTZjWa\Z`^\TV]ZaV^P[daa[RW[XT^TMPY[a[]YZ]`SXVWX]NRV[\\X[YR^QPg\]YVUf`\YYUY^]X^XWW[\V\U_Yb]UOWY_`ZcW[YTWW^Y_UQ\Y`]\XZZ_O\]RY_[Y_TZXWZYVcTUY]UV\Zf[Sa`^`^QZ^VZ\YZ`VZg_ZY\U]VV`]Z]^[^TZVZ_ZQQZk\\^e[e[VWXTYf`UR\V[[cYYSV]Y\WY\_ZYYUUc^_RYX]\[YbXY`[R[c]OU[a[Ta]U_bZ_c\^`VX`V_MSZUXUZRQP`XQV\SfR\dYTgbcVXJZZ[YV`RRQ_XURV\\\XVV_WSSNSTT]VQQXSWSWcXV\T]WR]_^XRT[P]T[ZaU^_k]\YbT\jY^][`XcS\TWhVZ_Y\WVMZTXU]XReRNaR^]ORYWTVgaTYMUT]ZS[aVVRW[ZQUTZYXSYVZYQVbX\ZXZf][bJd[dQd_XbX^d]Z\YRQWTWX[c[OUaZX]YphaZUbXUfdWYWXa`Z]^^[ZSPRM[^S]Y_U\\RX]bTUX`]ZYQQ]X\Y\fW[T]XR``hVWZZRV^YTUS_]_OOY^RWW]]UXZ[V_UW`[RZTYZ\_\VU\Y\VRTZ_]dNYUVVYXWcM_W[WW^XX]X\nV[UVQ^_cY^^WeZUXTbTRW_UNYSfeT_b[V]_\`OX]K\Y\ZZ_XVYV^WSTb]Xd\R]]fUb[[T[YRVc]VW^[YQU[\S\WX`WU]ZfPNaYa_]QXWSTWSV\NV__X\XRQ^YN\aeVYZ\P]YWYZZ[Y[]OZU^\XYVS]a]h`dTVcVV`[OPUXSW[X_W[[YkWQV\ST[YXWT[ZZ^V^Z\N^cb[[NJX_UVZ[\XSXPg\PZ`TbROYY]fRZVZbSVJW\ZXXWSYWU^YS]TQYKX`_UUZUUb]X_TWabZW`baUY^cZWc\WaZX[WZ]d\XYSUWXcYdZ`]_X\Zg]WXVcW\PP[Y`ZgX[WS`YYYXaOaQ[Y[QY^SS[``[RV^STSNZ[Z`Y\VVVZP`^^QTYY_\bX`]Y^XUXaX^h\QZT`_X\cZ[VQX]XSc[UU^TZ\_VV\VW]SZ]]W_U]P]T]URT_Z^W[VW\[aYX[\X`_]dbcXWYXaaVU`^e\TWW[b`\]ZR^YX^PUT`^\`ad`[[XZ\b\\ZZRYZ\W[[YUTVN^]^YVZNXZ\YZYgXV[UW^^TS^_VaU`Zc\RYOVZ]aW_V`W`_aVZXXWY_X_ZYaV[]e]SWX_R\YZTVYYdY\Y]PYZa__V\\YY\^Z\[IY\WQc^YXQ]PU^XVR[Z`VZ^U_SXZVS_[WWVSKaZTMPUY^OQ[RYbaTb][ddV[TXUZSb^WWRlUQ\Yd_XY`\^e`ZVTY`]`][KZb\WQXYUYZR_W[[RYTM^abZ\R\\RVO\VZZ[^UX^UKeZcfcYZTdXVcb\VWQ\UaR_WV][S\S\YWlOPS[VY\][XVT]`WVLaUZ[MVX[XZ^TXTWYVcZT_kUMU^^e`YYTaXaXM^V]U]^UPTQYU^NVX`XXbV_ZQIZ[bWbiUQX_VV\X_^^]U]SUTOZXNQUcd\ZUaP[WY]W^WdPZKRSXR[ZeVbbYTaU^YYX_^^WQUYcZQSY\T[Uf[WfX\W\cZTNX[UVX[dg^RTZX_RY[Z\W]KR[Q\P\Q_^YQ_P]gQX\ZdYRYW[cVbWQ[_]YaZ^\\`bc[\iT^`f[]SSRSYbU]]\Z[YXWQZc^ZV]Wg_U[[V]YS]^[TWU\[\gVX]UY^]Sg^OVL[R^RQXh`XeXWT[\I]X`RNjYSXYSa_VW[UVWSXVVUdVZX^[acXTLRX[WUQY[[WXWTaYYUR^QW[cdWX]VXZ]TUZ\ZY^`U[R]XaK[]VbaQ`^^QP^e]PWY[]cfXTYWY[OXWZgWUUT`Y`^[^a[L\OZ_[U\WX]TQMVTRX]UQZN\dViZW[UTcVX]ZbQYc_Z[YXXSZVS^Y[W]VTV[YXU][Q]`XbXV^UdXVUXZX]d_Q^X[V\[VV]YX^RRR^TY`ZZ_[]Y[][YN\b]\WXZYShUUUWUR[WP[aQTZQXYdQS[UZYX^VX\[e]YSZ\`ZS^e[_W]XVXc_\QRbcg_YW\Sc_]U[ZVYRZVU`WeWVSRV\bW\`V[R][^]aT\[W]aZ\]Q]Y\Va]X^[X[]`d`]XV[_VT\]R\VXYU\Q[[_T\VU]_Ub\chR\ZYXX\\XZaUVa\VZVYWT_WYZd[[RR[Z_bW`]\\TaYfX\SZfYXU\[R[WY`\YV[^UWaY^VYX]VSb\`eVZSaVZ_\TZX`\_Uc[[X_QWa[_Z\ZaQa\^UVXX[X]YYWVYQa]OS_WS[YX\caU[]PPY`Z[]X\W]Xf]^VYSXYXS\\X_TVdWZYX^Z\Xa_c\a[VY``VTYW[^VXUWXVUTVZ[ZRY\YS][VOZZ\^[VYXZVY\XUZYTYTTUXXTX`^X]]Q[U_Z\Y_X_WZW[^[W_TTW[ZbV[eS^SYXS[XS[aYUVV[WR[aWWWYYbQ[VW]XTWUUT`S^ZbgV]WS^Q\YWUX\X\UWUa^T\ZbX`XU_[U_VV`Y`Z[W[W]_XPRY`^V^SYR]ZY_^`SYZVJXX^^WW[WfO_XU[^]]`Z[UZ_[[WaQ[VZST]YT]^WWZS]_^\][[\f_`ZXaW\_dTXlPQYXUY[YZZa_cZYYYPTXWaR[b_VYSSVZZ]Q^]S\M^WVVYXX^VPafg`VXXd]]Y`UXWYT`^ZTWaX^^VZRWUX[`^V_hW]M`SN\WX[XPXRRY[SU]UXf`SPShPV\YURU]aXL]bbXWT^IVZbUaYQU[ZSZSd^OX`WVLXPXcSWZ\XQW]]YX_QVYiTQW[Z`YWW_YZ_X^X^VVNh]U[bYZZaa\T[S^X`U`^bUXY[^SRW\U]ZNSRdWY_Y^YTXYQ[W\\UXWXSZ\VSY_`^[cR\]Z\R]UN^YX\aVXTdZ`ZaMcaWPT[XRUcY\Va[Y]VVQVZ`\YTaY[[QeWXWaVSaQWVU]XSQ\[XZSOS`PWU]U[T\\URX[[U\[VU`\YYZ`WT`W[RaTZ^^U^`OdXY]Xb_[S^`Ta]TUaUMaUPY_WaVX\SY^`UU^`eVQYUX\][[[[^Z[RTZWaT^SWM[O[YZ^WW^]TW\]U\QU`_WSLXS][XP^Q]UdYRZ^VVSTVYYQXTYXZ\U]U]MVSU`UTXb[VR`W^_[U`Seb`WUSUc[`_^_QXj^QXY_ZcSaU_fYU]WUXV\WV`WS\X]X\\Z]l[[VUZXVLRQQ^VVU]RV\W`YVbX_SWTX]VSbRY]_^TaY_aWWNZ^aU]^\Y[YVY]_ZQU^`W^Y\c`ZLX``ZYXURWbVWVZY_XWaY\RgcWU\[aTVcV[c][UgV]_[W[Xb`a\ZT\[WMc__[[[\_Wa_YU`]XN_YV\]dVWVb\WQT\RYV^UdXUWbZUUbYV^YTRU_[UYOfX^]dY_YW_RZ[WZSh_V]X]`ZOWb[_ZPRb_]_]cW\YdS`YZUZ[^WbS[f`U]db[QdX^S^`W[XXWY_`\`\TbSZS\V\VUVi[Z_SY\ZZ[XRYV`cRWb[]Oa\We^ZR]]a_YU_VTUV\YU[ZT]aVUXXZW\aUbTQQYU`Y]U`Tb^U^Ve[ZYXY[Y^]RXYMS^cdZVZQ`XXRY_`Z\SVSWh\]Lc\``ZZXWVbU[UX^a`V``YOaYSX^bVXg`hXTZZVSWRYZ\\__ZYWYWTS[SP\YZRY[TTgXYU\SLZ^LeWYJWNVaZX[^]b\VXS\YSWXNcOXNZ[XWfTT`SVYVPS[\U`]Ib][`jUZS[VP]PST]WYa\\OaSXPag_X]OVdUVTjWYP\TYQ]\M`SZOZXX]][^VZZ^UU^^JZ[]OU[PYVVTJYVRN]VSZR[YSOWchc_UXo_ZX^^P_PWZmQ[^OVYX_e[bXW_U[aX`IWZP`\YVY]UYZ[Y\UH]RR^Y]\US_X^``UgaUX_\eX_YVYXU^ZXUYSR_UYQ[_W]ZSRaQORW`^\XZNT`\Qe\RgP[Zgc_\P\S\S_UfkZUVRcZURTWTY_]WVQWUcT\W`\\fX[XY\^N`Z[aaYeUSVk]]dSPWUS]\V_ZRZU[VTWK_QZ^TcUc``O``QRW\V`YSYZUYWYUTZZZZXTYUVa]]X_ZTTTLT]Q_R\R\Xf[_[W`X[]ZS[XRW[`V]YWUXVVbgZePc\bYZXWW[QdY^]QV`[WT[]YYO\Y\RaVZ[RM[^^b_U\YRW^[XVeY_^]dVU^VeZ\\fWVYch_V^WbWYVSYThb]Oc`VW\]SU[_XZ[_WX]]OZZZVX[X_YYX_XVRUV][OWPZ]aYb`R\TiT`UW_UY[Z`^`^\UaUXSZ__W`[Y_]T]T`YXVaS[U_WWTX_VWYQ]Y[c]VYah\\[aZ^^bc^XXaKW]UR[WZcWS\WWNYaTRXZZjm[XVV_WSWTZ^aRTSZWXYWff[[Y`\[[Ybd_\XWTZVVd[cR`lT][WW]QZh]V^[N\O]UWZVOb]VV\PXaT\`\PaVXdUZVV^Qa\YYQSRTX`W_T\TXM^X[XcZYZ__W]]]U^[bWY_Y`_]U[dQ[[YXX\T\`cX^WNl_UYaYVY]YU_[U[cVWZ_MaR`ZVSVW]X_XV^`WWaT[N`V[XdSYVP\TUS]Oj[QUNbS[_T[_TXZY_VZXZaRaWX[UWb[aS]V\UV_R`W`[U`YYYSZRVZV]TjVXV`W[R\Z^[[[SR\R]\V\_O[dZaY_aZ\W\Y[LRQ\_Sc`ZOS_X_V_\\^R]WbYZ`_RV\ZWeYnZbTc^ZPSZUWZV^UZ^U[kYNYT][^Z`WVXU[V]`Y`Yb^XS_WX]U`VW]QRQ]]YS]YYYXX[Ra_N_\Y`[WWYXUURX`V]\TUbS^`V]ZY^^VY_R]\ZUXXUZZb[]WbWVVYTc^WX[YRQQZV\Za[XT\YXN\TggkUV[V_U\ZM^XWZZZZVUXXTcZYQTRXVX`TbVSQXT\RWY^VRV]T]PVQVh_^KcYNPWWc_`[S[YYZhY\PZRUVVUVYV][]]Y`LbZV^\[Y`XX^^Y\cW\NWUTUP\VV__bhRa[VMQdVXWaZ]QWU[Qm]W_`eRZUW]U^`TXJZ_ZWkdW\V[Z]P_W\aW\R_WbX[Y[TT[VQSWV\\ZJWWY]gZQVVc_R]^d]ZSbKXY\SUZ\X[`aT[VVXZXSVYdRU^Xci]]XV][bYZbMbbRdNaTa[QVR_YW\e]WV\R]X]WcbWY[b[eS\SOTRZ]_^W`^R[LSRQYP][X_^\VU`]V[OTZX[eRU]UMTTUT]UaWYV`Y\]VSZVXP\TW^_[\WMWWNTYYUT\YVT`Z`XX]]YaSbVU_SNWYW]^_ZSR[TSU]^Tb[[[O_ZZ^UVZUUWbVX]STda]bZU\aVb\VSaNY]UP\]]\XXWmZVd^RVTXTX\WZWfTT\WZ]VV]X\YZYP_]SOYX`V]cQWT\]TYVXVUSZSVQ`WZSX]ZSUVX]^h[[WTYbRNZb\Ze_TW^\SSZWWVUU[V\eST^QUZT^Q\cV\\S`TSVWRS[_XXSUb^SYXRQ\T`Q_d\XXQX_WaMUZXQ][WW\_ZS\VTNSQX`T[UST[Y]ZWaRbZW\[M^`WX_VX^V^_VUTaZOY_\[T][`W`WRdNPZbS`]`VZZ_\YUaRQYUYW[[`ZZPW\Z`[N]Z\W]V`XYRXc\XX\^YY_Y\bRTZVWYVSRcX_Q[IQ[VUcV[Y[\URR^^\e]fW^ZbZ\VR]`XYZ^XX[adX_^]^\VZZ]W\Z[]]WVTYWU\gY`XU[XU\^c]__\S[QP[`T]ZW`WYZbWY^UT^XVX]YXS\VYe[]VSX_Y\QZc`ZZ`ZRXYUOW^b^ZWW\_XVXXTUWY`\`\SXX]\ZVX^QX\QPXQVXP`SZ`X\ZWSUK]\Z_TT`][PXVaXXZXX[ZVV^_Y_h[ZTQ^[ZRMZVS^TWVdZX]VPS[Y^ZX[Pa`RYaWZ`S[\YXSRRUQZTS]_dUZ[W[\ZU_\]XY^ZZ`R[X_SdX]ZZYUSZT[XeRd]\UahQXX^`a]SXYT]^TZUV[\VZ_bY]WVY\XXYWWaUXX\XT]bXVc\[TWbaOUY_WV[XR_Y[Yb[[^Z\_`S\[UZ]SUfgWZR\Y[g[S`^VY`W_g_UQ[TU_VUWXXW]_WTRSVXTX\WW^]ZVVW^WP]V\WXV[\WVU_\LW[\a[Q\\YOS__[SV\YY[TXUYTZXSeYXXZYXYW^_X]]XV^T]T`UU\[[XR]W^[aPWSWY`Z]WeZZYhbVQWPSXPSZV^XQXVVO\TZZYXaWO]S`Za`Y[RUZ\aV^Pc^XWV\XXX]XTUWbUgZc^YbQY[]QZaY^[_`b]f_\[X]ZW[]]SR\XUYbU\[[QZ^VTZXTZTSYeYbY[\\\[V\dTT_X]YYXYVcRWWQ[OTX_UWZVVZLXR]^VVWZM\WU_`ZTUR[UWUZcXWYdXZX[WZZ]WY_Nc[]`X\a_aYXV\RW[N`[[TX`\[kUZS\VVW\][YV\ObU]ZY\Z`TdYOWQ\QY[^VY]`W_ZZ\W^M[_VUVRa_c[Z_[[VUXR][^eT\fVVaa^X[SXWbYW_aTbXVZaZd`g`Yd\X`WZW^\bY_YT]WZXX`\Z]]S\YY^`UWRY_c_UZcT]__Z\\a]`Z^`TW[[^`XaXUWSWZYV[faWTW[a_]WVNV]SWZa\W[XXZ[_Z`YTWU^SXY[WVZ^aWQZYPbcdQ`PQXU\O_\WT\SV^QZUU_[`W^gY\^_\WXZX[VYR_TR]aV^bT_^aXX_TW`VTX]N]_[XV[YRYYcWZYUY^^\bV_TZ[TYXW[WSU_`ZbT[\WSS[ZVYR]]WWRYZY`TQN[X\aUc\M\ZQTR\ZZX\V[XT^`SWTSSca[W[XRTbRZYY]SXWUZUXQYXZZbS]ZTYS\XZYUTZhYWZTULX^N\YTY`aKUf[VeZRcVWfVaTY[^[TXYV]XVQb[XYVccQUV_l\bV[QX\Y]YSWMZaQdaXUZ[\Z_UZ\\]]]XTW\cXVR`WVT`YWT\YcaYrNXYTUfbdVUWW`RV[TV`_jcWWY^^cYfXVZ]\eQ]RS`WSaOUTi_X[WU[`Q`OXU[cZUYYSR^SSRQgWW^XUU`WZUWWVXWdUUXZZ_Y]VSTZVXY[Y[SX`^T`V[ZZ^ZkUX[S[WVYZYKX\^[d^Y`YWUSXYa`]SQT\W[[_VYXSbWZTR_^cZS[SW`VVQTWZQ^_QW^NWaYZWY]UZS[`R^NX[WX`WMW_^gSW^b[TY[L\V^ZLQUa_YY\aTTSScXYQXRWUXX_ST\aS[Zh\Z^WXYPZbY]YYaQWbRY\Z\XY`gV]ZXS[]Z\b\WVUYTWZVU`^^U]bWPP_[d_YYTZWTdPU]^RUcaZSZ]SSWTU]TWUZV_`dXT^SY`[PXWUa]TY[T_X[[T\Xc_U`[eW[^_V\a[Y^_e\]TZW\^]VYZSW[WWXa__a]`Zc][V]ZTUWY\TXeUdT[]ZSa[Za\ZVSb`TcP]^URZTZ`[U^W\\]XTXn`_ZU[Y^^\\SXR[_TT^USX^TXW[T`^WdV[bYL[WdaUbV[^ZY^PSXW]ZY[X[_YZ]\^\ZQYYZ[[g`VW\ZU]a[Z^\\[Vb\YWc^Y^ZW^]_[YXXU]YXRZRTX_TVdaXZ]aL[P^SY_YaWWSVS\[ZTV[bZV]XRWX]WXYXYYY][WW^T`Xd`XWbXaSS[U\\TYYX^YWWW\`\WZVI`_UYVYackM]T\[QVQ\]WQTSTX\TW\VUQ`M]Z`Wa]gSY_^[UQOOM\a^_Qa[TUSQ_UcQfOSSMW]_ZTa_T\R\bYY^U]UYV]^UV`VeaTPXLUP`VTda_WbRVjWY`YZ[[\TkT^`XVV]W][fSbRadPe]c\RW^YV]\V__WSeS[_V]dV]VVN[Y\\LS\_[TSRTRT_XR_O``R][SRbQRVc[U_SXYThZZT[\]WSTY\[UTXZc^]PT\Wb^NSWVWZR^YNVV[[cSXSXWYZ`YXnV^^_WWOY_[bOYXXZ^SYYYSW`R]VgTX[ie\XX\YM_`US\[PU]U\bZ[VV_\[^RVU__^`S[Z^Y^^`^U]Z_^URZV^PT]bWUZOi]_b\dUVSP[MMM^[^UUY^[X___YZYV[]ZVNY[TX^Y\Rb`_T^WX[T`V\V\^S`dYVTVTa_[XVTeXWZZe^OSU^[[Ta__^]V`UWYaXXX[`RRUaa[YRYYaWWVRe[Z^b]UX\[YW`aTWVQ\U^X`WVXZWTe[c_X_c[`XNf_YXUYYT\aQXZVmZSRUYfV^YXebU`]dYWZX\SQTZ[_]^QdZNWZ[d[bXa\Z\RXU\XWUZaYYZ\ZN[VZXY[XXK^XXd^VSJS^Q[aa`Z[OTbUZ]a`SW[VbZX\UZVZ\YZ^V]X]^YVXRUZZWeT]fT\UX``YWYZZY]XW^\UUXbTYV]W\]^ZTU\STRY_Y]]`[UY]de^\fZL\UL[YZcTY`ZeRZZTW[Z[]\S[VY[UY^c[^[[SP]WZ[fd\TcVbOP`V]gcW\aUYOXP`QiTaYZdU_Q\ZP]UWbT[]XWY[_YcWSUUVSVW][^TZSVV\]WqdU]][YY`^Z_[_ZQWXPXWOaUYfbUZ]]c^][]\]VW_]f^W]QY_XZTZ[\^UYYS[^baQ_[S][^X^XUXUVWYWZ\]ZYbPT[e\Y[bWZ]`Ud_SWV^V_V\nSJW\ZcRa]SVQVZ][R[WbVQWX\X^YYRZW]U_[U^V`]^WQ[\S\\YVS[[d]_Z^^cX\^WZ]VZVZY_V\WTU^W]]YV]U_YWff[V[Za`Ya[Zb]Wf_^[[XUVXaZY\YT^hXX_Z^\W[XaXZW\]a[Z\[VWbWTWd\ZXXQURg[ZYTWSZVU`WjY]VPfZ]V\``\_]X]Y\UbYTVWaXfQ_SNMSa[[V`X\[Z[\_UYbSRfY[U]YSa[Z^YWVW]\X]dUZV\\Z[`_WZVcW\aN_]NVaSY_VWSTba]\[ZXRXXR`RZTYQXa[^X_YSWUSYS]V[\[ZZ_\\Y[`UUUVWXY]XbbXb^`TY^T`\\VYO]XS[UYW[S[]Q[Va]\[UWTX`fVXUUXS\aY^a]Y\Y]T]\^Y[ZWYZX^VX\X\[dSW^RW^Pa^Z]aWS^YUU[]`PZVT\\UWXTXVQVZ`YYYXYTX_gT[VP\X[\]YVgVUYZ__adZVbV\[[ZQ`T^^Y[[XbRVSZ_UPbY`\OeXTVY\\TTZX_\]aU]WgJ\e[X]YW^Y^Y_STZYZU]c]ZYYY[UYW`RSWag^O^UXRcV_]Z]QVXSYR`^^ZORcR\ZgYRU[\aW^XQQWU[RYZV]WWST`^VXQWW`]ZZ`\dc[S\b^[R[]WUVV^]^aYcPX[Y]YZTR]UXZ\ZW^YVV\W\X^N_VU\[ZO^UY]]VZ[VVW[\X[UW[V\RT`^[YaUaXg]Y`VZ[VX\^TX\eR_SXb_SRYXY_U`NSUP\WZWWVYaW^\\VXYVRUUYYYXT]\`UV\`VWO[TXX^UTUM^_^XZ]VV^PPX]ZZWXTTWa[]`ZcXXWTXfVVO`[][NR`TY`XSXcYWYV]ZWVWLUU^dTZVS\W]R`QVXW[\[XU[Y]YU[Y^^\UT[hVZZRXS^VU[PVf^Z[V^U^VW[^cTU]XcZ`YXY`S]YZZ^NZY[SaTZb[VTO[UW_bT[X]\WVS\_dWdQWaPYbZY^Y`Ze]`L[Y_\W\PRRTWUYRWgYbXORU]_VZ_]eZTag^UT[cTZUV[VRSZMVgUOVWY]]\^TSYTX`V_ZVWWW]SRQ_Y\d]YnT\^UU[]aS^J_UVR\jZ\[ZY]SeXWZSYVXUZWbWRYSZUYZYTT[XZVWYNS[^SXTZVOP\V\X^S[QSX]X_`ddV^QQZ[VSZ[QYZX\X]^W^UYRQ\]S\YU\\^`RKSWeZ]V[cN^TUWH\]cbUaW^ONZX]bYVW`G[cQZUT^Q^^]\X^V]VVaWZT`XZ[P\`eYVW_ZXUMWZ]bXTTZT^ePRX_a_Z\XTUSaQX`cW^]V^[KZ^ZWjZ[TW_[fVYY_\YOTYW^M\[XdLXVaYTYZTcTUWZ\TWS]fYWSZbWSXXUS[WQT``YTYccMZ\QX_Z[YJSZT^e]XfXY\ZaSc`Va`ZZ_`VSXV^]_V[[SZ^Uc]`\Z_ZXWVOZ_c\bVagT\WZNXWaDPcVXTVTaO^_HjYP\ZY[[_\ZZ`ZV^TPWY]cVPV\\UZ_X\VRV\[XXcScSPWVW[_TfRYaPW\\ZT_[VQ_`Z[NYSQaYaWZ]]VOZWR^VYWZYXWSX]\`UWW[TMYX]_PVUa]]RXSTaVXSTU`QTTWS^SYV]\[``\PVU^GTSYaXPYSSVVZY]T\O]W]\^\^Xc\T_CRU\`WZV[_YZ\]VRbS[XW[[X_QcaPXS\\`^U[\ZWS_\V_QbZ]^\^[Z^b__U]H[XJdR`dYYT][TUQYXcDQVUWW\[]__[SYO[SVX`WZ]`_UP`YPLX\U[\UU^VV[WVTXVQWWS]]YZ^a[O^\QYWTY\YVcNW]a_W_VX\Ugc[`a]VU[VZWVPZeYVe]V]SX[\\Y\YU]SX\TX\[]YYVYVW\Y]YUY[[`^T`^eW^g\_X]\WUTdV[eQ[TUXZbcQR[[aWOTTZ^SZ]TTSR]VZRZX`V]VY\S[[[ZT`a^SZY]\U^[aZVSWZX[YeKYXSP[UPdXSR^S[XX\hZT\^YXYZ^YWYYQVUlXUN\V`ZX^PZTVYX_[i^a\N_XT]dPW\^QV[ZXRQXUWZXX^[[Y_TX^VZYV`dX\\ZaWLahbRV^a\^ZZa][JV]Yc\\VXXXYVWSaY]]T\`ZVZY^Z_YUU`S_aYWUT\`SaWgXZ^`JVSV[^S[U_QUZ\^b\Y^_`XbZ_V\[]Zd[V_Y^\Ve[[[YYRQZXXZK[UU]W^eYNZTUbYUZjYd_]S[VZaYWeTR_dXW_Y[WWY[`YUVZ[bTa\WR\NYTa]V\]U\QTX[VXTWXLZbYkaS_dU[[aYVXUVZ\Z`ZToXP^X_]NbSU[V\^UUW^T]Y^TYQUa^V\^Y^WVed^[WRRdeeW[_bZRU`TTaXO\V`[`\^\YNYTcX]WM[_YaYVQaYWSV]TbTLV^_Q`]^U\WR\WZYXZ[[^USY\R\\S`eNSZ]W`^W[[`\\\Y[TXVNc[XZR^ZYY^WbZ][ST_`W\X]Q]YOUZZVYWX[TbZY\Y[YgR[VZYe[OSSXYYY\\Y]V_WZ[VRSVUX^b^dXZ_UVY`Y`\cXaTaR]ZYZX[^TPhOYUQYV\[WX]d]V[\bW_S]aSWQ\Z[`^[ObVV\TV`UaR\\gX^ZUYOW]hMU`W\Y[[TXTPbU_L_VcaMZSTb\Y\`XiZ_[bjSUSNaPR^]YXb]TY]`d[XVS\ZMVgY^QVbYN^_NhWcR[`QT]hgbSZZS\R]QbiXbY`XX^YUWWVPVX\^^UY[dX\aVO\aTYRZZaXYWhSY\\Y\]X\XSYYUM\Ye^V_VZ]g\WQMTSOR[WX]Ubicn\NWXb[VWT[X^^]QdSHYXQUbX^VXZ\b^WW^[[^_W[OSZWY_^dU_T^\Z_P^VTQSbU\`YUX_]`p[ZWVRdPg\YdWVj]ZV`TNZTXW]\XYU]^S_YZWYTfYVQXVXWY\^^YWVU\bV[TaTMX]XWURU]NVUX]aWYYZ_ZPfkViYQZ`RWW_`TQ\bV^b]SXYZS][c`US_eqV]\UYVaR[]V\[XY\_Y[WLOPa^\WW`VT[\]UcVW\dY\X\Y\\ZV]ZbXdQZX^ZV^\cY^\UYU`VYVZYSYIaSbbPbRX[ZPZWQUTQ]\][_XXU^b\UW^RWYR_\VV^J`SZVe\TZS]V[WT\]Z\U_\VL__`^VQV[SWOU^VRXNUVa]`XUZ[]V^]V[[V`SaZT]TZWUVR[SZO[ZU\c\ZYYTU]UR[OZQZNWSUW\cV]WXZVWbP`_OTZV`TVTV\UW^[[WO[YR\W[Y\QWVW[^T\YW^b\Ye`]VZTX_WWVVU\TT]ZXWTRSV_Z^ZZXWUeZ\c\P\JT[Z\^gTaYXYPZ^W]YYS]We`]UXNXXc^ZX^\W`YaTYY`XOTRUVOUVYcVXUSYX`^Z[_^bZ]^V[T]ZQWY^cPXXSX[]]TVS]`b[\WZW^ZTS^PVV\bW[bTP[]TWPXUa[]Z[VTX]`QYR_]LUX[PU\WYUWWXTTTOObRW\`ZXXYbXQd[NV_[Z_TTM^WVY^ZV\ZX\P\SZTWVVY]b^\UTVWUWUSaSfW^`SYdcT^OVW]X\][__Z[\[V]V_X\^^Zc[W[`SXZQR_^]Z^UQSY\^\gRZcaVSW\VX^XVVZ[bS]\ZUW^Z\YTY^XZZV`]\WZW]\`[ZUXRU[WW[WPOfTU]Y\OZ\RVXWd_X[RcWWYWkS]RU][Va`Zd^UXVUWTaYOWbU]]\R^d`PYYXRTa`[Y]TWU[[\]Q`aXTVX\[XUXP[\VQXVW[TZ]YV^LT]Z_fZcY\Ya^]Y]YWVV^Q]Q`ZQT[\UW]Pa[RSWYWV[\TS_P`\ZZQ^f]`Pf[YR\S^X`[ZZ\XWUU]`STZ\_``VZjW_][]`_UUYUZTWV\VXU^ZhWSY^UTTVY]WTUV[XQV_LRVWXRcZW`SYUXW[TZ]U^ZUY]aWdMWVXbXQ\TZpdZgP`]WXQb_TX_\YR[YjR[TYc\VUYWR[ZX_XXZUQWYVZW[\ecZZRVT][LbcNZS[\Y\SZRSQWS[V_WO`[XaZZN^cX][`TUWTbUUh]\cQU]S\VY\XbWR]Z[dS_]YZRRTRV[U[WfYc^\TV]bhXTXZZ]]O_ZaVQXUaUVYW[cTSSYQ_[b]c^`WZ\QYWTT[^UXaZTH[^UXZWWdRZZOP]]ciU\a[XSUQ^QX^V^Y^P]UN_X[WSYV\TY]`Y^[YR[gX^ZSYjYaTna`Z_TUfVTSYZURYW^TYZTUZgRS]WV\Q[TaW[^_RT\YaZRVUVVZPV]W]XZ\a\WL]aXVU[_\`Y^P\U`SYPM]]YiXS`]W`W\`]S`XN]bXR_V]aRWXWSV^^PYV[XWSkW]XVXZ[\c[^`Ta_TUWXa[aWVU^\[V_Z_ZUccVZ`STUTX_SX`W]WYZaQ[Xb[^[\TZScYcVQ`XZ\ZdYaY\T]YTVRST`W]YZ]Saa^N^UU^Z`VZO[oKXa_f]ZV_L`VPXWPYRTXVURZSZ_Yc_RYVYbPg\LWZ`Za\^_T^`^[\^V`YYTYSPUb_RT[]RSVX\S^WTa^WVgVUUP]Z`YYVQJ`Z\T]V[YZ^eTZY[UZM]Xk^ZaTKbdW]eY[UVik[X_TQ\`U^^]YXRXS\\OW`TYVWT[Z^SUTSbWde]_SS`R\ZXd\\SSU^Y__WY]TVUUYX[]]TXZ\ba[V^VXNW^`Y[WV]`WX[XdY[`YXa^Ya[]SWYW\aZUVaV\UZ\Y\]Za\_WWXXPXM\JZYVebXhR^VYX^\dWVXRcVY[^TQ]UZO`W[YZ_XLYYWXOV]JTV^TTZWXTXTbW^V^P[POa\ZaLQZRaUUZMe][`f_ZZegZ`h]Y_][YbVX\a^R[^bW[TZPV]UYYb]aQPV[]I]WVaYSa\Y`OYf]ZXeXR_V`[aW]`W\\VU]]X\ZLW[QW[XTW^UfW_S^[X\WXcX_Y[gQ]ZY_RRUYmRT_QW\P]YYUXYZ^`P[SNZ]XW\^Y[ZVaRWU`U`]ZZSa\WWZ^]WYWR[^XP]QY_\S]XkR[]^ZbZ[QNW`f_VVScUYSX__WZZdY[`SSYUQ\SQYY[]U]Y^k^[WYYXPgUST`^YROZaZ__\\^[`Z\LP_abYP[]_\\\\RYWYNWY]WRXW]_NVVPXUgXT`Y]ZdY\SVS]Ym`T\STU]V]^_]TYRZ^XX[VbcTUYc[S]\YUXT^\jXWNVY^]Y\cYbWUcSXXVV]]ZS[NYaSVUXTY]dZ\^`[YX\ZVX[W`iZZ_[XP^\VUmSTXY_[abRT\]Q[aWV^Ze\Vb`NVUWXN^Wg]WZScP_Rd\g`hVf\eOXX^`eSgZ\XZ]`]]Z`aX^[YZ^`[ZWRTY]hXXU_[_TQ[WZRU]cfUWY`VV\XX_]N]_YS\`]cX``YYVa[[URYZ]TSSUQUZVTT]R_OX_`UV]_Y]d[\h]bV\UU[TUVaUXTgXQ`\\VR^^[\bTYN[[]YSZRYZYYSaXUVZWY^bdaX^][Q^UZWR`YSTXYSS[XZ`]bagYUWQYZ]Q]b]S]R[PSSabXQbWYV_Z]^S[MUZVaXYZR[U[VW]]Wa]\ZYTY[_dZ[aXU^\^Xc\ZWSTU`USXY\_S_XSVdR\USNUZ[WVXPQNYZ\S\_R^YV^Z[`UZR[QVS`^VWXW^MWVQ[aYTTa\_^Z`PT[OaY]`TSYS\^KSU^W_ZcU\OZRZVZ[`WW]TXdX\W[YO[Z[VV\b^PZYZN_T_[WUR`[XYVX_[^UXYV]Y`aR_ZVeSV_^fZQYXYUWbYT_dcc]W[fSYXSX`\^NWbVT][`YaZ]XUU]eb_ZZZV]Y[STVUKb]UZVU_Z]WPWYX`SY]RVYaVQUQSZUPUX\_XZRaWSWUXUNSaX_We\YX]VWPZ[RXOjT_VUZY[^U`Y[d[Tf_QZRd_TF[Jab\[]TWRRPU\bPVSd`Th`WjZZZWXWWVRZM_gLL\_^`Y\`XQPSacg^WZYY`VUUQ_kaUXZg[U]YR[g[``Y`^Q\XZ]YTWa\VTcY__kVZ^WdTQ_Z^WXTZLSdY[cb\V`W^aZi_cQaW[^SRd\_`Vb\^]Z]bUX``QYfZ^`YTZ[X\XX`b`ZVTZYVbQ]h]XO[`\UXPYRXSXYOUZOaQTT\ZcZN_WaVWVeNZ[_O`_`NMY[XWacXVXYcSd[N^N[]_SRQ`SXjX[\WX__Y]RZe_^WTYZfa^X^YZVWSb_UcOQPV^LY\Z]\UXZYa]^ZePWRV_g`]RXU\ZWjdW[Q[]^ePPT]^WYWT[U]ZXV[YYVTc_S`VWTUVWNX[R_Y`WSZSVZaN_VXWWeUUR^ZSW[\Yf`ZXYUZTZ^W]Y^cVhWYWZU^YZ_RM[fc`U^`UX\[bY_N^ZX^XX]\bSTc`RT\]^QYV\`XU^VMXVfWY[^QTVdRR`XU[`W^WUTMYS]^XQaSXbVaPSTO]Obb``h\YW`\Z`_`]X`VaY]VONSQ]M\RVX_Q\]U`XUWRVXa\XaV]^^TVY[``V]WV^STTbY`__OU\RUMYUVV]`U]ZPTOSYT]`aX^_YOe\RX[^VI[VQ[TZW[QUWXiZ]\_dYT`M[[a\__S^aLY\aY[W\cQS_XUZY`]_]YZXggX^RSiYTdWb\\kSMSX^RVVS[bWV_Z[P_cQVUU^UaQYY[KT`gZXZ[]eUQTW_d]UXdWbSMZY_]a[ZY``^Y\ZP^Qg\X]SRXTVPVYaZoV\T^Y\YgjRXV]]YfYX]]babVTXT^VeSRXYU\TVbV`XWP[S\gY^^Y_`VZY[dVWaOTV[aW]OaX[_XY]Z^_W\V\R_[VQYL\dX][_RUZVTVZ\bQQcYWSJ_N][kY^WU\RY^_W[Wb]ZcaU[`OW\[_QTTW[ZcfVSSJ`X`Z_Xf^Z]\ZTSSUYW\WR^XX[a[__ITSYU[OkR^Xa[ZWaWSWOPVZUjbR]`P[`WUXXeWS_\Z_[]\TP``[VVU\YXXWMSTW_dYXQL[ZUYUbOZad]W\[]Z]RTWPZRQ^T^VaVXW]]NdYNQ[h]QS^`dX[TSU\Pd]YbZc[Z^V_eb\bXcP^YXMY]dRVX[]b`XUd[JX\[X^^c_V[UKW[\[UMQOVVXRZd_aRYXYcaV\VTTVaXY^R]YRZV^I\XYZRa_\\Y]V\Y\\N_VZcN[dd[ZZ\WUTV`ZX]SXZWZZZ_ZZPSZW]\VTR_U]V[\\g`_UWOY^X\ZPU\XW[[^[\Y[\]XbZTXXPYYNQiVW^WYXcdM[aXa[WRc[MZZYTVibXNfXbWWcVb[O\S\`VgX_[^ZXS]ThN]YbTS[R[\`[\LdW][YQUVTSX_R]fUp^R_]ZX^WZXYVbS[S_Qa[bXN]d]`SMUVUU[^WWU[Sd^Q[YSbVVT`aZa\O]bWU]P[UWQhS]XXRY[VUU^^^YYV^R\VS\aNTbUZZ]V]WgccX\V]U\XeQUVUXYNZcYcTdUV_e]`TZSWRXYaZZ\ZVXUYTT[YO\^W]O]Y_UU`TRdVSYWNZZZ\\QhX`\Y[[Vf_S\aXQSY[YX[[[RZ^YY[YZYX`\_XYU\W[KT[Zb]^RS\YSNWUVT]K`\[UWYRabWc^WP`eW]U\U]ZRXYVPZXVTPTbX]aXZOU\gVVV\UV\`\V\d\ZX`PQU\S`nVULW\Y]VW[\VmUU\bjXXX_LZWY\SUVa\eUQOVe^[QlWXZbMdSVbbYZU_VWUU`LaY`d`Y]U_Ta_\ZUUUmQRYXZW\bN\NYS^`WiP]Z]`VV\dQT]WZ\^Va\Zn_[ZPXZSQcVTVYXUTX[YeZY\_XYXhVTU[_VZRgWaUV`]T^OVVX\ZS`UYSUUSSa]TUSWNVY[aVk^]^abT_\`[\VZZ\_\OUWY[\W^R]WSYd`^_UZ\^aUTQKXWXc]\__Q]RVeVVT]Tc^V`VYTg_\bM`U`LaT\]W]dSV]TVZb`YZ\Y]_ZXag\TYZZcVUWZ_[fW[_YY]U\JZTbRXTZUUTQZSR^M`S[WWRNYcZQ[WTO\kPZV[]bRZWXTOUfUaZ_`XWYW]XTU_V\R[Y_X^[WXcY^VeX`b`]_PXW\[UYWSWZXRdZ`^f^V[XU[UcaVUYY_U]ZYfYWWZWTXXXWY_X[]j_P^VT_fX]VU]aX^XTTX\X]e`_aaXU[]]X[^\_``fThZ[V]QU[\[X[RUUeh\a^XeW_WYRVSYYXU]d\\UOUWN[[ST\UV^^]]^RW\V^aeaVaVV[TZYaaQXXV\b[^caV_[[U\`W^\_^XaT\`][Z[Q[`^fQSl[[U\Xb``j\[TTP\S_ZYYZ\ZT]UU]Z^\ZfbbXZYR^`[`c[V^WYbX]XVZUUU_YZZ`YTZZ\SWZ[_[YS]Y^][UVVTY^XU]W_]ZUT]XUYYTUWg_XPV\c[\XT_\bVYUb_RY[RX\]`S_[Y^_S^X]^[WYXVViXcVU^W^WWZ]bXZTZ[S[^YXY\V^bb^\]]UX[ZTZVV_ZST_W_]YQVZV]VZRQTZW^YYWW[YQ]ZZ]SZWXWZYTcbR[Y]Yi^]cR_YTX^]ZY^^XWY\X]]SWVUYYVZYZUTTUTXZV_][Ui^]WfWZOa\Z[ZU`T[^ThR\\]OaU^[aZ]`\W^eYNUT\Z`_U`W^XZWWhYZZ\UY_[\U\`[[XT\\XXXX`^XTWW[RSbR]W\[\W^^X\eUY\_aT\\Y^_TRZV\R\^lZR\VOaXVYe]]\`_Yc\Z]W`^]XcWbV_Wgd[`TXX[[ZfXbN[bT_\V\cVeW[]^Z[Nac`\V`USUTUYW[`SYV\aS]V`OTMW_UPORSXY\^^]VT^TY[YW\QX[`UTYYXVYccY[[[YSQZ[S][XMY]`]VaX]^ZZPZYZWQ[V]I[RVXY\`_R`TX`]VXXM]b[aYW[VPXP][T\^]]VSa^UV[YYYWTOUXU\[`[_U^]fY_eW^XWX[SZVXYZ\STU^dbYXPbY[U]ZVTWWVXVXYTWYUeYX[VZR[a]QRV^[U]TNYKbY]__[TU]eU]XXaaUVY[Ya\WXa^XZf\V`bfVYSWSIL[ZVNdS__Zi^[WWU\R\g\XX`UTd]UX\e]ZVb[`[aVaTTP\UQT]RST\TWW]YVZXO[XYVZWUZZU\YVa[Wb[[W[ZVSYVZTY\ePbXZWUe]\^ZXTU[Y[]VZVXbXP\XV]\X]VUZ`XUXQRYVSXX``^ZcY_[\QX``\UY\VZX\_WV`YS\VX]eS[Yc`aZWfRL^S`R[TPaWUU]`\Z\\bPXcRb]ZWY^Y\[XWWUcWVcV^WqVW]bX`\aW[\^`VXYYN^XK^WY]WV[_]XSeZThQ^TTdWTZf^dVZV]Ub[USbV^\XccVZ\Z`W\YQZ^^cWR[XV[Z\`[VcQXT[U^Q]UXRaZUZN`Z_`X[[\VQfWU[Xj[Z`ZaY^Z\^W^gaRXaQXP[Y]XVZ[]VUYmYQ`aWUX\USdX\[WZY`c[M]cV\aXTWUY[V\_ZbRX\]TZ[`f\TYTcWaZiaYZV_Pc^VW\VRS]_Q\\PbW[SWVYUT_`UT\]SROWXhSUcaW]RZ[OV`\\]TS^T`X]RRVQTU`TUWaS_U^TYX^`X_ZW^_VW^ZUNTVS]^Z^\VOX_`Y_VWZZ[h_PX^PWXQNZUVOXZ^QaUWP\YZUadXbSY^bWX[XVZUY^^`]TY`U[MZ]^\\c]aUhS]b\ZSWZ]bbS\\M[T]ZXVOV]VUX_SVUVZUZaa^]\]ZS^eWXd]T]^X]`QXUeU`b[\_`Y^Y]TVW\TeiU]Y\]`ZQYeX_\ZUXOcX\WaUW]YO\X]QO[]QW^e]\[dZ`WZ]TnTYcZ\X`V^MaWWW`cU\XV]YSY]__VSXXWSSWd_USedMTNYSVZUaW[\UXZ_\^VY[UV_bZW^X^V[X[\TSZSceSTdRVY]`_TT[PWS]e[TYU[lJO\`[Zai\V\iTXK^VkSTcUVXRYP[W[T^LTbU^YXUYXWYW]We^YTUcSZRX_UVU\cQ]_YbR\]_WTTe_ZU^W[W[]cQbVZcWa]\^d`]X`XXhXTKUb_Z^aR[``TZWVXU\]]SZRXSa^e[OYWdVX[VWPa[W\U[\UQWSXTWZVSXT][WUZO^]UOROWRcVYYNbUXY[[[^W`]\[]\T[YTYeZV_S[[_MYUaW^ZZPfZ_ZX\V^N`YYNg_ZgXYU^XbWbXT`\WUeX[_`Wac[SVbUZPX_X`b_`YSU^lPZX\PRaYMOXYWWXNZV`UT[a]\SSWIY]bZTRZ]X[\k^T[X][a^\S[Z\T`Ob[Ub]_^ad^YePZiWY_\JU\YTXVcXT\M\[PUXb[U\XbYWegUO^[bUXYORac]cRRVX^dM^^Qb^ZZfWTSSZ\XWV\UZ[_[[^^_[Z_XZRYVUQWP\^NWY^XabVZaYOVTY_YN]adKST[Zb\VRcTQWWWbcZUbS^]^M[Z_W\X_[^^[W\P\`P`b_cWT_XXYORaUXWXX[U[L^bS`VNQ[bY_PaSWVWLUYW\_VT[]WPZ^W\_\VVUV^cWU^V[Y\UY\_\YX]U\XVUa[[UThYYUQWac\WUeW[VPWZ[_^ZR]Wf_S`NWTUZWOPSV[XZ^_\[UoV[Z`[[a_Z[RWVZ`ZWTY]YfW`Ya`OT[P\Y[WY_XVZT_\^]fU]Xf[WT^V_XYaZZ^^]S]UUk[X^]QXTV_W]e^TRY`]SV\YVZaSZLTf\XS^UYT\YVZV\Vg]WW[SWUYb^\\S[^WXVU`S^ab[\TTdXXV[d[[[^W]VMVfTZcQVX^^]W`[]RT[`]V`XUWUYYTU\WbYXb`RZWQZSY_^WZYV\^XZR_XZ`W]_][\[VbU[c]V_[_bWYdXR[_[V[bUU[VWUP[UT^`X]QVX`ST^X]W`WY^_W\WTV\UV\W_R]aZ^VYXZQ]YZVZ[X[Y_Y[aUTVSO]^Y\bUTSYUd^T]^XS^g\R_\]WZ]^TZNT\XZ_Z^ZY^UX\X[ZYOSUXYZ^ZY\VY[\W^Wd\UfYW\[YY^TYWMY^V]`T[]f^^[_YQ^\UW^WUV[\VV\_W[_\WWbVTZS`_[XfdZ_]OX][WYWaW[Y[_V]\[ZYVYXc_e[\_X\]XSZPUWVWY\_R_^[U\YTUXZaRY_dWYQ`N]TWR]UV\QWUSYXU[\SR_UT`V[\^cYXWUY]XY\ThZUf[Z\V_TcZWV_][XU^\S[^eT\_WX[\ZSXX[[\ZU_V]RWWbWYVRZR[\YYX\^YY\W]YafSWVVY[Pb\VQZVZW^[Yga\_NYZ]hWgVXZW^[`NZa[cc]\RiT_hY[W^_cVMNRUXUXTYZVW[]RWWVZbZNUUVYYYZY\_^ZSZ\V[fY[OUeV_WQWWXZT^_ZYY]SW]ZXRWaSVW\W[TZXeTXQQN\W]W][^ZabTYZXXRSSQWT][]S]UR`S^[]\U]\WZW^V[[WSlV[]WRm]`VXYX^VfQOT^UbYW\[Z[bWUVX_V\VZ\ZXUWZWa]`Y[XSXcd\RW`UY^O^YWOY^VYXVY[XUfWWVZ]XZ^\]`XY\XTXY\ZXVaeZV]UW[cZSWZb^eUXZ[Z`VcXW`[a[XZaP\V[Y^\UWX]WaWYTVZTRW[[Q[XX_UZ[PTW\ZY_UaS\XU]V[XUS[WR[\ZYRRTUSRXW_ZS]WU]\\ZZXV`S_ZYYX[`XSZX^\RX\ZYZWaWR]W\^YY^WhcWZ^Y_TX\\XW\]UU^T[VXTOUWaY[XR_\]ZZbWSVXYX^_TXW[UVSVZXXXWVYU`YN[ZVYXWTWT[TZY\V`_\YXRX\P[WW_][VU[[Ve\X^_T`R[[V\U\\TWaUSZ]XUXZ\W]_V[[VYUZ`[[ebZSUcSUTW]bWV_WUV`T`_W^]_^SWYRY\TUdW\i[X[ZXRaW[\UT]c\U[\N[P_U]^bY]ZdV[^^XUi^fd`^VWT\ZRXYWWT[V]]W^^]XWX_WSPR[Pa^YRWOS[WWS[R[X^_W_XWYW[\_[VRQSUWhXT\[Q[TO[S[\V[XR[\XV]VSXU\YVZS[ZX[YVZh]WTbYY\X_XOL]][]XRS[][[[V`RW^YZ[]WbU[ZW_VU[WXX_gW\U^UZZVT^XVUITY[VY[W]ZRTZUUWUTU[WaZU]P_Y\ZZ\SOSWWY^``PSVWUQ^\Wd^]_W\LV\Z\\YU[WTP_WXWVZ[[\Z_]Z_`XTY_Z_SY]^]XXSZ]VXbRZZ`WVX[[[\TR]YZYXT]`[ZT`VXj^VW`SZS[VhY\XXUV[\VV^NZV^`YVZWV[\RZYTY\RW[VYU[WRdYZZ^TSXYXU[]YPVZ\[^YSR_[TWV_XQ\b\\WXUZ_]R\bR[]_XVdWZeSXT\TUQTWVTT\Y[YYaOVc[]bWYZ\TP`aS\\WPXmbY[dR`YV[_[`U]i_h_URT_`WXWRY^a^\WO]^TY[`\ZRRVQU]`YYVWV\\Ya][]M[WbZSaU_Y[^VZ\adWWVQUdS]U]aZX]VUU[V_VO[bZTbY[^UfY`XfWUc[VcV\X`[\`UW\][RXTVXXdbSY[[XRWcb]]]WgcaU_bV^ZYZZXURaWV\XRYZWfXZYRXWUaRb\ZVPUV][YX]ZY^YUZXa`ZXZYVXXZUdWV\dXa\\SZUV[d[hVZ[VSX\]R^ZV]\^WPWZ`_[WX^YXOXRZYZYYdXWXRSVZ\]aVVcZWZZ^TT^YYahUY^eVPT_^W\WZc[Z[TS[jXXR\f[VYXSf]\jX[OXYaWeUXWN\]WX\SZY^aa_]\]]Y[_SWVSUYZ_SbY_W_[TT\XY\ZeU^O]T_[]ZSSQNW\\ZTTV[YTXbSbU\\XW^]WXV[ZXYWRaS[WWXZ\YZ\S_ibUXX\Tf^UY`T[WY_RWX]`ZQY]]_P\eXaX_S\VZ[`VTXW[^WSZV^][ZRVXV\U\X`[TXWWZ[^WVXS^[VYW[[[g][Z^YY]]]RYViVVUS[bYV]VXVXi[UW^V]XYbO_XYZWZ[[UWZP]cS`\WV\\]XXVe]YYLP]`f\]X\X[\T_XV]V]UdZUV[VXYNTUcVSR`U\S\WZ_WXYXXWZWVXZU\UUXZVUUZ^WVYW_VV_RY[Z[U]YT^WbVZ]H[XWYXZ`^XUYU\XURYgU\[V\TX\]cVUZh[SY[R[WWZ]aVX_ShWWSR`cV[V[YS[VQ]SUUXWU\Zi\^S\__R[ZM[]`RdWN[RXZX`UVcX[XXRUVjR__W[ZX_QfcaR[]cVa]VZOVWc``Z^\[[dSVWVcVY[bcTVY[UfYXWT]\WW[`YZ[\`[Z]Q`YVYU_VUW]ZT_WY[TXZe_]ZR^ZMXZbSWRXYYXZedYXWWVf[_ZUQZ`YT]ST`V[^U[XRSaVW[^YYXK[S[a]a[SXXWY_VR^\XaWSZX`_UR\RTY\VXY]aS`TXZUPYT\U^[RWU``]_ZV\[VR`^UR]UXOUZY_YaZ\^[V[^R`TW[UWSXXY[a[WYXeY`VZXY_[]Y`TZOYW^TZZ\RXXU\`X`OZSR[\[VTQP\STXWUTWYU\ZU_S``T\]Wd`ZYSWZ^XacZXS][U`cV_XR_Z`]YVba_]O[[^XY]WV]`\acYVUXYb[[[Z_]NS^[Yd^\VVXVd`[Z[VYT`UPL_]U`ZYWW_b]WYXQcTSSWWYWQfVQYgU]ZZRXXO\cbYYjV^^X_SX]]Na^\ZT[VfPOYaZ[RVQ_XXXSVaX[\RgT[V[a[__WP[Z]VT[`XYMgYVWX^UhXRYWSb]RVSUXWURbXtZejVXXUYai\WWaUg]`QY[aTM[eUY[YT]XYXSW[Wa^[\fU\VUU`TbRWaWaRUMZV^VX^XaTRUQ]\abTbXY\^XXWW[^_[]V^]\X_S\UTUV_ZWa[]\`WWN[TVRW^YT]ZRTRUX^UUUUXY][_\ZX]W\b^ZPbR\`ZZ`^[XRRU[W^`X\VST]VVUTU]WW^XW^VTaXW]SRWTU]PZaXY\U_WT[[UPP[W_ZXcVUYVSXXTUT]Vi[R[Y\`W\W_ZU\UR[Xd_S[baV\Z`ZbZ[Uf\UZP^YbWX^[_T]YdYgSRaSY\XUa\[VXXXTX_\V\dS[UYcRZTTQXYU_XV[UW`hZW]TRUS][WY\][SXXT^[W`]UWYV\bPRXY\TV[^a[RXWaV]]V^]W[\[V`MVY\YXX\SZ\ZWYUX]_^W`S[_W^^_YDO^X\WSUW]m[WXTZV]bWVV[Q`V]\bVU`U]^WY]WWW\aY[Q\W\SWU_TWV[Z^YUZZ\]]`PWVZP\OPfaWYSV][R[Z\UVXWPbU\ROa\\ZV`Z[XZ]ZXZ\`ZST[\X\eYXOV`ZZ]VhZaY]R]UWYX_VVZ[Y_Z]^YRYV\TYXZXTUYV\aQ]XTeOZXUWJbf^`]\hVe[_YaV\iMZRQZWXVdSU_^R_ZSZXNVa[X___]aa]_bbS[g^\[cXYPWY\SadTS[[YW_eWPYa[[a\X]X\UXZTObS\WSXQQ[XXQX]Z\T[YSgUaM`e\Q]ZT_VTTUTX\RehbZXTVYc\[R]WXaX\YVZW\RV^ROVVZTdTUUU\c`YfXQZXWTaUY_V]`YV`WY_\e]U^^Z^^UVYaQ]U[W`^bT\ZoXZVd]^]XRRYg[XY[V\\RTXSSYSOW`ZVSSYP[T[\WX^`UTPaV^cVXd]^gU\^k^\V\Ze\_\ZSXWSS^UTVP^XYU`XXaUX\VTdR]\P]`dZZTZb^SMY]UZSYaX_R[VZWYUV\XV\SURXUYTSYUb[YVRT\YXaSTVZ`XXZ^WQYWhXYU]^beY\VVaWURXSpUTbOVYS`TWZQ]dSWcWaZX\WWTY]UXY`][U][Z\X`Y\[UbYZWTYX[]YX]QZ[XVXPc]YWVYSU\[ZXSO`]Y[b_b]X`^d^m\YSWVSbV[XUV]T[YW`STX_\_^fZWYR^Z__U^^bVYfa\WOXY[`SPQUWYYcYY]\]`SWTTb[_^_T[YUXR\\V[RVW[T[U[PTaWdYW^UY`[YVfZZ`UYb]]\QNa_ZRVZZVjY\ZW^PUQb`\O`b^\^]US\ZZiW[VY``\UV\]UaW]]WPZ]UgeY_WUXYbYQY`UX]XYa^^XUVY`d]_Y^ZWb_SX]UTVUZ_UcVVSXZWXORSU[b[ZVZadYUUPVcUSePT[bYSZSbWdWU[_VVVYYVWWf]^Y\cYQdQ]T\ec]YdQTRUOSYV\R^WdNZ[WTPh\a\XcWUfaZ`b_WYa`Z^RTX\g[^]VXQXRZZRX^^PZjf^ZVb]UT^V\^XYV_R`OVSW]QUU\\W]dYZ^RRd_XdWYa`XT]U[PXYZ]UUZ^[W]X]YW[Q]XY]YdOQTSXYT[P_\WXeXV_YUVTO`bcad`[MZWT\YSVXWY__YNWefXcU\URM`LOZOYV`PfPOTQS\[^][[`_O[RXZYZR_WVXWTW\VS_Z]W`__[_Va_[aScIZQ]^cZaQbSZX[]W`ZV]W_^VebZ^ScUY\\Y^d[XWTYRZ[PXZQQUTWZ[X]e`ZUYYXSfN[_VQYaX_T_V_b[PU_Xg]U``XZ\[SZPXRW^OYW`WP`Rea_]dZTUVg_]\\[YX]WTWSZ[Z]f]QUY\[ZXTM^U]WWW[VfaOVaZYSWXWa\ZSYVSRTYWXcXSRZYW^P[VjYZ\Z\WP`aZ^bV\VVQaTSY_cc_TX]YVYVbVWTXV[WUQUU]ZXUP\YZXWT\Q`Z\V[^`]WY_T^OTXW`RT_aSSUOaUWV^YTZP\TO]XYS\R^__^Tb[a\TXQ\ZM[^\TXZU]^ZYWTT^\XTYV_X\XS[MU`X[]X^XQZcT\\NfXVXS[TYTRR[ZQUSZ\VTV]WYU[\^^[Z_aZ]V]P\YZQM[YRhRYW_]UXW[P_YgY[[][R_[VQX`U]WVTX\^\`VR\^UUS]d\QX]PVYW^Q[RVYUZZWVUWYY]T[URVZP\WTXb`^_]YUU`U^]]NUNYST\V^YV\WM[Y]ZX]XSYXTYcTYPUW[XQZa[ZT[ZVV]SW]U]Y]d_ZZUUWRWd`a_\UYWY]]Y^]XgZYUZ]ZYZ[Te]YWYX[[^dTUT]]_U\WYcVWWaZYX[Ya`VZY^XZT[a]Ya[ZXV[^Z\\SwNc\c`]ZWV_Z_XYS]\R^ZYWZTdY^W[TbW[\V_VYTS[W]W_^UR]YZRbc[YW[aW_\jVWaV\^S^Y[Z[YYaW^_^X`\UV[VRTUZbU]TUZXaXafX]WYZXWVXbZ^O^aX[P\TRY_U[UX`cW]P[WbVUW[UR_UZ\YX\ZZWfiV]dZZZX_a^`ZZ^[\Sd^]`_[\YZZ`TRaRT^Y[^_cPfUUb`VmSVdbXWPdZYWWa]YUaV[[_]XS_UYOW\fXVRX\[YPaWZa\]VYVYYYa]`[PS[T]PYY\RUW\U[^V^aZ^g\WZ_PTd[WTicaTZUZU[\[TT\T][YQUW[X_`XV^X[_R[ZPWbR]^U\Z[W[ZVUa`URaSUZUSYV_U`YVYWXTUTbV`\\URU_TSWVVZVd[^YhUX`N\]WVW[YUWOO]^]S[X`QY\bRa]XWQ^X[ZURgaZ\[]_ZYVUX[Wb]RZSR][Y[]TXXY\[\_ZX]da^Z_ZWV^aVcXW_WU]NMZWUZUNQ\ZUW[ZaeVTYX]]dTZ\XWWW]W_WZaPY\MaRVWWY]_^WYa\VZ]dXXXSOZY``ddV^SccXPYXc`c__Z^UV]ZWVXUSYbXUOTdQZZ[WaZZY_U]OXSQ[TaYYU]_XpYXW[\[YYe_WeUN^YH\WXXQ^Z[OQb^SO[\[XV]WR\[V]Tgc]cXW\U`YZ_\XUg_Y]_VTWgTW]YY_TSa\a[WcX]YZ_RJ^WS[TYR\[XRWV][UVV\O\YQVWOU\b[Ui[VZ_QaUU^\\\U[][RaRZ]_TT`TU^RMW]XXY[ZWRVdcNVUd[VQW_]]_YX]XfZ[RZTZWY\UOYW^VWYZYaYJPXQa\TTU][^VUZ\YRYWdY\OTfPZ]]ZUZTYY^YTPMTPXZ_Y]ZWWWXTTWXaTRWPSOMeZV`OVPRZU[W][aW^UV]V_V[ZW[eQ[YVWa^YU^VYaZYZZ[Z[XV[N_^UT`XXXY]_RgYZb]RZY[Q_Q^N][]SV]XWX\_XPV\XUf]cZad[b\W[]TRVTQPZQ`NRXcZ]Zc[LW\_V\^S`aYXUY[QWQ\R`P]b_eXWZQRZTRX]ZWbUX^ZVSVc_\W`ZW_RY\YXX^\W[ZcVTS[XUXYZZZSYU\XQ[TSXWOQU^`QXcXV[ZRZ[RZ[caY[^[]ZY[VZ\WZZ[VYcaQ\S]U^ZRURXVU[SZ_c^\U_VTO\^YaYU[[_X[OZW__ZX]V\TXY^U\YW[^XXQ[[WYYP^]YYZ`^_X]i]\VcVSbW]QV[eXWTcXX_Qff][WV_UY[X`]U]SYRbZ^TQRW\X^W^[XUXWYUcaXgVX]m`T]g[^Z^WX]XQRV\h[ZWcVVSYbPg\gUYSYW]WH]_WPV^]dY`T]YXY^fSWXXXYdP\ZX\aV__\ZX`WUVT`UXXc]YX\N`YT`RVaT\Z`^[Z\UUX__b`VY\WXb\ZZ^a]ZUXVZZ[[Ra[]a_WP[MaIY]db\V[ZWd`nTUaMRQ[[VRTUaV`WR^MVTW\\ZX\X^O]b\YQ\WX\SX_]Vfd]V\_aWZYUbQR\ZNXbeO\W^RSY_NV`S\aUZcY_U[aYY`TT^^XZYXYaQXQ`YTb\d`WWSUQSYT^][\R_]TXXW`Za`ed`SLXX_UcYTaUX`d\`]RR^WV]RQR^`\TQd]^^aRb^ha\WX]WVY]WVGRab\YbYXY^^[WYWX^_SO`XW`MWZ[_U[f[eYTa^P[X]Ra\UgVPYQ]WU^Y[_[X]]bUXL[V_\_S[VX\aWl]ZRVT[WWZ`SUVXhVb`QKXZ\SU[U_T[iS\Y_TOdL`_^YRcb\\^YWV\cYRX`ZWSYbU[ZVNVcPZOXRSTZYcUTbNX[]XSSMYXSY^XYP[WY`^[bXSbZXVbYSYdY]]X]W[SYSWaVVNS\Oa[\VP]X_][]XZ[`S[VONaU_]dYVX\O`McWU`f[\WUVTYaSZPZg]V`YVRTYeX_XXhZ\P^XW\]OZW\dTSNWTV]Z\Yd^[P^]R_]YUcWUKacQ][]\V^SZ[_[UZXbQU]TVYT[Z_V`SW\V]SQ`YZ]`RVTfTWZUZVXPX[MSOUUWTVUS`Wd[[]]YYX\P`ZXS_ZV[X[a\Qa[]e\O[[XZUSOVgSR\a`[[_]WUJ\VXUS_aiWMVVZ`W]Y`Z_WYTTaUURZbY[[Z[hZhVVUR[W[_ZT\\RZTTg\YRWWRY\ZV`Y^RUZbQ`T^Y]]cX\_XXaMZU^bTPZZX_h`^NRY[[XUUce[_XX\\]WXUU]V]XR][^PXWWbWYY]Z\YZaX\[\VUX`WXQVWS`[ZfXN\`TU_UZY[T[MWXT^WXOcXVX_O\WTYMSNVWWZ[_OVLZNTfQ\^XYUTUXd_^YVbe^TRbsW\eU^X[[^WaOZ\ZbVYO[N[VUT^ZiYWTj\ST[[ZWT`ZWUaa_XVbZZ_ZT\N]]RLYYXOV[XS]Ze\g^W_XX[\S^XTXaZ^YZUY_cQRTW_SZXNYWVZTU[YYU][RmSXUWR\[_]`cRe\Rc[kaYN]YmSVl]\TX]X`T_ZU`VY^d]W\]\[XUaZ[XWYXV]_YXUcW`\UZYKXRR`[_UbXV[ZV`T\pYVbZ]TV]cg^YOUY^T]Lh]]aXQZUbYcdYMYS\XSU^i\YU\b[cOXdbTPWXYOXWSUXU^R_[TYXT[]\U\WT]]XT\Uk]Z^`e_bagYSfOQQX]`R]]a`^QT\`aZWWb]YSV^[M\OYUSVY]X[V[UdOVWbY[X\S_[T^W]XTZ]YRNXWVUa[TMRU[J_MdWc]V`YW^VQ_LaXZXd^\XM[\S\]\e[c]U^\[U[VLcKWXKS\[KWc`VZPZcc\URO[WcVs\WTZZ]\WX`PcVcbSXUSR[dYZRUVmVSXW\]Y`QXkS^VY^WYR[_R\``[ajO`]Y_VfVTaW]\WYVVS`QT`f\Z]ZZb\[TYW^NPhT_RcKUYTJXa[[_XVZV^[UXe[aTZUTXU[UYP_g\_cT[eWdWeYM`]]XVZ\bQU\ZZN`aeWa_SPVOPvZeSUVXWPWXZYTRRZ[Ub[PTa]a`aR]RR\\[hdQXQOQSY^\W_J\]VR`c_UWYSYP\RWV_^VYS`^\NZWZXTgVXSWZVWZOUY^cVZZ[[W[S\V_TWZ\YXTYd]XZSQRTcPY\_ZO]^W`X]^^W[Z[[_[\Z`WZUY_V^`ZVV]V\T]YX\aNVXV^PSW_QLZad[TUdT_NVY\XZ[][TXW\WOXYYTT_`T^X_\ZWRbQQZ\]`T\VQ\YZ\]U`RWZb_YOU]XZZS[`Xf[VRRZZTe[NUN]^[PT[W\TYbWSX^XVWfb[YPPbT^XSY\dTTe\aQVWPWRZUR[Y[Yh`WVSWXZZ[SWQ[SSYW_Zb^]^_nP^dY[WZ[_\Y_X]XWbV^XUSSa\WcXYZ[VT_\Xg]bW_]RjZ`PZV`\TZ[U`UZXKUS^TZLTQWdVh[XZS[[YW[VZYU\VW]NYTWa^OQUU^]_O^aXTTYVX\SY`X\MgV[XZYV[aYSV[_XUWb\\W^Uo^YaTY]S^]]VY]RVVZ]Z]SXWT`TXVUSW^X\a_T\\e[]_kUVZaZX[XLbOTT[YXma]^WVWbg[b[TUd\X[UV_XY[\b\I\jNZ[^T]b_WW_T]RaT^YYWW]`aYhXV\\VVVXYfYa]^Vk\[YW\S[VYY_\kXQX]]WR[SacTZ^aQX[VX\\\Y[X^[WV\]b]^cW`X\P]bZ[`UTOWTYaYVWe]X^T][Y[e\T\_SYYc^_\TXZScWWMW[eV\Y[gUOWTY[W^N]W[QkVa]ZX[cWXTY]S_[XUaQZcYpUUZZUYV\][]YZR[_WVWRSa[UYd]YbU[NZP[T]UZYa_X`]R`UZXS_R_XYXbVS[VX^XbQO_dQTc]]^YObS_YYQ]][YUY_XZ\Paaa_VNPaT\Y\a^\XWUW_RVOQSY\ST]`UZU\RQ^QXTa\\RXYYOTZbV]]W[hRW^WP[d\VaYZ_\MX_NYOcTVYUWQd\TY[^bURMXO`W[]_YdVS[_[ZXjXeb[gYJX`_YZUWMWTVR\UTWUQINXh_XOQU\b]S`]XWYUQ]\Vc[_]`WV]TaVW^X[M]YPaW[WX\Z_fm^XP[T]RZ_a_ZZ`a\YXZ_\Y[VYX`ZQh\SP^^VVeHbP^h^XPVdWXZ[S\^SV]TRWTbXTYXXaTS^T]UPT__U`QVgbXXhW`\RNP]MZQXa\UW\WR[X\cYJWPPZe^U\`aVUZacXYWV[d^UV[\i[TcZQYZTYQZZ]]Xj]TYbb[_YcXc`Z^W[W]UY`U]XYT][_[]f\_`V_X[VVX]\U[UTYZXT]O\MVbZQVURXPYW\XeeX[WUWaX\P\\VUQZ`[V_]XURbWf[`UWeZYYf]QTPS^O^TZQ_U[]YZSU[a`M]T^W^VZS_`TbYT[Zc_Vg\[Z]aZ[MW]^P]WVSaab^TNTR]]^XS[Me]XWR[LV^PZbW[W]^\U[Z\ZP_TY[YaV]P`WVX[QZ_R^^UdhUTUO][`OXZU]OX]\VVbXUT_P^^_YX^WS[Z\bTcTTaV`SaQ\`US_\WY`XTU`QP]`[TXYVcb`Ra`[[\aNbZY`ZVVaUW`\UX]XZ[Y^ZbWR_VO\Y`WVT\VU]TW_VW\Y^bZVUYh[P`^ZY^Y[VUU\YVRNXU][cTTV^VZeb[^YV_^[ZWYTY`V\T^S]^^R[^P^^Xa]WXXR_Z^[dYdYVVT\]WWkUU_X`Z\Z]UW]QZ[^d]SYJRc\_XZTYY[U[X^[cVXX\]dZP\c_W\Wb][X]fUZW_\Qc`WbSLXWOQVSVWXYSa`XT[TYYX\ZZ]XcZT[QN_[U`^ZYW\[\\`[SSYVX\T\^]]bgWMTZaW[WZ\Z\ZUX_RYXUW]QU\_Y][\QVcYVW^b_Z`_XXUdP]V\X_][\YW][VXWXV[_YZZ]Y\WUWfSNh\YRS_UVR_PaZ_[X]ZXNWYXYWRaUPWOUQ\[]`Z^WXVXPbX`WQUVWX]b`TWeZR_VjX[ZZ]VbWZW[P^Y_`Q]V[XaYbN\VRXQX^ZTXUVReXX`Z_]X^SaTSZ^ZYVTX]VaZ`NS\`[VX[X]a_b\XWcU^][YXZcT^XWW_^VXXU^[ZT]X\aXZS`X\eU[S^TUXX\\[d\Y\V`\[ba[[bdZUZ^[Y\YYbVSP^XTaP_WYQY]][OST[YVTcQXVYRO^Z]VVN[]dTVWT]Y\XYTYWSU[a^_g__]^WUUZ]Y\V^]eY`bT[\ZVYXZ\W`TU[\UaW[]USVT\\SX[ZU`ZcWdZ]YTcVRW]Z_aRV^`^XcZXR`Y^_]XY^\XPRXZ[YVZZW\a^[_WZZZadSVSW]^`W[YRQWZfUVVXT\V^X^eZbZ\TS]bhSV^WXX\][\^\U^Z`YW_[U`[Z]_[]SZW^W^]Q]\]WbYZXXUMSXW[XVaYRUY[__R_T[YXVYWWXWdQYY[WX`hSUZ\XX[[[`[_\[`X_X\W\Zb\\QYYVW[\XUWTS\SW\ZX^ZSYRS[TUQ]YNUV]XYU[eY`WZWSWd]aXYjZW[XZ^N`aVZQZU][]_WVTOYWa^^\ZZ_^T[\`Y[\Q[^\f`QWS]URb_^T_VUU]]VXS_^dZUZUZVXXVZWXU[SVTV]WZ`O[[^OZW^]_S]\UWYXXaY]`VQU`ZSX\]^YXd^[XV]cYX`X]VVfVTWVaUZ^\\WYY]bg_\]V]YXZ\WZRTZV^VY^aZ[ZYVYSV\[XWafWZZ\ac[[Y^[`X[VZSY[R]T[XW\__Y\XSYY[VVhWX]\TUYLP[]Q[X[X]`QZbRc_gUZSZZfcXZ[Zc`R`TTYUfX^WW\ZcXZXTQSWZZXTTY[YXT[\XcY[Wj[S`[XUV[WSWP^YW[WUX\U]Z[]XZYSSW]XXWRW]VXVSV`NRT]VWW]bZYdYVO[\QY\Xf][[T^aJc`WZ]W_a\UR^]UUZa_W[^[TM^XVZTR^S\ZbX]]abbXZ`Rca^[Ug\ZXZWZ[ZYUOSQa\R_\U_]Z[ZbW^[VZZfWYT`WZYa[^VTZeR^US\O_WZQV]XcW[dVXWWYOWWcUTaU]VTZVaXrRZ]V_aZVcU_TWYWg[_ceU[Z[VSQ_]Zf_XZ]_UZSW_\NZUXT\^Z`\V`WZ^eTVRZ[NSXZWY^VX_XQ\`UYXTTYVXU_TZcWQX\SYU\_ZTb]PTUYSYbTZbYdY`Wg\WVWXSRWZTWYX]Y^[TXU[UXcZUe]VXV[ZTQbZZ^]XTYWYYY^]_[]bfa\aWV]U_[P\UVXUaZbQ^`ZZS]V\]\^TTc^OcZY\[S^[bcU]VaUZ\kZXYZYXShOVeN]`WTRmYabS_`XXbXikVZXS]M\YaSha\\bSS]ZeUUaY[b`V[^c[`WZSiQPX`cRVTTT\V\]QMa[VY\Z^UZ\RcUSWY\]SUWYXWW[RhRYa^TW[YTR\X_Vm_UX`YV_bQZfUZeU[kXfXbf\Q^gVUV[S\[Vb[XbWWdf[NYg^VTU[cYZ]\We[[W\NQY_ZSXa\[_U`XPSWTbZd^_Y^Y\\XTZZaYX\Y][\Z\aSZY`[^XXW[TV[W`bY^TYZ^U`Y_UT]TS^YTPXTMWd^WV^\YPVT[UXQ\YX_[[Y]Z_]WYZ`\TP\Vk_[`WSQWZSVRcRZX[SRS[S\dYUW^[`YW[ZW\U^\aZ`T\]aTPaZ\^b`W`XXWVVWPRS[YZVZ]^Y^J`_Z]WUVbbXcT\\U[_`UY[YTX\\^[[V[SZ]SM`Z_UVb`]XU\W]W\`WUe]XYTe]V`Z]]_ZZX`[V\YVRfYZX\XRTVSXWeYXZX\VcW`_\a_b^W`UY^Z\`ZYfYXUc[]`]T\\V\VZ\Y^S[\XZ[XYZ^W^[R]^W^Z`]WUYYSb^Z_WbTZYV]Z^[_]WZ]`Y[YTXaUXW]`YdURUY_[MVY_X_d\ZS^cQ][^UXb\\XlWT__]][W[^\^P]U]\Pa]QS]ZcTZZ^aPaSZdQQY\Zc_W]X^V\^\`W\Ra\V]^^]]YaV]XbZUZ]T^VTTX]^XX^Y[SWVS^W]a`WX_V^\]h\YZeZTYZWT\\WYVXTYYe[TPN]_TQRXWZ_R_[Xa^][T[YacaUR_cR`_`YTXb^a_^XVMY\XUYZXObhXXYU\ZZ[VXM\XaSVTYYZYa^\YQV\[Y]WU[[]\YTUVV^P`QSWUZZ`_WOUXZXW[O^STVSbYWS]PSVX\^]Y\\U]^Y\[\`YX^UXYcQ\_[SV^RZbUQhRTe[]Z^Z[WXV]X\ZYRRYV\dPY_^UX__^S\TVZY\iV_\X[XQYI\\SbU_]eY___e]XT_YdHZSZbWeUaYQXRW_VZXY`TXTX\[VZTe^O]cWaR[]ebdZTTWYVW^_UUWXW_YT\WcP`_PS]WU`XUeZQQ^YXX[XYUR\XZZYX[R]d]PWYTZdWf]_Z\VZZ`\\Z\W\gRXb^aUV]aQ[eZSU^W[URZW_XbXXZZVXaXYSQ^WV\ZcYTWXYUQTY]`]`VY\\X[`\_V[TW[VeWXVdYZWSRXTQ][\WUY_Y\[\^\RVQXa\TiQ\YW`SYTZVZ[dQMWNTSe[RY\bV[^YT]RU`WTYX^YYUWVXUY\\a^]RXQVUhXUW``]PZZZVcZ]]_`^X_VZ\WUZWWZ[`]QOV`WW[UbTZWT\Y_U[^ZXXVbXZ`^TX[[[\]LVV[YTZcWTPZSUWegY]T]XXWXX^XUbQ[cWYVW`T_^[da[UZUU^_XZW`W^ZaMVZXS_Zb\USX_]q``\`]UX_bZTb]XU\aZXO]LbS_XWW[\Y[\bXSU^`XQU\Y[[gZU`TXa[\h[Zb]XXSdXYWXX^X\_[W[X^V_QWXU[XU]f\]_QV^Tb\XQVY`Q]Y[Z][[ZWZPaQYXW^YXVZU^beechcVbWYbSZYZSYUNWVVZU`ObSW[U^X[Y^XUWSYSZ`UWPYZ_ZU^_Ra[RZ^UUV][[ZZ]Y\TVW_Sa\RTWRcXa[aVX]_ZRXT\WY][OY[YdYYX[ae[S]VZ`WRUU^^\Va\aT`\Wa_^[Z^a`[Sf^X[]XTU\TWbU[[]SZ_]Yc]\_V[[VX[RWbbURVVXZ__TaTYQ^_Y`XVa[\dUaVW_h^XZZS[XWY[_gZVZVh[^UWb^Y^\^SQ\Qg]Zdf_U\XV]XaX[WXZW[SYQa^`YSZUd]YX[b\`UTW_\_^YaTY_\XV^ZWVSVZUTZUe^Z\]UYgZ_[[\OYb[\Z^\cXTXaZ\dT]bY]QXK\ST[RZ[YS]VP^]YZ\OSVX]T_bX[XZbXZY\WUUQUTVV[[X^XTW`\SPY_TTYY_eWTVR\VY]VZ^aWX[\]XZZVXS^bOZU]\\VXZ^RQVVbYRY\XW_QTW[WWSOa\SP]\`ZcNaXgYdmb]\XZ`YmV[[TX[SSYSWQ^YY`][dTUQ^VYU\XWQa[Y[W]Q[bXZY`ZO^XXNRSYXYZVY^[[V`VV_fWUXeZ\\UT[[XTOZ^[SYSYeQ]^TVbW\ZQYZ[eVU^fV]fVU\[]b\\TU[[UWXa]\RUVUYYXmVUY_OXUgY^bZW^Y[`Zc_`\TcVQVPSjW[Y\T][c[V^_YQV[YX`X[hYQY\VTbW]XV\U[XSVcV[ZS\YWVeOXaVW^]_YUU[cXYM]WYXWZZZM^QT\NUVc[RY]UUVWXZWdbVZQaYQY]TXSXZOVcWYY[TS\XT[dOXZRXd]aTcQj_XQUXYQYZWYTUURhU^[eT][`nSbVZaQUcRZVQ^X]_^[f\X]W^QM`[]bXZY[[Y^Y[Zb[`Sj_UZ\Y_TZYZU][RO__S`[\W_Sh]\`W]jVYVhbT[TTXT\WXYXY[]YZXRVSTYXcSV^ZKO`^\^c^``Z\aYMQbSQ\\\_SUZYVZPWZR^^Ua^bV[XV^XVZ^_ZTZ[V[UUfWVXRQXdT[ZSWRTbUQXW][TVXWY[SWU[\XXYRVRY_[]]^Y[^]YRVQYb^XW[YYXWRaZaWQaT\dXWRO[V_VLW^TKUZXSVS\ZTZNKUXXRT`ZT`aVR[`JXO\VUXSSaRYW[UUS]WZQ\Y]SZWQYS^^ZbZZ]WPRTXgWYVX[Y_\UcZWXS\aVVc[YXZR\Y^ZU]YSYRYb^SVWUYUSS]U`TfaWW_bUTT[ZSYYYV\aTROVTQ`XYTbW]\jSVS`[aMdW][c__[c^RaUf[XSZR^]SURTVXYbUX[WU\PW[XZ^YXOTdU]]Vbe[nUXW\V]_]a\WZZ^N\PUUVa[[UX^S^\^P[d[__M]SZYYWXXV\`UL\TU`Na[]\WZ`T`VYXWUTWYXZT^UXQ``cgZYVW`Z\d^T\e\Q_UVWV_kTT[Z\U`cZUVZ\WPRZZcWVZ[Z[Q\Z[[RQZZVU^^_W\X\^\V\WPRTeU_W]YW]i^UXVTYY_XXQfTMXLZVZZ]Y_^T\UaW^WYSUYVUS\SZaX[Z^]gQY\]STaSPO\__QWUbcV^ZVSUWW]Y[TWZaVTR[[TXX_P[Wd_]^WbW^_LRW]\^]S\_TaePX[W]_[`_Z[Y]`\fS][ZN_W`PU^S]cX_`_UO^RTTT^_UYQ][WXZVXQS_[X^U[^XZ\hbY^PXUWYYnYTOWN`]aaZQ\S[WRRS\PdSV\cT^U_WUXd[T[\i_PRScWhPXVU_`d]Za\rNUO^aWe]YVUP\T^^VW[ZWSNV`[^VU\YQ^YV_Rd[[V`\WU]VZX]TX]W]WZWVZRX[YQ_S\SZS]YUYaVU]\XSc^VXUYVX`TSW^VXXTTZT]\[`U_YPVTY__TggZS]]YZUYTUe]]XVT]b_SPU\RUT[^S^\_ZZX]SSVVYX\ScYVU^^^T`XbXUZWYPYYbZXVNVXTX]WXSZQXWV\a\VbU_XU^V\TWXYYYWUS[^SRb`SVYP]\WYR^Q`Wab\TZXaT`XXT\`Y_U[\WbdX_VVf]]]]W_YX\]WVZTZYYY[aT`S`ZbVbg[ZUVc[gUYX`Y\ZWa\_TVX\ZR``YWW]UOZ\W_VV_ZYe[^Z[T\]YaVYVU`Y^XYSYVXbXUZ_YZ\[`[WcU^V][ZbVYWY[_QV]VVUVTWWS^^YVYWZe`W`U]\O[[T`TXXV_bZY`^^a\ZRR]UdZ\\\WVXSWKTX^_ZWVV\Z^_\_YWfN[WVk`]`[MXXZUS[WZ[PcYWXZVSZ\f^Z\ZX^QV^_VVVZ_`Z`aXT^[^[V\[\VaRXWc\ZdXUXS_X\PZT^YWSQ^ZWYXYh[[WW_]W[VVbUYXTTQYZVUU]^[PZ[[][]]a_WZY^W`\UTZRYYW^ZXYXe[ZY`VXWU\YYWXXVVZ[[d\W_Z\^[XY]VXWVXUYfTY]b`^iUXUZW]QXQSaX\XU[X^TW[`_bYUdh[`VWNYO[OLfZ^m]cRZ]NX]T`YU\XXSaSbWX^^U_bVU]USTU^Va\XabZTZURiU^Y[^VYR]][\[TYS]RRWP^h]SbW^\fXQ\aS_XP[XZQeVX]Y]\WU_]RW_[YZ^aR]\P[QURdW]Uf_W]W[^_VZ_ZYaU^\X_W[PVX[bZR`U\O^RWZXTceNQ\ZXaXVJcYYQ^[]Y_^bcRUVVTSZR_XRPYZT`S]RbSXaW]TSYXWP^YUeZ[][fWYQ`][TT\_^V^[]S[RU]U^TYSY^Zb\\SXWWSXdZ\YTZXIX^[Z[[SQZUV]TXP[^TZTYO\XYTTlYQaM``PR`]X\^V[^Y]bVXZWTRXSaTUZc]Q\mq`^[Z]`ZUYW\R^Z_XYYXXVY[[SV[XVT\OUU[[ZTVb^PU`bV[VW`U\Zc`V][W]\Z]YUVa`ZZRUbW[[YXXW^\YY`_UY[]VZ]VX_`Z_SXTXZ\bO[YO\[[b^T\XWXXZ\YW^\_kVZLaVVZV]`SZY[YY\YX\Z^VYp^[XYX[T[Z\PXSZSXSZY^U\fWWb_SXQ]a[\YXZ\T]__^^\ZXTVdYUR^`^Z_WXW_Z_Y_d_[XWVVXZU\R]TW_\VXT[[\U[^]^U\W[XYY^Yd\STZXcaXWWW[^]]dUVY_Z\VY_]U\^VXf]S^WTTWWW[]d^]ZXUY`TgVNX[ZX]W[VUXhYTa[[UZ[YZc`[ZWb_^[XWj^X[Y_[VXXcPV[`XVX_VSX`TXTXQSVX\[R\\ZdR^\[SWZ`ZabT\XXZW[bPTZ]SQXYiQZT[[WVYZ_UTZW[ZZ_ceTTQXYRWYZY^[X[Z^ZZcTe]V]VePU[W[ZQd\UTWXSV\^TWW^WT]WWZUZYa\UPf]\T\XW[XX\`[T[\[\V[`XXYZTdV]W[b[[RVVYZXeXZ]`\X_PZQd]SU_WVXZ_fXa^^_bTZZXVgXcXYWTYWUX]QYb]TZeZc]ZVUUWZh[WVW^acWWW\ZU[XaWRkVaUT^aeXfYV]\d\[U\YYYYcYPYYVV^RWS\_XY\ZSX__YT[^RRYZWV^Q_\bYZWa]f\_VS\UYZU\YbNT`]^_VX\Z\ZR_W`_\_]W[UW][Z^`W_[YWPbZLZVW_\SY`[VRXRTf`YXO]T]UTjST\Q[YXZ]WUYUYY[Y[WWXU[ZWaW^d^^_a_W`TSMR^X]jZ\XXYX[RW[ZV]XR[[\X`W_VYUV[UYZZfY`[VVZUTb_QX_UT]Z]Yb__ZR]aiVW_XO]WXT\X\V`Z[YYOZZWT`]PY[Z_TURXYa[\]^\VZWYT[]YY\[Z[djZc`X^`YX``RV\]\ZU[Y[[W][T^YSWOZdRcRUZ^^WXW\_UZT\\U\b_dZ]T`^_YZa]S^VYQXa\YSQ^P]]iUV[YWXYnTX_TYV`\Vac\eYT[QTTWYZ[b][[UUWX`T[V[[XfXc]e[VZ`UWZ\^XVU[\ZZZ[U[VTd\]WW[_WUWYZZbUZO^c[[SSVURZW]SfWZ[^cXj]c[\T\c]OXUXW\U[Y]P\ZZ^QXW_[eMWVabUXUZX`_\SV_U\g\V[\`Y]YdVXaSQO\WUQWW^VW_Y[XX`V[TY\V]WXUPNUdKYWUYZYX[ZaPbZQU\XdWSh\SU_SZVURVabWc\XV`[SZZbV\VVUPZ[XVV_XW\QOU^^L^XTR^XZ]YXZUZXWX^[]]VbW`YTVQ_^SXa`dXZT`V^[[U]X]S\_Z`T]UY\OYYZWVbUW]aWWR[Y\Q[`VWWY[X_caV]]W_bf_VWYY\X\TZZVZ]SVU]WXZZaZZYYeVR\UZUZ]PP\V\W[WWWUZV_N``[\c_YZ]^VYc`^MTOXaZ`XOUY^U[R]\c]O[U`UWXS[XTaZ`WYZ^ZZ\[SNb_XVXPgT[YZR[V[ZVYdYUZXYT\_^W\WjY\WVda`S[bZXJWU\X]UYZWV_WR_QS_T[^Y]VQ_YZVbcVg\YYUZW\[ZV[^^[Ya_]bP`ZWUXYZ[TZ\U`XV`[TcX]X[g\^YY`Ra_YZR`]Y`cZP\RUYQdTZ[S[SXV[UT__[P`V`VNT_WSMXXY]YWUV\_XV[R[]T^cXd\T\_]XUZV[TV]ZZ[U]V\[[Q\[WYYg`\W\TYZ`bTUY\V[UfaWTY\\[\hVXWUYWY[TZ[TVZYTR[^]S[][^YSQVZYTUVUYXZNN`Zb[c_VVXU^_]WXZSO\`V[Sj]RVT`XVTZTcQ^SWQZSRZ`UWVTWXZcgTWZ[UXZ\eYX[dVUdVWY`[]^[Zb][Q[bU[W\ZRTY[W^_WV\[]WWWY][\ZWYaXZRgTRWZ]S`^aX`N[\]W_cVWN]gT^TbYUS[`TWY`XPYXVZ^UZYYV[j_ZX[SX\Z\\XX]H^\Wb]QX_\WWZWd^dHQXW\Z\SZ^\UZXjYUUcWV[Q\ZRXQXVZcQ^ZX^[SYY\fWVXbV^RZ[^SYRWaaXbYVON^GQRWZj]b^[[RWbdO_UXYXU[`KX]`\d]WWa[YUYT^bTS^]aZ[hYZb\^eXP[]PW[_U_XOUY_]`_XUVZUW[PT^c]WeSUZZTXjL^gSWU[`VaO`hYcWUZbcZcRWd_SXSi^cj^MZR`[TS_WR[^S]iNZPl[]]\V^TX^TOU^TR]_UUTZ_NLZTXZ\RUeN\V[IW[Ui`YXeZ\`aXT_[XYVLZY^aScV[gVSaWYSlTN[[bY\WWQgSRYcfYXSb^YZXZeV[\^ORY`VU_MbiRTYb]XYOcVX[UXMZUZYUWZ\UZ[Y[`]UVd\\[UaVf\Y[Wf_][U`UYX[\WQXR\YSfjWZ[W]]ZX\TZZcNXbYVQ\ZXZS\YZZ[XVVWWaZaU^RZ]ZabV]ZZXTX[Y[Ta_WVU\b]_\YV_cTZSWYX^]YVXdZXa[R][\YZaYZ]UZ\Z\WVZ[UX]e^^UW[WW^[V_^WZY]^b`ZXXVZZZ\WVY[_Vd]YR_RScY^[\Ye]TZTZ\KZ]RYWYXRXa^\\]WZaWZdSU^V__W_[Y][]X][]][UUYVYTS[\`aVZXYb]Y__TZa`XWUZYXWa`\_Z\ZXaVYbY]_RY]T_`WYWUXX^WTUYY]XRZXhcX[X]WaV[^`]VX[`_\UX[R[WaZY[SS\\VaY`XZS\\L[V]ZWXT^`UZWWfYYXZaX_^ZZa[V[\VU\cUZW]\ZYVTZXTX^[kYUSc[YQXRVWVUS_T\S]_[O^^\i[ZWZTQXWR]Wfb\ZW[bS\bZUVPSIRXYQa_YW\Q[_ZbV]U[]^VTPQTkW]\V\`iYXeOaWZ_V`ZRSWUY\VYeZVX_TY[[Tc^\b[XS\X`^[YXTRVTYU]S_^]]T`O[[XQZZYSK]V\\hT`\VeWTW^SW`[TXUTT^XUZd_]WT\aMO^Z]Zaa_^XX`[bZV^]Z]P[V^`\ZV]]VZ[]]XY\_`R[S__QRZYf^]WIVR[Y_]^UVZ[WfYY[\VS]_aYWV_RWX[UWiVQV[X\XP\eZc`PMZU]UU]UZVXZ\R[UUZ_Y]dQ[UVbRXSY]aTRWXYWS[`_SPSTjUOQe[Sa[RV[XXX\ZbUY__`Td]RXX_aNUjZZUY^caQ_]^TRVRVWZSaNV^Wd]_[VZX[b_XYcWUa[]\SVk`[]]R^RQXOWU[\`X^X\XNdaY[XTXOWRUVQTUW[fX]XT^YVPRS]RZZ[a]UfXOT]L[Z^UTX`]^P_WgW_QTUHVZaW[[UP^^T^S[WY]ZUZaZOMaaZ[[YYXXZ\Xh[XbRe\TaQKYYZSdfU`^WRZ[^\[U`gZTOXXe]V^X\YX_SUTSYVWVX[`VQZ\XRVU\UZTR^RYZTXVjNbZY\]bUTZX]WV_Y[dV]S]Q[UY^HXd\UReQW`PdaYY]_^fY[RTX[cY\T`TX`UZTXZX^Ve[ZZXWUW]UQ`P]Q^XcYc\`]_Vc\YZ^V^XWegbaZNS]bYZVUaV]RPXVQ\XPUX\SYWZW\TYYeU[[`]SY\UVYNaRXYY[_TSUWVZYSYkUUQdTYVa[a\[LZQ[[SVRR]Z_NZ`fSUXZeaaUXZW]\YPZP^S]V\NVWW_XW[YTY`Vd[aYQ_T`VPYP\]VVTXV\V_MZZUUWWUWSZW[UITL]VTQZb_RUTU]\YVYdUc[aZ]W`[R\TRWUY^U[a\eZ^ZXYMXOQNYZ^\Z\RW^SQbR]Y[RQSbUQaXcM^`\VT^U\SWi^TXY[QV`WaW[YTU`Zfd\`XaWXP]XW^fWWSY_XZ^Y\W_\aW[[`VXZ^VW]PU\aXi[VdYUS[Z`cXn[YTW^WSX[ZYTZZZaYWhZZ[P[YR[`PUTgRRYV\[ZW^WVcb]O\WT\\YVRYWX[V[X_YMTV^Yj`ZaUZRT]`SW]WSXYZ[Y^[XhRYcXSSSV]Ud[dSSV\a^W]O^STWX_[\d[]ZYV^WQXa]SV`\YR\ZUY\gcXOUaU_cZSZ]VP]V[fa^bZXURb]U\[VSXVWVXZZUWZWiZZZ[a\WVTW[\ZVZ]OP_UVT_]ZXMb]XYSYZ^]Y_Rc_ZOU[RW\RcZU]ZYSTabV\b[\\]YNM]dRXK`^b]UWa[^ZZZ\YcSac^V\WUdZ]WUWVRYTZZ_[RRcR[RYX`bbVZZQX]U\VaVWQ\_VXX[Y[Y^[[PYe^]WV^TVW`RVVZZXX_SbYS`VZ\gSXYcWWZZT\XU]^VaU[VQYY_\^U\T[ZVKWWTQ[[]\XXR\VcX\dVYZpaVTVVTZeYXT`aSPTVoQOYWR]ZK[S]^]\W_]W[YZXYYeWTRRY`WOX]bUZVWPXSUSPXd][_[^X\ZWcb^W]^SZZ\TX\WPQa[ZXR]WU[^[XW]VZV[T[XUZSTL[_gVSSRT[bZYVW]V\d]aUSY[\YTV[`\`LcSe^]RXYYXV\\]PJN_U_OZ[YOSXUU^]Xc\YV\QUccQSVXZaZVUcZWWLXYZb_VZ`\^^SZXSY\Z[dPPfW]ZdW`W[UT[VPSXWYT]\WZWY_RW[^\gNYYZTWOTYcXXVS\V^kSTWaba\YaQ^acZNXWNT]YcWaYQfWYRZRO_^VU^UR\ShYV\qQTSTYY\Q_OYY\Y\MUT]ZaRSbZT]S\ZcNfUXaXXR\]e[\f^[[_]YW[^TXXTWb_VWSY\T_ZV[Ze^Z[XX]]XS^WUTbVaQ\`_bgXZXWa\WRT]_QX_VXYeWQZXYVX__X\XXYX`qc[dYXW_]TPbWXY[OPS[ZYV[\Y[UVXWUNUfMWYZ\OeSfRWWdaZaWXQZRXYV\\]YQZ[idObYX^[OW[XN^_[\_S_VRYV`U\a_WXUVTW_YWT[W`YZf_SZ_YZYX\Y]KX][T_^^Z]\ZU[\N]W`[QWXUUTYXgb`eY_X_XiX^S_MbTT]\]a[U]`]^^[WdV^RUdYaTUWPXfQac[[X[Y_\\cWQ_]W[eVXX^[Rmb]^U`^N^]\_U\Ua^XU]\]c\\\YNY[]ZwjV`_ORSV_Se]VT_VX^`\aQ^VZeWQY\]]^SU[\[eVZ\XWYUU]QR^^V[W_YPZZ]aVc`bZ`ZWT^U_]YTPUUXYea^W^]XcS[_RW[]YSh]\WSYR]\QZWMY[X`Yb\YWWVWZZUUXaWTS[U^b\a\ZVXbZSaXVTY^QXXVdU]aSZW]YcQSRVSQYoY\ZOWSWW_bXMeWT\S`[[g\^YXUW\VSYXPbWj[ZYX]ZUQQdaUYR[g\XS[m[hRXVVSeVQQPVVhUY_VbSSiVRWU^Z\\W]VT_MSW`W[T_Q`TY`eSYaU_Hbn[Xd[aOWTX]YSP`YYNbXScQUXc`fU`TZZQSI`Um]bUZYabWOaZZ[K[XY]UYUXWP]XZSY`TYTYb\b\Z\g^YTOeQi^S[U[\\[XRTSYSQY[TP^TZZ\gXTQ_OXZ``SPVdV_V^Y\[YTXS\\[_VXW`b\enZUacUX]XXdYQcXYSVZYWZg]fYf\WX_UiZ\K]Z]XX_UQX]USVMZRQ[\eMaZXcWV[U]\VU\cRaWVVS[[[]_]d`UeWWUZ[`SUYQN^[UVOP[]WWT]XWY_YVQX]YVVWVVRTZYdTQYXSVO`\V]ZZ_`SXZY`XX\]ZU\^ZeYObZT\YVYWX^_ZVPWX\P[e[W[ZSTYZfYXZTO_WUU_^XZXTcOPLZUZT[QW[Ucf`TXW\TWZVQ\SV]\P[^VZWc`RZ]YQV`[[U[Y`SXWZWTUXUW\W_\Wa_SRa^]ZUT[gTX\YeTR_WWPZ\Xd]T\\PT`XRW]aZ[]ZZS]U[ROgXS[\W[\VTcR\eTg[aTUUUadXYTVYT]TRYUcTf]]Z``\YaY[`S[XY[TV\ZX`T\UY`ZeUSaZRR^ZYYW]U_Y`[[XYXP]S^[VQ\\^UR\ThZZ`RVR_ZZY[RX]Z`UZX[\RZdXRXYWWVWcba[ZUPeZQTXY`ZZ\JZT_]YOURUXUUT\VYW^VTUT`QUV^XYT^aYP[a\hW]XXaWajX\_^USXWXbYXVTV]W\W[UT^TS[]XZ`X[VV\UWV]X_T]XZTVT[\U]Z^QTY^VWWU_W^]^V_[[[U\R]YST\Q]WWXZO[[V`UU`UY_T\`VUTX[Q[XT[W[TW[UZ`ZTXXT_eUUZYdTYTYfXYUQXX\Y\Y]`R]\[]RYWXQWVQ[QRP[bL\]bWaS_X\ZYWWY]Z\XU]^V`O]XV\j[Z\[R`\aW[[d\^XVV_]WdPYXZ_]ZS__^^ZW`[Y`VZXaWW_VcSY^OZWOZTQ]ZV_PZ\NVUZSS[X^WR]YST^Y]eXRf^_UP`[\\YW_][PT\SYYTZRYYUfZVTaYUWWX^ZVVW]XRZ`W__[J_UXTR]XTUYTN]S]WZU\YZPWX\UX[_WVV`^N^Z\V]X\YVUbRPQR\\Z`NXZ]\^gUTXYVXWYdWVU]ZYX[T\S[SU\[Z]][RXW^UZWX\XV[dW[b^]aZ\[\Yc`QY\PPY[ZXdT\RX^Y_][YVZ][aV^_T][RU\WV[g`TTXYZZ^MZj]Z_[V^R[Z]`P_YYSaYX[WSX[W`_b^[V`YVUV]TVP\^[_S_[dVURZ]WVV_SU`ZNOVYUS\S[]ZXVT^[XU\dUZ[T[]VS]OWWUUYWW[_SZTY_]ZRVWTba[XZ[[ZT^XS\Ra]WVVWUX\WX]dUUZ_U_]cX\[^]ZXY\[aSYXYS[YSYTQZX``aV\UaX\\d]Y[`YPZTZZZ\`\ZYZdVS[TSa]X^]``^^SR[WYWRW`ZYYU`XS_U^_W\Q[NVXeXUQ^ZV]^ZaT]gTQPcYSWUXWc]\W__WYTW^[[cQX^cV\`[Z^Z]Z^[\Y`O\WZ]X\ZZlSZWWWXXUYXNUUY^YXWhXUXY^Vb`XXYPbVW^Sb_UUeZ^`]XT\T`T\V`ZXY\T[^[ZYQXU]Wg^YTK]W^]\ZZTU]^\YRXbX[^^U[VS[I_V`Pcc[\^]ZZT]\]Y`YYVTSZbWST[NNXS[QZ\Z[]XaTU^^]cj^Z[WaS^WP]\VS[X`X_YajRWWU[[\]\U``aUUVead\S[ZW[\eU^XWdVZZR`_X^_\a`T[]]ZOYPUU[TUY^W^[WdZ\jRY[aSSg\`^YT[Z[aXYS`]`ZU\YZT\XY[`cW\YWSVVeZdUW\\]UXZVU^U_b\O]WVTYXV][XUV^scQ[UR][ZXWa^H_UYTU\TZY`YSZa[ZTU\X]aYSWV_]X]][a][YVYVSUSPXY]W`UQUUAZYZ[Y\UYU\RNYUZ]V[QTXa`URZUY]T\[[XWWfU\XOYB^YR\ZYVY[ZZ[dY^T^_^XZSXYfc_^`RT^XUTU[]ZS]MY\ZZYgX\\WUXdZ[aR__SYV]R]__S[[TXX^U[`Z]`[U\\]ZY\PY_[Y^Sa\Z]YZ]\V^]]ZWf^SYYX]]bWR\[S[T]^]XWZUZ_T]\TV]YYZ^Ue\][ZV[OhVUPS^QUXOU]WY[Q\]\X\USQJ`UW[]X^SYaT[V[W`[bW]YaP^RYT]YZ\R_\ZU^]^_[UV[^_]_c\[VZ[VS^QUbVUYZ]WX\VW]aYXYR^YaZ\[WZZY[b_XYTV^YY[^k\[W[\XWWYaT]Zc[U]VXTPYQXRS\ZXRUT[^[UYSY[VRU\``ZZWTcZYX]S]`WTVYbW[\Z^X[h^Y_V[`U`U]]cYZ`[^XU[^\WV`YZ[Y`TW\X`YUSW[Xa\f[aUVZ^TVX[_ZWZU[SZTX[Y[W[YZW[bT\Y]SXX[UScY[Q[W\hWXV[ZZZO[[[TY]caZWQZ\T^\[UYV_XY\c]ZSYY_e\_ZYMZWYX]S[eZVVM_ST]UXY^XRWV^XY`ScjYXUU_M]TSY]VWWWVZW[S]ZUSWXXXRUY\YXZ_XW[ZW\Q_bYZY\^`VX^WY\ZRWYYSZUZY\Z\ZOUSW][SV[S^][dWWV\[YXZXZ\WW\ZUcV^\]]^XXZVX`_TW^[\VXZV\]Y_cZ__SRYURZT[O[R]_RW[^SXcaZW_[W_\]ZYTU^UVY]_TU^UWYQ[YXSQY^^W]MUXUXUS[`YQRVW\]eT\TZhWUZ_[cUYTTY\aX]UXT`XWXOY[]]YXTWU_ZUPXSZZX][UbQZV^WSXZ\T]ZU`_SSOR]]S_L\T^P\[YZWZOZ`U\Z^XWWVW\YR\ZUZY_VbUUbZUT^cZT[XXPX]_V^ZUW[[YY[RRYYfWS[]XVUQYc_[]YYZVbcUXTZUYUKS\bcY][ZV\UYSYZWZPWTWRXXUee`\\_T]V[[SV^ZW__YX^]U[b]_W[a^bRWYXYZVUVXRZYV\cR[ZS][YTVU[Sc^\UTQQY_ZXXYQRdgYbT]V[^T_OUWbdSfY[[WZ^ZT^\XWZ_Y[XZXZT[Zb_fSZWY]ZZX^]\WVVVgYV_\^UX]W]aY_S\WP]\VXUW]`XUTS[[_[ZWV]\QZ[[\Z\Q\[a\_]Q\X[\a]ab[UYXX\W_UYcYVdaXYUV`\XV[[]^YZ[XXY^gUYWa[X[Q]a`h]]Z_b_b[WYW[`\[_X[XM[YTPU^MW[b^XS_XVa]QVWV\^bU^WSbWb[U^VY[[W_[^W[NaOVV`Y[[X\WWS[[S`\_[\_][T_SbT`[RYSXaaVZf^[W\QW[ZZ^]XX\Z^ZaXcW[gaRWZZ[T_[ZZ^T[e\OZWc_Y]Z\UZS[Vdi\Y`[VZUW^bZVUbTYWLZZXUU[W[aZZV`^YXYZRd^QZWZZ\W_^V[URXS^WSd\J]QUbbU\X\RZWXYXWU^VUaX^aXY_`]VaTYZW_Xb]bTSZYTZW`RZZT]`[^UT]`a`V`PY]R[SXRT_R[a\\SZ\[\X\aSXSY\^aZX^aWOZ]U]V^\MSV`\XXkTRLVY\ekd_XdW]VXQVcMV_\Z]X_Z_RTW`\[W^[VX[Y]Q^eU[[c\V\^_UYXVW\UXZVY[UZXY\XUUY^Y[_[^RXX_Z[Y\WZONW]_[ZZaaXZ_^cW[`Z\S[dO_\Ya]ZZ_Q\aXO_P[Z[YSbVdee\NVTSS`V\PQXYZZ_Xa]c]WY^YXZdZ]XU_RS[_R^T[U^\WWbSUeZWVYXR[`adU\ZbXYUUUVa\aYWX^S\]RXeOXQ\RZQUU\WZOW]WUYQQOcRXVV]QWVTYTTd_k\RRR`TSVV^XZ\VX\[Y`YPb[[cW`fZQVWWYQ_aTX[\j`^\Y\\VVbXV^XbdW[\[Sba\SZ[]h^T_]]^U][ZS\cXXWZRX_RTR^ZYaVS[WYU^[\aZ^[XTZ^UY\hXZYSOPYZ`]^XWZRT^]K\]SW`SWZ[YTUV_MUe\VTVY[TZ[X]O\X]V^_^W\T][a_YdV\[Y\Y]Vee`dUWV\]\b[VXZ\Va`XZYVg_WWW^XaVXW\ZVX`SW^\\UW][`W^`K_X^[Y_\ZW]]ddbUWTY[]^ZWXV\XWZT[a`]_c\WXW\P[XTXRU_\]aW[\X`QYYb_\^YVaV^]^RQTU`T^X\ZU\_WX\Qb]XQXP^Y[[X[hYQZPcVTWS^Z``ZM]UgW[XTYZY^Y`__U_[[WYXWT[[V_LY`Y`XTbWdOXXWYWcbc]^bUS^XXN[XRUWX[_Xa`YLVQX\U^\W\VVZUVWQSW\^R``XWYOW[eTWgX_ZYXZY[QeUWXY[WXV\[KaXXPR]VZe^Z\\Z^UW`RTNZVR\]d^R``]VRQ]\ZTWVTX\UeTWY[T\^\_TZTUdcW_MTY]aVQU_VY[U]S][YSVP\PT^[`W[SX_TV_VZSQ\ZRVYT]_]TV\Y]WUWa]\YX]PY\SMX`XYYhhNW^VW]U[XbU\\RU]P\\aO`YU^bO\Y[Xf\^]RZWYZV[UXWZb\OUY_QSYeR\VS[bY]]X]SaV\WX]XU]QXPUPQ\TUWXSVW^^\UUYZZbUV\U^[SWVO\SXVXZc\ZP[RW`W[UPaV[Y[YW]V[R_aa]MU[]]X[T^TgPTYWWXXUaS^WTWWZWWUU]ZNbVZUZ_[`aWVYaU`eYX[`RPbUL]^_MkRUZVSeQU__]GZZYV[O]OZ]X^YJYbS`aPAZ\_YYX[WLNXT[WYhV_XeR_W\WVTXYJS\`]\aRXXaWW^O[SPUWWRXZZQ[\\YT]Y^^_Z^\aaX\]^TVZXVadYYKZ]]WZV[\LTP[G]LU^[VW]X][TVZX]YXbZDG[YWL[XRV\YXZ]PYTVXQ]V\Zem[RbEXZbPQSY^]_Q__bU_PYW^XPXUWYaZY^Rb`YPW^OO[ZZYaYYXa_ZgQXU]XV`_]bW[dPU^VZXYSTaSY^Z,_WYP[[W\^gOOXZ[WZgVW^fR[TYWWW^WSSOg[M^]K[S]TVXT^XYSVTVU[_R]SV[OY]gTU_KVTV[]]]V\[b\X[UU_]VWVY_R^YW^[QQ[Y_dV^U^\dU[^TZ_LT]_b\WQbVWTWRaRYY[_^W\fe]SYZXWU^VVWW\V\W\\VUWVSXV]^Y\\cYV^[]VT\WUXhU\[TZOb[XZWZP^[PTUZ\bdQOT^YZX__ZdaV]PZZZX^_U\VZ\_ZSUUYZeYRh__ST[`Y`ZbWYaN\YUV]\NRYOUTYeZ\WZ[UaeW]Z^[ZaU[N\aYV\`ZWY\[e[WTYZ_V\WZSaYVR[`PXRWYRUUV]U[`cZX`^XZZU\Y\Y_YZ[\gW]XY^QZY\YU[\VZbQ`ZYTWWU]]YYTdYT\a_]f_UZU\W[T\YS[]W`_[\`^YZYSUQY_[WZZZ\aTTaSXXSZl[eZZZZQXVZVXT[ZVW_\aYS[`[X^\^]SX^^]T]^\Wa`]a`SWZ`W]\ZWT_][^b[\\UiUZ[YaTSWTWTcV\WU]bT[\UdS^dRU\]\W[UZXZ_WR_\QU_Y^Y`[WVa]^[^^QY]X\XTHR_XbYeS`\^LXY^]WW]ZRclO[\YS^aVW^SYZYWWWZ]]YW][ZVVY[Y`QXXVXY^RWZbZZX^Z_XVQ[Y]Z^_SXW[TYT[\\Y_W\\UYYOLUTXT^WSVTRZ^U\\S[Z[SZUYNWV`[MU][bXW]`]O[b[X`VWYYZSXad\_Z`X\\\Y`_jTW\eUUZ\^TTSZZ`WT\YU_ZTbXcXYQ\VYab_\XPZLePXV^]R`^X\_Y_a]Y_WX\[m\Y_cRXWLVXYWUSV^XRX\XYUTVWW\]\NOOVZQTUSWZSZ\b^\T[STXTW^X_YS_]VYe\_[\]W\RYQSU]^]]XVWY\[Y`U`YUfY^Y[Y_SYdUWPY`O]ZZ[[]\Re][\WWWVYPT^dSdV\WZY`Y^UVQdXW_\P][YaScSeV\UU[P_]QYWaT^SSZZ[^[[W^VS]ZWYR\\_^Q\ZQbZ[X]VXYVXWZX[\YfcRRcbPSSZQ]W_[VSZY[YiTT[ZbZ`Y[YV\SSU]VXQ\fY[Xc`Q^^XYO`Xg^X^[[VTcVbYY\\\YVPZZXW\U]`\VceZZTXR[_U\aN[S`XXVUg^YV[^XOWOWM\Zd[XYQX`YZWY][VVXWS\XSeU\b`]_N[SabSWTXR_Y\WW\_dMXSV^XTYWdQTY[^[\S^Z`T\e[QR^TfV``Qc\]R`X]S^^^VWUb[]VZW\P[^U^SX^cOHPYVSX^UUaMaeXSY_Q\YWT]U]NVTXQWV\]_]X\Z[Y[XfSPUXT`T^[]]XPTlV\ZZM]NXUU[YT\abWZSRe_aVV_ONaa\]`\ZT]\YZYP]]Wf][ec[RR]\Y[R[WT\\SZS[S]WcW\]`W^NWXYSV[XVS[b^[ZXceT^YZYWVTYR^Z\\^QUb^^\_TWYZW`^fUR[[]ZZW]__ZYZb^^SZW]V\[[QcX`bfUZVX_\`WNZY_`b]Wf]]VR[]Z_^YWYYVO[ZYWV]_XP[TdYZ\XZbUWR\ZURZX[W]\[^XUYZ\YWXTTW_Q_Y[]XZY_SQ_UZO]ad`QW]YOXXW\UZXR]Y\MTZ]TWXY\WRSYVSTX][gWXXX\UVW\T_TaWO\Z_^a][ZTQ^\W]VTc^^YNS\^deYYSVX^aZdY^W_UV]UXXQ]\^XYX`V_][[^T_O[YWVP^aX_WX^[dcfQW_[\`SWYXb^ZV^ZR[fXSd[[bfYW]`]_TY_W^\XQVWXcT]QaQ`]RUXYfTT\ZYUakVaWXbY_ZU]hX\``aUY\V_ZZT^W][YNb`WbVV[[[]h[[aUUUcY]V`U]c\T_eTZ[ReX\[^^]WU`^\Y]Xe`\YU^LR\Ud\X[_[ZTRdbU]U`]XaXRYXW\]W]TWgUY[RX_^cWUaXPY`VR^]S]W^fVRe]RWbUZWXY^\UZ_\YSR]_P_\]aX[TT[_XU]ba[]kW_XUXXZ\c\]]XRYY[R^XTT_[X_[VaTY`_TRNb[]WWU_XX`_jUVV^b[bcYb\^X[a[VaR[YN]`ik^TRXWU[WRVV^UYaU]bUZYbUV[\]V[UTQ]R_fOWZ]WV`TY_`Wf[^[U[T^X[VX[[_SXWRUX^[Z\XQZUb]Q\W^[YT[SVTS[XX][]WeWUY]\PVSZR]WZ]Y]Y`PVd_ST]VWY]^`^U^W]SXT_WYUU\]c]Z_NTYa^[Yg]\`QdUdXV]ZU]W[[ZcX`TN_N\VVa`X]dTZ]ZYdV[[N[UZYWQSYWYZ\_^a_TaeY[UZVXS_`]\\Va^]\^^^`]UUaSbZcY]c`_`XV`Q]UXYYU[URZUYU\V\YX]WURX][]LRcZTS\XSV`UZUYWbi[[\Z]Wb[VU]bRXgZOYW]U^[\PY^XXSRX]_UhX^^fRTS\UPQWZ\ZcUL[TX\`QRYV`YWd_^`ZY]\SQQcb\Q\dYZ\cV`ec\X]R]Z]`V_\X[\_[UWUOU`R\QWT]\bWT[WXcXUZ[_NXdXTUQVa]][VeYSZTZR[\Z[YbbUhj^[[XZ]dW[]a[QUZbdPVVTV`XT[YVbRWj^P\]ZTVY]XafSaR_PSUUYV\Q[YY\Z\WVS``XNWa^ZZYUW^\\W\^TVgTWfQSYZZXZXcYV`_[gRSZ`YbT\Y\XddVS`_^YTZYW^]YNc]aZ_Z[TTQTRTX`^P_YW[[Qa^ZXYdWcW^TUOSVV]^Z[PWVZZcdYb`ZW_\TP]]\_WUYXUfS^dXWSVX\[VO_Z_Td\b\bX`ZTQ^Yg\YUUVU\_WW]i[MYV\YVZYT^Z[QYRYiZjZ_[X_Y_]SSZ]US[ZWWU]W]XUR_^acTQSa[ZQ_`gV\_^YZWOcXYS\USPSZ^WQZeX_W[W_[\XXX^[X\UWUXOWWZ]Y^YVW^ZQY_WYX]]UZTZ\UVUXVRZSR\W\YVX^`Y[bRZ[ZUcY_XZ[ZQXSY\YQWPWX]`^\X]_WZ]``]YXORRUQWYXc^WUTWNQ]]YW`ZYXXXSWW][X[\`[XR]b[RZV[ZVTUR^W\b`[VOY^XWNYX\SQ\ZNjW_OY[W^`ZXQUZWY]_TU[XV`YUUQWSR]V\ZXfTTLXZX^b[\\]bX]YVaROZ^\QW`UW[ZUXZ[UXXTU`YQ[S[SbYeY_^g]`YWXYY\YScfbXY`Y[QN\dVWN^[]]Z^[Y[SZY`]M\U\YUR\_PYZ^TVXV[ZT^V\WQZ^UaYU[OYZ[Yg]bW[SS\XWUUaWZWS[Z\YSYcaWRfWU\^QRXS\XYaYS^^YY`^XQXNRf_ff[aUeRVcWZUW[cNSV`Q\QXXP[eX^W[WZMc\jVM\VXVV\WXL\Z^gdZ^Z\P`VW\UVTXPUXJVWT^]_XUR]][la]ZbYTYYK\XQR\RTVfb`aXRP]V[ZV_bVY^WfgYWP]]k^\XXWWdZY]c][_SWWaeZUMUXP]Q[YaOY^TU[Y_OVbRSZZRYLb\]XKY^]caZeW_bU`^[XTV`W_TYYQ`Z^U_KZMaVXXJVZmMX`YfeibYXP^ZXXnY_L_[\WeL\TYSMVS`d\U\eR_MYR[O\_RZUQ`_g[U]UY_LgV^YVMOe]_RUcVT\[aXiS[R`ShcPZRUWORZRg]RiYUYUHUU\QYXeacOZZkTl_RP_S^bYZNSNZ\V\\U\[NWPYP\T`ZZaWWjTR]Y]VXaX\\ZZVTaWVd^VVPYWXW]`iURRYdSZ_XP`_YR]V[S_TW[URX_OXTYY[W`[\YRXTj]W\a^`WY\d\ZXVXPUjUV^][MY\^XSWX[ZZXXXUW[UUbY]WY]PXZRX[VTd\\id_W\TX_]Z\YY[[VXVQUTQa\YLQ^RX]OUTeYPb`WReVYa]QZ^X^YX[X__WUUSa_aRYbQSXR][_UUTV]XV^TW[WW[YORSZ[\X^X]dZXYY^ZV\VWT]bRW`VY]W]hV_^U_X]N[``aY]ZS^[\UV\VM^WZW][VRSX]_\X^S`YYObOV\ZPYSTQ]Rf\Z^P\]P`W\PWa[Z[hVWVPV]^YW\`VZTYaWYYf]U^OT]UT[YW\XV[UUWYXYXYaURS`ZX^`\V]VY`eMW__Y]UZ^VQdXbVVb\V\X_SXSS[^^^_]_^RWZ^`]SYVPXSaYT]XYa]eZcWUWVPST^^TUYjRdWZRVXXSV`]^]XVWaYYWW\W[_UXZaSUVXSUbWMZYY[YdKl^^NZ[RU]WZ`\aW^S_U\S\W^\gP\YWaXPSaXVYQV^ag\S^gZcR^UV_^ZZZ]fYUa]VYRZ^UTQ\[SQ_TW[a]V`XYZRV`VXVSTXWXWW`UYY[SYbZ[\[_TXU^WS\[^VZaXgThe\`QaXWWY\O[Q_T\Z\YM[Y[[PSVZRT^XWT[W\Z__[VbUfU[[WYYf[^VU^X]Z^U[X_^S\VW_XZWUTZ`Z`\SZN_TSLOZYaW^`U[SZi\ZgQ[[aXSYZ^`Pb_RSTUZ]YZYV\SaaYZ[cVSU]\[^WUWaYVWZOa_XQ\_\]XZbR\W[VWb^l\YVS\WUV[XW___^]RVSTYZ^aYVZV__YUSWUY[Ta\TJY`]VXYYX[aUSXYg^[VXcVO\WRQRUU[]WV^[\_Xe`Z[[`QY^XUYY^RRQ[V]U^X^``NZPTWWZST`QTZXZZ[`k^Z_[VUWW`ZQVVY\T]_^c\][^YTTWW\[_YR\YdR[XVUaXXW_^a]TR[_Y\WVTcNWYb`Uf^^a]\_U_Z_XYYU]^RWZ`[[cV_S`W]`Y]^[XWVXUVXV`e\gYccOYa\^ZQ\X^Za]X\[[RQ]]ViTXTbYQaPT\XYZNS\XXZ[e]V\TabSPW]VZXdZ[Y^ZQaTVZUVVUYU[VZZbUWLUQXZ[[X[]]UUZ^WT`_VWWX^bbWXcV]`WYQX^YaXO[Ta[VZbV]\M^VPSc[W`S\d^Z[[^W`[P]V[T]W`YZe_`ZYa_YXWR[WV_\X_bTTdWYUV[VYWPT]U]VXY\Z`[[OZWTYX\UTZWXSUZSaWTQ\_YRT^[[\ST_Y[W`RVbZ[[WU]WY\VSX\MTWV`YZ[TVZWWZ`W\VOjRWZUXZ_^[YcWWZuVUXV]jZYTWRY^oWZb]YYXZVSY^[X[_Z\XXWU`ScT\TWXQSUUZP[YVW^ZZ[]i_U]a]VZX]Wi_TZNZXaaaRT[c[PXTX_U\PX[`^^TM\\\dY^c`^[WYUMT[T[^__XVVY\VUYTWQVV`V\YhZg\kbXUZ\\XbZYYU[VXZUTX]_`^WSW[Wb][`XX]\\XZ^^a\TR^[V`_WY]Z[YNYXWQaQM]UXXZeY\UX[UR]WZ\_NZSVXcbYUY_X[Uc`UWV^``WPY[Z]a[UW^SVYY`]Rf]`_Vd``Yc``^QSaRZZ^[XZWcVW_YTgUWY_`Z_[ecWb[ZY_Y\PZ[RWZ^WWRYZUUVZW[[U\ZTdj\VVZce\\XRb_KP[MV[cYVYXP\S[`ecYZ[W`]`QWUWW_^SXV[WTYOYUa^[g[XUVWY`aZeYUQd`Uh_[ZZYZYXYYZUb\^\Rb_[\XR_fb\YVVYV[XU\PXZXS[bXf`TWYVOVU[O_Y\V^bQTYWS_VQQdbWV]TTU]]S[a^RV]ZX\ZbaZX[ST]cYPXZ`S_LYUUYT[YZTo\ZWTTZV[_TYYYOWW[bYae[V`^RTUYRVdYdad`R_OUSV[X]ZU\`PV_]UZT\]SKVeUZi]NVNY\\S`\Q`[Y^Wv`ZVWS\WSa_X_YVWWZ__\ZV]\YTX[Y_QP]\VZ`XUWP[a`SYNa^\\\YV[SY]V[TVVT[JZ[]X[bYW^SZW[Vb\[RcZ^`ZdUXY_USLT^Se^XW^UWVPR\U[YTVZ]\ZXeSWV^P[U[c]U[baTf\]dRWUW\PUUa_UWRXX_]SZhYVX_ZZ\ZPcdS[_YTTY\SQWUT_W^Q]`cVPYbdRNXWZW_YWY_W]MbC[jZTXZVUZRTRc]Xa^\OOZVX^[Z\\]PZZU][W\`X\b^\W\]V]^\aaVSZU[[RX\\ZYUX\XY[i[YWZ[[aR[UYXV]YWVbXdZ]]`]^^U]U\PYXWWWU_Z[TV][V\ZSYZY_TX^W\YSW^b`Va]RbU]Te\aVT_[cXXNZO[TYXVQ[VW][cU`R`QaOS]X[UZVYY^TQ^dZYXVY[XX^U^V`\YX\Z\YTYXUaa[VQ[SY\Y`]Wa[XUZVRXXaaPR_eS[]^_`S^ZRU\_TX\TV]P]bV[Vh]WWTXVRZ\cX`]\ZVWW[\]]XVVT^ZS[`UWW`W\]]eTa```a]_Y\X]Tc[`^W_XSZWUW]`Z\TVeVSQZSY\XYWd\X_UYaVYT__[\RU_]XZV[WSVeX^_Y]_SSWZXXXT[T[]Z\aQVU]fTYich\UWWTUS[VZeV\X_\ZbbYTV]VQ`VXX_[_Z]SYYWZ[Z^SaX[YSa]a^U^QXUQaT\]WaVV_Y^_OU]ZR\YZYS_ZV[YXY\_X[]\[VeX`[XV_XTZTO^c\WYdSURc\ZY[d\[XOY]P\P[XZP]SXVZUV_VTa_[ZTbYXXX[`RYY`]ZU\V_^Z\YYWZTV\`YZ]__XXQ_WURWWV^]Z[VfIa^_aeVTUQeabVSZVXd[YZ^_^SYXSTZYS]QX^W]`W[RTWVV[U\XYY^VZSP\O]W[fZW[XWRXXZT^]]\_WXYYVaZaVUTY`\]RTQRTY[Z_UYRU^YWUM]YWXTX][cY[PY_]\WeWgX]VRZVZQbSTV_VXSZ]]T\\YfRYXb\e`][\Z_UZYSVY_U`[`NX`]XVZ[[eT[^X_\XbW]Y\XYXX\RTc[^_aXWWSPaUXX[\Z]VY[Z\Z_PVXZWSaXXU`SSgZX`bUcW]^UV]_VY]VTR^WZV[[OUYeYUZR`YTUY[MPRWZ`T[_g]`YPY\Rd^S]SWeUh]Y^P]]_ZSTXbZZ^W`XeWYQWZVQ^`U]YJ[P`\dYZ^gWV]V][\S\^TWc`S[V[WUZ\c^Xc_Uc`U`RYOY_][`VT]U[aeWXQTYVWRY[RQYYh`XZXVRbYaY]]]\TLVbWZcVV[YSXYON^]L]^VWZ_]RZYhUVNRZ\\QYV\WUUXe^aW]XSRSQ[^W[PO[WWYTd]OVZbVT[`ZXOS\VUdRT\[[SWf\YVWR\eZ_TYVVX]]`\XTaXY[WXSdYXX]OYY]ZqY[RWfY^PUPSW[\VUNXSQXURT]Z^V\U\bVVUYW_]VZ\_XT_R]Z_RX`U\^^R\U[WbS]bSN[X]\WJOYX_XWWUWZ[Za[aPXcUYmX`]k[S[MQ_aQXRc[\]V[R_WaYP\g\Za`P`ZPPUY[TYQe]bVbW_\YTV\X]ab\U`^W^_Sb_XW`SYVVYWWWZfOZ[ZUiUS[[T`Y`T_SWT\[Xg]YY[RNVTXZWSdd]Z_TYcY[XYZ^_iYVYZdVOS[VVXVYZR_gXWa`VS\XN[R_WaZPYU\b]XTU][WQO]\Y[V]Y`XU_eYR\V[]VRkeVXS]SScb][UVZ\dV]WbbVXTWVUV[f\YUY^dTZYSj``PYh[_[Z[^^XXeZ_Z\OYiVdR[]eZTXUTPXWXW]TU^WXZ`VWRVS]]VhUZYW\Y[_SZVZTXSWZf[R^SYZXYYY_WP[XV_Y]VWSX\YVUYhRYU_a[X[bX[_XgZ_XSZ\T`X]\OX[UVVOVTUM\a\VTQa[X_X[YVU[YZV[TVZ\Zc\VXYc_VQV_[[QZ\WacTVNRP_UVQQVWebWU`W\V^T^LT]VSUZSY^U_[bZ]VS^VVY_][_eY[Ve_V]SZYTQUOW_TRbUNU[d\T\]T\YZZaNR[fQi`WVXR`XWQdc[[[daTS`Y]`[YWb][^Ya]XVbRRYbZXU\^[UdVPT]QW^eST]VURU`]]WZV]_UYX[d\X\ZY\]]_i^WV\[[YVbScYNSW^T[U]W`][]PWXW[[\W\\Z[]c[TUWMXV_U]TU_ZdZ_YdTV[X\Y\QcSQZZ\ZaUZ^V\M`eW]TW`UT\SZVUTUUNVYYWePRb]_UVSXWT\^SUfY^[SV\[XZ[]]VWYSTQ[[XWaQXVV]T``]ZWZXZNXT\dW`ZW\SZk`XVV[gLSd[Yb_WaSW]_RST\U^a]Q[Y^cWVUdXVRh]Y_^cfIYVXjYS`^ZXb]ZYVfMbUSSSNbGJVSVT_TT[WP\WVYNWbFWaQPSU3X\XSWRVXOVQUXVVZRTadPQS]LYXa\ITNR[NbSWQYTVaIZORLhXZ^QYO\[ZS`QaVUaZ]XZ^\tVSUcR]RVbg]TJOcTYWS[ROSPO@pVTV_b`U^cS\YW_[bTa]6.RQQ.XcJZRV\\RWXbWOPTQaWSZ[XRNRjLN[XWU_^V]eRUUV_KTcOZIMf[\\TY]WcOZUVZ[]\ZX[U`[fU[O\X^V\^YUZW_NYVUJ\RZ\YYVb]HURULT]TWi_XQVTPS`bMN[eZ`YW]TWS[`XL\SSeUPdS]TRTUX\OWQLVgUgYWNZVR\QeTRZD_[VZVa\U]TcYT_XU^V]QVYZRZgYW^_\WUSX\UTYW]U^_\V[YaTQZaXPXS[YTeZPU]Z]X^VT^_[]\WRY\Ua]XXYVW^TTSRV\YXVmZ[ZRXYZZa[Tb\VVYUXYZX[ZWTU^^\UQUUTYSUTSXRUSUXU[XYYV\Y\SQb[]V_dYXOQcXP[VLZ]]]RTaXWXW[_dQfWV\WWYX\^^U[XR_UaVWa[T\RVXR][WZXHXV[U[Z`X[W_ZVVVYe]^ZYTZ]TY[VW`]TSY\X[T_^VbPcR_]UZ_a]XgZ_XWV^UVYdVYUXRR^]VVYV`YZZ^Y`Y][]T[[YZY[_WfSVUfYYNU[`]V`[\WS_VXc[]TUSZ\[S]YYY]VYeid\[WaYV\U^eT_Y\Yb`W]eYZYWXWYZ^TWW[cZ]fSV]QXc[\W\W]U[][WRX\\ZR]UhTX_S_YWQSW^UQ\O_XWZTcMVP\_X][WPVcR[Z\Yg\QRTZ_[b]SS\Te^O\RTUYYW`^_b_YTXXVdbORRRaUUU]c_V]PWjXVS^][YY]]\\_VTacZZWVS_W\ZSY]Q_]ZX\Z[[OUeXRRTf`^_JbaVVZbS_]^VU]bW[\\Za]n]_VW^W[T[Sc^f`^^bVX^^WYc^\Y^YTZ]`[VYWS\ZS[\_]UOX\Za_XVUQaRWPV^Z\YZ^T^[YY^a\cZRUJZT\VSXVVXY[__NV_Q_XXW_T^Y]Y]^WVXWQUTX[ZZ\\VZ^[[M`[YW[c`]kQR\`YWXZT_]\]YW_`hPSYZYaWXlbSaX^\WYZWZX]WUTUSZgZTQ]ZYV]WTZ\aPZ`VXb]e\Y[`SS_cMW]WX]YcZWeWXP\UZaRaabXX[NX[\SSa[OZ[RM[e\WR]SbU\XUoT`ZW\]_]`aebYWZc]]ZYWOW\V[YURU]Y`VRbQWPcY]c[]WZaZVYYcWTYb][\Z`TWXYUYfYPbcYSTZ\SVZ[_gSbO\VaR\ZWYW[XaVWcYO[eW\YVT^e^W^T[]]UX^TRYZZ\X][Z\WVY\VZ^QYT\ZY\S]_T\\\X^ZYWatV^XZV_RaPV_]WdaYTe\^Xh_SYa_YRVTTU^\^PSbUZ]TXa^[]a[_UXRYWSY_^eXTZ`\S]VRX`Y^_VWTV_^e`Ub\dRZVg`^\WYZ]ZZYTU_bT]WXWW[bTXT\jZYRSVdV\SYYUa^ZYbS\L\]`YXWUbZTbY\RWXVgbXWaUZWXTXhWaY[hTSTVZS\]XZT^ZaQW]TYTVYZTW\WcV`_aP^X`SRUYUVQUSWa]_^URPPWOVaUQ`XWRT\aU`d[b^YVVe_]\[PZ\T[[_ZcTVWXYWVUbV\TTZS`USVXNPU\TYRXZfX[g[dd[RUQSUUaYWbaaWSU`_ZdSXVM^^T\cTXSTWY]]\U\PaWZ\b\Y[`^[XTU^Sc]T[]XO[TV\WT]\T]\[PUhc[^]Y[ab_\WYZ\XNWVbWWUZc^_TRQ^WSV]\\XX^`T[bTY_XS\]X\[_Z\d`SP\ZV]\WMVQX^[UaXZeUXTXUPWXc[cSW[_U_W`W][WW[Z]W\Zb_XaXVdZWXQ`V]ZWTd]_ZYTZ]VXmRU`YW[TUUXT_M\_V\a][dWa\]YYWS`[X][]ZPYb\Z_\[WI`RWU`QUaK]]`[VX[_X[VWTaY]_UWUZYVcWYX[aYS]\U_W[UWZ\XTWYZZ_ST\V\ZaL]^aXTV]Tb^W_a]eZ[Z_XTY[X[QO`Y\X`_SSVXT\T^bWTYUg]PUTX\_WOS^X_T^Z[ZXdSc\X`]`SdX\\`^[WYZVWXPYVYSWX[cZUWTZYbZ[VYRWUZWYNUXRX]ebb[W][ZVWO]XZjUSc\XSQgc`[V]TQPXXT[f_]eT]_XZ_Z_]QZaf\[]]^[[a`\f\g^VZZUTWaYU^\SRRUU]\Y\`ZPXdYXYUeVVYQ\YS][[fRZ_\]ZTVdX\SQV^TX\YSc[XgaUX][Z\WY[W^]W\\_\VXeZQ`ZVSV\^[^Z[WZ]UX[^[ZZ_ZYVUXaZ[Q^Y]ZVa\^a\XV]ObYSXYY\c_[bY[YT\g]]\`P]eTWX[[YVW_U_VQXYYU_a`R_Z[XYWZZ]]Y[ZbZ^]\TbZ\^WcdYUX[UWYWO[a_U]ZYU]`Y]RV`]TZX\XV]`a[[Y[aXWX[^Y_Zb`]UR^[]VbXX]YWSdTZ_\a`b\^VW[\__S_\e][_W]`]Y_Y]R]T`S[[VW]VU^PQ_aV^WUUb[ZcYWVZXYc\_SS[QVX\^b[RWVT]XUXdR\^[UVSXU\b\ZX`a]\ZXWW[XWXU[[YhYS]^Z_[YY][UZVUVR`aXSYZ^\VZ\][^_UT\\UUX^RZb_UW\[VXX^XYWb^VYZU^VbVXcQX^Z_^SbV\cY\\becbV]_^\V_YUZ[P]ZRZV`WZ]^XWNbZPV\ORUY]]Y]`UPSNTdYZe\SZUZ`\ReVX^YRddO^QU_[`_QY_XQZ]b^V\cOb]VT_^WYZVQRbYXX[V^YYUM_WTXUZ[_OWZaV_ZdXZQYRZY\`eXbWV`Sc_TZUTUZe`RaDVRX_b[LY[^XX\g^NZ[`VaZX\[g^\aT`PXTYZ][W^\T\`]^[ZRTV[W_^WS[UTWRRQWXaXdV_ZR\YbTQ[SVS^P\\`ZZUZ`VVXY^YUS^][WU`VYVZ\Y[X]^XVNSUXX[UXX]TUS[[\bZ__a]PT^O_RZW_TN\VV]Y^XOaVR\XbYT`dNWURX[`fTZRVVSYcT]V^\VS^VYSXSY\R\`V^R[[PX[YXVRRfUVTZbVO[]g`QUXjSXX_Yh`[WVS^VW]aZYaeUYUQYXWgYT]Wb]_^WOV_WPRYUS]\VXW`Z_XbRV]U[Z][Z_Z_V]d\WeTWO][TT[^aX^ZRVZY[MPZW[eZWY][YU_XeY]\dcTWQ_O]TP_[_bZ^^SKU\XYaS[[U\XQcWN[Y^_X`Wa[Z]YRcUX_TX\]aUUXRcYg_XcR^[QT`U^_b]`VdYgVSZU\aXVQXYZS]\KXYeY[TQXWU^UW[TT_Y_S[W\VfZ[ZZ][XXWY_]Y[Y[VYTVYS^Z[XX`Ya\e^c^Oa^XbQ[S[Y[Z^ahW\T\VO[ZTTO[VZZgX_PV]Xf_W]^ULSWXZbX\][dZRTaQtY_[iXSXVV]\hXSTT[cXVVUkZaVbVaV^[UiUSWT[aVVYYZUSVeMXVSR\_VU[\Z]WYPQTX]j`_bX`X[XPc[T]XZTTUZTX]WSWX_T]\\_`SYUZU_cZQTU^WTVYX\\aV^QW[T]ZWSVdWZsR[_U[X[Vc\W]Z\S\]\\[[TVc^U_c^]UajWYYRRV\dW_X^YXVV[QZ_^T`]]Z[\YWbWZY^^ZW^TRSXcS]Xc\Y\RX\U[`QYR[RYUf\a\YU[ZdW_\ZV`Xc[Y^`Za[^VXRU[MWWfUbTYZ]]VYYU_XRV[_[Tc]YZY\R[YPV_aUTaWaW^URbWZRYU^Te\e[VW^V^SXUjZWWTX[_Z]aZ`^]bXP]]_]c]PVgZ\J[aX]^jVc`XVZSW\cZ\UX\_[i]_U___T\XSZhWZ^RW\bY[VgV_XZ_T^QZ\VZYVTXSUVYRUSX[YTU\\\TX][WjMeQUY\YRZ_RVWUa]YiWRUUPS^VPWdZXTYZ`[S_QhaX\VWYZRgU\\YU_QU\UV_RP\]Vba_^UX^^^]aU\bZUU]\[aZU`S^TdU\TVXQ^^T^]XYUTT^ZVbZdQ_[T^Y\V\XTeVPNbVY[eV[\[X[YWVV`RUR]Z[ZQ^bWVTc[h[^XWWjXY[\YQVU[NXTZ]_VY[V\]YTRYUWY_Uh`VZ`L]XYRhSdSWNU_WbRSWVU_Y]W[Y\X[UWWV_^Tbec[e^^]][YOR]QX[aT\\WQS\U\[ZPS_\XVSRZU`aM_[Z[UX\eUWVUTZ]]U\V_XTiYVXRPaZ\]LY_[VRNMZc]Z][bZRXbUU_\Xb`U]WWWXWbYSWcVWWMYSaOXWY^ZW\[cWZWX[YY\TYakcW[WZ]`\^\ROXRTY[[[Ub\aUTYSQUV\f`UYS]XOZ`XW^WV`VXV`_X]VV`]XXXWTY]fQd]UXTW\RYaJWWOa]VXdRdlX[T\Q\XLLMXTY`bT^[V\]YYWaX_`^_X\[YXYKXY[T[d[^WY]a`SUSU]YdLSYY]`[NWPR]\Pb^^W_`V[bY`TNOYTI_VR`[PW[c^TXWaPSM^U_WX^Q\S[V[PWQ_V_Q[aWNUZU[bUWd[X]YLRYTZZd[ZYIZ\T^\WVMXN]`_FXedXQbaRYQcVhSTYZV^\[PeYUWV_WY`W^LWaXa^b[[TZ`_\R]ZSO[VP^YfS]ZVYUV\[O[`_]Y]`kOLXaVcTYWR]_XN]hWZbTTS_]WR[XPS[\b]aUXX\]W[MaYRU^RVS`a]U]VXPX]SWQKi^PP_TWWVTM\^YYZUYU`YOX[]\\[YS`U]TUXUU]`bXZ]`UUR]WU^]\T[X[Q]S\YYY_YSYd^TSXVU[YZ_SNXUN]]XVWQcZRYUZ`W\]V]V\XSXZU^cTX\XWY[]W^WYYZ\TSY\V\cY]^]YXV__\YU[U[O_YgTWVX[aWSZ]Z\TX[Z[X]]]^g]Q^X]ha]WT\UV\VV_QX_Z^]bXVXQVeT_XY`VTRd``Z[W\`WUMa[SV^ccTZ]VVOUQT`\^V]`^V[\W[c\Xc\[V]]VWZ_]WUSYUVYeU[YUWTYYV[\ThdWZZZZfVQUXWV]\\^ZZa\V\VZWTaR`XcWW^VY`UQYa`WXVUY]^QXZ_\VZVX[U^VWYaYYUY_YT[Sa]^ZYOP`VRWa[YWQY[P]\QXW^\VbXZaXYT[`\QZ^Y\TaaX[ZlWTWX\\W]Rb_YRX\OTX]WYZ^aWZb[[VTV[XRX\VY[dXZX[`S[abZWWYcYRa]\YVTca^U\[RWQeRcV]X[ZYZ\ZW]aY_]dSW^_YdZYZSd\VbSVPYPS[SY\Wf]^[[YWUUU[`Y\W[b^YcT^XZZTaYTZXVTScY^\UX]Vd\SZWQ`^SSZPUWT[Z_c\VZTZbUIb_^U[RSYR[d\ZXZ\Zc]_XSZZa[R[Y\^[dVY]\ag]Vk`V[ZaYWS[XcVXTR[VeZaZ`^WZV_TYS\Ya^b\WYZYUR^gOTVXWYVR\UN[PQV]WOY[TWYX]h\ZZ[SYYYM^R[kYXbY]SSYWfR^eWh_YSU`TZVe\X[WYZ_WaTU]RSW\YY^O\WW[\Tb_hUVV[\bYXY[^XaZ[UZYbV_^[Y_c][U[\X]XZT]_X^Q_W^WSWUUTNVRc\UPVlRY[Y]V\eaSZ_Vj_ZSXaao]WYYY\WXi^[Y[U[]Y\VN^[O[gXX[WVOTb`\TX^UWXT]OVW]X^cWY[VVU\U][]WYWX\OSYV[^UWZW^ThR][XZ]ScY[T\]`W[XYZdW[Z[ZV^_b[U_XZg]aYbT\WQ[WZZXRP]U`g\[NYXaYVV[__^XY]\Rd`ZW[UX`XYWUX]ZZY_d`X^VYOSN^XYU^^QV]`Q]WV[Z\TYLZYQaZbXZTRSYWZ[YXQ]aV^^SVPSUZ]]UR[^NPU]VacVaT_]XK`UiUWV[U]PZ\adRZ^`oWZWfTTdV[]_ZXbU^Z]_^XSc_XRXM^^aX_]XSO[Y]gS]WRSQOUVXheZT[\Q\Y\[SSV``[Y[\\[\[`Se\`[UUXN[URX[[_XbZSYV\[]U`__UWYU[c[^`^UU^aTYV[^X[ZYWX^^RZ^_fX\T[T]TY\XV[\`[caSWR^ZY_WXYUVX[][\eYUbUWYYWW[Y_WYUY]QWP\VV]a\jV[[[U\ZOWV]YZYUYVT_YYZQVXV_[T[]WZZ\Y\US\][Z\Y]\U`Za\]]OXYWZa]Z[^XW]UXb^TVZ`Y\Y[PY`ZW[YN\]SY\WU\YWTTbT\VSX_X\]XZ\ZVV`[W[TZWXT_SiWaWZ`QWSZYXV[[^YVVVZfVZXRW]\XVaZ[ZXS`TXS\U`W]W\ZXTUW^WXZV_ZZ]Z^]X\XZX\_V\YWZiZ__[ZccWYYYY]Z[ZU[_QTY][Z\^V[UY^R\aPO^[W\]^]Y^Y]WY]ZT]_^Y[U`WV^Y_]][UV\[^^P\]YXYRWYQS[S[_Z[[W_W_VZUQY[ZV\Z`_ZYaWZ\^YT][^V[YaZTV[[TS[ZR\Z]]^SWWW_UaU[UWVS]UagU\WXVTW`OYRTWb_[U]W^[]VURZYX[SWU_`Z[XYN\Y[Waa\]`gZ[[XUZ^S_RYbXXV][a`WYS[\WYUZ^S``]ZaY\Y[b[\`STVU_cVO]ZZ\YW]VVX\a]X\TU^UWR]TUMYa]PT]PYVb[ZX_XW][`YOb`[\Z_X]`X]YZTXX^TZ\]YXTQRV[`T^_YZXNba[QUY^WYWXSXZYUY_WVYVZXTXZR]RTXfT[UYQ]OP[[b\RSUY]Y[\V`Z\\\UQc[TXXeYUUYMW[]_XZYVN^cX^ZY[jV_Z`R`]W[[NSX[[\VVZ[\Z^QWYWT\cSQ\Y[VXWVWXXVUUWQV]^\UYbX\\W^XXb_WVTWV[^W\\T^V]\]VZX\\TX]WWSY\X[YX_P[\VX]XTUZ`TZVYWa\R]S[cX_XZ^UWVhVQbX_WT\\_Q[[ZX\YXV]^\][`ZY]ZZVV\\XZVVTVR\ZV]XZR\YXW_[^V][V^WWTRVUeVXV^[[WZ[^XXWVc_O_YUYTX]_]\U`]^S[bbWXV^^VaZ_[ZWPUUWXc^Z_]Z_YZUXT]W_\gZT_YTV^\[[_RX_UYVZWVY^WXUW\]SV_WZWaW[WgV\YYTVVSY`\Y[V[i]W]Z[UaYXPWYY[[^^UZUeZWVZX][]`\ZXZTO^e_TZ\TQ\S]S\WSaV`]QVVU[\S_XX]ZZ\^UUPYVP]\a^Y^]WWRVZiYTXYc]]TW[Ve`]Y[PRWZiTXZ^]\Wb]XdY\[TQ[SR_WQX]W[_XU^UV\\Y`ZV_]^W_YY[]`VVVZZ`TW_^[`UWYZ\ZUZZYTaQZYZ[YQVaZ_^VZT]\^UV\^RW]WcUXYT_WX^ZW[WVY[b`X\]RUb^SaU[W^SX\NXZ^\T\NZcS][[SZ`UPW[XX]\TgXYV]U\]W[XTUU`[W\XNZ[^WSXWX^^WZQZXZ[Y_cXUaW\a^W\[^TQ]TR\b]WaaXZ_\]WX\X]WWZbY^UV_\UTTU`[\Y_^XTcibRXY]ZUVR[`ZdZ\Z_YV^]QY\ZVXVVY\_^`YZV^TUU^UTW[_mRM^[\`b[TQYVWT]g`ZV\V`YZeY[ZUUS\X^SXWcZ`TW[_\__T^UVOc_c^X_V]Z`OaY__WaZWfmSM[YZZ\[OXwoXYUSYTYOMVUXY^XX`a\eWUfYaZ\ZZYT`XYcWX[[[NUZ_gcXU[^U^[WcTVSiVUY[YW\[ZSY_WVUVYaUU\Z\TT]TSQW`VX_UW\`WVYR\Z`aVWYb[\[]dX\[_][Y^QeWX\[YQ\aWXTVU`b]]PX[X\TWXPZ[_Y^^Z^uVUV`TU_YWZ[\^_W]WYWYYeaVQY_]TWVY__dV`\`XRYXUg]XXd[SW\Z]`^cZTeX]SWP^[]aWNZZM^[Q\XRYaTXV_[a^S]P^]VWcTm_`Z_XVaLP^YXVXVUZVW^\UXUV\]STYS\XhZ[`YZ\WZ_SS\_]fPNbUUg[YTUbV^YUZ\`cQaQc]QcRUeOTRac^]SaYTbU`SWPUYXUWbONX^ZjdWXN_TWV]ZS[VRa\bV^ZYMV[ifXRY^WZKY[\PQP]TabT]a\ZYZ_VfcYU`[Z]YYf^RV[QRZ]YSUWR`QcWUP^[YZUZ[`PU[UXYTb]\[RVbUTWmZ`RVWLZRd_[XQX]H_[[`\\^OcVNWQ\^RZ^_Y\LSSSWWYYcYS\a\XZcSUSWZN\^V[[aZQkTVbbR\`WYi]WVURQ[XbUd\XVYZ]`YZP_W^_VZXY\^d^S\U^[\RTZRZZZXZYhYgQde[c[QUYcW`LcT\ZW[\SRZ[UYVW[]c[]TSWebZYO\X[h[WXXdRdjWV\ZVfWPXYSYSeYV_]_\RPTU^a_\\aZ[Ka`YRWYZYTaYTW\[^VdXSbWRV`aUeQVSUZ`RXYSZW`[XZ]WYWY\aXUOXaW\YZX]O[_S_d^M[QW[]ZS_N\WRT\ZVY_USRbP]_S[_ZXWcZVZ\[YS_[^\\NV\X\c]bUZXUWVVe[`YY\]`dZ]]VZ]V[T\VTZTQ_Q]W[ZR\TdWWeXbX\c\]SQXaSbaZT\[T\`VP\XT[VZVfY]X[dOV[ZSa[T\V^TbVwMVUWXQXW^eSW]]g`__^[W[X_[`WWW[_\ZTZd^eYWWgUYLWWaTS^c\W^X[T]WYTTVQSV]WS^\jUUT[bkZZU`dWRR_b]X]XaZ`YT\RVZ`]ZW[Y^bUfZRaWYgUhP]XV_YTbcUX[TX]bW\\][SWmYUYVTcaX`STSU_\X[XW_[W[TVSXSX]YTVN]cS[`^Tc]OeURiab`XP[Zd^UR`Q\X`Rg^U[_cLReblV[W]UV`NWX\lMX`[UWZX]`OU[\]ZRUOLP`e[YR_^a[XW^PSZeZZT\Y`[RU\``aYR^fpYa[]Yb\\WQWNXRWXeeU\OP[L][`V]bYc_VTS[TeOX\eW`]P\hZY^cOk^W^^^[bVUbbWV\RT\`V`^bcW`TV]^Ya\ZT_`i[W\RYY^TN^[TaeX[^]aSRWfS`ZbH`YYRZPQkS`NYaY]^]^OXTdbX[_a[jSRV]VYUUaO_\QYc]]ZWR_Z]TP^VPa[BQ]PV\Nad_^[aQcVW__V\ZZ]Z__^[TZT]kXe^^WZKQ\Y\g[YV[l\dUV^OYYWZaV`aPg]b\fa`XZ`]fUYTPMX\ZXU`SdQ_Z[WL^_ZP^TVeUa\TWYWhUS_[UWTWUU[ZZRTRZU[ReVUcjXXYY\JNXVU[[`cRWXYV\^WXKZ_Wb^ZZTbXQ]]YNV_]UXW`\YdYYgXQ^UYSdYQc\]Ra\VSPVYX_VZOWbT\dW^V``PTYWW\aaXVVYYaRWR\WVaUcTZ\T`]Q^RZN^SV\Xc^U^UOP\YP^Y\RS]]RXRjYOZXX[^SV_U`fSUWQgZ`S`\UV^S^Xh\a\]WTTRZTY[^ifSY]aRXXVSX^ZR[Y^]RZ\`\c\cZWZT]YZTaZX`VUSc[]VdWZ]UWRUbRYcXYTZYV\`QX[[VXY_cW[[X[^]_XR[X[[Z_aTOZYabZYVW`[[XT[`iKgU_XZV^V`\SZ``e[`QNcW[ZU]QXY\dRVRcQVUR`VPZfd`XegWTbPU\UaUV]YVc_`P\_SXUaVRbWRVVUUV`Q]TT\WX[^SeTWXVa^RZbXWZaYTbdUW\U`Y]XUXRZX[V_f^\TWWZV\\_TaVV_RfZe]XS^]U\`[XYZXV[]Y\TQ[PVU^d[SWZNZ`USXaVXZWTWfSZT^ZUT\OZQXZc\XV[WSRU`]Vcfbc\]ZYQ_X\X[bXV[[YVZQ`][_d`Y]T_X`\XU][ZT[ccQWc^b[U\c``OTXT]aWQV][^[YT^XRXZ[\[c\f\RUXO[YWcWZQZ]Ye\_PZa[dZYYV\X`_ZXXZNXN[`N_`O^VZY_W\TPXZ]VW_XZZXWT\aY][dWZUP^[XZQ\XXYVQVWdW\]Z[[UVWYRek]ZTTf^[W_ZeWVZTX_[VQNYXaSVfTV\ULMY^_PY]a][b[W]YQ]X\]VZZTVb[c]`c_^_Y\WXZ\WYYVXVb]Sc`dZVWf[Wc`Y\YZ[Y_[YYTTXTYYYbVQ_TYV_bWaMW^V\TcaS][\RRZZU]Ti`\XXY^VW[_[]aUVUZTcUi]UU_ZZUYVS_`Y[URYZU^P^aOSYa^YUYYb[P[Zb[W^g]U]Q[Wc^YTVW`X[Z[SY[aW^aXW\`U\UZ[VV_W[WWWU\TS]JaVV[_TSWZYZV\Q`\U[Y]YP\YXcX_X^XVU^W\[V^Yj]YY`U]USXc^YTS[P_`]P[RVf[QY\UTRWZWW`aWeWSSb\\TYW^WYVVWZX][bZZWU]NZYW[[_T]_Q^SXVX^`ZSXRV`YVSUU^RZcTVWV^^WS^Y[ZQhUQ^]`X`^a[^Xb`ZYRSYY]_Q\RT^Z]\XTda_]ZWZVX_`]^VYR^TX]aQe[S^S\^^^aZWV`\^RVYV][Y_YYgNS\TbX\^T\XjU`ZW^[YZ[Z[YRW^VbScSZdT\[T_e_\ZaWYZ[ZUPV\P\VYTPZ`TWNZW[XX\aTUWZYX\Mc_WZ\YcSfSb[a]]e\ReY[N`WS^[ZaYSY\VSaXeQMc]^[T^R\YUUaVX_PVZSUY`^T]\O[TYU]jWYUWST]ZYe^VUXTWTT^Y[ZZ_]XZSR]^hQ[\T`W\]aYTVgZ\`UXbW_\`Z]^YaY``_YZ]ZUV_\Rbi_QTU]WV_U\T^TWWaW_W^aV\SZ[RZS[^`PU^c[VXS[V\\X^aR^R\_TbSSS\a\^e]]Z\TT[W[Of^U`TW_`\S[YTS__iUeYVScWSZKWh[VVW[_dTV^SXSVbSW][[a[W_W\cR[[Wcb\X\O[R`WZaX`\UTVU`T^\WdUU]i[`]_Y_ZOUcWa`d]UYWaUXOVSa^VUY\W]VPUb[\cQYU^UVQ\bMZZ[YXULZV`[_\[WZ[XYUXd^bW]_cdc\[UZa]UUN]UT`]W^eTYUVXXWYUZXUTX[^[PTYUe\]T^UfOUXgkb[RWQT[YRcVKRUi[aQY\ZVX[ZUPYUY^ZaV`^^WYS`bY[]Y]`\NV__ba\U`^UeTWQ`\TQcX_bfW_XXX_\SZ_XPXX\`[Uk]YXSW[XW\ZaX\^_^P[U[YPbT[TUTRYdUXXUY^\cUUYfaL^O`T]^Z\\ZYN]V[^SX^VPPY`T]YWR\Hd[UZS]FV`U\SQZbZVP\R[j[Z]XbPR\YY`XUZcWaV`]ZUT_S\WWWcWW\VRQ[_\YXV]]S^V\TTV]TUY\O\SXQT\SX_ZYTZe_W^QcQReXQ`XT[VSXc[TUV\UVXU[XV]iYX^^UUX\SQSUlZaUVZ^V]STZ^][dYRYT[U]abWdSU][UW\SVY]VeVUY^XX\\^Y_ZNZcPZ[[VUY[^]WS]]^`]UZWaNXab[Y]MWLXVV`R]cRPVPM^\`YT[ZRW\XVZj]VdV]UYQZ]ZXaYXXVUUSb\VSR[YX\^WU`ZdT[LWW\[[\^VeTQR\SY_TORZUP]V][W_ZYf[[SX]RZPbYQY\Ya^caXTYUWUTK[Z[]aS\RXWRb[_ZY]XXYWWYZQR_[^ZQ`eX^WX`ZZ^YLTQZaZQTWYOV\\\WbQkMi[WWVQ]bZYXVY\TVSYXT\WYXWXW_WTh[\VTb]Z^[WXbX]`bWU\UZ\]b]^WZTY\XYX^_XUU]Sa\\TTUW[PV\YbVX_W`YZSUV^V]X^[\XVc_\`ZZZUYNR_e^cU[fUXT\YYV_]VZUOS]_SOVa\bZ[YZT`_TP\]SX^][T\^\X[SYWY\^TZYPWU\YYX]XX[MWUR[ZYWY`aabW]U\Un]S^^LWTd`UZWRRa`^[YLbY^Q\UU`[WQO]^]VZ]ZYVaYVbW^XUWlWMYWV_VVVTYZX]WaZU_XVP[RZ`\\WW[a^[[X]]VRZm[TV[Tf\UXR`\cWQYYV^\e\TWXWc[[ZW\\XWY\`U_Y_^_Q[SZWQaTZWVbY]a[RZ\]SUWTWa`b_NX_Wd[_]V^WUQ_XYaUc_Yc[P[T^S\[[\a\XPZXZVVQ^SVU[R[ZQ]U^TUZ\\XVWaY]ZXZUVcV_Y\YZM[UU\TVTVU[[\[W_T[^\^Ya`YSSZ[_SfSZ[[\]X^Y\OZTWXXVX^U^ZSTT[XYV_\\WYZW]bV^\V^X[][VW\[[WYVU^SXSZUXV]TRXcY`Y_^\YW\TZ[]XYZUT]]]XYRXU\d[X_TY_YRYRUSTX[ZU\WTTYe\\]aUZXbbe_`WeZYP[\WXTV\TZc^UZ`T[dVTWSZYTW_SOW\W\UYQ\ZjZi_`_ZW\T\V_[WXZ\^bZYWXQ]U[XT]]UKXSQ_Z[XW\]__c[_]\^S[e_eV]^bSS[TXZ[ZUVXPWUapRV`Yc^WUYTZ`W\ZUaRVY]\U^_UX]`Y`ZUWUTWV\VT_^[bcTTYTb_SQ\QW[[R[[TSRUW[dTV_d^QZTV\\VS\][\Y]WbUYURZS_X\X[WUWQY\[TVWRV`Z_aYVZYW]d^Ye`[S`[Z^VY[PYZ[^eZb^fYaaRUMcTV^\X[d]Y_Y_[]`\aRVOTeaV[YZ_SZ\YUYlVUZXOj[cX]SUV\i[WXZS_XS`T]]XN[QX]XUQXPYWOaS`cT\dU^VXX`YUZ_[Vc_TNa_]YZWTZ^[WYO\\S\\`]VcV^V[bOa[[b[^ha[\T]N__b_bPP]V`TZ\][[TXXXdW\\W]bY\UX^^TaW]USY[[]X`\QSWWQ[ZZOXXaZ[_VSSaZX^TWUYZ`]\X]SUSa]X]X[ZcaQ`[]`LUT\YV^YYUWZ]Z]TZ]g^[dXTOS[]YUU[a[SeZYXUVYZ\WYP[X`TV]XX__bfSW`adVVRRZVZTZVX^ZYV[Xb\PPUV\VVVXYZ]VZRdUUQRPaT^]\NWXW`]N_SY]X_YTc`SaT\[V[][YX]\\TTV[UVQ_iV\\m^ZSbZU_bY]`_aTVb[WX^Z^PYWX^U\\_VZWQZU][X[SYYa_\YSkR_][PZRWXUZX[ZWWZXX_VT]XRY\cSf]PZ_ZZYTZW[d]T[Y\O[M\`L\YXaZXRJ^XV]S^cY[YYV]\\[ZVVYTWYVVX_QWYmYXV[URUaS]V\ThWbV_UYVUaWT]VcY^NW^^XUZULTY[T\WT_[RYZZXaY_YVTWZ]VYWUYZXVb]ZYS_fW_]RW\P[ZZT^O]Wa[hQTWXUT][L][fT^ZY_[TfZX]^KYV\[XST]cbZ[XY\WU\abSaZX]\WTdXH_X[WbZbS[[USWXZ\SZYTUUTaY[V\XX\[XYXTZWa]U[f]RXUc\XWWcY[]WWV]USWQUYbT[Q\VXW^^UZTSSVTZY^YWSUVWZfPTXWYRTgZSYWWR[VZ^TWS[T_SbT[Y`^_YR\YUZVR]TUZXWS^`]WZ`YUbWV]afdVW\[YY[RVXSS_X[URT`hXW[X]V[ZW]V]X_TXUbXbXYR`Z\W]RUYW]X_aT\VSZgV^UZY`cVZ_U`X`PWW`V\\^\W]\cUZ[X\YYcSPZ^\`\UV]aZU_TXZX`ZXZTYUU`[WYY[WRZVZY]Z`N]`[VWW`X\\TX[NRZfa`cWc_`Va]X_[YV``\UtXYVW]UfU^X_ZadXZXWWbX[\Xf`X^RTY[UZ]\ZdXWcUWaeWaQZYYec^]][cO_eVX]YY\cY\VWVShY`n_ML_UYaWXWZQXXS\PV[V[[Zc[ZUX\bW[`_kUQYmOYPQ_KWaf[V^MR]R\Yb^eUW]a\T_^SR\gS]gd]b^c[Ub]Xl_RY^cW\\YZZV^_ZcZZaUdVSVZZT\OXQ^X_RagdR]`[[]XUTTW\ORWW^^Q_dXYYXT[S`TNWfW[__mZT[Z[WYb\WW`W[XW\X^U]Q\[\`Qc`QhYSX]f_Z_^OaWbfUQYZ]VYX[Z_SZO`^]bOPWdTUk^Q_^[dW^e]b_ZlZdT\SYRRUVc\U\SZVdT_XQUOMWcJbLa^``SWcXb]^X]_X^Y_XVUPeSc\Y\ZXJ_WelZ__Z^TXZ`QRT`eQZ[^aYTaZT[\YZWWU^]a^\Y_YXd[W\KX_[_Z]]YZZV[aW^YWR^Z\]_^Y__XW\]VYW]jc[\\^XRX\[_VWYYYX]^Zc_\[T[VZbgW^YZX]ba_X^XY[Z\XYTV[Z[Z[UWZi]`\^bVWVX_X_XeZ]V\Zc_[T[Y\c_^ZXV[UVW[WWXNWbYa[]V`\SVUVYUXV]`X\Va[TY_W]S[\YZYXceWUZX[\VZa]Ol_e]]WVS^^UY]O\WZT\\UZWWY[WY`[`Z[`UVa^cV]T_Y\XW\\Z^[W^a`Z^WYWT[]ZX^^[[XYd^YZXYYjZZXU\TY^\\U\W_[WYY\^USX]_\]ZZW^\ZVZ\ZZZTWZY\Y[TY]VXZXQ^[_`Z]YXYQZcW]RQTW_[^_[]\]\\UYX\\X`\Z^_aWWTTXS^Z`XR\X]SYWhY^acV[_h\RVYXZRcZXZ\ZVUP[N`^cUVVTYeS[^_SVc\[MV[UQ]PYYZXY`jVVY]d]SOUQUY\VRYWR[WV`S`TWcV^]I`WV[S^UcS\Y^Y_Q__Qq\Zcb]_^M_TX[^Y\UVKe[`V_\ZbSWc_TZX`Qb`^QRXW]\_S`]^\VZT[^]X`QPb^XUVY`WLXSX^O_`\ZW[ZYcSUKUYg_SY`X\bVeT\[R^]]XVZ]a`ZYa[TdYTRY[[bZ[WL]TSKW[`WT^Y^VZYYTZYRUWWabTdWcgUWY_PTWUcQWZVU`]QZf_RUa][ZQYXZ\Z[VTU\Te\^[b]Y^bfU^iXXVVZZYhbSQNXXR]ZUROdZRU]Y]XMXT_c^`_VRaiUYXWX\QaX_^[ZX\^X[R_V^a[SR_`\gU^WZ_T^f[YcSWQ[ZTVT_^SVZSZZ_XY[ZaUZVSVbY]YYW[\\_\VWRVUb`WaRYRN\cO]]ZVV\^ZXb`W\bU^QZeURSTTZWTT]bW\T]RS[[`U[V[XOWWYVRR_[XVc^Y[VUXYWbVYSZZUaX^aSY_f^]SSZZV[SWXUZaZU[\[bZYZd_OXjY[_^^XVU[]S^WYRVUQ[`\[\[VbaRbR]VS[U`ZZV_eX\ZYX\^V^Z`\S]XXS^NSW^[ZZ]WXQ`^P^S]R\[UTVUWbYRO[Y`^VV_^VXZVV\]S_aR`^ZW^V_^[W^\U\YbVZV]\]\Z^^TTe`WY[`UTU[YWX`XV][Q_VVaSY^XQUVRX]]U]a\^UR^Y^TV][VZMiReRVTVg[[^V[W]`PVWWVX`YcWU\WeX[[Z_[TTQ_XXVb[S`MT[[Vb[U\W]hXXYTcV^[Y[U[[Y[\cXa[S`WVaWVW]c\[[^Z]O`]ZYWZTX\QdVVXYQYTUYY\_T[ZYTRZRj]WT_Y[ZY\\ZZ]\T]WR^TYUUX]WW_[YgZW[SV\Oe[WS\YcbYW[VU^OcVY]VWXZ^ZTW]]TXWpadZYV\UXXTUZS[WWZ\ZaV_VWVUXVZWZ\_[YjVWVcXU\\[W^X[`S_^`\ZTZZXVc\]\bRXcWXXbVU_^_VVZW[XTZYYdYZ[XdT`\]PVY]cYVUZ[_]TZZ\^``[Xa_YXPWR_VQZWTfZb[WY_XZ\R[[RZYU_\UbZY]^YSYfgX^Z[S]__XW[[WVST^UVZ]Y[TW[YSZTU[Ubab\XbaUOX_ZYR[_OWdVWVXTRWb\a[X^YY\iSP^XYbWReT_XU]TWZUXWUXY]WWU`]_WX^eVVR[UZ`R_ZWW[TX\]]YV\^\\W]ZSPZZ[OZS^TSUb^MYYVV\X\Z^YT\ba_U_X[WYQWWWQdbU`SX^`X]^XYSZZQUOY`[\i^^MZ\^`NTVU[V[\V]``OVRURUX`bWYSSY^^U\WSdXOQY\^[Q][\UYZ\SV^_RTTXSZRY\ZZYTRX]W\aZVZPY]R\SW[U]\[R_Y^`TQ^[Z^R]`VUf^XUgUYg^PVXXa]OZXVYbbWYWU^V`WTT^VZ^UU\UaYdRaQ\U^[R\`[V_W[UZ\TX]VZV]\W\_[[QZ^]ZWTZ_]U]caW\aWTTRU\XSTVYNURUXX[^f^]UZ^[X[UPYYYX^X[V^ZXcRUZeW[[S^TSbaWZV\YWXTWZ\ZR\_S^QdSUS^baXZ]dYbZYYTTY[aZVT]^WQYUaXY]TNjb]_\SYVSmVc^ZYXb\RZXdW_\bYY\RX\XUXTY_[]ZZ[]_WXV[akdfRV_RZScaVWXVSUT]ZP[UX\WPaVZ][^[]XfY[XZT[eUZa^e[gZXS^VUSSTWbTdVY][VRY`XbYYSY]YgRS[bYU]][YYZNV\_RT[VNRPX]ZbYW]Q_Z_WZgPUdYWUXX[_PVVRWXSS\WbZ_MfQ\X\VZXbZVZY_T][VXW]VaY[We^YSYO[a`ZWQTbU\]UXaYU_`UU_U`XUYTZc^\\YWWcVWP^WTS^[YVZZXXW]XQS[S_SWXaWbSY[V[b[[]USOW^[VP]]_]`[WWZ[\QbaYW]bWQb_W^YXPWo_RaVb[WTYYWWRWWRXYU]YVYKWV]S]\g\QT[VY]\RgVY^SY`[VfXYaKbRTXRaY\QV_^YWV[TdM\N\QR\UXUSZ[i[XZZZSZXUZWSU^XX^XVY^\_X_SVT[]`QWUY^\UaYWZ^[cS^^h]XYWSSc]R][T]X^cVUW][VXjZRb\TTX]RW``]X[^Vdj`Zb^`Y[ZX\a[gYX[hVVS[`^Y^S[VVeXXRPP[`Y[^VYZ[VZXURZYW\Y]UV[\YYX]XYZkS]d\S[VYT[^Y]Zh``XW^YY[XXT`X[UX^^\b]^ZYUNYTi\RZPU^ZV]Zab[U_TVX^ZTWYXXcXOW[XQfZY`dWVOXSZXYYI[SQ]aTW]PQW]W[XYZQ[VVZ[QRYX[dXZb]a\VWV\ZVbUXYPSWUW`P\S[R[a\e^]_SV]cXZWVVWVU\^\^b[SY_PT\\ZVfYY^T]YU^a]Wg`bXe`TZVYZZX[Z\VaOZUY_SMXT_Yb^TWWVVWV_[SV\ZgZUXSV]TVXX]QU^VU\^^]`^d]b`UT\TYPXYZO\XTZXSUYU`lo[WYU^UhRfTP\]P\SVK[f^[U]UWOS_^WLV_YUg\^S[[TW\\SSfUUUUPXUP``WU_[j\OY]Ye\]gLRRTUY[V[VX]^K\RU[YXZSbTWgZ`c^[M^KXY\UTYXVeW^VZcS]UUW]SYX^RZhYQVfS]_UaacZYWd^YddUOX\R^[Y`W\TXOTUXT]VPUYMS]^X\^\ZfaUX[^[_XX`YT^\UXSW]W[YVUSP[Tc]X[S[ZXX]bb`Z]dYQ[YVWWb[[_f\YWX_YTXX_WR_WYa]S^Z\\XWYZ]YXTRZd_RNYOY[RYYZO\\[Yb[ZT`XV_aXRUY^SRRYYR]T^VURKZYR\V]aZS_Y[XW\P\`U_[ZXWVeX_f__US^\TW`W^ZPS]W\U_ZU]WX\`a[^Y_RP\ZgVXUVUb[VbYeXZWZYZ[]P\cNVac_VQZUY^`a`T\b^SQ[^`\WUY^Z]Y]Pd[_W[]XaWT^_WS\ZZ_XRS\ZT\UUQ^T[W\d][\^b\ZYTcZ\O\W_ZUVZ^U\XSZX^ScbaTZ\`fVcVVYcahYWaT]Uc\X\b\bYY_]VSTSOVc^WPWXZ]XWba`WRY]QVSZi\bY_TY`aZXXWQX\a\[Zb\YXWZSQXW_SYUYXT[V[[WW`U[`[[QT[TRZPTfWW\ZY[WXW^^\]W]XQ^\`TOY_deZZ[YT]R_XTYRVXT[^[XUaWYY[U[SYQ[\eXRWZ__Z\X]\cZ`cc[n]^OUZZ^_PX`ZXSWY]W\\ZU][J[]a\UWRT\T`]W\_RW[VZOYZYWY]dZXW^U]]Y[YR]^RVa\X\ZV\X[US[XTX\\`^ZdZRW]WYcXP[RYWYS]Y\gNcaUTUiaOcW^YXYaSXZURZ_OWSVY\[S[^T\[WLeSVVTVT`YV[[\T^VY\U`[XVY[W_RZOZT_OX\SWbeWXWPeVT]\a^X_OYYVQX[[\UeUVX\QOXdgbYZY\ZY\VVebPW[WRTVYX[WXQV^XYc]]Z[W[cW]U\`[Y_Y]\YeWTi[aQRb`SdVRgQ\b[_Z[^WT]RZeYYh[`UZ\_]VX]WTVZYaT\VWdTVRaV]fT\NgW]bY]RU^_\ZTXMO\md[RYVX`YVTSWVUXV[XS\nR^^T[YVU^h[X[UTWYZZVaTZ_Y]U^WaVBZVXS]WV\\VZ_XV[VRV\R\ZZ[]V`ZY]XVWZX_ZS[\eVZ\WZ]VWac]Y\Z[kaUd_dWSVXdQO\PZYTZ`R\O[Te]bUTcWm_b\YcXdT^^YS\XS[QMZXWVU]]]YN[ZQ]a]ZOcU]UZ[SXUZb`ZZ]]WYU^XLZX^WQbTR]VZa]aY`ZXVc]_\PQ_b\]^_\\e[^fWUMYXWc^SVdT``[hYXX\S[XTZT[RXTQ]bT^RYT_TZ`bZZRU^aYNRVW_e\W\_V\Z[_ZURWe[]`U[QYV\\VbYZYPUXR[\[YOUX\VZY\_ga\\S]W\VTTV^XZ^T^^Z_\]]US_SOT\aLZOYRPSZW_^ZOXUTZZ^Z`\_VRY``\UcTcXU_Y[UdMZ][XZVRb]YYL_XXR``Y\]YZUcWUYXT^PWUXWZ\Y_SQaVRRX^SWXXY[[[_TX]VW_XY^VYQV^b^[OXZYQ]\VTX^`d[[]^R[a\_V]\YUV][Z_XUU\WVZ[RN]ZW]ga\VbZcUX]OcVV[YYX`Xf\RU_T]`\^]TXXT^Y\OX_U\YU_\U]T`a][POVN\[]X[T`TWbZZSbV^QZWZ\VY[^QV`aYgUcTQWZRV\Q]X^Z\\SaZX]Ud[gO[\d_Y[`\Q_cX\[Ya^YdWZ]N^ZeT\XR]\PN[UTaOUSTVYX^]YiTVY`Z]^XcZUYV[WgO[MV_TY^Z[VUW_`g[O^V^aT`U[VRWXMbYQ]V^c]Z[R[b][RNZUVcWW^]]VbaRY[c^VXP\ZWW_X^\W_TUbWQg_`\\WVWW]_MSTV_pXZY\W]`WY\O\Um]_aYUcUR[TWWY^UV_Tc]O\hSYUMXZR[eZWZZHSYUa`TXcPbWZ^[\a[T\TSPc[WVQYUUMVZTO`P\c[S\\WSY\o`[^W_VLfcUacZ]WXSaUY_b_gUVW]LSWRXX\bYW`[ORSR_U_W`X[UVQ[YSQYUXdTUYd\RW]hoN_\TVYR[WW_Qc_[d`USV\TYTQTUYkZR`c^LZeYWZRRXYZ_[WUT]dVVRGWfW\SXRKUajWX[OYY\QRWd[UXf]TXbQT^QVN[X\WUTfdZY[ZUV\T_\\PZWYWVYP[V[^]MeV[WWZa]X[VTXQ][X^WZ[`VUWUT\]XX[gT^\h\VZ_c\^^YYW^ZRYOXb\[`]ZS_[\TTX]aS_c^ZcRUYYVV\`TS[UR\QVaSXXZY^QY[S`Z_YUZ[\bZ[]VXVWXRX`VYWSZe\STX\VcPWXZNWVR^V\VVU`ZY^U]\XR[UTYXZh[\\SheXY^[P[TV_[[XU\XUVR^iYZa^WUWYcaRVU\\WUa]XX\SZ\d_\P_YTUXVQVc\]Ze`[^S\ZZ_SVYS[Z_TP\WeZU]YWjQUXXTXW[bTU_`WXXiUVUZQ^Z_WTY[XVYZW\ZVVYUZVWTXRTV[TYYS\XP^Z[V^Ua\YY\TSSYVb^aMUb]T`[NZX^]Q\RY\QWZWW[\ObR\VZXUUX\Y_R[TZVY^RPPXZTX\`VV_YZZSbVWU_cW\^[[TaTVQTe``VlURX[ZXWUY[`_UQ_hg_V`SY[fT^TS^SVZfVVUX\\Y]^XbX[\Y_ZSW[[Z_SS`UXUZXb\_[W[]_XZYTWT\OY`]_VSUZcVU[XQY]WXW[R\_Z^]Y_]\[Z[YPRUTVfU\]]__TRZWY]VZ^[UX`]Z[\]\VY_[P^UZ[cVW]TYZ\YZVZ[\ZWVZ`_PXXUWZVVSd[X_U^TUnXd]VaZXXWZW\QZRXOeWYX\\RV\[Ma_ZUTQX\ZUbRRVYZW]^W[YVXZaLT^WR]\VXTcZW`[YcU\WR\]][YYgWYT\WT[VYTVT^S]VRYSQUbWh_]YYVZ]aZ\UYTUXYjU[[T^`\[ZROXZW_][_Z[cdT\XU_O]VOTUXZMWKPYfW[[g_XZ\SVLSb]\^V]YZPYVgSZ[XW[OVYX[ZWSY_XVaaW][XU[T`Yb[W]]`WVbM\WRR\VXV^]VXYU\SSdQ_ST^]WUUbRXaVV\WX\WV^Ra\]RXMZ]`YfTWfP][eSTRR\ZdVM^VYW^]WRS_\fSRZ[WXY``VUfbUifZ]WVZZ]aYZM\Z[SX\XW]U^T_ZXWWWMVXUX^\`[T\XNZUXZ]a^WRY\MZVZV^[YWV[R\SOWP\XeT[[Z\UZjYU`QR]X]_dXWa`_aZVXSSXV]aTLTW]aOTSUWYZX]aZ[^U_[Y^^]^Q^_Z]^XZXdUXRVf[`WW]bXd]TM\\YWW`Q[ZR[U_^YU^\SgZKTM]QSbWUT\VUbVZUURXYXY`SXQ]bOX[eUY[^QYZ[\`UZ`\ZU\c\\YYYT[WUW[[QY^[ZWXVY[W\R`SWQ]U^ZW^PZTWRRaY[O]ReX^WSY]\RZUQXZc`QXTVSZZZU\RI_`TbSfXa_fWWW]`ZdPU_X`N]TZRVdXPXPaWT]_\Y\WZO^eS`Z\U[S[]XW\X]U]XNO`TRY\Of^[YQW]TUW_[WWZYRReWV^X\_UPfW^[[W^WVfVY]`e]kVXXX[YWXVTdRaZbWXYQ\]^_WX]dXkQT\TX]\ZY^ZTVVQNPQ^]Y_\WYW[^[\UV[_PQaVSZXe[]SU[^aVR\SXZSTZ`TWWUVSUVZV[V`YU_cZTWnX\]YWXVb]f_XYRR[\P\STP`hTaVaN^U][TUV`XZ_VOSWSXOTYQXWZ[UWXY`[__[hqb[U[Wd\]\S\VYZYRP_S\YZY^VYha`m^SP^ZhUV\`VVVXfUWZRY[bWZUZUXXWX\]Y_\Y[ZNV]`T\Q\\bV]XYdYQU_YWS\X\TX\[U]gXV^bQ_bUX^\[bS_\OWY]W[VXZY]ZaRVW]\[[T`ZOUZ^]UU`ja]_WVZUTNRVZZh^XV]cVW]WYRXXUTUeQ\YXWdTXa`TcV[a`ZWX[SaVXYV_ZXX_\]Y[XRM\_ZTXWZXcWXSaO[Q[PbYS[VZaUNPX[\WNY_bYWWXQXW`Y\abfXajVYU[]YX\YTcTXcXgc[\Z]cQ^XY`VWYR[X`U[\\\RTTSaYfY^[XW[S^XWYYbYUXUTZ_Y[ZU\[\e[U\`YWQ[XYU_]\]zhcZ\X`_O]eZR[WSX`Ya[XW`ZcScRVUT[WXQbYQYYWb\^SSWUXY]\hRUSY\SYeVZTVvOPXOU_]SUZZS`fSXT[Md]QW\UOUUYZZX_V\TQTR_Ya[WTT[[ZSWVW]ZZ^\TeXUba\YSbO[`bX[VZUZXiaTZ_VZRYVfWV\[aYf]_cTPY]]N[`XSbZ`Tg_X^ZY[\X]XTYNUQ\XS^\h]PVY[_\W_f\W`QZL[VZYO[S\\\OWTSVZ\XT_`SWTV[WRVXY^\\WXlZUQ_]^VTaUaXTY_W`bWVY]X^Y_`aS`\Y[^U`]VY[TbVQ]Z`WU\e_UVQ`^RX^Q]c]UT^W\\TOg\aR``YUXYcp\\VUcXWT^caTUVZ`WVORdT\UZYY]`WXTPMN_cXUW_\]XSOURV]P^`TiTXX[[[`b^XQdbZ\c[YiNSOZYY^VYW\UaeTXSQ^X\db`XhU`_SS[XX^ZedQOc[]VUUVZU\djcWZU\UVYaRWWUbSaTXVVXX[WSTZaTdWX\Zc_U]^V]XVNaNSYTWW`Ya`V[_Y\dZRXT`XZ^WZSkV\Tac^US`T_VN]^NYZZ[PWaXVXTUbbNORaUUSdSTR`UQVaP\Oa`\R[^TYibSR_`RgLYRXVVWQZhOOU[c\_SZR^WcRX`_eT^]^UWRa^[SY]TTfYT[WWY_VYbSSVUanX[^\d\__WYT]QWZ\NbaXWWOX[aSZ^YUYZZ^XWWXKeXXWVVTX[Z`]\XYe_UV\]\baYY[Y^c[TaTWUPX]\h_d[KcScWSY\U\QX]\US]YX\fXRRS]S`[[\_Zb\\TX[RZZXPc_TZMW]d\aYaRjZU\dZ\QV^g[UY]T\\RS[YZZUVSQXWZV]Z\[baYe\]XNX[SRW^TShX`Y]cX`[YZY[SWZTVW]URSKb]]V_Rb`OW__Y_QY[Y\Xb^_[Y_T_]Q`W\WScWWkXcSS\WZYW]P_VXSaXZe]PYX`\RWT\UQRXZQ[U_\VRZS]X]T\XfZZX\VS_WaX_^^^a\_ffY^WZeVX]SVWQVaZN]Z`\W]cbYRScXYcXTWX\aZW_gWRaSW\\^TVWXXYT`M\Xc\T]UY[ZQZ\SWXVVTfZaWS\[]SU][[SaZZ[YXV\dZXfZUXST\P]YUXT^RVSY^XX^_Yb]]S_^ZVT]VUeWSU]^S`Xfc\ScSg\XYMVVW[ZMV]O[\_RO\[ZMRZ\YWWY]bcVbWaY[Z^SW]J[XTSlS_^WV_VXV`ZT[[VYXKjYNV_UZbXW^QcU`R_YZ\iaLU]i_Z\\WTd\W`[VT\UN]bfZ\TTYUXaZWbZZW`[`XM^FV^ZU\^U`XX]]\TQM\h_^MVOQ]Xe\b\]YXUVTId_XWY\SV]RT]]d[Z`c]\UXa\`\QT^QXY\W^\a[LR[T[^S^YXW[_NbZ`][Q\YZX[PRSXYUXT_]`^OcVOTYVWU\Z[XWe]R\VWST^ZYVY`NS\V_Uj`^Z\[R[]k^[f_g\Wc[bYVLZaY\fX]abSN`[RQTSW]SSOaZPWO_\R_[XUYSTUUTQLTZcUZVYXT`^_TSSSb]Z_\KYUaQbZ^`aScS^UV[\Z^\]_PgZX[VXPWPW`SSWO_R]YYZ\T`N`UZ`dg\Y`YTYZ_]qUZ_ZRRhXXT\XW_ZUYRZXT_aX^S]cVRVXTSJUQVT[\TYZWWXW[hZYWTfP^\[^ZY\_ZZdZUaadZX[c[VVTZa_SZ]TTX`YcVlYRY_YSMWRPPZ\Z[_RVWW]UVRS^UPa`TX]]W^_a\[UT[S`VXYYZPZIS_VWZ\c\dT[VWYV^[R]RWY\VZU_YaUWZZc]T`V^VSl\V[^bY]^VTX^eXTXW[P[W]W]WVYM\W[TSZXYUXYYUXVXUS]Q\`[[UYUaY[ZXPVQcZ\UeURX]S\TXXUeWY][\W\LOUX\XUU]aZZZX^XbTU_[gWP]XPTVTf\XXORT_a``[^XZVWWWYbXcWYeY[WWUcWV[YW]USUY`_TY]VSZZVU][YUWYc[][RSZX^ZSTYX\Y[U\ZSZ[UdU]d[[ae_ZW]dWY]YY[VU``]X\UaVWXV^YU_`Yi_^dR[SYQ\PRVZV]T^^^XdST][[Vg\YZUW[Z^RM[WYXR\_[[QWSTSVXVV\YaQVWYV\XbcV\Y^^^R`aX]QXVaX]SXXWaYVY[W__XZWdVe]X\Xc]UX]^VXQYUZ\\Sb[[S[X]PWZ\ZZS`Tf]SXYdZ]UZTY`TXW_Z\_V^SSSXX_ZY_e]]`TPTd\RUVU[_^VTQNXQXQ]aXQaUSUZ[U]`Z]PaOW`_T]e`\YP[`WYV\^TWX]YX^VXSS[]VVWT^[QXSVP_cOR_W_TWTYRPRgcU[WbZ[SXT\WY[bYWT\[UXZ\]URdWZTWaK`UV]_a`[_WW[a[`[YZXSUZVdPVUV\[[cZWT[[_W_\[[]d\XP\TS`TUc[\VUW\WWXZa[PYRY\Y_SlfY]ZUWUUU^UVOU]TS]ZX_Z][b^^VYZYX\a^ZPVUYZ`Q\cSU]`aSZYXWW[]eTi^O_R^P^a][VX[X^SgVWac_ad`N`WYVWQWcY\[\Z\RXXYZZWmYVX\\[TTRg_^UPX\WWRnZTT]WhZZ`WZZ^TWR`\\RVU^^acZ]Y^XYZWST]_S^[_TVaZM[V]XWa\XR[WYaS\Y^_YUT\[VY_[UWZYUUZ][S\[XVXWSXTe`_Y^S_VX\\Wb\XVVU`Wj\[W[\UUWS_d\[TSV]YQVU^i\UXOXV^YdYQVVcWVU_cbZZ\WY]YVX`SW__WO`\ZZ[_T[^TX`YaWU[P[R_WW]Ma^UXPZW[R\X]Y\[ZSi_d\XSUYc`W[Z^`X\TbXWWeYZVU`WWWR`W^]\SZYaZ^[UXcN]`dYU_RZ`ZQX[SZTYVYb^Y_[Y^U\POYTUNW\\SaWWZT`Y^Sb\[VV\U[]ZcXYYYZSUVX\\WbURcWVWVa[ZpWT^YWRY]_cdYYUNSZ\Y[ZRUU`U]^][ZX]UXW^aUWTibV^WQ][\TbWZR[WY[SS\X\V_[PV[XUXWWb\Y``]_VZUV\UdTcXOYX`bWYaZ^]SVXW[XXSTXTPTTYXVWRaSO]UVMYY[XYYVTSTZW_^\W[ZYOVTXXP]Q^\Z`b`^[ZXc[ZUX\UWYYO^Z]WYYUZZj^WZRWWYXeWVaYT]XS^XXSX]TYXW]_bQOP[\T^QVXU^g_bWaT_][YaUUb_VYSU^cZb]aUQN[SY\VX[^TZSS`VTRYTSYV\TVXQV]dKXfN]XR[X\]\W[YWVQcYZUN]ZeY]T`UY_[SY^V\SaZ\]T[V^VTX][ZXXUYSRWKPc[ZbUR_]X[^OY\QUXTc`SV\X\^_ZSUX]UPPTU[P_SVTUXQXYWW^HUW_OWNVO]l_PU^TbaYV_TZST]T\Y[[ZXTUWX^]]R]`TZQ^QVUWX[SS^k^WS]V^SV_SXL\WU^YXV_^\\V\^TQ[TVWeV]^PUVXWPcZQY]^SbTZW[[VW_XYVZQc\QV\aXY[PWTSR[STaWV`OUW[ZY]UZZZ^Y\b\_ZUYcRVYYWUdWd]UZ`Z[][TY\\[VYM\RON_Z`[^UZRY_]WY^Wc`_aUYXYTRXTQXY]SYYTVPYYWUUe[bZPfW]]TT[VZV^W[VYXVKYXR\QX^Ud\XXPV`\TjPc]USR_]_SNahSWjdbVZRWUPbeSUaVVbbVWPVU[PVY_U\]^]ZXThW]X]YYYXXV`[_]iNWXU]Z^YXVXaW^VTYTW][[WOQ\VVXN\]MbX_V^UcWWdW\^[S]TV[V\\a[NbY^Y^Y[XNTSY[Y_ZcZVZ]d\WVb]V`X[YR[SSO^R`ZV[V`YbRZVfTd`[X_V[]ad^STVWU]U_UV^[[T\]VSXV]Wc]VVeW^\\MVX^[`QYVVU_T\QQZT[VY\^Ue_WYU^U][T_Y[^dXcVXUXVZdhURYTZXZbRWV[XYXTQHTXS^XR_aY][R]RYYY[VYW^]YYU\_RY`ZY[W_]ZZTa`VXS[RaZV\WUYa]\c\O[YiZT_[YXWSXQYYbNLa__XR\VY[aaWZY^]RZ\Wb\W[Q^_YX^YUSTVVWbUUm_X`gi`UQXbZQ\Z_\S_TVg\]UXaXPP_`Y`Y]S^aZ_\YRf[dU^Wgd`\]X_ZdUSZXT\SUT\\Y[O`XZPX[YYZW][ZaWRX[SUV[UVYZ[UVZb]NUUaWVRZ^[NSVW`S_\YV]WaX]`l]RbQZW`UOYXWV^YVNcZgUZVTcXVZP[QWd\]YUV_RX[W_[ZbZOQ]U]bXVMW[WWQ_WUVSXY[[OVY^fYT\_XeTXWVW[WRgV`O\O_\V\]X\iX[[[ZXVdVWXXWSW_Q[aQU^^[PSdXUdWd[[^YXXQ]TZ\RX^\RiW]\bNjJRV[_`Y_T[VUbWRVXRPYXZXZUP\WLXaV[\[Z[RfXVQ`TV\Y\RYfUaZYYVYW__VSU_gS^Y\T^Tf]XVaZYTZQ[[bYZ^R[ZYW[\VeXVZYWRZ`eTV`c\X^S_]ZX\WXVV]YU^\]UXZWR[_RTTVVWWaSPTYUaR\S[V\YVVZ_]][\aVYZVYbSTTQ_W[Y^[TZNVU^`RWZSROb]SNXTN`USZR`_T[cSZZ[hUWYX]WV]Q_\_TT_V]VWkXVY_^]TYY][cUc^c[\[_XKaZW\[UX^QbXWUPZ][_SUV]ZbYP_P\]fYb\W\VVX[UX^WjXW\dWYYUUWZ^X`PO\ZXVWVQU_X[TZV_^ZXYSYVVXZ\dXYR\[XXY_RS__[^YU_WUWQW]MaZVaYZ[UaTYXbX\bZSZ]aYUW]XbQWmc]fTQ`_[PU`\]YS\QbZX_bRj[X`W^U\ZZ^WaSgJYXWX[WbX\Z]Y]eZQUW\ZW][YRZX[S\S]PVWUbUVTY[T\ZZa[WSW]VVU]VWYSZZWXWXY_^]^Wc_U^X[]SgMTSSWUUbS[QY]XZX_UWXYVX^bPZR]_caWYNYYXR_Y]]b[XbXX]V`XV\U[]YYY^ZV\\VZZ`Y[c]aX]XcYUY^SVc\]_[RZZV^_ZX]WYY`aYgaTW[S^UR__^__W_^W^]\XWX^gS\X`daXSV_]Ta[bTYTWY\_UY\X[WTcY_dR`_^P]RZ[\^PPYTUY\cb\ZSUXSXWbXW`XV_T[S]^^VS\`YTYgQY\V_ZVbSWTVXXX[aYTZUTdYZYQbZ^_TWYVYV_UVZXgY]X`YdQ]WYYYTUWWX^^S\[_TXS\VY[`WP[UY]R_\X[b^`YRVaVdURWZdSYc_RWb[]WUXZ\QWXWYgbYX[YZdZQYUSQ]_YY_Y^Va_ZSeY\RTRYS^QZaYTYWaVPQNXYTTcR^TXRQTXAWYb]]XZNYVYS_ZN^[W[aaU\RXXUZ``]P[VOOaSXSU^RgX\\WOTR\]SSaUR[]cPZTTT]f]R`[_[aN\VX]YZSU`b[OkTX_XXf\\gR^UTXdZ\TjV]`^V^UaaX\d\ZeeW\]cMcWWhZ]WVUba]aNY[\XZ_ZZYZX]_PbZUYWcWfYVYQZZ\]Y^X`OWUaUTX^SW][^XZWaT_WY]X`]PZW[R[XWWWM]a]Y^UZX`P[a[\[ZZ\RZRWcXX]]eVT^[SZS`^cQPXT_UXSWZSYZX^W^PXQa\]aUa`XRYUXc^V[_XV^XXXZ`Y_UXgY\YZ_[XSXdU[[SUW[]MXa]T`_[aZWZQ\a]f^ie]W\ZU^TXbRc[PUcaVeXbU_hS`SUY^NUXYbOXZa\VVYXX`^RZ[_OV[_VWWUVbU]TVWXYYSYWe[X^OYU]^T^_^af_X_^_UX[cS`WdVUW]T[`^SehQ\[TZXWT[[Q\ZUZU`^[^WYXaNY`^V_gU\cV^bZZ[VR_RX\URURVRV]\XT_W][Z^aW\S\VX\XY^XYXZ_Y]lUX\VYZTOh`TWVR]OU]g_\PZI^VVUNQPUPZXZUi\diRX[_WXRSdGW\WTRXVSbYSXW[W^^aT_TMTTXV[MT\_fVU^PX[WV^Z[OZaZRSa[UVUXW]UaZ\WX_RW`WeTUS]XVfWNc]Q]YYWRTSdga]SYcOY]UYSSPTUZYUVWWT_Q_YXW\`XQ[Of^U\V]RbTbXeXX\ROTVOWX_O_RUVZZXNSdVWT[VR]WZZV^Y^]\Yi_\\iXWW[fUVY`[YOe^TY[TP\XW^^V^U^ZYYXXV]Q]UfTaUYU\VN\`iY]PZQa`WRYa[X`]Y`[\XVW]PT]a`\TY\Y^XVP_\XbaX]TWWRYX^X]WTTa[RT\\]c^X^]_W[R\S^YaXVU[TXY\U]gUU^RTWU[XW`XS]ZZWZ\Y\_^UW^ZOTM`lZYbVTQ[\WWa^QW\aSZdU`VTV\aV[Z`RdXQ{NXYWVVW_W[\a]\PW[]Xe]TYX\S]eZ]Y\YbXQ_\Xa[]PY[ScX^^]`YYaV[X`\TQY^YXeaPS^SPZY]dZ]m_PV\_ZSYZ__[KK`RcTW][[RRRVWePRZe]aR]QaUXa[S`WWjVWdZQP\^c\X^S^N_R^\cU_]WRX[XZ`_QXUY^WaVWb\YPKSXRYdZQW_NYZZ]\UO^XTTV\TYYSQTPZYXbXWR[XQ_VS_eV\Z[^fbZU_]c]bYWO^QeZdUWR[ZZYVQ\^W[cW`[\\VZUWWWYWWXTWY[]\WYX^VW]WX\O\V_\RaN\[SMUZ]UUU^S\WZY[NaPZYSXS]PcY]W\Q]aa[Z^Tq_OVc]UOX^Z]VW\_RV\]ZX[ZZ_SQY^LNbcT_]\TW[^WQ\fYSeOWWKWUeYXVkVVNMU]^VWjOZXVYb`T^^e][XXdZ[WWf\W[]a[YdVTTPW]Ya\XV]ZVfTS[Z[VZNS\[UY`^S_X]Z\]gXZXYR\^a_R\RZVUXVOQTSZWTTZWZW\gY^[XWVS\SR_YfZ^WR\RV^VRcUg]ZTSUZ`UW^[\Q[XY]WZX`^XVS\]W[TY\Y[XYTTP^WaNUZUVWYV[YUPY]YYSZ^X\Yc]X_UVY\V]XYT^[X_]ZWV^WZ\]^fYWXVZUXV]\`W_VXPXXZXZYbYV]QSM\e``ZYWV^`US_T\^YYX_jZW]\[TUXXVUS[U[XYX^\Y^URTWUZdOPSTV\ZgVR\TYZYYYPV[[VbS]ZXV``YSSN]U`\WYU[b^WbZUVYU^_V_d[S^XPQSVZZXVU_TS]Wc][O[eS\WTTc]_YVZYXV[VX`\\TX^WUX\OX``[SWUYYYW\ZdW[RYUTS[cVYi\TUU^]W^deXXSdYQhZ]XRX^RTZUg\WVM\W[Ze\YZWUTaW__Wdg[\[MdPW[]VQVW[_QVYbZYWWS[WU`WZRRWVZVaXSZ`T][RX^]_KVQ\`\SUZdWZWSTUYXV\SXUT^Z_T[dVTZ]dWcW[VT_]SUk]W_^TZX\Y\X`UZ\Pk[ZQUe[TVWWcW[\]Zab]YXSUbXf[^UXT[T[fXTW]T`Y_\U]]WZV\^_SZWW_d[R\Z^`XZYXUXa`Q_Z^Y\XX\aWY[W\YMS\W[[^bS_SUZcgYUZZV^P^^[[]YZVU\Y[\Xb]OTXVbX[^NqOYa^ZaVbT]ZWZZYj]Ve_dX^TYRU^UU]UZUQ]^WYTYfUWRZ`a^WZT[]TUaZjVYY]T[WPd^XXXWZY`c_\S\S]^SV\_dZTYX[PVO_R\Y[]W^\g\[aY[P[\XSTZ[[VU`VZZ[dPVS]`VXX^O\U\RYW]\\WX[`WiXX]\ZZZUPgSZQ\Z^WX^XV]Y]\`[Y\af[\QV^XUZYWTU[Qg`_\U]_VUYXSV_Ya`Y\X\R^^YVQ^^ZWRWVS\[__WaYXR\WW^_]X[[_aWXYVXS[U]R[TZVVUXYdc^[YXXZOQ[[`^ZXZWXafXUTR]aWXZZd_\fV^VXaZW[Y`VdYY^\^OW^WU[WTZ]_Z\Y`]][]^YS[WW^UccgTU[]YV\`YbX[`Z[S]]X^W[TVRWSWZZg]S_PTZWM][\\_]\\XZVl]aVSTVZ[]YWYUdTXa^W[_^\\WaWUVXVU`XY]T\Vc[SWWTWVW]\j[RbW\`^]\VTW^dZ_\_ZZ^b`VVW\VV`RWVRWVQ]WWaYbaXQVY[XaiYUWUX]XYWTURV[ZW\S[VNWWYf\OcY_`X]RWUXYcZ^PYdWT\a]V]gW]VTT^XWbV\XUT]XX^QS]XQ]\aV[^RdWWdTS^_[c^\VWTYWYT[WZXfbV]ZXX\X[VXY`j`aWacV[dYa]SRS`ST\\bXQTTMVY]XXV^VXW`_UWWaW\^P_WdWNUYZMZaVZb^[WgSVOPT\Y^X]VWV^QYeZ[QQXYcQ`VYQaZ^\[YQU[\[YNUXYRXYY\QWUaYV\T]YUVbXV][W_ZT]ZY^Td\U\ZVReY\TWQ[aVUTXZ\OT``RXkU\TT`ZSXWZVQS`VSQ]ZTSc\S`\\SUWRZWVdW\_[`a[YUV__VP\]^Z_V_UTdUZURRd]WPfRcbaQTTTV_]`[XWZU\X^_V]Z`YX`\[SV]]cY`TaZ]ZWTZ\Y\[OTYRX]YZ[X[R[XYXXf]S\OP[VTT`_\T]\QW^\]h`[RYWTV`VRYR[\OXO`^S_S^U]U[ZSXX`[eSQW[\SeXTT[_ZY^PVaVRTYY\[][Y\N^Uc_W[hY^XaVO]OfXYXP\hYZ]R`caXUY`ZXWV_dR_R]\SS[]ZY\WPjURdW_Y`a\ZVTcPZOcaTW\bYcXVY\^YTU^SY][[KNOPYaXNbZS[[SZg]Vb[MT^RWQTedXbdVYch^[aZTbZd^VUVa]_^fWZ_VXQU]ccXUX^TVRVN^W\`^Y\VgVVZ`YV`VWVYT[WOc[TWdcYRLXb[]ZW][ZJ[VX[UZ^l^VTXX\[VZXXVXZT[WV[YV^U]]XTWVVS[WVLXVR[W^TYXTM_a\RYaYZcRTUV_ZVbWXZWRX[]YWOWg^ZQR^Q\SR_\T]TQX[`[`XX\[\ZYVbXVZ[_`Ye[NP`_VcYOQWY`[Y[^]\XQVWbS]ZS_]PUWZc]]UY[]XUXYQWV[c`\TRYVWY]aU[PVTfW]W\XgTQUZT_[VWYVT][m`T`WTXXRVXWWSW_fVOWdQTVW\\RYYTX[YZb][VU][Z_Y[\O]Z]XU`WRR_jOTWXWY[SZVSUb]X[TZaX`cSYX^YcZObSUW^PTTNRVb\[hYVZ`XhZYW[TXSYa`WZZV\_[\XZX\WYSaRUTdVYZ`UUVYUcPhX^hTX_U[SYX[RU\RZVY`]YOUW`VZWf_aXVXXaWTVPV[aSY]cR[X\S_^ZZ]]YW]WXQ]YVRaUVX^ZXR[_^a[]eTSWUYQZXYZ]_W\WVW]U[\cQ^\V[ZSQUZ]RacXY\WZ[[X`ZV[^^VY[\[YVV\WV^X\X\Y_SY^QVce_WX_X[ZZaaZYZ_WZJ\S[YSlZ^T[YVU_^T``XT^[O\cWZQTV]b^R]W[Qd]W_Y\\XaY]X]WMTVdZ[TPXO[YZ[SXYX[S]YQ`TYWc]X]^^^SaZ[j^dWXV[P_TcZWRWZYZcUSc_VX]hW[WU^VTTYXWXYWWS[T\TV`a]^Y]VYOZZ\bXSY_ZY[ON[VV][T`_T^[VZ[P][XRdU[QZXd[\X\\_\\[Y`]ZXd\]XUX_dXWcUSZX]NUZVkYT^Y\[gO^`Vg\\\V[U^gWVM]^P^cV]TSV^ZTZWc][YQKMYYUe[eS_UZMVVQ__[T\bRX[XiYQV^XTTZTVQX\W][XYX\Se[TNUVVdQ]kQ[]QT\ST[YXZZUUbXWZ]g\UVbPUWZZX_UWZYYQX^YU[W][VVX\R^SXXU^[T[Z[ZdX^a^b[bTVafW[]YWVaYZWTUYW\VZVfUZVTWIa[ZXX[XZ]XMUWX]cWR\YZd[QRVW\a\h]T^]NV_ZRVQXeUKRYTSaa\TW[UbU^U[`UX_ZVaX_YW]QR^]bZ]_NW\Y^[UT[ZkSSWcV]a[WMXTS\ib\ee[YPbL]ZWWS\]aU\WRX`YN[^^ZTPUXRX]]`Y[]UVcT[dUZRO`\`\_T\S[WWcRQWW\^bS\eWYWSSLUOSZQXUY]dXhWY\V]We]XT][U^XcZSaY\^\U^[]VWV\TfVU`[[XUNRSWV]Z`VYSZ_^bO^SVZWeaZ_`TR\[\]Vh^]TZcTYZ]\Rf`VS^\][WaX`X`[_[WY^VZc[TWS[WV]b\VR^XXWW^b\_WXVbce\UQZ[QTR`VPRSc]`]\SY]ZYS^XW]VY]P[XaW\bV\WX^_NUbQa[\Z`XR^]YYZYbWVPgUJQS_[Q_]V]f_\X[X_WV\TaRbZXa[Y]c_UQWb\L\PXd[P]XXW_^WW]`X\S[UWbaTVYYRT]_iWW^Ve\_W[XS[dYW[WYh_\^ZW\ZWV\U[ZYXZX]W_]^OT^cTY^\UXRWY_e_\YWVU\^PYbMdW[T^S][UbZ\SWYZU[]_\VUX_bZ`Y[_\bY\Z^V\c]WWYUYZ`]Y\XZWYX\\Wj]bU_ea[cXYbZS\Z[U[YlUY^]Y]Z\TS]Z]`XVXWYW\VVZWVX_^Y\[\]_U^dZWXdOV[Y\TZQe]][ZYf_]XYKUZVPXT`]^]]W^W\]X[[YZR[[\cYSW[ba^a[TX[T_W[U_\[ZRZUX[\[W\\V^T_X\\YTS^RZVYWa[R[X]`Q\bd\WUYQWa^WR_`\R\VU]R[eTXNZYZWXXZWS\VU`X]V_^XV]V[TUeSW[]YU]_V[\_V`SbVXdUVcY^SVY[XYYUYRcRWYVWXYRY\UXZ^WW]hV]WWZ\TYZ]SWTUXXW_]_Y]RUQJV[XXV`TX``fRTYYZUZYY^d[`TYXY[`\XTT[Wa^]ZbWXZ^_YW\WV[`^[WKaaGZVTYRUYW[\_Z]SUW]\XSJU[QOW\^Q[ZSb\[]RWN[WUU_PXfWYcdN\WOVYWK^TP^ZUQS`R^Z\TVLQT]YWQWVUX_eaYN\^SZ`^SOeSOT`PTQ`[WZda]ZXPXUSSWZ\[YZVXZ]X`^R_\Y`_Y_ZVa_XX`eU[\SN___XXV]]U^^V[V^[aX[SX[V\U[[RaTWg[VYaWcZ[RaZgYTY]^VZW`UQZZ_Va[XWU_UM\c^]WXV_V]UM[V[VZ[SSbPX`YWWYaYVQUY\_YUc__XY[XYOZVSZRVZP`\b[W\Scc[Z^VZZUWXL[bY[gPb[VZ]PYVZVS_OVZYVXYSV`^_STRWVU\ePa^YZVNPUeRWVV[bUVSOZUXRZWXXWVZUW\T^f]^]\\YUYdYZ[]SXYVWeY\X\XWSb^\U`NSU[[Wb^W]T[M\ZU`WZZ\Z^V\\c^UUV`QZQO_TT]fRTWXOVVRVPVcZZ[Z]R^`UXWe\NTXZXid[\]bb^\SYWZ`R`aXXcXV`UI\W`_\]UcZ_kRU\XUX]\][U[]^SdWYPU[Y`QXZ\T\WZV^SZLUZWhdX_S^TX]N_RYZ_VUZ][VX_]^ZTWW\XVWUOOTV`_[SMZ^\V]^\]XO]cV^SZiQ[VQS\U^MK`b^[]cZa\fSZXZ[Lc_WTLPRU[\ZVTZ^YaT]\^bTWbYaZ`]TSVY[\_UY`_X]_eR]RROS]gYQ]YW][eZUW]X`YZ`PXSbVamYV[`ZZYbYTV]Y_P\ZY^bZ[[WaWNYUdXVeR\VX[X]RbZ`\eXUOaV^[PZ_Xa`^\Y`X[`STTTVmUXZ]VaRQu_]V\UTURUcZ[\SU]USZX\O[PU\_fWVgV`XPU\`\UWZT_X[T[S_YX[[\WQ\]\X\V]]V`^TRWb\^Va]SYYV]YWZU_f[P[YPR^^Y]]`YXX]a]S_aa\UhZW`UhbU^QZXUXW_X[Z[YUVQbZV^l_YWa^TM]TU\STYUVTaYR`XURVXSU]U][SbVUYTeWVYTS[ZP[^ZX^YUZa^^eaQ]W\_bZXY\adKWS[TUbYS]\TXGXZaZa^RT^NV_XRWdYSS_^S\Yd\aUV`YKXI[S\am`]Sf`[^XVSaYXVWU]Y]WTV^R[ZYVaVT_XWbS\ZT\]W][`UVWZRXe\QU_hRbW`ZSU[k]^aWZORYY]OWe`ZW_N[Q`W]TOXmQaXP^YYg`^P`SWXbU\[SXeUX\^^YRg\OTZZbX\]^YQZ^_d[_T\U[MXX_[_W[\WM\[YP]gYbX_V\PX]\_WRX\WL\Rab\^]WfgV\VYXQ^[SZQT]V\OZYZ_^YPOVW\bRPUaZUVMYiPVVWh\ZW_V_WWZZ`XOb_R_dVb[\\\]XWYPTYTcVJXXQR\_V[V\\YYVb_UVPVU[U[Z^d`M^\edaX_U]bRSS[]Y_VSVSWMZKeYWOZWXUa`aZQP^X^QTbZ[]Wd``T^W[TNWPVV\U]TZ`gaYVUUhWVYQWWa\X]Vd[V^GXZR]TUTWSVTQZ\^]RYW_Xc[T[RWZ^[`XZZT\OWZW[RR\SWW]_cNT`X^XYXY`SR[UUVWYYRagYZ[[^Xd]TiYZ^VRX[WY[^UWTV[YS^TVYTacbZ\^V^[VViUWUUZ`X\[[YU]S`c^WRccZY]]iXZ[RUWTXYWYQ][RXPeU]YQT[Y`]\[VZYYVY[X^adVMVTVT^`a_]ZUWaY[bWZVYVX[VVWXY]WYW[XZ\V^^X\UZ_\[ZZX\\YRPOaWV]XT[VX^WXXZfYT[_XXb_a]ZYdSY[_\WXXeWYQVVWSW^W\XSaV\[[Vb^R[U]XU_Z^SSac]e]\\TX^U`\Q^^_\\Y][WQS_U_^PZ[TZ]V_SYdVX_\SWZUY_Z[VUZ^YafcT\WYM]WUd`ZV_W]Y`[UdSV[_^]T[b[[QVOX`YVXa[[S[XYWRbfZ\XZTVTR[[d\WSXXSbVNTZYV[]YSWMXT`_`ZWVaVaZce\aTZXSVWUWUZUV`]\eQa[_eWX[[_^X[ZOQ\`XXZXV]UZZf[UWYTS]XXRWcX\X][ZUY[U]WTaW[WU]\][ZW[Z_]WYYc_T[bV[`[VjTY`O]XYXVXR^ZbaSWRWW\Zb_^ZaZ\\YZ[^\\S_SX]V^gSZRRZYcZNY`\UYbYUWYT\WXQX^\WZ_TY]TTZWW\YdVcU`S\\VcZ^VaVURe]\[Y[`[TT]XWT_[Y\VY^dVXWV[WXX[]ZZU^XSVSbdWT^VW___`VZWQQXT\`ZXbP`TZ]Z[^ZYWh`XUUSRVV\XWV^T_S[SUTXQYVa\\R[aZ[]YRXF]VWQ\\WTXS\Z[PW]N[\TZQV^V[TZ]YXZVcdUX_aWXWUZXV^R[`_UX[WXT]WXeX`W`[Y^Z[Y^[WVYXXXSXVZ`S`Ye^Y\XUg__]]X]\aUV\[[SYjUTTW^XXVZ^VXVX[YV^\\V^[VYWTVPTZ^TSVVP`YWUfO`Y^\g\[]\VX[]aXZYYUYWTYTbV^W[b_VnWN_cYXZ`\X^_Yc[S\Q^ZRXcSXX^[`^WY\V]]\Vd\\]_VYWUaU[]XSXYVbT\T`VU`^`VbTYZRZYW^XU[YV_W[Y`f[V[WY[OUX\aV[^T\UWXWW]]X[V^WXTXN`^Zb]SXW[ZWZ]]YRVZ`SUZ\Z`^TYZU]\RX`WYba]XZXXa[\VY]\\RU]XS\[[^ZT]_ZWZZ[WW]VZ`VaX[XZXZUZYRUYW]RXdTQX[VScZYcXYa^WWfeVS^_Z[W]Z\_aY[YZ\_ORT`W^WZXVUae\ZYYZUW_UbY]`b\[^ST]W\XXUXV[[[VQ_\bXX\aZRa[fUYXZXSTV``VYY[Q\U_VY_QX\[RbQVW`[\W[YZUUZZg\TSYeZY_i\^V]\[YUWTW\U[RXYW]a]ZW]]URZZSk_\[UVVZWSZ]UPY\XaRTXZWaZQVZ_e\^TT^QZWb\c^PZ^NYUXWb^RTV\`R\SYcWXYXTRUTZXW`_QY^^X[[_P]^YcaUOVS`SP^U[V]Z^]^QZWLYTSUOXQ_S\XUN^\TYWRfR^QTUcW`]T_OX\ZPWT[V\^W^_Z[X[TYT_RNVWP^SUZNXOgYRZ`YVYYY[YZa][\U]NYVUX[Xd\`[TZLVgW]VYZaVTXX`bWa\VTU[^ZVcYWR_Sb\VWeYOZ\WSUO\YX[_SUTYZ\kVW[O[Z_X_YTT_[\Q^\XRbW\[]Y^c_[`WT_[eYTdTYQ]U[aXbNSa`ZS`SYNV_^[S]TSZVUS_ZUWd]R\T^]OPTVWW_]^eU[R`M\gW^VbXZOY^ZYSX\OV]WPZY]WNaTN[O`\RXSV]^RXU]ZXS^RW^^\_RUV[TV\RQ][V^^VYY[XU^TYf[fZP]Z]c^YYS_\\YWO`STeQWYgW[\_d_c]OZO[WaaZ\Z]VYP_Y]Q\QU]]d\__VZ_[XYZRaORXYYVYVWVWXeX`\_V\f\^`XM]\beXWaWQX`\YYTX_UX\X]]ZR\Y^YX[[\OVcSSUcWQ]^bg[YXX\YNV^XX\TWL][ZM_M]X\Z^`TWQV\UUYY]dZ`XW`\SUZWaNP_WSU\ZVaTW\aWW]QUYY\M[XY\W[`_T\\OXGVZXgZYZaX_]SR]UW[a^`SQPXT[RVY_ZWTXZXUY\abWcZ\^fX`ZY\Xc`V]V^\[IYkV`Y_^WXTX_S\[cWWXWZa_U^T`\UT`aS\ORV\SaRWZ[^eT_e_S\^ZO_YXXd\T]YXRV_Zc`WU^XU\\\O[X^Z[[YU[]\\V[Z_fTW]^RZYYTXiWUQN`SWSZgYT\[UWOg`XaYW\\ZTQQZTZZOXcVUYO_S\]XVT[ZXY]M\VXTVZSWXXV[QW\XZXTfUcVZZ]WZ^YW_WP[JY`YVZ[NNX^WYZUZbdZT]TTZRY`[\RXVZS[abZ[JT_JXic^YT_TPRiRWY]^VXOYUUb`ZoOTUUa^[_WVYV\`NX`VU[S[dTcZ`WZR_UV`XbNa\V\VWX\WXWfUY_T[bT]`W^U`\`Xc^]VUX`_bX[[Y][VW[^`VU[\P]kTSV]Vb[f\]TUXc`^ZUV_hV\eZXYZdUa_aYU[YX`Z_rW[^\`Z_^9XVSZXbbe[^`YVWaTVZUU[aSVSZ^W`^\^\_W`b]_ZbYVSc\VS^Z`[aYY`_X[Y\aXVbX[Y^Wd^]\]^TX^bS]]daVRW^_ddWZ]^XdYR]X_W]`Z\YRV]a`Q][U[mZTYTb]UU`]SZRTT^Z_Z_]`XU^b\[b`]\`_\`[^Z\^U]a\[RV[X]_[[W[_^l]dV^]Ycc`\\T^]\Z_TaVZc]jYb_fSJ\VXc[a[ZZV`iZY_`XZW\`\`YX[Z[YbZ__]Z_XT[XX^c_X[Y]`]]TYaaYZW[aVX^]\X]_b[Z\SaZ`_[RaZ\[c^ZX[\]_aZ`ZVWVUTWXWX^^WU_[W[`VVY]TcTX]TUSZ\YYRZUQda[WX]_]XVa\XU\]PQ_WYWS\QXVWcTWWSU^]aZZXXYZ_VUc\ZcVYXVbSXa^\Va^YXU[]`WYPTWXbcQYWb^[^V\]TVT[TZS[_UNY\Z^b`XXYSUW^\_T\\al]^XkSVQ[b\TPcT\c_Q]^\XV\Y`\XXUZdd[YS^\XXS[]XVXZ^Ub`V]^SRXX^aXYXScWWXe\UZZ[UXYX^Q[QYVZUT[YU`YV^^TVVRVVP[[YUS]V]^ZcQ\PV\^T]dYZWV]O\U^[YTWZU]^\ZT]\cZQ[cWV]_Y]VWZ^XaPX_TZ[SV_]Z[`[a^b]V[`WZWT\ZW^bW\V_UPSTWUT^_[Q[Y_ZRY``]S^^Y]Y`a]O_L]Y^[Yb^S[YKZTZ PbV`PXWeJOYUaKfS[]^U[XSZY`XK\gY_[X2YRT]XZVTQRZ[TWYZXTb_VYU`UYV\XUWN^YQ^[[RUY\cWWSUMdUWZR_X\[fSWWU`X]W\Zm`^_Y\eTY]_ZZYZ@^V\iWQ[XTXUWJpVRY]UY\T[R^VZUgVPXbGD\IW]WMQTSUbkJMAGVg\GOV`KUVUQU^TSPYUHVd^ROiVZUX`SQ[QRTI^FV[VYRSxFF[MDNZEK_[VX^LTT[VOWKT`[qQWQJUUQRTL\KcMYMKZQKRPLWWZYQLRAWQMAR\[T[MVSSYdPZTOOOL_fOVQX[JH\^MZa\TWL^SCXNNZiZLSV\VSJYWU\ZafRDXFdQPHW[N_P`UMPSJdINO[LX?WPU^geTLM]McWSTRZW[YXXQYWZV[SYSZVY[]ST^ba]PRQSNWRZXO[T[Y^RW`S][ZXVUVTW\S^c[^[[^UXZ_T\SeYX^Y\\\^T\\UZ[]JTPd^aT]WQ`_R[^dS^W[VY\XX]]XV`^]RQ\\YWeW[_T]UQU__TTVY^c]UX\SMXZ^YO\[_\PW_RTVUYU`_eRb`WQ]__\b_XYaX`[VSYOa^\[T`d]XZW^X[^[S]]YV]RWaVQVV[Y\Z_R[Y[_[[X^T[YcI\V_]U__Y^VYZ^^]Q^a^]ZZYY^TZY\SZ`bSaXTZ[YZXU[TNZ_XXWX^PiV[OYYTVW[XS_c[^[VbQZZWOdWT]UTbdXRa[WTY]YWY_WXaV[XWVQ\YbUWYZZUU`[ZY[Y`U[_[U_VU_QYcUTWQXXXUW[ZZ]VT_W`VSU^WYZ`WZT^`X]cU]W^]XVY]QXQO\T][UXZXbX]WUTmVZOZMdYQWb^WZRW]YZTTZTZRXVT`\NOU\Zf^RY_bW\_\PX\ZdcPVcXR\SR[TW]]d_XVNT[]W`Z[dZV_]]]ROZ`UTT`TWZUbYP]_]WRW`^QM^VbXXS\Q[W\b]f`TQSUS[S]]\]Y]YTR]Wd]YZ[Pq_]QVW][[XXS`XUV^X^TZQVU[_XRcd\YYTaY\QVYZRhS[Z`WX]][cWYcaVWWZTUVV^YV]]VUfWVVZTTWZ]\\[[[OdW_RY]QR\V]V[UYSYU\[ca^cY_n]]]XYXb[^_UX[VWV\UV^QXu]^[VX^_]V`ZYgVUS\ccUSb`R^VQZhVVUdT]TTdSSY^Z[W]ZbVTS]bW^QZZZZaf]WYUWVW[V^VYZPT\STWXU]UdW_TYZP]R^^b]\`ZX[_XaVUWTV`X_[Z^T`RSUbXYTW^VQRQc^\TRZZ^SS`adeYVXZV[Y\_V[UZXdSSZ^WT^`XY[`Y^[aWY_[Y]ZXY\[QR\XVa\YV\_Z_Z]WbVZYYZSZYYc\\VXWNXXYU\ZQT\]\VZYYZWV\U^V^UZN\XVTU[TU]QY[\WSZUbQ]UYR[ZRc]VY\_RLXYZVVX[^XXYVY]Sd[TYZVOU``Z]Y`UY[Yd^T^\S_WS]WUYW[YXZ[U]X[^]\ZUWVYOY[aTSX^^\YXZ[T\\ZWWZ^]V`VPZX\Z]Y[cZc^Z`bcTQX^YS\UXVX_\ST[\dU[[[]]\_SYYXYSc[WWXZ_\SZUX]YYVUdXSWT[aRWR\\Z]][^YUXNZRVZaSWb[_[ZWX]ZZZgbaTY_]^V[d^XUXX[UcYZ`XYV]R^Y^__]]\V_X]YXXWVYVa\[\]dTZTZ\]`][Z\_XVU\W[Z\VMXe^T[V]_`XSU^[VYQ\^]YUYUZ`XcY^^XVWSUbX_TR\[XTU^UQ[dVWXX_SSV\[^V^\X`dVaXZRWV]TRTV[\US\XZ\Z^VSY\VWUPXYX`UR[Z`Z\VU[S[aVbV\ZSRSOWRVZY[XQYcXZ[W\XPXYY\l\[YVYWRY]aZ`[UZ^]\[XO\^b\[]V]UVaYc^\\WVWSU[Z[UQ`aX]_ZTW^TXXXW]W]_d^\[Xa_XS[hc_\UXX]UdZYWXYWXXVZPX\__UX^[R]TWZ^WW[VTc[VV`XaU^XbPYW_X`W_kX[_R\]V[UYaQYQcZb]YW[VR_SWT_`VTW`XTTZ^ZSUUYSb^Rd]ZWWTYYYSX[^W[_f^Q[XZ_Zc[ZZaX_^^\YabUQR\_Rag^^XadS]^Y[SY]UW]NTRW\\U[OWXaX`Z[Y^V`ZS\bYRVSRaXZP[\TXXYXZYZZSWUUXV[URU]XhVTZg_[ZYZSR\_Y\\a_]Z[a_^Z[XSb]_X_V_UQW]PRSWVWVYd^Z[dTYPVTW^ShXTXYV^^ZRVXXaVX]\S^cYWVW[\ZUbWT^ZT\^VYZ]]VX]\ZYYUSXWSWWYVNYWc[RT\TVf^Yd[e^cV]Z_g_`[`ZW^[V][\[^P^^W]VZ`[[Q\U^_U\SZZ[^a]ZV^\U\]UT\TWY[RT\[UWXY]^WU_X]dTVVVVU]WZVR\ZVZR^\WXQ^[RTTTP\c[]Z]VWX\b[WTb[X^WUYTaWY]gYWUVUXQ[[`YZX]YXYTaW][[WZ]U[S[\WV[WXTYX[X[eVLWYSYY[cTW\]lR\]][ZWad[[Yh[ca]daYT]\[cY[^W__VRUYS`\Z`^TSXY]_VWU[]U`^XYT\XQ\N\\]X[\`QdY[W^W\Z[TZ]X]YQ^TV\_VVX`[WX^[V^[^[ZXYTW\cWdQ`XTZXU[\V_^_[WaTW^XW[RY[TWZWXVS\^^Z\`]W_\`OVZW_V\gTKa[[YVNYNZTZV^`S^WfZXYW\\`_UXRPX]Y]ZUR^[[^XSZX[^QQWZ`aWOZT\`YbaVYZXYYXY[YSWa^UV]ZXYVZU\YPVW]T[_jSZV[ZXVWT[YWX[YYSZtXbUYSTNRWT\[Z]__X[YVVm[QQ]`QYSZZ]PWe[]`Xu\VU[WfTh[SXTQfQVW\Wam\QdRWV]_UXR^SUbTXWRVx^WXZgSWX^[]\P][X[X[UUWVc_WOXT^VbZ\R\Xs^]WVTTYX\W\ZZSSGUUSW\^Y^PXW[VVUVY\YU\]ZUTX``a[ZTUV]SYV]ZPXRYndUSYTV[TUXPhT\]YRaWVX][YQNR]QwWXhYcXX`VTUVW[`X[V\VWOZS]V]aVYX_TcTRUcVUU[ObU[T\ZU\Ti]PT]YVdYWZTYW`U^i[h^YQXYfZWTWb_\QUX\XPU]U\\\cWUS\ZT_VY[XXZaYZZYSeUSUaSShZ]aTWVTWXXUUYUbTT_X^XVT\TYaZ\ZY]X]WUSYVQSWUZY_]dZVfQS\SdYUV]`dRb[SXZaXW^\]]W\]YVY^]^UQRZ[T[YYTZXYXTX]`WR`[[_XVUTTYNPSSWZaV][SW_XVocYQ`ZSRZX[\X_STV`TYWT`Z[W]^`T_UWYW`WXVZU^^W[TU[QWZ\\VXY^bZWX]YXaeUVXWT]WUaVUXX_YOaXbXW_XV]\XT\VZ]_[\XZV^]`e^XYXT]ZUXY[`ZRPZUQaX[[[W^YZ]Y`UZeXXRc[[VTZ`P_]X\V[Y]Y[eYaQU`[Y]]RZVYVX^VY`gaY_Yc_S^^][\W[b[XXYU]Zb_V[U\[TVZUc[YlXZ^]a`XXU\U[eaZX_^c\_XU]OSR^[WWU_WQV]OY[_ZY`XbdUeX^Pdd_[aYWaWYSY`WXaZ]VT`[QX[WaS^YT\Y]^bbbTOXZa_XSV[YZYZW\XZX`[VY]bY[XU_SZW`RaQ]T[[XXYUV^`ZXYV[XZ_Y\XMSVYYeTd\TTQXX_TW`RY]ZY]_VdSTUY\Y[RRTZ[]PYX[\bSTT^V\]\dTVfSVbZ[gN[U]__S]^iX][UYY]VS^]VbS[ZaWXRSTZ`]^^^^\TaU_Y]WWY[Ye[U`RXWMQYYRU]VZ_\UUWPUQhW_gZX\\]N_\R]`]QdWY\TZJ_VcZ[SUYW[WZY]VPXX_RZWP[XTVX]WWZZNXac`WZ[UTXXUWVX`X\W^XZWRSTaZ_ZTSYSZWbd]V_VZ]XSPSZT\Y_\XPXQ]_W]VWU]T_[\YWW]YaXf[_Tae\\[_V]c]Pa^TVZZT^YZ_XVPYYZhabVRWQbOWX\YYZXZUZUaY\[NVX\XWYZX`VTW^^SaT^V]bRSX^ZX]YYWWUU`fY^\\YR^[[[TVW_bZVTUU_\][WXOW_Z\dY_jOQZYjbSZWbZ^\W\ZVWWY_^W]YTTZVZZ^ZZY_T\Vb[aZY[^]]QSiVVZ]]UY[Y^\SX`^VXPYZYa^TYV[^WZYXZWXVy^\QS\bU]X\O^Z_[aO^SUOe^`R\WZUYWYPZ\WY[XTZccSZTT[[J[`cbSZZSTQRWZVPY`[UbT^XYQ[W_\WYf^gcTcQU\aP\[[][UgY_SURX`VUZWV^Z`WWaWYV\QX[SRWTWYWaVV[gaVZW\Z][W\UhY]OXWZYY[Ye^YYU\]]RYY[Y_^\eYX\\]^VY`T\Q_`X[\V[[[X\aXc\YYScibYYTYTZaT`YUYdU\VN__YNSYWWUQ]_R_YWX]WYWY[f^]WU]]T]TRUXaY\UZ]ZXXNVWZQ\X_\[TY[cT\\Zf[SUZVP`V]WSfX^UX]SQ\V_\[eWX\Y`SXWSU^\R]aZ`U[UX\cYZSYYPVXaVPdUV_Qh_[[[VXWZWWZ\aRXWWTQ\^WaVV[^cdY\^VfZ[SVW^][f^X[X\^[Yb]SQSU[ZZSacY[S^[Mfd^\_SW[Xd_XYa\\]b][``[VY]UTdgZhZ_\TaV[XaXSVZSVZ_Ta`VYOMdeRX]Z_[QTZRbZ[^ZX[YZT^Vb^TaSU^TX^ZV\RV[`WX[RW[XY[fXXZSX[S`[]W^Z]aW\XXN][VZeZV][V_Ye[][[ZY\\RX[UfV_VWW\]YSUN^cPYYa`VXZSWWV\UcZ[VUTZ]R[XY[_Y\W[X[^E][aR\RWQZaV]_XQUZ]aSW[OMYZ_YY_\KYYVT`SYY[[^V^VQU_SUVZYWY]SO_N\UYVUehVT_YWPVd][X^\]c]Z[[[RbM^X[_RPU\QSWYd`[W]O_]VVW[]NW`^_\^\XP_X`^YLH^]STaNZZbS^V]Uc\ZYYYM]WU\X`UWVWS]U]V_TXU[hUHTY[SJjVVWeP[`N[b]WZ^`W[\U`U_XM]\XK\Y`_S[^W``_XZW_UUZRK`X`aWR_QW[WXWVaOfSSWXYfZ^_[XZWUOLSSX]]\YU^`OWTV]UURTY^XTegZU[Z`bR__f[MY_UU[ZZ^bXVX]S^aXMZX`ad^^^_`TVW^UPWb\YSMV\^ZZ\aVZW^RWWQQS[UP[^[\Y^\RYWTY_[\TW[\^YeLcUSSY^ZOY^Y[`SYaZ`^NXXSTX\`\\d[VWQVVX][WQlXY][R\OXNY_^W]W\YY^ZRZ^]ZU\^Y\TTSS]UWVS[a^ZSYZT[d[]S_cRQTYXaaYYUZOT\YLSRVS_cc]S\cUW^ZV\[ZSRdYXX\UgSYXYb]UMf[[T\UjOddY\\T`T[bX_]W[Z_^VWXbRUZ]b]^N\__]aM\`Y[f^^V\]VY]TTc`XZ[Zca\\^aYZVTP[W[\V^XZZYW[Q^[f^T^Va`T[SRXYh^XfXWZZ[WURSVYZSXQKfUS]Yb\XdU_]YRY^SW^UQUlW`YdS[TWlWVZW]XZ\`[KYSS\ZZYTYa[]V[XT\ZXSTWcWT\`\WRR^aXYQ^gTPSX`VR\chUZ[i]`TYb^ZV[T\WU_]a`UVWb]Z_XW\\]WYYT[Y[WZi^]Y[^YTd\ahWaVXS`_X]R]R]Z_TZbUbVY]V\^V`c^mUQ[QXW]PWVlf`O^\b^\TTX`][YYXRT[XY^[]YVXX_[YMY\TV_YWVgjY_a\Wc]`YYXY][PSX[W\TPQ]]Z_[c_W]\cOQX]YZVHcOSdSXY[]ZXXSPR]YL`WXe`[V`Z\X[[VYTUYagOWZQPRYYY^[LX[W[T[^WWfc^SZURPUQVTUVZd_S`XeUTTXbRYRZ_R[ZW^\`^_ZWYTe^TZQ^U^aX`RS`YaYaU[R^W\bXfdPlYQ^Q`S\]XXa]e[_ZZiTUVX_bUbScS[[mb`N^U_YV[ZM[VWUN_[[bJS]X[VPXeRXUU[[ZfWZ[eWV``WV]kXRX_\^U_`cSZR]YXU[X]Z[ZW_bQW]YV^]UVY^RRMVa[XYZV\ZP\\XTZUY_W^]`Z[VSTVUT[cV_O]ed\WSZ^YTe]_XbX`_XUJUZUYYQ\SU_Z`\TdSVXO]WP`[WXW[`WOUWcRg\YU[XX`YV`ZQYV]UZZfS_[\Wc_YTVcWZMQR^ZVVYV]UW\d^\ZXWYRWOO^VVXSWdXV[V]VX\^ZUSXRMZ\UYU[TXS\XXV[[]f]^\W_TYV]JYTVZ[d_daWX_^SZ\VNXSWS`WUYZWVNT[cb_VUWNXX`_]YX^QZ^VYUWeZ]`W`W\WZTa[YT]WY\[c]aX\Z[V\V]VX\_Y^`PYVUaaZa_XQW_OV\\X]Tb`dQ[]Qf]VQW]VQYRTSR[Q__X\al_\XSP]V[[ReZU[WTV^^_Y[ZX`\[Y\QZTWZZ_^YR^Y\W[VZY`[d]^SZZSUWYZX]X]USd\T[XZWOhZ[\Y`T]UY^QVV^STa\WZ`YTZd^\UYZXWSd[P]Uba_XWWTQQb\T\^aZ]VTc`aWV^VV_cU[ZZZ[fa]iWVW[RWS]XbT[X][XdUXXXb_fYPRb\YWk_VQV_`\WZ`_ZYU^^`\fZ^dQa\\`[_RS\aX_]`^[TWRX^VRXYV^[UY^NVUYYa][ZXYZXWWUbXW`TV^V`[\Y^QcRU^QU^M_P\bYgOVSXUYVV_XY_bWZ^``]_VWg`YS[[X[[XPVXbZ[]X_O[_[Ud_S[Y[XXZWSUW]S[VXUVVfVXYUbK^]YSXT_[ZY[ZU^Zaa\\[^\VQc[_U\W_XSS^Y\[f`VVY^^VaU^V]_UXWU_X]Za[V\`[d_^WaY`YZY[WOYYWe\Wa[_\XYRZ]Z_]WQ_k[^VWSUYbZYXYS[aQR^^[VYY`\[\UWYT_`R\Z[XVRT_[YZZTN\`aa`gbZ\\UcWZV\[]NURS\WUW^XZVW^W`]Y^d\aXWW\f`cb]_\`URVVYWQ]a]b]\dZbW[Z[Y`VaP[[ZVY^ZVUSYXZU[XXZVSXW[_Ra][[UcWYQ]_T[_YTYQXO]_[Y]WYYWY`V]]^XT^]^T\_bSZ]U^YbVO[WTaXV\WbVZW`^RdafW_Z][\SZVXYY\\UXXTUWY]^S^`ZcUQ[]URV`Y_T^Pa^Z\XaT^V]^_gXYY]\Z[UX]^WY_OZWWWYT_ZPWb_USXSXZ\\S^ZXW[cWa]Y]^\XV^ZXTgTX\]ZUSWX\SXa]WhZ\ZWW]\\UZWWS_RQXZ[VXVX_RaS^`c[]bPY`]XZ`_`T\T[XaSZW`KTXU^ZTSVbY`YX\\Xh^bUcSVXW\cU_\SSWW\TWQgZaY\WdVbX`WhYP]USa_L[TTYQYRabN`QWZZZ`VW\]OU\c]ZacbadYcYaQVR\TVX[_WTX_Q`_V_]cY\T\b^gU[PXXZ\WVUWf^X_TYXT[U[\[aTRR^h\\OaZSZZQXZS_X]RaXWQYT\dbPWU_T\QTYV]XSXScYVZZZZ[aZWSX^W\[TYWZ_b\_UXUWc`WTX^aRYZSVY`V]]eXZ]aNP\X\UXY`V__UU]SYc[[ZSQ][_TV^_M[OaV\UYXTUZX_Y^ZT]VVRZOZ^VY[UaW\[TXaj]\]YYW\\gXX[YTdWV]U_S^SK[Ud[TVV\\ZXdVMXN^OSXYb]Y_YUfSR_\XYTZ]_aZ^[_]ZQ[ZU__ZU]^]\X\UUf\VcUY]XZQ`W_[ZWY]_Zb]V]R]`U\\YYZXXO\_UZY\WcQ`YZ^\[W\][]bZYZW[^ZVWWZ[VUXWZVSVX][[[_V`UU]QR\X_W]^XX][Q[WQXb[WR^V^ZYQ\e\cVZWTSXWT^Z\]W_V][_]WZQY^UW^aMVYZVWRc[VZY_]YVYVU[]XW^SRWZV[TeZY`WSZ[^[ZcXZVZYYZ_X]_aZcfZVZX`ZUYRTZYdZRYUYUVdSXV`\P_X]VVcbUZ\]Y]Y[\[X\aX[Za]YW_\WSX[`TVWY_T\Z]a[WW\^bXh[ZW\\Z_WZY`XSV^TUUT\_ZWe]^Z[ZT_VVZ_\QVWY[YSX\VUWW^Z\ZRPY^aY`Z\^\[\Qd[XYYaYQPT`[`WaccY\ZRX\_\d``]WMbZVUb[[XXWT\Y`iVTZ`\ZSaVYZViaW_U\ZZ^W[[V^OYVU]U`YXV[]ZV^`YX\PZRWW]T[_Wd[f^a\RVXgaW[]Nc_SV\_aSXa]PX\UZVVU\YT_c^b^^_]UOZ]ZWZS]ZRTUVVUR\\bSfW^SWZVSaTZZ[\Vg\\\QZSRMTZXS][Te`WY_Z\ZZZUTWYbP\YR`YdY`M\aV\c\^^WQXXRZZXPXXZ\VT[U]VdZ[WUY[bY[\ZP_`U[VW`TWVZUV_WUWV^XV[X_Z[W]e`WVX]\ZYPeaX[[X\[Z]hQ^_[T^XRU\T`_[XUZ[[XX[\[_ZePYWXY]Y\[Z[faYYe]XZV]^R]^eZcX[\^YVZWXY^Y`\YPWSYW\QQPTYVYXQU]]][ZYZ^a\]``YZhVWb]W^e^X]V[S[cW^[]\RPb\P]`Za[^TYXV^[YW\XcP]X__XXR_Y[]VfcQWkYVa]\ZaZT_iZTXW_]TSPXWWUT\X__P[Q\TXVV\`Y\_PY`ZS_OZ^VXWJaVRUTLR[[QWbU]W[ZS\`R_Vh_`W_cf[XXXQU]ZZYV^aeYWVZYdV\[UXWZXY[[XT]UaWVX^XQb[[^f\XW^Y[SM`Y`YYUTY\]]_YTbZWYTI^]S^Wc^V]b[[\VSX^eXZW[XgZ^[_VSUWYf[WSf]TYXZ^W`YVQ]ZWXWWYR_ZSW\XX[`ZaXWZ^`j]RWUa^[_Y_\TWZZ[QWea[WT^TY^XT]V[U_WXg[UXb`b^aaSTTWYS\]PZWQ]UZYZQU`U[Q]WXXXYTZ\ZX]UScXXVU[]]_XZPXSXXUSWVW\Y][X\Z_[QUZVb^UVS`\YX_^V_YaV`]^VP`]\YY[^W\VUPOKWV][OWY^WXOWVb[_ZYYbU`SUZXha]TW[h^aURc`Y\XWa^Z[m`[XQb[Sd[]WaVY\R]ZXYYWW\_YV]UV\VSUPRVZVR][[XVXXRXWX\\^VXWW]\]NWU`SXYW\a[WT][[Qa[XPVTT\aX\X]\_[\U^ZZTXWYiZX[T[QVc\\VX]]Z[U`WZ[MV^TQZb^X]YVUUVYaZ_\YR_T`[[XZ[QYZ\[RWY[aWd]XNX\UUX]a[VU]]bXVUX\dXcd^[Y[]ZUY]\fS^YXUW]Zaa^^Y[WTSWZ[\d]XYbZ_\]^_Tc\\W]Y_\Y\`[[ZfYZZX\^YUVXS^bW^ZYSR]Va[XTVY^^a`\XZ]ZTWeUY_WZ]`R`TZZTWPZ\][\g[W^ZMZV_S][YUa^]]V[c`^]PU\X\XTS_^\XTWV_W\`TVWOP]X]bXT[T``SXZWX^RV`WVU\QSQ^TbWU^[R]WTVR]PT[Vf\YXYSaYaSZZbX[][YSZ_WUSXYX`VYUWYYTN]]^W`[`VW]SZZcTbXZc^ZZWUfY]\[[`[aWTR^WYVVY\[ZXc_U_[XYUZOf\]]\]ZUTTV\gaW\R\__UdV]Z_]hZ[V\^W\^X\R]^]Y[TRSU[UYYWVd[_Yc^_\TXYT_\UTWYSYXRZVWW]Z]]YZSZY`[WaYPP[S[YURWTW]`Y]_\SUQU^RT[TZ[\dSU]]^WcmRZVjW[WXTS\WZM`U\\]gWg\YX^YbUZYd]]RZU_UT]WVXe[ZYfZTTXS[[RdV^YUUdTYVV`_gn__PTX`_cSa`P[YSWdXYSV\WPRWeWTUTTZV\TTTX]UXX\XaXVU_R^_Y^[Z\XVZVadYZ^S\^UZ[_cT\[ZO[X\[WWMZ]i\USZUZZZ[VYfUY_QaX[XT\c`]X^b_[VXTVZb[]M`W]ZYPUWSYUT]Y\W]bT]aXO]W\bY`UYX]`UVd\SSW^PWQQ`T^_Y[XQ\XOTWbVW[]V\T\WWXX]bVVdZW^OYZX]\Xc\WUWX\_XTWbWT[b\UY`[YZVSW\RWXSVTTW]X][^ZQT]^`RUW[XWO^[\bbb\Y]QZRb[WSYU]dX]f\YbOYk`SObTY[XTRXV[^[S\iYZQWXVVV_U[[XVhXc[WWVVNNcObSY[_WXQVbaeX\U^\X]XZ][R\JQXa[ZV]VT\]VP]Z]XTVf^^ae]SWXaXYbX[\UYLVW]ZQXbY^ZYX]`V_N[__Z_Z\Zjb_UVSR[\WXY]`YV\QdSZVTSX\]WVZSbUT`YR]T^`_H\ZXUYSZRbTdVYXiVWSNZYWUXNZd[XVS`V]^\\_XVZ[Z]STYVTYZikZUYa_U]ZYQ^^VY\VY[Q[SZ[YWXQQYYZW`V_YU]\VTXgWVTc__^ZXN`Y[W]\ccX[S^Zc^MZ[X`YjS\\ZYXU]TVU_]YfW_WZZX\V]L]VPVS[UV\ZZWWQRWXR]gPXh]YZWTVaYW[]]]ZTZWZ`_^Z__bZTY`UXZ_[TSVjY][RY^\[YZV^PN]\`Sb`_[[cZjXXXY][Z[OV[aW`W[aZQVVYWc]]TeWX\]U]Tba\UY_`]]_]\V]^ZZUX\XYYZU\^YVQI\UfWXTYaRXXVOga[T]]YWhSZXSYZ\cXdTUX^X^\T`W[]Z[\`[`ZSb][TYUe]]`YXSbJaWYO[T_`]d\VbTTST\NW^ZX`\WTZ^a`RTbVYT\X`VScUb\V___Z]d]^XeX\VVYa\YTWXVY`S^`\U`a^U][[YWc]JWT\Z^SUZXUb^TOb]bTYRW`_V\U_RXcZ\Q^XZXRY^`VPW]_\V[VQZXXYbTO\]WU]V^_\W\^NWaQgWO[abY[[Z]ZcY[Za`^^[[X[ZYWV]`XYTUNR\`\Z]`\`ZZ__ZV\VZ_][_ZZ^a\ZQZXUXY^]aa\YYhYSc_V_Y[YU[WR]Y]a\^^\YZ]Rb]U[S][V^XW_]\Q]Z[T\Z]c_Q][aZZYY\ZV_dWWYQ\]a_bc[^VVV]\UR]\_WWSWZVY\XW_SXR\ZbcZ_Z^VYWTZ][YZ^S]W[\ZdZ^VZYZUUY]Xd[Z_SZWS_X_Zf`Z]YYW\Y^VaXV]Y_TcV__TSRY`X[V[UZ[X`]VWW_V^UZXXP]b^k]X\\`QX[R^a^WZYYZZ\YZ^aZSX`]UUZV`c^`ZZP]Y^ai[Y\]_VUWZ[[W^_dY]\WWUY^[^TU[[\UZ\][^ZVZd]_d`RXVXYR\^Z_V^YXU^_QU^WYRcWVVXUSV][VaXW_a_[][[`ZbQZ^XX[deX\aSZ^aSaRRQ\i^TgaVfZU`TScVXYZ]Q`]abUM]^^\WYd^XbWW`WUP]]eX[ZV__TXUS\aa\SWb\_X\h^YTYYXU[V[XZXQ[[][S\U^Y\U^UUX]dUS`]^RU\^SOe`cXYTb\RYZdaMRNVXbT_\bXV[^\OVUVVYX^YU`ZXZSWZ`a`]RXXa_Pe\WYWV]YVX_bOS[TVWS\]_\ZUbSU\TRiV\\U\WPY_T[XYU`^WZ[f]LU_UYUWZT^RXXXS[^Vc\Y_Z`S\TaXY[UYY]XWROX\^Z\ZdXZZR_[PQYU_]_TZcb]^\VS[eV\`XY`[P`[WUWX^Y[[e\Sb]Pac]ZZS_VO^Y\ZaTYU^]WWR^XXXYYQd__TUZ\[XYYYYRYXdT]_ZQQa`TeX[Y]TW[\[Z[VVUW]`Yf]`_\ZU[[TWb\[Z_W`S]Z\UYeQgTb][]^]]^^_T\\X[\YZRRX_ZXS`e_[[VXZZ^XaaXVRXX[]R\V[]XOVV`\[YZ]mZU^\\a_U[_]RdT__[\VT`[^aWbZXUUYcPUg[Y\\^_ZWVXY`Pe[S^Y[XaW]^WUbZXW^\YZUZS_YeTTQ[OYYYZ[UbO[\`WW]SXZjYWP^ZPYTZ^U]][VZ[ZWWcXZVS_ZZY`Y\TU_X`YW^`VVaP]YeZYWbXY[U]]\XYYRZT^YXYZWgTdYZ_XWT`Na]]_[[XedQ\V`^aYbb^RZa\P[]`Xb[S\O_WZ[U[Y[UWY\^]ZRVV\UW]YXZ[\_\T]cXZV``c\ZZ_WQUW^\\\bRU]UZ\ZYV[R]YZ_U^[bc[QXXXTU[][[\S_SYW\^aXQ``W[_X\XZ[L^^X\UY_XSV\ZYYZ_Z_RZV\P]SP\QbUXiUVWiZ[_V]VVZXV^]e`fR[_UXT[cR]^[YabZY^[YW[]\[Y`X\^T_V__[`\QMW\\UYR^TS\]Y_bTW_V__RV_eY_`UZJ\X[TZeW]^Y[XZ^\b\T`^U[\XUb^ZYYZZW^[^ZZ[T_TUSY`ZW]U\YXS[_a\[]XYY[VXS_V``aVYaP[eW[[`a[VS[ZZ[X^SS[T\XT[^\[QZU^\[TZVU[[S\WQbX]X_[YZ\_]\ZZWZ[U`VZUTV[TXa\[Y[Y_VZSR[[ZUVVUXWbRTcX[^Y\VZnTW[URZ^TYU\[]WV]V[U\gX[^aZ`^_\Z[ZVWZTRYWPZ]QObeXY\cYS_^`Y\Z\Z]ZSW_YT]X]YYe^WXVZ^O]ZYc]Z\WaUaRWT[_[^\aYZW[`Z_WR[UZ[XTX^VX[aZa\^YTUVKVT[^\Y`WT]^YSWbQVWT_TPa_[^\XcZVUWSPSV^XRYdWUX[bZXWaZYWXVaYTZYUWX[`ZT`[STUaUUP[UTQ[YV]ZZb]SYVYRT]SPVV\V]\PZXQR[U^\UXYaYZYSZSYZW]WXPUX^V`UVaY]V_VQUTU]SdXXMZN[b^`TQUZ\N_UX^WX[VX^ZVYTc[KYW_WTTQUSTcZVZSZ^[JYZUW^U[ZSYXWXV[]`\dWe^W^X[_YQRdWaN_Z``h`^fWVV^WXTYPZO^U_VYUN_Y\\TIZZ_URe^W`XVUbXXWRV]abYX[c\YZUW]baR_[XYekYc[TU\XX`\`UOU\\TZVTfbXZSXW_[[Y[[Z^[NW_VJU\WTZUU_SV_dVbUZa`V[b]URh[Y]T^YXRX]cf^Yi^U\S\ZSV_\\\bS[W]]eV_aXWZ^VOXM^VYT]UZZYXS`SY__TT\`Q^YUQ\ON]b_[XZZWWQVZ``Xab`[dYTVW]PW\^TW_dX]WZYP[NN_^Z[N]XW_VTVWg[[ZTcYY^YRY\[VRU\\aQNUWWSWW_XTRZ\Z^SQW[^[\YWUY^XZ[P`S[XRTJY\XYYcUYQYSQY[U]YTWeVVZOOUW[X[[Za^_\][Z``TdTYSM\XZV][XRTYOZS__]eW[VVTT^ZXZSLSVW]VQ]^YS]^a\]XVY[^a^_Y]Z]\\a`]Yb\[ZfXZP^X\][bQW[YTX\_fWTc\ZYW]`TXXQZW[QSZ[Y\U_Yf\XYUX]VWaXXWR\YYYXVL\ZWZ`a_`RR][^O\XWTWqaOU\aP^VX[^X[X^Y]ZPVYPXRX^X^L`W^bV^]YX[]X\``X\a[\YX_VYXVZXTWX]WZZcT\XVZ[Zb\SZVZ\Y`TTTWV]ZY\Xe_egV`WWR]eZYT_gaT_R\a^\WO^YW^]SVTYTZ`c[biTU_\Y_YQYVfW^YXZS\Y]PaXZQ]TUZ]]ZYYYWTPYY[Z\Z\P[ZaWUYXW\`Q[aWSfVVaV\WZR_OZbdU^]]YedWVQ]X\U`U\SZ`_YYV]UbV\b]U]QZXW_]VWZ\^WZV^]\U`\dZhUQ[[SXZXZW[\Vi_bSUOUY_XU]Y_[WXhb_Z]_[Ra^X]UTSUY[\[SXWY\[PYY]W^P[ZU\YZWZ\ZQY[cYgXUZaYZYXcTVYW\\`QcWVf[UWTQ`YRgYSUX[YWVWY_Xb\YcZT^]W\WVU[[YV[WWXVc\dVVY]SVYf[\RUVVWf`QZZbcVfWWZc]U[\aXdVTabQX^UWi\_\UYXUV`VX``WTVZV_[b]\[\TVUaWT\X[XR^[NVMYR[[bUZXZYYYYXXWW`\__^ZVbW[XZ\dY^[``\RR`fVdSWNY`YaP\_lWVTTU`X[WecXUUVP\[\TZfa^QT\UVW\]VZ]]UbYSZ^aUXQbZV[`b\`^^S`ZW]W]SRY`e[dU_UXWL`TT^WR_]XYRYS`YQWY[V`VZ_aeV]R_[[W]eZWTX]cY_a[`\U[\^W]YUXa[_TPa[`[T[T]YYR`_d_Y`ZRa^\W^VY[aaZOYWXYSdRV]YRRT_]SfXcSW[W]Y\XSTX\]Z[a_YWU][[XaXZY]bSZVVVXX\V]SV[WUcU\VTVVZYT`W^[U]^Y`TWdhWVVV]SaQSaTZS[U`]WN\YX`_WTaZ]Z]\Z\dWg]Y]\V`X[ZU]bVZY\SU[[]\Xg]RYT]TQ\\ZZZ]WVZXUVaUP[Q\XTYRV\X]_bYQ^ZXWSWXT]_WM\X`XVZ[Z`\bUUZ`ZVPa]e[^_VYXQ]VSNSbT\ZTWVZ\dWVc\VVXSQWZ]W_^VVT[a\]\YU`U^bUXU\^S\cc]UZ]Z\aR]ZXYV]S^[ZWZYXYbZU]WXR`\_UX\Z^VYW]STTN[TZZ]W^^\_g_]_]Z\YX[TYVXPcVbUUddU\a^]^]T[WXXUX\Z]XZY[\Z[Y[]ZXX[YWYYVWTZUSWO^WX[[c[_`ZYYZd^[[_Ze^Q_]\RW\\[X^V_\PYZWVZ]WXYTYbUXXbZ\YV\[[X_WbRZ[[VYZUWS`W\\[S^[U\S[a^Ta`NTb\][`VcW`[[S^bWYZZSVUY\[Y_][ZZYVh`ZXZ[WZe_TV]ZVPUWb\e`V^V[`WTXS]Z\`]dXZZ]VcWRXa]\VX]^XU]Z\aXbVV]_XaZ\[]^ZSWY\YWbaTVZbY_VUS\WaZ\bZ[^T\VZX]\]VXU\ZVWW\W\^X[\[XX]][]ZS\[X]Y^X_SU[[]XXUXQ]T\`V[Y_W`adV\_SR]a]W\[^YU^^]YZX\XRQ^Z[[X`WSJdS[^TV]ZcRWUVWVURVZXXbXWXVOZ[SW\NXf^Z[UcR[a^^V^`YbQV\SX_]U^UdTQ]cZZVYhVRkV\YV\ZRdTYVScZ[\UYNVaePbaTVbX\X[]Y]_\[WXWSZXgM`U]\`UZ]\MYTZ`XXVVU\UePfQS\X]TRST[W]Y`^M[X\bc^^a^WWbeXXZUWRZYcY\N`S[^^XR\[]]Vg\WqWYXSRWUXYS[a[M]^\\QXUb[ZZU^^cTWZY\\Y_XXZXQS[^U[QX[aYVU\WbZZYR\[VY`\ZP_WYSPXbYR\XUaOUY]Y^WVT\\U^ZS`RWZXZWWZc]RUXZUPZTT\TVT_\\WUZSYW^Vf]ZT[[`YS\^UPZ^`_^WN[UY[VU\]XUWSX_`Zc`g\UdY[\PV[QYV\XScWTZXY\OWT\_\X\R\Tb^\Z[[Yhc]VPXcYiURWZPY\[UTRZe`Z[f[]Yc]\T[QRT]ORUYW]XV_a`YX]]XTbd\RS`ZSWS]_bU[ZWX_YYQIX\kLR[X[`Zd`W_X[S\WUZTZbXY]ZcVZ\[TZ]XXbYU^T][_XPV``T\YUXV]UbWXXf]UTWaQ\R\W][Xb]\YUU\TXYSQXY`gdbTWYTXb^XQ\YWSOUVSZZW`W`^U\\R^YeQaOOW`a_Z^UbXSTXPYU\f\Z]YP[^SR[WW\X_XVb[W[N]UbZlRMb__UZZXROZXOSRXcZUYW]TR[YW^ZONRXU`XYVSQVR__V`UVY_TXZZQb]T]VWY\_]\T^`_eSQPW`]dZSe\NQS_\`^X\Uc[YZTYePYW\[\cYWV^W][ZZLWW[YbU\[aZ^`aVZ^T\[ZU]XZ\T\^fXVUWaXVWeX`]UY^XWY^ZRUYkX[ed_c^TV[XZn_QU[WYZ^]OP_[YW]VWW^]XUWPO\VS^`_Y`^TZa\Y\\\MPVYcY[\[]ZY^ZY\db]PT[UPSaYdTTQQcWQYYVeSY\ZUcabYWRY^YVWbOOOZSQ]T^V[XURdbNLRXPb\]YYS[[LReW_YO^YQ^_YTQZ]V_SZh_SZ`dV_TWb`f_^\YY_^YRVRc][_ZXQWMYUQPZTZ]XU`YhZ]ST^U]phUVMWW]UQ_bXURZb_RWS\ZVNTUYYQ_]YYVZUY_^_Q`[`S^]X__dZYc\ZZR[V_[dYdIQ_Z^aZ^`YUZ`YYrYWaWU]XXYc^U\SPUR_SX^\d\^aYaYW][W^][ZWL\[V]X_\]]eVSS[`Q[\^SYYVRUWbYUVRX_XZV]^Z[WVWdS[^VN^WX^[WYU[[VPYOZ^^\aP^WaU_SU`J`YS\[bVYZ^UZWRYXR_WXV`W\YYSYUU\TUZMM[Mb[SVYZSYYYYX^ZKUW^`SXfUW[XURZ\WXbXRYW[ZaT[RW\YXbYUUT]]YYUTL[UPbP[^X\VX]Q]bZSWVWRYTWZTU`]TWYOXUWSf\_XYX]Qa\WS]Q^YW]PVV[\XVTY[X[]]cP]^TZZ]WXZWVWZV_TVY\bVLT]SSSYWZRW[S^[W]\XZ\a[WSVXaWZbSYTW[Ia_YQ_ZYZU]VYXYZWYcYU]W\SUTYX_UVX]RW][[VVWYWX_S[Y_V_VU`W`Zd^XYXYaW]aYXeW]\ZT^^Y[cWVWT_Y`[[^YV^[_X^[YeW\YS_Yb^c]]Q_W\]TXYY[WXYUOZZYUW\hZTU^YQSQUV^Y\^X\`^[\_XVVS^[X]WZZX[WVVdXadXR]Q]cX_^XV]Q[ZS[]SXV[Y[Y\UVZTY^VT`_R^VWR^YYXZX`Y\X]W\WY[Z]_W[^]Wab]ZXY[\ZV\Y]Z]SbU`X^^XYZ^YU^SYO^a[\^eX\UVWWbX[_`WT[[[cWYWTTQY\[YR\T^XUXYW[Y\UXRZZVYY^X`U[W]`ZVUQW[[W[[^YUYc`aZVYVZ[aYV\R_[Y[YT[]V[]XRTXbdXTUeX]Z]_\XW[YT]bUUYVY\^Y`[_YVYOS]ZOPW_^ZY]Ua[YYXW_\ZXS[OSUTWUXV[[YUPWZ]c[[\PoW]WQSW`\jRVZbXWYWTbUURZZZ]UQVX]^[WTNZ[^X[[[^d`U_^^dWRMSWd\S]WR`UY^VXbj\Y\\ZXL]WX]dV^WaXZ_kYV\LUVUZ^XWbUMVUdY`iJOVWYd]bWXZ\YWW^TRUX[SY]^`aeUL`UTZZ[UagSUYT]]_UYaVc`MV]WW[XbXR\QSVcSSS`XY\\aSWTZd[ZaiSdX\O^]]XV_Y^XWUTSYR\TZdjYVNSMZSXU]_Q`]ZSSZTcU\cUV]Z\[LVZ\]_SWVX[T^X`\VUNWWccibUWUUU`POX_\S[U`cfQU[VbSZ]]\_]PRTP]MW[[\`R_PaZWVYajVR[`Y^WST\]^UYUWTZgcXYR^ZXWTe`Z\XVSac[eW`[[XWSO_]^YXZe^V\VTRXP\VZXUOPW``YW^^UXYZYYYPTNYTWTV]d`X]NXP]\V\]`QRmVZTY\XZQ_YWUWX^SXYnZ\[UX\eW]SYNW\YNY[XWUSV]SVROXXXVfaWV_V]XUWaV`]TeYRZTVQ]PXiT_[aacZV\TcX^TVZZXq\S]Y\SLT]U_TZYO[``XeV_cJ^M]YT\[\X_XPY\XRSbSS`VadRc^PWWQ\R]k]dYZZ_ZUTZTX[SQ_WYZZWQQRSVQVZTXfVSZ\WYd[Ta\aS_ZiTVXTSXgWX\NYYT\QZ`W`Q[dUcVTRT[OWlZ`aS\_LUYYXWWQVWTb`WYYUVaZSP\TT]ZaXU^fV\XTUWT^Qf^SYSYZT`]SZKRZ]j\\YZV_^^Ra\RaZZZW`]]YZPTX\a^\bZUO`[[\XV[`\^\`^ZVZ_Y\a[S\VXZX\\_UXZUc[M]YYUXXZXZSXU^Y^\Y^`Z]_`\R^_[XWX\T]XZW[[_X\TW\bZ_]cZ\ZQXbgcW^^[[_[^cV\Ud[ZUV`T_`VXaZWYZ\UW^PW[ZU\ZX\`e_V[Y]XY_^`WVba[YgV_V^X[c]YT[ZdLdaZWY[W[\b_XYQVWV`TS_[WZ\Z_^^W[]XRa`[WY_aWZUd]UY[YZT[U[^^]WZd[[\Z`]YWd^_aZYV\]^[][Y`[^WWUXYX\Za^VWZ_^Tb[ZQ^]U_\\[]V\WY^VY[XZWYW`[XW`bWWWY^YYUb[]WX_V^][]`]YXVZW]\]]R_VT\U^YSWb_ZZTbV\_]X[\a]bP`^XVU`UaaSdYZWZdZYYUbU]Z`X^^U[WXYbWQWWd\Z]U[\TdRXY]XW]XYYXX[\X[W^\]W\T_V\^]RWX^TRX[WVW\aYjX`U_[hVYXU_VPg[WRbV^R^QRZTS^kZUVT\_h\_[\aab`UYbXY^`PZjZW[[V`XZZ[bZa[b[^TVNT]ZZ^[TZQRTXaZR^ZU[WaUVUUT]\VV\_`_VXP][aZXX`]XUZY\Y^a_WdWXT]XRT]ZWgh[ZOaTNZcX\U[[UQV]SOpZXi^RU]nUWMaUQU^cVVZ^fYWXVSZ^[X[^T_\dYQSbWRZ]R_PYSYbZVVW_UWY\\UaXa`aY\V__gVWZ[Y_ZVY\_]ZUYXVWYZ^\]^bXYRZ]_Ve^`TZWT^W^Z^P^^OTVaUU`Ya^V[[Xaa_[cWRX]Nb[[QaYbUZQQZMg]aUN`Y__faUVXU`\_S\ebRZaaTW]SZ[b[ZYSbOQZY^YOT_X[L^PbV_`U[RU]T^XTW[WUWRPVX^aSXX`LTRYRYXXRgdXUeS``b]NVURW\[]\WcRZ_Q\WRdb\_WTc^aZT]Q_]SZYLWV^\VW[WZ`^R\Ya_LZ]`UXaa`c^_TYUYb[dW]UcSHQ`QXbXRXVSXZeTV]WW`S^R^T^VRNWSUeXUU^[YUNaZ_VZYT]a]]Y`ScT[U[_^[]_W`US^faRQ`Rg\_[PVTc]a[^gX^neOY\a[g[[UW[XUUXS^VXTX``[OeT[^XYYrW\Wab\UUUYNa_ZW`VXY\\[Ob\VU[ZYZTX[TX[b][fX\Q]TVZ[cKcY^[RT\TXVTLW[ZWV\ZX\VR\bXXc\\TZUV[^XX`RZT^\XaZ\\Y^bXZ\Z\ZW]VYVT^UU_WZ\]ZcU[VULZR_aV[U^W`bRX^WYQ[Y]Y`bZYY`YZR^YWTU[ZYZWQ]aTNX[]\XSTXc_Q[SXV^de]`^W_WWWZ^Pb]Y[VW`_POZTV]YUWaY^X^X`Z`X`[WW]W^T_R_`ZW\[YVYbZSTa`X_VUYY`[W`^YcT[TYR\XY[R]P[XXTZ^V`RV\`\^[]\^V[Z`_c]R\X]Z_XVWUR[TY\X[V\]\]Z[SVY[WXXVXTUS[Z\XY^\WVW[WVT\SXP]]SX]SZ[_`YbTYYW[W]XZR]VV[WhY_NeZ]fQZ^]Yf_W\Y\X`a_`XTTaQW]`XU[dgXU\QY[^RY^]T][W[]WYWZWSa_XYZYSU`cXd^WOTV`Q\aYTUPZ\]\\fY_^_cTVYTV[TfXWTXTWUaXUYQV\Q^_`U`XWN_b[]e[US\XU^^`\`]V`]YP^[]XVb\Z[R[YYPS`aY_^_[Y_ZZVV_WWXZZ\WW]YX\ZVc\YV[aPVb^[XWVRWbWRUY\]T[TSXd[[Y[_]e\UPXQN^QW^f]\TYTYRa[cbV]XSaa^\ZP[\]_ZSa_WRU_]\]HaWQ]XV[[Td^Ud[S`iYYcTcYbRZ^XZ`TY`aRYZUWPW_Y_^TZbRS[YfS^ZWQSaYWa[U^T\Wc^^W\[]R[YRcfYX_Yc`XXOWY_[Z^WTZTjS`ZXWXdVa[[[`NdYS][\`XQ\b\]ZVWY\S_`_[VYR[fUUWVVQZXXgXc^WOa_XU\aX^]UUZV_VQUXWY`fY]XTX]XWcXZ\VSPWU[\X[T`Sd]\_Y[V\YYWUTXT\WUYc[ZVRT]`Y`Q_U\TUYYYYM^^aWTV[X^[Z][YRbW[SbWXRWUagVec]aaWVg``[_Q]`Ya^Q]V`SY^cSWWdc\X`UaW[YUW^bdYWb`Y[`[W\X\IUXeSZ\XVc]W[[``\VSZ^WQcW\cYT[O\`]U]^TYVg]X\Y^WUcZScc^c]ZW^WWcaXYT]^[W[Z\][VZUYXYSXK^ePXXSaY\]ZXUVjV\U__X^]bdTPaR^XTSYV[_XV[QVUZaTPZTYW\VWZWYZ]YSY^W[cUUZYU_heV\\X][[Xa_]Z]\V^ZW\[cTXqVRYW^]TYa`SZWKXRYPZ_YV[eXCZSW]P`T\]cWXeV^ZW^P\RXTZ\SUY^Z[W]]ZZ_VZX`bZUVa]_ZWXTZ]\V^Z`cTY^aYXZTQ\_V]`_ZWXUk_[U^\VWV]_S`X\`TY\aR_VYZZSVT^QaSZZ^VZ^R]TZY[bZXYXX^RUXTY`WTWQeUU^X]aVXUY`XZVY_PYbY_WWbWYTSR\VX`Y[XhTSY^]TSZRVXW_T`Ua[aYbZ[Z`XPW^WZXW\R[UUVW[\RZ\ZY[[_aUR\W\W^c]RV^aYT_W[bMXOb]Z\VUa^\Q_WfVeT\XXVV[[Y]UX[^\YXfSTWXYXY]`XS^]XU`aXa]`^YW]X[[U`VY`SUWU_XYc^]XYUaYX\RZ^VY\V[RZP[M[[Yb[YUdWb]YTO[^YT]eZWYVVY`[]Y[\W\_YWOZ\WV]OTXQX[ZXZ\ab_[cZ^V\XhifQVW^VP\\MZ[TUXUSUVY\TcZUP\PIOZWc`XZTSQ[YV_`YOVTT]UWTRbacQdXTTYW\b^XTVU]\_]cR\Y\\[O^]\_Y][Y`N]aX\`\Z^[X[aXZW]YUXWVVT\STbb^fQ^ZVW]]Y\Yc[RT[VWYdRRXbfUWP\aSe`VUVYb\XhaYZX[ZZlXT[[VYVdZ\Y^^\QU[YX_dZZ\[RT]\YcRWYcV]Q[X^_\^]QW^`YW\Z]Vi_[VUeXZY[UW\XSX^`h]Y]Ua[b\[eWX\`aU^X^XN[SdW^[ab]P\TXZYM^_WV\^\mT_[SUZM^\cY][Q\V^TS\RYXV[UXWSb[XTQZ\XS]URTZTTTWV`YcYY\]WX]V]\YXPNTUUV]]ZTVSRUXXY\V_V]`^XZ\f\ZY[_XVZTXYZZ`Z^XXWUOTYV]U\[]YXYVY]TQ[M[aYWV_WT]\[_Z\_dZ`]OV_Z^[ZPVZZYXRZc[ZbaVYXY_UXc`\]TYWVYX^TZabW_UR\XPX\ZbY]Y]V[X\UXYVQUP]XS[`U[ZeY]UXVVc]]WWZXU^\X\[^Yc^UT[YRS\^\[RXZ\[b\YQTX\Z^U^_[YYT]TX[ZVUY][]ZXX]\^\UYYX`U[\aXY`T_b_TZ\\U]Y^X[bZV^XTXZLYZZY^X]cQ]bP[U\[WWcNbYXYbXX^[\ZVSUZ\ZU^\WP\]YZYYSZSQVY[d[c^SaXZ[X[\OXY_]Y\_T[VRha[YZ__UWVVWZUU[W]Z[\]WV\\[]]XYNWZUV[`S]]XOY[WV_d[ZX\RRZVZUda\WaTbWVQT`Y\[X[X]Zk`\^]``aWWVWY^WX]YY[W]TW`Z[][[[VX\a\]\aTU[SUW`X]^TVXXZ`R\dXY]YZXYXZZX[V\Z[O]_\UQX`^ZX]^ZLU\XQ\VdTXYWa[SVYVXNUc\]^`Z^^`YWYW_S[ZRYWZZ]WYYZ^V^V`[RQ[XX]P]e]XR\W\ZY]ZRWTY[ZXZ`cU]V[[[bRHUYW\\_\_]Q_WZ^YX[[WV]^aRY^[XYR\XW\\UZZYeWXWb`Z[Z[_]WVcS[U]ZX\XR_VX]^\Y]XZVZY[TZc\`\\Vfd__aYfXYR^TV[\U[YYX`U\Za_bWWabV[XWZ`V\Y[]U^gZWdaXZNcRTaW`[VZT[\]^ZYSW`ZVcZVaZTVX^^bbX`Q\XfcVU]_W]YV^ZX\^XTV^\XRVW[][YXZZOTTZ]Z\]_YZ_Z]RTa]Z^WVXUUZURZOX^\^UTX]\PY`Y]U\UXVbZWXMZYUWYTYWZ[[ZVY[WZXWRRX\Q[XW]]]VUfVUWbTTVZY`\bX_\XS^PZXZRWQOZWWe]QZ`ZZX[_[VY^TRWR`Z`\WXY_]U^U`V_Z\Y[c\WX]_URMhQe[Z]S^VVQ]XXYY^ZV]\^]^U^Z\\[\W_TZVZ]]bWc\_VWZ]]ZWSZQ[YeTZX]T[^Z\ZaVP_UYRZ^U_bWVZZYOTY^Y_\YT[[UYYYU[WZO[^RV`ZWYW__WSZ\PY[dW]X\WOX]cX\S]_ZY\^d\[ZWZX[XZL]ZZYWa]d^XZS^VZTfYYRW]]XWZZVYY_TYZRZOdYRZYXY`\\T[]`SZNY^VRYXZ^`\\YY]TTU]^We`d[bWY_d[XdO[Ub[Y[]R_WXS[]a]\ac_S\_^`W^]d\bXU[WT]W[XW[_^aYR_[TUMY_faPVcO^j_\b[j[bW[_VS_Z]Z^WY[]X\\QVY_[UX`VcY\TSW[XXU\_^VY_YX`Z[UYRWQZU]QXXTZV\\ZVW^_UhU`RRPP\R^XSSTTVhP\XT[PXZZa\i`b^]\TY``[R`ZVW^]Z`T_[`\X\WZZS]M_UTaYVU[YVXU]\Y]V\^VZZY]T[\YX^U[UTRWa_TZU`\UOW^VS[Y^Y_ST]]\USRSXY[UeXQ[\VYWhSTaeS]WYZUXRYVSh^]X_[YVYVRZS[T^[`a_RWUR\Z_XZXRTZYWTVPQ[`V]\SZbZ[TYZUXZVR\b]Yb^SYYWX[_Q_V\W\T`RZSVT`bVS\dg\UYZhUhVYOWWZ[[PZS^fYd^ZWS_aXdX^\]Y\_VPVaVXS[ZY^VXXYS\_\cWiQV[^XbiZ^T\Z\[XVPT][^]U]Va^^[cX\[USdV^R\]YU[Z^UYZVZUP`]^^ZWPfXV\ZVSX[Of\RcYT_XYZgSVVO[]_U^XWTVXaW_OZPSTVbPS`ZUqY[]\]YZ]UgXXWPVXZR[SRXXZd__XYS[aS]U`S^TPVcSa[_X^\Rc[ZXV[^[UZ[WT`TTVRNXZ[_WR[K`WYY_[aWT\]SSaW\VS\`YUZ`^aLZZ]_UXaSbT^_XTVdXXZ\eO[ZYcYWQQ\[dYS[OZaXZYUVVUgiWZQYkRWYPj_PVTaT_YYY_cW_VWZ[a[_`][K_ZRU]UTb[ZXWaYXTYa_XQ^^\_[_PRZZXZ`_WR_dVVSUVYXX\VV[_YVX^SV\[T]^]`aUWW\\YWZ\V`b^X[\fXZa]YXbZ\ZU]WdX]W\WTYWYQZZ]VVZa_eV_^^_XVZUYT^\\TZcZcWaZ]U_\WacZWUg[V[T`][U][_dWTWW`[]b[]dZX_[ZX[]]\UdS`\VZYVTU[UV\XZWZ]\SfYXWV]\YUfXZ_WReNZ\Z_VU[PX_X\[\Z_XTTdS[XdYWWXbW`ba^b\YXY`^ZXe[`\ZT]]]\ZYg]\bVY^XR^]VQ`]X^^[NXZ][Vb[bYTU[^XYUQ[Z[^ZSZ[Z\d\]`UV[RZ\XY^[\VXYZRc[WQQYW`[Y`XXbYZWUTZcWYYRYVWPUWdebXU]\_V\U^b`[^XU[T\[\ZWT[NeXhb_UbY[`_^OSWVOZb[`WY]T^WZcN]Q][VZOZXccWe]TY[WW\Z_T[WZYZX[ZgT]`SS^R[VaUZ[_XR[UXi]_QX\`\bXmOfgXSTX^SSh\`O_\aX[[UWaZNU]Y]W^bYdNcYV]]S^UeRU]^XQWV`]YYW]OQ[`TaU``S\]SV_UQVcYZ[PWSZZ^eXV`VUa[QSYVTXKW\Y_UYWNWRVVWXXQ[\U\Y[YUTWSWZdX[\Uc[\R`QYSS_[[S[\V``NXSXUV\b^P\_[_[X\X\V\UV]WY[[PSa`XRZ\T^\][^VY\ac^`Q^^[]NSY]Z[YQ[ZQSX\Zka`bXXLd]XY\dMZ`XYRYV[[XVUU]\SZ[]TeUWX\YWP[W[YXcWW]U_VaZWSX\Y\X][W`ZW\YW[_Z[X_Y^XZZVfcVP^aTWUV^W^WUWTZV\[TRX^SQOZY^XY[YZ[XZWbV[]]XXZ\SUYfaRR\RXWU\YNV]\[Y[UdWZ^]^VWR_dW^[TZSUYR\[O_V^W[[X]ZT[YYZ^[bVX[`UXT[[cYV_XXRS\ZXdZZUY\]WX]ZTX]XW^[[]Z^[_XUWY[ZYMaXTW[^ZPQb\XV\X^XS_WX\\bZUXa_[XWY`\]]TYTZZYS`ZWT[OVP\ViPd_WWYRWXWS_T\Wa]]h]X\a^Y[Ta`^V_\TVaXRUTaZYV]cY]]\X`Z``S][Nb\X`XVbZcWY^VY`bZ]SW[V^]TU``Uc\]\\WZbPV^XMWYZZZcV]_XV`YV]Q^P\VeUaV^dYZU[SQZR^X]XXYXT\Y_ZZRTWOURZ`X[X[]TTZ`[jgY\[VUZgX[`[\aPWUT\[SdWYkbVZVTc^YUbZ^S]_]`V_\\UV__Ma\\VVTYUa\\YT`ZZ]^[\acY[RZZZUZY\dYbPQV]]ZZaTZ`YW[ZW\Sg[]]ZgbOV\X`Wc\SXXSU_YUZX^WPZXcVTY^T]RXYVWYWZ`Sc\T^YYbX_V]Ydj[`Y]Z\U^hZ[\QUZVXZWZZW[Vac[[YZ\][Vf[\V]W_`XgYXWYR^U^Z\YXT[eWY^[UZ`^XV`b\XWYU]W[Y_e\RVaV^ZPWS^UZ\^ZVW`R\X_SWY[XXTa\aVXjW[U\a\\^]U]ZZZZRUUSSZb\\UWUTV\WYZX[SVa][ZU]WXaUXU\\a^ZY^ZSUTYY[[b`\\_\VYY\[\S]YZ[Re_US_[T_ZVVV]][\YXVVWRUWPZRWYb[XZX`YT_YRdS\[V^VbY]W[TW]YT^W[XZ`Z^^\d\[W[VM_W^UYUZaRZY]WYPX[WX]\U]Y[WSX[bWW\PTSW]R[_XVaN]UVVZX^ZZ]YY]\WZSe[YTTUY\_R\\`UcYW^YTU`Y\S^ZTaXWS]ZVTU]W]\T[VTZYYeWXWZ[XUXY[^cWVb[\\_g^V`P`WVZTZ^V\WV\S]R\RYUR^bXZ^W`QXWVX`URZR\W]YS\TeZVl[V\V]cXY[YP\[VYUX_XSUV_^U\]bV\[]^]W]\]\\Wh\Z^VXUWZ[`\]aW\XZU[a_SYeWcTYWPX]^[]\_\[[^PX^QXbW__Y[MY^U]aTY^f^\ZY\W]]SX[T_VWU`VVZVZTWUZ[^cXX]\XSb]_\[X^VZX]YPUXS_\WSWUWVT[T\`UZZZXTY^_Wd]aV_ZVZ\VWWV\cT[X^QaPWU]RSV[\cZYSS\U][[UTT^aU[YW\W^TUTYWVXS]^^^YQ\aVQSXQ\YYVVUP`_\S[ZZ]YNS]^WX[\S[W[\Z^^^]X^VUaXWTca\YSY]TVXQSYb_X\W][SRZNYT^^P_]WYO]TZX]YReXYVUX]\[[\U]ZZTZW\[\dWZTcUXVPV_\[[WYSUcX\^fWZ^XZ^\X\UYQYX[W_SZY]T[U_\ZVYS^RXaYTZ\US[^Y]\cagWV]W^Y[Z\W\[Z`[X]W[a[^XSVUXZ]`XfW^]SX]ZagU`Zi\Z\c[S\Z^ZVRYUUURVSX\YT^QPWZY[\S]YZ\WVVRXX^cZTPVS_\\]NWV]\S\ScW\QcXVW\[_[YWWaScgW[VTVTYMU`VS]WQ[W\Y_XWZ\VWWTNZ][]VWXYS]a\[bVVZQ[ZYa[b`\_YQWZ]V\`SVYY`aUZ[QXW`UXY\SVU_SV`ZOPVe_Y\UZXVQXVT[Yg^UeWWYWWV_aRTYUW[XPU_VaXgXRZZ\\[ZPa[YT^^W]W\T\YT\\b[[SNV\ZZTYUZU_XTQ`ZaYQVUU\XRU``]b\PZXXZcV^][`VTZZ^S]VZVcWW\UXVU]Qc]^W[YU[YQ\WZX\^VWUY_XU\][X]V]YXYZTU[^a^Z]bPZ\Y\YW]ZMKR]U_]W\^Y[UbWc^U_[Y_\`UWRXaXSY\Z^SZZ]Xb\WVTRUPISX^adRb\O]XUKRS[WXd\[VYWWW_YLaRQYZYSXZSXSXYYYXZ^a]dTeWZXVYX[U]U\[VQUaZW^][RWXYX]XXUUWXYWSZ`SW[TYX`SYX[TgX[Y]SXWVRSTX[Y\ZfT\Ya[QXM^VWVSXWWZWWdZXbTVdNTYSVbVOQWV\VYZXaV\^[WVXXXUVR\VSXPST\YVZ[V][Va[ZYaS\]X_SO^[]`]]aYY`_ZM\RZX\T]_S_Q]UWUSWYXc[[XV]NX^UaRa`Y`ZYU]c[Z\RWPVYTZSY]V[RS]WNQZR]^OWT[RV]_\XZYZU]TXVX[RaW\^[\^XNWXWVU__dZX]\XVUXR[XN^^T[WZZWW[Y^]`X`X[[XXZ\`VWQQRW[\[\_Z_T[[YXYZ\\aTaXUcSUVVZW[^X\UWUUYZTXa[_Z\\XZ^YL[\WYX\`^^[Zaa[XdZfVWdYX`W^VXWXeYRTaY\YU[VWaQWdTUYa_TaYWX_U\XYZSY[\YUbcZQ]WYZUbZ]WXV\X\YY]TTTWKQRWcXSU]_[SZUlU\Y\]\T]]Y\[\XX`[XWLVZ[[YXP[T\XY\Yb]XXOX^Wc_TaYXTT[R]\[UUYSVZ[YWX^XX]e^]XcX[V`YVYU[[cZZ`]cZ]Z]UZRR^[][\XYWY]WZX`Y[YY^YVR]_VVSYUW[QWVZWSY`aQd\aYQ^\]ZYWW_WaXYRSZZ[e_^S^^X^YW\`]^Xc[\]ZYVV[_TZWVYYTSX^OX[VbY`]VXWXZZWWXeU\XYYZX\eXY]U]][UY_U\VS_[WNVSU[U]]YZZ\SW]`a[YbY[WVUYZSV[ZSX\_^XWZW[X\\XZU\[PZY\^T\XX_^`^SXXQYYY[YW[YUW_\[WRS`\Z^]XVUV\X^]ZZQ[f`^[\]XV\aSWg]RaUbVWZ``XO_[`\`W[XZ]eWTQ_YW\Z_W]XM]^VU\YZ\VVWTZ\_[WWUVY[\^[T[N]`NSW`U\\VSUZX`WWZYNMQe`U[S\XV]U`]R]YZSZ`\[YYNbTW^^dWY_RWMgZWWWXT[[_VXScY[WXYYU^\]WaS[UXWRUOXPZ[aX[XYYV``[U\Y]YZW\R\VQVYU^TP^T^WXSX[bYY[dWXYYWQ^f]`QY^_]\V[X]aTZXQ\aT]Q[]aR\VSWT]ZVR^]YZ\cWPSW\dUTMXXYVPU]Yb^V[_[f`ZYVdXPYVTTQ\bWY\^_WZUaWZ^ZYYU_`[\VTa\Ui_Pd_\YR^\ZZge_Z\XRUYUYW_UdWTTZ[`XZT\W]Y_[YX\\[Yi\XS\bTYSYY]VY\bVY\W]ZZZ\\VYW]STa]XYbSVaeYXYQXXRSXX[XXZg_sWVUZaYVZO`Y_R`Z^XTZTV^ZYW`YUa^XX[Z]S\_`ZSV`_Y_[e]bX]\YjT\TUWU]\U_\XZVZfjXYWVSdV^[UdYX`]``aWR`Z]X]YWaW\W[\Y\Y^SbV\WV_O\V^[d]XVaa[]c[`WSY`YUXVZRQXYY^WWY_e_VP_mW^OR]dUV_]bYZZ[Wd__UZ\UPUc\_U]d_kWX_OZRSPPb\[aXX]d[WZWZW[\XV\hVWe^bU^VXb]Z[UW[PY\Y_Y^VdSVW\UVWW\[dUWWUW_][\XS[HaSd\[dQW\XZUXVWVZaXWXW[Y`aaXZV_T`T[dV[ZTTbX\WY\WYL^]WT[^Y^[WUSZR[[]_X]WYT_RZ[SXTZTV\YcVYY[^ZfSVZWSaRaZXYUUW`^V]V^Y^XURd]cXYZ\\TTRPWUXUXT]TVaRZVR]YTXX[Y`T_X^T\VX\UYd^_RSX\TW^VV^WTVTaY[WScSWaZb\YW_RR`YW^YY[VYh\a[\XY\`Z^S]^]\_[\b^Q^POTb`]`^ZZP[YUZ]`[]V`Rfb]VYS[]fi\RZZW_`]RT`[WPY__USWY\]UWTV\XZcU[Wb[[`]]]V_bP[ZWVP[TV\\YWRT[ce_VZY^W]ZYXYVS[V\V^YUTXWYYQ_WZX^b^ZXW^^QYO^ZSZUYWW[X\TZWWX[XYXWT_YdWYZSUYX][UQ\\geTTR]WXYU\b[W\[XSYaZSXW\X\TY`bZ_ZQbY_U]Y\`WVhb]WW[XWc__]X]YcZUUYYV[\UZalZTT_VT^TS\[^ZXS[O]X^XfU]`[WUWb[]f\\XRaX[c[VXV\XUY^\`V\\W^dUYNZa`^\[RT\VPaZ^XR_`WV[[bVX]WT\XWV[][dRUbZeV\WS[[Tc`[aSTUXZXU_YUU[W]\]Wak^TVX\RVW]XW[[]VX\\^P[T`\O[ZSZZTZY_ZWYW[_XSbTSaTV_]T[X\YYW[bdScY[T_XWWS_[[Y\aRT[X[VXUYVaQU\cYaPc_UWXW^ZfTcaST[U[W^ZeaWYTPSYbUQQXSV^ZWi]Wa^`_cPTU^VS\YZSVWW^h_SYeT`V\R[UQNZ^URZZYZUPZZ_ZV]WW[WVbWb\S\VZVc^XbO[WV[cV`^\k\ZlS_[TR\[`YW_ZUU[T_a[Q]a[N`ZZXUWYWW\XVNSRWZQ\]fZ]YWRT^^Yd`YWT][]\W^T[Q[SaYdWZZZZZY[P[aY`[XV]a]X_\`^a_W_[VWTZ[TeXYWWVYX\[abTRW_YYYXTcXcXYWX[dYeaZWWd\[h[^V]TWQVWWY_YZSVYV[c^Y]Z[OW\TW\XRRZWV]]`P\^\[TWUWL^[NZVYcbV]_\QWTP`]X]^]d[ZTXQ_[[VYYX^][V_Y\R_ZYi]Z`MQ_TXWd^_V\YebVX]`XXZa[]Q\UTVZ\W_[^[[\ZY][aZ[T]ZZe[]WWST`RS[SZU_][bWT]W]JY\mYc[VRbVhUOVR[[Y_RWVbU]T]a[T`]Va]SV]T\^ZHXW[UPbNYX\\aVuZXZTZWSPh`XlU]YYU\`gZ^Y[X\V]Z[O]SXTQWU_XWVW\f^_VdcQ`ViSZX][__\RZVg[`[T`]\YYc\cM_R[^[WSXY[a\U\[V`[\PZQVYU\cVO]iOTZ\hY^^_PYUVVcQaVVTP`V\W`[^b`SWUY]W\SVQW]Ye]W[X`]fXVXT_\UZXVUZb_WPZ^RXYXZUYX\YVU^j]SXN_XY]ZXRU^UUY\c`[YU^R`[XWVV]`iZQX\UZdY]a_WVYfkO`^X_kZZ[a\d[XZUc`S]ZR]XXWfZY\]UZXW_[]XZVZPf\Un\]Z[UX]Z[YSeZYYYZ[XVZW[VVSdXS\[_S\_Z_[X\Ze[W`\g]TZ]YRXWYW^\YZWZ^[X^aYaX]ZU^\[\\bX\_ZPaXUX]VVh\\d]cQYU`]i[QZV`YZU^VS`XZSYTWVY_TP]TYTWW]RUZ^Y[ZO]XZXhT_U_ZVYZ]\QbMRX^_WU_]`\\Ya\`W_\`h_]VV\TVX`XW`[PX[YZVV__W[UZ[^_cWS`[^SUTV^WZYc[_NXV`ZaaUXTWaW]X\_[YYVZ^_W\SSUZUSV[TS\V`UYU\QSV\XXYdVW_SUVZXST_UdZSWV]`UeVWW_WX`YWXPNbaVY]Z]a_\]QSWYXc^_\V\WXXYb][aUYXPbXXUZbX\ZZdWe`VY\]iUURmd]\OX_`TX]\a[[Z]YW^U[^WRRWV`^XcUZ]Wc]TZaYVWbZXT\X]PUX\\__ZXV_`d\RT\h]SUX`X^T^^QYbQVWUa[]^W^bRZVYXO`WS]WgX^^UMWVVXZZY[URR^V^W^]Qd^XVX]V_`gO[\c]UZ[ZXZZ_X[TYRZX_f\]dX\WWeXQVWXZV\N]SYbSU[QZ]Vc]\[[\[U\[YXYWgca\_a_P]Z\V_UUTW]W^dP\[cV]WQ\^\\Wb]_O[\]ZYbV`\T[WcX]R`X`_gVfZ_QZ\`\eT`]WZVX[ZZX`bXZ\b\\[Y[YSMY[[S^TX\XSXcXXR`d]`UXZfXWYTY\WX^^WU^b]dVZWXTYYZ[[SZ^ZV]URUXWX[WcRRU[[bUVR[^ZYZXa^ZPVZY\TYY\S[[\YQa[\Y[ZXa\aTUIWcf_YYU^U]VWYZ^\YSZ[aZ`b^\VY`XU[WZZYUXW\VbSU`[e\aSWXTY_UU\_[XeYZTYL]aU]\X^Y[SZXU\^UUYWXXZ[]X]W[[\Z[\^U\X_\_]YZ_b][^aX`\Z]YUUZPVZ[[`ObWS^^RaWWQYY]UYWYSY[ZWWcbS]]Z^_i_RbQa[TU^WXYYP^TYSW]eZTUj\f_V^SX]W^YU[ZR[VXZRVW\ZZOgXZYVQY]YYnSUdRTUV]VS[MZWZSZW\TUXR[R[Z\Y^[S\dWYWWZXPSZXYVS\`[ZYZ`_\\^`QV[XUZWRYaa```\WZbYXWUU[\bWVbUX\U\d[]aZ[U`Y`eXVVS`X]XTT^W_\YUU][X^[Q]Z[\Vc_TcWcUUYZ\WOQY^Z^\\][WW[RcPTQ_bWXa^]XVcUR]ZUXP\WUZUV\QYW[W]aWZ^XUWY\_VMdTQ[Z\WWTURUWWYYZW]\S_WZcZUWV]VUZXWW\c[SXVUX^U_VRWUea[ZX`Y_ZdT^[Wb\UWT\YYXUWX[ZaZVc\XN[TY^Y]T_PWZZ\ZeU^UXbPV^]OZ^[WVaXUZZXW_[\ZUTcW[ZWXY`Y\_Z`^XX^\SZY[XZW`R\XTVWQZ]][TYYbciV_^WWV]WTgYYU\SWZTRVT^]UZ\WRY\SYYQSW[L][UTWXSP]UY[WY\[TXTUMW\RSWVeT^[LTX^Y\c\YXUQd\U\WVac_VVW_a]VZX[W][R\UTc\YdRR`[YUY\TZaT[UY[\WXVaV]\WWXX^_[]VZYS[XaW`WWY\XXTVR]Y_Z][cW[W`VYT^VV][RSSST[UUSN`WT^]TY[\U[Sa_eW[a^ZSWSZ[[\VcbY^U[YU]ZXYYZcX\Zb_XP^_Y\`YYa\[U]aSR]Z[`VT\YdUcY]e[TV\_R[[Y[aZW]c\]RYU]SZWU][S`Y[UV]`S[UUVNWZP^\_\^U^X\VV]S^TQ[Ue[`d]WZUX[W\_Y_Ua\f[]Q^UON]PTVX[dVaZY\XX]]Y\\[X]Z]]ZUVYj[cSSWV\YYSZ]aYfR]`TVQYXS]\[_\WRSLXTWW`]_W_YVZS`UXXYK[QTSOSY]UZZRba\]ViTT\X]b\dYgQWYWPYYV^S]bWPVZS^ZgNb[^ZY`l^`YUc[YeXVXZfVSaX\QZYU\Z[W`][OTYUUYQZ\d]TY_[R\_U^ab[j[XZW^Y`\Z[YYPMZWaU_]W\Yh]\WWU[NbXYYP[WS^VP^WcbQ[[UaV[_hQRP]Y\fZVZWeXaVVa^aTUZYWTWV[Ze[]QMU_Vb^YY_XX\[^TZ_SWaVWZ]hVZPZWY`VVVRfZ]^R[X_aXTYOY`XcRcQTR[SYQ`kVXiZYRX\W^]k[^V_\XYY]gYab\Z`hXRQQ_dWZQUUP[Xd_XXUT^^^_SW_`XTUYMWYSYWb`U^TT[T]]aRXV[TUSYV[aZXUY_STUVTS_[[[Li\SSe]QYZZXN_b^\XZ\ZRa]V]YU[\QZ_Q_UOUg`^XZYMYcTfOXNb_ZY`\^_VRVORVTTY[XX]W\ibUbZUTfa_TSaWgT\YQU\QZ_Zd[UXY_U[WkT\WhVeT]U]bdN\X\\bc`VVWRZ^TbZbbc^_\NS\WXTQQOTSZSRXaRV`Z`[Y[]XWR]ZVYYZ`Z\XZ[V]X^a\`[][]g_]\]WKVVXZVZ^]W[^TWY^Y\_RXP[^V[a]]Z]Z_RRZ_PUZ^[aTW\^`X_PTXXR`YZWSWUZ\\UWZbY\dUdaPZVRWOXTYZX^W^T]aRY_S]WUQb^ZZ_SXSZcUO`Z]RXZ][]YX]]_UcU^^f^\U`QjU[ZfRTZP]edVZT`e[[TSL]QXX]ZYWOe[R\\]fS`ZX`X^Q]PaN^V^RVc\_bVK[YYX]UPYT_MWY]aQWWcWQWaY[_[Y]YSTXZRUT_Q[QdR`[XSX[\[aUX^UbVa^WOUkVXV_`_YXad\SO`ZPWgXYPYRV\T\ZYQi^XT\^cRWS[Y\WfU\]PPORc]T^YXZUO^P`VZW[`ZYURVYSK^O\YXXWXZUQ[YSa]VaZ]`VS\bX[U_S\VXT[\QUXU\XVcXZS\XSU\aYaRTeYUSbS\PWPT]YU]_RZdV]\^SW_VTT]S\VYWX]T[XRRMUlT[eY]R_\YWUWcQS]dZa`^Ub]XURO[VcdSVUXaT\RU_UN`ZSV\ZNU[\VW^YZXTf\T\SXVWgUZN^RX\\R]XTZ[\Y_VTRP`dZYaXfU^YW\V`WeVWV[WRT[R[Q]YSYOfY[XW`XYWVUS`]UXY_VXV[UZ`YkX^XUTWRJ[UUUTRUXZXT`XZZ^aXT`XPTZbT`P][^[ZZ]SXS]PVVbY_YbQRV]S^\_]USNZYP\XdaZ[a]TQ[U]_YVX]bZZVb\XWR]SS[YV_\^dX[T^c\^TU[[ZY[_]\X\PVc]V\[O\\X\WZSY[VYV`RWR\Y\\T_bVX\SX[X]NS[VfT[[d]WY\[[^Z][Y^V`Y]YV\`X^R\V^T`Z]VZZ`]LYbU^TZZV\PZ_ST[TSRYdX\[[_bSYYYYUThVd_Z[]XVa]XWV_YXTVZdZ^^T_dWaVYTXZ^bZWV[\TYYXWV]T[c\Z[][TV[S`^c[VVUUYU`W[]TVWTWWXX[[We[ZV\[M]VSVfSYVaZ[[]ZWRVW\dZ_Y`YUSV\]U[^YZ]`fW^UXW^WUbXZX`Z[W_d]__TiWZ^ZSWU[ZS[ZR[\XN\[V[XYO\VUe]UYaWZXV\Y]]`cZS\VZ^__QY^U^cdW_]ZSW\SY_Yd[cXW\SV^[WZ\R\d\^]VdQ[_TT\\afXYZSY[\ZWWORSW]]WSXZYe_^]^U[\VWb]]^ZRZSYbUUURWQWZab^\c^TZe\WTZXd[WS`T[^\WXUSWRXTcR]Z[[S]V[YXUV]daZPUaYX^[VV`c[X_^dQW`U\TZ_S[ZZbeV`W][VUVTVV`VeZZV]`SVV_cXXR]^UZ\\`]XR^aZ_ZZ]TQeYW_[WgXZ\[ZZ[VSWXXXS^RRV]YVWWU\ZWP\]Z`SXTRXYPUfWUZU[[\`\]TYWQ[X[XYXYYQQW_UVWWXY[[\]^Y\USXSYZV`\Z\g[]ZeZXYccY\W\dSU^U`Wa_]V\[Zc_^_UfZbdZUSM\U]]ZSU_]]UQj\WT][ZaZ_WX`^[YRZ\WZY\^YYQYWTUW[R_YXX_]^U[Y[X\Y]aX[XT[YQ[aXVR[_fXX\UV^XXY^Y^^\]WWY[XY__ZT^XUWYUi_ZZYZZZZVbYcQM^Vl^Za__\T[WYZ[O^b^WSbWWRRP^Z[\TYUY\P]U]PYXWcSOUQRW[]YZ^WZZXW[aU\QYcYYU\[XXX]Y[YZYXU[YW[[WSQV[^ZT`VX[X`VWZXUPTVYVYWUZQV[`WWT\aZ\^YS^Za]ZW^YTWQZ_\[^^VTVf_ZVa[][RWUV[UZ]]]\`YZe`\\eW\Y^_SXXNUY[NWX``Y`\TUWVWYYRW]\W\XZbUXUVbW^ZP[SV]^SZT`XSYVTUZ_WZ[U\T\Z`VWVca_ZY\bWXSS_a_XUbXXZ^]WZY]UQSZZUVgTb^Ye^WRVR[VY_UZZb^W^_YZ]d[YT[U`c]QVYVU`ZXSaXXV\XQY[\XW[Y\[\ZY]a[YTXVXZW^`]\ZXXZRaXYWVY_ZZ\W[[g\\Y]WPVUXdYUTZV^VWV^TXdU^]SWZWU[W[ZVR\[\\Z\\[^VVTY]\US[YTVRY]VWVYZ\XWXaT[W^[dYZgRS\WX]\TYdV[X^WWUVX^S[aSY]SWXZ]^\V[XQdX[dTXRbR_^e\YY\SYZd^W_\[X][S_WZTSXY_^ZVeW[dUXUT``\\cab[[_^YY[YVVW[XY\iYZVRgY\[W\[Z^TO[[T_]b^[]`SZVYW_P`W]T]`PUT_WaXW`[_\R`\[^Yf[W[X]YWY[\Z`__WU]ZZPY[\UZ\YUW]^dZQVhWWZYXXYYYTW[\[]SXZWZWjUUWV\]ZX]`aQX\^SR`\b[W^W_U_X_`X`V\SW]]STZTUX\R\TS\T_Q]Z^TV_^XXTcVYWWY\[baZUZW``T[dTc[XRc^^\XWSWX]SeVSPcQZRUOSZZ\UY_W\WZ`]]^SRTXZY[WY_Q`YYWVZYYPY^[P^aYZWZNSSZP[\\Y\WXT_WR__eRcQZ_hQUV\U[Z]]W]]UT[^[VY^`ZYYW]TbPc`YYWWU^beX[XP[U[]S\S[U^WU\X`V\USYb]]_[ZeT]bV]Z[WZ^VZTWZYdWecPVZaZ_[]ZZR_ZYbW]WWX\YMUbZW`^XWW`Z^[\RS\WU[WaQSYXVR]\Q[UbbWYXWZfY[VZc^WOXVW\]X`US\a_ZUOUdT`[]UXW[UYmZVZ]_UUL]RU`TXYVZRVb`X_WQW[Z[hW[]PZY^XaY^WXZ[\R[fVXU[[XSMSS[P][bRWX\]PN[`ZZdf^R^jU[Y[WdX[\YRYWUUaWdM^WW]W_ZVVZUX]Y\XeU\TUcR[VX^XQYWWTd\\YT[[^[Z^c^YYYUZX^T\XVTYeV^YZ\a\V[YWYdZVIVd`Z\]XXX_S]]U_SZ[\V_V[Ta[]ZUYY[bY_VVQY_O\UQVYPYX]Y_S\OTY[XZUZO\\ZKPWVV`W\PS_USY[YXWPVa]YW_UZXUU^[[^VYT`VaY^[`X[Sb[b^aWW`U\[]T[]VbSdTcY`OeZ^_UYYbWV]VX`dY\a_[XXY^[d][YZVTVfUV`\XR`TUTVV]TXI\TWZR[]^XVPUSV^a^XQ_]WXY`bSWXZa[TZVYV]O\O`ZRbZZXc_XT_YZd\Z[[GW[SVSU]VW\SZ]QP\_ZW^^^]TdYTU\]_[XYZR_]YaSXVU^bW^UWWc^W_ZYVU\XZ\Y[Y\[Z[YZ]VWX\WZSVXWY\R[[VSZVVV\_[abUaU_XVWW]ZKSSZ\bYRX_RVVSXa`V[YX`VUVZ]eW]a[U[]]\\W^e]^dYcZT`WWYXU_[[\TY]SXY_ZY]VMT`fZ]VYQMZ]PWV]\XXN[b][\^UWUVXXWWZ^XU_W\Y`X[SZVYY]_`V[M^Y[YXhSZU]VY`VY[_UXTR]][a[ZR^P^_TYWPWYTUNTRU[XVa_VY`c]cY\\VXaS_ZZW]gaQT[ZZ[ZW[Y[WU]VZUX]R]WWZ[b`Z\bY`Wf_TY[U_^_iWWZZ\NXTTfaYWSRaWT`Z\dWZWZYYZRSTXZcUVRZ\[]Y_TZTZ[SSVWSd]WZXW[Ub`X_]RYYTXWY`PW`_[WTR`XV[[`X]f[QTUYZeWZ_XOY`^[XVbZSVc^]S]]SZUX[SV^acYT\Z[\ZTZX\_ZVVUW]Wb[R\VZ[[X[^YZ]UgU[acTZXb^[[\TXXdYRZ[WX\XU[TXWT`\VaYV][SQ]_`]Y`[XcX_YXT\W^a\WR^WXXS\YZVXVUVWTZYZ]\Z`UWYPT[YZ`_XXVeUZYU[[WQ`d`W___XU^aQYQV^bY]ZeYY[\^XbX[ZRWV[]\^\V[\]^SX\V`TY^XYYX_WcUYXOX`X^]V`b`X[W]_U`^XW_ZWYZXV^Z]S\`\TXZVWaL\ZWTYb^ZZPV\W]^YdZWS[X[Y^X`XX[[`b[`X]VUY\U[SZ`WWV[\W\\ZXa\\VWX^XY]e[`Q[TbZTZgS[]TU[W_ZWWVaRhTW]V]W][XWVZ_Z\]XVZZV^WW\ZY^_^SWaX[U]^TV^baQZ^]^\W]R]X^[XRZcSbPY^]`ZRWUXZ\]ZYV`YWUZV\``YXU[^[\^YYVXT^U\Y[X[b^PTX^kS[WVXUTZ[WTW`^_Y_SjV^aYY[YVaWQXR\VTQQ]^TWY`TZTWZ`[MRW[UYZ`SV`\X`WWRVbZZQU`P^WTT_[UUYXZWW[PV[QVT`[UcYXYY`_W`Z[VXY_WXSY[T\Z[W\Z_[X`]TUYS_ZX_]^]X__c[Y]^Y[ZYYY]\\UW[[XVj]_VZYS`XcTT]WTe[\XbY]_QYQXV^^VMXXVY^]WY\_ZWXQa`bZVT^YYYX]YTTUV[VUYYWYXfWXZYdY[_[XWZW\TZWY^W\W[mXZ[[XX\XWWZb\a\^X]_[YbR\_UbX^UaQVUY_\aVY\[_d^aTV[VNY_^\WVS\TWYVZR`[[ZaWRVX\YXZWVVZWWW[`SQTZZTTXVZ[[WYYYY[Y\UVYW`\\ZW`bUTWZ^[VYZY_Z`eWW_aXY[[d\cdWX\WUU\[WUUT[YV]Y_W[UUR[bWZVV``]WWaVUY[][lZWcZcWVVXZ]U]TTVQ]URZX[[^RPVT`]]Z\Z`_ZSYTWXV]US_[_ZY[^VgXW]_SYUV[S^Z\\XVa[WYX]^PYTX\XQ^U\^QZbYT]fWXVYUYOVW\WX\\VX_QZ^]`_\_W^_TY[TUY_Ud[YX`\V_Z^\RZZ\YT_aN_NYSZ]]XbSZW[bfZW_Zap_^`WW[ZQ\YZ^ZWRZ^]Y\ZXZV\Y]PLPJ^Y_U\UVWX[\b[]YcaWZ^aWWaY_[XVQYWUjWZbb[XPW][__\Z[S`aTWeXYZ_UZSUK\^X_UXV][`Z[VY]X][SO`]d`T[VZ_\V^X_ZYY_Y\`XeVW_Y[S`WZXUacV[SbVX]W___\YBVZYT_TWcWY]YVZTX\U_}PWc`OZU[\W]UTYXYZY\ZRXPXXMYZW`YY]^IW\SVT\Z\_RWcSWXQcZZZ[[\Z[c[][YQc_WVU_WWSZWUSW\ZZZ_W\Z[X\TZa[XWRX]W[\Q[X[RVV[dS]TZXs\\ZYU\a_XV\NVW[[[X]XY]ZR]WRYZR`XQ[QWXP`Y[V_UX]VYWU\[M^WY]VUR[`aYZTX]X\]\__]VXYXV][R__aYUlXYZQ\UYUXXYSYS\bT[Z\ZQQd_Z][XXZUW[`RZ^TVWg^X`jRa\P_c]^^\o]`aUZU`cW[WT\e`_YXXUf]YX`][QSWMR^cYWWVUabWgX^ZR\WZ[U^``Y_\XRWgcXU\[[XQaX_cYVdTUY[Y`XIgeYRb]Z_U^\\\d`Wd\]jXXUeY`iYXX\XRUXYY[\`T]dVST`^d^`[`mebVV[\c`\PWXPV_TXc[VWZV`U[YT[WWZO][]URYY\ZYVZ]c`XXZbj\[Z\\QWWXWiW[`gX]^]VYVWWa_mTY_VZU_abbZXWe`ZXYMb]ZW[`XXYWX]]Z^Yi\RP[QV\Z^dUX[]WW^\U`b[Wb`Q\hdVPTa\VWX]e\aX]X`lZVZ`gbYbVYg_`gZeVRXZZ]WYYQY_XU_R[[[caW\W[]]T\WWYZW]YdL_`XWZ[XU]TZZ_\Y`N^ZY_\ZS\POS^VXYUVZYSV_V]S\YYV[XUYUW^_X[XWX\XXYZ]XU]Xdic^TbYXfcX]ZM\TZ[V\]aaVQW^[YQYbW\]cQ`WY^bZRcY]YVYT^[Z\[ZZ[T`RWS]TRZWVZU\TWYWV`UX]Z\UWdW[W\Z`YWUY\`UWT^_bVY`\U^WaZXT[W[Z^\O\[``WUT\XZ]Y[cTT]^Zb^WR\XmZ]XQQUXbY^XWWU`P[\_^]YYfWTV\[]TQ\_lTRX^Pb_[OYVWV`VU^\TY]Y^]U[QYZRUZXS][[YXQ\TWSX\Y^TZbU_\]VSTXQQ\]]W]URQY_VSVgZXX[WQ\]V^]]YdYWU\\YSUW\`XVYTeUXQQ_\XU[VWWYVR]UWUUZU[^dX]VW\[T]WPWZ`McZUeX]X\]WUZYXVZVZY_Vd^X\PY\Zd_[QX^XXbWRWT[]]a[]\XVW^VVYQ^UXZ_[W[U`UbYY\Xa]ZY]\TSX[aW[[RXTbUThVRSZRXZXVYPYW_YV]S_cV]ZXWZP[VVX_efZU[XV_YbV[LZZWW_UZ\UY]ZUNPV_S\VcXYQU_RX[[]\PUW]]^PTbe^_UPU\YbVTXOVWXVVWZYQbV^XbW[Y_Y\Y[UY[c]W^RZ_TTZXTZWYYUUYW]\ha^Y\TX_WaRZWUXW`SZ`\VYYSaZYXSVWZ^ZX_TZU[X]VXX`]YeUW_W^UWROVXV\QVT^^RZTUS\SS[TY\S`WUW]Yg[^YQUU[Y\f[\SaZT]]WaYR]X^^VRlac\U^Y]U^Y_`ad]e_^ZSZYc[ZTU[[Y`_d\e`_\\`P^d[\_ZcXUQRWbZR_USVY\^Y[[MXgWYV`SdWQfSQUdX_\YVUUT\^^[TaW_^UXVW[]Ma\[TR^WjPXW\U\VUP[ZVWS^_ZZ^ShVYY^]Z_\WTUWWXQ^_PUSjW[U]O\e[V[TOZcWXYWZZNYb`nWgnR[VUYff^VUZUp_^T_][S\X_RZ[WVTWVWSRYQ]bR]b_ZY\UYUZR\bWcSVV[X]US]cZYQVM]aZiQ^WZ[UX[SX_`^af\_T\VWO^QU[WV^Sa[^W`PbVYVPWY`ZTWWTXOTXYUZWXXYb_XY\]VX[e[RV]WbYaZXcZTT[QaWk]WZVVW]XXU[TdXYZYUhRW_X`_RT\TXdWc_\XbQY[X_][URXbaVZcWYXQ[XZYSWZVegTZXY[XUSacZYXSdY[\XV_][WacS]VVWaZVWZ\ZcXZW]bZ\W_W^VN\\T\\ca\Z_RYZWZZ^W]aX_SY]U[YWRYX[[][\XU_bTU]YSYXcW\W[Z\ZXUX^^VbZ_Z^[]dWUU[^UV[\^X[[]\[_bZZZY[]aU_O\\]Vc\USQ[XZ[WX\\^XZUaWVY_U^QRWT`\WXV]c[VYXR\WaYZVVR^P^[hT[`UfcY_c`XVY_aaV^XZX]]`YXRYY`ZTW\UZ]]VWVYSVRVfcSTSWUZSV]\UXaVUY]Y^T`ZX\[c^WUX[VXR]`ZRRU]V\cTaSR^_YXZd[bW\ZQXV_Z^[XWc[aW^ZYL[Y\WV\YXYR^W]]PY\XcU[]\YPZgT^^_gY\Va[^T[YSXVUVVWU\VP\_QXYXZZSS^YUb^``b_`_e`PS_aYW^ZYSY]XV_eZV[X`V^`Z\^`W\\XYbVbVX\VW^S^WT]JYZYTS_[QZPWVSb\_T```RWSXTWUWQW]\SXeZSRZ]Z`TV^ZQV_bYYWVYYRZXSTYW[VfYWU[^]_[aW[X[[VXUWZYbZXX\VZcWiZUVYYYdWZWeUbY]X_^eQ^Yf_ZWc_a^XXVYgXX^YUZ[XV\Y[ZSYc`VYUN[ZUW]Z\\a_UZT__Zd]W`VXaZWXhY[YY\fX]bZYUZZU\TWUV[V^S\Xb_YZ^RX^X[RRWbj]UY`YXOLUWPdSV]V\WWU^ZXYX[ZV[UUUQR]NS`TcXVXQWUWZaWYYW\VY`d_V^Wc^\U\\_dZ\XX`SWXYSeXUkQT\XaR[VR[d[Y\WaWV\VYUV`V]V_\`W[\\`_\W[\U_W`WSZ\UX^XYO\\XYZR_Z\UW]SX\[SZTL^YWZb[e]YcZ]Vb[VWYYZYTZ^UR^U\UW]TRXY]W^[YVWP^\_^V^]\VVc[\TT^UcaXPRR[UVd_T]UY`ZUUTW_V[dRZ[[SS`YY_OU[\\XYYTVaW]`[]X^a\^W_XV_W__ZYWYUa[[VW]\T_U[[X^WSR\]dSbd[`a\PT^XVfZ`SZ\f[WX__^^W_bTP[bTc_WaRYX\aWTT`XT\VYa]X^ZSb^`YZW_T[_YVW]ZWVXX[X`TV\VWZV]UYY_^YRYV[aXWVUXdXX`SU\bZU[R`XeW\W`^cQ^XZ\X`\cX]_WS^WaS]``]`dWWRYLY[]UX`ZYT_YTbWfWb^S\STp`^\`aS^h`TZU[Z]g^b`V[OSUUQWUbZNXXb\\a^U][TXYfZ\TYW^TVQXbXQR][[W]XScTSa][aZ^[_Y`X_]TT`d]TY\aVY[T]Z[VWcV\TY^QUVX\[SXU]_URcYSe[TWTRZa`[^\^U`[XcTTV[d\\Z[PUedT]QTYUM[PMX[YYXV_QSXSQZ]`_W`V^LY[]XQ[T[WY]WPVZ\SdX[V__X\a^`fY_X\QWY][_WeT]SV^]b]_PcY[`ZYbgQ`V]ZWZ\W_]XX[T[O\\V]XSYSSRZ\\`_XTXZ\VPdYZ\dTUcY[Q[[^fZQYZZf`\b`\XUbZUW[SZYOZ\\YRcXa^ZYadZMQc]\]SXVZXTTYRXVZ__^VZ\ZZYXTR[ZXVWYYRb[TY`Z^UUTUaZ[U]_VWTUZ^bVXY`[\^TcXh\[WX^YT]]Z[[V_VWQ`SXXa^\V[V[ZUUW_YVUTXZ]Y]YVX\SU\W]UZ\X[QV\UZXZ_YSZ]S\PW^Z]ST^UTRPZ_VVZ\[WWZ_YX]OVU\U_^]bVbXZ\V[RYXTO\ZV[]V\[WXX[U\\WY\YS]WZRYXX\_^TWfYVY]P[`SeZZSYVTXRWS^TWYVWRXY^][YXXb^_eW\b[VUdX_\VPSaTZd]XTW[UYYZS_\bZ]bV]U^VSR\YZXVSRU_\W`TVZgPXVY]]PSZXRaT^W_RXU\X[YV[VW[aU]R\X\[`YRZab`[\]RW^N]VYLTPWVSXXZZ_\WVS`fW[^[VYZZh`SXQXbV[T___[R[VSVTU\[VXX\bab[TUUYX_`^_ZaZWZS]W^W^dZZY\[XZVYScbTZZZYT[]VTQ]Zc\\[Zg\Y]^]Y_Z[abTYT[VVUYYYZ\\^VW[__WdSxPaUg\`]VZYTcY[U[^O`YXV[T^R]VWO\YUZV[Z[VXWTY[V_S]]XVW`a]_Y_Y^Z]mSYaUY_M[X^W\[Y^[[a\X_Y[WV]STXYf]\XUV^bX]bZX\[^U`][dZXPW_[WQZ^Qc^X[YZad\[P[ZaXRUVVVdV^\^P^_^VcfVY`YY]R][X[[XaRVYV^__^^YXaU]PY`OSYZY^beSkYT_YUfSXefXWWb^]WR\^]U\Y[[_a\T[PZQU[cQ\OYZ^US^\ZgX[[YUT\\_X^\OUZR^X[UZQV\YRUdSV_ZRaV__[VUbYVZf\^TXYZaaU[XVWV^ZbVSaXU]\XT`[Z]W\\PVZUa\SVSY\^XTWU`QZ[V[[VQ]TZW_VTZRQ]YVdX`XYQSUZVWVSY]]dU_ZX_]VSWX^XPW]UWURY_^QZ\\SYb^U]ZSYR[U_\XOcYU\XV[Y[X\Z`XY[W_[TVU[]]ZVYWWYX^\d]a\Y[[XPZb]T\`\X]X`VRZ[VYYPQ[\]S^Z\UXTVS\YcXZZWUTV\T_XZ\VZXX^W[aUb]]Y^UY\Y]_`V]UXV_ZXWa\VUT^aVQ`Y]]a]Z\bRbX_WWXYVWeSVRZjNXYZWeaRYaZ]W\[T_TYY`a``U`\YSYZXWZ`]]^VUWXUZXZYTZ]a[R]]VS[^[XU]XRV_STPfbZ__VUU`Z]g`W[ib[`aRX\cUV^UY[SWc\cZ\`YX[X_ZRSVU_[XZ\\XV\Z_ZXUX^WXYQaVSX]aZU^[VUXO]VUZ\\bXX[ZY^SZ]]ZV[QY\SUYZXR_YWVUU^]QUTe^ZQT]f\UYZ`X_]\SX_VWY^XUUY]ZZ_QT`[NLWR_TXRU\VUX][\]P\]`WWQUcQ_]^XOZW]TZVWTOTV^W\_YWX\ZTVVS^ZWPZWZQPd]ViSUOOV\^YZY\R\SZ]WX`\TU\`UPVZUddaR_\\_SXX[V[\[\[T[VW\^^VYaV]Xl[e]_VY\ZT[OdUYV\ZQ\[VS[Y^UUWX]j[`W[_ZbTWXdY[Y[QZ[Q^TSZWUd_f_TXZTS\^W]_VYW^_TUQYY^X]]\iXZ\PPWWRS]cY[YX\XZQX_aXX[ZUX_W\]XW[XUW[\WQ_aY[QW]_USQ]Y]SU[TTTVUW^][WfTYXZVX_OZSg_SVZYYUb^VY[XVT[VYdaR^SYT[X]TVWW\XW_^aZ\\`[_QV\]YYVXWbXdW]Q\`ZY^UUXRVWWYXYW]UYPXZ_XXS[ZQXZcY][UcdXUY`Z\VWTT\d][X]VZ\]`a[XUWgV`ZV\\d`XSXd^[YXSYZ][UgT\XYTUYbYRfWY\iaV\fYa][XZY\RYSg^V[U_UWP]^V\Z_VXRVXYSSc\VWWVcb\ZVbOZZ]dRdVTVVZOZ_[_`S]WXT^ZXXTVbX\XdZY\ZSWZTZWd\U^X]\XXZVWS]_^aXTVXZ]YYXZYV]R[WUZ`VMZaX]\SNWS^LX]Y\ZQSXZbYg]X_QX[c]OXTWaWc[T_QVZUZYWQXX\R\]\UU`XWXUT\YYg^cZY\\YXZY`SWaXIVf]S^RUQSU^RPUW_``]ab`Q^[^Uf[R[[VV]UU]ZVSeZT]]_\[YV^WU[WY[Z[W]WTPV[a[[_[WZTRTYc]_X[]X]^aX^]XO^WRYQXR`a`WW[U[YfS`]b^ZZWXPVY[ZTLV_^_]b^\U][_\ZXY\bYRXXaVS_UUeUU`T`\WZWW`T`WZ]Sd_PWU\XV`Y[^ZXWYYO\SUVc[TSTXV[^Uc[WUP[_PUX]WZOPeX\YPMZUaYV]_XT]^QXcU[RcUYZZ_R[ZY\X\Y]`[VXTWV\ZXWPZX\RZTR[Q\UWV\V\ZTjT[__SWPVW]V\]^TPZ\_^[Y[VT[^XU_Y[ZbWXTVZ[]Y\VW^ZSOVWR_]bVX[ZVbY`f[bfS_ZS_eTT__ZSXYI]R\VXU``SVW^[Z[UQQXjWWgZZVPZeSWWYgWSTYZ[^c]XT\bKURYUQXW[YdY^WcVR\X[XZRUS_aV_W[WXZUX^U[T[V`TU^UQV^^U]YcTVV[^UX]^V^bQQZb`X`XZT]OXUYUQYTZYWX[]\YW_dYUT\TUcZXPY\X^VXbVM^Z`a\SX[[_ZUR_hUQc_cbX^\_SOYS[UV[\fXJPWY^W\U`VZ_\RY]SUXT[\]\YSb_hW\_YZ]]X[UcSPWWTcVeS_QQZZUVeX[VVc]QUR`Y^]Z]Y_^YfYWO_eWR]X\]gYYMY_PYLWWccf\YXee\VVUSbX\TMW_XSVZVdR[Y\[XUZaY]P_XY\\TZVZXV_VSi_Q_aSSaV[V^SXNWXR[YXQ]UYZ_QbYW]R^Q[Z\TYYWUOYVUbU\b[aUWVXa]\XVZb]UV]t]__VWZX\Y^YQ`[Z]TTO\O^VVY__cYWWcYTWaSX]Y_QZTVZ_QWcTW^Y[TU_\WXVWYVTZW[W]`_^[Q]XZ^ZTVYTX\^^Z^VV\_X[TYcU^WR\Y_WVWaWYYaUUnSWUZZ\_Ya\`^][U]Ye_aU^XcUSd_]UVaV_^\ZTZWUa]WWcY\Y\[[^_ZT\ZU^\SUY^V\^TZYM][WY`XZdYWZ\T`\XkWRe]^XZZd_\YTQZ_SWYdW[eW]^X_ZcfTSYW]URQa\SU\Xd[\OWd]]QYY[VU[ZY_VdXaZUZ[WZZZW[X[XSWVZYg\`]Y^\]_`YQWXSS[dYQ^\X]_WW^[^Z\XbYZZT`Y[`UTSTWa[Y[Y[]ZQZT]X\VZT^_\^]aVWQ\\TV\YUS]bWZPWWLXQbU]_ZZYXdYWWQZYUU[][QNZ[S]_ZbZ[[XWWWUTYRbYVUVX[eNWe\WXW[c^[UXU[Z`Zh^XVW]bW[\]Y^Pb]TVWOP[\YUWZWiaXYQ_XS[W]gX\P`gV`XYXTZ[\\b_TY]WZT^TU[ZU\YVTXT_RO_eYR\YY_XVXT[[NSX`][ZP[VUM]Z\UYXT\\VVYW[V^[`W\WY^V[Xa__``S_`T`S`\RdbZ^ZYU[UX]]ZU^]bY\ZVUWSTfZfYRYVXUTTVSUNR^XW`\S]Y[\[`TV]ZX[WdbRX^RU[WX`]]NUVSTc]dTSSV[Y\Q[VZ[XRSY_`P[TVZWfWYTVXXYXPYW]`\V]WQUWWbY\WY\[WWVReZVZ^RVV`[`Z\^QX_]`X^[`YZ^YWSU_SVW\Ya\YY]^TS\QTW\XU`bSTY\d\ST`UTZ^e[YW^Z[PRVZWVYZ\VXZZYLU[WVV\\V]X]ZT]RaRU_YaXRX]X]]Ta[W[WYWb_RUR\S^^WTWSaZQSLZ[[b]OSOU\\PP\[^V^]^UTXYUUf`\YRS`YYRU\^ZVQeddRW[SXUVQXYS[WcbSUZSSYR_VXV^UV[U_[^ZY[`\Tha[\aXU^YVa_VUW\Y]`WWTbc]`]b]__X`X\Y[dW\^NkPaWWP]\YVXN[Xa\OX\\W^NUYM\V`Y[XVUV\T[TX]XYW[[P^WXb`OWV^`cY[ZeSQRXU_[WS_UXU]\XW]XX]`cTQX[YW\eYZXZVoXW_ST]W]ZYYX^]TVX_ZZX]X\_T`USSUWW[\cU\ccWV_i__Z\^[ZWS]WV_^^]e^^ZX[RZeZ\WQP\[Z[W`XSX[V\WUZbSZa`XVZ\[Y]V_TZVaZX_Z^XbUgUTW^XQ^^Wd\`Y\Zf^bZUWXVWWUbdjRS]^^SY^T][Wa`^PUYYTZX\[[VeYXT^UdaZ`Z_P[V^c^]bVVRTSYaaZYa_Q_RU[\UaW[Z\U\^`]]\XUXW_W^QWZ`Y`Y``\R[W\[[WPZ]dRfWe`T]Zc_XU[\RaX[ZYVY\^kVZ[XX\[bhY_]WVY\X\XRSgaY_eYZX]ZOVWZP^SVZY^SYWV]UYXVeS`S_TfURZUTZTXZS[eV\c`YiUO^^[VaX]YWYWV[W]YXYaa[XTWiO^Z^]`YWU[T[UYPRV\[T\^]WY[\URVUQ\XUdS[WTSW\`\]YT`lUZWY[X]]T`X^`bOU\P]MaZQ`ZYRb\^ZZ]_WTSZT[\VY`[_[V__\T\iWb___ZUX]\Y`X\QYVSSVUfTUTQTZd]YPYVZ__WS]XVVUQdZX_[l_aWW]SX_\]X^M\]Ub[XYVW]ZdiYUT[RY]Yb`^]\Z^\Z[V\ZZSV\YgYWbZTSc]VX]I\S[eb[VZaVYS^U[VYV[UTUUaZUSYU]]X[YYTRXX[]\TXb^QXbV[\\SM_PZU][[\[`SYZY]aVN^SQS`ZZZYbVU[\a[]][TgZYXZTeU[aVXWTWYVbXb[We^UY`bT^Z`XZ`[ZS^W^R[_W_ZWR]SZ[[][[^VZW[XUZcX`ZWQWYYWVR_KUY^R_XS[QYV[Y]b]WXT[`Y\W\ZYVPV[\]Z]][Y]W`_`TY_][XaWWURV]YVUZR\[]XX_TV\ZZNUS]SZRYVZaV\SWcY[^Qe]\YXbX\VT[[X[ZXUb^c][OVX^_Z[UYP_ZYWRUPYYQ_WY\XZ]`[ZZXWU_[V^Z^VTRc\TX]OZZRe\OccV[aQT[Z\VWR[PY`[YVVZPXVZT]`^X\WTVZ^_U_TXaU[V`V\WTVa^[U^XVUbOQ\\^S^]Yc`XTZYbhVSVcXW_`YW_UT^_WTaTSZ[ZadVYXWQ`Y`Z[UXXZVUV_UXVUadXW]__XS``YXU\^PYX_]ZXQ[O_Y]ZWV[XW`^^`VZUY\Z\TZ^ZP`S[]aZ]S]ZN\[Y]`YY]ZZ\^WdZeVWWV[^RTbXZ[ZacZ][UX[OVX_d[RWNR`\^Y]Z_ZSUZ^^UbR\VZ\dRW[^_RYYc]Z[ZgYc]YYUb`XWYO_WRSWSaZYTZa^RY\TcWW]YZ\]_VSYZQfXY_Y]WUWZ__[X^VXYYZ[]]`]ab^SUYb[Z[U[UY[UR]STWS_ZVXZ\[][^RWY]WV]`]]b][VT^U_TZabZUV_[`]RWXUX[^UX\XYWWT^WWRgZZUUVVUV_O^[Y[V^^XPTXXYZW`UVYUXS[W\[W[U\Y\^aWXZSZYW[]``STc^S\[cYU\\TY[X^ZWYb[[`RST\Y]\_QWZSXW\ZWXX^[SeTV^X\`\]K]UU``WZWT``V]U\QQU_XTZWVY_a[WW^XVZZ[cXX`W\XYX`]WZWU\^TX\WW^T]RRS^_N[[]OZVc[Z]`UWZ\ZU^Z_`af[YW[bYXXXY]WVV]TW]RWVYR]YXUUSM]Y^WdS]T_WOT]Q\XNYc^SSVSX[WUX]_UTZXb[WlWXbY]QRVYT_XafbZaWYaXXX[_XWS`Y[Z[XXXVVUYYM\XTXU_U\_YYgbT[Q_VTZY\Z\Rc]_\Y_\VP]_\_U\SZXU[TVZ\_X[UZWZZ^\X[ZXYXSUOaW_]RYWVWUZUYXTVQY[^NYaXhW_UX`]fWOcXYZ[_]\YW\\^YV[\_R`]\[][[OYbcV[\Z\Y\X[_RUVPQNZUZZX]^ZS]aX]W^W]VYW^VWUYYT]UaWZ`aVWaV\WXTX\`\Y[YO]TWXdYb^]S\WXW`YVUX[W\UY]aS`W[]WVaZ[Q_\OVWZ\YWV\ZeYVYVWgX_X]ncUZYZaOc^TYS^ZYZ\XYTYY_^e\XZ^V[^QZ^gYWZPY^\daO\W\TRc]\S[\RWgVWYW^_fTXTZU[YWVW]WWTPSTSaWW[WX]\OWV]]_Y^`ZXUQX\Va_XNZZYUVWYZgX\]Y^WV_`W_UdSVdURaS`ScXb[SY]`hc^_cS]`Y\XUWWXZU[ZY_][`aT\[ZZ_[QUcdYc[Y_dY]V[_^UYZYW_[T]ZZXYW_cUbSOT[iXZsbT_^XUTUPXVUYbWV_]]Z]P`\dWWU[Y__[WY]]aTYYVUObY]VWZ\`[UVSTLT_]_ZV^ZY[SUfR]Y]ReaPdd\Y[aPVSSaZXT[TaZU_`V\ZZ^WTXTWZ\XX]YX\YZXVWSZYWU`dU^g\XX[[S`[YZYY]VQ_\WaVX\Yb^aXS`][U_`^XXb[UJdSZVV[]RXV^ReY\ZbY\^VZ\\XW_`ZWYYXZWX\SUTWT\T]Y^\\[bcU[]T^X]W[Y\T_Z_cZWUVbT]WZ`Q[UWR[`S^XVk[T\YXYZQ`TU]Y[YXTU[VlRV^[^b]T_Zf_U[X`^]_[W_YZ\_R_XX^bVZ][WWRTZZT[USV\fY^_U[Y[ZcOcU`aPUU]XeZ[[XSP^^X^\VY\[VV\\VbZYY^QZ^V][[b^YWWYV]^\^]\W\X[YeXRY[QQ^ZZWY^\P\WWXU\Y][TR]eU[U]YUScUWY\Y^bYXWY[bVSXg_[W]Za[XdYRYZVWVc[aY][UYUYY[Z\[^UY]QgXV^RUS^g]T[ZjVW_j]^`^[YUbUWgZZaXUUe\P\]\edP[T``^YXQ_QXUWXb_^X_QR\Z[SWdXVX^\YZ^U][]UcSXW\]X\QZYXV^YTR`ZRY^XcUS\Pd^UU[XSQYb^W]V^RaUY[[W[UY\N[T^Td\XUXZQgZQZTV\eSVjV_[bRZXb`U\Y[UYYT]_W\XWb]W[X_RWSS[\X[``SdYZY\ZRacSX^a_bbZfTNY^VZ[`fS`\TW\UYWYdQURXXcZe^bUbXd]`ZOXT`U^U]\Q[O[\d`Ydc[V`QWdXZVYVXS\_MRV\^RRb\XWWYX`W`YZU`\YWUUbZYW_WfYZ`^UZVZVSUgVX[\WORZSWmURU\]ZVWb^ZWT\^]ZbZV\eXWWZZ\X[Y]Z_TW_XRW]^VZU[YTWSSW^aWYUT\WVbWe\X\W[RWX]YZXZ_[]YZQ[^QVZ]]XUam^V]\W[QX`]Vd]\]X^XYZ_X]gYWZ^US_[ZUbVSScWVXXZT``Z\][W\bRdYYYW^]Z]UV_U[XVRfWTWcX`XbT^\^XMYVZ]\YV_U[]Y]_^]\SZ[e\Sa[WTW_W_fY\Sa`U]]U[]\V^XX^gQ[VWXcTWVXT[cUYVX]VWf]aXZ`bVV\^U_^^PV\YV[oXOaY[dW^TW]YXd[Yc_[]YWV`eUVZbeSUWZ_V_YX^aZYQS_SXXh_XWV^b`VYX\Z[bYUYcZVXdL\_fWU[XNV\ZZSSZR]Y[dZSWjTb[a`eVVb^XVY]TZ[UW[]WeX_]XWQ\XUUTU`ZcXZ][`[VWYXXc[QYQZjQ[[`\ZXcfVc`ZUQ^ZXW][[XY`X\^dW^^WYXM`V\S^[WWhXbT[UWQ\YX[UZ]^ZZ\RPYV^PbUQYU^V]\TU\XWT[W^WQ[UUbUUR[UYTU\]\TV[U]dXYS\^\V^QSXfRTXWW][ZW\WTbU\e_XZaTZVZU[Y\^aWSWX^WW^WYVZ\\dR_N[\U`\^c[Z^VSVOZ]XXTW]a[b[^dT[PeR_OVP[f^UVb\NXQXcX\Qb^]TYUX[V\]_[R__SYVR\_e]\SX^[^[WeNUYTYXaSZU[T\e[QZ[V_ZVZ[YVXX^Z]R\VQ^\XY[[aVYbZRbTU\a\ncZY[V[U_]]X[YbeSSaUc[[Z_U[d\X[\YUSRZT]U[[T[`X\\ZVPS_PU]U_ZWUZ\]M\\Z\]\TZ`\\Xc^\WbY]_TaYYUa`][XR[WY]_\aYYUXW]ZY`UYSVaR\_TY`V_RYYYNX[^WUWSPSY[UU^aT[UYVVTX^]X\WXXWUOQZY`]Wa\\S\VYU^YOUYZ_PSY\V^f^_b^aUXYY[VTa]TWYjZTVZYVRYW\[UZQWY^VWZ^[QSa^d\cS\a[Y_ZPXS^YVU`VRVZVXU]`\ZZ`YXXWYZWVbVVhUaTP\T`YZaZ[WTVXYYUWZ]SWYdJVYVY`Y]]Z[baWnc_h\]TO]bXSa]]X\aW^N[PgYY\_Y^ZaX^`[OQ__WWVWQ[UgXWaVZfa_[`^c[[[UaWW^^U^V`]XY\Ya[\SZQ[Z[V^f^V^SZZY]]XU]T`\`_WVZ`VXSVSaUVYZ`WVZ]W^c^[\okZ\YZ`XZa_PW_R`Y[YY`Q^SWZX\[W]]VTWR^TT^R]Q]T^\P^^TZUTZZX]U_UXWW^\[YXTZT`WZWXXdYg[e[U[]WU[U[U\]UT[WV`ZX\[^b[UVZX\TZVUZX[VU[cW^XYa`W\[^^^UUhY[W\SRTUU[bY_[_ZY\`VaXT\^Z`ZS`VS_gTSUVVYZ^X\VWW_\Y^VZZZ^]T]XQ_c`^Y_`[YVX^^_VX[Ua]_RVY]]_\[TUYS]X]ffUX^XRZU]]aYZ`Y`[YV\Y\YT^V_\\Z\b^dWU^[Z]a\_XWgUVZ_[WVVW[XP\VY[WR\YXh`Z]_`S_\]^X[c^T`Vc[Y^W__ZZSYP[UYUWX[SXbYN_ZZZXVKWXWT[cRcYY^XZVVVZZPZXU[`YZ^SUcbcOUYcYZaX_gX_V\\XX_]V]^YYXbYYS]UXU^\VZXT[[VXWcQVQWfTYTbWYbRTXXXUSQ[X[ZeR`abPdZlY^l\^]VYadpXZZYW\WWXYVX`YUb]\dTZKUWYPUQXSa^Y\W[XX]]cQ^]Q[]WOQUb\ZXWY`VXSXV[`_XXYcXa[TWVW]US[[]TYU`]Wc`NWdWW[X[Y^cQX\h[Vg[V]UU^W_TWY^ZSZZZaWVQ]SVXeX[Z^PYX`SbYZ[YV[^Uf^^ZPZURWPX^VZUb`ZVWYXb\[Z^]]]_P\i[R][VXbPbQUXUV[X[f`[VTW\ZWZVO_`XZ^`]YT[`ZVQ^UUTPTWaQ`YTWPYXcWR^[\VVXZ\[hTVTVe]WVY[XZWZOVZ]`_[VU]YTYaVZTUWa`bWkY_cZ\Z[[U]VX\PWVSeVb]eU_X]fV`UZYQX]W[[WZ\Z_\Ya_V\R]YT^cZ`P`YbYW]VWU[g`Zd^VZUU`^X^]ZZVKPabU\[[[bSib\[O\eUZTd`\Y_WWSc]`[VRV^\]XTXUT^UWTZYUOPX\U`_[a_]a\URR_RT[[VYW[PZ[US]YW[^Xgb_W]YYY]TX^_X[Z_ZZ\[`]YVRMVX[\aXW\]]RXXWZZTR\ZZ^WVXUSYVVPSRX[]W\dX`W\TUUUT[^[Z][WRUW^W]UV_WYZ`Y^UOXdUSZX[OV`[U[Q[[UVQRW[VUXZXT_YUPYb\XR_UVXSRfX[Z\ZU]YTXR__`VX\R\][^]YRX[\SXU[dVSXX^Y`\Sc[aV]WbYTYY[YYQ]Z_[UUXTWYZ]\WX]U\UVX]V^Z\X[Y[^VZT\]XW]WPYbWS\T[[`Y]UaV\[kTTTZ[YWkT^V]V][_[VZW]Y[UXYabUY[YWS]bUYZZY]ZUZW\Z^^OQcYZ[T^[_aUYYT[_YW`]WZYUU]RYYX_`ZW\ZQ[\_VZ`VWZYUZZWTVWTWTaSQ\TZaS_\\\SV_VeV][XWXYXZVV^Z[TTb^^[XWVY[TWZT\^VVaWTU\VbTU^TZWa_YSTZ[UUYX`[Z[V[ZWXY\_bPQW[V\WZ\X[XUa[V`XTYR[X^WZ[[_f]\ZYTRR]ZWVeYVUVW]Y`]]bWZXX\Xc^YTV]^YWYSY]WV_[[eVYW\X\]TQQh_[UWW]ZY]\TVVYW[_^UZZX_\WU`XTY_P[W_d]\[b[XVQXX[_`SS]kT`aP[YXX^YX\SZW^ZX]RZ]WRZ[[VW[UX[VX\_VQ\SWUTX]Q[QVZ^[Z\VUS^V[ZWY[OVZbf^XS[Z[V\eXTTYS^\]ZZ[WQW\QTS]S_TR\^ZZXcUR\Y[Qbbh^RSVa[dTVVZYZe\V^UfTWOdcQaaV^WQ\W]XWSV]VWU`XZ`]Wa[U[YV`Kb\WQ`eVWbVU[_VT^XXWVX\UVXU\V\]UVXT\X_U^RNbYQT^WUYUWZY]TXV_\S[]X]V[[`eQ[WQUWN]XT[bWS]XVVP]UPlZaWUTWa`RXZ^[TTWb][[\SV[VYW^\VX[V]\V[\_[[bV`\\ZV[UV\aXWVM_]XT]XTW\SW[Z]dX^]XZT\\SYZX]WU\YXVZXRRbZVXWU_]XYY_U[U^_\U]VbUd]WXV^`XQ\_[d_V]T[eYXZ[UX^WU^YWZT_[XSWbUZV\Y[Vb_S\SRcYjTZWfZ\]W_fdZPgU^SZcWYV\VQ_ZT[]Y]RZ]U_]WZY\W`WYUT]Y_XZTWU[_YXTb[\[WY[VaZ\WZYYbV[X\_[QY[URYVWXZT]Y\TYU]cYXZ_Y\P_[\Z\ZZYY`WS`Z_f^^WV_ceX_YUUX[UVPU]\cX\TY_YXYWZYWfRdYRa^^b]T[\ZUVXW\Z^b\YWUZTYZ``X]ZTaQV\cYXVX`[]]`_S`WUZQZ\ZZ]WVWb[Yj[U\WZSZT[O[TVWZb^ZTXYfYYWQa]X]OV[TYZWTWY[Y[UYWZQY[]^\_YV[X[S[YZZXTYXXZS_YZ]SjVX\_RVXU]VSVS\YTYXVdXT]XY_]ZYYWSVVXYUaQ^bYZZeUUWcWVW]WL^Va\YUW^T\VX[Y\U]eY_YWPb\WLUh]^aX`PX\TWVZ`YS^[WYYV_UZ\Td`_U[Z[WVT\ZTXWW^`VYUXjWaaZX\[`\]W]`[[VWQX_TbdYY`WaWe\W\Y\]VXaYZ[[QZ^S_X^T^WVWb[Y[\]Y^YQ`SZWcY^Yeh^\\W`[XaaLXd]\Y`]Z\PVc`^[U]VZZ_V\Y]S`nYU_X^\VUQVZ]N\ZY[Y]_]XXTTZRVW`]\XX[_[T[VdTW\][XSXcRVZVT_\_`VWTSVZ]ZUU][dXY^YT^^XWV[_YZP_SeZTTPZUP[h[YZ\\aUZYd^]VZS^[YWVWRe^V[WXZXZW\N]]WaMb^WRb]^WWU\_Z_`XS^[TWYVXXSVV]Sahu\\ZZV\]ZXUXTYY^ZV\ZZ]]Z^WWZZUZXTWQ]Y[ZVX_SX]aU_Y]]YWY^^VUW`_ZXYUWZ\[[[TU_X[[VXW[^`W][\XW\\]X[TU[\Z\T]TXVZaQ\UT\[YcXUfZVR`WXVW]e`aZ[LZ[[Ycc[TU\WU]U]X[Z[XUr`YW\X[WYVVYX\bWZT\Y_Saf_Ze[SZZ\\[ZZZ\\X]\^c^X[SYX\SSQ^`^[[WWZ^_^ZZba]V[XWWZUXU]R]a\T\TWXYW]]]YR_]]YYZ_Zb^[X^XdXa[YS[ZX]]RXX`\^[QdXVa^[Tb_W`ZTVY[]XXaYZZZVZ`Y`XS^\Z[Z\ZW\XcZR^ZZVW[WXh]cZV_Z`[][gZW[YZYW\X^O[X[ZVX`WWQ^VWWROTUU^]TV_Z_SWYXTZX]\``V]^WWZY^PWU]QYXZaZ\VZ[[TXV\Y^XYXXY`deSUY\W\UW]\\YWZWTV_^T^ZX_ZXV^[XcWTe\QXY`QV]Y[\[_WW^]VTS\TaaURfY]V^ZZVV`Z_[X\SWbVZd\WT]U\T`XV`TdYWQ[ZS]ZXUi\QbV\Tg[UY^RU[WYmZ][R_bUXXYX`VdYY[V^UWW[RW`Y\U_WbXS[U^`Zn`W]UW]][VTa`ZYX]YO`V`OUZY_\cXVX[bZZW]XX[hkXY\VXPgYWXXbZXYa_\bX\VU]TYY[UUaV[UccUU_]g^[WUVS_VT\^eOXb[cZWWaTcVQ][_[`f\Z\TVcVZW^Z][]VY[SQ_WWfZQW]^ZT_SVbcRZRXV]XV^ZP`R[U[]cTNXZ[\Y]ZW_\RZXXZ]a\d_[^[_[XUPS_XZaYSYW^^[YVYbWZR^ZUXY]Y_\ZX[XYYZ]\Y_aXV[YWf^Q[\ST]W[Xc[ZWS][h\Z]_RZ^]T^XX[^^Ub]SY[XX\XPT]XYXSQXY_QYZ\VYU[ZU\\R^T^_Xc_VW_[][WWd]]U][[VYVT]]YX]ZbWUUTa`VaT[W^`X\XV_ZXZW]N[e^^Wa[X^]US^XQ^YZTY^\YXTZVZXhV[`ZYYXiWVfXVS[aX_[]c[]SSP[]^YY\ZYSQW[[^R[\\XXbW^XbXU[\XZ]WZ[SVYcY][^VY[R`\UXXZ\V[UZS\ZSXV[]Z_RS\ZPZ[ZUdWXZ[jZlafX`UWd\T[WWU[UU\]X\\bfRVX_Y_PT[\_ZUYZ[^ZZTUZS[b_XYZYSXUaYYaXWS\URSU\\WUd\Y]WZ\]\Z[Ud^ZWSRT[K]^T`Y_]V^`Tb^N\ZZgVZ\^ZQ\Z^XV[_[^T]VRVdWZXPe]XU]\R`]ZVUbX`[UT^a^R`VTV`]UZ]S\S]T[SbWbYWdVVXPRVXUTY`^^VXW`UVTYP`U[RZ]XaT^ZZ^PX[YUYdRX\`\X]\`ZVXcUXY]]Yc[[Ra]^]`]_ZZTW^[[Y`XXY\ZTX`WVV\ZUZYSfRS[YWXV\US\XZXQYYYYZY]OdZcVfU[YYa^^e_\SRVQhY`WQNWYW`YU_`YN][aRU]S\SY^\\]Y]Xa\`TWO`[`W\WeX^ZWY^YZ\SUhWZ_ZSW]__XX\a[_XWfbaSW[VXO_T][ZTYZXY\]U[RScU\UYa`V_VUU`_^Z]YXU[X^\YT[[]hS``[]SdTWTW][XRRVU[UTdcVb[YY`eXZ_Q`UZ]Z\SZ`YZeUXcVZVT^QT]VZRWWUPVZVZRXV]UNX_VPNT[\WYSVU]aYT\T[]Vbb[d`U^d\UR[Y^TX`YTXY][b][TY[PZWgYYZ]YUYf]SZW[ZYUgbUZW[a[`i[X]W^X_ZWUbUUW]XY[ZdW\WV^WRZV[UUTVW\aYRQ[X[Ya]WXVV`bT^[XWO[^VXTa^SWUb\SUZ_`XaVX]VR\V_VYXYUXV`^V^Z]TUW]jVX\_TUVVX\`\_`]Xc_]RV^Z^XTYVV_`^caRXW\_YZ[[Y[WZYXaXXUcVSZW]N`[ZZ^WW_^V^\WTTXaV\S`]VN^\[UW_\Y]ZQVYYWXWa^hb\[eXZYQ_W]XeN[[SdbSS^WWWX^c\fRX\WZX]O\^`T[T]^]SdX]YW]TV[VYYUa\]^XX_ThbUb\TS`Z[WV]ZWZUY^a^[\[WWYNTTUVfXY_ZZ\_da[_]PTZZXbSUcWg[a[P]][U\T`_WUaUgPUlR^_[abTPX\YV^\daWW^W\[U]]YVZPSVUTZbW[^[X`VZWdP[_QWY\U]VT]_]a[[Y^\\ZXV]_QTUfUaeUSY_Z]ZUW\T`]Z^aW]PYWZZTPW\b`UP[[VVc_W^[Z]TWZQ[WYVbe\[[`TTXSa``Z_ST`ebXj`WZQSO_[eU_\V]TX^[]VrWM]YaVZ\[V\Q[]iaXYWVXU[`TebX^aU[XZVU]Va_PTWp][WPY]_WVZWUUZ[TX[SNV_RTaVUZ^_`Z]^Xm_Z^^]Y^ZZ^W[U\_[P]SZUT_cW_[W^\VZZWYY]WZ`Y[YT\VYY]Y_[`\WUSX]^^YZWY_Y\ZXUZVYZRV[_T]\W[T\aX]Z[RVeSTUVS[\[WVTXUZ^]WaY]WZ_Z^`SXY][Za]ZSb^`[X\YYSU_[Xb\VY^[Za`^VUW[W_]YWZ^`Y_]UXX`[_\W[_Qh^UXPYUV^YT`ZTQVT_]Xd]Y[]UV^PU\YYWW]\TVY\YYW_\XRSZZRTYZX]_[ZWXe[Zb\[Y[TWWZX[V\[XZ^\]\Y]ZUcW]ZR[VS]dV]X]SXaUYYWYXWVVRd]Y\UVU_WT_`_PSZcT\PWVTYW[ZZbST[^WdX]YYUYYN`X`XXWX[]QZSZc_[WaaXYZY]^_WY^U[]aYX`ZWZY[WZ_XV]\bYTRaY[TYV[ZV\R_]aUa[VWY\XfdVWUROXWSbe_\TYS\`XYa`RXXVMR[RT_i^QTZ_\ZfUXP]_]XUWRW`YaZ[]abXUfQbYZYYeUUPR[gWY[`XSU_[V\lVc_V]\YY^UXYXWWVUZV\TYU\YaYS`Q^YYW\_[UN^\[WdPc`V_\V\_OW^\US]XX\_S\i[UVXUWTNY[YhcY_[XX[V^[UVXYYQXX[dX[Vf^NXY_UaX\^gT_SUdQT^[^dVZWYTZ[\U]V[\W]cVV\XRW[ZaZWXfQY^[OXe[T\VT\YX^a_^[UOZUVZVTZ\ZYVV\_SQYXaSaT_TY\UVW]\]UUU^VUXVY_MNWXgSUZ_[W^[SW]UUS^VbYQX^W__dS]X``VX]Y]Y]Z_`PV\^\SVZYV[X`TQWZ^b_bT[W_[[XX`Y[Z]Y]Y\feV[VYWVVQS_V]]]T\]Y_]^WVZSW]SYUVZVWUT`aWY_^^SZTRR_TZ^Tb\\a^R[]PXY[US__Wb^_Wa\bTTWJV[_ZV\WZcYSbS\_[\RSW^^RP_g\YcZYWX]_Wd[XcV_a^`PT^aXV]dX]^^US[`][\d`[XVYZaZP[]Y[W[XUOT\OO_U]TSVYX[Q^U[ZYXVXTXXW^SdQV\V`c]OY^WZWT_V_X[[RYOVUX]NU^Z]U^SZVS]\VZ_d\]VTWR^VhYXY]ZZ_\a\[TS\_e\\YaYRYaYT[Q]YYV_W[^W[XXZ`\]^X[TV`ZbZYRXX]^WSZ_U_VSWZW\[SZV\XZ][W_Y_b^W\X]]UU`^Q\J^SUZ_[XRS`]XaWXY\UTO]Z]X]bc]ST^VWUTZZR^S_TV`^WWUc^bZ\WRZ`][R_ScX]\YS[W[\WXVXT]_Y^W\`VYX_ZZ_WTeRWVYVWV_Q_W\VUVVZOZ[VSNYUZVYXW[Y\aZ_VWTXZdZ^\b^_VbXP[U^\WV[UTcZ^^_XYYU]UXVZQZZ^\X`aM^\T[VcWXWZRR[XeV^cZ[`VZUT^_\U\Q_XYYTWYZaUX]Y`\WZXaYWTZWY^`SWS\^XXTWY\]_^TTa_PTS`Y_]TWUaZf]^g^[U\\]`WaX]VW]YSVY`^VTZ\\XZcV]dZR\US[[YU_VTYX\_YP]TQYb`TY\WXeTUX]X]VUXZ[UUTZYZaaPbX_\Yb[Q\UQ[U\XYa[bY]U]_^VWSWV\W]hPWZW__RVT`ZUXS^^[_U_\Y^^[^UZWZVW^TYVYTWb`dTQ[_V]`WS\a\W]VVebZaYZ_YW^XYU[TUY[W^[_[UURc^[Vbe[V\UV_XcV[]VPcYSS[YYVW`ZVYY[Z]^TdX`VUSYXUZVRUX^WWVR\]^YR`ZZa]\QZWbUYMZZdUW\X\ZU[[Y\eVab][XTXcZ`U]RTRWZWP[[RZ\ZZVWb_^_RV]NWeP^WYV`WYUSSY[ZTS_VYZZ]`VRWZVYX`STRVTVZ_ScXWe][X^VR\XSTUYR]XU`[Qb]]SSZ[\[^UYVY^WTU\V[YX^XUXW^T\UZbWZWh`XTXUW_fT[W`V[QLTiQUYVQWYT^U^^YRVZXSXV]Z]X_RTVOX^\R]\fWYX`SYSQRTW`]cX^\UWX[cb^\XZP^WXU\^ZQP\][]WZZUWdUN]XW_Q]WXVSUM^QWbbYWTTU[^[][V^U_[a[T\UZ[\Xa_^U`OcTZ]ZSWYQ^YW_XMRSc``WRa\WVXS[^]Z[dZT^VUZkRQW]ZZ\URYX\[RWaXa[VVXZYWOaSXd\[[]UNjX^dc\[[cUR^\KVYUWXbWUY]_^V[[V[_TZaUURTNUaS[WQ\Z\jUXa`a]aR^OW^d^UWUVYYReSZTT\WX]R^W^[TUV]TWU_\V\iYVUWZY\XZTaXZU]PUVYT`YV_WRYX][[P\Y]bYZRiZaWY_]XZ_[Y\UZV\\\b\^WX_X\]VW]WZdXYRV[Z[TNSXUYXUSRWZ]_gWQXbXYXWc^^PX_Q\Xc\U]WRVZ[\VY[WX[Zg`UhXW\Y^VU\T[XWRSWW_\T^bV\V\RRWWQ_SZXXeUgW`ZRSc`]`W[UUQXWZX`^XV^Z`[V\ZT[WX\XYRYYd[_X]Y\\[\TVa^VZWVVXT\VSWVZYWacWZ]UV[XZe[S_a`T\\ZUa]T`]XT`[[]]ZUVTVTUb^\^RbaZYbSWScS_VUXT[]\UZ^_bc[]W[cT]dXVWTOOYfUe```[^XZX^`UR^`\[oYVf_`WifXZW[[Z\]V\\_Td\XW_^[a[[[ZQWX]Veg[^_OSUW[X[[][`RRU`eXU_R`YZU`Wd[_U\XWR\W]^VYVXVeTX[Z]\Vc`Ua_ZWV^a`X[T\S\SZ^`WTXcRUb^XZ[`W[RY_P`S]\Uf_W\YXX\WXY^T]WY[_bX\YUXXa[XTUXWUWWaScX^W^UX_\QbWSP]]TXV\dKZ_UXYYXgYVWV]TWc[Z\V[R]W^_TXgUV^V`\ddZWVUZXWVV[YXfWoX[X[_Q[VVa]XYVUe[WXXeVeOSWUQ[\UY]UYgW^^RbWXgXTSX\S]]U`RU\QWW]WVX`RWNU\fY]`VmJeoX^e^`QVVV^]WN]XZS[]RZYWZ`X]XZ\V]S[R__h_cVUcd_VXc\fZP\\[[[VVYZV[\]WYbXXYU^X]\W__ZXXI]Qn]WZT]b_Z[USW\RYXWXQ]R\XccWZY_RUY_`WWX^[\^]U_ZXVgV_TVYVS[\aZheWT_cW\Z^W\S[_[RXX[[YXgZgYaYUXcY^VYRfZ_XZdRP`^YX[SVUQfXaV^\[_XYY]_[ZUX^WfUTYX[S\`[\^]XbSYY]]\Y[XOS^_[WYY[_VXYX^ZXXWSXV^OZUY\bQ\aT\ZSU[\ZS]UR[W\\YWT[a[\R`[ZM]WVeWTb^\[_W\aV\[[ZMS][SZ_\WWYUW[Y\WZ_XU]WUY^^RYVV`SXL`XWU^RVaWbbT[^YTYT^UVZTVV^T\XX^V``V\[YSR\WY]XYaQWYaRUXYXX^[ZXZ`[US^`]ZWR]aU]Z_cVU^Y]VS[YgYYb`TX_WV[\_b\WUZUWNYRRgXYUS\S]YUaW]jT[ZbXYUWYaVZV\Zb^SQXZiPa[b\[[Ya[[W]MYVXWUXV]X^[ZW\gY_UU`_TWYVT]WYX\ZY[]_]\P_Xa[Y\XV]YOTXbYaYVWZa^ZQZQTYY^VZWTeY\bTUZZRWUYe^]ZaXTdXK]^XYV[ZQbTb][XQUYX]SZ]WXVcYTXVdP]WWV[UYZ\S]_TeX^YVcR\gS\a]SV^XY`]WUXT\W_ZSYVUUUW^VU^Ta\R]VSUYbgTc^]UYXXZYaXWSTW]ZR\]cWeZdT_W\WY\T_[VQWUZ[U[XZX`QeVQYTXaTP\QXVXYP\\\XV[TYXT^_ZWVXYa]VVR[bQ^SZ_XX\S]T^[[X\QW[Yc^TXXXXUTT\SOQ^dQ[U_X_WVWW[SQV]X]`UW`[VYM^UYa_VVYTO\Z_RX[d`aZYUbU]ZT_\Y^^_U_[W`^aZ]S]`[]VYXfWbPV]P[]USXSa[ZXX`^]YWWUWVV^WY__`ZZ\\^UUbc]QO^XZZVTV[]SWdVXVUVV[^Ud^RU\X]WX\_ZX[_`WU^d[ZZZT\[VQO_SVWYROXYZZ`WbXYU]TYR]W^QYUb^R_\Z[[_]VWXXWYUPZ\UYR`aX^\dTU[VSYYYa\[S`Y]Y_Y[ZgZN\U_Z]Ub[V[YSUaY_QSdaa]ZYXX]YV_`\QWUXP^^^WeY]TYT`eWPQWU[XV\Y`aRPOZ_UY\bbRTaVSV[LSn^]bX[]PUWWSaaX]VZTV][QZ]UX\WY[^]^RTZXWQT[YR_RUU`V\aYXUTX]WUWU[RNX[X]TX\h^VT\UVV\b^b\VYURPXOX[UWSV[bWZUTW_`[ZXOUb\]W]`[]W\UXXV_VX[QXTW`bZ]_WVYX\V_^\XXd\_Z^_WaYX^ZT_ZRRWXUUYjVV[WiT[h]\YY[SZ_V^_VV_X^PV`WM][Ui\V[ZY^XUUT\VRW[Y___UY^]V^R_dQYN]QUYe[VRU\^W]a`V[YUPSoWQTSV[_\WOYbXWYU\Y_[Q]ZgWbcYY[\SX\[ZS_PZVU\\^ZWbX^VVUUVT]WVUUY]V[W`XS\X\X`XQXWQV]ZSW\X]V\S\Z\ZQ[M^V_VeTW`XOZZ]aYWYVaUiW]ZTZ]][\WWU^]\[[VZa[^]Z[`]S[Q`[\U`^^[]aYY`^U^XbYU\Y[Xe]_]ZQ_WY[R[XXZaZbWV`bZ[c]W]XaYX[IYZVW_\bT]SYiV[XWYZY`_\]c_YUTeZ_\WV^WVZ]TWVXdXYVW]\Ya\W[]R\[Y[TZRWTVZW[dS`XWa[TeX[]aVXcT``RXZW_b^]Od]h_Y]ZQYYY\Z_aW[[RNWc`]dZW[_ZSU\VYaXW_[Y_\XTXZ[VYYTS]fY\RPX`]XTZ\\f[WY[Y\\\Z_^[^]^\XUZ\Z\cQU\[WZZXW\\[ZZ[XYUWRWV\Y]RZV_S[ZebYVZVSVY\VWY]WVZ]VYaSTYWVa^TaX\^Z\[eYS_d`[W\Z][_Z\[ZVbXX\\bY[TWXZe][]TZT[]TW^Z][Y\[aZY\eYWXYVX^Y^aV]XUZ^^WX^\YXbUZZ[ZXY[_WWW[X[\[YVX\W\^WYU[XVTZX^V[[XVW[Z^YXZ\]T]Y^UVY\[_XXYWXW\\^]Z\YZV`Y^[_YRUWZUZ[V\[XZ[TN\\TWXU^Z]\X_]Y\WZSZX_XZ^YWYXY`YfW_]]TZTVWX[X[S^U_V\[_VU\VY[[V]ZZXRZ[XV\X\]XXT[]YU[[Vb^YZ[QX[dV]X`]_[^cfXUWXZVY\ch]_W[ZP[UYWW^XdbS\S[SSSU[RV\VZTXR__VXOQZbTNTW^aTSXQ^^X^ZYY`S]X`cXW^^[X^^eTcUX[S]Va_d^\[Z[]VX\Yb\e\WX^aPQXU`XT^[aVY]aXgYVW`XWWZYaUPQ]WWTWV]`W\]UW\a[Z[YTWZ^UVdWaW[XXcT_VVXZ[T]^^\]Uc^\^W][RTZYT[W[SXWc\ZWYYa`^\WYRTVTY_T]^`XUN\NPZY^T`RRQ[YYXYPchX_UUeP[[[Y]SU[SX[Z^W_\[[VXW\UWZ]WUZaZYTZWXV`^YWVWVYO[WXWe[VZWSQb\TZ]Z`[JYTY]YXU\X\`ZYWWYZZVX\TWWYUaY\dR__[\\\VXY\^XVUYWXX\Y^UbX``U_\[V\XX\Y`K^M`aP]^^TY`_Y\Y\^]VYZaQR^W[XY[WWb]_WX\WWQT`d]ZaUYZUXTT]cYTYTWX`bU\V\fUWX^^\R]UYW]ZRYQYO[ZXYTVZV_Y\YXT_V\VTW\XWZY[b\ZReSRZ\bV\ZRZ[VdQV[^[gV\TWR`YW\XZO[TWdX\_YRMUZ`YY[VRVZXcW\cWVSZ_SS`[VT^WYYXUWS`XWWZUR[ShVRYXXVPR\b`a^[[]U_e[VW\QURXY^Z`aVbYWXUXVZY]XOYWYTbYSgk^XW[R[VYfVX_]e^^^SW`O[aWf]^`gaSYZV\ZZ\X\WRSZbcS\YYZV[TXVUY]\XU`RRb`T]U^TPgbWaRZ\`_Z^QV[cb]h[U]ZW`^ST\[R`bSXZ]^]PV\Z^_W\NSZ\U[fY^V`YT^ZWVY^XWVX]\[^Q^YS^TZaSY[_^XVS[[Z`WYW`[R_\Ya]WVY\hf]ZQZS[^WX[d`WTU\_W]ZUgZUb`\^V][aYY[ZT[]WSWYX\a\]TgZVYW^dddQ^Ub]XXWVWTXa[Y[fWXV]XVUZ^NZYbV[WaUR\cS[T[^Zb\cVT\]e[U[V\\W]`Y]Q\X[OWT]ZX[a][UW_ZXWR\]\`]`YWVcV_YXWT_[aYP[`YW\S[\[b^dVWZO`UXPaTZedZXVU^V_W^YYXXaaTUXaYW^dYW[WSP^i[U]eY[UZ\be\S^XYVV\V[\UZW\]_\]\V\ZUaVieV^^Y\WV_XU_PTWXVZ\Y`R[[Rd]U[ZcL[XXUV[V]XSUZ]aR[\`][cRXX_^]\Y^XT[XYZXe\XURY\`ZW[`^^_X]W\]XSKYUXZU\_^\X\\W\VZ^QVQWX_Y^Sa^T[_Z[WS`_XXX[^\Yc]PTXW[ccaYU\Z\XYSUeQV_aYYZ^[WUT\[Y\YVWXTWY\U_dWYW`eR][Z\YXW[^Y]XTTU\S\_Y\XV__]\X]WTT^_U^W[^[YS]^\][Zb]XaX^]WZ^[XNZ`RdZW`]X]XUa^VUbRYX]eWfWdcc\TWYVR`X]SW\]TUY[W[gYS][\Z]`W[VZ^UQVe\WX[[WeW^^aXgX[MV^VUY_cQ\X\ZZXZVW\ZbZ^Z\NZcUWfZYS\P^SWQZZ\OZ[ZTXVXXaZ_VVXZ]WYWQYfZYXRUS^YTYY]TYa\VXZW\]O[UXZVVa_TVSW_WTbT[T\jc]ZSZY\UcZT]Y`_Sa[XYV`\P_aY`YOaUX[V\XZTXa^SW[XYXXTQYYUZYSaTTU^^]ba`XYSaXVZ\_YZZVZUUZ`_XTXbWZ[`QXaT[^X\W[USXW_SSY]ZZYY[YR^U]S_[\W\WVVWT\UT_`aU[XX\YYYZZZYTWQ`b^`WVYZT\gZZYZTY_]Y`XY^[WY[^XQ\WQ`X\NVXXY^^[Q`[\\ZeZe\Ze_ZZXT[[_a\YYX_^W_[Y^a[bUdbYZV]TY[UXYXVYVWVX]UVYXX\]YW\[b_[a\YXR[cW`QZ[TX[UZ`SmfVRYWUX\]Z^hWSYV][UZSXV``[TeW]Wb]TYUZ^[Z\ZY[RYXWSWYgXU_NS_^^VT^ZVWUSWUX_U[d[\UPVWVU\YMV[S_VZf_RTXWQTY]`WU\V\X`ZTSZXaVY]XZVQWZXZY][\[ZXV\[OcSSUW\SSYX]Q]]QWZ\VZ_YU\_W\ST\UWR[ZRbZ[YOX[^TTRZ_WXX\MXW_`UUUUU\\V_TY\RW^XW\XTX`T^V[ZV]YZM^VYRYRSSYZS\WV]X_XTacYVT\[TWXQ^aWTT]_]WUS\`_^]__ZPRYU`WS[aYQV`Z^ZVcYUZZTVX^\U^XXaQU[UXXRVVb[ZaTXU]RQXU[T__VVUWa\UTeZ[TQPfZYX][ZeW^QcYZSXRWZ`VSX[V_VZVVX\U^R^XQ^ZQ]ZWX[WPRRPTU_]`[aU]VT][\SM_\W^_ZW_[XbYc_XTa]\ZWXV\WiPT]ZS[VXUTVXYUVYVU^_aUNX_UUTZYZZ]Y]YY[^V\^\ZZ^VMX[ZCQ_V]YZV\Vaa`l]NaV`[[VZXW]\[YN[^V]aTTWZUZWU\UYZ^TOX\bUS\dW]XbVaY`S|P^Y[cW\QYVYWYX[]UWUXWVZW^^U_`URXZ]Y\[dUfY]jZ[[\XR[__\^XXZY]b[ZWXUXU\Y]WZ\]UR]\]Z]WXQa\Q]\KYZWRP\R[YRTR\SV\QTXSYW\Z^^[X^U[\a^WYYX[XZ_`RVYVX\XZUXTWW^]Y[U^abW]WU^b\[X`]^T\_^`XUVY\X[Y[VUZbOWTYXZ]RY\UXVZ]ZVZXYUVeY[XW[\[WV^VQ^bU[QaWU\\TSZT]\RaUW`Y_ZV[Z]Y]Q[[XWUXV`UU\^V\`\Z_S\[UYVWX[RU\\X_Za[YU\WZbR^WU]\\T^Y[cW`TZZhXW\]_aYUZYZXWQdZVWWN\\XX_\`Z[ca\P^[XWTZSUV\^T``WUV[X[PUT\]U\^X\U\^]RW^YUX\WW]T_]_[VXV\P[YSRZZU`cZQ_\\XX\][b\Z[SZSUX\`X\US^[]WW[ZY_U\b]W\TYdXcR[VQ]M^SRY[\ZUQSVUW^[ZZ]\ZZ]VZZWZZ`WWSYX\^aaYVVVWg^ZaXW_YZVWTaYSU_YTRV_YUUYU\[WWaYUXWV_]VYX]U^TZZ_[[`Z\ZUY\^]TZXWY\RZWYVWYY_WWZ[^\W]\^a^bXRT\SUY`YUTXW`ZX\aXYW\QUM\\\]RW\XbQ^]PZW`We`^]Z[ZXUWTTT`VS\Z`[`TRXbY[_YV^XXaX[ZV[T\a`_^cTUZYS[\_ZXU^[XY^^V]bTYYS_RWWTYWfW\RVUZTW`Xa[]e[V]V^][U][[`YUa[M\eV`_\\XW]Q]aY_PX[TZYQSOc\_Xa\]^[YY[YZ`TV]Q`fZ]W\YY`Y\WYT\XYX\U[ZU\`\\YNVZX^V[`X_W]P\XYW[\^V[UTUV^[`ZYYSVTSXVVUd[Q[^XXbZSVXTWUV^Z^TW[[V]ZOZ_^UURXXT[cYHR]\\ZRZ`\NUg^[cUY\_[UV\__\X]XV_e]^UcSW]]UW\V[[SQ]U\ZQaSZ]ZS_Y_`[T]VVW][[TYVRaRVV^ZR]_WVaR^\XU_UV`\c]U[iSTZUXZaPZSU\XUUZSVX\RWPV^_OWROUUPYSQZYXY]^YWQ[X\Z\a`]VVZYRa\[[^a_Y`VXPZQ^]Z^Z]XP_`UXTgW^[VSZWY_[]bVZVVXUYT^XV\WS]_ZZYUWRWOUZ^X]VVS\\\]\ZXZaS[U[SZ]\^X_Q_WZWWXT``YW[bVSTU[X[\WYY\WSe[W^XZ]Y^USVZ]a`[_XSW[][`X`X[^WcV`^NSX_WXZYTYR`Wc\fSUVWeZ^[]bWZSUX]WTT_b\_SgW[_Z_XS]Yf_TZ]ZWVh\Y\b^W\UXWUV][^]VWVZecc]R]\a_VW]N\RQX`Y\^ZY]Vb^RYY\RW[ZXSSV^c_[UW]WYVWQT^TUbRZ`V^^SZ[X\QVVX[[`\[\W`]QRVXVV\WYZOYP]]`[VZUbW\\XSUXWeWXbPf[WW\`WUW[WXWW[ZcVYaZTV[V]V\_ZNVYc[[ZSVWaRaaYTU^PVX[V]VYQWVRPZ]\^]\YZU_V^UcOQSQU[UWY]^XTUiXYa_T_PUPW[VUVc]WYUP^W]X\^PQZ\_]_[VVW]aYYQWUU^ZYdZ\PR^a]^QXYX_YUXR`TYX^Y`V[WZYZZ\WV[XUO]a\^UW]]W[_V_WT^UY]YX\YTS`\`]_\YV]V[`\TVUY[Y[UZWZ\_Z^Z_\[TY[^\SV`Z_\^S\T]WcaYMX`cVXYVj\]VZT]a`[]YZYTT\\^VZ\[]UXTfWTZUW\SXS\\ZT\[VZ_^WYQR[UcW[VUT]WO_Z\YX`[ZWX^WV]W_Z`SQW\WS[\V\WX\Z]\ST^aZVZV^SVVZYRVXZ[YZ]WWZT\VWW`V`SV]][^`\V^Y]bXX[SWbXZVPPZe[[aYWVZ_XU]ZYQYZP[[YXX\`b\TWcV\Xa\_V]W]YWVV`]ZXT^SYfaeVW_bY[TU[ZaYXX[VV\d[X`Va_aR[\]U[YX[Z\SUXT\X^XWZbW[WUU\YcVS[[]W_fV`^]aY`YYY`[X^``X^_UYS[W[YY^[T\cW_\X_WYZd`\cX[UfXYWYXXiYT\bW^]VbZW[X`ZZV]^Z_eWf_\[U`SZcX\\U]XXVZV`]T[^\[WZ^NW[TYbTdOYa]\\V\b\[^U`]ZZ_WTX`Ua_b_Y\e_WU_T[YWXZZ[^ZWWZV[]O]XZZ]XUO[`XNW\WW_cU[YTWYdV_[^dUUU\XX[Y\UYW]ZXY\TZUZZYN^\SWSS[UY\[gUXX_Y]``Za^ZWX^[WeV[\S\d_b^UPYWUZVPXZ[]_ZWZ_[]]][Y[YWZhVXXTWWgUWXXWW^WXXX\`]]\V^[[VY[a[]\\ZZX\][YXZ]ZTUbYZX[]WUZ[UU^VYUTe\\XbX[TZXYYX]W]ZX^VXUTR]aXXWUVZRXYb\][XZZ[]aa_UU][e\[[T\Y]_b_W[[bR^Y_\UZ[T\W]UZ^Z\NS^X\UVYYTZeW[^^\aTXWXVX]YRYX\^[YXY_`]V]YX]Y`YZS^aWYZ[]X[U[\bW\ZS[SXU\[ZbYZ`TWW\[]W\^UdRSYVZX[TcV^^YUUWYXYKM[UWYW[YY[V]VZP`a[^XYYV\V_[WbTTe\UPV[VUW\O`eWTRUW]^VbY_V[QUX]VXXUWaW^RP^UZ\ZTPW_`VX[][_[T\TVZRi`[T^\UTY]\^a]]XY]b\Y_S_ZP`^aUYcTVZZT]QVR]`bSX^[Z`VZ[W]SZeWSUST^Z]UT]WS]TZOVX_TV]`VdhZ_]YU]c^W_VZUX[dZWWUW^\WZ^SUZWY^]UY]]TV_^X^eTXY_TSXWWXbR_[]aZV[\V\cVR^_YZVRXX[[]TVhSW`WWdU\WP\QZ]\\X`]^e\Q\\V[Q\XaWaaSU`^U[[VW][\\\c`[^aS\ZYRRQUV\]T^Y]``Rd^U`X]X\W^V]RVUZfYU[OYZ[]_^V^Z\[_YVUWZZaWW`WW_VXbY^UYXUSYVa[[S_b_[`[aWVS[YY[Z_OUO]gU]^bSOZ]YZ[[WTXTaRYSZ_]cXZXZ`[cbVU`WcWXYV[T^YYVZT]V]^TST[_][c_dZW_b\[X\VY_Y]XQQYabXS]f]\[a[aZ[UYXY[XTYZR^WXQY`]XaXZdSQ\^W[XZdRU^[STM[UX[\SWbWZZXa___YZSYZY`]XZXOXYOaXYY]USUPY\a_b\d\RVZ^Z[^\TTSaYXOT_S[aTYUR[aSXaYW\WWTVSR[UX\c[cRVZXO_UXSOYVZW[\`V^^SVVUYP[X[]S[\NcUXLUXW]aWbZ[ZUW\\UT]]Q[VX]MWVP_Y[WXaWUQZ[WV]_\WbeV[^W[[ZWU^b\]W\[^TXY_\T]XR\VTZSZQ_S_YYZ]VYRWUVY]VW]dbX`YXYRQWeYUO_^]YRS_[[NYU]S]SZQXVSYXX\U_QTV[^WUYYVRU`[Y]\[ZMX\[[eagZXQWU]dNSXXaUUT]aYYTeiST\T^XYWUZS\PW]UJ_[VV[][ZXTRbWU\]X^gVW`YXQ\a`UYU\ZYW\^W]\Z\UX[ZUX\]YUZY\`b\WWPX\]a]^YTZSUWUbZZTUUVSYR\WXV[PYWZW^h^eXW[Q\UL_WT^XYXY\[^aSWUcYZZXYZV[]QY^^VPX[a]YS\XWc[V^c\[\TSV]ZVZTX]Y[UZ\XRU]TXXTZSWZX`]Z]\QaY\TV\bbbUb_XeZW_WX][Ua[`Y\aSaVXWVV`Td][YQX[^VZ\Y\[_]VXY_\X\k[_VZY^T]X]`X[R\N[^VUZ^V`NXT`Sa^YXUZXUcXU^`V[X][^aZ[N[b`WZ\V[aQbZdU[Tc\c]UWZaUUV[U\`X^PVYWTUVXV]\^Za[X[aX`\RT[U^\ZZTRX]XU^\]`VSSWXZ[S[Z]^c\lSS_Z]W[`[[[[ZYZaZZYY[TW^VVWa_\\ZXW_WXbXV^_VQWVWU]VZYPWRWTZR_ZW\Z^\VWW\e[Z^`\Z`XV`_ZVU^XWiS[aZUX]Z^[V\\]`WT[]UY_XYcZbW\[YY\RUXXVj]d_d^P]YV\_X\SWUWXTRUSXV_]]VY^UV`TSY`]Vc]\T`SZcURX_]X\U]YcXX_WP[[bU]\XXSVXYcZVOWcSY[XW[W\^ZVS^VZUWaVZ`Q^W^]W\^]X]W[N[]XWZY_k[i\YZTbSW\Z\]]YT\`]ZXWZM^YU[Z`WSWY[VU]\YTUYYXK[]VT_QR\^UWXXdX]TO[Y^Z\aVX__TV^XU_ZYSWYXXRX]\[UdZUZSVXVY\XU\SV\VYT[]_SYaWV[Z\[Z_[WaTbbaLX^YXVSVdXO`[[YR_XN`U]W^R]^[[Qc[\VU]Vd[]TZTZ[Ve[Z^]WZe[`b[YV[OWQ[\TWUhV_WWSX[eW[d^^_QQZ\Z_aYSYWZU[]_VY[SQT\[TU^a[[dKld]RXXST`YSZ\_U[_\X]TWSXUdSYXUXYXW`[U[TYY_[`S]dX\L]RT^]X]\]fSZ`XUXS[aXXRVZPW\[Y\hcM]^dZ_]Z[ZWP\][YZY_SXY^YUSVWUY_UZUbSS^W`\ZfVhSfiWWZb\UTZaWfT`W\[]TO]VZ\V]YYXWZQRY\W\ZibYVZR[[aZ[VVnY\[S`TV\c]S`_]ZWVZVYWT]PWgXbYV[V`WTQVST`[]c^aW[^YX\VWVmYW^\\ZZg]YP\YY[[R[\WTY[Y`X\[TXaZXYWVPZ^VX]QadY]V[Z_SfaX[WVYT_VdZVZOXTUM]RW_b`aQZZUVST_][\XTV[TW[Z_YUShXTWXWXUZY\UUbYUXXcZWVTY^RY^XJVWXc\Z_][X`_^X_`VWP^WUVZYYSUS\[YR\ZS`Y^WQSYW]Y]\UTZ_VYYab`Y]\RXaZYXPTWUXZ\W[_ZVTZ[UW[WYWdVXW^YYT`SYUZXb^VWRYV]][a\UTZRXU\dYf\WeR]YT\ZZT`ZSZTOaYT\R]YaRcYYa[_XUZ[T\Q[]XY\SaX`aWUb\ZYZ`WX[[Va_\]TVjcQlVXM[[UXQXU^XZQO[X[^]S_P`Ta\YVTXPVWdX\[^WM^VWUXSXTXRYZ]]]QUS[_WZXVZY^_UXYaVVea^YU[\^TRU\S__^WMZ``dUM\RaXZS[ZY[QYZUWe`\[]Vb\[RY]S^^Z[[W\YbYWZ^^[^T\\`XYN][SY_WZ_YV`_YTTW]ZTVX^T[QY[X[Y[XXVXV\WV^\[VWR[d^bYYQ[\ZVU_]XYV[c[WWa^Rb^WVUV[WVXSQX[TZYYd`ZX[[WSU\]TWYPbRX^Q]]W]VVdYY[dXXWXXY]ZXWZ\ah\Q_ZZ[YY]VYVXWZh^aVWYRV[[T][X[VPUS]WVS[ZZ^\Z`a`XdcX[ZVZV`XY[S]\Wa`TW^^V[YWUZ[PTW^YW\RT\dZ\]VabaX^ZSWY]]`W\]ZVWXWY_[aTVZX_UZWeX`Y_\WYa[[^`[Y\QZ^VWU\dV^_^ZUWXS__V]QXcXZ[]]^W_ZRURV[aW]\V^YZZYXOcWWXSTYYZ\U[b[ZXYWV_]NUVXX`Y^XU^ZVTVdUXWed]WQU[RYaX\WWO\X\_`Ug]WZVXa`]`YX`NYcR][^TVYV^UZQVU]S^Ye_^Y`ca[`UX^\Y]\WU[X\\\WXXYTW\`SVWR^TP`cY]^__eYZWTXXNXXQY\bU[\TWVWVV`Z[SZT_^^QUUTSc\TYVVW[TQVV[ZXV\ZR[WTb[Z`YRVcbUeXX]XX]YTZQVQZ^[a_g^^_XQ\\c]RT]ZU__\XUZ\^OY][[\UYT\VZSYN\WYV`eWVYYW^`[T[bXOVVX\Y^R]Y`VWVZTW_Y\\[ZVUXYZVXXbT_S[U[TY^[^WnYYYUR\WYfSTZ]XUWZaUX]cYVfXWTXSNa`_cd`XXWQXW^Z^W[]\P^]V`WSQ]UXWdXVb\Uc]^YZV\\R[VcYYv]XX[Y\YV\^V\XWMWZX\Z^VWYVUaXYX[Y[VQV_Y[WXYWXY[W\^VY_Z`Z]Z`W\TWRRWO\RZU^XYYZUYVQ^\YWW]XX`Z^Y^V`TYRYZRaY[\YTXVR[ZWT[[][WXVR]SWX[QTZ\SVUWYaY_Y\\ZTW]ZRWV[YTXUXXVXYZbZZO[SVW_R[_^Z\YXQ[[ZZ_YXX_^XTbaVRY_^UJaZYX^ZV^\VUW_NZYTV[[P]]XR\`V[SX_ZY[Z^T^V\XbSZYUWXWZ]YWdZ^WaXT^eZZWTYYYZ[YT[x]RXTZRU[]`U\_Vd[_`[Y_W\YY\c]b[XUY[\]V_XWTUXRXVT`UZV[W[SUS[YXO]ZR[\[]W\[\aY[W\]_RZePZSQYYdTXPS`UX_ZSWTUUS[aWYW[TYOa^TWO]]W]_WU[k[WSTSXPdZVZQa\Z]XUXWP_WZdZVT\ZS`WW[^X^VY[XUScUdURT``\YWUX^ZV_VUW]TRWVV]XZ^XXS_c[SYQUTX]^X_[YUUPRV[`ZaXRY`]WUYRXTb`YUUdV]eXbc_ZWO__R_ZV[VXZVUYUWb`[_WXbXSP]SUV]YZ[X[[Q[a_XU\XZXZRZWWYV_`ZW_Tbc\^\RYa]\TY^\QVTR`]NPR[`VVdeg[W_ZVSRUU[\X]QX^]eaZYR`XTb]V_[ZVWXXT`[^TX]Z][PXPcV\ZRaTTUR`RW\[aZ^`cZbUTcZUV\\^XZZVRVST^]QVVaXZ\YVX[TeVOZUOXdX\Z[UVVj\V\]fW[XU\[UVP^WVUXX]UYX\XYW]a`XLbZ\\WU[T^Y^Z[WXT`\WUaVYU]OU\WWZ`^SRWcQXVUYYZ]UZR^R^XZ[[[[WYfV[YXXVZ]X[_V]Z\W\OXXQP^RXW]c``XX[S\VVU[]]Z`Z[SU]WUU]aYWTUXV\aVS]]`]_VY]WUZ[[VUT\]]dMSXK^_UY[SXgU[YZXR_RXYYT[\^YZO`_XYZ^TjT[VXUVYU]YUWXZV]Y\aQQaZeT\S`_gd_`^X`WUXU^UbW\\fM[Z[\Q]]SaY^_aV]ZdV[T[ZSW]WRTaZbX[\[ZTW]XXUV\\XUX^_UeXVLW\XT^_ZX]RTdYWY[X_\ccP\X^SVR[VU[TYaWcRUX^XTXQZVVQYWLQVWccX][cV\XV]UNja[ZY]bU^\[UOc\]YSQYdV\ZYdYf]UU\\VV\\X[`OZQ\a\UY]cVTZV]ZWYXZUYh\NXZb\[^Z]XW^`Pc[XSSXSV`]Z][ZY]Z][YUT\VQWUU^RLUYa_WZTZR_X]V\X]X[OV^UWfRWVRRV_UQVZNWcZQX^[Y\^cUSTTYV\M]Z\]XV`bX^TXZXSQWW_aVWWfV]YZ`\VX\[ZRX]\WZXWYPiXUa[VZbf_UVXV\hX^SYXU_]XZX\[ZY^TZSZ[V][ZTQX]\hZYS]`VZKXRUS\ZTQL_TXVZXYX]^Y\X_ZTZWSS^VYYWd]`_OX\aTTWSY\XV[[TVaX[^ZWPT^XZWR_^XZWXYXZYVZW]YZVRWeXbTf^RYXTY`UUY_d^^UWU_XZ\W]c]Z\`Pd\XMTaWSXThXYR^VaaX^[_S^Z]]ZaYXY\X_`YV]R`S[\YXZZcM`\ZUjSUgXT]X`[^WWRe`V_X]WW[PaW^[WSa_\S^S\fX\ZYWXga^UW]cVUS_OXYWU^Q\^VR^aWQY[T_X^YY\RX[Y`XZSXZZ\ST\aZTYbY_[T]a]U[d_\USa^cUZVZOfU[VVZ\Z_WZV`bV[VV]ZY^afX_Z_aQW\W_\_[Zba[VXY\^VRi\^VOT]_P^XY[_YT_[TRZYY^[T[^XYcXU^SVZ\VQ_VY][S[^jSZSXZWS^Va]NdZOZ][T]\UV[X\[ZYRVWXZ_VVZ_RSZ]a\ZUdZ]`]`V]VRV]YaXZ[VUaYZXUXW\MUX_TUU`]^XOZYZ[`c^[[XWW^X`ZS^SW]VPRWZ\UZXX^e[TKTT_VXRRS]_f^VYUVY^]]VZbW\_VRW_W[X\WaYUYX]T\YaUaTRXX`U`QYXWTSW[YYSdYWN_]\SW_WWRZ]YOXZ`QkdX][T^V\T_dZ`_d[_XZQ[``RW]_[ZV]]Y[VTQV]R[XY`XY\VUT\[`a^YV^YY[T`Z\WUTZ[VY]abXT^]UYWZdc]ZWZ[\ZY\VcVSRWdU]Z^U\\Y\WY_^\XXO^Z[[Y^ZUVYS\W\TaXY_Z]Z[V`Z\[T[^ZV_VT[X^Y\YS]VQP\]X`UW`VX]V^[XS^YUVbZ\[YY\_[^WT^WZUe]Z_S\YRVYaZX`[_QSWQVU^Z\W`XeYa[Z`XaW[ZX\SZX^`^^W^]PUi]\VV^`UTXX[aXVaTQ[\VWVYYZb\RTV_aY_VY^^[\YW[XSdUTTL\WZUYZVZ^g^T_0ZWW^ORW\XX_URXd[TW\RXW]YMRW]LVXUSUX@WTURR[TT\WY]TS[QXQXWTWT]R[YZY`[[WSOXRUVXROOS^KYU]S^\SRQ^[VW[N_[T\]RXW[ULUTZXZ\RZX[Wb`N[Q\XTVTTRZVXrZRQS_TRYZWZ[][T^VWZUS]YUPU\TWZ[V]PZ\XUOUV[k[OWWX_OQXXTWXbSWZW[\ZOR[R]PU[SUWQbNWUW\YW\QWUZ^QWTXX\VXXUQ`[^T\YWZNWSZ^RYWTUXU\XW[SYXPWVS\YUS]#\`XYRTVVWVYU\SVTXSWNZXTW[R\XT\d_VST[[_S^XPRV\O]V\TX_Z^OZYYVX^cRUWS\SVTXT^\TSUS\WSQWVWi\\[bSZ[V^VSWcWRR^]ZV_[\UP[a\RXX^aZ`YTT`[`W`TXWd[b]VV_]Vd^_[ZYX]YTXOWZZYWqVTYUYZZUcXW[`W\XXX[W_ZW\TSYZdYR]RZVTSUTSVfQ`Z_Y\VRY^ZVWP[b__^aTWQTgZQZWW]YZTS\`VYbW\`bThU_\\X[\Xa[X]WUaUUY^`PTYTTXVVXVVWU\YZW`e^TY\\WYSXTb]^YdSX`U\Z\XdWV\a[\dT^XZ[N]TY]XYXgZZcV^YWW\UWY`U_TWVU^[YS_Wa\P^dXXR\[ZTXYY\U]^VbUUYeY^RVSe`Q[\b\Y[XZd[ZRXT]\^TXT^X^X`\idZZX_TZ]T\YW^Y^Zb[Y]`W[\^UY\]cWW_Y`V\^ZYWRXd\YY\U\SZ\]XQX\WV[c\ZW[]RYWVXVX^^XaP[]X]]jQXU_[U[UXPVaQWW_XaXZRR^Z^`_SVcTb^Q]OTZ\Q\eX[`TZTRXV``XYTP^VRXXcaY`U[cXX[XWUW[ZZ_]]UQb_WYZYTWXZZY[ZV_^YQWUY[NYb[SUU`]`]NaYWWV`Waa```Z`W[^]U\\cVZ\ZWU[U\Tb^g`\X^QY_YXZh\a[]]X_^][UXYVXVX[WZ[VR[\]\`_ZRQ^TWV]VZ]W\XS\W\[^_XaZORPXWXWUY]S`WX_`[W`R^XQZXU\YZ\WW[N\[U]XXY_][UY_aZ[YU\ZYPb]^_TZZ[Xb_US^\\[T\``dSQ\[YcOZfhY\RW_WY]`]TZXQVZWZaWVQ[XVUZ[Z_\_TV\[\bYd[^U[YUceV[`WYWY[^\^YWP]X[`[\c[UV]PXZX[W`VZZWYP]b\ZW\YZWZQQnU_XW^M_X[^^[_ZV_aZ]R_VR\U[_ZWW\RYWU_TYRbWR`Z^Ua]\Qa[eVW\^XY[\aXXZYWWgXQ]`Y\Q[ZT[[\XhU`V\W^P][\[U[Y_VWZZRVZWXWUN^]]W[XW[YXT_UXZXZ]Ob]YYWU[YV\aTWVbVUZVZZVV]ZX_[ZZ[fSb\XUVU]STWbTaeXV[^[[abX`bXZXXTSX_\^S[]\^^OY`Y_ZbZ_XZRVUTYYVbSUW_ZT[Z[V_UY`RYY``Z`_Zc[\Z[Z_^_W]VYY\`\MR_eT]TZTXZYU\XWb[[TWX^[YZWUX][OV\S\S]][ZWYSfYX_bXYV^VaZT\aXZZYP]jX[YWeYWaV\Qc]YQS_XONTRX[SVUVQX[Q[_\Z\TZRe`PVVZVO\TU_Y\XZWVP\MW_ZP_\aQZ`^WgZY^ZbYXa^Zb_PWYT\_`\^WQSZTYTW\SVYT_QVX[TRVVYXZ[WS[aUTcW_]bVTSUSZY[]bfc\SW]\UgOZWQVYV[aVZPQTcV^[YZSYV\]bY[Y[`_`]ScQVZS^^QL[QTZXRXYS^bZSXaZ\^]Y[_[``YR\SYVYQ`S^TX^]WUXS]WUZ]XXWZd[TT^T[]VRZaWbZX[]e\TTYXYbZVPXWPZXY]X[kUVZWVWVUg\dOV\ZV^X`[\_XYY[`UU^ZXX\YShZ[USdV[X]W^a]YST\^WS`RU\^W_ZZU][XV^ZZa`[WcZb[]ZWTU_WZ[ZZ_RTY__XV_ZOgRX[]O^^R[_WZ[[Xb[VYTQ][\ZTW[XZX]\[UVaYQ[c[[YSWV_\UYSZSV\\S]^X]\YVd\YXW\]i[^ZdYa\\^]XXW]X\US\YYZ[`VTVZYZSYcc[YOdaQ\QRZWOSWVUXW`[YXUZU\bS[YgT`WYZWX[SX`TX^VWVQSYVa]UWSXSW`]VRYS^[W[YTTUYWZch^X\\\TWZUY\\c[U\\ZYQZ][[Y\[URYYWScd\dY^`YX`Sa[X]ZZV_[^Z[X[^][Zd[WZNWVX`V\^[URVVSXYZX]YXXaX^]S[[OZX^Z[STYaV_aZXbWVcY\SXV[cV\Z[_Za_[YO]WTYWT`We]\]RZZU^hWYWY]XU]][]Y\[\]ZR[bYZY]_ZWYY]]\YXW[_X]\]Y`WYaVbYRY\Y^e^Y``[`XUeYZ^VK]bVS[YXZSVcY`QU]VZP\ZRTYU]WZ\W_Z\[W[[Z_g\X\fVbY\`TW[]YW[_U[\Y[^\TUY[UWV\Ze^]Z_ZR\_abb]^`\YX_XV\\aY]]TcX^^a[P]bQR\Y\d_]aZXZTLab_[X`Xf__`Z[\]W\`]WTZ\ZZU[U]^PZSU[_YZS[`^\[f[RSUZW[W_PWYUaVbZa[UUV[]\UZhU\VY]WTXXS^WYT]`\Y^\\YVWTWZ^[Zb]U]Z^X[\WY\VYUX]S\hTURXW[XV[U]bYRVXb]UZXXV\dY_YX\XQ\XWZ\YV_TS[]cY_`VUXZ[\P^W`fXZ^_[\gP\^YTYXXU[ZZY`TZT^_PY\QST]YQW_TRY[[_\^VYQ[OX[WZ^^UXVZ]aV^\[\VZX\R_V\cV^WZ[\[T^WUXWY]W^\[WecVWW[TT[X[X\]XYYYUbR[XXXY^VV^\XXXbX\UWMY`Va^V]VY^Xa_U_VXRYZYZdQWVX\XYRZY^U\]g]VYY^X__ZZ[fW\VS[TXVbUX]R^UVW_Y^W[^XZdW]b]ZZPR]ZSXVT]W\R]XVV[[\UXL[W[Wc[\WUTT^Y^]XYZYU\[_MT_ZaXXV[^[[\ZVRS\QYVZU[XVXVXb[b\_adYTWbV`YY\XXXTTU\Zb[Oc\\_X[aY[eTWWYZW]dT[\[XUWhRcZ\WWVZU^Y[S^XUX^WaRW\MSVVZUXT^SU[VeXQZb^cPRUaRQ`\X`[X^VW^VZVfT`a`^VYYUYUaZY\Z]]f^YQVYbXVXZSVTYXVZ\_VbUZ[SX\Y[\\^VYY^\X]UUVZZ]\W\aW\VWVVY`VRXY`][Y\ZYVU_Zd\aYbdOXS]QaXS`[]^UZ_OWV[[``U_YY_ST_[S]^Z]Z]X^WZ\[TeS[XU]X\[WRYU[\dcZWT\XUY_^\XZZ]YbYfUW_\\\ZTSZYWZbbWXV]W^YVQ_Z\UT_[W\][VYW_[^XZ]X[XV\U\^VXZ\UT_\Y[WZVTV[YUYYZ][ZWZ[UWU[RXXWW[ZcU[Y\UN^ZXUT\V[XcQYTXdVf\Ta`WPZ_V[bWV]^_]YR^UjZX[b[SZW_]Se`[R]TbQVUUbZZZeUYW`QWbW]PXa`ZS\X]X^Y^YY^VQ[^\UVdZVYZWXWV]g`_aW]YaZNbVY__aTWYXW[YVUY[^SUX_acU[U[Rb`YNYRXZNZ[T[WeUYTW_SW[]XX]Q\pXT^V`X^Yc[TTa_V[Xa\WUSZ^\Vb[baRdaYXUNVXZe\ZZ]PNUSWTSd_Z^XX\^^X\`S[Z`W\Z\SOW[eV^][^\SRY^W_gV[X\RZScd_YVYX[bV^bTV\R\[ZZf_`VXYUSU^TW\_Va_WY][WW\RYSXSS_\S[bZ[TYZZ^OU^]VX_Qd^\QT^Y\T[V\T`Yc_RWY[Z_VS_X\YRY\cYT__a\`\\PW\]XaZR[bT\NYaYZWhVe^SWYQYVb[ZURZ_SdW`\UVVV\aYY_UZbS^Z]TU_aW\WX^S[T^W[WUUR^XWSXR]ZUY]TWTU[X]X[[hS^WTZ_TVTRKVX[Y`YaVVSZPV`VURe`QXVW_ZQ_Uc]\XS^U\S\P]VYQ]XTXTQYWSX]UVacVW\\^_UaW`[\WW\X\qVXWU[S^ZZ]WYTY[^[U[[U^Y^]^aYaSWSWYV[T`TVWZNU[U[\b[][`XZQYW\aRWRX^ZXQ[Z[VU]Wg_^VVXcW\ZZ\TTYWUZWY\[XX[^V[WYTZZ_VZWbbUY_O^Z_NeVbV\ZW`W^RWZXWYT^ZYVWYXZ^YTa]S^Z`R[[\\^XVUUWPW]aX[QQXS[ZZUVRRZ^VRWRXUd`PZ\\ZWXX`TUVWX^[ZXZVYUW\W\TWQ]RaZUY\cS]RRY\_]`W^[TVbWX]\]c]Q^WWPUQ`[SXa^X]VXW^W]W\^WX[[_XTWVZZNaSZei\UZ[T__[XZTSYYSW^^\S]^^SKTTU[Z^aXT[W[VQYZ\]X^[UQ[W\ZVUXXX\XYS\TYUcYX\^WPY[Z]YRUXYb`UX[S[d\[[YW]WSLXTWXUeZ][XWZ`T][X^\X[RY]aTdZY]SZ_]\[WX\Y\TUUU]]cW[Z`Z\UTWXZYYP^_b]\_ZZ\R_`SX[Z^UYScVSW^VXYVU^UYPXUZWWcQXR\Z^SVYZZ`Y_c\YWYNUeV]\fZ_WQ_\V]]`VV`S_ZVcZVUVWVd_USX_cX\h\WWN^Yc\S]_Z]a^Xc\Z`TSZY]PWS[ZX^V_`UW[V_UTTZTYZ^SYWZS_[ZWZVf]L[][W\W][SSZYXWZYZZT\ZQZdY_ZYYSW_YW^W\QVXbb^S^QR_WTRa_XV[]YX_^aT_\VRWZVYUQ_ZP`X\ZZ`ST``_XYZTT[TQTZ^YZ]WV^SZ[V[VXYeeY]_^^WW[ZV[^XU`V\SWb\RWTVZW[RZZPXWT]WY[TSSWW]UVZY_bYSSTYbSWZX_XX]VUZT]]ZZ^^[[Z[[]UZ]ZY\QTTY__VZ^UZUWg`TXS\LWU_YiTYYUR_SMX]_`XYZQSW[Z\a^]]ZYWhZbUNZVXW\WdV\]ZUX^SPSOY\XT[X]XVXg_\Y_U^\_VZc^NZY`cX^a\VS]XPZY[X][fZXXW[Z`eaVXXc]W]\`ZVSLYRVWdVbQV^Y]WT[YT]aYZ]ZZbZWVVUR^YV][U^\VbSUZRZW\ZZXW[RYZWS\^YTZSXZYZWX]]XXUZYZUaWU_a`ZZ__ZWXX^Ta\_XVX^SU[\YV]VYYdY^[SY[S^ZWY[^R[[YSY]ZXX\a]UXc[^VYYZXXVgW[T_TTUVRU\WYWX[]WZZQYZ[WTU\ZXYUVQZ[O\ZX\UY]a[S_\XQUT^^X\U^\YT`[[X_Z`g\b[]R[^P_TaZMdYfaV]VW^WXaXYS[PT`U[WX]Ya]WWTYTU`Z]]Wd^Z[^MY[ZVZ^\OYYY[VX^_WK\X`aXW^YSdTQXXNZVUV^[c][XX[]OO\c_Z]SYXP[\\bYSZWdW[ZXa_\YXWZ[YX]R^j[[a`Uc\Y_Zb]TY]T]VUZU^U`USVg[[S_UWXN[Zd^e[[Y^W[T]_\XTVZXYO\^S`QTY^YMXPUY^UW_ZZT^Y[YYOZU\_WW_UYVW\T[\]YYa]]UW]`^Y_\VTZdW[^dSTVWR\[YZ]WTYTYbV]^aWTWSc_\`bV^Yb[SK\S\VW_\Q`ZbYV\YZ`VW[c\U]WdZY\T\OVVPYYW\WQXbW[W^aRVc_VUYWdd[ZX_``aZX\WWTVf]VRURU_\`TT_VP[dT][[\QUWWZ\W[]YUWYOW[[Y^b_YVPSYWW^RXP]ZX`P^ZVUZZ\\Ze]bV\UU]]Xj]V[^^`X^Y[[dTY[WZZ[W\SWc\]c[kV_WY\K\V\[\]WV[b_Y]S_X`YZ[[][[YYW]TWVZUZYU_X]YYPWgZ^_aYVZ^cNVTeX]Z_XV[Y\SaSWUY^ZaV[ZTbY_XUTZS[Q_[\VSWe[^\SXWUU[`[Wa[]XYXbTWXYXUY]XS_[kYUQ]WVXYYa\S]Xae\aUbV`WZ^VXZWWXeY`SX]Q\[UW[O]`\WdaOYVe[`gU_ZPROQWZXaY^TZbXYW]VQTX^[SU\_acXY`Xc_]^XV^SZRRY\Z]Wb\P\T[\^Y\^cVZW]eZ`ZY^V]^YUXZ\^XZ[WVV\]\W[`fU[YaR\SVYY]Y]_[c`XRMX\YXZWRX\W]\]`]WV^LWYV[U[^]XXTY[VXTZ\_\^Xe]XXUQU[MZ[^XX[YW^U\XQUS[TXa\X\\YV\^VVVV\W[W_UV`T`Vb][^Q][UWdVVZZY_^TV]\_VTe\Y^XS]XYYZYR]bXUbYT]YYWU^P^WW`]RX^SYZ\YTaWZZTVY\W^Pl[[V[bUWWX]UVb]ZWWVT\dTgXXV]]W]i\^W\WUWZXXYbV`[YV]WVU^U\[X\ZYZZ[XWTTYcX[SaZ]Y`W`[[\j`UZXW[^Y\[__]VZ\]\XbbY\S`X[\dSXZZ\X\]^]]Sd\X\`[Wa]ZWXd_[]Y^X^]c[[[dYQV^]YXVYYWX[S]]XaY_^U\SVUVTTWU[ZX\X^]\]YVRUWT`X]Y^`ZZY_OU^\\Z]Y^^UYPZ^U\VVYYSWXSZc[YTQZV[`Q`Y\_``VT^Z_VWV[Q\TX_S\S\aZXaTSaZe^__\_ZiY]\[WY][_Q`ZU[WZ]_dVVP`VU\UZ`Wa\YS\YYY^^Y[]WXXY^bVPcV[U`[[RUX_^XWXWVZ[ZOXO_V\[ZSU[SZW_ZV]YVS]Y]\T^Y^d_cXU^U]XZR\[cXYab[ZXXWY]]R\\X^UVZf_WVYZXSWZX]TWTTa^V]VSYVVYUaTVTZZUVYW[ONcZf[SUS_\YZ]TWYT_]WJb[ZTZaR[PVMZY\ba\WYVXaW^VV]jWYU_U[^Z[ZUUTWXZ\ZYX\[`U\XVWbWWUWXWVYWWVY\WUVTWW^bXWXbWXVTZ]SU]XWUX[VYWV\W`\[YXZVVZYWZ[TYSZY]]W\]XaWWRXUZT[b\UZXZ]\YYU`]_[VWWVS\hSRcSb^W\`YYSTZY`VVPV\W[VZ^_XXZY[^\R]ZSOTW\X[`Z[TQ\VcZ[YZ]ZU`YRPTYXfWVVZVYYWVaYXR`bWY^\ZVYUc^^UVaZWUY_\WXT\]\_^_VTUYUWWU\[]Z^abWZXbQ`Z_\bXRYfWWZV]V`PWU\[WWTXTX[XSW`_VV_\_Zb[PVfWWTVQ[]V[c\VWRcfRWd[X\[]VSTU\`][]TTYYRXSZ\Y\Z^`Y`\QPae]Z\YUSYZ[SXYV`Vc]R]TScZ`a^YcWZWdWWN]NS`fdV`^]TYQW[cZYYQ\Vf]\\Ta^_XVUUa\_UYb]Z_ZXY\^\\^SVZUVdVUY[_U^]U]TX]eZW\WZ[eWYY\U\aVTUV_^Y_\YXZXUUVZY[\WWWbU[XWV[WXWV`WX`R\^`VY\\VWYVeZW^[_X`_b`[VUY[cZ]R_XPa[RaVYU\^M_WVW\YVYM\dRZ\ZV]]VMUY[U]VOeY]]]SXbX^aPUSZWVYURYVaWYTZTWYZbUZVU_X\_YZ_YZbXW[P^YUYTWabWT_XW[\W`T\]c^UUY`X_WTX]ZRQR[X]\X\\]gabR\[ZVSZ\Zc]_YY\]]\_XUV\Y_[XYWa]ZVV[T^ZVW]VY^Z_gVT\X^ZZUZSXWVW]beYT^WaX`\Z]VVZQ]aXNTX`[eXRb[]S\XXZVRh\bW][VY\YY\X_XXk[U`a]SZV^YaVYZoe]YVTXTVPRXVZXZ\V`WZ__WiXZT[VYZS`Y\`X^ZZZR[\\`a[X\^YcbX^VUXgR^Y\[W_UYR[]`TVZXh`U[WYQYZWXTXaYT]XSV_bYTO^[eb]Y[^_\\^^VWbZYcWZVeZV[\VS\]`QWTO_cZ[RZ`VZXVaVZX^^^`]^oZ[]_TV]XYX^aYXV]Y`\RV[aYS][YUZTY[\`Wb`ZOSUYU`YXWbUXZbY^cY\ZY\S]VRVaN_YcTW_Pb^ZYULUZVW]aX]^X^T]\^Z\PhW`V]\VYYYUU]SYUYaVW]XX\WYVWVS]X[TeRXZ^XX^_`QSQ^_aUWcRYc[ZTQbS\VT_][]T[RYZS^QQbVWY`Y`edeZUdVXXSYSU_\U^XS\aXc[ZVZ`QZaYYTUUW__hSW]ZRV]bZ^TTW]\L[_[QSZ_O]dX\]_XU\\Y]^_RZ^ZZX]`ZZVXTO]^[NVZY]U_[ULbTW^WWV`QZWX[XOcaY[XT\[OZn]`O[YUYZdRTSXW_ZU_T_ZU`L`UUZQW[UZd\Z[MZTQWVW]jYW]`\]XTRXWYZQ[aTWX^XO^\R_ZY\Z]Y`^UYSPZ^X\]fZSWW^]XTYV\c]X\[`Y[]^cT_[]T_S\WTb]a]ZTc[_W\g[\VR_Zc]dR^WZ^^Z[\U^UZ\^PT^ZX[XWY^^[\O\Xfa]ZWUdQ``\ZVYZe_ZUS\aTXWNZ[d[QUSX[V[`ZcT_U^VZUYZb[Va]XSd]WW`TS[[RTad[_TQTYZ\S^TSVZ_[Y[WX\XS^aXYSWbYRZYTYOW]U\cbVWS[Z\\TWY^XUQX^VZ[R]TbWY]Q_\WWT\[WV[XbXX[b\mQV`Xa`\bYaTZa[Tf]X_c`Wf\Z]]QX[V_U[W^W]R\Pa\Z]XW^\YZaYdWW^WcXYZZ[\Y]`U[OZ[ZRa[NXW`Sb^VZUhSYcWU]WX^S\Wa\kTWVQXWXZc[SW`]c`X[SUWXZ_ZXXXS[WbXXUbX_\TY^WVTVTbVNV_gY]ZZQRXeRZRNVZUWQ\[gQVYY^^^hUV]WXUX_UYXVYY[UUaSUT[fZ]X[Y_Ob\W`ZW]_eO\[ZY\Ua\XYWW[_[VZ^^YZZ_]X\NW]b[dS\[W_\]Y\Z^Y^YPZT[TY\XZXT[dWU`aZ`^U[WTWgh_UPZSaYWR\WSZ`[cY`^XdUXfZm[S\VW]]TRb]UUYdZ_]YZ`]V]bU_]XUUSP^[\ZZfaeXV\[W[^ZX_X^RaYU[Y^_Z_Z[`jY]aX^ZU]TZ^SZOS^eVUZVY^RZ[WVYd[_dTSVWU^SS`dVd^SYdQ_[UShZ^ZcUZTWVaX\WVWP\[TeZYXW[^^Z[`a[XX[^aTe\XUU]`M_YX`bZXXaUXSWcWZV^QSbYZV^SVSYLTcPS[c\SS[Z\^\^gW_YUWZ]`X[aVb^c][YdWY\aR`ZRYXQhZOZYWXRP]_WadYY_Y]__PZ\Y[Uc_YWWSPcl]]Y_XaLQ\X_SZd[Xdc\ZY]R[_U]^U^dNc^^^fU_`Va\eRVTH[c^[TZb[f_eU`YRU]XR[UTeX\XUS]WeXV[WURYVVR]V]YRV^PZTcWXffZVYX]RQXZTYZ]eXc]]X\[YVRSa[]WUXT_WU`]RSU\ZZWZZc`]WXa^SbZUR_YZWWSUaZTWTVY\ZT\PT_T^`^YQb^XYU[XWaa_TQVY`\XS\UU_Y_\bYVa^VYXQT[NYUX`_WZXUV^YT_WZYRaWUUWaYSVXY[^Y_[YadXW]Y``[Se[PWYVZXdXb\`PVXTWT_ZZccYPU]YVXU[Xb_T]]YXTZWZ]d[^[YZP^Z]Uc\[`XUZiaZW\`XYVUTT^VU[WZTU\ZVhU]W_ZX[VZV\dY^][]aXX\Y][ZaWS[\hb^]cX_]cZYZWjV[WbV]U_YfYV[V^b\`WT]Z^UX]VU^`aW]VXSRVQ][R]cg_Y`cQWgSSUWe\Q\ZYaW]T\_\VTX\Ub\VUVQ\Z^QcXYWU[[ZP^[`Z[_bRW[YW^]YQ\dUW[PYR[^XWYXQZXW][YZ^\[VU]bY`X\dP^X`WVOXVU]`X]_T]Y]\TZ`T\SQ[[]Va[WY]d[LRZ_\^^WW\WYS]XVY_MTOX]b^SXYYYROZWY[_Y^[[TVQZU[[Va_WU[a^]S\\[Z`[S`Y`Y]cWXV[XYYb[PZeYbYYZ^]]SWVR]_X]Z\b`TXW]XS]RZ]XeZ\ZTWUT[U\a\]Pe\Vcc\Sc_c^__YTX[W^[VSWUXP[\QX]UXSXZ`\_XP]\[ZZ__X^ZVV\fS[^_XVTO]_]]TZ\XVUQTV_X[WT[ZPWXaY\`_WT_X_\\YV``RYUZ^]OVQ\T]YWfTZUUPNXZ]R\^^_ZfZT]`UYW^WW\\WUX[c[beXT\T[VZZ^W\WXXU]^V\]``RS[[TjY][Y`\]`_VW[UVVUZZ][X^PUT`VQbQW[WZY_a\]YWWQZ`[WZc[eWWWbZT]k\^Z\WVYRbS\][W`\ZW`WUcbTZSVV]XdS\[SWX^]]Z\\_\WW^hWY]^Z`ZWT\``]PV__WY]XT`Z_X]ZXWa^T]YW\QW\UT_W^V\ZZTTf`U]^[UU[V^XWS\XVVVWXP^[[_c]U[`VXUV^ZPWVg`UY^\[WVVY`_WUWU^_UXWU]`\T]TWWWV^YUb[[\]UW`]ZXWXaWZSbTTVTXcTVT]_Q_VUVZ^Q[_M[QYXZabY\RYW]Y\R^YTWU_UVWT]^ZX[WW_PiTX`Y]X\\d[aXb]WTXTWW^TPVQTTZ^WVY`\\eWS_SW``][UVS]SYWaVd_XaUd[UV`VWWe]\[U^X\PWYZYcSVZW\\[Y[[V`\\YV`ZWZYPSWTZ[V]T^UZb\_TX[]`ZSUWWX\VSUUZS\V]TUW_XZPZ[]\Z^]VRZUZWUTe]WT^X]\bP_W\V[_aS^]]SYV\[WX[S_Vb]U_X\SR`VXV\aR[TWTdU^XV[XV\[\ZX^^QUT[Vcj[YYYX\X[Z[XYY[XSOZ_S]\WWZX^TZ__eQY_S^^Z][[UVaXZ^SN`ZZ_TcZ_U\S[_^\^XSX_^SUZc_WUS`VU\V_Q\RYY\UbS]\V[[]R\UT[[WY^[^ZTXVZ\\aX[[ZXXZ_V_WWRY^`aXYYZ]YT\[YO`]R^SSYdVY\UUR]XgW`ZSTaWXVVXa`ZXZ]ZbSV^`VOTVS^\`Wb^[^WYYV\^ZS\aUaQgY\ZXeYU`\UZU_cXdTaT`^^Y_\`a`_NZ^Y]YZ[_PSdYYQ]W\`WZ\[[^YTT_Zc`VWUZY]X^]ZV]]]XVRYZ]V[\WVUZ_[XVaX^V___dd[a\W^\XXOT^X^TZXeX^S\VXUYXU_V]^\X][]VXa_]W]Z_P[`ffbYV[TWVYVdZQZUnTaYWUbZV\\UP_UYaYaW^ZZ[XX__^Z\Y[]_RUT]cd]PZYZdN\RgZUS`T[]a[[[]Z\UVe^STXXVh`Uf\Y[TWWRZ\\a[Z^bXX^ZXXVc[W^TWV[d[WXM[^[b\WYgUUaUaP\cZY[[YTYdZ[RYWXRT\[]X[Q\[QaZT[[YOUcXYVUZ[]WVVS^`^S\YcRO`dVTaTYaXZ[\XZV[]WYUWZbXQZbONYaYW\RWWYYQUUUUXWTVTRbRR^\ZTWXZYTZaYUWR^SWdYX]]U`PU\_WTQ^`VKWb`]V]`faa`ZVWT_WSZiWYX[daXXT[\[_\^WL\UVZ[c]Tb]UX\WZ^ZUY[V_Y[U[^W[XU]]VMX^OVcS^T\d\[\Y]\^d[S\Y]LU^\W]VYSPWP[]Q^]VSX]PY[aZU^\TX[XQZ^^N_W[ZVM[XY][SVUZY[NXTZTW`[ZXSWd_\]VVTUW^_U\c]eQ[ZVYWX[WPUOUU`XT_aZZ^XaW[TPWW`VXVZ[[\Za\OYWX\WVScWZ\X\XZ\S`f\UWZcZ^WYV[RTUXWcU[lVaPX^QZSaXXX`[XUXTYYYZa\T\TaZeX[XTT[aXWZWV_ZTS[[T]^[YY]\^[Xc`\SU^\X\Y\WcRV`a`Y[PZY][T]\\WV[VYW[VRZW]V\^XYWU_^WWZWcTV^V`YZWTQ`V\X`[ZZ^_^^aYW_XZSSbe^d]WgYY[]YV[]YX[SSU[bWP\^UaWY^WW]]YQ[`TZfVZ\^`\\]VZTT_YUX]SYTZ[U\YVU]TaXUTXXV\^g[^X[[ZYd^W^`QZVe[Z[VVZ^`^]UQ^YZ\[VZ_VUNPX^[WYZYXW]YQ_S[XSShXSXYZ`YVVWWZ\ZU^YZWYTT[YX`X]ZT[\]YYW\^WS\n[YUX]]XSZT[[eYYVX\]a\Z`U[Z^YZ[W]]SXX\_\ZZ`bdQXQXWO]TVXSd[WaYR^\]VRXVS[`bZRZ]Y]Ub^[^XOO^WZ^UceV^VX[Z_R\Y\\`[WX^TX[XX\VZVZW\\YY[ZVTZZZWZWY\ZWRSYZ_V]V^Z\X[VU]WUXYR\U`X_ZW^[[][d^[WSXb^XaXW\\ZWWVW^S\UZXXW\\X`]VWS][[V\Z]VZXW`_Zd^USQWZX^]Y[XZZVQbRWR^TZ[^[VX_V]^c^\ZTVY\YSW\ZQN`UVZVQ]XYaXW\TW]XUW[^VWY[[ZXXU[Z^\\``YVW`b^\^]a\[V[^ZZVXbTXb[X\YZe]SZVS[^VS`SU[XXVXYP\[cWaZX`UW^SZSa`[\X][ad_\VP_[[\QYYXQZXTZ[^P\_\_g\bYYd`XV[V`Y^__UUY[YVY`UT[WTW_fZQ\Z]YXSVZZ_V\]X]]UXV]WXaU[[dZfWY\UUW]aVU^]Zd`\VX[gZ[Y`QZVWXW_ZUUWYXdSR^cUT[VXZ_UVYY`]\]UdXVQUVT\X[Q[V\VYXY_W]WQU_cf`UY[TUcc[W_cZWYX]XU[`UX\^c`W[Y[b\iWXVlXUeYZY\ZXWZ\W__^_SUVS`XWYYUZU]ZZRXgVT[^OdVZP]SVXUnYYSTU]XW_UX^XTTSW\WVQ]RZSO_TWiUdd\XWY\Y]Y[YWWdbYTZ`X[a[XXYV]ZYW^S][`^Y[TYX\]XZXT`b[^b[YV]Q^\Y`bNQ_U\[ZW\]YTR^\TT[[]^gQ\YXXVVd]WTPTc\Z]ZXUSXLVX[VQVT[Wa_YLSeX^W[ZT[VZY][YQPW_bQ[Wc[Y\Q`RZ]TXX_YVYWVWX\`\[TW][ZY]VZQRSY]RSW_WV`\YYYUOWVYZZZ\\NYf_WVY]dSZZ]dYYVWWVZPSWTXTTY]ZaXURY]VVYVVVT[X[U\XVRWV`VZ^WUYUWdYUfZZ][[]T_[Y[\U[XU[[WZe`\\WZ`VYZabcY[f^WXf_W`[]Zda`UW\V]WZ[^WVYUXXY][XZXX[XXbXZW\b`_ZYUdYZ[[P\SW[XYW[`XXUYV[\S\`QX[eWi_U`^WZTV\[Z__T]YVZZUW^OXZXbbXXS\T[ZY\fY^WVXYV^V\VYZUVV[WX\YX\gYXX_\U[_W]X\T^V`Z^^SR[`WTZYm]^TY]`SZ^VMYT^T\X\]\VY^[ZVU[[U]T`ZU^[V`Y]Xb`XWTdaZ`XUZ\O][ZZ[W`UXYdOW]]ZQ[RU[[cX^]W[ZW]WR\aTUXZ]TUV]e^]WYZ]YV`\cVfVU^YVX\XL[Z_W_Z^\XY_YWTY[S`ZZVW[\YXZZ^VZ[[ZYW[ZX\VZ]cUS\d[XYXf[XUY]\ZWV[Y]R]\_WabWZ\]U^UTUYY[V^WTWTVWaaQZXW\TXaYM\VXY^TZZUY_ZV`R\[]ZWaZ\U`VWYSM\ZVYZ]UW^^\YcWVhZVWZ\cOXY_[\WRWXUT\WU]WS^e[XdZ[V]SR_^a`^ZZ`bUaWYP]WYY`YXYWY]W^X\\W[^T]YY[^]VWgX]X_RVT[T[Z]]XWWbTZbWZ`_^TS^\Y`YWYY[\S\YVUYZYS[WZWR_[ZX`XYY]XXY_ZYT^[_VYW[YZ[Z^ZSW\eW[\X`X\Zb[W][VP\`ZYtQYS]`UjTSXa^\\X^WXVaV_YV_XWcTXW]SZ[YYbY_[YZ\]]YT]WWadYZXW\T`cZ\[VYZ_b\]YWYd]aeeKO]Z][YYY[RXR[dPXU\NZTeZV^bYbT]Yc`[TWhOUYV`SUaaX[_RW[WVZZ[c_YX`]T\^[X^a`W]Yja`gYY\]RbPZO]aZ\Z]Y^U`TX^]Y_W`WYSW]N_SXPe_aT^lcVXaY\XcU\ZTXRU[YY_Xa_VW_YWY[cRTU]YY\c_]ZYVYW\dXd[\^]XTTX`Z^UY``XXa`Q[WTYVaXZ\]O`X`_QYW]`WZ^WUbUWUc^Z^Q\Qf]Tc]UY[\^WaaTYY]b^dXYX^^XYO]VYYT[X_WXZUV\RYiQaR_][VYUWT]X`\a[[_Z[[[XQbNcZS\\[M\X^eT[`W^TXZ[RWY_YS]Y\fWYcYX\]Z[V[WcWd^]Y]V[b\ZWCYXVb[c\Z`V][\[_VSY\Y^_eYV]\X[[\^ZV^bd^^acZQg]a`YW^aW`]ZOgb_^\UXZ^^]bV^Y_[``]XXYVZ\V^ZU\Z]b\[^Xf^^Zkc_WWW[XbUfU[^`R`gU[]\ae\]U`SZXW`^a]TXZeZgXV^\^^WZS^VW[^^rWS`WRY[S`YW]XZmVb_\X^\[^]S^XU[dRYYXWeWWWbVY`XY]YR[PYZ[W\\Z\[^\cWfXl^WQb[Y[RZ\^^Y[Z^a[_VdXVZ\[Va\\_R\a_bVUZ_ZYWYYaWYc_eUY^_WW]Zc^UOX^^Y`ab^[[ZS\\][[\WTSY`aQW_[WVU]g_`g[cX[YWS_Y]RXVYj]Y\\]`\UT[e]V\XcZ[XX_]WVZVVcX[WUX]^U[V^`_h\UW_aV^UXU\^^f`]\V\UZ`T__c]W`Sf]U\\cT]]\XS[[U^^WXXXT_[gZWY_^[VO[UMe^VT]YZXV^eZa[U\Z]YT^UX\S_TcWXZS__Y]aXfV[\a\Y_TbTS^a[^_WUb^^X]ZY\U\`bVXRaR`Y[TXXYYZ`Pc^\YXVXVY\X]]V_UW[YZc[UTWZ`QbW`ZV`VU\ZZNVXbUTW_Y\[ShV\MQa[U\]W[f[Z\bbY`[[VYUZ\T\]UhONTY_XW^^W_^]UVW[`UNW]e_V]U_eW]aVVQ^X\V^VQV^[X``XV_^^`WSU[`a`YTKUXY`Td]cZXV[]Y_cXWTP[`Va_[MTZXV_]`[R\WTXZe_[QYXZY\`YUY^dZO]VVZTX]Zh\UT[WUZU]^]]YQU\_XaRYZUaU\]VU^X_S]`RQV_VT[\T^\^WY`\cYWZSW\V_[ZVWWY[_\_RTR[Z\_XX_R[kQ[WYXZY^\\b^R_aU\XVd\ZT\YVTRV_`_dS\QT[XZaXN^YTW][TSX__S\`\Y^SYXVTcXYX_RW^Y\]YY\aZ^QWbYQ]VRZU]]\Z[_\ZYVZ^VUZh\YY^YW]W^WY]XXZWQYW^][`\XVaS\X]_WSS`[YWWi^X_\\_cY\[\aX]ZYYYJRY`_WZT^UZ]]R`UW[WYVVZSYZXXN`Y\WaW]]T[VSYZVW[]X^]VZ[`[XT_a[X^][X```\Y[W\SSZbYV[XPUPV]YVY]YS\YU[YQU][WUXUSXbWZ\[]X]XX]UeZR\WWXScUdXZTUb[[]V\VYbWW[WTUW\^VXaYc[[`Y^VSSXYYbZ`UU^SR`]S\gUZYZfYTZVbNZXX^[\\ZZ_eU_]VaT[d\XS]XY]T`U]YeVXWWTTZ\QZX][XYZ\R`WW^T\]ZVUYQe]XV]ZY[\XX\VZaV^^T^SY[TU_^^_^[_[ZXXR^S`\STW]\ccXXUW^S]Y]X\[WY^UUZX[[XUfa^U[^][WZ][]R_XZ]^SeYYT\UW][YUYUZ[[a[SVYXV[\\R]U^^[Y[dd_UY\\Wd[Z^bWUbX[W`^XW[bWWUUWZVZYZ]YSUXaN_aVMTXZaZYZ[_][T\T]b]`R_c[YTN[U`UUWXUbYb[\WZ_\TVVaYWXYbX[aY[\_ZU[ci^^YWW[[]X[YWZQVR^WU^UW]WX^V^X`Z]Y`bZZ[a\VTVXW]\WeZV`^ZYYXZZ`^^[a`W[]gXQYXaZWXmX[\W\R]WZ[WUU][RXW]ZZYX]ZXWW^RZV_aZ\X\^T_]Y_W\`WZX[ZSO[V[UZT[RWZa\UZTZW[Y[^aZW_a^][b]\X]VV^VU][W]XR]_XZ_ZY[XV[UXR][Zf^YO[\Y_PWVXVS]`[[]aUR[\UTY]`U_]Z[V\TTWQ]SOS_[]^Y\`[VUZ\RW^USWSTVY\YZ\bbVS^`X^_ZT[TXWW^Ya[WY\W[`]aZWY\^`YPXZ[T_YUYaRSeaXVWZ\QXZ]YZ_`X^X[ZS`_VSZXZ]ZTZY\W`U`XaWY][Z_\UbUYTbXYU]U]VXV[]^]YWY][ZPQZ_`Z\_]U`^]VUVU^VYS_VPXT]XcX]a]^S[W]S[UTVS_\W\X^]V[cPYX\TW\UaSSYZW^YWV_XV[[XUT`ZV`ZdNZ\\d^XY[`YdZ\SWWVX[aXWZWRSVT]S]YY[ebaV\Z[^VcU`a\XZeZTXX_\\_aYYVTV[VWVRTbZ\[Y\XbUSX[cleYO[^QXP[_Z[WTSQPa\NZR[YURaPU^\Z^[V^Z_Y[UYdZ`b]]YbYYX`XY\VZW`RdU]\\[TYaU_Y[U_]S`YRU^UWX[YXb]V^][SWXUXVXZX[UY`ZY][a]_\LT`eYWSX\]UTaV\USWVZe^aS`M]]Z]U[^SU_YcYV_VZXYS^[[RladS]OU\[WTRW^U[[VV_WTVd[U[X\TWUX[b`[Z]\X`VWQ^VUXZ]SWU]WRS_]VVXRZTZ``RaZUZV[iX^\UQRW[[\V`^Y]_[_ZY^cOa_VW^_Y\c[VX[YSXi\XaX`\YTY\_TVW[Q_]X^^WWL^\^Z^`^_OU_[Xd^SiUW\ZScNZ^[X]RaUU[P\X]NWb`[VT\_`N\O[ZVd\WZ]TU`XXYXW`Y[X\YTa[YS\VW^][a\fYWW]ZbO[U]Y^a_\SSY_bW\YaVW\VUUaaRZYP\Z[gYWV\VYSiV[[aSUb^TX_^^\T`V`lZX`_^WX[X[\ZbR[[dWVQY`VY]R\ZQ_Ua\QUXYV`]WYZYV_\XQc\Y]S\V_W_XXXZQVVjZd[VY]X[V[_U\^_]`VY_Y^[][P\\XPX__Y_\e`[XT]VaYVYZU\UT\YaX[T]S\ScV[PYUVeXUR^VOd^]cbSTNXQ]WSXPaVS^c[VZVWY\SZZ^WQZXV[VXZYXYe^]`Z^^cVUXZX_SQZS[T^U]RXQZP[b_oc[YT]^[\WWTTZ\YV^Xb^[O]iPQ__`S^VR\RaWWXX[YecdX`]][S]Z[[[\^UcVXQX_[RYZWVj`SR[ZTUV^[SXRhaTW^TW]TSVY[XRZOWZYZ_\]^Z`^VYZWVTVZ_ZZW`\UNU[Vgkh[UYXWT`WcYV^YbXUWSY_XWUQT^WU[bZPXg^^h\VWggW\XW]VjW[SVXTXS]hSU]Zg[TXZ\e__cORSW^RWSXW]^aYZRVU]UXQ`VWgg_^\SW]GTTVZR]VWXY_ZaaTY\TZXR`W\V]hYW[YWX_S`[_ZW__b]_\QXU^UY`_Z[ZZUTVVKVb_SWYQTb_[Y\_[_\][XZV^[Q]SQ\`R]RTTWQW\ZVNY\__UXT\VXWY^\ZX[fZW^[XUY\V_ecYUWZYgRU_[YUX\YR\WaY_\QXQXW]WTTUjafU^W[VQWT`SZV__YYX\]WVW_[OZX^QRSXXSYSUYSOVVaXWXWXWP]TUXRXW[fXiYWWSXcVbgac[U[ZZXd`\PSW\Y\^[]\`OT^Y\^Z[XR\ZYf\Z\TX`ZWcZ^S^WT[SV]WXeSS_T`SPVUZW\VgW[cTYSX]\X[XY\Y^YUUcW[W[\[eU[_\[W]V[U]SW[YW_]SW[\ZXYiZV^`cX\_X`UXS^[YXNbUd_Z[W_TZ]blcUW[ZgS_V_Z_e^XYiUeU_\R`[[a^V\^[VRPRUaWUQUbV^T^^[_bZT\PXXVdX_Z^TX[`U^\MTZ`e[[_]YVXUZYU[[_PW]UWY[XY\Y\^XX_^[QWZRZ]LSbT[]`gg\VX\VS`U^TVYZ[PQUaea]]\]RU_WZ[a[XXRX]]WVY\^TYYUPVR[\a]NQYaV^Z]^W]]_gabbY`PZTd]]XXYTVVTZYX\ZXYU\R_Z`]VRRTU]aYWYZQU\[\S\[]W[_bYUWYWYSWX\Z[VMZ^[XTW_^R^VV]URYV^Wa[i^MZ_ZTYXWa[[YWQ_XXdUWZVTVl_VZX]\XYgRUVWVXYUYUV\cXPU\S\^ZN`WUVVWQe^ZW`ZQ_USWXZZYWUbT`T\P[O^X[_P`T`TS^Mk[X^ZZXY[RVUYXXZV_Q]XT^UOUY]bXR[\[[^^T[S]L[[ZU^]UX]WSXRY[[^W[W[X^`U]`ZXZXWV^_]\RUj`]SXdaYeWV`Vb_\YZZaYZ\QZkV]`V_YYZd^X[]XVZRYdQ[WX^TZQgW]nZ]QbV[]X]US^_VYV`RY^i\ZWWWUfdXYTVWVTXYYX`hVV^VZYWS\d__VPY`\\WZcS__V^W^]aVBYYZT^\ZkZXMcXSUVXZ]XY_YX\^ZcYd^[\eX]`T`XgVU`UXaUW_^`[c^UjcO[W^WZRYcXW\U\WWW`VQPXR]]XZWdWg\kgZbZeV\[RXdUWhX^[^SR[YV^YQR[Q_^bfTfWaWX\UVV]a_Z]_fXUY]_PXX^ZSbaUX\dbY]Y_VY]\b`\RQ`cYa__Y_cYV^ZSSVZ[`RXXWSdf[d\Zf^S]XU^WZXVYS\gR\VXZ`MZceYaUY[a[QSUX]^aZZZT\\Y^^SVZaV]d]XTSWUYZ`[YZQV]OaY[^R]QZYZZ^]c`_[UZV_PXRWa[X[V__[``Y[[P`ZSU_aM^XOQY\_UY\YRRUX_UZ[^^_WZXb]]VbXaWV[\RY^XYT[W[R[`][YOXRXW`cXYV^^[]^YXZV`SYUWc\[Z]ZY^UUR^YQUTXXVZ_aTVVT[ZY_^[WO_[^bSSb]VZ^VVU][_`ZTaaVXZ__S]S`RO^U\SPT]XUT[\QSYQ^]^\[Q^\aUWcSb]TUVZZXWaYOW\V\_\bb_WTO_VbO[ZUUT^W\YWU_[W[VOZQ[YUX_SfYRaeVTWVbT[[ZWSYYUWP`VWi[]VVZ]XP]W\]_XVZXbW\WVa[bU]\c[UYX^]\_X^hZZ\X`WZSYYZ_XW_U_TSXYXW_XSRVTZ]_a_bVZYVS`[Z^ZXTWZ_\XYRZ]S_]^YW^Y_]_XN\Z``XVUYUVSSTd^XXP[Tc\^Xf]UWWTXT^bY\dcYQ_]S[d[][WR[WTY[^Z[V]TZoWWb^[\_T[^VYVYXXXbkV[V[aZhc[ZPV_nc\a^P`WQYSW[XeVVa]f`XW_YVSRXVR]cZYWZPSXY_^UU\W`ZZZU]XWV_Z\Xc]W`VbXUTQ_QR^U[ZdJW]]ST\^]ZeY\XTaZZZ]WVSTWY[`]_\^SVXVNYX_^TX^\V^XRU[Y^VdZXWYWWRYSUTXTZ_WVXaRQXW]jUWcXY[SL\WYQ]a\^\U_XX[ZMWV[XeYSfZ`XV`RWZTS]\[^U^XOZcTUVQ_`ThZY\QY]iXQ]WXX\UTXaV[T]YUV\PU^UXP]T^XTQcaZUY^WT_V`\a[XVXX\XQUZY`VUaXZZXVfZVcXRYQZVZaUV\_TWaSRZ`WVYaQW\n]\`]a^\]]YX`_S[SYiZYZ\_U[^cQVU[_Q[e]\rZWW^VaZ]YX][V[RVcVW]RWZTYYVe^]^W][^\cZ\Q[YXUVW_VXTXUe_URVW\^NUYTTY[V]`V^ZU\W[]YaXXVUUWXX^dd]WXZ_^Z^ZRUW^cYUYW\\PWR`f`YabSTUXaaWVLV`[QcbZ]Z[Z[cYVQYZTRWYX^ZX_adaYXOYW]fXXVZY_]VS`XYXU]ZYjXZZ]QWXZZ\QZhSTUgRXXYRcU]YTT]\WYUY[XSUZVYX^[SRVTZT\WQaTUZXeWV`a[[\ZRYSWY]aZN\aZTZ\PSXaaZYRWZWZWUSZ[Q`ZUT[^UW[bVdW`Q[XZ[OTYV]Z[[Z^X[YY[XaX`W[XT_Z]WW]W\SWad\UcYUQf\ZWUVX\`\X_iYg\\X^`\S_XRWTVZ]XVU][^S_[SeZ]ZZY\SXUWVZUU`XZR`XT_^YW_V]ZWWWWUYK][]^ZRWYY[Tc\^WU\VTPVZ]W[ZYTUYa][[QVWSYbW_TS^[OT^ZXYZ\aYU[[\\_`^Z]Y_]ZZY[Z`V\ZV^X^^dWX]bWZ]X\XSU^SaZZY^\ZW`^_X[f[`[VcTWWRdVXYcY\U`VVWX`U^^^U`[Y[TQ[][YaSXSXV][]SXW\ZZ_TSXUXZ^XYWaXVcXYW[XTVY[\T[Sc\]Z_WRYU]UYUXTYYQWSQV^Wa\\WUX_eb\[W\V[][cXSY`aa\dZ[RWXXZ]][_WYc_]XX\W`XYaT[[WUUTRdW_Y_]YZ_WXPYf[_X]X\US\Zc[Z\UVX\V\Y]ZTW][]V[_WX\W\^acYaaXY[_V_dS^YXT\PVZ]]U[ZQVSX]Y\WX\\XV\bX__[V[^ZYXWVQ[WYRVSb\Z[d[]dVWXeSYUVW[^OO[XYaZ[ZZWS]^YZdYZZ]\c\Zb_UhgcZZc]a][_YTWYZ]V[``SThUc[UVW^SYZSX^\ZXQ_XRWW\XdVZZSZZX`Y^YWZO`Z^Y]VYX_YXWZ][`bWa`]Z[PUTZ]]jQ[^Z]`V^Y]Q\]VaXPYZ[`TWTZ\V[VbZ\^]Z`XYcaX]PZ__bZ_Y``ZYTSd_Y[Za^^^bYSS]W\U\\YY\[UgTTTZ_Ua[OYScWTaWR[WWQ[UW\UVYXWW^TYZXdSX`gUVbcSSYVX^V\\[YT]aYW[VUTW`XZWVVXW]e^]U^[UWU\XVU`T\XV\P\VUN^SY\McU`WYYZXZWVWWY\X]XTRXTN^YWW^VNc`_`UdWZY`SY\_cZ`[V[U`R^VXOU_VO\UdSPaXX\^XVVT]QTY]VTRZXY]YVYX[\OW_YW[WVbYaVU[aXRZaW[T^cMWbZX]\W]UPa]]a_SX\V[\WZ_^V`VWZb[WTYVV\S_Z`ZWVQ\U^\UU[ZZaQVWYUZU\Ya\VWZRSVM][W]Y\dUb^XSVVYYWW\S[U`ST]WVX[aWU_T^ZUWY]]YXWZRXTRY`V]WX]]XV[cV_YTV\Za\i^WSOW[TVYTWN]bW]WYV\XW^XTU\X]`TWS^WUTW_WZ[W\\ZUQ_]a_[jiaVSTXcYX[U]YX_X`W^QVTW[\TVba\a^TX`UXWQ`d]WQZYWVXUZ\ZYYT\_[X`YUZV[^X[YVVXV[aSWWgW[_YdXT[XXZTT\XWTZ[WYf\Z[eYZ`TY[Z_YU]TWWTY\WO^][YVY\]U\YbYT^YQY_\XZW]^Y[XYX]U]VRQ\]c]]S^[WU\X^PX]XX]^VZTXWa_W[_Ub\Zdd\_XYYaWYTY^VW]]_YSX\YTV\X[UVXW`[XQZPZU^RSZRYYYaT]U[]ZXMXd^VUYWRT`W]aS\`Y\d[Va^\]_UWVbQY^Xcb\W\[`Y_Y][X[[WaX_X^VXcUYUR[T]WXXXUZS_WQUWX`ZPV[YVUZ^P]\V^XSV]TbSTUQYSXU`l_]][]X]T[XdYSWZa\]\XY^WWU[_\XZN`WQVcWW]YXXZ`XVYVTXYV]UVTZ]UX][WQZbSTTPXTaS]XXUX_`X[TUcYPX]^URSW_W[fTUVPRRZ\_ZUXY^`[VUTZ^]Y]RW^S^bW]W[e^Sb^USV\T[[`[TZ^UTZW^Z[a]ZYVe`\VTRY_cNfUZX^SX]]XX[Y[[]_[RRUOOOXTVYVeVPYWWSWY^dZZ[T[SWSVSU_UZY[RRZSZ]UVXfeU\U[]XV][_\VY\TcV[XY\UUXXZ]TWZWX`e]T[XVdZ]__\\Vb[fR`^S^]S\]SZ]]RPabbSWUV\V[V\]_ZWW`W^\UPdV^Qa]XTRUYd\WPT`VQR`]fUT[W_XVQQYS\V[YV[aX^XWPZdXXX\[\XYRTYZS]M[_XfTWV[b[]^SZS`YV_`UW^UYY_TY_YZ_[\^aT[YOVW^Y]^T[W\[T\[XYVYb`QOa\XWSP]_TYZb\XZYYT\Z`UU\SdT_ZZUZ\WaZX\Wf\f]Wa\[ZX^^VV`WR_RV[S^PY\ZXQ][__YYWTYdW[\_UUdXU]YYYYU`U\ZV`_XVX]ZUZaWXWXY[ZVRTWYWUZTWS`WZY[PYZab^T]YY]gbYWZ[Y\OPQYZ[]Y\^UX\Q[a]WXV[\][Z[``QY\[WQW\[ZZT`\U][[\][UYW``SSXX]fV\\ZiZ[UV[Y[U]_YR`^TUgTUZbTYh^YZW[\TX[ZP_[SRT]R_`Y_bZUW``TT[Vd^\[YXUZYVRe_YRX][_`Z^WP^UdXT]URZR^Z]XUW^Y^_YSQV\S^S[UYYeY^QV[U^X\V^ZTXSXZ`]YW_V\T\V`VS^[[_[Xb]WYYTPYX[UXXW]U^VW^\\ZcZU_X[[W[ZSUU^ZWdYfbb_V_XX^XZYXcY_X_[SUO^b\X]Y[XW]]_]WW\Y]ZU\[\^_`X^YSXYWXUa^YcS`QT^W\Z`XT_XYT`Vb]]PXXX_TV]`Z[\SWZ`Xa_TR[Ua_`[YVd^ZXYW[_Va[[`][`XZ_c]XX^`ZX^W\XYTaZX`T^XZZY[TUXa]`\UUUU\XW[_dWUVW]Y_UTXUTWYUbUZX`Y[\PV_^MW[U_X[XUeZ\XV]\^VWYYSSc\[ZUS]_a^VbVT]XY[Pg_VTXZS\Z\ZSZ_c[a[^ZZ_XVX^VWdUY_`Z[cY`YaW_VfZ]_SUTZ^TVYXY]Z^XJ[_XQT_TVWWY`a]\a_^Q_[aVSUUWY][bQZ\XVaQZ[YXOZ\WU]XiVOQ]Y^^X[YX]W]UbSTZd_SUXcX[WV^ZeZQZ]RT\XN^]_OVXYV_O[]^^V`XaZXZ][K[WWQ`cY^YU]aWVSYVaZ\SWOWZZa[[[\Z]WZWO\VYVYX[`eWX[[f^U]d^XVXZaa[TYWWTVYa^X`^NZ`Xc`S^VTUTbPYXX]ZS]Z`[YWSN][U\WZ^TgTXY[ZVVX[UX[XXaaWWUYSV\RQUb\UWUW]U`ZYYVX\a_d\Xa`_[Uc`\XYPU_Z^aSW\bYTaYYUURZ\]WNi\SUU\aQ\\UU[[]XTWVTRZ[TWYT[TXeZOUZYc]W_[VXX]UWZZ\bQ^UXW][[XgUZ^ScVUWV[WZVZcWZQS[XXV^W]XYV_TZ_cf_Z\ZTWZ^_bW]\YTTb[UXZZY]UZVUYXY]`UYXZ`[XZTXRNSY[V\\ZW[TYW[[][XXXgUU^XZ_V[]Z^dXSV]aZX`a[WUU^`_]XZYV[YZaXiZWd^Y[MQWZQ]YXYYQ^YV_PTY]\ZX]_WZYYY^Y`ZUWTZV^b`Z\U]RSV`X\\XcZ]XYURZ]\\[[SR]]Q]R^WaZWQ[__[\X_ZUe\[X_b[X_UT`[\TVYY\RYYZS[\UWRVZ]]`[XVU[STTUS^VSYVV]YYSZVb[][WT[R_\[S]WZ_\O_Z\RRkW`ZY^ZYRWXXTQWXV`YVX_fX^VN]\c[V\VTYXS\]QVYS[V[Zc\^\UV`]\W^]Z\Y^VbX[V_Y\XZSc[\V]]_ZY]YUUYRS]_YVZVh^^ZYZ]\[XYXVY\XZRY^\TYTcVYcU_\f^ZYb[WW\W^\\Vac\U]YaQVWV]\Ya]XgX_cSUVTYYN[UWT]S^^Z]_\S\]]WhT\`WY]Y^TS^VVTYUaY`ZVSTXYTTT[X]RTQZXaSb^Z]XR[\YdZV]TXT\U\QWZR_[SZVW_c\WZcX^^a^W_YTZ_[VSYWRXW]UYXWSaW\UT^YX^U_VeW[_[^X[YVVYXR[T\]\YR_URSUUX[U]`[YfWVYb]WU[RZ[]WSZTVW]RY[ZM_QWXWZV\]Y_W_QX`\R^fc\VS\cWYT\YT\V\Z\\RWPSVWWOWR]XS\TUY]lTP]S]RXTUTWU`aV\Wca_W^TVYX^fXUX]_\U^X]VVdX\U\\MaU]Yah[`[P\]d[Z\Y[V[X\XcVQZV`_\cYYUYYXY]a]Za``YTWRW_Y^bXYV[XZYUWX[aWW]XV\ZS_]V_[TSdWU\\PUS`SX\UXbX^ad]Z[XUVY_Z[]VTYb^]R[bQYaYTQWW[\V]gbSj]Y[U^RVZV`YUWVaZ^RSYZa^fZQcV]VXP\\U[[[ZVXZT\YYZgZ\a[Y[UXSb]YYY[\X]TiVWR[Q_XVZXWZZXXT[TWO]V^V^bY\[XZUX`YUaYZ]XZUT]YVYV\ZW^aWXU]]dUY]ZZYVUX]\]\XVX\ZUZZ]YY[[[TWUUYT^_]SZTZQW[[Y[ZXTWU\Xk_Z\[`SWXPZ^^]VVW]ZQWU]aR[WSUW_]eZRZWbWTX]b_U]^YZ[^XYXV\__YQb[\ZX_VWaUWbZaVX[WeT^UVWJ]`UWVYY^W`Xa]_Y^Z_Y_UVQXYZ]Y\Y[XWWRWY]\`RYTVf][VY_]X[\XTZ^X[[VVcQV]]TVYU\\XUW[UXUXVZ^YV]ZY[WZRQZa\VZ_^X]ZT\V[X\Vb\ZR^\YUWT]XYXaZSSWUYYSgZVo^]RW`[Wi[Y^TXQ[Z`__\Ya]P_YXUZX[S\X]\\[]Y[[\X]cQ^T\aaX^L`^YR_X`RZW[_O]WaXPX\RTTVRZU]c\U\[`[V\STXW_R]\WV]XaXYfX[]OVYZVXZUY`UT\ZXRT^QVRS[V]Pb]\bWUUXYTYV[`XTZ][X\MZX\_PaZXY^\[W`YYUTX\\WX[[S\[[XcQ[WWb[X`UU]UP^]S`\Wb]T]]\WUXP[\]X\]SXPU\\XZXUV_\\`\^S[X[\aUW\YS_XYZe]ZaYXST\YY[WTXR^UUYcZPWaZQUWWVaVYPU]R_aTYZRWU[X[Y[U]\c]S_R\[eVUaQ[WZbWXZ^QYYWXYW\[TUZYS_ZY\QXVRQRVRRT\XXO]b^]YPZVQS^QdbW\_WX\adVVVZUVPV]WTaVU\]RSZZ][^XUb^WZUTSW`YSU_TX[SR[TXPQSXe[W]X^VSY^^ZUYWdV]T[U\SVYgRRYdcSVYTSUU]]ZKUYS\VXX\]ZXP]RZ[ZTYPeXZWTRUUUOZ]RV_Z[ZR]dZ_\^V_bWXVcZRQY][]XXS[XR_]Xc_Xb[TU]XXXOZWT`[Pc[XYR[_[_T\YT]WeWZXdRZX^QTb\VTVQZ\V[\XXJX\[R[_Z]Wa\^[]`U\VTVO][X\_^YZ]ZTS[T\WXe^[ZT]\YbUPaUUX[RWZYUPOWWN`UYa[\^aYUU[\Sf[[ZURXbX\`Y\kX]ee[WXV[SPh\SY]\Wa\VUOXVWWSZ^\Y^]aYZV`Z\^ZXUVU`[\Z[YaZ]WZW^Z]XTV^WaWWXVS][^ZNTY]SYOa_P_UYWY\`V\aZ\_]XWUXRSZ[bbO\\[[_TVYTWXWWW\YX^S[c[]UW_cYc_fWUVXTSZ[a[LdYXa^OZZ]S]`]V_\\Y_XYQSSWWYTaSS\_XT][UWW^_N]TXWe]`[\TW^WcbX]XXW_V^QV[[ZVT[^\d_^WSZUb\Z[Y[_eW[X_T_X]`iOZ\UWZWZP]ZV^ZXZVHSWV[\Yb]W[]VZSZT_XUYWc]TWRc`QU][WWYWb]_Xa`SY[XX\V`_ZVY^_[`]RW]^UZ]^RTVU]W\Y\VSd_ZURY[_We_YZX`YT^]Y_[YWP]_\SWZVVWTSPS\TdYVacdX]R[bXUY]\ZXX^Zb[_TX^ZUVZeS]X]U\Y]^ZRXb^\T\Y]\ca^TX\\UU][U^WQS\\\[SZYVNX][^XUXW[]]Y[[]]UZWVRZWUZXa]STYhUW[S[TSW^[`QWaWR[T`W`]jWX_R_T\WO_\ZXXSRWaVcW\XT_XVZSZYZ]_a]YY^X\\[]VY][UN\P\aT_XT]VZV^W^VYYVWX\UZSg\[\^\aT\X]X[QR^[\RZUe[WZ^[^iV\U\UU\_U^ZXWWZUQY`VW]^TUOeSUc]][WX[WYW]V^[WXW\Uc^^X_JdNQS\f__\Y[WWjV^[RSQ[]^YY]OY^P_b]_bYaUX\]Qa[]Z^[X^VZZ]XWUV]S[[[[Z^YZXXbV\ScVWSWY[Q\W_Y^V]ZSTU`XTYYbSYXUTO_[^RUY]^S\UWZVVYZVPVYWX\\V[[[YXX\WXXW^TR^XRZ\W_SZUVY^^Q]`_ZWUbZR\XX]WTUMWa^^`]ZV\MW[]iTXWTQS][UM`MW`XTbYZbY\`WQQXjS_^[[eWWWa]^YN_W[`YiUWY]XeS_Z_cWUeX`WWZ]\Q]^\_SVY[OaVVQNZfV]NVW]U]RO^TX\i]WW\dRY[\\VZXeY^b`SZYYRbX^U`OXZ[VZ]VYU[[YRUY_]SY`ZWR[ZV]aSXYZYT]WaTU_bg[UZ_YTUXVXR]V[[YUT^ZU[SWYVb[^d\dXUW\YcSUe`ZdQQ^]]YU`[ZXZWS`[S\ZTf_UbTaU_VY\Z`OZQ]^TTaVUV^VaY\aYR^XXWU]V]VY_YU^QWTXYXcVPZVZ^aW\YVYQ[TXUT\YQZXXY^WY^WdW]Xa_ZW_\V^]iX`[Y[Ub_VVQX_WYV^X]OWX]^fVVUWY^aUYOaUWS[SXa`]XdYU\][^VS[YdRV\YUZ_SYbY[WZ[\][WY[WYY[W`bWZ]bSbYR[\Y`[XX\`^^d]TR_NZ]Q]^]]YX^`\YTcVVYZ_N^V[dZ]ZX^_TX]_Q]TSYY\[U[XXWXbY]]V[]`QTWU_[[STXYTY\b[TZYXXUYVdYT`UV_T]WaeUYWddWTXbUSZWY\[\YTYXXXX\Y_ZWU\`W]TS_]XWYXZWXWeNU\QhZ\S\V]Z^SW\bYWWTP__Y_`YR^UcTb[X]S_[^\X^_S^a\eVVWWY[X`VZcTXe^R]^]UX[X^aSYZX[[]]Z\\XbUYR[VQ[ZXZZX`_e[]Q[YZVPR\]YTa[\U`VcSSVQWZYUbW[X`SQ^WQXa]Y[SYVaVR]aWS[XcV\ZQX]]XTWW]cXWZXTcNTVVZ]a^_]SSWV[ZSW^Va\ZeS\MO[ZfZTZ^]U[P]WW\Z[UW__XScT][YY^T[bUYWZXZZ^Yd^``[UZ[a]a`[SVe^cZ_`K`[ZeTWWXUd\UbU^YXXU]YZYVd]]PcX[\VZXb\WZY[VWX[Z`YRXS\V[Q\V\ZZZVSX\^^_UXZ[[ZY_^YYXY\UX]\]Y]S`U\WSf\\_bY[Z_WUd`W_[[RWUZWYRX\YYSXT[Q]WYaUYYZ_ZZVWU^ZY]Wa]WTZSUd_XT]LVeTT\Uf^cUTgWYUUa]ZZUe\Y^QTZRYRVZQS_aWZ\U[R_\Yedde\\YY]\VX^Q`^XU``Wf[_Vc_XYU[TXOR\^bWVZX[WV[[VY][T_aSZ]][]XXSdX[OZ[UUWY`YZW\aNZTX_R]_X`[[VaXbUTWZT[U`RWUSWX[ZOcfOY^VWb]]X][]XXX[b][]WZUeRX^`SZ_VW]SfbZ[]\RYSVZTUPNQZ\[[Z[_U[ZX\[[VV`[]\^T^WXU]`Z\`[YW^]\XR_[S]XPWYRYc\WR[V\TXLTTNWW[V\\_Xb^W\Sb]WNZaNR]TSY^XSi[T\T[V\YcPY]R^YUV^KT_c]d\YZ\XWV]X\VV^\\TaV]VXW]WXVU^WV`[\^YbXUU]YYaZTb\QZQ_SWUPecc`U`^S\\WUX\P[]\ZT^\WU\SX`TYUaYP\Q]ZTWX[XgUdR^YX_YVRYNVWZScWUZXYXTTlTWZWYRXYUUTc\\`[Vb_WaYYUVVbZWV\]WR]YRZ]WX^`T^YT]V]WYV\]SYSbUd]gZ[T`TV[[e_YW`R_XVTU[a[\a\]Y[dZT\WWX[aTRW[YbV\TWVVWaZZZS]YRU\[S\XWZ\XSZ]Zc^T]WTV[ZTX[VbXZXYUSV`TXaQT][QW[[YY\WRZX]]VZZaeWXZ[[VZVah]Y\UYQ[WWX[]TX^^XXgXbVYS\]VY][X`XPpRUWYWZTZTYZa\\OX\^[`]VV\TLbl^_UYY\SPX[X_YVSaYWZV^Y^[VX[US^]]PSVYY_c^VUXVR^SVaU_h[RWb\XW]RZdZNUZYa]X\_bRV]ZY]VL[[]fS]V\MZ\_Sg\[jTY^VQY_Zd^U^S[M]WYfYcb[TXY[[]\]UTUYY]_U\`U[WMWYWUaSVWXN]WXZ]WS^UUWXRXW\UTYTWWWYVVXW`UYUPX`\\\Wc^c][bVb[XWWLcR`Z^YXZZ[`ZWW_YYV[U\a]TUXY[R\[VVTYUT[V[\VQ[\WVU`TUZX\WQ]V^YSVUSQYYT`VW]YX[T^Y]YWSW[Of_WWdM\^]W_bScZMN^[WO\[[[YTXdY]`WWWUXUbVX[_RSXWZ`V[U]\aYTXd[W[W`XXXR[WVO`W_UUW\aXZcVY^Y]^`Z[_h]YUW`UVZ]j[SR`bW[bXQWOZVW][UW]XSbSZW[\T\QO\YXXZ_WeYXZ\[nX[XY[V]]ZV^X^S\]VVQTR[WUQ\VRYShTaVW[WZcXV`Se\[]V_[XXTZdUjYZTOSTcSUaX_XY[XfTV^\[UU\YWYVRW[XV_\WQP`TVWUSXUU\XYTURUh[^SZ_\TXa\^VVTVW\^UYZh\[`[Z\UXYY`]\hSc`T^[YX[ZXVaV]RZ[QZ]\[XVXUVQY`a`XX_]aZTW[Vd_TXXb^_[XSUOSUW\TTYS\[YYX\X^VWR[SZbRVYTX_\hXMZT\T[V[VUV\WWVZ_[W]ZWRVW]Z`W\YYY^`W\V]^ZT][\`hWY]bNWUUZ\[]Q`XPZTaUYYZcNZUWVeW_Z]W[_U`V`]Z[SS_WV]UK]\cUU`SYZYZ[]UYfZZUYQa[`Ya^QZV[^[_\jYR[[WV\Q`]YX`S]]P]ZXXTZS]Z`Z][RVV`UW_Yf\V[ZPfTY_ZUSUWXaSX\\[[XXZS\WV[XRWYUR\dWR[eWZZUVX`eQPYYY\UWeZ[\YTR]XV[UO\ZV\Y\[UbSWSZ^WcVU[V\ZQYa\\[\Wa^^\XV_WX_W\V^TZe`PRQT[XTaYVb^ZZWU\XW`Vb[]T`XUhWNY[V^]^[XV\cZX]\ZVYUU`fWU][c_U\[TTTVXZa\X]\ZVY^\Y]Z`\QX\P\][cU[RT^^aVZTXUYT\]YXU]Vb\YZZ\UX[XTY[]SZ]NeU_Z^Xa`e`Z[XX]Xf[Zea_\c[WQX[ZQYS\\[WaUZX\bU[T\Yd\Z\VX`WZ`WlY[U\UZWS\\W[WU[Q\c_]Q]RWXWZZ]\VXX^ZPUP]VXZ]XS[ZY[X[W`T\^_PU\VYUW\ZZV^\RUX[[We\^PU^_U^X\Z^ZYY^UcYW\\WU^WPbYVR]_]\\_WU]T_UZ\XahaXYVTXVX[\TQV[VeeX]X\cXQ[WTR_]^]T^Z^X`WVYT[XX]T\ZRXS`ZWbaYU_]Y_ebaYac[X^VQZQ\^Z_`V^WUQ_\b\`YYXUXQS[\XZZZXVV\a]ZUTf^SWTa`Z\cWZTX^QYVW[\a]\]Y[UT^ZM]bZXY_Yc]bVZ`\[ZZXZYWX]X`TS\Z[ZVda^Y[\^bP\WUWWXVP_UVU[]b^Q\RW\XRVYZX[T]_a\X]ZVUR\XX]S_XZXdXZZ]\ZWV\`]\SVYV[[]ZV_UTLaZU\XYYUX^beYU\YYaY^ZXW\ZbYZYe[Z^ZX[UYUZY`\V[YVRRYYX^WbZTWU\`W]cUOYWZ_ZUVWWVVZVWYTYWSXW[bYWdW`_WUWWS`W^XZSZfSYb\[\[d__TYW_]WcVZ[X[YVY]R[]ZR]bdX_YX`XY^UT]^ZZVZVYX_W^T^T]UdcUYXWQ\V\TXW^hc`UYZSU`Ze]VUUbZV_Y_YQ^YPXZYVRZ`Y^[\^^VXbU^WR^]`WSVY]UVZYZ_Z\[^W[SQU`^\WVYTT`WZhZ\WQXTcW\U_Q^Y_[b^SUY_\UZYZUYTV\[T[U]\\^X]YXY`]cZYRbbSbVW^\`ZXXZ[Vc]ZT_VYd\XX[]]SPZ[[]cSUWU^ZY]_TTTS]V\VZZWZb^P^WWYXWUTUTZ[Y_Y^\`[UZZ_TSWTXfZW^U[`O_WPXXZY\\ZbZ]YYRYUYZZSZ\b\]YXUOZ[^]^c[XZQ__dbWR_c^bWRYVX[[YSbS``\_bX[Y[__U[^VZZW]^ZVT]a[UUXT\_]Z`b^T^VUP^YW[Qe]V\YaYX`Q`V\SVaWUTac^ULWZWVgZVYbb]X^WU\XQPVa`W^YWWSVQcVX\_ab\fWWZW_bcVP^X\WYSX\]TWU[[W]V\eWcO\TU[[^]XUZW`XVcVYW\dTZ_]bUXT\bW[f`XcX]U^b^][YXX_]WSSTTYaXShZSU`\ZfaVcZQ[VRYUPc]RVaQ]`cX^`_S_V^[YT]\\^_aUY[TTLQWg[dUYYXZZTY_SX`[a[UdXa^[^ccUWY`Q]T]bZ[\dcUQWW_T[ZTZ^[QVZ^YPW^iSOX[[Y[WYT^OW\^[`UWYXXSW[]X\WX^WXYUTVTVZXT^\YNa^VQZY[S_UUXU_ZQ[VYXZYZ\`TVV\Z^YTT[TWXP][Z_Z\`[Z]_]\W]]]XY]\[YTYeZ][SS\[WeYTWQYZ\ZT_^ZUXV`aSY_V^_N]XV^^_SUZcXSSYTXU\Zc\XXUUYY[_W`[TY^SdXVT^YSYVTfXT]TYU]Sd]TUVZXWYYTW]WP\cTW[YOXV\TaN\_[a[U\^Z`XXZZV\Y\XVZZZ[W]TOZ_gTSX[UZ[WT`VV\]WXVYeV^][[]\VebUcQYV]TYYRSVc]Za\OV\U`Y\V]RV[[[[XT\`]TU__W_ZX\QTU^SkZYZ^[VS^bWX`X\eUUXZ_WRXUQX_X[Y\f\[ORZcW_Rb\g\U_W_V^PT]^]MT^bVY[_TcWYYT\RW\\_VXYXU[[T[\WYV[`Ve^Ye]PWUZUZYZ[_YVaXXX[UXYbV`ZV\WUS][cT\]ZWeV]]Z\^[Z\]]W_\[XWWVYXX]\ZT\\cS_]STa\^TW\VZXZ][[[Z_W\S[][YXgXaUT]Z]`\V^^ZTXUVV]VXTYZ]b]XYYXR^_VZcY[Y^a[Y_UVTS_]`UUUQ[Y]_UXYW[VWYRaVXYd`[^Y[aY\ZZh[`W[Y[ZcX[bVVX]XZc^R_YTXUd\Y\\]\YV[WVYYXZWXWW]TfaZ\YZS\P[[[aPXUYZWYUQ[UYY[S^\S[]ZYhXa]\Z`SWUZ_][_[ZZZ[]T]cU^ThWZ[X^\dZ\cTTVb_UWYUb\VXZZYdQU_]c[[XXWVYb[VNY]VdYUZQQ\]\SVZY]YTVQUWZSiX]TYT\TOXN^b\XXTZUYb^`RVXTYYWWZUZ^XZV_SU[S^OVR\[VX[]dU[VNT_XRX^[W[YZ[WSUW_`bYhRX__^]aSWUUZUTVUUQWUXZYRaXWRV^ZX_T^[Y^\[d\_^e]XT]\U[T[\VYYY]]YW[[URW]VZWPXT]UV]^]W\U_OSXZ`adSa[[YYXVbU]]Xc_ZZV[UY^T]WTbUNUUTX^\TTZ\Uf[^TT_UX\WTe_[[UZYRSVg__aY__dc]YNVZbXSW\Z\__SLW]T^\eTb`VQO]R]SXQScb[\\[VR^ZVYb[WTNTXNS^VWWSYYUiXaaT]WTV_^R]SUPZ^OZ^SSS_[dY^]Y\OVXL_OSZZU[W^a\bVSZZ\Uc^YUWTKYY_]X`ZXcbZXW^ZZ_ZZ[TX^U`V[UUU^UYX_\XSZ^[]Q\VV\Qb^V^dRTS\]_Za^YZY\VSY]YScWTVVa`\ZX__W[Xa]S[W^`YSXTS_TUX`Z[T`\Z^S^`WbYXV^\]`WW_aYVYb_VXS]]W\V[]_SXWZ\Z\X\\XT[ZZU\bYZWY[XS\S^YW\TbYZVW^b[f[\Qf\X\UZVPcYTWa`cTXZaVW^X_W]XU[^_`eWXT[f\PXWSfcTZSZW\`X]VZWVTXXT]`X^[_VYT]aRVYTbb`TSWWYZXXX[\eYV\X`_XWR^T[VXUYRZZaZ\UUT[\b_XT`V[V\dU[YWQXZWW\`Kc[`PZXaSP[^]UTWYR[Y]]TUU[dU_^[bZeY\WYSUe]RZ\XVWbX[XVUZWWY`Y_V`]U\`\c]^_XV[ZZXXYm^VWWX]]]SWbd]\XcX[cY[ZT\WYT\^\S]U]V\XWZRS^RVWX\`XZ\]Y^\Ye\UY\NW\WV`]_X^WZZ`Q^^UXXV^X`_^]ZTTYbe_c_WUZSZ[]W^Y\XOYWWaZVX`\X_XU]`]_XS_W^Z[U_Y^X^]]OZbeaTXYUUc\YWYe[PQ[[VQ`cPYS[Y`XS_[VPXVPbU[X`W_W[VUTYdV[XZWQ]cVWY\Y`U\VVaWXbTXOXW\XT[YWYoPYUY[VZPTVY\XjTU^cV[WRVWWYYXO]W\SYW_Z\]\SUTZ]]VWWXT[]bk[SVZWZ_[_Uf_^QZV]X]UYOR`UYa[\]VTYYa\S[V^aZ]X]NdaK\V\XVSVOZZ`V_SR\[__RMUZRZY[US`XSSXSXRN[[SVSWMYc`\a`P[_TYZ[R`[N[WTSQaYUW_S[RMVcXXVZRUV]de]RYYR\\ZSW]TOYZTXUVW[^ee[_ZObVRO\YW]VUW[X\XQ_R_XZbaY]_[\_\`eeUYZZLR_Z\VS^_R[\SOZYN\W[V]WY[TZWZ\TVc^YR[V^YVX`adT_XU[Y_YYXZXWa[\ZX\T]TVVd`]UZYZUXZSVa_RbTRUcQRcYTTY^V]PS`[_WS]bXZXY^MQ[Z^YZWUSZZZbV[Q`e\\^^W^VTVNZd\^\V_U\ZWR_TYWTVVWU[]Z]UVYWXSURQVVSdTbdVWROWP_UZUWYYV[WPaZZT[Za[Y[[[]WU[`^RYUaZeVX_UbWX[XXZ][\U`VWX`\VU]U\\W][^YVYXWX_[YbV\[`ZcYcT__ZWUaYZTM_XV]\U]YZS\YSY]]`^cYY^SZcO[VcWMSZ\V_]][Xf`fZP_YUaU\_URZWV^\S[ZeaV[Wa[`gPS\[T]_[_XS^`VV]R^TY^V\ZY[ScWYU[]ZUSRaV_Z]aU^TX^NaUU\^[\T^ZZTVUX][[]VUT[[MSU^^c\XX[X[\[\V][UW`VW\UaYZUXZXT]ST]V^U\_Vh\dW]QY[O\eXWWPUYX]YTWTY[^T^\jYWX[UaUYXUY\SZ]Y[Z__UVbaVYTUUS]aWXeWX\[dZU^bZ]Y]\VYYbZUc\Z^[V]]\VTU\[a[]Y^`]\]Z[]SW\Zb]ZaVYYT^\ZO_S_^bT\S_Y_UU][S\^dUYXYZ[WTQXPl[Z[\W_]Rp]TXaUVOZY_\N\RX[WWXZYQ\SXU__V_aSbZORX^YY`YQ_VXXaVU]YWVX\YZadWY]`[Se\`XW_cXT\dRX`b]\\WU[_]PU[SVW^Y`[g_TSb]^SadV]RdX\YYdYTZSVUTXYXV[[WXUYO^\XUhW]Y`aSRYNYWMZZZSV_UY_W`RTZOVYV_Y^e\W^VdRYZWQVUQYacR[]PYdd`^]R]Y]`^cVbZ_cT^WVTZb[Y_]YRRUc_[fYO][T[\WRPdXS_h_[W]_]^]RZ_LVK^^X^]WcTdWXNVXVZXYU^WYXgURZ^QY]]YTVPbXORY^WY_VX\W^SUV^OWdZUO^cN]bYVXR\v[fkW[UW_[eV^fZ_Y]OYZZUUZPU`XVYTYXPZ]\TbSWV`V[Y_Z_S^\_X\YdUTUX^_SV`Y^PX[Y_T`T\RbWYV[Z[Y^XVSZ[\X]]VY`bW]SWR[XR[R\T]XRY^aOY]ca`^S[[ZZ[PX\U_XYSW\RZ[\PU[^]bQTX]SSYO_dMUX]kcYUZ\XWTSVe_Q]XTXeNdYX]ZVYZ_QX\Sd[TW]QON_Z]T^USV\_aUYTXYZW[]]`VZ`ZfZ^`cVWXVVV[aXXVTUS[RcP]W\QX_YXY]OYRVb]_UW^XV[X_XYRZ\XOVXPUUUSXOXbdVOR\Y`XXaTR`_^\Z[c[]XIXW[[Y`XOPU[XT]WYTQWY\c[UXXS[aa_WW\WXWS\Y^VSWVUTYVXVPTUa[TYZ^UN`XZTY]VX`_VbXY\Y^aUdV\_VX]Z[_Y`STVV]\SXXX_Xbc\V]bU_XYV^YUQWZb\ZZ\V\VUa[ZSTchWRaUjT_RRUUZUUR\VaZR^SaZ[_RUW_[dY[Y_Y[WY_YZYcRQ]UYT\e\\T[W^\^U^XVVTWUY\SZYQUT[Yc_`]\WbW_O\]_]XX]SY[TTOgXX\UV\Z\]RUVYbVVZX[\^\`^YY[UU]d_VY\__`Q]YURVWUdZObSVZbW\ZWYUaVQ\^]XY^fYeaXV\\`V`^RW^``\]XPXUT]S[`NY[XV^P^TQjUUc[WXVRY_V_SVZ[XaaiVR]XW\WYdXRUS]`WdVY_SX[ZZaT_Yc_TXI]\]]^^UX]`V_cS`^^YV`ZWYVYX`YRW`XUWRGR^[V[Z^TZSXVbYgTWVdZaXZj[^U[XWX[ZPWXV\_VVgTfa]^TTTSaZTV]US_[ZVYYRWWXYh_UR^SYZU^UX\VX\V]^RU\XWSYb^X[S_W__VZ[Za\XZ^ZcW[^VZ[\[g\W]R[WUXTTOXZd\JUUUTV\g]_V^Z][Z_Z\[aR[ZZYY\aTXTQ]_e`M`ZZVZaSZ[aWS[ZY\_[UZ\RY_PYXZXU\bSaX\X_]X\[TV^XWQ`[ZWV^bWW]\W[YeX^a\[X^``XU]XXUX[WfY[]Q]Q^aSYZVTfW`YRUWTOU[[U_\[XdWW[^]`W[UaYX]USVQ[]T\V\SZS`ZQW_U\a[_XVYd]]^UTVM`UVVYV`UWS`XYX`_S[TYZPR^SWU[ZRS\W[^ST\WYXVT\YTZU\faWXWYYQ^X[lW^WaZZ]aZ\[XTV]X[_XXQadT\Z_^W\Z]je]Z\XZ\a_Y[WYXWhUUX\`W^\\\VZXV\TY_c\T]ZU\WOVSXR]VUYYOX[Z^_W[W\YbY[[VY]U]T\TYXVXWXVXb[]Y`dZX^WTUdUTa\ZXZ`Z[a[^M_XX]]UYZb_\ZWZ\WXX\Xa_^U_WUVTcZVYYSR\RZQYW`UWa\eZa^][NYZ`XYYZ^VZZ[Y[eX]\W[_WS\]bY_\UYUWVVX]S\]YWUZ[\U[YSaZZYQ[`XX]ZVUY[aRVY[\Z\SX]Z_TUTa[T\`Y[SX[WUYRZ\T\XVYXSZZ_XVVb]VX__XTVXTb`Z]T\YSUYSV\UW^Z\P]ZVTVZVTdWY[`Y^[ZYedQV]ZY\]ZVY\aYT`\]]UYW]WVUZ]TUZg^X]X[Q^]Z^Z\Ye][[RSYW\ZWX_[V[]VQZ\`_VZ_ZX\XbWYVVV\SUd[ZYXUY\VV[YaVTY\XYWRU]YUOdZXQP^\`ZPXZfWY[d]eYVUbYXY[RZQ^PWYX_^Tb\RY_Ub[W[[WZ\[Z_VY^ZSYYaZaXX[UTaXQ[V[e^VUZZO[YZ[^_L]\SXQ]UbZ\TW][W[PW]W]\ZZ[TU_^U[_W[VZ[Z_[]`^X]_R]WP]TTbSUUdWU\VXc^S]UTUT`U]X\UXY]XXYWVfVXPUXZU`WQZTV\UUYRVUTfUb^UZRZSYV_TTYZW]R[`U[QhSY[]S^WW\YXW\Y]^ZaQZXY]XU[[caW^J_\YYVWX_WSTWZ]V^VSYYYRa^_PaX\U[_YZ_TV^X^RXQ]YXV]RV\^XY_ZV`QUU_YZVRW[WYU^SXKaX[b]\VX_S^WSa`^_R^V^WYa\[V[UXS\\^YT[UUZZ`WWWRW^bTXVTVZ]TWV]\UX[PTXV[[ZYcU[SZ`V[V^U^SZ`\ZWVXN\_[USYc]M`YO[Qa]WOTPY]Y[W^U[O\aW`bX[[UQVY^_WV[\Ta^XZ]\ZYd\W`[ZXYXS`XUY_V[XXVYU\^W`RX__\YZ^g]b[WX]XZa`]f_[Z_VULYWWZ_^Z]Z^^Ya\VWUXRgVXWW`[YYWWRYZ[Z\]V]g[V_WNa\i`^\[VLT]_RY[WXUTYV^ZYYYYbcY\[`OY`V]R]WTWcU_[VV_\[VY[`YZRYR[bSV_QaVZV[YYV^]UWYZZXWZZTZN\RSX[UJUSYQ[hYWYSX^\Q[cZXWWcQ[[]ZX]XYP\]RZOWYW`YS\\\[e[VcS\]Xb_XWXZSVTU][_\PYRZ[X``^VaX\]\YX\Z]Zd`R_]WXZQ^eT^\Vc]VZYXTZ[dXZ^X\`eQZ[_\WWfXR\QRTVVZZZZU[^S_d\UZ\YRZ\W[`aQ_VWW\[WWYZXaXTZV^VY]`V\ZXY[_[\X^XYcRYW_S[XcTUfRR[\Z[W]VfZXUVWXTc_W\UQWcVTTR^VXYW[Z[XTZ[WYZVVT[]W[]XSUWVW[T[Z^WVWS^U\XW`]]RW\[VU^[[b[QUPXb\YU\VQZZT\YZVVaYWYUT[\\XS^V_\XUR]^`[QV\S]c[VSVXWTSdT\Sb[SXR\V[_ZYcQ^\[\^___TXW^^TQVRZZW_b]bXYZ]XY[T`VcUZbW_UX[\WY``T[`R]`VXZYXX^[]Za[]VYY]WaY\VX[XXZ\]\ZRT[VXdU^[aWa[a\[UX[c]Z]W^af\\aXUYU`V\^]ZW\ZW]Z_kV_^_^^[\DZXUZ[^af`[YZWUWZXaTR]]WTV\UZ__[Y\ZW]_XW\_W[W`\WUZ\c]^[U^[_^X\`VXa]_X^Sd^bX_^ZX]X[Z]`^SZV]m^\XZ[YZ^VRTU^^]g\[YRTX^ZUbWSZp[]YZ^YY\`]W[TZXZ]]X\YVY][bX]c]][Z_]`X_ZXWZ_cYYPWZYW_[[^^]Wg][[^\X[aa]YTX_\Y_W_KYW[c][]_VMZWW\X_^][X``]XZ^ZXYZb]\SY\\ZVXY__S\_XYYYW[^[\YZ^_]XW]^ZY[V[cU]_aYYYXa^]Z[Y`^]T[bXZ\_V\ZU\_^\Y`WRW^S`TZV\W^PRZYYa_SSaYWdYVYWO_\ZaTRcZS_aeQY_YYXUd\ZZXWSVYRY`SZUZUZfYUTOYab_aa\XZ`]XXbXV][^VYdXa^WWWW]X_T]aWXXZS[Vl_UYX^]Y[]\_UXO\VeZ]eSSYYUUYaZVUSTU]X`WUY]cYaPeYWT_\^ZZ_ZZgYP[UX_XZTaYUWWZccU\S]YV]Ria]YWXYU[eOWeSQYWaZ\SVR\URW\[Wb^\ST^Y_UYUXX`XXb_YdXQ\ZbXUSXVV`\\T[][\^d_V[LXWVVY`[UVZYU_[a]UUU[Z_R_W]XWXVO]a]Ukf`XSVXXY`STaXZUWU]dYU\_X\f[R[^TR_RZ^\[\UXS[YR\WVQSY^WN]Y`^RZ[XaRaYTVUYZYXUP[TV^N`^OT[ZXRUUYS^NWY^NRXRl_Rc[][TWUXUYSYXLa[ZZbZ5VXTZUWWPXUXWSU\QXWWLPXWXVTS\WXZV\VUUU\RXZZU]RTSL^XRWZZ[]]PQXTPcV_VTWbY[iYV]]WU\VTZX]MYWZaXTWRNWTSQrWVYWSR[VTQaY]S[WQUZEkTPSLV]T\ZO^]XaVRYNXaYU^[JV\YAOaQWX^[VXXP\RV\^SQTSXb]YRTTUQSYS][R^VXX[V\P[SXY^cW[OS[XRYVRXYXNZXOUNSSVOWW[`ZW\TPWUV[JU_@QZVQZVUXYZ^V[_SZ[W_RYXTOYQX]QXWXRVSSTYVVY[RU\YW_WVYTVWY]]]TM[XXSUU[[WSPY\\VX]V^`WWbVYWRMQWZbWaQ^YUZW\ZS\WVZV]P`Y[W`O[WU_KUX[RY\TVWVVX_U[\TUUSQ^J[_VWVZLSZWabZS\UXVWY_[cdT^WR\W][VT^TVXQ\TZM`YQabPb_X[]OY[[YgX_Z]R[cZYUT>YYUZ`_WVWWZfaYZU\]VXWVW]_PUM^]UZa`\XZYU\^IX\S[qNTe[WY\YSNXZ\We_bXWVTPWV^RVaZh\dSRZJ]XT^\aMLVLY\[Z_PTaSX`ZXUaO[\`aS]YW\`ZZUaQZS[UX\UX_VTaXTWTRa\[a^XWcZ]TT[[rR\TWTPSaZ]b[VUTV]L\YXVW[`KXV\OYVV\TT\P[US\TVYY[_X\YUV]b[OcRV^dW_`YVeW][_[UWVVVYW]OW\^PbSWV\Y_b]X[\b__gZ[aPQZX`T`X`i\]S_]iX\V]XZaSUiR[T`WTeaUUWW^YW[X]YSY\]XXdS^ZZTVWXfaeNZTY[Y]_VY\a_[_]Z\\ZT\Og_bWVT[`U[^USdWXUW\USU_bQYTS[^WRUV[\[_Y^OVTZiVbZRYW[]V[hWW_][XVVVWd\`Y^XOVYUV\QY^_S\fX`XVQW]ZZ[PSa\\UU\_SVQXXT[bYZXQU]ZbUYXQRX_[Ve^`WdfW\a^^WW[[V^UhV`Zh^Xb\]ZWTTV^_[S[W[b]`T[[j\eQaZV_[\X_cXY\U\[mX[]WX]YPUW_YRW\W]VbPecVYYSZW_TU[XOcX[VYf_kZUWWRX^W_T[^aU^^\XTQbSQa]O\Z]ZZ`XY\TWT]YYVX^UaV\[]SSUW_YPYb`bSV^WTUWP_Y`_VW[]^SSZ[^T[]OVXYXYUXSVRYXY`R^Z[Z_UUW\^[W_SgZ^UVTTT^XXV]U\UVWV_YUa[TR^[^XVTWX\Ua]VS]V\SPXe[Y`RRVTR\X\_^W^R[T_^_UbX]WbJ]bYTeX\]ZS]W[RRSbYV`\ZSW\\TPYRYUV[SX^WWVY\UYa_jW^TZR__]XMa^\QV]hfYPVU`Y^X\YT^[ZWZXZRWY]SWWYa[Sc\eZ]^\Z``SRZZ]XW`a[^^YV^ZWUa[cUTXY\XXSZ\[dVQ]^[VcS^VVUYT]WS]_T\V\R\WVXV\TP_WXYVWXV[[]WT[WWUfceZYX_\XXUfQUPVRYVW_TUUX^U^\WZQSYcYY`S_UXM]]O[YX_^b]gRY][STZU\WU^\XldbVcYV^Y^PZQdcnXVZVT[ZY^O^WZdSWVd\VYU]WXYUWW\W__YSWRdOZfWX]^U[X\^Y^YSP`UVgRR`L`WLSdZVYXPb`U\QP\R\ZWUcaUUiQW[[^^fkV]V]`]WUS]jZU_qQ]Z[ZXDhXXS\QR]VZ[OZ[_P_f_XYQcXVeT_^YYP[PY_NX^kgV\WRWi[\U_X]bSZXd]SO\eVUY\XWPTcR[TZ^XVf]XaVV[^YjS`j[Z``TbZPh\PeSXWXYR\b`U\XRWUXb\P`VTUcad^SZOeaX]VgV^eb^]W[ZgZRCXpSrZQTfSVeb`]QRXSX[VYQYUX]lKXeV\bYYZ]d\YQ[TRU`f[f\bQ^UXXV_SY[jXeTeY\SaQX]VbeMac\ZTZW\ZT_^SWSVR`YZYXZ[UUWaVV[aZU\`YSVUU[Vc`dT_X[ZeYYZY]\_WS`dX[V[\[`hVPXR[ZU[`_^]ZTYjRVX^_[XUYVaW`[N]VUWX]`aU^gYU[_T^]ST\cfWPaXY\WT`W\[U[U]ZUXZY\_dYYV^cdZe]WXPXZ[_YYRWWWXZfZ[[Z]ZX_[]]VXW[gV\a[cPSbW`[UU[VhWS[^XWTZYU_TSUbW\TQ^\KQ_USY_`Yb[_QUkSXga_[TaTWVo`U^`Y`ZSYSTYYXZZ_bX]ZVTTWWYb`VcUYc[OWT`YUZ[`VWV`^\X^S\^]Z[\dP^bdPYg`PSVaUX[[PXZY_ZWWcV]YX_j^c]X[_U\YYWd_][S[_\VTXZ^^\R]bbN]ZZTTUWVXVdN^VVUW`X`[]UfWXV^WZY]\^`WeeR[SYTV[Q^TY]UZ^SgWTWY]WXN`X[^WY[^ZX]YWPVWX`\VV_[`[Y_YU]`^^WQU`Y\]Ue]Q_PLZSWVdM^MVS_TR^aSX\UXRY[Y_\\_UdVXTU[Za`]VVUW[RbNY[XWXUXcWWQWR^ZUSZ\^]T^aWYVVcdS_ZXNS]W[YYZRZTWQV]YWWZYU[_W[UTWW[WRT\[Y_c_eYZZVT[WTPZ\S\]VV]OTXVXV\^aP]X[\UPYX_XVXR^ZR^SZ^WXWfST_VTe]c^US`NRR[R_Y^VWZX\V\aS\ZWRY]XW\YTXWeT^O]`]SYTYRXQWXZ_SVXYYTT]^Z]_WYX^X]XY_ZXQ^UYW[HU_]ZWYZW`WX_QaS^VW[cYZW[[[ZS^PXZXZXRbX^ZcbYSYVXQ_YWX`\SXST[fP[SW]Y\TX[\\ZVVVZWWQSYVmX[YS[T_^_U^T[W]`gXQV[UX`V```Z[^\V\hTXXVTWX^bUWY]]YSUT[R[WaWa\]SUaY`[Y]VWZWV[_[cXTSUUb]dYZXWaZ\VV^][]YZWZcSZaXX_UUZcSWMd]ZR\_XZW]Z`_Y]SYTQW^W\\Vc[\TXZQYXW`U\UY\R`YPS]\gP[`VV[\YX[aQaYV]ZT[Yac_X]\VZY_]TTXd]SWWRWScXUWYdYY]`R]R]XU\bTecXPY\WQa\VaW[W_TWUYiZaSQXWYQX]\UXN^YXVYY`\]U^YOV]ZUWY\WW\]WQ\^^[Z_YZW\[ZWXT][TWd\W`YV]]ZURdZb\Y_VYn^Z_^gYZ\\X_XV[VaW\bR\e\]\T]ZX`[YZV\YRPXUWZVYThWXYaShbUUbXYaX__VTWT_Z__cYfQVT\VWaSVZL[]W\_R\Q]Z^a`\TXT\XS[PX\`VZT[UZVSkXaaf\W^\UW\X[`f``\UUb]dYWQZ]TP^[UUUZi]P\`]YQ`[]TSW]][UeWRWXWaRYZZTYZcUV`ZS[]\[^YQ^a`[V\PY[cWXYX`ZSPURXOW`^^TMXV]ZWX[Vb]\VZVdZXW^cWYXWg[Y[XUdXc]Vd`^ZYg^\ZQZ]Y\ZOY]h[VaR[Z_a__[`]^WV\cTLd[^X[Y]^YVWW[UVXgZ\_Y_UZV\Y[XYTVZSV[UW[Z[]VRZa[[j\UZda^XVWRaUZVYPeR[SVWYZVWcUX\YOWTSWSU[XS^XVW[][VaXSPX_VWYRQSY\SWTh_T]_W^bWdb[[SSR\X\YUU[S_^W[TZcde^aYSS]bPZZSO[]XlW[cSUUVXXRZZ[Z^VV`WRV_WeZY[aW^Y_Y\VVZdWYVTVNc_ZW]ZZ[RZYXYY^SYWXVTUUYZ[WbYUVbU`^\UU]TV\]V_Z[\]TVZ_[V[X\U_OZUeXcTXXVX^VV^ZXXW[Z`^cVUV]Za`VY`Z\[d\\[R]ZX]YUUPUX`bVVZH^TT[ZWZ[TZ\_VZVa]YW^SUV[\]W\SUYRXSUY_VZ^_XXT]\Y[\c^ZUZ]`PQWTZa^S[X]UTaW[a^VWWTX\W__dUW\TX^SWST^\YP`\UQR^X[T\[WS[U]TdYTXd\]VVY`^Y^[dIVaeXWY_Z^VVWW]U\UXRcY_Y^S\[WYWY^[RN^ZZSVa]XTXYWa\[[[Y[UWWV^[WQWWW[RUSYWUTV^Z[Y`[TY\UUfYWYY^aV[QV]WYeZZZV\Y\W[WX[YZYZX_[RYYcS_a^]`[`[V\U\bX^Z_YZ]c^\[ZYWW]hXXU_TbY[]Vh]__][e_[VUUYZXVWVY]\_ZaXYUYYY_Y[VbWST^^S[\^cUZ\g]\PP[X]XRV[T`VTRd\`a`RYW\ZYY]cT\]WZ`ZVYXr\W]ZWW\OaXaZZ^V[YXS[aS]\SXU_X]\T\WY^\g_ZUWXYZTWdWZSU[[Y[cW]QX^YZUX[aY[TXRTUZZ[ZX][UXY^VYUZf]XYbZ[WZT]]\aY_`UWX_RdYZVaXYXWXS[YT\aYY\[U\n]\V\Z[RW^\[ZVZTXTaZZS`ZV^jaZZWc[XYhYbV\]\Y]aXXbZZ[\c\^]UYSUW]^XYZ][S\`XUT[Z[X`YUX`ZWgS[[]VX[YU[ZRUY`PZQUWa_bWX\^bWVVbX[XXVVZV\_[Z_[b\TX]\WUXU`RaX[[U^XX_ZUSOSX_^[XY_][XZW`UbXZY[YY[]UZ^ZTZ_WRWXTT^bUTUXT[aYb\bSZ[T]P\VUWU[TT][[RU[d\]RYZZ_Y\X`bW]]XYZbT\[Z]TY^ZU^Z\YYWT^Z_U[[U\YUU[\YZ\a[S^`YSTT\UW^\VRWT\YU`YZS`U^XW]S]^YYebU[VVXcV[V]W[_[aZSZ]WZU`bbZ[\WXO`T^Q[PTWX^_WR[cVY^^Y_[SYdZW[SQRTUYUXaUT_aYg[X^a[SY[\RZQ`X]dbO]kVXZaWZR\\TZX_SaXQUlWPY\dcW^TWb[[YV]`WXVZN_VYW\^`[V`XYWYZYQVX]\Z\Z\eZ^T`W\TTZRW\TU]ORKbOUd__ZOY^ZXXabTWXVdc]`W\NZPWd[_V_T_XWZaTXdWPa\UR[K[YX`lQV\YYc\]U[VWc[ZpdYaZWX_^gYXVWXZRX[\^UWVRYfWWZTZWUZdZSSVUV[i^`XZ^Vj\^[R^c`Q\`NW^I[_]U_fQVT]S_jQWWSa^Wa]\^^Vh[YhaTbXXdW_XTS^]`WX^R[ZX\mX_[UcZZ\VY]\TcaY`VaWWTYVXadcRZK^[\_\a\RTf_Z]W__YY]WRSQTW]a[TZdX_ZTYdRX[`]WYX]QQTSVZOV\WZY[UQX`ZYU^[VP[cO]Z`_]aa\R[^]Y]W\]\UW[WX^TQXWY`VXZZd[YZWV^Z^Z\^V^VYY[RbTU\UZVWb[_VYV_Y^YTZSXY\`UU\\TbSbaW_`RYXeXgS]dWWZWbTi\cba]SXX\Y^QUYXV]TbbS[ZUc[b[]\XW[\^]\QUaZWQ\]YV\XXRUY^WW]ZV]UXXYRYdV`ZTZchd][RPpZU`]Y\STY^YURZ[XTWRWaY]Ud_`TaWbYZXT[`]UVTWU_Z_XZV]^SX]NXYVW]W\RW[\_T[Z[dW^_RU^V\WaWZYXR\ZR[[WVUQ[`[TVR^VWc[hQbX^W^XZQ]UY`K]WZ]\Y\\`ZW^PYg[XZ\^Z_TZc]YY^Xb]`XWaWZYW][]UU`WaZcUePWV[\VW[__^\]SSbRi[QX[[RYZXaPcYRYX]][\]`]YTaYXYVXZ\ZY[^TSZUZZ[Z`VZ`Z\[cVTY]\VT`gYOW\[XWX^e\V`V^[^X\[SZaYZ\VbR]]TZ_SZYZWWTW\^`YSaSU\UT[_[\XTTY]\RW_ZVZ]VYaTWXWZY\X]VW^PWWQY^`^cYYYbcWXZ[]aX^aP[Z[V\ZTaV\ZZS]YO]^e[^^RZRbRT^T^Xe\``\^ZWZWaV[]XYc]\[]\\US]]ZYT_RW`Y`VZZYZ[[YY^S_UVX[Z_`_\X]bZZY^TSX\]`[Zc\U^W\ZZcZUeZUZa\]W\__WXYYb[X^X]a^^_Z`[U]YY\]ZVbdY]Z[ZVPW[^ZX\WeXWaWUVi`]U]^WaXWU]XS\_VWX[T[PVY\Tg[S\ZZYUZV_X[WXV[aZ\WYZV^WYX_^[WTYb\^^_W`]WU[Y\Y[WT_[\YYUV^[WU\^\V``^^bT_\`YWXT\]YaUV_WZR]bX_[YVXa]VS`[XZ`_\[^YXRW\_Y\`[V_T[Wak`ScVaX[OYQa[XZWaVWV`^^PWPWX`XZ^Y]]caWV]]TSWYV[U_Z`U\a[Z\\WPUX_V[W[^R]][_Z_TWXUk_`b[Ze_\^]]_Z^ZYZ`WUU[W^]WSUXUZb[`WUX[n[\ZXXY\[\^[^SQZY\\X\QVYV\T[]YZWX]ZgRWSSa[ZT]RSY^Y]U]`[RWSQXL[hU\SX[X[\`YZSYXSW[VT_RWV[ZY\][Xa[]VTXXSU[QRTWc\YW\WXZc`_bWS`_[bZeaYaZXRU]UTU\YWUX^X][ZYZ^Xf\XaXXY\Y_ZY][aZV]T[`X]YXZTWeUbY]UYZ[_X_TNTT[OYU\]`Y[T[WSc[UbUWaYX^X`\\b\WUV[WUX\WTQST]VU[QV[[VW[[V[W^UXVVTW^ZSZZ`\Qc^YZUVN`_cQUTdX]TVZW\XU[dYYZRYXTZ\VXVQ`^SWY^[WZW\b[`ZX\U`UYXR_]\WYYYU^W]_SZWYa^bT__S]]XYbW^WX\Y[P[VTZVVXW[_WXZa_W\\X\V\ZVdTZ`_[f\^ZW[Ve]]S__STV[ZRZXOWSbU\bXV\T^`ZU][WZYS`V_[QRaWTcYV^TXV^]U^]SZR]^X]Yi`X[S\`[fYV_`V[[TYXZ[ZZXXX`UXZZU[\P[X\ZVWN[WaVVY_Y_XWS\[[VWUbRRU\T^ZW[[W]^[`Y^WaYUX_aX_UVYWQ\WW]c_cTTZ\ZUU`ZPZ[bYZNb[V\XUX[Rb]\W]TcU_T^\]^a]TTYYUR\Y]\[UZZU^\``V]\[VT[\_V[XV^W[c^\U[TZ_Z_TRU\[WbS^ZadUZS]\]WZWWVYQWZOX\RX]`KXXXV[YfdT]ZT_][SOaW\Vbb__ZV\O\`eUXVV^XZgZZ`S\UR[UTZTa^X\XZ`VSZZ\WTUY[RV^VcX[YXY]QYX\VQYXNUWY`ZT]Wcf]Y]_W\Q]T^V]]XYU[\ZbUQ^_VWb]TYQ\dNVS_Z^Z_PWZZaWZ[W\^`ZXXZ[Z[USQ_^[\^]UU_YL\TZjf[\]W_aZ]R]ZUYOR_UZYSZV[\YXUZ^[XXaU]`\^_VZV[abZTY_X_XVZXUaV]W[f[`Xae[W][UYXY][bW`]W^\^[bV^]^[]\_ZeVWY][ch]^`U\U`^\_ZTWVVUdY`Y^_WWSYU^WVWOXWYRUi[e_Z_ZWdZXXYUV]\_Wb]bYb_`XX`^\Z`Y[`T]X_W[YOT]QWZcW[VT\gXc\X_hUYWW^SNXPZdWXXXYS[[WhY]^YSW\Z]`Z^_R^Ya_bV]^Y[W\QdakYZNVaYW^UV\Q`Y[MS^`VQST\_VW_c[gXXTYZYcS]Y\Z`e`TX`XU\WUPYUb`[V\cTV^TUVYY]]Wh[^`^V^a_[U^_XOQS[X_]`[aX]T[_TU^YL\VTYYRYWYfZ^YYU\bQTTY^ZZXU\Oe`^Q[X[\[Qe][]Y`[]YT^Q[b]\_QX[]]XU\P[UUZQaZP]YVU[Y]V\Oa][XY]ZaY]^YaWOUZ]Yc[b\`V[ZVWZZTY_[\VaYT^bT^P`WWWQd^WVSZVW]XS]VXW]UTVNUP]]^cVYSMVUY^_Y[T[VVPSWaYVOWV`WXW\[\UYT]ZWa]YXS]ZPfXV^UVQ\X^W]WYP_VUW^WiXXW`[OSXZUWQ[LVXY]WPXWW[She^`f[bYTaW[Z[Zc\][T_ZWXW\UXYWUWYWWVZ[[dR]_RZad\YVZ\ZZ^UeTTW]S\]ZRRXU\]ZW]VW\]bYdZWTXRZ`XZVQb`MY][T[S\W_ZWSSW[RUUY`\UNSSXV[V_^WSV^ZVXaSY[PcY]e[Z[ZXaW_WU[]_UVWQZYQW^Z]VPN\]Z\][YW][VU[UYZUZ`fXSWQXZV[R[Z[V_XYX`^VT[_UScXaS[\`ZY^d^Sa\cTVW^ZZX\X^eY^Z]SZXX][[`__\YS\VZW\Z]^XX`cR`RX[QZc[[]XTad^XWS]bQVXZ]d[]^W[SZPWQQSVVUYTXP_W^V`WUX\_SVWUVZ[Y^[WZURQSZaZ_UY]ZW^ZY^_b^UT\_Q_ZYp\ZNW]X\dV[VY]VZW`^QX\YXXV[X_W\T\WXXZ[WYVbP^XYX[[R\[^\\OSWah[SZ_[\Y]ZdcUXWUVSVSU^ZUZ[W]Y^XXg^Z^Ya`cc\bVYV]e[WV^QXXRXXST_\UZR[ZYU`WTQ_WXTY[\NTX_]OdU[bXV\aXW_RVTb]WTTXWS^U[XYVVVW^Sc^a\`Z[UXS[]^V^TTb\YW^[ZP]_Xb]V[Y]\W^]]VUSOXSRNWX_\Y[]QVXZXZd\^`RfWX[WYU\aW^YR\[SYW]W[\\ZY\^XU]UdfP^V\`ORa\TaWW\^W[Z`^ZXbXY_SWVUQVPbe[Q^Q]WadRWSXX[WjYWSYeXU[\Z[T_g[XZUUUY`Z_TRWTV_]Za\P`\]]WW[X[[[_WW\]Y^UVVZUX^RZQZc[ZdWZ^\U]WTdVT[\^b]bUWeXUTaW\]ZW^ZW`YT_]WZMZ[YQ]_ZWOW\Y^]Qa[XT]RX]bYV^\WU[Xa[WVZ\[`UZV[[\_[[cUQSecSfVXSW[W\T\U_RZ[eUb[\W]V\`X[e`Y_^bRWRO^^]TVVcP\_gZ`]YWPXQ\Oa\ZXb`VXTZZP[M_aXZY^`XhfVcWXUUYZXTRSN[WUWcZ_]WQ^aYWQ[\e[]\TVZ^\[ZPVTW^PUQf^U_\]Z_a_]V]\_`_]ZWYU`\]TbZ[cVbWUa\dP]X\_X[YgWa[T_a_YZYVXW[dUX]UW]PYYZWQUTWZSYaT]\VVa[_c`ZZ_]XZcWWaUY_YPb\]`QSaXdP\VWaXXVW]o`][VWV^RWb^XXTVWVbTgWP_Z_[T]Y[Q\d_^XXU_UY\^U[SVVZZW`WZOZ[XSWW\^SZX\^`X`Z^Y^YZ[aZZUV\VWQVUWZ`]WWX\TOVYZYYYYW^^ZXZXXZ]bW]d`^U\TW\`Uc]W`WY_USS]W]]a_U_RZUX^T`YY`YVY\SZUWZY^[_U^]QZaX]g]`XXY\VXUUUg^Z][]VZ^[YY[bPQXTZ[\aY]ZX[]X^ZZXWYQVbWW]\^_][Ud\[UXcVROZPaRb]]TUT]V`^g^b\`WWYTYal`XUWVZWZ`Y_^VW\bUU[YW[UZ]W\VXUUV]ZUQVX[PZRX]`[UYUV^][TSX]d__dU][dUWZY_TXZ[fZdPU[WX[O[V\W\_ZcjWW\ZU_U^YSQXZZ]ZYN^UXYSSVV[_[TUQ\Z^T^]_UV\UNWUaPNV]\XTYcWYUeV[^]WY_Y]XYVZX_U\X\WZjZXTY\Z\\][U\OdW^UY\RSdRX[Z]aW[S[VVVUN]X\[XXXYQ\W\_QhZa`\fRWSTRZZdWd^TcR^XZa[W]^a^^SSX`X]X\G`WXcYVWZXZ[SaY[V]aSTYY^\X^]WXV]SWP\Z_Ze^WZ`VZWUeOdVQ[WWaW`]Z\[bQXW_WT`Xa]V]U\TdXZ`Xa_^[W`[^QQb_WYWX\R^V[b`g_``aUSWY^WX\ZV]SVeX^YUZc^ZXV\V[[Y_[XW[[YZ\^YUU][YWZZbbTWZVb\YT^Tc[UZ\Wbg[]\^Z\R_U[XQV_TbWSTdOUZZT[V[XXTQYU^Z[[^OZ``\Z\jWW\WX[Y[S\__j`\ZgcTYZY\^Y[XY[_ZZcRWY^Z^`^^]\WUUY^[U`bYTZXYUS_\QU]NV]ZZ]S]eP[[^[Z^ca\]c[\_^\\_YSZR[dYT\[RUYcZ\Y]\f[Z[[^^VY\WX[XaVU][[W[YXZ\ZYWcZVW]T][X]^[UU[a\S[WZQV^Y\VUYYWX[]hXPQQ]Ze_W\VUXZYZccX___`R[TaYhS`[S^SXaf]\W]UTW]WbbTRWaYYbXS[_X[VYaV\bYO[X^VTS_V`\Wc^UQZ\]YYXZY_[WWX_eZUWUY]Z[[R^W^\\[W]ZXWY]TX\^S[Y\UX\^XXXXX\QTbV[[\f\[\\UWZ\TQTZWRYT[Y\XaYRYXXX]\UZ`Y^VT\Z^Z`[W\bWYWa`aTXVcXY`_aV]XWZUS_R_R[gW_V^WXh[TZ]XV\TQbWU`^\VYfYUX`RW^[ZRWaXaYVTWaU][V]\[aSY^\XZZ\QVXb[]VWW[\XVZ_[XZ\X]\_X]V]_XRSVY]Zc[\[QT_WXYYRYTZ`[`YYWZRVUT[T[^WUWWdZ[W]WVVWX^WWY\aYZXabWV[`Y]X^XXbTQ]\XZZQ^UVWY]YX[TZ]ZW`WZT][ePTSWVWWWT]Z`WUV_ZjYUT]dVY[Xb\^YYUWZSkT[YWZXbWZ``]gTYUZ^ST]PVVjTRRQ^VYcZS^h\\ZWZQUVeP]NOXVSSYW`cZU\Y\Xb_VZ[UcV_ZWWUR\h]_cQ_^`_PbU^ZS^^[YUT\ZTWaZ\]WUaTY^dVX\RWX\W_bX]_U\^Q_W^W[`ZacaZ_YYRWZ`W]RW[[\V[WV]^XX^RYTRQSTm]XWTVZbVaTY[^PRWZSRjTUe][S[\X]XkVW[Tca]^XS`TadbZTTX[[[NUUZ\[WS^Sb\SVWV\TYXSRV_^Y[WYWVSZZ]T[[T]SWV`X]VW\]SZZX[RbaVSZV[X_S\VYacTZa`VbSWaVTNbVYiYVU[T]YXOZZZ`YS]V^U]]ZWa\_aY_SU\gcZ^ZaVS[SXO[[XVa__T\R_NU\Q`Yb\U]OU`Y`^^V]WRUObY[Ua`ZY_[`Qb`XUYVfUXUcQXSW^WZWb]UY_dZVURaYUP\YYQUbWZU_\^S[]`]SYVdQUZ^V_YXSRRZS_Z_WVXZP`YQ`[[W`WRXP^^ZSS_tUcV[Z]YQTWXVW\U\USW[^YUSXW_UWhX^WcTVUZWZ[c]YUUYX[[^QXa\b[UdgYXUZYR_\\_[WY]\Y\ZW_XUYb_V\YXVYXXU[h\X^b`RUcWaTZYX^_W]TYWaUR\Z[^VY]cRYP`V^VVW[aaVVVYaVXbZVYUbdXWP^`U\N`_UVdRXi\^VZ][YV[UY^[bXU^`kOXV^OQZ[YZ[]^VRZWYeVZX_Ya[TVUW^[[ZXY_\[ZV\XZ^RVeUbV[ZZX[R[cX`VX_[ZSY[[YW^X\R[a]T\SXV`STYR\ZS`WYaXTYk^X]\XbcTY]Z_QYU^OYaW\[_YRQWXR[^TQZQ]XW[ZPRRYPU[VdS`_^gY[]W\]TXY]YX_OWSTY\[caSY`UW\W\YX\W]RV^\\[USV_YZ^Q^^V[ad^U_QTabVLd[]VWUXaWU[Q^ZYVW_WQXa[_[XU]T\]WZZZXXe^aaXYUYXPZaPX[YZaWa[YVW\aW^ZT^VZTUaZWVV`]^dcYQYVa\ZZm]VZPVP_]VRZ_XYP]ZT^[^[SWVf]Z`Z^eZQPOU_dRdU[bWWZNZUg]\[VZXX_`Y_]WS\]XU^VWW\^\^XUeOSO[YTSVVUd\\^UVXVU[Z\UYZX[WT^VUXRVXPU_U^VXXU[V\_[]d]^YY__TZY[Yc\QZ_X[YWPZcVa]]XYXa`[WdZVVPZ[cSW[c]X]YXVYV_UR\M\X^Y\Z`\Oa]_YXZ[TdZ^ZTUZ`\[`VVL`Z\[WWRrVYUP]`U]`R_YSePUQTSK[WYP[YSZY]NUZY`TY[NWb`UZZYZVSTXTV^[VY[UYY_ScbRZ[[\XcdXVbfZSX[`Z^YW[\^W_YYZUeVWTYeT]bSXSYV\UZ^V`aTV`V[YV[]U]TY^WP_^aUb\ZPSSV_[S^`T[TWWQ[^^VVWWV]bXW]XaSNZYd`ZVUaZYTUXWeZ__^^VQVXeVb\X`_]XP]]V\\VZYY[_ZRUY]WTRa__SWYg[_W`LVXU\WXUaTX[U`V[VTIYPZPZ[bXY\_Z^\XZZ[\[V^[XZ\WR[We[Xa\fWYVaSXWTYVWbVVXUUWeZ[QXYRX]Q^\U[U^YVZ[SXiZUR^aSY`RZaTY\][WagXT[UXSW`VXSWTeW[U^]^jYXjZXUZeWVVTYYeVUVYYe_Zb[`WY[SW[[UOUZbaWYPZUWZ_WUdPV^XVYXZS`V]Wb[OPVN\Ta]Q[_[M[`]U_Z\ZUUURada^QgcVUYbVnV^T\[[YRUWSV[WSlZS]ZVW]PY_^bXT[^ZWZRTUY[VJUWUlRXPX\XW]\[^VPbZV__YTXYUTZbTXU[^YR\[URqUVTWLWZRT`WYUTO]TVXXY_XgYVVWa[OZUa_ZVS`pQRRY^TcP^T\Y[SYYWZR]W^X[UY]\\^a]\PWYZ[`N\Y^XW`^TZ][X]X\a[W`aYZPVdVXYTZYXWeWS`UZW[SYO_XUYX\`[VYSTYUYWaU]S]RZPTTX[VX_ZZ`ZX[Q]WQZ\]YS^W[WUT\WVZXQbV[bWUYTZV\`UUXfVZ\ZV[Z[ZRV]Z]Z]\\WdQXYQZReR\PaYhQT^WZWW][PXSXTZQWUW]SaZYTSVf_XcT\W[[VXXSY\SfZ`UWXRRUV_Y^WZ^SS_X\]Z]US\SQWXZWV[\X^Y^Yc\UVV\VYWYT[UWWST_YQXX\UX[ZRWS_WZTV^U`WaXYYXY\]aY]X[YX][_U[mX][\TXW^[g]]TX]ZWY`[[YXYW\^S][VP]RXVZ[TSWXa]Xa]YYTVUNVR`T_b[WUh^dUeVgTRZVYQV[^VUYY[ZZXXXaRZUUZWVWTQQbcSQaR[\V^U]_ZZTXU[Y]`VcY_OXSdP\UZ[`XXb]cZZY`_SYc\UU]ZYS\bRX]`TWY_[edWZbbV]SYZY[b]SWR]XYXV]VRUMS]WQUXMX^V_UU\[W`^][a]\\R\RVUYa\aZWa[[VV`UY\VXWSYS\TgXXWT\^YSYXTU`bXT\[YZdTZYYXUTSY[S\XT__\[YU]Y[W^WZSiWQ`X\UT]e\RRVSWXZb]^YWTQ[SX_UWYWZY[_]W\`]_X]YR][[RQl[PUXYX\R_\aeU[[^TZb^WMa\d`\XW[S[dWXUZZUXTZXT[VWKR[ZW]YeRZQ[`RZ^SVT\TSZ_V\dW\WY_b`ZYZQYUZWSZZVYZ]`[WWT[aS\_U^PWXabTS[U]dVXZYTYYV\WQZ^RSZY\ZV^UUNXT[YZMYUa^[`S[^\XZXXd_\UV`ZYXYX[XRYXYZZUWbWW`YYYY^WS^]P]W[Z]eWQ_Za^VW]X][WXYVST\^[Z]^[W__Y]c[cW]\[`SfY]TV]d_]^XZ[Z]RYYZY^aV_WTTZ[UYRa\^]X][]Z[bXXQ\]\]T``\V[Wa^[UaVTUZb]^YUSeVUUWX^bUZVe]YWWUfWV_`\[YY^TVbQTbgaY]VV]VY]XZ[UbS\YX[^[WT[T[X]WW]X`ZUabPdb][\Z_WS`Z`T[ZZVXXW`SZU_[TW\Y\P]_YS^[[_[[ZWZ_VTcRWQbUXS_R`S\R[Y[UYZYW\\V`b_ZVL[\S[Y]YWW[U`Y[`WVYWW]YV[]Q]]^OQ\ZYZVVbR\[`[[a^VV\^XY\\cZ^WWTaWTUWQX[SZaTQW\U]ZVT_XWZ\SUVT]dP]ZRZN[ZZ`X]VR[`_aX\[YQ`]TWW]cX^]f`W]Z\V\`[LWS]V]PaTaR[UU\ZXV_XTWSQ_Z[TRZ^Y^dXY\lT`W\^_ZfUV]Zc]WW][WbWYY[QWXX\Z_]RNQZ`]^ZR_]XaYW]VV`\[TYV[X`WYWWYTa`VY^YWTbaQZc_]]X]\ZZR`ZX[XWTP_YTaZZ`W\\aX\\_UYYY`V_^aSZXYV^^SVe^\VXZ[[X\R]R\^]WYX[]^SSaTV]^TXZYYPhYSRU[b`X\Y[WZ_VYT_\YVZR[WZYSX\Z^_^Y\YRYWVRVZ\XZWZXWU\^R\eYP]][[VaWR[T\^cX[XYX^Q`ZVS]Y]^YaTV[^ZWWXWZSX\V]XXQZ_[XXZYYX]XT]W_SX`UZe\[Y\V_VZWWVbS`XZWQZTe`YSc_d\\Y[aRS\XYV_Z_XSPWW]Ye\__WZ[RaU^YYVa[aZSWSRYVY[Y^TW_WTW[[^^Yc[U[eb[ZQ`XW]_YZ\TSUSSZcZX]^]YXW[YMWS`RZ[]U[VW_WW^aa_V\\SZZ^eN]Wb[ZY^TRXaaRcYT]_UTXR^XYab[aYWWU]X[X\U[ZZY`XUZdV\a]YWYZWSUV^`ZXSQ[NSTTWTdXX[^]Ya\XU\Y_TYblRSXVXX[Y^XUX\[WXS_^^R`UQTXUcY^U[Z_SYRZ^TPWb\_]X`\X`VYd^`_V]TYY`ZUV]XXTW\\TY[SVX__[bc][QPQbUXPZTVYTWWZX_[Y`RZRTR^R]STUa]VXWaUVUXdYWWRXYYZbYUYW[YfVRX\]SRTWT[TSVV\W`bTWW[]]aYZSVZZbW\_]YZ\aUY]TZa_^YVXVfR^a^WTXS[VY^dW^[UYXWXa^W\Qaa^^YV^ZZ^Z\_]]Z_[Ydd][R\VSU\deYV[X`ORYZTY]]SUW]^_ZW^T][ShVZPX\bYXiUYY]aV]b][UQNWWObYhZ\SYOZVbcUh`QZ\^`bYRZ_[X^SXXVWaWT^R[W`ZZWUVVaX^RYYWUV`WV_Va[]SY[ZgXYacZ^W`]UX[VZV_]PPV^_^fYZ`ZWa_ZZ`WTfXh[[S[RZbYV`U^WTY_]cZ_PXdX[_TTWUecLaUXUU^Wln[ZT\WZTbWY^aXV`[^[ZYcQ`ZW\WgQ^`RbV\TTS^[`RS`\SZZS^VcWXaSZVS_W_WT`ebVYb^_UV\gYjVYW^cRXdeU]RVP]m[_XVZgU[YZ^Z_XT`Xa]Z[f[]]_YPjSY]ZVXXUZW_\VY\UYbWYUaiV\\Vb[YTcUWWSSmZ^YW_XS]MVX`^Y]TV_]k\^VcXjY_]]\Y[Wj_\J\T_]\aXb[VTa[U_VYQN]c[w\Z[dVXg\iWWWVXS[`fbQQSOYU_YRYWYSX_cUbU^]kYXb\XZV\ROQXde^Y]VX\ZXUTPWa]Z`_aY^VSTSWXZ^Z`ZVVZLckZgYR`aU^^UYTSS[T`i^Td^][[[W^]S][R^YZ`Q\^TYWc[ZZa_cTcd\RQcWSP]baZaY[_[RXWQTXZ]U\Q`[]e\_\RMUQ[ZT`QVZ[`OX]^`\X``UYXT\a_]\Y\T[WWYaZ^`PSUTf[Z[\[Q\ZWTYYQS^PWX[[Z__Q[Z]S`\RXT[VUZQWUZWX`VP`UU\UZT]b[RRXMVOP]UZ]U``_a\XUZi[`WT^Z]]PdOYU^Y_fXW_RMWS]\W\iRi\eYTY\T\XUb^\aXb[VYZT^YYXYW]U\TX^W`XUZVW\[_\Q\_T][[`\[V[Z[QSV][Zc_U\W[WYZR]Z\[WWYZY^XcUWVe]^a]^W`[RS_ZSY^\_\WXT_SP_T[UYVVXVO]ZR[YU][]PSYUT^Z\\WYZWSYTYW\S[]aUP[bi[XYTUWOW_UTWSTUW^``Q\U[]UXa^]]aY\Uc\aXY\XaVY\bZba\a]bU^Y\[V[^U[SVZ][\URZbTTYaRYSVY[YYdOYYaRb[YXWTUf]YXWYTZ\TWU^QSYVXX_W\Y]T\\\YhU]`YWUWdXYZVYZQ^]_YR^^V^X\[YXTZYQ^[]Z]][\Z[XY[][\YdW`^XVV]WUWZ\`V\Y[WZQV[^VUZYXX[VZ^WSUY\W]SS\WX^X`T^^ZaS\W\VZ^Y\YbWWhY[]eT]]\dXTTTc_VZR[U\[X_^bVYZZZWV]X]\Zc\SYZQX[UUWWV[TTWVZWVUZVT^_YX[e_Y_aU]_b[[XVXO`XZ_X]RR^Y^^Z_\_bPXZ\RY\S`U_]UWW_WZ[]\Y]bZVYV[\aW`[TY^]W]W\\WTTV\cZWWYZ^US[Y`ZWY]b[\YPXRY[dW^V^W\]Z]aU\]YZX]\[U^_aUS\XZYWWW^XV^\X]\dS[^Y[UWSZ\SXUWZ\_T[`aXcR\U[Z]W]STcWa[aWdU\U[XX[^_\[WQQVR]YU\YOSXVYXW[d]bTaZP\YU\UVT\XePW]W^ZS]W\Y\VY[[YS[\_WZ[RZYZ\YY[`W^WW\V]YaU_[\U_bU\]\VU\[XWXZ]^ZcQX\YZXU[SWQ]cO^VTTcWXZU\TM^\^RSR\[f_aVc_Z\\YYZWXZVTWTZaTMZYRXdVU[Y]TXY[ZdY]bZY\^R]XZ[RWT[^\\[QYbW_WZa[^^]]]]YRUT\WXVTUXS]WSXXZSSaVXVS\TW_WVXVW`dRTT\]\QZ[TQ\VX\ZXZ[\U]WY^TT\WTV]UXX_[gYWRXZYV_YYZYYST[]ZVSaXTW^TV\\LYUVZUV[VW[aaU\SRYaTXWRXVUWWcU[[^XZWTYS[V^USW`a\YUV\YRT[iS]^WXPXUXY\SS\^XYYZV\^kY`\]Y^\V[`\XSUWSZXXUWWSWZ`XSYU_[\STZZTS\QTYeWU^e`aXY_TVVZnYS\cXUUYVSZV[S\WTTX[cQ[[VV^[ZZ[VUVb_V[_W^XZQW\_W_ZT^X]ZY_U\VXYSXVb][_\\[_\W\f`YU^\Z]UVVSPYST\V_aZUTb_UVZd]ZT]`Z]ZUgSY^XSXVoYY\]ZZV\[`VQTTZZ_WT[\[X]RXURZ^aX]YXW^TW]RYV[T\Y_`VPX^ZZ`XR]PSWX[a]PV]XV[\T^[dSWQYXXO\TW\W]_bXaOS[aTTPUT^bbYP][\Y`\WZYaRTXc\Z\UWZXR[]]RgW[TX]OWfbWcVY[V_ZZ\W\\PRX[a]^\aVc[Z]\WWYfRb_T]\QQRVV_YU[R^[]V`[URXZaX[_a\\Z\T]WX`OVRV_^X[[Ud]]`[g`f_ZYYZWNU\UQZQXZUSSW`ZVa\[Za`OVTVVWWW^XWWZX[Y_c\]V]^YX[Y^adZ\[TZ`bRSZZX`XWUaReZRXXY`aVdWY^\ZZV\fYfZYWW][VW^[TV`\[_WW[YaYV]U_T[U]UPWbi_`bW[QRZURYU\\[__QW[[WXZXUU__ZVT\V]W\SWW__^TXWXaTY_ZZ_Z\\SabWWST_Yc\ZSXU]^QYY[Y[Y`U\RXYWc\\[SVTW]U_\V]X]QZ`[^WZ[\Y_W]_Y\SV\`U[daWcSYYXaXWWV[T^XYa_\WUP[_Y_[\YZSXZRTZV\WaS^\\hX]RZ[`Zc^`\[WY]PPYP[Y[YV[Z_Y[YSZUXZT^^UN`_^\_\VWVYX^aV]]W[fXVW\[^RV\UYX_ZRbTY]WZXWVZ][YOWWZ^YXZ_]Z^\jU[[WUdUT\U]Y^`STN\[Q\`TZZWVZTWV\XVPWTZ[[XYXP^RYZ]]XVW[UW_bZb\V]VY[W\ZY`RYc\VT][dVZWZYcYTSWZ[[]U]PT\\X[X__`XWUZaY[\cSTUXRW[caZX^X[^^\Tc_VUQU]WVWW[S][W]WV\[_P\[ZVdTYcU\]c[ZWYR]TYc[fVYaSW_ZSS[QSZ]Yd^[ZeXY[aU_\]j`]SZY]_R[ZWUZ[_X^ZWU^TZT[WYXfYUX[[ZVZYOW_OZcWYUURa]WWW]YR^\S_\aU`cTZSVYY`ZacX]ZXeW]XY\Y`[UTX]XX[bXZaWR^Z_YSZXcYYYWUZXSc[jW[^UfZc]WjXaR]XZdcU[[aPYUaU_\[W]bfS][X]X`XY`bU`TY\`X[ZZYX[^^WTQZV\T]Z[]SR[]X[ZZUU\e_UZ_eTVXXWVZ\][XbWV[WaZ_SP]YY]]T_]W\SY]YQZQa_WVUXS\X]\W[[ZV[VXUaWbUWbWSYg[]WVS[YWYYZ_VYWUR]cVbJZN[cWTT^]_U^XUZ^T][_]YVcV^VbXYY`][iO^[SU`UX]Xa[YZXeVXfZ^TZ_SX[[_RV\a[\WZSYQ[SURUWV`[ZVU\PaTW\`eX\ZY`\b]WVY\\U`T]WUWZ[YWXXQR\ZV^ZS[YWZZUYY_V\UUUU[WSXUMXZbXb^]e\X_UYXV[_]`Z[^PZT\Za^W\eR[TZOXX_YY\\^\_U[`aW]Y]WWY]WVZ]V[`W_[ZV^RWaVZYWWSUV^VS[UXkSUgZZUQ^X[]YYVOT[YYQZX^`VWXYX]YUPNQ`OT[UWXWWVZ[]aYU^TPTZWUXZXgXOZcX[[[VbX^Y`_TUO^U[YXZ[b^VU\OSU^Y`YWV\OW\TYTZXUQVU_^WVY_[VQYUZSXaYZWVX^Y][XSTPQ\\M[X\W_WX^UUWYYW_YXZ`]ZU[PcY]^W[WdS_\V]Z[[RWZY[Y[YRUV]aZ[[S\\TUPSbXZYbX_TVZ[UZWaT\]WV\UYZ\Y_YY`OY^k\SJWT\^UWYNSPYQQX[\ZiWT\X]YZUY`_][W`XT][UXZWVZSY\^\\WV^XSR\PRVSS_R`[`NPPY`WN_ZW_NZ`aT[Y_]ZXOW]_\\W[aQZ^ZZa_VZZRZZ]PcXYRNcob]ZPYXT[\WZUWU]]XUaYVXTXZ^]VRT`R`c]UOY`]M[cXXY[W^YXTb[WWV\RZVU_bY^\bWYcRV\Q\[[[Y\S\Vsb_`b]VZTa[YX[]QSbWUZZaZ]]`]T_bU_UbW\]b]\\\\\YUZ\_`VXV\\UR_ZUV`Zb[g_RfZX^X\V\`NRR^PZYQ^]W]Y``V^TO^aY_VWTRY]TS^[Z]QZZ\^Z[_SY[caWZ[]Z\_WX\WR\]\\_SX\UXTWRSXU[RW\]]XSVXWX`[[WTYXQYa`Z[V[_XR\Nb`\ZV\]Q^WS]R^Z][bY[ZVU\_]T\Z^`aQ_]_XbeY[\YTW\bNQ[HWdRa^_b]R]XbSO[O\XP^^_V\X\U`[Y[ST_T[[\`W][OaT\YWRNT_a^YYVR^ZZ\]W[\VXZ[aVZ[W^X\Y[e[Q^VSZhXRWZX[[P[U_WWXZ[PZQc_VYYYVTY^[^YU^W\j[]_WXVXbPYWTQ\^g\Z`\Y`ZWVYUWY[c[[Z[ZY^`WZ\[ZZRVTc[ZaY`[[VSXX_e_c^Y]VNYWW^a]QoS`Y`RSU\VS^X\g^N`VZX\QRURgZX\RYVeXXYY`V]O`ZW[Y\TSZTWQZ`^\UcaV^T\W^\UY^YUX[_U^b^aX[`VR]^XYaVZ]T^[]ZWUX^WY]YWVYaaUZ^f`TTYX[VZSVdQ_[ZPXTYR]`XYV[XQ^Z\N]RPS\\dTVXVXZc]bbU[XVW\OZY\^e\``VX_Ub_dUeV`ZQZZSZ`ZUeNXWTT`YYNYW^WXYYbVX^ZWX^[cXQRZ]U`ZPTa[SQZZQQTY^[VSdZYY\ZZbKZ[Z_WR[_[]]ZXUTWYW^]TZRcZZYWVg_UW[[RYbZ`WW\eb]_`j_XSVa_aZ^WTd]YWVW]\ZZRUSU\Z\XT`cTZXVcZVVWY]_[XW[VZV\aaZd[UTTS]\XWP`RWZSUSa]Q^VY]\b[VWV^WZUPRUUXNU_\Zb\MY]]^\WVRd_T][X[WiWYZYYiWU^XWZUWQXTcTXVRaY_XWTVY`Z[UZ_[VNN^X[\UTUR^eW^\Y\Xd[][VQ\abVX\S\]\X`UXb\_SWX\UYWfeUZYUUY^VY[WRZY\TbZO`TWURZ[UWVWSXS`bW^QaRVaXPSRY\UZUYR\WY_Ua_ONWTUT\VXY[YaWYWa\aT[YY`SaVYPXW[Y[`]][abZYZ]Z[Qg_Z]TVKhX\Z`[m[WWY_VT[UR\^VRUXb^aVTV]ZRR[]\OQVW[S_TZW\`XV^[[PjU\P`YZP[ZU\Wa^Z]WWdYZQVXTR]XUYd\PRO\ZVdVSYQbSWY^ceWXXWZYgNSXZVUTXTZX\WZV[\\UZQUVX[X[S\\YW`Z]\b_\P[TTYWfLV_UZTZY__W\]UU]`TV\\\T\Z[^TV`XT]YW\aTYWYbUR`UYZ_^XZZ_XWW[]P^W]Z[R]Zc[_bR[SVTZT]ZaXUZX]TVX[NSOZ`b]XRX`Y\SLVRXXaTR^^aRVVZ^]]VSZVZRW^aSWWYXUWcZTOQVb_UaO]\UYQ_T`[_\YYX`_]\V^^YZa^`X\ZX\YTUTV[TVY[U_[YVXZeRXU\\]bW_WbYXORQT_XR\ZXWU\X[V][]YX\b]VUY^Zd^[][R_Pa^VYU\Yaa\^[[_]_VT_SZTWYbWXP^Z]S_ZVUR[UXX_`[RQacVXTZX\ZZU[SY[XVhbdZ__ZSc\RVY[Z\WXT`OZYXSWT^[[h_WZW\[\^][]VYkW_]U]\WSQaUVeXL]\\dV\XXZ^SdV^^UUXaPT[X\W^^ZQWUd_ZWX`UR[Q[\MWV`Z[aTWZ\V^U\]W`XZ\_UU\XJXYUW][Z_`XY\^YU\^][aYT_U[TbUc[TZ]b]WX\VZ_PbSY``Y_[VYW^YN\S\Z\RZ[VW_[e\Qh[][XX[d\W]\``VPXYSU]_VW^U^\^bVY[`WMTZTZ_]ORVTP\XQ`TYWSYabT`V\_cY]S`OYRa\XYZbYWUT^SV_S_``X\bV^YYVe[[XY[SX`ZTZWY\\\[[U][V^WXZaX[TW[aXc]X[fYcVU[ZKYV]_]\VZT\aYZYX[XU_`]W`V^T[SYWZZ_V[Y`VYVWhWYU_X_^R[^WT^W_YY[S]\`[WYTSh\\XRT\]YQ]Ya[\\ZOTXYQVZV]b\\]\YT__[TZ[_TVX`ZQajVV]WV__[VSY\\UWVVX\U]_S_UbQUa`Z\_aZ]\[aQ[VTZ[]Yb_X__X]VZ]STT\_[YZ]X^V\\V\gYSV]]YV[[W_]WW]XT\TRcZYSaWeW^^Y]SSU\YWSZ]R\T`MV\]XY\V^RU\UUUNWZ]]RT[UWUU[\\[[[WU[YZTVW[YZ`T\WdX[\VQYUaY__WeVWY_YYZWa[WS]Y``X]_Z``[\\Vaa_ST]N_[__ZZZXW`b_]XUY[Y\U\aPY]UX`[[d]ZYZW`RUU[VTW_]Wce[XSbVY\bU\SaWRX]UgYV^VPX_\PUXcROXX\[]^Q`Y`W\X[U]Z]]\W^\^ZW[`Y^TZV[OSP_`W]W]TTW^UY`\\VTTSP^bYSXW\Xb\[WVZXRTX[WYWZdVUWTb\\SUdNW^aZUX\YaOaST[^YWXZRTR^]U^[\T`X[WW`NVW[[WS^[VdYUa[SYYXbST[S_aVNWUX\_eVYVUXX]\\S^WQ]V\``_V]XZ`]\ZZaX\V[X`UWc\^e]^Ta]\haZX_SVZaYYZYQW[YX\\]WP]TWUe\bVTVXV`Y^YVUWXXc^MZZTZ^\]ZZc\V]XW[XX[iXW[VZZ^^[Y^]^WU_ZPWSTU[PQY^cYQZRVcR^PTRZ]YaTU]ZYWcTfPa`^Z\Z]PUV[\[Xa]TN`T^VYUX]d[X\NS\W\W^cXXZTaV]VR[`W`cSh[Z\aXRY\`RgS\VZYVb\W^UXTWU\\bVXZVV`W[W]U]VaV[QUYe]VYNZV\RZ^P`Y``V_^ZQZ\YS]ZY]LRUW[`S\Q^^\`^Y[^UV[bY[W[\QS[YXP[\bW[T[\YZWaX]U\aX[XWWRZT]\X^X]W[VTU[[P]USTWXX\X\QYTSXXZ_\RY^_X[WY^\[VbT`_Z\Q_`jXR[YYmU^ZVXXPXJS[Y^aV^Xc]XjUZXOX\U[^^SUWaaW_ZQQ^]^XYVSTVWU`eQXXZ[]ZY[W^]Z[[YSXV[Z_UZgT[RYN`XL^YcXT`_ZX[^WU`k\[`WX^aWaTP_YdU\aZXZYZWZ`V^X\VXWTWWOKSY[YOXZVYf[^aN_Z\Xe\aYY\YSVXX]]Wk\TUWbYQ^UWTSX\XYXO]dZgXVVhcVe]_SWVN^_]XfVXeYXOU\dV`]W[bXVaVfV[YQVZ\\U\`UUUZ_\Y^T\VVSbX^WXaZ\j[`O\Ud[OaaVYT^Z^UZWZY]cU\[Z_]XbaXjdX[UYRNZ[P\W[]Ra[XgVTUYXW\[USZYcUZWZU[a\ZOVZV]^[f\eVYVUX[\QXT[`]V]gV\ZXS\_W\d][_XW`WTX\Z[`YbQ[WXZMe[VXbV][`^aUUbQg_WZXYhX]RYY\Za[bZb\P^[Vb_[LUbZ[c[XUSX_R[TUV[VVcZ`YP^ZXZZ\[]U[^VXWZY[TW`\`V][V`Y^YeYMf`cWeZ\][McZYXZ]a]YgR`[a[TVV_WUR_]Z]`Rb\\c[Z\YfcZZ^\]T^`cZVYTUeTXTR\gbW[YUae]U[UZbZZW]X`X_^`YbU]^UZ^^NZU^][^[XSa`^]`WYb``X[U`Y_QShT[UTTXo]YkZVXXS[]`_]W`VXMXR[[i`V^T[de^PjV[_U[bWi\]fWT`^^^Ze[Z[WgZXaS`[WU]a]WYc^[VX\][W]]a\UXfS`X]X^\VZc[aT\]\][ZW[[hZe]V_ebW]TWUU^P`h\^SXZTZ`XZ^SRXXV[[eXUUTY\dXVUY\V]hdhd^`d_VaYW_XYTk[Td]N^TVT[V`bYXVbYXTX`]SXV\YUaY[Z_ZUX]aQS_VQWYY[TWW]Xa\WXTX[YeTZX\^`WZV]bXSRZYV\TQ^Z]ZUYZXZWUX[_\W^VYXZZ\WVZ^XUdZ]\W]YRVT[U^^YW[Y^V_^^][U_QZSQcS]\PXY\WY]U]X_VgZVX\[V[[d\YZVUYWX]V]b_^ZXaSYVYXXXY\UT^\U\ZZYXX[^c[Yaf]_OWU]ZXU]]\X\`VS_^V^TWQ\Z`]b\U_U\WVYWRTW^Y^VZ^\][Yec]TZ^[dX]_W[_W^TV\`aVWZ[V`T_Z`][OV\WUUZ[YZV\\Ub^_U^d__W[W\V^dZ_ZVRYMSW_IaXT][URZO[`\UWZ_b[\UVZcWUTZ]VPUZ\YU\U[`e[[Y]ZYYTQWYVT\S[ZZ\WZT\XXSQY[a\V\^Y[`VX\_]XVY`gS\ZXZZYXT^^UY_YZ\]^]YSXX\f^ZZX[XZWaUYV\ZYS[]XR[_SXZWQZ]dXZVVb[^^]XX^_Y[V\VR`\XTa[YUX\^fYU\]SY^^V]WZ[VXTXU`W^Y_ZVS[YUQVVaNU\Y\WWVU[YV^]YY_[VQ\]YVag\cWYWW[TY[VZV][fX\W[ZR``^UTV\U]]R[TdZT]ZWW`ZXY\aaZ[eX]YU[Tb`_^Y[WYVUY\[WaV]caUQW[[^]bURYZ^^UT][[ZYT_YXRQWXZdTXZ\RWZ]\SRS]W]\_\][]Y_YT[cXYZZ[TUYV]UQ[]TcZ]YTYh`Z\^[ZRVV\a`VV`a\YW[[YT[WR[]\]V\QeV\\VZ[W]^ZTXc`XV^YZ[Q]Z^XbXVV^_a_T`RYS[XXTSVp\aYY[XSWXS^[WTVe[^VZTV[WUYV`YQYWZ[RZfVYW^]aZXX``_]YU][]Z[YTVX[WYT[S]X_W^YVc\`QW]UTTXV]YP\WSO^SVZ\[ZY]`Y[[YX[YeZ\e`TXY`hUT[cXWbUQYd\\[`X[`Z\[][]YXTZVZWZ[]_YZQ[^[\]]_W`U``[YcWSVX[_UYQ\`SWZU[WWe^NQWRT^PWWd[Xe]W_b\[]XTTb[ZZ^VZYXVW]^WZ[ZdSX]_W[bV\X[^WUUTTU[Z[XZaX\b[_dYXcYY`TR_Vd[\b\QXWXSW\YYWSZZZY\[XYXg_`\]YY_ZZ]ab\Xf_\S`U_X[c\a[^\WTWdUYUY^\UaYYY^OT]RU[\T`\]]][YXVXXbWX`\^^]XOXRWTWYW[[Z\^YK]VYO]VYaWX_[^U`T^P]`U^ZVYe`UUSYTYdY[RY^]XZS\YWX^Q]Z^RYV[X`UV[\Z[VS\\\QWacZW\N][^W]UWUYU]WV^ZYWUWVZ]`WSYT\`UTZURR\]Y[a\__UPT\[a\Sea[dX\R[TW[XVUQ\h[]WZVWTWWS[\^Y\ZY[V[Z^Xb[_eb`]\TYa[[\XSPaVUY]]V[Y[_[TRYWQV_WXSU^XaN\^WUZQX`WTOXWQb]d`XZXZW\X`RWT\M\XSWQYZ]UYX^[TU[[[\XYUcS__XZ]W]TTSX_[QWSUUXY`ZU[VbVW^SVY[TUVYPU[UQ]Ubb]OV_Z^]S]UeXbV]Y\]_T`T_a]MSZV\gS^dVW`SYfZU\Z]VZU_WY\Z[UX_XY[YT_SZ^]Y]^VUVU]YSTZZ\YY]XVVY[Z\RU[Y\`Wb]Y\_]\SPUWS`U]\VX\_QO\\UV\YN\P]TP]V][ZS_eYUUXY]XUY\YSVTQYWSa^WdSQbTXYVW\X]XWWVVQ`YV^Tg[XZ^\SY\aMXVaVgY[]TX`ZV]VYY]X\V[V[XaWYS^U]c[`VYYYbYUPaUOW`VT][XUTUV_XbX[XX_WVaXTV[XQdSYXZXUVRWZ`\UO^^U]SX[Y\UTbXZ[X[XWRWXcZUi[U``SS`X`SfXNXbgS^\[ZcZV]YaSYa\a[[Z]TTa^ZUUVOZXOZYZ\WXW^YaRXZ^RT[XQ^XbYZWX]ZV[`W^XRUTX]S]bYbWYagZWUU_bZU\YSc_\VYU^[MZ_bV`[PYX`Z]TaT\YWU^]P\K\Y_Z]ZV]VT^U^VTW]NP`]`ac]Xe^\XXTP_ZZbZV[V\bV_d\g[XU\^ZR\U\SWRWXbVZTZ[[\V[[RZWXaX^V[X\aXJ]UPUXP^SSVYUaWYUOWXVUZ^XXXY]iXS^c^X`aY_U^Q^]ST^WWW^TXTXT[]eWQ]\`S]TZWW[SU`_]U`OQXS[eYXZUZbSY^VUUSV_YVWOZgT]UYa[`R^[^TY`XcYX]aY\WY`[][U]\_\b^SY\d]SW[Pa`VYV]YZYZU^YVWVST[]TOVVS^WS]QYVWcd[\XZY\VcVUZUUXUUb_^T``PbX\agV[T]V[XTPZZVSg]XUPXZZSRXYU\Z[S_Y]ZST^[\T_TZXb[_Y]`XWbYTnQX\WZ]R\aSNV^WZUWXhXYWWVRR_SZVVVcZVTZ\hZbYac\R_`\\YUUZ^RZWZZ\aQg[WR]^VZS[[U_]ZT_\TQOZR\Y_VYZY`YWV_TT_WdTW[ZXYbP\`WSTYYWTaXW\UV^YRVYbXTa\_YYU[XYTUT^eZ]WZ]\SW\[SR[\VPYTPdV_T^YXXXOWVXV[Yf\WOV\ZZ[[Vd[XfUXa^[]Te]`ac[ZZWY\`\[XY\[W^X_SVXYNXW^W\Y\]V_ZZXY_[Y[\WS^VV^eVU[V\UZW`ZNZRb\RVUZRZUS_[[STYSVXQ]][Y_[RZSYZQT[RT_[aX][\\[UY[Q[^]WZcX]UJVZZ]XUYTV\Y[V\UYaM]XXU]XW]]^XdXc`Vc[YX[[W\VZXWVf_UZeXW_[_VT]]Y^La[T]\USZX\ZSWVTZT[Z\VZ]VWfUW\XSX]UWUZ^W\UKe]\[Z_YcVPZR`WdMZ]_N\XTY[XZ`XZVaYT]TNU_]]W`^aX[R^Z\hO`S]UOP_XW[RTQX\`e[^Y^UU[WYWQeZa[\YOZXYUY_Z]R\RTaYSYV^\Y\QUXW\[XUcQSZVV\XYbZ]]V_XW\Z^XY[RYY[\V]]STY]RVV\Z\ab]S_\cR][QX[[\eZ`R_\ZYY[VdTXRa[ZaYXRURZ\Yb[[T_XUUU]]aUca]^YdTV\VaWV]Z\_cT_cVT[ZbXUY`SXWR]_XWaXXTMZ[UQZ\X[ZW__R_XXScSSWY^Y]Y]Ya`V`VdV]`WYUSW\\\VY`XZVUTZY__]Y]X_\T\Q]X^cU][Yb[XSY^TY]YZUY_ZVW[UTdSZSYZb[\]WRLZV]^V][XQ_Z`[YW^\QZUWTYQZS\XVaVW[_^[^\TZ\YXPZUfNc_YXXX[h\\V_`\QX\SZXX]TV\[YVZUURXRXQPSZlWdP_XVVW]VU]XTRTZYWVP\[UR]^UWWYVXSaWUXRZQV\X^YWQRVaVX[`X_V^VU\TZZXbXeUf^UW]^^]WZ]_aXcVPRYbXT[S_\V[Y^\^[][\W[YfUQ[^WY[[\][SUVZX]\VYQXZWgdVWcYdWYZc\\^[\X\R[bR[VW]YY``UWZXQY[X^Z_[WQ_TX[M]Z^YSSZUWZScWWS[V_UQcQb[[_P]YVT_ZU[VY[QPV[S\_ZV\\XTZi\g]VVZ\`YU_ZX\X^][V^YcTWZVX[Y`ZTZYV^TXRR]_U_^W]V\_ZXVRRT[Z^^`]WWgZ`TZYRVPZ`XX\[UUZUV_^[Y[^ST[ZbX]_b[T_W[XYTRW]R][YZQXWTS]Z[QT]_`W`_R^\_ZUXUYYe\Y[XUS^ZV_^VYYUWZZTX[Z^`T_^ZX\RUfWWX^ZY]V[\XS\SR]UeWXN\Z[UYb^ZXVT[SW\^SXeTYWV\XPVZ\ZO`T\WXdQQVSX]Z`V][V[TV]ZYY]ZWUc]X\[[XXUY`_cS]^]P[eVZ\^VeXUT[[\T[X\YR\\UY`ZX\WW^fWV`YUYXh[^]VYZScY[cXYRYaZYZ[YXZT^X\\TZ[UTdYWQV^_[_]\Oie\XZT^aYZ^U\YXZXU`QWX][W`QWT_VWSZW\^_VYVX^X^Y]UWX\V^Y]N\R\Z\SZZZSYUX^YYX^TWXVSZS]UXXRX^V[XVXZgYfPc]XWR_W^^^\ZgTVTY[V]]XcZfXX[ZY[T^WT^U^^^\[[\bQTT[XXc\S`Y`a\]W`\UX\_W\YZc`WKd\ZXa\VYeXTZZ]VYSOZV]W\ZQ\d[YWleT[^`hbXZYUSc[ZbR^b^WSVW_`Zb^NWWaW][aVW\YZWMXVUZX\Z[U]YUTX][_W[^[_]ZOX^W[\`X]SfVa\S_[OX^XXU`X[\XZS[aR^`Y`X\VceZbVTSY[Z[UXUaR]WU_W`_bXZc]][P\[]XZWc`]ZUYWZ[eVVZYWdZPXZWTSU]YXSSJ[WQVVY^Xf[V^VNSZXWVW\T[^d\W`TWS]Z`\YX]VY\Ua^_TZXYYgY[c`]SZZZeXZ\YYbXZSZ`Sa\dbT[WUVWfbXPUPXZ[afQWX\YX[Y\S_WU_YRYfYY`X`^[TWZZZUWZS[VY[dWT\TX\]T^\[WeS\ZWSdUUWc]]\b]aX\cWUQU]Q^ZXVTP]\UYUUYS\XacU_^ZZ[T[^TUR^b]\WV_UY_ZZU^W^^dZZQQ[UWPZZ\^VU]X]ZQWZ\XPMT[Z\]T_]\ZS\W^VQV^U_Y\[^XWYVTYT\YTaYZaZY_SX[[bRUVU][YTYUd^ZcVXYT`W\[TY[\^XbTW[TcYUWZTUYZZUVWXWXXaZYaWZVWXS\aXVTT]PYWPU\Z\LX[VYYTS]]]ZWX]R[WSXSc^Wd^\ZW\aUWX_\c[WbXU\W\[cQa_ZaU^^WUV[VcZ\]VO]YcXe[^Y[Z[R]TWfafQ\`TbWW\c\UXNYa\[ZX^[UWYZa^R]XWdUYdVVYU[TZUWYW[YS\_VZTSVVXV^\Z\WYYadVVVYW\XYSZ_YXW\aS^]]]dSYUVcKZ\\[S\WRVZ][]\[Zd\^XWTYYZR]^`V^UV\_SZa]_W[ZUU_\[X[\VXYZSa[\`YW\WY[Y]Ra[c\i[aX\YZZVY[VXVbc^WZQ\_^ZZ[[V\YYYZXX[VYZbT`]Ra_Z`\U^Y[]XX]`TX\YZ]WW^dYVXQ[`X[T\UUWZ]Ta`[Y\Ub\VYVUZ_[WaZTaWcVXe^YZ\WUXSaQ`dY]VVXZ\aZXW^Y[[Q[X]\ZVYW\W_Y`UV^P]]XSXUVT]X\W[aU]^ZZS\STVX[_YSVX^PYSY^UYV]YUbVZaX`^Y[ac__X^\_XcW[ZXUPS_c[^Y_W\_VVVW]WU_XWO][[Z`[cURV_XVRPQVZSYa[XTWbYVPWQ\`^bN\`WVaU\O[Z]W`TY\[X[Ud^[[RbYVRZZdSbYZWc\RVYYWTc^^\fR[^rjXVWeaUZVVY\Y^USR_WUYW_\TZ`]XX^ZUZWZYV[U\[^]bYQR^\`]V`YY\ZYa\cUY^UY`\[]_]_TUT_\bZ]YQR\cVS]UX^UaXS\dWTYXY]Xe]_ZUWZaX`YZ[[[ZQ\Y[V]\X[aZY\PZa`[]eWYY]UZVW_VgR^`NRQYaZ_Tb[YeU[U[YWYaRb[R_YXXZWa\aZU]\WTZ[VX\YU\ZVZ]aeY[[^cTXWZfRX\W[b]UZ[][ZP]JWW[R`Ra[^`W`^QPTYTXZ\[PZWWZ]^Q\VmVa]X_XY^R^[[VUZ[QYU`]YYTS[dc\e[WWWTYZ[Y\^QYX\[VZZZS]dYkS]]WV][`]b_^]R][PVeQWUZ_UW]W_YYVZ^ZTaZY^R^PY^`_W_^[TUWX[TaaUSZ]YTTZT_gVXOVZU_VRP[W`\^Z^]Z\YU]WUZUY[RUVY\SR[Z]eTY^]L[ZcYO`Vc[c`S_VUXQ[e]P\\UObTOZUYZ\TSX\aU[VT]VZY`PV_[YYP^aVXWXR^VZW[[S]VU\Y^SZZVUXY\UW_U`Y[`WN[W\UUZUdg[WZ]h\]URcVW^R`VW``X[VQbP_T_Z\UUO]W\aTW[ZZYPaZ\LZ\YX]P`YUT\\XZ^YUU_Q_UUXVOYVX\\WXUaW[^UZQYRd^VY[UVW^W^cWbQZ[P\Z]T^WeY^^]dVV]T[X``WXWZQXbaV`]UcaUQUV[VXYXZY\T^`aYUagZ\XcWURQW]WUWXb^b]`]ZVVYX[T[_U[^ZWPXW`]WY][`Z[[V\X[XW\YUYeVbUUXg[Y[[\S[SXP][WV]WW]ZY[WXYVUc[]QQQRbRTTP_^YY]ZaWXMQ`^X\TUWUU_]]XW`P\U_U^VYZYZ]YZZVRPX]W_`[\_]\\[TTZ]YZeTSVXYbT]XXZ\^\ZYZ_YUP\VZV_]TUXWX][ZV\Z]_WZ^]a\]]VW`Q\T[TYYO\XZXRWX`T[Y_YXa`\VVW[TWU\d]]TV]YZOUXZW[RZY\\XSQXZZXXWUbUZU\__c]]ZVTb\`\XZZUb\WTebQh[VZSTeaTUXT\UaTVZ]_`]U^\QZZ[SQ]PYRTacU]WTU`VWXXY[\N^W[NbUe]bZZ_\TYd]ZT\O]`VZXUY[[TZ\dPWZX[S_TcZ\Y^[YZebU][[[Pb_`\Za^[ZUYY]XUUXXbYUUVXU_\U[RS[Y\W\WRS[WWZ^V]^bYZZOT[ZZ[[`[Z_ZW[Z[Wh_V^[]VYZZY]\[PY\^Y[VXWaYWXZ[[T\WX_VTU`VQRV^]_[T^cR\bZXaXUX[]\]\ZU]]^\[YSUW]X]dWZUW^^RaWVXXZVZV[`[Wa\WYZb^W[[X]V^[Q_Z`WaWZXZVY`\[R_UYSYUMXX\dYg\V_YURTUVX`\RX_\V]XZX]VV`VYUWSd_[Y\`cU]TY\]]YTcfX][UZNY[XZPYUXWYVYX]S\V\W[]X[ZSZX][YTZb]VY\_TUY^YW[]YU[^aZ]P\YVX\[\Z_^Z]Z^ZVV^ZNYZa[ScTXPUYSXYYQ\UQ[TXWYWZOUSbU_Y[bYeUXYW][]TVcWNZaZYQ_T]]X\VVSYd^]fXUZXTSVVZ[`aYSYUU^RPaaZZ\[WU^Z_aV`fW`Y\RY_YZQT^Z``W^UY[V_W^W\[\T[Vm\WR`]d\Y\aX_P\WWY[ZYWVW^]d\XV[XhbX`\f\gUc]X[ZX_cS]_[[_`T]iTSYZX]cSZXfNTXU`XXY_XZYZ^WWWc[XV[bYa]_UQX\^Xg^\WVYVTYXX`WTWW\WYYY[f]]^l]SX_]Z_[TTZRUWVV_Z_`VRVZX_`^[^Yb^^[_ZV\O[\R^\_VeVY`N\\a^^XWTVcSVY]OVP]fS[Y`VcUUVTa[PYVVYUXUaZQ]`TbT^Y[a_cZP]YVaUVSY[MSiXXVZ^[\^P\TYWQVZZTmf]\_aXV[bQ^OS_QUX\]`][UT[]X^_XVWRT\_XT]SaZYW`_dZT`ZdY]_VmYTYZU]T\a[YUZ`V[X[Z\TYU[ZPWZXV]ZZLXQ[\]^[Z`XVOT[VY\YV[YSXWYlbW]`V`d]]VeT]\`^N^fdU]Y[ZbZ]WVWUXXWheZYZZYV\S``[^b``XZ[VXTdSZYkSQTg]^]SRYY_Z[YSX\XZWS`UQW_`X^WYV[RYY_XXUSW\deNQQY\XY[[SYZiW[]WVfX]QT][ZW]Y[YdVUX]bco^_gnTS[aZgW[ZTYbP]\\_]UTW[^TeY_UXWY\RWWX[[^][[^]Y^UZXZX_UZ]PVVW[\YXWXRZ[WPX^[ZX[WXdafW`X^X]UW\Zda[[^]`VVZ]YZR]]PaSV[`hZ]YP]^ZYZ[SZ\aVXV^[PVUaUX]UY\WY\Q]Sb\b[XZU_XWU_]\U[YSV_]S[S]Zc[XZSRUYZUZS^]WPZY[]d_P]PRaa\aZ]YZW_cY\Z]STX[Y_aZUUXScSY]Z]`YjYfXMY^gWRWWZ\YS^URZT`aZX]`[XSYZXa\\]^TU]OPZZZZ]VR_\SX\Y_aZUc\Y_Qc^WX\V^XSY^c[S[T\YXZ^\aK]dSYYORc[OWPbYVU\ZXYPY[\`Z\]TP_\U`ZZRQ`^Xd\`_ZZWU]WX\aeg_][YWWdYYVaZ_]a[cXj]V[YXY[WaW[_bVLXVVdTXY\_`XdZXW^UXW^T`WQ]^VV`VgYU^X\SWSZacWVXYZWUUQUVj^\S]\RWeWW_XT^YaRZeY^ZR\ST[V`TW[VYSUY_\_ZR\c]]SXfUUZ_ZQYXU\]__di\XZXXQN]\Sh^WYVcXU_V[_VUcS[UY]Z[\\U\a[WR`\V]Q^ZYU_ZM^YS_V`[Ta[Ze^N^aXR\ag^_ZV^dQY^Z]^\[S_]QbX^QWY[ZZYY[[XRa\S[[TXQ^^X_Z[Z_\X`bXY\ZWXYWVVeUZ[[]WWXW[WT]YTcW_ZbX_\SXY^\[U`RUVWYY^W\W`TUYZ]V^Z\h^ZX^]UY\QV]ZYXZV]P[[YTYR]WZSTSWXW_[VaYQ]T\a``^_R_STZX]U_Wd`_Z\^^`YYX_TaWT\ZSUXcQWS_YQXV_WWZRYYV\\cVZOXUcdUf\WdZZ^V]Z[V\b\XY[SaU\\\T]c]Y\VWSV[WP]`^ZXWTQaYWeWYX_YW[U[]T][`UZURZaWZT\b]VSW_VX_]RbR[\^S\XRV[aV[SVWYVQcY^bb\^Z]W[W\_WWS\_UZ^X]_`]QYXXXSV\]S^WWXWcTWVT\ZYYTW^\N^YaYY^Y_VZYSWYV]YQ[`XT[]U]lOfOS\XbO^YdVYXg\add^d\`[\]XXbRT`PZVfTZZWUbTUWVYeXZYW]ZUXS\V_UO\X_Y\\WRR_^hRaZ\][b\\[\YX[[Sd]_[[UUV\bTR[\YX_WY\[ZZb^cZXYUTR\\\\Y`SeY\RXVZWfY]cRZXU[UU\V][TUVQYUVTXSPWW[\`XYZY_^_[\^b[SXY^Y[_hWS[WRQVXZV\^YUZWVX]P[X`\RdXYU^]]W\WaYYWU]\\_W_\\VQUZQb\W]V\Yc[VZZT_\aXaYS[V^ZV[S`Y]_\RTYRXlZV\WOXS]VY]X\ZU]\[WW`YWXS^[V]XQX_Xb^Y[VUU]X[cR]ZWVQ[ZVY\UW[Y[]ZZ[Z\YYVVY[YSVS]`W]R^a^T[dVQ_][YXY[]Y_SWPa\VUSYVWUUZ[[T_[aZTZ_ZV[bYR_VfbTZZUWSWSZ[XTU\WUY\QWZVV]XZba^WV[TSYWUTR^ZZX]ZSWW^aZ_]YcRV[VZVaVSZXX`aVX[U][ZWY_UZ[ZWY`bV_V_Z_W_XYiXaX\\ZcYWZUac\VZ]`^\\Z[bY`Y^YTdWlPR\`R_YV[VV^XgX]V\ZTT_[YYZf`_W^UQ^Tc_^aab[bWbWVcXldXT]_lZZZ[KZ\_TTb`]\aYS^RS_Z\]^ZZUYXYXZY[WXWU[X\YX^[VYX[YYWXY]X[[RRa[Z\\W^QYUYaUV]a`[WZU]WZRZXWX\VYXZTT`\YWbVeVUS___VZX\[c^TWW\V[V[W[hWTZ\b_ZZSQ]\\Y[][YYZXNTZYW\YTP[UUWUYWWUTY_X^_]V\VXZYXV`]h^Z[Z\aZRZSV[V\[WUYWdW`^VR\\XU]dUOYXS`PY\WZ``][[WYZ`YQX\R]aQ]\[SWWV\XYa[[SXZV_Y`ZYT[_V[`\\YY\WVUYZVeMTTeRYXY^XX\\^\MYSVUW]_bZX[X[\WYhZT[_\X\YUS^eZ[T^XTZWZXPW_\Z]]STNV\XXYWY[TUWRVX[`VN[YU]QUaS[_\Z]WTTV\dX]U]PWZ[[_YUVg[ZZ[\`\\]Y`T[Va[]Z_bWMXTUcU]U_YhTZRVbS\`U`V_\UNT^aZR`WR^_^^SaX[YX^[Y[XN]Yeb_Z[]XOaVS\UZ]U^[TU]`X\\ZVV[SacZQabVc]^PVZYeRXVcX\]XTY[`QZaUdb^[RT_eQaU_ZTUXVaVa\e]Z[[X]VVfTTaa`WYU`Yb\\S]\X[ccXVUdYYWOaUVWZQQWZ[]ZP_WT^XYc]V[V[X]]POXSYVSa]SRYXe\VcS[YZZY][TXY[X]Z]U[WYe`fZO^^V]Y_YQ\V_WTfW[W^T]Y\V`Z\TQS[V\hZ[USXWRVZ^aSYX[Td[ZSTUeX^_TWZdWL^[YYLUWY^^[Xa[`^]]aR]UVSRTSS_VbPYQPWX\[SRYWZ]R]Z\dSaSU_]XV[Y`ZUaY[]S][[U`[]YR^Z[WXWOXTWXRXVX]XW]Xg_WSTZ[fU^WS\XT[YWZWU`YQU[Q`aZ\[W_Z][]Z_P[VWcXOYP^ZYZOa^Zb]^XXcQ]X`\Z^UZXY\]W\cU[cYX\f^[[X[QZ_[XcTSVWS\YSW[dTZZ\QWXVVRRZY[[[O[`]`\ZWZ^\RT]^NcX[_V`V[TZT_U\WS\\\_[W\YV_d[]XTYX]Y[_[Z\`bTU`_V_]Wj\]WZWY]WXXT[YYYVSgVd]R^e]OWWVW[_UZW]eWYS[ZYbWV^^ZZYS`\faX_^V_XYcY_RYYUaWV][VXYT\XXR`[VU]XR[YWW]UTR_XTZW`XUZ^U[`i`[ZYSa[`^X`YWWTXNcXc[OXVXVV`W_[W]T^XXXWVaV^UQYO][aY`][^U\W[]RTXSd\bPYVS\UUSVSLWWRWZ[_WOZbX_P]ZSZU\VUWWXU[UYO^RY\ha`_cY^YZfUUS\]XQVMY_V`SY\Q`OU_XUWZXPZXVU\[`X[gVW^S\PXYX]]XXVTYUVbWX[Vg^UYZRb_Y\`[\ZWYTWU[YZ`SZWbX[`X\_T\WW_XT[X[afdW[_ZZaZ[YRXYWU\Y[TaTVaXV_TVXW[S_T[^_ZSU\VUQ]YYXXaYS\M]YVYUaR_TR_\cV^e[ZW_ZbU\X^kZ[SVTZX_Q\_XYXUc\VTdUV[XN]VZVXgZYO\X__WZV^V\bWTXYYZWZ`S\PYV^W_RSW_X`YXY[g^U_TOYUb[^]YZYST_YPVSXVXZa[Y`[YUYW_SYZWaWTSUYVRNUY\[cTUYYU[]^XbV[S^S\_[WVTPa]VZTYW^WXYaW^NU\R[Lc]TXW_YR[VS\\_Z]YVV]^\X^`X[W\WT]S]VUba\]^XaNVVWYaR]b[TdcaXUTTXU]VVTU\[Ob`dY_]\S\W^STY\YZUZ[[eYZRdU[RSTfa[[T_WUXVZ_\P]W]\Y\Y`PcRadWY_S[]`dSSOehZ_VPUW\XPY[WV\\_ZUUUZ]ZYUOX_V`[]T^M]ZRZTX^[ZZ]]UXY[`[W[ZVU]Y\\XdVWTfXV[b\XZZZfWYYcJZQ]b[\S[SScR^^^UZW\\OTOYPaS\fXN\a]UQ^X]\ZZU_ZXX_WaTXVQZRXXX[\QKQ\Z\W[b\a\^Y_^bWSYJ]XYTW`YYfWZ]OYU\STbSSV\VZVbX]]UW_WQYcR][YSY^W`UXX\XYTY`]`Yj`YUWd_VY`Y\Y[]WY\][[XZ_ZX`[W[Tb\U^j\PUS^WT]ZWTSWYHZWWPVTVabZRV]YYTR]W[^LUR`YYS``WUWV[Z][W\_WS[WVUV]S]_WS\VXU^\[\Y[]b_^VcbQVT\YT\Z]VVQ`ZTZV[[ZYR^[_[XVS\ZUOWW[ZSZaZ[Z\VXRZV]X[VV]WWQX[VX[WXPZWYTSYYU_WW]_WZYYN`\YY]VV[\b\R_[TUWTcUVSc[Y]Z^XWU[W^UXVXXWSQY]a^VWX]S_]WS`P[g[VXW^\VWVUSVSZVWVZ^XVWZ^\_\aTX]ZXR\VUTeb[XZ\TT[SaXSZ\Z\d[YS[^UbS_YT[WUYa]TU]ZVWUWXaV^_WPZYX[g_\S[YX]XXQ\_VUXbWY^XZ^RYVcWRTTUXZJWV_^LUTVZ_][ZWW`]T[Wd\VUZ[V[Y\Xa\QaRZW[\VUe\ZSX\a\XS]WSXX\ZUWZ[S\[Yc_WaX^O^ZWYZ`^VSU[SaY[YY_hYYZ\\aY_WWY[W_X[[U^YfTY^[ZXQWS\YV]XUYU^_[VVaYWbXVQXQWT[\^_Wc_W`Qf[VWZXZSXY_`W][WZ]f[e_V^T\Z_^U\_]Z\WTV[_T_XY\^X_YSWY_W]^UZZ_Z`XV_\[[`Z^Y]`XRa^WTZQUU`[[b]W\V]aU_]U^Va^TPUV[egV`[XY`T\^VVYXWfZW^[]TZZ]_UXXT[TeXYZQSHPh]WUWQ_UX_Z]UXTbW\[eT^YY`YYSWTW]VS\]W[\aZ[ZXXbX[XZZ[\U`\XZTX`\YX`]VZ[Y`R[^^_XY[cWZPWUTZ__ZR[YVWXV[[]VkV[PX\VWZ\Th\ZT][WP^cYSbUXaVP]XTWXW\^bSYYQX]_c^YVT`YZkWXbX]RUUb[[aRZZSVXVT_aXYU`aXY\]ZWVcVRX[]bRVZeRW^XXc]a]U[b[R`X^cX_SYV[^XZTY`WQ_\b[VYYRdZZTgU[]VY\d_X[]W\d`W[VZSZ\Y]Yb[TQYYVVUWXWWVSc][Y[X[[RZ`[U^UVd_TjWZTUTV\XZ`[VW[XXW[VQR_XYXZR\U\WM[TVaU\ZNZ`[Y^`O]I\[XSXX[]TSY[VZZVR\UXQYYT`^XXbaP\RXUUcZX[_WUVb[^UZ^]^XW^\YVZXcVTZV\_e\c[[hYVahSZWS]_Y]]cNT\YRXS_dd]ZXYK`R[aXQ^]^YefQ[bXR[eY_XU^`T[^[SSSX\YY[XYVV_\WUUUZ\d]ZUY^f^_VcXV`]Y]RXU`gW`QUd[W\Ua^Y\YYSRUUSZ[WUWd\Y]dW_\X[]ZTQ[X]\]Y]SXZaa]ZTSVVZ^TW^g^\QT[ZPUeWS]f^ZUXZ]WU\UVWZ]UTUX[VcVVW^\U[YW\VOY]\\SOQYRVZUXWX`]dZTV[\_YZ[[]bZXSSWZR^\XU[_VcfX\]Z\XYXRXYV`SW\\`VZZZ\Zhb]S]W_d_Q^[^YUVZR[Y\PXYT`O\^[^aTVlZ\SRfeWSXcMZS\`[`^XN]N\YcY]i`XTQUUYU_[ZXUU^V^YOYYQWb]YZSWYZVW]]PVV``UXfW]YfYY^W\N`XcX[XY^UWUXVW[\\aaV][TTWRYO]fV]bXW]WYZZTWV^YX]Xg\WTZU[UXSZTVQU\\UUZ\]e\_ZVUZYegb^fWQUgZZ\`W^YZ\]V]UW_\QcZaaX^Wa[Va\UUVVVUVZ\Y\TZS_W[V[ZWUW]P\QUTV^PX_WVW[YX[]TRXZOQ[XVRZ_XOV[VUMY[V[ZVS^VgSYWXTU]R\aZXTTZV[RXU]\ZbUTVWXW]ZSRQTbT]Y[V\RSRXhZZZ`\WWa`WSUXYSQU^[ZQ]RUTXVZUWXZWQTdVRZ^U[WQTVScgYQ_]]]VSTYNTXRT\^TX^\W[dWW]WT\V_T\TOU^ZZaW\U`[Rf^WbZ_TW[]hYY\WR\YYR\YUO\Uc]Sa][_\X][U[\Xf]YZVW]\f]][YUQSV`YUVXR\X\PSTWR]QaTUbVX^YQ\^RY]ZXYWXVYZX]W\VV[aWU\bOQVXR]]Q^WXZSc]RV`UcaX^Z\TWc]RdaR_[^YU_`Y^]UR^ZTVdbXRS^bYZYQVb_YVVUaWWSTYVYVYWf]UZ\cS[]YX]YLZZ_\cN^`]aYUbVRXb][ZUZSZ_aV]WQWZWTVdY[c_]^a[UW][gcVV[X\YSW^S]YWTXYagXUZXYZei\\VRZTbVXX_Z]XOT[X\_YX_T^[UZS]V^UV^[[ZV\[UXd\XZZJZVaVZVYUW`ZT\^_`T]UQRZPYUO]ZW\b[U\S^`]^WY`_U[WXX]U`aWXZTWYSUXS^RY[\TXX^\[^[`YS`ZY]Z_[[UWXY]X__[YXUK]_S[Z[WU]TY][X^gVSh[iYWVT[]XTWV]Z\VX`\ZT\YYWS\YUT\b[VY\YTXTV^WQZ_Y\VZaU^aY`X\_ZZWcaVQUS]TWf[YUW``UO^_]WWW`SZ`_]\\^W]UV\QV]a]WRY\`_VT[WhV[U]SXY^]]]V^Zc\\eYWY\W[a_UQ\_^T][ZZXYfXX`_\ZfUbTVdcaWZ_\]V[VVbSR[[T]]d]W\[\XW]XX_VR^YV_`TXZ[_ZZ_YZe^WSXXea`TcZ][\]XRWS^a[QYT[Y\ZUeQU\^\RbXWVUcb_[[cY\i]a[Y[XUYXVbV`RP\ZaO[^YVWTaTYYY`dYRZ[\`]W[]_[bZVYUW]YVaXTR]TfZ[_RU\ZPR]V[ZQUMS[SXZVXiXbYbSX[]]UXSZZSTWWYdVXR_cWe[Sab_TSU[dcZ\WZUUWVUg]^[c^^aRU[S^XYP^YRjZhY\S[`]L]T^XN]K\TZXYRVZQdW`W\ZT[`[O\VW[SPWYVa]VVeLT\_PY[[SS]cYP^_U[SYXVSYTXaX[QTYZ^Z^UYXXedMZ[ZXX\]e[V\T_WV[cZRcXYWTVW`]_\[XPZb[WX\SY[[XY_b\][_TVWZVOZYVbW[V[TQkZX]VSW[\[^QS^T^ZYU[cf[a[X^Vb`X\bU`TXUNWZ_Z\X\XXZ__ZZX][^YW_]X[\\aXSdY[WRQZ[Wd[[\`WXW^Z]fV^WbW^Xa\XWT\WUVdXVYZ\RZV]P\]UU_a[\Sb^cVY^TXUSVVfbWZ`_XW\T]WUXY]aSYaW\\R[TVVYSPQ\XYYWVaTX[[ZS^e[XS`Y`VU[_TUYYUWXcWP\ZYV]\RV_dXS`Y[\SUSZYSh`]XX\PYVWd\f^fWf\\^VZUUaW\WWVUX\i]`]VWUSX[b][_WaZS\RY[^`Z]bTYV^c[\\`U[YfVYTXYWU_]_Y[ZRf]hWQZZ`Y\c`Y_[[X\bVS[V[Z]V^a\XV[\TUROT_UZcZZ[^^W`U[YXWdZ\^`Vd`TVX\]YfZX[_^XY^Y[a]_V]Z[_Z^YQ\^`U\Z_b[Z`]`\WX[Z^]_YYW]\]YRV`RWY[T[Y[]UY`Z[]XbTZ^]WXYaL\[XY[O^[\ZZc\^\^VZUU[\\`\OZ^XdaWZRZPRU]`ZW^ZWWVaUTSZYVX\faRSZSZV\Z`XW^_[TXg\\Z\^\TU\T_aZ_Z`Y]bWZVaX^YW]]XU_\\W]b]o_XaUTZRabUVWY^U[XY^bVUW[OXVTW[RQXVSZ\ZY[OWX_ZXWTcXZZV\YSXVa]T_[TVXV[\[YV\ZO[V]]UWeSZ_RVUQSXU\ZW\YbV_\ZWU_]X_Z[X^XWQ_WSWTVZ]_[Z[RZ]cVY]V^YYWWYa\SVVU[RXUPU[X[UYXUUWOTYZVYV[ZQ`XaVYWX]Y[YSMa_UQR___`]W`XT_`\W\U\UY\ZRZXWbjS[V[ZcSV_cXXR`fZX[WY\aW[^ZY[ZWZ]XXW]TLXYY_Z`Za[^\aRaW\\NX`[ZXYV[cb[\dZXTbPZRWVVP\bY`[[UYY\Wc\g]WPWT]UY[Wb_YSVW\SVb^Y]\SLW[QUSqVT\a^ZUWXXTY^Z[d\ZWRXW`SVZZZ_aXYZdXUWY\VTZTWYVRVVcRSYbaGOaS\ae\ZQLV]\\^RXVY[YX_Y\N^^TVeSWW[[XVY\ZW`[TW_UQXPWZVV\^RRWa`UVTaYZWQbIYb^XXUYaTfVaYUTX_RVZXZbVWbU\S_][VSYN^U\\TZ\WbVYXUPTXWWQZTNSW^VV\[S_VOX[WWV\_WW`[[^V^Q[N[OR^]aW]WW\W_SOWR]YYZXcT[X_VYaX^_VQT^Z^W[W][WW]XWXXTS]cWPV^[`TVWX[ZjY[[][^XZhW[ZR_VX`[^Y^TYVVZSV^YNXP_VXaXVNVZ]RYYS]PTSaX\[XYUcR^^QTYYP]T^WS\]T][Y^S^XU]XTZUWQT^_YR^V\XU^XWW]T]_RYY`Y\[XVZWX[\^WUYSWZ]PWUZYZb\S^W]UXTYXVY^\[^Y[XXXX^dTU_[V\\VYSYWUU_ZWZY^T\_VWX[VXb\VTVP_\XbR]c]d^QWXZTR[W_\]^\WYZXdTX]QT[QUVYcVUWVXWKOU[PFXN[\]_UQZX^[XZYYZUV[^YVRVWb[`WPaVhX[]V]VYY`\XeVT]\_\XdYZZPY[ZUS`T_WafUYVU^UYdX[VWZVV\SXVXbZc`^_O\Vc]]XYWS^^X[[[cV[X[Z^WYUiQ]TWZYUV[a\ZY[WSZUZOdUX_Y[SX^XV\[WaZ^NXa^YTXWZUZdVW^QZ^ZVaYSQbb\]Z][YZXX_]^bVWbYTTRUdVdTTVSUU^Wg\ZSYWWZYTX`RYT^`T]ZNXVZ`[]UdWW[PeZZj]R^W\X^iX\^[Y^XYWX\dOSOX[YXYUWTUOY[YW_WUVVXV\ZZS\^ZXX]Y\V_W_YT_SZZUY]]aY[VV[QZZb[]YYU\Y_Z\XWW\WZYS\\ZTYV\\Uf_ZWW]_V^`TZ[UZU]XW\ZWY]Y_WW]^T[[]YZVe]QV[Y^U[ZR\XXSN\ST[]]_YO\`TS`ZY`TV[PT`]X]VQW`_T[TZaQYU^SYfS^YT_]YWZ]TZ[_aWZZ\SbRhV^^YT]XWbW^Y_]h[_ZW`T_^^V\SYU^YWU_WWQXU^V]VaQ_TZiR_SZT^V[`T\bZW`[XbR^cTY\TVV[[UYPKaYSY[RbYYO]Y`^eUXT_TW]_U[WWSXZWUY_TYZUUR^U]\^\[^WXYXVSVU[\]iY`j[\aVReVWW^_[V]`Z_[XWOW_SeVWV_XPW[`ZX`]Y_\cTXNTaY]][cW[JZZUYW[WS^YYVSRNXcV\RUTLP_L\[V_bTR\]bZ]\`\bb_\_RT[QZUVYUWj[Za^_TZVX]WWeZ[WYaSRZKUXRY\SVX^NW`UXfQSVXZUVVT[[aVZXUZVZXSU[SbMTVXX]QXVU[ZXZbg^b[V_W[[VVQW\XZSYU\P\Y[XYVbRUXTXc[UXUSSV]S_T]ZUY_]Y[U_dURYYaOaSaPTSXk^Z]RY]WWa[SZ[XYT\W\]_P_Z]da`cYZ[Y`O^[YZY[VN][\X[WXTSbR]_aW_ZY[^V[X[XWXeOU\ZUQSbRQUTaVRWVU\XWR[V^RT]_T\YY^^UZO[VTVVY_Y`Y_c]XcYYXSf]`ZPY\XYNLZ]O\YdWNYSfYSYb]R_]_YX[cZQUXU]`UXTa]W]^cXYT]YfYRV\T`ZX`a\[WT^SZUT^`V_U[UZOY_cVUSgY\Vc\WW[[S[Y[`XTbVXTSZ`[YY`bTZ]ZSY__Y\UXWVV]NXWW`WZ[YSXWWZU`XWX\g\]_XZaS\X\h^T^^ROWVUUWZaV^QX[ZQ`U^SXU]VWYUYWU]ZZ[_V[Z`TWdVR]_X`RZU_Y]^Y[\haZ]WWUa]UUX[[VYX\WX\ST\[[TWgZ]RaX_X^YWXZWXVTY\Z]\WZYOY^aZZ\]Z]V`R`WR^g_`^\ZOUTUTRZ\]X^_XZ]ZWR]UZ`[a\WWX]bTQ[]W\Y[T[SV_PWY_WTZYU[TVYYc\QV`[YZ_UVXPQ\XV[[^Ye\cYZXWdZYWa[Q[Y_YaP`ZWXbZXRR[[\[c][\TT_^ZYXb^_Z_V_]fTP]Z_YYW_X[X^\YYVaR[ZZ\YXYYXUYV`X`XXW]VRUY[RZ`YaXVTXY_YZVSUXWZc`[]UW[RVZ]\bWU\WZU`P]U]ib`\W\RY_]V[YZZVc\a_WPL``[XWY[Y[\WSYYY]PUYaTeU[Z]ZVR\]Y\WS_Ua^ZU[Yb_[VYXY\`SW[Z][VW`\j^TX[Yd[]c]ZU[abe_\\Y\X[X_WbZUUYWXWUXOWaWZha[XVYY]Y^\VSWSYXZN]UZ_]a_^V^PV\aXZaUXWXZ^aX[Z^^XY[X]VZ]QQWWZ\V]eaWV]R]_\XWZ]ZY]XX_YY[T[VbXT]`Y]^Z``R[b[YZ[WUY_XXL^`_Y`_[XP\[eYS[T\TT`\TVWYXX]\ZRbVRWVU_\VZ_T`YV[^_VaQX_[SPZRXRbSZY\TZWNWX[XWY[VPY[VYZYQWhQ[ZYRU[V]^aX`gZSUVZXW\bN[Y[ZXXbRS^^XJY_]\VU^T]TXdZ\`ZZY]ZRZ[]VQaeUYS_ZP^WV[WZZ`Z\ZTS_QWZb]\Z`WWc[U[^N]RX\_M\WV_aT[WUW]X\Z^TRXQ]\`W]TXUO\ZZ]`WWYZWVRSSZ[\RS\XW[VZZ^_WcZSX`\XYYQWQbT]VV[_W[`]W]Y^XX]_ZXUN]VUYTUSPW`YYXUYV]WU\_WYW_^X`S_VZ_TXRX_Q]]WXZ\PYX[`Y_RVVa_ZUX[V_UXZ^XXVc^UWYcSSWZ]YX]XUXQM\XXYXg`YX`_[YT[XXSZ_]RYLXZ\Z^TXZ_]SPZXU_VWVaU_^_iW^[]UY[U[U]YXTZXSVWORSUY]`W`PVSUQUSWVURW\ZR]WV[Y`XSkXX`YXR^`U\[XYWbS\^T]S[]SVYa\V[ZKUR]T\[_[UWZ`XT_TUd`[SV[[\`WVcY_XVaN]S]UZUNX[cUVXVGQ^VVbXU_YXWZOVZdXVhZ[ed\X_\WXVNUY_\Z\PQY[[T_ZZYT]TUL_Qg]T]S[RXRe^UZZT]TXX\TY[[\Xl^VXRZTW\\XXc\VX]ReRRa\XYZVf[^WU`fW]Z[W]ZT[S^_\UTR_[R`U\\`V__[TfcUh]Z\[WU\ZUSg]WW^^\b[_Y\VZ_T\R_T`[[[fVWcW`ZY_^X]YXWdXQZ]XVW]]MUd[bX^TSRYJZVW\XYTWW\bO\Ua^`[Y[a[UT]ZhV[Y\_bY]]TXR^WXYUS[Yc_W[S[YWRZYXYZTh]PTbX\XaOWX]XXYYUR[Q]W[SQaW_QYU`Yb[\[Y^VYVS\ZSZaU]`^WYX^YW_ZTVY[Y\Xa[VXYf_^W[ZXUVcW\V_R[WWY_TTYU[[Ug^\_]`WX_W\\S`YYX\\Z][_a^W]VZX\WXZ`WY`\\[\YW^]X]ZbU\_[eY]TZS`]V\W^]TZUZWY^[V_YXYWWW]fZcVZR\[RUXfZZ\`W\ZWhcUZVV[T^X`Z`XWV]`]WY]Z_\]]^\R]W]X`Z^S_RhVY[]]ZTVbWWUc`[`S\]^eY[WUU`]^[[X`\Y]YWSWaYXZ[d^WV`XX\iX_^S^^XZY[Y`VT\ZYYYVVX\[STZY\`Y\ZW]^XaZQ[QgZZWaWW^U\U`SdZ\^hZ]U^Z\eYYYX[OU\d]UZ]ZRXZ][[\c^Z[gU`d^]d_VYXVUY]XScbRVU]W^TUN]Vf`[Z[O`^X[Za_[]_V\VXX]RVY]^YW[]\URVV[_^XbY_[V[cW]ZWXZcRfSVYlbZVTTYR^[ZU\d\TTbU\^dTX]UVTW[TYX`RVTY^[U^Wae\Q]^WTVZ__UXT]R[TPZ[YY^XYQ^XVW^WQ[R[[[_\S[`ZV\UUWcWa\]aYWSX_fYZV]_VW^`YaST]SZ^Y][X^[aZ[]__\]][Y`X^WZXQ[YWU\^T^_`^^U]YZSVVXW^]]YhaaYdXdXWVZTXZ\\WQR`Y[\]VZVU[T`\V\YTSU[YZW\\a_VT\^^YU[ZXWYe[SYX[\XSP]YZ[T^UWTYW^TQ[a[a^YWZWVZV]\Z^Sd[ZYdTY[\_\ZXXW_c\V^_ZUaXVTR`ZNTXf^Sb`\Y\TWZ_a`XRb^YWZTUZ^]SXYV\cVZaT\W][UZQ]aZYP\YaS`YWQ[`SS^XWU[R^[a[WYZ[d_UUOeW_X^]d_\WZaWSVWYUZZV^\]SQX[^\P`YRTYZaW[\]WX^Oa[\XUVZUYRUTQX]R^U\V[YZ[SYWY[YX[Y\Rf[U[VWQU`W^]W^Y_]ZZUe`V\[]bQWVU_\ZOW[\[YXQR[UV\\^XVXXMTeQT[UTW\RcR_\ZXRY\N^cg[`VY][U[VYW]Z[eYS`XV`_U^Vi\b][]X[VOUZTkaT[]ZXVX\Wcd^XX\PV^UZX`\ZX_cZVUXPb\ZU_\bSaXZQZYZZXbZ[\[ZXWT^Y`\R\YVV\dZT[Y\UTYlQ]bg[X\\^QdXWTVWV^\V_UYXVW`U`TWYYSWXSZY\[SV[Y^dWR^W\VXc`V\]XYReWU_\]\U[S\T\a`UT^YRU^TUXXaXWZU]^U^V_ZZ[^V][RUQT]R\T^VWZ]Wd[WVZZ]^cZY][V]Z]aWb\\WTUcUZ\WX^[[XWW\SUTZRUe_YR_YW^Y\WZYV`YZZX`SY]WV^[a[S`TUVUVXUcTXVUY^[[^WTVbZXU^`VU]]`\VQKY\WhZVXVU]\ZehXXX[X^^S[W[VZ`YVZZZlXWR[YY^Y\YY[WVUZZZSXYUXXfU]`SWXa[WTY[[gZ[YW[gZTXUWfYY]YY^^\Z[^\T`[V\_XbVWZiXdVbX_dVZWSVSd]\Y[XXVQgW\YYb`a\a_XWSYX_[[\ZQ^dV[ZUUT\_cZ]\T[UVTX`\[`\]UX`WRMWYT[[^cZY\aYXTYWTZTcT\`c^ZW]XXZ^N[PZV`VX\[\Ua\WcW\Z[Xh``W]]]XW]]]UUX_WW\WWdV\SZc`RZ^Z][[RW_V[[ZWUTWV[[X`XW\[]]T[TV_\[WZYYZ[XUY[`\^`ZWV[X]YTS\VX_YaYYY^\a^XYb]\\QXWa`[]]^e`ZWbY]ZWVeVgXOSQUUZV`_X\YaWW_^W[WTbSZYaaY]UYYY[T\Xa[\XV[YW`[W`_\aTXQY_hZ_VY[[^W[^U[\Z^`XUT_WV[Y]dX\`ZUR^`WUYdWTXTX^\YU]Wc[Y^[VZ`gYa[[V^^X[RS][dXWTRWZ\ZXWZZTWgX]QX]]\Y\dVZ_]Zbc_Z\[RV\\]XZV`ca]XX_Zc^\WS]UXcb\bY_^bZWR[ZVRWjXVU\XYVcWR^[XSZ[^cX]ZUQ``\^[SUZZa_YY[\Y`[WUT[aYVW\Z\TTYV`XNUQW[_Y[YWbYR^Y[XZ]YX]^XZR[_dXYRWUX_[]ZbV_[ScZQXYW[PYbd_V_WZ]Y^\SU\]WUcXQ\WXX[OUX^`\YZX`VaYXV_dY[YVWaX_[[\g[WS\U^`ZZXXT\UVUY\WX_TW][VT\SZVSRWSVR[X`[UP`S^^ULUaTVaTU][WUY^R`XSZT^`WZT\]WR[X\aX]SU[]Z]^[]XRU]XXXRU\VbcRW][aVW[iXgX_^_UN\Y[IbWZW^_W[YT[_`^UUVYd_fY^Zfe^XYXQYg^]cRVVRXXZ\QVXa\Y[T[\`RXZST\UZ[\_XZZXT]X\[bYYcZWRPZeVW[\_bWUW\]X\_[Y[]V\_WTWW]WWYX\[ZVVVW\cWa\XYYZYZb_ZgXPZ_[T_YW\g[UY_`[V_WZZUZT[\aVW[_VYZZQW\WU[[UYbUb][VSOW[VZ`XRYOY^Q\cTZVU\[W_UU]UW\YUXcXXWcZfaWTS]ZRcdX^[ZWZPU\XZZYX__cTX[Z\X`YUWXU`jX[VX[TU\_RTXVd[V\SU[[Y\RW\\Y_UUVWZUY[XVZUVXeRXXdXZW]ba]ZX^W^^c]W\iZ`m]^PWXVTW[SYTW\UY[XZRY[^[PNZYWW`WcX`^d[U[\^_Yd^k\\XUUZ[dWUSYVV[TY]_ZTYbV[VRhWVYYZXR[X^_\YX`_U_^[\TSX]^\[\^XYVWSV_`]XYRXSZUZS][X^W^]\]_WUZWa[]WYYXUeV^Z[]\[\WWaQURV]TVcWU]cf]ZW[]VXTPTeX^_QW_UYa\Z]\S[VfV[ZXW^aZUYWeZU`X]TYW\UXe^R^XRWVWZ_[[_UWNXTS[[XWUOYT[\Wd[XX]d\VZbYYYaVY[XUYO[ObZSY][^_W^]^[T[V[X^bY`Y\ZbYU[[^X`[ZWa\][[f[TVT\XXT_cN\a]ZU[[XaVZX[XYYVTZ]\\\ZS[]SVRZY\TT]YVR\^[ZTb]_S]PV[YZ]W```SUbZYZVXZVTXYU`TXX]YaT[^Wd[]WPW`[[QZXPYYfU[V`W^S[[ZYPR\VaZS[_WXV\_XT]a\[Q`VVaPWRYWZ\`[Yc]\X]^TYT][WS\b_MQNcY^YX^`YYZa\Za[WTXS]VXWUX\^[U]SV_T\X\`^]VQSVVUaZhY]\T`U^bTZYXXWRUa`TUX[_WWUSTXf[]X^TV[UW[[[_\\aU`TZVX[Z\WSY\X`YPaT]ZMXV[\XXdWXXdZ\Y_`^^XX`[\d\XZVTX[aLX][UQWZP]YVYXY__TNZTZXZQ[deVR]k]RcWV]S[_ZZQXiXdYSVU^ZT\YX[]`\WXc[Y\\cgX`VTV[cXVNYQVOOZ]dYWSb`_^^\]__[IZTW\VZYV]Z^^ZW\Z_VXVXX\QYL`_`XSY^X^aQN\XaSZ\Y[[USaXdUSX[ST[[WQZWX[TehZdUX_Wg`Z^QTVRUiUWZXVYW^ZZVWYY\[PYQ^\VR^XY]\[_XXUYWYW\\]`Va^MQWQT\[a[YV\\S^PVQk`]]VPfSYU_W^_WT`TUX^YZT\VYW[\TZbZYTY]\XhY\TV\UXQZWUYO]]YZ^ZbWW^`_Y[Y\VWV]^UUXWR^YXKfaZTa\]SZ`RWW^ZW^W\VYZXT`UU]VZVYVTW\VWgYYX\]VWR`XcYZXW]Qa`W_Ti][`QVe[XhY]b\[^VXVXTW`^SWSWRXbWa^^XUPSSWU]Y_TY_[ZWTZT`]]]_ZZ[[Y`X\\KZV]WZYTW\RW_`X\UVU_S\UUUUS[\\\`U]gS[dY[``U\P]Y[XZ\[X]b`bWa\UVU]\TaafP[\SY[g^XUcW][eZQTVaXW_Y]Tb[[\\XU^\i[VS_QS[TX\RWS[KY[SVa][X[\U\[WT]]\VTaOR[\e[e]`]YWViRTXZYd^\\U`WbZY^[YWUZ`XQW\UXcZX[]UWYXWQY^WV]TT[VaS`X^XiPW]WfXX^T\_aS\Z[\iY_YUdZb\UVYVYRVZ[ZUdYUYX\YaXTXW\Y_VaYXP_TYYPWhW_ZS\Y]bX]TT^_\YU_RYW\SX]`QWW\b\^STXZXZbSX]V`[Y^^\bd_Ri[W\]Y\[\YZTXaU^`S`cVQSVYe_V]XMUVX[WUR^_W^\Z`ZScYeYRVV[YZ]YVVVU]R_^OWd]^X_Q`UURSZ]QWY[U^Y[WcT]dR\WW^VRL[[[\ZZSO[_^TSYRST^]\]W^^TW]XYV]]Z\Z]U]]bVZ]\[LXV[YO\Y\V`[Y[[VX\\`XYQG^U]XQNX\S^RY^ba][]UTNVO_UXQTWVZbV\a\SOU`[R<^]\T\YWWW[VZX_VTcT[VaPVNY\T]Z_\YRQVUT[[XXZXXTU[V[VYWTYZW]UP^\SNXTXYZ]aZgRNR[^RTQYS`[OR[\USYVV[MWLNWWY]]PZVXTRWUN\RTWXRYR[oWSSP[WQXU]]Y`V\b[U]IkSR_cR[T_Z\UW[TZSZZR]ZV[`a]VUWSUNS`YYSc]LWZbb[[XUXUT]U`Y[RVRXXY\RU\[]YTNSXY^\ZZ\XLXQVYROSWR]VUQTSPXX\[]X[V[SxWTY[X\XSRYYZTW]]U\]YWUYYKa\RT[[YV\YS\UXZ\]QYWUcU[]X[]]UTWW\X^YWVXN_N\^]XRWWQa_TV[_`[WYUTSYRae]_U]a[ZYOTUVS`WXYQaXSmaSP_ZX`_YXURVWbVXUgYVTXUaPe^PWY[cQVXVdZpQUp\US\gVTZ]RWVXk[XTk\Rc`ZUSYY[X^ZUZad`dZ]VcYmTT^R\j_RYWQQkT[XdZZQcXVU\SVdRVLS[\^dc[WZP]WVRRSSbR]JUYT[\YZWUPV[dYWY\VRUUk`S[WSVWXcW^a[VZYTUbZO]\]_JZ__oWZYLWU[TT_UU\\]ZcV]ZW_SYRYZ\VS\fV`WYUgYYjadTKZUVZUWSRS[]\^V]`ZbRV\TcbWe`[YmY`Y[QWY]WUS_S\U]Y^[ih^WZXRX\_YUTW]]XZ[VUYdXYXWUZY][\VQ[USRfWXYUPd\[a[R_]QRcThUTRcYWWXXYdU]bR`YaU^Y[aUUUWRV[\[X[UW^[UY[\\ZWYYWW[T\WWR]XYZX]\X_VQZ`YZUYb^\^YUY]ZZ__WQWT]Z[ZTT_VV`Y\[\ZRZ^ZTeaSZTbLTZXY^VPTMVZbSWZ_XTZfaVTYZQUR[WVZ[]TY\aVUX[`bUWVcYX[ZTXZWWXZXbaZbbPYZT]VZ_YXYYVXUYaSUYTa[Wb]X[QUYYYXUaV^YV[\\_QTYUSYY`ZZVUZ]YaRYWZXTWTW_UYWZS\V_\T^WPT^USW[^YYQUVX]ZXTZU]RZ_YYXXS_g__XYQ[a^[gT]VYXbRV]Y_X]UQe^V`[WUY[VX\T^Y\`WVT[]fTV[^]^`\[dR]\[]d^^[\YV^[`c^[[[[YYW\h^[VX^U\YRVYWYZcWZa]\UUZW\jYW^Z[W\UYZ^UW^X^Y]WY]TY]\ZZ]_S\ZWV[_ZXW\Y]TYXY`W[W_V_]XZ^^ZSYSZUXTXVT^[Xfb[YV[a[VYU_ZPZWVZV]QY^X[UWT[ZZX\Z[XVXY\[XU]X_WZaUZS^W]XTX^bcR\]WXPY\UifZXX\`]U^_[T`WZ^b^Z]ZZ_W\S[VW\P^]VX_[UZ^T`[UOV]Z_\]ZWTVUZ\[Xa]Y[\\W^T]Q[U^V_jU]SY\UYZXXXV]^VWZ[UTTV^[`hV`fTaTZ`X^WXZ\YZdeVYS^^_WXZX`WWYY[XaZUXWYY]Z`X[UZWZgfZK^Z]YTc^]UX[W[]\`_XRYUY_cY^WYU^aX[ZTYY\TYa^Z^RWUX^\XYV`YS[WaQ^]W]Yd^VXXUWUW\TRV`TSXU\T[XcYXVY\Z_Y_X^Ta[[Q[[cZaY[[VUYZ[QTOXM[Zb[WSaU\[YZRVdX_aT[``UUWXWYT\]X^VY\\MZU]f^XXVi_VYdWY\YVUiSUTd]d^`UVW[QY^YUVX_[UVY]Z^`ZZ[bZVX`WW]YYXWV]\```ZUXcTUX]aUZW\ZST_UWZV`VZZaYZbZgYU`[WUb\XWW`XX\\\SXbV_^[]N`S[[[XXQQWWUYUY[\Ud^XXW]TU[^[giX`]]fXUVU`_WR]XWX][]RZ]d[\Q\^Z]\^T[WTTVXXY[ZU\TUZV[[_VV[_[bZR[ZUbUZW^ZP`h[YXMVdaXWX[\_S\S^bV^\^_YVWYXWVY^UXRaYUWU]U[YbXP^[\VaZRWXZ^YV\YXSUZ\U[]eTa]VRSPTZUWWdYT[\\]OQ\ZY]MXX`YOX\RbU\ZYa_QWXWYX\RV\R_U[\^XS]Y]Z_Z[R_SZZYYXThV_Y_^N]WUQVTV[Q^W[RXSa[[VTZX`U]W^XS_W[_\SUM^aVVVb\UXSQUTW[XXa[`]aW\\]ZVVV`\UaVXX\[Z^YZZRaUTcWOOW\_[ZUVUYYYS`^_dPajY_R]U[]T^WZUVW\XUWT__S^Y\]Z`\]RU\VYY`^Xb\YWb[e[XYVgWT]_ZZNVZWUT\WWa]XYVWSYS`S^Z\][`R[X^g[`aTWWdV[[[mPYWSQ[VWT[YX^NVQLdaWieZ`_XP[baX[WYVQW``U[[UUSVUcd^_XQRXk[XRRSiVY[]XRaWZX\V\fbRX]W\STUZXaQ`XYcdNVW^VS[[VSVZaX^X``]aY\TYVSZ_T[bQQTfQa^UWYTWUX\VZ`VcSY_\VeY`^RU\WMSVYP[Y^XTXb[QV`ZTW[_URW]V\dWZRVYU[`YX[WW\^aRO^_TUVZYVY`ZXXWU^\VTS[V\TU]_`\SYZ\aZWX^QXWYRZT\X\NYXU^TSR`XaUReXSRhU\S`U\]S`_]WWX\TZ]aON[]ZVkTUV^RTT]Y[TXW[]YVWRXXWXYOSV[PZZS]VWP`YeZXdWYX[UcXYZ_S\W[YTc`_VTXVTYZY[VcPZZXWaYWR^UQ]`R]YVSZ[WZUP\US\N]\T[PVWUYZW_X\`cVPl`Z\_ZZa[XUYRcX^_UdLTXUTSTUTX\WPQZdY`_]UbT_W^[[_YQY^^V_\S]aTWZ`VUib[XYUXVUYX^OV`g\\Y\][WZXZc[U]]TZVT_U[^V[TVTYRSV^Z\_XW]XWXZT_X`Z]\TYXUYX\Y[c`RQWYWdXcPTg^ZXYYVUY\[WVR\PVT]WRWTV`XVQaT_YZ_W^[ZWTUZTc]WSY]\]LZW[XXV\ZX_TYS]W`a`YZZ]``_RU]caYV_W[WbYRWS[Qb]RUbWbZT][VV]]^YVZ^\hZZaOVXYPX\VbcKSV]`[`VUX`T^^_`dS`YUPU`PRWZ\Ya[\^Zh]`WSU[SYTZ]aWY\ZYa\X[ZUaRSR[[f]VYT^_bUYWWaXNS]ZWWW\VXaSZf_YW\S[_\ZVU[gb_aVcWVXeUTR\R[Y[XTTU[SVX^W]X[WY^RYVTXYX]]ZTXL\VZdUSZSY^WWZZ`^UU^WYXc[\Y`XTYfSVXQ`R__V\bZ_^Z`Q_S\VTV^Y^^X[\WWUX]S_\_Ygb`Y]W^XYZWMWW\[Y`Y[UY_[Z]OT]Za^ZUNeYY[[N``VZ_UXQQZ^^UW]XW]ZSRc\[XRg]WRTRY\XY`a\\^YTVYZ^ZVaYW_Z[Y_ZXVWW\T_YWTVVaXRU^SWbY\dZMSQP_Y^e^U[SZOWRVVb_bP^XOX`]S[YUXa^\\\TST^XO_YR\SXf`V\YfW]VYUXX`UXUVU]SP][\`WbWWb\]Z^Y\XWXbb[Qa]_]_ZW_^U[VXY\[[][XQ_TQW]VXVX`a^WVQ]UQ`\UU^V\X`TQ]\cWXV\Z\^_T`[\RYSZYeXX\a_^OU^XUTXRUYd[`X`W_Y_WU^Z[UR]UaPSYS]QXNTU]QZ^b^eUYW\[QYP[\XWT]UWS_][VRYW]]OdWZ^XX[[WU`XTZX[bYX`cTOVZUUM[VXZUURb\Z\QWbeXVUZ]c[YUZXZc`_WVYZZZ^[O\YV[V^`[eZkcSeTVZ`WYX[c`[X[YPU[W^ZUa^Y_UWZZcVZ]b_]V\XZN^RZY^TUUTXXXea`VT__aYSU\YbXZZXgXRRYY\TVYQSXVbd_Y`^[UTQZWYU`\\TTX_Y]VTQYW\U]YZXX[\XYh]SbY]VYMZVU\QUc\R[XUfQZ^Y^U[WYVTX]SQZUTW^W[XTVWQYYP[X]X\W]U\\[cXRRZVeU[XYTV]\WXWTMXX`WY\_NbWVX[]Y]gVUW\[[W_WUMXW[_OUPeY\VWZ[^VV[YY[\Uh[d_[dT^YXaYX`XS]\fWWT^VYVVYUVVaVSU[ZTgT[_ZXbWZ]UZW\]PW]V_ZV[gU[[S`VV[eVeYVWPYa`ZXY[[XXX`^X\U[[bTUW`^QU_SXX^jRTe^YY[RT_USQY^^VV\ZZX\^X[S^TW]_ZR^ZZZUL`SVTR_]URQWUY][ZRZSe\\_Z[P[[WVRY_Z^ZSYWQVXSXT^V\Wg_`YXV\Z_dYRY^^]]_]X]\[Y^ZX_\[d[[Z_cXcZTVXY[TW[YW[X[Y`Z`VUU]U`UY\TZ^]\Z_Y_dZ`XY]\WYWUaWWY[ZR[U[X\Za]\Y[TY_WbXTUaV\W\RYbWZQXYVY_ZX]]aZ_YbRcQX]kYYYV[YTWa[\RRVYX_V\YQaS_\YZXZ\U[YX[XdW[Y`X_a\Z^^]YY\U[\`UYQXWZ^\Wa`YWUX[WPdYSTWVT`U[f^WXU[XaUUX[N\ZWP_U]\YT[WZVUZ[_Y^_ZVZ[^X]aTXRZ[]\X_VVU]X[X[O]V\ZX\UXY`Z\`[`_SSVpdY][PSTaUYX[[WSX`WVRTab_[^\_QY]]]XP[XWUVWTa[\ZR[ZV[ZQ[]U]SU_[b[PVYUUZRXTc`aRYXVYWVTYYPW]]aNVP[X_^`Q]\_XX\Q^^U[YU\R]\[RX[Yf^X\_cYSSW][[YZU[_X[VXVV]]ZX`VXY\TP[U[T\YTVZR^mT]S^V_[X_ZXV\]VY[[WVTaXT[S\\TSX_X]]_^X^[YR_X[dSY\`XU\]^aZT^i]`[aVWfTWYNWXaXVW\_W]UURe\]]NTZT[Z\VUT[\YZTU][\S[U^Z\WYXTYTYa_VXZ\U\[L\XbSY[YX\QVU]cW[XX`f]`]WV\ZQTY\WZY\[Z[[WT^\^XZ[\\S]Z\Z[XQV]R[YZ\YQWX`VUZbY\XX\YcZ[Z[]\SY[`^UiST\W\dS\\TXQ^R^WZ]`Y_X`QZaY[]ZUaRZZVY\`Y[Xah^c\[bWR^YXcZ`XV[\SX]^]aYZ[\TW\VY]a]U]X\W_WZ]^^\WWXVQVXaSXU]VY[`^[V\V[]_WX]L]Y[aWORZ\W`\]a\V\\XaVVYT_d`Q^__QYZU]W[f`cU_\fY][WWXaXVRZV^\WW[[[`YTYVVbWV]^XYc\U[WT\W\[^`\U^b\SV`de]][PY[VV[`YX\QV[[[YWX^i^SXWgWXYYV\VUZ`XSY_XWT[WX\WWV[W[^]R_f]ZY^TWZ\a`T\TWUZVU_^dT`Y]ZQYZXXbWTf\_XYWYTUVcZQXVTUY]VVWR_T[_ZYVVYV`[X[XYZYT_R_]WT]]][^UVV[RWdSUcZVNYWa\WTX]`YWWVX^TZPWZ`dg^[]R]T[WRTWST^^UNZZ[S\RUUUZ`_WS_YaVX\[\Ue\\`eUY][\XV[OVWU^]QZYYSYbd\]]]TS\^USRXVWVYWVUbUTXTVO]^\S^_Z\SY_YLWXW_\QRZc^RURWbQTRZbWR^a[VWYbZU\XW]YX_RTV[`a[VXX\UWW`ZVYYXRWX_T\ZXWSYUWUa\XZ__R`VZRU[TXWZXUaUV]`TY]TT[XXeQ\T_]a\^UQ^QZUWYQb[XTX_\hXY[fZX]Z`ZZa^ZWVPW\N]Wc`]QZ]SZ]ZcY_S\ZZ\][WR[YZV_X^R\Q\\aX_YXS\UWR`aY[WRU\OYW\^SXSU`RX^\WYSVR[STZ]WQd`\[]aWVYXbVVZ[\X]^QedZ]^WTWZbYZ]YZXgWPVZYcNR_R[UacUaTQaXSZYZS`][_]^[^_\YT`\_eX\]ZWXfW[UeN]`RXYXTR[W`]YUSUY^`^]WP[\Z[^WW[]\^X\\NZ^SZ\YZ`_ZY]Y`V]\_XZ^aX]WYSV]WVpVZ\VSV`YS[VX[WV_[\XX[\\X^W_WcZ]d`Q_R_^\NO[dU[```YX]M_U_XTSYXX`X\e]Z`]\_PUW]RWVYXW`_cYVj_a^`X]XVbY^QYUTZSg[Z_VXURM[cQXY]Y^`TVY^W]SXYU[ZW[][][Z^RVP\WX[YZYZVYa\]]\W\[XRYUVVsX\ZSPZU]Z`[_ZbUW[ed[[TaVRXVXUU[\_X\[XWYNW\WX[\TVVcVWVX[]\WT^XQWYTNY`Y[WXXQaWWRYcZ[a^ZSVY]]]YVXX][^VUZWXU^T_WhWhXXV`a[[[XXWYTYU\X[\]VUXZWMYUWR[a[YWXX`^]`XTQVU_UXX[UXXUUT[WZX[XU\XUR_]T^[cZ_XVZVPNYPU^YYbYZX[XTZZUY^W[QXQYW[U\Y\X[`XSUaWbS]][bX[RbTTVZU\YZa]]X\]Z^W^Z\^XZWZY\ZVXa]Y]YT`_^`UWZYT]ZTSX]Y\SU\ZZcVW^WS\X^cXOaYY[P_Z^^XUXZ\W]]dXa\ad[VY\Y`aTV^VRZR]W[_YVZYXWgWWWXVXWfX[WZXWWcYX^Ya^cTcZ]PdZQWX]\[Y^`UX]aVPZXX\XP\XbU\`^\`\YS\UR`VV\\`]S^^c][]Y[]SWe[_S]YaSV[TY[UR`[^V\VKXXU^XVXZX]Q[]\[]\]Y[UWY\Ta_[[[W^XWUOYWUV`aRYaXUW[RV[S[[]OZRTcNZXU`cVQQ[hWaVYT`\bSSKPVZVVnb^ZS`aWWYZaT_WbV__^Qa\c[YdSZTTY^XTQY[[[_^TPXU^S[^\WY^d\\ZZZ[][YhZX\aRYXVUagZ]ZW_^V]TWY\YZ^Ta\`XZZWS\SYZSgZ^XZa[UR\_WTU]Y]S]]TZ\`]ZVZ\VVa[ZU]]^^\Q]QUXX\UVV]_V\YQ^VPXRVIUZ^ZXZ^[bc[SYLTZ^]lcZ[\XWVPe\QR^X]TW[Wc[`\WSVaXYW\TfVSTUUhVZZYY][MW[V_`UX]`\\Z_]PY\XXVZZZTQ\Z[U^[WZPOT_U[TX\`[_XT_cT`]bY]W[[\Y\_TSXYV`\_[^Y_UgbWUdXTQYXVk[_Z]O^]ZVaT_g]UW\\[Y\`Z_RYXWUhX`^S\Zc`SXXV[YUST]`[Y[S\W`gZZUS]]^ZVdYaZSTXX\PR]VW^X[\]acO_ZXZ]UZVVU`TU_[SW]\^WfPUTY[\YV`UYb]U\\T[XVSY_iW[WW^\WXV]bXQ]`V\VRU^Z^_\[UXWY]SWWXea`Y^TVVZm]XX]ZTl]XXXdYXfYaUQUZRWWcS_R]VMXX]VYR]WZ`bSVaOWZRZ[XUURdQX^daXVZTcYccWYXZ]WWc[]WZ[Y^ZZW_XY]YUbY^SXQ_[Q\]Ra[WQVcS`WfWUVSY]XeYXZV[R^ZV^^ZZWZYY^SaYW]Wc_QT[S[UWVWVgY``[N[aVW[]Z\\_W^`SX_Ya_[XZY`bRYRWZXXWYZ[^W[^[VWY[_WY^TWYV_OTS^YV[_`a]`^ZZ]dW^SXYWe\P_Ug[VWVZU]\gSVS_VZVXdRQ\\ZUV[\VSaX^\\gZR_W_\X[Z_a^SV\c\W\ZY[[UOd[^Z]\^YOZePa\^VZX[O[YTUYXYYa]]RU_W``[]UUZT\cYS[YV][YVRY][VQVV^WaT\\_a[Z\bPZM[STXUR\SY[U\[][[SR^^VWY_VVSQRW[X]^YR`cUWg[[[RRZ_Y]_\WU_N[[WPWYTVU^ZVWYeYW]\[UST[WWMYZSTYY\UVXUbSYX\eZ^\WZZV[TUQZTZZT\Y`^YWRZVdYX\[g`^T[XaVX\T`Z[TVS[^g]\cZ[U]WTeRVbXVXZ`]`XW[VZ[WWXXZ`[_XU\XVZ\V]ZU\ZN]^TXdVXV]]Y_[W[T_YYXU^SYYVVT_]WWjXc\WVWZQW[RWX^W_`TU[RS`]WTYaXZ[aU\[aV`d\X^aYW__Z`Y^`bdW^UWYWZYN^TiTTZVRa__\]\`[RXU\W^][[QcbYVZ`YZ`^XUSXS\YVrTTQ[NX^XV\_^YN_ZV`fWWTR]XWbVW[^XRV]XZmZY[]_XdeSXUUYXR`XX]ZUZVU]ZR\X[`YSY^UYkYOSR\WUQQXS]_XW\d[U]Z[WVW\`^W][[S`dYXXWZZcW]K[UZ_TY\UZW_bZ\W\b[ZhY]YY\UgY]\_\YY`U\Z_OV\U^[ZX[U\ZZ\WV][\[Re[[__ZTZXcc]UUaZW\XSYd^WUU\X[f^Q]U^_TV[Xa]VXWY]]QX]SbWSXZWTY]Z[Z[][][aU_YUb]XZXZ_[Zd]TQ]TWZ`V\]X]_ZjUXVWV`UXZV[e]Z_^^]^W^YVUW_OYR\ZWW_UY\]Y\UX^TSTY[W\[UUR]h]]^O]^^VTXX\U][WXQUUS^X[Xc``\W[V\\\R]a\YXW\YY]YTa_bWZRZT_bWW\aRZS^YSRW^V^ZaV_[XaVZT]QNVZYV\RYXRZQVV[bTWU[WTYYWY^\R_P_edRZ\[^[Z[[XTh\]ZYZVQW][\YcZX\[U\Q]V[Y\R[XYVY`[^]\TaYWVe^YTZWW]]WY_\YXU\Z^Y[]_Y^^UX]VXU`WZ\aU^`^YWV[`V]XVX^SYY\SWX[]]c`]U^^YVZV[UUU[UY]\ZY]Z]]YS[]^UcUP]Y[VYW\aVUU^YTZ_VXW\V[ZXTYQ[QW^\WYUZ\UUUZXZ\ZXZ]XZ`bT]X^aT`NV^`XYUZYV^XdX^X[_^[R[RXbZ`\YVWWVbUVVY\bZYU\SWSY`\W_XUZV^U[[_]Xc^US^Z\YTYXWZZ[WS^[\ZQYTXKY[RSVTVX\SX]YX[XXcY]eUZUU^\^a[Z\\\`^WTaVX_[^]U\]Z`aZ[W[T[SY\\]dXVW_U[]Va\S_ZUR\W^VSYVRa\WWT]ZY_eb^RZQWVUTWU[PX[X\Ye^VVWNXd\Z[^_\VWVUTW^YUXZXRW]UTTW\\_]QVXZVVYa^VYVYZ[UVU]X`UTUU\XO\TY[Y`VZZaZX[^]ZTU_\_ZYXW_\^a_YZ[W\TY]_RVWYXRffTZUXc`[Ug^^UW`TZcUYc]P\\ZUUUUQW\WcWPbTY[^^SZUT\[\VZXX`\OU[RZRW]W``WUTXTXWV[\[[WX^WaUQTWgWc\T\SSXb`XZ^]^]ZW__]UXR]Z\YXY^`TSgVa\a]VUZXS^ZU[`YX]^X^][b\U^]YUU_RQ\Z[\]\aYV[UT[S\c`[YbTYNS\QW][YWW]XRS[SV\T_Y\^[]WSc[Y^Zai\RVZWVVRVUhTX[KY][T\VXOdbc]\P]VYUTVV^]V]XU^]XWWSYX`caVX[U\RZ\VZ\TWSY[MZY]VVRch[[VQVYW[Z\][]\hXVWY^R[YPR\VQZ^XWWWaZVUY[WUhMk_]UVUUTTVWZYXT\bRWaRYWZSZWOZTaWXYZ\W[_X_ZSganUbUYWY\V[_]XaUYVTWXWVMWZVX^[YZYaWT]ZOYTUfR[]W[hPZUT_\[YZX]V^ZSZVYRT\b^XUV]_T[SYWX[U\\UWWUSYeX]V^QWUNbaNe[VVZZ[XZZ]VXVUU]bQUTRVXZ[YR^XS]ZPXWX]VXYUO^a[Z_^T[ZY[TXYXWVVYTXV]Y_\fcZSa^YVTc`TYYZU[UYW\bT^ZbYT^gVZ[[`XY\WW_]VYZZZa[\ZZZZVYZ]TVZ]UYQVYV[UbVVSa`e`_\X]NQ^U\VVd]YZTTX]^]lSXZ]YViXaXdX]X[V[_]iPYVXV^NXU]\\g[XR^Q^[ZTUV\]PbYViXWY_W^_[b\]aW\`XSSY\YVXYY\bX^XQcQV\S\k][KR]NbNMSWNU][W`aT]XQOYY^_WScY^Ucb`[Yg\\UXk_[YW\`VVUVYXUX][Sd^ZZV^_RYX^Q[XVXZ_]Se`VRVPUVdeVTXT]UYYY`aX[ZXVZQXWNUY^[Wd]L[[bMQ`X[^[^g`XUc[ZZZeQ\[^R`X_XaX`aa`]W\X]WUXYVZ\UZ[_ZVS\ZOVQ`a[d\_SSX\Y`ZTbaTgS\TVQW\_ZkdUZV_aY[XaPY[PRYfU[TZ[TTWYNR\^Z][PJ]SZWb\Z\U[U]QWZYU[YWYNTZ[YUWRYZZTSTXQZYRbWdZUXY[\U]P`]XTRY[SXRSfUT_\]SYTYUO\[YNVS`_TY^VVaWXZ`^YU_YWU[Y]SXeWXVZ`ZU^[YU\]X\][OXVTV]\SZ\YR[[Z]QZ]\U\U]abSXV[V^YUZUX[bZS_`VUWTX^VZTV[[ZWV[[YT^WX[[UVVWZTb[X]WVR`a^YU[TUYS_[USY[ZR\VZ]W]`V^TLS[VTT^_^\TY\UYZ^Y`SYQSUW\ZY[S\]YQZWTXRZUY_WXZZYZbXY\XR_W[WZU^Z^WW]b\XQ^L[[_VVTVXTZX^[[c^^WTV^UVaV\c_cZLYY[T^QYPb\TWfWST]XW[QVSTWYXWYXTV^SUbUZ_]WVbXP]\WS\^^S`Y[U]\ZV]YYPZYRTVTTUW]WYV`[f]]ZQ\X_VeV[YYZXP`YQ[ZXd_X^[a]VVU[WZSTUYY_b[WRYZW`ZVbY`UTXS`YTU[XYYT`PQXe]TUU^T^]ZSbQQ[`WcWZ\V]YSWXZZ[U[SVUaTSa]YZZQ`cZWXTZQYT_Vf`VWZYW_YdiRX_WS]YX^ZWZ[]XZY[[XWYSZ]Y[Y^YV[cVTZT]VUVaU_WV\_RRYTY[b`\^ZRX_WYXVcRPe[\]^Z^ad]YVXWT][S^Vbh\SYXW]`XWWYSdX[`YVX[]cZ`^eXYXPZTYTZX]XYSZTYUWSaVU]]ZZ^^ZWYZ\NW]XXVUUXSST]XS[O[WbZY[W`WXZ_S[VZ]`ZTWV[_YWU[fWXWWXSST]YfZ_PQQ]SS]\WVaYUWTW`X]WbS\YYUU[X[X]^W]eQTRWYVY]X\ZW`XR`[Y`_ST\U`S[]WUPZ__[\RV[T[[UUWZ\_`WQ`Y^\U[^YTZYZYOVZ^ZYZQWQbWZWWc]\ZZfQ]XWV^NYXZYSVPW]`Ya[UTT\SX\_OccYbZ\[Z]XT_VUVUUT]W`W`T[YW]WSZ]W[dXUMTW`abWXQZ\XS^ZN[]\XM_[V``UcdV]RRWaZaWY[T`\WVU[[^ZdVZRW\YX^b[QVSY_[UTYPVUPUT[YXW`_a]W[X\\TRYSO]^MXWX\h^SZZ\^]]dU`\W][\dXYZWVTX[YZR_X^VU]U[UV\ZYXMV[[ZUZ[Z`YWVWjVVW\TXTYRWTe]WVUbSZYZpU_`b^S\_USRMaWRoVdZ[XT[`SUQ_^[YX\VWdmR\[^ZUVTRYb_YTTSTVVXWU`OSZ^R\UU\[\_[WXY_Y[U[YW`_VVU[Y][[]N_ZTU_ZUVXUdXYWWZdVY]U[[b^^V[W_V_YSX`Sa\hWZVWNaXU]VT_cTYYXZ\`[[_h_[\\_ZYV\bW[]RYYXT\X[W_\\\hd`Q[ZRS]^_WWU]`\]ZZ]c^^hQYXXe\ZVg^X]T[XTY]^cV\TUX[Y_Y[[\\U[`ZXjXYVX^aX[XSaVY[\XUUeZX[_SVVe]U_a]^XUZebXU_Z^cd[UX_[V`YcZ\ZY[bb]\SV`VRUWZZYZX][a]S^\]`V]ZZWeVZX[W[^OS[aZW\`]T`UPZeU_We]X\UR]R_ZY`dYV^bPSX`WVYUXOUa[Z`UZ^Y\VU]\ZYWYYdRZX[WZ\cVWT^XURUW^^YZ[c^ZVa\`T]WY\Y[[\X\VSQYZUYSZ^bX[\ZbR]UXSZWUV]ea^ZeN^aW[WTUXc_\dUY[\W[^`UYaW[]^]fVW^P^U[XXUZ^a\aWKU`[UVW^`[gS[WY[WX`WaZOVbU^_a]X_c^]WUQ^[_RXT]U`^Y^U[ZNaXSZXWX[\XbYWXWZ]MY[[[W^UR]]eQea\aU\\]SVPZVWW[^WX\V[bSW`U^\_\U_S\X\YXVZ^YQLSV]h^cO[U[ZTa[`TWSX^ZQSY]b\[VVdY[eVTN[ZUXU\R[Vg[\\Y[T\aYVZ[XSaa[Z_\_UXWV]VZTT`]`Xa_\TTaZSaWU]ZX[UZ_[RUX[^X]^WTZTV^W\_^^Zk^]`]LVUUV[Z[VYUR[[^T^ZY[`R[PY[YXaf_Y^QVUPcX\W]YWZcbZfS`_]XZWVYUY]^aVYb`X]W\RW^ZZY[e\Y^RVPb`XO^[[VUaXeW]^YPZ[X\SS_V]Y`ZURZ]YO^RZVZQ[VPWZQ\PTVZ\]X\ZYVZVc]U\UWVb[ZTW]Y^[[_SRWX_WQ\OVO]WYa``R[WTYM\YYVWUT]]W[ZeUS\\bYWRWSSZ]QTS\TZWZUPZ_X\[YUZTT\Xgd_]_Ua\X\XPV^Y][_W]ZZ[XW^[\dWZ^TR_ZS^aWS[[V[b[VU\][U[bVRXYaU`_aR\YYYW]][`YUI^V^QQOWVZRU\TRXNZeO[Z\WcWZV\VRb]V`Xa`U`V^X_PJT]XW]bR\fS__`\aZNTMZ`^VOVHZ\U[\X]XW\OXYbXXWZZ\aUQdU[VZaZY^\^\RQS^aYXY_]Z]Wf]bZUZYRYXUUQ\^]_ZRaTaXT[VW^XW^hVJg]YWVTV^WYdQV`TQ^[\\SR]^^RVb`Y\f`]RRWKR[[WLZ[ZWRQkccVVdRRQYaQTbeVZXX`a]Q^ZYYYYYT_Wb^Oa^^W[Z``]W^ZNZ^QX^QYYSVRZa]X]\VU^dZ\Q]SVU^ZM]`cYbUSgRS^W[^STb[dZ\[YYXN`XUha^Ua^]]UfQaRMSVV\SgX`dTS]RZ^NUWK`V_YX`gRVPXYR]SQWbZXUT`eacZ]``PdTfPRJ`M_a^XQXXd`[]PWW_\VXRT[cZ]f\ZZ]UTfShi^ZaSP\S[M\SX]][[XTXZa[]W^aUW^XQ\]TdPO\dWSOYLTWUXK`jWVX][eSabX^ZPZWSYX_Z]VYY\YZRbWYU\W`ai^P]\V]QVWVUhQe_aXS^V]UdcbZNe]]V]`ZYV[S\cW^X`O_`ZUi^YZ[Y\XZTSQXU\\aZiU_\W^`U^W`_RS_X]_WT[YX_[ZZ[PlZbXWW`ZWZRfdX[WPNT^[c[XUZUcSZZgXU`_SWM]Z\uT\W^XR_bXb_fUXWZ[RZe[WW^P[VW^]Vb`[V[fTXXT[[W\YS[XTT\bUU_fd_\W]UXW\]P_XV^][Y^dXX\_X[\ZM\\]_W_Y[YW_]W]Z_YW^VZbUTdYYWY\Y]]W^YQWe\O__VW\WY\YW\ZXRX[hV^TZVaZ\XQQ`ZWT[fRVU\WP\[U\[U]L\WX_WZY^O\WW\X\RVOWa[bSSY[WXR[S]Xb\[V_]][Y^Y[[X]_YWT^^[dU_VVUTXUVTd^\daSYUaXZWQ^_[YaWUgY]aUW\X\YUUcXV]]\W[c[YYcS]]WWaT`M^[T]WaXT\`[]`UYVWYW\YY^WXYRaVVcZ\\TYYc]O]\]UYVW[aX[[^T_X]`YYZ]_VaS[VUZXaW[X^cZ[Y[aWS`WUYY\[VeTZ[a_WU^[TbXVRXXUZV]ZTXYgYRX[WY\X\ZTW`Z]bY_Y]UZYUW]R^X^W[aW[S]^[\WZSXUYZ\][Y^U^\`ZYe[UZbUZX]ZeW_bVWZhWi[_T_kZ]UWXU[[[UWTXb\XVVOd]RUZZYU[WW^RbfWa]Z[XUcZaZ[VY\V``Z]X]_[SY[]V_Y[\STSY\aY]]`_ZZ\X\O]UZZVTbRWTSY[[d_[[`OiXX``aWUV\UbV^UUQV]^^`VXXQ\ZVT__YWXZ[ZW[[\\`[^WZZ]RQTW_ScWU^T]RY[UYVZYZ_WX`habhZ[WVPRb`]]YY[WU[S[fYRTV\WMR^c\SRVRX[^VTW_X\P[\TZ_T^W[`XVQYZRYWX[UOh\V_]]`Z]a[T[V^\_YZ[bVUQ\ZXZ_WWYXZjVPU[]XTZXaXc_URUWR\ZTZ]ZWT`Z[\X^Z\\]YVZVYW`bWR^]V\^TZV_VVd_Yd]]\Z`]ST[VZ[ZW\aXZ_TX[TTY^[SWg\XYUdb\^YX]d[ZWXVU[]X^XT[R^VVRV`ZTW\^iS[^VS^R`ZZ\Z\e]aPZMZ_a_a`XW^WaU_Ta`XY\W_^T\N\UZbbTZWb^TYVhQ[ZYUWSW^aVV\XaaP[SQK[WRZ]bMZ^WSS_[WVZYOc[S_YT[Xd]T\QZZXRmNUWUXW^M_XNbQ`V_XPPYQ]ZZaZN\XTXU]cX_^^XXYTZYa]ZZZWVY[\ZXXY[[Y\`U[]_`TTXZ]\WVe]_XW[^Q`UY^_da`d`VV[X^ViZ_\IUZ^`ZRVNW_ZYQX\WTY]W_]XX\Yc]WRWTX_W[ZYR[PXR]WXXWUZUXTTX[[U\TYUTY\[U\X^VYX\]]\ZV[^R[RRU\UXYXZRdTUaQU\Y^W\XV^^cWVdQWmX^WV`bVXYYZZY\YZZ_ZTS_XRNY_YQTTYSSWURRcXWXV\\NUUYRbXX\`VS`ST`\f_ZX]Y^X[b]NUZadWcX_Z[X\R[U\^TU\YV^XZWSU_[VbVXc\[ZYUee[X^W`XbZbZ[\^[\ZXW[a_\SYdW[aXZ`TVZS]Y_\WW]X\i]SVWZYO_Y[\WdZ^YdY[ZWXTbZcajWdSRU]`cTad^K[V[uY[``cZ`VhR\V]\Z]bZWXb[\\OU]X^fZVeW^TT\OWXYYZ`POT[d`][\L`WVfUXWTRWXU`caXbWWYYXaPYXebaSU[]bXZWW[\S]WaT]WZbWfX]g^m\YYY]X`TRa``Y[ZXYVJ[]\X_S`P\RZYbWZ[UYU^\[SS\RPZTZZeT_VUWZ_Y[Y_YfXYT[_WSVTTUXXY^VV^V]NU`cX\V[VW[UZ`__[[`[]Ndg]UUUXbTcVY[h^^\X[^^U]NjYXaZW\_]`]bVW\VT^Z^iY]YWc[WXYZaXY]ZYXWXZTZ]SS`W]Z^U`Y\b\[Zae[aiWcO[_W^O\[dZ]`Xa`aZ[\\QXZWa]dZZYU]\^UbYYW\]Y^\X`\YQXXYQa[UVOaY[[TWT\QW_R[`\X[`]NUXdYUZW^\[YXY`YT`RS]XWZUT\\TWUd]W_TY`TUSUYa[]\WVXZUTcZZ]Y[bW]bZ_ZTX\\\PaV`XY[ZX\^Z^aZ^[X\XY]\ZYRS`NZZbW^ZYY\V[[ST\VSXXS\`\]`OZ[_aZY[]YTO[YZO`^PYYV[UY[^YU]X\[_WS`[UYVUVa\aY_P[TZ[YY^ZV]VY]\X_]^\TYVU\_]ZWVW]cRV[TY^cQZ[X]a^XU]Y[_\RUU[cVT\[TP^XYZXZ^\[ZcXZX[XeYZ_Y[XUaPX[W\V\]TYaQ`VXUZXZZ[`]RRUTV][ab\ZZ\XS[_SW[c\W[X^YWZ\YXZZfW\[XU]Y[]RV[XWW[UWY[[ZZWXYZ\_XXTZXZUbS\[\_XUSXY`YR[dZW_WcYYY]]V_]_Y[UUV_\^`^cVbXeV[VVVTU^\e]]^[\^R\RR^[WXT][XXcYW_[V^Y\PSTXTSZWY[]XU_cYY]XU[^VXW^b]X[Ze\SOXZ`WRU_[^YRV^UTY`WZVWYXZXZZaU_\S_[T^[`Ya[U[_UUXUV^Y\]SZ^XZ_Y_YX[`XVVZZWTS`TdY^hQTV_]_d_de\ZYX]WYWZUY[UV^\XV^ZYW`VRV\\UZaiYWWXWVUY\_]^XZVTWR]VT_Y_Z[W[^YXQZW[^_UX]]SY\X``c[QZ\YX_W^X[]UV\\YRYRQ\Y[X_bSUZ^[YXW_^XZWXU[[WXc\[\[[__bZXXd][X^^cZ[VcXZecT_]U^U]ZebZYcZ]SV[XOgSZVVXQZ_`WTcTVZ_^S^ZZU^S^]U\XY][ZVaYWZTX^[YYZ]U^Y\^_XQU`XZ\U]aXVUW[VRY\abm^YWSUZ[XY[aWTVYZT[Y[^b]WW^_UY_XZTX_[ZUZ`e^U`\\^W]`W\V^^WW]\TT]_Y[]f\UZd]_aS^P\iaZ\ZRQb_ZV\aZUVZcX[[V[U\_a\_mNXc\MdWb^^[WRVQZ\Z]\PXUYXXa\Z_V[U[UaW]VdWaVRTXYkUZXZ]^^[RYVQXSXUYW[[_X[PR\ZX[aSY`\bYWQ^RZ]^]UcWZbfYZ\VZ\Q\VY[Y\\YT_[[V^`\[Z`]VUXY[`ZYZWYYTU\P\[QPZU_dTQ_SY`^ZSVYVa]OYWV_X\QXW\`cYcVYRVY`YQWYX[ZYXSXS]XV^WXUZW[\[U]UeTVV^WVYZY]WV\][YYZ\]N\XU[W`_`aXW[YYWdXT]]_bXVYVZ_Yg\[\`[XbVVV\`]]SS[^`ZbbZ[^dVZN^[VUY\\[WZ]XTYZTWZ\WVc\\[[T]\`WX]]S^`_VTNU\Z\RZYWUWSYZ]VU[`VV_]\bX\\QXjWaYaPZZ\\_\]]d[eWW[\P\XYSY^UZ[[_^YbUZ\[ZTSZ\VW^Y^eYT`R\f\^X^[]W^U_gVQfUU^_YU[[ZVT\^W][]VXZ]RWZPZYPf[YX[YcY\ULVZWke\Z\]^\U\ZbXURUT`WphQTXWaZZX\b\V__WP^VSPYYZYTZX\\Y]XRRXTXa`R[WUSYWZS\[XRVTYUWU[\\^\WX`ea\U_[XVXbZVZWZUPRV[X_\YY[R\]WYSRXYYUYZYQaZaZU_W^a][c_WT^ZUUZ^WZ^VcadaTWRXXXOY]][bY^\X\VT_X`]X[VX_dUWZ]QcY\YWVVWQ[TSTdVdaWWX`W[X[\ZR[RSU_T`XUYVWTScTY^YZR][ZW\gWS^`UbXd_[\V\ZUb[UVXXXV^W__^VXZZ\`]U_S`XXXVTX[VZ[[S][^b^ZSaa^ZYRS\bMXVVVYe[Z\PNQYRZRYVYfZZdN[SW[`TRUlXSU_USXbTT[SQYTVZZVaVWZYSXY]]WX]UUY^Vi]a][QYd[ZVZbU\R[Y[^c[\V`ZR\Q`_UZ[\VTeXWY\Z\VVQU[V\SVNZQW\YVSX^aKaSWPg\]`XgSXRQ[W`WaZUXYYY]X]WVZVb^^ZRQ_RNS`S]\aUZ\^UT^]WR\ZX^VSb[]SY]PZ^WXYR[bX^XRc\[Z[^ScWcVUbW_W[\UU\YSURYTc\YZRVU\UVU_\[NZXV[`WZ\V^W[OU^VZYSR^^W^aX`XWJV`[Xk^YeX]QX[V`fWY]]_^T[RbWV\Y[Y^WVSUN^YVRXRT[X_PW^aTR^NUaU]YT[Z^[TUZ]W[[aW_TTRZh[V^WY^XYV\NV\^b\ZYfZX]c[[Y[^W\YZeWRfaTVW_[ZXfPW\__\a]`Xg\VXb\ZZ_Vc^ZRYXbRT]ST][]`SZQPY\WYdINT]WbMTTWXVYXdQ\mO^S]\RWOZUY^[XYTXX]P``\_^RIXcdYT[^K^a^]VWaVVYZNWTR[fS\XTVZY`WVZ^XXYb\\Y]SY[WX]ZX\bX__WWRWVXXZYWTYV^VWX\\\XR\XYVXVWc`X]`Z^U[ZU]SV\P_cZ^a[YUTXSccWS_YWW`Z\S\W[VaTYY\aWWW^X]_\_[W[YZcN\TTU]ZXZYaSXVZcX]VZ[SRY^ZYU\UY^Q`RX^\WRS]ZM^[W]eV[`^WU`]]W^\Y__OZ[[a]VW]eTRVZUZT\SV[Z_[X^]VXYUWWZY\WZSaZ]X\YYVaeQWVXS\UZPY]U]^Z`XQeTT_ZZZ[\WV[aWZXY[ZQ\aUUXXS\R`\VaY\\ZTWTZVXXeSZW[MSYZZRWZ`\[ZUeR]SS[eg[Z\RS_ZT[XfUW^ZX]YZWZu]YX^^^QXWZYVbZWYRXVY[[_XV]\WVUWZ[[[W\Y[[]RS]UX`[_Z_V^WUXUYYZ[ZZcaSUVRTX_^XUUZWVVh^\XZ[fZX[YZ`TZUa\fTWZXY_YTSVVVXXSYZ]XVYZObgW\TVT_Z[XW\SVW]U\UdYXYU[a^WYWYZWaWUU\Y\ZP`V]\ZZQSbXYSXWX[aXX[WWXXX]Z^V\Y\TXVSU]]^SXU\[Y]\SXYdZ[Ye[XUZVY][ZZ\U]Z^_b[XXZ[WZV_XSbZ[]W[XWXVV`Xb[\UY^PUORYZbV^U]\\\V[[U[]d^T^XXXX]S^aYXY]W^VYX]RUQePU^c\]W`UVXaU_[]YZW^ZZYWWY^Z^U^^^WXWa_ZYV^UTY[Z[X_ZUTT_^[]a\RYTYWb[YTXZXUTWU\UXW`W_TWWQ^YU[TSa^WP]ZW[YXRRa`U[^ZX[XQ\]YVVfVTYZZV_^YZ]]VWaSYTb[VbUW[S[gWUZ[WUQZ]\ZXXKYYVU[W[XV\WXR^WXc^UYYQcT^_W]TVUWWUZXZW\PRZSR\U^T_YZZXP]VWYhV_^f\]YUW^Y]X_XT[XTZZ[[^]YT[VZUVViWa\\[WX\]XW]^Z_N]S[a^VeT_TUYXT\Z][U^UX[XX]RS\W[WU[W]WY^_\ZWU\Y[bS\[`WWRWUTZUcYSYW^aX]WZV^VUgT[^_V\ZaTgSdY]cYXZW^bWXVYT_`UkbaV][YT]YW\YX\[hbZ^WXeTa]^Z[VVYY]ZUTRVTWZYTS]XTZTPZWV_X\Yc^][RQTUW]XUTYSR]WYRcUZTUVU^[\[ZcQ\ZW]ehYTU]\VWY\W`c]ZZVW^bUS[XX]SYW\YQZVV_ZZ\VQWOaUWPVdY\YWY^Ui^Wc]]\YRXi]`^TX^[[[W[^\^bPZbVOUejT[[[XUfahYfX]\[ZX\SdY]Y`SW\^VT]XdW[ZTQXVV\VWZdX]b`RU\Ve]I]T^Y\V^N`]]ZU`XXXcZaXXTkbW^[\TQcVUdH]V[WZcZ^\[SUNgTSTbX\^W^QcO_dS]ZVY^RKdT^VY\W[ZTQM\`PPd^YWgh]YVYW^Z^oY^[Z\_XX[ZZeQdYf[SY\UR\SPaZT`[\TWWXXh[^\d_TPXQWZQ_gbWYWY[_SZ`bXX\TV[nN\_[YlYZ[enS_X[f]W\cT_R_XYcOY2bXOX][b^YVV_c\b^TUZe__[cPgSSlTRWUVW\bWU]`]\aO[ZVYX_\W]U_ZX`_gbqZU\Z][ZSm]VbKUaaXW\[^WVVSUYaYS\[\V]]fZX\X_WX\V\XfiUYVRXY[f_VQ`ZVVUXY^\c]XU[UWcbXVZ^Q_UVTZVN_TQaY\\VZ\\Q]Y\SQXZXcQ[\e[W^^SYT^bTR\RST\Y[rcTeSXTWZZU_dYV\Z^_TSQ^Z_`YVVaWQVRZYU[\UMYV^VUe]ZZ[YZfXTUUW]U[ZS`]UYW_RW[SX[V`XZXdN^SbdYZ[W_PUZW]VSW]ZZVePbYURYZ^_VTXWXR[[^a]VXWX[T`[WTYTbY][^TXWWU]TZXYXZYWSYaV]YR[XRh[eZ_cW_ZZ\]W^SmZU_[TV\_W\XVaYRaZX_UaXl_]XSZ[]W^\Z]Ze\_]_[\\XT[V_SRWZX_WWPT[WRXYP^[RT[___dYSbSZYe]U_]^T[TcZbXO_OP\S`^X^TY]U_XZ\UZ]_]db`[\^Y^[UXT\[\QYMVVeVQaYc]\ViOQT^`\]WUVV\^\XWV[VRWcVMVYQVX`YbYZdXZOYYYX^WPXa[\`Ya\YaWW\ZT[X[\_aY[VXW^[_UZYWV[WY]XU`\XUZTT]U_`cPW[X\]V[]RZZ[VURZYV\SU]^^^ZXa\\aU`ZQ\VYVQWWZXaV_WP\]RTVTaZXPY\aW\]XSQ]ZZZ\YUUUd\]W_WTUTUVVXaW^kYWPdYU^kUSY[Q[ZU[OZ_\cOb`Q[Y_Z]\ZfaX_Y\OhUNaZTZ][[`XbW^RaWX_[Z_Z^WPb^WSV`Z\[\P\XY_VZ[^WbRTaRXWb^_XeVc\_^V^YVXUXaU`XWPSd[XV\V]^RV`ZWX]nW^S[YY\YS_WXWP]Q[X_\X_h]a]XX_YU]XS`_WXZ[WWXU_XZe\XSW\\a^_[YSV^^QcYT[aY\Ve\[WSY\V]O`S^XU\acQYU`]\aZW\X`_c^VW\W[[\`TaQQXTTTZTXbUYWU[baUVWQY^XZfW]WVUTYYaX_Z]T^Z^W[XUSS\Wb[c[[W\eV\YZX[U^[US\YZ_UfYPYV[Z\cVeZXTW^S[UO[bZYaUYWf]YZ]cZYSZWYWXU^\]ZVTX]YZXYRjaZWS`SNYXYWaTh[[\YZSXZSWY[TVWSWTTVa[X^bUTTWVaV\W[]^SU_]\WU]WWZc_ZYWZSZYl[^aTW[X\RTYYZZ\c]U\ZX]YY[V]V[Z[UZ^X[ZSTPZ[cZ\S]UTZ]WVXTbQRWZ[QY\SQ[V[_V[XVWcY^ZO[V]VW]`]ZQYUZ]^[YUT]V]S]ZZ[PXedb[XYWSU`^[UdY_^V]^ZSZ\]^TXTaY_Y^^UUbZ[a[[WYWZZWYVX]b[_\]XUWYZ_]]\\YZ_X]QY^S[U[Y]W\W^cYX^_ZV[\Z]Y[VQOZ]X]YVXXXZVTTZV]^_XXTWVXZW\^Sb`XZY^`_`XY^`TYVWWb`VXW\YXY[[U][cd\MZW\S``[WZZ\\b\XYYU[W\Ua`Z[RQXdcS\jWTZXU\_[_TVUaXY\UWSZT]WVXV[]ZY^[ZYTZUfT[`QWU[YXYVa\ZZbSbS]Y]Z[]ZWZYSR^b[XPY[WY`TUYYY[\ZNTU_]Tba\^W`UUUZ[`ZWY\U[_aYWWZ\a\`cZa`S_ZW[]\YWX\`]PZV_Y`c_d]RXW[_Y^YU]`XbXa]T`T\^S_]__Y]\ZSZVW^`[]XV[YVdVPcSV_\`WVaS^^YYUXa^]YUT[]XXZWVYYQ]LYWV[X\aSZ]__P\\f^VRS_W]VNVS\^_ZT\XYUYZRWYWVTYSXdZZ^XX`aW`SXXY\TeUg]Y]W^[]aTRYWSUZNYUZV[RQZ^c^XZY\]TW^aVYYa\TY_YV]aYUYYOTVU_XY[`\a_\`VYhObR][\TZZZZ]\ZSVhZPXP[[]\T\XZc]U^WVZXb]]US_\VRZWXPW`Z_UWZMZ][\STV^]\`S_\\ZZT[a]^R_bfdZX`ZXYOY[YaLU\W[WXVYXTX\\U]OVOYVTX`UTbZRU^]XUd]WgZVZTUW`c]Y_\]Wc]QU[VVYZXSXbVVSYUZTc[`a[VaR]Z^[aTWSXZP_PZe]VbTZaZ\PUX^`YZQTW[]dXS\VWQZ\W]X_Yc\VYW_VQc^ZPWWQVQU\f[cTYaWZ_XkT`T^[a_]XbNZcbXRb_[][\TYUZV\TX^XcY\TZXd]ZNWZWVe[TYXZZ\XXR\b]\Z^UYXWXWZZW^ZX[Uaf_UW]WYaS[Y]VYS\RYX]gTR\^V][a]\UV^_`XSTc`XTXkW_YXaVedUU]_V[S][_PY^TWcZSVZ\ZdW^YXYZVa^]T[Y_We]YUUcU_TZ[]cY[W[YcX^VY^W`V]W[`]^ZW^_]TcYcMZLW^O[UU^Wb]STTZYTYUUZaWX\b]X^]UVd_VV[V]V][YZ^U^YWWQ`WhWeZZZaXahV`_^abWUa^bd_VY^[X[[RZVVS\RY\XWbY`a\V_[gZWV\`XX[]UVUXW^UX[`V]YY^\[TXXUTPX_Z[[TZW`SWYa]T]Z^^WWbZV]QZ[[\UV\ZYWXYZ`cUZW\RYYVN^Q[ZYXVSXbX[Z]cebTX_VZY^\][_]^bZ]ZZdTXT_`ZW\TYXZa__VZ^]T_aVaX_[ZW^TVZY`_c`dVRVW]\Yc]WZ]ZV[X]d^S^RQU]]XcS\XZ]_VW_\aW_\^VWeWY[]]XZW_WVUMcb\W_T\S[_X^VWXW[\ZWZUUVf]]]X_][ZW\SYVO`V]\YV_W_[\PW]]RUYXQZW[YVZQe]Y[VZ^_ZZbN]RTXW\X][VXYXY[`ZZbVbYTZ\_UPWTYY[VZ_^Z`RZZY]Z[W][YV\U_OXQY^TYXWZZZ\\f_[X[caVXTR[UTY_\Z^U]UZYW[[Z^[cNbX]ZOY\[^RXX^WYbYWX\abX`X`_b[UT\TYWY^f]UU]WUWZXV[YU`R\QXQ_Z]V[YZZZd[XdWU`YZ`N^S\WY^]\WWYaYYUZTX]VYXSZ^Ue\Tb]UW[\R]Y^SW\RaTW]\\\]R_\\X^Z[b]YVYXZYdVZX^WV]W\SSS^XaYXUYWQ\VVN\ScZjW_bP\YV[VVX[\VZQU[[\`^Z]U[XSXTYW^UXa[X`WUVX\`]`TX^X\XWWR\uVVScWVU_X]TVT^R[WZaU[a^WZXS`Ta_RU`XcW\adU^X]\YUXZ[WfYTXZY]\YYX[bZRU\[RW]WXZPYVeb]WU^ZXhVUWV]kOYZXY_dXT_ZTSZSZV\_VY_hSXX]YT_a\[dUWX^RdVWXMXT^X]Wd\[PV_\W[[_]YeUZRVV]^^UV^W_Y[_[XZVU\W]ZWYa]`Y]_XZ^iXSWY[^nQZUS`cZXe][_a\aWWSaTW\`TVP\VXWZWS_]Y[_b[a_^][Z[XY[[YcZY[VZYXZ\[YT]^VWZ^Y]d^[[UdZ^^Z\]VU[\Y]]TU[ZO[V[U\`ZW[\ZSTV[a_SSXYad`QXZZ^TYaWd[X]UZ_WU]W^T_[X\YaXgaWW\Y\VU]cWW\`ZT^]dWV`Z\YVYYYZ`Y[]aXYWaY]Qb][X^i]a[WbXXcRX\]Z_Z\gZYT[YbUNZ\ZUS_Z]UUZ\Z`aY_]XYU]QWXS[SU\[RbZgZVVR^WYVWZaWUV\XSfVZVaVTM[R\ZTa`[^XM[[]XR[W`\O[W\\_VZ`WR\Z[UWS\SXXeWVZb_Z\WVXXW[\\_Z[XZSY]aW^Z]_`WY^SX]X]S`P\d]SRW\RW\]U]VTWOWdRe^V\WR[U`W]\X\ZNVWQSa^`]W__]XV]U^XiX]aXZYSS[[[XU\[XYX^XSUb\_OYXbXT\S]PW[L\S\[bVVX^XUaYVZZV\^YZVVZZWa_]\[UYX_XVWYTZZRR^U\]]U\bU^WdYZ\TS]]XYTdY\WYXXR][QP[V\`TYQScNV_bTeQ[Va`UO[]RkaZb_U`__\YUW_]VVZ_U]VXb[\XTXXU_O]^YRcTZYS^WSYZ[R[WYU^Z[\T_c[^i\QX\YWV^VP`[_WZ\`W[_UUSXZ_g^T^\\YXU[U]ZWX^T[TTTW]N`hRfXbV\_]]Y[WY_cW^X^UXV[Xb\VYXYcXZ]\YW[e[W[W\]V[a\YWR\UQY_`WW\fRZXSgTT\XS\[[_]QZYTa[YR^\X]X_[\aQVYW]ZeQXSYWX]__Y\kTXTZbXcVaVV`VWRQXYYUXY\RSbYSTYhaRO[YTW^[WUVV`U[VUTWZZ[SYbZVUXYU]VZSca]YZZ^[bcQ[XRY]WW[aU[_XX\RZ\YX_X[\ZVXXYbUb\TYVQe]VR_[T[X[ZaT_ZUTW]YUXS\WPVSXW[Z]RTWZZ\VXWX]]^[W]VW[a[YUUP_`[Ue_YR]UbYXTXXTW^_RU^U^WZ_UQX^YY[VRY`YOQXaeWPUXS`WWX[UTYbXSV^Y[Z^S[WR[_VOXWZUVX^RUX\SY^UQVTVgZ[^WU_XY]^ZUaYQSZdZV[^\SZYRXUZW^XUaRTd[U^XY\[[Y]]]VaY\U]Zb[_Z\[ZWZWWZU`ZZPTVX\QX_YSSbYZY[WWY[]X^VR^Y_S_aSWV^aZ`XSV[U]]TT`SW]Y]UabXXY]S[[WR\YXdVT\`]UTX[]UTaX^[UUYVSUY`STZY\[V\a[cW[X[aZVZ]X]cVVOZUT[UZPV_ZUWV\XWWT[]QZUW][fZRYXRcXX[\XU]WX_R_Ng`^[ZXSX^PVd_^[V_SYZ[^T`UZYWWWYXdXXXZUW_WTa]ZV[[WXM\_b_[TY[VVV][Z^]T\d]`]aYS]b\YMZYZ`YXSWb^ZQ[[cb]^[UX][ZXO`PVSY\V\[VYUOZ_X^X[UV]QU]SbaY\VZYUZb^[YQc_UUVSY_VS\T[UZPYWRQXLTY]]WQUXab]_Z]ZTbXbT]YZTUbSTTZ\[WTV\RYSXXXZWR]XY^YaYRdYZX_V[\Z_X_Y\d\]VYNW[[UUY[WaWWUa]WZ\W^U``W`ZS^XbZZVZYTc]]Y]W]SQV^]ZXWW[XWZSNPYVYR]]WZY]WUTX]T[^a_eNTSc^Wcg_]\ZXZPXT[`UaQS[XVZcO`YZY[YQ[d^ZQWW_bZ[Y]^X]WaVXaYQW`Z`ZacaW_^c_[TYW[Q^XXQ`\\SXUWW`VXTXVQ[Z\T[VS\XY\XdLYdaVV_[c\\_Z]^]`]\\U[RSYWYYYT`W\gQbWcUT_\ZVaT`VVXW^[[UV[WXU\YVURSbW_ZWZ]TUSXVTW`\Q``\V^\W[Y^UUZS]QPYXbT^bXRYV`^^]cY]X`\Z_[_XU\UUTUe`\[USST\]\Q\X]^Vi_XSYV[[Y]\S^VZUQdZSY^QcXU_\XUU[Vb[V]_YXUReQZWWY[]aM\URU]`_YNTS`_^Uc_Z]WU_[XVRTU]^Ya^XWUS]XVURUXV^Z\`Ve[Y^WXYS\V[S`_UW[Z[Y^\UUXZUW]^S_RNWUW_]Wf^XUU[VQ^^\U\aZ[d[\aX_YUV\[VWY[Vib_Z\WaU^T\V]OY[YWeUQ\^]Y_RXOV[]QVZX^TdY\\`V\ZQXX]^XKSVUUWSZYT_[\W^\iS_\PZZY]WfeS[YXUjNYXb\YWL^[T`PZQ`[XR]VXP\[]TTdU_RXWWV]gZ[YaccX`\[WY[WTS^`_[UO[TUVV^RS^SXZ_[TkVXX\VVYdT[YX_N[Y_Y_^ZUYXXR]W\X_YcXWcWZYVRXW]\UYY]ZZYZSYWYVZaYZWV`_U_Z`ZZW^S[\XV_c[^\]VZ[WcYaYZQhT]Xba`]Z[T_a[a\WX[bSXY^b\ZYXUfX_aXaZ_X\ZWQ[cYU][Y\[XY\`ZXTU]UVY\cUZh]X\d[Z[V[YX[U]X[ZVZ]]YX_\STXV^\UXY[Yb_bXW[^b[W\a_R`W]VaV^^S^XXZ\TZW[\S[`VTXVSRZZ]`WW_WaX^_ZReYXXSbXSTV\\bU[[aWW[g_ZWU[QaPY]WXd[\URXZWXe[SZaVY[\T\^Zb^UT[]TVUQ_V[Y[^XZUTW]_[bc^U\V[RZ]Y\]XW\ZZSWR]Y\_]]^[^^Xbc`X^Y]VS[Y]R\X[WQb_[ZT_PUc`Ye[cT[ZZW\R_Q`]XU_YUZb[ZT`b\[b\^\_b]V[bXWQZV\ZWPaS^Q[Si[XXXXaZ[^UY^\UVV[]RLZa[e_\[\^X^WW^XXdc_]\Xa]]\cSY_S_d[W[Z]^]XVQXURXV`YVS``Z`TZ[XYVXaV_Y[\[W_RWWZWUSQXXbS\aVWU`c\SUU`hZY]\TYY]OTSSUY_^[[RXS]ai`VVSXY]^T\[]^SX]\YV\V[ZPYRYcQ\^`V\YYU[VSW[YUW^YbV[bT[U[WW\WZZP_]ZXVY[Z_b_XT]b\bZ`RZOZVUV[VYW^[[``\Y[_]WQ\WY\aY^V_`YVV`a\[^QY[W`X[VYZ]YZRZ^Y[T]^YcYZdZcVW\``YZ\Vf[[X\[Z\[Z_[e`\]]YX]]VYW[cPXUWVX]^YUQW`RV^a[R_S[[dYV\U]_Y``TXdTX[WaW\WTVUUXg^X]\XQTRV_SRQ\WZ\XYWNNYXT_SWc^UWbSQ`]V^SOZYcY\`UUYN[RaXTY\\XS[a[SXVVZXS_`UWb[Z[ZSZZ[UfRWYeY^U]YYYY\^YXS[VU[U]YXYW\Y[^Z][\W\W\[\TZ[\SXUVS`[Z^W]^QWS[aaZWZYQTW]^]WX[XN`XSV\`^`WYVU^X]XXUiXP\`S^YRUSZZUWXQ[UVY^W_\]`Z_Va[ZPSbYT]]WZZ\ZXWaSVT]YZQ_QOR[VUSVZZ[^WWYWYU[iVXXXZ\Z[U[YYT_YWX[ZUWRYWXYZZQ`NVZZMVTX[[UWWYW^VOY_^^XU_XU_ZYUUZRZYWUXZW\ZbZ\\a]_ebW`Ub^]P[[e`Z`VSUYUYZW\]^cYX[T\ZXX][RWUUVda\YZ[]TYZV\]QUWVWWSYXX^PUeXZX[[XX`^_TY]Y^\XZYTZeZWWWRSPXbSXTRf[X[U_]YWVWW[^WP^beTP\X`W_acSc`X]b]WZV[X]`UNZT[_V^aZ_S]YUWWaXV^^\PVRW[Z]\UY[Q[[[ZXUVYWRV[SWYTVW\T[T\^TY_ZY_^YU]ZZ`WTW]_[TS\XZW[^`PZUQZ^OX^]X`Y[]ZUQ]\WV]WXe_\aVWZVZY`VV]WXYX\aXUVWaZ`_ZUVbUZbdfYb\^[M^\PW[SO]V^RYPTTUWXWSRVTY\V]Zaa[QWZa]YQUXX_T]ZW\XX]YYZUiY]_URWN^R\Za]VX`W_U\ZXY`YV]X^`_Z\UYXVYZ^`USXW[XUZRYYT\]UYTU[]TcS\SZ[U^V^Z_VZhcZ\[^[L[WXRbV\U\ScSeXXU`[XQRX\HdRUT`ZTTUUZgVW\UVaUXYQUMXYQ]MS\T]V`]Xa_Y]]XYZYT^S_\YV]_[_`[Z\Y\``VWRYSPSR[XZSW[]S^ZU]`[XX\XUWXXW\T`e]VU`\ZZY_dZV`ZVXSVXXSWY]^ZV_\XYeS\[\YU^RYZ[VX`Z]WXW[cU]`VW[Y`W\[\P\T]_S\XO\VXcVUV[T]V[_YZX_TX`_YXU`]R\WV``W[U\\\\aT[UYa]U[W[b`Y\ZYU``Z[R[YZ[RX\[RbW_c_XY\\]^X[UYWW[bU[YU[WTRU\]c\^VSWTVU_XUTXWVZXTVWZ[`Z][cV`ZUZW\c]O^\_RWWX\^[YX[Y\Y]_ZTTh__\QZU\cW_X_YRZ\[\`XZT]SZ[[W[VSV^[WZRZ_[Xa_ZXOUUbTS`Z]^T\aYVUW]_S]U[UV`V[UXZM^dVYSZX_UW[VW^XX^bg[UZa_XWT[ZZZ\_R]VZVX[]TVY^T_TTU\[^ZWXZZ^^V`T[T[XUV_VWY^ZZWT[Y^\OTUSTXYZfeXc\WYTXWYT_WZWXW\WY]U]`U\_XRS[[X[SW^ZW[dWWVRX[]ZQb[W[WY\]bV_T][[O^WXW[\[_ZQZ]Y[\`bU^U]_YZ\[W`ddZWY]XKXVS_Ya^]\\_a^\T_ZaY`SYXeaXWY[\b\[[WWg^QNW`]WX]]R_Z^^[VYW[ZUTY\ZZZ`YWcU]c_OSZX_\[[X_XWVZXZ[YW[^O[^Z[aV]cXZTYV`S\WWQ_XX_\YT`XVY_ZRQbVc[^\W_URZTW]ZgX\]]VYTXZYaU^XV^_^VVN[VXbQV^Z[[VUT\TQUV[`cW]UX[VXXaXO]gTV[WU[VWTQWRVXS]Uf[[[YSNVg`_ZYWV_[Z[]a\OTa_YXTRd[\PS_UU[^Y]SWZ`RVYX``TW_VVMZ[\^W_U`YWYV\ZX_RZd]ZZW]V\U`ZWUWUR_X[TXVZYUe`U\ZXTR`XgYU`M\XTf_VY[dV\_]eY[bZY]O[YN`X\RTV][^XVUYXYX_YTU]XXY`ZTW\Y\YWUUXQTUU]YaZ^YYZ_`T[[WV_Z^ZYVZYaUW^\U`XX^U]^_[X`VWWVW]QbXZY[b^_[WX\VU[PY\]bX\Ra^^\VcSWVUUX\\VZZT[^W]cWlVYYZVR\[_RSY\WPcYX]OX[X_]Y^YVUcWRT[\XWbT[TPTdUa^SbS^_YXYVU[ZU_WP^[c``\Zda^[X[X\YV`_Z`TY]T\WcVRXR^VQU[\ZaP`c^W]_TT^]TVYTZ^W^WSYcX[\]\Sc^V\eU^YVY]ZUR\^`XXV\[^^`ZYX^XXbYaUZXW_\YW]bUXY[\TSaY\ZYVXeU__g]^WW^S_XS\ZebX`]bW\gUZa[WZ\XWRZ`S`X[XWUYeWk^]\^XZRY[Z]VQYZ\TXYaXUPX]\XRU_aQ^WQ_W[`a`Z^[XRTVS[]^T^Y\YR\`Q[ZZ\YWWUVWVacX][_Y\XXSW`\ZdW[[`]c[V[YcVZYV^`Z[S[ZVTUa\[TbXWTRTYYWZ[XYUZ_XVXXU_Z[ZVVSWUUWZZWU^YYSXa^[Y^VWTa]VVZ^aYTS\[\\eY]V[Taae_T^YXP^aX\YZS_aW`WTT_UXQ\X`UaRVa^XSXXS[WO^[]WYW\dY\^UY^TVa[ZXXXUY`a]YZ_Z[VWZQTXXZ^UWYZWY[^U\ZWZY_X_STYi\TZXScTYRVYhXU]XU[]VTT\\^UU_aY_XYZ^R]XXUb_WS_[XP_dUT\U`S^`\YP[Oa_d_LVc[UXQf_W[R[_\SVb`W_Z^S]VhRbWY_QPQX_R__UUU[^RZ^SfYZ[R[b[YYLTgjXb[XedWbR\UbP^ZbVYZ]dUZ]WZ^QS`]WeZR`Z\[XU]U\QRSWUVW^NWWY^RaVVXWW\[VYY]VWUPPX][XRWVX][Y]ZXR[\L[T[R^V_LZ^SfTKMSRWUTL^[S_PVSY]S]VZS\TT]WTWWTS_TMZQ]U\[YSS]WRZfX\WPZT[VRFLH\TUXVPTST^[\[\IUPWTTW_T]LVSNVRZ_QZ_]RXYYKSNRTZSQTWSXTTO^YQRQL[[^VONSTqYXXWWVURY]TXaZVY_YU[U\TV\W`TXZUVTXZXT\QSYW]VScVI]ZNZ[SWY`]QZSZWVZPWQU\V[QRVNXWTZQN[S\[SRX[RUT[S]]V`SVQSYUVKZZ^T]O\R\S_VZXTQRM]ZW^U]bRPW\RWnR[ZU[UO^RYZa^SYP[UbR\TSX_U[WW^U^VTRW]NWW_YNRYTZVX_WVUQQXZ[_VYRX]PZQTY^X]b]RVV^YWQ\SZRXXUZbUQ[_YXWQVXUUWU^Q]W[[YSY\TYYWZRWVSQZT`_SZ^W^ST^`\[UjXS\VXW]\XZVYVW\OURbZfV`RP^\RT]eVZSX]`[WXc^YX\^`TR[\\W_XT]Z`YPX^\VURZ]_[S[[UPYa]UUU^^ZSWXQOUTZP][dP]^VQY[c_c^WUXXaZVVYK`WWZWbb[YUV\`XbWOZdYXYRV[VSWYZ_bX^O`XZ`\Z\^V[Y\N\U[_Za]Y]QY[\`_TXYd]UV^Y^U]V\RU[]U`VO^Y[\ZS[OUZYYXUX_UdUZOZaVVYa^SY_[^]\`PYV[L_XTXUQ_e[W][UYZWZYXYZTdW[UVWWSZaUSYWZVR[[ZXX^_UW\]X_VW]VZeUTdWWX]TYbX[^UW`][UXWTWXZc][U\^SWcXaS^PWZX\WZXS\VdZV[eWb^aZUXb[RWVT`XZQa[^aRX^YZ^ZYX]ZVXU]WNXUbXg_RV_cZ]`YRR\\cbNP[^VWVP\ZUYYg^V^RN]]VdWTeXW\]Y[TOV]XYT`USYVYZUYZ[VYT_`SOZ]bW[Z[P__^[aaa^UXVR]X_bZYVYVUX]YdZX[XSa][TXT_]d[YUYWWW]V\VYWUZ^X][[gYTZZ^^]TWXYY_XYS[UUX^]h\Ya`XYU[XQZ^\ZVYd]S`XZYbUTZX\Y^XVbQ`[[Q_aVV\Za]\R]UVZ_\fg^f\`f_]ZWXW]]ZcSZY[WX\T[bRYm\_^[X^[^\^\YeWXT]\]WR]^Z^YXYiUPV_X[ZUdZTW[]T[a[_XTS_^W_NZWXVZhaZZUSZZ\V\XSWPVUXUX\RgX]`ZNT]NZYYV]d^XV[Ya[jTTTXZWVY\\[T`QTU`XTTYcTTQRZaYUYVY\UU]``cY[YXV`ZVXT_V\Rd[W[]QS`b[kW]]^Vb`]bWZ[WXV_YRS]XVZ^VZ`a]YWbX`U\QZZTT[Vd[^TQWQY]YbWYNV][dU^VW^VRSX^W_URR]QUT`cY[\RUXZXU[\^O[R[UZaPfYQV`]\RSUZ\S]ZY]\aWYYObZM\ZXOUa\[Z_YVY_ZbZTZXOeQT_SSXUWVXZWSZWY[adXOY\[O\UgUVX`Z\WWXWV[bV\VXZ[W_VVWWW]WSY\Zd[X_a`PTV]VVYVUYZ]bSP]Y\_WZXZ[ZZT]STUOaXXZa``YWiXZZZW^Xb`YVV\abXWX^_\]Y]SRZQ\[RW]T\f\aTX`Y]WXYd`^YX^]][VZ`YSYXYWdV\^SZSXK\Z[j]WY\YaY]VYSVXVV``[a_aXZXV[U^ZWVQhT\XZZ\Y_ZPWb^VTWe^^\SUa\[[Va^WZZbUX]_aW[aUXVSQ^`\VS^VQSU[USZ`VWWYZQVV[V]W_YWa^X`[]UXQ[VWRYYbYS\UYV[XZNWZXYWN_WV`UTZacZTXU^VZbX^TZ[SOSQXWS[WYZK^^X\\W]aSX[W^rWZYU\SS_\]]\VUW_]bX^S]YdXZ\S`XTaY^]\[XS\__[_XSZbXZ_ZXQ]^PXZ^YWV[]\^W`U^]QUVjf``TYYUVaVZT`ZXXZZUQY]Z[VYd\YZW[V]V\[YZe_UX^[aSaZ_SYZ]Z^V[_[[aT\`X]X\_VUTaVcX\\][V^XcWX]YUT]]XYVa\TVS\S`dUe\`[TSUTTWX[_UZcf`RYWWZ[eZZeYWcXZ]Y_]eVXY\R^`Y]YZfY]\ZX\X\[T[NYVUW]YWPSY]Z\Y`_aUc\OY[YUSVQcYURV]O]XZU]YXYVXY\QYYWZT^WhYV\d^WYXWZO_\T]\\^\UY]aa[XXU_aaY^XaWNReWOXZXZTUZ_]X`VUQVVX]ZeV]VZV][XRTY^_O\]\ZVdWUZTZX]TZSX\YT]Z[W\]\RV][]\YWVXWRYXYZJVWe\VVbWVdZ]aZf[bSZU_g]`^`X\bYV]\`Z]W\[WbZXc[[W\U_`UW[\]Y_^^\WY[WaWVUVNYX]TUZXZ\_Q^jX]^T]^QVb[Q\Z[Z\S]WV\U_XW]Q_[TVSSQ\aX^[X\[X^a_US^YR^YWYV`ZYY_[UVVSTQ[XeWYZ^]VYXf[[YXUY_Z[P]\UUVW[YZZZZX_[R[XWW`ZcRZZYcX\]]Z_Yed^X\rWc^[c]YRZ]Y^^X_X\aX_^]R\]XdYSUVW_\UVXY^We^XRXaWP`SZW[YY\bTeX^Y[X^XZVX[^ZVRYYWVZZYX_^VYZZV\X]WYVWVS_[ZeUb[T[YWY\Y^`]^X\WVWZW^UZ^TTZSX^W\]][_^[X_]]WVS^\XXbUR\]VWXSZV_RWW\cYZSe\X[X\Y[ZUSOLZ^\dWVR^Z^_VPZ\Y[SUWZbaRSZUZ][ZYVX][TZWYXWXY^]SYXYTZXWR][UXW]Th]iW\[^]XUZVZXZVXVUVZiZh^XSXQTVW[\W[[ZVX^VYkYRWd`SU[\Z\MXaZ\\Sp^SVXVkXh\R\QVgTZZ^V\p\PcWUUb\SRYYSTkW\WTYv\V]Z]RXWW[\^UZZVc[_\VU\]^YQ[U][bXaU[Y[]ZZYTVU\VXW[VZPVPWZ]aU_SUVWVVRWXZWZ^_WXVYa_i[\R[XZV]V[]SXSXfaYSYTXWV\[WdS[^[VcV[[]YXXPU^OqX\hXZWXcWRSYU[aX\\\XYUYN`X[]ZX[_R`SWTbTYSbUeU[VZUUUV`\SZ[\[l[]\TXWe`^b^h^[VW\d]XUV_b\TXUWWXY]PdZYiSWU_^U]Z[]U\W^X`YZTXZUXaPT`WZ\XVWVZZ[WW[VkVU\_^YVV]XTe^Z\]]XYVYR_^PUXW[V[Vi\]eOU\\^\X_b`dP\ZTZYf[X[[^_S]]ZU[`V[PSMUYUZRUT[]VURYW_TT\]V\`[XUVWUWXQS[a]\]T\\VVbXY\^SXTZV[\X`YVX\Z]UWYYU[]^^UbTXXXeVWVYSY_\^UUZQZZZZZ\]V`^Y\`Y^]cXWXPXWZW]WYW]b\O]We[XYX\X[XWZU[^WUaXUX^Y`kcYXZW[XWOYb_XSUYXY`\WZ\X_U\a\^X\_c\Sc\[YVY^T^\WZYZ[^Z^cSWWX_TY^]W\TXZYXX_^iW_cZ^_VaZX\X[][`^_X]ZXcbTcVWaTTZVaZTkUY^[\bX\T]WYgXXZ\X]]\XU`YYVY]XSS[TRZbXX[bZ[\XZY\h[WU[a]^\W[aWZRY`VXYU^XV^_RYWSaU]U[`]]`a^fPLR^`^[VYX[_[^WS]Z[aVT[_`[\VXbVYU_S`Q\X[ZWWYVQYY^^Z\TYX^Z\RSV^\XcRbXSUQZ]YYU^_YXYWX_WXUZW]^YYTVZZ_YQS\ZadUWRbUXZZhVQ_STe\`aKTX__eV\Z`\]ZVY]\RT\[V`RcX\YZXWSZUaY\[``WcVf\_YW\\Xa\S`VUVUUX\V[ZXY[c\V\SVQbX]`ZVXY]P`\TX[_R`^Y[SWOaX^TZTXYW[V[]]TQVU^SV\Y[VTW_`VXZ\QZ]b`U[YRUX[ZZT^X]YV`[b\WWUd[_aUZVS]XgfYW]Y^XXSRQSTT_^[TT\Y]]V^TXTWW^^[\XZbTdW_T^W``ZZ^]U_Z`OZ^V[^[V[XX]\TTS[_`cd[WVS^U[YZT[YS\`^T`\X^TU[\ZVU\TcWU]VWR\Ua]ZbSV]^Xb]W[VUOX_c^\^^WSZZZ[]XWdcXZSTT]]WY[ZPcZ]Z^_`oUT]^f\VUVc\]`X]\]W[X]]YbWQU[Y_Z^XZWYT_T^\^VWYXV\RUdRWYWZVSZWX[S]^]WVWZ]ZY]XVSS][WXXRUXVr``WPZ_V]_WP[[X]]PaU\Uf]]T`UWZWXTM[U`WY_UX`ZTZQV[VOZ`fWSX\UQQSUWWTR_XVbWWVZOXXb\XZ_Zb\W]UVb_M`c]e\[iY`RWURZVT[[UW\_VS^ZWU]UZYPS\ZTZ[[YXWc]Z[RVW[[X^SbU^WZV`VYYZ]ZXWXWbVU\SV_XYXeYZ[XXZWY\VZSd[UZZQ]ZYV\^Ze_[PWcbeV[Y_TY]UZRXVa]\XTTYbTYZSOWO[aT^`\T\W^UZVa_X^R^[V^URU]]Y\V]`XVZRTUYRVX^^\RXY\Ta\Uj[UVU[NbT_SV\[`[W][Y\Y_[_fV[XSeV[WWR^]X^`W`SXTX\cXYVW\PZ\b]ScZVYUiZ\YUQTW`WW_XaRXYUVZ`WX[TWZYd[X]]WcZ[TY[ZcPe[Z]\Y\XW`^SUSUX^VPef_`V][W_eZ]WTV_Zd[WWdY]b^ZZX\VYWYVV_aXnWWYU\TWX]YVYXTVYbW^[YZQTg]TZZ[ZYWU\UeX\]YZ]]WU[X[[WcYW]R`^U]ZXT^`XTZQV[\T\cXR[XX\Rd\\Va[ZaV[YXM_YWYb[VY[[]VbY\\\^\\SU\WYaWcX\YZaXZWTd[O`\^eV\]X\[ZcU^[\WaWU\U[^[Z[[_ZeXbYRZZ[V`QUV\b`]_VTZ\`aUY^QQWZ^V[W`YZXXNZU[^aUZ_YWPYYWYXYW[W_XQaWVYVWWZbUXeWUQZe][UXZ\^`ZV\^WaR_TcaURYfPWSZf\ZX^R\YWWXY[WRd\^Y\Z]PW]Z_\XT^[TW`PXY_U^Y[T\VZS^XRZXQ\\f^XZZRaQYWfVXZbeQSZ_ZQWbRZXcX\^S[[[T[\]VXaU\P`UX\\ZO^ZYYOU\Z`a\[TT\UU[UQ_^`]WQ[SX]WZUV]PbPSXWTWT[d\UXT\QQ[L[[YZ]\Z\U[SWV[QYSX_^TcdYWbYb^R[aZ[S]`UV[X[\`XYTYW``[QWV`_caY^_eVYU_YTQ`\\SQU\Z[Zb^Ub]YZSZQOU_TTY^_cXV[SUVSWc_YYV\^bc_RbSPW\[^T^[\\bZ[eXbaPW]WZZ^[]Za^W_ROYY^]XUaY[`YTYQZVX[_T\VXX^_ZTWb^`V[]_YWUYWYWXYSZ_[[RZ[[Zga[\\\QUW\X]c\[X\NS][OURXS]]_^V`dTV^VWV[cZ[dY]Y^V_Q\[Y\dUOhXVT_[`O[_Z`^YdX[^X^]\^Va]XUU]YZ[a\\bO^b[\aO[[WUg]^W\]SX[VYb_XZ^X[WYV`^_\XVS^[^\X][Z\]XXS\Zf\V[RZ\UZRTW[`YZ_WYV^RWXYRUWXUW[HhUT_]bZYd\Y][QYaU[^WOXcT]YjV\UWhX\WQ[T\X][QTXU]c]bX[g[f[\YQ][\VUU_YV]aYbUR^aUYT]aNYSXbST___QX^a]WV[^`^RcTZY^[^[ZVZV_UX_VUX_]Y\TXX[]YV^_Ydb_XXd[\`X]WUR`bZ^QZ]XXZT\fS[XW]ZUXQ_[Z`_QYQUX\OZYebZO\Y]c[USVb_W[^\TR\ZUb[WYYX[[dXOVYYWaXZVY]__^YX[][\VYZ_^VZUYd\TQSaZ\^\[ZVSWVQTS^^ZTJgY\c\X[XWY]WTTT[^RYYXTY[UU\XXXb[VXSV`bT^`URYTZX\]TW^YVSY\T\\[_X\ZRSVPYSUYT`Z[`S^VY[\hYYVX_S\_WcT_[gUU[VbXX]S[WX`TZVT^Y^Y[T[PZTa]U[ZTc[R]T`W[YYY_\bXdVYeXYUV]ZW^XbWZ\WbaR][b[V\UP[WXXJ\ZX`LZ]W\VTVbQ[WXT]Z]QU_gY[]`\XYdZTU]]YVWc[T]V[[XYaZ`]YW\]cVZ`YWY[UTS^TUQTWZWWWTZWW^]VRXSZ`Z\T`ZYWRU\TXZeT^UZZe\RXWb[SZZ]U_XcX]VKTVU^\WWRUg[aaXbTY[]_VNbZYW^^aYSTaZXeZVZ__W]ZW[^SQZW[[VeR]_[Ua\WUZ\UXKTS^VVXUV_UYZ_^YWX[XUYURWUYVYU`WWVS\YY[_Z_R[VN[ZXYT^T\XZXYXWVZcXeYV`Z^VWHYSYUWd[a_W[a]X[YVLZQXT_YWZ[VWOV\`d[UUXSZW`X_XU[QU\V`RVbYd]Z_\WS\QcYUY[\ZW]ea^Y]V`]\W`WW[_U\^UZVXa[\T[YTWVT[[^\^Qc[dPVZXj`RWT^UWcSaVR^S`X\c`\WaZXQ^XZ`VbVZZWVZ[Wa_XWX^Y\TXVWUX\`_[[Tb]]W\RUYaUaTZWU^YVPX\VZ]^TZa\Z\ZgWPaY[\WbTXY[aY[]]OZ``^[aMRW_]a_[[`VXc]X\ZZe[ZW]TTX^\T^WeZXYX]b_WSYYWXaXW][\Z\gZdWUUXTWXe[bS\\Z[VeY\VYaUeTQUZ[W^a[TXT_`_UZ_eYXY]Y\]gV\gJbYb^^bVWXiXXXb^]RYV`]XOUXX\`YW`RYTYZ[V[YQ]_VOXS^XXfVXZX^^[V[QaQU^UU^R_a`[QjRUT]T^UQSYW^e_V\Ya[[TWg_^QVXUXW^SVX[][_Y\RY`UT]]XZPZSVTYXRY]R^ZYaW\eSW[\_Wc``XSVcYWZ^XS[\^_[aZZXTT`[]UYSYVUSaZ^^ed_Y\[^X^U]W`_W]UV]WZZ`]WX`^]]dR[W_ZVU[YVXXVfYX\\[\TXTY]Y^\VRXj^YRVRXZcZaY`UY^XR[_\VTV`[^XYVVRaaU^[YZXSW\ZV\[TO`_W_`g_Y_\UaUXSXY[IUTS\XVV`[Z[W[ZcWY\ha_UYYYg\b]\_X^XOYYaTR\[aaVZgW^X]Y]Z_S]SXZWY\]YWPU[WVRWZQZ[SWU^aSa\Y[U^V[T\[PW]XT]RXNZ\TW^VYX^ZaZ[X_YS^`XV^\^RYZP]W]SP]VS`UVYXaYWSaXW`]jVa[XWWUUVUUTVaXXXUWXY_\Sa_[`UU]aOSU]Z\T[T[W[\^ZR^X]`WgV[YYYYYVV]ZXY^M[RXUYS[WO\e`ROYQXW\ZP[VSW[_X`bZWg]XVYY[U_RT^[UYUV__WZ`YS[_\YRTc[aXXYXU^TTTUZ[VWU]Xe[]Z__Y]W\aXZR`Y]V\Y]VZY[X^SUXS\VSVS]W`ZS^Y[d\^[]UZVZ[oWY^ORYWWSRTqVbWeW_Sd[^TiWPaVU]_RUUO[QXTa_PcRRUXW]UZYYKT\]`V`fa^iUcZ`QTXYU]Y[`ZZVcSZW^`_bV[QY``dY^SYWV^ZXU]fXY\SX\S]WW`WbUNT^a^\TXXUTVUXeQ]ZYUbY^QUV]aaM[W]V[SUXcZ`T[X[U[\YZ[\__WSX]X`YUZ^[^c\bQTSY^\ZYY\[VU[SX^\W^^oYW[aNQWTZXVV_Uf\TY^ZYd[TVWWZ\[T_]VU\Qb\\V]YSRWU\XX[P_RZWZTZaVVZT]YX^XU^g][ZZXRWbdXS`\W]ZXYTdS]UP\[`XUU\\^XXnROWL[TVWY\\TdYXcWT^[XZV^`\[WY\Z\[Q[\X__XW^c^\Y`UY`YT_TW[WWW\X]U]XU^^][YY`S_^XZ^\TXSXQ_\RT[\ZeQ_Z\_]VXZ]\Y[ZXW[\^YSV\aXVXXVXWTUV`Y]b^V[TR[SVcT\]V[[`VYQ\[P\bZUTVS]YUWWbX\XYRWRWVR`^\]XcQ_]``[]VY[WUZ[P\[VPVR^XWYX`[ZXZVY]\ZX]WVZWORRcV\[WUV\d`]`[WV[[WX]Y^Yd]^fZT_X_ZSZVVW\cSU\UW[^aTWRXZXZW^UW`_Q`Z`X[Y\[X[[aYY]dZYZ_SQX\XbWZTUaSZYY]\UWb]d\b^US\]\[^UZ[[UYY`ZQX^[UV\ZX[]\S\YTWZbOVWR_VY_`\T[[^[`]XTZ]cVVXZ^WW\U`VZWZhTRQT_Y[YidbVWZWZWa]`\[^XKaaSW^a[\WXU\X[eYPZZ]Z[je^\]ccV]UUY[ZZ[[TaQ]VWVXWZ^U[ZXZYZ\RYYUTXW\TWY[eYgZ`ZYT`ed[\cP\dYVT]_RZ[_TZ\WRVVZX_UbdZc]d[^WO\\WP\U^b[WY[WWPZ^cUfYYTWW[Y^YUW]ZVbaZ]UXPTQX`OX\\T`_W\Y\TU[UT[YWbUaWYd[d\YJ^dVYa\Y[YPXXN^ZWW\X[]UV^XWZ_a\VUX^gV][YSa[ZZ\RZUV^YZXc\TXVZWZZUaZ]W]p^WU_YZVXSZ[Y\\_`\]ZdS\\XY^UTVZ\[c\X\\[aSU[`\\X`TW\Xc`Z[X\\_\[[]]Y^S^^TZc^]c\[e[[ZY[[Z[R_[_S]XW`WVRVRU]\[V\b[[^c[[ca^_WZZWfWY`aX`e^a_VX__cV]\\WTU\^WZ^W[Y^[XVV_XYYZU`P]WR\T[W[^U_VhbVXjYX_^`][WU[aZWUXa\Y[PXZS`ScR`_S^U_VX[XZ\WXYTT[^RYRV[UYWZaUPZ`QP`^[]cZZZYVR[]UaYg]ZXbdaX[[XQY^ZWXS\afZXT][f]a]W[Z[WZZ^Z[YXYZOWaUP[\Y[l]TXdT[ZR^Z^WW[XW[\[cXU_]YVVN[_T_W`bV[b^\\S`[ciZ[X\V]ZY[\TYX^`cZ[Q^^WZ[U[XbWTTW[XVZ\WSZX^R]\_X^\aUUXZag\NUSQ_^V]a`^\\]\RVef]]UZQXXVVZTXX\bVcYUYXi`[\]NZZ\[T\XQ\TPZPVV_OY_U[R_SX^VXTY[\Y[WXaV]TUVd\cTTNSTZ[YYXX^_T`ZUW\]XYUYW_^YXV\]UX\][_X_T\Y^WN`^]W\ZeTUX\TRLWUVWQZVZ\VRVSbV_YY]`U[TWR]c`WXZ\aY[XYc_VdZUf`X\j]WWVa[S`RYV_WY]U][X[XZUW_VT^S]WT[UTRX\SU_YW[YXXVZU[YZ]RWVXU[`SZQ_TWW_Z^`XU^^TUcXSRYVN^ZVZZ_\cY_WbVaTWYTg^ZYRYRT]`^\Q^YT`U]VVZMV_US]]f[^]YYVV\^ZX^XS]U[]]WX_Pa^^\TU[Y\Qa[]RX[RVZb\YV_`\]VYVYZbV]i[]VW[ZTW[_ZW^\\R]]\Y_^bZ[VQSW^c[WZUY`][YX\\ScUYW`XZWZ^_[\ZkZWW\[\_UWYQZa\WZWSUYZ_QXTR]\\`^[WXU`QWbV[_UYZ_]`WR_VVQ]Y[ZXdUU\WPZV\Q][ZTa^[^[[hZ\XST]YWTVU[^ZXTXU]XV^UXVPT^V]fUTZX^^RY^ZW^VY]WUV[UUX\V^VYb]TWZPWQ]TTZVhZWZXWaY\W[Y`Xf_[YRW]RYTVWXZTYUVXZWQX_ZQ`XXXRZTSY_Ud[Y_]W\\\aYbYVUa^ZWTPXZ\TRZ[XX^`YU\aXWZXSdW][[[_VQSVX]^_]RVYbVcZ\Z[\aX_W\^R]YXYXb`YYXUVWQXU^Z\XaZ[Yd]^YX^VUaXSWSWR[[SV\\UZRZ[XYVUT`UY`TQW[U[[SVSUTZc\\YbSSWWZWU]OSX]jSRae_WZhSZQaOVVYSY[X^ObQZ`]aTceU]\VdWY]\^X[YR_^WXXXXaZ`]d\TUYU[VTfQXUUUaSZWW`[]hb[\UT_YbRb]P_YUU_V[Z]b[U[]aYSYVP]W[S[V]^T\WXZ]WVV\O\^W]Y_XW\VWccX[]S^\UZZ`fSUZ[QYV[[WWPX\iaRX\U[UUeV[gZ]^OaZ[SQ[[Z[[]_^[W\[U\a^[R\^YYUQXZRYWR[VhVYbZ\^WU\O[gY^Y`X`^TQc]TWW\NUPR[R^_^WXT\WXWUeRXcUT[WZ[PXXY_[V_ZW\PX\W]ZWdXSV[U[[\OZeUPY^XW[_^Y_ZVP\TY[Y\[UV^YY]`ZRW^d_WWV\[XQ]_Z[W]ZW]T\Qc[Z\WT_dS[_cY_RSb[RK]U[^[UURZ]\[U[dYVSWYXXXWTZ^[XbVb[WXWXMS\Qf]]V]U]TW_a`X\Y[\VZ[[\\TYVWV^ZXW]YS[ZXNe][ZVXaXcdf^VZZ^VV^T_[YXNYV[YU\_Wa^WTWYV^T^\\^YXZWgZ`RWSS]]VXV`cXZWQ_T\UTUU]c^S]TaQW\XPZT]c]TT\U\[T\VdWaOXSdYWTQaVWVVR[dYVYT\SX_\]aZUW[X`RX[YZ\[bkYWZZY^bYXQ_YTZ\\T[Q]P_W[XXTUUWVZZUYZQ\ZYPZeVVV]Z_\[\Q[]\W]cb`Y\S[Z`]RZZY[[d[YZVXZX_[UV_\Wa\_STQ\`V[IcSUXXXX\_ZZYfSRX[QaeO]cWWTYUY[[Vc^ZbVV[T^Z]_^XidX\[]V\_]_VbWg\\XTZe^[XXXWSXa\[SeZS^SaYdWTQWhR^XRO_oRZXUd[RZ\VRaXZXaUbT`Z^V\nZ]YXaX^\Y]T_UTY]O[VWU^SSbY^IMZViWVRW^TVYQSc[\\W\YYdSZWR`ZXiWeTNWZaZ]T`ZWZY^ZWZ[UN_TWV\ZgX[_eUTaSaT\SST_fVc\`^VUSYXM^XZU^WP[Y[`aVZ\VTT]Y`^\eOXY^_]^Z^d_\Yc\_T`^bX[XWY]cZO\c\U\a_TYX[WZh_HTWYbWRXX]TX[WQ\Y`XZWS_\][ZZZW_[]M_YWWRU[]_YYb_[XYURVRWYVUW[ZWYZ`eZ\^W\MV^SZWPX^VTZ`V^RbX\[aVX\[_V^XW^UX`V[UZMT[[VUX\Z^W\XZYX[SVW]U[^[^aX^RXW_XUQV\_XVYeYPb[S^]ZUXXSSXT\`^X_aY^bW]]TVT_]W[TT\P[Z]W[U\[YZ\XWS^Wb\[^[^^dWXSP\W___Z\YTXVRYVQ\Y_YRWVWPUYU]^WVXZY[`X\]_YSZRZ^[ZY]b]SX_\^S\URU_OSX]XgVV_V]^SYU\Z^\YY^T[\RXWdXWXZWXdT][^QP\YUYXYVW^_`XYSY\VY\TX[NZ\^h[[WY[\[ZSX^]YWVZWa^TY[^YUWaWSVXSVhc\U[PRP[[c`X\_^S[]a^WZ]ceVYZXYT^XV\WRZ\WUUX^Z\`WXafV[\ZVZ]TR[VZcU[UXT`_WVaTYYbWXQYUUX\`UdeX\Xb_\YZcXaUZXTZXNhZ\^RYZdW`PSPehaSgcZZUUVVR_ZWYZWTa]\`SNZ[[YWYbVS[YZ[QZU]Zb[YWU__TXTVXVdZQY^a\S\d\WXR[XX]U`W`VW[\YYU_WZYdV\WRY`\VRXXUVW^^TY^[ZQTRbXVTX]\PXUSPWS\X`VR\`^VSTVWWV^^W]ZXXRY[\^YWZYXaaRjXXVXVZWP\Z_SRY_QXUb]`Y\V^RY[WR^RZZVZPQTaSaTVUc[RaZ`^PTaYVRUTW\S^T\SXb_^_W]\[O[R_\QYXVWXY\UOW[Y[^XcVW_UaZSP[T_`]SVcfc^ZRV[`\Z_WZj]OaZXX\V\RVSf^b]\S`f]\YS]\P\[[V^S^U]]bZO[[Z\XSUZ`bSW]\WWeW^ZRWY^X^X^QU^dWa\XZWUY_[d\_XWUTYZ\]bb^bVUV\\T]XWY^X^V][^ZW_R^Y`^`]^X\_Y`Z[^WVYW^YW^^Y\Y]l_bZWYT[[T[`ZWVYW_]S^VYZXa[Y`Z]UZ]l]VY_Y]\T]Z\W_Xd``\VVbXZ_Y\XUYWZ\V`a]UWU\Y\YV[Y^Q`XScYZZ`UbY]X`WWT_^WVPYTSZ_RUT_S]RXZ[WaT[]]TZ]SZShUWS\\OY^XdV\\aW[]W_V`YWVUSZ]VZ\[^X\T^XSfXYVgS][`[YbcX]fU`c_V[[XT`Z\\UXZgTdX^_ZZW`Q`WY[ZVUa^VZZ^Y\]_aZP]]WSXYZV_V\]LaXYXXY\XZWWV^ZWTSXZVX]VTfZ[^YV``[UU^_d^WYfUQVT\Z\X\TVXUXV[Z[\TWYWWW^X\_^S^XYRTXW^WaPZT`XV`cZR\c\[Z\aTX_O_X^[X]icZV[]WU\`\^SUU^R_UOYNbUWgWTZfZ^aY[TXY^U][_^bSYYZVV_aOXa[YfeZ_[XZYWZYXZY\Y\Q^Yd]TZ^RPTZ]X[UZTS[][]]RV[WY]WO]cX]b[TQVX[T^f\ZYUYX\XY^ZUZ_SXYZ\`[WS]Y[S_WbX[ZWeRV[\`ZY_WYTSVZ`eWZYVZ]VXYYhT``\WWcRZcV[X\a_T\`^[W\cZYVOWXRVZUYU\Q[U\S^UT[^X]YYbZZX]ZW\Y^YXYVVU_V]YZPRV]WZ[WZXX]_SZSP\]\TZ[SUR\TWl^`[^\VYh[XYYS\ZU[VZX_ZWaW^QYeXZYeZ`^\[_`]V[YUVXXYZ^VMac[Y]`]YYa]WiVZ\^_XT_YU\S]WXaW[XT[[RaW^`bZ[UaYbTWQVc__YcX^]Yag\ZVXX\]XNXbUWX[[cV[\YSUN\RY[ZU^[VZ_ZRU\WTTS_RW[`W^]^a]WTYXPRZaZY^`W]]\`YVXZ^YXa][YX^\S\U\]\U`WUSV]UTS[QVRSTUa\]d_W[T^OS\UTZSZS[YN]WSS\Y_ZUX_bZYXXXS\XWYVXTVXbW_WY][\V]VRUOX[XdZZR[J^^^_QRSU[OXV_^V[UU[\\^XXd`V^T^UYXVWSS`YV[RYVZOY_TXaPX\TV\WVVW\__aRa]X^^]fXSW`_fUY[`dq_]jWXTX\YZXRWM[S]Z^ZQcR[\VNbXYVT`cScZ_U_[WTZP]ZjUY^n`Z\Z]^f`OcUYXegYa][Z[]Yde_XNWbXUUUSacZWMZSZU]X\bW\WS`[XFW\UR[VU]STbeSaX]m`UW[[TOgX\XY^]\VZ]]i]]`XZSO[V[b]]\b^RX[^^aVW^Z[WaRNSL_X_TX]_TY]SXUSZ]RQZ_RaXTWZZRX_Z\VYZWUSYW^[_`efWfaTYQ^OVTVTR^\WZZ[[PVUMdWWYPYYTYYWV]cZ[[WeX[dZWYZ][WYZXdMRV\WT\U`ZQPa`_^_XTZ^YXo[U\\S]Y\YOW[TYKVX\YWaSVS]T[U]TY[XPdWQ^MR\Z[Y^VY]ZbaW^\`[ScSXVM^]UTeYXPQZQXTd]cbYUYTPUb^][[MTXS[_UZ\[T[\d^\dYV]a^V^Y`W_WY_`_Vd\ZZcU^UUZ]XX`T]W`[a_dhUYbX\\Y\bTVWS[ZVWRZV^WR]YeXYRYR]]Z^[ZYV[UWY]WO^ZYZ^aXZYRXW\P^XVUXdXVV\_P`ZWXc^\XXY\XUXWV_XY^\\OdZ^_Z\_[T_\YYaXV\_c^UU\`ZRT]YRWXZ\TRcZW_R[UXY\SZXYYWbUQU]YZW]aYb``aV]ZVS[dbWZXl^UZX`^`^ZT^[Z[[YWUTR\dX\XfRU[Y\^[\SYbW^WVXPZV\V\V]TcVYX^ZWWY^]WTXVV_d_\RZZb]WXXUZdOY\ZW^XY^]ZVWW\M\][Zc_^^^_RXR`\RX_ZZPW\YZW[[V[X[[`]\R]XXZ`XZ[_]YXV`\[T\Yd]bXVW\UZVYURYYZgaaXQRWX\YRZX^[ZTk]^XZ_aPd]XXVR[U\]^^XWWXXcQPY^V_P]ZVWRZW[[`RXW`YeXQW^[V[SYUY^W[Y`Nc[Ua^WVUT_VQeXSVP]UTS[ZZXbUW]YS`TSV`UUaZZXZY_YW_\gVS\\ZZ_[YYVXUZV`[VVY_`Z`WYY]bUX`]VcVW[`TT^YUdZ\YXYSYY]Q]aaVUZY_c[_Y]]VWU\hVUc\Z[P]\RVRTOYX^UY[WW\[\WSYV]WW^cZX[WW[ZZaV\[YacVUWdQcV[M[WZ`VUd`YWRRW`]YW_\XZXWP``VSWd]aNS^ZTW[]YTb`VaXSX_bR^V_YXZ^[_^\]R`VTXYcMRX\]_YTYR]]N`UQ\VUdZWVT\S`XRYY]Sf[Y_]cR\P]WZV[iW[WVb]Z]]X_Z[Y_\WbWZZ_ZbUO]\^^V[QaXWQZba^W^]T\^VVbUZ[_a]QX]WVQ_VXYVPPS[YQfYbSR[SWV_ZRZ^[\`]]^Z_UW_WVbW\a]eUVYS][Y][`VXYVXXU]WVT[a[XaZb\STXWdRWf`TVUSXV]OQ\U[V[Pb[XM\\Z[cVUbYZ^^Y[X\Tf_[\]\^Y_]TYcQbZ[YU][\YRgYO\UYVTZV_[Qa_S\UVW\WRXQ[YRUSU[X]`_UQ\XWW[[YQWaUNXY`\UYU]\[aVOX_WSU[`bWV]X\XS]]LOV`Y]XXU_[\a]UdZTXTUPWYYO\]UVS[YXa\^U_We_USVZ[QZdaZS]YVW`SZZWUZXTY\YZUS[Y]TW]YTP\Z_UXY[^VVWZUTVN_TZXYT]\W_g\]]\[XVVYS[ZWVdV[YT`aUX_ZZZ]S]VWWPX_Z]YYY]aU^ZXY[XU^ZYXVUYT\SVWQ[WWV]eZ\`XZ\Wb_[Y_T\\Sd^YVY[[XX\R^VNXVZU[ZYX\R]aUVY_[^UUX_VZaYgTXWZUX[U[TaY\XZS\[S[SW__QcXNOc[_\]S^S[Y[YZ[UXYXTUVW`YXfYX_XWVjc]\YYVYe`TTZXXTXV]Zh^[cZ[aUSVP^W\`[dZV_[U_TRX__\TWZbXR]Z[aX_UY_]Sw]XX\VUZUZ[YV^bXV[_X]ZWT^V`\Y]ZZ\RXWYY`]aTWTYWXWWZTWWX]]YSW]Z][[T\VS\YWW]SVZW^WZQXTYU]\X^UZX\f[X]]SSXc[VZZbZR^cc[XS[XRP_X]\\^TSPaSV^PVbXhTYZXX[S\UXZZdTZVTJY]XU]TXa`ZVV`S^Y`cUZdYfNZaWZc\WZTg^PYd[]TXe[Xf\\XV`MQ`Z[UVfbZ_VXTYWgP`^XUaV`U[Y[`a`[UaWS^\jPZY^]`QZ_XYYX[ZTVUUX]X_ObYO\Z^ZZZN`U][[VR[X]h_X_fZUYdaZVYVYTUYaU[P[VX^[VTZ\aaUc^ViXXXXVUZW_QZd[Q]_Z[WUZ`Ya_TW^_UUS[]^WYV[YWSQY_SV\VZZZZRVX\^YWW]UY[c_\NUY^PWV]WUbWW`SZ`\X`VRVY^V^YT_SZVXZSVY`WUSaZTL^[P_XTQYX^UQZV_T]V^\WZYZ[WR\XYUUbZi][S^W[\TUY]]YURZe`_e`a_T`Z\dQW^PXX[ZQ`YSZX\aSU]Z_Z]_S`Oc_]^\_]he]WYaaU]TXZUOa\YVVV]b^\[hZ_X_ZZT\KPWZRTTX\\ZU[^`X\W_]Z^]\RZ`WOXVZ`cT[bX]][ZRNX\gRU^ZZa\gaXd_aT`aRWV^bWUbXcT`\\X[\UYb]V]U^_\YSZ\]O[[\]W`X^WZVdbTRW`KUOX\\^e\X]T\S_WZ[SOZZ`hf^RU[XW^XUQVVRWNZWUX^Z^XY[Z[][\__T_TS[dcZ_\[^VWYZU_V]a\YX[R_]XQb[ThX_XZ]^YZT\X]ZoUSdb_YZT[SOZ[SZR\f[Y\WXVV[XZ^XRSSVTaRYWOXWSZ\X]RTZ^TS]]Oa_U^TT]^Z\XR\ad_XRVZYl]YU`VRTV`\_bU[W]Y_\\^fPY]Xab[ZcV]ZW`b]Y]TU[RWZ\]\]_cZY]V_\ZZdWXWX\YcYZSW^XVX\\`aU[]UVVa^QRdmZ]ff]agSV]WYk\VV^ZXYZ^NPZXZURS\ZZ[ST^`Q\WV`Y^Zh\UVb^WY]TUUVY`Yb]X_aWZ\]bdZ[UZYWRXcZZYSRPbZQV[WcT]\\Sef^XZRWa`N\dSQPXVNYWYUYZSVec_KRWR`Y]UWVU[RScYW[W[TTXa\URYYU`RR\\Ya_hV]XYZd_^[[[X\_XYZUaWZ]]UT\LaXO^YXWaWQc]d^WRV_S]g_TYPYYSXPgcVWU\c]QUVV[XRWR`US_\YXX[U^ZW_T^ZcQ`^ZaWadU^Z\ZU\X`Z_YcMVh^[a\i]ZW^bYWrYTaW[]e\Q^`[\QSRRXXV\Y`Y\dW]V_aZU[Z]cRUZ\VZY`][[d]TTa_V[X][WYVW\U_ZVXWZcTZQYc^`[WXcTYb[W\VWa[_XYY[STVSZ[bYaO\SbW_VZ\L_YWQZ^UWW]PbYZXWUe]ZW`X][VVUUUX]RbSS[X_UVS[YQSY]XZZ\R^[_\VZfVZ[Y\UR_WY_TR\X`V_Y^UYZYVfZUWU[ZYc[ZQ\ZVZN^`Y^W[bW_bbVU^XSNWZUTS]aV[YQ[Y[WfV\[YV]R\[[[[U[UTZ[]XY]YRYZVW]cX`Y_[TQ[_R]]]S]]Y]V[_bd]NZXZUUW^[TYWX]\T]ZU_[c\]QUUcYWaU[]W]ScZTUbZS\P^P]UTZY[cXTWV[XWYZTbZZTYR\U[`SZT[^X]Q\V`YZ[\XSdYb[WVS\bV]aVXZ\XaUY]ZZUV]ZRW\Z\TYZYTYZ[V\V^[W\ZR^X_Y_XS\^\]_TZX`]X_ZWTZZYUZ]fXS^aaYTPOVSZ\ZZ[Ya]`[]XWXZ[_[RT]X`TXZaW\a`O`QWZV_bZW]NXaXb_PUU][Ta[SUSTZXZZ`]O]RX\\X[W]^\\VY]R\XYZ[Yb\\[]VU_a^_ZY]\X]Y\][[baY]acWTc]YT[Q[NYY]\[fW_QYYYTXY]XZMXRYbYXVVQPX\\]NZT[UUVbZSY][YTW\VRWaY[[T]`[RX`WTWW]_\V\YZ]`X\VY]X]]XWZV^ZO]ZS[[YU`XWT[`_[SV\_e]\VYWU\YUXiXbWZ[ZZU^^_ZYZWV\YRX^]YYXXVYWWWcX]WYUPPLXZWWW^ZUXQPQV]\e[^_XhU_XUZTVaaUW^bTX_UY`WR]V^d]TWSgYY]XSN]a]]XZZYa`ZW\XaYU^TZ_\UZZTYT^^XX`f[]Ud]XK[R[aeZWYZX^Y`VX_N]ZYW\UVe]XaVcV_kPRT][W[a[Rb_^VUWQ\WS]UV]_Yb`\RXRRZ[]Z`bUTS\_]]UX]L[_TR^YU`WhVVUVSUXQXW`[X[^fVSWZY\ZY\Wa\aRXZYbf\XW]WXTRSUQTV_dYYRZUWTZTZ\U]]YUVVYYS_]UZ`[Z^][Z^ZXf[VW]TZX^V\_YX`]^dXWXXS]VRRZYbUZUd^f][ZXiWXVW[ZbQR\QUSZV_`XS^Q_[Z[V_b_SVZV^UXUTXYXVWX[[_f]`XXZXSU_cc[VWRaeXe_c]^WY^Q]Za]W[aaW[RSUZT[\_YUTWWca[WZ^U[W^Z[UTURZTSUUXW\W]T[Sb]VZ[_VVhYYUZ\UUS^YVXTZ`^\]l[\WZYYcYZRXTX[YR^_XW^ZS`W`XRYW[X_`YX[WaYX[^T\^YgYP[WXQ\OZ`Sca\_[]Y[U`Z\YTUX]g]RYYW[RV]V\SWVR\Z]YY[XbO^P[XVb[^Y]ZVV`TU[^\Y_T\_QZ[VYTV^T`e`e[^[^VXVZVV[UT_XZ\XXTTWRUPQZXV`XZ`TUZeYV`[]W]^k\Y]WVW^Z[]SW[XbS^d``VY`Ya[VSRZQWc^_^XX]P^ZXXZaRX[SW]YUZUW`WVT_XT[Z_YW\c\\[TWTY^Wa^Y]R[\YXZR[QW\``b[Y]S`[_W`ZU^YWWUb]_Y\RQT\f\\dZXO`Z\W[PW\V]^_[VXX_W[\XSbW[WRY\`XUXSbWM]\TZYXTXYTWZeX[ZXZXW^Yb^NY\W]T\ZT]VU_]Y^V]SQX`[_\`V[WVZem_Y[[[\Z[^aZ\Wd]ZUW^S_ZUW^YUX[]UV^SVX]S]UWW\a`UY[YW[`__WP]_Y\b_`VbVW\[ZSXVhK`\\TW\W]Xc[TYSOUT]S]_ZVW[[X_aXWXYP``\W_]]X\Z_[ZWYXYU^VY]`ZW__ZX``a\YXb_`a\WYW]^`X_[c`^XXTX\WXT\]XX\^aX^]VS^[Rb\XWY^ZWU\XY[WXUXY\XWY_\ZWWW]VXW]Y`VUZZ]_jZZ_VUSW][T_[N\RTZU\WRVc]\XU]Q]`WYYW^X]Q^[[XUXUb[O`Y_Z]dZ[\P^[[\Y^^_U^WSU_TTZ^`\W^Ta^SWSV\ZWYZV\XTXW[TX[]^]XZXZU\[YWTS[YUXVZSV\[VjX\T`\eYWRY]US_Y\VdV]UTOP]TQZlUTTVbec\_ZZ[]a\TZ`WUZeUTn\X^[VbYWZ^^ZfW`Y]WVRZ[WY\XRXUOTZc]T][VVY\VXTUQ[[VTY^dfUXU\XcXXW_VXS^Y[YXe[[^ZUVZ]PX_YZcfZYN^SPV[YYU`ZUR\\URjYTgaTY`mS[NfSSUcg\UX[aXXWYQVbZX`ZSX_dYTWZXUW_]ZP[SZcUTWZ]TY[[ZW`W_Za^VWZYaWXXUWa\W__`\XRUWRY`X\]^]eWYSWY]SgZ^XWUS\Yc\aT[\SUV[TX`V^]Y[\SZaYWaSWV\Te\ZR[XbU[SSWLd[aQN]Vbbe_VZ]Q]]bS]abNXaaSY]W\Xa[ZXWfST\[YUOXZUYNZT`Z`]WZQY`V]`RT[XXVXOUYVaQXXcKSTUPXXURacVT`Tb\d]OUWQUV]\YWeQW[O_`N`a^^XV^abUXYR^WZaSLXY]_TVbVY]bUVV\`PU_^Wcf`_[[^VYW[][eR\VZQHRVUZeVTXSRUYZ\UXV[^U_O]P^TRRRPRdYWR^X\QM^V^YVXR]^^WZ_PdY^TYXca_YZ^XP]`aTQcQj\b]PQVh[Y_`gW[qbXV_YbdXYVWaXWS]_\SUVV`][RbQ]cQ`VkYXX\bcT[XVN`]\Y\QVX_^_S`X\UW\T^ZUUS[c`_VdY_U_XUUX_M`]]ZSQ^WYTYL^WXRT]WY^VP\b\XeZ[XQ[ZW`]]cV^UUZYb[\[`[`VZZY`\]_TZYV]X\]TV\^\^ZXTUP]U[^W[Y\T_iQT]WZX^[ZYe\XP^`W_N]^VTR[VU_ZO[aYQT\U]UOV\_`S[UZW\bi]^YY\QYTY[Ra]b[ZU[_VTZYV\VZ^`X[Ya]^ZhY\XYX\X^S^Qa^`YXTZYUcYRZ_[VYXXX[\Y]ZXU[T`X]Z\^\ZWZM^T\W`_S^P[]_]YVZWbS]T\]bZPYX]^]ZZVTTWX[\YYUZ]Wb`XT[Z^S_XQWUXOZYYWZ\X_VR^YWTaPZUZ]ObZQWZ_^ZaXXZWY\^T\Q\TU\Wn\ZQfXWeT\[XWg[Y[UX[[]b\XTU[ST\a^U\bdUZcUYWbP]][Y]_U\[TYV[ZVb]YUV^WW\gUd[]TRY]QdY]MXTX[T]_jT]`ZeYYUZRZSZ^VU[VZW][Y[VQ^SVZRW^ZYT]_[^e[ZT`URZ_\][\UWZYV__]YZa\\\X^]TRR`^^XYY^[W\UVT[YVW\[ZTU]\WVXYbWU\]\UR\X[TY[WX^]QWZZ]UXRTY_ZbXZT\\\UQ\UN[PX]nYYPVU\PX]a^UZ[T^f`aYP[VZdUR[\VTYX^cWMZXM_WT_XX``Y]YQbgU[_TeY^X\ZWV^S\ZcYY\TXYQ]W]aR[ZWTWW_USUUURcX]X_RZTR\`W_TZXZN]YX]d[WcUa^T[TVX\Y\`UWYTk\[[]WY`S]\Z[bRaWZ\YT`VQUf][XUU[ZS\Y_^TWPbcZYWXWRVXXeXa_WQa`VRY\UZZVUXQY]QQZY]`cVYSUX`YV`YWXVXQXgXaZcV[Va[[\ZXQX\UYWUVUXZU[b^YUS[d`UdQ_[Z[XZ\VZR_]]\VU_U`VS[UXRaYZVfXXRQScm[e^]^[VV`fXThTW^Z[_WaW\[YZcVSXa^\\cT[WZY[WYe_W[]\UU\ZYZZ]ZXWbX_^[V_\SW\\aZYSZZ[U^T_`XX\R^]b[`[TX]dSVXW\XXY]W_\Y][_U^UW]`\dVZf`Q_YU^X\\WXX\TZRY^U[[U[S[XYXVYhW\XV\WYaZaUV`UWXXS[XY_WY[SZWX`XWTYYd`WOUXVWZ[Q[]_X^YZXTV\ib[[ZWZ[^V`^\^XZYaUW`a^UVmXRWYX`RZa\VYXTY[^Q\^XWZ^XVZUW\M\S_]bWUd\XYVWT^XWT\^QYY]W[Wc]YY`V]R`_UWYe]]XYRZY]XWZXh_a[]][W_WX]`U^^`XY[Vo_WS[YWUX]YX\XZ]WYYaW^VXZZTXWY[cMYX[ZW]TZS`W`]aVYWX]UWVXU^UWRRaVV\ZWaW`^\^WWYYYR\fXXYXaVXUPU[VT_\YYjTWZ[^UP_[XXY_V_VbX`W_Z]U`ZWYYU]WUYTV[]Z]X^W][YY_][[[PYZ\X^abSUccZTY[U`QTO_]Y\ST`\_T`[aUdX][XVZXWXZTUW\^Z\cV\Z[YXX`[\VUX[X^_][\``[SaSY]UaZebVYYY_W\`_[[YU\Z[\Va[V`^W]SYS_O^]^\Y]S^Z\bXWX\[[XZdUWZXXZU[]VbWXY_\\UW^XSZO\Y\[WXX]]b`[]h_^T[_ak`SY][YSV`OZdWSUWSYRWXOe_YI\QVPUZ^[ZZSRUWZWd_XSW^S^VWRPh]^Q^[TUUY\a]XTUYY^^Z_RZ\T^\R[U]`]VaXcH^gX\`]aZVYh[ZWYUYYWYSUR\UUa_`^SZYVY[`WXY\_WTXZZR`ZT][bTYRXaU^]WQSXa]WfaWWX]Z]]YU\^aYQh]bZ\VZOXXZV[acX^ZVXVX[`XX\dY^PW^c^^b]WZYcZT[Z[[da\XU^RT\SQ\]YT]a_a^\\Xb]]aYfW]]d_QeYc^R[RdZX^aa^M]UdVUUa`VX_\\`[cURVXR_]bVc[P[SUTS^WW\^YXXWQdUWZ[\aWYXUS[ZSWRWV\WbT]Y_UY[UWUVVPRXVWUUWXSXXVWWYT[V_V^ccXX^jXY[\_TV]T\W\WZYZQVWTORVSdW\\XXZXTVdVU[RWaWTScVV`_[R[X[k\c_QX^X^\YNU[YXXTV^\R^]VVXZ[V]gb[]TSWR_Y\UW``Z^VS`\NS]\cZa\_R^VZVTaRYVPX\TWaR^W]WYSWUU_]^T[VXWaZSX\]YZ[UTVdWQ[V[_LYZcVYYTVP[]XZV\W\\UW[PT[XVXY`VZZU^]XXZVY[W]WZ^cT[WU_ffS\]XO]_]X][_[]ZTZ[OUXWR]WW_X\`W`W[`VQiPaYWTc[Y_\[TTQTYZYS\XXPe[\Y[]RZVUX\W]_^]Y\YW^Y_[RVY_^\S`VVWTeaXXR[XUVWT\XV[YX]VY``UY]Z[bY\^TV^ST]cS`]ZQWYYT_aYZZXSZe[Y_g[_UcPdT[YV\U[SXZ^Y[h[XY[___UXYVX_[Wb[YXYZZ]]X_TWXWWV_VVZ[[XWXSWY^T[]TW[[V\Tae[Y`a[[\VU\V]QZV]QY[cUTX_[eVZ_UOYY]Q_WaW]^Y`aTQ]\YUZaV^^`S]\W][O[aSX[UYUR`WY[VU]X]V[VTSZYYXSaaZXPZVaRXYWVVTVZ^^]\bR[UV`[_SVQ[XXWX_\_T\VX\ZT[YYV^_`UUZa]fQ^[QYaUU\VdWXUZ\]ZV\][VUcV[[^aU_\U^X\]X[\]]X^WUVR[b`\X_RidU[`^^ZaS[UX[_U[XZX\W]\`^]]Y_\`_[TZUS`[Z_V\adZ]]ZYUfZU`TZaWWVV]W`ZcXS`]VaYVb^USV\RaeY]S[Rb_YU]^V^WYbW[X\[WX`[USZZZ^aYYXZRWYZ^[[XbYUXW[YW`\][ZT[XTY[R[PV\ZYTTYU[UU]Yg\]UUU]YVYR\YVPWPWZZ[V_Z\ZXW[USU[WWWUTX]YWVbWVUhU[XZX_Z`V^[YSa_\^XVURR\UVf]UZcV[\]]\UV_VY]R_Y_VYTV_]Y]Vb\aY\WYeX]U`ZZ^ScQaWYdU^SUQZUVX\^VW]TY[]VZa\WV[V]S[RbX]aXeY\TUV]\\XRTUZTc[^XZZW^X[XcVR`XWMY_Y\bYRWVULSZ^WaSY^\ZSW]_Z^X[NYYTW]c[WY^XVR]bVZZ_XZXXUNXY\UYV]\[[YZ^^[XVVYUTWN_]XW[a\ab[WQbTXUbY[b\\`aVZ^WYXdSYZTWVa[V[[[V^TUYZ_]Z^Q^[ZW[Z`Sb^X[_YTYP`ZYb\bZ[STga^[hQ_QeXW]_ZgUW]ZVbb``f\SZ_Z]S\\c`_XU[QX]VeUTZ\WbQUZ^TYK^bm\R\cNYjZ]]Vc__\[cURbYe]ZWWXa\[aQY[aWRS\YgXRUQQTYXU\b[[\cW\[Z]\[TVW\VYR]YUWU]UVYWe^[cTZSUWQUSZYSSVUWiV`[S\ec\Ua\^\`Zc^SW^]VRY[YYZZW_S^Z^VZ]V[WW^I]W[aVUWb]U[U`[YVY_^^WY[^P\YV^YUfV[SZhV\YW_\TNZ]RV\\^^\N^[]\XWQYUX_WiYSY`T_WXWU^eV[X^^]UWYVTgc]\\\]TTUZUW\Y\]^^cTUXRZZ`]WZTV\WUVRQNYbVZjP]UX^Y`YTZ\ZPVc]XgXW\\YYV`RV\bZ`S[TZQQV_^ZV\jdYTWedYfY[RVX^XYTU\[aVh_aU\`_XY[[XZY^^UTZYUTV\[ZcV^ZWWaZYd\sUU[^UZeX\RYW__YXSUXaZ\VY_`_ac[\_YY`dTWT_][Q\^]OfYRZVT^\X\YWUZaQZYXTYZVc\V_WWZWVT^ZUUP`Z]`^[[RVYYVa\ZYZYXb\VWYaeZUU\[S]VWbYWW[ZXVX][VYXZZbYYYOd^Q[X]_XTWV]X_ZZZ[RT`\Y[U_bY^Z]XXdZXYYW[]^dWT_P[^ZU`\cU[Z[PX]UV[T^^^T\^`^O]ZYZQX_T`Va_WSZcb[Y]]SZX[bXYR\UX]XQZV\[]QXZcZXccYXUfbXVZQeXZWY^]dXW^YbXeWVVX`YY\[`R]]RXZVS`X\[Z][XPZddVRXWXW^^OUXYUX^_YO_c\RRUWYWVaWTYZ\Q[_XRZYTY^Z^^YT_X_XY^`YUcVYXY^^Wa\TW_^[U\]VbQ^ZbY_XWWSX\[ZVW]bjSTa[^WSWWXS^[`X^[[]X]ZXSaYX_]X`VeZZ[[`]UU^^^c[OVV`\WYcZkYSZZX[^\bYPbP\]VVYVTXXSZZUXTZU`Yc^VU[[gYT_ZZZQ[\RTWZZTZ_WW\V\Y\\`TTYYW[Wd\UWUZW^abZbY\XT[XZTf[[[WZ^^^ZX^gW_^UZ`[Um^YTZ_]^\ZSX\[UQf]]YTTXZYYUPYYXXTXVSV^e\\cVR`XTZXX]X_UZXWR`[^US\VWW[_ZX_V^XUQYbTYWQ]WTTU[cfaUTa_^YYU[aZTW^V[VS\ZYVP_LaXh\^Z^WW\`^LTZRWX[X]VVa[^WYVU]R[ZT^P\ZaaSa^RYZZWa^WVUXYQW_WWjUY^PR\O_VdSWYdSR\TVbZbW][XabQmVei]SR\[V`kUYLY_]UX`UZX\PSXZWV[[UeO`ZY[\R\QXQXZ^[QVV]bUXV[SQZ\ScZ^fT\\WP\XUWb`Y\UWUZ[\^SV[TZ_\SUXSR[VZ^S[T[YYZSRTUUVS[bRZWYcUWZVXY`W[^[hW[R]QVVP\XVYXZZ\`NXX\Y\\_[O]^[Z\SVYVU\W`cZRX^OU^_^Q_[QY\WW[URZ]bY`V_[[_MXW]Y\ZP]ZQQQaYb`a]WYVa[XV\kO[`ZXSVPZ]YXYUVZZ^YaW`WW\]ZVS^VWXY`YUYO[XcV\OYdZa[]XV^X[[UV\\`XaXZfV[VWafVWZYZdUUZTY[W\T^[`]T[WVSURYZ[ZWYR_ZX[Y]QZ[^YVTZYTSdcSSXUUVVYVQU]Y_Z[T`VZ]]XWXX^iV\WTZVW[Y\\P_WZUYYXZ^S[[WZ_]bZY^YRTV\\_WU_ZZTTX[\c\Z^^\^SVY^VYaTV[ZV]XXX\XSUZVZZO_YSV\ZXQRXZXXXU]X[]SXZ[_XW\`^_XXW]_bYVXUYV[TZYRU[SV^Z[aY^\QWURTY]UiWSWaWWhYY^d[X[W\a_Y`XRYa_SX\bZWTf`\]_]W\Xa`VYWS\\^`XXaWgVY]VT^eYXSYYU[YSS^YSb\Z\YUY\[V_^Q\VYW[aTX`XW]VU`UZTYVd[\R_`VYUaWTYRZWW[Z[XUcb__WUWOSWR[b]YWeUXQZ]\oa_[^X]b[TX\\__O[ZTZXUfY\d_SXYWi^\W_^XTX^\_YU^]R[W\Scg\UZXUT[]`YV`XVb]\]^dY^PZZT[[_Yc[cVSXZU]^\VZ]aX\]U]PaW\VYnYS\\]]V_aVV[UUa[RZS`\U][aTUYZX\T]Y]UXV]^Wc\Y`ZX```W]Xba_[^]\]SbgXTWRTZY\^X^XW_Ya`_^W\[][\haaP^Y`]XbZZZWU`Y\XZUYV[aWX`\U[f][Y^\XUUZU]YYZ]dZY^ZWeZRZRaT^]`XXXbV]]ZV\XXWXTfWdXMjX\VY^a^]XV[XVZ`WPTWYYb][UWUW\\X\_QXXZ]YZYW\YQ_Z\TVYe`Z\aZUUXZX]^fZ\^`XY[\Y\XS\XVUW`\VW\\W_ZWPX]]Z\ZZWW[\SUTYPV_Z]XZSbZRUWSaR^\]`U\Y[XWTX]\W[Y[\]Y\][Xa[ZUYVNaPZRZQZaTYV^X[VYRXYXXXcT]YXXY\VY^TWT^\OX`ZTiN_PVT[W^]TY[[ZZW\RcaVXUUYZaTY[ZR]Y_]V[TYX`T[XQ`WWQYZTVSXXYRX[VWY\Y`WYRW_WVYT`ZdZS_W]__eZU`Q\YSXR^bW`Z^\T[W]SQTY\_Xa]U_SZWZW`WWYTc[X]U[QdZWjZYW]Yf[Z_XUVY[\T\_\VTTZbUZ_\TZ]Y[Y[X^_[]V\W]USVUX^SbWV`U[[U[Xc^WTbZ_WZVNUR\`VZ_[\`YX[\VRbUb]][TY^V_`TXY`a[WXT[XYX[VUc\YZaXZ\WXVVW]^_e\[YZZSeZW[^U]ZX[YVW[XY]YVWSTWWV\QV\Y[YTXPV[U]__aZ[aT`\Y[UT[bSZY`Y`RQWZUVUZX`W]UUSS]T^VSP]]UZ[U\\]SR[UUVYS]c^YUSY^UUWVUV]XUVVQ]_ZRYUZZ\PO]]\XWWUXY[WYZXi`T]XT^TWQ_]ZXSW\Q\[VQW_fS]XX`VYWOVU^\ObZW]NUZX\`[PeZWTSSX[R\VSY][VZX[Y\aVRR`SWUTOd[a\U\VV\ZQ`^WY_T^WVX^WYR_\\X^RZYbSTR`]]TYVWWSaaXQZVRU]V\Xf[fZW[R^Y[[ZZ`^ddY]\[\c^Y[RUVXS\]SeO\[UWYXb_XYYm[XXa_VY^]XZUWTVWW]SU]VS`R\TTV\VWVTXUTXXUV\YeSRQZVY_[XVVPW_YY]\ZY\^SLX\\\[YSh_Rb_WYUTQ]VVY]]U_XS\]\_UYWZ^WWS_SVaV[YWUaM[gY\_XXVWa]X[[bdZ\PTV[XP\XT[Y[aU]XY[ZTkUXXZVXUXY_cXOVV^X[XV_]]OUUXa^fWVaSS]QRb\a[TU\R\]QV[RfN_d_Z[baZ\\Z]YYX_Y_X_dX^T\V_TPQ\Q\]SOWXSb`XQS\[\XVYTZ\i]WZ_S][ZaT]YaSU[U^c[\\bSXU`W[UZWTWUWTMZbXY\VORTZZYT]_W]VT_\\W\a[QU_XW]\]R\^\c\XbaO\]M[^^VZLPS\S_aT^_cXTa\bdU^ZXWX`UNV^c\XTXXYZ]Y\Ue[WVX[[THUV_\eUb]TY]UTTX^TV`WWVVYWV`WU`VP[VXTWWWWVZ\WX][^d_cJVVZVTYZ\TWX]\ZOX__Wa_[U^U\UZXTdVWY^VS`bVVaWZ^\T[U]XaVVZ`T[WUXVWVZX]ZfQYY_aTWO[XZUVXUZVTYaZWbTZ^LWYTUaQPPXXZUW[U_X][bVX[\TPXS[VV\VWUU\`T_U]Z_\^^WcU^[[`RR[[^a]^_TVbbZO\SY[\XY`W]Q[VWZSWXZcV]XU]OY]P`Vc]W_^XT_]]\WU]QVYX^VY[XW[W[XNWaVY_QSZ\RV]_XYVV^UZVZWV]Wb[ZW\\a[OV^YWT[^a\X]\UWSZT^YPV[X\W[YT]XS_`\S\Yb[WZYY\[UTVXXYa[]^Z^R[[X\VW][aO`XSaVRVWZ][^TXYWWWW]YU_VYZX^UQ]\O\YWZWWZ]W_]b_TY^`dXY^YUXP_WUXVd\PS`[^WWZUXbO^cQWVZ^S^[YXaW]W\XUX^]UWa_^R\YSa\]Z_ZYU[\WW[\TUTYUWTVaXUU^^aXVXeU^X]`[UWbZZU]P[^_WWRW]`]XWSZVXYZYW\Z\\ST^U_ZT`W\TZ\Q[\Y[ZTT[X^WYW\VY`a]^\d[ZQ]WY_T_\c\YY[gZ`Y[QVTW[[bZ]YVXZdU^U]VYP`YZWWX^YW]YUWZU[YXS[YXbSa^cYP^^YU]ZU^V]^UQST^Z`\^W[ZZ^]Y]`Z_VgZY\UW]X[]XXTYXWUSY\RW\UeY]Z]UXUY[VWYcW_]ZYWQXgYYbZ`]bSXaV]VW]\TUTTZYU]ZUXX_VXXa\[T]UZSP]\UUUYVTZ[\[TSVaYW\aWYWZVSXXW_VbVU[Y]`VX]QZV]Z[U[ZZYXcZXS[Z`R[aS\]Vc]ecU[Q]adW^\\YO\cT]^[UaYbW[]_][U]ZZbaVYS^\eXSVXYU\Y`ZZYJ^^QV^^YZUZ\V[]]WW[TZV^cYYW[P`^QSWdTWbUVTTX[ZZZXPWN]]VaQ\ZXXTXXQ_X`T_`XVUTS`VU^ZaXW]V[MbYXV[YSc]ZVWW_VXWXX\SXYW\\TWVZ]UVS[S[X]]]XX^V_X^R]Y`WbV^LWXYWYYYaNaX`TYY\__\[`bYV^YZXaiYcUWce]Y[[YZcP\WOW_UZT[`dS\VTXU^XTUgWYY_^YRRSWbPXKYW\VVZ^W`^T\XXb`XXXdXQX[VOWaW\V\^\Y`]dYXZ^[ZS[aY\TVTaQ\`Re_\WX`]XbcccT[XWWVTW`aR`UXXXW^Y[T[TYXh[\X[]ZW[eXUX]WXVXVe[Z\]R\^V^\UW\TQ[[]TX\\W`]VTcaZYPTZSRTZXY]SZb\mVTV_b^V[SYY]W]S][R_ZRZaV[_WVY^WXZY^WZaZXMPYT^\`]Za[_YW`UaYURV_YU^_X[UYajUWVZVdV]\[c\Vd]\^`WR\W\Z\XZ`S]WXYY^XcT^WYWVYXZW\fdYSSa^a\]\]VL[`\V[V\R]YYYa]UZ[g^WQ_gVYUU]\TU[^]UYX\V`Z_UUXYT[\Y_X[b_fUWXT[X^PU_^[]][\`XW[VUTW]YWWdXT_[`TWWZ`Z\ZXXY[\[ZZ\a[cSYWY[Y]]\_^USUUZYYWWWUZK`Tbc]ZS]ZZWTSUVXW`W\QUWTd^\\YZ]VYUTbUY]WXa[ZU[XX\OZbXVZ^ZWZUUX[U\VV[W\[[PZR[aSXTWUXZ]^U\YX\\aQSWZR`QcXY[TUV_\U]V\UXXUX_``Y[Y^YVWUP\U[XZVZRVaS^\QZYWYW]^VYYU\T[URYVXeXaSTW]QW^]V]TW[WcTP]V\UW\U_^[V]\OdXYWVYWV\cX^SZYY`\[_ZW]]S^Z`^]S\SPT`^][c^[O`\YcX]Z]TbXfc^ZXSY_kdXUXYR]_[RRb_YOUaZUNWZT[XXSV\X]aY\ZY]]]]^\T]cSX[XWUTZSZ[]URWUa`aX][X[`YU\WTT]X`SXXPWZZSWMZU]ZYb`]USX^VXR]WOZTWVUX_X\]XVUSZW\[SY[eY]WUX\SYYXU_]aeT^QWVW^X^a`YX^]TY`XPZZZWa]Y]^]bZS^X_SbU\^VYh^`YXZXU^`Y_X]YgVSUXXYY]XZb_ZRU^[WZSRhe`YNOZT\Z^\cWZ`XXVWbUZf_^\VdYV]aZ]S[VVVX[_U\[W^aWXSZ__[UXSX]XOa]Z[RedZX[^eUW[ZTXWUSYX\`Y[`XdUaTQ_WW^^ZaUUTWVUW_YSZ^W\Z]W_hZVT^^UXWaV`[_ZXV[\^U^T]ZSZW]ZWUT\__QVR[ZXY`S\bQU]WU[WaSXV]_\\`WWT^^VWU_ZR\a`QU\VZZVYZXXUU[cVUUb\SXZZbY^U\hYRUWZY\YcdTXUOSUaYSPTV\ZWXd\Xa_Z^mQVXWYUW\`YYZXahcRW\UbUWX[XUQSaVPX[XXVX]Y_VW`VXY[UZYXZY`Z^TUZV`PYUXb\Q\^]n[XfKY]][Q\\[X^][T\Xj`[P^c[P]\YWX]V^Y[W[QTU\YQZ[j`eZUWUW\UdfY[U[_^ZU_Y^QZU_YhZ\Y`\dXVNeYX`Z[S]^VW\\\U\^Wa_T[T]_S[WYUX[^UY]\fVTXXT\YWSe\a^YUY[e`c^\W\ceZhT\W^S[XVYU[YbXSUXQW`XY`^ZSZZTQ]YRV]WZ`T]Pb`[WUWOYK^^QXZ``_X`d_SX]PYZS^Z\bZ\X]SbX]TX[YTW\U[WZS[aVdXX^O^`V]Y^[^Y][\cVWZ_UVTc\eXX`TU\_UYZU\]XZS\Y\\YWX]^`[YTWWT^RRXXZQXbYaZT[WZQdWg_[YXO[YhUWWSXYSZRaY`T]]_bY[^]X_]O\\T[]ZQZURXUfOWZZZ]Wr[[ZUZZVRcYZfZ\STZ]ac__YVX[X[W\S]WXZZVV`WXTY]eV]W^ZR]SoSXW`\\YYQVQ]\YYO\][XXb\bPWWV[^VXV]_]WV`^Vb]]QXRWZU`]STWoPY[[`YWYbSXWRY_T][YPPXX]XZa`baRWWb]WaXOWVeXcXWYW]`jWUZO^\VYZWS[_XYN[X]Y[YXYYW]^XX\lY__N\\\X[YTUZYT\`dYZ_T`PeZ\ZRT]Yd]VZ[V^[[Ze\\XWbgV]_ZWe\YaeZc[W]W`cS]]Q\WUWd[Z_]VVXVc][TUW[L^ZZf[]VWYTY\ZVX`_ZXW[[UTVWUWZUcUPYZ_WU`^\\V[W`\\]YaZT\[ZTXS^T_\\UUZc\Ta^WaZ`[ZX[[[XbZW_YS^\TVYXTd^Zb^]R]Sa[eVT\\^VZUZYP_[YWWUTXU`US[Z\QUX[UUV\ZWYRZXWYhX]W`XVY^`[S^PP`\^TR^Y\__U`_Z]^\\b^[TW_SUZ^X_a\SV[V^UZ^^V[X\b\\bTUVW^RUWXZXUZc]YLZT^ZVbUSRZ[Y][^aYWWYX\^X]WSWZWTSZTPZY_WXYYOSZ\V___ZYaPRWWXOW^UlVVZVX\U^WWYcT__[WVSV\]X^`_`a`\[SXZYVdYV^\UT\T_`_b\TZYV_ZYW\^QX]\_Xb[Z[^Y_RTUf\YZOR\_W[`Xa[\W[RW^WXYVVQSZ\\Z^Q]\[bWTU\[UUbR[S_[^UWZ]^[aYZZXab_SSY_[UUVeYYXa]T^`TVVPg[Z^Z`WSYWTTU`TUYUaZ`YWOZXX[c[YZZWN`[ZY^gV^ZY[Z\P^a`ORX`WQ^ZZWUW_S[S[QVU^^[Wa[YZU_\UZXX_YZSXRZ[QR\Q[WR]^_[^YZU[]W]YVac[\`^WT]RYV^SUZW`b]bWWVdSZV\[`ZXVab`WW]UZW\[_[V\V]ZbRaXf`bXjV]PV[\YgZZZXYU]ZZQVabU[[Z^[]]Y`SOY^]Q[WVc\SZeT[Xda[_ZZ]eVY`TVWV\\ZSQTfXcZ\^TNUUYXWS_]ZZ[PZT\^YWW^W\T[[eTUR]`YX\WbW[NWYWZVXY\T[]\[P^[[`YZZ[__SXM^d^][URXS_XTW[^\XUZ]aY]_][TW_V\YX[^ZYSYZYYUTZYe]`SVXTW[VQ]aTWgW^X^O^`R\Y[ZZXU]XU\^UUWWXZ]V_V\UWY[Vb[\][VY^bZT^ZcWW_`[][X_WTU\RWWYYgT^XSVdQ[TWS\YXUTWVTT`^[W`bV]^[ZUk_SaR]Y\U\U]_XU]SYRY[aZS\dU\dYZT\ZT\XSbXV[QVVUXW\V\PbWY^\RU][YhXW]RYSZ^QT^OXVaQZU]VUVY_Q^YYX[VXZgYWWX\WQX[W[WP^a`ZU[c_]_U\SUVYRXVVdc\]__ZZZfWVYZW[^aZV\XZ[Z^[Z\`VSS\\_^ZXRR^]ZWRX[YaZYWW][W\US\\X[V]\XXW[RY[[[RTRV[_Y\^Y[YZZS_VTR[`V[a]^\Y`RS[\TVRWXVYSX[S[TTVWTQ^\VR]R]_WR`TQ`[WWWRWS\YY]WUP\XW\X]UVWYV^[RYUSXYdYTVUS[WUfUVST`_]g\bV]X]UW[Wa\RUS`WVSXXZ]Y_[U\YVQZWWYW]T`RWY[[XcV\WXbPX\ZT^\YXY`SVUZWU[\UcXX_P`Z\\Y[Y[]Ya]VWd[XY\aX^ZeS`ST[ZSXXT^\YXfbcX``RWT]^ZdY[YTTU]SY[P\`YS^]V[\SWUSSYVIZ[WTVVTR\S[\XX[ZTWVURTWQNZV_V[ZNXV^]]d^XW\P\WXYYZc__YRXc\\U\YYUaRW`YSb`W`TReY]XX^RXaW_YZ[^W\ZbX\][WVV`[X[UYUSZY_ZbXX]VYVYUT\ZbZWWfX]V[S\W[ZY[YWUQRX_VTWQ]TQ^]Q]Z[VTO\Y\XZe[WUXXVU[^Zh`\bX]ZU\TSWZX_X_\]XTU`_Wa_TYbU`Xb_TPZRY_bU]UbT_Za[\RU[eTa[VW[X[Xi^\SXSVX[ZX\_U[\cUQ\^T[[STVTUK]XZZ`V]X]SR\N\VS\Sb\^a^Z[T[_S\_W]W\Wg[ZMaQHS_QXSUW]^nYZXPTT\W^WWX]aWaTSX\d^aRWXXXYWTW\Z_aXY`RZRVRRZX[\aWVPR]YT[e_[V_WV\UZVVXWLVRVROT[XW[\Qfa`]WfWOVWY`[d[fSUYXM_XQ_T^cQSY]T`WhQf^[[\`jYaUTb]\cTUWYhWWaZ\QWWW_Y_VX]\QP\QUWXVWV_RZ[YU]^^][Z]dXRZ[ZV\[\[][SMY]cVY^XU_c]\R\UZO]_UUVXZTYVX\Z]\S^XY^PWanVWW^Z[]YQW^`X[`Ra^dU\\_WZZ[^WdY\TUUWW`_[X]Z^ZZ[SU[SXcUUY]jXZSUS]_ZW[Ua_U]RXWZ^VTTQ[b[aS\UU]WZVS\d\_b][V\ZX[[c\[X\XTW`^][Y_\Te]YTQU`^X\WUWW[[abU\XWa\YXXV]^VV[WTUYTU\Y\X^ZXYW^[bSSUZUUQ`VZ`VXUV[SYTZRS\[XYPc[RX[[QZZYXPb[Z[W^V^T`XTVVTY\PZZVZTWVj[YXXXMY_VaRTU`[Wd\V^aSQSVVTV[U\VZ`S_bYW_VXTba]TUYXcX\VTVZS_[Y`[_S_\\]]eUY[d[aW[XU_^UYWZ\fd_VWZSY]U_W]_a]W\O]VW\VVUYYQ^UZY]UX_\b^Y`[\UY[VTX[TWZ\VYZQ[Y[b^]bX[i__YZZ]L[VYYU]XbW^YPTY][U]RZR_]ZUe_\]WVXUXX`RZ_bUZTY][dXYZUQZZ\Z\YZUWVYX[T^`[V^Uc]RWYRUUWXY[Q][YY\eN[_W\VXPf_U`^RZOYdZTca]TWVU[Z\W_^`XaWX]_\XV[TgU[WfXSXPgc[]YZ[b^eSRPSQUZaZX`Ta^T]\^]R\[UXW[U]U[UbXXUZ[cadSN[]ZT`WSRV^TZ`WbRZZYVKU^\X[]TWVWY_[YXXaV\PaW_[WQV[Z__VU]WZU^bZWUeSYT[__XU[jTUQc]OV^VYS\^SYR[^U[b^WT]\_R]ZYVYYfRX]SWWW^\U]bXY^X\X`P_WTZaVXW[WRNaU]WZX[SXWS\WQ]ZXa\Y[T[Zg[^T\W^YYX^aPTTXa^ZWVUVVWW[^`T`WQ^ZWQaVYS^Q\\ZXXYY]`YX\[T]eWUWZXUYWX^]V\XXWTU_S\iX`VS^^VWV\UY]bVX`^X[]ZSW[_U\gTSRV_V`WZYYTdRUVZZRZ^^TZW[U^V]^]gTVX]hY^SgWYVZZaWUaa[]Y[UWR[\TYY\d^_]X]VaYaXWWWWTRZR^V^`U^Sh\V_W_ZZWXZVeZY_YWYZV[[^[YlYaZXUVXRWZUTVTYV^]Sc]ZZV]YZjVNM^`T^W^Y^V`VaQWWYSVV[XS`dWSUZSfZ\YTTUZ\Q]Xh\][cbWWYSZY_XV^g^TU\[UWSbUQ_YW_XXg[YX_^Y_ZXVYY]fb_X\]TYeYXVZO[`ZYW\U\V[`OYSYQ\Z\YZ^aZ[_WWW\]TUX[^Wb`b`\[Y[XZY^Za\WaSY]Z[\[[TVX`TZUVUWTZ[QRdU`T^ZX^RVaWSYVTU[fXYUY^dTVV\YYShScW]]\WRVZYUYX\WOS]]X\\V\[Y[VYRZY]b[TUZYXWYVXS[S\b_[Z\ZTT^S`ZaZVVZYTZfY\gVXYXU^XYXXW][[YZ`NZXSY_TVYYWY_Y[WVVP\\X^[a]VUV^[W[YWZe_bV\S\WbUV_Y[W`_^T[cU_^Y^WX]]UVQ][V_]W]ZZPZ]SX\VVXSYdaW[ZYXY\[\_\`ZYUZX[Ya`RW`]_b[Wc`^UXYQV\\b^cZZ]QV^^SS\UWdWdZUhSX\ZS_`\dZZZ]XTiY\RPTRSc[\UTXbe_bZTW\^[Tb\c\[QbVR_TYV_[UZS[^YYc`SZgWXWYU]\]RbXW]aUTX^^RbZ[Q\Y`QXcWX[_NWfP^]NPeY\]X[UXXTXbY^RX`Va]Y\YZY_^gSc\\^SYSYWQ`OcbZZb]XV\\\YSU\^QRbY__[ZZ_a_a]ZVSsUR^^[\TYUccVYXRZ^_YZZXMSaZWUT[Y`USX\S[W^^QYZO[eP^_V]RWa_XWWWWSX\UP[ZXZMcdVN[SS\V\dWcSVWV]XXXSZ\Y\aZYV`\dR[`VXR]dRUaQaSZWWZ_\[[Z_^^dVag^\SQaZdZ\UTZdWW[a[XQbWW`[Zb[W\^ZX[_RZ[`VW[`URSWZQO[YYQaWfVWQYVXZ`aU^YR_[U^`YV\Y]hSV[b`]UcZ^[]WYa[X`^Z\[Y`T`YPUSXd_^T_cWV\UWY\SPbSe][TbU\SYU\W_[ac`WY]VTZ[M]YSU\^L\XV][V[]ZXaVSWSUVTYXR]SY\YXXdWZTcc^]^X[XdZ\Y[YV`\V[UY\c]R\Q\cSZ\XXXYYRZdTcQST_\VSWX[XQ`UOZ`_XV_[WaVY_\V[WS]USaRZ[^T\TX[^Vc\[\ZVVYWU^_\ZXa]\l^^]YS[V]YW^XQXY]NRWa[SbbHZWXTYYS[aa[W[UXVeSYa_]USY[`[_TYVWX^UYXVZWYadIbS]c\PQZQfZZ[\_[PZRbgc[Q\`TZZ\XVZZWQYTYXWa^Y[Sb_[TUQXZ]_W\Y`\Ycb_ZX^^WZ]UZ\WT^VOYZXRRdXVU[[OX_bTX]WS\[\UUX]\PZX]Z\Z\d\XXZ[UZY\WRUZWUWXU\c]Z\^USS\aX]XXZUXY]QbZXe[Y_X__[WVTWWTRTY\]TYZWaZ[Q\\\WYQZVZYUaZX]WYXSZY`]X]_Y_ZY_VYZcWc\Za\Z^]_SUVW^\]SbW[aRTXV[SV]U[VcTX`LXSaTY[^^bU\S_ZV[ZYV[W[XWhWZ]XZ[\`[SaZWWX][[bTXaed^^\^[[ZS\XXXYYZ\`UWWS\VQ]SVS[XXVYWT\U_^[]YR\X\U`TZYZWc]U\P[^baVY]X]T\[Z__YYT_W[WXYZUX[X\S^^YSZZa\XY_U^\^[Z]SXd^U^VRXXTZT^X`]aR]Y\VXdQZT\^[b\^_[[VY`SR]Y[]]VU]S^Q]a]^YZZY^`R\[VSW^T^YW\P_QYV\Z]^[\[R`SV^Za]\\aWTX]\c[W^SbZ[V\Y[cXOS\W[XeSSSaPR]ZS[R[\V\a]aYZ[[_\TRX\]cabV[WY^Wa^W_]R[\]P\]X`TXUWTWPY]U[^_T\^XK\deO]X`[bNZSYUZXX^ZXZWRUZ]\OZ_U^Q]XTfVZ[Wa^XTXa[Za[`XW\UOT]^V_RQZ]]QV[VY]Z\e[^ZX\]cYUY^W[R\PT\X]ba_UTS]^bWfXX[_TOcWVR\XRTPSb^XZ_[]Wd^\d[V]RROg[SVUQW]XXYT\W]cQX]aQ]^`[UfX\SS\S]Z_ZRRYb`\YTT\G[XcS[ccZWk\WYbZQ`SnSX^]TWW`UW\[`^WSW[[epY\UY]ZX]a]`VZZS^UWY]TS_XbTJOHYUVZiU[Xa`QKUb\Xdh_^_kYUX\Tb\[YYU[W]QVWmVXW[W_^]]NUX[[W^T\[YTR\U]S[ZbXUSTTbSN\W]WbcYVZ\_eYVXQ]P]_ZM\fRa]X^a_TQ\O_jUYGXh^_iZSSafW`YY]NXS\IYO[Wd[^eVOZUe]_][T\\LaVRYZDZ_ZVaVYNWm]dW\[SaWVMQSTQ\SWHR[XQ\XTTXS^fUc]Y]XXYZhQW^Sga]YYU[]eZUJ_d]a\c[dZZaUSbX[gV`TdXTMhS[X]RYaSVO]Q^dQac[TYX_]Ud]_UZR]NbQWeSV^[[WTP][NXWXNXSMQ_YXXKWOZWhSWL[Wb[QbaIRUYaXX[Q[]OQ`NY]Rg_b[caUR_ZWk`ZU]EV_OPT^[XTcU][SP_cXW]]]]WaW]_SV\XZVTPV]VgTZV\c`X`ZT_[RUZWYRXTZ]VVWWY]VW^\\X\[TUVUYWYY]TY]VS]XTUZ`Ui]Se[^[Z^^Y^UROV[[\Q]XTZW[_]XVW[NWWWW`PbX^_XXR[XY\VZ]b\`Xa\T_VaVXY]\YbQZaW_`gSU_aSP]\WPRZUQWWX^Q`X\WPZ_[]^fSWRWYWPRS_Xd\V]V[YXOZTVa[]aS^W\\\XY_TVT]ZP`TV[h^WQTX^VZ_ZWcSV^[T]XXTXUSVRZSV\]dXXbZbbZhVUZ]Q^X\]_dXZS^[[]`QVT]aRZV]TWZWVY[X[`\T__\gTd]X[aZY[[hSRa\UQYUQ]e\UYQb\X`X]^V]PZ`TQTSQW]_USQag^\WVS\RZUTZRV\aWX[`]`X^YYf\NW[TNZ[[_ZbXXXTVa^X[WX^WkZQTKTSdWSfYZ]\[VSZUQW[[[c[Y\]ZUYWUVQ_`ZXVV^[cSUa\Y`STTU^V^QZXSZbTQWZZZZWaYb_aWRUXWYUYUSZgXVbdXZ\ZZYV^YO[Z_[[U\WUNTY^TX\`X^_^TW^U[Z_V[KZYYXSU_X]\ZZTYTTUT`X[_QXXQQZ\]YYWc\YZV[YV[W[]bWY][fYYY]][RaXiSX\`SW_YSVaTZ\QTW]WZcZX]ZZZST]W]TY\Z[SWeZd]VYNU^]]^X^SW]YQV`][\bS[]WUWUOY]`P\dVUZ`Rb^QY[YX[eVa]TZ^WXZUb_SWZ\YYcY`]Y[\_d^gX]XWYPV\U^h]]P`YSZZZXde\X]\VUW[g^ZS[Va\QWjP]YTZWWaUUSV]WcZXbUZ^XW_V`Xa[f]XTUYUQ\Z\^`[fmZ^^WSYUPZW[d_S\][^]UTZ]Xe\WP\]bbTZ\`]\RXZZW[_[bW\ZVQZX^Z]]ZTX^SV[Z_\VQ^V]U[Z\i[V[Ta_ZYXZZU[W^ZTS^ZcZbTbT^XZaXU[d\UZ]Y_TUW_[XYXXUYO]_Z]OVUaXTW\bYY\Yab^^Ze`WX_`SVYSUgWWY^]X[W[VVbPW__V`k\TWX\^Z]RaYT[aT^UV_WWUYTa]ZUY[g_TV^cSU]P`T[e[UVZYVbTb_WO]XZNRYa_UU``WW]\_SYZP`R\XX]UVS[]TWV]LY]KOWWNV^a`W\YU_PPdYXY[R\WZXW\UPVSXV]XXWT`V]WW[Xb]ZYZPVVU[W^TWYXYV^e\Z^X\[PWZ[Z]\_WW[YZY[\PX\Sa[aTZXXXV^SZ^UZX[bZYXWXRQU_][X^X]VTY[Z[aU^Zb[XW]UW`[XXZ^Z\VY\VZR`XWTTXV`[X[YUW__]YY[W\Z_XWX^WVZ[]UVYV]`S\b_[``WXbX\]caYXXVYZ^VUTWY]_Z[XaX_TZXYZV\ZZc\^XQ]^UY[Y[dXY]_ZYS\[YVW[XYZY[VU`\\U_TT[Y`Y[SXW`^VWTTVVR]U]^X\_^Z\R^UXWZVXYUXUWWWUYV\^\X[Z^T]QZVVR]XY[QV_]T`YZYSY\XRVZY]W]\[YbUW^ab^XY[]]S_cVTVZZZ^[Z^\[[X__RZRRVX]WV^XaWYY_UYS^TYa^[TXV_dXYW\R]VVZRX^WXV\[[VXY^WURTYS`UTYVV\]OX_U[kX[[[[]XQ[_V\^VUS]cPYSUYTZT`[\TQZZZXUVVW\_X]T[UW`UUSZj[Y[VUXUXW_W\VWYR[^^R^^b][[RUTQZbXX[\_]\UY\jWST\ZV_VYS\^\[VU\XUX`[TY]UIU^\YXVX\VVX]\UT[YU^qUVU_V\UYVU^SWRbV\]\ZYXQX]R_ZXP^YS\[P[[PWQ`T\\TVaVVZSW[ZY\V^_XYYZW_QWUZUVWS[S_XZVRSYXZ]Q[YV][WUcTY[VZaZV\O]TYW[[T]WU[XWS_[SXW_XYWVVNYUZ\Z[Y[Y^YZXRRW_T\ZQU\X[Sb[VX[ZU`[^V\_XLZT\RVY_XYR[VX^P\YZV[\\T[VZRYZ_WadZTdZ_ZZ]ZQUV_WUOVbTPZ[SVVIe_YUWT[W[UaSMQ`VZT]XW]cXh\P]_^UXapYZcU\T`\YZZSUd^aWW\W]aYVa]`PXMOJ`hNXWWU`^ZcZZ[U`VbYS`[\VaWTMWa`^U[^X[K^XU^]VdNRU]W_YHfaZZVaW[Y^Z_]dYWV]^`\_[_Z^gVe\VRWUVY^WUbQUhMUWXV\]^U]``[VSWZo`YWYTQTWSW^^Y\dT[S[WR[YX[T_V^UPXUWX[W]Vg\]WX[nWXd\[NVYRU\PXVeZ_c]V_VQV^agUOUS[W[[O^\\R[`aYWUWYZUU_T`\S^Z_`SXl]UWWOUUV[aZR_]XVZ_U]d\R^^Saa^[SY_XY[VWbZ_\cU\ljRT_^`X`UZleWhUe[USVUWYYV\[\_cdVRS[aV]]V^TYYZc[V]V`ZeO\bQ\PZ[T]Z[Za_UbK`SVWbUReQZT`S[]S[VfX\^V]V`[YZWZVRPR_\U]WaUbUUSe_W[c_fcXcTbTa`dc[UTYQXZ^[[]bUQXUW\XOeW]WcX]XS[eQT\RZ[[^P^V\XZ_P[YWUZRWRYYQVbVbPXXUXbZVYV_UX^Wb`^VXZQT^XaO[Ucd[VTZ[X\X^YYTVTXSYXKX]_WXN[aRV]]]fRVXeYaa[T^dg]`aTQUPdZ]\TZTdW\\[\dU_`ZRX_YfUX[jn\QWUPeYaVb]]YlTVfST\cZ]\UcTXTRP_SS\a_V\T^L_MWXcf^acO[e]XdVSRQYfUVZ[RP\gVOS`ZWVUY\_UPRU_]]^XTW[Yd\S_^YVTV^ZXTRZW\YXWVWX\S^TZ]\YTVaa]XXPY`URU_ZVXTXXXlVWVUXQYW`ZZUVW_aVba_VXX^VZ`ZSV[MZZ]VSO[YRWZ^VYYWYV]WW`\MYVX]cWcQfWTV\W[\XY]]QUZ`U\TOUJeRXoZRXXR[_WTWT`P_VTZVY]T^W[WSR\XUUYifVN^TYV[YVUO]ZX[WYQ[SS]XWOYZWT^_\XZU_VVU\bX[RVTZbVTVa_`dUYW\X]YXZNQ^T_]TVWS_f^WcZ`[]`^`][T[Va[bW\_ZNWOV[[XVZXWV\a]^_X[RTd^f[Q`bQYZW[_WYVXN\YZZ\VXU^Y[_S^TUY^YS[\b[aWUXYUXZSQSUZ[VYZWbWTRYaWXYYS\U\_UVT[TcY^XSWMQXYS\ZU]T^_^[hWTYRZX[WkZ__WZRd]\X__daUd[P\W\[Y[RK\WX\]Ta]R`Yfbb[^_Z__U]ZPXX^cVTTWUR\\XZ[\RYZYT]\]i][`YQWZZaa\[WYW[Y_`T\Z_X\]WXX`RY`\UO]ThT^V\Q]VTS\\WX]`SZW^Z\S[YaZS^W]TNZUXS[VRSP`^]RVTXc\ZSZYY^WVWW[[VY_TcWccQVX[[bdXWUVMTY[[a^SV^[\S^QYQW_YXXP[S\]V\[V[_[YXRSPYSWbVYWYWdVTW`TSWZTX_YkWX\TW_VSWZ\`\]cj`TS\QYdT\]ZY`VZZ]\^L^ZRWRRS\_UZVS[S[ZXWSXTSUbaWZZ[WRScXWVVT`O^XSnVXVYP[[]]YX^UZ_UWW\\\[VYXSaUY_\Z[PZZWVl\UXRZXTZ]]e\ZV\Tb_Y^hY[\PaVTdUSXV^e^\TV^SS^]]\ZSWa]T`PQ]U[T\`OQXQ[cZSYTXW\ORW\V]YSYQ`\S\\TP[ebWZdRYZTQUY^Z\WYRYb[X]T_TVXY\[W^R^]W[]XT[V\WX[\SZVXQU[\Y^b`XcRW\]WSRdT[[Z_WUZdZXdiZS\WYX`UbSf[YPbYQdXcYWXXXY\cZY\]SXZ]T\]QST]_W^U^XV[YWI`Ui[\[TRXNYYWb`dVf]bXfXO\TX]YV^Z\XWUYXO\YUX]T\TY\[WWWV[_\SZZa[\VVaZUT]]R_^XVZZZ][YZTWZgaXS^YWSOQWX][X\^WZZhXW[YW[^hY\Zd_SVYdSYcOWZ]UT][cQ^XWZRaWWWZ_YaXOVaY`aXYaV]Y]S\ZTd]WQ`W^R_Pa]Q[_WVXU]Z[^W`[`SV[TdOVY\WbXdc^UaXRfYZ^UYZV^gX]`h\[TVa_\ZPW^ZW[`UXaOeVRYWXS[\UTYW`[YPW\\UZXTVU_[fQaZ\TX\[WV\WN]^YU[^^YOcY_b[S^`WWZ\\]OZ`YTYUQW_ZXWpYUVY\UYckX[XZ^WWOSZ_\YZVZWU\W`YTZZXUaUVTk`jYaVbaaV_XcZYZ[b^VUSY[cYW\VPW]bbbWZVWSbZRT[SUUXSZUVda][Y_WZ\[eRVZYa]TVf_X\X]fYb^XYU\VTYNWXN\PbU]VaXUSd\W[_NVQQ]bVSR_URTQUWRfUUW\^ZTVZWWY[WWTTY\VRTcRS]S`[W`SVXT[bWUSWYZWai`V[_f_]QZ]amTTaSZUYV[LgV[mUY^UbUVOTXd\WVPbZ]VUXRZ_UaZ][]RWXY_YbQ^`Y_]^[PWTQU\]YZUYX]_Qc][UV[RZYXUWUR^ZXW_[c][\fdQ`[ZYXVX^V[\UObW[\W[LQTVYVXfX[RT\\[YRd[aQU_XYXSXZ]^P[PPX^Y^[VZWadZ\UVUVQ_^KZV\YS\W]bR_X[Z]VdUT]_c_Y[RT[VZU_PW]S[aWR]YPaY_TSb\ZfQ]U^^TTPX[bUa^W]`ZWT[[PfZ_TW]Z[TV^]^cYTYUOU]Sa^[fWYUb^TRU[SVUWgaXXVZO_ZYUSUdSWe`UY[\VXXYVTYQYZXU\SWYVZefYVcVZ`S[ZQRfPReZXZdYWTQ^VeYSV[ZaWaY[ZX_RcZgSRN^Te[VX[TUaUQWUVNYbWR\ZXcUZRYSbYYTYRVYD]ba^YgY`ULYaT_`b`]VU[QVVQT]VcYUTNVXYaZY[U_U\d]dOUXY\WLZ[SVXTQYVd^XiQO]TVd\l_[][KV\_NZg\X```USXZd`][b]VVVc[TPZVRWQXUY\WU]W_fTZ`RRT``X[aXV\YSYNRTbcXXS]V^bjLZM\[OSUWQX]YZYaWNU\LQZ[b][[OTS^UYXVVVYTXV^P^QZV`WZVddR]`bbaW]XZPOZZZYWfOQLUR]WX]VdXc`ZVacV_SS_X_]WZYaY]R^R_^W`YVZRMSYWY_fYKQ^\XX^ZTVdYTX[\T\`Z]_Xc[[c\aaa[TXaTW^YQYXP`]ZaMbY_cSV\c]NVa\Yb[\X]URPeSW]]dXTbW_\][XWUbUSSXbWYb^Y]_XXUX]Oh`^P[dYWYT]\]bXd\[\^VdQf^a^X_YYSYR[XZWXX[dYV]chb[VPY\\TTZZSWVZ[ZY[TVYZWZ\^a[_XVQDY\RZVYYVbbZV`VZ\a[]UcYT]OZ^]TU`[XYa[SU]VVT_TY`]Y[_RX]^\OZXUSYU[c`X^[Y]TZU\ZZW[XT[`_^Yb^__c\U^^VVZVe_RXZYSVOO\SVVWWTVU[WVXZU]fS[a^Vb`]aZYSc\[\TVU\]XecTV[[UXWOP\W^\XtZ]]^QQV`TTZ[QZ]^^V`V`[WRSXcWgYR[\RcUY`\NYN][V\RZXX]ZY[Y`YZ]V[TTY[_`]SW\bSaZVORR[ZW]YU[ZUVQOb_[Y]WSV]Wo\TUU[ZTZS__e^SYXZ^P\\YYZ[ca^bV]UZVXf`ZV^`[[a][ZW[]Z`\XUXV]UVXZXZZ]YWZVa[[PY\a]X^\hVW\XcW\Q`c`U\[bYYRUQ\Ze[^Y\]ZdW_Y{TZUdW][VW_[^QXY`_SaUTXYOaZ[XZW]ZYYY^W[L][SZ[VVXZ]ZXT_a\_\`W^^]qVW\VS[S]ZZZUbV`aUcZ\bT`XWdUWV^a^\ZUV^]Yb_YYWV`W`bZacWQRhZXNZS[_WV^V]Y`[WV^]_XTYN\PeZ`^bTV][Z\eZ\^V\\S^]aW_U`UZUNTcXYZY]`V^U_]RWYhV^]\V\^XdW[e[SheXZW`fYZTU]cQX^[]da[SbTZPSZ^WZTUX[STX^caV]]]RS]Z`Y[UNS^XWc[XZSQYV]Z`ST[]RZZ_bS^W`^ZZbX^YOWX_[OX\P\PYWSSSX_\YSTTdUUOV__SX\abUN[TYVY_T^RbTYV]\XXV^T[\aWS^RSYYWg^_]PPKY[\ZVWad^ZX`\Y]XVR_XcTPXX`ZQY]\\WUaYPY^]QXZXTWZaXWYQdST\_TW_XXbV]TSRQaTRXSX`Y^`VY]WYZOkW[]Z`^^S[fTZ]ZeXb]\_U]XTUZTQQSgWX_ZQ_ZWTSWhS^VV[X\`W\]UWY^V[]V`YPc\VXZYUYZ_]]_WWWU[TUbfWNPVS[UUVV\fWX[X`RXY[RQQVYZeZ\SWcSW[YY^hT[Z\YU[ZY\[VW`X]`ZYY_RXc\QX][T\]VZSXbTVU\Q^]XXdaT]`f\VUYXVX`SYSh_Z\\\UR]VYb]YXk^YZ`JSTiXUYZW_PZgZ]Q\``U\Uba[QXUWTX^SdZV^X^V]TZ^WU]RSRUY_^^\^[SS[RYZQ]YY_YVQWRZV\Z_RS\Y[dcWZTXW]XTTRQY]RPY\`WQ]WdTW^X^V`\__V_PQ^`XVOc[T]^MR`aORWX`[\VU[SW[Z_^`M^YbTWTShP\XYZNQX\USVOVKUXVWS_Y[X^XZUXUSTXRWTaRO^ZXbXVTWXc`WSU]WUV_^[YU^T[ZX\UY[Za`bXb[\\_`UdWa]X[]Z_VVRYQ[X`Sd[iV\dYSQYSXb[]VZWXXV[ZXXWZ[Z]aTWbX\\^YV^Y\^_ZYV`QcXO[WN]TTicgWWUUZT[XU\[XWT_cXWWVSZR[Z`kT`^ZWVUTW]_TUZV_VWYUbX`[S\R]dRU[VTSVWW\\_S\kSUUST\VWMbU\WV_SOXWTPaTcX\\XT_W]aMUbh[RT[VPY_Y_RWXV^XZUZ^UbQ[Q[PeP_R\VR_dYV^^[^ZSOTXZVVR]XfU[d[ZXYVe]NTTRQW[]XYW\]WOW`\T\T`[YY[[`a]WecOXv[`ZSZUT\[\`Z`XXZRYWZ[RRbVY[^^fU[^Q]a^aUeUY\WZVdWTZZVS\eNSgYaXleVVi_^WaTaUXXXYq`]WWST[QW`]XVX^XSKaY[RsYWUNTbh\TTcJVTWkPnZWST\OVbYWfNTQa[^]YbV_fSVYbYV`PNSYR[`d\ZX[`^WYV\bVVTYaTZNVR[WZUTYXZ\SXT\ZUV[`Tc^XYXU[PU_\XVWUV`YVa^b^[XZ_XQWWR_[`ZXXUV^TRRXSX[ZXU\`XY^W^UY[V_[`XR\YX[^QW\YUW_OQTaTZ]YPROS^ZWP[_U^__ZVVX\\V\\ZYY^VgKWV_ZRg]YX\_U`TV[]S`ZYSYXUaWOSTY[WX_XX[XUY_YZ[j]ZW\\^ZWTWU_ZO[RVTW^^RQ`[``]Q^U[_V^[WYZZ[XSUQXT\^\Z_YbR`YU]X\`a_W^[ZY^XX`[[[ZeZXMUZ][\UR[]c[YQYZZXX]Y`SXQ_UQ\WV_X^N]U]U]YZ]ZYWT[\^ZVaVbZO\V[[RS[Rb[\]iZaR`TY[Wb\a[TZTeSXZW^W[[e]R^TXZX\Z[RN[[aUWWRZP_\XYaTXXW[P_Z`Y^RWV[ZS\`WRU][f^Y^YVXXUPbTOWdaXWX[]a_ZVceRVO_RQa[_TZ\^[_Y[f^`[QWRO_ZRUSYVYZXVXN`[XYaQP[[YYdT^WQ\eRX]aZVL[_W\PYd[RT\YSf^[RV``JUZXZTUVSRcX`UhVPYW]c`XRSXbYbU\VWYT]ZNZZYYcZ[W[R]a[YRV]SZXbST]^X]fbQR[T`bW\PW_T_UZUSXaSUTQfWZaY]oUSPZP`Y\[MPYTmSYcXMQZ_^\SS[VUW`T[fQRWXidYR_[PXUITT`WTmXHPSYa\]RSW\iaYeWT[USYUYRPOYZbXPl`TXaXZ_mWMWUUZQ\ShVN[VWRgSXSYc[QYV]c\Z]TX`]Tg_WQXZTRaY\Na_WKU]PWG_V^bkWRXb^cNZJTfXcXTWd\Qa]Yh\XY[WdW^]c^U]UX^YR_VVRV`^Zk[^\[ZU_UW[ZTTWUXMX\XTdZ\\[[e[R]R[ZW^_]]_ZZSYZSaRVe\_UU_UW\_]VY]XXTcoYZ_UX[O[XUTV_Z_`ZSR\WdYYWfbaRT_aZZ\[UXX]VQV[W\_NQnYa`X]WXf\_]XM]gY\Z^RY\^[_W\U]VYU\S^][\P[aW^ZjY\XX`T\VWbRaSYUUUVZ[UU_U`Z[\YZWfW]^_^Y\WaZbRXR]UO\]UWUY[[]aVSYTUfZ\X`[]TXVUc^ZX`aW^WTWW`W`^W\UMV`YTT\Z^a^^[W`^We_Pc]^^XZ_d]W[QVY[]XcYWaX\]Y]Y\_VQYXQUSUcYYVeTc^ZWXg\\UVXYUS\WV_]\e]VP\]TZ[SPaYXY`OU[TbWdYgg_XZdaQZTVZ^TWM]RT\\W^\^[X^b\Y\bSZXVUU\RNR]]\[XXX^NUVaXUQXV[]W^b_T\PWbQYZYSUZaS_XXbO]O`WZhZd\YbTbKQXT\\X`cRRX_Zc`WdWZ\Y[YUXWYOc]QXVT^hJVcWXW\[\__NX\T^X\cS`TYW_][aUV\OgcPZXLWWbYYVWTahR]O]`S\TcaTbX[`UZXN\V]V`]^_XWQWXU\[U[ZXWYVTRU[XQP`ZX]Y]Z^Z^T_VMY[a[XXV]TXL]T[YWWZaWV[[[_]Y[\]ZY][T[]X\QcY]adTMUVaPb_UUaVU]XQYZW\]^_WZ[TSZZ]j[a`US]YYUQSUPXOYZYb[X^XYVZ^UUXV]ZZWTQUhUP[S]`\aP_RUShYbVX_]ZVZWT[QUXSRW]WSXUV^`aRWTV[[\XTWRc[YU^TT[V]_aY_UUYXXXO\[T]`XUY\\`\\ZSZ[aYYVYZS\XYYOZYVZVcU[Y`XXTRT]WXZb]Y^_YXYc^]TT^S]ZVb]XVY]_SYUZXXU]W[Z\XZVXWXZ^^YZ[O\VUY[XR]cV^XU[[ZWZP_ZVVYXY_`YXVa^ZZYNRUa^VUQ]VZ]^RTXZWV[QV^_Z\W[XUZVSPb^\YXXWSWOW_]YOSZdfU]XWRUYUUVRW\\[SWUUYWU]]T^YYaWXY[_\U]aZUc_ZZUVTYYX]\TZY_b\^VXVc]_[YY^]^UZZSS[ZXX]OfPd[URYWZ^XQ[U[\OW^TXb[X]PUZeUb\WSTZYZRW\[_WZZPWWSZ]QXSe]Z[Z[]S]LQX\WZa]MWWYX[W[XZ[Y`WTXVZPU`_]U[U_VQjVY^S^[S[Z[V\Y]Z[[\\SRi`_UXKXWVV__YX^[TU`e[\[\X__UVWV[g\`Ub]TXPaT[bR]ZNM_ZYYX^SVWVSXVX^eQXT[VX\XXZ]\]UYV[XUaZ\YcYgUSS^VS[U\fTcXU`^liXY`Z[MXZ\acSU[W`YW[S`U]XXYTXSUMTTXZYWdSZY]T[cY_VWKXZZ\VXcYVT[VaijOVX`O_T[V^UabQX]TU^_]WWYSV\WY[WYZXV`__][U_X^ZRSU\RgWcUfaT[Z_[\YX^PaOba_RZ^[cVWUXW[dUhPY[_X]^U^]UU^aUcYdZZhTNSU]N\PTX]VIVXUVSTUW`YYXVSdPR[WO_VN\UW_Y]]`Y[VP`^]R`X_SX\Y^S^YYUTX^^\\afUcX_ZZTPVU^VWVRPVc_U]ZYaV\YYUVNSY]UeQTWPRW^f]UZW]lXQ][RX\WUS_eVcVUTWcY[dXW^ZV][`ZVbdZQSZVKVZ]XZ^^U^\VSVcWWb]cXYV[Z[jVZOXTUSVUdZVTRW^S^WR[XcZ^ZZXV_QYP^[URRcXYZSaX]agPT[QXZZf^Z_SUkX\g]V\]S[[VWb_^\XYYUWYXTdWW_\eVWf]T\^[\T`Q]S][c]]X^TXR^S[XZ_aQWZT`\X\f\Y^U`UYTW[ZU_^UNZY\VcUV^[UI`WXUZSZ_Y^VWYZW`_R\RUQZ`[_ZeWW_X\ZV[\Ud^YUWRi^Z^S]ZScZTYa\WJd_VcV`W^TaX]Z[VTYZ_T`ZVU^RP`U[XWhVX]Q^UYWWUdY\VWQS\Y_YM]SUZbPaXZ`V`U\UScaXUZ_]^]X\PWVXSVb^Y`^a^Z\o[YW]XYY[ibUYZTYZVVUUV^ZSYbQQ]W]RVdcVSR]SX^Vc^ZfW\[S\^XT[dV_[Sa`[]YXXX]^T]RWRb^aXV]SdZ[[VXT\\Yc[W\U]ZY_QVTZY_\RZ[b]TT`WY[XSU_U`[U_aZU`[NY[XZWVWW_]aWXZRU[YXXYX^]YUTTZ\^WYYTaU_T^VXWSXb]`SZ_VWcOWWY[U\ZYcbUXX\ZcWTWV\Y]^\USY\\VRWeVPc[T`_ZWWXWbXX^U[YP`YW]\ZTVU]\ZVX^_WWbW]]W[aSRU^[\WY^U]X^YUYR`X]V\c[]TX_Y_VW^VP^WT^aR]V[UTZYWaY[[aUXbZZ`]cPWWWX^ZVlZ`VR[dcVUUV`XRU]\jVWIPbVZ[ZVe_[W]Z\P_RTPT\fT_bWYRZWe[_RTc[g^TU[g`UYTVZVYX[Ul\PYYg\OQZTfQ[^WX_SU\O\ZWcXU_R^RURU]^VZ_SVXZdY^ZZ\XbcZQW`ZX\VXSY^[S\LTUY[\YWYZ\j[YYYa]UXYZ\We_WYMbYX^We\\\TY`Z_WVWVYT`TSYR_USW]XXUf[WSUR^V]_PcWYYRi\\SZ]TUYX]U[YXWR\[W[Z[T\YVV_YW_WTVTX\e[WZa[UU]dWV[UVT`\ZdTUa]``VXMZ]X[aRLS[RXV_]XYZbQYWU[N[iacG]\VaZVY[PbXURWZQRU[YU\[Z]^[O\aTUZZa\fYY^]\Y\SRZWYVXW_PW\YS^ZcZPabUVS`\K\Q`\XfZ]Z\X_R`WWb`iVb]]^\XQUU_\UNcURWP]SVU^_SePXPT^fO_NeOaZZO^WaSTgk_SPZPY[TPSWnYU^UYbSn[Xf]aMTR]ObQ^hgTXVX]U\W]`Y]VbeZW]W\\Y]R``KYVTYY[ZZZ]T_]KRWVZL_XXPTXb\dRZbXTZ^Y]kQZQVPW^TOU`bU[YWXSbT\\^V\V\L\O_VYbXVYWVRYSYXVPN[T\CXZTfTbNNeVeV]cP_e[h[WQ`YcWSUa^bThb[[`PUPR`dP\Y[WZdVX`XTS[TT^SZS_[b\_X[[VVc[ZT_VcUZQVVR[Q\T]`YZSPP^]OKSTWR]]WS`[YZgXcW_VWV]`gTRQ[VSU[ZR^Qc]]_WMj]eTXYWP\WUS_^bZ\WWYZU_b^Z]dhXUYYVV[YUYO^U\SWYZQX[aV]][ccYWVPXXZWY^WVVQb[M_WZSS[W]U[VQYhS]WVbY_XZ[WR^aQXY[[RWSWRLVU]SWNZ]RXY^YW\]]eV]SV]][\U]]ZPXT\T[fZU]YY_YdR^X[^Y]STU]XbW`[ccUXW`e[]Xa[ba\[TQYZTV[^ZS]_\_XVRY\W]dYV]^VbUXaZX_VU]^ZXVWX\`Y^RaVTRZ[VTQLSZc]TrbW`WaYOWN[MRYVWPZXWY[S]WUU_UXXZ`YZVW_`XV`YXPRXZYXUZgWTSYPTUaWZSU_ZY[QRe[U\\TYbT\]XV\\NS^Se]ZYXTXXT^YS\XYVWXVTV[a\_^\RYbV\U]YZTWZ[]SY`]ZU[YW[WZQX[Z]Y\bX`[\[[^f[WSV[Y]]]XY[aW[SYO[WUW\PY[YO\Y_[a`X[WQWTYVYc\ZX\U[QX^PS[SW]P^^VZVT_d\[XT\[^_W__X][haT[YNbTTZ]]Q[TZS[XY`TUf\Zb^\VXT_RU[XWZ\XV[VhXTbV^[aV\]^VRaU]\Z_YV_W]Y][YbR]Z^YV`WUX^WXTZ\Pd[dYZ`TX`Vi\U`X`fUVU^VfWUWWYZ][U[QTR[VXV\VO^ZW\ZH[\T[Z[a\^V\QTXd_]aiYWY_a]]^XUUQ\]hOXZZS]ZW]U^[eW[X]_Q\]X`VRZVVWYTabT]TS[b[TRe[f[TWbaY`\YZZTXU`e\]]WV]VYYU\[[XS[`UgWXWR[VYdYXX_jTUal[X^YbZXV[\Y[^][W]X^R[\a_[QXTZZ^XWU]WVTRYZ\XW[T^QZ`TRp\SQU`\YXTPXY[^WV`X]Y^WTY_]VU[W^TXV_[aPT`Q^aTPVYXZY]YS[WaUMUZYYYSXWXNSS[Ze`VYZ[ZbcZYTW[dR[j\^ZaR\\[W[VZS\WVVYZVcYW[^S`V`Z][RZcYb`XRcU]\\Z]iVQba\bbT\gVKXYVXYc\M`\RTY`W[]^QXVXVe_d[iWaQ^ZXXV_P_WeUTUSTXfXf\Tif^Z_OW\S^SXW[X]\^ZVZ_YT_]bWVZ^`UYXZV]cYSUZ^\\Y^Y^TU]eUW^XXVU`X`Y]YQR]TSiRQTWcOYV[T[TUYZWY]\QW[XW[XW\T\WP`cY[_WW^a`UZKSV[TEaT``b]X[^SNXV[^ZWTQTQVd[W\XgU[ZYS^VTd]db`Ral\RS[WXJVU^Na^Z[^SYWWXZceXV[WNL^dae\^SMcUZUTVTUaY_TYQ^`WcTXU]M]T\SSaQYXSM\_Z[\Z\T^Ze\\\O_Y]UPWZUOQYVWZ^`[WUZi\RaX_VUXUUkZYUc]HdfV\U[V][UbW[T_XUX]ZXRRR_M[RZ[S`gWW^Y^]TWUR\V^bLOW[OXaTV`\PbPfUW\S`faUZeU_U[T]U\WN[TVQX\Y]`O]^^TfHQTRQ[c^YS^X[^WTLZ\T^WRY`[YW]If^aT]YYNV[\VYPZSZ^T_YVUo^bZOVnU__Yb[ZcU\VVS[[Xi_\SXWZWUVPUT`^aSW_Z]\UUYbUP\VXQY_SZ_[]X_aYRdc[U[U\]TW][VY^bZY`V^\Y[WUd\YSc[SRgYZXTY^UY[[YTNa_^]XUS^ZYZbYV[P]X\WUV[XXXYUX[[VUXf[WZZWXZYd[TPQZ[[aV\V^`YX]UTYbQUYRYZV]XQVRb[W^ZWVcUV[]\\[\Z^WXSOY[XbPUTP[ZbSgW[_T``b]^WYXSYLXW[ZU\[`\cR]`UbWdPcRVUWcYW[c_V]P[YUXZb^aURWX_S]ea][_gXVXT_^]W`Q^XVYWYhIT[WUS_QTR]UZW`Q[[WU^XU`[ZSVURRSY]Xc]Yab_bXYYVWYYR`[Zlb\X[ZW_Y_ZTW\bZWX^ZgVZ]`[XZXY[`XZ\V[R\WS[U^\UUYUYSX[WV[]\[OW^Z\V\RS\[YT]_RZUa[gaeV\YM^UZVdfZ^VSVYZZW]cUX\\YZZWTNZVPXJ`cdS_\^[\_]QVUZWVSTQST_]`cZR[T]VWSX_\WU]YYT]aWZ\cMSd\W\_XUTY]TPd_a\T^^S[h\^a]`T][ZZUV^cMP\`_U[^\\QZ`]]Z[]XYcQWXZ\N[\cf]^STaVTZZVTS^WYSYTXWYVYYTY]^YZ\XUNXdVU`aYaU`XWYU]\[c\[_VZ[bVUcTUFYceIZ[RWR`_X[_aSRoabkc[[M^_VWaOaWY`T\VSSiO\XVWZXY\b_\XS]VTUUWTZUi\V]XaS]dWcacYYTQX[Z\[O^U[V^VZWX\_]TR_cYW^`\V[[VX^b_VWXQ\X`]VZ_^TXOYU_XSTWgR^VXVg^U[_ni]`VQb_[_bSYeYhTZ]W\RdR\U\XYV\WSJSVa\X\WZYZUWXTWY]SQV]Z[]WZ^V]X^YbX`T_O\[YVQXc[nXeYXZ\aTURWVVWT[VWNVXWYaXYZZSSVXR]ZS[RZVVW_]YYW\aW_\XaUUSeZSVVR]YS]Z^V`^^ZZ`[Z`VU`Y]X_WfQPaYYVU[RY_R_`YU][XQX\WUY\]VQTMZ^dZT`e^[ZQ\b]PRWTnV`SSYTX\`\WPZV]VZ^^XWeV[VOVe^a^`^_[]U\\XXXZUYT]W^`YaWY`WYXbWaV]dPPX`VWPXZ_UQ^UVVXS\a]lMUaZaS`Y[\YW`aW[Xb]ZVZ_]VUTZOYXZRZW]VW]^N]]WWVUTTVZZ\dW[WV`Y\W\U_^[UVP\[VV\USea_TV]eT[WXY_W\O`]\VXdVg[]Y^_XZURTXSaTQa_U[_TS[WURNW^Z`XeVXbPVjTQ_WVVY\TeX_][Rc[^M^d_b\YYbjYTX`YU_[QX\XWZ_Qd[Xg\]LRYQP]SSV`c\YTY\][W\U]VX[dSTXTe\^_UXc^][VXTZbZV_`X[[V^YgXXTWXWVVU]aSdaQ]iXVYR`[_`SX`ZYQaZYYSXaX[WYW_ZSZZY\VM\\S[bXW\\aVX\Y^WX^V\W^bUd`\]TW]N`P\aWZT\ZWL]^ZkVYZWVW_^LZb[NUVVVlUaXQ[SU^WW^QaQUaZTaVQ[ae[Z_W`VQ[]dXP_UPSWR[^WiZ^S_Yc[]S\YWWTNOYZcUQSTZ]\ZX`YZY\TQW[c\YZV[RVW^S^XSY`\S\d\`dZX[X]QcWRaVRRY\Sj_iVT^ZnQ\VX[VZ][`_YZW\[U[`cZX[hSU^c[bN\Y]YXZW\_Z_Y\`\RWUS]SRVTW\WQW[e]X_YSVVm[UV^VgWX[e`]YgUVS^\^^ZQX^WZWQVUSZUOZ`Z[XOXVZ]f`V_]]][TS^VYXYRTU`XX\SS]VSW]ZhWa\bTWV]R__][^R`VPT^f_R[QHXZ\ZfY]Y\WSZX\\\[MdbXW_RSQW\TXP\KU^Wa\bWWTiWUXVP]e]O`\XTUXWQ_TXdVRW`Q]_NVa[RXXdTXYUTZ[\^WSWVUSZUXZVL\RYQ[eZVTcTUZUXgXZVW\YaZSSYbXdP[VXjYYRWUR\d[X_d\yXRTaaVa[Y[ZcT\ZfTR^\bXUWbVbYPPURVWYaaUU`\[ZWZ[X\VVPSW\WZYU]U\QWXN^[PX]TcXfYfUlZc\jWVWP^YYeW]T`Va^WRZUYMVXU\X`cQYX_\T[iVYZZVaST[^[Yf^MYdUU]N^VeXP\XZY^[WYUYXUUZ_T\WUU^TQX\`WS_SW]R]X\SZV[SWYWVO\R\[RZ^Wa[hdTUZQb]]XX[^_][`W[XbYZkb[VTV[\\[TWU[bW\cUO[XT\^UQ\[Xb]YSY_ZWV[WYWY_YZPY_VY^WMPUbX^WVXVa^UZ`\]ZX`S^VWUWUZ\]ZWX^QYSWR[VcVVRWT[YcSS]XRWY[_[X_VYX]WWWYS^RWZ`ci^```XbaXWUbYW\X\aU\ZVRVYYYZb^^_SU\]ZXePSXfNXSV^gWUk^[UX]Yc`_UR]XSiaT\XTY^USTW\]`^R^OWWYSW]ZXZQS\TYZY[SYZW\^[\^SV[WXZTVYZVU[U_XYS]TUXga`YQZY]QdfTVRX[aUTXWYZMTY^^TWT_VS`YUUXZUWcVZRe]f[L[Wa^`[XW]XU\]UYThSUR]\S[eRVRYTU^YYUU[QXW]ZZd[^`RT]YPZQ]bWP_^XW^[`[_TV]ZXWST]YW_S^\UYYVUVZ]cR]QTWWTW[^[^`VVaa]UZ^[[U_RVWZWdaUVXOW[NYYSSf]Y]]RWSVZVh`[ZVU\_WQS]\T\S[]d\\`TVTRZQ]R\UVX^dVW`_bZWU`dVZR[TV\a_WVWX^YO^eUWWTS[^]][_\YXTX]ZV_WSYR\U[Z[VQObWX\QUVXVTZ[XaZ_aZ\\WeUbYUUX[^QSUf__\ZaT[XOY[ZV\SXOfZRXQZYXPZgWTWXZUXdYOXTY^SbW\]\X[[M^bW]Rd[bQU\[V\\VU[_Sa[ZVR[dTZcX\[VW]WU\ZWS`VZYZQ]eZY[`W[WUTY\]T\TYUOc]`TcV`SS\VWVQYU[VXXZW\cX`\TX[U\UZ\XY[\VZWfWT^X_a`]W[c[eX\\RQR\O[SRX]b\_VXa[ZXUYYZhXX]Wcb\]_XW[ZWZSSWZ]U_UYZ]VS\_VV][MWOZV\bYMWa\aa^WUZSV^X^\YY]YTY[Z\e[VU[[VYYWP]SXY_gY_WV]l_Z[RU]YZRXYTWZVUWa[VgNUYXVVWY^UZZQb[WP]V^]VQY]X^VTVYXRdU]aUW[ZOVXTXRPRYZSV^ZWY[S^[cVTXRZ\XXT]U]`\X_[RVThY[VXOZWU\aWW[b\\__XW^YZjZV\ZSa]WS]VW\YZ[dZXWSZW]SY\`XWV_YYW[X^Z^XTZT[XY\ZYZ_ZUZ\\]YdW\d]T^VWX^\YYYYUQXTZW^VZ[]T`TdZ[URT_Ve`cVXWYY[V`WZST]\XZV]Z[\Z`^T\NY^]VX[b^cZYSb[Q[]OZ`bYWWW[]N\aa[ZUS^b^YQ[gYQbe\W]U_][XT\YTT`UTX\SZZWY\XZSUSX_W[_]`^QZ\WX\YVZ[Y]`SY]VS`ZZ_YNZWZQ^^QXZ[eZU_T[[\YScU\V^U^XVZT[UWWQ[cd\a]^oTWZdc]U]YW[WXWYTb^QQVUXZ\V_VTaZU\e`QZcb`X\[^TYX[ZTY[XXPXW\TYYjUehqYUaU]X_Y[Y[^RWZYW_`UTW\dUPTXRU]a\Q_]VTWZXOR_jWY_[R]XVUWYZZe]VS_QVTVZY]VS^Mb]TUUb\^WZ__`VX][XVTT_VZUUZO_WZVQYRSX__]VVbXST[V\V[XX]a_^SY[[[ffYYQVZYaWdW^_UVXua[[^Q][NTSUTY^[SZ^WcV_c[RfaQZ]aY]Z^Z^^T`\\\aWZ^YWXPWWYc]X_WWU\\^]^_\W\[Z]RWO[\VX`_[X[PYW[UdT\XUa\X[T^Z^d`\V\[bYfY\TV[RV`PUaXV^WTl[ScXWM[ZZ_XOQZW`V\]^Y[YXV`\aYX_XUY]WX[Z[e`N`\ZXY\X[^_YWV]U]Y^ZbVSVY\UT^X`WXWbVV]]TSVeRT\ZSW[W\[XcWUWQ[TZVTT^]_Y\`XVVXU`UWRTX`[]^`ZVVVWUQ^ZS_UXXV^W]dYVV[UaTZYXZXSW_SWd[T\_Pf^R\]^YeS^\YT^`_UWWYWX\YVPcXVVTXY]dVWj\^WW\`ZZ_XdYZYXV][W[aZR[VYYdZS`ZffWW^[QWZ^YiYTYY]T\YVR[S]VV[g_\XP`\P\\UUST]VRZRXWWQ]R^_]^N`[_TWYU\`Yc_TaVYcWZ]XbadZR\SVdXhS[WV^SUYYUYY\\X]QV^\^^aSY\T\[PX\_dWbbY^ZY[UV\XXZ]W[`UXW\TTW_Z\W]XU]UfXW[VhV^aaeZVS^SX\XT[aY\`UY[SWeSWU_X\YZU]TXRcXX]XTR\Z[YXV\`VVWY\RZQRY]QeMWS\a_[QXX\YZS[VWUTT\YV_^Zga\Z`]`YYbWbXXj[U^W[Y[]\Z_PV_\WZU\YZWb`WYXWPYTQS[\ZXVUWfaS]VTU_YZNg[XVQa`ZcYbeSRWXSZ\ZU[YSc\LVWV^[eOY][[VTQUUYW^X]X_Q`XU\XW]\Z^XagRVbT^ZXY]cYNaXVTX]N^[W]W_dUTOPeWYhUWXY^Za^W\V\WZZRZo_WU\cUe]VU]STU\_SU_aZT_c]_VjT\ZZZZZfWXde`TVcS]XWc[\QRMV\S^^aWTSPZc[]SXZZXT`T\^^UW[^QO]YVYSWWUUYQYUXXQ][[WXZ_[_RVT^YZVVX]XXYYXZY\TWT^VYW[h]n^]VXT\_ZWZV^X]TYY\T]\dXNTZVT^PUYT^ZTX\ZfYYYS]TaV]WZ]WZ^XcX\hS_SWYTZSTX]RY^]XX_\Y[U[XfZ\ZX[]aQ`ZOdY_V]YdWX_T_[^]SV_X\T`T_YX]eb]U[ZYWdXS^V`^ZWbWOaY\[TaXb]S[YbZScYSRa_R\XR\U[XVY[]]V[^UP`SYWRZVVaV\W[T`ZYSXYUR[W_]S^V_ZTUSV\\N^gSYd]_aZZ^[PX_UTX[_S][^U_V_Za\aX]XY^^ZV[^^cWVTY]ZW^]UXUUOhUUTV[XQ`ZYWV^\YYZYZYZ]Ta^d_f]_]UeW^[[XPWXKc_bMTRW[VaZRYbWQ[\bVZ^VaRU]ZW]U\WX_ZTXU]Y`[YY`Yd[UXaYU[RWfUPWYS_\^ZYZZ`UXYTZ\XWW[S\VXXUYYYXXS[XZR\RRdSR[V``Y`^_W[e[\Y^Sb^__[W^XV_cUV_[_Zc^]ZYd^_WVR]aV\Y^S]\Z\\lXWbZSZX[]YZ\fSUbYU]WWVU\TVWWRLUZSSWNVWWV]TROZ\\QSVW\RNTf[W]WTXVZ^VZb[`QX[cWTVXQXMQ^\W[b^W_]\XRdSZXfZZUeSUUd]OYWVY`XcWQ]Z^c\[eUU]T\S\ZZXZVTYbW[[`\S\VS[VZZ]`ZWSXVXU^PSUWZb\]S\US`cO[^VXRZYVZXdeZWSZcVV[cZ`cZVZSZZW_QWV[TY]TZR`Y[WWQYffUSbSWTQS\UWR]]X]ZaWWZX\VPVUY\[U_aZQYX]Z\X]YR[VUZZZP[dYVZT`T]PUVVS]b]RZ\SXYZWR[Oa^]QbW^UZYZU_WTUS[^WVUY`a_Tc`\\JaPXS`L\[WW`VQZP`T`e[S[SU^WSU_Va_]^XPU`dVb\`TW\XcZYY\Zb^\XcZ_P[iW]dZb[]V]^]\Q]ZOg[YTZ^\R[NVUbWgTYSX[_l^YZ\^WWY`WX_[kVf\b]Z]UWZUV]a\[]VWZRaO`UU^jRVbR]W`^abU][\`WYSY^SYRWSNXXgZaUVOf[`[dVYXP_W[P^TTX\Z_cZa_bSWVa]XUPSZVY]SV`aW]V[Q\W][_[`YXOMX^`QTRUV_[ZTYQZZcUa[Y^PH]QYYZTec\_ZZVXYWT[X[UOVYo`TcTVSR]I^UeT_bZSbR[\YYcaN\U[SU]XUYWUch]R_MTZ_T^`[a[^[O`[bYdZ^iYRY`aQYOUZYbQTXXTX`^TUWYZbdOO^\J[XZ]UUV[ur]X]aX]XZaY]WX_UW\TUPThaT^WXbN_`^U^NSZ[]Z[b]U^NY\VcZeT_QO[XZbUSY``TjXVS[Z[YRTR\V\aRYW\]RW`UWZbQTZQZ^Ub[VRdS`iVThWXR][Z^b[TW^R[jPRRg`YZ_^`TU\aTU_ZRS[U\d`YPYWYXbY[SXcgZ[ZR^RaY[XUeWMa[URPYXV^[\pZXNWYWZXgi[YQZZVN]SXYTSPYZK[OZSR^bTRZ]]PH^^`\U\ZZYhU]]n]WSb^W[cRh\\dZ\Wa\W[UQiTYWO^NP\`Y]VjNX\Q\ZQYaSSSOhOXZ[SZeXCZ][TNXhMYOZOT`VXYWaSRY_S_Uf^V[XTQ\_cTa\UYMVUX[a^[HXb[Q][[WdTT\^b\Z`T]YSVWfS[bYV^eWPXTWbUZUZ\YTUTcWgV_]Z[XV][ZUW]TS]_R^c`aS_W_^\W[PU[WXQSZWTch^U`[Y_^cUYRT[VWYZZX[^b\U\\dOX\U\ZVYY^RTZKXaUV]Y\Y^^X^g`X_c^^SVW[[ZNY\WTRW[`VZYX[\QT_UZ]\\]X][TZ]a\^Uhea][W]WTWX\UZdUUVdVVe][Z[NVaQ]U][WV^\WSbY^e\S_d[U_[[_R]QbZRSW[^eYbbaSWUP]WV^Ya^VW^YXWYYY[\[^Xb^XYY`YY^Y_SYY[SV]YS[`V[XVT^UX_`YYnTZQYW\^ZY\ZTXZ^[TJ[ZXVcXbWX\RX`_ZcOZYW^]WYO]JPYUZZ`[ZYTUUZ[W[]W\VX_XZ`T`b_TYYaUVYXZ^Y]S[[SSa`\VZ[c]XW\QS]\akT`QY_ZT^YZ^Z`XWTaYZ[^USU^[UXKS]T[^`VY\]b_UXTUXW^WVWU\YQLVaZQY^\VWYYUZ`U]\Z]\Z^ZZ]gQVW[TSYbU]``X^`[UUQXS^]P]_TY`]XbO[Y^YT^\Z`ZSZabSZYWTR]WXb]^gR\\_]POY\PWSWT]Z_XSV_aZ__]_WX[`\U]WXa]TYWRMW_RV_\QUUYMZ^T]Z]\ZT[WW\T[^Y]QWZX]d^VVaZ[VU^VU^^ZZ[UU^VcVUUXcZ[]RTW[YUX]]_RUX\VZ]f_U[Z[\a\WWTUU\d`XbU][YXZPPXZ]cZZ[[[ZSYYXY^[XTe\RRWU`^\TVU`\UXWVXVWWW[WZ]WX_\ZZ^VV_V_X`T[VUSUWY`U]OXLQVU]XURc]Y`^U\TXS[]SaW\fXdPYb[UWV^\T\UZSX\TV_RJac]V\X[YZXSYYa^[WXL[]Yc^QUQXcVY`WV\XV[aRX]_^aZXVX^XT_\_SXTZVZXK[Z[VSVTX]`[XU^`\UYXYWTbb_^]_Yc\b\US]b^YYWYR_YW`gRWb[`\ZSSQWTT^YX_P]\]]Q\TV[_T\TVc[WY\]YUZTQYYZSYQWZZ]VV\V`^W[[WYTWbUYYVUWSRYR^S_WYYVX[ZZ_\TT_XX[L_RYXU[[_`[Oc`WUZ^[SUWQYWWTUSW\Rj\WX[^bX[aQUZ_QVXX_[[WiYWb\O^XRUPSSaQS]`YXbUSVQT^WYRX^TROVXa]_Sb_]\W_VP[SY\PXW\YXaZ\SU`^]V[Z[\\_\X[W_ZgPRX[\YZXUUWZUf_V\^[a[UXZW\b\X]V^VX][NV]]XVaU^bXUX]XN]\Y_\R^V[YXMa^WW_VT][VWX^QU\WQd]WX]SQ`\dZaU[Z[^UVTS\W[U]XY[\Z[\R`\bYXVV_XXPWWW_YWT^`W\[V_V[a[WSZX[TUW[W`ZY]XZWaX^WT^Y_eYRXX__[_[aUVTTYYPRXZ_a`\NX^VW`VOXURZ]cYZ_^Y\]SPZ^_XTYW[Y\YYYT]TW^^[[YYXYU[`V][\_ZY]W]U]ZVY_UR\`[Y]N[^[ZWZ`RW_SXSVd[R_^]a[Z_QWZaa\YVc_Y^Xa_XYbT`^]W_V`ZZPNTaZX`]VZ]VYV`^XT`bUT`R\dYZ]ST^T\`XXcZ`ZXX[]VVXSU_^\fP_PTTV]_c_]UZTWY\ZWVZUTZ[]V]]aU\gWQ\YTaPaUYXR]O`TVd`\ZQPVYPVZWY[]`XbS\XNUW_Y^bXO`T\VbXa^ZVVb\Ub`RUSc_ZSVj_ZYXVT\`Z^adTc\[WmPPWZ_S^[PNYdVT[aTaY\NT\]YVY\\WX^_eJNbRWYlZXabXUcYNT^QV`]RYU[^ZZUaR_^P^hZ\ZTOZZYYMG[W]hSY`fadZNZOS`][WX`UZ\V^VT`UZWU\MZWSWUT^]XQV[dX\iUTVWWX^XRSa][QiYSUU\^]W[[W[PVW[TR]^fZXR\X`UZcb[[eU\\YMZbdcg^YZTTZZcM_XOZ[`ZYV^_]SKU`\[T[KUYQc_g]QV`T\\Q^WTMZ]V_Ye]R^X\WT^`\\W`]\Wk\YbYR\`cTSVVa^`VWV[X^[ZZYYPcZVSX[[U[YSaXaUaVX\US]YRYSVX[T[_aYQY`XXZUb_N[WZX\ZXaR]Y`]]YfX[UUYPWUZUZUTTQX\XWV^Q_`UZW[SUTZYU[X[_XX^\ZWWWT[`T\a]Y][XW^WXR^_[YR`^TZ_[XTfTXN\WRZ^SZSS`XV\^U]`VZ`WVWUTVXi[b[^[X[WU\T_ZSc``]`^Xc^\VagZ\\]\X_]WV]XU_]RTa]Y_[\aYOZXY_e`Y[UVY]aUQ\[]V^WQUXfXUdY]UW^`YZT]Y_^ZU]YYWYVYXWaVUV]_ZXXZT^YY_[[ZW\[W\WU[[V_QUV\Y^V_YbQ]Xb^aYSkTWcX]bWe\\SR_X_YV[VTXXaW`XP^^f\SWRWUR^Ye[lW[VbXVVWR]VUTUWZTX\[MW`WVSVXPYRX[\W[f]]ZabS[\_`WY[WSRWZ]aZXXWYW]VX`]\[VVeW]^_ZRdZT`ZX_]O]UW[U^WYPZXV_^VZ[^W[Y[^fO`\a^]UZS^XVZ\fOS[UX^ZRV\_Q\OY[d[X^_hU]eZXbbZ[TYU\ZVUbYWYOZVY\W\_Z[TXU][QeR`bf\aSUakcSXSYZW]X`RYX[dd[ZZ^\U^^X^XbUN[]XbXUVQPYT[ZYaUZa^`YSPXdQ`\VZT`NRXcRW__a]Y\[\WXVX[R\[[\]WU^Z[VZQRMWe^W^g\U_`W[]ZY\QYeZZVSVX_Y`WdWUWU[`[eRVVaWaVUdWYQ\VQWOYPSV_[XQW^X^[b]VXYUO[]fTTX\WU^b[\Z]VaXYSa\`UWYV_ZS`UWW\aR[_UXZX\]UWUROWWTU_TeWX\XVRXbXWZUU]X[bRWR\]VbU_\\PTTW`TV_b`X[X^_S[\\UQZY]YUY^TT\R][\\YZ`ZYdVXYb^XXZU^UWQXYWU\WR_Mce^X^UTY]RSZSXTWWPZUV]V]cX[bZUQX[XaTWcOV_\SU^UXT^PYZY`dXTZZU^YR\[TRT_`UTZ_X]QY\e[^`_[VZS\Y]\iWVYTV^K_[V_[]WQZUcZT^WRgUbYcVXa\WiVVV^]`TRURTbR^W_a_QUZb_^\SV[X`UV\_TZ[\XX\SY\Yc\NYU\U^[WW\Z[\aYY\NcXbeVf^TXSNXX_V^\ZTZ^WaZ]TRWX][\VT[YUcXU\bTVYZc\]`[\L^ZN^ZWQY]\[iVdaZYN^X\aT]^`TRd_Z_U^_\T\]UZSVaQZYPORUTSYb]`\_]eTQ[UUYYSZWR]W`YO\WaV\OcW]^SaRTa\XUYbiUbbZXYXO]X`WNM\UZZMY\[W\[`W\T[XS^ZYXWYYSX]]_T\\bS\URXUX`TH[]XSWRYZ[T^X^YcaZje`\\\QcYU\PR`L\P`X\Z^W[\YZ\W]VVaY`^Qa`UWTZT\TNXY_U^U_\VUXXW_TPZYWS`\QW`VQK\ZTacPYZWWb`fUPX\eYYdTlUY_Te^X]VcUaa]he^Y_QXcbZPWWiV[W\aSU]SZYTaaZQ\\_\YVZ[eWO^]Z`_[UV^U_Z\]a[P]]U[USP[\\S\aRZTYS^_cOXXYUPW_\`_ZX^Y\aP^ZfWZTSXZ[S\JSPPW]WUZZ]ZbVb]RW]S_S^RYT^][_X^^]`[]bVV[Z]TRSa]ZYZ\]R^[]YVXYSW^a^XZWNTY^aY\ZYRKUS_[PRgZS\YRS`d]XTc]]EVYZQTYSZacQYLWTX[YXd][X]R[aQQWPZY[PSYccTOS]XR]\\bQTZ]X]XT`g_\^d]]XTXQL`[X`]URUc_RVaRVWYSY\ZUTP^W[SWX\^aYUTUTeh`SXWWYaUXWWRJf_\]caWn_TWYTUg]WX\WVVQMQSN]^S`PSX`QaVVQadP`ZR[bZSNYV[`XaeXaV^UXSQ^XN`]YYeXUVZbSX^S^S^\YX]UWWaYaXZe]POWSRM]iU\XUcVan_`Q`Q\^__^XTNWT_Q^YWUZXWkVVVWZ\XOTU]WTRYXZZ[RT^YTYX_ZQWM[QV^_V[MRa\ZXY`UY\SSSeURPY[Y^\^S_]UZVVZ_ZXS[QeYX^]Y\[V[dZ^S\TV_^_W^X`\XWUWWSNS]VWZO_ZW\U[VX_W[ZaTQW`]R]ZRTXY^Z\VVaXTRXS^^YXb[X_\SVZ[bPXYWYXcT]WSWV_XTWVXYYXY\WV\ZZ[Q\bZU\Za_[SXVUZfgTW`[[Y]^ZSUZ`Yi`]_ZTbXT]T^YRZ\_]W[]\[[gYWYUbR\ZPW]Y^\Z\RYRWfQ\WZXTTba]WbZZXUbWV[ZibXXYYM\\TPX\_^Y]]aW[[ZS_\S\OP\TXgXSX]Q[[U\YY_`XaY[_[Pk\Ta]Zaa\^T_^f\YX]QY^P`a\bUVbLQTc[Y`XZUV[VV^Q[XXcVT`U[VRT[LPUHYVT#lZS\Y\VZV[_^\aTY\]Z[ZY\YbWXaV]LXYSSRPQZN[\VUc`XX[\[RR\TB_YZV\VYTXfWZ[`UVVVV_V[XZW`TUXY][[UX\SVR]X[XcZVYPWVXa^\\ZXR\]R\UTbSWhW_QWTZURr\XZUQSQ[ST_ZYWV`^fW[QYSSeXZVXamXbdP]RRZX[WWY[?\T\BXWKZR`_^]ZKU\]Ui]WViWP]YbW[W[Z[\RTST]X]RY^UT\W\T`PXXZVX\UUeWb[MgbT\\`]cXQWOVZZ+\WT`]TUWTWaV[][\VYX[VWW`W`YX^ZZa_WU_PU^PX]]\^OTT]X_YWXXWQ`[^U^WSTVY_`MY^UQPU[ZYRZ\a]O[c_VXbc]`\\]SR]Y_P_Z`dXO\e]XY\WW^``brac\YYUXVZPY\S]dXWXYPYSQX_YTR]XTY]^TWLQ^ZVTQV[]WMTY[XW`Y_TbVUWY_VRVSUSXbjRfWX[Wh[e]d_\X\ZVWX[T[]j\]U]^QOU_QL^S^\XV`^]cTYU_Y_\][YMVNVSYQVXgdT`TOUdXe_\\ScZaP^d[`N[RW^RXYY]\XYZ[[aZUR[W^Ue\NTba[cXZPRX`T`[Z]_^__^Z_P^YYeQU\^VZU[TLT`XR^LOOPOPP\LadU^VUbX_WVXVOVX[[XYdV_YYbU]U^Z^Z_\RPdS^MXWR]WTNPRXV^P^X]W\YX]VPPWdZU^Q]UG[\Xa^[N\Oa\VP]ZUXYOVYZYWUN\S\]V]ZS\\\^JY[aT\R[YZXZXYUcU`\UYVRZZbc][\QgP^XTcW\PYa]SX\Xb^[[_UWXZR_WT\WW`YY[UXZWTV_deW^aVXQ[TT]_Z[WX]ZYX[ZTZgZNW^[WWcTXWaQQXPZMZZYSYT]Zd[\U\Z\Y[UXZ__XSWY^ZUTcZWX^b]YYR[YYnWUXd^bYZRXPb]RaYYM^Q_^VZZ\PWVY]cXYZSVYWaXYcNSOUZRU_YV][VZ`MOZ^dYPVa\[ZYk_QVUVUVRZc\dbQc_XS_^X\VRRS_T_^g^V`X\XVXUVXa^SYUWc_UYcbfXU\SWRTc`^fW_]]bY[`ObZ\mU]`j`UVXW^U_\PUWUXXb`S[VQWa`VZZQXV_[YYP`gaU^V]SR_\W`SU[ZZ\Y]R_[^]dWOaea[SXYXWO]Y[[\\VZRYZW\]S`PX_XWPcV]T]VZaX]PZ_T^ZZYcdZX_]Q]ZV_Z[[__T]]WUU_VVQZSPSUVZaY[Vai`SWS[W]_S[kXSURUXSS]UP]]Va[Z[Y[Y]U_[VTZ_QZSWTU[\UM^[SUZdb^`U[OeZTWTRMXRX^]RiR^WZWcW[\O_[]W\XdTO]d[W\W_^b\[XZWafXYYVaXZQ^]R\R\\RZWb^SXg[_S[PVSPVQXSY^aYRRgRYV`VQ^UZ]Lej_[R[X\c_`kPR[K]Y]K\PUb^\\O[\M_Z`V\YSdiVWY\`bVcSV]\PT[V\Raf\TWWVdidVVZUSY\WYZWVUbNaZ]ZZ`[[cV_b\cdVUYUSaO^UX\`RZaTe]`bR_R_ZW^WZPTZY_a\VQT\][SZ\[b^aTY\id_T[aYP_`ZX[c[PTV_^bVZ_]V`[YSUc\ZSOTYW^YXebZW\YQ`X[_U[YZ[\ZbVeaZq`_][O\bhXYX\]UTXKRUW\dce[TU[U[VVU\SX^gW_V\cZZU^W\\]XU]WXU\I\UVTU_aQ\VZ]YXV[[Z[Y]WWZP^]ZZ]V^VbZUUXWS]^\[]WcS\YUaUZPTfZUY[W]Sa]VXT^]T_XV^V\WV[c^aY^[[Wa\Y^V]^b`S]`VQY^ZTZ^XT\Y_]T`^S^]`_Xb[[\VWXRUfSSYW][_J\_aXgSUOV^RTUg\Me[d_^XdU]VY[]WaYRYbOYVWZS]WbRZYVRYSXYXXRUZR[]\WTXa^Ra`UVf^X^VXRUUWWV\RZ_^V[YZRaUdX[ZUXdZP[TQ]]XcMVOXj\[UYUTYY`ZSVY`VR`Y^_S`ZHX]UeVU]VVZNWVWZ\[XRUYVSV\UZ\YVZ[V[SYU]`b[[[TWY`eN]^`[W`WcT^bWb[S[_[^^\MSZ]YYUYaXYUT\WbW\YV`[Va_Y^PdW^d`WZXWUYT_TP[a]NN]W_]\bUR_aQQ[Ze_fWXSVO\YZTZVWSY]SYTYaYUSUY\RVWTXX[S[^\\Yd\[d^`_XgZ\Z^gZX[VQ^`ZTU]UY\aV_]SWa\aY_\^X\WWXYTY[U]SS^Y[ZUXZT\\_XRbX]WVWXZ\VWVY`nS`[ZWW][Q@iYSSUUXO^ZZdRUS^ZbTdTTWY]\X[Y\\\ZXUSV^W]Y[__SZ^S[Z[e]^TRVSaa_T`]YXXUYW[bUXbZZYQVZ\T\ZPZ]NYQbbZT^XZXT[WYbT]RXWYWWLYWe[ZTbRP[ZUZZV^`[aYSZ^SX^SP`UYVV]X[WX`TZb\]_XRR^`VYXYZXVW]YRQ]YYUXY]ZVVUWXaVbUPQdTRS\V_VZW]V^\QR[WX\^XN`]`T]aS_UVDQW]O\VZS_YQRa[``e^ScaXWa[YXWTT`]ZZYWU`YZ[]^\`^Z\]P[Z^`YVc]ZUYZTZRWZXQYU]XWZYVT\\ZXQZRXYPX\`[VYTQZcWQZXZZbab`VWLUWU`gWXPUeWcX]^]aZYWYZ[U[VSVa]QV\^V[YVP]cVXU_VQ^aSRXVT`TVYP^VYV_\X[W[TV`W]PZbYRY]]W][T_T`a[\b]^[S^]ZW`WX^]SZQNTUU][WYa`N[_^RPY]]SZXV[T_f_SU]VUY]`[W_[^VTZR[UT]XYV[[ccfWRcSbaZYMWYU[_^g^`SU_N^X\QSYVXYV\Z^L^S[XVVWTUYaLZ^XUXUd[W\][QXUWYa[W]^X[S`X`VZVZV_U_Z]dWTQYUbX\KZ^T`XUS^YX^QO`XZ\Y[_YTZ^WMPVRabXc\Y\UcZTY\`U\]W:WXWSXPaaRQ\W]Z_YUVMV[[[^ZP\US`]Z^ZYPSZ[dYXZYRNZZQ_XW]UZVc[\[YV^faR`ZZZbWZQ^TXV__^\OU^W\WYX`YdU[WYZX\ZXdST_]XQV[UZ[Ug\b[cUPRUcSVZXa]`VZ^U\PTXYZ^`NbRQV[\ZU^]\\Y_ZZTXVVbYV[YXYVcXaYTVcZ]_NZ^OZgYZd]_\WUWYccT\^SX[\_WVYcQV]U\dY\U]Z]fYVW\U^TVP\SURY[^T\VW_Y\b\RW[OZZWVNVN\Y\`UQWV[\VTS]Z[[^]\Y]]YTUbYdWTVYXSfUb[YYYZT][RZ`\UYiaWbQeUWZY\\Y]UYWcTY]hZYYX[VVYU]ZV]TZ`YSbVZdSZTTRO]ObQTaU[`^P\\VT\cU[W]]VZT]RXX\Z^PUUMX][cUPYUXU`ZVUSb^YZUU`X[X[YQUT\WUUYb]W\W\XcUSQU[aWY`U\XU\a`YZ^\SSZ`[`aYV\U\VYWX[^P`]QWV][[VWX]fVh[TQZf[QYRWVZc_WX``YUWXMSVVPTVZVYYbWc`Rc\aV\f[^\VYYVVTZK]VWaXg]\PX^]QVYZQ^X]eV\]QZ^[`bc^\\Q\WS\cbaRZWYWZ]YUa`VXYR``VU[[Tj]YXXTW_VUV[c\eY]_R_a]^Z]Y^_UWRMbZS`_b[QVTR\[YbPQVQYXNRQlYdU]X_[PYVaNR\X]ZRXka[W^WYZ\`SYVVV[YTUW^K]_XcXWXb]dT[`[g^[TZ_d\Z_\VYWUV[Va]WcROYXaYXOR]ZI]ZZW^[]UVV`ST[\`RY\XRZUN_gX^\][VP^T\GPX_cgV\\YT]feS_WY][`UPQ\_ZV^VWcbadU_SRXSTU[TaYRR`U^XGYT^\ZT^O[`RT]WZ_hW^RSRXWUXT]bU\\VY\V[OVYfUT`YaZJRdXPZ[`SUZXUWWXUTVXTUeWZQS_`N]SNY]O[RTWX^WLZ\YWaW^_bX[b[[_XU``Z]Vdb\YU[TUY[SSY\bQY\\Q]UVY_SXP`[YgYX[]Xd[TdTY`W_W\\]ab][NPR`U\_^VXVYWXVXX]^RVaP[VZZ_cZaV]V^OSUWYRT^ZQZ[WSSRYYV^VNW\VTeU\]UX[TYZOS]U^W]_UU[ZaWgSaaYX\^\YZXTWYTUXQTZW_^`]\SYSZ[TXV``[YXNX`SSN_Z`Y]aW^Zb\[WaWf]TYbYXWcYTW]\V]^a[XZ\[Z]ZWY\e\]NWZ_\[SWYTYTVY`U[\WSVUbbMWWYSYW_TVUY]acW\XXVVaSSMZTU[KT]Z_W^^`ZYWPZYXUa\[\X\ZQUZWRV[UW[SXRZV^bPSUh\T[cc^Z^Z^]XRgWaY]_aOS[V\ZaVZW\XT_^cZVUX_]RV]Y[V\UUPW[TW]YXYa\[XV]\V]UWXRP\aYaa^Z`S[TbT`ZQQPWXVMZY[T_U[WU[cPXVVR`XXSX^XY[TW_Z]Y\\SYQX\V]VSY[][]]VVUQYUV]X\PR\a]OSW^YbZWYV[VYXc\cZU^VUV^_TT_WUL[ca`TU[`UZ[YYUQ]YYVY\VT[VYYbWUY_XX\XbYUXUX[ZXSW[Y`^\ZYZ^VWY\]XSM^YZ[ZU`RcMca[PUUeXS[XgW`U[\a^ZTba^QUS`Vd\[SVaWZWbYZeWVdRYV[]`X[[WU^WaZTRaXf\W\PTZ]P_a`^XgaUTYVWU[\_Y[XKP]TUZXV]Y[]U\ZUa\Y^YcUQMX]T_W]^\]WY\K[[R^Z[Z^RaRa[]\V`XQ]YY\ZW[XXbX`YVO^f]ZdWSZb^_XcS^VX`X^\UYUXVb`MW`Y[\babSUUaVWZU`aT[QZW^hYkZX_]VYSUUQdXf]U_Z^`WX_PWaeW]\^SV`_XTYVVWZ]RVWX^bUXUTTX^XUSZRcZcgYXcXgUW\]Zc]ZZaQY\_OTW\TWX\b^Y[f]\^S][[Zbf``ZXUcUbZ\V[e\O_cT\bSb_Y\R\Y[T\\^YgX__Y[Y[N[dUVYYWZXUYWc^X_XW_VW^SWVXRbUiOV`Z[a`[`]aVVa[TT\X[]`V_[gXX_gdUV^^]Z^dRT]ZTZTXVV\M`ZU]YXPO]WTPW`TUb`STWWR[YWU^``VYT^UPS`^XU]WaT^[T\SVYeK^^WQTS^QXZUdQZ[^_bY]_f_TWX^RThYV\V`cinZTVY[Q\TOPS_c[_[\f_aX^bU]XUZ^Z]YXV[WRWX[V[[WTZWZ\Y\XVWZ_X\YfY\[U_T[\Y\X\ZY`RZb\UaXYZYW[YWbSVY\^Y\X^SZW[XZ][[W[]U\YSUSV]YZUVUX[ZX^]WW]V[[Z\Y_]VX]]YWWYSX\WX[XT^]\YZWYXYVVXYX[YXU_RRTXX[^ZWVTZj^X[]U[V^VYZX[XV\[UdTZYY_\XNYWYWZYZ]WY^a\[WRWYScZaSW\W[Q^ZZ[[c[[`UTS_TVY]YU^WYXW[^TZg]\abYXQ`XZOTXTS^[YYYYTVZ\RYcY\XX^YYRZWRZYUW[XTX\[Q[bO``\OUUa\`Y`RbUZO[ZVZRQYTcYXTU^W_[X[X]ebWVXZZ_cUaZTQQi\Y_`_\W]\Z[i[cWWYi_YYSYYX`\cX[]RV_QQWSVUa[ZVWeWVbYRXVQVZZYVUTWY`ibZ^`SXRWPW]^OWY`[feX]]ZZ^^[`Z[\Ta[h[fWYV]XW^XQYUYZZXW_ZZXSX\S`_SSY^TJ][YVYSYYZb]WWW[\]`X\ZZQSTWSa]\PU^P_XZ[`WhZR\JZY\ZYUZ]^]L^\U`YVYgYgeRUYT]ZZVV^\Za`^g[aYTTZSPPSPUWUSOZ\`UTd]Tc^^\U[aV_R[WWfVWWQY[__^XZZ^```]SUW[\`ZY`UT]T__Q`SYXRNTX]TRR\d`X`[cRYQZYU[ZWQZQZgUY^lVVW^WS\]\Q^U_W]XX_`_SZ__^X`ZXX\UbYZZUZT^bXZVV[WdXXQ^U]XZ`[cRVSaW^Z`[U`_]aUQY`]XPXd_URZZ\`bQZYY_WV^\OdP^ST^]W`[a_VUUZRZXZcRVlXWUM]]\ZYUWdRWV^bNc\dYc[ZXW]Z[\P]]T]X\W^QQZY\SQc\VbYO\V`WZ\a`[dXUSISPI\]Z\]XV\aVc]T]WZ[UZXcWX[^b\NRU[Q^T_VNgTcWY`YO^V`WSRSW_]`ZWTbSTMPNOTU_aS`YZZRXY]UV[_UV]V\VX^WTZVXVWb[S[[PYX[[\]fU\TUUW\[R^X]UXV\YV`\YYWVYUYUXRXZU`TW]U`STWVWY^dZVLTX\\gWUV]SX`aQRZbZQb^]_ZTXVRQaR\\VTJaV`_R_ZVUU_]ZY^][`c^WSZ\aTX[cVf__[WPYY_VX[YY^XO]]cV`XcgSVT\dYZYV[W[R[YSJe\TRV[ZXZ[S^YV_X\ecTeZYWZW\`\aVXRbZ^]ZXYfWZYY[XRXZ\\R]^\^T[VU[_VgY^XWXUUWVY\`WVbTXZU]VSV[WWX]U^Z[]^W\TZSQbWWYSY^TVVS]RUX`ZT]ZXQ_^^RQ_^]XXX[_dPRV\c\SYZ[^_WSZbVV^VX^``]XbRVS`WSZX`Z\\^_]TaaVcY[YY\_]\T_g`aWYbTMXXVXY^Q_Z\YZRUS[^\U^\\TY`V`[S^ZT`^WYU]bWdcYc[^ZcTZ[W]__\W^_`\YXd\[RXYW^YW]\SZVNNW\baXX^[[P][]S_g\TWjT`YQebTVZSc^][Z^__TSWYYXW`^T[]^YWR[\YZTZX^\XWYOSdQ][WYYYVW[^VSR][`[]ZYWXZ[Ya\WY]ZO[`]Z\`_RXZbXXWW\X_X\VU]TVW[WZWWX^W`\aUT[[^OQTZU\]cWP[M`X]M]aZQ[`Y]WT[YVZ[h^^U]T`_\TYgZTiZ\]_[O_VgZU_\beUVVUUS`T\a\^V]ZZXaXYVVZh`ZaagTX]Z`]Y\QS[UYZU]YVU[a\aV`YYdW]We_Va]XRbXX[TQV^U^\Z^^`WR`_T\cVShSU^ZTbR]`YZU\ORV][_Q\b\[Y`YZYY\SQZS^\^XabZ\YZVYH]SZZV\Vibld\cT`QQVg^ZWZVZgcWUZ[ViTT\UbUZPWYRTZ^T[WQ]YRYZaVaUP_dWQSR^R`WQYZ^WZeP[haXU_UL]c]YXOZWUS[[\U`Wa]RST^_^_ZYWVXQVXZV\U^a`[WU]\`^[V`Lg\aVTaYXQTYb\WYWVdW^`RZT^`YZX\a[O_[_VPXZcVV[[\W[Y^WX[a[UcWX]_`ScV`R\aVVRaW^WZ_\\`^X]]\^V\T[][e[aUVXPYZeUV\RP[Y\U^U[YZ`Oe``PYQUY\\TN_XYZ^_VV\SWWOa_T^UXVUTa\MaZ\XVZ^VY^S`S]UPY[YdVZcTd_`\WS_\[_WYVZ_]_[`eaW^`gT[SS_ZVSXU]WVZYZ\\_[SSW\Ya]YP[Y_RcZl[V`XaXVbWaZYVQ\\b_Y\`ZY]]\XaWUa``VZ[W^XOTU[`T[_YWZXVYV`cbTjY__P`PVVg^YXZZa^[^U`^VYR_]`[aW\ZYVSP[PS[Z[\^eUV\^US]Z[gVU`Y[Rd\\]QYYX_\V]XZ_]_X`XVVSYZcdZXUVUSIdaVWdY]TW[[QddcY_T^ToVcYW[O[OWVYOY\``ZPb_VWXRa[XYWSYVPXZ\[^]SnTR^VVWY[Y\TV_\XbYTUZcXY\UN\SQT\YjXbXXU]`eZ\XX\WMaWY[S`TOVVZV]RZXTeSe]TW_\_ZZaQ]WfZVY_YgW`YR\[Z[[YWVaa]QVXZWXYbWQ[WXRY`WUR][[WWWZUXTdZXNN_Z]^c_XVXS]ZST^Z]ZPcSYMYVV]XXZ\[LScVR`PU_^U`\XcWdUV]XQZPWZUZ^QY\`_]^cc^WdeT[]UTifZWRaVYT]eOP\fVWVZS]]TRUXT]]aO[UWUYbQWWSMXYiVZ`\XMWVYWY]\TWRYQV]\WTS^lQO[T]VVZUSRWYVYbbWU[Y_SXP[L_aaVY^f\^[S\S[YZUVZWVWVWTah\ZPZY`ZcO_XPXaWabT]\\[\^`][^W[VcZWI[]]_[WVV[Y[]XY[RbT\RZ`N\UVX[[U[OVbYOaTT\RUTPQ^i^\[_OV[UUUY_]T[Yf]WV]]S^[PX\UbU\_VYV_NT]YeZZS[ZXZWYZYe]TcQZZRZTX`XVZ[UXWY]Z\XWYb`U[\]bcKa\cZ[WSVYVW[U^VaV[`XU\[WY]YP]PSRZT]RZSSZW\`c[X`\Y[Q][XW^XWUaTNaXU[[ZZ[YRVV[RX[c][XTV`cV]VS`a`[e\XYUX`aP^UL]YXST\a^Z[[X`XVZdTVX]W\UZVZWiXZ^VUW^T[X^OW_]`YZ]X^aZRP\gSZ]T`_R[\QRPUU`VYW]]V`WY`QfVWaRV\TZV[aW[aU]YXWcKd]bVWWXX^VY[NOZZUV[bT[YV[TW_Y]U]Sd[^]bV_ZOW[X`_Z`YSgT[\X_^^TR[VV^hTY_WVQ\i^`YVc^RZWZa[U^XTXTW^^\SVY[]TZ]UT_PcUX]d[YX^`\S^ZVVRRNXQ[^`^XX[[^[Rd`X]ZVUXeWZ_\WX^`WZS\PR[QZYYUXY[_[XY[bYZ`XTT^^Wb[Ta[[eZ[aXVT\kZbZeXb\^TS^cgT]YW\eTYWZ]\_Q^Z_ZUSbYVaYS\VVZdYch]RRX`WZXUXeXT\[\_X[UdPYTcYXUYXN]`WYZY]W`YTP^PSSVU_MW[[`^pVRW[X_XXdNWP]YW^\\R_X`WUe^ZMT[Q[`\Z^XYWYW_RV_]W]]QUYSYaY[V[UW]e\[YX[V^]ZWZY[OSY`YWh\[S]W[W_VX]T_S[\UXU\XRQXXU_\SR[[\YTZ]\a\SW\UTZdbZYU[W^Z_]XUXSZXTPf_VX\aYSXWZWYNW^ZRUVU_]YTa^Z`W]MT^T[\]XTXT\MYU[X_`Y[RV\ZUU_\ZVTb]OVTUW\ZT^\Y`[]bVZVQ\XOUVSaT[_XSZXO[TRV`LR__]\ZYR[]Ug[\[\^`\UWa\YZZfSUWVWZa_Pa^S]WYXWVZU[cW[\U[YWY]ST]U]]ZZWU\ZV[YV_RT_c_aaZcXUYZ_XdXUUyY[YZVUTbXEXOcUYZV]VXYZd^`ZQciW\Y]][^\caU[]]Yb]YW[XWTWXZZ\]XS]`X[QUZ^XTXZYQ[XYiX]dUZVXY[^WMZ_ZTWYW_`WXMP^UX^U^UWZUSbaU\Y\SXOYT\YJVYYaY_VOsVYZSTdO[R[WV_[WeXRYST_KUZUVUdUVbPWa\U[WSTV[_^RdTNT[X]ZYRQX_Q[VSY[XUPXSYTTUb\SZZ^RZVOV`U]ZaZVU^PJUY`Wd\QQZ\Z^`PXW]e]SVaZ^cUVgc[XKhSY`VZY^\Z_SUOZ_Ri^V]dRSTUZZPc\aQUY[WYaY[WZ]^V_SUXTZX_eY]SW]_\cX`ag`dVZfYYYXWk_TOWXQ\[^eabY[PNWV_YeVT]SWO^h[SdQcS\Z_\cR^\YVZ]]YZVY_]cXTVT][TYW_XPSYQXWUR`[RYbV^`S]VVXRQaWU\O[UVO`\TSPVZR^`RZ[OjWSZUSYeW]iXV[XlbYa]d_`ZUWV`[ZXWZ^W^fVRYdU_^\][\Nl[Y`STe]XVZ_P[YNd]^_g]TK]MTUWZ[bYXZX`X_]V^T]^U\XXTb_W]NW[UY^T_ZO\Uc][P`U^\YXcMOUNY`[Y]^c[bRaWZbZ]P[baTb[[RR`WVVXaVcXWXU]_Q]^Y]^\`XbWRW[^[XRSU_fWSTPUZ]TTU\\UVZ[VXbS^UaPZ`WaVL^aW[Q[ZgPZUWWV[]c[X[TWV]_X]USfU[[eP]Zbg[]c`WYW\X_W`UX]fXU`W]VWZRXXYhjYW`cSWYbX][WNWU[^ZVVZY`TZ]XP\PYUZ^U^`X]TWRY`SWZ]^X[XR^WSUTWV^`aU[\[VQTdWSZTU[Z\WZX\]TSOZW[WUNPXVY`eRY\_QZhRWROh_dYZ\_Y_\\WV^\Y^SX[[\ZV`e\^[[TZZTY][W`^YXW[^\UZ_WTXU_U]S^XYZ\d[TR[^ZW\U_TZV`O^^PVQ\WZWU[VX]Z^UXWYZWXTXT[Y^SUR]]ZZ[RaX`\[]Z[UYURYX[\aU_TSVS]YXXTTV^ZW[a^[faf]XXRZ^]UTXZ]\X]aR]UVe[VWaY\]V\YjUZ[[Z]YSYXX\ZZ[VZYY]Z^\VW\Z[W_]Wd]`]\YbYV\R`\WXWa^UX]RXWY[U\VZPWY\^j]ZXabP[SYUX]\XXVWeTXVZW\^cWX^`^]PYTV\[QK_Zc]\[X\]iOSSS]cXV[_UV_VYVZXW_\\a\Z\XS]OT\ZT]VVT^^aXX^ZW^ZZ`TU^W[[W]__`TZPX\[\Y_UZc]\ZZW`][UUbST[Xb[YU_Z_bY\_[VYa]X[_Y[__V^dUQZR]UcbV\XZbO]`XYdXV^TX`ca[][[Y^bT[[c]V\TgUY_Z[_mPX]Tcc\XY\USkb[T[[_VZUZTU_VR[[b\SRb^RMUX\V\[WUaXW^XV]VR[^V[TZ`[XOWcVY[T[]][__d^[VY_[UZ`SR`VWVRU[\[ZbVW`]WWa\^\]^g^_ZbbZ]VYR^\XYbbZ\YYY\WTbZ\WNNXcSZ^WXcUV_\VWcZ]\[W_^\Wb]U_SPZWZT\TW_VQW\hWZUS_QY^[cZQbXPXZWR]]VcSU\\YZWWV\\[V[b_WSY`]][V`V_c\\QfWQ[WVZ[]]UU]\Y[USOTRZS^VZXdZ[VS\\\_Z\[ZYWZV]YYVSXUTWTOTTZX]W]Wb\WZNUT^SZWUW]Vb`Y\UU^__VXW_WbZZ[S]^K\_^VPXWQZSZ\`W[ZWaW_S\WWWQTQYX[WR^\[P`V\ZT\YWT[]ZQVY[QSeTZ[ZY_UXZ[ZZ[_WbQVRN^^N[\X[WRacXVYVV[]VUYYdX\WXUSY^^^XVWVY[\\VRV\VYY[Z^Y[cV]Y[VWW^i\^`^ZXXU\TZhVTTUgS_[\T^ZT\VY^a[XXMYYZX\U`[UYUWZXWeWS\XaWcT^f[YQU__ZbSXYUY[V[RVVPRX\X`PW\WV[[]W_[bYUW]XaX`ZUfV^QUbXYZd_W[X]RXaX]]YYVbUS]SVY^\_VbZkZ`ZW_V[\YTZ_Y^V]dWc[a[YXdZ[T[`\P[XT`eST_VY\ZUUY^[X]aT\][^V`XS]W^ZRQOUP_iYRQUR]QWRGJe]eN]HkTYnZ[Wcc]beQ_XVWUTTUZcZTZYVZfM[W\VYdc`[\YVPgWb[RUXTLXTSSN[cMTXZGR^YLbaTR_VQa[Uc[MXUcN{UNYR^YRVV\UfRUS\[UWSZ\X_a|cYPL[NXUNWfOcUQXc]OU~bYR_U^W[]_YSRiYYPRYZ[jXR!SVe>MZFYTZc]S[EZf]WX]QVQWU_S_Y_O_PZ[[WMP_SX\KWR\\^Z]lXUZQ\a[Y^]O`OLW\VZ\XVU_XT]S`\JVRO\]Z[O]B^`[ZTP\TY[YV[P\ZQbOWfYX`^UhRY[]eUS^UN`PbWWY]WV^XcV\_]ZQN]`V^`dMLYPYWTZJVZX]XVYmU^RYU^m`^ZbUaZ^`XZ^\[UVYX\W^[^TXZZ[Z[Ya]WaZWTX^]W^W[Xd^Z\WV_Q]_]W[UXW]YRYPZYX[YnVS\[\UWRYXTXYS_X^b^Z^YU`VUXVbZWZQXVWXUUVVcV`Y]Wc[R^fYU]WVed^VWUUYUb[RYVY\YXTPa`SYhSYZ`VcW_V_QW_S[YWXW\cVTWXYYZ[VNX]TVSUWZZ][[`d^VZ\\VbVXSc]Z_aTZaRZYWZaQ[_a[_aY_YYQQYX\_SSUfWW`WYWX]YQXW_O]RUYVaXTX]V\ZP[\XZQ^YWT[Z\WSXT[`YV[c\bTYRdbQ^ZZa__[QdY\[ZR\Z]UPU_X[Y^a[][[Z\S]\V`W[cZZbaZ\XdXY[YT\Z`_VXfMRWZY`UWWTZX_]YUa[Z^^VO\\SUWc[T\cbS_YTSXXY^WaTZb]]_cP\V^]VZQVLWZWTWfT^XYRTfS`e[Y\aWUXQ]P_SVTZdZYaRYVY^[[Y\X[XXQP[Tc__[VZZ_[U[VTX`Z\]__VWYZQ^UURX[^WZa\T]ZTVSWU_SWV\TT[`R[[U_TZRUiX`[\b[]bS`[QPYa`^ZY\UU]T_Tc[_W]Z\O`\ZXVe[cZcb]][]UOW]\_S^VVV[XX]\Za]b\]V_ZZ]_\TYWYRVRV_[X\ZaYUM^YUYXU[^U_TR]__W^OYYP\YS_[YUWV`TZ[XWUTX\]a[Z]^[]YNd_UUeX^W[WY[ah]TT[^W_SYVWdZYP\ZeRZcd\\XW]ST]bVSZYXXXTTaXSS_\YZ_S\Va_VW\]\dXa``YXWR_d\XbVZUXZX\Y\RX]SYaYSc^X\ZPW]V[\[Z]^ZXW[_[_Ud`YZTQWlQZ[W\T`R^W\`aP^[\ZVUbYSSU_^Y[VZRW^`ZP`ZcWRb^_V`\XSdb^Q[ZdVVX[ZVZZWWScXRU]Z^TZUU\[UZaS[]XVZS]\\W[da^TWW[VZWY_WVQ_]]XU`ZY[[W^W^a\^[Q]]\XWSXYTVbWXRb]]WXW]\Tb^ZZZYb[cU]]XXUR_T`U`WfbXU[\\Zd`[XhUTZYVV_f^\S]b\]]PX^Y_W`]`[]RWVXZXZVYMZV]Q[XWVaZUbU\W^\Y`]Z^U[\\\YXaWXVVZ[\_VW^jRXTWWT`[U^[T\[XXX[X^T]T`W[[UV_X]Z`Y^]XVW\WUbYYYU`WcbT^`T^XVS\h]\ZT`[T]NYRaXXMUX[^RTOUYTTYVLX^\YWaV[^^G^`\SY]OQ\[Q]Z^YYTTK[SZZVVc[bTXaYWn^Y\\]VY`_S^iUZ[[TXc[`TUT\Q[PW^RUXVaVT\YTYWXVYZX\M_\YTZWagd\NVXR_S]\acYbYOX[VgQW[STW]^\[[SXYeZbZ_XOZRV^`V\[X\[`YSbPVZT^UMOaPWYXZV\VYadSTcXY[Y_[aW]cYL`R]XYVbY\Y\_XRZeSbUU\_VRZSa[WVaUZ_TT\W]Y`Z]dkXVVZXUaW[XXS\\L^YX\qUY\X_ZWV^Y_UYV^YaX`Z_\TT[[\YXbYUUV\Ih\_SRfU[Y[Y`X_XZTZZ]PYUUX^[Za]R_RWXa][q^XZ`Y]`ZYVVO_YRS\X`ZYQahYWd[PdUUWZMYZ^T][PZUUdTPVRQ[UUZ[[`]\UX^[UObRUXc[XZPVUe\]\SRST`XJZaU^U`Od\Y[W^eg[YYa\aV]T\[ZXYV]TUaXQ\]dVTQW]ZWY\Za]P_eV]NXkYQYW^XaUXZZVTZYY]\^W_V^SWW]TYUV[VS_Z_QQQ\T_[UYU[PT`^SZ]Q_SY]YXRS[YYXl]`^]XXUZTW`d`UR\XP_VZ_^UVj]RRWWNWebZ\Z\dU`\T\Sa][[S^[bV\XX`UTR_YZaPXZWcSX`[WPTYZZTYZW]Z]b`eXUbgO\Z_`[SSU`QY\_\cQUX\[R][W]W\WV[_]\]XRYYO_\[[Ugc^[X_YT`lWYV_VTWabV]U\Y]Y_SX_YYTZX[ZVUZa\Y]US`WY\^e\T_`aX]VWaWZjX\VXRZ[T[Y[`RHSbQLX\_ZYV\[TQPcT[O\WQXSMYZVYXW\\\RYV[XX\[\fUe]UXQVb[]VX\ZOZ\]`\PT^RMR]_VfcVZ`aT^XdgXfXdVT_X^Ya`dV]]Tj__\edR[sK\WPVh_XZ\]WTQ``mS_`\Z]bbZY\V\^ePbV^^URVdVZ\U^NZcaV\SXe]bY`^ONXV]T`^\YXR[LnQbU\UX`WS]XeY]XUbXW\QSXVYIdf\eX^X[YYSRVWQY_`P[YcTS^RVU\VP\YPadSUI[]VT[[_daaRdXbgTXZVQ__V]bNZ`YY]Y]]^`_XR^cYTbbZVY`XXOZTdb[\YZ[abRX`[ROYX]bZ_XTVWV^YIVYKU[PZT_VVX]WZlL`XRRbQZRYYY]X[P^a]PaeYbU]PXL_VTeXX_YWfZNY]QTXQYT_YY]c[_WW]QR\XS[]WX[ZWWeR\ZY[a[Z[[^]]Y_SXWZM\dTWcSXXY`\_\R]W[P[SRYeYTZ_]W\N`ZYYVai`WW[`VdXWa[eZURPZXYVdR[]V^XX]YRXXbacU[]f`X]YXRe^\ZTR\ZVUV[XVU]\YaO]WX[k^V[QRW[V^\YVVVUUZcQ\aUcR]]`]a\[U[RU[S]W`SX\YSWQ\_]Y[]XUUVYX]V^Z\]U[LL]T][Lka_^V^\YbgWV\VaQabR^U[YVXeUeZ\ZKYZV^`dU\YSYNW_TT\QRV\aP[XVZZcTcYWXVYeNOXZRWmY\ZZS_UU`V^WbW`Z\WZWVW\V^X[_S`Xa_STUX`X\SVXOR^XUZX`[`WTYVW]dcZ^[U\U[]SXSVS`Q^Z\WVNOTVWW]bWYY^d[^XXZ]_X]Y`\b`[]SYV]R_aWaYY\UY`QZZWZf[V\XXb[Y\XXa``W[WW`SYXV[W[WZWTVRRXT]V[]dbMOTVY[]]\TZWT^Q[YhTh]VdZVTVZN^_`X\^VbWgWWZ[Z][S[]Q]WVOXYdWY\bYXZXXXQWWX]VXPR]XVbYUSW^Z[RVWV[XTVWX\WYYUX\UW[f[YSYXTQfVXTRZTW[bXVRU[V_ZS]_SY_[ZV^VPeTZXPMTVYU^YZ\TTZ[UVbYQRXU`VZW]aX\Yc\`U_PT\WbV[ZeVR]XV[WaZXQ\WVYX[SS[W_QdTPT[]Y_UWVcS`WN[U[b_aRXZV_Y_VZhZ[XQ[]c]WZQWP_Y\UVTW]IVWT^Y_PY\V[YN\^NV[VWtVPXTaU_`VUZY\cPZV`W[O\TSaacVflXaaYTWVWW^[UU\SPQVO^VXbdY]V[aZ^T]_[TYYYaXVRP[_aYW[Z`ZHRaYZ_cSZ]`U^Ql`]]YPXV[P_cPTXUWV`Ve[bZXYVWQ]RY_ZU`]\Y]TWWSVZQ[UKebQW`Y\QTZ\ZPR[aZ[aT]cUTQ[`ZY_W^Z_]`fRY\SV]TYaY``XUYeWR]Zd_]UZNTUXUYYTXeRTX]\ZW]]U^bQUUMPVaV]UYUaY^U[[UXXY^ZSWZW^bTc_ZR[aaW`ZTZXYS^^ZW\XScY[W[U_Y[X\[SQTWU_Xa[`OYUVYZS[SVK[`URUVXW]]]TY^][Zc\Q[NTeYT`Zb_^WSZS[L\R[V\XU\^YOSZXQV\RRXgYW^^][W^[XS]X\SaalYZZ_XQWZX\]YOYRd_YVT\X]XTbbT`VR[ed]UY\X[]`TZZUY[XX[VXXXV[UU[UWZY\ZVWT_\YXVUaY\WWY`Y[_WUSU^ZWURU^]XUWZYZU\\]^^]Y`g[\XZR^U`T^YYXZ\V\Z]ST[ZSUT^ZZSU[WZ\TUb]YTR[PW[]W[WSdYRUY]]dUXZ\XZTY]PSV^[WS[RTYe]R\YV]ZTZ]YURX]]Z\[bX[SWU[UYWZWXdZXV^^R\ZX_`Yb[ZTVVYaZS\\bcWR[VWQZZW[SV]\\\XW^]]b^aZOV\_dXWUTZ]O\WaaaVQX^P[\W]\WTXXZV]^XQ_]^YRMUT\Z][WO]TS]Z\\X^][\VTYUaUS\]V^]XVX\QYMc_L\Z[UZW[Z[VWX\[_VZZZW\ZYVXZ[]XR`V[XObXZYVSV[Y_]WZZc[WVaZTeeWaP[iWTVUU`VZS\U\`]^\[_`Y]UVX_[S\S[[c[T`Y`^T[dRh\hbWZY_XT`_WeXR]YYYUVV^]XfZUT`X\NZZ^P_]b]a_[UROiXW[dS[QV`aUY]]XV`[aYX_WUPT]]UZVT`X[Y^b[X^YZ[`ZTY`V_^[\]VR]WR^\YRX[]SY^XbUVX`ZXVVPXT[W`]XXZ_Z\ZVW]c\VWY[XZ[cQ^YVR^UY^UXRU]V]b[d\W`YX\\Y^UZWTWdTZRZTSZR\W_VdQ]ZT`]\\X]UV^X[XbYT^XX]Ra^[aSXY^eYUbUTYXXX]UX``]V_V__VZZTY_c`^]X[WV\\VWa`[_UbTVh[VSRTYX]Q\V^X_[ZYZZPZVP]ZURY`e^XTYTY]MVXX^\aXVVZO[`YbX`ZaWZT[TZX\[e[YX]]YV]^W^QYd^ZZTTTUZ]ZeUYUWYZZQ_][Z][TOUQY[X[^Z\[XQeb`XR]X_VZ\aYWaZ[ScPYYNVbSUZT[SYS[`\YWW]Ye[Y^]S^U^[SXeWf[VZV[\][ZU]bYYV\b_h___Rb\ZT]_T_UWWRW_YT\QWXU\SM[ZQ[_]^XZYdYYXRWR]]U_XV[aZaV[`U_RU[X\aUWWcYU]XYTZR\Y\QU`aY]^RZW]UbTW]W_ZZ^\WXVR[T_`]c^[ZZ[^U\YXV[ZkPWTY^PSVXSO[\U]RWWWWR\[]_\T[cW]YWV^VVY\W`U[YTWZNQWX[MYaS[]VT[W_W[WVWZ_YSU[eS`^Z[YRdZa^[_ZKYX\V[[MXWUQcbYR_Z]hbg^`Ra]MdRdXTlZcbS\ZX\`][\_QdVYdWZ\__YcZYZ\^YQdVb[TqTUUcPV]QWa]]T^_dWXZ_WSJ][_^^cW]Yh_S`XW`ZJR]adaX\[e^RV[^Y]XSXZ]^_Yf_Q[VeUOZV`]Y]YSS_W[RSee_ZZ]YdYYZaf[QYUPVRVYYbd_[YUmV]W\VQ]NSVc_YY`RZ^`Rd`YXSS\OYW[aZaVS]Y^NPXVUb[RX^\O]YXaYXV_``VZbZWXW[O`\X\\XYZTQXdeZZ]QWYeZZW`JQVSWh\[Zb`YX[Y\Y[X_]UXN_c[bfV[XZ]XR^Y[W\ZWQ^Z`YUZ_\[XZ\_Y[[X]Y[X\^TY\]X\UWQQ[\Y]UbbZW`WX[[PW_]\\\b]b]\_Y^WT]]XWQRS`Z\XV_TU`^Z^`\ZX_[^ZaX`X^R[T\TUYZ_Z^[ZUYVTX[[XSX][YS\_SX]\_aZaZRW]W_[ZWc][^\__Z`W]\a[WWXX[TZW[Z_X]Y[gZ]WVYR\SZV]^ZO[ZS`]TXVWaT\^dZUSZWbUQXZW[[S`Q__ZVZfY`Z[OTXgcRWXUTV_[S[[X\XdR]XWWZ^SYYU`X[\VT[WWPcU^VRYg_XWW]\UZ\YYTgX[[XYUVXW\WQW\ZZW[[V\U^`RY\\[YW^Rb[[_V]W`T_XVYWYVVc^]Q[\VZUZY^UZ_[RdgPUVdZ]aUY^SWPOZZV[XZQ\\XZ[[TOTSd]SYV[`aSVb]a_S[VV`P[OWVX]]bf^M[WX]]Y\YYSTX`cbcW]_J\[STZX\c\XYV[O\a]\X^nV][]R]QVWXX`a`TV_UJMX_RVWTPRWZ]U]`^W[YH^SX^WY[S\[TX[XZU]aXS[Va[`WURS^MXZ]\X[\R^T[XS`Q[UP^TU[UXY`]RVVVXRX[\VS[VkVe[^^L_^SU_TZW[YW\VXY^ZZWbTY\_W\^YS[YQZ][R[ZUZY[XP]MZVXfZKWbTSWRST\YVcUUZ^V_OnWXT]a^YXVaY[^\VTYS_[dTaWWW^\Y`h\_TWZS]WY[XbM_VVPWYRTbX\_]X[QUZ\ZXSV\cVUP\XWW\U\\^cl]T]X\]^ZYX[[[ZYaU]RaUV^O^Q_ddUUW\^R]VZaUWe\U\[aR^aWQW`^W\UWZZ[XSXcnXS[Y\ZZ]VSRY]SWX\^W``\`RXW\VXORX]Y_Wb\_YWUYU]S_V[XX^UX[_OU[aa[Y]\a\XRW\QTYSX^QOTUU^aUSSUV^]Nc[]bhd[Y^UX[RV`Q\VWaT]T]^X]dWUd\^YY\aa\fW][YSVdh]Q`UT\QYZWfVXY]QZY]V[[_^N][]a`bZTX\YU[[XbN\XU\QaUUUZT\TXR]\TWW]WWS\[UQWOZXYX^a\LZ]WWXY]b[aY[bbdZRcR`TVT]\[WX_aYXV\S\XX[YYT[TSSd\XVUZXYXWW_RZUTcaW[YORYX]YYTd]WUY\SXYJSbTe\USSfY^Z^SXVX`\SPh`ZWY]O]MUQ^[`d_^WZXX_VdWT]d_`PbY][QSXTZX[[WZ[XS\TWTWYLYcPUT]ZVWY[YTZ[UVWR\RXZ`]X]TWX[TfRLW^ZV]ZUXQX_ZdY^RWUPS]V\e_^\XYT]kZ\SXgQXMQTYPc`cXX^f[Z`WT_WhVXXVWRZi\PbSnYcf[[`QPcX`UWTRZWRUWXaU\\U^YVSW^QVTYZTk^X[UP`^aTZ^VXVW^WPLY\\_ZRYeTUVWXh[YW^eViX[YYUZX[]QVdVTUV[[_XX]fYadb\TXSNXSOTYZZ[^fVSZiVeSV\bSQUkY\[XVTZVRQXaWTRWOZ\UPVZU]O]VX_cbRR[YYSWTRaXY]WWTZ^fVWjVW\\aYQQV]gX\XUOaUTX[WWYfX\Z][ZOUccXZ]X]MXaTUW[Tc[\VY`[NeQafZWjVW[]WXR^PWVghV]^]RWZZY_RY]R\VeagWVd^][ZW[h`[V\b[]ZU]YdXh]WPUVZ[_ZXTYdW[]UYWZW]YS_VWc]Y^YcWY`_RXP]]U^[YSR\WZ^\QTZQXT]W]X[U]\^WV^T[^PX^[XNXYVVZ\d[U[_SN_[a\\UV[X\Y\P]ZQcZUYRVS\bR\X^]bc[WOZeT^YVU_ZRRUW_\[YQbUZZWWUgYY^TXVUWXWUYVZ]WSRZR_W`^P`Q_XYTZWVYWVZZXWS^YVWWV\\ZTaTU]VSVWf`]^R[[`\XTPP[^RVP[bXZWYXYfdYTP]VZRWf_Za^V^ZZa\]_ZW\[YSS^SZaS\Z`Y[_a\\WWeV]^YZ]^_eST]UV[V_X_e^Y[TWY\UWaUXOP`aXOY\b^aZUYd\NX_^\YNgR`\VcZY[W^S\__Xg\Ue\V\YU^WeX^c\ZP\NWXZX[J\Q[YT`YgYXWXQeV\ZWWOZ\\R\[b[b][S\a^[a\^\Z[b^T__Y^`P^WRZVX\[TYdaPV^Zd]O\\]Q\cU^RZ^T[aiQX_iXUT]Z\^^^^^bca\[VXc`Z\MVOW[TZVV[`UWOXUS_^a`]``RVTUfXZV[_Zc\bfYZ_ZUXYTYR`]OXWiUYWTVZZV[W\YW^UTWZ\]e_eXSRTQ[OSY^[YVg]\[\V\[XW\ZWX_U[WYWMfPd_XWTSWZZTbbR[^ZeSZ]\[XMo[bYZ^ZZ[XSXVO_SZaTY]^ZaXVUY]XaZcWeVYZ[^VZ_cXTT\^bZYaPQ[\UWS^W\VReXa[TY_^ZV\UUb`SYbMZeo^\\UZPZVUUWXTNY[Y_b\lWbX`VSY_ZZTYWZ[i`RQW[[TZW[[VSVXXTV^SKZ`^Xa`jZ\]Z]XZVZ[aW[\YYZ]eZcUUTR`[ZTYa[RWf[_S]UZ_V]M_OZX]\YQf]WW_O][UWnV^Pd^bU_]RSQcZ^bXa\fS\`I_QX\UVZ[UZ\W[N^[[ZU[e`VX`cZWWUSZW\XPS[P[]]\QZaUT^_[YRX_]TZ\WZ[YZbcUXWW^\TWeV_f_SiWXZ`cPZXU_a][U^YT]fd_]UgYbYYvSPTTYXYXSZ\UUaX]XbZ`\WUVWMY\[daT\[^\XTUTl^T_bSbT]V][O\\d^bWTb^ZVTLV[cOW]VVZX_b[\UX]bQaUW[cSXYbWXe[XVXQKPaVT^f\ZOWWY`fTcU^Z^W_V]R]ZVVZcYOQRa\V^P\ZS^\U\b\VMW]]_ZTNSZO[N]]YZaV\Q_XW\P]WZQV^UVU[VO[XZcYkS^TVb`_`]TOZaVZgaZd``V]_R^[R\UV`TYTZTbSUM[bW\SWb[[TZWSW]fVj[[\\]_V`eV^O]\VV_XO[UYK`\YYQdTUh\X]Y_YQaM`WsVWXUVUQ[dSVV]\__[_^XZX\\X`SQTWP_TOWbU[[TWWVYX\PiZMRZf\e\^PP_\R\PPTXTPW[[mJT^RbdUqSX^SXYZeYYV[YWYZP`TU]VdS`WR^WM`XV]ZTYWZQ[a[`QY]`]]X\ZVZ]S\^Z_Y\][ZEZWbXbQ\YV^]X[_X^VRSN_[XTXV`[UVWgZR]]UcWX^W[Waf^XWWV^ScSS]LV]UY]Y\[n[\gXgYS[XURZZSaZS[Y]Z]_SX^TY\e\dUSTYW^`aUYZ__g_MVTa]YI^XOj^SW^]R[]\YTY``bU^[[`^TW]YbZONf[\TZS][\Y[TYXaVXdK[VOZZRS]fRe`ZWcU]YWMUZcXcS[LWSZUVY_VM`aU^X^TWaY`_`^l^VVdWQUe^ZUa`[NWZ[hVQXYXU[XVZUg^Y_IRSOP`WPPQMTdPM[XUZTQZTYcYdN[YT`Y[`ZZ\T^Yf`U_ZLXY`RXbZWZPb\h]YYTPQdaN\]T^_Z[YeVQ\X`_^cXV^VW[]YaVZVTXU\OVP[eY\YY_[fYU]WRYX[__KZYU[^XcVX`TdUR\P\\]YZcbW`hcP^TPRYXSYSRbW[YV[^[d_ZVW[XZZZV[SZZYS]OTYeYQf]WQX\`SWVZQX\]jZf]RZWWWVZVY]ZYTWVXWXYfRV\TZYU]Xeb][U_\V^[[UZ`[VZ[Z[[XYYZU\YRZP][XY`bYU]YZUV`VVZ_bWUVXY\VZW\\U`d`^\R`bZVXUR\N\WT^^YZ`[SeY`USY]PZYUZYcYYOSU`W[Y[WZ^WZaWabM^bcQZ]Tb`ZXZV_SU\VXY_ZTd[XWV\WXZ[ZW`aV^YZ\U[V`X^X^\Y]O]`[YbYZaYVZe_XVXcTXTUXX\]U_YW[V]`Z`W[]bY\WSW`]Z]Y\Zd[T^_XPVXYYYVZcdWY]^[^b\X\Wc\YX_Z[X\[]T]YU\]W_WZQV[[Z^XX^\[\bWVRTYRYVX_ab_ZZ[T`]QXTZfWW^^T\U^T^YcOS\`Q_[YXVS[UWJaRVVS^W`UY_c\Z\cYZWXWWWTPSaW[^WZQY_\\\UPYYW[]]UZcYSSXbR\]\aR`X_ZWIU]N\]R_bSX\][ST[YYTP[Z[Ra]X\]Z_NSUcT`_\Xa^YW^XQ^aNUN]YYZSZX]]RSSSR_`W[^]SZLUVZZ[[`Y]^`aYX\^Y[\^T[]\\XZSTR`UV^][S\eTb\b\U][UTVT[eTaWZZcRSVTXT_N`XQi[U]^[YTVUU_ZZSe]Xga\WbkqX\TUZV[Y`[ZTVW\N[_LT\OVYX\e\_VVXVa_`W^[c\V^ZiU\b`YRSUQVZ^]YhZUTR^TgLUWPXRQSXcSX_]Y^bZ``UUYXaRZ[UZWPYQUWY`YgYXTTSVZfWW``^WaaYSX_[\VYU[[aYXXY`WXgWZWTV[[ZY\WRYVTa_TbXe]SU`[YfQ^W\i]\^_R\]_VXU[Y_^Z]RRW_VWbRSWQV[Y]_bU\YTV]\XdY[dWWT][MajYZ\X\WVY`SVYZZe[UZ^aVa`OcRWS_ZeTSRS[TZ\S[`XXV^R_fQZWZZXUQRg^\[Q]]_RU\VW`ZeYZ]YWa^[\\R`PYYUW`W_TYWWSUjXUWbZ[YZR[TXQZXXPTVZTY]\\h^O]bWZLQ]XMSc`]QX^bYUYUm`W[ORT\]S\VUXeUVXW\^TUXZ[fYYYZW\eYPUU\a`\R]VZWRT_U\`]YZ]VWWWYX]\S\[`ZZ__[^UbR\T`Ub^SXVVQZ]UY^eY[VX`QhQWh[_\YZd__YedZTWNb[iXVUOZWU]QVWi\`jZV\ZPaZ_[SRS^SW\b^`]X[Y\ZQ[dZZQ^\Y]SSXYW[]XZ[TV^UZ`\[bTT]][UY\TTUXKU\TY_RZTbVZj`_SYZ]XTWW_Y\\Y[SU\Q\[aSUYZ[_SW[UTbU\[SZU\VX^`VXYU[b__U[V^VS^XUWV[SZY\YZT[W^]aUY^QSWT^RR^[`QYW^PcS`\W_ZY_\UZ[Z`MYUWV\p^^X\YX`V\VXYUWZOPT]T`_T\\ZbX_^YnU_]R\bcPXTQPXT\]VSX[\cRZXaWa\]TX_\RUYU[SWWZ^XVYX\`W^\T\RVa`Ue\_YQ^V\WZMTW^[V\^]Z\XXW[_`PVX[UT`]\\Z[XXX[ZR\OU]UW_`WZZZX]`OTVVW_VWTZUgV^`TQ_YN[V[beWVTf\^RSfZO]VXY]YRXd\QZV\\^``\[UhWeZdV\_Y`VQdWVXU_[W`T\WVX^W][_da\R[UT\WVYZVUY\OV]\cX^VZTZ_\TS^[`XWZU_UZaX[TXbZWWUWUXK[VTXa]R_W[PgZ^^Vc[a_]fWVbaWXT]UW^WW^a`Z[ZV]Q[U\XUX^]UVXXSY\aUVTU[VW^dh`VP[SUWUQbXY]\gXcYTTaZVY[YV[VV\XcT__\\ZZ\`[S]_W[^V\VZc]fM\UXcPZT`^XU\Tdbi\W`Y__VUm^_UV[Vhc[e[\SNTULYX]^aV[cZWa[UTVXWVZSUT]hXT[UX]^gbVWl[Y[\]MRe[][[QRYjcYQ\aVRYZ[[_]R_YXcaRVTWPU\[[[W^W^YY[VXa[ZW`[VT`j[VkWd[NZ[VTXPZWUWXS[dVRS][S[_XJ]VSYVUUQXcRTXWYRUlUP^aNT\VP[WYg^T[F^X[Z^Y[`X\[ZYaSZYYkbO\_\c[S^ua]_X`XV[[Z\^ZZQg`\YSYb[ZXaZUM`RTYYcSY]`XXZVbYVR\]XR_VVVYYVVVZW^SR\PR[UaNZcZWc[\ZbWXTdW]ST\[Y\W\\NXX[bMWZZTWaZQV]cX[bT[^YOS]\VX`^T\O]VZdRU\`[W\NS[XN^_^RPTWb]]\TTSPZ\]Qb]ZbSj_JZTU\c[VJXVcXY`[UU`]^Y`[TYX[RZWW]SYXiaQTUYZ^SMjU^R^\bV`Ya[\][ZXZd]YX]XVS]\bZ\n[gTSULbP]bY\a\ZYXRZQY`a\M[SbYbVZWOVZg\UVXZ_`YW^_RW]^YVZhX]\bb`S[X]Y[X`X_XY]^XY[OYZdXYY[WWWZWYWWWRZ\XZ[WZ\WQ\XWSWY`UR]U\^XVYV\X^[W[V]`_Y[`VWdX\ZP`b_k[U_^\\[XPT\[W`RUSb[]R[YWb^X\VY[cYVY_XZcXYUZb[bdVXRT^ZXXXSZWZVZ[VUX]V\WYV\ZS]Z_V_VYXQVhcXZ_U]YbRVZfWX\^`_SW^VU[`W\[VVQSPXZWU^^UZYWO\TZ[TSlVXR[]c\X]YX`VW\]Z]OXZZVYV^VW\RY^^\^U`bTX`hW`YSUaRSZW^ZeXZZZ_^`X][ZXZ[ZY[Yb_S^XZZY\XbZdUTPZ]S[SUTPcYYaRW_V]UUYSR_b]XT\][VZ^\X^TQS\XVbSd`WZX_ZWYY^X\^eXYSa[[[U`cW^UT][`[_[Y\TWXZO]_Y_cOYTU\UV`WZ[YY]YQZTWW]WYS^X]Z\c]_]R`[bUOVcaX`TYYaa^[RVZXZTY[VT[^W\WS[SXV]Q[YWWWZU_^Y[aWOSZ[S_`R^WS[SVfVYR\Uba\b\[`X[Ra\ZVSRW[XXS\RVRbX^Y]_]`V`Y[\VTc^SY[dTWW^\^[TPX\_Z[a_WWPe^eVbY^ZZ_T]U[X[c[Q_WWaQUfUSVUUY]VV_SRUSNWTUR[VdT_[\YRUaVZR\\VXYc`[a\]SN`Y\cVWYQR\WT\^ZVg`YZ`WdVV^X]Q_VaPbfcYWXYWX]dQY_Z[SZcTPXV[VWT[ZYcabZUVWX[ZV[TcX\b`ZjY\_VXRf`[Wbb[[Y]ZVUcV\ZeT[LQ\VbiRP]\YeRWd_VVb\X]]RV\\X[bZQ]YXRXWY[T^S]Y^_^YW^T`QXU\ec[VYXTYb]]S_[WUaYWVWY][WX`e^YY\W`^`YYX^WRf[XUUTUSY\P]^Y^QVZS_YTYXZ[WXUYXY`SXY]O^X\WZXUZVdSYNWWY]]ZO[][^UUSWTURaROVT^WYgWhTXV\XYVW^TWcVYSUZ]^UZ[[\]UQ`]a[^Q_`]]]Y\[\\_QTWV^gY_]ZZY\N]YV[\TR\RZ]UWU[V]V``UR\W`Z_V`YXURV`ZY^Z[i`UXXXXZUSX]TS[XSZZbZUNR]Y[W_]T^[ZVSYYSQ_[^R\YbcY]Q`PWY[VWd]PXVTa``aYTXZW[ZRSNWPUNYYYUS^[\afZ^]UO\SYXXZWXIW_`[[WZcUU\ZcTWVZZ\VSYZY_XX_a]^TY[VX[WU\ZUSX]WX[U_U\Xe_[Y]UVYX\ZXb[\^Z_US[aYZ\W`XW[]^V`^[`XZaWWV^^\[Y\[VZeZ\^^]]]`]Y]`][\RVW[UYTXY[__]ZW\[\[[X]WZfaZZWWbXY\UP[T_TZYX\bXZRWU[^QT\XWWd_c\XY^X[WZ[ZVZWU\^R\WUZ^PYZUX`^VYbWa_Y[_\WX[Y]W\Z[V\YWUWV[[S_\\i]]\]\Q^_YWWWS`VaZbYTWXdRXWYeV\YZY\VW\aQYVWTS[ZT\W[_a_WYW]T]WY\X[TZ`][^Y\V\Yc_W\[]][TZWZY^VZT^W[R^[e`R[UVSWcZZZZXXPZXUYZOZX^RUVY_baZZ`^^XS\[hWeXT]]UV]YI[U^[g[YaXS]W\[R]RYVWXQ_`YXY]`TZ\YWVV\VWUW[a`\PTfXZWZfWTZ`a^YU\\TXU\_VRi]SX[YV[TWRTS[YYVXYORX]cN[VYYWXi\PRYTW\RS^UZYVQYMWR_XV_ZaU\[_]TRY`YRW`RY[V[[cVWgYSUY^_QW[Ye`\VTXRQWVO]\SfcS[WYZ\]^UZ]]]]YV_hWlOZTX[YWbYXaVYYY\Z^T[baV^\X[aVR]a[YW]S\Y_Q`U^^SaW\RXaV[_\YQOUX^dSV`VWZYW_XTX\RTX`VXSQZYZaUWXZU[WY]Z]WU^MV\`_[\\[VUaTeVY\Y[U_Yb\W[[SRWa\VyOUZ[^[dOTT_Wc][YXU__XZUU^[WcWUXdMQRbU_[cW_Va[a\PUW^e_^P\\cOa`\YfYXY`dg`\WZ_emY^KJ]Ub]\[U\QUSS`Z_U^M^Y_[U`gW\a[Uc\fX\hFVVS\KT[ZZ\ZOUcZYO^Sa`\KaWUd]TTe[cTa[gjZw^UYXRaLUN[b\c^XRcW[OY^XY]\_]ZUZ_M_YOOjZ[\phfX]^Za\iPWZ[UOOVYa\ZcYOVRW^Z\VSUN[[X[gV]T^P[O[gVeZOd_TQQUdXWWZ_\`Oa]W^]LWW^Ye\VVf\]YK]Y^bUW\VS`XWZeT]YPYQ]Z[YPY_VXZXdY[YP[a[gXY\`_SYP\`aVXcU[\]VQRUWM`Q`O]P]W[YZ_af[eaXZbZ]_XXK]P^]ST_[MSW`bP\^QZXT[VVXWbWT\]ZY\ZaY\[V]_Q[WVV\][W]TYS]UUM]V\V[^WY]Z_Z]XWZX]cT\]]YUYV[QY[\]`_\^WXYaV[aX[`[U^YUX[YTT_^XaWZ\[f^YVWVYYVWZYWUVZQXYVW[dXdVVYWVX\Zb]WS\WZZdYf[^Y]W]`VV[V_`bZWdSWSX^XXZ\P\`X][X_Y[_WT[TRT]SVdhX_XVY[WW]W^\YfS\^]Z]X\b`VZVYT[ZUWY]\ZSVW^VV[V\\YXUQY[X]\VZ[XW]Z^`WbV\Y_WVZVYW\[VTX[c[UWdWZ[^Z\_Ub_TbXW`YXUVgZ[VW^^Zb\_WW^XW_VW[]XQ\SeXX_\WYX[V[Y\US][RTU^ZX[\\STTYW\]b_]Z[W[X[V[VaRR_\U_\T[XVUY^VYUXaWYY^^ZRWbS\\]ZTRT__ZXSf]\aZ[RVaSWZZXc_T^f]_VVUShY[]Z]X_PaeWWY[WX^]UUdWYc`YW[TR\a_ZWX`XYPT_SMgdUX[]`_U_i[`[ZTZ`R\[V^_^ZSdVVYWd[]][XRRV`^\WTRY[W`[^WXSVW\^WYWY\O__iTaO^NVQbVS]\\\gUi[]WSQ]XZXUY[V]SQZYV^\VO\Z]L\R__\ZXZ[]]VWVfTYX^X\WZgV_KS]VR^a_XbW^[_h[X][SYW\`U_Y[`QQWZZ`X]UX_YZUY^WSWNV^b^XZ[X[^_cX\P`]]VWTUYY\]_]UR]Y[]YRW^YXaYUQVW^[[^_^ZWRa[W`_^_SWWV^\`UNZ]YOZZY[T_XZVR`^ZWZYUVZ\RVT]aWSZSV]T]XZiRUW[WTVU\XYWYL[\dUiVTSRaY^YVQ[^eWbWV\ZaR\\[U^Y\^]bY^UcVR][[]W\WYV\]^Y]TWOPVZ]ZT`RYfRTXWW`WZS[`WUbXYW`Yid[S^ZWUSS^c`hWSPO[Z^bXQhXWWX]SW\]]ReZ]X`S]Y]RiWYUZT[^N`VVYZW^_R]b_Q`[XVS]bSZ^bXRZUbZRUZjcVV^]T\W\TU]VZXTVRXXb[]\UXbWZZaXWRXaX]Z\gbQY_W`_WQ^Ve[Ya\\XMV]^]YXW^QW[SQaWU^OR]aYR^Z[[XaW]]WX]^Z]UU^XUSYZST\\V^d^TUR`ZZZ`U[bbT\ZYWYOT[f^T`VQWYT`V]]^USZ\]Y[SWWYUXV^]WfQ]UYW]d]ZcVjZV`W[]W\X^]SPZdWa^]^Ra^XVX`YUYU_WST\Z[a\WgWOVWU]^]\RWcYS_bYbpWV]Zg[XVTbYX`TbQY`[WYbZ[ORZR\iZXX`UUUU_S[\\TVXOZRZ\OVW_bUXTUUZWRZPQ[V[[[NiZWU^[\^Y[VTQ[_U[_W\XY\VZa\V]hXXSZWXQcTZYQRT_]i]UYZT][XYgR[YQa`TXZWXXWYo[[TVeX[TX_XUS[WZ[UQp^YQ]U``][PcPX]Wa\WS[RVTXXUTX\dYX_V`bQYX_U]ZUaX\UaYXY]`YUW]]VUQZ^V][TSZRZSiPfhTNFXa[hX[ceYXVVS]VY^T^`[VYQWR^VXXVU^cc^^U__^SW_WXXV]]YT[Y^^\V\\ZjgZUZZ^V[WU]^TRWV_XQ]U]VXW]_^[ZZUZ`XXWY`ST[UUX[VX_VT\RZUWYU_dU`Vg`UZYe\R[U`XXWeTYZ]ZQXUZYVTY]Z[`P_]VQT_X`VV^N][Z[][___W]WTYT]YTUYQSUP^ZUQ[SYS]YfXSfWUZaYZ]a[SdY_ZZg_URdWS_]Si__`TKZbRaZaZUZRWVTM_XZV\^SW\W[MUUS\^[gZTWdTLXX\QVW_N[XXUXVSNXOUUT\Z\X__Z]eUWbbX[`[M]S[RVdX]^_gSQYgPXcZO^\\TY^YdMWXZU]`bb_RW_^\WORSUYObXRcUWb[bSYYZLYTb[[[]]a\\YMa\WO\`Y[ZJWW]U_^Y[aT^ZPRdXV`Xb[g^VQ[Q^RUTYZ\SQWTT]cRST_VZU_\Ob_ZU\[S_^YYZ\UUTZXd]_\^iSdVaVYT^XU\^S^Z[^WU]LW_eVRYScZVTR]a[QZ\Y[\ZVUYcY[Y\[VZ^Xb^Y_\]Xh\]VTRPLaaZR\SXQXYYU_WVY\`aRZa^hO[Z_ccTV^^UdXUWX_`[UVMP[QVUXTe[\\\]]eVOS\_`bWTdW^[^\W^]PYP^QdZLVNXSZSgQUYVX]`UX^YNSX]i]`]YS`^UXY[_Yb\YU\R`Y^R[aXXjPWWY\baU`[RN\ZUXVXUa`[`bQ]WQU[YdXYZQS`TUZS_\]WQVb`TVNW[YTVcW[XZWYUiZjT_K]^XXWX`[`cg^Z[^SRYPVY]]K]caWZMY\V[PVXYL^bU^^RYKZ`Y[YUT`Ya\cUS]ZZYa\YWX^UV[SSSYX\R]YXQ_XPQYc]aNfaUbUYhZ`YWPPYW[ZQ`]_U`[[VZ_cKcgYN[^SVbZYTgXY[oaY`YeZUVS]]UY^]YX^XX]X]QYbh^_`Z`OW][]c^WdUZ_U\bNXbZW\Z^SSYR\VaST]Z\VV]\`SYN]ZU`WUT]PXdU[^]Z^RZTW[Oa\WVX[T\`Yc[aV\]ZUdPW[ZTZ_[\WXX`cZ`[]SXYU[Y^_SZYTXaY_RX[YTVPnY^Y`SR`\`X[f\ZO\[[iXRZ[^UZW][[]gX^ZbVTQY\XT[OZ]ZZUd`WRZSU[YXVTUSdUZNf\V[W[TjPVXTUWSRUlX]bXb[W\Y`\_X\c`aST^X^W_VS_[`S\`]Y_ZfaZ^S\UfVTYXZYOP]`^QZUZUWM_YZPYX]_UUX_VRbZTe_RZUQNXXWYKYYUXeeVY]WTSU[W^\NXWZ[V`]TYX_Zc\Q`_[WUZXV\U`TX[W^NYT\XURW]Tn^TYWOWY]WX\\[^YWX\cS^YY`NWWTaU]XV`ZaX]XZ]^lY`V]T[WPYZWaa]dRdU[TV\_R\[XVgfV[\\YYR`dV[M^VW[`TU_TU\V[[YSPX[W`^XZYX\XY[\ZZW]]d^Xd\\WXUZ_cdeUUYYZWSW^WQ^\d\[VXS[RZRZTacWW_VR\n]fc^RXddXb[[]WdaVXYdT]Wa`XRaVbXUU[ehcX\WUTYXTWVVS]iYVXY[SYSTU]VSeRbVZX[XUUR\ZTbUUVXZT`fRXZ\ZWOfW^[`cZ]\cWY[ZSRaTV[`_^YcQO\YVRa\_]Y]_VRWQR^X_WYSV[_]ZaX^[YaVV\\\\V`W[b_QWVTXZSUX^XRWRb[X[P]VWS[]UaUV^XYaXT[U_[Yfe^[VYT]VUiW\\][[N][aZ`]TXUXTXYUSZh\ZXVY`U[WX_aW[[UXXZ[`VU]cXWWX]OUTVVVVVMR[SU^_XVUZSZScTNVN[YVbUaSV`WXe[\_]Z`_[S]VdY]USTbXZa\]\YUR[YVZ\Z^X`[\gXWZVXcYTZYVZ_]V`UQWWV[VN^SUZU]WUZVYZPUaUWX^UV[V_TXW[XUaZS_UVc[bR[aY\S\^XX]PU]VSc\R_M[aYU_[Xab]Q\\Y]P\[gYYYSkQh_[VX\W^`^c[[^UZfU`\XW_f]XXa[gV`PWd]\]\VY^VYXRRR`RSXT\QaSa]]X_ZW\QSXVZVbVdWWX]Z^PQW\a_d[_\QZ]\\VX^^WVWZV[W^SYXVX]WWV`[SUVVX]OVXU_^^j`XVVUZS_[cTT\[ZR[Z\\]_\\`RWbXY\e^_\WX[]XXVa\X^VYWWXY\_XLQU[Y[Y_WRR]`c_f]Y\VbS_ZW]VTYUSTZ]TXcT\XZPXT_WYRVRUd^ZRT^SWUW\[\\]W[jcYZXUYURXVXUXQQVbWUUP_`ObU]WSQYTYVX]`bU`W[SQY\X\^\U\WWZfWTQVUWb`TSU\X^ZlUYaTZVWVZYY]X\VSYV_^[WTWTVV[U_\eZUZU[XUUUYbbSO`ZYT\Q`\WYZYSSVUYXYUf\Y_[]Y[_VZXVfZUU\U]ZQaVZ_\]]SXS^^\_[XZUZV[^gVXXUYaZTWRX\[[PUW^^]^U\]bP[PZQYX]\PSd[^SX`\Zd\T]U_SVY_\RYTXST^ZaWW\\Y\\\ThWUUVTY^P^ZVW[bVcVZkVYPeWYVQZVW_fSWS]O\[dYY\[SYj^U]QVTVXRVW^_]XV[QSR[Xai]]RUdaXRZTaVZXX[XX[gQJO][][Z[_WYO]XRXRX^[aT`ZZ[\W^S_cZ]`V_]RdSjWZ`[W^YVV^^SbVPlcTWM\Y]L^fV[^\XYUWa[NUYTV]VZYeV_Xe^W]\`Xb\MZoX[gY]XYRPV_T_XUQ[Pe_[fZbZeWR[WRT]\_S^\YWUUW``[^\XT\TT[]c\T[Z\]ZV\eXWUXWjX`X[WahRST\QXT]XVFTXRN`bX^WXeZW__^aO^[USV_iR\OQSaJVdc^ZRVWdWYUZb`ZeXWYN^WX]\SOY_P`Z_SWSXUW]fYRXVY\T]Y[_U\X\ZW[]^[Y`VZ_S_N__Z][\[Z]Z[ZaYXXU_\TWZf^\^OS`^^WWdXRO^W_X[[d^fYZYeVSX^VaZU\\PW\WX[^b[ZVY[YXSPVZXa\W\W_aT[a\SVWaSXN`b\SV[\]ZWZO`TYUR^TQZ\`VVZWX[W^WTVJVWWYTSd[W\gT\V\`a`[\Zg[WVU][\SZXSZT^SSXXVSW\\WTYRb^XY^WU]_ZVcXdeU^[\\`XVUSX\Z]W[b[^ZPP]UZK[^TSc[V^[[Xa^TW]SYW_XW^bLZZ]`[QUQWd^YVVZVUVM\O]YUk\^WX[[UM]WTY_W\YZbXW\P^\\[[Z[QQ^\Wb^YZ]]W\bRaRYRX]ZT^S\RfXWTVVU\^PWYW^WZ[Y]T]YVU]^aW]\VVY\XZ_[\^V`\[RUa]^W\[TbW_d\YYYUZXTR_V[UXYT^Y`T[bRY[XUW]_]XbXUY]bUZ`_VZWX]TRWZ_YXYWYXgVY_b]U_TXWZRUW`W[_bY[VXWZm_VUQ\U`Z^bTT[SSXVU\VdZ\aZdbbZ[^YYSY]Zce[VY\bZ[YY]ZUWV[YU\X`YXW[_T[ba\XXY[XV[VUT`W\_[PS\^VVYTaX[Z_WTb^]XZUQWVYY`ZXZY`^ZTPU\Z^]RQVYX\[T]_XUZ]\^YbYZUWWTUX^[a]V[aTXZPT]ZV\Y^UXV_XUT_`XU]__VVTZWZ\XX^\T_Z]_Ti[SZXT`V^_XYUV^VVVYS\\VaZ[ZMV[bZYd]^W\YXPZZXYSXVTYTQ]S^U]U]VXS]gYXWYZWSY^WbaSSZTXVURV\aVW_[WSXSf_Z^]UWNa[^^SXW_VX^PT\\ZTYaGW\ajbaUa`\UbTX]ZWZ[YcZXVZ`Z[abUSQWVUYoaXhYW\aWcVcZZ\^Y\SXeWXbYWXT[VT`caaXZ]\ZiX]QaW^WRY_UZW^U^ZQWRV_cUWUTV\ZTW^ZdZX_V]_`b[\]TVZ^U\\\^UZSaaUXYYXZa`VLXT[gNWWedj]d^UVXSZ[\[OU`aP_hX\[Z[XZWVYSXPR[W_YSWaV^cT[UY\ccX[[^Zg`ZWYXSVRa[Z^X^U\UVYYT[XZoaS\WUUU[R`\]YQUd[[eX`_PVWXUWWaXROWRXWSXQjYXWZgUV]Z^VWYSZPZZYZ[NXWYVS]TTdab\[SPYW`YZUW[WcSXS[YWZ]XTc`ZUX]Y_R[WW_^[^[cVVX^ZQdY^WTXT_SYWV]U[X\^[[Y_Y[Obb[RUUQUaVZafb\\a__\WS\XRW[YXZVPVeXgVXZYg^\_]QXVXRYZWVUYV]Q^WX^\]XUR\Z\ZZTW^PYZ]Y\XY\[`UZZZWY[]TSVZYSYUZQT\fWW\\a[TV[ZZPP]YWR^Y[TWW^UUYWYYZ\bXTXXWWY\S\XT]XXSP_^e^`YbWUZY\TWR[X^ZYXcZ]Y\\^XW[[XYWcZXWT\V\`\T[]ZVU_X\\WZ\TXYZY\V^]XX_RVWXT[]_SUTVZRYVUTT_\]ZV\XUU]YSX[VVUV\VZXRa_[]W\YTR`S\U[SZ_SWbQWZY\cYSTT`f^^XVZ][Sf]\SWY^b[\[bQ[U]YWXU]Y\bTU^UXVb[Z_Y\`WR^KO\T]VYhWV]\YS\^Xd[WZaZQ^ZaUWZTSR`T[`WXZf]T`Y_a[]YXZ_\^\]dYVS`T_lY[_ZVXTVW]\U^VSSNY^OZYW_Y^[ZeOYY^XU_[aRZWS\WXWV^\aYXbZKaU[Y^K[ZY]N]OOZXYaa[SQTYRU]\ZYT\b^\_Ye\Vc[^Z_]Z_aUYZRTTX[RUcdOVgVaQ[R]^X[YWXQ_U\T[\XW]WUc[bXRS^X]SWXVVP]^aZ\XWY`WVZXZY\_W`TZRXOZWPaZ^P[YT\```XeZYaWc[ZW\XWUYWgeSUTZQ]]\X_aZdbY]QVYc^Va\]\VYSNWZZ`_a_Z^]\URXTYNW]XaaU[i\IWZSV_`Y\WcYXSXUWU[MZWTcTZS_WZaT^UZbNT`fXZ\\WT[WYVS`XU\U[\aU[VUVUZZTcVXYWbbW^TYU]S\[]WV_XXWT\T]\^U_Yc\S_TZV[Y\R]WRZUX[[a[WSYVTYZYYXZWb\ZZVY]ZWeUXW`aZeZY[U_QZYVMZ^ST\S\^S^a[U[ST[VXVX][ZTSWVW\SX]V[cSTZXZUUVa[bVY[aZNXdQ]R]XRY^\^d]WYQXaba\^[[UUWZVZ_XT][U[gYYU\USaTgZ\[TUW]XZXXVYZWcVUXYRXZ^[aWWTXP_ZQYWWWY^^]^[WNVRWY\][TZV\aX\XS]_`\UYY[ZW\U_Y_WX]W\]PZ[[WY[_cW]Y]U[WW\[[\`a[ZXVZ]^WSNTL[]XZVVV]V\]YR[_]YZRWO\ZVTVc`WRY_\TOZYT]a`Xq]RMV_[YSZP`XT\ZcUaRQR`dOS][]Zb^TV^P`[P]e[YQ\XXRST[]UT\TY^bT]UY^[Z\TZR[S]SUeQRTlN`aUeVV_]X\RP`V_N\\WWhTZZqXSWJ_W[d\T\SiVTYYTQ]\VYT^W\VT]fTPaWXbX^UZ`c[\SUY\aQ[UNZV[h[bRU]\SjN[UTbZTa_TZSSUj^c^YY\\Zgg]Wc\X[Q_SXgZ\dXdOPRZYWU[S[PXTO_XZV\N[UWX`\YZ][]Q[S\URXOSk[WN]WSUcQXWSb]V]^WZd[ZbcVUYeV_YX`YcUd_SRZ[TUYZZ_cW`TZXWh[ZVN[UbZ\eWLUYXYMOSY_[NYVZ\SX]Q_\TcWWVXX`RXSV^ZRUdV^VbZbZ[\XS]_OTed]WV[X]TXS^edZZW\XU[gUS]VXU`ZXQTQZZQ[ZXTU]aRV_^^ZYU[[SS^Y]aaW^XX`YQcUY_ZTX]fXVZVTZU_WUZRTRh]YTM]\^a_RVWS[ZWZW__Ze[R\Vb^`WWXYVU]W[YWWY^ZSMcV^\XfY\XYb`ZZTP[^cTXSU\[OX_cYV[a]RZ_XSXTUMT_ZTX[gZ[][WQWWU_U\ZVcXU\\QWUP^]^WXWP]TXSYckT]\Z\WSN[Sa[d`]d[_[R[QX[S^XNSZZ\Xb_XaXUdW\a[_XVeZfT_gTXUW[[Z\]]VNac_O\ZS[^VT_eZ_\W][\WVT\Z[QYeYYO^[aYVSWaYTUb_sXX]Z_S^R[PX\\W\SUZPc_bTY`YT]Y[YZ`NQ_[]^ZTVT]UTWYdZ`[VWTYPVXeY[YcW_Z[XbUUaZa`aS][ZTX^V\YUTWU^Y\\UYVXRZTV[YZ\UWXWY`[_[YQW]XZW[TZ\QZ\U`]TX_[bWW\VaYdZ\WY][]X[^T^TUYRY][\RUUV[VYT_]XV_XY_PXY`XZ_SZWV[VYR`Za\\\Y]T[Z^XW`[`[]ZX\YUVY_]UZOYV][^VX]X\[bUTYT\^W^^S[[^ZXV]\YZ_]ZWX^c]Y`[V[TW\V[Z`^XPYYYV\VYSY`SY^U[XU[]XZ\Z]]RV^Y\bXYXXhW]VY`V\V]\Za_SYWlYX]_VX]\\VS\VT\]^Tc`UQXZO]_e[fXYYYYXZYP\VTXV\W_TXSa[YZ\VU_X[_\LTZdZU`WQZR]T^]QW[\[`]VOZaP\S_XQVhZ]QQ\X\XV[d\YZPZS]\TU]SU]_OWZN^[]R\Sb[WVXWU\PVPVVY]\aWU^_gTdZSTZ]`[]aY[VZ`VbXh_[\[ZWY[VbT[c\\Q[aQTU^bUXWXV]T[fa[VLW\\ZU[Y`c^aY_\UX[WYV[d^XTZURbW]_jT]`X[XPS^U]QVUZ\TQ__a\ZRX[`ZX`SS^Ta\`W\WgZ_SYU_cNj]YUjU]Uc_Z_WU`_WS[P[UZOha\aRb]Z`TVY][d]_ZRRTWU_W`e[YT^TRbeXWUTS]]Wj_[W_Y]\TV\]QP[Xb[[WW_WYVRZcbVWUURT_V[_RVZbaV]^SWZUV\T_YWO]TX^Z_]SZZhXb][Z]SXTVZVV^WUg_W_eSgYb^WUc^`ZXUX\ZTYWZYaWZ]IZaXWR_[\TZY\]`V_^_WfX`VRT_[\a`VRX^TZbP^[Y\WW[[Z]^Z][U`b[`T_Q`]UYX_WSWgV\TZ[Y\WZZZaVR\ZSWZXW`_`P[XTZ`TU^]_WaV[URZ^\QXVVR``U]]U\^YWXYXca[YZV\]a_\ZRXWYSTZUUVX]]^dY``[\V[a[Ya^SXU\\]PV[Y[UW`c]T`XZ_a[Z^TXX_XY^UWXT]VW`UY\`]XP]XQ_XYWT^U\\Y_YV__RSZTW\b\\WYRTUTXW\]S\[\]ZW]XYVUXW`cZXX]UXVef[^\[\bT\dXYY`VP\X\SZYQYYXPbTVYSWZSZZ[Y[YaPQ^YWT[\U\ZR^VWd^U^W][[R_]_ZWZXY[W_^Q^SQ]aZYU^Y\ZSaWTYXVRTZ]_[ZV^cOUXUU_^YS^TX[bW[\V[XXW_[iXV]TXUe\U]WZQVTZYRTUZTaX\ZT[Zb`T]YVQ\\UZZSX^T]T[YdSWVTjYQ[WS_YVaXb`WTX_bTY`c_RSQ[c`aYW[X_[[_YdbWb`WXPSW[WeVUYSS\TT_ZSXX[UVZ\VX]UYW[[YWYWYZ\ecYVR\VRW\Z[ZWaXZaXVUT]`[NU]\Y\N`U[UkZRNTa`Z]YZXXWX\W\]YRbXV]Y^VYQ[[VRX^X\WQZR[S`W_[VT`UUYQWUWZUZZKe\`_bX`]`[UY[Wdb\VWSVTSMXXYYLeXc^]`\XVX\_QQWW^]W\V]aW\XIZa\V[XZYZYU\[QT[WU[\e`bXXQZ_UXSZ_Z^T]_dc\W]Z\`WSc][VcXbXUZV\XVSWZ[YSXXcZ^YZW]ZcWXXVS[YZQ\^VWPTXV\[X`S^WfY\XSR\[\X\TZb^TX\fOVSY_[ZebWVV_cW[XZaQOXUUVdV]`^\[`U_\SYiUVWY^_UZTRaTRZSVaWbWWLTU[UYVXYcTWNYWbVa\^^^TTXXbZW]ZUT`UbRQSTb]PTT\_^YU]`RbW_]T^ZRUcXYVUSQ[U`RTX[S\W]VSbY[^b]WkV^`XbWVVU]^TJVS[]_\TZXPZYUV_Za^[TbZSZ[YWZ\SX]]UVXXSS`T[fWO]UW[ZZUV[V^UcV]_URUZ^Z\WbZ]YXX]WcW[V^XQZTWZWWSWW^R[\TZaZjWP\W_UZZUQ[Ye[YXX`cXVcUYVU\bXV[\_YT\\Z\UYY_WVTP]XZ\en[_`OaWaZY\X^WTWXZ`RKY\\`e[XVQUUYZ``Z[`]f]WYRZQXf[U^Z[YXXUUUZa[W]]VZTTb[TWVSSa[U]XVWQ\S]\TXeU]^id\YTUZ\cS^XVVX^Y[UX_UW^ZXOVY\\YU`dMaYYWSZP]VV^VSTTd^\RT[^T_`YVcWZR[QVYYW]]XXX[YWZY[f`\e[V\RZR^[a\WZVX^[mZUR][dUV_Z\SWVZZYR]X^\[S[e`^^T[TW]RV^UZ\XVYU[XYTWZ]YeeXYZW[`WXZYZWaS_ZX^YWVV][RWT[\[Z\\ULXSSQ]\[WTPXRVY^ZZTRWPTZTo`\[X_RU^R\_[^UTS\YOVV`_Sa\ZV[a]`_TUOaTZ[^XWTZaWaXWRUTUZZ\\Ug[[[U]VUbO[_aZX]SVfP\R[UR\^YZWZW[\ZVWSdXb[`V\WRWXZ]]ZZ\WRXXXV[\adTSZU\bTUWg^OcbWRYZSY\[T^ZY_ZPXbW]aTU^YRYUPU[[^Y\]Z_XdWR[e]Z^[]VYTW^SXS_Zcb^QbZVQZN[QUVa\RSSXX]Y^YZn`[OYadQk\]YYaYV[Z]\_YWbOW^XO]YXXW\\^_U[aZY[Z[_QZ]c^USXN]dVX_UVR\[]YTcW`VU`VSVS[P]Y^[SS]][aYcXSWS[QXZRX]YbWXiYW]UW[VQZT][b][]ZVSVYa\[]\[]]\b][XOVXYUW\Y][TZX_Y\M[`\YTcVWO^V[U_W[TOT\]XPc]T[ZU^gUZTV[^ZdY^UZVa_SaZW_[WXc`XSZVXcZ\dVS\R]X[]\ZWVfW`[^YV\X]f[RaY[O]X^Zh]X^Ub\Qg[XX]VQ\\\\WVWOY`ZVWVYXdTWPW_R_YWQX[dZUYYS^T\ZjR^cPaOg_YWVVW`ZW[\XTS[XZSW[\UW_^T]d\WVT[TTV[_\Y\X[O\d]bNQ`STV`R[]a]\UVbd`UU\]QWQ\ZbO`QVXbOVZU[XZ[T^WY]VWU`]VQ]VZTUW^Z^eTVXWY[SYY]VXZ[YX[fTaSUW\TXVaR`YXZZ_RVV\QZO^_WSVQXb\\[^Xa[U]U^V\P`N_fXU\X[_UKT`SVa]XUS]\QZ\[UXZXVbbcNMT\^cXYX_ZQWeV_[V_fUVaU`\[_ZYa[M\WMNUYg^`YXYMXW]\Z`XRZ__ZOXaXXZW`^U`\VbNU\\S\_\\Zb\ZW`][^XX^U[Z]\Z_Y[WXYTW[_WZd]WWT^^WeNT]US`\QSZXYVRXXTbUY\UZ[c`V[ZXT`U]XXYWaYYUWYjZZfV^Z^VZUVo]ZRXZTdZ[XQYUVQOZ_[W[\Y[[S]V`d[]WOWaX`\[YUaZWa[^^VVVWcXZZZZVUZYZWSWT_P`SeYT_R\WV[[WZ_ZX[[WWYYS[X`j^U^YWU_WUXTUYZUWVZU\WW`WZUV^_Y`aiVVLYXSWbd]H`USY[VS[UW_][Xe[]_a]SSPVYXWRgUP]VZVXTTUUa`QUV^Y\Ya[[PT_W]_Q^VUW_U\MVVZYYRP`Ya\`][`I[`WZ[Tb\ZZXcPb\]\bQUVWNTU\U\[W\SVZYOQPXX^Y][Q[^[[V^TX\OTVVaPZWeY\Wb`U[UT]\RY`gR\_]ZYXXcZT]``TZfUV\]WX\jSQVU[W[]_ZWZ\VVMVZYZ[_Yb[\`\VWY[ZWZP]cVXV_TWT[WRe\WbVR\[b[^W^cX_][Y\X]bX^]`RZX[WSScXXYZ[X\W\ZNccY`YY]a[bg`S]XYYU^[SXSTX_SYWUYYWP]`YaRW[PZ\ZbYW\YUU`TZZUTUT_\ZSVaVVb_OZUXTaaTQb]TXT^TcRjXV`V_Vd_S[Z\RYZURVXe[\WOaYYZTYZ\X\\\ZLaWe]Z[]ZZTaX`RSaR[`RX^ZM^XXUYVLTX\]Z`bZYW\[^YWUXW[OR[U[U\WbYZVbW_k\[VTXR_]WXZSVY`YS_dSSY^SSU]S[bb[^]`dTTX]T`]Z[`\T\UZ[]TdQUSY`[XZXVV[iV^bOSS]X\cR^NT[W^V`WXX_T`S]V]R__eWV_MUdeUWRX_UXYXYYW]]^ZaXZUcR^RZ\QL\TXTQYXRRMY]UWXYaS]_bXO_UaLVZ^XRZQSY]Yc[RT[S][\^RX`[XXg\\U\WX\Y]YVZZZcL\XO]e[R[^a_VW\[QVY[XQVSQQZ_a[[SY^V\XShV`UUSZS^OMXOadPWd[ZcX`VWVSUeSaY[eZUXWYRU\TWWd[UZP[W\_`Yd[WfVVbVZNU^_YN[]^X^UaRQ^VPTS]YSVNZRVYYVS\OU[dXU[_b_[XV`XYaUY^^^ZXVVRYU[V]YYU][\W^YSU[UUYX`\YYZX[Qa[UZ[XXWTYYa\^RL[\[\S]iSXOWOYO\Yb`UVR]d\XYS[W[V^gZ_UYVb[]VQ]`XcPP\`^QUZ^[YZZZX_T]WWgZYd[_UbU`S^[W]WZaVUbTZ^_W`X[cXO]XT[TZR[X\aUXb[bXOS\aUWVQV]eb^TVYR]XZUY`VQVWXZbTWYQaX^QXe]Y\]\Y`\\`ZX`W_aYVRR[ZWTaV`QRU[b``Z^XZXgSPZ]N[R[WY[]Y[ZWX]^Y^SY[VbW_YTY\ZSb\caPWYVRbWVVT\XWY[a^\]`T_^WYb^`ZVX[[Y]a[WW\R_VT]ZVYUVVb]WN]RTY[ZLZPZcVa\V`YTRZ_Y[VXaUeZQVU[V\UWda[X`fRSYUb]WUSXYTX]_\RWV[WTYaa`Y[]]fYWVWbTVYabSWZbPTTQSWZZZXd\S\VYPVW\S]a\VVY__ZW]X][XWdUZ[PhWXQYYV]YV\VaZUYRI]Z`^d\R`Z`V_ZU\]ZXaUVX\YZYe^WVRXY[S\W`[MSbVH[e[TWUXW[Q_\^XTU\]^]W^VYQ[ZJ`WXXaT[_cYaHZUU[P]]`[SYZ_Y`TiSSSRL`UX\ZTbdYQ^_aU`bYZO[T]SV^\[Q[Y^O_]VXX_RRbUcbUSWZT\NWVUXX\W[WVVW[VYTW\ZXZRbYe[W`X^]TWcZXYQYSW[[YWdW^XPZRaWXZ[U^aQ[RS\cR`Yb^[`NPVV`ah^_SThhbc^YPW]]cTZS^Z^[\_WbPZZSZ[Z[Tf`TIZLW]WTV^_VYa\ZVdWY[XTYZ]J\Q]R^SYSTSQZaYZT[a[]]W\[cSY\_VWa\^W]P^Y^UQbXa[ZV`YVXU]\XbZXPVX_]\QU[Y^USZaTWTS^Z]^Y^[ZU\RX\Z^V\]]X`WZe_ZU\R[XXU]SgYWWZ`U\^TV_WZXfY^dRU]WSWYYOM\_Xb^Y\S\TebbfWY[V\]YYW\XZYTUeXX[\]Yb_ZYR\WWQR^bdbVZU^bXVUSVc`\\XZW_]_\`RVj\XS`SOUX_eQ[NX\YZ\U[Q\^X[Z_W]\YWOXUUcU[SZVY\ZZVLZ`VSfXWcR`UcY_WYY__[\\Y[Z\^YSaQPTQPYX]WYZ\RYYVX[YUWSTZ\^`ZU^R]^VYU`Y[`V\TcRYT[XTdccW`^Vc\b]V\SYc[VO\WXh_SWTZVTXTYTO\VYVX`^WdWX[Z]iYTU]TVXUVc`S^^XWXUU[bY\TU]`\ZXXaRTc__aTUX^Y_V\ZXVY_XYY_[aW^]^VZUZ`UWY^Y]^\RRV[]YYaT][XRZYYXURdgj[U^_Y]\TW[\Q[YUYXZ][V_W^\[XUa]UWS\bST_^UdZ_Y`aYcZYZXQSW]Va\RXZUZTThVVZWWUWZUPW_\W`ZXWeYb[\VSYeWZVQ[WPZUU[YVYd[YbdS[Va]Z_`RW`T^Zc^g]WV[UXY\\]WW\U[\ZUYdZU[[]]ZYV[P`ZWV]^YPU][^Z\U[Z][d[_\WX\R]YZTZVSX^VR^XWdVU[^[d\VYTYZ_U][SVUYfXZbRY]aUU^XXb][U[UX^XV]\eYWZb\S\Qdc^\[T^QZ^SU]f\Y\ZXZ^\_W[Z`[T^a[X^XRxTUZWWVSYQ_S[XZQZZ^X\fX[cXQ\k_^\`VXPRTTWY[K[gXU[XfWaZS]\SX]U[QTTU^XiY\YTQ]]PS_TgY_WU\\YW`XWbVT^T[][XW]^P[XfZfVQbVVbW^cWL`[XQcVXoU_[_\YY\fXRaX[RQTT`V`_dU\\X`_U_YVW]TVcZXYWVZNRTXT_O\Y]P]X]Z]`S]WOZZUYTVURUR\]SSUT^\aVU]QRVUVaQhWb[ZmV`VZXZS[T`ZWaSaVUZ[XVa\UQVO_]]QXOScQZ[WXS\XT]V_VYPN]UZR^YXRX[TVYY_\SWYXIYbT`YYa`WYX\ZeQYJXURaUVTdPXYWU[dSfZPR[]UTbVY][S[dVY^S[WVXYbZ^YUXTTKV`Tb_ZU\c\U_T]VSeV\]JXL[TW\_^eR[j]]YXUgXQ\YWR`bXXNS_U[_^dZYX[WUVeTTYQ[VS[[\[WVW[OeWW\UZXQ\_VX__Uf_WZTZeZ_[Z_Q[Z]VbTbW]cSX`UVcVVR[YVYUhQc[X[VV^WTXUg_\bT^Y]XYZbXo`XRPWYaPUXV\WY^[gXZ[YZRZ[`WUW[V[YY]XXSX^UWdTOVVSWYWRXTUaZ`SWV_PW^`\SZWVYa^V[Vg\]a][ZZ[WXd^XoThbY_[Z[V_][`XWWX[P[Z`_XYU[SUT]]YYU\Z__XVU\`VRW[f\[[WXYPQRZWZQ_ZZY]XXWWZWPRSQUaYUZVZ]\`_QUY]WYTXMXPXXUWZZ\[ZWTKV\Y`VXWUV]]ZX[Y[]^N\X\^^`]`aTUXQW\[ZN[_PTW^XNXddXUX[X\P\Z`W[]U\]aZW[PRZYNZSR\X]SZ_O`_U[\\SYaZaRcN_]`ZYeQZSXXX][`^XZVWR]S\Y]Z_VZ\SYWYV]VS`WYZ_\YVV]SR^\`ZVU^SXU][YXZW[XYZ^]\Y^ZX^TdXTZSNUTZS[WW[]`YWZ``XVaTXZU[`VX_\Zd_ROYXY]UTWYW\Z`^UYP`Q]\X^[[Z\\WSX[X^ZYab]X[[W[[V^S^WY\_][RTP\\YMXUZd\X\ZV_XX\S`]ZN[YXi[KSU]]][\ZU[^_W\aaV]YU\^[V\_`[WU\WYZTXVaaV]^WUZbZSWZ^[Q[XQ^\^aZTTU]`]U\QZ^[WXY^XY]X`Uc[[ZUcZ_P[UWSZ`L\V_\bRi[UdYYPPVV\]bW][d_[TWZ\YT`^_^YZaUYYV\WVXTT_UU`YW\X]ZXk]aXTY_VS[_P_R[`VZV_cSZQT]U]][YQ[[m[PVL`Y\V\UJ[aZYV_VYS][[RY_VXORX\_S^VRT_Xb\^R]VNRWX`^[[[bX\YTbWWV]YY]TVbXYSY\U]Y[ZZ[Wd\RW`d[\]^WQVUXWcPTQWVbaWUV\c]RY]VQ___T[Z`^VVW_USUb[nSZbSXP][Y\\XT]U_`e\d[]a[VYXVWSaZ\c[VaSRVVYjU`fTXN]SVZ[\WSVZVRQ^[Z`Uh`UVVd^ZT`ZWNW_NUWV]YVd_YX]SKZQOW]WZacY^W]XVd[XXYYRRRYPW\VT]Y^U[fh\V]XYbK]^\WYV]ObVTWV_^]OYKXcVRRZ]W]U\[g_X]WRRLZXR]R_P`[eY_Ra\UVRRaZ`RX[YXd`WUc\UMbVT_]YYSVccgYYSZW\[^Z]VaWaWS[cV]ZTSWVXS\RW[Z]TWRQ]]T[Z\WVZS]cXXgPSYW^\XYZWTWVZXX[UYSQ[S_cWSd\`dWS[ZX_VZVS\^dYaabZYb_`ZV\X]]ZdZW\W_[YXYQ\`RZ^b`XX\WaZ\[WP\\YVT[QRT\TYU[QYVcaXYYZV`U\QYR[bV`ZZ[VUY\a^XWV^cR]\fZX_TTZY[OX`]X\XYeaZWe\\SZ]Y\WT[Y\X`WSX[T\\dY[YOZd__VS]WRUWTj[^UY\SfZ_]WQZ]cXUaOXW\ZW\Z[[\T_X\VUSX_W\V]dW[cce\]O`[VhSW]^ZT[ZRb`hXaK^UVcYSR[[WZTV[Zc^UVXW[UU[YX]WVdVYZ]X]UZfV]YUTRUQP[VXaY[_T[jZUV][VO]TYbS[UX_aPYTTXPaXV_adf[ZOVaY^]UR]U[`Zb_XL^Z[^UaY\ZUf]XW]U^UXaOYW`VX_XR^R_[]``VaR]TYV_WSUYXWU]XTd]YPTVXZ[Y]UbV]X^RV\]QQY]]ZZZbZ[]QUR^VL^^PY_X]QPYVVW`V_Z^`]VYdXdX]WUYaTVRVUSLXbZ]YYba]^VTbU\Ra[SaUZVXUW\_XZ]_d\YT[WV[R\UT\U[ZVUZVYXfZWWYZeT[[gaNVV[[YdY_Q]UXU\[V[LSWR`aOX^WWT]XWbVURZ\]a`X_aWRV[XUX]Z[Y^[^`e`\]]XUP]^UTh\Y`]Y]VYVUKTS`Xh[_dR`^S_cVV`WXYN_]aZUVb]TUY`SYS\\[\Z]]TS[X]VZ\V^\[]UZaXQVboSQS[ZUZWYUVQ[\[\kVTY[aLYP\VZW[iZ_[ZZV_ZUXUWc_V^cWT[W[U`U^XUZZX[VVX[X][_`TQ]hZVYU\YXXTV]_dWZ\[XX[ZeY\\XWYZdRYNW\]Z[^ZUWVgYZPWXTZWQYZT\XU^]U[YY_WQ_]X_WYV]]\UUW[RWVZ]e^Y]WXZ_]aXa\T`TWgT\YX]ZXYTZZ\_VYU_Z^XVR[^dU_[TX[ZW]aW`WYSUZ[X_VZ^Z]\WY[X]ZZZWYTZ[US]ZYYVVVR_\`RV[XR\YWV`TTW^Z`Y^_YW\[\`UTg]S_VWWWXYYOXU`[]_^RU^XVXVXWWYZWW]]PZY_UQZXZ^`\`UZUXZ`]ZY\[YZd_[YdXZ^PR\X][UQ[WS]UZWWc[\RQ^eT^^aT\ZYVW`ZSMQ]Y_PTacS[Y\V_UWXRbOR\Y`XY\_UWWUWQXZ]Z]Vd[Uh\TUV\\\Z[\`[VaYU]_ZY_^UbZXZSVRWd^T\`[T_P^ZVYY`]ZY]Z]ZYVXTRX\\[Z[O]c]U__VT_[WRVYWZ^YYcZV[[WVS_dTVSg^`VZYZa]\V]_VPTVWWdSTPZZ[f]V]XXWU]VQdZ\XUf[PdXaWRW^_Yb`Q_ZTdXZTW\TYVVjV[_^`YV]_]Z\UWlY\T`YW`d\S[[PQZXWe^SV^SRVh\\WYYbXQW]RTVR[\[XX`Wgc[]]ZM_ST[V^XYVYYTWUWTT[T[Q[]T^YYV_Z\]Y_aW^[X`ZY[\]^Y]\WXeYQUiZ]Y\^ZbYX`WXZa_VSWPVXR^[aSpQY]S`YYQ_NWPX^VKZ[SbY]TTV\Y^^Z^UX[SaZWXXTbTWWYQ_[VYUX[[\W\WSV\_`X^RWcZS\XQacTZVbSS_YaT\YZXU\WXR\Y[V[`^UUUcWaZX\WXVU[V\WcWU_\`V_VYM^YZY^UZLWZP_TR^bUTZ^^Z^YcU^`[]V_ZUhYSU_WUUWSV]`QV_ZUYc`SW^UTXVPcY[SQ_c]R`R\U`Z]g^aU`Y][[ZXhU[ZX\YZXVZ\XbZbbQ[\TXRYSW]XU`XUZ[]ZS_Y\ZVShZS__YYTPOnZ^_aYcfaW_VPS\aUXXW[]`OVX`WUNdSa^YST`V_XQSWbcW[bc[Na[TTeZ`]QQaUXS\T^Z]SVjcSWSXTWV]\PTSUSPZUWaSYRWR_\`^YXPb[O]WTYZTWU\W]\ZYWX^Vh]\W^YNTZVh`WTVcc]VX[]TbYZVVTV[]\Y[SWXWYZ\ZRT]R^WT\VRYXae^X`XSSXYZZac\Y]\^TWc[Z`XVXZX_SRY]ZVW\cZU]Wb^SR]WLdTVUZ^^VU]RXW_]ZYSZ[X\[c`T\]WaUX]Y[ZUVTZZ\`VNZXZS^^YS`VP^Z_VVfXZW_\]YZY^UYYNfZXXb][Wi[bX_X__[_SV^YU\c]bS\[fWT]_YZ_WYWX^YaTU[c^[YVXU^eQWOUZYX_[`URaTU\VZVZZT\XS[[YYTOQ_[\^[SRY]T\X\[]UV`^]lWQU`[]Z]UQOYZ[W`\YTX\cWVS`MVR_bTVZRS\VW\^UX^[[RWZ\XTZ]WT[WXJ\bZURSXd`U\[_\^\T_aYXS][P]\[]XZUZ]VR\U[Z\YUPY^UV\Uc]Y]\]ZZ\WU[p\ZV]\\Z^T`^\\b]_YVa]TZ[`OVQ]XXV\WbW^WZYRP]UXQWZ]XXU^\VY^\YTUYLZ^\V]^ZSUQU]^T\^VZ\WZ[^[Z`[YSV^e_\\Q\]TU`_TaX\\OSdS[USTcWT]\Se_WbSXaZc^YTWVZ_XZYO]Y`YQaXV[[WVVSYYRV`\UW^[QZYX\_WS\VWX`ZT`\XXWU[T_WYW[cVaT]XUYcYX\U[_V[UV`YW_[VRRW]]VWTVUhUeWVWVUZR[^]WdRS_]PXZQVU^WY`WYSYWWT`[W[Z\ZRT_UXZX[UY`gb\\ZXT[[VZTd[ZR[X[X[TYPW[UX`ZX[XYY[bZTYSVaUZ[OX``OaVWWQVUTS`ZWbVTZ^^bQOU\R[\]QPebT[`UV[P]XKV\SMTb]]X[VW_\XUYb`UTSY]ZUeZKZZZ]YN[YTV[YQVT]^`SV[ZS^ZZPb]^O__STRXP^[c]b]YS_UVS`\_WWWY]YXZP_TYWY\`W`[T\UW^[_PXU`OSVa^ZZ[VXXSRVYXNU]X^WTWXXOZYTTTa^ZS]WcVQX]ZcZcYYZ\aZRUgYX[Z^[[]YZ]UX\^[YZW[TW_XQ\ZUcV\YeXV\]TXVZ\cWT`YW[ZYWT\V[WSPZW_V\UYW[T\\[XgUeO^T]WZ_UUJ[^\`VZ]Z^V[P_Va[VYbW\YZbYXZ]VUYY[RRVUXUU^PUPNXQcYVSYWZYZYV`VWMWW^]\SX\a]SZT`XYQ]TYY\\^`ZY\TUc^aY\\\WY\XU[]Xa]Z^_V^_V\UU]TXeQ^`aWaRaOWYZWUaWbTJ^XP`\Va^[QdTOTca^Z_YY]S[^R]ScRQR]ZU`Ubfbdbe\X\TVYS\`TQYWQ^VY`]Y_ZZYZV`cZS_\UX^YbWUU^SQ[T[YW\\\XU_V]YZ\YW`RZRfW[[]^VXVYgJ[OR^YUYX[]^^ZTY_b[a[UY]XMXU]dZ]Qeb`^\[gW[]X]]YU[ZcZ_SZYQQZSXXXZQ^bV^^`VZX\YS`aSWXTXZ][X[`ZV_ZS_[bTXU^VYS_PX\XSX]Y[^W\]Z^dRUXW[Y\aXR_U^]Y`XUY][^Zaa\VU_WQbZU]VV]ZWQPQa_]SUV\^_\gTX^QUZVa[[[Y^XZYXZO\UYj^Q]SZ[`aXXSWdY^UYQX\^SXYXQeY[Y`b_VSqSYXWY]LZ\ZZS]USZPSXW[\YV\U^ZUb`Od\TTYaU`eURYY[YdXY^]STbPW[\kXY]ZZYg`b\S[\WT^]VZ[f[a\_XT]^V\ZTYRc\e[bUXW_a[Xd_S_T`XYZS`WaZV[W]YWW_W]Y\SXXWXWQf^[X`bP[]SaWU\[YZYW^[YTaTR^MX`\W_[f]T`Z_[U^RTMWUX`ZR]WSZde_TcY^UX]Y`[_]beS\_VVd\^^a^ZOTUZ\V`[S`\V][USTfWTW`q\Ra`_\cLZVMRK]TZ[\W\[ZS[WV[XX\\SdYgXbUO^gTSXVPNWU_WMS]d[\aYWWXZ\R[`STe]]QXZQ[bXW[T_tabg\VW[[`^Xed]c\\Q`ZZWX_TVWUV[XUQ_RcWV]UTVZX`[[Z^WgV^Y[Y^XY]T\_SZ[X]OWVW[]TVcSd^X]XY^[Y[XQVSY[YU[Y`]ZaXXTUYSXY[R_VTW\eWV_[[]_X^SZ\Z[X^T_Z]UWVXPY[V_\\TQR[XXV[aWa_VXTSc_ZQVWXXS\Z]\QRSTYTXc]VZT\W]gQ^ZS\[YT\VPQcR\W]SRae][[YZ^WTX\[[YS\^V]\\Z``UUP\W\_VX`WZXXZ_Sb[Y[V]RZ\\PSWc_`cQaVYY^e^aQZZd]ZbYUSZ`S^PWP_]KXXWcYY`[W_[^^\][]bVTZT]U^_XQX[[XQ_W[YWY[[]Z__`Vb]^XZT\UWWUZ[TVQSUV[SU\XTWY_\U[W[YY`Y\V]YQa[PY[WT\V^bUbSX[Z[`\R`_WYXU]b[VU[^^Y]a[RV\QbVYU^X\X^Zc^W_U[[TUV\]WYa`\I`PiO`SQXT[]VR]XacMXY[RX^S[UaS`V\^Z]]_WYZVQZ[XaQaSW^_^Z^\]Z]]YVVR[YV[_\]YWVReZ]]cS]V^WcM^XZXUYZVRdRYTaW\WV[`\WWZ[ZQ^[\S[W[_TQ^\Z_YYU`ZX\X`\bQX]TU[ZWbXR^P[_^YXVZ[VeYT`U[XWZi\sdRRYXaW[]S\VffaXZOUYMbQZ]T\__YaW\MPcTV_VUPRU^cTTXTYX^c^lWP]RaVT[fWMWP[c]]VU[[_ZT[aV[V^cT^PZ[WSa^SU[`Q[kX[ceWTgb^[SXW_YPVdWUZRITXYUYW^Y^V\P^ZaUZUaVcWUk_^P[^T[^PMT_Z\]^TbSfSSWQPQSXZXSaSWcZSY[`Z[WUY`YPW^TbPX_RV]XX[TYaXX]^VU[`[UZVYVWcUY[\]VY_^[YZ`YZX]U]hZOZQ[ZPUTXObXa[LPVTYVaaWcWZ\]h[^XXXWQ[][SV[`][SW`b_bSa\[YVTYX[[YUW[\WbZTV\V_dOZVUYP]eR_W[Y^[QY`VZXTTR[[ZYVa\WZ^Z]Y[aZ^`TZ[[c]aRb^TYVaSbbZVN^UZ]V]ZU[f\[SPU\VT_^cSUc[a\XX_ZYZQR[dX[W\XYT]ZV\[]ZYP_`T`[We`]PUX^_aWZWSVRZ]OXYZ]YZO`XV]]\VZTYXOW`SXPW^RZdUX]XNZVZXWV`aV`RaibWUXVVSZZ\mXZYb[YV^[[\VRU]\Y`VUVZeZ^_a[bYXXlja[fWT`e^V_\V[XhSQ[^c^\^Y^[ZWXTRXXeXZU[[ZZN\SWU_WOXUU\WZa\XZX[WlX]ZZ`^]ZR^VZVZWSWUY`]ZV_bVW\XWLfTQ[_\VTdZ]]_XO[^\_YVVXcW_\]eZ_T[UWk[]UZRW\V_^UW\QR^T[UXW`US_[bW^X^XT[R_R\WXXZW\YXXeQ^\ZZ_[RZWfZ[ZVZT[YUWgS_[WXXV[YYX[TcZSWUVc[SYXW[U_ZO\XV]XZ]X]XbTTUg\US\YZTX^WR[W\WT^\UU_VY\^UUVd^VX_eYVQWU`aVV[[]SSWYX\WS`WaPUZ\RQYVRf^Y[]Z`UQ]baT[Z\V_a]RVW][K`\\[Z^W^VXW[YOU\aZWX[XP[\Q^WVVb]^XUbUXY`S\]XPX\WY[V_`YVX[\e^aZUZ`U`RWc][_]TU]UTYT[XRWV^[ZQZV\WSdZVSWdVZ_VX\_RV^fbdZWYbSZX\S\TcOSZW`WX]ZS]aZcUZ[ZTWT\YW\`aWNXP\Z_V\bSUa]RaUacd\UUXV[ZYV`]LYVZZR\_^UYUQ]]YaKZYV\X_Z]YV[^U\^]UZ\[Z]\^`_W\^QVTUWZX`[WTV[MXPai__[TVS\`PW[[UXWYU[U]XdW[WY]MScWU`[V[XY\UUXY^WT^XUORY\PaRVT\eUJ`Y^U[nP]\UYZ]VU\Xa_SX_V\T\^ZaSPUXVfY_Q\VWQU\VTVZ\P\^SYUUY]^S`X]Xd`WVZ]UX`YZX]]XVVZVXX]JZYYaTZ_UcSdbZTXUbXfUaScPYJcUd^\jXM^SV_Ve]X`P]VZV``_US\[PWfST[Wf[QZ^YW_VVY\^SWSXR^TUT^Q\UYZTSZX_P]]\_aZ`V\S\\[XVVc`UVRcV[cbWP[cb]ZZaiSeaXMTWT[Vd[gOQO\YUbdOUYXXVec``V\dQ[W`d^ZXS_YY^WUe]VZaYWU]dXWZ_UV_[WaUV`ZbW][a]dYTXhS```aY_]WWQRO[YZh[M`K^XVT]VVTTPUbUf]U^\_]VVJPUVSX\^]aZQ_V_WV_ecXUUZ\Z`JPVU_NQ_Mc\TaYU`dUW[Z[`_MbUWXQQYVPUTVS]WWWRcRURSYT]WYbWTT\WVY\aXbXZVRW^SNW[dP]OXTXTQ\WSN\pSRYWU^URWZhVYPg[_\X[\a^XR][YRS\[TaUT[[dVY_UdXY^V_cVZZ`WQZV\\_SV_TW`[^XU\_^ZW[ZXYZS]a`S\V[`ZVcbT^\VbcY[ZXUZ[XZ[`XV_[UVX]YUZaWW_SUTUV\ZV`VZeW\^^T^\ZR\Za]X]R]X[XXWWaZ]VaXX__X]\a`^\X]ZZ[_fQW\XfVPZZXT]cPReUWZ\\aZ\SbVZXYUWT__Sd]ZZYYY]UaWUYW^YR^ZcWR`XSX\[^WZ^`Y\^Z\`Q\]]\VWT]WYee^]`RZ^\YUX[[^^T[WW^\YY]RUTV]WYX`Y_YU\TZ[W^WVbXb`PTU[^^YYY]T]WUV\ZPaWZ^S\[`YRWT\W[[WXYNZYc[T[\bU[Z\_ZPSP[\_a]^[QZXXY][T^\W\WaRTV_Z[_^\\W\aTXdX_Y^^VY^`Zh`YX]XbT`XST`[UX`c`YVU\VWYdY^[dR^V_`YS[ZX[T\V]acbZaVV[U]R]j^YY]VWYYdgS`c`^]XX8c[VZ]Y]e^YY_VTUVY_UYZ]XQ\bTZYY\WYV]c^XV\[XZY\][XZb^ZX\MYY[dYY]UTa[d^jUe[d]]_ZUY^cWab`UZXXoTZW_WZWbVZOW_eVlXUXWZ_X]WbZS^eZdX\^___Xae_YY`Y]cY`[Z`][bR][ZV[V[\`]b[UVY[X\ZUZXZO\WaX]XUddX^Y_`SW_\ZYTYXXcXWWXWaedec]XH[ZYV]\`Z\WemaWLW\Z\Xd`^\W`][R]Vh]T]\W^XWWb[[VTZ][_U[ZYUU[Z`fY_[[VUQQ[XbYZXcf[WQZY\X^N\]^`da[U_TTWaYZW[TZ[ZWO]aT]]TU]`U_b^^RR[RVV]QdVS^a]T[]XeWUb[TYYX[U[SY[Y[ZWXYgUZPQX`[\Z^aOY\a]W]XTZW]YdcWc`[aPV\Z^^`e^YW_S]ZkY^[UWVYcW[\RXS\QW_X_SVXPTSWWYVN^WW[ZdVZW\\Z_Y^^VY`__YYdY[dVKXSWUS]Y\USW\ZYRWZW^YXVW_fYb^TYR]f\X^WR\WcW[QUV_WTR[^WbbYVW[TeVbW`UeXX^][i[SVViRUVUXUdWXSX[[]_h\Y]SUYRYU[XXY`ST[\_ZXUP[W^QQX[ZNNZUZ\Z^ka`UUYVVZVQR_]_SVUV^_Q]\W]YXVYZPVYVXXTX\XZT[XV]XYNZV[WJVVc`VY]UbS`VUWV]\Wb[QbOUYQTYOK[V]PS ^VXcRXU`\Z]RZcOba_[T[T[[ZUOZJdK_Zc\5_Wb\YP`VdZUYSU]Y[^NDU]\W[RU[YX`Y_TYNR][\bZOcVUWT^TSU\R^]^FWSRSgW`^R\eZ[UQ\XSO]ZSXWYu`[ZlUXXUMXXU`jY]ZQYLXVUX`\aN`\WS]KUYV^Z`]T^X]\a]TSXT\dZYd\0T[WNQ\HX^fZX`VL\\W[`WPV^X]b[_WRYWNY]X[Qa\T^`U_T[Y]`\gUYOUXYUUVXYXYP`YOYR\STUZV_a]]0XTZ_Z^QN['[ZVXZUW_UY^X_ZZ]X^^YW[^X\Y`TT]T\\VZUV[XYX\Q_[WX[VWWTXVYW]]Y\\WSRVX\aWSO`\XZV`[__ZU^OSQRTOYY`TN\STRXXXTP]OR^QybR]Y`\VR][W^nRQUSR`TUL\ZZ\WV_TTYYXbVXZWUa]OV\_]cVXYXRXT^TT__X^ZYVbZdMXWR[VV`R[O[]U[WP`^\]VZOTW\YP]]\NY]YXWSVQURTYZ\TWRS^d]]WX_YWUcZP]T]U_bNZbdWXg]ZV\OR_QVyWV[ZcW\T[UV\\^[_aYUcXOZ_cQXVTN[bRSUR\]WYXaYPbN_^]^ZQ\]R[]YbSaZYWXVWTeXY]Yb\^L]YXVN[RVQNS]^UYXV_YRbcYV]^[T[\]bY\]W\[[e\V[\XYc^JV]X_\TVNY\RX[VT^Y[bWRVWiS[WWW][ZVXUdY[RgZ\^X`XWZW_UdV[USXTYVQV^W^]^XXMX[VRSYbX[_\_^de\\RR_W\Q_Y_bYaUZXiPgZYY[ZTU[V`S]WWgYVW[]_W_YVXWV_aZ[UiU`YZXV^ZZ`YTZR`^ZZRRXTZb_`c\Z^a_WVcil[[Q\^^]_[TT[XRW_WSXb`TUYSZ[YU^NVV`YUVUNO]ZSd\TXUVV\ehUXcW]UQYU[f\YX[bSOUUT[UXZ[T^d]\WXS[V[ZXQS_[aUSZ]TYP]XYXbWXVUQU\ZX\`QTXZY\a\bYacZ[`jeWZWZX_YjY[\Y\[[_`^R\UYYUXUYU[^Z`T\YVZmT^Y\__[MU\^aaVQRlSV]WT^W[WX\VO\\YWZYUadRZhWQRUVYUaU`XVW`Zcl[U]XSZ[XcW[VgV[\`P_UiY[a[S]Z]V[d\\^L^W[XYXXZT]S_`^YT\WWXUY]ZaRS_WTRPN`WXZXJ[_]RPZUYZZ`OWWUYWVaU]VQZ]^NZX^YgXVTVb^ZdUlU\PUQZY[[[YXRUX]`W]WW\\[Z_VXUaRO\\W^]]ZZaZUN_\]TYQS\RO_XV[XQUVT]Z[ZUb`SLUSal[T`QWbVZYS[VTUeYYdb[UR]^YXTWVSZVM]aWWVa[[W^`_VfZ_XZ_ZTSYg\YYSfc\SZ\W\cZa\ZQU[WYV\SRP]RXVU^QTjZg[_W[Q`YXPY`[WU\YU[cTSY]ZRYYXT\___^\W[W`YYUXi^VZS\VdVSUcWY\aP]S`SX]TV^`Y[YWYSZR[VRdaVNWUZUseiTXS]_T]XbUUTU[WSN]\ZRaWXV]RcSRS`TZXS\XQN_fNXZUW`aadXZWWSXXN[`PjY[ebnY[XRY`RTUST^hPW_QWVNXdSS]V^QXU]RXU\VTYZVZVdY\WUXT[]TWbUP[][]b]fW_VYSaZTjUQdR\NQM^[UXZOec\TYR_Z[RTV^^XVfSWXUa[`e[dM^dgTVX[j]WZ^UVcTZ^HaUWQTVN^ZW]U^[YR]`XU[TaUT[N[`ZTN^UV`]XVa[T]PSZ[YZS[WgRV\UhgWTQeWXY^YVVVZOW\WcUWVhYcQW\cZhSb`\W[XXcYQg^NiXWUXYYZ^hRZ[QVVUk[S\]SM`YZcUVSh\U_UYM]LUh`W]^ffRW[bWsXRT^Q`c[ZUWRYT\[S\OWSUTbO[]Z]gYMVWf]]RbUXPZ\Yd[f]_V^XR\QXV^[aObTRP_Q]\Ra_N_`S[UY]Z\acZYSURXWQYX[Z\ZXOYVW^\SSWa\QTVYVZ`_ZYY_U^XRZY]Wa\[WcaW]X[T\QVZVUVX\R]^`ZgZTYhW^SXW\XXWV\XY\V[VW[TTVa]\^XWPiV^[TSWYaZMfWT]^\Z^YZWbXZ\VW_XW^^WVWd_Y^a`[ZXUZ^]UTTXdTW^c[_\Y^U[``X]YUQXl[Ua[[QV^]a\WX^WZVTedS[`[UW[QTSSVaUTcZTVX]TXY_Wa^\ZVZWX[]\WXbT\Td[Wa[SXYRSQY\W_a[\ZRZfSU]^QXfVW^MY\[TSVV[XVRXYYXT\]W]T^WT[TS\U[faQ\XbYRV^UZ\cP[WV`UUTbZ_T[^_Vc[a`WS\YRZ^ZbZZYX\URS^US^T\e\RbT\R\RYZYZaQ\ZUYXiV^_UQaXZT_[XV]Y`_`\cVaZNTY\WjQ`]YW]WaYYVfaQWTZZ]gXWV]^[[X[UaTX]XVX]]]VTYVVW[VaV[T]ZUYTe\Q`TP[TU[aPUXUTgZU[fUXY^TQYZWZ]Ub]X\QVWYZdb\WSSZ_X^QZSRcUYX^WZSSYY]RW^Z[W\\VSYQPacUUaWTTX[Y_VbZXRWWRXVSU`SRQiU]T[XVVTWY`WTc__YW]_[W]XSOWPK_[TS^W^YWWWTaeNZY_[TXYWZZWdR^TO_S^\XXYbRY^SYb^bVXSXXVY\Kb[Z\X\`\VVjYZXYYT_XVY^T^\`R^O]e^RS__QZWcX\aS\\a\\Tc`_eU^VTZU[US[\WYUVXYXIXXZZTTXQ`WY_VWPbT\ec]Z[UY_ZT_U][ZWZTbW]]V\\QW``NYWWVZaR\UZUgY]XVd[[YPVXdYT\V_SSVSYTf[\`WV[c_XS_UZV`^nZNU_M[VR[\dX]^YX[kVW\WR\YYcUXW]\RW[UVTUXg[`U\QZ`VZZZ[VM^UZV^]aTXQUSYZ`[YVV_X\PTYY`]\W]\[X]d[XXRWY[\VRc[\SV\Y^ZVYbYZSYXUQUZV_XZ^YYUYOO\XTaX[X]YS]^UX[]bW_aVW^]ZXSXX]UUW_WU\^^ZWYaWYZ_UTPY`YTRWXUTcWSVVbXY[YV[QVYbUa\bdXWW\ZXg]WZZWZ]RVP^mT_TQYX^W^b_K^M]aTT\ZYUY[[]NUd]UWO[[R]XYLWZ__Ze\SW]Z[\ZX[YVYW^XYW[TZ^XWZTYVTRUXk`ZY`bYUV]PZX^]TaV^[OWaaf`P[YSXZT_U]dLTZZTZRi\]d\_VYa_SQZbY\WVcTTZZW`[`a[`SSS[SS^[_YS`UZe_YWTVT[]]YT\S[XUSJ[V\TaU]V[WWXX\[cXXY^UXY^WXaf`ZWUaSYVVOZ_TN]]YQYY]e^Y\\^Y^PZVV]g[XXbZSY_Y]WR\Z\V\_ROWcR_^_[_WPXc\^VYUW`Y[\[Y^bTSYVVTVZc[[TXYbXW[W`aW]W]YaU\_[`T]TWhVNY[Vf^_^T]]^RWjWVUQ]]_TdTZa^ZY_T\X`_d^ZeabWVZdXQQ[jXXW]ae]XQVaS^bZXR_iTZ\\[\ZYPRZQ\VUW[^_ZVSX\WU\\Z[^ZSYYST^X[\\VdM\PR[]WTSSTX]\WT[TTSS\\Vi[YW`WWY^XSWUaZY\RXW__PRR_]S_\[[aR^[_W[ZSX[cWZVZT^\WXT_\Zf\_`Y]XUQXQYOW]V_YW]VQRV^XWXX]WZWR`PVSVXX^^[]V`W^U^TY]aVY[XTQf[eT\Y^TZ]WZ[T]VXXXWXXQ]W]UX_W\[T\]]TQ\TPWXS`XS`YUUYVYX^ZPc\P_Vh]_XVW\VW\UUZZYW][`]YYTWa\[]VY_^b]XWVWSY]XZZWY\Vdj\RSZR]_TYVYZU_^a^We[`d^]][UY[[XW[VXYTVXNOiRTX]V]UZ[ZYYZ`_YZY_UTWTaX_Y\\_\^`SZ`WYST\]\TW_bVY[Y\fRZS\a\WTZWWSUXVWVZY\U\[WS]TRXbY`SWW[^XXYcNUa\]XV[]ZUUYW]Q^\OP\_\Z^VZYWVWX\XUQXa[SWbYYP\W][]YYZ^WQXY[WTWS\W]`]YX\WXV[VZZZ`WYXVTS`]XUX\`UZY[\[^dVYZRZU\``\X\YZ[\aX_UWYaY`Y]^c[`[VZYZ`Y_WbXZZd\`a^X]Z[cV\]]WeZ`SW_Y\]dVlbV]UWUXXYUTY]Wb\]O_\QZaYY[X_VUQcaXZX_bVX[V^ZVLYTYX]Y\R[UUVdZ^[^QZWSX_Y]^X\eXb\WU_Zh_WUfTV\G`V\XV_VY[\[]`UY[MV\YYZ_TXW]a]kZ\XVZX_V`dVUQVX\Rb\VXZY_\_TWdcXYPZRSTTZ]`[a\VZWaVYPX^]UZa__YYR[[\_]_\VWV\RdY]RdW]TZVP\WS_YXT[XVblWaZa\WOU`ZZPP\VRRdU]YaZWed`VZWf[VXbZ[TQcc[Z[`WVZUW\fb\h^WW_Z^\YU[[VU\[ZZXc]`V^SPXZUPbT\bYTZ_WTV_QUVZQ^^TM_YhTX\aWTYSjW^YYXU]U]Z]Y]\gZWZc[\ZTVZSaUZTU`SXYU]XSSP_ZXURa]VTZQ^RdVV]VOXZ\UV\[WYXYTUZ[T]dVSVUR`dWf`eUT]ZZOdVTZVXUP_VXT]_b^\R_PVaXYXdYYZ]QYWoXZV[\UUh]TaYbUTYV[d\Q[ZT[R[XSYeY\^aS[fZUSVbPR`bXTSOUWV_Tb[^SVXTc\^^OWkbS]YT_^R[X^WWXXUZPUZZZUj]aS_dXTT_U^P\TXV_[XXWUfUYbc[^aNZ[XVWYRTQUPTZjVYY\ch[YYe[QYUY]cT]QX\eTYdOaMcXXYeQQWZ`W\YUYaUR]V]mTdRY`^X]RS\[R\`VY[_UUf[WZcXVX[cXRVRZaY^[Q_i_MZXVNVTTWaVRSUNNkWS_\ZYUYSTTV^]ZXX[``]]RTS]UK\\VZb]XZSY`U_dLRoUYO\OOX\ZnPQ[\V]Y\W[XRVXYh_Ze\WXR^b^WWRVZUV]Y\W`ZVWhXU`V]ZM_aUTXZVUNf^\RUeT`]^dUeffN[]XU]RZdVU[gQRXXSdfOSYOb]T`U\]UW[QgZXTdW[_]TRRO\VT^Z\OWWW^o\e\SeZYZS\]\PbZRf\aP\SPTXd\dUYO\X]cb[YMT\_\\TaV`^STVUTVcb]\UT]V[XQQZNSR`WQRT]SYPS[\VSZX_[[ZXUb^[RXYTQ[`WWX`YU`c\O[X`]XWZYU\XZZWWaO]WW]WV[Rd]YbUT^Y^W]WYZS`W\PXVVXSVS[^ZXXW][XZYQ\TXZcRX[ZbV\W`fUZdVXXgYdW[hUYYX`Rk][[^[UX__V]VT^X[cV[]S\VU_ZcZ[^\Y]Yd\WSU_RVU\aYSaXVWTZ]XXaZWURU\YZ]V[\VUa\b_]VVSjYX]b_XTSWf]XTW[QX[TZ^VYTc_\Q_VUXZaUW_TXXQ]U[TaZ\ZW_WYaTW`Y\^UWW_Y[cTWUZZ_d_TYYT^[[UZW^TY\X^aSR[UYY^XWP][Xe]^[\SZY[WTVXYZ^S`[\]^]Y`^UZ[UZ`ZX_ZTW]\Tg\][^\c[]UX^OZWS]X^XZdU`VaVcO]Q][ST[^a^`]UW`Rk^T^XXOWYXkT^VP[TbV`^V^[[Ub\[XW[WY[Y\URP]VWVZU\U[_Q[`ZQUY`^[RecXRZY[Y[Yab]X\YbP_\[T\ScXYWU^UbYUW^TWYZTUVTa^c[WdO]YYSa\\[[PVW\aXXYTVU_PZ[TU^UTYa^\RTWUU[RY[cad[Z[``VWYW^`a]bRWT^TYZR[XV__[_\T___[aZWXYeYX^[_ViZY]\a`RYWa^YaWWa[\Y`^\RR\W[\T`SV`Y_UWWW[VY[ZdVdYSV\\fZ^\Z]a]YUbXVWWd^ZXb]RaX`_YX]TX]R]dV\ZYc]YW[[]aXY`cY[]ZX\VWeZV^^^YccV]]XW^S][aZXVUdYVc]ZTaX[^aZX^VUS_^SZ`Q^QZRXTX`ZUiYPZ\YUP\PcO\TUW\dbX[TZZ`P[eX]`STY_gf^^a\`YPWTVRZXT\Zb[VVW\VYZV\\P^[dYfN_`_TTVTWZR_UWaUVRTc]QUdYVcYZX\`Z]__[WZVYYTZ`Z\a`]WYZWdaaW[LeY[V`SaZZVTYZU[\`\VWS`]]R`aU\d\j[SVXYT^[R\QYZeVXbYY]VUWT[XZ\V[[MUaRkR]RZU_ahk_Y`n]c_ZYaT^X^SYYXT_\^[UQ[WW`h_]VUQXk^PVVXUa`_[S_LOVPX]Z[XKUYWRTVW^WZ\\_XWYT_TXVTWTZ`TcX[_\V^VSWUVf]XX\^Y[e[Y[^]SS\\YV]TTV_VUZYSUa[[[PTTVYUSPVWd^ZZV]UX`]af\O^ZY\ZbdViUW\dZZPU_YYSbX[\ZYY\]UhUUZSWWWY\]YbWbXVb[a]]`[Z[T]_Z^[aSgU]cQYYPSXbT][a``_]T[SVZ\V`X^h\Z\S`X[eX^WWW^^WXYPTRYXXYbMS]ZXSSYP^Y_T[[XW[aVX[^eYU[_X[]OV`[_T^U\S[OZWRT[SVh[X`WYc\XXTW_UdWTX\Z_WQQ]aYa[[XVcW\[Y`^dU`W[ZZX\a\[YZbZYZV^V[bR[bX]_U^^YSb[Y\YZVVW^][Z]YT\^^RQYYU^XW^Z^g`\[W]S_[aZ[bWYZWaP^VVVU][XaSX]S]aVUZXY[Y\kY\[WTaRZeXZ^W]]]aPXYRYQ][ZTXe`YZS]^W`TT]WSVYU\Tc]WV[XWdTXZ`Q[ZQZX]\[RS[[YSP]\YYZcY_YZ[TWZHPVX\^]\]TU[^_^X`VcVTWPZSYWXZRV[R\[e^[RXTTWVZX_V_Z\YZRaZZR\XPYU_\`]^WdSVV[]b[_WXOVZ[U\Z]V\WUQR_[\ZL\]dW[bWW\ZUUXY[ea\RWSa[`YWUXbYW`J[[`eR_TXWW`[TWXaVZURQ^PY`]SZSZU[YXbP`XO^^ZYS]WYWWe]dWVXTXZdVWYU`\Yc_W[SZXT_ZUUS`]XcdW[R\b\YRLWU^Y]^[PTZ[V]e[V[Y\RVVOVTWaYVZUbe[`[VT]SZPfV^a\[MS[[`SUacZWd\Z]X`[\[YeZ[Y]Y\^RUQZ`]XZd^TPW\XYYPSW[bV^YSV_XM]KSebe^XUV`WdOT[YYOU^SU[RZSSaZXXXaV[Y\Qag[`ZYYSU_aVUXcV_TTYUN\[X\\fS^ZZ]^\bPT]Z[VS[`_VV^dYXbOb^QYaY_YbYUYQZd_Z\]Y_Kh^TY^VWZ__dXcU\eV]UQ[`RWWUPZ\TTjWh[]\`\^U[f]XPUa^`h_YZi^^U^\X]V_TZeVc[TR`]UW^US\eRb[T`\ZYaW\\S^X]`\OZ[\aS]Y^[VXb[dUa]QSc^T`]Y_dUcYhVi^WYOccVOigb_XQX_XU^SYWU]XaITa_UR\UXePWaWR`^[VbXb_RaT\L_`\TQXXRYX\PVXgdYQ]dN^]SXUP_T[Zd\_dWT\d[XL\YW[SQ__aZS[a\\WZ\UW^[JWPTXZPUZ^hY^XZOTgOPN[a\ZOX[Unb^R[_YQ[Yif^[\\^^MMbSR\ZSZUQ]Y^QPgV^\ZXUb][SVSVYX^Z[U[ZWX][X^X^[Y]UWXTX^U_`Zbc[_YXU[W^\[\Y\XV`eT_S[XYVY\WXZ]]Z]]ZX_ZX^ZW[U[YV]U__U]TPVYWZ]WWT]WXYWY_TZYYZ\V[XXZcYW^]W[^_`[V^^UaZV_VYYMYZV`Z[ZVQVXXUh\SZ_^TV[TVXTXWUX[ZYQ]TX^^[[bY^Z]ZUbZZXZ]`V\VW_^V\^WYY[ZWVS^[WZ\_cRX\TYc`[X^\_WYW[aZZZ^U\a\T^\TZXZVUhSa_dZ\]^^YT\\XbRYa_\`\dYW[Y`]VW[WZY\TbX_XTWXWXc]S[\[WT[]X[cUV\T_U]Xc]\aOa]WZYZ``[]WWXV[XVTZXTX\^TWY\ZX[^TY\]_Z^XZgWZ^TW]\]SX^XTbY[[[eUP[a^O]PaRS_aP[WYVQ\[fRY_[UbXfWc_e`_]T^dY\^bY_^Y_U_ZWZ]X[`VSc\V[WYWO\eY[YXRYja\X[^e[YUa\\[WUXRVSJVKRQ[S[WWbQYV[MYZ\U]`QVRSPWXXd[[\XSVP[\`eSZ^VWUU[]egZ_ZX\Uf[XdY`VVceUbWcRWYT^\`XOW[aQVZ]TXT[W^_VWYUSVV[RZ`TT^^T\f^[^OZRefaUWiT_UYb_]W`UPcVOZUYRW\[UcPXS\eZ[TXq`a`W`UQ[WUX]RePVe[W[OO\`V[YZXYXTXRU`\Z[UYXTXV_TTcV[iXW^]XY]XZW__V_S_[]^NZT[ZYV\[KkZbU\WY[[O^ZWR[YY_YYU[aUPc[c_]`^Z[[[_[VWWVT[SQXYR[dZ]^M^WW^Vj]]YMaY\\VSUc`XdVTZYV^T[YWa[Y\WTT\_QgiLY[b\QWZZWZXSZ^VYYYgXZ`VSZXYXSS]OUeaRWP]ZYaU_SSVTTk[WSWZ[WVZYTS[cS]ZRWXVaUYUPSUP[^YaSUf]beUUWbV\WZSXZW\`[STTXZ`UcNZY^WXZ[Y][][_kOM^YY][^TY]WQW\W[[^R]]WXVNZXV\R\`WS[aX[P\[[_[Yi\]X[SVa[YW_\`RYZaYTSaVV\SXTX_^YYZZXN[fYQgXTPUTVZ[YSaVZaWY`^]U]WXeSV][U_[dYTVPS_]TVSlR\Vcb_YW^QTQ^M^\ZZdURXYS^XdO[ZRXTY^ZfiXbXYP]OYcVWUUYWW[cVXT\Pc`[\Q][e`fVUZWZY]]XXYVYR_OniP_V[baaUUV^W_ea[ZU]^\XYScUU^^eXX\[eSW^eY[_^eQa\WeW_\\VVXY]ZW[[XTRSYVZVVOSV\VW\TY[WSbgR^^Sa]`XZ]Z[bSZZVVY]\fRX[QiUUV\_WSVW[tjYV[TZZTXae\OSPZZ`ThZNbXW\Sda]Rb[cZVSV[X^`RVQQVUbYW`URQQa^XPTbcS\Y[__\\ZWZ^YW[\OTWS\ZU\QVZ[WaSZZbUQ\Xb[P[VU__VYYWPVZeVWcc\ZZ]\Z_Ra[[_RPW[W[UVYY_\Z_XX^S_QZ[V^]WWTT^M\]YbYWS[^WQe]\e^[_VY]WYZ[Y`ZTVZcVXUWVWZWSOWX[[W\W[\Y[]WWSZY^ZUT^XUZY[^]b[c`\Z]^WQK[R^V\V\UWT[VUaccS``ZUVSSdddXWWZWY[aXX\TXZ_]NXUa[U[[S_XQX]YWT\NUVUR\U]`Z`\]UWbX`R\W^]WVfVYZ_\YTY]QXTX_ZfSWVTS_RZ_XW]\Y_h[[[`X\W\V]VXXU`_SPZVQ\[WXTW]ZX\SXX^YZZXSW][NY^\S[XXXhTUcVXRhTW][YZ[[a^T]ZV\TUZYb^iZdWX[S]^dX\\UbLfTVTSUcR]d]cf\`W[UT\TSWUW[^ZTVYZ]YXSdX]]XaVWSYWXW_Y`S\\MXU[]YS^[[S[UYXa__[_RYYVcXTTa\\YYS_bX][LXZT\ZVXaaYWVSPSU_[Z`Z[_[VZZUdLST^ZU\]Za`\\[\S]N]]V\ZbZS^V`W`W^WVYgaXY`c[V[X\^TYX]Q`ZWi`bd[Y^QXXWTVP]YY[WX_S[WZWfZXXYbNXY[\W_N_]UWXXXSS^YW_[S]pP[VS_YYQZVaYR[X[\e`P[XQXUYR[^LVXUm[TNaWVdZSbVW\YRH\VcW[X^L]_[[UWiRZe]WTW\TXsXg_^[adQL[Z\bV^X]Y`UY^UYXbQ_UVZR]QVN_\Y[^[TVSVSOVXWQU_NX]dT]U_YRXW`^W\g`[[bVZW]WcZ^V\MPiRSYWTRT``ZTYZh\]UmZPUZ\YYVXeSPU[YLYNUWWYW^VVY]b^_WUc[VTJTb^VXW^T_\Xha[i[UZ`^aVQQTX]b^X_UTVY^`f_Z^ZZQRXV_T^Md]QXRPfjZ]SX\XU\YgYRN]aX\_YR`_UdYVaXZ_TU[YYSUS_O]^Yk`RNVZ[WSYZ]`ZWTWacYYT\Z\SS\SeS_[b_VYTWZW^RRZUTSRVY][ZUZV[XdRRdQ`\VY^U]_]WX`TLS\ZT\LZYd\^VSZRXY_[S_[]_\YY`Z\_WWYaUXT^b^V\ZdTV`V][\Y^URO`P\RUk[_R]Y]fWUVc\P`[TfVU_\\Z[`XT[`QXc[VQW][`WUPX^Q]XYVTVjQYX[VW^\YWV\UeRVTXZVR[Z\\W\W[]Y[bX]\TQQYX`Tg[[^WVXXT]XLVZSbX\XSXTQYUU[V]\UWXRa\XXX[XXTZaXQ[[]X[Y_^\VcbP]XYdU^]U_\T\QQ_ZWY[[[XZS\_ZPWRWR\\hUWVXTU^[T]\kWOQ_Zm]RVaeV\ZTb\aX[[V__lYXR[ZZ]W]_c^_X\UR]SW[QZWcTVXVWZXeWX\gS]ZRaYX[`XUYO]V__X\XRUWW[ZXaYYY^ZbT[Z]VZU\e[__[Z]n\Q]XfXYZaZX`UYNUU]^a\US\WX\XUS]S[X^Th_V\bW\]X_Z`ZY\T[_dR\Y^VZUUSZV\\WYV_XX^^VVZWRVRSXSe^PYZSZ_R`RXXaOSYZTN_UVa``Z_aT[V]T]]VaSZWZYbXZ\^^^\_Y[]UUV_UZZSWW^[TUYQ]_SWSWZ][XW[Z^_VXW_\_YT[VWY^ZZV^^aWUVUZRW_\W\VXTZTZ^SXXO\_ZW`TWa]RY\SZ_XXZ[YXXVVYZY^OUWZXT^`\]b\`d_[QXYe[\dX^XZYXYOXZUYWWWVZT]TX[P\Wb^V\PTcY_^^Z^WTVNeUYXT_`[dZWVYbWXWUeT]Y`UVQZdXYXZ\PU\`[TYUXVUWWZYOR`YX[_ZYSZZ]^WYY`UXZXQ_^^WSQ^SdS]\PXZWb]V^]VWc\VYOYXXYZ]nRcZZSZXYTSZX^]\XX]Ye^UQRTXcT]aZ\U]WWX]VU]`RZYW\\\XZUZeWe_[e__Y\ZWZYX`bY[XYXSYYRi\U\]Y[WS[WZ[V\\gW[bb[TXcZ^T^]ZaaXeR`ZgWW]XY\RX`]SYS\W^\WT\[aZYUZ^W^][UUU_WS[Yb_WZV^gTVgXU][UT[UTVW`VYe]TU_ZUcTZXbQUZ]_Y\]_XV^W[_Z[Y]VZZR[WT[Z]Z][UZUW\ZZTTTT^X]YbcWUSTVaVdUYaZ`WXZ_XYZW_X\Yg`YZ]YXTO]WaSS^U^`TTZ^_TWUXl^VZcVePXZS[V]T[dT[QR^RQ_\Y^ZUYXU^[NVP\TRZZ\V]YQbUY[]ZVW[\]]_UW[[UXSfb[Y]_[\bU\][\W\XUbbX]NOS_ZgYUbaSX^^eRgUNaXTX`\UP^SY`R\WS]XTXSSUTVZ]ZP\V`Q[dZWcUXU_c_c^ZTZSQ\\QXaPW\Ve`YXTbcQ]VXhRZV\\WVV___cWkYT]Vbc\[_^\cTVU[\OSU[ZSOSXUWUb\QZUa^bXXUeVR[MX[dW[Za`Z^_UTTe\W^Q^^^[^`\\WR]S`T\Z\Ui\ZbVZ_YUX\\QUPZW_^\_Z[YXY_[ZQ[UU[XW^XZ_PZ[TTXTdTZ[ZZY]de[f^aT\Z]VXT\Zf`XYYY]\\Z]gZdcUVVWW]`[`XZYW\U`VWZeb]RURRVUZFO[Y[O^[Ya]XRXWZ\ZYVWhW\`U[[X_YcUPKY\aX[TVeQ]YQXaRacVcVYaSR]YWN[Z]YWYRPQYOYWTeSXVRU\VS_[X[QPTYYX]b^[]UTWfX[[T_YYXUb`Y_g_]U\[]V^]YV\YRQZO_Z]XY[P[V\cWW]^RX^b^Ud^RY[SYUU``Y\YYW^W`a[T^\USUZZ^VS[`]^XZXQTV^^]TYZZ^QWZXhWTWYe^QWU[Z[VZ]Vl\d`Z[XTYUaV]T_]]]ZVXYUT[YXZWe\ZXU\YZZTWV_RUTd]bZ`TUTXZVWNWT_TRgXWXVPYXRYY^_VZ\_WZ[[RWR[Z\]Y\\XZS_YiaVb]cY[W_VWW\XXT^U\YTUT]]\SXTQ_XXdXWYP\YWW`\[ZYTSffY_`RXbUX]S\Q\`cUU[aXXVTXYZYV[TT_^YaX]dXU^]cZZYOS]Z\ZUW]aVZ\]`R[[SZYYTP]WXU^\S]VVRZ[[[ZVVYVW]WiQaTZR^ZQQ[S`We^T[\ZQ[dY\W[Z^TORV]^Y_U_VUT[a[gX[Z[\dWPXTVRYXW_]VYZZZdWT]^eYU]]WX_UU\^^YTURP`S^V\aVUXX\^ZX^YZT\U[ZZWW]]U\T[YTWZXRVZTWWWLPSVWXWZRSQ\ZSY_ZRTgWVXY^fUWa]\ZZV_dQYWVSSXUeW]^^TWXUUQ\Y_cZUWZ\Z_c^_RUY]Y_Z][^YVb]XQZ]Z][Xe[XaWYTPY`TXVS]Y[Y`YV\ZZZXVXW`XW`YYb`S[YRZWVW`T`RYU\SUZ]X[W[Z[Y]YTW[XUZX_WU`VWYVW[XZ\VShS^bZUUTYWY`V[[aSV`]X_WbWTUW]X`[]YTXU[ZVZS[XaSaZkYWYXW\VYZUYYWTaNSUS`T\[`YVXah\cW^[X[WV\VZZY_Z\V^YTWXU[Y]Z^ZXZYY[a\WWU\UPWX]TW^[XYY\Z`WX[Z][YYVXVT^TQT\[SRXXV]USTYUWZa]SdT`^_X_Y\ZX\_[aVYYXY[aYTg\[XYVQW[Yc]\TV^YZV[ZTTVYWa_P[[XS\ZWY]YS[]]_]Z]_WW^[VWUVaU\fSXW`]dW[XfVW^WVYTWaUYTW[[VUWV`R\VV[WZUWRWZjXV]PY\W]^[\YUVXZ]Y\\[a[^S_V^M\R]X^_XbgWW\Y\ZT][VTVTYXPZZXR\`U\Z^ZhaW^XY[WU_]_U^]OTTYTWPTa[Z[RM`UZ]UQVZZ]SW]WVa]V_egb[YXUZY^_W`UV^Y_X[`RbXSTVP`TbRfY]ST[_`Q]TXV]c[X]^]\_P^VXVVWYZYRWYTb_^XXV\YYX^WZTfbRVV]XSXa[P\ZV\S_aZ[UTYY[V[[UQ\ZXY_bcXX\V][^YU\]WUUbYT^UQ[ZXfYb]U[[ZVUd^eQ`Z``]X[\P[eVSVY\XXWXX]aZZUZX\Y`YbWVJ[ZPY]WWO\SS_]ZW_WZWZfgd^Z\O^\`XT\XRX\]XXVXYX_W[`T]WXRaZRTY[af\]Y[RY[Y[SXRUYV[TUZY_STNWR`ZWUXX]^^bQ\XPTUUT]ZRUYU[\RX\Z\Y\Yc\YTX\YU_\UVZVWRbXW[Q[[^Z[PZ[f[\X]R^X[YZ\STP][]]`a[_QXRbZZW[W[ZUc\YQW]a_^^Za\ZUYZUPVTVZZXXTU]T`J]^_Y^_VZX^YQaWZVVRY_`ZQ\W]]YV^[SUXXbU\[UdWSUXY^gY\QeVWNYZ]W[]gNW\X_[U^TX```[VSZ^K[b^XTQ^Z_\V\\`UZ_SYW[VVZZa]Zb`T_aaYYb^VUOW_]YTXR`ZXUU_b_\SU^\UUZYMT`[W]WY\VSUR`fPRO_]\QaR^Q^YZY`RZXVZ]YYYka[[S_XR[VY\Z^^WY\[ZUZ[U]bZZa^MW`]QX^XX]TY_SYZ^\^fUQX[YPZYbc[[WZX^[VW_PWbQZ^VY\Z^QRPZ`TYYcWUYW]eTZ[UYS[X_b^[ZTY`^acZdXX_[TQY]cZ\X_`YddbU\ZXO\Q^UZXaW^N[T\^UUX^ZVUYW\^ZVRZY^`eV]]XTeUZ_^^ZV_\Y[aaWY[Y]Z_XWTW\XZY]UQVW\`[`YXZ^^\SYbYWa\YR\SX^aZZ[Z]S\]X^\^TY`ZRb\]^__Z`aZS`\Y]Z\QLYZT^RZ_U[[ZWXThXY\[]Q_`dW[XW\[\RZW^YXPTYS__UZUX[cXYYgd[VZYQ_YaSWUUZXeXVXW^\bY^\[SUhT[V_f^][WXVUWRZ]Q]daZ^WW^\WMZ\\[\UU^VR^_VY`YS\[_VPaWXXX_cdZYZWW\XbZ]T[U`___UYZYSY\X]\[[`_\TUW[[UZY\[XY]Z[X\cWYYS[`ZW^XU^WWZXZYOYQYPVXTbi[Z^_bac[\]UO^RYP\WZQXSXWX\a[Z]Z^VYdU[WWUZX^^RQMUWOU\[]XY^XP\[X`]\iYTXabZ_W\UWacT\]ZU]ZWXd[XYY_Y^[VZOUT^N\VWQXWY\V\_^_XYV`QWZ_dVVTkZXcY]RP[]]]VLY\WSVO]Vd_]W]XSZUUTY\ZUWZY[YS_a`W[T^bVU[PXSTZXYZQU^UYWSXUa]dcQ_VTa_\_[]R\^lTTYVWYZY^^^WZVRZQa``WWVWTeScYTX\Z_S[STeQQ]^aV`b\[]ZVY\^e[\]TTZiZW[W^X[^U[X[[XXWYXX^\WYZTWeTVQZXV\UXV`Wb\VYW[WTV\R_SUQcc\Q_`Z`]YcUXWUXP]U^X\XWZ]gTSQ`VSSXQUVSQ\XZVchTYUZ_ZY_URZ]YeU^ZWYY]]T`X[]`\ZaX[X]XY_^VRXY^R\\e]^[UUZUXb`YZT`cR]UZ\^W_`VZgZXa]W`a`cYZTWRb^eZ[]Q]JT]UVWbYLMVaaa[WcV_[WhTYNVZc\SfUZ_\`QQa\XQWPXXOb[hZ]SVW_]igTi]SUYZX`XTQZ]T\V^^WZZRZYNWZ_\ZW\S\dV]ZT^[XW[_UWW[\\Sa`^hW[`aQe^]bTZZWUU]`PTSWe_d]V\]Tb`cV\UTlWgSWX[OYfTXXS`ST_Z^aTaQR]UX[`UWTd_LbMSTYYXgj[S`^Y\OdbT]c\Y]^\\[Y_R]_[\ZgWadQa[XVQS^V[MP\\WYYR^MVQXaUYXS]ReZOahdTQi^]RY[d[lWW[Y_MZd[]bXTQXsUXV[Z[[_XW_Y]SWn`^XYUf\_Y^YXlTV^]SZYV\Z\[W[_YZ^Wc^ieN\VZf^_RkRZVRUeYT\W]ZVSQ[XZZVeZSRO`Z`V^U^[^Xc_\]X^T\NZU]bY\X^WQV][U`U_SPUgTo\[cTY`\W`XS^VUQZaa\VPOVZTYXTVYYRXdXUcVX_i^\_]]PVYKUZSaaU[ZYQ[YZW]QX^\ZZfb]aaTPTO\dUY_YOUZN[f[c[Y^bU_^KTZ[UXM_bdW_\YYVV][UX\^MVWUcS\bT\\c]\\`]fWg\`LPh[LSV]PT_V\\RXXZ^YZZ\WaN_UYi`_]PQ]W[WLVR^`W`US_Z`RSW`SWWQ^b]]SRXTTZSYa\e]UQUS\ZZ`^`PY`VTUXKWWPZV]Y\caW`Z\W\aUSTcVU]NUP^XZbVRdXW][ZY]^YMW\NYTN`S^\ZcW\Z\Y[W]Wb^S[V\VS]YXO[\`\\^cWTZ[^][U\S```]XX[TYTQ]V\^UZ]^QY[V]a]cYXLZZ]cVY[XZYXa]^\[[bXSX[\Z`ZZXVNVUaaX\bZYR\VY[Z[\XWVXX_^_V\W[[_Z]\TZZWZ]P`\SX\\Ya\XTeUPdOZ^[VWWPU^RV[ZT]\VPT[YUiZXUW^V^VWL^Z^XS`dNVU^o`TYZ]WHSfRUYTVU[bcUTT[aYVZ^^^YhU][a`]ZX[Q\TX^jRbgU]dbUYVPS\a^X[LR[__[QT]^LTY^WWWY]^_Ve[\\pWjUZV`WS_\XPVZUVYTPQ[TX[RZU]ZTT_VX_]U\W^aYT\UjQX[RY]PX\T][Y^YXVQ\ZaY`WN]Y\W^_Z\X]W_Z[W`YhX\^TYRc[UZhXdVZX]\YTUX`XYVQTX[OTfTUWV[WaTUP\[XUcW[eYeQZX_WUZ[ZcjY[sXY[jU[\]cUTZVb^XWV]W_[\a^_YW[QXURa[^X[^cSWYTYTUVWSRYVVWSTYP[\UR`aYV[b`fa`Y]]k_^\WbOf\Z[X]ST[b_[VVY\^OZY]NQ`XdU\[QXV`WSd[ZU`aZ]YU\][YWWSZ\ZWZW__UPSZ[_W\SYX_ZN_Wd`S`VaVZZKWUXWZ\YX_W^\W\^Q^]\U[[a\Q[bdUW\YZZU^ZaWZgVZ\agX\_R\[YSa[XXVUZ\gV[e\TcO^\]Y^X\UWcR^ZeS_VcU[YSc\h`[XTX\O_YW]SOV[X[_XVdU^T]WN[[OYS[SZbX\WdW_YZ]beTeYZ_YY\\]_[[^SWT]XdW]gWbTX_VfX`X\ZVVW`RY]aSU_]UI[__[_gS\X\UXT_YV]ZgSbWSTXUV\``PQW[XURR\]]`ZX_Z\PZZV_XS]YS\M[]XR][YYeYW`WWXZQYZfXUeP[[ZZSU]dSUXW^XXcQVb\X[Y\dZYX^Y^XRWV[\TVWSVTXYZXaVPQ]\[]ZT[Y]YYTV[YfP[QbVXSZaZT]\[[[UZb_XRUUZ\YXZY\WW]^ZWfW`O^ZZSYVUcRWVTW`YRR`WVT^\aVYQTLRYWXZXWT]YZXUYW`]]RTWUV]U_WY\bVWVS[P]UZXS\W`SYJWdTXX_gT__QYXYXW\RVRW_X[_WVR^b^^X[T\\V^]YYTRWSUNURXZQW\aZVbVXZ]\UW^[Y]ZXVfXSXdW^]W\RZX\dSTU]\WWeWX\Z\T^\RRYXTP\PUR[UXWYYVW]a][c[^YZXYWUU`ZZ[X[\]aUbXWURZ\eZVa_f\^d^^qfVX\SX\MXZWRYUUZR]]W\ZZ\SWZa`\S^Z^Y\W^US_WY^TcU]Z]]Z[X[[^WYZZ]WXTZ]UYXS[SV__WWVZSYYVZZT]X[Z[_b]]Q^^aYebYRO[VV_^W[`^SY_[Z[WYOUT]Q[RZUX[][``UaSW[_Y[OWX__d^N`XZR]\SU[bQ`WaY[YUU_VQa][ZeU\ZTUWW\\]aXVVR[`W\T][QTXZa\\U\O_\ZaWWXTdWd\T`_VRW]U\^SWQ]]`T[YSWTT]Y^U^\Zf]N_U`dVVR]_Z[]]UbU`WX]`We]YW]UNT_^L^VW[WTTYZWXZVV]TVN`ZXZSUW_XWYQWYX_g_iZ^\[\OQbYfZ\_[Z^^YV][[i]^X`R^`VST]d]WcTU\U]XVWaadXQ\V][UX^_TW`d`^JZcW[]VWY]WTT^WU]a\_`YX^LTWX[UVbX_XWT[TXVU\VRXZ][\LaNd^[RVV]YeRTXY`]\_ZY\TZWThcVUTX_^aW_UUV\\QVQ[X`T^S[OUYXeX_VTWS[VX\`W[P[[Y^bVY[YW_eXY]XXNYW`USW_T`ZR[UZXYR^WQ^^Z`aW]OTWaPf]bQWVXYXWSVZU\YZ\]bX^UTU\W`^Z\[R[^PUYTXb[\\_YXYc\WaY[`U]bWTaa\^XaN\]_V\fOYUYXcVOTZW\[T_UVY[\OhKXV[YTZZX\VUT]^WW[YVV]VUbjXZYWTcV[_Q[ZX_SZQX^QT`V]V[V[SQV][SOZR]\USW[N`T]_X[[YX[T]_c[b\U[SXZUYZY_OZ`ZWU]Y^VWSYU^ZXT[[][\XdXSdY[aS]Xa]UVVbS`[`RTRQS^`a^TU\X]_a]W\]XRPWa\YTUXQTRX\TU\\VUVUX^XUXaUZ\dUTR\YWQ[XZaVX^ST[]^SVTTU[^`^XU_aT^\N[X\g`_XUb\_N\\STZ]WSkWXV`_ZW`UWT`YWQZ\Y_VWS[cSXhZVSYV`VVYU``QZW]XZ\WdgTTRSWWaaZaXZXYbV\WY\Y[dVRU\TT\_WWcWQZ]TZURZZVZU]ZZ[TeVcS[eVf[e\YfWbQbY]e_NYZ_LSUXSjY\XZ[fVZ`U[WdY[YeYZZVZ[YX]S\_S\VVMUYQ]T`X^`XQ\YV^ZYU]WlXPVV_TW][\XVaX]U^UY_TiZcVPUY^VbU^^X^UTXZXZX]\[Z\_XY]XYZXP[S`]VZ\\_WU_TR^oTaTVMUU[T]X\RXTS\RaKaIUU[mRZR]U_VXZUcZQV[]Y[]cQbRcUXUUUXlOW\ZZ^UZXX^V^WUdT_fV^V[^W[\S`Q[Zh^YTVUUTYR[^TRV[[VWP]L`Q_Y\_W^_Xai\\XU`dTXdVWTWTY\ZX^cWPX^Mc_Q\TX`W_[WdVYT[T[YbUWUMU[^SW[do^\gTbXQ[[Z\YZ`UVY_Yb]MXjTYQ\OU`b[_Q[baZPaZaXTaUb]Y^VRR[Q^gZh\d^]TVgR\\XXQW[UIW\W`q[WnYZ_Oi[V]UbS\XWVVTX[_bQ[RTRV`TXRY\LQVR`[X^QY^`cIQ\VVVSQYRZXeRZT\_TXYR_Ud]_[RQNYU\ZY_hW[QJ^QXV_Ud[VRWKUXRVUWVSUU\Y]ZJX_U_RTUZV_a]XT_Sa[aZWSZLQQ\Ff[_RZYTYYXWc^[^QZ[Z]WO^NmVVbTTX[YU[Y_\YVORY[YRNVKKNWZV\UPVSLQ\ZWdZUdY]TY[\XZV^L]eVSY]`XbVVWX`LSXjhUPUNabRZ]VQPVXVUW`doZ]]^aT`KY[]XWRSXRgRQ\PWX^W[eYX]\R[TSTURPYWNTJ_\WPWTdhOP[UUbRYUaOZY_ZaZTVW_Yc]WeOd^caZ_Z[X]VScRjT]SYYs_]UZ`WW]]W]UVSX\SSaYXW^SUYRUZW_Xba\TIWgZQW^WX[_^_WT[_W^S]YPU[X\d[\^]XYgXV`R_\Y^ZVXbUn`d`h]PU[_XVPc`QUgXTaSf\XXf^UVc[^T\Og\fYc^_\ZZQUYV]UWLXa\Z][OTS^a[d\[e\S`YW[^^POR]RZPT[bQbX\bX_YU_^XcR^OWX`YX`ZUVRXYX\SVq[XP[kOVWZa[dZV^XN\\X`\W`aVQ\VTYWV]UTe^^YPYPY`aSZNQRUOUcX`X^\\PY[YYfYZPcYRdZTZOZVRY`QZXXR]b\P\Xe]]Y[^]__j`\WWXU_ZUXZIZ^Oc_][cP`\TUPZWZSL[Za_S`YT]YY^TJYS^X^b\_YT]XY]OQTTY\[T_hSa]^^U\R][\XZ]MSQ[X]YUbb[Q[XSTc`ZRZTa^W^X]VWZ[XJbO^Z]Y[TV\XZZYV[aQZ`^Z\[[[]e[VTSRZUl\_eb_Z]WUUVUUd`[UScP_edW^`\\S[ZYYZ^\X`ZaUYUYU^^eY`aZRURY^]^SjSdW_STX\YU`_ViYS`TWYYMTXR\ZXZY\\fYYXZWUWPYXYW_Z\T]SRS]a^YVk_UYRTZUXZYg_WSZZWd^W`S[SUSX^WW_Va[^_S_^\^_^O[^W_XYaTUYZa\UZZVZQZOVoNYX[UUV^Q__Z^WSRPYb_VXVMYW[\VU]\]SdZ]`WZWaWPJQVaXYV`\U\]\VZb\^V_ZVWZUU[_V^N[X[Y^UZRZZZ\V\S^YT^VZW^U\VUSW[WgZYVi\T[X[WQZ\X[ZQ^`_\]YQ_NaYZaYN\W[X\YYaUOYQ`aSXVaY^WVT[ZW[]_NU`[XZX]edZ[]k`XSZ[ae_WWT[]VU]O\_\WWUTQ_XYRPc`^Y]Yb]UZTS_c[Va`WYSa``[_bUOTT]\bYS\YUXWSUi]U_W[cXbV\W]\UWUOZSXXQTe_XeRQY^\`_TVXa\U[[T\ZgXUWZXgVP_YU`_OU_Y]VT\X^\a[XTXXeYWOUjYYSTRU[`XVUY[XR^\[ZTe\]WVO]YcRWVVZX`ZbTYaahSZ[[V_W_`YUVUWR\X\\XXWV[ZeXTaSQLXcXWYUWZ\S[g[dR[URYVPUV``Y^Z[WW\^]Pg[URSXUS\Z][a\f]RWbV`Q\UUeLbZZK[\_Z]a`eVeXa[YfWaUha]VYVKeY`\_SpV\UW[TVcZW_\U]cR_caRSS_bTYXW\ZQXU]TaXZOZ^bV^TWQiYQU_XVU_\\ZYZ^TTZ[h]_V_[QU^[bU_\XUWYW\^UXXQ`XW]^ijYZVXTSdZ\XZSSYSTX][[[[XZZX_WVWa`WVR`YUZ_XWb[\]Y^QZZ\aSQcYZSWZb`T^cU\\XWQ]][W[W\bURc_J[bYZ^R\ZX[YY_UW^YUUXS_XTTZ[R\VZR^W]Uh[^eSQW\PWSZ^]ZWYW\WWWUSYW`Yi_XQX^TZTW]UYX[TUX\e\X]Z]^a\UOQ^ZMPXUXXX[W]c[URPQe\U_N][V[WZRZa^aaSW`_`\Ua`ZZ`[hTVY[a\cSYS[VRY`ddcXS^[lU^QXa\`[aSY\[VSOPbYSX\]_PbVa[V[a\Q\Y\UQT\^hZ_fVY_LdZZcX[cb_`aUZ_]_SH`P]HZV[YXL^^bR_\UUS]XXZT]YcMWfWSLUZYgXU]YVYUYigY^]\_HX[WWZNaS\XShS\YRSZW]X\g^[[X\[TY`U^OSe\\YT]WZUSYPPfZYW][i\h^[bYSjR\YRRZjOV[ZdTW]VPPRl`cTU_TM[PUUNWS]\_cQV^\U\TgX\\V`^VVWZXMW[T[YU\`\ZZX\W_XVUajS]aMQZWUhZR]fZZ`NUPV[X_RW_V\\URRTZZR[Y^_bXUSXdcV]Y\g[\_aTYcUSW`UaUPYXVS^`V\ZUXX^YZ[beZZ\XT\a[M_VUKYYPXV^[UXdeO^S]jXU\W`PXV`W[WPa_^SYWVa`V^icSTYVYX_V^SV]^ZPP_XWVX`^W]aUZaXZ]ZTXdX_VSXdX[[VXaV^QUVZKWS[c_\VZVXbZU^XZVWY\YT__^\YU_O\\_PZ_`[[YWkbWVcVZON]ePS\VYS^XYYW`XZWXRl\_TVRa^ZS_ZkX_WZOUXURVWO]eXYQ_\U[dS\ZYZQZYdZK`g[R\VVY[\[PV`UVZY[]_Q_VY_\fRWbe\WZgVV]``\]WW_]ZY_[S^ZT[`Z^JQ]ea]^\^QUTX\VZeYVVZeWV\]UcYYV[]TbVPbVVT^R[Y_iXZ\RZ\d]KXa\YUYOXZ_TXYN\^V\VQNUR\]aPS\\X[[ZUXWZ[XXZX\SSUUYXbQ\[dYYZYVXTZ\Z^VT[Z__UWW[b^XQ[]a_]UhT[aU^aUb__O\`Ni\_i^Y]WSdf[^`WYXY^TcdTVV[RYTZc]\XVU]YQPZUOV_bXfa\SR[T[VbX\V\W\]\Yc]\\ZOY`WJXP_NWR]^[a]XgTbYXXSPcY[X\\Z^`UUZ[[ZO]YYLSQ^aZaU\VOVXP^^d[SRU^Q__\`TWb]a^PWU^[V\_ZYRXZ^SWYQd]]RYmPSc_ZRSXX^HaTUUURRXWSVXXWa]\`S_R`W\dVXSV`YR`^TZXRdYTWVSeLTYUZbSO\VZ\^dO`aRWZYV]SbOKaY`f[VY]XdaY`X]fZUY[YhV[Zccj^YV\^[fe_[]]QW[UV^VX^Y\]U[[\TWY\TmT\TRVdT_U^PUXROYfWPUZZW\_d]\]a[^\TTWZ\ZYV^RQUVdYSd^bXWc[NSVUW[VT\YaUV_RTaNZUMUbZYWVRXZUYb\fRbZS]^[ZWVZV_Z^Z^QU]YfV\VaW\[UVUWZXPTV]XTZV\[S[PZ`TebX`\WbcWP^Y[S\_^R[_T]a]dZRV\WZ_^TXZ\]\XZ_\W`\_\ZS_Y_eS^TWWZR_]Q\\dbSY^[VXXXV\]_[SPRVU[W]YZZXhZ]\gRYXeTRUZ_TUZTZW_]_ZXTWWV]U\[]Q\cUZSXZX\Q]]R^O][[WVYWfS]XSRZ[YX\\RQURWXa_^UX\ZUXXRXY^WfV\]V_QXbbWT[[ckXfaRZVXYJRYRWWUf\\\]`Z[YRYWUYTWXX\bc^e`XWR`^\Y\YUR]Y\eQVXV\_[\[V]TXU_WXYYWZTV]oUYQVQW]I\Wg_]_^XUSXTS[g^]]U[__ZgWU^V`R]Y`V_RSWT^SaPZXZ\ZVSTUXZ]VPXXXY^[X[P^WYWT]jSUf_RUR[bcT__WXMZXXZTVRZW]ZZQJZ_[eW`WV^\Z`VN\TRXV[`dQZcU^NZ]aX`_]X\[X\[nW^VcV]XRT\]\QR\i]]bUXRQXdZcNU]\ak]QS]Me`KgbYUQ[`]UPP_[ZYUXZYYaV]_Td_]W]\SMSTU]X[\TaVWqW[Xb[YWVWSX]`X]S[Y_^``PQ`T[c_gT\_\_W_\ZNZXV_ZSgjY_ZYKX\T\e]SYYS]TU\[[^\Z^P`YNZHZ[\Rc^X_X`SYU`Oh`Z^]WfVfW\[[`b^]Z`[QagN_a]HPW\_YW]_XV[LWSVOYXWdUaUU[XWVY^U]Q`[_PVVZYXZaW^[^XVcY[V`UQh`_[`]`WbJ_VXYZZ\\SfT`XbWTWX`ZRU^X_Z^Q_ZY^[[\Zm]RVX]]NZ]][^ZUT\SSVN\i]XXYZ\\ZT]PZaZUTZT^ZXWZS^VY^`^chO\[bY^_ZS\``W]]W[cd][^_aScQShY\UVVWy]^gXXS[QY]h[]Y]YXP[SX^b^STWWc_VUdU_c[[QWaZ\eWVeeZf[c\YVVfZTWT[cYRY^bUeb[^[WYZ\S_[bWTZ`XeW\XW[YXfY`UZ_^ZYVSWSSZ_]WYdgX\ROX\YQfbW_SVWW__UV`WVXVVYWZZ\V[XYd\PaWYVVdbctdbeeS]YX`Y[YmcT`YQYMUZVZXaYVR]\XVW`YSTRaVU_UY\dTR[b\SW[bPU^Z_T^WaVc[^VW`_YZUZUYefWaU[[VWTXXRXMPaZ\XR]VYZZY^WYYVdY_]XW]VS\]\[a\]a]]SYWN]W]_UWbST\^_[]XQ[WYSU_S\bUV\^WW`UaS[Re_SUPZZ^[m]VXU^TUVYT^d]YXLZPYWWXWTVdS\\]TUS]\W[d_bbaejXaQYU\Z[PhY_RZcW^[YR_WVMSVe[Z[YeZXYW[^OTW_YbTYb\iX\bhXS\_T`X\ZX\XUV\WZ^[O\T[R_S\[VX_PX`ZNP`S]TYY_Tj^_P`__UTZUXS]nXaXZO`ST^bN\WS[^YPYRRYZRWZd`UWVW\hYZUZ]YRRR\ZTW\Tba\YY_W[TRRSZVN\RW^ZRX[V\QPTNUU`Z`c\V\]L\ZcacVXZeWY[XXbWYUWdJ]`TXYba^XV^X_`ZY\W]X]UZW_ZY\YQ_ZUPZ_U[WWNXVdVYSYX][\eYX\X[[X]YTaXZV^_RWYXZbYT]]RZ_[W\[cTYYSXPa\[Rd[_WW\WUVRoOUX^^ZT\YYYX]^ZTaXUQ[SXUag_mVYTZbUYVUW[f\^`_WU_R]_^SW[WY[ZZ]UbWUWZZVa]^WW]][WiZW[W]U^c]^[^[YYT_Z^SeLba]WQPXX]VdWOXXXXRUYZ[[TR_]ZOSUVX_WVZ[RU`_cXQVX[bZ]^\Za\fZS\bZ_Xb[UWZSZSS^YTdS][QWg`[b`V]UWX]\bVTgZ`ZUV[VRXUVVQZ`Q^XdR]WWY_W\bZXX_\^RZ_X_TX]^T_XUTb_]WUdQWR\USKRTmXa_XXWSXWR^[SZ[a][RWX[]YXZ\\]SWR[U[TpWX\^RaU]ZXa`ZYZSUZY^^ZLZTRV\[XXWUXeZVa^^OW_WQZUY]ZPWUYPV\Zd^[TX_]\^R[XPUcU`j^XT\[_VWW]YX^VST[Z\\a\\[aZWZUgX[UYYTTZX[]V[VYZZ^Z[VUa_[dVYdYSXX^[VYO`aVXZ^cW\[`PS]MM^VW\hW[Z`XWZX]\T]RZ[\W\WX\^_Y\^YZXb`OUR\_ZaU[TTTWVRVQW[WVa\cU`\^_eXX_Z[bSY[[_[c[YSXVXVWZSVXVTTU]^^b]\aaiUhbZ]UMXY\fVc[^T^`\[^]_YX^WVX`_[UV\YZTbZ^XdSQ\U[WUW_\W]]a^]V`U[W^ea]ZXZQ]WY[]Y\XX[VYROYYY[USXcS]]Y]]\YVJ_fUX`YUeiUXU\SWg]YT^`]WTV]]UY_V\Y_RZY^]aUU`\YaZWdSXK[^\WWkTaW_TX\VZZ[\WZ]^`VTVWbV[XU]RT^bV]W[WZXZ_`^ca[TRYY\_OTXV]UUVXYc[ZVRTU\ZYY[V]UZ\Y\\WX\[U[W[RWZa]`aY_\ZT[_XYZYXWdOQTf^XY]^V\TWZYWWUWZVZ[S^TZ\_Y^S[`UYTX[Wc\``X^YYTWXdVYVZU]ZUZXSb]TZ]]]UWcb[W]X`aNc_W\YXZVVX]_ZWTTWX]W_Z\[X\ZYeSJX\VTWYWX\TT^]_Y^LSZZ]_cY`bVY_WX]YZ\_R`bZMUXVY^XeUW\YZVe``bUY\VZQWXX``XY\Y[XdT\RQXWQc]XYXZ[_VVXXY_Vd\WVQ\]U]XYU_eXlU[]d]ZN_^XRX]XVVXebT\dZ\W_RPSYePVSV^RXW]\[WTP]_ZUN^VZWTOWVPaUVcOVYX\S[V]YVWM]^\Gd\[XY`XV]`]U_W]N`RqPk_VZWTYTV[[c]^^[YZ]YUa`VbaZ_bVeSXTbXUQY]YRYXZQVYXNUMR\]`RZUR`[]a^QS_\[_TUY_VY[YRW^^aLZ^Wb]X_^XaV^V]XW^aY]WTZW\YTTY_YUV^\eh^Q[]ZVSdUO`^UcT]R]bUl[T[W]XWV\V[WI\]V]LSZS^S^\SXX`WXYaYYVPa_Xc\bSQf]Za^S]WVT[_[`][^]l[[ULk]bVR\YZ^XWQMZbKaSXSc[WUaX_YW[]X\[WbaPfS[S[[ZVUUOXdUjVUOcHQXg\`b^Z_\^\QVN`XfbV[USZ[Y^_^`XWU]TWSWWXUTUVZ`UTXVWTTW\\X]WUYYVW\R[[XP`WXVYVVVUWUW]]V]NY[WNT]VYUW\[\b_`V[g[WUWUR`RYX`_`Q^TZUZZaRYST^[URXTWWW[R\d^a\ZTPVV_c`aXV[b\TdSSZXZ\XY`SY^VbT\fZZN]V[UY_X]^V^aaZYWUZcXUZ_YV[`ZZX`aUP]R[ZUXUWVbYUXX\U\T]UZWRM`XTVXZ[U]T^f_T^R_X_VZT]\KWWXUb[ZW\aP]NYYfTWSSQ\VQP]ZPPgZQV[T`YSU\]TZZWW^X]_VV`\_T\SWWXX^`da]]cW^cMZVQYaR]_WQTZV^XPOjUX^SWXTTQW\VW^]XUX_e[cY[aXSWX\]WYZaWU\]]`VYOi`WP_ZXRY^_X[a[Y[]]S[VSWS^S^[WcW[W\W]W]bU]YUXU\U_bTTR\_PU\]T\WMX`SXW`\R^WX\VUUTVNYWZ_VZ_[[[SRc[SR[fUO]WJfY\Xd^_UULPXUYaZ\\XNc][`XYTc]aaRXYd^YZh\a\\ZU\`]`\[[UU\YTZU]UXV[TXT]YSYTYV_\Z]V^XWXaS[j\XX_YW]XeQ[_X\STR`TRVSUTRULaVWSUTTSZRZ\WR]VWXQW]ST\TV[Tb`XYa^Y\[\WXY]T`bW_OWY`W^UWZSPY^`W\X]XOaMWY\]USWUYZ[Y]V\XW\S_[aXZY\Vd`VX`[Yd[YWP^W]XK\[UebURWY\ZWPVW^XYS[SXaWSfXU\Z\YaOXTY`[ZRPb]c][cR]ORTZ]]eLVbYY[WUV_UTc]_[b[R\VKZ_^[VcXbV_T[_XsVSY[WRL^\RX[XRWUe[VY]`SN]XZXLc[b_SVL`PW_Z_Y[O]TJ^UW[SWdZ_TRYVY^YSgSXVYT`UZXXR]ScZXha[WXVXZ]aPVS^VR^bNWZZWW^\YUe\ZSV^VU]][fY`X]VXYX^XfTWS`V_WYRVT\Z\X`UY\^TTUXW]bZZW[`]l\X^U]R][alac\_eVVZXX[T]\XWaQVf_W[YYSQ_[UMc\^\\WZaQdXWRcTW_WVVc\ZX]d[e\]S]UVTXL\^Va_Ta]WZSWWX]ZTX`V_XV_[WX`fQ][[\[ZZ_Z[Zb`\Zfba_\\TOTPXIZ^d`SO][N\PX_WYUaQQY\UW\ZWUbUSW^W^S\VQbZ^Z\[Xa\Uc^YTR]Sc[\WX\ZZ_aVUUW_\SW[SX[W[Y[\^TY[XWXXX\WUZUbZ_S][`[XZVZ]YSS[\\XWW^aVQ_[U\WWZY[bVVZX\SXZ^UZ[XTSZWR[ZYZU[URXUX\U\Z^Ye^U[[Z`\VVc\_UdVSVVdXWVZ\UXUY]YT\X]YP]WaTS\\Z\ZYa]WU[X[V]]\]RVWX_VXZd_eT[\`[aZYZ_XXS^VZZQXV[VcXS]]V_\]V[\VZU[TZ[S]\dVRXTSY[UcY[PVV]YV[PZV][W\YZVV]RWW^\VQVX[\ZaWZXZWY]SbV[[]X]]U_YR]X[b^V[YZR_^\T\[[WXW_QbSaWS\_ST`XXTXY\]TWXSXYV]fW]VU\]T[XSVVNgXY^XVUSNXYZWRXdVZS]j_RbhRPhRa[\SNVZS^UZcOV]TXa\`VWadYWo\TaUf\OTRU\bX[]ZYQ[eY^XUV]UR`VWT__Z\WW[TSRR[YWXVWWVTT^WYY`[O_X_]YGa_eW[kZ\UY[\VXV]R^aPYP]^]OQ\cZUbQ[Z]cUQVRX]X]T\XVSQRZ]Y^_U^VibY\ZZ_RW_^]j[cc\V[eUZ]]YrWT_X\[V\STTN]TRYXa]ZR[\]YUXQSOdj\``XjZXfdZ^USTZaS[VT^VROWWNTTWRXMkXTZN^^bUZ]MheadZLiWeVcP[\XXTU_Va^V]ZbNXTZXVS][_Y_`SUYb\ZZ\WXZURaZdRXQc[^RXUXZ\WRf[Z[bG[USR_SW]WPNPbT\TO\VcYdLdZVa\jVc^dcZcQ_YY[QZ_\[Z^TY][UYVXVPXSZiZ`XZ]`PQSYS`Y\P\_W^Z`X[W]ZY^]`[_]ZUT]VUW^[UXe\XXZ^UXTX[XZWVYWY]YUZ`gTZVbf]UYZTQ`_ZZVa`\YWXVf[[caMT]`Z[\fS[`ZXXUZSPX`Q\]TYZVTT]V]_cZ`^^_MYZTWWc^`ZZT\_Z^\T]WZ`S]T[ZY]SWbTX[RXYYU\dVc^XOWXWNY`W`YZVZaW^\XUY^_cRPY_ZZZT^WT`RRaT^VX]_ZX^WMZ_WWZ^^ZV[YIaUYVP\[U`cXZ^OXOUSZYK[b^a]W^WWZZZfYZV^\a^UcY\]ZYYWcWXd`WQ[TWa\WWXSY[ZRXcR```^\YXR\TbdXV^UTV[WYZRV_VYVZ]_^\U^[VV\ZXY`[]][WYY_TV\TZZV^d^XVVZZ\Xc]eZfT`SXS[ZYVbfZ[`__W]cYUWX[R[U]WSYZZX\V\`S\Z`fY]]\Q\V\aYTRb`^eWUdYX]Y`S\Xb]dX`SQaXWW\[Za\W\Z]\O_V\VOQU[\W[QV`[XO[LWTVX[Y_[]ZVS[VTS_VdWVc\Z_YV`P[XUcQTRT_]]WQ[a_T\UV^^dUcXYVYYaW_XR^W[SXUVYQU\^]]XZ]S^bVS[YXRYZVXcYUVS]VRRTSX[_KSTXTXZY_]W]PX[RWVPYV^VZlgdWWacWVX`Yd]WYWQ^V\U\O\d[`[^aUMTXZcc^]VR`[]Yb]ZYZ]YR]YV`[cR^[SdZXZg_TPSW^Y_Y[c^\Y`Y[dVZ[RjS\fTX[RXYaZRQZXW]Z^TTMPW^Z^b`Va[_X^_ZXSWVXVWWSYZZWUiS[W^\`TYYYbOUX_]VYWPVW\]_`XZbf_ZZ[\S\W^Y]ZbQTYSWRc\W^WUSTZTWTW^b]`\U\YVUUWZVUcYgU]]Y\d\VUYaZYc\`V^Qf[caVU]^aN[`cTa\XSUUTY_Tf^Wb]WbR]Z[a\XWZUZ\UR]_\ZZ^W^e_\YUWWX^TXXWUU]S]cT[YX\RZaUYUYYW[a\kWWZX^bXU_[T^UcRYbW]W]U\`XU\__WZ]V^XXY[^YTU]a_YNXXOT`UOTVTV]U^\XZUdcVUY]RZZ]_ZSVTT\WUN[dWYa`\QeTZ]]YXYY[][aZZ[b\[Q^`[VRXd\Ua]_XX[S^UOYXV\YVO`WZ]^NdQTV\Z\NRUPYV]bX[[]`TWWTMTY[YOY^U^eSVLPZ\U^OW[VSOUdaW]T_TMTWSXPaWXPf\YXR\W[_Z]]TW[^sfSX`k]U[W^UW]YWXU\ZQ\QZTS^bcUXW]VcW_UWbTX\d^c[OVYY^cUhYV[WVa^b^WZ\X^^X^^\]SSVY^_V^ZPSW[XN^\W\^`Z_X`WZR\VSYZV]YTWY]YaSZQ[ZYN][TUZ\WXaUX^ScdZVc`bSX\j_[YXTeT[^SXLVjXbPjXX`Z[X^_RT[Jh\\^_XZWSVZeUFd`YRW^RWZ\QZVUP\\`\aY[XTTTYkO_YVRf[Wb\]SaQb?\UXTXOh\g_Ua^OQU\UTZ^ZJX\V`aXXXQhT]ZWV[ZYL`eWTRZTXaMZZX\W\Y\h\fR[VUTV^X\RXPXW^[XZXWPUg\jRaUUW\]Z^a\\WYX]QXaRUX]_Pb^V^\[O[[[UW[ZYP]SV_]UZZ[[S[XZWR[^WT`aYSO^[^kYWRYaV`YUTVT]]_[_WVVUN_[UWW\bUPUZ^UY[UZ^XYbZNYU_VP]U^YpVU^WSWKYaUR[\TT`XS]WXcXSM]`YSXYZaW_]WUWc_XZQbcVW\\R[V`V_]U\SY\SaVY[NUYZYWYZSZX[^SN]S\WSTQdj[UY_fUZZR]RS]WaLXX_YPVQ\J_WX\aWYU^U]`VY\W\ZWYRbVXSW]\Rc_XSYYTZ^V[Y`O^XTUbSYVW]Y\UU\WV^[W\ZVacYYYVVQ^Y^g[^WY]Pa[]bbSe]\YXh[XfWbYTWQVXZXW^[VbaRg]UUZV\SY\VY]WQ`abXXZf\ZW[WXS\VR]W^\kb^\_b\[V]\UOU`Va[YXMVRZ[W\W]_[^\WZZWZW]`Z_]X`SU\i]W\Y^Z[VWSX\W[\TTV]\_X_X\Wc\_VVTW^TW\K]XRSX^^X^QTfbZYOQUWS^Z`TXfT\TjUZX`]Q\[U\^YUTW^Xdd`]eX[UYTUV^U]bQUR^WdS]VXTT\UQ]U[bTTZU^XWZVOWUS__WWYW]_RUYT[ZW[[RaU]XZXZZPZ^\VU^WeWTZ\SX\cYVWTTPROWeX]YU\XWSZZQW]\[a\Z\UO\[^UZVN`WUYZ\Xm[^]YU_YVZ\\`X]YZYa_Vg_SVRPfaTUT\YWaXY[__a_US]Z^\WUZ[SYPPX[UYXTX_XUZZYX\[dVWUWXgYa\S^^YX_a[V]PY]XVZVV[[]\U`QXXY[SaQiVS\YPaZmaW[ZUVSZ\[ZW[dSTY`RXTXWU[aOZPWUUYZRaWV`W\QW\WSSTZU]Xa_ZT[\OO]e[UTf^_e[\TZ[PbZMXZV\ZW\UZY`N]W][ZPVU][ZVY]\QbX]bVTW`USX\[\a^WZbVYd^_bVXVaX]^Y^X`^dZV_T[[Z_[`URUUYbU_WR^ZcT`XY]^Ua`[Zaa]_T_\^U][XWTbY_\[UZW_`[ZW\PSNVQMZ^XgX][ZcZSTYQUWdXSV`_TeUWTXUYd[VVSVe`[b\_dM[V]ZZ^VSbdYZXRZP[W\WQZPYUZV^ZRZ_U_VZ`X^aTQV][QWb`eZZ[[SSY\]_`YSTY\dVQVXVZSWZ^[^[aUTXWWYf\LXXe]ScU\Q[T[]YeT`TPYXXWTU[UYZ^TdZ[dU\U\YP^^]X\XZTa\ZTT\S_Z[cW^X^^bWh\U\XVX\ZUXZWbWYZX_[Qd`\YW\TZYZ]b\c`\]_\T[WU]TW[ZdS\[RT\VaT[VY^]UZ_b\ZS`b\XWX^^aWZYW^aaUUV__X_e^X\ZdaZ`ZXYeWW]RW`[\^QYW\XWZSWkR[WYZadZWY`TY[[YWZW_bSTc]\aZW[U\^YSXTbYZ]^ZTg\WZ[XRSXZ^Z]XTZX[OV_ZZ^`YbSU\^cVYZWVZV\SZZ]`cdVVXWXc[__XY[X`YYQ]WSYYQXV[V_T]^Q\a\][YTQR__YY\QUWXeUZV[Y`RW[T``YX\W^ZVTXQRUYX_ZZ]Y\WZTT[WT`XTW[XUZk[[V\Y^_\TZRYWPZ`]MbdgW_dUWWWUZM[dPOW\Z^WXZXY^UVf^_]SMX_VW]R[\XW`[_[\c[c[dUXiZ[VWWVSg`ZW]XZZ^cUUUMVSYVVOY]S]VWOUTX_XRa]cUYRW]RV_USXX[[U[c[W[fSX]ZXI`X\^VYTYadX`^X\X]_UUVTZYQ\i[_Q]][XZa[][]bcV[ZWYVfY^\eTJQm_[WPUW\]YYZYP]]L\Q`_[Oc[VfXUSVXX`dWVQWXZcbNNZZW`[Z_Q_ZiV^[_[`_YVU_Z]V\WWRXTVX\fZm]_n^T[ZbZcXU[TY[SW_c[`PTZhWS_X\[QWZYW]YXYY_\^ZdVUYVZUTU]SU`RVPV[ZVTW[RXUXTVaWUX]TTZbU\]TWWVZUUSd_U]]]`XSZYSVU_\N^WP^[^ZgXOebUZ\PR\Z_PZP[VUWV`[[Zb[a_Y`SVS^Y]Z\aV\[]UWb`RSZPMZ]X[Wd[dXZY[VX]WX[W]W]VYWV_adU\LV\`VWTVWVXefSa\[TT\ZXW`\T^YVaS^WW[gWfXeYPUY_VN[ZaSbWe[QWZb_MQZ^V]X[XW[\^S]VW]NRUUUV^_U\W]]YRdZVT_U]]W]fWVXW]`VPTd[V[MYZVU^Y^N^TWXWOY\fS[Oc`TXXSZXQZ\Z^TX[]O_YUdRVTS\[bj`Y]ZU^VTVUT]ibYXXVOV^U`UWRc^_^[]g]Z\SZUY`\W_]daMYSUcYYSW_^\gb[UYZWT]XbW\YZXSaVbYY_]_]YT\Y\\TUZZSYVSZ\e]\S[ZSY`TTaWUTReT`cP`ZQVQQ\YXSX\W^QRU\aaSRYZa[SVb]X]\UTWXVYYYhXj\[YYXNOV]Ya[Y\Sk[[_YXcPSbWTU_\W\QSTTkY\P_UX_PZ^VO`\LdVV\_VVTb\ZcaN]f`Uc\d`cW][eSXeYZV^ZZ]]Pe_YNVYXZ]XYW[T[cVX_^QWRYPYa\_W[aY`_N[aST^\Wad\X[[X`XUVXWSVV\RmS^]^Wa_QZTXYZV`PZWZa`YV[UdQUcQZW[bZb\]_hXPUXQTT]^bQ\VVX^^PSJXW[TUMZQV]WSaXN[SXg`cZYW`QYWPZ[[]`fU`ba]]_[Z^UUK[\YTXW][XVXRWWW]XRZVV\SWYhUYSVU\[QZPYXWX^V^``UWcY\WZ[e]`X[RZ]^S[V[MS_SX]]`Z]ZOQ`^S^]\S]WXXXfYX]ZPWXYQR^UWXWe\QSQ[V]\_SXQfY^PTbTX^bW`SYXYXM^UYg^U\^YX]V[aUXWT^Vd\ZZh\`QVUXYUMZYSXUS]_eUTR[^UZURZXbTYW]Y\Z[aY^]SZVWUPV[a\M[^U`iUhRV\WcNZV`RY]\Z\\e\[Wa[ZWSTbV^fW[X^R[Z[\[RQ]UajUZPVb]WSU[V\SUW]\T_^QOXZacWn`Y\W]]^]YYVTWWh\__[WXSZ[YXRYVXfWZTXV[iY`T^VTPQ`ZU[Y^Xea]WST_Ua_bdP`PYOST]WV_URYR[LYRZRIXSW``]WT[a^cWZQgTPU\`\YZ\QUYYWQUVWZ]V\^[XUZ\OVX]_Q_WNV_YY]YV`XWUU\^W]XaX]WN[X[]`ZYWYZ_^U[QY^Z[WVZPW[[ZP[N`SW^\PZTSYhWZ_QWVTZTTaU\b]Ya[XW`_TTW^\X`[SXdU^b^YXX[ZZ\^WZ^WSSW\VZY^W]XXc\WZ^XYXWW[Z\RWT_]V^Y[XX\YaTY]``ZXX`aVcRPVa]TTY^XXTS[a\VY[[Y\Y_]]\XZT]YccUYbX[QUS]_YXXa_WYZTX[UWXWZaa\WUYQXW][XR\SZ\X]VTZ]`]aX_eTVYZ\YeWTZ[\\YVW\Y]Y[X_\UZZZTTb[V_Ya\Z[UWZ]V[XZXW`SXXV]a[V\WZ_[\XT]Z\X`\VbWnLTZ\TdUQcSWX^_]ZU]XXUb]aXXfb\YfQX[Vc^d[`]\d^dXX\YcaYW[`dYV\_TW[\VVY]W]]YRWQR[]\]ZX\S_Z\T\Yc]TZTg^^Z\]WRW^aV]NYU_YWb_[X[a^cVVYZRX\ZW__Y[[\SXZYWYWUZ`RaW[Q]XcS[\^fUOVX__UZSUaeY[WS^MVPTUagWRY^]cWPYZ\U`W_`YR^\YSOY_^\WTR`V[XRU`][O\`QY^]VTU_V]_ZZUmg[VYXV]QYUV^WZXWNY[WRW_TXZQ^SYcUXVUYdL\VMYWZY`]V[[WXU\XVgZY\RaYYUZ\UX\\`N[YVTW^XYYYdS_`P_c[Z\URSUT]ZVNTOWYZ`YQ[]gWXXP]ZTb[WY_US[\_Yh`cVWe]a]MX_\VVVWVZcVVcL]Z]SZ`]^PPUXVSS\YTQNYUXabWTUWUWUX]U_f^\ZXPVQ[\Z_U]QY\U_VYS[nXZY]]_ZRgY[RU]Xa][_[TXWTWbNWL^`bY[MTSX\gM[N`UPSP\XWa\XYcc`Y[U\YSW_XYXTW^a_jV`[SPVeWUc[ga[RVRYY]WT]^T[W`Zb\M\_QfXeUXZ_aMSR]SW`PXXZbQ\VT]a\MVSf^U_RWYT][TkV^\eWYaWU\YXRQMd]aPXX`\`ZVVUaP[dZMPZ_WZ_G[QP]YRPS\[T_LNSY^U_Z\X^UY_[_[P][^RYebPXT\Y]W[\XV[[V_\[YY`W^^\XXTQl_a[P\_W``ZSIO[V\^iSSZ[a]Y\U`YVQOIVY^\\RKTYZ`OS`gR]PbY]bXOZLbXbZPS]gVQ\XWUKMTYbU\Z^Y]YcX^VfWWTRWfOUWaLTSTO[__YNY[YfZ[^[]Ra\TYdWW]Y^TW`V][P\Q`W`^`eYgY^WY^QVZSSZXSX[YSY^o]XZUZZbTU_Wa_U^_SWXZY[TUZ[d_\[WW^\YZT]\O[WU`UPNV[a]bQ^XVZUXYYbVZ^W]Y]\YW\afY\aZPbS[X\XV`YZNP`XXaPSSXV]VXZ^_[YWYVPWUQO\XS`\]TVZYXVVX\_T[SXXR\XV[Z`TXS]LeZ^T[`ZX`c^_VW__ZYZVYXVYY[]][]XZZ_hYc\YUW^SbYYY_WWWT_[USU_Ud`MY_UOfWVTU`RU]\bWO^[WZXSWV^WXWZ^^bV\YYcX[]XZcM^^XYaUW_UZV`\[RZ]cUVVYX\dSVe_QU_W\V[[UTdcXb_caQTXY]\TUZ\aTRU[R^ZcW`[V^\QY[b]T^U]YYYXUcTZVS_R[[YU_b[cSS]WVPQVRb]gPS^VWSTTX]L\ZM\YVW]V[VU`O[[X]XY\YRT[TVPSYdWU_f]iZca`[X`TWPReWYWKTXP[U[dRdXV]aN[VWRTPHUX^a]Z^Q^^YXQ]Z]]\WUOR^OWf]][YeUVZ]Sb]O_^Y\ZWbRTZ\[Y]XXW[RVcYcfT^WR_ZK`af`i_\b`X^YU[_RWSQ_^T[N`STaUP`SYX[[V_T]bTVUT_ZQS[TXWZZWS_W_SYYV[Q_]XW^^S`bRUUbLbZYVa`W_TYYYYbTWcYSZPX[UW]TY[YR^TWR^bXYL[WcW\bLbZ^^S\USRYZYZ\aLNX[Y[UMY^U]a\YajcR\TS\W[RgV[XQZ^UTYTSPY`[\X_Y^_^[XXOPYV`XQRUYVXSQ]W[]TTWUOV_^\fYYZ`RUf[VTPP``\TN]ShVZXaQ_LW\Z^M^YPUS_YO_[UYc\XZYXUTXUXcYX]R]XW^Q[V]_`[a`UbMWS]YdU\ldTgabVSRLZ[`\LXLXVIeb^YUVZI[RWRRW\TcQS\\_\\UhPV[N^[^^gW^XZOUY`ZT]\[ZWiWaSdQ`g[]^VX^a_U^X^_XUaQSTZZPUZZR\XNVKcX\Z[]SMZfVNWVR\G\]MQQWb^Ld^kTV[Y_ZUZVYT]W`XYfT[]dZVV[cRQ]ZjPTWcITU[\T\SVQU^QaZg]aZWZOTQVTYSbi[V^X\TXU]bV[ZRVYdYaT`SWXO[ZVXYXcOPRQ]_[_V]aU]^X]bZZ\Ra\_Y[dVUbT_WSVO\R[Z]VWW^R[ZX\XYZZWVRZV^\XXZZ]_QWM]UUVV_WYYbiUUR]\]U^TXU^`TUYh`XVX^[X^_^]]XXUUcYSU[][\_XTVU[]N[WXUXSSU[VR\_[UXX`]YVTPTdXaVaWa_ZY^_Y_SY]UVW[YRXZL\^[RUYZS[bZe^VUX\\Wb][WVYZUkY_YVNWPXXTZ[baRY]\T]USTYWKVV\eXa]VW[WKVQ[QaUUSZYV_SQWURVW[R\XUWV[O_Z^U^YMUWST_WYZXWU]Wi`R\VSUb\]WY[^ZX\]\S^YWQ^N]WWT[VTVYYVRgTXWW]LSbT^d[^W]USYXX[VR\[X]SZ]QZXZ^[[\_S]^\WX]SPZ`_`SZbUbUYc\S[[X[W[YWU\bWS[YUUVV[g[SWhWWX_^WbV^Y_QZQ\Zi\ZXTUYZU[XabOWXcUVXTXdWTV^]VWTUXWMVTX^PWX\Z_^Y^TS_ZQY]bZVM[VW\Y^V]ZQYUZUV[[Wc\WZ[YeaXSYYO[Ya^QY_`Td]\`fRZO`VV\bZ`Z]YUT[X]a][WZjSVZb\]Va\P\a[`\[UWYZcSWjXWUMZS\fW^[\XR``ZWU^QWcXZV]PVZ^^Z\Wb_V]Qe]VZ]S\YXY\eW^R\\_c`d[S[W^[^YX][R`]XVXZcZ[W[Y`[U[PX_`W`]QTbUa^W_[Vb__TY__b[Tc_\RUVSYaZ\bT^_[^eUdX\[XfgWL_XXdaYbY\WV^_YYRXVW\\U]X\XUT_ZUYZRW\ZbWWQRJSd[_YVQ[V]h]ZWYU\\V]kVc]_\]VYYWS]YVZY][WaWYUQUfSa][X]ZWcWVZUW[cUW_XY\VR`VYRXaUXVdRUXZYWW[f[U`[WWVUZ^]^iQ]RYZ[]VWV_V_SbXZWaW]U^Y\_SNW_XUSZS]^VZPUa^Z`aZVU_ZagXTaYYPUT[Y\XV^VSSWVUb_[WWcbYTRP_X^WX`WX]bWZX`S[XWYf^VbR[\VS]_[cW_U^QU_[`VT]]PXY\_XZWX_VWU\]S_UTW^b\[^X\e\SZV_V\YQZVdUWQPZUUZWTQXRS]]Y\YXZ\QS[_XU\X`VQbVXWVRQW[Z]WR]UU\T[WVV]VY\aW^YY\R]UXYUgZUTVU^X`Q^K\UYZVY^[QW]V[V]PR[T^VT\Z\`X^[fW`UVT\aZ`YZT[[aR\YV^_[\Q[]ZLYTeYQUVSdr[`Wfe\WYgXU\Va[Y]_fRX[XLNUZXe\WYWJXN[`WScU__dbO_a\U\d\aXO`WX]^[TZSV^XTXPXXN\V_TZSWZWabZ]\c]XX]__Z]UaRYTg[]hVZdUP`UfaVVXYSRWXXYeXYTVX\[aUWW_d`^XS_`[Y[[]SXVbc\VRa[RYeOW\k[\\NSVSWj]Z_]YSRRZYXX[\X[_bWZUXXTcY`WXYW]ZO\UNW[[]OWUYQY]UW^Xh_fYQ[Y\`dZ^]S^]WQSZYQU[YZ]XZnb\b[YSZTXSV[Y\WVXVYW]\\V^X]QXXWig\P_VYWUX[[c^XRTTWhP^\]c\OUiRZRZdbTUU\P^UUag[a]R[H]ZXObaX]SVQS[W``XWUSZXWWUcYRTdZ\[TTT[W`XUUSRaZ\c]WTXeWR]WZOZZVTVUO_WU[[a[ZVS_\XZVXT_QXWbcX][RV^VWbQPNW^X[[_a_YUVXdWWW[SYRP]YTVU^a]cc^ZWSYba\\dSRTdZY^aP`Y\VVX[NUS]HgZe`Z_Q`Y\eYYTWYVVZ]VX\S\O]QSN]eWVR[NcOQY[TOR\WX\_\[Z^WT^[MT]XVTO[VNZTU]OTWT]\WRgTbZSUXTQZQW[]XQP\SST`gVWWaZUTW_][TZZPVYY[_ZTVVSQW^T[[^UPZfY[Q_W^PU_XR\U]Y]`SVURZXY\ONfaQUaZ[MULRTaaZT[Y\YYSXPISTXWZOUTU]Z\`Z\RUS\V\WTQYcfZ\XVWWXZUm`[eW[Z_ZT]WUXQQ^]VT`XMTUVc_PY]Yc_UXVU`WYgd\[YW[_gY\XVZPO[^ZT[XTeYXU_WYWTWdQ`c^[^]UZaVR\aTZNV]]b]YV[VUYZXSX^PS\YX\_UZYa_U^WUVZTbbT^QUUVa\Z`eUW]_`Z\^V^ZYTTV]]`^WTR[[T\WXWca]]TVT\YVVY[VX[V`_SVUdV\WUTcZQU^`[^PcaX^YXdPYZ^[Z[ZV^eY]VZVV[[VLXaY\^^Y[YX\V`Y]\ZXXVbXVXXUZ]WTRae^b\X_R]^]YY[TZY]ZY\\ZUaXWZ\\[\XZ\[YYW[VWYWV`X[PWe\XTa^QUaRRY[X[[ZSYe\Vcc]\W_]RPZSW\Q\\Q[dYV[U^_`\X^^bP_`YZYU][UW_[VXSXVWZUSYWT]\_W\bY\^UaX[]__[ZYT[U[V``ZZYSR\[PZRUV_^^[YcXZeWQd\_]XZOU`^QXWUPdXa_[fZa^XRY]]YW[c]T]^\WTSZ[XOUaTcZX^Z[\Z\VSa[XWbeVVPPZS^a_ZTV\h\USbWVWTbTY`_XbbaU_[ZgUYZ^XXOXU]ZYX\WhV_Q\VZ][]Y]SZWdV`dZSZcTX^YPXW^XOc^[U[Xd\`W]WX]ReN]_cYSXY`[UUUXg[O_ZO\^n^[S[[VY[Q[XVOVTX]bS[^Xc`^ba_a^\VWZeY\NkTa\[\YTUS[`\`UUY__\VWOW][YV]UTYXbe`]SfVWifY^V^_]T^XkR]WJb]aX[]ZZZRaR]U[_\YU\_[XXS\bfVZZV[PVaUW`QZW]ZdM``MT]cTPTXWVJPRV\VZS[[aT[R]MTXY\]]XZXPW_TWZTXUh`V``WYZVUSTYeaV_XVVZTZ^m_[\[`[UXS]X`WaU_OSaYi[\UZWXO[RZYPYTYW\bV]UVWbY]X`YR[XVYbKQYQQWbOW]XZcPSV[TZYXYY_b^O`ZZ[VWWT]\MY[W]LO]Z^S\SX]^acRR_\T^T\cWYYS_VUWcUUa\WUTO\caf\cY[Z_ZZTZS^Z]YY]d_Q[`WUP^]U`TY[UW^ZTWcX\`^VMQ_XXPT]SbW\Y_gcX_Y]XSfdY^]ZXUUUTVYW\TS^gRUb^TZc_V]]Wd^Z^]VdZ[[N^XX\^YUaMVY_\X^[_PfV]^aXV[[`[SWX\WP`UW\\[T\WXV\eZX\_TbWcScV\]VTVSVRaaY]ZXWZ\SXYYQY\`_U_Z_WX`[VVZRYRU^V^YVa_Y[]XR__[WTYZaVXWZWWT^UZW\^UYXZOd[XZ^eXXW[\Y\TXM^VdZ\Y^^RYV_^^bbd[c]\^Y^XWgZeMW[UTXgVbZ_[TYVX]]^]`Z\SVURXXe[Z^Z\SZ\X\[\UXWdX`UV`^L^]Z^WWUbYeZQYVY_\\_g`]ZXWaYQVPWYYTb\`dU`XSUTQ[ZT]\WY[`]XWUX\\\d_YX\TadXUW\cXa]VV][YS]WXY\_Z\X^^[^V][Z_VY[gb[]]_^bXS[Zb]_`WS\TYZRR[UZYRQUYZ[WcaT\Xc`VXdYZZU[R^_T_]S]ZZ\`a[W]YY[YQYZT`\VX]Xd_[WO]XcX\[\\]XXTW][[[XVYYZ]]WX[SVSP][\ObbZT\b\Y[X[]USYWX[_cU^X[^WZPa]`VVddUT\YVY\bYu\\h[[LU_^XT__YV_UYX_UR[ZOYUPWZUXWOVVbUV^VXT[\TUQ`XV[TZ_S^WbZ[X[NZX]\_YW]RZH^YW]ZT_QX\VZUKSXXXcYXTiTZ_]XV\[VX[WX_RTVb[U\UVM]RWWcU_`[V`\T\W\VUT^dY\X[YNPSWVY`bZ[ZRXPWWYU[W\XWUYY]Z\IWY\c\VQ\YS\VVV^[URf`NY\eR[[]Sc_XZUbX]eR\X\abSV[]ZYO^e[YXTXV^WX_bZZTW[a[VY[UTO\Z^XhSZ`S]_QkZXNP[WdTY\]`eZY`\YWO_XaNTWSS[]_X_`TZ]^VhYc]VUYUZW]X\YUVXWTbT[daXeUVRVVVTUwZM]U\TSV^WPZbb[nQ[Z][Z\TTXS_ZaVS]`[N]V`f[Y[U]MQ^XSTVY\]YXSYZ^]\`VU]O_Zb]MUaTUcd^XSTYTQ]M^TcU_[`Y\UR\[YcSQWVUVVVUYN\aacVZTiVVTR_RV_[RQVV^]aZ`]QWc_TT[]UaM_^S^\Y_TWLUMXX_^_ZaYeQ^ZXLHQS[TfZUUQaSRZVURaLWW[[Za_VUVYZSW_KRPYSVhZ\O[TUc[]RTXW^WSWV[O]T[]\\\Y^WTWfV_U[RaQY[Q^]XSOV`fSNNfdcQbK][Tg`aeZYYL\^S[_X^XR\]XVgXUXY`N[`UQVTbb^VwSSX]ZO[bULXTXgZV]TUJ[VY`PXUX[ZTg[Sf[SVlV\^]ZY^XUQVTL__ehYWMWUZYWcX]UT`WNOYV_^_YYPV[b[WU]S_aYXTPX\ZYYRY\^TSWYLS\d[a_]O[]]]_\WY]\ZXWVaTZ_ST_W[YT]WTgXT[YWRbUVTXN\X[aT\b`_YUYQ[RPVbZTYcaTUYO\UZaRQ^LV^XaTMU]TZSWWYUCUL\WXZWUUS^T`]U\`UN\bW[U[Vkc_[OVUpT\YURVXZ_fWZZf]]dYYhXTRRZV\MVY]bWbaVXPVbXXd]U]XZ[WeS`\T]Y^\^SYa\Y^Y\`[QZmXURdYSZS]SYR]ZjLXNP][\P]\_`Z\XQ_SSN]P\_XbV^^URXX[]RZPX]Z\RUUWRWhR[dVL_ZVd^VZd\Y`Y^_\aVPlVaY`eYZXXWb`W`WO[VSP[Mf[^S^[Z\\UabUT_[\WV^OQW]_YWX]YO[N`]Zd]TaTYXegYZWX``Ta[VW^LOOU^`N^W]LZS]]^U^WXX]UP^YYSZVY[\SUVTeWd\_`WWZ\PUaaV[\ZVRaY[T^YZWSXaYZXYP_X_\X]]YX]U\YOVZ`\XZ^]cWWWYdVOaR_Z]\SX_ZUY_]TfO^\\MiVVU[YdXWWXV^TXR]YUTZ`b^S``XTZ^R[U\[PU`VWZWT]fYX[VUURV_XY^gVcTY^]]O^YV[SR^XW`[QZR\_T^bT_VTdY_[gZc\YVZ`XdY^[]UQVe\KNWU]WWUWTdU[Q^R\aT]PVU_W``O[a\Z]VW`Z]VV[\S[V]X^WSR\]L[dNUWTN^[ba`YW]\__]WYZWTWYX_XZ^YT[QZOcUbVfcV\VR[_TTRU_UUh_fo[dRWT_SPYbbUXT]S^TfYUW[ZbYZZ]\M^cca[[\acYkVXGRa`XUUcQ^ITWVcTY\Z\XZbQOZU[XVU]\QT_OV[Y^YUPW\_Z^cbT^aU\YSV`WUTU_M`ab\_W]XUPXZ^XbZWYS_USZSV[UW`X]ZYQP\UXaSYX[\]WRR`aY\U[XYQ^UWX_baQSYWYZUXY[YeYSbc^^ZV^UV]S]OY^[UUUS[VW[Z]Z\WNUYY]cZYYSPTVb[^SZ]O]X^]\\ZdZZ^U`TfZiZ\UZj\Z_OZ^[\^\O[`VVXY]bVVPY]Whij`^Y^\dPYYZST_MPYU^YXXYSU]R\c`PV\U]\Y]`Z[^X_TP^\XT[lXOPRWRSXQSX[Y\XWcWR^\P`]\\PXVT_PUWZXbQbUYaYZ\\[][bYYZPU[X[LJY]T[^^XXTXcZUVbZN\L^][YaV[U\Y^XSWXeZX]^eVWWb^^[VV[O_[U^][WT]`VXVZ\cQ`S]U[OW_`XXY\U]R`W^WWZY[T[_YUcSTYRV[_W\S\RY[YRZX`[T[YZZV\QVT\][`WTRT]UWX_UWZW`X[_]d^RXY[lZ^V[YS]^^SWZdQ]TWQ`V`VdWTT[]VRQS[[ZO]\US\\X]UbOYXXUdV^W_Ud\X]][^^YW[Z^W[RXYZZ[[[O^[WUSX[ZTg[b[eS`bZ]VZXWVVYYXWY`ZWWQYb]aUZ[X^\`T`SXZgZd^Y[VXQUUT^Y\^\][Z][WPaXV[Ud]XWV[fXU[bPWVQZYV\\QXYaWTX[W]V]USg[UVbW`[YVTXTW\_XT]Z]f\]UWOSd[X[eWOZ\c[dQ\[W[aZ]QS^_W[daV]ZT]U]YSf]hT]U^Y][N^P]YaUd[U\ZOYhUXQTZVXUZaTZ[\X[ZbUZTUTWUQ`QX[R^_OTX^bX_WKOVZ\YdT]Y\cUY\[_bUTbZZ]]NbVZda[\V_XYY^TTV__U`V]]UTYVcMZU[VVT_VWYXV^VQW]W_L]VbVVNU[Y^UY`Sb`YS\]e[[Z[\Z[YMS\Y^\WVb]nZUTYYd\_`^`V_lbgeV\`]V]U^]]VRT]YUZWXUR\YZc\_R\WV]`WVSUWQ_YZS^QX^]]Y[VUQXbXaXcVYOY[[dZWZ^aX]^W_UW[PRTS\X[^^]YS^RSZ]WV^gTVXUXbYR\WZX]TSZcX^[X_iQ`eVZXZ_K\_Z\Uc_]U^Y`RSO\^WRTTTQT\Y^]^YTY[\XWdPPYN\a[\]]ZdZY`YZV^P[^WVTaU\Sb^\d^WQUKWX]V]WYUN\]RX^YRZfWW_[WQYSZ^\TacXMbTS^UXbSY_XXZc^UXY\TB_XZ^ZOWXZRhaSY[\U]YXZWZ`[YVaU\U_\R[]RT]TWb_RZXV\\Ub]]\X_ZVU\S^^U]WZ_`NZT[UfWZYWUdXbV[XR_XZ[cS\XTVT]WXV_[TYaSXV[V]UWQ^`YRZV\Y]eS`_TSdY[]YVYTYRZVUYaW\SXRZb_X[_]ZZ_N[_X\RMPUW`WZY\PSTXY]ZXYZZbY`WaRb[[WRZ]LaaX[SST\Ra\Q]S[YaZQQXXP_]^WZZYVa_RSW\\PV\aV[[T^VOQYY`[Td^UZZcZXSVVUU]ZhI[JV[[YQW_XcZUQ\aSj\ZN_WiV]cTda]W^S[XXaULQ`^TQWRVOT]a[U\RRUVIVSQTRO]YQV]YZWW\^R_Q^\XXPZ\\^d^cV]STSYZUX`TY_b]YZYMUQVZ_\X]SUQeVV]UVd]^YTZRZ^\[_V[WP\PWM_QVQPSUdXSOPSQ\VV`\SYY^\WQW^_ZX^VTf[UX`VT\VOX\[^XcQPUZ\R^[UaMb_TLa]cVU`NXVUZgYX_\\^ObR]XVZYV]laYYUTZTYXV`\WSXUR]UT\XZ^WSfWYU[]dUc\YY`ZW\S]_YVOVeYV[SRSX]`\SZg\Scaa\eXV`XRUmYYY\Z_WY`TR^`]STId[`VZYeX_^RbWUZZT^]YPb]QSYYYZO_UU`\XXTUTUVUY]^VR]OW[`^T`V\Z]^\_]TTQZ]iX\^[T`ZcaNMTd[VVNSYL^X\XY_][TY]PWHSjWFYhX^_fU[V]WS^UYRgK\XYUI^QWSST`\eY^XW[UTYVZWRedY[c[SZPWT\b]W\\RbYY`cWU\haZYY\Y\WjZ]W\U^ZU]ZN[ZU]^ZaYW_cgTc^^[]O^XWW[`]S[[a\T[UY\__dUaT]c\`Yb]Ua\S^_a^Ye^dWXVYN[_TZS\]YS]XUXf[WeXTXOSX]pY_V\S[[MV_kY\Y`WZWPkdV[XZWYXTc]VV]ZO`XW\RY`^afU\VW`[]d\_P]Xj`]`]XTWWdS`Qa[ZSPY][jQ\RUZ[YZTU\`\V\[ZVWi^^VS^^X][W[VgXbiR``YSX^SeRKVdXTZSRX[[OVR]ZYb_WQ]]MaZZ\S`TVY^`V_U]W^T_UUYj\\[\[Ya[XYR_QT\Z_U^]_VUZZc_Z_[Z^`WYb^aj`WTYZS]bZV^gOXYYZ]PXP\Ybd[W]RW\QNV]SRddT[\VVcZRXU]SX^\^^RUSV`_WY^\YVY`Xa]WUTbRcUSXsbWUUSZTa\\X^jW[S`YY]dUYcUQUT[SYW[TZQX[]N\YZaUS[]eXR]\]VXT_VWPR^^\X]U\Q][Z[\TQ]L[[WcXUX[SQ`VTWaVd]\^XWVW^g]ZVU^SR^_YUUQ]S]]W]UXXaVZY`\V`Z^T[Z[\W[TR\ZUTWcO\`ZgZX[YXXRZW\XUaT^]^XdQhXZVVSYZYXTNN]QbVZUZTU_RcbT]YSQX]_[Z\Zc\UU]X[UT]UWUYf[MVWS]WYPcSY\ZVTZVZ^YWQW[ZZaX_]VUTSWe\_Q`ZZ^bUZ_XgVY\SVa_W\[cZQ]_YJRdXR^O^hU][b]XWXW`lXVP_YY\[WSUZ[SYZZUha[gY]ZZ^WUT[eYWPY\bRYWUX[`V^]Y\`[ZYbYVZ]W[\dVRVX[XXY`h[e[Xb^WVSST]^Uh\`XPR_a\^^XV[TZ`V_[a\Z_W[YZYXXWU]Z\`UYYVTX[W[]^YZTT]Z[ZYW_]^SY`YTZYc\]b\\TZSY][c_PU]VcZRUZ]_[RX]^^XWRV\\TY`ZX[TRPRbXOYW[X\Y^Ng^_Y[[[NX^cW\W[U^[`T]Q\[[`WW_T\Z\XaZf]Y`d\`VZV[_UiaZ\a\YXU\UXZVT\VURXWY[c^\`b`\]RXZ^Y^X\U[SW\ROZUY_ZeWa`YX\YOXZ`aY^X\T[_WTU`TPUaoYVbd\V]X\XaUYRWXU\[V[XVZ[X`QaUW][U\TRYW[XXWY^c]WN_\ZWX[aMZ\WWR^X]]WS]Q^S\Ua\]UUW[RVaSSVTd\TVW[\QZQZZX^^S^WYYOSVQ\QYZX_\XZ[[RSY__f[XUTSZZXUW`^^]TS]UY`TU]X[UR[^SVZWQXf\ZV]TVcY\X^[S]YVYV]WVdPVYZc\TaWTUTXVV\XWWTTY\^^XWRc]WT_]YUWS\ZVXJXT\iV[YTUZ[]ZgXYVXWY]T[[^X\][UXYYeVXVWV]XU_YZaXZQT\XUUVRZ\fS\WRW[`^]UUca`]YYR[a^S]`[bRTbX]Z]Y\g[ZYXXXa[WhR[\eX_V_W^gUYQPSRc[\^[U^UPgPaZR[[fTf[[YQ`X[Vb_WRReTcUW[Vg\c[]X[XQVUYYZZYTaMT_WTPZ]NZ^]]TZbYP\WXY[ZVpZ\\f`WXSU[\aO\\ZT^[ba^WQVbX`\[X[Wbe\_^]Z`W[VVPVW\\Wf]TXRVXX`XRRdX\VXSZ`[^]ZVQQP\XWZ[]TZ`RWM[US`Z[U^[[Zc[P]^ZZ]dQXOZXcVS@bRYZX\^W[aZ_bPO\^]UPUY]bW^`e`c[^cXX[WSaXtVPVSQUXO`[_aWkWUW_]fUQcZ]^]\U\YZ^QXWUX]]ZTUXXX`Y^^cV_V[SY\eTVTRXY[Vd^S`Z\\eSRX]WSWcaaXg^XTSZ^YVXeWXTTS_XVP[YcWY^YWVYnY_ZZ\ZhV\UO^YeWZVOXYZXXY[WOYaXaR`[ZXYXaV^d\Vc^WWbYSU_XbWSWchZX`XYZgj^\_\VTa[T^]`T`[^T\[UZ]eUZ_^RSX\TS^X]T[X^gTVZ]Sbb[[Y]VXT`[ZTT]\_[S[^[YXUYZ\WSYZ]e^RXVWSZW]^_ZZX[_aTU[]W\Y[XSg^e]TOTRT]Z]YhZ^UWbUN[WUYY^le[a[VZVVa]PU[^VXb]SZYUURPS^YZa[YT[T`WUV[f[XXZT[[_[[XbY[T^S^W]ZWY]WTX\WZ^\fPcWSUS^Yb]\W]YXM[TZ[ST]P\UYRZaOQ`NVi_YX]]Tf\N[Ya[[US_STRc[^Z[c`T_VTVa]\_[Q^]aWVS\UdcXXWY\PVV`UaT]XZPNTX]T[\WQ^TZ`][`_Y[UPTXd_k[[_^g^\PZS`cb[bV\WVZ[[]RSW[YYUX[bfN^^XQXYX\Y\VVSZOaX[ZdWV]`RJR^fXYXXZbZUYY\X^[XWS`Wc^[VY]ZZYV\fYY]WX\c_`ZTXYW\]ZgYYe[UaeWT`YWV``^XWaX]UWZ_XYXU[^UUSZ[YXUQ^XUSTZZXaZ]__aUUZY^Z[\SWTTcWWeSZVWX[YbWa\XPdWV[eYUX[YZbUST[a]T[TTZ]VZU[ZSWZR]\ZaUXXZ\\`XTSY]VbS^NX[VUU`OSYZZV\ZQW_]VaTVYaXZVSY[R_YXUcZ]TQaSYT`SSZ]c]fZW]Z]`bXU`b^Ygce[YYWVaZUZQW]\[\XSTTaZYVVRXZW\\cZ_Y[WNZ_]^_iZlZdUWTZVZUSYXYUZW^^dSU[YZZWUcXYUeVSXYX\_XW^gZV]_UaWW\]\`UVUTX_VV][gZXYX_OUUZZ[]]aWYT[^_UUURaW_ZYVVQdXZ[eZZXZXXZTRSQY]U^YXZib]ZQ`VZVUQX]\]bRY]ZY[]ZZZU^Wa[`]TUZ^WZQY]SV`XaVYS]SXh^Q\_YOWT[^Z]`SUXVYS[bZSWVW[X[Vg]]\\e`VZ]^W]dUYZZY\U\O\U]X\Va\[`Q^\R_RY\UXW_ZWY`]X[Z[`X[]\][Z[Za`WYQZ]^U]eT[]X\X`\Y_W^\XUQ^US[XXZ^ST\bY[VYR\SVY[YYV^_]R_cWXYQX[^S]]i`W^Ug`ZUVOVPUYYVbd[X`TcY]^_\^UYQVYY`[WOY[]`YXR\\`SXZ]WSQbVb`][ZUUZ_aVS^a[WO[TU`VVY[Z\aZYd`_ZUZYOQNX[\SZbWMSOaY^]g_cVU]a[U`TXRRP[]T[[VVYZVSWYVZ]W\c`TVOTWXZh]b]]TTe[T`JZU^\[WQcZRR[U_RP]P[YiWZ\e\UYQ[]UY\]VhZpUY]T[UaWY[[YhYV^QX]STW\_]VeWY_cZR`Y`_]UXj_Zj]V\NSWR_R[ZSPSW^RWXPOX]ZaXM[Pf_LJ[fZSW`lZX]OUTW]dW\N\bZ_S\SWWYPWY_YX\`\[`[[\VebViWTZ[[TZHWQUURW]gZTVb\g^Z\``fZJSZ[_S\SYb\\ZTVa[`TVY\UZTYM]YXXTZUWb_TWX]ZMY_YZ_SX]UdQQYaSW]UWO]WXZQfdS^\RcS`U[XMXOR\e[[WU[RUYU\UT[XYYOVU\]]`YWSVWZb\XRYW\S]^X[PaUOPOUV\a`Z[ZZYVYWYMfd\aWR^TZ_YVb`Z\]YUZd^ZZ[W\XVZWUbZWV]Z_Xd^XUZ]UUSYOX]N`Wd]_Y]\[][c[aX_YPUZ\UZZWT`VZNbZYY\YYZU`RY]^_]`U[UX[WRZ^VdVVPSVM[`TVeV]Waa[S]_YgZZ\]aX]`RaQm[_aQUZVZi[\^Z_]WZV\ZX`[O^RTU`YUaWWWPQNUU]V\XSUe]ZWSWSV\Yf]V^WX\dYU^LWZ[WZ[YU]VRg^X[XTV\SYVOYQU^Z]Z[Q[gX_\[WT]TTPcSXSc_ZVY]^]]W]]YXY\Ra]ZTNQY[^g^XY][b\`\QNTb_\[cVV\VYdY[T\Za\[R[PO\UP\UYTTNPRVVdbVTZYZ``UXS[OXK^WVPXa\c`W_UVUfRVVU]fdaZQYP_W_VVW\Q[eVSYSX[a]S^ZPWYW`XZ[WV_][_Z^LUU\]gQ\[QaWX]ZVf`XScZWb]XSUeY\VUTZPVYYVX^Q`[VVU[T_XOTUbVaVY\RT\QRUQ\cZ`\VQVVb\UYWb[`WT`RWXSY]a\XQYWe[`STVZT_`RT\Z\dXccUXdh_aXZ^\V[[[V]VTaTY\ZWZRTPV^f_U`ZLVQU[V\Wh[UW\\\XPZdbZS_WY\ZWOPRVSXTeYTY[fb]\Ra[WOO]]TZ\gFfVX\jXW[Ta\SdPRL\^`Z][ST\Z`SVaRTR`]ZXV]XSSaQXY\\aaV]T\^ZS[^Z`MVXU[O^\[W\[Q^VS^]Z^bVWLYZW_ZH]X_W[[gXW^agVYQQW\RNP\PT b[^b]]Xb\QYQTVX`]_^TW`][Y[\PSfOVc[\YZZbURWYUXLS^aT_]ZkTTVZUR^bb^YRY\`\TRa^ZUX`_cda`caYMWe]^^QZYeVTWUXXPZX\^lXU]YTW\ZW[ZXfQ`XU]YUWZXUYWiVY^O^NUY]V`U^W]cRYeDpZEUYSZR^UZW_b]ZUPTWeTT_`\a\^TQ[KXX[Z`c^MUfY_X^OSXWM\XSY^XUS^a]U[`_c]bR\V^]\]Qa\\XZZ\`\UZX\`UeRWWRZ`SV`UX\c[V`TcYRTURcR\W[YcQ```[_S]YQc^VYZ\Z]ZWY\RbV\Y\YSWZXX\[a]\aU\`[[U]T\[SdYWX\S^OUWTcXXZZ\[Q\YVR^T]`[\\U`YWQVSYWXWVVbXfUOb`SOb[[X[VXR\TO\TUNV]_VUObW^_VZVYSYPUU`WdSXoZVWWXSZ\VV_V`o\Sa`U_f[USU^VaW[Y[`XV[d\\T^\\XX[O\dYQ_VTWXYcXbS^Ua]VOc[WhTcN\\[ZjZVTXOaP\OXTUZUdGUS[d\TXW^UUXbV_`aUR_WbaU]SSR[\aYYafX\ZVYZVRc[[mMY_^eYVcPT[TUR^ZVdW`O]Y^[X]VXW`X\[T\]Y[e\T[WZiXgQOZXZWXTTMYc[U`YXhYbV^TYqaSc[\]lW`LZ\`SUWPYb[[P```]e\VZT[YZXT]ZS]][^[ZTTXaZY^`WTU^g^WV`UTTfRVWTTjeP]XR`[OQdW`X[M`RXZXUYbPR^W_[dRdZY]UVTVU\S^`ZXSVV[YWVV[\[R[[W\Z]YVPYZRZX\^XQWTVYa[X]\Z]VYXQ_b[WZWXWS[V[_UW\[W`W[`\XQY]XQd]TbTgOQaX\cTOZRRWcTV[WY[Xh_XZ[QRYR^T^UXb\_aWX[VX^]SXT[XXZ^]W_WW[_Z\\^b`[\[Q`P[]UUWb[R[SXXT\V__WW\XYU[Z_VZSiX^QP[]YYXZ]OVWZY\]VVZ\_`T]S[WPZ]YaRTXUTVV[_X`WMS\VQRU\^XQQSU\\YVNQ]OZ`^VSXS_bZTZZ[YZ[bh_\SWX]QX\ZZ[VUTfaY^XRYU[SVcVZUc\T]TZZdQQU_ZY[[ZaV^UXc\__SZV\XVV`]XWT_XXU_d^YQZ[V\YQTYY[]g]\^\\_U_S]^[Y][\[ZU[[bYX\\Z\_X\^WW[^\WU]TYTU\[]^[\_Z[WUZVaQZ^ZWa^YU][USVSWXZX\S\\^Vdb^RWY_^TYR\]US\]\[ZXU^XZO[[YYZW\[\[VX[XWVWXZ`VZYWWXZYd[T\`caS[]WYV][Wf[ZZTZb[Xb]XWZ\W]ebTZTY_Z[VWYV`U[]VV^VV\[UdXVQZ\Xb[\^XSQR[bbY_]V][Z\]T[R\\Y]XjS^TZYX]][WZTYYTY[YWXUWZ\Z^VafU`SZaZ\[ZX^\^_aVaRXZX]U[Z]ZZY[ZYeXUTU[VbZZYYV\aWcbULZ\YX\__YTVYZTW\]`VW\[T_eZWUSS[`VVXMZ[YT^]\Y[UZZW^ZXVYY\T`W^Rc[TbW_[VUXUXXSYVVY\XRYX_P^[]SSWV[VaWaT^Y]dZO^\[O[[[ZVR\\ZSQT_KV`b[]VfW_ZX[V^eO]VX[YeW[UNW\^]\RXWX\]P_Q^bZYZSebWVXUS^TVOhYZR`^a`dWO_YSV^ZXWU^VTUX`^\\_U_f]WU]N[aWVPRW][W[[ZVdaUXZXZTXYWWVY\ZZYR_Y^\a[^aWd[Tc\\XbY\ZZ\ZP_^YP^`Pa\VYR^X`]YZ`UQWYSXWXT`Zb`ZZPS_XU[Z^aVfa`aTXVPc]UU^UWZ_X\P\`Z\ZUWaT\\^S[TZVT\WXW\R[RW]WYZ_RX[cZYXT[``b_ZYWZW\dY^TJU`a[T[Z_aW^Y\g\UW[Z]VT\YWX\^XV[jVZXO]a]]]XP^[YT``QUV[^\PYVVNZ\V\U^gZfbTVYTZZYQ`fVP[XYcXZ][ZZQVWaZSPYQkaaY^aWV\WT]ZYXVZT_Y]XaUS[[Z\a]_MXVY]]YYWnV\\X\Z\VUNXTUYUXYSZSSWWVcZ[_^R`[`^T]XVXWYX[YbPRTXWWUUPYTWT^UUV^\aSZ[Q_ZTU\`WYZ\XWW^RTY^R`YX][TNZZbd[Z`Y[X]Sb_eXP[eWPY\]^aS\^_Z]U[^XXV\\R\ZSb`gY`RV_X\VcaY[ZOReWb[TZPeT[]XV_Q[YZOQgY\[[_UXYX^Q^[ZX\[\aXZSfl`_aRXUaX^WReVT[ORW_ZW^UXXU]UU`]_cdb[WRKYV^]VXU\TXb]`VXYYX_T^aY]XUUXa[Y[WXkVWWZ[UY[\X[[R_bQ\TV^X[TST^WXYY\aX_]_VVWcTUWZ_[^^b``_ZXZVXV]eXU_YWU[S_V`_[W^[`YT\]W_TVVZVeVX]ZY]YSXZRPX]VWVWhZL[`YXWU]RXTYX]^YURRUYZ`YV_VY\\_RUY_SNY\YTY]XXVT^Z]WXW\W[M^]XZ]Sa_]`YUY[VZZZZ^X^Y^ZTY]YSRT]VaUSgOVKd\]S^S`]WYcZV]YYX]YSNVW][[fWTZ\UYSWZTX]N[dRTYSR^YXZVU[`Ua^`UX[RfX[Z[aW`Z[WZ[Z[]X[\Y_VVYZWP[OcR]\aZ_S[\^Pb_RUcUSVgO`ZYWdYZXUUYQZWSbYQ[OQ\W`[UYU[aaZWfZUYY^Sd_bV\Sf]S`ScOQ[W^RRUVcaXVXXaZ_`bXdXX]\a]YTWZ[[X\\ZXbQ\[\ZKe^`]dTSW\RZc[V]fZ`Z]VZXZ^TdZUR^ZX[U_Y\aXWY[[XWRX_W^]\U^XV]XW\W`TW[UR[]\[[\]\VNTZ]ZcVaRZiaYVbVXW_ZcRXX^WXX^ZS\VZ^YZQ\YaWUYZ\]]VTSYXcZXXW`eXQXXWZXV_YR`ZYXXWb\[W_Z`^b`VUY][[[ZUYZWTYXLYQe]UQd`\[XVVZWb]_YWbbT_`X_TWVZUZZWR^XVO_`YfZZY]Zaec`eXcZYUYbTYVY^\]aZ\\h[_YTX\ZXS\^^W[Y[W_Y\YWVeSZQ`\e\V\U_X_TZT`Y]R[`]U[V[^YcYWa^_\\WZ`YX\[]\]``T_UTSfZZZ^S\UUVOZ\[YZ\_UWTU[UZSX]X]U[`T_YYU_Q`eU]TXa[UQZUe[UZ^Ya\d`\Sc`QXfYZVXcLV^TUaWW[`_N_NbQPX\\[aU]YTX_W[V`c\_cc[[`]]Y[_TP[Y^\VhY`T[`WX]SST]cbYSOb_V^^U^\U][W[QW[V`UQ[Y^ZZM]baXXWaSRVRTX`UW\YZ]\TQX_aZ]TaZUY`aS`XT[XUa_Y[VXUT\Z[VaTX`Yad[PUQV\W]`bOdSUUZOPUY^WR^[SYa^X_UQNb[^\]XVQaZRR\QUWTb^\UVhUaTZ[`Y]PYU]S[QYZ^bcWbW\ZW]^^ZXYYW_VXQ`][ZZW]a\Y_`_VXdR`[[W`]SU]YXRW^ZY`TR[URZ_VY[XVR_VOaccRUb^Y\_bP[edR\[XXgUW\`[^YU_RPU]Q\Y^\`WWTfW`WT[UVVM]U\VWYVUV]XSZ[U[X\ejZ\ZV]ORXY_Y[O[VVS]U`SU_Y\WW^^V`SUR[US\XXZ`QbZ\`cZVZ_\XP[U^[]WVe\YZZaXbXUNV]^T][Y[_f`^YTWYXY^XU_WWQYb]`ddigZa[UT\^ZVa_cXXT[XXWU_[Yj\Te^V\ZUUW[ca[TZZ^Q\XW[VZTVYYWZ_Z`\UcXcPVV^^b[UTUaRaT_[ZWT^WSYYZ]\X`[T]TQVVbWZXcSUWZ\V_VOZSYV[aU]SQ\]Pa`V^]_QZU]XRXQQ_[U^YWeVe\V^VYSZYOW\YWWWWVWZXXZUUUVW[Q_W^eY]YXQXcSXXUT^X_XU_RZ]V\RVQWTZQUc_Pd`aX[ZWYeXX[^[VZ]XZVY\T[US\`W^Y\_V[XW`WVTaYgZYi`bX]VWXYXZRT^\fYYU[Y[[Z]PZXbWMV]UR^W_[]\cU`VY\]\RO`W__\RYgYWXQaVSW]Vd`WTRWbcX[_UTYTZ^^XYU`[a]SZdeSRcTUWTjUXe]^TbQS_XQ[Z\]UWXU[P]YWZR]XV\YXN_^W`PMaQTZ[]XSVKWTP^X]U`XbY[[TXMYUZUPZd\cPRZ^RYMYUT]VZTiW`VTRa`][QU_P[VUbVTW\YWX]X_[W_]XZ^hYd[SYYTXTWX\TSTQVYV\YVQdUWZXZQX^]ZU\Udad]WX[XZV]WX\WZa^UZWcSYY\_U]ZWY_\aTVTlN^\\XV\YaNZX\U`XVY_`ZcU]N]OZ^k]\XWX^YUfa^NZWXSRW`\RaR\^YZRUdTZTZ^VZZXYb\_i_X[[]^XXaZ[bTZWVV[YZ[d[UV[SYXP^UZWVW[^T[b\W[[^X\X\W\UX[QQVUaV\YUY[W^\XXaU^bS][]W^_\ZOYYZa]_YZ\cY\XVPXX[U_[WYZ\WY^\^Z\RTi^Y[XVRX^W[W[X]QPcYXTV``ZVY]XVT^UbROUYZUZXV[W^^QYVVZYNZ^S\U[b][WTTT^Y`T^[a`UVVaTSXVQ\]UVYZ]TVTS\^__Ud[YWY^W`_U`YU]N\X^]YXYbX[]b[O[VUZb[WRTY\\^WXZTZa_XbXZX^WZZV^S[YSW]U]dYUT`SY]W`Z`]UZV^WaYX[eYX^VTVUU[XZ]]^bW[\^U[SWaXW[^ZU]aZ[\VZ`Oa_][YWWUWTTYaZT\\^WXYYYY\X^WZ\YXY`ZVZWW[XRXV]_VWVYVYVRTYRXZ[YXSU[Z[]J]ScQSWVTZUXXYbXg\^Zm\Z_UR^]T[b\VT^VY[\YUT_UZQ\WZXQ`SaT[YSO^UYYdZ]QVYcYXXj\WXU^VaXVZ_W_TQX^^SfYS^ZYmW\YVXV]RaXX][WbV^OXk]^_WUbV\]SVZ_][Y_bh]_ZY^S[VTf_b[WU]TY][^aZ_X^UXZU^`gQU]VVVgZZ`YZ`XXO\V]VcU[Q_LYTfVPW^YaXXVS`M^_V_SLYP\X^]a^ZU[a\]RQYU]p]W`]_TR_ZU_Zd\aX`\hb^VZSX^\RYVY_WYTYV^]`R^UW[ZbZZWT__VT[VYXZXca_SZh[[R[gd^[WPZVR\XWWZROWXXV[_V_i^OZXcTZWWXYPS^Y[WVcPXQYV\_]_Z\]^^ZSZfZXYcTU`\^\ScUWT\WYc\`O`]XZQ]WYY^`Yj`Z]]XZRYT_bW\VPYWVX[]S`WT]R[ROaQ_\XYbZ[TU\R_`URaV]Y`WSYZV][X`\XXNXY^^UWf_^SWP[UdTTT\c_`hdWaV^XYaSPZRU]\TSZZVY]U\VXY^f[UYX`TW^_XUe[[bdZX\STVVYQZWVW^[\eSX^[`YWXaPZ_ZIUWVRVXZ[SVd[V[SWZ[Y[SWc\`P\X[O]\X\aUVU\]SPVS^TNV[ZVWbfZZXX]WXSUY]YYaV\Za\fVSVXXSZ]d^`aWR\LY_TWY_XT]XWQ^]PW^`U]WaSYPTYWgYK_SX_[[V[YY[UUeSSSacaU[]WXUWTWYRUYTWWb[iV_[`UT]`a]]_`\\TN\YLWXa\YUaWP^]ZYT_W]]ZYY_RR\a^S_ZZ[[P`bXXdS[M[[TVc[T`OXU\U`SZaXYZU]TYV\SS\SUVUZZ]\SfXeVcaQUWRf_Q\[[T[_Ma]_^aVWQXb^SSZ^[cVRR\XdMZ[YY\YcYdPMaZRXTWZ_Y\^_^\c_]_WaUYf^V]VYUh[UZcSacSSUXXMbZ^^UTWWW]bZdZY][[Z`][`b^cW_^RZbUafZSac[a[^a^bZcVa]eV]\ZXUSXXjZ_ZVWXZ\WVOUYWUcSaZZX^_Y`W[U^Y^^bQ_S\]_OS^k]_d^^VX[QfU]\KU]ZT`Ycf^]`^bSQ[Y`OU\\SW^_d[[gd\T^Vh\Q`V_VYWY[TfZUea\LYO\YMVUcS\ZSP^`V^Y]hV_TSXa^W`^\TNSTYWURZURXYb]aXVZU\YX[WWTt_]X\MY_]V]_gW`YWU_b[[W[XQYO]^X\\[SVQTTTTSdTZ\WTZWZW][Y[Wc[VZYNWSRNa^YT[STJcUWVZl^[``ZY\[^\W^TU\`X][T[UXUdQW]f^b[UX^aW[dW]HRU_M`UTZ_QYYYUNRTVU[`Y\YYUd[[`SVSUQa]ZPORRWVYW\cU[TTVSVQS_`UV`fY]VPZTUIOMP[RV_UQ\]]WUWU]^Z\Q[T^W]TV]c`baVQO_YdS_Xa^TYY\NPW_T^YUe_`V]cYbZ_X\[[VYPVV\ZTd_U[W[`\fdSSWZR[V[UVcW\SX][P_TR]VX[Vh^PO_XZ`SeVZ\`WV[\S`]cX^VfiXT[dUZ^TS]TO]V`\]gVQZYZ^_`XW]NUYa`YTUVRTa_SWYdXdOfS`PSXQZ[[\XZUXc_Z\RY]PV[YQ][d[[S`_[WYRU^Y[SYW^cc\\ab]Z]_\`P[gV]UVQeP^WYX[SYRaVR^USWYYb[YP[YWU[XW\[g_YWZYZXZ^[Z`^S^SYXW]VX[XbYW^UYVVXTRUWW_V^XR\WYYT[]WWYYbW]W]U]XXWUT\PXTUjYbWKY\R[]\jX^[\\V_XSYWd^UaR\\OR]\TUb^Z[SaUV]X_RV\ZNW]a[``^PbYUWb[\XhS[YZZYkZZ[Vc__[YSUYXYbXX[e]\YVRZQa[UcZY]YaZWX\]OYSX^]R[ZV]U]\X^YY_[XZVWW_\\TOdSVYXV[UU_\Za[U`TTSVUJWZ_[PUbY]`^VUNWX]XdbUUYXSONd[SR\UZQVYRha_HPSUUW^]]P`XWX\XjRUV[\baQZ\S[\ZY\`]Z\_^PY^_\Qa]WQO^]T]bbX\LWTXXdVXV`Uh\S]hO][cRf_YaW]XYZUT]Yc]`T[S`]s^TYhZUP\XZcYdW`UXYY]_]bb]RUW^URah\ZW]VVYcTTcWWU\`W\XbVVTYU_Ybe^aY^bb[[RTYRa\XZ^`VVWXZ`PZ]U^`YTZc\]S`Q\ZX^[PMRYZVbV^]^d\VgOWO\QXWT^]ZebXbYW_TULUVTZ[]ZUXX]Q\b[QagXQZQ\V[X[aZP`][S]]YTj]adcX^OYgUZ]ZXTb]YUXcbQk]dQNU^YSQ_QZM[WPT[UYbVeRV^eZZZSSS\XYWX\OfWYO^edY`]T^deZ`YU[Z[^]TXVYXX[U]Y[ZbU[Y]iPYMV^TYUW\ZZYV\Qb[[SRVQ]\VoWV\Z[VcVV[Z`\VZTX_VRNS_W\RWM\YXZ^Y^Re\`RPLZbVYXU]Y\_UXXW\^O]XiaWT``M]S]TXXS\W\]a\Y[QVM\a]`aRQYWRNRXYZRZXd[fdaVO^]X\TOYW`aU[cY^XYX^U`a^Wc\URYYRbRSaWVZSO]]`WZ`[TdYZZVbUPT[ag\PW[`X[W\\[Y\RlaS`c^^VFW_R\\T[\ZZOZlITYXZ[_aVPSdQcU][RW`SZZYW`URXab]S[]eXQZZXScQWVd_Ye[_RTYaUUUVUWY\gX^[]WZUMXXXdX[a^W[\V_X_X\X\i\Zf[W[PS_]]cV\RX`Ma\[N\U]XRU_WRZXYVWbU`YP\\WQWWYNXY]RU[VfZ_^[b^XV^WX[\VU[Z[XVUZYb\_ZXXT]UVX[`_d[XbZMWUXaZbUUVKXhY\e_ZY]\UaU^cXWTXWa_WTWV`\]W^RYYZW[X`VXT[WYRXYaRa]WY`TZTW[[\^YWY]]\USYVYYUVYd^UZk__QQR]QUZ\OX`fZX\SN]VP^\ZU`X[]_XR_^`T_ZSTfZOTWdWb]ZaWcW[T[]S]TRWVeVRTRScZRUX_Z]T[\XZ`aR^VfaV]baV_d`ZXW[UZZQcR[^SOZ_]\ZY[XT^QTYb\ZYX`SZbXRX_Y[SZVUeXZ[bdX^^UZQXXYY_VZf[TXVY[USXUUXSWZaNZm\SVXZUUWTZW\`Y[WX^Y_[^W[]^d^VU^XU`b]WW[SYfQ]RXUYZRRZT_V^c\c_X`[XdQ[V\XT^^Z^`^dUaWSZcT[bZdW[UYQ[ZUV_XZX][Mc^X_Z_U_W_b]RWaaZ_a[`ZY\TY\YXaZRYV]WW^[Yb`X]VX][VXUR_YRU[WUXYZ]\RXW_]hPcSU^^]XRX`^^^cXR^SZ]VW[WZ__RiPUZV[\UXVV[`bY]W^]X^_ZY[Q_U][[YYY^ZZZ[]ZWWbQMXSSVYYSXTXgZY\UX[_T\OQ^Z`VWMT[USV`_\bZ]QU`X^Z`YT]YSTZ\WUY]S\^`\_QYS^gXRO_SZWZ[TTW_TYaaVd_U_U`XZXI]`aV\S\ZOXSWZ]\Y[UZYZUUWUY\VdXbaePW`[Y\WVe^RgTT`V\U[U]W^WUTPXXY`ScPg^^N^SWTW]]^\YTcYZTd_[TZWT^aUT`]X^ZVU[^_`_TZ[Y^^SZZWWWZcVi[^[V_XXVVVVXYVVR\ZT\^]`fbaXW^YUYZXWWVXT[Y]X[W]U_]S_^[\`PR_V]UU_Z[XYX^YWY[V[^^VW]\OYVWVP\RYWU`^\YXVQP\VV]]QWd[\YR\YQ_NT_\U^YT]S_Z`RYY\ceVT^RZ\W_\R\N]R^YYRNZg\VU_PSW`^\ZXWR[YXX\b]Z]aZQZV[TeT^ZWT[VSS[_]]Q[ZUMXYO[QT[_bQ^[U[[aY`WY`X[Z]d^\[ZY]`V]e[WdV`\YW`Za]Z__XYV_WYYWa][e[^WXUh[O_Z^[YTR\RZVL\ZT^V^T]VbZ_g]\WVSVTZVNV_TUV[W]^YTWTTTe[_[aXWWbaWLW_U[Y[WSRVWUTVYXV`\MSSXOS]`RZQ\Y^NSW^SZVTTRfRH\YX\V`VW_UaXYW\WST^\[TRVYaZZ_``RUUZ]S_`EU[SXRdf[_Y_XcZNe^S\QaXVcT^bSIZY\WYSYVWS_cPMdUYbcYPaWT`\aVY[^__QQVV_SR[SW_YUNRY[UQ`aYVX\\Wa[N[WcXccQ`SUU_fXS]]dUQZe\ZVXSaR^Z\\cWOSh\b`^\]ZSX`_XYZbQ^aTUTYY\XTWZUQL\RMY_Z`WScTS`PT\RWc^cTaV^T]_VZbXYXN_ZU]RU[^UZSWZedUXc\XU\a^cYR[ZVSIUVcMZ^US]WSUTOM[^\fSPZ[^YO\VT]T_YQ]YYT[W_`Zf\RR^N`R\W\VVTXSYZV][WVVQcdZZTTW]XaS[YS^_hVU[[^Z\YWZYQTU[\^VWZRQT_RSb[La\_S[aSWY[SZWZW]bY^`RXTVX]]T[SaTZVYbQ^Y^\YTd`eUcVW^WYXZZZU\XXXYWY^YQQWX\]]ZYQX\U\\LX_SgU^WSS`SXSX^TZ\WX`[ZW\[^R\VV\ZSYYVYQ`W[WYZW]`VXZNUY[X[WbXSTNfaR[^YWa[_ZV^`ZTUVT[bSZSSW]UbVWa]T_XTST[Y[V_XPZYZW]aU^ZWVUZ\^YYV]]X[^T`[d_]RWYWTS_\VVTTUXRUXWY\[U\XX\^V_^Z]X^QVTaVU\\\ZaZ\VSYT[[[]SWVZQ[TR^V^V\YTU__ZZZTYZURaVUNZbVUZYZ[Z[ViW[WSVWc\`[dWbW_VZg[hOTUWQ_VTW\^^`S\WW_YZUWU\_]Q]NTgcP\aS_Z_bWZ_S^\\PTXdZYXT[[bYaYS`S\VXXk[XIPTQ\OX[WMYT]WX\SXUPOXZRZXRjZ_V]W^[Y`ZaTWd`ZN\^YTZTWY\ST^W[]a\UWWbSST]U]W]W]]\Y`aWWVWSSjfUTT\Z[]RTia\`[ZZWNcYW`T[_VbYR]^\PV[ZU\[cdTXXYa\YXaX`UfXbGd\f]_^^^[QbX]cXTWZ]WWVZeTZMZ[OTQbhZi`XZUU\\f[P_aW[Q`LZSZTX[ciV^SX`TWY_NX\SNVdY_VTfQYR[R\aU_XXRU`S_Waa[^_ad[TUY_T\PPSOWY]^XUTSXXYQQTQZVQZ[_[SU[ZYUTR]WZQ[YVUYRT_WPcebQ^U[eQa^SNWUZhXWZNXcSQb^\VYV[^UZ]hKZuWYTTkUS[XUTc]Z^UWVZRYV`^V\VRPW[P]TaXaRR[Y`VNUWZSp^YX_[Sf_T^]NX]Q]YVUTV^c`NVTV]MYXY[VXQS^UUeZWbX]RX[_WZZ[UTP^X\[[`]QVSZ_R`\Z[ULW`XP[_hO\UUUWTJYZ]Y^VVYW]X[YVYZXQYVYSVXVUaZ\Y\[R_QV[QR_OQQSR\^WTZU^Z`R_R[U`U[ZX_Z[O\QY[^WWTXaWW\X^cTeXJYUYT]UVL`PVOf[S]WXU^S]X[\`V\Y\XY\UUcNb][PTb\KmaUQ\WbR\WVY^X^SV[RS^_ZN^_\^[_WT\`PgZ`[O_`_IdR\aWVVSaSQ[ZU]WT`[b]SYVcZ]U\T]Z``UYV][]cVZcVb\\XJYW\OZVZ[YeS\_\_`\O\_]bTW`XT^c^g^RXU\`\WTVZVYbSLQXST\ZP^WSbaVZS\\SX[f]a[R[YY]_]]jYUc^LYcRV\[UU[ZYUYUZWVTVaa\W_]W[\[T^Z\QQVbYbSZ]ZSSWS`dbYR\YR]cU[`QaVPc]^i\[_kWbYaSUSb_TY\dbVJSUV]c\YaZX]T]a^WRW^f^^YZY^VQWUYX`Y`UWOYWW[PVZPTX_TWXaWV]]]PR_ZZdVWWUTYWXY\SSZ[``ZY_P^XbSXWPUT\TZT[bRXTU\UXX[YO[VZVl\WQSUaYS\YZThYX\UV`ZYVZQ`S[\V`X]YaXP`cRUSY_SU^]ZTZ_WTQWVa\R]\W^RPb`XTZfaUYPV]T[^XWV^Z_c\Q_ZUXU]][[YRXXYSXYYZUMZLaT\[Te_gUbiT]^MQdYX`]ZNZ[V]b]_Y`XPSPhXXWqUZ^ZYZ_XZQ\VS_VTQYVWQWZV[WV_VUY]Z`Z\Q[SVUZWSX`W^UcXMV]`WS\^N^]P^bZ]RZT__[\\^T\_[SSW]\Z]TWQXbcW]`]OVhZ^YZZZRYWQWSbY]Y`^`YX^W]\NM^XPZcY\SW_e`SSVZ^ZX]`eU[`T]f[O_RR\^Y`_R]WSU[XRW]R[_WYTS[Y^Y_]T][UYUmQZT_ZU]QVTO^`TYWhXYZXdU\\]U[VYZW^O\ZUoY^[XWVZfTV[bX`R[Y[^\eXeaaXVWSNZ\XYSWRXYPVYUcSTS]R\SZX_[^XV_^_TY\UY\`aSRS_[[We\[abSU_VWVWQcTR\T[c[\YY[\\cUVXU\RX_VScNb^mZ\VPSUZTXUSd_RX[Td]`VY`cYe[]__XQZ_\^`P^RYVYU]Y[_]alk^W\VTYY_XZZUfbYVVaZbb`sK\VYh^VR]\Z[X^SaYdbaSZS[Z_[[^XUYURZk`WkS[]TX[YZZM_[\V]X[N]dYSYW\TfdU^bXaWWRhXUYceYh^eS[_^V]]i^[dZZfbZS[[[WT\[\^\Y[[aeeS]YYdZYZ^R]PTVYWXSMRYe\\Y`RWdWQV^S_Za_aW]T\SXY\]e`S[gWQRbVVZ[^P\fWQaYW\UWUR]\\`ZUWgOZX[UZXeZWU_RSPUX^Z\ZY_\bVbXUPZZQ\TW]YY`_SSYXQZQ\Xi\Z[`aU[WdXWUZT^ag[\]P]^YV`RR]a`SgVXbZTW]`Vc^YU``[aWRfM]\\UVUQ^`[`ZPWaZUSZeZTkZ]]WY^VbXc[\O]Y\^_]]Z`T]MS[b[[NZY]N`Y_[[_VT]T[XZX`\[SaY\RS\]UYY`VT_WPgZfX\^`^U^ZaR^Q]V_ZWY[XaRbdUY`\c[^Y\YU[\\]SSTVWQUX[_jggO]VdYVaW\UTPZZUVTYRcX__RdX[bORPZ[YUW]W[`f]^X`[P[][YVSUN\ba^_ZXXYYWaa`WWbW[[_dXWR^]Q]WXYYXW^`\bZURV^V_f\X]USZ^Wg[\_fZc]^NRVXQd[^WZWWX`\T^cST^TaY`W[`X^aZ`OUYV\PWWQSVTZ`W^Oe_[VVSXV[Z\ZYZ]hUR\aaXOX_ZXYdZT\TVU[\YKUYXVVY]\XYeRRZYZUOT`U[[]SU[W_QNXWW\^SWVWY_UXQUSU\^]WVYQ[Zd[X^VWTd\[WWb\TbX\QRXfa]S[S_RS[Va^cR_[ZTT]Q\TYUV]\Z[]hP[[Z`TdNWVO\WLWZYTa_\VTS^P]VRW[\YX\edYZ\T\_afUTPcXSSYX_X\W[T[Z]_SZ\TQY]ReXb\\W\T\V[SYZZUXZTWaZQV[^ZP_V\VX[c[b^QIaF][VST[RVUZWTQS]nSZOXVaX\Y\^R]ZY^R][VXW^[XTLTYNP]]PbbV[cjYmTL_P_aXROYNYXX]g[ZXQcRT_aTTSL[VZ[TfMTRXZ\S]SW_UXN`]TlXd]RTZd^kbRV]QQZ[UMYXa_\XeV\FUbT\YVVYgSP_]ZN\OYZZXeWL[UX]\[ZXQ^WWQ[XYQdadYVW[KTcT\SZ]X\QMhacSR]PTX`^RVV`[`ZVd[^Ua_^U]V]WZ\_UYZbfWVS`ZXYY`NWbTXbZ[ZUUXUX[X][RTXhTaU\QU]^[LWaXT`VSaSWaV\dWVZ^\\a]^VYV_\W`]XUYZ[^Y\P\TU[VRHU\X[cSR`]VdRVVKaT`XYU^UZQ]XZ^VL\fX`\Ong]c]\Z^YoWfRZX^T_]bZUW^gfc`RVVZU^UOSY^^XbbV\VSTfZadP`_[][Y]PVT]WYWTJYY]`UXWYX`Q^YSeXP]VW_gVSM`SZ[RXOXoXUWaXiVe\S^[SZTUYUTQWX\YZW\Y[Y[ZfSg^bcO[]ShVW[Y\`Veag]\eQc^f[^^Oe_ZOa\]XSUUWkTX\XGZaPPiZ`V]R`VW]SOTSb]f[c\b_]a[WX[b]LYmX][ZR^[XZ\ZWSQ`Y]aU[\_ZWRdbXbZPHNgK_QYWYP]O[U^^T[aaZP]S]mTYW^VV\Q\^\aXUVYRHOk`VYYT\_Z^VX]]^[_cS]XU^UUYVSVaVW_d]V^agTcY]T]\[TUYOYU^P[[aVR[_OZUTUVX[\U_YV\\ShT`V\]\ZWWbZXc][VWXWa^V_`TY]]MhYXUY_[YXR^XUS\Ve`[UQW[^YWOQY]UZX]TZS[WL_TTbXVRNY[Zc]P[]Y\T[]VZQXOZ^V^VSUaT\X]V_U\V\Sd^W[YhVdXQa^\U[`aX`UWT[[X[U^Xf^\^YQVP^cTRS_dVX\[UkR\]XQ[^^SVT`XN\_]TaXbd^iTYUX_ZQ^TX\RSU^WWb^`\ZSZXVRY\W[\VWUSY[]`^\_TW]XWYYYVX_US`bZ[[^QcS[hWXPXdYeXXYY```V\X_Z_[Z[XU[eW\_R_\WaSTY`]^Z\ZVY\VUYa\[YgSVY_eVU\WWZ\X\XYXmTabS]XYVW]\[UU\W]UZbbV]][\V[\YQVW\b^]Z`U_ZWSW\WV\]QWZZYiY`aYX]lWhXXUX`T\TUUWbX_XXVU`_`PVYf\[VVVYVY`Y[VcnS][WZXQeWYW[VXYZaaX^VXa[YY[XYb[`[SYU]\[]W][]W[[X`T]V_U_VaQXZS[[Y]aZ[\RcTY`aTVUZZV_VdZVSYY^g^][UWT]S_\^XVW\`UZXW`UYYfV`X`NOUQ]ZbNT\TWQUV\TVS`[]U\\kaddV[VSMPcUZa^VWXVVOYh\VR\XSLYVbXSSVXRXZ[WYYY[UUUV[^Z^UTbcU\RXS[YXX]T]YVZ\[_bX[`SbNR`[\[XaWSVd`\VeTQZZdhXPV]\`[[XYU]][S[ZS\]T\UWWW^WX`U^Q_WY^YZYXY`cWV``W^_TTZ]\TT[VdZiXadYUVYb_VUY]__\]RbXUUT\^V`bWXVWgh_V_^^dVVWObXZ`XYTT_YW\URX`]Y]\a]Tc^VXaVecVWVZbW[YRS]W_a\bM][^`W^Zbb\XSY_YVZQ\V]g_SS[adUSV[MWUZZTZRZ]ZWaYjeUcNRG_VZ[TfR\`XPK^TXa][NZX[]S[XY^cSUUh]XQfLUSS[^ZQ`WV[Nf\^WSU_N[^X]UXX\Z]TZZ[]_fW[WYWUa[ZXXYV[[VaT]_aZX_VZVS]aUU\\XWX^g[V\X\[RYWWW]T_aabaSPWS^kaY]PXX^dQTZUT_WaSSZbWVTY^WXX]UZ\TZPTT`TXZ]Q_K]UcYfYZX`SQ\X[YZWVRbWT[\WSXY[QQXbUgYTS][W_XWVWSPV\YKdSQ`PX[U[^[bYa`bSUbQSeR`V_`lU^[WXYU]_W^^WPURYUIYY[SWXRVQWbXV^[VUS[^SZQWZ\T[P\VMXWQ\Y\[[W^W`[YgTRUU\jUZdW\\NcWO]WUXW^UXbQ_YMTc[PeUYT\_TTZZbWXWV^ZjY^`[W_Z\ZSP[YQYQ\XWWU]ZbRWY[][_XV[_V^o_T[]^WUb\WZW[W_`eY`W_aU]\df`afXMTWWaYc_\P^XcjVVYXeaYd_QW[YY[`WZ\X_^T\RUXYT]]X^^dWWUOk[^Y`c]TO[`YZcaLaS[fQV\QRU`RNc[Ya\VZWZ[QUVh^iVX\a]NST[_\VUY]Z^\Ub[bX]gXd`Zb[[UcXQ]V]^dc[WTISXUV\WXS`TXW_ZU[[[RY]UWR]SQMT\[aXcTX^\\WYVd^dT[RYYRY^PZZ]\X[cV]V]TT]SYX[\bZdWThZ\aY]]]Q]Y]WIZW\WgZ]XlfZYX]VaU_LaYOQYZaZ]_biYO\SOU[ZhX^_Wg`\[[\\XZ]]U`ZWUYX\PTa\^X`Xb]\cZ[T`^^b_[]MV`SiSV[kW[UTcbc[Y`ZPUYW]\aUWWWYVXW`T^W^YYZ\WV]WTX]YM[]WTZV[_WV[][RXSUNaW^Vc]YV]X[TXc^UWWY[Z`XcXXVWQT\aV]TXY^\\_YZXXYTTX]X]_WZYYT\^ZOZZ[qZ[]V[VPXY_YWWXZW\\RSYhXYbZ`XVTY_WWbXXV]T_SeRXgVYRSV_UZTaWW[[^Vd_ZXT\abT^]YUSVX\]SY_N]T\]YXh[bRb[WXZS[bVUR[YWX[^XVVXDV]]TXZ[ZZ\XVP]Y_`W\`[^aUXXXPXc]Q[XZ\dRUW\Y^XWV^T\a[VXRYaPUY^QU`W\XUX`X^\XR^VYPa[T]FcR[\SY\T]ZW]XY^SMZVW]Q_YX\aZWXWU]Z^^[\_aYUV`TXUU]_YVUUY[eW_Z`bU^XW^Y^ZWTYR`V_XTUQd]XWWZVX\Z]]WWYVW_T[YWaX`T]`WSSWcWUYO`S]T`\^\Z]W\W^[[[]^^^\]VaZ`YTZQWX\g]]V\\[X\SR^]XZQX[ZZ_V\^]V]U`RUXPVTZZ[YZY^\]T\XVUY]UXXZ\ZY[Tc\YU[ZXWTVa]^YSYWUTYZ`TZWYU]Y\U`R^U]VYT[Xd[]^Z]\UVTSV\Z\hX^]WU]XY[XUaUWVU\ZXTWV^\VTSXVb\__Yc\Z[[W`X\OY\W`UV`WUW`WZRcSV[[WT[\^XTW^XWWZ[^\ZXXWS[U^VR_Z`VZY^\UQWUT^``YZZ]]XZ]`Xa^WaVZa]U_WV[VZZYTZ[XU^X]U_ZXZVX_^]YYWTXU[XW\UX`[dZ[[^`Y\_Z_a\Y`]XZ\X[XU`dR`aW^U^a]^]TZaYT[W\U^Q\YVVP_^fU^bYRS[XRcW\VXUY[ZX\Z_VXS[P\]TWX]\UW[VY[\Wa\QUZ\_S[]][VRcYYN[`[i_VZ[TX\ZX[ZZ[Y^S\W]US^Z_^U`_XUZbZTWYW[UZTcZX]^W_V^[[[X\_WVYTVV_^Z`ec_QWe\dZY]SV]]\Z^QY`W]ZVbXU_ViVd`^\W]X`]\nSRb_P]VZZ`ZSQ[]_T`]\UXXW[Z`[\^PYU\^TU]Rd[[ZWVWWaVX^WZYY[TV`N]XUR_TTY_TUUWc`YX\Z]Z[^YVT`VVVXZN^WWYc`]WY]YS[Z^\V\\QVW]`WWVa_RZ^`S^Z^f[U_ca^ZW[[XTPQ^YV\UT_X^c\^XYSSY[TWUO`\VUVO\WbYaOTXV\]VWU\W]WV]\\Y_RSYWWZ[VXZ^QZYfTVQbT^`S]\U\]YY\[ZY[RbWO_S[d_f\YYY_ZbTUYbkX`WZXYbZb\[^^[XfVRX^bZVUP]]c[\a[\_h[`WX][RX\c^[VSVUZ\U]^_QXb]]ZXUZZa\U_\X]]d]UX]SW^TcVXXUQX`eVZTf[`aZXdVZUV[fTc]\R^VX^cZ\V^\`a\XOSWXWQX\PXbZ]aW`O\\Y[VXbXR\[Y\ZW[YVT[W]R]]`X\Yb`S[dWU^[_[_^YYXY\c]TYWY\aU[OS]WUl[ZYXY_X[WR_VRmf[Y\Z^bVU[aVZO[X`Ud`TXSZ]_]S[c]\[_ZV[[XS]\XZVXSVV[]V[RZP]TdZXVUS\[^OYUT[SZ[UUVYZY[]UQ^^]_Vf\ZSZaWX^cX[SQUYU[[YU[aV\XZVO]S\VWTUP\__OTh_Z_X`][^W_ZZ[b^UVVW\_aeSRMZZXUT]_[Z\cacW[X`b_\Sb^[_aOW[[R]^XSWOXYXSVa__Qa^VZRbUX[dYT\YXUUYSdWZY\XTURQ[_XZS\\[T`eUUXUT[Rc`W^YUZSSS[XV[^\\[[[XbZ_WT^Z[]QWTTUV\WVYV``UY\\c[]VZdX][PR_]UXZTWV\`ZYPOTWU]TZTTkY^WUSUW]^YPL]WP[eW\W^WQRUZ\XY[_ZfXeYVSW\Q\ZZ]SSUYXVYX`ZQ]dQZWSbTcUQVWe[`gV`YU\T]U[XT^YWc\\R[\[XYU[\LWNVRYRZTW_O`\ZLWW]J^Z_[Y^XTN]\_eXd]W[VW^VabOZXQ^Z]YTWbQMTY\YY_WUX][V_Y]TW`VZ]Xa[\XY]PX_\Y[V^bZ[YTa\Z]ZbQQ[\ZXj\[`e`X\_YWZNYRX[YYS\W_VWL]_XKVZ[X]ZTc[]\`RT\TYXPO]fU_`Yb]^QZ]XZe^XfYZTZ[RXZT`Y\b_QZS_WXN[VXUWSZPS^XTRSXYYRb[Q_[WK`XW]W\XWZWbY\P`b[[[[T_XRW^_Y[ZUY_YV\ZMW]_X\SX\]TYaZ^^\UUWYY\aRb^TZ[a[_X`SZW]_Z\R`Z_`Y\cZ_V]__^bU`[cYV\][UT]ZZ`WSXOW^[FLZ^T]JUTVXa^a\QagU[U^WWRYTSVg`]^RZVaT^_X[bYRZb`WU]ZObW__]ZbYYVYLY[SW_SZXWRZ_U[]V\Z]Z_^TYcT[`YZZ`]`_UZ]XUP^_bdU[ZTX`SaWR[_VXXcWYSTMZ_aX^`WSU`YScSU^XYbY]XUTWKYX\b[Q\[SV_g\UTP]TVbTZ`]aRQbbZd^YZ[T\Z_WYUYTTXWVVcP\UUcT_X\WTUXU^Z[XUZ`KWN\\UPZQ^[MZ\U`e[ggVVU]ZYV[`[__PUXX^_UUgb]_]UT]S\OW`W^]]\_XWWVWY[Z]bUTa\bYVWQ[TQUXVTXXUZRb\WZeW[TYfSUX\OS^\\WZ\XYUR[ZOeZUVUcVXV\a[eTXeZ[PT_TU]UXWNaVTY]XTdUXY[[[aQ]UUX\YUXVRV[RP^ZbUSb^P`^ZZUhYXS_cZSUW]R\`YYWTYUYaWUPVYV`b\YVY\UX^W^U\[VX\[eZYW\S\[VUQ\YSSX_e`VWTQSZ]`Y\WS\SUfXR[T\aVX\X\fW]S]^dR\WY\bY]U]UZYVV[YaWXYVT[kX[XUW][`[\XTRYZQ`Ze[VXSW\Z^SYX\S^UQUZT`YOZWY]V\QT[_WTUT[XcTS]S^[XX`Y]Y`YZSUROR]]XZ]S[]fgZVWX\WZbk]__bUSdR]YZV^\dcbVYUYXMaWYRTaVW]XVVTU\ZaUhXhaY_H\QNWadWWUQbYYV]VWP[YXVWVP^[[Pc^YYT_Wb\PT^UOQ`MWWi_ZSeYV]\Uc[_TTR^[XZWZX`W[T[XWVZVYY\\X^\U\`WSY_XU\UW^[^aXUSVXV\[WURXW\W\QdZYZcVgTUWM\[U[ZSYeVP`_ZW\XWW^^SUa]]ZNYZZ[UVjVX\UYR`e[_Y]TbeU[Pb[V\RYbVXcMUW`VWNX\ZTYVOTXRRZ^`ZX`Z[U]VWmXQSWTcW`XTXOVXQTYWVXWYVU\UVW^bR[T]XXY`YSWfOZXh_g[bVX\]\aUUU_\[ZZaZbVWa^^YUUf[Z][UYUb`YS_c^bN^M`b_\_XVSS^Za[\_[QZV[\UV`UT[V[WVYW^WP[TYXSTWZ`_T^X\WWT[SQc][VRV^caT[T_T`WXkVZ\^ObV`VZSeX]a`YR[][X[[_\Xd\maaVWZSPZV^[WV\egX`^SXcVi_YW_[YTQeUTRUSTXW[XTYW`XWSZWXfZ\X\\TSO[PWUYSWM[SafXWRcXUZVSU^\YZXlP\[VXdg\VV[[Y\\RWj`[XXUW[fSQRZWcLWY[RYTPS[^^YVQWS\_RRQbYa\YXXTmfTc\ZX^TY^[[TSabVa[S[[XW_FTgYF[aoJXXWXS`d^V`TZdYZVYQ_UX[cSXYYRObZcZ\^QSYZ^TTUUdWc`_MVY[_]JZSZ[`Q]PWZ][UhTVWcXfXWVj^V]\\TU_XXbKTZaTZcSZ_XUYJ\VSV_ZXcXXUaKbXYTRYZaXOiX[OZaYYW\WHY]LGeYXPjf]VTWY_WUhTXS[Z`ZW[_Yb^iWeXRYYaSVTPbXVdYhVVYX[q]VTeY[P`OUXQWm[VVTYR\QUi^QU\QZW}KYWVb`U]\jc\_PZbTW]QR]T^ZTdWU[YXPY[aa`\^X^f^W_WX^aZ[XbT_K\jXTUSYSYbTUX]^a^P]XV[RfcUa^c^RcXYem]\UYZ_PSf_TdLV`YZWX\aQS\[Y]^\UW_[S]YZYV_bbUZYV[]^aQ^V]]XZgaaS[\UTVQWZYcYYM]Z\fSRQW\YaU]T\WRWQS\YX\XWXc^UVZTMXU^[UY^]]Z`ZQXV^eTT[UXYcYYcYWcXYYTW]WXX\V^Zc]SONWaZgS[Q\RYZWW]YQXVTTXY[T^aNXcZ]\TYWO[_]]YX_XZY`hW\cUWdW^OYXhRYTbcZUXT\WVYXaVVZ\YWVePb\XT[[bXWQX`]XeXd\[P\TWTWUUTUXX\TX[[Y\UZUX\XX^T\XVZZ_T\[V\X[a]XV`b_T]_UaUcVdY\WaXT]_]\_RdWS`Zc_S_Zb[dQQ]W]Q\W[`Z\\\X\][Z^U]V`VMb[[_TVSW`XSXZR]ZPZ`V__a_P\S^W_`Y\\\QTWcZh^V]PQ^O\\W\_W[VbaS][U]X^d[[aWXaaURS[VVTUYRVZ_ZSbUcYXR_RV[XcXZVZT][^[RROY[WWcQOZ`TTZYT\XZfU`S^aYWb]S\\`ZVXhXV\[ZYSYY\]]]Z]]Q\ZWXdR\_SaVYZW[^cY[XXWUaU`b]QTZZ][^ZYSVRVTWS\TSaUZ^XbXPV^\RcUXSSW^UWQ_[b_[_]ZX[[USURe\ZX[Yd`\]WTSR\ZT\WZV\]W[VXUYTUQXQS[[T_^WOd[U[iWOYTYZYTXTWVU^Q^gSW]]`]Y\_dZZa[ObYH_XUa_aYe\YX_S_MS_XUaTV[V`aXX_kTXY_QY\][\[\_Z_VQaNV^c]dUgX`[bUYXXV[VVfW`^YMVcZXTWXWZRY[\TS\kZgRZ^]]XS`WYQViQ^]\Za]k]ZZ\^bZUVYY]dZY^]TZW]^TZ`\VRYUVWXXbWVZ^`Xf_[U[[_S[[UUZU^TbPZNa_S_f\U]Xbc[_\[[[Zdaf[Z_][XYUU\JOZ_VW]Vc`[TZQ__`XT]WMVYWe[URZXZZYWWYZ_R[^bX]YVRQUWo[d]\Q[cQ_V\X_R\^PWcQVd^i]M\Z\T\XVj\[_[Z[XZLVZ\YdUSZ`dX^\^XTZSPYUYTb[WWWWYY^U\YRd_SWR[VOYZW^^WbP]bQdY^cZR]\OTX]]TXRZTYaaXWTU[aW]Y\[YVXU^[\`h]Y\^]T^TQU`W`V`^NZWbXWSW^`T`bUYZcZYUUSS`QWVY]\YV[U\WP]^]V`R^WY]VVX[S\STWXaY_Y_P^Z[YY\XZW]^d]PVNZ[Y][^SMRXUZ\VYTV^Z\PcVVcNWfYVQ]\T\Ve\XObZ\VXcaUU^YeaT`RbYYZZ\TX_YWZRYKbX\[WTO[^\Y^]eUOZO\[`_S[XZeTW`Y^X]UW`TX]X\k^Z\VY^Z\_^U`RON^dZ\WVTSVX]WUVSa][TZ\VUS\TZZZdjXXXY\c`Y_`VQXUWTaa`V]`\XSZVXZY^d\X_VUTY_WW`VZU`W[YWTdRYU]n[VPTXchU[cT_\`ZZ]PXPSWaVV_QZ^VOUZVZR\Z\QbUXSS[QlX\TNVYX]VSVe\W\]Q_SdVbZ]RbS__MVaX^YW]VVUWSPSYU\TUSPY[dNh`WUVcWHR`]^_[ZUV\aX]Y[WWdU`\\`dOYXUY^QWUYb`[RTS`]aYbc^R[Z[W]ZUM^^RZVeZR\RV^RT^_b]_TYZX[^ZY[ZTXOW\bVP^RZe[VaXc][\TZWWe_TXWOU[T[X^W^`RdTYYYYYZUVYZa_S]aedRQQ^WWUWRX^^gWV_YZ[ZYTVYY^V[RU]_YaW\Z[S[XZ^R[TaRf[]WQZYa`_Sa\MX[MOTX\^ZYU\_[X]SUVUZU\X`[_`UY^XX[cXY\_YTOSOR[YU_Y_X]YYhV_\^\ZYV[ZS^[TUQd\VZQ]^[Z^[V^]_\\_XjY\WXVQYYZWZUXT\aZcZY\M[[_[VVVcZ]\Sg]XYZY[eb^SZcb]YW`_XVSZaXdSS[\U\YW_WWW]WXYUYVfSWZWPU^^WSY]XTb`[dY[ZYSYX_aWZ\_V`]UTc\SVXVYX_\VTRY[X^V]^`R`\bZ[SWXWZZTQeQZg]SZZYeWWWZWW_aYUMW]YaYV_V`WZXY^RZYZbZ[aZXP][[RT_V\T[W^\`SWjVa]YiUcU\Sa[ZY\XVb_YTb_UXb\UX[_S\W\d^b^_[[TaYYU[Z^U_WV^YZWXS]TW^U\\XW[UX]T^XV]XXb[ae`UXbWZ`]ebZMSXVN^O[dWXXWWZX[aY`S^_dYRXa^XR[d]]\ScVdoQSY[`dUbWdNaWKVZZXX`SVbSYV[WWY]a^WXR^Vi\VVV`SWTQ[^_UWX]Uia[YWS\[U\dWc]dXV\abX]\cORT_ZTVZV`^cc^X\XOY[WXUaS\Vd]V[YTS_^YVXT_[V^^ZW[YaYTT^T]\[VUY_X^\W`Wd`V[TVSZfbYZ`]W^UTZ[[W`N[_S[ZUZb_VbYiTTQ_]SU]YXWZVZ_UZW^WZZ]aXaZXY]XUXQ]W]XVY^R_W[\TW\[\ZUi[V]QZ[`XXWZYXYTe`cgPa]^R^UTLhP\WXS[XUd\Z]V_cbVXaX[X`WX\]Y[Y[[YVkYWX]kaV^NQV\_ZZ`\`bQ`cVcZ_ZRQ_ZYaXa_\bd[X]Y`_SbZ_^\]X^[a]^W]YVT`WV^R[\UZ[TTa[WVY`aTYlZ[\\\V[WXZYUQ]_TV^U]X_]XZ_S_OZ]]]YUSTa_]ZT]Y`VXVZ[\U^OY^WQ[Za]\WRX]NS[WVXV_YQWYZ_Z_[]Xg\Z[OZN]UU\^^]WVZ]RZSWW]YbWP[UXXPUYaWWX^aU\aWZYX[[XY\^^YfP]T[UZ_RXYYXW\XW\b[U\g`V]XOXUV[V[S\TZX^W^YUVV^cS\cX]M`XYZS^T\^XY`W[Wh_[eZW]b]YT[TXYXaZVRY`VVT[YT\ZYaTXX\PcZ^S_WWV\_[YbVU`W_eRdUXUZYYa_YXcT]WZSX\OUTVV[Wd]Sc]WWY[YaQVT\_TaTWZ]]VYWb][V^X\_\VU[SRb_UY[b[Z[^\ZU[[_bXYWU\K]^VRYXZW][X[ZXZ[VVUY`[VWUW\Y`[_\[TZVOXQZU[TRfea_WV_XX\^\[V\W^XWZRWtZWV]ZXVU]_SQXZU\YZbX][^\X[U[_j[PY^U]X[\aXcUYaSYT\bYlVSYW^]]XTY^[ZU\XYU\]T]]SXMiaW\Q[a]jXYT[ZgQWOY^U]RPcWTQ\WVQ]\V[`eVW\^WVVeb\`TWX[T`V\XKZZYW`U]^ZOW\YX]\`]]]UZVUS^d[SVcXb]V[[[aUXXY[WQUc[]Z\\W[_mUV[Z[XeSUYUY\ZVaU[]a^^QWQ]VXbaSTRYVTXWX`b]XU[]X\\`]YRW\WUOT_UYZ]VSVY][ZZ[^PWZ\\b_[W`V_[]_[WXYTUZXf_UZY^O`WWTY_\YXZYSYX]\\UPV[\a^VXU][ZbcZa\]^VXcWRbTfVX[UVX[Wa^UVZXZ[W\aZZ^a[QcXZ\Tb^]ZVV^Z^WUXaaWW``UaO^YbP]iXZV^][RgWX[^_hV[aU^U\T]TW]`ZVW]W_QPQe`d]Q_^X`S^SZaO^OX[\TcZcZZXQ`SWPV^dWZZWXNcWX[\VQUbU_UR[dX`UN_a^X[OY`_R_X^\aXUcSVZYWYTOdUYY`Z[V_XY_UY_VW]WadVWYYT\[X[W`^][]X\OT_ZZY^RZ^U[ZXVUYYbYYaVYOXhS_dXWTW[QadY`V[WO]VK\[]bWV^dWWXVP`UhW_fY\[PZ[\Wa\\^Z_V`UXU]]]SZPfWWa]\LS[SaQ\X[PSZaUSaRY\YLab][VRYYTf_`U]RUX[^PUWWY_TOXSU]WV``MXTbWYWNRcWP[UdQXY[]ZO\\PQZV^\QYT\aXU[]WkTSZa]XQW\Zf_W]]SYVhYXOU^YXUW_WYYV[^aLZUXXaMc\SVgM_XMWVY`YYU\U]W`^^^P\[_`cdRbTWWRaYUYRd[``\_[[TQV\^c]ZZ`^aRYVTUY\TTS\XPQQTXT^`RhWbV\Z_cY^TSdbT`[cR[R^YYaVYQYsQ^X]Y[]^UVY]V^S\XY\STWWVV]Z\e`_RQXRhWY[TSWVX\^OW^T`agR]_ZWYcXYaKZZS^W`YWW]TX\YdWV]N[UVYW`Z]VVeS^PRU[[ZZ`XUX`WSW\dbSMY\SZYZ[SM_WY[X\[R[Z]RT`ZX\[`[^XZX^W]TXUdZ\`U\ZTW\T\Zb[Z]ZYZ^W]Ua\W^T[SZWXaXc\P[Y[edUY`_Z[WdM]N[UT[[Ya[SR\]SRS\\]ZaWV\ZV`RR]X]XY[USQ[Z__[VUUcV\O`b[RYX^]TVWWTZ]\VN[Z]Q[`ZPY_[U]ZTY`VRVW_c[QS\Z]WY]XYV_]RWYXX]_\QW[MXWVSWY[YWS`MXZ[RYYTOTVUtZYUVS\TXXZPV[[ST``XRc`QTZRVWTY]XVNaIS]XXXTY]_a^ZYbK]_YY]WdS^SXTVYVXV\Za[Y[Q[U_RXVZZNZ`VX^XTWaYW\YS[^^PWbKRUUX[\QTYXWY[O`\NX[Y^T`Y]Y[`TZ[XPc_\YXTXXaYWT__^U_YZ\WWUWYYVUSZYWXWO\bW]YaWYaZPWYQ[\W[OUZT^]WY]bV\UU[ZX[RQXO[VUZYkZXbV[^Y]`aS[[\_ZOfPhd[X^XTW^PVhdVUTUWcZb\V^R[ZTWcWXgX[V_UR_]V[[TX[Y\Q\Zad]TYR`QQS_\Z\]SUZ\a]aYWY[XUQUXOgRWR]bW`U]^a^^aVP\eW[QQaVWOZaV^WQ[[IRbZ\]\ZSUQS`O[dZWRY^XWc[_[SdaUOeXT[VQ[^[S`R_[VTYPTS^^VN[W\]Wa\^][eW_Z^Y\TWbZVXUdX[UYZTWSXaUXY\]XYY`Y_Ta]\YYRQbY[]\TT_^\V[W\XXXUXZ[aWWWZ\ZRXX]Y_^X\]T^Vd_dR\VY]aWW^U^TS^YZdTTUWXU\UVRTUWWa[Y[^\[U\\XOZX\Y^UOS`[Phf_]\]`SO\W[]V`TN^WV^dZX[ZWWX[adZXRWU\bY]][_W`X[]bd\XZhZ_S_`^ZT[\Y^Tb[]RY`US]^WUWVYY^_YZVRUU[ZTVUWYUVZVfKZ_^XVWY\W[ZOVXV_]^][ZWSXUW[aUXZ[bY`Uf[WX\YZ^TYRSWUaW\XXYV^U\UUTSU`RZXYVZW]VZXOZ_^XZ\[R_Z[X[[RRYX`SS[Z^W^bWT\Y^`aZb^XUYWaPV[RYYX\OT`bX\[VSW_^]YYZX^Xi^]`VS]`][Z^^U]VVZ^X[_X\^W\[aX]_Ug[WSc]S[VhL^UY^WX_NPTYZ[_^^PUYZ_gTXUX]SZa[]X[ZTW]ZW^TUUZ]\^SN\\W]`WaTZa_WYXUY^VXXV]TXX\[][WTWZ^TXX[W_WUaU^\]Z][cYZZTVXYSYU`X\_\Oc[Y`YW\Y\TZYZ[^\^Z^\VcQ[\QXVWXZ`WW\ad]b\UMZU[YZTWWZXaZ\ZS\eMW[X`WST^WWb[ZX[^[ZXZ]ZV_aYNXP\^`fQ]WcWW[`WXYYRMSZZXa]T_b[UZ[WSY]aUWc[bU[a^U[aX_Y]cY\^]YZWWWVVbY\Y\ZVVXW[YVVZSX^U``^\^][WUW_X[ZT_P`\bUY]^V]WUOYSS]U_hW[YWZ_YTTWYcKXT[[Z[WSXVURXTc[YWa[RbV]XfYXUaZ]T_`Zd[_ZVXU\_Y^ZUnW[Zg`[XU\XYb[b^XYU]MZ_cdW`Y[_bV][[_\cR^_VPXcYT]VXYWVZ]jXZQWaZV\X[YWkVZ_]VSXPU_XXSa^\ZR``]U\Y\TURT[^OSU_Uk\ZRRW_`WWY\TPZVY^aVa_SWYU_]RXUY\]S^V[Z_RVY_VaS\^Qa[a^ZUm^VNT`ZUW\X[\U[]\UU]b`YUV\RdNY^_Y`]YTWWTUadYU\\\Z\\Xdb_cV`W\ZRTTS^S]^X`QUVYSZg]h\YU^SURY`VZ]]WV[]SUT_Y_\Y`[[]]Y\cfYZW`QSYXYT[S]XKf`V]NbOVc\UcafUb][V`J^V[aVU\OTYcYZTY_V]WTS]V^XX\aYXWU\Q[^U^UaW]SfZY][X^d_dV^\bNX[WUYMc^[aYY\YbXZZ_^W`^YZUb[_\[]\V[XXYbXVY\[^Y^[U`VY_ZX\WXd^ZlYUX\TXY`Xb`U_]]^XXXXZUUSX[^T]^U^W\dTVZZ_o\WYTWX[ZPWYSXZdY\UTUO^]`Z^SW\Y_[U\X\bOTUX\S^Q\VP^T_]][]WS[Y_U]ZTTXZUX^W`T\^RPV\aYY\XUR[\Z\ZZXU\c\ZOYge``dWZPY[VQ_TaUc_Vha^V^Y`\NTWWa]X^W]e[UU_`^\`TYaT\TZPZX]^`R^^[]U[]XgU_dR\TVZb\X^XSaYZU]RZU\U^]b^[W^[`V`V`OaeMXUYWTaYZVO[YWZ_gZ^YPZYiUU\\^]W`^UW_\VR^^UYPXVTQ[i_XbXXQPRXcNXUaRYZZXUYH[ZR\R]a[Z_YLS[_T_\WWcfY^^VcTO\YcXY\dXOS``WUVYV][S[^U[h[^ZUPY\^ObXS\_MaL\YTZ[d]\WU]RS\\\ZY^ZZZ`Z_\Z^YR\]ZdSV[YVXUUYYZc]V\`PSM]ab]TWWVTbXh]QSZWVcZSR[^^WR_YU_YUSUZf[QR[\\VNUUR\VX^ZYT\`bX]_Z[\WZaYVUO_TVVYVWYZ\UT^NVW\UTQ_QUP_ZUVX\T]_[UUYUZ]mW[V\]_U]R_\_X\V]XY^TU]XW_TY[SeGXUXRYWYT_S[U\TZWS]ad\[WZ^OYYaY]XS\P]]ZQW\W\WYZaTdWaXcS^XaNZ\bYZaUON`T\VZXX^cVcZWbZZV_TZ[TZVeTS]\^]WXY__^T\UWY\STYUZ[SbVTV]ZU^_bbZSWT]RUS[X\d[PZTVTZWdUSSVlZWVN_]W^Y^T\[XU^`iWT[W^Y`Ya\]`Y^\`R]S^ZY`SWXXX`W[e_\Q\V^SZgVZ_Z^LXUaY]^\U^YQZWYXUYV^OUUdQ[\WVX[OYXZXUY_ZW\TZM]ZZbVXT]^\SXXVUXb_[SXQSbUNTbb`\V\]RURaZYX\SXi[Y_TRVRZXXVV\UVZ\_ZYOWZ^X[[XY]gWU_[cX^]`\SWXPW[SUVT`UZXYYXW_RVRWVX\[^TcfYTW`WZZT\P]Z_^[X]VTUZZWX_X\]Y^ZQbSWScSVX`Y[R]^^\^ZX][^]XYW[W][WV^[UY\S_URZT[^U``W\VVY]W^TTV[ZP_W[UaY\_b[[XX_NbT[VcV_ScWbXhUWU[UWXR[]O\\ZU`YZWUSRcXUUWZaVVXMTXS\RZOXUTaU^V^k\YZVUZS`T[S^W\_XdYZZ\]`U]jPX]U[VNVRa[V]XZ\NVSWZ`\UTVY\V[XXYYa__UU`_[`Z`fX\bX]YW[[VVQY^[]VZ[]Z`T[]\[SVY[ZZYZ`XSVRZTaX\\UVb\gZ^X\W\S][NbVS\T^_USUXW[XWXV[Y_TZa^[^Ub_X]TaaVTdVVSWVXWXY\\dZYdT^gZUX[Y^]W`PZ\Y_PZ`YWcWUkZXW`TXjZcVaT]Ta[UYYU_PVMY`jYaWTRIWX_\WUX`a]TWZWUQZZY_^X^VYWU_b[P`_ZUVY^[\T\U^X_UXT_SXbZ\^Q`S^e\Z[c[SVXUZTTbWaUY]]V^XPWW]`YPXW\X][[]M]R]UO_WbeR\lWTP[W^ZVW[QU[VYXWVS\cSVV\U][`ZSX[VZX\b]^SYab[YX^Y[[bR`T^XU[VX\chVfWRXXVYYVQa[b]T]PZXWUU[ZScWY_[YQ]UZY[RPNVXTVbXWeT\SVYWYOcVU\WY_RUS_]^\`\XTTZZZVXZSaW[`VXZR`Y\_Sa^Z^YP\Yb\eX^[WSZZXVZZYcQQW\^\U_bTbWb[XU\\P]X\W[[_]JVVSfU]fbXVY_Y[R`YZZ`VUTf\TP[X`__]T^_k\WNWaW[Z\^J]X]W^UXUW[VPYcUWW^XN`XX^^VQ\\aZ^[UUWXP^USZT`T^PZ[T[]XabZ[RWV^V_RYP]TY`]X^\VQ_^]TQXRdY`WRXTUTY_Z^^^\S`UXRU[ZjW^R\X][^TV[T[`QVeZ\Y[UT[SQVZaZ]TeWXYXX]^V]XYRVQVWWV[QY\USXW]^eWZ`WUWU``h`XWX]\Tc`cST^[XT[VUg\[RTURSTZT[TY\gYQZ^e`RXYWVRYXX]TT]`SWaUV\`]UWd\[W][RUW_XUYZWRXXfX[X`WUb\TZ[XUQdYaVR`Q[WV^]VQ`bU\_[hZXa]X[N`RTe]QVWY^WbZVTV]\Y`VO[YZWa^\SVZ\WVUZ[XVXWW]YbYZ[TZa\ZXZRQ_YVVZZY^]QZ\[Y]ZZ]`YV`[Vd[XWX\ZO`ZXXXa\c]UWT\SVZWYYbTYP[\^]TaPWYUW]]YZXXT][MccYjW[Z\VS_^XSPZYUN^`_XRVXV_^WWPVRbYTS_cWV`ZXTNSbS`^XaVZ_PVWQU^`[YUU\XeZY\Zc_`[TXW]UZd]Z]UY]U_W^VV\M^XSU]cU\VYf`X\`UVZ`YWYV[ZXYXSYbZ\`ZcZ\Y[UeSYWVWZ`VVW[\XUV[^bd`T]YZ[]^_c[WZY`WZZZhUOYYYSS`[[^WT[dS\blW[WV]J]aR[^db[hR_UUaSXe\[RXX\PY]SaYUWZSXaUfUX^WSXUVTQ[YT\VXOV^aYUVYYWa[Q\[NZVQ]X\Wk[]ZgVPSSVVg]Z\RTZRccQ[V^]WUT]XUZe^UY[_ZW\RbT]_WaS]XUWf^V[[d]XWT_eX^SY[X[W]bYW[SWY[VZO_ZYWVWW[XT]^UWWX\TVYYVZW[[VSZWXWZ]^_Y[[VVbVXX[d_XWVU\^\Z[^V^Ud]_]ZZ[\R`_[V_XL\`V^ZYT\X[S\\\X`X^Z``TWYX[XHbV`YYZa`Xa[X\ZX]_\Z^W^QY][[VZ\a]ZX]PZ`]ZV[\cU]_]bV[ZXTXWY]SV_`_ZUYLUVZUWbeZYZYZ`YZYZTXYRTZ^XWRWXaQ\UW\bbZVgT^Y[cVV\X_We_WWO]M_T\_T[ZcWaV`YWZNZZ^T]`bUcYVR``aP]UX[VZSXWN]^ZWWV\R\X[XXXWSPabYZWUfWYeY[b\]cQXW_UWZ[YV[S\V[_Z[[XP\`Zd\Y[^US[Z]TY[[YWVXY^UXUX^VZZO_\UY[XR[[VXVX[\UUY\WXQY\XRXTQVQK^VV]XMaRYYSVQXRSTUXUTN`XXTW^ZXRdUWOVXUZYS^]]Q\NWTYcSYW[^\\ZT^\WXSZa\UWUNRSZQ^T_TXO]UY\^YTUM`RVU_]UPWPV[P\\ZVY\SZW^NTV^WTSWJWXWTTP]ZTQZSVVXXOXTTbXZZUXVXQZX]VXWVUbVX^`[HYTMUaVY][TX]YYX_TW^U\ROWZX[VXTXc]ZaRXNR_WXN_RXcReWOZOX_YXLMQWU[\\UVPVTP[WYPXMSG\[S[OV]ZU`UQ``\UUW]Q[PYYQQRSTdOYY_ZNQVVY_aXSYTX[dVU[YQVdU_RUVY\UUWd\_]P[ZX[UTQYOX_WS_W_TZPXN]VX`V^`T]YXMX[_YVcTOPMUQSY_^cK[YUNcUU\XSZXOeWW[]\ZV]TT_ZU[[TTZRXJSaTU_X_aOX\QWT_ZW\ZYhSQ]XWRY_V]VNT]^QQSUWhTbPS[^SV_`UYVYafU]Za[VR[[dSSW]d^ZYNY^]QRV\gW]ZW]UYSXSVTU_b^UP^]_USXNPTOZN[caV[\YVZ^h`]`ZUWV^VUQ[I``SWWViXVTU]ZUc^SYY\XRUN_TZYU``SZiXUYW_gZ^^SaYXZNW\XV`]]YN\YW]YTUP\\RR\X\\`SbTR^\LdUO`UWUURUSXS]YWY[]XWT\WTeX_Ve_[U\ZY`^cUWT[OZUQOYUZfdV\]J[SZ[ZZXYQ[U]YSWQRaSXR[UYXR^a`YSc^]TY\^_]UVZW^UP`TQUTQXZTSiWY[f]UTQZ]\ZiY\W_[VUeZ]W_R^W[_U]XU[W\UV_e]RW[ZR]fYVYOO`RXRZ]``[ZS][]XXZY[TVb\ZVVT`VXeTXbcWZYUZY_\[eOW\_ZU\OVXTTYV^XXTOYgU\_ScXYYWV]^VUYR_S`VXZVW`STUUTUQ`hVN[^^XZa[QZ_`a__c_XVOLhUe_XS[YOU`^Ze_ZUUUd_^Q[QcXhb\TYVSR[R\YYZXX`QX\[a_[YZ[gUI[\Z\[ZTQbZS`ZZ\_ST`]ZS_YRVW[XWXaXR^Z[]cZV]ZYZ_Q\aOe]VU^WX\[Z_aZU]OVWT[d_[[[XcU[WTVWX\V^U__`YX_\Y`R_c\e\\\YZWV]\[aXSVWX[\TfbXWXVZ`WJ\^YVXU^TU\ZcXZYS^XUUbb[YUZWXVRgZb\VPYUXVcXRXWYZV^VaXaR`dVQSbLYTXUXaX]T]UaUiZQYYWQRZSaW]]WX[^ZQ\[mZYVW\\VY\S^^ST`^QZSZWZXdUPQZ]SXR[VY]ZOW^fZcV[d\Ta]Z[V^[UXU[RUXV]VXSXWb`bPV\X\XXRUYS^b]XXXWTWQ[Y^dWZOSSRhYYXVcWURS]^\RNO_VUS^]X[_PPZSYQVV`P[SYS]jUY_RX__[\U\]cTV[Z[\]WXXS\^Y_WUMQ\_Y[lYZTb]YYV^XRdS][W[SXTRT_WU^L_W\Z\NX[YN_YfRY\UT_TSUXU\`Q`U\]U]Xb[WRUXYW\\`Y]]`_dSSU[YSU^UaZ[YRR^W__YVTYXX]\]SY`UYVY^X^_V[f]YX\UVT^_\WS[bagWY_[^[MRPW^V]_SW\TYbX]U\lY_W]Uf]bXTP^^iNTaRX\]XZcXU]Q[LYReW_g[X_a_ZS\NXVUWVZd^]T^VVXZZ\R[WY[R^XUYXWR][PTVa`YRWZ^ZdSU^_W_aeUV]i`YX`ac[^dYZZZVX`]UZ^WVVUUVR\]TbWQVQWVZS]X[XX^_QYTZ\WT]PiWVZ^VSWSVZ[P]NVb\X_Q]QT`SUU_[[a[RaTV`Y^O_USRTP\^R_XU_Kc]X[]T_eRX\c\p\Q]P[WXZ\edTRWVZXaV_[b_`S[XSaUQTcX]XZWVbX^]WXY^WW[cVZWW[QXY`\O[^WWYRbWf[QVRd`c`S]URQ`QXQ[VVY[YQRX[Y]QYhZ[^\dWYQTXV`_bVYY]`RaQ\XR^[SaUXc_\gTYdZYZbbTSXdV^\P[`ZTaY_YWV]WT[eWZX^bTVT[X`\TeaYXVRUW[XTS_RV[a^S_\Y\Z]^XhWVaX\]RX_aW]WaRb^[\_[[YUTWSWT]gU^RYTXXXUTTUY^\_Q\beWpYN[^[WLXPd^WMZYS`\_[[WZZQVY_SRZ\WT[\hWZ[\\RZYL^Od\V^_ZZZUUZ`_ZZ]Yeda]W\aWMP`RQUVX^[Y\aYT`UZZYR[`Zc]`XZU]bYUT[Z]K\a^_^^\Z`OXV[RTTUYYS]\\UX][PSVXVY[ZY]WMWX\^OTWeZ_V]WXd\[bZf]^RYOSl[\b\TbbV]Z]X``UcZZYXYe]_[_\WkYTR]\V][c\WYUP[WUUUT`_TW\[X^bZL[eYd_QV]SW_dM\_^]cS^WZZX`[WXYb^VUTWTaZUaWU]W]^c`ZVVbQ^XW[\^Uba]YTVSUXXZ]dV\\[][YYbXVUVP[\`VV]bUWTYa\X[XXZ\]R[XZPc`]OWVZcYZZa[aXe_`YWo[_[\bWUPYVX\_]`V[]\\]^WW]T_^RTW^_YT[TWZSc__QR]TU_RWTXUXZeZeW[W_X^]]_Td]VTU^TZUYW[U^[WX_ZYYV[VX\[WYWe^e[aZSYYXW^Y^V`[Z\RTTWT\W[^TWZT_a^WY`^[Z`Z^WY^V`h_YU\TS\XXWTXZS\STTZcSZ[`cS_X]YYVWRSTZ[]V[WV]VcaaQZWXaR]R]Z\YVYVYa\^V[Y^YXb^ZXY\]X[ZYXYU_SXXW]XaV_RcY_TV^dW[VVW`WQSUYSYWaYb]T[YT[RTYVZRW]VZaR[_XRWaaVS]Y[`QV\Y^[Sc]UT[Tk^dcYZRWZ]\WaSWeZT]XVTe_SRX[OWa]`XTcn\V]W_UWWX]Y`Rb\VaVZZUZfdV\V[RbX\U`UaZlac[Y\TUMZ_W^\^XLSSX[Z^[_VURVU\WSWZU\\eUUSZ[arZVTZX\VZX]YW[TX`d\TUQXZYWVRfQ]\`S]WYS^Q\^US`TbSZgc[\PeWUXXVZdZUWZY[[VNUY\[][XUPUSVW[RTUbX^T]UWOQUQjYQZ\[eoaY]XXWjl\]``a[WW\aWWXPX\_X^VQ[V[^KaY[_QXZcc[^W[]RZZ`\bYWRYVVVaPT^ZXX\UVTZTXZX\SeVY^^[X[V_]Ucb\XZY[YSSTadR[VUZUYU`\WdTZ^d]^[_ddeWScNXV\^]XT[\TZYUU[`Q^RWYWTW\VYQ`[VURSV^TTZ\XZ_\UVT\USVN]WbYZb^ZWY[[SUaYI]\ZTTXQ^URWac]WWYYW]^WUPiU\UYeVVXSO\Z[YUT_Vb`]QY[ZVY]STaXS^gWWWS\\XX^V[V[^WOYSd^V^TZY\W^_W\c]U\T[V_`]j\\W_U\X[SU\ZVVWXTX`]W^[RaQ\Z\]U\igUQ`SYVVT_XkYTWUY[X\_ZRVVYUPX_\WXVZ\\TUYZaV[g[_a_\QW]QY_]ZaZV\VU[cS[TQ\XY]Rj_V_VV_Z\eU\UZTYeZU\YXaY^[W___Y[bTNNYQVY_SQY]cZ]VYS_d[T\[bY\YX[_TTZV\WU^RW^U]`TWUV]U\TY]^YcaYgOGTS]]cXU^adYY\QXX]\SPcT_ZYWUb^ZZVQ_RY`a_^VXXNUWaYVbbVV]ZYOXQ]bacV]ZLUJUYYUR][[]X^YWV_\]_\[Q\OVWV[YPTSU^X]YUdVT[XnXO^SPd_cjEQQ^\^WY`_`\Z_XU]LV^X][VdUS_XU\[]KZU]ZV_QeWg\USWW[UfbTcVTRUXVbVSYR]T]VT`RX\ZOa[ZV_R\M[]WXS_U^^VZP`LeZaR\VVW][Y`YVYTVXYZWVYS^WS_dV]f\TOi]_TVT]WOZY]SY^_NU[Uc\Z\Oca`eV\]NS\b``R[faVX]XSSYX_]^ZZ\WY`Ub_Z\]RWX]UTU[PfZYYSUgaVZ\`[]V[ORZVYT\SUWTUZVR[Y]`bbgPRXWYe[YO`XP]`cU]WTc^[^XVWS]U]YW\ZYX^Nd_X[UYabU`^UVUUSe^\Z`XaWTWXWeX^Rc\YXWTXXRYW^PWjZ[[Z]k`TRZZf^ZYR[WXcXU^cUUXWXZ`XQYZ__[bfWTVSZSXZUVTYeSXRXYW[\\\VZ[VX]UaYYLVWXQYXbWVSNTWWYZPS\Yf\_VRZbWZZYSY`Y_XQ\Wa[cZZTbSUY[\\XUS_S^[WZVVW`\\]\Y\`gXL]YXTUPWXaRT^XTW\W]PRYT`[WXVWaWZ^U\a`RY_Yi^YaW_QZ[T\XVUW\X^]UPcgZV]]ZYVV_UYX_Z]QQ[aYSQZRVZXcXeT\[b\`U^SWbSXR\OeRS_VQX[aaaX]^Z\[UVXRTY_\RTTRZ\T^]`\gcWS[c_hVXX`S[[WWSVU[bZUUSV]TbQTRV[T`RWXYSeX_L[W]_\^TX\\QRPWZcQZS[cRPbRWWYPVQ[]SQYYZ\`_XwYVXN\O_R]QSX_^[WV\cWT_U[XUaUReTTYSQZcWZbYcZ]XY[`Z\[YYPWbP_U^cYXTm[UZQIQV]ZTlXWVV\X]XZSRSQY_U^U[_^ScSYQY_X\Pe[Z\X[WMV\X]YNYRWUNcc[iTYQ]^eSbWPSTWe^UN][da[`cY[T\Va[XU]\b\ULY[VRWbTYYROV^jW_]YUR[dVTSTX^VYOXV^UZY\TW^TXdZZVW^`RaO[]T__VP^ZYRVWP_]RWa^N[gZX[d[RSaVV`T`Z\N[XS[beUT\Z[V\]c\_`bTOR_ZVcW_\]U[^ORWWtUR`a\gUZXZ^b[[T]\YVaVU]\U^UZYTe\ZVd`R[VXVaUXS]\^[^NXVXff]TcSVW[`XXTYZY]WLZZYW\TVS[WWV^VWZ\UY[Y_UdUPRZ[YW[YQ_YTWWhX\UWWVg^UVX[\]\[XcaYRVbQ]SYlTWS[V_RURYUV[P_]iY\[aSXZa_[\Na]ZS]QYW[R^_]TZZ^SW\R^XTg[^eSa[WaPSYdOVX_cSQ\YZSSdXXX_a[_^[Z`N[UZRR_UYSZTOY]YU\^]]LZ\_]d[YRL_UVVPMe`jbUS[VXZUVVT`NXLZ[WV^[T]XS^UcTS[VV]X^ZY\TX]PXO]PUUZ_VUg`VUgW^XU\^ZeUb[ZSWNYZZR\VXW^WYP[U[[`^[`Z]\[XXWTQ]]bYQT][XZZhV^]WYXWRQWZTZUa]]ZXdUVUV[^_WYT`W`a^S_TOYWW^Sb[X[[bWgT[ZYY]X^Z_\WZ_bXYOXXWd^XTeVUfXWVOZV[`TNVXYY[_XS[_baZYWXXSVZR^V`_UYca\UQZc]i`\]XVTXX[]^XVY^cPSXaTZU[^_\\Z[V\UT\`UU\dVYbUaVTW]T^Y[ZcRTZ[TV`YQRW\WbbUe\YiX_Z\\Tb\eS[]`L]Y]]]Z`XS[cR_^Z_`Y_UZ[U\ZQ[ZYZUaV[YZ[^X`^\WNX[][Y]`V]b[YT[V][_[UY[YNWUZWf]Z[WXZXUYY\[WVXZQ_KhOW_]fb[geQU^UX\V`ZXU\^WaU^[gXRa[\WWWX_[YYSS]UW\]_]aeVbUY]U\ZUX[X_cTc[ZfWSZcX\[_^Q\RT^YXZ]_UW\^[UQXY]SX`KcWZVXVZN\TaOXd^QSY\Y_YQbX`US[YR_ebZ\g^\`Zc]VU]\X^R^WbTZT_o\_XR\[LXU^XYb^X\MS]WRWScf\RYTX_\T_\ebXY]YUTX[X_\^[Z\^\fOQcW[T_^WYbe\^Z]VaVZ\^XSQ]R^NUa^UVSXc__d^WYTZVTZW`\_UFeWZ`WXZ[QUXRMUP\XQ`]][\WTU^UW\_]Y]WZ^eQfYVN^W]YVZSZWd[X_^PXZc`V^\VYUTWIXUMf]bbVgUZfUkYSS[ZTVTXb[ZWhTUaU_OM\U_V\`V]SNUY[`^WYQ_Zdb\YSSbSX\RZZU[Z^^Z`S_ULdQ[XW_RY_U^TXY[caPWW_VWVWXYWV]J[^UdP\SOWTPU]LYX]SWYUSOba]\VceUS[ZS\\Wa[\acW_WScRWd]_e\WU`X_Za_Pb\]NNYUX[bS\^X]S`NPdcKWZ_^aVXH\ZWVUPfRX\hT_ZTV]TNZJkaUMVYOR[]T^TY\S[d^W]Phi`^]\jXXV_]MMi\]WWa`UUPfT[iZ\T`fKa^[]ZZVQ[Z^P^G\`RRcWTPm[L[PRW`PU\OQZV]f__WQ][ULSOS]PXX]RWVVSW[\VW_N[MY`I`RZXXcKaZO[QaPWXURmUV[\bUU?XQUS][L`aY\jWVRUKNYRYOfOZZWVYIY]cgaSPTU[U]Y\bPZRSVacUM]Qb]`RbYR]OgPUVVU`^ab\hU_T[l[V_bVX\PY`KZQ]]Zb]\dPXKY_[WRZSi[fQW\SjbQPW^[_b\aUP[UdZ\h]dX`]VSZY[aUcP`ZVZ\T[i^ZUR^[[UUWUTU]\_WXXaaXWaM]YbXbXWTX\WVUU\SU\^TZb^XXPcRR[R_]Z_ZRX`Y\V^]T[ca_[XR[Tb]VfcVX[W^U^[bS_\[T[VXZ\ZPYWlVNW[Y^[SVaWZSgZV[\^b^eV`ZUXZZXWe_aPYX^XU^Z^Q]\_`]PY[YY__Y[]`_d`XXXbY\[`][^eW\YQcSeXS]ZXXd\YYZTaYVW`cQSTW^YdZW\UXZYb\T^\PZYRN]U[YZhR[]T\[\XTUhQX[XZZOY[a\QlRVY\RbPPURWbbbUSLiY\U^^][V[YTRZYZ]^\]cdT\UYV[\`ZR\PZRULXZUa\MU]XUZ\Y\YX^cVa`fXV_b^WWb[T\T__U_fZNTYa[TWVZQVXXdZ]dfg\aYU_W[T_UZdR^`Y\R^YRYVV`aZXeZZUYYT\[X[YXRb\VY[dPR]RU[YW\]VOdZURSOZU_cfWYU]f\SWYa[XSQ]_\YYROdXZ[VU]ZRe]WV\aQKcZV[cnnSV_`aYcT]XZPYVUYW[SY_[SXY^WUT^[W`Y[`Q\U\ZYcXWXW]V[OVTYg\R^]Z]Z]U]_^[aWV[Q]_`_\TWWVWQI]NYVQPYV]VcUX_VTV^[Z`\__ZTbPRTU`QT\[UU[XZY^Z[[Z^T^ZXV[NT^OXVTYR^[_^YYVY[cZU^[[VXbY_cWTWSRUTYUYZO^XPT``hXXbeWVUU][YQ\abXUdSWZ\^[Y[^`^ZY`a_TV\VXU^\\dSYNWRZ[Y``SV_h_[NQOWUYSQP[^T]ZZa^VQbVZ\^WYWSUYWYZXVRYa[\][TV[YSNZ_`[ZXVWZXNTSZS[Z^RX]`YZ_X^S^VYXRUOZ^YV\[WTa[U]c]MZR[_[WTZX^cZ]VZaZ[_XWWV\^qVZ`MV`UYZOUiW_Z``T[[YZX_ZSZUZYZYVTQVZWSaXWjQNRQZ_V]Z_QQ`XYX_b]bbW[X\QWWWK`V`X[Z][T]VY^cbUWOU\[aQe[XX]WV_TZjZZ`WV`VZRTf`^SPP\_W\RZS[ZRZ\kRZ^YZfUWP_V^bdIUV^\TP^^f^[ZZW\J^^bWZ]U]VTeWW`YVY]ZVX\\TRPX\`VRV]ZYYaR\]]\abhS][aQNLNXZVT]^kZV]XcW^UPYRda[XX^ZS][UaZSRY[TOUTbVTSVdQY]XNR^VSTV]ZU[YT\cXZ[V]N_\a]X_`SXWURQcMZTQ_]_T\VX]ZY]i[RWKYRPVYY]YbV]Z[[\^VUT_\a_[YZX]VSVZ^ca[T__bZWdUVcUY\RW^UVY^X_TYYSc[\SUW\XWY\Pa\YZWWT[\OSYZbfQ^[d\^PT][\WVaSU[`]TUVZ^QY^\WTZRXV`[[h[\XSONTW^Q]YY[^VS\QV\U]i^PVTVYXZSUa``QPPWX\PTcZg\XbQc]]ZU`OVVYRXUMbYRPWSWWVZTaRZVYOYe]YaVZRWWQVWZNZ^XYWZZac]\VTTd\__WW^[^\e_Q`\cXUUTYZX\R^[RU[^c]ZUUZRQ[ZUXc]T]TbUQ^[[_^UaWW[_S\X_OPL`R_V\ST]S\Xf[\WV[Vc\]]XRYXWZbV^`XRY\gVMX`]XRYY]\ZcWY]VQV]XR^QYT__]^PYhcTXeTSY]]XRV^WX\^Ua[\V]bVYUU_`_]kbZU[`[ZS[_[YWdZRSYLUXa\YZXT[ZX]YQ\W]W^fh_Y]ebU][Q_\ZVTXU]V]VSX^]UcTYT^YZXWXVVSLW\[WXUR`[^R_ZYS[gb\[bJWa]TSXZ`^T\UYXXRRURZ_XeeSa[cZ\]Q`W]U`R`aSVV_QVVZbhXn[]YS\\WU[UUZZUfdTXZTOX[]YQZXXV[bOa^ZQQ[V\^dQ^[`YTe`^YZL[cXUaVY_UXVYL`[^ZT\Z]W^aXQZX^]YVXX`U[a[QX[]_XWXWVZhUTW]YO[[WXYO^X\^Xe]YSZ[[SUV]dW]^g^]]`hS]]XT[UQUW^^YXQeOVeMW_XWSXZSV[^\WP`U^X[e_YRXaZQ[^UVe[U]^Vc\[UX`][YX]YX^ZZU]TUSWOY^b\T]cbZX]^]^]_`YZ[YfVZdcYbc]`\V[`XaZ^U_YXZW_OXaVVTabYPWZZTZ\[]VWSU\W[[^\VdS^_S_k[X^S_\]QXY^]ZZUYVPSMUYT[S`W^bRWU\Z\XUTX[VSNW_]TVOXZUWTY`VTWjRO`aXXaYRVVUUY^YdWihXZX^dPb\UP\Y[W^Q_ZoYWY^RcZX_ZZZ^WX`YZZXSVZQ[aYP[^b]g`VSbVVRU[b\UZYWT\XTcXTZYTTWM^_T]Y^^W__Y`ZSfYegTVX[Y^bZYZUVZZXb\WL\[T]UU]ZbRTSVVVWX\ZS_Z_P_^XVV\aVSZY]dWRYSTZ`][[ZaS`[_TY_c_UWY[[_TUURUR^eTYXP\X^ZYXbW_Z__SWVXXQUYRRSbQ^^V`R]_Y_YYUWUY]XS^aT]UVRd\aYSVS^_^[^XdZ]Y\YVX]aZ_ZW^X_Z]_W[Y[Z_^\ZZTV]dUTZa_UY^\VTX][\QQVSYY\UX`_RXNbS^\[\`W[ZUT\WYSXY\Z`U\TWV`c]_d[[^eZ^]\fWUZVV\WX]aZ`YT]SR^S[\YZU]XQZVYX[YTVR^WZXYZO[\UVZ\QUVVP\X]`T_]]V[ZW]WVYa[[^WX[ZXR`YS_Y\b\UdXfYXWR`]^V[US[W[Yda\X]ZP]WZVY]RP_YYYZeb_Z\`WXW]ZVVSUhU\YUWU^Tb`YWSR_NVP\]_M[\NV^aX[a_Z_URYY]VZU^d_ZVR^XYXQZ\\\[\PYVa\dXcTW[\SW`[`S[VGbaVWV\`W_U_Q^ZSP][ZYV[cYWX`XPfY][Ra\XUaTVU^[URUQ^i^aW^UZTT]V\aUW\[TXY]_VV]WSSRYWX]fT[]]SYX_UYXTS`\W]Z\l[WRRWYWLVVTX_ZUWWX]WR]XVRTSfSWfUU\\UfQTZbU^WO[XXVbVK^W^a[Y_XUSWNPQ\XURZk]TS`J`[]WX]_[][WQ[ZWU[XTPUXWVTNSbUV\]XS`\UZYaMUX]]Y[YX\]SZ[`[\XSNf\VP\YV]XOZ]W\^ZhWZZgSXW[T^V[XXWbUMOURXV\cQZZgV]]YVY^[]YWX\PZZ]UWfdW[[T[UTXVVX[Ta[W\d^c[VdW\][OZWOR\ZXSWfYOPUaM_[RWiX\]WUV^][\[UU^YZZ_SUZ[S]W_V_UNRfV_XWog_Y]fXYMNNWTRN^\RNO^RY[`aU]cTg[Mf\VX]l[W\PUc\S^]XdZb`hRXSXX]PToRRZIUYPYZU_^RefZ^RWUYeU`eWaXYVbX[_cc][b[]XTN[UV_UTg]Y]SWSWX\^QRePXa]ZS`YW`YT__S\]T\fYVYgbZNYUQVTZVRYLTYdePVUQYVRbWZdY`ZP^ZXUP``S[Z\g[ZV\]X[`X^X`fPXVNX_O\WPXU`aW[S^]\[ZK]hXYUa]hZMUeURT[dNSXR[TV[X[UVVV\_Z`ORiTXTWVWQRUX^YVcT]WSTaX_^[]ZXTRWTY]U__YZ\`S\Y]\^a]VV^VXZVYZT\\UXUZQWX_jZVWPb[ZXWecYXaZ\^\]QbYPZ]UPeR[\bUZWXWXSU]MW^a[Y\TW][QTdYYS[]XU`YTTaZVZR[[S\XZP\[UaZ[V^W_X]Y_TVbUX[WXU\X]XY`XX[\\QZXUOYXUc^_XV`YY`_f]VZ^]VVZY`Z\]VXQ]_Ua\Sb_YYS_W\V[[T\YVWT^W[R[][a^ZXWaV[ZUX\Z^XUST__^XXRVX_S^SUX]WZYRZT^S^WZfXaQXU]ZZXWjWW_VZ^gTS\VXYQ_][d[SQ[S\YTVZWXT`eTZ[X[dZ_^S_^VZVYR\X\NbSZV][TZWZ[WXYXU^][UTTYW\[ZZ^YdRXY]UTdYTT]W[]^[XUcZ[`cX]`RUUY[XVP]Z_`c]QURT\XQRYTW[_SU^aW]NoYONWM_pP[^ROXYVUXYV\_WeSPVVYZb_[]kU\Y[YUY\[[\g]i[PSVX^Z\ZWY`VUcY_ToTR^\WYeWPRPeQ[YS]XkVXXZdZPVS`WaXWWYY^Q`bVR]p`Wa_^Z\]S\RbS]NYQZOTT\\XcYQLR^VdRTSZ]YWSOT\`bcUVaQXU\WVYXXnX\XSZ]YRX\Z^XV_aZY`\OOZP_Wc`dXbWcYR]Qd\[SRScfSdZ_[WZMYYLaW\V]UQZW__hX]ZSXQ`Q_fQiRT[XZ`cR[[[YZ_Z`V[[`W_]ZUZaZVY][U[WZXYQWZY[`NUW_\\TaS[SSSTU]U]Y]TR^YW]Z_cV]Y\NW[RZSUS_dWSbU[YWVVPPUWXd^[]^[X^kXckVWVXXSRWTX`URX\UaSbVZ^_S\\YaUYSYcVZ]\XWUTUb`XURQ[^U\WTVT]]SX]SRc^Xb[`USVbXSYZYYM\\b_Q`YW\hYVXXYTVPYWRTZgbacYUXT[T]`U]WUXOWYeY`X`_VU\WWQ[Z[[WWabkb_`WW\T_afW[\[_QSU[XYVXVSXVZRXVWZa\]`Y]^ZQTWbZZ]UYXXd\^aXTYaY[PXUWYcWQSY\hRWYZZ^US]\_[_\\YSWURV^]T[Z[Q\Z[\]bRT]\[V]W^W_[[`ZWQ\ZXYUWWN^]dj__YUT^U[\ZV[[QRZUZ^VU]V]YWcUTR\UYk][TYTQLX[]bWW\XQX]``Z[UaaT\\bZY_XQQSQT_XU[Ug[^`P\[l^S]d[QbTTbKU]Y`[VYYV\Y`YU\\UXKVYXW\_T^bW_W]]XZ^dU]]_VV\[Ri_UYV[R`[^STO`_WRccZVSUQXVb[QZWQW[\aaUO^ZWY[S^UX_[\QQZP_[[\\^Y^`V^S]aVhWSRYbYVZWfS[NW]XYW_X^\_[[]TZ\XVZ\c[bVT^^RORZVUUTXR]`\Y\RO`VVRX[VSXWSSW[UYWRRa`SYV[U\YV_\YaXZ[Q]WVY`Ye[TabUf]YUVUWSQaXXSRZ]RVVabYY`R]TYX[QXQ_WXZU]Q[XbRRUcZRh\\[QTT[[RMTbWRcV]SVlbYYT_S^RURbb__YYU^YWXK]Q[^\VbSYa[a[TL^T^X\TVf`cYbSV][]^\UYiUQ]XW[^^ZQWVbcdY[WcZd\YV[\S]bZWZVYW]XfYTa]fYXTRZ`^XVXX\[d]bYWUYc`bVaTW[^a]aTbWR]ZZnb][YZVZ]Q[ddPfZYZ_b\WRRUcU\`_a^\VaNVWY^[Z`ZYbV]XYbVRVY]VaWZR]ZYj__UXSO^W[W]V[TTV`]Z_]Z\Ya[P`VXWZ[c`_XWZY`Q]_V[\Z__X^ZY^Z^]XZUW[V\cRc^[X^XY\[X\\\ZO[YUcSX[^P^X[X]`UU]^W^W\UNY]SVV[W^QVUZ\eVb^`VX^SX[qVX[ZVPZ``h\\`gX\^TYW^ZWW[T]aV^\Z\WYWVYT`UYXfR`^[ZZ_e[]cS^hYV_a]XdZS[UTWbY^YZ]VZZWS[P`]`TR[W[^Z`Z]bV^XT]bTPUVUX[Y[YS[ZYZUW_^SYWX[X\YSX^VY_TUlZ[Z[S\XYVV\c\VZZ]VNQS][d[_SW\QT[_\ZV[Z[\UV^TYZUN]WXQZ]^XS\LZU[V[a\SYY\YUV_`YW`S``aXW_mbXYXeSQ^a`[[TSdV^TPVNbQU`ZRTcW\XY^[\VVY]]Z`YTaPVUTa`OTc][hhZZYY_T]Z\[YW^W`Q^XZ\QSgTRWW_\SVVZW]]QYUUWWT]TZQ][]^adTS\Xa[\[XY\U\S]XTZ\Y[aQYZ]c]YZYYZUUaXb[\`[dVZPYYY]ZUZQTWS`eUZ[TV\SUQYmT[_[UZeVV^ZVUY^]UbV``R]VZ[XP^V[SWSW[VPWTYT\WR\]W\ZZaV][XXVWYU\^QUYV`QYZYSVSaRW][WXX`_X]\OX_UUYPTRV_SZh]aX^XWZdXUYYQXVVWWWY]WXaUbVUcYUZdV]`V_[eZ[_YVWXZ\b[ZRc_ZZ]]_ZU`]UnUSd_`aQ[ZWXW\WTVU[UZ`ZR`[dV\^WO^adQUVPfa]R_S_WTZeXXU\S\X^WYdZ[XY_aWX][U[T^V[T[Sb]VYb^UWVYYU\WZVU`T^]^\[WWXVSR\cVZfVXa^[]Y]ZVaU^eZYYVZ^R\YTZ]V\WXONZV\ZXVTRPVR\_`]^W_O[PY]YRXTUUYSKaWPWZUaYWWb][O\\]SX]Y_SWUQQbUVZ[Z]Z[bTZUOZSXaV[QYJ_SdZSWUQ_PTPZ\OcXS[^^aVUc^ZcVYW_]X[RZYWUYRZW\S`]ZZaQZ[TSYXZVS_`X^M[S]^^_dVYWY\^U[ZVpoa^n[ZYZbX[PSVYaPX_^WT]QV\XNYTWWYZ[Tk[_X`_^VXWXZcQU^k`VbV[acYRZXSZ^\[cZ_YY[V]c^XYYeYR\YQ\Z_SN`U[TYYbeVZZY__[SZYWX]WS\UV]eQZZak\Z_\WZUcVcZY^X`Z]\XgZaYX[R[ZV[c]`[fWSWY]XeUT_[[[]WTUYaZ^\U``UX[TVTVWVPTW_VWWR[[ZYVTbYWYXZTY[dZ\[Q__V_XW_MVNWYYUXT^VXW^^TWWO_Y\ZR\ZVX[VU]c]W`]Z[V_`VXYWTXNYWbNZU`\PcS[`PMZ\ZYbZVaWXVaXYXUZXT_\VYV\VUW[\U][T^U\X`T\V\][Q`SUXPS[XbX_VYVYa\Ya\]VV[RY[T[^T`W[T]W\RPUbZ_W[W_XSWeW^Z]MVUNPhWY^ZS\\\[Zl][^\_H]R]S`XY]_VPfYVUeTdXT_`VX]\^X\]fZfiS`gX^WZ`_VRYVZ[[TUQWbTOXZ^SYTVP]_Wa\T]WT[UZaYOa^XZX[[]W]WXZR[[RR[cQRVX^Uc]\Zb\YZ]]\SVTYW^RW\UfVgWZc`Z[XU`dYU_ZQ\[abXIS`XYW\YWURZo[Q_]T^YVTVURNX__YWiUPYW^TO[^\V]TiRVZUPYaeWUai_YSV`[_][\]Yad\[YR\QjcWW[dVVc[XZ]WQX[UZWYUTW[Z[XS_ZZXYWWWOYU[\UVW[WaYYaTS^[_LYR[\aQZY\Z_U]a^X]]QaT[^U\b``\]ZW^QcXPUgW[OV[aXWX[__Ra[]]hRcXZVfTS[lZUU[aU[TaVbZ[[RY[R^XXYUWYUZ\cXSQWZ\WRWWe^YWfV]WW[`Tfc[YZOZXYXZ]YRW\^eOR[aT[U\VTVXXQ^W_UZYbWiZYQTZZSV]ZWY[Y^dUa`ZcWXUUY[YYZWRSH`VSR][VYdURYZTgVPWdWSd[Y[ZZ]\[c]aYUdZTabZW_WVX^][XUX[_ZU^YRYS^Y]^W\aUVdZZRV`P[X]OX\VT\VN`__TVX]__]V[TcS[W[_WZcW]VT[_RMSSWTW_]ZZVWZ[ZZQ[SYVS[`[QVVWZ[[_Ua]W^gNXX\SXZcMWWVd]X\\[U^YYb\]P\^XZ]WX``TTUd[[WNfVT^\YUVU`[\XVXZaR_ZaX[Y]WdY[ZX\\P\WaNQVXYYTXYQ\dXeSY`U[XSZSSYR\VX]YY[aZZ[RWW\VTRZU[dT^TUb`S]]V[V_X`b_gX\]YVeWJXP\_Y[UYZSS[`^[Y^^R][S[`Y^]__[RX\W]`fYYX]PSPY]R^TbSOfQP]`ZXY^X\Z^YYXaRU_SWbVXeYbSW\]Y[STWXRZWZ\SU^[WSX_`^b]_YVQSWfOYZbQ]WVXX^YU\[[[YSdUWS]`W\]bWaWY_`YVWSXfZW_`YU`^_SZYO_X]^Z\]VZTYYUZYVWZYY\PSbaV\YY[Y[W]W_Y[OUVX\T`_UO_[XT]Z[UVi\U\[^ZX[Ub\ZfXMc^XPYYaY]N^ZW^VdXOMU]_ZVYS`Yc_`T]XT]PZPTX^OYVUZR[^ZaTZU\YdYZTRW[U]\a[TW`VW]TXWUT[\Q\^U]UR[\XT_\QWP\W^XV^YZYSWTUTUN\SZ_[X[]YXccaU[Z[UVXW]\Y^ZSXUUZ\ZR`\ZTXY_TR\RV\[XXSZ[d[[YV]Z^X_[aXSW\MXWXaT^XR[SbXW``bX\]^^WaW^\Ra[[YZTZX]]P`XTWU^Z_ZXWZUd^US]X_\PYYY[X`[dWXYXSY\XZUcSZUWV\YVTVYXWS[VPSbXa[YV`U\ZX_ZZYV^VZYYTcXU`S^XZPU^ebWYZ[YVgVU[XTX_^Z^e^[d[_\YUVP_VYU[`aTY[VXTXZa_]YYY`TM`V]\Tb[T_[Vv[WXZWVZV]W^[c\WW[YT^\UV\Vd]W_ZXXYYWXZ\]aURXZUZVO\TWXYZYVTX]Y\aYXWST[TYZ^^Z^N[WYX[UW_bY[\SZRb`WZYXXUQ\UVVZ^^T_gaZ[RYSTVbUa\b^QRTW[Y`L\]\eQZ]W_[X^YXVXfX]RZFXY\V[V\dXXSW[ZWWUdU[ZZcXb][`bdWR\a]RZaUZSPcY^^[aVTZSTSb[TWfY[ZTWXVadYZYRXiZ_YbX^``cYW\VR^WbSYW\YVTYc\\[YZZTWSUT\\WT]]Q[^Z]\ZMcY^S^QYX``e^PcXZVX[YXVXR]PUYUZZNVTUdVWSL\a[T_YVi^Sa^ZY\YZM\jXVSaUY\Z]_`p[OXb`UPWcfUYQTY`X\WX]YW^XY\Y^VY\[^YTTYUUUYdbSSSXPeVYYVYfZ_NS\^X^[YZSZR^XZeV^QUXP_]\ZTO_`TQ][RcWZPVP\SSXVZVZZ[]VVV\]WVZTT_WaUiSRVd\[\VR\ZZW_QYj^_YaY[Vb^]_J[[VUYUZObTYXTa\R[_Xcb[hOgTfYVaYaY[c]_V`aUPWTXVX^\XVYXW[^^Vp[\aXXR^[LQYWXQSX[b^RPZ\W^[Z`\f^]UT]VMVV\bbSZ\UYZ[]SV\W\RV_YU^`cd\h[fSYZSTSU_PS]WbQ^V_X`ZRY^^W[]dccVR\V_TQ`XZY_[cXWY`bXWTZMRWZ^hahRWW`\V\RZ[SZbUXiS]R^[SW^[WTZSS][VTU]bTbYX[^V^cUW[WV]Wd_aYYUbSRYZWZcWa[\VYcSa]YU[_Rh[X_YYZ^Y^URYWkWRaY\YfQaYHYZVfRXi\U`WWWV[Y[VXZY[PW\XXWU\[S\XYaXSYRVV^WWW\VdVW`ZY`YU`ZWWgSZWYkWXPaZYQRXSahW\[SVa\db[U_^W`c\^fU_YWX`TgTSX]OX[Y^XZ[^RVbU^c^YlV\VQVSiYaPW^UWZTW`^WdY_ZTfZMWgjZY`_^XiSM^Z]j\ZW[_VU\\TV[VWQXU[W\UUV[_TZUWbT\X`WVV[Z]QZO[YMNXTjZTccY[[T^eXXW[_ZU\dUWZ\SU^]P[[XdU`\XSfbe]TQP]bSX`PZNZSOY[TSQYTXaeeFTPJbZ\W[VUZUU]^V[V\TUTdZZYXYaYYT`aXaae^]WW_kY^W`V[[\\WaWWW\U\OU\PaVQ]X_]aYSf\b]]RUYQ^aZRVRUTY[U`\NST[a_QTYY[XUZNcSTb\YSR`R^bUTYUXbO[a\aYZjQ_Z[aVbX[Z]\eM^hdV^]h`[Q[[UPq\YcaZdd[U_\_YZRUTZPRVW\\W\ZcYZ`aTVWbWVRWX]UW[[[Y[\VSlZRXQ\_[U]Z[XWYX\W[YTWS_bXa^W\_QV\X\_Y]bXa[Y\[TV\X^TVY_V\WaUdQ]XN[ZYP^VRUZbT]Y]]XS_TRVbU^UVUQVV_XWc]XV[fR[Q[YTSTU^\YVVYSZ[XSlSW\X]YY\\YYTUWRaVaccUS`XU_UPYVZX_dd^U[`[VR[Z[]^c_V_acYVdSWMQ]WZR[\T[ZQ^W\]aUVdYPUU^a[WXXXXUZ]^UT^XRW\[X[bZ^V^VXHW^Q]\]Xa[P]WVd\YVSVXXZNY[YXZ[V^\QS[W_\YX^WVXdYXb\WXU]RcVWUd]N[[\Q[RZ_TZ[ZU`PZWVY_X]Z\U[SVU\fO\S^cW_R\T\^SXaYQcV__PXVW_[V\WYR[P`RUX_[WX]WXV]YXW]VXVY]VYYU\YV]]Pb\_dY]X[^[WbWTW^\`\\RWYT[]eY`^XeXa^VTSYQaZZ\ZY\aXU`\YVZYY]OP\`cU\Wf]Wb\R^QXT\^YR`[OU^^`XYQT\\YcYUVTYYYTWfcT^W^fTZ\W`V]_Q[`\\ZZXX`_Y_T\TWc^`]_TgW[aV]\_^b_XSaZSRdV[[`Z`MTTcWTcZ_P_aXaVY\X^IZTYg_]QZTSa\jZMY[bZX[c_XZY`YRVaWYWXV`^PXk`OTb\TaZ\[WSYY`_i^d[\Y\W]YOXX[VS\ZUXV`V\QTXZ^b^XR`ca_a]]aN[^R]m\fR][Z[V^`dVW[_W`[X\eTUX\RWZPTUdZ\ZZURPM[ZV_UZ^\YNMVUW[cU^`RdR_XSWXT\gZ\d`RYZ^^]VOXY[`aVRRi\[_UUU]U]^Y]Zce]cQ]XWZTf\\aXUWVZVV[^ZNdb\WV]VUT\I^a\XS[[SjR]XX\OcUUWYSTdY[c]eL`_RWT`OXYZYV`U]OZVS\\UY^PZ\V\^_U^WO[[XZbdSYVZ_]^ZZ\S\YUUVSV]UhTWVYTSVWUW\[ZPeZUUT^Y[XST[a^aNV_Tga^WY[VZPVVTNT^aYY[SW[[XYW`]WWa_TR^][T^ZQQZ`VZYWV_bQ^ZZUUQWW`RRWTTWXY`TYU`R\W_[[W_WV]\k[Y]QRiYTSbY^b[[[JdRZXYX[TbPYVV]V[cZZ`TU\T[TSU]YWW[VUTf]YWWSRTV`[b^UYR`_af[e\YY[YQVTT[Y[eY_YUXUWT`W[UWRW`c`Z\[`TSWaXYSVZW[TYNZYMWY\YXW\^[QY\ZTe\YT\^SV\dZUTT[b^\\cSWUeZZdWbe]NS\_YXcZ[Y_W_UdYNW[aZ[[^TXX^SS]_ObZR^TSV]VRXNc_Xf]\]c]Z`TS[XZ[Q[^cbUWZ^]VN]Z\S[[RV_\VX\Y`S\SVKXdYZ`_W__jW]eX^Y[\WaVYYP[WYXUb[TXZ]V[OSVYU^S[ZaYZZXYWYUQTPRQW[RVV\L\YaYRbX[]Y^d_PXKZ[WZZcOX_S_KX]^^XU^Za[RQKdR\^[]ZVZ]R_^WXZhS_`T_Z[^][VVUXTaWUW^VXU]a\[[^]S`[V]X[[VXXRS]V^TXTcXq^]]Q^V[VaQ[[aUUU`VVTTRUV[h_\e[]Q[V_TVS[WW`]\]ZYUX[XWTVbOZXQPSZ[WUO]SOaVYXWRWTZSXWbY\ZWTSXYYbXXXSV_XaWPW]P\]Z`X^VUS^a\cV]Y`XWcf\c^Y]`_WcZ]XVhYWZX_R]NZMYWSV_WSY\\[R_SZUYUZc[U[XTXO]Z\NOVXRec^]YjWXYWZR^VhO[_XVVVX`ScYZUTTVRfb^YX[X[\Ya`Z[XQSa[^WcWW^d]ZWXSSUZV`YZXbSZc]US\hc[ZZc]`hfR]RVXYUc^[cbSSSU_\[W`X`WVZ_^\XYZ[^Ta[STYf[ZT[TVVVVPUVY_V\]RcQQ]_XYV]ScZSZZW_r^WdWRUT^UUZWQ\SU\U[VZT^Y\YTYI^ZVRWR]\TVbXiWQ[WXYW[Z_`^``TZQV`[[YdX\R`[PX]UU\]a[Qi[[\N[\S[TUW\Y\\TYOXRXZY]`^\XVUY_WU]S][^OVVV\[ZZ]WaX`[]XX]YdU`_ZVUcW^VWTR_SWa^VWXUWf`Y]RY^Y`[VZYVU[cWWf[\Y_XT]W_\^WXY^W`Z\ZYbTZ_\XZTVVZ]`TV^TP_Wa^WYOXVXWY_\]\[ZWYg\TXUSaWTZVSWcWXZbUWX`NYaXZ][V^\ZVUV`V[TbXUX]WXU__TbeXSogTZSd]VW`Z_[SZXY\[ZQUaZU]VWXZaUVWYZZV[\WW[WZe]VQWbWZY^_T`T\[YZYYX^WZYVXY[ZWaZ]f^VSUS^SV[[\\^X]WXaV[bScUVU][TcY\X^YVWZVX[_Y[WZVXVZ^Z`WYWW[PbW^S[[dY]]WXT]\eSW]Zbb^cMZYXZ\eOVSf\W\^cPcX`R[[\Z]hZY\`[]TMYUUY\Sa^]cTVRU`RSdXX^^WTXR]W^VUXT`KU\XWYZUW[`XX_VbYcbRYRNWT^Z[Y^RQZP\]N^^eVT]a^VP_WWTV\\MLWUc\N[WY\TWZ\XRcTWX[R]eYbeX_Y`U\\__S`][RVOWXS]U^^SYZ[RXS`][aXY[\TZ^P]SL^c\Y^`YYXKXQY\XOU]_Pf]`Yd[^U^LkeYSX\]^[[XTZ]][^fV^Va^[S\eZVZe^TS^NYX\\WZeU\Q[XYXWaXW[cRUYSaWXR]YYV^]ecgUZTYZZUbV^]YXSUUL[YRZR_ZRPV[\YYX^RbY[SX`P_P]\`YRU^Z[VWQaU]UWYVVfZW\[\O]YbWUYdX^Vb^Y_WS]]`_aX^\]YVTXV\]\S[W\W]YVQVU`YaWORUU\MVWX_TYU^cQU^NY\`X\W^\XPZ^O`Q\d[VU]UP\SRZXTPSU[ZZQV\bXTZYaZ[gmaYXaVUX][\\_\]cYP[bXZ^YVb_][a\YW_``WeYbUZWZU\SZPWShWXVZ[[_TWV]TX[WYY_YU[\WT\V][c]Z^Z]WXR[WYZg^_XS_VaYU\RVfP`N^_X]UTY^_hTYXTTYR]`WYSXXY\dOTXT]WbXXWYVJY]QR[T]ZUQ^^XTaUZV]YKY[YX[\dRcXQ[T_\TSOSYWU`YdVWWaWTYUWXY_hZUaKTXZUbcVZ`YVQUaYVY^ZV\iWZV^QaZ[WVa[XVVRVXTXbUXY`ZY_\dTfX`^TX\T[WeVXXTZW^^b_]\Wc\]LYP\XZX[WXY\ZbSW[YW\TWVZZbZWW[YU]Y`XSg]Z`d_\b]V_ZSU`_V\_YY_Y[]Z]UP^Xj]Z[^bYVUUUc_[^b\aRVb]ZZWUaW\bZ]ZV][[WYc[`^bZZ\\WXYXX^^^_X^[\W[WY`RP[Q[^]U\Ra_ZRT]_VRYWY]fbf_UZW\_UW`]\WXT\bXS_]Oc]Q^U`a]f]ZQc]Y\[PXVbYW[T[]XW[aZZYZWXQZ]Y^PWX`YZX]SXS^VQeY_X^UXWS[[O]S]VcM\W\Ya\W\T\]Y]cVZYVX\TWWS]Y[]]Z[YVYbZYjWbPU[`O^WT^\X[TSXXTSc\Z^VXR\d[_WW\UTT]g\e^RQa[Z]YUQVVVQYRa[QT]Z_ZaTZOQXeUY\V\VXUQOgU_ZfVV[ZeV_YVXWU\]T`ZY\ZVY]]_WQYjUZUMd\VZSTbV]V_X^\W_YYaW[]UYQd\RU]QVLV]hhXcYaaVVY^h^ZiPPb[VUc_YS\VVeWRTe\W[eX^Z_d[YU``X_\ZTTY]`][`XWX^^^Y[\bZV\^YlWXV][WYjVZYUTXUeY_^\\YZV_SSPYVWdXZX^T\\XYM[ZTXZ\`T^f^V_VUZX_ZYX[]W]SU]S^VUZTY_WZUWgXW^UYUT[aYOWYS_RWNYW\]a]WV]W^bY[W`Y\^^TUZYR^YRWV^Xa]UVOd\d_ZTXS[W^V\Y]a[X\]SZ\[[SVoZ\][Z_R\\ZVYVXS`XT[[W\YW`[^YXXQ^TX_[RUV`XZUKY[TXOVfU^Z[VZYaYZYWTYV\`\WUf]^VTTZSXQVTVfYdXW_WV\YVZaT]c]\\\]n`WYQ]WW^W\RWTV`T[WXX`ZX\QXXWX^^LZXfY]cY\YX_cX`YYZWXVS^V][O[WTZ]V\cVa\ebdVXZSWXR^k]^XW][RWTT_UVY\XUhZYWVbWR[[VPUbS^UdU\Z_[bS\ZYRXVVXTWQV[^]X[_`_V\a[YX_dS]Z_XZ^aPT]faTWZL\N[QUbSXV]dZbVcTXPfU^RZ[YYU[YN\Tb`\f^T[]`]bYZP]VX_cZY`]^W]_XQaQWbVfWk`X``N\[\c]\VWQYVZYYZ]VZ[\]T^M]R^e`YZTU\Z]_[[\bYYZ^bTR[[[[S`^U_VXW_aTWV[cU]RaY]\dXXZW^_Y[c]^UW_^`UWJ\^[XL_U[XJQTVVaOTWMjcWN^SQVR^b^aWXTYN[\jYc\S]P^UUOT^[bS]RXTVfUb\Z[RY_QVV`U\aPU\XVPd\ZSdZ^JajWZX[d^WWaZ\VVT[XUWTVXVSW`c[SQS[XbadXYV[UYUZYRVbYVV\ZYTMYbR\]WQU_^[[q_YY]^\WaXUV\Y\Ra_YWYXYLU[VU``af\TUcQS]YWY__PXNYV`R_hV]b[k\WVZ\K`cW[ScQPVTY\[W[Xf`ajaZXcWWb^f]^Zm_Y_\Y^Y[U`aV`\f]UZWe[OXZXQY`ZahS^ZSY\N]caWaZX]YZQS_UW_aVX^XV]TXYUWZUZZ]XYSUWZ\WT__U]\]RYXSSWWOWZWYVTU[YPZWY\WWXUX]Tda`]VWhUWVa]RPbQ[^_Z\UZRV]UTWZRg\XVSX`XSQ[]V\RZ^VPU`YQ`WUW^XTc]]`UZY[_Z\TV^[SZUUYZL[WUU_V\\]eaTZVWZT^[]XX_Z[`SY\YYYcYe^a]dU\UZ^S\U`VTV\RU^O\Z^X`RZSTX\ZW[[][baUZUZXX_^TSaXVYTYbK]YfNU\ZWTaWZYW^[ZY[Z`RWXT[YWa]UWWWT^^VXWcY[Sc_`YX^V`\]W^WUXbdWXXVYYY\Z_^MV]ZS_]VcWV_\YXTaWUaW^`]T_U`aXXX^WZX[]X[STQ^`ZX]VYY]\X`X_]e^[]]\]^_YVY^W`_Y_YUXZa]V]J[^YVVT\WTY\UZ]`V\Y_dWW][]ZWY^QZY]]g`YUTT\VW_Ub][R\h^X[f][PeIdUXcYUS]RV[ZXZgYXQTZY[WYWVWa[YbXU\\Za_[QdT\ZX_X_YVVWVYWYPWYYWX]S\ZYPWSal[ZhdYWfRR]XbRWSaTY]jSMZY^gV]USTXcb]bUg[V^[e^VQ]_]S[aUXV^QY\[X[[[`U[YRYUQ]Xb[Y\Z^^V\^V]Y[XTVi_VYSVZ]YVWWVXWWV[XY`\R_XYd[ZPWQ\XUZ\Z[a]ZXZ][SZZVW[[ZXZQd[hL[[M_cS`\SmXX\`[`YS]_^NTiTVh^_Ga[X_UYaUa^`\VaWPZXX_aVT]Y]cTdhZ][]UVTZX]WUUaW_QVW\h^]^UVa]QWTQT`]c\[[d]cYRY^QbTT\UVgW]TS]LaUgXQX_WeWRi\PXP`Oe_P`YXQcUSS`ZV_UUbR_W\VVZ^bXW^Z[[gU[^XRRX_ZXaQ_\WWUf^Y[X^[YS[[UZ]S[V^WZW_XUY`V[VYd]ZVSX_VT[S^][UX`]V[\MaZYW\X[RXTbX]WZUT[ZT\XXTWdXWT[aaYjVb`X[X[^bNWXNU^WNdWY\dSb]cXXUOiX]eWX^\SUJY`W[aVc[^\X]^^YXU\_]]V\V^[X]WYVURW[ZWX\W\XZ[S[YYebWTTW\Q[Sd`X_X[Y`YURWZ]WSQTVV^\_^XTT^\ZZag[ZUYN\b[a^TUZS]UW`[_[T`\\\S\^]Ua\\P[\OU[Y^RfYZZX]]V^\RYYXUURZ]]W[U`X[YRYUUW_UbYW[UT[YVX_`^W\e_O\W_Ya[Wb[a_aU[_[\Y^TUYR[Vk\U[XYXaOU]\dW[[UUXXV^XdXZ`T[_^\YQ\WU[`c[\UW`aZ]cT_O_X[ZZUYWW\XV`a^^dVVad[XQ[T]aXVUZM[][mUSXTS^KR][S\UXYhUTb`UZcRbVVcY\WVgWRZ\aYYVYTf\W`VbZW^UU[S_aVRSSVWZW\\[_Z_UZdSea]RWXUVPR`UM[VXQUVZdSQWUUUVTNSRVVVU[XQeU[ZSWbf\V`U[_cbeaO[]YWVcQW[XVX[W\V]UY\SaZYYMV[\Z\UPe_XZRX]]XZ_b]^Z[WQ^SZ^Ne][bTYe\ZXTZ]RKU`RW]S`e`S`\]TWUSXW[[[fOVVYZfZTVY^fRVVU]aSXTVWgfY[Wa_VXX[ZXXTZ_[`c[VWNZ[^Z[[RVXSWSLVPY`ZZjM\[[^Y^]Ta_ZL^\VZb\XY`YVVUSY]\]iQ]UVTTVU\]U\cdYWTcZWbWVTVWTVWXT_Q[Se[`V[a^ZUa\^WXYXWTYZQVW`[]]Y`T\Nf^\b[xVR_hN]fS^P\T]`TXWPZ\[ZX_a[fZfZadXg]cU]U_XSVZ^XOcZU]SVU]WX^[P`cQ]]RT[Y\^]UVYU[^VY]\[^S]fcb[YZS_ZWWa_`W\VYdZXVXc_]SR\]Y`YZX[YRZZWYX_X]`[_[][aYKe\U[UV^TS[\\XYWWY\YWZaY]Y[]P^Y\VXj[Qg_[Z]_^XPWTXSVXboZTWZU]^][]_YWac[_`Z]OZVU`YSb_[V_]QT\j`a[_VSZ]ZYY[RXVRXTUY]YZ\OYYdZS_ZYVT_[VSbPi_\UWd`_YW^XcWiZMSV^TXWZ^]^WSV[YZd]ZX[ZaYQZ`fLVV]RS`WQWT^VY^XPW]bbVTPU[^YaTUXTYR_]]N_\\baX[_XV\Q]SO\_VZ^SYTV`bXbUSTaW^\cRU[HcSc^gW]PTY[VXYY_ffWPdZ\XQSYVUZZ[\eXYZXX]_ZgUZ\]Z\RcZh[ca`W[X_ZdZRVX[WTVb\f_Q\]NY]]_XOgN^ZTTSZM]QSWUT]TYY^[d_X_\ZhX\b[\XQ\_UUZ]`TZ[ZXZUXSWV_TZ_TP^^_XQ^]ZXWae\\XYPXZS]UbYS_ZVYWSZVc]^]aX^W`Zc]^U]^Yc]W]Wd\XOi]ZYVUZ\ZYPSV]\TQZUTXckR`hTWe_T\ZPYOVOXYSW[][RR[YSX[[\`dQ\UVV[\W]RSUV^WXZ_`^UT^eZZ[WY\XQ\_Q`VQ\[WVU^P^\bZY^Z]\TV\Q^`Vf]V[XUMa^dVYVU_[\YZaU```bNXcYW\Z[VYUOUX_OQi`W_]Y^NRYS[U[Y\a\VP_XUWVbW\WZbZ\`VYi`JUX^Vfc\XUX[^UW^R[W]VT\YW\X\YbT^^]Y\RZVUPc][Y\WW`eTV\[\_[b^a[RdXZ\_RX^XX_fWZ^^ZbTaOU[VSTa][YYUX[`[]YYWb_`\Z]ZRR[XWjTaK]`Q^\VTVaYZY[jQZWXTXVRTXY][YXVUUZXWZZX]SPY^U^ZO[XW\^Y\c_[P[SX_[cT``L^a\Z\ZQScfY`]a[VaRXY\YV]RX^UZ`ZVZZa[WXYfXSSagOS\XYSVSZ^`XZT^[UX[YV_^[_Y][[bWXXL`bYUKZ]]U_U_f[aVe\Y[UXYYT`[^^iZ^`_ZU]bd[[^Q\cUV]V^\X]UbV^V]][TVVUXYVdXWOadXUW[U`[fVVSVVTW_]UT[UVTX]YQR_VWZ\ObUS_XXOW^XgXcXW]TXWWZVT_V^Vb[fX[XZ\RXX]eeUaSS[TWQ[TY[]WVSdZY[^\W`\WS\Zh]W_U[]XW^YVYU]XYaNX^WXXVQ\\TXSQVS^TY]Xb]WTZ`ZYY\k[daXXX[ajS\WZXWT[TQ\VV]aU]TZ]VXWVOVXeVc`RUU\[fY``hbSZ]\c]\aSNYaY[V]aZVUf^WYaZ\W[Z\WX[XX\WY_VbZcTX]T\abZZ[\UTYZOQT\SX]V_UNZZ^RYXSbXZU\f[W]US^^S^OZWY[gX[TegYYSeRRVVYSYYZXVPaZZdNV\QWUQRb]S\ZUTQZZ]qZ^[_U\Z^X[V\a[L\TTUWV_[\`^X]S\ieXY\]VS]][Y\Xg\YXYaTb^VU\W[Z\YcXTcWWfV_]dWVYP\YQY_`VgWa]RZVS]^WUX^[Q^[Z]V[V[SYmZZYZ^\Ya_TX^ZVaZRZSd[UW\_[U_VZYWb[]TXS^^Q^XZ_ZX^a^T^Z\[^Ybb_bSfe[UXQZYXY[S[YTaWdb[_UZ\ZVhej[T[]a]YZ[YVVNfUWZXYP\XZV]_gYWj[[W_X[VSXW\Q]V^^[T`^d`XS[QY]SYWX\YcT][^R\SWUYQ]S]_OeZZWU]]`]XQ_QVUbUT^WYU`]`Q`XT[YX\cVWTYZRZ`Yd]P[]YSW\gj\[`VV]WXV\\eZ_bYUZ\Y[ZYXWWWWX^X[Z^^Q`WZVW[]][a]SZ`\UXXVRTgXWR]WdSUS\RaQ[ZV\T_UXRYSY^^VS]X`]Y\__[[^YSZTU\T^PbVXZRVUb[[XWOVZWWV`X]`YTX[_\aQUV_YSS`YYhY`YOS[^X_RX_][ZRaS]aYXWV\][UX[_O\[^]ZZY^XbXVYQY[XUX_V\Y[VTV\TYSYZ\[WXVX_[VRXaffYW\UYbVc\XZXYTWXS]fWb_d\V]`\UU[\b\Zc_\bYZ]`O^V\ZUnSWX\XRhYWfS]QeVbXXcUV\Y[XV\[ZXZY[XSV_[V]ZV\ZZ\_e[Z\WLZRTYR_bU_ZQ[V]X[]R_cRV`X_R[[U[NbX[X[X^^XZ]WTPaT[Vb\][dYR^W]^]`\ZYPZSYY[RY`aVc^SVSScXWP[]ai]\Ta[Xc_]W^V[_^WZ]bRY[\R\YVTTUU_SSYPSYPXX^VS]_X_XUY]]`\dXX^ZUWW_\`YTWSMV]\VWVVW]RT`S^XZOZ]XY^Xc[VRR_[YTPR[^^VXXXSWW[YV\RYW^[TU^aVZU\XZMWYQ]ZW^US\]^Y\_l]Q`[WTYWYZXUSU\aRURXP\_aW[UW\RgUS_[^SPbUS[NTYV[\aQ[X^UTO[^P^UNY\WV]Z[X[a`PY`VZQYTiW__^SSUZXPcXWSaX]YUZd]^P_cURZR^XX[T]c[aW^V`RR_\XN_VOZZX\YfUcfZTUa\[ZdYac_dXYX[[^Z_]RYUVVV_PeQ\\TX[P]dXXQoTTVda[W]]RXNWRPdZ]NPZUZ`SfORXTM]ZTKXUPQUR^[dNLP[_Zb]SPULP]WZZ\WQp[ZI\[bQ[_Pf[V[\WU\\RjWW`Y]\]]W]]]YT[]U``PT`PU^SbT_RlMZbXT^VXTV^_ZWV[gV_JUWXRVeRTc[V`M]SX]aQnWVc\ZX[YSgcaQZ\gWU][gbaFWZZ[`fSSXSN\KO[bd^SR`Sa`S[^TlWbalX_b_U[]V_UZSgao`hbTSX[MWSOR]WS\MKaT[`aRZP[\[Ye[X]]od_Y`X][^dPgV`RR[SWj\Vb[ORUa`ZPXWT[XQRMW^SZ[VSWQ[^YV]Yd^U[_YgW__ZU\`VZY^aMZj`m_\\[PSZR_U]\ZILVZZTYO[YgPZWYdZRaXW^Q`WCVhaZWTUT[WXLW\h`WQ`W]ZQOT^^eQ]XS\[S\V[Zbc[aXYW]WZaL_[K]_[WSLSWO]VOYOddZaT^M_QRWRQVYRR\_d_MSX`[f___bM\RUUYd[R_`OYd`]_[XU]bU]UQh^QUSfXa[Zba[TXZ]TeVbXZYTRRU\`S`QSVTBPaXVlWc]NQUXX`ZZORWXV[QTdQXg`QU[T_I_MU_W[bUMYYd[_T`]X]_XGa]YRcZ_XX[^e\\]PVdVUT^K^\`]R^YZUSQ^U[NUOcWTX]aUJ^Sc`^Y[e`OJXl\Z[S\[WSYNWNTP[VPXYXlh\X|Y]]^RUWW[QR[_^aVYOXPPc[RZWTcUQXcXOUW_^Z_VcWQQWV_aRa[TVVWYY^LW\ad\^\f_[aXQ[dRXWXXX^M[eWYONYT__[Wa`N^RX_SQUYW_]WSY\T[RRWMVbUX\WV^TSaS\UYVTUYUUYWb\Q\X_^Y[^WUYS^[[YQ^SPSZb\\]YWY^T_eSSZ]fW[\V[jZ]\[TVZ^aUZc\WX\]O]]X]\\\Q][\T[^TX[]XQST\YUWZa\VYX[W`S]^[PV_[Y]ZWaa^\VU[]]\YYS`Z[[\WUf]\ZZU_SYWXZU[YZcRe[[XXVUZZXT__VT\]a^_YbYYQ^WV\T]]caW[Zg[\T\QTVXY]kW^[VY]l[bS`UXR`ZUZY]ZYc\Y]WY^\U\V]Y^dN]`[]TZX]YZ[Wc[a[RRVY[ca\ZZZ_]W^YeaZ^R^Z\[SXZZSVZ]WSXX^VXZWW_U_R\T\SUVTONZ\[Y[ZXS\N[b_XhV^Z`QU^V]O\\[U]VQXW[]W\SVZ^WV_[WW\Y[TUZYRTWYZSZU_TXYX_ZY]W[RVYZYWZZ[XVPXSU\Z\XcVaT\XYU[T`YV\VXR[Z]TYWUSb]Y\baZZPW`\YY]\ZW]bVYa[Z^\dYVX^\UU]ZXaaZ[S]Z`ZXWUU]YSY_^VU__TZ]WX\V__O]W\^YYV]V]]UYU[S`XQXYb[X^_Y[RZ[W^ZY\[QYNZ\XWZ[YQZSQbYb]Y\ZVWWR]YZ[ZaZ]^VfX^Z[TX]Y]\SV\ZYQW]Z\eUZXUXaWXY[XZ[[\TcVY\Y[[YYZZ^X^\\VYZZPZXdT[ZX[R`XZV_T^]Y]_cY`[`XUXYd[[YW^_Z`YXX^^W\SQYbYWYW\[QYWZWW_UPVdXdVUWXXTZ[YQ^OYXQUTW_YYdRa[Y]cSWWbVNV[PTWbW`VT[][_c[ZXX\[VWT_[gPUW^Y`\X]]ZWWcbWdb^YT]cXYOQZbYNYVYWRV\U_WXXb\cZ[YW[W^U\UWXZXXUYU\\^c\U^aU^\SY[VPZ]gSZ_[X`]UWY\ZYJWYRVX[UXbU^d^bUXZb^Y`XRTX\]ZQ^ZSeb\^[\_ZTY[]Y_XYa^[T[SRUZY\]XY^`^]UX_W\Y[V[]^[]b]ZZT\ZT\TWXcYXY]]ZY]XXV`UU]XTVY\X]X\[Y]\ZX`VZZ_VV`\[UYeaWRX]\bZ^[XWOXYZZX][VeUW[XXTZYa^[WfeZWYQW_YVZYZ\YV]TZ_ZVTZ_U\\P^\\h__SYWO[VcTTZZY[\[]^`YXVXYYZV[Ya\R^\^ZVZZ[[\Y]VYcTX\U[a^`RUXV[ZZY\jUUTWVYV\VXUPZSiVaWaNQ_T^VVR\XY\WUZLTYUl[XZVYY]\VT`U[UOW`YYW_XVW[chYLb[V\`XSZZSYUX[YbY`OXY`b]YTU\ZV`[X[WQZ__ZSO`K\Q_[[\YSTcYZbTZUbRVVd[[WXS]XQS]P\WWX[YUUOaUZTLZW\Y\[`]Z_ZWXZ^O]T\d^cPWTZU\VXQZ\YUX]R]YU[UX`VY_SXY_S]W[\T[VZ^`d\V\[S^\Wb[f]d`V`e`TYYYNTa_]\\aWOcX^^VX]\ZU[cfY[YTX\gd\OYYT\^S[Tb]XUV[c\SXYSZV]O[QQZaPV]ZYW`ZYXYTbS[U[TSU\T[]SSPZ[a\f[\]XX\SW\RPWcR_TVYL[VYVXYXX]VQc_ZTTQaWSXb_VaSPWZZ\_[\USTV[\[ZWUcQY^\VW^Z_b^Y]]`YZnRRZV[b\haZVZaOV_YUYXSY^UZ`YW^\WZWTQaV`[U_b\\S_SXV\\V]WTTW^Y[VYXX]ORY]XSYX]\[\Sj_YVPSYWZUTeQ\`^MYYY`UT]bb`Wc_][UVbPURUV\[\M^VXb^]SYT^hYXPPVdOLf]\[Wcd]YZZ`^YUWXZWTJSRZXRZ[]UUWYN\T[^[b]]OX`UVS^WU^[VSVeZ[VZZOX[aXNYTgP]]RQSZ[\ZRWaW^SfXSSOY`WRYQXV]W\W[bPZcKU]Sb[PRba[W\XWU^RU[VX^V[b\UWWZW`TW`\XXY\gYWY][NWZXe\\X_iWVTR]TXWa^PUWSUKhZXOUU[WZYgZ\`[WggRW]RW\Tc^ZUOX^djRWZXfYV^YhSWU^ZRX[c[ZXXZ^\Q_ZV_ZM[ZW^Y\XfRUXV^RXY[kZS]`VbR[aNZb[YXV`ZY_XWXb^k]aWXj]OcZ_XXYT`ZcW^VZTYYT[\d]eU]USW^YYgU[VYaa\Z]Y[WXT[\kX\WiY`W\SfOObTUZ]YRU\XZWXX^_cWRTYaUU]\VYZ\OW`acSU``][WY^\Ui^TT\W\`b^Y[]`]_lRURWQWZX]Q[Th\VRYTWfW]`d[UZY]SXWUV\W[UXfV]`VUVWRUU`^U\W_a]\ZeXX\VTZ\RaaW^\WWdY]S][_Y^RT\PTSQS]_PcWV`UVXZYXSZ[VZ]_[UT\]XTVdZ_[Vc[[[`TY\Ua\^ZVXW_SUWX\aYXVUWRX]QWYUUQZ]`XXS`U]R^ViQZ`\P[WcXWVU[[TZOfT]XVZY_NZ`^Ra^R`Y_Z\RQXURV]gRVYW[]Xsb]]QWYYMeXR`Q^MUYeYa]ZXLdRVWUTYYWUbNMWeZYV\YaZcVdPY^NkWXX]`VXXLUS^XXXTX[^X[XU[PVWX^YO\Yd_YU[b[Yd_UW_P\VRW[QWS`OV\XS\WTZQ]UT[ZY\_TbTUWWSY^]ZbWTU\UVdTT\UjUePUU[^afRVVL]SVS\VY\ZUeES\bWZTX\UW\fXT[fYZXSYUVS`TS]U]]\]lSZ^T]PgZZ[ST[`cYY\Z\YfaRhWX\YZgQZ]UYdQR[kVa[_MW[gWY]VW[Z^^WX[\TUT\]VZVRW\NW\\^[\]U\Q[[TRR]^^^[]]VWRWTUZVb[S[]^XVZ^^YY\Xa\YbVaWX[Z]USU\N\_VQU\ZZW`SZbU_ZWVU^Y[]ZRbSRZ[SYWY^\YX`aVZXWZ^_VOX^[WWRPYMU[Y\[RVTW_WRUX]LRWZ[WSZ\`VUYYR]dU`[XWWUa`^PXUYe\\WT[\QZ[Tb]Xc\_ZabXTT`PSZYYb]VUY]RWY`[b^^Q^c\ZiWRYYYXXXYV[U\\SVRYV^\UZVVUZZX]]\`Y^XZ\a[[ZXY\Z[VU\WRVTcXY^STP]_[\`\]S[WQ[U\SWdYmXW[\S[V^ZW[cUW]`TWUZ[YZ^Z[^h]]RVO]W\aXTVUQUVV\]_b^S_Z^ZYW[\XWVZ\YZ]V[Z\WdXPVfXY[SW^[X\[Z]]WYZWXX^TSXUUQXWcZ_T^_X]PYY[[MUZ_YR]\^QTTYY[`XW]T_^\[P[ZeTSQ^VaUc]W\\TWVUc]bVZ_VU`XX_Z[QMUY]TRZRTWXSabgX\]TR]YVWba_^nSZ]\UgZ]UT[WST`\]VU_^VXV\WXX\`aWZWXSUaXP\XbVWX\WSV]UY\X[SUZa^\c_^RYV]Z\SX^UVWbY]^LVR[VTUX_gX\^`Y[VX[_d[WWT[[eYU_X\XVY_]WYW[^cU`[b`__fW]UR^aZeb]UW[UeV^SUe]R[[WVYWcYb_P`]]OUXSeYPWfL`YaY]]^XZXRd\]^VQQZWUSXhYcZZ^Y\V[SZ[QbY[Z`UVT]\XRXW]]ZfT`W[UYY\X`V\SVVR[]^\^^YTVb]]XVca`[U]Z\aUXKihX]Z]QXPXYOUh`X^W^_\[]bXWX\TZZScXYTd[Z[]ZZUYT[[^PTRV[YZ^\YSY^XY`cQ[\S^]_XYWSY\SYaYUVOYZ]WZX]W`UZNeWWf\[WY^aS^_gSZ]__\ZU^XSQZR^\YV\P]UVV`WXXNVWWWVMV[XW[cXZWcW_[b[Wa]Q`T\VVLQZZXZYYUPR`ViZWWdSZZVTX`WWYXVf`]XQYU_b`XX[T\XWa\_Z]^R`[_^ZYO\VU`^SYSdPa\_[US[[PYTYV^XV[``QRU]]RY[TYUJajgRS\a__`VWTRYYRZPR^dW`c^[_R_]WYV]^[^`[_`XZX]VX__b^Ub^\X^[UH\TcWVX]]mX\TTX\X]TRZ^[[\c[VWV`QV^Y]SYSTYXSYXW\WXU\_XVTWaRXY]\Y[YUQ`ZU[ZUZZWUU[SVRVPUC[^WXWc[[QaZeWQ[YYU[U[YZ`RW^ZQYRW`TUTYZ_Uc`U\]U[Z^\b[VWXOYaV\SYYUXv``T]WYS]\[VXXYSV[XT\WWXW]YW\UXOYTV_\[P]V_Yj[UUSXSY^XVZZb\^\X\`TYXWXO]]V]TXYQXYYZZW^]Ya]]UOl\OW_X[ZS`Z^U]cZRSWT\XV]`UdV\ZQYQ^[S][W^QTXd][]R^`\Q]^X[^X[VSVWQTXWT\[UTV^Y\[YWW]YUXXZRRYV]VUYWWW_XZXU_\ZVbVBXZQ[Yb_VYR_\X\VW]YRXPYVRUa_XXUTX[^`^[OT[[^]]TWPXS^^[^\\US]XQYT_SXUN^\_[]\TUW\ZXQTa]]UYWbTSWYZX[W]aOYR\^^XYXZ\TS__Z_^bX[T]YVV\gXPZWYWWZaYeYW`T]\TXXTSTU\V^V\YR_\X\aZ[Q\Zf\dXZTWSWXUYaZhTYXWPWP\^WY\YRPXW]S\`cXUYW[YZZXYRY\cYYbY[`]YWZUVY^]TV_X]^\UR_Q[ZY[[ZWZYX`XXY]VV[ZV\ZU\W\P`TRY^PVVVS]cdWYVZS]V[^\V^X`V_VX_ZYYaQ[ZZWVZV[[^Z[a^WW[WXT]]XSZ]]XUYYcTdY[Xb_[XVX^Y\^`]WYZSST[Q^RYU\^^ZQhZU[Z\VX`SYXVX[RVRT[_b_ZU_`gY`_V_Z_Y\\W]U\\_YVV[YXWVO]^YTVU\Y[WXTQ`_TQ]VU]]UPUb[X[Z_SV^]]P\\XZ]\XTS\U_ZWPNVY^T]aYW^dZZS[X[T__YJ]ZbTT\_[\ZX\YXXSRV^e]`[`ZY]ZVUT]W^_V`c\SX\dQUV]RUa\UVS\XWeSXY^]_QdYZST\Z^RXS]b]bSV[[[]X^YVS]ZUZYW]VW]OVdW]W[RXYWYVMWa`[XbTU]Z`Z\_YfUZWTWdXb\b[_S[R`\UUWb][W^YX[`]b[^ZYY`XWWX[[W[ZYSXXVYWTYXQWWWW`U`XR][VXP]T[cXWXS\ZQZ[[XX^RUSa[XW`]U^ZP_[[YZSX\RVY[^VQZZVdMTUZ^Y]WjWYZcVP[[b_VRX_[[_\]^Y^YVRU\YZW]SZYQV`_U^Z]YbYVSYZ[bSSXUTU]_[X[U_TeV_\ZXV[W\]_X\YZ\aV`Z\^cb^\[]ZUUT\XUY_ab\PbWWVYb[YdU]TXYY\Xf\dVXY][ZZ\YP\`]^[dYTZ\[VWgoYaUTf]^]UUXPZYYUP_Q[ZZ[V[ZXZV[R^SSeYSa]WZTV^YYX\NaYeYYU\TU[UX\WPQWX\\`YXWUZ_TSVY\[XV\WTcT\V[X[WVT_[V`SVT[e^VXcQb]`]YY\RLgWWcbYUWY[UZXW]WcVWTc[\iXP[\SVUUXZUQT^][\Y\R[^iVSTVSOWX]T^X`^Z]YbTPaXVRWWRYYSYYXRYXYf^[YSU\dRa\QQ^ZSSa`bTZZ_NWUba\]aTSZ`Td_\\Z`XZY_`_cUPbXYTZVQ[^XY]bXaSaP\SVb\YTRlVXMb]TVZX^Uc]YYNXaRX_`XVUXZT\\^Q_ZdPWg[UYXe[YWY^Y_[\^\UZUUV[[QU]WSQ\[^VUW]PYZSWXWbZS`]W]WWRb`^Zb[\ZWY\\PX\WTcYTZYPV]W^\]]Y]R\]^T]UVZcV[YdXZYb^^]XX\XT]TVWY]ZYWW_c^WVUXWWYR^nX`^^dSTY[_VY\`[XZXWV\YZUZ[ZZ]YYSXXX`]^Z_VeYSRSWVa``[\[_Y^YS[]dUW]]gTaVd\\VX]ZVWb`YW][\QZNaZXXW\Zg`Z`]\VaWXV\Z[WXVaX\]X_Ta^WYWYYPZTSOhZTfZWYZX]Z_VYfXZZ[T\WSV]XYV]WY^ZW[VZYT]YVmUVU`_W`WZU]\hS`PRU]YSXWUR`l^VP^Ud^W^YVU]XR[_a^`\^_XXWRWU`[VV`hXW]XU[T\WW`WV_[VbZ[W`Vba\ZTYXWad]]\YXXf[XZUTS[\YS]ZZMYdTXZ[SXZ_]\W`W\[XVVb_YVSXXW_Yba][YWVhZc]`YU[QZ^WbZ]XZO[\TYSUWVWZTRXeYVX]X]YT\_[WXVOYRdXV_V^iVVY`cWW_^bUZ]XWUOV\ZWVbZMX^][XU[X\^]X[Q[]abcSZ[UaV\SZR_TZa\^hY[ZZ_V`^aQYXZYS[[^Zn[Z\^[^T\VT_`^UW[bWXbVZ]VUU^XTdUYXXXUWZY]Y]_TWYX`UVRXYZ`cS_V_XdVU[]YQcZVTYfRZ^]_RaYXWRUW]U^V\W\]T[XT[^[WVPVd^YRYWWZ]Z[XZcZ^XV\]c]]SaeY^YWYfc^ZVXUV]XaX]^\YWQ][XW^WWeR`[VfTSZZS`c_[UYʨᥧçҦФʤԨͤťͧæȧХɧӣƤܣV[M_RI[URSYQSQ\PTEDQVSiOHMJI\MTYW^UQZZSNVaRWQ]``^TRNNWQVYXSTWT]]OMQZ\OQN[YNV]ZVULPOdSSRGUUPTMST\JVRSJNYSYQV_PPXMOM\b\V\H[WLRS_OYYWLOVJULLMT[URPQXMbYJKTVNPWGWZP\_RU\T`ZYKW_ZUHQUNMOV\QMP^hUVW^mUOQYD[ZXVSWUURIVVeZZHS[PLQXJSUPVKMTUOUNU[USRPNPPUIUWLNT[TKQP^S^NYR[NP_RTZ_I_eRSWUYRIWYRSRZZJOQZYNU^UPWeNZ^URRSZUQO][PR_RITXPWQ]PHPYIUQRWNPSOg\JOUZWNNSNQMTPK[NRUYKVTPRZMPPTVOOUPTVUXPKSZUQVYVVQWVTUVJVXQR\XmZNUMRZZPSeVR`WYKY[PWg_QLpNOHPQOPW]X[aOSTUG]\XPXWPZWRRZTVUY][XZSYMUbNUT^PL[NXTOTUKPBF`WRPHQbWVYNQHX[P]L^YZQMWVLRQcWJGGWV[J^ZX[WLVU_WQTZSONTk`MQZ_YV\IUYY[UKV[TPN_OQVPVNKV^W\SZLMF_OXWOXT]RXNPU[HSTT\HNUFWZRTUUKSc^UUGPM[TLV]NOHUO]TJNWgSXm`ZX_\RTFHQTR[DSKW\[NXJNRSRPP?SbOfOhRVS[YQ]`MO[T]TRSRSMUV^Qd]OLY\]WVUSMRZQL]\STXSeXNObOU]NQWSNUVQZZP\RNOPSNQS]V[bWUOT[YTP]gNYX`G^RVPbTYON^IYOM\ZORNJ]WQRTeSZW[hUHSZGMMFSTcs\VaJXdRTaUKOY^[\T_WYhbbRTPJWWWQPSYV^``IL^QOGVOIR`N[UKTKYTPUQ_W[RYWWW^ZRWZQTFmT\FTWLNUMSaKIUVe[[MNWUGWYW^S@[RLQPYQeRPVPXO_\UVYWUUTPR[QMYXONTWORSJOTONZTZZLWZRLYNRYNP[QUTgLVJMJMTLQTFMaWVSNQUd`_aVRKKNP]J`Jf[VFSJPV]VcXVLQUIYT`WZ\YaTOOTSLOZNK\SSNUWVVM[QTTLYQHZQO`[[LPXVJPdPWULQNUMTQSXc^QTWDHbWSZHXcMO[QT]QPNUTIXOY\[YMWZOQ^VJUYSQRVIXgXSRYWXU^XSLNSTRiU__[VcYL\\S\MPVRZRLEOQWUVY_X\QITSjRaJTGQSTYPFSZ\MSQGYUUXMXUGRYPcWV`[I\M]JSPQWSIJTS^V\XYYN]WJ\UQJVOQYWZ^SS^LNUQJKSVJ^PTLXVUIRM[\NTQUS]LXY[TVZSW_]QUW]RXUTPSPWQLIOSZRUTPLU[YSLQLWZkLPS]TQKYR]QONQPT`TLJJPINJKYQaZSNR`TVWVTXXRKRPOK_STTUVSRO[Y\\TWTXV[HOQVYbQ]QU]L]HYLMP\XWVUURZIIXUXQeOSXYLWYJ]YU\VMSPScZQLRGOOS]MWKPMUSRLUUGT]OSZJZVUMRTOQPNLL]PIVQ^M]HURROYLUR\UOQRS[UXSSCNONURLL[MNS^IZRVH^UHJHPNRVRNLZPUUP_YRcWSEHYHUJWUVP[]\PQJMJO[]OXYZPXS[[`VQS_VPORLI\MQLVEVSU\_\YZMcg@UTNTPIQPgQUUSS[YPTWLIXNP_QQnLNOPOJN\Jo[PNRJOPTNNQZNNSWSXEOX]RXQfNRNcPPKRWRL\QS[WRSHL_STTNLWGV^UQPXjRJVCQTRWYHCOLS[NMOJQTE[QZOPTXRGPW\UVQSTK`SScWUQ]ZVT^VMMS[YLSPULYNRETSTSRQQS\OITPT]O\TKWRXW^\T_XVYYOQWYROQ^JNKULPMMUFMXIQON[Z^bORGNYZZVPXTVITVKKYIZPXYTOYW^VRSOMYUJZMXSTPQ[MU`QUVRRMXULNiaVKUQMIMaaZPYMNMPNRF\LVR_MNNLZWLVR`[PMXOYUYNLLSQQUX\OVPR\TWYVIOQCWUUTJOTWJdQVS]YOUUW^VNZQPYZLRQZNZ\ORX\X\QTT^VGTWVWM^XTU\QZWNXWSSVV[XQdVW]\OZU_SQTKPN\LZM]TR`PJ[VY[JVPMXZX]QYHUYPYWUQYMQ\cYRRVNPMROQXYSU`NRR^XNMTWJQVLRI^RaNTQSN`[QJT`UMcRDUT_WQPRVTUPHZ[WQWWRRXOSPIWW]XW_JVVKWY]UO_UYRSPU[NQOWRXNRQVOUXJbc[QTXOS]XQRNTWQYTPT`OVYMN`[YYMjOXLOSURQOJYMWQHRRXOQVNbTMMOMYV_ILOXQJLQZV]PbVNU\YWVJUQUSOO\PV\WV[L]VRUUXSNQEMPRZXZQ^HOWSX[TJTTRW\WSLPIS_KXN\WbSVRTOUOVK[_OXKaSS[OUZ]TUU[U^XRYSRJQOSWNXOSRPO\UKTRXQ[KQJSJXRO]V_OLMUNQK\R@VNXZbVZVNZHZPPRpOSUVWQ`XN]NZeQKUP\XYJ][PRQSTPXUhP[NSMSJaQX_SY`hSRRWILSNS]I[ZM\UYN[L_\MYPLISJ[RYLSQ]ONTONN\[_QOLVEUQS^]NZNTTWgUUaQRTPVUZRc`TPWSXSRUSQWTINGNHe]Ob[\SJZ^Re``MR]K`[QNWVSVNNSUVJV\TUYYOXLNRBVRPdOWWTWQYWIPHVVMZ\NYOWR[MP]QQTO]\`HTWSNR\MSUSRUM]IWd_MZF^ZRUPQW\ZTV[[T^SSOWR]O_VXWZVRQWLTRVaOVTMUOTTZOSVPNUNVZSOZK[MO[TINRTSG_U^VXMV[^OWO[KTVSP_ZUWWV]OR?UORTZO\HPRTTZX_X`QSSYGhUSQOUKOWBPWO[IFRVFULSROWXW;VJUZRDOKVAQNWXPBZVV\Ue]\[Q\UXPIOKPLKVOSYNUUVfTQSKLPWTP\TLYWWHOOQOTTMIYUSWSVJdbMPPPYMO\V^SbQS[PcY\`YXhJaNPROWWSZOUQXZKQNORYVU^KVXWQDYQSMRPMUWZLSR\RZOb\NYL^cG[VLLS^OUJPVWNNMYMU_T`LPVRUSQNOOPZ]U^MOQYNH`PMZTOTYX_HVYQW_MSKWQRUWUOUTfTNTP_^`OX\XFXSSDZY\QPXE\O`\SUWXXTU[ULZMPYSN[ULFINMSPWTPKVWVNJWLNOLSQSLWNUV^P\\VUN]XNLVFRPSYHRSVOPZQXQGTVSTNOMSTcJWZZHW^SCSVSYSGVNTWRWNU\Z[SSK`]N^RWYMLPLIWSUYMROL]YRPOWRRTWSWIVL\U\RLNOX[bIVUFNCSVJJPNPTVYTNScP]]T[NKTOIUUUOOSQOKORNJMNSTUTDPWbUNWc[U[TVPROZXOXP\GQ\SRZSUMWG]RNPTVQSQT_PYOOQOOUZWPNLQ]QLN\XW]KRUL\CWPTVN]OVXQMROYRQTXZLPNVU\TcRLRPPYJ^SUVL]\R[cQZR`OMR][RXYUTNNMVYRVJTUZU_VHMXPZVNkUcQGYaXIITWWMFTF^SM[ZR_KRWLITSOPQSUQPcVOIYOQOJUMPQVTXXYQZZNOLPGNWOPKXTIQVZVRRSMUPVLTKPMUWjXQGP\WV]abKONLQQWNXKUVXNSSRMNW\[ZMTM]MT]OSOSNQUPcSITXWW[NXWYPRQZSTRNXPNQWTPPTXRUUKRPPZYXQZQXVN[QTSQQXU\SYTVUZQOUY[K]OROd]S_HRW_SVOSYQVVU_STTcTWYYMcY[XLS]QXYSZSP^OYNTUOR\MR``ZPX[R\SVZM`_TUOSQUWd[USKVMTQZOLVTOKT]\OYTUXPQP\RS`VRWh[VOOHOYSMUUUQRY\RZTRTcWWVX_PTRQ[OZeXMTZWXSXQXTOPWKGWGYY[QQZZN]S\X]ZTYMSJPQVaRZQRPQW]KS^ZfXY]X[QTKcPO[QRNPNbTHOXBMOXRT_Q`TLOWUOIP\GL_ISOSI_H]O]UXVUURYPUIbXQS\XXVKUWRXP_NPWeL[LXMMVJkMYRRPX[`JfOR\QDNBIMUVIIUXWHWIJNORWWGTSJLaXV`[MTV]VNXMUW\PGPSQKP^SJNOTT`OSSE[WPS`bJXcaMLoNZVgQEWPZNYSSTLOOWERSJSLZKQ[HX]XLPbWaDEKLVLNWNZSJS[M\eS[NWOSNIQXPVcX[ZSXMYWdTSTKaSYOOGRRTTMPWSF`TSQVUGRkTfWQPNVM[ON]X\PYZNVVRZH[[LRL\MSbGKdMUXLTRSKU\USPaZ\RSPWKU\PRSOM\JTMMR[]bJR\W\^[cPWQQKKRQNJT]NeRUDVTOKWS]`MVOTZY[IMSKWS^Z_R[RUSO[^ZPQYXVXR\LQPNTYIHNJQ^BKYJTG[MTSPPRNJWOSNORSTGZOTUZRLT]LGHRIWXSYBOS]QRU^^FFKRFQQQZCTRPXIWbYXLLWWZQLONQ\RUP\OOMWQZTRQTHS^YXWGRQPSTK\[eYSDTObFQUSMPWS_PWZLSMZOK^``\RTJONk^XM\YQVJT[_Ac[^RRWLgLNJWPNYPNNZWVT]YWOLVXWSGIRZKAfWYiNUXSPPMWUPLTPGQ[VTOH_LOPVVVUSKcRTKMILJXWPK\TRRLLVYSTLY`MSWRWUNLIbANXYLQ][H^ZKN\^JNNTPPfbISWQJ=W\TXPNG^MJMIOLG@D]TUTSgVOUSYPTXIYMTPTNTRVRNRRlYMOSLcMWQ\JKXQSORKUZMRUTbVXTKQSRTQPTWRVUPSSISUUOQYIOPKXRUPKRTPXUITUQWAHS\IYSWPTJTZW^UKXkUMSVFPN[RRUPV]N^Xa_KWUIXMNSTOOWbUQVVOZOYYZ]WVTZU\ZVNKGQSX\TPIYSMRRYRQQ\NYSWOTNTJh_RWZcWQKUQO^URIZGOYMRRITTVY[OCUM[aGNHYLLQHYNWWOlVYPWUKMQUVYUdTNWOHRSRS^XOUPP^PVSQTQOXVYVQVTVUZOTSLGKTYRTTVQ[ZLUVaRSSVQLQRUKO\\M\VXTWSVR_SONPPLW]VK[\VTOSUVMKVLNWQHIWUWNRMQVWTQWRNVSUTTSSkOZLWTNJRWO[NM^ZXYHVRSZSQRSRWXVNSSSTRWLT^SUcWOSSM\OOQ_RO_P[WOTXSN[MMXUOQRSMPYHhQKQYMc]YLWNWVWQWIPUQPQbQ`WTH]SPV`O^cWIXRMCUTPPRITRXH\VMNOVOUHVKVY_OMINQMYQJYXYN_XPQQTXLWYYORSXQOGNWPVJO^HNPMK][NOOQRFJPORRV[]TKZGQQS_UOCEPRRXLWRS[I[PQP[VM]YRSRQUOWQKOVQTSRMRgQQNNNYX[RJ]_OZKOPQZ^OUVUkSMPOWXSL\XOVM[eLTWK[OSPSMOcOVZYRIMSQV^XSUNMUOOTSMUZQVTUMSTdTKQHZYNaMPOUZVJKUTTROUMSMQRMPPeUSNYKWNOPISLMRPSQPWQQIX\XANRGTWUZSJNMQYTROD`^Cc]NWPTL[ROTXMS[MVfPVVUR\OJTPM\OVRFWS[QRXOPPMP[MXOUT_XRZPUTSRQWXRKLNLUTOURYOKTZZRQR\PXWOPZ\NRW\WVP`LNUJNSX[LNSV]VUIJWJTQIYRQMY]OPPLV`QJVVTNMLIV[TR[UaRV`XPWKNXTSPP^MYUYYSUMJPEVQL\WTUDkO]L_]OHW^TRQTXXJPWSLPXLWHHSTOYWXTjVPcOEYOS\SQTZRUIH^M^HNUYSPSPLUQEHMPXW]MlWSUURW\IOTUTUYZ^YQQLaOMMLYQTHURRSWQUUWTQdVfUQFURZ\VPWP\TLURTYJOLXV[OPJ`AWUNSXWVWaFZMR[WUXHYG^OOVYXNYPRLVRSPQXUMJPQZ`PMISKPWKOaSVRG\PPScNLIZXX^Q\JSY\R[QTJbKSPY^LTVdP_WOJ\Q\[NNHLYTSGQUQQgPRgPaXRWL\QTKTK\ROUOZS[WZSGaRX[^cWPLNOXWTQPVRWMSSMPURWUURP`WM]TL[NTW_TG\\]WVQGNQPEW_NI\WQOQXbNTWXRZRKLIMZMIK\^XZ\QOS[]NZUPMLYRLVQETYJ^`USMKVOaRN]IMVXKYKRHP\TW[UJV\VVHSO[VM\NVUU^RXSRRO]SMYNLUTQT]SSP\XWJ_OO`]RXZK`bHLLK^YON]XYPC]WRTMTMU[JYOOYPL[MRTQaTUSRTaPLUOS^LXVJU[QRSR_][SYTR^NJ\VVGVO[KTIVW[TZhPOZQMLJM^[OTTLZc^QWWXUJWVTQTRSYK\U\QQWQ[TLIM[YXOPbUWV^X[MQXXUHQSVXW`UTVPN\Q[XNTUR[MVXQQSSVRSSWXQVWIEVVUb^TNW[P[LOOURNXPYUWQURPO[U\WLYXVQKVVVQS[URSPOOMVVSaTUQSWOSHYMRL]cZVZPIMOUSONQP[U]VUSTYSKYQPTTY[aQMSSOLILUPXVVST^RRUTcWHK_PQNMVUZOXZ[KMUSIUQUGXQWSQRTVPRXWRIRR[XYQMRSL]YXU_TUWLXLNOTGQXSSUUVMLfSVTHTVVSRZYHOY\SPVYQZPSSKHJZ]S\_SOVUdPTQOVMhUU^YNWKSVX\QKUTPNTKWW]Y[OM_QGUSPMX[KJJXSQOUV[[OT]YbYSSTOUSS]PVV_TLLMP[PQSRTQZYRRTUWZS\XSTW]X[TZ\X[RPUYSVUPXUWTPYTU]]b`VTKTP[W]]MWWR[PR^QJQ_Xea\XYRHa]QROO[TUKQWYMZJNIURMPUPVYcUOTYSKRNOUe`KW_UG^NO]LQRZP\OURYJP_[YXPTTUMSZKYWULQK`PWdSQVWPLWRT^_YWKSS[MOeWOZWU]S_ZSeXOQXRV]NXQFQYSWS^LWPZVNM[XPcSKIW`TcQWOM]KR[YbXYXO[KTSQY\FQi^ZVMTPOcOb[OPSTQPL[PPYPc]WV^QOSZYRQTcLX[Se\T[\MYQqUS[MQOLROZ[Q^KTSOaUO\TFK\\UdUNSNWQdK\RKJTQWQJRYZUOR]]YRZSSSNQPSQ\WP][]MXSMVNL\M^K_UPMNKHTO[P[XMVOYc]MNZSKOPZRKYMVUXUKK[UVXPIKRUTRQZaQVbNMT_KOXOaPLQPRZTSSPT\SRTSPN]WUZQVYVVORXSVPI_WHSLUTRS^VQRTX^^NRRXXVIUXOfQXSGVVTQTRLWSQVQJJVRNVU[JLOUPZPURLNR]LVRTZRfP_NXSTU_EQNPRGW[OTVSSKNMagPTI]YWVYXaISSTXVIXKMYU\QQX`QQQ\VPfXWFTPKO]JO\MSWZUSaISNULMY^XOXXXUXZVTKYWWPZVQGVVPWTNP]RM[OONP_WS[P`RVZWRZfRVR]KLHVSSXSYWWVTWVQ\TTZgONWWLV[N]R[VRQ]O[PW`QIMX^RU]KRRVMRQKQOaXaWPSS]I`WZUUaWQRSS[ZNNaXOUQPY[VK`MLR^X^ME]XOVNSJRSNOJZPZTPVVRQNWTQVYSITTJWTNTWQPW\SPVSQXWZO][IRR`XVVS[_TPU[WPQQJWgXZRMOKXUSXRR\ZJNMVKSJNSVURPOWYRTRM^ZXZYX[RSRRSQYOZXW^UVZVSLJSWO[NU]VU\MVTLZRiWPKVRSYMJ[RPPXNQXQPI`TQNTPNMSTSNOUYVSL\ROVTVMWY^UJ[QYKUXOUUWOXTWSSNPYSRROXWRQTTKJRRHaKXKNXQ[OKOX[WTYU^UOW^Y]KUXWSYT[YSOrYNYPOZWYO^MX^V[KSESHSWTYXTYPVUWMUORNT`YYVRXIV^PXUOXRW^UPUTU]UTTQQQRYR_bSVTSUUWVQTT]VQHZ\VP[QT\UQLWSZOMIZPYOZSTSOL]PT\NQ^NKYSRWUS[YSYLW]STUR\VT]`ZRT^KOWFSWNTQK]N^CMROZ[QRMUXRWSiLQSUWLaVMRIVbYQRWK]FPNVLRVPXOOTZRSYaPTTYWWFQTHZYGTWXRKTIWW[HRaLH_YPRQYZWZMTeQVTSOULYZSQZNQRYLKQgRMRPbUTZWKUX]FLWTOMOe_NMUYTOTRVTPdR`KVVQPNYT]OINWYXZPVaSVQ[NFO`EUMXQ^MeRUHN_ZbTOP^QOPU\QLKQVQRJOON]MX`Mg]LTIWQCRRSUHRINVQHW_RQLJMaLPMMYISNPMVSSZNLNXOIPQOTWVTPVGY[QLYWR[WU]P^PTN_VPQUPQ]QVRWM[\WXXcSNOVNZKRWQXSaMG[TZIWMXLaZNYSKWPVIYLSXTRKUPRTPUMPTSMO^b^V]JRNEUPQSOW]WOXWMTYaLWRGPVSKVZRSO^PGjFRPKVNRDXQ[WMKVNUdcVOYRRKQR[NNKQLRKiTRXO^QO\IW[VQOKOZLIXSLXVOL]VbFJ^SQYZUXOZJRPSWWLRZg[JNQKPEQONbQUZW\=LXOTX]TYOPKWVJdLIW^TMSMSMQPDUWPUMYRLRTccHTMOcMNMWSOPOJWWJROZPFWXcHXVYWCR^N]IV__XNa\ORWMKSYeJVPKUJQRXURTPSSVS\NTeUUSHQZRLPOTRHOKT\]OSU`RXLQSMdVEMXWRLNNTRV]LOKPTR`WNZSKPZXQTX]RP\ZNXUUUZZOJZPVPWQVWWBKFOZUUTKF[M^[ZPKXRIRbTSTUZ]VXQLHW`SJZQOYYXV`JYVRVVLSUOVWTRZRTE_RRDYJLQNS\XSMPNQRMRMUW]_\\PadZUUVXRVNL\a\\IZM\UUEYVTVSNON`VOU_UPSPRJJ^]PX[JReY\RXZUTXTYXT_YU`ORQP[WPFYFOYTOSMP\UMUPOIVWEMOZWMVT^RY]MND[OS`GU[aSW^UMMV]JNWd[lXVX\TLHXa\MMWMT[SO``eZXSVSTYRaQaOYRZSVMRXPQTRL\dZXJT\K]NT[MVRbQLVMRK\QRQONXRV`NSdZVV\RWMPQeY]RVQNUSSNaQVRSbSVPVPQQTXJIXEJVWNSRVUPUH`M_RGRYUYDhUOON_^^O]KPXcg[NOfLJKKWOXYa[YcPRVTVSMS[ZSM]WTWS]PYH]WTUWYOQRPSK^[_XTKYPSQ^\SZWWYT\TO]\bRXaXZXSUSVYSQTRWTS[QWSVVSWWRWVTZWZLKVPYNQUPWYQTKQVQRTXWQZPQUVUZOWUOSUVQYX^UWWUUUTRRTU[RZJTe\PVNZVRSMUZWQRXQUSVUSaQMXZXR[XWWVXPOZSSRRXPQYW[^WI\WPQX[aSUVWVNSXXTVXU\TcP\SY\W_VVURXS[WaSSTNX]QYVUVTTSYTSUWWWRWSWPVZX`]U^YWTZRUV]TZhXUN[WSYVSMSUVVQROU[Q[PSUVURP[WZWWM\WSUP[VWTSQZTT[PST]PO\VTVNOUQUYRRRRWVXQVNXQW\YVTW_[U_PUWVYNQOYYT[XVP\WTXQPSQX[KVPO^LWUYZVZSM`KPPSTcZWe^\WSbV_]UX[SUXTSWTQ]MIS[LXMIUOONNVMXT[[T^]e_X\RPQUIJdQdLJUQTWYILFTYVPFKPOHb`RMU[RXVSO\S^PZCWK\VQNPL\SaKXVNWGQgXTSNR^TKJL[YWJ\[TXKLUKN^LTYWFDO\LVWXTDKNFLXdTUXUYOXQWXX`P]VORTO[[OTMKRTTEDKYX\UZSORLNDWXOQIWGI^ZRNONJSYKMVTWKYOULT]VYTTHUWNNWGLVO]UKNLNZTLNRTYKEuMhYPOjP[`cMM[XWLWVXO^AZYgaSQNULUaO_UKeaPPP>SM\ULNTVZRRcVMOQPLMQPE\_PVRW`SWTOP]NOcPWMSVHN[[NKeR]TNYOUBU]VTSQbTZOL\SN`SOVTXTVQSIXY[QQSJU\[POY\VNZYVSUPUQR\LNHCPRNQYc\OVRJUYdQMOVSYL]P^O`VV\PVUPZ[ZSZSTXVXKQQ]]QYU[XVKTSOTM`SUOWNTYPRJXY\QR[\^`VWRX_OXYQOZORLZYcTZdTWXNaRWRSMRKQX^\JUXWOPIL_KjX`\\^[O^`WQYd^RYXRKYOSVSS`UTRKYK\^LYRXVZRUZ\P]ZQ[NMWSTUa]X`YJSRSQW\WQRXgPXZT\QUT\\WVPTSYWSQWZYI[MRJQST_Z\ROYcX]cPQUaSSW[LT\TRZVUZ[SPQRPX`Sc^V[VVXNPSTQbNUiVQUPQWLRUTUTUVRP[RLTYZLKMZUUTWcYTRUYXWMbZHOGRMSWZSZViPYZMUR_J]UTXWRPSQQ\MUT\RMMYUoYWMR]dGYaYQRV]MMOWbFPVSYRPLSPQS]\QKVXFPZTPO]WSJ[TXHPVfMV^`PZPPNMG^OV_GK\WSXIYQNK<^OeJTTZWRVUOOTEPMXKXMRRPWWKPTZKPHPWT]OO^[YTMI[YOMkSNPXLZTXXQOYNcZTUZTJRHWT^VFNSMYSOO[MJIRMRPIRRSYLQ_]FbNWQTNUKQc`XNRXZVKOIWUMUNJN]\ScSVkMQVSHSYSVFRTQ\M\PRQ[[[ORIFGRbNPWTSULTZR_[WO^QTRRPUUTHZXXXRYSZKY]OUeOfXS[VYb\cT[EQRPP[]TNM[PXN[FWVGYP[SXY\XRVMSURURPIRMOURSQTMXWVIKOSYSZYLPS^UO_TZXUNVXQSYJULQSUOSQXVVSSXVWQNHTX[UFQPRORLSVYT5VQVSMTSTVZZXUUUuUVZRWTXRSQTITWRRPYTOTUQRX[]RWWWXUT\TRV`WVWQVPT\VU]ZVQWSQZQUQTOVVYVORQVOWUlSQVTR_VXPPS[VUQURWPXNXOSOYUVTSQZTVZQ[UWUUTU`W]VSOUUUPRPTUR^WXWVTURKP]gVVPUUPYTVWQRQSQXSMWPXOVWASSXZRUZNRTSUUNa^RORTUNR[VP]P`YMROZTU\ZSOVT][TUWZUIRRPKTXT[RWM[WQMKUMPQOV]SLTQOYMY\XQRQY]K\YWSWUU[TVOYSZUXZJTTPUZRPXQ[T[maWZWXVUSSOWXS_TOZQSTTUXTOPVRXTUMR]RWNTTNNMNJUQS`QX^P\SSWZeXVLfTMZVOPMM]MR\AQRMDJThRLTIYjU\TVPKTYPT_MQRRQ[NTLXTU]LTRPYQZ[TSHHVINP_QY`WYQXWL`[LPLOPQLQHLXPVZFXJUNZTdEUeddR[OTLUTDOT]TUJSKQSYWX]KNYIWFTLS]]T]RSXKKcMSTTE_LIQRPSPNSV]ONd^]KI]AL[FHBUKSbKKJVRVU]GWRT[IUYU\R]IJQQFHQ\XUMRVHYSNQYQF_^VRMKVMHPEJ\aY`WMNQST[TP[VMPLQNQMT\IMQ]PYNMSPQXNQPBTZMQ[UKJKD[GGVTbZWO_NTX]SaQWRMTNHNSDOYMMXVKOJKN_PXNdXO`\RYN\TO\XAQWVR^HHKTNJaZW]Q\UaMORRbcVKX`JOOETOOYTVQQ_N\JPQWRIO[PKMQ^TYUTWKHPEQ`NVZSYPVRGQ_RJOTWQWMXdURMQO\[EVQZ]]MEMNQPOUUSWUVTKTXHcTWUMPJPbNZ^VSMIIJZWOGQQcWZNNULQTVPFOTJc^Z\GLW\FSMQVWTPMXDTUJMaLVNTkMb`JPNV`NRUHLVUNTMGIMO[RVMVV`IQLSb\KI\QLO`UUWMSMOXKWQX\EPZeWUUNJP]GOVRO_\MPSXPUG^JSHVNMGQSUOMPOUII\IMT\LELVSVFTQNOUKRQRXRRVWYSMIMTXNMWLTRULUIROOHSYMUXIJMPTFSXIT]VNPWLLO?LUDVMQVPeWQMMX^TPGRYDPXLWORP\IIKVN\MULOVQRbLRNYUKOWZ[QGI`TOWUP^WIPWOFRQ[NYJMVR]HPRQ\TRKPN`NTGX^RbKRW[OPYSUXMZ^PRXCWGORJV?WbTHYXRPNQKKNPFNRO]SYM\O[J^Z]P[P_[UVLSYZTUKLMNQS[\LQ\OVMNXIdYZVMOPZINJPQd[POUVLRTWQ\SPPYTNYTQ[\`Z\WNS^POWdYLQSMIOTVZVXLSPTKWYQM[PW[VLZ_WZT[NKPMWJVPRVfbV\OETTXNJSPRR]Y]NKRTRYK[USPiPCMOQVRLEUMUUVU]JZNVVSQMNX[[LZKNS]OWVLSVZaPMWJXMRJZL[WNRQPWNW]TRPQ\ORMXXSPSXSTNORTRJRTS[XUZUEPZOUjWCITSFNYSOJUT[Y\ZVPNWQPWURZTWRWXNNONRTMDCQTQIQ]OZZ[LVTMTS[HbQVPURXXZSSXRJKLK]RCWNSNPBQUPXP]WSQSSVHNUW[^S[UPNR\eRLb\LdNXSJY`JMWYYRJVYPUZVQT[EQRLbPe[QOPSUWJKVRRVUQ]][DVMeLQRQ\RVDUFL[TZZLQJMdMUQSTYYLNG^JlNRPTPPVkBLQ]RKPINSVQTQWKVWRbWFRJZ\S_WHFN^VSJKcXUc\DTQUQGVYSEPXaVaPWHNKIK[TWPUXRKEW=PMSP[aRS]X[SMNQGPPVRKQKJPOYLK]VPWX\Q`OEXd[]NFTUMaTIQWN[WTFXUT^XIRIOSW\VNV\]SUTW^UU\Q]RPJWJZJSSF^GRSJDfI^QV_VSQUT]KcHWMW]KXNPZWTQXVYQE]UaWSWITSSWYYYO\QZTPIUXh]WOdQ\PWTJWPSRWMIYZMLXXSRRZJNNTVUYHQ\TTPQY\RMUOZU[PWO\SVKRVSMdS[X\SVHHSWQfYQQIUJRWQTSQXOPZVX]PQY_XX^YV^UZLVT_JI]fDWLNQJOebQ^YVPISJ]UQQPPNMTUMPV[OTSWUYOPS^TVNR`SLQYkZ\_TNaNWQZ^TVS[TXUSQOJUVWRPRVW`[SLSWZRRaYLQP[QYYWSUOSNUXVMUZQ[ZWMQQRK_SV\YEPQ\X[]TfOVVUPOSSC\S_UU]^VYWWa\NTUO]UWTYSUPUIWTY\RYKKOQRNYOPSNURPSSTHQMTKVXVTVPWOMW`WaUVNMKTc]S[ORTMRMQT^WONXWTbRJHYdJQ\QTQWN`cWS_U^YQZUOYXMMLP[YbZOXaY\[UOZOSINNUSWMZTNOS[LJX`VDdZTVPIM[[gFRSKSU]QQ[^IUOVPYQUZThWUPOUHROLZSXXTX]_UQZbOR`[XJQVUQZVYZUMUYRVOCZ[RPSV]ZSTIVVNYWVTRT[XPTU[JbOVXOTN[R\dQQ`S_MNZTPESZeMRQZJKVZQYXSINWZLWRL\VQ\MJWS^YXoUPVY^TZPM[^QXUT_YXRQP\TbWRWMOSSYSPTGXH_UNOUWXfVFY_VU\UlZ\\MQVQZWXSVS^RXJRNOHYSVXYQPVUWJMWWUPaP^XX`^VWITUPUMNUdOYW]RWVTWVWY`]XQ\QVYENWQdWTSVJZHeXYIRYQXVGUTSPZQNLORRYNSORVQVc[PKPXSHPVULLWZRU]SOXSSIUOTcOZV^OYSKN_SYVQ`_XR\OPZZVMd[eHT]X\ZRWGSbWVZPUXWQZWXWcUM]RM[S`\OU[X`GRYOW[VTTZTTTTWRXYPQaR]U[R[SZMXVPMLMSZULR]QOPR_ChRPXR^LPSNJJPMPSSOLZZ>XTVaOVUYHPXWPWNLQTVYYTVRONSKVTTY^PSSRHSKSNSQTTX\QURa^YTWZT^QPXPGRSWQ\SB[P\OMOKJUSZSQ[VEROLWZNLRUSRVRXRO\MNOQOQSVT^N^WWZWPQZLTTTHNTUXSXPQWUUUiOYGNVS`QTRMVOWSKMHQPOI\\Yb`RYRKWV``UGMXORSOT[S[JP\QSVZQWWaOYY[NLWMRWPU[WYTaTYTVNR`THLSRONVNYRXXQSLk\]QMJQWP]OOPPWT_S^VWNSPVMXOVSMO^QPNWT\LLQMJGgPVXRV\MGS[LLHTU`NRbSZTdGPaVTXWQZO]^WQTTPLSTSVfOX[[WPCVHZRQVLJUOXXYUIMXDO`N]WVSIKHQLLXVHMSWOQ^MQRJQVSUZ^PWKOOGcXQZCSENVQ_NKVZWWMLWWe`HVb[TVWM[JVT\SUJIUUPQPcYIRCS[FRUeISXWZKEWeZPRMMRVHKWL\OUN[TS[UZHUSQYQ]USUSUVKBQYgQZ[WYLT[Q\VTWHIOQfS]JOPXQNMTVVPNQTTUNOSYLZPP[cYOROKdX_MXRW]NVRJYXIPYZ^SRWVZYLUDTMV]_NRVVUR`dNW;WONDZWL[^IPK_Jj\KZZUSPKXTHYaSKNIKSRVccWHR^CZUPLaFYUQLYS[DO\\IJYW[GMXQUbOVL`QTUGNUVPZQUYSSXVOU[PLW\\HRZ`[PFSJQ[ZUcWQFSQVNUVGfUHVRPRjQ]KN\VYOUP`XY_jVI]bPMIMWGUMBYPRLSTYLML`SV_PZOYaIV^VTWXMXjNN\^STYOVYWOgR\UVYYRT^VPTP[ZAJe[]WUXR\MXILKYPUHYJJZTDQK]ENUOYTXWKPRXTX\L[WWRW[TUVWNPWVTLFDPUWYRS]g[TbXOLVXadEZn_PYTcYORSVWI[^VVYOVWTQWQJRfU_KSJNOYGXW\NSUO^OEVPQ\QJVpUQL`LTkJPOHV_ICP[YKT\XFROUQPRLYGKGZGJHS\P[WOPG[O`P8_NkgJU^ONTMP^VYWNjVJ[TEQdVXQ[rZPQNXSV]NVFRWD^TYTIYWKON[T_BVMTUU\UIGUGUQWOEYYaS_RRMNSQPWKTeROVPTL]UXYQPXRVGZVK\UXJWJYUUUOUSPONHU]OHZY\HPJOM]`LURKQVTZRUOVONUMaXY]UQTQSPfOYaIUUZa[f]RY^TXV\SYLTYY@cWOYTIDNYKXPSVWPHT_RTZPW]NSYHYbTXYJPU[@NRZZMZIWYa]N^\WO\NJSRNPMYSP^SeJVZWW\`LVTPOKXTY]WHNRW]\Wc[\PUX]OTYMdQPZWX_SUYYOS_JRV]eSWXPQbVSH]LWkPbY[^\c[XHMI\WSW[`MT_cPNXMLLO[YNSVNQdTXXOhOZJQOTN[WMWRRQMX^[SSQoXTSMVYR\MSKNW[SQJJCZHIPY\]LDc^I\[]XTXNN\TIFTKVULKRFSI``JJUX\ZUaONKGSRR>MVJYYScRYkPKPgTNUUVMKXPMbK]JLTMNXQXTQYILWOPLNPV[F[YJZNUVWJPSYSPUQSWZQ^[RgjURQOW]`hRP`XaeCOYO[KLPZeRIRMNMUfIXS[GKXPVWN]K]TNSVeTQ\STTUSMWPMQNR`KUVYJcZZQTYPLDO[_SRQV_JUJVNWZITVRWQRLYGUQPQVV`WLMZ]OdV[\RSHNYSYTZCZPLNOUTHcTPQN\HPPLWYVI[VXPPQHFOYV\UYKXPZ\OUQXXYTV_KVK[YVd\SPVLTSRIMRfSUMMSSba[S]YXVJZXRYOZURRWWVQRN^[WaUSSSMOWOMPFWP\HYLRRRT^ORUSTVQNI]M[SLTNTTVQPU_WYTPP^_TUMNVYWLR`QMSS[YQW_YUMOGTOZWMWN]LZJVYFVXPTQFXPQQN^WOTV[PPO^T\SPW]WTRNLXRMW_aZSTUVRSMKOSRQQTN]XYII[`\PQUTR\PWF^iZHR\JO]PbURSSSXV\NR[Q[\bYSNMWO^TVTSVONZTPWK[WTSRaR\WSeTRRWITN`LUYIPRYQSTKOR\XWdQVZVRMS`SFRXbGYPS\NVMNKLTPEUSWQVWUJPVOYYWVSSP[QS[KJYTVLZIO_O\hHRXVUWOePRHRIOZRHYIR]\SSMOUaN]ZMUhUOfQU^XZJRVUMfWUMVhYK[UQeSRPPPPYTbQR3VJQI\GQUQWSOXQWWRNZYXFNUUIXQPEGWUYNQBGNLN=TVMVMXVW`OWSXKWP[TWVOOZ`aaVIM\XMMPOJGSL\HQKS[^QHGQWWOMOU>QQK]YQWPJJGWN`NQNLQA;RGR9YTYTXaKQSSUTLTKPQPKYHVRMHSSSULKN\TQDOOR@PTrRYQWWQVZWSWBSPNOTMQVXRZS]@QDMMNQgZS\NRMPR[HNSH[_Ta^PM[XPNQFYXRyYRWQULSBZXDN`UPQhRSTMX[FSUOWPRUPPYWWHU\T\QKLVYTCPCVMKOK[X[RLQ[XML^WRTLRZEOJQ0]JNKWHXM^KY^ZOZXTOZOZPJVOQR[UEuQSYHOP\M`NPQMMUMJ\CVNW`GZXHS]VRONL^WKWhRNQKZRN\YWQIOXbZ[hUVR\LUMPS[LPKRVZJRTbWIJOXZURQZ[RX[ZRdO^LNQQWXTMYISUVXQTRLYLVLJMWWKQYYRYZT\QPQMXTXKSGVYOM^PSTT[TSUVFQTRYMZVPXLYLTTUMOQOQ`UTQVTWR]V`VG]U[aY_OX]MDNMV\Q[[\UGXPMYWUWMOXOUZERcK_TMGZLNMRZSKLT\]LTM_TLUQWXVGPNaUN^QVQUUS\VO^UYMNPK]MNXVXVIbVQ[^NZXIJQRQVUZNSKRV[URSWVYNOU]RPL_ZZLISQPZY\OYcYROV`JUWRXUMaYOR[SOMR^\OY`SVJ^Q]MQQ\S^REMXY`PSUO^LWPNQTZXVSGTTQRcQXFTXXS^OUTL\BWVX]JQ`QM[XWSQTPTTWTPYZ]TNSOSWN[XMbPX]QYWRSX^STWWUbST`U\UPVQXWY\NVVQT[XVUTVR_RXULYUNR[aKVTQTLURPQUTUM^UQ[RS\X]WSOPUTUWcKV[VT]RRXZWXaUJRX[UZQZSZ\STV]ROXUUUVQU[YRWTYSZYWTNUUSVRNNSQPTWS\`WSY`PST^`UTUVQ[NYSVVSUXW_RTRWZSYZVXUXT[UZUSQXSdRYQUVRVRXSWUZVTVYPNOZ[XhZW`VXT_KXS`NVaTZQVPN_VYSSUQTTXNX[Z`WYSPVRP]]XYSSY[UOS[QXYVN^RR^PPOXFS]TR[ORSPSYQWVVTYRWRR]OZWYVPW[c\_ZPWP`SRRPVSZRQPXX^URRSMX_NQVKfSRTZZ\WSUTNOSTTDRGQVLQYVQEQdSoYILdYNVWWO]OMSVTT[SRSR_ZMTRKLXUMP]]QRYUNPTlXSQTZXWcYKV^KR`cW^RUINKNRGPYUW[UQPMQM[TVMWEIQTMITJMMKZMOSQVWVXMM^REYXSSWUV^LO]RVaOUWGQVKUOYVUQ[WOM^fSSVJVAUPa`PNGRNQS\W^NIVTRQKKPZYXWe\hYUGXTVRIVMXGSLQ]KZ\VPRQNKGP^LRQV[T_^TOXPUVN]PYWca]PYWQUYU]]STSNR]OVTGMSHSGUVVVYQQV]XKVYN`OTSTTQP_L[OMTW[NKVSWWUPMQ[UR`]IOKQZQQUZTPWP]TQZHSPTNOMQRFVQWWQRX[TWPPWQXNWTUVUOEQPc[N`PJQ`TOQZ\IOVJVBKQS[OYUPWfJtIRSUZeTQUWUAQfbRYS\YU_WWPS`UXfZSTPPWPMcSTaSOV[\O\MXNUDIJOL[JJMVQK^eK`\a]UV\RSXU]_JPT^WLMNQRQ]TR[NOUQVQQQVF[]UOUdXUMYZ[MXPKQ\hQSTJPdQJQ]ZcNeWVXYLZfNX[MQHS\NL[V@PPNRPOVDO`QZXRERN]GZJCYTdPV[EOSNQRbLRRS]JnS[[\QVOOSUIdTJENT[UIQRXOcZZVQQCSPVZPPRWYWQZm[WWKRQMXTQVQ\]UWXMTHPNNGOCZQVXXP[?WQ\J]NQfLS[LURYVR\ERVKQWdXMOWQT[SXTTZHRHUORSTSJSJXRYaUKcMUIKOJI]HSIOI\ZWcQVbWJSS[C[FW^X\QSUU`YL]OSTRPUNPMUPVMWNTYSRSMTVSUVLOXVUTTZUZYP^QNNIYVVUWNQKUOTPXORVPXOYJRXWRTMWWQQVPQ[VVPPKU^WPRMIRVPVJNUMVPKWSVPWKUMSYSXWOYNPRUXRXNSJTMFWSRUWVWNNXXX]YFJXR]RTMLThYTRXW_LVLRSVEWZP^SKUUXNTYTUZMOWZVfVPUNKVRUZSUOUTXZ\PVMUIOQJLJZV`S`UU]LVhTRXW]PQPZQVMQTETXRPUSTXONX^QVUXVQYXRSL\VRWW}WWHTNUUZS`XXHZZOXSVTUSN\bbXLSONXSRJ\XKV[T[ZYYYLXY`PUVHTKRMLVTRK\TXXFPVYOYXGNPKU[SVRYNVQTW[WNJX]ZQVWULTXUVOKWWW]VKgN_[PRWUWLLUWWShPKRKPRPKP]SRN]VYILVYZKRaMW^GdHQ]]TXJJ\QZaYW]SUL[]TKO\WOfTANRNXYWYZ^WOZWW\NPXXYZSZFOOUQQSTTPQZLGOIZU`MR[NMMNM]TOXHVNQLXUTSZDQP_fWSVWXZ_^MI`dYaSVL[VQPJZKJZYPIWFSLOXWIRNKWOIQWM]UHV^MKJNZWVYVTV\P_Z\ZMZQKgH^VQYOPMQXhWVRYSQCUUJZHKQIYNZVONRNQTL`D]SR^VWTMKUVUXI\`TSWQ[]Z]Pa\aWiZUUh\UGZWSYRQ^ROXWIFJOGKVJRUYSZWRQXYUVNRLXSVScOSWNUXNJMSJM]ZXQXl[LfVR`HVXZTSJYQXYX]AQURX\L]OTHN__YUU\ZQYV]PYQTOG^]OTQURYWQZXXLXbQOHYNSMO[RVRSNXSXZWSRUTQPMV_WRT]QW`WZUXMLS^SOTWL^T[URINZbKVNTHOLPRYQQ\KNYQPN[VWSTULPSMPQWOUWPXPXUOTUZSI]NXNQHVQZMN[UWXPVVPSTVhQZSSUgW]NWQUY\`gRXTVPU[TVM`ZOLQUXSW]TU`S`XTSTUXIR\YTTP_TQKUVR^T\XZYV[QUX^MNVO^W\ZY[YU[OSOS]fVZbYdRWSP]TSSWXRUVQTQXUMTRDSLNPRRZ^PSU^QdVQSOTMU^WXXXSNSYS[N\GWWOXUW]NSdYbNSTS`I\YT[WUNNF\LVTLNPNLR\R\YNRRJSYaVYUVZOSVN^YPOY\OSOXNMdXRSP^\[KOLX]CXOEYZJm]PI]SYQWSHMPSMOZRP^\R_RPQOWQ]XTSOJQ^T_ONU_QmNXIdGVOVQ\TNM\VWH\`LPPXSe[TOR\MbHadW]UMM`Z@HSKY`VLHY]kbUZd[[NUP^KXJ]WTZI]YWJXPVZISWTMMTYOMalKNQ[YRIUMQMH]MLTdVNFUUXJSVhWYOMYFTRUYOROOX]L[ZHKRlRcQ]FU[bOQM_WMQCRIIX\TQEPeM_NYU_]Y^[bRSYSNQbUOSLT^NTGIYXYN[\I__LQPUNXMISYVaXjRTXTU\JXc`]\QLUHpRSQSSXZ`ZQWXQJXWZUgLITSQbSM`NRTP[VSN^ZSMj^WM]QKacKXQPSWUKM]aXZMJNBPUJMS[SKOPXRLTVKUON_S^IUUWYSQVNTXS[ZIY[RNPOR]\OKSVG\T\DUYMJOOTUUV_P^KVSHU\VPLMPSRTXLUOPTLMURSXTSCQOMW\_R`YOSOXZbQ[JiNRQ]ZL\OOP]V]OTUVSQ[]IP]Q\WTTVUZOWTY`UdUY_^XQQOZWO[TKl\RVO[ZUYQTOWSSSJNKUKMXKNXTHQG[[[IQRdTZUP]_QVVRKSUXYYTK`MLQVIMVQQM\[V\VNW[QVR[U^bJYYWZ`LNPZX`bSL[WYOVRWTYPVQ^QN\TdKTO\PPUKScYUYOKWJP]WGVLRWUW_SZQQXL\LW[[S`TQKSTZLWLT^PPLRPKVV[MSQMVV[TZTMYTVH\QWIUVUSJTRK[YaXQUZWON\OaUSJ`JOR[[VJT\M_PWZG[gRWSFPNNTMZOPRLLYTPSNIGZNLQORXUGKMMRZYUZMXQbY[OTZ`SPSaDRhQQNY`QLOMSIWUVPbTLP\VPZNSFcPZPZWbXVJZUYaRPUNOI[[SkJVPSPSSMJObMVQ[QTLNNOLUQQOVaWRRLRQWI@RMUX\KVWhaLV]MV_WHEVWVOVTZNMOPRVQTTUU]WKJINLPHZXW\TWQZLaIRSYUTM`TSNhUOSYKMQ]RYQEPO_]P[WRSLU]PgY`TO[OSNI[[TSNT_VUHRQZXU]SWPS_JLVWZ]kJPP\OW]]UYUUHVZXOTSOO_NKTZGUQUKTgTIWSTW_JZ\QG\NIBUPUYY`VYYUUQZPRUUW`WLPSJZ\aR\]\QMQWYVNISSZSH\XGTUGROHTONQ^UQQSQXQMNcVPQaUYRcS\RMXYOPXQSYQLJORXTM[SXKTMNWHVVTMSMYbWLSSLP^YMRWJJKb[UW_XRJM[VV]FUb\Q[\]O\WRT^YUWOZUUSR[JMVUT`]NcK[LWd[S]TbMMT[TJQUOI^ZQQBWB\QNSOPW\]QVSQ`XPaT\IN\VKTGVQZAPYKP`cdLRRYiL`ITYLLZXR[f\`P_RVQQXQZU[QRPSVZTO\Wl[[SGH]]WXTNiNPNSPNSJKP\KRUZRMrUOUiJ^dWOPLHMSSRQQRTQS[INYLVWWVTQR^OUUZSXUUWUWSSOdTsS\USbWMM_U\aT]]J]ZVQ_^XCbVPHMSSNOQPTZTOHUNYM[OdVLSNM\rQRaRHSSHRN[XR[PYVSRQIQYO^\QQWWUMXQ\LVRSVQPQYVQLMNLYMNZ]XSW`LXZOUQLXVUXGQcLVV\`MPHKWWZOPT_WRQXXQQTIRQWNMMSXQSMK_SPONSS_S\SRSROQSJTKSMWVWSUVNUQTPQZVTPRLQNMYIZSMZXQ]ORNQeQ^NXSNXXPPO[_ONRYQOXUJUNVMQLOPcLVPIRVSMgSbT\UNVRWRLMM`cPWZPOLRJeWWUVTQXURTNPT[[[SVRRQVTVSWMTZPTVX{TRPP^XSXZRLSSVQHT`YZ[WVbVSUU_NZNTiM\UUbPKZV`XXSXSUWPW[ZRSfOTPWT[NJVMVOZMUTV[RR`RPZPWPLRU[afXSSRQUTSTXT\OQTUUW^^SRSVSLSPYRW]QRiYNYPUMXZOMRWY[SSVYTNMFR[cYQ_UVNTUWXJLWTXRVSS\SOO]VUPSM[HWRWURU]PVVNX\N]NSMO[V]VOXTgYSUH\hJSONNMNKJSMNYTTUXTMUSWSTQZV[U^LVJYKRN]cPTXRUNI]IQScMNX^NiTURUIZPSUWLaMQVOLRNNRZF\TJXVYLRRL[]M\TZUKG\PJYUQV`MI\]ZR]OTVP]LTRZ\PdTQbKjRT\UhVPKXLXTPSWPYXMJMHQSNQG]L\UOJ^\[PXSRTRMSTWSLOOTNOTVSX]PVJST\SRW\MQSVYPSULdXWR_^Q[LNTO`UZUITbV]?aTNUSXTPT^\LVS[[\WQRLRVULN[XR^RUYPTQXX[NYROZNPBQIKQWOWVLTUYL\NZWY[NN]QSLS`OOZTQUVTTSQZUUYWPQ[aVPNPMXRQP\MVUP[XPSTNR`QTS_JPSNUVWJSV\RQ[RRQRRQOKVdMQPRWQQQX]NMOMP]VWVQ^Q[XLX\e[XNLVWOHYRSSQKWWUKXQ]WWXQOPSWZWPXRTTWLXPQUWQOOT`UTSRSQTZQQ]VTUZXJeZQXTQSNZNU[WTQST\NUYWXSVNYYWWZHQeWZSSW]SWdOVLRQTBPUUUbKVWbWURZUTL]QPMTLYHULVmVZO]R_USZRX_TQ[R_ZMVYUQULgWVZPPIXOSTQZXW^VUR]QKOaWR]LGUTOUWURSTOTS\WIUN[PPMLSU^RFTQJWZXRLWTLXURVX`Z\ZPXZOXS\[Q[MWSZTPZTSOQXMUZPSKTJNLRSNN\SVLUWSV]XLWXVWVMYRYWLRPRPXQNTdHULRZZQR[[[UPdV^aMSJ_TRRNQRLSIZ_TTUOUNYYPRWWZUPJNWRXSRNROOYLEJTPVOSSMM\O_`PQTLZZLNMJZVXNM]YUMIXQMHWN\URWYMTRTNKLXW[UL^ZXRRYUOZ\QMZWLEYQa\S[\[MQ[[LaKHQNWNOHZP^_VW[SSUQRPSJTYTWQ]M\SXfP``URRQ]VTSTU]YV^UU\VTVXHPS\J^bO\SUNUYVSNY[R_R[T\XMXLVJVSPRUQLYFSXPYROTQcVPS]OUX\XXXWOOPIQLXNT[WRTOXNUWRTOeLTSPTRQPXWYVMS^TR[OW\_QNW\VZYSNTW\NXPPOQVXOX^NVPUWZSGZWQS_OQKHZ[YTMRMPLS[QWPUL]TMNTRSPXRVPSXPT^TYMNZT\XSL^OQSLQWPX`TPL_\Pe[\TUVRXXRWZTTUTQUR^VSS_OR\SMVMNZZMURRPU[XXOXO\U[^UYPV[]YVVMPOPQVaRWTOLXNYURYOZWRHTZZWQLU[YSRR\YRNVWPSTS\VPOM\XRXOXMSUTOUO\[PQVVVTSZ[TZTIU^WTQSOH_RVOS\NWUTdWPUU^UWQKV[RQWPRRMPb[XUVNRWOOXYOXXVSU][UNRWZT\PSVOUS`PURRLY[X]TTMP`W`[XMNWVURWWYVUSTTNNRXZ^PWP[WUMOOQOTMOVQUQJTLRKTYWOSZPVONZFZ^SKYNVJPVP[XQX[WZ[ZX[LXS_R[ZOTPRLPLVYgXQOQQU\UQdWbTKXZXX\M[VTMLP\KKVTXZQWWRYLKHN[[P_XMZRYMM^TUSQPRTVNSEN[RJFMVUZR\ITf]IUYORWOIZ_OP]GNVNTXR`VXZVPZ\OOTRZMQQXJd^M`MNbUO]OJ_]OMOTK[TTSURVY_^HSVR\PMPTNVI`WU\WLKaSQMMVIL[PY\_IVZS]KXN]YSWWTQUT]XWiMRWZ`WLIVXEOOW[THYSOZTJGRLZOJIQUUNNRM[QSQgTOQKJSKjPZRUXTUQSSTWQUaMQV__LXJVMUBYIaTN[SXPIKSVRHPPXQY]LWaKZW`QS`ZMLQRYP_SI[TJMGNUIZOSHKZKPSdE_OUMSXQgLMBIMIQULYTPOINVSTZZXHY\dLOXXMaVZVPMaQPPW^K[YRKQL[UJS_SQMPGMPdPOPaTWU\dYQO[WLTUU_QY\YUaUXbNQPSRd[^MLT[OPUYPJ]R`TMYWKLQMVJTRV_^ROXTWPXUNPXPMQQRUUSZVMT_VKRUPVSRYSN[POTN^VQUMUMHZSVLV^SOSIXVU@J\_SWY\MLSUWUVdKUEOTTMUKKWPSJMVTD^_iJUPTMRSlWNU]TLQV_XTSPYXSNTSMZUYVYhQYNLQTKYLKQ]OZVTLUWM[QVGSKWMQZaS[RTWTVVSN]XUOTUOA`NK[SUPWXL\U\S\MMWRJUMVXRMOOZMPUSTX]WWYXMTKORYMZKZVmUQW_UR[TYUWHNOQIKQN[XUTNWdBNTPTPPVS]_\OUY]TMX^XWIQOY[_VTZU[NSROLYTPJVLTXRQLMTVQRZNNOTQWN[RY]bRLZ\U\WUfbPNMP\UVb\QRHV]aNQTLG_ZN[VSUMMNROR[SWQ`]QSSNaUWWWOUUDRMPNWSNUOKLPUR[U\QKXZQOZYW^LH[P`[]NXK]NXOd][WWCXRRWNZHXY_`\R]^RLQQG[WW_^NiTTSXIU_]GTRSZUNEPPNXSNFIPTPXQKKJHN[PVUI^K[LLSSWRRQiTOSPWORJQVX`KQVJVTfSV`\W[VRVXKXXNRLUKSQVNZWX_RM]SOJYVJTcVUMNdbQPRMVZ_RSOdR`JNTJLaSVWT[UcI_WYPSYYVQST\OQXNYXNTTNMMQcRVYVXHPf\O]HLUPKMSQ[ZJNVQ[VVQSJXUWNTEYSOPP\WSYIZRKTUXNKSXY_dQZFTPP]bFLNJYU`VMVOMTQTZcbPSLQUTKKKTPKGYHRVPOUKYQUZKRZORPDQK]gSK_S\SZ[WSdNRCQ_\RQSWgdWWVSSOK_TNKKLVUPZOe@^IJ[QPZVVUSP\cSKIQV\LRRN_VVVTXW]VJXX^nET`WXQ``_TTMSVTMQ]_^\^LQeQ`bOTOR[kXWXRRY[]gKKVV[ZIWGO?]NM\O[GMX^ZJ^L\_UKQEPX_UXQURYRQQPTHJSU`TUQVYQVVRb^]OK`XWQRTPOaW_UNZLZVP^VGNSSSSSHUMXN[PVUSKGVQUBOXMZRTHTNQ`VHWNTKU[JKXYYMSPFVU\RRM]XQSaS]PJbZQAWKIGRQ\`WODTVSJMRRP[Qg_QRH_WXQWZKIVKI_YZTWJTNME^QOUTJLYU]ORWLIZ\TN`^POZTF[U`WD\QSZTZL_NXPcPPZVVZYWUHV_`SaRKDXTUSWLUR\R[VRWRORQTTDeIRQVXi^ZKPTPNSeVSQdaS_ZKSWMQJ[J\XQEWQQNUUXRURRSKJW\OQUPXhO]P_SJVZPRIJSi_UM\MQ^bUH^GU[PcUPWPbLbVQP]R\JVhKbO_QYbS^W`P`c]RoESSXTSTPbCSPQUUXHKV]XWYTBXS]YVUdRPZQYVSO`WZY]bXOTSPKIURU^KJXZOaVSWVVTSSJTUVSYXVREFUDQUZLGPQPSUQ[H_YNQSJIR[YSRXHNQW\KMSOVOOV[QTXb[SLSQRRQ\^WQ[MfETSPIR\^]_PQK`QUbZOMSNLVPUCT_MQ\MKLXXSON\Q^VOTTNVULSWMNTWTPUNRQYUXYQN_YPYXTaQVSMORQSXTMNXXSc_YPWPRYRNQUUWUSMS[_YNLXMZ[[OQOSUYM[SJOVV\YKLN[UZXSVSXZQYWKKWKEQUZPXWQR[IXPQULTYQRRZM]PMRVTKIK[^UOSPNWXPQ`NKPXYUTTKR\RVN]ZcRSP\RTONWSTYZJV[UWWVVMdOPSOVKWYO_VORXRUSSRRWPPYNMZSTZdRRQTSQOMSUUOSORYVRUZM[aTWOS_UWM\YQQIKOZYWKWROZ^`]UYRLTTYQYVYQLTNIRaS]`MUNYRTOKMMMNLXOPOSORRSSOYYRTbPVVKbNX]PNOQPQVRQWTHRZVW\VYRSNXZOVUKVWKVPLXV`QHLRTK\OS]ZgODZ`MRdPTX\^d^UcZV[bVX[PUWY\V_T]TcUWXYaYWaUQXXP]Z^bY[YRWW[ZV`Z\]UZW`^STcVTZWa[MZYRVX^McZ[\X`\Za]Y\O]ZVd`VR]YbaSRV]\\T]WW^cVV\\RWSS]Y^\ZY]YZX]ZUTXYTZX__[\]YcZZYWZ]Td_\Y_aQYY6\XTSYZXY^[]\^RR]^eV_[[Yh^YXXZWZY]gTYK[WYZW^[VUUYWXSWaW[_\\SRZW]TWYU[V^SYZYS[[dRa_`[XVYYW]TRYVYXW[Y_Y\YW]S^WT\USU`R^YTVW_OYWaPUU[XXT[ZYZSaVZSYZ_PWW\\W^`TVZ^Z]ZkWWUYWVUS\\V_T\ZVT[UsW]XXVTXV]X[Z[TYYY]XZY[V^T^Z\OYY^YT\bUUVOSIQJJPOTXPDSORPITLQH\PPW]`JNIPMNJPaQVZcMZVKLQUNYEMP`LLNYLR[eKZTVXQNYZTD]\M^OUY`GOW`SOMSSIXNYIRUSVOURVVNSTZGU_MTZOSPSXPOLYRVMRSKTOX`VVRGTRRMSLVLQVVMMZLQVXWNVNSTUTRYP[CUSRXWVbSXILXTURNZWLORUW[VOVO[PPIePFQVHSSHKZWPPNRNEN`RTORXOUaPROQSGSOW[JUO\OPQZ_^DONOKKPQWRPIZQFON\ZVLbSMWMTWURYNXTLQXNQMTJRNQQSYSRLV[OTHcSMdRQJTMM_GYFQUpJBT`XPW[OSVVQ\RJJOUUMXLSXLSNMMNWNSEOPTRTV\OJNNNUVTSNKWS]QI_N`MQXfN_[N[H?dVOTXVa^[SSXQX[[NYOTWSVJOL\TOZXVOPa\LYTQSRN_OZXNXIUQNOVUS[UObKMTPSWWUUOIg]UUOPVWQX`TSWOOV]^STMUUVRSJIOQN^QNcWZTTWOQK[XMWSLRQTYQV[TNN]UQFUIVXYNQIWNOXURWUUUURPcSWMYYaUSI`V_L`OURMXTVIVMVXbSWPPTOa\N]]\OIRZM[TTLRQTTPJY\WVUS[ZVUZaSMHXRNTXRRXYUPQHVONX`\QRQLMP]YNTXKELTW]ILPRMOUSV]YJSVTRKZLQXOQDSXV_XYNRYMZOSUKOQV[NKXXYSJYRRSKT^NYXUOSRYXYL]ESRWRSNFVYYWZPeS[NMSURQV]RVQU[TSZROFW^PWTR\U]cUVPSOS\OYSRG\ZOVUW_OQ\I][XPbWRJdSOTNQTWXDYbRWR]K\MXiU[`L\VX[TRbMJHT[WKWaPVN^Q^XTYYUOR_YOWMJTMURPSOHXVQ\]XM\Y\KOmW\OLZNWT[OTSXN_WMRTOLLUOWWQR`WRRYPNSaRPQGONWOMeed\IPXSOTdOQ]c^HGQLYWQRQXZN[TX[PSTZZSNQQQNQJZMMNSPSRPSadUW_WXQMOVRINRX_PP[RTKV]SHWUNaQ]\TJTR\LaDRTMPOVYYFUJGUTMIQONTSfKoT[[TUTOQaW\QRPUOOTSLWKXOfYV\H\YP]QaK^abYRXUeTTK[OVRQ]OZ_TRPTVVNZ]MSOJLZNLO_gVQNSMLQTWW^W^QadQ_RYVLOTNMZLSULNNXVYXQDFVUOOU[OUUXNR[R\WVXVQ[WNW[USUQUPTVSZWQO]S[EY\MSVOPLURTPMZOTPUKTUNOTKTPTOLKhUWTLUMQUYJRTWNLOUQVYQSYVPVUUZPOXURNQHTPSZQLdYRNLTKU^SWLNOS\LOXMKUQYTLRUJYXQ[TWaI_UTXQNONUaQUcSfWZLVS^VNLPSOPKOPS[OWWT]NPHWdO\XT_^KXXVSUYNXQRSZUOVQSTV[KV\TRYSQXT^VJWUZJRV_PYPTTUWLKUUX^NORPVXTbOUNRY[`U\QWVKNYVZ[UOXS_OcNVN\TPTSaTZdPLVSNOVPNPWUSOVVdQOQZ[VNXPTTXUUNSVMSZHdVaSP\SXPWNS\TVSWUPP\XRS_YSISTXNUEIR_PMSR[QOVSKI_TTYP\TPLh\RRHYMPQMSTIXcVGS[NOYPfSPUI\\[ZQ\XPeXUUVLNXTIPOU^[KNYKUOVYO[EO\EQGJ`WLQRQ\cW`Y[HWZ`_SbLSW]I\TSVTQOPRVWZJSWW[WKMRWRQYSXNOXNR`UVb]LSRQO^ZYgJfK[LYaTMORP[LPUNlPZKTJE[YS`KLRWSMRGUX\VPWhMXRWYWPVWURYVYPZiXSGJc`OUQXWR]\PMcMH]LMLUVPYVWXPISHPVVKNTUUI[V_SKYISWaLSVQV[PU\XcSRUSaN]QJNMRQVYOT_UQX\^fUSS]MRVcMaOT^NOQ]S`LIHYOU[VKRNVUTYVRX`^XcjIScUb\ZG[RM[T]POOMUV_SNYSMPYJRaaY[U[R^aLR\]P[PO`LZUIS[P[ORRFZL`gS[ZZXK\TNSR[LTZJTL__XVLSKROTLT_SXS`VWVTVMW\[UaWW[Za[OXNPWCaa^TZYZXJKOQJMXWUXYRLMOXNdV]]PTTYO[SS^Y`>TLMLTQI]_TLQIMUKVRVZVSKKMOPXS_UY^RRJXTWXONe^USP^BUUNWNWS]VKXJVJMVJSg]YYVSJb[TSbTPYSM\a_OBQ\M\SSMJIORVS^PQVMQa]]PP]U\WSZaPTI`Z^^Q]_OJU]PRbRX]\]VQRVNUNRERaN_VY]ZMW\`RPWZV]aAWKQEdNQRL[`YFNORWYOMONTO[ZT]YORXRSbUMXYJUO\I[UYWJQXPHWVKXZaQ`aRZ]_LSV]LMPGTLNLRIT_OQN]RVPRP[D[OHURT_Y[LaPRYOXRWVUTTUGT]VIGPWHhTIRXTUP`NNYMX[OdbWVUSVMVVTbiUPPSVSMCTMMJ_OPbMTGKY[TSMSYVJQLTTOBVNNOP\IOR[QPX\QTKGZYU[_EXSLfZW`KMVGYdVSJUJPWPLaQITXZRIMS_NQCSSQ___RJXMQMUUYJPONR[FWQSTIWVTW[QFJZNMJF\UKQRKMGHLOIS[S[NN]JQZT^PPKPPXQSOKRKXQ[ZVRTHLNPWEMOLVGRTAZTVWTRE]IIYG`OYWKTRTWKN[LKTYTcD[LUY[RMRMN?UNRZSRdO[QYTVYX^QOcRJ[IJ\VRYY`VIPeQJYN^IQUWNRJOVc^^Z`TMLGUJYWLR[ORSQL[\NQNQMXcUHScQL^_O\NZZNM_LOWTSW[ELEVQFeUOSR[URT]OLJOXQURWQXKLO\VYZTIbPV[K\NUcZ`\QOWR]PWZTXJ__X\UONHKOOOZ]`P\VKY\[UNMQUWOR[UPSO\OQULOUQMSVOMXPQKRQSL^RLLSQOWPS_VVjQZYMdU^_\]UZO^SY[Q\ObdXTORCWOQ\VFGM_]QRRa\NNfS_V^\K^WSLOU_ONUe@XPSWRQRTPNRMVM[MNVKPT[JVQVhITNeiPPRUSMOITMQVeUP[TEVVSJR[`RVVHVZQRf[IVYZVa]NOOSVLTNWV]QJOLiMXJXbRLRSTJHPXOk\dZITdUBRLVOTFM`OVRSH]\TMPWW\OTVWVVSLLWEKFQWQS^VTO\RiTLSJIVPTXJO\HQTJ\UXfPIX[TM\YXQdZWH[TMMXUNONXLOXRKUWJ[OUQeHJeSYQWcaTTGYEQYVTTONQEQQSXdMOJXVRMJdZSGZTWSTGQYIX^ZVeS^IIP[QVXSRSVHQKKRNc]SUOR]TKMU^RSQ^KXVOZSPIRFST\YWWPKTOTZMV[UMb[\J[JR[TFZeYTNNTJZUYRISVNVXXNUMWTHXSiNRUJYDXUVTRBUIPQXRTZKFGTHKESGBXQ[KTRL\]UPWZcLSM@ISOHN[`TXUM[LGKN_KKXZQK_UZQRUcYQOPWKbPWZIQQXOYKR`TOBSVNZT]VQdS]QUXLTVLaIKROUScZTPNSNIP^RPKHNfbPQLOPZJiUID]Y]RaVPUeRODKVQP[SWZeOSZWTVWO^SMYTYQO]bK\\RUUVQXSXSQNHQMVUNHXTSQYDZNLOOTHSVWNTQOXLSPRR^\mLZ\STPIW`WMcJ`OVOWRPVTDOV_[R\JQOQU_OSSNLb`OKSN[_SQXSX\MQZeJURXaTURZJUY[R_`UMZMSTiVJPJXZ[KS[QaU[OLT`\SVUUE`PUUQQLMD`nWLTUJ[Sfg^_ZNVYQLUOSJUC`HTQIWMOX\`TTXWJcVSJRZVeVVSV]QSVPXQ[XSVNVXWUUJQDUXNNHPNK_aZ[]Q\GViYORNPRE[RPSMLST_WWKQP[e]JMRXPPSOOYVI\]TLOZK^N^OXPROR_ZK]QL]LNZR[`RC\XHUDU`\QOj]iYQTHOTO[KTQ_LQQTfQaW]kWJK]LN[YYJbZR\NSWKOCbXOXXMMWKO[YgJXTMP[TGPI\]MNTPQDQbTWMPJ`UUVVRQ]UOOIJX^Xg`ONTOWOOXSONJRGWPSTRQc_JQXP_KWheVWSSgYRPO]H[\WQUNLS\[_WaRSRXTV\VRVUZUT`CTMVWRNIWZP_[PTYORKYDL[XXVgIRYPXVRNVROPYRTMUOVKUQINNXNZWQXNZN[OQO[QTWPT\Ws[OF\SSSS_QZTXPRKSNPPUNS\LLZMTTV[YT[MRMLSX]XLGPTVKW[UTT^GPb\[SL]SUPUVQOUQSLRM`OPTZP[pVMVSZWPZVTRXNW\OXNIRJQROWXINXYVJIR\RNT\]M[LZVT\QRSSTOYVXOPRMUQPBIJYJWLXYVROWRX^RM[OTPXVZNR]KQZXOZSVYVNNVYaNSMXWSIaOTSM[[YTSNUMRQPUQVM]SUMROV\[ZPRPTKUMQUOSYWRXaPJMWXLX[Y[NNLJT]UW[MPX^]\RJ\YVSZM[WYZSHYXNRfXUWKTTR[TRQU\OQYWRXcXZM\_ZWZWYR`HQaRRTVQYWSPY\RLYJT\OY[UM\KXNWRUTPNPXYLZIJUTWZH]ZNMPdOWLS\MXYUJNQSKXXIQWOZX_MSSPUOYHUMO^UQPNVSSYVgQ\XUTQPW]ZOPYYOUOX[KWZWUJRVM`U[R^QUUOP`UWVRTJQPVUSSPRdNSJWgSVXRTOKI\A_ZOWURYSTReWTSMX]WUGSaP_YGQYPLaZLF]Vc\Y[JQKVbLSOWYOSNRTaSNSQPZUZXH]PGQ[TSSJTTULSP_JWPTNLOMEGVOSYHQFQONRGWSR\VYYQL[QPJMNK[SVQMUQ\]ZQIOW_`SR[ZIOYPURNQTWQRXUQXDSSVUWLUUVNSYYTXSW[SRMd]HMKNW[PJNSXUQTWUXRYEXTPWTUWT?OQPXIKUTOPKTTWRZMMTU\TGHYQXOPZOOEU_UWVT^RVUVWQP^NWKKSTUXSY_XXORHZlPQWWPSSPJ^W[SJVPUdCLZUQPZJWW^M_UbNTUMNOPTY_[RYOJUWYTP[MH\[JXXVLRL[^SOaR^VJU_TIQVKWSVKVTCM[NTNOTUUJdROXN_XTXYSXVSZQNHK[PWVUYYTZRS\ZROUISVNV^FXOPQUL[WGOVOOLPRH_OTVMTXIOVNXZQ_\SLM]ZSOYDWUPUU_KLZRWDUMaaPRSXPZPSKXNQRV[RUO_X_XRSVIQTQUMOU[TUQXRTSJTK\PWVYbORXW^ULZU`SLP[NPVMRKQUTTNQPQXQVPQPOXTZSSHOLTQZTWaOLQ[OWRSVXVQUVU[V\YVUSRPUORSMVPOW]^VIKPbUPQTTRRZOMPHOURXNLUSYY\QRRSWWYOe`RQU^XXWUG[OQbLWNURVYS_TS`Z[QMSWWRSafWHTORiRTQLWX]M_SWTWRRUSVN\RUV\UPN\hORZPYXaNbS]XR^QXNUWTNSTOL\MMNPQZNZMV_PWUP]fST]aXXMNYQ[[TUOUXPaVhPMS[R^LWRULUSPVUU]RUL^ISSKRX\STV[WSPG\VSJZ]MRXSPSXTYTVSVQmReSQCSbPKgROTM\SW[P]KMTZTYVGWQR[R]XWTTr^\NYfSUINKO\V]WNYVIQTOK?WGZaXPS[QVTWWTXTSUMPXUXWQ[aUNHTHWUP[OWYQUWTSNQLJSWSKJPPYXP`TULWLSLd[WSWWRPTSKXWc_O\OQT]bWK\RSPUT]HOX^XZS`TKSUS^RTVPW_NQURUVTIJX]OUFF^VZgsFWIQPLP_^MZVRQ[fG_U[XPfObTGNVZNSP]YRQVNWRPQLWMQZVLVTTQZ[SVKPVKXRXVWZQ]HYVZSRLPW_UVSWUIPW[UXW[QHP\`KRZKMQKWLXRYYU[LW\PVUHQ^TLVYbSOQTPSZKWSROYWMNUPLVXaePTRMROITXP\SUXLTVWOTSRX\YJPNK[SRPdWSTMS_ZPPbXOOPQXJUYPa^PRTSFT_LJJWLPRURJQX\PIWUPUVMSIMVUNRSLNRR\GTNZV]ZRRWMRXWUUJNROSGNQYXW\Z^]TURPVUWRTTVWPSUKWXSRQJZ\[PR`TVQSXRNPLVSP\KTM]TTGVKCN]PVgLNYVWRP[VVL[VVP[eOJVMVVfW[P\ZQXGHQ^KSOWJMVQR^QSKWLLROeUPZiXQIIRMNjN_RQYcRV[aXVUUTZKbRSQNJ]WWUVSOKQ\^HRMYLTNZKSWTRPHRMVMNUQWZSVTLQUYYOWLKUXWSPR^YWYaRWbVSWPXVRP\QUd\VSLOZ]JUSNZQ]S]OTROSP[WPQXXWOZ^NTaVVTLTS[K^URVSNQ\PfNZ`XORGX[QXNTURTZVOPYZEZWRQZTTJW_QZPQKQ[NRTZ`QYQYUTQPSNdVWVKKUXSVV\RKXS]JOPWC[V^]TV\KTL[SSSXZZ`WMLUP_USPVcO]RK^SURLH_T]OUQZRNRUWONZPSf`dTWTRNYVNPRMLWSWWRN]\QRSSQNVURW`SS\RUXQ]U^\UTHdDTUKUQULK_aTNRSPPUC]YLRUNIPcLUTYScQXMPVQTTPST\PZUTQW`TMUOXTTTMYMU\SWQTSLLHXZXWK\QVLTXRR[UYMTPNQRRU`VPLJUPWROXWORPOYTR\ZUTLWQY\JVQXXTWQXOJTQY^Tc[QR\WORMaQSWNUcUVXQNOPOROWVKQLVS\\TUcJ\QZ\OT]UYQYFTYQVMRPGPRLKOUNMPHOYUXQMW^WQSVY\TL[UTT[WPPXY]QeQ[L_T^PRNEQSUHMNWHdMKURVUKJJaOS^Z_RVQYPOOL\RTKKJU?QFO\JQQTPNXHU\aPTWJPFNYR\P\NSVUOIQWVVUUXUYMYQX^FITUJTSS`LURU?QW\VNYJWWYVTMZQW]YYNSTTOR^UQ^TRSIZYPZ\RUQDJ`MMZWVX\_\WT^dKTQbSXSTERPVbFTU\LUQ]_[\NJR[_MKULXcLF_SOTLQSMQCEZWDP]NZUMQWVQ\\N_Q][QJNRUVXXNPOL]OVJ[OW?[VE[WTL\WTVTLVJT]VKUWWWVPXLUNX\RMPQR^KQa`WPLPTIPLTUQY^BPSLKNUVTYRPVJV\aOIMUYNPV^dbCQVQ`TRHYVRSMWRPYCUTWXYQQSOQUN][QeYKWXURYVWXcUS]PLJYATLTSRYV`MTZMVQPHOSUTM\_QTZ[TXSNMTVJLX[Q]TGSQM`PTURTRMXSOMROd\XRJLTMQS[OMQ`N^\UOWOJP[PVNVNN_YNQUNXOPZ[RLXWXNLMUMRXLMORGOOUSUL\UUSQ]KQ[UVXVVPPLTM^QSHbNOUZ`XS_WRPYLPTPSRFUNKPMQPWZWKdWWlPVUXWSMZZS[NMHPVJSPXK^[S_RPVNZV`U\OESXVe]XKQQOLMNOIMUKT\P[RWQ\RHMMOMI`aTRQMP]VSOXTMZaYRO]RINRPOWWR[ZQHQP^]WWOPW\FMLMYSVWQQWX_GNUWR]^NRTY]MWOSQSOERNPXMO\\KQ\eHQQU`SQPWNKPRMMcPXKRQSMXYSY]UXXL\ZYZQPUMTUQWNLVPXWUUU[_`XVZXXcGTVUgUQZFWNXDHORWYORTPTHSRS[HNYX_XYSVKYVVNNWUOPVWLQ[KMSRIQWUUXYIY`MZYPQVPKXWUS\VNNSQ`ULPKUNMPNPTTL]POKWPUWWWHSZRRTRKOKONRHSSKTYWTSS^RKPB[NSSNQNUPXcIXTQTPJKNSZPOVURSe^WMRQTSQTUWVPO_IPIQXI`P[O\SQOJOJMNZWM^OZQPYHLROTJOX[VPPQYZNWSZ\OVPZUIZTRMK_[\]N\QYQUSULYV^\UJTPN_L[RVTVPUTMURVJKTNRRRVPTJTRWWTRVXNXYYXKQVWQTQOTaH`TYVYMUPSVWPUXESUOS\NTXND_STVXRQaTLJ[QXTYXUXRYU\STTW]XdVROYXPNQUNRUQYSb\ZP[QP^LRN[cQRPHR`Z`]VT\Y]VTb^RTWdVUZ\TKWNMP_`WSP]RXJUTZVQ]WUVP]PRPP[\PJaPTQNaPWOR_MUWYH\[QSOTPSR[UOV]a]TWQOWY][IPZZd[T_WQOQ[PLS^RUUZV\UWN[^QUcZV^YQ^QFXQQYQhP[ZPRXXTYZVWJONVOVTNQVYNULW]TWTVWSNXRVX\LQQQTN\VJZXQVTULSQ[aW]GZTUSMUbOQbUZSQUf[LP[ZPKWJSVQc]a[dSSPR^NW[VSUWbKbVQSNNM]\SXPRcNO^PRZRTKJOZPZZQU^PWMQTTUVLOUNTW[^bXRWZLNKTYRVV]QQWPQOXQLQ_dQPV\VZVQQgUJLQOHWYXMHNYDUOMUPX\YTHSaOY\LTYTLRKHMMWP]\MTHQUQPWQKNXTWTVUR^WT^ZP_RWRWQNSFENUURRXTWP^SRQTQPMMWW[_TPTOTYWKMNWYQKK\KQYZTWUUJTZ_JWWYTTRNXKYYUTQQOYbSXVLTXSXTMRRPHJQMNWKeQNRTW]JKUOUTVPRU^^TQQTV[YWNYV]PVUYON]MPpOLTaKSbUcQ\OTQTZWNUPWQQLMUVRQVTPLQSIOUU\GKRX\`UVXJYSSWVYU\X]PSY^cQNSNNTN^W[ZY[VcUhQPNWVOO\QSTNRUMNRSgL_ROUNWVSRSUVWVURRUWVUVWW^QTYP`QSQMNV[YPQPS\PQPJPXVHUPHRQTP^]QYLPTNQPOUVHOQYRRVNKQHUaRTMkOUWUdQUPQSEIBYmQTRkFPVMITR[T`IURXVRDfURUSLGMSaWTXSLMVTVWUQLVXIVSTWJZX]OXQXNUUYYLVNXSJYOZ`LeTeJYSKXOX[YQSUNU]QJTMOQPUGPRO^Pe^NQRQNogXWO[UNWUYOcNTNTXWWHIOMQUUOMZL]OF^JN\YTUJRJZXFXXR\OZRRVSY^QOMP_VP@P_OWWMXTZQ^OPOEQQhOTYPVfQWQQN\OSSVVOJLXNXRTUMTWFT]_MJS[QPVVQITTMI[UPQY]QTMPUZZ^Q]WSXaP]WRbWQZQQUWU_eR\TUNKFINMZPTZTQHRMYTWVOUZVSQXQTTPKWVeTSNQVOIZN[NYZ\]aNO^STW]_RXIYZKSZXPQ]PIYIS`KaSSINdX^^P_TTTQ\SKWNS\ZWZWRFWKRRYQJSUL[kUWKXYSV]OZWNTSWiPTVbXRYUJSQYVVPVYgWWQZLXWPQMQ\NI^QXJPTMRT[SSZTW[WLUUXXaWPTSTUOTVPKSKcW]SFVdSPdYNNKSPWPIWOWSNUOMRSSPPW_XT[NQVTYVYZKPVLRERYSV\WYM\SdZNVdSUPZWSWZUVbXKJWZ_[\OMT[d_kS\TOTW\XYWWS`X^]OMUYXRWXYaMYT`VZUOL[PVTVWRMVRTVWPY^PNQNVP`RU[[^YSVQRNTYMRWXXXPYZVNWKVOSMQL\UQMVYMT^SKXUIaKZMVNZWNWVURI[\[YU^bTOU[[SR[QSQa[XL[[\RVHXVQQP\UNRJ\UO[UaT\MXTOYOLQdRLL\RMYV]E[QUKKXRMOCiTUNOZUSJS^V^GNEUKZVQ\WMWTWY[OJYWFOCX\V[a`TXUXQPOOJNVQ_UJJOOV[WNVSOYYXFIWRLN[OQIQIdXQTNMR_SPJ`WTX\^VQURTPMGEMT[NOUNRSRVVYePb[SQTQMRTWWOebNPWUUWU[PIT[XS_MQRFUeGMJPMMXVTRRDNOTLfZQj[JPPBc`SQ[OOYOKSYUNYfQLMNPL\UWNWZMVU\VRS^ASQK\SPLMSXMYXPPKMVRW[>SMNQXQMPVTNUcDKXFU[QILHKU\TUk^aQbZ^d]NX]K[PJPQR[TYQCaJUTMTNLUaYTY@SSCOXX^PIOiLLPfUSTLPOUS^[UaLNTnTPJSUWgKYLYX[^UNZVRWELPNRZNWPRV[OO^V[^]UMKZU_XZQXTVOIOJN[NQTHWRZSRT]TTXI[RNW^QXQS]ZZRVSH]V\\MWZKWSYVXMWQTVYSITYYSNMUKSVZKVWX[L[NQ]UXj`VVX]c]Na_L\TWYSWPTRX^E`ZZQR]TRYcZTVOQ_SXP^[\UY]TQZLISVXTMYaN_IT[ROSSPXSUVRWYZUQWPJSJRZRPPONIPUaMXSWNTZTLdUWRSGNOXVY^OI]TQUWQUU_VR^SNKVO\Z_YYVQaUURRMRRTZQSR]J\UTRZTLSN[VT_^SNT^ZZOVRKJXNTWVWXXVORWJSR\PLOUYOLW]Y_PGMVRSOTRTRO`QTYXSHZRMSXbORJSZ\TXX[XbSWLQkSTR[SSPSN^MMUNM\QbIPPKO_NNLIaSYOM]NOPYUYNJYIWW\PR[LHF]TTKNOW]XSMTZMU]OIL[_QKSW^TPYQR[YPGOUUUQMQPNSM\VWLdQU`WdP[VbMRUSZaTMSPMZaR]UYMnXTWQM]RSUTUGLSZZM]\SWOLPTH[\\YcVBQXL`SUSUST^eVPa\QXYMNVQIPPNSISMTXYRQVOVWT[oRNSRTRXTTOVTRVQNVWPH_XZSeSMUOQYKIWJX[RL]TOXOGPR[WWHT[UOTZ]\SQTO_VSPTXRNTRT[YQPWJa\MMKUUBV]CQUTKI_IcWGU]XScKV]WJYRXOONUXWWNgOWLRgUVWUR`RYXSVNUQLSV\SWQUO^SM`RX`\NRZTQQ\OXPL`ORIZHQXYRW[]]GPOOQWYVRYNPYQ^SZXPNQS]\P^TVR\[SVY\WaXbcPYTOQLJ\WDRTYQWKPM\_QWJ\SPN`UKP\RYe_ZSIVUjYY\YYZL[U[V[ZTVWLgWZ_SNXLSUUUQTMTKXWYV]_XZNYLXUPZT\V`XUJPP`SOUL[Q_VJSVQE]\VNOKWPGWTMf[_^_YZK[UKKfYKIZR^LTVaIK[IV\eOPS]WURXPVMIWTQNM[WPHZTMJOQYSQMRQe\ZX_PWOIQQSQWJXZYTaSTTYUVWRTKNLTZV_UOUSWZSURZTXWXY^GSRV]WUMVNRUKQ`UVPSTOVZRTRWUOd[WnZ[`QVJ]VSY_STL[T^PIQPPUWOaQTSWQO]SVPOLUV^QMwOYUOWSQZPYIXPQL^ThaVWINYOXUUSURkXbPYQQRKJSRFRTPJPON_FbWMOX\O`XKMbIYZSZYWdLPT^MRSVOWXVXSXTLYXGVWTLRbJcLYVQTGPOR^[YM^ROXHO\VSRSONYVIZKRQWWRO]\VSTMUPMWOTS\TNSN[YLJ^MO]YPQRPN\\XTWVWHJQW[_TP]KZWNXUMOUL__FONWWGOVMX^UJ[a\`RRYRWVURTTNEUWXJ^[ML[PmHT\RMY@VUNNROaOT_VGOWV\VW\VGPWRYTQUNPWTOUPSXQPMMOSQcJWPURM`ZIWZ[KWRQVNVXPOUTUL_[OJPTSZRJ\]VZOVZXYRTSf`MMKS[QPfRI\QYUU]EQOVVOJO[OUQZSIGQV]^OJUU\XRQOZ_^LUXDQSXRWNTW_TOQTVXYYOOXNTWPSSQTUVTTQTORQVRTJUUPNTWMQQUWPTPWTNKYQP>QOLHKPUINRPQQRI0VTOORCRQSS\MWRNYMYRYNOUJM`SSXQTLLWPORPONILTRJQQO@YMPSOHSZPLHTTPTRLTKH=QGQGXMOQTTPSQ][YUOVQQQXZQPJNNNMSKQLRTQWMOVWMOSbONTUUYUSOOQPUWXRXKXRZQZWTNSSRKQX^WUNKWMXNWLYXUUEU>WOTPZOVNNLOT`OOWNTKOFRO?MMMWPURUXVQVTZJNfSJTUUS[SQSTWQRUORWSRSXUSXYTQTLWRZRVQSN^[SUVQQQTd@OVVU]]PORFWWQRXSXNPKMVXR\RLOOj]OTXQPRJUTPYKKNTVP`N\PPZVXNUPXNKPIJUMPQ]T]PQPRTRS[QTR\ZRQYPVW\GcTQ\\bQFJUT]YLT]OVNYHSYY\P``YRPQSSUVNYH_XPHRTHV_@VKXLX^XZZCN]WONYWRSdRUO\YcYgPO^SWOT\SS[^ZZZeYB`TUAgSTTR@XGafAUB`dYLJOPKXTYJUSKPZC[ZITTIXRYOSeWRXcK[Ne`RUPcVRFONNL]UU]Y_ZNT?MYTWK_RTaP][L^S[WNWUZFXDRbRSb[RQCIacNZYTYD\_SXXWR[WTXSZf^`UWPQK]RXLTZORSJ\UZXVQQUKUY^KWZPOXSRNNdPW[KNfOZUPSaWR^QfKTJc`WQUQLPHQN[RPSW\QTP\UXVU_Z^NVVP[baaQT^QTk\bKGJiOS]hOdI[XU^PLQSHY]OV[HMU]NXTON`TQXRKL[O[YZWFWNM\_QXRCWPTdTU\RSbOOOTWLWTRJVVUKMYPMTeXDR]PTO]aO[RJYYWNM`PNR]W\QaILSOZPXWXFSX[T_]_VARVO_LXRPMOKNMKZYPKS`MZ[KXMXZQS^[ONQO\TQE[RMLSSVQbYE`TZf[QQ\Z_KXSPWUV\SFUaUXeQOZ_OOOSUMXUWUPTTNZY^\MQZSULROOP^_UQRUPST[YRTUXP]bZNORVWLVRVXRMVEUNUMMZQDVNRn][WaGRQHjU[VZPK[PGRYS\TKN_ZXYXLSLYRQOXON]TPPHOT^MfV[PDQR[WWPH]KTPdUKYQTYMNUUNPS\SULN\[MJMYZUSOWRPef_TWNZ]YRWOPLZSWZ^cRQYPY[Sa\P`OQPLA_eDUNR]Nd[\STPTV?JMSPWZYkXWXXW_ZSbPTX[OUbL`FW\LIMMD\eJU^TMTORRRTXFLOMLR^LVKROWMIMWPZ[_CRTNQFKON_VTTLQ`RKOPM^PIROQZQP\UNMDTN[UVHFbL_PLMTWTRSRWKPRaM`c[JWf`WSS^IJ[OWB^_WIcUUKK]IIYOL\RSbQYfR\Z`WRUXMGZYVMTMLGZJ]VPNLLXNMMTMQXNPcZX`XUQZPNQSKZJak\^YYKY?VVXZJVRNTVV[a[B\FNNZFT^\N\[WYQVPNLH`JYUJNRQSOUTBDO`c_fYS\WNZMNSO[MPHDZLSTZPWK`SSPNYPZZFSKYQL[cMGLPQXEHbSZPTOPLV[KUPbDLWeDGH]XWQKV_TCOVTKTSW`RQLCbTKV^[XTOPIOSNUWQVRE[MXM]M\UTaRYPUVOU_USXSIJSWTSWPMZJUYTXV^X^Z]RN[TWNP_PQMXLZJaIVUNOJW\ILZXMVUNVS_RN^JOVYWWSdTPPPXWWRVUSZ\RKVRQ[MPQNQMPN[]RXWSUWWTSMYQSXLTcUNLNJSKM\TMORWYO\UNPK_QK^JLXLGPSPL]NQ[OUIaLVUVWLXOZY\`XNXQPVXUJI^PPPNVS\NSQIVXKTZTQcYIKPNNVWSQRWPMMIKO_YHUNYWZPSVRCTRQiNJYSP[UUMRhZ]_RaTORTRZZ[LNJSWTLuNKUUYSSOVONVTV[dZPW\XLQYW\JNXUXK[KWUQQPU[_VOPRWPXQEY\IOeTVXbKPYQRRRXPNRF[dQUXTY`RcQPUNZaJ_\VSQMXOeVQMYYLKMSHFjORQZXOZWTTQPmMV[VTQSQX?ORLFVUVIJVPQXNdURWWR\JP[N[^QUPHV[XPI\MfWCXH_ZLSSPFTSXLU^WKS\NZMRWTNWT^WNWQRYWMHZRWTTYXPa\WUWX]\VMVX^J\QP[XQZZ\WPKQRUKWHMSXIWMUPLHSXOZVaRZ[TV`XNeUP[TWSUYXRPTRQLRUR^NcPUVHRUSTLaJ\JTXR^VZQTTYUYXQYTPZLZPRSRMRPKUVVJVQQPRV]VZNPVQMOT\OJMVdTNLNTP]KBNMLGTZNUQXSR[]V\SR[ZNWZSRgPO_S[GQW]WV[ORJVQVWHN^KTQO_U[QUOKUTSW][RPW\ORUTQKMYSDO[S^OSaQWS`]FV^P[ZV]O]NUXKPVW^[VOVS__JMQMTaRMNF[MWWSS[VSIV]QSWOOMTRXUTTX[VXWZXPOSXJYDUSSNQWWQPQWKVUVTKQTWMQRSNRTYM]SMKSJcX[UXULXNNMLMR\QWFQUWSLY[Y\]QQOQVWYNXQYNX[NXPRZdSOMOVZVUFULHYWPV`QLLGdRUfUSPSTcWUPYRObLafRVTQVQQGOVaZLYSTFQORLbITNQOOSUKJLSRWNOG[]TVX_^SWQQR^SRGWTX\YQG[SPJIQJcOKOQHOcPKT[YEYPXETJTPQW[V[WVQMP]QOM[XPKQN[TFSYLBeFQXRRTQUUKWOQT\XOYPSRKJKQIc[K[\OI_QYOPKPTXMO]S[VLI]TVSMRXP]RRNUQ[NISSPTNFTPTX\VZPLR\JVSQNSLOfLIWSLV][QYIR\cLUSSTXUOPTXYKP[ZaSKMUMTLOLHSPK[VQMZGH_U]V^QYV^^UOLNOWKZRQMJVLV\JPUUTISORPMZPQ^\LMS[[HSJZ[NWWVW[XJXLPbPLT_WRWW_UY]QQPWTUK[f[_OZ\OaUWRU\MW[VLRSQNYQQ\NTOWUXKZIQX\TPZUVWLUU`PQWZQBYOUONWKOQfZ\ZNJQOSUSGQS[O^NVSfQQNY[TOHUQHUVZVQJWTLZJSQXT\\EWLLVQSXXTXWTYdZUYXTZWL`QeOZU_TJIWWXUVRTVVYGWL\OOSOT^NXNVb`ARSSPSTMOCZRMUUIVV[PZaVOVVZRWX[\TRPP[\KJUPTVKKGNSWDLSRScPdVRM_SRSVUMR]ZOR]]O[Y`PP\QSYVNXZU_eTVVTQTQSIPMOILSgOO_eYOKcQSXZ`ZQTZHVOSWVILSTNSXQRVST\[XUVORORaVJ]T\PQQ`UOVTRGGOMUbNN\QL^TROK[MWITU\OMUPRTQT\UMSUOZVYPSZXT[UK[W[NSXQNZ]^TRWVVXY`VVXQOTNVLYONTZOPSZUYURRISOUWTRVXRQQURTfTTWTPSWVTLOMXTVQXQRPPR^RNQ[VPWUTQVOKPQ[P[UOYQS^_WQXgPTW]NQUSTYQSQPYS\\OWXQPN]WTQWMRSNXgRRPPfSPSOYRXPYW^XRQ_RZMSQWTZLUUUUJQWPQPMTPWVOSZWPUVYWXVWaPSUWYXWQUOPWTVPTYWWUYWUSWUUPTQPSQOKXP_VYPS_PTKeVNQRSQmXX^WRMSR_ZZUTPQMQ\MRRWT[NSWNJdaTSVTWQZUXWOVXV\XTHUTVUNVXRNU[YQRRTQ`QQRQQUZY^QTXV^XLcWS[ZVPMROc]WROTSVTXYQRKdRVXWP[TYN`VUNXaXcSKfU_QZOVYXSWS[SNTQSWQWSU`[K[RHRTUXOUO_WWGYRVHZ_RLYJSO]NRZX[SHMU_TV``KX`USPOULP`S]LMXLULXUSVUVaUSPGPYMMI\RYS^PXOYXTJVONIWNO]VVcUgTRXOWUPdTUaLV_XTDXR^MaXMOQZJURaUVRNDO]S[TQSRTPXNfT^_L[ZOXIRGLUZgfSHTPSKQUQWKQUJMUSNP]OWSVWe[[NOVIKRH[TRUWYJaVWUU]ZIQ]cOQZLVUWTXTQRLROXKHRQPRWTV[QXaJIROPUQZMKUUL]Y_XPRVKZTPRQYRUOYZP]PNNQWN[USKRNXOLTVWPQNSZSMN]bTISXVMO[JTRXaROQPU_GYSYRUIQOSY[R`]SYZTRUUfYZUUUTVaQVYTLK_QLZPROW[]OZUSYTURSdVYMTZTWUVQO[QRPaUYUKRNTQJXTIVTVKaUZP]O[GFW`QdmZQMP\^bV`TDRQNSRYK]K^SO]_QU]UQ^OXTQTSXNWP[Q`HUUKVTdXIHacU\]cR\OSKYSYENXOXPXZJSOVSPHNNTNOPJ_I`SUW\QRQXPKT^_UOLaSQWTOMRGUUOWLY`VYO_YZ^TUYVMWQSZEJaSRUQY\HYLSS_]WTMLfdW[^Q_ZS[SOSUW_`UQWXTWXXY_RIYP`OUaLSYW`TWWTXUU\UUTQQZ[[JNYW[QVXRPTVOUXW[YMSYfYUUT]ZQLJUWUWf_MV`ROYOSYTNMTbT[SQ_^OTN_TKVUDVMQMROYKZT^YUPaRWPP[YP[OX[O_PJXR_ROJRUXTMHIMTGVTKK_TRR?^PTYhOVL[NTIUV^NPOSWYfKUV`UQ\ONOXVeUZZKXUZNZXMRRJQIY[HYOP[RZZTRORNPXNUMVT]ONXV]NQIGPZSWNPRRWBXFMMJSNNXdIHKHQWeUNZZZa\HFUQ\QVeTFJCfVRRKWSLV[TELbJTVKVWVOPVUHO\DICQ[^c_VURSX[V\WORWPQOXUI]YVIKLOOLSYNQPSWQcUSRQS\UIZHSRYRWU^YTTNPRT^_IQRUKTXMXTUNSQU]H]URM[MRQYYVKQTOSQP_UOPO\KHBNPLcWPJUJOdVXSRST[UXXVPXPUMZSJPRYNVVRYLITIPQWSNTMZYQQLIRFWQVbUNDIMKN\SR\GS\JLSPOVWOXPKUHSSXQOVYMMR`RNPWNVMWPNPVVRRMRWQPXUX`QRMW^N\TOOPYPUVMURPNOUVNMVTYWXUMMZRMZW_MQZTTRSUZWOQPcXXYQOXP\ITi[VTNUNQLZRSLV[STYM\fQQIOUPZQMNXdV^HOVRYUJPUPWPb\OMUQ[Q]\PTVLW[PZ[RQY^PU[NUUOU\SHJNRN\TRPSXX_PTN\QTR[UZPOLY]\\UYXQVOUU`URWL]LY_OT[VWWUWXKQ\JROVLRYXWQXLU_NQMNSQTWMWNUSTUQNKLWQSPSVTZTSQX\NZRQUbS^VLK[QRPVXNTQcVLV^KUXVHYYSPXNMWZ\FTOUUZSXYN[NTaTYSXWTPPFJWOXNPZRPPPQQQWOXLRXUSX`QSSOVPUXVPIUUP[Q[ebNWMOYHTUVNO[HPMZXTN]WXUSPEQVRJZWUYRWSSTaPVaSVKSUMPRUX[YXQ_XXQNQRK[UZMNQHUVPI]g\LMUNMLSUSNSPSUR[aUNNZPYYPJXPSVSPRMXWNVRRXYLSPYRIO^PWX_TTOO]GQRSWRU_[]McXTQSRPZZWWSL[OUKSUcWUWWNSS]_VYMWTZVWVYOQ[YJLQVTVRLNLROQLRUNSWVXLYQZWRORNJ[MT^KXXM[U]YRTZ\[KKLIOQOSFKGQSTJXP\\YSIUZIZSR[SZVP_]TMRSUVLTOVPSRHQXQRNTUSTPVXKRIPXORT\NTWTOZO]PQXXUURSLRQUUSWOZSQVRJNP\VQQKWKTTPVUK[IOU\YVNOQUXKXeVIQ^[TQMNRWM_][MOQPYVL]YVLLY]RUQTCRUSKMGXGFVMWVX[ZRNV\\OU\RYVRNIdW^S`]KSUXQW\cRUNTKQQGRLTTT^XSMUWSEGUDUQRZZWWQYDTRTSFNXU\BUPQWLQZZPYOROVHRT_NUNONZPKcOUSRXOQdTLTW[[kXRORJW^VP`HMcMXUbTPKWNL\XP_^YYRYSRTPUQLVSfSNTNJ]YYWJUUIJ]aPPQOMPONXOPOXLSUZIFSVPIRT\JLTTVRQXJGRRKU`UOOKNNNNOXUFIMUPXOLDZNMUOTQOR?Q_TWUXRNQT\DZjVYNNMOZTOM[GDQbSGTSJWNFSISKNMNIOMUOVXPVPQPQQNTVOO^WTRMcVNROVNJLLY^QJUJWKJZQUYO]URST]bV_JYOVbORTZLOUOUEO[]QLQdYTKMVUQ]^`HTRZQNPQN\HSTWYPLN[VVYgKRJbOPLZPUSRWVSMR`\KSKZ]U^JKWNTYQeTTTOFQVKR^WPUVaOX]YZTaYYPY[Z]PdZb_`XUVVOQVNRTaIS\OPQHUOeX[][T[\VVO]TOUiPKWNLTFTKZ[UOTWcKTWVMNLTQ^QZSVIKRVW_`T\WMUYRUTSR_]UKb\TXaOMX[RZUWRVOYUP\OL`NaPNSVMSFX_Y\VlZNNN^PNYOaOZHPXaTQXT`\WJe`TWU\NIaVZWWUTZYLKRUZaOTFZZXRPZYXR\N\\HOXYOX_`R[PkOTOLW^QZTfZTUTVOZQR]TPS\XRUKKKOQN\[IUNSSXQN[YK\[YOTK?OP\SQHIV[TTPTVKROYXPcVWJWXY^SSI_\^TIQWIVE\MSTL[L_bVWYNZURKNNTRRaIaUGGQN_RXR[IYQIQT^]MUT_\WLKN[X]LTNONMMP\^`JMP]HW[RWccMDKSa\Y?DZUY\\UGQXiGUEPRXVPW_IGTSMOVJTWMR\YLTJOY^WKcOXPJXN]Rh;VUXVS_OcBOFhXOOQLQZ[ZXEL][V[]MHOW]MW^SQPPd;Q\TQPRNRPMVTbRVZH]NQUYPdHNON=TNQTYKLSROUXfEUVdP_CRMZXVPOPTUYLUYKXSXSNR^VPUNMLXTkRUdRQZcYcPRJbKZQUOULWLOLPXRGI^QVQXRQj[[XIS]`^K\QSQQS[Y[STGOSj[WQONKbQP[WIXRMNP\T\IXGPXATU[QPYNOTRPVHQRT]ONO]]TSTNRNOKKQRMTLSY[X_I\KTVQOT^RbUUOVYMLM_UOJITOHIRQXMXQUUOPNaQUUZZIYMOOQ]LSIPVOPXTcYWOPZNQYVXOWPSX[MVO\TMT\TUTUOTSZYiSGHhULTVMUTVUTTDXVU]L`QJHaOFNKOPZYWOZM^UH[RZIQTaQjZ[LYPSTSLKUISLVXUXKKOQR\Q[OQUFWUSLYQRXiVTUMPM^PRLXTZTVJTIOG]TW``LS^PWWNUN`OPVPTJWUM]WONNUFVSPWWXXURP\TYKYQLNNZTUCPSZSQPUYTYRRVXYKLLNLL^\UJMZIYVTMUOSMQOSOLMOTaITXMS`WF[RTGTLPNXKSN[SWZMQTNRZSTZXK\WQJYQ]b\QYOPOVS\KXb\\KRQO^RMO\VTUS[SP`TXLVN^gZ\WZ[YLKWPQKV]QTWXMSRVZTW[K[RTUOXVUVRGOT`ZbUZSUKNTSTWPP]\UUWKIUWWP\NQLVOQ]KXURXYQDVYeUVVRYU[OK]OF[SQQVOLTQRLGLWjR[Q[ULLTU[PWPJ^VR[O`NOK[RNUQWYSPQ]VYZ[VLRSQM\S[LSVQVXXKWS\fU[VMPM[ULTPPQPaP[eSVW`QTOWZWNRSPVPQUVUN[\QOTSSMPXZZESTQLVYSSJI]XRKQPVm`URLRVO[UWS_XUUR[[PWOSULQ\XZZZCNQQWMeQOTYNYMVQQPUM^HYKfWXSRMWVRLXWSL\_JSXUP[WS[QOTXV]SNWVYMQQRHRQOSTQRXTWRXXQOWPYeTUSZ[SS[CSSTTQTSOJWVTWRQVPTSOTU`YHOTTPKUR[QTW`LNbSOQUZUUJT[TKRPZSRKKWRNVNMaYVNQJTPWVOYK[]SNX[ZSRNKRdUXYOEWXPSL[RNUeNNRT_MST[SeQYM\SLXNSN`KXcaQUQVVO_EQYR^gZYaRPT`U]OO[KOJSYVXUTMdSXPOT[[PRNJNSZTSOLOQTTWQXOQX]FPPNLVSHORWSOUOYYPLKNSQjRNXYQQXZ]NOYPhQUYNVVUWPPaQ[YWWUMY\USRTRNTQQWTURWLWRGQJRSONVP_RRUQQM\XRW]PXXVNZ^U]XdVVRRS[QXSURQP__QSOU^URWTTLNWYRROWLSYTO`OKQNMPUTGPONQYSUU[OVSa\OZL[I\PLJTVGhSOQ_SWIULYYVT[PSTUSWRgRTVMW\VXS]Y[X\LRaKTWQ[UVNRKWLMLCVLSQN\XM\VKXVRQJQOVLQPSOYZTGY\MYZVMN[TPSTVTOVFGNXM]hRIZNNVP[QQV\XOWMIYJT[Y[KPZTK]HY]SNVQPHMUPMPNMT^GNHVR\WVKWVWNNYMWPVJWIMJWMGMGOUWU]YH]UWSYShJTKOPVGQQHSUO^MZQIRRXHVBP[ZVRTRXBQPYFUNRUNYVZPYIMW`MRLMTKRSZTZNPVRSYYZTIMLUTSNOQSNSKQQ[F]SXII`SNXRJLVOP_YYESQURQNTZOPX_RcTPaTWULRPOORTTIQWHSYZZPNJ^NOZVU]TC]WZZQTQZWZNWQVW\XTVVLNPHGPUKOZVSMVWWZ^SVTYNLVOQJTSSUVSTLPVTSOVWRUJT\XSRRPNSXYN]\VXSZZSQT[ZNOLkLRXNMVULUVTUUOPQRQQOONM\VH[RZ^RU[TQU\]KKXWMULT]`YNZNhYWQV^XWZXSTUTYPV]P[QFO\UWRQNNOVUSUWG\UVVTVUWIVP[XQTVMNVP_ZYNVQ\LOf[USNYQYaZ^RSROXZWZNWRPQWUTRNXOSVVVNZXXU\ZN\RLYPMZOWUVRWXVVU^FJYUS^UXTSMKPTPVaUWPcNLWPLY[aUOVNV_S]VRX[ZTTRU[YZPQSRTSOZKRSPEH_PNR\c]RVI_WPSff_TYPhbONPOZXRR[[IRIOZOWLJX^QQSVYOL_FLLgIPHOWJTKRQOR_SQTSXKaJfKTT^T[XYLNSXcKTWVGTQ_VKTYKaO]ZYUJNZJLTQYDZRSVTSOXUQTSQ[`PWPGUSWQRK\UU[YI^VLIQP[LLQSPPVHOPUMJOITQNVSnHOXiGJV`\KOQUNVOP@LS[VPRgTVVXKTXSNN^XNWN[IUMPTLKeUMfV^MMPWVQOKLUUNUOWY`NONeIW\XJNU_ZNQN_XITfVTPTYZTQRMQOSJ\HU`]]VPPZKNRUZKKQXUOPLMWU_[WIT[\NC_VQFXUYWQR`VKVbSL\UOedLNYVRPTQTZQTYSSXUOTIONNHKXTNPTQQOfXPKSTV_QJQQPTOEMTUTN_LO\Rg\MQYVRUZLOLR[MKO]THYQREQU\RQTZQ[QXWVUP`[B[VT\ZV]XPPWUMYT_SbG]TUZd\`WXM]lKPNTUMWSTd^UY]RQW`NNO]WaLXST\M[VVPSSUXWYPLKX[MRZOKVGWXZWaVc_\SP]W_XUVYRZSUVVNTVV[W^W\WGYWVPUWZFX]UURQSVLWITWOTWZQM]MWYPaSQNR]W[OMvPSP_XPTcOUTRVYW]QWM[TNgOYXaMPLSbI{YT`U`W]dZQVQfOPIfXJ]_]KSKYMXPSUQFSYS]aYZWcTNUZRXX[YSPW`XTPEaYTLXUPX[X[XVWTXXQYSIX[WNVURTAOWYJTQVKQ_RS_WUZQWSURPEURKKWPYUZT[eORQbMOPYTSHW`QLQ\XXSPTTVRPTOYRJ]JQSKZH[G^L[PJORLaV[SI[^T\TKdTRcS^NRVcHaKWZZU[F[]QLLMHQT\PP\[HQPkYQ[lhY^JVZWCOUM[VS]\WQR_RUV^PV]LVYMQZ`OLZZUPYNONHTVOWKVSUNTPQLNXVQ[J[SGQQPTJ]XX^SRYIRJUTOIV_PZY]QGWRSZSY[RNMLMPZ]`YTYSePTVaOZRQ`L]RI_QgPRjNTRUOW[cWFZ[QTLS_MRJWS^NSLWcQ]TS^N\QPQNOUOSXAUFOUTQaMZPGRKPS]\NYTMVRRTS[L[SSQXWTF]T[VWPROV\NPKPITUETXWWSOX[O]_[OXKKUefFNVICLlXJXU`ORKQNSPUUVW^TWTYUYUR^QPORU]`JbZgGZOPMSZQcFWXQPPPTX`Y_KNRYZWU_RSXQTXUOPWS[[VXUZUYYGYSTNVOQYXSS[\ZNURSSQJQPNTZGVITYMPYYTOUQ]JKRUROXPIGYTZQSYYTPTXWUSPNVTjT`N[WX[O[TJRKLRPLSQTWRRRe`KXT`KYR`KX`NOPMWQfZZQMMON\NQLZYYYJJPMTZMUXWOPUS[ZVZ`SNQYZX_OLSMSSPR[`UOTYJSXPWOMNCYRPGRWIHOS_HH_LPVSLR^\TPUQJ\g]KYN\^MbaZJSZLKWEQYJO_MQSXGMSRYTUWSYUWSNHT]YNMNONXRQ_[SRU^JTRUSbaVMTSQ@XS[SHUOSTOSWELUIQMd^PTIPbPKNSXXX[URVUU^NMKVUdUYTSN[RVJSNWVUSVNYHXYNMNSXKZHZ[WQPOMLRQMROSZL\QRPNLKTZZVW[XSXULOWXXgZ\VTZSRQU_PK\RUUVNK\YVbVZSTaOa]OSZPVYRTUVZX_SUYXMTiVcUa]rLTOQ_ZV]_a_bSYPOY_Y\R[S_P[MTP[UOZXOKLUMOLURTXQXVJKNU]R[SSEUbOULN`UQT]PkhQ^UQM_UYPT]VEW]XSJVR]K^SYWYXfETPO[NTMPS[SRWUV[VGGMTRW[NM\T`QVNZURTYIPZTYVVeVNKOPUOMMXTNNXQRUS`RQUYYRQTQRTPRUHMQRS\dKWXU[TSQV^NXaNRW^ORYPV?KN`WKgWQ_XPd]S]]P]QGUWZXVTVNKZXPK_TRXVVPWUdLY`[SWR[UO_LeUUMOY`ONXObR`ZTN`WVTQ]QW\KWYOHN`SGSVVPVYZaS[[RM]RTWNOQFRVWSRV^QUUTJNbSOTLP\\W[STSWLJUQXXHUOIXVVMMVPMAMNUVUY[UVNSgWQW]KMTSROZSQ\YVXKSVFVRQFQK^S]^PUWWQVKNYO]N`EOUO]]OQPSN\V\SGUZ\hMNbOOPSVWQOMKSXOLjF[YVLIEPLHZVjSMKY]V]@RXbVHSVP\WPTSRXObVSgSVVWP\NXQNMQ\SLXhDRZ_LWbBTWQQUSQTGUTVKZYVNSZSXYPSY_^XWTLXSPTIQST^NP[RZYW\SUOVLP[XSUMSQSVVSWTUKV]ZTPHTXZTQ^bTTPWXOXMQT[UVXcRQUWTWZOFVU\\QWRT`[YXXYQaIX^MWNHXSOTXcSLVIYTKUWPNUSTGM[YNTKYbN\NSLcLHMZJZTXQPNXWLZPRLZVOQlVJPM^YLU_V]^ZQdXWU]]OLY_VPiQI`LX[YWTXIINZOUc_SQY]PQWOOMRIVTRRT_YSXKOYRT]VVUMTPQMT[LOSRSNQTTNUORRYUVSQKOSLWQNSTUUZTPSOP]JSN]]O[P\O]Z`PO[PTI_IWYOYXSTQ\\O]KPXbTKNVLKWWDU^XV\LQRQ^\OMX]KXTALW\T^_T_OKR]VeVWQVL\P\KJ[Y^SIRTOZSQZ^H^OZV[_WUMKVTW[SUXL[TJQNXgPTNTdPROQOTTYZ]HZNYOPUN[\PMPT\TUMU\KNXPMPQRVGZOTO\OKXNWTPLMVP_NHPRVU[UTTZRRUKXJMTXORTRRRRTVRP\ZQV[OVY^SN_YQPJOO]QR^XWOZJRXcPJQQMUYVMQTUXY]]RNR[POPbSTUV[[SMWZYUSVXW^SRVSVXSU[NPYNRSQZLKTNRWY[TSSTQY`UTEaOUTeEXDWSMMISKTOLRYPXSPOZ[U]RM[U[RSROXTRRVOUYZLTJMSNSLKT[UMTO_KNI[[SGTVTQWVSTNRSOSMSQXUYLIUS]SVUePJOQ]PIUcS`YXNJYUTUHPOXZ_QVMgSSPJKSTOMOROJMHSOSDVE[FFUPSOYNY[PUUeN[PVYZdUO]]SORPX[P\Nb\ZOMOZWF]SLTOONOMUW]PfbMOKXIQJWRY\TWPTSXXW\RP[HUP[QZR[TLOJWWRVY^QRWURSJOFYXNW]`[[QN\UXMT[T^SPSOYWRYXTO\QRM`TYXIGYRZWXPXWZOUZQS\UVSV[aSOWWNYZUPaUP_VbOYOU]OTUWUU^X[GO`RMRWiLNOa_\\IVLLX]U[SIU[aUYKSIYTJYO[NN[UK^KKUVmWOLWAXZPROSRRdUjWPHJbOTL`MOOLbOFSJRWMOPLULXOTZKTNfWaHJSZNJPQXIXXbPKUPNJi^[G[[SGRaMWTZTPPFWUVRZdVRRRXLUWZUSTYOT\VQOWR`QITIIaNSMPVN[UUJdWO\EF`WLOXUJXIRTaITRLXRX_S_O`XOaVX^TT[RYNP_L]NXUT[P[Y^OWYRPPNVaYFMTUNV_LVQ\NSoUUPV[QOL[PWOFSFLLQTKdOgWYXW`LK]MTeU[FSRS`OXPKGMRLR_VM\VDMOXSLXMa^MTLXEJTSL`^FPFMaNSPIcTU\T_KXUPPSSZWYSU`PVUVGPPP[TS\VZOSQI_RMLTNdQTTPOTYOT[RVSYSPOOURV]PTYOVK]TPNRUNOl[WSSP[R\`TUYS\OVRNNHILJQVWXVMUU\UMPUKQYUPZRZ`hKWRdPSXKST[LLQ[WXVURROURLMnQJNOSUVMQWWNOSXJ]YQJUHWX_V]]TVQRVZRTXWQXUXNaOXIUHQTRQ[SVUSS[U\]JMSTQUHTQQVL`VTW`UHQMQRP[PNMQPIWYRFQLLRMNHLXOU\G[SMMUTPLS[OEOWINQXRS[TTHS^SYRXRTJNVWDOLT][WTcUfQRYX[TZOIYZT\PQU]ZOK[LPOPVTUUXWQYQSTOXLVPVYZ\NMTMRNOSOTWNJOYKWTSMNVWKNPPRZQYLRSjLNZYINS]NUYOILRSNO]SY[^J^^YVYc[]WSQZTQ`VQCXLPSL]TP`PZRZXKWNMRLPSQRSYMSKMH_UMLMURWUJ_QPPS`RTUPUGONYTSSRPRKMPWRR_WUVYTXWTQ[OMMPSWTbYQXZMUZXWZOVXTRRUTTTQ^W\SRMORL_XMSdKXJQXPOURVTRWSWYQI]WLLTNZ_^ZYbQTVPOIeYSFYVTQTPQTYYU_M_X_PSHSQ[RM_MWRZUS\MKP]_PXXUWQOSXQ]SORZXQHSQTTOTPZROSXJ\PYMbV\RT[]RQXIOVPOWLNGU[TRVQS\KPRcTQJ[XFP_PY`NVJ_PQUQdcKSZXQ\U\QSV`QPQWMP^US^UOJ[TT_]Y\OHNSSY_VPSRUUP]SIZVQGMRTM_WYVQQQLYWaVWTQWPYK]KETTSYSLIKK]HTYLU[^RKWbT\WRU[VWYXPQLORKQQVW]YPRMYPROQLOWNQVPQOPZPOM_\XPR`TITUQVJVPM]TURVRQSV[VPPXJWdSZP_KRSWLUU]UVMUWOV\iRXSNTXS\TUVPUT^URnVKJSQP`RY\MUT`^P\_MTU^OJTTYFUSQUT^IMXPQKJcTLSC]MTK\RPKOMP`YVTRUUGJQRZdUZK[ARZQRYORTaVTKQTLTTN[\NNZLXVSV\TYSYTYLW^SXQJRYTG^SKPVTSWMJOOOPTYITXVMKTRXLYXNOPY^]ZX_QPZQVdMVR^HYZYRSUXVQQ^WOTRRUMWMOQVVM[TZXHJ_ROHNaIZfVOQaTXMXaP]RNRNT_VS[PbUNSNNR\LYJPQZTKbYTUW\CWSY[KZTMPRTS`UXb^GQ^ULWNXPNXMY\WWIP^X`TWYQK`U[ZXOOKRPTNeXPTORQW^O\WQKS]TLX[cSXRV[MPY]_LONNTOYPTLMWZXYPQR^b_OOOS^PPZMOJG]^XNOT^PXH[fB@TYTYWZN[YJTMNXWLU[SIWYP[YRV[L_LSVYX_QXINZZTPS]ONTV\PUSMbW^S[PUYURVXMWNWTXIZQHHLUIRZRSNOKMFPS\XSY[Z]WSUNYRQEQZWUTQ[VMPWYoQHMWNVOK^VF]U\KLYQSLbbS]YVPRWWM\IWJXXYPH\\U\S[ZP[MPcUWYPWWaZS_PT[[VZXLPa^^T_J_NQQ[L[TRZSSYRRSWQVY]SSQUMTUbEnYNPRLZHQZUZYV_IRPMXW_KJSUQ`SRQSNNT\TPLURRUP`[GLeBZHgQQZLTK`\V]MJRSbOMUKUYV[LRhOKNXJP_STaQRWXNdMLUTVRT]\OScNTdUYRTSYYRPUIYRRXRJJQNNNaKS_VMNdMSWRTSQZXHTKQOdON\UV[\TRSNXL_MJQGUERRT]VXSUZWPWIa[d]\LNVFa^XaTR]OPVUNIPKTOLYMRXRYP_KSPb[XTOWSK_gRPAR^XXUKPRMPUoKTbO]R[VOViXW_NGLRYKILR]]VOWYVTZQPLZH`QYXTYVbTF[XKSK\RKKWJSHV[[WT[ZKQZ^RUQZW\P^QcOSOLYSKTbYXY_WPJQYNS_[U\ZWHY\T\NTQMKMWScF`QYPNHWNOHGMWS_[RXPUdWUITG\RQ]SHXWNSTXaC\mQ\XaZaUcbHIVImU\XRKTdXLXZN`YRLVXHVVRTdO^n^hMOHMXZXXLZNWSTS>TYZJhS_WQjVOSa[RUbP\YL]\\VVY[d^]Mb_RJ`\SMMO^VTPVNWTYcY`U[fX^TKZddTV]]ZaJOTWYTJPVY^PPYFUITYNecOTP`a0T`U]PULZZTGX]ZMNQmaO\TVUKQQWN\QN\UTPZK_TbXYIV_W^]WKWMUOXYKZYZRXNUaSXcQT^cZYfg[c[Va]DUSOVXXNVGJUN]]HJW^MJZQTRO\YYUaeUKfZSMJL_VTUaXYV[fXZWWS_[NQ[Yk]XQR[kWRVRNQ^d[UeKKMZZ[RYS^WUNVYWNW^ZSWTU__UTSTSTVc]WIQTQdZ_PRRPWVTUYQNVIOST`QTTbRQQQPLgNKQ`ZQ^P\SVVIWd]oSSUVF[HZLO[ZRmUYOZTUPRSKRGMbXOTMMWVfEZSPQYR[PT_T`W[R`QPgYWWVM_^bKROT`OXZbRLRGYYVRNRZZQVRRMNXKYWKEUK^PSMTQXdSSKYWWbVK[TLSX^P[WQWUZLZFWM\_NQSKXFVTSTVQUPP[L^MPQQe]QQZ_`UYWSNQLRYSNRXHWT`\QXNdI]^[QQWEWTLISTQY_U[G\MVMOSUZT]TVQRMZVPVW`E^XVTX[THS]FRVRY_MYSeQSMQUTMUA_PYRUNWKTOU_NTTT[mJRSCXW\STWXSSZNX[RITUS]O`ZZSU\`^QaUVUXONZNQOUXVZMZTRS^U[ZUTPPSMXNWSTXLNLWWPNR]SXPVX\QLUNV^PTDQP\OSQYQPd]POWWXSUPO\]X^\SS]RRRPUWSTQWVTS[USJHWSP[TLP\SUUaD^UVMSSVRXVOmE^R][R^MNVR`YSZYUT^TX\XXN[RXXQN`\[[WT][PS_J\I`[RLMY^RLOOROTa]XVR?eKMKT^OXPXMNiP^R]XS_YYWVXUQXTYTNYPQP`_EPaXVSNONZQQSYN\WMUKVZRUVXOMTSRUPSQTJX[^SHVTOVSRV`MOMUTUY_WLZHXTZTUPQUOLTOPPVXQTYJVRcU]^\RP\[S\SSNWQRPWUXKYceWPLaRS\SVUUP[VfURKVOQONWRe_[S]QSUNV_TSVTNXSZcUKMYT`SWFSW[TU[QNQPK^Q]M[XI_YOMZUQRQVVLKMUM]fTRIWZ\aQVFLbM[TKRNYNPUPWQTOQ\YLLVQPTOZKIVLTON^VLSLPYWTRVRXL\LVS\Y_QX``LMZOO^ZTUMLO[LUQSaYXVWT^ISV]W`CXWMKUUR^YRcIJNSUR[XWZGRPQ]YUT[]SX^fQ_TL[UXVNMQP]P\XUNXX]WPYYQJPOOWOPM^P[WWFPNNISPUUe^_MOVTP\b`QUKUS^UTU_]NOYPTRPRT\PLWYYd_\ZU[bXVJ]fhX]MHSc[[NVWZQMSKNRLQWV^cPTTOTNYSTaWW^LTNSQQWVYPQ`POS[OOPXO^FRVZXXQSXQ^YQTWP^NSUM`NSOXMZLSSTKS^QQSSJPVUYXX`KPSXNMHXHZJS[XQS`\WO[UYVLZMHERQNMATXUKKZKMNWaWRRQUTSYWQUOO[aKY[NWMP`TRIQUOWQYRGW^WXXUJLVJILTWIOUVZZZMTMSW]UNaP^NO]NXOT^YWQZNSPoWOTWHLVSPSLP[QQQNRXPLZdS\WNKN\NUM[_SWPW`VN]RSXTTOWDfRRQ\QO\YVPWQPIQTIXSVYeRNEWSNS_WNLTOXOTGTYUPaI]NOKaMS\VQMOYWhTSQQKQIQadPYVPb^Lb[PX^PJL`[R]TRPXPTTV_RZXMSKQRRUVQ_YHP[Q[McPRRTZXOQTRVTQKMUMXUZ`YQKbXXLQNKTSRXS^[KY_PXZPR[RcU^R[KSTJMLTXUU\WV\`^JNXUWTWQRONPXTVYOP[ZUWKRTPMUO^WNcGVUTNXK\NLUZSYYTXYQ_^JSR^WQVPQWRQWSMTRV^\X\SMT]OQ^VNbLT`TOSYRMPPPGMQZOdS[^TUK[G^YTDRJMPaVYPSSVOOU]UQ]MPTUUV\NNQRaQ_GPYCZYNMMIJSOSYUILaXY]NPOT_T`VSOJUO]KRKLU[NWXLZKQ[RWL]UQPYOM`VX^TKR\YNTYeOMVXYXLTZWVOORKl_MJ[WP^PUNVSXS\TPTQ^\V^^SdOU_N\JVMXZRNPOWTZQSZL[VROR`ZPRSQXL^YTS]ZSXQOTZTPWHTYKZSNLQWNNQURY\NKLPNTHTRPQSQXU\OPMTWU\ZQ[NNXV^QXVPSX\MVQPPSWRW]QJWVZGVRS\OT\Z`TO]NQOPNV[RUL[MVXQZULHRVPULTRPWMRUOSYFNM[TRPUNNF[ZQQLSXLHSUMPf]VZI^SXT`YQQKRXQUTX_VTYRUWQOZUNWUZ^[FRUXXYM]ORMU_H]JERRNPWWLSPZMTOZWR]VTQVU^[YUUOSYQIYPZ^LRRR]YYUYRVQU_WHTQTIPOSVNWbYUUL_HP`UFOTRLSMOU[RMYXNS[XfTSaOW_]VSZZV[VWY[`\S`VOVZVSfJTV]VQPJ^ZQWPVaYQNaR[YRW`MZKOYPYP[\RMKLXTWMXQS`WRPXPRHHWTVPUU[WRRYP_`VWMWTSMYZPPVONS][RR\VOR[[PK`SNSPTWWPNKI`VLTVMSR]NZMUXMTYMVYRSLR[T^\XH\MUR]SJIXTeUURU>INNVPSUOGUSPILUMIPP[VRNPOSOTS[QZIUOMZeYcXUPJ_PQVWMNLQVTXZQNZYZYYPTQSSSPWYIMOSSVIbXJWQNZUVLW_aDVXNZWZNfRN;MWMNLVR[UTV\HUIWLVSVVUG[S\KPSJ]XPUY@R_XWMaRZ[`MTSKQXGLV^QPPMZLV[PXcX[_S[SWMVRQS\OP]YQJaLN\BLZWbQPO]NOLZ]NQVLXYaQKQT^VONN^]HGPFR[RTNYQUUdS[UXQXhWQ\[RJ`ZMUYMJZP__[QTVSMPJW[JX^NTM_PPNVXWJPUiXRSVQePR^RQWTX]c`J\^^RQSGRTIGT[VQMRUTUSSSSVOURXUONRTTQOY[cWT`W[WUJYXkWXXMSW]NMKRNPSWWLbNU[MORUJ[OXKXZZ\UOTYRPVTVLXMKO]WXQSR]LKWPOGTSR[LQHURUXSROGRTKSI]SWL`O]YFXXLLOSVMXW\VTXUTUSUXbVYNQYXJOMNQMQLVP^WUNMLUVRNV[`HKhPPXRZ]SZOdRLUUPTSSTKJQNTWMLhHQPOTUWXQLVXVTPRYRNGIKSWTS]JPBVWP\TUWPKXHUZSTYUSLUTIIYSWKNQXYRROY[QS_XURUONNYPL[]RWXZVcEJ[UL[STUHVRKMNMRYWgWSZXWWJYSPZOPRPUNRTUPQUNLUPOKYRMRQIY\WeVYPYMTUVOPZQXT]T\N]NVTT[dZSMP[^TUPNPWWcJLQIQ\LT[MGWRXaNRXSZXXNVNSOPULRP`KNR\UHHZOPQVNMHI[TRRgRQVVSY]PXTZ\]SWYOS]PUPYMi[`PSPOS`OWRe\[\R_SXHQTY[NRS[XZVVMP\`e]P`[MRTTT`WSc[PYOWNdTXUcRTKUQXa[VQZXXN\LSUR^OWH\[gKQTTUOYQZSYJQ^UPW`NV_KS]XMVSRQRQXOWW[Vb_XT\Tic\O_MTMKVmhKUVURYGVPO\SVMQVQOXVT\XcUNSQMU]TXTTWXG_ZWRhSVYRNJXR[[CVVFcNQ[LWWVPgJUNNVZ`P\UJRPNROXPYcM[XT\PTb]SIN^`HVZOZVWSTWNQ[SVT\PbIKfMTZRRVTKYJ\MRMVScNTQ]G\XMR[\SfQLNQU\NVLgK[YUOEYRQ][\XPWNVRNUZ]QWPTPbLYZGQTLTZUIPZIOQUQQRTQUXSGSZOV]UUP`WYWQ\RM_eYTYLJaVOVDQWPdG^NLNSQWZUQXQZ]TGXKNZTR\WKVPS[TJPbVNMROU[^WcWSZjU]ZUV_NVKHO_SPbPUUU`SUQSXNTNh]XJb[Y`LV\^VN][TQUZSYXQWXTV]MMXSUUU`\SRRXPRHcPcTXU\YWZaUJQYUOVWQSTW^TYTKYLT^`YSRNWPUVaSRb`UTLTZDgTTWUI[^QPReWRPXPYPQ[SbSUQOZVOaaZSOT_OMI_FIVQZY\WWWbX\XR\MSYZU\[LWVQLUgJbSNUQ\NXUQTMQUN[NOTOISXPM[ROUSRTQQQSWLNeJ[\SOQPQ_\DMeTUWOUVKUSTVaIRUXQWZTRSVXMURXZLXODW^UYXSXVW\TTNXWNSPWZOVNYWVO]WQ][_Og\UYMV]O`VM]K[YW]RKYXQW]^USUVTUW\VOOUNUVaONXNRQYWRVUXMULSW]\]WWXKXVY[^YUSN[LZaaLWPRZSUQRS[^`VTO\ZQUUU]WRTUT[aMRTGRRTTURSPNWM]MS\RST^\_ZUPXPRKR^W]MSMLXNSRZSPUjPZZXQ`J`Z_SVSRM[SRUUSZPUWYVOTTUaW[PTPO[WRVONQUT\Y`OYXNLZQTRSPVXXXSRcRLLSTSWQY\ZVWNXWRUMUFHXZXWOSRT^TPFQRQLUXYT\PSQZ\ZTTUR[VSVXQOTVR`OWTWTU[TNQNQPNUQTOR[W\UP]f[SSVOVX][]TT[TaRQT\TWPUSL\XZQYRSMQNZN]ZJYWLPYWNF\QXKUNWT]RM[QUXC]XXE`O]ULcK]MLTPQOlZOXVRPLEXW\RJRSQTYYTWYaX[YPVXVETTQbZNQSOWVOTSONVUYCUUXNYRONYUSVQTWP\R]HfWRX\VHYiM\HHKaNMQPN[LXQSPQM_YXS]HOSKUYYTAGPVVOUHOU_rWQUKKMg[TXL^QREUQVPQWVU_]S\T[TXPP^^ZOOSRUMQRS[WNQSOYKVV`IO[JT`]TKOONSJTW_aKUbMJ]TfUWLZQLJQcTLSNJKNY[YQQ_UUTROT^ZUMSMIPJcWVRULOTUEWUbPMYVSTYYbRPWQTSP]XLRKJSUdWP\XOIV^\TWXQMaKLQLSRSQVX\NQWVNLYQUKKTO`XPL\MRNEYQ_PWNcWNFKY^MTRPPWVRXENYUTTVUVRRUIAOJVXZa~[WKHLARMZQXXUZVTNU^PYMFTYGUUM\H[PRcQRPMNLaT_XKWWTXWTIQLNVOLSV\MQfKOWQXPX[NQTCMSRXUR\NNYQ[FYUaaWTQEGR]\ZNXVZRRVWUeQh_ZPUSHFKUVQOFT\[QYb[RHJXKK[LYT?SMPP_TY\HH`S`LMWLTU^VZTUZZRYX[PPJQaWZLQRQZV`R]ZN\^UV\\N[VP^QKRN]HKWKSVNeYOWQLRYQZMbiYa[\WVfUdbRGQHNXX_URP\^V^`aNPLGWVXVYOgH\`_YhNTRSSTPWVNTa`Q\GQNTVaVKOSGVHNP>QDWYZPVVOSJMFW]SXXWP]UOTYZUTPW[T[U\NROTJa^NOXOVSXLZP]PSNUZSYQ[T[UNSTZZUYXX\I\OQVQ^PSXPTLNPNMWPZQYRORRVJPRRQLVSYPKQTLPPMXWQXYcUaSKa[PMXNRQWKPUURXPXVSZUWfLWbYNL_QZZTLRRU[SRPNOUIMVUMcUUSUP\[JQFNPSP\NKVQUPW`RVNUUWW[TXTO`ZRVSYVWOQHcV\aVS\VXYFIUWXWXYEMQONMSLW[dPXFXPYVQXPOaNPN[R]YKY`WLOLT[PKUI\TQYIVS[XPfXZGPPOPRIRPO_QTOQUTZTOUPNShZJVSVL\OWTHVSSQ^SLK\YSUOT`PKQSQbSWRP[NRYV`LO\VbWTXYTRXQFEZVSN[TVVUTX_`VOZZUU[PSYPW^ZI[WIbRN_E]\TYWPUU^OSROTWKXQN^Sa_OUYLTZYLiXTTXTMeP\YOS`UYU\WXPU`PbYa\SaTUP\V_]QWWYTNR]PTUZXb]PSRRNbQUXaTUXUGNFS[RUMR^QUZ[JU`XTY_QU[ZOYYVZRP\J[N@W_VDUPQZ]WYKVRVNMX]Y^USON^]bPQRTZLZUNYVWaZYPVUNYZnnYLLPVWUOWPVST\_UURNTPRMVWXTSWWNUw\SSORM]af[SYZTPXTOOOTZQPPTQ\V\OYZSWWRLbMXePT\VZN\RPUWge]JcaOUPSSeT[ZRKPYISLUX[]SXNOcQZOUH`RO`\QXSYPURSOZPUXUE_VW_N^PVZQVT_LVMQQOhU^ZPVWMNHZZUSDQYNXHLI]YV]SVTWOOSKQUP^PWSTQRPY`HURPQ\NUHVQPVQYXTQ^E[QUNQYKNJGVX[QRM^QQOJTQTKUPQ^QNT\SSSNSNFM_Z[PTTTVRTYQ]SMZRYW`Y_[\KUXYQVRSTUM]d\]NMWTQUUSMTSS]ZTNYSUMRTLL`OV[TS\TbNONVVUUT\RMWMOT[P]TWXSLQRZPP[WLOJLQYRWXVJVST\RQ[XWTQQFL`LSRTOM_VVS^VXOXT^NQWNTP]KWPUDUhTYXRLNX[VTdJXUdUWHQSGVWPMPTTQSMYYITU]VTWVYRX^OTbTSQfKROXMXZRQW^XUT_NUTQPNPT[XUS[XML[^OXWVVSUNRMNRaI_UUK]O[[YS^M[ZQTJYSSYYQbZKJXOPJPGN^RLYSLWMTPTTMGTSMXK\PTVU]ARX[OQKZ`TVOjSLQZVRP^VUVVWLRATTQGROM]KPNNMHUYQoXY`YG[WNLCPLD][R^HgOTZTdQgEGdDP\J^hNWc[TTY]tVWU]MNbQSQSa`SNnZ]bAOa\UWVP[IQNLH]ZUcT\UOZTJ^_VA[RcTOMPTPNPsLP[YfYQMG>NFCdL[P?WJQ[ULNY\^KYZYVWOSPBQV^TSbYZ[\KQIOiWTIGPX_K\jSNSYMJ_YZUSQQPOSMPSOXbJQDS?SIVVTDPbOFW[HMKVVRT[WUEL_\NZKVELN^V^ZYN`OXRKPWKJWOLPLYSTN[RKVWRRXZLX^S]Kc_\CJMUNYLPUUNZCUR[X[TTZdVXFR\ORUS[eY[SSSM_NVQ_JRFXPXKQYMDYJRFZNURYVQSGbNZ[YTXL_aXca^MZNIURUOZSNQWLXbVLUMa]L`OSZ[P_SJ@QPYOQTXSDHTRXUYUc[KOUVUaEQSUS^Q_WPNOUSO[PXXR[^TUVPYYETMPU\LMSM\`JN[cIXLT_SNQaZRUVVlaI]RTNZLT^WPXJ\\IQKP[SVK`O_TVZVRNhULYVDJHQObPb`PONPJOSTJYJVRTON_KUZXYOYb_TO[VVUM`JZP]ZQMSN\ZTKP]MRUJZXSWOTYVTHROQNVXJXRTSWOUIeXJQSJM]XSMHMXQKLTLQ_\PZR[VXJYQSFTUSJQRJUXO_KP\OWVN]TXSYRYWVULYZ[]WWSVSSKPPZaMNaSUQL^LQTZUN\QPXPHLI[_URQTSVTS^\]ST\cYZOZZ]MRVYEGTYXPX^S\QQPRGPUUXWLYYPSqL]ZScSPORWMLDZPNHX`OQEUWWS^OVQK\\YLZOURP\PRPQJ`_KJKON[ONQQLZJ]`WNNKXQNOOPQ[WUIYUILUUBRUTNVT^UVYU\KDUVRRJVMaQXNPLQ\\PWUTVTHMVNRT_ZOVLVQ[VT`XS`GQQeKLMNTN_UON\XQ[YRZJSYRLJRS^L]WReVRRP\[LQOKTZNSPlPUVYGQDK[YMITJPTOGQXVTQIXQVLPcUOSXEVGRYXY^SKOUSPLQNITTR_OPTVWXYTXPRNORPMYGaSTMMSUVNaNOW]PVR\WTPMG[RLYD[YcYUVLGTVPNU^QUZSHZIQETOWT]QQJW_R[ZM]PLKNQPdMVUIbIQ^N`LNHYKWXPgNS^RQ_LNR`NIIVIM\OiK\YNNXP]J^[TI`T]L[N_mN\MNMSHOSXTU[bNSJ_DNVOYQFZJSO`VTQOUN]VP\PUYTJNRSVXPUVUPU]OORTMHVQNNOS\OO_P\WLHaOh__\SMUVL`aZY_JNWKKTINNH^WJNRY@WWU`cPOXPQWUSRbPcLNNLaQHZTUHL][WMZJJOTWZRPWabMOWNULPNOP[_WTR^IMPLV\ZZJ_PR\SRCOW[HSYaWIVHMcT]TS@UQHWK[Q`PNGS_XTZTWVPXJSSWSYVKOdKVPYXDRI]TJHQ]ZRMSRIYLP[MKSRbLR^UPZGJCNbb^RRWWERZVYVWLVYSRRYN\JRWWTM]aHWOMObQZMaTLMLKPRSQPHXQTZQJZ]XJRV]UQ^UT\]QSPKMaORLWTXWPNQFRWWJLZ]\XXZYL[TZIa_bWSbSPR[TS^VHIf\IWTP]SZONLQUOORVR_SPcOUZNLOOWPJYRS_QMSUWeSPQNVWMXSRSYPMRZPQ^XNcPYVHR]TVZJ_XZi^SVSDUZTYPR^JTVTYKY^LaTULSRPQRWTO^WbTRS]TIITMULT_YSOHZWUSWTMUKRZWPNLYZXWTVaOZQRTZaSJIOQTPW`QVVLSNPXRPTTW[VHPROQVYMPZORRPR[VcGbRPMQRNPZKSd\QR]^RdRWP[YSSROI[UZNY_ONRLPSXLPP_QTYWQQQRKQZbPXTDQRTTY]WRXR]WZP^\NU]]KP_PYOJWOQXM][JRSRUQNSYSKVOJ`G]MVWGZdSTTIZS[MLpTO`W\WbVTSTZ:ZHXOYV[HSE^JPU[[GUZO\XbD?Y][NOJPRDRR[KR[UPH_XQMUNSRYOSSJHNP\MRgY@MOTS[VOSOP`QIS`KS[KLT\oR\G[QW`R`\dUMNR[KP[LSLXRgeOZO]VZGOXRE_TJOL[cY[_cUWPYQYQUTJLNPMFIOQTMSfORcNVUKiXTRPOLRZ]KQYLTSTUGHaZIKOQR[I_JWZ[WUK^SOeTTQVKIXQKTNLKPR^YKRUIRNcZT^ihWVCI^ZNRXHZIVST^L^T`PJ_XRbMSHZTaCYLQNSJEPRXOPHVZYTKPSL]Y]b]ZaMMSNd`QTSOeQJJKPX\XK\Y][]CPKZKXSUYINdL_YUQTKKOUVTURJcTcUWUJBSr]iMX\MGRL]UR]T]^NZYIb[OURbWMHILMcPC_J[\\NY]ENXJNYV^XpQNTPFPaXKIT\LHYgLOSU[TVSJZdQQXRTbWPPOXYKMPW_W^WPUTiTWOScZQOXLQF`PWLL`QVRJHQRTIQRcVQTGORUFRTTOL]LUdKJ`OOLVMZ]M^S_]SNaSOWVcPM\ORkMKWLWkXVIZFM`PRR[bYWHVUNQIRXEKR^`NTVOOTRAVL\QUPOXRaPJITWVcSNVPTQTTZ[RZUPKVJZRPXY\PJNGU`XZMUMPXKZR[OLOSVW^PTZSOcNQTRXNMRQ[TYZOI^IFLZTRPPRNNDZPXGWHTPTHFSKW`S[TWQUHF[MNNYNYYU[XVPTWS_MWPNOYMOKROSU[MRSRQS^PUTNRMPKXSXaPTNN[R^QQSVOQM]UNUVVQNSLQKJXIQSTNOLOROSVYRWQPQLLPFXNPdVZJ\KCMVSUTUYRSPZPMMLNPNSOFQTPYN\PJRSZNPPTNWOVVOZYZYYOOTUKPYgQVM\JOPWbVPRSJOSMXP`TTaRRPUZUIMNSSWP[PQVSRWQOSWTQaQSRd`QNWVWRUNVWVVaiYaUPOQWRYSRK]YQVR][SR_PLZZJITRQXJ_QV\PN]PUUTZTTZWIRSMPSRYXOWRWVUQQNRMXPVSLcUYKUOTYVMTJRWSWYWROLWQQGSYYW_\VbIULQPUS[T\VSWPNWU[H]YMJRXTLMWLM`KWRZZ\SWNsTS]RVO^S\MIPS`NTZTO[TIDNOQNLXXVSSS^PIPPXYOWQKRN\^LQ[WRQGSZX`UGL\QNWJNNSUUITRVWRRRJUWLYPV]X^\WfVWO[^aTcH^QQSZXUGZUY[WT[QJFZUWVUORPYVWTMTQM_LLFT_RTNBVLNOOQVQRQVSOMAKJVTZ[UT[NLGSLNPT^OVOQU_NLHX[QR^\WOVMNLP^MPJL^VMWQLT^EXU]jQOT^TTP__OVhLWTVSTWUhUZLV\SJUVQPQMLQLPTURFVTGXXQPWMNdVQU[LUUUNRPTVNRUWYVPOR[XZU]GUTUbbWYLMTVZgPOVXUPNSYMQ^RUWJQQLLYMT^\LMS[JHV[QPRLKVOPN^VTYRcROSMOTTPRFGWPU[dTUXSN]PSRQWIUU[[Lb[]QWQRUXQVPZTMRfWY]TXPR]`PO[XQKRHJ_RYRP[[[XSNSg\_UQKUXPVXLPLUNUMRYPUnPULMaTU[UTLWRXUKOUIKZSIGVMRVLYK\T[LULFMGWPV[H\VSRIUWPQYQPMQZQRIZTTZQZS\TZQTVXMWS[KQQTMUMVPIYRLS[Q^ORQSTU`OMXS^XQNR]YUKRYQQJJUQ`WUZOX_JDWTOGXVW]LSOLLWVQVKMUTWSO\SLF[[MK\OPWOOTUUKQLYZGQMLgERgRMWRQWONZZUjVKQP_THPK]QKJXQVNN^XTYR[OQVUXO_XTXVNRMUSCWPRLNfNSUQ`USVSV^QRUOQNVWfO[TNMQdRMNQRKUTW[bUUVRXJSKRVSYHkV^Q\Z^OSNWJZ[SWQZYVSRWfOUWOO\UVK\MMUPMMJRLLV\SiMWbM[^X^Q]M]QWLK[MSdO`KZYPKU]NU[KHXUMNL^YVUXGLP\PM]SVLXYZ^QUZMXOSYDVV\[YSVJLOQ_WUZaSRPZUOZQ[KRNMX_TMW\T_\Va[KOOLOXRO[JHSWM_VKLYZULG[LLLV[MQPTZLULOQKZTKMLSOBRXKVKaSRS\XOKTWZcO_\YVDIUWROSVMUTOXYcRKWUS[]LDIQ[XXQ^UZQTQURZVM[URMVS\QZ_TWTRINNQ]ITNI\ZUPTPRQQScZTQPJHTUSKDSUJXX[VO[NWPMTSNPWTXORQSdVRV[YQ]MTLVY`TSQU[RT[RNJOT`WYLTVEagFVKNS^QXRSVIR\TOZSMXO[JLNXMXMYZQ\OQVPW\S[PUTHSTRUTUQSYX[SYUQaYQKLY\OTUTGTTSVRVS`OQPKPUYZU[TWRMJWPSRTPQPSZLWXSXVISRSRXZNeW[WUTURPTQXTWYWUTTMXRNWYO_RLYX]QP]SMQPOHLKYVRQYYTSRP[PPRSTSKXTRPVZUNVQNORRYWWVLUWZRM[UXQ]PUWVRNXVVQOU`WXPRMTZRPIN_V_\YV[cSOSXURUNPWSQTS[PTRUYW[gOPPYSQKTTQYTP]MSU^YPPRQQQTT\I_S`ZTYOMYQOZPQYXUPLSNIQVPNSYT[RU[UQP\TQ`TVS[\`QcW`XbLWTSQ\TVTMUQ[[QVRRSTTQWZVXRX[WQQQVVZUSWWRU[XRR^TTWRWKcZSZGU[[YTJSPZYOQNTQQVKYNVY]Q\[QR\R[K\S`Y^]QVXPZPJOSIRNHPSJQSGgXNPX^UXXTMDXMPbQVSVLZK[RMUTLa[IPiOaMVSKQNRXZR\RVTMDaTP^UFMT[YKaURWgRLV\OMYLTR`RMbSWHOQCXUXRTX]KKZSUSIQOWVTMWQdKKXTMOUTQPTYVLlcPZPXaWWOYK]YXSWPPUV_KKPSZN]NKOVYlWZUZGYXTTLUPfV\QUKUTYVTLKTPNNSKRIcXYVRRVKXHQWZSONRZ^[SYQXKQUOOOLHPZ^R]SIMOVRNUOQOOSQLWRi_\OXTU\PMORP\[OSSPIONLXXSZWLSLUWb^EBSRYTLWO_[SXYZWXY]ZKMRN\ITMD\QTORYRORQIRSFNNZPQX\OXSMU[VKUWXdV@[O]NKM\U]LLYPlXRWWTSYhVVTNTPO[VUR^V]WWXQTV[UOVONU\J`ORWZSON\SVZGUMWXWSYcPPL]^MIS\YRSWRQJX`NVSXWRXWMR]OWRZP\JMDRQUMVRS^NWWYbSSW[aNURJTUQRRWZHJOLZJSRYPNbcZQ^eROT\UV`[YXGS[LTXV]\SYQWV[X[GYI`NcVX`T\PP]]QNQLVLKZ^URXYNU\PRPVWEVKXU_PWRTUOPOQRTLXXNUcQ^[\Sb^XTZ]LHQV[QLKGSRVU[WZ`SVQ`OYYSYYYWLPKRKSMNUZQQPWRNTNQSRQVYkJTRRVOWU\KSV]T[WPVSOaVPXVTRSPWNTTRVVELONNVPSV\]fQXNbLVTLXTbQWNGWU^UNUXQTFRQRTRNIaVEZRTMPUGSUXWPQWQJ]PTQZPLWTfVKGSZYLWROZPSLMRRWRSFZ]OTVWRKWV[NXMSWUkPTUYSO]UIQNTQKS^MWYNZR][QVLTPMNTQYL\GTVVQWU[[CRQ`]WVRWUeFWSV]QPT^KYVRWJU_VP\aRVW[TY^U[XNW\TR]LWPVTPb[]SNVNLQWTSK\P]PWQNX]WE[TZ^HRTUR^NQTKFORTZRQOVR]N^[YM]OVQUIUQSLZM]USUQKMXSVZY]O[OM[VYHOUTQPTMWP\RSSPQZUYYVOVVQFOLZKPS^\Z]YI]RRXX\RNMRSW\U`NS^ZT[USPKJe\TT]WSTORSUOVURYQQOSNTQPMQXRQZMUaPZWNWURUQNWUTPWUXOASgT\O`MPISYIDQJOTMWUALOUK^XTVV\XJ[\QLLOYPQOSTXQESVQWYRUISUV]HGOJ_NZQNS[OXTQQLTVUYOOIKPb]bTMN_XQLTLNF\ZRMYRTTTcQNPWSPVHOPeO]TYbMV\QKLD]Q`KVPKQNMSRKPR[RZRTHLYkYMVTM^RSSYPPXW^\L_VO\SX`PP_PS\<^PQQSKQcFTZVJRPPHVOQH[YHIQTOX\UPSWYTVNQR_HZWSTN]^TgTWK^XQ[bX]\T[KOLP[Qaa]OeePSGMU\JWWbUSQH[WP\VWT]NXTS]OUUPRXOTLX\MLRJTRJRXGTMVbJZSRKQTE_ZINL[bUR]ZLVNRUO]RQOXVMSbSdLQKQHJKS]MUOXVMQYSSCTTKeLJWHVW`^ZSK\XIXK`XVTWHOYITZGO]TKPNJR`N]WSK_MMVLMSOTYKTWVFU^SRVTNRN]XRZ?O^H[OHUMXUURGXQWV]OVSTWRMLUDWPRTXLKPWE[QWTRO\YTRQR@NZLUP9NRIRII^U\ZRSVSTYPK[XVMRZX[MdKOUSFZUTVXZPLP[PXNRPOVY\TJ`QYcJMTTTHLb_]TXd_TQGRUT^BHXLALWSH^]NZP[FJXPOQMXPPRUJTSJ^XH]RQ]LNGZRGVUPXW[LPLUNVRBRSWZZUSOMJTP[IYQKSPZTUMRTVUOOOSXZURGRRR\RPUVPMVUOVSO\^UOMZNSNOYLPVSVDGVVUOKLKOUiXRJSGOVMEXSSMRdRUSSK^ZNRSNRROQT[MLXPOVRGFYQUFMSKVKO]TS]KUKVWU\PZZNS^PMRJQHLUTVL\RKUTWWSK[UVLTYXV^dRSUQ[VXT]RQWV]XQLWMSUNRRTONNTPXIYUZUWYWZQVVJSVSQFJaSTSZKVL\VOZRMVPVSUO^U\QRXK_^hXX^STLR[PXTPLSRSSPVFSRM[VTQ]_O`TZUVNTWSMR[TWL[RNV`FNLULZNSYMU`OKTSPVLQW\YNWIVLONWP`L^VM]VD`GSaWR]PRVTU`QSV[QNTUPMJQOXK\\SZ[P\VdPPLTPU_[[NIRS`\PQTVZWQ^YUNQMORK^W[MH[DkM]UYOKQQWVhWZiSZYVPULTRMRPWZL[WKL\^SMJ[]TS\SmUPVVY[WOMNcYURLVTYM_QS`QLR\VZZMQRZaVH`^ZKNU^OP]UMJJTcYWR]N_SSQMXPR_Tc[XN[PSRSZXNPAYRWVW]MPV]UVWSY`VUQYkINPWW[q\X[ROW^URTeFKQVHhJUUKGJJTXTQUVIQbPKT^LTKPZXM`RUXPYb[ROKRTNSVWVaZQVKJGOJTVR]I^UGSV]XTPWPTTRWGYKg_fVTZSUUdXV`KXXUWKRCTeZSbVLPQRONW_KNYYVMfYSTV\LO]WP\T[kHYYGOYaMQOJXPZQ\WUZRSIWUSILIIVPQTQgVQ_TYPa`HhOW[VZYTTYnSZUXULJaPeNX`TTPUUPYBU`S^\QQJKMZHULG\VSRWa\^SgTWW\NGOUXRZZ\dSPbSRLPYTdURNVZKRYLNWTcVPSTUTXRLZP^K_TPNG[P[QVVTWPINONY\JTXQ]YORRKO\K[VILZTY\PXRTVGU]QQKQH\URPLPSLUTTZOQTNL\YXOZROUMWRTQVNNTPQ`P^VOSXRSTe_]OPVINSLT_U`OTSMOLMOSWQZ`M`ZUZUXTRcQTZOH\PPR^R]TR]OVIUZEQZVXTY_PYWYMUWRVK]TQRPVVYQRSLVLXOZ^SZS`KWXQWLUUMQLUVSUQXQZLZTTTR\UTNNMUUOcLRWOTMM\WP[^ZTNaTXVU_NR^RNLWRVUZYNKISQTRPTOSWSQV[YUSRRP\^RFRNKRP]PMMWNQQTYSHTTOWTTQRRT[RXUSKTSOMUTUXbWI\TQPYPNWOXSXXOTVQU]TT[SSRTQQbKUWVXRRTMTMSGRXXRVWUQKRYTRNX\\_aIUWJRKTTV[QVVGQORWPOUNK]RWPOUbXU_O^N^dVVMXKNQONZQOZTLXT^WWTSNiRKOPU[]HOVP[aZTSWORW\XTXMPMWTPQMV\UWRgRfKORSXVZSSS`KUcLKU\R\^RVV[ZUN\QMMMVNSC^^O[JOZH^`OTXJELgXTV]OYTUXHDYUG[TLXPRKjcXU_\VXIg[ZOQWVd^XPGVHRTX[PSQWUTOc`QMPPVWcIUSORNQ\RcSbTWKWMMN^YVP]F`]`QZaMLR\UM^Tc\JT^ZKNSSO[MOZRT]ZPSMXVONTYJSLTRYWZGNXLWZWG\X\MQ[[SNSRVVTNWTQK_USPXcIN[HTLeaf^VZUITIK\V`]Qa\SVZ]TBVTJYQ?VVPYYT`ORTPUSaDUQOQNSUUNVSTOWVIZMGULONW_VXLLUOXOQGKYV[WOPNLPRNOP\L[>WPFrIJ[RKMOMTSTUXLISW]HUSXP[VWVMHUPYPRYNLOKPMGOWPKRRJ]QVNSMWPM[SRKRWMWLLSGQTPVMKQ_KOXRTXSEGOLDSNIKRDSVNVSCYYOOQQUKFYVKUQ`HRJSQHLVTPSMRNMT\QRT^`bP[QSWKWJRQJKQPQPNL\P[KKZTLTVXQTLQTLUPF`KUZVaZORRQQWdQSET`JVVUJLIOULGL\PLLS\OWEPTOYUTFPLJYUQRXTITaP]MIOXSPUVRTXN\OVMXOUJXQOSUOP\JKQMUGOGQGU^W[YRRIWRMR^UWPQJ^\QN]ULVCTNXNQVPOZTVUPSYTZW_[RQPTSKN[WXV]PQYM\[RQLUPQMTVNTLOQWPSTLRST[UYTLFQKTLRT[KWMKWYMPSRQROOO\U^PMW[G[GTdWJSMZMPWOSNYMPRWYMP\IT`PMTSUOJOiM_FPQO`]YXPZ^]VRRW]ZPRZQQL\^WILVUZSkUTTRJRYZZWIQTUUSWdMSNXIQN``TVLLNMTGK[ISNUZQOVQGPPTSTVSMWHZPSWU][OSPKZO\QOVISPdXZaVQTW@LWKIUPPWKOPYIQ_TPQVVSVYVVQVPF\]PSSOOTSUbGZKOfJDJOS@TZRWZNVYS\OTKVYVW^UOJPJS^KOWTRMMRJUUUeWM_TMRSJYXTVSMOQTVMFQRZNVeQfR\WUWRTUW\XUQROSXJRVWKJ]NNSNHXQSQ]JPQLSXONZVRMOZXZSZLOOUOSO]]SDOLTN[[NNR]KXZXMOUMSSRZQNZV[HPTTUVMNYTUMMT\ITSPTYXSUUMWQPYT^P]\VRSW[WXVROSZLH_Va]UPRHMVVOIUTVSTQP\MPZ_OLUFXPMRKZZPNQXJO]PPOPYTc`[TMRQLWSSNUTNUJTR[WT\R_SYO]_UZON^PLTXYKdYSZV^YhKW\JOQPVUT_VSQ\SSTTXQI^OIOHUXTGKVPQORY\NLUUbXPYUOHWOMIXT_PVTVXPRNOWUYP]TSSXU[]JQ`N\OOTJQJTHPN\S\HS_XQXDVR]\VVSQQVUbXWTOXQU\HPgOYPRVZZYJcQXcUTJ]NWJYWQMWVfQK_LRTYQHXRRYRO^TOMVWLYPROKTYNUULWQQRX]TYOPZZOVRQIJQPSL_RI\UeLXXOSRLZVELJTKU[JWULWRMTVLjGQTYVEPHTFibBSTLSXRTOQVR[PPTHVY]OROV\RFTOVQVWHOUJYkNYTNO]TAXMQTD\VU=OPPO_QZPVRPc[PZNZR[TPNULVNMGYHPWRFWEmUUXTPVN^YVZVZNQCQNZNGbWEOOCRlPPMRZUG`TJQWLSRQP_YKOYL\ERYJTWLZHLVLS[kNESUQVJTRpTYJMQMRKSXIPVJGKL]QMOSQEOkOXSL_UJSKLR]SGKKWROCSPYQWRKZTNNVPETGQEQaVXYS^XQObXSVQWSII^UMXRXAOUPKQWXbPPTWOI^W^]TNVNRjNLL_UVP_PTRSZUVYLXVTQX_L[\RIUZPZOLZeSXPLEeKTHY]XX\^`WUYWXY`T^W[R]QYYX`VZVVTR]\OVWX^TUXYZPZ^YKSSW]WYVE[STVZa[U^[XXYW\OYWZXS`_bPX^N^]Y\YXZVUTWY[QXT][^UV^Qd_J]V_UaYZUZ_UT\WST\UZRZRXUVVSXXZ\YY\XXZR^\U_d_SR]V\XW^GWU3XWTMYXZY`^N^\VYU]aX[VU^ZRY\ZWZX^^SVTPZQ_WO^\Z]ZXXWWPaT[[XZ\WY^SQ\ZY^UUWX_VYUX]OM]XIV[Z[a^R[USUUZT\ZTWYQ\ZW[X\T]XWVVZH\\V[X[\XVT^[YXaUVVV^UV\VUb\ZZY1Y^YY^[ZWTVSV`UZZVUX[UX]cb[ZXVZDYRa]SXYQ]_Z_YZWUVYSYTWXWQXTUWWU[SWW_US`T_Q[]NOUOVR^XT]SZULIW^SULGNXMLTVR\]WQ[TW[URQVQLWTNYdRNTUQUNQWhWRTVWM[TSPPRLOQNVWTNYP\\Y\TVQWTYYaZVUWQTUX^WQ[RST[O^V^WU[LSNQXOUMPTNaWT`MSSXSRIXSQZSQPYMMV\SWYQMWOKV]UVJLVTPWTLQPQcYdZLRTROTQPY[STLPbRNS`TYNU[MeNSWMXSW\aUKLWKIPLVSZXVUYRQLhNQRPRT^SLURPS\J__WZTPUaUKUVV]HVLZZ`OTKOZKNQRQJMX]WKUXTLYUXU]Xc[UWUVXPTNMSXR[^ZTU`GTWPKP`QW[XOUROQVTQMQNWQMVc^QSSUVTRGKZUVWUO\ZNXfCVS\XJLNPQMIPOV\MRVLVMZMJWRTQNgYOVUTQS[WOORIZO`aIQR`WWNbIGTMUVP[RPOQWLXQMRCTa\TVaXLUQTMLOVQP@TSOO`EP_\QOPXdQRMU[WYN]ULXTMITZ_XZ[NPUPYGWUUNL[N\TLOSOXKMRNdNQUTGNMQH]`UKZRWXW`U^PTWRXLNKIIQNMSfX[QV[USl^WZGNPU[^QL[O_ZSQNZf]WP^SWY][eRMGPVXW]CZDS[LLURKMXOLURLfTRXQ`XWNRRQKJUWSaQOSTM[KNaLQENWZY]MU]MSLRTVPXZRLWWNRVc][OJVSO[WEH\S]SRUIXQ_RQSNXXWO\K\ONMKNKOdVNTQUQTURUYDWRJVPNU|NXP]KPQUMRP^]cMZPMOIVSTVTTVMQNMZVSTOTINPUVYWXRQUTOWXWRYSNVZ]XSRUZQbOJ_YQWLLM`hVaML[YUKTbRMVaNOTW_^XOQYORWVSNYXPW\QXUWTQNSW^SYJXV^ULMSVMQRNRMMYP`PYUTTOXOSKKLRWNSSMRKHRbJZUPSQYTTTZPMRSRRWQT^^ZXPLWe\QNOWQXRe?SLR\PRSOSYNRVWYMSZKTZYSWYQRPORVkgWRRMOUUSPURJW_UPR[MTQW\TSVWTLUWRTUVWWb\XRQUN\IJgPN]LRUSNETUMU\\VRLMVXSOWNUS[ROTWMV`YJOMHSZVNJc_LPRPXYYPYJOVUYMPCJLFKU^HRPTV[LO_[N^WW[^TVRZZXRVUZJZLXYRMVVSSNYMJVRPWaV]XTQJMQXMXNXZOXQUXUQP]YSS\QWRSLXNXJT_LVXSdNdOJ^[NOSVbP[Z^SXMNHVZU]RLUVRTXML^ZTV[O]VWWZ\\b^[OSRRU\[]SQZWQQPSPN\hSUUM]WRKTXQ[[RNVPJSKGROQRUPNMNMI^cfOLLPKMPMMXU`RTLNY]O`US\LKXM^RIP[XYYSPST@NF\aYOZ[gNJZVRTNRMRL[HSZQVWQZSZRZQ[KVQGaIXQUXZ^RLNUZSNWRPRTOUOUPO[PV\ZMM]FU^TXOWcVNQOQQOMTNK]U]bHWTUNTU^ZWPOT\UNZYMHTSOOGRJXKUUXRST]^UJaSHMRJ\YTVMSa`^jWKbZ\cR^UUVVTPZcSZULaQZ^UUNNQPLJPQdPa[UZVV]JgLMfiUKKQPUY]MYWH[MVWPMVHPaWN^VZNYPUQNLP\TTSSQGU@XQTXIPWUARRYOSSeJRQRXT[]QpXKWOSVYS]^NY_SRGKMUUK]XURQTGWYRSMKMOJ\MdZPVSX\I^bYN^VOJWLPZP_]PY`QBUNeVZTF\ZaJP\[XUFNOOTLMSSLT`SVSKMYNX`PPY]STMLUYXPVQYFSY\HJX[NWTZSMYLN[RZXKTY\WWNMNTQINWGUM[IPPPKSSWN[O[NUQPSRVRZQ`OaPU_P[KJU`lSTXPVRSRVDXOZWTSXONQ[UU_TUIcTeRSNIVKHMPXPTQHLTZLYX]QLLMNTXYRQUUTTSVWSUXIUKNMOTWSbYKIUOQO]ONZUJMQOM\aWRPcQZSM`[KPS[QTSQYTURYM\VEM^\[WaZPUGSU[OQTSRTPRKNZ]LN[H`TWY_VNW[RTVFDNLTWTVMWDMUZXSUMW^[NON\`TVTLW]FQZSYMM[PNe^YGTPZVZMKWWOhXNREOV`RRCPZLPMXXIW]PPYELZS\UTOMYWKZ[IMR\KhVeNFWOT^JZMWT^GWJN]Vc`JPUYn[JJ`YOR]KTa`RSP`\IVXLQ\[RXL]IY_fYKUMHL^JSO>X`OXXVXHVWZVPMRT[TXUIY=LQc`e_URP=JJ[\LWVZHOM_LD@OVSSNPVQ^OZN_aKCPCNWDEPRJZL_cQRVfTaPLO_ZVVP^WJYMCRJQ[UNU^WQ^NPVGRWPUQQeR`PMQYU]QPSYHLSV^\[@VRUI_aO^^TOfYLOGSbK\PUX@dNBMMPV@NP^WJWNU[SUY^ZKQXQWTEPOTSUUT^OTUUQOYQOVRWHYRYTbYPTY^LOEXSj^W^XYTVQ]SWZKISDVR[HKRUcYPOHdWRRKTNMPOWNXZZcLXTGOLPYaTPKVJTOEPTS\KTSYZQSZZMKU\\QNQ^ISSTPUZRgb\QXOZNUXH\VLQUYOMPFU[XVX]V[bO^XWV]POSWQb[]_NS]`UZ^\UVS\SGPNMNXVXP_ZRcU[US^T]VVLS\_GPOOUMXRQZPhKUNVWUXXXZ\NTXPPSPVZXQUS[LRSS>XHJPZSJQRT[MKUTORNSVRPRT[\FXVSYTX]QPRVWVMJ[RRMM`IMY[VLb[YT\TMQ]\KGOXULXXVR^bNLRI[PUWSVPNb`VgXRSWUJXVUNXYYXOTOUNNBVOPXYSOQ?VRRPPP[IU[LSS[TWU\ZQOcEXSRUXX[FUdT`WOP[QRSLRIU[W^Z\FSPTXOPRWPOGML_RbKT]MVObPV\]VUOcTVZXYLQ]UWNNPSLZXPX_MSbO^UQMaOQPWTONTOUWQTWIWUU]XVhUVTNVSNTYVQb[ZOUOPPYKVRKUSRVhN^SQPH[SZYURYW\SKfNGMRUPR\PVKSUdJVC\ZQYQW\Xc]KTM[LjWOOHTTMWQMKQKOLIMWNO`SMOORVNUCVOLKIUWOPY[Lg^aOQSWHaKRKTIPEOVMORUSWF[PXQJ\aO`A\PQ^YLTVYLPMR[V]`Sc[IUGQKPQ]LTZBKNQFFQRRLRN[LJRK?PWRRHNU`hGQQNT]OOWUPVO`ZHVH^aZQ@PMMNSTXUaOURXi[OLQRRRYRYTURD^PbNPO`HaVGQcILMTSEPRZc[TPYUVWUULRTWKZPMOXQKGWX]G[OVFIVMNTWXQiTZGT_ZTJP[WRRfUMM]N]VYVJ[MHK^NLWMM]VfhVLSVXUPea_]SSThPM`SVJVTTMJNV^QXPIMUXPQLRZQXTXSWN_NPRWUW\YHgYT[NRT[FNPPQM^TRO`VKVQMVQTSU\TSTOcNQTORWPWYM[^UZQ^NNX[SJdOOSYSXTSUOJQ]SP[RQSNVTQS[ULXRfRORQWRPO]QhRSUMNVKLTNS_`T]LUGKNVQ[HYKVVUSXPORSMVPbR^QVTZUXOTRQOVYQS^MbTRYKU\XNPcHVVYIZM[[PTOMRaRWXZ_RZPPZQGPVPZ`T[OWX]SPPRYLXORMXMSMTQ]Q^O]OYSJQ]KUPYVKT][WXLVVWZOQOXWVXOXZLTV\YF[UPSVXIMSTLPOUJPZSWKMJMOPPYXYPTVRe_`LPWUSPMOUXOS[`SRd]bPMX]R^\YYUW[QTNKUTXONUSTWNVQRTI_VQQUSKNQUPRN`[UVSVSQTNVRSLTSOL[UOLUFLPRNOLZ]XRUUaYQKlUXUdQRFYRMO^WJYRWQ_RWMTFRLPRYTQTS]TKN[U\\dPO`W[MKOVXVTTTV\MYPQTZYWJWXaROTW`UaZPQOPMZUVMTPLKUKYOLTWZ]SO]d^SRVRT[HST\SQPKKLTSMf\F^V]NZN^TN^ZVUPO\ORWXVSXOUMZTSL`KPU[KPXLOWMUPWYURKVY[SL\KUKaQRaSINZWVWMURTHJV\LPFW]OOPUY[_LUZV[VFd[WXZOQOOOcUMJVOU^LW@UOQ^SHZQITO\NhTXXLYZSS]QP\XVWXWOURZLbSQSGZKM`_\X`XY[QSLXLSUU]VQSWVNQUO\PMSca[PH^TYPQSRSKZMR][GJOSgU`K[XV^XTS\ZNSLWNSI]XPZdPTTCPQQYXVRWJZQXYQSXUqJYYYIS^R_[VQZQ\ZZ\[S]IVO^PXRXYKTTQ_G`QHTZdGSQTQXMM[SQYTTIOSfW`WJ\RdRPQP_US]MR\LLS_NK^TZ^MU]YMLWWI^VUNTV`SOXWRYMOROOZXPMVNUGLM`GYsXWOYTX\KUVYURX\PSZMVQTTX]WXWKQ_XTWXZRYUNS_ZY]RfURaXWoR]NPNJPQ^MOWWPYPJ\JTUYTH]WYXUT\XTNPbUGTXTRYGVPUNZLSMWOONV[YMUJ^JRJSORNSSX]OT^[LM[QSSQQ^KOce^PYOPPUT]R_ZN[YRTiLV`[TTXYUQZ[UPEP]RVLS\KLO\SUYO]PU]PWSXKX[MRFPPQTXSRMQUaNXOY]Q\UVaIDZWSMkNXWZSTNNWVTXLXSVWWSPWUO[SONW_EUUN[YYRYZJNNJbTZ]RZFMVLQRb[XXGTPQZSRZROZQLYSVZRVPSSQVZRWXR_Y[TSU[ZVT[WSSYPMSWW^QOJMiTWXRXRTZPT\MLOaOMXJ[WWWSS`ZNQ]`XM\ULV\SMRTbOW_ZNVWSVUXO\VVQYH]URPZ]VZWJDUQXUQLRMPZOCWTQVI`Q_MSHNePOTMLSUO\O\JRRXQSfP\IVHJ[W_FSYcHY_SL^TLgLQWMZLLNPN[TM[G^cVQVGZWiL^QZN]X[RW]QKT`PQIHMJiSUWNRRW^_^R`MILQTL]JVDRPUTPUOMPWTQQY[I_ROPShELOQYUNRSXaS^XMRf\Y\FR^SQZKVMk`XZSRK_RGWERXZVN[Z[\WVQQOMRXT_Va_WS]OLSXb]][SN`DQ^RWLPNT]MMT[Na_PIUQXRMVTPN^SN[HNRRJ\GTPOZQSJM[RRUNO`TUF_W]WWUWJPTWW\YTJNK^PNLMPDbNS\H[UPPYN]MOQObM`WNQX`RIVQGSXWR[VXJN]PQPT^UU_YUVHHQOKKN]YeKFPbKQKUfZRVZWKRhWVRFEVPWPVPPUPjDS=WZGTbL]TSOMQ]SPThN]bWI_PCWRXZT\UJTUGPP_EVQ[N`VUQOU`IRQNVZXP[XMQGOUSwNVK`_RRGRSMOTXbVSbMVSYRWLLHIUVPPSRUKPMTDJYNQO\OWPTSOXOOYYXVRXTQJWPWYSTXNW[VWNZVRRZ[S]TUVNXUhKUTLJVY^RL_]JTCPSSQY[S[M\ZXNHS\]XaT_aSPIYITWUVHX^^RWYQWZK]bXRYTLSOJMTQYT^MZWTTMM[]MRY^PF\M\WETUSRS[IR[RZZTbUZUNXTTPRTCZN]_TMP\MW]SLP[IKQKKYa[UlQZZTNRLVJKSJVVU\UZISUIVRTRHUK]KWTQSIVWSWWVSMR_IT\[^KPQSPQN_S\XS^KUN_[UNFL_SPWVYYDVH[LYLUPHV\SPLJILRQKUcZP\GV^K\R]M[QRQNQRQ_YTUTOYXiJPYUTLMITRa_WTPYITXYJPNSQRL[=]XUa[U^cDOMSTYp`U\QSQWYPXMPWRXXYZV^RT_MUY[^]WW\SJ[R_aOYRcJWQCI]MXXV^LFLKOSMOK\`SXWK\[OW\PdaUWX]YTUKNUVS\JRQCdRbWYOFOTQIWZ]YMQNOTKMMYSXXL^KYQ[VcyOQYEQIQNdUbQSOFQS\P[THS]PZ]UYYHIZPOONGSN_QHNUbSXOIQ^]RQY`VYSMOMTV^SUTf[PSY`_`U^aGZbWXYT_LSK`cNSRcR^SI_YRHJZYVFKJ]^^McTPJMYM[NTZIKXS[RPJUXGDD[YQ[\VTNN\G_WPUiKNN_NWNZWNQbKL`NceVR[LPUJRKPVUPDTRSVSWLUiUT^W_aTYVKQ`YHPTSS`]]TLO]KXGMJ[USGMM]UN\WKZNQJR]T@aY_XXM]NGUPYR[VXPQNTOVJVNJ^IeNWU`YVTNUXNR`QNYQR[VO[`SQO[JYOVQLNZ]LWPRVSJ^I^fXQ\WVPQTMOR^JXQ_RN^[WUZSPFQWO]NRQR\MZ]_JQaLYKnIVPbPVM^F[WMZSXXY^VBNVNJM^_UaYZ\NOWV^W[[TW_[Xq^QPRgQYK[HNTNOV[K]VTYPQT[ZXPQ^ONYBXL[NPRSUISYGXQNKZOPK]LNVcWVNWWTPK]VaYXYZ[U[ZURQPN^DcMQSOUUgTZXKWLSWM[PbVUYPOSQWNXTGfLGWVO[P`WNPNWOVU^SUS[QSXO[SYUXRSROONXOEWKA\UT[UGI]WYP`GVeWcSURRLJWX_XMOMWQV]YS[I\TQOOMNPQP]S\Q[TZMZNUMGWLGRMEPYVKW[SVPUKRMLZHYUKWRURWOPVSOWTYMOOLOQPUFVKRURSUXQ[TWIKPSOPXSXFDXVWUSMNKXPQRNP^NTSPVZUUYNMPKNNR`SPSVaVSQORHW[USIXSBKRUVYMMNTTSVSSRBNfQU\HRIM[UMUHOSUQVPFVRGULTMPVMQPZ_UUKRRZJPFYHTQV\QMVSSMSRQNDDWiFRJUMPVOWQGYXU[VIMRKSC[SWXSWHFPZRaWHOUZYcTOWTJRRVIHWMVFPPPQXNLHUK`PXRcWSPMPTRHJRTWCIMRXRXaQVNRJWRLQEROKNUUV[XNWL\OTSQJ`JYWPKRaNWTMUESTSUSQWXTZQ`NTWNT]VPPH[SROLOPRFVL\SRSPPMP[OWP^VWLR^SWTQU^XMLHVTTIW]MI]PXGWG\VYUS[MM_VPPO\UMTJ[eMX^NKRUUXUHYJ][RZO`UYMPW\XRPaSQIJQ^NOQPUYPRYUON]I^OUSTaR`YPOf^WP[T_TYOTZdZZf^Y?QWMSPUPEOUKSWRQHMJH]MNSQQ[YO_KDMPQY^PTXQLVSKSLSUTOI_UJP]QMYPTXLOLVYFFKUPUNGJW]TN`TP[OSOMM^N\STNNMVVZJOJcQHRF[_VS]OPNQVOZLWP]VVRQ\TTMhWTRYTTMIM\LS\T\ZTPbPaVYVYYTL]PZZHPQSKNXPRMRTGS[QSSVPTL^QYRU[JWQRV[G[UWQMXKONQSXPQTWRPOGVVTG^]DXQQ[[RTKNZNQWERIPOORIW]ORYM[GbV[RQVWX]_Q_\POTOT\]TQXOROX^N\OO]TEU`VRYLOWSTQUQMUTOSOZ\ZSOQLV`PW\JQSTPP]R][USLNTRQZUUTTJQPRUZSXYSOUS]Q]^VVUGRLVO[XRTWUWXOZUY[DTNS[OVJTHYTYKZWR[^ZSWRVRXQ^OPQ_[RRZeTQY`bSVRIJYRSONMUYPNXZMXYNTPMOUOOVYN[NOSWZgMUfQBLMOSPL[[US_]PWRNPWLI]SVTOOXS[WDYSSPR[YSOgKMQ\XPSNYTTUKLP^QONPUROXXWNXSOUWWWXVOeJRW_aWR\P`YLFSRUPZROPbTZZdTXK]KQLPQS]M\VWSU[NMUXRUSUXPT^NXPVRK[NXQQTQZNRNTbPPVMUVY\SQRUUQLULVOVTURSQK[LZW[RUSTU[PNN`PTXX]OZQQSU`NWRRUQMRYVMOUOONY\TY^OUTYHXQ[YY]O^jYMWO[PV[]YLROJTM[NFNKkX[MRL@aXUG[X_gQQdRSONSLUCSOcX[N[WUNS]UQN`]SZWYSZUPiN_RP]PRVTYbYTIdTOPJVQTpM\MOOIX\JTNVIS\QLYVWaQXTO\KLVTFPbSTDWQ]MTcB_THTXOFXLQUPZNY\VaVKQ]WJWZ[JNSPNdTWOcR]VSZRMQYToXXId]ZVLSTNZ\PdSMRSTRTTRYPH\Z\TP`]^^QKQWGb_^MJZaUWNOZKYPdPZLSKT[UULkSU[VQP[UgVeWCVfVP[XSEMGccScWPV]VbbbVRBaWRONeUWOONPDLHWZQWNTNTRTRPZYO[Y^RZVT\`OMO_WIMW]f^RUPJ]`NYPXSTdTZYXEOVVQXP]PXO`UPTVJRRGURQNVdV^RWXO][TXnPNQTSUQCRWZTQ`aXZWLXdWRNQZSQNMWQPZ`T]XPP[[WRSLJEXV\NKNX^`UJZ_TbR^WMSQIUOTWWGXSZTNXPW\^UaJcW\L[LOXZ[P]PXKMQQOOPUVXMTVJHWYWV[NE^^MMWYZRTUXROQaIP]VU_[WOWUQHQPR\BWh[TNdQXWSRTYWPPX[OQRVMLWRRUSCVPaNTWMRT[JTWYXVRL_NW[XGNW[g_f__RZSTZWPR`UUONLSWTTcPXJ[S^XWSOJY]WW`jRQ`aMWQNQ[OWSRVL[WQSVHMOL[UVZNWUYOhGXZOUL`IU\TZRARVZRVQXPPWXVMTI^VZYOWRbXPQW\bX]]RMQYQVWXPOXNRZLSXPKUPU\XOYVNWWQPUQV[OITRFXIQOS\WTXOQXUcTPOP[eURLTQYQKRTMIZU]RQ\YbOTNQQJUSVLZLUXTPVVTTUUOXPeKZ\S]UKQTUZKQXP\SXJOWQTLMYIVMRJYPUORVTYIKRWdRRLVTQQOTSWLVVKTTWWaQNQW]Q\SRKPQPRUYGZOFTXNZ[UYWVdYRQSRQETQNaY]PcVSS[PGZZUZPHIPOGNYWYPK[OKI_`]]UJcQZVTYQFR_W\WS\RWIOPVQ\ROVaSXRS?IOVJWL[UYPTQP]`EUR]UMVRRkHYTY\SKYJiS[HNVLKKR[M_XY^UUPRJWZUMHPWWPWVRQ_XWQQON[SI]OWXLSNNX\MRNRNXOSWWYOK^TNNPRM_Q\RLVPXSTMJL\cR_\XceP]PLcQKVOKHZKQTZYTUWLNNSV_JQZRMZQ]aPYTWK\YS^OYTZWXWPS[JHZZS^DFW]OMaENVERSVRRTXRXYQNTJUQNZOV[UPSMSIJKIWX^PHVVAQYMPUUPTYROYPQU]KQVP`UKcZVZTWXVUYYMQa\QOSTRQVLeP^OXTYJZYOV_JQOJRPRUOOPhU]NSOVVQNPaEUSZ[NbLMWWSZRWXMJ[T\OQWWS[XOTO^\cWQT]N]QUTMVWOUUWZRUP^POZUQNORCZSXSaWUTOUSPNPXVXSLTMLSWVQUXTUD>LP^WU\NTYL_RRZ\NaXQTWCQKLOKYXNQbSP[YRKVVOLQLV`WOXPUaWUMW_ONEUKFU\HQbF][OXPXPXZTZOMLQJKRD[QXG[PSUQU[IWMXKLRP\OSK[JYYUYQLYLGNOO]OQO\FLNXN^RVROQXYY_MJP_bKNM[QT[XHONJRWW[XZTRWK\JbkQU\`LVHIWV`NQPGOQITPWMNcWSTHQ\XODQ\TUNWR[g[gOT[\QLXY]N\UIJU_WFPRSVSWPc\D^^MXRRYHQfS^FVSMJXNLZZaF=XLf_RVUMRqWQNVUQSEWX`QIFPVI]N]WUOV[_\NQYOQ`S]TKPRRNTROY[VSTS^S]_MbQ]RXVQ[RMFE\\TVUFYKMQNTN`^]PVXYNGUTZQWS^PUT^\T]QYZWUXPSMWUT^GKKMYPSI[XNWNPNIdVVKGTTbITSR]`PNbHJVUNMVNSJSTYVY]]OMRVMNZZZ^YVRN\SZOZTYR_ZK^Y`QSSPYaUNWUMRUS[P^JIKYXY_SOK[[RSUOWNULVQXTOWWITWOP[PXSHTRURPSYM\JXL\VYP[[JKSUWISHXTSMOWTUTVUO\P`SLNPXQKSSWSY[aSQOUaR\UVOZOSZRYOSPVMHRS?TELWGUPX[TYYTXR_HPRZ`XS^QQV[TMZWTSUM\ROTNVPSURaPUjUXLOVSTUTZPWePU[UUXTKVZFTOUPLNMSOROWYfXPUYN[I[TKJUKXOMRYfWMOYZKOQUZVTJ^SUUIRIZOUYVIaS\TXUUOYR]TXYTHULY`NO]^SULTCLKNY]UWPP]JWSPVSROUZ_SSV[TcRXOW^ITWZUROXQWT\PJT[VZTPOSZSXJMOYNRZSXNZWORXY\OUP[XRXP\WSXSOOSVUQdSQUTX`PNWQJ]NRVGTPMUOSPQQ`QWUVNPTUTLXZ[\RZWV[WOTKKVcT^\HJSZNOVHQONU^UPPV\e]YVSNQMQGYfT_VVUMRSTRZRQVZKYNGY]\MT^VROYJPNVOXVTXVVNO]^NaU_WUYP^^T\WV[LQLQYYP[ZbMKUQLLGUTRZNTVU[R]^CbELQ^SRPIZSWURXKWSKWHPPUXQTONLS_ITHWNT_PNVXQXFXSNM\NWJOPNcRM[ZQUTPPSWRVdXS^PTPQ^QVRUOWU[_YVNVKRQ[KXS[Q`N[[_UVY^V^RU^WT[RRURRUSTSTVTV`RI^MOQSWjRQJXP\ZSSZR_GVPUOTOT`PUbZKTPOSZUWMTJVUUN\iPYVRGVEQZPXPSJJUPTSabTWTLT[SNJZSVJX_NXRPO]O[ZSVdKRQRMVRTZdL[LDMSM\WPSNUO[PXYSKWV[XUOMHRYUXTMTPZTF[QYYKOSUKYHZNZZTEV`SVNXZdQOQVM]OQTZa[URH\HW^ZVNL\VWMZYP^UPY_i]]\bVXRSNScb[]XMUP]WMMQNVRVTeMRJVL`TLS]_PKOMXQMQNT]POMTLVEJQURWTXRYTQ_]FSVOWS[WRNKU]QSTTORaUYYMRM[R\NRUVMO[NNXYL>RZRT]NWSQWWNOV^NVYKSRJSGQW[SKSPP_L\RXV]UY^[[aZUPTY[]YS]cMTRUQZJRTZKLPQcPQRaPWRRPF^VLXVS]Z]R[WmXQQaJNSXO_iPXPNS]\[cUVYKRaPOP_DPYTPPNRXLPSRNWSTVO`WTRPKXbWEYPRRTNXMRLNSOPX`KTaYVOUOVMSZPSVWSXXUYVXZTR[^MXZa\TSWUTHKOR^TRIS\V]S[P^[WWR`XYYUXUTROQZWUPMKTSLWKTU\^X^XVOWTMNR[Q]VNSSTS\NUNVMQQQOYRTPPPRPUVT\S_JRdGUKLXPJOQW]WMORT\ZdRQQXP\T`RVSXS`OXcOR]OQbW[\RVXV\VSRW\RWQQSVNXXRWYQ\SYNPU^KLIQSUZWZQRMTYQZMLMZSTEP\`MLNWNUNVZXQHOOZ[TRXUTW^YXM_HMS[MRSQR]gPMP\OSKMQcXUOVVML_XNUNWN_^ZbMVaN\V^KW]WFWKUVJLRSOUSPQMJTSF]UZZQ^TNZQPMSZ_TNONWUUgMbQMWSJcM^QWNZUJPIZ\^MONROKKN[PUWQQPWRWZ^\]USTXU\PVbT\MSQ`PJYNPQO[aRDdaOMOVGU`PVUOLLRURaQS^NM`TPTVZSX\WXHUJPPQVR]WUMF\S_NX_HJQPTLROWQTJRT^[PK[VTSQV]@[Q_UT^W_^QSPWQGQUXWS^MLPWJNWS`LZPLGWNQZX\YPTHQTFYW^KSUVR\S`_TVTRTPS`XXTQW[XVaNTN`UWWTWYNSNSLiSHPdXS\TQUYRWVYTKPVUUY\VhUJ_VQPQN\XUMYYOV^QS[VWPWRVTMMZTR][VON][]SQZV\SRZePTPKVZUSWWP[]`VUd]`IZNQQPHZVg[ZTRQUPOXZVWRcYNOVQQEOeVSWTVJRfJIQ\aKVVdSQP[bTVMFUJUTTLSUWQURSNXLIN\ESTVWUMaO_UHaIT[YMRVYYRV]QZMTQPI`YRDQOM^L>XOZQWXZRdH\WRSNRYWTQaJGUIUPTVJUTQPWSIPTNaIWKWWZMRRT\X^JbMU_XTPQZSPOZULMJLMJWbPYOWX\GMaSUZMXYMZTPIWEMLWIZCNKQW\kPPVVUQLPMP`@LLaQWPDUGTV[U[TXYUWUNWX_RZWUXTLUWLWYWTaNWTRTaX]XRUVUVEfMLLRRUKXTGYSZTXZWRMV`NVLNVSRY[TOWRRIUYLZRJTPkMTIMPYV[T]WONSbVOH_R`RN^MRZ]QNRPQMRWOZMQTJQSXSXNY\PeLNKUOIPRQLUSUXTUR\LYTUSW\SlSU\PJZTITTVUOMOVIYaURZQUUK[KQ`QSWKOPKPSNMMXVUUYSbURTSSZ_ZV\R_SNYT[S]NgQPQVXQK]TW]OII]_cSOJ__RVGSKVVP[PdSTQMZRHR\WQ`UGGRSbQTKTTRTYVYUPWTOSXNIKMNGTWUTKUWcTRRKOTOUPW[cZ]PVNUTPVYWT[RIKOUHVS]HKRW`abUTMWSSQWKWLVZN[QLVKNNQKUWNXUWVRWPTfWYOaTQ\O[QZMTKX\SZYKPNO\OXZXSRPXRRXYWRUOTXS^YVOWVLPY_UOOW]UQVQaFXPUYQTVINQPQOO\VZUJ[\XWONaOJXXOSVVR`L]MNOSRTTV_JRVZQTTGLNSMTPTUNJUQM\U^OKNTT^MVWO^T\ZRTUYSGSMUTXQT`\NGQNY]_YLQ^NVc[SOWTURRSZTP\KTYZSSSNZWZHWbOKLTKY^JTWWPYOPW^VISJN\`ZESYc[YWSNSQSRXRNPcPQGUVSXWNTP_Md_WLPRYaQTTORFQCOQa\WPNT^TKLNUTQSPRVMSROZTPO^RPLOFUEM`JTTPX\U[PYVVVU[LYLRGMTZVMLGOIOJTTZXN\TcRPZQZXIPMZUTVLRZVHNFQX\QPXRJMNXM^d_YQNQQWRUaOR\QWTR^X\[QV]eZTdMNZKQPOSU[WRHSR\Z@JTaOZ]^SPcYZVW\Y[VHSOUWQI\YO_RRS\\KS\J[IMITWXU^TPUSIUPKXUK[UNTPTPRRT^XZPLVPNORKPSMPYUMVURWNSJPHRVTVVTVYSQOU]KQTRGWPXRIV`RM^]QUPTONXYMT]RPTYRYNMYQWXUIKQNUGTQXTSQSPNUUJU[_QWNV_]L`Q\]YUQPHNPMRQNIUXPURNRMX_SXMRMSLVX\TnQNN`UYNJNMSNMXUZQHSJRRSM^V\ZPTVLW`g\ZRSULVLTXa^VSKVMSN_[Q]LJSTQ^JQP[fRWKX^Y]TSMTcTU[fUTNKNVPPS]XSc]^WVNR`QQYRWHUTWWPTHSVZ\IPOTU][UZQ]_US`QTZ[LQ\NRZUT`]OYJcJWRUYROSlXVOSUQRVK\QY^YSMPQLOHOSS[RHSQNZYXPO\`XUOV[\jQ[RRRVNMUQKQ\VWZ^TV]TRRIXZLPRTULRhMUSOUMQdZRQUJCY\PXZVXKZTUXQY]XQQWWYRbLSWVZRQORSKZJUJFKaN\Q]S^KT^RQLW^M^\RS[XVRXULS[QPTUQ^cWL[PLRTOTJSXPYZRSnW[NP_UOUO^YHNRIXaQN[aRWTMTO[WQQ_KPW\DRbVVMVRWEJW^]VXPZFG\JUOXRd[VSX]SHWN\XQQXaOVHQOZ`YFZRM]^OVGTRR]ZfITRHacQQMTKL`PNSN`OcWJFZ`PJZSZWMORKIQOTU\VTSN[XROQO[GgS]U\JKG_`QZP\WSPVfX^MX\OVZUNRSTOZYZSX^UG]TVION`ZJTWWE]S\bQRc]URWVVa]PWL_TWY[XX`[SP[ZUSKOYT\U]UPMLJXLaNWQPQ]XSg\UKUh\`ZU\RTGIWWH]U\QXNNP[O]OdQ_PVZObWNWYTRZVPUTILMEMTSWQTSUWLU[URMLJWWXNVSQSMYKIaNNTTLXTZLRRXWSRSQOTRKK_MTY`\UQPT[^[QUUMWT[XZU]LWTR\RONL[MKVTHX`XOPKMUOSUGUYTON[ORWOPXTTZWOYXYSNXZVPYJ[PLXPcRMWSRMMSRLQPQQ^STT]`Y]PaYROUVTXPPFQSVTXHLOZTQXZRLOQKVHQa[OUVYaZVU`T]ROQSaUSVZS`H[XWMTSTWSVSNI[LWMPIVRWVYPUQNQXVIK`UNUPXJVZYPQVZLWWJU\LR_ITJ\DTKTUWOLR[RVZMIXR[RWXQZR[]mYNaST^UUVVQPLXTdVU^QVR\TTSZXVVVGSIVOM[JTRTZ^UQZRNLXPSNRRXTIOJU_VMPNQPTXTMYPYVVQWXTRPOSSQLZPLRWPNZ[SQa]Y[\LOQWVLSZFYRNUSiUZ[WNTONKZPMQV\WQVRLVO\TSTLVQ^XPO_WURSPXOM]NVLNJTTRSNTWWXTLSWTPRUTNU`DWMXQQQSLUV]^QPOUJXTTWLZIbTOYLGYUXRVMT\AMYaWQQUXSZEYVPMNZNYUL\RTQVVSQ\QEVMSZ\^OWK^OSKKRQORTTURcU]]MSPTRPPXWHJhTBOFNTOFQTQ]PUSWYSVWcVSOWKSMMV_QIYVRZPVRTVOMQSNMNP[bNQVUIbWQNSQNbWRQRIVTZM\TNUXNNMYRZMVKTWS]MVYTXXVVWVJU[VQcEQSYLYOQO\PTLWXJWPdTXZYZTSPKSVVNOV_ZKN`RTLUPP\OT_QTHQQPTOWOQ\OQKOPMVMSQT]TJXGMAaWPPS^\MUWRR]VW[MQZXKTRSTMMNTRMOUHU[V`XTKTeZKTLWSZU]SGSQTROYLJPIRGRVKHKR\\SPNa]]\SVOTRXSTMPMQTUUPMPQUSOR^I]SLWPJiMIpQNJNV^WXYYDYXZSSFUQKU\aXSH[^RQ]RWUNJYT[^ZRUOZdLc_ZVPDSVUE_KNVZ_QPPK`PNZSVTQNYHV[MTQWSaV\S_YRIUSMOQTV]_UZ`]KOONOWY\TVQS[JUIPUWH^VS^WKVB_dJYS\SMaZNXUUOLOJELVNSUVMWPYTNQTKQP]W`SKV\RXcLGKXV[QWTTNRRLQ[VPMVJ\\HVYRDWSQCTRRSVKNYRP[DGSNQNbULO\VKTMWXQVSU[SRQYMKUSV^VU]ZLXVVW[STCRNRRUSQXYV^XPRQ^UPVUQLXTaPQZVGNUW[Y_VdMVVMXcRX\IN\J[USQUWVXWW[Q\GTXVULY[RZIZQVcXZXeVTQSZR\XWNQTK[UJWQRLQZ]pWIKU]RYXXE[TUVZLRPLGYQ\UP[L[OUEZbW\`UZUIXWP^WZMMKWUP\FLUfPXV[TTPSPPYLSVQ[\VXQVTiRZTOQH[TZUUMSMRRLTQTU[WMV^XNK]LWSJV[XR]`\UYQ[UXSRKPJWONICKMKTRUSZVSPZQf^QTOURFTQXRmeaOOSMQYRVQ[QSVL][USL]UOdXUnMQRZUSNKWVPNYNVUS`KXVSNQRJ`WXXXNPcTZ`XMSLPTU]ZZ\UQWTYKQ^KOLJV\QKUPVWJQVPLYLSSTYYUX\_NYT_T]YZSUPWVUUUTRXXYOPTU[R\QXW[SSV\[SbVWVUSSXSPVULLSSQS^POOZFVSTX\aY]XRWMQGXPZEVKUTPTVQNXRSURYXN_UUZOW[VNWYW_MX\XQ[ZJYSYRRQMYVSSgQWVS[JN\KUJ]QVKTRRJ\TPSZLXNEZ[NVNPWbT_XWEZWU`NMXTOXYX^NM[UNUWQOPVISKZ_ZT[QBKRQJYQ[VWKWY[Y^STY\YPQ^N_OZVTFWOZK[JaZO\RTMNMMZRXVTUTXZTXKXV[QRRQZ`TYUPVZHQWTUPP]KW^STUf_WSRVHULQQZYLRQJ_PTXX_RTHXKXQKOMUPO[KNVOVMOJYOXSV]LRS\KVTWPj[UXRXSUT[M]TZWSLUR^YKQ`bUP[WMZ\^TT`UXg[Y]HMccTT[[SOZRYYQYILOOUOSTPQWNXMQZVYR_f_KQRUZUXOXORONSMMX^K\PQM[MWMfWIWRMS_[PUbSBGNQW_MRMKD_Y`Y[ZPVPdV[QeWTT`PPFQVQSNUPSPURTdZ]VXT]UKbQNTQ^EQJMQNSSSRbVRWJ]Q]ZRYOLQZZSb^TR[^MUXPQTYYYRT[RTPWkhLP\S]OPRISUOHVWYLNHPXXNSIhOZVUkSMWNU[CXRYQQUVOIIM\O]YKaM]TX\V]TWSUKSR]WZZVR`P^YTXPQa^XOPZYLUSQKM`RZL]Lc_USLIZTJMSK]XLRXTLMZRGVPNRRSdSSNR[bSXWRcWLOHT[dHUPGTHW]QVUTGHSbUV\WO[S_KNEZWETLFZYVYUSTNWQNSO\\Z^UMW[QPZXQJPKRKWTK[SI[OJ_NZQSTMUWYJNQWcQGJUPPXO^VNOTTY`RL[UPWSTPYPJ`NVZFV\TJ_ZPONSTMMUQRNUVP^WMU\YRHN`]NdYUTQWQVYX[[ZOS]VWYXWYL[VFaTWKX\I[MNJYS^T]TVY\NNTTM[O@UOPLSS^VHRQUKXUMQZWQOcJOQXPOXRTX^UQTRM_SVSOOTSSOYY]cYQJVS\]TPQUN_fT^YcPPORaWYNVPMXKUO[OVZTWNZQJQTXQ\UTX\NYVZJXKQO`\`SIKSJYLSIPKTRPZRXRVURRSMVQQOZWYZLYIL^_aPTX[S_LiMJGWMLBS\RM^KORPNMSOTYSWh[OVVFTTVVSb^ZQaQVPSPUYUV[WXXSZ^I`MLRTTGIOIY^QEXQGYTI[HZIYSEe`SXPKOS\P`XONYYdSQLTVP^Xb]TS\OXTX`LPMSJjJVJ[TSMQLZG^J`POTKWYJSePNQTcUO`L`SPYNLOXOJQSZXQHYW]LU`U``TQYMGRT[KIJLV_OTahY_LdRRQXUNpFMbLJKWWWM[SVNZW\LUSMKUTKGUXlPURPKUTI[TMVX]KMQWTORGYVMSVMQSQTTNQLTMOXKS^UJRWSZVSRWO[\XIK[PWWWOPiZROTP\P^?SM]RbOfWYTSlaQXPVZ]GXWNM]SRXW@JUT^`SU^VQWN\VSPQSSRSXPPWRPO`R[I_[[UPK[X[QWQPMTM[MebKSXPZSRbUbWVSNNJNRVNPPUSZUUKM_XXQPS_RVT[SVpPRVP]X_\SU]ORPYPQTSKaQTTLUPUMQTP^QWWRWVWOIP[]V\TX^YcP\OQJYWX^RUZSQR_KLWQXYSXQOcSQXWULYIHPXbN\NMYMXQDSNTQZDRV[X]VFUYYHN]PYRSZ[RN^LI^Ib\WZOLNOLTVQQWTRTWSUPNYTLUcXRTYZWNbRQQbVVPVPRX[YQUZWUjRWWWWM]]VWaGZZNJ]TMR^RUKK[L\OTNNSOWNUSOQYKgU]XOPYLUZSVTPQJSX`ZV[RNXZRVXVTNTUIYYMYNZ]V\XUTPN]H`\RPWLMZZMWWRS`YJWTQa_XTV[aZTNMJYUJZKQPZPOU[ThWTMKZPXWOZXXYXQLUVSiPLJPSVN^QNZWVGEPRUNQhFWNP`DQRVPVQOXTIG`TYNUNMVQWR]YRTXFQkJbLYPZRJJjL@DQPUXTINHTRVSDORZNTZEMBXNOXHOERl[PJHHLJPWQOCNPS\SZaBROYBHL@cTXRU]ZP[WJmVZRSOUVJVaHOPSYcSQOTQNNITPNRZIO[Xj]VMJREhNSm\N`M\UEUCDIKb_XYJYKCUW\MLKUPSUOK^KNRVRS`PZeTZWEO[KTOTZ^SYWR_ZQWZWKTSRUXXQQPVVPPaFTOPRNPP`O^OPQX^RITMG^QVPOGMNP\QdOQWZPPWPQLVP^LOBT_[_TRRb\K[ZNNaX\]QP\TG@ZMJVRXaCLVdRVJIJXRUMUWYTGUSNUYMET`BURHT_\J\OLPXZKTW]QUMGLUU\WYYLSNRXVPTRXgWWZXLT`GVSZ\SWHSPKS^NRWYSRPQOiUMKUUUVW[\NOZVLTUZNSFQUGUYVZRR^Q`]SQOSQSNRTKRNJO]PUTVSGRRTKNWQZUQUXTRPHWVTONTTTRM^JYISJSPQZ]QQRUVQUQ[TVRQMcUS_]T]RbJSMHNYWSMS^UWYQSTWKQRbMW]uU[J_HIMPLVMWPSPRQQP_OUUKPYUOPPXRWWS[QNOR[JSQVRIPVTVTPSNXRQQRYVKJQN[PXVVP]QSVTQLSWP^NKJNTQO[R[]L]NSRQWN\YZRLRNSRRbGVPMPOQQJS[TWSOZOVRVPMSLJRSXKUUJYUNWLVUL_`MNV]MTRROVRQVU\XR]PXSRJRWKPRSTMTZW]PYUZYTLURKNJMb`\MQV`LWUSPNLW[IMSWQJWLZVT]ZRTYQQIZQXWdSWXaWN\SbPO\SM\bURMNXLSZVWZPPVPTXWUU]SQV[MO\[F^]VRSXPS`OYZMURXLOSV[[SOXUMa]QTbXMW[WSMNKO_KR\PN^WYY`ZRIWbfYe]WZNRSQNUPXP\QWZMTX[QWV^ZVYRZXZ[Nc]RaRORKW\ZLTMdWRUQ_Z_OYR]S^SMWSL]]RSURNPWYQVWQ]QTQNSSU\TQX[aQ[VOVT[XWW]\MUY]gfPPWXSQP[M[QWQJVLUSWUSRRTPTXYL_RKT\TSKbWURUTYXUWOM^WgTVSOOYQST[VYP]NQUHW]VZ\O\SWVO]RVV[`NMTVTPVNUR[UWP]SYPNW]]YPQ[^XRTSYJVKP_UUYaPNP_NTTRV^L[^[STYS[WUPV\QXM_PhR^`H^X]YWNMWYT[TSJRZZ`UJPI^YJOUVN^SVZOVW[KRROTTV\M^QVgU[R^OSTPT^NP[_STRbOQRX]VOVYK]J[eRSY]_TQXN]S]LSJGR[EKXVWI\PL`VaVWPMTN[PRX_WaGLQSSKMTZWaSQ_USNTaMNERKTH_MO]VIiRS[YMQTTUVICNOYYRTK^UKXWYTMQ`fdR^Q][QUeKHMIRU`QWPEaVLSPP[LRR]L]PK[\Q_V]XMXQRbWSSRQ]_QAP`NnXSKXMP\GOSR`WRTNV^ZcMUP^TSOSYUW`K_ZXM\STSJWZW]gaRPQ^GSNYMSSLfRVMUSZPUMUObIUVRJ\S\XSXOYRRTNULNLZYU]TYMW\TZKPXPLXYRUT\ZSX[\VPPSaTIVoWVWLWUXPR^YU`UO\R[VU\TZ\][RQVVZRYRSPLUPJZTQV^PT\JMTKRRUO\[RVTSLMVYOSZVQXMYUNDVSMSVSSUXPVTOTRSMVSTGM\P`W^\UOSRNMRVZOdMPIXVNC^NLOXTZPZbL_SWHLTZRESOLW\LZ]NaTZ\YSYKQJNPWIZNRJSUPY[\BYPIOXXQbJTTRPUPWTST]OQLLYNKXIP[OYU\IXUOQRZ^UT[SOT]XjQLSZWPMVTN[TTUP\PUSLYTPTU[WWWQYNNPUVRRWX`PXXQRMRXJLZTVRQXJUOVO^\TSQJTVNWGeOLXTRKN[SQJUVR[MOZMOYTTeOXKR]WSNGWNP[RXPY]QXNTMPSPTQaZ_TUUXXWWT\ZXYVLXU[IRYRQVRSRVVZSOQI\TKZ_QPYOVXSTQXT_NWSPSXVQVONSWQLVSVYUSWSUTR[PPTSTQXVQPQZMULYVTNTVWUYTSVSMLO[N[QXRQHY^OZTSTRSQTXUNWa]UVdPRSTSOQXQWVYQUSZUNYTQZH\SRR_\XQ]VTPT^YZnWgOTTYQYVURUTSUXUQUX\LWU`VOfVSR\QR[]UU\ZTVNUOUVPLQPVS_QO[XNTYJTJ`QTYPPVV^bn\WWUMVH`_RVNOY\QPOUUZSLTVURXRUUSSRW\PSURTVSN][M[^QULTS\WX\NRWQ_YPRNOMKVXV^GMQOVOQSTbRVTVYTWKYWNKTTTNTRYKVHWXYRSQKMPIUTaOMS`^gRUTW_PVY\^UQLSOWQVLU`dXTSPS^XZHZMcWYIT]UXUNSKM`URLYKZPS_WDQTPVTNQVRYLSENYSaZJIVRN]mRUHNWRUNQe_YRROSQT\U]QP_OTRVSYPOWUUN\a_V\MPKZZMQVVbSTVUWRVS@UTUIHLgQORZ[_SeIWWP]XR\PWPRKSFQSQTZMZHRK^SNX[`PL[LVSFSIIQYTY\ROU^VKSWVQ\hQUVSSYS]bKUVLPZST`NaWXJRUXTNXUXIPPZZWZVY[SP]SPPQQMRIL[[WSGPL\STXYT[VRUY[QYLSQGOOZRP]VYYQZWXTWQZQQTZXS\Y^POQXOM^TU\YZI_dKYWUVSYMXUPRVTSWP]\VVSZRJaSTVQVZWQVP]UPSXgRSOWNM]WS]LTY[PKKPSRQMMTULSNUQY_T]EXT_OQQQSG]I\[_IWSPVO[SXRYZ\T^YNRR^_WLYXNYVLRSUOM\_fVNUOcRZXl[EV\WOXYXY\^MUYVLX]RcXY`P^QWUQHOR]XOPYSXYeKMhXWQWPgUMLGSYWU_]USLTKKQKYVPMeLYMJJZOSPFRZQR]WLWLZWGXJTPUYSH[R[MXQRTWMPOUMTQUTRYRRTQTOXXOZTRRXXT^Z]_QWVTVYPQZMQWRRULRJNX\^\S[YT]E[WMW]KN\LMLVQRX_SUWSQZOZOP]ZXI`QXY\KRN\ZZWEQPPRQUGPJXRTWO[QK`RQ`L^XVKQQTUVQQP_U\STJVYHKX\YUQ[WBS\RZSY_QUHULPQaNU^gSYPLVPSZOMPTRaWQJEST;KZSRVRYQMU\TWYJYIWQUUVOMT`UZZNT]\URQTQSORZVgKYPWWNXMWhQOPSNNWbOUPWVZQS\WJHMQ\SWP^TTSTPXMK[_VVPRHPX\QSXTQUTLYTU]ZWQ^PZVT_SSQSPSRXYRWQWQYHRdWJOTTSXU\XY]N`O_TMTZRWOKNKNbSY^O]_NWZZVPKdQLURWUNUZURMOQZR[\TNSLS\QHRUSVUXNRRPSWR_UOQOUbOTQWVVRPN[JTTRTSS`ZYV[OOQbOTRLWUQSYVSWTKMSXROZ_QQSUQeQSY[ORWVaRGOWXQO^\PNKQLQb_RPUbUQNYWVRLJP]TQOWQYRPXOSJVUSLWYVL^QSWRUWNR]U[`NVXY[QXUGQSQTXLRRROOX]UJUcNTKRSQSYMWQZTTnS^WOSOURMNYNV]OWUZ[VOTZWOUOJT\WS_PXTRIVTZSPTWQYRXSSMSXUOSMSLFUSIRT\S[RG]HTGMWX]]NTSN_SQNYYUXKSIVPXOWZSMIVSTSVXZXNZQUPX^URRYY[SNXNi?SRN\W\XQL^USVTTWYZUXPZVRQWWZXQVVRNR[OORSPRTTQedMSZUUMQURWTPaMUG\ScV\QXZUZUNTYTPU`T[SRTV]]NKXXNRSNXNSV]SXYZXRVTNK[]U]QMGRXbYU`YOOU[\MNPSSQZQLWO[QR_T]UTVVNTPTZ_QL[ORLQ_TVfPUUNT]RMOOWVYQWMTQP\JXVU[XNWPTOSU^PLWT\WOMXTTTMKOXUUV^LVSHaHDRXL`XIUPHQJRNTGM\XGRPVNRNNPQYSRWPSadKPSR_I^PV>`OSPKWLT^KUHW\ScMPP\U>Y`VPRZFWRFZWVJW`ZRJRPXSXSRQ^RPU_^NWYYLTQMSQQ]WfARPPL\LNYRPSYPPJXSHZHGMR`UhMMYOdPNT_VS\GUWN[NKONYIWPQPXMRLPZ]SWMWbOWPZV\YNWTKcPYUPO[`LFXWTJMRIaaOhMMXPMUNXQY^WVQVQO[S_JOQ[^TUPYSVEXlXKRCUR_UQHYLNQPOI[WNWTSL]OFYMZZGTOPXLPHYS\_TJ^UB]PYWSYYJPKITJNMGVNZRVI^SLPPQMOWR[QgcUWX^OVHT^ZRN_YYST`TTeRIFJBH[HDMcZQO\ORJRVSSKVNJYPGMQXWWOMVVVX[WPTKXMQdQYSSPQS_UUMUaTSSVUXRa\R?RWJMYXSVWQYOV]SNYVLS\JXUGVGLKTNQUV^caSXVUYT]aKOOUMTSVXTVPKRWQYSUTOV[W^YNfOPVTRXPUNUQS^PJMYTRQ_VYUU[UTVJJVVTTUISXURQPXVX]R_URTZROZZTOVXLWSVRNYcSSFQIR[P]QZcUMTWMH_QVRPRVOQNPSAUDYQWMZSJLOTITX]WUVY\X[SaLUWVVDZUZSPWK[]XTJTU[ZNP\WQYVX__ZTZT_MK\`ZZUJQWPVZ]LM[JO]UKTYTMWSQVT\aMH]PeZYQ\OUYRUGUS_]NV`TWOVWUTMWXWYJSUONbk[UWQXVWTVWNWR_[TSUVNMXeOOUKLKQNKQNIPPTORMkYXUUMHJXW\SPXSMRSKkOOSR^\J`PSJPL]TXUNNQRPLMPNRMQVZJS_QOP]MQMVUUYcSJFVUNKLQMO]HVSZYOfPS[XOWUSQQaXDUUTU_T`fGKV_\JBZ`MPROXTMW\[`WIQQM`TU]MKYTT\QU\KMYGWPNnWTcWWP[]\UTQPN]WV`VVMYUTPRQSTLZUZ\WXVVZZb\SP[U[HWLV\V\SQXVTZXWLKSQRXLRYSaLOTMLTUXTS[ZJM[TSENUUL^L]V\TKLPSVHIOPVYUSK\QTZNKL^WP[IVXPcOXfVVY]VUOK[RYNLJQQSSWUSROE[YNUQ]IOORW[SP^VQGPZPTWTU`U`YROV^SVYPZHTNUVQTaUUZUJW_HNRPWU\VWUVRG]`WT[VKO[POQKTMU[LR_PXIRUOURXVQR^dSURUTYQOTYZD_S`QQNPkXYUWEQNXVQXO\USIPNZUUSSZNHTSTSMUPSOTR\RGaVSWVXMQeR\PRTeMMS[RTH^SUMPOUTVMQY_^UTSOTVWFLQ][VYRTLUQRP[VMV_PPRNNHW^U[PTQ[LDPQLQPSRQQSRHQc[R_PVPSRSRSOSP\PNRYWVMPOVXQWVZW]UX^OUP[LVXYQYOKVNT[DNTWZ[U[S_WXTZTQTUQQHQX\[QRaZPOPX_TUQSVVU\`XZHOE[UTMVQSVQdLRENTQYPY\O\S^VRb[ZdXPR`P\Y_SUSVRVXTLNURXcN\GLIW\OWRYW]ZTV\RUMQLZHUVQNIPbMSM_ZXV\LMg\ZFLS\ZJOS`P]ZKHb_ORZORXKQRYQPQZPJQWNPTU^KQ\TRTiLJLURYUISXTKXVTPKOLRYZOJX`N_UI^_RU[UUPTJSJYYOTRMPMVSPNWWXNUQSNPWVHUQQMNKOSZZWLMTLPVSNOVQVJSQP[JXLZSQTR[QTT]ONMR[FWbNTWQ^RSSOLNNOSh]QTVY\\HH][PUbW\T]MAFTVaSTRXU][M]dMOKObLSQUUOPYTOONhLWBPQV[VSQXXYYDOOKYJLJ[TPJS]S_DIRLVQTVUNWQWHTWTNKQVPOLLXT_V_TVOSYLOPIILUVNRLQQHWUU^MSTOPX\JTNDMLRbP\NT\O@OOIP_Q[_RTTE^TTTOXXOFVXRJQUISeIMZUSSUSPVQ[QXROfKM[\bROOOWLZXTSIZFX]SYZ\SNTNQaC[OPOUQSYU`NS]QJNNYORIHOVS]RS]a]QR[OOYWWRJSWFXBU`SXYNUL[QUTTPWUVaQNQc[JSWXNPUZY]`ZWWSWGY^XW`WY[RVR_SW]JQUNW^ZLF^PZTWOQNSZLK[JRXNNK\TTJMTUZLD[P^PgfPXMKQTRWOPP`ZVYLYYWRZ\LdSOV[QMMXQWmO_Qe^IVJRLVJO[YP^NQNL]ZI\RLLHWdWOQY\W_VUUOVTNN[P[RTe]LHOMK\SQLOR]V`Q_\R\UUSeNZDQOWXSMQZKRZXT`YVMPWGLaORSORWWa\XPVUOM?ZSKMRVYLSZ[STQYOXUTJ\LSQeVWQTR[TWUPZLFKQZUNbX^SPQ\LKXXOMSRGVOXPWZ\cSYJU_YKJYZLcUKS@K\XPQSS[UIMYRPYSZWWIKZ\]TSSWMTIRVRYRMcRWYV\UVOX\R_OXMWeNlSPRWVYNK]S\Z^NTPXMPOVLKWORW_[WL\I[TRMNS][MZKXlThOV@OVOT[SfYaVVMTPU^PWY\RR\NeQSWU`bUUPROSPXL`H\[\`ZY[RhR_QUPUKRVMPUURI^[O[^T^KbYRKSeMH\MO\GSeU\SNDTMRKNGVbPKgV[RL`SVWNZJNR^KPTLUS[JeXVZRMQFM[WVPRKOSSbQ_ZSTVBONVYSZLSWPdWTPYVPRXRUK[JQNYTSQUZSJZS_NXRSZVXLYTWVMOS\LbVQh]TYRRUYQDMMQUZSOTL_VgQTPOQUIZSXYQ]^TWLMd[WRMTUNQ^PdTTQXSLTILWPReRPVNNONQMNGQNMS_TaTRVTTPQeYTaHY[QQd\`QSRTV_RURSXUPLaYZNQ\ZXRQ[TLJ^WbQUPWUfURT]XXZMP`kURTURE]XQNZXcKSQUZ\RPYUPMIRLTIJU^]KKHWUeCXPSSNMSCVWCTcQW]JEQ\nWRRR[QXPo^YXMUQY_LPXN[XUPWUKXO[PTWUJQYSSK[IPWTXUZV]GYT^MNSS[[X[YSUWDRQPaU\LN[YSTVXRT[PVJNKQeXTW\FPRPZWW]U[YP`[OUY\cJO^NSNKQSMUGZRTTLMKX\TUZKQVJRPQW[OVPXXYKTIWMGVKTWN_P\S[UQERWVXTVY^PKVOV`V^JQTMZ_U\MMZSGVdZJPWZRgYQUQZYLXSMcaLUSYQOVOTGQWTUTZSU\^TIMaUYMOUNP[QRTQQWXOUONKRKYSMOHVNWRVYXNTbVO\RZSOUSQRe]XTY[_QUTQVJDUGYRJIWIUURY[XSNXMQ]`ZXLWZPUEWJ[TSIU]OUOXRUZN_WWRUUSJTQNWXTVRUNNZSN[ZSJRS\PUWQKQUY_VYTVQPYNWPITZ]MP\XIUYPSZPMNPSUNWSTOZVURO_NOROOKYWRYSULPKYXMVYHWXTNQOIVU]XVZZMIQTKMYNPO[YXQMXUO_MMYWQRSPRNISYVZPK[RY]PVVUTQWOXTW`YWW]PHTYdLSPGXPO]XNUOMWWWXNHKTKWZTTVXQWOQVRT`TXTTV_NTX_NTM^QXSNbPM[]SMVXTCYTOTTMTLKdGNQYZZPZNVdMUTZLfOcUTZQVF]MRRLWPPSU\WIJUWSWYLZOONOX[DPJSQPY]^UO_ST[YPVPLOWTOQO]QSPOTSJXWUUZ[JQJRTSZQUVSK]PXVT[VPOMWOOSU[YWX[T]M]YLTMLV^SZVTQWVYUZ^PXNJZNTVJRTQRPQSM\MQPXTWMPUIZ[WdN_`JDReRXVZJFM]KTMSXX[QSQ\XSUVOPYROKVPYQUVbTVaMWNNOaOTTPWSURMT`[FZTJRSSPUNHVTXLL[LQUEKTQWSd`[VUTaRLVMSP^POTZWYZNOFLULU[LaMQMROT[WGRTUQKXROHP\ZXQlR[VL\[YM[NZPRYLDIP]NTUV\VUTS[^PQQ[MS^S_TMT^RTMOJUV\_SSYS^e[UWV^ZSOTOLVHNIVPMTX][LJIRTPVPNOYUINTWNLKREOaUVORSPHWTSDTNY[W\NcbSNUPNNORPX[YWXPW\NWYNYV^MNPRKSMNT\V`YZRZXJNOPTOMQZJQJ^ZOOWJ[UQOXLNUTRTYJIUXXYSRc[\GVXQPZX\OGTUL^TUYHPWTLOSSX_XENRJS[KNPX][RWKQN]VMYPNQ[U_MKM\^kVYMYHQWKZPVY[NMU^IOXSW]RJPSRaJXKOVPQPUGLKT[TDUZZLHO[BSY\MSOR_SJSMPMMXPNPXVOZ_kV[VRRTS]`]ZWWKPNISSQUOPNQSUHUEP_VYUSW^RRRL[b]UNRbQY[[OSZQK\LKJVJORW\ZSVQVT_KXNWJPQRI\MTSRKQUHSPW^RNNJNVINOPPHUSUSPSWWQQTRSTSRSPOX^SPMRPTQYVMHUSJDQPNKOSQHXZMURTM&RQKJUKUNVJ\OPXPXMRTYMQWKPYSLVPVPOVNPPONQILRSLXJJEOQKTPLQTOOKWTTQROYLS@LLRESOMWROOXNUWOOSPTOQWZMQMQNTPPLUOTSVUMUVTIPVjNWXQRWWSLQUPSQXQONOORYOSQWUQOOVV[WTPOTRZOXORXKTEW>\RNULN[WRPPS]STWQWPMIVR@QKRYTSTT[]PQVUOPXRKQMUSZONUSTSUXRLXULSUVYYZUXSPUPVUWTRNXURTQZPQT`GOTSX_NVWXIOQRPTPXQLNQSXQZWROOeXPNNHUSRV_PUKIRQSLWOZSUVPSPPNRXOOKLRQPSMNQIPNRQZVTJJUVSVaRIKNOZP\HMN\I^TVZK[QKD[OZWSWNPYWOPYU[]ZSIPROL_TR[LRUJTMTQXMUQHKTVPTUWRSSNPQbaNKZUMVRRQ`ORMRY^FROY[XPYRZGPXR[PR\S?QSOLRXJMYXQMQT\VSVIC`^WFXZOO\Xb]LX`WVJXYSROXWWM^cTJRUNSVMR[RL\IULM^^YZX^UU[LYMFRSTSPTJY[VYRM[QJ^JJX\ZHPIWQXb]NMXXPPQ\[JUSQTIVWUFVTL`YSUOVVR`QVSMUVQXYQUSWSQNZ\WSZVTVVNXNTRYPTSPEbOOWYWVNMaWQXQbZVVYIIVUVMPKOYZaNZQ^ZNRPXLPVKWZXPWVXSR[\O]VQKHUVZNWRQTWZIScU_R__SOSkUSYVaRWnSYYRXTTPWaLMF[MM[SXRgQUTd_VQRSNPVOTWQ\UeU]FLVUVODZQ[MT^_UQuOWI\^\R]QQROcTHK\KOJIMUPYab[XXKZUPYKj[OKUNQU^TNVOWPQ\UQbaQ_JXLJNACWTRDPX\PXYVX\QVEQJRUVAQ^STSXa`SRPbQXQaIILITZDR[HNTW[PNYa[TOT<[VQXLUOE_XQhMTNP_UUJXXVVVPXVLOaLeRV_V_LWME]XYOTSZWORTQPIQ[XQQWQQRYGZUVUQWULPZVYM^STR]\V^YNWL^[TULUSRIaSOQXMPPNQVPWXVVKU\PNYKVWPC[Rf\RJTJc[NXTVVYYXTRT\PXCUCSYP_^YSZJOKMYTGIW^U]SSUPIW^RMMZXSQU`_@XMK`UXQLKYWJPPVZ^[SVRZVQVXZXQXVeZaTUP\VQR[TYLSZNTQPKZ\LRKMLTPS]WLURSQRXWRSZPMQX^lRLJP\SNOHJOEVcNPR@]USXS_OVVJSP\[FOTPYFQZUNRVO[[VR[KNQOLTOXOZDUXMV\[YSOXQ`XNi\aTW[TVTOOUNSOZQUW\UWN[QQ]ORYUURWUOVUNTUKLOXVWPQ\QVTIX]YQbZ[]YLPUZLRO\WKQ\YM\SVKTV^Q_W[RR`T`SITUZXeLRTQSQR_TV^STUTVS\\QZYPUQPM[NgROUR\MJVTXNCi\QZT[_TPRSMJ`EQSSQUYZPKZSO_Y]TPJLTVSWKWVXWQY\V`OWOXLY[R^WYVQ`W`CYTTOQSZYSXVQRXXLPKROEUQUNNKSWWPVNTVY\XXYeTQ`RUNVQQLRSNUdSQ[Q\YUC`GZSMdBXKZOX[U[TQYO]NLaSP\[SOWYWMWSPYWUQSNVQU`TVURT]SLZQOQWWMKZP\U`SYTKHTNX^LNPXWQOM[TVVYGOMbcP`Mb_XPSNYNSMWSRGY\`PSYUbVMUWCHXMUVQVUMT\OLYQI\QMPXYYaPQTPQWPLRLN\TPYQK]XQQQORMRQUSOTO[RYRJSQ\PTTLP\TUQWUXYJUTRVQO\XS\G]Q]RPLXYVNVRISYKTJXZLHY^LNOMUOTUZ]VQNYKUOQMSR[RLQ_[RZLSeKSZUVcPNOQHX\O`VXMRYYPPObN`LPJRTVT`Q\QORPWPJ[HWUH[]][_VWKP[JQQVJ]OOTKVHWMQMS[`[]NSPZ]KSEOLWTSMQRP^ATPLKK]_WUJ_V^IbTdPmV\ZON`URS[PSdHXZMaQLMQXU]OL\RGqUMVR[PIMQHZT]QPNRWPXTQKLWNTL^ROXQQZfYY[XYUVXJY_]]SNRJXQUQSaTQ\NSQPSPQP]RJSTYVPHV[X\PR]UATOWRGSaNRVW]WQWXNWMWT`XPLBT\VNNZDGWQV`UYWORT]UY[QZZWLPYjMJ\FFY^WI_JT[\JQPFI\dS]RMOYUVUP_WQ\SeZ\GWQVNM]^^YRSOZNOITYgXIDQTTRMWHPURWMOOXSKYJRQZOLYPKZRVRQHUNLJVYQQJU`SMTXW[ONRUULVKNZSMWT_TUUMSU_ST^ZYYVSSNUPQYRPUZdK[aPSaIVaHYGJ[PY`V_oMDWLYTV]PTR[UZQSa[TaOPRcSUNR[[\TbYCLXWSDXNf^R^NRTSQLPHRWQ[MXRTRLBTSJLXQSQQ^^OUVhU[gRSdTMHLl\bVI[NYFHPWQcbWXV[QlIPUTLWRV]OTTU^T\RZVQP`WX`]ZJ]RWj]SVIZLQVTSRWUGHXWQUQSXMU]SsUNX^LQ@RWN4UVcT[MVLSONNXOZORNUNY`[LMKRNQMS^RQVRRJOJSQGHOOSdcRNRHZOJqFTXQ`NYUUsYSNF[PUJVQJUKOYUN[R]OPISSXIMPVQQ_L[MUMVMXT]`TRZeRWGbWLVPKT^TR_OVTPfIQIUEHT?LQcHOXVeRXNYJjdV`XOORkNS^LKQN\PZa^M[MRRQOW]hRUKYMT[LTQ^WILUQ`UTLVXOYbM_XVMUZfXU[TUUVTTSO`HNVMQNR\Z`UVPR[RXVaaTS^QWYUPPUKSQ[YK_]\KQ`WaROJPN[RQQXSLZ[L\UOL]UNZ`XNPZQOY`UTZVTWK\aRVP[WMZ^P`ZOT[VURU[`\YeN[\WTRURQNd\[OWPNQRY\UUQYM[VPQe]SNTSQ]GXKQLV`^VWOR[QLYVTSX^OG_cMQSQRKPdPVaNTYYYRTRLUQUT[UQSWaeTHNQTQRHVVMUZURXYJaPcRZWMMWPXZOPPMWPLMTOQYVRYYQXPUVLN]QZYDWeFX[UVQQWSU`FN\Q_QYYHNVTXZSUdTWQPR[IWJ\QLSUWWZKKTOSbZLXQOSF\HP]JONUXY\NYYQMYQTTRTRUUYHYNhQZMUS^ZXPTOR_I`P@NYXWKU\TXVMTLNTNPRZKPPaRXNMSURSMUTMRXLZTSNVb]OUUSILZRVV_KUKLNQ]SMNNVKSTLLVW^ILQNWWUMSUSNVULQI[MZIWUTXRGDTNSQNPYRRQYTOSUNS[WXRYKYa\GPONN]\YQY\UWPQTKQ]i`IZZSQS`QOUNRLPQN]XeXTYEF[ZW[TKSUSSPYWKPQMMQPRTLGUSRZOOPRXNSTZSONRQQ\LNOPM[YNPNWSRRQMKKUSOFR]WTQTQRVMRMT]GSeWSU[LUQURPNY]U\N_SLWZQQ\XYVJQONUXPHNWSXZWQX\SGIVaWWRJWUU[\JRPUQ]PSWaHRTQKZUVN[NPMVQYLS[_SSMNNTSUKSOH_eZZa\[MPTYOZTJObOYWUMNO_O\WLSOfX_YIVQQ[c^NWR]\QT_QNVUb[M[RSWXSHUUVQKTVUOYNU[cWMMTWKZ`ZMQSKSY`cOO\TZWQRPVSPEVQXHUOR[L[ZVU[VZXdMUW_\NTVPM\_[K^NJFZZUZMNIY_PQh]UOO^OMPJS[QYKWHRMgTOU^PNZXc]QY_[YXZXOVDVQO]TG\TQXSTdXHUINMWYFeXPTBVMV[lQMXd[YMOhQ[Sa_RS]UQMGOSXU\O]NONQJXVXCMRPLQMKQQTPW_QQWTdVQaUWLPMPVMIRK_XRPVMQ\h[M[MVNQNRRTOOKV[I__VR^TPW[[TRUVZQS^H`TRWWGSZO^QO[OPNK`NSZNRWVQ]WH]\XTVUMP[QOTKOFVUR]UOUQWYLMUYYWYT]SnVXHQZ`[`PRU]U[SQEOYSKRTZQQVC\TJXfFVKkWJIWMNQQ]ITW[WOR]WRTOWWT\NRQNQXRT][WXHRYJ^VPZU[XRaSONSRW\U[J^_g`LQQQTOUXOSPXOUQJab[WUXIS_[L_L^]Q@URTLRM_TVAU\ISY[TTXORTXZlP[NRXShbSZYWNZV`LWV^lB\TOWR_NTSTJGO^UU_UUOGRVPaV[NT[VVYI]NT]PL]r``SFXMXPTRKMSWN_QLR_MODQGEURHSN]USkXMTXSiUNVO^ELTKLFROTJ[GNSWOY]_XYSVUUU_XONOYNVXX^YTVT\VLTPZFRScVCQbWIUZOS\P[PLTPSfTZSOZeKRQGTZOYR\QKSi[UERVWPNTTTURR^RSVOTFSMP\GVNbORR_USUU[NQXLWSSKRTYOWZUUUUQVJJJHKYX]VS[LTSQNSYQXUORR\ZdVQ]TFRTTQPORQBUVKdSYOYTSP[RWWTPSTLkNUNTWMXYX[LLSWRZPSYX\N]SP]VZ]aROUOSWPNYKO[YUONTURX`HYW\SO[USUMOHLWOSUNTTZVSSOh[OZNPR\QPVJXPKLOTOHKDUOV\_WLYSSOPNNCUVXZTPVQRTMTMGNRU^O[YLTQSU[SRZLTHQVU\NQXWPXQYWXUTLNLbPYYRUNO\RMVRNZROTSVVPSQLPK]XW_R\O^KOWTWNNMRQTQXMYQVJbXPY^VUYVTSUWY_Q_YTTSOf[R`LQ^XQXKQRWMMY\TSTWROPXLXRVRWMHHV[PRS]HSMUHPVQXOOOQLFWTMTaQ\JEQCOEPZMDXEQTTSLNTZUaMKRXVSO_fPYTXM\QFTFHQRR[PWSGYIRWNOZTWQO\YVRJ\HJTSP`RUP`GIPR\KOQcVWLUFTOSKXJTQM^XFGOPRRVVJTTTUXRKLIDKW\USQUSTM\DLO[YOZRUGMDLILQM_QUXIVQ\`RVNRKSWRR[ORQNYRL[GNGNPMZOLRKNQR\NMPVcLPUWOGSSSHBI[NPNRR7GVUSbNRQTWTP\RUYVNXURT_KX\VUUXVVRNOQZKPVZDJQRU`bLRUSRPNYWDYSYJM[OUYTKVSXSOJGQSIQaLTVSTWR`RT[WXQPTNXNT^LOWOQONUUQLNYNWXPRTcKTXWSPUXQNXKZ\STWUPRKWPQ^PX^TRSTLZ[IcNUZMO^QTYERHPMfdPUW]RTRZVVOZLPJTTQP_NeJSFPJOTYZR[RIZ]XHLiP[]S]GRWYE\LUPXTRUSJYM\M]QPRWVPNQMLUSZTWGVOXQPOH]OSPjUM[NIJKGV[PbQ^NWVQKNaXXfRX`\KMZXP\[MY\JS^W\U^S[OPVU`WPN_O[OR\SXRPdMOHaPWTRVMPVUYOSNQE\UQWKVLUTXZUbX\MJ[\W_MQWTTTVbXFN_MWXWCPZ]JRWQRiPUMPRKW\NRVWUJ[TI]VVPGQUTQ\TRdSLVWWJYLBZXSWMXSUUUQ`[LHYXTZPQSRf_SOW]O[RK>[KWWORRQVGKINXaSHNbRJGVSDeZRVQQRYIKSNSGROTMR]HNVY[PS^YPJ[RWWSRQIIQTRSXVQSQNR\IZIRSXRLYOTOUVUSWlRNVVTTXNN^X^EKIFTX_YXUZNSMUWMIMQ[X[WM\P`WZXWSRY\NYTJUPTXWYPIOXRK\Q[VJZQVR]XPRITTOTTLVWVSYYUORQPNSNHVQXIXLO\eQP[NUeV\RTRQNYdORTHON]RY[RMOQRIRTjR`T\V_TYXVV[_NNYVNXPXbTPTb]\RPQ[SRVWPVU[VOLYRHJTS\PTHWXNUR`RPLWRLKOSWUXVVSU_E\MF]TSV`QYSOZQgSWQE\ZSVUZSZXTU[RWVYLLYXN]LWYHRSSQITUPXXXWUUURWV`dX[OIP]YSYOPTU[VXVXRVSQNNOTURHY\YR]OTOL]bJRPL^NUMWZLPNJK\WSYM_[XLX_]P\NSW__ORdHPW_JMKTSZW_QWMU^TMP`hRPT\OIZWLTPH\SVIVVXTKVWJZU]NVPbLPXGVIQKYP_NHUZpWZKVOX\NQbV[HPSQXVLQ\g\XUIWT\_SWPTL^SWe]ZNWIPLDYRZK]bcXQCQQTUXKRXNaPK_VV^W_RPVTKEbOF\RPaZGNR]YUKRVUWXN_OS\VXJRX^OXUOVPTNOcRNMUV^_M]Q[[PUS[PMTWKJaPTaYTWQ\USWVW\mNOTUXRSOLNHZPWOUOaNXTNWAbVS[PGT[RMXMWHNPVbRT]RTZQ]^RMPONX\[^TOjVY\OXMjJYUXSSRQPa\RG]H[MNWZTTYPOQPCKY[\QR[L[[POPPScBRLY]OVPVOOWa^_SbKU]OTWS`IHRXXXKSNOTVIUZXX]\J_TQTJVWPLTWTR^UMWVWQP^Q[^KZMWWWSU\[SRINTTHGKPWOZPOWJUPUQYSZ\aNXNTOPNPORKVWZIMTTRIUROVeU\`JWNRM^bTWO`NVRZOILRJVQOKZGNMJeSUWPKLGbX_XSTIMa^TbMgNVPfbNLUYOLTM\XMJSaTWQPQPHVOOSWTOVWSGWTVRLWXJ]M\OWP[HaZSRSKN^MMWPPUX[OSKfMP[Q_VGPTQQNUPUOXSXZV\XMUScX`TUUWVLQUY[OMOOZ_MSjRWRZMEOOKSTQOKTVKVcRWTTS`GVN[WKRKQXLh[NPidZ[VIZ`V\KQbaJX^MWROGNMNQOTOLWNSKVT\QQ[_MZcWONUNMRQLWZLRF[OTKQaNeTXIVQLUS[T\TTM\ORX\QSXHUY[_L^MO[LYPNN^GQOOITMX]PMPPWLbRLQV]PITZ_NOXQZGV]KWPZTN^PQQRWWKVYZWVYJY\TJcS[RV]MOUSPjOK]XISPGRNPVQTRZTSQLPUYSZgNT__RD_UdNUTLO_MTJYSBXKS[S_ZTOS[V[Za[bNkYTORNJUSNLDYTZR[VQNZT_bTN[STLVTUTPGVNZVTUVNT[SUNaUOSYTQSMXe[JZ\MVSVSWZVMTXLOUNPLXXNPISKP]JROaDOLQNMLGUVVVVUPNWWZRQWPOMXNWZ`JQQULLUURVUS[PaQO[MSMKOWS\VHZ^TYHQZ_bTPYVHRTJVPPOSVXJPS^WAPQF\VWKV[NVUI]QSXgYYTIVVSRHJPPF_TQOPHVURJMJMMQSPZQ^W_OVQIPLKG]^UTS[QSTZY^R`XOlY]JNQBQNLKWQQWaPWPY\MP\[ZVWVQ[_PPQ_NZPQLRP^TTG`J\I]OOUOSKYW[PSWOWJZYWRT\K\RQOQP[PMV`HPWMSTKWUb^S[U_OMNLHUNYQ\JOaf]REZNMXPUPS\aMSP^PVZQORWNKTZYOMURT^SZOeOihKKbPMQUKT[ZUNU[LNGQSbZM[RNHVX^LL@ZZ\NS`SQOiORV^UNX_IPPP`_GLZaPQT\KMI\baU\VNPOONSN``U`VYPXTTE[RJMKaRKSYQVNNR]R`ZIN`LXSVMWVGZURX\SVKX?QRVJXKEOUNK`hXJZ]OX\IO]KRKWHSVNRRIJQOXKPTOUXTR_PSNUT_HGMPLXT_TOYSdNNPXMMNSSJFGRVdNcXMWINWRV\SOROTQVW^YRRRVWVa]U`QYRMIYX]WN[TIKNQUJSSVSTYVSISPMOHZT]SK_VRKNOOZSWVT^NVVPURMNRU\SSCNX[LdPYYGYTRZ\dXWNSPLNSRMLX^^VQR]JKN]YO`GJOJI_VSPX[HsPVbQ_UQX[`WNS\YGT]XVLSVQXLIQ^NVVaKSNWYWPTNBWPTMVJjYSOJNYXOXKUSYRPZQbRVN`P][XUMTXTMKKIROROQESMJUPTLXWbXMTWMKKQ^WT[bTacVM]XWPMSQZL_\XeY_IOXWUTWTNLL[MRSXTXX^KRiQIUQZeUISXPXQMMQU\[ROYSVPRVTXSPTRPMRVNSNSLO[gXT^[R\MLTUO`S]SV]ONOJIZUYPQPTRgVUKJUHYWLN]XJ[_RUYTWQ^[bXPYPQZMVVN]RNQPPVQ][HYiVTR^Q[M]YXjIL`SPYTN`BSXS^IXR\YMOdQ`UKUQNTO^XXHRUUSOVPHTNQSSTQU]OWTgXTPRIL\WWSYQPQ[ZPQP_`\b[TPTYPVQOYcD`TVLYQUZSRNLZZNOTTTT`ZNNVNRVYZRZ`Y]VJIKPOXOV[YTSOdROHMgKVVXPPPUWUW`RXQLVKRU^cHSTm\OXRXKU_OWQS_^UjNM[WHVUY]RQ[SQTUdQWTOQZ[LRPNQ[R^TTNPXWOc]VMNU_IXSMfMTQaOLi^PURMPYUQZYVSQVJFNJ[QaRZRTUMUU`UOONMXRXUXSWIQ\Z\c`SR[eLNSONPV\OSS\PTVFVQJTZLUQXMM[VQVUVXMTKVVNMMTIPFOQaVN[JjhY\IXXN[MWRN^FUUX[SRT\V[UQY_HPMNPWRNSSU_SSNXSIOSI[O[WNRL_LVU\TUVPNYXPQbKCKSOV]\Q\ZPPSWV^_GWZYOV\XXTWPQQM\OUgKUUWX[NZZZSS_UXU\RVSKWO^SSWLVXQ\TRMPTUUFOZPXNUT[KLUUUOUV\NQMVTTGWLRRJYXUTTQJZZWTPNcNUORJ[VXY^JU]ZVWMLNPYRTOWTYQRSSJJSNURVRQXVTOYQRK\XPUPUNU[[YTKLKZPXQSQSS^WZXIY[\LPNWYaQMW][SSOTWLPXQWOMPKYXIRUSSWXXgSLYRUTaO[\U\JPUQVWP`WINXW\W\VTURUXQ^X\_OTNQ^cJYMWQNKPMWYRQYXVaTLObRSXT]RTJZOUJ]ZRVMPO`^OXTKOXdKRNSQT^KLU]TUOYMMW[OV]ROVXTMSRQJT\TNTPNQJYL\PVPVKJPPXV]QJVUXRW_URMRMdRLhYRWNXGOUNT\NbUS[JVPISRH_[ZPRRK`RPOLQO`WW[MYT[QTQXPQ\RPUTTLS_QKWURONQUMVWS][XVXSLLLTYWU_K^NPOSRBbKGQNZXXDPPSO]]KHV]UITRH]VURTIeXWLTSRUO]UPKMEOSWKZV_S\XMSJS\_RUW\M[kWR[PBMMRPO^O\LTNeUVYNMZSET\NVdWTRTRfLSPJTNMWSUW\LSUKQPTYU_T]PMOSSTS]MZMQSUN]IO^RXNTMU[N[KTWS_QFTRXVQJWIVZXT[UQPWPYmDYUUrWRVXZJOkZSWWYMQXQPVNAWN\LN\]HXNWO_aXVP]\P^YXMRRJRWJOHNRT[O_\SDOb_[PR\XVSVUPRXMPPTT]]MVY]E\TVcZ=M[]aZQTW\OZRMRXXYe_iWeZZUeMWKQRUSNUMNYL^OU\^TUHOVQSUW\NXM`YX]IZRNTRQLRMSZXQQOSeZN_WPLVVPXM^S^ViLLPNQ[[Q_STRWPHJPUSO]MRH`RU]TL\SYXPTUQ\WXT[K\CRdQ\NJ]QWLWfLRMMKVQW`XV^S_MRTQYUXIUUaMeW`VSIaX[KdPWXTbV\MUTRO[H^POYTQNR^SKWRQRVWP^SWONIV`IOY]oVI]_YVNKTTKC^LENUSXHVZTSXNPdSBNRONdTNXJRM`OVlfUUVVXOTIPURSYIQN`MJUWZQKJLJ\QXIHUZTQZbYTQNRX^PPCIUGRh[[W[UMaO\XUTR\IXX\]\PODbRSNLg_G[RPX\OJ[_ZcTSTQXSRYMVUUVYV[T[[GVdJQKdOaZMa\aWhYYVOQcGNF@RSL[_[QUSckHbL[WTW^ONPSNQVZ^V\V_ST_ZXPKXSNRdYO_TLZHTNTLVZ_^OIYRXONSa]BORTSZLIOOXUU\MUVPWONJ\YPRMUYWPUZQe]XT^CQZRPTUTWWUQVQhUL\JOEP[PPR_IYgG_YE]T[XXPOYSNM]O]CS_PSQWVQ__RRIGTRLQPN\cHVSPLVOIOLVOQLPVVQQTVUYQT[V[\QgTSNPHS^JVNYPP[]UWROSVXKIJOQSRSMUOMFI[P^Z[\OT\VVZUO[QbTTYLQ@P[QNTVWW[MQXWSUQHYLNXTdQNAY[PWNOTXT]aHRFLKRRIMSZKQQQSURTJYRNTLTQ[SOPJSNZMPRYQUJ^cNY\]S[IkdMF]WRdMSPX[OTRUZ^GYNVR^U]IZ]dRX@XT]R[R`TMKOQO[HMQTWSQIJYQMVR]CESRUQQSKU[VQZRHNQJZTYWIEb>MQZG[ONRaQc^gaIM^ON\LXQRM[N[W_SXR_OTVG_]bWVYHMQWRRJS^JTR^PBS`UZLFWYLMU]SdUQ\XPP\FT_]iHKG_OWUQSNQMP]WVLTKKQKU^SKT]SN\MIPNNWMcWXTS^eRdKWYVWLMKNS[[RXGYTR^WXa]QTKUQ]WQ^VOZXRMPQSF]SUVNRUMM\P^MJWU]PU_PdZVcMPZUGRRSQ`PSOYPIO^JKOGOGM\eLUTUITNPMUMRT\[ZVRUaULOMGSJT`VWWJNSZJZTRRVVUVZ`XQPNRTRNeQU]ObL]LaOSV_YLRLX[UZJR_OXQZUSVZXSSYRK^OSORP\][XSLETP]XaTXPRMQY^SKPNYXGXQWOV[OYRV[]R\VUGVMSPTWXZZQWLO\_SLOZ^XORRUPSSXNUS\O`O[KQQT`Z[NRJK[QVSVMYaRN^Sd[SUYTSYQRKS^WMUGLPO`VjRQTN]R`_UOaOK_]MTXUTNWJZSPQWZWXKQTQWVUROO\K^RUO_NXSZXP[[HGYYRU^OPYYVURSRVNUFQ\QUPMTRYUV[VZG`cLTe]XXU]V\eMGWZbPXKRS]NOQLL[OMPXbSK]KRQURKQQVJ_eMNSNV]_WV_fQPP\`TJWRWRXWUSRQVSWVONHSGXYOWgY_OaE_[JWHRUIIKVOUYRXVCRZUEZIRKSIYW\N[[KRbNTV[OPHW\S`DeX>PK_SVVMSbHSZHNQMEBTYLNYUTJSS]OFLSRXTLVI[TUM_NH]NPLRPTYULO\GSQEZPKPRaWOUK[aUYWPMVUJSUVLKUVJR]\OOM\SJUSZ_FHWYSQUPUMPMZUN\RQQXVOTTMNIUJTOSK_QVQVIX^RHNXV\`SK\^\OKRMUV\LVYTSQZOR[WRLTYP]OXWZEENIT>TSPU^fQSO]ONSSGQHYRQ^QSWMXW[QKMR_V^YSLRLTPPNRVRZPVYVXbXZZTXOfXV\S[KKTYM\ZRVNYQLPPPOYLMWWPOVVUTJXcXLYWZWXYPLTYVPS[PT\YKP]PKTTYS]VILVUSWPXKLWaTUIRVTRPb_ZV_RWVWPTV__aYWQHVQZNZWaVRTHQPVK^_S]QX^TUNFMV_[KkMTJQPOgZPXUQMRW^\ZXLTQQWSOYJLUVPPgPNUR]WQXS[XSSQUVP[QMRJWSYS]NRXYZUU^JSWWMT^]RXPLQRQOWO[TLISO\W_SK`^OOKOSVVO`^\OdQ[OGUIWOFPSPQWWM]QMXWKXTSNXWRLRZ\K^JXX[fZ]\DdUMNFWIa]UXVdSMWZUPOXTQVUQOTTVR[P^QUQ]^KR_UVYXQRQWL]MUN^YMUTSXONULUK[WTeFBYTTJUMLVLRQRURTR]ST[\]^SQ\MgYOJDRTPOGLOVOGUGSYYV\T_M_VgTXOUQR`^\UMWYWQU\Z\M`TTC^ILPSW_DXPTP`UOZKaSW`Q_OVPIUKQSKLNSSY[[KNAFULN\W]\]QRUM\CQRQV_SJRTTVQRCRL^OKEYCFWVRPUYPcZLVW\\YSRVMWO_OQJJ]NL]LSTX\UMRX[dMX^SZLVIQOJZT\TRMfbUXVRP`DIHPSURPEWYSWWUYXO_LdMZLWPXUlQ[VPWaQHIMRXQXUPWTUXPL]YOLURRSJPMR]OMWWXXG[URVXYRPUP^LRBNPWWTVTYWNRNLGN[`UMPR]SONMVX`VT[RM\YLTgSSPN^VD[^]QTPVM^PMQNJGYgLcOVSNPa[dQ\ZVHRN\QKWTTOTTfROKZTQa\SSZYPQMYROMY\ga^LRYZUWLV\KKXMZYWLH\[ROJUQMTTUN\ROSSQVYVV]N]S\VSUXWTKQZUGSQZUSQP\bOWMXRTXPYcO\JSa^VUTQWVPbVP\NSUVLI\ZRUQYNXQVJVOXgM_LTYK`i`SSZ\G\WZMOL]PGNVWRWUMPLUQKJVJcW\]KSQV^YSJ[R\ZMKWGZSV_NN\OTW]LNVQVOTQE[QPPQ^XMZVVVVVRV^VSKUSNV\V^QMQ[K\MGYJZS[YCUT_NS\YMZKN\VOOPLHOEUNQ^UOWPSifXQXXW[YLYSOVVQLXNNcSWXRQOShYhLKUST\V_SRMYKKTUPRYUZFPRMUYWTRQEP^^MdTO]OZKAMNUPb^]TRUTOROWZ^UNTS[YJUUWSLQSPRRNUXNYLLV\QVcWSTURQXZVQRH^^ZUQQPJPRQ]RTQS^aUYTYTUVTXRQY`iZTX_Y[NIQPQSVS]H\SNSUTZTPXKaWS]a]YQUZWRTTM^J[UQU`U`XUQXSVW]YY_XRPVYWUZSSOR\]dNGWXBOZSMOVKcUWVTYWKXVWNURNTU^VFO^QTOHON\SWXXIPbKRTV[P`L`_MNOSOUOX[TPSX^W[QLXXLPYSOPSPOZRUOMLUUVTUNQVRYK]XV[WQTOTSZJ]TTU[IROIVPSLURQUVWIXLTRJPYUHWVXfKUSOMMLPPZUINH`SYJUVLTZ^DYMT[YQM[ZL\LV\YTLRNS[V[MWYYWA`XZUUMKNPYf\LOSTgRXHLYWdOQPVTPQNWUVTKaX\NOQPPSRYdP_IQXRNIURUVacZMUbTZX[TRRWJTRO]XRJcWTNQHZLY[RSOZU]MNNTUTWXU]Y[W^WQQR[KGcXZPMO]SLNWTQTUYZNWQRYSSO^dM\[STZPQUWYR^NPNSThUPTSQROWRU^YNRSWQVRQRVXT^STYYLZWK[Y^PY]VIQDLYCQJHMOUWJNUMTYSZPRTQTXV\WQUUTPKOSM_[\[IL`TeVRRKMSVYESNPQPSQYYYPXWV_VWVWIZSNXXTU\aHUYVONWSPGGQRcPVOOAZQWX\KLUMbOSUQhKURPSSWZT]SUOcQTQS[]SPZXLRTPMYObSXSVUVT^IROVVTMWU\XRYU[WPSJSR\KfY[MUXORRTHLQONOX?ULONTb_MRWSD[MUMUOJWM\ZLVLSB\TZRRN\\NVZYZ`b^Vf[ZN]WYWHPWRY`P[QPX]UO_QWTPKQLOSWPWmWU\TQgPOUNXRXfRTUVQSRX\TNGbSU[XRS^IQRO^SUVWFM[[OWXXQRXOPLOK^YUNYS\MMcVWRW[XKPM_Z^QYTTQTmKJOUW_NJL[ReVWYZXQOJ_STRLQUXXTG[SXfXSULHTXTPSQYRVVWTTSQZTPXSS[SXYQHQXS\WYL]WNZKR[RZT^RT[QHHTVXP^UVh^PT]STSLTKXRUZ\VZXWSLLOUKPTUSTTUaMTVLY\_HVWXYZ_QXQ_e[PHVWUV\O[cbYYY[eaNUSfVUPSKMQ\IOQUKGIOE]QfSRL_KTUbPRTO[QRSMNbS`]S^OOTRUSVNU\V]WSU_UQeJOQSPQTSV[XL^ObBQSHRReVLY_b]`Y[RYURXP_aTURSSUWPOY_SU[NZMVLPNS[ZR\VVYPRSYPR\YSNU[__PXOQTORQTTMMPL]KLYLLYQU[LSQXQO]UIH[_P`VTQTUQMMVuZSXYOR]NURLOORXWQQSPXPORMPWQRMPSOcVWQNZXM]NL\cZSYXOU]SQJJM[OEUQ\QPPUOSVQWU[HLTRR[Y[NZPZRTUPVRVWfLXbQSXZUQMWYNXGQQSNVOMS^UNUOLVZTPY]YM[UQUSUSTNPUQJMZPYMTSPTSRTYUSUP]OXUUO]XSO^YTI[EZOJ\NRYZPWS`IMZVMTXOXQTPcQONeXXQWOSU]VXRPXcSK^SJT[[TW`USOULVNKFZSUGaUMJSO]TNYXTTWVPQTLMOLbLTQWfKPQNPZTJNS\XGNLQWOOTYMbTKXJUXZ_GXQWNPVNTRPSKPSSTZTX\\SPKaN[dbNRST[YRcLOVdZXU[JXTVVXYTNON]]F^NYUXb^T[RXYHS\YY\`YWOTRQV[Vm^\XLUcODNPMRPUDIVYdSXJNUSSQPQUWWTG`JTCRQZZ]]WWI[OSV]TJ[LTWJJMT\T[XMFUVT]_YI^kYVMZN[WXPIRYZUS]STSPTXYYHPTU\PZSXQR`WRT]UVZMSWPWTYMQ`RX^T]JT`JXW[KZYVPMTZKLTPMPTJ\WQNUQRMZKOY[Y[\KYQPSWHf_ZXRPVXVHUdQTQENNPSTZY[TK^\WTWRVRSDUMXZQLTPJOLLLUSWPLZSGYJWPQLXRL^W^URJHQNVNXSNPVYcONLTILZOMN^ZGK]OYKWMWX[N]JPRQYMDPSXYOQYQTUMNUPEKQNQPIHPeKNNWIZKVXSLVSUMXXMWaIU`SYSKTOM[_PRQUZ^_MNSX`OYVTVQVMWYIJVMS[TPVRNXSSFY^LFQWSPZEVXZV_RY\_GUTGV[YPZMZaMNWOOEYLTTTQV]]aY^RS[RZNPg`\KWTTUMU[QNQVT\NMXTRPU[UPSR\KORQTQ^UYRUMOWNUVWTOQNU]V\NNYMPO_RNOUUGMXSZJPU^RQbTZWP\YRRV\JQONWPRSNOYM[SQPSVNXWOMN\ZNWMTRSOPUGSTVJcL[NSTSJTQPZ[U]UOGUNO]PQUOL[VOOaZXUUTXUEW^YESWRKUNOIcVTREMXWUV[eaWQOXVL\MR\RM[LZL_YCXPRTQ`QVMYVXONN\^RPJT^__^QP]FTG[Q_SfRVMSMWIRWSUOSXTOR^`YSFNTVOKOMVPXdN_ZVJJ^QOVNQWjRZZEYD`LPdHMRNbXb_YYRTTJYPKFVNMXXTLTZRZTHW`ZVHWONZJReRXRMP[]WYQcNLTUXLYHV]^dL`]XPZQRVZOVY\RZSR`ZPXPSVPMQQURB]a_JRZLBXOMSVSIXVW_NUZNRJMLQPWNQINNKISQCSURUGZWPQ`PUSVT`VUWN`XO`NQNSeOXOaPUTPX[XH]LQYUXVeVQOSeQQYHZ[L\XcTQ`TVWSLSXUUcSUR\UJVNRKbSORTTPI]QVUVO]SSORZKS_`TQVPSYTM]UPVX]^I_ZPOSUYZTPX`ZVUTONPXUTSVZWQ\UZO[K]XRbOTRUXTOUX]TQUPW[T]UTM^JNZ]MVV[TPZQQUNITT[RSSTWN[IUUQQVSRSWQLFPZ[ZOZSOOZO^bVNTKGUWQTY]T\LQSLcZRTXESVQLNSQ]J_]M`IPOePMOZSQ^TZS]\RP\fQSHZNYPXWOYN\WdWZcQ[OJ_RYOXRaOSTKTWTR[YK\TS?SWMVSXTQSRJJWTL_ZVTMKOYOP^[NJPOG^JMQR\TXOOVXO]MSUZQ[TNTTURRZKXNQV_TTORLOOTOYJ[RDLT[OJPQOVGcXZRXOUNWRWUNPIO[USS_YT[PNWKUW^NT[[[LQRMZRX[RRPV[RTOP\KO\VZSMTQOSVPVNR_YVi^UWVMMTbVYgOTVLNUQcSOU]GF`VTXPWXTLZURORPPQ^VReZNUYUK^IVUSRSOPTPVT_YWPO`eTSTXNUR_WRsUMMZYao\YSSRZjRTRONOVQVT[TZLSSPVKMV`UMSXPXNUTQP]WTXUUYWOQV[UYKXWQR]dPVUPNWT[UYXXWN_DSVU^NNRNSVYSRYIPI`YJSM]ZM^HWPXQPC^T[KSMUTSRUQRQKXmKNPSWWYZcYRR\LDWQOUPRT^XJXU`VQMeOTTWOXJZSPUQZS[[YVUUOON^ZPSXUiLRcUT\]RPN[YSSSVXTTPISaNR`HNSNUQ_UXHaPIPKUUTVZWQIL_UI`VTVO^_]PTLNUSaWSK]`_SPYRPNXIFZIXR^_SWXVPTSRUMURMdMUWTXSVNLNZ[XQQUYUMVLTSKURPUYYMURJUSWMPUVMLTZ[UTQ`PP]QORdUV_^Y_NQRXLRUGOJWKUSUH\ZSTMJNR^QMPVVaHWR_VSLOM[^RSVXU_NYQMTXRFQNRSFPWWXWXUNbRVMPdP`NVOEbOSRR^\SQTeZ[WIUSLV^VWLNS`ZPOXRL\LVRMYVN^bFOOI]PUX]XaVTe\S]UVDXTSYQPONMMQT\ORPRVTK]]RP[WPSNSXWbNKTLJNOG`QWYX\RZXaMTTQRVBWU]aUSZVZXRe_NZUT]MK]WVNXZRNSWN\[SRNMUNRLUSZYSTU]XX`\]STYRRQ\OTooUISSWUQSXUUPPLXVWGnPRRSY^HONUISQRFFFTXEQCMOMPSKRPOX\LTS_QZOXSVTMKSRRSNQ`EPZZZ[QXNLHWJZJXUJaRULVOMVS[QWUNKUN]ZTZXPHVKJORcKSVV[VORYUQ]OZRZSWPUQ[RSIOMV`MTPZQcOQHfG_TYVSWb_NVTX[HdS^KPY[QGBOMCLS^Y_XQZXMe[Q^[ORAUMMcRWPNVLPd]^HKeZXTTN^YNVMXPRRPQ\Wa\UV\ORUVNOZRU\JW`LO[`QQSaMTSPJY^MbRZNMROHWSQKbSVCTWTR`eXGPURN]ROQQRE[Q[WPRPcJTTRPN_XYRLZRcRW[RUZOYOROMW]fP\KS[ReZSTaMOTV^jXZUMKWTO]UU]GJZJWLT]aWXTNSQN[eJWSZZRREYgXPUHWWS\WJnVKSTZ[SPPPVY^XPSaQdKOQJ\QXN[DIYKRISPYZQQTKXZQVNHSaZOMSQNMWURYMZOZQVbSPKYU^GMMLVXS^S\KVZQVNVPNOUdUaMOO_OOYT\R`NX\TPORMQOXMTYIXS^`QV_RU_[OFYRRcUfRXOOQTCOMRMXSUWShSPVUTPPYSSSSTOSMPXRHdHYKT\HQOKQWUdPNW\YmQTOUWXUVRbOSJRSRUVKU\RW^[^HQOHVLX\NU]OXU]WVFR[UQVNWSOUN_JM^QSTPX[QRT_Q]\Z\WQTT]WNZYXWU\VTXTOSNXVTOOYdQQWO[URTONWRRHTLHRURJQLOWEYSORQQaJPP\SjWIIODYh[KMKRKITRYSVPPVUYXQN[XeN\APbLOFLRUYPfPPH]]S[QWPWVZYWPUOGNHIPZcNcLb^QQ]YYUMLTZ^TOURPSVKTMVNYQ_RYUU_[TTYSUJTQYVdWS]_RfGSI[OZbRONJQZTLTZNUVYSWQSOTZTRYKTS\TS]\ROfQNNSN[TRL\YTVMSS[[SQ\X[Z_KFXYMOR_gN[[ORVNW[POLOQXTOPQNQQWXVSVORTCRPV[VNMUYLNXS^Z_FJQTX]NZT\bWOPTKXQXNVTUYWTUXJPUOVXWQMTUS]NSZMQTORcMPMAI]S_ZZTJJURHGERZVYQOVSWUTYVY`XJWQLLSSXWY]NVSYQJROL_PXQJMc\VOQRNVPSQRLSQS\PPTWIXRPQSNTP[SUVRVW\^TX\ZOPVNYOQVWJdS[HXTQc`UJ`WXMMJPWXP\ZNWXZX^QNQPKNY]SLSS\DKZRNT\cRZUS[KWJWQXQUUUPZUS^RQORNT^OV_NXZRRXZ\NZTQJLPQXJXPUKRaSQVSKXVWPO]R[ZPPOUZWV_K]SOUYUMPMXONTXU[MUYWYQT^WWR`LTVKWO]ONJSVRRFWST[U[WSkVUJX_QP]VeML^OTVYSVU\XXSQPXWbURVTeONXOI\_SNRR[HQOZL[`RaURLTOUJEVRGMVZQVV\HWFRTVWZ\FUNRWQNWKYQJYXUOQOW[UOUVImSrdGOZ[^]U\WWTVbVRXPTXGMXVK^[lDLWZJUWSX[I\UMcW[SQVP\fUdSXTNZPSbV[YNMQQYQIKT_YLTRdPTRQP\RSLOIXR`WMQQUVX]WH_LWVOZWZSRJSO\SOMMO]PVPNZST[ROWNZTZYJSLVRSUMOOUTJ]RKVUFFW[SQ]POQPK\WFXJYUYW_[LXVRVRRYGYOILPTTS`b^TVT\NVYRLPTMWXRMVMUSTVUVWRXWTTOSUMTLNMRKSWSTO[VWYNSY\RTX^_TUQNYUUYSXWTZZXdXIVRXSGOVOPIP\TXITTNRO]MO`OEPZVRS^TTUW\TOUPXQZQRYXQbTQNUTUTTRWPSXgNQJLVfOYWVUMUQ`OOTV_OPWPUPRY_RLWKOQROT]VNTASWNQOTTSY[SNL[HSSQWVXQNRZRIjTOWZNRRW]IL`RXRKe\SLVOVKRRbNUITPTPPRO[TNSNLRJNIUOTWXPUPZIVXZLPUY_SPPQNOWRLXOYPP`WT\_ULSVS[Qc[XQQhRLRSVT[TWPMTMRVOY[DWVX[][OTTKSSZN^QUZT[KISSSYWf\QRTSNT]P\NRYQLRZ^ORMVOWYbYeRPWUQO`PKNNYDLPLVOHRWVZVPVXOUUOaRRQMQSS[OYNOcVMTM\WcVOZSf]Ug[NYPQJTESXUOSLbQcMXV_WWG_QZN[NNS[OaVJYP]gW[KYOScbWPTSSYTWZTPRRVUTYK]HNL_YWXRJePVRUS[T^ZUQ]URRXPROE_YNWXUMRPUJ_XYZP_NTVX[YSQKfV]SW][Z^XVMS\TTIXbOMPRQUVQNTQQUDLUSOY\G`_WSZUNVLPRQWQVWUQQWRGPERZ_TRVfOYORbP\M\RP[HQRQhPZW[`VYMTWVXJS\WPPUWLXQI`PUON\\LSWSV^PTKSQUIUVTQ]QZT_[O_WUR\QOSPNNTKLNUOKT]N\UYVR^LYSYTWHRX\XQMV`ZLSV_OYNUJVLUTWPQhYRHZ[HYUISYbIWKKXY[QOPTOLS[OWUTMNUVY_YPJROTQWORK^SLTRNR[[MQTOJUTOWERZNWWUTSVTR[\SOKbNV\`HHUPNQNg]SF\MJKOJWTSXRP]R_MPaGZYQ^ZUJYGSVVPOXYTPRMSVUP]TOYTTKXNNQLJ`MUZ_[TPSQ`SYVNASdYYK]O_FK[FOMIZPYSN]Q]SHQTOUIN]WNTZV@NQTRTPTYRROSQUYcMLHYTSLQY^ML@SVPR[SVSOQQKPWKhU^SU^YYORQOGTPWXSRPOQYXY[UPXVRNWYOQSWMPRON^XYVTRWNUKMMhGQQ^U_KTYPRgUY\TVFUUV[NSS\TIZKGNQNTXbTOXYMVNIUHTPUSLWHPSUTQRTVaTdTZSQITKMKRVOV\`QSXeW`PLMPZVHMX^[STXVU^S^S`[QLOcHT`GQGRLMJVO^WiTXQ\NHWT\TSR`QSZPTQc\VRUUO[YNPSVWKKRPVTZaQaPPTQRbaXUOXNRSS^VZ\WRRXZVQX^NWQRXSTVNPNOL]ZKSTRPQTRHPXRUUR[\MJZ[USbVUP]QYYDgGULT]QQPWRI]Z^QQRBWWSRUKQVZRZUTOP_Y^ZRDPPYSOMWXXYQRZPSVMLUYWUOOQJKYTPNKMLMTJJZ]YIQPRSQQJTCMaWUUUQST\LWRUHRPORTRPUS^XSTlLWTZW\T^UURUKXYXKTNINbZOVaMgTYJ]GZQ_WUHJOSSTRQVN`VXOLQhJL^`MFQXLaPNT[W]YQPQLNWQNO`^iRWXWPITNOcM[VNQW\JVURa\gQVVPQMKQRQVaNMHLTWQVWU\T`WdWMS`MJVPPNXQSRROPMLMIYQPKNV[RUQVXPXY[W>K`FTX`UWPPXU^aQ]_KT_UQTRRR\N^IKPXPPWXWOXSXXUUTTM]SUTTTG\PMNXVO[Q[YW`I\T\U]OHIO[VOSVRRMZW_[_cOXQ\UTWRUUQ\]ISc\JMGHO[KHQUYTV[NfWWXZHf[NTQS[NVTYQdTPYWP[\ORNNRYSORRSQ_TO\VRZTKPKWZTNQSTYUSNVFINQVYYWRKKNZPU^HPWSUQWOSKHXXMM`IQVRWRMRXSKg^PUJV`LYZMRYOYKWYZYZ\TPS\SPQJNMS[SJVTYUTQaYTcRSTTVWWOdX\ZbBZQVMKTPbTZLWTTQTPOVTGMSLLTLPVWSQNW\jaVUP\Q_SR^XHZRWURVOJTZcPIKKP^VT]SJWQUXQGQRT\UHQLRQU[VSIOWQVZL^TP]OTLYO_SPOZPPXQUZPPRXIUWJMHVZGOZQXL[VGYRWO^MiOPJSMTVQY^UcURRSIR_XKXSXNdObR\RLVRU[SWXUSROcZPKSWORWR\NRPSU`U]UZ_`T`MLKPYUZ\fN^^L[OLXIPPHWQ\MKORPXaZVPPYcUWOTSQVXVNQe\XQ[WW[[NLOCUSIRPLOZ\SRVXNSMRFJHVMWSTZmNHZZPPRV^P\WKSQFKHfZUJPTXea;TRPWOVVGPVVSO[RZRN]GR]WNWT\XSMScRXW[]^ZLM[SOWTcWN_S@WYVR_ZXPTZLMNTXROYSUT[SNVQV\VGZPNR`OUUb\KPWVW\YLJEWZKRQO^ZW[[W]TRUXOOL]KT]Z[ZMUTaQQXR^dOVHTTQT_L^PTHnWQEEQIWRPSMQ[QQGWd\SWIa`MN`RYVP^SMPSUQUZTUbdPXOgQ\eZcIOKKNOVcT[eXUiUEYUZUR]XIOSZR\US[VVSeTKS^KTMFYZQmX^NU]cPORXR^VXN]SU\KUORYWYVKMYYZUY^SLM`\OFVZY]SSLZeWURMSRSVJVMNcPQNXKM^ZZERdMV[eOURXVRWTX]R_R[THTGT\^TNYRVNRWJUPTXNRWUT\OOMTOVOSNXHMPNZ[MQT`R^YXSZWPQQVcUJPS[PNIOLQMOUZVWPTLYXQUJTXVS\IOSPQ]UX[SOQTQYdOSTVRQTRRSVKNVORWQSPWKWSOXVP[OUXOWKNSPWcXRVY`SVNTWTQNKVOZ[QTR\ZZRMSSVQMYM]WRLVIO[\ZRTPTVQVVVUMHXYHPOEWVU[SRQUUQZOTWPZOXRY]QWVSZULdSRO[WXWRSZHPUNMTXQN[\IXQT\[LTVNSW[RUOZWbQSKUNVSVQUWPMSUNUPJRNSKNXX\SSVSWWUKHNW^PRW_QPRLTUYTUPSWSYT^YWUSOTbfMYURVTScMEGUYQaXZZiQRKWRUU[XWP`RSZWMMXUKSWVUWS^NPLZXZQUTK[MZINTSPTCIKV_aTUWYIJR_MZSSWRRTNVPEJOONWTTY[TLOVVR]SNXTPMTUWPRdVMUWQUOJUMVUZPWSJLSVUY\OTRTRMWUROZQMRKGRSVQM^PUPSNWKWNNOX\XUUKXR\HSPXUQVGSVVXV[U]TR\OaSVUVTTPQMUIVVVY]OVTTUS]SUWVRSUUMSTOYWKWOZOWbMWXRNvXMKVIUPR[XVSI[\QNIYWSSWfVVZMVYKOMPYTSO[QMRNTNNLKPNLSP[RPVUMKQT\\QQRVUQPRZZT\VRMQVRVTTQYZXLURXW[TZVVRWUNQIZTQPMRPUURTSVNNQUgUNNGO\SPNUQKYPZPTWZX]GUUZQ\RUR]TQPYQRX^PFQZPWQKLV[RPTQNR[USP]\[WMNQTPVPcXZ\RMXY]WPKS`IWPUZfZcRSMT\MPVRYW`VPYVVNSYWUZLYQKU^M^^RPJbTPOZPSSSTO^QWHMWROQY[aXVZVLQURMVKRNJ[PNSPQZVBZVVSUW]RTZQSTSUOVMS_US[V\VQYSU[PZ[WQMP[JT_OdOF^RW^YX\XZ[MSSSLUYSSYQZT`RZQ\^VKOMT?QIZVWVTWXYOTMMXZUdKR\SSZZSV_TOTJMR\]WPY[KVVJWR[SRPLN[O`YMQWMNWSSYTYRPVeWVSVWS_VJYLYbUIYLZS_Vb]SI^OV[]UU]VOkWQU^PUNKZTL`MSSQV[TVUTMITWVVMVdPOOP\X\[UV[TQP\EMU`RVN^_[NTNSPXTZ[NRXPGVPY`[\XDSUWSX]WTQQZSUPLHNYSOa_QWTJ]\^SPV[R_RMSRS\RM^]NRLY[QS[TPOL]VU`OOQLNN[WLXRSVVPNLVVdVSQRIJVYVYKRTVNVNR\U[PUbL^[VUL_TQYYRcPJVX]YVPOTRTb]T^YWJYWQ]d^XZ`ITXIRJbaNLZ\VVRK[[Z[PXRaMUTVVLKVrXKWTVH]^GbMSKRPQVR\MPUR[RVeUQ^OOVOS[WMOQRQYSHYIQXNSIUZKMPTPSNSP_ZUTRScSOVUYUQUWHLQMXDYHLMVRbUM\OMRLLZSFTOXQWNVPSNTMTYSSPLQVMVTRaQJFXYdPSFTd[SKYSRJX\D[XQQSTSRVKUJTYS[LRPZSV_]ObbXLWMS`TLZWQP\SMYVVYLNP]UNSPRVZWLeSTTTZ[PIRKMNTSO[TSOWZWNLNNOON]QO[NJFM^PPYLUVI[QP\U]JNNRYQJTVVQWIRT^SKTBO[`Q[M[UUUTKKWJLPIM^NKVSRUS\\QKMSYV[XXSRMTUNTWZWMVPQWW[S_cQNWOgRJOQ^ZSVMJYOMKLXR`WNNWUXQMUTIPWZSPPVBTVZXP[XgK\WZZSRLLKNbWHOLRS]YXH]XUPUM^OUOPZVFLZWSLSMTMMo`TYeWPMhTUSOQ\NZTTVHGPVTDPVNN\`JKTTQTQXGGaZRTPLTSPTSRMURLKSMYVjRTPX`IVZSWS^iNVR[RSVXTYaU[YLVZTKUbPL_QYSNV]N^ZMJWORNRXHQ]_NRT^\WWO`MJMTQLVONWLLcI_VWOUQSJUQUXRXHUlRVOYfOPQPTRXTPKNWhOY]TCPeNU\WUJ_[P[QNAVK[ZVV[]R_YJPOaXTSLWMPRMUWRDQc^TVXUV_MOFKR_YYJPTc[XVROKYRUMUPNUKhT`^S[RV[OVUWgPJ_JFPX`RST^_HT`@WSUTQW]WUOTSTGMRZQQPcLXMOLSNVXPNUMLTLQ\XOOOQ[RW[MRPSRPYYOWJ[GWVL)[N^MJTURP^fdQVNR[UPRU[WTYMG_K[TRRYRUPTPTNHVePVXWHGRWRN\R\bQSKX\VUVThY[YRTZVXXIQ[VV`QSSNXOOKZ_PTNUOUNOUPZZLGXSO[KS`aQbJ\WI]LPdWOYPU^VRUO\VXBRPYGC_KF[SoYZWZL\X\KUTVQQTTMXQUbSaT][P_QQ\P_YT\SRRPXQK]FZ[RQYLYQLRLORLNU^MNRSPSSOUPPW\XS_ZWNWNLOVSUSP]RGVQRNbVPUO^YTPHM_U]WMTHaV^WMVTUGFPYgUKYfWZKTS[RVTLSXKYVSVSUUVW[\XTNMZSIIJRNbWEVUTU^XXLXVPVHQOXS]YSV]ZLNUELOd^]YSZQUSLKSMZOOQPLLQTTHReZ`PPhWWWf\cOST]SP\X[WLVGSHQZTSPQLGX`RZNSjbTbR\VUYSLZ`bJWSJSQKQWVQKXUS]NOEZCI[LPLVbW^TRRT[LNTXWRKYXUR_HQT[SRP\MQXV__OVOURLLGJ\Sh\OZTROPQG\]VTTW[UWWXLOWOfPLE_^TS_SQSiQTRXBIHJYXSXSJX[bRLdMMLYVHVZNRVRTUJQVVMKbOZCLTSVUNQ`SOKV__RVPMa[NOWWS\QPUM_WQU[RXTTOQHTRWUTTYWQNXXJPTXGYPVGSRSTWbYR[QUVRRP[OUUJXSRNXMVOT`OOXSPUN`QLRVQWNITSSaRYRQLHOV\MWWSZbPQOP`SRXVSXYYZXUPNKWQUZZTNOTTUTQP\NQK\NVXVLLK_WYVSINLTTP^XRNYITMUZVVYTTTWPWSMRSWPKXQTON\PeUMRQWQRbV^SUYGSR^TOPKXRRIXXJWY_FfOVJP_UM[TXNOMTQTJUOONLKOXORTbYNXSPUVbYNSRTQQSTSURN^\_TUSOQMPJVUTXSSQXSP^XSTOKKSQPOZYKMCLWSOYKU_ZSKSWaTERSOVKOCSYPSNM[KPMXZ`mQYfUNkZZKJaZLSVOcTRSPZi]Z]V^WMKTVKWTTPNOOVNOUXUcPQSWVVVX_GZRVXT]V^UR]WTcTRSZQSWV_MVZNTZYQQ_LISPTMRWQTaTUOYXU``SUTVS[UNN[S]\QUSPRUM`YNIUXRWV]SOUTQINWVTVGTX\WP]MXVQPQZZOQVaUSO^^VWlUSVJMfNSP]Z^[ZSKNPORLFTVQXX\YRbWWXHiRSXNHLQQa_RJ\ZQWNURWRbUYQ[LQS`^D_SR\WZPUPQ]RTCPQOT^WWQLUUW_NhLJ`UPJYSeGTRKVSJM_UVTSJTRTPOYUWYMJUZ^QNXKZ]ZSSLMTPRVRTLZWSTPQMORM\IOSYSMZMX`RPPXTRKTMXJf^OPHQZS^UVNPTM\KOUMYZTNQZULREVT\SZTZK\SZUKO]HPXWUQJWRUZLSfPTXPOUPPVKOYYYYO\PLYWHPWPUUU\W_SSOONZOTJTQUWKVRXPiQPYQYZURPU\WYQFdR[UPYJNbRVYWNTWXPONTUUSXRTOOP\UcSWPQ^`IRSYW_^ZNO]PhY`KLVbONM^UVYP]MMLVXSPTT_XTNXU\Pg_INPPV_XRJWQ`aVVXVXXNXWJL`TJLWWWSOXZOWVUg_^QVVVQN\URUUNVOKcNJWPT\ULQUSVPSZSLPMNJVWTPQ[LRKP]PWUUSLQ[MRb[RKMVURVMVYSQRTQXYSST^[VNRN`IWTRSZXXV]OMUJWTJ\LbNWP\JRXJPRRVJTTSI]TKRV[XN^UOOeKPRPP\MQVVEZ`RZQLQ?SKURcXQP`RXKZXYV_[KUNO\MGPXTWUbbOPZ\bXTVXWWOG]WWJRMJUST[]SYRXP]WfV]aUTYPDU[KVZDMZW\SQLcQMMVGKMVPQOFLWUJRUPSPPS[RhWVRRU[TWWVZUSWSMWRNSSTS[RSM\WNPSYOiXTcaXOQPO[SPLM`SO\NZRY^bTVNVSRTUgNQWQ[OSK]_[NXLVMS^WNPUZ_^PfS\RXM[XRUSO\YGQ\QPIRMkTPXJQXXMU`TRYRaTY\TOPdMIDXUSTWSMW^V]Gh\SUTOT]UUQTaSQSUCLNUMSLUU\RSMTMWe]QSXXXWPYQUYOOU\OQP_V\W_GILXT]YKVLMRT`RXV[LUW[^KQbWP]_KGZQPVVHX\VNJYPSWSCWYTLOXQYWUQQWTOZaHYTTRNMSYPJ[QHOcXR]MWVWMiNQWRZRZEGKKOTSSIPWJRRSTVQVQUOSHL\KXZGNON[GRT\F[WO\\XYTWSYNQQN\TXN]LNQHUQUeUPUWXRMQOYZJTJSJSONNZKYRXXMcPN]SPJQTORL]OHTZEUWPSUVkUTOZNRTRVIMT[QYLOEHTTRLNNPEXPkbQZhKJQMLQQLP_VMSNIH[URKWVSUbNRMPSOURTOI_JOYZWSLYQSTBTWMPZUIPPXKURZLNGQOTMOV\PP^\M[`TRQRPTPYSRPS]LTTTWJMPW`W^T\LY`NWTWVDH^EMSWUXObS[R^VRP]OQIP\PN_[NVZJKPSFJPRYXYVV]HQQRVHUTL\TORMFYMULWUSZTdSVWNQMU^]YQNFRfWT]O_X`ZZObIHR^OS^UDRR\NTcQKUQU[VMKQYWRXYPMGZTPQUSOPXW_aL_XWWSSUJP[OKJSX\KSP\HSRNJMPN^O[SJW`RPSVHSUOSX\IUaRWSTTOYVZ[VYU]\G_X`ORGPT^XVQM[ZVNHOeTQOPNJUVjLTON[WMMZYXPVUKMSYV^UXbQ`[QP^Y^W]U]][RSNTKUPLL\FOTTTY^JGUSZ[TPZTYXOURaMTWTSNRPJTP`]]HN[TM^QNVIOWPVaUZL`PVU\L_RTNLP\_QOL[Nc[RW_N]QSUPRTVUYU[TTTQSRMWRbMNQRFLBOWT]TK^RYNYPJQQNX]T]QTLV_KGVTUVUQSTV]QR^UWRO\QMN\RQL_Z^PKYUROPTS[KLRSP[WOPaUCYWXfQMPSTZXX]RQOQLTJOWZO]SRSZPVPNSZRVOUWS_US^WOOT\WN^RWRIPHZWSZWORMRNSZD^WW]`L_NF]ZKcXRYNYKbT_R`S[hKMMNVVMXVURYTOMUU^RPMOTWhQMOLNOX]X\JXJU[PZUTTX_QNTaPMRLRdM]UXO^OKSTVTLR_SV`qNSTOOXWYRJUYTUFVNVWQVM[VM_RXUV_OJQUUQXSPYUbV[QKNNTSXUdQOX\VRQXYWPYXYaLKOaTVTSZMG]QQNUPRQM\P\QT_\RQOUQPLXU[_OOOS[AHXTKRSMKTPSLPXZUYTWKUT`_^NfVVOWUIZUOSNYRQHWYXOZ_XEVWTLNUQjWSNTQR\TQWPQTFSQIJ^SPSOQa]UAWQOOTQMTSQPRR]LVQZRHKROMNZNROQTTP]FZPKNQOZX^RSLTLZTQUIQWObHSSgTZHGOSN\RLSRK^WSMUMLWOQNVUVLT_JPYISNTNTLVJUPIWPJY]O`OPXOVU\YMMTSNKRWUBMVYe\SWNTVPQO[RJWENQQMNPUYamUHVQUPMXUdXR]KTcYMWQXSVPPT\VQRVVVcOSROVIRFcTWQTXO\PcXVLNSRQSQMXLTd\PLOUYZQ\UQN]TQLJQP^WLQYUW[YIKYXMW`NVTQSTZQSGYTaWRU_RP]VRWTSSNSPNbWTXMTJXSMZQVRQV`USSROUUUWWTWWPXSL[WNWYZYEUYTPLPRZQWWTVVSMTPTTXVNW]OWNXP]NKQYOKSTQZKROU[LTMPUPSLNIQ_PXQXUMVSNUSYMTSQUQRVZ\[[RRZLV\V]JYJUUXVPMVNRNSJPYPRRTWcPcPSTK\YZSKN[WIUTOQUVWVL]PSTTVY[VIVTOKRUQZXa]NNOS\[XfdLKcYWZSXTa`_^GOR]QWLRIISZUVUMTVVVZJXOUQXNTRVYNXVXRXOUKO^MTZGSbaTNNZXIPSPNQWQUeLcMRKNOPOZRVNJWITU[NL[UZJKWbGXPVRYSXPLULMTUMTQTS[ONIJO[YYLJ`]OONSPPWLQOXPOQJO[VUQXQaJZTY`UUWMO`TOPO`VZMOSPYXQTSYO_ZiGPMVQ\PUTZMRQYNJOOOIQLZLOPafWTSSXP[]ZV[KVMc[P]KPUR]SPRORTSKISOUYSZMZXPR]RRVVMSQQWTUSTNOYUXPV^NRN\^T[NSJPU]]YRSV[[\OSSPQYYQZSOVLSTVPOUPTV`PJNQGTZOTN[ORQWLPXVTNU[LPOIPMZMTNZXRSQTUQONUM\RXOXHNWYWYVTOLKXTRSPKNZTQUKWHYVQ\[OXUUSRLYPUUTRMXJoXTXMUJZLTJVMNW^XUXZW`XSJJQU\Qd\]Uk[K[MKWQZQTYRT\UOZXRRXOMXXUIONYOQYL\OVXSJXOVWNS^KJ[QNUPUVOTZRVOOTR\VVSS[SUTZ[WUX\TKMSGTNXMaXRSZUKTGSJ_SZVXZNKUUYOUQPMQg]SYMYVMSRWJRR`R[QYVVSNRLUTQK[F[JKOUTRQUTVbZJTFI`VWTYPJWWURXKRZN^ZMR\EVUJTNX]OIOOOcbSRTUK[DObLWO]SR[TOVZVSQQWYLOKTVPNQRbeQKXSRaHUOJL^QSX[^WPFfYP][RNUWNJ^K<\YRQZ``TUOEVIaTVONKK]=XbPLOQNOEYcWVYbSSRWIPUKM[EYKESKCR\RN\PPE]L\c^bTCSRaaOTZF]]ZG]_HGKMK_]`PRU\TPMdcYUVOSX`aTiJT]QXXYTZWUTU_T_U`NROb\NKiNKMJSRQLS_UYKEVA[\V`TGSXVVFPWGOV[S^\TR`R8S\FNPKLQOZU^OYTKPPTHO\XSgOUHMUVWYMW_OTVPTYSTRGLMMPTYQV`TRRQQYKQXQ[[WYNnUWOPOYLYVaXLRORVX\NW]TZWJcU[RZ]>YOTORQW][NTY]QdMWPVMIDRQ_b]WSWVQRTRUJ[]OVULTUVJMM\JPWWUG]GQSLRZRYNRLMKLG]TRR^MULSLSMO_]bYR_HLQXYUCNQNIaN\NbWPOUJTRMKA^RXNOWYWS[^KXWS^N]FfLZSYVTOEXM\VPMWVIPSUPOIWTOIGPXQTTfSbR[UVKOZWLWENTVZSUeWWVX_[RKQ\MPJObPScaQXSNWVTMRTPROQQYMUGTQbT[MSKjPZNQPEVXOGTWRHYRO[YNPQONGOOSOVUTRG[OXRZUTaPPUQ_OQNTPS\lUZOVVK[VVlKTOWNYMQT[UHXT[VYTS[SQP\QVRZUHNLN[VUU\SIPWJJSTNP\UMTPMK_YUXXS_SYJ\aU?PR\JKKWZPKUK`KDYMG`SPCNLVTJUTPYNd\SRMN]SSLLWDMWJPSUCVGMPYXWcIMOTLQVOUUN^HSSRPRNYNTYRUcO]I\TY\SK\_ENUZVMMGKQZDPSZRPJQ\HcP\WYRMPSO[VLXXQ\`QZPRS]RVGY`QOXHWWUPZKPTWSY_\Q[WYQKKTG[OUJUNUNINMUVL[jNXYcPZTPI`PQVQJ_TKTQQT[I[GIOFP`PPgXXPRQTbPN^VXQaOKRUPQNPNVHOSMQVVTROUHJR@TV`IORJRRUK_LXQGSSP`PXKLSbVSUD^[Z[SK\jQZRSMV_NNZNXOQTa\HNQGPOd`SN^QU_XMSKVIXURKdTFC[OOVNQTYVXO^GNRRS]P]URPOSTRQUWXeVOW[VISRPYVRPQVMUQODITNMTYWTRNUTci^^QWZTULQQSZPTRWZ]OSVRAMXPOUMMOOSVMOOORQMZdVOISJTRgQRMPOUUXQNPYHP[L[WPTVO]QPURPXSTWPTLTLRQoS^ULQJXSTUSXPYZSMOQZVNPTMYKYUUTKUQ`O`T_KNOJTRV\USVe\WNV\WRLS]PSTYOOOaO^YTT[c^UP^bQXMRGTNNb[UI]IYX^VVTUUT]EQfbSUQUMNQLVTUQUSLWYOIVV[]JWIVY^XRR[[JTWTbTV_WSXQHSVM^WUR\KPKRESRYQORTRTLT^RSPVOS[PP`PVPOXVMWLNYP_ZIRKYVRKMQdTRiUZN\TKSWWaKIVON_^LON\R\NUXPWZO]VW[MUY]Y[]SRLWRWNWcVImSORZXMWWMTOVM^SLYZQY\XVOXM^IUTRO\^J\TP_]QVPUMUJT]MPOYIPGN`_MKVPPQOOM_TU`RXaSW[]STLO\NTOUNTWIVO[VSMHMY\Rc]S^RiWXV]DMMVS]RVZYIYGZVSIUQ[VNRK_TYYTfRN^SURIZdTSNLQOYWhQOUdYVSR_QSZY\TVQSJPIGXSUULaMRRDbLQM\bVVXULJXXIRSRIM\PDVGUPa^`NVXJWUKV]U[W_KXPPGN[TR]W_Q__PTPMVPKL[^ZVJROYITQ^XU\Y`MUM[^VICXdNR\WSWVMNVUON[OSXSTORMVXVWYQR`YQdW]WKYOPHN[[RVTMZRSbRYXT[RY]MUVKWZVQUZNVRTWIMWUYRYWXOP_NLY[W\Ub[]X]SSILfaTWKWZZNBPcTR^WRVc[JOKSOVOYH\WRYPSXJ^RMY\PXJ]^]OOQRYRNRSUWOHRMPQW]WJTW`JVUPPNTWYVU[YWNVZRYMILaM[LCMKTIYVLQOYKQQQVcYXMORT[[OHK_[LaXR\KZTRO]PWOPOWVMcINYTRTXZWWULYRSWJVMW]UU_OZRKHUXRRPFTTbPVMaeZV_MZJVTYRMSOWPSURPWKLPQYdSRWGWKLMT]OJYZVQUSHNUWUMVUNPYTJSTYMTHUT[LHQUQ`JLVQRO\\RVYNYRQWVNSUQWZYVSSJLLRY[UM\[^QTJ[WTU_RH^LTTMRUNPVZ[QJPSMOVXOYTQQ]^\SVMQUQXLJUbUQQNW[W^PNVUPWRUQWEMWYN^TRSHLTPOLOSSYPOdXTQOQPTQVaPSPSSRQXTV`LPRNZRXPTNNXYJSSNW_WWUVVSOSNUQPPPUTOL]ITTT]QJ]TQ[TLXTVTLSUVJMHQQQTMZSV\MEN]GKLORHRLUa[YU_RKWXOSITTLOOJSLUTXURJVXGNeJLLMRRhGTYSUNZTPSUZVVU`U[_TX_VSJTQYPUUTNQYTVOGSL]XSLLJGTNaQLPQTSUNLUPSbYFbaST`PXUN]K[TXVK_MPX_KZ[ZOYWV]OTZNSKLYRZWKZMW[POmS^`[OSURV[TTc\JISOXNMTSUXeQSSWJRHUMSTQ[XFWZbIYP_SMWWXNX`[QS_YFTTPQPdXN_`XNSQPP[PXVSYTUXOJ\Y`_ZS`OVXXWS]SUMG]VOUPVMRUQOOXVQ]WPDVC]W]^WNSXSZO[QIW\]eQNVSDZWLPNVNIRQXOPOSR[WRUTDHLRITVXKOUN][^RSJTZYX\ML^`\T^\OUZ\OQ_\]WP`XSHENYXTWJSNY_KMPSSRKUUTKPTLRJbQMOXNSSTQWLIQQMMZI`VJ]NKVSVRTaZPM^aIXXUPJGNLKXOUYQKYVONV]PZQRX]UDHNUVOPPMVOMO`[LQNUPRTP\NT\QW[YKLJZS^ZRNQ\KWNI\LPXQcbZILRR^QUW\O\QQRSWPUQVRVTKRT][M[WNTPRcZTcMXSZX]MTUTRM\UVTZOPUE\\RSQWUPSTWTOLQWNRVO^PRWRVMUTIPYNTV\QVQYV[SWLRcX[YXSYSRTKWKYdYRUZZTYYYRNPZYPTQTZIPOQZTXRYTVRVV]TX[OLTTWKNHR^VUQZPROVVS[ZPQVJXOS]QRLSVQX]QSUMUWTRVPMR[QQYMMSOTe`[RMWOYUK\RDeP^QOR\XKNULVZVHdPYTVVXHNHXSO^NSXdVQQM^`OZLORUOZQ^QYPNPQTOdL]_LUTP]RY^SMPYVP``MFMP^OTG\^cVMXj\^IU]]SNTPUTRLQXQK\QaUQQLWGYNUURYcMO[WQRJTXYUT[`IV\OJRMK^JUZ[XOVXOVYYYOTVYXO\VPKTVQWS^MLTSRORYO]MRRL[NYU\IZORYPRZUNR_ZQWDVMPJVOJON_\JESJT\^PMVLKMKXTQPJRR`T[JPQaKUR\UPYPTY\X_NYfVPPNUVXRTdVSVU[[XLJQPUXXQQNWPMYMT]MS9YT]YI\SPSVVU`[OS[YTLOZMTPYQGNTVY^LKOTN[OROWEPPDK]]]QIMQOQHQSOeQ]V^SYKTOWSXW_UHYPMSdKREWRSRPSLM^MRSVTL^KQIYQXZP_SWRRPDWXTSUZ`ZZISRUGPQSJVPPXUOXS[YKYHOZWKXLOZRU][RQVITb[TMVXSL]]VG[GWaQHSkVJL\L[\UOWNKXOZ`Mg[WROOLC[M[QoSZYODRX[TXMbOZLLOT^TMMP^TSQL`SNZT[SacXOOURMRXQTWMMMZR]hXMRHNSZ\TEMUiZR_SVOZYWW_YKVUGcSQWY\MSUSfPLQTXUTPVPRW_VJM_YZ]_UQQTWULQPWK]NOYQOfZTOTZZSTUYFLLRSX]USRSLP_\MWIPTPZTQWNUO[Y\YU[ZOVXTQW_TSeUVJKPUO^MSOPObSVWWbRY]\MRV\TUUQ[YWWYRM[U]ZOYPXV[VUPOQWRXPV[RXUV[JLOK]PSSHUULVOVSUU\SWLS\TjQU^ORRORQU\S[cN[SHQS\KUZ^OTXJTNZQUYRPNTWMZ[JITZRWWQ[VV[[OSbRRTWTPRWPMOZRTPZ^UIZUUWPT^`OY[XOcWXMQT\S\PXM_P[PP^RUYRLTYUQN]QTPTPT[VQNPUURNIW[OVSa]WOS^P]STTVSQ]NS_YUWQNTSLSOWPUPRQYV]VTWRMX`YQT[ZVQTTRQW[WKZXYWYOKO]TSW[KMVYVRNNRVTXU\VOY[SVHWTMPNUIP\L[UVOXTQTXOOUOXTNTTVUS_SQS[WQVURVRZZYQTPYVQKa[`ZTSQPTRZZXVT]UZMZSU[eZMH[IPEYUTTV\]TaTWSSRcUPWYXXaYMRZTUPS\\[[N[SVaMTJWQUQUXRRHRLOMIa\QT^XbXV]QPRUZM^W\ZSYRSOPUZMSPRLVSWNVZPXYIWT\WO[[\JVPeWLOZXUSTNPTY]TSXZQSMZKNZ[]XUVZY[WZOSPMMURXYXUQ\WSISUWN[UKMUOVZQVMNNUg[W_NPO]VMOV[MLVPW_UOW\SXg[bXfhQYOFWSUXJTIS]\JSPMRPNVVJ\dUbT]VYQ^TU]VSSVSVVTaR[MS\XP[[JTUQQNPTOQTPYTcITVVTYXWUOSWYOULSQTRPUXSXSRUQ[SNUUVWUVTSS]UT]_bRXWWMUSZU[XYTPUMRTMLTUIRMVQcOYSQXYY^ULPVOUSNPRP`_VaSQVRVd`MR[[V[PWW\_fXR[XK^\PRMW\[`b`IJ]XNKXNLV]KaQLTSYYHZVX[[NUTNXV_][MOJIcTWOP\GTXF[\JHYS_UVBKXPE\XU`QSQVLZURT[USPOQV_ZURO\UPYRPYFL]SNMUQKUIXWVOV[YX^JVWKR[MP^LOXSOTcNbFRJRYQUTQT]X^XNOVVU^NSQOTSSSQ\UbZUNVOTTYU`RONTVHSU^WX\XbTTPJROQ[UG^PXSRXQZP\NXSJ^UEY\R[[XSPWTJRaPNWWTZPJRTPYW\RQ\QHVUPRUX]MJ[QLZRQTa\HVK\\XYTTYOQa[M\WZWZWFR\XYRUW]P[WVOUXUOeX[Y\Q[_G`VTXOOSWSQDGVZ[SSH[ZZTOQPbW^UYHUXTPRJRZZUVQLZUQUJTWIRW[aMXYSPZIULTXPZYNQS_]V\VXQRTVRSNPMTTHTRSYUL]OPWQRRQZP[LQNRWQM[IYUTTRZU\NGX\OPUNQTYQQUXYVTZPSSYUSOORWWWYMNVRROWSLYUnUQ[YMVH\NRPMUORNWXKJKSPMLOQRVXNIN]MUPRVKVQSQRQN^QOSRSRWOWRYUZXLU^ZHQXQX[WYSSUMXRTOLNVPVZ]PRXPPRZRQcNWMXTTQJXWNKVPVRY]VTSORROPXTVBORSSSSSIGRZSVWOSQZYYUQSQRXLTRKUOXMWLWVKQVOXS]UPMVX\OUTQPULQYUFSUSVT\H[TQNSSHKXSZQQSX[UUTUM\\O[LRFK[PQPYX\RTYUNZRPQO[[U\WURXUSUVTROZVMRWPOTMQUXLTZV]XWS_RVZISTROLPRU^LRLQOQZJQXOMQPNUSMcTLMNUPPYJl\TMUJXRPQVOUNKQbTTL]WSQ^R^SOQVOSOR\XR[TUXJXSLO^VPSPOVNS]PSPWhYHWURUSOYIGTSX[LNTIXQNYLQLUPZSKVRSJRNK]S[RRYVTLVRYcSSNOUXSP[SUNWRUIYWYURSRSUSJSRRZNXTWUQWV\TORWY\SMNO]VXSXLQYYTWRRVBJTOSUNVW^TURJXRT[U][LUKWP[JYLZVXZXMTL_VIRNKSPPWROYTMPYMR^NTZSTOdRPXZ^[OWSJPF\bZP]CIMHXMKSLYKXPKMRUWRWPVbTQRTWVSNOQNXVRR\PSSQYWY\STQNF^TQNGFW[WYJRU\MWPWWZRRSLL`SSIS[NWQTTS\VSMSSbOLaUOUO^VNS_S[PNYZRRR\TWQ`[V\UUZWQTKQMPRUQXSPNYUWESQOPHXRQVaTTV\PRVUUMUMVKOX\UUXUPJMQOP[ZZVdNRYUKMKUPNOTRUIZR\LVSNWYUVQRXXJZV]TUUZWQPTSQMLQSUOSPNXOV[OIXVVT_SPSUKYX^OTeUUSWG[XVLRXNRVVXSRUSJa[XPSQUP\[QgON\UTSPW]OYQRSZZU^NZUZMUSWRRTTZRYUJSQUQVTWXUKSRNSUJMMN]WTMRYV_O`WXS[UTRZTRSOLURMUWVOWNX]OPPYRTKIPOT\WTLVHLVPVWUVXPTSVRRKXKTPKWNX`XSYQVO_[WSZZMN]UYWZSVVZ]FPRY_UPVRUTHM^XRZSUSOWZJJTQTQVZQHTMWLXWPUVXRWIOPZYNQKON^[MSROKUVYX_RRLOTR[[VTM][O[W\[TNI`XNYZU[V[TeLRSRNONPQQYPQSUY^TQT\NUTXQLOTR[ZLcSWUVRUNLQQWQTUQIXMPYJLSHY[W]PQMS[UWYPSNUYV\ZVUOJVNWTXNdPRPUSWU^TQMRQRPKXSWZJSaRPXWS[WPVGT[OMZSMPWS[HMQUURQRQ]XXU[M]TPTLTYY[PL\NXPRUHL[\ORQ\RMYSXT\JPHYTVRLVVTUWXRSRSVYLXZUWLLQScLV\HQQSYQVUSKU^MPIZWLh\\SZ^RTZQUURWMPRQQPUQQOMSVTRKY[OSWIOVN_WTVSVSGXY[KVQZOVHWJQBPRNLZ^NWMSPNQIZQQRcQVFNVXWZReU`WQVVReWOOXSMOLILO[YKQVMNXOLRQXPYETGUWOFNKROTRVJONYS]XS_Z_UR^_W[RF@NHQSVVWMXXRWSLULMR\VMTWDZTTIPZOLTPFOQUJYSVIb\NUONULK\P\RaSV]O]WQX\SaPaKRPJRTXQSUU\TSYMRVYTRYTVWOSGNUUJOPWSVVONNWVYRWUONOZXLW[RMWUUNLXXYPSNPPTUR[TSZUMRRMRP]U]XPMNNTWQ`TQVWHPYRRONaTPZPMD[XJXXLRZSZQOVX`WSVN`TJaNRHR_SUKHDQR\^ROUVWPTZXTRXM_[LXPIKTOQRWQZOTZSOMRVQWOLVNVVTNYT\ST^XSNVRQORJSRTVMMWTORYOMPNOWWRLSQOSjNSQ\OQT]MKPUPPPVIRV[XQV\UWQRJZQG\VN`TWPRMNWSWQ[UQYTQQQRTOQWT]VMPPVXWOLP^ZaRQYJNNVQNNQNLRU\KPS]M_PRVLIVOJSRSJWSULJNRRSURTMQRJSOTRPVFQXXPVQQQRVRRUVON\PQVOTL[HYVMVRPYRSO[QWRHPRIWVRSQRVSJMNYVaSLS\MUKULQPQYVTV[MVYPXVR[XJWUZ]\Y[UUKKKPM[XZ\OV^R]\UWVZMSTT]OY[QWTKNT]UVN[NVWdTKOPLVSId[ZLLU\[NLQYVONKG[QQUZS[NQZKHQXPPPSaNM]VOJXRNWQSJQXYQ]S\STUUSQVJSOUOTNURO[VTGQUTROWLNLQPaVfVSMRSYN[]ZK]^RUOTWXYO^XPWSVRWU\UROO\ZHPYZQRLKTRMjONQVNUVR[XOP[[UUNMRTMPM\\WGKONZQVPPNUVURMYX]KXRSJJJYSZ\XRRV]VNUROGcYUT`bW]KRRfT]UWVURRRZPZPdQ^T_T]V[XOSZROZTYPRXI]MZPKMXNUZZWNYVMXRSaH\cTPVTNWU\[WRNONPT\RLRWNLX]TOWSXQMWRUXZ]SOY]UTWLNJRTMWVLPUMaOZLRTeYSVXXRVWLXOP[QUW_jTT\NYKLQUMKRUVUYPU[ZNYRY[SYTeVXUQZS]V_TZPVV[KRaVfUZZU]UTNPWO[OYPURURSORjUQYPNSRWNZQX[SPQOMNQPNQJP[R[QONVPXJXUSRP\PKRXNYLLSWNVVTRMUXIWOXTWSL_U[_MPTT]JSOK`LDPLSUS\QKUVOURQLORSQSQQORKYPKhYTQW[RUYTQUQEIROQLYPQLMRNPWJUQOVZTMcWLOZ]WOJWVY]VJRVUNULVTNIRWGQWSRRSSK[I]aYPPXS`MUIOIXIRQ`RRT]O`]OZPUPSLIVWSNYRYYTRQVN]\MMH\OUSPIJEKMSFPOS[XJOVTWOSIZTTYMYSWKWWTTTRbHSVUVRYXKUNVPVXGNYMZZMVUQVORSOTuUKXQSMJLWIPNTS[NSMO[PZYQPYGUXZZMISRUSMNWOMWLUSQKTRROOMYZKWRNPGQOLSLQNS_RUVWPPS\VROTM]YVUXSK]NOVTWWLVPFTTKSPXWRTVVSNOSQPOOOVKCbOT\\RLWWKJEWWSRVWDMOWOWK_XOOPPGOSNPLPIXZLW^[SKBO]_YNGSWRVTR^ORIUIXUKTUHU_QVYJYWSOSNWYY^NQRTVRVHQPSRQ_RPWXVNSQSTXZ^WSKWW`XUQ[PNROT\ZMeXaSRZG[NLGISNNWHG\K\YL[SRNWWUQPMQONGbYVYORLSUNTXLSNUQKHXMTVQZPSIZOWW_S_MVKQEEWNaSO]XUNOHNTOPWNWVS[OSYRKNYHUUXGXW^TV\QRZ[NPHOQOaPJZPISHQ^[OOPMMOQSURWIILbNQR`bVQ[UVOPYKZQNRJHLLXSS[S`YLMSOQZVR[MKVUVMNHV^POUUS]WORWXRSSPUZTVT[XQJOURRR^SUNMRSWPORZV]VKUSWTNIRMGTRRVQEUXYTXTT_ULYTKVOVXT\SQ[M\NZ]OSZSX_TWMTTRWOTZVTURO[\YVROPPTZOTJNNWW^XOIRNVQUZWLRZROTOUZLUM^ISST[_UPPMLcSUO^RTPKSUEPP[SYNMUUW\IPTVWKQOTOQZT\SWZXSMSMSV[YYSLRROUNVRUVOPUT\MSMOURRc\YVURTRQZLWQNMHQWTSV]TUWG\OaROWTVNYN\KTYXVULXKaT^PYXQRLTJZaZPWV\RSYb[LRVGO_QRPS[RMWPLTVUPRVMUTPTPRQeRYQVPZNSZN^HIXY]YRTWQZUXTQUUPORQRWQOUNXRWR[XQRUXZTRSSQGRISXPW\TSWORXPLQWVPVWJ^TMRTFPP_QUJRY[PUVSXOJNfNYMTJZVW^^IS[ILVSOKWVS\Q[UKPV[ZSSRQMRGWNTKXZWHKOTPZK\UULXOVRUOYEX`TRUOWNQPMXVSULVQUPRBP`LMWXPKJLQRR^SWYPYGOVRlURFMQSJVJXSTcRXUUM`TUZ`KKLLPIRSLXMN\QWTQcUSONUUJ]UOTXLVKWNQMZOMTU[VRNRQRTMRXOUK\^QS^OTIPPUNZYQQV_OMHVVPZ[OMNTSZPURQVYISQRTSXVXRSLVSJ]LNSRTSORVSTOIQ]XPTOKUIQOPU]KTTMTSLMNXTNNOUQSR\X^IRPTPOR]UOWITTZSNF^VFVXN`PTNWPOTQLWSNUXR_\USbLKeVJbNWUCQR`ORXNRNORVL`QUS^TVZSNTQNNIQJLSIUSSHT^RFRRSVTTRQR]VRNTWOSSR\TZ^IVTHTWbXVMYe[^RUKSNWRP]VTLUWSPQXV\UPRNTJJTILdTOKQ[POUWP^SPTRRKSaUKRV\VPROPPNKRKZRSM_FgOYOSQTWNMMYYVKQPR_NNPVWPSTR[TXWXZS`UK[^VYSRN\SVLN[LWINR]VVKLKRNRIPPZVXGeTOTNURWRRTVTTQVZVMRO]RSNLZTSHVOP]\OTWRXTaT_[NM[TTZVMNSTVNTTPRJNHYS\SXJfKPUZV]\RO_I[TKVRQVIRM[WNNRZNaNRLSPXLUWdQMNL]WNTNXQPS\LVRZLKRLQUbP[N]QUQR^JS]XUZPVW[NQSUZNPT]V`[QOXL]WSPMQYYSRWSQU[MRbRXRJRMVWSQUXSNQPWWWRSWTPXMUSe`SQNXN`WUKUUKSWPUMTTPQWaTVUNNXRP\RUWVNMTY_WRZNNQNIVYOH[\QTRPYPZOS]YMK`XI]NJQ]UVTZKYSUWJbZRNSXOTRVMRVRYXJOSOTLSSSVORYSLTUWNOZN_V[IJ\RQ]OIRQOSVNSVVP]SQNUZZJVUTTTOVXWXQ[SSJ`UT^YKSXI_aIMKMP\PTWOPXDWOOPPVU[VH`VM_TK[SNQWUO\SNVZRRVUVOOZWKVeNP`SWR\Y]RRYPUYROU]NUQTOV^\\W\RTTPQRKL\WIWTPP[YKMYWSUWQOXYYeTMZSQWUS\WWMLQU^NMP_VWP[`QQUT^LOORYXNO\KKRX\SVRLYSP]NX[VOJVTW\VTTYUZHMVNRU\TO[`VZQSSWPQTL]XXQXSYQ\OWYZYO\]NYQSRQ`\UVOZXOYZUZPTVP[KQaTLVYXbYUUGKPKVQXWRUYQYOW[TXNTXR\Q[SX^XTVOI[IRXXTbUQWrQQRTbLHPYRVTUSSVS[Y^HO\WOXPWHQPSYUTZUVOZXQSSPUW\SXORIWQ[YQZUTKPKRQWUW_TRQ[PUJSYXXZNQ[VTWWGQ_VVQT]PYLMTWGN_[]Y^RUTNaSOSO^YfXPT_QZLYWZPRM[TNWONNS\X]SL^VQOQSOWQQ]NYVOQXVMPQTYUd]TSUONQQQSTUZUURROTRWOTYUTQQZT[TZU]QRT^VT[UaZS\NOSWNSX\WONPTXY]`Z]\UPUNQ[Z_RONNYRQQ^ZNWS[Yb[\YTG]NPKKRUXSLNXWPVVQEYXRWVLSXZPN\TTNNRIQeYOTRTS[JIROWVUPUNQSSIVbXW]R_XVZOZ\VVXRQE^I\aSPWJYQXYQY\VQIOR\TLdMRZTY[R_M\L]`PYLWPQWQIQaZWRcOWWLVHIQYW\RRL\[SaT\NSbPJbVePZ\WYOYQUV[DMg[UULRTS`KWTSJUMWOPZRNiIZZMP\TS`ZTQTT\SVWM[S]UKOSUfRZUWTSPJS^TP[NTPS\ESfUSVZaWaSNREdQ_VQWNTVVXM?TUTLLWW^QPXUTVVPVW]Z[QV[WW[QLVQQRGMNXSZ^WNPNSRXVVTaSV[LMQWGMNTOTKVITOTVNNVY\OOQLRTURVW_SQbPGS^LWVOVQYRO`OSRQTPRRR]RNK[YTVSTO[NWWWMUPLZLXLPZYMWYVYRZVV_OQPVZPMRXPbOUWSSQYTPVTOQJ]VQJRXQ\TQRNR[J`RSRPOQ\NUQUVR_W\OWZVPVKSQSWO]aLVYYTFFV\fWPM]TUYZ[_LXQOYUHYQQV[YVJZ[ROKZZRVU]CRSJQ\KOSKXV[OQdNYISPTOSXJYUQVWXMTPRTRR[UTHPZSNZPX]QUaOSUUYTPVOUR[VWV]ZISP`OPNTUMXUR[SWVZTRUWU]cTSVUOS\SXO\ONZ]^XRaWSNOZWTRSOPUWISUPRPaX]bOTT[S_UWU^SOLORYYXTOZVPVRP[TUP]OKHJ^WXD_VLTLVVPSTULXPTNOYUNLJWS\STJONUNT\UQQTTQRUR\MWS[TSV`SVQXQTW]X[WJZUWUQWQ\STZRLPMRXORXPSTIOQTOPNVLVYYOROQPVQUYPPVXR\TPUMTWTRMUW]WX[RZTLUUOYSVYZWXJTSN]V^OPKXSKONEWVNWRNNWTYLbTPOQSOP\WOLVOYPUJ]QMWUXVSRWONLPVOWXQLVUNMUUPUPTWTUZLQTM^ROSPPREWRRRLYSUSOFUXSROM[LUSZY[TP_WMTSWUPOgVTVOSYW[WPVM_WWKJVSOQUU]TV[WVUZQ]JTQUdWQ[MXNRZQVSPYMWXTUUKOTS[STWPNXSVWSeVRUOTSVTSVWQH\[UPZSJVM\UUR[KPOVPSMQ`XTTR]NVRXTVLEWPTPYSV\O]M[_SUSTTOUfSTTP^OOQIWSPTQK\SbOI[USMYQM\TTPNSKLLZRTYPROQP_UQPUKOWLM[TKMJ\JNVYOUXVMPURNMVRLZVQLQXZQQZHP^SKO[QOZO]UVVQNQMR_RTWOVQU^T[OSMKS[NKXZVMUTVWPOQRYcfKIZNILV\UYLTUYVZYSVLYZWIJWPQH\VURZOWPdPNT\WXLVMIS\NSKVM`S^\QJPXY\TWPVQXNQTVOSMVJVUVWX\NVaJ^]NTOZUFTOYOHPPVZVNV\ZMMJPVMQRSXKVPNNYWTPMYWWTRYKPTXPSQVI`SHFUU]\YLWQaR[PUXUTURTYRYQRKQUXUW[NXPUL\MRXIVR[TLZQWMVP\J^ZNSRMNRSKWMLVEJRXRPSVQIQH]LRZUXW\QS[HPMPVORVOVTWORWXPRTJZXMNVXRSSVUL]KYHPTSUDUJWUITOH]ZcUUMQRQUPWOTT]TVI`WN[NTNMQRYYMOUFNXMQTSPRRPLQS]PE]VYZSURO_SSVNT[ONY\]MZUPNLSTRVQUWX\FORLWY[ORTNUR[P`PJRUTUSPPRVQPRZYVNNQQVQanK\PMVPPLWSNTWQWUJVQOQTXVeLSOYWNLWNXLSYbVQbVZ[PMVOUdLQTKcCUQXOXTSNLWQVVQdTPXPRPUJSMSNISSVRfSWSTPYTWRX_UHRWVQWVOVUR_MMQMRTZPOPROIYRPiXS\S\aPMTTUVZTRUS[NUWKUTGMJWYQSWXRSRTQXQLTZUVYOTRTOYWPSUPQSZWYULTYV^VTSQPXTLSWTSQTUQ]RRZXSGSLNSRTWTRSMQYTWSVWXPXSUV_\OZQVX^PPQXU^ZQUR\QXLSUQURUSN^[U_UQ]QPTSSV]RWSXZZR[RYXRX\XYVT_QU\XRV\SUPQ\MPVWOLUWYOUPQPNTWHQM^XMRUbUVUWXNPTR_JZYcRR\PVST]QMWZU]a^QSROPLS[SOSPWWVR[^\UXVP]XYNYRkOWTWUQSQRSWZRTVYZVM[XN]JTVV]VWTI[NXU\SQPXGWSOXPNeT`]WR[U[WbSZRVTTVTTR\RTQUX]MOWTTXXbLG[ONX[MQ[TZMQNTOPSRRVXXPURRPPTbVR]LPRU]ZTUXNPNNNO[Z_ZWWYSPTL^XL[[RPTQTZRZNZO]TTQ`cVQ\WVVYY[XTTTM[M^ZS^PSYV\ZRY\^SUZHVWQZ_WWLTWRXP_U]_UPXZSSSXQWYTXUQZYTLY`Q[UTUTUPUWQYVV[SSWaPWZZYOVPYSXY\TXYRWVVTS]VUWYSVYWR[UZXWYMQTWRSYLTZ_TTZ[YVYZXU[XTUVWKUYEQSQSYWU]]XNXTURZZdUVTXVTRYYXXYW[P\PZP\[Z[VWZXTUVT_UTTWXdQYNRTQQS[VUVTWVS^VYNZ]Ra`]X`SXYQYQaWY[W[NX[RVVVRTYWVXWTX^S\U^SWTVW[YZVZOaURUWUUUVUP[VS_RUKY@S]VXWQTSWT[TVRQZT_XRJ[TUWXWNY]YVVVSWUXVWRY]XZRVPTXYVQRUOYUWURO[PTSaQ[\VMXJYMRdaVP]YRVT^UV^LNSMXWXVNW[_NFPaNXQJ]QMJRRMVWSW[[YeZ[eWUOPPLUN]OMOYSX_OJMRZVPKSWVV^ZZPQ[SMS\TUKRXRPUNVVTJ\U]YZLTTNWSRX[RQSMWTMOOWQYMM[SSPYQSK[URaSJOQ^Q\RYQKQSFM\bUTWU\NTR^S__KXQTXWNN`PMGNSV]HON^YUVUSQOPPNLZNUKXPXZ\OMRRLQVTG_WPLZYXMSZTVSOIK]RUSLOKP[ZPRMUQPPQXUTNGXO]TNT\WVTZNXUUUSXRTMeP[X[YQ]UVMWRUcOQbWUOYJMGZ`RUV\SPK\RPKM[XRXWIXRNWSO]RNWTQPSX^SXOTWLM[WOOXQTQEWQYHVTORVSbPWNH\PPXWRWTTRSTXIUQXVL\RTT\PUUOUPN^SWROUVGPLUNLXRMRPY\OZVQWX]QMJ`VSUUV`OXSNYRQUU[TZSVX\USXIRQK_WPTZP\PUVPLQRMQTP[R^MQST\YMQUXO]SWUUYNVVJQWPMLUX\HKdUSVRYZRYYNRMXW`OPQQSVOWP_ZYW[PZTTRYTTQS^TOW_RRSURMTOMO[QRSQY]TaNVYSSTX]OTQPYNRVQXR\ZV_VROL_QVUOTSQTV^RRXYSVRRJTTSOV\RTSMNLVPWOQOMYYXPNQZKXWOUZ^NVXTMMROTbOUNYXOJRJQXMa[WUaWZZRXUPXNV[SHSRRWNQMMZYTTSQYWRT]TIOYS[[ZfV]WVNR[[K[TTQSQSSQVUOYZRUWSNGQNUKTTcVPRRWWR[RRXYQ]OoeWJTT`HQSXQOV\OPP__PP]NSNWMTMKVPWTKVRLS_dOM\XVRXOSPNVaQQ]^QWIIIQIWPX[FL[\TTRXVPMQOT^KOYYVSPUOVTIMLSMRVSOTNSKPTgWRMN[RLUPXUKOQMWRPF`YJ\SKYVS]XOVDTSSNfS_MQXM[MEIZQSJPOeRJVTMOKLQLSZKUVQK]PQOWVVNNb^VQWWTPELNUQKRPOP\RQaUSdMKYQMOUG`SMSPXPbRROZ_^LUPGIP]PS\TVSTMWORNZPYKROaQXU[PUY\ZW\PYHYZPTXL_QRWTUX]^UZKMTJTVXVPNYS\XZRVTHYMZTXZ[ZVZMURWXSRPKGNQROPRTSVPUOOLVTWdROT`NQVTQZPNSWSUYbWOSUQVQRUWUWVPVZZKP\P]XJ\QUOPTOVTROUMWWNTRPY]VWRWL]X[TRVXTUUVXPSOQSOVXNVSPRYZ_SSUTaQV[URXYWWYNWROXXNUV\NJ[UXOWPPTPVZSSPSZRZYYPSZPQZO\WQV[VUTSVQU\VTVYXUXUVROYNTWLU_SUVUV^U[NXXVPRQYX]UTZVM\TUUVMPZGS[MQUMXYZTPVSVSPYO[UWKSYWRVWUSZZSSTUYUP^ZXRTQNYOSaPWW^ZSQN]QYYQWQZRX]SSUUOVUQROVSTUXXSXZNTVWTWTXXZWSTWS\SW[VWTRX^^SWVUXXVVRYOTYWUWWNUTRVTTUUSWVRcaYVWWWUWVWYTQ]OU^YKVXVSVNTVVVTR]RVQXVQUVNVRZQNT\VPVYYOSLV_VQI`QQUZOPNR^PTSMOSSTUYaLJUMQfXTRSSZ]YTTROVRRNVOUKQVSVOVWQVXWRYPOMXPJWSPZZTUNSKMYXPNLOVNOSNLMVTWPVMXGWRWL\^YZUHQUNNZEMG]TWKLRSUVPRWPR[OYKRSUYZOWTKUOMTNVTPRWLPG[PORLRVWSIXTUIPPLTZETQSOH\NOWUOSS\SNSUSMMTYcMXNNOQKMQYTUXQNQPPMQ]^MZUSXVPYSOVOCTWW\WRYRVLRNTVQMVNQNVPOZJKVXSRSNUNVUORSWUYEU[RVNUOZPPUPY_NUWSVTXLRVXXQSTKVRNSRNNXHMMZQPSQXQ^OLUWNUV`SOMURRWPMYMMQSUQ\TJVMOMWSNPRd^]YJ]NVU@\YNYVOPUVLRPTO^NEZVEKNWTOT[]SLMRCNYRTZXOWPHJMXSSROXPYTSUQOSTLjVKTMMXRFGPFPLPNNWTZQKPPVFWSVXGQCQYRTSPTJPKGVPRLONTV\NMWQGZWMWSVTc[X^SIQSHORZQ`PKTXFPQOQNROLV\L[aIVKWXMUJNP\QLQOLBIKZUNQU[\OQKHSUHEVEMTR^YTHMPOTRSPUOKKVbNWQWNIRROWNLOPTQKXLFEVEPSXMKNOQTWSRSKZH]QHPSMLOVLUNVNLPPSYTYOOIVTUVOGP[OXN\UUSVMWHWJJKLOSLXNNISRQUXQTX[NKQ[KMGNWPMNQRK\KMXWQ`PPOP\KMSNRQWKMTPN[IVHXSX]OLVJXKOXPLH^UQKQXQXPXVX[JPYWHNYWRUURYU]NP[JSSVGRUVSVOTTPVUQQ]PRNSFUQX[TVYPQIRbPQIObOHS_TVSKPQIQLMRZ]T]UUIfUSYYTWNS\RVK^MVXISHOSLKW\WZWQSSQTT`R]TRPOVFRQQU^XRPS\SMQTXWJVOWNSOTObRSVSXUaVRVSfSOQ]QPKXQVW_UMRUPSWRMXPPXQTVZ]YRUSNPQQLVQTSeZS]WILRTWGYOPOT\SIPWPZNV\XZT\NFQUNONROVRSXMLSWWOU\SQOQOYSX^SXQYZV]LTT\YXUOMVRXRUNTSSHQXVOYW[XJVTQ\OYTVTQXUQVPXVUFSMQWXVXRORSNS^VULMXIQZMXQVXRR[UWQX]WMT]V\ROY\\QORXPPQXIRLQOJPNTY`NYUVRYYOdRDHT]VT^KSMLK@MKTRBVMMGNHVNPSSPOURPWYDOV]YTKVYUOIVXLWW]R]IMSN[ZINUYRNKTMQPV`QSVFMREVYTYRORQ[NNYQ`XSMFKXWMTN\XXPKfYVLRRO^VVSJLQQ_OULQOT_CL4`PVTVPLOQUQJVP]SQNNMV\IYWLENUS[SSRTLJNVEVORWJ]RL^QPWXPNUTMWWQULPSWUVP[PQJTPSLUOQIGHKR;OKRSaVXWaM_STQRJPZTRJJQHRSZLMV[NTLeWWSGSZU[MOSTQXSNTLRZXYMUOXRTG`NS[QXWN]TdUPPLWOXZSWTVOZS[QZVHRATYQIRNNSYVUWWU[^TaKVSWVSQQWRNZTWaRNCWRZXPXXWRLSYUUNWUXRNSWYaWULSXSRVORTTVY]HQTWQZXUWPSVNKSURP^LNQSOXOWXPRXOVUSPYT_RTLN[RL`MZYMRWNMXUPaOSQITJOVMPPPRVPNSIVLROYNQYOXSZUEVPXINU^J[QSONT[[VXUOORRQRQNSSOOPNYQWV\MUYSPVSSOURSOOZUPSV\NTZRRVOLQWWXTRTTYTZNWMTYU\QQQPUUVMVSSQSTUPMOXOWXXUTRQJZRQQTVSS[RRNOVTWKaXTKRQ\OZXY`SRQURQXZJTR\PU]`UQZSX^ZWSOPVVTWNTKUQZSR^LXLRYSQQVPNWSSUSTRXSSNXSTMWJRLWRUUXWXWWLSKSX\TbQOULVURTVRSOP\V^RHKU\KUYIMNSTXZWW]R`XKWQMWYMOSSTeYXNV^[W[TOYR`OQSV[MWVNORUYJNVcWL`V`bPQQPWaIRRMRYVPRY^OXVZMSQMXXhVYR]WOOYRPT`S[]\WRVV]OP`V_QYRUUOTPVTP[QQ^LF[ZTPTSXRPTTSTPSWYNMSYWNLUXOUMSZR^RSL`cVUZYVQLNOJLVYYNQSXQNUWLUO]RUTROROQYRSZUZOV[SUaVYVSYXUTONbXYTSTVVQZUXUSOYUTSOTRRLQQ\O]WPPUVWZMLVWUPY[dS]SPNROT[[LURVMUNRMUOURMQVNMRQWIORVYRSQYVQUW[W]OWLRTTQWMZMeVQTWSSVQ]TSS_UV\KSVWWRLOPP]KYUZK\XSXSJRYSPZQOP[UQOLSPQUWTZ[VQFXTSJXQQNbS[ZWYPUOWPYOQ\TZ_TSSUGS`MP[V[\OWWWVWVVKfU_AQ^S[QZXFd\UZ[HRUPN[VQWUVPXRO\W^QPW[R\QMXPQOVZTaUdLTXYV_JScPXZ\U_XWQUYMMIP\]XTPVQKVU\FZSPYPWK`PRSRUIJTTQTUXUOPOXPUTUSPRYZSWKSVYZZXNQIHUTPPTUnOZYPNTTRSQSRU]YRWY^Y]NRTRWNO_SNVIUOYOS[[XQ`[OOUQ\IXTOTXVKUQLVYQRRWPZRP]JRIPQUTVLcXZVVRSURVPYMTPZLTTQYHUTTUNbPRKNQS\YNXOUROLMNKQTLRbTZXfWWUESR]]RKNXXSPPWVPYMMXSNSXMNWcRQQWKNTQRRRQb`\PVO]XVZVgXBZNLRSPIQW\WTUQ^ZWWTMTUM[NSVPYSW_\XRPVTUHQPWOUSZWSW[HVJVSTELXSSPUUQTIMXNKNZYVORUSZV\EPZPUXXU\QXVQUQQMKQVMYZUWe[W\E]PWXVPRZPRRRMXQOUJMYPXQUPJLLTSRVJOPTZQNPITXV]SZQZVTVAQQP\UU[JRNRVVZQGW]JS\TPYa^GWZRSYXUT_RUXYRNOO\WTTdVJRFYWPRZVLXT[WQVS_WMVUNP\LRQCZXSTSWPWVMMZQMYZWLVHUSPPEPS]TZYWTDUUTTWZPOMPWQTWLMZXZQSTPfPMT]TTOTYUVWUONSVLVVRaSZPXSTUKWNWVXPROTOPUY_QTRULVSZ^UYQJTNQ]XFPLSMRPVRVZXOPMXS]XZU\VQOLTTJLXVOPVQTXZa`UJ[UPUQWOTHWXXLUTMK\^LMPUVRNTVIZQRXV_TLUIMMVNdQSXSJSSOTVJOXUWPLSUZULVMSNTR_^\MZNVU[SO\HKTHUN^MWQ[[ULNQPRZU\[JNWYWSPNLOPOJRVQTTYZZQN\TPSRWHWULR\ZPQTRU[MVT^TMLLYQUUWTOXNSTQY[[NSW^TKL\RVXPPZTUXUOMTQRJUbNTJKZKYKWXJ\[XQOSRSVTUPTMSTZVTWQUMTT[KNJNOVUZORX_TT^RPOS^T\H_dVGZX[VRST\QKWYWSTOSMLMULPT[ZVPQMTLNLQSQPZXQbVITWTSPPVbSQP^JQaUMNNZ_MFPQ]IOZQLRNTOSKLTIKJTSJKXZRQXQOUXObYFZLZfMTbMMVQX^XVTMaQISLKMbTQMZcXRQJYTURLVWRWJUYZQSXXRUJXRSDVQ\[QQRQMTHQWWQK[SeU\VNNSPFVXLTa^OXOWKYQY^PV\RQHNSO]YZUVJ[NYXOMYJUMMUVIPWNYMRQOQZZYWXHLSRTNVNRSY_X_UYSLOMOHR_R[\NUT\cWX_RNN^QZSXKURSWP[XOUWOBOWNVOMP[WNS[XSTTNYUQLFYWRQOLLNXUTNT\OYZQ_TVQ[Z[QUMTTPMHTTRPPUaQXSQJRRIRWQPJLNX`DJPYWURS[\ZOXL\QPVLZHQU[UWUcUPQKZISYXdXQPKXQRSIWKXZV\UQQ[f[TOQOPSTSZVUTSXPGTPVUQ^[O\LWRX[Q[L[S[QTNSRTTTYPQOPYS\MMVfUJ\MU[QZSSUOVWWRQQOXMJWZR`QK`UGa^`bOWTFWYUARVWXUPRILSRiNWUSb\QdSNQJSSSALXNa`O`RRfLSMZ]MXURJMdLR_MXQORSSUNRRYYSTTVQRMTYZG[YUWPSTTPNRPVPRPWUXW_[TffVLTYT][gMO_[[^ITTM]RROW_SKPPNPWhM_TYRXQSRWGVR^WOVVeRWXVNXUNRUNWPKUZMUTQHh[XNSURLUX`fQXZ\YLWOZMQWIZU\QWYHQKRVVWPY_WOTXXQa`RWXWIL]OWU\P\UKRSVKN_PZSQWKRRIQXWO`WYQRTGFRVX\R_LPPX]SZTVWYKWZRQRXW^`WWWVRYWVSQUTXVVHRPajWSXV[VRVUWWVXQQTYVRLRQZZVRXTVILUUOTMLVU[SXILUO`UPTHZRVPMQ^QVXSSRNMSVUW\SUUYTW_ORIOPZQJT[UPU]MQZVWWP[TPUVOOPOGQ^XRVOOQTM\SUQ[UPYWQTPRUOOPQ[YSUR[[MTSNSSSTSYdSPTUO[RPRTYRXVRNXZNW`c\S_TSLRSRH\\WPWVJL\NcWPW[Q`ZTTXSSMG_KVWQJQUSPPUPTUVVMTRY`NTO[X[OTlTOSTNTXkOVPULURWSOXRMUVS]NNXQNOSZYDRZYOXSP^OZGNMLXQTXZZPOWRMKRRTX\QRRWZPXRNXUiQOPTQ[QTWMNSWSPWWOaFPPSOXQTURT\WSMKX]NWZOimSN[NQWZcFTSUMdVRTZWVPTQXVRXVNSPYScRPGJRQNWOTPQYVUWXVTOLZZ\VQHRQON[J\XUVCIWUQ[JTQTNPZSZNNOM`[XLSMWSXNZPY_YUVQVTRUUSTJRTPRPPWYV`TRSUZTNZXVVNOO_UURTQWHZQRSPMN\NMQMNbSRVUXZRRSTOWTKOQPSPWTZNSQTTQTSV[[XOVROSRTS_PIZVMTWYURXRJSTNY[PT`RWULNkUUTPZXSJOMcJRSN`RYUNKYXSTXJWYXNIOQ_\PPRX[WRU[YVUYRZVVM\VVOWPZQWZRbTRWQPXXTTYXUYTSUaOQKSIQKQQSVaYTNUXXMPVQ]W]ZWNNQ^A[Q[QSV\XUUXXTVUQQRWMTMQRVVPLRVJSXXMRUNUcRQTURQUM`RVL`RMX\ITYPNSOKUNROZMVPYYVXWfWNISK[RQbSUXSS]IQJQPMIWPNONQc[HNNWYXTVOTLMWRPYNYRQTORSSVXQOUTVPSVNdNWOSQTOMZXU[XUZWOLMIUdPSQIWXXPZR`^NVPYKYSRNYS[ZMOUJWWKSXNW[SP^R\QOWWQX_WTHZWZTWYYUXNNUMLdMW[UOSVSTV^UWSOVXWWKTYWXNUGYNKUSURQUQ]dIQKUUMPOVYQMUW[UPYS]VWXPZVRZRXSQLT[ISTUUPS`MI[YPVULJS[PWSYOLRVW]VQ]UTP\SNSPRNT^XPSQQPY^TWVT[RRZ_OT\SXQKRRUMW[OSOWZUV\QUSNI[KOW[VQUJJSJZUSUQPOPVQQNYVRUR[N[U^NULUJW\[ZQPONO]TVSJNaQP[ZZT`\XU]XSSYW[TNVQT^RXWS]TVWQU\RX[ZSVQVUZXShY[OSWQUUZ\XZSQUVX[V\TW[TXUSXVOO\eSYSUTUXXULTPXPZZUZXRX[]ZQSVRRWUbMT]OSWSOWYXWXSRUWXXXQ\TUVNTW]WMVRTWcQS[`\WRTUXYUVSc\SPYLUUOR[UV]^VXSWSRR``TSXUY^TWQPSXTXOVQUWX[V[VS^VUUVZ^TPM_SkSVRSWQSZZQYUV]QT_TTQ^aZhX^`XWW[M[M`UXWU\PVXTWW\QTPRTSWS[dUbWfUVSWT[`[VYSX\SWWZTYQTPWWT]QPJXIS]VTYPPTVNaPUVSXZWZLQVQUSSXSWZZTUQRXTZVTSV^TYQSPSZZSTPTMUXUUUTeWRV[VXWTRWYXWVVVU]SVNRVSSHQ`Rd\NKXWQTTYNUOWPTOU]QUOT\WLTSNNOXPPVZQTRWKOU]TRTV`UXbQKWVJOZZQOQRPJPNXOMWTVQPRVOQNQQRPXHLLWOTTIPNKUMMH^RZTUNHXMNPRVS]ZPZMTSURXUVVSXOIYOXT[RK]VQZSMRSRXLOPYYDKPUSPXWY\UNfROPKTPYTURJYbRTJZSRQLZWTMPPRQP[RV[TOTOQSWJQEV_TYVUQVPUPK_USTR_YPWNS\RM[TOTURY]NPWGO[NZQQYPWUQQ[[WQRYTYOYONUXHaO[SJWWVOMMTZOWaSN\XZVQORQS\NP^VOXVJHVT[?ILNQKVQXLNQSRROUWQTYQURJNVVXTPPMQOcQL\PQP\TLMZUPNWOUPXZWXUY\LX\N[TTQURbNQ^WZHTUPLNWRNMUVUQRdP\UYVYPSRPXXQRXVRQWZXVWPLQRROLUNTHJUWSO\YRVYfWZXSVMIPRVNTNXPJKNZZQNNWVRUSTUUOSTSbRPOSYRVR^OWRQPLPT\UQXPUSTNQ^XYQTIRI^YUXQVRQUOSUVU\QIQU]IQRWNKTKTWZJLRVPYSQVKTVU^MOVSWQVPYYTURYWOVSQQPRRRIYVPPT\UPPNOUOVSUQVPJNSWSQUVUYRMXPURUPLYXWLSSVWYVXSXPLLTVESKO][[SP\JQaXLWRQ\LYZJXPRRSTJRURNXULNQUQX^YWTS[RTOUT]OZPORITRV\OLWLRNIVQQSUQLSLTVNWPWVQJWVTLUKWNOUYWSSVXJSLSS\STSYIUSPQWMJ]SLRJRVZZ^XSTYWTO\RPULZUKWOWQXcPNOIRNWTXO^TQ\OZOPUVSRMO_KWQURcPTPHNVTWPMLHRSRWKKWOQTPVXUTSMZLXWTPVOZXPRNTY[TZMQYOXRQVKR]TXS^S[VUNRN\JRPP^\]RQUR^YOFRLZQU]NcUTTYRLRZ[QTMUW[OWWPUWXRPZYNOQ]_TWYVWMUORSYNLaPaVZTUROR[PRWYQSWWQVOKaUKMWOMSPRRQYK]NRZSPOWT\TYbQOSTcVXJTWPUWWYZUEZUQURWSRSSSZ]ZRLSY[URHUZNZZUTU^_WNVTVSSYQRZTPMTOTUYTRUOSW`QZTNOPK[TPUV_LNUTMXRMGTYXS[TSVQXRNNWZRbSQLXNV_PRNP\LPTPWQXPPWVNPSPV`PSV\U^aMSN\YOVR[X\[N]__SWFKWXU][W[TOXZPWMLSZYYWJNVGfRQZ`Z\L_PM[MOSXQaXQNUMT\PONW\U[PPTTR^ZO]VUTQYNVRLXIUXRTWSVVVUNU]_RVPWVSVYMKcgSXNTV`ZXQNQNKQW[ITKULMR[QTYO]OSVPNYRJW]UPNRVXW^^ONPN^TQTOXPI[I]XSXPMJPTUPN\XJSLSTRWISMNTP[USXXMMTZ\IWKLWV[PTQ]ZMSTZZQO[XaZ_VO[a_X_TYVYV[QVVSXXNUKUbeLFUMIPZZHPYX`YTOV\RYSSVZRVVRUQdPWVRLMQRKJ_OXYfLJ^[X]F\TZXSRUQMO^ROUOSZ\YWWWJOQZSLOXYSZ[XP]SPTI^VX[V\XYSdb\UOYXOMJUNWMS_UMYQTKRTRRSQTQI`RYWRTW_PTVVTRVPbTXQNMSXUMaNQSOO_OUPMQTRJP]QYZKTZYQJUXSJTRRIMdPSQRWKSYPQP\SZUWJgNRPOQ^JRNQRUL`RWUMbOR`ZZU[VZWYUROSSYQWUUTWL[OSPOWWTNTMVXR^RTXM]RXXUbRMWXMRKWZPNZSRYUOSQV^SYNSYZUMUPXSWZQQRN\SON_PTPV[PVWVVS]PTOPOSWOPPSURMXYESQVVXSZTU]SVLYSUTXSMRTWOUY`R[WS_R]NTRTZPURWWaY]P\aQWOXVTNRWPQM[UULRZNSJOQQU[RLOOKTXQVOXTKXTPOUSNYUJZ^WN[\WUPKY_]]KLTWKMOJTLSfXQLZVTQLQFTSSZUTUPXWS]PQJNXWVYSZQKUXV[WUY[I_SRO`NNORP^ROK_MVMX\^J[\VYYWRIJQOQURWTRRWS\GTXVUUTKLPZ[VVX_VRSUU]RNMTYN[KYTSNYMTUIQ^^NLSTQQPYFRTMUOHRUNJOSTVU^NSQTU[NPN\XOOTVOXOVQMQPJTUWQILVNWOXTQSIP\T\HYTQ[JWQNQUQWLNcPYQYTSW\\H]TXUNSPZHRVIV^SZMSUSUVYUH^ZNOYZTQOMT[VWPaYWPaV[QR[^RYIM[UcNITTVQRYRRS\RLQ][\TFPURMVUUU[STMT[ZP``VO[YXPZSLQWMTRJXTUOPU]X^RLRMMXPNRNTFN]QWKQUSSQR_S]RYQYURNQWZSUT]PQ[MLJS^XVMOXTR]UTPQUIJMP\VWWZXZMSUOVWSKQNOXVTQKTRNRHQQMNYMTAZNT[WYW`VNRPYP`QPMcNSTYXS\WIP`RTTQNRRRfWAO\QXVTWVSOVbP[\Q]WSUYWJUNRTRTPOb`QPIRPQcWUMZY_TRPVLRVZLUWPMYKWTV]SO\SVSOTUZXRNTZZWPSTKVNPN[OMQORXY]X^WKWSW\QVV]YSS]XXSSPS_NY[SSUVRNRSOWYRPPTTQWQ`QTURUTSNSY^VUQU\NNRTUYQTT[\YXXUT]Q\SWQUVVO\PTT[VWNTSRSTUST`PURVWOVSX\TYL[X[SYRSSSTPQPPVNZWbRURZXSPXQYSORXKON\aUV[VUfT]ZKab[WPPMPSROTPXRNOSYRXOPM_PWTXQYUPQMPSg\QXS[SQWaOR\ZNRZ[PRrYVJNaWVISLX[XTYVVKQ`OOVOXLaQPM]\`]WQUYZaUUYLIOWORfAXQQMRNPKQXUXQdWZPOMOP[YRQN]YRQNTT_RIPRXYYQQWefVWfMU\SFLZVYXVQTSWJQV]QSRWVUQMNTRNRNUOQ[QRTaLTNURXTNTSXULfXVQYHQQVOWRMPK]dRUUMRK\^Oc\d^RVRLPP[]SQLX\WPLRPWUU^UYPRXSP_]jTaMQP_OV_URURSJVY[QZTLOVJPR\GKROSQjVRUOS]ROeZRQVQPMTKT]c[SYVZQKRSQYVXYPNSRRY^[SV\^TNR^XWRJPUXRKaTVUWPWQIVNM[TJNQQZUOWRWTOOJN\T]ZSLPVUOUZQTZTRMUOWNQNVTPXNSSOZQbT\VXfWSPNQT_KMPSOMP_RRXWY_MOYTX[OS\USZQ^SXVSXYY\SP]ORY^WMKV[QMWN]UZTUZUJUQ[KNP[TKTWRRV`RSPZKXVMUWRTZ\QYWLWXR]OWNU\VMOMYQWNSXOQa\UMTWXZQXRXUSIVSPN^WXU]WTQSPN]UYQRVRQVNKXZc[RSLHTYTVRSZNRS\RPRUQZSMOXWVSdWOS_PZVUJMTVSPUQSSYUZKVHQVLYRPNVVWWTS[YVQSIUTZVXU[^^UZPQZUPS]TRXSTNOP]VMUX[HY\OOLYRPJVTQX\OSSIWTXQaWTZOJShSYMTRVTJQPY[RZMRLTPKTQYLVVRQ\jSUWP[JUUUWVRSVUQIPJLTM^ZSXIR^STRPOQLSTUWMOYNZWU\SQSOWXXKUXUORSSTLQTLTQTKQPLOKSPL]TSSLPQZFWfQOTKWQLQKRRSXNOPWMUMSTNVPRPQNKSUVUUPOZSRWMSLPTZYNUPPXXRWOUUQROPUOZSJKNOQNRMMTMTQLOVZOaMZX_OOVSTSMPOU\MXXQMN_RYV\UURQZWRRINKVV_PWTRVZSTUVTXWOOT_bTRKRYVT\USLQPPRFQZURWP\UTNQ[[NWOP_PWPVWPK[SbZWQ^SUPLMTJNQ^LWRUUVLNVHXUbWNNU]VQQKRZURUNQNY`aRRXF[TSMSTRWOUSWOWW]Q[TKURSTXR[Y_ViSTXN\QYWQRPWRURTQUV[NLXW^NUQRXYXRRUQLNYZHWTTgIML]QKM\R_OTXNNOP`VWVIMYKNYSISNU`SIYU_XKTDUYNUPRSJTQGVMMUUXSUMWMRWCb[OZQSV\UGUNTM^XESXPZOK\FTSWORS_MfSV\QKRYRTSLZNOQQHOOQPRI]VKahVRRIQZOYUQSQfHIQQXXST]RQSbZQOQPYSWTU_[XPSVS[J^TQ[T_USSQON]SRZOUZMVPKORMMRSMXWPPVVZXQOWXYQLNZRSOOZMPUUQVZUTNNY^RU^XRIU\]PY[UU[RN\LKZTQTT^NXORRV^QCVUUQeYV\PjVTWU\OTYMVFQSVNQZYXJZTWKLSWMTO[SQ]ONKKOMSUSSSMQUYK[TQQSXPP_MWUYVNRXONTX[OYWVRRUPMZWU\OMOQUNVTUTWXLSXKLMRYZ`WYZLTOUPa]NTNWMQa_VSYTONMT]UUWMbFRPZ[QJRTQSSUUW[KXIMO[R[XTIUmNRRSMUPISUO_VPUNWR`TPUV\]PVJSKVMZNUQTWZUKeSTTSTSTM[XWU[STZU^ZNL\QMLWJM\NSLTVYSVWUXUSQRVQUULTWSZRLSVPRWLXIURRTOYWWYMVU_P^T[YVMYVMYKRXMU[WhTZUlI_LMZXUWXWWWa]TXSTWfM_NVZNQYUUTXSSUURUVOX_QP\UQ`UOQTYSV[OOZWVTWXORNZSJRQX_`WH[PWZVWPIRWO]SOVNfV^RUS\P\SS^RQSZUZ[bYUTWQSHQ]VST]NQMOR]GPUXJ[VXO^VMUYXXX[SPVVTWXSTQTRTXQPJXRRPQPV_WV[[P]TPT]Q_SYRUSQNY`TRZNMR\TLTYXSQUNQ[PWPPSWRS[HQXMHVTUQQU\MY^LTSQVRSMFMWZahNQKRQLXUNMZOZYYS[RVJVVNS]\WRTVW[PT[QNTXPN\YKNXTY_YUXZRZSYMYRPRP[SLK]T\]YPYTV[SLUVRX[XUTYL\RTZJ[YXRURRN`T[WVXTXVNUOTYYKOLZDbXQUXOIRYUSMY[M\S\NUQRTLRQSVSYVLRRFLQMXQQ\XWTR[`NSWY`LQUNMPNSLZYPTMT\PXTTTLRU]KSNYWS[QV[ZUPPVMUUZU`ZQQPY\UTTXURUMVPUSTOXTTVVOMRQWQL[YOUVPTPPTX]VOOFN\U]TTRNQYPO_WV[ZSSQVYUTPYOYTQWS\XQTWOPUUPSRWZXYTZYJcV_NXWSVTTVTTSVVS[XXYSS_UZ[TRROS\]S_QUTXVYUVVOXSXVY\RX\S[SRSRRSSTUWSRQX\QRUYWQZQXUM^WYRVUUTPSR[XVNSUV]YQR[ZTMVTSQPVPf\UT]W_WO[XRW^^W\RZULT[WX^WRRiSWSOVTWUTRTQVVYUYRN\TSVXUQTPO_T[[TTSYUYXSRXVX\RXTUPTYXUeNU[PVSVPVPSUOVV[TTKV\X]YWHLNQQRX[Z\S]UUSJWU^[QZRSZSONURVTSWVNTYOUPPPVYSTNRTWXTaMRZURXPUSS[RYVRT[VVdUUSOZRXVTUS^WSRTSOV]QQRSSMVVLUT[WHSWYZWO\YSPRP\MQPOXURX\S[PJMMYVXYWRWSTNI\VSTWOVQ\NTTR[XHOTQPQb]OO[QQU[USTWSYTZXXHQTSUVKUTVTMRV_X\WOPKUSVNVY[aOM`UQ[LM[ZQRRMPTSYUJSPUXVKQTVS[LRXSZNZU^WUNJVQROINQO[T\V[STZY\\INQTLWTVOURVUQbNWWT\TMXNRNPPXRVMTILVKRJURWVSKWRZPNMKTMVKVTQSPETO\PT[VKPSPOTRXTSYHNUT_QOKXMOJYNZOQXSPUTOQTTRRNR\VZ_U]LYOWTPTYMQKQ`NUVMRPLSPIWQTSVQLZaSP^I^URSSYYcRMIPUQSS[VTLWUOZSUWVRNZSUNTUWVVUOPLTVQLLZTNZRPPKRUUNPWXNNSNMOZWLWXN[PUYZOLXUKRTTPQQYXXUSY[NXRLM\SSJORXPTJbNGYS^SLTTLHLQRLUWWSTTMPMSOQQNPWNWUQNSTWY\QVULONSKRNTT`LURPVTZUNZVNLPaM[JSZRMWWXYOQWO_NWXQXJXZPKSZKWHSR[NMFTRMWSMQTSUc\R\WRQVQhSLOPUPIQ`OWLLSXPPPULWUUSR^KXOSUOJTLNFSYXSPONQMWVKPQOWTNZ^SQSZNLPSXJQOfNORNBYOQWRTVVTQTN[UVQOTOQVPYQMXOR[JJZUO[YPOSTKOTUNPPRGR[[QVTcXQXXP\VPLRQNQRYTLMRY\^ULSTUOJZV]XPMRVPW\QXTXNMXUW[SW[UXNWZONVLLGNQ\RPSGLLHQ\QSUOQSZW\TP]TWMSYSYSRY]PQVPVYRY`WZJSR\YLRL\VZR[SQZOIPUJOYQPLdUOMTPXS\VWMZZXPVCRSGOQTKKQZWXLUQR]TTLWXSQRNQSXZZRWTLPcQ\TZbTHURMIU]SXN\SYTaUVKUHOOXV]\O\PRTNJU]UIXRRTUZFLTKZQSROLUM^YQTQVLdORONMNUILQ\XMMTaVSOUYPVINQXWPNUOTYaVX\[XWRQYSQXLRTWPLKNRTRVVXXOZTPVLNJL`SRKTZ[WMRKTU\M[ZZTUOOYPS`RYROXMXMV]VRSTWPTL]bQLTXUSUQQPINUUNXXPURO[SSRLMOHOKSJUSQKTN[RUVYEXTRMPH\TTRKTXMPEYSRPSWHL_PPLbRQNXTT_TMPUIVW[PVMOPXS^S[TUUPSUYLPJTSLJSJOWMNPOSNUYPO[MJRM[NWWUT]N\QVRTVXPRIP_XVJVQ[ZRWWSSLQ]NXULPTVNZP]KWLM]UQR_RTXW\WVRNUZTLTYPVRVWSVNR]ITWWdLXaO\T`UVPYQRVOQTYZ_RYPS_NXYOWNM_^VVTRNPOU[NKZQY[QWSOMYTQWJOOPRTUMUYcUXMOANK]UNJWN[SQQPVLJXN`\TUOZRMYT]YXNNXNYWTMQQZUYSS[TPYVeSOUWRNXTKOLWTVMX][XIWTSMTUKPTXNSUU^WLNN^JRTWOT]SWOVURQWPRWXNMPULOMO^XMORIHMTYWUUSPWX[TMVUOWNb]ZSHaNWUYQNK\TS[WTPSKZPLJ[LTLXFPRRTJRTSLTYRUXSTTXVFSQ[RH]SQZHROWR^ZYHOYVUQRUSLX^YQ[WRJQRQ\QOKTVYPJKXVQTNTLLZU^\QS[PLPTRPLK[UVZWSRTOPM[XRJZE^XPCV_VLRYSRUSTNNRQ\LLXSIWU]VYNDYTSVFN^bVTDMXTV]UJUHOYNZVKTTgWWONTWV^KUWLVZZY\ZWWVQQRLVZZMTQYK\PS\MTPP\[VMNNVTQ\OFZR[RVcZTTVSOVUKWO]SYLWUQSQPKYPUVMN\ZLYXTPVTOXQMNMMWRTS^ISODQUTNFPTUVYYYQXZQRSIR[YVNUXLTOU^TPWK]XPVQOSOTWTXLN_UKR[QXOTZQ^ZUMRTUUVSUN[RYVUUWYLUXUQHYSLQXPNTOVRSTY^ZOWZKSSSMaUITUSORQURPQUSRUOVWPUQWXNVTRQWWWWZLVQPM[ZZP]TSYNOSRWS[VQTWPTPOXWXXMSSSOWVI[TQVTUUTXNJVWVLX^QTOQXUKRYSJTORUSWRUXQTPRXMY\SOS[TTRMQVUSKRZYXQWSP_ZOOWPNQ]XVQUVVbTQMWY`LRVYVOVZRTUSRLWSWWb]TLgPQTQQQWYLTVMQU[]XRMQTNTUNRVUTSWPUMQXPMWRVWUQYW\VLSSPWTVWOTWSPXWTNPILNaUUPUTOVZ_\PTTIMTVQRRPTQWXNS^QUYNTLTVSJNUJOTSYROKOUKWO`TZUPMRTTYR]QRXRPVSQUYWQVPNSWTVYUMPROSYNY[VXWTVTPRSYXNONUI[TMVYVTIQROU[VRYY~eeVcXfa]W^XWWX\cXZTRRd]b]XbY`aQRXTn[X\nhaUs\T[ZWkT=_VZ\^bRTeSVX[^\YYZSaV^OfUXcVa]X]^VTV`[W_hWPZYliV|S[a`\]TQcbcZbcYWSQ]\io]Wj[]ZWWYdWUSXYb[[_W`a`bTYTUb_XYRyfrYZ]XR^VVRF^Xp_[POWXhRaVXXlcYZXTW^V^D^WlWjVVL]TZUVWR[UVZ``eZYeVXZZW_SV]_g]YUYS^eo^zbp^VcUYY_SYa\W\\X\t]\[[SV[QdXTYfTb\eWWhLXTfWZRXT\VTZXUV\SYUVZZO\WTVMW]^QN]Zr\j]ZWXSVUX\lXXQXTVU`VK^]XVVX[]S\bWS[UX[bXVXW][gU]S]b`YPZZUT`SVPW^PL[SXKNTUOHLVT\O^QOa\dPIVVQR>YULUTULM]JGXNCNQMV\FURUKX^XU[PXVPLQZSQ]\RVR\[ZJPVYSPUZRQOH[GNWVPSV[SP\[URDOPO_[VRPN`TLVUU_UQQPMWWRWUVJOVRMQNPQZ\MQMZOQYRSTWURSeWRPSMF^RVOPYPZLFX_\TVVSNMTSSSXTPOSYTNRQNTGTJJYPP[QPTL^ULQYPTVQTPOYWTNM]JQORSSVOVQRZLT\IJRMHQPUXWPLXSHPNXXYRWRMWSPTPNTPUTMOcRPYRNOUWUSUQWLVKNVJ^RTdRYPRQOdL^KNNWHGS_aRUQRTTQQ\KKMMQZVaNTQJSQRWPUPSITTUUX^\IQQPMVTZRPPZTULRYW`UV]bQ\UXZQJVVJSSG[a[UTWOYX[PSMU[WPMPObNRQSNTQnOURXTRTU[NUXRZVPTMPTVQ^RMTONSST]RTSWV\VVSURUUMT_SVXNT\^RWXOWQSVWQPVRHaTR_QXSR\SRWSaHZQPT[VR[TK_VOVLSPSIZQWRLQ\ORYPPZTURPQXZNUNPW[SOMTUbQ\O^UNRWRQNPXVYM\Y\WQRSL[YJSNZYQT]RSPRRSPWVV]QUT[WTRVbUONTTRX[QPWROLTHRTW`\VOORNKR[PNO\KO`U^QHMQLGQVU\UXPVUWLVVKXVLOARRYUXP^MWO^XTQKPS[]JSPRW\SRRR[SXTKU]YQR]\SRP^NSUZWUPPZPWT^O\P\NONUQLP^PZXOZLSZSUKR`MYPX`VUYF[YTRPWP^TSPaSVZUXYLSXPVYTL\UYMaSQXJ\TVWMNbPMGWSSI]gPY_KQ\WX\RaNUPKU[SZRH[G`JjVSWUWKU_ZPQUOLSVSS]LQ]W[X[USXMXZTWXYTOLMRRWIVQWHRaOYPJ]WNOb`SL\TLROMFXZTVGLUYTQMe]UWUWXYPR^XUZbQQFTRWTXTRRVPgWTNJZUUTRQTQSVVIT[PM[RRLWVTZTXdSZQOHRRTHTJ]PPPUQQNZQIXOSeKWT\QLURP^KWXOQZVY[QQTQXTHNTTLUPcSgOXcTVIXQ_`OQLOTXSYOMVGU]\R_fKLROe`\NiZTYQ_][NbSWTJQPYOVVRKTSYUNVW]WOSQNQOHRcYOLOOOYPSR^_aPS`VTQ]]USORX\MPVPXQZWTNWKMR_LXWUXRUNNVZVVQUYRPQOPW^MVPRYPVWUSZQLXNdRSXLPVNLPSNXRO\OUVQPXNVTQULQQLPQYNTMPRPZOUZQXSNPRYJYQOQX`NRVWUSPRPPSWL]YV\UT]SSPSUJL]SUSOKRRLSTVTVUTOOSPJYXVJZYZGXTRXTTZSTYNRaSdWTNXSTRPQRL[RSOTRNRXOR_NUMSYOXVLY[NbXWWU\PVPTM]VNTSSNSZL[^SN]VQVP_TH]T\HRUXSSOPTYZSLQRSUUSROVSTYO[LKZ[VSZQVRMTVN]ZVVQTYOTMXRWNGQPTU^`PLdSPMQRTYRYTRXY]VJRU\PWRTJSWVOSRYKUWJfQ_SO[UVXTKOVSV[SSVVX[RVPeVLRSXLQRIZ\YTUTONVMSONSSOVOZQQK^WQLLQYNXPSRHVTUY]VTUWSbSMXPXOW\VR[S\UTTXSGPTNQRRXTMOYORPM[QVIVSLMRQYXKTLSNMRUTZPU\^VPTJ[L\P\YQTLRMNTYQOSLXWPSIPTZXO]PUQUSUV\TR\UPEJNO\XQ]MZUVJW]UNTRQSORTQaPRQUKKQ[MdIPZRUTNNPYSWTUdRVWYXSLWNUQSMQLRPZMNM[ZPOUUcLSQROWOGSKQKOQOUSYTSNPYPOTTRWSVPVVTTQSJTOXPQWRTXY\QQUYVNV]NXTTSPWR_WNXPWRWVSXRZ\TTWNYTSVR[RQQ]PYRQQWKWYZS^SSU[WQTV^WXZbOVUVRTWNSPM`T[PSRLOcgMRROMQSNU[YWSaVO^TLV[ZQUSRRQOOM\VQWKGLLTSQ[QYXRTUWTLfIWPTSNTTS\SVKS^SLNQW[U_WQYRMPTRV\OKNWSW\VZRQRMTKYV[UWZTZNMILLPYRWTRVSLLOTZQV_P\WYXSXNRNaIPJKKPPT\VUPLSPPSPH\PSPHWQORTRWVRcNNSUP\[XO]XRQU^KWNOXKXQUZSWQPPU]MT\_V\[JSVWIPZPYZULSXXMPUVUYMZOOWPVWTTRWOOWZUaXXSRWZRTQNUWYSYZRVS\IL]TM_UUV_WXUXYRKMQIOXGN[[UTNTTZXP\RRYXLRUQLaRQSN_[`JNOSG\XONOW]WXTURJXXW^YVPS\HWQZHPUSZRJTSOQRMXZZSTZWSXMJVOXZLMIJNYMUKTXWXVZX[YVS[K]OHQYQ_X^R`IZRSVVSTIVMPP[OVZOWQPbR^QUURYOPCaLOVSXZVYWWYHMYT\`RPTRVZKEMVKO^ZSOOVCUSTDWPIPRQcQNTOHTPTSVYMJUZLRX[LOKHWUOUYG[LTVSS_JJNMOYZTHSQTWRKXRQVLPOKSVWRQGXSRTZWKVPWZN[NOTQLN]TNVVRQHUO^RZQDRWQKMN^KTFTMNLQR[LQWMZTUXHZJS_QWWLW[NNQMHXUOOQOOMKQQUSOSOJTRLOLPTQTWTGTKSYPURRRTUQ]SLNVL^\RV[YSNZSXJPROSOXJSWQRPVPTXRTO]cWS_QMYLRP[OQTZQJPWXJRO]TXXPLNSOSXRUX]ROKNPLYQKKWKLTOIYMWVSSPTS\WTYX\^OT]OUVROONRTS[XWWLOWML]USTRVROUNRKIPZWNSPP^MKR_YZ]QJZVO[P]VQd[dW]QWP`NaWUXPXVUbVMRMOPYSgQWSaSEQWYPUNQQMLV_OMVPKMOaNUNRQQXQOYVNPXYTQXSULSZQMS[[QZ\K\SOYPmdWV\VOPT_XWPSY_a]NMG^FQ]SNO\]YORN_WJM_SQTXXQZTTPWMVRXRWDSVYWUTS[VNSN]TQOMZQMSWYVP_aEVQWbQUQRYSRLYMQ[ZRJbRFPPVOOZWSRMRQVOG_VLOUTQa\RONU\RJT_OSYOLNZPTMS\PNQSWENOUSZ_`VHQYQQSVUT`LNZKQTXO][HOVVQSJUTUYOMPMVLXOIYSSXSR^TRaXUUTPTRXXMXLXUVTSQ[WTU\RRRSRMZZ^QLTUMRQMQOKVMSVRRMVS[RQR_KTZVSKKRVQWPVPVUMUMJSVNJQOYYOQRJRZTGYTWNTRTLXHKYNVVYJVTYURV^XVSVNWSQTOOOPZXRVNRRLQRR\NTMVTPTOR[JNLGMWPSRQRPWOLTMUTSLPXNOVQ[OTIZ\OVLXSQXVTQMRQXVOWS]URZMVRXQRTSWLUYUTQNVRQNQQNVLMORRQLQL@ZVUPRROW\FMSP\JHMMJYUTR\]JJPSKNLFQSRTUWRN[T]SUVTWUWKUXTTSPQQJURSQVbOUBVTISYSYM]L]Z[MMLRNXOOURVNbXVQQWJNTZRVPJSZYTVXOR]LZWRIVNUP]WQNOPVNSKLP]OVX[SVMRSUTMSWMWOXTL^_RSSSRLURVO_WQVSORTWQQ[KZSTOXWWNZOERSfUVVUPMP[WPVX[UW[NVNHQYVQ^N[OUQXPP[YJRMW]VdWJQSVfUWW\O[UPM[MZVXSS[WYPTWRPQWQjXMOVPRYUNXRRNVQRR`LLUHOVQSRUURS\NMTUWYWURVeP\YQOOVE`b]KOXT[Rdf`QQTTMPSRSOO\PWLXNQMRQSSVSXO[S[RMNRNRYR`RU[O[UORUTTPRN[ZV[OVQLP`QRQSQTZPUSVRSLH^\[WQXORTMSSVKVNa[TMUWSTYJQK`WPZMJTTPX[QPOMXVLcNY]SONZQRSMNNQSURYd[G^TLTNWYZWJ\[bYPZMUSMXMPV[YTPTWTZW[cUMPNQM]TXM^VTMOWRSQF\WRXbMSPORZUeL[UMXZTNSIWYSRPORHM[O]OQJ]MZVPNO\YTONQPRTSRQPWRMLPXRLRRRUKNTVXUW^OIQ]WXWd_]SUTbXTLMXZR][SU[NPUQXSXVZNVROUHN^YNW[WLVNU\[QQYYUXaLSOUYZ]MM]UXTVQVWRXWQROJOSXVXMYJWQNLIOLQJ[RTNMVRSMNTYURLKPXOf_MVYTQYQ_ZWXXNSLRRHTTWMZOQUJSRY\XSUU_OR\VZ[MQQQYLSZRNSTFSZTYZNZUPLYTSVd\YOSOZPNTTU`bYT^XWTOQYVNRQT[WVWOZMRLN]Z[LVYVTLS]OFR[WNVOcPY\SOOKYOYZRZSWS[SCILWXQUVZSVXNSTQWMTYMSQYWVNT^LPRXT[SRYVURXS^P\PZYQPXKRUQWTURPNSJLVYOMOUWOVVTJQRZVSQRRJPQSRVRSYTQ_YRUL[PSQPhXLHSTYWY_I\Xl_\LI[[SXZN[T`YQPdTOS\]WSQWRLUOZWTZJX\UW`\PZSVY\LYR^O]SOZOV\YMYO_SVYTGcRP_QYU_R\`TOOQYNTU^^bRRJIXPVXNZSRJVZU]MSXOZQYNJUPS\ROWUMYZWNUXQ\LJPTNOWOWNPbQRWQ[YiXQVSZRTVRSUXWVPRTK_VYUNSVO^X\U_KUVNMYVYWXOTOMWSVWWL]QZQVXP]\NOPMPSFWYRYVTV_VS^TSTUZX[UNV^[ZKIP_TMaRQI`U_\Z[QRRY_QUPXUPURQTW[WOSNYTW[W^VII[UI]MVWZNOHWR^RNQRSUJKXNMXKNPQNOPQ[VT_XTVTTLTKGMWVVW[OPNRYW[[MM`b_ZQTZKMTOVWLUSXVX_QKYFOQV\YQZOXNT\XWUTUSSVR\aTTNQQZVWYVZ\VS]MPP^LXSSRPQQZLOUXWNQNSILNPSRT[QO\YYQFJVNVLR]YKPNUZ\VYU[XTRTYTUOXLJPWTSYQ_[ZNTKTeVWUJMKTWVVXSQPZP^`EP[XNQYOWO]MaS^TTXRPLRPU[WOUOQXVYUNQNGVZU]VWPTP`POOYQXPNUZSPNRSUUUWWQOUJNSUTOVSJ]WNSQbPVRXYS[]RPQHU[QVXWYUN[SOXX[UWMQVXWRKRRRRUORYO]WPQPSRG`ISQQRZMTQPRXS`X[QTZNPR\CVXMVQ^UQ\XUKWRkWUSRQUQSWNVTVSOV[VP[[UWUWRMWRRZKURZT\LRP]QIPD\VLRZYSPNM\WNTSPKNV\VOQNWOWNUVMRPNOONSZUVWVXRTQSTOLZXS_MKSYSOWWUR[LV_RUXWTSVTRQUNTSTTUMWY`PSQO[ZVRRQSQPUP\TP[P^QLNPU[QNRSVVXYO^[YN\VYYOQIXOOZN\PTVYTLaZT\YTPNYQQWP[]WPWRZfVVTPP\]ZV]SWWQQQ[SKYMVOVgQMYaQQZKVVbQ]S[S\TOUWUQWKMVSP[OTQSXSNRRVUPVUU[VQQPcURSPZM`YTUOW_VYSZLNT_RWJOQbUQRQTXWWQRN[JSSMW[MUZPTVVOMSYSGZRPRRZUTYXYX[TORfOdSMMO^ULcVQRQ]VV[FXLMPRVZVQRW\TMXZSY`_[TTX^YRKQWWVW`NVWPIPTVKPTKTZTNTJOMRTSQQPSPJVUZaQWVXUOOXLUXMXPbXPL\UW[JPNJTSNQPKORRbNXWRQROVUT`UUQRWVKRR_RJ[RZR[eSPSHROTU^SRUZYOU[VMRYP]RWURWXRS[XUWKNJ]WQXQT[WR_cFTPMPFRRXOXZS[[^OVUQURgPRWRPW^XRPM[OTUUVQV[OZPTXVNXMOJUbSSPQYNTUQ[\ZPYNSNYQQYWZXV\VPRIXWRLSVWVMQeXVJVOPQTZKXV\WTPX[MTORJN_TR]Q^RQUQXXXWQQTLTPVPTLOQ]ZcRMXVTKMX_OWSUZQTWPVS\UV^TJYTO[RVZYRVPJ\YVLM[XPWQQZNIQP_TO[QTPW[OLNXNUPZVKOTVJKWQJ`NNTLOL\OXONUSUOARRXOMTQVVPUYMRTPSPMYITaU]ZZP^dQLXGQJNQTUS]MVWN^OSVYNSMaPQ]RXPPO\OPCJVM^IVQa\NI^FFSUPRcYP\WTSWV_VI\WQNRdORZXbTiV_PVRNfLHVYNSNTLQZVOXJVKXRNPSeZTP][RJISZL`P`PPQdTP[VRTQQS^U^RSNTF]ZSWOTMHLR^EUIWJRJTTSRUYRPQOOOSVZVQQZSNVITTNWNOK[ZRLQWRYNOX[SXSUNZTLKVOSVWP^ITTQHUQNVOVWVRPGJNRROSOSVQMUYOSUKXUKRX]L]UO_PMT[NdSYXWSSR]XRQMSMOPYSSURSHU^TKYSJQ]SYXRMTPTUSWTZQTLYYYULSLYRUSOLVRWVVYTTSPTIUVQFYSWV\LPQSHVPSSPXWZWNVST^XWSTbPYPS]NTUWKTW_MYVSMQTUTPHXPQi\]UVTVKWPUMSRM[MKQXTaYMQXUWR^OYVURNZUPTS]a\YO\IaLSRPVRRJQ\gLMI`QXTHWYQPUQOKYOWBSTSPNLPORUSQJTOTIXPXUV]LTSNPXSF[KR\RVPTUORJTLYWM\UQPTTPVSQQOWKFQRUP][QIJ[QQOWUXSURRRSPXYOXPTVT_QQRWYRVOUVQWWZWR^[WOSVUXNXUO\OOS\TSMTLMLQQSXOQMVNY`MZ]K_NTaRT`YQQVS\YKXNPYKPU[LTTZJOOVYQVLKY`POV\^XMYUWTUWSVPXZYT\SQPWPUPUQGTQXHRROBVQNRQURLLRYNZVRVPSUVTUQRNN[SLKWHOIMTEUNPVJYJRYcTOVWSKNXSQNYOUWLKJQPSSVQYSXM]RQSGRPTGPSR_PSJOEQVWVNWBUM\URTTRVY^SOUOLWWYSTXOORLVVQ`[ZRIMMiINQZVMX[WNUU\LWTTPUVVHRLNVGNUZNKNcU]_RLWV[NJPEYSQD[ROTNNNVRLGPRKUQM\TKQ\TVVZVTMVTRONOSTOXNTJOSRTH[NTD][N]\OMW[WRYMXY[PSKTVTVWQNUXTVTWQXSMTUTXURRVMPeOMLPPWWJISOQNWRTSSTWTUVUNOSTWOYNUZ`KQYR^OPOUQQQN_PMYFSP`OZQPOQUTOTNR^PT\_ZRXTSSbT[YMLK^U[TSWKVU\OU^RTUSIFNVMW[MLOZYVVQJRXTS^JMUYZTVVW`RWXTVOS]XKNQRZ[YSMLVRMPVSWUYNZZUQWRNZ\QPNNPLXSG]QQVQP]RQKP\NMLO[MNTHUZIOZRZ]VX[QTQMbMR^QPX\]LITXSVRSCUVTLXX[ZXXSNTVWTWTNBVPMWUOKN[R[_RUZSRPWVSS^W][XNJLRTVS^NTTU^PSNM[TXWWNJXORZeXNSSRbFMTPLVUP]M]SZOWTRTJZXGRUPUTONbVSKTQP]_QRNQOQWLQPVXOVRSQNKVVVQYSe\MNOPOXVWIESWd[ZNVROZUN]U[STI[RHKUUNVWL\Z]M\YVPPQR\PJV\PLUJKMXL^XRYZKTPI]a_UWUPQYSPJRR[TOQTLUEVMNMV]SYNVTbM^JN^X\TQRJOSbMMGQUTTJOM[GRS^YOR[ZXXQMUPSNUOSPNUMPULV]RMVHJQQOXXNMXV@`QPOKNKUP[MTSJQTN\OO\^LSOLSMTSMVQVRQJTWXKCTOMTSPHPKTPOIP]OVW^PW_SZYRJVVKQJLNTNX]PSTALTNNIU[KKUSHMhMRPNMUKNUP\VLTPZZPQYKRMSNVMPBKMNRMQUJXMWNNOJXIRNRNVTRNZRZMKVMYYMQPN]LQSLYKVU\WQgSXSWNGPXW[RUMWWSab[OTPYVYKORQRMUTUNLJQN`KTOTRZRTQONM[NHXYTWMSIYaSZM^PX\WHPUVHRTHORLN]Q[UMBZ^NRLWPVRFTRNLSWYQX\\PZ[XUS]YZTWOZ`IQSTPURRX]bSXNVML]RSOYl^RRNNaYS]]d]WVaS\bSPV[URW\TMOPQTYcTSUVX[TTZTWQZ\WTM_WONSahZP[P\URfOWWQ\OQSWPX[OUQYVST_WSWeS_QPPZR]^ZIWX^`fXWXMQ_[UOWbaaT]TWUWOa[ORaY[S[NaZPWTJ[Ye_SULQS]VWTXROMPeMXUTUO\QVRTXUOYUeONYQV`]SXYXTL^TLMZR]Y[PaSgjY[TV`RPYUaWSiSYWM^cVPUYTdHmRR^RaU^^dX`QYbQbSTVZYjN^WZRQO[W\WTOZU]K\TUjOZPLUkRORNVWXVKWSWTSORYQO_Z`[__WbMLN\XP]WbRR]STQYOKOXgMU^a\W\NO]WPLSTVUVRSDPVG[VUROVS][OY[OaTOYVVNTRMNM\W`XPMIVWKTXURPORYYTXQ_VVWYVYQXXVLMNPMQS]UP_LZSWOXPUWERSSQa_PJUNRZQMOYMcNPLRTSTTQ`XTJ`]YHWWPTQJLYKYVXLLLLP[WWWGQYU\WKVPPPIRMUVJ^NQO[Y\NSZNWXTLTUTU\TSQZWUTTVQSZYRPSQPMKuUVY_LWXUURVPUMQWWOWXVOPOTTSTOUUQVNMQNOXSJMOWWVWRTMTSOM]YQUPVQPSV^VMJTJUUUW[MV\VYNYSOPVWRR[SOWST[OSKXjPTRLTLhUWMJKSTZRQWVSXVWUY\PXWRYVQWVOVYQbPOPVQQMKZWTJRKNKQ[QYVWVPPOSTLOXRKTUTVUJNLUNWiQYVaLPST\NUNVRLKBWZTKObIUXRWPQ\NeWUJO^RG^XVTWMLPU^YWVWSMMOZSKUP[UKWSTNRWU`PWT_LY`UQLVGVUJPSY^P]V\PVONVAZWQPQZSLYOOVTR]LSLRUTPPaWJSSXNbcZ\NXPQTUYRVSWPTTU\RJIJUU[WUUOSRMWROTWPTMPRgWLdZTTTRUVOU[HHSIOTRRNOSSRSSVQVR^RSJLNQaPTXPX[TYPJOQPNRRQQNRTQMUVRROSNVQWMKS[IOLRSPXRQQXXSNY[SPQVPW[\UOYUOTUXVQ]ZQRUN^UVXVRZSNObNUNJWUT\SPFVPUUWWSRRQTLSTTPTNV]YUQQNWPO]Q[O[^WW\PX^TVXWTT[NRWKPSZRQUQN[JNZW]WUJRRTY`PVTXUT`LJSUSVNXWWTQSYLPZMTUSRY]VNIQSNM[MZVMVRVWJTU]WVS\IWRPQQOUX\QSNWONPQKMWTRO]TWOWPRNS^QL[VKTSJOVVQVWRQYQRWXQPSWP]R^ROXYVX^QORRSL[QDUU[STUOITR[OIWYZWWRWPQWZTYNRPHQKTWNQ^\YO\QiOL]YUWSXLOWUYYXRWNYVZYYOOUZ]WZX_WRR^Y^XWX^[UZULVUZUYOZN\LSO\MZMMRhHMXURUWUQXUNXTUPOWQWP^MWZV`_QQRPQPWSMMO[TTWUSOVMTNSR\JX]_MRTNQXQNTRQ\N]OSSYUKUZ]SRT[UZUYSSLOeNYO^JZQgJMNYVWWZJMYVPIS^QTR^SO^U]UjFVRcSSQMeKLPKUNRRYMT[WKRTOHPSZSPONOZSPQUZ]PR^PLWQPJLSUUTOXPIRLPLIRXQQWTZSRSSLOTFKWQcTPRNPOP_MUL_]\XKTWWNQTZS]POZWRPIQMZOONXVER]aOQXU^UMDNWMTRJSMXMNOYRWMXPONT_XRRR[Z[YNUSPVWPRUJSRUVZJSSAVUI^RQFLVOMOQIPPHIYW]WZTTTP]`WMRURWOOWZMJLQPNJNRWSWXRYRJVNPPWLRETNOZPMUbSSRR_LOLRT`TSERON[QSGX^\TQXLUSITUSJLM[JZOPd[aSWVRVTVVTI_OLO[PRONQLSL[NNTSRT]UW^K_QNQVUXRMSaOMWZVVQPNOOSVUJTOPQfKL]VTU]O\L]NYXLLVYPULLRLU[K\LOWbVUe\YUYVKHZU[RZYZTQOMUMVVPL\SVYSXRM[Y\QM[WS``WTMW^S]ZYULUQW`RW[RUORVNQXOPVPPRUXROON]LP[^STWYYIWTPVXZZTgS]WWUR]\U]QUUVMOOT[^JWWVUQVRNX_WZWKO\HVZVaeSScTYXPNTSV[OWXLYRQaXPQNO_\\WISTZPRWQSZJSUSURVNNPX`[WRNN[QgIURVTXLQOOPU[XNYN_VSUVQ`M\UTORON[]`OWZNcTKRWRSRS]RWQYJUPSZXLOTSWVSZ[TXWWSRVWQRP\PSSTY]PZQW[PVSdRXSMTSQZ_d]RGPWQZQPTVRT_RR_YNMURNRVVRULUS]MZQR\PR\LP^QPYWWNVIKURMRWQSHc_JRNRWMIGQ\YWPV[LRNRMRNOXGZZ]MOWQUQXN[SUPSYWQITVQTPUNSQVVRQXU\MYUYXNSNRQUXRMKMTTS[RUMQSQ]S[XW\\LHYSXZSQSO\U]TaRQRb_URSWPSOQWYPQYZ`OSYUVRUPMKVbWXZSIUQJcTSMNVKY]TOQfWYOYSRRPUOTZQUVY\[TXXO[SP\mPJWT_WSVUJVTPWSMPZQ]Z[[YdVNRIP\QPUMSYSUeOR^MJSZYUNTWZSSX[[XRWXVmTUPR`TSZNTZVXOTJT_HSKZOGVZJQSSTSVOXUTW_US_NQVWNSW[YQMVV[VNcQRON^QRULTYSW\^RZWSSU^\V[STRWYX]XZ]QQO]QUENVYT_XRXJVITN\ZVY[^IZWNSZYLSTONTF\XTRPQPQ][ReTXUWVPPL[QZ[W\RV]OQSOZ^URVYVWQTS\^XOR[UUMaXOUVY\[YRZORRhVXWZPYGUX]TXaVT^Q`_YTQZSJZTZYMQJVQYVZXaZbcU[RYOTNX`^ZWSJO]XVTSOYYbTILMQMbRXOPIPROUOUdV\WVVPO^VJXcWNRbVXPTZgTMTHUc`W[S]^U\\SPJNYWTSNSWSVZYQPTOTOPSWTfX\VcKZLGPTWL[L^XPWZSYTWWNXZROVK[\T\XP[VXaLWSXWOUSWaLPSZSNWVYOQTPU\ZU^RTTTZISQVONbUKdbXTXQLXXSTURX[UWYQ\_SYTWS]OTaWPQUTVSPKS[_O]iWTZSVUUZRTRYVXRZ[^[PYLNYP]TQ_SPaQTV_WHVRLVMSWQMGSTO`NU\NUXVNXNJKYJSQPZ`VZLTYXYRLTRVZTWVWRKSTUV^QQV^U\UOLVRMLOP_Z]WXNSYMNbRMTOSNY\JTPVMUUSTY_OR[PSRSURQUPYVPSXTQVUOQT^VTSPWXXTTXYYOLUSTaZVZIZQQ_X\VWKZ_HVUSUKS\IQUPMZZX^STTQSVSN_MOKVSUF\WSNWWjQTZSLRHUVURMLZST`ROSVR\ZL`VMLWSSSWRTVXOLSRRQWMJRNOV`MUPQULZNI_WVQUPZSXVSQLQQRT^TPW[U]VWSYUU[NP[VYQTTaZMOMS][QaOOYNWTP_KTRQWQSI[QSUP[KIU_YXTKSVZUMRQUXUMURJTRNTXQ\UaUOTSbQWZFTROLZVSNLQPNVWLPKIUSQOPMVUJPLVENRTROTLONGMXMT*KVPDMWRKPPMOLLBPLSOOONZSKTVMVTUVJNOSRQQHTXMUQSSEQSMISPSUQOSLNGOJGQSLWQHUWNRFRRIMPHSIJ>MLOCQMFNOXPVSWTWVPWQQSW[NJGJQLGRQUKRPOUiNJWPTQTCMHQPQSTUMOPEKMQQ[NQOTCVOQ5NRQQUKVRPUSM\OONOOVXSMLS>JLQLWORQOSLRRKJTSNLGJPSJIOHQNVTSUNSSU^XP[LOHRTZVTKSUOTXVQPRTOQPRXUVSTQNVLTXPUTMXUYUQKMJL_JNVQPRQQIPM[SWRYTNMNONTQOROLFPRMQQWXMSEOQPQLLOTSO_RWNLRWPNSSXIKPOPNERMTXYR[POQNTLJSYYYYRJNV]]Y_]ZPVOPIOKQYXJLXMSKZLL^UYTcZ[MPWOSUPR\WUW[H]TOVZIOLOUQZX[NKRXUMSUPKTQPUNWTW\\ENZMTPNSNRY_WR^ZTObYNFdNWUSSVR^TORK_ZZKWKFURSUMHXVPQPQSMOMONQYET^YSQXJYN_WQOTVPXRCMQMTU]WVSYVPPVRPXPUTS^XQPV]JYTMQTXINHQUNXhSRXFORYYRZNUJaXS[KVSKPWSQT]dTO\TOPRWWRYQJVTM]MQSSVPRNSUSQUSRQ^SVQS[Q]ZRLRR`UQQVWSTPXNTJYWSOOSGVLXG[OW]UVMWUNTZ[NSR`UUVRVWP]VUdRV_Y^RICXSUTTNYY[[YVHNUMMWWPQaSYW_O_ZTRcXSMOOUSMV^WUNPPLTZSOMMZN\WLZQVTXVWTV]RNOZSYYWONMQIO]ZNYRWLQS_UVSLUVSSJ_QP^W\[U]MJPQNPRVPQNSVTbY\RMUQS`JM`PKL@NHLZUQVWSR^ZG\OTV`S[Q_NQNQZZJ]SRNX[RVWJQaPQYN[TZ[VEU]N[PTRUHK[RYTPVUYOUQP[TSKR]T]_RK^XaWYQTQCVLXW^ZQVTRUH[ZS[T]MR`aUPSLQ[KYPXbNJKJYXUTNWSLVRPRU[S_HQMKVeQUWKRQJVP\U`VONXYV`SITQMWPP_ZTRUWSOMReJSUYTNXaYZUUHTH^P^WPSM[VJRWPRUQaTUP\VX]SOZU^OSWTRR[U`NO]SWNRaQRPVVO`fTN]QV\L]UXSSPRYJV]P^LKYOYTPR\XTWMPFKIVVUhXRYWRS[OUPTR\HUTK[PUXPKQENRRTVUYQWO_ZLVWLMUOOQ_IYPIU\JROUKWRPRNRNOPSNPZWHXKQVWVNUP_VKQLUWSNURSUJMSOTRQYbI^VUNEYeTWYSOVX[PXfXLU\ZbUSXHHWXYLSXYV[TVMPROO[NLWQTbSO[RWVaXS\OPPURUMOVWOUSY[SOMR\PRSTTTRPQUTVWOWPYWYTPLZT\\W[TNP]JQY[[VSQWST[P\IQYRQJ^JUVVKTXNXNRROPR\PXYJXXMNPURQEPWSX[UYRSMSVSZ[UJ\LLVMERNRSL[ULLYUPZWHTPVNSQROJPXXPKW]PXQNNSSSaOWL[PLUUQTSbTUROZXWKQTVO]TY\RNQM^OSPZSTQOSJPVXXQKZQD_L[TWIWTT^ORNRQUUYTTWHUOVWPNVQQUTSUKNRYNdTYLMVWUONVPNO`NbSQMKYRJKTURWSWPRYMRTMQLYMSY]]U[[MLUUSOURLQU[SQVWOP]NTLKL@TONXYPQZSKPU\\SQWSO^PPUTPVZMJTGQOWVPMQKKURQQOSQVZNWP^NUQMWWSVMR[VUOOVUYTUHLMOUYQQYXTQOLSQMVRYTSXQWRZKJNLVhZQLTKOWQYSQSPO\XXUSSXV[]VUJYIUPXVQKXURUW]VZPPHNU\MZVQSZPTTMLQRU[RM_Y]TTPOSXT\\YUTNXTNQ`LTMQPUNOQZVXSQOEYNVQXRT_QHLR`RN^dUHQZLTORLaXKQZT^ZPQPNJXLUYNQ[SY[LVO\OVS\VST\PMZWSPTW\QRMOQSXWTMRW[TFIMKWLXTRX`VKMWOVLOQWNOZLTK]ZYRYJRSTSYTKKXPNQPVWOhTRTLJQXV_LRHUNPWKV`aOYO\VHQRNM[OXV[VUSWOcUSSNWZOLS\WWT\GHX\YSOTMKQ]QZOLNNNWPVGQTMOSRITPVZWTNRUMFUVYMMLIS[VVRPQcKPMYLIWfTKSZHOQNQSV]\LOLMLWTLQVVSNVWYQN[XPN^MdOSR[QXTTS^ITWWQ\TP[\WYYUdXRZTXVRGS^UOMPRSXLQRRVTANXUOQPHVMMPOJRNNK]]TUWSONQODS[USU[LKTS\TRRTQWPTTJTRJYPKTUQYSLLJXRUTPLQ[KNMZPSYRZSUVY[cTNRSTIRRRF`LPSMMVUNO^bRZVO_\TZQNUMMOWUUUU\[XVTQNTTKUVXTUUPOUTRQYTTVQNRVMXVIMVbV_T^RNPSVNFRQURV]NaTVISScLVWUKSW^]PTYWNMOJUIRTNUYUNSQMVPOI[NUUQVUcNJTNOb\R]SN^USYNLXZ_LOJXWZXWWSWKLL\XWQRSNJKXWVOOQY\M\NT\UQ[M[TPUhW\VY\YT\MRWITUP^WSXOZZcWNPKX_ZYVXUg]]^OjXa[LQTIRZTUUQOOXVeTMQQ`XQ]SUQ_XSMUVRR^YSYUKg_SPXUWQ_^\PNY]WTLIPO[SUYTRYLXPPPTNSVWQ_SNMWUYWaWOHV[PTX[bO]KTR[VV[XMPRVXVYOWV]XMNX^^[PZRH\RYONQZZTVXM[VTVUUNTPZJTKRNZU]HUMVFJPRKVGVXSLZSNYZ[NPOTPaYHQLRR^JPQKZVZOR^YZSVQWTK]NWXTYYY]UZTXRaTWU\RWOUQRWVXUT_ZTJYRRQTITSVZaWPVXSLXTVW]ZRUUXPFNTROPQVRT`STNRUNPUUXNZLWMPMYWUHXR_VWUKNfXM[bJYZVUKUNTIYXNSYLTWVQSNNN[Q]IJVVTPUXMWTaMONVcNUNQ[cTTF]WLXURNPSRVSKaXMQRP\\NZKP\WSHRYYNPTSQM^OKYLUQRVHVQP\RZYTZLQP\RLSQTQMSPRTRMRXSQUYMQWSSaOVXIS\RWNXTG]UO\UMEZOWPPKURZSLWSbJRPUMNRUTHQRMOKPbVYS_Z^TWK\UMUVT_N]NLESOP\TWPUQT[QZZTRLO^WTMQQOMVbUNcXZSZa]U`TOPVXJOJHRYPcVRPRYY\SLZFXYYNPSX_SWY[ZSUUY`PUUMYJV[HLMWNPVPPRXYRN[UU^Q]SYRX\OW_VUaO\UjHJRKLU]RQVb_UWP[NWaWVHOZSQMSSPWQYUQLZUYYX_QNRQSXZOW[RVVSaZQRSU_NHSWOTUQSRZTUZRGIXZRSYi[XMWYO^[L_NX`UKXPRZRJR[XS^MWWOPPPRURWIWZMRSZ`^YQMOU\R^TTNQRYN\PQTZULVRNRYQL]SYRUTU_UUI\X\ZVYR[`U\QPZTVYQ[KM]WVTNNWT_JQ[NPXS^WYVQNRRL[TWVW\PT\SWRTXPVX^RM\YTPNTOMORTRJN^UhQPOTXURVW]TNVDYOWJZMLTJ`[OGTTVS\UHSTRZYY_USOQXVLSYUV]WLO^LIXTEXZNQNWOKPUIUX[PVZOSSRIQZORTM]RS\SNQMLSMTOSMIXOMQVYUVYRMOKWINSOZNSWWOWOQSSUQPO\YIMU]JSLTNTIUWMR[R\JVM[VKTTOZOZNTTPTJ^PMTF`VPWTQRMV`TJYUUTW\WPZYJ^ZPSS[YUSTI`RTQGX]GT[^TVPQV[SNRLQ[Q[SJVW[R`V[LQ]O_\MbO`QSHGNOUN`NQTI[T]WUSYTSLSSMNJLLS]SIUML\JM\]WYNRYMQTVRNcDGLNWT\TU^V[XPWQ\XXJO]QZETN_ROLNVTJMQYMHQSJZKRXQSS]L\XRVJVRO]SWORUVOK[Q]XaPOXMPW\YIQYTWUVXOIRUVUPTNcZWOPMXQUKWQRSSOMXOWVUUTPMNX[XQNMJSQYZRKGObNNVWURUYOPZW_ZPPSbSVQa\S\TjX]J_UTQLKRQOUTXZ\OJQ^QRUKNRXU^dSZSLPc^QX]]ZV`cY]RRNSPXOVOYYSRXKWSVQWcUFTX[RLMXT\ULUTYXRQYTLVOSZ\R_TSLUaXYbVWXYOPQS[[P_JNTOZKWOQVO_UVQ]_N\YUSRnRSPUNMQTHOTWSVU]RTUdYQM[OUXWQOSUUPU`XMSSPGZNTW[[\QS[RhM`bQRNXWaLKL^WFSRXLUSQZULQONUQPNQXOT\TNTWROX`FWS[\XOOXLGTNWKVWP`S[OTaIaQSWRZ\PZOYJSLZROVRTZYRPVVUTYQQIOQNURRQSUPVYaWL]UMY^R[XYYZ]XS[]YRUR_MZSPJUQYVSgQRP`QWYOTVLSS[UONTTWGY^IKVWNYTPURYWXYTRXYMKS]SY_RSUU]]YURV[VYSWXSNNRZZPTLQK^NNWNUIRV\YTmZOQWSMOYOTRNKR\H_V\NRXQRX]YU[QWWQQVOZb[`KHaMS^ZQYZTRWTY]YQO]\WOXXLTTMNZP^^]RNMKMJXYRSP\MYKKKQSWWWKXOTN^PSJRWSPS[RYU^Y[UPTXRSKOUSMWSQTR\TURSLRTNS\XU_USSXWWWXZXTbKJQOIUNRPRQ\OYOXUIKYSVYQP^MUVILTRKGFQVW\UOPVWOUO\TSOSYWYVSS[EQeWPORWUQTTL`POUPaPTWT[PNV^NFQVRFYROSWPTMPJVLSXGR[LPMPXMQZdcZSOSV_WVXVRSVQOXZ[SUSOK[URMSZXPKSPLITMSSNRUVK^RJPTVYRKMTBUPTVQLUVL]SSU\QD^_X^UVKP[UKUJR]\VXWWWQWPVQaRTZMITOUTPZXVUWYOSZWU_OMc^PSKMW[UYVQQZ[TXW_KRNSWYGQRPSQXYQSUMYML\TWQSTWXRIYVRLRNT]T`PV\LYQFUCQWGWQ[GRROQMNSKUHXQPS[ISYXPZT^TZQ`PI`VNVUPTO\QPQSQSSRRYPPWUOOSZRQUFVSMMVXR]GNSWY]PRYYSOSLPOVGVTQ\QVR]_MYOUQNKT[^OPVSTPP]O[TQXVcMORK]YUZYVXNUSVZUGMWXXYRVXZZaOVSUHR\UWZRQBMRJVV]YZ]QVMJVUWNMWTPVUPZHORVX\cWQ^HZIVRSYZXUVNMLKWQMIVS_SZTQNYNVRRPO^RUUVPZ[N\NSJMc]XUTaWUUJjKWZSQWWRSUSUaVVVTR[MXWQOP`QTQnNNZ[WNOSS]WK\JSV[SWMdQRWFOPSSQNGRXSJRS[R[WYL`ZUPWTQXMIYNURRZOVRXaUYIUJVRNONMOVPHV\]SQPU]TMQKV[TXQJSYX[Q[PSW[`\MW\PPgaXQRSXWPOQLTaT[`U[P[AQSWSJJSTTYQYRNRX\W]QNVNX]KVQLiOTQSWMVQYQPWdKPN]SYQNMaSYOWRRYX][YROTYRUTP[O]WEU^TUTSVRQMTJ`MRRTGKRSTONU[MVPIWYSOVNGGSNTYPV]QOV\VQTQXKONIM`KQSVQNRVGUQSUXPSST[Q[QOPOXQTMRQZSQPZRPOWNT[OVPMPNNQRTQXYQMNXO^YOKHLWRRKQOUULTLMVXWRGOOYVZIXPI[IOSNI]URZVP]R[OKPPWNM^MQHPSXLYNWPMPMQR\PONIRYONWVVKNTVTIUVJ_^ORLVLPQSXPS[UUVMVMMYSUYWGZGQQPTMTVJMQTOLZ_MWQP[UIJQKMN]NMSOWNVVPT]QXIXUKUJQLTXWSWOUN_PUQRLQPVHSKSLM_aJSLSRaLLHROKMXRXFWXRSNXXRPULTHXMSO]UWSTMMTSRRQQNXGHU[JQISKMUSJROXKOH[W^_WaUSXRISP\VYUTRYRMXRSSZX\PPVNSO^VJO]UXRRRR[Na\WN^GDbSS\QMZQTRSXWRXVXYK\UVSSL_LVYUWPMMTQQVVTWVPXaWP_^LISYUTXZ[X[RSRS\S`[SMNTXYT[^]^UZUR\VZYUSOOXWXYSWacWTUW]`TUQSbYL_TSLRXUXQXWQ[`aPOQ\NUQ]OTRKQ_TNSMWMcQVQ\VVP\UQWPRP\SXYRTZIS[N]EZTQPWRRMUSYWZRPWYYIY^KRW[RYUNQRRU\ZWPZQJTYHSW`TREUXPMWfY]^SW[OQZVVQSc]WV_OVQLQTMYYXVRLcITbJVU\iWZXTQWhNVVPZPYZTV_VGa[PYUXPS_OUQXZNSOTSLWORXZVRYUfYZcUR^UZP]JULPS\aYNVU[QYSZ[QSV]dZJSXTEXPXIXNSZ`LVOQXUSTTQOIUdL[]T[UWPYTSWWPV\SNVQY`GZZOQ]MYPKQWSXNY[b]USKaWRUeS^WRVYXTJ\Z]NTTeXQW^SNPPYYOXW[[QVYSIR_WVV\]OSO_NPOf^V]\[V\YMSbYUQKVRWTOQWWZYRLXNSOWVWJZMNNTUS[La]ST`KOSPPa^SSNUNXQKQ?O\VWIYSTNTOPNRUXSRPTNMjSRQ_V_[V_SXMHUQVPW\YYSVMU_QbTVTTSVP[VEOUQZ[PURSPUQcV[NSSTVMYQYNF]SY_OUTUQRTYTYSRXTV[O]UcSKQHLIQRRNUWRZRNLbTUOWOOZ`]ROUIQWSZS[NYOXYJfJVTTT\KQQUUSVTPPTRPSZN^TNWUKRIRRPOYYNUWRRPXNURP\TSWORMU[]UUGVOOSU[MVHQUSRVHXRTNSXMLRQ]OZTK_]gMVTTUWP^[SKQYORVON\XRUVOJJWQKO`ZRYPSLWMPSXUO_]OOXMRVRNMYaQYKROTJRNYNPSXNQOXWVKWPQ\OT]_]]HY\UVYURROZQZWVTZXLIM_Y_RWNZOUXOX[VTTSWZVTYQURIMRPVPLZ]RUY[XTST\QLRKRUVSQTYWMQJZQQO\ZWXYWFOUN]XQOGKWOQ_VXWSYTLWYWKLVVSRFEQULRKZ\P_VQ[UPL_\ch^JNZU\RWUYOXUQKTXXZXONNQQ_UQTZR]YVY[WMR[YXKJP[PYW^UMQSTaSdLOT]X[_TKSPPOP[WQJWTQ]WTKY]QYWYS]NZHRUS^OOQVTITZUSOX][QOMhSNSTSMV`UUaUXUFNVOYVNQQOZWRTVVX_POQWYTWMUQYGYUYXRMWSORRXYXJRXHYTW[bZSW[SWVRX\QNT_\LHMMDWZRSPQJOK`TQWXORbVQSXJMcPVMPVVOdSQXXXMTVMYdUWZMQRJXWYNUKOYLRRPWZTKOOTLSRPWZR\ZUU[OUOSS\RUWTM[UQVUYQNW[UVUXHUPKUNWZ[[UPXXZOJUUZNOVLSNOSYXRHKRPYSaMPUWPUQTOTWM^Z]OZUT`dZUTQMYQ_QOJLQQZWPPRXQVVXT[PQQPLSQOVUTKYYTOYNWUUNSSPMUQVYNOUQWUUKOV]RZMRWXWLSNZTPQbYOQO\OXQSTLK_SYMVYTZLbWZKRJSSRTVTW[UQXQ\LR[ZKQVWYWTWRSYVTEU^WUTURZWVWRNROPVUZTRPbPWYVMYOSTKXRVRKTZ]PFLTJOWMRYR^QX\URMJLWNL^Z]^OTYSLV_LNSPTPPSQY[WRP\VWPSUcRZRURWHMWTLTMVMLNSQYVXRQRNZMSUVPUTOZYTNTYQULVRRXLMMQSXXWTSXXcTTMZNP\XVRZ]XXXP[UTYVLUQ[ZHTMUOSNSMPVUTMPUJREXTFQZKWaZTRH]PMUWVaZMVYRZXTPYVTU[UYTLY]P]aVSW^JO[TU\SVK[WPKVRUV^U_ZYSLQRSMWPFPOPSTLVPJRZGWKMMU`QPNVSVR]WJPKOURKRPXTWOS_Y[LEUUYOPTUVWZNMISSLSRQVSJXUTROTUWYQVWWOPXRO[ORLU^_RPPKUWV]XMOJVTSPTXMZ[MRWHQ\XQTSZPTTVO^NNQSWNXWIMS^XNVRQQRTUXPWMLR]WTQWQPPV\VPO[UVIPYUSXLYPTRZPQRHLO[IQSY\OJ]RWZQRPMVSR^XQXP^RIPSOcX[ZJPVUUUZWNPSWWXVPHXUTOTSU\ORVPRSRSRU[[XTRTTYSUHOY]GOQQQM_WHQLYLX]LLMUUTSTSSXZJOSLUT]OULVYVYPMRLMUENTNPRUNZSbWR\ZWQIUQYNTNOUQXNMULQTTRULGRMYYZPULS_JXQNYUNRTUL]VNX]WYWNXUZMNSMWQX[WXO[SKIWPWRQSPGLSLVKW_\MPOGPPUPTNFKYYXQWQTP[SVW`QX`GMOTRLUUYSVSTZVPYbXKRTUNYTO^TSQTOTKVO]KVPOQ[QPXPQWWSZ]RWUQbPUVWZWQPS[PXLD\YPYLS]PZTMSYQTYWQK^N[WUVNOQSMXZVYMT\SLVOPNO\WJSR^WR`PYTASQSWWT\YNNZQP[VUW][K]PQ`UDOU_NTUK`NHOZOYZOVQUNXTVOQNLXVOSLKSZWPNKOVZ]LZSXRWYZYMSUSRUUKRKU][USJPYYQb[PPY\SNUVUKT_]RDGTTRPNVOPUSZOSSMMXKNRUTRRQSOMOTRVWSRRPR^OYSW[LTcSTUSWSNbbPUSIOYMWTWLXULRZ[YXRXRPMSWRS`WWOZXYLVMSXHXRVVKIOUZU^QTKS]WUZVXSYPTNSXVQUSYRXJXOT^RZTO[UOVZOSdRe[^JKVRQXVOYRPHWFRQOLQTNTJQZMRP]YTXM[QS_HNXISO\bXW\UZRgWQROQS[WbMRSNRWULR[MKHPXZXSPPSMIYNUUWV^OORSKYHSNKXPJSV[NPIUKNUSRU\M\RQTUS[LcOTGM[Q[OWQ]NRPOM^UVM[RXX]RIJPOLNIVQDWW_SRJUWcVRKMILL^YPM_PJSg[MQYOPUQO\PRVVOWOK^^QQTUNNUMHONLKQYNNXN\PXPUPOF_RZMQRVC]KRQL[SMYPOFWT][JOS]XUTQVNLNRJ[NOTX]POSTQK`WcTZSR[PXPNORL[NKWZVEOKQ]]WS[XSTSSVLPZSVRL[VSS[WPN[XW`U^HQXXOQNNNQTQ[b\RQ\[QQUZQWWWLWWURSSVUYOQRTcRYYYTM\QQORUUdlYVQLTNZ^V]R]UPQ[S]URWURYQTQSWSPNZT_RNVQUVVK[YNSSSTVROPUVWUYMJPNTPQUTXXX[SLMaNY\UUUUXNcMWSUS]PZSSRKVW_VSOZLUSSQPWRY[RSIWPSPWbX[VPQXMRVYMQWPVXSWWYS^ZTW`UZZVVSVW\]MRWRYROOTRRVQROWZ`VSNQbXYOTRWO]JTUS^SNTQVM[NYV]MJMPTZMRQRXP[YQL[T_\SQTXLLMPXNY[VQRVRTTTMUJPO`FZSVNUTSQWTU^JPUS_[TTTP[PZUX\SORUPNeTIVSVPJPXQVQV_XURWXTS[URSQOWRWQZV\OYUVRRUZPVWRNXPQ^YSNRN\PQVPQVRUQLUSSQUUPRYQHWMORQTQYOQ]QWP[S\USZLQRYOZ[QZUNT]TUKN\OXTPTRXQWULQYOQZ_V[[QMTPQWXWPROSSUKMROUMRPYQXaWXUGVMQ]OW[TUUQJKU\YSYQZUWVYR[WYQMLPRYJdTSWMYSUJVVMOPWbkWLaVVKQ]T[HVSPWJ^OZVVSZMXYV[TQXTZ^QV]TTZWTZ[NRaZSPVYLLTHT`V[URU^SYORWUXXVW]Z]RW`UTWUJOXJPNWQNaUUVYTHQPQSJReNWQXPTPV\IJRP]XM]SRSQKXRYRNU`VTVPZN[`POP_YRVPVOTWRIXL]RYZVKMNW[VY[TMIWJ[TYOPRWMa\MZRUOWKJUS[ZO]cVY[UWMUVTOPaU`SZVL[VNSW]\UNSOUHVHIUUKVRRNNJMYN[S`S`_VU_SRdURVQWNWTUNOPTTNRWV_T`USOKLTRWQ^YTNSYTV\WWPRTS`^MUPP^PYNRXTRQNGYTOSRGTOUUYU\TTMWN[QUNNJS`ZRPNLGcSITOSOUZFQFWYTUXVTKNXUGMQURaUJTPMHWdXUOXOVRPORQRKUP^GUUJPPSOJXNMRVZSQWVPPXQUMKVXNSVSX[U`TZPXXLVUXY]VSN_ROQKM]WPXSQPV\YRJTNT[WWOE]^WSTT\\PQRTVUXSVOPUYVYSXZQYWUWLOKXLVMSRVUSVTOQUURSMOZNQQTSTS]RNM\KYSONVA^O\N[UOVUKSWLLWUPFQ[UJPZSUUZOXOSRTZRXPQRSbP[RNVYPWQOQVWSOTOCZSPU^UUONYWPUVMS[SQQUSYWWXOZWSSOQTQRVIYOUNUSPKNUQS]IPOPRLVPPIGQSeUDL\YV]\`\PQRHTZUUQOYPYZQSWTSSLSNWSOQKSQ[YTMPRJPPYTXIOYTV^ZPOKUQK`OS[UVUMOGWXJPVND`KV_LMTXUZNSRRbKXXYMQRSQSS[]VPYTRQXVRTIKPUWPR^MK[KTN_URKSXTO^OVVSUNNOTQTNNTSZVUWTTUWXTNQZIQLS\QGYPMTUY^YNUX]OOTTRUVIUSRTNKQLWWOPOQSTIMNKRVPUNQWJNSP^SVL[V^YWPSUNTMSQOSV\QJVRJNXOLLVYQTU[Q]XSOTQWJNTTWLLZNXVNOWYMZSCPURN^TTT[UTNNWXSOU\UWJVWM]P]TNSP_Z[TR`QQWOVUOUQUTPUYUUZSSMRVUZPRZ`TWZYPPVW]PSQOMX]XXZUFUNTSQNRK\P_XUMVMQOWRWTNWVNXR_RPVRJPROWLVTOYSVOTcQRVVZON[PZUPUTMUWQUO`N`YYORJUYO[[S]ZPWPXP`SUTQVWSJTY\[ITTOUQ[JYJVPKTUMYUVSUHYQ]TUOVUbVSWNO_]SIYRWTNULSR]MQNTUYQ\VVNSPWUTOPSRWOWSXURUUKXWRQXGQKXMXXSVNMYOOXHQXTNQOcMOabTMQaWSSW\WK[XJWLO_RPLWM^TRPVcZXVVL]V_Y[LYWI]QWUPQ`QLSZTNSTURhPNYLOXXSPP`KXMVQ[RQQSJSRX\TTOTPTU[USUORZRR]XWQSXWPYXVUQYSTPTZS[WMKQLWNYSOX]OLU`]RVQXMXMWMVPTSNTUXQScWQWOOURWUTSQYXVQVQTNTURPPOYRRVTYPWORQQUSWTQMQUZW\PSdPTRSQTTXX]PXRNbYZ\PXZVWS^QSTSRQNWR]USVJ^R^UNPT^RZTXTQS]RUOQRVUYTQUQ\OSWU[QM[NUVOSVXYQXO]QVRjP[RTUWVUSSORUXRQZYTY[QTSTRTOUVPPRYQTQPXSVP^SUNeURMVUN`STY]TSTL[YVZYPWRO]QPWWV[NRSOP\eUSYRQPU_VVTWWVYOROOTTRPZVSPOWUSQTQSbPRTWRV_SXRXY[YWTd^XSbVPMQT`\VVQRYSOWVRNQ]MT`SQ]VYO[RQaYY_]RLdRXMgLZVYSUPbMSUTWSXTWWd`MePKMR[USYJhTXK[UTTXeQKZNMN_USViWOBU_bSV`_SUiQLPQSTLZLTKTQPRNVTQPSS\STQRPYHOBQSW\dRQKXSYOTUXVOLNaSLYRXUKWRZTKhYX`NTRX_SZPeMaYNP\ZQXRZRYMNLKPXbYVNKVORQdQXZRf_PZOOHUTVYfOKUSDTTPVVLOVNLSRMN]PtUY\_ZRJVLMNMK[WVLPYJdpU\PjiORXYNUR\ZOXPUUMYMNWNLLVPJSTVOeQ^[HJYLQTMcSNWSRTQ\PTOTMNV]MPXO\YUWR^ML\SKIYYSTTNTKTSTOPTRUVPIPYZTJJTNOOWKUGWaYOPLS]JT\WLTJQUPZXKgWTXWJQNYZNUTWPYL]VTQLQN_VVWPQTTSK?WWLXRTZX\XYQXTWPZRRXXVQY^LURQQNOQQTRQK\QQYVZPWNYLHU[T]]UORTYYQNVSPSVJNPSNUPVUTZ\Y\SUMZUVPPOQ^TPOVRZT\YVQR]XTRWPX[\]RRKWRTNOGPSNUQ^RTVISUONVNIVOSW^OYYTSYUUPSQZP[YUKO]PPTQNLTLYWLUZPPN[WXT[aYWVUVZQVWOSbL\ITRVPWPT[]gYSQOYeS^UVb]NXZQW[XRfUQU]WQYJSZTLWXXQV^RUXUWOUQRXZWRT]VTUXSWTMUZYQVVQRU_NS[\WVSYZ^YaMN[QNPRQWYP_aXT[VRYSXQX[VTQS_VOX^Q[QM]KWTOVOKMVRIQ[S][YK\V\JTZLQW[Z_P\NMSO]XPONSWORPLOPSPPLR\RRPMYM[QaUNHYRTOYUSZOPGOVWNSUXXXXNQXWT^RTQQKQWLYXMKRLWJ]ZRSRMPPL]UULQFPWNYX[RSWROTYKRIEKWTTMMKN[JLLQPORRKUZKMMPNVZXPSTQKZQKSPRWaZO@OHaWUJNYUQR^XJSZMUUKTSVNTYWGTRFOMR][WU\_NRMQWWROWPSOLUOOWVSSLQLLLN\LTSSWL_N\MVPTPOVOTN_SWQSROMOOOQYWSNTRPURJXPTUVRZ^JXLKSRSTWRVTQLPTPUT`TSTO\TTQUNP[OQgSPYYRbNJQR_QXYTMWJXTPOMMQTPUOT\ZNYSRSUTJYUUXUUPKUFXSXRRXHNKPS[TOYGOZRLTSOQQM]SMRHWNQQUYXPRRZ]SITSWQWPPOQZUQOMYORXU\_TNQS[QQTSJPYPRWPUOQVUTSRTNKUQRSTKSSS\PYQQYUTTPVX[TTS\ZOUNQNP_HVg]ZRLSISNVMWQVLVTSNacPNRTSTTPSRQ\V[OPZQ]UISWRO[\]PQKTOVV^LQVPMWR_]PKVWNTUOWPNSXRMGOWLRTWRULNYOPZTRO[UU[SPJSWR[USVNSSVZ\TNTL\JVXQYYRWVNQ[HNVQNRYPS`TTQZP[XK\UJPMWRQSORQRSMSTVUUUMUPVWTUJS`NVMRPTRYQOPRQOHT\J][XNLT[PQ`[KSSUQWOT\\RIYQWY[Q\[ORRN[QXU^SPRVMOWMXKJZLNTTOSTPOWITUPUNYKOHN][OWWUK^XW`TYaWNTKRYLPPVKR\OROTTLN[H][MNIQMTKTMYYUUPR]^VQ]TVMXOQXMTcbV]U`X[PPVRT\T\TqUM[TNL]_XPNNONMONUTVS]XTUX^NXWMZSNMYSTUXJTOYWSPVTZ]USRVWNO_TZXp]WQS\MZXTWRPdVYO]RNFXSOZ]^QON\RVMWQYSVLXTMSY_ZUPRVPVNWbMNVRJOOS]VWGQTPQOYXZLYSTYPSSPMOS\VNRKRWfZZN[XZXNU]UWTUGONSQPRSETPQSYSa]Q`LWYOWUSQOSTP\[KUUSVSPcUVRZNJYSKQLSPY^QTOTdSLXYV]VPSZR_WWVVOSSYZWNQSV[_RUSRPUXWKLQVSWO[WLNQVRJGYLKQWV]OO\QWUXeVNT]^KPMMWVKcTTINXU\RMU]QKMY\RSOeRSWUNPQUCGLOQPSZYXNSZZMPXSWVZOLYWUTRePNQSTNWbRTTOPYPSVOVTWX\ZVXVXKMXENNNSXUNOWRUVTVIQUTZPXORUSUUYPQJVKTNVX]STTPLSNPWTRURYTQ]SSUUYYdX]O[K]SYTURW^JNW^UONUOKUXOWUVNPVVOOJQQF_X`XJIOO[OXRROYLBV^KQPOJNJPTUOEUPSXXHSTQYOSVSFMPMWRUSLOPTLURSGTRNNPMOTOKQPRS\IRJVNPQQOLMTEVZVYOSXMZNUIT_QVMRLSS\SJVHLP[[KWQP[NKTNCOQPLGLSTP[XGRRQQMVLRQQT[QQPRdWLSOVPNVJ[SZKNJVNNWKNQPWWMUQ_]JWQUOOTTXWV[PSSMPRR_JRS\WSJ]UWSPY_LVSTTMQTSUVRWTQLSPSVSRbRWMXSQMUVYWT[ZUX`_LWVWQXMWJMSLUYQ[XIPIGTSRZbWRZYUQaVZRUUU[OQUZWS^^YX\VUTTURVUTLUIRYLNSKQObZ[RWXXVSV]UMNQ_YUVIMQLPSVbNVL_XQ[\[IVMW]^OUWbOL\[TX^VPSKU[PTWXQR[SGWTRR^M`QUVWU]QSLS_PTOT\PSNHO`NSOaPWYRnTMJMXTP[RcPXLHRWV\YY^XbO^WQ]QUbJUYTNQUHaY[MNZJ[OROR]_SOQTUNZRUZLMYKUY^\XVTgWRLRTUWWLhP]]QOTUSYXOU^`[OSUOTQMOLJOWXLTVRW^WT^\VMZSJRPTPRSNR^YSVPZKWPXOO][XKM^OXXRQXKVMMXRQ`KSPTQQVKX\L[NKZRUQOPTTU\Jd^OPPM_N[L[JRQPKOUWKSQYYSPTDR\VMYTVPVSMUYZLTOYFVYMRaYIHPVZOPLMfQVO^^MPP^YXOSWTOOUXMJOPLQQQWQNV]_L[QM\XMJXRZXNPYVQ[CRNVPMWR]KSO]NKTVMXP[ZTNX]\ZS_NMPUXPYVOITSbET_NVOILQS\OZ[NWQMVKKTSS`NQPS@[OYNWRGR\NXWeBSRhMURPKRVTQOTVVZVQONWTLYPN_TTROTV[VbXOWY_ZfRQWWJVQ`RYKNRVJOQR\XMG`WRT^QW`ZYS[QJWTTVORKWQ[SWRIRLWhIWJNHHXOSW`LQOLWT`ZYOSKKUJMSURM_PNVQTVQVWSUQNO[aLVONIRJKKKPOTOZWYRWLVMRYPQP^R]R[GUVTNEWXMWOV[INPNVMZR^M[PT^SXUUST]KOOL\JPKTKSVRT^W^JL]NRSXRLZVL]ZNST]YM\XWVZ_TSTV\`SOQXWOVWSNWVTSUP[YM^J[PHL[QUVQMJ[[]S^H[[RYPWSRQYS\\]QTOLTVLRQLWQWYbYMRUSXQSPORTOUUVNZMQXaQS_KTZOQOXRI^ZMWSKNMPUUXZPPYN\MKXKSNNIQSCYQZWSRPTUMQKXNSVSPXL\YSRQOZMPQYXNM\^TMK\[OXfWbRZHULUIQWaRKF\MRVONVUTTNNQJQOPX\OVPOPaTJZPKKOSTTXQWRQOXVQSQLSYPRQVD[TTNNWa]XTVSNTPTYPTXXXJSMDKRPNX_OVSaVOUVVOUPYUZNS`V[NLRPTMS[MVVVMWUVTVU^QZOKZKVZQ[SPR\]VcUQURNWLPX]RQXXP[ZKJUSXQZHOQOWT^SUY]TWQGOU]TVXQYVYOG]HNSRLPXSOPSVLRWX\SUW\TSMWQVMXSSUROPLaQOQXUMSPW\TMU`XYRWWMSTPI\UZMVUOMTYSOVZ`T\WOQJTMNTSSOP[TSWPTUZR^M\UYJRYTXSWVZUUX`TORSVGRSXZMRUVM_[UQMOaYTNQIT`WQVPRRUYTTOXQSUS_\RSRTWWOOTV\WONWUVJ\RORTUXQQUWYRPWNSPfRSVSNPTLMXUVNR_ITYVPWQQSVPYSYZLMWN\YOPNLRO\OSQZJRSRWVOSYXZhURX]dOMUWWSPJZTTLYXZTYSRPOPVVTZZSOTVXQQSPQQTY`LP\QRQR[YRKQ]TTR^\XXML\YUSNPYZXPVPSQPVQ]R\ZXQPeXPTJXT[SPSTVVZRQYY^PR]NSTPVOaNRWfVUJWTN[WP[XST__VZT\]RaEYZQZaRYWQMTVN\JOQTSMVTWTWWTdU]RRPUOOOLGNR_TLWRNLVTSSYSMV]GMVKPPUGRRRQPVTSX^CNOUMfUNZZSUUNYLUTNU\TXSRWOVTPYRUWVPTPSSWRQTSSVRTXZRPYMMTZSORWPTSUZTYPQQLmVTQVdV\SJW]X`SWXTSNUV[WPSQSV[]VNQPUTNSOQWWOTSOW[PRPRY[NKSQLOTTRXTMQYZUT[TQN[WOXMVL^OLJUOK`NPP`LQSRRZ][UYVOSS]WQ_TUPOU[\SUZU[ORU_aSQWQ`UUMJNSJMQCTSUTGYZHXUMUSOPGMQOQLPWOVXXPR]G_TWQHQORTOSUUZJQOTNT`QM[PSQTWTSQSZLaKMTM\Z]\NSSQJXWVYNRTOXPPSTLQSKXYSNPYVW[VIU[WMOXTSNPRSVOP^KKPQMSXVXVGSUOSUPZJNNSSVQWUNVSPUJQUJSQTMMIQX\VSNSPKZ[[MRQPVT\W[P\PNV[HVPYSNURVM_OWPRMaQZQMUSWWPWMSUMOTN[VN^UUQEbOS^QRQTUK`]HJQRPXWPQSNS[\LPQP^]SXMSQLUSQQHO\FSQ[ZOGW`QJRVP^KKTR_UMUYOSXM\SNQOSS]PONUJSQTLS`PSLSTZV[[\ORVR]RRMOYSOVOWTVQPWMVQRMQT_TKTUJOJVQVYTTWVTZVSWVROPPWQNYSORVJRTXQTSJURQPK`QMTRPXSNTTUUT]LWRVQL]MMOYW`UMVVa]TUQW\VTUYU[VWQRRRVQNT]TRQTPLWVUPPVNVSXSSVSULYTXZVQUUM^MWZZNUQTPS[V\SZRP\SV\QPQWaWNXYYVQTLVTRQMKR[[SQVVVW[WVUTQWQVSJQYSQRXGSSYLOYRUZZ\RTLTSMOXVTUL_OPQTUS_RUUSQQ_UaXVXW[RW^[U^U]RSQURN\NOPMHP\UKUW\[NUT]VQUWfRXVSb`P]KWQPQ\V^IOVPVOQGMYRTRSUVOJ_GQK`PTUKKMSN[QXSVTQVX\X_QUPQWSOWYYRSX[\QWQLLRK^RQ[YG\R[[XZXK]TEYLXNTTRMTSTZRYURKQRKROM[URVTFYWNPYIaIKPJOZIJLJT]TEM[TEVRKHPJYS_JUVdGHX[SQK[\P]TDNWWMMHNZRKQYTTVNPNR]H[NQATPRRVXbWM\XYTVHVQNKJJ^SUXWSXZMKS^LYTZ_MXUUH[PYTIK_T]OTVYTUSQZPXY`QUZb^RQKUUNWRXSTSNaUXLLSLKVWJRO[\AeURIUSVSTOZUKOTIUZVSiUKO[]YTLSVVOVURVSLLNFTKTKS^USWVMPWYSTMT^JURGRVNPSOUQQNW[RWVV`YNUZaYYVLTPPXPMU[WOYTJLTOZPNONOSNYSQXLWTNVXSSZQa\RQUXP\SZQZWaRYTWXRSYTUcORTRLPVYPfY^TaZNZ\TKVZT^YWMRWN]MSTU`VUQVOUNYOMWYUNSRTRP\SZ]YZUX_XOWUUWTZX[NQJTXQXYYSTWNZ]VZPT^UTXX\KWWVSQFUTSWSZRPWNUXSZXWRTZRMOTUSURfV[T[UTTVUSXXXVMUVH\UWWXSTUR]OO]T\UZY^]VLTVZLUJ`STU\TOTT\VYKRSUKUV^VSWMV_SWRXXWb[XPVT^XZODVQYO\WN^XLZXU`ObQTVJMS[TJSS^JEROUXTOSQ]ZYNXRSUWXUQYbGSQ]RUO[\XPYWHLY]UOMQVXJ^XSMYQWUSMQ[VPRWNWUOQQVWPOMXU[TYUOPTPZRVYXTVYXTP_XQTKTOZOXL[YRQYYYJVWRPJPMYLVLQIXSMVT]RTcSTROSTXAU_Q[YQRZVTO^RRV\IV\LOTPKX\QNSX\NWQQTNNMQKMZQOJSTNQTU^SUJ[TGOTVQQeST[SRRPTQVWPOGWSRQXRNOVQ]Y[RIQJVMPIXXRU\XZUY[ZQPQN\KZHQ[XZQRQSRKUV[WaYL[VLUNWPQKRU^YJT^RXJRQKVQ[TPXOXWOZ_ENFMSN[OKRJOQNMUQPIUWPVWONQITMNYPTYRJVUMNORRTVSFRNULQPKTS[VTO[QOK[ZRSRVUZaHSUPFJaRTVW[O_TRVVWWU]XbPUQWRSROS\VOQQXUKWR[KXPZQZRQVNVMVRMMTTZVWPQNRRTMSROXPPVNQUKV[GXKZRRSVNWLVPUTVXNQOVO^PUKVTRUNRMVNC_MPR]EVQ`PUOQITNWYKQMHSWY\MQVYOM]VWSXOMKX`R`U\MWWNaXKWXUNST[NWRSSNV\RRV\[XOVMUbQ]WQ^_]ZVWMRPOOBVQQ[ORLSUb]QPZPTPVRUWSNVRTKQXVZVUJQRPRLRROZHYZPRaTPUGSKUSMKYXVLWRNTK]TQSTITR^YR]ROXXeQPLWYPW^ULSYHLXDTUGQVMSVWRYMRNYR^VMWQSQP]YTQVSUJeYPUY]UObPTWSN`VXEPOQCSM[ELTXPKSWUNURUVPU_QTI^YMMMXUUU^Q\QXbZSOZSX^NPL^P[LZRSRSV[USQXQVSWPLLQITPXUSRNUHRVTGVIVVI[IWSITWVTVUSZQRVUTIWYYYYRYR^RVOSWYVTSWVVKQVPZUV_ITKRXYWaTNcYQRPRYR`TU[SGURTZYaYkPOVTWUQWZY``R\XQQRVVUVNVTZTSTUMMY_TLJNKJNW[TSSQUSRPTVWU[VUOiKNMVWVURPYdXUXURKVRTXRT\EWRSQVVVWUV_WNR]]FPVIN[Y[KVUKMWWYRVYIRLLU\ZPYVSVTZRMRLOM`WP^VQaZLOIRLLSRLZNRYQVXZ\SZRS[VSLNPTYPUSX[P\\bORUQTSPUUTQaYQUXURX\RVFRMZWR\RV[ZVcRR`QPZTHO^PTIOWR\TUQQbOPSPQZVTXEU^OVXVRQXTL[QZPQWa[SXSSTWYXUVOSRI[TP]URTQKP`UPSSXQYMOSSVQSW^_WSNQSOUXUSXXVQVSIEYXSOZSS`PS[Y^UKOGNXP_TUJQO[TMOYORRIURUZPXOJMKTWWUTTDQP]N_VMXUXaRTVWS\MSUR^Q`]KP[OOUNTLSXQYMRXNZTUU[LQ[SbOHWTR_QP[RRdW\WQQSHTSPU[KUXRPTUNPXXY_]OIT_WYcS_WZQYVTURIKTWMS_SYePRTUUfIWSPLNVHI]PNQ_[P_WGVRUSWRVVOZOVMbUXHLQRTWMPS[XUTWLU]NQROZ\]TSW^YZYbT[PWK\WQRRNP[PUS[]fhONV_RPQTRYVNZYUUSQVLR\OQQUPSSYQXL[YSMNU\[WPUJ\TXN^`VUbY[UMROJ]SWQVPTUTJYWUPXOPWUVKV\UPQVUYY\UUH`ORPWKTV[PTOYRPTO[G\UORiRIXLYVIK`QXUYT\SRQ[QPUPVRNc_WXSSYOXPUSPU`PWX[WU][OXUSMGWLWUPSW_RUSLPVSWSSUTOPPSWWUSPTVNKTT[KKSNQWRQQOSUTP^QQPXVYZWZOFV_OPNUWYVSTSZOZST_RPTYRZYQXPUVSOOTZPUb_OKQRJNU\EYYVTMVOKU^URM\`OSXJVXWRTRUYVXQTY[P_S\QZL\RMWTSXLWVPTSU[ZM_PYO\VXPMJSWZXSRSOXQIUTR`PMQS`PNNWQITVPSGQUXMLWQVWTOH]YWOUYSPIZVPVQSSPOLLTLSRPLVcJNSYMVSNTOYMhQVYSTMUNTNP[PQVOPTVMQSQRVUPZYTQY\TQWYYWGZTPSSZPUU[NZU^UMWW]]PYZQVSU^fSRVW^WMM\W`ZUXcPHQUTP\X_UXUE[T^UVPZIQXSYPLNMMTRR[XXWQPPOUhWUNXR\T\CZQTKLS]OJPKHLTS\`YKZZRZWQZSYUVSUYPNSVUKRVNUO]JSQOSPYWLRPdL_I^WUEMQYWTVWMTMTKSOSX[USXF_YVW\W[SEQMYPHSVW`[RSZ\VNQPWUT\_PUP]WRROHWZRYNNOPWX\[PIYIQMMVOROaMPRSV]bVSQf]P\UST_RVRWQXPTKYSUNQNVRE[QOSPMRSZ[^^O^]J[JTGMNVS\\TPNQPYXWMPV\MVY[SZMVRPTMYX[W[TG[\ZUSJPHWSSSXVXXWMSKUXTVRWRNZRKUOZRXJTUYN]UWVNAOI^SST[PWNRZQL`SVVWZ\YTYSLVUQT^IMYV_OZOQMTQOSQYUXPNTQPTUJ`JQY\YXVNcKKYP[TTLMOTWYPZNJaLZNROK_VK_TQUOe\RMMHU[NZSZTUZYcLZUNSMYRWPFQM[MHWNRSLPVYWTQTSWTTV`UXQTRZXRS[ULXK[ZTVVQX_QXLW_RJNPYTQ_SQRKSVUUZ\UMPTNSTZZXPVVMTZUQTDPYUMSVLRPYQVZLZSWP_PSQOH^RKWTWXRHW]_LQMPSJTXVVHaWP`YSYSY[TXPUUIOVZLIZP^X[SVSYOTKN`UOOUUPWXSRPXTR[QQOTQNPROOPQEYONY]VNVP\W\QYYPRRYSTXLKTUYYJQTQGSVJT]PJ`SEMTVWSQK[ZKZLQILS]R^[MOCa[UTPLYUTeJZYY[OSRS[`VXYXPUPNOXNO`XK]ONRYSTMNHaOSVNVQPLS[VX_SWS]XWTKUTRUTSTNSL]NSJPQXIeY`SSKdXROTRYTL\ZXNRPTObMSMYRTW[aOQTXSSR[\^RX[mMQPa[PXHSSPKTWRSOGTPTMTNQMmSMQOOJZOVT_QOIYO]USO^LSYSPVTOTZW\UOVWTOXSTSTUYRRQLKZRaXVXTYXO[_RNPURZSV[NYNiQ_QQWISXONW_\XTWQOTe^EPGONTUMX`OURQYWS\VTRPRRWGdZONO[UVOXTSS_VQTTSTOOQPVUPRbTTQ]R[XQQ_VVVPR\ULYLOLXWRPYMQQNUZVTVXMTSUMYWSUSWRYRUSXKHPRLcXYLMWRQSFYOLRZVQ\OTYUYJOYaKPUXPTYZTSPOIOXQQMWQVQ[TWVWPUT[ZR\YYQ\WVMOQSSRRSURZP^Xc\UUOLYMIWOSV[NLMLPSYMLVZWVIKeMKVWYWQXYWFORYTTQQQ\QNOQRX_TTVTXXWYR\NUUZTZMR[SW\WUSL[YOOUMNIQV[QR[[XTPFPNKaZS]bFPSOLRQRVY[UWO\OTO\NJTRT[`T[VaLVUQRI^YRPS\STVSJVOWVRPYS_O^STZSPVYQRVLYSWNJHXZKMVO[RPWUb\OOQ\]RFVVUQRSZ[\NVVR^TbW^WZWYO\UK^HQSRSVWKRRYZXMVOUQMVfNWPTWERTUPOPXN[MS[Q_OMY[YPXO\RSX^PPSTYP^]TYVKR\OS]aS_KMQQQV]TQRUYQN]TKVX]GLPVI\OOPNYOOWV^TTUSXVVI^KKLYOU[LSJMbJRZOW]X[QYgUYYPT_VWJ_SZNROLNMP_X`PUO^UWPQQPSOSXUOQR\NPPXYOMS]RKWRXWLTRYUMZOWQPJM]UQUcNUYT[R[LQWQYQX]WOOQ_MUX^KUQXWOVVXLXJbMVVMeWQSQR\eXPZKPSWYMTZPQQSHOOUWMSSRQPVKL_NWNZ]WPWL`TMIWTNQTSTVZSLWUOMVTP\bPTRXJORPKTOUWVPQQOWLRQPW[_ZZPY^WWRWVRRJZVTTSRQST\QG[SNPS[V\LJLURTVSTYWRPNZTSU^YQTXTXPVP[SMVRT[KTUZIZTU\SXTWXWW]WT[MOSVQZM_[J\QYZNM\PSJQcMV[TRRRZVQPRYYXNTKTSUMMOTWPKSLSXRXURYLUSZTWRW\OPT[OTUVS\QR\YSYcVQWRSOTQMXTSTSTXPHWRYUOYSRTTX[ZUPPLUPUQYRLZRRSZYS]SNMK]XJXLgNSWSVQSVX]QPGQWPZVQMMVWWXITSX]NSZWP[TXTOQMIdUNKX]ZNHURbKLPMPWUWPYQLUVKT\RVQTSP[Z[VTU^P\HOV]ZQWSLTZZQXSRRRRUUQSNWYYPQ[RWTUWS[KVO\SWQWRJLQVQWUZNVNKOGPR[_QNXP[RRVUVYREQTVSRXZPWPVX`RMNUYVTKYWPVQWTQMTVPabTZWPRPPPQTEVKNM\QJUTMTRVRPYRVg]^UMYQ\ZVXRX_\XU]QTZ[aMTMYLQSURPSVXSUVWNUPVT\X_RRONZPXSfTQ[RO_PYYWSTYYLWQ\WVVOBKVXSYNNQQMR`ZRXQTTOPUZKZbWYL`NQSL[K\VV^MMQUXRJRURUOYOM_LOR^RMdOTXXTVSX[MOXHKVWUUVRdUSXSWZRO[VS\TO\LQ_[MMRUKRXRTWVVTYMP^NWYSSXIUT\SOPLYWSQWOVUM\N]ONXOQARROSYTSVYTO^PIZWTVPGWHZZW\WUZTWWQRPOOYUOZNTUMZPYNOWYeQQS`XMe^[PHQfY`XPPSIP^_IUYWVRVYOS]Wb[RLPSWONOTU]UPRZSXVTNKUJ_OVZUPUXZSW[PQTYYSOUHUPY`[[TTZSR`_UTWWR^V[NVK[IOSVRT]TZX^^LUSWPUrQVTYSRW_PQTRRROPTOXSVW\RWQYLQSW^WP^MQUJUcX\RTPSUX\XXTRTTW[[eRaXSQVU_O]^RPSMY]UKVSYZXUXWR]XRVOTRPZTR\[[TWa][[OTQUT\WPYQcXKUXTQf\^YLcbPNSWWYPRZUNU\\]ZPZYW\XY[ZV\\PTL]`RYW^XWLQ_SVQXVRU]\W`VXTWUPWPO\Pb]UXQWfVRUUY]TWY^[ROQVOUSXQTTNTWQPMZ]OONZ`Y]RLNV\KSTNV\XQW[K^U^PZVSYTX^OTWT]RPQaZQUR[QVJN^^XcRRWcaY`]X^\U_W^SUUT[UW^VWNRSVQVWQROQZVTZX[RSqeXNRWPUTETY\RYXTS\SQXZLWVRURPVZWM[Q``QXVPQMYUY\\MSQ\W^ZSSe^TSTZWR\QWWXVY^_OPXRX^LYV[HTRP\YXRHZU^XZUSUK\NRYUUTYSZRLQ]R@`JVMUXVeVZQULK[XVjRRSYO]JRQRZ[S`SZUUSMTQQHXHT\\YVZMTVpHXCOYKQZS\VQXRSM_XNbZMRNRT]IWUOR`SVV^STSGUVQPNWVJLYVQSPVHZPNI]QaMSRQUO_WZNLUWZXNXVRTV]TUJSWWTMZJZUZ\ITTOZM[EVOZPWTRXNWQSNWd`TZRdZ\\UVLQSQ\SMOPQRVYFNSPZP[XSOHYMYSPPRWP[XX]M\TUTORWTQVNXORSTULR[eLZdVLSYXIRbKQKYcXQSV\UMPQ`VPLISR_VUQUMVSRcMSVT_mLRGHQTZUSRYNSZQTWNMNVTSO`UNSW\VZT\RVVYOUZPQJPW\UOZOSZZU_bXROURSRQWRSQKLRVTPSJNTaNV`[TSVJ]XPRTRRZWOSROL]YRRLVWV[NO\OTV[VO`RIRYXXRRTTSRV\NRSGSRHY]LO`M^TYZWWRUZZTQRQS]PQWVWY]QU[OeVWVMU]YPNTQUUXMZTQSTjRUYQXWSV^NRL[UJPRTUMSPNUPRVPMVNFYNM`YUTWN[MQYKSU\MPZU_aQXSPSQSVOWNMUWZKRYVSPTMUQLNR^TRNONL\XN[QVUMSSWScWPUQhV\QTYXPX`WQ]ZUQTVNRS]JZLXS[SXMSUXKTRXPWWXPSTSOUX`[\SQaU_WNSNONUQUTWQ]X[YSNXTU[UXYUQUU\RXPTXTMWOPWZ[Q[WPPSVTNTUOTWU^WRQLTQ_WVGVWTTXVSLRZR`MWJXWNPX[R^RPVT_YSSTSM[e]UKLS[\WSGN_LURKOTVMUZNXLTQQ^VSLTTOXVZQNQNQLR_XFWOPOQZRVRWNYNR_WhXPUY[OWWMM`]OWOLNVITQXZSX[WO^FWPdUWHNNPO[WX_[L\LNQUUYXVJXTWZQYZPQXVWV]kSUSS^YLSRSTRYV^URTXZ_ZRVSVSPMTVJRZaQ\VTMMNQISNQR_U[SORTKWfZUSFQVYYWX^TOPWSXTPPU]POXZScYYYVZ\VRP[`gMOVSX]UVUWX[NLULRRQSVT]hTRUOSQULYSOVTVRXMQPYUVPT[OSPOTQPUS[MK_WVONPY[WRNRZQ[YPTTYQPUROSPPOMVQbQON\NPURV[U]UQVYPLJW]RRYZXMR[TMXVWUYQYMHHWTSNGUTSSPWPQG\XSRLVOSMUSXZHTQ`LWYQVOQZSRLP]TQRMRMOXRWYPQS]LKR[WQTWX^ZUPOXOU[KRXX`RPQRaRPUVXT\TKQaULXKNUYURRYVWTSVMQVKR_XVRURPLYUYQT[RTHQZMM[PKZ]IH^P`RSVWZMVOWSRQVS[\ISUSZ\NN[S_IQYWVJYPUPUNZbOS_HZWUKXOVYXYLNY\QVPTMK[JT[USUQI^]PZZT\YPKPRTWUTKKUI\ONXQ\YSSMRZN^PQ^VNUVR\OXMQTNWSTWVUVVVFQUNQQY\VYKVVPQOPPVPTSO_YS[^R_^WO^RVOWXYIRVHPPY[RRSTRX^WJJSVYXSROWPSVWVRQQYTOWOQR[PRXWYJXGYXKNZPZSMQTO[\W]PYVONLQSW`YQOW`PMVNXUSYVXRMQY[KZ[YPOPS^XSPTTFLZRNPOYS]MSPGUNXIR]QKNPRUY\WTMXUKPVPQTSKPUUWXYPQY`RNZLGVS\WOUPRRKOQXYQT]NUURSSTYM]KUYLQKSRZONQ\LUXRWJSYXYIPWPOTSNUPXURLMS^PQYVKQYU^WLTRNSURYP_YfRZ`E^RUNXQQSYQKUQQaVYYR\QY_]XMPMZYSLPVQPVPP]R\LNPXQYUQTQOUTVULfXWOQQVWTNYMZPRV^UMUWRVUOTV^VSPSR^UVSQ\RNWL[]TX\WTZSW\VNYVYWYYTWUWNXOTYWUWV]OL][URaJRYLK]\\UWTVSXSPTXUWQ^OUUXTRLMNQQSRUOQQPVRSUVJWWSS[TOOYMYXPX]RXJKV^PTa]XWO_PYTZQQQUTWOZTUSZQQSSROQXQNTUVR\VWQUQYQUOPSUVNgWkULTPRRLZMXTRRSROY[OTQT[OQXRNO[YJUKR`KLXNSUSZTWOQSRaMRKWTPRXSUU\XXRIYNQbOKOQVEUNUQQNN^KTLUV_NWVSZ_YRQQZRWOZYUdVKZ\GWVIOXHT]\YWNGZVM]OZWZWL[^\TSNOQ^NNUPTTTUPUWVZTVNUH^PQRWXRTVOZQWVPPMUNSVYS^N[\YSMLOPLR]UTTZYRLZUTQZWLOb[VPJKMPYSOHXQPRWLTZUOUQLSVPUWWQUKLb\Qd]TRTWTO[XRKSPVXVJ\HLROXMXTLNRVOKZKPSWRUUVKOMP\PV^NROPOPQ\Z]TSQP[NUMOOOSSRU[STQZUZSQJ[OVVTR[WPPMWVUJ]QSUQTSVOO\^bLXQRUOVW^c\MPXRORSX^PRYXPWHXH^QRUSL\P[QUWMTUV\[CTYOWTbOZ[\KUUPNYQSRXUPRYWLVZ[]mZdYRYd[TPSP]WPO]WHT^SM_GNPOUWLVSUMQULURXOVZ_SIVXYTRORY]OLNRXXSTM[NNU[[XPbQT[KW\UGM_TVTPPIZUPWYUUSUGJNWUMP[[RPYTKQUYTPWQgUXUQTYJXPNRZQ[a\OJY^\PQRLSPUJ\WVUOMGPUVSYONT`PQWUNVW]VMR\ZVP[WUUOHY]hSYTGUXZMQVVLQRRYN]GdYTVOVHeXRNVTZTXNRYTPWXXMVRPO\ZXURPXQPTSRLWURWNOTWO^VUVSNRUHOL]V^WWTVXERZTKLXUMVXMYO[SZTZQT\_XSMSVJPUUZT[KOQ^RQVUOU\MKRZ[IM]TPSS][PURaXQUOWP]SRMRNNTXGJ_NEMOYQZUSSSZ_NSRSILLMTIWTVhKRMaRQ\YSJMOfRR[WMZUQOWWUPTKYILSU[WVIYVR`^a\MQSYKXPOZ[QVQTW]DTXUT]PTVOTUOIXHQYV_MOXQRMOMXRXPYFPTTQRPOSQWMZWJK^WPUOIVTS[ZUNNNMSLYO]WZSUVUK\MLSTW`YNXg^[SZKQMSU]YKJSSWRXXPJVYQ`[TXRRZXMON\SPVOPS\KQKWUJP[RQWbIOUQTQUUWNNOOLR^K[VXVSZR[RR[KXM[RZ]^VTQZYXMZTaURaVNZVLYPZaXVYQVKV[KUf`OSN\YXQRNPVVO]`Q^SSQ\YVRcKUPYTZ[VXUR_SJYGfWObL\NZP_SQU[UIOHWMYISZYOP_URTQR]TMRZLVXNbVVTXP_]Y`]V_b[RZUPQIP]_KZQDLXWbUTTQSUUVOVTUYSRLVPUUIR[V^RYXN?WYMNkUQMUZX`VW[NQTK^VXSR[YUJ[RWQOT[VYXPONOTc[XRVYI^YT^UOdaOPO\YFTWPWWVSO^W^T]YQXTYO[^QKRTWVR[TZ\WVQXV`PVP^M^ZTNUSSYTITXLRMZPVSRgWUPPVXRW[]DXU[UPMVYSXORW_QZTP_UKZWVMNZULSZUVXSVbUXKPaTUYUYKTURTW_SOSUYWXQPZQT]JQPQ`DUOOP\QNUTUULTYPOOUNYNUYSSRNY^RUTXSWLKTK_\URSQXePZSTZ]OVQLSTQK_S^PSYSROQWJUHcTUL_TWYQQXcUTPWVVYWUNSX\WSS]OSXTPP``RLXXZJUS[P]ONRaZZX[\R]OZZULNHVR^TTPORQO\WRNXRZOUPSQVZ^PNITVKaQO]cCY]WVK_UWNSNSVL\UYOUTL\KS_V^SPTXMLKY\STOYUZRTV_U\MZQTNX[[]YTXXSKZiYX\J\TTMZVQVT[^OVVN\NHUOKNTTQbTZPJWVI_NZUO[_VGNJPScOK]VY[RPPOTM^N\WMW^RSYcUVSXQVRYZSRSTR^WbYVS\NTL\PQTLST_LQSTUUXQ\QTXY`N]YUXOO]UXRMYTWT[bKPRWTWZZYUTVOY`YQNMUQU`UMW_T]QLXNRVQOQPQSXXXPSUMSW\YVX^PNXJXYYTQPSWTWTQWZW[TVP]hR\UWSUNFTUa_QWOKJTGTTIXWPPUTOSXKRR]XS[ZTRSSLP\Z]KRNPSOQWPNSS`LcURTZIWXbN^RWQ]UOONUYVPU[[N[W[_WSUTcMTaTIPNOVUXR\TTXMMVRTcZRQZTQZUZTSQUSR[MZ\UVVPUZSVPTMRTR[VNUWVTZMVPRZNVVeV\SULU]\USVQX\WOSSRMRT]VUVWKLUUTQKSVRU[SRSY\ZOLS[SVTUOW\Z[XRS\Q_RSR[RYTSTPQXRXSVRVSSQVZ]QZ[LKQXMG[URJYMRWRNQfWQTIVYXIaV_VSeJUKM\SYL^SPPTQR[NYRZ`VTUVUWYWTZUYY\UX[JJXOM^\OQQNX_VMPOKLVTKVK[OQRXOURYaUUROXVZG[TRLcWTW[M[NUF[PUQHVQZRLPZNPZNXVVMQQRO[TUINQ]PRJJTT[YYZUOZNdTVPPZPVJLQOUM]SQRYS\TTPMYRW\TRORQXGTP]UPVRZPWK\XZOOWS\XYRUSRMSKRRSZSUXOHPT_Q[TZTNMO\UPNWQ[TPZXSUbPVXVRQZ]UQVSXPP[XWMYTQUXK[T\SKRXW\PXZRO]LTOOXSPOTLRW_XOUUNQUWT`VUOE]OOXHTLRQRVY\O[VOSZXIPLYQZXNPTMPPFTR\URQ^ZPRL\\PWQVRSTUWTNWVWTN[\QXUOGSAQTPZcSRINJINX[QTUUUURSSWXNHJIXSQUZTU_SQRUJPTQNSLRmMZ[ROWZHSSUUYJTX]MVWPPSR[NM\OXPO[XHc[WZOK\UOSPLRHZWJJTM]MSQIVH\QX\ZUNRTQCQdLRPZSYVORTQTZTSVDTRMT]N_UUEQ^VSN[S\SOVSYNQVT]LU[PYI\VQPXWOMQRMbWWT]XFHKDOMQRLTOYSPSXZQ]ZUTLKN\PUVLKOLCT^ON\TSLYSMWWeIHTVZRS[VZIZXVLCXSKTQRPNUPZ^XWXVZPYRWLQPZ[YLSVXSNcQUTULUMOKVQSYNLW\YUWK[MHOLQMLWTLXQKKeLXWXTV\OXURUPPS]PSQSWKRVJNOWJKURUXVOVTVNSNOaZ^R]\PSWPS@QOPQMQSWNYSRM_EOMLRSTPIKRTTF[OOIXSSMUOMECU@OXWPLTOBMYKUNTQLPRVTIRH_QUXALNLSJSBTKMMNHRSQQ[SMJROPOJITFJTMNIPRNJKJPTLIRLMQYHHMNCVXONIVLQOJOZRSPKWONQRZMMUSNOYOOO;ZXPUZHMLZTHO]HLOWRTTLRMSSNMOISVQUDUW=SHHFKPZPUQPUOWVF^LHJQV^STPRKXMPKLMMJRRPMQIPAFDUHAVXMQSPZXEIWONLYQRKSIVDQRSNNTOGWJOFYOQNMHN[XONYNKOURMRQPKVSSQYSQUaMUUPYKNQTRFPWRMPMNSILTONWLUPRG?HWSXSSLPOXOQQNIYVQNRY]XIKLOPIUTDTSPKUTSMMQTiMV^OQPOXK[NRNNNVHPTTLKXSTU^OPQXUSMFXXSQ^MV_[PNMTSRTHPYYNNWQZOUMQSSUKNWVXPRUXRQRZSMXWMGPMQRUXTUMSPZSZWSLMQ]WGQKWQMNNLSH\YVP]NS`TKRUPHYXJYbVSIY\YSTT[IOYQRKVKM^L[VRTYPLSYOUNFPQWLNZMSVMRfQ[UVZ[QUZXZPX^`RO_US`PR[PXTYUMOSUTWYVPXUSTINYSFWDTQXPWWJWPOSSPYTPJLVNLYVVVXONXPXQVVV[LLMRXY\KMZYbUYWUb^MOY^ZVXRYZUGQVPMUKXNYTb]VSKXSUT[[VXRUOTQR\JP`HKTNXXHQYSNIRWRUMS]OUUO^SXRMSTUOVUNLTSSUNWTSMHZQ]SYTUTO\UVIYU^ZYPTV[UVX[aSXSUW\]RTSS[QS[[XYOUSUTaTNWQPRdVUPMQTUXSWWOUK[LOMV]SQMOYUZ[XWZUY^JTSUPZ]NK\[XRHLJLPTOS]WW\UTQTMVLORV_QRUOYXKXUOU\^UTWGgZMXLXMOUPQWVW_WPUTNMJdJOSR`\RW[ZUTZZTXUX^MQWRWYNRSSYXNXSQSSRPPVUTTPOUSSUYS\\OQST]UQOXXSZQSN[QOJOXQXT[VQKSQ]TXOPVVNSM[YL[\QWVVQZZ\SVQHWNYWXURTMRQNTVWWTYLfLUW^KNaOLSUJSaUUW]XYYVOVH]URVc]]]NUOQUVYUPW`SLQXVTZXOSUWTVSQXTUPJRTOUKNNWTeOTSUUXVW]WNZcJWPWRPRQK_\RRLSLKPUS]WX[VQ^SbMQQRQIRSb[MQUMWdLWTYHSTR^\OSPNZHS[JWLLZNSQZUVVRMlSMXMKXJWRFUYUWHTcN[VMPYG_VYXLSVSWTaSaVNORJPRSRJQ[^TMPVTVWVTPYVUQ`W[][NSVUYTUTSVUMPNO]OaQQ]UTXWSRQFZUTQTONSOX]\MYd[SVZJWURP\HYT[RU`YPZPSZVRVVWJMORYUQRNYX_R]VPQaNXSSWMPU\XIWRZTP[UOSKUL\SV\Q]^YZU[TURVYLNRDUN[O]USPVZTPQQZTUW]XY[QRPZ\JX[Q[^QLPS^YMWLMeZTRPWOT[VQMTVNKYUZVQTST]U^RSLMURNZSXSL]GLNGRXTZW_PWSWQXSKXKRJWUVVQSPNHOWPJM`MOLPR[P]WVVMOZTRPePRRRROYSWVTSNTLYQPSLKRPZIMMXOTOUVHSPTHVURUUGQRTRXbPOPMRXXX]VORKP]PPUWdU`_NRDKUUVRTFIeVMMOeVZOLYTT_OLSVZWSQOMaUQSS_QOMPLYQSPQNTZVPSaYLQRRTH]OYXSR[USLQUMTPUJMYMSY]RWP[OJRTSVWVOMTVY]YUZRUQSYQ_TTTc[WROXPYP\PYVKRdVGOROYQTbXQVS`ZQSSY]X[OWQMX_\MVRQU`STWNPUTTQ[TWQP]PSMSXUIQXRMZRG`NKNZ[ZLYKUJTTO]NWQLRXRdPXNXSSTS]L_OTQRN\SOTTUN\JXYOQYUUZRWQOSaKTOPZWXTVQ[F[ZXM\JTYXSPPGY[XTSTSXYTTTSLPPNSWZRVTSRSGTPNWLQZOMONSSHVTTdZZWTTQ^TTJNSNW\Q]\VQTSOMJQMPUY^RR^[ZVXP`VKRL[RZVSZXUXYLLVUUTUQXQWNQYZNOZdTUPYOTJQS_O\LTTLOSHMZ^YPLSHSLaTLMIUOgNbR[JSJXTPVRR[S\QVWNYZGOL^YWSXVPG[WVUR^RYVXTPcMTRNX\S`QXXS_QXREWPTSPTQY[YFZSUTMUcNZE[TOZJKRWPNOST\QNTOWSKKXTMYXXSTTQVV^OM\QSY]XPUP[USYPOVUZ]WPSRTNT[ObXUN[KKJaZNJOURJMLWUYOTWS\NPJYIQ[VXWVZQLUJ\SR[WYUSRNRPYXRMOTMNWP\[RXSRXKcWP\QQTRUYSUQRMVMLVQOOQRTM[RRSdYNR\PKSPRVPOUZSRIWVSTQWSBYTQL]WXZKPIKP^OVR^[TLY]YROcMTPJS]QPUUPVRNNMVMPVP]MTSTQXYXNZOXQYXNPZRU_PWZLUUKRWWMO^bY]SXVZONNSRSJWOYPIRS^LheWNQTTYVGYWVOYQNXQMZWNOJTDRUVWSXSQT[ePQHKWOMTKNQQNTUaRUMOVNTPPWVRZPZKRRNLMVLLRBURUREKS\SPLRNTQOSUPTRSV[YRQPVURVXWSXTJXQUOSWSPSORX\MTVVNQV]PP[FTOMMSXOTRQSSXSQWPON_IRMNUKOISMJWMQQTTUQKVVNWSQXJNUSMbWVR\UUNNQW[[QUORQUNQTRXVM\MQMM\RMVMSQ]PLNWbTVIQM\YVQMFSNNQRRNSPVOXGOSVTXVR\PCVOLOROP]RVRRMLQWUR[ONETWXYUIHNURV_YRKSHISdQTQ_TUTa\XSVRPTTSNSELWONQPLWSeZVKGWNT^NIPSRPcKPSbRS]KNQYPSS\UUQLONUPTRWaSZPRZXTZHRWZXXUQN\TR[`RNJRQPZ_WL[^TXXWWZKNQPH]SUMURTTFQ^U\[VVVVAdTNOVWLP[ZMPVLKYWO[WXTRTPSRNQL[TNK]USXLYOQQSWXOZROT[UMWROSYPTZPVKFPIOTWUQKWKUVV]O[HTSTTRX[OQCRWLVNKQRTjNOMVYH\LRNXOM^[S\S]]NYTV_NOOVTRNQRZJW^TUZaGRXZWUD[Q\PVOVOUOWSMNSRPRbNT]MPSRZO^OOVVOWQQ[JQaUSWWNT[PWLYLZWTZNNZSQRUSXUYNURURTVSPUYXRNWOS^SVLPUXTUWTSVVWNWTG^MZUPUMSLSE^YQWTYVQXQUPSRUVQOXNVP^QIVYXRSIONWPTJUITOOPP[QTRPQWV]\YUR]MSMZRQTSUTX_V_SOGXNRURZPQYSSRQZZ_NQUXV\QVNRPaOXMVYTWRRPR^UJUUVSXZNUNXPWONQOPJOUQTOMSRESROQOLSKS]TPUPWSWP\XL\SSUQRG`STJTRQUOTTLJOPXUXVTUNWPTI\XTTXWXRJQRRRQYPUXLROSTNSbP[UVVWNS[VPILQZXPKU[QT_W\G[LQUMTTRJdaPLbSKSK[_RRQPSTdWPW`HNNXSSZPWRTULVURTTXUYSLTYKHcMWPDIKHZLKMY]WESQWaTPTQO^VTSXMSRXZY`TXWU[NWOSPRTZRZNJ[UWKMP[\VR\KPPVTTYMVDSWZ[VLJZZRYVM^^LSJUXLZVQSXXQQYSYHWSXXNZ\YVPPYSORFXTePVRSO]KUVWLUYYQOZMYOOVRKOVUPWWUOQfZNVa^RW\[TFTTRFLJTORQWQS[cRZS`M_UNNULWVK]RUOLTYUMZNRGYRO[WMNMN\PPJRQMWUYSJTYWQSOUTJW^OPMKQXTZbPcUQSRTROKLR[IQJTNKWYQJZUVT[VV]VS]YYWSZWNHWMUUYMJY\WSZWYYP\OTVPPR^URZSNP_QNOVIJaXUUIVQ^SYUYXTPZWNZXOWXXQLRK^ZRWXPSSPZNYOGPXTRW[QKW^MURVHYRJW\\VQUSFRSXTUZTUW[ZQKSV^]F\YULJ[PUSN[MZPTR`_]TS]NSUUPWVSWP[VRHVX[XSLYN]SQWOVKWaPTT\STRQO]JTS[\RL[[MZPWY_QNPMPZWXQbQRSTNOWMSOTJLVOLSXYRXRONIWURRXX]KJSM?QRTTQUTMWPaULRX^ZJU_PNURTS_NVTTU[LPRQSTPXOUPRKMVQTTSUY]]fU]WUOJYRMHSUQQQMQOTWSPNWMaZVWWUPRbPR[Q\TOJXSYSOGMPLPRVaPRW\PTaMPHW_QUOMaU\SOK^VEOS\UKZY[RSQZTPIPTTRSOVXPKMMRO\MRdQKW]NT[T[OVTUYLOOW\OR[HQWPdEO[MZdQTVYP[VEVTRRPOZdXVORLeZQON]IPHPRYOYSKWSQWOVRTPMXZTTLTTVTSXYRYI`WNRRYTQS]JSVMONPXQXW^NQQP_TXKVgR\SYZQUSW^TLSVaUOVTSJRQPPY[UTXPPPTTNORQMXPNQaSJWXPWSdYREXZR]KPZWNRPNXV\ZX\MW[SUQUWV[YTSJVUS^UOLUZTSRTOJJVN^QTLUSZSWKQ]efVVYTPSSQOSVXTUMORFTRPT\NINNUM[OWRWW]QNJ[PS^MdRNNVPPTOPLSRTWZTVZSSfR[\KP_TZdQL]UTRY]TXRPXG]eXNLTPTR\TU`QUSUSQWXNOUS_XWeTTZYVRZVPSVQU^JTR_Y`WUPVWNYVPJXIWI]RRV`OSPTVRQWXLQT[]QOSN[ZNLZNVWXVSO_TYN`VXKU_YRP`HMXYT[RSRZPR[TJLa[RMVQLPTTW[R]VRXOTQSYYXOWYMW\N^RRTOWX`GUXWbUNVVZTWPFNYNNMSRPWYSXWNXVV]TLUTPYTYZTGYOLQRVOSQRSUZYQVRZKPQZMPKTSKQ\WVSXTOJJP\Y]VM[UUOWZ_NOPNUTJLY]HNZLIVOWO`WWLTOSOPMIV]PVKNK\SOTOTOVO[TSZSLXKWRSQ]NTTTVVUUORKJTOPRTUUSRJWDUSNTJ^UTUF]HT[VQSQYSSLNROWYV[QU_POMYLVOWXSXRQORVTNT\QTXYNTSRWVUY[\URY\dS[PTXPSTTSVMJIOSW]ZUYNWYTUVNM^USPRNSWQNWMXPRXa]LVUR_LR\VW`QTjR\T\HXUKNTSUWN\OZSMRVSXMTPXT\QUSWWJGKSYT[RKe_W[XMMOUYZXUVVSTYTZTPN_QPSNYRL\OYQSRM[\SXUR[\UUXUPUWS[WOPUY[Y\UVZdZSRkVMTScS\ZQPVUPUUVLPLPR]VTYQURS_X]dPWQRaULTOYMUWWOTNY\\TOVSUYVLPWF[YQQRSOTUNS^RXWQgY]RQRSTNROPXVTRQVPUMLRWOYPU\RTLYHSP[WSPTPMQHKNRKWX]XZXNRN\SVVTJUO]OKWVNLSTYRQ[VRIJY[WZWahLYPUVZNS[XPR[XTQXRXSMQVNXWSRQPQ]QNSPUNWPSMVSVORYQVY\VNWMUSPTXPQPOTUQST\QQTYXWUOZTZYYPQQYUYRMVRVR\UIQSZP\WXTT^VSROLXPPPZYRSRYWSVVP\We_L][Td]TOQ^XPPRUMYWRIQKWRVR\SVQRSWOZ_UQV`XOP^LN^TVWV_M]ORSRWVMZKUQGMWHYSWKRNPXUIQI[WO`HZ[W^Y\MSMSXRYHOW`cUYQPNOU^YMRTSMP[V]YZ\TMNVZ[]\HY^\WNCRN[PTSOQ]aP[]MYJXNJ`RV`XPZPU_K\R[ZWWNcLb\gQ\TR\VORPTQZ[\NNXVO\\WRUQVLVNRSRP]_[NXQWQUIRbWTYVO`VLVPSRJPOWK^R[RRYaUY\OcSSNaUTMJRO[UbNZ[YQPgQOXR][SXZQQ\P[[W]SZRUTOQTWRVWVTabSURNXPTRJTWFOEP[TKXO[LSRPOR_TTZLNWZLOOOIORYLOZJRMU[]SSHRNPUPUNM[QNQ]QQNSD`OSMONNXJUXcVLWVOWWLLMVKWGUZQQMUSQNLX`XIWSRRQRQXKKL`NNUVUPORU]W[TPXSKOQVOJLQIVMRYQSePOESSOP\JMMZ_QOKHPOR^OLPUOMbRQRLOPHTSIOXRURW[JWR[MTOR^RTQGR`MT]RVIRSOVXIUTRNOOMVOO^ZVQVQUQQJLKCUXNNIWUOSES[OTSTOP[IPSVcMNRRHVLMRUGQVPZLUTTNPNSVURUMVRZOEOX\LPUGSRVOUEIWNYHPQY\\WXQMUOXPP[OSQPTWXXLXRV[[OPROUOTRVWUgTPUPQRRNKNP[YMOKWSVXPJXHYRVRPVNWQPPSPS\JNSUXZWTPQZTZPTN\XVXUQ\YPYTXXNXUTVZYPQVSPQUVWNVQZNOYKUWPSUNQTPPXYQKLNOQMTVTPPYMXUWNZTIXIS]XMTRMWNZRKPVUY_SVSP[WSQRYUS]NONaPXTQTWPPNXUXX^NSY\XIRP[QRZTZKT_T[OWR\UUZUOVRY\UVXVSRPWWY[ZVSTZU`TVX[H`YWU[T^QaQMWXQRLQYQJRU[YQMRTP^UWPUSO\OYTWPQQVV\SXTYUVSVWKR\GT[OJSVJSTSZLQUFYRWTSPcTZKTNWZV\ZZYYTUNRWVDYSV[S[QWXVWXPKPRUTJRTRNZWVMWSWNR]NGZ@NU`QWS\Z[RNLYNPS[MQV_TVM^IXSLVNUQUSWXY\S^QG[ZMJXGQVQ[bWSSQMRPSLUYU\QPONNNRMQX^RPRWXZMUINSPLXPUK^MRVOURPKOKRdNXKXTNKYVXYQSQOTTKPFKMYRZXVR[MN]QSbMQNXGfURUSL]ZNZLOYLPZTVOPcVZQMPQVOXRVTRXQNP\TY^SHNGQI^LRZXTQTMTN^ZNTN]`STVST^TXSDPQWZ`TM_PYQRYURYNJQJWMRTYRRPWbT[VPM_IMUIRVX\W[MaVVSYPTOXR[PVQKKEXVSOXTRSTQWPSLVOTU_TLZP_VVLSQLSPVRWTPQV]^SSJYUWOQZQWS`^MSURT\X[WZNSMXT_RKSQMRWPORUSQNHRTQRSWUXRSNXO\PV[aMKV]RXMQRSSSRZZ^RX[U\ERHWRQUQO[STWUbNZYYKVMOSWYSYJU`W^TZRR\SSSYVSTMZYYQXR]^QWZVSXMUZUUUQ[PZXQTRO\NNTQ\ScU[YXQWVTSHSMWRWTSSYT[SQJVX[TTX[QKRTUO[NZOTLWRRcSXYXTTROV]_ZQ[RST_TRZ^\RMYQRSMUUMRVWVYYPQTUUNWJR\aSIRSTZ\^Q[UTUV^UV_GOPXYOWPNYKUX`PN_OUPXKYKTWTZPYN]M`TVU[`]W_]MYXMTWUSXSSdOPV`ZQS\VTRVTSPYJUUSPZXWPUTYSUVQSXYNVY[XNV]`VTYVRPUVUUQ_TR[RTOW_OR\ZSaTWP_UTTQYVWVQT[WQVZORZTVGSXRMUXUTQKTZSQRJTRSMWPVUTMSWXSWPTWbYVPQWQMQWSPSNYYUNSLWMX[\WW\^VQWUUURUQNSSURWY`TXWXQSZSR]J]UUPRWR]UQTYbHOVMUYQXROURUNVSRZOTU]OPVZRNRRXNQS^UOPMUSURTO_PQS\PS\OVUQZTTQTQVORUSQZNZSQLX][PQWQPRLPOPSMaJSNNPNQSPVOUVMVYXTYQZNPK^QNbWWXY]YU\URY_TXYV`RTUPRKYT\NUYSRNVVTSN^YORTHTVYSNVOJ[XRPUPKR[YKWP^VN^QSOUYUZQOOVVXRVOLYUWWPSJQKVTQZN^WSUSRYZPQUNUVPSZM[^RPQXSRPH\Y[IYXRYFXTYVTRXW[RG[GXWRXRZWPRQXYZ\OZNWWT[S\X\NR[RQ[_bYPWSRN^UPRPPQ\K[RNZWUYSUQPMWWZOYY|eZTfaiY^QR\ORPP`]XSOVZbT[YfUU_DX[WJYUTmcX^rXVVXWbYJ_XWXX`TPaYWTaTYNPY\\OWPgXU_b_`QXZXZdaRT\cYUT\aZVrVg`Z``XR``^[__S_bOR[lgb]vdN\XQY]VU\Y^af]fPeZ^bO[OXa`ZUWn[_OT/aLUaUXXSWVgacYUZTdZ`^_W^`V[^[TTYW>a^aPfRNK[^WW]aPaR_cZ\ZYN]WXYYZ[R^`[eV]T`Y\^`ak\ktZN^XXOVW^e^U\_SWf]RWbW^\T_cN[aVdS]PZ_PZY[WVRXR[YW`PWTQYXYZXKSSL`0[SSYUVU\_Qc`X[^X_U[RdUVXV`ce\VNT`Y^\^Y\_L\ZVQVVZXbZXPYTXcMU]\^YZZX]YbTZPVSOGMRLZRPUTPWY[JUTWVPLZRUOPYXSHNDYOL>LSNJRTPENR[QUTXXTYRSR\UONV[YUMSPIRLTTMUMWI_MRMKTMLNZKVZVObUTNGPJTUNOHXOZIXGSKUWPTYPXEPG\RURSU_UMW\SLORTQGWKCJVSKNZHOPTONYLOWTTOXHRSVIVHVNCKZXCP^HQPRN[[WO[HIOJ;MLPPMVdWKHU]WRYUJXPMWKYRJDUMFQUOVIHSZQQY[LQOTTJRNOWJTS]MQNKRROXTSFPSRRRX^US]ZSPUQSLHRBKKYRKDJX\XUMTTUVHYPUWOWRJQOhh[[VNGJUG^QMUWW^VSQ^PWNIVTXW[TWUWT[UZNHPRPTWRRXJTUV_KPMUR[SR]LFMRILJP@RUWOZQGNMJKWQRPVKQXTHXZZWTZOPSQTOMVQMLYZTQQGTSRK^SRVORQWQZY^POWQR\QVSSSO[QTKRIJXTZOROQTPOX]TRVTWXRV]JNOTQSRV]VHSSMLNQSVHYQaXXPG]ePOQLVVWJXVXJRVVQNUO_bO^^XSOZP`\NETPU]XRSSQPMLRWQ\XMQTPSWKQHVOZTVOQRPTL^POTPNQ]TVSVTS]XQPYYMVMTJ`SaZQUYX[YGNRTXcOTPLVIPORKUWWLYMWO\OMSZT[PMMXQYQNZWULSRMSZLWISLTRPLPVSRZWVIURKVSKPKQZRWNWbJ\QRWSGO`USN[ZO^NOVLOPXQYVSQ]ROVNXVQWSRLWXVPTXOTRU^KPZ^]YSOZSRWNHJ[TUTXOONQMS\cXj[]QP\ZQOQWddKXVQaQVYIbOZRYGQN]QS][L\Z]RS^VZUXS\LXVRQaaVW^XNXOXWRTkQUb[[^\ZnN\U[hU^NPPYV\^YNXTK^PbULgZN]O_TRJ[hSUOah\eP[HI`SeQ`TWPLeZU^ZRU\ZRR^PRVT_[HLTVPKU\^ZNTSXWZSmSZNTN]XiZXSSZU]cTWIZU^O[Z[WYLZRTHQQH_Tcg]MHQ[WYKaOYT\Y\WREL^QXRY_QeVZOUVfZeSOUNWYd]OYVVW\UJQTSTPRNWSXVYYQTWTTQS[FY_NcUNSKXLOeOajXM_aQPHUZf\PQRMMTNNFW\_WXZGT\MVEQU^VT^U\O]]JT\UNVKO`ST_QS]J_RO]VYXVSYHRJUnSWaPV\QRJSVZNDP]LSTSOW\TYVWUSWVRHUUPXNOSUVLNeWLOSPMXNLJRXNPPUORTZLVSULVXTOIQPZRPNI[UQPMRNTP[WT[OOSUOOUMWQGQ\R_OXZUVR^SU]POSTRWVSWVXOXTPOPURT[IV\[TRURNRUS\IWRQ_VPTSPVLMWOU`PGXSOaSVPQI[ZYPTWPOUPSYQSVSU\ZTQPRNTSWPLPSLW[STPPVVIWOQN[XdRLGP`SOQVYW[TQXVRSOSP^HISQVP^Y[PVCY[SOSUISN]RT`T^QYWSRTOTVZVQPXPOOSX\KTQ_T]ZPUXVULSQ\KJ^OQMVOUTUPRbVZQYMVSYWSVNZ[SX`WPKRXQXaZQRSUPRQL[R]UTMWKXV[KQOYZXZIXVNUYH\QJRVWKVPLOSVLONLSKSUKPRPUGIHKYJOUBOITJSKJNSTPSVXKLZXKOMlVRXORQRQQRUVTTCULXQQPOYUOeQSWZISSTQGUHL`_VNJ_MKNGfKYHPWJIQPVXSQWSZUQK^TKKOJXWTZOPYOQMX[S`QTV[UYMXVKOFUKWMRKSJaESSQURUMSLQSRTOYILL]NOQNOPHLPKQQF=\MSSDXPRTNKMRXXJWUNOLROMSQMLISSWSWXNGSH^ONKMITTMJZNHUUSKRSRPSJRKRLFPROM[NPSTKQITRKBPcNOXPOYVQXPK^SMPTOWRZLVQSSMO_Y[P[MQLKUPOLMJJVOWLTOTRMURVQUZWXTMWRTWWHQPULKNQQZHXEUVXQWRPP[NNKLWLR[UX_VXS[GLZPVKUNWHVTYMRWPB^KSIPR^QUXMNI^TTVWUQS\^NXQTQXQPU_SPZTTRPRZZWNVQWbLWPNUZLWSJJSRXSRTQONNNUWWTRUXHMSU^XKQMMSZT[URSKNWKSOYSOZTVQUPQWIOJJQNBMRNU^INZ[K\OS]QSNUTPPZSbXJQYOJLSQ[PWQS\RNKPQTZZO]O\LUOPNNZWLNUJJP[O^RZWNTOKSLVMNSS[POXM\LH[WYPUURTTWLUPOYRQS^ZTPVO\RPTPTLP`TX\SXUXYYQNOROQLPMWSKUPVRKW\RPPXM\TRFLQTQOSSIZVUZ^NWSUQWLQMUUXFKPLV[NYEPSQORRSTWTP[VYTWQTS]SXONYSQ^RTUULK[PZRTKWYRVRMQMQ_ZN]MUSSVMQTRPWRVXTQTWRPRUfTRZQTCFUUL[]Y[]RTQVLRVRKZOQcT]NKWPUbQNTONLQNPPNRSOMJKPUS[WQKXNLUYN\U\XS\RSJKI_ZKMQPP^TPZdRQMWPMJTNXQHKSHUJWVJVTGPUVORZ[QXOZR[YP_KSUONSSSQ_T_YNPNT^NKRRYUIOQPOJZVSMKPMS]QYRUYRMFbLJLOWNZTPPZWN[^Q]QUTWONVRUJY[TZTWORWQPYTMUZM\I`NUZTMSDO\WKO[PWR[TWPQRNU\RQIRYWURYGUSUZ\WWRRWU_RTLNPYOPWTRYTYZ\^\AYZURQEWD`K_VNZSZNRKVQYKRRUTSTLCZQGZK[Q[PSZUKUVNWMTUWVQV\V\ANHUSRQYKWSUVUO`YOSRPN^SUUIYMO_V_LOM[IWWM]FMURPXTJTSWOLWETYJaYY]V_KRWNT\VQ_QUSPNYWU[RJVXKLVVYQRXPKM^LPXTVSKSSLL]VPTNVJ]\MVVKURMJ]ZUPJTVLSeXUPSSNVXMVLPSSMXXQQYPLYY]\UVMOXUGPa[MWGRVTRXKPPL\XPSTNKTKVXYR]YNQVWUP_R\SJLN\SQ\UeJTSVSMQQQRSXYZLZXeTJYPTLSOP^UZ\RJ]NQLBNT[\Q_VYVUSSYRZUISWZLZOQVTLORMUWHPNUOYSVPU^ZXVQZ[URMJQUVTZQPbMLXZTRPLWPSLNSMRKQSJbVUQPMZT_NTbVSUONIVWa[TLZNIS`NLPZKVTO\PYGWNPRVURWSW_OKSNTZUWQJPRKRKVRPQTTQYSTYOXWQX[UTTVVXWSUPPQYYNSXPTOSVLI[XYPT[WZURTXU\PaPVS]XTXURRYVP]T^MZXVX[UYRRWUSRSRSZVVZVOdSZSORNS]JPYLVZLOLQT[VTTVRbXSUPORNOUTWUZ\VbRZQMIWKWWRbY^_bORQITQTSSNUMXYOOUWUJZSSNZKRQRVUKQY[QNSTQIMRLSSX]YTUKWZYNTTWYNVZVUKMRW[WSQ[UTSNVXXROPROVIV]QVRRQKOXUQUTZaXNQ]OZS[PRXTQQPWX]_KYTMPNRRM`U[eTTRX_XYPSOaUUOW_JY`^YR]MTSVNUVPTNYZLWVSORTWK^YUWRNNNMPVZTVVTWYeMZZLTXaMNXPSNLUUXVM]\NM`WTPRTY\L^NN^Q[MP_STNQQ]NXSROLPQVWVXT\WUVTNKWD`MRM\PNRXKQOYPMRYNW]YTJX\[RRKNMCORRKORSNKZYTMTPXQSJUSHIRWTLLW]LRJTHWRSSMNYTFSWFTQEWNUSOVPSU`\QWWZPIRWSKZPTRS\PRTQTKVR^ITYWL_RKST[SWRVaHYINKWTPPUSSRSONRIOQNSVR]I\[NfZVTRMRQXXPP[NPSTSNIaYSRNOVUI[M[TMPMTSXJ`PMXMQMRUPSLTRKRXPP\ZLSQ_X[R[aVRWSaSUNSOVWYTPaP^U_NP\SMYEVM]QcLZMQTONKUHWTLNWXWSHQRYXURa[XUWXYT`YLWUM^WPNIMUWKSWKUSWEOMUOQQR]HP[XXb^VWWNZYS[KXbSPcM_XRKMgR\QYVTOOQLN^XWRPYVWMSXPPLYOSPNYOXUESVZ][MP_KTZNPVO]W`QVQVKRRQLLQVQSTaR\YSaOSXOUYXXRQU\ZCPNUSVOXPgWY`\eL]QPJUYXOYPIPNWSPNS[TTZKJ[YOWPKTUZTMQXTNQLYXQYOT[PLWMRVRM_ZRQPT[SDXPRNVYLRJMSWQTTRV^TNQVOM]NTURU^[PVVKYMTVQQSYYQVQMNRUWIQ\PRX]UT_SX`ORVXNPZOINTNUXUYTUJTTXSP^QTPUKPOe_[PPSSVQRTYIOTOWWXSSSJQYRKVNcLMP\WTMY[NWXRPQRULRLINMXFWOQSWTUJKTOMZTVSWYJELQKSURQ[RN[Y]QL_VYPZQVM`XMJUOSSZJSQRMR[HWPNSQSPXRU\PTQMQQVRMWWUJR^JTWSNOQUPPOJXIVQTPRRRRNWUXTSKPVMOYGOJNXWXL`MRNTPVSRVTTXJUTRUSNPOXNTRUXPcSGMSdSSKTLUTSXU[YVTTKOTMOL^XQXQRMRPRSWLLSJ_SU\ZaVPWORONYQOKYWXTQTSNXZYWVPVXNXUQUTRUQMTPOTTVYVRZW[SWZLUNVQUSTJYSJSVS\PQYUNXZMRRVSUJ[NKSMWVST[LWTUUYLUSIZXSSVUT^WVZPROTRZOWTXYP_OWTQ[STPOO[TRZTJZK^SW_RUPYTZW_QPPOLUPUVVYYSRNMU^IWMMTQYRJTRIPaKWUYVSQQIqTVVQSM]R_HFORZTS[WNZVRNPQDQPRUPITY\YNTPXROWSMJH[XRNULTNZTXWTRNT[IGTMNOQPSJMSUTOOVQRVRaTNRWT`[\TVQT]ZP`BXTNYOL^O]SS\YOZOKEUNQVWIPRIRWRMQLTQJPFRYOTWBQPQJMUUSOHVTHGDNKKUX]OS[NTLTNOOV_GNFPTZFKUQYQO\RVDVPRRX[KTNMZVO^HHXXGVPXiPRNZNSQRfQU\OYW^NSXNZLSNM[VMVULVOJMTLNOTNGNPHQWMPPLO^TQ\TVTXRMRTSXKQQQQPRQVPSVV`RORY[XSXOPPUYVQP[WSLNTTNOZ]VTRWJPYXLN]WQRSXPMWTSQQLORPSTYYO[S^URTQR^PRSOJSHUR\TR`TOTTMQUSLRSPZSZ[[SORSXUMQTKSJS]RSOSVMUZZPYXLRPSGJ\ZRMZRTTZNRJY_VSKMSUNTSPLSPOROQWTIYRVJO]YRRPURXPVPNRUNSQPMIZOSUKSMTOTOOPRWKUN`VJZQVSK`TKRWRPQKRQRI]VOXOUMVUWUJS]NVQPQQRSSWRRRJROM[SO^UONIVH_VQXUNQSRMXKSUVVQUISYWRSOZLTXNIXSRU^XRYQZ[QQYRPUSZRNRNPWORI_QPUWNSZQTTNWRPQYYMOSSZNLeVPXPPVPPNLRYTKVMbQKQTUXPORVSTQOXOQPWMQQWVW\WUW\PRRSJIWQQWKW[VXQ[OVTOXZJRWRQQT`eWUQSPTZZOSPSPPOQ\RYRVWZJRH]LRVO^TYXVWYPOQTSTQQSLXXRUW]aVPUU]R[ILXILOMMQKNOZUUW`\SKEXXYXKXTQOQZRVPPPM]IVUVKX\SPMKLTONSM`WTRVJQKXMJWRQW^T\]JPXMYRMPHQS[TRMRPSWSaYY]`UNQNLO[QWVVKKTVZTQQOT]KU`LRRQLURR\ORJRIXSMLXYUTLYNRR]WP@VNQORMJRPXNQXL^NST]HSLg^OJZ`QVWRX[SVNTVWANPT[PQKOJGTU_LZ[[RSQYMKJNTWPYMLQRHKSQXPNIMJSUU_LTIPQILIMEINPUKIPMRUU[QTLZIFPIWVLJ7TSVQNKRMNSRMMTGQWSQUONL?RTKWKWOZJLOESYfNRRKVORYTRHWUWPWRMQFLQU\KJVTPJIJO|PSJOKVQRRNSQUTNIVTKSIQPJIMTNPPKP^RNFRJKVUSKVGQRLMPRSIRTRXNQTQUXWQQLXOWWKGWSLTUPcOJLQRPZWUUVQSQTGPTTTMQVJYVNULKVPUVRNRIR`WVIW]SRKPRUUPWRIW[NUYVBSiJKKO]LMHRPUPRSUQRTKSPUTTSMIUPOZNIK\HXVNUPXQZMS[HXMMPOORUQWSTYWZYGKNGYPPLPLVWMSUMJSPSRNHJ^WRUQPNMRQPYSSQMXSTVSYLXSTEMVNPWHOVRN^QWSNO[S\JNJP_`NPN^[`OQOJSdNLSeLP[]VLMRQRN_YQXQPV[MVUKSW^SUPZIRNVKQQ\YSXGOJKOWNQAQJRU[TVTKRTSVNTONYHZTQS^X[NSTN\SMMPJMZLYTTYKSUVFJTMUSPQYSVQ`KH[NTOSSSUVQOTUNASQYRHQJUVZZRYLK^OQJMQIVROUWHXUWWUPM^WYQYWOUNKO[TPSTTULNRSSVR[N\TUPTSTYMOZJMW\UYTNWVN[[V\TV[STSNTS\OVVRUWUPRZTHNWNOYKQQP[NWHSRMUOQPYTVMRYUQU]NXOR]TRTUXYLSNSTVTMQ[R^XTVSUMSOUYSJWQVSPPU\UROTT\RPT]HVOWRUXV\YR^UQUUYWTUYVV^ZQ]PLPY^WM[SYXUXTMSOWRMZYZWXINZQYXUMQUEYXLSOSXPPQ\VT\OROURW^[ZRTYKSWRNRM[KTLOM[ZV^NSQ]T]YTYYN`WKQR\YY[QYV^Q]`RRSOUUSYU\RVUWVURMPNQZNOOPUNUOPPVUQ[XOUVVNcXM[VTPPQSOOXTUTZTSORQUWVSQNRX]YWV^ZQZOWOQVVLNVITPZVaJQ`T[WKRXX^RRWLRSZ]PWPP\MV[PX^JVSUYSY`IUYXQ]VQTSZMUZSRWV[MOTRVMXOMQPWVVPaSJKUWRWQXLRLYPWUHTNSZZXQRRPVTVXLQTWRRYLQVOTT[LYKJWRO[SGNNSMUWRTXMZ]RXSM\ONSVRMUMZSYTRP]UXWRQWPSUKSOTTKY_NVVRUJLXRSNWUML_G[aJW^GS]WLITXXH]SPHYRNI_S^NRPT[\M^PQSUURNUMSUSKYQTORITQ`WOQXPORSXPQQVMHHKTSYNbRLPJLT]MQLPWXPVTTKKKTRVUUZJMYSYKSYNOPO^HKFLS^dKLUQMNNTQcQXVWQMWMVVMQMTQKSPSYMPNIU^VTQPTNP[OOSQPVUEVQTHVQRQ\VQUPWQORJSKUPZ][TUSZSUUYYXRXYSLSUVWRSaQQUUQVKO^PQYNTM\VQOQMMRK`TPWRUTNXQXVO^RRRJUVYJS^QPYNHUSNYSJ[[OQJIQQJQM]WXYBfaVdZm^Vd\^_]U[jXXUSW`[^ZVgVb_P[dXRa]Sfo\Y~X\QdZmW-d[\]`haV`[a[ca^^W[UbZ[]nX\gTbeX^c]U[]U[^oYiWTe^Wz^Tn]ddXXgeg][ZcUYW`Vbb^[zW]QQdcu]U]]_^WZa[e`fhXY]Re`ca[sguQe8ZWV][XYLiQibZXZYbbZbX]ar^`[Y[QSZ^LZ\n]e\XP^ZST\`T[XV^cYi\cXZ\`[Ub]VX]ki\[bZWeyhyWrXcgU]\YXUk[VbYTbkTd[^\Y`WedhZgXf[jVVgXXZ]\TPWZ]bg[XR_d\QVXX]Ucf_*LY]gbcT]fOdbd]YYZ_cYbVYW`[]`UWoOd[Y[ca[ZS^nZUcYY]dTXWWa`pZYZ]]`YTU^PU^T[V`YORYYQ`^XN]RRONJYcPXKJVUMOTRY]SXPTT\WQRQZ^NaSYW[QMPXRSMXX[_WHXYSWMQYRYOQ[PYV\O^RVXU_QWUWWSY_YRWYZSUT_\RhURZWL^UXUPYKWPSTOQYUTW[`QZQTPUTOSRWUcQTU\TWU[U\WNPQTZR^UXQRPWL[YLWVSbX\XUVOPQ]PNSXZULPYOUUaV^R[^LZMRZKZP[^^WSR[RNKMS[\UTS]SOKaWPURWY[YIMUTTeKYZ[XWMY`TNXXWZVPZ^X]QSISZPTRQVLLURTKZ^UNUSTOYZ_WUXNUXPTTUPZPZWVW_YUQSNQSWQTSZQTXTRTVRMSPXUPWcbS^VYQ^OOOXXXTcMWXQX^IWT_QOTZPWVRJ[QTNTSQUKSSKWJSYQdWMUTTMRXUTOSK^ZSbWWS^XRPNSKKMWOQXSTT]WKUSJTISL\WPaWUPRRTQUTMHKXYWLWRQZWNVPS`O[G[WSSR]QQSSJLPXbQXVLRPS\G]]WQVVG\PTGOKWTPQRYWSXSDPVTPS]X[RUSTV\VZSK]UUK\^KSWQFHTLSPUXOWg_[_MPT^_]TMZPZZ[RMUX_VMOW[RQSRRPNUU[J[HRNQUULSKQKROLWPW_\SOQ`XXKPMQOG`UKUURXRS\TOfOQGOT\QQQLbOSLYSXRY]MNVMSZV^]YMIWUPWWKSWS^T]_JPPXSNWJTZ_S_RSVHUIGON_VHZW]OS`M]XHWPORROWYTZPUNKUWRQRZi[RUPMMQZPSaOLYOMKZWTQOOVVRQQN^OQVPVRQRRXOYQPXTQTQPOUH`UO\XSKSNN\fXbQNU_WNVWPQW_UBWY][XJSUNVPZGS]TQ\NTUSUR]XQQYU`OZQNRQRT[NXNVPUUST[SYTXPVWSRZMVQZMOVMOOHUZS\RWONWXJSWSPZM\TTOQWZXSMOVW[SOVROYRfHQFQSRUUWZSQPRQXOSQOZ[TVSWJMMTSUYeSQSRKWWLOLUKd]OOKZNRRQQNWLYUNSPQPSUVXWXRQUNK[YNSSPXJPURPMRLTT\RWNOSSNWWWNVR]UMRYSVS]HWMRW\SNKU\ORTQXTUQTKSTXVVROMNJNOcYQKYSYTS[[MYQO`XZTU\[RUOWUWRKOVTRZL[VOWDTTPMQWSVYPRTNJQQ[SQRRUTWQV^ZRQVOYNRWUVOUYOQZJMUThR_LXV\ZPPP\V\S[ZbbWR]ZK]S\Z\RVVVHSMRZUXT[PQYXY]^SQKT\SSS_TMaUPOLSYJV]PUNM]TUOXQZ^^\OdODeOS]QS\RWPZSQIjLdWVQRJQNKPUM_XXLMPYOZYUYXPUOUPRQ\XV]QUUKPKQR\TR\]YXXaTSUMVSNOV\UU_]PTUT\RIU`S^^[VTQTP_PVX[QYYYW`[VS[OXUURLVRMQ]US]NP]ZYQU]ZJXVJUXJZWY[S]`UW]SURWW^\QVWXUUW[RHV[\MWWR^]XT\WWWYXVQWIMQX\ZVXSLI`\XiTRXZ[YObPQTTUU[PRZ^SeVOVO]RIQVLPITbNgWWYJW\SZMOa_RORSWWZYUKUOPNXWQN_HUYVYXUWSVO_QKFT_TOQORNWH[[VUNK\\NTSN\NUaH\TXUUZYVYYTMKPSOScVHV\TSMORRQMWQRRK]POXQVJME\LWOa\N\O\TNNZZX^UQJ[IKNSXWXZRWASN^TTUT[_[NSYWVIKWSSTPTUYQR_R\OPMRUUVQUWVTZYPJWTRYO^K[UZPLSUTRX^RJRQNXSYWHQX[XTMOYQVYLOMNM_PRRQRUNNQZPOOXPTMTTWSSZRaPRYWRUN_bgXZ\ReO[MZUJT_UPUQWNQeMY\PYKRUNTXVI\PUVOM[WLRPYOPRT\ZNOQ\T^ZQSTX_ROXW]PRP_PSTWZNNSYPRVXPKTR]_PQOVSW`ViTQ\RQNTZ\ORaROYY[]QUVRR^VNR`]SQ^TNMN[RQUKSYQURVGUSRNQ]U_[U\\WVVWSTVDEHJXUQPHXILRSNPMPQP_FMFWgXT]QP^NYNURMQTTRW`RXSWW^NNMWSL_YORDRVZPQEPQO[NM^M\aQSURKUPYW^QHSVPWUFPNTOJWbUDUORWI[QPYVIXHESM^QKTNWYSNKL[CPVTJ\TUQM[bKRQMS[U]QR\FZbSQLNFNL_LLLJQeHWRYYLVYMZLUUSXUOPKCMTMXZVRZNLQOMOYPWQZLNNOIHDQQOVTXPVPKPR\VTJPFXLLHKPNXPW[TT\YRLWRRVSVVVTPPVPFOMKXQRSVSSXOPQLN_NWTVZJTINURSRWYU[ILOTYQXOSUYYWXB^VVQSYQPRZSKTTWSLVPHKRT]EMQYRNQNRWQP[YYONXYPOMTNTUUZZZPURTYQQQNQLSKXUYV^]UWVYNSJTPbZR]YVM_UTXWZKVTMTV_OMUY[STJP\ROMRM[YOQTRMWTWRWRZPRT[bVJMVPUPNRWS_UN_TYONWUWQNXX[RRTO[YXORYTcbVS]NRPQ]JXKMUL[KTOLXbPNTYOUSOUQPSZOROXPXY]iOLW[_W`UZUOTWJQOVMTXVPYSS^QYXVXSXVYRRS]NPOSQMSQNU[bSTNNVXQTUYROROURRTI[YRYR]RPSXD[KMR\WMON\\QTTTSPOPYONS^PUN]YXWXYWUMR^VVRT\U[STWQPX^TSXRUTWNPTV[PKTTUPXLYOT[TMSNUUVUU^NVX]Q\WR\[QSWTVeV^VNTPW\dSJJPXK_YQRTNJKNXHWTOSWWSMSXcRPTOR^NRV_SVY]NR]QTYXPWURSRNOR\M`[VKSUOQZRWRVUMOP`P_WV]RSQUJZa\VYLTQVUW[PO_WTSQ\KMR_O^\Q\bM[WLLRQ[RQSSRTSRPXZQNWPRSQ^bOVRGWWPT]QNZXhVTVNJXJTSRX\RUaQTMQRSPRYSUSRS[]LdJHQHUNU`NWKTSaSRIVTQSPQRWWSSVPaN_QSIIXT_OWYOXPXOIVOPITURQQVTQRHPPQGOSRSXQXN^RcUXSPT^HNKXJSHVSISNZZKNZPPZQ\aQ`LZYT[[IQUOPUPROOP`RTQJ`XXXTJYORbSXPQRNSTUHJRVPQHUJ\WPUTNY\`JRSXOOUQPXO\FWTPSWTXLONTJRUVSOS_LRRVdVTLOYQRS[P\NUMUWYSQNYBPVHN^RWVYVR[RYgTVRaSWRVVNTVRO^UL[XPSTTWXTVSYSMUVHSSURYRULQPQQRPWUUTNQNKY[OS\SNSJKKbQLQ\NO_^_cRNLXTW_QSUULRZNMU]JONTQOSRQUK_WPUT]NOTU_XZWXZXLfMJTV]VU\P_TVUTTVZJOMRYJPQWKVMOSORQUUP\QTTRQRRHSPJNKXIPaLRSTYWTPZPRUSQRY\XNNQROT_VONQUOIXWQVWSN`P]U]PUMQSWONWVUZOPYNUTOUV]Q[UQXSYVRROUNQTYUPSQVPQZQTV^TQSZU[ZMY]SW[MSeOYU[WJOPTRUcUYRFOKVWWMNQQP`VZQS`FUS[TMHJQSX_RTLYU]WVOSSQX^UITYSSWL\RXN[PXWNV^OSNVXNT_TTIUYUXSWXOQOOOIWUMUW][JWROPWUMWRURPOVPLXUXHTKMSSXWUTMV]TgQZRQUTOSMMSNUWXRUV\UbTHT\M`SWVURWLWEOROLPOQV^WK\SQWUSVMLQSHR^ST]RXPWXOWQXWLXSWOQTOKZW^MUNRWPMMVUTRUXN\VQWbSZVWLNQYOSUT[MTMXT_MTQUHULQTUXTNT[UKQXUV\ZQTeZVNQRXTRQTMQ[TURXX^TXTTS\P`OS^YW`QSMJM]VUJSN\MSP[UXQWWTNSQZ^YRTPNTPRS_TM[MKSVLUkNK^YYR]RZRKT\bSQMOSSSO^ZUOSKTROM_QSTWQVZNLSOYQXZOOOTYRSPUOSLYRR[OSTMLQRRQWSUJPXKRNXVU\MNWONSRUUUORPYON[TRQeZYVOKRNb[P^FTRTXWHTOMSXVPRVQWMYRR[SKSPhXN]]YVV\W[QZSQWHV`PZQWWZWUJO[TTQPVUSQ][UMbYeULNSXWJQSQMUPTYPH]MUULIKGPjQXNP^KQOHQGTMYKWOQKZTQV]LVULYKYMWJFSP]ZW\OZOV\ITMRUMNXTLTSPMZRWP\QTSSWeKUQX[PU[PWL\RINJYHSSORULQOOSSXRARS^TXTTYOZKQTUSSPUJRROPOWESVS_[TQ^TNPSOXTSRM[[XRWLVSXLSUEQWSMWVNTLSR_OX]XWNYSNZQQ^[QUXUaQZTTNITSTVXVOTVPQTV`UOQNV\NZSR]SP[WOeVQZZPM`NZPOUURTFQWJT__PM[V\OKYXKVNPZSOVZYXYIWU\O`INM\MRKYRNPWNSLTJNSQSOOQWRSV[XRbORZQIbPTXiYTOQOQTRGMWZQYYIX\GYP]VR[NUPMXXVNPTSLNTT_TVUPRXHJMcWX]UWMTOPOLROTWVSPNRPOUYTT_M]VXWNKVSRRVNWXTUXNN_QVTL\RUZ[QKS[OSUMRTTHUQQYRSUWYSKLHVPUXSWMOSNPXYYYRI\LSRORSTPMNN_UW_RQP[UXQTSO`OWX[OUWRWRSZRWWRRROOXWXQMQ[U\TSPRNVPWULOVQPP[U\aZRVN`YTUUZUQXSQ\RSSZJ[ST[VUXTSVQUPdXRLRDeUVR[RQMRNLSS`LPOVQQTRHTVQSMZLZMXKY]SYMQE\OHLMZKQQXYVUPQUWKZUTSRVRZQGWTU[dQfKSTLVMSNQDMPOWMQRPETRVP]OWSTJ]YSM]_NHTVOMSQOKbNQQMRYW\[ISRKTVUVN^XTHSQYSQXV\TOXSLZaLfVR\OcJQTPOKR_TUhRYSPVXM[ZAOWPSWKUR_SR[[RNaVOVCUVUWPUVSQUTRLZVTQR^U]UTQROLOUWY``ITcOOXRUPSTM^UPZ`HOYXLXPdWN]MONSUSVNXEOLXKZURZNSRNZRXNJOP^PQUU_X[VJNTRLTZQTQOSSQTQTVLQQTYPSLSP`S^PONIS[VONKYTVMVMLL\QTZYWNNOTQON^UWSNRSIRRNQPHZV^MTPRIMMV[TSU[SNJdWSQJKRMTT]VVM]aGXBY[RNQQ]LQSJTXNQNXMUXOTTOGT[Q[SZPMVWLLUXPKJ\K[ZPRR^[LHS\SXT\\YQW?T[WhR[Q]^TNHNUHVPVgWVLNYVWQSQQLNNTTVSUTQMTYJQ`SYRXL]T_RXTNNgRMSLRWQLPPNWOQOUWVPPWWPSQUWQZWSP[WVgGQWPWT]ZWROTMRIOOSUNWZZSSTRPNVXZMRQMUXOGMOWRX[J`URTWZMOXKZ\XIXLNMQJNUNYQMOP_UNHTXTN]U[SK[RfNIZRSPSPQLXU\VNbXWPOVTNQPNKYTOXMJKPMUbPNQQZPTVMUWWV[OO^UWSPTPEULYXTXLUU[NGJTIPQSNSUVYVMULdLVSMQNXREUYcVOPOPPPNUVRUSUVXL[OTOMSYTUX[RVNSQUSQTYLKXTXPVLTUSJNMUQXUQYWKTS^O\OOMQUcTYRWPPM]M^NRQV\PSRNPTZSTOUHVU\LRVNLMLSHT\Td[PWYHQKLR[V`YVSPQ[ZYVN_\QRW_XS]UU[IFU\_bWTURDTLU^PUTaKYWOKbROUSY^MLKXSTTQTUSXRN_RS]^K`cFYW[PXGJVNPOVI]SHcU[VVTDOUSK^R[[QRQRZLNSSQORO[SaYUW`]QOTKSPRRXU^U[XIPHVTUD^SYOS_YbVKMZQKPPIXUYMPKX[U\UNPYYVOSXQQOTNPUXSQRTYSQbSWPVTZeGXV]WPONNQQZ`T[[WVY]NXYIcTYOTOPOW[KON`PRSKTQTPUUWTNXTR]CR]VTYXYXXRNOVUNQOPPPQRRWLU^KYQVXZRRUORQQUVLTZPUH_^TMURHNWMS_PLLQQWTTUYZJOJ_VSVXNVMNRQQJ[SLfYSULWQTMWORQ[UIQXSYUUQPMNRbb\`OKUKWGRWPY\ESRMUTQUTRFKLPNYOKXSTQYP[QTWY]UOPQXROLLYK\[JO[WH\OXUT[_YXFR]MRENVeSQRXMMHITKSRES^OWUUPOPRURTJOTMRSWSNNWSSOPUU[RQQX^TUPXVQORVOXVYVWSWQWL[b^MQYZV[JLQVSSXUONOVWLTYGOZIOXYKTRWWTUS]VQVQQR]KROOTMNQ\W`VTXVOTbMURPPXOYFUKdP^WLFLZ[QOSLO\XgQW]UdTNLTQJV`^WWJ]PPWTRZTQZIN[Rc[TJHVPRXJNTQNXNLUMYPPV]QVK^UUTZTW\ULSWSUSSUY\]WPQ[V^SUMbUJUQ^ZOKSS^_SPNXSNXQcJPPUZ]OTLVW\WRI[SWdVJQHQ^PTQTWVRaZSYa@jUKRX]UR\[SS[ZZVPRVUWT[URGTRUVTVTXINQRTVXVQQXV[QSbXZVXX[]YZWXQNOXZMVVWLTRZSVLTTN]WTOMQSQIUUWUURJSSPYV]aNTW[bUVNOLYLQ]^UQVUTTQLJWS`WTPaY\ZdRSPPHXSQSUO]WUYQUWQUXXMLTZXQSSTZVWZQNXTXZUK[RLUYO[XTKWNWJPWO\UPRPKM]ZWSUTQVUOS\\YLVVOOLNPVQU\ZVKWQ[SZ]L_^QLNYRT_U^N`TXZXBSJMUWVU_WQMZVVNTCTCPQOSZYKTX`PIXWLOKQSXWWXSLUKRUSMXSNHOVWUVaWVWL]TMUNTX^KTPYVWR]NS]OQPXVQNRQQWQNNZVVVSZ\TVXcUTMLLX^R[ScYXW^YIUYYUZQ`VMRSJ]TZQTU^WM[WUJYQQVXRYXNTO^QVPPU^QNRWXSRRSH[TNULXScdRVX\RQY`^]OTSX\IWX^aQUQRUP[ROQOSdCNSPSY]VWWSYRQR_ZNW_OXNY]KX_MUKTQY[VXS\NXROOSOcWJO\]ZKPWQNUSMR\OQUTRWTVVVZYSURMWOXSKQMOVLKZ_VOYUZ[WRQ\RZV`OXXYSPV_NOORJQNYSVP[iPRYYL[ZMTXWZ[RXXVZPd^TORRXWQVUP_NPWPTUVXRZZLWZ[IRXRLYYRQRVYQR\NQMVQQTUQS]VSQQQVTHSZ\QQUYQWLTOYUZZN\UNYTZ[WVPYYVMQNTQY[VURSTXNQRHN[[TLVOQPUQX\OPKKMMXQSXRQPQKWPSQMQSVOQMXRROVWPTOXQVU[XVUKPXJZ[PbY\OZJYULTWUKPMTMWQVSLWSQJS\LP`fRPVRPPQGLVUURTXTTNST\LZZT_WRTXQSKUIPXUMWUVRRWMMQVSTQXQTaZK`RRKGRUQVZSPSSW`PZNUSOTRSSUYMSUaSRWXWWN^OOV^YOQHSSXWOS`SXMPKZR[SQVW]\VXYM]XKRTTWVRQZPR]SMXSOSLJGX[VTYPQYORUQKGNSS^S[YWSZaRTTKMQTPMTKNNRVRXOIIQXPZMXQ^OUTOSNST[YVW[[STTXaOVKKVLRU^OUJRMVTQLRPP[cONKPQWWR]]R[YOTRQPZNNOLUcZVaPHTXTQWNTSPLOXWNOYL]KZQGKOZVQUUZQVQNRTW[IMQ^VRQSO]XOZXHOL]WMKPUMSUNNU_FRNUQ]RSSQSVKP_MVUYMXTKeVQXPY^WMXOJZ^LP[NLXWYJSPZUXXXYWSJPWSNUAWROOaPRSMOEPURONT[S[R\ROONPRRITWTLWXMUPN[XLDMVYQZ_PKTTQDEXQQZMNOEHVOXVPFPIG[O[VSSZRRVPQQSPSUGSTTZVRRR_[VXT\VWVTZTWROV\OJbiZZMOWSXVDLVRNMQQRVTSPRVKLQNWQPYRRYVNYPHKPUOPP[RQPOSXQNNMWQaRYT[VTOUXUNVYVPWQXUZORUVMSVNWPUTMZV[RTZPZ^RZLTUSL[QXPFSNRR]KUX[JSWYXMRLTOQUW[N^UMVV]^_PPUOUW_LTWZUXQOJYSUWOSUO]\UQRUPQVYT\QYYLMRN]\WZT][UMcYLROaU[TQKPLRXZdNUUUTPPXX[aYSUQJUMYR]YMIMQNSVNXQJV[QMNLOQV[TMPKUONLWR\[KRZYT^RNPMHPZP[MRVRVVXO]SWSOTOMQU]ZXPQSOGTWOYKXPNVIRRQYXKORSTSQWXSQXOVONSRPRYVRRQPT^SQZLNUQLVNQLZWVPVPWhZdWPVJNLX]bYOQLPURXSUSP]PSR\RORTNUSQLX\[QTIWMGSGMSSPRMURPYXTTWOSJOUQVNQYUXLVTQUXRPWZSXQPQUUTSZPZTNSTXPUOZLPMVKKVPYQI[QVRLUOOTLTRMSYOKPIN_MQVOMUGSXVXJRMWRYQSOLN[S[WIXRHODRS\NQGTZQRZQRFPYKPTMYJJVZJRMQMOYWVRSPKSOUQOWQRTR_]SRTURPVQRMKLJTUHXUXMZXEPCMN]NOLQOVRUONMUOMWTRLQNVIWQTRVXMGJWRHSHPWSK`RMURTOONKKPLTMTSTQQGVOTIUT^S\WSRINYVHHSVONSWURQWTRTKWKWPKSGXQSRWQ]QPPYUVQMSQRSGWNRPLWSTVMTFPUVUMOWQQHLVUHQYQUXQPROURVDPVRHTG[RJQLPQVYRXM_^^TRZWSP\LZNIEFSMTN\SRNUPSSYKZLVRRPTTYULMQ^RUIS\NNOYWPU\STUSNPU`Sa]YS[RLVTSPPTU[PQMONNUU[RZPUPNYTQPNSUUVXXZSLYYYOWRWQXSQVUVS]RUFUYI[RIROR^K]TRMPRNP\WTSORTRK_OKQQRS[OSTIRRLMRNSUQKNYTIPWQHYRRTORVTYNRKXUUTRNRXRT\QP\TZQQKZWSSVUNLVRRUMIYYQSOZVYLVRMQ^SRTNUQUQNUPVQOOTSYT[QWQKJPITUXTZUYXNNY\LJQUTUMVMIRPORTWPYOSMLZVUPONVTSQLVPZPJPNQMLI\SRTTUPWQRSVUPOXXLTISTVLQ_UPYQZPNNPRQSNTCVSUUXQWUSTV`NWKTNTSTVXX[UP\YQKPSUQZVTTRZSUUVTTO[RJQUWOQPOWPYGRVOXUUQRST\URRQUZMQ_SKSMNQUV^XVKLWbRVQTTP_VWPNWWQUWVYVPWPXaORQGKTTTVQUXUUPSNYQSRNXXRYRTSNLURWNX`QUYTOWWULMNXNSTQWJKYaQSVaUTTXKMNVSRSOUVPR_`QWYLLSOJOHPROR`QRON\^NIbVKJRVTLL[[WP^`RZLOVVWJVSRSVOXVSMNQSPTPR]RV_KOQ_QNSRPXU`XPUYXPPWXQQYYZUZKURURVYNMVJST[^TUZL[ZLSRQTPWSO[TX[WQYTPUQPL_[RPR]TSSR[MJ^WSQT\WOSWZKPYTMV[^]XTRVPMNYYPPPUNYPXY\VU[PNQRZO_STPVMMYRRU[RaNPOYOMJYSRVWXOZ[VJQLNJSPYVNPXVTUTRTOVXV[RPV_TP_S_TeUHL\XRTPVSXWTTZYXQWGZQI]L\USZOML[UNR\WP^OW[XVMKXOSFUNXcUPPHTLT]LOO_XOVXXUZUOSPgVW]VROQ\XT[SSTPOQRNUeQ[SMFR[RK[PXPTMTP^_WYVUPT^PJORKUZTTNRU^VPPJV[QWYKR_OY\MZKWWMdMMXSPLY^TS\QLKQRPSUM[TS\IRP`OaXXL]URULQWRV]STLYMYXTNWYXGTUQVRSZQ[TIUVMH\RVSOQS^WKWRRTJYNWZSHTVJT[YRVKMNRNUVR`]PV^SVLYPRQPXWTXNLUS[[bRLUNb]PU[TZ\XMSTQPOPZS\SK[YQ_[\X_O`R_O[RT^TVPZRNLTXbWbLQPMQOSSO[YX\POWRJRKMRTXSLVLYQRRURXVQTWLP^[WaMKROTVTXTQUXTXUJBUFNPPe[RPQLU^ZYQUROJLMURRRZRQRVUVU_NNORVWYWRMMRXQYOO]POR^XTQXWYQONYCZVP[JUOTQ]LRQeTWDTLYYXVU`TL[LWLQLGWU\SLTWMYPTTXQN\\UXURULQ\RUOOZVRXTWPKVTSMSJUPMZEXhTUPeJZVQMVW\WTQVRSPcQLYRPTXKdV[NZORRLRQXNNOXUGSMSSRML\USY`VOY\NIRLUObYSQOSPXLLXHNN_SV]TPPOTXVSWfNSZgUQZT[UEZK]WR^_QRXNJVLWMORUWOVPaLRYQRRVTZ[WX[IMP`P[RWWPYNWJPNYPXRWPVbNXWR[WTX\WOLWRZ`XX]^SX^RM[ONRMVZTUQZNUUJVQPXWUCQORROULXUXTTPWQPYYOUU[YVTRSYURJWUJLQNXYK]_VJYJX[PO]VYWNU^ZNS_UQ[INUSbJZQZSUOU[VRVOLPhYPIKVLNJN^UQKNLUQON_[UXIUTVWVOLZQXPNSZSQ^RUXZZT]ORQQUSPUPVVTSQOSH]LCVJJ[T[\_WSXPUTWSKUTR^[[X]RRU\TMUXYXKLQRQMMSWXYPZJPPR][YSO^XWVTYHPSZVXTVZ[XOTURRZKWTYN`V[EQWUKSVS_SMVZWT\XXV[SOSUU`FRb`VSTTRZRUJcRUMQTTVaP[U[bWRVRU]TMQYHUVUTH^STXSPN\GL^OXZDMRVW[JTWNQULVN[UPN\SJQVROSM_SS_XVMRXPMTZS]WXQXPVYM_^QQQPQYGUSXYPRYNQMWX[JTWQKWOV]LSYZJb`PaRWUYSS`FTZIIYXO_QJU`PR[\NVOPO\WPNSUWWXP^STXR\[PVJNVSSOHSNZRbQI[SGRPTJLSXQRPMSXLNTOOSOb_TZ_TVMQXUVTYMQ]^QOQ`MIXR`WYPTMPOYWZIUMWSPRORPPHTfZ[MSXYVXNK`KXU[`NYKJVWSXVbPMU\O]LQZUSVQKQN`[eUOT\TaSSZPYNSQTUWSNVaTPUQWJRNJTOQSgSLTNLUONTZTdSHPPOUUUNXTUWPW]QW][X^UbN]LSPZYYTWWTJVUNLKUYQN`WLYSWWROLLTMNW\QYTSQRWRTYNOHSIHXaOO`KZWNYTYPSUPVLWMOPQSIWNVMSQT`RWWSYRXQINY]OOIWRQTQYQK\JFQROVXPLSIPMWSXTUSLRVNU[VSRYXWUKVTUgZNLOIQ[Y[Y[\S\NNMZ[TSS[LPNN[QZQZWPUMMVNVGL^]RUGWW]RJPXeSNUSPYZqPRbWMMSaWTSVNLY]PNZ[O]VUUZ\GP^MW\GWQW^VQGP`OOWUQWTWEGWS[TPTPXQoVSPSNLTHUN^QHIRWSPOVSVW\h[SUVNNWWR\RKRL\MQO[X]XWUY[QZXMZRZQQPZ]QJKTYWS]QNRJJORLV_QQLTTLWMWQUQQKUX[Q^bWXUY`S[X[GTVQW\IGJMTLQNYWLOT[SLa]VLNMVXORTQTZVJ]MM[WWQUVZMKT]R`[ZSTMXOMROZTTVTNORUNYXUURULSRYJXTQU[YRTVWSPQ_X]ULTUYSfXIT\[SPXOXLSQRNXUOVSN^^YJ_T]]MZXTUQSWYQISMR\_W[WWNUSXGPM[RMNM]VMRQQPSVVWQQR[NSXRRQ\iVSKJPTPSSZSUMSTJ]TNZPTNTJTOGOZNNZRZVVXOROhPVSSeRPaUUQRYR`VPOUOTVTUNXTWSQ[NT^\QJWPTMOVWQQ\OWaTP]THZQSTLWFQSYMVTLZZZaMOTRRQTQKHNRLLNVS`Y_TYWHY[NTROKbRYQQUJZVWRUVaQZMQSTMUZXVPURJRJ^WVJUWLSOPCRSTTPWSQN_IUVQX_OUS]T]HTXRXRTQW_YQQRMNM\PY]aRGMWUQNUYTXTZLHXMNPWRXOY^NTWPWXXWUZcP]ORYZLYPRRSQRTNXUXWPQRZPWNPVUXOSKQQQRXXM\[\VOVWTM]VYTR\YZSZMXMNSaNTPJZTYORPLLIQ\WTNNSU[cXSSRQPNLZaZXWVRSVWQSOTPXZOUNFWUSWVXXTPZSS[[KPQVYWVQQcZJYZ[]WWQVZYQXTXM[TVbYZ[WaLSXSONPOQRWVNXT]R]VO\NOXTUTUGZSQVPMFSNSSH[PXTTROWUQPNTLVRUVTNPVWWP^QSPUTURSRT[QMQ`P[[NPRaWPhYRYWWVNXNWU[TWL[`WZQ[XYWZQXYNTU^_TOYRT\PYWT\YbPSVQQRXVTP`VQO\TJ^PPTV^cRUXZVdVSLWLdU^SPKNWTTQNeYNSMGRZOZP`UNXWNW]VRUQRWQSYWXTNYKUVSW^cQSQMKTYINhSRTUb[RQWUZRXYOVXTSUZQZSSO^RUOFXXZSWKQLWGYQQ\TQWV^XOZGHYR^OZPPSQUSaQTYNRWUQQMWO\UOG[RTRP[S_VQ^SSVRYZ]aTTTIULWObaJUQWWPXSPSXUTYaY\YWS`SbSSe\Q^ORQ[VZSTSRUUWZhRDTUH_XTPQYOWVVULVWXUfNZQZRUTUSQQSSUU[UQ_RLZJXVVYNRNQRXZUUX\[^[`]ZYNW]]QROOPTVUMVWHHUWPOYSTJWWXSTW[P[TQVRJRWOX[PVUVT^L\QQPeSZYYXPQYUQX^eSTZ\STQWPUOUQ`OLSP]PUN\MVNQSQY[PSSY`P[[_YbUQY\QSTYRZ\OUQTXXXZ_TRVNLWTXV_KOLXMTOQYPTOQLQSNTJZXWUPIZROU[STVQ[TPTIPSPOYZMX]XONPPWMTVSPP\URRONUV_RXVUKLMQ\MUWQINLPVXWWSWUOXXS\[XSXZWPbJR\RTSQQVWUQQVZXQTMPXX]OgVUMQLNTWWL\XPNVTPUPQMYVPQQMVZMVTWQVV[L[V\PW\S[LNRTFWJVZYLOUMS`YQTSQTTWTVTSRZVUObMWNNTY_SWYXMTUVRR[ZV\WNVaMRSQSNP[N_OLPURYKSW^RTURTVTRVVLPSSQPTQXWQJQUTUQ][VNJTSJ]PQ]NR]YVYKVLKVeSMPUU\ZTTPXLWFPX\]TTWSQTXZPQK]NRN\\OVZMWTWJWVTPRUYZKORSOTTPQYPV\N_XP^X[ORVPUSK\aPWUV\OVZWPVKLQNXMWLTP]RKSLYUZTSRTQUPR_QTX\RTUGUR[_[\QNZSYMQ[ScPLYWRSVNVXRXXNM\_SOOYJTVOSPTNYMOL]LV]SNcSWYPUTVSPSSWZSMOOTXUQMRQRVVL\NPSP\RORW^WCV^_XNORVVSVQWM]MZWV\ZT\NPJYPPTZS[Y_SWKTOLQ[\OSR[QPMUT]S[TMMQ\OTXWRVYTU[WVRPXYWPRSRcUQPVPQ]^LYNXTTVXUUYOYRM\KRPeUPWWLSWJOSWRPPWQ]PYSaNPOT_VPWZPSKVUNRUPMXUXT_OXZNS^RIUP[DKZXYPRZPW_MV[MWRMOSYQPT\Y\W[PYUVIVLTLWRVNXaTVTWUUVYWT`Q\LVNUXPHR]XIbSULRaMWQ\RNXVZQST_]O\JISIXXQQMMV\UWSXUJNNXKVSRTOMSP[VL[HM^UITU\]SYUQUOOTTQ_USHdRMYSVSRUQ\[YUWNXRKLMXX\\OLIQKYOaTMJZUOPMUQP]TcYYMS_YUNNUVLYT]QU`ELSUYTESXRRQMINKg]S\MU]TMQUWVNWVXP[YQTUKVZLKRTKKOZVbYTTRXTRRQSWNVPZWWUISHNV[UXO_RRIYNSQQRZUSQWJSRP^SJZ]NXRSN_NZXRZPXRETSMMVSPNWTLTQ_WRRWOOQ\TXVPQRQUVYWPTSQRWSWJ`THgMYRXWK]NL_RSNQ\WNPWTULXXMIS\OTVQ[MSQPXIISSUDST]JY`P^OQJURSWJJMRQV\KXLWTWWUWO^QlSS\\JTVPXPOUURTZNT[RVZWRVN\DQ_QWbIRRKSPURNZUYUYQSMORVST^WKVPbWNZSWL[]YTSMXSRQ^cT\SLQ]YSQOMcTQ]MPRQSRZRPPTNHZOKN\QOZQMKHXaRLLRP]PQHYWVVQTYSMMJOQPMRV[NZSaOXPGVSFRWXY_YRNUVV[QZcSW\RLNQVGTWaHPTY`_KYYWQLHOHEXRdVRXRS]IMSRQO_HXSPNR\PP^P\USMJ]SVPUUSFVXY\YOGMUXURYSVSScYNRZYWUOSSV[ZUQU[JW]\YONbYVPRN]GQPZ_ON[KUNTQRPgK\YL]QYSLNUSLRURJOORPQYQLIZSRYTUMSXSORVQRPOPPLUSPM\RRSQ]ZQLUTcTQ]L]R_XPPV^SKUPQVWRO[]JLPS^VYWRL]ZLXWRS\WPRUORQQZHKY[SPPRRS^LS_PELVTTUSQSTKWSPOUUQLSFS\KSNS[VQXMIYLR^LNQPVVSDTWOPWROWRRUSRSRXYYU\SRNVOSIK\[XV[X_UKOOQQWVWTUXRSM`KRQS[TJNNSKVfKTTSOTWWQWVXUUVRWNXTJQTZQOIUGGRQWSYQPT_SUXWRPROUTTMSMQYMMPOPRKQQW]PJU\UX]ZVKUVNUTOOWU]NRQXNM^PTRZ[LLUNLVTXKPTTVYUJUNRVSTZWTU`aTO[O_R\YUPYOVROVJRVUO`QQOSSSN\QVQJWWYTMXNKOROQMO]SQ[ONPZOSLKN^cYWPVNTQTUWRSW[MQQUOYULSRIWSTTWNRXY[VX]URQYLYJXTNSfTTWZSXVSSX`YTSVMMXYUWQPbVUSUNPSWSGPVXQVYVNLb\RV`X[WK[]TQfNYUVYUMRPOTTMKIN\UUQUOXa^XZTOPTWUWWSnSQLX\WPKSRXPPSUXOMPLSTSGSYPaPS]NXg`V_RSWQSMTS`fMTOYLVOWTPQNTSZSYLOOQfMSSRh\]XJPSbNUV\UUNL\LYLRZS\eV]VWKN_SVUTQNRVR\MPGYZYPKPHSWe]QYR]`VMdN\]YOYYOX\WV_XQPNXJTVUTYVPoLcQRUQRHNUZX^WJNJSOURNXP\TWHYTTPQH`Me\[SVZ\dSVNLKSPNQQTMTRQRZXZQKWVMZUNWPXRPThPPUOZQWZ^RURKQR_LOUcQV[RIPQTTTPTW\SL[SJXV`QVLTXQ]PVKMN\VUMVV]NMXP\PW`KaZLQRQYZbQPRSPWNVTXcNOZQL[YOQP\YWXSNR]O\TRWWRWRVZSUTQU_RO]TWY`KRNXMKPUJRSXPVYYTN^W[KLSZZZXT_NNUKZSRS`VRXY[RITPXVKZUSQOPVSbU^OXVSY]QXMR\M[_]HPPLY]TXKYUMYWRSQRR`UKVY[JLUTRTSSYQQMRUW]W]TLYNUVUQUOVM`WYQOTS\YYYWcUUWZW^PV\SS]UQPQ[PZWZRT_XNVRZSWPTWIYSWKZTQZT][VTNe\V^YHWIdQZVYYSVOZS\XUSLS[UXV^RVLNRTQ]QQPSUZWQXSUKZfh[VMRULMUXVVZUMRWXPWSN[XdP\TX`Y]YPJR\VUYOTVRSTRKOUXVSQRYLTUUTOOLRZORSVLU`LPHQMMURRUVRTKRSXTNURH[\TN[PSY]PVRQP^UPZSWL\SZ^]XXNN[[VTNQOYOMUOOTS^XPORQOPUHUSYLNYWQN[SRQ[RQQTUOPKW`YLPMSTPYR^UT\PVLPQXGURRWXRWKYPOOUZRXSRXXZPRKKS\TSQTPYPXWSYRZQHWNS\[SLTTZUUR`PZPPOYUWSRT]aMPOSMVQXRQUKLIUMZKNKZSXPTVTMNOYVJO[WIOONPTYWVQXWPVPQTSQOWLWR_OSNQUXPUVXMXWTHURUWUMQ]Y_LnTQ\SR_XUPPUSSSX]QVTVVSSSRRP`NPTKNTRQUQRUXU]RRW[URM\WUNPQPQRTMVTUQTNUOXTUOSU[XVU_^UMXITRXOUSXQWSRT[RK\bXY`VLQTOOTZJ[TIUTcZITLOYQUMWPRKTYXQWMOPOUTOUZUTTTWMWVWVFLYOR\NWUMWLUL[NUT^TTSXJWNZRVTP`KOQNNRTOPPV[hOLJNCVVMOKSGY]MXUU^ZS[RNNVSLZYVSNTVPUGUSQMQVLOZNZKYYUQSN\WIVMTX\[MMEUNOSLPVVTYZPZ_TXSIPWTOTTRSLPeQGOLJRPMNNQ\S[UZTPVW]SYQPTVQUTWWK]YQVWXU^UXMTVSWd[UcLTYNF]RURN^P^PZRRHWPTLRLPTURXFZTZMSTOPPMWdS[[V[TXZSWYRO^KROUO[QXPRSVMTWPaPb\T[RUSVLMTR[JUS[VM[kT_MTNM`NXXLYEMWTWQ[KTW[XNMRPYLUTOaQTUKOJZYRPV_dLQ[UVUT_[KSWJTURQXIJNXLNOVJ]TV^UWJZaYUVPORZ^^XJUWPNQWVNNM]NT]WNJSWTOIXYZLVVROSSXOXPUJPWVNQRTQWQMSaJZOM^QKnTRcQQNHVU^XVYKW\WNR@PRJPV^^XLSZPQXQRMRJU]]\RPWQW^PP\SXLO\QOPZTTX^XUMTS`RJYRQTPSQMTZPWTYQ[[`TZ]OSQSZYNUQ_VVY_cJJRUMYXcUROT[PYKYS_O]U]YVZVI]ZQ^YPQPZTTRXTSMQJQSQQ\S[NSVV^TWSNUOfXfPTVXVXfOSOZXZQXSQSYSQNXUSHWNZaHXXMHRSMHVPYSRQPRRXdPPRNPN[QMOWPIZFUaQXUZVWSNXNQQTP]XMOYIVUSVVOLKZSUZPWTZ\M\[UPTWVWRVRR[ReQLTMKOUVWYLZ^KKOGaiSa[GN[QURWQbR[\NQWSaOPPVLOYWORLTTOcTXYZWSQRTNVbXPRTPSKOXWQWM_T[UTMUXQRW[NPXTT\LYYRQ_K^ZXXMZQRK_aSY_MTTMWV[VVXP?LTOPTJRSWPVNYYLUXLLSMTVPZSXXWJTlSU]SXMSJZNYTNOSWURTTQKVMKWUTOWQVRS[[XNX`UX[RZX\[QORK\SMRMPONRSTMVQU]XN\^PRTUQLMNL\\[]PSWLR[[WM[VY\UXZTRNXPN]QPVSXTVT^SWS]VVVPZWL_IVWTNPRK]Z]TQMVYXa[RRUSKXUXX_ZQRSNWLW]GURQOXSKYXV[KVNMKUJW]TSXNZRPUXXQNXXV[UMYU\VOUZSZSMSOOTW^LXZXTRRW[W[O[[QYTPKRQIRPXNX[^RZK[QTm]RQWTR\OWQOdRMVF_OWVVT[PTUGUNS]RMbSZNNM]UVUMT[TU[SP`]PNSQPOPP`YYJbQRWPbQVVSPWhIVQXTXVSRSQWNXKIZXR`UMNZO^aZVUVTVQP[U[QXWYUMYVUXWQTNPQQIY_VU\UXURMT\[\NZOReYVYPKUR^JKTSPLM^ZLQNVQ[SWUO^VVONTDOMPZXTOX\TcMNPYWVKUSZW^RSVWOdXUPQVUPVTQZNaX\[PQJUNRNWOMTZLZXSUY[QL`VL\JNJPTQRZGORLVQIZ]OYPL]ORTWMSVVWd]VPQPJS[PRXWXYXTYW^UMWVXTRYQQXO]XRV^Pc^JTDOV`VMQSWMOQXRNZJRHRUSV_YORNXLQORSXV``WTR\UWUSTRXVOJIN_UJbUPPYQ^M]OLXSWQ_bTW`OIGYZ[WRSONIaW\TYUMW[UMaI[RU\ZPRNZWQOVTROPVY[_]TSZSU[OaXOTOUERTM]SRbR[\[UYUTRYVWSORUVRX^ZVPX^QQUTUVTYZNVTRRITaeXQ[SXRKSNPUWFR[QLQNUUSOPK\RXQS^OMTSWSIZJXXS^SLSOJPJ`[K\PYZZ`N\VVJXS\MQYYeNNkW_TVYVK`U[LTcTMXQXKJSRYMUPcTSUPMVYEPMLUTGW]TNN\QSVTYSLNTPWQTTWER[T`]OPTQV[N[RLPMR`PSYQOJWYSRPOQ\WUJYNTPRXOHR\XX]LTHZVORJ\YZNQNRUQOQ[WSKHPOSYH_[P^RV\O[KUUTTXTPGMX]MRMTSLSOZ_URIYRWNG[WZWRNOWQHVT_OJNVWRLHPQNMQMYOUSI`OVRUIWTYSNNaZZYZVVNVTUUOUN\SYRQ\UWUTRXXPb]XIXUHXQRPVOVSaMYVTPX\PN[UMIiXJVVVU`[M[`PQLLUOQTPVQT\VPROXUYDOOaR^LNQX_\JTLXZRUK\^QLVSVYISXOTTZZXZTQPHVURHSNLSOKPSX[UORPUSSPPMNIRZPSLJLIKRVV_OSYW`VXUMUTHSWeXUTSVPHUTPORM\ZQU]S[P\VPNZOSWXKNYXQSaPQQUWMULZK\[QOUJjW_PORMMQGLOYQORNYNR`OWU[YYRVW[LXROUNOT]PbTPNKLPNYKPNIUTUXTVU\YO]_KS]VOUTXUS\RYWRXUaQTVTMRVMbP\\RXM_TOTRSQHKUY_dU^QV\RV^VWVWR_MPPTQVQNUSOPOgVPdPgXXPKWNRQPWMQPS\TXX\UUWZ`ZMXUZPQb`USNTTRVXLHRSU\R[TQVUbQTSTUYJMNZQRbSRFgZXOLUQVOWRWRVURUQ_^T[NHROV_SUN]]RWZ]VN_QN\bR`[_eZGONQQTSEUWR]PYL\SJNVRPeN_VQPUNXZW\GT]_TV\TSNSHRdJROUPRPW_XTSSQMSZ^MV\V]QbXQXRSQPTXVQFQNT^SYWOT[KSPNZFGJL\XWYYYXNOcPNV]UP[QP]GRURZb^SRKY]VNVUXMWUTQPUTXSSQPUVRQN]MOTPSURT_VP_NOVQLLQTSVWR\SOYRYSSSZVOYRTQS_T`LTTVO^PRg`X\fSTLTQZWTSXXRMV\TTHSOSOONOSPWP^X[hL^RWHS\SPXW\O_TTHUSN_PVWXMH\RaQSSV[PXXOUT\Q]R_TYXUZUY[W`O^RQT`NPTLVXVUMYNQV]N`V[RSTT\NQXZPPUZTY_UPJSKUOQKY`^TXXXWO]XOWQUOTR\LQSPTXZSb_OXTPUNI[UQNTTQQTYT]TNVVKSS[]PXXWLY[SWQYVWWVQSTTIZTQ\VKWXUUXV_YTUPZXOS\YYWLRJYM\VRe_[\SSQT\IJSSXTXNSMRSXVVROVXQYZbQRWUXVLQaTTWPPMPSYQbZRMSRZUMROUSaSSVROJMVYVJTSRKUPSTWZVUTVTYSYMPSOVZYYOLaS\ZXXKUW[TJYO[TR[YMWPUWYL]MaZTNU[dYSVSTZ]TRYXTUPQMJ`]^N[W[UONO]YL\VPSOMQNUOKQUPOMJWS_LW\QRQPROUQNSZFTTNIP[fT`UWXPZOmR\SMWZZWQSWJZ\URUULTQYHVP_RP_SQIRJJOQSYTSZWS\\RSTXXVTUZRRMKVNURVWKQVWOR[YMVWS[HLOXZTNYVG\LTYYU]SXXU^UPZQ]YHOVVRQPMOSMNNRPTRQLQ]QWWTTVQOQRQYSWOYWHTWQPQIXPWQZ\WbTUWPNV_[RNOS[STUR[TYXSUPQVPPZOTXRMPY^ONSY[YUTUQTTOZQRY[MWXRRV\OUMT]I\RLQYRYTQN[XTON[QQZYMRUSMQIQ]RQSOK]RRGTKUNKQUJXPPMSRUSRUZUKWW[V][[TOVQWANRQZNQMUGTUW]\TMNVJM]XbYTUSV[SRVZQLMTSRSRUXN^V^XRQTNNI[SMSNVUTVOMYGM\XUNULNNVYWLVXX[VOVOOTYJTPJXP\QTOZRSW`OSYMMWTOJVNVQVSQVQXQRKMORSUURRTOSL]WOPUBTZWYRHGWVY[RYQHIUQIMZRMX[YPSSeUP_RRMNOW^QSLJOUS[OLYNXRNOSZTPSKSNSSPTTRNOYcXTX[TMQVV\UVOH\NUKILLUKSSVVRWQYXMPIYTUTPWWTXVXYNNN\TPQQ`YRZRYNLUTHUKPQSN^GLVMMKRVSN[WU`KUKWL]V\PSVORMUM\NOPKWPWfSOR`TSRWWVR_OM^SFQRMSOT]YUMRSNSQ`OPUT]ZUYRXSVTM]YLUYWQVYROLYXPOWWRTN`PO]YZ`QYRT\VYTSWTQXTZX]UOOPXb_USWRXW\WOQTVWHOTVUPN\IVOLRQLUKPQSXWFcTOgUQ_TWVSOU^ZJWOPRZ^MSV^\USMZVTTQ\UTRbWNWYZTTVYZXY\UTMNN\IDRWXTVTVQYYKSYMNZOMWQKOW_OOVNQQTQTWP\Uk[XO]]YHUTYRaQKWQSSPRSEPUORUMXTXMYLUWVPTS\M\PRNORZXQO`WP]LSX`OWSRTO]HNJW_OQMWRRXJW_ZTTMVRTWTSRV\\YTZMLWX]dSSX[VYWVQVYYSMSOPVSPKUQPRSW^SSGXSPUQTOWONNRWPQRRSL\SVHRO\HTXZM\RV^OYP_\TVQWWTWTPTYXRSVSSHUWQPUYMLLWOSPURVUXPTSVbSSLH]OSPVKNRUUSIVQTWOTQJQQWVJXOLV]PTUQWT_JOROYNVXMM[MO_SWVOSTRPNTZVYXKPLIPXIRU\XTQUMTMVKRXKMPZTUUHNXQQ_RMUCYXNVXUWVKNUXMPU[SZVNYZ^WHYRQXOPUTFMOQWYKVQZQJL`HQVRKMOY^TU]WPRRXVPMVVMWV]YSPQXWUZ]YRVPVUQLRQWYPRKXUVS\NQ[[\TaYWNVXOVV\UWSbPQWXMLWRRVKOOZLKSSLTPRUQTZMOQWOPLXFaLZUTLP\RSPWTRRSNPRGNRQPHRQOZTLMPSSMROSTUUOPKXTPTKKOUNPTLFTQP,MTQIMVOLWYNLPMKALQKKVRZSPLUONYUWIIQRNTQIVVJPNRVPPRPLQSSUORUPPMNHIFVJYOJQRLVISPOKONWHPCKRMFNPJWKSQWOMPPOUWRPPWXKOKLRRIPSXNTMSQlRSUOPRSILXVOPRRRMPRIIPOQTLJOKKQOM>WUTQTMSNUQTSWWTMQOKXMNPR@SPOOMOUXRUNRIMPTSNPHJQPMSPOSUTUOVZQKSVWOTJREJTVTSFSTMVXVOLRULPJR[WVTTTQVLRVNVUNUSWWNSKPO\QOVSRXCUOXMTPVPXPONNROOONOUQBQQNOPONVTLOcOOLLRTQMWWUWTRLMNOTTRMKIPMIRRSOQKVLOMXVVJQWWSZXHSTORZN[MKQ[QSSURR[YVO[OZYVMTKXVTOWTT\NPKUVSMVWWV]SVMZRWPZVSUPMULNQRVPYTPMPZXUHZLIXUPMQUYSTUSPSSPWYRRU\OOKQSDRUSNMVQLYWORW[RPRWKROYNKP[SNbZRM^P][TS\MMHVYRSNQQXJW]XUPVPLXPVSRP\QTLOZTQV[SYQTNYQLTH[RSLOVXTPK[ZVO^OQ\WZIUKVTSURMQVPPTRIUOXXPSLYXOKRYPRYZTHVWVYNWNOO[JXPVQTRPW[S_WWSSSTRORUXP]NTQQLTJTMP[iNMUQIWN_MWO]NHTTVTKNV[\\OWV^SUUWXMQ\KUSSVNPTNRT]LZWNQOVXUOVMSVYZMNYU\MT`\RQ[RR[MhOZZNS`OSTNOW`RNPYL][VaNNQXNXZU\UPPQWTOOSXNYO[OOWXULL_X\TSU^UWm\PT[YVQ^NQLL_RJM\NQROMWUOV_aWLLNZ[SPQUKMYRTYUYPWPH_S\MQUXT^QOTOHGFRRPLKV`XSWeeXRQMPPNSMITQMLYPRZVPKXVYSRMTTPSQKQSKLSUbQLTaT\RQJPYVQLKVCeZQ\O[ZQ\KSQXVRXeO]SOS[KbSOWYSHMMF_RV_ORVSQPWVNSPSQUMTRQbSQMT\RXVQKMOPVJYNKW]eXUZS`HRYSUSRTOLZ_LVUOPMULMU`UWTLOXKLWQZJNB[T\YVNSSbSPP_TUS_OWUURIRCZBVTJUZRQWNOPSSMLLW[VRPT[RHMZRQPVXSXS_RMWLVZZZVQJVSPWVZU[XNQR[RTQOUYLRS]^MPSNUKPJUQ`RNQVSOLVYWVRLXNUPMXPIZVSXPXWNTPUPPTZ`TPKSWIXRSJMEX[WSXPXR\UUVOVQQUJ]PNIUZXOTPW[PTPa\XUUQOEWQMQXTXPPUZY\QURUQHUUQaQb^ZUYPNOOVMWLZSLNUQXS[RW^NSUROSPYTUUQSSWPIRZWMSYJQMH[_UQXRSW\RNSUHWV]VJTR_Q[[SJWKSR[PSUP`U]SNTPWX`LTSUVOQY`S_TTRJWVZZZTSQUMPRVMaUTQYWTP[WWRK_\SSRV`TQMOLOWGTPTUTVXVM]LP[WVROJLZTLYPONT\RW\PiMWPWS[]WXRSMW]SYGTVYPTTYMRPWQRTTQXSWOIUWXVIGQYVLULQOXZTYWYOVXJSRQQNQWSK\VSLTOTQSNWSPJM^IYQ]VRTZYZORT\OQ[PS[XYSZXPO_SUWWNTT`UVRYYTSXVpJRWWZPRWEDWRXRXSZRMUSOTYLFIR[RVX]WWWQSMLbVVSUURWSRPSKVOUTXJYX^PQ\aOQNOXAO[UPMLZ`WYZPPVYWZJPPVXUUMNRTUaXYRWLZ\U\]NfUOUSYLSUPN\TUKWYYMIVKW[NT]ZZUQ\]R^PSSLXITQZXVYKWQRINS\XXRROLR[V[OXVLOUbONYOLUKY^`UURaQZW\WGScXTO^\SZTW_M]]RS]KNPIMWWZ]Z[MR]QRLTWOYSSNN[][XOUTSOQWOWUVQMVZZSQQXSHOXVNG[LYVQYQOQVMHJVZWZRMTSS]OXKNQWUVNOQVRQSPMRGXZdWI\W[SUUZP\_ZPMPWNWNRQT\OSXM]SQUMTUXVWQSS`ZSQWVQNVLQUWUQQRPWGXXPMUPRRKZPIROLN[SUSXOTKKVTYSUQHUMUSQSX\RQUTSTOPNSOMVVZQVQRG_VS^QMRXRTOYPTU`UNZ_TTSWXMPNSTZRNRXMZNGNTRPNUR[NQUQWQUZYSH[WQNRY`OSSLF[WVMWHQWQMURIL_XR\TJSUSYPSYQJVRaNYJUQULSY]WRZQO\XOJQXZPNN\RQRU[LOSPSRNSWTM]KQQeYITVN^SSTTU\QQWUPVVQQ`RNUWRbLS`VVLOTRXRPPIUQWQSWRTSW]SXRYPQSTMKWTWRV_JV[XPRMXSMZSQOVYWR[`NORWTJVTIWWZVTWX[WWS[QV`VXTYOXUPWTRURQMFSOY^\_SOOPRUNP[SNWNTYTQLKNWNSQOTTR\PRUKcMWYH[\ORUSeRbYO^SZLKORRW\XUWZOaOTTTMRYVVVVTYaXYNUXXWiYV\WYMTQC^SL]^YNUTVVT\]NQOQRNRQZKPXTcSLUVRNMNYMIRSOP[JVFRUIN^OULJUQOZZVSPRYGIOOWLMaNRRMOVQPUOTOUSYOYWWZNZJPPSPQ^SSfQPJJVPTNOSPWLMYRU\VaQRGPJTQWVKcIcWOMTP^OYP]UTUUaUXVXPUOKUJWUOXSTQWZWRSRJLSHRUVSVTPYNUTXSOZW`UQOT\IO^OMPRWQL]TNNVKWPSZYdTTXXVRTTWYVUKNWP[MURVZXV_K]XSSZW^WQYSWXWTTSP^JWXONTX_T_ROSUZTVWX[PRURTTWPNQSRUT^Ob_VPQjTZRUNRP[ZSVWXLVSM_ZUVWRRU\XUOTM[]ZUU\QONX[`TSVZTSY\NZPVTXSURRZYXU^SZ`UTU]SRT\UXL]LORTS_SXRWO\WNPU^UWTYQXXXPRNQQYXXTU_PTWUW\NTTSWXSSSTUPTZTP^RNWY[WMQM`ZP\VYSR`b[MKOOPPQOPXSXUTUVUNcNdOVRWLPOV[KQROdKSRSYT[XQ_WU\UVTSY[SRYKU_PTYLaMOTSYbLQTSUWPOFWURUXLXWQZPPVSP]NPINPQVVYXKV[RXWSQUVYFaSN[TYTNVSYQ`XTMSLOQOXQV\UGXQ[L]MaMWVVNZPV_JZPLUTVVJW[RSQPXSUONVP\NFN]PUGLYTSMQTNPNVTWMTYV\YITYTVP^KQTaJ\Q^TQ`TROSZRWMOPVSXPNPQZ\NJLUVQ[PSRKSS[SQTHRUMI\QTTMNWOSXPUPQ]TPZQSPTPUhaASNYR_X[W^SZPSIJQN[dSNYWTSSYNVZRSJKVQXR\VPYD\WXQVJFM[Y\RSPNSNVY\QMWLM[XOXRKLSZS]UXUPLVQQWDOLOR[\NOSVPSVRJNOPSPSZX[NONQPZYMJX_LNO[QUYPUPUXMIVdXZO\Z\TYQTVVZRMMOJVSUXTSUUQTQSSSNWYdYSRLTNW_QLMRWOSRLK\JYWUJRWTPSPOYUT_OTXVKOMMOOSOKNXWZXSZ`ROQUWcP[RQQXR^WVSQKXTRXR[\`^XPXORLQ__SSUYWLS\T^^RTSX^XQXXLLYZTPQRQ^UULYVaUSM_TS[TYLQUR[\\]Q[cSZVSRTSSKLYORKZRY^MYWSX]LU]QRXX]]UNVRHUZZR_NOK\WTZP\TTYRU^]XURU^OVMTL\^[WIOU]WP\VVMSY[MUSdRYXRTSONVPNOOR\RQYQTWRUULVU`TI^bVUHZKSMh]R^bPX\O`QWYSPUWZPVNPTUWYWUXSZVZUXcTJVVMURYM]WVMRVRWNS]XYZRW[SJXXUIPP`R_RQSPY`\T`XUOPVYPSLSRMQLZ^VSaPWWYWOSTUWSTZJYPNUSR[QQQNWVOOTKdRRVOTRVTS\KV\WVRQRMOPLNVSJWT[T]RXTTWOPKVJV\S\UZOXVLM\VZRQZVbVNNURSMMQTUROYTSSOZ_SVT\VNM]NVPNXMVWLVPMTSO[PXYTTLYNTIUTQSPMYPTRRTVLWSQYTVJSNUWL\T\WUXbXQLWU]JSXWTP[SXUOUUUQ]VOLRQKVXZ\MMYWQLYMZMUEM[JQW\VSPNQVXUMRQNX]ThXOWQSQUUXNPVOaPPWPUR]RSVOKTY[NU_ZRMWXFQPU_TY`UJYNXZN[UTUaS]WKWMSSK\LQVSQRZQOXJTKTNIQTKVXUKU^SMOZS_WKQP\ONTPQLOMUO^OPTYVYTY`YMUTLRQZRSN`UTVQZZMRQWTQVOXNTKYOGZUQRZ[PV[WRSNTVWYOXLXM^PUUUO[KUTWXQSX][]QVRLSRUSLKU_UNVOVIPNTTFPQWMSPTUSOUSLROURLYLSVWOJZL_PW[TEMKK]YbVPTUNQMTKRQOUSMKPbSYYQZXLLPQQQXQQISLNYXUPTPOOTLRTWTOXTgQKLLONZPPKXSTTSYVVWRbP^PQPXULXVRUXRXTNRMHXRXVK]PMU_MWVWVPYQTTLMRNZTLQJSRWROPHXPYSLUPWNSXKWPMTVTNRNKJQUQ[VP[RTSNMQITTXULLVTJVOPQRVIN_LQQPTSOTQRPLPNNYPSYPS\[MPSaXSPUONW\QVQK[XMTRNQYN_UKONYQKMOV_S\RWWYSSVKMPPQNSRP`RUVIeNXH^MQR_TQSR[RU]UWNT[W`XLZQL`OWXQQUJSOZQW`\OUQV[LW[HVROTPTYITUOSQ^BUV[JRMPVPLRJWERWSRXI\L[SCXHUTXFVGQNSTKOMSQZUNW[PSWO]SXSNLXMMLMQTYULOVUOVLSVKMRXPYP^YTPF_J_NQScTTPZPRMPVNaJeQUTXNXKOQUO\NOXULPPKLANWSNUPVSVQMKJOTXbPLVUTPdKTIWSOQUYJYJSOTOQ]TWOSUQUUX[MPQKUKVQZLUPUROVKUKSSSWLN[KIOXYQROPVLQYWJNYTXLKOYSJOQREPUQUY\JUQ[MR[QVVRNURQLZJXRNXRW\UQRRRLMNYdFNPS_WaNVOVRYSZ]NSU[NNVONPUJMM[RHPPPEKLiSMRRXWOXXXWZSRROG[ILPPKSJSTQT^RNLXUUXRQUYS[SVSPP\QQXKa\MSOTUQR\MS_OSVYRXRQQRZQNMOOP[QTTLRJOIhZJOb\bQSTQSJ[MPMTZUMXSYPTFQEJSSUVRVLTVMMNbOTYSRLM^RGUONQGUVM[KSQZRXPMVSOINPTJWXXOR>XUTUOK\ZMO_YNSRZKNFEXQM`\TRQPQMJW[O`SR_WMTP]RSRQTVJVQRRY\VWQQUTV]USTRVVV[JaVM[JQP[SWQK\SMNU_QWYNH^VQXMYIYRPUV`VZTSQZTV\RUVRPW`SLIQQWV\MZWVRUPSPYK[PZQOX_UOQRMPUQQdUVRQPSUZXHQSRSSWUNUPLbVYVUIQXJTKXUNMWU^YWWXT\YQPZZMYZQF`STVSUQQOJSLQRbRGO]QNQVWL[^QPRQWWHQTNUSTOSVQ`NYQWUUNWWTRT`XQUZSRPR]^T[WSQRQLXNRTRS`XYYQRTUQRI\cVUTVGPYIQ[XUGVLORX\YSUWIUNX[PMWXTZVWIZVTeW[`LU\WSRQIXPXZVYSUKPSRZUS^LVYWRXZUWIIeVQ]HUTZWYUXTZVXONRLeQ]U`PPWPRSQUUWSNTQMPVXXT[[OTR\W]ULRNQTGONWR]N[`XW^QTV]XNQ\RKYUXZVUVTX\STRZRRMRQRNUWMRUQQMZTVQWKWT[TVTWTLRQLTLTWOU\K\VfDZOJ[RNP^QVPSTUYMVQN[TQHdTRWZRPSLQRNJUS\OZIVSSRS\MJMQRTTWPR\SMQW`ZZVRDT]VNPQSNXZSZRZQ[WYOSPTWLITeUL[WYTPZYNTTI[PUUXWPRRKFV`VMKRVXLW][USPRU\VRYWOUN]`ORaKYS`IXOP[QRRU_UKRT^XWWVOWLOMQM\^RUKSWN_VSHNO`GUTKTTYRLNTOROY`YSJXPVNOU\HZOPSLXNZWXI\YSDVS]\jUDR\WRYcQXLWGXMJ]QTM\X\XVJRPTScEbRM[RGYYSQTaT\RQTISTPZTTbTFVZ^TUT\WN[TQdNS[WVKTRZRWYXQNURY`UKMVUU\TSOT[QVTSPQPMMMOH[SSSUR[UPVTZ_\RTVZUPNTNTIWYUMRR]TYNRVRYWT[NJMRVOZVWKNVb^XUXUWSPc\TH\JOMLOTPT]PZQVZR`OZVWPPUPF__\KPHYTKZYSQOQUWRHPO\Y[WVR[WSQTT_Y@OT\[YZ[VNVQ[]XXZO[_NUSURMNQUZUG[OMYXLXY[XUOJTTY\INXMJKQ[VXKVURVPTRVWUMWOYOPOWYUUQMPSTJKPSWTRPRVSWTXSXQQUZQSTMITTUMPRVUPKTRYWXXUKVYVJaPSOSQXTRNU\TRNRTLRUJPPKMRKSLSVPUYJGIThTQURRTMWTU[R`MXRg\RPUXVPXPXYHKT`UYKKQTPQLQUSZURTQTXRVPS\WTPPZZPPMU][SRNSQURTVRYN]TUSLRNV[MNNNOSQKRZIWOV\VWZWIHSOS_WRUUVTG[OW\NXURQ[ZR`P[U\QSUHKS\SOQSXISWQQZQV[AQPXWVTNSKPZ[RS]\W^[QSXV_NMZ]KNVY]QMIROXRORLRPXQJXQX[VVaTTX^WUQLPSNSVTLOHQSXPZUX_PUTNXHXTSTSSRQeRPaWOYTLSQaYV]ORMMSQQRUIVQQIYUVTZPMNYP^XKHWYWJMQTMTQK\ITVSROWKPYUNTQOTNRWLL^QOULXOUSVRXVTNRSU\QIVSJRVSPQMVTRYUZSWQUPUVX]LV]USK_SbKU\WTZLYLOONYPRWYQSHO[SXQZWVTS`QUOPSOSRVORU^W[UORScSTXUGIUdRUNRUVUPNSWZSTRPVUOR^XXWUTSURR]WSL\V`L]M]YUPSWWMWUMQTWPUMLPR^NXS]CUTVQSULMRQZUWSWSWTPOR\UU_G[T[QLVNQGRTT[UUZ[\TTRRXNWLVXVWSY[YVJLST[KNZUIORKTTHQPVROS\[WFTPMT[XTOYTXOUUYPUZRVSQQSQPKMWUO]VPOTRSVMYTOMNNTN[TRQ\WWUVRLMMWWUGKXVQaXS]SWWN^ZPTLONQOSIPJVV^VST^MPIa\UL]SGM[VQXWLVTVSSQ]RZOWJZHUFMYPQMLROQRTUJL`RZP[[Q[PWUXXRKRP[OWRVHVNTNaZQUQWRPOQMNT`Q[PLR_bWLYPPTUPWYV^PVMTQU[SXYWPOYPWRVZSTUZO\`TPMTP]\OUVMU\OJS[XOOGKP]VRVSOLZXaNNMZY^XSYURR]JYWeTQX[KRTTYUPMVRXYSRQNPTaS[PQPY_NMTOZUMTR`aRZVPQNRKRPNLK[UNRTOUOWTLSYKSSWSYXYVJWTTYURPLSX`R[MLSQTUWfUMXZTSTMUUOPSMONSPORNXPUZTNWQV[RZYQUTXTYPSRPPV]RUQQ]gVK\VMN[RVTKQZQWN]RR^RLWPS_XLRPVVQUQSWWPYWXeWY`OaNQKYUTUEVRSVbUXMUNQZT\]ULNQQOGRQTSV_OTTUYYUTSRV^TSNTZHSRPTY^QKKRaHgVX_M[MNiQKW[PRUWNMQVSW]`^OWWKUQQ]LVJLRMT[YNJV\DgSdeNTUOaUVRXUXSOU[XUQLTGXNSQaIUWeITJQ^UPWXJ\KQNQSeWVJKT[RRMP_P]UU\OSKWJZR_TTYVRZWSTLLRK_VXQPRJWWZYUXVZSR\WKTObWX\YQX_RQd\RMUPTVQfWg]W\HMR_SUZM[SNZYRRYOXV^RW\MMTQRXTLXTSPPeSNQ[YYVOWW[SMTLO]QTTRRWI[MQROZ`ZR`VXTQMXOSWT`PRaRLSRPSQPPWZUS_RSRPQBV\N[\UPP]PV\UWRWZ^TURVQWUSNM_JYSSP\PT\OV`UP[YNbMZQYfPOYOTSUJTIUTRPGVS\ZOO`MWXVWTVVNTM^KRURPT[WKRYVNWVRTeVaN_SPNQOTRXROW\OYVfQUPX\UVV[ZMZQTT[UZJYYRXPT[WYSOF_QQMKXQSebSIVNN[[ZLSWVWTTIMUXSUTTZQNUVNUILeUZPXV[KUQP[\QVOOPQOW^[QR\^ULVY\GW_PUS[^TTcNQVPJ\YU_ZRTSOd[^MYVRPWSSOQQXONeWQIMRTS_\TRKWWQIZNaSOPZRU^cRZMRS\RLWVVTMISMNK\X_U[OYQU[RYaNHWJWRO[bTURSU\Tb^QQV\QTKUHOW\^XVVOWTNPQHWPSS\ZXO]VQV[STKSNVXTQT^JRHOVZVSVMb`ZULZUJ_UTOQ]FSOVURLRXTZRQQUMVOMWW\ORQUdUWLPNTVOMTWYSVJT[BTVNXLVJSUSSPZTKSWTTT]P]ZVKWVYWXIZVRSVLS`UQUOXYZOP\IMQ\XbOSTRPVPWLSbXRYMSTN]WMRVUMRNWPXVVMDRXQ\XRR\MPYUYOVPZOS`PTLOTITPNZXOVWQWYY\WRP_KXOQQYWWPWUSY^PVMMTOWYQSY\SW`WNGRVOQIVXRQ_SR[IUNZ]NSQ_NL_[TZORT]MQ[LRVQUZXVHWTXQRONV_NJ[]XNOLOSOVZJXSWNG[QGLRWT]VbUMaKYVOYNXTZ[JWSPXU_\YISSOUQWVXXRQYSYU^[SSQX]_JXM_PIPURUUSMXUZ[PWM[YMZR`[UPR[URX[POJNU\QWQQTMW`USMROWVITP^QVfXNNTUTTaOY^WOXGUYUQRURPDSXRVHUIYMSPJIOKSVOWSRWWT^[RXQ]ZUR`[PWOPIOKTWSS\X\^ERRONRXQYVNUNVPGNTNM\UPRWVVUVQQSRQW`VPN[WPVMUQMTQRUVQLRYONOMUTSMWPLRWQVRYMSOXOHWSHWUT[RIUIZL^WLOXWSOP[MSTSPNKW\LMKTPNLLLLJW]QSSI^ZVRY[STSE\Z[QNYQP[XVWSGLRVPOSJ\STP^XOZHOYPROVIM_UZWTUUIOVRJXMNVMLZNWVOY]SWXTT^MVQSaRUMR\TSQNKVNTZKUPUURYOXGLPYeWSYUOZOQTOSZUT]RRHVQ\^LVVY_ZTTQYQRZ[PYMWQQ^TQVN=RVOSJU`S\NWT[\UVXT]RVQSGNYNZUQ[RSRPSP`UROQ]ZUUS[VV\VUQXRMSUXSU[PVZWVQWX[LJQVYVUSTXPSX\QQ[YT`afP]OTUVSSQZROSOUTNNOSMTUYRUO]VJTR]TNUOcWXSVZQSVSQPRPYXZVPPTXUP]VRMNYZSNWVPh`WNUNLW[UXOSWMRPOKJPIYMRLTZMSOR_U[OSRUNST[XWTUITcTURN^RUWVXVTYNLURSZQPZSSKTOOTWROUUbKbVZTSLYV_P`\ZRSfUXJPYJPRLUNSTSRQTTSKY[URUQTYZQ[MOZXJGWZ^QEVQUXQTZRQ>OCN]RUWLMXOWJZLbVOO\LO]SNTLQMaI`bYLUWVcUTLQNNNQJJTYNGQTUTJPQQVWXMK\K]LZUMOYNJYJXSEOWMT^QQRbWO`R\TVVZWRTH[[]TQIUbUPRU_KcWMPULI]]WbSTXUXNORVS\SVYVSWSdSPXLUK]PPZaUV_O[TUZNUYOQJNNSLYbJGUSWYE`TSUYORPMZON_YZZOXJ]RKZW_QLSQTYYSNWNXUJNPWOSMVMSQXOVYQLS^IQUP[ZUPTSM`T^UUOXZSOMX[ZUX_gVYS[O\_SVeLSRM^_\\UVMMRL[TTQLZNPUMP_UFZcNWUO_Y\P[ROUFSPVJ^KRYUQP[YYY]QS`LSTV\YRWeHVRRQQTRN]TTOKOWUOMNRTOOO[Za\R`ORQQNQ[PUWZIMRSMWPUSUYIOPPQRT\QZXQGKRV`]X`MSNSV[XM]OWNOROOKY`QIRRKRbITUJSVTL\PPYR]OMVWYOUMWNSS\XQTLJOUQTUR\LQOQZSTXSZVUORVKSUUNOOPSOTRSORRWePWYXUVJd\NCW\T]PYOVOQO[UTTQSLTRYPZLUXfSYJYVXPRQTWKPQQP[MNTY[OKML\VUUMQIGQSXUSOVS]XU]MDTOVTSXQQIUFOV[IYPNVYO`WW]NMVTILNZOWVVLTS[V\ISMUVMZ_ZSXRPPQNVT\a\RMU]TLMZXOPH[XNPR[UZPO[WSPXNWX_aPJRRJVV[QWPUUNWZPTTMOIQVPTTYURXVJMQOVQ][OOV\YPSLSWXXOSMKTT[WPD\OORSU^NMPQOQVRQXQNT]R[SNSK_RTWSTSONURWOT\]IOQbX_TV`RVRQBVROV\KVXWRTT]ORSLPDOXRLVSQKWGTQTAVOW[^P^RZSONQJTHUUUTWQVOVJ\TZOZQRV^gSNQLSNRNXXU^TcMXOWGTPZWOQPYRUZTTXQUOUXMSYSR\XNNbPQRUWU`YROSKUWVXZPVORORTVWKMJXNL\NXMUUM[NOT[QTSKKQOQSN[]VQMTMORZTETXaZWPTSLNSXMOXRK[T[PUVRXTUYMNJTRRQSW`_O[ZN_WLPZZOQWMSUVRKRNPTS_[ZQPRO_RdVUG`VQ_VQTPRT\NN\QPNWRQVFUZMXXLPSRPP\OQVVNTUZXS^VUOXUUPWPTQTRSYV[OKZSUZVSMUZRVNUYVYOVQOSR[TVOTY[\SIRZ]QQUNOYOWXKZUMHNVXO^Q[VMZNYNWZTPKNDVLQRYU[cQWKN`N\ROUIOXQRTUZ`SPUPKNK\QJXQLNSSMTSPRLYSOSSSZRMPTXXTMYMMTRSV\PM^RRRRP[SWVRMWPbTPDORW[SQUL\RQPWS^X[ZWRXY[RYIVQWUXRO]VPPWPQWWLQbJRQSZSTUUPXLKILIGZQ`TdS_SONWVZVTU[YPOVKRZMSXVWOVTWNUMZST]UWLP[LYNYNaWMUMS[XQTTZQSZOSJgVXR[WWQVTL`PROTOSYTZHQVIM^YPNVVUT\L[\UO]MYTTTTLN[VPU`IHYPT]UO^SPPMKUQP\YLXM^JKWNaQRQOQPZYXSPMYMWV[cYSOKdU`TNYHRQTPWUSPWQXP_\O?ZO^STOY`NJUPYQTaNPY^d]Ka[QCWSMNNUWYXLj_ZQLRbKT\JSPUOTPNTZHGYKUT^WSX]PVSZUYNJW]OLRYWQVW\OX\STRQ`[VOOWLSXN\UYJQMXIT]TMXJTXUVZUSLObUfSXRYKVU[NW_XPaQM[Y`HOXNNQ^SPDNZVORXeNXSZMQXTW@TWRXNRPZZOUN^RWT\_SNZZUKYMUMVjRSU^OLOVS\M[XQVRYTQHRSSXPLWYSXYVSTRIVVUURSSPUU[WZOMPSe_PUR^U]VXKVZQO^LIK\N^_EPYNJOWPZQQMMT_Y_\NPQNMJ\NXhSKNX]KZURZ]PMMUPONQGLJ`FVTRLORVRWPMVQ_UWOVQU]^SVP\RTQYY\^RHQUSRUWULUMXPLWT]^PR^QRQZXXLQUMQRUSRTWOU[ONTWWJRSQTL\_Y`RURRRKWSUYRTYMTPZSVWWN]TOLSQ\_[KNKPZTXQZL]OSNMRRPMRURNZUG]UQSTRXGUORW[W[NT[KYYWRSd]XTXPRTIOIHRSRUT\ZQWQPV[PVOLXVUVOLWXLO_XNSVKWOVTXVQPRZWVWZRUNVWSKNQMUOL\XPQT[YVK_R\RRTQYN^VTHL\RPYU`PSKV[PUPJ`STQUQNYU\UZZZSOQQSLPWVPXQdSQSNHMNJM\NVQ[TYMMSWLUQVMTPRLWUJTRRP_OVTWWN[WYSVEEOQMSUQSXSYVZWWX]\YdW\R]SQONSLVE\UTKMPUdSSYNSQSFRPPRJSQSITWXYNZVVPX^RO[MLLPSMJUTOXSMTRF]Z[[UTRVPPPYWNVVURPVOVQIOOYKOM[MHQ_KQ]Z[XQOQ_QSTQOIKMMT[XITVRW\LI^PWLUJTVWWX\ST]SSRLJQSY_XXV^WHWKYT`ZKN^KLVVOVMNAPVNQQYKPVTVNOTNYQKHOISWTSYOPSNTWTSOQTNQTKbSKPWNX[ZULOX\\MYQJKQXRK[WTLOMRPUUWUEYWVXYQUJIUVXVULLSQTSQOWPTJXNUPYREHSMSRSRgLSPQQUXMKLYUUR[M[XTMQOMUMNU^VOOVTUVWPRKQ^VTUYUTVLPLUI^ZVXV`VSPUZSSWJNKYMSPXVVVQYVUPNSTVnUZUZKNRVKQPTbYTZRWYSWUTQWZNTZXcFOU[L`\RSMROONNNQXOQRVMQRPVRSSYQJTQ[PTRQKV\XKFaQSXYSUVOOWVXR\WKPRMSWLPMP\USVUMSYRMTU[TYRRUZGSUbYWZXVYXVZKTR\\QRUQUSVR^NSUQ]WKROQ]aTGaROQWMN]UMZ_QOSO^`VQPXRLU[OZROTWRPZMOTQVXR^U[YUORYTVWSNRITV\WdLTVM\VS_PSUYRNVVRYOWK\QM`SYYOQSZZXXOZaa[RML]WVU[^[R`W\PPVNUQIMOQ\YXM[PNVTTOUURUYWQU]UFWOXZR[YUU<_\PRLWOaYQT[YXLZ[`WLUQZ]TSOXKZZSSRPPRYUMSUR\S_QWPMMaOSNZTRRPKWQSM`ORQVT_HE_MULRPPWSOUUQUPLWRNYMaZMPUXaNOPNXUSYILK^NIUZUZOO\T]RbY`TTPMNHTYZRRRYSTNS`WQ]PSL]PQRKKUHXNRT_PN_KSWhOP[OZOJQLZYLQQSZ^ZTQSGPXLSX[]NXVQWL[NQRVXQVJUVVRROOYQaRTD[MLTXRU[QW^ZSTV\VZQaMRVRSNWLRVQQaNVRWRYOLXU]K[\LSQTKUQI[TYNOPS\SVVJSTMMMOQRWRGSWKVSTZPSYO`MYR[STR]QSTUXaKOGRSYLNQVTYRWWN[YUOPYRQXNaQYRITWUJMZTUW`WTRRPVQX@MMWURKU`RXTSLMW\MTTRXTYWNORX\IWVRHWrTSbUVUKX]P^WOVZQRQ]XKOQJPTPQ]VPSOUfaNUOUYJOTRQQbXQHUT[WSOXVQSZSP\aQWV_RPVTVZYVPM\[NQQUUVNUWUU`PHZVQPNRORUVRRcURRUSN[TUYVVG[QSWZQ]MVIXPR`[NQUQXRQ_I[PTTNTbWNPXZcPUTSMYQTPVQLQQSJNT[SXVPT\OSNPSTe@^NS^NY^VOPVRJMWQSYJbZKS\UYSVNOQYSLOWKU[c[USQWWRTM\Y_SJSRIZ]TZLLOJUSTSX^TPSRUKTNROJ\YPQZVYUQRWWO_ZVRS_MXYTLM\NYVLXZQKUTLWX[RP^\LTOUUXWRRIPVNWNKYTTXSQX`XWQT`\UXVQM^VUSYNRWS[OVZNU`VbT\R\TYS^cNUWLIZNWJQL\S[JT\XYYSVRXR\Q^UOUOXXMQPQOTXUVSQTTONTUTVYVOWRQ^QWWUUOOYZLV]PRLNOUQT\VXP\QSVTZTVL[X[TSSSWKPTVSNLKRS\VSQOKUYTWOYVa\RPa\ZNFLROUWVVK_NMUYNTROTNQTUU`TXWUU_RWTOYJ[VMWY]TUSOSENVVXWNRUNNS\NRPTRL[^[TL[NMOWVRTUF[VTVMLRMYZTLRTSRQUUJK_PRQPVOaSS[YLQSSLQV[QTY_WVROONURXOVOP[WR[WTO[NRTVQQ^BSXRLYTH_MPR[SSUTYR_YQTTWWPPTVSZSSdSNSPRUWVSQ]ZTXQLTMQUQQVLPSST\IWR`PSLUQX[R\OVTNPWUMQR^NUJWQ[SSV[LROU[XWJNNQX]VKOUXiGWTWNSOOTRRXU[PPYRQMNNWQ^TRWVSPSOYWSQOWUWTQP\TSQV[T\MSXSUKOUTTVW_LU[NYXRUYRUNV[RUXTLXSTSRMWXX\PLPUWXPTOXTS[LQYfTSOOQVSUQSUQYLPRURQN[VQWQS[YWRQ[QSZZZQbXNOVWZWU[R_UPOXTdSKOXTZV\PVWUVLPSUWTUTYQQ[TQXWRZ]OZNXPW\SNMRPTNVFNQPUONRQQ]_OWTNUUYYPaWNTMZSMZROY^Y[PNTVZUMTYNNWSLXTNNXSPZ^XPQROVQRTVMVVOZTWRYZOWURPLWOYHKSN_RPOJNXPTRXLXOP]]WXRXJQUSTSO\R\PRYQYWSVWY\P]UNU[TTJUVONOXQRTVXUMUWQLTSXSOXRQUUWLNRWQbQUPNWMYSTMRNPNQSKXSQOTdUSW[TT\JUQWJKTU_WMYQYG]QRSOPYUYS[NPWXTVZ[TY[XVT]^jTX_MVSTTQQRVYUWNRXPNLXIYkQW[TT\PUURZ\[YUT]NUOXLMOPGNSSXWSOSOQMGYRWV^VV^\TRWWMU_UTLVJWXQOTW_^O\RUUUT`EWQZUeORXTUQgKSRZMZLNVZQZTUUWVQUNZQTUQURWOUF\RQ^WXLWQUSVOSUXTUXN]VWTRUKWOR\UYeVOVWTZSQIUWN[IQ[XQVSUSZSNOUOUWYTUSVNZVXLXPSNLV[XS]SYWQ]MLWORTVVL^TVLX[LRZW[RT_XQZLXGcPVQNKSNSZUSVWWTWOW]PZU\STSVOMO`ROQPNLOROQKeOZOWFSP]OMQVYZ`[QXZZW[UTORROXQWSMTRPVM]ZVNVJYNI[OOYTZ]SQSRLYVQTOUUKTV[TS]\LVWQQKW_ZVR^QWYKYVUXPXVSQLNUPM\ZK\NVQLMNTYZ[UVGWZ\^MXOUOSMWSQQOPX[[KXMRVOUTR]QZRHTZPITaJWTQOTKLNSV`SV[[QK[RPOJSHO^XQXMNTPOZUVZSQNOTR\TSPWTLLVTNNZYRVSMT[TMNSRXTRMK\T^SPJVWWZTZOVONQZSVPSRXF[RVORST[YW[KQYV]YKYUKRJXMSQSLSXOUSRRNfQPNW\SL[WPVKQPRNQXLRNZPVUTMQQZGTTRPQW`OWMLMUWSG[ZSPXRYPMTTOQZYSJ\RVYPHVRV\TQQaPN[YTVSQORTZZZTM]aXEZZRQaNW[WRSRQTMPPQ^NLHZ_LSJOUPKZ\^QTTWQWRUUKXNSUR_NRTORWVFRQWUPQRNYMK\XRVSUWF[VWZNPS]PRPLRSNQJUOVZTU_V]SRQ`Q[ZQKXRT]POZKNU`UXJXOZSWVUWMTLYVUIXUXRV\]S_R^ZMOY_UY[UPPRUR]R\dQ[[LVaSELRTS[QCSNY_T[LOPSTRQMQWWOIXPUKNWZR\[UYMVTO\UULVOYQGPMSWYYRMUXXTWYSOV[SVWZJaPUUHTTZSN\YSMROWRZKQUY]TVUWYPgTSRUVS\RRRLUSUKUQQTZUWRT^QZUZTRSYXNTVS[YUOQQR[O[MRZPMaNUK[VW[NUMLRRLcTVRUNW[VTRVPKRLMRROV[YYXS][TVNTVOZJ\LQZLP\XIGMKJZT[GR`LWZMLWRMNSLYP[PPQRWQPKQSPWOW[XJJLPRVTSDZcKU\JPPXO_X\NPRONMSIQRVMRLKTYHSQRLLMSQKMRHDT_HUXWTZOWV\MMFTQbRRN[QUXU[NUXMKaOVUSPWWURQOWSQRQTMXQPgJNTTNKWUTKTY`RKFMWNAJROTZIVRVU]LRVWPVVSTWSU^NPWMTYTQP[PSJ]YXa_\URNQWM[LRcc]PSNVIQRZRWSUO^UM^UNUQbYTLWYRPUNYSQ^VVQVJSXVNXTSSRWaP^PTSXRS`PHGUJPUUNVLVcYVY^TZXO\[NTS\WRPQ]TKVPVRLSSPURXRWXJORYXZPLOSUOOSIXVVOVTSQPTTPTIRM]TRXRSZGXSUYaRJVWJN\RXXWUTQNWWVHSPPVWRNSaTTFIOPVPX[YaWZTRPM^HSY[N^HgJ_SMVTSTUTWVHUTYTPQ^`RNNXe]RZNScQLKWQVPcGQSVNUKXMRWESPNIV[YUVPPPOIKOQWM`^QO_SKMXPWSSKUcQXVHSKdPOXIINI[LU^[WQP\NRPJHZUSSUYMQIOWQTTX[IJ[MUTOOVRY\OVZ\TXVXOWNRYQSOP`TcNT]ORbPSRVPVPYNZPRVXOWP_VUHPRQVDZYXOQ]KCORQTTZMVV\WSR[ZR\POUR\RUPRTNOOOESYQTORQXR\W[UWaUUPPSVOUWRROV_SZS\QOLMUU\S`LQYRSOaZTPMeZXWLTTV^[`WU[L[TMULSTPXUVTZUIVLUL[UUVMNOGKPRcTOX^WZRRRVV]UNVMPYQY[PT]YVWLcMQJa]\Z[ZU]XYTRSJT`ZSZXZYVYW]PRIRUQ`QWTNYSbQU\RKYZR\WWKIWXJXPRP\UZUJ\KXQQNVWPKXUUQSZRNVYOWPPXNWH^NYUaQKZOXIO]aPOTTPWVS[ZWTbNVWTW`LV[RQPTMOTOVXZVIWO^MZSRSVQUOSWWXXL]YbYMOVOUQOQW_OPQ]US_TVNQ[S[Q[S[VVPTPN`VXWQS^PIUQQUMTSRPXSSLUTVRVUIJVXRVZZOLZRUUNPSI[MWORSWRQPSU\X[UUQPTWT__RVYYYXNIVPPUbUWJVQPRZ[SPKVITF[P`SSRUNSOYNONPQUTTUWTP\MORHVSYOVZXZTSONURYLTXYOZONLWUURQWUQUUMVVOTSPQ]SW[SVWQLN[RSY]OXSTOQPXRPX[VT[XSURUUVRXQMOTVTQNNReV[ZXTNXGVPSRPSYURUR^QNHPYgSLYTQWSa^Pg]VP[TWaT`UURXbTMQNLPTOUSUNZP]SMXJMZZYUS[ZXQRPQUQRdXXRPROUUXWTPRWSTW_WTSRXWJQZVOWXLUNXZISRTOLQYYRJQLOQ]`ROVNWVNNYNVRVTRVPLPMTXPUKVJMOX`MOTQU^UOPWQSTSITVRS\VTYUJSRZZOP[TXXTVWN^PMQQ\UbYQ[WOTNOU]USXSbYW]NTWVYRMSVOWUVSRVKHP`RVWMUNOWVTULG[N[NTQRSWYUZYSeNO[VQQU]WWXZOVSOYPXOZ\UQRVRPS[JVWKQOdTUWSTN[Y[ZLWWJZLYYYLLTQRQRZROYTWTQZTPTPYWQJW^UTTHROZWRRYPNV\WYWSTTTPSMUiYO_YUVJVSXWU\JSPKRPVTIXVUSRUQUVVMORZXDLTcPPEIYQ^OMSTR\WSQKRMQRXOTUHXR\WQUQR`TWLJ\MSFQNEZ_WTYVXTRRbTRQOHXRS]ZVLSNYMRMXHTQFUSTXZPUcKTJMUTLZ^OYZT]TR]USNRMTXNROOSRVXUWWQSOQGXOWOSMRMPPWWZUKTTYcMSZUSVPWUaX`LSRTNTIWR]\MP]Z_\MhVTRRLWWIYUTPW[SQQ_S\PPSSU_VPORW[NYXZXUW]\\MLSOYYXNLabSNO[SLXQZVTSTTV[UNiYMRRX_OPLTLWQPHHTUUNQPSONNXJVSPWRURTWS[JURQTTRQMSUMQ^LQUXXOLZPJTPM[WcUH\TXQNNMRThT_VHKSTWQ]]WIIXCQSQULR\XXPUQeURVSK_SUQR_RQRMPTLN^TaZXQYPUPTGaXU_RYUZ[EPZQNdOYNPWRTEKTSK\XTb`WLS[OSRT\WRYD\TVaSTNTTRS[YRVP\P`R[P\VNVFP[JZRPaM_SVXVK`OXQR[PP\JYYHOQT]X\SOXKPMOLT\MXXJXTLTXMOeQV[VaTPWSURLVOTWYKZSUNULPPNPWdJRQLMIZV_OPQXYQQWTMX[USRRPVRXOZL[QRaTVU\KKRTQmOTRPR[NV\XUUNLS[ZLUTcV_LZTQNP_KTP]UOQSRaRTSP`X[YV[[YNRYdWRHNSTTW[STSNSQTPNU\WO_J]^NNJTVYTXSTPTUP\KRZ]ZUQQRSJSOUSMRUSQX^STMZS^JMLZYP[VMTOUWHXRYKQMS_RUXUNYM[WQ\MZUU]MHRXZWJUN[ZNUVQcLZ]QNU[OJRNX\Q`[WTRRNFTTVLbPYQQ`QGQQWNOXRMOWQMWJLTOMeKZQVZIRRKOSNPUTX[WgZPS[UTZWSZOYMWTUPQNTVITY_`OPLRRNXSO^[ESHTZ^NPWTYPNTURXOZRJ[LRSYW_ROWRXWSZSVWXX_WWWVZUXXR]TUMWTYUWTT\jUJUH[\ZNQQ[VRJNTOSMUFUSONLM_MQQYZRRQZ_YWQOWFY_SSQSNKJZNXWWVXNWYYQUTQeO_JP`NNOUOUPS_UOWU_USJ^WOPP]QMUSJ[QKR]TS^KYVPJ[XVNITSb_YJULTTULXM]L[PYQWQUiRPOZQNMSKSX_TS]QS]LPLVVW_UVRMUTQQViLSPTSTOSNN\NNKPVWYTL\YWS^NPGPP`YTJX_MYOWP_VTSUVVVZLFWTMPV[bVQXTQSKO[O[NSTTMRMUMXM\\RV\RV[IPRYVVMPQYNKZYZ[ZQI][X[SYTYXWQMVLYU\SNQYR[USTURTKSTUSJUONVIVYTNOWW]NUPLFXXQZWPOPVOJMIWXUeTRSVSRVXVP\YIZSLPQSTWW\UQUWPFNULVUSSQL_YOLHPP[MTSUPSMTaUUQYHZSNR]WVLWTQRWWWcYOTVXMXSUaRL[RRYV_ZWVN`TXNYZVUPNTRYVUW[R]XSRRIONQSVYRMPUWTVcQLU_[O\OVUMVOSS[YVU[Z[`LVRORWRXYZSWUX_SLTPNPXRLRPQPQSWY^UVVONOQQWUUYOTU`SSWNU\XRWPZT\SUUKS\ZVPOVSSTRVT[RY^XST`MTSTISQLRTSSOLKT`PVL[QY]LSPSPRLZUZOQWS]O^P[TWW[RVYTR]VXPVSJUPMJWOMN_RZ_XSRJQXSXUZNZVTPPQWLPZYPSV^YQNUUOWWVLVPQTRP[bRQPV`WZ\SZ^XR[XPfPtgSOW\^QRTWRUXeTNMOUMOOQXP\VYPV\RTQXPQRKPUP]WTPWQPZV_YTVUNWQT^XRTJSQQXMSPWUYNYPaJRYRP]QMSRPSVYULLNZUS[ZP^N[RJ`UZUUV]O[PL[JQaQRMH\YWXSMWPX]ZSNWP`QR^JMPZ\KVWJWOOKR_OVWPRQ]T^UFTETUWY`SMZSKTUTJNWMYTLUQYTX[WXVoeSPRJLP\L[THUVOORR]WUVYWPSR[LMVNMKQOOVVO]WYSXPOQYVKO[_]LTKYS[UWVPWTTVUSITYSWJPPVOPVdNRQSVKOK[JRPORQ[SWSLP_NQ`QZXUdO\LPVVV[RXJLRVWQOUUWS]KPPOP`YXYR\MROSNJT\gSVOSTKMa^VXWMQQUPPQUPVGT[SQNMNV\]PUMZMUUVS]XTSR[KP`TIPRIYQT`K^_QWaE`XO\VMQNSS[GRJQQX[UKITTJVNE[JOM[UVUZUUOTMYQVNOVQQLQWPLQXSW_OTJP]PWZ[VTSSTYVbTNP[`SUKRXXTVYNIRLMVQXZKSVTX[]ZOTKOSJVZRYYT]OL\YTSQ`UWRQQ]aZS`IOQPKSYZNURcIYTOSZUQO]SP^U\I]XKNUPR[OJSXVUUVYRWPO]YUWVTUWVYVVT[RJ[QUUaOPVTa\S]RQWULL]KRUVPSMWQcOVPT]QLZJbQUIMOXVdTIYNV\TVRVNTYYUWUNMQWU]TMORc]LZM^NYPS^WQPEWZWR]POTTVQ[\MPSSTWNMZdWSUURX_RLRWe[PSPPOXTUQWMWU_ZR[RSZWXSLVYRMLYOUTQS^STUPRSNRQT[SQVJXcVVZMNUJ`OWYOYMTVQWROPNSXXRYO\WMLO`P^\[RSSHKOV]KSUOZSLMVLWWPPY\WNUZPVSPZVYMP^XKTWZS\SUKYXTK[VVP[SZT_XVVRUMYaGPRHJZUOMSPRRRLYY\JTWQTWSPWNS]YUTOWb[QUUZOQJULYVTPWPRXWQSZXMQTI[X_ISLKMXRP]TRVMMWKVQTVNWQOWMVLRPXO^PQPWRMTWTTX[UVXHQWVMWKMRLU\TSWWWQP]SVM]N\ZYIEZPVYQ]KXMTRNLUTQWRVRRVVZPWZOaWW`]ZC[HLPRWS\URQOOQ[VMXQRPUPMUURMIR`RZQWXUNITSPWV[CS^VZQRSYJTWNSOTScVYPTUWXNROVWPRaMRKUVJUROYOUOQNR^SOZOeSMLWLRQVObOMKPZ\VVUPRKNOQTUDbTeTP\Q\UQORKVSWUOSSRWVZT]TOYL[KVXSVQWXKSUTZU[VNRUNNWRW[SVT]QURQSMSZUVRNULWQUV^PVcRJLTJNTOX\]QPUOUPSW_JUTVUNUNSRORPTVWWQ`HXLOJPOPVQ\[TUSTTOVYNPLIT[IPIK[MUI[MU\M[VVNQHN[RU[MTTQRNPSSUM[ZUU^WYTS[TU[WVRUQQQgKQZNVSLZNPVQPQPOMLPR]QVRUROVWT\YV]HTKPbS_VURLWXVWZUPWQQZKPRSMMJOR_OLURRTZPMPU[MQTQ[LLVVWZaCUIYQOY\WDYLN_VUPPMNZMUQKMLXOKT]NWWUVXZ[JMVPY]OLHWTKJMSO[XZRQRUVRMXYOZTPNR\UXRWMZPOTKOU]YN\QNOSTQTKJYUXZPP_JZKVOUPSHHO[RRSYWXOP]NSPeTTWZPU[TPTWQOTTSGY[N\[NYR[OTTOOSYWMSTUSTSKRPXSVNMTcHO`LPKMPRVRJVWZYXXXSILYNQVWYgWPeYVNKNLhOSRQRQ]MTXOVYeTSPMLPMLSUO`NSKLIWQ[VVX^XW\USO`IPNRMVRTMJTZQTJHLRRSNOQZZPW\PSWRUVIMZLV_WZUYOTcXZWU^UQYPQXVYSaUTPKV[PTZRRPePY[PT[QPbNYYVbRWXLOVOVTSVPRfJOS\P[WZLSPPRNV[WVXYbUZUNWNZUQ[VRSWYbLWXSKKPMVRRHFZTSXYRbYTSVQYVR]RVUTKSYRfVT\RRWQLZSKYQUKNL[MaXYZTQTYTUPYRVJRSUVNWQKLWOVWX^ZSNSUQP^XGR^SZO[ZRNTR^YB\LRT^YQJTWUJgXORFSTUUOUPUGMTTMVXO_RXXVTRSSXRWVZN^QSTXOWRLTVQYRWRSSeWPY]NOJUQRMJYQTOP]SONTOTVIOWGUZgKQUR\UQ[Za[_Q\OV]VW\J\R^LXPQQT]QUSVNLW[QUSTRUVTNSVR\WVFSRNYRWSTMTPMZSMPQYSQMMZP^KSYQQP\RUVUQUMHXWYR]OWOSUKWMYYQUX\OZMYTTQRPTTUTSX]TMSRKTVXU[O\GZJTPUWPRSNWSWWRSLQapNKYWNNfZRUOQQQNTSWR[ROX\QJRWVVMZVS]M^UMJVUWU\OZTGRURXYSWVUUWYQ\TPUP\UTRQXZV^WSG^KMJPXSWUXYP[NOVUTSTRUH\MYPXVJS_NLV_PWU[]UQ\HWT^OPbZPQWVYb\KSUNSVYXXP\`RVXST\Q^LYaSM]\XUUVWVAYZ]a]ZYO\OXYSaYL^QJbSXSc[RVUUSOQQYPQ^UW\XZWV^][XQX]VSZTSTV[NX[\T[TPGO\YYONR]ZLK\TXUMMZRRM^J^XRZ[MNV_QYWUZ[_WVLXQUYSVQMPdTSJRRGXSG[OR]Q\P_[RTRQWROSeOQVaYORP^UNWaTP[eYWW[U[_X]TTPQZN\]WUXVPiVPX_YQY[TLVY\OV`WUZUY_^POTQTTMW_XbQWJ\cX[XQ\LX\\MORSURVWMZWXQHOU[WUUXSVR_Y]>NZUZWQZX\XVRQPQZXNYQUXYRTVRUTVZRUYNbUaQY\PZQ[P[YU]S\ZRUQSYXZRUPSSQQLW\\ZMUNSUXUIWTOYSVSTOTPKWYUX^[OZUXQUMRTNF^QTWSXMYKRQZQLRZYYPRMWRWTN[URPSQWSPPQPWPQPRNUVaILTTPUQSQRTOSbQZUTXRNPXSUXUNTQRTNYJFTZLc[ORRXTVLNUEUPSQOTRRTMVYXRMTTZNTNTR`MXNSN[]SOQOVTROOWVPL[RR^KLSSVMVYOYSNWMNWXXYSWYY[UWRVY]V[RNVQYPMOTQUWSLY[SNUXLNPS[ZQRRQXOUSUP`V_PVMWLQRQPWYPMNTTSSJOMNPPQZWVPYNWXSMPRPYOSSYPQOMYZVUSdWZTFO\UJYXKU\RWRNQQPU[QMF_TOSVWWf^OLUPIOOXTUPP[TTcEV_KQTUWRMMOJRWZTPSQK^Q\XR[WTOIUYM]\WPO\MJLaNWRNXdNMPWQNGRL>PURTSOKGUOUUVdTVTJUWSXQWYQOTQ_RRMIVY[MTQVLQTQTQJ^ORTGZQJT\KHRLKQ[MVETQMSZLTV^QTU\TTYMTXM\IXK]XPPTZUVVWYWQRUcP]KSYYMXPEQTPXZ[^RLS]VYNcOQXLWOQTLZOOHPOSL\JT_MWVTM\_MXXERKNQ_PWOSXXOQUUPJSj[MSVPRTWKSXWSKZQORS]KPTTTFRORXPRWQQKNRYXTOJQRMONZPPPYNPOLNQRSW\OSWUVVXTSTbRRSSHRBOLSQRXPZbTZLWSPZVVR[LJQZTSPRPNXN\LNWTSZ^UUULYHQTY[VL]NPP`QNXTWSRVRVPUOYPVSZTHT\UYUQORUI[W_UU\_RY\QYXPLbN\RZSWU\ZNPUTSVNVWOXQX]PVTZ[UXNVNULSVOU`XOQSaPOSOR\XIMVTTORYDTNPZ\WQVPUSOSPWGIKRZTRRNXUcPMX\[ZPWOS[NVT\[XMJVWSP\D\TNVMSVUTYWYKV[LSdJbNLXVUMUU]\WYMZO[TSQMVRTXYWQ[TUWVLSQYNLUPNNRTONOQWLLWQTYN^UJP[UNOOROPPORR]YTQWK\TSYR`RP[QXYK]\IYWMQPTQ][WSXV\UUYZWZTVNMRT_SJYVWTYSVVOH[SVXTjWN^acTQ^RSUMLYYK\TOVOT^WRXQMLU\STNVYWOOQTPZ\WUWRWQXLQT`TYRYWeQYPUSWJVUMYSJNRMTWZ\VK\URPZZUYQ[YQSMQHVTR]Y\K\TLYVZ[QXRWYOLI[UXNS`^NSFWPOVNYPSM^QRWPRXNOUWYVWTXPPMKHSR`TR\NNSYSUSORQXQVLSTR\SVZSRURMNYSUXiQ[SN\RT[RSKXNXYTRlQWUY[RWU`VW[PRVWVRZdQTZ_WVRPWY]SQOZZW[R]TMRX\SLaV\Q]^P_UKIOJ^SZWSYVMULOYVPWQGNNWXYQLTTM[PMTLV]UZP_RDNQXQRMUOVeWVTRZSWPNHNSPPQKXNXMUIQWYU]TM[TKOMPVYKUQ_V[S[PPRQQXVQWOMR\SYSR^MRNOY[TQMQ^o\JQQONPRJZTKUXUQS]NNJYWUUOPQWQVbSO]XSPULU[KSO[ZUYROZVTROMTZZOQVTWY_J[UTZOVS[ETJLKPSQRRTRRQYOQSLKIRSMMTOIQK\PMYNSNFXeRFOUGPNMRPHNWOSSQPYXWSPJSS_]bIOVPQMMOTEKRHM\OIROXSSPOLQLMSLT\QUWKPQOZWVRRPLSRYYIL^MIXO[TJUNUQVSSK_JQPIQMS]PJVRSNRUJIJQU_IJTGMQY[QRMTWXPSTOVELIVSURNROV[O[USX@KLT[QROMVYKSTSRKCOWLLhYRWRTTMgQHNMVPN\PQVHHLKFQWMJQWTKRIURSIRKBfJVOWKVQTPSIRWPMNTDSR^VNL[\NPSUXRQaW]T]T[PUXQWUaYOQONPJWONTPXORMYPYQMN\VSRNXHQ[RSQXQXSYISQONYLPRTQSMI_ERPXO[OODWPMUUWQWdQS\T]LWLNHVROVNNRULd[SLXWQNZMSKU[N\QON_OUOR^\LNUQHKROaQQMQTRWQVVQHPWdPY^VP[MPGKUSQORNV[SZNSXTXOSNRUOUMTR^cR_[UPKPYWTYJUPPXTRXTOXWHYSCKL[SNJ^YEPUQGJNNTSLPZMSIGUNMRU`LWKJUUYVUNYVOUWTVPTNNWTTZSOLTNZQOAQQS]SXNNUUZaQQWVW[]NT^VRhRO[P\HMXUNROTNSNJRURT\OUKX_MUZZTPVQSTTUWFS`NWPJUXZVWOOXPWRQRLO[IOUTR]SRIRRXRSNTWJSTQXRMPZeTYUOYQYN^Z[MZMTQNPWP`XXAOTWRPVTHYYbLVSTKVUKNOQ^RLNTKTTSbKUXUUS^LP_aXVW_LDZ\WWJVJYZZTXOYTPORUVR]OZLJSQTTPVZOXJUXPW\SNQWJPZNSRF[MXRSSLXZ[VNaZUSIM[PaUPRGaN_[WTSUKHMadTPN`U_UQOYMTWHMXSZWU]TSS[_X[OUPJaUJOXRZ^UTYVUTVWZJRWQSORQSQYWOZaWOMUQPNWT[ZKdVTMLLYMSSQRMMRTOQRVaZZRKYSW[UZXJPP`ZWaYQZSUUKLTRYKJSSMYeJPNO\_NYZUPUSSO__^AX\J[OTLWRNOaSVYOYK^AUVIMTVZYRYIQOQLSWVXIO_XVbYDSNSSYIZLQTZ[_RUTUYOJLKPScYRXXRPWRJYTKYSUUKQUTOO]JaWQPXYSS^RLT_VUQYLONUY]T[ROW]XOU`XTSXQOWXRTTUUXNS\WOEbMYJQQSXWWWWMQJU]SMSMTSZOPWYUXTKUO]TVTXUQYSJKLT^ONTSYYRVZPRMS[GVMYKUR_WZYfZVNZ^SOQUWZXMXY\FZRXVOYU[ZXUTU[LUUVLQPOZUV[NPZUMRYRXP[YYSeUQQR[MPOTM[YUVSQPUOMMPc][PPMRUXNP[MQNXQW]S\NSPSa]SNMPSTLNRXPUO\SVQONRXSZbPUPNRSJSIPOQRM_L_Z]TJXU[ZV]VTRNLFbYOQL[SPGTOKY]ULa^LJQQUPUPWQMOLVRPXLQMLKJW]QRadV^PWNNbVNTRQQWST^]UW]K\VYRPPOMKNWQWTTPTR]XXQOSTMXMOOZSPUNMYWSXURWbPGRO]WONOQTGPKOQTSQQZWPQ_YTcV^g]K_\^NHe_HTTNcVUSR[]\TbSWYMI\VONMZXTYKYUPRQToSO]VSYWZ\KYPZ^IaZcUXX\RbRVeSTKWO\PX_VX\YYI[IMSR^JROQXYYSFU\QeKZTNTQXVPSVP`VGVSOUQPXXRLOQZ[Y_RPNYWNSUUZTOS[[X>YSFROSU\gOUQ[NSU^[TPqVgUMNaaZ[YY]aZYWSRFU^GNUZ]Sa\W\SYWLeTW^MCNSP][YNcWaYPLVWSe\PTXOL^l\EaORaT^QPRY^QWFUPTT^RYRPUVaZVgINfWERQPdJSKGQTKM`Z]V[BWOOPP\LR_QOW]aSQ^MNY\NOOORTT[SdN[XMQRTNUYP[RROTTYcXY^PITWSWGRLZI_`LS[JZYaSZNQRR^KNOM^QXOQSQWOKYLUURJTS]QYRIJ\MLRRSUKPRMcKZfOPWQJRTSMQ[^MQUORIR\\NLSKSYXSZWUSPNRZPQETQSXMXX\M[WVSTUUQRLXYVMSLZTZQVNRRgQVSWOSSYRQSSVXSVKTMQRYTZWWSXOZTOTYVX]_LSYM]RSLRUaRRLcW\VVVQVTX\WOTU]VMNTHWS]SRQPQLWLRNTTgUPRY[T]ORUKMcPNN\N\PORSTRTPgbQPNTVZNSYSIZNTUT[PMSQS\ZGKRMUWW[VRISILSYN_P[LLOQZSVSVXPUQGYcXRVWMTTRWRPXURUQUWcWYY`TRROSYR[TLYVUVZQWYQVXG^SYSYSZOSSPSTKSNLRVO\YQHQNUT^UOPYZTTQP[ONSZGRYRUTRNFSLYPVMOSX[SN]XRYZWORPXULJUWRSP[UUQQ^\[UXXPQKFQQSQVPP[VU\X[PRXPZ[_UYPZXPSOSPURZIPcRPOQU`SVIQMJWTUMPPV]XQUQR[NSPSY`NSYRTUTWTXXURVULSQLOLQOWYSQ^^RWHSRaZQ`UTRRNN\TXLOWSSVSRNQQYTUHTVXYUYWQRKXTYO[[[S]NXNX]NNLLROWN_VOKSW\QVNUTbXJbWSRLQRaZTTOQW`TWWQP]KXPVZNSU]OTNPV\WXPNL\VVOWXXWUQSXSPUVRTTRVMTNNVONM\\LWO\WQ^\USR^[SRMNZQMP]^USPP\^R[SGMSPQTMQOVUO[UYSYRQU\YMTYNPYWTRVSTWXMHXXSMRWSWUPSVPKOWRXURY[QUNVTLYPSVIMMVUKZQJWXSP]JTXUVTOVSKUSZKNLHOZQRHPZJJORIXNVNUUJKLWLVULJPNWDQTXKZR\S^SSQSQVRQRMWQZM]KSNRQVM[RSQWYYKRJWSJLMSIULMOWFXORON[OSVWQJKSMNR[LLO]IVTTNUPhQVPSRMTT]HUOZRXLRMJT\RLLTPJSPXbWPeRGJIFVZXUc]NTQLUZPVM]PRUNKOQQPMPQQNSWER[\YRHTUVVJTUOSPTIWW`LWU[DTITSVWIXUSX\]KW]RZTPSNQ[VOPXSOTUNWMSRR[Q]XTVOULT[`RGSTP[ZTNRWNOXXTT\Z^IULTUOQRYT[RXIOSOOPTYQUWU\MLVTTOKQPZVRKQGLLUQYPTZI[T\QQTOSYRXQTNU^LPS\WTRX[K]QOVZVZSSVXLYURTSFUTMOWLVRUPX\RSLKRMTN[UNSVPX\QbXRXQUQUSOLNHLQVPQSSJUTNPKTIWPYQMTUSXSTRMRJNWZQU[SXRVTT]UVTSUNTXH\VQ]RPUUTWNULVVO^QQWUTVPVQO]\HPMSYWOPY\`YRPTXUUQW^S\TYZTQZYWVXXZWYPPS\NOSOSYHRXPW]SSMPXUXKRYV]XOOR^TXVRNIVTTZUbUPNRXTL`IQ[GPSRVXT`X]N\TdO]ZPKOV]\P[O]P_RN[[UQPQWPWPW[[QNWTVOWMLaYaMIQWLNDIYQWXRYRSTWYTNLSRXPST[PPPOUWU[V[MXTZUVPZN\ORVUOOSPZJ^W[SZ^XXQWQK[STPXXVWQU^ZISRT`_SSY]`SYUSPZLSWTMUTUXRRRVVUPQQ\YRWVTUXSQ]PJORWRMS\fRPUJWRXPVS\YZVQ[NZSZY]H]KLP]RWYTV]ZK\SP\Y]Yc]JXRSVKVNXRTPQSWYSLPYOUUUJIPJOUTVZ_IXKNWSYQWP]_SPSYUMYTXY]YXP^]OQVOQSLP^PS`^RRQQXXUSTHTZNVNZNYXVWTYXS`PZ]PTXSRQUPTUTS\VT_TMMSSR]ScPOZZQTVTSSMVTT[OSSZ[RQMVML^NQOKQT[SWN\ON^QOUOSUUKRZaYWXTQVMJZXLXQSMPWXRW\TMRXTT]M^\[OXQTSW]JRN[YJTTZMOPXJTTSMSPXJMPU`QTLLROWOSTRTZMSZNNWVXOLGXTZJWXNHTNLR_VWRVbNURXRKKZPYOTNNXXV[MTNXKKPMVL\]WNOPX`NP\ISQRaNVVWJ[JEPUHMPLXLN[W[OQNLXQOROX\]OZKLZEMRXJXLUUSYSTMMXfPYQPXRUT]]XJQVTQUYMLSXW_WSTN^UOTDXWK[PQSQPOXKZ]nVKTSQYLW[ZRTXSTZYLYQVUYRVJTUUFQPWNSNVP_OZI_YSJUQPYRZPZKSSWJNVKUKSZYRYPUTUUV]WM[INQYRP_YOTVQRO`PSeVOOZO[VP\SVKVSWRU\R[\MKXSWSUQLKZXX`ZSSUQHYW`YS[UEW\UUSUSOMVUUMV_LSQK_VORVWWGXVYNN`NWPRZVUOPKWTQXTWOWYQV][HWHJL\NOSVQSSRQO\LQRUVLXMWJK]OWN[ZMTMJSVSMMQZ\USUZQQYMS_JO`VZITXSX]NSSULKZUUU_NKWWS_TbOMQIYRXTRGYSJHYQK_WZQIRUT[MYQXUIXLVOTVR\SaVOPXQVXR\]PJUGTV\VRUT\SWZQVXaQPINPVV]SRTQTVTJeI]MUS[SYUNVRSQ[NaQJdJ[WRN^\MKRWTJRYHLTXOVSHWNRQLTQO^OWMNUHYOYKPUZU[P\^E\XQScVPPP\RPUSKOQUORVSNNWVTYLOX\NOPPRMgCUPQTOTLO^SZNVNURT_Y[QSVKX^RHWMcSZKOOO_NRVO`Taa`MPOWPZPWY_NOPTPUNQRRUNWMJSV`ZQLQZTSR[[]HSS]\WYPEPL^UTSLIRUJUVSWSOUP]ULRYXMUNLNNVZQP^ULPTRQMRYORLWVRYFNM[U\XJST[UY]OZOTXQRYTSQPNQT[NRRPNQ`RJMSETTMTX]LSNQMVXR^HRXHSNJWHMRQ[XQORTJUKNFBV]ZOMNQHWZVSWOXXPVSPOPMOQOOWUWGV\QZNQQYSNJMUSPWWNOXOjSOTX]NVJRMPHOVZMUPWTUXZKQPJYPZXXLdWMQORPN^PaVWVUPUTLPVQRQXQUI]JRT[WXSOV[OT]NTXPOPPMRTMQLTUQQTPSRHVWVTSHSXMZZYQUTQ]SPORMRHTN\RUR\WMNNVRcU[TVLQIJLUSW^URZdWRYL^OR`RYPJM[UUUUP\ONQKNOQM[MWKHU]MRZNPUUYJRHQ\SSWSPSPS]NQVIRKVKKQ]CTQ\TTWZNQQRS\[YSUVLZORZIQY[NT]PYWZR]]LS_WQKPNQQPQY[SQZXPXNRUMJ^OT_ZXaMOZXNZVSIQRMQTQA`UVQZ_U[TGMONURXHSNMXGQ]YSOPLTH]^ZQVYLLYXFQWPOTQQQNVGNQRQOSOTK_LVOSPNKMTZ^JVaNRWZEVYJZSQP]ZXQQPWXRNQYYXVTQTbWPffUQJRUZSWWPQSdQcVYLNSW]NMePJKORMXGNYXRKMSBTWYXTLPTPdLSQGQRXSRVUS_U?UVJRMPOSS`QYQ]VTUNTLUVWTXVTIQUT\[MV]UVUR[RYQ]OMQMSRUOXSNXQRMWLRSZ[]VPPZSTSLJQQWPQNPWNLTMXLY\`YNO[PT\NWLYRKIRKUZ[N[WSO`QVWQ_MI\Q^ScZK``KNNNIK[[ROWNRWOPOWYSR^VRNXKRPIP\O]VYNMQDMZNRR[KXNVRYEOR^eYU^GRTV\UDKSPM\LZU]QMU[GYLPSH\KXNVJTWUYSDUTZUPVFcL^XTSOM>YS]aYRSVPU]UVMKIVLFNXWPTVbT\SUSZHQX]KTITPYULTiDTSWgYNMTKLNJJ[K[_]P_QKQXQLQXPNIRTbRTMTE]SNUWKZPPSQOTZQRETWSHSWQXTJBTJLFHNMOUUQUOWKUR]SUVOVOUZP[Q]NJTnO]SUIMWM^`IZSWN_SRPYJVQXYKZKKQTRF[H^UVQQLIM_T\SSQIVYVSRWTQ^VTXOMQXRWSZU[\WFbYUEMUUSNSXURPZK_LJRP[h\NDOQUZLWUXNVYcXTUMWUSPKSMDWUQORQZJOTZRWXOKSZTXTTYTJVRPSOTTMZTV[VRZPSUXTZYNNc^QQX[SNRUMRNGN[XOVTP]M[RQYZYHNPT_YWUWRVYRXXOU\RVKXKTOTOUNOTVRXPYUZ\YUVNXVKNYPUSTZTKTOJSM]SPZ]ITTbOLTQBZUV\NJTTOSSJTTL\UNUG[^TVgRYQIMTXSM`[MVi[TNSQHQNRXQT[STRNQOTUGRWHTVYIR_MVPLOZSTKFRWQZUW\NV[SVPMSVV]QSVYOVPZSU]STPTWTTOYYIWSLUMXWWY\SP_PWUKKJXTN^]NPL]SVPDVM_PS\ZKUMVYTZZ^SPPPYWRQZZ`\JZ^USNTV[UYPLSQOTTIFOVPSH[UQL]RbbZOLSaWRSQZMWSVQ[WZQQSQKIWSSQJMQWPWWYQKZQPQ]Z_RQMXO^YWZPRO[RTROQOTYSPM\TMMSNWRQMVOKORPSPNVP\S^SQQSQTTN^WU[XSPP[VQOOTO\OWYXZKTXQK]QRSPHEWOQUP]UZYSSOS\RON[XVWNMHKUVS`STVYTSP]YUTTMMQNI\UUN]MW[[PLRLTTROLVONVNXQVWJOTYTSOOXSUP]VZVO\JS^SUWQZXNYQM`SUgVSXSLQKOWWWSZL[SPIWWZTWRQRXONZVVMRNTZMPPUWNKYUUVPPSR\]GRQXSSIQXVMV^OYYdaHPRW[QLWMQYXPWLXNdRURKSYSZYU\Q]VWQZgRXUKVXRUWQP]O\X\]JWcLPRVNMZLSUTVXLUHUL]JQV[S_`RTVP[`V_U[QPLZTS\OQQJOJWYHNROONWJVXMUbTY]PU\YPST[WPSFNTXONRM[]ROPQXYK\`UPRZMTSXMPISUZXZLWQRQQTQLMWVRZRRcKQZW[SPVLZQEVWOPMOUOUUdNRSaX[QZWVTYUYOYMROQWPSWRNWUFRTLUPML^\SPQPQRYXMOKRWVZSG[MUV_PUNZWPZYUUUXTYZTPUKOSUQYb[XSTNOTRKMJPKUVVZOPNZNPOSOV`P[P^KTQRMGY_NOWXQZYNNTNPPROKTWNRUNWYZ[_NQSVVdSTLRZTMETY^[QWPQPPWQQWUXZUYMXUWOTVTTVLLMSYPRXXYN]]PTPVRRYMO\_[PZWYM]RUd^VTIVSQOKLW\XX]L[^\GSRTSRLOPNSQLTWURXUKU_NTRV_WTSRMOUROKV\KJQLMFXZWRLX^PWWSTRNZZIS[QSJTbQOPHHcQYORJONNUPVOOUTRLMUdUSKNXOWWUKPQTR^ZSYPWWQVSHWVOG[VN]KQTMQP[YRQSO\UQ\NYOTZW^UOPKNOQ\ORROO[[YZL[_USVLWLN[VTITS\WPYKSUNWWUWTZPYLUSOMVYLNTZXNWMLPTZQW_WLRXTMSRWOXKTN]NNTTNXRJ\KSL\\QVYNSTVYOO[RH[UWPUSJIPS[ZU_SRZQRPWUVYLMP[PV[VONOSNRTLLQSSSWcT]RTTYYPUTONSMaSLSfWQSOVRcWSIOSORXPNQQKSROVXQSJQ`BNMQRSWORZSKPUOQRUSZUW_SPXN]ONYDYKN\SUQSTNRRMR[\U[TPMQ\RVSJOWNPXMQKPVSONMXMDTSSZTIWUXUPWWPPOISSROMWbVYWFN\MJJTFKNQc[Y[`^ZQ[]LPIZMMMOSOPVPZ]NRU_KFVWKOL[S[LTXZKVUZOLY^UNWYcLXZXSMZIMMYRXY`W]XS`JJVQ_TXKPTJPUYZSPPGXRKNSRQZXIZ\UO^NRRPWO[R\XK^RPS[LUaTP`RVUPVRT^PNUVZeV[KX[RR`NLVTSN[O`XYL`WQUUGUPVXQTO[UQTWOQCMN]^RWWDYQ^JZL\TSXZTS[\YPJcWNPR]UaZWO[SYVPLRSWXVSPX[WTWJVV]^USTNLVVJO]NWQJ_YQUEURTSMQX\PXTZPS^JUUPYUNP^P]UNO[WW]_RIW^HXVSOTUQIVSSONNRPZXVXNOKNWIQXZJPMIXQZRZNOPXVXJNbVXO\ZTZUYX[X]`VL]UQMLHSZUOLQNRTISSOPSLUTQSQTNRL]SRMWLPPMQRSNOQLMUEZTLUSMZXQQM^RSPNVKZ\QKTDNRRSXTYUS[cTPWYRTSVZ_YNTMSTTTPNXOUK`SNWMMQTUVWLUUTUV[OSRVVbXPKWYPULM[QQYRaSPWOVW^OSOQSTRTLURXSQ^W_MLWVTTTbWLTTV[TVUKVT^SWJZTUSQZWSQURMRMVSQPOZOSPVWTMNR`QSON^SQ[QU[TSKSSRMRTRWTVWZVYYLZXSNTRRPVPO[PRUXZKWXQRTWXSM[XJLXSUNWNSSZUMSQUNYRPMXUEJV]TNOMJ[VPP[HYPZWOYPLNTQ[TUWQROTQTXRLTRWPRUOKUQVROPWLOSGWNd^XTQN^VOUUJUT[OVU[PRKRMTIRM_PZQRQZJYMTNRXIZWYSPNTXUPMTQMKRVP`X[PHVU^OaMV`MYXPWOPdQOOWUOY\JIUQSYTK[`YZU[d`QOTPdTQPQOTNLT_TTZS_T\QI\O[MYUQZ]UTUTVTVSUTTROTLXYLQURM]LXZTVWTVWZU]XLQTQVOXYIWVQWSMUPMNWbMRSUUMYRKQSNURTVLVRPWZVWLQTUVJPMUQWSKRK]RRHUKQbZRNUZOOM]YRTPUROKRFORVOPUYaUOQXRXTaPX\UPWPPPUJUYZQ[VQUWMPXOWQXX_P_IXSRX^NWESTXXKZSPTVUQVZRZZ]WOU^NWPZZQPST[^PPVVNSJVQVUTMVX\Y]UISTQWOTVf^VST^KTS]R[TRXYYJWQHUcTRKRUTUTMNRRSURRSKcSPJ\RWUSYLWUUQKXMVQ]XWW^LWUVNSUXDZRZW[RSXT[MYLTOYSUI[USUXSKQVTXldSG^]WJ`UWFXUV]NKTZUPLXZM^YOKPRWQUSJdV_UTNOOWMZSbSSUWKXSWRUTZTQLLQc^SJRMVXYONbVQV^bPU\VPM\JRPXPYYINNYV_aLKZPOVZQXFTZ`VTTQTQTZUW]QSQ[JfOUX[TZWS[^SSXQUWTLbPNZZZRW]QW\WS^UVWROVTVJXQMWWLbZVQNZ\]S[THONSPQ`WKRRILXUSQGUUR[WO\VRPWXWWU\NU_WWKGbSTcVVCROYQdIZTKVUTPSXUUZ[^UTXRWVNRWNT\aVM[RjYMVPPYXVYQOOUM\PZZUQP\dQNJERPUQJTSMUNRW[SaYVNKZT^X\YO\LRMPZRPWQYXWJRVUHQTTLXVISRaSTVSNTUUTRZLEUR]R]LaZWZQPJaN]K^]TMVSTQ_TPKZZOGYMSUP_]RUX^OE[PZXVSVQWP]Q[SUUR[NX[MPZOUXVJMSKQOM[QLPNQTYKVQYOVO^[TRQXPaUSWLUNhQO_OQPMOSUMXOMITLSRUTaTUQNHZ`WPSaYTNUSQUGbUL\TOVOKPL]VNQ[DRSS[QRSVSQSWfTVbXPXJXPPNVNISSNbOMOSWSQSSKSHMTWSW\RU[SKT[HTPYMQLXUaRKSYTOL]LU[ZMHJPSbUQ^\VRXKUWRU[XRSSLPOO[SWUXYX\VZLPNZ^SXTO[W[MO[VZXNMW^YMUPPZMPPXLQNRWOKJXHJ_OQ\PZbUSSZYSRTOPSTVXSM]YQJLUdFNURSbGUTWZKRXEQ]]RSb]OQEGQZQOfNS\R]QRTHYMVXSWKTRP[S^QUPVX^^UIWMXMSYZdNXNZUP\FWRPRMLI\QaRIQVPMTlSS`XMMcVSG\cKHXQS^\PUZNTU]KO`UTLTKNPPWS\FM]UKIQTY[YVUR`ZL]OXYJRVSSZ\UU_VSbQZTaYQ_`]UIJbLUGMOX\_fK]NaWPOTVQU`YUQ`WMXTNRTSUTYP]QX[OW]MNTN]WJQX[hW`]]XRVX`ITPWTMQWLOODUTQWUMJWLVL^NQQNXVPeTM]SMWVQOZRTbQWVNSRSjbUUgbY[P[[dgg`ZH[M_VPTRY\[^]_SVe`NFVKO\cNUOGOTXVNXPZWXKUUSMPYeVIMSDbUYPP[KUYLTXKNOU^VJAIPCNVRQ^P_Q^NR[STI[\OJQVfY^JQdWMUXWXIQ[ZQLSUGWMTfSVXXZS[OMQSTWP[XLVR[MXhJVQQS_TSYXYP]Q_XSOURQZDJQQMMVLU]QWWSMSVRKVQZTPQ[PHUPYQSWW^\UHGTOUQXEaLTPYTP^PNIRVJ[fMVQOVYSWZTOGTOTSNTP^SRURO_Za`SWYQOVWJZ]ULPYWKRVPW_WLVMRSXZZUVTRd[R`UY[T\COXYcUTZ]UUSUOY\PIUX]VVPO^D_QOXOURV`U@Q\`XOP@[VSOQKQbZ_VUKTWRMNKSTOSbRLUTVQWU[HLXYTVMQOSWLSVPZXYYLHSaUXVWXQWOSV_DOKNSGUVX\RA]ZT]\ZS^VPXFRTNcRI_JOT\RSbVXVHZ\RHCGGKZTNUTVTU[SGWXRUZUPTTZ[BVWYJRQXXZT_WP\ULTGRMQM[XUOOORLJJXTEPKRWQZCANXOQGTXGKTSSNRPbSOWXORQVOMQOfQNW^\KWTH[TVTNVMMWUTVYXQURX_NSUUMN`GQ_J_KdYUTFVSOJKT^G^SVYTTNWPHUhM>RQSQTTVPGKUZORZTS_[WQQUTQ^OSTRVMZMSNYYFSYQNQ\_LHPRVNYUNT_VZZOFSLXcM[TXOSNSMNQ[O]RMP\iPYOVMN_JdFOBUVIRRV_bNP[NKWSNP[X_W]UORVTTRZTSOVVROXQX\OY_]LWOVWWTGYXT]JPKVSUSN`fHMKIPHOJJUPPRSTPNNTVJPS[SPVKt`SJNI[UQRTWQNISpQKPaVQUePVONFQRXPK[YSXXUWZVPVP^XRLPORWO\RJOSUTJUcSUYSTJRTPUTVSSH[MSXLMPXPZTGYPLbXKMYQSVKON[LMTWZWWPGS[NXURZWUW^PcWUNYUPWPQKROQ[X\N_RQU[RJOUS`cIMUS^Y]TQUW]\TfWNUFKOPS[SOTX]XUMbTQYV\_NXTWR_LYJ[SX\OOPIQPIXHESTPQQWPYOUZMP`LSSVYMWSYUUTVQ\KKTCPhYJ]ILOHVQOQYOMUROQSS^Q\VUYXURWWYXKRP^\RRVOOTQRYSS_YUURG]RMWORU]aULBS\IULWTPN]VNMX[IHT]USKZPVNRKGLUhKWkNMZUeNSR]LWNSVZSUSTR\SU[W_^[\UTROWRRUN^aZVLYSZSTRQPH]QT]dMOXYLKWXVN^HUKIR[UWaSMINUTWXbWNfPW`YIMOYOIMTX`CRT[OP\KNTKZUXVUGb\_RXO^WQTYVLNNNQZMQYPV\[dTMBQKP^PVOWL[UbKajOSYYK[[_T]YUSRZXRTQQJfWNXVR[W^[YiSNVTWNWV\OO[W^\TVXRlRSLPQUMQPfTR`SRNM\RKGYVWLQTSPWRIL]ZY]NRT^bI_[[Je\TPWSRYNM]URJWPK\ULZNUN]S^GKKOUZZRPVKMQQRUXZVHX`RPONgIPSFS\V]bVLKaVeY[UT[INfD[]UYMUURBEUTPNWSXXRNG`WY`TUV\VUMR\UYd`QNE[V[^bXD]UfYOMMSRWTHQUON\NOeKNO[TQOWTHPVXWRQRZWPOOSXO]VIPZTU_UZV_UdLIQS\KPMTSLWIWJQ^O]ZZQdTNLSSXXRXSbYTOTMSMKORZEYiMGNIWkIUGDSRQdTQSP`UScPWUZ\[Z`aOOXZQUG[LSFVTR[TTXURMRXN^LR_RYOKQM[`SKPQH[OS\NTSGPRFWUGTPQU[RQPcgRWZ]cMWLOYR[[MLSZTFQTKTYgSRV_]NVVSX_WQPcRPVLUMIRU^WSK\MXK\ILOEJEUPOR[MJRM\\[\GMRdTYIQOSpXaPWXSOcTRXMVMTOO[QK]QSNRRNNKgVRV_QQ`RfTXYWlPRSVPOUPRLJC\EKBPMQVYfSXLXCKNI]RKOXU\@Q\[ZUPqX]TLMPW_KUYWU]PKHRMR[OPaNT]MORXRNVARNVVMGQOTWUW`EWMgO]THdWZRVbTTSZKMRJVJZT[NX[XPRRMLRTXPO]TF\WXXW[PLMSFSdZMPX]TW[T^IRXXJ[QYUe]X[LYdHYcN_RgJURIUU[OKVeVQ\IPZSd_P`X^NNQJLP]ZGQWROYXRPULYWVTP^MOLQVVKU]TPTIWP]MROVSO^N^EMVNULST`Z[ZU\WPKNOXROSHXY@[OXTWRTMWZYZE\QO[TNPi[QNT[NVJNWJVNPVOOLPXSTMLFOT_VSUYPUKQYP]LVKaaF_VHLS\US[J\JTTNRQLRW_VK`MZbRXXW`UP\TOLP]USMQSTURLM_NLO]OKQUUYXMRbMISg`YI_MXOYWNLXOGLbDTRXR`WXSSMOFOXQYTNS]UQ]UVS[ZWbZ[]KSUMPTSQ\T]SHNMRVR\KO^TUZJ[IVRsNOLXSQRS`DYaNMYXUYJIVMYEMM?SQXJKMW]RQHPJLJHQUXMSYJMXTPaPRSKXI\TVNRXGNSSTR^MSOW_QSPQST^WQVONWRRYPOSXOJLORUR^RRUWOMKOGTY[O[Sa]SVZSPNUYWJfZY]V[MS_NLPNR\`^`RJ[TWSXTIVXK\PUOX[LSOGOQX[QQRAJ[ZQFT^MSKPdSaIPVT[SPU[SPU@ILPS`ZO\LLYNMJ[MOYX`QNlSQSWPM[aSNKYdRdHf^SNUUS[DTQMPeJVZN\UUEUTUSTWNJRUVdPVSOQRMVMQMPL[fMT[W`^XG^aOaSVTXSiZTKMdW?JTNFSDJROKd\GOZKOOOTbHMY\PLPJONXPPZbSUGPMSRQWPOTNWSTVV[UJPTJFHYQSf][YV[QPRQRHkQ\_SWVVQWVjZ[W[VWWQHY[RKWWcQdY_[UUQF^UNUL_OROIUYUCLQWKTLQSXXQRNQYlKR\VJYZPDMSUVMOUNWW[TSTRYQZ\RLSQXQWZUOTcfIF^bTYQPYQTVXWVNQ`KUKZNTWo[ZSUVY]_J\P\UYZTbfSVSJVKHMQQVQV`PVS[_UNVP[USULeY_XS^\cUmXcXYYLJRcXfSYUYVgSJPYOXW^O`SVJPQVLjSaLUGPTP[RV\TXSQGVOOQHMRSUfTOPVI\U[P[MQPWMOgFWNKUiOW]\TMTRNSOMOPWPcXU^MQRTVC^RUQLJSVWTWTQHPNJ[\NIQXORQQNUUOZROVPOIQeJRQTPRP?ShPWNZKNTSLKPSGWOUT_SKZTKU]Z^MA^SYGRRQTTVQJWPQPQ[EUX[RRSVTOW[^\PQoO^QcLPLXNRVcWYUfW\_PUXZLTLMWQVOTWTPS^ZVS^_POGZNWONKSCHORGZ]QXZ;DXOUNMRRSR^XXUXPMTT_[[RJTWZ`XTUEUOMQSOJUON^ZLTMVXNSSNVZDQUYRNN@T?SIWVZKOQTVO^\SRSLQWZOSFRQVNKJVNNcYTOVQSIUVZKWNNQPRTJRNMMXWIRc]MZUPNSZGHXMMTSSPUTM[LSOT\HPYPHONMUNK_YLRTVO[ITJOPMUMScNXQ\QHQQPHJPZLOLRJPOSGRGRZOR`POMVGYQPOVPUVPX\OJB\YYNIRZPQUN]NND]PWTR^PKIVRPPMWRPKRKWTMROTHYTXUGLQSOT`OJ[XXWN[[MRQaSMJQc\KRUQRMUINTVUbLWYNSMjOB>TTOYeNSZ]X`KWXTSQWWPKQPKSSV^SUPMBQ\VM_YSQRRMIVNLQMRPVI_UQQcXZOQJK=B[KhLNWPVJQDOMRNYO\URMJQTHNS[L^UZIZY`USUR`RXQTMOSJYHT`LAaUIZ[QLNILUVTTV^HHQZTFRNYUC[TMTMUNXRPNIVCJTOXXXZ[I[NUP^US^ZJfSXLNRTcYQRJT\\V^Y]PZWIOPUMRWeOKM[KbOa_YMLOXTT\U]S]\MW[RSXDSNQTYMPRSZWXTQLOfVQfMQMNWSX[SUbLUMUjHOWRQ`SYM_ZZZMRTMV]SMRWPSQTJNjbNTUURVOecLVRGONT[ZQaVNNIQ\NRZNaBU\YSaUXFEPUZRXWVZTNR[JOSVRXUSMMPZOReXWUJKZJMQ\iUU^HOVXNPTZSYXNMQSULKOX`GPTZZMQKPTRWRdZWSLOMTUU\VTUKQYVS[_XQRSaV]MOWS\KiEZKS_Ya_UOMi_VQaVUV[OIS^^^TQ\LP[``OaZLMWQ[YKLPSV]WOUTJP\MQI\LPMThPWVXQSQRkUZABMSSTXMZ]][WV_XVPOSMJVOSWSMVPQcUPUO[eWYTGTQPFNOQZfTTQQQSBPOUMOeWIZNUZRHLU_WWMGad\P]UR[JGRHOLSSRUU]^LRUFQ^QQPMRSfPTONQTYWQQLTLQLYJaMOVSNMQWNQPdPTTSRVORR[JReUQSEWOOPOQNTTSRZWYSFNRJKZ[MQPRTNSSJTQRSPWZ__TVSNSQKZNpRWi\b[WC_^XV_SLT[JIWRQ\OHXM\UNd\MRZP^J]UOVXQ\RZTTWULMRUTWPVXMJLPNMSUK\YPTUVRPQGYJUPGQZ]JNNV[RMTIURTP\HVTX[VMSLZMWZQRTXTTOOXXGPMLOPYXQXHLIV`Y[RKZDXSLIKISTM[XHPOYKCGJ_RVQTGWPTRXPLKUNPaGRVZOYKYZKKUQYORSONGUOSWRQXXLj][R^MEdZSiNWRGLIiILWDSUHNSLWOW_^UXPLRQXVXTLSNSI\K^ND`TRQWYW]XLJNU^PLWURVIGUS][Y]VK_R_VNN\gQ\OYZSPRQ^UTLTQXbRPXXPSURCVMTUMQcTQMUZLLXRY_JNRZPTVVQXRY^YNUWVTLSTL^ZKXWE]OXLaPQRSZQRQ[NRQM`QOEMe^VQOPSZ\TWT`TQakZUXPRnKJQTQOJORO]PYINNPWVJSWaQSNfQT\PWLTYTPNZNKXMOQTS]\TGHYWNKSJL[QUSQ]XVUX_aUQSXRVWSSNWM[L[UNKTDVPXdTGZYPYTUYUQU^XcUJVORZCWJ]WMGPWNWIHPPLMPOUeURKRVNUT[ZS[YZW`XZAPOIQVdUKUkLVPMaIWSTOTMNSKRRUXXUGXR^V\IT]LTUXPPTUO[XVRFXVPVoVFGVTXVWYKU@TQVM\O[OLWTJSGVZgSUOQWMXQYJWKLQPR[QYQNTQ^X`VOY^HROWPUQPP[Q]PKXWGQQGVVWHVVVWLPRZVII\]JRg[PUQSMFPXRXR]VUWRPMOUXMW]P]USZTVWJVWNYQKUUaVRMXOYUQGKRMgQ[HQ\PNbHLPRQHUE_NKHcWTNaQ[DUUW]SSVLPTRQQQVVU^UUML[G`\MNOSJ^MZQLQRE\ZNRRWX]NRaXIaUXYOVP]YKYMVLPKOYSbTMRQJZ^IIiUUVV\XOKUVURNHV^SULKOZ_[V[cUULOSXJSaWOWWQRQ]ORX\XZWPT]cWhNZYYSUWNhVQLNKXWKLOhXSP_^QPSIPSSKPaYMN^TDNRcHMRSZKNZV]VRMRRX^TT_M]USISZINhfRMOQZRSWVYPMKDbXZSTNUZ\W`NZR>T]O^USTYdaSROWHOOITYPTXW^LK`LJU\[VY[ZELRRGRHVWVVMQF_WXOJeWJcRSNDSYUMTNbPOYWT[PUfmQPIQWE?Kd`XUTPXRK_R]HXPUY\NXCPRSXZVRJXXZ^WUQHJI_OZPNC^SS\\c\SRTOcOXUW[USZ[L]JPRTTYNOXSI\RNPWQOURcNQBXSVLRHVUZ]U]JHUKGKLbYaWJP_MUZOPXQTU_R[]SRLVHX`KKaTYSPMMTQO^IYTK[]\HNJSOOvZUPYQ]WWOR`RaSZJ]URQfPQKUNMSUdNT[PVMUU^OQVT\[d[KZOXJ^V_ULKW]RSZ[b`MRN[Y^TMYHOXT]LOMF\USHdTfT]\NVW[LTMSNSMQI[QWTUPOWQGSNNVYTWLWOWMXaQNXYPRQ[TIRKQY\TS\SPYPLSSPSXXT[VTYQcMZZXZJVXKSW]QQBM\Q_SR\PTIPRYURdHLSVYWQaRcDJPSPI\LPSTUPUSYWPVROKNLOW]Rg]`LQZN[X^NVP[TYXYXOPYTTZSXVZJXRNVKKMUU^DZLSLWLcWK_X^jNMLPNXHZXSRR]VTVZTQXHiOLQRPbTbSRQSYR^RSPPQTQ[PAJ`HUaTSY]UTTNeT[UaPZ\cWXYIX[KMWLOaQKWVQ[[_V^X_T[QaVQWUcOLUOMVYWYVnRRLTWNUMR\^SWRJKL\FTKUJRTTJVZYRPJWZ_JPYVQRQZR_cMQbPIP`L[SPTO]KPnRYSQVMOSa^SORQXQSUNM\U[WXNNQOYIeIM][T]ZYSR_[ObORQRRTNNMP^OUTWVXXZP`\WKO\V[FQNUW[MRNRQIbSSNTQS[OPSRQPg\XSRX[XVU[ZQUgYkRT]aTJ@SUXaTJXNRUW]fR^PNSXKXUTYZVWNX`WMM\`V_]`HNNNL\PSQHRQ]LZ`KXGOP]TPUESMY_PYFZMVQLRRZXFSYgM`PZ`WXbWQXUVVQSK^_XUPWUkJIb]NSORZHebVYQQWRL\UQMXfR[STJQ]XGPYROZXT^KhUNTRPTXROPSUZFUTYYPidTbPSPZ`dW`YbOUISVZ\SXRUVKbTZiRZUcQMKJV]]I\UBMQXTSKTVNUQMONWXSNOZPQPUSPSQYX\WML]USMYVRJdTWURP[PUUURVU]]\ZLX[X]NXR`YZRVNXHXLOYXTMUJLPVSOUWSS_RMXPNUNWPWOXQ\UTZLUP[XTRQYU^ZQ\R[JPZURXWNXZUZMVXRY\_XNMXYEETJWWOXVQSSMTUaWTYYQUO]ZJL^NYQZJ^XPQPZQUQSSNMRUSUTMTQSQJMLYVVNZT\ZJRNOdQVNTGMKQLZRMSTQZXNWMKHJOVRZV\UV\RcWQNTYMNOiXQMQWW[ZXKUMYWUIKWQTLMW^RWHRW[^OUQSLTeRS^PTWVVWWQWaMXROTPHVQU]NSQKZ]UTTT`YSTQ[VX^VR[LO^\TV_SGHMaZQM^QIPVQUTVsZVMP^WVOfWUKBVYNW`PUZOXK]\SLQMZGWdKSVLcPJLKbVT\OL^WXVH^VOMYOJcXNGATNQRVKVVPRPLLXQQIMASfIYXSMPLYPKZWNH\SHSSULTXNNUSXRMS^SSTLGb]RSXVTXOY[XYMKXOUfRNYLVPU\Z\PXQAPdQJV[QQRULTKTZSWeYNV\QNMZU\\VXRK_YURUMKYUHPXELC_PbWQFXMfNTO\TYJVMMUPQWBSRUQXHTHVVT\O[PZSWNPVPZRQ_QUQ_T_XNHbFceNQQ[SJUQUTJTOR\QSOKZGMUIKLPVITMXTNN[ZPHMV_VZPTJPSZILMZRRLKHTQ`b_MZT[PbRL`TLVQUSQXYNL[XVV][K^]RBZHNQKONTZZYNPL[XQK^TWTGQX@TSVP\`KJWW[YKRTOSK^DYb]VW\VQWXSJWGMQFRWTVRYPM^MQOYYJSQ[TTUPQ;UEKL[[TcLQMWWW\STP[_R`ESEQUNLMVT\XQJa[QgSUEJR]YXOM\KSPRRXTbYNJMZdU\N[VT\TTWZ[]TNGV[PJ^JVHaXRQY`X]OOYL[]M[QF\WKSR[MYL^OS^PYTQ\WPb^TJLGaPROSNS\O_aR\VHUULLZMXQOSUSKUSQTT_U]ISRe\QEUPTTSS\`V^^P]QPaUViQHUOjGWNd[PNVLX\XWXRcSPTRRL^EQLPGFQT]XjX]OTUQP\SW_QFbVXZXVVLYRQLU]W\I`XNW[RK_POVYSQ\VVNNWWSTWTOLZ_SJ^ROXPRMaPN[FVaKRSSXRFNZX_iUZTQTRNKWaXOQ]_[LAZ[QdOYMTUVWRWWNQRRXXa]SMTTIWQRYU\TUP[SU]TUOZdTQMZXTaPNSOQPURPVTWZVUQUWUVXXZPTTUVUa]X[XTZHTUULRXU\SYTXS\RWbNXRWXYSKLP\SOV]KVMPWM[RUMM[[SLVKJYS\POMIOPZVUZMTXVMWMVPXP^T\NR[OWQPaQTQTY^hWWMQPPYVVNUONKVRNXSdNTSU^V]OUU_ROSZWMSPNU_]PVKVUQNRZNVNPPZTYQVPSPPPZYFVXPZRT\PR_T^]VU\WXVZNVHWNX_SSPRTVQVU\MKXWSYT^PN\ZYZSYMVXZOTPOUJLUUVTSTOZ`URPbWLYURMSOVVXMSXIQLQ\XVXXMMYSLKZNXU`XXUQX^PTQSQ]QUTPZUURWUUXVZYPNROTMZUP]VT[W[VUUaTUPTgY[MTUYRSJSR[Q]WTXXM[UMSS[WZ]WTWRYPSLX\ORYTWUUXTMQYTUZQSNZTTZZRKXYWZTSUXSRSJQSTQ\VRWYXU\SQQQVPTVNUVUUT^QXXUTUXVVUVUSXZUVRNL[WPXKWPURXTVVWTWSPO[^`STT\RSWWXTRPWYJKQXZY]YUIQVUPOWSWUUSTYTOSWUSVORWTVUROXU]UULVXKWb`SaTYTOUN`Y[URbTUXYYUTRTVYUQYSUUTUVPSXRWVWQVVVN[TOXY[TXWUO[UPYSVMZMURZW\RTVNU]UVSRZVR[PW]RQRVSPaZKXUXRSWXWWTTXXYQXKS]XXYRTQ^WVTXUXVQW[W\XOUaKPHSgcTSc]NT[VWVUMRTQcXUSQcWbNEOTLcVSYNHSWOKVTPUVSPFqRkVRLSTESP`KON\XQUROSQcPUKPSYU[RYYM_VJU_SHQTVPKYKUTVLU^WXTKNTOXUSWZDOZQeNIQTVLUOQ_bORQOWTZNT^KS\QRX`TZLQVTKNV[MTM[[V]RSZ[^BYRRZbEJXPOFVUM]NSY_]_VQOSSQPRVTLdIULW`UMPMTYOSMIVVROZRUNO\TYUSLHRN_WFRFWTYPTPVGLONWQLKHMP[^PP`TWPWPaMM\R\VUVdUS\RNS^YRTUPR]SVYPVPQOMLTQNTUXZMRQPRMLTVTZKL]LNQTO^NRZRVVR_\WTOZ\PNYORTYK_GJVY]PWSFEaR_P]MG_SGQWZcbeZMRWHZPXJEdXSTTITVDIYO[JP\Q`TZOQTSeHYRQSTaNXTTYO[NNK\MKURSUOJPSO^U\VGQ`R[gfUTYPVJTZSYQaSXPTWNMcSROQOiYcKVVWUXGPRPL_NVTO\O]JFF`ZWLYSVPJYP]UPOXO^^OLOWV^FUMRYWZc^dfRNXW\U`T_LdTHZ\QZRBP\QP\XOHT]YOOLNa[pOYYJY_TUXIQGOVQUP`JIXXOBMSD`XWMNWXQ[YjW]T_Z\RWP\MO\bVXMMMTFT\OQUWGKXSRMUSMRKMYWfRbPJ^IGSU^RHGRXPJ_QTT]`U\Oc`_^QdZ^HVaNPKPWT]PPTOcYTN\SdeGLh[CJ^LbQUQPX[eCQWkYYSNTMVP]ZQNO_PXQ_SMESKWESV_TU\KYTQ\NZaXXVOx`WQW[UGOFWKLWVDRLY`XYTKYGWG_ILSVUXGWKB^SgSS^NO[SRMLYMUIPa]RUIDHSRNJc[JNQ`QTSVSVUeQNZPKZSTUOO^QPOJ]RNS_PTXORJTXfaZZGUUHUOgTIZIL\Q[OZ[SXUNWTW_ZVTFSYRMfM[SURK[SNE\WXSMM]NEVPOSKIYHS^NXTDS_NOITXTLR[VOR[OPOBLHLPRLJTUaUI`UVmRSULXF^Gb\J\XRNZRWZY[]QTQCPQ_NQbX]NVI[QaV`R_PR`[RW[[QSWSX[WFXMZ\JWGQSXRTWL[XaVOSHXQeNd[UN\hYVTKUONVKROXWXRRXNWINKXTSRLKXIWR[ZOZLYSJQM^XWUJUfHSXWGWKOPZWZ_uUNRTZV[PRQTWWRVY[JUVUbVI[QWRRZOQWW4RNT`SXSbU]V[URSMVWURZVRUQPYNTNRWNVPR]PXXX`ZXXYWUVNYTTQRSUYSTWS]TRVSZQRaUNP\VSUPSTV]S_aOZ^\RQSPUUPVWTSXSXTOMPRWTXY^`RQVWTQ]WP\KQ_UYVZVPTYRUQVQQSUYXSTWPYYXS[OJP][U[OWRVTRWWPTUYNSQXXTcOQ\ARRUXQU\PTQVUSPZWUT[VMWR_dOWZ]XUPXeST\[UWNVYeVVQNQMWRUJSR[TWW\YTKQOW[XYZ]\RUT[OX\TYYVQX\``[VT^]QOVVVRQZYYU\LTMQWNQRTV\ZQKXVUXWXTSYUZRP_PXY]Q\XVRTOOVUVWRORRVVXSPVOWUKOKMR\PTXTKUPWcYKKdRTOUWQINYORGTKTYZ_^PPGQNLWXLUSS[tKPQPRUTWCUQXOQRQVR`NWV_TNYTQL[TKXHPRVFTMMGTQPYKRVUTWWJRQ[QVUTQXIVUNRPSTVVATSTJ_LVKdWVMOUPMYHQQW>VUWNWXWQROOTKWLOITPOP_OQVHVSMTI[WUZIVSMJUROPWI[ZWYHSPLUXSVNWZJUNURKZTINNRKUHTVQ^RUZSJTTOO\UTRPQT[SV\VTTXJUZP[TVYTRHQPORTN^KSS]QKKNGXYVSNTTVZNIUY^YRQYUQ[RUTO[ZZSRSRORWTQSNKN[WZOUSJZTXRJMYSPO^VTMU[UYMRPUNR^ZPNQ\U[UOLWD[ZUPQSPL]MPOTLORUZY_[`XSUcK_[OPXJJXNILNQNQFGPNET[RPTUbt?ZQVL]fTXYcH\CRSJXKYWGYOeQQKVYV[LoN[OLNMQKPTCPONHM^UROMZIUKOYURDT=MSPLWIQSTRFMHVSSJWT]TY_PCYXR_V[VbgWScJNRKLMPYcLI_TSDL]LPUPNWRPX]<`KO]TNRSGSLWMS]SSDVRI\Oc[ISJFNTRIWMWUQc^bCWOH[TVHJHNJY^KVPiRAWQKMMSLNZMLLTVLUHZaSLOLRPV[fZRKjUTJSIQMZSZKRISMJKJSYNUDDBUVLVVJN]CUXUSOGYRQWLLLMRPWTRV^W`N_OXYSWaKJJ]TTBSTWFSYSR[CY]hYZLKJJMQMKSMN[FQVUO_>YWK^`]XQUJYOM[MKJZXUKPMT^S]YOXPW]^JUQUQZ]`W[\[V]NOXOJPVQSX[RVS[USW_Z]IYJSSRVUTYRN[S_VNcQbEVRiNZUOR^MQMS]Y`WaMTAa[IZROWOTUVRLZOK[KQJMLPId^QUORZSYCZZTVYR^ZaOUVQUXWWOW[NHR\YMPWM]\YW[SYGINK]RXYWWK_OQUYXSFKOZXSZKP^NVZHPJPSXVUSZTUQRRRZQOMaTVUUUVZKOLWZPJTTKSRVRQUQP\XZ[\TNXMOSKTMPSVQRSYQRKSSHVYSXURITO\^cVUWfRWURRZTUTMYVUXNROQR\LPVUXTPUSGfQUYOTYfSMWSY_WTLVJWIP\SQWVPR^KS\KTPRTNT[QSVY]PR\QPX_TUOQSOVQKW_QRKT\PPVTFSUNZRQPPTXOQOROO[UhYORT\PYQKRLIUEQLPOLTQRVJJWESNSnUYR\SUFMVaTVMPUUNSWSNLY\TaLXYWUYGQMXVJMXJSXVRVYPJLVIUYQ]RKRMUPQ\Rd]OSISOUKMUcQMMM^RNSUQVX][KRP]P`QOYMOK\WRKXX\TaNJMRTeMU`_PLNMSV\SN\OONTQSIOR[IVSOXZVQYS\?NSQIXZQNVTMQU\MQPPSNNP]OMQOTXMNPLJ]TJZLWNVS]VYVaQ\QWPOLQVXWJITNYOYJGRTMTL^MOSKTRWXURSUMVOUUSRWZZIRWWL\GO\V]TWUP[M[PTPJPQbYTWU]OOWZQ\QKBKYZSMFQRNISN`QR_SZeMXMPSRWXWRBVQVaW@EXQZUPTQUPVWWRRUNNVTQVRXZR_J[`LTbOSYTX]VHUZ^WWYUZQPRQTVVYQ_QIMSPNVPQI[UOQYOR]TfORIL_VQdNWUDVUTVVSLaPTPNYOTRVTMOSN_QQOPHRP_MMZRST[YKTSYGORPQ[UOQOROQTQOMNWRURQRXKNNWO^WWSbNQTRWSWQRZPPSPYWSS]VRRZTHONLXTX`UYOZZU]Q\KN\PWPVTQ^XWO]XPRVVNXSLVTZUVaNHNQYWTOPFTLWPSSPUSUS[SNNSUOR^SZZOXVYRTQWQ_T\NU_RMP[U\V\ZYQHRN[OQOLXUUPO`NSTZTQQVVOIUMRTZSRS\RNUVQGWSSVWQRUVWVZ[MZGMRaShNRTQUXQYQNPZQ\TUQMTRgRZWKSIPSVV\P\M[ZNSQRYZNQTWUmY^GVVXPYWJWOYNQQVYQRPROOTRQLR]TLdUl`LeUTUaNVWKNUIMYM^UPZdNLNMV]iZ`OSVQTbUSP[U^aWVTYYROTdNEPTMXLPWRTVI_RNcSGYXIMRTSTTO\VWSQSXKOUNPQKQXMXQRVSXQVOX^RSOVSTLKSKKT[fRTUUJPYQKTHTTXYSSK]XTORWXWOVbUWbS^RNTUMUUN\\YIMP_OWZWSOHKXYTYMWR[LM]OLZWPP[PZYNPXNTO`_YW[PPJPMLO[NZRROYP[QZRQPNMZSEMPYIPNMXRQOXWTWKXZWIMGPPJOPMVLa[SPVWKXVVP[^UWN\LUPWGOLUN\^JVXUKYTJTYTPUHTTNO\ZVPORNTRYSVaU\OB]XQH]VOP_SZ`Q\SJKTVZIRSVR\Y[YPOW_JPT[QZZVSYdVNZWaXWNMcTXRYVL^YS[bPLVULZVOUO[UW[O[TUKR[aM`VMUWJMSV[_UaQScVO^FQTRSUNNWWUaOZ\EDR_W\PT_PMQQ\EVWTUPOSdMOPWRJGTOY]XMkCPTNROVT\O`ZXMNHRZYU]VSKHMS_OQVVpIWVZX\TSNZWURVSHV`_TVL]MQWOPeOQYGTUXVVY_POd]JPZVNPY]S\U\HXIPTNPLUQQ[VYYGQNLUM`QUjWVLNWWQVWRaMZWaNPTISMYUXRSTQSHFTWBRNRPOTPYPTOTOQY]Ta_hPRUPNIVfWOOcXIPPRSRQXINVMSZPOOeXLSXIKSTUNPH_aTVWWVTK^YbU>_ISKUSOJRRURXURW_]OMNRKVNK]NXPQZUaPWWVVRPUZGRO\VXISMKNbU\HIQTPRZRS[SINMQU`WVMRXRVPkBUUOQUXXUPQOVNMKGQXUQRMRcWYZdL]UOXWJWMNLYMJYRXZXG`LXXSLNAJVSWTKVMVURSMJYYfXWXT`TWVHO`KTRUXLMLYW[SSRY^HOcMFRd]FXlMM[]MQjMPXIOS_O_WPXbTSUF\`ZU]VLPUSWTUUZHV\VJIX]RRHYTQ]NTNN]HMVPLYZJE]CPLQLIOO[O]QRRH`SRPP_NVSSUHQKLIUSZPUVRWPOTdURO[]RTXcLLKVKUURaPRQ]VWVVWQ\OWR[GWNSTVTESV[S[WRaLdRAPNJXRNSTTTOS]RVYZNV^QXX\FOVTOTKOZSLVSYTZTZ^Y`TJT]MQUNXQXCVTXSROVO[[JSL^MTPcuRPGVa\]SMSOTNQSaWT_NMUUVZPFU]ZSWOLUXUGVKRKSNUV[SJIWRbSSQLRQSUOcFWVZWWKSTRPWM^SHSQZ\aHNIXPOQ[SUQQQVbKQXVOQPRNQ[O\VYGMZPORKQQZSQNMXRNTPXHQPURN[\STSZTITORXQRROUNRNUUTQZRLNQLPML\MWQXTIX_]MOXMORQVIOJMW[RQVNILKQYDQNQNTXSPM_UWI_LTSSST[MX\SIWUHNSYS\ONTVSTNYQOKXOJT[][ZSWTNPLP^PJNXSRUULLTRKWTZeQPYLGTTTWLRZRSQXGYRNRPTRQLNWKMPQQUMRQ]UYHRQPIWVMd\IMSRZML[KMZSWVUUUUOVLTNSNgSUWR[W\MMQ_[SOS]UTU[TSZ^RXX[ATQQHVYSXMSOLNYN^WUVTWSZbYTURPTOT`PXUJNQUY\_NSQVVQZRELRVRWZUYM_SXWUGON]YZYHO[XMONTPQRWRYZUNHVSWTXS[SUM\PSPNQMPYCPZL\UQRUTP[^ZRLK[YQNZKVMS[RJUPRWPNMWSMSRK^]LRZWTUSO[\TOPcOQQMSQLXSXJU^NUPT\MHSLU\T]NRLSGNTOXWTRVPY[ZMZLJTXXKQHUXZFJOUOUHWWUTKYQ]ROLOKAMSZQXSROOPRMPWP\Y^RQJQPUSQOQTNZ^ULOVYSUQOMQRIT]MPSUNNLRUO\W\YM]LRQRZUZKUVUPTUMUMSXUQUOQ]LRPIZYXKXQZYV\RTTZVcW]YZRVKRY^FZQOYSJY`ceTVOHV[ZFUQ\X[OOKLTOcOJVS^SNKWKPTVTRBURZTZTYSSXMTPH^IQNQGSaTX]VT`SOS\TJSSU\PPVZLZQRT^KUYRSOZWQPJQM\QRMWVPXZZSZY[MUPT`Y\KKXPWSJU[KjSRPXRMNPSR[UcT\W_XVNTQZKRVV\NVWSMZQQPXXOTQKSMRXPRRTTM]TVMVOQNSUQYOPNXPKWL[PQNL`SaQW\JJPOWSVRTZQRXTSSgURWWSLJ[MWP_ZZVLXRUITiIU[WXJLJJJaTUcYVUOOEJWOY\NYONYVZVUQVVTDSXUO\SU[XL[UTY\QPZROHUbZLVUUd]XMO^YaUVYYXROXRX]I_PLcWOOXVSJM^VOLSPYbdYOOKP\\QURJPTRSZ]YW[ZOMURATZVQYSLLRR]OQMJJOUTWTQWPX[SISUY\QY[^U]HGQIQDY\TZTURWLYNRU`N[\]CQVERQYUR\VSRVQfNP`NOTT`GM`OUWSS^JYUUJRWTZLUYMYX_jKZNXPUPTT[[VXUEIO[ObNKQ^X\RLUUTSLKYMbWNJTJOLQPT\OOUNSW[`\[Na\QGSaPTXRLRXsRWCQMWOTKM`VVX_VdNODMTL[YaWRVRVLXE[[ZNSPU[MS]`S\PSOUOLMQSYYQIRFHMIQZOqKRN\HYLMHJIUPML[ZKcNRNSEJSXTQ]]SPIKKVRKXSdjVKZJS[Ti?PTNJWOSNYXU_QMaXSOTVKJ\RZ\N`PVRTZ\aQLYYZ\UVPOR[VOZQTTVVUZGWV]KPTRKMZVSROW`N\KUUIGTHWhcXUXM]RNRSIZPOLUNOiT`KMfUZaWbOGcQMhN\KLX]LO>R\KVLXN]jIYeHJVOPMYfVdYb\V^^RDbKIdQeC\_bXTgT\L\MVcFP[UNKOQNUVTWUG_TOYTLWgbS]]n^aJPbJYSePAWbRWbNQWMUXYV\LLVYR^WR[SYMPURZHYOYLWM]ZPSW[WZHUPNUYhUPMUQL]IMWLXSVMYUPLSQS\MOSPDVLTIZKOGYHNWWWWHURIFTLTSZS_FQQJEMVMRMS[PAUPVNPXGPWJMPdIWTM^TROQPf_FXWWNU^]OQWOGTKPMZNFPLO]XOYQSP][[QSMSOGYZWXTWLH\T]SNVVXQURWSUOYVGUH[PQVSQYQES`TSU\NVSLPULKSSaVKU`Q_XU[V]YUWNS]ISYaOQL\PXYOPLQPXQN[QUibWS\SRTTH\LOVOQNKWZS]ZPS^TURZO[]TRMXQPUMi`QZMXW^WaVMRKTQQXeMQOWT^XOYOQMLSRGLPU?aNVJMKOO\U`RQTJTLZQZLaXPYMSNXZJ_OQYRRLVVPSVTL[QO]YQJ[PYQRMNVULQPUXMOYYQQ_ZNP`\Q[WN]K\P_YJXQTPQVVNZUQT[I[]RcNV[XUZQKOQSTLP[P^LPFbRQNNVJHMQZU`XLQNZ[TeYG\TSgLOYTXSISQRGZXRUJYTZOXYVMRP[QQRRPSbYIQ^ZUJU^QSJZT^MRSVZd_MYVSPRONMUIXHNKKNUQPWRTRRUZ^Q[LP[[RPWPYUSQN]ZPV[PQMPTC_SSZEYMKX_JSOVUPJWNSMXJc[LNNQSWQQIVT`Q\V^ULWRWM\NN`NWJOITMWUS`FSH]WV[MPXVXLUSUQYUVRTTXUNVPVS[TUPHQQZONNZ_FWRVGRTYI]RUNQKZOTIAYCS]VPQXZNWZSL[RWHKWP]RPE]KLRQGJYZZIPWGQTO[WRO`PMJPYNPORTTOORSPTKWXSQTYPZ]OHRTUX^SNX[SM[NT_ZMQWYWMRXQNU\VTRWXQPQRVRTSORZQOQUUKMUWWZSTOROSNREURWSThULU\YQOYHF][S\Z[[VLYLNRNVU[HQFUN[S\\TQMVWNORS]RYZgTUKSTRYQ]bQKRbU`KZRIUR`T\\YPdTPGO\NVPHMNdaTSKIZZ`RWFM_RXUOWd\RYXOXUQ[ONCIP[YOROGYZGKU@PYUK]S`ZUfI_eLIPNYI\UF[KQTROXLPLQaWNOK\GTTIT^T^f[Y]NZ]ZOVHn?L[NVMca]QV\VNRXIZ]]QRW^[[WNPVRQT_[MOPUN[URKU[NU`RaVURV[SQPZT\WVUFEO\TQRUHPQ]HVFW\WXXRRNXPTZj\Q^[WiKVQNMWNOXNT_^LYV[TDU]MSWTNNJMb[VORLY]aETMGRM[SRPVUM\SXSEL^YVCZRaaZZJPHZXYCLNSddcY[NM]VTMV\]MM`QHLV\^`PRZYe_f^ZYO_HSJRVZGQRLSRGOT\W`UKSSPW[\Q[bMLQNPQZXfRVMPTSEQTNRXcbNPVTc\WaQX]M]SNMWWpmXGGVMcR1N\XP^]^NOR[^Q]NXENFPPPPO`WOWNXXZX\JIXSRgXR[WMNpR[UQXKZNZJAWSYVKWS\fhK`OHZTXDUPY_eOMS_]LMHGPMRWWZO]`PGSQO`_bNTL_UYJ]ZZOUKY`LMX[]TVMOOZLSRXNHUVKKSRAVOSRIEUNeZSRR_\XTUUMO\GUIJXEYMTRRWPWTYODW@bPZ\_KVKSWXTXHHfJR\LV^IVVNNKQWLZWZK`USYZQJOP\RUYQ\YXeo[ORHZ[`POZUUOgV^SGG^TZXURJLbUYPLEDUONYHUOOSHVbKW]cMYZUJMhbFPWLCW]Rb[cPKQ^``TPfLG^K^SUKYPVNVZaWWYVXNUV]U[SXUGZ[YURRUSZXTORQQVTTLSS\]QSIGVZLVWY^WUSTRYVQQ[SQQUWQRUVNSW\PTV\VIR]RVXa[TUOYRRMUZYVW]PYQWTTW^VUQPWSPWXQQOQWRVSVS[VOUXOOVQ[aUOX\ST\[O]OTXTVOVUYV`RSMSVQUSUXSVWSYO_XXPOVdZa[VOUWV\[VT[YORQdOW_XZQWLJRN]WTOR[MPVWV][ZT[UTJSSQS_UUS[QZPbT^TYYXSTPMaTXgRUVRVPZP[\W\MIMRXRYLS[c[^UXWSXQTYXMjS[WWRKU\XWTTUTS]RXV[bW\NLZUUOPPXO]UV^OVVSWPWRTM\YR]_]XNLVaXM_XaOSZWQU\PSHY`PUVXZXXMSSWNNQUSSUOYFU]PXSN]UTM]XZWZP[NYRQLQX`[NWYS`[QPIWYM]SVZOMUiXOYO[VWRXWYTVW[JOPSSRP]SR^LRZ]YTFNQ@ZNWNWUNJXXOZRTMWNMGUTNXLXPK]NTMTTQHPUM]UITOKYWSILFOJTXTQJJUT_VMVOYPOLNXPJ_OPRbYYTRVJRSQGRNRTSPNYNZUXTWWQZ[PUMQWPMSUR[`KTTYbQ[WQGTVXQVVVPPJT[LTLRUSXLGKKTRXRLWNVQ\NQQT[HL^^\QD_OQZWPLOMWISURZ[MVVTNRXNPZXVPQVSLZNYSPRHVdYVROWMZ`SPNJUPXNMVYRLYQPYU]S\MYVTS[KYVK`OQSSYRNX`VVOOPNQN_TU\TTTOQVQKVUWPWTTYPJIK\L]pS^\ZOSYGTOUPPWHLKRQVNRQNWTSZOQRPj[TTS\RKZ[PRYQJaLe\RS`YLVMYNOWMZKFUXNNVSRVXRT_MP]\RP\K]QFRK]dPSLZQQS]NDRURTSaKF]RXTQ_]TMLMYPSOVSOWR_LVb]ZOXUUVW[W]YWWYMU^TOFJcRV^WTOMKKUKO[TLRVSP`SQeXSQTS]UOUfRJTILOQQOEXTPSR_O`W][NRGWVeTV[NPTN]SHQWUMNON^KVTQJWVQRLWVVMOFL[\GRMTVNhOXUXTZKZX[LUYORYY\VZORNWSTJ`WKPMZ^JQLDVXLMQ^LZJQZU^TVTMXOMRY[PWLTTOM\LOOPST\TRQQWTMYY]V]VVQSOZXXTWXIWVUU]TTSUPRRQQ\FXRX\^MLGVPLSTWWXTTcROTQVTK^SRYYQ[TNXOSWXS^a[QTO\NI_GQ_MYI[OKSTJMdN^IWTKWSPL[`OS^XUHPTKJPVRTLV^XOPTSWYTQ^XK^WRFQQQTR^MLZN\UN_LTS[MUPY\b_]`UHTPRTWUN^Q[RZUWPPSUMK^\^VM\^JQT_SVOKLKSOPXHQc\WLSR[IJe^YVX[DQV\\_RRXZUVZS\IWWQVTdSXWYNgZ]YWZaUPSRHMQ^OVUfb[NRF]TSMKM\HK^gO[WYQSTP[OSPSXQZPVOKYVZ[WJOSUVVWLOP[KUWVRKOPSPPV]IZf\NRUXM^KTQP\XI_UVLYOINR_WUIZOUYVZOOJaT]SdCYYZMOTSRTXVGLQTPPLcKWSaNUfYS\_IWMJXYSL`GJTMSQK^QQZ^UQXSQIRZRUO\WRSYWMVZ[LUdOZRTNNRUTeSJOUIKLPMOTTUIYJXSJWQRSWLS]Q\WRORKQH]TQTc_UYXQXVUPT_X\JSQQRRNPIPTMOQMFRV`TTWURZHGUSKPTPRKdRHIXMWJQMLHOaWIKS`jN`PRRPVXMRQJOTW]XPKN\TTFaZRGK\[EHTUXNKRSL^jVTXLYSd\`OWLZKZUSHOHENUHJUUP[WT`JQTMPFXMNXLHLTKPYPTMPLSMGR\ZVMSFMRJLOUP_^UTM[OYTVV[MXOHWDZOQX]YSQSISOQXVUVNKSZRZLQNNRVWLNSQOUVMV^P][PNXVLROR_OPVQWTSXQWQRNQOTTVS[IOaWTLkJYMcK[RBN\]N[QMOIQOM`YMU[UUaS^L]]FKUU^HTS]QPPQZVLYRTYSX^TTNQVTYZPVPZMYWQNXXSTYKUJXVTZTV^KTPRKCMRTNYONR^STMRWWNOZ`UOZ`RHWVRL]^WU^X`PMaR`V\TWRRUGSUNUbNRRQSR]QSSQY_RFPNGT[Wi\RZZU^NQOTPO]NN_JaPMhZONINPW^XHGJSUUWQWWTSZKb]ZTNP_TbNWMQVToLUQT[\KRSSNUVZKXRiQROVKVEaSNNZJU^aXLNWN^RJVVSVQV[O[RYI^UUXTFLTTQUPVOQ[jYZWZeXPPVSSPQWZTZTYcYSPkVeQORTRVa^eKFTSOOUOTRSWgTN]XRTSNOSV]RSPKV_OVOQaHWiVNcXXWSXRWGPFTKQ]VWOeRNPO^SSOJWNgTOV[JMVOISZYPWVXeUN\PXZKOeXUPSYTXRTOQ_O[T]NPdVY[V\MUQefSWKQRT[OJJKRL\PRQNKTNVMW_TQLUDSHTQWPQHU\R`]NLSSXSPYTTKPORM]TdbSVSXPZQNPPMX_RX\_MVYMXUOLMNP]GSOVlUNI_ZSRWPHYTSVU[^\T`i`Z]V[fOSRIgSVbMRPWV`RJTVVaPLU`b^RSPNbVTPUOZ[OcLKbKBQ_VMLL[YYV]LYSQYWYfLZQGXRV\cW^RVOTVTk@RN[QWLRYRLIXZTHbVXS^ZUUR[XUPTVZVM]TRO]LbR`dT\JMMQPZ][]]FWXOQNWSUXW\\W]PX\fXSiU[UPIQUOTYK_UKVUTKVZT[MULUMSSVXNXOOOYDLVHOYNDQSPR_KXNTYYOIZIZSUVPS_UKJNUYXR]ZUSUY[VTVYUUdXNVSR[UOZ^VP[IROePYR[TYIKfMMX\MR^VXXKOJVUKXV_YLINLI\UVS\OeZWcO[OZJVYdWKYPS^QRXMNUY^RTMNNW]QQVTIOUPYTVmOQIF_PLbXK^aYRR\TUJRZ\bPPPO`WPVIUaXc[UPOPVTUTOLSZW`\LRTOSMUTUQWUWX[S`RFJVRR_HZXPT\QWTXWVWX[GZQkSM]YVSLXVMQJSJTZ_R[OOPRWK]WTYG]P\gWRjPQVR\NWRRLNZTQ]WZL\FKVXUUPWZaWbUW\`PXJZWVOTbYUSROVNQLOXZKYYSTW_RXSUTM[XQaRRX^YTZOKPRVWR^TbUNMRYTBS[Q]NOYRNIS[VZQMVKOXTNZDOETT]ROTbTUMXWZ[PW^LPWQUQNKMJXcOcSRX_[XWHRWVLGOJZcV\^STXUKZ\P[VXSORRSTNLWVYQM]PV\QOSYZXFVRZSLNWVVRMLV`ZXURQ^_VSOUMP]RQUNhWSZN]OUZ^XSKONXFYXLZNSXNOSXKWNW[ZPLOOVVU`VOQWUUOXNaT[XWOGZRNLOW^SIKMWTUXSLVVRYRQ_QRMOPSNWMV[XNQQROTYSBUMUTcSPPXQPfLSSTVYM[`Q\SONTPSPQTQR^RR`PRQWHYYMMWT\M][M`UURX\ZQPTa^MTPTdOK[ORPPJ`USTObNIPbPZKFVTYZLMTVQQISLMT[IQWJ[VYTOQ[^NV^KWVTH``XKRYsUMYTTNIPNPPUKTQPPSQONUVZQW[OTMLULNFTWTCQSN?KO]KLOHROWPSRVYOUWIVVNXTPSRUOPLR[RVQQRJQSSIZOWQVSVQ\FQHDRPL\MITXOVGPOSQKLUGQBRTK:RKHTNSNSWYXWRRRZVTRTONJOMONRWSRZVM\iRSWN[KQQLSVQVSMVPNTELNSSRSUL_RT[] PWSSRLYbSXYV\KSQZR\[QTWR=SKONMQQQKROU[QKSXVQJRQWCKULQUPRPWGRVW[ZIcJTKSNX]SPSOPVSPMOXUMTSP]OROVPSXPRTLUPUQOPSSNUHLi\TVPYTUVVKXT_STRJRRPSTXYRPPPT!dTOSVRWITVUQTIQUUQ\YRMJQTSP\RXSNTOUNJPSM\[XIXMMI]QLRbWWXPIWVWZZcS`N^FRQPP\U[QN[ORHPRP\QWRWQ]WPoJSXQX\SXV]OZaPWXIPQWXX]URTSTR[MRQRI\SWWNVUY[YPM[LLPQQKMYdTR`ZRR[[TU_QXUX[PQVPWXMZQbSZME[XPOOO^^UR^KVORNTQPOIPiYTU`QOQTSTUZMK\RGSWQSYRVQO]VZTR\OTUNSOYSORVXNZUPLOUOLSSJQVbXU[TOOXYQWQSOXVNOQRYPMUSS[W_RJ\W]ROYRWYQKSPL]USUM_YQSVZSXNZXVYSVW\PRZWPMSNWXSTSTVNXRRVKOH^NSTIWT]O]KVc[SU^RRS`aLS\^QX_U[^KUXZaWYWOXSTFYURNPQQ`^XQ_MOVPJY]QPeNaP]M^MWSZSSFNPNLHUSKOSTPKYXXHFIXJhZM[IQJSX]\eZQIOQ`_X]XRGWHPYZT[OZKURbWNV[UYI[KbTRSZ^QONMOLYSRXNN[UIFHQSTTDZRNgWTZOPTMWKNRSJPVHPXOGWNTUXS]OJRRISXVO\ZNQUa[[SMYbNJUL`LRZOERUK[TS^VIJWD[PLbXbST[]XTSOT_VedRPYRUlRZR]LZQZd]TUTU[[OfJUIY[LZXQNPUKWaOTJaRJUFVLT\SPXROYSPJMbVWKNRKQMSQhJRMNYLTPWYNPZRPZLE^SO^NOaYOMVQVWOUdTDHa]OdY[_OZV\NTN]WQO[_PVP]UTVPaUQQWcTNRSWQ_KOWULM`U^RWYSORM[TUHUNFZXOIfNYSSV`SEORKVMRXRPJN]VWLM]YXVSFJDFP]OPjWU_NWWTXLYJOVHTLTYQPZSN]GRPRPYV^IUM^\CTSJRUTUMcLTYL\U@XOJGVQPWPTOQSSJSRUOYJUOYVJQO_VKQRYJUKRQLZIXRHMRZUTNK[TOKTfSZaQM`SOXS`SLTVU\NTYJaVVSQILVOUIURIVWM\PZKTRRUGTST_VRZYW\WVKKVRVSZ[ZU\VRH][\TPMQTTTPOVX]PTYZSSaNP^TOOMXWLOcTMUYWTOUTPOXQd>TPVSKXGSZOEQ`QLPOMWSVSXYXU\YWTNRZYNQZJXPM\JTNNWKVUTIiLKPTCVDUPMZVVKYWNX^OULXQRJUORMhbVVZaPQPLXNOO_GRI\LTaOOcO[SWPWSPVNPJSQU_ZUSRQMWMWUWRVVRXKNUZXNQXMDdRTSQJS_VUTOJTS\VVSTVUZIR\SRLLXQR_PRNK\KgPXHRPXJURhHUT\Qa[NNUZOOHTDPaTSVPNSJOLYXWHRXYcVYZKQVW]LWOIIVXTRTMRFXXTVFJERJRVYRQ^RKT[VYPPSYP]TV[[QXWOMVKUMRUNLQRNXURPPVRS]IXTZU\TQ`RRWUMXVQ]MMW`XNNLIP[\PP^VWRMPRULTQQWQUW^WNMNMVX`TRTTNJXX\SQUUShVRTPOPUS\QRM\HTOMWNF\YNZWZNYWWIOVWTRQWWaPM]SRTSUbVHVV]NPUTIZQ[^VYQTXXTM`MUSNNLOOPaPVNPRDWHO]QSX]MGOO\U[daSG_bJLRSSeRNI^L]bIMPNNYKRTMVZN]hJSOVOe`NUKUHWLNZYOQS\UXXPJUMWSJQWSN@AWT`IVUVYmTUTYWLJ\SWPNWIT@R\VWVGIZW[YRMP\KFVLVQUbTORNPVTX`KTIUMGaKP_RNXQRRIVOIO`RLORgXRWJgRMZHNWQNY_\YVdNP^K[XWQI?Q][cMGRRFQSZNLTVO[URORQQPYNQXXKN]_KPN;NWQISJP`HPO_CN^aQTP`JMVGTWWW\OPITPPWU]PVROTXSMXZVQNUO^YWPTSP`QS`LVQQTVQS]NUK[SY^Q[[`[QJMYQKPORNbJLMTILRIUXYSJMRRVbRRY]PJiXWSQVSISLCVTRYVOLGUT]ZNUQAaPUSH`OGNPMQWM[PJTPMMXgLK\_IILTVIQNWNaY]USSLYPPNT]ZO^GLRS[ZURUXTNUUR[PNYZIYWVJQOXUPNePXTQNMOLQX_UTPSR[YN]XWTLWOIRNYTJL^TSXU\QQONXKONPOW[\NYUSSW^YQUTXMSZ\OQUUUWOQNHOXOTVSOOOQQRPIFRQWZQKQ]PNURHcPYYLQUaV_PVSVQPWKSQXOSQPYQR[bVMTPWRUUSVPTTPZZNWTTbTPUTYQUN`QZZ_URU\KIWMUOQaK\TURSZ`HGO\ZTSXY\^\F]Tj[X[EPWYUZLWVMUHOUfVSKPfWSeWVSPNOMXVVX\QRTKFZ^OLTUQVV\WONYXUXQGNTZW\YWP[KWQXOXRQVVOSPUNWQYNVPNKWWRNYWbCVLUWMROPUJPRUMRQFXYYYPIX\_mYXOEWN]QWXR_P[VIj_TTUYJZX^QWPROZL_KLbK?FWNMYK^`Q;MXQ]YcHHLVNcXL[LVJYNKWKS\b\W]^VNU[ZSNWHTKPWTV\\]^[RaOT\XWRZTSZMZTXT\USFYLUTWKPXWp`OLW\\LXRP[UTWOKTKDO^FOTHR\OM[ZV\[PURPUO`F_HFVWVYMQMbYMXJSd]SVTL_ZQWRLWXEHTTQTFRYXPRGTQZEWPVX`\JS`VZYbPKRSYR[JQ]T[RFSUNTdVJUVNRLJ\a^VIX_`IRLVSSTHTSPLQQMVMhMNTQRYTPMVRFWL`aY`IVWZQQVOYLRNHRKWUSXRYXWSWRL]^QWWENUJeI^WM`VNUVHDZNUPRWTN]OQUOZMNVXQKULUFXOLYMX`YQS[ZWKSLZ[VXXYWGUXEKYRI\\KL_GTSV[HRRLVVa^X[JOJTXONc]OR]_[PZRTUTbO[HDNYMjSQSRZRZYXRM_NYLTYPWXXXdTYWYWcQLZ@[LaWNIQWfLSL[VPZKJYYOYTeSYUQUKYn\OaImMcLHLZQP`QIZgYVPIRHV`YWHH\KFHXUM\QPUQNj[VPV]TFVLYPNUSNYY\W]_QKSGZIOV[NKLRMWUJUZ^WC[XVQSdYYUURRSU_[OR`SDJRIVMKPiXPnSKXOVV^XN^UQ[VRQSWNR]VOOSXZbOOORNTV]RVL]TMPRZX[TPVN`QSU[UYUM^YVTPYLQOPZUO\TRRT_NMVUS\QPfRUSNX\J\ZWQY`UNVOIXTRTWVVaZLeONZUQXdZSYRPKEOJgIYOSLNZVaNLRdXPYTZ]UOKGUORGOOM\FRZKLTZVKaRKOUUXYUdXUNZ[SJGSXg\UOMaHMS]HOUGPNTSNLPNR`\RPOYXNSLNYFSWK[JU[LOSVDLH[MYCHbORRQZZXbYSOEWKV[MYMYN_N_OPXPSULPR\MIVYIYVZDPNORSMWR]PLQZRNMSPKKSQeGQVGLOSUH\^WTXGOXTNQUQZPSN]MLUXJ^PVTUVVRLEKTU\RHP]HWXVF]PPZ`LTSWVZNUPHVRgRdTRKQXVMXMZOYWVGMHSaQ_PPXPfT\[QMQPUOYQVNHUHUi\EYHZ[FISm\ULNVHNJZVFZKMNZMN\SWJQVQZVRZZQHKQ[bOPR[WOFJQQPSQ[RWVOMOLHKTW]YV^T]SMRHM_PVUTWVRQLOV[[NTWSRZ_WJWWTUTUWRROZ\WOUV[YTUT\ZV^KNT[JYHY_I\YIVGYOQYWUSSHPSL_\OQSYcRTRXVPXUOU_WYYWPQXTOY]VP]QY\ZOUTOPUIPTMRT^SYON_bTf_NRTW\gbTUWJI[POVZ^VW`Y^UVTOTT\NUX`RPURNVL`K][MKjY]QKRW]USMVTY\XSYQL]LV[WW\SQLNhOTdZQVV\QTSZXR_NZTTUQVQPSPYQUQjbNfW[TSdV\OTO]ZLPSXX\MV`SXLd^TRcTKVSQPUKOKT^XTWNTNWXYZH[]M[ROaPddNWKUT_JQF_QIRTXTQSLXVQOPNVSPROUVRbRYUVNTbiOZ]\\QOPXBJVSZMQ[[]Q]MRcH\M[PRYh]RN\TMN`YQUUWJ\QQPZXLUIMDKLRVRW[RRB`W[RJ`SSbYTZPZVU_TNWWSQQPdOdSVHOVR\UTYSXXQ\TMQTDTHbQMSMUVMUJGMTVK_QT]QVKV^TPcYMOOZZ\VVQPTb`WXLL[SYMVZWOGY^RN[NPNdWKUSZUQT\TWfZWUTSNI_KPTSPWTUYW]IU^PRHfXSZXUPVWRTTTKcLO_JUYQKN\OVV[\WYQPWYVJYQFZQJPKQPfXNMKPQRYVYJTYLXJMNWUVUVLSONQVRTMX[[QS_VNR[Q[MNXTIQGO^JNOUR\SSSXNL]PWJKY_S[QWQURTSeVU[aPOODSWPZNOYXRcLQQVIUOQ_MX\Q[SXPRUQFKE[[\HVXXYHLMSSVNUZO\RYV^PTjXPL]d[UFTTTNNYK]NSP[[PJTVKFRPXMUiLVYSRLQLTKOXHUYMRfRKPS[i_ZZLWQe]ROUWPURQV]_XRYRG`HTXZdKTGTTZMQESOQJU[L\KNN_T\PNI[K[RX`SDUVM\YMVTLE`aSeZ^INU\KVNN``Pi\OZWPMS\bVKMKLTNPSP__\SW^V[VL\[RUmWISFOUYVSYQUWYSOOdKWNTYTKK[ORN\XNVYNYQHM[ZPZXR^HJYXWQPWP[WSMVSR[YHT9LZML[ZREXP\QJPIVCYLSTUNVUQHZQXdTGYPQrZHKUT\MYOMNNLUXYSTRQ[RLOVaRZTBXWDPYQOZROL\XfPNVUQUROMKYGVLa`WNKoZW`Q\TMRR^UPLWMUQSgUZMSWPqRSXF[TJ[TNQLSPP_NGLYVSWSNUVP^QZIYKL[RYXSUIQOO[\\VXLTV]ITPRKG[YSRORaESLTUhaULYKV@WTOPRZUMPLML[LOSORaTOYO[R[\RWRJUPRP[FUXRZRLOLZ\W]M`YW[SkKZTVL]YaZVL[]UYWLNNU]NLRS]S\SbYQXUUVXMV[OIeHO\WWSTYQGULQHRPON[XUPQPS\[`TQN]XRSQVVTPNOXOSQZDVM[WT]NQJOWHOLWKNKSRQQKLJS`UVHPPN[YSKUWWUUbQ[]\\\OT`RSbc]N[PUZURTNWQ`W\XOV[GEXQ^LQZQR`N[VUT^YSZTLXKQYGP[TMMTMXXJWMVJLXXKTJ]MVGEDWUWORNQVTZWSYN^XVLR[WJ]PKYWTVYJbOOEWFfIRQUMTVYXPJY]TPSGbNPOU]DKSKQXQSZ[LbceTQQYQKJID[LKOV\MC\FY\UXVHMUNOOgTJXS_LUSJWYRQTPROQY[OgW_PRRNUSRTYY\W^T[J`YVKUOfUOU^;T[ROYUUYOO?DIWYcTRPJQPKSRIiUH^T`WUXHQ\XYXTPTQHQKWKTNSIULL]]HTOMTSXPFYPPVRTZQJS]LjUWQHUZZOdTQUFNURMXHLUMPX^GUQUCPUMMXMSXQAXWcO]RKZVJNJNLH]JCUNLHSIMZ\MZYcKEdOSPPUYZOVXQ]RPTLKSYRDYMVKOecLMIVS^CNCJPGMZXWEMRXZQX[ObXTSLNK\XTV[\OUPXYXKQHWUPAONQMJTUQV]PNXNWUQYb`UQ\THTPOQ[aRR]SXgYMYP^XYVWTKO\SPWSSLYT]T[MXeP^Q_NXUP`UbW[Q[PRSV\XN\ZW[HZUMIORbQSXMTPPN\PRaTOSTJRgWOaRUVR[MR[ON^VPZLP^Sg[`TXTSQLQT[eQcYYV^\TcXPTJcS\SQb[\P[S]ZTURR_ZNc\PQX]HVOWRQOXZ^FR\P\X^L\KPOgTQVINNeCYNQ]SNTMTSUJQYQX\TRNHOJK_CUTLZRQLP\QXWWSJWTUXUP^MW\NZbMQTLU^eKZ]ZL]^TWSgWSDTYTMXPYNY[YQPP[RPMMWQWQ^Y\VPQ^XP[]WSZ\JTjKZ`VnR_ZGJSdNZiQPNSTWRcQN^KW^O]XOVFVINWPQLXWQ_RWY^_SZPfcPhYOYXQL[VKIM\]UXIT\a[]PX[LLMSg[KRZYEQYVV\NHWaN]NWWXO`TT\PQfPU^IbSKS^PPUZRcZWOSRW`PW`TO\JN[FOUT^NR]__NRI^NVL\W\UUPV[JMZYYNXVf\[Ka`OJNS[WQ][ZRVXPHQUTSUV\UYMNJMJ\TQcb_OZXR\XURHI_U^UCLOYZOLPT@Q]U^PHYJORU[^NL_\V[_SORSXP^QRIOS[[MS=LZTWG[OSUTJVLSWRYTLJQKOPPWQ[]OUOJ`JO_SPTQX\[SSDSdU[^VWSaWI^YIPVa\\KO[SaRWVMZUZKSZNSWRLBhQ[WOPRRLOV_QWNTQN\PPSXLRQLTRLKRQK_ZUYLROQ\SORNMW\Z]NLZT\YXQROTXcYM`GZTQQ]WKPWUUVIWYVTRSVDSWNXVT[GZPMMXcOjNPXSXN\KK_IUUKUMSVWYMNYQTOXZVZXPRPZaH[N^SZZNNOWWV[]IXVdHQTU`TWU]QK]aUX[QUYYTUYUPUSNMMWMNXKaJYMQV^UTn^TUXRUYVXQUdTYG]RQNXRZNIYTULOTR[SSRVTTZbXR[K_LW^aWUVRXRVX^NZ]MMVU]\OZJWKYZUZYZJVMYPVUKQTVSXVUSSNR[SR[[RLWR`WOSTQTaTPV`WS]JRPMO\SYUTYPSTJ_WTPAPTRN_U[WH\WJOY[FUXNQUHUSYSOIWMOaPMfQNUoUQmaKOXS\TYU[E\NVPNXP[YPHPRLMYUOXPZ]\WZRIO^UZ[NQ]XYSST]JSUcN[FJTUYWTSMSPRUU[YNHeOL[POHV`ZY]UWXQZVXYOTZQNOYQFPPXMLXPVPSYTTUNLKTQ_Q]V[XUdYMS\NMRYbVSVG[QYS[QHTJQNOSUDT]KQMTSTZVQS]SSPYMQSXf\JNUTVRXLLWSNZaZPUC[NXLVNILORPNVJTZMPhUQUWQKaWZRTYQJeOQX\YSS`Y`aLWRGT\FRVPOUPZOSVWPXMINUNUKIJXSPKTVYJ^NPTXU]JUCRVVQPJVQYQYVQPZXLHMIRUSWS[RUSP\SRRNZLPYRRSRX`UTNPOT_OUOMX[FTSMVKZSeWXZ_\PabZ[TNSRNYNRJNORXUUOUVUP[bVXPTZVJSNPYRWLW_Y\LBXQUK[KZQVOYTSTQK[UNKQXSIYQSU[PN[[\TVX^YZKHOUWLSUQIYMYXSX]XSZ]TJNQUUT]YX[PUTMNcUU]SPTVPZ[WXPRSMQN[\N^\QJ_UTSTPSZHWY\WWW^W[YSUiVLPP\SXODI]QRVSVONPLXSJZW]MWXMJPSSLbPQ\L\^YHQ`TdWLOLYPTUPMPVbXZRRUSYZLRKQPNSIGWTVVKNONZ]XOcRJPRTUSV`SJZ^VTYWYUKWXP\OVNUQ^Y[VN[Rc[YZVNUemRQKhXYSNY]]UQIPSWSLXMSURRIJZSVVTLRYSHSQGZWKZWTU[FTRQZV`aWMI^SbWOP\UUQTPTXZ[\O`WPWN[LIWLPZRdSQRVTSPfLWQbWY\LT\IOYTISUTSN@OOFUUCYNMIMRJUGXIPRUTJLHKZXNP[^[VMRYMXKKQM\OJXWYWYUUPWOVRUJKOLOT]VVWWUZS[ZWRTXLKXUVZVVYTQRCSdQV[GQIZTPPP\PRiL[QJRd\RXSZVN[TR\HQJ^UORRGZTWOTHWWONTYSLSQURYRXP_YILVbWGNcSRMKXYV_H`XQL]]NRJNN`GOPZ\OESURaWTpN]OYfX_V\\OGVQU[XZSEVaPQRT\UQQWZ]WKK\`cMR[V]XOYLiI`S[V]VUXPXSRJPQYbkJPY[YMf[ORTRP\TNHFZ]QRTSTZaLSWWcP]MVNNbZSTNWPVSPSHOLTVLTX^_Mc]TYFRTVPOIKYIVSBUNNUQTYII\NLS[]X\VRKM^KRWKSJTU\ZUSdZXVS[TUPLLOYLUPdXRMPBENijH^Y[KPJY[QLZUMLYQNPVOYLEQ```KWUWUZT[XaSFbPTRUPJWNPPLR[[LFZ\YP[RUVWWP[VQUUOVRYIcLOZSOkTPVNNUdPZ^Q[X`cVZM]NR]QO^O_KK_VI^QW^QTNI[VMSTNTN\O]XXVSSVWO]VaSLQdUQTPRKG^OLLSUUQ\SUUHPLX]PVZ[OLUTQ_Y[`bVSMDRVZ[PR_GUXKXLNTX[jTOYNTPSURMUWJZJLOQNVPOPUNOQQRM]][LPZXUHMRUJTUKZM^hVOQMTN^UgUMR[[HV\UQIPd[TELTPMQQVRTTWbSPNHPTTJIZYWZTMUBNML]UXSJSSUI]URVJNbJQSRXUNn\R[TLWXL^OTUYUGMSM]\RZQSJWVQR^ZUOG]\QPHQ\S]QbRNJNWXRiOLTT]RVXRZTUT`SLXYYIPZS[QS=YQMZWT_OPXYI\dMcV_EOOWSWcW]XVDVDMWUOTROUFKGLTW`KQ[LQUSXKN\OZMLY`RXQWMjXPZQUN[RNJUT[PUNHXVGSBRT\ZPSP_PVVKP_VU`LRUNISZPTHTQGW\\GTMPETWPTUZL_POIPN`O^OQKQZePPRMWLMURLbU^H\NYR_MMDMPNHDWJRZ[WPRLZQTVRZPOQGZ`RKWOKKd\OX^QNRUMXOX]UU\LMV_NMSTNKQWGGLPOPZTNYS[P[WYRSNYLcMOJQHWORTI]UISINH]TaTJWTXQTTXTNRHSJUQUSO[KRNOQMUJ_RTVNUU[KOPMS`NKXWQKJGLa]VTWWPJPVVKFUWQVKRQQ[aRUW_VUSUbIPPUO\MLMUUM[bbPQ`OOQYXXZTWK[UXWUVLSZTWXVbRT\XNLWRQHMTSShWUXRXUVbRZRRbUS[X^NVYXO\USKM[NQK^N[PJSMUZVO`[RRTXVNTELWdRYTTKVTNMTPI[USSXPL\X_TSXTPUSbKUUYMYKSQQUM[Xd]WUWPKWUVOSSWUTVVZMVO[f[\WWSTMOVWPUWPPPUYR^WjXPSbR[XYSSVS_aMRXTZNSQSL[WRKN]XbXPMZqYRTTQaQ[NSXQ\QKTSYMPNXU`MOMUXVRPXQZLW]LMUM_bOOVVRLNRVPXZNTPNQSSSNUMZBSMWVNPaQRPYZO]JOTS]cVUPN^OYTVXQLQXPU`ZMUYYQSTQU^NS`RZQ[UTP[XTRIUVUZMUZ[QWReSRQVVWSSIVMXY]XRRTTTQQMRTMPLROQNRTJPPTRU[MQTTLRTNXjWXOTNPQYWKHQ]QXVJ`ZIQP`\HN\QWQOZMQQUPHM_OVT^RaTSO^SRTgMQRKRRQPIVMORYOTZWYTVUOSKO[L_VXRJRNFJJYWWKNUaP[MX]KNJPOPaSbVLZOSSYJW]RPNXRiJS]X\KU^T]GYRGRJUN`X[NZLSVR[NSVX[oR[SPTO_WTHLOh^YM[UKGVWYSY`ZUN[PTJRXUXfUUWReTPXUcU]CD\PONR\E`WXUSQOTVPWMQpU\SROPNZWXNPIdSN`QWJSLZSYMTW^UTXOZI]VQEV][FWV\GYUQFTWZOY[UIOTVZSReRLIQLT\^PNQNQ_ZJ\UQITPUO[Y\Q_dY\RTWPSeVQIXJ`W]RPXOTNJiVTQVTYG]HO_SLTSOPKQcTL[UWNY^VX]XSXVMQOPQUSMOTMWWPGYV[UZ[RMMHO[ST]XXPQ^WRaZXQIRMSgMQULYR\MSZSZNPVNYVRRLTYPSiUhT\UXEhUX_MMPY\SRMIP[WTS]ZROWKXNY^XROZRMWZ]SNWX`X\N\MHLYeWYR]KVLOSUUZL[NTMQbONRRKKXOMNVSVKXT]NXSbFMWVIQOUW[N[YXLRUOUXZW\VTYkSINM[\XNTNXEV[Q[MWRR\[_LGTnVPPYWYUVJS[Q`R[QMYZYVSUPLSZSPJGJZaTQTQL[LSPOUNJZONUYTQQKYUXbTQLgHWREQRE^O`[YPKR`GS\KTR\VLLXQI^^OTTVS^NNP[QORNOSM_TVRMYQOPRWRT]`[XVH]MPU[NOPJW`XTXKTSVQZRRW]QKSQ[UXPRKMYWM]GpSUEUXR\J]eRVTOKNVUeMHNXaWCUWYW_SQ^QPSKRTQVYRVRWZKYORPPSRP[ROHLVXbYOXVLSQJS\V[NZ_WfZJRK]SLZUW_QPWONKXaQ_^ODWVS`QGQNU]MHIKgT\Z\QOPSTZQYQL^ZKJVQXVLJSNVLUSiPPSPVKiX_SRZTN`TTdUNJR]`WRQXQTWYGUPWUP\QJ[ZERTTT[OY]QSQ`]XSYYdSSSOMQQNVPXKOJRQ\`XIQYSTKUJMRbQMPV\TWNPfWONTU_S\L[OQVIOWJO[]WQXWTVWSHLY\QZWf]Y]ZYWSYHR^PWOHSY[YTTMYQfZORU\N`SPU`VVORXVPOWSUVQSTR[SXRNUR[[ZSReNNTMUTKVPSSQQTWURUUIKRPR]QUWYXUZSOPUV[VJOLYSPYWXHZQQOKNOLQSUTWKOSZSRXaUOeOUOLZULUTOSUSINTTT[[SRThULQPaWP\O[UZ[HNY]ZQO\QaRVKMITPJZZU\WKNRYSZPOOSOXUPQLhaGWSOLJUSLM[NRJPMVQUXNV]S[OUPRZeTXRLM[ZVJRTXNQREWSgQPLPZ\S[ORRUT]SSSWSSMNTGeVTWOHJSTNIKSLLIMTRTJIaLKYCLWKVQJdLQW^TMWZSPYWXTNR[RPSTjKQRUHXTJJXeT]P\ELO_T^RTQM_UQRUM[RNNVTOXcX\ePMSLRVUOMN[NTRSPcPVSRHKTPYQSNVTQTSPVTVRTSTVVSQVXURYYVSQYPSJUVT_TLKQWWMWWU_YUOO`V\SNSUTOSFWPTUUXXTQRcYQXOUTPS_XSQSWSQSSWSUWQMPVWRRYXUTWNWRPYNWTQNTXYQYNSjWUSMSXY]Y\QVVQb[YUOYYUXP[VRUTTPRWVWQUUKVNPSXQQSRUSSXTVUNWUSVVWZTPXSVQQWUVUPZOWVNORYYQWR]RWP|PiPTTTUYSTQSTYVR[TPZVNVXPSSQZNSTUZPTSTXZVWZXXQ\UWHSYQUUUN\UWPMS[X[^TWTUZQVTQU\TUTOTUiSWZTTTT\QPZUVXWNSKSUSQVTVWSOOVSROPTeUVSXQVaOUQYXTRZS_ZUSWVVOOOZ_WSRQ\RPUMVQVXNX\URVWUQVTM`\]h[RLhWZcqKZ\cOXLRO[XMWS^cWX\cRT_NNVEW\ZXZRWPeRQfP\R9YUSN\RNT_VU>VfTYTI\XRaOPQ_Q\KNPMSTSPL\\FATNPVUHUZXOLKFLZYVVZMKLXZPUUXRDPU_NOYQSWHWQ]MSq[UXFKLK`X^YaKZRWSX^cXOOVUMJKOKRRWMFDWUKUVDOQYVIWU]MOJNUAUXQZ[IT[ERRYMNWIWTRISJgNaT^USYVUSWNP]YROW[ITi]ZTbjVUIgQMOfT[WNPRJaMSWNPMZOQNPTFISOXKU_QXYNYJQQUQMSRJUTQPUYZOONGTb\jQOJNgOLIPUOYSTVM[NRNOJWYNLIWTRMJGUJXULQZQY]aSSLTdQTWYMQRLYSUWLRQWUPAMLQSPQYULZHUVSGVWMwTUVTISRRLPSPNMPXQPVWT[JWTG[HIQVQUbZSVS^URHVQZURJcUWY]T^XMWMOX\T^LSNOV]OGPYQU[SKKYPTPNYOWXNQ^MbVP[UMKYTXYSQSVYVWZgWSZTXSNHPbcSUSKVS^NRHQQTVNbKP^QX[OQ_PPUS\Z^PUYNRUXXRRRYUSUYLKWPRTUNMXHl`]RbLLN\OVJM]_[WMU[QaTNSaHYIKVUTZNKccb\SQNT]SV\_X]LRUOQQPT^SSWbQSXPQ^UPVXWS_ZQUVU[QVQFdN\UN^^VUQSUWOQXOJPKYSWY[PSYTVUgYYZd[EWPNNZQVZWQ\UMRURSVUWQgXPO\TQGTXO[OO_F\ZRSVMUXTFWN[XRUPMLUDUZKRNYUZKYNVRSXYRQMPTMEUKOTSMZUS^OONWbMYZZYQX\YT`PUR[JLEIYMQXQTRSZSP^TU\G]UYMINVZVNKOHUHcXUXZSFMJ]KSOMFN^KT\]RMdSTU_SVMAISRTTTMWUYPJRPTVOROGGJU\L[TZNNKFF\VLOJKK_PKDVIQOWHNSKT\SZNJNQPWSOEWKT\OHMVIJ=N^R`H\aMPPTcSFUNPPTGUOKPTPSNPYQPR_QTVRXLXU\OXXMORQQTJZVTMZOJJSUHKVZYJZ\\QEKYQRXPWUUHWHFPPWUPMRTUNRNNRTYSY[PfW[XZSOIRZ\_Ga`TZPISTcOT[\NRAVRNLJOMSQRPRIVT_LWMRUQWWRMYYRKQM[XXPQULPOQYRJOIIHRTMUVRPXZZSMUN]KPPT_XORWW]YZTZSVYXN^X[TTOXVPPQO\WXNPSZTSOSSTSTNV_SISVZ[OT`YUQSPU]HMKX[]OXQTWQQVOQXUT^USMRRQQT_IQ`_Z[NSOXPWOQPWIZ^^PYlUPQXOTWSMRP\VZQSYQ`WFQOUMaY\SPJZJPN\UJSQUSXbYUN\SOYZQUJVQZORIRSORZWQOSS^XJWXTTXNVYRQLNWWUWmSMTQN]Z]YUGXMR^UXRQ\VSHXSK\NQP^LTdXPNYRUZJ[ZLON[MNQLRJUOSWZcVTZT\RKXUPIO^NPORMKSVSLOPRZJQSOS\R[LIRZMaVJVSTSSMRTRTQTW[S^U]SLYRI^TVX\\OZ\PQXQNRM[USRPWPUMNONY`WVJWLQRM[aNNSRQ^UX^[UWWSRPYNKKSRLKWWb[WWRUSOQXQKJQNXRQP]VSXKQ]gWQPS^KZJQRQYVVKRMVYZVSTRY^ZVWV[RUUNLYVSQNJXQUNLVVXYbXUOZaI[\U^YQURYOLWSXJYWZPSVT^[LJS^PMVOUMgVQITWZ]VWQPP\RVP[PRLTUVP`\ILJYUXLTJUR\JVNTQaZRYPL[ZSJY[OROWFULPZTTLZV[SVYUXN^WSQPUUVJPR_OUQMPPX^[LT\daJW\S\PQKSPTUPVOMPSO^QU_]F]SUQNWQSXKRTS]_GVRNVQYaQYXWMJSVGWN[X]YVMJZ^TQZTSWTR[]GOWNRZPSK[aYPUSLk^NVLURSSXIMWYN]IaYQQXWOPS[MNM]PWOQ_N\TX^VUS]VHRYJPULeHOMMRXVKSRaWJPVXOSP``NXRKSUTNQPWJRPWTaQSw[NRbYWV_UQSUPOFfXTLTXGW[NTXMLTQXVN\WQX`VUQR`RVSIXSQL[SFOVJW[N[FZWTUSVNWVRNZYQQOWHVS[[\XMTQRTVLYVTUVYTR^Lg[NYS]XaLTNST\RYY^aKMYUURUVURKVQ]NSVRWSRKNLMMbVV[IHKYUKSLZUXONNVI[QNJJKWFSKJZJ\ZTKWS]WXVHUMTTSYMUPUTSXM\J[FWUNTZNSQKKSTVRXJZKRLMSLLOWXLX]TXPTcKZOWHMQFTLTHY_bVHZOSLXRMSRScNRUYCQQOKIHWZNSkHYTWRM]HVWVOGRSOYWSSTOZSW\MUPcMLN[RQVKVSXXQKWTWXPVROSNU[ZVZ]WPUPSRVZNVXWQSM[OWZONSGVR_TGSSRVaN[USJPOU\PU[[UPQZZQRPVTPW_V[VYOWPTQ_KSULTT[MSNVMTSIVVUXS]U_VMPdSUSRLSO^UTZQXX\SNZP[SOZWR`YKFJXVPXNUMLUZ`RVY\RSQLQNNQNYVSKSURJZQ]VRM\PYRSWMUJ\\ZTOSiTR^_HWYVMSOTWTW_ZOMXUDWPSX\N`MPXYQVTHLZ^[ZJLWTQQMR_PUW_KNR[iORLVXZTVP\VWPQOS[W]^UPbI^[LYLO_PU]\HSUKTTWTNTHDWQWFNc[SSJ\UYUPUMP[PXa^SVVLYVQRVNVUUJYKZePQTQPXTEWdYTRTPPYQQFOSTN]IUK[OTXWdQRNPYCSHXRZ]VRT[RZNWKLLUIUV[[YIXPNWUUKKSLR]KLJLOTPTXRRYVSWLJaONZQTLJTXKVXSPPM]K]IOMFM`GPKNOJO^]RGaQLaaJQW\QTUWSXUL]STJSXEH_YLTWUQLOOHdUXIZ]RPQ]YURSYNHSRYHQRPV[MHUVPLb_PQSO]RNVUSVRJM_WJXNNLQLFNVSQXOUKSRYM\OU\PP\`WbMQJHP]XLZKHGRRVLV^IOOQLPRYQYVWaNPZIOTKPZQOJSQ^Q\Q]WLO_TTP`KVOiPMVPPTYNCWUNUhWPENZNNYOOUNSQSRUWMT`JOQc]ZUMRXML^ZT^QKSUIRUSS^DLZ[LN_PMbaVH`DI_TNUSQPQOTTQSFQRYdIUOKKMSLVS`LMOFTZ`UTNTJXSWMSZLQ^TIVQTWKN^M[OMP\_O^QNOWNMLUPPOU`UWRQHVDUUPXRbITLUKXOPOFZUIWXTZGPPLQPYT^O`PKQVZROTGRMNITXJPMVP]YLQ]VXDI]JNO[ZO]]P\^OVZbTTV[^M\h\STM[XMV]ZQOPVQRTNWLXRR^NVMNQFRSP[[VLNVWTU`KSTVYVW^SF\Q\XRaTFNWSHXMJRMUZ[^QLRYRFTVPRKaSVXQXNM^aIR[KKSPSNYP\Z\Q^VON\XOZWRYK[X[NOMRZPKLJNH_OhOQXSQXVNHZJVYQRcPRQP[XM[RYNQ[UPUTNVJaPIYxagOPEUQQSTN\PGJbUQOQNSUVUWTOKSSIWX_OLTRVLNQQNBX\I^X[KMMPTOM\LFWWNPOXEWQOSOhVRRSRVUUNOWNWLRWHSX@O[QOV>QYSZ[UKU[NZYWY]AMcVaXQIPZJTLQQVSLMPXO\S\YUUHaLVY]_WQT]YCaWI]NP\M]WV\ISWOY_MMVNUMPLPXM_QXYXV`UUQLNQSTQTURWTPGbOOZOLMZZUNTUP[WQKQWU`VOU[NJRcMLOVFYGaWMNcVJVVPWPRR_aY^]YRUTVLYJ\RQSIOPX\KL[UOXVROVNLMXQSQPLXRXL`NTY`Q[S\PPUMPSeVVSXabUYPTXNVINY[RLVR[gVWSSa]JTPNNdTPSSUPX]RNSPIIRK\[SXR\X\OXURbNQO]U]P_PROQSSVJTMOTPWXRNeUUUPPPRQTYWM[X\RZYRWWORIXPWSVVNNZK\XJNOQUOYPTV]NVQVVONPO]TnSLX_eMNNmaTQK[VSKVWZPUONULGUXX\]OSVSUNJVJNNNSH[N]QPPXUcRTM[T^F`_\ZWJ\cRMPYUX[G_TRTSWR\R[TQOPdUXTLZK\RIPTZccVT^Y`TLVSSSMMN`LRYcLUGWPP_VOZPPJTfS`Wc_UcMUY^PfNLUPISZN^ONV_WPSSPYQ\X]SZOQMYXPNMIHLaYHSSLQZZUKW\KT_OEPOQRWQ^TPLXSUTSUQMZSLcVJZYRWMR]WS]NL^WTROKLWZLMSVQYNTRPPZOLRMSTTSV\TM_NI]cUQRJZUQT[XRISPLhKMFHdS_UNaSVbUKW[SORQS`PUSUZV\UMTNNXKPKTNkSOOQ[UQZMMWWMNWYLPVUXaZURWNQKYXGRTQQVNP^]MDKOQTkPSO_KTOS_PN[QXNOX]SNZPPFYSLS[aWb[]JWZ`gQN[SORMM=MKLHMGI\NZLL[@VVVPOMPLKREURYbW\PV^L_P[jXaFSONVQSYOTUPRSJMRVHSLPOXZRNLM\JgPSOXaUd`LGUQU^_TZDLXOaPQJQFNVFaZeLPUYVXXMNWUSKPMQTRTXXRUWONUIIV_Y\SZUUTWOPiSPO]QOUTRWJKKTOTRRYKXRKQUOYSWSU[\YXXUQVURUY[\E]JJK\IPOoOOTV[LZSLRZNgSXZ^eWXUMVGJVMTNL_ZQQHJTEfbQ[LLPV^L_]ISMVVTWUNRWJVXSMTTaaLRMNRRXPJXSMNKRNTRPUYfOPFRQ`GPSQcVNT[UVZOXMR[OPYaUMVeP\UUJXVKWMRR_OTX\JQUU\QUOMXRWXM\]]STaJOWMMYWYND_SKULSVQULT\UOTVRW`ULVILVOW[QRZKS^cRWVC[RTZOdMVURTSVRVNSUUVQaYVMJZPRO[RXNOSV`^YRUMTZSSUZ]VYPMMW_JOK]WNMSVM]`VXRSW\U`MRRRVHWYX_WPTNV`VV\]VMWMOTZV`W\RIUQUWP[RaV]UVYP\MRC\XZWTSSTZOUXX[ZOP\a\XVR[POP]OOUULUTSSZSTZ^\bYRSXWNMUSW\TZSSRXSR\NS_UYR`WaURT`UYUSdP]P\KWMWRMVSQRRRVaWSWQ][RUYYSSYS`TWUSXfQ[QZTKNaT]WJZSORSMPTLVKTXWVQZIRObMRQKRJTP\GXZPNOUO[ZXJ\VZbJJYR\SN`\\NS\JXHKZT]WQQWPWa^Xc\ZWGX[ZQIPXGWQTXP^NJPR]@TTVYPUZVP[RP]QLSFGUPCZQAQOSZMQPYUIW^LC[I`QHTcZd@MWYIRG`PSQRBU[ZHPFRUUHQdSPUEWSUVMYHZIUS\OWZVXJZSWJ^AOQIPJL^R]SZLTRMLMSS\R__KXHT@QQLUNKYR`SPT^V[QUZV\\jVTU^RKSHRKNWJXIT]N_QaUETRPMUHVMZfD[XMLUSTRVUVQJVVL[TYcoYVVeSRUG]RVSQMQYPBHENWDbJXWR\[REG_RV\\UcHWSDVUTWUZVRNTafWRcU_WT]bWe`OSSSX[NNKYYJ]]EQ_[TTMWCONBSVP_YR\R\XQLOUW]KNYYXWU\Q_^jLY]RLBMRPSMXOTMMTJPK]WbSbWL\`T\TRS[ZKOV\[SVVX`QaZOJZO\N_g^STSWWVRZP^_UTSZZTNQdSO^XUSNSJRXOZ\_UU]T_`TOZSMSJ[YUHWTXRVPITMVUbR[\OW[RSR`VRTVGMThJ[O[U\LlYIUUb\SOXXRSSIYQSPgZVSMZOXTOSRRTbdNYO`[MVAhNVL]O]ZO\MXXVN[SZYXV[TT[QYXJUX\_cZNSX^YZTJYSZU^[R^WGYZY`YaLK_HRQVJHL\WNQWNSbNQZLSXVUQ^TYYWTTX[NRX`TRVXTUL_[QLR\ORPSZWYX]IKWZaSIKiR[VRWVbWVMHUVUNT]Ld_[PKGPQ]O\VOPT[\TK]ZR[L\SZJ\Q`]QLN_NIOTL]JRN]IWXQIZYQcLWQNd^PKVTOZR^dNWSOPO`QUcPRSXHWSLGOOO]dS]TVSOWL^WMQTROOTNKLR\IRZW^WKN^WNKMPL]bPXRYRPVONWXNQCN^PHTJQSUKZaTLOPN_KKJWRXUcYZ_SXWPRTQcQRKXZYYTU_RMQR[^S]ZNRSK[PQMRKSUY]NO[S`PUWUGIVZNNG[SM_[JJNUONQ\GMMHN\TSYGHPUNTXMOZKORI[PRP[JTXRTNNKVZTETSZMNYOST]WRIVSIH\TQQTSXV[LWTNWJXUPXYWS_WRWRS^UgOdLQW[OXUJX`TOQRa^ORYhPTUXMfNV[SSQXLWLVOWUbZOVXYRYPOIeOPWRYNLXUCMJWSRTgLbQRPZZWSQLUZBYUVMRKUNMOSVJL\H]VbOVNeNSZSM[IWbQSNHZM\SJMXXEKVOOT[QRL_YNcW\VPVK\WGR^OVY[XLNOUUNNX[\QQ_XLSMUYWUTTngPWRSLORKSHTZV\H[HY]SXPPNVXVUV[NYMONNL\_ZUSTKRYOOMNUM\HYYQT]]LLSMLUWPQgUMLYTG]Sc\TUULPSZ^V[[\]piIXEHRGQ`ERGSGTUFVWLWOG]L[SWKQOTK`PPUNMX_WUSNHXTOVUMY]W[PcTT_PVVRWEMOLAMS_MTPgZLMYXOO[^^OJiQPLZTKVLVZaOfRMNW\XSMaUSUPJOaT^PYS_NYHU[RRYYMMWVIQNHYHaPPXRYOdQPITLSWOEMaKGYZSJYJQdPOQTWEQYSP[QbT[NRRFSY]ZKWUUS\UUNVNYLPISTLU[VRUQSWXRZUWYLY^HWG^MY_PPMWTLR]QWSVdUZRWPUNPUSTORZPQ^URKPWiSFUOOQKUTZUKNPSYPKMWVZR[LUNWWVMQVTVdXOWVRRPNN^VROULNKLQQYJLPMVQQKWZPQTGD^W\NSTHUTQX]UNPKVPQ]^M[\Z]Y]YQPLWY_XX[UR_`NRMdRRPSPVURJEQUTLNaTTXZVRNQNZYZT]\MXYUSHQIQ`PVWNFZOT[ZVLXgRWJTJRXZMSQXVTeON_RUVQOD[MRGT^PSRUMSTVRKLY\WSMFVYOSZVWTTQGQDVR[VXWZTSTWVSWOQPSOKTOVWX^SWKRjNPMNP`OGLFU^DXUX`TWQWXRTUSNZNQUNQIGZRSMbRSgRZPUPLHSOWZHX[RIWPUXRLXLPTIPRN\PVYIVNJUOWLZ@PMcYU^HZPY^OYLaQZXY`MRQ[^KOROTTJRHScHKGa[IVVYTaASbK`KS[SRLITXXR`WXPMXQXGIYaRNTZG^K`JP\RZYbUCPYSVTXNcWU_OXKSFJbUEL\S_[QTUVYiK]R`NUJSH[NYVT[S`TNaIQSSWR[TWR`PZOPPUOJQSMNRT\_NbOLYJQOJ`Y^WQX^]^[TCVM_HXPTOURN_PK\tag_UD``LNXPWP_MW_XRfRUMTbJPRXNXVTVVHcOMPOf\[OL]JdVUO_hS[r\PSGLLM^XXOVURQ\UUY[N[JRVZ[LSVQ]YaMUbT[NIVSPEOJMQcWTQ[[QWPXI_WINdZRUP\QEP]OSW\[WXVSSWUXXZSO_bP[PZ^SLQOPLfWV]M`WQW\KZRQPIZJY]LQU^iLJHWTXSTTVZSH[XZZZVS[UMLPNdVSXMO[QXbOUP[QbKWR[SV\\cXIWWRLROLUW\RYSTLTX^]RZUS[TK]QYRMELYVST`YOMUNQXN\MS[TSHU]GVbQUL`VIJ[MZSUTXPNW]]WWVWNYQXK]Y]XOUYUPOXSOKXNYZQYaSJWV]NTP[P[TOSLVYKMXX[SLdYTTQORXOKQW^QIWYULQQVMRVXHZZTM\YHMQUSNTXKJUSLS\GVXRSYQKJXUURSQXO[NiVNZNPH[RPKVZHQSNKLTPIYRTUUNbQUKU\RL_W^VMUWWSO\QWRYUYR_cL`TcaP\QLTRWZgOS[^cWPIVSeTUWZGLLVMNW]VS_RKWO`YcXRTQ`PXQQPGNKTSaK\PSOVOIeJSGQY`Za?\\UCT[ZMLIPNPKW_dWI\TO]XdPQLXY[ZZMDUOO@XVVW[aWULZTM[IL[OdQbW\PUGRSV`PRZNYHOQNPZ^aXU_DUMWV_PPOFVTa_GOTZcOPVaXYQQVlUKXbPVZXPJPPOWUOXSQLPRhb^PWOLIgMYLTS_NKPXR_WPQV`WNMOXQZYWTWPXRXHVIXPKMRVIcPUYQNTW`a[[TgXNUVSLJNVWUSRPNVNUS^MRc[UgbZXZRLVRWB^YOHWNHl\XTZOJGT\QKYVPRLJPOUUOYW^TSY[AVNRWXQLNYF[\KYT9PHXTWTYNYRO[RLdUV^QWVTT[TXTOOO]NQ\V[K`MWEYZSSVXSZRSO[QVVKMSNVRW\XNfOUZVLUZLHPW[WT[NIZKQNRNNUPQUPPZMSdXRINSYO[S^JYPa_NW]OMNPSRTVHIYPNRNPVUUTRWTMVKUPZXeX]USPVYZ[TQOcUVSX\ZKYOV^NJTWIL\[XZ[SMSSMQXRWT^XURKRPa[PQ[TZS[TWMVUOUSMZRaPVHS[HcSXSXPUKWJ^PRZUSVQGS[^XPPTWSTWSXK]TOT\SPO[WZXTRIIWSTHGVQ\SWZWPXP[WMWQMSXOUWVWRUXXIQMLRUOLMTKPWNGSLTX]LOSS`VaKMQOWLMZJSOLVZ[`FHQTNVKMYXSWdNJSITWUUPO\WPPPIRO]MS^OQCTUQSUKVQJ]LP[QXTMRO[YPJYVQUNKEUSYWOR\NTV\S^TMGcOYOTPRROQYVPXWTQaU`WPSRHV][PHRLTSTNYR\KcR_P]O^URPOX^ZOYWRO`O_TjNPW_PVWXeYPW\WQQZVWNSVYUJUg[QUNP]OMZcLTQUSOPSMWbM`YQTOGG_HWL[ZJEXZOW[P`MUZHKbUSRWYY_XWUXRUOKWPVXRWYXOTY_TZYS`TUXX[TLZQXbMNLWRcT\MNUHLOWUe_`SQ\QLX`TPNGYHUUN[\^WQbYT^gT]TTKPTR`PQWTPXUVURSVYQMWNSMYQDUWL_QRZXKVM_TTTVOTXNhd^QUMPLKNXOXOOWVQ[SUI^OZ[UB_T[QR\NXGZ[Z[JNV?_[USRXNMOI[YKZXWXZWV]VNAK[YLGHZVT^_VQPRO\`QQPT\IPZXdNUKWSUSNL[RMU`TMNGYRSVTRJUNW_aVQ_MK[OMRONNbHQPF_YSML\VXUEN[LPW_PVWSj[KKVUZQNXP[KNNRYeUP[W]]QSTQTU[KiY]NB\YQ\KSZP`YWPRRMKSOZS\TYWMPHTLS\YT^URZZKITPNPfXTWQVMUYRYFQXY^_U`YXRQ^QPJ[PO\OdYUSVSORNaPRZN`DlWXPEQXTRLNKZXTMB@Z[ITWN`MT\T^XPTXT\[PXULESIZZbTQRc`T\RbXVW_IfRP`OWYXMSWT`UWQ^SVGXPOPONNRTUITS^WQQ^LVPVSM_NSYiOZUS]WXQ\XRNNZZcaOW[CT`QVR[L\IIOQST^SRVSZPTdXO^XZHMX[M[GSNEZMSXR_SPVYR`RM[GHI[OSWBWMOZKXVSS`O`O[^NPUVP]WOGXRWKSS[RIOYPgUXRXVWRMVYVZ_V]KVUVNRXbNSPMaWZRLePG[P\OKOUYSPGOaS[[\LObRUWSKPRHaJ[\^PKO^MNZZOIQQ\UZRRWUK\P[ZMVWVVXLX^FLcOOR`XM[`HJZWLPVOWRTTVJHQNK]SZSUNfYWPSTJIWTQL\TTJ]]LPOMXYXPVhQVXTMKXWJMLSZ\OVURPNSERO__VVQ]dQRJGOOPNUQO\RV[PYRSE[PKUN]X_VJPUL_RTM_PPZZ[XPRZXQVX[[FOLWJZUMOVRWYSI\QWRLYTUUMUaQR\YRM^[`N]]PaTWWQN`N\OSWOT[UMNRW\QFcXRPMXQYUPQGNM]XBRKQ^TROQRPRVTPRGVYUTUXXUWO\^SR\MTZaSMT[YQV^K[SP^VUXONVN^PQ[NOMPTZ`VPUNRVSUa[T^RWSZR^SURRJfSNSRpYU^VTNVfUXWPTVMKX[HPSU^OYLQNYbHV\fXX[_OSQQJ]UTLT^RSHLMdSMRLQSVRMPJENWLV^ZQLLXOZRTTWS_RdFRVS[GQQTP]SFVR[LUMPTOWL`WT[O`SZ_WVSXPQKTSTTKXLUQXYSVXNMQNTNTJZYSNSVWWSP\XXVCYUSTQ[cNMSVU^I[TQb_VSQWT_LRYPLYSQRlTXOSOPH[gVGPSPW^QQWVPCPLYQZMVb]iUIT_XSVQV[^^NQ`PSXPYOXFTBRVZIUGVLTS]ZJSIXQSU[YTWP[KQV_TQTQTY\YTTXSYOXNQ^]^QSNNSZJWPSRQQO__OXESPQYh]O`a`SV]MSQQKSSVU^LJYYQRMNWSUSPXJ^NQT^RV\UUPIMZPMVLLUNORV[NTQYUPZ]XZSKOWRTTVTOWUVXNNLRU^TPZLU[QZMcWJ\_UWLUQ[XWRMZUWV][YVN[WVULYQKTUYKTTON\Z[Oc[TTYYWWKWHXaQedUTPWQYUQSS\PN`LVLMYQXQWI[^RRQ_VPZcSRKV[O^\KPOHKdVLVURSYP]XQjXa\TRUWSOQIRcSUOO_]STQJPWNSRSVSMWV]^MYSYX_bMPTOS]OVXNQU^OWg`SQXQIWY_I]NQUUHOZMWQXO^YN`NUQRVL[[WQXN[MLMWMSRPTQQYIOSSYRQRVRVUZVSSWQJXaR_\]VPUWLU]]JYQ^_UtNZ[PKRO=MXXSPMNcSLNXUZ`Q^_WPUVUQYWQ^_URdQYU`]YXK`MRN\YLQTZTUVKNHZZXQSKeTPMVUUBUWUWRJSPMI:MV`[G]RV\UVTRXYTUP_WPQZVOPSbXRFXWfcoTLTKLORpbK^N\YOVUSMXU\^RX\ZSOMJUWeZ_DTPPSWNKOTXVLYb\RXWKDU`aZIMTR^KOXRSSKRUQKVQO^HETIWOM\TXRFP`D]NNO]OaQ]ScZS_PN^WXZEYNYTPZXXX^YOSLQWUKGYWS\VLbYWIRa[XSIXT][KL\IJUPVPXNXQcLNZW^OQ[BmM]QUOQPPGYOPWWURPVVXQ]XTId^YVUYTMSOVXW_Q`gWWZOb\I\QZPQQOQ[\YHXOZVh^OUIUMT`PSRZWVWTRRUI`EVNRT\VQYOPNK_WOmRQQRWWJOPVZWXnP\OVSPTPPIZOZUZYQYONRmJTLQVLLUSYT[NSJXaTRVXNSIWSbMZRKL\OTP[OSSMU]IQNWQOHXTKXOVISNMR`OTQZOTVM_UXULLOZ[KZVNUUXS^MPa\VKSLZYaZOR]WXKRCYU_LVZR\OPVQK\ejU\UbX]UWUMSRSbRTXUTZY]TTOR\U]XTRJ_JY]TVRU[WU[`O[QWRRT[YUVPSSQRTOKZU_TasTIRXZPRbSRJUaLMSXSPORQ\RRPHUV]YQP\VOMQbOWYOakKNUDWRTSVRUNNYUMUPUMOWIRdXTOe\SYQ_QXX]OYYOYIPVQ[V^PH]SV^cYMMQcXMK^NUOON^YLY[QJTl[S`TTR\N`UTRYZXWZVYMXRSVRTOTUUVRXXGUP\XNZPSQ\dQWTVSSMV\UJXNP]R\ZSZ[M^SY\QZPWYPSUPTNdQNWVVUWL`eMaRORPP[RVPKO\TQL]RMUQ`[XSPTTS[[WKXRRNSXUVRQSKZNQR[WQNQQRWeQQUYX[LQVQSQ\NOZSeaRUQOPROMTRNMWPZNT[SWVNOULTNMdYMCVRSXVK_QP[GMZVRbVRYVeSQT`OWQUcY_W[SPVPQTO[Tb\iURTOJNQcRYWUUW[YWNUYPZ\_OTMZ_R`]MRRQUVRXT[SV`VWOQXVZWWTZVOLT^P[OMaRTdRUOVUS[YURVTXQXZJP`M\RHGUUN[OMJWXNOZSXEFYS[ORQO\USS`NOTNQS^TZSZUQS`d^OYORUP]LU^LXPKVSdTSTK[QRXY[TSJTTNTVZQ[NSUIWXUDSUQLXXUVU\S^QQX^[RMQU[PWOOJMdSWYOTYSQTPXU`YTOgNRZZ[VFLJQX]cR\^STQTSaWWSPPSU]ZNXUPU_PQ^Xd^PSLiTMXVkRPL[W]PQUU^ZQTP_WUOMQKWa\Oa\XPHMPIFOON_KVRRSOKZqUYTAVLSZVNkNRQ^T\YMLPTMYX`VYVW\RYLQLVTc\DQPOUaP@MYWLMFNQYOUP\XY\TNVOQYSQWXORIMR]PNVVQYUUXSMNO[RLOWZTL[TQNOQTaV\JRQT[`JPQ[WQZVTRJYURWY`UN[\JOJI[[NVYNWVUQQ^YTR[YNQNUST\PQOQQTTPGUXYJKWUT^QTVLP`SQRMOQRMWTLXONLlPZPTHKT]RVLK^PVYYSSMTPNYSVY_LPOZPS_SXM\MPLdDUXGHY]]XTUJ^YIQUVYRSPOOPPWQPOQLQJU_ZSOXNMNNRdWQM^MUS^VTTY[UVUOLPPVSTX]IJ_T[SRTRbQOXVTUMZYWZKQUQWaNCURhKSTWJVSMULXSXWLWbL]TRP_JSWS]QPZXQWQTMHXHUCORVVQ^QPVX\\NMNYUXTSSPNQKaPKX[TXTVMR\SPVSTUMR^UZXSNRRJWRTYZ[UTRGVcVMOW\WUXJYLMLOSTLWUMQRPSYQdpXN^PXTTYYOVZQ[S^XXYQUT`bUaQOXSZWZXVSNZVSBWUVYURQUYUXR_bbV\LKVJ[YQZXMLLUS\dTO^YQUOVO[dVaOWZTO[ZTWPVZ[XTTQSGT\VUNQX]XRNUSIId[TSKYSTSTPPNKKPNSWQJOEP^cZ[OX\NNXMSTUNXTTO[YTZPhPIP\FVcMWWVYUSFORV\\RULTSWRRWYSYIOTHNOU[^[aWb[]ZRXOTV^^OVTVTU_RRPQEUNR]ZRPa_HNRUPROPNMShQUP[_oRWcN]KIRWLRTNOTUHQXQMXMWSSXiYMMMXRVIPVRKLNLXXRJKV^VVXSNNMZERZYkTXNJ[VNVJXQTYRO`ZUPVZU[TZPfWObRQQSXRW^JR]L^fR_^ZWVX]S]Q^VM\WYRXN\WWQXSTVV\VQU[SGWWRP[OKbVQS[YPRXSKNN[`O^NZO[RT^XOVMPVQLVWOQVWV^P^]ORaNOS`G^]N`RUYNOVgP]eZT\V^QXPZSFTSQZYcPKZXYRYLTPU\MQZZfM]RXNUP[QQJMXXQMcaoVOPRQJJNTU[NXULPYUMXHUTPUUJPR\SUSSORJJkIGWLdPUWSTQf[LTT[UfSOU[RYS[MWNU[LLMSQCZQ\XWSOdNWOQQWLZQTU^]`[XTN\NWUVhOG[UST[PPRKL^T\VLJ[TXXQTOY]IXeZLXEPT_PWWQ\LWUNNZNXPMR[LcIVSYSHVSUQHZUORQ[LQQ[NZP^gQMUJKJRXcPYV\_SG`NX\VSRTUZYMKKKZ_STHTQQROLKZOULUVT]WLdXKVSIh[V\SY^W[ZL_WXQZUKZSN^VOQN\C[QORSSXLUKUTXPPNQQVLS\X[SSNPOPKPZRZS[WTYOXLUOLQUTU\OST[RRVWLVN\VURSRRJLWRZKVOY\MZU^Q`][WTZQHV\XWZ]`ZPZ_QXQVWQU[UYPIUJYUTRZUWV[RW[`TSOZPGXYJZVUVXZRPUSNW^SQTPTRWWUSS]UU`VRaJWaZSOXF\VSJZSE[SVTYLONTWQOXQSPORPSMTPS^ROOLZQ\WONSTWKPPS[LSSYXNQUWUU[OXJFOUUNK`V\ZI]PWYQUOUQSXNSWZWILUXWSbTYNXWZOWV`R\JNSYGXGNRXSVdUOOR\[SVOTDS[Q`JRTPOIWSSTTULZ\POTcRU^]\RVM^KPSQSUKILejJSQG\XOTMZR[PTPYPTSVaSZKLI^XPQTSXO\Q\UTPMY\JZWTIV_VYUTZU\YWRWWVOPOBc^O[[QZSTUUJSMZTS\[YH]KQZULPYYLRRN_T`P_P[LV^]VWTTWOLV][ZaTNWW[V\ZFY[MHSTSMUUWPTPbPPbTcZPYUNQ_GdIXLLP\OB_M=LSTQTS]TJb^O\TMPGIH[D`WXWKVLdME`PWLNTZUQW[RXUTKRZU[WOOKGVS^PVFUTQbYY^QTP[FQFXXTIZPUX`>\STWYUP]bTPRNVGU_Y`PSOSNNQJVQXOUGNXTSUWVQL^L_ULSXRUZMHXCTS\UQVSLXOWWUZXUOVNO]UHPNc\YPXW[VZYZJMJX]a^JW[PWURWSTVMa[WWMTSVMWL_SO\PSP]UOHPXSZLQORnITWUMLOYZYMHPHR_VXXSHTZRKLUVNRP[YVZT[ZTWZLOSUcGOX\LXUMRN^_XXVRSOSUSOT^_ONQVbQUNUZYSOUPYKPNT\MW_UOT`XXQTX_GVIQYJWZRYNGVSRTUO\PWMPNPQSKSS\MMXQPTLO[JTSSS^ZOZX[R[MQM[_]PP^cRTRSUTWQRQV^XNU`_UUOSZS]UUZSUaFJDNURIPQ_VXMZPQVQSPTaQTZVY\UWP^UJULYWYTPQTXRQPTUGYOMPOYOT[JLOKLQIPSRUXVPSTQRO_NSQQM]SWWV^USSYTZYYNORaKNOSUSWoVX_XY^ZW`T\ZPJ]UXKSTY[NPU]RYQTSQVbpVY\MUOLYVWK[YZ^YM\JROTTd\Q]ZUgbP^R`Z[XWJVa_YNW][NZZS\VWUUVOSW]QWSc`LJZRVSSZSUQOXIVPLQPVLWVO]YVMTKLWWLWTKQSWWQPU[hR\RSIYZKXH[ZTMMS[_VTQMUVOTORNTNK]Nc[TYLNJNRRYD_UPK[QVWWG_^UUGUR^[WZGLSM^JKWR[VMLJ]_NIO\\NXVORVTQUaZUTXV\aX]fSWNKPXVWVLQWLLKSKMVHVUZQVQUNVRKLPPNXTVWbBXXXZO\R]QSMVXHYXWLWQPPUPYNSTXWXJTWXcTVVZOSXPWXM[NTPXRPW^^TSZUSLYj[_ZPZLVH_VJZSYeMW]SRVQQMLUNV\cX[LGWZL]LeKRPYSQQNT[dPR[OVX]RWLTKbZUVVZ\PZUSOOKUS[M_UCYU]P^SeQMUWDXS_X]SUO[SPKVRWSU_[S[^YhQQ[LXRM\[YROLJZQVVHTLZRZU]WTTWOUR\LRVOT\[ZS]cWZWOOSRWLFKRQ^V^QISQPOQP[VZ`LNWWPSOVZPS_XWWOGZQ_JOL_aTYVYSGJENMDaUNKVOVFOYGSWRGYTBVUNKSafUf\SLPXTMWa\MTLNTNQUJTOQXSeRTO^V`QUNULQO_ZMLQP^ZKWNkSYRWcRSSSWSPkWSUMRQPXOWJPWMMPJUVXTV_JUaS\NLTXaSWQWPNSXOQ_]SQVLZSSeIQNVZZWJNPSWSSP_[`MMJNcYXTXOY[QPQQUMQ[`ZRZYPTRRQTJSUXU^TOVW]^NRL^NSX[K^_VVTWNXO^OUTZWS`TL[S`OdN_UVYTNVUUOV[LJZ]HL^QQKLMTXLKQiXVPHTYWM\TTRbdGZJK]WeIUWOMJVS[OaQ^c\KVTN^WSNOMU[UTQVDFZcRZTSQ\NY\OJQRGKTSUVQ^NM\\KTNTPQVPJVWZN[UQOR^QNUSZQaIYQYZKMO\]OQbKKSV\WQPQTZS_[YIQQZPMIM_LWYMQVU\LiTYNTXQPMPQTNTZPQRPV]XEKPXNXYUNOQVWFYNYQPTKWKVTYYXVJV[cWVUXSRMOOSIQQTW_MQK]ZLUWUXIMIdYREUOaTUUWMS_WWZUZYJQONbZ[QRPYZTlLX[PLWOWTHJTSYMQRUSUFPPQQQSKMJKUQZKPKJVOXR\KUQGfPPWMNQLSPVQRJTSZWV[FXOSVXSOQTJRYKSP[XQGa_OVXUZUSOQUMXMRMJX[\MNUeNPYRHJKTMIVFLOWYRTVY[PS[]NW\YUT]TJSCM_UNcVZUMLPVPP[[]RYSpWYZRT]]OYZW\ZQY[bPWHNMYSXLUMVYZVN^HiZX\T?XWTUTQPEVUNITPOMZSQZDSNP^RZUQROBQcLUWdUfWXURLV[MV]Q_[JT]UbZ]PYaVSGePkbQXNVRV_Y_PVaHZSXVOFWXONINKaQYQTfJNPQSXPVQ^JZ\KN[VMc][WTQUb[VQLNNZEVTWTaXSS]PGSQ\P@RWcWN^K[RSXUOEZQU\UPNKTLZ_YP\W^USV[OQJeUQNT]`WOZRYNUUTOXMZMS`\MTZRO`K[SRWSJLRRPY`QNRcJZTZYR[LbUK[WOT\UVTSVZNQTJQXHJN_XTZK`VLTROLR\QRV^KTJUMZKROMMSKaP[SROQHNHMNFQQNTPUOPWJGGMMLHQPSJHN@HU^LKMUlLZEQOGOLNNMRJGKSXSWKJGHWEKG[HJMJUSNNZ\UMDOIMMOOVHQWLPOTSHJJPONPMSNRKUUYQF9VTNKIKLVIINTOIPKRORQN`LLSOIRQPVRBPPYUQIFRRQCKRHLTPRP\MUQRTIROGST`SGUUVLJKPDBRZKXKN_YYKUMIIM\WJWOMEWQNJLJQGP]WUMOSKTLVRPMWORMSRYQLKSQGRGLSQOTJMPZOUOOEZKNCDSFOSLQ[ULSSYGOaWPVROIOSSTUVMVORVTQ[VNPPMMVOPIJFRRLFTRNQIRP[M6GJRTTQOITOLQMGSRQMQPYXSGFMKOILRDIZ]OZNRIQRXWIO[IQORXITNOUQLVKRVTGEY^YXUQTUYOUFVXMOSZPZ[`TYUY]W[BRYSJLOWVPJTRMMPELUMMYTUUTUN^TMZQU@TULTWXPULPMU[^S^QRRPYEUQ[STPDO_FV^URYVM`KQEYMRV_KVcXUNU_ZYR\[LTPVJTZKKWRXO`\YXMOTOVQEOQRQIVKMYNUbHTTY[XSMTY^SZ]]QWVZRVUX]RZSZ]ROXYKZQ`QY^QRQUUTHQHWT^N[SM\MNMSPTYKLKVUOXWWOVUS_NRYWSZbNUJO`]ZSPWW]SSS^S]UFXaWPUTXYVHQRSSTJ^SO_Q^JNNSQ]XZ`LNT[RXDUZQMZPOTL\_SNMOHKSTVVSQaPRXU^QVUKSW\IY^XGNK]\TWYQGHZPUQWbQbMlOUI[W`OVLXZY\VYY]L_QVR[ZWWNYTVTOcKSRPO`P`RG[MMhkNVRSNYQaPWWVUM\TUL[OQRQLTX\aY_RW\_?SRRRW_JG_XQOC]EQUQKYJRS]c]OOJRMYQWVXTZKXNM]QHV^X^NWMiTHWJZNOZRSYVSTVHPPVRJeLNUVbUWXXMOM]NWSX^S\R\TU\MSKNN]RIYZXL_JOOSZYELYMSRWW]_RRRFc]^YUQN]TSLUT_WUTMNWQPQITZX[\RR`bRQNXQPVQ[WXSOV`UVSSUXTUe_LTU[RMHOW_NPXPfRPXXLR]SDQVTRoQOVaYfVpQLHWWJ\UL^\OXUSZU_VSM]OPMLNOWZOQQLURXUZOQKHTMWTQSNWZYJNSN\TSYUOOXaHNN]QSSYIZbRSGKOMPRV`WWTLEiY^KSTMSSXS\[KXXWS[L_T`TPWV[UYPSRRM^_JSLO^OX]VX`XXHkUMRNNTJYQJS_U[OT[SYRHRQBYXUSOOYYNUX^UNQSQMYTRVWTYXTVSPQWT]QJ[QWMg[Yc[RPaQYRQEUWVOWQUU[h\T\SYXTOVSKVWSSVTURKWSTJdbXYLNJ]\VVaIP[_SP_T[hEOdUHUTNOSAaVWN[GWYPXQAQS`QSVX`RIV\]J]KVMNbNVUNXKeHR^NaYT\OSPPUR_MPUIVNYHTRQU\YZSIL^V[UXRRYWPMd[NWSUgVTNOP[VQ`VP\OUUXTWZYZGKW[LTSYfVRKjNVUWKYFIRORQTTZWZGNTNOWPVSXNXTLUTUPRHNE\VbXHQOIKTLTFWaKNMNSVVXVQULN\XOQjURXMMHWMRLHXOXIWPOMRGWWXGPITRPKWJMLKVER[W[UJQ[OQ^bGOHLPLbPQNVKOR]UVGB`V[aRWMHVWMTRIJ`ZFZYnRhRNTSPeOUT\VQSOUV\KPSOaUHYPP`QLN]FRR`RIYVPTURPO_PEdXT\SMGNMQQPWJQUOPMRS^LYDLTR]RQlPSRQURU[YNUNUPM]SUPn[RXOUS^Y^P^WKTSJKNLPWTPcVUTYlSU]QSYUeWUMR^XTINNUTTOLMPYMWQ[WPXSRVRYNPWIGPPVGWOFYUGZ]`XOZLPKQSONHTNQP_V^TQSYOM[MaLWSMUPJZVMQNVM[FXQUOZPVfTTTISXQZPNHWL]YLXHWXWOUOX]XYSOFRPSITRU\_UXXVISWV`S]SXTMRVQRZVPMR\QQQORXIYRYeRRX^TN[SVKOMPR]]^WUSRRVWQLMWP[WQUTY_YaM]VGUNYScQbW[SZTNPRbSRTHXPS]PcRNUXV^WZTJWJMLZS\P[NOSXGQTXUSKPIQTaW_JU^V\\dUgIELVUO^OJbNZYRXR_UP`M]\XMUYLEYchN^aTRPZWPkSMONTZUYT]UPaQ]RCZNXNTRRYX[NQSPQVY`KRF[RRaKTPKTORN[PQOSNZTNKWbLYR]WSWQ]][MKUSTQVQOSTUQWXNRTMX[VEQR_NTZQ]PVRRFTNdOSILQUESSS\[VQUQbNNERGNTQUSUZUMPN]XM[ZYSQRMUZPWSJKUHORQ_bWRKX\KcWTSMGRKUWGUUNPOXNTUPFKG^SUUUS_Z]QPWFISPXVOPX\PLXOSUFUdWfYRM^QSZLJ>HY`SPMWSQG\hUXYbQKIJTWSJVPOOORQY\W\UOWUTEPRfN^]iN\SPRSYYWQ_XZZJOQLNENPSP^^_QUS^HUVQ[ROLUTVOTe\KcpTNJRMUQIUYZOODUXJDVSLUNYFXNV_TZNSRV^\H?MKXKQQTQMQRYdYaQW^SSR\[T_ZRVBQLSJLYFQdKVOWRKRMVGOKUOWRN[HO]ZLR^eWKBNXU]U\UWQSUOM[NRUNTRIX_WOMSBPNSISVCYSLV^ULSTXO\XSZ]YMKfZSTPORNOIQG]KJO\RMQIJ`]V`T^QFKPU[_RVXUOJTTJU[]WMTRHQPlYUT`]QQYWZVTRWXOMWTUNQLQTQLWLZbXMM]QW^QNRRLS_JURSUVWWKWTMTSZTIXPKK]MV\OWScRL][VROLRYMQ_OPTRZTaJONRUSL_RYQ_UQWW\RMOXIN^MZTVSXRLOYL`b`QUOG`SXOcXMQYVJWXSPVUP[SZKWT_ZVKRMPWTJWNPRPXEPRNXNVSQRG]XUWQQS^PZVPWUDRQQVYQWSUM[VTXVOSNTVWQXYTRDPPNOVHPRPXIXMUTCbRTLXINa[S\YWTGRW[^QNPRXLLQRSJWRVUW]RHW\U[NbUaHVVSQPVMSOQ]QIYTLYZQMQQKQ[JKYPRN\MR\KVRS\UQT_S`P[Qba_VJXbQLUUHWYVWOTTRPUkYOXVHU^H\WURUNObYQT\T[[UNSUDgVNNKWN]LYF`TWOMZTKKO\TSNXQLMT[QMT`JUYXKYMLRVKRMPTYPQJQ^QNYTRQ`UQ^UO\OTRLKSORVS[]NQUOQSYUY\XOQe\YVMQOHOQSSSXNYPJ_jJSRUXQPK[TRVXKS[MRhXWYRdI[P\YSNOPDTPKKSGNSRLMGQXJUZTL]POV`Q[TTaUUPOIS[Q]RQONUYLQHNVW\T^WT]OSXILdVUV]PYUTUYOSQbZ[YTSWMVUVlN\VTUQOT^\QMSJORTPZWbRgRRN[LQZ^OTUN[ZUFZOFRMX_QTSYWP\[SWdELMURUXQQTP\R\Xa\QS[bNWUUTBSNP^MSLFMIGEY^ZPSbUVRNULTdXYR_K^Q_Q^ZVWYUKOSOZVLQNMXLV`NZQQL]RUT\QKM[PWSMQFT]W[SKJf\TQ`]d^OUCYZPgMUOZJIUXYWPW_]YGZ^TYSI]NOXOTZRPSSOOPQPUWU_YVMLWX\IBK[SQXUV`GQTSSWTTfbPYQd[L_JNLUHQVRV\OUW]RXL_T[XLKUUZWN`JXOM^R]`XSON`YST^YYMM\VZETXPSXRXVRUWWPLU^URYUENYTOaU_RePUYgPUKNSRQOUYWLRb]LTT\NLYNRYUZ_U\\Z\SKFWWV^SGN\P]ZP\YQMXNYWNIPVZ[][QP^OSWIOH\QbOLaigQYY]JLSNIP\ZQOYJOOSNZUUTUSQO[IUYKKK]UZZ^ZGQUPY_OW[\L_XYSMWWERXRWRSSQ^]UPTROcULUWTIG_QWTHY[VU^US]OYWMOK\Q\GVPOHW[VWYPSQUTSP_TTQQaYTeXUPVXZ[LSWYUIZT[LR[OAQZXfTSTMYZLINFVPYXMQSTUDZTQLOKWWNTRVKSXPPKRaONNRTMNTTN]NKQUaSiVKaWPQZUPME]WOIWS[XRXUUULPRPRWWNQTNLKNHON[PZUTV_ZSUQZOPSQPWWTKSKZSVSUTHXYZW]fVRgTR]NQZVDQSYSHTPSTQT^cT`VR^S_JYRP]NTWOVULZTQUWIUUZQNb[JU\YNUQKUUV]Rd_\WRSMQZMJTaZYbROTS\MQRRZVXPQSXRTWORSLYNQdH[ZQPXYPR[B^UYNTWbXZ\PVJ^PNXUZLSLMRSNWPTTPVUPKSWURVYPTPMQTXWULSSIcRJWYVTYVaKX[STLU^Q[[VVVQRS\I]a[PWRZZNZVRcVQ\O[[HUOYGHTJUU\PUSTK[XPLUSQGKYOJfSKWVJWWdUWQS_R]NRZLQNIITZP]N^M`XYUXQ_SUURNIJWX\LQNPXUQPRUIHUJ^SRXZTeWRLT^b`QXSQMMUONYSeP\MKRKQROUSPQKWRMMReMSNUWPGVNQYPgROEPSMMXTNRNYSSTWWL\]MOYU[VL\^QGWO\PmZT`LJRM^ZUTZRXPW\ORQLTVJPTUOSWUUaQZgV_[]YKTZTLTS^aPNUYQ_RZSUTHUOTSZKUW[RYTUROSMRKWZ]OVT]\SKSMTTMPZJWQXZ_XgR\NYZ\PW]U[N_ASTYU_OQWbOOXYKI\YPPLKQPRMWUJ^MQSQRKNZTVMYZNZ[JnVVSKW`aLNNYZLLQ_WPQUEGVSJQTJNZ]ZV^N_[U_UQXRRXNWPSI\KBFURVRRTSORUXS\\OJOXKTHPORY`KYSWRKPPQhRPQO^QVIVWcNJJTNRTMPgFY`RCYYSLaRTOSOTQUQEZWSTNIP_YI[MXdXSS\TX[K[QXUMPSVQVNMRVZTUGMVOJMOR\I[N[QZ^LRO[VKTLVIY]THSRQSUNOWVUZV_PUXYOOVJUMQSUUQPVKSWTW`SRU_JTORWRRS\YXPWUOR]PXUOWRXVVWFHIaS[[S\NPWQUTPJWYVWWKQ]TNYMIUVT^YLXRO`PZZU\`OR`U\O]JXWMQ[RQPW[MVKONZZTPRaWXYQPQTWQHJRUVSIO^[ZRVULNMXYSJZUVN[YYXTL^KRRPRUNaQTVTPaZaX^NbURRUXQTTTOUUMVTZXQaSW]a^K[YSTXRZSWZOINXROQTONVYMVSVONVMTcS^[NQLZZTQTZPMR\OLMT\U\SKXSU[WPKYIS[PUV\KN`RRYO[[RbY[NJRVVNQVU[TW^XURWLLKWMYTUUSTKULSK_UWMWWPYKIKLMPX\OVXTNTVMTYUJWQ\MJQ^QLWUTQQ[UXSJ^PUSY[RNXQNIQFM[XPXUXVOTVUVRPXQT^RRKPMeVPKPPK^O[LTNXPU]LWW[VJWNTYTR[OMIMJT\[UWNYUTRUFD^VRNh_QZZ\aGR[QeMeaSLKUQcVTSTS_VRNSVYQLRPJHWWYE^YMYT^[PR`[pa\CTaZUTV\DZJaFWE_UVI]MVJ`TWOX]\^V\\SSXLO]RXROWRaQOWT_dX[MQM>YJHbFQMRRNUPJSMXMP]JaSX_YdJPON`KVN]OTeZTVZPF^bRIV_UTLPVOU^T`IRRbUaiC_h^QSHIO^`DXPQVQRnYMaNXNK^NZ[YVhNU[KXTOZSUR]M[NhQXUa`PYJTWR\d[JOSVU^bNTPQUBYPTROR]Y^UUNYNQIPPYLXQYkXTQYQORSLcOaO^Y]ZTFVaN^MRNcQSMRZG_]`K_Q^MN`YMONUSVT_SLeX`]WYTX`dOQP`fUZZNH_d[QJHROVTKPUJWSSg`RYImQV`]^QYTWRJOSUNOaQLNK[W[WVNVOSQYVLRIVKRINKSSJO^BQMR\fNTHIKL]PQieWMSVOVSIJM[LUKOQPXPTNJTTQ[UWSWPQVSMUITNgURURV]NPLYViSLcUU^UYRZI_IUHNeMZ^VNBA\OK\OONe[SKPOSTS[QYZTNLcTUNLPJKK\YS][ZS]UMcVZOXYQlTPRBW[]UXXTSSLMUSIOaRNUPRJPCYTYLWUTOWLIII]XJ\CS\UYDN_OOTWYP`DOHRlPTUYMOUHTWLNPJYGKMQNVTXPROXGTPcNLPWTKRZONZaPdDRRHcEcE^]]TSQKYPZTZRPQ\RLeXWSHO\^TKORVUMSIZKUvQI_NJVQ\JSMBaVXPWHNSIdXNQDYOPSIPSTTQ^XcEOMG^X^[OO]RYTVJ\KUYPP[XQY`ZdOVUYUW_PPWGXR\]]QfS^QRSMTRJVVPNVTJ[PRKL[TSLYU\WPWOSZZRfTKPJV]YQVOR[T_LFSST^XQ`PPUXWZQ]OZYRPOmTVSYT\WPGU_OWgKU^[SK\O_T^[TZLXWS_G[RlY]UXQW``XNKW\[OYSWVYUOVSZI`\S_cEc_SXWMYU\JKWUTSLU[IMPRNXPN_LRUOXPPOPZQ]TWRVWSNaOTR^WXYRVJJcM\TXUNXQOYX\ORTFUZOSVXlVYQWLUlOW^Z_VRZPWR[H_UWYQWO\ZUTVP[SK`PQRXRKWOUKVQUSKRIE[EM^\S_SZX[ORTYXZR_OOWbYOD`RYUMMPXOUPVW]\]`PBSZPLMAVWR^LWRSWOSNYQTLa\ZRNPKUVNR]M\OKUaKJVOOPMNYWQPUTVlLQTVGPPTYM]LWQQMXSQRGYVNRKMPTIKLTQR\UVTT\RJeRMOaMg]MTTQZ[RWRQRUXTRYNT\QTQSVTYSPSPTTWRMOR]ZhSCMQQH[D[WRUWJOPQU[PMURZ]Y[`VTV]PFO[OSNXL_QO[VSWNcVNSRWRRQLZYQUYS]TQNZITZOYLVeKRSZSROTTVIUTHR_QPLMWOQLPPOUXPVPSMTTVR\XLYNSZUJ\TZVQPT[OMUY[YVQMTTOEQU[PUXRMTURXSOYR`NHJZK]RRTOLNUUTRYLOVOYXTOZSRWPRVOXELQ]ZTN\\UTLSOWVQRX[WUTcL\ETUZULRTHb[WTV]Q]ZTNO_WX^WUWPO\U^XVRQ\WWMPVLSIX[ONQTSY_QSHQ]LU]_SUVSLZOP]VUXONXOXMeIZ^[ORR]TPTSOTVXWX]VYNLGX\WPTYSXTOVURXQbOVMS\RoNSSUN[PJTZZUO\IUT[SOQZXOKeOTRQOXYL^NV[RYVZKRIQRYNbTX_V]Y][XZT[K[XU__JVOS]WPJMWPOUc]WbKUWRZRLTRJ[>UMSKU[X]XZaPZcQYSSNPQWWVN[ZOLZYRMTXSR]NNQZPYUSPZYNU`US]_VYUZZYSYVZWTX\[Q[UOOUYLTMgZZSTcPYZNQ[X`VQQP]XLUO^][XOTbYORUMWUVWVWZWOW]PXLQY[XXTOXVRTUWWXTPX\VQOQW^[VVJMSTERWYKVMOeVHUNXXR\dVUffJ\KTZTLUMLIUKVgPn[WRQN[WNNVNaV^K\ZVcZMR[_IOUV\eUNNSRKOIV]VbG_S[PPSeQWMW]QLMc\PDH\_V]YXYQVJZROZOQ]H]X\OTYfMOWGO[JRLRNZnN[RVPoTUMKVPOfNXISLNPRNWTGR^bdVP\V\RQQ^YR_SUcT_\eVXX\WSSfWlQZYWWPQMVOYVORNUYS\U_eROOHHa_MJZJLZVSMQIMPTWGTIYT\V[]SYZ_[`JL[k[PSOJYOTRRMMPFRZOX^hWSLLWZXNRNSTJUTYO^VTIPaXXSKX^dJ]W]WUVONVTVT[_JB]GVU`TTV[EUW[YYWdhISWSZM\\YLOQYYQsbiT]PVS]hPNZWV`IiRRRLXLKQPKE`RVPTVOb]QUWXSYSUXRVPOWU_RVSQ\ZTXYUQ\MSScKXOTYPQXNUXYVT]Q\WWPVVNWVSUY[TMRQXRVTUVSVQU]XSSYX]W\Z\NUPOVQXXVRVNQbSQYVSTWNQNT[PV^PQOQYPVSaX[WWSPWVQX^_Z\VTPQVZN[WRZ\WYWGQIWSCRX[RWSZWVNN_]UWZRTPR_^YLVQ^[ZYVURQ]RPPQQUVSZWXUXWXUa^N\RZNV]UV\ZUXXSQTQTUZSTNHRP\NFQPVUXXYSYbZVN^WUW^J^YTTVSXQRXUPUMR\ZQX\UOUXSXTTZbRNTTQUUVSXUWOWZM]WXVXYZWRYNUW\VVVTVSUW[X]`YSfXHWZ\XVUT^\XZYXYZQYUUTWU_XY`SUYSRQ][XYWSSKNYV?MNRTYOPOQOWXVOXM]]TTSPTXYUVUJTHUJQKQSITYK;QOVGYVNUQYUSNXRRS[[YPGTPMYIRZQNPQI`UOOWQLKXTQYSGRWWYQTOBOROLLUPVOUOHGZO\VRKR>URVCUO\MYUOUcYTOUVNJZKFL[LOMPGPOXQMOPWZyQWTGMKTbbPZYLPVVHK^NXWNKPL_NQOVLT5GRFNPU]YVJL^WNXMXTLSYMSRsWXSIQKTVHMSS[NQWRUHOVRQDTOOVU]ILQHMXN\UPCGNOTTR]P\XMWITVNGQXEHV`QNNKZZOVUZR^QRUROOMP[IDRmMWPXPMTSO`?RWZQZLS`VZ\WW_QWZZT@gPUTQLQQRWRWOPMVN[MT\TRXU\TPTbLNJUKTTOROM[J[XDBJPS[QQT\GWYTIUd[O]\RTOJRMQP\LOQVOMLVWUJSZVSVNYJXFZO\POYRPaMSPRTL`ONINHHQUTLZCS]KSeXQTVNYYRO]K]S\UP[YaXBRZPLOW[QNaX\NOYJ`[LPXMY[SQ_T]ITRSGQKOdXR__QVN\N\RRL^JSVaXQLXLWGQSPSUFQZMU^RRM_RbXSGT`OLIVRKYPbHQNZSN\QPTWN`^QWNQOaQbXTQ_\^TQOWUVgJRTUUNVZXOZPPNZ_aQgRNQlaQNOLUIWMRSXUTSYLL[M[QMRVYOEQZQMURU@WUOXTNUGTVQTSSfOab]^TPNWSYPSRUV]P[MVPNRTTWMZSVWO[Ma`^Q[Sd_OSNTVS]^NTTd]ULM]QSgSNOZXUOTSOSSOUT\TXYTMXdSRTTR`WMSXLYOUYO_RdWZNR^PVLETKSWTT[Z[RLULZOUESRdSSVVNRQP\QSJhPUVfVYKX`URTUUXQMQZXUY]]JOGI^P[UReVOXIVVUOfbWUVbTXcMQMG_WYRLTWPP`TTW\URYYUO]SOVQTZVFKSMMXYbUTP]TUNMKWURMN`MdRYY\RV^cMPNV\`QZR\RROOQRLSVJWNScWHPPPZ[ZaSVaXU]QUPGTSZPW[L[NPQLVeY^SNWPQRY^S\LVTTUNPRXJLVRTRSLMUPRXUOVUSLVZQaNQTNLRSZT[lVOZXXJJ[OOSOUUQMWUMNNRVUU]NQT[TQUbRZVOVMQZaMT\[NXLP^QOYPK^[[^OQVMRNXVNVWX]PTXZUWUROWX[PIMSHO^TS\QW^ZYTOWXQI_QTQNOOUTQT_PROZSOM^RMVWLTUUGM\QLUT[RXRPQRYNSOKNJaTRWP]L[HObW`NYWOKKXXYJFVZSTNTTVa\RNO]NWNUMRWSMUQH[UXOPUUUQKQa[RT[SOON[VKRWPY\UONPOOLLRUWQ@VRUcVUKSIPWVTTSYRZO\ZOXTVRVQRZVaOOVRWSPRMTRWXTRYPLVPSQY]XZNPNdULNYZ^VQOVTXVN_K\MRPPLO]WUR^KSiOPSVOOUZUVgVZN^ZYUKQRW^OOTWTMSSWVRWSYTQZMQVLTNNIXHGbONLVOT\SKLWOZNYIWOQTOLF_VR\cWQIV`QV\QHPPQUQUHN[\KNQJKbU[]USVUWTQV\TIXGPSKPSDR[WQYMeSPTTVPSZPRXVTEPERNSMQJFQ]SKgQUBTWFQRQMQWS]ScZN[NSPXVFUTVQPGOOUWWNPaWP[QXTUMSOYVQ]EX]SVMS]JVQWePXKSLLPTUXVQZVRWPJJHYKPMJMY\XVWSPXMXRVaTU\YSKNPOQQVWWWFLSVEfPLISPMTWRQS[S[RaNQVNORGOJRI^RRSSSSYSUORT[WSTMOMXWQOSRKXRRVSVRRLSMYP[VVG^O^MXRSLOWQDQUQTSUZIVPTQVVOVXOOOUPWYR]VT]LXWQOSYNQ]LTT]RWQM\TNUYLYPXVTWZaKWUHQYQMTJQ_]QMKQSYRVQZ\TWTVUOSUZZNQTUSVTKVTHNMFWRT[QSMVYOXQPJPRFONJTV]aV^_VS_LMC]QWHZLUQUSYQWQWD^JQRRMVPUZOQ[]MT[NRU[_THKSVTXYVZoWQJUZ[TYU^WLNJR\RMPQRUEdPPMSWWPSURRSUBTXYTPJZLLVW[`YNUOXTGWN[OGJNNNPVN]\MPP[PJYLUOLPGFRRUYXLNSLMZHRTXOUU[SP]P]ZXL\XSFXQaL\O[TOOPMMWUZSVP`PMIPQLRYPQNUPZ^QXYNTLVVF]R]GMK[RYNIR_JLXVdLQXO^SVPROX[VKXRQOVXQWUT[LRPKbPVWQQXXTSRNPTQZQOSXPLSPWSNZTJONUTVMKFSUQOLYJE^[YY[OOYQNRKVURQ^MHLSM]^RGOPSISY[^IQZT\NXVOZMWR[WKZFQSTYXOLOTRTUXLMQXMULXVPZcPQEUGcdKSNML\WUXPNTRI[P\fIY[PQIRQVE]WNUcLSGMMPLVM\OF^Z[LGZYW\UQTOLOVYROHPPQJKSVRO^YWEZHMLVZaP]VYWb^SJHZUROTTOQTT[iNRZTBUNUUKK?IOPRTZWQ_[EOP^SSeQRQFVH^LV[H_OPVOOITaKn\LTPLZMKQWPTUQJKIV^ORDKLNL^`XWP`XHV^[UNMSN\W^GVUUQaOXNQTPPXPXYOONQRWWNV^SJg[QTaHYS\OO^QNXOUcXM\]T]__aUHHOVWROOIPOV^WQCieUZcPMPSVVdTZGSTURQQOXVP`VZ`b@caYWREXEUP[TOZVdOLLVPWILQURXYRFSUJVOPSRKOU[O[RQ`PVUUP][^TUTLKPUSX\YRK\TWK[bH[QHP^ZYMO]^KaWXITMWGVQN`HFJMLT\JVJXTNWJ\QOYZ_MXRJOUOKSZ\[UOWHRVNYcXIXYOSZTOR`VYPYXSKVWUVMRTIP\XVQLPFR_PR\KVOSK[[XRUT[N]jLT\TVWU[TVPXVVS[UOOTJNX[RZPYTRYPDMYSRSPPVPUZKRRTWRRPVT\QIXTUTZYL[P]UM\UUTRJMYNVYUSJOQSSHHQRWIYYYEV]eVJSLXEOTPZVVcXHUNUPKMV]SS_[SVLPO[MWTHTXTMUSSTOSJMRQ\[VHUPURN]XVVRYWYYVSQKVQTRaOHbSO\VKZHMXF]TR]SYTSRNXSZQOJXP_HNiTYVHTJURZPQJ`KKL[RQUJDTQNYT[JOTMNU]TPK[]MJS>YTVMNFLJBXE[MSVXXMTNQTV]eN[SPZeNbQULTOMWQTNVXTPRP]LKQY[TQYRbRMUSYXV\SQ]WTSUPOO^P_TQUSWJY]_[RRPQYLWPQY\WZSQKT`LKRYQKLNK]JTRNPUQT]PVQXRX`SULMMSHT^Z\XQOXV[RQOXPYYQUWS`ZPMKOQILSPNRR[`KNRTcPSOUJ`F[OQZYOL_YUNMSVMMNHWSZ`]ZOZXY\OLXQUUZ`[RPRSQ]RSLTR^LNRIVKbQPPXMOUUSNRSFSRX[WLSUSO\cT`LdVPWZHZLTY^bLPPMNQRUX`Z]gR[RUbRhRSPXQUMWZSXV\XSdSQYVSOTUUIY[HVaRNTNZH[^WSYTFTJKLX]OUSSWWP[TEOS^QWPTTOLU_ZVPYSRS_VWYXXXZWSLVYQZQMcXPRSTVUUSETONOXW_VVSTTYPJVfD_MWS[ON\^NMOSOIOTXRVV\JOX`PXOQHFQRUPYQJWTSUPMQPXTTSSSQOOSVRUJbQXTWMZQUZHOWTDVSM^QHPPUPXYRMT_OSVOTVMPTUNaH_WVYVWOMJ[PRRX\QOJ]SROT[QXPZcLaHWSRV\LXU]ZXXQSPS]SJWLTDWMPcWQTPWW[WVWPZPRQRRXKpUYTQUTXO[Q[XLSINURJZST^LLRLWZSNYYFQRQP`ZIXQc\aNLeUSUSULVLJNUVS^RTTXUTUP_\URG`KeAXM]SXUWPKWQVTIKZWYMWHWYTUX^d\NOZW]\UTZSNUTSVORSXJRWHUV\KOIH_QORZIWj[XcV_QRP][PTUYaNMYL[SXLJZYaNa\SUSIHVfUVSI]RRKMQQQXTSLXQYQpRMZYZXMOQ_JWOTOTT_[ZRVNYNNNPVGQZRYUaSUSP`POSKSYTjLPN`PDNLUKZV]S]S__gkOcPLDOPPNVPIPLK^RN[YYYYHN^]LXQNIVUSJ[T]NYITYUISYfLJYKTZQIXZOKVPXRHVMQX[^IQVYRWQ]NRXVTI\RZLYOWNR[OTY[RHVSSQQaV]XMTRRMTUWGQVPVVXZPbMcdJNQbNSWV]LQMPWTVYPIY]VRTVKPT^WKL`b\RR`VVRXY[JMSO\^PUSQT[^TMYLVNSW`PWJQYXZRWONNXQTJSUKVBPNLT]ROKLVTJ`RWWYYMSHTN]PSSUTNT`WQQfWbT^Q\I`ZPM^UNSVWVSVOSbMXOSPUOLQXUYPRWPNOVKIYXYSSbIQVSSNRSJPRMYPUKXPLWXTMOT]MYGL[NPVVRLTUPTNZO\PYMQNUQZSYOWVOURUPK]S^JURS_ZCKT^OWJ]JXLXYWUWWVSJ\NMRGUVNQWMJUSUP\LORK_NX`]^SSRTWNKWVNV_W\TSSVS[aZTSQ^_P`RQVWQKPMTSYWLZ]XPYL[PU[HUSPKXXXQSNGRWI[MPTULX[QTQUVLPWQINL\URM\SRTTR[QRNG_WTSUWOVTZZROOWRVRZSZRQaJSNQ[MRTVS\ZQVSDcJVRZVVUNTIYT[MOUPMVPMJV[VR[WNYZGVKRQXTPH^_JJdEVRJVKTKKjORXVYPdY[HJSM^TUaTPZPa\NVGLKZUYNb^`XKTTQWKVM]OOdjKKTE]MZUSVYXPT`@LRSSMP^OQG_QTFJRVS\O_UIO^L`YTPaNQV\NZGWVIbRKcVX\SdZNORNGUN[YUCVMMVOUWYCVSMUFV\UTNI]QTGLQTWQGMTDEFTVJVQXOPZQVPQLOSUZHFNMRXIIYJ\]E[LVI^GTSPRLKQMQZLcOP[]HZS\ZNNVMUWSFcMQaMLTZW`WQdPVRSeT`VNQOQSPTPDMKOGMRJXRKYKMOMLPWRV^WRPUZJ\NRL\LPQRYLUT]XaMS]SPK\PSZRU_QSZUKMYSTURZ]X\P]JKUSFLZXXRX[J]YOTLTWVQSVSZNGaT^SSSQYkLTUVNIEYFQQS`^@V\KQWSSPQV^WQX\TIDR[GMYRRXLS^RRWOQJTSXV^[LPJPGRYUUTYPZQTHSKU]QTGLSOONNLXRNQKSKNOL^YZKN\aZQUT]WTNSHSTNZNQMMYQVWFQNQPLQJ\[XIQM^OOUNTOQePHONTWTILOTSUPTRNZN\UYSGL[GOWLUKWRTTWHPKUQT`RIZTPPMSHUZQPQMWQWJNIVOX[T\IMQ_UTSaJWQTUQZOTZ_YRQX]LOUMOYUYVLLFVWN`MX`OTRI^ROUTG[ME[S`RKTNS\F\ORKPTUQKRHSVPGWUaWURSLXLINNSYPNOQVQZRWQXUVX[XUcOVJMIL^NP^N[`[OHPSZTNMfMRNRRQRWeaSSRUMcQMMMUNQORVH[RcYSMNQfSMWU]\TgSYYPQXPWPPU_HMSORVYhNSNXULY=QWSQQQSRINT^NTVfUVFBRZOQIXYMQMbTKNTOT]KZPVQZ]]IrUQPLKJI[STXRSPNSLUXOSS_PVZLPQLNTLHPLU_UYRNOUOT_LSc\cPUHOSQTJWOIJSPZSQ]PSSKUXSTZZQ[PULU]LMRNGLNOSVZOYRRO[OVNXMlMTKNWNTUXMN[KRRZOMQbWXK[MXWUSQWNZ^QVDYPON\SO]HXKdPcRTUQONIVSIOPRTW^VeKNYQJVMLOQXTQUHRZQA_RXYOOPTWQSIlW^QSMY^PR]^KQ]RSPfFHIVPNZK]UXPUYFSLISKYPXWZNWdcaIRTTUOMMXJgPRR]aTM^LQKZTbY]PTMM[VQLVXTSVOVW\NQMYPTRQVYOMHTSP^LUOM^QPYTR[^LWR]XXPTWR]KQVYZMXTW]_PWS]U[URUUVW[UYOWORX[aSOTeTP[kSGOXTYISZRULVKRcQ\M@SOUMU\LlZJRSZ\XSqOLO`W`RUUY\XUWSTSQS`_YI[NMN_RJLSXOLZSWKSTQRTcJLUUZSKSSQWLNMWMP\QUbS^LTV\dPWN[XW]XRSTYOVJaNP[YWMcSYV[YYST_SLWULY\TSXPW`ZYNV\O\SMS[SPWUNNURWYQNRTQV_VahPUMaLTPRYQMSYmURfUXLVOMPON[RXUUVIMUZMNUPOZX[dSVTOISYVRZVUXVUOYUQPTeSNGUXRZMPWUUbTQUWNTULNUOUTTNQUNWNTOKX]XWTZUQPVU\R_HQZa\MbHYnXZOVWO[TXX^PZPPNMLTTQNUQTXlP`XW_PTfRVMSJQNXO]RUO]STTeQOURQYURVXPMQeWNY\QPQL\MPUGXSRNYXUPZMKWJPeYWINRS[VaZNJWVM]\ZSLaOH^VVUXVRVYHYKV_\[MROQWOTS__cYPRIOW_\fPKKO]VFjT[PWhCOHYOOPRFW`ZU`LSO]RgVNKJHZWQSS\XQQeQG^PVLYKLQPUVNTOPOXZN_cRRQM]RQNRQSTLQN\N[SV`[WaWcSXP^J_VMTW\WU?YUYONYQWLWTXMINRTJYXUMPPPRTRUTNZ^EOKU_OLLU]QVSHLSPJJNG]TJTRPNH`_YGJZOWJOdGPXOZWRRXVWZNOSXUYTNSVMTC_WSaXKTKZZVMIUQYNOO[\KKVQWmGRSbUVMVZ`S[S_RTPOXKOSJRXTYOWM]^bYLSRXUYVZUUVS`S]Z^UZV_PW[TU\TPHQYYPTYTTMWQbZUMURW\MZTNLYYM^P[OZKYEKUVW[OQSIPWZUO[SWXRVSQQQTXWHUTOPQ\ZXVY[Y[UURLUUWWUTPZLSESSOKKWUX\NPPTNT`L[JTK\TQTUTPOZL[RPVXUQNWZQWW[UONVUW`NZSWOPVPTa_KUY[RVMIVSSdL_KSWVQLZQQTTZRLRTQGTPPWPTNU\\QUSST\SVOSQUSXTP[SQOZVQTRJ]WTYKXSF\RNR[MUQVTQU]PWRNNWPSRTJRZTNRO[WMJUTRLQVOG_PVTQXQUVPNWWKWY[THdTWNUVX]RWVOTVONWZHYbKTMJR]PaUTWRNONXN[`OQWXVRQVG`U_TQKWVUOYe^SEIMUGTIXZS_U[MO`ZT]TMSKLOQRKToMXQPPYaWG]XOcUWKYbTPWPGIXNLEPRUVQYZ]ZHaUbMTPOJJYXTQWVSN[\RMST\LCcO]TZ_ZSZTRXPY\RVWZTQLL^MNTN\WX[aXWQWYWWbKH_WI[\TMNM^`aM_OYRNQWUTM[LVU\V[TJJN[RYVIXQ\XURLSMKKXVcUWL[X`Y^QRQRXZXVKUNSFRP7UNO`MKPQTQ[UQrPM^c[TMUTMSVNLN_QZVNOPNVMWJNUGOSNYM`]SYPZVLYWW\UNQ[YP]Y[QV^S]U_TTVOYKLVTZSUOXRVSW\VNSRVSTQNOIRPRRLIQIOYCPVQTXWS[PLRO_DKOXOMl_VLXN^OWWSWSVWIQSOSQTPOO]ZIN]\R\UNVYLXSPRWSe\OUVR\RNXRRMOVRPYWhM\YLXRJWQSR[ROJNT]\JQSZSSVWVYUKUWTIRcFYS]RUX`HNTVRRPSRTUWVWIRR]PX\KQQLZKWULZWXTTY_SWHRRVLMX_R]QHISLaTTUP_LULRhUKO[WUPJXKWUK\VPSXWMVSTTQPLQPRORRXSXNJ]]]Y[\ONZVS[LUS^WSSQTTOYShJXTMMP\_XNYVVUWTRLcS`WS[gYTFRYRVLZW[VNUSOMXVUROUXWWSPYTMVWT_UPZMVQKUSSNXRQZT\RW_HQG`TYTOSMXQYWYTWUGVM[_WYWdUWHdViL[OUINOVU[QTTV[TPXPQUVVYMUKRVZQTYWU[SKYP]S[ZVSYSOPSBQLL\RQHTWNWUcW`[PZSRPKGUUQYRPPSPYOHbU]VbT`GSbJTQKS^PVKV[OOOSXNXVTLURRJMVWZOZPQTVOYV[TKNRU_KUSJ]PUQUZ_LRXFWPRPWWVKQPVbaQKVTSXXHPWJNRWNcTYVPPVUT\PMNZOKISUNUYSKQGWQSWLINKSMOKRRWQPJUINNNFRQ_MP_LTYP_PXZUXVNQSKPLSSROAXOZNVQWVJ\YR[MQYMSLPOWHNNQXMQTUKXRMCGTWb[]KEXSXIM]MYKIUVQVYYJLQLRfSTSKUTMU[XUWQNUQLFCNRW_MTV_QSVNOXHKYM\TPIUW]WXSMIPLNZTP_L]YNRRWDRQR]SVPIVNFIXXMEQQJVQ^PIWOOQXVOURNSOY\PIXPVXS\[N_SLNTVT]UZXY\VUP`RQRTXRZWULKYX[USRY[ZKROSWXNU^XYRTWMYLYTTUW\VW]U^VSNMTVSaTGOFTTZUaSK[QNYSQNQcRPO]QOTLZWSVVVPVRMRQ_JO[YOVHIXTVLSMOZWVRXST`ZS[ZW_WSRVKNUZZLLZWQQQPPW\URRUbUHSTOSWMXYYUR]PTRUWQTQSNVaWQL[JWOSXQIJfZgSUQTP^RbYHXRPVUUSQTNYV[QT\MQVU[YaRRZWN[UPTRX^XROWWTPMXOONSJO[SSTPS\VLRRXQWKRQSQGWQ[]OUPWWTeMNUP]UPP[RSUP^NVS\KXTYSTXUKeQVUT]XJTWKUPSSZ\USQPKS\bUMQX]RTSPRU\RPXSOYYTLXJYUUQTdLKYPLSQJ]TW\[MTRPKHXVSWTcTVQMTMWN_TYTW_TPZdVZWYTTKRXR\I\RZRPMK_P^NRNURPMNXZVPQWYUXTMYVVN]Q]KRUNSW[XRNXNUIWQKT\WVRJVRYGPQ`]XSKWQLUOUUWiUULNUVdLjUU^SRdMVTXWORRQM[ULXZOUVPLTQOK[cROOPU`]TbUNVWQS[OVYY^W]\WWWR[UTVT^WXRXWZOSVQWRYQKSUPPUZTIYSPMTN]WYWMZ^UURUb_N\U]WObVV]ELUXYVKZV[MP`JaZIVNZCLRYKUaN[XXSYK[^Q[OUYFNWREUNT[TZRLRGbY[QVTPZVXWSMSPeRTSVHNQSPSYbY^hPNQQTTcpVOKSPTRQUV_E\YP_SPUOSTWXOWWVeXUOS]YSSZTgP_IYNQQLaYXQPWWSVOQWLMRUXXS_JZUXNSQTINTJUMTVSNWVVSPYOYXVWISPZSPRTU[ORQFLQL]eSU^XVUTXUQVTYMVNR^[SQ[TZ]KWFYPVRLPVSSOOZFYZUPZXJPPVU\bTOaYSTbTNR\BaXTUPQUVVKTVXKNOROZUVYLRFSJXXTSNEVSRSNVRQSNJR[ZO_QWcO[QTYMO[SWLIYUOU^NVTQYQJVOOUVLXRR[PVTTUTSWU\YGKPLCQTQ^YTUPaMUVVRUVSZY^QRUSM[XSNHSKVRM]VWIf_X[NPYMMP`T[PKMLYTWP]PO^Z[\QNZPUTXTTCQVMUTRLTPMWTm]UPTWVXOVWTQXMXTMUQYUT^NT\QQKXSQU\P[UR^TSNPZURVXLUNMOLQ\WTUQPXRaPMTOON_ZXJbQMPPRHGRSSSV]VNNOQPBLNOQNUKMTOWH^MSTBnPTJTVPURSPaZRUQZVVV[NLTZWZRHRPRNLTTPYVOPTUYTORXWQOQQQE`a[RW[ROLRXTSSUSMNSKQTONTV__QTUKYPZQ[TQaOQW^REOaWW[DLFVTNgTEWLRb`^JRTPWZdW[[OPZMRRSTS\QW[]OSQQIYSUIPVUNTTTMNWVVOMHTIYYGMN_fLQVMOORSLTYJSRTNMVLURN[RQQZOePR^R[SNQQBPNR\XKRPXZJTRZXMYWJSLS[aaMPSRYSR[N`RSZYUZIVYKTKKPO[UUYXLPSUYPWKVT]MWO^PKQSqN[FTbPYTKiUXY]bWTM\RPTNS>WPV=LIW^QQUUIOJcP_RCRZ[jKRZiaWTOWO\MXVbRsPR\\OLOWaQSMNPRDHMVOZMPQTRcXZgSSJSZKMKZLPQ[U^NO`MFiaUVHTHMPQSUMYM`UgQON_TZ_IPVIJJ[D\MXaYFKQK^NYX^U\WV\YIRVWUbRPOVEYF^OQZRROZY]J^TYOZWJNHRTZTEWT\RKSM\LYSNOQSR[LPECRD\PQNIQ_^QQJQ]eNUQ_[WWSXT\cOZRF[RmYMZSXNdTUTaVP;LVRJOPdVOgNWZZYRZR\TRIOTU^YBQXQY_PdRKWQQuY][ST`]]\W[ISFZMRZL]gMVRIVVT=QTKTNWcRPMUCWO_SQZBZJUKV[YTTSVMVgU\NfPN\LRSY]aWS`ETTbLHVUVN]RNVV_[>THH\SUKRZYTOLXUENIKVQYHXNFZRQVaSYTRQOLQYUU^^ZFZRSJMdJRSMUUXX`S]MUUTXPMSP^\ZJVPXWlQVILO\PLIqPLORNIIX\ONZ\VWVOYYIMPQQTRWTMNOS]VM[\YW]UINTXHOSVCOOZPd\^MHVG[VM[ZPUI_VOUUX]WVOV\UVOQWR^PL]PSFWWVPHRKUPIQNTRLSKOVJOTVRV[dPOQLPCRUMUNXHRPS^TWPK^U^PIWDURNXMKWVPRWUK]S_OVX^XIMQTO]LTOeOLPPXXZXO[PPJVWU\NY^MMXWYU^[TRVZbVQKVYQORMLR_NPWTUMTMORWFPaPTXPbQQRIZJVQRTQKRWWXQVUW^\RV]NQWQQNYQnNYOWNUUSVYMiZQZUXULOfPOIUM\\QWWVM\RUU`NOYSG`[]SVXTYX\^UKUSYbNRYYWY[V][IORWWFZJMZOZRKYMRSGUZRU\GO[L`VXNSPISTOV\\WS^X^aH^SPOUH`W]XRR_MNT]ESIVMXMOPXXRYUNT[XTRUY`MUZONK\ibSS\P\O^eSR_RL[NTPUOYPWcUVLILSWPSHTWXTOVSS\ObNNQYZUZ[R]VSTIOVJIRMPWVR\LXScWUNPQPN]UXTYYI[GOYOL]FTWLVNTPbRZbObUMM[Y\UUVMXNXOOSGZZKR`V[YISSQXOYXEUWVRRQMLWfSXWXRPSVLQUVQQLWR]MZUPPaRJKXXRVGWONFS\QZKQV]ZXWPYRP[QRZHQ]TQUOOPOUVS[JWDJZOLTTJPXSQVTQ]MPO]VUURYQSL[SMOO`bWJZX\WUQUNP]MLFUQO[@`ZYXTMSTLTPUQVQNKQEa]^PYMTQZSR[SUMUYUR[UIO^SVVNHSiZR[PJOJQQRSLOQ`QPZQS^P]O\QMPWLSZQ\WKV^NMFHQLaQ]PXPNUWiHPIT_WWMMYHQKRVbU_MLKa^NWVVSQKcWFRMKGV^GMWSLJDSLXVWR[TUTSTZRJN^_HXZSQLRQIc[TRYTLSTUTROFWTVMYPVNWRNNZOPRS[VEWO\TdOU\aPSSWIY^SV\S\PWPZM\]VP_\SRZXVT_cRNQKOK_WUWMKNQQ\RSXRLOH^KVUKZLVMEZOUHZZ[H\SL_HZ^VRU[VRFZWMNPLXR[R[c\R``_\S^^a\]VYh[bWe]QRV]XZ\`[XZaWUaSQF^Y[SVZRaVcWcWTTOTgVSWi[SW^Y_[VWZZ\`S[]MUV_dZSS^[V_\ZY_\ZVWcaa]a`X[RX[YJaUa_W\TYUNWQT]XbWY[^YTVY\\ZXTSWJRXY]daWWYcXXUY`UX/[WY`ROWXRR^dfVZ[UTZ\Y`ZUYU^_ZOX[YK[RV[]_[___WQVY_UU[`VV[WT\^\]XZ_bNSQ\`[]`W]bO]VZ[TR_[Y[ZX_H^OV[XQ_XTRW\aX]QcSacUNWVYbPXS^PP[ZUXaX[dU`[Z`]^KZZRYUb_6E]][]\Z^_YMTY]Z[X^`J[U]TYYY_c\P`KahZKKNOQ@WFVYHTVPNOTR`OSWQISQSLKO`aMgYSgRSTWINUDVOFYRLKaXSUbPNXlOTYRKfSOGTMWZXQ_^TLZ^URTELRPQRCQZVTTLG\XNSLTQLO[PTGKRPYLLSLJNYZ[_`TUKZRQ^eT\SD^KKVcGL^RW]hZ[HLVYS]LRIS]YPVSTTEM]SWQRT[RmCFURYQh`a^GHX^[XYdZNdYSXNNfPSPPGHLPRfXYVZZYJLRMPRb`KZKSPXaURPPOIKPLTJHNYRJYPKYPIJUVfVUSUP]NLW_TYVYeq[NYTTQOgRYJRT\^JMXOXUYTIPTNPOQbXMXQZXVHSLYTKQbQYMRSRRWVPXNJP3aS_VOVMaQJVOUHNZQUULWLVUVUPUT^NPPYSMVRaMN\ULWTRUPPQVRRUPSTQJNNOX\ZMINL_WVRTIKFNZQYXMQZVUUSSOMT^RNBTIX\NNTV_PPJNMVORUOPQQTVPTNPU]KULObP\OKYNT\PWMPNRTV\NQMYSQRhTS\QJLTaQVNVP\UWL\ULSSaTXMRSPZUUTIUMVWVPTN[PYX\\W\VGGVR]SNWO[TWTWVOOUUKLMVYXTKTUPQZRPWc[PT[_NOWSNWPQURfTLEWVQQNZV]LLWOXXZXOXV\[LITYRU_RX[VMPRMWYSWNZTNROTMSJTYK^]UTUVbZQOTWb_HWNNZXJGHHRNXRVURPP[^PW\\JPSPWYRPSVV`NZTLOYQSRTUSSLORYQNVQE[XPMSSVSPPBJHXCPX\Q\R[KTQd_VSJ[fZ^XfRUR^gcaGW`]PaXJSU]SMZZ\UIUVPS\KVQV`Z\T^V[e_]d_YJSR^MHHTVQ\MY\RT]YKRYNXMUXRVVWQPMKZYQOQMSWK_\QHM^]Y[RQSLXNSMZ]OXZHUROXQVWXKeSFSPVRoLX`WSMSJ\UXbK]MXXURYVMTYUJYRZRTSRP]SWR^ZILW_SOTOQR?RXiDYI[`WRaWKP^LKE`OYRaL[RPWVTbFRQSRGQ[IQMRLGQTPQViXVUIWXEWIOT_NRMXJAWTVKI]cZSGNOUGKhV[KOGOPLbLYHQPLSHRQYbKXOSNOS^ZTOTWtQXReJbOVPPS[WKPZHXQJGXRWZSl\VKL[SPVYbTTPTSHSFLHQYQTVWQ[[NPV`SRYTO\RSS[L[MSPKUOTLTORRQRRgOMTPRFTXQLLK]NZUM[RSZWZWVLRKRQZ[W[J]S]UVOYJXQQZOTLPIILHSZH\TTUSSaTZMLSWPKW][W]WYRPSROPXNWURKQU[LUYLLQKOZQMi\JJRTTTR\NeSKXUT]XVPQTXRTOUMeMQhOaUNlKTS\ULMPVQS[LSSR[USPXJPcO\TRJXTONYQKXOUNIdRZXUJPSQKS]QRURRYZMUESWOcRSQSZX[TP^fPSJ^W]WSVXaYQTUTY\Z\MVLYQ[XQRW`WTIMZTUUVTYKQUc[OMWUOOPV^ORX`TPPMYQaUSK]OSRWWMWS[SS_nQXb[X_KLHZM\c]Q[UT[T\UNeWQNLC^XNW\j`UXSPUXWQUQVYOSNYWSXYUTgNO][RSOXLKSCJdJYShgYRUX`SROUN\[PQVWRXRRG[X_VOfZUWYLTPSFOTOeWDUQ]\MKHMYY]DeOQLMT\bRS\KTZONWSUMUXGWYYPTNSO[TNZQYFPPUW]\VLJNZLKV]KSQ[[T\LQMTTVS`VcWUQLP^PNhWPQ@PWXSTSLHPKSWU[U?Z\NTS[RRSUVZROSXcX]]T^GbSUa_PHMTVUQ_SMVQP^F[YRULTLTJZTH^V`UXX^XTFOT`^[KR[T]LNL`WCI\QVR^OXLZYURO[RHTUKWUNTTBV^JQR[UbQXTPPcJRMSOFNV[TYY^`LSVUXN[HRRXMSXNVJYRSMUJOLRJZU^VPVTiUYb_Q\aUR_UQN\PRYNOWOQWWbWOMTOKYQW\gOP@ZOTSXWURRSTOZNOFaKSPSV\QLcXRYOUeJVYHRRPVZ\OVSTKVS\]L\\ULPWUK\LPQUqQRJFHCOI[J_JQJSOPVPRYSUNHWSPcS^S[V\PkEXZTNPRKZOSNRYXTOVOL^]QRfZZBMUJYXOPYNU[fUTYOLRbYQLOQX[PWO[]WQVSZS^RYYRWTUOZJYOWUYLNVQZTjSXTXR[\ZTTUQTY]amMZKPVUbVX]XIXSMORh_ZSQI]gOH^QYKT]PfOLQHI]JUQcFVVbRkPORTWQeLRN_WXSVTYe_UQ`UYSLRRI[QUhPUYSKKPR[LYZbNPLY^QX\Q]F[Kb]QX[OQM\R`URUO_VGDb]MVNEc]VQZVUMPKXRTMU^TOWMRNVXcR]ZK]dUXPQL`QSTeO[]ZiVU]YMUEKJPSQQVV\^KWIWZOWTX^SQSQZ`WOZ[\YNNYMMZQQPNNQUIXRPbJNZVZI^NUWZQSOYSVJUUb^QNNSPSRRUQXeG[XYK^O[URN]SUJT[SSRJIZO_SJF_]OUSJ\MIbQQZYZWa_LX\UMNPPZTcRMT_YOYTTUTR]FQK_KQN_UX]dMNHRTTOVUOXT\OORNLgRSRDNR`QSSYYTVKVU[NYS\XZ\PRZ^NON\OVaZNMM]]\Z]LSWR_TKZJJQ[PTL^PUVEKV`\II\R\QPMWN]VX^UZ\aULWMQQRSNY]QWQJQa^PYZPLYKj?QOXXST^J[\RSSV]PSMT\RNSLXZQVQWN[IZLMS]ZUJQ]PZ\WOYYaZWPPXIYTKWWKWRZ?dYVQZ`R]OUHM\XVUXPlRN\NNUK`]SJJQV`OQRXVVUY]JQZXXWNa>XRabEFdKMNQ[\bZQN\LVJNWSNNFXWMNLhMRSfXXT`I\UWOCW[SZ_FR^RM[LkWLKaTUQJWSL]V[fVRWSUhLUSJPXa\^[ZLPUUVZMSRSXSMRHM]PVZP^XQNPTPSJOW_PQUQYVQF[GVTcJPK_I_^ULRXTcURXY^\TN`VVMIKUaXM]KUTVPRQNZOSQTQI`LPRU^PSSRM[VTRGLXUIWSRPGTWQMT`MVZTKTL`YOJZWGK[W]QWAV\R@aUOUPTYMQNI^LOQMULVWNZQXcNS\NYQRKWTAV\YVQ_SPV[MPSVLR`PNPRhHYS[USUVVVUDPO]_\IJQUNfEZLTWXR\WL]ZiXV]WTPXHQSNYWT]NOLZONXWNKYTOUaV\[MVLYPZbWSUPaU\TYEUYSSL[PIWS^YJYQ\Hd_WTOQRLZ\X_T[SNRZRPRPPZTMYRJQYWPUTMQWIKSLLNVQT]QVQVSaOOHJQcQQOWWVUTYTOPRHUSPUTV]ITNdLTQKYSUPXVXZTJPLWUPVPhM\]VQLVXYR\`POQKYZbVUNRNSTR?NVbXXTUW`MMOUNMQHZSRMW^TP]P]SNKKdPSRSTTSGRXY]UHQS[TSYPZWJ_VSP\^UVKQQSXVVTZZM[XbWNNfT[MQO]JMR]\RIXUOTMOWX\P`UT\UUWORYVQRWTPRPT`O^TVKbU\WTSQZYTPTQJYREVRKRRPLZTTLKWWUVRRjPLZM^MXLUC\YTU[KVWNNQPYHXM]hXVYMP`\O`WPSQOIVRURU`_GPSJKZFU]MaHPZDIJWQSRZQQKQW_OPS\PPQESjKSLG\PMTaCUBZbEJVTO^TGMXSOWRQVQNT\XcYR`SXaPSH\I\WNd[Wa]\OQROJNTaXXXVYQ`O^JOUUX_TQVPS[UMQV`D[ZQJaTQS]NSVZV_IVKdXPJRPKVONVVUUNWIYVVXM[XW[RHNLOTLUQNXPGUOTZXS]aTPVYWOQSITTNNVWWNXY_LIZOQRVRHSR]FR\[LBVRO`PPVFKWjVW]NUZWTOVMYNW[YR]SUVPULYERWaVUKWTOSO[amLIWXSC\WMNWUWUJZOS`KJ_VRYMIEZhYSYWKONYW\UV][ILURYU\UXPP\RPOVOQSY[TWQQPWYOHORLPZWJR`YQVSWW\XYUQOHVLSOVNVaL[UUJVWWLKRVUQP[PIQX[Y^YSXVMXYR_]MKR\dVMTTFVZWLPQVMSNST]]ac[\HMVR^P^^dPIJ^kXSQVIQWT\NYJGUQJSDM_]M`\TTQ]dSO\P^RPIPXUhZLZOVNYUPMRSPITaQRIKOUbNXMQ^YPVKWXSQRQ[UUKMVMKO]YH\ZJT[[SPSXPTXRNLYQbRSSZOVOMMJUKW_XVNSWXFhGVZXYX]TXWSPZ_MMSTSV^SROYVdG_XLNTVNMZYYeUOYMSX_^XWUTT_MWK^LUKcXa_^cRU[VOOLJPPPTTPZJRXWQUXWTPNPN[OQ_OXUPWcLPXSXXTR\KXNUXT^QLTSUYVGLQMLXSLOZX>I^OMVW`MRLS^ZaSVISQZXITTQSORUZeOYTKW[KKONZ`XPPQdRVOWIUlVTXLX\TPPMd_V_YITFWZYOT_TSTUTVRQQVYVNWINT[GMQRJQTTITT\TRN]VK[\YLMV^V[WYWOPOTYQJRP[KZ_ZRSVFW[I[OIZPRKRfdcPGTYW\MPNOXQe\[LV`QOb\SM[PU_WLHaPR`YSUS]GMQX_WYPUOSIQT\WU`RQOLR]S]SNLN[VSZFeT\YWSU`QULNXRHOYVPX[UPZ\UZSQPW^[UU]WaSQQLCNTTKYQQPV\VPVLV^P[SSXLaVWRVZXbRXQWX[[QMWKVRVMXEM]SG_RIVMJVQNh]YNeY[\SKVUHZZRYV`RQSTcX_KIZWSVSTQbUTJKCQ[VX^KQK[^O_QSX^YSWIaNNNUSTRRKPVURTOUUINNMRRYOSPWQXIVdWPPVSLbaVN_WQ[]GTSII_TS]VaK]H\RePUQQ[gTOSVSUTFUVSNPiYSIYHTZWJQRSPNTRSRTOOIeXMMOQVRPY]QPQUU[[]JaXP[PYTMPTOROTeZVXXRRWC\VKYHQQZTRRIMYSUXZbO[R\QU`NaVKURVN`SMRS`OZOXQWTTKVRQTOImbY]USSSTVLTYQLQVP^GT\^XPNR[QWMOYUS_UXFNQJ[PaQ[NQYXNLSSYMP[V`NZTRKWPXTUP[I\RVPRSYS`PSYY_FxMUQT_cU\ONOPZXQaX[JWNWK[QOThMMNQYXUWWTSW\SZOOYPSNWPfZRPPORRVMQTUWNOYRVOWNV]X[W]]S\O_L[QKJYXYLVWOU]bFRW`T^LTXTUSVYZ`YMZViUFWPJTVUL_ZKNGE_QUWQEMW\QUUPXOMVS]PSSKPZPZXWS_RWMTO\OYLYYRNULbKTQQPC]TQVWMTRHYLR\aMMIMFcULNNZIWaN\VV_W`_OKJTWLMT\XRSWURBYTWMPSPQ[ZSMfnUURJgUWUJVUk[LUTLRQbNPZPSdc]i[XYZPRQLLTQUQNTZQGOOWVYPLT[`TXSTWU\[WZ_\PUSV[RWXJaYQRQUWVSMSNW[Uh^PaMbVJPROZTNUOWHPVSNYVTNWJVZS[TD]KVOJWSOOAZeVZ[`[`XWR`UTQTOdRXNQY]JVSURTXU^WbfV]TSYWQNcViI\TSXS`h_]SWKZ^JVSOOFO_UaRZRUWaQNQLPWNTPMdRWRSPZR_RU^g\KS]WQENbKERYOQPRLWJCN[HPSZT_MSdVROYSRWTORRTcdWJY[KLQV`UQOUKQaOUMVKLZM[bWSWTV^^PZQYO[MX[TEQ[RS`OOF^RWPQWPOZZY_PXRCVNaX_WXW\\LKAMTMT^^\]JRON^ZJLMSMO[VhRWWKXZHSONYIK^LTSZ\S^^\PTTPTRHWRP^RMUMU`R`N_MYWWMXUN\KSVRFVK_UWXbiWFP\ZaUgMLOR`U_TVR`HWW_dQUWNZSWRWJSY\IZTWTXULVXWMSbMPUNKQTUUSNLH\W`RWRSUMaQZTRSQOKPPUTRWPXTYERQ[\NRTMOLTOL\TYPQRQPQTZMOVUPL[RLIXRGW>UiNXPWKN\PJSUYYZbPJLSLPUYVWPNU[YNRJUTU`PYWPLYR]TPJPTUSZW@XTORYT\LHWdFPWDceXWSWRZR;PSTgORYTRXS]XPTTKNSOSNPRWS_NXTP_UMZOYKhM\XRWJH>MYXYK_KIUQO\WTHP\NLWTRRMb\JMWO[[aSPQOYQSlYU_QJSLOOUXSXUBVXHRNRVU^PXIKQPYfR[MTVTUZQ]WUKWoMRZSHQQFUFSVNOO\ZUTOXNcNEV^Y\EKSPXbWUOQdISbKSUYXNOOLZUKTQ\NPFOMKT]RZYUZ\HSULWUMOIhGU[VQTQVYSTPVWUWTNZYRQZOOKJTPUYWRN^T`NjQO]K[\ObJSYUIUZP^YVLILNV\cPGYWVJUYVTbVSTNKOSTUH]OTPXSNS[S[NWKPKWGYaVOUP]NUU_WLKXPNSYLRPTSRXWRSQLRTTS\UHW]_UO_EYXbO][PTZQ?PZQQU\MPZbTSO[OXjcGOKXRaOWRSaNTTJ[VR`QT\VXMN[XWiTQYU^MKPcNcXP`RPPdXPX\OMRRWXJOgYRKfKZ_QaVYQVU[`EXMSZWWPN]T`PVWL]RS\WOLZUa`[YPSVNKXSQ[PJYXXSRQW`SKXTTTTGObV[fOdWSMSJRUW`PR\Y]WPLRUSKLJ\NTHbRPKRXMWPXOKYUOQJQJSUQSUWGY^MbOOQa\NLVUQVcRRQQRbWQMUWT^TXUOSfQV]ZMFPQLLWWIWYMUQ[OdRPNoHVcINJUQZZXMJXO[SCZcOYUIXYRNIGNXWW_YONRSLPXSUSXTZUU[V[ZIRJPSP^SR^IZTOLaXZ]NEPSRXXGMNYTY]SQPVQVJSRPT\bPPMYOONTSZQ_VZVVeRSUUXVWYOLSO^SS\_LQZTSOSTGVUT_SZRU`TLWe][PP\NHXXI\WYJTMdYYbOXN^X[VMRZQOGUQ_JQXYeT^UNV[OSO^QONHOERQRaSQiVZ^\TeZNVTUZMIZUXMfKUSNW^SRh\WTOTYKZPNTQT_SYWXVVRLTVNP_CT[NIRKZPQLRRPW\SJMULWPUWL`PQY_\UKSWNPKXZSbI[WbKUYT]?YM^PNSeiTWaUV[M[UC\P_VS_TR_PXNMUNXMQ^[RLWRNSUAVVRTUPX[KVR_UZP]UTDS^HUOMJZLOQV]\KO[WWcP`ONNJU`NTUM][ZF[ROFMRZYWXOUWa[POTTYNl@NCQURGLYUVONOKZOILVdSLHXUQ_H\hSKX_YY`J]QXZ[PTFSUUOdJHUMMUbc][GRGVJIUK]a]SXTOBKVYQMQ`N^XJTPUQON\HKLHhM^JYCRNUWUTZX`UOSUPURTTOTL`NTQETR_SVX\U]Y[VLQO@UZNNUZQVaO[RPP[SHI\PDZW[RaV^PaA_S\UdLVUXUQRWRVKNR^JL[W\YRCWPSWXRUVZURW\SUNMYV[_UM\Y[[S[UWZYRTIJmLD^NT]MSSOTY[PTXRFYRQKWQbXSW`KJW]S^OP\S``IifPS@TQXQMKdbVNSEZVJUOVVTUTLERNQPPTRWTUIHWP\MeINMVTLYMYQTX]MQMKE`LZUTVXOYT`VIM]POfVR[UURLUJ_cV\[KYTVXfJaVNOQS@MKZTdLOZTZRFVMNVZOWSgeUTUTWT]MiTPRQO]ZQOLPNOP[[MJ]KQOQQYQOYH[OSDZXPQYSUNLJNZ^RKW^IQPSSYTJJ[]KWRMJ_LR\OZXTS]UcRRVVTUObZOXHPC\\PSLLGUhYSWbVLTdMTF]LaaOJcJXJSKNSZWKT]F]TT]NQVFFNZUWSMQQYLMKZQSUTU^ULXXTVKYVEAY_QOSMJ\PJVQQWRLUO]ZSeWSbWZdSS[ZV[KRZY[LVPUUVQVWUSYMSYf]_LJSQSV[K[ZR]T[VREZUbPSRSZTQSReSRUTJLUMLBGTNNTVJGXTRMVWDXTE\KP[\_NR[SQ^SP]I_Q_NU_N[QNJKJKOV]fPOTJMKQWQUY`PKMALTSUOZ]MOQPVJSTSTSLOHQUNdQZVNLTU``KUN[KNPQOXUN\_LUTU`U\SHUK\TNPWSXhZbPUOHUKPQ`VJ\OUPUN^\ZGTRRLQ_SNTWPUP]ThT`LQ^P^UOO]_W\TSXSOgNWcWYROT[GXWTTIOTNX\MNPPTVOSQUSY[QUTN_XZLgXbUYQlQISKUK\LZXVXPMKUGRNVQiYXTVVU_YN]ZYTGHUPJSKTSSLVON]MRVORMGbrQK[NNhKOUXVFKO[POT\ZXJZUZSCXUO^aL\ZaYPYN\TYYL[PSL\VVEH\I\U_VQWTORKiYQPYYRSWUP[UVSYKRUOWRZRYLHVMTJW]IMeYYPWZP`VWKORXMGOOOVDLJKXKUONVXKUNaUOXXS\_LYc[\RTOPPVTQTNQMOSWM[_MNN_TVNJXN[GTMUTFUSUNRPRLUWIYaRSHOVKJQHSFU[RNVXSJOSRcUUNVVZNR\bYUT>VPIWmMOUTQcVQGZBUSULWXRR`[GMLNVKSSRLTZN[YOWQUR_RMEY_LdTDXXRUV\GINMLYQ\WRKQXNUcFRCKQJUWMWRJWcQSHIRQdM^UdK_QORY\YIISUSFNVIMTWNQN^ZNKTYSWLKZSSNTPJVP\V[KNPK]W]TRVUMbR_QTKKQXLcNPZPWZZMQLVa]QOWNQIY[RQVSKQOY]LXWPOOJFYJ]VLT^RRSTPRSIYU\RU[FVVPdHO^QROSTBOSPWQXWZ\LOXEPjV`VMKNLE^QXGVRH\]gQZRGPLU[`d[Zb^TWNNbUVdY]ZG]YLJN]L]TPXRPUcXQNPKOYLQRVRRQ[WUUG]\PIOWOHO`NZM[VVWeRVX[c]LRVT^VOJMQX\SVNTYTSNNTIPSN[OKRYL]S_UU\VD^TQMeU^QRZ_PJPOORQX\ZYAVOPU>fNYZUHS`TWMjY\^ORMVYQZ^OR[TSVPUSOIIWRTXThWUKSNQIUWQXUKYP\HNRZRXUOKZYYUOLMZQSYRUYVYPRMI_W^_ZQTJTMTU]\H^SLNVjU\^SCQ\T]]ZURbdEYTINN`QR_UYZGX]XRQRb`TSTMhRLSVaT]RFWHI^cL\YbWMYRZSOQSNRTQUWMPURTVPYMSY?gROYPWUL^Z^PEK]OcWZYWSaRSWUMScXIb`]ZW_TUMPPU[LPYONZMSLXLQ`ORWTUJ^YXKU`QOMgNSMTLT^\JLO]KZ^QUUacMVWU_NFSPMW]ZQQb\V]XYPOKMNQNZWY]]W`SVRPXXVZZXUPPGGRO\ZXXINPQRUX[N`SKK]QVWXUYTOPQNJT_NSQ[\M\STcYH[YZSmUUVRPSJLNPRTUPbQY[[VO]ZUQYhU^d[b[SNf`L\MYWUYYePTUbSRRPQWSUX_UTVOXQXTW\UOQZOZGMV\Q[USNUTMWWbPJQTL[hLXXN\^UReXRaIZZ]TZN^WNRRSZPLPQkNTSHUQNRXR[[[PNSMMWPTJ\[WQXZL\[MKUT`fKOVS[RYOTKSYOVVRQO`YZOSJM_JlZX[HS[TSSQTc\TRWNUYTXjVNO^OXY^ZXNcLZSNRTQLLZZZNY^VVQUOQSWcTSZTNTWRVZT_NRNT_^QfIZ\SRLPRUWMWa_SRVNH^[MMUVORQ\ELRNMYKNW_[^NO\SaUUNOZXR`VHOVOVbVRe\XLR]]HEX\T]NVGYNeGRWlURNL\WQ_PZO[HUIGY]JP][RbPNLYVLJLSUTVTULaYZ^PFT[TGZSQ]_T\VAPVbW_PTW`SQd^J`ZJiLXO\NZVOXPQXTLOUTNVOQVX[PPBkaMPNYRKLMSU]L]KN]NUPOKQQXVVXL^[GRUS[MKTLRLNt]_HZTLZ^PWaJZ[UVSQTRLSPZCUM_O\NVWSQU`QOIR[YWGPWTU^HN]TXTLHVWSJ`NRM^OGFOaT\VRHUY\`NK[S^MTSZ[RKYPPfVSST]_DLXMS[JRJXXPQVbOaRXZ^PMZKUPTFK]iJYTUMTaL`RRQj_JZLYIKS\cZMhTUTRS[\X[PTKT^QYUZOSNJTOTWdbbP_XVLD[H\WI^UB\\UNM`QQTVHVWXMQZWNHATbSW]UHV_G^RPNYLPMUUPTQMT^jX\HUQNMVORMZGRXU[NGW_PRUd\KRME_X[Lc`OSQOFGR[CVWNXBX]YRORSNTWIKSUPMX]MdRWNcRL]WRKZLXHV]GQXZG\\TMUNMUQQUTPT\ZGMNRPSPJYRIYRKSIPcZRNVMYH`POQX[UT[T[MSNKWZ`KGYVWVTJJUZUM[GWb`SJ]TMQYR]NHRTUX\PQQ]YRVVUXOWH]]KG_R`PSP\UIXVY[FTWXbeZ^Zg\XXXVSJQPOYRXXPPXRM[eLMSROX_UV_VSMTMQJKXU^NRWUZIHPPM[RSHRNNNYYWaTYJPSUMVN[`MQOO]QS[RSQUQW]O^WeU[M]RNWPIJWcUdPVSS\aWKRLYKRN\YLYPXU``SRQZVQWYPWN[YMfU^USRV_[NPRY\]`XaXR[KVVPVOQS^^UE]NQSYITMMQJFNSNRS\KWURPQVVFSWZVWTRSSKa]WOQQCWqYTXZLYRSO^STPZWTZXPZJU^QU_bNhTWWSbOZP^OSRYQQhUcY]QQ\ZYQPPNTMPRXRYNJU\Y[QPOOZIU[[ITIS[ID_[XO\GUUWOWXXMPPIZMVUIXOWSJSTSUROgFOYH\TRZOUKMFLTTTOQZZSc]QHMLKVMY[Q\UQVKPNQ\aRM\PRY]WLZWQOMUJVBUZLQMTO[QYYB\YZOPaOQSVML[MXMbUVII\RPJLd\SS\b^SP^SR`MLTSVTQ\NZPLLN\KHXTO^J`XHNPYUNV_YKJSOWXQ\RMQR_QPMbQ\XTFVcX^YTSNRb\IMOPNVXTWPR^NLU\PFYSXVTNGRPUWQHMO`]XXJOETFSQPNSWMNTPHUOILRSNP`VXWJKXXX\[dLMfYOSZRTVRUXMKTWKVNHSVIiTU^V^PURRRRLFP[\[AQPUV_NSVYJZVSLZNgXlNJPURWKTY\XY]RmgMRYURYU\R\[KNX^V^PIQKPV_QZRLfPVPSPLOeTdPVUDY]QNTQBYHQXMfVLXQdQRITaZQUUUPR_YNPPSeZSRRMRTVXZQ_PVRUc>iaVL[`WH^PXSaQXRVDXbWW_YKZLQ_E`VXFQYWWN[JXKLUQR\GRTXLb`\QJKN]ZWP[TTXZ[XXYOVM_SVYXNe_ZTQUcTIOQZVWPLKVJWTRRRTXP[T^YWJFUUOJX[UcYXJWXYMV]M^UILLMYQZTM_J\QQ^JM^PX\GRXSG``ZVV\TK^S\OSYUNWWOOLTTUWJPTYUL\FYUWMaXOEL\OZU]TQNRXMZ]]\UTVSMN\TR\TRKSW[PRY[RWZRXONVMJ[cRSIQNJM`LZSLd_S_X\\HTTUXZNUUdP`UQNGNPXRRSWT\DNUOST]TLOW[QQMJMENUX^VRHTSVVUUTFZPOKYORYaYS=Y[XQTVXWWMVXZgO]OGNKXVbRSTNXF_UTFQW[Z]\LXMYRRLUV[ESKQTIj[YUSOQMdHST]OaLSHHMHOVQTNY]VPM[TRWMTVMONPEPXGSU\a\_TTZ[V]RV^XLTSTVAR[IS[YdZTTfTLSOOSX_YY_VNdOOFNPYSNWXYPIQKNWCHRQHXZlLXUSRVVUZSQ`UQPT]SUXTZUVOT\N[RLLQU^YXJM[RLOaKcLPPUUQOQ^ZTLM]YgIIUZYPOOORRgQQ_L_S]`WQ_bVR[^LX[^eJWTFKPHTTURVMMVK`P[RMKNYV^dRT]UVLN\NNXPNPSXNUPI_XOVXTPUWLZTOSN[^TeXZ\WWIRPJOUOOLKGCP[K[eN`RORUKTTLaSM^IRQQWTPURWWPV[XUZ>WYWdUZ_MG]IdLL_NGVQW\T\SY^UKIQOTNaFZ^NX[[QLWTHS]S`UeW_TRMWOVTVUXNJTdFIUPQXOLYOJSTTScV_MJN^JMTNUJJ_XQ[[SRT\TYPQ]R[TVKPPQPXPPRSUfTXRN[cOe\STUYRYVGZP\TOPFZgUOWJ[TM^QST`yNNJDLPMT[fTS]VYTUXXcXRV\ANQRVQa_OUUKRJSTUWL[QFCVOOQNZ^ESXKXVJQLQTRDLX][UURXOUUWKHRRIWPJ[MeZRUUQTUNeGUSNOVXPVK^AWZSU^WZKgWMVRBXQW\JLHdPTRJPSXeVH[SfK[SWR\QTEMPK\JKPSZVVHVPQVT^KaTUHU[TWURQWYUNZZWGXORS[QXVWMWTSjORQNRHrK\RWFSKJLNMWWXUS[SQSUVXNOKPKWXLRWTK_^P\YXMPKKRYSOWPPZRLROWJS\PVQXUWPQUSTTT]V`UWQOUQOLZ\MbQUTROVTJURSiOVXV]MRT_MTWMQWXXWRU\YX_M[gaRJUGMSTVVQX`M\]LNVU[LWTJUVVPVTL^M[aORcVYVXOcQPPRNR^O[aRWTNIQUNVXTVQURUnS\LWWZPTWTRJWWYUX`OQORUXUKL\QOUUcUBUMTMSWXPGYORVQVUWWLRQKSYFK`NPWROVM[Q\\TVSSX^RRV`RVOVaWXTcOOOVZP]MPREYO_NTNSVR[YYXPNZRbNKXOMSYQTl\VNPSZlRDWOUUTW_XUQYJYLJ^RWO\O[U\\gV]S[TUHOT\[ORPZX][UQNKURUYUPRWUVkXQU\YRVScIXQQdTZQRHTX\YYNQPgSLS\UP`TWV[GUYUUNI^K_[V\VWTQRVVVTRLP^ZRVHTZY_T\O][]WX^RLWPXUQYZ_O]VZKLOLPPQVPVPVfU]WM]QVOMSKXO^YYYTeVOLP^UVONRUT][XPaWRMXXWVZINUS^OPZ_LTLSKOKXUPXUR[Y`VQcRhOaRUXTOKJSZXUNTWZPZXb]R[RPWPMEQZVSYXVYR]GSUT\WWSYQ[XWTK\[OLYZZ_SS^QeU]RRSPL[TRRTLYZIIVbUOYW`^PT^NSYPUYSZORZQK]ZW\UROVSMITXTILXSL^NZfO\^WOUMIKZNVWOKSXXNP\RLNZYKROH]T``VLIUWNSJLUNQPQSWOYPNVXWNSNPT]LX]TJQGWQO]SRTXORPPVOOSXQL_M`N^iWPRESX^YLOXMUYTM^L_MXIFXSF[UTOVNVNOPYWKYXXOVL_RKPLZKBM^]UaMLWSLSXTZYXOVW]UTDWLWVTK\VMPHUUSQHIWVXZVONMZXPYNOK]TjL]]FPSLaVTRMSSR[L\NNVVJTLaTORO[bLSjI[LMKSZ_LSOPV_ZGR^YZZ[KPOaV[WOSH[U[RK_ZRPG^WLRSYOLRjcWXYQZPgSNRTcOVO\Q^PUYF\QXNQSOUWPSQ\dPOINTKXSTOS`MRPYWUbU=QYOTGSScIKQTRQ[PWQXUVc]TSUPN[V^ZMZMULYKLLNI\QTaTWZOJRQZZdTJ[[TNJLO`ZLYVMSMTWMKYZKZJ^RSYSOQZJRS_JaP]KKFVNgROWU\QOdO]]Q\SNRGYPNRROTN^L\QS_WVOYQRXSMLYTOVTPY[YOL]TTR]ZTQMUXNW[aW]VSOK^LPTNcILS\SQVJOWWOV]S[OUTPTWOZYS[OTR_]PXKWRRQ[QR]XOGZQIUeYYSRKTVEVLZSSYWPQNMTWCJV\LSPYWLMLWVQSLT_PKQ`JYb]TMSTMLWM[_YQZW`PTXORQ\\PX_OURXXNNN]aaBXQMFVNOXTZYNJPYVRHH[P[QVXKSQVJZPVJLKVQTVZYEZYJbRQOROUSPHQTONWQVMMVVFYPSSTZRU_M\_[R^JU]_UJSVT^]X[TXIR]VRJ[ZZ\MaPZ^IKYF[U@]S[YbGOVUT_NOYROXWLYPPMYJQXUZ^UQWbSZQ\NWNZGKYTQS]RPPKRMZSTQVRQUTTOOSV\^QkLRKSQVRPJMWJU`UTMRPTO\NRDXKcPXTWQRNaPZSUMY][VQ^ZQRWQSPX\GVTROTRPM[YcL\PHVUU[`NXTPUQY\O[dPQURYIJQXOOPUWSUOVMX\GTXTMPlPRQRQ\V]XOiSQXM[_YXQSISXQPMXIWbGSCQNRTVQURK\SXRO]SSRYVUTRQWUS^UNNLLEPONXLSO]NOWOTfZYYPVVTSVT^ZQXKLZ\[cROZTSVTKLUUEQ^V\NWYTR_SLLUWSZ_PPTUZMD_[M_\YSWQYWSZYVTRbNOGTZSUTLaRX[`QTXaQUaWIdSYMTR]TUUJXOPRLLCPSZ[RPYUMYVVT^`RYQXPaYGRP^Y[bLNUXYOSPLUMQOT[UV[OLPX`SSTWUPQSX_RZMVNcRHW]^MbZUVXXVJP[V_OR`RYOPOLOTQ]MTZWPVNYQIRXJRXSILSXUN\XROSTRXQ\ZRXP[UUIYTVLNW\^TRdPRY]RULR[PQRR[ZXPRSRPW_RTMNPgTR]WU[HSXRTTTTXZLFONSXTScP]VRS[PTSWULZ\ROVLO[^PJMQTT\KUcLZ[VUZOOORTLJTRPYTSHPR\ISW`TWSUPZQWGXT[WUMNh]ZZQbZVXQTQUSWQWVLZPRYTYULVLk`LVPOP[OOQT_QNNRPPX_RYLWUTUENaRKaZD]d^]LDL_ZVWQ_BHUTTRZVV[ONL`ObQKWIXcOaNTRZURXaKVP^XSSPOUOORTOPTPPQX^gPP[PVZPX^STTTPVUZUMSJPVRVNIUSPUZUVRTXOTJWSNXSZ[cNTJP\TMSTLKXOUT^ZY^UZUYVXHS_^NSTTZPHVQU]ZUEONUTRaHTOMYVLRXLUFRGY_PWSSYJLZ[OTWM]IUL[WNKWV\XW_U\IOPRT[CY[OYVMYaSZWJKWXPH_TS^Q]UURWUNT[PQgVPPQPRWUWMA^UNRWNT[L]RKQYWKZQMP[[IOQSRVQQPSTGXNSMML^K[NTNWLaPNYS[PNS\K`KORSZ^P_WO\SSOIUQ\MLPWV]XXUURLWUdPMVIXRVJOGUVKXRQOGTRENLRYURM]RLOST`WRRU`]FXZTVHR[YJUTMXGPOXVYRXVN^QVUOea\OU]XRXIXZVRTRDITQGPPSZTZTXT_XSMTeRRR[TI[Re^WWOW[STQO_K]MYQUUVQZM]TTTZLVOP[FXQUYaZQUS^QXOSRZSSJVVQR@QdONaIbVUMJ[VNXZTZVSSWWIN\ZIY]UKV[VS`NYPKR[YTNQJWRTcMXYQUOZTOWUGOYPV^T[PPfQX`RVSLMKWTUWPVOd\MSHWXMMSXKM^XRZXXTKUQTZJU]LVZ[VNXXKWMZRU_ZXJ]VZZJSWPWUOMXYSTVOXTURSWMR]Z_NOUcdNWUXORT\PQKUV\QUQIMVVLXZNUSSL]TOVV`TTRNUZ]OZOTZOLKZNPYTZYOaVDX]KZVMSIYZQC]Q`KOOLNLWYb]YTVORSIXVRWO]UQS]bTZQPOZPQOSPZLLRULQ_TO]Z^SXPUX[RW[SYLSOQYZOQVV\MRWLLPVWaQYNXRXVTZZ[S[QU[QQMWVbgRRMTWbRXYWNQOSTQcVbMJRVXMc\OYUMPYWVPT\TVZTXXZVNYV\RUWNRFXVSRROW]^Z`ROaLSQPQ^OVLW\XKTXUUUNCKLN\T`RLTVN_LPOQZOXQLTOXYUOWT_P_TYZ`dMPZTQhRX[TSR[[UY\V\^VQSJZXLU]YOWRWSVV[W[S\STVZXSj[WOVaWRVXTSUTSVYZbYPIVUXYLb^Q\SWTZ^rVQYURMUO`XJ^ZSU[RS[IdYJQOOOOSWXPSRhPWRScUOYKTLSNO\MONWQW\VWOUWWRTTPPQUGORKQVNUWiQUUSMLPXLUTSNRSN\YJSVZ\TPOXXRXLSTNSPP]MIYWXUQ\PNeNMITVUR]XRWQSRPUTR^DOVVUP]XMNXW_NWZSWIOQYQ\MMNVXJVYRUSLYQMT^M_WVVSQLRTX^SSO^X\YKLMhTQ[YS[YUSYPRYQZUNR_\XNUW]UZXZOYY?PT\SLKVIYTUVUKLN]YTSUURNS[P\LSJRZW`OTQUPZNMUTNTZbUOUSWNYPSTZQMLUIPQSOQYLUVWX^MKLXPWNVOON_VJVJIGVQWONaXT^\SU]YZ\XSGKIUM]cRUQaRWO]VLTWUTPR\ISSTaTZRQPb^WONNMTLUTN\XYNRNZVNTf``S]TRSYP[HZKPX\XiKSbVE[b_NUZQ^SUXTVRKhKSHMNSF[PMOJeZPWW_VLS]ERJY`ML`UPSTUUOP[UeYSbXYT`USUT]YMM\WB\ZYEPTNWPRPUITIRKJY[X[SXTXOiYMJR\RYX\RO_VUH]MVW[ZRGJHRVS[UYMOQKtXWVHWTUTOPY\Ze]QOTVOSjUY[]`VZZTQSW\QQKSYWPXU\FVSWUXZMOUUTSWObLETNMWRQX`]YV]gbPGNWbUJQRHQU[LLU^hVWT]L^LIXLJZYWDVTIVZaKMMLVOTT[PZWUPYLXWUIS^LHPSYQ\UTQ[ZQWRWPYPNXVdWLHTNV\V]UXZJIUOeUSH\WkcRPcPKQT[ZVKSPV]NYOLQOS\OScJMHIJSVLVHPSXZZOQBe[UFRIP\TVUPP]MkE\PL_JW\WFPRPbUS\OR\LJST[WWY\aKPVJQIQQKYM^RNZI]LMRGNLHQSW[NSOUURPQVNS\HWUUUMILT\VWJ[QNSO^VSRWRPPaJSSQTQCSS[OZSLRYOMTKNVPQcSSVORMSWd\JYOVNWOZVXRP]KLDNVY]UNQXN[UJR^OR_I\WTVV[]MLSI\TUOLTPXMTOS^ORWVMUTSSSX^UPZ_OgQPRRJVWZWbXJ]RKOOQXKEVFNTS`PMOMQVURUOUMYVWOHgP[OWYZ]PHMLRROTRQK\KQUKHQPPQTZW\SNSWWZGE]WZSOX[[SO\WR]BWOKPNRO[U]K^SKP\YMOPPT^LPaGMQSR[^Z_Pe^UPUDIXVGLWMSVRPRNMFXTMJKQZSYSNK]TEO_QV`YTYEUOWZNVVYTLTXVNhUPI\MWQV[DMJURTLSRbOPYQHTPVTE\QTJM]EWP[PTQFWS_MWJVPKNX]\NWN]UW`NWRS]RGYKXZGN]QOK\E[QVSHGMWHUV[NXMXW[PTDQSJTHXR^WSRaYPSOUGXMWMEROELG]Y\VNWZWXL]RZNU[^NSDNT]QPWSPTREVM\_XQRW^VVWMWXY`SPbSPROTJSYWIYNaMWUYVRDK]HUPKZOSXJPVWaKQSLTSQVNJPOKXVV^\URRMWbINKUZLKH]RRFOMOKQTQPUIRJIYVXSUO\HTLUPOa\TNNNFH\\SNYZRSaLMJYFOTT]OK]_^UUiVJQO\XUKHOPSURM]TRBMJV\FITWRMNF[_ZG[fVK]\YQLcQJQaJRZOSZ>UV]\RLK^VGJMYIUI]^UVXW^X]gPMGQWVRVXVN\J]RNWORPSOTUWP`SIMXYYPLVRWNTU][b[PRHYYL[\W[JNSDZMZZITW^IYOWMOQTLVTTUYPWY^`TOOSPXVHPURNUNHUKSR[RUUJRUNZURUZV[RTTJUT_SKL[a^LYSHLPJSUR\_JZXUWKUZSQ]K\IQPRQY\YW]OVVYFFVULeQ[ZXTUOXN\QZZX^RTSfZQMSRORNVYJWOOPTMME^PS]_RY^RV\XPRRXJ[XTUQRUSVXWVUWRQQYTRLQSQJVWUYCPUKNUMYROV\NYVZGZNJXR[_TQTYP\RRTYP_O[R\WSPUYPPOSUY_ZUSLGQLSLRNWRMaW]ROUJZTP]XN_KQ]XSRROYRIRHYTQOXYVZIQSSXPUMQ[ZX]qUQUU[XTPTSVZRTXXaOURW`SIWPULSVPVWV3RPU]MSUbXYTXWPRNV\VT[XPXRVWRYPXWPYP[YPXUX_^ZW[[SZR[VTVQPXWTSWS_WT`TWSRXVRRXYQSNUVQ[QX`TV`bQVQOXUSUVTYZVVUPMRSXU\WZ]RSZTVU\XRaBNYYZ]VZOYUOWTPRPTVYTTQ\UWU[S\KMN][N\VWSZYVXVRTUOMVWXcQZORYBKRYXQUUOTQPWZOXYWQ\WRULa\TTQXXVRW\RWY^USQ[Zc[XQRPRZVVKXQXRUVVY\NSTSYTVX[WTUTWRWZY[Z[NW^^XUSW^_SVXUVUT_X[TZOTPSXMQQQZ[`TPSUT\YTQLTOZRK\MWZWU^XRQYSRVXSSPLVTVUVTNVQV\VVQYaRW[WL`L[LZGXHPESPRTVPNBTNSTVSU[NPTTMQ\SUSc\Y^_T[OYSUJRXPRPO`AIAV[SZaUYV[YXKVWPNVHOLRSZjPVQO^fZKXUKY[XWWRT]cRRURVNZ\YO[MPSSMOLVV\LUNJQTYQGYUXDW[QTNT[PYUTXNZQ`\^M^\N[YW[KUM[TRZNNbULTNQPXUTZSSP\RSPNN^]`QQQ\PVHLPkVVRVW[TLMPUOSY_XTT]NW]RXQWF_VKT^XOPPV`[QWSNQPM_PM^Q_OPW[SWMKJZW_FRQlP]YKTIYTUVL\VZQILQSWIZY`[SWSQXNSRWUOTFaP`M^NKZ]UJTZSG[ONTPOQOBUXWVGSZLPZJNYTWXYUY]HL^RO[XJXMTRPFJXNQTRZYQ]SbXEdHQZc]VOJXV_[UMV[\X\VJUVM[WOVOZXWQY\W^RQLcMYOO\ROSRZMSNRUUYKIQXcZMSZS\BSaXPTXaXPMU]MV^ec]SMPUGGOSP\UO[WL[MQMOZ^PM^]PJJ^bWHg\V[fOQNbcZSNWVYdOOLUUQ]WURINOVZLXQJV\c[RSXYP[TSUbZHTFUGcPU[QV[PQWWXMYRMVJQ\LTQRMYQKLWPPZTC^RO]QTRLOOYOSLPPYYMNTYRQVVPSPZTPEPFUVUXUP[B_LYRRK[VPcKJUSKOTTTIR\TTRWWODORLSYTV\RXISFNJQ_XKZXN]Z]QUQ[SPKXMKRPUTTWWPTXORT\d`MZRF[YjQ`K_WIUUNTPa_STNUYQS[XO``KcTOINO`VcWgHQQWP^TSUWKTLMTM>D_e`SORXUXHTTKNL]YUQNNXQNXSWP[KYZ^Q`[SOM`VgNYWT]RTRZG[LX^S\\_QKRMRY[RYVNB`dPTNPHIWJPXTMNMQZ[LDIIaLXVNRKLDYeZ[L]PWWKJacORKN`MRORPXSPGPZ[VIMYoaOJRM[L\RXRYJXTTWURVSICbNQ_QQX_YRhSQYJKYSFRCTBMK]VXQSVQI@HbN[NJMS[X^YFRWPdVedNKMOQYaeTXRIeYPZMSFFWXI@^S@VNMLZ]XVLJOcOXMHKRQZ\KeNIMISQUcRPUVYaSGaNXQFS^iWXUOM\MLTKROSUaPYYTWNWTRIMVcO_GVUW[SoPMFQLKPAaEbhZPTJa[dDQVSQP>RUTSNPUWNX]PJPXTRYXPZP[ORRSWUZHZPQWSSOX[RLPKXO[`VPSNKT[]XZ[YTVU[QMNX]PVKXMQNWTIQMNTQ[RT]QUJQLQSOWIMXV__XPIYM[aMPMXNMSORWPSSOSVNIL^RKbWZeVP\^W\YG]RNWV^UZG\VRV[bXTWXNVO]SSXYLPbPUNHUSZVIXR]PS]SQUVQJHSLXTLYOORUM_QWXY\MTSUTKRRVY]fU[MKTLYTZYUb^YIWVUOfRMcWOTdOPVHQKX[NZUa]P[MWPXPQHWRRdQJVUSRVOWRUJX][UK_T[MVRVcMPNQTRTKWWOMZKN\]TQJb_YR^SGKWWTW[XWSGKRVZMZUPRLSIQRXRX]LLQOQNQPXUXXPPRKQVQWMPPNRQTOS]PTNSSSQSRKUSYRTTVTXJOHGMQJXMNPVPWHNNYPITUGUBIRK=WOI\HRLSUMUOKSPXTULXKOLNSTPPYVUVVPRsT]UGWMTRN`ZPXPMWRMVRMUOSSSQNUVQZYSZRQSOWaTUYVYR]QXOS^QUWT?ZLLLJP]RNUPSXTRWQVQLPWYGPUNRXQRSZRMKVZVGcGZKINUZULRNKXSPNNVVJPLS^SOWTTXVMQPLVKRRMQQRMQKOoZXZRYKYW[JTTbORPHTRSWOSWWTQFO fSSQOZ[NSdRQRIPUVQWZPUOPKNRWTSTLQKTJOQUVTLHTGQFTWWLT[ZTTTMUZOGVDZYL\ZPSRUP[[LUW]P]\`JSROOUXSRHcGQOS_UKQ[TXYSVLbWcKZ]U]OONOKLI[_ZMOKWU[ZKOPFZ[VLRU]UXTUWW[X[PFYLVTNPNUFGJ\IRYSUXLIUVZQPSUFUR^NHPY]^c^VNaJZ^SJ^QQOS\USBURZEYXZNMRSO\POWFOW\UMNVP_XS]ZFQR`NKNK]NQNOVVY[M]XTLZOS^UXKUKVV_NKQPTOSRQFQJ_RUSMU_OSVYTOb[RH[VXRKYLTSYJaP\^XYVS[\\TWLQZSOQPYRP[MTRJWFFWSWcUYJKUT\GUIWSbIQWN^MMVR]c_P\OWR[SN\MSTRXHTYS\YXUUWOWQVQL[\QUURSMYYWFRQRRJUYHRYHNKNV^VSeH[CLY[WLO]ERPOP_bPQOXUSUYM=UOZSVHcdHIQPQYNZMP^WWWJuNEBO\NXG^\RTXU^WQHM^L`XTXQRLVULWUTC`RPEgVQ^eDOUTVT?XY]SNRa\QVOZXNTWNVSXVQQRMO]SY\T\IOUSNV]SXLYPX\[WMMJK[UcOZQ[P[TZIVZ^MYOMYY]MUa>QHcGUKSM]SR[`QXEQMM_LJBUW_`ESNTZIVF]`QTNW\I[QSMPNWOX`Q]TRQRPQVYK^IUSSWPKL^WT_KEaRROISXNVDUX[QNVQVYYVS\IVOS^\RQ\eRPV\TYUNPRQ>NXI]XKYXJQOMIOVSGQNlVbSGSRORWaQ`iWQKQPLPXRQ\\GOXLRPQSLO[HOXSMMJSTQVNOSa\KPREZY\QRQ]PVTZV\^RKQYXQTUXUINXJLWVdULNXQTVW]THNcOOPPMQWSHROKPUNTQVQPZKYUcbTYSVRN[OJUSWXWNWbRSZVQZgNSN^f_^RIQRUTWO_XjPJPMSMPCV\UP[UHVUTZWFMK^NEW[MOYPgKWZUTWbOP][QT[SIFSPNUU[a`OQTXVWLPPOV\UPMHXWSP^[JEYUUOTMUVSNV\fMX`Z]TZYUQMWLT[OSTPNRYVTIZZ]QPURXQYUQESPMMWVeSTPNWJKXJ]WZKX[I][[PSY_PXVUZKS[O=RPjWWORIXSMOY`XRZVVKMPZOXPSHYXQIWHPZLOMZVWSPbLYQ\Y]LSLOQKWTSaU`R^ScX[c\jd^T`TQISYLUKXVJHOLXUPZTRPXSJTZTPFRSKSXSaNGNRXNYXPMVKOIV`WX[R[ZQOZPEdXQKUQQ_NRIY\YSP^TKKV\TMIS\SNQSRIR^KTYY`VNMRSMUUNZQNCK]PQNPULQfSKaYXYZTVVPWR[MRZSUGFVZTWbSVeUUOUFcTagPSOVMUXTZKSEORHVP[MUWSRNSTPVSLKNCLY^XQTVUNN`R[OSRRbZLhWVSTZ`XYWITNjPUWXKUUOGI]XPRGNVT[\SUNZ^UUUOXPPZXd\TKUMSPUOEUNSLWUXVgYJEQTZOTYdMJOMT\YWSVTTVMWN\UOUYW[PSSP\URVVOZTZSQTM_XVWPXY]RYLTQQbRO[TRSM]dNX]RPSWWWH\RRYR`PZRKTQYeY]W`MMQSNPQK^XKXIQ_VWUIMH_ObUV`OdTNO_OKLSPPRNZNXVSQYO`NO[QOYKVRHYLLJVQ\IZ`WLH`ZIVVVO[MXUULZUVNOSP[SILFT]VMU]PO\SQGT[OULYW\NSS\Y]gRSbaVVDUO]^]S_XYYXJfNS[NtPLWKE_aLIhXQTRLN]PORbJGORbRIZUTQUI[TYUYWVTUVMTX[PdPfWQR`LURO^XQMOII]Wa]LZ[ZZ_T\WSUU_QUXKSUQDUEKc^XXN]\`[QRM[XY[RLJ`TVZY^URceSOQUOSSHMQPXYVN\PLaKZNXQNQaRPTUURNWcaQWTNKZWYKYZbWTLRWYQQPaRJQL\WOPUVVU\`MPVMQNQZc^YI`CPPRWUOaOUMMkVWcd_WLONNUPYVQXSXPYO[Y`R\NXU_TJmJMX^LKKKNUeOPIMQSXUVLVVYULT^XLNBQYMQUTZVVMXZMK\SPJNPWOSRKaTMO_R]XYRK^JRRTZZ_MCVLPVN^SORVILQVO[T`QITVbLL^RZPXWM^XD\VX]IRPKRVZNQPSRH[^TPWJQKS`U]FUZYUTW^IJQdNTRaYXSMHTcLSDXSNW^ST^ZWiTHDeWR\D]]WH[XNeVZY[TSVLSOZYXHQYS?SZQQ[ONZUNVQETT_WQZ\]LRKPKRWXXZMGP_SWSK]hQYLTPV`U`RVNEYbSOLTi_ZJ[HSaL\dK[R[T[]MSSVNYXLSRYZRUVPNUML]SVWTSXWcQQMNTXL^UUYMSROM[UIQRSUZYSVXVXWZW`NOTRQ[SX_MTTSjVUVN[TZTXTUNYRUMWVIPSVORRT\Y]VHRYXdQTMXQSWEQVLRPIJTOUVU[XUYXW[\TQNYYNRWMZ^UWWXSR[QRRiPRPOZV[RVQ[XQJTU`OIPYKZWbNQRU`MSXXWQRU`N[YQTOPPaZWUKSTYWTSQYQSQOJUUPXMVUTY`[UZXQ\RYZ]bWO\QYUQ^PYY[T_OHTVXTJU[NNTUNRVRN[RQW_\NWHZTRM[SXTUOXSXPRUMXRNRLWKXOM]PWRNSU[`URUSW[OSZZUXVONRN_PPTSS^JTVLVaU\]TZN\SKSTYVMWVOHLZQUZV\XPSUWHRYPCK\OJLKYMLVRTaSTVESLW[XULWXMPNJY]RQPYZWT[brNMTVWILTXa_OQaZQXFOYTF_X]UNPWRRUPVK]TZVX]`erV^WPRVTPDMTTQS^HFXQSGPGV^PDSRXJO]XVVSZRQZYOPTTGVOTGSQI\LXETPMIIQV\S__VVVULMfGWeSWRVIUIGPWeNXKP_\TZN]C\MLU^MbhRSVXS^UNGQPWR\Q\KSKTWOVOXT\SSRSbLZL]PNWSZPlUUVU\SWOP`LXR\UVGOOMTQUWXkTJ^`W]TLMSXSVVM\WR]VUXSQVJJNVZQJRFSW\YOIONISMPURTZV^[VZGLSGJT_UO_ZMSY]HWRSNEW[W_OWNEZVVRTDQQJYKL[R`VZJT]Q`b`eOYeSUFV[HIPSNORVQJ^PbKP@ZTSISLTk]ZVMY[PL]XMOTMLXOVSP]ZXYO[VYUWGaLG]JNUS[S]DZTUZPRXFUGGWTVPV[\HWQWUDdU[TQ`MWZO\NLW]^URUIMWQJZQMkJPURKG]VX]ZLE[]VRENMRN\I\SGRYGb]XP[HSRNWP[aPTZHOUYMS\OTSSQQRPOJ]dLT_cVRULWFMX?RY\YQYR]SSa^[WTTQMYQVVVWV[PRTUPLT]EVPMUYPMTVUSPWMNZZbZPKXTVZPXObVPXUUZTNN`HXWVBRSSTZ^VTKZM\YM^TJTL]LNMZVNVRP`NUFSQONLOQMTXPQHQOSQTQEcO]DRSPYTGKNOORNVNgWVLN[]VTE`WT]SWUXOROPURXRXWgV]NJVPX_WQNLSR[WXT]WLRWRXRZU[bTNTSQS^PYQMPRQTOFNQN`RFUYWOONITQM^V^VUUJRYSYRUUPPNQaWTQTSTSNWNPMTVRN\UJSWZN[YSESP[VUVR`MUQMVQNQJUSUbWR]VW[JMVPTZHQYSUaYQ\SMUPWfKXTZVWOOTPQHbWVIOSYZT[[UbS^aSOU\OKeQQRW^YYP\^KbUPSYLFHYU\bOHVTR]]TKMXOTTNFPYRVRSVSKN]OV_ZWURVVSYPXNQV]LLRTQQYZXORX[XSTWLRXMVOWR^NR[[VTWXSUZRQPLMT[TTP[TMX_OXQ[NRNPcSZQOSSPN[NRHQNYTOYWXWQV^Za[ZcP]QRfbPSTQ]]XWVPYOLaQYN\WOYQXNVNTSYRQTRN^WXTETMSWNRVIQTOW[WVSSOWKYXIXObROaNT\PJLQMHYRUIUkORYPF]YYNTXWSPRYTXZ]OD[PXYW[W`FOETTUORIWdMO[PUbVVZQ[NX`YZ_MTYU\RQRUNSKTUOLHOTQOPKRFVUN^XLX]XQRU[SOXQoSQUkLZZ]UIa\YOV_WRVJaSLLULUQIRTYOZNYcKQUQWPWSQL\\^FMNV_MLGQWNVV[P]`ZTT]PRZN^PPUQXSHVNTVVYS\RSN]ZNY\KLYTOOIRONId_LTLXPM\hYOWUP`XWWNS\Yl_TT\R[TUYfWYe\VXLQS[NQQSRKVS[HXQUOjRPaKOL[RS\UNTQLXd^RUTIcZL]OVLYRQTW^[WTXZXGOTSSWiY[UHPU_Z^MSQSULPLT][^STVTOYKNCSLMJ[UP\XO\LSLW`aWUSTLL[PWZPQUTPSQMOVGSPYV[\^[VSQUXXMaTUa^ZWRVNaQRM`RXDjHbSLXNSXSVUUIVTVURUYWSNTUeaOVPW\SFOSWXO\NNQ[NVRTHNWMSMVUSWQTZMTKQKPMT^M[Z]SaQPRNPVY`ROUPVTRQN^QYSQTZM[LF^TSPTgMRRFKOUULN\YUHVZS[Y[`IOYP]]RRQVWeSTZXMdTWSXPRZPMPT]UcNDXIPYQ]ORQPOZMaLPV]PUT[UVQMITSR\dXMY`LEJ[UPS\S[P]UWRTXN\RPXV_UTMUXOZPSPS\\RPLKaO]WWWVe\STQNZTWQOSRYULXUVLQNM[T_XbNLZKZMUQM\Ec]VRQSP^\VV\V\QRRS\MTXOOPW[XZNVTUNYLRVJKPLNOUobU[[NTUQLQZ_PNRRQOT_aZU][STMVQQOkZUYc^TXLXYKNLO_UPSTPRRVWdRJLSZPVZ[SKZWXLU^LKTXX^TPEJRWKXJSXUTUZLcLLOU[SZTObR\NV`WJcZJcNRVHLLaMXQ^PIVSZJT^ZRPT\TVYQ_UKYVV\STT\KT]_SXSKUTPX`XRQOQUIeRROXUUU]WVSZN`Sh_KSQMXPN\W_NQNSTTZPMO_XPRXaUVPNJSRJ^WVRXVXRNPOVVIHTOWZVSOVWYRQ\ISZ^S_[SNTQNZROMQFOMXLPRXQQZTPTW]QZYUWSOS\PW`SZMMNTIKRTQXEZLT[RTOZNZDNGcIg[WNPGONYUMNRZUQRb\OY\QQTRObOR^ZR\RMJPVTPNST_NRJTQbKWQV[SWYIIOTUWP`S]UWSPUVOJU\POTULZSSZSYPVWU_WnOTVPR`TTZTWNORZV_GRQ_O`TVKNRJMMNTRYLSYQTVPNMRMdSQWUQRO_\TU[ZOQSTbU_QYLYUTJUTXMRPRROTYURLNXQUOYW\\TYURLPLMRMaSWTSRO^P\YKQNUXXWXQVTSUSPKSVOLWQ_?]YMUYIS\NPaWMSTRYY^XHOVV_MMTNPMZPO_KLNTZQJVRLVTLR_SSZUZXSVXNSNVbXJXWYWWTRVP\UNTPYWW`_RXQJWS[TUaQ`WI]WPVVLY\LTVVM]XUNVWRTSRPTQWWSKPUTQSZRUZY`OLTTYRJMTRYQ[QUPQOUZV]^WXTSRLK^XK[XPUUPVSZYWeQNK[PKRSK`YPNPbTTTURH\\TUJX^M[KW_aMJTSRTL_RPTVWW[W[LZU^PRJURV\JPURYTTRSJTSaaWhPZXTRQYPbXTfPQPGZK`_Q\VSQYMS^QQFUTNUeM^UPISS[ZVZR]UKKIMNYINPOKT[ZUV[IN[NHZOMPTX[OSU^jTbIPUENFQLKPfT^\XR\PRXHOPOMUPV`]TLUZTVPPTMRLCSNPSkSNbQZHSQXUWUITWVOSO[TSOSMYTNOUYNR]fXSLOPP[HZJQLOKTMRRaTYQYJ_ZdPU[ZM\RSY[TbMSQYOPKUOYRRMV\XRDdNZWPO^^KTWXHY\QWQ^]YHZNOPYQQNQO_M]SXUJa_]]LHOMX_VFUWXVQN^\FONYVLTN\I^WW`dPTQVdVVULOUSROHSNXQZYYLOXRJSOVOVUUSUPWQ\IRQYPPWXRS[SLLQV[LJeRJZTQZP`TNUY[UOPSUR[[^SMRW\VNc_^KQOHSRSQOSSMTUVL]SS[XPVNRRRNOPRJQQKPWNdaVPZMZXRM[GK]M`QX^GS[JS]S[VORTSLVYSWX]SWSNPU`SYPW]VRXS`X\Y\TUYUVIcRYZS^UROYY[V[SFVZQORXcR^OXYTVTKY`SZKMVNYZKSMZaY_LNZUWOLSXOX]YSKYRVaQOTYX\XPTLRVX]PWMLYYRWXOVOLMSRPXVHQTMQSQURQYMXNWYYNKTWURQUOSSWUZMQNOTOXXWGRWNOwJOWRQKGZ][IUSRMYYQWT_SZL\\RHTYLQPYIKMNS`RZV\\\ZXUTgWUSSe\ZOMRKXPVRbQMVPMLSS\RJmQd]OOEZXWSWZSYRQQWMJSdUPNPSRAPNYVOTGKKQYRYWZSUJSFaXI]\O_NMKMUQYI[T[bNJWPITVQUMSLW]VZRFPQaXVOM^YU]RX[K`WPUUdSNKMR\TSV\SOWRHWNSOVPQRHaRLOIQNNZPNHWMMUJMPPX`OTPU\KOVNNWT\MNOMM]XXSYQWUPNQR]SNV\IRONUNU^]gKULQLRWPUZMITMU`W^RcWjPRMTTXKRVX\QRMXUXNLS[ZTLaOWUNZ\[`VYRWSJJ[MWNNQVXWRUN^WL_CV`VWLReZTHDPPONPCNUSPSG^GMT_hWSNZV_OOUWSQkKVLZPQN[LIZTTUKVW]RTOS\LVWKhHLETHKJOSYW[T\P[FYULVKWXIMS\SYNQNYT]OSTQPWYSRMZRY]RUSRUUTV\LYQXKSQZKMfVUKT[PNMFNP[VE_SUXGQQROUXT[UXVNRMQ\MVZPULPW^UZJKSWSWUUISX\QfPSMNL_aWISXJ[OXOXU\SJSTOXPGTLSUXUNUOVX_NGKUR]RRYONPMTQTTaWPP\PVXOXXY]RULQQVUZRX_`\LQZ[^QTTTZRVU]NQM]SLOZIa[SSVUTQSVQPFRQXKKPXYRPeWTQLMPKTKQSVWOXNSQPQPQVjRVIQLNZY\TeZEXSRPPSVTLVROYIPMKXST[OZ^PWUKRKT[_OSJWFLJ[MWVNULc[TSSROJYONVOZSbVNULQF]SSeVHVRTUY_^Rc\^NZNUXQXPJS][US\rQaSLO^MYRTQXVUOSTRWRiXKQX\SYS[aOWLRPQWVX[Y`ZOKNST`X[W]VUXR\TKTMSU[PLUIRNRSXS]KSTNQONQR^TNJRRUJTUPZWZTWPYOZWWZSP^\VUH[QS\NPXQXZVUMXZOKVTKMSPUOZVLTTTaMKNWUNd@WP\PSOUPTNSZVeMYSUTRWZTRXLMbTVV_QNVMQRUISOdO[\XYTJQTT[TdR\SSVTMQCWSTNJZ\[PTY\NVXTOVPXRUOLcNRPUbQ\WSLTST`MTSNM\UVQQ_QNK[O\]WPMNRMDNOTKTOK^PVQM`SVTOPPNUNXZVUTRSYR]`WQOETKV][ROKQZNQLeRWT[RUT[NWTSPLJQR\UR[S[RLMYWM^RQWPYQP\PWTUZ]NZPTaLMLMTJHTYNTXUWTZWWWUVT]QOeMENYTN\_NXRXMTZBe`QVO]VXPQOFQWV_gVNOPRRTYDRZPdWQWRNQ]XYUVYeTNQLWVWPWNDPXLQTRWVURPSL]S]KOWTLLJSSVYK^\XMSLKXNRIUWT]JRSVRVV\Q\\TQNZYO_QWaOVME[S]PSWWS^NSHUNNSM^ZXOPQ\JfOU\PVZN]OZSS]TLSQTJSXXLJMW^WVbEOSPKeb]TM`OQQMKIVYjTRLPTCP^`Y`VRMQYRKMVMUKS\SOLPI[Q[MZMUQS]`TXP\WUaMUTPGQMDbNRYR]cJQ`HYWSNSIMQNKQKQAZOXVTFIZRR[NXZLSVYXVOUSUYOS\MPQQROPPQ`XIPP\PWRRTNVSZXTQTYWVRQYIILVgPOSMMVPYTITKGD\HT]QOOVQMRWNXHPQJP\T_VVWYLaM[QLfURSUXp\[OW@MTSROVWQ]ijO_OLSXSNFbUPV[eIR]JTXPPgXLO`WTOTZOUKQZ_VZ^PK_YSSWXMRG]]RU\LMNZZRV^PQXUZLcMVWXL]UWS]LNLYeXNRLiOZWWPWT[PCXTWTPYYYNPZWfWQTXMXRcVGQR\[I[O^TYJK^RORCXTJFaSSKQUXXMKIORNUN`W][LVQPTYMRQO]]GM_D^^WSQVFW]^VOOJYWT_THPZSPKUM_OGY]PNXNKNVWLOXZ@USR`ZV\MWJGjXXFN]KCLSVPXPOJXWPWTVVNBU\O\d[\HONNZR^KRWLQULUWFYPQNS[^HXTJWRRVW`OY\PSXQ^WZYWM^aWKVS]TOVMTTTUTUTNWZKSKXJRYWVSLZJQOaQ_TW\R\SOZ[PKU]NXPXQXQLQXTOLZR[[NUOTQV\ZOSTMSQKIXaMRKN]WRMZTTWMKYKWPTSRWML[T_LbVWRbSOLRPJ[NVNYPWY_KX]]RZSJUQS^^WV_TQPXWSQZIWTTHIWSSbRWK`UPWDI[X\WKYXSTWZLQXGZVU[]V?]OLRKN][SUPRJHY]P^O\IUOXJOWNNVORVPXQWNSUPLRWZMX[VaVN[XQS\RTPQM`SWOOPgdPNKZTNQaDPMVVJ[UTUR`JQKPXQPSW\ZSURMSLSP_UMGR[V[MVRNIHPUNNRXYfVQXN\UQNUTRTZWTWOWTX[PYQKRR[LX]YRLSaSVVTLT_UYNVVSaVWUZTX\ZQTTVUYWRWRMUMVTMUYLY`UHMUINPQ^MZR[VR]UUIdPQPUYPPIOKPUQ]SVaabKPRQVLQMZU[ZOSR\RSRTNMSNX[NTMOXSQQbPRaJNbSSLNXSRWKXOUORQPTVPULSWUZ[QS[]YXRQUVXPOT]NSTUZTKVNYIRYXKNSLPP_T]RQQVXVU]WU\LTEQ]Q`X]SJOWUOUWVVLN]OSRQPNKMY^QONXPWQTRTV[OVVMUR_GPV[\IXN`SI[cYLYPNbWRUNQRVOQOLKR^TVUXOY`PQ\O]LTPL]YSXFYWLNQVQcRZRS[XSUTXXLXLQOY^TOMUHZSKONS\^`PUSOUYTPXHPRXPWOU\JXQWVY]RIIM]TMT]UYROR[OKgT_TTISYNWWXRPVYYE\VNXPOXWR[PMHQTQOQQWZSSTUSKRWUQMTaSHaGPLOOQPSFSG`XHQZ\DM^NOZUQ_RXoVZ^MEO^RQTISTNFPOUZT\VPUMKNRIPWUXKUSRKWOW\UeUXUUWRO^DKFTQaSWTHZ^SMLLTLVQNPQWYGX[Q`_MNXFOQ\WY\YYZIW_HYTPYTPQV[MW^OaPTPRVYVLZKQXaH\YQWYSR]N[OZ`eQSVV\PTPNRONeJQZZIZY\TPPZYMT^MXUWeQ_LNXKSRPSV\XZSZRQWZRSQT]MXFG[SPTYVcXSHOWZYQTPKWOQSWRcT\VLWTGS^WK`MUNLORBbTYUT^W^]UZZUTRRaORH[TJKYSO[UYTZMSVROa]OQXXZKW^LTK]`VDZPRU[UWKSY]LdTNVBJKWVPPWPIJVYXJ\U]WX\QVSScZ]WYdFa^XS]SZOKQWXXKRPVJWXR[VOIPRNMHOJTMOTWXKRSWZPKO]TYXlVYRO[^WXKV]UWbVY\X\bWSYaSUVMSYYE[UWVQJWGWWVCWU\LU`SPSYSDSRZhVMOWAWISSYiPVjRL[]JWJM_[SMP`ZQ_NPIMaTZSTRU[J`RMRUYHXTOHPaMVHTRW^RNSNWOOLUU^`MUSaITMVKUKYUQZTFbSR`UMXd]oSPZdKWgYOXLUONSQUMZWQMLVVLRSWWORTKSR^RSS\RWUZeUWKZ_R^TRY]QZT_EZUJMW_[WSP]YWLLXHeMVSUN]i[Z`Z[[WcOT`PYTN]S`RP\KNRUQ\VXT\YUKNVIZN[N[bRQMUR_QYPTQL[\Z`\PWTROZWMQG`QLSLWPYSYSYVSXVYU[OKUKRPbbJYRNYLL[NEUX\LKPQ[LORRVZ\OUYLY_Y\NWYWY`NRWUTMTZ`U\SRVQPNWUTPGGOUQEQ^SSRLMZ`QNZO]UKUUME^WU^QT]QZZQ\NRTTVSWRRdXYMMPERHJZRPXHZTcURPLQXPTN^NPPZ`QPQ]MTU]WQW^XLW`PW]XP\TUUYQXS[ETYM[SMH[PNXWPNVYWRPjYW[V``VI^QV[SLN_ReHPQWjQXUTeBZ[[ROWVK]aYJOKUUKZR_\WVPQJ_aL\MQZQVPK^RXVWS[PRZYMWVSROSYGY\QPOKSaM]]YW__J[TJEWUW[WL\FQNSMSUTTMXHTRHWdYTOQPTWQTK[SRXQ]YVRXRXMUXWeVQeVNL[TJQTN[JUUPSJQQRTXNJU\`WNONQTV[EVXMJ\^[NNKOOYOOMVHVUeNNXUFPLQXRUKYnV\XP]VJWTQYUXKNZNRO[KLHXE^[MRQQTMNPQEVP[IMMQMXRSZQVEX\XTRRdRRGiVWMVdTTVMYSVSG[RMNVSVcSSLZWQVWPNJRRLLX\^RPYSUZR^T`]ZXXUO[URNNS]XPSXTV^VSU]MUU_`YPUXU_]`RSL`PYS\KZGcMONNWQSMZKRRQWSW[HZWMVJ_OSWOQMSPULMV^JRRN]^WSKcU`MJPV[Fa^L\XGkUTVQSQVb[F[_P[OQR_kSWRWFSPSSaIRTSN^K[^NWTQXQQV\NRUZWSWQIQ^NZQ]cgNIDUCaUUHRUOGHcAWXURaSNWWJ\H[YKMTSPTKTLRGSLX[TPUJ]WPTHZWYIU]bKTLILfNKOVUJXYSQRFQRNRHORLYZENRS\`VKYNOWLbdNRVWMOc[OQ^La_O[LRGYSSIaOKSMQ]MKRU[[XHT[ZQWOKTMTV]U_SSUU[bORXU_XTDMSESPMHPJYQXHR[WLTVK]_MaYYPKSGRJYHOP_XWSN]KO_RPNVOFOTMKY[QDPQUIPUZRIX^PYJWRQYPNTQO[UU[GLJ[LKA]OLK]NPSQVVPW]]NQdTZRVU^KbOTKPGOGLFRTM\UUYV\LULT^[SL\QVS[SXROZMWXa>XQT]XCZY^EKWIOMMVKXPWNfOPXS^KPIeQN^K]J\SR\J^mYbXNXZXIa[RVSIhWZeP[^VN[P[N_TIVdXPYVYTTZ^TXVZZTLURd\Q[WXTRKW^[N]YQSN[ZRRTXY]OIDOSQ\REVROTYYNHUbWQUH[NKOX`X[PNQVXRLY[V\WYPQUY[\V^\SO]TTQ]EZZNUO[UNVPWVKReRWbOY^RL\ZOUZVeZYR[GW[WTI[PWYWZRYQWUaNPUWNUSURNPUNRPP\PNSWVYTTOZS[WPXRMLFXLSN`NXOWL]LXIUTPH^US^MS\PUXNHV[PV^]RTXJXQU[R]JLTRNSZTO\`TUOXRLOScVQVIfTIYl^WQ[I_SQaX^P^PQUURbYUYRQVQNMQRKQPTRQ`MM^_UXWQTWWVRYRXV`ZlSTP`UPZPVPYOSVUTQIZT_K_ZKM`^R[VUTXOSTMWUQ\RPO\SSTYY[SUUYUMUO]YQO\]ZLVNXUPYW\OQOWZSbXLWTOZRW\STaPNJKGRTbQX_ILUWQUMPQRTPUYPONWUXaQTYPYOVY[TWS\UR`RRXSYI]XR_`WYNXTTWUWV`WPY\UWZONVVNTSXV[PcSQUVHSUSN\W^Q\YWhMN]ZQPUZK_SRJOPYPXTUXOMUNQKLTOKQJT[RYUKQVIbSTTO[SXUP]RTQP[U\JVSV_TUQL\aZNMKSPWLUO\QPT]GTWUSYPNWWMPNRWTQ\Qo\X]XWNWUTXRQUSRUTVYPQZRYXL^QLOXR]VgIQSKOMRVURMVTO\S_MSPX\WTPSTZYSeNK_THORIKYKQN]^MNMRWTSZQRU[WMLQVRWbV[W[_T^R\F^JFOJQUPQUSP^VMTL[FRPRGJROLWTTOOWQQELUfVMMPJUQQRIOL_PRQKUNZ_LRU[VVR\PO[WRHAISIEPDUUUG_`WN[QLGPKPWZY\VU[OSVNVWSVTPMOVQTP_dLNLJcPOSZWTYUKKXVbWEN^NVSHSVVUQUPLQP]UHGOMLMQQRQLXJVLZWTOJLF^ZTRDVJ^[SSQPZRKKT^AOUQHVNTQOOMDHXULjPOXMR_PbNNSMRMQ[SUQ[TETRZdKCNXMUKTQYVQNQKlLZLUNTZMP^NMWVSaTFRN]OPOPUIPSUTVLdVfP]UTPVWEWUV\ZLSTENJVXSPSTRRUBVMMFY`TSNXJQRFUISJUN`NcVXQXSKTUVMINYDPKVO\PVN\NLRQVM\X[RLWTY^EQNSPQOWNQQWamUX]RTXPOTHVVQbRPUXSQUN_XHOXQQYOMwROZ[XS^XT\NISQfRYaTHXM]MZQSUUOT\ZJaSUTSQSKQX`PTOOSPWPdVQSPR]PP[SUQSSVRRPWRNW^MLVM^RPH]UMR[RG\UUMTTSSSWHTSHINRlM[EVXUV_OOPZPUYSYRXSMTU[QQRULMQWPSRYQ`YWP`UQQYJPaOXUWMNYX[^PUQ]`NMYRZMKYVQPTVRNX[VZRT\JYPWWPcYSSSVXRVMSNSROU\\\WHPWPPXXNOVOVYNLY\ZNYWUVLWUZKVQ[bXOMO\XRaP]\SU`[iQUSTPPQWU^``HRQ]OW]STQVSLTTYQYZXZQP]`SPSJUXOdSNSZ`V[JZ\gO\ZNMBfVT^KHITUWQZUTXPJQVSV`LUQDSN^OKU[KXPNQTSXMPK`NYZUSSPWS`eOTNZVSUPSb]Q@N`UbUIQLbPVZLQVPNKKmgWLLVQ_\JPYUIZDI]S^\Q\ZWPZf\TPRUViOOS^VRYXPTQTUPQWJYSNYVRPLS]\VP^\R[QVVT]O\bK_UNALMXMWRUTOVUPPDN]R^RSFXKW_TOdNXXWSNUYKURZTKMOPVKNVQTOhHKLMS^PR`[RQRPV\`_NQaQYQYGXQLZUT_`J\RX=b]LKT_]UWeEPNRQPWTXIJ^WYh[HRJTLVSPLSR_VUUXTT]LOUXQN]YRTXQTbWNWMASRVUQTORQIXQeUSRVWSRZ[IZVTVUUQOMfPiXaLQ_]KIWYf_WPYR\URVRSTSPQ\OQP]JYKUTQXVTVRLRRMO`MTGWTVRR_\O\UCXNMT\TWWU[YVUIWYKMYV_LS]WSQSRVM\UTMSRUUUZ[\RMTdNORVeZYTTVPMUPZ[PUWYVYXIVRO]VZSQVO]T`ZT[VRTXYKQ^[XWOXXSVKZSONTMZ\UVVSPMRPQKZVZRQVRSWNNZSXMUTOgPWRTKQVWWVMPWWPCQ_TYQSONNLRVSV`eNPVUVNPZNJLP^OTSUOc^JS]TWHZPZQONEU`[VRUSTSOWN]VTUVdRJTVRSQXRQSMOLPUXMPXNKKZ[TT`Y\WS^OOXSMWQNOTVQeXf]SSWSXWTQTOLOYPVTNQJWbXSVRW][QHQNZPX\ZPKNUTZW\dPNTOZSQMYSRPLNRIVS`S_^UOWOSUXQ_[UVZZMI^YILLNiOQTVU[[OgJN\WF]VQPMbMI^V]VKGJO^YQUXKWSQVPPQY`R\X^QX_YLUPK`TVNLV\OTWVXV\YEPRHVWNGQZNY[TLLU]YZC]^MSOOVPPV_XRPVSMORRTSQQNQY]UMSJPQRKTWXQMSV_RNLSUNPPY__fPMJJTQUVYWP_WfWPMZpWWVbZ_QQWVVMRTJJJVWV]_YVLSTWPMS`KJGVOUacK\e_RUJXXQePHXKQMXY_HbUS^RU_TPV\NUJRNWWZM\NUSQYR`QMQkWKYUQPHUNDNZQWa[`T`>XQPMQVMW_UMS\\SSZSEW]TOKUTXUUPbMZSLKQVHSZUONQMUQU[XXURLV\VVHVI\HYRNZaBYU\S]SPQVMRNIN^TQNQWXZJIaHOWRIUWdT]^NO]MLLRUZRQTTTKWcYSHJUTTTKWYTJOXUPQSTgRNWAUUTT[PQLMSQOLVNU_YML]WZYaLTXQXSQUVRV[TTFWUXS[DSFqRMRVMYTR`UNV]YPVCbMOS\TRURTZOUcRI]K\_[PPUKXUSUNTSSULdYPVVXPVOSYWQPW[SILXK]TaHTWOUPcPK\WSUSKSSeP_WEVNIbOQTWPQQN_URSTFn]TRXQT]OQ`NK\R]VSXVPQQY`VJOQFMe[MUVLHLSSYMeS_QTTXOVSM\SUXNGX]YVaZLZ[O\SOWXZUPOZZVZY[X[YVDZYcHWRWZUVMWSQTTK[S[ZJT[MRY\]\JGRMJSRJ[WJUQ_X_GON[a[NNXVVOT\BRGQUOOLOPMTQPNMJaTSWdRXX^UYMRZXOKZPSTYSSSPL\c^Z\PRULHMTUNSTR^Uc`RYMNX`OVgQSDRbOVRKPPSRITY\MEOV[P[ILKQdM`YNSdXKMVKQ\MLTRUZMJYLSSQfL]WTUUYWQVMRKMSXP[RRcS[JQURXRiNLYLQYZUWMRRLZOVMMOWW\XOSZ`NXU^JZOSW[QdSPgcJXOVXILRJOQV]MZFPO[]_QOMZeSTVYZURJSch\NQNKZRX[QW]GSRRVLZNMT[_R\_UXOLPTWTRNV]^WQQSUT]XJVQROQVUEYRVQXQKSLNVTLVROY\\YWPOaOQa^Y^SNMYQOUPNQNRTRWUFVSUUTULN[WS_XJYIISNWUZVHTWRPGPcYR^\WNVLQ[TLOX\QTWa[QTNQTYQVWULOEQYUYTF^IPU_MTT]RXUVYLOQ\JUGMW_PU>P\UHQYLYUZIOPLRM\QRNOLQQRIaW^O`ObP`UUHUSPPYHRYY\T\NYIaHQRTNTFW_UQUTUULITTKbYKSPLUK_IMXJTW^PSW^OTYcKRMZH^YVPULYGYNMVLPHdJYRP\VOWPE[STINZRNQDebUUX\STKFQYSZ`YPMUD\UGVN^XXTWAPJZTTNJNNTaGQPZY`SPS\Y\gQPNNQIZ\^\PROGVLaQTX@a]Vf_UM_[YdUJVGW`^WN[LJ[\LPKYRRXYYYUXPhGHX\\E]HaWZQNL]NNI[VY[S[IXSOSQRTbJKNbPUVVXG[QMWSQSXNWXKQP]UUUSIUSXIU_\HJQGVMWMW]NRMGVQ[NPXPLPZYNTSURUPJRSYTRZ]YQOVPU[NSWMOZP[WRNVMRZSORHTLVTRUQIUUQpQOHUTMSSKSODNXRNNXZGTNOZIKIRKQXMJRNVPTQRNLZX]Q]OPLTWXUZQaOGMPMSL`RQ]QZbVTTHSNTZKZLQEVUUTXQXWNPUQZ`SOY_[^eWSRcWMHRdOW\U]`TVYVNbZVSURRRcSXTNXYPKRX\XPbVNRTZF]QQ^NXNT_QS[YOKUN[ZR\VPZXSQGdWJaH]VNSPX^\YZeO_HR[KMRVZVJOPXOTQMX[STNSWQURaWSQM]NQM[JPWSRONQ^TNIONNZUUTX`ORaZ]NYQOPNMJOSQTSXSSZeOVZIZVP_L_RPLWQKR[_G_XfT^TZVTWRLe[UKQQQZZUUZSTTQS\TYY\VU[XLSXOQSMHSSTXRPRPZURXRbQPSMRWSYPYHQOQSROFViZXQH]WWtjSm{y`uji`SwzZ}bhyxvawYehukqeBTYonikjskcewcqTZ\fqkd[ix}usvTlbg{kzWhrrjhhmockvpOu|ruohpwpnxokxucg~svndq|fw[cSdpuWZXshiZXfeptssflr\q`rcrwZdwxizapqubypftf\nmrlxljtj`mlzxlqztkdewpkxbdr`ecbaqkZcYldjZm{s{Wus`usdhvh}vjl[|nwhampPsbZnhlh`S_pEa{fopmhfp@tc[hsctXt__oqxjgxj\lsstztrerrqmgzpeoqehtaqgmimL|uo|^pkqDRrgkbtmGP\oj{qjQVowiwsSQgon]rabe^etVzwopy^hggitw_oa_m[qZNdf\RimgcktrsXlso}^>aSkzZopku}g|`lh\eNpxi~|\P]pnvtkagcttjqtdsY|qQhjwO_bqn~tUfpeuMn`w}oeQvlat\pilrVnrgns{e}ow~m^|di_u\]mtko~jgv|_r`^kwjn{rv{^Ywe{mmnZr`Iorr`yElibsl_Zafnmlens~]fzkUaz]gv[^ztsgPg`wwr]vo\m^cZh^Qelq_jf\n}qpkTfesgNxtUU]]~uaou|gX|po|Rymotqlszow~mRen||w[|nYmsas|T`Yrn[quy}ck[poubrxqjgqUkRwn{RuuszVXstqpdepkoofmfn[cqikZxgbdktlh}pZfvgyv[}wktdrVgaHkSd^r]sboufgms`naqsuvmxWqz{z_m|dkbgnjgggkighrszk|d\\gfvTosgdtRnytnwjkmXv`co|hj[~ppnvitnth|the]fhvyc{ypaz`veeebRSkjukokvvtwwdq{Fe]cvl^ovow]_qbt\l]kjoghY[bcvuZlvhtgbe{uqJp^WjxhVgvezrx[cqllW\Xgponpptc_Xj`bVlxcwNwj{~jq~]ard_purVeT}ymp^oEuhxgrpvmoe~}a|N^lxvu[Vvn^uqcZjg\igjPo\u{orq|w{ypfciie]qQno~xoXc~idoiartpjqimpscjfWduowrap{Imbmvf_xi~[~b}rhfsdboi]}q\jawxgsY`|_\b_jmJmqijx`ielok]tauRihlhr~lq`Vhpqzeu}gdgstkMo`i^kcrsql_ny{{ffpbnkgmX{hZby~l}^egpkx`wi|[i`gYxSf|hoxxM|qhY`[n_b[i\qlxaatlW`q^efsrix{m^{Gvkhf\}dQ}\gwu`yuinqrvdvdivb}c_^upkf\`[knwhnqTd[dhg|smkvn}z]{wpt_dphwY^si]r_sueXpppnibxalykgfbno_Ok[hVjyopt~p`bTlhm{nvzhr]jkhxnol]|tsbuZfXltd{nreqbQ~mgcjvei\xklsptxyRUpkVyzsuoVuWjrpunvfxsZMZhaohpnt~ygoydwsjrq|ddQjounkznfUtkf`Rug^ZlhwnkbqQ`lt~[Xylj{xpKlhiApvrdq{q\mYursb\lt}k]ugrcwuvtojpbmodg^ZUc[s|a{rYheykzYbqpm~{mZlmjiedN[w@]xebMxVem\OwokhnFSp_vi}tlulbZpxd]^dumxjUk\^Wq`fa\prgr|kdbwl^tj_Jg}s|apakokNpqxu`pddtjrwi]oiijyf}arcemojytkSdlmwqvaYhfPOwvm|s^X_thvorxam`xqbskxbr{bYmfvZTkotnh|z_dublkh{t~l_fs{aZX}xurhutm_ecyqu_s\\xs^Zoxqgh{q^ryndgrcWwwrK_U^v_`vwqj`Vfd`vfixqx^ZVC`r_~hwUqRvqpf[k^qljQx}k{|rhu|wihrJeknmz_oj|h|rt[n`Zq{fl@ylc[qlS{R_QobiUKoag}l~diRosTxwfbgWq;swanggMjd~g_\v~l]opto[gnzMsszpk`PcvRpej|Uq^amXbl`fhil^l\ps\mXicsfX[Yjx_vkmp{npyjhfvi{{YkwogZuuotufswhWney[rc}lvm{_ekxmtkn`amojhe|nfbj{`~xgbhvoqdqU`tl[usdQy_Ncpbxos[ntgfh}gaaomss}hvVtapliewhtnZqoj]muer|horbnvtwRnuYpyT^wNXxWlhjmVW_~si}a`{chkerewbhclp^etnoZwrbXYR`w]ufzxoVc^d[aoxj`lli^ysa^hxec}awpyv^kjZxOpqj_y_iecmus[z{zv}j]|nalzVyl{gcn~kblyuN|ZlwdpedR{qvodrhX\iwscik[ocRs|qeelflGelldXtpptZkYkdxn|dZkmqakzdVocWp_m[rjs`husi[`rsu{cwnzzbuwes|ombtmyr]lyi~|Vsdokjopz[yn_^cgle\q\j{|H}US]_LgeVnnx\`hubhayd^q`STjwl~sycfnoWc|^lxn[[|{d[romnmoniseb{ZlvOj[V{o{vXv~klvlbWw{c\Uhvmp}kztuvOU}mhudivYzj@]l|pqxTvdnns|zsiwtsnytidw^hlsqeWctyzeyvroy\imunzrcmdgubMcg|qnzzufXjh{`bnqk}UTihmCy[QwsfbfsMieqo{emeo[\YpWae`_~w\ubYS|eatkpa^e\ap[hddusuo}u|kgiYgiznh^oy`yxtzSRtdn`~xsYqxywjnnpql`oj~bNk_jef[zm^y]wyb{shav_aiqe{ihooVkWiojCeuxsthdqyt]dhhW^\jwl[nxhff\lcfaduo]rwv_fqZZ}gd_^vhi^`dfy_yqfzi}d|vX]tkaphtl~~ex__e\nh^mvtT}Sjzf|h\_nMclbsesfjjzpr{UycsyehTmnkqdpuafw|lovlywvqfhmmw]ikjyvYudP\k||q|mNpWug]genwxdnru`T~w`ylts_`nfzhfQU|wplllwvX|fqqgNr]ur\hwdyhcisv|fpdv`ql{[gclhNruotsfWsicpTpV{Htukrja{gTnn]nx~lo~vgqf||rn|gzn`hxrqyun\v{z~oktqxkep]rpuOfw`w~nl|tqqzklvoosOikdfVPkt\PZf<]t{iZexbhq|}ykpvwmbclywy}6~]|kkY`zi}tlkktk]qc;g}fhdziam\b[ssgm~hs[Yhhmowxxshpwum_pdmcpqkbxe~cmwumtj~uU}o|unuo}cq^}qxjfkmWanbztQc{r}nothny}rpTX{{r~k\|!ucjsomlr]o~vz^e}wdnx}sn}pp[ual]rftu^`b_wcta^mnQq{lw}rh^^Z\lfmcn{a~ynQn{gpubCetkrydoo_]mWdrygsbahfzw[]uqt}_ku^cpqZywivbv{xq[irqgYiol`snydskgvT]lyh`rdfqf_n`t|rgz{tqpveva~ZpmngcVZYlpynuhwoax{rfGcurnUho`InculIcbcWonicyt{Rl~krwrttYht{`tjwcpffbmtzQP4qzzl_\Um~jms{g`s~gksuft`nlzbkpmakSlregWpjikJzTskUjs]|xtzbd{ro}|hmvhfhsoeRuz|qeb}hqpevaxet_w\q}hga}nskaZxprfxfwlkhoaVnmreq\QxliTq^kqqWklpbprxmt]ampyh`]Onfonq_[aips[xoLqTghug}tnlzwsgtw|vm]ks`ownxbnoVxkomdoo|Zqsevt}phjd|YTtddj`c]cWsojqfk{mtec{kew[ds{nesbouf_n}]xseyh^lsZzY|hop`nhiwv~hdxotgkqgiyX`j{`lmIftc[hwgY_lT\z]frtteZ}winv|_{tproVxfus`o[raoYsqryaym[drroyvbfmmnug}cx~~_e|npxsmt_qbtk_ra]grbPdfsgl~gu{lrhd~d\rwjitPef|bohqimweulovWruphhZ}x_ligdxjhjox`jt}kyxu|igqvynahjsvw]]rkgwjrjxxjuwxo|umjklZ`]gpxYcl{nj~k\[|ekh_xsofbpWnhvYrpMPhZcnh`migyzpq_Lb^d\rxbWpeg^zqXUnk^zgG}nRsba|_zhch]rlglzv[zPerj|sxYv\{aqi[Yrzjgis`jdwbkuyZymwkwc|iagkgnuasnvi^sizmwo[Xir|gk[IpRRxizTJ~XopU{giu{lcbgbmnLqnbla~|wWkmjohmskrdiZrnxokgdzgd[c~nzlms_]gvmyrqcXkwmr[Yuqhqz|PpXui_dela|j_[vn]viegetqcijwgtuHZm`Zucr[rNkpajYzVgxl_|s]v\\r\vQ\ulmhd`|scmOdahs\`b|ksif~`yi|^hRwjSfsbuTpPpcheyh\rbSWiVjsk[bp`^rgqorubrogdogaklcyjfurksbatfvvnltgqbUk^dnelgrvxb`OxxKteousZ]q^zqymY|bzTcw`Ym|aihp\UfedgihW_lml{wuhmdnaibV\sc|t]psdhby_NijaVe^mncttxsk|mxtcur\Wdh}kqyp_Zjqtd`lsp{}esgiojazokwjlYupqumvqmd~nkbujra`_vrhttn{gX[]fnmosxq]nOn]eZne}kWwY[cVnk_y}UPta]yld\ojkdpcg_[nEmtjvfdfYz|e[]nwfqrugegskf]kkfy_c]i{dc\l{rbigyRznivipYyXx~sqvfk\mSldyflrhlyTrz{cUqhfsrhkmgwxko|hpgs{s[g}lkik|lwpltuoh`aqdpndxrkozgj}el{q_fxgjtgljlogcgWyW`aysbvl`o\|jn{wjYY\Xrvnfqtekxhjvmkvbazwketpv[Yrkoqn`fm{sl^ncmqhoib^_at~kj_nnNbgr}abd{iulo]}yntxeimwsvtnmjedqd~nhbXqqnruda|am]etejg{ukgwjq\mxisfoPVh\Zkslpl`^dqq_dmodb]lvkuymmif_mmstthknvwtniijkmsfo`h[{dp`ozo`t`khxfwZn{b^xu_nlgualcdV~pvXp}twftq_hw`jetW~kl^no^sn|bwYow|oe}cbjl|loon{nfdUm}nlmv[}sl^ue||iqcwj`fu]ubevgbncvm?pgmnfVmopjfq]qdnUgUirqxRvnlhxbrjk_tU~fnYMttdw\qtmTqfqfgte^fnwp|}X{xPYSprhjjcshy[etslSt{iikdzqge^dblvljc`iuft^Tmvaeipmuvwky{^sec_jprwz|fxhgZcnmzqatsgvepy]XZ_bXlki\walsgsrdtn|Uffb{ap[|pwnVmhZkrd{^w]RXwpmjhbkXIVzhlgt]_|`khn]ykKbaqw`[oDiZ^kw_gOqjc^uQswgdmoeOIk[bjumuvougoZtiqTdmj{p{vpl~evhjmeyf}kr^fy}m~yhkgSmb|y`etgi\qlfzgjhF_b_}MGU{btodaohl|czZcuygesixijkqZy_vxx`T^xczk_osWRk|~r~as}v|M^tka}tobnvyap}cheljzzyprtuOe[rv1Xalj[tpbp\y~afqrmj{Jl=q^we_uthjd}ov[[q~esdcebroZr|Xe|unfip}tkfh`U\dlz}vfycaeosl^xQi~htiuxlKduxT|tco^~tzPctdnqmsjQsetieVstmgWlt}pfqhqj`o]_{piHf]m{_jptoaslsOs|zNekqdeifRig|dieetnpgwcfikkfrh^lrqizs^p^kmjy}d{f`jsom]gguGvhWsv}nlbs\Zeb_pdqanhcwd^ketwad}Ngumpde]]jX{YS}iyobYgg}beopi_ut[]bjzeialstwrqnb\apkjxchoB{gniWciuGu_mzqqvzWwkThhcuij~mqXs[vc_Vzvorsp[T^bh^kts|orqupv\mZtp_O^ftkktoge{fVRgso}kVfovypWosqguss[W`Tvo_apcjxU}zmt[|zis[qhHQyTbapbS`ijdea[}dVh~nzIltkPm\nqqQ_zr`|tkiisgrTm|{dPa}ii}c\XmykxpqrMepvgshnPk^{`sY}w`Za\w|qrXkatsopc|}|fUvsQZWxtje^|odwlgpY\xgaoQnd~eshgqnkv~nysuk~lrotu{_zhlvu[k`eyfumUpq|h|er]{j_gdzpdgelu_tmlfjfr[aw]|wf[]th[qxXrktqe}j{{qg{k^]peofslls3wecfzxodhtk`n{uo}xf[tjTif~bpqyiWv\\j\}vtdzlYep\dkeWrka`a}jyj|X~e{tdjowpgwhq~l^lWde[enflya`ncetgQndak^gj_gsgmhSfooQ}^~yfpP\ydom_husdqpou`y_ryh\yisbtg]|nhYytaoh_iUl_ye|]Rnart]dsjftsvt{or[aeuag`hxdoY|p^y|kMkqlrjur`cljWywa_nmw`lfwyg_ca|snynk|jew|jg{nlpzf|nyfqsxvrpoqcpWmlr^q\g~rYnnvutxquemyGl\nzt|wYndgsivuy{hewqpksk\\lmL`[[vJq{tn^viuYyemvvaudUe~cvhBv_nrtRllq_uPwejuoszb]p_`_{sz_fiztki]pjbpmfqlvqrl]ztkgomWr{fz\~v|c}swyszsc\rWor`c`i\PuaLxWgirid`e|[trbztc{xlqu\h|pses|aVxsuwzhionjXdwsyk;sxfWbjqtdu|}r{asfkpcch_|nhhiWlj{kivjp~~ykgZ|ZgqmimZsdljyv|v{f^hqjgjibrbfojXqn\fwlrsrlqqorpjxidtrocn`ooUtvvjg`lu|r_xoav[z^qishyhd[Bs]as`uelkfb~jw|LmsVvsqpWx^r`ipqWejd]slVv[Wj}q{l`dsioexudsntUZY\Q\^so~jzrqzt\gfbqs}zfnUYymkSf|wXj~soxkkKluuf]gyt|Xxuwyienqm{nimqyjvYVrfmnjfinljrouvuguiolvdkvvsplw|ryoiVr}na`ryg[unxogcbnqwueljc{dXyurhjs[qazjxsv]alTytr`]wplv`qrXWxow{{vfsdacP||r~sd}ymwb{v\VV]c^or]\m{buvsc\z^mr`vkm}ogropiz}spjfQmAmeokjojmgwYqrdkmvrmnie}lqdmrtnbktVeegnzfpVajonkwcydZilrueZibixoyr`_rgr_z{j|_qXanrtghJJletxaxcn{mmirxgjmRcr;suszpr{qblkoxgut\tr^Yrctgw|mninlvvplL\wb|jap~qZtsq^mrYae]ejlhYawheks{cpfwjnRmntqfttyfctrrq{}}i|iYxgootyluopivn}wqlFlq{pc^mnm}vwlTm|p\lReyeea|ggKq`nftu\sulbsYiuU[zk_Iyg|difp|src~h{mSnou^xszop|mjpsqujlda]gY]nvjFwjrZnftqq5bpyk}rjriwre}{rlbbtp_uSU[ya|\lonCpvGn`G{k{_heVXjqzrq~ftrxXx]{KU`Jl{isi]hf|YmVyic~^libqqyb\jnvwvttsxbvrm|fx\pd}egkewbdad{gzn\|}w`mspykmiaeiVitiYfjsrkc\rrri_f|lSpwwcztt]l^{bttl}wM~l}ucz}pn|bs^{qkQxbuml_V_jrupdve\lzqugftwhudXcgo}sylmdiwXseirmlua`][lPd\zkfioZpjlgimorrr`UZvavAT^wHwomkbomq]qhsifud}ZR|os^aamnoX{xQntQ]unlzssbhrlfrgNqdkgExoyVYrku[WuVkis[wjq_o\bW~jcTqwx[ehvegbv^|Rrbevji\fyWp|fVkkovTl|ZhdZqvh{OwtfwxZ|qycr[zg[w_vt`lsda[{hcuwhem{Jrthgkfjr`cftMovomoryec\bkonardrwpoSJba_vmmcqloli]ntxm_otuitqgpcp_`ldxTchhtyaavvgrl|khmyUkbknleknizruhnPz}VynmrRlqlzXzl{b`]X_nlindlcxclnmdl[Nzzsch_~ZnvspmqlycgcdxSxl`[`hcuikz\]w|junengoZufVRqxkdbhzr}s^C`{sq}sw^inwej{bqv^vvt[pr~YilTifzmkdeQ]bppw}mz`fttcxt}zxzslmsaflijchnq]VzhPpikgdll|~Wks`l`}vxVfik\xu_tqfadhz}ve`^vOwi~rUnnfim~`jY}q}trj{k%z~ossgYtuiv\a|l~lqqkhrzkhtddKkru{rdqeF`kxnLonvhodawye_\oyixjglzljphpj`|]e{pfdyZ{calzrixb\gtYvvmg}fkzu|vyxjtp{tncy~w`{nopa[^ypu\ZoWzs^pmjkodhxbo}ri^ks|sjm}uos|o_g|Rvhndlulxvnvvun~hmyyZzdedgxorurpitxnjit~drkm[tglioxtrmsswhllZViwvalfn^virns`lrmb]oyqgdhkgqW~uxvvd~qjqst|]hugnpmrazw^hv]buhaptt`aeZeenwhgXjj|]Swk|zrXrymwbfgOgdxmljg_{mgkfclkylimj^djpq`rcztn_uhfedohf`zzumhxS|kkamlnkd[nZpXrbXidjldusftzzypolzwYll|ba\kY`kvd|ft~^ozQmt|z}iYw[g`icn\ozrbgin^jwdtadp~i[`yn~keVbvdwfyfdnzea]exrci\tYgYb\xpt}mmcdoiYkpu|oltUx~dyyic_krhdcooipdmci}o^usnwhg|lxzqswptlsutnunmjod`_drk|sufncPmmgkX{ktrdhhnfjlpb]_unfn_ds`[iqo\kq`q|ly\n~r^vsldqnt`e{slisnjzvNt_koaZiJkscwjkqls|__Qgjlozh~grxuppXYupd~x}o}ygjvm{g]}xw^wq{vj|mhqxeruzhldxthfhtslgcl{ynlmgdzkjfogeu~bszszoz_s^Ifz|nmxvsm\wxc`zrunynxVpmfS|c|muinvt[vtkxs|{ls{yrnq`irfdjw}guggR]tlrs_bd[w`vjqdhKPu{iiqi_liwgC=ghmbkYhVmbWffb{qzjlxfumplgoso}dnpphy}ny~WZtv|nzpnrrjhvjijxowZ\w[xvypt^hiiy\^~pxggkcdiqdppt{hlWlmvs[l\{dr_{aufxr~vqbn_e~voqdgWOs[k]j|rqqpdnz_tqwywXy{bhqtumncgrfqyqk`~ShompwVxwm]owfUuebfevivz{jdkmlxhko~gepsxtxi`vfatndu`tyxxjhguob[{_vd}k_e@\bao[qyp}TmlzzooPsUcz^woKm^Rj}Y}LjycWrdfid]{]z_jzxnh{upvne{hmikl|vnxQo~Yac\^udnZmjkmv^~kkeorpjxy}chySvb{yv]khgmetfquiduuowxYJgkmfci\OxO]KeV`kjRhekstltchgf|ahxarU_yrkmfidWixiyOgutog|mlwuxvk~`pnc`scskpucvfzxsnl{f`ojZhWli[nhkduhqYuy]dMphqipkY[x\m~kn]fffo{z\aXzrkhUd{jszGrdro``Wfvja{|fdt{waar{qwgqlJpsp_|gZiS^PRbfUvSlgxnjoccvqpkbqByjuv]ckywzkthpPnk]wgbmmrkkvq~emqxfy}ohutoyhbdZgvOty`mlucfdvr:_sndt^lj^dvkk_vXu[huwrgowXfc]Fawiom`Sakboy`lrZlihNk]koTfTsbl~_S~kwbizivabgme_o|ippdrmlfsw{Wdmmnu}{RzrJXe]b`mNiUusochvFWm}ujmtmrkeabvlj[^bY{uigtucq]dYjcjqew`wllarOaWq|pf|msYkrVidWluQoo\qwSozrqnqgbhi\cm{ewj[sqqhY]s[vixilglcsxvwis|iMq[ygiiwn`knabibknXx]`{rzmbudzup`llqUwmvkndqsji}pc|{~hrx\~mgdat|fkffc`]jv`drcv{mh{phxuhcc`t|^Sd{oOyw|islz`euehvyoov{Ycqciag_p{bsigpishnXt_zscoqoyfsjfbn_hV^bZyqryqnvajOs_rlqq]Yuzprkmjxhwkfu\veks~oq|o~`esspdsZ^j]ytyZpzpm^wgpblalzjr{}icjdcmdr||^}p^Zhw^~{mdp{zcy]ehnZf`PzywY~gc^rcurthzjYyp|sjngzYvhlWSipfca_|YhXukgqbhjulecpquy{atezzttmX`yZaihkmjsmmwmqhjtjj}dlx`xig^rXezfqx[j\mZ}~dbbbyxkodriaTfuwu^rjnPh[hokkYzpdnfqA]hz[~gfn{gel{W}oega\}aOlWowzcq|ScgpkkqhmY[}sj|tqqY~xphlsVoqrkmvqy\p{bl}euohomaiozx}U]miqfj]afV[eh{^MdXiinvklbo~lk~jt[`sq|VzxacOi]vuq{Ra|u`hliw`^sh^u`qcmzlypjck{oz]givLy|`ioo}kbX]cwcksToffxXnpsocwlit]txm]inshrhfosjlveO}mpgekjhn_Wjgf\li{ic^jRtfmtq`Vg_Nispxe||mljepmYuuwp_janxMm|eqanikt^\|^ctqOmldccfhtXs[lni[ehycytfrlrdksutllZldnxqp_nbkk`znni~vupjh{dcvq`mlXkkb]gZr}cvjsntwqlb}hRyra|g_oxkZklgfnqs~atd\jtcf`srZrxe_qqsnclfa{zug]ovxil|mlnmx}wUxwbhg{twfgglanakccznnrdkiwmfwomhvszg_]fh{s\Ybh`rPKrlgGauuwlbowg{jg|prpPio|dSk_qv_kRX`{f_uaGzbsdwYafo`{krmwrtRX`byw^XWwa{r`VqcvUogqhFxmtiqpvmmq^cnwkosZ^`]krelruz[`q`Wmmo_s[efkfSuqvVeepe{eptpqoxeZmhrhUpxrlkz|~bdn}l]mpkkUgl[fUmcvw}cnmwYwkh~lhiuge{]xucxkUtZ^YUxNrYb]ggvpo_dlbagw]clqlg^`ldJvvGkpe}w|Mol\rcrlbpfh`|njpe}mauswsx{cqvoWgkxVlwJrX{ajgkd\|jys~T]w}}whl^QgCqscwnhltiug[nfKi|n^rl_bw[b_yrZtwrrvuauOuiSkk`ido_f^w|^xjhkwypionXq^gccs}`sz~muC~[u|qdag`clpiNslca|f|r{x{pirgatRm`kytxr_qi`f__eg{nkpaxmnlyip_hiXXvhchwz\jYf^gvzyni]vQrnOj_{pkTZgxHz__}c_Xq}cO_qX|rvmov_gvgrmhqhLu\ptWtqVxlerrhuc|{ObkgotmppgZq\~P_lrjtoa{}somxquVpnoaWgtfzzpvf`vrj[pxdfrvkp[|\rmkifpt}iocpwqv\c^|yhwmSmplchvn^oVns_m}[jv|gusowy|fbsYgzo[Z_msJ|umeupopW_dNxeyn~juoo_vZsugzpl[`NybYvbmnttUayqycx{ralXwxn\wu}l_zcOaqUn[`j|dltospagtXixrqww]ilhrfuoYem}iW^sd`h|ekIs`~mm[nW}XS{rhzWtdln[jbenlf_nkZpddH\\lvzaddq|sVH^tyf}jyir|qoxqidwx]dz}y~]q{qv{zns^wmjtnmfs|joXd{|piqv{|hotjrk]ktAZ|ix~nopoozzlqi}m]mbhkpnxr{oxp^d`f`o^_g`tsnnzn{rqki^zrhlvxVuncpczgRada{lvhqo_zVnxx~Sdtwm^wWYpThk^ZakrvYoMnq|{XqgijqtZkf|jmqwg^jJs`~fpxtmv^uq[mezbq[hxtz~ffcsn~W|ofvmlvtsks]\pHtgdx\ocovxZ[vrg^hnz`t]{pk\a`dx]ajwicmX}\~`j_jkvjxmZgTb_[^mx~|Nvhhymm\l]js~cczq~uni9khjs^\xz`nur|Pcsqum`|wy`zo^iqqo[ZrfwdlZx\nli^dgbntoinamkrWfif|by^~{jhwycowqbk^udqpbmnwYsdtfiXodr_]~_dz~kd[{]_l|gU~g[Y\dkdsnp{uxfyld{elyaqW~y}ykxw\DYowv}kIhujwfr^hmkupxZ`Xazoxwh^|bZr]lzuigmhmfl[`imUjle[kxQuc`{ot]_d}p^n]gnthjq^k\Sw_|cgcunY[hwnd`mgdosdpkuY^hjtch}~yvdtwtgh]bTwuamthkVp_ln}mgckibfdco_fpmlnh}varxtm}|bk\sRpxtjvnr~mdujfno]yk_f^l~b]}S}qpkcx]d`c`lszriQtd]ywvcl|{asnu`memuinymtq^ubpeh`^_hggVkmvtst|esnkdsjm~gPfnkXsdshhnksjcyYet{xMklumrcnlQznj\_urswqetnbqyr\m|qtRiqfwWsuJW{sydjW^s_xsswviirnV{g^xearieg_glf^bS{vakdcnGrKWbIloabeO|kmn~kwuizct^td}bl`Pmz|tvskk^n\l_Y3vegumsm~\ty~gjqur~mcujnjg_x}{xicedbdjm^^Yjipo{\sm_sae}]csLaV\k\pylK|kw[n_WZjo\na^f`boc|lLubXoqQnzbtqhvrldSyouiyufosiwbKegl[YkMo\bYesgJ~gplokucZr|PO`g^gy[gUrjncJMohX~Qph`c]wkmniatei\qoTtk}K{eizd_=^AlWnTVcu|jl[CasEh^]ukkcrXl|iX||^xVu\hJ\yUGg}`[\9hdyi}sxk|}TXoaqv}gq\uysX}pjlZg\bp{lel_ipluox[|jjdayhnkvg_RrXWs~\Xhw[nhdx~qvw}jtlcexts|xet}^oiv|baziUUuedro^a|efugqmqgkilyzhv`thqwjtUbnfT}sktqRzZbWogysl]|`}oSlhf_nbjqDmuq{qRc_naWque|`tk}~k~mVhntlb^}bdjqg~Zbkxw]j|pvhzk~xozerMVnk`Xf~nper[njavmkux[`[gd{rhlijVcn}a}mertaqeaj|cbWitfrh|}WdNxchkkH]iwfuf]Rnl^q|jp|nclyxmhmhmhbpTkokQln[`ekayiTt}_yorh^thxpzUHvjstc^^pvr}nqxsbd{^kqnG}ofg}nTtdGrjeusocuco{mkv{X\inbahkl_a_~g[}tlvAeU`GyontbvjU,|itn^hFKKhl/jle@qilz\mnWNv{|W{TY?Nfnok@S9YO[GjW\mk:-hqrIBMNK_hzF_q\pKla^dmzTEs;\hOlocg [mz~vl{~ugb}Oe2UMa kXO[vedq|he[\gs)RQ}bil`snnw]f`tunswlo|cYmudpxat\`ajozmtsqeao`jt^_vm]VpopYprvx~\k~z{twOfkbevdbbn]i|`f_eWmdaus_]rhna\zOqbpuZfO}wwmuouqabmg[_dV`Zmnlxyvfti^wiXiavipmwg|zhrldg{jwt\hzixepXj\a{ojhqfh`rrnyl_lzjl[\vRmyj_aiVffx_vmuriyw`GwsngyqauWyn]gqlkp^SlqzrxrrqsvZz_R]thnwfPhbGyaawhnZhjuVsnps~jhyxuQ]zvz{pusq9SexMkic{vtiYfw`\j{VcltniVnQsquvv~`]ogvIay\UYfUqNzalsoe^_cvupopycd|e}yd`gsyeejijYiZxrofvuz^RygyvgVngcinpqljm}vc`e\r}nifqlt^oqmlqerjnbaws~z_^kldnH^ze\hzou\af{ub}[`\Uucf[m{dymrgxLnrvn\uy_xqRUWv|Uyhsdbkvipbpfus\Yx^~n_Yukad~}luTqdnwWks}a]jlZclkbrmg[aiVokJszv^z]yweSfsm{iotdZvpepimlndw`jfcocV^^vqXgn|incq}htkv}9cceSoetW{|ijT^uwi`wuaVi{gkw\TKfyp`m{x{mf}xnTc|f[Zmqtkbdhgfgdp\{Nxq``~lkTuXqsdkenmw}bffulg``bxlhy`g`wkcbpkffctortch]eywzf^Vqmxj^hqhrnzyghyugtu\ghxh_ylpqgbq{f_{Uk`yfq_^o}pfZwqkjw~hZnmnomq^ekkmnZxlgp{x]i}sgikbw}}[wiigzn{q[_l}xrdtjpvz^m{kpn]rgsddpUlewYki~u|ekrgq^mzSnmMttSXlndcpbldb^wWK{~ahSrejxiyhl_ophakSPj{uaoYiu~m^Ywqpohjb\nj{^qpadcp|xhFo_{pZhyjnvkVdSc]j~m]QoV^`^~bzxt[qgoxg^qtsaranrf]i|t{zQwg]igiyPmvk~kxoor`qlzUp`mnxnp{ojuplvzeuyfaolxgwUnf~uz~tY{{m_|tnidaihzfXztfYs^`}d^penwxn\xyi[Sbpa{adp[}nd`Vjxgpe\rzfqr\\nhlqxnrV}somLrr~qgvjufnqc|W]bwrxjaaMQ]zi|rm~qlbxwsqez~o]ynbppctmkyswmMymKSS]]ebj\iYWOfV|tmydqfgsmtc~_g|hskZd[viQnynybxymhh~r|Shwmsixgdpnhz|nzsqvz[i~iwtUhu`nlomufewr|Lwgoap^z_n{mhn`UfQcw~u]irwekl~n}qz}i^pffrlog]yolfeyxr}riWlmW]}bargpoe{r\st|bfWZly^xiirWhcze~mgmbpdrbhphmqppxynkmpl}us~oeyly|Mrmuflaqd|o{u^[nsaua|j_wroXqwjpuvnr}ifxWnkomuoimfs{srcr[alojryqdZtsf]lxmqadq|fms|nizmsykickvlnohcmwdysrsfigxpvr}qq~f]dnpviwXeu}br|`xcvhwpdR_lqfnstZr~xtetxyoOusiqmVg^qvzujjcts`p}dvsnkxvktbvwsldVzgcZoZwehtce[blqi~zyeoyog|r{gei}XMha}_~mxvlom_|lvztplypfq`t}`x\[}j{bud}}eoq}zmmd{dNyllWoaimlzn}lOyrmimYcxzezT[nnbefxz~ishnzurgn_cnkejomnlz]dj]si^roxr_rsS|gb\yzhymeogwuiPkvihjofqwtYx}cjbaid_kWrjqtq^j~g]xm|fp\o{lpqothoXqeeqtxjfwa]ixY[]vbomhlp{oWsc{]m~~\bbxWUtz\nzj[zmuhl{pfzv^c~kyoejVmxe{tcmj^|pZvmhf|v|gbzonbpps~zfamrvsxnirdkslh]vk{ajojlajlilg~ocvhxw_PioYcofig}yvs{twqpoo{Ziaxrqp~^y`mb~vqgx]t_scdr`nQzh~_ypwXdnbicNemy^nWXq[QwzfksxhdwzrmnXlclymhq~uwpw~xb|ee\s]^enei~nrrcd\pk}zvmhokzokcouuaj|wwqoV{O`uuuxen@\wg}sP\lfs`rrPrcgsXWhd|fi_mw[fljbj[kXgoJ}yuqpeovoy_vdxmjwwitWpnraup]xvy~xdaRrs[uz{^skPwkb`usruednticctgX_hgtfx|g_cporhwrotbjmljexOb^L`_bhszj_\boeYhfpXh`p~ZP|~symnhmZ^qYvlOqdg_^Yy\h[uagjt\~q}c`e{v|r^kvcjOepgvV|woTt]xqczbeyzUuaydiinhjmroXpt`depynbju\ozyo^bjok{obwUggThvxkHx`Sbo\hypVqt`ohnnYfkogpwry`v]{ssau_h{pozpc}flq~joonvwbekvxQm|q\s;pxustprM{VTxxaiw{dtt`nwonks\nrjxOqbigvkrhbRkuTerrmjuyjsq|fionlgtuwiSgpsuNsgbLwlXY||ndrxfcZfnZyqsbXhlfvnbzxkvYh|md~vrsrlaQipblon|kmtW]zb^bwinhswqe\vcrmx{lWkcmdwwom}^pkzmtkcdqyh~Ghkp\fPmioftnv{o|\tsuuxydfhejisaiihYpzicqudqviijmfxqnqejiwpPtnpTnmWyfqoq{yf_{TqxnplYzsm_fqmzgSdh|nf`n^u{ifg}^bkfnmnrzsfPvgbasc\sTwqhol[h|yllqhqtionlzl^utuw`^kmguwrsyvkeua[lzTbaxMpoWvm|ukapun^kvnowbzebdxyiyhnjl}wncir[u]enxehyhzwogkabbvvdfkuh~gZmOa]vs^fmk^ws`hkxrst{PZ}y{tsaaovtuqnbkbmwpyhkv[[g^rglhi|l|zjmma}{]wgbulitsojUytkc`q{\ogix{^ohufinbss^guch]olisgsbmlthPbxqf`leysksckgmzXr{j{YwqYn\bcislywmjomsgdmeyeertum\y]lrdaydmzk{faebggml|cr}Zcnn_t]zhuqlphhkqqoP~~jmzf{j~elemwvonlwnq]jcmtjiwi_pdttxwe]pVnj[xSriatxgsnqvhodwZpjrzzwz[{p~ugsxsljqbkvmumitduwqgvraNflytp_w{joZtutgoZkz|jSdprn}x{gZWqr\lofqgflwf}\bugust^pRiyikghevt^femnqxcmxg]rxcofefoovsaf`eQhmmfMp|s_F[aVojvprm}Wd~jbpWKHu|fqYju\hcacpz}asd_qdqfdh\sJPyTqvYczg^`dsetkcto}rrhtfyd|V`evnhukaidtr^sjqWs]Z{tdkgxrmhpsg}v>T|]an}[~\gc|okfV}w]U\ltughfac]d{erg^knmwlqagjoixwULkctu]pjWj}i^aPtp^_n^mlaX\N}gfkgfn\Ri\nyewql{rdflwcokp~fYkud]gWpJu_}m[qsrcrLtrqwf\l[bcudmUi`^{JegbTyT^r`jnpr}ZGficgrdvdghlhwUk_a{|Nb}Przcq{b`wenpxhlbux{icgrvd{e]wcpzmlf`yn\r{nieotceZi^oYak^eTtj{n|npuqjnruny[vfVofu~``wbsYhcpslXflp`pcww{paoc]uptgprgc_aeqr{ZXgrzbjrVbJyioinQdor}ndueb~ikk`qqSieZ{}cTi[{rclvxqZ[ff_poTrVxajfyag\xJqhqkmj\]ghs^zphpmdVfrk}ljm_gxyx{]y}zymlWp^n|lvjujq\cw\oT\q|qspohuooz}xT]pcnZsqpt~Zfdh~mbgf~q}qrvenkj{_godZrj`sraj}vcz~|wk|_vwlaoc}qgzqxnoTolyztnqynnw`~eh||dbnmXsaicu{qkzbxusvZbouxorn{pbae{rfy{abicv^s\dispn]vw~gdxYu`tpmsh{trluejrfriYrni|Vygdl`|mnnjwpydy^pv_a{nSnZYg\sdmYuWkjqZm}zfsnGtohppk\aol\lXSx|rh_mwflhs]kguvkd_ugdykmh|use^tucdzyoqjsyy{toqamn[ei_}z|ipjen]falStw]oP\X`Zrh_epzZ^bfXXXmsYLpoXbt^xp_qm|Y|r^WgJ{mf]{`xldlhVpuyp~qf|nb]r||m_cygin}Tc[cobToTzk]ZVVoSruM}lool|xqpm{grut~Wkog[^eullalQYw`cmhPpqo`Ycowspmmtqssvvatgmwoldahki^}oeni\dtlhioqU]bp~ZlxrVmbptx]yuhgav[hZjkmsiowrrmwo{hUkmb{^x^ZqeaqdvzusUz_tlosmq[[{j{ovcshb`fahurwdlmnk]jn{xwxxygvbp\`s\red\ucou`wW]qi`l_[~u\ki~mqoq|vtlP|]dfn~xww{z^YexsmR^`^~z^dcper|vafzd~zs}Xflih\p^mbOalpuskw`y{ydfygz\Xtiljjvzlhon`[_yjbXy}uXQvmafckq_j{\|e`wzgfhmvPtuan]_xYspTKmjl^_zjb\umRY^~xhbc_f[Nqxwhgxpdeswdsq[aZn{ifomWey^dshpdutkzNusnhs`pjvosozh~da]YfeSsmy`n{Wiexuvmx_elbqxwoqyrs{l_vvwywdptvvvl~ahYoy}al\t|{^ozogSkwgq~g^i{Upjflzbtl~jxZrlyhrfrt_fn~\thsgaumnydzedva}gwpktqxgo^]_foteuI\`llQkWc{baQn^xgelxxldltngju_inSthzyq|or]fccnx~uggzpn`vvlgRcsigOXmgy|jz{~ittazljm\p`shax~w{mT`fmqqUaalrq_x\wlki_]qktiusuHeskgeXuxmuzqMi`kmepslp]]iYhu^pr`z{Ys\ki}pgdiuTvXt\ekYhtZd}ekj^q^bknZskn|ZlxZvmcmkn]|Ld\gfj}eTowuqfnwZgXphz^wb{fg~jb_ofuhWfW_krejdzhlvjg}wqcrghvxgqtgmUPp{tm`b\Uzwk\fx]rzfizbx_bZi~^dh`rZuvatsb`cde}azl~Q`t\nmqb[mk_{hVueT]mpyvglvnaTo[ragiYshqtr`taYnkigbd]bgz_npns\uqp}rc~_ws[m^Vrc`kc_i[TbIUZojB_z`}evp{io^[bxWnql[_mwuQzw\sr[ekq\rnjcfo^ns[i^`~clW_qx}pgb`nlktcZn]lUprfPi|`sxkfz[|{gaitSqv_a|m[wXwkomtctqWxYd_xcpZ^jpimru`fH^jmwY`=rqu[tqj\k]ggl|cjbl^ooeeeue}y_`pimh_YjnrNgZjzgcc`chsh^wZnskhulfeR}cjyqz{]PjwXpdk]xiTb~i{j_UqcetjvsckTuv~jl]hG_md\wwronKq|m`z_|qhlp`vRp|ntw_q|obl_aoq]ohsuLhgbbq^o~~\lzm\p{_l`frikeflvgq{qavo\dQ`cXkWWYqqcwybnsy]vilha|khbp\iyn}rxy^n^latlvtdlmxxfhees\bpnhejppugY[XRtwxdyq\VrQUixl~`u^^\wvkdjfhguhwbv^i~p[brrrfX^meoU]Yvrcym~c{rwcS{|skghaogmfxgNM]Yxqcswujri`hu^{dpe|it[_lkkymtcichfckfgucVvg\djlnzgYiUdfuibhjg`hNsld`oo]ytxT^suuipZ`nmwquks[vt{nd~nd{XrJZbxbhc_{fvkn`~grgl_jjarpuxfXmoe~zinoquW]fj|novptt_qunhtxufmp[paggqvyh\din]kfubffmknym|bpZrsvdybvvruhm~yjll\~wc{bl}yokmgoYrpaqthuBjwVtjmtmwl}gdldiwntxfc`ZtkmUaobyewxoisvwub_{{tj[bisg~yw{nghOfgojoz\W`Xnsiev`oakdjcuj[svrmz`pNXY_{v^Zubb\iuwi\vpyt_{iXssp}disbkjtostqtfxrpfpb`ja^mk`pyrnbxNtqoaYxlkmvqlsXq|pi]jzilhbVe_ixte[ovbY[ygqturthu\yavhfX``plxdjZecysY[omxdkdjhinujbe}foalguynmlmldckultrpwlsahbvpmfl\[tYzh\klgb`jo{pj}|asypffbqul\qtxn{mhl]ttZsu^o|heUlacdVRmrlqhZnmyopomi~qmnlklovvhpn`]]qs{a}dIwfzgovxs`T}pskTmezwYkk\~ttkeelb|u{te`kY_a]ti[i^RiS@b^np{oLrqptd_}j_u^_uhyvkonum}mgpm~mb^Wul|}uhyW{]jhjhrrqxubqsk|dlMhb[iwt}miZlSp}djwx\gjt|qhtrym_q}j`qlvWsyWwmgffwiyhscglvniyfYdc`antocoeavir^yqbj}zQjUmwb_lg_dhfaoseaw_i~el`kW\g]`Zfh]kojpbljkVrhwr`ttuPseotwlevryRocoqi}dto]lc^npnU_kxfkq]mlbkk\|`ywu_naf]s^wsctbjg}s}~gmz~}i{htozjVw[dh}zvW{abb[rx|qm{[v}[{}XqvxjtglgbwhsZpfR^|ey[uhhefThuv`wuSr}}fn_clnMdhmIx{brurdxamgif_lr`Skvtfxd{licsv}lkdskfpi_yrbhkeshcpc|jvthoiPto]o\dlWudRrl{kmpjwh{hxtixyrzTuh\tu}ggbXipespur{TjvnUPupvhlnk|[en{^j\~uuui|lshr]|puniZYwhypklk]\rdelZ`\p~Zggrgcowzpnqqsnlxitxqcal[mufer_egyfsofhxkgdkeknwurpsrcqmjqoqadvyml]vnmrh|osz{in~eelksvWGs[rffuk^ojpqpjmvisYcnd^tzkZgvab_dhepnqflusjrdY[kmYSb_|pzqvVvvcZm~Zkudqifuene3mrZljrkrmesxXz_RnrV_krNtdgrsbL{ilqjs^cbvXrjbpx~\jsdnyon{e^gVm}Psn{^wUns`eiff`uin|q~}darhycs|odguxVShbaX\`}aytmco}Y`sdnVgqtpg_mjy}so}gnqo_}jhTL\wlsih~yfbvpcgdlYjkT|k\lwkqsp}h]dowgKlkj~}edJVj~ie~gSvmQqrgn_|\rqZspjJuyPls_ckUd]}u^`zqTxr{[nsmhngpcqRrJboYWwqnmqltk\rlbZRgbo~T`mYja`]l~hrqbap]pnr|{tncQplxbmmw}hrQmxtxoko}aekyfnbokrsnti^s`udu]uqiwjy`flWd}Zre|wQkzcuuyhfY}vs\nq_Z_\whUxjuyvykrwI}_lzvvd{}feY~mqf}f^pmqv{ncqoxsrxkmcyokh~jbmlcxk^umit}jpjdughc]lj}pMsk`t_vgcupoitt[aeWnR`[|`ed^mj[tdtatvk{^pgjhkhmvav`Rbekyhkm}zuTezyl_zGkjppt_{n}ydds~lrtzwipUwyavp]{T\Toibw_ylOuimvnn}npryW[txuq{|pchksfon\w|mo`MzUn[wf\tgtv`bunwp_dm|_ybmnOc[slbspfd^bkt~nelq]st`icd~wZsfXP\sego_h~|qrr{jzsitqxcvkgilpmywlop}eaek||}h^nodl|xcWmnvZtmboaQjlhjgr{wfiiyi|oaoanuZYzinxitiXvxfMmmxxeybl~pj^qcpgmyvizd|je{s{zyxkawtsszn^{wkm_WeoYqxp`a_adyWbhr}}tZub`P|\|h`tvwheac^yk\gZSnvXhn|gusgqnP`zfhkpgqt[Xwudgq%aauuajw|tnUv^TQ[w^pgklkjmf\|huru_hXlvseduxRvRYpWe~EMf_jlgp|gft`_jswYiznb{}bo\zLjjbS^xk{khrfcfsr^Yt}cbat{udhvwhwicjxcrk{ig{mpskpmmqrdlfstfo_GuhigxwlgkdevlxuqgajcJqx||_ipiupku`kOiy_samwXurhtjXsVmxZyruks}vbTgnlnch{mw{tzHbvdxX`hh{npYpiotwFoqoPTu|a[|ecqiRqanttuW]Zr[lTniitZ@Yejxixj\lrojcrhTwzmlqeZilpwrg]lfj`|kvust{hpWnejwebemkkf`xdkrqe`ubijdyfzcpro_g[spdwTlfxhnzg{~Ztg}Y~{ypfjdSjgszxpMd^tmTiatxfevaoy_ffUz]{vji|zr`lmsqv}dme_pvwtwu^mXmkzltkkjfiohz{uon{lqousqqp_{onfpkeklumk[dzryvt{gqlolr|ysbktmvkdeioktlidqvpxxglmoqidtdqpyqtk\nthppjvfVlppqkyeoX{tfwdjtzqmhhbr{`ow}jiluq}^ocvz{pn]phrnehf{khh[lv{`xdod[}eb~cuoYtteNWWtrVf`avlyjz~uJ|DhpMl`skmplmMekUnpk{jaOtne[k}jgIq~sych~nwOFrox``wshb]idxado|iar|`X{S~ypn}ngYwvOcdbq`^x~pka_}Whh|ce[}hjgptw|9}n}jnoTrr]d{p~qvhzrkmuYVyhvly^eE{f`eVenecsbdhatnqtjzgef{dNzkggXpjQj|k{`jiU{\Oluwhjz}wvcsyqoso_h[mhostr{ab~vgu[~\lRxYmg}_oZsVeim_i[owjbSmxuqodhygepeqravrjnPx{y_Xv_[|x_Vs|uzrl`WX|luZlamtVmlw`rlw`Qcplzpac]Y^mpYXuU^lm^hssyiYqiuxu|`^yUmbqyqvWc\~vm[sgszgdvfcsrRbSphr~gr]ipld^ox|`yqqicdbk|mU\qn}vmvwPzb|lkifc[`vr\^UqfulwscSm}iNnerwezl\henolab|MXx]ZYl|]xggDwary\au`cdregrmvhenoe~nfVgUodlce^Tjgogtngxg^u_|piwo\soqgenv_p{czlvdzq`mriy{`o{^lsjloxz\Xp[gexchkuwrntndTnocveg1oXogbme[alihtdy`_dqpkW]vrcnhkdxnlDvyuXm}uuiwvederoyue]cw_c}vViax_Rlv~gswmTp~`f\|mWfmviodk^axzWj~flT`rwTl\~ypunoqclP{xZjlcpkp|qh^u\bn_rz[vezT\{pRvxcmiudt`x]`yppwuqu`vxzuyhnd`ltwconW]o]lo]wqjw_sY_ehCZm}h\htNxuag]scggwdyXuxyidTpmecd}[l^ek`xdgp_abUOj^buWrru|oTehb`k:whRj}gd~m}_RljgYwlouhL_rubYfpmTbpgzsj|Rw]be}lVfvf\VZjc^snRXaWloXrUhb^j\r[wqYfn|Yl^[gg]O}p^cZkne[lkWUjcVX``yiLtiykz]GEcrhMvzvnH~~xkl^kM|a`kU|svOnkyeY~wop]xhshrk_i\ep[fr|zxmftcqbojfuedkc[m}rldpsk~w[Stprucm]Zju|wr|gvcs{ykxhomSp\oS`eqjQ`|^zrtixlxsVjdtZkWvacwxouSnnhun}s_pada_lldq{rzjv{sl{z]vue|bfjSkhckapTMiujap`la`voiaVvjmgt`r[cmomj\pkoxsrrhro]nvsrvp_pespreijydkjowtyvff_gV{bpqurlmbhvYbkksruutrkgnszrtongr`awzr~pude`xtqreqfspypYqzvvzpouyzsf\lcdmwhpkmglwokjptrgktwvmlauiwwugtobnRq}litgtwkkstl}asXpqxwq~toywp]xdzjzpivp|~xlslxkhmyekcc`dalgcduomnw]uqqrp{{splfiysfuqacpgsyufwcayyxihauf^enl}xs|xomZin`qotmxdcxeyfov]elhnhppbbjhq|yqo\nacsyeor[xpkpvo{ry{lxcsdingXgfdZW`rejyswyu[j{ecn_mmrhhhocttfqqjjjhgt}u}zyeruqfxk^rrsxiNztYvbj]otj_xkciqy`h_p|dynbbwudeiTidnce]psusvVeaur]]b\a~fY\]}[to_l]^|l`pnarbtvYlvwyv]mqhi\mdmpcqjor_{~ocR]pronetuis_apzgql|hqlyWx\wZtui]puXnkpdjoyZxno]qaq[~\gg\_ktkmpqqv{smllo_gjclvwtirriu^jllh|}jrmxduhqgvmmnrwfbtluqtvwkqjunmqvdqn}qjZqvikhjorrubehryt}jcz|hoonokniY^{rnrs^xy_mytugxlz[r^c`kjvcfbocx`fc\\yv`on~fiplUqsyoaqyr`ei{w{tsysraitjrkjsujflh^gds|^irb{lutomsclhXj{x~t|k]vil`xizc`z|i[Ttltgpe{ioflowpdd}ojmryyimpmi}aqsjnxqpvvkpncyrkrlcxdo{ffze]lg|ilrrvlS]w|rvfurk^apuyvw`m[n[aumplljdkkbv`oizurdl`bbwhjWe^lhha`ezrmqlrluphpmovpln[l^wuqomjqsbldobafd}pmcohtoeaajg}qwYtjzaofqkoloqficbphqxtplgWihrnt~YzmY^pssikonkogirsigldu|lnga{zofgimzuqjk{r|mjfqo}mmhadmpq{|mppixpvvyp_d_eUcboeiguogqwptdnmjbhmjjlcqjtwhvfoweakp`vrooo^okqoluvmxffpnqapXoqqlnraydy`nccUdernewgxepffslw`|mw{pswkdx_glapnhzpz`ifaf}ybmbr`gf}\]}g]oqwmzxjsxpn^c|ok`cl_fsnhrcuobhmcafS`nfr`lpyqbqojzog^qlxX}n_opapqVgigda{ol]ulbpg_ijgqznyvzi|zglctkcwy[n^cib~kpsvgqhpwvwmJlWlxrazpzkbtocy{di^zs~svpgvzWggxpngu`]ogc~ulbrxhtj^sdldwksympJco_vs`_jbala\w}}nimmzjzfirmhitiewdrsmW{dwbnshiy_v|kjZLeXh}zxtiwjtlpf`epevm{thuilxfufr~eza^jo\\llsancygwntn]{aqrrlmrIdhprqeUzx|kol|\nppgsrtqnn^n~svs`jkkkfmgdkt_]nktggrnon^lUjnaqrvhnitpsp}{ozr\db^wvjqocovltjk_lma^zetqiqbnmhm[jt`thivtnnpgpsasu^qe]oxjcks}uopffakxemjaoxykpznYkiptokc|ZjqiVenm]x~iiziseqv{adpmotmrug}niwrozkilnoopn^hjlhudj]nkkgr\ppjphXraaqymjrygqeohTh_wksk~dfnnzjYnqjxys_^l{prsuyxysmwkuwgqljZqrkp]Qrhqwfojkul`xth[j_^Zikmvj{exwc|rpinkrposj\kk]lwX|tpznkoh{]hiv}t|enm|nyyv}l{{kfknihqcuawXawedmnye[gpoi~qa[mqt`jsmunti|xeovgvjbhmvTaqa|wyijqavt{tjpogroimaoluvwn_phtzjef~|rrirz_jrbiaygfkUmhxquwluenjqqwrjUci]qq}vwqtpjymdqlvnuqjycpdWmjzjshmg_g~oppalruj`nqjy}xq{ikujrzj~gsgl{et_bmtvtqzzn~|isoo{jthmi{opjukjm{cgoc|e`rzqdfy|uhvbo|qi{ojhgr~^kbspvaunqviebm_pgqwoqhozl^Yorirlwbkmv|mmttr^\awdx|rvwg{ixs}gwr~lz{mZtjh~xcv~pwqyebr}fznqdk~nqrQitnshYQpt{\klztod~c`QtqxmgyeTloyejjopipibewdnqqu|d`dlfvoegaocllphjovfgtpVs{ovilktens`sriOsiutppzpS~{tnujswpstgfbgsizshilnhzqwy\_pqooqkconpm\xoqy~tkmkicyrdhlrkYenhspzrgcfk^fqolcic~wx_yanpnhmnfhtqfsyrm{rdvfqmf}msjopmombyomjqfngxny{qkciwwa`svs}mpjiwn|truai]enuldbt|zzcpfsv^wnakb_vlnihkuugjkzmbkcpptipatuemTszqvursekevj[mqiephpknvjebxlcvl^flmvflzuuspuidnnZsg~rxdnmrqdWfjf_go]`qiizqrmeorttxjfl}oX`qqoout~g_ttynqixyivgwyoo\tuuokrt^zzndlZu}xcw\npzfqbndniiomooz}eklkkukzfi~b]nfq_pxmclaqW{}fXhq]tXl^j~^rhbrktkj`t}ujVdvphjkdkmpiZmuscdnP]~v{m`ukjf}luhgahfWf~Z\mx`pokqv_plegovaf}rpoktblngbez`julhp|nknflwdllkedqfkwspxu_wloljqykhxdm`jh{^olpzldsjljg^cj|XengWvulkz~oytmnbSxmxrjt[^fn\lij[}ckp_wqsp~pu[etf]ejhaonyaX^_TddayZRqpqftcpt]liipakhxqamvn~XjlenpnnmvpebmtYypn^hjhZssx]liosmc`gcmm~icll~rozXauuY}spehfif{srfuoijc[ogod]pwtq~]mlstlxjjmypgprziv{hkzmevmnjjloczm^n`~wsohbx_ernfoijubbmtm}lg_dqlm`dhobjq[\exltqgholpclxdlkoq~e{rv`ubywisbrwjuwkxqpsnkosdytxqnqlk^^kwwj_opokmedvugqgttvlzsswpycoifm^gpfwyqlnvkkzksc_b`{{lmrtiloaso`alj[elc{ynwse]\iqfbktq}ckebjp|^fphah\zyylcrgigj[qnifnhdplhvpq}r^vhvdp{\hhjm`polzcstqjryyfllsi|a}gco_efzou\^dippjkuxxbblpjvvfjn~ods|jsoqquskzqxmmnifgjtul^f|voighlwln_pb_mqld_|kgvn`qvflw\~ktrVuy_aynwhuaolostm`o`jop`ertnZ`mnoacv]udcinxeuxyapsgndd[{pfspc`scyhiobcqpic_jwsmqjiefr_ehxfoffyli`pkqf{wouleglj}inqdxrmwmoskryewndexvpl\vhk\m_eo}ossbvbcnv{g^tskhky}rjatpfc\~qy^}bvqkrx}lWvnxoiisycymwkzolxmxnygjlbgaduz_hyx}tmcuYzkh^gznkjejcf~ijg{rtdSftg_hzrlzugkillnpyufipnqstrdlffuqofk_Lgsgikin\Spuipvp]maohmfXuQvcloi}qkilmse{gqmyYbqde~vknvok_pml`mwqfsgoyoqlplhcgqloqrd|nrqxseuzegsimm[gb]gkvvo_kegtdneU{r_dlmhhukwrp[rsyh|mor`hdolvguxnqcwrpk{nbvepchxcjnydlkt}_ausmoxvlknjdkikez\wqujrnirhx\_jkj_mbqnnnuliwlhkq]t~tqwsggvuumnnaibgYrwputmdsmqrvkopqomqvqntqjvdraonwmrri`bbyvojfjzzk}pmhhqfvgoaa^q}ixs[cocyvfk^tfphv\rn}nhvmrjslmr[rpvyupxsskkyf`oYbtf}to}smpyurjpxkdpsnm\ndm\mwjz^snmizuygifcvquel{m|vchhumjxrqms`kqevsrjemxtdfrm^ubufdl}f^t`gybyllkjvnxcXlshtqmlTwgusdtjfsbpreajWbq}~th]hbhlrcitjOagoms^elux^k~bWpvgigsfduuuvkopipptn~kykn~jtphfps\|[s|qqhjjl}]qrohga|fjhWfibskp^\hjylxrsrwtvfbohkgri]{udi~poWunhktsiii^llxk}ts\aqsls}jmjh]ogsmyjxmtjnikk\}s}shajdnl[hirhjbj{pistdoo^Xsagowg_donqzoinrsoohu]hopvssoqnggbhjj]smwsfjjethnylxkxgrbvg_jcbeyndq]fnWn^mrugovfywlrjgqpniofvbdo|ittnahpcenphqpedvgokhjdveki[ogVnfuc\ps|jeeotoaxmplrvkVrdlq_lw]wlnshqktkzstn~svjkzamy{h{|lhueutogvfjjlmgsqmzeqghoom^lzn`fl`ly`r{h}nnlrja\~vfpocixcputtqwku[^uehwp]coswhh[vn]f]}btmwrvopkv{vgchmiilmfs~ot]t]urklsgojmm[{qjfnlrhqlhsks~w~khrnknbztn}zegnpnxqwo}\zoq]g[bgprokvudjck{fsifvvn|}`whmfrrxagWz~pybpvxpcrmno}nnjeht`doubdvovwzcfgncnXwckkktq_nnufopmsx{ivq||xvx|ogvki~jetwtvqbxeozj\|\mftmp^nvp|jhmfpz]zaa|oshqfiaeguxtpt{vfkhfkjtxnllwbpm|sl\mce~rh`~hnk{~dsleveiivrbu^V\yxqmomt`pavgoklalhjrbnlnrcdrVqkfYott`\zvxqn{mg^qoqpokos`akfwjkpl_jjhqsfkayy^rly|^{kk_j[nXWpk~ododopX{x^`g_dguhk[krtstjqqzqulullmjcmtiocpbix^p~htazioktxltotekntrdota}cua\a~ctnwsuojjcnjivqpem`fb{giwmh~iYynsxcsn|kjixob|yyipdupkiXkt|ilj|ilvpnvcgktdcddf^gxQbiqypa|vstsovk`nqhv`~fk|r\hijffk|mhrkpZyripgc]qypX_[?gnwhaxWhgnkggiaazjm}Wwmslou\|ch}mOc|vm_b{qifl~n^ntdwfjkk}gtkY_v^re{n`ij}kYnok^vj\rqifUsqfmvies^^dlopudi~mzk]_pvYqsgdmn{lerwn|hwgUkkl[noTbmxvcdvr`is^b_skeulz_yqyfr\r~xfjkvvgoqs}}kcliuzzlqf}{`c_jmowirkdjcebth|rbqguxg}jr~Urlqfyhf{tvtao`bg{wdhjhrvvf~k{gsd|npwitfejcesl|^cofe\tdob`xvuuvt^lqshoqetqjqm|dmkryzeiuwot}iogjsqrurszmzll{ijswnhprkmno}gd~rtfs|}knwm|t}`^hWk_yhtgq`tlhi|k~ickSd^nycplopkofonmkuyc\|{]zaqz`rxggkbrrseoqqdpzkpsm~g`fkkdlcikudxgfmrvdipp]qpnz{b^n`}e^hxbudlcY|eh}d}drja^sr|pitkgnlocv~t[fxkny]lq}skqzl^mnbjqelsyd|toaOvzydiu|Xki]hkit_sijmhrWeci[S~evi`fisow`wrv^llkfsswfchrzgoppcjvpoZ}l{mnia~ul[cei`lpbtuwfwtynqbvjypqjyddxp`hvm_]}gqi~vrlmx|mupYpoonr\smZqnjpf}usnakx~rkstX}`{u|soadoirdoujyvjcjkoprrxdropzrqjxnlaeovnl\stp]wxjwnlihjmWqdhusvwyhgvgvzh_jgdmykuvi`s|oiohrugqfhogzu[sjj{yuiubjjx^omhfonqhvmpmsumdbclkrtt{zSpiryrtajvjuyveouwlqfci]folw[TxgorXk\qfudipisyelllgbrvl^fv{sssjwkl{m|y~znmqghlwk`x{uo}qjig}pwtlhtwlo^hs|hy~gl_|wnxqdoknnb]`adtmretjksyo|nh_kghuj_znpm{}yomf^ijjuc\kfjizpydJojknsrs~nsj|qmhziqlhvb`cuukcllklwij[rkafdjsjgpnnqYXg`Ygocembu_`go}y}ujdimlZjr`rnlpjikprZs]ijV^scdoedykRofrmp0}onqhmfhr\o[bfsXtdqb[wlsqtiogktjt{yzgkwrphqul`srdsnhp__e_uvkioojvvl}]pjflbpnidnjmsrkZhquv]d]Tkvi`q\mvu{arfSql`wh]nggTn{rTv}tpm~xjoghs]r|ybYnhkk\ikrqesqzptvq_hulcqgrey_hktylzmY^jxXsftjjyfl\lz}jbi\om_Xx`qi_^xxtfbkkhk|aruklstnf{YqooqlbsXmpy~crvpjfgxhsqwxwjjl`tbc}u[ndcnanp_rw}umujvveamjuwmoZh{mt{iqZrvmtjzhlVcodyiigsnpgkosserxusfklitdwsgrdkt^q|ognYhjrldtfetsh`nnsg{rroxow{kcqrtnimfkxqve{}poi{ucxahSi{^g_gwsuolet[qifps`nexlaa~mkqdwop|y`npwvl_tpooorwguyizre|gsujzslhfpilemTcpysoajh}iifuonxn^t~vvvzywolsmqxlmeeouqrpidl[sycriokvtwcwqlYh_icelretwnqqokk}rpmocjlfrotW}vrvvtsgwuplxhnsqkxkxgzrcszfaunglo\bnswrzzwcn~lzontellqmfnolklhrkxuryospnqoqjyzkrio`vuln{th~ppi\lrhjgb[i\njxheekn{dg]kottruxcdpjkko}s}oxfvdhihsrlqmvd\mgsrujntg{koykt`tsioyeaqyri^n{oosncsbtWodwx}oj]cvvgmrkmsbefporyghlcjqmfzyohq|egmqwuhkgpdgpsfqdqteolqjqtk[sudot{niquupuqnojk[rmjmWojskxytvrsoyn_udonrkkqgsrd`wgk[ch{pbsqkyr\ronso]itZuv`tsumb}vnnhxigWxm{dgbstfqgdgtiXjvnf{ta\og|eretvtwqrnn{ffr|hhnsk]ir^`ogkdwmkswfvl|hkuhfcjshq~swjjwxysdvutrgjxd|cnidx|eh_]deqaviqrr`wphbghplxgzk{ptvljupdkbkqpwxfuqlmqe]Zzj~n~betuiOgYxc[bqpoewvsmtshld|iki{`qwn`fhlpwZxm|ZfnjijaucgtgaknspudrYjm{hno`llh~oijomkhzlcfrof{fwo^aacufji[kwlb}vkhohh~caz{ggk{yhpgcgzskrfgo}hz}nif\eqh\gnYnwvom\V_fp]}fjnposi|h~xmla{^fs^qlmk}hejxwhi~p~zjlxgvbgUmnvghutrkwnbbWdtq~ppcfiysgx{jtsgcljxaojjajvnadl_jjrtjvjnwhplqorl`p}llnm]k`daruhfigcckblrlcchpswottpkytu]jnnvZi_wnsirb{lfnoc]debupr|miiYmsitpbzprcjt^xbmn|{xuuvcoy~{nlhxbmebUxZbxllnnnfoxoSzqphwlgvbkdlzma~dnvh[kizo`oiZYrf]ofXhcn}cckwieoodolwcxfatngUkidonbcjdqknlypdjexqtl}szjrfmswjzfrjza{lwltfn{sjWhhwwnoVlmtm]\jnnmhzpjbkvy}vekqqe[qguyy}dekiiv~pheimif}rvrjjqhzponnn^triawzkkgy{rtrjmzZtocgivfgl]ofcnYggrnigvthnawhyibh`}k`ccmfssgxcmkkxyvrhl{{czlupduj{Xc{vh`fmy_shYl{lhifvbys~pjqi{k~kwqrqlizwuchr{w^g^yvpyuaktmttv|dkTx_r`peznj]ps^]vlx{ij~jtr`o]jj|osdh`npmg]furqgwpn~wueovsgttccwp{qi_fyclzysohjzwhqy{yig[fkwng}q]cu~os|}ioupltnvz}txjb{svyxjjvuhtrm~hd~irtjwifl{^gnmwbxmaeuptgsqtnsnlu`kpqfydmnkzmrelmpmkowkqn{e]ozg}us_eixtttw}hkeosthmfhqskglsnjreaupugeV\svteqnlq~wmnr}pllwfd]f}{td}}zmpxxvmRyazknumtku]`}l_pviappr`yuLucdxlkp_{qhp`kmwfivstwwurqwgdglnq{vxjdfaqwo{cyipztywjdebngpeecxu_Socuoyq^t~tmvfbzvUduakmbpzolxj^fghspbilpgp}ttmcqtif_kihrdjorho|fsraekhhmursxon]ssgy]q`ethnzjmfeewhunp_wfxifelhX{sy}boj_cxsome|hhpgbrhkwrhuu]qi}n{iddsqlhamni[tmq^pb}oonphcblfkxksjqcpbsnscecuj{smtrzvnzgwgbvbT^oylnplrqpifkhmicygnmg~ultmzimipsprgwgh{fijoajYtmpgli]|ouwv^elljl^huirplvnplsvomprTjs~ivyhkwqdvxdtgmfshuh^llhl`{qkwmtmvlnluqfo~f`s]hne^nemmTdjajtxzvkkqmflno`kwtz_vnbqsrm{WwMf{jt]]cWu^lgnfpilyjph]`qTnVjiiutumqyha|mZwbh\j[|mwmwlv_vdb{mhWhkxZhjbabmo|fqggft`w|ke]]cppjVpTbd^f{zdvlzcnlPqf\{\epk|djTrkw]^yw{XxqkruhcZaX^hjk{hb|}[kZyat~g{bklplv`nrunnogcpbsroKeskcnnp{gfp\rk{gdsokhlyaeSX^ikdh{q{zbzlfamsmjnctuhv|qnpwahltwlxqTpq|pxwjzhrhYso^qxscef_fpZqlhtelhgpj{mihqvs{ry[znlsr|invmyygtypipgb]hfbz|x{]rpgxgx^sNtbdnozofzsn}rrkdlmropiiprgnc]sdfwvli}qdgijtoljez`v_z~xqznsnmzmjvpty|vximsw`eghUhs}p_tq[j]kkqhngkVhfqzput]ue|XjkR`xl]mp_d|wrpwdur`plw_qolsjvzu|hq_ohsqapugji_widjjjlwlhzhqj~yz~^rqtmln{qalwpfniyd{ntpwmawr_e}buum^muhtnhgdlie`iqydslhefrpfcovUosecjzziqslwkgpwpsdkdeapwmhrlpafamvmgh}hutduo^gnf~gpthtWpZrwefXlg`oyhvm]rinnslmo`fmhd^^kx]yvtbcj\`haljni_skpigqpurye[smvhdunufahiciillj`mylopsmz{suyjxpwstvxesmrokiqsvijidyuttvzmrofoqerwxshbtmubengxortfjsigfpfzgsmpm]|ujylouqneswwlomszmftmiqjvpohhpuslqunsx]uvigtz`owxunqrqi~ncnjxiszpjoenkt|ojkzhe{m^p]qplqkkidmvtmqimzxxfftvmeqgreudutisohqzjorw`v`mpq`ovcwkidechwpqqhibqvfjicg`{vijwxZfktjpqp~n_Ycjnmor_jlzjax_kzlhdw|lrVpeq~tyxkkk}scvpmqiqinjlvyxbulywjpaqjz_j~WhncrqnjYlummuqdZ{c]_ntZ|}_z{rjcpsqsoqxopqolys{nhxzsvqkrpmtywwgr~wsluor{zlbdx{pdorp`jysi|m{yhsgm}|pyvtjst~|ywnqsv~svxst~nylxxwrspz}wrqhcuyuwh|uwxm{oh^wryemvqmxyov`blvvrpqf^vly~tu{p}lhsjnkbykdkzpsvyjrtsvwlz~Zbm}jgmjkp`xykmjf{jw`otoZiukSkeonrowwksdk`dqhuuym{kwhlmwg|sghbsWdqkzpgmqmg{wazi^{fihedms`rtsnhjstodwyqpprmokzhmcnlgpavr\tmeduy_{nXXbk{eqvpzzj[lXsnidojffd]lwndoYa[bvu|lecutlio{in[ivdcetaoikxkdgdig^mukbgun]{yhpfrfw~wpiwxrirmplnqgdgwfvtqbvimjdnmaixtzijomrmjv}mpjwmimzemfeiwfispwwrx[rfrquclrpnZrmjpcg~hc|{hv~wtvnamqmoep_ngswgclxjoglaizlwxej[jo_objvsejhkbpl\ghijgvbgnsu|sip}skXhahpz`tl|ub~|\xek]js[sfXt|ykZzckvRlrl^vKeZxfZnlU`eqmYdi`lk]ko\`xui_}]hRdoqmVb`fporWsxjqVxlek`xoZnJto[v}rfSq~XQm_lmeef[OfpyfvbgP\mIijlev\`jzkdikqdQrL`sKy|Zvmjed~Way{mj`fjYbyj{rbnizac~ktvzygngimlwzzhlcithtgn\_npklqbkh}jhhkjkyoe]p_nrua\ut^pk]qq{zi~lbrm~gnsZfgijcZZ|jj|l{b^rktkgjoy{dz{o[[lwrhp~vyqfyh}knp}~{{mrkZbf_`fz{rvtznbgnnildpwimweqkpiecnkvwzlUtRnjikf~iklq~cggpnhuvnrhg{ne}ywbnlv{cs^t_{t|jgmaftl{pNZqsri`biowkp~hkuliej|vpzlfjtustuhnuaxonfhp\zhmrjvtgfxrh^kdohwtwpe{jUkqpsn|ky]rvzmekbugkrkgyfrhsghcgiffi_nruSjqnzgriglq_]rhjmyoy^gjnwrmppsvewklgvwgqkbuyg}`kbhiweipjoSxels|omp{q\iSr{{vzrlsfu|towjqjjbarnyb~udosTmwlsmavpii|navsshq_nspahesppmknjjhvhcyrhlotnxnwumpfpivthktdrzldgrvcX]{g|qklqehyf]lp|lmvprhkfpXzzbx|rpi]^hlslijsmjZtq}yvowvoclmzvhwpqtiiljge]j^qdujjoinkrt]spi~mp_{ich|\nqbeejgshvltkp[vmvofiijqrpunsm`kgwujrbyTxmmtgpjmmqcyjiy`gmlntvyiyhipkZmm[}o[m~lXlWqie}turths^dhb{ardhlrgpro}hnu`wonsuluipneafrXhaf}frat^jyswbyosqosvdosgansk|{iblnravyooumq}nm_roowopplde`xrox\uixu{qrwrsqufogeohfhmeaylorXjh`abic|mpgoobhbassqxfx`{qzwwv{kgyzpdrfxhdvyv`cpncyovoYwslihjxiep_j}]cjlfqo`sp{tsdoqtbjoacvwkrwuy^Xtqm[~_pX~hrtljQkghvxfzkqhoZk_ifUcXxkdwmybtc~q\dbxd{|ejvipeooyphjkZlutqmkb`t|vu^wpgpjokbxYxmhn`jY{gTjw{eguX^jnl_ichhutmpcacfmfud_Z{lhrxcce{aovjpicj~rozxc{zvmnnhagz~\tydaZwdfvqoettjwocdi]]c\zulpgxm]imozomUgsoQnnvhncvamywgZ^LohzlrrsWzdwf}quulTvgjowuaqqlswokkum|os`mmdeuurftRcour[lvohqrzslnjay^}`ed^btkphedwonk`lsiigtUntmwmjqrogwfqykl^iuy_hlvaxyhigf~xxrq^vqmfmgnu{rd^mfz{ropjvk`qjtafhrzbiYqhsotxqfmjveylcrtk}o{o`mmbloipel^ke_s~kjosandtansodtmjreinlvlmjsp_eo{xsekuqn`jogxtvlmmpbduq_iv{makeurw\rbqhvpvgh|qoqrmtenMmihrwfourybqvmusnhlmjdg]xtlj{gqrdzqk[rg}`~vmgc}wopcawjfoqtrmmqbgonva^ljslrZ^nijy`sjbjklruzqiglojoytot^go]u}qq_scqzjlo|h`rjfz}XlwxshznkrisrkpZstllgukwh{sxneddminydj^huyg_t\saomjbsaydlrq\vuplepnxlrhcikijqthh]u}jpsrnysozojlqxnrywgvnruigrulkkjguzvuvwlrkbpj_vp|mmgpmifipevlunkmvndfhgmeohml\}jmwhoqtifpwwolrtvgarejqisq`qer}nbrptpxZwrifu{hkuqrxxrue~mblbyilwrhmcdfswxsjrddurYv_rulqmheerzplxh_traqeivj_lfkiwcydrwdubpYjfwvmkitgjurjnnujxnfbpguq{ofnzwwqs|ps}ykpejtwc[qcfvhuawovworgxmvpzquko`XjtipftkyjwbhltWlhvx}pdtzvn{e{idmrrUldijgun{al{xkazjczidjwiopjWhnwkmXy~vzknqfqcl]x\yryoiflx]^Wrl|jvqm|augnif{wll{rutrio{oxjalnfvzztehjyjvecZosqzfsfzmbzrwm`ikjtYogjogsvtwxmr^jckmvsqsl{qnqyeionvtvidqYk]wosc}y}vec^oiw_dp}qrmhs^hzjmqyribuzk^wuh|emupo~witpnmrkbvafw|et}taulab]ubydmozuTrrpafX~~xvszkjlfdmauwex~TrdjlimWkeisVb~vrmm^nrtjhxl]lnrko{soiplaxtkgmtqwsuwZqxi_mwfpfbo~heosnxunh}qnsoxgnajpcv|xokkpjywippvkkckrojjok{fidotznV||hui]ofotqmez\{sidsppluoa]pmpora{quegbi|]pvu~v{enosctfqomkpi_gprzyncddm|ssRma]ndevnjsoxyqbjp{o{ssvhnqbeiqYgv{jouettk`|rjcomwtsgqmpzthUcsl[udvjmxtr{s^hmmonnosjlbip]tiwr^zpeY`pxs_thxdnuoqvcchg}gcSiphwjq|b`h}{gtkszalsbzurniqvkju{mhbrukebpkc~qdg`{oe~{wg{jwqfsqlundqtk~ej`vemtwe|ljhhumnvv_slyl]nvkhYj\[a~ocjscpjtfkruktwcqjiibeusdmsb_bunV{hzuigmkrrx\mZacnis[mtkjrYfn`ziWxloxo~^ntxer}hq_pmqnhr_qpvov}ebogbdfymkbujznvzrsnqhivnhi`er}tvlqxwgzp]l`skno~bmenyh`joiwwxrl{lZshhomvmcetuuajpsob{`nh}otvXvwwvgiuk[joveanasqh{to~ufznnwjdjwYd}x{qgsnaiggjngtkvpmebnxnrwcigtxer}dlxvvgnykbsmvrvzoo}sulql|d`cgnqspt~svilfprp]moue|j[gntj~kekwmqbvdd}eiooyqXgt]utn^zbutq`guwjoumwwxqqegfiuoy{sppowxjpdhwou{gl}xpnnfqlzmrb\rt_lfkzjqqnqog`knigqxj}|ehxnglyrx{fnkjpzqunbneztytkgvm|ckizzuqornodtxpkg}pspru_klscodrmnvhs]obsmqw`mocvi]nxlonfyevzkpamwl||pj[p}mxwjsopgd}p\pxfztivplsnalxost]jTf]tnvixkuX_}~jdzjkgmcmtjoZhfstnphtrbhgY{anksixvnlqlUf`kptkrev`znoddjshdqshxjhp`jzplsqgykqaxeu~x}lfmv{fhc]emzmkilsqjep|w]psqgm}hsopoyzwgujvnh^fxkfvpxhovmexvhuzhfmpoqtgyorbapxnpbwjoo`ftsgcoovvmj{^kvhkjlo{icr_{sy\mcrnvrmkzqci`phwibwfihab]plniiaviWpslo`~pyvxcqyvkujw`oyeeoqducqjtoyxdmnohfegktjkvsllogjt}im|gs|uneksdthxfvsjm^{i{mdkbsr|nfnascem]dgm\w^qrogovsutR}utzudsasjoljpqorkpbiueak]bh\wxtjhqgcmmiqpn{sr]t|]fg|vjwoqs}wpfsjxthmlp{omeZ`urtw}qu^twjcqxtgc|mokaflg|o_ykcmowiwoywcpkYsrWpjeyk]vnea{ivjwk|ilydebn}sgjzp~tjqimmwhvvgnvpsh^{}hovvemkXlhkwjojmxbohf\x{pmq|e}vesjytsltvplxmccmdefl_ehtpemxlm{|un|qmxqp\tjpbpel_nnrXqqce{v~r~mfvqupqlVmuhzqwqlxmXgvenvoslvlrpq|asivtoje}iwxkrak~ki]osxsin^`djtdXxdi_nuegnpmvyskas|ft{^`zVamkigzt~r[uvgjjtlpqojv_Y_px}bq}tle|lkg}cpvknygpdjgxqnqb_ibdio[kdiWutnmRigkuipqpsnwyhpq~coteguetjhcyuyisfnvd}swgskqfpclersru_otgnnsz{kthiWhui^morpw`niirpfwg{^elmohe]~~i\bkfcswpzzpjpyqnhoslwlk{oxi^^wx`jgu}_~tasllf`br_js\lg}kw`o]o`c\pqw_yjxgv]ixrpi~uroofzk[nnl\lkfosxk|^d{ce]vcosvqjvr\mif|od`fhtvtl~sXaxo_oforl|jxp_rv|djwu^m_pnvknmijwkxumly}dpttvwdzhsi^aqqzbptz|hvvyrgjx~q^nyd|utZgfufitonWmhX|Wlkexksojr\hmi]Z]Yxiybcjfllhojcj[razrZgUvijz|sfuprlvffzgsiwhmds|npkvq]apbuYg`^zfmdxqgrcpvpfkt`qcyollVsd[qthwxqqrtrgmujknlmroiipion`zcnhiahgxj`[[bTsopdvl]klxeqzvwcpkehxonmxcvtafk{]gpgsey\tUuT\pg_lzcwatrifmsquslypwqrotq|kv{ivenxrme~ichrslbsfxuqprn}e|o{ldduh_ckbkssrljqy`qe{{fcoxxzfnlyvkcqdmrzi_~nfpjtmwtbo`yyragvd}wzvivnvyul{cliv|wchnwrjgtxflcgzo{{~q|cj|}oumf{gkosupypgrhqWmixgosluwpags\`orkT|oetltob^{|{olcogvhij|troraw}osrvivxrnzk}okegkr_s]vivn`hbpcg|qhg_elll_iqutkrdwttsnilognh^uRhmiejp{empo`mnflx]tmlks{fulyjhko||tlbiovpsodhqerreogkl|mhd~q~sutkpjalylpYwe~|fneSesanSb`xdlks^oujmbk}mjbookeeezko|}orr^lhgjtjqko_vfkxyzka|xqqyi_f~axlvyuvnXxkncub_sq]Skphibjzihqxmdk|g`ipoxnnlcdarmiefeucuh~xfsqxndlrmadspqnj{jr^gYu\j_jdkYrshydiuy`fspdpluuko^kfccxlei^pkpxa^fzj\^~g}bxiuhuy`mrsfgpot{ojzchfqu|^xhfureydvckr]nvky|{ikmTz_horeh{mktulX}nyinptqaqwiknmljlnrkameu^vf{vnswnlhrjlqxzl{tp{ztrocmfhkxkvoherizqjtqsx|^vkerhnomqk^|jmj|gqzjnpp{}qpg~ryhoia]wfmleqwsbocrt~ydomfc|mlyjvywl}s`poafmd`|n}tswgffv~{khbmxk|exmls_fefwrqk^q|tn^uhuao^vm]ogniriuoxxxoxrssitoimdqpo~jjxybktn]khuhlpcifl}kmtpyrlpnfbv~pgqs_qub_dzflnulrllwavk{ftipjgabmr{oijprqpbuSqwgi_nhmipw_dmrpn`zcnliqogapsegpZmnWeelzgpkiuz]dvpfcwkvy{gfsWgko]ni_|Zitmk{rY~Ydwg]^ovlpTasrpkXcvklhp|fhmrg|imeeql`cj\ypbnjel~jobmdsinfstms_k~fdil{edkinenpgc{plgqrpm~veofqi`qif^iblbUmyehhomzkrexhi|eqkxda_wvm`nukcrvznjijckkxykU]knrh`uh^l|lhmtnidplrngiunwoctovogqhci|uUbtppsqfxgv\jxby[hrns`ukgjgqt|bnlxbutTjtixmkjvwqrvkdnpnpwnbctwruglvoj[s{godsmmdrbic}nmvfw^vndeo{qogzthzvtjor[tnopmpoqieiuydueor}kxdruvwoivrlcoaluvndsccpfnysqnpumi[mnd`iswrlev`mnz\dwrcnsmqihpxrmh{|}hs{phlvslc\ctyd`novtesjr}anzXudq`qzuroshnh{qqpfmuirhtslnwjqum|ks]oxqipotxosbjl\bbjfui[kzr`rokktp^g}qYipllxt_xptvwweilsrin[is}dgileYvuj^qmlyrqexgmsfth|to{mjipsbowpsblrW_cj^mjr}e`gjjlxpUhyttpmlu|lmemuwjdrrwdlpxcj{nsh~strifsp`wpljhvs{gu^uKdiiyweh]rkldiyogxakuxm[dpjqwe~\juxivr]hqkuudgxo^kfzgiwh^euggdjpdzoyfwrgmk|me|qnfaij\vtn|jvtfevqsyprkqlxmzgj]jfYa^ppnzdvfmervfmnzgnrwfhheit{qch^hnvb~nmep`fowhfjiidtfrmltgjwiajsjfg[j^dooxhtfrqjzimgilrtdXneh^vsmjddkkofwhszmmmr^uy_dy^t`rumtdcvygrrrcektvlxmvvnt`j\thacrisd|qjfi]mnko}rg~qvmtxohmppnynculotu{tzer|krb~phlqfqqnwrtrpnv|}idmlukZa_hxlmcsngxllllzjm|xn{[[sps\qmbian|nolyq\c}}f\jjmfanvdoumirkcwd_lrpmxaldocjrjywpto~cncju]srkqyZwqzuey]ammqkylhrpgxogfj[iysdjy~qdtnmegnStqbpb\r}}nzhlmXjyotau_jrYkfikdmsas`h~o|]uszqhmp[m~qzrmm{vedi]i}mvnthvhj|hdw}fvlplYZgmgkxiftnknljji~vwjc{tg[armyvoqrvsfprngqsmomlfdpvhvlgfkrkonvotmrkripd{ivvhfrvxwtkdY^rlrj{mgnzlvfsjor}~lohzskwqylofhy^^hg~d^aylkkbofphgrdsw|ox|lzyYgrek|ke`iznizxrhmbopptmhp|s\qenrltjp}\Tjrhrq|{profmcab\mhns^xqjjfhvkegmnht]ml|riru}q{crk`z|\wl\]|~pzss\nglixiptvksbib{knuztek|pjhoypdizis`ndaeoollhs`qosvXjplnxc{pdznour_duqi\}npnjiqvuUmiitfeksmnVvotlpthdb{`lmmtdqtordqU~dud\cbfb^YnqviXzRhhqpzZqYgbuuoilarqstlwaVpd|smy\utzojn`gqp}xnrhrx\zxzxkhvmsjmkirf__rxybjvf{ll\rc{fY\\pf{`xcikife{tkqmhewpehyhkxmckammrzXoiiknfvtzkntcealn^W_pjkqznr__xZwenvopvmqudkmlukfuwdqrwe}npmrf~jv`ircwlx_irnsznurfkt{tndrxhesjucmkd`exdaeqn_uzXemmsu{ksnzjZ}r{tUfw]soSduyr~uvzjdisgxuYr[q`uo^gks}spmsqrtq~htsc}qmdnnie|cgtpwvcij`hmpyrnrxpkuo}jkmpgpduy}feYvrk~jerjhlw}exwmlzk{~k{uoorxgjnleqqqlzkky}uhlm|ejrmb]mkrZkxytoouhshfukdx`pqmgmiqyefh|irmbjmmrydic~pm^giYldqkojj_rVg{iq_}kq[tcpgbtzpgqcwhp~`j|laXufzawwedukeggve|`ltnmnbycsymz|c]]u^gugic|rkocllfmcdxh\ie`lq{`ar`uxnsvem{x|qplynkw]qd|xtS_nmnjcybvkrtnthnhxcstpoqgsshm{vhmkZdujkwh{nmspklepkgiohr~eegpcznq|Ze[ntlearrpcqsxobmmzxa|tdjwhema{riokwtjhsn\qm[lahb{rk`Yljcrnzsfslqso~fz\cpryx{tioiuohy`tulzjykoxrZXl`dtvjurwc`qfn{h`^nqjehxviXbtswngz^f\m[hbchnxgiomgpk_mgxjnrayltrtbzd|rseth{sper^qp{~rs]qfprwdmmsoubbi~\}o`gi]eywcvefhhv_Xgvg_}xjSmujljawwcone{uo~jmkr[~bufjrRp`fc{n_lfXqigf\jY]htfupwlw~clnl|ki`ibrUt{`sgosrbdbgr[ikyrb]ujhszbpdvao}glotSt~mu{_emhnffSwmscZsaTkfckaiThdufn\k}f]vt}juT{ipZbo}opnuw~lbmg_slxjxkhmgsiylfnrbqctv|nhvoldkuo~zsfigfanneckqlltc{xodovq|rqpfru}vysom^sokmfX[fkupp|l}kgYiowonvmgvogfo{hfqqic`rwpkgrqrq{msojormpqik_oum\artzvpcgfpy{ljexesvipgkqywcltwnd~z{jjunorjgvlnsniizlj~joeopem^htq`ubeilgpawmvoaolkp_dpfrjb]Thwi[sx]oxmStgyaojmcsSan_pw[isnlmy|nyxlsak{xi|dqdmhgs~itdt\gn{plhkltl~dww_]s]wdotexjrpqwstiove`qkjrTr|pkm[Xygvy`tbvcl`youuimmlplltcrq^n}[uqygzqjgzxuquti`dkwvjq\`zwex}`sbzss]rh~zqvjktl]vqrvzklnkuei_xjkqefpumm|hsl\iqlg|xm[^wd_hkhhwk|bsvrv^hufphmvbuftv_evqoht^Ziuigy]lngvgizwkch~uclkggowylyfqvkjiwzejefwzfMbz`yiTehkrx|ba]osr|opnjmidgTzr_mxovajjihgdkjigqjumon_ka]vjm{ijrumjromqj|vhkvrxjdfnuutqarrovk|prxrinjpgoppwoyqrurg|t{dg_s~ymoowumiei{dnhrkvhaqgjiZqswZcmfe`spva_gfeisnpznnerxqjqy}ugvllpiot`bih^unjqfowba{mb]bwcfdwao{phzgzwbcf[jZej]rpVfhpegohljmgl}gxgqxjldYhgnq|nekhfaituqm^m{bqiLtqyolurv|e{ew~kg|hm|]awoeu|]jvvromlvsxucc~pXoiebq_jlgrmswkoqq~l`ylikfxomup^vr]kycgmc`i}nsv\es^rZmwvbuhn~nwowhfbjkg|ZXoejoel|b`fsahzrkpcw[n\fcrliVnhk^tft~k]qhwqukoiijcrowkpooiidzj`fjhhtSnxfpysahwauojfoi_jw{fffrYr_dolubjXnh`f^qob~dmmouy}fwWrokpefdtdlVsWjhelz``o^^WpzrVjiphofxhcjU`qsocgbfyshllrkaxjkofklwwcrru{hmlpe`k`rejjq|vqem_wlksfkikrndvhrgqfjlrnhbkjypdk~_p{myxijd[fffpfkrdvmx}qpnr`mghdm{utzmphnuvcf[h\ehquXjbdmq_f^v|iqjkizg\aol{ddiaabedxdvpctzkjop{hfeapshbjdg^jpcluzqotiXmirixq`oo[qrhgryvposo_jgalzmwhwkmpkcnnwkuvji`pyP`WhfeslUeYmn{gsqnnz]ojm|uhngRqfmgixdgwhfid`pkbngrlgmv|dfl[pmpgqesgpn`or`qqh]yinyjezgcicq\lnu~sofpyddkryWvbrtscncWpq_dqonuhosdvenf}kc{u|zulZYgp|vileqcho|es|n}s[m`mih|n~q`avpmnspnrhogzixq{svrfyvnVqsnytW|u|jdn~|pvnjqhfnds~nnhnwhkkgpooh|fvoxd\pTymwjkeggbzfqeiw{{ren{opt|zgpogejdy`jbknek{`ks}cghw~ud{eschp|gdlbuwvoededkkrf`q|}y]uptdtmymorfzzzzqk\y|ffqvam[hnzyimsp|jijseey_leumiquu~Xqijryglerifdsqlokjn\lc|cx_|`Rjj`qwlUtll_ojjckwoppRfcovhT`imcrmddfwqz~noejq[gndvxhe_icxslqYmnm\vtwxrr[ueiljmjdxobhpUjm|qkqrlijiu{]ggen}QknmmspofonkkZueqyaYnlrthnijmlbvthdlbpqfiwio|kuub_uqix`[quupluspkmx|bof~gk`zdfmnlwj]nk|ed]o]kvnwzmhqrqpi|silipowljx~kjrrqgchmhw^jxawn}itaaexl]zfsZrr}xp~|vj`wk}ulqmhtmqcsnvl^vedm}e`^xcorrlsQhhl]q{vfrww`V}hprhj}`ioeopitmsrbnoaUlvpemkya`fnyuapoejq~kpi_mdgnbg}fhldqwlnlhf_{{lhqqfdokilm}vylVl`i]ccyuinqriokcuqku^jjwwsbuwymqmhn|lrngcu_xglunrZ^pigdsyly^rpxph]nlYYgjvzpudfwtqrw]erf|~nwjmw_kjrtxgnfmc}`mknkjrocbhalenuairsotiqeakrkhajitimdq^ykpswphirrp|jnbdq~socuulvye}cypnr|nq`sn{hkk|x]eqczeoVfvo[}hqivppsjariouetzr~rhoirtfhdgum\weu[drmqxsda|yixpy|ehul{sjnkd|ifgse]n~re}`gclhfxjsXvr_kp^`monxaiipxnkbrf\lktegni`snogvinak^triywaqb_xeenjvwremvvp]eh{whblc}`kxblknrkxsoqmlioub\kirzjarngz~txoxdhzwjkhvienhrlxsg_nlwnsrqxcwkw~{uhtftwlsqqcmgq\hixuhzjgxk]r~g|zozzekrhoWv~zph|qk\xudptnwdscrd|nbhhwQuX|}Zs{nyro_bchpgln\ey||hjoyktfldqa{qnsk}ejoqezjp|Trptinmpeijz}r_ewi}f|yl[owvkcbvfvnnklrkipfpjqdsqqaifc`kkkcmsjiqwiuflxevdkjnsjgocm]qxoleshlqzzvjlqga^oulenZmiinpanvkWmY{f|iYaenis}nlmnwnivtrutohej`ifw|aarnxf}plwqicncyrubqveb^ino\cvdjgtimvq~qu|hosj{jdxlswhhg_egjupvremt{l{cltop`\ouhozkl^lszfpxeqvl~sanhjrru{dtxfnmikocaheidwdsglpe~Rtnllneuupgowtjjx_glqi~qbs{]udvld{venqhxjpvts^jj_khjqsg}cop{|ngugp[`kt`hlrZnorj`uicrtdmixkoh~hcoqqjupofilm]cpneqc`gyiet^dd[j^}qn]v|pfghyehppl^cqljluqosztespVweei{[qiRffdzmltaowveeek~e{oltdmomitujknnoejt{`weo|edchjjjgjhvap{derfvmadi`ajsQmncyie\kpkvkxUhlika{n~vjjtQ^muncnfva{^hqusqeb~n`_dk^ozlqc{huumrqxozo\Z[pfsi}tp{fqi~wfoc|\nounqpj{pxz{^`ajrufwtyzx|wolprqa`mtz{`hqhe[i_mrXhxau`ignoo_rvvv{pwNmdzvjupe^]inwny_msWq{}eqi~grxo{mhtvhimx|q^jgrwlidpwaqpmkpvvhmmvsrszisj`srqtvurcpYvtv{w`p^llstw~wlkrztidksmp|oeevcrnzo`jnw]qk}du`nl\xhmeedvvbqiy}qlqlowe]vtjksva{d\cinxtcm_c]bodivokocikgxmgtwffdwdqchounlz`r~qks]ugdfvgmqgozidrbmjs\kybhlkzqzuy{huyldimp_Zmu{semdl{srknquv`mcjbqktdqkjdjlhmlfsmafj|kjqnkgjaotwvwwyfkkrjeflwyqo]oknz}ujsvntuw|qssijdZmiif\hrpolri{urstrcwkxfgrv}Ttwnwa\n{hktpmvlvwtcnatotgnyitewwntvfpmvgotsmrbpgvi~m{nX^arrhexhrvtzt]vhepsu|d`jtg~ulamdoahmkpmlxnit^akin`lpuhizljfphvdihsynno^wjggpopnqbdvsprhhygehlppkhwhnhyon~psiqlcrhslbj{_ojrolnoi`\s~yx~zqngwuwsnsydiqerthgn_as}okmdghrlslmwok`ywcwumht`uqqpmgulfm[oznqfnnbaojlxzknjdmq`oqisw|lcwpwsc~juZ[x^sqylr_skjn^ub{ynZwkodpjnfgoopoumrqssvbysrhegzcpjznpusio}kyetvrzipsrtzqiqrypyhf_kytcpffgmxnvl`fjrog`mhlp|vwoohqqmkixvo|jdvnzdinyosjebhjbziddimkhm}wkarsr[ototYv~YqlfkwubmXdQ|hntqdshfiefvajqRrlenlomhpjh`sljtumutojilTljrlhyuckrguj`zqswm]vg~l\pqirmrjld[kiekpzdon|ppfvfib`ukikkpgjjulvykq`bvtmamhXitmklsXimiq\zdYldijhnlsswogsuqnnuekdtrcpXuij~jpputjj~`ouknn|hqlmysljhlqxov`mtlfp[dnZzx}hoafu~{yywrgrrdqpbfqsnqf`sp\baqjvkll]jmyqm]ulayi^jl^kxq\r~}icZmkhfjrvmmifgnetuzvskpvpqtpsnokqneyjkoijrWnuqetpidm~uwvzklqxae}g`~vhpcmmwlowrmp]|sortacubvqj{jxhnvg{ic{xvtkbkwixiyigwjkkeffquwgr]`ghsutg^elinrxqsoTkiorqonpnqnxpkpmhrzvlldklhmhq}qlaalfgmmqcxsmtkyirnmixemk`pmyhccgiux_vhgsnxjillfswkokpvpn{ycuonpe|_cdtwfljWYujerg|lfq[phnnji{tryvjulikusyqjWjcho`ykrkpbonfukgikwlqitw^W~xfvloyfxss{muaestpabfupouspoih`uyggviozkxjhrpfa}wldqizo`u^kx`cvdg}r|n_p~rzqoml|wnvMwtkhupxsuluogtkoe{gicotrhevf[tsUmbk^tjggrozz_celhp~cknbrcTqiqum}pWcoxRmhyl|yhwewiomcuhh\cwpjpcvs}vn\e{dmPYjqs|~trhmcOinikap`guds]}zinpkfggtt\mu~nbkdsilk_lkk}ghpcj~mqwmkkfir|ewu}hiu~{jim]ft_vuddgg|guqg^wfm[fp_mp]kqnuf}^f^regdikk\{elmjtnSrlezqjhnalhgfchisqXyryflnnpvdoei_jjjkjw^khalh_dkszludjlkqztwsmdgwYyftns_idmtkuymwhcxqc|ii}s|mnjbigltr[bl`axk}rwiink^oh}h{oe]Yeeks`lQqtqwplcpmqi}yry^rovfav{tvoo\o^s[dbjiZ{clwfh]y|sujoxuzm^ugrlsiTdvdmupqsxzjdkbuffcu]jyjsuben`{pj^\slzbmncorkvtthxznossocnimifztbzypefjhmwyjz}qv~pxirdzo]lthupnu|yvmihnhe|xRfipjkjngphwZpma~jZvs^ui`wbh~pxqjrTbaohbvjetntnamlf`niiprxkrs~akelgp|frfugousqmtpfjvfojkqkupilupPerljvvlwooffop|eubtjlotznbmhlnv{spmukspmo`omke`|kkhhc~qledrtiyxjhc]{nchmjusreiklrscosvplnr\yutqisjumxfoujhouqsrolahprptlomjthns|zmrjt^ouo^ksjoez`cmwostok_zpngrtfntoaxgrjlfeso~whn{rtlljgnvYhYvgvzqakcxkkmddlekjsmqlq~bjfdiprmqrdhryjwsgbfbm]opmgftlkqwgqtyrjamdujtwadqntiofublweefgskqolnlzwioepaiwgfm^jvsai\gceqip{jmhkilXgk}qljtnluxdpzqz\ozcqi`snlsmnqm{klcn}}|^hvhf_xxhposhrnkmuqgeqdTfskkkj{q{ppjnf{ugmobjpbkqdloicYundX~ng\ehiecvgmimhlbwujeksohoctoatfe~Ysopiorgtw^mnjrmq\^umm^qrllebmpqjhwhqdqmcpyqmmf`hsaguc]rjlnfjmqjpamzqkqgnctkloqmc`ua^xmmops|pTvpnoievmdqokbgocolqbudfk~tqxpkompmorxenhpg~bnynqhlvb}govlkoojkdm|\vhyimfpsyjqvn`rq]X`nl{mubvlp_ot\zenfujssanhvekhst{vobfwtq}mpohobivmmrfiilbdrqg|gtmufoblrbmhqe~rpsq\tvmi~vovpnx^lqmufhxfodp`gjlxkpmymnfscgy`cmeqe|qnuvhl}ngnjvptr{jjslzeijrqogurlsfclsr}ruwuuxqeunsrjl[pkurjkfatloqcgmmZnypjc_hlmhpprmz}c{arZjoiskxorarfmb||sv~Rl{juauogyxtto]dwonuf`kljq~doshmy_qMei{ert\~meukpfpfqsu{l{{_m]rzhyqhttulaqmstb]gtjavaqooqhmpjqe^jsl|qkkuyhuoheieptojlarsugdfpr]hiiqlqk{_slsndp|X`skljlpsdlW_keU`cgq`kzfkglX]pqmji[zmkxqvafmwnhscu^jwrpf{`iumuimiqhpoloum`jdu^xpi]w~jmtuh}^umtfx|qier`wjr^pxlr^W}sZokkq~hfixliq_d[lkj{^kojjvwua\jsgmidye}`klquutm__iz]btb`arduo\wzk_x`onW}f~qzvhya~muursh|aa]|vd||gcufyoum{gkZwrjzw~vcr`djmimpkj|{motftxwzipsfotga{^~ngsmZdkiciuf}`mll\opviccms\vvhalg_qkunXqrmi^oqj\i~ptsrs`nax{Xoimxq]wjotjniqezgsgf}gYpkXfirnj]flmnpqkghln~riq^cpnmnog~tugn_h`zpl_sdlfm~dhavm]xXwmbgotinpoeluecft{wmrprZvlxxhmojpaisvqpgpna[nxZnwj~oyehkfgwxrfn|n\iuorYiuykp\jbyny^fpkjwudZqij^kkrmokosrmytjtvjbwvo{gpXlemuozcwkni|opu_t]rlwshgkzoqndwdzv|um|jvct{qt|mppfynyeosdmhk`^jetd]eppjrrffgnbg{|m`_tegoofvpiqfqx[m`ssWqcofuxiejcakmklnhvpuhqoo}jfJmqlmdshu]mamZrriwz}suivTY|dgfqmq]fvwhlqna|rtq}zacun]k_\hZq]lbjZwgrmxsohbmellbXke}ubu}wlnjxlpkooxrliop{TuupslksxqZpockhgcpfo`yengx_vswiq}|`poqy|jfgd`hgpkhrgofxsotw{{a{rqw`qzgjlivmnkpptl_piuidaturqpsvfoynip`qlnqxhebqngvnbvn}m{xq}ntpekoljsXrl|tugosqvlnwrysgs{qpbzolvqrpjfYlrbitl_g{afagoawdvkuyalobrmkojnjjmmqnxvlnmnotmple{sjyk`kfdmovu}htouvsyxqksanmm{j}qh~_qtuz|zqdvnwomy}gmo}ynthz}vu\qlyb_wdpmyztfh|odbfycf`vfupljokZsn]gysvlrtfxhwsdsmmzefv}vynQiubfltbdwpxdn{gi|vyppsfepcwy{ltxrr|vXzuqlljlqol\yaqhq|wzpcnz_j|fhoijin~pwkbhcjwmqpfvvojoilspquxxpzcqr|xhd\~j_s{v|kseo{pthjv`mplytyskqvavkfmehrk|jq]iigzf{gy}xtqehbgwcjlfvqqzquvo~mq^jwtvh}siwvyqikjmorgtdaswvqjfxsqlr^odxyxrjn]ciul}}hkevget^agctpkm[kyab{`vsmndcrkshqtVnYkkr[qv|_wflchohj_dhwo{ohmsYdsdkhzn|fzlrwow|]frg}\hc|q[dlXvki\YbPhqV{n_l}Si[Mgfvmtfzpek_e^fslfvbnyqur~rrqfkaxgecxsjvhqiy}i}nwmwdxsj~xf{{qdordwvsm]bgcb]ZpjmloyXrng\evsdpw_ja\ryhihpu|srav}zln_svvwtmwfmtlobnj`ikrdx{pmxogihsh~tj\[rkmfgigwT~hjjd]r~kZc{iexzegiyvuoyfrtakmt}jjap}huy`keal|~khuite\x]sfqroyrnowusVjpcgmhrnmoaija`pluv`up\sueqfvfkvkf|naqrtrleefros[~ghX~ho|{kmnziusZg~vfcn_lxorsp{qm`polefpd|pfq~lhyilvYhhqnoltshlrptfqmrpvXtpfwxghqZzmefpbtg}iqzctjsmonimtf~go\qg_fgijq`sidhovln|vknaljuiiwmucgikktsedo|hgjbsdJr|\}njtomzbd`k{qmelwkpbvhfnWmkvh]]wiplxezmvkXZyfwmsc|oldqixxjiruxVzcd|tuudrlivzne_jg|sW{^lt}xr{orprxvedeuxSjnt{{yjfrob|binqbhhymefdoip|jipqzh_ge\mutimcjpojpgo}ytl^blmhgXtmziwscsl|iefoxl{ejsllw\fcvmpcgyaf~ft_vfd}tfdqhnolUrlXfg^ugze~kfpTx{tgnplfx]f|]pikkr^oforplLrseg`eo~|jZ_rgl`fnlxrflehjoqjkamiNYn]rigkmogjjotobsk^sequcqslwsmjq[mhe`qzfluwuvgsfwzcb\evwrkfl]dleVxo`~t|sd`_qoppfkotgji^yUdmsoll|dfv]eicryh|yZeg\`qy\rlmeammdrdpf_u~s`zoqZpnhzj_qgzhxihwkaUwno{upzhswajvowWkyzqy{y`xbn}x`txj|lfdsxmhtz^jfh|mpmsyY`ltydnx^|iivjkiwmimmnqnqvqu||hrz}nkflveuyoo[b`svhjv~spdnqw}~bemorlivb~|ge|nfhykupzyoiqdhfrpacjk`]ilmo_rg`|pkydsoqmq}pi|wpxyfh\tsdfzipuiarwvxiggdasritW{wboorblVxctqwbboikXrsrngdwlfxqpfhkpsxskozwuqxuu{iool]|umvzitigs`by`wdolwfqxW`a_g}svrohioxlmivbknibfyo{ozomVdngwdkfwcsnqvbZldpeullkzsgecpcfZYgdycpnpzm~swawxsjdaoankojnvgyhty{frtnV{mxsfornfrin_j|tnvf`ucaj[l_mmbfxmkiijqymwqrunnkimrglpnpjloukuagin|fqqam}kvunowktip|yhnuqfnruzu|isvojuzistfmfrwrj^pivi|xkshoxoinefizrcniswpxhmmavqzjrmxjngodthpfkvff{ykawtqmxkxnjc{nsvmsbhesgiqbksibseqsx{nh{lmvumnhzl|ag}pgmh|oqchhgWthare]vazkkfzgk}Rmkjmbe`gpgerhlicovkUyi}ipfs]mmcmmbvmjrwg_gewl}hujg}hoxql^{}wur|Tfzh_bcfnrpjq}bvgjffWdogp{pbnlhlkh`kt}{rk^\jurybsq|akqajybtpzrUrkvnqwYiobnndumd^dwh^_duznfhzpbmxYWTsgtarzZyytyMqeiwrc_[hvh{qsljTqqud|t_apvjuimn{Ziy|pvoqqldprpiWsddspRupWYvrZxwq_vy{cpeuifiU^j`su`e^}~tkeqmfmxgszuafrvlgh{rwi}qvmzbg[^jlbvtjeo|l{}unler__oitpygni|np{gupoflwzqxbtvgmjjmuinjxfv|mQwlhvystuk`k`}[lybXwzocmhsk_stoeijuzuq`k{gtmpkursvpkhmtupbr}mstsqalc~_lj}sxvtkmuoyqzl]tjk^qqhkfc}djoy`gg\vjrssx{ibqxc{c^skvonoillpuhvnozoqqb]mircg|m{rXx{spko^rokkfW[tjp}g|y{wbrtZeyi{pkjlrtohjikrflxb\pevajrnhrtbxgqhhogqnnpic~mgplkZklrc{e}pkXuwumpejoesvhiyqwdyaqqhplnqflh{gVhyjokxbchVpwgslhmmntser\ijZe~pugz{vgruhugtt{ppnv^jslns{l{htlloylldm[yjWmtebmdgevnqwbqpw_mxnxej[agvXvirua_kq[^pwgkgbudzotyjopeji}cymjmavwzv_{qYmawqzlotjhY{hmcjsslYiixqcdnoekms[onuyyyt]scfsobqqfeegzmmcnlybmnffwq`oyhfa\pxmirpxnliZfsrwljaywpihiSk^kuhncyush}yteflyktzk|luwesnvfugru]e{{z}qtmyemaanz{wwh`Sya|mi}^jd~qk{uvoy{yitm~vrjcwmjlspipyjssonzozYpsuukqg[ttzj{dtplrltkgakues~fqj]b]hotwzglsdjlklcwu[cwwtvk{mmnckyhplhh~jmd}tqhb~riYxjsj|qkuqrr|{qtq[riufhojnnezkmpks~nho\i^zd`iYjgdo`jitcuyxfuqsqxo|tcdxkhpjigzmparrrobkrfvrhkdlm{lnhtzzodkubdjumkowslbfsvmsrt]hsmijaiqkt^t[nOgnYfhpvpiwntvklwwmrgfnluniianlfsn]tjftwfawk}nvpb{qkqm}|egnmormmwobfds\brsvqo`mtmpexshxYnowtn{|hqm_pin|u|pfhvsdd``]aonhYg~agxkrg{pseemtyepqoml}}lsirc_nfksghmlliguykbmarzqwrwdjbt~qnecvtykertm||fa~wnsihnbfpgjublc}hjblulnzofophm`jRmelvhiWkf_ukknj{s`wckkqwjw}jvlbcsnk{esovii\zltwwotlmo|nomt}w|gs\ig{bw_jfmfoh{tuti_iuahr_ronrwwk_cwdrrtiki]nyrYn`rymkqnnrgvxwutllvaqnldzvlxgyln`vy|pmjiheh|jsqyosvmisghnbs^tm{tz]idghpivhs{pjgyjcdq|_owyedw|exqh`bympkkdoqonvr{ulnis|^dixsitqnkjilpjrdyioqxfxvwQfmiW|oaiooittqzYqp`krnsqbgq|jymor_lqwmllouustiqpmpdlx|dkyfasrkseiyaliypxclktsnltoZpw_hlnkntrorrmmkt]{lmpt}khtitsfqpugihnjytqzgcwn_sevweosj}necrhnxnmkmkoj\_jx\rrlr_jntfnryqppipnumw|qvjkrrkcccfgdiv\vhX`ex}gef{v`eepayne|umixepvzdmtfltfmqep^khsncwwpvZ`ntdqgfip_bcqniuwyiogtewpmndnyoqiuyoyh\yorfswp_W~nofXi`gffik{wyxepf]k{qzkq~iskz{h{jmgn_to|tqr~gbruxdrvohs{nksnp`ghquqhtuqxktytmsb}bjdvso^|_ozeun|{mqef`dimtjklcdwfx|khlhpo{mwpoqpxtrkbnkmlziionmmzztrl~qgim~glmilspsoecjbvq_mYh_udde]lmsd|nycbjkpirqiym]c{]asXe`fnxbq[\woiopp\Xoivolf^di_hlXpqklxktwnk]`tlpiicsq{cknscsa{kvlsegwrtnomros~oj{~iinkbt]erbe_\viqXpmc^_qgkhgYezslVzojniklbqnosdjwkgbkvprloqrlqm}qb`zrjylho`jky^upukeg~atclcezgjo}Rivba|mXjd{iqbknjtenkrtrXsnsbwHbnodywqhgriqpnpnndbbepijbtqplnlhhafoeeiqvlcmk`mjxnwq]|ionitld_|caorpzeiysnirYhlxsidbspufjadopQpwp[qjputzlpaqklxcmcj[fscyvzvkgvk`myq^_noickxm`dpdqwo~bxvtv`j~kdmczsnaxm^qlvihrcnqhvgusmiddqkqmcoitsc[vmt[swdjintoh^vjzoomimjvwpqimr|eu_mlqocqrnegxo}|pW}knuoqkel_mvp`clec}iuspcjqneebmtor^jslmi[omkpy}eWsjqewz|ze\ginr}ijgdXbvlfsp{`_sddneX{pwjahob`kpv^nigrhgozm{ru|eg]r|`[|cfwykp}otp]rWruslelqbadxkge_]ocs`oqm{idqnnrb_fvgpk}ollkx]sewbawak|fklfyWwiVrhcolr^swypu[n`_wclnzd`jpi]pqcy|zgoZiruioratpnc}eof~c`uojgk~zoljrdxmnvnvorwmn}wn]{mytzkimjhhnah`tyqkpmrfs|w~cycimqj^tumikykYotmukdpebpambkrekgrdqdubsmS_Slpnqxoeuodmw[iqctzz`dqnir\rsju[pdgzzyuYiuhmtqjf`st`eys^yp]Yl^owrm}v^{uxmfxvqwnsblhsdpazvsvznqsko}rgj~__qmdgetembthnedunevegopmldtjr{ih_kvo~fgclmyfkmwqmkshsyffhjsdvshtmozhwkaOazifjvr`wwlwbyi`evraigudv]ofm]nochmotmbnb}usntgcijpozolipsbvtt{vwhltzueXkbqgvvghkslljjg]Xzpxmll{pkilysrys}prrug}w|d{uospnq~gvlg~dzbwqsrtqp}rrjrysbqtc`h\~buqn_hiftktecifmttg^u~kksottij~nurmmswMphluhvlgxhozlbpsm]e}jt}pqpvwsdxc{`qlqjqktmfiohopulvioy|t{lzgvgn_gjxpduprawzxk{qjaplenlyhbz{lkzsqt}}h`enl|gmfqosyenria}jwitkttjszy{sdqzovfikm[a}onak]rhiimbvmqijtukq{}wueqrhnxoqlruotjpmgonphpoukkorljhz^c}ok{suwkhnskrkrlpelwhhhZsbp`\wv]nmtm^unfswitqsdnkarniOqlnci_{ma~kksYeewZi`msdqroqvmrtrj^p{veuenjnptwlwvkmfmmTplkdvqsy``mphkbkws`mzmkhartoo]lk^tmnmyuirsrl^txq{xxmself}pi{ekoK\b_tcgsa~v~`|wlfd{qqfQguWspgdpjrnbpu_m~Lccg]nnpjqYwr^kj]q_kYandn`{hboqcwcUouafxXjlZvxdOp{_dsjtmrkhuzvl|avgxjdutnwtvmi]^k_nq{qnk`llxnwbshXmhj]n`thskignlh{ifmmY`rwVkrhwpvLsn\T]lfh`ajnfchimmcmzban}o}evqmcoxtk}~gj}e]mm}qogfh~oltzfrms`nujqfgxklze`flqyunsXtoupvgtpmiu{klgjqxt{l{{n^ppfedor_rdpumwkgfzd~yfwnwlm~kcairxvpa{gyspgs]nxfz}h{s]fqmcj}u}gyqrs~ot~rasqrsraPijcyoz]vulrel|llgooZjlhc}qrhmyWnmh`~{|qyio{mxmj]sXokzkkfoshgzn_jm`iyif}sm`rnozqjedrkee_a^mrqlyzhmc{sne}fpnjrnz}h|pu{baxnutjoaufm{ftljugdk{hepkcnmflswnojrjkaastqno~mjlxwhkdnapho]m_upnhmyuix^knk~wuq{qtbzfgrd}quhgfptlmh{mu{m`pbxndvkhmjddjkspjhxcg^qjmk~dksrihi|nj|qenppdcgctveidpk{bz_cxoX}qjzkuggtg|ruvxvnacqgh`vrgiirivjsoguehjmalohfir|omsbfin^mltu~mrx}njay}ymtegioyxtyfsrqwlk`svpw{}wiiis^l`{zucjo_wpjzerqovur_{o|jdh^nw~eegtsgghU\~|{^``ynno}xljas}}Xu|deorucwmpqrxncd}jpjjbhpafqiyflV|lrhktpbvvpoukprYcmmho^{dhmUokvylbU|tcflgpctw{arqwnYv`mZ{ekrmqzYyi]mnf`gppjpasgjsbtl{e[ofpdl]wenbtncnoz}pvkrgroRtvvX\o\tufwrJUodj]at^zjreViYypivlwexspxzhxwkgev`nhxthwmpu_gndlmlpifknixevwWrsywxsnrjpyvpc|gdlgqbb}k{vd{mn`vhlexUlprg^ssbogvjrdpk\j|dkukdpPflqiUqmypy|nmga}fxih\R~rvXmodpuv~jghohbntq{pct_n^vl`^whkgjivwpqrgvifeffqYhiwjZpafnub|netrogsgof\wfgkixcjginufedodzrzpWljklnwhvuuaVfkgaxwmov_asmxtirrb~pbzodvhylpmipkcvqbpptbok}ifcxnagzuuypqscpnkrxiimmretkor\fb^byl``masfhlukrkymneixjtpjymkhjevp{ynuqwrmwvoiekTieyenmu^ijspt~p}lkskvye^dqaggh{vuoaiWnzw}dnqsjt|n`pgfinofjnmg_~k\_fswom{_gdyox|wwi|mj}on|sZ{YjnjpmYis^hdg`}pwU_`khj_etxjrostmkjkigi_lqfogoisgmn|jvczXteodia|_ai}v{j{]~_}evmgpnjpmfRskh]szgnhk_hvnnlrmlmiodwjsukL{ehgtlxhjgmwxyysvhxcbukyu}lee|iel`eqXs{o{nVlzg~lq|[welmpxojf|idpm}tevr~kedse|sihorjwz{kptjytu]bl]t[`zrcslgnqgjhhxWarlj~yhcu`wbreo~w}Mgxgq{wvr}z~opp}qlXrzql^diuvqgb_ums_^^R|smjxjw]hebq^sqyfxdrwjlioXto]thkm`ehoou]^pluf]]{tsyhrexjmzqqqnafkgrkiUwsZ~|h]px{cfmw^njwgftwtxmuifuzl{jrxdzgksgonwenomwmolewoVufwqscwuanppp^vxedyzm]|oeidzvguelcbzuw~lg~_gjsta~ptqXivwbl~]wjczzpms|wnowh`lqqn^tjxo}k`ri^o\plfd_vhpswriccicofloi`nwyiva{kmoybvxaw|rdfr_`grssmlwqkngw^mkkvtkijixmfsfioqutmvphdlr`ioitgyo{ppqmp|mmo\tspkwpczlk`x_pbeqfjvo_h}li`o{jy_ubkzqgpxva\q`ih|rjxqWxupikywdtfh^xeulrdcs{an|ll{ytpipxhksyzch\gvdmuxokkevn`hh|ngxjhmztmtktcdifpowylkbkwehnzjn\kwezdr~ol\giijrfjmmabjnscjzskvetdys]rkgxutgovcgirrrev|zzb_YmotkvpjlxicwvjjqfYk|n{j{ikw`psnqufrtuhpywl}|`twc}|osseoj{jieqqvvpjlfygkrxisee{vpijeoffk|iarcbnvc}nZluxjnqziikmdjhsdl`cgsaqjnhmenqrijfnvkd^yfo`wr{nzswekdnliivk|}ol\rjbppsvfkllwsmtjd|ijpndgnlqzrpmefjemyjgmir}ujqqjeq\pkecs|pkogalpsnpgkdwjckqblpnh`ehiiul`rwg^mprkiuzjojqrrtkdm}qpehimh~qiqeawgapggdhxmgfryezayd^qnhtdmrnsfbls}\mqwqrkoimgedZ|gytdvnclkgvksrZ]wuqdyo{dhguvu}immlwWoalhVU{rqhp~r`hr_lojzo~~gprmnu{gdo`l|vdlqfsewmRb{b]kkoymihp~m_dnvxktp_lbygvnvyiod]cw|ny_l\vgzrjdZjjs`gkovvlezvnlxzeoomtp}urjhpikd|`wmky_liqkjoynpxhmpwsugzokayjtnizlstvtypk~x~prh_mirsrbgk|loyktdvfy}iaoedkokrnoircar`fdkmxnwpdevmi{lpZpjjpkkmtn~ry~nshtmpkjjkyqly}ogkl}suuvzgnuf`rtkhq~qxlncwnv}wtr|v{twows}_lgyqbqlstd^phoovpdhnpa[firhebcmhikxrt{f`ngfegwfskidrpnyufsntwZcoltknwbtzdjtjlctkgzdnt||mqrj|mxondevxnurjp~swmnqkfphitvrXimzsj`_bxclsjqfftpiggfkrdu_mcxmjh]mxmphkuvrydlwzQo{qoodsxnrglaq|iWkcwhnXkzrhpsduhnriZjjf~hl}otrm|wiygol`hjbsbkg|tuVcnnhwwtww{~or`jqnlrlrvy\f_kpmWmjtahfhyvfpeammvjkyhlps~jphhhbi}ijvxorn`jik`ofomr{hsgl^^yfb~t^]xoopzhrdxmfwhgl{ygoo^no_wpzmvsx~r~k_}xxnjnlqpjmqkor~ptoqkupmr_uyi^ryldkrxsbWZiy{ekn_ct}~xhe^ogfohyi__q}efrdwieronrtj\mpihufnnnpj]}auxcezemztf`jb^kpdqgfncnaklpqqddggqxbevxn`jlfnerkrehyuom[`avspk^ibwvubrjingahmnlkvkuWtbZgywb]^hplrowjwni_dfs|kmtzXgrvi{_g_nfofmdsspkzu^tijqivcekkh}yelfifuumyrruwq|n]bp`osuk`rdhxmzfic[rik{ovlm`tytwpscqapa]{c|rchmhd|{kqxlvqwyeouedtrbc`yerlghxziu~}[k{lfq]h`bg[c^|ofgiitoewmvmsnqpsyrnheooomu^boawtunsbtSn`uaewvtskrpjsjsprRvn`j|nvpssgayrsthhwmswdykzxeerqfgohcZzioorwu`mjb{piiuxd^yyhnmofoq{hoqgsmmtvabVVmrcedoqohgvl_fwu`ppv]j\_kwpya_rruzZ~}qyixh}wxguhswexj]inovvnieht|nl{kqohstthqglwo~wvhrcqthidynijosjuiqosmohwgkirzomozrllzrppo^iqtjvonnqkqwdgovfmmkrrsojpgioohgnplsnihisvsymjydgyevrijwvpiholcitgnnvscujljjbmt{ptm~vpdwkkjqwntuplrljmmkmfvqjpkbxg`kpfnvsmczuoutmfyxvnkhoroqiucxjs`c]xkvmmomvtbo{wo{uq{lrhoby`nyprz|vnjkchhokhu~urnljkiq}lppsn]jqorwop_gqq\xjouol~sbixlttx~|g_mlgrwkoerskwkav_ojpm~tdunntzwjeipyiawvuq^g_si\hohk^{\fgqm_zoqhk`Zhpjkl[z}ecamprnwzsocmqrnfedwo^kmqknrv|bevkqcsms`ZnfxpyfmskwfrqpopuojhmqYizlhov]egr^rpq_tgtoj]lsruaw]qn{lq|jnlnwl]`r^r[wvqtywns~w^wqfk{nrwxqbfdvuaz{gktzlwwsrtnnrfVs]esnufy|gpnogkgiogvq~todsvx``h^f}jeo\mci`zq`zvndaykpdloqjpprcwdhinm}_oxyiphvpd^uihj{`txqnml|^edsmq}bf`fs^hfmls{]kwisairfafgbkiaimm~kePvmokkhoh[hlk{szig^gkVth_jzv[iplnb_wvknghqfsspolcktT`z~albmhmtar{_jk^aZgjxseg\mjsumppu_yeupfqadrpuysurmghnjktgsj^rdbmcndafmw{~huipxk|nkk\syjhfrncojgYum|Z|ckwt]qdohrjwhsTgpombqoqfdnwp|vsk{j~nlcnhrqrkii_oihjnqlciZjnpuwtqvmlxhgqdxYncfnsnmj_{m`px`rmlbl\tmmwzrlxyzs}UjojozprvZfjtsipqczdfkxnkmivowsrnhpwsfmgmv|drhgnpwm`ber^hZtcs~^osxjczkqfpb|qvfiom]z`~nouswuus[sgtkkhuwar_mwiusnihtmbdgelofmyx}melwzhsyamhnbmrwmtgqlp`na{~qlRn}U^{`ln{kjyvmffwasjlzqgjujqhlekhqXjfvcrl_je|_jcw^xllmhqnzmzmjxpvcxWzkqViWfsr~wkswtUwmoemcfk~hyzmdiiujrxmkmlhk\z_nduy{r{gkgrjc~gv{rdtyyq`{uu{qh]`eq{cxovhxihcuoqpuUkm}xqkm^nrghfgurssmadhtmrnqylvvylsnifljrmuleiektjY{lhmiu~jxof{lwsltkwjprninytj~yxeuvo|cnld|flfkmvdotjst{opsotgeorqz{|jsqowknqgttnzvzzuditlik{efjqynmkjyxhdevwgccpiycsvzV~ajoqoud~ouc|cnn{ov}yvsynlvdvppgmnmm{ikpldipnfyqvnomomkxqiap}r~bkhlthzgvye~knljunytlzvrrwfyurmodftlp_bibmkeriuoqcvSyqk|wtkx{i}{yezlmzbqhzlhepftS{tm~hifcjqvgzueow]wqdkmolmnklxshhrsxfkiqmvhpniugVpejwkfzenhrfcmgwoym]s}qrmmqolvoqo\ktupsixl~bo]Twia`ligcfby{`oqrivnyflpdpomwx[m~pl]~vjloumZsvd^psn{fnbdojhjl~olrizup^jkoudkfglloxdpwggoitrenprue{[lmh~pqihmkjme|u}xw~taggmTugsoktbknyrsjl_wpn{zpxdmmllfsgvedgzthzxbkioizipusq~tqui^ji|_ktmswmjacqwm_fkzonmi{vkpcfoapekeclzsplmexriovnjzohm}mdhmrnbpdwmum_~amrcmlnwn`lvj~|qrtnv{zowmuqrspovjizqiijtzg_^wjtvngtsjtfb~iljlhoj{krfntnpfjlqirrlvopsghmpgporxwmlsnfapjrotkonruqfq~tj~ndwgtmoxijjs}lmprieqvipqxgqeju|iquptiggkpgn{qtlojykod~pxxjysxsojghwlp{qgnepnpm}kvmwxqik~rrxrqltnzgsjfvojmnoq~vusvtvknmsrafomyhlg{oqiwilaeqk{mvsnwsdel\mhvurj|x~mxsrttyivsmqvinrhztmsghpnipdiooo`k{xtwqsbmggsYoljuff}yaeo_xdtengdnpgtvfkrpxxrmcejsqs{im[{hn|rmwbbawkmqjagfxmozasjbghoeqvn\`~hpiuhzsts|v_fmf`ihjszptbm`fhvpmj{ey}|etwzhohps]pvkrsdkej]d[tvgogzpwqqe~tg]ojghxkronlixjqws]cgsbnjod~gqvpeojj^msskaanduv\egmwwbksnixgxt`mnqqvbk`sju~prtd|xcsodpuwjs`v~bsesovi`Zpw|eus_k~Uwbjprmis{m]kvnsgnltpev`adqnpwdxi_ggoqoosks^{n[`{kpZirrytzcknmkxjcmpvr\`impebdyonceoskvlnkmmig|ekUepvoek`lSzhlxovi`tbjfwu|ighagfr_{jeouosqwbu{hnktibvnmj]jucofgvlmhmplsdtelpetuqq|pjmehjhcje_orkpy^w{husbaoqkmtdne|fd_bmfetfkmm[gb~pjmkkbookimo`eochymjogushp}kuloydjdgymmjousnst|xgfyoYmpqwlaveyyhqgptllZlrwlvivqcxm|kk``drqkznf}nkgmdoliqsoxoenrdfmobu{zcmvrmvmodrY{mmrsfyr~owwqzvjzyplhYlskxnrr}mswu{qfckymyspnksxj}ltvqvrpxklmggmjmewrstjihr{fqjdblihixmgb\heeqfe^slfklv`mqzgiqkxroqwuizi^wtqvmkmjhffhsfnflqbpyldjqlrqsgjngrbydmggdeqnwvjsqvkbljk{`ysenp]pumr[qmk~jhstxqjtgjzwqnk`fpjsend{lgyhsvii|qsYetiqsuZnvfplYh|lsyxeqy`dwhYjapplikkdfyVnjwjqe}mgfnYsld_c]acnfoxtYrdsk]|oplpkyyuwkVeqh}Yrot}{{nxkpgpwoeXw|we^|r}{rv|`paseYi{tnaudltelhxnz[mohluojpufuxxgred~moecpxwpm|lvdfk^p`nvOl^tswyxm`l}wfeufrr~aid_zkhazhpnumgm}_i~^bqgyj~jipdp^inmk`ipysujPkl_l`Ykzwbasysblg[[tnnz\kx~dgnhjt_thrXnssijvokpsn_aW`rkbspjuutquq}puqdjp\ggevscfqciflgnxouuYe~qmvjxffyatskognviwchhpqqcjvhl_aulynjwtq]srgncixdvgt_eskn^jtuprvqmi^l\zwzaiqkip~^m}rvb`mxruvj`asr`oqgyjkjvwkQdrvbp_nrgsi``ydirmzmslmd}udxs}cpdlby{sk]nktgdouqrcm\rvydgddvy_Vy``hk`wmpdj{quh]mhbxf_ybTyknim`\rjpmnfjkipijv{upoPakxmdqff^pp_rfzgy\o^o`ouejol{cfhmhwnkk``lldmsznsjus{pot|tienlleyg|qbsenhwuSmgtuh_]jpqrxgt{eo\g|duulcehzfYq|`mkuk\mwjiwjdvbnntlubgcuucrmljqjnretuxfup~urjso\xhmhtf}ggrveokqdw^m_tyizcy|tkk^|dbrbdzehy_iwk[qrurXoannhiyovruemkjp`s~gkydqncxtvxdu|snd|Ygfmgty]dqndjgageq}`iggttmuz|nailootgev{fbkonikyujd~cxkmXhmwbshnw^xven}id`dh_ptfieuip{Txesmuhmtu}b{fbmkkmeczqdlgbfcox`jigdwwc]qn}l`wt|jdpm{{wkurfukuzhbwoseupzlyh\pdo_lsrbuzpbvyfxropipgsen~orshg|^vguxoxrwxuYfp{ulfomvpteiad|mtt_kdfyvnnrfwlfvzkgwtoiqhqtkksgtixowenjopewmlmqbujpubnptkgznp`mptiubj`jhljehbtsq_jroubfaobx^nwiwuqg}nswrrpotnzgihbuoliuvkokionhzSodpyguozwtornhalpnxpxqcw}e~d~_pjvl`mrnj{rfmnhozlhuoz[djinjzhlcuwj`jev|[pv|{}pdgieiwmaiypcttt|uyym[xmthcdkyjdt\ckmpvmlcgnmgnus{txuwuyvbsayhrqegksmulnlsqkuutjsuoe}jclzuqrrhpdlcutYflh|fe^qkxfxsggkeiciobigjncsaim`upikb{hke_cYn}k]lrhlekfjjxoojptjpjmrwxavjojncyffrta_pwlj~icljz~cbshkrpn]tzthjkng`n`gifikkn{tsgkjc_jmlrnbfhjuakdokg^iqsiaxxj`yvtnnikhawhrkjuzzjqejwzjlt{~|dtrggrjkxo{tp{zwsd]_atjvsm[noqphdfrdty\mgsuljd{bdfghofgnunymZi~fojyiruwjkjkpruktohsmk|tdtga`^os_n\z[o]mmv~k`lk}vtoans^|plqXe}qjdfedlesWjfpwhrp`oegifqmu]j\hpwjantbnzosgskke|blcr{kvp~qido_Y`vragrs[qvkugrasnxtiutlrqr~\myivn}japkzwuqv`yi~mfzp{jkhqgkiwmi~}slhqzqp`x`kihiqmqrwpoefqevordmjbkjzhiyv~mevvungqrrn|pvjnkpwrjomjipbknpzgqxlassxoTcpuuk^spbg^rnbmruThmieejj_e`k]jnszo`oftywrjmoqojtlf\nrd{q}~uoogjqr|jqqsorqsaly`g`fgnjgevprrexzsg\oeomovmntjkgwqbyvm{W}pge]unf[fkwdgxhbjjircdui}h]ntwflkmekhqknq}lj\okdiwe{qfcxejkirgi|aZzj[hrqmldw{zq_kffglcf{ptktbetfkpxy_pmtr~ou_p`q|qohmm`dufoZfaduh|Kdnelvujpyirrenonkphbsfajeyx~\ajtumipfmmzxSenw|bloukjlyzt]{{fifnyja}tp{qspc~cwgjimorl`|`qXe|injccfes\w{vmntonohik^wpqzdpohfjohygkTijmefkuplbvpuu{eevolhimk|dtw~g}c]a{ykorywirydmounwsje\m^uyiknmnjneygltl_fpi}shy_mdoreioueZ~igpwuorpdurniqvg{rjkq}c^wfqtwjmhhpkvomqxshyhaajrgvkmzi{qwnlkxhnmqwiiskxopvjn_kifdtt}vjqekptydndssllmmfqszntpjijnroqilvpkombiloohr}wu}pplwqlsvetkfolkkgqpjyqgkhg}}hhvilmvctlw|upqiupjlsmplfgjionhkogrxvnu|amih{u|p{n[gbplupstmrsgmslwtqrmyrxfpokj|rrktstjmxnpo{lhtuwvm_qrbniyfqntvpsclhtv^pfznkmjq\htcggrsmkqjmdovfitulgezoppofp^rfprvziiYtyugbijwfnmk{pfvssq}_otqdvsi{f}ojhjsmoigrmjsmeem^tsqt{odswtzmohplu~rt^]wlpidizql}xvmwrn^~hjnjlejvntmpvdstgfsiiemulrpo_nrnvlrqdnikifjmqsetrmrncpoptlkhtp`s^th~khf_qscki]iyzszxbfmz\svotrrublescynlmwqpqkkpctvwjqlcrsnhmloffhhxlxvvii``mnon|vfuopalt~dooYfjqr{lpmijrcljs_wolfqgjrvks]sbcpjtsuuixcitt~onkk`ekrrswnnqhirqrkhclgSjkjtsvuiqllrrqck~vdyoiqnjnrmfwqgmntpa_ptqyp]mkn{^wqdswxjcqnmlbmtupbemvmrvlwhqjokn]buvi{{}lujkjjahfvn}jtgrdobdztgtcxkpjkpt{kcpkz_r{vonevuumraqqgh]icplmXipeiae|bplmmxtxewzfjno]f{oljpn_y\stehYtcn{keo^xjakagahqgdh{jqfzkdiosqhixwmlcptpunpxup~cjvsogaopltakxxhsth\bqwmsifzfsoYdls|tnlvedu_yun_inrktetfd]ndxogjYn}r{qlmqtipklikgfkoj}pccbwjmcnpbkwlegoi_kkv}hr~c]h}pivu_xsjscliQhquardtfykjjxxill|fgeffkkmon^nuxodtkskgsVijsiXsah{mq]{}zufcln^dmolgqgckqoebt[pepjjskmlpgljl~rnqXwjteRiL}frxhqigecgctcUjlsl|dck}hwgukyrr~xpxjkoak}gcns~lxtzdqif]y}pbx[r{}usgqrpl_elq`o{yeYfm~x`sxoYcsmzqyeajw}~~l_vuicjuutl`poq[|jfc^{m~nreMz}siu`lty}t`cizqeyko^fWmfzkkodqyqrj~igoml{uVnteex]~tceio|drpjniumc~rqb}ydik`_mflgqiYq`d{[anawjtukwmrl_dhf[hw__{ddv}vnvliouwqfym_whqjwjlkogkzmm`jjjqotfbisq|djjecmqmwaunsaees_fm[mqjq[ggtkmvffjnviZpseummtnXjbavvtvm|sp|rgj}vxeoohl}oqhhohty{^hsvrzgo]ffpgpxetrg~lbqioqcsknuoemps{p`nywkspkppgbnu~wxjblojlxu\hanmeestjhrggm`kzvnq|Vlwqftqoktxj{`yhnqgkkidn{lgqovmtwkkmatzowp~mkgogqrn\ajr`k|fojav{exntZer_qh^uboxclmni`llkowimx_xf`rwojvivjiuqp{phofs|sspfoqsqoklasktaqvqkvsytlclfrqqpqq^eprj{pfxkpzfnqjsnhwzyg~avokyhjmxllmb|qfost\ltvtvwbyikVfwrmmiowluvduetpyjvsp{jzkkkl`h_hriqnrzeuluasubmcqpcjbojjl`_pksuWtqydoh`_nrppoWvsp_mqqkehrdikhc`nfvbh{zu`eh}bzkpinsvnwjchijtpfcmspqwXdveiuiv~|elypg}igewrnnnrwnhcqncn{ihxuezh[ufXy}vjkmlawr]\jlemhp}hixhqbgszyq_eabmpYkmtxalhdkyjfdxsdo}ofy{wvulpr|tiqu{smoepg]msfrxhhmpojqyolnq{amojs|bftu^entgqXqvvcerwprddpw]lo}qogle`dQ|cdlmwqa[kg``uykcojgqhaet[vknd]vtkcmwvox}|kupiWYtplgpldxjxx\zhx_slmjtixU`qrjtqhfuz}kxqvNfgWznvjizf\ryzxsspqi~bhlpuxhtvqmikuqzpopvteylwi`^{g{tobqtqjl_veeumulh`pvvfcw|hoxintrgfuxxxpuxokdsqmxkh[|iagjcngjiosgporv`tzvswhow~knlekkl~pqitjiqfpxcn|ovbbmuxhosnvblliujqqlkvrluksxirpkpbZga]htssuemkpqt}jsuqwqkrvuw[nckixu|ju}rj{spsvjtdwkanbqnrizxblfqsoyqhfswc|rilj{gprooejdchfjyulmfubipml}owpntxegzw_dl}ejzngs|u_gcdpyhkcasgy[]c\wZzfjvim`efhliy^{eqieoft|eaqlouiudk`vuhnnmnxgh{hv_okhmlpy_k^zdgpczvjmmht|qmrnujnuy{tovlblfrsmyt_imeqvqfgnsmk|oqeume{qjYribk^`ecjzssq\slrxkktlysbnii`wuhiakdweelvuldsvlsfw|d|udufojrutdn}|mbure[y`ilogmmjx|arkgrt[rqnphtjjistet~[oscnnukkwwlrkcqwvrpaulejeqoe[oqevtfinkhoprc~`h_e{sdcozjhz{jaynqnhskhbvd{cmjj[gyfm_jfkvyn|qjlo`fZygpbqpavfZomjdiWilljf|hpq|z`oxx~zsz{up`gg`rluasfoorskntzaamckeyfq{{rmdkeYfgpobuewtsefqSSfgmgtsdcfgl^gugkqedfibpn{go`wokgsvpk{~zetqnmodu{covwfrzrzrpiekw}yspv_|mtm}mojvvkyg_sknywe_voisntrixmvj]fxslfpmqlhyk~djpweb`ytinr_rkk{ufwdmknnfnbtqvjqhp^n{xereutqk{zzapUgpkrohz{ki{m`puhckkmdwrolqrjxihmw_oevcvjovwb`ipeoevc~lijrpnwnpvlkjz`zwooqshg|crkeznpuzng_q~dfrpeau~lx{wqwgdph|rw||ddqvkhnylyielmvilugijmrlgj{pt}kf_ssjyiqiliefvurxu~`[hotoasxpinlldpndrqh~lqq^{ripibgw~pjojdiwkhsko~litwz~xzoxolgsdtVznmjs[ognccsehffmlyitNuwklggpduggqppuw}ozlosxrvlvqpycjemdwjghsnhjlwozamrihorn|hasfilpj}hvqwsk^o]ikhd]_ijphgctzbyr~XlfgiaZZkru|i`lnvbp`q{ojZimt_[npfkYedikir]~udvszsldvdexiwq\b}mbennp|\vdoshnptbXjf\wolyelonpcoyykz{}rujoxmjlt}on[ojtuxkmxkw}avwcryrpfpvhomis{{tliinhthkvqnoils|vunikkewbynejovgkyTsvqrwospWfgk^gqrigiix{hnmqzu`ho}~[l[hloqnj|uwmuyakkYofhtueom_fvr~heeqi]snnjlvip]iwxrqhfqmrpfxijyeo^pfekvnqmtfshe|mrigqb^wiljnhgsspohx{yr]rouow|pnulympmovxjZ^jspmtZobx_~i~rq`nf[rivWzjbWnpkzkq\tfhremcpzygpi_u\tzliqrljrchjqpvptn`ftYsjt\dvsdlkzqkc^~xotieim\ibts`^{Yvavq_mdmphYjd_n{r_k}opprwwqrbjrhYumyeg|visdvq\nphypsi_uq[fqvp{lmkrnps|ilyqwilrdsvphcaagnjzinhqrlhwostmhml`sfwxwolipsxjeunc_qtkwmthevrwc}fj}vnzqkmlokwdcnpsrjdx}mlkmdrnume{prvtqztqZvuvgpjsmhqcelrrmsndhrr|rmsyoUgiqvjisjxxxesp{[ffc{lqvcprkeiuttwt_mgorzom~`gphnnrrvnpmsha|jsfozwh|dafgntrtslyjklvivksvr`fih|ygc{txjhkvbqqv`qpdnrmj`tfbbqszdpizku{en~ikwobrqkhxzgjwd`tzdjnok`otgzjuspsjezpluotjjz}lc_vlv{slth`barktf|utt\sxinizmaxzrtqllt_nkblqvvo\qzhfotx^irg^nhzsmpuo~nurtv{kaznirzepqqixvotulmqkylkzpkf\ptiyjluh~detqu|xvmwwrqcijomppoku~kol~uvfmsnlyzpfpr^rlelodrhxj`kyhp]{tsxqw[uteesjrp`Ttjkpjmfqffnemguomjqjlwx`}momvugkusg^|psnzmvwchfzwfizgz^qrmkirqclqoq{wdwtjsxexsnxfpzdjitod|gxkrdovpyp}|yhrlqeowcutsstXmoka{pitdtiufqomjmgkvqpgyfp}|ekncqpp|_`fm_kxslpdpwooomic_`yv^dxojmnyywpd]k}njurcm^\hgj_ryg~_^uqefquqvd~sib}rhlg{i^hyvtzyu[pfgjnn{mvyt`ztffqe}y_dlekmrrkvvk_poeyerxnwlfqiqdl}yiksszmdrd|[r]dgqlzvocguhxsxrgiuoutngnt_rhd||egfqlzogkgobwpYwmhrmtxieo{vqptmzc|onvprknepqkhlyiz\tswitpdcwgfgxrrlgpvjk{t`}opmfjo_vdqjoz\hriqgsvplgveZshwxr~]eeizfww`giufcbyiimcfgvxqnmvionqjmutteftdfzwonilmqwmflrplYvcnxsrcnw^rtmeg{lxoxigm{jpdyyiedjavkfhlkvgzptqd^}l{uqrepty]bziukfghn}cfrhqdmsnxol\Sifp`hhk]lnce}tokfwp\ltsuudiptqvrwagqjkfvcqsuxorsvwvyo~lphfios{q^nvisg`pgirt|}greaYlhiiiq|gr~acazkpkmzk~nzps``tiljti{fd|_hqzdok{lpwx^njvtcqs]rvpifuwmjqwa`golmjhsopep|l}wc`es|smuvd_a}_qinnkkhd`r^kbjmkjtmromhqmlbenfpttsblkewos`rlirurVcbrc}cuognmzip]lxqxjuunnivovmue^es}gampixngvumb{niamsZfoygdixsbjbslrhgnsr_xu}{zpjgk~etuu{ggmnsgpr]{kct{mlybihqkostquwvpqk\wxgeiarsmcpzvrqqdsgufthszi~jjvstkvvskpvmkfujqckm}}r`ceuinn{sw^|m~srwmfkliclZo}wtywaslorsmhuhpnxjmhyneirvg`osiiwyfaemm|oudssbherehuegjswgtx^i~xkqp]hr\wjglrnxotazorvzv~fnxmXouizjkaopip[nkpulrwwkcri}ajmlvoyrq{j{lywcihl`vnoqhn|jkjfwcxpk][fpnspigqtoppkpg~mvvpfrzn`fdqnsjtL_kdm{rphymlg\qmugpji}rg\tddhk_hUwesylemckZiolz{{vu~pqvfh~|||^inhjge_`mrrtlvayaq~k^jcnnpmobhmm~nkutzhcdjhsa|ywgsrmpmi{djpfftganvhg|_eioqllqiotntsnskehwkkmmlrom~fhrxuvwj~hgphmrc|n|ovqutjUpcldikxus{mlhag[qn`sjntrrjr{kmsthkjkzvliWicza{pqd~tjefitjssyterwritzqfznklrve~mpgon|}jfjoryvsqrZtfoaiqzv{cqszebgWjt_fRabsvzWobr[h`nzpsklnp]isujwyj{cnlccrhmn{mpfubtymxrenrp|gnr^jq]oacdnjVwafmclcivk^msrhki{mi}ccoyk||dq|vvnwogo|osoqhjllrsklixpgokfqr{mjxh|WhtwvujkozpeXs_lnmwil\i{qcvijvnisaXopyupgqx[y}qqsklytn`|qhryduqnkcd~qakmcmnriglvw|urnokc}ioslgqxpsp`rsmizyl}twsrsluynz^oqfefjqgm^pRjgp|_xrtbmkqpmbfwtjimtvmkthwfkc{r|oXk`yo|qe`jppr{ckrq}~|fk}koplofininkohxcokikxoikplzkxnigkzemumkiikkpeojwwfljmkpnfqhgff~fwcpdsvntwdypofaershoxwvwezahdoy{}zflyqeguw}jki{lit}qg|g\ihfvplqmwo[tkm~pjmrevugzr\stdlkophofot{rpvmvmosunionr`ebjdbiWeuqljjkto[umxpkjWkmkrawppjh_|v{qiqjxqevmrnztzwrreiZyogYqk|wfixirbm}w`rhlqvXbfmtuncgnoygr}ypbxjchiqpd^slw`lsVztipZnlslnkcbnabormuidqfftjl^evjzgo\}xzvykrqrfimrhexciqxljquata^zzixlz|pyhqzpwpz~oyjndhqa~{jscg^nuhl{m{nnktsymyntoYsp{khfkyso{kppbkqfqQ|ujqpu|\kjrmds|gifq[`qmt|Zkeollsml|ulpt{mfsqojuxfvgjcq|lxep`fb~gstpb`u]ylnVimtdohfsfgromcaUkgpfeomsng|^hxdodqfsrgkc_vqZpvY_yif`qxejih|jc\zxf\ehofccvfiofkx|olf]{kpxfVus{fnekfnqhn{}oxbqpu{tqlgvljymo}s}vtp}sufpgWmkjtmjukmeljhevgrflijz`ntidn|qctqpo`p{jkf]vgojrpajxtwssxjklw\umhswmutrnfklilwngqagllevusb|copecuyrdmmjknlqyczqus{nyqopm^rnhuuunqlt~awssj|mgaosiqymcwhqmkoruogomupslwfjuke{lrjpipllm{|yvlujwpkpmgzrkmmktnuk~o|uvopr{xn|snuhojmqpppqjotwlmi|vpsinqmmqomttjivnni}rouhxo|kqswotsnqhagjdnttqmosvqiqnosjdknbrpgnup_mqosmmotxikknvcesrmrp~mmdvgiy^fvru{emdte`|gzrlomkrgihlonbsinzptnf^~myms~jzjpxspaaYfjglpuwuXocqXnhjfjtvjeqrl^zlqjxaphmrfdn}ndac{mrlauoj`ityhnjns_neiyhqjfppqhtl{lhrzsjsiqhwqufjtgpkqhzunvndkrq|l}livsmkpnqlgjhqpodbuprreivqim_{r~werpdkx~vj{rsklvhZimbnwabhk~spXv[gnit`povemhoupgrjeh|eoejnkjh\r~\kwkwjt{otyewetlr`gsmrkvotdeljehbX~mjuf]pwbnegnkljtl_{wsp_l|Yuqbzwknnzolhmphjptmwhhjge`vt_ozdt_|iufnpidtqzivxglqfpmkmdxtxngtgn_kucpYrskmjbhau^nzcochofieur{tiqoyktamstnuoiZg^qlpuyluffsevbm`n`znthwj^khagkjandhgdeccvbygb}dlrfvofplp{rszqxjthxbudp|qbivpdl_ncodum|Qiohgm|owkxiylxugmxbvknvfujiff|ytdtvudbdsbucjfyjia{dinmlppkk^qkqdsg]u^^ti_xl{qnj|rrlpdlbqemjhknqrb}tvr\b|xgnzjlkvmlvqbkp_hjiv]b_plxsxtxg_{vf`ls}Zybo[errqhjkeuvhssdXfj_qs{qekc~g[ugybymljpcr\gx}lvgrwwefkg]trczmr{ztcy}uoatgs~nw{d~ilrwrosmsokhxoaifw`cvhvnoooortdp{pe|xovbrpnjpkvfdparhjtmwjgonq\qrzmlnrtkzogmjktlss{dnkyih_ytpqlpsjf{Xtuhjcsklxhnu_\sz\|m^jrsuivtjizamlwnwospgqox~}tbn]okezpbbenZbct_atnqnype^lahhriruseg^gdawkprizhuphvtykkXqgqnqZjrjv{emgjm|es}op~evcoghkd_saskesicsmjkxrh~ilnn~wuxuviiYqlffiu^di}`inn^utl]mjktpnpsboXtoqxehmf{jm\~k`jvwdkirqcx^jseuugbvkalqjupctpowqwjhaavqgnrlethd`d{nbt]rut[sqxqlgzzb^uogjkpvuhlqpjss}gh|olcdluf_lj{tbvfqecckamhkrzf|{novs{~epk_fvfi^`utffbwyttYc~iPetfo]lostmntxqqxtmfdc^rsdfps|]tdm__nphWhukpvqlhkk|ytj}|_hxsrutwqf{lmgdl_gkhlsnow|mkqgonybjocg}`pemm\vllvgrq{soesmzsbug\qmmkvtlhofXzhjqr|w\mndlt{ixhsuclizk`xequuqkq^wasd{jis_qma`m_kvndhzwpcn~|qn~slmXitjaaoli_byujlbahrnocgjhdg[ucXxW`iVlk[tsacprhfnhvs}pxn{qhjwsqfu{rjfk{ernxrdlqwlnduk~wvnrxup^vwcvee|wpulyll`l{gwxd}k}lb{ssurcqax\p}s]tkwka`lrsx{{|kohowqtwystfrlmnswjp_X_vWnsgvmemc}ifjzo]sl^ik{pnloarghuwv{gkekZtwsrij{v|lppyauvkqqu`lo{obldmkivwwyzgknfopiklo|igrgqprk^usity|rird]sbum_qlplzyhlsvlgpmrgplehznwjjlfupopentwayy]w^bwrY{atzsnnbwqojltp~u|p|intxmlgtwqixclprjjjrmddyi|znamkWt_ehzoljbzjpix|oshb_ok}roubkzh_m~pkgvmq{`nsdmnv`kogdlmjkX^bvRpwrfugaufsljghucovjcogostwssjyss{vrepnemutcs]\oujgg^xmrvxthlfxlf_fqn_`ceghr^lncmfb{ksysrkknljjk|dliikqqhk\q^lzcwpl}jsikm_vfixfrqaduqanhlqhhngtlwrzj\zqwxrl~zmkdo]~jrwtgfsk}sdgqixicyme{psYvsdxxssj{m\y_omh{eulrh~wuenqhjmsnoulx~kgox^tmc]sxtqwqr^blgeqdnmk`l{qkrlviweilyqknj[wdjijjowolfnaq~wy|syc}wop``trsmptfw`jflj}nqgoqndrqqojmhzm]dtihpmfyovjkvrmrpbQ^]zyj_naitwqp~{ezolmplbiemxjkbn[mqsvl}^cryTpqwsbgluixpmkkjbh]x{ysjnix{_btc~iqpriuTclsh}pwt{vhowj[mgxhqg_kvfRmk]^lhg|`rpcrwSv^loidknz_trhjrwguk`ggvudhwrvl]^\bjq\usoxoml`|mtslgom|dnoliprbl}jqlna}xqlpidyZgcnv~qo[}tYvnnroltsblXkmprsyqqtkk~pqhukmod\]xmpjotmizjlrnbp[sv_zRrvlhakvv\mkuqlrzuxma[x^tzr^ivkyu\\iulqigmlx^ljthgjfrtpt{kqr_idhaxnlizruyw{bjfhlUnuexpha_xbsj|fpksswqoqrbvhjitfkerjmewjaot}nkkl_ljkerflgn|kdYuvnco{mjjqnpmprjxjsw`eqel_gvrmtzicbdtowlmmqp{kopgjcofbni}jqfuc`\k}i{yso}hp`tmlmtjot]abqrladldg^dtew_^pikmf|t^eltvrpqYog}hundyomgitjkjqtdyxuvy{vom{{]miliotp}jjxaigxhzu`qivqpv{reqlnxpln}xVauie_xqisnjpzp|pemargnkcsqtvt]husik_nltsqtdotrpnhhwxfq}s}onjgdhw{iwobux[xmoyr{ojft~tmjt~zja{~|uupmxefrgztrtky{ttxmmqlgtrpkuppu{j|}ggrrpRneuiel[qsz|trei|zqfogyyo~lmogouktocoqn}rYtqtgeis|ivf~yvsao{rlaoeofffamo|nwg_psbpwu^uhrcrejb[mzpuuitj|wZkfjkewQmquktunphvjhdpnumyspn{hrvs[sYxavkxsckqtlpiwekaddrlnty`onqfns[ykf]qrfjos[en|lfjulv}ivonrVmhgekZwacnk}tjosefmdwcmlydrferxolgfjjpwoorgryqpodkxkedxedjipnjd^qtpmb|fqsd|si}lliweitdr~zg^qvs}suktpq\apftjnjrnclidbxnofv|hveipbjn~jrfhn]`z~ygla`ns]lmhwfiiapxpptoywtubchatvkumknumrsnetnonjqpxcfofgzrqYgsodcqrynnzbfy\yvgUetoamzgzzg|Zrmejsn_i]bko`cfreujhdjy}vlgq^tmljf}hqhYzdx_nQqoVtyqhv}gqxzs|j^qgihzkkr_zmhpuqmsrr|zsatdzwj}cfqpdp\uc{msoahnbq}npciknuZoXkhrumqomgbpfujuioyoy^yy{uUptts`lsqocgkjynuq~tnywkwcrqmfpzoh]hzkgrfohmWmrjirtgbujpdvgjyumbujqpm}rwe~nedwxrdqvstm{hf`sqgpq`psmqykrg^eixqiogwvcwltpogmmlnpnxwcdgmfj]nvnpemhdctltybrlStl_bXszjbqkevvu_siy_ronisg_ylvkkdjsvkwdf_frkpb}cglqbkr{hnpfytqsevnyat}ooykkyshohycnZvlk|pllYluyebqmZlgoozjrbv~sgv|u[awlyqwenyl^jerx^kslxmYpjjnpgiysakmew_pkgLgzvhumqokghtctro]nopee|qje\tcgglihsv}euj}fofnfqjpohhnsik`qjoopsxiratrqvvcftti{glxtsjf[ijhnohzclxrmz]`jtk}mjgf^mlpmeqflwYbglgjbfowo^t|uou`kmmjjuqmcyunhgyxunzvwpimrg\jvwtutywsokjxnghqivxjt^ynwk}keagbqo{nszoihkmr]pemqQ}zfdbjckv|kwphj|oujhfnjscdhkiprun{qndqoud{e~dnnwyqtptildzsmqzqywqpcpgwajq}zuvrdimvhdnnnnvgbuqgzzlh}qpmvzvihp_qbmuozoiuijrelwq}|btn~qjeutd_qxjj{m|zgkpq[ioqvnwejigcliZkjpoyvkdoeqy{{ntkzwj{tqb|g[btpn^juntp~\rdlrslThfsgfol{vrojwhzyfgn`veymmYdiy[hmubfhhknjcoqhqosiiqigplrrtOpfkkjmqlgg[cdl}hutiuqq`|qkwpptypnaiohqxlkjmintlwtvr_oslZgsoc]zzaclZnwxmmwgjt}m`psorhjs]rb|pvnmjtmmtvtltlqjjsnwmngjettbnm|hifqkyxnjqrmjirni~x}nlceiqzgnpqpqnwnkefalnhvh~imlflbxno~i`wslju\uspXwufefphjs{gbtemnj|olzrnzd|_hp{wfqfjytuhT}mjowukjYdsqz|^rmu|gupexj|rjq_tpjw{hyzmx}m{c|yzrgffspxfjf{oyfshims^Z{bmiuoosh{unv]io{ingeiuvn_jd`m\x|tqvexquuksepejxiroywv{qjYkmihutunqghql|yrccmXbiebnqksnnyhvZn_tqupnmm|gk_wfmt[ylqbqrnyj[j~qnfexvuq}|rgdnkzhkwgmifhwgkksYhc_rltrwjrjgcbavkgpi]fyawhinjhtutvpxhifioxlrllsp^hfxjukap`jjnn|`~uwpbqgfvpxxv\qocpntomhsgnunesrbqkxukiwninh\Y}x|fidbi\jzukg|m}lwojqqUabxjj[aqkqgidlfccypfdPsgql`voy`jngyph}guwrdr|{f_zwnqjviit`gj[ogwyqktyoodft_hvmikipgfo~hgjq|toh`{ltccyoftjzkk~d|olkxvdwttxtsds{xnzdswnllj~aqdihmdisltk{ti\ypl_|htajjqlpsklrf|wd`kte|fi~lfdeegbfnWsbq^gzuXpv|hp}fpmy`}vye|k{mepmmburhpYvZrm`ottwpslrrwqkoy[zoYqrt}osqszcjuauhifmLsq`yygvmdhoyvqiqyuok\i`{nqflj{xqldxcgpmeikbcprzhsevshpeomvljjb~usejuZ`guvjmi_njqysbmnvcjmlhjkerezmuf{q{lo|eif\qjnt`nyyjoovegoluooc}ntktbqi|n}lsr[btoqlhssqsfyq{~pesewp`cmnzwj~tmjiwvlkn}gefj`ittldcoll`glmgkmt]pmymikkrgjleooUo|jf^ajorvroqfm|_rjekhxdd{eprmjiptemlt\qzZxndx^ruqgmpqfxwvijkmubff^chrfxtpnoiozubxanprzz~g[sv}pbnfdshtxpkknuuodpnwxgyz^umabgf|nmry\qlzbheqpozbqjwkudxgrilhtk_w[e`w`f]{arhi{hvtxekQofsynkmhid]xrsnkvcskhvjcs]d`~|wrh}ionss}\gm{phijxxaYyn{he|xWksstxxsv_jsvqd|hwniuwulgbfbwoeygffu^bvtdecwimtr_jppndourthrqj_n~}mqopvxqoyqpl`[ofmrw}zs]jsoqohuodcywa|dvmwnkjallshxmru`ky^lh`vqlzpivpjwxell|btfnmqhsplobloUuvhpuc`Um]pqjj}q_rohajw_~esjuqzkdweis}qgvepeol_mshhubjmo_fl_fz]hvg]koqmqyvqjbsqyuiyld{txoonzr|lktiubjmod|e{geiZkfghix|crnqfrtqh^nph|ccv_}rbXxqugjTlbvgupkoz~g{pimZqxqrorzwdnhq[tpgksigo_pfxgd|jrrdrinkcfgnpoiw|epklithlthmnroqwnzqhwyqpxntlqk\ttmhrsntql_]iwuykq{rmrk]sinlgdpuspepqzpkkhqfn{^it}oromhlcuoutseohgqnnqu_ps}jpxexhcmrpk]gckxyqrho~cyilpi{sopphvirqgtcvsyftq}Zwqh`qxzgigtoqq|xn_z`rkevtthsx{odhssonx}_puahk|dgvshjyqdd}kkpzgun]djtohqulqnmnnllqYwbfqioorsslueiwvzjpoygnhiqmdqpsmukooo^lio_annpwjgm`q|ijenr|dccWmdssgiex~sjyfkhrochgWmh|cvondqofgmds\trihe|jn{rqqm|fcq\|hcvmgndlsgtqokor}qpppga^hfoe}w{eodssadsi_tkcfstpvherifgwoumhpxolh|r][l|~d~x{rqq`jcvtb^qnpwhrpscepplkzb^yg~mepfazbqjdobymlgbpxqjfelro}|dcuimm{pnh_kpopcouw{\luofir}fskdtmvj^ps~ngje~ovhrqdqkq|tikrZnornfx}gip~wwtndqlxrifsfkjpfjqtmzjr}|vl_fpfpitdqrfvt`j__jcag[mrthvkoWfuquhlnsp`czjjmjxupjqmoopkbup`qxmpqtgnfndYtjrqxjmpyrxfie}hidnfwnj`psxjczqfcmtinhij|muwmweykfa_kxbmoccvoxoukpkrnpiakrqoosglx{agntlxsztuglh}nkhiavq[xuzvsqvqlrlxyrkicfgbovvfenmh^ojqnapXq|_^dvtc_oqkggnhskbph`hajpoffgu}bodowmozrmfju`xzmlqx_rr|rnkyV\dhurmceoSllggapbxhclqrzljehrmvufimwceeqy|qlbk{]y^ssvkk~g~eevjtdsil~~i\nijqjbydrxe_tityws^tykfuthinssmjndgixihxj{twkj|{wipa[yhurvclvzhepn{~qi~bz\rzlebehWssnfnsirnii|snozpynnlldjmq{kfak~viycqyrhhg}sgpunnpusqh`ibmqlpXlhimcnjnigr~t~lqhyryw^dhb|jx~ub{xr^umxshxqhvtvdbinhk{i_r`nct|qkus`s\Vtehurrjkjw|esmnpbvimgxsqospYzg\thntqrspqustfrlpckpznneqpwqXUyykrrrmvnimognsj\rm_hvlnngcbvrpp]e~u|km}xujligsemmqdqdw{ownjly}l~fqjwmql|imgvjvqnltmp\fkjyekqpxa\ijwkqgoqbi{kspziiwl}xlig~rrrt_sptwrnzyodihcgyv}h{mj\\\]nctum}xw_nwqorvtsiwubfgiuk|kpmcujglrtumndjc[ervgvnrelqloemsqynshh_~gxfnbohqjpxxr\~p|[xotwh}nowh~byfx|joiqhnjdvs{_rmqpbyxvoo{firxmftkmnrnuv]exltt`hlpeswmcpzlwgjifkjpnhsq[]kqmvmmlppibv{e{nkxieaos^psimf{cnyo{bwvv~\xndnsgzivhhepa]pcrx`vswclwjlcobvlqruiymlii`kmllcsswtlk{lkkqvjjuls`mlhzo{hg{}hq`cqxRmklftdizmsxgiwzlbtjybhchs}pwfgurnrejgvfmglp`gbiikbjhhcokphfqrgajqeamvnfluraxpvufgnovmfwuprpnptkmyz}iiioeqoohkrxhnburtiqohvhmosgkssokcdojmlsnvtjqwqoojnjkqpehZymripofrniketfcqupgpknljkocvxoqhnkopjmxqqjlopxiriqmuhlv{xnlylrijxwnobupmnl{uatnnkmijxjiltlcvdm~vtqhk\meoqslnmlxrajwtxbjqhqpkzhklnmsqlpdpqrvpWvojfbgkietvhd}yktYhxvxuueyqpmdrncsuhu^frw~qqds|}puoql~ymnqmgmqrhzsoijwvssqpjofetjt_ko`voocVnribhecnjasvljbb{e}vqntjg~dk}wgyrrgjmohn`hsibckdlk^melwtmjXVhyiurd~ocrgoczmqsqxzlbnxrlmkk[rkdp|^jpmaml{qmgy`olnlvxmvbkcjkxvq|bjrmomjirgmvsp]iwmmzoctt{db~rfoonnvndrjwdzwro^chikpgfliqo}fjxgqnzle`rlq_ny^uqbolaxrmnjhnmqiln|ugirqwbgj{eyvmdbkhjrgnlrmntlkfjhtsirurnyirqpkejyonyh{]}m^qr{atopjlc^{|bsspwlvuq}szhshmnrjbzrueloclsyp_jxnbr|mj~utikuyum`qlj{dzklzldtjX^nwhvsnc{jgxz{^nuge||mh|hg}u{zyjhppnrtilqxzxXvtg~l|m`lupfhckvdrlhynippmdenxz]jqmpjtcikwmllnnhgwplglyivvkoegkb{`tlk}jTiu{blvupaznwygyVlexgoijszbrdr_q}sflenayglh`yqaxodnttxyTdlk_gjlbj|izpyanuq_}rqynydbTzoihyjrd{j^|wlka}msezg_rdusplvkz|rrjmopljjjgrbqynxnxsjruhevdlmYgjncoo|y`qkkhnxf]eigitdkslmns{r}o]bh|vqxlhqlxmin]hgl`nc_hniu~muwztmanm|iqqmoelpqbfa[nqcjmtyvnundkxdooafjX\{ponrwfnmyvUnkjymumt]lipbqiW~gmcrpdwkkzguin~`_hfkq^vfu\^a^mfmlwlrtczzebgmp]kkz_jxpgwk|ffkpqhggf{fjj}~xn~tlvtmtuoixaupd}efmr~^j~txwnw]o~~omotgeeg]awf}djxglxt|zsX`rm}x_ti]ao|unvl]_hlplysac|xuyjcrsl|xoph\tQccvngpWbproijqXjwxyh]oynmqiqvh{qncpwpinmrkqrXqlnximswuuopkthqofpuhnumgxlimvrksqloqwms|ijucswiowmhwnnokgibaymvqzcuhkhpkrqowonpwskzortiqngrjhjyrsdmmmdqiwpslperqqp{hpvhjrwlvur}qqq}orawlt}wz{on`jlmmglvdourtkseqr`nl{mnu|wjqlmdtrtimnuninbqhtpoosxwplqhsnpldqqlgnrlxhuq|wlrkpntzklwlolfsteluqdrntlqhk`bvivi{fsfiemptowtvopvrj|otmlnniqrkg{trkushinnxpudqjottk}ink`gxsrmzk{ssotrctvvoxtwuoq_lflmisratosufvlnsermwilpprspwzi|ogkhsstsieb~pmeet\ijoienglddnvfhkbtqsissphsqswlumeq{ud{ykulmnXb|u`vedtuu|qwkjjhjckfikqvz{fepglomyzsvb\xutwwjahelzooxoayhqTkkei[nqhwp{tcrsvnjp~yytaq_qpyjbaevvnlswftgptnp_qgsyh{qnnkskni]e~ipx]x`xo`irqe}ppvuv^gq}qsldnrqofuro\~lt_slpe~rfwspku~o{kk]erhekhebu}_ibfjqujfswmzzljfhVrpedV~rfvmf|ttf\wnupjqk`ujhklkvjqblto`euowh_lrqzsafghszuwbmxlm[g{spejrvyme^lfmytdex[^xhnykajja~xosp^wssoqd[frqnrsuvqjnd^gpgbgkhb\owuuhorvipk\ugwowji_jjyuttjkookyuvvp~y^qjq^kxefr\tbfswrq[vhwx^ugtlotpaeuqs{npn}cjrpxqpZmi~rrngtiifurfrl_nrsvujp{bogo`tbwt|yygyXrmpmzf~ljmskllgkevogjhr]cmcmfxps|wvcm}nnpnr`cgwhl~teoxlnpj_t{qsoditmxqoptrh{smctndjtqeqtlbqmxtzpzjzpreqqrxsqgvkyfrswQscjioaqvsflrjwiqpmqmyiuqsjquetyfvploZbgr]jnhzhg}trgld||llhgwwqrj~}gupevpnzfbjokoj^xukqpp`ojdxiphfnruuitr\d|ehu{mrgnqutfku|^rwufsrgnhj|rlrlkusfh`tyiurxgqkzctwkdxji~fykuoqgg}itztzuc}gqigxvowvolqwiekdc\mxdrctsbhwgwhglp}hs}njqxh`hpxsdjgwnurcxlmvufelsmnnesvhwv{vn_jmn^vobn{wyhvn`f]ufgqgopcpdknyonk{ijsnhxsiroeucglt^js\imnoyludtcyfnwnmhtnzhlpmrthrzqlpsr~kt[jkenfyfom}khyrjnplonnt}uZ|glmqZallpc^hWmriuuf`yfiynq{vr[wkxkirvmwq`rnxlg]nirkpmswcqtvwpoqhq~lfppixineyjuXk~pkua|cvjqlw^vw{pon|vlqpvysqfswog|rxamqqvoncuooblydmxmtn}bmcfdewyfexdkcqkzgsitjjtefjciolioiqoismo|flbflzlzlewjqhwqqesut~mrsq]m`\gupnfpmiahYcrkbi}pZsqhsntwqjxjcijqqemijdvjr~srnmsqekmhjwv\rfcbcqjl^dluwzce{kn`pptcf}Y{gggyuk\q`}j~ngowjmuvlbs^iecqla|\nsgxmnjdqz|tnv~cag{|u}kojtploxos{fu{_wfwfrtuxxoyv]{m{hrar\py~fjr|xhg`or^l[jlincelpprn}pwnrfl|nZ||lghjwhcnpn}knpraestnigtb|k`tVbyliprvnarxzjqorl~qnsar|rpjymhiy{l_pom}febyinj{ukmrizywqfuopmbuspj`dnayumtxxivjoeu`giitj|cv{plVimksoklxirimjlqsqmgfrszsgabvrkpvot^u{sXvhtxq~thYb}mrhbsjablkipvatl}ssvr|hwigjuyhmmYuhyrjYsmerqtq~gbfjfplocyzxr}pedqmpnpqlf`ncfcojykvyZt|gnjnvtlqxfv[fsgbxetvyot|tlruf]kmlqqd|yixnrkzohhobqlofmbkbhmxpso}tiUdn_bos\gx~iqiq_sguj]qpchlusglwsrmgmxgpb{||lxrgsvoikos^sisik_o`t}rlimyz{vpacofqsrbfmgYqwdmwsd_jeijtflizrurZxnimjl}jnglobjfmvdurunueqpfjkkuypw|u~vweufqlnfkomhnpd`\njxbpg{egj}mx_prfgswesgo`|hf|rlZppnaWzkif}_c]ti`zlo{vnyzsbvplolmqtwkpw}dold{mlfa`tfhj\eizfdhrg{pnw`avlkwvflu`uswn]xvlbwxtlekpdiqutjrg~v{kbvn|kkgezm^qm~Zkhg|sr~}kvlvh`jVjzg{zsidjsnnu`t`]rmkw^jfayl__dgcgkdp}md\}^tjv_drdmqlnpkvslkukubin}hywZibqecmqk]jriioop_fadobzmus^nfuomlyydrrwaeb^Pkpltp_nthyyok|sl~]nx{{lcfhx`enuhyjwmzotijk{jieu`moipjb\kzg{qolpqou{vyandhcgjboxh|fp`idxraqknyneezcjgxsf_xk}xjgro|jwvsxujgZdquc^xsbiJtiqg~ct]jnmpjs`i{jd]ykzqgnoqcy|upzp}gssjnd{|rsgrmlbhjnlwyhrmrntomgct]}v|_esodgttpcu^{rkplyRy|ohypmr{miksnoyhrshuujmajjghqilhdhti{kaokftpgplxtjnusuf_n\notqnwbqptwv_sgnwwgmekwlwybvhikwa~uftw|hklommgrmegzvxrsgjgpmvjsrjcyamlkuuy}wvihsxd{Yulqlm{ovepvbe^j]d\xqrpcrehmqoo^votyjm}{wosceiqhrvcnej}otjioprwdf^ot{pnmjqlpmkixqxkjhmitgk^vwpvm~_Wi_k[{zpofvprwzn_dzhkaqjguvmck~tnkyrsovtoslkimwtpur}i`olrjxhp_uhekms\rfhszyv}okfkdfWjakzcxznri}wkkjx}lsabqxncvqgWjcP_vfcd_nmhbtiivdpdisyqfsxxxsejjqowphxcujl}uguk^fsbhcr}slyqjjgmmfvmqo{lupfi}kilxsxiaqkqgob{ky~dSxstdkilhx|oi{shcyqzp|lemuqo`vt~m}qak{urq^mojrypziwlvrlxscivoaamvfrZqadrumwtvajgivwsqpxsbYuypjooymcfsqdvfbplhwvikscbgj^g}lhcjso\gsc^li_kappse[voklhkrhmhqlzxpiwrsylwminicyo|ut`zawiqekwsqrpr~dvls{p{ykss{hhtlcmnmhqqtn{ifqqqjlftpthsllogq_cvwm}hretfimlliq{wwf{q^\rdcTncokhdcse}ciwdnboojiwsmcqixzmok_knte}k]tiarj{pwjrko^cbmwmqnlcdd_smeilzlvgkrfguixrliiiyttyc|khriefh`_mtqs}gshocexgirl]fvounvscwzriwsdg}moqtpddraztkderzlljkq[nhrt_gi{|bpnfhin{of[iyyYsdnqmxssTddnvvvvuk~f{icmeci`kgcnhppberxmlf]r}kltetudJ[ulnqglauisoqkenibbqtmb]tymbkeljprnrhunjmnuocnp\mqkj]dz{Spikuqn]nktnz]spudk^Rxusm{V{qrofwilojofoqnhd_nwmqumgvpdimjkylbhtbpdok}|trfbpeupxgtntpjnqwnkm^mnofmhslij{qiupqZupsdrhh[n}ikmf[firgggkqolm[Yxtkg`jpoeercdyqlix\k~gmyfcojvruufdgpnjpxpqbicoibpqptlpaaqgikmxdcv|kgq_jlyxlmfpim`bvwogdkvhicqd[oo`pln`fhdyvbhupj_pklieslhllwepgdhjrntog|i}of`z\guldj}zmnmotg]fiksn}eppphysroXopysih~top~dpmmynjvzkeqpil`pfalualfomnb^mfgjasrz\jdsrlugttu{fgevwi|]ypoph[Mtnbfanfxtgb[{hdgotu`hfza\hjo|xqgv{ier\ojwvpgtsywsjikgarvuuujv`owkiqvt|n^hhdewrrmgikbulnhkhowljgnfax|nogv~vr|mqptlj\hefuzlbdUplr]fwtwrxmgjusgrhipRostispghkfphbeigtwqniuqzzhgjvr_i~nspir__geucxpledtrtdsqfjjttnygrer_v{xn}[lrnd\iasroniowjhfmj`vmmy~fkgkkj}aqiobhljsgnvxolTwxn^drgqbmsmctnmozpnkvodt[uNszgnsnkwtfwafw[`uYrsqommro|e]v}hdlkfcinorwtjogieocraj`qetlowxqgii}rundyorysbgfhmdeuczque}csuhwgh}xqpdr~uh_ludrtinan}uliafqhknla~]|nrukulaix~kwtloxfimnvvvnhrjcltquuoneumkjkuxdooxayqddtdz_ftlqllmnxgnspjksuutdjm}xwyerhpsjfgyo~st`tjjjtmhyzh|p`rwmhk`nqbwgkz~ortpqrqhuspsjekgn]ftupr|npmhglhpsciticmrkgngbfqnmdypwnplqebnmmfiyonkemmultkrqb{qsqhh`jqvherrqrhvtg|fZqpwoxkykqzbfopqd~slog]aip[sSqzqalms{mphtoqfswlmg~pTufhzrgtopyddnhefwegrageytqyokzkgktxsdnphpmgzj{yrr]oq`p^gxowntulmsjtgivvqo|ohuo{oRusufnrofgfourdpuiuprw{nwqnl}unieosfrtdhdpwvcgznqlumup\nh^ssovdrhujwzxhsn|kiiivhosgrjkk\]gvqmhfvmsjn]Y`onqqysz]m_d_hfqliabgjsprvkjerc|wtlptfplq^ccsujmename]cfekojihd{{|`|m~kmekojhjti[}xuvr{vrklaklyihmbn_kurv}n{jukrhtnqctg|oyrgkmrr}kynsq}irghpiefr{Yqxsvf_einr~hppdvp}_xl_doii{to{onsipsjoo}ep_hztsl{sYnhoxvf|noYezudpfgoohixatvojbutrslra|jwgn[~dijgl~jkwrs~ysjyfkP{lups\hdjokfopmlddsvmfcjskuvtppjll\nqbvnljonokfezeojqerrQqecfrenjpdsRkpsvemgtciYzocbwqlaozrnys~pqVrgi_h}`{zsfjvtyzpzpceg_oijrh{`v}x{hrowl_aZemo|qiq|}mcfdbZqc|lysbqki_phvhm~j`uiknxinp{tcxlpm}oapubldlvkfwdqpzwq`scncgrhyqrodrtkivw}iqokpkxji~tmkyxlwpsojduwnkillWzxyk^q|h}|mkgffukur{mebeptxyumh`qrwlrokw|hlhm|swdsdooxkjkyhqrjtoZqsggkikqu\pmhrno\otcg`txht{rnlpgnfvlkspoehpvq{pmpg^i`nw}i]yhksZwfrmxte_sgduov`rg_gfq`wl^jwl\{kusmislmivjrwhjjof`nacoks~nykwboornoYjtgcmpgfc{pedherijcejjn^k\s[lpjsYotqtycmr]bxjoiupillttrornqlixm_u]pc[hrxqnhhetUghmznqjn^nkjb^upzuierjkacpnik|pk~hork~xktsbluqqvzswuwmo^hhp}qimuqrlcu`spukmnnpoe`Wxopgxrzntezi{vmliueshjzparwmuynmel{pgv}ct|ha{myiwmnbzeqh|ehmdoo\nkl[ykddefkom^d|ke]dqy}mlmqp`fmqykuomnqviplbo}iio\uxe{hWd_sfjreoftkqqnf}mxmmnvlrg{qqqnxasdujc|``vxmuoenb{ogjp_idYvxp]djgvnqj|fe_ehlwkx{obfWeoef_|mpuivlsdppreat}xrqa|fvphlxpk~{qe`mmou|eatlYq_lp[mv_sqio]rgtxpkdxin_zhYyzr|v\gyj^rbvwho|}jinrmaataqh`uikpwzinrjpvvjsl~rjvpcyt_nmkzwmf|w~qmyjptttsik{lhrco}mymeksfnnsvjj_xcj{x~tjvkakowybqv\rnjwmlls`kqkrqpufvlzc^k_vvqosrejlsrcnmpivakukvnqof~^oowqsc^lrqmwQgnmnjdh{lh{ww`yh|uovmkupxhlhkonmwnrvjjdob{f{fh~wchtnykpohtquuhnt~mihbrzfwkhjugvjqwdorn]epqmnpqqw{fu~tumkmnqyfxv\g]~oN~oohmrsbn\kufajhwkms`pcbb|velsurlslgwmprikfgvpmntzmneX_ytquivoo]ZqWi^lqoi}{}hn[i_rotlgpnWotpdlop{h}h{j{mhur_yentxjwnywn^nfof[roop{slmnp`kntk|yzh{kvkoipbnq\eslvfqkhnsink|liygcuwe}ojrg`ojqofvigxuwk{qsscqsp]rubtgvcojjptmmlnpkfjlovf{]bjahpm|ufrichp`vdpn|ybvaggragi{lgxohxvkkaznoznslpovffsrgijtjm_n|jmmevvcr^i`puveovnutoojonuokjfxokfroff{vulgsvjjlfurrp^_sdiufroqplelhkvbi_foh|n~vvneinsluuion|tdYvsvtr`{fsgsiuqtboqgtdalwxmydgwpbdisgjrjh|g{j[krnkmrn\jjdRtirkcrtgncoudm_b~koo`alqfqvbwknntemk`quioosuo~pw[wnlu\wuyaxcphczrnowg{dpjlno}lvekalkewk{ws_hjdnejvgfrrncrbbilzvobuh_h`luyVknriljqzxoqwfxqg`mqmwnsmtqlms{drhqpknjsiro{znuuqjglrhyiqppeolmbiummrty}mmn}rliqlrdenmqnevwk}vhqhgwxobzfloxntpl|uoskp}nlotoqi_dgmrrjmlju|ssw|gjnn{vxe{g_eelmumoqosvoqqllsqpxnyrujuqlowyn}pukhwlor}jbkqxqn_jqmqppnvmnusnhhxfoybtil\|umkdjb|jfwbitjnzu}m`fozmpuqw{}][x`rr~\glpgplklsVd|rauoutafmavxwndgn_jXlkgsSjggqpmpasYlphqfjXfok\tliokis_hcsollkteirwpihubtptqsqiprunohdelh}isjgvoxwnvo`eelazfhwnnjswcoksiw`xgqrbjcpfhfjyqdfemhgfqabrj`m\uj~nyvfphq`Yrapc|vqkmiwpoiook{`lolmgf||nwkpbifomaaipeqk|frgr~\hqt`vlesooireldwnrhpmosheb}wjfnhsl}~ehnuyxokyg_snjoevwvfijegfiiiii[lvfxq_mu]s}spleottgledtgjmxufpzczsnsmnfwoqorvqpetesZ\lerX{qaxeoveojqmzk}iwmespsiex[uaj[iqns{|i~qeto}zmbbm{nqm_jjsvlzplyduywnudjwmkjqo`prjlcvynu~erq{er`vbgndpycmayjiqttsihp{i[^b~l}epoqfq^wjhyk}romt[bpqknosnrunsfojtigihpgqrjigpqfggtxmupiy[lspkl|w{kror\ifjowmombtoikoxnZfmi\it_epjgmzppjtnuin`~njirym`jdbvuhknueburtqZwuo~ogkmkj`nxpTkohjll{o~g|kpqeTegogvskjrluqcx`hos[d\noqavtuuehqkkgwrnueyz|gghzxctfo{y]kfhtkytygkf[bhj_ivnhhceeffmfYp{o_vjpqq_prlki}[{iclmzoi^`z~md~oefqwtyb_ehp{Y`pryyhhhslknodhwwo~|hz}e^ockzrzruuuqlgg]egivswpwua\irdpkQj|Suukjojrmiolildqjjr{dcvpkgtmyfjUrru{gugwknm`nnixt[xuryupy`jisjamxs[yslmtkrvppjpounssczmmlqirY_jihxjzm^UqcaYclxlpoadndwtefqzovzkjqprpo{goggemsjuctg{llmasux|g~misel]{hnwgcayfsllXytfn|x_lpqekddfpskonbfvnzczjoohtfprivjhkcuceeonzq{erm{gpylq|jxsyl}ijjwsipiqtzvhp{lltofdilenusunxe`qidsr{kibumqlont{qghaiqsbbfhxmellr~Vi`i~ifeYpqWZcmsppsj\mkml_tcaewowvahjfky[podYrb`{pkjoqrhofl^pira_`tlwkiy[cjmfgnppxcppnjpfqmok\q}gc[pk`_{thrblcbqn^o{|towarhcnnvk_mnsscaezoivv|`l^x}qrgsrduzhgfhiioc^mlo|uxpinsdZlziqewlfsfv`yjmmbetlruftapucafpvpjpzondlspniricpyfi}vyfmkpv`kopywiunlh[n~o^lrlxqd]`xpnsvhom{xhneotauwjn]prljwirlws]lhp`cojifwg^`lwqrx`yq_wajymqik|jfjqskfddujimtqe`rqmun|xmcn\`sdizsy\hwtxltmq`mgxoh_jmicucjxlpspqwsffmgljtbq`scogtbbypp~|^ouljqxkqq}ttkwpvudj}lm}o]apvfyvmkapldhnnaioqeskcmmnqeekkdpiwrehigxuhqowqpvlojskqiqmjekobdfsc}nkYtvovrtlqrpj`sjmmvpqlnmmnnrqfirpnoki{sotenejglioxnkievoow{ew|grhrhsqrdlkkkmijgziiypoiffb}qnmvzjpktglmcskormqformwrjlis~ktjdmvpfon]sqZtrbqmimcrgmZvfswutlk}nsjpvwoy`voisvhqprn{zumqffk`{peunk^bf|jz`tpk}myloinyxogjrhnZhmqjqlnfspiehrwdsvwqqvrpllramjkllfvmkfddmhhdhwti{]eomknlqykddur{ctibgxhjomsgtut~pcos}h{gprwsfomgifuyrnhqpywfllgq|tuxnmlnfmsmq[evqa`sWu_ksjnndmputdjjxrrgj|whnmktuq}poxy|wlcpinfuxqouhvdgniqwqft^nwsmmeikussektmlztneokfcomrjnomtbl}rrwnafslrqi|lwzc|jpnxrkldus}hngvZkvstsrmujhlofmvoqqthtqpuYpttg{etp_tr||boottie{[_uyq{ikzkopkchzpmlkqdd|yonXsuiXutr^ner~`dafiuuqdottsxdvlyieenjflde~owhzket_yntpsyqplodywlkga_u}]nkfviOpxh{|vbinhVrgbncvxumawtyqgfeclijgnfziwodhsgclcqn|rm_icvrmb|tt^ssjpjiql{c`rlligmlerxndw}lo{pfhqioihk{rudcqzqlsjbrhfuzhqhwybmumfkswnhvZotzwu``oscyuseg}hrkot`{lqhtmnznyoxrpkpbYnhququfwjoyqk~l{rpsrdjjhtfnrv{kkjpoypfzjn|ptesoroTu_dr`mmlvepwvibstkrfmicu{dkrm`noyw~ewiqonnnnaeubtett`wmgu{zqqsc}umqYzculwlc{qysx{oYqqnyu[cspowbro_m_fcpvhnnmt_quxntbk_{w}lpxv_k{mfdqrrvktruje{kvvtknlk`pg~j{rnmkjloym^qqvjctf~wxtqra`Wlynkfwel]iyoulms`gr`x`qngulcZspmrYbpwv^miblaztfmtlqcs_oiego}xTuVa{gZsoldlpoqrvksttbscs}l|jkchq\mtfj]vckvr~slx]ngdjlbSeqs`sso{xZeddngutxowyt`{sfsyqsklbfysvnrqfwoljslvp`ge{nplsuZbkvpq}lbsbpenxeeoovoqkrfscy~][t[hjl_dmszmoudlr^khvuheauysp}\odk[ma{hv{gslltxugwpe`b}pltgqovtgmpldssrqmljthxnortepatzuobfvlq\x~lrtmyo}mj_}qjuugtopuhuijl~jlkwvhctdsqhalgoknf}p|xbvtlfxkehfbxtjrvmej|eteyutjptqqhqtjsgpdpsfnxlcmzl_kool|vc|pi}Zzdf|ebeyjk~jkxzndyebifo{sensxq{qpxumd]rmfpfwjgt[yho^j`i[}xloipnnrj\vdejn|s]ogqmchqmiu{w_dmtvh[aXex\jtp}bskZizxbwmivpv_}klmyvVoooor{hrnglrmj`uxbwsp\fjv[hwlrj_smplqvoimsjvs}irlmqmxvmzxethvvmipppipvpqkp|n^rukiwykdwhu\fvnmugknqhmgr]qrohi|qYrndzopowy~rlz}tkjooqtsrnwkflafqkdlnikce{pznutwyqxcigingstodboogqnuk`o~yuvlmvujmjswclgme}_{wjmfzZuaisygmz{hcjgbleq|jr{rcmnkl{bsR_jnd|~evihijkbchrnwbl|{_nqukwwkgmxf]giaxgw`qeija{oepY~Yks``\rja|mq_yrwy[rxgdt^xurvklswdboynqnwmxdep}fni}cokoku\Xqm^mks\ohhngit{hlngj|u~qensrlo^n_ozekY{{\j\ffqcyvgqv|aow}gkswpp|eytgkvw~k[e{_yzs{_ummrv}zjmpd|jf|exgg|wvkrwynqzm^dsy[epnxzftxiomsigylqdooofwmunollqry}we|mlocztjnjxo|jxju{ppq|n}zntonal[o}fvsvnqi}dYjixtqiyjmyxkmkqmlpq`uZz{skoo{fq}[eakZwsowhtbmwsk}fotix{sv~pqtxsvnenjsatppzjhrqbmmcoqjN{eve\munm\cZao]igdqnk}etvtXUbmtdZs\nnrnkmqsjhkl{\eoflmykbvkyieu{nhb||jcvdt`lflvrhgrrolj}smqqt_bbcf]mY}nm~oqhu^`ipk|rtlfzlvsuplpYiqnnXbjkrirm~me`dpfnycknqwjsrlg{kw{antmwyyixtvfgjupkctiqoarmsnf]pvuvlg_~fhl`cpowkzs{whafunokocmstahvt`jst|n_hiz}|porkoelinnlrbg]eljdt{Xfbnsjq~bbspiywvvqV|orrszkutpdvjbrv]ekt~oapdxsbnvj{xspphxao`xd|{wujy`ihqxcpwqkloy{qgboy]Zjyssrps`qz\x}ahzpgnqnX~jvdnatrsmk|uuyuvnfo`g[ekgipzmjzoficjymgwwlprkrikxyiijlvbdu`mjtisnx_jydyyto{wtkqpzoipllmlllbhck`nttvklgvyprvokeshezZns}hcdhwmlpmapxnungwqjfd]rh_nppynzchifcnrsrwWepr_xnohqrddqovdi_{iamkghmcgotjj{gqjdnuensrehksrmrjlnjfrxgv|mshllnojdmsryvtrfprtjofz_rnyjuwjfsxtwzom{ki^cvrxtg^~sgrrxlrrikbrpVqnqbei~yh]ahntmn{u]oxVi_lgkwtglmpkhlgxr~P^iiume`s`\ljm`eh[tgnjfZfqb]`k|nnwva`qivfybz`qo`jzrgfmldgglofdhd_tompelmz|wkdval{hdiupbebjhfmc}wooh{qudnqkjUpqehigiwvnoje{o{kqsl`j}dgzmsgif]neflnylni}{t||lomaftilzp}w~ohfzzipwhykvihmprnkmnchrudsxbgaso~gtkzs`cwd^hmbvuuooygwo_tkkspewwlgekyesr\x}npgstyvt{ihmoliojtlkffzkjbadwrywlkrg{k~uthcuprlc]_pnk{du~{vnkayqqduolvq`liweaxmluwjiwjkiuf`w_fuws\orrYtivka{y|hwwysym^fhblt]ycZxrp{l_nd_tnibipbtxtzjpqpkwg\ou{eydsag_ekht\qrvilXdx^vnqcjlwnxenl\a_khpexil^q|p}^s\trspnoieqdnkqgzlpfnmepcxmovtxmxngl{pmgxol_]kc`hjtehbuqjeyrPbpnnfjpvcw[ap}}mzsjs|q_ilrvfhngnjgX`rqYonkpjtnmvpnpgr}ftj}spbb[Zhqhidx]gbxwhjpagxm\^^svt{a|[spuiqjmnXrfi}mcgxnfag~n}RZyiexbjqp^qvnvZroosybuj^j{n[jvWupwrTvuunyloprctcmpiqfkwp\fgy\g`vkudYijv}yy~pjjtlrppm{toXem~Xnps}fopsmzo|{noh^n|}bkk~ljpyyqhgmludosta|wwn{f_Wzl[u_z]m`Neruj``Tk`lwppmhoissmvlnriwvvn|ib{qKjuwsoo]krf`Z|{cffr]\[sxhj[p~hhyZLeejfcstsbtaWcvnluhlu}sl^Fjq|_p~y`lVraT}|le_}\~oag{vajgV~\^jj|gkbsxnswslaumfkzhmys_iwaie^jlXgxqggqyiwfxjrtvnqiiryetvqYhbrnurDlrzruZhZteef]xjixg`vlbdvklgsacnghetqpuzetk`ldux^ngZpxeqp\ip{yzk\hvvngqbvo{{wv|dgzny~|pgritjn{y^wn{zkqlinXkc~u}p{xxwhs\jwnhioapfftdb|bpisinxpbZwZzvm^q[bgy|`rdteZik]rjjcvr|oneftecxlad~TvU|yowrfvkmznadvcgzd_vtrvjxny~}rznx|}}pms_{jsr{g{m{lmrdk`tsdwpfp{yfo{iexm_mhe[ypscwfmilpwijm}ovq|w{hyjy{v~peqfbg]q{vikm`yaZvqqizmpcctnltmnmuscomgtmgsZxvp[rid}ocenunZsomps{feu|eportfbcxhuj\fv_kqmljvydeg_mZrPZmrdhcpzzVX{q_fqv_ktnp~fplx`qcomt~iWpyomy}oasxtfjahmyopf{auurpscae^lmqjn{lfvspwjdouzjri~u{gpsnozqpuxeipqsr{kmlgf\Wkhwkfhonbqxatifzipyepr]lXmtlf\g`lodr`qxz]k^atqmu|siwurddwe~nq[dsrz^qnVhc|rnneu~|ffhyilin^vodwoWs~tthmmxlrkkZ~qk~l}pgc{lnfdrhXus\isbcio~tn\m]szjhmWhcfjltqqmgkgsuwqyvudktbksbbhzx{^yh|yg~hwpktjj^aiaflt_|ggnhgeqa~j_diXfnfr|teqhf|wlhdjsQnbw^xohfypegymki~[i]_lofxci|m}sdmves^wxnhvsa\\c^RkM[_ejdg|ghuqcsz\^axXu~misnkjoZlyqhiu^~lxpexwNoiusxtzhcybz`jvgn~qWcqma_tiw_pom_lrw{d\d^mo\ltfwkon`nYwsdtues`vsk}n{oglemq}xx{pjbghkd]Rrkqnu^bbobsfkbs`yyxa[mmiq}rxfirixhveblmh}lQclisvdUs`lqlc`p`qhtesoio{{fXomjbgecqylsmrgfhhaqjjsrmhl~my}skm[jcgjkrfystouomxpb^amegww~skrfj~nuqhngdqlgneVpkwy`^|dfmjwrtv}{dasfsruxwnYxbiedkal]ap^ejfjhngcm`}il~rk{hKhlaa}jnnxytwvfvXx}z`ldjwjQv{^^mkznyfpqYulgp~iaqy~gnpjezfpvmfe]eyxRW^syhnezxOhau{ohzc]}uqmozagdpnphcd|kzzhx{uw}VbTn|pkngpyobgoZodqfsqYodh^mursn|oo{^`ldo^~bpip_j[otb|p\xvrgsi`qcgUyjyohTVb|ho[~qoqeeldW\qlo]oxuvfQXqaekVlvwe]qgfO]bdVrrUuno]qqmgodWggekewit]mhcletlkd~epaqWegmo}r]veshkil^hwrckjieqWKjfjq_jjq{xsnec~Xh|_hu}oup|mk|pphxZnaulmjfWurr|}trkaow{te^sjloscyjR|q[ustl~guswXtoxrbcpZ_mep[gok}wfbm|ne]bWk}~o\gfkltrrbptefrqUiqlmgznd~ulkprpnveahcqwbnqs~m^tvz|cxaxpvufymg}rujy`jxqiyhgzcguxjhjclUx~bhazo~q|xj|~frwq}hox]rxoymb|b[exjwmra}wgwehhiljmpwl}joialnq_sk`qk_|mgXinfc]ygtuabqnoljyiofhrzgny`ffkrseflhv\iz{q]dwneso{_zckh}|spsvt]s_nicpblpv_f`pjrzrlvxtnkja|y}jzq[xdyvqk|totus~dOR{ignrqi}b^hgrgbo}tulnswffqZyzm]gdnuzlql|_zhzriWuqw~pijqm~^nuvssgp_zff]hZwmklb}\dkwppnc|sbihuip~qbuplsv_cmvWxmsytndwqocRfh[oyrbz{rdjekkxqgripqyWngf`\hleY~b_nirnmo~tf}]oslygsagm_sibdbkldlrbl{vtcubv^mshoock|hrrbgviyj]bj}qdjvu}ise|}hmeqxpioufpbhYke\jjiorlohodjmd[kaeaqsppoW~Ul{nwvrvgjrpf~q}xhnrnktr[zlbq^pew]f}\^etburhnoyorty`xuhi{ysgp{hztctguqrqia^dklu{t{l}ykbsnesd}je]pbuo|rilovw{jnurn~Ufmtlb\fyhgzqui^klprqyouubxl~vtdnkspvgli[fmnlrfep~jpww`kz~hXms|nwpzvhjvwo}`iwtnz`seazdogcjqquoiklsabnoluthvi~rsxenrtpiogi]e{nwqnatcfniq}pdlwhwylyq^pgwkbdpjvosu|ui}gwqsfotfq\vwmpcnahq{swgnogwnpimlm`l^k\ksdqlwsondoo{zhucwhxigr\ygnhtnhlmnto|}ogqkkavorlnsmsxofv|iijpdsgw|os~loofvppjjabsjiZp_gme}v}kc^rek{l^csV|`wncrkexhqrryjzjnwj`p}`mqo\mhfmkWmnsvVYbdgcmi}}m_{{uetvc_iauvt{r`dzi[nrdte_titracXljtkt[}swfi]ndhvrmZwn^oyl^hyenWn`tjvqdoorhqenzSkj~^vwoovigPcjbjpyvndhexcf]_hppv]|TZuvj_csg]kxgpioqdZlofdg}vi[t[`emewsdgizjq{gx_woi{qhgxkqa_jusZm^fmcnkufvwdj[ooachruykkXmiszep|evitidpygv{cm[rbc}qXZfggnwtgp\bmw^\qsphqy`euSy>[iqokjZinmpeggehn_sf{}u\s~fqyYjdadrr``Xqfr[{t|uk_lkmfkWiv[ap{vkjny}gpdowvwyw_mnyor^c`fxkxspjXrzlnittght{feel}qknmpxQqweco]{pxSx~orzUxThyftddb}^faU\txckfquagdjtwr}omklslxYvm\}^bno]yjqbv|vanpjb]dwf`chkh\jdwzexkrgwvikqgjk{semvvbflsq}sqrvq|zdo[onwpo]njxdpmbidjmz|^s~joobcruaimZsflt]|r^rl|]]m{]iiv~mry}owtuobezq_uc|vlgqw\no^a\oYvY~{k~mkl`saUjq|}Z__PWokrlln|{|Und^U|cqke[pxmw{ge|Yryeg{gnu{rpje^ggpUso|v_biggystqfr]sl}Znlk[sk]Qanlqkwebrl[iusr{^lkv`b_W|hpdz]{{aXaeuGov|hYzYfxke|ewwpmo~vn|liwsgmm}kwvy}|{sjdrvuhlgsq~amtn|V~^lnp[ujmwWoey|ks{pnrg|lfkYkmfd^x{eqvpjk|tni\nt^l|krkfapmn`l|Y_jpqdqyprjl}wop^bnuclb}jjaQnqrvgnytujk`djzbaostvap{}z|lvwsr]vilkl^}hgdlivqfwlq~sfptfqsmWhtgmUgxm}biwf\oxkk|p]urZba[lnwhyiquzis|put``gsgoevon~ktipalcze`vhqv_qw]ztqmuhvx]pvhbeawqtzgqhipwvptTcf|opojmztadjw^ls[wcsvew~kz]haz^|{rpsdljeTrkkjjoov`m|vhfvxp{jfnqcog\jj_yskuq_nXtrkvfttgln|jgklsWhtrhuoutifdhvkfcdmmnac{wtvnmikjihyzq{ozwwfxr}vmrQjczfn|qds^pcrhutarjjkpvddeyqhyfmeukfauuoqomvqspprr_srupmx`tcuiuysftjnwolm{kxyzzrqlqopihogt|ibmukqqonSnyumpygux[qf}xsV[nnmja[s[hqthon`ipNrmgopsbxiiv}nah`oios}iie`gkl^fsh_iwyjmxekmqg{prnqtk{s_wvtv{Swwwpsst^mktorbjjontlt]goxkXopkkYuvU[bz`lrmdzoghfeem_qPr^ptuXquxnoh|d{z^t^bcl^sfaqhjgyow|Z~cpU[eZsyiphxl[nai|pgrf{YYslvbmierk[qqmt]ib`huY~hglWvhgvsh^ysuigxf_Xefatnlfns|Tfropauyo`aqv|Tx]qk_dotjsi|iuQrfumznqeltoWhbjWlhnlhoZ[nu{yz^r[ohvs}bjhlsw\mhfa^ptontin~l|pdft^k~V^xSewissba^xwo`_sbZoof\ec\fplakmoi}gbwidW~mumem`|ml}hbb|_engy[qtxo^uPV}\Zhy}lcnsj`OlckW_lfmgynfygnqjbsqiooygjc~oav]tlpjpxmYyzx\eus`t_a{|~fWj[ey{X_r_dxzhfnjoett}at]t^pmimixoxtpb`sfa|hmnykywrmjjamocrndmmfuo[{lmloygugkaigkamhZn^xwdeldae_~dwPislltcnx~y~`^[ux~Yv{snk|fed\TlsxjmluWurxXluhlod~w]`gr[p^c`vuq]joeX]tmifqqnn{ajnoynxqikmhzmfn|kbkvnGtyoixvpoakgsoqrjj|`falhwho`iprnmuedWsi`efkyX}suvjuor^`]db{_btjcnnuh~uuZy{bbrq\skpcrsyjp[mdrmkimlliao|i~Zbxihlbawqkrjhgaqsshnyqhxl~fWgm}vpsjqkixpqntznrbmrj{lr~{xmuov{gmpenrej{pbqwz`q`qjiu]|`oktvgaepl^pxZnzYhncqzglla[es]kcfg_otzo|]Ytkk^|rqu[Ul\{hvnnixZlqffogtVwuj{qo|\wzwhbiZgkqqbpfjsjHlfrqiihyaitbqnpdamnvmhkyygmmusutgyq^okv}dhzakochd]Z`^zukbyv}cxczTtwdad^um}y\rYsj~xki|enyY`yvhxalehojwSZunobprsy{lyyrp_i}^tqbwd{kvw[p\rgllf_Wt[Zcw}g_[xnqpWxpxr~yhkzd_c{okouwhf{f~j~`bYkcv\u|\cg}vdarxk~wrg^njktbbehj[\jwji|ss]v[lSzimYfpsc}mquwxko]i]iejm^nsipgx_vVdXcdnfigq{m`geasrVmthlpYbop_vs]eqmjsacgUzZf|pym{e[n\bRwm{VkacfzpazgdgbivWjkrsxwljpn`omvllB{rkvZshp~da}a`Lns{gv[ovwtf^fo\Yu}kt_qxgcwu|htgtwz|kn|ugp`y\pVkjks|kxoge`qf`tilqfZxywV`]ojjqc|]qptwdqidOnor]apzz]pib}oiibdpghakqyq^ajjjhnfr]jamd~_mxoqq}diXZqgknqnosv~nrtscph|pkrkbupWgqmqlrhr`|ottpponsjncffpdZqaW}gydzxthTWyVfixucp{hmpiofkv_vsomsrtycryl}n{{jot[]ulmqkcYiymijvgnuzghoutprp`hedm^dp}dpYlefpaiupw~dustvc|ito~a]z\noz[`jndi]Ycqoipmqvg[ZfugujmipkjXkdhuqpwdqgrZ|Zpas_Zx{dd_gcm^q{o`olrkiihu\}qjexpwq]l}wlz{kRkfc~fpb`}an|iw|rtljceo]l`WxolkpvpdpYp_Yn_^ejce`lnXwrrwtfefQjU}xwg\}bdrmfY~leu|yssfmz\v^zxmp]sotlk~zzfnvwwiskr~suq^Zvpczl{fukk{ix_hjXqhttetbvfoco]utnqrhz`qrinVjwro`iYlmlw{bgykQxtjeuxngse|inowxwgdooqnxm^eu}`aqqvypfqhrat^wsxmvebydiizuBj{vmkgl\~ro}rzxynwvnsrjqu{kqoecf|niwfgnoovmxYqVhguR|zlubqcswqppzpeg|nmihtink]kksb|Yg_fchovnf{htwtuolosnugvnrhdktkYs[u|mhkqdbnploqxa`\jjnobz^cepk[jvbziseoqeRwihlr^glp|[halZp^rmz{sxiaS_mapvi]kui~nuklisjz^yodegwufecohinqhsqXrw]nhqfxulfjtq}qvgx{bippjlljrfvlgfuzoytll`sur]h^rcdfpcoqgyeuiepiRqk}wwc_rdrwgpg^ptlqnthib`hlbhnseryn\tdslxmxugsmhtdsv}v{b^pxsmksjeniibr]o^nj~}sjqhZffwsl[y{nyy{mtt^|scw{dvs\ots{hkmnubqrohkxhhitt`elhikrsii_|}zs|teaghjxuducfpbVldltl`\vltnlvmrvkZmcpwfvbzgqcl[chsg~upbqiefonse^fdr|XghnvpkseuubvqsfXbscejiprxowumgm`qx{rjutQujpsu}m}ohlZxpSfloktbore`s_^kmujwsvn\behmrfxoid{mqjnslej[ht|vjm~o_q~hplzgygeivkpm|_mvlta\z~jfgoZWv`aVUfmbkekmhrjljU]u\~f\fqljWnsxr}uJXcfkwlnto~{xjeh}o}yk~oydVEgfaoWuIru^pt`lgnmcJitip|uqt|aziurszsu`xntikbUKe`tsvsodfFbqjdvghoij_vz`n|YUjPfbkvo^oo`qdd^cwwpOkrxmctbax}aRclwya~nkk^_o^lokwpfsTklhUvd_issn~acny`gbzewcZq}Zoc|zeqpZthh\cvhxtl|pmonbqi|fpgtonvodtqj~sq}qi\ohssushqh_trfyur{vwdizjxNeyo}}ne_xy\kdz\tkTtkfmSo{hw[Zx~Udyll_firkkt]hkxsp~^vqrn|canjixghjhqpaikabx`kcen_d]fYoh_gbloxq^sdu^m`wqssnchkhzc}^thrqufaw]nrjmsyuiap`fhn}kyYu\_]dpiXwuo}xxkUjybs[Xtjm~Mrr~ggoahpy]olfsolcwqocnVxyylg|]ybnzfrtpw_ya^fhoqivvwfkhqkdmcp~ax~lpt{mzXhsrwlsqs`accfah}ef^ctgVmnXdbfql^u|lvle}mthumcrZ~ppjyht`nyr~vmqxz^sfXgmknk^|enq_jtsplendjhqqwqYp]iq~wxxygfbviarjlRZkjqyszodt{oc^rqn`qeq|ejplq]rw_o\vm[k]fpuk^iuuZyc~iucpbvdlmyueowknk^fiZ`y`cbzj}b]}bZjmtdssq^]_g{wta`qthmmze`^uw}w@ctpoeqw|jmvmg~TilZnnghhusa`{fuys_jjoul}m{tkdqqZg_cqvqycmUvWor}|hiprusikmf{rzevzsniqev|oiiif]{Y_uvhosXlyke^dNh{pvWrikmhmWiouebeex`]\fz`xoo}jllkwj_kdhualq`vbs^}vznpskcN`kbuelgt~yYr}fm}wpqkwq{tjygtkfphbmi}dXsamqdqhssmjssic}jdmssfhncihkbuwp]ekg~tcopdoSZxuenptjueqjafwx``cwohtox^ezdl|^bqpOpjYx`xcwuzukvbjlafreZ]k~_br|lO~wulWouqp[scxTmgf{y~fqzi\Qz`q|tis_mkfiztq{wtneyswhzv~f|zwukdktvmmrs_zziNvprtvsXo~ovfhgkgxrsdxwmp~jpvruubrqlkq{sqfbrchbotqxkmsg}{h`rkvf\hjvi}ay~v~wqw{khyrhtrq{bgmklmjarfqjlsqWol]|j`mypnxpseccorckqpr\ljnbnq^fk`cbmcmtr[Xtaiojsruihhmodckhr{bnufkmm{izqqySav^zjhbvbtjoh^{uroh~gfhufs_cqlgdtq[v\mo[kq`n_coavxwvo]i{nam|t]ofvlssp\vot`yomfhij`{kidnrnmfZ|yezs\ouXdxkct^loion`juwv^nlzkdt_|Yp[wjelvfk[bpwawazZhs[|j_fa}n}klbVnmkbr`jXfwiznll|e`c{{u}hlktukmjjyjbyvZcoglhcywtdlxq|cebuspsbpvi_njkrrrv{gr^ivcwywsft}m~rZgom^o}hzZr|xumzaomjrbwou_lkt\e{q~immyttyoqpdght{mmqyfywvnr|s|{sztnqis~qillpyzvaqkftzcy`ruuqww}|}l^mv}|abgwtn~]|sulwvkro||jyyWlvddzs~j\iixelusbonxhalmxruwU{|un]]aq~Wplhvp}ftlt|_lemansohswfnmisplnnkj`{yemcs`hzvrefz{uo|rjrct[rfakvqegymvl~`|~vjsfd_aoqrrzwzifaylqhqmzpffsfbtxpr\\lpttojj`go{}cbhpp}yh]pb}lk|jYuqfvh|pql|hjxvxrt{otjarprnrdwhuu\ppmiic_wzuYikdcwmvjhinstZn{{zuclnrj|lrhxqn}|^]qusolo|zsangeti^viwzpeuritupxf^yri\ynaOXjWshgejxspYTu`~rkpi[xqfykk[riznshfstpacdn|gqjwQ`jm\ub_skompxbo|hilw~ger}frtPyyky}yo@sxo`lejhyss|n[zlgcdc|{~oZeb|hyTpujsr]lp|zrgXrg`sSdpi_krfwm]hoOlt_htgegoqm|mltnt`}hQoldyh{|X|zedXy|jYi}Sblpltqsea_lYoZ|mp{gF}aVenpujkoklw[`[|oboea}EnoazjqTrbp\t|xhg}szxpzL{sUrfvxuyie]Xr_eOjsaruojYuumufmnspnd}mspzmmelrqujppuohePmclllkguegujiknod`muuxxnUt~worrihri]]bpeh`nnzc_cjdhsywZxin{ixi}rmtic|_{ijymjcnjnmvumxfkldvijq}|qnyfukvmpyge}nsgrrh|mgpjtpsxqehessc`hwcwSqtmvmqijk~`kqvzi~tbtakrzdrkwj`yywmjkorvkmefZk\syyd`dnqkhrpzot_tkhknkk}zigpkfcernfsasVukndni]ixiyudipilkelfs\oscqtugpWs|ojoerowxVnqppufh~mypijsqyl\xiomtmxgbjcklfb^t[w]vs`\yt_pngp{mptgz}roiluorj]qjf^~dlpdftjqjzptw`k~u^kulzwlefeU_ooutpp`ttf]cmyib]t|das|bi^jpi`aptjsgW}mccsysw|vstYsvo\lordbeth[fmnbzYo^zeueihpzenXlk`Y^i{kj`sa~\qyiiefwdhkzvt\eYggxseusPejkpglqk~l|jl{~i~qcgebtnao|dbi{`xUuNzacrafbeqgr\_Uhamelojg_ojaarlo{wxt]gZwpmjxzkfzvnV|s|_tuoP~~vwewyUoscbdjpsrt}dhaxhdk{uuqukmdzteprorqybgpfipiatmplu~dnzUscvvew|f}rjmhlosdt\pngv_hhb}ljf|q[kh^~eteXu|vqaotxzhkeZijgpkfw^qgzoslfvhslh|jvk}nkm[cri[jal`YcmscjtfZpi|hjliwvWcdjgviney~lrbjpmcZn`iurjeqpnorffzzSukjjv~]|oq`ulusygqoxj~YjWhwjlvv||rbs|kk{jwrsinrcnrqel|os_zjjrhyl~c|uju_npkvzkbmke_ggmtcxn|^Ynmxyfrjgqlsbmkmk[quhjyfuhp~uh]~dxdxgssact_teqfuwmivmudgbYfota`qXnkg{ohk}~fxe]jnvhdsfvnc}ynowy\pr}ft~bPp]rpwtrnu|}jpz\psslewpn`p`yyuqqeithkuthyjxrij`ftl_e|[hgjxaepxgjqxwjyjlpsydgnrizz`jqmr}htjkrstwwbxrsrzm|k^tzj_{}hjkvilgefkltjwvrtuel|rvrakoke[wnflfe|qgorhoqbji~wujzZtlqoph|^kh`[hxmeclpg_xiqq|rcpruhwhlzd^exsjdZjkzkduf|_f`xwupydjbw}dfjnapzwhjyrsmW}rd|rdkics^t`hxfso`Ymxraje{whwqykewtfe~wpbajbqtqyrmgcvw{bxcuimilqvqrbnuUs^atqi[kbsautdwf`jfkbqRddkmbfwq{kqhsd]nklxnsiazmepl~nv}glnpnq_odeh^vvZ_c}]nlcbe`r~tpIj~uquekcqy}j[`s`lv`xh_qv{lxukhbPmjirjsklg_faiqwmtxanelr{mxdwdg_hpWpltiiqtyrpudvWggkre`wtqswqggmp{uuifrswf|}fjcohxrenxqjzir|`l~~bswlbiio_m|kunjpibctn\\_e[wcbq|{y_Zwkrowysdlxrqvd^urj\kp{~tklkzu|]fjiic\lockktbi~idvmZ`kuprorlixris\on`ualvi{}osygoepopqjj~zt\gtpkqrhnnio{uhljghtflkmgr[s\onvhnmqmtnnrfvpizvu^chnzi[e]z]|n\jqnyVcwuWotgzyklztnYxspfnlP`cgqsz}{g`leVsayhpa~qp^cvddrlwupqwlz{\\oma~{iiwrq^h{]_Yfid^tY_z^vvyi|r~~gvjfoMEtfmp_yiNk|_||J^~|Y^mg|\nkgRp[``tc_e|lq`qlphrrlz|szsoYYlrw_tff\feecp~nivyn`]Sjnmov`r|xiphIlv^ldxwaOgZpquwu{miq`hXmw|wjtm^k^jtbhllqouxvntoli`pxYorkxwV|kg\kr^sufvpYhgnn^h[X|jr\shojWtll`gg\cs|Vkf~emxlYemkeUmi]blrqz]qt|}[azjyqxbmickwrSqhjul[\Wl}}qponn|alkZ|x}wztpglxjkUmj~Uo^wridxaiS_s_ug`rqljwb{tip[pkmm`y}igllicYyzqz\{}tcuo}ykptuhpuo`nlsqlfrusi_rxhyytolvYtf^qntjReip]][l`vwijbnoocgrncqdxxzxZiqspkjeln_`kilxijbjk]hdglllNewnrc^x_{^Yl{{e^qpyfwmlb^zbjhc^vV\Zpyojzu{ri~p_bfu~ffWpnn^efrytgohet]_up}^d{bvrun\z^vKaXyj~nfiijsxw^mdy\ql_rsbdmlczo{Rel`c~r}wvY|dkocravnw^sjk}|W`tVhfdghwdVyhlwogZmlnmyes]affyo[rkgxir`nceqnlxwwtvduzkbatvha~mykjsukvcfmWom_sY~og~rl|{Xck|wr]{^kmclmf^jtbnYxlljfjooyn\Pv^ugp|~tqvofrfriai[{oemdkulqw`bnrzh~qlyyq`d{olg_gynmx{uonpsyrrgtljvbkesvoo_{oKnkkwnmj~zej{xvy}oqy|w}vZf_Thdgcrdq~ejrn{xxvfoXik_e|nz^ldg{sjlomaolar{lQniejTavq_wpmuqndijycv_\ojymrcfkuojdnipkhlnuYourjpfkm|mfspq}grnczhshtn{kjljvm{yz\|Yhsa^~ieenb|Tlun_swn|`flzrql|vq_epO~lk`hrqooZzevxssph^uip^Yoarlz{fmuunys]moyvlwuhmuc^nc[ikwj{ujnpbxmnreow_^dryueaewkZd{{s}cieri}g~d}Zyvvm_sctngnfsc\yrgrisasrlqncravkhissojqrwwhberztyq~njkqqiz\nmqkrorhb[pg~c`|\]]atddklrii^z|fdjnynnbhdezxlgem^vlcx}]tzo}|i^tpbxje{_ez~ltwgks^ibgabgnmsg}{evoaYabVq~fp^mohvgqzio}g}qbax]cbPw}nvykhdkc`sqyjmueowyx{sf~pux_ciW]kfc]~wq_~ndrpuvztynyYcethrtrdexqohsenufdd]powsuezq]reZkfw_ain|ljrkoi`l[palkkkfkr^s\Zy`wzm\g~hisrbrfhmrl[Amtjquxtni}^af~]wXojhetolUTgmuwroUml~[Zmrlrp|XhntbguYpa{aeu]ho[d{l_nr|mdytvbnxoqbembxp]i\_hyccyegckoso}_]ggjerm{li}^ospur|zdszYewkzdstl|g`ypomzwndq{dlv|ir\oXbw]nmarzolu|hvprv_cK}bmgvqojfXqmhujnpeguer|snljqZldHdrmng`Wpi\obi`ijki_Zex]qdpk`hkcxfovqwcgqoqo[l[vmsUdgb]tnu{^Uqfg\kzwhl^`npZ\hqoll`qdvewqb`i^mus^k_`kWsoul\bljrk{npjmimrilio\ln\zmgVwbsioyejextsq|tcZxfrllnkjsans`m\zo_~t^hxniuvRkxzqwx_YtgztxdteRizeZ]ob_upvndabaeafchbhkYrokekihxtxmgcuwannmqkdhrbry|t`f|psp[u~Xayumf}obpojdqbYurkivk[g{umnvuccgjciyjvogzvrnugvfp\f{lrnvk{compphjlpbpqdipswgqkjoslt\smhnbegozpkaekthqeqn|srhchjdlduf`{lc[eorcllrxpft`luftqvpinthslfZbt{~wphfnsa~qgtqqVtZkmcju^nl~fssbyjnw^jm}}j_f|kl`jonuhig\Yiifsyi\dfonokhj~`sgnsi[vkst}keu|fxw_o\f{bep{ghothgetjm_aUwnrcbn}ovmWqojl|Rl`p|pbgWxlivcbjw}ggnt_[Xpl[drRsjwsqp|kvzle|hynzebnqahjq_dsi{pgbxWkxgnoiz`mghilxdlhefr^ijpfYmkpphlahjr{utkjvq_tqoVWuvtelomzoifywfPc]WkuyiiWutohsW_k{n~]yozd|m}Ozbnipelitlsbjopxyzlpg]jeku~mynz|w{w_kflg}mieirxhnlfu`}bxxwjkohc``|y|om~fk~^ujqm]y^kh{sqrnmkjg|{mj_O\ojuiyiqjbscplqi~nsnwi|hz}httfgmtv~ooq|f]fssqdzvihgl[unoqoatzefQxfrfcrrctg|psnkomaZljxuesiw^vlbvf~qt{_Y{]kf\gmrtemgqkbeq^_jkkqqa_Rwkihj`kjvojsnsthlqspr|lampsmrpsbug_evxsjfdttxl\kdskv{R\r_xdYgixof^f\{vgfyix\M{kppWiKxif|bpyhxegyygq`xbtruoulv_{pw{hfuqrri]ekPq~^potpqmwepvspmvns|LE[`h}_axfnqcgrfzsgkrf`mtfitpce\qmpker\q]cblf^pz_v~]{m^`Wyf|[Syu~kqmrcihmkyefkhl[bcxoqoqbqupistzekuvf]fob\slfeft_T]qogccskoxl{qftkewbxvkj^hrtpy{shyvpli[gnnsyaevkanpyhrgnlhfXssUxaeaw{~ypinkcjrflncbiq{nZtp]]tjshd]uloYWq~|hoewWZrngsgdYv`oNZhec_~Wupdmmtl|VLu_cq}otlmnkilidwourlmepvik^ekqlqksf{MxofaS|mnclewao\pjmswVcmjyggYv_{qZxsb_Nd{`^woldzk^ko~mmzupixqQdntVn`rj`mqkngjghghafo[nkerqs_oud~hmk`cXdhgfdnpkpotrYo|`lvvvbhio`nm\~vvdzflvupz~}qpykbnrV|wqt{lupxgrjhrqelalbzwogjl~VzzXssnyoyvfyevmwojr{rkbgnzgnlvkxZbettpk}wtkk]riRsrxns[qiuxapne{|uiopeuhbm~wa~rsv~stnnuruXn|mt~\jtfpytnaX`vSxrYjv`YnblxjoprZpalrpbWr`ce_lknjpp_qeqs{~~of`erwzsrjmSubgwlG]srn^zmvuhesYufe{`pt{cuojeqo[p~kfszliavhk|pqfmytkcuor{ofUvmalabctua[{hxaar`tZmitxgz^vymuvthtzqo^uf]uemlsxcpqsusetnh_yiwogiil|l{m`i|uZjtjtilqzovuslmhy[hbPhdivopvsu~ogxl|`gojbxa\}twsckwlfnioiqLtzmtoakzhri^uutlzk`klf|dj\hv~~xsu\w\p`ib]o{tnYVuzo_mamqlsru~`~wlqwytwzjryiuqcvzcep~|j}anqbosami}czjt{Zrlleulpjtd~owhms~qxZlhifdqgfghkfgt~dys}fzopnjls~hdwg}mgzjidher[ujipt{riiiaiivkvxdhpe_wu]sTthpk]yf|}~uj^mrb^vpfapmuy[bdiyp}lpsl]aob]nosijm`tzxu_nous^mciuu}rfyxicyns{Z`\_bYeWbrfwmvzohhi}js{qwqjcksghnfb|k\as\filskfgni{qrmolcigodal{pji}~p[rlvfYqrov{rcysnul|uya`b]qcgw`u|rurnnq|fok}ty{[ou^x`eje[hsggqsp^a|kh}rdfgRmexd[fxsjpglmksjxwq^qs\oxohYmgp\{bqpepbqsrkeioUowe`fabdhovvqukupdbmUsdbXPbwdqlgfhyOqjktmpdr}tkmldojbt|}unvvyYjr_ucgwdolnhmwt{LqjbvkiqipvvdZzztn^l^iz{if^]eglh|kctZtgodvng\iq]wTvkfwkjxjj}vgvt]glzgj\n\ntgpimunek\cYYeejluwy{{qkup}i`rprm]q|swfr]bpv_ntfftr|lr^z]m|}qlukuw{^ny\kgym}~adjwfdwf|glo_d{c}rxd_joqnsyz{qillefkityn[blskesq|n^dxsmgZ\hppbp{it`mzrbY|vnoprgpniiozfhyxWkW^m\bmozoaqy~gfna_]wepaih}vlele`qwgiwhl}kthgroXewdjYpmgxWZR{bifq~^^puooRirglzpdrnskexeklazczhn_ptnWhamdswioguk|jewceorkzl`qUgpZaum^xKmmqm`avdzudoJyZdll|aherZylYsu{omuYQ`whmqQjmwlldrRWgnjmq|kqegizx`a{sqzXrj|xrgrw{rkcnqqowpxpdxzaz\kd`x_fpci_fnqzjnubjWjwnulrcidrbhn\esixfpggXtzsWco_tRsmj|g~|ozgZ]vsdr]v^|\orph]sq_hk}DhtmeXxcrapeyuvtZore~{sN~lXqm~xvafv~\riqxqyhwdorczl^slyodpnwauhe]Zd^p[l|m|dblmjeYrtbkoawygunkmjnopr{urqo]sfzZm~mdmlmuqspokdfvpejin^prti]vtmhekv_~ih]cgZhyyiiryx`oegukmcmiojVyowxxpkapiozzwgVvpZjl~pwlseqcgzbUqRozxkUV~phkio|acop^qmhq`ctdarglpom~{upym|omn\mxkpUkprvj^hbcuauhkQp[k{izcoqaklm{fxgcj}xljoi^s]wviiiurj~rjt_oyr[{bhd]rueeqyk|hzz^tvvrlo{ofm}HjphuyYrt^iuiw|rgbhlxu{dyzqqdtXgivkslhxourdddhylfzi]tjc{eet[krdsodmnpocgzf]Yhih}pXmi|efrao^~mzln{angrX`oxnpkangnpq]uTblp]a]|ugtwyufkqldwdynzdkksjvefxtwuy{phimplcYknuk_zhf^wX_ehiqlbiXrznpojmlXhjXyvfakeumhyx~ugc``xum]_^gnlkmqunbr}qj{vtiprov^{rtmtJ]ttekbarldhvrfuhqaw}|grumsdgn~tty~qhjyjbpnmmpzsluhomzcgmhl`Wklikt\lelg|scrgVv|{[vwvqjzjY_vzgligrdmeurgvvsrndj[gnxchtzaeaczpno|ycsvo{envjrnqdna^}imfeqjmehjysentmqgsmxlmollggimptohot`h\uu}hoXfcmd\zcmoiig}mfjd^nkcv~mf{uzp`]sb`vPtjm]sgr{xec{ly}~\ezipba]y{phmXnrs[cqtk|jf[meo[glet|gslikrlpuenlkkwjni^xrheeaik^i]s}dvy]deq|lhyxzvtdfipwx^~qyuXijvkqznqeaK}~{{gicnwn{nnYxirknxuwnfiokg}nlln|X~j\mtc|tlkeq~uzlf]b~}[`|izhitpw^^Ziv]leosh[dpsO^ov^l~rldngSbiromjjrqb~u}zumpd~Upqa|Xvnbt^^uq|~{enmtgvtly`fks^y[|eim_mjcon~kjfhp\^dwqhr]dfammfagokdkumdi^kpijxjnahjuffi}jnw}_pm[mup[jh{xbs\aWfedhtmqgsojnuclipcj~iaqlw]Tq[klphtpiazrp^`gcsmukul|m`tsl{~yfl{swqgyUwnukqqhmb{rw~TpVresfsrqdwXSacuzlzjwpknvXnktn~njamhocpytfzmgZ_p^rexqi`jht|j]skUy}q~sgtxyogi_xm|ijyidl{mq|bpwf}a~xeysejYci^h]mhdYfzxicvhs[}ozW{ym}|wjqmWVw~_jguUj^nrqivgxccacwyy`sdguurXgvghVfZ\v[qpq{ovnhkwYe]o}ystupe\uzs^ai_pxriRStnlhsshmpwjqswiajsepqiduUeudXhi[m|qdurppvg`mygbr[LpqalVwsdqvjpe_g{u{ges}ogmezxtjZp`_chss`ojvymldapgUmlb]qsqrcldjowy[mtenjlmhsfPbzosnmxvgluUkahcswxgYnxGllvusfdmiwjy[vtsmf_pemqcasvlckZbPrrP|en`etpxwzvVd^|]rznlv[Xvrjrhkyykq\qjzemkuqjeqfl]ijb`qqq}wlemryczzfRnzxinvugp\Xpvbmo|djqnSzwmnhzjwhc}rwecdo_ibt_]guiFdvq{rdkod]SmpWuZ`viaao^S|r[uinZzguksgp[tmhmrxqmMwna^\gwdjhdusoakukpwZch{kp|hmohqatW{TZr\lrqv]`otyxa]wctn^{t_hr\cwvcbnuuVY{}tm|\lWciiiz\ddlSrt}xvakqZjlggovixphup~xop]erxunmnnwsxhwfxzs~nonttlz|jhfgcyXlgkruiwzen|hr]wpyhpnhzdjvc`}kfgnZxyerZdvrjqv{p}ltnqaoxu{o^]l[pbvpokmxmshnhkjmeZdil{ruYr^wmph{pfnWn}twuu~fqxjahycvyt|`|}lga|veilnlwr{Uvasqtui^ms_o`kmZeelso|iihbkqrlyrksuuqcpvdggnloobphga{sq_ojqozwjogbypc|xnqsapoqnd|yerqu[nvynkolmr~fvqhurnvfjiark_nkmpasrwqnrwhjqlj^brpgvejops_hrshbbrsukgnvgvlt|rqi`dkxmmmtsheqksp|vYhkkhsnngfwkp]xa}|frcytzgogmq[fPr^`jsliqfoV\jnHYbQnNqqzWfSlfbkfj|vg|e]UucmdksVjhdwtosaZ[yjsV}Wh^ynLfyp`z|eQZoSmtWrrl|rrhvcXf{jol`tfY^cph]}xfOcQNi}jlky`Z}^Gzvsvgwoeiryn~[Uhnmcqkd{syp]npoxpie^]kqprlutksax{piw~gqhp`ujggtt[^jjZvyif~dmzkk]otrpjswlnpm^rke{dhZfuxv~eiljg{eva^glY~p_oqhwgbefl][pazxs|lodmwh|wpoaS`slwwmhaqYz~c}u{ibx{intihph_trt{b}cbxhqeZp{n}vhosgsofffoZtjnn]cdqxjupiejkiucsqkeXrsic|_vpqgpsrXpuft}sbdv}tnkr}ckjyezwvjghiqzvmhj`q~fv`o_heqebvueimupvsekvjend`zodg{duswo}\`Wdlso~hTWdzmi\~zYuhwtdinuYlmkouejoo|]hXzthc{{jxUyzqtkdbxgxnzom~luedij{ivstil~ufp`ho[`cfsxtzwly^apm|uvpkx_^rjbtZyvllehwmq[trvw\vpxmfvj|qfj_repxo\ujnlR{xbekwmmkyoxevjgcucojrv|bsjgwgdhbm]qbho{nd]tUuztzty{vdjh`xg^tmsk_qrdqwvqfqur\mx{bkwjllqxkrv[diheoStlljgtjrllkvgnvst{bsynfk[pvpYwny[jpzeZotdtXloXkkff~\{}~wm_ljmww_hZtxjrbdrwi`W|Tm|qzvixbfqtnjsdnknbg`slftauihenehkqhxrbh|k{hjle|cwrjnrgy_seemhtxrknb_ljmxgkerhxsmnouunlr_ovc|{qhswe\rpssoxc_egmpYrehpa`jvoczt}}lrWpeqhjvrhqeeqcY~hvbXv\{fymffomqwjkt[rmfbukm|VjxgKnrsphtdlaxoi`d{ppejXibedluqxqTuwxru`Zwpvpplovjmppqqurqjs]w|iemqtdwgaenqlb~ffcoWsvlo~dqvcn_qqvqyl{jvfqbnea~{guqkn]pohl{vneuojrmxrec|cmh`}zx~intaxqtygpiqzjjWdxqneamptjvumjvsqzZkywt^~vikwjrfidjlnfcufm`u~xpknchlikhocwg}at~{hsfjpnefvz^n_s|qjbopxnhskthpepj]hwo[xiqr\cjqY^hYbZjvwa}v^vytbYjwwuz]i}fjftohmah{o`ehskfnisYiyrViuweYanzmt~r}Xustw}kuhjilyy~jpoq|~e^oyhlrziUfYwk_gkqwbiygeRZ{wriZct`htuqamdeewnfuvnsq{bO~nx}q]{loewns_^ybazggdSwg~{li|edfgrmSNjg~scwnV_aobfjf[w}qozaYVzrbzxwumd~mvzt]uuwQ`x|xxumwodZzsl}f`}[hwkrl\nuxqftlmZlqycQoel[re_uiwj{[k{Zuor\tu^_injuq]a[o{pN~dqcqhzo[qb[waonzj^~uey~pcrza^|gy]psn{bic_g`knyttlxjzpcbkdueztlmncovTmRxnUqhgreqztfjq|bu\hflmolorb~~UmQ{hqggt~{s_fOT}xeuuZumZhsvpvfz}}yqh^saokdn{j[D~hurt\^wjf}u~_cwytgrrdtgqhrf|wi^buk_[vlaz{|eTEpdzinw\suocdqqQlrbi|dxjjZn~wcjh~Z~fcaxcns[gcfwpbui]ty_iflxro{jvWfiktfleybbqotkjnmcglr{su_mocayr[gl~splsztScbv~mcUjginjh]orr^kw]~uvovksgdc~vmlv|uoh\w{anuykv}gzk|gyfWxki_|kgtNo`yovioVn^fjgiirvkcaswbt\uydatvopek`hrfldgrntkruxqbmRuiprpntdvsj|kbrlqz_kjtql_~rn|pmhnggedrnkZVeuwmypqTepccx`r|_jlh|dl{oheolzwaoadkomywvirrxkujj\e~zwjpgcf~]nkvmusioxuspkpyjdj{wpnqwvk{cjentbbnemo|mzqnal^zypXnh|luulhq|gvxnbomqc~ewi]pmvznie|tuxZ}qnxigstwddrebnxthlunnls|^zyrxgfquxvupraimkpmuevjvu`oq{xo|gffhfo|qppcmlo\m[eu{ore}|pxuxtwbfs[v~]r{y`omq}eylhnycjkhtlutofqyf{hdduw^]magh_unlqo^xfohvprimmnlwwohpgoYwxmzsq_cufi^voa_wboqs{jhs|skuyuusjzpx`ukjhi`~wloqux{uh|]coinlcmox~cocqbbWzpeikbikixviXcoubppurfdttjfohYgknilevxiqcmt^gyzilka]}rYzJjveW{ssYP~orsldlbon}jVlfjokpkqrvRwY^Xeu^~]pjv\m]vctrtukzhgyepbipx_ezthvypbcqtf`tsbX_^ZqZf`dxiyyuhmnengc~ldjfgd|qbnzry{\`Iitc~a~|ffmunfwv\Zivd_tmxxhdIazdX~khyrwaSp\mnuzg^jfpv[\lu`y^~tmq_ngofe]h[{Wmuu}koDos`q{rxhaff_pysbvg}tjrxx_ero_]hgqqex]qbmycx`Yjtobj]o\qqbt|e~cxa{hr_jpbh}k_f{knzW\equpgkh`ym]O|mxsb{yMgPc_nnlszzf^[tlzclcRa~n{brauwrzhw~lo~jSqbNqekln`krvlqhewreonb|tvxo|}Zfzfhlpxftd[pifinhgcpaf}vly}yoswj{cfwrk{l\lwbwqwbpibetnlk|[rjwvikjvhcb{mj}dm~wnifacl^hid\phly_umiuYm}^`zfzrkd}mcky}dv~]fhtp|]`_jng}gpd\mg_mjxmlfplkebjy}n~hmr]hbnd\la{ih_cYqlk`er]^[hzlcmS_glcfsPsmhro{jof`wnns|vhfemtrdp}|j_f`ktQk]ckbzZOa`zwmf[`gpfiSfnonKkindlqqswrw]tgkdiivx|psdjkztot|pYoi{cfnv`esljgizbgenusptmavb}wvrl`ZStn]didjnzehbxefxozselyzlgfSkgomrZmtwjbZdWgpnql]lllxxelg}mb|ghwYp}TKsdp^vgttmi}kjaPpmf}hlxvual[Zrvjf]byUmxw^W^mju|smjseSyvv_prQdanWedcV{iee}scnrh[|deit`rhilg\rolrYw{j_Yqaifjfcyphiw^vkzem`qhbhhWyomra}Vdvsqwem]nv|W\h\focqc{rt~mU`c`qroy}hyzn{x^ngzlsqbrbkjwz[kTj]pjnlrn^~lkyjylnwuqiuoccdv|jlbunvbk\omnkmv_k{{lhvwhZpskdfZsatre~k{ivhqtsn|qpgbtmwhlr_Obhn^|gmip\Yunk|{zywglqe{lura}r__aigjXn~ryl^_r~spe|kgexehtjetflvqs}kdetjpimo\jztstxf}|w^ojgftebvbvlq|paynqoSlnq]vqdmiWioqv}irm_Nxqo`|uwv`ggfshykenzqf{pqo{iknnfm_^`cqlwbflopqx`qghqf_}gg{}in\e]wy~rPjZcgXp]jmppg|{mt_xvhSit\VknhQ}eucfoXnile{]p|Zk`iavqnQeouummabj^kbxcl]|nfPYoedvn|lbkc_l^selWaegqwoqpsonlrsjogru|kr_k}excptSmn^ko}it{}t]o_yvhqoxe_Zp]hrfb`iZbxdqwqtysthvgbrmkvgg~x|smsepjzr}}x`hbkhmjkfueiov_sy\^ofVmwujS{{qksevtumembiytvp`iR}zcd[t{__okwncmr{in}yaghwr~migfpko}tcuktltxh_itkjxrkvsy}km]ox~ctv{teobtvlq]~`|gugm}vpsvph[hr^itcxumpgb]oer`gzqZZijjwd[hii_locvuySdq|tgsfqsrobblvqznmsujlri}anrafpbvxlhopX^gxfissomgrio^|jZkvs`hkcpiiyqkslkvcRgkitjrg}xv~meltc`}pmhaghZkcq\ykqrdqOc^goUvj{bxje}x[jqgbmgnjvnnr\ZuvrnmbnhuxdotShe`ylbn]ysilhIhssdyaZ|uSup_zqw]hq~}oep|ed{}w^pvgswjqboq]wpmbL{a~{i]okwkisYme|gWpws{u|yngerwnqjl^{upr}btnkrf{mponchhqljt\jnowi[k[s}golM\kn[nbzrgt[vbtnflomkjvk]gk}jb`uodjolllfJbjjlyjlhYwRqu]reqgndgruvrmjk`]ri]Nqtwiuwtv{`lvbwai|c\ii]pen|rlyjl_iyScyexvY]{z{symXum{oidqh]k`ooY`prhlo\Zc_fyoqhggkjMttnlf[chbr}uoo~f~nrrmriJ^pih]kl_]dvk[qffziujliw}vtowjesdukgvyu{_pVc|{igqewh}ruvs_xi}ucslsjd\lthgjofekmo]lycp{hjkhljpkfqWuh~nrlx_qkrj`cycnfqhe{ymuoomjvxet`pgyhhc`|YoalpsrYhs~vo{^i]h}ocul^lm|lyd\~hd_Mn[vhyfchmtnyx`z]}nZlgeuqcypdvjske|}ouqxgweusab~pepgai|^iRsb}ka]|]sflcoczV[tjmyrp^ycpilvasonzym{grw]wmneQekmY{uyZoepq^scX`nqrwe}nmppt~hteheaw_ZZo_fbufjpllmqdvurmkg]vfr{ZXn_ksa~ikrfznllYhi]xpcbyrio|n\^wbqu~ojq|hd{edddkhotxjjfhnmclmtnizbosc|hpwninrwnmmm}dfn[eulslctkcw}|djp{kt{me~ihybzkg_l{lbnhfhn~trupnapuy{u[kxnqvss|psfnxrskkajoqjsvgqqqhwlxVhrk]hnmkupihNj{n``u}cow{pjx_i}eL~{v\kjn[}wbp|fbvnl_henumnvouv~ktnzb[khv\hod\fu~zrugVtnpvh~b{bxlwtpsxs^e[yjywWoY`ddtkxvvqqoclfmexxopjgt~\qmyxjsz_bbghgk[q~gemxqhahv}khukdrfainqzkaw^Zd{heegvfZq|]Xml^rbbipu_fqhmek^lnz^jsrxjjspZskrpfZv{ieflmnnkvTeip[bnix`ddndYoSbce[vgnge\ni|jndzRnbeqjrmdneusib{wgsTW{uihis}hdlpkj{uh^tn~ayZncknlodrovjouXgFuYublXhohkdnxt|mnZ_jqnlzsigfplljfgnmcnlop}codnmpnnniq|rfoieWcqxksuffflp{zmifqourrx`aqj`pztirx|ptcdqjskyhugypoqndkj^idq_kude{jijdyljzhiPkeqccslpsxghjWiyyyymq{yn_nwfazklampz}ktrov_]rlorvvz_orpmnsccl_ujfkqe`}stusl|sXehxasw\UcViucqq]ussfdflhpm}qs`sekpqzstzss{lufm{n`iX\]yi^sgltnqtwm_ovrfnomsj^rno}eTeP{\Xgsu[dimOgm^jikmncSn\keiddqjjwdmyis}enkgwrkv|tq~nbx}cpoi`zy^jVn}kcpj}x{]ghajcmacfzhe`tj{qipbqr{sd]rnhbbg`wddcscrwS}tbppgjly}`^xsyfx}oXov\um|go]hv|lojza~qwRq[lrjmcfbZ`pYsfTmsr^ubijok||ohjczbql~oZrfx^tyfv{{|wYe]wmdjTr|qcjrrWzcljmvmfulsxhajtkki{Pceqbfjwsjqrhjhoges_keqhes]jj~emUjuYbl[mk{wc}bdfeY^]fvc{nhgf|tryatd\{gtzgmz_f\hnWcwamvwiluo_thdmtmixrbVajxrgonkqpirsn|v`ot\ds~yem_kgdauucNh}Mgrx]x{ubclhk\P^w`nhjmrohns~epii`mhjqVufk^oqZrcnjiwXlZotsbreivqsrwX`ikUjpjqdrn|sgp{ql|eZnubpoedorfjWeXpaxrplqkTlndgxoeseowwkkslpj^q^gZmah_T{\nuxoj|lor{\ssv|dlxpp{mulsjkwm|TkodcXzvx|fsafkj~ixoiRo}vw]x_tn\_~fiavqslhfp^kngq^`eqYixfw`djparh|lepu`mprtnxiyxvztp}ewfcdg[n\jnqd[pvnuek~|xldq_aox|goisf]knoksdnqs\rlck{qoqyVnlvu~}~l~xgyypv[`fmuskxxf[|jfffYajyouskn]pKqfwgdmo{|jcs|zd}iyvdedcjh_uhj~jumboidwfqWTjutmnteoecwnp}yvdhz{kqmovt}jtmc]ul~nhqjoqwfool]_]rxudtdte{lety`kwXq}hddut}ZcgRzeX`dkgwtrccYfoaktjswmqhm_vwzmf{|Samcfipy]tmpi~teXm_g^tcf_rb\gquurjej`}Wpfem_rqkv_ycvOz}cwrdgrxkzjfzWspNrfxl{cnxhso`_gfb`zj_mrqwg^eh]k`^lXo_a`jrqrlkbg]rsh|dz{\q|htwt|l^j}hkmqrJdld~hxwfhtdpb~|qskjg}]Yfp~rxQoXsXohhuR~]n|rqcObypljfjzSszekbR~xidkcejpZevtz_zRj\tjswrVogir[dsx{zfurXdZLarUabu[\Zg^bo`_NTd_v_[hey\j[mV}_yh\`owuvhrmfcUmq{f_Pv^naU[zcqMr\fPTpi}nemwzUqx}acqbfxTDzslXnX][io>urskYtiw>p]hjf|jnntms|hvrl5|_ft]ZZgkitppnmhEwc~l`hpl^^ciqxIjoeal}zkm]xjive[boccsknt|swxjugefqxwuf_dowLqvsr]xln^|lko]X[wyXggc`vkuVivxofmvfip~wklsrt;~ozwywg`r~eonmo`pmktb}tx_qpgsale_imsnj}r|polac~zmuz]pvgpRtnlvjykmsqohawtjsw\em]l}lorrh`wwm|ckhwomvu_tzvpn|dfrupgj`np}nosiirh^n`omlqgqaa}aliiXq~k~]oyxsuu`yc^Wqknyvulkkr{kaTviu\toflkj}yksctulzdsfqo}ueqvrsjrlqeym~trf]jfXptujId`Xuxrunwobo\eqiat`]Lih{tfn{`|kil{zqs}rkbrgKOuzgguplkh{hvmjjdtefn}^jXjik}|nsu[bYyyXq\@kgbThikqdzvowfhb_j|Sommcnpt}r}ipsgpmvTqpkbjop\amd^]h[upyxl^otuwfshxioo~jttRxs]tu{okoUfln}PXfkSei`[t^wiqVdmbrokjupeQnypp]tjzinekkkame\qWcyjzqobs^fspw_c~mlfl|kojrh_\dXWs}n~]^Pmhp|gk^Uhjozcy^kawu}mrwjvYnrcr_HprdzccxmzlvY^~vhrlfjltXilm|`i|ZZs{k~k[|fZe\rpqlukQzmmz{lefjmdwlf{|ekfezb[i\lraxuolvyf_sj``YhrssTsScof}^viwxra_bgwebvksq{g}gvmbpTtxWwfyescpZtamdsVsd^gzq`dsdzr]fX^bmwpsl`e}lx~ngqekrKoypyeW]}a~gejmdi{mn\`m[_Xbcglwncqfncy|tfghpucexfmpovj_lbhorksxriq|vvtmffkyyvs|jnwr~kgvpwr{jrZysdjnkyjv`pcjxfnuqz^jcmvnuum_iooowokvpgjqwpfmqxf]nNh{}cnxqyvreplki\YpmuvinsblYsjkgocjnuf{hm}hq|jhw^~pThv[rswxfijccxqougkoiusxtwq|ezLQagjqsr]}`g]ovmXpmo_okoebj[WqZprx`|pin`mis{bzlborUd{zsqubdmWiwq|vinr]vmagbqx^jW~ZcouzrnfRwrbUri\{didfiwih|l|jn]ubt\j^lhlsOUeoxm]`xpmfy}Yiqdbcwguvoauq\lyuwyviemzi}xdeYf`skzunuoefqzhtpr_d\anZlWuzjb\gtth|Wp{uazzkgsfuw^woumhhjmcoheq~dXNvfqd}hrncuam}mZlqzi{n]wf\u}yjj||p|nZhk{pX}fcfhf~vpqVdvchdgm~u^`mmhslv}[j}enyfcsxfrko^nZ}p^ngk[z`j`uUzqxbnmmcyel{spxnj\quapkfmdtl~aZernpYpq^}z|f{r]gfqyntJflpkylpyyrWn_^vpv^ckjsaga}jlt|z_fm^dbeWlfdk[va_qitmnq[`h{d{jnz{Vg}laxl~}e{~jdYavs_n[um`f|gknfsusgkyjY{hcplksnaWe\ddv]_vref]uacv_hUR\n\qaWch^obat[uOM|USmo]nq|{~YscZ}vihghtrnzYflwurbvfvq~Urnqm\y_k{~lge}ntet]bnrgQWu`z_vynngzulv|S`}gwYWUvujfnm}vjlsljhk|uoY`crxcnXzqgUwo{rdmqu\\esuwhisawc|tmzsno|lmmnycvbRkjqo~Zgpmcxn}hmgz^n`nojyYp|xf`kfRbknh]mfjon^p^uksnk}bpjijpfnZnoefjjTwp\tnnr~klroxhwmvt~z|nedvzm[yecqpiSueZvoun`e`qlfdqu`wdij|nnSytkcgh~rknoolkfcpxozhrkqzjrpnbtdkp\rtu_kgpk{crh}qjd_pSX~PffkjZnhuwyntZk{aayozqq{mcszgku^cj`esl}dmv_jnowykfjkdeepdvn[Xwd|q|wq~mfpwkxfkh|ginwnxzuxznhnd{e`wkbyns]^klqqpdbbbupnrylswxkyuyqlh|nlvccdyf[nboxgo_wxdbrcpnkr_blcwkqsgtpovijkkZo^xcmbjhpcsnp]o[utw|nV{usvzhoZ[rhemhsph`j}d{qehqvtp|xfyek}ma__hdkujZq|jy|rmasmpppjyowkgljwpwukbeqpmopsshl\lfknhwmsyqljgid}njbPsk{itljqnmm~owlptxqa}jaidza~mv\lvyfl|nWrv]zxhcou}x]wkdin\o]pvvgrjyg]zatlx|izuenhrZwkmegebiks`kmb]jlfsvlb}t{ocedmglemwxkjrpqn}v{h{u]qk}vnhtaclvdu]gruwn~lkskwfpphztp}jr~Xvj{yujhzgwXypiukvuzrwp\ln{~oil\pbif}Z^mmvvwi`lg`{bkUznadk}nurifzUa`ldQuYsi`w_s_qlPiWed{dc^f|xT|ufovc^}pwkzdukjfnlx{lqXnIxh{yvgxquofoioWsfXsdliqq[`~zcmn`ayt_zjnOnwudSt]ZoeVuuxxjw`ftV]|q~rrkfne{sustqm`o`b\o|t]lcneilgsjvhmrp_o~yhmSxpvionxraedtsz~kllmql~}ilxkq|mni}lpigjZzr`muol}fe[crpvrkdh_htlzsjrkdZpzicxhel`gncyVbpyisb_}nqhelsYlowhvhfvxrhkmov|egUrpkszs`k{mZlqdvl_ncnx|dpjw`~dgid^edkn^meiva[kom{fpicv^~m~e}{sfxsg~smske^fyrcxpsmqssi}h^pnjm\i_yhVegcfp~bizyxbmivha}ocowirlhcn^jw]l^uowzlWwedlzsktfv_yk{ej~]oevppbihplvijgx\qtzfclWv^bjbohqiidg]fgptaoofigph}^]hualxck}wpneiiwqlkmdd^bTffy]Wdxo^]thvXp`hyun`am~xx{jbwzggnwfwrgp~xzeYgd}isslyflocts_n^lsqg|sz[nqg{|cpn[fqyjuwcejkn^nku`qgsyaR}yjd_l~jkXwdRqcssyl\wxygjr`hdi`tmaYkildjm[vbnpfgvbr`xY^oski{j^ussq{]qoiybevpkwppgkv^jiUkuw\anf[rd_[rosu}kSvRwjyZozygjofivWuWtgwe~wclzjdclvz}kyv_Zeptnw^ggzlZ\{r_auvwLkbeicwemA{jaso_epad_urji}tVd>u~_i]y^yY~jqhtdlm]qUMWalxseoph^ihce]llS}fmfZgjsmipjltssrerqukgwvoulngzmglttfpehgybn{sdfdqrpuojitaciowcpv}zx`wugs~u{frkpzihqhqaYvy^zd}ghljh`psuiYjivswcfzmtsslutun\}ailtv`|ggno~xgdatXkpvwirjhyqdfekmhjeo_djmraeOosljzlwaujalgojWmasqghorlndz{frVbrndj]~m_cXhs^tb~lPloi|_p\`qwqrozzm[fj_l\XekbtMhk{~omng{mcq\bmqvluk]jkYi`emujkqjweb~{mnwjpzsdPgyq{sfzs|oijtjn_rjzi|nwmlo^kxtczeZc]Zb`qhvmmoo[lipdhbo[rjbw]y|xy_ev}xuz]xmkqtqr}be`cdwaz~wwhsn~|w]}ienxqgekjjjvcqnnur]qqaxtvZp|maq{nWZtYfc}wOheolijooziknfgmpwvvo{Xnywbuorghhsjkfpmfncql_}bi}_k[s{bR_ards~q}ieenb}aosSwde}}egcnf|kxyrjcwcu~errXsqpYomZmb`aq__se~aepccbhq}flbsseVmupchqgtxkdpqtbhxwalfulOu]`o~sjmsbwU|^ozbseqejwfqlkjl}hnpzr[wncht`vjzftjm]arZfmy\H~Xaptf`agp[ga^axycly~hfzsnmx^{oilyZodlrt[m_wxkpnf`o~iuxvdo|\cvvrg^zupjhuaybdodiqsiTkn_lthhceqfo~kzrRkal_nco|russghixsQd`nmsrv|umhrqgpunawrhTxjprf_cjntqe{doTlgs\lXlimfnsbjgignUyd~Smss}fk^kVs~jk~`tkkhVnqlyggztpcmbndwfw\V{wgmltorselclijuevrlvn^Pi_Yiyeui|{ricrxmeej_npksR[sjstlrhoiuythbe]htivW{qvyogarvo{ygn{idqb__jb]atqiuS{qlclaldZwWij}gpkqt^zhslgv^mkh{e{`|skurp`{}^jpvtx_~^viuqjuOjukfqzr^zoftisxlnrm|k~\qeowhpggrjry~ht^\rntjv~{vugetrvmjxiiowxk]~a^lwbsrgncm|kdattuuinyrfnzlgef]lpk{crk]prm{|`nkqooitxwerqijluromk}rin]fmit~soour}iiu\|lodgzliyxj|kmpwlsusazc{yevabhfkzmgk[lqfy_nmdvcd|u_vqhfkzs[Q_dkgvfi{v^intnaOdmdppubWj\ydbRlfntjsth{pnlwthjyrilndohrhomsXhcylhekzci{lpywvrvbiit^jvfjlwYkxb[urezo`[nnfqz{pk~kkWNdfdgMhwyqvsqd{v`a{bXzowyj~kipYvknjmymqdnfnbyzbwXcfg_cp|`~l||_wxovsi_osmvxrkhuumcog[bckhgmn``qtuyeizqZu`dopmmccjShryev_joyh{[qkosffzrmuqv{m_`lbullv~m{grmowumn_wWlQlyiitquspgtgwphkwyfvoeo\foggxc`spv^a~Tjmt`kfbzsgetptifa_j{trqjclpew^mpf~{pkk^y{fYtqk^ctab|nXUP^YlkHgymaaitnwfl[amk~u}onf^yrxtlph`}tgbwopaomllpu]fnhvv]^bTwfnk[eootaqtzqfrUo|shsxihzee_bXmi`KShmlQzltmi?o{uUvi\shkgX}wjrx_jemoYZ_m}rdztbnmozvWPxppcddenjkpnedrnu\lwovSTlfijYtvqr[{zschutl\owllsit|tjhqfpiepZhW\o|uqewj]Y~nmgyxg_tiku{u}cfkuueu`n_gnhjg~mpvlwr{nxsqownkogh~i}lfcj]k^nmXlt`ivml`fxbXWgjrebbgrCprp|bignkpugnmihUwjlyyoznmmpooeaxvr]lwkdndou]yajdkjqqolPgv\qp{okSXbuzd``rXbiHgqjeapu_LmjacaxwqbsfZ~trhfxgv|{xi{rn{\|zrmbvp~lu^znlq_yOg`o{xrjtlk^lqvvrzW}iYuhjnhv_Zklldw`eq|m^|hnww~qy`jmfpfrwd[yf|ovdg_agvsu_o`Runslznhc~yvepgh^okquUvd|s~pp_|UsjgteUjcwgq\|x~jquqbm|nhwttln}}k^yk_W`hneZfu]htaVmrd{|TcirgkxwXcjb`gjqzftgkfQiaj`p^\kwcreqpJyze}lqmq]pztwl_fumuwk`X{oomapdsll_[bskpz{Zv]m|wXfs^mn[cumpuplxh_w{}rnlrqkcipb^bs[rzrxmsyjpsaawvVzlkadnskn^}Zlocpaxz]segszZimqia{zVmaqiNlrlbk`\pXf\hhnrk[h~q^nszomkrT]^yvwsfgqpmuphht\cayglgrpkgtdt]~ycRWntus|xd}hiwgZopgkynsttyxycj}[}vWowVqnjmyonsgkZbjtlpzvipfhpr|izzvdoodyqhu{^\hmsomtpoulUni{wr{rg{xurlobn}_usgfhmqf\yj}hotmLm{qyzwup|lkwenaoghfs}rpowjemfjykadwxvoltrvjo|oxygds|rz|yqpvt~bqunhlnyfdesp{qsxhcotgikrp]r\qfmjxqwnuzrq\r{rb_ucz]elfbramrqkvg{{rz}rjfx{}pxslqhhqymkf~{eukvncsrdsexaxaiaXrqcon{lvZ\slfpmhfZ\huWht`kizqglnit\ygZafwljugycrxzememmlnyzntqkbss|zmdUu}ljfXplqsoqo|srjgXji`\_{vxhdddjunncbntsipjn\qZiw{xoylnahflptpvjxhtT~uZkyyu}kt{oh{u[Rjhleb\yexejz^cndxyrrgnnalzrourku|ddnprfXfiv_rlp~Z_{qWgdsixy]~xiqkt{{imehflv^fj]njs]YxqXkyvg[rl`byk~tsyjv~siqyu|mhgbvompuudxwzkjqm_H[Trl_fcUkuf{kfkrcg|Yceda|tmvlnb[oywat]iwso~nuivqngnyykjpn{kaonlterfrtWfpT`hjtrgr]utl[QjrWVr~Zel{bdfldrvvj^mkadkm[d]Zd\^fmiXc]igjhdfz{jnx]evmpiqlurmccsiverrtlrnvvq`amrSxukhu|c{{\kvbZhrek_r__Pv{_mggwf^vjfgqzj`ravVkY_^npnu]g^ochuffgpsNdjigbtsc_lzhmoinveqpnsukpTrTqek|aejmvoshadwcesbwsku`u~n`shxdbebxpaqt`[ndsdjniu{i\loza]bbnitnms|o[uroluYtblZZZzkyucom|rvOjwlrelbylh_gpsvkk^_ZzRwnzmklOmdmr_~bgsqrwwvgYmnpofyqfxsspbofhjWt[`fczedlgsbf~vuTpmjillfruj`mqsp~kfgu`slsl_pz{lbqdl`hq[vlWihvwlo~`qrvxlaiikusl|gpck{m}us~qpmhswt~zlrrzpqr]gmtnotmz\lwrjnhm~soifirogntoqt_uujtlka~omu~fuSeayrtlS{nihoz{Uuh|rlxqjn~mmokvifPv[jtjmrkbi{ofxljzw]jy~fwprgclrjgru]t[\kyfavwzwwpszjjcljVrut^smZpl}h|lk^hhcXmn`cVWy_yipnvtfdaebmjkzrrgdq`eprQjyvvMgeyune}rzvswrTljk~_Qx`^p|mvo`y~xn^WuaaUmuglUobpeelppzyxhy^yfetnfqpgfljofxsg|lZrdehbjuxrlrqhvpgpymnbqfyqhfkTbhsjefqno^rnj^zxlgo[cjxzSebvljuk`didlwcfxugdbjvjh~c`VxfmhhtgfiYebljkog]qjfazuxbkdrbuhyoghdn_]omx\p\ynspnZrqp|`neyjmfnxpqrxxnzc]vqrgiccda}rrYamcgxzdu|ux\uwkrfgr\giqj]j\wsjpkhvf[ztojfpg[qriqmjn^vo~jhjpt}vygiuZobdUmalpl|wcotoniw[urq|qtsYf{gpgsc{~l[qg`wklataploah`{v}u\oc{susqbgydb{ndfak]sj^lkogarsmgvfjfipo\jkgnzfxstgoxalmrhncvzWy\mlZo^r^wqtliW}afetmk{qf_fekk|Ywiodttnfpd~n~lWcd{hqcagkotouyvh}qUzfm|hphnzkr[^nknvlbznhzjwxy|pwumzgWlltaha_k]meloymp~krjmzrdlko}eqdZdrygZ^nyu`l}wMs{sfyotkpr\bg`dyw{rcdfnsjiZpm}Rthkbq\rgpkighasoh]~`hhivmjsf[pd}xlrbhjyir^q}mubf^i~cpQhke{oWvuxj_lwkmuxejmgqrl^dmds`iuqrisoim\rr{}hrkzhugpwdqq_mn_fpofsiz[Xi|vkm{iXncqevro]khtpPr^b[~vioegw[vooQk`ofrpsanoYm}bk]cqoh\Wgvrdtgqrl^xd^rowjpfrytocu]kUkQbt`rktectot``fwX_rrin{ooi|x~zxs`upr|rw^ssusrt[gtawa]qe]ashxhbelcfPbbkettbpcpqebi[sba{r_|quo~b}kv|n_om|}hp~nuOgqoadgal]heqp`]VgdgoptrwX|Zp]o}xrtMfmojVwh\te{Ydom|nggmzschPdienoZ\gbReqs^i|swWv[`jsi\~eorhptbfgljid{g\g{buRx{jicz[{hzcp\rfg]ymw\xcoxhwjp`fj`dqvswmhozuuZ`vhgk`pmkpztwke|pgtcnrcmrhqkdpw_tes{{__mvnl{lokxkvko`lltlyrwsjXxl_wmu|zT_{iwo\_u]ireunfW`}XjkdudkrdTlmmtlfc\x{ccrhrgcqpRtQmcWvppomqljnp}^tvrfkPqndjkrjppfmnct~{m|_cYdqnt|mpaygMqluZ~hl}^qpgq}vluwlv{nqyks^jnntm`ip`}Sniyxp[mtyrnlxth_ooe]usmg}x{ptohsu\|}ml_{wrxoapiqpm~d\\kzjkkiRqdlhsmlmgc]h_iWlmshWfifzZlj{evpqxuYqxrfjofnqjxmrgjsozllir]_gqkrdmf`elq|gaXoou~rzcvutclyvPxo_ezpfus[oeMTIVMSF>QMQGE4AQDFHSEFGU[CRNF>`FIO[^HJIFERGREHBFHJDPATMHnN<9IMFQQJD?DQR=GSC;`LJKNHKX7?D^FGEHINEGEFQHIBI^FT;AbGESQPFQNGLGZSITSdLQPVMJFAFH]PIFFCEQIQHKBF>FGNCJDL?=ODJK>@TLDKOPBEQJHNL?JFJRF6MJBTODIJHQQEJJTENETNH?U>:GLIEDYNHM@R?FDOHOMSMBDJB;JGR_MIELTH]KPDKFJPRGUGHK@QF?AFETJUKF@NGIHI9QE>BOFHDSJKQGGGUTDDQ?ANJJLDFNKMJ]I@JMOGF>DMEG?IGLGDGVLJLBUD9EIPCDFSADONPDEIBJLAMIHMLDMKHGJGRFQJKFJMZ@KQGH?DFKHHCN<;GKJB?RIGEQMZLHEOPPEI=KKLHTAJFVVEC2DNCNDNaFJMYLJJGCELBNQGsGHFKSKNRJFFDG@ATEIHIGD*MBWHjRLL@F:I=GDE>BOUO>E^IICMQCJG/M8JM?OBJWNFIQV?:9GQFGOLL>DNC[?DIUHJGNH=BP5SNH)oPL7IF=POFENLGDJP=HCH@S@EKKMOLBaE>FGEJFWHND>KKRGHM?DOKKJHEIM@HHQPNB8QKoPPSDQNC@LZOV?LDIHFPI>RDATHTFIMJKNLGLML>AO?LG@JAV?DK[]OMDMCZDFQJQhDJLQFVRBJDGLANHJCDRHBFEDCGJGGBFHPWVDOTOWIGgORgHIULNERGOTN?PKRG8DHBMPHIQMFTfHLC@IMGKPLQNGJ=CKAENKHMQJULAHCI@?PEJHSFHECFJ>RMEILHHFZAJEBQE=KLJcLMEQ?R:PKNIPLBRUMMGGC=DFADGKVILFNDOKOCKPO;FQSNNHCQBEIHBH@N@UHOIPKHQEOGGIJKECMJKGKOICSSBFDJOLGBKGFG\HNM;SPEDFL@HJEOGE=NKcAUPDNNLJIGSJCQDMGIG]RM=JFFICYMFHGG?BQDHII@F?DDDBNQF\FIOJGLJC:LRHEEMQQVCIIPG\DPLO@G@S?G=\QKMjWNc6AXKTD^D>^HTJ=QGJLIMRNBLKGK<=JUFHmJFDY8>H1FF?IGGOIFA>JFYRMIGi?KKGH^TFO?LKIEBGHD>K9cVLQPKHKQ[=IVFGQKCL?WzL@B;UKIDBJNHURDOGA4HeH[gW]cHP?GCKMM=8CCNFDFYMZ`KLTKEFFFKL?KGSPP^M=EQJSGGMSJMOU[AJMEJHICGQ_jaQKDQBdS==MGIJE[FLMLNJH/IHHNUBDJlTWJVmEMRKPFD^JOTMIYSJRHcm?PBNKAF9MTTDDA4=[0Y>I]TQMHGBOFOSDHOI[D;NHM;BCB+IH9VL;17JBAO>FAQLB@LAGTMBK6BNXPCCLPSGMKGBIY^N=LHDwLEL;BOD@?:@MDKKETJM=CL>C_JML>IIaFEI[QDUKB>JJANHAL>HNBMIQOMVNE0KBPQ@OFAEI=YLDQJD:S;K@NAL5B?>NC?KGG;HSI:4XRANGDEGEIlELhNJBDRK=KXFFHDJWATKHKMA=Y8C8:,@SFVIXAa=KAJLBKESGQA@GEBLBCEAIMLMMAMBIADHLQFGKBE6^GRAJFM=JEEC?FOJP=C?FLSMKLKKMG;GCEZHGNGLKMMMMMPYIP@MSQNLGTMPMFNHGG>>LIEGWISDMHFLZ]EB[VJOER:VOHHG=LDIO>PDMFQTLEDNCG4ZJA@Y`IHWBPQMIHRBJOGLNUXBZSNH@F?VKKCIMEJ?BKULPFU?_GQHLFOSLJODJDRAJKHLANDHGOJLMKQGNFGGLKETTPH@LFGYKCOGJGDN?OLQPW[APJEPFCROBBCUUD>HZJIZIPBWKPI^RKBJILQRBNMAORDGOOHCTZEEKLGPINIPINKDFIKPHTKE^P[ON:KMTHGEMEQJMSQFDNHOLWCEfJPLELBK^JMJCSJBGMI>O?IIiECHDFGRMFDR:>BIHKLRGQYPUC?`GHDNDJBICKYUHYGHNERHJ@E\[F=EIMOD@TLHYMZDIFIFFFURVMKKCLKPEFJTG=J@@JSKPPOPKRLMG]FUOGFSNIMKBKLSMRM?MFREFD[GEJCH?RSbHUKAEMAEN<\JFEMKGQ>OTN:MMPLAGDNJCMDRKLM\_YHKMLBCIQAHUMJMYXUNJSEJGKOAEOJJQQUNFNIVTQOKQFCDTNNOENOKQVAPRRBFQINaXSQOTOQNJNINKSCCBTLJSUHKGMBBQGOIOHV\KJOM@RFTFMBTPSMJAQIG]RNROPKNMQJPIQOJRSKE\UNCOPICMV`>LMKGOFSMJK\NH8SGLP^MGHIEL@I\VKRA\>G7KUHnRFPLFIKBIL?AHRTMW:EPHOBOJ\INPKFRHMDCOVAE=NIEJD`DMHMNAZKGCBMM_DCAJHEELHPDHOGcHAYGHE]M;GWSGDJIBIGBGMNFA[RAIJEFMN9QfDGLCCM>SKGDB5G@@?@9DA6ID?O\ECDRUB?AGCXQCc>BHWNA9MKC>:@PAEOfEEHDYJNNECTIAHCD\FBBB[FFAAHNHOIMP>=AOFEEmWKLLNB>U@IEECKCKHFPMBIJE@KKSY8CMP@@8;A@ICCF3HIAZ<@/RJ?<-OUfCIG@IEXLA:ND;GEEHYDJIGDO?K\>NNICGCNDJ:AIB:CIMTJ>:LA;YFJGPv:F9Dy8;EWELDD;IHJVAB@ZFIA[DKHJ>XG?N=FHASAg=HN>bPN9RGOREHJOJ]GFGI?DKHM[EwIGJGDFLFOtLFU_NCKCHMT>MSQK=JCOHC;KgSYAQ_FFUDOGDCEjJE]>EAEHGAFXGLKRQcHKIEDRJ@BDRNIAHYK_FVC??nGFAKJOPFGYEMEE=^nh;IFHNHAAUUP=QDBQLQJB>HpHBGVADKL[kIGMMIJRR[LIDUHMHEGCOGSHEPIP@MLBUMMOBQOKOJJQRJJMWXKQWOTAJKBDKPKRSVAMOJCN^NGQHJNFCNDHHRMDUOBKJJLSCJLJSDWCQSGDPROOKNLJTNRNSRHMSHGHSJSDDN\FKIIAOQLWGCCIN[PLOBSEQDSEC@KLJSJJQIOGPHEOJODFFKJHLWJSEPHGCULEJSNNICRIGNS\FLBR@^MRJJEOFHPFXJJSnFNHDPRRKSLDIRPPFBNMQFFH@OMSFPETQGGZMOFNFFGH_IK@KDuEMAJ=NKHTEU=UHEDFPHKIJNLOFDLVXBMCGPDBGMIS@\IYBNX1IbLA`TDMJFLOFIHBENEEBLPH`NT>JDUKH7FGBRCLKDCCYHHLPbFQDA:EMFF\JIMI9HDF@HFO@CFRLJXR>ZSJMCGMPCJFDXIJAUIGRZNHRPU?WWZHRRBRF?PKJDO[HGDIBdX`M\JERIVICECLJVO@WQW@GR@@DNLPUGKNVDHEQEJQMIQQORGBD?IMI=FSOZPGSSNGJI>ONDPULOLKJIHWJKJSPYLLPLFRBOHTHVDRMPNCBULMIVGPI\VXKPGIDACLZFD?MJFBPFRMRHLACG?GLKEGHVHPTFOHLOBICJ\JXELQ=HJNSGMGOHQGWJMQO[DUI?EDPHQSRNTTQFD]K>CKGCINGP=LLO?>>LNCIGFCIOFIIXb@GOCHHF^GFQLPNOJCDNO4CM@NMCJBMFLHIfKEEf;QH>IPFQJHJ?JDOFK=IE?A>F^JIL>JTQA@MH\KPF?]DSQ<>M_NOKLGTI@=EMFB8XRHYDICCMP>>YJEGXEUNBZbPGPRHK@OO@KFBON]CE>KZK^W]VUCPBJMQRTAF?AIHMH^EMWICEBU>FJ=EXTSEVP=OEHQ^HOMKRCDJG;TEPBQP@I[I>LMOHHDYIXJJHDDPTVNAEJFMNFENKRGHF\LIPANIOISNNFNMEHIMYHYO[GKEPKGLMFKKLENDCD>OPAPHN?VNHOGHHTEHH@D^DLMPFQJKLNHJGIHSOHiHHFMWLOWKRN?=LIUMBEP5DLMHFR]9VGHFdOMJFMSIUWSNKEIEKMIOL8MTNVJFRIGI;@XFFPDaOOBIATSBJPNJHPAJDQFTOCBILJMTDJECSGX;GNTLAIDECPGFANJ9JCIC@CYDNJEIIAHPGCDM?VSBH@GMEKDLGNMEBNEaHCEGF>??LFFWDS>HHUEHLQSHERIVF@ENIDDLB>FLUJCD?CDNM@SABJSGSFCOIDJFN8MLCKHJHJOGECP<FEFLHCFGOPGHFbHMIPGPMDG?DIHNQIMLPI@H>GUIQdHNJ@U=FQJEIhSKJBLKMA>MKGZTHIVOIT@DQSI[PFSHC@MXORIEHJOSMQUIHQFTGNLEE@NKCMEHUPPMJTD=_NTDGEDJGNKYVGCKIKIVTOIFK[IFXOQNEGQZNYIOIQOGVAOSXUGEaXCL>QN`JCeODOQKAJC@LIOEFDLLMGPJB\HSOILXMIQQ\IBIDEMPIJbEF=GELOHFNJQGRNOJOVMNJKH@PHFD@MVJSFaMJMLJQ>PMLHNH?HSSEEJDG?JNEDNCPEMKRNJHBXIE?SPHKHUDHFUMIDJLTHIA[PGKICIPQ?NNPMEJFORL>D=RFHMJVCOIHO\=MNAM9WDDPWIEUVOPE?CEDBWMGIWO\JJ?CEMIN]XIVAWRRIHQUFSNWHVVGQPP]BJPWRSONEK@CF=ATHHIHZHBNHOFFTPKDOKI_HKCOEVMaIE`ZCHVCHGHKDDMG?NLDEHHKBVNGbDDJJL;WHWDMYMLIIGBCKGKGLNIMIIDRDNKNNiF;JMKEQDH`JKMGcMRDCQBo@H]CLJLQVQD@JKOEIECIKNIVERAOUM?PFJKILcKGNFJAHMaBOJ:GEBHONC@AW>QHIIDFT@DGFAERGHMNBJ[CMFEFLMIIGGGFDCDJKP@9HJQUQUN@HEIO?BSIJPDOKLEOEIIMCHQPMFEOEDHC]@JLJTK^HH@D[EP?^QDFODFGGLUKGHH@KELF=MA??FPHC>QGE=FJFRO?EJCCGNINMCXAGNLBAB>=ADIH>GPHEDGJKHS@EMKIL?JGLMGEHQMHMENJMPCSP^]?CWMECCNNLXCLT?:HHGJ>KLIKP9OCJCPIEHEGWHPIHHBKEAF?HJUBOACGFLKHZNPOLH;JID@\IKXAFHOE@QCGBVJ@LFHUGRKXQCENCJCPCFUGCOA>JFOFGEOP@>PUFPLHEV>MEGTH@I=LHEFDLJJIDPF[WOBJLBKBKPHA@HJNOEO>IHAGW9C@FNLAHDIIJDMKHLDDV>JBPG@MGIGKBTH?JNKWTJHK[BECJULNPGEBKJDPS@FQJWZIMSMNO@PHMRPHN^QMOJFNGMGGAUCOLENOLPLOJMKKNLPSNJJRSJKKILUEKNLPEMOIIHWQGJIMFKLILIOEDJXCXKVXQNM@=PNMMXOQCKL]RQMKUNNKLANFPMJJGI@KZCYWTPITXQIDUWXIKJEFIPFKGMIKLF=QQNSGE>DJLMQQNIHNSMHFKEJHGKYFTCKUGLQHLOSRKMLBFPHEKEDLJSNOOG@OTJGLORBGLHDW@JNSOWHHKFJXKGNHFJGSLKHSUPQEH@IPFXGTHIMCQKUGHDAVYGIKUJLGPMTPHSF?HEOEE?QITKIKN=ACUB\PFRMKJCGSJOXNBVHKQ>POECELR>WCIYVYMLFEEH;LUQTF?MVCGCJEJQbAHAHQLPJIUIEKQK?EFBEETJTIRFIXF|XPVNEJHHFK@HJRFPGGCKCISHNEFVFNPKHOKNESOONIJBfIFUIOGTR;P>T@INSTQHLBMJVENHMONIIS?KMSkJFCFIGEHVA;9I;JGCZANJ8cTLMHAOAJNPJBUW]ELOGHWTCFNSKGI9MFPG=TQFCOI[DMFGOJM@JTI>IdG@SC_MGRGKFPNFDSEJDIbH`EIITUG>DQ=>UGHLNMMJMDJ@PQJLSOQDINRESAJUFOIOLFAATIC?YK?IALFIHCK?RC4KFQGFDRJAKFT?ZJZBPTDKLEWFEMDIbMHRFKZcHMDOJN;aQFGMT8GZJNNQGR>FBG=XUL_CK\N\COEFL2`ZIoAaQCHQGDEOGGOINPPO8L?FJECBAPHN=CEG:DJEK[HMGGQDGCJKHCBOOKDJKED;F@IDQGFEJI?@VXAH;RQIRFKCDOKKJFJ@DFAKcINMBMJNFFX8HSDE?ADLOBPQfI9OKSCKVM>LCNT=HILKCDE:?IHED@LVIGQNBN@E=Q>BA>=FCEBPHCG=HBLFDOR@LHDDJLMQ?IYJRLDL@L7RRML7ILGOR=S[MMCHSDIFGRRGEODREBEIFYDGRLSTDCGGG?GLCFSJISBEFGCDCNKFRCCNHGEKEEFBPFJFHPPDPJPNRMRTKGWHFNLOIKLJKGRABLMUXDBFNLIJNFPSMGJSKIJG>ADKBJMFLRZNMECJGGGQIFBISJIDKNTNLNHAKIGKMK=LMGJPJNCKXEKJBIAKKLKAEJRIK@IFHJFGJRJCREFEFFHBARFJFEFFFKJBGFELOIBNJKRJKVV]NIJPHIQDSaBEPCKU>YFH=GCG[>G>NSQFEGMHCKGGHIEBFMAFEKHUHLEJFJ?=OGZM@HHBIBKBILMCGOFMMFK;S:@QLVMILPIEEHCKQC9EA@FPHCMIRHGBNOHILBIJM?IHMV>NI?MLNVIKDKNKFSARQ8RKRTKNLKAKPL;LDKKMSINIBLNbIIVOSRARTJINHYNGEL=NN^OFEPGKD@NUBHPAJMNIKAGNJSOGGDCJGJGPMNRSGJNFZOQLGKYIUJII@CRM?OVNOPQJDNHT?\R>LIVFEX[MPCHAH@SNORMFBPDL;HKFHLQbMGVGSJBNREYEHGTVBIKIITFDVVTKAMTTLFRLLTTKKFPRBMZINYK=J9QMLEUF?OJVHHLNHS]>@?HPHFGJOMVHEKOIPHEHGHKGDKPJOOIKXEKEIACIELKFdLSWNBKBFG`BZ^DHMLSQECEPLHOiIHZNHDCMBJM^LNOJKENJNBY>PMHGTJMLIEOcPKKYIFY@LMMWQTR4HbQSTW]OB[@PCQ[FJEDKYOHBQNCNAXB@hWFDLUD@MRFUCHDIXDIHGMVNLZLG]FVPKN]>eNMA;JEQZRGTQIQFLNN>OGI\HGSC>IHONQ?H3VEP?UFMOGLg=QQLYGF^?AMKSRG?BEHJGM\GIEH\NPG^OIFWSJF=VDH7PIFHQKWHFLN;TM=^QQVFCDFIIGF:AFKFPYGCBDPDHLFAMJUNFHD>KBGMJFDGAN>EHLXDQFVMAGDEAK?TEOHEUGAIMTCIDIFFGAIJNIKDIMLAEFvFQ@EIODJWB?JID=?PNKCJ>QCGRFFHC;IAQIUDIIPQNJNVEXONHFGLRCMOGQEDUE?PBCGDKHAMNMFSJJHLOR:UPNMJBER\SLFBIQMK[RPHTRNDKPPFE?HOEVXKGLPCHW@LOPDHNKAJLTAGSPKUILLMAFEOLWKMWQSLGR?KLRUBKBDNJMLUDFNOPSNE;]UJTMLKKSJHPENDVMRHRVNKMGRKRSFMCKPK\NKQFGWJGCLRDQSKCOUD@OZJJLJEBQGJN=IEDIXCLSBMGHKMALO@QRA@STHEM?ZRQIJ@LJNTIBHIJQGHZAUNSYIFNGGJJDUHRJRBHGMGDEAHBMBVAG]MHFOJIRHIHHJPBFESIJKF8EKWJGHFEBDLVLFSVNLIETIBOP?HDLFVRCCNBS?EPJJJFGQILJAEK@LDLIHOKEBCEOL>DMbOCKDJUPIFPPJFCB_HDWCEMAANBPQNRFMEBTFH=WPATNSLBL9GDMEEFOJAJEQJJHCNJEFYAUQOGFTHI?GMCTIFIIEBF@JNRHQDMFFPLL?HAJPLWFMZBEBRQM@@MDHDUGKCIBCHFIB@@RHGHTHHRIGBLMJJHE?NGMDLAB=@NVKFHP?RHIBGKJJQZLGI?EK@Q?LELCFJMEN>IWGKDUCCKECUJNECLMRJKDBMGDOPBL?IJOWHNOCGSOKIHG?KPGDORWGJGNILRFTFBEGJ?O;MDJHLHECUKRJNCIHZ>KFJGWLXAYOL@CMFHJWJCJBRRKCGLNTKWJGHKPKKFGHDLEJJFNPKMLN>DNQMMOQ]QSCXYFLEI?EKNMI@AL\DONBNFIFBINEFAFHE;DUF>EFHMKGcHDIPMWJNSAEHEIFMJRZEHMMVFGGJNLIOMLE@ET?>JJFLLGKUJCJGKCCK[><M?J?KJLOQNDC@EMGR=EIIFMFBIQD>QG;MMASKHMCJCNOGFMUEFOABGMPNHQJEOG?KMG?NHKHKFNHXDHUMLLBPRGIEHDTSKJCADMPQC8BDCILDMPKIAJKIRLIGKOIKG@JGHKNBFICAF>QNGBRQGQFDNBHKMJ?MH?HOMMBKIL@GIGEFFUABGJQKCTHTO=?D;Q\H>OKCNRHKJCVGEVLZATKM8FDKTU=NKMKFHRGNKEODOLSZFLFVJ?HSGFUITLTJKA>IIKCKEQE?GCGMKMS8VEIHOHFQZGBIGJLFGDEQTOJTDIAPFODBIGFOKD@QIELCA@?OJIEOHAIOXJ>LNAOGbNDD=HOGEJH>HTIMIQZLAN7JMJRO;GQ=IDGOOLSBHEK9H?LTNCMC9AKLIIM9ABKTQGAJ?JLQ=VJCCBNZAOONGRL7NFHDCO[eJEGQFPRfLJjScSTGLFBOJMLO?`J@OANVG\D_=OPJ8ESUOS?PCMIdGLMHR@hALFE;IIEFHAKBLAVEIFEfHPHGLIPQAPDEOKCWEQL]IHLaDMG@OQGhHJIJgMNHECNBMMYXDIBQNNB;UFGGjTFDV??FBWHSGCLKBFGIGH>MPLAD?JWHOAKTBSADJWPTJGWEPW;GBGGSPCJHGELQJHIGHfCOCMHDJHAIHrNII?X>J^@8JDMKNGEABEKIBBKNIDMFFFF[MTKOU9g3DJP+L]I<>I=9FTYO@3MLTHYQ-`*W^6?M;K36GD?G*;ZNI@FQ427_3KZP/DI?MAGY]G4HBVIMFHRS=MDAF=d@L_M8=V:?DLh=V;]IF2>VB10P@B1JBOJ?D9X:SF:?[ZX5O=2@G6?M@HVHD5M4,>ZVkEF[6VXi]6.L<715RO_KAG30WJHcOCF/,CM@JDC_;WADc UE\F6BF7RHiRFBOIXTCD:C_U:VBH>?B37A?K,TOCTBEIGIQ?IB>D^?O@KSVWN-A>I8IBGVGT.BN@Q[F5,K^RD7}[@^O@UAN4:OKH;bJB\CUI3Y>47&M@ICTMMFKAPKBDJ=KMG_LHMBGNRND@?XA;JNPILHEB?MMK?RQOWKMLKF:?MMJJIIJWNL@LRE?MOU8OTLHIDIE:];L@=LNRQSLSIIPJKFEQUMMIT=JSNIQI>RCOdKJH?F=ZVBKCRHGL?CJMGFBSNMFH8KJGHDQGKHHLOVH8NKIOZRTLMFBMB?/OIKDXQXRMPRWOBPLLJSPFMOZBPEKMOKIB8IKMRRFFRMFGALO:NCHWN]G>KRKKC=7GCHKNJDWKLBOOQEHCG@GIR?PQXJEFF>H?VI@SWKTGKNSEHOMCIEJ@J>O?DRSB?MKVRDPHJKBK?EK=RNAMCPVAZL>>NANL=KC>MOQEHPJHNGTNMKPMOAKC]JN:AUJGIFB=IV?]>PLAVLJPGOIENIPHKSHCHKOEIGGMCADO@HRHS=LE=HHXFQG@LANJFKSGCQTGTM?RNBBEYMMQGPYM[Q=AGPPB@KETFKJMHZKONCPPGJHFJU]PGQVVJ>SDP>PGDKJNDBEIFTJRQSKLNKANEhECFNGNK@EQGSJOTCQJOIMcAGH=BTBJI;PF=NGAF=yEDGVO=9CDMIOHHRHDKOB:KgDRBUnRiOPKIRT`K@UEHVEGKMHEHLKATBPGSHI@GOTSAHWCE[IM?OIGPJRCXQM_KJPOMPWG=GIJEGGFPGKGPOHSDAGEERBgDJBLCiMKRF9NTJ[FSDFL?BBJQQHORPVNGAKMKZAGIKLDHOFPIYI@DIQCDCP@J=OFIXNNVWK@OKI:V@7@PBRZAE?PW>BUFEMKPHEDLFBOMAGELQN`CHCFMDED<=K?MIHbFBHEG@MOMFKC:CSM@OJGIKGTHIJLIRGIGDSRKKRAeJ?HQVFNHNCHJ@ALFNJGT>E?JOH?MKNTPZIG]=EEBXHKJFAG[QDIZKTFFCJLHMIJDKUEDFJI@DD@DHGIFALDKJGAIIHRDGEMRQMB7R@E5CGWHICDMDGFH>HGICJDJKHIRKO@JLDFECIPDEEHPKBGIPGE?@E?GHFKKIJD>C?IJMMEFUFVG;DFCLHOJKD>FMO@ICFNPSF=RD?HMH=UGINEVJGG[NBKPLMLEHG@GTJJ9OPCEB[DCHDH>GKFQROFFTIC:H?OKPLMMBGAAD_EGCOEJSSuF3LEIKKI_IOC?9JHWSEM8MG>XEZBfESQ8YFHCKQE?LABEHQGN$SIJJCTSKLB;JPLOfCuBJ6CJJJCL@M?@IKJ@KC?DPHKISQa:/KHhWNKOSKFOIL^;DJDWoSR?FCS:6pGOJCLMJQK^BBBTFLAF97pHeCO=LTOI6KISWKJlArA@PHDKJ8?KGW;B7KUKNICEWACBNNPKLIROADGLFAIIM?WKQKLNDJKHGEHICXCPGSMEQFDENIDID>wITMOJOB:J@KQ_MK7CJO?BDTCJLOFUFFOIHBDILVIJPKHJKDMJF[?M@>SL:DS1KASDLDKO@LEPG@HDOKICIAT?ONNFDI1CNA?]OLCPIS@OHMT:OMCDHMMS;DFHQRHRGGVFD?ILEOHWLCOJzKPCKC>LFM[8IBFCGEKCJO8KFG>I>KCB0GHKNEBDTKWHOM_DFEH=UFG5@EPE7MIFKMCAJVFXAIMLLAM5VJHF\ELP@PDCJDI@UGACGR=CPGNMM`KMNQW^HD:P=WVHHJ;YICI>:AR?D@^EHZKGPLHJCLDV8SOEKKIQP4HDaIkD:dIFFLaHTREPQD\OA\WXVIR?SWjGGGDQTA8PJTM3KJ@pQSQOGHAGIFEZDSOXW7JMJFNMUHNfD>JECORKVEM@QSQTC@[JCD>X=LAQCJ_H@ZP6HQN@Jk=;2LGJDRQPHO?UNVOQOIWRR@>GNFdNDNH?\VHMSQKKDAP@PMEKRGFN8GCDBLJEO@]K[MI@IFMI`RCKLK;TBB>HBVI@PDFMDRN]<>B?C:KCC?HQOMFKGGCSHLDLFJFDOMCGIRGJPKPJE?IDSIHIHFI>9GL@EDG?IJJM?HJBEDVKBRKHPKIEAJLCFGFKJO?KJGFAIGBCDGJFGGLEP=MEDKLEL@CIFPI?JC=IL[RLDFLBJ@L?HGNEJLNXLVJEPCT@CCFHHBKJLAMGLDAFFDHCNVK6BIFLJG@IEIMLGIBFLLVRLFAOGILD\HIBEAJEENO>DBEFOGBCJRGHCLD6LCIECM;KNFIMYHAID]GJLCKNAGRCRLUJCFSRCKDA?OIJJOLETTHFBMDIEEEAHPFZ@DB7FIHOIMDKNG<@MEJJKRMDJOTIFJOBLJLHAY;EBPNOG'KPLIZQPMJKRQWFALANKFEMQEZGJMKJT=GKGI??HCMGEPPQDLV[HXKHEAFERZQD?IFIWOIEG^X?IIVGRVH@NKIHDJJTWFLITMIEEOGHHLWODJTPZDEBHC:QVKK2HVFACQSW;VCLFOJ>EINFILFLFNIEJZLCDGNPFIV?IYSBNA@IAIMLDLIG8\LJFPURPQEDLMOLH\UFNKATDM]DQGdYJKSXGKEPJKHHNJICFOCQNLNGEW=[BMOHHE8PTZBKPUFP4WLWEGANOJILAUG?UXPSFKEJGYPAEeLSKCKGFL?RZGLTCMACO_;KKTAEMHFANMW:LBM\KOPHH6OMPG\MVJLJAGNUDHSGCKJHOIGLXCUU?HOVVNGKIM]HXOLaIBDGFRBIBKTH?@SKFJJVBNMWJSRLFL?LPN?NLIPHOJ@HGKDETIIBLLCDFPBOOHXKVTEEITKGRJJMFI^@HIFMTJRKFLFAGGLUGNKERHGRTIMLBG5>YXJGFEGKIF>HEHOPE?EFFELGL[SRN?QIDCLUHMMOMPBGHMQFOBOLMGTKHHFEEJNELNBEKT\CAMNJOEFGX>OR@QNGHBFNLL:L9VJW?OMDIKMAVHQJAPC;@KJHLEB@NOiTK^IMKGN?IQ>DLDGIQBPNP`ROZKLLJHM@KWJJ?C@FWP@UMMDJGOA6E>IKFOGGJaZMEJADYHTNM?IKYKSIFEFQDTVlTNFEHDJBF>B;PALLJQQLRPDGCHAHJGIFCBINBIMD2CSCJLEPDCGRKWTAAIPUCIFADaZMH?WOwHJ:YPJJJ:IHUPJTQUOJMGP@I[P@AJIRVGFANJ?AL=HNG=FMHXEGK@L^LLAL_ITCGJCZC=UUMcBEHMOHDJENHVJEPM@GSP?KRO>HLMNJOFNMSGFXSJOFEIDMISSOETXZCRFFJCNRJGKFGEVDPHUK?^MSLC[EEEJHC?bHOGGRKFQISJNKT?LONKQIAgIGHGPCM[;NALQHK>CCIOLTHDZKKQEIFMHJC=BLP>SMZJICLJIDNWKWBHLNHMPIRIKJ`EOKMGHJLCJGHKCQK^?F3K@R;APRUM@UBI;OEMLUNMNEOZOFQIF?DBB?JMCJCIIDJR?GCKJHH@YS=RVHJIOFG9mB@EIDGGO]BUOODDCJkEN@M?@AGLBCCMUHBDGBFuGCELHG7TPIHPF@EBDHDLGETE@BJRKEIVGDEGDCGF>IAOI5GLZ?ES0=CBOSEFRXHHU]JFP>;IOHBVQDM@CKDQHE1FICHBFSRBKICFK_>F\BBB8>BD@EHOUAKHKAJM=HFB=CNOOTDEHM_PJKhKOBL@PFDG=ML=IDD?DVD=8DOQOBEIDLWPZI>MHOETG>f[OA?9>GT:GLGA?EINLUIMHRFP@F;IJSFaBJMPUEPBOvAKIH8U>SOHI8CXSJF>IPMHZ[D@NRHKHZ=IC@GJaPbJE:LIDN?=GGVF:F2>>>@@JDXFD;>=BNPGGDBCJGRPJEJFK>HKQD@TBMC-IIRSAEQF4JI>XNQJGLLFCIE?RMDEDXRLF?FP?PI@RFA?M@E>AGGLBPKPG@I?EFGFLE:LLH?CILEM>CB8ADEGWEQQSIJCHBEHQBXDJ=GCGHAKGD@DBESEL7A7@FGFMGU:PBDLBGGGJDLGW@BF@BJBJ?FLK=HHCI@B@F;JHLFEK@KJGFCKALKFBGGEJGKJDGOLHIAUEKIISEBKFHLH?JNLO@GAQPKUGJ=GXOOH=KOCIIIHKMKSJ=BRDJE^CXFRIFJIJ?GPHHHKNHOAQETGKLGCKHOLCNFE;IDDAIRONIAEHHKJG@SKJGGNOI9IJB=KKELFPJF=GFEHIDYKDDNNEIK>QIFQJIIW>MJOIJLJ9IKJQTJLQSGMKTMJGMLLBRG@MOIKO6OHISMENDOJJANKSAa@PJNFMIFKKAPDGD?WNEWIDLACRC>G@HfDK@:K6BT@KF=NW?F@IDGE3UO9FILHTV:DMPGDcHEGAJGOWOPMF?PO=HFGGOLAFNRM:D@HLC=LDEQZGJ>GCA@O;MQWEHX?FBBEJEGHEHH?RJF]PXHISBLPOG6?A]F6PEL8MNHNALEVHFMIGHBJN8EH@=LILZPEAKLA>XC:S?TDI\QHPVUU]_KOH=CK@H8ERUH=UOVSSVDKTQNIGQIAPMLH^AMC=PIFFKQZJ;ZH?JSJITF=JLJGUD>ENMVSPUNTPKMLHSAHLNQILM@LQCWMBNRTKI?JQKCW_R?JFQJOQOTKMMQEDZOCNTID]EKNPIMIGLUAHNHOeJWEHIJGAVJFLED?HGFZKCVDU:DAVN=aSPHT\GQGRKRLTEKQKJMODR>GI8SG@NNAI>MDYTJN@OXRQ=AKKNULELF;MKCQJ8NJXMHSJ=TROSQ[JU8EJMJBD:PLPRGCXIGDHVLOGCHQKON>IESODRMEHGWKGIJCRDPONFHKVMMORLDOGGSYGRGTMNNGG@KKJSDOTCNBQFNQSYOMFPHVEJSELQPGMP9TQTXGOBGHNSNWIOJBRM\;PHHENIU>NNQRE:IBUIOTB?ESAHP?ORANLVNIIXIQWTOPYcKWRIFDGLNKPI>KNRMKISJHMFN?MP]C@HRAM@CQEDIE\EMAJSWREAGFDIKJELJNGFJQIIZFWRLMGEHQOGCNXJQJIP3@=GJNE@M>?>JRPD@AH>FELU;9F6OG@DMM.KB;XJFAGHE@I;GQPIGFAPFA;BE>CECEIO=J5KKCCKIO?C?HDIHDNG8BFK=EIIJRE>EK;iIPJDMQQ9K?LGFQFPNH=H@KG5D?1J@CHAEYBNQ/IOJ>CA*MBCJC4H8C?LCTBC/DAHA3A=D?ML>KEMREGJME8DMNLGKKEE@QJCZ@EIPED>,BZNADKDLJFJIE3WKMJL?WPO>SHJBFEGOIZALYDPDKLF>?GMWVPEVSMFJUBJIKLK[OBOQNRRLJLNMGKKCH`SBUNCVC_MMO@LKHQF?KGaKSVFIQDHSCd@DLJ_XO@KQEZNIX?PNPUIXIEXPOG9>EHIJLBYFM?aPMDBOITFAGMLOKUJEEYLMNPGQJLKQ\FROC]EAG@MGNGCOJCKVLAHFGCEMRNH9DGR9BCk;XaM8:FI?EFOJGNH?]HGCMPDPAKWC@WHNWNHIQOHJ?BENcCYDILKMBLHM9GXVLBFMOSBMM@KDG?>JRHB@GXMJEIDFEQKJJYL@R?DEIL>GJYBCIVHDI@IQ7ITNFMZ??DJF??DBGFFQKNK6cIBINBHF<@LNNBJOAKGBGLBCKJJEFOPKMYFH@?@RP9HMH?@MEMQN;GHOJHDJIFL<@FJGMHEIFHCEPEH^@9CPGKSAHBCGJLLJFLF@FJVGIKJ>?IFJBJMM@AKVOGIPQBH[BFUII?XDHO?DHDDECKQ9EOJQH@H^NGKL@THNTACEGKDJBKPDKTQFUIEDAMWFEFRNIIJRK?=FMSHPFIRGXAFU@LGNJQGOIUYLBLLGDRJHIGAKHD=PFL_CJ^UTIB8QLNHGBKJRBL?GKEAEAVMQGHMWIMGJWGAJJILGKRICIUYUDNNKKN?ESNWLJSGMAHRKJNWPS7QEIYGELBJJOGNDA?BBDFKAhAOKFGKRTLFTNPKFEQBMRLKRQCBPKHFBKAMRGBGZMI?E[CPQ>IHCFQ9?GHI;IJXNMGKKB@WSMSCQD@LWONNTODHETBIIJID?GEDKAEI?VIDEPHGKOQLKR>KIDKJRHKFBK\GGQF\KJOCFN7OG?HHONRLIBCFODNATWECK?ELNOL@UTQL>KBIMDJZH7SMIIDDIUCJDUMXNJ;IFIGLFNEMIK?MCR?F_JFIHKMakKLXNBJLJTXRCTHFcGGGF68FHGMMMJJATQUFOKQFNQCXICR>HHOICT;PQHH?DIIbNKKQCQOEUQCLQFVMHLCKH?GUJBAFMA>KGJLSRUKCCAPQJJHBLUIUFJ=KAIN><:PJBSQSLJFON:M?EOB;?OEFCTJ_DF4MCBMVSG>EF>TYI;ROH;W@GA8OOKAP@NHH=MF@I?FEHLKWLJJFS@LROAaE:GJ?ECC9T;FP?LJUL=MNDMTAHAL@VANGeBONFAIUGXLK_>FDaCCf>NPIGF?NC?HIJYGCQF=KJQ=JFMHVNBEGC8IZJDFILTH]O[LJBCDCDDP5D5PXJNJFOBER?IHLOMDWICKHODHDLL?JIG@IOOFEIFFKL^MDJIJK>NCM@DMLOKFBJENXSNJC;Q]MFHYM;FJBHF_GPJLILPHDIFARQIIV?CGGMN=K>HJFCMC9?UK?EGLIFTLALNFJGORITCIJJ>DGOTD@DRFKGPHBKE?M@JHGULZLII6FOLDEEENSDJHGLJJEK=IFSJH>LNNGV>JJLLF[JKLGHGFRBHKJBR?FN>HMNFGTQ??NAOHKKN?OHDDIOREQODJ>[IIEJGVG@@DTCIKCN@CDMXOM\UMWBELMKEF>CSP?SGJ=SKLHICLGNHLNH9KHNOGTKJGLVLCJIIIHEJDWLNNJFKSFSWLOH>IMII?FHX:MJKF[EGOIMCIHDOLGBGPNNQLK^DEGNQDG=JKMPAUH=S@MSVYODLEJI@PIHLJNMINRFI@IOHM<=NVPXEONPNUQGGJEEJKSKNDBFC@RJEGPJ@ZAOOQJNLLJPKIK_SMGMQKFJPMCRMIKDULTBHQMK@MSWFVG@VQHQMGXHIFOPUPKBKJHY[DKRJERFCNFIXJKIMHBEATGKIOOCL@IUALFAJLIODDEPDLIHIGQCGKKQFJEJH?QNOFHEKISHFNEHGONYGMXIHENBPISFIEN>ROELRNFGQHHPGQDBPQMNLNMMLLLLLMEMTPHIJDJJRSLFLNAYCDTLTOHDJQALKOLHJAEKADOGIJACNKBJIFLGPHELOHINEMIJNNJROJKDVM@VAJLFPF[@T^VHC>DWKEFFXNONJKeN\NQZOIKLGN\STYTNPUPICSICFFQFKPFIYFGRCRNJWEJJWTCHDMKGJCM\JOFAFERGOL\CLOLP@K>VSAXQKQGFKWJLNMI`SIXIQKDSNPMJIROCXECXD;MTMGEPKEMSdLKJH[KNJPY>KPOITCPJJ>PVJHPNQJQTXFUBHELMOGRJKIWIECLGCMUDHQGJMPIHOQNGSMLGKOQG>QMMMsJKVGNHAKAJFJDSOFKNSJJJQJHJNKFFTIJNOG=LFETFHMMPLVIBFHKIECVEJPNOQGSIIBJFBMKRLGRGHDFFOBXLCQMF:=OMNQLLGCJS;JRHK;B@MIRT=ELWQLRXRGKCLBARU]LKAMJJJL>MO?KFPMAGIUAPNUHU9KIFMXFJWKJIBIAO@GGQYOFdEKJIFHMTGQTKJNOOIEODLJHLJBILDBEFILNFDFYAJCJMFCDBKBPHDJFBCA@>JQKODDJ:IPBGJHG@NBGLDHSCOFELBVTIFDT>AK>LKLDGNHHCFBGKFBDF=GS?NKCLFEDCLRIELOELEFBG@IEAKEAQMIFIGFMDEBKECPEEKAILFVGHFNH?MFKQGSGEGGNANIOSOSDAQJSLHJPBLN;JSCCH`EL?GNRKOE@JKGCHDQIDR46HIDJRUDRWMHSLKIS99OQDIGP\@PDLCOEADILG@HE=NNEON`LVGKQKSAILGRFZKLLSQQNV>@BAIJGIVBMNJ?LGGF_FKE=HV?NIHPIPW6QIUMT=JK:@ALDJBDGB[GPUoOCD?KG_RVJR@EDFJGHMFJCFJBLK;BEBUJHINFTKQDJLMG7L?W;?PGBE@?HGDVMJJUTMGG:IDGSHB?ENENBPKLKO9F?D;?FY6ENZJ[M4XHHH=DFHNDfQPMADALFBFDB>EOKL@HMALnGRF:UM]?IF;D8\GJNLIE>HULC<4CGUAPKHA?:PeM==FKDMW`B?GKCBO@HFDJIcKQCMQ[XPEIIBMUTF=@@IEANCGaFFBDONSK>VGLIX@[GCFIDRKIAO@PE?ICFDDLAPCJZMDJSFK=CFJHIJRK>K@MJCAHO?AILLJGNNKGOJ=JHVMLL@P5WHSVSIMDNHG:LJDBMQQPDO]CLKBLDPADJB@GJGJUEO;MB=SJIOCDXQQFISCECDFO>FDCQHIB^F?MAO?TJCLJG[DJF;?C:DLHL=PCR?J\E?@EJISLPDT?ES?MKPJDBRQWKQ5EVWHD_EFKIDA?KK>EGKGCKDBABGNNRNPHM@TFHD8GPFI@F8BDIDLHP@PIFTEJTNGKB>QPGMPBB?ETC:GBKB<`J@ALMKOPMZFWNGFI@K?EFL?A5QCCIQGEHZFPUGUFQGKBN=NICQGSACCN@O=PGJGGLQ@KDWJRLCGOMJD]YNZ7IGHPLFB@EPIJBVCFL?HEGJDJAJFUPFEBCJWCFE?EIK>F?OEWEOMA?A=LKOH@GQMTRMEFJPMXN>WEKJIGPLGE;KGIGMKTJOQ@N=GJJ>LHNDHLLLCHM<_dBLB=AIDRIA[LFEHIE@@NOQOMCYKK8KOLQUMF:JAPHDJA:ETDDSIQGJESPK@LYH=BMOIHOKFGG>SLJ@NO^DEFJLJKEIJCSGFCSM_IZICWKCLBGARHIYJ=DOUPLO?KWOK?LW>PMDIILBD@PG>SLGNDSTDOF@I>NELDFiIF@G9JOAIBJR;PKFoHBIJ@OYGI==YJEX<@LKDIe]?fGIaFF>EBBHGJCE?NEEVD?QL;7ilHJNMCR>XIBX:CNFNKG,@OB;`NbB>@QLHPDGDGbIO>OD\ZK@AKMHUMBE8ANENAJWfDPJRPARZ[;DJNY^;XKC[CSYNFIKJ=L7PEZVO7CCKLDMIPHIGHXG>ANG?ITI<\KGTHHMQNJLLNMLK9YTEKHRa[AZJY@DQJEKG]NG:GDAIPK8RJSF[BEKFBBN@ZGCFFHAKP6L;FJ:IHKCEXOHbQQHCF_J]5XfFDFI=TOFNNALLKZMI?TWb>UD[GHGBGMC?>BEFOJV1IRBCMR=CGEQOJE=DF7OGA>OH^I?E?`HHNcTRI=KPHH@UK@NLL=JL@1?DQMLPXQMCJ\@CA\FNDNFOLCVQHG>M?KK:YYWAC5?@CTF?PQ>DPKRKHJA\EHHGNLADCBLBOBHLR?NpC@M@PAGHL@>IMEJe>EGGbGZKOSNPOP=OBNEBJKKITS>MHN;XJI>JFPJBCHFHKKNL.OFGASNCOYPGQCQIBJ@L?LFTINAKMDGFYEGF?WF;@ScTKMAOFJKQOUP?J;DJHYRPF[QOGJLEBZNUSJNISYNABOJE?LDLJJUIKA`LDTGHFRKTERXBLNIGTOGK`JMIDRBO?EIMZHDYIGBJFEINDEGINPQNI>MRGOLMIJXDG;F?QGLHBKEFJKKOJN?TLIKJIGHJL=JAIKBODKOH@AML@MELKDKF?IQDINIEEOJ@J?>PTKDPIE]JJWKEJXIMFDNIB=HD>YJMIBNAOGGYJREKGAHEJHcBOCOGCSBFCMR@JFGGPIG[BE>JIP^S@NICBHPBEEIJJFCDJMDCIKG?IHPLKEJGKFL=ANMLLDPD?JMOJCGK]CMPQHKAGLMXFGDDXOJKFIMJ@DIGNG[ISQCOHV=HDC?Q?EDNCL>DDG;C=GGLDM@ONK\DLOHR=VI>C?PPNQMHKHGFL@VF4EFFLKHBGK<@SLHG8OABPDJMESFG@NFG3HQCJMMhTHGCJEOFGHO<9DI>CEKCFOBE9HLCBRA=IA@TJK?QFGFSHIFJVNL=GK>D[JLUEFGFHJCLSFHFJ?O@HOUHOHQJEMGMOGNQPTHSAEMXISJFNFGPTOVOHMJIHPKFMHIOJ@GXQPVCAMWYGUIDIKQLHISHOMCOHJQIJHNSSV>KGLLALLMKIKMHINMHSJGHDPJK[OGLHHGKOHBNTUFKTGPTKIBDISJNNNSKHJTPRFNENFKKDSGJFCJOTUGJ[KMLKYMJKMGONLCLIOEHKNMEXSKNLIJ>KVNBWINEBMNLOGLQIVNJFGD@LKMMDK[HP@FOHFKGDCMNSNBWJHNLFLJJOOSFBHOBDRDWGATSCJNSCKNKNIHQSOUSLTKMREO=PFFUCLILBVIHPJFHCXLUOKMQDORFGNBPOdRVREGMJPCSGKNMGWHIYJE@@GNMMSISUQXLFWFDMIMEAJMFERFMEGPHJRJDLIQALJEF@@HYQCNDPPEGO@OQXNNIEGHNNH@VQHNBMEZMIKFAMAKVDIDEC@cTK@GHH]DENCPDBPDSW@[OKLROEFTDBE[PRO?RUR@TUiElD=EOJGUGNCLHPGT;PH>AOKQECCFE?IKSMTKRYDMEGLHTRBLILLHLSHMFEGLEOJEJISSGFUMK@HKHGNIQB@S8IJHH7[NOHH=IKTIGIGHHNI_FCO?LBOPHR8HKG?AXNHTYGNK@LIJRGK@JJLHSaDHYWSFSLKBGKFG9LIPOBN`HPEL[NYJQHMKPIFLGKRMFBGGOHOHGLTMHNLIPK>L@PGEAVENSKNLMNLXQMRC@DXDN9QGK[D_NMLI@O=V@DBPWF@LVYA9UGM?>MA;BM=CLFBE9DDFD:CDGGLEKL?Q@BJMGA>PBILJ:CE:>EQE;I@MOAD=KN>H@BBALC>:F>H?L@BCHK\Q>DD??EPMQKF;B@@CD=K=IBN;=E@KGDF@E@LCNIFODIGF=FEJ67>IFOD@SENJAMGCJNHFSBNS@OREOJRS4NB;FE;OJNKFHDNBK@SLIGFQN@C/EIKRFHAOW@EBDK@REKA=DMJKK78INIBQOKLFOMPLKCDC>J?LHJ58AEANF@O?D@CV?BL@KM@[JEF;JC:PDPC4KSFBP?TJDHNJNHABEDBLCQMD@LLLIHJJIJNLTGCGION\EJAVHCLHM:EBQGJMHIGE7>JH@DCGQH<=LHJJTGCIDDJKFBXFIK=QEC>EICO@MNIJHPDTFOO[AGEGFH@MS=LEXFBJOHCTADHIU5DII9TBFLBUCQGKFD>CGAMIJ6DH8LFPGHHFGpREK?HKAH7?;>O@[>>WGKCFF>BAFGVDIZ8OKFEU_HGCCB5HMMHIGYD??CSBD>;KBGJIELJ8FA:GALC=R?F?DO9EUFACJDD>E;F\HDAJGK2GJGM>HPHJE[APGPHCuFNNJJFNNF@:?@F?KNLZ_DFKMG[@MUKKQAKKOJHT:E@LTAFSCD@B[?IDSNJH9ATGBX]O?GFMTBMU\F?a5EHbKDPFNR?MFBHG=QD>BKGMHF?MR9HFNB=[DGGO=JLOLG7INJKPH^XJOM?ECNJ=@ERTSKFGCLDFLDBHGRGHA;?IIOMD@GCJjIEGFSMJGE?IZV@J?MLEDCK=EHFP@RLGIPVHLINGIR>FCMA9;8FHC@NFPGO:QLTKPX@IIFL:DCJ=@cBKJMEeINCIIBOMmIKLOFUGILMFB@X>NGIOZGRXRGHKHGIRLXDUGLEEMPDJCGHLKMQOQP>CTMJKPRRO?KHIQANBIJXaP?BI>@E@QJK^BR>OTL=FFCGG=;OJ2URKVDDSI@J~<@OHMI^@MJI?;FHIIJdIJMDB>IIRANOBPKPE<=ELJIN[B:CHLKTIIED?>LEFUIbE@SC?A:J:_C@>QFJIGAWEHGOJNHFALIHGFGJOOHP:ODMDIMHC@@AQAELLIBCkK?GP7ZC?FR>OHJLAB?M3@QEJEMQBD=HATIFBLJIIOFM=JPIKDCC2GFDM9NQLOMIFJEB:?CJaHVGSDLZADjJDICGH9IR6PHGANIFdBD;@HFPFBK=@IO:8VJLIOcOK@9JM@CF>GJCLI=GIBPADIOH>JG=ODILHBJ=NFF[MKDPGXE?KJIOADK=?CKEFFGD9]>YOF?FDAWLIe_XGN@XACJJ=GFaE;@O@JOG?jVIA@EW=QN@[MHLPTJWMHFGQHLIUSOCLCEHKJUCKLOCh@MQP6DBNLAA7=C?=CMLCH;FO>ICJNDNDE[MHEOHDYOILGK@KGCEKEAIMNGICWTIGGLBXEP[:cHJ;UI:FPQIDL@CFBOJM9LHIFK\KLB@AHQJMES>HAGAXURP>KG?QF=HKKECEBHBNJRGIMG?AOBCPG>K^=>M?QSGH?8KHUGEXA?JPQIYVHNGBB>JHOAMCKJM@JIECVECDHCFMANJONO?GNLAI^HGNKGDTK@LCNSLBBfGDZKNPPEKONLO?L:\CKRJCGVCL=OQ@JXJCHPLTIBI@HQ=V>HD<8JCEBCCWMHDL@IHCPMOCYF;O=IRHHUKMGIDFDGC@BAE;SLKKLCY?XFaPE7>IF=IV6LKSMCFJKDJ9HG?;DDQJKEKKENR`E\OLKQJGIPNHOFMFK`CBOFD>A7[H@NMWODJQKAGWMLEJOT=R6LEKCCNWJhEJEDFCJHKCHQIAB@N?FYG?BG<=MG?<9ZLNBPKMGBLPKHCHIMHG.P:@EYJ6F=GJKJQ;JFIQ:CB_LP?DHLM=GHFHEFk;?FFE;:NFHMIP:GRAVH=IFw@FH>]F[GLK@HLb@VF9RLCBWKMBFFK=JFLIFTL;@BC@DHA8WGEV3JDM?JHOGJAXCGIH>YXK:DGUE4.GEJEC>H8GPOH?DLOsA=L<9=GI::G?3BC>KD7NHGHOPBLSR>OBKLNCHGCR?FK]>?^DE;FGPEDFdQGVJKPEFHBA>ECMZ,FHBE_GJTBHC8G8W?FFS:@IWRDSTOAGELVEON?PHB[JG3>NFGEMT^MIEHLCKO?@TW@/@BF8BHF]BJW?DH?CB?/@NON?ENO=KEAVCKMIIIPO`NHZKJKS[XIF?QNjIAXIBE@FIPEHJCPWCCCXQJ>[OOFTQNKjLH>IVHNMBQ=JFGSTGDJFHDHLFNIFHIdCI\QLNSHMOONLMMCGKDPCGRIPPATBKC@GEQEH>?FLQRJXGJ<[N\URUMCLOVQLBLOEdONDKDa@BIHIQESTbEOIBIGUMETGNNCI@EHMJLMMLSJDLLNMADFTRPF[P?]OMLMIOPMMYKJIL?MMOH@LLSLHfEETLEGGQRIIHJFC:K]QIFJHPSLRWW8OGE?SHMPUOFQQAG>ENLOKJUQMIHLP?NEKQJURNECVMKHLKJNFGdKJ>OKAZRC1FGJRLJNFOMVGIIMP8HIEMMGIJPHGPJJBIETIIBHHYJyOOC?WQjGUENGMHPPUHPPUREENILINTIGBSHZC>R>MNPDILTXNJOGTIQKNHJOSQRPQLGJMJGRAUTNHPEHWDM@HYF>OLfNGRH8FEOFQMMHWUGMHKKQLHOUGMXjCRG;CHCJJMHSCQEE[O?KLYKIhHVGKAOISDIIVPOJPTI=VIKAHUEXTKJGCBKPLKT@KQFQHKPP?MIFUFNUFTJOHIQBOQSKVALJOCNIXWHHERHNQPSJDLGGF>UDQDHJUMHQIHFAMEGMTNIDUNLX;PPTNSPEOE@IKVIOSBPMGI>R:FCHQVKKBJEG=_FJLPE>5FIE??KH@LEEEJ=AUFF@GCDIEL@;NEFMIXINKF@IT?DOBGIC>FNZOHID87I9WA7DN>FcRTPTGXOJFEHL?RBOCFZH:UN=B@=IDIEDN;CQSEJDHDI:JIIEBEWXNBEFFWJBAFPF6NGJJHNZCBGHEBALUFSU9PBAgTNSTB`KJWB>LBL<@?S,@F?HKDIVUGSQ>]>HBP=;;FQADNL4Q@>;;=FKHPK>:B^aAFLEVOMNJHYB@DL;C@YEPFIC@AAI;DCLI:D@OD?MEANMEBGXCtXAS0FC?D8KLW?IAO[EKN3LF;fH?OI@OC6CF>?L?EL?RQ@ICPGGPD=NDABF>?PKYIKFGHIHBA@EIJ@KDDGK?\BH;:EACCSERNEkFDQGUH9FBB^>HPP]=TJFJ[OFIBUHA\=AHSU?YHR>RLNCIJSIKIJDVVHKTRNVGLNJSJLQBIGRAQNBIGMOIHMMGMSLMNT[UXOGPHK8R]WEJIPBNILKHKRJEMHQJAGTOMPGRRMFLHFRJHMHKPVPKTKRHNMYOZLKHTPXHOHFAOELKMMMMSSESKMITPRNbV=VPNGQO;AHG>PHLIXNKHQSREOLTLPAKFCDFHONFRSDIDLQ9MMUFQMX=SLITNRNLSJ@NJICALFEDO=GCJNFB[HIIBJGFFLI\ARIDEDKIDCULJEKF@OLRGDEQIDQHOILLEGYXIMESNK?SFAFJCAES>LBHRDLBGEHEULIJFJO:EKBMEFXDNONOEBJPIEYFTJFFMACBHPMHAKICGKJELDDRPKNHQFMHF>ICJNPGMGIHcFEHFHMPGHIK>HKGRBNERUFREIGMCJQ>D?AHTM]OMUGSVKKKRR@NMPQMLJVEQKUF@K=<@8:KELDUBHB9D6GDBI=:>?8E;P?PSLK9QL8KQSJaC4DSBXF@FIDHC_H>RNI\JH>RU>E?MOY>;GTHEBLBiNG=CJTL3CQF^?A_9KA;6:HW@GFOEG@O?BSCB>FEG?IGAAE?RD;?HZLANK=HFAFCH>N=H:DDOGCIFHC=SBHOLT5P?9@A\;F@=JIQDMHO>SEDJJXUBHUCJIN?GRFAINKFI\F9PN9MDJRL[LTGBF?JPZAMR;PMA?SIG?L@K<;=PHUE=HGRT;ULO@F\K7KPQZ?HTBFQJH@IJJLH9N9SHIALCQ@OQNB\]HFJGJCMG@RGRJKAJMSOHFAAAF8DMCOK@X@O[JTRQW9R@TMH\KIMKFQJK;LE6TKMMBXPHIVKTJIHK]HIDQJQKRGTAFWJMNABLMQAPS>E@[EUGWJB@:KHFQ8C@WTLAIMBO=M3>O@>DGJ7E=FOLJNCPNHIONKSIHPM@@Y>ENCKNQNGHMIBMFKLTIOLKM]NQE^DCFE@NNKOGPA_L@OFLQEDQC>JLPK7I=MD@HKMDOPPVJDHIAXPILFHVEDJBN>TQ?=JHSMMQMMR>MCJPKTNNBNIYODLENODKEFJ@EKGHDI9FNDUM_OSGWMGLLFI@RI?KPPIPCRNGNNJKASNCGFDOQLJZQABRe@BNOIML?JJBOJCJMKNKKOOM:IAOHVDGRPHFMEKJFOKQJJDASHD?KFLONIPHJEHJFJICXKMODFR3FB>GJXK;O;IMDSEILQFLNPOTBHCQMLDRKLMOGOLKPLCCNKIJDE@PRGLAHHLFTKQNG]NNFLIU>JULGEE8TFF?ANLDB@FHJWJNKODKFMACZPEGDBBFJEHCHPT6ESJHIIDHCCDJNJECDMGP@HNHTGMKGULORMSKEBDJHMGIGHGMCH?SPBRDGSMDJFSICBCSROJNIN`MJQMLEIIIPCP>LJJNBKLEOKVFNKEEJBRH:PPDaM[ENRCMQLDCGGNUFRHGJLLNNMSLIG=IGHL8MDWCHSPUFSMCOEBBJHIFLERS?KJJAAINNMJHTJKKJHM[LGMIMBEHJIHDSLEKQNLUFITHLOE_D?GHIKUPBCELJBKLLAEGBHN4WMDDMUBU:HXDWLY:@VKFKFPI=FJDRICQTRM@FK@?JY@GA`BE;VEF7FMKMONABAPDGTHOEGUJHNHFLPKEMGUKKLNUENNP[USO\@JQFP=HDFJFDKKHROMWYOQ=XM8JICBAAIW?JTQHE^XCK@OFFMGEKY@I>GHEOQKALKGDMU8\QABRJLET>FTMLIAV>KCG<8<>@GL[CGOVWMWPKPVVW?RG@KXIHQJBJ?wHN[IKDACWN7KfM?AEWMDHB]ZEZQDMKOHADC`H`?ZGAF_SNCLLKOMGKNLKaONIL;[WI;BFEM7ULNNKGeOYKGRFCRE[EHYJKMR8SEDEiLF`@>MIAO@HEKOGhO>OBKGAMCJIM`CKGLMAPNVDMFNB?XI;GOCENWQLS`HHDKHPMZODOFHNLYCKLLGK\FLLTFJ@SWOODKFQ=QW?D0MNaHDYK9GJHEQ?D?J@NW@?VCIEDFPCVHB[F;OGKSIJX>COIE;CTFIIJHE>K>AJEM@LBQJQEAS>LDREFJJNBJHELQU@EDMBL4YEADBVOGPD=LL9EMBDNETMFVBMKDMUE7RINO;LKBKHOLMESANQIQD8ECMLRRL>GJL>LHBEMEEOX;FDEDOD;CCGIFNIBHJLG@Q7D:MO?KHHJC@DC>OI>EGDNGJ@B?KULJV=IDHAAH?DQFBDG@E:P?=CK@=IQNH=@MTMJ:OCNJCCFeIPX@B8SG?DK3MLLPIDJQBOJIMJN8FTAMMX^ER8HRJEDVGLOLQEHIMANHIIHPHHJIKGEJSDMKFOUAJH=WGDEKJPI?JHRHGALHAIPVGJHY?6FRJSSW>HIIQbVFTPX]OE>ILJPKNJJKIHTDAaDNJGVZD3QKJMWMDTOOSDBHHPNDIRJHJKMISKKGKRFcCM:dIM9CETJFLMVPKBJGbJUeJMPGJDELORLDAWHPYQFEWJKLLKCIKG5IEbEGMaFIVFQ?cS#DL@PAJAIKILDEGBA9GKRRJJEHFI=FHDFHOFRKKDRUIM@OHKFRJOOTFKBHAKTGM>EDKFGNHRHWINEPS=:QHKCGJQDJI@JFFEDGIM=NL9GFQGLHFTTDA>CKLGO:FKGBFLHIECTTGDCJFFKHLKE@IKJTEDJ=WKGHP>DTGAOD?FNNGHEABZEIBO;[FJA?@PRPG@ODMPKGNIBWK7BQMV`RCMZOFSIVEIKFHKORCUXEMVMNISIEP;MNGXM`PFIGZ>DSAO[SEBOCLNP?QMH9I=A>RCSFBCLHHHSKLHSLFPHVSG>QFFEKQOEAFRBQDK^OGECIHOO^A_JDSMFB;DDCIG@ADCB>DB@@H@IBYMCzGFIQNDJN\B@YAJ[KCOD6CBjTMENQNO?EFFCEMKJG^=TAJHMTFY8I=IDGTARwIKOG^DEICJJLERD@@FiOJ<=DHFFhJA1B@FDPLFDDCc>XC>JHHHHGFB;IoEHO?C;XJDFMOJIOJn=KC2X;XG<[=EKHLFPMFQ8FIJH=OENO=UTSNJCUJDH?K=?@ILGG_DFAQFSLSF7IOFGUKLGbJZHL@J>@KGNG?DAJLKCOIMGONPQCIODHEBEHKNDGJCHCeCBKOEILMNFMG=PFC^JCNWXCSJBIDE9BDO]GMS@@GPGKFJHEBLAbRMD?ULPHLMB;KGPILXXD:WMTADOWSHCGIAJDF5iDUJABPU<@R>RN\EWNKWQQMTNGHK@NZ?HLOKPN=NHGH:GaLHQPH>P[EKUHH?FL9DJZUBM[ETCcEABIEES^KYJYMN>PRQI@O:L^U>OWP@9OP:RHIMEBIHEH=EI>CDCOEA@K@D_DEQFGFH4SV39KOIM:B>PC:R@HB?>DKAP?LCDGDEB:MA9CHMDLCGVCAI<:FPKHDD8FINFFIJaRP?HIM=>RBQ=MIBH@HJGDANOLIBADDEJHH;EHM:@HOD@FGFLGCU@?@FEFDKN>EC;CUPGEKHGIFIKDLD]\EY?@AGHJtLIGG[LJP?AAAHFIESJ5JC>PKMMNHPCKIPHEDBIBFAI:=>9B:8=KNJCCVnCG@DEJFR;ODCOOG=\TRHLpMbQIIEQLQMW@QJHUK@ORGS;LEE1B@I=1H?FEKD_;IEDHRJoNSS>E8CI@ZKTNOHFCFK9aI_EHKGWHMDKG=ALKD9DIZTHCDQNXDJFIP?JCFTCBC@TAGEeKUQH4GJEE@K=LAHJJLHGTKCSHRHK]JFQ>HJG8<]QTMAMCCBP^@OCOAIOSETbDM?EFK?OOSHMJSDH;HQNFMISULHDL6P=[@IPGJJAKRSBVELUDHFFCNMJGQM:MKEOJKEPPPCDKCLZORKLOR>FYBFASIRZAJMDJ=QDSKBUDMCPJYLJPOQGXLDJNEOPDJBVFUWDJD>IB>OVAR?IEH8LGNNIJXDKLND?DONKUIMPFO=LSL\VGUIUDRE@ETE;OEST?HNOIBSEOLM:DKIOJQP9TNSNJAOARPTQM9HFNHHTELOT?P9@PFCAJJQ^RIN?ETBOKQFKNBHCWMPDMI8C>EN[MThGSJJ?ELNGEAN;GGMSQC?FPNHE@MIMSOHLKGOONGT@@MCNDAEBQEIFUCINEJC@BCN9IIIRPNL>GQSJLbDKIHPNLOVEPIGDNPOFDHGQQCHIJLCMMHASTD?BAI==EL>GVILIIVIJIMUHC>JC?TPEDJRIKN7MHHCQOJB>CBHNRFJIIJ_FUNORGJMFELJRKFAHCJGPK>BEH@BDJBJ?LKGIVTGFMDRJLLEJECHLIL8QG@IDTFIHILKFGIE@OMICQJN9I7XITEGLD]BGGFBAB@SESC9HMJLDVSLMNLGDHEKSZ?EWB<\FNFA<,LBOSEC`RPH@HCC:SAVNTANEOCNCEBMJJJ>D>3BLQKFAMD=G=R>CTAEBJMFOC=FA0FFHJBCDKHRHSAHHHQKMAKNgBJCFLG=FD>PAB^N7FFDHV=`ANQGK@R9EGCLHKMPR?NLEENXEAL=;?\HKCIPJKFF?>OAV;CF:AD>B@HR?FFAINHLTJMJBLBGQIE@@A=JPCAPBUPJHV7QIHULJJEGALPEHJFOAIHMLFDKGETHFJ@MD2ILQSH9TFMHFHGJIGKN6UC=KAODKAJMRNHIHRJEHEWM[EFENMGHFERHDEIGI:FMEKQDNFKJQGJOHC?TBFIGDSGJDIFOBFVHP_E?LHHHNEEWKJ[BRMH@FFCLJJH9UPKAF2IRDGMS9KEECOICJKEEHACWUQKGKS4H?H@KFI?DAI?L>IGMIZ1GDFYG?JFJDTHOJHLC5K8BDGIGGFRFFG?IKCIVOMBRKCNUH>QJUSWCPMA@IIFKKKDODPEEGZMJOHFG?IBICOHKQYNEICJIPUKdIEBEFMJIZAVJ`KMJTMELMIMJKCHI=FO`EGUDDWYFIQDJJQBGIC:ER@IC?KIKHTH]JBTIHKjRCGELMDCMDLHPHMUJ@TDLK?OK;AHE[D^CiLBEMIADKNPRCRGKHITJKLENHGJJTGEHDITHWg>lJEGIJLFM?HM@DE@ISCR@LbNPITOO>[EGMnKK?Z;KKOCKHFPFLREFLQPXHIGUVNNHUUIXOYRFVHBROCDC@JGWUENSGHSJIOIO^IFNE>PGGRNJSMFHNbXRIJSHOOBMURKVOOEJ9JNYET`^DJEHXGLJC?HJNDHKVNROQ\SRPN@VCKABUHPRJHUNHPOGCHKPF?JJTSHJQVJHITMQKYU9AOSMaKPEEKCLKIQIOFFPEAAMDRKSGSZ]WFUFLNWAEMLXTGK`LRCJMU^U8QBCOIM@BBNRNBNHJY@TCPVODEJ>HH^7QPIXGHUFSOIB=HHOJ=DHD@GJG\[YPBYMSUHCYV^KGH>RRGGHLHJHGVEA\JLEFNFLVCMBOSHNMOGNG?CSI[EKMFQT[NLCGSHI@BYFDQNEETSUDQPESIPM^HT?T\BPKLOFPUOX=HN]GGIHJPTNI];VPEUNMF>[OXGGJHF@C@HXUN?NMUNOKRTOOh@ND?ICMTGBHNH\LNJALABLSH?EMHOL?PHQMEbILMPLKIKHLBERU[@I?B?N;OFEO>PELPNSLI`ULISK>KO?HQL>?CZHKR`CCEESHGPLELIGVAKINHCKJSXIPHbIKQG>VL9FOSIUCHBPLJLMSMGLJNPEGDESQSTDIKRG?KHKEMTUBMNDIGLLPKGEARAEMLFK>NHRV:JCNKP@GUUPVIKWLJHJTDJGMIFB=HFHYKMQHFMMCPLAABVEPTUZLMCKKHEILOPKCFM?OJCJMSTULGNCJZRBSEKPJFLLMGAPFEDKHCMM?NML?OHDNSJMMHIODGQIMLJJMKIIN>RRBKEON>RGPONQOMGLKQGHHCNGQOQJ=IIKJNSRCAMHGIHJOEEGDPKDNLIKMFLQINDEZEBIRM?@HYP6QHXMGOGSRKS@PHNHDGJGKNCIREPUNONJDHECQPMGNPQDKHKNISNF?LDLCLILCCHMIYHMA:FFPHLKI7JFCNCMC@OGIKQFBHHBEINIECGKF=LEBIQEFHLIRIHF>DT?IYFMDHFJDO@IEMbI8KPFCFBTIQXMS?EIGIIGKCQ?ODIMJQE@NDELNGOEOBRF[FCBGGGCLIBJLWGDSY3ILCB>OIEHGJILEXFGCHSEGHLNDEMNGBKENJJMKDK@OEQHALKGV=JAPTMBCGRN?\UK;HNINKCCG<>OLFBQFNFDTOTEEPIHNDCHOJNJWQSUFL>BITOPXFLLJCEHCDEL;SOT?K@BGFDF?ODTUD=OHGMMHKGNJK=GI>DC?DOCSSLKES8]P=JDH]GHE=?HS@U8DF@`AHMGIMSGFFIDINJLNWMAOPNNDVTTPNUCK=NFRVHKN>ILIIQIKLLMMCEGFQK;QSI\ZJENRKBSGDGLHCUKDLTIVTSFLRD\OZIJENJELOIQWHBRHHGRIAKLLW@MFJQGZRR@JG@SPNOG>MFIKGLHUDIHLSI[BFNOO?ORRGISPBRQ@TTOVOSNMHPPNG?DRNOJ@XHGMIRCHQPLORAUD>NJSLK?GLKDIMNLDKRFKLEECKME?HLMRENRCDDUU8=ECPCINAMDHJ?UTBUYG>>EJFBN=JFR?BC@EFQcMX=AJUMGRM^FJEDI_FPL=RBHAKFDLKUNMHACTMGCVRMCJQELU@`?JNI=DNU@QCL?MEPGQ9JADDADMKKG?GFFSBC?BYWJHBCBLBGS?BETM_HNJLHJHGEOUMGYIUQT=DPHGAP[GJPTNGK?[VeEQLHJKOMSSAGFFCKFNDG=KMSI[YR[LTHGDHPUINHCMEOUKPDISEJ9IEXPANL=QVNSNLGONOMYJRJNBVGALGMQMGSJVKQBERHJQ@GHBOBJ=LVLMeGNEHTAIMJJOTVNO=V9LLSFALTERCLMLCCKC:FJDEJRWOKE@GJHYKDkXIVSLILLR@MWJSFPaUALFN8KQSF\W`FQHGFHFISG?JKE[KNALSUFWGHOFLJOSNMAUPK@>[HQMWNEG>URRRBLOGOQDSKILBRJBGKDWIAGCQ=NCSILTHTGM<=LSGGRILKKEHJMKOGRHPa6H[SDDELW^NLLGGAFOJHGGJDIKUMEBBFLCHQDLIEJHDG8FCGECGCNEDLADCBOOGEINJSBMGCLEQBFOKMEGBBINGKMGKKFI?LDROPG]E:I]qDVCIBPUGKM>JIXL@EFHLG>CCH?NRNJHDJMAEDGMULLKO@NIM?EPLDGEFGLOFNALLH@DIGLLHFFAI=>>?G@PVBFMQSKQYNMIWZESC\AOOBK[JMERDGI?FIGBVFNKNLDJCCW?IKZGGhEPLBNFMNKM>IPF@NCYNI>ERLEWWUTEH=CCOQ[?JUCL_SPJUX7NHJIPNND@AQHSFXGKPO=GK:GUIBQINITQQDHW;P=JTMMMLM;D=DNDM:=CC?BM;=VAKEI?FNg=FOCGIH[aJ6FRKMBMHUBJAMRc:N` BEQ>.:F?8IUBGGDBE^FBIBGW9E>IMKRKL;GECH@DLFLF>BMZ?;QYJDL9FEJ8?ORV8SKL?_[G@JM?YE2eHhK?CXOCQOML=TNH^NIFPNBGPHU^SNCGGACKIWMPFRFLFTALBBIFQERJIPJUSHPXVEVAFTMIQUMKIHELHOIG@AHIMEIKDLENCJEHMQKOM\IIVCL`NLDKTGPLEOCGBKLS@OKRLSKGI>PSOBFKUCRHJJEQCFFQQCK>PVCHBAGLFFRIH=DIL>HGPGDO^R\J>KQHVDKRE@HIVU=G?CIUNRI@P[GFIFDRKLK@8AQ7JO@JLJN8?KWGDCMJFSGHAJLQHHJNDFEK9GEEPQQGUKKSMGBGJ@R;GGNWBHUW@L[UHEDBN<>FPGD;JMQPDYUBECOICODDP@QDI\HMGOG?KIEMEDIPICKBIFSMIDHEIKMPFTDDKXC>IDTMQBCGOKLDEI:FIDO>KUXGIQOHGL;OVMHB>QHAHARIF>ROWON:D7NOUSPU>DTQ=C=BMJGCMBJOMJMFVN=+@AGCOQJMHKKCIMOG=NSG>KMLAFRNVZ?FShGJK=RIICLPLIMINF8HMLOgFSNZJ:RHJGRKqJBJFDVNPFPNJEIMVM@uSaLUUECFSASOH@IMHSLILH]YYMBPP\TEIQMVKJBLE=Gf>Nd7QKHLANH=\OIMRHOU9kKVS:RHEAVFVFG?RLEGMEMJEFERTmPFKQjE?OJWH>MII[;KNZJ[IG@NHG:>{SJCHO9JNFXVQCGMK=F;RtC_OFBE_@HJPNHSUMcKcWGRGHMHRNO8FIE[HQFHGDMZ@H?JNCGECJHLPFSWIE9GESRHZOIHJHAJKIQKDGJFcO>CEMAFPEQ>JNDMJALJOIKNG>L;PTOJOKDBTGQGNQ;LN@RKR\LKGJLBSL]LNSFEJBNRNQIC^AKIMNBMUMIJLTTIF=AOE=CYDHPALJICFIIHH;\CHMEFQIALGDDBcCLSJINDVQFLJWKECHLACJNKLLTQHHCIE]VGVSGYFEGBKLNIGOAD_OTMJCGKONBMBTCWFC@A\KNFK=Q]C@G?QBMNIBJ@P?WMAMGIWMVOIEA>JJRLKJLUBNJJHTRMLGLBMLMUBI=E?ENMPL>CEKDJKCMHUDITKKB?DGMIDKFLITVIFFPAKOQSTGGEC?JPNKLMUMO]DJKNTN?JNDAEDMJCLCHHL[SI?AEMKLHEKONQEJIKYE7LNISSBQUDJJKSVHSIGFLUGMNAIPJGKNQCC8DJHJ:JCCF;CUNHJRGEWSNFOMC?;WMIMGFFMMHVNBNN>HIQC=J;THKHQM\AKCWONKJURCPGEKLQX?ER;X;J]NBRKGILD\BOIDJ>=D>RCPAEOE?DPKHLL@[bRAGJPGK@DC?DNLEWFEGCC9PKILHbeGUGLN@FFF?OJC<^DM?SQSCHOKZQD=SOI?K=IAAFCQILDGGJHNBBFHHIHLEOQDFK^UKHEEJ6OKMVLCC=DDNHBLCQIGACHNNEP>HLONFKJEI?LU>HM>EICOQECIQHLI7CJELAEKIOAJKJJJE=LKOLEMQBVOTOIVMTJHH@QP@=NDOJPGNK@JOSeLMTMNJSFLBOLDSHONJ[J>FXLGEHSEJAEdK>JLUGKOUKKKYMJHNLEGQEAJNLCODQDLQLGFPRWD>MMPBSAFPHNKKQHDA9HILVLjIPLNGMnJRSWIDCKJU;ILKJFF=KSLOIVQGTMKHHWE@D?_I:IASECSPJIELEL@BZDRFAMTLQFGUQG?H=PIK?BRGLBXGVDFIOMB?AR;MBHZEFDEKTRSN?DIOBGEIAHPRMJQSJJUGZLRNFGH@VNFGAJ@ITPMGKPQRGNMI@MAILWDHTNISCS]RRHMTLEHLR?LJKSELMBXR?OQIXGLHITNHNSRGBTEPTTFEJJ@MASSW]IQ?IXQDKWIMBAVHMOCBHAJLOFFIKMJLGPLIKIHEBDUKMKRUO[AMIVHFQBHS?CHJEX:QPQHNGUGEMRLJIVLPJ@OKIJ;MGVQ?D:MHLCBJNP]EGEMB?>>HUAIAKGEHKLLBH=FKDKJHVPHACKAOKHNFPIFMQSNN>KSCJEM:DGQK6OKREIONBOGEKFCL?KJFEJGEBMGGVFPPEWQTBIEIMQEYG=OUKMKPFQBRQKZW_T8H;DSED>HPMVRKL;FHOFBBMIDCCCLH\HJII@?EL_^;HIPON?@AMDDOOQCSGT@CMVTIQ@VGFXJARLaKPa@FFKNSMOKBOEGEIOIL7CF]UEIIGBFHGHLbINEKY;C==OMGIGMBK=LJETEIYUBTAS?LOQKR_@UIQ>JOA=]MKNGTIMAPUIGHHKLEJPFLPTNCD@BGBGVHGAcROOVVMERANQKV;BQ9JHIITSJBA8@KBIO@LBM`DUCTWBS@KJHN?OER?IKBAJL=@FP@SKFLQ??BJHVDCGLGIGOBBESiDV8DASI=AAOGWENVBML5]IPOYRLM@MOMX`KHQ?GRNOFAKLHPOGPAIGMFKNgIKNCI[DBJLIMUTTNOMRSQNG\TM8\FCTDNN[UFHL\VN@CMMIHRQHOAJKDR;SCKG>MIFJ`WRI@iCRNMKFF]XFVARDGWHFJNRDTXNWZYNIJMKF_OGINLKLRTMLUON@KZCB@>EKHLFJKIELE@KLEUUEKHLNRDGO_NDEELJEHDGJMYUENKCA>SLR@DBUTUKGQGESNYPFGMPPQINII@YPZ=GT:EYKIDJJRPBKJQYNSGKJSGPRBEKFLTHSMXPGKMKJIB=GFTGOMLAKMNS>M?JHLUNTRSBNPHMJBUFVMBTGMF>JIDWADGCFENP>G?JE5>L>9?RID[GR@AGTNV;DSIIJD=KRMVKBMDMODGLCPbOIBSBT;DIDFBHJFA=?CQFSXF?JFMGO9IFAMHDIJTD?@JFPSLUH:EEOGCJ?LIUUIICJAFOQHEMPFE;W8NJ>_LAHCIMIGaHBHO;K:IWAJKFTJTGMKUFCNNI@VOdGE=@EFPEDOENDJORHDGAGVMH@@=@F;EPMEUKI@SHABFLIVJQKZ`ULT>?RQKHmUGd8BE0OOJDNCZPJYHP>ITCCACZ@MKV@MS@8?DBNFTDDQKIMC@ESGBSW>UEAT7IY@OdaDJENY7TFOHaXFVZQKKHNMKGLLS;HAR?EJ=Oa@\LHNL]QCMMUcK?SGPG;LKMN@QHESYGAA\TcW_^nPBY8MKAGAEE7QLSURTS]MNMEHaKJD^YIG\MRSJ=J\C=IHSBMNLFUHHCHO=LJJJK]VBECMTXFGIKIJKFXQD[HILEKGHOMIJNH]ONTPTDGTHSGODDUCO\OCPJHHBJ;GRDZMKdPBQ?IE@GRI=QMRTMT=NHBL[SVF?TLHO=VPQa4KHQOXF_J9a?FCCH\H?MKZUJJGNHGFUB6PYCKHGANIEJOTJLFCJOCHD[FIKT?N;LBOMII?V?MGIMJBLEWZKVEOPO@JBHjOHLNBALH=RDI:HHEVEAQHP:SKPHRPEEeB>HE_QHLAJEKVOZ?:5D?AJOGK?L<\N]IEWFKLJINTXBaBPN?KNVCCMQDCMTG@RIFL@CDHH?MKOSCHI<]SI;CWFFF?S?YP?IEEE.Q6KAZCEB[CUKFCV9=9^WFB[\SBESCBFJC>P>LHP^G6eG1BAEGH@?DKUQNHXBQQDPFGBJPLOA>HSUAFD^YMHNGL>UNDDRFJAO>IIHBAQX=D=?LKMVWJQa]RSGPKMGSLBt=`FASDNMJ?MLJDM9LDYEPIFGKCA4ACIbHGGD=^G?G>?DBDBB@?QIQFF`FE?F42SRLM;@JBCD<>K:?HQKANNK?RQAVHGMC9dI;LDT@D_G@MIAHA@SH;WKF@0MFKMMFOGHMV^>MEQIIUIEVRVTCGAJEATM?TPJRNMJDCJCWKRMICXRNPORCJKJ7@XF9RPLOYJRQ;MIHIRRMQGRDL>HOeTBCQRVCHFBEGCGUAIUUIJM?GEODOLHYL?QIIHCZEFRJ?V;]KMKBPJKFLOJ^IGAHLN@TMJTKKMGRGRLCPMKIDHKFLIIEE[JCHFHF;OKSRDJFGJINE@KCAHBUKSTOU@JKAQW6RRJKNFGLK;OWHNTCTNLBSE=PJOTHUSQFE:S>SWUOQSQDKFIPRADEGSPRLN9D>DOTKIBQGI5MGKG>FFGUJMA=HPDAKSOUICBJ]=QIQMDMKJODHGAKFASDLj8MLEINJB\HITQCSBKDIJQMaIJVCIHFOPK>BLO[CKA=GT=G8IJ@LTOFKHM=RM6LQ?FFJSDH=F>CT?LV]HEIBEGF[:GKLLHKTIL]NREINK?WQJLCGO?UCJEDCELGKCRNQQBFNPMDNXIKSDHMPYhEUKQELMKFJPPMUMWENWQKMJXHMNDOLOKJOTSUN?FJ??SIGCMOVEMHPKMFSXIKEMJYGTPGSU>CJLNIXEHQKQELMJOFLIJF[OLTRLIQHIUEFOLLGDLMJWCLEWMXN[JPQFEYCB`IMQGHPIKMGMPLGCLTEHLEGRGNOJVMELJGJEH>KN]EELHJ>HOJFGUGH?COKWNSONKJM@ENTN;KIEYHHCM>T=GJNVMECII>ICSHAOJCJGM>KOFXVDHDVKF[VRGIKOW=@:IHHHBM=IABAHHBSKGIM>MXAJAAYDLMLA:JFGL5UARGAKIVHKG?GE=ECH;C?:FF:OPPCUKHBIEHIDWAFT>SI=BFKNEC@QVPP=BGLLLHN[YCPNIKJVSNNKESZITEKGGEHLIGDGPM?UOU@XUKLCECTGFDTIPMGFKCNJSTRUFHHGSDSBFUNGMMRaS?OYCCJGJTLDM:FIBKQMNAW=MBPL?raCEWCHOYOHHNHF?MPBF_KIPDJETSM?H\JQIKOKHHKMGLFGFOEIEIKIYNBHSFQBFLM?CLNLYIMR@SSPQKM>CNFQBFC@IGECEEKDVENMFSDCJBJDIIJ:HI?@@HIKDFEJGJB==PL?JI`BHCLNKEIHNINMGK^ELDEGB=EQIBWLEeFIIHG@DCBLIJIGLDHG=IM@JCJF@LK>DCRLFIKFLJI@DLIEJEJLECMNNNDIQAKLMGCF><@K=DDKGBEBUMLFENUQ>OK@E>CY>LLKGA[BLICEEQOKP=L\KIFHKTILRKE@HDC?IIF?CJOFGEH:KELIGF:9AJ?KQ:LAHDI@OFBA=GKL@EBHCHKJHHD7HJDJNG>IASJREL@J@I=P=FE@EMEL?D@CANJ@PBDNCJEMG?EEDA=L/LJACMHBK>I_EJKMBTEDRWI\FBEQQJFOOCOLGMFOJCD\HATJCBDIQFIEERMGLNAL>IEILLQIXNDJE\TRUDOCGJFYPHHEMLAGJIROGMNgGGGCDOOPLIIEVC>D@QGIPINMEMFI]KRMTLLGEROEEEMFESGOJLFF_NTQ^FFF?GHGLKHFOGIHROFGKFSBePIIKFMB@FEiEQHCbBNJFMSHWMCILKVH[N]VPIL8TCM?CIPSDH=JiHHNIXLPD_GNNMFEHEiBGHVNMZLGOKIIARJ@GSJGH`CHTITIKUGHPENIN\HGAIKDOGXKRNFLG@XOMZGMIJ=@>EDIXGARVEMFYYRQVJQJQNFWQZHQA@PMQK8T=@CR/JJC;GFCCC798KB:GBFACQCQTJW[FCOXQ4\VD@HI9[8CFH3BCDMOAA\OO<>7N??UCNDYD=5FE:9DB@O5D=OI;:ZCUN=MHAF@8>9>GZN;F;T@AEUHM@7>M3OC9>HYLAA7JL><Q@M\^OCPFT`=CcAC?>@APFR=IDWDLE4ANA_LCN;?GDaW;A?;gJOJ=FLBL5I?KEL?ECTEL;M;;4O?6>=BBC:8FKKD?<=>8O=G:IIBK;CP?NKOF@NIFE@?=>J=E=?@IFIT>JL8=CFH[FS=KGBZOG@U`?U=EKE@OBNEQLPFGEDIMIGFKCFYLJ[DPFIAFGBd9CIKIHKLLNOIMYLXEA[E=@BFLL7PHMNPJ?KIDLOJHLNNHJ@DMHSGFK@XMKCGDLRABMLNDDRKHUGEDTIK@DL>VJEPBLIF@YDNOT@LH=CGFO@YM@PEGNBFNRIIF;?HCNRIGFNABJ=ZJH>=JGH;BIYBJFNDDE@NEKGILNH:CUG[RFSOPN@_ATSK]BILKRQCBHCNEFHCK@GJQLD?MBA?JLD@LF9FOEJI?OK@IEIJJJLDODGHRPMJTGWEKUIRLLKUEHRSQIPGMNMFEE=RKAGJIPODHQJOATMDDLN?GUGALE8ECBLLOEFFIPNHKXQKGQPQ=IJBGLRCI@TAPQUAPDRNYC>JNCKHKEDFLHLGFTFHMBJVOdC?BaQF?F>IPM7HKLJLQJHNGRDKKRRJLKIJFDHELQCQJXE>>QOMLAQKQATZPCLH>TVNFLIMHNNJVLSHKACM=ELOQAGILDECYQADHFIAHHODANHB:H=CROKLRED@GE@KOE@UF??MDRGIM>MJQDQGHSOSD?FHKHFH;[AIH3TAELHCFG;BF?MIHQGISLNATFTJDKHDHQBPHIE5@TEJQZKHMFI=IGBCVPA6YPBBDQP7MNJH=K?BP[ANBPE=LD=GGGFP>=FF\FJTKOHJIEOJK9=DILAQJRELIEIBXJOV?DIANRAHC;FKIMGGHH@NCKJII>QJ:JKQUPXJLFPKUQF;RAJFIDQJ^=BMJQOLHPIGDFMKM=Q[ERCLEKKRGDFBF>HKNH:J=UFEJKKGGCTMCCCEFCLH=KL>IOKFCDLHLFKTJPFHFGLB\HGLJ=HBHOGIFLBUMCJDIDK@KLIK@K@C>C>KKEEALKFEEHIL>EMEFFEDQGGJIBJMGHEECQIKHOPEGFGC;HKFCOBKECLCGCBBAKFBGCIO>GDBEVJCKEKALGIALRQSJOATFRYEPHCPFJP@SJZVMJMGRHPQRH@KJHGIPJWPPCH=RRUINROIIRGOIQM_S;R>QKMJNFGGYHJELIRH[BPMPNFKJJKQKIREWNQKKDUMLKLGIJLPTFHBJLKQGRWKNMEZDXAOLIKFEBKMODHPLRHIMMIMHMVOEHIGEL@UGGPNXJFRSYDKQLBFLYWIHIDCLEOMRPJSJEMORPUIRKLJNGMI9NSBILQPFXPCJK>OIUMYENHIMNASELLHGRTYC=N?9T0MP@LZHGYLMGC@GEJFMZS[@lRINN9@JNGU@FOP=W4JOUGG\DPhIDCAXHj]NGGjO;DNuPM<7JJLMQ3E?HGELGJGDKIH.Lg@KBNHEBEKM@JULKKIIJOJWQPEIODAYJRJNHDOPJGPQEGJH?SJLNOVDMPQNHFMLKRTSNI[QJHIJCOTCHFESCR^JDHLWIBOLHCMPRN;WJALGUJNDSHRQI\JDKDCJSHLCGNDGOUJCIFLXQDRCQJVCKQFRNQCIHAITTJNQTBSBPNBUP^VOJNFWHHDHLAF?P=JINKDSPVQ^UIMNIEHAENFKISANYSOLEIIIMJJIFMJKXLSAF:KNMLFJVMHPOKW6GGTRMFIWEEEDFJDIPEM?NGHPIORBFLHJKANKEVIJQ\ONGBIKQS9QIDLVD=HDHND=SJEM:UGWVMEHMFJMGLKN?EIRL@PLK@7O@[GDWGIFSOFAQ`>PLDANBI>=UENENFLODJ2NHFAM=FQ;KIIiOJJ^LJLFARIFW@HNCKK>RF@BAAEHMOIPICOROEFEJ=VKQREDVHHMN?LSN?FLKETKGUDIJGBNGTGMFRTERKH=JIHS?DON>QL6QBDC=PIEL=WEOEAH@RB:IJKL=JA7DNNMPSIDFQILULEHBECS@XMSDPIEBXJBEDKMKLRLOMKGDMKA?FP;PJBEDGOMMPOM>?JFLDgJDEG;cRNG?JIHJG;V;LJCAOSMOPCGEHPJKEU\Ca>RGCKKEEN@ENI>I9>LJFHGWKNFPJCJADA@F:JEBNG>KSPAH4KO?D]TYNGFEOSEMDPAKBOHGIEGDPDO=IYK?P;LKRFVYYLNJLAFGOOaQ@F@PBKPOLYALGNPG\PLNEFGFRDHgPGL=NFFGE]HYKGBFGFFOWNBGHGCTG=SVNOTDJFJN>HC@RMLDG;7IHEEBQGRBGXRDHFNFFEKGGRJDHCMJAF=K?QHZ>@UFOF;>ECJT;MKHIF;=FSNWQR:JZDQGGJHGJEQKECMdJYSIYCLEGRTDYI\DBKGSSJOME\BaP=TFYSGWUXGCDLO+NMCcSXCGJGGCCFIUEDIIALFJIL=M?CN>DEDA:P?IVMHFP??JTBCJESANWMO;JFDJVFHBICKDLGQM>NFCGN?JDLK;@ENFKHGHLKMQKEGDNK>CJUCLQFYENNKTQuGAN>AUMHBLDHLDPU>ELD@SKSMQJJQHEYKBFG>?VCFIPGBHEOHBDORMLLHLQ@CDBNLIGFRLGGHJKELBMFEBLF=HQEQMFHUHCJGFIEAFEJJIUGKONJMUJYJPKOEN;?GIICLLGBKEOJANUJIEN;JUNEGJNKAQD:uIC@?ENASBQ=>A@TOXJFFY@AHSKT8JPKIQ^AGKMIPO;FBONHUMVMJLKJTGW>MRJLJPJKJJGFKJPSJWBH?OpSAGGPHIYPSNGSVLK;FON?AV@PL\MCKHNIJQT[GKVINHCHH?ITEEMIMGGFWURIH:HFEO?K;VLJG>OLIQ@IQABPIPTNJAFOPKGJFTVLFHIOLKGFHPOQDQNVJKH?OQKF>>\MWIQSOEWJDCIQPMN_FJCOFNP\QMGEOMACKNCGIQN=TBU^WYWGBTCOGKEHKJ>FOP>LOCKCG[IKNODKEDMOPKTWEGESDFGQJEJQRZWGULLOPNIYWMWRCLDJHSGJL6FSPMPFFLOAPLGBMVKSJCO\E;FRTHBJ\LJRVNENA3BBKHHVRMJNSFOJBUMXPJUKRNWUIFCWFJJJX8SAR:R=TI@?CCFD;A7CDFAFKOA>MC8QG?Q@EE@K9NOBBIB@M;GB@C>A8[LCC[KOK:KC5;G?E:>MEF=:P8@FNHSECH:LI?;[IM9AED;KBC>JBEDADF;SICCBEBNCIlEJ=HAAAA=NAJ^K>HEOHEED<8;O>B?DJI;S:XTOXBITCI^KH@IDNH:JE9JHY?=DNDOBWEFICdKNICHBY?QTLKDK[>FL?M;IRMJDCJ=Q6ABA@FD?LIM@EBJOENGIB>K=A?MKKQUGASFDICBJMDC`JSNKOAOPBEXO>MK@]NIV;CJBLVIFJVCCOTP??KHJNHRGJFMP9AFHHGRNKGMGZAQLMQUEMHNVBBJ9IHVEWEMOBOOGI@QNNOBRVFH6MIFKDH8NRQKTHYXIGMGNMPIIFMSXKVLOG?FMOYCNASHGPVMWLITKCGJFLJKLOFJRTIJHAHOKP`LLUS;KLGOBFNVPSMHMRLL]N>LGLGEXEOCPGXFUHOMSHDKLDOBSUDEBH6JONJH@GEDC=NH?M@>IJ=IORDIFI>EAE:GQI?F8OETM;AO?OROEEDNLO@REAPNIAMM?LEUCLHMDZ9PJEJWBCTAN=DCLGXG9VD]MMEM?AIBFMD`GOCJA<>KIBLDHUDKU?GHDFZOFBBRB?AGKPGEJFEEAPWIOL\FCQC;FSEDEFSHHAAE?>>QFPNFKE>MEDHLEHCMIEUGCHX@QNE;D[GBQ@LICjR@N@NJP\KMLPMHJJRIINFM`LLHPKDNLPOIJHBEIMVE_FFDEiJK@CDJqJFRRQNGJGHCGJILQHEEUIMQR>CUSKUIaTXCW\?KNIIJG@GNCRC@JJND@H=PP9IOAFPQMJSPGTDCXHCPFL=RNONHJDHITFLSIIPRDGAIPUNBJOHLVIEGQJUGLBO[DHOOD?M=J>DOQ9L=FIFNMPHGJHR[GXQLDEEUCLDFIDCKQQ:FKQLBCEPUQQ9QNFJF>D@NFGG@RKJGHHPQMW@WKGILDGRTH?eTDO;EV?NPM>FDFETFScEQXMHNPOTOHHKKFIKLHND@LMM[HMKODLITDESOLHL9H@OGGASESW[D>HGPFLIWWHJURJCM]DJJI8BDVAEMBCLUCJRYCGBPH^=@@FPQYIVYNFKI?KLR?C=UJHWAJRCHLCFYRE:9[NPKGDLM@]JNPHMMDCGJFHCAV?LNLESNO\OHE\EHKKIUQEIIGG]WABHGBIMYIFBO@?RUIREERH?BHMFXOBXLMVGYTBFGAfFODR@VFLRERMABK=HJPHHWVLLDCHAPDFYIMQTZPVAHHPIOOIICMJLLMEGGDBBEOEEKIEJAIHTE@MEEOBKHoG\KGNNGB\EZNRORRTPHLCQD@DGILKKSRIEACOJMBIFIPCIGOJ?>LJKINLLDTIPLGTSGBLHXPPMFP\FGFHJHRHBIIEII=JOKHPPLDQMYFVKQKISH@FKOIQJJEFSQFPGHLHHHMBTHHOA^I\AHIHJJQKHKKIKZJHGUKVNNHNKFP>[HFHKKCKPQQJCGIJDAQITcNi>NJDQC@HIOIZOJNGHBGRIFACK[OIK5_KDOFOBQNHWMNE5BLVJBSA@RGNFHRDFCERN?MONK_DOJFDXGA\RAFGBFLQLKZ>MIDUMNLKWICUBJGG`H>[PCFNA@GRRMOQPZ;DUSLCEGGBNNEKULL=?UBMQBOYH@EFMPONIML?IELIHGWELJB\STOECaJ@BFMLKMT@=WDVD_LCKSKKCJF>MALJNIJIWNMGPDDF>jFl>RE`MAMECQJJJ]JZL?JMJQRNDJKLIlTB=JNNOTNMJHOR@QDRLKLOZGQ`HJIIGMGLF^EMLFGUOhEG_GHJURcHEEG`cSKFMLLD\FKVfZFKJBJGWGJ]CHII^IOTQ^SKREMaNMHJNTH@PF@LMGJEEMhJVIGKRJWLRRRFNKOJK;RaOWHGZ>\OENACLH`IGEWCHOFFL?MMMFJCAFFKLICOOLEIGiOLB_^CVFS@=>_PMFOINRNIiFNN9WFRRODKRLY:VHLLEFPLFCELFELNNHLVJ?@NHKO`LL\FOUISKGJFMLXONHLPIRJWPbAXANd?HBOUOIVRUGKISL\CHPKRFPUQMDMHFOSILOYPEPCEnYPKWTMZTPLQSKHFLFKIOLSUJNQLRHNKFNRLOjKCFODNUIKcIYJ?WEI?DAIWBDYK>K>HBAL:OHRLMBMNQNGXDULKLILWE=RO_IDICOPDKF`HDIMMZOKFCLRKUHOCLRMKOLUDGSFFHJT>JFRLIOKINCGJCTEWEFEMHHHYDLG;SEOHFNHIMJEHIMGDLJ?LASGCKDNQLMJI@NJMMDTIITEOFAIEE?EOFNTGOMRJIFOMHDX?BNENFES@MNITKLHLHILGJJPHEKIQ;GIFIUIEHOKKFHJ^MIONPKBUF@HNNCMJGKH@QOKNKEJLFKQFRCX6HHGHNBEDNMFCDMNLEDBAKCKKCJACIEOAAJEAAGHGKEQFGMLFFIVKFJPJHO?MZOBHJHFGDTDB=WDDFSGFJEARJNJPMJISGNMGhJOHBUBGQGHHJROLIKKJMJ8@JCLKPBL?JBMG8MILEMLFGDMBOGAGAHLLCOHJIFDIJKHPFKGNHIHDIHKHOOJIVRLRJKNTRPMGELNFEPGGPFFLJIEKMJNVPNMNFJDJGKFCKWQ_MMFBPCIDLHVTDYKF@GBLNXPNDCTRGRCV^D?NLIPM_IKWOISDICUGOGMLFNEOCINIKOFTRQEMWLJLCMSEQLSPHRIINPPPCKHFBMMMTIJ[HMHRBMABKJNSIGUACE@LeLJGCFWXDIJKWER=BJDXKFWGCTTOPHMOCPFEHQBGPFEEFPORCJJJHPLGFMNEGKCAXPL@QCPRHMHVLKGOBTMESKJHF?NFJKO?FFQK6ENNKRJMCLIMJHBKGU@GGQNTBLFDKKEMMIMOGP=NLPPJLPTEPZLPGG>JAOQDKLFHMQa^DJ@TUUNJUUVSOK>=QJPK;SRHEQRKTQCFKDKDKPEKDJMIR@OD;\IIO@OHPJUUTKSTZXO>NGOOPGPGZBEIGJLOOJJPOAOJTHYLDROK[ENDNU@ILPUWKLCLYMWDPH^YAPJ[TLKDHPLETRB]\SONH?HHLFKUCMRIFSPSTWIBQDGZARJNPMNJJEMHKFLPNDLHH^CXNGEFGCQPB[S=CRDENGOBJMXQDLYMHEKHIWRNNNWSCFM]gHNCQLLDFDAGGWITHXJEKP??JaROWMGONNNKHUQ;NBEPHWLBHNPJACICHNQFMTN?DBQEQGKJF?IJFICRFEOD^JLPGcFWGBAJFOPDNGJVPKOS7HIB]E>^ANIBKDLMGPFMTNOMM;JPDU@VPYFN7K5LIO>TLHAM>LNLCBUGHLK?QEDGHM4WHCAAPJ?WLUBP>OAIX`@ATUINIAZTOUCRXE_BFFGG`D2CXIOJFQIINVPESHSJCBOFARMJ=JFP@FSIBTYHOF@;AIHSZJSQISJIHMGUAIIRKR?IPJ[?MKVUIKJCCM4VEFOAKCTFRNTIIYKQVSQN^PAZQDKNDB@:BOLTJJJ?@Oj<@PCAFSEbHKNJbQ@PV=DFLN<>MDLCEBHNDMFQ]L[HQFEM_@IIC\EQ?g`9XIUCHPIPMFABQDTNROKENGG:JJMHHBLCGN1IWHEF>MBJ[BUFWBGIG@HKNK@JTD@HILOOOHHHJHEPI]JMJCVKCDFROAPMGAMVCGM?DSHDDIWDLKJUTHFGLQKRIBRNIKIIEKLQO^SGUIBEQ[SXMVSRLEYOHFKLLJKAGMKOGSEKDKNTGMELKLAOI>HFKVLDUG=NQHAOGQDIJNPETNWGUZKCTKEK?HFFIKCGPFIECZNKYMOJGJVOGN>XLEP?FOYOBSOHGJIJ@PHFWSHMF>LGLFFJWQAJE[PTVWTENJISNHBF9FHCGUHMX\WRD]`JOCHMA?FCIISEVLDDLc[?C?AFABCBKDKCCQGAR8PFMEQKFBCCFFSQJ>FAEBPSJQFCIHGJQ?IIC=GKNLADHGHHEIIQKLI@A@IHJNJENO;Ji>ONELJQ;EOBIMPFTJG>SIAIIBJD>EISO=D?AKLLO?ACCHB:Y?DIOIIGGTKGRKHJFTL=PG9LTVANGNHDGMDHCHPALBQD?M;MG]OAK:DEXBJFNGCFKEZADKUNGDHMPJGJTLEFHIHQRBCIKRJIP>RBHIKNB?LMLWO@F@EFPROO;T?R@EVIHOPIIG@AMG>G>GIHBMNMOFHN@MLFHG=IAMILFGMFIHLCNKI@NQCNGIEI9=N4HFEIK@IVDNHOELNLSRDOEGGTTAaNETGVCDMQIIAPFMH[IK?HELO[FQJIIGICNNIOETEICGGNNLADAPK@JMKJ>FDWNONSSJKMQMFCWMMMOGRKDKGERLIDNOSAFJ=DO?FHDOMNRBKRR>GSJTDQOKIKD=DCPLPUTIU\CNKGRBHPMOXHTIS\QWNAIJHPJZISKN@I]EHkQHAKQG[IIMZIO_FSFO8ONNOLSIRNSUGFLENMGSHFiHFcKKRIJBNLNFS?KH[KFKSFKKJPKBK@MEB[H@OEQAGICC?IABG?GDSTJJWMF>DENKPDE\NACSCSOKIK?DC@IFIATLIDKOINL?MCBHE?LLLOGJGVECEG`POJBQJ@BMHA1^GIBIIHDF@XBK;QQHJ\D@?KXPP;G=KAO2GDCDGCAFMKXdHSEMOFEMKD?BL;8ELFM>OU@INJNIKH=MIHEVFPD>MMOB;PDFDJLJCFEMK>CJNBUYMEAEOX?HZDCEUMNFGQLKLGCK>GF9PEAcH?GDPBJOY6HV[DSI??MHVQHFDNCQIVGbRfAQAJYJeNLPHANKKKLEKJORPWAHDX@EEKJPELHC[B=KCLIOFOH`TILOKKFHMjEIDXLGJCELOJ;-DQgCCSBL?FM:JJ>L@TS]F>HORDWGORJNIHZJBOKIUEAUCFUT@DGHIIUDQ9aIDV?MOM9IQQDFY@I>JFCPN@O@XMiXIL^nENDKJNLQEGc?FPFP^fHDPBJC>vP?ABIDGXGYNVVPLO:CIfdBOQJ\IgMCEFFGKM@eVgHDHPTNBFCUI;@DIURGVQBENQSGIODORDAXKZDOMDHNEIOALI?ELLE^G@LKMP@HU:ENCKDJEITNG@FDSAIWHFN=IFKKO>MIAKINM=PROTBOPGKKHDBFKEFCNIGDKDHH@AIQHKBCJJCRJU>HEEDGA@AUNELA=KCIFERC@R=LRA8JTLNRLTPJDMOFBGJK5IFFHGOVGJJGVGRCRGEG6NJGJBCRMPJIVIA>KINKNBYOLP@I@LHPIEJF@PLJMKEGFFD?G[G:OYNMEQNTCMHJKKJIFGLILDJKX@XCFLHLGAGCFMKHIaCRDUYYPUOLLMERMEPaPKR`CGNA=N@EZIRYNHFJ\IRKROPPOABeDCMHLGKGOMGMFCQDMBJTHFHKA9>[MEKFFNITGLN]ETGJMHTFAQBEEGCCBMCNJVUSMFTJ?E5PHLXKOE@DACMMEEIQFPDGGG@\GFPTDE>LA=LDUJBEONFXQGG9BHTDQLCEIPEELQHGAQRNKAB@DOCQVFMNK:8LBQ7LNREIQIO:VCI?9cLOPLHDKF=F>SHQEKEJMEMMQGDIJFAIRKCLAMKCKJLFCJFHPF?ENKOHBHJOQLVBKODCDSDNGFXAJZKS@GMAKTPIbKEE;KA@C@EXNMFS^IC@PBGDKPQCBFMFILJGDNCRC@CKEPCD=F?HICGNM@JNBBOPMDIPEII6E@HTLBFXMELCHBBDSE>EQC`RFBCHGjICOc>FABEOEOKOKJ[HIMJCGEENB@HJF\G@C?GA9JHBGGELKBA:ELSCLHNQKDEKNDWKIGFGPFXDDDGDBBBVQLHFKJJBDGMMGJGKIBJDIN@JDCESEHFTEACOPGDcHRMHF>;?ROM>PH=DI=CIJNHCIKMJJSA>@INKSEIBLHKVJHKHKHKKOFSBZEGPIILJL\LSIJKDEGAGAAHNFMGHYHWQQJMC?QLIJAGCXULGJ>FGSLFZEGVMEFLJFP;CUJFVHF@UPMCLJK=IKN@ODELEQC[DPP@JKQ@NAOLb?ROAHUHcA>`I@WTFLKICBNHKTXEUDJBYGHeVPFQBNBIBAFHIREQc>EO9PKJHKFQCIN>FBSQPHI?FQPOB=@=TBAPUJMIQQUAGJMMNJJJGKT:HHCJVMGP=;EONKDQLOHMIAMF6QBB@EAMG]AQHK^OMFKBHPINWAOAGLHKXHGE@G@QENCG>J@LC?R=C?FQCD?PJ;IED??NF?ADKCFG?FKG>;ANBID=BA>EODM?^;?D>M@M=OIBbV]FOOH:YCJ:KB[KB?GFIAQC?`FP@JIIG@FLH=I;FEJADNEQK=PBIAEDKRJC>L@FL>OPBUAT?RIMRN@UCKJD@a>QFGFGNBPGC=@EAAJDHCIAeMIR:8ADJCDE:@AJLFOJPK>MLFRRJJ@DAJLhC>FLLAHDK=WBASYISAOAHLJDGFDYBJEQE>[GGJF@AMAOSBJMMRDJ>LAU^LOVYRKBF9ROQ;VCVBGnNJQIMRHSVDJRGVPHFNMBFJRGJDLGJCKICHFHODWDU]@JI\@]NENZJPG\JPIIFJGTJVLSLEJVKDLLJQKJTKBDOKGB?IGKGLODKQdHKOM;^TX]>cWGL^ZIGNG_JDMEXH@PJIHUMLODDOFHRGKBCDTRURVBJNK9@LSHCN[PLAPJLSCNGDKMHTCKFKIKHMHWEHFCJHKJSEENOHLFLDL@GGTCRHEOGILEHEHQB]ENEFFJRJ:LDGFJG@LHIJPFEFHMA?IHIDISE@ELRKHQKFCYFGOHLMFJJAFHN=COFMAMMDUEE@BMFQPLHMJGNAIT@QNOEMKFDAIPH@ABF@IIMKHDGQN[IU>SMCFHMKEWHIMJN9GQHAANLFISCCLCLEIKJZDHXGGNVFEO7LED7TD>cHPDOFLJa:PPQQVLIA@XD9=BEdD@H;C:WR?4\K;^7QSLFE^;MAIPG?KIKYKEWRCE>HKDAoCBK?KNBICMGGDxPTG@LI@IMGCUBBXIM>L?YC>K9B;FDFGHBQFHC[b7>G3Q=]LFHBL?NBHWKEFOH@AVDKGc[=U8NfGHIjGBgQ=RKGPRJEIK@GIKCM?LKDTQdHFMcEV7FJO:ORNHE.KLROFDFLGOI[@H?KHH?CMXPmBLSFnGJ@IDcYML?LMICAONJEG>OVHYTOLHGRH8ITILFJJSCc^SGER=N?HOTAO:QDeMCEJ[PZmdJa:MJABGGNN@C@GLOEUIRZMIJHIAJHULLBNWNMPKDGX;IKTIBDUO=eQCHHGQRFTKSa]CFQL^gGG3EFHLIPQCLF>UP;COUULBQNgQBIQ_@KDIJEJXMFGMG\MUWQP/AG;RNOQ>FLYGSL?G\?H=OoCPMSHRAUEBGZ@TRK`EV?VS_PF9QPYBGaPTW?IRNKD=QGXCIIVKCWII@AKHBFPJ?OFQ?FOIVEFLHQDGZXHLPDM?IWFILDPMTSNJVIGFFSXN_W?BIF]J@DIGLPGIAKN;EPHKBQ@KFSQSNHHXELM=IVJND?IMMHJVNKAFGIXOJTPQ@PXHTPGJFKGG:SPBMLGDJMPKQKFAMC]PKI:]FKIHCTNEM]aGDCLSKMGMYMEQK9OMI@DHJQ;?;XSPMXSHI;EJLOFNBWDECCH@?NLIB\DPIGHFECG0VNVGVKEL=FWCSKUCE@JHKDFIIABKU@LP;JEFOTDOKMHCGDTJRLMKLQN@ELAHOAHOPJNDMCJOHEVE?TFZITDELHEFSG>LHAAF?M?AGHFKLCLIXMBWEF?FGMJK@DJAEQLUULNCCBEVBBJSKCKEBMKEBFGNQTH?NBCITABNCK?;WUAFEJLTFLE>P;JC=CDCFER>^XF`?HFHYE3UaCDL8IYDKHA=>AZMDRE;EUAGCGCNKIOJZKBCALJAL@=E:CLV?JLET2aJJQJ?P?K@GJb?E@9FFMDACK7FQKMKFDAYHDHV@CJECKB>:6GHJESGK=>C`NCJCDHBOHC]6PEF]JPDG?B^FQE[BJW>>NMIEKN^DMKXIPCW=PNJGL^DND6N>P4MaOIDG:FRPLF@=NLIMUERE?RPEFI]K4FJJUMUGGYFJGARFMNPVLMDKJ?8LAYPVQCJKWLAAGLINFGXRBEUMKHMLYKESKCOUIGNHMMNNHFEDMDGFOGDTNF;=^MVJNWJMFFDHPSPUW2CBVGANBBOPKLC\J@MQGKGEHR?ELHKXLJDIRKGG=PRNLCEGDKH>BCNJFPDFL9DKKiFIJMHIA5LCQDCUBJHCNPJHDMONTBIKLEE@NIPKOTEMIG_@G@GNLFSGLMQE>QPGSGRRIGBIFPCLHYRJJHWFHPLMOHJAWSCJNCNKRH@EPLVKRTMPDFLLHQTZI?JBLKGMRFHGDNDEPITGRHPIAD@KSVVGJN:MROHBFEIIAD=@AMGO`CFLWV9F7AGEIGKODDFCILOLHN`R\=BBKGHXSEOHBKCkB9H=]DOTJHDFEJ>IDBGMR]KCQEQDBMKGWJIGVYHHKAO]NWQFSLNKGUSSX=ENMIGHMMLLK6QFPAYRIYJM=WNFBMNC>MEQNDGKLOKHNNEFEHTKMRFPUBK?DS]IELCUCBGD?QFHLBQQFJBAMGHNOSTGUNIGFAUCDGLLNLOMA>RLCRJIPNDANLKL[QCYDL?KLDR[WVRGJAPENNVAILGPF@ERMOEKHJAPC@MAJEEAPSSONEOTJMDHLDCQOLWNODQYAJWWXU\^LNJJJLI@E8=FCIYMCGCINE?NL^QUCVP^ILF^TBBLJJGVSJCMGDVINE>>LHNKCQbBIHT@WS:?qBJ^NJRNOIGCLSSDSR@_LFLXIY_V;MMFIMQKQMRIL@YP?QKZKPmfh]IITSf^M?ASKOGIGLOKLCE\AZ9EGUK7LMKBDLSFPLHHHIK2QDEFFEQ^`3GCBZKIb?NEJHdHQKG\_?9JVLM>TD@HOSPKDMT3KO>XMFMRNGJGZCKGCHDE@FFJG>LTOF=IC@E@PHME3BSILUJMLTLIIASANEIVBN5KJPRGL@P@I]GLNRXK=.=DGGRIBH:ZXMCGC=ROUPLCWGHOVFG?DTOU[PNM@MEO=>NLH9CC?LCKXL\aLHLMM6MNN@1ECG@DCOMII8G@YIKFEHTXHATCKELEFOBJOEHHCTE@@NGBGNFZGCQO>EPJBLF@MFNIJAHNGH@=BCODIA>:=HO8DJLAAGHKGCCEDH?EFGNLHJBCNHAB?DOZEPMBKD8HJEJIMOGCGIJOJEE4LGC7SUJSDE@LEBFOJLMDNLMBIFA@LMPKRGABISI_LNCEJFLFJJ9=NMILIURDPRKLMLK=HQPMF;FL@JRGLBAFRGLDFDFDGBASAGHTNDE=ELCOADHEGNKHDEJI:CBIDHIJJVJPFAEHIFHNLNVDMLFFKBMULFG\IPX>IO;CHUCHHNFEHJEJE?AI?LLKERNUIqO;PODD>D:DGBGOLMHKLG@>DXGUQJXKORBB>IO>O@LISGALFJM7BQCE@IIFGH<EPOLKA;HLHSIGFDPFKL@RIFNNHpEAILUBEJMKI?R?PEN@N\CRCOGLNGVA@PKFBHKNWMI>L:D=>UCUNMBCIBBPNKFEKYPGIXELI>D;KRHEFDIGJKLICAHMMUHR??AP>INBKUAOVOCGGMCCDPNCCHMNIFDKHCGPB]ELJJVFN@KI=EFNIDLM4J9IKB?DG8MOFDSIWJGGHR:QKFLHFLC?JMOB=C@VSUFXLRIPOMOFDT?QBBDOJKIHOP;H>MFKDGENMFIDKHTTaLOKS@DDKMHV[:PR@VRA^CBAMLETAiI=GH@RJKMQLEFFNPFJJDK?P=<ESDKNJIEKKMFS?DPMFKCVICEUGL[LJMGJKJGMQ`FDLKVATIK[JHTKD\HVIOQSISQKKEMPL\LRTGGTHFFDEJgNJEINJHN?UIGILDWFTEDBNJHCNBGFFHECEAIGUJRJJJEN8TQWCSAELNOFUOSFEK[CHZFKEDIJQXEDDOE[JFZLPMPIHELOGDR`ARDESDZHGSFMR9J[IQKMEKT4D3N7FCTE<-HJK><1MC0IJK=PCJBHEA@DIME>J@CJKDED4BEBAOJ?GIE0HFBKI?IPEKJWB>CEDL9?AA]/I@CBFFIAJN=4B*EFESJ=NBB=FQGSNAKC5AO?IABBFK>,KBK9HGHUMPCMFILCG6IIM1T>DA=@BE=FND2C>E<@9I@IC>CFO=EJGH;BB;ECMG;(AO9>;K9CCB?H:=;,2MNH>JBLA;DLKLH=HMMED<>F@?YG@NLGPH??KC@JBFFEMG@HB5?FF;,DHEQOK3JWLM;EF;HH:>IFCBAFMNJEJMBL>GIIBGHPIQJKJSGSDYJRHQKEHVBJBDRLPKFIHCKHKICFOEMIOPRLCFGJOCGKJHIA>II`UGIHGKUOUVMIEEHHKIJBMHLDEDCEMGMFIIDRGHSFUQMFFNHQLKMAQDMITGLKXGJALHIITLHKEJFNOHNFTMJT]CURREQMV@EJH`PIWLGLJXGAEGSMOaLEH9>@>[HGSYOOHL@EY]JTMSMJPFLOQ@>OLNGT@IKJRXYLIFEINJILITAKFHLbJEUL>COEJGH@IFNFIIG=H>?=GMMPH8GCA5UMGM9F:F?DPLCKG7GNQASOED@H:I@XAIQ9A>SGNDPH@M4U>IH77GeRQG5CQF6YB9GG;CTIHCK@HQ@FF=8F>GELGHIM?J9?3>N>M:DCGK@LISGF]UYKSKNALDHLCDQEDJPCKZF@?G`>F6PUMPJPSNWBEPDPF>EQ?DGLEKJP_IPFN?GTM@KJCHJJ>C@XRBM\_EIS>HBTDK@?VRKH=\ICJM;MMFBIEPLBPFANGHSHH?IwMCGKMFFFEJH?CHKLL@?DDQ=UGAZ@FCORMIHNUIHRKPGCJNF?GISO6>LNEMH@OQRRTOVFWRPNCGLJKJJOGGNEFRSKDMHFZGOBNQGEBGGIKLLSRWEAC9BJPH>RUHBJ>PDFHMRFLCSGHFTHFMAQCKNAYFGFMOKIF0EFQRILJNDTEI=HU@N>DKSLLGGLAJLHABbvFHNMWREFPCRMDICSDHMEKNGJJHPJCOODNDK_JAIQKAFIBKJUQTVNKCGVLLFITL:SCHIKHCELJOAJCIMLIYCPMCOEJMMOFGVNGIFETNAQMD;?>?K?NAIRCBLLXTNKGLCGQ=M@C;BNEARYMMCDCLPCNKTJIDGPLCMHHD=HBIF;JLTLIMGJPO;INHBIHKGOVECKLFNK@IEMIUDHN\PPTMTUTGNIONPKINNHFKaOXIFIJXURAHLMFHFLN^RGKTIGHZCLSPPQ`PRZTNIFHIRJGQ=HPVYSTPYHGSKEGTZ\OJKOGH@NI@OFRVDHBLRIEOFIMCIQHBJT@FLVIFHH_HHPH8QG=XGFIFFILQIJDBP:PBARDDILF@BQKSQFOWKDO@:>FFIXGN?:QM9:MT4B@C@L>;QB>FKEHVHBCHP92BJ=GGMPDJ;@CJODA@DJK@LD;:AH@@N?9AG8O`NB_VGIG3UBBEIH@MFAN?IRKNFPS>;YIJBOBF:;XUNBEBKRABIMAI?NGGD8?FMR;BEAlHLEH=CFCC=]=N=4CFREXPAKN=TLBLJWQILBNQRTGL:NTDCSMGMMDQAPJH?FDKS>GJIYWJBCEXG=KPGKK@LW9JTLIKHHFHCJKKWXLCHGEJPDMPMPLOICOMKPKILVOSA@KKEHODQ@LSCPHI@LHMLHA?HLNCL9BKLIDB[NIQNRED@GJFJGILD>LNGO?@LEHHIEUSPAEJFTTFLQST@NKPHMG=DNSOLJUJ7QMBMKI>RWGBHP?LMNHNBJAISGWIBBFJOFFGPIWRDLDHI?LDCMNKICEHGMC@GOSPIDWTDJHNHFKJJFHMTSDKNQBDQSCNJLCQNIRKPKJHGIBMNKXHRJOBII@JHMLYLMFEBCEJFNEC@HHEKB@EPONB:JIPKCTD7MIW@GLOOAIOOIHSFDLC@>IKHHHD\@INTLLOLG?DHMHCHAF8IEIIFKNFK=ILCLCMLPHMJOJD[MSPGK@DLIEHLEATMAECA=AEPLMMFJ>RJKNEHKPDQDPCLE[@GEDCB>GIGKNOJOF\@GI8FAH]=N=KDRB\XOBWGE?;=MXPDMX[CHP@CDP>DIBOQ@FHAJIAMDHDGLHCJILRBSJYNYVQ>AGCIMHTSJNAC@TF_JVCN[IJBHG9NOLUEIDIWTLd?CSJ`PPKDET=JNM@KJMS>UPLSUHHFPzBQKSFXNPGPMMLDFNSQFHKN?bBF>CMAfGJJO=VGKSN9ANKGITIL[JDDAFGOXLLJaFLKVYHJJ?MICIILIB:FNQJWGMQPCBHOFNRPFNALPKHE@HDMGjIN=GZLKLGM<>[ME@JEFPF:AIIM9M?\WECHHIOOK@@HP`MIKCHGC@PKRC>LE?N?NHEJTGNEFITCJHI\EMPKKLHCNIBQJLHQFDJPCJFIKEVCBHGLGHQMAWFHCKQFM@FFUJG@FTFIBNCAOXLOHK@KWUHHLJQOKJ[HPTSGGMAIQFPFPORKELHBBFIMGOKZLHOKGCFB

STJHRADKHEL@LLYOSJ@HV?HEI9GCNGMNSODOBOYHIE=P?GGRE>?_EMFOMLQKJ?MSCROBGCALJB_Q\CJ<@OPFOLHGH@DKREJJ?MCQN=CMMLEI@@=HL@LDFZI@GCTPGOBQDIHEIM@XFJVIQSHA@H@GECHMFK>ENLg=XDKIRB]DG>HHCMJDHHKOPNKKJJFKBRJBUHHMGFDKOLMLR>>?TNIGMQDOFFELVG[JAFBDQONVNHQ?TNLRH[RHOIFEQCSJEARZYKDHAIGLBFEAMKAPIEEBJKDFELDIHKGYKQLNHN@UJSJ>EEPWJGF@QJYKECFPOGWODL9GJQHFRLPLKT9KQKWLBNHIL@ENLPGJWJ?DO_G9MADQJGJJ=B4MJBMRSIKH>RJTLIUDOJINJS^QJ?E>>D;JLOJJNIGJH>ROFZVELK8AGBABS@CEIGEGGLKFDCULGQOH9LDBIU9RLATEKKEFFR;ESIJARN4DHKPJ[@CL>O=IGUGH:MBNRMCOE@NSCFNJM>FUZOjIC[N5?I;OJESJEJF=R>UVDN2P@QM7KB>Y@QLKEAFMNPJH>QPBIGGG>JNH;L\NEGHGHII:LaRIC?SOCK8SCCD\TEEBRMLRMF?SFHPIF>SMDHK_JL:JLKOMFPU:LMKTWG\CFFSJLFJIIKLGWHCA>HBNQBEHHTLFLDMBF@AGMYHCqP[PJGJ>CEUGSLNLO=HG=QSBKNDBLWAE9?KACLSYHNV@BKNGMC@V>DCC=HLBLUBQKL>X[IIHLFKAXI]CLFC@MAANJXCA;JFVJFPCRPAJL?MWBL@DLKLHI?DCDKJDKCHAN`FNQGNIXNPINKFBJEJBKFMIGDH@LD@RA:K<[EE?CDRSHOR\J;H?FKB\IG8Gg7NcMFEMAJ?7RQQLO=EC?M6SP?IK5jOA94EGL`RTSO:FD<9LWQMFUCYLKR_CJJ7DHFG8OG;iW1,?CHSJPU[N^VDDJNIDBhPE1bDSGB9NP6KL?RLaVPV(XOGG@%LEHM@QL?BJDZO9HB6DYHKIDFGGIMEUJC7E;HFEIKHHNLE>EJENOEMHUYPO:CNPU>GVLBHERC@VE=LOJ]LJAKMAMK@ERGN@TSIFFRNEWOEEMHTHX@QZTRBX>TFMPGNQRKNRHHJUNLQ?T?FBOMTMC?4ENLHDMMPbBMMKADTNHKLHLHKCNJXGFRSXHJDCBQ=HUHRWLDB>JECCMCMDEQNF^QJ=5@XBNQHLF;GB>@DRHBRV]H5KPEHUPMNMIDGKOHLOYIU_ORDIJ]NEFNEJHEJRSPQDIN:ITDR@HFFOEINRJLD=QTDKJIMRCDSMDW;SNV]IKENCI=MLRR;AJSMMJN\QGQOGKPGOOLZJHWSLKAPH9EDSFNDJKT:S;HFJHTULFKAMDQUGDQCFWFPOEOHKELK^QLIFILFQRNCUA_MK9R^SFPOEIQK9JRPENOKNONNJ>B=C]IJIGBEHTNTMP9N:OORJjSPUQ@UDUBKMYQQKNISIJQHCMDBFJASMEMUVHMZD@SD:RJJMGNKJLJcKIJPJEKAAC@NWD?g=TXFC@ED:qDFMICH@LV8VMMHGEFtJ@D?QFKYIMLGEO8<>CL?mFFGDHEIVIHIQELEAHQ5RFJUM@?PII@KcFPOSAJKL5EGLMFPA^NLS3FI>OJCUFTFPQkLTWJ[LGHDTLGCEFKEKGG9LHFHKN>>SE_K7LH>IFAKLF?OMAVEJJJZBCG=WLPHJIaLKKMoX_D:EDJ@@gCFHQBXGQN[ANL^JFREDIZL_DZW^JEDKH@3aDEDX;GgHUGUB=?FLJHARNPMHHMTZPCDJ^JFGdEF^JLHBPIFJKRIQTKIELALPIQOWSNI^@BKJDI5BPXMMGRCMABI>EYGGYOTL?J;GICQJUN=EJkAAL@IULKJ>KG?KTMKIKOEJOE^?KKMPZCGNPKKFMPDPeWCDRNPLNEF@CEPE?MCE8DWRSmbXQQDLJOHKC:?HARJPNIJQRFVJCHDVPEBF@LXFK[DKKM:LIJMCHBPLZ_JDHLFNKDSQeXQF=U?^HHN;MHOOYLMJEINMJMLJN=EFCdJGN]OCNHMNIKXEIJ9JAFIBIMRCCJJEB;KO?FC@JA?;NEWEPWQEDCFIGFKGJJJ@`KICHCCHLJMOFMANEMBGHQKQLIJHEGWHGMGHEESLNCLJJFLCSLK@LFUOMJMFPDGGHNXDPCOCIIBOXE`HKCOLQnRL>AIGAKDQHLDE?JW@ESMIGCNPCNKEFZ=K@H>REQMHJFAGDFHGEIPCGHKBFHGQ[@HILMPGJQFHMVGTLJ;JBOG6GRJINCMMK=XKIJGFCQKEDQHDHGMAAHSKFKQ[KPNIMJRMALL?LGJOJDJJLRPBTIEEERCJCLIOA^MKI?>bQIOFDHUR=C@BUM?NGO?GZAOLJFOIRDMCKFBHSNFFG@PIOKI?DG?LUFHIL;KAAB=FT:CAPbMJLSF]CCgNFIJWEETDFHKPLQ?JJBQAKKEHQLALUSFGJBHDOKOPHPJCNIKPDJGHUGHPDDIJLMN\LRKGHLHBJDJEHWGAHRHMWCIKN>WILFBGCJ9JQHBNHKILRQJXNa\IFKUNL?HFMOAR?IEFIHIGLAOGI=MHP@DIM\LAMCHCKGJORSQB:OLEC:@HCF>PFBUREDJNKCEJJMEJKFTAKFCGKIOTBJ=J@JHBGANFECTLBG?E=NaGUFNMDG@EMHFHAR@LBJHJNCUPIHLLTNGJDJUKUNIKIIIAEKEHAM@OLDFUKE;FJLJANOEJBD9FWNMFFLNaE@BEOGEQKD?JFCLANIABFW?FBMIDJJPJDAiWGKHJELGJHL@QQJHHBHHLQnLDC?FQKGHIFERIELINILBGOHUC>:HHDDLCDCDPGAIGRPKJCKQ@YNGOAHOMKDGIBJKMXQEJNBGH@=IFNBBIKUVOO@_RWPN>D@PD\MWI\WNHHHDEJIN]MPVGLYHAFGJ[NLFOJAeNVVTSLHMJQ?REKAURNIY>KUEJNRL@BZFPCKLdTFKPKXEJDCUMMQCCcTWGO@NNUQHNMIMVRGSVRSQHPhIZV=QNSXJOVYOLNRMGVRNW@GQCh:BDNFFZUNOVMUGCRFBPSQZNOCP[UHYGNOPNKLKSNGQJWHHCIPPIGFV@D;X@KRJOOJJHRJTLObJQSLJPMKS[IJJLPG;GCPLLMDOHJJCKUL`XD:IMQSKPPGIYLLQFKOJCI[QGANNARKL?T8ODSVPD_IEAmELUMENLU;JHVSTTF=QLH_LIRAIHLPTTEQRTP@AIdIFLOMSREJPQSLVLB9KOMEDDKXMJSF9PO\LPREGJEEQAORCTLKTMAWKDEZEK;GOEQQI\TJYYPGNLORRWOKPBFDWGPQRDGD\IZQUMBKIPNKTKSIGFPGPERMDDONALS?JFQFIPKL>LR\i@HQKULOGWPJ>CPQ@YJCVDNKQFJWMFHPPJ?[LLTPKNMGUB\AQVNX[O\DGJURJENMKORIOT\VRNAGAA\CVJMbXELJNERNQLAHKDGLJGOOGD?QNN\IRUEMQOGGJN\QMSBFIOHJLXKFI=@@Q=dOILIHVMJ[<:=DsJL;HFCAI=G@GELCPCAKHpWG7=GPEAKBGGH;BPQCINGVE@B?E5AC>DEDKEKPJA?8FIML=RFB@IQGBM>GW\>TK9JD;IZACG?A>KBAOAKPCDL@KBH;>dRBvMCO>DgLAMGBJ6LNOHCDEH@FALG:HKWOMRlBL?GPDB9NW<9CDEKjDIRKX@BLIPTOGCGPcWC;BKA5=cJMPHIG<^C^8LXBYJ7>KMa=^FC^MPMNMIJ8UL7ZLYLCLEHIIKDD9>A6KB>BIEK@LP@Q>ITCH@UALbDM?GJIMHPPGOXIHJ:BJBAHK]@UKmFAEMMK=HFPAKYAACKHIGGCO8VJSG?EJOOGCGVPNGITCIIGDTUDIJIDYFQLOFKLALGNLEJNMDRH=BFNPQDG?GYMDFLFINRAGF@OXQRPFBUMNEJEC>HOGVIJLOIEDKGLIMAWP>FFM@SO8G6AFLEC=H8TR:SCKADBQN_@^PK9TBSHSDVFEODCHEHFRK@UFJDPOGIMaEUKQLDEH;KC4CNCFIQaLLJR_VOEaUIK5OVDCRG<@NQ_AEKQL>HIHTK`JNJM@D=QCDTACVIKUQPREHdCKATGHELUN:K4R7IM:LLHLFXTLKMMNIE:C@IEBIKMKO><@HLK:DHMWGNETMEF:JNEHKMDDUCJKGHHKKFNHJTLGJF;MYPJCZJBBM:LKBNKQ?DJLHHLKBGCKGNHNBJSKBLKFHGFJHLDGNGQGSSMI?SKQCJFHIHOCXGJDOOSLGKDMHEKEG>MKQIHBGZ\HLMNFKGJOFOCGKKL>AHGQFGVPN\@NAKCOJKDFGEINIKeBKRIFLBKERQ@OA;DLAHIMTHPAFLKKIJAWN^N?BKPJIOTGF\W6OP\KSI:LOEDMEDMNJFCCHGNMGGZ@HHRULQ]XEHJOVKSNIJNIQWJMN@SX?FKFJOFJKKGUHMLINTFHLQLEN@INHbCJITOXI?F??LFKYLGD=NE4FMGLEFNRCKHGHHFJPKQFUP/MGBIIKKULN?EcB[@IhNFJ@LG;@H5ALGNKETIDOAQJMLWWDBFKNG@KHYSHC=GYAITPNTLJGKXLQRHOQBNHJDHIK>EJX=DBFH9KIKHWTJIJATBQYKKRIRHKML>NEQS8BFKWJRUZUBKMJZIE=KOROF?FDJIKM=UKSIMKDJILEGJbFHNEDE_JSCG;GATLJKKHJKGFCNS[KUULCI:QNFOMK@JQBZGYKJDAKdGKDVJ9M=ED5T2dC:PQQ>[^N7MCUF<;NRKBUB@=FIPHBFP\P=@HKPRVLKLAIMB.cGHdELBIMLW:=EJ^EEABVHGP:PKESIO>?U5QHa:EF^HMM?HF@CA@;AUH[FOBOFTBQAIO@FK@GAGIOY?CG\MbGCCIIX/@ESJHKB7NCTMJMWLIQ9K]KJRHT[gTMA?XKP`GEv:HH>RCKKG8@MB@XNQQHNH?J5QTQQRIGJX;KMWIGEC=>>5CFNBL?RL@FIJVIRNL>JVUKHOJINJ\?JIFJMGKMI?HSKEMLEILKF9QIFBLQ&HEFC@DADBRMF=KKTCZFMDAWQHIFDHRKICHQFMLDD>@NHINrJLQKPLKGKJNBNXNQQLIOOILJBE?BUGKDCMDNPHBOIHMRB@EA[KICIJPLQHDFGLF@SQS=PJS=HNJINIFXKGIEUFAMR_WTIFNFHPGWLL@@RL>CLFJNCLEP?OFNIKLK\IGLQPE=KQNIEDONWIFFYRPTCJAKXKJCALOFSNL>J?HIT@BRMGLOQESDCGPTSKHLIEHUDGMHAJLIMIHPSGJOPEBHPH=UIOQIKCRPNPSJMDM@EEKOKXIIQEQFHTFHG;JFJHFRMODLLRYBJQTMC>=MIDNSBCQGMOMML=N=GMDDIEMDJKXFOCIMDLJFJUBEHWPRQE@UW>BBFRGNEIFRPS?AFK?IGDPTGEO\PKJNCK=HD\M_LOHCMDTYUMCSUIM?MLEKKDMCJK;NFMOEHHONMAQGOR<OBN;HBOLDALEGJKI?9ERNKbJOHFFGEFJEHLOMELJFIAGKQE]JISGKQDMEMF?GKNHDCGODPE>FdHKLNQM:M;QEIFDBDE7LXBOLM\QFZ>DLMCORI^E=FFHCGPQDQFDPHTERMIW:BPC[9QKFJFDLH[NEFN@FHAF?GJ@WGCCHKQRIEEBMJFE?8VGCTOFAKCMQANDDZQAHDDCDDAS>DEEB;ILJIOX=EJSLSLF?AEBKEBGHCJQE@K<=L@GF>FBC=KRPJQAAEMOEJIFPGK=EWJOPPJ?U7IM:WFI3MECFHRHKIDEDRMJISIKYKCEJNBGQGKMG=SNNRLGEJKWBGTJHBQL>S@MRH=EPKGKSPFDIJJNQRE?EKTWB[7DHIKLOXEEDB;MHFEHILGIS6UKNIKNKDIPELCHPNH?JG[9HK>JAGIFHMNNKC_III:CHJFCT;LMHPEFVJKSFFFSP9IGFCC@;IJJLL?BJ]CGXKIHITNJKATIKAJS:\D8DD9SJ@MM@PTMJENMEAMIELV8@JHLdA^AFAJBEMQAOEFSfJ@>BRQQMWGUHJYRAJKVBFG?>KJNQMXWCQCEHN<@GCGINWOFIOCMQHM8GPFbRB@]EIDVCBJGB@KYZHKJLLaUJCLH@IIMLGHQKERAOGGFkCGSZUHHOdPO5DLCMMHYKFXWUCFEbW8PXIFEPS?MJJ?A=KENCAFRH>SFJDGGIJOFTGMJJE;I?:H\PD:LGCBDDDBMCLG9EKACE=A>AKP@DBBRCINKBN9I;FE>K>IIEHK>HD8@MDAPUGRC?7ABFGH?ECM@A7LQ=HR9FZCOPN>GAKJIPDAAKJCSEAGMMLLJDPCHEEUGOGFFLIIBKEPHANGICEDKDLGGVCHNN/GSM>HG9<=HPR?HFFJJKJCLDKCJ?FCLKFABMDGHEJNFDCLCHQGKJQIPOBCJL>HGLW;IKJGNFMHOMMJAJGZNLFMOKBNOVHMHRLGCFGKSNFIMC=GEFRAKDCA@OJKJGKMGALIEDAAKHHRDLHJIQABKDF@KLLGHUIESE;:FNLCRJF=HFBFOOJK@NRMEHIIC?HINHIGMFHOMK>IWKFEKUCS]MG;FIGBAGIOI@I>WFGK?@JBCGJLIDCKI>E=KMHLDHSHRNQDKEDIJKTPBI8FGCOCMKLZIK@?HCCPEILJIBLEJCKICCILMKGBMJJFQGLEMES@JHFKK<>D:FTBVHBEBMGaMHMPASCUI>PDDUZNI>L@IMDFEJAG>PdHJEA]PIOE?TMWKESOTSNEK=KFLFMQGLRLNM@FMGKBQB?FhEITB[LQTQLKK=INTJ>OLPLJKRFXPRRGU[IEJJIHMKF`B[O:_YG==LN`IC[BILGCJKJGEJK=HKHNFGFXCV@GRDGeOCMKIHLH?KPMMVOFHJAJK:MCKNCCZKFBDBCMFFHHKKNNRLGIDWPKKKQEMDOMIEHR@MOMAIRREECPL:KPKLLWD=GKEUMMEOFJHAVJINWSKFQIFSOMYCRTBENYECJDHUMTGHE\OKFJLBQINE>MDBGHFMIGG^=HQ?RT@E]HAPFDEFHMIJSDDJJDKJEIEIJcTMKG>PJDJKOHMLHL@LFIMG=\@eKBJTJ>DJC=;IHQSJI=BGJHEBKMJFeB@EHCFGVFFJEHG9KLGZJCK9?KQKHGACLADIILCTJBKMFINLE@IDIGQUFENMXFGF]HMLJAQ@GQ?HJFHJOBGJAQGFQBGP@JKG`SCLIUKLKKHFKBHKYKHOCGGSGQMOaBKOPENHILXCPLFODNGHHLHNKJNOO;U?FFGLXBZYSQIJGIUDwOLMKMDRL?UIHDMTEAQEILBJTDOKEGOIHMQJFKQFPMLNJBLKPNHOV@AMTGFFG@DEJ@UODERBH>JXGILJ=LG?LATIILRCK>KBECLLNJFH:KBUVLEMQIFMKHHCTNFIIBI?HEEJG?GGFMICDCMKTDLV@L>BJIMSFQDMDULB;GBSP<\LFKCJCGMIUCEGJLDEDD:JIVBLUGKAKBFICPGLDKRCCKQDJLA]\@PJI`IKMDKGKMI?BGQCA>GJGXL^WUICLZ\VK=YbUEEWJIQW]QD]QPETMKHTe=MMTEMPHKPIIGAOGEE>PUJRGX]BDG\KLBI[ILH?BFNKKCBR\ONFFRMUQJ\PREMWVFKILDHLHMFQZHJC;WNTMXNSCUBORXJMTFR\DUIJCH=CHSC]JOV\VUJNMKSMUXKPOFOXVKJH?I_JN>=]HEWULRDGRLRSP]DGJiYLINCTQ@NQRIP]LVYJMODR4A;@CQME^RAL?HVBIAEIPMIIVBKHSQWEGJANRGO\SPFGOGIV?SSHKFQIPCPKJJRSMGQQ@SNRPJUSKKPHHJOIHLLLNLKBQRVPKLBHGTJRKLPFPDCFQHKJ;MPLVNMYYMTWBPCFPKMNLNLJDIKKJIGNKFGECMLEQJTNQKIPTIE?PLN=VNMMUSEOJKK?@HEYCEJM8OOP^JCEMLIHDNDGOQFPIGLEOOEWPI\SOQMJIJBMHEKIEMHKL@@CPITJKILDMIAZOPKFGCHCGBUL@A>NTGERLMOQKFBEKEPAMQ?BOQBSDQH@NVGOHPCLGE>TIJILJM@BMJHNKJ9_FF6LgKOGZUMJTJKNGND=N7KW?G9GLDNOJEFFQBEIGQCDOOCPPKVIDIVIDODSYO?MYGLWLBLGQPJINPL?IIJMOEIHI_JKSELI=IM?;JIZ>QOOCDPPFCMVXAIU?IHJTFQ<=CNANMLLO:WHFNJJP>IXJ<:RHGGVNTIL@QNKNMRUIL>QDIBU4QKMA9HPBFJCJFODLOJPONMIIFOJMHXFLIOGIHKSLLRLL>THBHPS\FQGOP@L>ILIID=BEIOKFDL7FCLHNKMBVJFEZKGTQKMPO:EWGKPKIEW_HPGLUJBDQBRHELLOP@GGIEFOE=KLFERHHC7GPJ@@BIKFGHKMCMIGOFLNMH:FWE9HJJMOHNLJJCG@SGD@GEK@NNQ[KSNMETFIUHORCKJKPMIHLGIPJP@HGHJGDNIGOLLROGGJKKCIYKFKKILLIKLSETX_IKANLQJESHJHIIPNGKOHENPRNKBSLILNRQLDUILHGFMJPKCCINIJ[LIO?LMOFQOKHFOODHQOHCPLGOLPQKTLNDM>KJIKK[ZIPKJQKDUMKGJSF^NL@JKIIJKQHIQPPRJGUMBASALODNEWOKGKDRJPRJDNI\HOODJKJLDFRSSBGROPWOIB]QKJYEEFOJJAJMIHHQPOJJYKKFPQRNJZLOKDDJJJLKSRNMOLNJDMEONRGOGRLHLED>JEGG\ICSQGLJLQBI7NPBNKMIK?DGOMJMLcPPVNDMPISFGHDDGPFIPBHORIDIPDGNLFENUL@AAMGIK>OPMJ?EPKVFERDQQRELHLJGOMLAOCMRFORFFKCH?NODSIHPQMFQBUCMJXHSIQRVPDIMDN?NLPBXMAUOOLNHPPJKGQHO4QGAFBJCMOMIKMRPFHKHJOKCLPMASJQQQEDL?RUCPNNOTKMRPPLREDJEEHNEHQMBGIPIS[OPUFYODPOLRJ?BIRPCPK?OKPMTPF]FQRHFNSIVEIKHMHMN@CRJPPNFITUTB?NHKJAMYXGPKIDLQMGMJDFFR@FJQLD@IJGPGN;_D<;LCpIOK@RCBHH?K0GLWXLTU@B>9QFIBECAPDGGB=;BIAI@ALHDS@JQJM=CCH@FALGAGOGmJFCPQPRICFF@WGDRKAB@>BMOB@RPD>BMKGI?JZFDQAENRLGLFHJ_9M@A=EIZVJPH_FMS9?GHR9P>;LEDJVDB9=?PGDDGEMVH@=iSI?DIQENDHA5ZPGCOG@MWKh_EBLDHA[OUHDIFLCJEARAH>SLLOZEDIPEHIT?QPBHNJGLMANFB?KMGQBKYEO;FOULDK>GEM?NNFSHFEBEFHPFHDMDGGC;CJ?MUI_JAR>BEIA[CJCFQDMLAIIXLBJCGPKHIJJOKPEXDTGEKJGGCK:JBGEDN9YBFNFRFR=NKHS=FQLIHH?K>M?EPDOJJF8KK;OHTJKGAQLIIO>KMBCNJNMR@FMNEBGFHLQSTEITF@GMGK8F?ELJ?DWGDKALJNSC@EEM?MJDKCNFIGKGOH4FFH:HBBGJNEGL>CGDDCQGIB[MHETTIMPER?IG@D=IP8NMIELLKGIBFKIANED?NMMOUOIJNIES>FTONNLKCIHPNFPFCJTR>OIKNELPFJFMOLLLFLNPF>UDFAG;S@MHHESDIGDABEBJIF:@ZNAL>HMKM>NODIKONIIBMGLGLDGLISHJRTVKTJMTQ_JTOWZJGJ]GKM]OTVEOHVXKDGMFIHCNSFJITIEILKOFHMQFVHHHHWAUW=AJAZKFSRGNGTPGOQFBMTNOA^EFAIKNLETKUVFJHDA]DCR?IKKQ@FSRQID\OOQ^YQIHWICXHFPIHHHFKOKELQQVLHOZJFLSJRFLCYKETJLMMGPHIK@IBZKRT\JODLG]NMQOXONQ?DJFNNOLFEJMGKKGLOPEMQRHHGDDJOIEEEROPQYWVYIDCOJJKG]HLIJ@FFQHGUTT[HDRHPMEKMHL@FKLTTFHYSYO9IGJOUHIVFGJ??U?_SI>H:CCOQD=\F?GXLJGC;RLDLPCNKSAG;BTa4JMHISBYH=^D>8BIc>1DSUaI=NEE@FaE>cgCEGV:?BHDHHN@]G@GHAII;GM?fZGXHHF:>AI2G;G@Ig1MHVO=F8UFQUJLVK;M9Ej5DCFBEEB[>F3X8GIdFHNEEgBLAKND=?SH:=K>HADE=9LJNCNVEAPJgBFGFLCHF=9M8LT@NCWCG*P:^K]SAHONJU<;LAO@K]DOHAFTDFC>IFW?NNQ>?]KNHNYZLIZ[NP?F>@KHKGKVABI@CV@JC9XNMKCLPLADDQEHCAIIRNPQKZbUJ@NRCPLHEJKAIEQ;J?JDFPXTVVEEDN@RDHCAOVGCCXMHVCMO8NS@WOPCELIG1]ZYCACRIOMJIHJKHL?ECBJK@O_g:LCCIFONKGB>M:FEQB@KGCHANLH@N^_J>3NV7@SG>aHFDUHGEaQILCGINCUHO?JLPAALCHBELUL@MQIZ6JWBFENYHHNBDQ?QL=ZYMCFADLKCZZVQMPD7KTPDPELLC@BHJMU>SOMY9OJHSJHCOWE>VTDWCEFIQMKJ?KSBIJICJICF=UMOGLHLZHPEDKNVSMGJFGOKCMFHCNPMJCAU?DH@TR:JDJJTUHAIBDGIKDNIJEB?GNIMDLO@EYFXPWHAFHWUNKENbPNMJTQNCGTGHFCS>RFKDPLRIHGHMS:VHQHVHONI>KNCLC?VHHRGHCLFGKENHE?HDMMBKICKL>LQDMBIPGNDLG@TYGCJ=HTRDHPEBOPZIFHO?GUEN7DLFOAKDMD@INEEFVGMIHDHOCNFH>GCHMGJOMKPOBHBPQOEHB@HHGLGOJCBI@@LCCD@WN?NJO;J?>HJMBQRFNE31GH;NIRTAGOCQLMLNBGTP>DEIKC5KQUOVHUL_JEC]NQFJERBFQJVNOCDBVMFDOECGRB_T;CENEKGLJBREHGNOHVBPFFJKFBLJPJC;BLTCJGBIGPSG@YBNM?RLUHLE:HKJ>GB4BCINERN?S=QMdEF:=.:D2%O25*:?>/G<*J5=>A2H(B,'5C.;@E>B%@1Q88:/$5<'+G<&B:6.D;=C>BN;)C@8'2>4<9$K'A@8)@7B5@0BLBA6E<:0VIJ7*+=?2':/.>,G;OJBA8+';B1BHF>"6=>?B;2E3;2?58B,=D,0,EFI!E@C;#E2A;$:C<:71"9*2'%%;<79A=L6;:BM7=1@B;EA5?(!3A! -:DFKFC3?9@HD31E-K%)8;=:@?D704C@A<>38!;'2=;9B-JMJGLL?KJJYSDBBHIJKQPMC@GG=IED@HINSAEDRKBBB@EHUH:JGDY<8MCJBD@CEIBA;BRLENQHLH=LPL;N8:NC?DFQBNC?VGEBCKERELILFYDKMAF?OCHEL7CMG@FEEWCEA@>E@LMGFBRLGCHIKFRQUKLNLFNA8KLIBIEHFFCMGFBBHN?JI^MQFIHLVGEAB>DT;KCG?IJJEIE?L:>EGAFIJIDOFIC@QIBQDH=7NRPLOAHGSHSHD\BDZFVIZ]NHEEK=EESKMT>JCQGTILHFSJHJLFGIJFHKPeR?AIG^CJLKRABFZIBLJETLAJQDAFJULDJDJEFMMPJARLJXNKA>ONHC[DBA>GCI@SBBSBGEOLBIBMJI=TIIHOEBaGNRHLGCHPGIAWGMDKJUX>YKXGSVPCZ@OKKJKFMFLIOYMIB]ABIDGHOM>I^IDFCKIE?KWIGMKIBNNQFCBAGEBQGKIV[LDRVGCJFEJIQHGLKLVJDJ;hW'EFBGOKQFH;TIAF@POJQPJHMHH>HKIIJQHPILVGUMCXGEC>PJWAO?\FKNKFEN>\MCKGJFDRIOHIUAKEHD[RJ@NYJQFIPDNMJJeJHJNRSWNKFIRHMZSJKCXPEXLKGQKDGJEMGO]DaLKYHUOJGKLYZLEjE\JDLVFJI0H2FAF1EGV7;GI@G2@6UPLL[W>@NM9XN2HMKLOWFSI;HLD8JDGMC7NI8RB?YSKQQH3QG2FOMC;GTNg3MdG<5AN1NNEGA6PE59JL8[U4EKCCL7>EOC2J-XBkDKRNQNBIR]D\C;r=XB6RDKJ]KDCOHBIIURKJDKOIIB[DTDDISHGIDFVCCH=WMGVBHILGOEEBFFGX9TQ@IHHKKKDLQBBPEVSW@BMMFERKD=TJD@XSVJPKYJJPMDTSW>PROL@HXIOVODQ@TCFL?GD>MFGDFNI?DEI=GIDAOPBQHSJTIXB=OLGMFHTJG\KTFIGHFKD@KYDA7>?PUD?PMKGIRNAQNYNQMKEKDKNFFP?CVKNNMIJN?KDUQHOJOSVDL@?DJ>IK-LALNJP=NJNNEMFGKNTTFOFJHCMHDIFKHIOG>LRCEGJbDUGRHMX7\LQUWPI@F>IA?I8LHBDHYNOUIJFPJTHPGAPEHFQOJKI?CLJLYHBEE?UKTCGJHD[LJ>E@JDSEQD>Z@NMJhRLJGOFAGLHEJULQIFIGLEBLSNGAESJEKNFH:MFNGUGHCC@ABHFDP<;KAS@AFDIOKLIH?IdSEEC@@E;K:5=A9MRAHJLROELIHDGTLDJOGKKMFGDFXGWE@9JEHIOOFYFQENVJHEFIGDXG>CQJPEEFRKJZCGI?;@V7BIBAJQO9LJ@AMHUCEEU^TIGDUI]WGNHKHLBSTPESRPLFPMRIFQaWWPINJK\PEVGZaKELNVIHE_GMYVNIKPGVPIVWNULJUJQLYEJGFSWDJCPBPAFRCLACIOICPXABKEVQJIV;V=TGMFEEHPHKRJCSHARUGJ>S]GEKZTOMKFKLOEBQGB?GLPL]RRKQJDH?H@AKEJPUUE>@LHUTG?IEEA^FJ]KPOOQEOILOIJIRMCGHPIQLQU[IH@KMUBGDW@LQNODGCYGAMKCGNF?DOHNFGOE@NGOC[LGQSKCRK\BNQNXDM?AVIWGTNS:JBDIJcGcQTGNRKP]JIHEJMHMFNEM=ESBPMNDALJFFGIRMBJ>??JIGSQCNIICLLLPLJTLMMKMSKIQDKKHJMKTFXVIID]JX?EM@MPQDB@EJHIXCJJBa@\LEOJ@UIMGDPKMBLR@PFFTLPKOW@FBCAGJHDFYMSJEHRNUNJUFFIQIJDOB@KLFRLG=PHBIHOMYKHJIG@CPNJLHRICJ[>ULMAJIOCGJVKRNRSHTOHBQKB@UEPKBB^NKOFGG@EIPKGGENMPBE?LCCBKKPK?BBECPJPMBFPIIDTRBUIGJOMARFKCGJEA@DJGF?PQ?FJP4KIDJDSGC[DBAL:JNKKDJK@L?DEHBFF[ULIFAAGKEGMHFKUKF=COHEDL@I?>AFCKME?K@KDP?INFELA?GJFEI=P@LBLK>HSJJ?DCPSO:UNHHJJIGG@EKCNLHM@DIHH9JIHJAE;HQLLH?NL?NHDSGACJAKFGAQ?P7BHDD-BGFJCCJFGCU9[DIP?GFFMDDPQGJNCJ@CA9TK@FLnD@EZZCR_DI]D?AG>B?GCRJCJJ:HEGMOIP=T?A@?K_EDIIb?V6ILPM?KQM@HGGKFJECL@DG_EH.CCKLOCR_BBZBHCHBD?CF>;J?UDM@IK=TEFp[XWI\*NHB6GYPPG]_BCJGIXGQP,PP=EATKWCFCQEDIONLFPFQRL>WXSTOGLFEFGN?TLKBBGMGDNJRKLWIFaLMNQQCHRGAJRG^GEPJTKPNFDNIJLMTKGSJFPJ?VFDHOPLDEOLJHCVHLH]KGKEDIEGNKNSD;DBOHRQXIDVW?LDNOGPNAPQLM@KKPENHTLAMNPILBNEM[OFHHCHFAWRCQFPFPODFMQJLJIORNQJIUJJML]N:JLHKMELELFASMEGUCHIDKSKTLFVIRQHCSOOROGF@ANRFRLKSEMFMHNEDFSIJDTKQK=MILFKMLPGOKGOWEN]MGFWWBXFHQKNMEHPIKSSGLTBAOOUFOIEGMQLLGKUIANCJKIREJFOJHDJHMJBIQDBFIHIKLBIEKKNHJOGHJILNFNKHP\LELGCSGLMJNFLNCGGMFGMKKKGEIMLQSLAIBOIIIFEKGHMFARHFNHEHLHFGFJGIFLB?KQMMUNRGDEIJDCKIGGRCDIMKLTKOMEG@HKKIFKOPFGETMOGRLGIOEBKGFDEBDFFJMFCJ>NGFHNHNHNJIJDGTHBNNJSKOKEM>JOAKIDKFNLFHQETDIDNMCJEJE?ENGPPIKGFEBQGLHOKJ<>CGONKBDJKVJDILP=JGUQLHFDTNPCBJIRLLR_PNJOCFTFG;C?IGILRITKLFNGKAHLOEEKFIFJEMQKGLMG>POeI>@N>PFDOKNJCHHTBADDMPGJHQGICI\F@AGDMIOKQKOFJPPGJAVO[AHEIHOFCXNBTCG7FKIIENQIIIUBGJ@VDL_PRTGRGR?PJGTJMEGFGF>E[EPQCLMG?QL>fNH=D@AWQKGFBCHEDDDVODIDNLCIDGIG^BUDGNP?DEGBLGICKDGPD@CTR?E?CLKM?FXCE:FHKJFDfLWOARETP@KOFBHJKNMTCUVDGK;BKQ@MGFMIRH@L?IH?G=bPBMOIMTGANKJ@LBN9R>DJKnCHI:R?PCJ@LGBEVNDILE[LIK@JNLHLPGNVKIB8IIFFFUFCQDGWM`DEZQEIQ?LIPKICQOKKODIZLT=I;KOE;TQCG?DIMAHMADNLNOFJFK>_LLNULDPEL;IHLMDJQSX@GLGWCLJdJJGOGN>QH@A?PGHCMIBEAFQQEARAKEHIHLPMFE@DLJBDEC8DJ@MJOEMP`KKCOOFFQBAKEMFEKQKHLDfSFJHW@@MUEH?ZHKFMLCDQJG:JMGC?EEDHKRGXDHEJLHLMH@COEoPEK>M4D=FKLBO?IPFcGdESCI5YoHA:>J;FCNDIBP-?9LESGN?]CNFaFJH7bM@JM[BBGD9HMOEI%LH?>5DX>BEJLMH^MnHGI_F]IJVFYNJHDJBXL>f:ZKJJFJQNXJVIFRMWMDEQAU=EER>FFNFMIFPEBLPMOFGCJCSHGMFJNMMOFPSDQDP[JQYPTEMOPV@BHPHOIEPBOLPRGYPA>JJGKQPIOK;IIOAR\QIKILFLJ\DLMKNJIJYGJFOQHPQF`JER?TIGEFRMYSFTIYUIJHEMJ]JBIJLSMDSJIJJHL>7]HTDT^OYEMZMCCUOHVJJVL@NVIOIWDHJGEH=ISFKDYMIJE;GA7FE7ZIDNF=PMHBEQPN=GGVEJMTN:DHPILYHHCM]CIKLRTUPR;EI;BQRECNNCI@QYIMMKPN=2NLJHLIMVDX]FGPLNFD@JFPQJGERM=?TVGYUdF^9GHC@UFH@BN@E@D?NH^VRKGCMJHUP=WMAGAGSJCF`CD:VJOBJLI[QJRMCSIOGMQUIJQFIOeFL4@JCIEQNHKMWIA3HGRMELRVUPQMWB>BVNHdLVODM?JJJHLRcd%DD7LGDNNJQXJFCLQe3VHTXUHAIG@VF2KCClLKM>NEIQBNLGLHPBMHTNR?VME9SFSGI@U@PK=N;KBLPCMYWN7MHE8IGLX>NDBFUAN@OEKHWILIDI<>EIMA=bMT:@CTHLHMDMIBIWCMRTKLELJOIDLILCFN9TSJCLL?PIEiOOJLDDAGMFOLSKJJHTLAHCGOFEGMP=STLDEMIPWMFBEKJIILHFINGKEFIERFO>HIEG=HFV\KLRNNMC@CPCBCA?QGJBH>>CLKML`GZGLJVRQD:HLEEMGHW@GCK@LM:;HGKB7KJCJBFKG@RdJWGIBSJSIIPOHBU:R@KSKHFJIBPMJJC>LHYHWJQPBFSKFQLEBFSKKD>KSMYKYMNQOGIMKNKBKKAMEGEJNUPNJJIBGJZIMOKNHK9=OJK]OMJJHIO\IFNALI?JHKIROBPEFN?CBMFIG`IQ[VIFGPDDIKUGTEJII:KLMEHPOVILQKF;?QNOHHT[GYINJHJEIHDJTHOIFAINKKLFFL_EK5R@QHFKFFLTJWGGKEDLEJHOOU`OPKOEQIQ[HHHCYEONKMDUTHF[HR[SLGJJ>?LRCHJHSHKTJDVGSNHbKNWNJQOODOTFQCYQMOOGLUYRIGVQYBHBKEoPPRMDDMLCRVMGVF=PUOIPJIWMISC[DLO@LJ\NHGPCQCFDXBFKLPJNSLRFMIDKIHOSOKNGMXE^MLFRJJDLNKDHHFKNJLBNSIJUNSCUNXODGKJDIBUJIIOAKJHR?HVKJDLLWMKAALKJF@ALQIPEAJDKKM\DOGNDUHQHGL9OSKRTJMJCGOJEAQPMCKTPRIPEFDSDJWHLDKMTNDPJLMN<=ILQAJ@K7N>HTDMLLNARQK>F;JUGCWDIV@AWC;DA=BFGMGVWFGMDIL;DG?EUGNNPNE>H>SWLHNSUL=KTLFD@TJNGV>FO@CG=FMLF;WROUCEIFJIEUFAOIEG;LHHJAMDC@NN?KAFJMOOGCMCN8OIhB@D>BFA3ZJNB>FJ_CGILBGH;LXERMCDNKIQ>BTH@C@GHGMRQD5?A?TII]NMMGHQELBD@DJZHGN@H?=GGPME>EDKISEHQ:EHWHAQG;?>?DXKELAQPWFAIVGPGEGHTBEI@HKGKGGRVIMH?JK@SOFBDGJIHGIBYOEIEMIONADEPKJOSFKHIH@Ne=ECBMYELWLJHNICQK?QAS=JEJRALMGEMIIIGCKCWJKID;@DPHELHDPOPQHJPOQGMCUCKSRLGGFI;IP@TFJMRRJCHDOTFEKAKKEEHLLKFMIQCFFDQAIT@HEXMDGWNGDD@FIIEHXLOEHGGNGC@MJE^MALIPLCNHL?LIE9DWQASCD8K@DE4GJBH7KB;IFLPBQPGMG?FJONH@JNEKEGFCF[HEl?GL8?CKCCI>NSDP9K^IJTJQHDEGFB>MCDFENAEMIDHQDZJQB@WDDSBKECLSU@M6CF7TCIKOKDNOHGQ@C?L:H@C8LG?MCHE7LJEN=BOBK?FLCMKMMOMJAOMCCDPKCH:FZNC@WKCECPNLNDOKHEIMNJD8NTLCWGRFKLFLTKHCICG?EIX@E>JBUFHII9LIILLHJLLQFCF]ARKOQNUAKH>@USKK@FVJS@HPTHPXULB>LMENGYLCJGEHP@OBCATGPQOHIWNCOKJJCoLD;HLGJNLH@MLGFmEM?MACAEB`CDDAQDKC[PSCCNLMJIKHJUYKGN=GH@KODD8O?GIMQFRTaBCX>>MCEFODM?V@EHDGQEYCIZDHL=DSO@RJE@IRPLGDOD?RHTJHMFENYAUGABYHLIWCL?KIQEFIOFLA[GQLAP6V]SALAGJQFFBNIKJADGTMCKIE@=HHHHJJKJIL:RI9JETMdJJWGDD;H@IB^GGNJL=OUFKHWHDHKXQKRIDFJKB;HDFJKFYEhJGNJJHFWEJJ>ACPM?JBIKYG`EQVHOHBNF?IFICFIFCIO@EDTT=VCQBI@_SOCLPWIBF>IL@EELNKIHJMCCENHAE=@J@DFDOHVBFIAAJKHMIBLLPG?G=FQGFKAAMEFHKKJMEKFEUGKA>CDAMJTIAM?ERNHJ@JPHKHM9>FIFH@RHNMEIBI>GKIFDWRJNHE?SMWAPDI\YKK;EQRABTIHBAFEFNNHmBAJAOO]?JN@KDCnJMBFRJR6ETDNJIPIDJ?KMI?HPVB@PHKCLQO@KOKEQNS]TNPNIHVKHTWJWSH@JUQNPKXTOMHDCLELR>PGBSYNRHCB`UKOEIN_O^WODRHPA<@GHNGIMBMBEGLO\OWPAYQY\MLKDKFIGJGPXKCELHQC:GHAAEHQJJBULNB_`GIBSFEOTHDFECH@ONXKJeEMFRJIJ@M`HJQ[VZSEI>TO]UL=DIGKNKLBCFBER9JBGLF`KLIMYLQIM?JNUBPWG>FAJRAKUaBSUFTOKSKSkEOIOHDNL@HGIKNGSCQHJMQYQULOJNOGD^H>MgQDHIMRQOJNUMKIHHLIGN?C@CWVIWLMGTMJQPLGBKDEGDTX]ERJRIOTHO@NGIQeWQINHBJPGLHLNPEBQICQKCBMKVDPEFNIJAIIDWDIF@LJKUBCMDFCNPMLCBJZGNGIJMJF?NROHEEMGSRNF?CILKTLFFINJPAFKFEEHI?;ELJDEDOGMJ

HLIMIFFIFNTOJYMDQEI@QKDPEDPLCHP=KWMEIGDGQDFRGOIBGIPNNJB@GAEHIJKSHLKEMLAGHFHJHIHFAAHMBOLDLIHEFBQKPTIBHKEKDUFLNF;IKCKBDNL?BHNENILCLQECIMASJRKKLENHF?NFGJHCFMEFDI>>=RBKXBH@HO?NG?CGQQKIOG=KPNHJQJBFIOKOPJEPMBJUHDPTMGQGTFCFCEANLXH?LKBNJQOMIBLC\HNALOGQHGGCLD=L[@VDNDIE@GNRFMF>EMKGQVCOJBO;XKMG@CNC:AMGXEUIFDI>BHBHRCTK>H=\QGIGJFEHNDKDKSGAKC;[CEKMUJMGLGBDJLDDNOAVNGLRIFDA\Ry[KLGHG>J@PQJCVh>HE=dEGUFFCFF?@[PPNXJBATQHFCD;OG?PCDEb@KPVHNEIXAAT?CBFDTPKJTCJXNVHBKQF>JGHKPLUME:>DMHH^?@FaDQ[=LFFMIIJGFFPCIBA]JJMEJJ?HWRHMWN@WV@KM=KXKFL@BLGJ7LNGHVVHGCiQEDB?@ENCAUIGMLLP8NJJFCAKHASQIBQUDHGJHH>EVXKCHPOLFKU?GIC=DQBLVFDBGTP>GGH>ENRF@WMSAHYK;LHJJSSPNZLIDDAAMODFLHLJQ=OFOPXTKKGI@?PFII@IQ>FDNJI?@9DGTM^HNRL@ROIZJJSDIGLQEPFSKOEF:J=QKJPPDEPIBLGLJIJKGI:YGFOIUIJILPERqFOEBOJIAOG?XLWOG\SNCMNMHN\COTJPEQIKPGKJOJBG>MFETLJGCL@OZMFOAJGC@XCBDJQFVTHFDKCILLQKKBOJKMHNAPECBEGBCUDHKLIUIIOKEFQGNUJHBJFFDKV=KQK>LQ@IIE?QNLAKINLCX=?IHAHN@LHD@PK9>JNTLPYEJKLM=JJKH@LDCKOWGEVEFFEUDISJQMDFLFVORIFMJGHKNSQUCJ>KGAIUFAOECEWFVGLAZFOLHHLIK]ALEM7NIIKI?IACIL>LGROHLQKKEHIHNOMKLOLKFGKFHEKJMDMIRHHSKE?RQMLFQLFDPKDP@QICBGHKNO@OOFVJODULN=DTGBIWKFFCMRHFHIJNNINMFA>LEMLCAGLGD@ORSIEJCFFQELMGPIFABOEHNGEKM@EEGJAMDLCGKBGBKK]@L>RK?DHMCBKDDBH7KP>IAPIJIHCCWAMNH>GBHRMNNMPKAGNDFCIPDFQJE@D@EDIHMEJCFKLI^;GKSG<>UOHLD@S]GGIK?DDGLFAGJQIUJBQQBLTHKEAHQJDCJOKKROCPLPFKJSEYLLGVAE_BFIYFCOJNFASCL=MGFJ@LOOKA?CL>ZI=DME>SOBQJJOSJCDFEZCCHOQZTCD?DFBETFQGANV@IFPB;KSDCC@HCJQBL=U?FBPRKCPCGR<6CAINLTHEDJZNPJNFLNONNO9aCEHEP7>xWYYMQD`ION9HH\ER@BWNOKa?C@JGNEFE\?ZM@RNOHPCH@?MUKLMGbF?KOPIOEIMTVOJLFGOQLLmJHGJUBGMJDJIMPPNFRYHGJCLHMKBDBUCNCJODB]VHKNWOROGRIDKOL>EUBG^AJ@ALOPLOVJJOF`ELD^?OKJNY@W9>LIKDGQGCHMTHRFHMOBLVD[GCAONFDJID?FSDIhLCR=IMND<@VBEFOLOELIDEKDLPH>GHSRIKJEUEILHMKLMDKMAKRPKVKQILQBI@SOKIGJBAKKRFJLKFKPNHHENHMHDNMFSOM@I9L?DA9IHFYKGLIIHIKKMGBIEJLI?[FKELXKCGBGGDGGC`FJXJFPIGIEEPILGCTIJHNCGKOWPYPNFSHLVOOQAML@5NVEGFHJEKL7SDGKBQHKOJIE;OEDKCROJH?JD?EJGMGKOQMBOAJECAMKF>D@OOHMBCNGE@IDOODC?FCQH>UEOKF>WIPBFJECNKEJQCHAB@=_BVFRG?GNIEGFRGDKDIMJBOVD?KIOEBMJ>S[DZQJLANIQFPFLLONHJJPAZ@@FENKJZCDFMNGYEDIOCWQQPHUBSXSSMNIDKR;R?JHJMNN;VPHJJGDSCCKJIGKJSDJKLBCRSMAHJPMEE?WPO7KPNNJNSMOPKFLHUOKFBGIJTKGFLHXHHJO>@HDK[IBNHLPPILN@JELDEC>>FELELFFHBOQHCHEXXYELIDKEEFFFDMQHMCMhBGNAMILI=JGIFDHLHLBQ^LJDDLGHBSSJAIEDPAAHOKCLE?FECGGGDJBFIJGNLKFPEDFBEKLEFNSBEIGEPMFIIOMEBLFCCJDUCANDOUNOJBMBK@CJKMUBJILKHGYIGCFJHL?IELCADJFGAAFLABKOFJIOKGTGIHMAEGQBGIOHMLFIGMA>GJSKBFLHQEA=?\GDTKF>NHSAIPKHIMIQLLBGGH[IGINIHMGCO?NJLQGJJ=DTKGLUKMEQPLIJN=OGMMNGCGH;SQMLBJCH>GJF?NCAIMO@C^PVHLOU9BFNNK@ZBIUHD@CHEPRIALGFEIGIFQN:LSID?GRDGAENL=NR@BJIFICNAGJSH9FGALPPIECLBFLEJNDVEEQFKM?FKSIGRELHPLFRBTIFEDIHRDNGNGFO6FBJFLOJOABJPKULVNCTNK?DNJDEKKNFRNIFCGNEIFKRPMBCQCDTNKK;AIMEDECLEQXBJGSHDLKQJFKF?Q=L@MK@FCDIGIDIFC9XXCBAEOMKHCHEMIDD=JOER;=TEIODUI?8JC@;O;CLGLGXDMGHENOEKPJRX;KKBIAFLEEICIGLIEHGMPEJPOPFQDBTFAAHKJMMECICEHPSEGEFOIBIEFECCGGEJMCIBBWNUBKC_HFC@NOMaIENCOFKLLIUNNJDQNILNCEGOFBEGSIKICIF@OKMBFOJAHTMLIJ@MPIGQCDUDHSXYHEKI?EEJHJCJCIRMFBHKSRRJNISDFLYPEJDIEDL>HHZUPOIKKMCKASJ>JGKDQLBFEUJKFDFKUOH@NLGEOSRLSAENMJEDRGHHLGGTL>IIHPAWNPJLCHDLOKIHE?MMDIGNFDMKILDIMHIGDHIOX@OPLGBGFINJAO@GCIQRAOPCWBKFPGQBC?=FHDQQOL@JMIZ>OOHHNGEBJGKZKJDIGLJBLBMFLIGLNGMDJCIMRODBSMOKHKNKFMNPTQQQAJA>CPCORJPKKTJHOQGSKMMRMLPL6NQLJFPNDGIYFEGIOOLVFIL>SOQOEALENIBMW?LFEPNXLCEBJGMLHVTCWPFMLNOGBDEINIEQOSSIJF@\FGUDS@IDMAIFGNNOKVN=CGPKGRTALKQHOGMMDOBDJKINIMGMLNIHJBIMJFQOBEKKKFFIACOP@JKLNT@RPKaILIILHBQPKFLKJP?HANHH>NFLMEKGKFGAJU;SLEOQRLQGPQWY@GHKEIMOJGOCM=DKHM@HXGE[VNGNS[FNGRFXIIKLGCN>BNJIL=MBMCPCWLNCLRGLPMLPKKAKPCYDMPD`PBRTGFVD=LBPHALJHEDPKJE>FO?PCIIJM?AFBEJBSTHGJYDQF5D7DKOTSHJK\AANIGPNWIBFFGHAIGEJXAPEIEHHGBBDSE<]B?HHVJKI?QHJTMPI@KDCM;TLKHGFYHFGP?LIMXHO>AVWOUJOGBHHSL?FYELIULHH>=KDQ;HFHUEMFLNJdIHJZPPCHAIVIVMJEJNBJIOVOOPKHHEOW>EN]RLCTCMZBKETVG@MLIRPIHPLQHBLODGJI?;LGBLNJKSMIGTZQOHMFKRMIQGKUKTVGKCM\BNNJKHS=QORFL=Q[NKGKFEKELCIOL;?IWIDABEEXIJKLSNJHMB;ICFFMIMNKCQLKBIJUPK@UWFMAMCJ?PIFE=FKTGOOGFJOLCQIBBKVTMKG@MCME^PQC=DHHNKKKOTXKN@THOLZOFDXGGIEOECNPHD>GP?EKRNDKEIFIQISNLSGI`XMFIEDKKGJMJFFFHFAKMDFKMKTDJCJG?TFSGIIFNPIOBECUMHLJWNEYH>HGJFJLSO_CILDEBBLRFEKEWHMKH[GM=EHDaKI[UDAJIDEGHHBIHDD_IDCDIBJKIG:IIHGHMHATTAJHKFHRWFQDOLRC;BGBDIIJHLDGDH?JIPFWZ=FE>HBLPFBHC>QINGMLXIKLNHFLM@BDNOAAZJL?HOAFFC]AKOCKDQNDLMCAJPMDIQCNAKMPNRQAPLEBHK@NOKLB@C>HGQNMK>LJFOBOCGNHJ\PMMHPHGGHGTIPEQH@FSCJLEKDGLOJGJVBJQHPLWLMD@N@HNEGWHGWKQHGTJPJMNWLDPQDINHGEIKBTDRHRIEHGMNKIRECFBLOKN?NBRLMALN>ILPGNGHNCSHSFH>NSERJTO?GSIICDCHFUQQNMKQJEEVHMTKSQSCJR=RGBTJd`MBIYWRBND^RKNFAUNNITBRJNILNFLHTIKHK;MAZVTWNSKDOUP_LNCWPRG@NMLDQNGH=BF?NJOOJG?LGH@TJBR=WG@MJYTLP]JMABBKKQ@WOIMDIQBGMCNNSGGMWSCK=K@MFDN>PJJEQTEFFHRI`RLUKZKINbRI;E@LJLPHLQE@JPOG^NJUI?_HH@KG?TEGAIKRDQC@FJGDKE=Z=KDSDPHPOLOM@IGDCBC=LBCBEOE[PPKAUJW=QIG]GZNFMHFJAL;GBF?LE>LPR=@PJCI7EECSGVKM:H>CFIPTMXEJLL>GCDDMHJKMJH>AMDI=DHLGJ7JH@SPFDBDDMAOMA8E>NE=QBI:MGDWGEGDSEBNPONG^QFL=AEJH@=:?GD>W5GQGKBID@HBGGDMJIDEC?>CECLASI=BB?LEDIDQ2@EGPP@CEYAPU?IA>FDD?GPOLH@?SD>KB7D@QQIHVICAFSINKJAFN>IEKL-6FDQGMM?AEH?MQPGCD<6?;Y=GKLTOSCHE6GCI@]EPC?PJI@JFNHNDMNCX=SB6D;CC=RNQ=ML8FHITQLFGKE9OYGOHKMTPF@?HDM=OJI>PY[FBE:CQ@K>GODL>;\CW[:GA>D?N@IHHN:EHGMFJb:>IFDIRGKNBFIGRCGL?UMDR>CUEE@LPBBKJORLHGB?SDHHRH?^6UFIW@fDM9PPUKLDIEMNDI>gOHD;ILJCZLEK?LVGAOJLJKCPNLSNIHVMPSCCB^SNANlEIILaVDK@DELMRPZXEVBFB=EULEHLRZK@KMIJQCBJXRDIKRELF[MOROPUGMLLLDPNL^FFPNGHELSNGYHXSMD=JHHDKgIABGDHL=HIHH;bGTFN]HLLJEHKNK[JOJMPTRVDDIMMJeINIGHLW=HKMKOL=SEG>ELPCNZNEBLHPMEONN=SEWGCBKMKPGVIFFGbJFEIHFMICIDWFSGTL@INEPODX?GGOIKMEN7BHLCLILHQNONDHJLSEGGKBU@QDN?IGHBECMGFJDYLFGBDLFMIGKIPHEJP;BJH:BGIWNME;KBFSO@KIQLHONIBPDKGPGUI9KEMBNFPDCBHEEHGQORHOLFLJCMHPBUEMTBQIAJVPKKDKHFIBIJKCEJJUJAGOTAIPBIKQIEIJQHDEKEGIUFEJD^[K=FHINOKKXBLKUIRIHDQUP@L>JUKJOHEIBMIBYEPIHFHTLHIKHSACRKLDIGFMJGILERIH;DF@ILIJAFUHN@LKNUKHIXRGQICMBTN>KLLPLPSPGBEYOMK9QJGOLGYKBTJ;=H@HADIJW_DESLJGBYIDOYIMITETKINMOOFEFJL>LFUNFNLGN=[PHFBOSTBGPIIFA@HGHISBME?TJHH_ZJKFNHI@FQ9S@J=SGETDTGCKCLSKMRFZ>9KPLABMAFINGBLBLBOGZKKIGNFFFKSBFcBNHJDGSBAFNFHDM\SAAFLECTMPGFIJDIGHBCHCAOOHWHJGJEODJ>A@UHLJNINBQJL>RBMPJKBIKJHHNMPGFYIRWCLGCI>CNKZ>CBGLBEFIADMHQCFEEFOFLNFJOIGBTYVHLJ;@GINLSGMIEHAPNBLIPSOBPEOSNC@GKEM@GKSFMJTMTO?BHSHNDF?BDN@?EPHNCGMeEBWFZQLUKGJ?EM;fKHLFFBJJQBPKMGIC?_JIGGFQZQDGJNGM8JDMHG]FJIFEOJHI^GLDLFOGBIjLFJTKPKHD[AIEHLM@RBBLMIDHOQ?XLQE?DTK]bEG7HNFSLQPOR;AC@SBFKDIJKOIVkKM]]IBB@WXMEEIJJKRNO;RHHFdIDQCVNWZMHNCBH?N?7SBnoHJ?KLMFDKEHCARICJ=KNPGRHNXAEHNX@NCW?G]HBRGJGTGPQBENLFOR?UGWVFX[NWT>GKDTN5O?QFHPSSRJTNABHQJYGPF;RJRDOCWW[GSMP=VLFFJKQHOTSO?LIWRURFNVVN:QO=JU@>NCSQV^KKK^UOJJIXUBCUDFHMC@IKEAKQHIZS\S[Q@IROd`IYUIW=QAdMEPFFSVHJPNDQBOFHPLRTKBURKEPTENDMU_ISALQ>X_VXSXYL^FKDQJ@GFHXXYUFFR^DWG6MYPRTNKJXI;WPU@JNM[HP[@GRGHGFSXJJ\:JQHBICGPHTNLNDNPPLDFIO@WNFTGLANSI8PA_VMD@?C5N>BD=KODICKA=?JOIN_LXJQMGJATN=LD@QHRYDM?CFG?M[NODK6M@FM=KN;BDDMNLSVKAWUFCKVH>>WAT?QTBIERJMGIUDMC8?FEY@FV?SMLPWMNMIEI[KKKMW<>IA8IMLEJ=INKQGQPJFJED:SHGQGHGNDDQMQHTJKKKNKcDDRILMNR3F=IQIBS?DIERHDLBFDU`JLFQKEFLZFVJCRIEIBBJIDSAGOCRLBJBWEHLFI_A\@BLMGHFJGPJCKMOSLGMSKH=EHMECQOFGLDMH^HILLGJNOEGFSKSCISFFJ@>QBLRJDRMPiRJFEEUJKLFMCKIPKFQCKSHLDBEINSHNEMCJCIBLJ>CROHGQFICPHN>OVJKJIPIA:BLGHRGIDONOCA>BNVPEEK9ODCPOEFDKSMTO>NMMPQMNMSREHMRKFNBPJGIJDB@AWHFPLLDRPFKFMFKGHJLMQGUMNFTKH@DEFNFJKRVDF@NHPHMLNMOQKT@JARLGI@BIO@BEKKHGFW@JRH@GIJDKCKKC@NHKHNSF@FNJGKHNONEOJDKLGMFL>KOGOFXKf\EFO@FKWJNMDGKKBEKLFDCGICOFJ7DF>=GOLOFAKWLTGGIOIN?JTMGL@HED9>LSIQ?HDMMIIMN_IBOKDJNKRCEBEPDRKM?@?WQGJ9FVMBBEQFRXI=JIDSOFEQDC?JBAG;BFBGBHLMCIQJBHCHRTRN>HLOMJCJLFHJRAVEULSPNTOJAMLVL?GKMLACYJANCASJGHKIKKCGEIHBUMAIMUPHM>AEAGHIELKDGCA]B`FNJBARJOKGEEHKHBBCFJL@:JIDKBQEIBJRKC>YM?RHG@@CSB@]KDGLY>GVKPGN?NMXQKHMIVMFUCHIBRQDJHNRRETJGEDLGVVWMGKKGCHFHMLNJNDOLLM@^HVOKRKEI@\MG>ILHFNLBGDHMFCQHFEKYOGCNLG>LHLXIM=F@SAKEAKQ;BA;ZGODHEQKHGFAADGGTFMOKLDGJMJO>HQKFIL=HNTKIFQGFHKQMPLINZANS9aITHRYDHLAMB@EWDAGCMESLHIPGNM@JGISGHBMGHQECMENCK^=?D>FLHLEFMKNR8ABFKIQDQMNJAI>IT@ROGQCHK=RYDCPNMJNBF@PG;DJB@JKMMFIOHQC@WGBFNMEL=PKLBJIFBHJDFGc;KHKNDBLG2IHGDEHHBCIPQQNILCQB=SWFJUUMK:BGR?GFDRKH\AF^CGLGHADJICLBGRHKJBOPVJLKI@D?ME@ANHH@LTJG>IB9GBNG;?JDRLMINWDFENJBKALJOAJAANJRJOUDYRYIIMGKR]MGLJJ^KJ[Q\IXKMCEOERNK?QHHLNKGXCLUIWIJPPNPFCR\CQEIGJDYMGIFcJDTBLHYNLNPFXLIDOEVEKQFN@OEEHIFIM?BDMBIFLBAMA>HTA[VRCOPJDIF?LHLCFEMGB`\HLNLIUKAM>AJGYFDGOXBJ8X?HLDSEBMUCJALMFDLENOHNGRKQ@ADCPCAUZHJDVJWGKDJFIJEOKHMGFI?@FBBTYIDDMFMCRDJGC?MNHAFFS@;LJG?FDTGRPKXHO@JCHP?EAB@I;EJLRDRGBTHQLUTJIGOIMNGMPBGUEFGU>MeM?THiMHLI;:ETSQ>KDFBBBCPQFFCCF`K>OJ:Z>KILHCI>EF8GRICJJHH@KLBDIRNGAQHDPO\RFIONLOKOIAGNCLKJLASLGJGC;KHDCHAQJLHADM?BAIHRVRLVFBBGG[KDCDF@NT@BE=D?HKNHMQMHIVWU{\IJILKHHJFBKSGEFAJJSBHPDSSBAMBBKNIBJEYIHFWJ@VWFYN?OIHPFMDBFFMDMPA]NLFMFLD@IRQEINCKS;JILMEKL;RFFG?Q?JRCI>HLFEE=:IBGMJMKMHKBBO>HGDGELFBQZHOGKKPNFCLNBFCF;>IAA=UGJGUD>IGALD;EAKIJGPLLQQIFJMODc:FFBRFJDHDFIB@OGCPLEJEKFHTHH@=HVJ5TNKW8LAGEFHM?FIG>DJIH@L?GFKFDO=JMLDDFHJ`BTDBAEDIJQGCOGSFHHEDNHADPLJQGHMLFDJE:IDFF?PLI?:KFMHGLBPOKC>MLBLKEI9MDKJCAJGKBEHLEGVJLQGWECEENNGEAFMHUBAGGJDNG?IAUNFBKNK=MDQTKRPHCIELIOHYGKCGHIOBGRES?PA?MOECHVZPP?FJOIJSUONIDOGGOM?NK@CCB?@FADLJRMGM;NLGORECUHL?@>MG?GMB?DI@CPGLC=FDGMLLHMOB?LAFKTJCIQFNLGVHIUBJIGCL?HMFER]KGHLH_LKEIBEMHRJE?JCMG:RBBKCVGLD6LOFBIBSJHHALCHGHOCHGFHJX;BWAHDPLRTAZBKIDMQHILD`GQCE>KKKNTJANF>VKJE?APSFMBKIQRBG;AJ=^JRK=CF4NSMEJ>QMRCMLBHJVGNMCG=HKE>>D@INGDM>J=IFILU@HJHJKKGJNF:FNKIP>BMND@ALH=FPPBLKUOMMRJGJN2IHJOYFHNGYKMAGMOHCJIHQNSNHMDRND?LMRYASKLN@EDRNELCBOIIMHQFINLMGJ@NNNGKRMFTKHPIIBRKFNLOHNKPNIQPVPRNN>OJREM;HKOAB[LOKHMDJSUHGHTMGOJLNHJHFLKDMKOGKIBICXFKTDUVOPJPNMNKFPOMCGOFFQBRHYOXQJQRNQMODKRKIL@JOMLMJPGI>JBMLDHIAF[ZERP=KLBA9IIFPFIF@HT>HKIQGGNNLDIJOFKM>MIEG?NRFADHI@QG\SD?BIPNGFEMJCBEKTCOEGJCHKGIG@DE?PJESOLBDCL;?Hd>E=[FMMJ>EDEMFLBHDLACHCK>=AALKEZTAHLO9Q?QPIBOYFRIJH@HHHBdHOKFMBCBQMJFNONE=JNCMHSEKNGOHFMHKABPBGFMOLLLO?IJBOGEMBDV>GIBLNEGMNLKL@LISNDBOF=MI?EDWHPMGKFFNJCTPNARKIEI@JEJDQHBMIPCM?KEDCKRJ?FHGGFEGHCKMMCEGKKMDHNEENIb@SNH?JNOFSF@KETCJIOCFJKIBBIKJEI?MFPCQCE[LQCMDFKJhLN_F?M@JMRHOOTIDIAJLITHIDIJDFPG[APOBUEDIFKPOFHC\G?LECBGWHLOTXLTFMEBKOY?VQHBQHMISKHTNIJTIROMKHGOLUIAPRDESBNPGFILKQBKMLMHT9FHIM@NTHLCPELIGAUGCNKUIEIKNDPMKKCJHCGNOQERLVFPJNWHPJOBCWNQEKMGVIJGGJLL?IJADKNGIEHQKQLIRDOMGHMMJFOKNLE@HTDW[ILEHIDB\FJMPGGE>JKOKRKDT@OLIICQFEGKOGBKGHOSSJNQLCOPNTVIGGGEHETF@KJEEGLCE@EGNTBBMIPLZDKH=PEOJD@QMFRNKDJFDNFNDEbWONIMLU`NTWFCFBRCK?TDZRNEJJ?KKAHGHQU@KSEKDWGAEBLQHFSJFQPJIOLMIGF?EDRFMS>IMSMGKKLKJLADEFPTKFL@UI?RQHKNSBOMUAAFMNEPDNDIJ@DRDPKGPDKORKKBLEBGFCLQHCPICFGIGLPQEJG8GHTFO@KMTLJCPD=GCDOEOAOOSQHBJD>MUFILEIEDSAEHORLF>?BXKK@GL>FCJFFK9T?5DEAFI?7OGEGMFFGKI@KDOEKMCDN>CI>?RNB=FEKFRW=A7GCAGGDLP>PEDMBJJJEBDUDNDBM>8LKBIQ?KAHBAJBI=F?REHEDF4;ELIO;AMWLAFA;JHANJAALEIA3BKBMI>DR7,HIK>LBK8KCPMDDLADGGFMI:DAKFIKKCN_QRdFEK@CKSH:MNAKNOTE@GIIJ=QKH?LAGORCOHNOKQPJUQLOIGDFNO@IBDHHFJLRQIRIYNBRPE@MNVMLJAGQIPLHGINBDOXLSMELIEQBILPN?JCCKHHNKHSC\JKFKRLXKRTRJKCLXFPGRNPPEGMDMGLHIPGFLHOQCOGNGRPKHWF~CNDDILKCGIGBLPHBS@N\CVGGLLGVVRKCPSYOJECQFRH@F=FMKEFFJQBKIMGM^CNLDONCD\EALH@SSIXGJCOEHQOM>CIF@KFJFINJFBQGIPLGIFG?DKSFGKHCIGJHYLHOA>>CHHIPSNHLCJCGPCGEIBLIHGAIAMKSURJO?SRDIJIC@GMMJKPFHNFL@FMJOCFTKQI;JPMVXSHENIC?OGELGKDPMLHMIBPLIKOEIFaHGGFTIGKDNMNLSCPFNSGDEEUMNVMNVE:LGMFJIPRRSQD>MTKHT;DGAREEJHKILNJMIEQBAHCHJVJLFJOLHDGKDOK4KZEFJFCHKFIFEJNDNNCAHLNHEEEPJ:QCMIOFIC?PDJHOFLFOFHGCOJNJNULMMMODCNL=TSQE?aQMEMVMCCUIJSCBJKBNEIITA=>OZQBFKMAEIWHHPYPEPT?AL=JFJ>UBDP5@IMRDNYKHU?NHGBHDC?=JLEM=HNIVKH`KRANDFDKXXK4GKE>IPFGNB:JIYACOMEMEDZKUHIDFGGEEIHM;J?EIJNMK?I=@JFZKOGECPCWACP@JFMJKFG;XRE@GP@:LCIMDRAM?HAFBGGH:^JNRISKCEBBJJF?FPL=@S\LJHOJNIJOPMECISFJITS=I@NDMGB@LBNJTLNNDMIeTGOIGMUSNNBNIJLG8LNHLHBAMLDJS@QNH=CGBNOHJACIIWMTOQPEPDIMRERYOPIHJWPDNN@NUEMHIEMQWFNPbKPLPHKM[MGKHL>GCGQHMPOBKFJJCPGLPHWG[JKIBQTMTJKFMXHPIHCRLKLFF>PCFDDMFWPJIMPBFAPNCAFFBBLLGGG9IMQPHCFCEGMN\ITBMDDCMJGLOWMQKMDSHEKMVXKJNIKB9IKGH>NJCF@DAHNSLHMIFIGSAQGPJEJJDHDKBOEHRLTLJLOBSBCBNXHMK]FIF8KGJQLJNPGQWLNEGDLMEKQEKIGKLRMEGJFDPFHFPNTSOIMGHIDN;LNROJCIK:CDGMDCJKHLACLEcJJDJBL?JLLGAG@LKK?BDB?NEJUWEJ?FLOJFEJBLFHJEGKMINRFEE_FABKOIRLFNCJMFLBLCDHPLCGGGFJKMXMKMPBQFAINHJZeGMZ>HSUIPWNQX@NPAFDS[UKKEPOJCY?HIMLK^HG>VB?NGAK@QRODOMOSQN?DHHC@GbIHFEAKDDK9:R?IGISORHJcG:MKDKZDLGA^XFBJIIP:IFLMEMDVYDGHLNCReL][LKJRIGFT^:ELFPENFKHOXGNCMLRPOOJNQIFJM[MRKT[DLPHMRTQILOTSLLOWKPEFMGOFMKIIIHLHOMOUPLEOJLKFHSJPJOHJZEOFGLINKJJMNMIEMDBPPONSIIGNULVRGMTNZZKJJPFMDOLFJPJ]IFBPRROEHDIOJRCOLLMLCLPLHWKCQFPMGSJMDFGDGKGKBKVEGKFSTFIGMJWELDMHKITBQEPENHKJHBQ@NBM]=TVEHOIMI>BWPL_EI8KFCUMZRIDJOFFFMFDJNGFLRREGM>LXDMJJE=LGOSLJQFOF@FDDDKFDEETDDJ_NIJGHHRHASIFCMLGMLH\FBZMNFH;BAUE?FGOBJMOINCKAHTEF@HLEICBRHXNKQQ=GEOEIIN@GDPCMH>JOW;GKI@SKMENAFaGG>3NHIR@iUHHHEIHKABnQ[II=[`MJA@J@IONKIDMTB9<@HOiIMOOSIPAKCI?IG@;JB@PRGGDZGDSLSARKZIGLGPCCQLHI?MWFQD9;F@D>TDRXF.SBKDGREJHCKEGCCDCJeKIFQCXLA?UMJOQX9JGInFKSH?GKCD7R=C>Q@F@OKL?BCIIC4?MDVTKQ?@NVPMWUQMBPOHNLKG_EQ;N@RPPS@DX[FWIK[XLSFIHFM\RZRFRQOHQ]PEW\FFPOFFPLG]`@TQJL?NQYLWLTKFPCPJEG?HKIWSS\JIHNXNJKQcMSSCLXHNMHPKGWGG`QK\KIGJNHIJNQIEOBMZFJGLQXEJMXb]KRLVOH?THNEOMNJHMHDHMMGHCTRDPOIFLIQGCOIHYLTGTUWNVVNYRPCULTPGELYMSPUMOCK\ZKDIOXIGKRVUNOTFTPOI;HODRWXOSDIKMPLK[NUQQHTJDPHJKLLKXANZE>[S@HBFKGMVIGANOAFKNIFJWALLDCPSEPLJD^LFJ@TP:EQJWKNP`ZNQ8DRLISEQYGDWHTLSbRTCSHQ=CYBM>GILJTQBBKBJCBTOHFH=L@TVF?LFLG`TE?EFPVSLSBWKkSQR>PBMPJ7NNOCGIHOLNILBJ[POD[YLBZM@KNmODMRLGMCCPKRIGCNLMJHQMPIHOTEGFIGVMECBJRSGLIVRFFINFKEGK\HEMCPKMELCMTN>SFADLBTCHFYIHNOEDANFAFTLDSBNJMAE@KLKL>IFBPIDFOVHDHLRPCPP^OTCHW@FJCI@HEUKFEQCGNMMJI\CDKHZL?@KJJJIbOKPOFMBGGJJLMGFJFYJAQSJFRCW>RNTPFOIHLN@\I?HKTLJHDPFCUQKKXSEEDXFMED@BJUNEHLQGICPIGwPK_GOBNKSEL[AIGCR@?I?cQLOKAIWILR;;[RV>TLPLPK=OBQEAW7KJGIIBCWKGPQIC@GPJYL;LEOI<`JQFK=8:I?NNFFK@`IQ:7]MKPHF@GDLVBDC@XYTDDG?FNAPENSSGINIGPUEUCFDT\JG=FDMK?RJD>>ISR@EE>hCdYQCAPBWGdRJHX?PGKKVOIGXTMELL@MAJELK[=EYMQLKMJJ:W@MIT[EVFAUDNIKNLM;COKQIPJ_M@ECILJHKNHUGHSINPG?GLNPPQGUDUNNMNBIIECQTKHIKIATGLOQJK>HPGDYRRKCOZJC`MKG?GQJ@MHNIDL>DMSK?UPJCDVMSDIGZG^DH_H@HIHNKXJIKJO?W_LCKCKDFJJ@ISBNMDBENPCSD]MNIHSHFG@PKjAK?EFE8BOLN>=AQI?KDECNAK>KHGGFUSGOHJAAF=DRPOXMQPKK?NKLHGKJNGALMBMCEIFRGFP?QHCELCAIFFIFQMHHQA8DGEGOKHJLOBHPFFEH>JGHGEDFMAPIL@HeGGPIQFCFRKSSTLPFI?BFHGWHGGOOTMJILNDVLMDSIBNLIS@EULJCWJQLKIFMICOJD=EHIJ>EACCMRC6JNINBHOKI=DQTODMFINHLIRJTICLDK@[DIFLIMRHR^PRCKKAUNBA;>DTEEDOIB:CAKGJJJ?DDLHGNAAA?AWFMLMAhPkHAHUCK7LJNHMQJ2OLEMRLLC?GSWQKNEG?AQBEVCPIKFH@B[\RHNMDGHV@WTTEENO9FBKRDDJMNJSPC:IPJMOHIHMF]JM>MAI@O9MDEDQBSJRYSHLGL?EE>MEPKFHMHOQ6ADSCHCGDH8RJUQ=?NPG=FTO>OUASEFLEF@UXWLRQ@VDDE=WINBHWFHOECUD>AEJMBIBUUSECIPD>QSXQGCHSFMECIKHPHFQIPF1CKPGJNJRDHNHJLINPOWKDQJNHNKHHQHFHIUFH=@NNQ?DEWCNIMNOPDMFL?6REcIKLJGHTUJ]OEIEPOXCOTGGEJNNJLSLXOKLJLGOHKNQ?MRGD?JHOOW>OHMIC??DFFLGGHQDCPJZGXFHVDH;?IG;LMDGQM=QHiPMUNDI>@NKNIHIEBFKVTIPDOHGDD=FBJKDKNAC@B8JKDSFBCQIJHG?MILZHHLD=DDHNNMDIANTRGJ?EIKADMH;IKPREKEOLJCIEDSDINKBBHUJDC@BCEQEAMCH8VLOFIKPQFFNCPPCGZLO>GEEQLO=DHMFNM9NH8NJFEERREFGEGHFHNCEFHMAJTOKJJN@KDCPPJMFIK@MD@M><:BIIIGBHEGDU@DHMLLNJ=HCJTGZKECCHVB;DJAORMTIHEURWFTLTQLCEQHFGKQL;:FFB>QAIUDL?\DNIH[KNJN@NEKJJBJ>EKQ_M=VFPBDECRHPLDYMHIQLLXH]GI\VACJKOANHMKCJDGHPMGWILNS8BMDIDQIHJEMMFWHDDEKRJQCHPSPN>LKKL@^JKETOLPQFOKLKPIEIEHEOMPK>OFMUKGTPBIOI?MGBPLVPHLHQFKCQFQIDBOGAMMJIDLFQ]IJSIAG@NQHFJADCHNPEMDMF=MPD@OEEGRFLIK}INPMVFEBGFTIDFMIPJCMGNYPTOGHIXCOD]DE;KQBMRMGQ<=NPCCMDEIMO^OJRKFGLEFJHHGHFSKSNJMFXTME?HHQGDJDA@G?DEXQD;aFPdK[DH?DDF?aD>AOMVT?NLNKICGOSRAIL:KO@UJHLQITB?IQL>FVJLJBIJI8CD@IUIGCCLGONMFMJJGT;HHG@JPKCJPDGI?NDOGWONRSHDTQOQASCQKG^HAJYHCJCQKEPMZBFR_BDDLIF=FFGIFKAHDQFTMAHADINDERTMOENJ;CM?OQDAC?MFLMCKK9F@KCEJIOFJMI?GJEEG?CL?HICID^DLS=A=K@IBENBLBLY9KH7PHDLD>W?BCRDJECECXPH?FUMPANKEHIHCJTNIJPFKLGICLPIINUKONLL?MMJFPFELDIRJJGFHJPIKJPRFDNJOHIIHJJLHWGJDPFOFCBKIJD=@FPEMGIRDKEQQNKXEJCCMMTEQO@GKME?FIQWHHBJENJNIDG@TOKKJLFJW;IIDT>VE@LOQKB=QNJMFVNCIAFGRMBILQODGCQEEESCSSHNIPMQ8PNBKJKHRQFL:VQXXGINNJF^FNHNDNEQEIGSHMKDAIGNULPKHHEMDKJ=JTONMRVPBDE@LLJMRELZXE`O=NFSOJFIVOGVPQVBSCHLYI[IWQUZJUGENCGMVFKGFPHMEVIFFJQHNIFNLNHLZEeNZAFHDA[HKDSMOF?ISDLDYQFTLEC9?DLNA@FDKHOLJDX@FX;MG@LIIEHhDCBD>@SXBCEDFC?FJIHECOGPHQGCMACIINM@KVHILE=?GG@OGQJGIP@GENLJHCEJJI@LICQPDEL?F>IIFLCKC=ABMMKDGLQDJGG?VMDVH9?GGADLJJ@HIIEJPKKJRIIELEJUCECBZIDS>GHO?BJLAANcLLHD@IEUPN>UTLKMDEBJ?OEHBMDPFMRGHGEQMHRCSMADJ?BFLINEE[@@EFI=IPBHB>A8ANGLIEDFLM?RPKMXBKJKDBOV_HHENHICKEJGJCJQFCICNMLDBQMFILFMIFLGJKIAF>_CPNNVATIKEUMPOGILPEHDQGHPIQHRJGRGGJTGKHK=LCFHDFELLNQHG=ENPGFL\L?IFPMFODJMV@JANIODLENB?HLLHHJBNHKYIQIHHHPKLF;SCRTUCHIKCFVFHKEIOTL?MA?IRBMHGJKJKIBN?KMLQFBEFHRHE:FXAJMVMBOBV@ZEQXGNIKG@F?PIJKNI]IJJELRJDH;BTDIDOFONI=JJNBUTGHKPDFEGSJOKRBIIIEBBHPFEFGJSDCCMOIMEDAFJCND@ZTSOPLANBBECIAOMJBBNEIEFDNGG\PR@[ALWE?IJWF@DHKQM@?AGGP@PLL?SR@NOKGUI:NXLOGH^OKLGFQGIMHL?NSFJ?IODGFI=JHIBMUHDDIL?HLIPERIDHJCDUANI>]LHDX?EMMOEL@LINMCGIATBH[DRHKDXKRF>U\FOMZDGITDQX@LNJHDDSUL=UQHXDGHUFIQMD@[JCUOTMQ_=REM8PROOJSYCJKDRCGGMSNQUMTYADHCH\HOFK[`J<:F@QN`JJNHCFIHEGO>KFXBT@KOEEHIKGMOSDZMYNGNEEH>=F@PVODQIMLE\KMQHMKONOO>PFHHB?SURNFFAM^BBOKFDMCPOCJKNPJRXFSdCPCFJDAMFH@GPRSRS?MDSPATGTGNL_LFK7OKBGAIMPSVE`JGLTMPT@NOSJ[CGXRICNDC?NFGGSPPGNII?DGQJRK`KOGHEBGGBILLHLGLJSHISGDHJMJQYXGKKHEILGJHUE^KKGGKJKEIGGKMKINOJFGJFIGESLGN@FKGJJJJQGHBFPBESHEA[LJJHJMbDRGJCDJQGLJGPJLAKODGNKJEFSPXHNIFMCGHEAPLTLHKHKOESIJNLNEEHLJDDGKCMMJYKDLNVRKGGTCJCGDM[PKMDNBHKBFEKSJCNJJK?G>GDOTLML@LINGMPPFCLNEGPL[JGHFSGJIBFBMB?NGEHFJENQCILLNMIGKPFFKIJBMDLJOFHF]HFINIEDKVKFD:FLMfPDNR_>>DKTFFBBMJLKAOQOA?DDFPNIKNCQMKKFQDMLRIQDGaJQEJJRKQNEBNHTK;UMOCFRGPPLNLEHQBQHCXNJPILNQQ@OJE>OJDSVIG?HDZIELHLMER>QNADH?GFFUAIJ=cXK>MSHFGM?KTDELV\MFCMHMYCMIMIHJZYYDbNAUHKG?XFDZUW=LFQFLVDBCGJI@BONKWBFRSDFJFlFOP]LACESJQHJ;;MCSDcFNKH_VLJGM_GAPJD^DFPCERJBBH=QBIFKDKPBJBKNANEQNDGF?DQJMNHGSGHFFMQGKF@F?WHUNAJGBJJUDDWRPJCPJLLEUHEQADHDGSGHKJOABJFPBB>IRIRJOGBHBQGPPbNFOPJGOFSQE[KEEHLF@SBGDJHF?OHOFPFOEMFPJSJMCRLHMNNDCHDLIGIPXIPG>HFGSLUDCNQCQHIKLJUB>FABDQRLKJBCEGKIAIDGH@>CE@JE@JKGLKDKLIOILFHNKG=LJBNEK[CCDHNG9IGEHLGMKOCEND@FNS?QCQI@JUOGUHV]JJUFH?NDIISFNQ[MAFHGINNTL]@DSGbQGEIG?MGLQ\ZD\NHEBIMFBLCIR;G?LNHLEGJMMKKIWUIUIM=KNPTNMJQ\;DKDLZHMMP[SLQOHMDDIWRQIKFLFLRYJ?NFHJVKECOXSHSAG>IICLHOQGNIZ_IQN@LEZEMESgFDJKE@EHCKXLE@@FJJJdWPFNLKL?NDTGNM[HQLNFQFNGOIDLNTFLJFQKGHMGCSKOVNRT:LFJQHCD[JPI[JOJH[N=SRLJMG@AHLEHCH\VNEHQHIHYOLFM[JHMDMAAJMKKGJIRHHKNNFHOJQJHBEURQEKKNPPIRMIRGMNHDEIPQHBEXJFFH@CPSBOCJAL=KGVGJ9FRkGFGNI>NRNNBQOKLBHBWWEc?CHDJHMRGPHHFKLCILRA=NPcBCDMECTCHEF;GM;FEDIGLTNKE@F?FHBMMHKCLOBPELRPO@BRFRKPCEKA@DGK>SQ=LG;KJGEIILCIKJAKBTLM\GGFBWRPLQFNFFSUUBMTBLKLGBJFHGDJIABGKNVIJBUGIDMMOLONICLDFGKGLLQHIWK@DPIFIQFIMHLIHBIEFMNENHEL?CKFHOGHNKBCVKEIHEFIKKIRVSMGJLBOJHRFNHK?EGM?NQCJJPEE@QUFVNJFA?FHI@X?OJMRKSOSIVRBSMBOOHYLBOLGWRLGLFFVFMLGDNN?EITPDSOJUNB\EQCWCNDSKMAM?EF>EEGMLNOROIPGQLECGIGFHGLJJIL=@MOIGGQSGKJDMGQLLJLST>MDBMBMSI9JNPEWKWHOGMAUC>O@HL>OHGNFKGEPPNEGLHR=KHMJIJLKSKBFKJOLGBPATMIQL@LECNYNKK@GKIIUGFJ@ELVOENMHLGJDNH?BJGDHDARDUHGIYPSDOKLMUCCT=OEGFOGMJ?VANHHEHECHEgEGOFN@QPGSNL>KJcCFIKKNMILCZISKUGCALJDGAUGOLBD@L@NEIQJTGFKLBHALJ@NHGNGLIIK?@CGKDKFCHBKIKKNJGHHQSJGMEIUGEMHJLEOCBGAAJFEUOEKKG?NMLCEHJMCBIDEOGAEJ;CEKXETEMDQA@IJFSFMQ=SHIRWMCQCFFFJMEXKDHGIJEDMFKMFDJKQKNDQFHNDJCASIFGGIKKIDENFHFMJIFEBPFEJLKCHDNPEHJ[EHNBEOFHDRML>LDIXHORBJNKJHKKKMNGOEYYIMMUMAI@HnGNLOKFAHMCEPJ>FT?JQHI6?EKK=JSL=NB?LQ\MRAKJ=FECE@ADENIHGLPKFJNXJEGcD9JSNPD=COPI@E\LWSIISLDARNFELBI?UAHQQGG]>EKNPYQ@MMPBTI]DIPFFNL=KCH?GCQM:GHHJFC>SIMDMCI^NGINAEHMHFVREEJKDNF;A=M@BFZSLQCMFKUPMNDJJKILLZFCKDMZUG\EPOG>mIKMKOJUOEQCGNFGTEBEJNDCGCSCIIMDGHDMEECRNEKFFJMFNPEKQTTANO[HK[IQIKNEBMGAKNEAaTWEDKADIISPIKNDIANGJRMHIAJHG?BNIOMLF=IO?EAC@@DIdO?ERJIB@J?JECH;IDH:?RLAMJBQBFGBMHTNSBDFFPGMGObIDIKFOCDOADDMJFKGPKIXJONGFGOKGFFW?:?CLE?`CPU;IG>FJH?aGFQJPD@DEIQC_JODLcFAKISaMKBSIJPGFD@GIkFEHGHWBa@ICCJECVATGFDWFNJDDRRQ@CGEFOEAHHTCIDXAIHKSLKFYJK>GCQY[GRLDN@IIJY\IEFKLP@B@ABIPOHHO?YJPPHRB_DSPICBQCIEBHABAHAMYITKIHRFISI?BE[NFNN[cAORMIELHLAFQNWOVKDC@a>FI8SODYUMQFGKDKNCMT@JLCUGEIMCRFCPHPGIKFFIBLM>HT?KLSMGDFHEOLOVDSKPOSH=CFQJK>MPHJDDOJFBEJNFKIQGN>JKLE?HATPQUWNIVLOIFJILLGM?AOWFEDORKAUMGODLGALH?JBOJNEFNFGCMLCLPABKGNLEJJNTLMATJNNFCLKDUR\_FXBGH?@KMRHGHMQGCHYOLJEQG^NJ]P^8HFCKOOFHQIJALOPIMNJINLFINNJYISB?PIGPDHL?HJNSIMKILLGITFIFD@GKTDQP6UWPFNMIWHNNHXNGICODZ=VSJIJBSFNECJPFMSAYNVNMLHQEPJTGHKaPQTOE[JJJQKRLN[ZCOLIIPL?D5QMNMQMCLFVMLHNKFXDLNR]LELOPHKSPNONTRRKHFJGLVMJRBJKHCBTKI?LJKXRIG^PHGQRKGUGMIPLGH=QNSQGPHPKMIGIIH7MMJFL:UNNFTMDBMDEKFJMKOLANKJDK=MFLOMFFJGJMCPFLOQLFOPENEQMMJ>N?@HEP?MOFJDGPDJQRAMLHQUDRGDOFVDGODNJIHKB@M>EQOSH?I?HQHPBCOFKHL\NHOFDMEH@OOMNKKFMP;BLLFMOGHKWRRELKIRBFGNJ>]NIPPIIGGGQECEBAOSJRHJFMKNLNORBNLLFCKKCJONQNQLLHFHNNKKFBDJWLJKRLIUUWJGNNGNLHBGBNVMPKKKGDVQGIPKFKKHGDDJH\WCOWQFDHG9KAVRCMMM>ABZeOVAQ;KUQVPMFHPATBYO`OFKKGIW;K=DTW@TDZK>]ZLO=GHD@JK?5PJC:FZOHPBHEVCLCTJ?F=IKG[KV@FFLH:MQIMEHQKJOKVN;NIPCFJIILD?MBGKKOHUKFHFBOFJAH]?V:GOEKQMBZUICRA]IP;\TDXJOB>KFCCIL?GFSFB>J=LNNVPP?;GNLKTHHUHIDJNINQKKIAPD`MIMQ7LG?FGH?KOMPMQE6MEL@SRHNHMI?MH?INLSGFUMJFYNCDBNK@TLDNIKG9aIHC?FJDIMIACOAHRLOV=RDR?QREBB]LJAAHPMLGFFLKL@GFCCAGGC=ROQLBHE=CCMMVHODFETJSJAMCEIFGONBPGMFDIVRB@ERLJ\IEBEPGDQAGGNGDSH;RE@DXQOKLJMCONXKVVFOO;JBBKCLFMKEEPK=XS?D;BHAEBCXaGHJLKKFNN>PUHDHFLNFFCDNPMBOGRAGJGJ@EAKBLNBH=BRQEOFL?NHAMNlJ1FAZ?G?QPOCXbFEAF?MPMI\ETNLBGRKDI<=GB?M?LJ9DQSG9DM=ITG?KJ>Y?NGECMDDD^JFKP9HMT>[JM?GOBMQPKGGEHEWOGM_EQ=JU?PAAJJWBHAODEIIXSGLOCGSCIR>PEPFCCGB3KAGGK>Y\JHHCJ@ESMRRHHMbDBNSDERPDLDNJIAMTIFMHXROHGBFSLJVOYOFHCBMK6DTEKJEMCBJLLQKSWW?DDMIH?CUGNHWCD:JBBQDPWEBHOQCGPJHKNIZFRLP?8PJQGHGCSCBHG?INKFDLVSHVEE=MJUSJBHKC\HRK\SJANIDSALJLV;GHAGKP[HNGFNGNKJGEOIOAJPINGIFGBHEFQKDM]JDGL:AHMIHHDNOGJDIDSBNGKTFI>RKJ=D[EDINEQCMEGNRHGPTIIEIHIWNIGM=EBXLGLLPIPCDI=NLRHHCBUTGNEFKQICBQKHGFEJDFB>DPMWNMAT;GDBII@NGFUINHNUEJMARLRLFRFIPPGIGMKHMHD\LJEEHPKFMOIO@OSSBEHVKJRHMLM@FPIRELIAKMPIMNOK@HAVNHTMILJCFNPIGNHVJIFJGQ@DJGEKHGIDHPV?HPDGEE?BGMLLAT]=IJMFLDCEMHFFO=I=VGRQDOI[B@HINPO]IQJINIMRKQWGE?INFOQFMPMNQPPEIKaNHIRKK7FHGNMBEDLLCFAGHNDGAGIJTHJHE^JNCE@GPDKIP@FHNLHAFU@UHE\MDENIEJJFFPEN=C?EJLDLMHVDPLIL?\@NMBBCKE?IP:HLFHD@DIHNAETRKKIASPHB@PJUGEEC?JJJG@IMLHKD_JGTFJKX?MBJNO@KSG\CDNEKIG:NQBMRBFJELDJITLE_JTKQRIILLHFL;GKNHOHCHOLLIJSCJNVAHNMNTKOQININDGKUIHGNHGI^CKNMVSNOLOGEDPLMEN?IIDINYBTCOKFHOPEBHTZFQ>MJIFPOMPSGPbF@LGLHIF?FCFDFIFRNDBF]EGREPZ=NJGKLJHEI@JJFCCHXPCLCFJMMUGHJFMCCIAKJEJNBENHIGMCGGEVPQHQZOJUOAL9CNFJMWBINGCATKI?DTGDIGCBJ_JFN^I]DD[FSL@G?Z_@UD[PDAGSJFLVHH[@GC@KCKKOKL>GDZNPa\GLEKRDKENF>J]gEBDXJPND\GGKDHSaE_EN[NBGYZGGE@E?UMT@JNLEDHDFOJ9IPGPIIJMHTGHB_BPXCGCLPDLMLF?WaAOV?GDFO^NHGRDCSEXM\PNMP7HEJ}KE?KSV@O=O[GHJ?IKMNNIFIJ?JBEAI\F>@HNRnINEFnHQHNPCFMFPHD@>DLMAGOMGIDMqIF@RPCDJOPIHCRC>HA@D>DB?MWMENADLH?SVN?a@GLOHBEIIKDNVEAHCIRFEEGKHHQSHEQaQFPTBRObNeLLEAFLDFJB^FGZPB@SBBC^O_QKRBSAAg]MEDASJNFICRLIENHQI@GMMKD\KG@EC>PMFOMCRGAJCP?IKICQVGN\BIDBMCJJJT\EAP]i>TbF[QAE@DHFQFLCIIEfORNbBJFEC:GDD]XKQZhJGPDQI?J@pPQAGGFMBADJBDGRDCJJFNRE?M]DHGGTMMCSGN`GUKGMDJ@XEICJPKFGAJPPJOEADJCJ>EHNHFQVPIHNLCKGGPTDNNNIH@[MElCPGZSFXONBLPLDDOLCB@MRQFPNCI?S?KFENCHEHGEALKUGGQMQDALFOIKGSLMIBIGMI?CLICIFLBCP>JVFVKFGDLJKWSL;?IEMNHMMDEDSNPF@EIFIM@IQQGLECKKQECFQLFCOCMFBGJVFHHDLN@FNUBWbPNWPUSHYF?MSLKVFIRUGHaTKCPICN\@GINISDPFJL>IEIGQAN>PQK@UGK@WKEHJFMEOFOQBAWXHPNJJJCIKCSD;FT@B?NK[PENDF@CJIMIMMTGGA_CGIPFQ@KLQQ?CM>GO@HKMbNDSILFFGOBGE@AIIIGKMJOLAPEBMT@G@LGFEDKWGDJ;HHIOGI=NKNJE@U9LEWIDTKOHJAOGIDLY@IAKDIPDEIDILNL@ENHMSAHEMNBEST=H>SBFEOFRN:FLBT?ILEUNF@HUKRRMHJDJB>BHQ=MFI?CILGNNMQKLHNLMPFWIARKIBBEXLNLE@;NKDCLSEZG_N?=AAGSLA:IJNUBLGBAVBJSHFAHNJIBAJONPCHGBNKM[;FDBGHMLWNFCFBGCAOLOKBSVP@DFNgNINLIEMDCLFAIPYOJC>FN?CGDMAGEQ?NMVRCKKLGCFBRVGFOAFBDUHOWIHCGNAPIOPH@NIGAIWBPAR>_MHEDGNSPHAAYAJOKJ?HINIZNE?O?HKDNGADCPEIWOJMVLETBAJDQAI>GBIO@UA@QBE>KPKRDHNQBMGEHMLOcIMEJIBQJHAMZ>FG;QEPCQDK8CW>IAMNH@CPF@KZRJNUMJ@MNQ;BPNKQUOLNCP8ITFMQVDFJBLKKBOKG>AEQFFIRIAL=@QAWIF9F@CBA?;GHPAJBHM`BQX?BCEI9RIKLIFCDG3VNP>KAIGKZABODNH=LHLOH@S;Cb=K@IIPJFKKNWGCDSJI>:E@TRBS>SKFOCJME8]FHFJRHJDLMH?Q5AFGQFEBMB>OEKHKBKCKJHEZFBKFHF?EFBGMPBPKC@@XP^RCBID>IEBURNRFPQOJRHMEGNMOGFCIAFNIHFJOECJG[WPCEN@JKHDIRFMGNFMDCRKMQ_MR@AMKGYOMLDJNdNG?BGGG6KKBCENHDDIEC_N=MLXFILOHFJEGJ@A?IOMDOWLCDDHLFSIP@@CFJOKJNFFBQ>HPUJGLNGHQJJO?^HTDICIELINLFJ]NENEN;LGDFQCSNGDT@`CJKIHGPEDIMQEXDBIL@FM@NKPGFV=LXSKO]EAGFEIDIFJGIFLHDICEFFDGENXLJJGQOC][KNE>G=FDSCCDLBEOGRMRHEHNFGOHGIDEBKINKGSCMJ_?DMOIAJPPCnH;LMJKUCCTGNJ?LQDJ?DBHCHMGGRMMHGFCCCJGNPQCJ@MHPPP@OSFIEQMNJLE@HEJQT@WHNGAJCEVCJKKBJM;KMJKBF@NCPHDNCNO>KNGEQKGIJMIBCSOEQJUJTGKKMOJLAFJRDEMPUBJJ?JSGOI@MLFKFRNGAAOGLKK?LWFAWGKWKIRLLA?IGMPGNJGLIPGMNHBFDHFXHFENUQYMMREOIFLSGHHNIP@FPR;HYMUOLLJIKMYIIMHLQ?GHONRLINQXGJLEBENMGHGEJJNDFFNNIUNQMOCPOETBNPKMLKIHHUDMWL^FMJ?NLNV=NPQGb8GGHK<:8HRULJGJNKBJ:Mf;5GJZE@PfBM9CMIEYMKL=OGFUQEEHO?ZF\DANG;AFaIDK:BAJJC@JKKJMFAA1JLB8I=B?ION>GZHACRTM=JIL>C?KBEIMH?FSFGLEXI;BW9:TB>;dHBV7YMMWA;HDFDEXAJMYTK>JIEFSLVEFHDAHNCD:>CJJVPE?TPBLMG@@OUSFbGHJ8ME>MC@L]_^BQDAKIN=:@Q]:KQHIE:?FJQBA_HCPTCCIMID>HTCNBLDDQB?LVLLOCEGBIOLAJBLOCHCKGEDJFCGEJMCNKFMGKHSBAT?KEJGHdNJR3KCOIPIMUBWEMNHJIJ;HNUNIELLGEKJEGD@@JOFRBIHPDTMCJECFA>JHRYAEGJ>CFWIFIHBOFBLKGVOLHOL?PJGK@KCHMAK?G9AG_FQDIDNIKEKNFFBBNDQTDGKTBCEMCQMLEEIF^LVKNNHDEQPJJODJFL?B>IJBFM>IIQCXBIBNH@SFMEHIJCNFNGABGHJ>MDCJERQ=FHLE@NEKILDMJKOKfIJEGFNDMLRZJAILEIPK@CQLPXDIJEAMINK?OEOEGVLGOIGPFMXOOIJVAB=MQMFHIAOBVJSPLLJRQOIBI?NGIGO@KAOGKOQHESEHKHBBJI>GLHKCGNEJILRCNKSDPJIGQJ@ALYOISJC[EXDBLGLDMCKGMKJEKMRKOOKDODIWIFHD>JALURQUARYOVCFBQPOHG@C>ISJ6IPHPG=DSCB>CLL?A@QG@QQE@NAB?CHNEOEDEQKCEKCARBBHAJJJNNP9H;NC@DHKDD?P@A[JJQCKC@IJCQENMGDHCCSED?V??ILJFGO@@DNAGPGLCHLAAGJI>7HSE@HJJ@OOCL>PNGLGFWSMD?BMWBKCMJ@EHKMGCKL=JKEP;QIGMOMIKPKKGLSKBJE;GGEEFNPKCF6O?L@>PLMJ>ARTBDFPFEJULBEZEPCJ@IDDDU=QMEFNH@@NLROHMHGGJKMASLPMTJL=DOCEKLJCJRAMG?BMFLE8JBELPDASLMGIJFLPDPQGGaIGCGIBRHBELIPDFDGDGQHHKMZYDKP?QDETLJLFJRNADJDCNQJGIQHLBR=HEWHPHKLCLFC?PRR@JLFIIQEGNKGQK=FDMQODLHKGO[QJOLbCMSLJHEFFFIMSA?I;GELKEGNEEAHPN@TJKERJFJEFWP;LZQFNCCCREIHFDJcNFI9NKFFFFPN:=BMDIJWIB@LGJDCHBCTC>UH@QH7=OcKMJGNPILJJPKXNOHFPRDQMDAFHLKLHIHTIOHD?NKGOEEF5XPEHDGK?LE?OFJAKG;CIBOJG@?PIG@H>DQKAHEBDAFVCVMNKKRMGBDDKGRZAADaGJOBELLNKAOIENCDCFIPGGFWIYDGBGB@A?EAKOJKGFJOSWRGK:LMGY0?FMBCBDJQIAMKLF>FWJGJEAQAEMJMQEGHHUFRIOLKHJLJV@DGZRJIbKAMMLHDFBQEHEHGQ@GGLJDJOIHTCICMQLGCBPLMDIeHRVP>QENWFGSIQ??AHOKKIEOLLVCTIFDKNAHdDVHKERICELEDFACHC@JQBHBMRHGSIENITODRUKIQJUDJOVQKOHNILJQMBGGJRJGFAGI\FNAEFPQDBJKTNARKQDHQTSOJIOTHDDLRXHO=DJJCSHFRIZONCECBGOHSPVFGNQILMJLJLUNLHPL>KELFFA@FPJNTNGBJ@PGHMMLP>WQFDCHJLQLBIDJQHGPOGQYIGB>;PECOPJPVEGHIE?A>N@IaBAKK@GP>R^SGK>YGRDOCKNSGLFPKILL@OINMILLCGIQFMVMC?EC>GDHODYJBJE:OGWBCILIBLKOID@HH>OJRDXICNJKEBAbHMNIJGF@CKHMIJLIGH\KL]FEBRJWMJIJQECKNONHDAGPINDKDMCSCRFH@QDAXMD[>@KI?HGECHSIPQmHGGAYEDBL>JHDDCDJILAALLBMEK?ILECKISILDMJYKKVGGDOAGLJKLQEQ^G9BD=8LGMIP\N\FL[JCP_HN^@FM;HMVQJNMFQUFFP@KS[HJ[NAMLHONCGL8KNONHCKDMC=WLN:CCVGTHHS5URL@BZMKQH`EMPGN_SPL@VLEVNICQ?=>BOKbINN[KJ8.MFGFWEUINnnKKSLFVOJSRSHDDL[HZTELEHNO=ECIWLLMFAHE;ACL[7R?LQOGTLGHAKDCYGLOBDPGVD?HHN3TFBL9NKQWBCJJONKIPLHNASD>G@JUJJRQCOJDJHHCBYRMGMQAIG?$UBYFb9LHQX9LFS>R4LFKbERI@P[NAK2JTLM\HGJ6EGJBBLLQZOFLJBDGTGJIFQFIJC>IPFIOFQ8COGK9FHIDIKIKR>FOKKEEEIMDEMKMOHKGENS9PGHKR?EBRCWLQQ]RNKMLEQTNEEM?FA^GGLFBJKDJIUHME>NGIJNGSTIMXD?EGBTIKXOJQGNJ@FLILOBTFLKVDVJD>:BEFQOFEKHKPFADLEJFPSNMJKF@JHJEMHWNPEOHFGLHMFLUQDHMFJIEHKKEF@AGRGOJOIEOGASJDOMHLA@FOKZPWNGTDMDDPJMOLJGKBNEJHH@=MTHCPQECRCKJGLNHDCWQJK=QEKNOKRF?FFOKCOSURFNT@L@HKRICHHNFJBBFBCJPQDDLRULEIFDHRQDRFDARGBCIKQFJJWTEFXANOLNICETIOPEESIMIIK@KHJEHHSBPJ:BSFWFJLOFNHNJKVJFEVGOGOIZFGFD@NIHOIGEQOCPASCI@OTNPIJD@ESHU@SRGLJVKFJP@EkHUFTGPGGHITKBDIKJIHE`MEJL\GJGcJEFGIXCAFOH]_JUOUDIOEENXEDAFAETRDLLaBOE`VBRCGABGD\R?NMRA[RMSJTIH:CKJHKE?DOMEFTEVTLO[MMFIPKU=JPMNFIFMFJP4NM@=LKHFADOE1HLKPHA@LHGCOAFRN^^CKVFN7F>NCI;EEDPOJSLP?>jOEF>GLXIN<:KHHHJIT9:GOMFFHNUSMHV>?GLGnKE7>JGGYKJRJ=><=CRUC>I=ICE?bIML@K@EGDMUFFGHEaIZhN?AC^YPQOADFGFJ>Z@EMMLNARGVPQGGU;JAK?Q>CIK[EQ=QRBMFXGO@A?EGRBOQSbGORRVGRJJMXPKEEDDJNiXPFFQCKMONJH^C=I>D@IDN>ULIUKIZRTGLNFFGGILC?BC9HGUM9HGTKLWMCLQGKNGHCPBQEBXJLQSHDPCAF<@LQPQEOPIGKWKMONQN@IWK@KUCNIGGMLHJKIHKYGHUPIRBC@QZOMDSBD;>G>GHC@IHGMGDGFCXPNKDDKGKCICQTAG:HYCEVONRJQLOELM2>VFNQ=`G;GDBULPMHICFHA?JJPBDDJDF_OIDICVI]>PBQR>S>LBKCXED@HADAHTQGQIX8PJMKBICLG<[LMJFEDVFRKOHNLPDIUDMDTB?@??NL?G>PFB>SOTIKCECNPUG=Sm7JGHIIJKIMXF>EIW[F@OL:HJMIHMCLJ;KCETCDGTPK;B=IAIP@DRGFJQALZDQJSAGHD^GBLNXCREDA\IIEQNOBF@PIOGQHHPMPADKLDAKDEGG`J@TN?@?O9DJ?@W]JGKDKL8@EECET@H8HOCIWN?NLJIOILMF=C>IBFMDXYIINFLCG]MKDIFUBMCLHMKKIEJPVJEFLHXIGCGVONGJRBHLHQH[EFGOEBNQHHQFILHHDJREEJCLCMPTJRLIDSHC@FNKCMOKGQQHIFFLCDHBRJEB?FHFFRCG@EBK;HALUNFRP;LIIASFD@PIG=AJEHJGDCGJNEELXDI8ELG\G@LFDGKB?OUJP@;QF@QANTDCINHJI?;@B[CFVAFBCCBQINJJ=MNFNCBRM>EKMFKJNINAMEPYEGGH@FHEGGE;MMSGJIQIJNOICSTPDJPZL@BQLQCSJANQJECFAIL@KGLBPFNKBMLIDSBNG>A@UHLKM@MRJRFKJJEKO:LKNLRMMK>JNFBAUDUGGGGENMF>IIKGEOD@MDHIG>RDU@OHBG@GJBOIJGB@I9GNDKTA?UEFVMAM>F;RJHLC7EWDXCQF@SJDHKQ?TEFDBLCIKK@KHMEFiJIKX8BEGG[5DIGDHGCMG>JBMHLCH_@GQDdRnELHQNQOCECEL@KGJHGKJHDQ>UFHOB#KMGGCFAWLKECH?AK>T?FOXP>CGTAIKNUUG:N>ILYCMNGDFHCDP?\BOTAL@BAMGAIEXDEOE>OTNO>DWGGFIFDG>R8EFIDI=KO>IMJYBDEFEGM9WTEHOVDB@KC;aOSNUNBPJNHJZEMB>EHBGCEMHQGFKALXGBNNFLKCEJJFLCJJDOFIFIRVEBINADISAGYOGOKEFKKGCBGRJNELD;LQHLHCLIJ@K?CLNEKEHC9IPBPO?UMPODBEM?IJIBCN>EGJEBLDOAGULHNRKKENHIGKFGVBJHBTKFJB\OXIDE?O@LOFPLBFJGLDNC>dLBJQBKSCXLFWMIIIMBEIKEJEHHGSNDNBCRWDQMGSDFHKJHJ8IFLQIMXGPHQYNDVKYGOUGEBJNAFFBHJIBHDMHHC_HFcINKNBSQSALGIFKDXJCDLFMEGFKFCHIPBOFFKNNFIHOJQGJHPCFQEKMFLDOKOFLJCIIIE>XGMSLGIFLNJMHHPP?NSAP>OMMRCNLF?G?AOQIIVIFDQGLH@EMJLLFCEPFOCCGMYNSCLHMEMKEJAHGGOWLIB=ER`LP=KJQOHKFGDPJAKMHK3RHMKMEDFHTUPHJKSEFDHLJcNGN;LIG@EKNEGEIM\HPKHELMCCRFMBSLBBGK<=JCQ>MGDDKIMDURAFYHREIWBJRM:FM5FAOJFLHFIBCPA?>DBFHPIQKMGP?@JBMJOGFPPJLJWBNBMFFGSATKP]EMBGPFQDBMIJNNYFEDLF_FRLINIR@VFBKKAXLCO>CIOQEKPOHCTGHNSOEFANDGOIJZLJKKF@RGQ;HRIQBCGY@ADG:MKCSBJEMSDNFFHMPI@JEGFIG@BR?JKOOISHIGJ=MNCKBEGLLNVDJI>EFJHYJQKJDLIDFGKSFITHBQNIMMG?IQYRGSLAF=@AAKFSJFFDXBEEQGQN@IBADKMBHN8GEDSRJUMFN@KHSEGMIMDT]COBULAIXICPN?GG<<=IDQKMBLL@T?OFLIDDJIEWF@?NGJIHJCINLONCFGQGGC@CG@MUQIVEDFJB?>B@;HkGKJ:QC@HPKGMEHRHDNCPFBPBLVOLF:AAN@HFMPF?[FIHCVBA=GMFBEALMLBSDHJJPBMFEPLRSMFDMEQLBIMALEKOD>BIFDIGGHD@HMQBDADOIRIJ?O5MBKHKEFBPGK=DLICGENFJ0LKFMKFSGMDJCHDEFGHP@HFRGSNOF>AD@7UJ@C?:FKOLGEIK@JKHBJ@GLKKPHAF:HJYAI;LMB8GHIQFBCQN?GHPPNGFMMBDLFP?ESFH?CH>JISENBNS>MIGZ?IGDFE4B@;BKDGIMIEN=EDZ7VCFKGDDCRDU_NFFCQJJ\DGV>NGFXAD@FYTFE>BCAFSJCOeKOCHGK?JNEDRSI@@?MCG>YJEfN>GJ@FIMKKTJNKGKIJKCDDJPAMS=GHDTBOFPD8MXKPMKKXT@QECABDLTKGRC@LDFDEXF>WQA@EILLFC9NJMHYU?D@EOHSLMSBCAHBLR=KE?LG@D_DGF=A>NNM?WOGEPNSLK?8IJBKFEPLO?CBHHONLLSN?JPMGFNMQFTAEAFJIO@JIDLURINKJDMLBNIDQLQIDTHIEEJFODBJWVWE?LQHHII>HIDRSGY>?MQAOXIQDLDFDACHNURIPPNERQMJTOPIDHKBGSEGMGIDICDN?=JOERHFINDNOQH_ELOc?FNSGMGMOIJNL[QRPGGLWHK[CHG=II@IDQJE^SINIX[GAEGGDLLP=HLJINF1UJ\FVENN_SDCJBLPJQ@LJJCIKBL:KVOIHADTRFFMGDJCBMBLGIQLINQFAFAKDHOM@]FHHOKKE4HJGD9>@VGDGI9OIKKJDAPPIHLMLKKQVHKDEKYRLEPOGGHZeII=>BJI=PED>FLH_GBFLO@EBR>7LL@L^CVKA?S9JNLRFGFGWSKILIIDQDFNJLAARCSC;E=MNFCQBHLIKEITW@KQ7FRLGDLKC]CJIAD?TLVFLEGVGFJUOSIEFFCHLKKVSRICFRBIC>LSJH:MDS:BO>QEL\RROFHCJ@WGHNFFMGBKFCDMJKJLGBPI>MG@MIMCGIG@EFTDD@@JRPKMM>KD[GEQ:QNOF=INMKAHP?OQENIDDQ`HDOFF]EMAD@>HBEAUNEQNXGFFFCDBPUHBAGGCMJGCDIKGEDOH:NFRILHBG>BF>QNPIMBKLCG@FUCNBICDKFJ@XZGND>=FLNPNJM@B:IDEZSJKPSAKEAKPNIDKO_GKHKHRDEBFIRLNLM?J=SP@IC?GFH??XQGQ@EJPJBDIDKOFAFRIGGN9BMGJJCTJWFI@KI@IMAHICLAEICLJ@IMIIKAFSQ\QGWTI:CEW9NHFRNd>PPIBJEML@QRGIIGOJED?RGFMKQQ6N^MDJHYIFg7GBeJMBGHC:KHQEJKFS9BBEF@DGE=N[@ILVRLJDBQKIBMMKH?LQWADUDOJNHNNdM>QIVHQNQ[BIODI^G5K@O9PHEOTROOSP?DOFMObW\KLLDD`[4GIXKFF;SPJD9DVDIEREF\LKP>LSNLOFTBPIZVF\DRNGSPSQV[FI>FPKAQQKAH@FAHXDIK@MF=GPLMJFHNICFND?NKENPO@;HDDFCPHRGPA?>KQDLEBHP>FRJPBKDCCMLFBQKENQ?KBOKGEICKMFOCGTFQIRMFKCKMBEUCBKGPSEDQDAKJUHRMBDJJMQFKMOFGLLKNCGALKOJ?GSGPNBOPSLLMEOKWNAKLJEEOGVMC@KMBINPFDSHFGFGOVKMFD>_LEBOAFTQIBTKNJRVMAMFDMHFVK>NGVMBODRHSQLOL=FEEL`QIBJGIHHKHCNTcLPP>LHTKVGDMTEIGWGQCEKLGMQGLLHCBMGNDLADDD[JWOINAPNBDAKHNNKMGGANFXJJMDMKZKGEKJMKOJUNEFIEN:OJOMKUGRJGHHKEIKDDFTSMKNEKOGKKG>?Q=IKNDOGIJEEDLECGMLQQAVKIGCUDHIKIM@<3BGE\LKHNGKC;ISGGM?NNLK>FCNKCPPHTJERFRQF=P9BDDFIVNMNF@EBVLEFMP@F:EK>BB>O=KWKAOHHBJBDBLSOKNIOWFFMNFCBLSPJIJH?DNABTHKFKJP@PQCEQP@Q[JITPFGNNXHFTQBUNOCFEIDCFGLK=OT>QSHKDKL;?ROIX@^FFAHKGRMNLCEBKL:DO8RHHBHC?PMMEFICIKN[=EEGKCIITGEHCAPOXMR@HFFLTBCHVEMKW?NKHGPVQYJBJI>RCL;FTGIDSFECN@?XHTFMBI@]EKFDGGSKGNFBFZXDZG@WHZ>J?LK;=LOPFJFEIMHOLDCM]IFWRH=CB[M?QOYZCI@O>JJIH[MRNCWLDGFYCURQGJBNSAGTKUDNLQCOBUIFAEQIGMJMS:BDFCPLLKKINXTNIMKHBDFOOEHFIHGLFQ\DOBCFAVOD>N=DEDNSIKGCCUBFRpJJEDONG>HFPNOEDAKHN`BQGFMLIMPQFI>CKIK@WGGOPJLZhL_BGWLGBJ7NCDJXRNCIDMD>9XCFMQfUMU`LD:MC;YSFJD]FHFXFFDGIG@A>RXK>EERLC@LBB@B\@TBDKdOGKUU7GEMPLEKNJN=>CDXKDMBF`R8JMQCAPHFHIGC9GJV_IBQ@:FD7KK6TNKXL;KHJNFQIDRW@HBFG8V;SUPYPC=LfRJS@?CIWV?D[@OP@@QEPGTXDDHHOEUADGLICELOEHFHDCAcAF>ESVFCFKFGIIJJFNXPCFL?J`KlILOJ[OGYR=@?DEDDFbMUIFLaNEO\*LATZKY5UANGOBLLQPIDHULF@CE8DMIHLMKHKLQBNOIGG?FJFNFLFCGEEI@APJ;FGGLJPHICOKFGBIWYOP^DHMMKE@KD:9KAL;MJTLHMABDH[ICAMLDRJNAfGBF>NGCJR=GFIQ;>AI=BG?ICGBGDCFJLN?NKEQL@HZUCLIAAHJGMESBHENDNS>EKHPPJDEBETNFLHFHBC=99DDHJH?EOEEKKNAOMITCKF>KQNRRGEEGKBLJLO@JEFBDTYOIKJFKSHCGGACOBEK@NPLHH@N[PAQF=PLHLPJSNBPIHACQ?L>C[QEKMDIHJGTGM@KARAMNKENPKKGOLDGDUV?FSKKRHMNxKCRZPESQIJHGADBCEKEJGDMIDPVNRQKPHINHJCE@QM@RO?LEE\K4AGJ@EDRQJR>HNCBQDNQcMEHIINTF=@KLBRPNCVKNPMLDJIMKIPHN?TMNJGNJLKFMHSLGCGJEXHFDLD:TDCGLBNWG>BOIFDKJJHJN?QFOL=N`IGCANJHLDI>OOLJIFNOTNILH]NGDM[PQGFGP?L>@JDDOEGRCHF?OZRCRMBAA:IAJLVBNGEDLMBMNIQMB;IFKF>HPYUIEJOHMKHH?EINEHFKLOHUVGGEEWCQG@FHNRMXCLLLHVLGWAIOAWOJETDMKADSED=LEYQHGIKB>IPEKAbLMFMIJMLW[DTOAIVGD?KRLLECBQFG=KILDHFSFQIIKQLENGJGALB:UHGJBOIVI@]FODHI?OHGIGL[HIFJ=CSCBBI?IKBIIIJGKCI;KFLFGEE@JDEFJCIHPVNLJMJFFDFJMVCRCHSPASHKCQF@HQ@PJJFSWJNCQAFIKJRFHTMHOLNI?RKKLJD@HKC?BPDB>RLHLEFDRBRRFLRPEHKPH[DENHLI;BHITJDIADWKNIHDYLEENTILKI@EIGUNJFLECLUWPIYS>EOFKVG?UGHNNKGBJBLIJBTAFCKB@IFU?Q=CRL?NEGYL?DSSLIGDEFDCIBFH\DL@KNEVMVLLRFENOKGXOKEQ\FE=NDDLHIFJNFFJGEGEGDSPZSDFSPHLFHOVQ>MOIOEBCBNTCKIGBLQH<]KCLJMXJEHQIIY=EO@ALRHJJK@ADD?UHCNNQQIIRREILN@VBHFHBKETSGNCMXAKGHMH^SCTHL\KOLKNDJDFCJRK@UDSEDK<:HMNQFIN>I@LZM;nJ@GMJMHULIJRMSVXbXMOELDWNKFOFMKGJL;CABQILDLMLDSQFIGNIUUGRF>PNL@LQWBD@GINBDHPBB]DVKTNLGKI?KEJCB>CEL@AM>IBNLINUHLIH@[AJNTG7I@FBICJCJOSRPLMOL\EIGNHNUCIQHSTTJG=GJLJHKHHMQRQHLFJAFWASHAPQPVAFWMCI=RNF@NDLNTBNOFIPRIJOKBDF7LOOEKOBGHRSOMMI=EPDGEC?EGOB>KHC@MEDESI@=JBWJVBATH@FZGJQLKHJCAC[CELH;KWLNRMOIECIIQCQJI?GGEIiFM:OLFBNGF=?SLI@MGLPDTGEIZLKLMKMP@N]KPMBKEBFPKODRCELOGMGAHLPEH@YGZLGNIKE@JXVJLEHJJ9AOAKIDG@NGTUD@DCENEKGJLKGMKUBIKLD@MXJLQMN?KMGG@PHGIIIH?KPJITIHJOIEMVIC\PREOBMQNYFIOFOUGNGNGGQO[NCGF?MOIQFN?K?NGCJA>GSKGIDTLJI?DNLM=ONJEXG?EIRJFH=CDOGOLIAG?IRKAICSDYINEFDH=?CKOOCSKHHED@OQGGH?CLEFPLXE?MBLP>IFLHSRHDHFES;LL?GOMXGFQGHDCXLNLHOFO@S@UOHDIKJUFNLQ@AMCHLI@KPLIQDJLGFFGcFMHKJMGLC8DSAZUJCOLNRGKQMJAAIASDB@AL=E@LBPHKGVMJPI]PJMLA>HJ?C@JRNBLNOJUJG=JHFDGN>DQLOGXNOIJLHLHEDNN8DOE>=J:TJGSDHYCUKLT:NIPITPJRH?KSCMEBENCJLCVJEMXSYZMQJFYAGK?HDBNFIR?J@EDFCRLNFEEMQ?MO:BPEFTAHGIKMJEPDHEOGZFL;PQQINYJFQOKCIF8UEFV;BBSHWF@K=FZBOOOHEEIZJOMMDFFLFFBIHQEFGNIGLNCCJHFZG?CCH=YJEDRE=EC>IMNUYHCCIO=JKFD=KK;IGHGFLL?RBUICIHIGCCRLE>?CIMTNK[FLBGIAQRDI>DGNN?HRBPTCVD;BE>QAJLGTDGHIFLQTTXPHBNM:BHNN<@INNASMESTEQEGQLKHCHLFFFNOHO^JTYE?CIIIDMJPJJXLFEQMCIFJHBGAGAHKQ@RLNLBPNFGPOOAEGBF\LEENOE@VLKNCHGP@QSKFGIXPPRCKOJBWG^HOIEFLDI>JMJMMIAPSENGLQXSHIJ@GQ[MJM=EXBJWECQGFIKQBJGBKD>XKHJKLLQIGBALFGPJJFFL@EGKKFFDSDDHPMRQHTIKGEKAEGJXHIK:=QCPKNIUGEOLSGSFSFKKIO^RGMUPSMBNPNEHTIHSJKKSJOBRKDGAASIE>GJIMEIJ?BDOIC?HKLCcDIPSQMBEKONMJ?FJIQKJKQX>QLNJDHMKIEKCLNKKERIOOLKWLDWPFPCKT@DKXRQLRTIOGHFJQKGKEGCUETFJMPVHTBSPCGEHHJQPPNNEOFOEOLLKSGDVRHIPN@OAQT>NGPIVFGOPKRHKIJ@CLEECLHJIFRLZQQLCC>OJYFQJBTIBDJ?F:RKOLLEEQJ[AOCEFPOWEHNGEMJG>QSDFHHYERIHJVXCFJPWKBM?GKSL>BGCEHSCDOCJD?EFGELGH@OTNHEIODFFGGJKNNCICMDGNRHDPFKHKIEAUOTNAHQKNJJVJJDSCJEFVFNMGTFMDHFMRHRMMQPMLJOJOJL?NEKL;EPITIIEEIJBJS@LNFHHGMMPCPPSKAKW>K@>UC>EOTB?=AHERWHHLFRIBFQOBJSCQ8NGJIPMSPGEMGZ9IE=HGRJIYTQMAHLIPOZQCBFJOGPQDEMOLGNBNhEGKIEYJINQEJLCMRND>ZJ>AJCSO=5@EGMHRCDWAUTT>NTOQ^KNI]LAEMFHJNJOMIOWIALQIINIFRQCPFHINNHbHLGL?MI?HFJOTLE;9IB>MC?JK=@DGIQ?G@PAIWLMC=YNDCKK@G>EVCI?IKQSPJ@DHNF<@KB:MLLJI@W>FAFAR?EVJJRDCIFGH=DH^IHNKO?@AWI?OHG@WNDGCH@KENFG:_HNBND@EDELNECIKKFQGAE\VHCFO];:LNSIODHE@LM@DhNE\>JIALEKAECJLC?XEECBK:DH.LONBJOFU@FlOBF;DC5LS?LQEQKQ=TJBFFGPEN:EKCCDKGGNCP5@SDHOSPVMKIALGNJFOUOH@ILEKWNIGFLFDPUFMJaJDLM?ILLUDUHCMBEDBTB>NNKFMMQJEHI?EGBKKOUMCF?S>DHMM?JIHGNHIINPNDFGLAWKX@MCI@NHL?TFB=NSLL]GPHJLDKGHHGAGKMFHNDG[OGRKCKHPHB\NQFKHMETQEQGXFbJSPDE=KBF\^NIVVQHLDJABIEBLJNJ@STGR?EJHNLGQIFFPAKL@HMDHHPMHPI;EPLTFOIGNND?D?KSKNI;QGI8CNBCBJ?LJOOPFFGHGIKJGMOGPWKR>CCFMPEHGGCY[SLEZCKEQD@IBPCK=NGBLHKHHPMVEKIB@cZTDFLIATLIQNQND>KGA=AKBG?@DBG>KFIGDQKkHSMRJOM@c=HOGDGFE=ZFJKJCHFP?PGGOPPLJCMAOPJKCIQNHIP?JIbBLKEEPHNFGCFHJIUGKF?BKSHKAHPIOIJEG=IHQBKELJAJHEDMUD>A@IGNSBPMCJEJE]IKNRBLHGGRCGOROIHPTNPKOSSDBFKNHLMTMIILQEEGFJJHMMAEPGQEL^AIHKOL;KNPBKGQMHOFLHIVQQNINPJSFCR\OD?DTGDHMDL?NHFGFLW@OGOLGQPOLBJLGOGBSFF?ELQJMPXNBLHELFKJKQ?GJIKAAOIIHNGLK@PHGCSRLaJJCPGJLEIQORQQKRFOXFLNAMG5AKLF>ONJLO@HEHRBCDGGHMFGCPICJJ@;UvF?=DNFMNFOGTGACJOUSLDJK>@NDJKUHLMOPHPAPKPVIPSNQHWMI=IMFCGDLGPE\IITOB[VJPFJIDMFKAJQGGHWKHEFGJQbOSV=;?PTKSPDVHBXSESENKX`FHK@HJJFVHIHCESKNKNISN[QFP=FODILQDEJLFAHAFDPKBMLEIQHJLLKGNNCILKKOBTGLDNKOSKQ>AfMLVTNDBJMFDDJPH?C?AGNRZGPFTHGMOQLJKDK[MHELRIGDLRPBUJKIILKRRHLYEGHIc_FKQGCRnDFBLQXNJFIOGLOPEIHDTLD@HHJDOCAQHHDJDFHCI@@PIRCQDFQG?ECUPRKACHGJNBLK>=Q?JRL]SSJQGWSPYDTE>PIEFJABCPJQGRFKLAGHEDLTGKJ=UJdNTFD?M>QNYAGGJM?LHLZQK@=O>HMDSB>@FKLLONLJHOP=PJIHL@LPPFEJUHEQKXRNHSLZFZ?DEEMGLBKISMJ=FULJEDLPUE\QEaKJNAEJBNMHSGLDQAF:O@8FIILOOK>CQOREAICPBFHQKEAA>>RCLVHUSPPiNEGFID@WFH>@?MM@T?NNAIMZPMGV?DCPOGFMHHK^MAF>GBOAMHMLMH?UNCHECNGMKHBRRN9JNODIHFOHLIBTGKI@KKI@HLHHBELGDDSBLDGF@MCVKDMNKVCBGIDGFBLTODGFU@NSHCSIFKDFCGAQPGJWKHMRMKOAFGLDFQHOPNCSBSJFIGQKNOGPBXLLETJGHOKHIIEIK>LOMNJJDXLJJMKJMDFJIMRKKHLKNKOTTBONPSGHFPGVELMNBMMMNKQ\KSUMEFHKOROQKPNHTEIMO>EKFHGJFKBCHGHOFR@DKMLBKIM??NVGHJKIGOJB>JIJJBAEESPSHKIDSPRHIHOOKCC?INNLMIKTENXMJUSHERIZLJNJJLAIJCNMHGJDQTGKQHKJEQLBHKRUTHTNKSDWIWIHMFHGPHJFLNIKLQJJQGKHHKBQIT@CLFSHKQHEIHLKJIGCBLMNVMDFHB@FDDCLH@KHIDLASMC>VN;G@DSDK?@SLMMT?QHFFLCPGNDBID]NBM[QDNEPCI>HSRCADLFOEFIRP:NMNLDJQKEBUCPNJHCEDNIFF[OGDDMH@CIDQ?DMOHRBBHNJMFL]@VPAGHJ?HNJMI@BKKMJNHHEHNMEYETJRHEACHLHRCGNKRJGKLBGWHMODMGBJJGEDLKKOBPDHEPQIKEFCM@GOBIO@MFCEGKOHEDTBQ>GHLMM;ILIQOFFLCHGEGDUJMULOLTOIJDMHFEMHJBFJMKDAGGIWDUMFEBPPOLEDHU;LJSJRCJK>NLMIKF^=EIFKUOBCIFDDIEHVJKHCCCIEFLRGDNLQEFELEHLLJHKR,?KNMRDDQ@JNALJGNONHG@AFMKDS[AJB@KKLHIING>KEGPFTAHNJEFPKGCLGNJGHDIPFFJVAIFKNKOIO>I@NIHNKF?JSDHEIFFJFIDQRCKKODSGIBN@DIJCDKCJDFLERMDOOE?JLHOFMIFMPQMGCJFJHCHKKAECJP7GKDN:ET>RDECRNTTMLKTKQJRML@CHMABCND@RECBJILF:ICDKGGKG@IOJIJMEAPJILJMH[OCNGAK[KLDLCEPJUDHPOAGIKGPGJKNDJQE>TAJGNFUMMFCTL2@ELFAKYNKK?TLGENIPIRFMGQFJJHTER@@VSJCJ?B?KHEA:GQ?CL>cONIMINAHIFLE^KIXIALMFL=IJEIQG_I@NLYIJJi^CFW@6N??RNMMHNDOA@KFLEEMRTLLTm>LJHAGOHALCIOM=7EFEFCEEHDKGCFDHMLC>AJKINKI=KE:FGJKOHMCEFHPQFJCJEFBO=IFCY;D?EP]HHSDIKIGHFKVFGJNAQVC]WKNFFHGMJEHBTEJHJNECVDCEJK?LEM>E>BFEJKJEUDIRMJGAJR@PUF==O>HBII[FLIGKCAJNPPEBDOIFLAHSRIFA>FMBRFDHOAGLAFG@HMLDKLNH?=LLBIAEIKWMR?AIQREKKFGQM:MUC;GMGL>HLCGN@QSHIRMMOSIH?FNEMGGPNLHNIOH?HCDWBBqD>VPPPHOIAIBKMKC@JHILKK@GPHIQLFTLJDZ_3JTEAHHF8POREE@eFOCSI@RDJ>FLSB?=E@4_EHCnHWCDGBIK>K>PUBCKD]QGLNHBDV;SRKEO\GMMGMD=FFJDV\@FJCHOBMKFBOCCIJBLB<_@@Z>MK,O<@]HSN@@LXESB@aTK9CI?JSL^SKJK_II?OQEHDI7M>ED897QPCRMCMJH`a>XFMS@?LPCDDHCVfEBH>?WIDP?CMRU==EE9BQGHHH@LAEL?OTEKFF=J?OC?bAGm_DHDGTEOC_OMIRLIBJXTNQQ6VLEC8MNNGFDHK[FOJED;?FIB;qJA\EIJDHOF>PSG;CFNVHE>NEPCQKBHGFK?BT`DFIGOHCWS?TJYE?LNKCCFRF@>IGEHJSDD>@DMENLCFCE`G;GI[PFPJEQXKKTIQVP?QJANMBCXLFJCBMLOLKIEGBCL@KBXHIDFQAMOJGPSDNJIRSD?GSGBBDIQDAHAQNM?DLLBAAKQGLMI?KAA@EKBHRFNLIEKHDPULMLMHADLKLKOAFJNHLZLLELPJILQCFHCIBJUCHODEMBHBPGMVK?K;JNCFKTFGVFDQGESKNNJGEDJJ^F?IOLFBHRRTLFLDEPNHHOMOQKOU>KREGDGRGGFLOIJAROFLRRLRE>VIIGHD@LKPOHOHQSHJMOKAHXP=NGMBPDGGFJN?KGFFPMILERFGK;PGGOH?XLOFECGMTPRAMAHFFMJ\BJJWNKJ;MIJ>RD>G5EQNDEFLLEMGFHGGN@QG?CJQJAM6>FGPKNBMJMAHDSQFDHGHKKOQFLK>TIRKO=KOJJZMHES@M:IJFNJOJGGIJOHKGKLNTFEAKNNRHDRMKHK@LWJJF;LIK4QMDSLE>LMGSJHFCMRIAJKIJMBJ=PGEBTIPLHBOAHOJOEQCCIHFRGCFKAQHSALJKRDPMBCJNKLJLHEDJ>ICK>K@AKIAMK\FKACIXNCQTDLEHSGCEQPFJMBDO@DDKMINSJFCLLEDMGQOJGKMHNQBDLDDOSKIEGMUGKMMI>EHIMGH>OPQJ@MHMJ@CLFIGFLCUELPSNFUTBGKHIKOILKAJGLAKLFMNHPWMPFGMJBLQEIJ=GFFTMDLIHRKMKINJFJDOEGMLPCOKDLEEGYIFIGDNGXBDKIEFMI?Q@KQT3FCDQWCQHKA;LIIOPETDH?MEFHBIIBLGLJ@E=E@EHKDB6VDDEAB@F>AFH;ILMLGBJTETRHdQENQ_ZI?JGHRD?ENH?YTPFGHSA=IS?RJBCWGGHNJPOGDaF@[W>SLI[MIZ`-CEQEHJBFGQFG>J=MCR?BB_FOEDJ]GMFHI^gCEDLGYOCFRAIB>OI>IBIcBH?EEAKJWYO@AFOGPG;QTCJKLRGDBDLT@NIOFNMJ>LLNQDILNNGENIQJEZMGJB@MI@AGQW@G?SMRSFOKKETHGJJLHNO;OPGLEGEHNHJGW?V@KO0NJ@ALHJEBH[KECAIIVCMOIHC^EMF?OOJOAROPRA>JXPp>A?MFFJHP9B4LOGBMDGEM@HF?^B@GHCAGMRQTGF^Q?CFWMIPFFNKGA\4GHPJtBTDPLIA?@\OKCNCLHLFQEQMJM9MFELINCKKAL=EEKBJIMQ@I;N>@F@PFDC?BAA\B6Q@=OL?REI;HN@OMD@MHHPB?A>D=AIUSOMJDUPCCHBKKGEZAAD=GFH?LMG:F>AEOGELBPK>HMJCCB=ILDLNDHQoYJZgLDV:DHIRCK@CB?RLMDC=LUB5Y>KEBVRMJACKIFIAV@F?HAXQFJUECOCQa6J9OCBOIGHELGHJDHLB>D@ABKMLJUJJ@HJ?EGQAIR^LCNGGE6BNK9[HKDEQAJO:FIBSKAYHXUBTDHIWF5KKMGCNGMLHG\NAOKQI@IBEGHCIQISMB@B=SIGDGOGEREHULPKKLLUQJPGJOBE[GKKCSKMDDOODEJWD:EKAGEL?NJCCKPQFDCICUJRAGFFFHO:JK@PMGQQKP\TGQFJ?IKD@APJF>NFDBNIATKMJK@AWPPFRRGIC8MGQIRFKAMKDBHIFRCU@?O?CXLKKG@?KCLCGDYGAGLJHMHIVG?@P@@IHONI>[KVU@ANBJT=?MLBDEQOOKKINQN>QGCEKQMRON?RHKFPIKFLRNNQKENTDHKBTTFRJUHROGJIYFM?FJYDPHJMEKNKDKMJFKN:KKWRLGOPJHKCG4FMCYEROHANWI=PX?=FGK>LCLKJLRMU5OIKHAAEPMMPOBCIL6I?UVOJ=O@MJESKFJAEQEDDXDF=K8GGJNXAHL6GNDHCTIJaGQXMH3CNCCACLGLXJSFL?QQSLP?OUJBEOD9KCL?NGHUJBGJLNBKARELEKOOADGMAKJWIQHHDLTILIHVNLQCA=gAVITMAGUGDLQXH@LQKCBSHG}FKNCMNSHIJQUGFL=LBLPILYVLABHVBLCCMXGHOTK=UKP?OKMENVBI6MDGJHNKS[GMBNKLIIJFRGE`LFGPCIDEMQ7BISRFJLLU>FJJRR?KGEHMHQCHGRONPTDDXDDBF@HECIMKKUCINRGU:T@YXGDAUGGHEB_HGJPGSFL_DFIBN8CJK@?>RM4B9EGGFC@BRF?SUQE@BGCF@FJGBG@AJFAOBJ:E9IWIFQJKKGOPBPDMPJDW>NFEPGO@JRJM?EHTEF[BGXMM@?IAHG]NGUGAPGLBQ?G?IDSCPTKKJ@_JPLFSCRPSJJOIHGHKMOKEHCIUD?RQK@PCETM`?CHFKJYGDQNPPFLIP@;KSMGA`BHNYLHMHLEJFIH@QSHCGMFXI?FDLZHGKMdICLO?BSLOVOPEBCGIFQET?>bFPJGVKQ[GNFFTII>FIDIiJJNQG@PGWHHFHNNDGGAKGWWL?QMSFQGEJJIGHGHZKNN>QXEEJTFLO[DFMMUMNGIMPKEJNDTDLDMLAE@FHK^RJNOTPBFMVJLKWPLG[E>FJSOBMLICQYI@=GPHITJSZQMLPPGHP?MOIFMLZWJLXDCEOFMMLSQOFGJBJPHBHPBN>EMPKHH;JADHNMMHAEKLFJRTHKLCLDIGHIOOQGOCNEG@IOCFCJGNQUNGJKNQJEMQKCKDJAHHBIHEAFCHGDJIG;FOPKECWFFODKEDGIFIGNIHGCBRLMDKRGGMVCCHGPOHHINFJLPYKJAPJCLMLANS?KPRFKBREIGFJFD9HDENHHMHMCFDhMJII=CIIGMDKGMG@ILSKHSFKKGNHFJNHLLFJLOINOBFJQOGKNAM;UOKL?YSHFIMIDPPHDS;MFKU\DBGOEEOZQJFVgPAKOLNBIbL^@KP?MLHOHZOF@I[bCPVHNHH9ZQFMGHHCINYHHLGMWRPOLK@BAIWENBMDGFGOTVOMIMVHFTII>CMKNFKMMBHDU>J7NJNQHGALJKXNRLSJK]HXM?CQPsCBMBZHGLMPCN:J@hNPHAPLJNLSKKPAPGHMJMRROPC;KCSMB=JKQTEEH>HHIC=LTONEJVH:DZLF@I?NMHJKIOKHINBHHCHIDKKJHG7>GQHHNDIBBOGJ?EOCFHEIPLG:LL=FJDLHJCJJ@FKJPREKWE>DZ>EGGKJKAUKBJ>MJ>TRQNFCEJGVEFGMGROMUHKCIAELHBSEJ?IOWFL[?FALDEGMID>KJA_QQICO?VIBPLBFHEBPDQIMSFVHLVSFNDIDPQNKMLV@HKKHBKCTDKJ@DELAJFD6QNJOGBCGFCCRCVAJI@EKIBPJo>YI[IC?MNP3TBSDDH6KGKFGFHTBSSGQCLRISOKJFEINFJCIOGGJFLLG?IGQLGHK@ED=HHARDTHBKVBEGIEHGR?DQC@?LHFIHWWIFELEKOMT?BHHJMWVQHJR?ONVDRHGFNGNR>EG@?AJHDMANMDPGMVOQBHGLPIFOAOQLIDTHINMFHDOIFEPNDVLPDPJMIZCJHP=GBRAKQWLJABPFALDGLCFGQEPAIOKWCGQOOJE=HG?KJIGLHCJMDEHFSQJIFNO=SJJNKKBEMCFPGKDNFFMFNKTLJPNJCGWHDJJVMLQSILJUEUCWCFHTBICJ9AKELRJDFFICCEJJJWCFFHR@AMHKLAS?RP>IH@=EIIUUDNI`RBGKHOE\RKFQODA^OM]JFORBLNGDKRLKCRTJBJDGKFQRSLQHQ?BWSKBOKMKFHHCRHDJEERNSKMJEPRRJF?OGJDTUHEOMGINEWFHOHCKCHL:GNIH@JAVMSFICXSTZF@OLML?PIFCIAPOOCJOUG>QGH?>BYFIJFBHNFVFEIOIOJDHJNIJIGBQQDJVFBIMJJFPJMHGHABBAMICKJJEN@@TBCICJEPJ>HHFGBOGNJRGL>OMMGJRGFHBMF@GCLE?M_LJJKFCCL?MC>LGHMI@IBBK9OKSRGI?GFCJB;UIEHBMFPJBH>CMHGM@?HAB?BRRKBHKFFKRPBPCOE>KIEELEHKGEFLK>DORAQDN9QMBIULAOFDBFHU@IlIFQOIMCHTFIIDASHGL;9JIY=EVLSMXF:ZEDJHNFHSI@OGJMVN\OMEIEB@VBHHJICLII;QLGKEKAKAKFIDSNOIHGCFLKFIDIKJQFBCOKAKACHJPVQMLJUKDJENNIKLHIFAKHMHIKKEENCIMOONBBC?GCHUHP;HLAGRVDGENM?AILEIIFADNBPDV?AGHTFFIIEHQ:CH@J>;BH;PO>CKKGGERUHX@JLVJM?EPIFI?7EDHLBLH@MNFJQIFEP^GSDGFIGNMJHBO@G/EIIQ?@SU>LFNAWOGPDH5ILNLGAH\?WJMDFZ>KIH?CPITEGPCKHQBEIEQFZ=ED?Q9CTQWKQ]FL=>XG>APG?O;CERTCVD>=KEGREMKFBJLN@TIKHIIILJF?MHLHIJ=E>QIRJF?CE>HDCHEMIDID:OKID@?A8JIGAKNFIUKL@?OJKJB?GAFJFJ@HYM[LEQDDBVND@QFPCEBC>EBEGFGHHDIKRTCINMIOCMQHLPINEMPFLYLERHN@LMNJ\EIGR@CGMKD@?aIENG?CJIP@KPIEGJDPN@DJOH?LEIJMONIIKCM]Z[HDMRATFO?F`HKEEJHGJJNFFL[UGONECMFQSLGREQGD?IKKAGNGLETAJFCCD=NHKISITRIJHJRJEQNKBGMSKHPDJHLHBIBRPFWKYGHBE^LFFH=MQ@G?MBKE@OITFOZJC_HNSKIKW<\IqFHOFMVEMLSNEICRHMYSSDHQRUWIA[COKLECMCP:ITMFFLJHE=ITUJIHHGOLHCJL6LFHPFKJ@QPUQKFaNZKVNELLGIQ?DGHMD]G>JEZG_QHHYPOJAR=FKGBTFTQLIMOHFJGGJGEAK?UE:V9HKVHEYDDKFHO>AQORKRNKJR@PEGXAXGO;MJPFFLNHMLFJJHBHSIAEGSAOIFMUHOGE@CPN=FAGDDGJQOPKLLMA@FJN@ND=JBLBJPFMMPTSNOFBMD@K=UMRTMM@@KAD8AQLGEEAG;IZHKGDJGKQRVEKCGE@BGGCLLDGZENEERWIBLDNEKHLRTGCSIbHNKDTG?GKFDKDHCMLQSSCK;JIKI@OGILIB@G?ECGJPOJLHICNJGMANFGFEGDFGNDCDVNC@FKDKECPJCEEPKLPJSLJGFFMEMMGDIG?GHGED>CFLNKEOSBJaIHGQFEXFEHPNHCKUMPTDCBKAHBCCIJJMCPCKGJJNPJGNRIbEAELAIFOC>@H>OMKGIKGLBLJCMbHJ8EG>LYG@M=KND@AKUDIHCL?KBVIKVDEfAUIHLTKIKRPEVQ<?IJOCNMIJAJGRIMDGB\M>FHIESHD>FMkMBCHVLFNDROROI\H:NREGLAAFOH[ESbIFHLIINIGN@[D[PN?FPHAJQDEJINDJLCC=?BITRFIPOZKGEMEHDAFWOFMSGKSSCCU?LEHGKRKCIDOINGGCDHKGJ>NTJJICUEO>LDDKGLL?BMOKTVHCEKWDOCAILDJLKHGHPRKELIKTLTIDJ=;HO?DGFSKANI?OINHGC>B:KNIKGO\LOP;S?>LWOOQJBKUJCQL@MBGE?J?CPMKCERHE?FQIJ=ORJKOHFHGD8PB?MHOH>KAAERLHCICDSIPUWJQCEAMEEE@IFEl>GFKSECJGaSRIPOII?JJ^HJGUNNIEKHAQOGMDFF?OL=GSLLJ@FMHDGUIKUHQAKIKCL:@OGDGAT?DEDBTBb;EGYZ=DQHODCGOEGHCBBP=EN?RAQNDAFEJMJ;>PDNIJQOGOB^BGBJPNFOKO@BMYeEJCGIHDIMSDVDLEEJFMJJOINIQNGICPGMKILGNLKEIFKKNFCUDIBKMFPNPKIWHNMAEIJXLCRKJUNF?LWBLJGQMU\NIDCJFVJ@EMCGXOOPHKGVADHCGQLIMAFQDQHHIBLJKR@GPMLDGGUIMMIMOJKOEOPJIJQEOLNLHIKLKLIEIFFP>JTNLIPHGPNSJOUHEMJJPEQKLKDOFPHCFJCPEJ?IHJ@DM@JEHKPUKRDEGPETHJJS?CJMPO>NIIIG@AJEFHLIMCLKCGNSM=PUB=PKKJCKTOHGMLEIAIMNTK=CILI\QcENYMI?GLPHJHD@QDDMADEIGRJJKBZMHEA>FHJJHADDSLXOUGJQKFGEf;WJ@ODALUJFLIFGN>BFMEaNKKJBARBF>NAOLIICGL?PDFMKFHEKK?CGJQKJKNOMCAEJOHENJADNFJCQWA?OGKLJI>@CEMP?SR:`@IRAMUVRSED\GkMAVFLJHKZEJS@DCLNTEVEPOAITAIXMBKPMR>=FMHKLLKOBLNQNF@8MHS[HCLSRKMC?AFLGMULOM=SORKKNJQMJWATT>QE+?PERKFKFQKRJC;HNDU`AOX[EGB?>8PEUM@TIGJQ=KIDHNEFB7O@8KLCHAMRTLIIXNCJA@=>DHNQEPLWYPFPIXNLGJLE=XBD?IJDCFSIJFNAMRKHCEIEIOHAEIJFJIEKHJFV6GSOI[JID?P?QJIHTZIF@A]GNCMNNOBH@CMCFJFBPLKHHMANFHNGEHGFAAFJKHEKHP`HRKOLNJ`EFRMLIMSH\PNJPJGOIOLOD@R?HFSGMEFLGHX?FGSSGC@UR=AIJCOGJMMCWGN@FHEES@MI?IBFRKFV@VKH@K=EDDH;ILMMLQ?I@DPSP?JOK=@RNL@APGCC@QORKFJHALCIFKGHFHOIIAE;DHBKCKPNLCHIBIFcRPJFV>PGEKG>FLLONIFXEOBFNM[N=ESF=NGL?ICICRNHHM@FDMIHNBN@NDWEGCQDARCCKBUSIHKDLHJIDDNICFEGNE8KFMFDQFAEOGFKQVIJFHHFZFMJJGNLMH@ALFKPKFOFgIDD?HMBOLOJFCGJMQdMPRLMZNWIKC>IGBDMIINXLFMQGGLKIPCNJEPFFCCPEGPIQKGL=UPCGHBE`DKDGDOQ:D@M?RLOOQEOEBPMNEMFKLRHKDO^@WLBLCJHHCFQQQLHHPGFBIKLFLMFCBJVEHLET>TLDJOELEFLFP;PJEEHBLBKFKFWWKELURIMAEPMPSQESS\NOIOKRIJLMFALSDOQCKBFMXFJJY@UJMW>P@KKIL:SNLVFRSJRAH@GK=EIJO=BEI=HRHMA4R=EA8KDB?JF@KFE]K]KEL98EMNE?ALOE@CDBBIKHFFEUUS=B4?SCB@GNJE7?JDFP;AIG7EDK?G>IJC8H>HKAPGCCA?Bc@HNKJ9?FeKOUQLGCIB`D4KGE63GBNFK=@SEUFFMECPAAML>G?GI@7IOJ7EGO98QJK@MEIW:PIKHHBAE>?>@BDKQLFIHDLJFJOFAFEEN=FCBNGFOMK@IHKUJHGJFBMHGMIL[LOHFHUESCCVFFMKLJMNOSIYJJDGQ=IRNHKBCLGEHIJSPNFDOPHaHALNHJVdGYDF@PDJLBE>BNESGADQKKRIOTDRDEPANEJPDGCBMAAFK>MR;OKKEH?KHJGUFMVQKNOSPCG>IFJL:LCE4ZKFKMGNJQECEQAIMKMIHODDFJHDPKMK;JGIHAFRD\G=QEIIKKF@@_HDLFSJNC[FONCMIQNKNJENIS>PIALJDCCMCBUGE?TJCKAGPEMRBDRMNNOCJPJ@?UG;QOIFICWTIIKEHAHIKNNTWGFF;MFKBHNIHFH@NIB@CJELJ=TIHX>XTPKGENPFSM@KUG;\DYJDOM]SO?A@CCP_FILQINJ;QECG>CIGGHFZPACGLNJSOM;LLCHB@VHZR>OJCQG9BQEPHFJL:EC=QGN?YTWHYhRMIINDQCIVCQ^HHUU[XJJ[HOkT;HIBCWIFFPMIK=JI@bID?XlQLQLJ7JMLGFHAWMMT[KFYcKAIWUMAISNBFFIEQSMAP>NF]CPLJKKEEDROCJQHK?HS8EOLOLgIIIETIHPQD[SGGRIILJ>KCFD=BBKCDD]BHRO?@W_CNEGL\FFKAGO=GNMEJKGFBETFEL=N?HOHFEZOJ?iI=ENNTVLKOEBKEFBDDLMHAOPNIBFIIHGAFBLIM>NGANCNBIHGG?FJTIKKGDCDEEEFECLRHDKPMNTILJESKENSGWSKUILJGIKJBKMEMHFEDRDFRPPNYGFKBTDJIBBNKKNP?JKNOHIGQG9HNBKKXJBLEQICFFNMEFKB?I=BIBGPN>FFG?=SJFZEQCJE@SBFJ=CGGL@IJCIAGFTHTLANIEIJNJJIVFHGHAFGIBWLOEGNBOKFLIFCHIGJLH@BAGLLKMEDNKLEADHKHK@J8=HNNSCHHQNAHKYIYDBLLUAIETILGKHKMTE=LJQLHQDTCJEELALIIHIIJMCKHGRKQEHBPJEFFCGCHHH[MIGECJOQHYCXVGLJKLMFIGJ=IEMRBMXNQSBJEERFICHD>GBAHXWIHGO`GMPEKAPHAHHOGPHQR>C?IJHFHSHDBLDFGG?TLLJGOTKK>ADKSQMHLCOLPOMJJEIOKCIHDFDDJGJRWYlADRBUMJPSEETGE]SZPDTGRDHWC>BQNGDM?O?LCKYSQBABFIFAGFIGFQCRTDFOLHDPEXGHFJD@MLABNFBMTHODHMN>@AHFSXQPKGRCFHCLT>VEECJ?L@I>JGLEFEGGIQBAP7KFKJNFJKHBSF@FKYDMOMH@HMCDKAJ@KBZOMILSIBLAILNNFUAJIJTMBDD?KKFDGHKOKRKJBCLQFTNLGOMPLJTH;SLERUGRIDO7QIAEQ?INQQDMNSEGISJBCVRD[OLRDKJCEFERHGRHBKRCEJFDJFKG;APGRDKEQ9QJIBEA;HRGEHMHJLKBPKNNBMGEBLCLHK@FKNOPTFHQ@B=CEUQM8?JOBMONOIMKEBWH@GJ>LDJFEDTIGILLMJIVRGGJLINNM@BERIEC?BHFHAMQOEIGDIULEI@MHAHFKF[FLNHFGGWHDNIKFCEPBEMQPFAALJEKGHGNFMCGPIEGGLQ?TGGb=SMDG^VJQ=@VANADM=UVQ]XEZIJYLRHGGEVIAOCLHFGQLMGUHAOCFD?EPKOFJK@:HFWQENXM?GPQBSRHEI[PIANOGGNEIQOBJHE\FIQMXKHFIGLQHMJK@PQGRFGCIORMUPAJKUERDIOGDNINFIHJKLIDHG>JCVB@PNM^@PIJEJSJLROHRHS@JKGN:FDMLDDFFRMEGO?JIIKKKRCDRIJJGQDQFCDDLCMG=ADL@NBMeMHJMCGJN=GDTJGLBHEJSDJ?BB[OGQHJNINJXPCJOJFI:SGZGJIBAJFOPIK@DENW^KPIDBNDHGGRA?BAKBIGFGJJFGBE?DFHDMOCG@EFEFG>BBKJQLJL?=FBKGGFBSA@LN]CHR@HKLQDNCSOKSEFCHMBEOFBEN=CJ=EM\XHCEHEQFMFIHEFGDJGCKJNGUGMCEIVJNF@HJMIV=H]RCHCJUINJCEL?NCRK_IF]BPEFBOPL?NKCTIHDHEGINKDBEGGKKCII?GJJP>MQBIKGENFCGIIM@FEECBKGCF\FJK\KFHL?GLEIOHMJOHEHL@MBGFDFT@IDGLOHM=UI?BGPPFGIEJELMKFLGOFLHPIJLEAEUE@XKGQ@EHJJJG?FF@ENBRJLIHQCOEJGPFH=BGM??GDBRKJJBNNLGBHWDWGIKSIL;NCOLH=AMDGNNOHGFHAFISOORMEJCCDKLMFVNA>INNPBNJDHFWJKFGILWBFFCFJFDFKKNCQISH=G@BPGKPOLQDE@WGGIDHOJMLNXICQMNLKENPOPA@NKFACDeG>FIRKGERGQIB>IIHD;CLJKFPIIHIMHIFLLEMHDIGDFED?EI>IBZ@HKGBTCHPOCAEGNHFDMJKOTNTMOROG;GFFHPINIHATBNJKNMVD@GKHLPFTWSFFEFVOWUQANJJLFPTKGKFIHXJMWLIBLN\QERIGKSHOLJJM]KUQREF@OONLPPQEGIMNB;BIDSQMMJKNJIOJAGLMEEMBGIL@IPNLGHMN@QIHLHEMXLKKIKCVOGMIGFBHBKCBMOMJGVILCKGWKGWJAFDQQIIDBHBKRILHNNKDHATETFGWLXMMNLEGLKDPDYGOHRJKHOKISANLXUKEZ9KLPLMCPACJDBKVFSLKUOTKDGNNIIEOSBVNCAEBBCGDNEDGMPRIKUKRMSRLAOSBLIGI?VELCDBNIJPEFSGKFH>@PENKMGFCNCM9LKDK@MSKE?MFBCFIREMYEFEC:?EJKFNVGEKDKKEONAAKHVH=AIHDAK]D?GHHC=>NKBMKCMMTCJTLNFJEPHFG?ORLFJXMXIGH@IBFNA?OKFCIA>ICJBIOKMM@9DDN]GR@FAHL?QJEDOWLCBCK?KBGIDEDHMDIEA>R@>MKM>QHKEFTGEPNKGTDYB@MRBVGBGNNHSFL?LEIHH=@JOCMAEBWAIK@EK\?GHFHNJ@NH@M@IDEEJLOHFNKC>PFHNOELBJKN@@9ML@HJDFVIMSUSAQG@COHCB??RH9JEBCF@JFIKFIJJM@IIJIE=E@BJQIIOJHUEMFJFNHJL@DNKIPDPEDCGNCL=KO>MCFLGSLBIXG@@?=GIPCKMA?G?GNHBEIXJC=NFBLIRKA8MNEKHNFFNMJMCLBECLG:JJPB9RONNLD>BJFN@NHNRBKCAIKJJUJ=NNLFHHMCYK>MID>@FDC>CJQCIHIHTFCJA>=JN5IRDHIODB?GLDLHYZFIEGHCTG[RnTG9HMNZV@]H@>RGRPEBLABJHOhLVL[PJGSMBKJKNMYOUIMENVG@TMIJJTMTGAE\URIKKFNSA]JKSPD^CRTANLCFEEGQF_E?FMBE_Y>IDEAIUITTGHU?FXMBSRPECQJINIK=LGHMVAWK`tOJORDHa_PLMCJFDC]ITGI:NFP?I?OJQDQ>DSGIGFN6DMMAG]GGJMD=8YBCNHLFQIMAMIUN>AWEGBHVK<4VCFPKYHI?DOMKI=LGRIEOBBL;NH5:@LLC@@EPO?=X@RIEFS@VBLAGEOFC=A;NGEHF<8ND?NKPCFNZBBXEYI;I;7?TBEQTI9?T@9HNQLMXHH9LB@J@@=DDFEaVE>DC>IJILI9M?EUATHIJCPK>9\HJNCEBKTPKACKGO?VF@9=R@MOEFBM?L>ICSVRIEQJKFIGHGGFLBHDGK;IHKHHENAP@NMOJDAFDK[IAKJMCUIHJM@IGFIRGOOF?PRDNPGEAACFMMMILLGMC>SXQCH?KEELAMFCMJSQEKQSGIGCNFKHXQOSSGHGLEBNUKRQCRMKIABLKCJODDJRH?JEJWKEIME=ESDGBKAYLKQOPGKHAKFEKRNTEGKRCKS5IH;JNLTHLLHKHEFOG>OLIRHSLIGGHBIMF]IDFJBS=LUFHDBHH?MGQGFNEVGMAMERHKJEGABCGDJBIKIKBBIQAKMHRCGSJCL=KCG9JEADHH@PNMMLL@_DGLRHTDJMLI?XPFJTJHHLHIKECOKEELHXDCKUJIETHKACEBGQXL@EFKHHDG=EDHKVLIOMLHEVEFXEL?X@IKRMOPKE@NEPHCTLSBKKFCNQSHIFLEOLGINB9JE@GDIHBBIGSDMDJIKFAROKPQKEJLLABCINBIKJEKBHJFFILHC[JIRGHEAERSMCJGJLJPIJFALFIPBLNAIH>TBAiPS@ANP@Y?CLDARPJFDQFHDJ>EBNIC\jHFTKKIG?BBID?Z;P@G?DLAMGDRR[GECBB@^KBE0fJLG>OGDVHB_BPDL<9?DHTI[K@@WNBTMFGL:fFHUIILBFILEJ`@FFLV9AMkMEADF;<>DCDD@HJD=E@CLEBLCJBDBLE[EAFVa@KKOJMFDG@IMGGCKNTIRLAKYEAJCOOSOO=BPRTCEOGHKLRBFLMDLWGH>IPBRUDJKPJLIHNO@MI@H@CMNJCGPMNE;DINI9OPRCFFKEYLP8ACHJ>LEKSMFR=K@?JPICQLPRLDI<=\EIKT=NAJJEAKQFQFJGE>JA@IJSM\R@BGESLOFFFQHFFB@NM?GUCYW=POLMHMT\JRN;WMO?HFSX?PIAA?XIVIONGHFYOLLLJISMDIKKUITVS>LI=NS9QDE?MNE>DG]\CZLUDNJAOFHFEGJJHTEKPILAJ@RJFLWHOVFDF=LMODMSDGHPHSECFXJEGKPFDWUCJIAGJJPGEKBNODEJEAIFJRGRHVJNBBGI?DAE8NG?LCEIJGPBdLDXIJNFNHES=VHOIK>ELL?OCOEQDUACGH\OHQ@LBGSTSDYPCFEQVEEEEBK\IOP>CWEEF@IDE>JCBDIOHIGIQ@HAFIOR?ICRCLKKJNOIBLFHCLRRFYFDQKOJHDLHHLIJK?LGHSE;JK@SHbKIJKN=LLCEHQIMDMREQFMBDKHRM:MDMJ@QII@KIPFYJLSDTI@QTO>SLEU>CFIMYOALMG@OHKAMSGKPZDEXAOMBNAC=@LOJJHGQMGKCHFNLYDEH;TPPIIRYGDDHJQOSEOPU?@OA>GPRLPJANHMIJDHCJ@DJM@DILKMHAYOGNBIENZIHAJCTPDLMOLVKBPNHVBJLDKMEPAPET?MKUBFFQROEGHLKKVNKFIDBEMIFJODBMLKCDHFJAGOPDKIKLLSBCJMIANDHQHRSQTSDDHKLNDBEOJLHJHNQKSGEJO@CGFGO@\CEHcLJFKPFKMBLNINKPLKILKOGKJGNMFKIIJLCRAIEGCTMIKKCKFMKLEMES>IHGHKZBHEGLEVHHGY8FNMK\VHPMWIHJNTLGRIAJMHJQCDKDPIHVNOQIIIKEGMJDDF>SKBDPXQIFR?H]TGD\CRKAEFKRMTOSMMQJFFADMPEUGKRTHMGHJPCQKO[NKFQKJGJNDGK^NOOJPOJEDMHMIQJLPYKFLFDOJLPLOMOJG[NJMFGJBMNEIFIFRGHQLODIJGOKNHGFILCEJOIGMQOOIGFCKELAKHPQPKMCKJETEXKKFLT?GJHKLNJKKGTLHMFWNRJJL?IMKKLKRERHQRNWSQDNJIPFJJRLFGHRUBMIJFFMJLQHMNGGDIFRWMPLEQIIONLMFJOLNPJPMRIQLGKKIPJYKLHPOMLFFLIOGSLLNGMKGCVLGSRUNHKKIGQJEEF@FLHG=RIHQLIPOHGLKMSGKHBMLLQEQBJGNINPLLDMMRJKHHHHOGPNIL?JLHIIKGQLHIMLKJJELJHNILBPKIHNDIGBGINAHGGNLQPMIGLJIJIVHFINHKKDOIKJLOHIHNAHIFBBGLJM[KEJDIEMHFK@FIDJLGJLJHLPFJHHCKGNGDKJIBEKHHGEGMIGJFCHIJHKFPEJRCIKHROFFHLNILHIJIFKJCJEEGENIIGKJMRPHJDFAJDGIDHIGGOELKEIKMGKNLLEMJILIHHFCKDQLKIHFRIPBMKFJJHKIJJEDIIPFHNKFMIMLFMRHJMJDKJFFRHKFGYHENNLLPEXHGJFFIIFHJKRLHN[LLDGGLLGMMDJSOKHPJGDU??JFBFIGLIR=LGHK<9QNO@DHHHBDNJOJ=EKNFAMJLNDZ?FMMNJKRHSFIzOOJKQGLHMDEIDEEFLG@B@@GDVEFPVBIJFMETI9PI>EHJNPKMGGEIMO8LFF?HK@BFDCJZJF=UTLFHLIEEEBQFCELMGKI@FHEPRQPBIDEJIWPFIEQC?GMWJIDIJDKINODK>GI>AKD:KBHKAFRJNQIGWJFKTDAGK?HIIJFOPN>NI=S?PJG@QLZ?NLBHCGBCKP<4=:WSMAJQ4KJ6NDI?H>;JJOEMBNETFGOBJMAF:ZJ=ML?J94XAJBE=GHESDJMQDBTEPLCHJ4ON;K=77FIJG=LCLGMJNN=?EQBHSBTFWCMLPKHJKCAMRAEGA?F@GR?OEOIHI6P?NJQICTQJEEK>FXCBAKTB?EDDK>PFBOFHMRQL79P>XILNOEGMSDKFJHFYGI@UGBILFLKSY?=?EKAKIXF?EIANJ=?MK8O;R,AFJMJMCMCEPOMVHGAWSSJINRGHPENCIARDNHBNFEMRDDKLFNKFNFNHOEAFMHEFEPWFQLKMWNKNFKFMLNLFDN_HIMECAGEMGQEPJHHGKGNKOGNNCXIHGLKCNAIHPMRGIDTMBFBGGBQHLKHJUPFQNLKIOJKEJILMCHB@HFRLJIIHALLBOKEIEDKEHIIOHTNFKILJDKEDRTDEGCJJKHJWKIOJKMO>IGATBUGLKUBDOEJGBFQIG>JILDCLFMJDTMJDFNLJTNCILNPMRMCINEJOHBOBENL7FHUDM8L@FJMGMSWOJGGLLMFOTSQEJC=W=JAW?ULHGWFX>GNMKDGAGHLMZL=UF@RUIQFVGJB8GSN[AEELGHMP@N@KNRJLEK5GEDNPDI>GOHTRSTHQ?AIHNHLNQ;O:NUDORL@>BIMLHBKKG[L?<MLPOMVa=OQ>IUCXKN8EFIF@EKC=BN>KHK>Q?BBMHJBC>MPJSG?IKCKN=SJBDGDCCMGBAX^R=CCHA@JBHRQ>EHBGJNEELWJLU??N@NRQJCOBLKDKAEI>BEIG@cFS@JME]NEIDVFEKDPECDgR?DRTGEYLKE>PDTJLEHMHTSNJYGNH?;[KOCMEJNLIKUMCKHNDDCGF@G?HVKNEFIW;HJKOB@@CXSFHUCGFRQTGMVEBEDeMJDOINHROIIJK1DFGMKKJLXHBFHG=HF@HHHFcIH]A7CGAIE=JMBEHOBGO@IGJLHTNMJKVKR=OOCZTGBIPFHJ@DIVNLFILOTEMFBMFEaOJIPBMGJH\QJA?E>BBIFGCVPFG=XBMPGLAAHL;UDOEUHMJXK[K^EAI?IHAaFAPG@N@THWAICIIBKVDEFWBEAEAXL8AHIELFVHGUVOLL>KV?>NNUQOI@PHOC8QOFMF]DGCMQON>>IKIJ@PNJMc@HJKIGC[JFYJ?VUjI>NEDR?ISBUMIDL=@JIAOLEI9KNGQGSAGCHF?CIDQ=MCLKAAM@FLDAP@MQ\H@CGCNHMCHCKEGIKL@PIIQNDJ\C[IELJCFCEEBGLJBBOFK>CGHCHNCK^DJLG?OGICQFFRPEOQA@MFDSDKAILEI>HL?ILEHOIE;TCGP@K9EMKC:HDE?I?FQNJDELFBFJIQM?IDEPDEE=IA:RGIBJMKDH?@@GDMBLODDGCJUF:SED?ELDCAIKBFDCIIIEP?KAPGICJJHACFEQHC8LH=IBCLFHMFKBFNLKOJH>GHPF99DLEOHDPNhFKVE=DLZEOOMVI_AJJEFNFMBNJNOHDPIIGHMECPHKSFHIJMESJPMFGGGHJLWGAGDCOJHOPMSDTZJLOGPCY@@KCFMAIGXCNCOMHTRMHKKJEWNORBJEFEV\LGDIOMIGHKTSNKQ`LKK>HVNDNOMRBPAKJYHB@TKONPF>QUHCDG?IOLOQSDKIGXHALOXKPOA@jAKPGDDPbLFU\cGR=JFGCFMBEddEYNCHEH@ETBBMCKI=KI?QC;KJJ?>OLGVEIGFL>M>?MI>PKCDCJM9MRQBGB?yKQIF<;FLFLFFM=II>?EA]TPJBHDGEHBNE@OaMFGM6=TGD[JBIJHJKEA?HE[GGKE@KEGINB?HLANFJ>BHPGrCLJ>>I>EKEQFADOH@CHL>DQ=]LNCBO;FA_IB@8P;PB:AEDUHEFHBNGK=?CGPHBBFIhULNGVHJE>ZH?CCLC@>CEE6HIGGFGYDDaFA?BUG@LEKH=AJADHWB?XGIJAXE?OCXUWILAPICDMJFLDDXEIAIINGFTOKE^@ARJSMNOCBO:IQSFOKKPRQJTJF>^OWIMLPIFFHcQG?JMQCCDFURIDNLTAMILNHDILEJIJLCMWVSEQ?@IEOLN@FEGBV6G?CHTHM@ORZ@LMLIEICDCNJAFR?CHFKIPKFKFJDHP>JHLOTKBGLHFCLS?PAH[MRJKILEQNTMJRMEQ[AONGQPIKFODQTKRCRINRBIEDLAHU?PGHI>NPITV>MNNQKIMHHER?JEKJJQ=AFKNAMDOCKKGDAVFJ>FHX>8QKE>CJHQZMLDWGPOGHJJMKIJFEQHM=MHIGDE^GCLwKZPILIWJDMHH8KOIKCMHIDHARR:LAG?>@OKWKEH[?FT=JEFIPGO5CFQTGLIQ@G]FKIALDRFRJO_b`G_SGQAUKRBCLBCMF\LLFN=LNHAGGKXLJBaMEFCNHJJLL9?JIKUHAJFP>J;5YO;GELKMDQfAJALGTJO8 VFFDRCOOIJNIOKKE:>EMCHJKLLP?APNEPPCAG[NCLDQLNARDIHJJPN\KCLFFGCL=ONKCFEHHDG>LKGLJ@DECDLDBGN@CUNOFUFGGJIAUWPMHGMCRDIGNGQKECTDGGM_ILCJRKEOKEFIAHQIP=LFOGNAZDFJHHTPFGFBEGD7GXHKJNOGJ=AFTQEIMN8NQAMHPKIJTRHGPMKMFFFSJSDGLGDJGGKNGGOSKBJIUCLFKDO>AOCBFFBFSEPK?B>DHQHQFGOIKGFDW?DM@Ur]LWBS?IPFOBFIMFMFUIBOCIATFAcCJLN@HR2PNPPUHCVLI@QILJGMIUAG]IKVC\CROIGUPFCGNH=F]HPACTOCDDEHFTK>HKFHH@KOISVLBH;WIKRLWGGBFKNEJEILHI=BQEJ>JSBCFMHP1MDOCLHKKOAEMQXUKDO@HEKDFCRM@IEFPNKTDL4DC?FQOP9EEDHHHGB>_K@AHSNHNUBJJGHIJ@`PEHA=KPLEG>OJIWFADKG;ML>KC;XCDUSSHTLMLSOHBR@KHPPJBBHGIBHHGKNCCHJMHIFQKKIJDELOKNVCIKKFGL?LRSNKAOOCGLALJIMEIKIIKPSIGQEDHFKWIIKLR?IGFGJILGHQNCPJ@IEEGFKLNMECKEPCKKAHGFNRGHFEQIJAEHODHCCFBME=LGJDIKGNJKAFEEGNEJJJPOKQCPLFFJHLSCKICJFKDOMKDFHPEPPGGANDGMGFPGJDKBGGNGMJJGIOIIMPLGPKDHOPSOIFLPM@FJJLONEDJEGGHBLKKKMKJJEFGOGIJRKCFMDIENAJCMFMILEIGDNIINIFIHLIDPFINOIOOKANXGBJNFKBAIWLFJ?GABLDLRUFJDBYRFICLOLeJJHICBP`KLRHMDEMJHVBHGQLL?ZT?BGEONF?GJDCENPLeCEJFDKBSOKPRGDHKHGGIIFIDPGNLDUAKITIMJFIINAQRJNHQICAKOJ@NRGTHJEFEZGKOGIKLA>@SCQPGNBMRDNPJN>BDBGAGTI?OI@KEFRFIABNCOHMMENHCGGBTJKQIGCOC?FPJKTAHKLQH5INDGVcEMJBDA=BMCQKGJFNFRCACMNHKHNFRRFIFHFELLIJKEJLABJCPKGNLCGOQG@TKJMENFIKIJH>EDF@JGLPH?H?JNOCH9RPBL?OCXTNFDRLH:B@>CGKFL_NEO@QGGBMK9QCFIJU?CMDHOQOLOZFBNDCANCJIALHFP>DMFPMEFD8IQLOFGB8GACMLJ@LDE@ECHEEHSPSSK@FK?@RGG=VTDCKJDAIBCENWAHGGLhT@LCD^L7@K?GEADDEIC;CHHPAFNKMGJIH@Q3GBKIUPHBGEJJGSJOFFbN@GDDJK@;=9F;GDJ?FYCGFKINFXCBMP@IJTFGPJMTGLFAJDIMEP;SDIPNGQEMOOJQBILNAh??NCHHFIISKLFJIMMHLSKLMQPKDRJR_NFDKHJCGBAKMRCHKBIFIQEJLILCHNE=?KRKPJSH7LFLFHG@OROOKICO:RNEFELOKETGINLBPAITKRLIECKLCIDHPDUIEFIFNENR7FCIIHELEVLIQN]IFIMHJFICO?HQLBFIGON>FEELCAORHNLMLGGBOQDKLHDJNDGPALGLFJLEK:AMKEHGF;JCYKEKCIRANIJQETIBMOFJHJDPISKDBTGDKJKKCJFAGJTHEHCILGGBFI`S?OBDIEBD@RN?QNJJEKGTLANNHFEMKH=QOEIEJIPHPHCFHMM?EIHHGIGPKNDRHH>HQHEIJJJFPSYF@GK;PFCJSIUGK>JLDSMMINDSLGLII@JICGLG9DEMASDLIGOCKRWD@SKSMYXH8KG:L[FGRC:WTCZPGRBAL=TCFe>GLDKNGLGLPBM@HJABCGCBML;IFWWODJLOLIKJ@JQ?TDNOEFDDL=KL@HPWJ@EKBHEJJWGTUYDKR/PCLNC_VIE?CHI@9KRNL8UIBSSCC@PJCDHFB;CCIFODAFFMFLBOLQGBPLELJDBKJICDT[IEFNIED@PCMIBID@JBIF=KAQILBE@LEN>CEGAFIAEHFPJOAW=?EJQPUOJHQHKPHNJCIHAMNDDFFDBMOBKGCKLIFHHMKTELFHLFOO8COTlGQKIE>AMJFHR?JE?ECSQPSLEKEMAPEHHKRJEHZHROD=ISLAMXKJQGJLINBCAQBJLBOJMNEQPUIJEIGOKJGGRJKG@LAJLDA;GRNGELPNPCBHKJIISMHUINMVWIFPKGKEHEJKFUIIPKHFJNCFEOIFBKFKIGRHHJFGPBBEBTMLVJGRLIEHCIBN>IECQFSDADFECHQGFI=IFI=DAFRCD=KJ:DG@A:QJDBMTAPND?NIGT>;RB>MG@E@MJF@DECF@JEEOCDJGEBPAGW?=IDGMFRIGFC?EI=>R\BBUMGFOKKDANIEbEI>FYL@LFP@NcQFLGKHBHHI?LJKOH`TJEHPGK@KGIGEVXCJSFUKMBMDCLQJICGEEKKAPFEKSMBJGRF[>BINQOMORGKIHCEJL]HDQAOTQSLL@MIDIFEDXPD=O[FNOH?CEFCHKVX=JEIEJDIBEGIDN?EDC@ALCBGUHBKO>NOFPODK`JMKIJOJDDRLDESGEKI@LE??IOHKB=CI@EGR@HQOG@HFFK[UKHNB=MFKL8JNGELOGJ>MQI>JNCP9DFFRNW\BTFFPCHPCMOJ=TLEHHLLJGTIGGVIDKYSDAFXOY[BBTD=H@IEIGIFWDKCFHELJJKBCWUPGQ?FDOTBNJ@LPLIDMLKMNHFXC=GDMSAACASLBLKFLFHAMCLKDWBJRDGHRVGFPAH@8DBFBE4@AFMGFLGH?QJ?LHGGBOE>PHM?LO@MD=GIPM]FJQIIKRIEIKHHHMHL?MGJBJIFDBGMECFFO@A@XELGEIANOOLJFDBNE@KKBBKAQC?3JJJCNJNJTFIWGMOJJDB>NHCPPNNCBGN>8KBD=?EE?HG?MIEG?BB>KG>NGAB=H>E=DTBGKABTKQCE?F?GK:EA=JDWDFUEJEAPT>OHNLEFHJEAEBDLTLEBCNS@ODEPKCKNDNQLBDNLJLXDP?KD?FGJFLGLLFVEPQK>BL=IGIDKGLTEQLVDO?`ODWIFQAJDO:A?\ECUI6G@EHKNE9BMk?DKC:GH?MQIOh9AK@:JOCGAUDIFBCSD.?FRQ9ICCMIOWPBXkAIZ^>47CKOBAMOAS;VDLJJK]HACNK5VKVJ>EEOWHQLOAKUEHHTB;R=AWE;W>5COK3;dKOQE:BAN=CHHDH4KINIPBD@RIEL@:HEH@FO@NCLS@JJ@KGFGDBJH@GN3QIDPH8OAZ?MI=SHQNNEEEHMKKQWJNKL?NMMPJMFHHERGNELMKKFFRMLEMGDNJUACFBGM\IFS?EIDCLNCOFKAFK9EKCUMFPFICPJ]LGBRIRNEKKIGML=LIECJJRNCHPSDHHB?FICMND>K=BMMNELDGITEHHKJTPLIIP>OCSGFVGJKGCDJLG:PGOFDMKIMDBOEJACDAKIO@UHGHETNNKHSQGGIAI?KLCBHMFKHPKFHGGGL@O?QXOBLUNGLQOSELDGLEJE;AOIJFLCFNIRDBNFODIHKOOGT?HHJ@SJGZP[W_LMIFMPFHLJDRGIEJJMKELJIIUCGFKFFOHJLHE=HDRHNFJ@M\]JOLNIFPKEKCG\EGLUGFODKLEJfIIRNDNRGFEHMJHKEIUCIDM[EFOHSIOUKMKN@RGOKJOLELKVMIHKDELCHCABKSYMLEONONIPFEOIAISJGHPEG@ILI]NKHMJJ[LPMEJNFKEJSPQGEQLNPKPU?bHAC_NSBI;M^@HRRRHT8IGMG_DDVCESBMFBXFANLJTOIIORBF\KNPEIESGHRKLCIQIDIPESHJMKNAHCOIPJGD>CRHAJG@CITOOEHC=KZL]NPGNK1^H?Q;OREDGKB>PCTZ9H9?_L^QAGG[EOSHB?RNHMF?8DIJLVTZIQLILPCIOA?NQFDH@YID>ILPVEEQISFC;KSHDDLONBCCMCEPRHC@DIGEKS]HQLHLENUG>PGCJIEOCJPVHOSMMGCKBPPPQGIGVKFOGBBEIQILCEM=AGCLMELORMFILREHP>;JEC;B]@INOJBKKFI?G:CBRDCEUFRCIHKAHENOOOJS?F;UHGFRSUC@HBQYFPP>DLJONDHEMFFBEC=IPAFCDY=rJJSITL@AED>CHILCVAUGXGJD@T@DL@NFHJLOSRKY>LQAHYEHCZGMEG;DDIFH@OOE@MHIJNIVJFNLHINGA?BMMEKKMN_TSANUIGCQ[JOJPCQWWKTIHALJMJE;MIHCAH>GDULBCNVKQTKLJKHTGWJWERGK?OJOCTUIFJO?JJFDNPSWTEBNLWCDU6DTFBE]HB@P=QLFK5N@QKBKF?BIPIHUF=EAAGKHCW>MIBBITQA=KMXGEIEGG>PUDOCbE>FII>EFCG=?IKCEGPFIN@HGG@FEIPHH6HICD?G;KHGVGJLRCIP;B:?LPC>CGJH::BA@HJELF9M=G?BO6HeVJgALA8HAJ=QDJL?BGMANMIAIMEJ@JCGPIB?HC^GTCBNDIGKNNKOI=G9M=4EEFNGMHBFH>CSJLPSQIFJENDMD>GKNAN\MSLIDOCONIDIKEL@;HDNE=KQRFWBRHAFJ]?UAN=GPNKAFGISIOQIIOHbHNJ>9I?CRIIP>NRJKKEMGE;j?WOGHGLSTEQTEBGOCHCGIUFKKNNEFNMKDM=?AGI=MMMOMOGD@FKCP]WBMHGPVGLPLH?>HCSFI=GFAQCOLKJFXGIKWDHMP?RF[HHGMMUMJDGFLCLIBQEJEGHJOLUEDUXKHIOMBFYCKQXOC]GI\>MKAP=IO?LSVEPDELLSBDINJEEEMBGSJXNOLOTBEOG[HOBXELECHFEOONO@8YJEDAIUCMDJKAPL8UHDMQN@PV?EN>D[:DFEAIZBG?LEDLNEOAI\AIKCJLC^F\IYJNFJDE:NFJXLGJNHHDOU:MLWZMIMO?JMWJUH[IJGEEJINEAIGIWLKIJAMIS=COWKL@KI9MSM>YHSQGc_HFHfWEJCISKGBFK7MNPCK[FLF@KN>GGHLIBGHEDHZKKBD;FFHCDJCO?6FH>>RJJH0EGRIIGCIKZOYFOFHJFM=BEMJIPCUMJEIFI;EHEELVCVQUFGHPJEGEC=EFDFHKHHSQQPLKJSPBA:GHOLPTIUMPLITA>EANOXI@R@SBDBODJEJQKHCJBHTLJE?DDAGRPGPBHHFNGNNERPOSILDKIJ@FXUHXDFLITHTMJCRLOFM>EF>YFPJPDFEHNCJKCFQIGD=JHGFNSIEREHGGQIMLGNKLLCJOM@ME?KFJHBOFLGIGEA8RFBNNMANMBIFHGNGGEHI@JKLJGC@KIHCCCOQMFJGEP;KN=BDOKNWCHKDJ@MCIDGDDPAHLZIKYKSGMXFDAJSBULAR@XZH@OGGBCOPJXBQCJW_BI=JF=BABGGK>QFCS?JJFIGCYFN[OW]F9aEKIXPLDLKD?LIJ?GFONCWSEJGAJA[PKHJSDETTXJHFYE9KQGL?PEF]UB?KGDFJGBBZYSDJWHQDIASK:?HTDDHKEH?BAGIhCIG?BC@QGJZOHLOJGCLDOFaVP@FENTQEFJ?GNNIJIhFISOHCLRBCNJHJIU@GJK@@IOAJECJH@KHDH>JJDGQKMSQ;JIQOJLMH=PKSPGHK=QJ?GAKFFLSKSFKIGDBMHHB>KGJDCMQYFKJIWKFLHJACH?GMFMGPCLEJC?CJHNFUKLSISQZGESIG;BLLDOMK@MJIEM@IJONLKJKEFEOCDHJFHOJNDYQJT>LMCBAGFIAGHKRPPLBEGNSRHEGPJIDDUMP?BAPHN|MJIKP;OH>BPHOMFNBNKM@LFB9SX?L=UGAJSFGFPO\FKOLKNHFB;^FIT>WFC?NQQOMMKOK9REAKLD@TO;J@JPKHBGOGT?DLDMH=SILOQK@OFBIN?PDJAHKMKI;aGMCBXHMLBOQ?HFLLY;HPCPVUSXPMFHBFYHIJL@3POIMNMSEHOCZE>FFXVKEKNM=GGOCMNVFQNOV;EKIIJK<\MIBNKCWQ@BP@CK>OLU>MOJOJYGFBJHJELG?>KOOKHL@DLANHMJHOMDAJ?IEBKMGCHL@L]DLGDII:GFKGGGBKGJQNHKM>BJ>GRQS@MILICSHCA@QGEAOJLJEMFALKEGDKMGM_JFE=HHJGMSCAMJGIPBBQHOVHLOICJGDPCIH;DAF?EEFNKGHQOLKKKD?NLHKKMKJGKBSWDI>;JEBPIQDEEQJIBHDTYGQREJRKHPKMD?QHIE:IKKNBXLBIDEGFF?<@CDBWHSCMAN?KADM?CEEEIOKQMCKJHCADNSDHL=IFZTJIHNMLBNAIQRT>LCVOHEQBOGFRJJDPFBEJPJFI2WRFOIXODQCZBECJIM`KBKHT@D[FYLOUN>OCLLTHQHNBJIIQ=JIWNI@QPBJPDKDO:HIGNJ@FP^QVLNEIK^FJEGQGEHGFBMWBSPHOCJKPMBGHIFBC?EN@IWI@EBNFCGHFM@[TKKBSNMFTCJMM=SNALKEDSGFELM^BILEPDJILOPAKGBAE=HHDKJCGIEELBSGFNFHL@EJ^DRKIENGBGHPIZEHGBTFAPP>;VGNGDELNFRU?LNDPMXJGLOGK>I:JKPERNTJGBGDRHRLG@HEHKEDAFU@OSFF?GMFGMIIIBMOEJLMFMZ=P]G>MBERFOF`ESGI[OJD@CCLJTDAKMPKg`TLLNF;BBIGGCMABJ?DSR;DLBFKWENQDAKDI;>MN:DNGKJIELGMECC;JFBDENEHDKKCBMHHQTCOK:JLPGHK>GHLICYS=DKADBPCSLMOKOHKEACHNIGGEJHMEMGKKRCOGNFSGE;CKLHCQK>GGFHJDLB@I;J8EEIIEIPMKKLMB>IBOEMDIFEKGLJLF>IKOE@NG>GCCFINJJEMUO=QDECHMBZE>KHMDAMD=PEI\SIEL@JIOB?C@JBHVCL@:IJZSKBDMCLHNJDKIFGOORBECIKNTEQCNNNHDGHGHEFSPQWDHFKQ?KTDONFIDHTDBSFJGF=J@GJNKHGNMEEnOYHHFQVDC?UQHE?CBD@MEMBKJ\`D@HMHP@OKMGXKJKCXLIPDGARWLFHBE?HFIHVTJIIWQ;UNXJDECKPB_>XFHGJFC>HNLJXK@QaMLIOLRUFVIEEDGIBMNCBNOIGBGJJ=JMA`TDJDHQLNPEDFNISPEOCI>GGD@EHLPMJHH;?GIEKQdJMGN]K;SME@CIYZOHKN=YDEEPC>CIIDNBbMOLHJKLFBNBEC>PLJMBILCQBAE`JDJJIFLLTJKJDDF>MLHTK>@@KRRDEEIN>>IIIKAREJEQZVPLQKCN?NEEFFLQSLCQMB@QNHHJ>JPCKMKIMJHTEFBQIJI6LAKFJKHJEKJOBDKDQGPRQTQBMNMJPUIF?NRJA\GRRFFGOLBFPHJ;FBTSMTGDEEWA7OAO>FJUGWDHOBGJBBT>>HBBJUHNR7IILN>F>CGI@BLRGDQWFEFIJZOINJEJgPDKTPKGELRPHLNFKA@BS@OAMY?BNLUFGaEPHFN;JAOQCBOLKWDBIYNMTKTNQMSDOE@IFGHM@gJLRE@DLLJDC=CNKRHMaJNIWFPLGVPJIG>IDCHIHAIE>fMGLCBLD@USJRDRJQ?DIKRNNW@;CFIAHXLSRHJBBJHTKDIHGLKG?KEIN=EL?FJNDFXLDIJCDGELbLLSL=GHCOYKJGFLCJEHCCVRIPJEJIFJIF>IAKLEGZKEKULRQAJLGIAFGXOTCKMF9OPG_MFJIGKWEHOWL=eBMTMBYOH@IKX@L4EQINGIUGDDGUCRAHEKYB?JSBI\FHELGTLJFMDFSABTHHLLJROZXKHbCNKJMLLO?LDI5ALQBFFEBG@FRDVINDDMFMWEWJHLOdKF@PIXXRLKDMEFHKMDKSIKUGSN@LUTMLOR9PPWLEGLWLLMHVG@SLHMMMDKJPKQCNYRQ[DPSBIKQHHOKYDMBJINPSHKOHJDHDCMGF?EDGPPLKJEMY?GBGJUS;HHGZFABJKPJTN>DD=LUN>?BBKBMDIQC>TKDIRJGJKKOAHQ>DSBPHPKIHICJKYTGLJGICP?JFJIM@F@IIF>JHFC>REMJNEKLJFSGOER[NJKFE?;O@EGJ_HECAUCFQIGJGEVULEO>A@5CEKSWPHCL>NPGEMELAK=[PJHLDIIMECHAPLDACNOG;JKJEGMLADCOJFKKPFQLVFTJGVODNPDTJHJIDCGXUK@DWAGIFIPFPCLBQNOOEMCM?DAMFEGHHKJODRGSIMJHM@IBJML>JIGGNGBMADSEJHIWJEMOBMSBJJQ>MKOICBOJKCFHF@IMNLOGITEPNEILKFLDEL?ZJSQU@SRGRIS@EH\HAKGCMJRBAI@GNDVPVKVVBQKQNWOCKNHHQRF?JCO@JIICIXIJ?RFLHKUHFS=KMP@ICLEQCMUDLEVPJJNFPNCGFHGGODCV^GA=AKJIFKVHLJRIYHPMB:6GIHGIOJQF=CJH7GETHPF@K>EJIHAI<3DMNMIGDEUROJKMPM@CBW?FSCML=JGBMOGLJ8KB;;LIHFDCLKIJG:BOQH@CK?AACDGH=QAHLMEHIOGHII=IFNFMQDM8KSIKBHQOCP?:MMHRAHUOMA<:AMQHL>[GNJJNMCLDCRLXHLRQNQSD?FGIOR>LX@HH?LEARJKN6NQBMPLMNCPMJQEAGPHBHOGBFFODJDYBII9MYNHMSSHPIKB>AFSVBEH<@JLQJHHIPJIDDMIMLGGGJOOK@TMKFDIUUQOLYOIMVFTIBG@NOI>AMIANHFFGIuREKOOKHLJEDKFDKIG?GEKHEPLILLAFDALLIMC?NML9PDHHHDBP>H=KLJE^@?PNPKIHIUFHFAKC=DOH=AIKDPNLBLFJEHMJOEGNGCFNDNGKPGJN@JD@LFH@OLNINIHOPDIHIDIIBMIOKDHNGJATKKOMHHSNMDDGKGHHAKBWIEECYDCGD>NKLLG?EILOTA?JHBGPPCFWHPAGHEBAEUIHJbUPC@B[OFGIQCHIAJWGlFSAMBDIGiF8MOHQSPJ@;GDIYI??HQYQ]JWEMCUBPFJH@DNNKNJ:N\FLQAX;JIV[LCMA?LBWXNE:C>IM@M\DaLB^G=CUGIJNFI>@CILH[J;B>HHMN>EFH?BDDQTLUQEYBMbRHKDAF?QK=TE9YQTDNP=fGSJOIDHNMJHIQAN>ED]I[JQ=BL>IWXOISBQDAN@OH==LHWJPEG@QCJKJFF<[EOOE=EJ\QHKAQ>NMEMFSMFGHHHDBJSJ?H=LHDIAHKRI@KOQE;HGKLSAHDSVNMF?IJMTIELJJCACHCAQKFE=HD7OIGH?QMEJTGDK=NLJFEADNMPSKMQN>LBQGLHUFJDNKGBEFGTG:QIPODCE19@XC?H=ILL=VPRBCLMLNHNCGJTEZTFBKUBHEIFFPKEQHP=OIFIMAERHAMPIKDCI@GLEIO>IDJJIFFGBHQQWEJODbRFQAGPPKIQFKLL?LGI>@QJNFNKOCHPGPFHQCSODNBSDAFFDEPIMOKRMEH[T>IRELNENQCT?HIJSBU?GTIOOWTHSIIP\TLEQSP>ONQGTJAACFNHNBGK9;TLL@AKN?SGJO9CQ5INBIVSENECHQKMA\GEJULJS9HIBJM_AP>OLA8IEJBIGOHLUCD]KEMB\KDJNE?KJ9MHDYRAKO=KXIOXNIFS=UIILAMTOLDH3IAFG9JLH[PPJUUTXAJIE?NQAPIJ=HLJ>E?JOBLAHYGEPDH7GFHBSD[RFJCPJG>6HJ1IIFGCWRGWFBEJRDC=JXIIBJPVJICL?AFPFI@~FH>DMJPeDKAN;GD9DGLMEEIWDLJOIYJIJDFJBOPR<_MTEELFENJHH9LNJG?MNNHNMMIGIGILEBN=NILHHM7PLBCADG]JOMIDAIFMFHAJEB?LBOHHMLMKH9JBBGBT@HFL7JNILCSGK>>LKOaFNECGDLFIHEPIKPMBLQKIABIDMUFEJFLKKEOJFILBRFGREC?COGRD@LCBIFLKIIDLGOV@MUEIHNNBIJLTPDDKOC?RHPGINDBERN=GIEEIIEFJPDECLQECHF@H@QDDDCEKIBRJLGGDLEOATMERIQJPGAKHMDGNIMROEMCFGEGRBMLTUHBEECPDAZKBEBJPEDFDKHORDI=KGHFEIRIDMOMRCPITPTFKRCNKLRPLKY>FGPYJPQAEUHKEIMHIEDGJDGCDCNBGHHKI=_N=BGDOMNRJEKQHAJ?RPDQOFCP?OLJSCIFOIRDQEBBIJLDWJRJ@JHJAXIMBKOIKGENNHPBXRFNHKAHJBGHGAJEHNFWGIPQTRFMJMOE>[AJJDNQSH=NEJN3J@8FJALOLNG>KTKIQPFJHINDI@QCB7HI>MGKGKH>E5HKHKFCHH@R>QNLBKHMD8FEJPOGJG@>@AICJILFTDREILKJIJVGMOTBEQJLPCG?IFKL]W@DCMCHBHLKCCOBHDUHSHPRDWFDD>OKQHBFL=SMBHHOKRK?GQHJEELTIQKF>HDIEJPRGENJEQRVHOGCKKNENFLFSE?ENFFPGMN>QYSFQCJFSA@MHIGGKJJRMWOJXN;GOKLKICJOEHELOCHHASGBF=ROEEXDBMNQKFHIXF=LKJIWBKJDORL;QTBGCIMXELGFKG@S?NH5XNUIMPHMB>hHMQ>DLF>SEEGSGDENTJFMT?EFQJQOCZBMOJDH>G9>RMCPRMHCGQU=>AENK9gJIOPIJCC>KONNC_GLLMDELACLGI]BNNMIKCDOEGDERKK;QGJ@FA:IPJH_7MHNVHAIDMTUTJMUHN=ADT:GFVR@QCPIOFFDTJFOOFV]KDCDR9FTEJJEAGHMAB>jRCGSOQKJEADMOUbFJGFNSBGM_XFMBDHEGI[GMW;VNLEPPCGLOGI_JHVKXSDKLZXKLIACBRQG\KSE?SXGTKHMIEY@RNDLRNLFJESVSM<@OELHWLGITFHBMZBDIP?MLIGN[DOSSJMCVKLIPSHSPOHd=PNT?KGBPJTPCGJGPURUOJFHNEEIFJJTHIGJLSSZANLAP>GAKLA@FT9J?PzMMVEKNNKEKFITDOKHCGM:DSKORCPU@DHAIGL?KL>UCQHLMNJOKHMRNK[NEEHIVJ];N@HMTIGTLHJLFJPRKLCCRGSILCEONMYMKJBHHGCAKHAKRKNGGHDHHOPJ`NHQGDJXLKKSHGHNVKJEIGLGGAECM;OCKQEHFGHJOMFUKQOTNNJSAFGMNLLVIEEHREYBQGQS@KIOWA>XGONRE=CRHKPIfLPWLKPHPAECNOCGFIMDFHGBNJEGDC_GLOI8DLHFNNLUKMGNGRAOWDSNMP;JNJIX?JEBP?DAJ@SJN>UGHMEOIDLLPII=TLDMMFHQIOJRJGNM>GDHOF@HGFDOKCALSOH>XNBEJDD;LLBJMJMJOBDUMMQPBBOHUPNKFAMDRBT;BHWLI?NHNGBNEJQQAAAF?JSK\LJPLJAHELUSERFKAHFWNTSEIGMWCOGFOJJOWBSLEHGMBKHVDEBJNINTQ?SOLCJPDDQI`JDTJOINKMVGJNJFKACHMKGEFKI?QVQMCHLTMRC?HSNKPDMKVDE[LLOKBHCSFXHMF@VCXEC7ERGKD@JGRGDFEPJHBII?CETJ=MCJLQNPLKRF=SMMMNJGBFPGOCLALSDFHMMGH8GMEGIFM@DIQJHCHDCLHHPB>HNCIH6AF>IIHFJFLEHGFFCGHN@HH?EPHGPHMNGFHJOHGIO?LGHTLTIFJCJE[O@FDCJLWLBTEEMIDGLJSERQCNFOQK7EOXO=CFCUCFAUEHPHMGG@NMJHJPMIDCBKWKJLGBEKFXLMNEB?AJEIDNMHDFBSJUGHLDJ@?QO>JOHHIOLEVPOLDHFFMEQNJGBKHGMeZ;H@ENDLJTCOOLBQETSNMMLOKI>LRIREAWKROBDJFU=NEVGKN>BDBJEPUA@CALLKEGMHJ>NDEIIIIHINJ@G]GAKKYR>\KIJEBCDP8[BIPKVHQKDJGDMA8ALN@RMJGJFDUOLFKEF]LGLHDBAGKMNMJJJ<>OQM;IJFANGQOEKDGEKAWUKMGCJQOPM?WKJ\WEGDFGRGKNLOC8MIFNJEFE@AJOOIEAPEEKNJLOMCMGFLAMMEBBOI?BDNRHJERQFEHMICGPKHGMQNCMODCWNH?BLAJGPKOBEEPHEIOKUPADJL>KDAOOHDPLLKJXILLKLCNMNBDIJOCCIELIGOJACPDBINKAEIIEKCGSOCLFEOHNFR`BZHKCKJSHNJSRDMNBBDEONFZWMXCGJRLEbRD`EDJGLEQHhRPDDNJMGCEVJNQ?BDCLFKFMKLEJUVKDVAEHZICPEJLCG]JLGFDIHC\C?TDREGEQ>JH?SOTYJaK:[BRJOHSJZMTDIGHHEMNJ`NM>IVQIHNDI@QMM=HGDDRNeBPOGOLaG\KCHSOCXFOXIDWIKEALEQ@MUNIFVJGT;CC@JCFDIDIKFQWG?GGHFRbHEGHIMJGPDHN_IFBJEJKTKQBLG=WAMEMFV[GMNTKXPTCPMIIKS@KQN?=BQ??=FRZJNEJNHTDX?IEBDNNSAOJZR;NDKBGE8K9EKFNHXQRL9A>L>SCSP;TBLIH?dMJHWSOEJHREFGKMNaL;KHN>7>;IH77O?A`;O@AILCXN=SDG>LBLPJN:GOASF>B<[EAaOJ?J`SA7QNRD;@87DXEKQ8G?HY:CJCCM:JZGJGSEB9U@EEHKESR_OBM@FEJBEJJFKB\ICJGG3D;LRCEDT?BIPE@LMHJGGKHHJJSNEQ>FVDSFQIHIREHELCSIDEBJPHMORCHNUBHJKNFQJPJVHH9HPI^DN@@XNFJI:>MUCCHDAAKD]IHJLNOCACOCIQB=OCCLFM_>HNGRMGIOLUOQNSLG]KLNMGELJICeLQFIQFLJNMND@DTKIHKKDPEEFFCIJOEHKEHGFEMMJLIOJRCFHFPDNSNPIECWCBI?NPHFODMO^P>@AIGGCJJZHTMLLPODOGURPG=FGI?GIIJ@ICQELLCMJJQLJOGJMNLPLGDF@GOQSNNMQVGEEZQ?BK9UFHIIVAGGHCRU?K3OKC5NQFGEDCMESFT?K<;YGBCPFEJD>5EWBKMCGPK>:9IGgEGK?FVB5=EJNBGAFOKG=KFLKHOHKJ@PHCVJ9F@AGLINANAK;CD\GLBZO>@?IQJEBFCCCPPBKMG3FQLLGM?<:AJH;MS>APEODMAFUAJP:BGJQFG@GLKNRBMBOJFDNLHEGCGIICLPOAOGEIJEBGTCMG@UCHITAJOAEOMMDIMOIEOJAIHJACZJALIOQC@OITKHKPMDIOUPGAEGWNEQOGFS@DELKG?GECCKEIEGFMHIMHGJBHLKAKDJAOPNL?RNGTEFKFIFPNKU[I?FBKCYFGKOGBQA@HIHkFGHQH@GKCEQDTMKDAHFGBMKMOL>JGVMDJJKMFEQBPBEHCJFNUDHGVVCMD@GZULPGBDICOOPCRBMPMLKS@SWKRBNHKNFJ>RGJBFOZFEDIG>CHO>KOMKLGGHAQVLOJSKGFL@EMVOBHMNAF=CN>TNB9C>E`PKHJHMKQEJBCOOQMJP7GKZF@BELKKWUBIKGDL`LHVH@H^EHDSMK:EJHR7?BUaUDNb>AGLJVHKIMBcDNK?WDKLKJKBEKDPCRGFTEEVPB9BLJJ_>SEYG;>RDLJ]GTEALGIONIFQJEEgBN:XZJTNQQCLEJHIBHMFCBPG=@PE@DQDZUIJ?NQFOHHMDOGBGJUPDOLMLGMGF>BMIBLJ>9MRWXAFK]XJBY9DQD[\FSEKJD_C=CI>EG\HUDGCLBDAIDPYFIEFVLIJMPIBJ?RPEUJDMD?=EGFNTFGF>DKUFZHGFU3@>=CY]EU>NJ8RCIGL5HKUIYYB=XARM]>CBEUDH^KWVIE\^PQIFDMFWICM?CBJcC}hL:@ZSJQ>DVZH@IKEVVH8ZRR=SGCIU>IL[HHNH:BHcRAGFAQU9\EI:AZLJTG]GUW@`NTYQPIIK;KQ=FHKO@LA:\=@8FHLAGAB@D6P]?QJB@HRLKD=:6I=MFFPTHHHBNDYUJ>FL>>gJJGL@9;IAG6VBIGLPG?KKPIFAWLD;FLCMGIIGWF7EI8DFNRCDTUSFDGKCBDNMMH@CAEEEFBOMHFE;HFBEIBIDIGS@NWICHF?KEJDEJGLZTXFJNFLFEE=IGFNWMANQ^Z=CF>NGBFGGDIMESDGF>@JIEDSA?DHGDKLMRZFEISDLXaT>EKQKTFOLYMISBOFUFTFOMMhLDHGCLNBZJ;SJJPSIEETINDFFDVJVKNEBRAVJTZJWNG@MSCNJKX=UOOJIOV:JGKRTJHODQCSMIO=AG@L=IOMLGCGEHSOSMFONGLFLJJJIEJ@MFJFIaBUJYSLIELSLHRJKLF@CEF?AONYHOEIDBESGOCNBLQGPGHMAE;GH?CGBMELMLIFPHS?PCICCOGCMMKOHMMEKPNAIH=COCPQUGJKFHWEHHLCM@PPaPALMAGIGGHRGHRSVCANLEG?NBKJGJPHQICFHPELEQNMg?OKZ>CRO_ERPEL7FILLFKLJETBSJOLMU@KDBNEGI@LIPFIHJG>IKQDORACFU=NI>GC@LOPKPOEGHRODPDLEIBOHDRD_BEB?LHJJFKLJGNYJSPJFBFNVENX<9IZBLBUKFFFGDKJMKBRFZ\CISGJKDHHF=FIMT9KMFTLMAJEUGO]WOR[MRUIGG\HKFOIRHJESLfDKMJIBDNGERQL^\EKCBUUGQLGMJGMOZJCAJYU?LJ=KKMVJNUKJBFKFCROHOV\DCJORHGMVGaKHK[JNFNEGJDVMKBNCDMMPVUIENJDVFJIBNJUGGENTFO>;OKL?>WUEO?PKSGBJUBOIK@ONLNEQ@KUUJMIAIGIEFFIC?@HEOHIRQER@KLEXVMHK;MKOEEMTWBNOWJFTPFLIL>PEFDSHORIQKWP2RGCRN@EM:[MRGIJ\?CGPLBDPMLKKKKSXGFQDP;AIMEQF6JUAXROEVHLQJHGGKOKNGHBAFQ=6NMCRGO>ERELEQLEMNDAKKFGF?K\EMD[NJEDCRIQDF?JLHGNJUNICpJCYDGFJBEIRKHMFGSORBLBCIRSRPJEGLEGQQGHHIV=H[BLHCKPHZ>CQMKKPAKSQAFSVCMRFMArEBLDHJ>NADDPF?TCMLGJMJKFONKFJOGHHPFLVLJJQMTDKF`LRK=IIBLSFLKJPGOWLECR;LIHEGBLEOPPFHI@SK?HGBO=BPIRJBKKQLPMEDRTKQBHFISMKLVFLNPFHJL@WIG@FCTW:UDMC>LCNAELLHHJPGFRF?JP;9EFD>DSRIODLPNHFVEOH?NMEEPJTPOHBFCIUIAMXHSP?AKNGRDKCMTKHYC@9=ZGNRMDLDKEVMKEF;EIFMPOUVMPIHGINKGMI5GGUOP@?GJHCGAQPLMHCF@HQVEFKERBKTH=GJGDQRNEH@ZSDFaCQJAJLLEDOCLIED@AKFBCHDRIKIB?FEN>QHHNESURKFKBBJER@EGNKQCHSKTDEKBGJHLQFKRJUH?JB?BSH=HLPVDFIFRPTWPNP?FLIIIGSXJDPGJPA?OLLK9UGF=\QGBZIG??NOUKCNJJFDCA=BCG>GNFTPMHEQBDSHJFV\NBMGJGEFO[J[GYTNOKOEFBCPRKDCOLGA@JCLDKCLGPDO@FGBLKNDFIJMFHLDDCCLHEJBKJIOPDRMGHJLM@GCHBEDONLfFSEHIHNAE\DFT??FHNJF?F@OBTWID?M%NDGGTI:FKECNL;D?JHVHEL>7HEGTNGFJDEKJ:LYPGUXCLLJB*MLCOO5GCF@OJLKGHA:HRGGOHEOU=G4?UN=?G4LIMDCA:FCJ=J;BKI9IC;IO;FKDCN>FMMBQA=LP@KQ8EJ7HLDJTIFRQISF?B[NM6EEMECL5dCFCAB@LJ:;NOO:FFGT5OBEAOKEBFGUFFKIK:PND>:AHTB8FCNKF4C@FCAPE?UEFEFYXBCMGCGECFLJPKDNSRHC:WOCIKXFGWNI>ANRGCF]O_EQKKAGOD@GG?M@ANB;@=EOFN`AC0MAP==MFNGMONLCRTAHFIRQLCQ@KJDLBNBQDFFM>BMFS@LKNOD[DGI@TOGQBHFGGDNOAP?ICDGKFGN=PJFEHJRFGL;>NLLLJOOJJQGQHMIDKGIMGCMNJGHFFIETFEIQCNKDGFEOHJSQBOGGKLIEJIJGMGJNHMILDLMMHCOIDDCGQLMIGGGFDONKHBBPEWNMFPBGGSTLHNGQDKEHORHDFHCKNLFRIEGJIMSCMCFKMLJG?LEAOGGGFEPHPI?MQKOKLLGMOFGKDOIGH:@KCDKISTKABHLJFEFLIPMIN>CSRQLDQFSIGLPTNLK=KGTBHYLJFENHCDLCQOEGNHEEQSIGOaICRUGMBJHAHGGPGSGKGMOSG]GKL9EGXGJPKKJKFENHCEJUOEEKGNLRU=DRCGGPJBINJFUNGCPEJGJPFMUJH[FCMFRYJIJQFIKVH@EHFMCPUFLNVIUOYLKMJ1MTGJHM9MLJQHGQQNCDFSSIUCBFGGHQPTIfAB@ITBEODIAIQIKF=LOJEJ>@KIONIUVEICKOORSGNFOMLLRDIZS>EANP>KLDNF=LNZAO3DKWZ7HJE;^JHWKEL9B@JN49P7LDPLIH9GGL>GGAKFUKDQ7U:HOGDKGTERJ=R9N=>ACDATQHGLJFJECD6LUNUBTBZKR>GE7QOC?JM9MIJMJ2OP=@JL5RMEHFHJLKKBBJJB=N:LFAAPAFQLNOLHPLLKHFKBDIJNKFQMQJLHBQN?HBMHBEP@SI@FALCCULOUEEHGQSJDLRLDKINLGDDBEF?BIFKLS@MGFBCGLMDGFJDRPNHFRJRgKKMJN?JEKJEFKNOMLUJS[IPLFIFII@DLUGKDNMJGPGEJFUNGBFHHJMZALASWKKKEPQDKE=IFDHMI]LJTKVWA7EIFIPUFWFM@@E9NGO9FCDPOHSTITELIPFNBGDMB?EGSIJEIDGR>IM@APP=J@O@@AKJ8EJKEJETA:LLSDLKKNTJFBL?P^:DCR@CLGLCDKIFHHRCF;:NMKGDC>AQKKKR=K@>CH=NNNCNHSPFAFR3UA<7LPKFCEI8EC9M@FREJ9MMFIKMFJEIDMB@FF;EQMPJ4NGDJGQ;F@B@PGTNK=JFTVD3AXMME@CJIGHIUDB>P=XHBFFD=GAOJJT8NPFHEB=RETPCUMAKNGKDN@=@DKNIGHNIKKB9G=CNHI:QC=DAK@FK;PBFCMJBKYBIKENJJEC=HDDJGENCPQKOM?HICHRDJMKFHIRHDJKFN=ERBBONDCTRDEDLEEXJGHLM@?KDTQPQJEFPBP@DFQE=TJIACIHBDNL>@XOFNGJPHW@MIC=CDQJM?EBKEJM?P?DNESQ?GKJ=?PDKFSKMCEJEEHJNIXE@BDPFAHBJEHEHNFDQAJOMGCUNH=IBEEOE?KBXGQBE?@\BGIGLGNGQ8WPJIJHVDGHJGQFECKMUQDFHXAOLOQDLIHHFNIBBM@QSQHCHOKFBO\J@LCQGONDMJMEBJEFN?FGIKK=QBHWAPKHQ?IFHMF?LFSOI^BTITKGEJL;E@NQKTFI@NACINKIOPHAPION=GEILEMHPCINHBNJFBFR\FIDSFF>N@=LGBIMLATKW;GO=EHCSEMTKKOQFIDDXAMFCFGINMKBHBJOKIRJCJ?YSGDRMRPEN:MEHKGSMJCSRCHNIEG@QNDNFAEFS[K@TMMMKRG;BJMGDE?LLGLGGTJEOHLRPLNLKJ@GQLKPEC;EGQECHVFL@YFGGKLHIPDRRFDKWIO@INAJFNII?FEJKLAETTODMNEMKJ^DNT?WM[I>^HGN>ECSFOHQI>PIF9GENH@CKU@CNIJQHEYDMbSK@RF9@BEHLGE[IPKGLEJSCIPMEBAACFBI?FNIDQIDAFARJCHRBH>JLEJDINOHEG=GI>HGJG;EOFC?UI?EIOCFEADDFBJQQAEEMB@LMIPUCWMRQAG>CY:MEBDMQPPUIPNJIJOP6GCA=CNN>LNGINFO:CEOGOLIVRPM@FAHBEBGCNENF;=?GHJKDKOCFIMKE7RIEH?IGPL>BKCGLGUNFLOOS6KOL>NK@ACKKINAEFB=<9DE>G>HJIHPMHIAFUOOGDR?EOACU@GJLTLD=JXH::?>NBFPQFQDHG@EFBIOGO>BJNKDBN?OFFD4RMCNCITOFK@AFHOCGKKKJLR?WEEM>QGFHGMLEJLLNQNGBJQO@PRJAPGLLTMGPKCDFGC@FCLA?@T>HMBNDBLINGIBECBIMJLHLBBQKRIHLOEMJKCKP;IODEJLUBOKJJLIRJHJJJGQCIQRLHHBOAQKFKJIFHJDPQAGHLFUTLGDEFGPOJEA>@LLKMHGELKGFCOATMDEOI?DEIYHGMSPNDHJJKDLOQLIDMGMO>HKBBDHPJIL@PQJNNQMKMNKNMOHEIALFJFUHABBCHEFBRIFDAU>CMDJKDRYLRMEYHLD]NAFLKMK<@B9NQRIFGHJ>FCMURL=]LFN7NNQJMMEDN;EJIQFMLLMIE>MIODECDK=AGEIX3LYBIGO4JVP2KJLTOCOBIIYDLN;HSILBJ;OF[IS>IH`GEQL=?FPEDFMlKAKHPNBIRBDGK>B:IJWIJ`RH=7eIGIAWZM=FDI=LNFFGEGDOFAGHFCRTJ?KDHQA>NNHcFL?BNHKWKOAKWAMEGJAFZABFHFNQBpMECHIRICIHWEL?OTPGA?YTHRHDKJLKGMOD?]D?TIFB?HVFLNCSUIGOFAGJK[MDAITLREJKORCJKIHUGLHK?NEHEOIBKIHCLPOIHBSMEJFGJLAVINF>AKFJHOGLFMHFFOKFFFKCIGHMAPGGJB;VUELILISBKCM[OEJIIPNUHFIBOO_LKNNKCGMUHDFGGTNPTGEPGDOJZZXIKRRH?KMOFGCKPIJFHDEDSDKKGPNHPIEJAMFKPMLEJKHIA?SDRSNLNOEG[OGJBMJLLADROXDLJDGJKAIGW@HFIEERLANGHV>GGGJDWTFLROQHINPHKLKCNHXMN>TNEPVQMEIUKOOGICDOMKBDGGOCG>GKCXKJCJE@@FBGQBOIGO[HG][BPDGT:;AH]IH@MLJ?IOCcDQPFHSHEDCFKGEOHMKSMAP;LIOCaKOMBBAQE;NPCQ^>PJDFDMMLDNEIHOEKXANGCKKHLKYADhJHDH>JNIH@RJAPTF@>RINMMCYJDQOKWNLAFEJ?HJGKGC>NLJLG`BTFAHJNFDDG>=OJESLSJKABVJDQERUP@PAH>?TNFAHA^JNFFRTBFDHMOAJKLAIDSI<:BGOE@GMNOJEHBWJH8GCHdPEDLOIMCGFRQJCNDIOFCJNTDAI@B=IIQEIO8FMLHMDBHZMD==RDFTDG[D^DTIECJIH?BMDYIHEJcLLQGHEGGNN?GJEJO[JAGTIISHOUGNDHIJQUEMJJIRFOXSNLDSJKNKCNIIQGMNHLCKPJQLPQUMKKGELNFI@SKMLFHNOEGGKNJTERIMPEKDDCGKEPNO@CKM@M;LKIHFRK\ANACDFKM@PCIQIQIFHNGCPFRQJFIKB@ENHBFBIIOHINQBSN>;HRNMIGQJEJBRLJHEJHJRGOOJDIPBJQM?>HGMEJM@GLJDSCRFXPIKKWDGHHFHIIREMNJGGK>NJFMMIKGFP>DLGFCKIPMDG?SMIIFUHKLFBFLJCIRIJMNLCJDCIDBJ?@SI=K;FC7D?QGDPLHGGJCKVBQFPEGBOIF>FDHD>GGNOLACAQHOGAIHGFFIMDJISII>FEJNKGG]CWCK5CLMGOLSHPI@OOAKEGKFK@EVT=ADN@NMOHNBFJDYEOHNI;BEG@ET>=MFDJSJODSIK]COKN>AGNDFWGNGHL?HFH>AE?OFHAJP@BNNB@HITD6HJH@?MNNBB@>E?LCICT@>HEIENHAN@>DL@NOKLEFFFBFMIEFIHBXILGDK=JIOPGCDEMCEOJEHFbVB@>@CNHOESALGIDVN:IKHGFBJGDBLKQEACL?A>CEDBGHDGKJSOQEFNMTGGBJECGDFFBAFLEBFFMDD>D9>NELFHSJAKGCBELIEKJDKJDJUMFLXOL>C?=>DBSKDJDICD8J=NP>LBHHJ@CTQIQA;HHRH8UA>?KBLQNABFLLL@FKFNJAZEOD:Q>AXFLELOCL=HTIAVIO@GOJIF@FDULHJJAZJIP?RNJFESNPIBYQUDHUGEDRO?dTZEGDGKBLQPF|LNA>LTO>@SBGMMMMEPC>D@GRMDYTKFMH8FKHBQPLTLPPIIVIQAXFVJHW;RTYSGLPOFDEQ=L?Q7=JEJALHCKDSHECCCJDH^[FKJGNASLGEPEFEFCN@KRBGCK?=QGIRFADFJSIGJH@RRLHFKpO\NKBPQOCLFYHOXJJRJW=DGHNNDODDRNCRHINH@KCfS?SOAHHTBEXHPEIxL^JO^P:KIMMKS@PJBOPIM^K@IFLDH]ZDRC>GOBICNHCGBPJCMCG9A@MFGEOFAMBOUQD;MKB]AETJGGHMEHNAYTCN>hNDIFDPGQHQQSIP@GHMLLPOAIHMMCO=G]NDMDFHI>NF?LIPLDCALKQHFFQ>HJCJ=KFOPHH_[HD:IDBNTQD?mNFSP[IT>N@UI@BH=BIQCJ?JDG?FOJKLZGCS8@EELED6BXUKP=A@]NBJ^IQDRSIDPHTMNHQLBGMDNNMPF>EHLJOLNCIUL[DACLUANSJQaCKIFXFAKQ>KIDOJAJTKGQMTBDCSLYBINEFNHODCUNIEUKVGJLKXJGCFJGQNGWNRBHRJFEFWPLBHTIMEQKBKHKEBIMPCLGNEJHQTEJREJGWPGHIEGHERDFGCKHPHIIFFGBPHIOJIKJKNHQKIKHHJELCEQRNFOIJOMJMJBJQIFPCGEUDKJ]KIDLGCCLEFQW_IJOEKUMOJCLIHILFBPMIMKCIFNJHHUJLHNJJDNGJLM[DCCDBG>OQPDYLCFPPGUEEHMGAMFIMTDKQEKKDJJCEJNFLOHMMJTHLEFPGLKKLKPJHAWPYEQ@PIIGIJ>LGB@GMJDGIHPHQNOML>MHJJFIGBIDJNMHDSBD=FF=GF?LE=NG:CHBDGTEQB@=J?BREEP<;OGNB:LNLDDNCDF@FBO@KQHE?MALEO5VKBI=JHJFDCDCGOFNNBDL>gWDKBMIKI>IJ?MC>BJVKEJUP:OGP@QBFO<:AYGCMUK;HMOHN=8=E:FEF@QDJB<HBHAJU=HM@HGTEIDSH@YDCPJM>LAMLEODI>WFAHI;:KGGJIDELRELTJAEMREN?JGCMLKJVH@IABJL5GJVHTJAHMFLUJFI8JQGGNBNIKIDFBEVEH;M@?D?8>P>@JRGGJKKGSKDLKU?RMMLS:NNDHPBA=EOJGEVPQSNANEEECI>HEKLDHCEJRSFKE\?F@LO`S=JHPYPFTECHPBFMCTLQJ;9LM;OTC[CQ>JLWRJ6?O=AMI@SGEVCJUVHNGDBOEHDGGAXQ=EKEFOOJBJK\RLIDIDOHITFSHCHDRGN3LLQTQAON@MYLEONGKBGORBOACK?C>LBHHREQCHQXQEAIMKONFIICRCDOEGPMHNDTFEROJLLQLESDFCAZ@EMONHLGDRGFUNLNGIJEQJJHMNWKVJQGWIINEKGFJFK=PDHTU>FHNGBIEBN?ELEEUEDKHOKJNDMJHGLR@ONDGETFP?LK@CO>MTPJGEG@LPIHIHJLRHHFJRG>XLIEEMGEINLWQJLKQKKMBJN?BDLFMKKBTGIDTKFLRHJFE[BBKQLHLOBAQLLUDJAGGKPORL;ONQNVQFOPIIHKISFMCLGQSGQ>CKOKHUREBLHNRWHINM@QGSFBFGHPIJNIHV]LO;MIMBMRNHASLQ]NMWGH?PLDSIPGPHGFRKDJRBLKICFNIIMPONGEGHBHFTIERFEPDIF>RFLQLA@IWCJNFGIDMATHANROCFDVJ>NB@K>OQ??OEHL>D@FFD;[EDG8FFDAJNFE6Q=TH8?[M@B>?@?HGAFGWMHcUC98>4FNBp@IFPKBLHFDdC]O>;FcSQ?DJ;HHOP>E]iEDD:?DcA?JBAHA;AI;9=FFACIPCDCN@IFER@GHRD@M7IFGJaEIEIPOGQKB5S;?KDBOF7LPGTR`w?]DFH6M==G];76;6BB;C,MJXEGA;QKLFI=N;G=AJRTOSH@D@M]KCGKO6F?HXAEFDK?ECHHbJ[E?K7BHMGUPiKDI>IMDFCOPDBRKFPNCTJYKNEOLJQJ\DKGKJJULDG@SRSFIEG=D=KJM@JQUGIDNPSFNLH\?NHJMMJGHFNQQCLVMNGFJHB\MKQOKLFWKXJKQKSQMIJZLLJLRGGJDJIFKHJnJKKXYJUFNQACLHO>ADEJAQ>PGIT@IDOWXNHRCBJJKLVFJ?HHKHLPJMK@HRJCFAJGGJPL?FESHWISHS_MKKPMVEVWP]@IO?BHHOMDD:OQDTQNNFN@\OLBKRAEETLDN=OYZMFOHDWBNMPCJGLOHH@IG@GTCLFHMHTIJRFRKL>ODDADCDVMLGEAHMU@RNOAXNO?FJEMDERGILGHHHRCDPFJJJOHO[IINIMQGNT]EMC8@LMJFMDN>?HHGKNMYISEGFQFQH>T?LWOFJGSIH8IKBIHCLLJFOFID>>D?EBIFDEQTMSKFGCYDM?CCHLKHIIOLG@VCXG?LLDISBBHMNEQOsSLHQE?BSEM=NFQJCTKMSJDAR@THJKVLHCFADR?XKSHFHGDCNDPHPRMDHPBKPKPHRFKKQQKPFGSORJDIKGMJKLFUAfGQ<>DJEBDKLPNAKBJIFJMPKEV:LHKN@M?IELLIVJFKHOJFIAFSUDGCFKEUKBHMTEAPHRI@CLHHGKLJEELHBPGKIHR]MTRHJMBUCPLICKIKKGMTAPFFPIHKDJKIKGHFK;CABIBRCR>CIJHNJFCHO?MHHA`CSNSDLPFHCKCAUICC:AOFPJ>NDGAOEMCGGOWK@LFDCGFSJLMIILTJ>HJJIOXSLDQSGHLECOJFUUE?]JFHBLKQHD>EEFBCHZFGCP=NCUJQIAHODBBMEFPEKOOUK:HE>HEDJAKBPJNQGGDDGXLPCMH>EEFD?6JEATUUPIFECGMO9NL@IKGHEJMJHJ=HLUMXCDD0EL;M;NCGK?UIJGINJNI_CKGFF;RRCF]=NBEDHSNFPCTNOZ@LKZJUCILGMSMWJRCQHODF?MC>;NDELIIHKST[VBE@OZFFHNJTEZ@LNLMRNDDCHGIMELFEGGGSJCSLFIKFDA:NYRGZ@KKVHJEWZAOAKD^MU>FVb>?JJRJFFKXOIB>EGWL9ICCND:QFCGJNAT>EIJIAMOIHVGLO<>K>DAMBHMBAM@GIO_ZOANPVWJH;.LK>HGHH::R8HR@G8IOGISHNKQEHKBR;IDCS=M;ACSELSQbBMN=DADCGPUPH=GDG@8\GBQJZSAQYDIJ?@GHCDIKJKPCAPK?ZO@ALL?C=ILJC9@SJKHOWONQTNIIT:MKCIGJTKKIJCEFJDWJBNZOKIJF:KGNUHLLOCGQOESEJFI`AGAHCLKLFNNIHCLJFOJGHGNNJ?@SUKIJBZMQKDUPJGQGFGPKFPQLAPUOEJGKHDMGUAAJLUQWKCOH>PXFGL=LGQIMIJENEKSHK@BHJDIHWPHGICAJKBKJOMLNUSNKJN^OCNRMBKJT@JbCFIGKROQIKMLAMEKRRGERHHIXPBPI=C>DDGLIJAP@JNCD?IGDEIRFCBGKGDSJJKREBICOIDJIMFBRG@DM:=MO?BHLBKHN>J:HEGOGT\HN@DIQKDHEGDPLAECCAE?EVQ@FENFFGJK8EE?MRJE@UMHCKADPFMY@GGCB?IHAHINDN?E@BADG?LLUICDKO?TKGBBLFICINHGDSPPIKOIFXKU?KFXXS?ELNKDTOEECNHGDJ;<@XJKHKHBIHMUMADLSHERJLLZM>LKEFHKCOKNEIKTLKZKDLKGCSN@OUHJGSA@JVJNSTQFHJLJHQNJIHPLIIZHEQFPM@EPMEGUH>RILKF>MZB@EFKNXDI@RDIEOLD?COQPNJITANHBCRG>EGDMZDB@OCSTEPHQMCNAKLFRGGHPJCPMNM@IDFSLGEPKWIFRHKQ=@IIMHNPCO@AEGQLBNEKMOFMKJCPLHPLDME>IIGPNGHI\DIFICP=@QMNNHMHKIJJBHJGUDBBK:B>>I;NFC=NFHDDMWKI@9RALGLIJH1F=O8OICE=CI9TLOCAKICJ@J@AEA@JAQEAKAGAKKFGQLPHDMCE@GS>DGOGK9WHKIEPABHDHKDKIB=GQHJINA?UHNRDIIEHKA?I:DNNTL@7OKEBBHEGZHGPLNCGF@BMGCMJD@JFNKM@DCL>CIFUHHIGXLIIB]IKCLR?KGJAIAHOOABCFLB@=GFFPBHG86GHNGJGBPKRQ?JCCOVLVGOD:SCHLB@JBCJGLCKHP=FCJK@JSB9LNABLQIENA[EH;BLJZIVBGIRKZFJNE=KBJEEnKKWEKFQMFLJQLGUFRCTFBYACVGTJKDECNOHPJFQHODORFJE5KJOL8B=DRCLBLJDFSPHCHHASKALFRKFRFQVOBHPUGHTGZKLSGSRGBGSMNMFFHRK@UKELNPIaT^ES?CILFJ7KKJKALMMLGBKLBUJKRJJKBCPPFENUVLFRKUINFEGMWPUOQSFNQFYNZMDMLKTMLMNIV@=MPIQMRJIQTNLRTKPPHASJIKDBOOORHNzIHEKLMONHORKOSTLP^UUNIKKIGK?6I|WRFLJJIIOU?HLXQQHPIUNIO[FCKNNLONRFJPMH@IQDPIGIXF>FJPIOJNLKNKQQ_SCHFRIFQEMJBAMI>A@LBGSPNDO;A=ARR=@NE@JfDRQLLKKKNVPTMH;JGNP>UM@URHA_RIJD@FYGSZBDKHJO:EO7NGJE;KTLFPKUXCE3GHFBDJILHTJGDSCVK@>TI?7IMDSFGINBSK;IDWLmMCROLINOEHM=ZAI:HJUTNLBCDV@OGDJJE>CMN8>II]LMKS]A@>MLGLCDCN?BWETKA2Y8CD4DI@JUHQHEL7KFHLFOFKOIOIGOKK2KJENPRHNGKPKWBMMKIGKMTFJOKFMRCRJGBEKMJKHI=IIGEIBDKGWOLKFLI@WCONQIOIHJLEIEPLGTIMFMKHKJMKXDFPH>KPKOQLHHEL@LSEHHFLJBQNOYNOSVCUGHOGIYDHIIIMPAI@FKLVGJWHJ?AJ=NMTPNMFLWCINABOESIDJCKGNCIQNCDHCOKOGEGDELFMCQQJFNPIIDRJIUCRGLMOQKOQNKTPQOGFOOLFTPNFEQSIGDFOBANHG_IMEDOKRHKEI?KRS?FREEEGBK@EITNVJGUDHPTAPJK?EGKC@CNDLJGLIGLLDHAHACACGDEMGNHLCJNBIPEET@K6FEGPMKEHMGFNCGIIFMKHLGHDXJ>GBMGUMECFRSKRMI9EHEIDFFMMD?LIXUPFHMQIIIPGAKEVOIHJJOFIMBPH?ALIBGYBKPG^MLBFDBFN@SY]GEAFADCHBHHSIJAADELP>E7@RNFGKOJIRFJOM:LFDCALNNAGN=MACC>OGUM=FMGK[;ODLJDXTL@HJCGFMKHNQGCHKOHJJHRIR[CDAHGHJGNRRPV>JGJJJMAKEMIPGLRJMVGLGLWHNHVGENFBQMCNO\CILDQUNMKHAdGIGRKLHGJGET@JLQJEBOELg_LQMEHGHRLLKGGJJTDV]KMNJJD@MRKNKQIAKZLEIOJEJFIFMOPEKGCJLCNJDUAOUHIHLGWLWNDOPMDMIEG@NRFK[GROFQKKEBKKEMDIALLJJNQSTGKQRM:LKFSNPRKKHNR:EIELTKN@DIGPLVDJFCEQNI:NTKBKLNDLNMHKFFJCOFIJRLDGNEHIQFVHBSEBVHMDOIGMHIDHIOGPIDNGKBIFZITNGHSKVHNQDMGCO^[HHGPMLNRQJ^EIROMEBKXKHGIJGLUPMMBVLNJZWUMYQGIFFQGOTRXILQUGMLHKSJHHHMKDILKQJFLDDPESBHVQKCNPDIDJRJIKPAJG@JKDNPRSKNOMQMPJFLERQFJDHFHKCOPQXGOQMEGLOTNJLRGBPNQLPILHCLJJHVKPBWMGLOMHNX@ODE]PRCNRMIWDDHKJMKGJLGTFL>UF[FJNNNLQ@LGTAOHIPZRKOIPFPEKUKP<_IFGDJMBD[AU^HEJCFSJMIMPPRMIPHGKIVENFM\E@JECEPMQRQVAFQRKGEGTDTMMLISKKG]UEOXHLKRPHGMWOQOLHKCLIYKFFMIHESBOeGGVFIRJMQIEJRVATRLdELTIOMCSHFKRJEPKRQVCOPLTRPDHGKSKE?@IIYLMCLKLPZICQSIHFFFHIKGHJIOLNHJJJXKFTRLMMG^KS@C^QNSUMEGDNQXLILNHGHLKMQ@GJMHNHG?L@KHLISRYF@H@BDDMPIBBICNMFTNINJRGOPIJRJMJGDNUPIVGMJKMNHKELCFJFFMBVMORFH[EDGSEHIHVPTPFLTVQHPRTPQPPBIULEOLGRTONJRQBGKV[RKNKSILGTNBCBAJIVKFOPPWKF]IJH>JJNJBMQLPPOLOHEEKLMFPIGFOQRPNMQNSLVSLGQRJMSSQMMHENIQVOTaPGQNQFOO[UNIKHIOOTOLMNXD>QTFKJCSYCLRCIJKPKWSMLEAPPPJVLRVOTGJOKQYIJHED?PNHULJMRVNJSRPORZNOLJIOLIHEGTIKNBIIHIOeLOCISPTCGKMHKLAOHIQAJP?TEIPQNPNLHFMQSPOAAPLHQLUMRKRPDGGJEHHYBGIPIUJLQGKHBEJV=DFHYJOGFIANKHPNHN:G?@^8MOLNFAB@B@HMFEM^KED=E=EAJDDIPDMM=NGPAD3FHRBIQJCJ\CAFBONIGMJHV\NJQ]KIODCRIEOM@DG?FWDBPFIOO?FL:WONAMCFPKHR?MJCIKEJJE5@COD@AF:JLD@IHIEL@BA;DLCJNDMGGACK;GMKQ\^PFU@LRACCQ=IMSEHNLJMML>DO[EEQVFGHPUKW;LPiL@ECLO[OSBB\>HJLKSDPLJICS@TLMDBIMHOHPJUEQVHJANVKHRFMRDOOFOGIPPBCCKUJJBMQMIJKEDG^GCMPVKIJBPAJDIQW@NHN_UDGLNQGUORQVHR?GLAIETAPKEBN@ZQLSKODRJ=LMNIECLURNJNKEN7GKCFKJFGMPTJTKFOCECKPSNAIVGMR??ETE@CFDJKJFAB[GGMAPAAG@OLXEOhGHAKGICP>JJVELNGNGNP9FJCMLBBADHEM?O;NW@U@R`?LHDG;N@EDFEKJF5HEGIJ8DIHE@AA>COJ\EXK8DFAPKQ:HBCJCDWQJALGORFBaNMPCPOI>E\G4ODJAJDDAI8BDK@AQB?TVMFE@<[HFAHBCBEC@QDAYGELLDADBFIBFKDXJLHNMPG3IPKBG6HDA=CEFYMYDH.EMLI@LFPLDJ9MD;N<@HLB>EYENBGiCG7@HITQLAJEORJJLK;?;MMHMGD=PXEEIM`>ANWI;UJHPGBBFUDHQAHI<9]PMDEJLUDOMRN=HMPORHA^RN>;JH[IDY=BBKFA=NJE@1AHGMHAkMMBFQIREMAEJRPR1JRHO=SBKNJCDIE=E?PNC9OMQVQPHJMASONRBGHWZG7WOQPMJV@IFGOKRGEEGCPR4GFFFGANFIGGCIQJIIHFBMAQKLMKPLGM>IFBDNPMEEMNJHCI[IFQNOQSPHFKZBGOMILSSDGAKQD@KLMLKQRCHPHHOPJJHKFIRVHHKCR=LJAECPNFPFDMSDHGKCCGCMMHGJTIJNMOERFIEOLB@FLLKIKDGNHR[CONGSHEN?BDHLMNDDHIEFHUIXGOKJMCFGIM?LQ@YQLBNLMJRRJQP?CDIFANGI@LHHHHP>=LJSAIJKH@OEHIJHLEAEGMEHERDHNM@EFI=@GJNMDHAPBBO@PB?JDGFIOD@=CRQGLIGJM?@EG>9:BIGFOIGIID?OHCHFGILNCQNIKFE8K>=EBF?DD_=FI@SQIECN@ATNGEH@I?KHAEDK7TL7D=KMOZKCBFIH7QMFJTCIL@EK6ED6IBPOKEAH:JE?LMJQMBMOSDNFL>C?MAENEIIFIIKKDIGPO5DMPDO?KEMIECI8FGJA5PEGHA@8BOEPKHIDPFGQLFEB9LHTEAIJKQ@FRAKHO>FIOJELAK?HRBK>USGODAXU=JMBPJJ@INPDDUKEGNC@PISMHLLDKGXHKIHQFOIENPCGIIHFJBIEFYLH=NK@AL@HTKLRN<:KKBCFPATMV@QCONDFFOCILKQL<:VMCHG=KCOFOKJQOHVL]HGPKKJRNCJNN>GJBJDBTGCWHRIUUDCHGDBM9RAQORDSJCCRJGANEIHRJH;EF@N;BOCJQHEKHPPOBAEFGLHARKFPOCGADDBTFHBTIE\CROFNCCOOXFQONDFVMEOGO;ZPGWHKIX=EIPJAH8G@SCSKBURYBQHNLIMKXUFWM_?IW8AGPIGRK@F>JOE;FWImM[MJ]8>=@8CGQcGLDBUICB?AKKJHJNEbL\LRN@JHRKY_<=;ZGLHSdEGWI7DGXBQ_WC:MLJAOR[9@9SKA@9>CL?YNJREBOICDGLSHDLDEKHNRJMNIJPKQLKFOFSLFNCPECHXUG?LEVJRHGCHVEKGSG[BLFBZEMDCBYHFJHKTKPDHHMVIHGE[UEMDUNJCMYNSNCBOMGHP>KFQKEMIER[OUJHMOFLVIFLGM?IMKNKGOOGPKQICEOMRKRPLEOKDQMGMBPZ@AHDMHR;MTKMGGEGNGHBNTgCLO`PLKPNFJFHSHJMRDMTJONBGJMMK@I@DUELBDLLKQXPHRP?HLFENXHBNDJMGRGGG]MBHFCDEBRLJQRNHH>OSCHGEHCGQQOODPPGJLJLGQHOBMTLBGIFJCUENIGSOFHJRAEEFCJOMHPHNELLNCRA@QSVGFKEHNFO;FGNJILIEDIHN>QJRDOMPGIFJ>DCLHITWOHPGRGEJKLTOPCKLBJKKCWJCNBPK_@PD>HHLG=HRILMGRHBBIHSBOJNEB@G?HCSVCIOHMVKYS@BMULPCLNKZHDHFCRT?@LLF>DOET@TPQEJVMMMPHKRMAE\LSXHIRIS?OHALBEMHSHOC>SEMFJDJGGJ:QINLJ>EAHQKKEPIUMGHKIHDPGRHRGJJDJJ@I?IPPVBMOH^AJCIARGHMAKIJCHQPDIJEGKNKIDROSBIECFILNQJ=FDCSEEML=GIETACGCNIGLFSGLGGPHFEREGVNIDFKKECADFEF:IQAU?OACGGRLHG=HDYSFJGDFD=IBAOPIELJXFGDZLLUGADAAG?E>JHGTCAIRZF]?IILHUHLGGSLYK^FFKLKPC]@D>MDBFMTJHRRIIGHLE?B9OL;FRJR>CHMG?OSG2MKTNJIEAFOPL9K7LTLZDSFFIVL>?=EMJAKBCDRTG\LJH;ASJGFBQVFKHTH=CLEBELFP<JREBPRANERJRHNFPGDH@FJNHHJG?IKJIUS[CBOFMDINQFFJGRMBERRJ3BLSOCKNEFTPJCHKGaNOLLQJGHBLIFCJKLCNRQG>JEIDUD?J;A?JDIMHKMGJMLHILD@BHLGLOHB?LLKSJQHGPKMTQENFHJMMCLFB?CVIGEBEHUNLFICHLEACRJFJIJOD=RAPNBEFJUKSDEQKNDMFDJNCRJM=COJDJJIGHK?AMBHMBPENDALPGPHGOIQMOC@PCODB?EDFCJAHTFIIRVMNJCL?EAIFHFEEIPCBQSMEEDQ?@FI\ED>GMVVFLK;Z@OOVUBAICSSBLCDDF@CNP?LKJCDE@AGFC9>GB@;D:RDEJFILBIHELKGOQLN@?JCIP8K8MNZM>KJLE@VCEIN5:DLHACAG?DBCIJQ=KFRW@BX>DKGECCAHDO\IP?AL:RFI9;JNFCFDLGAIBHBLMDAKD?A:@>HLEG?PFAQGVJE?MX;JLWRREH?YMGI4GDDTEEJCIFSFA>PLI[G>F9FN@P>PEEPJ8PGE>FGFGD9AGK?6FKH?H>;PHIKC;KF3B;BKBFJJSJAF5SOEBYSDFLSR@LICG;OESC?RFDLIA=NOBNGMKAFHK=D?AAHA5BDAGOKKLJUQJNJ6HCTL@@>]LE@FBLDGKAOJU>DR@FBDSKPIJLHEDDDBMF5CBGGLACO;GCC?H@KD9H=CQEEKFLWE@QLCKO/NLCIDJH8EI>HQFQ@KIGDJCFQAHPNXHVJDMHHVEOGNEHJSGEFVDMVIMMNOHL@BCODQBLMDIO@[GNIOL5JQSZIODJIKTLJ>`Q\OGHHSENLCGKQSKJA8I^AFAFLNKKNGILLMGJGAIKLM\EKEZKBI@SPN@GOGNeGCOJMDMMTNBFHNNKWKU?NLJEGOTOPAALHKJM@FMAIHHULPDNFHKGKIJNF[KFJFQJJDJKPZF]OP=DIEIJBQDHLHYOLERGOIFL@ERPC?RAIIOPCGAIDLMCFNNDMF@IHFLPLOJHGIJNLWEFOCGGHMDPLL=HODMFDLJDHODJJIIFF@SIJJKFFNEHGTJACJGESJGNGORUPOM>CJIDZTG_JRMELPKMVUKLN?JNGHNHKQWIGPKJIPFNHLDNIRDRMMCFGNFENFIHULGMJXJIaOLMLSOVFEPKIDU[C9LJNTFMNLRQHDJJIILJKPEIFFDJMOMHIXOKNMMMAUBWDKIEKPIDNKUIWFNBFHJ?JEPDSQKEPFGQEALHHCB@EIUNlKJIDHEDKDIDGIHKIJKISDB`MGBITCDBOKLVHIOJEOBOBILHLBANAWQM=DJEKVKAEIF^GBHLJCOCFINDNIFQ=QEJQKOMKPBHOIGLOLEOL>CREJOBINIENGDICfIVGTDDQJ?KLIPIIJL?MLCBIIFFBHFECHJMMEVVCHIGKQNWDZNFGCOJOFFPAPGReJRTOAGDONPTJWRRQLOADEQJCBKNJJKRNGALQ@_BHIOGGZ[GOTFQ=GEC>IFENHIHLLQIZIGTOFCJCUH]O@Y:RNKKIFAQ\JKCJ@IQMITEIQULLOJUBODBJPCYJP@NGI=HGKHNFRSAMPGGERID[EUWLTAMLF=TG;MMJNHNQHJI[;EMVQ=CNFHEL>JILDDLEG_QVTCDQDNNEPKFMFCEFVIXHJPL\N?YHG`LRIU[S=QNOBQN[HKEJRUQZWHCHPDPKTALYF>IOXH>TRHKJKALI?AOPPMOMJTBKJMDHQBWPJD?DHSJ]IOCFLJQGFNKTNNQBKADKDK@NGYLTGGIGC?OIECIGFANGBNMFNIHQMKSDHHGEGLG?LBHLHFH_CHETCQFDMEMFJJDGENMTGHECJTPSLQITGFHBBDUBK9TZKOPSENFLKMBQGFJKOTJLO[AJJFFFARIKD?GE8IDPJQJBJFSDEGHCFEYH@OGLEWO?IGAFHBU3O>HJFPBCPG[KDMHHBJFEIRQSIEUBJCFFGGDKFLNH>SE:KLRNHLBT>FFFOMKAQSGJ?=HOGBEGCFKJJQTKPC@EFOLPKJ?FFMIEMI\V`EHI=DAO?WFMOLFAHLGZCJQLARO;LJBEGPBCACGGSNI?JPLVDELFRAKHDJJEGKFQFMPPBPIAKEDEJLIFKFIRBKFE>GIRVIMG?XEHAB@KKCB;PBFJ;SAROGGIKMOQZLUUKG@Ia=E=LH>WZELHNJ?LSG?^IJLGJWKIKDGGGSKMIMD9CJBPCCNHJQFcWALIVQYQDBDE;JCFEDGERRFQFRSCMNNKBNJKDCe=JQEHeNNFYD^M^B=CJIOFFHGECJFULLCGCiOCNIQAGLCNJMFJVQMNSIGMGHF?NOTWNFBG?FVAP=UIHKB\GGLMYDN@WHCWIO?JJNNNJI_V=GJRPD\AB;PJVOO@JQAMUQAIKIMDH?OFPOE?KIHNXOLDHWEFFA=DAFL>NMFEFO?KB[EJKLQYHKBKWUQS?EFOQCJGFH?RFGEGMF>CM_GRRAGOOLBHRGCKBVHBIA@HGIYCBFBJFKLEIIFLJCGA?T?ICCHDLNEDFOKFHNTHOCGNNKDHJ:KFZRJNBGGOQEHKLFDKDLPJOSOJQFGNG`@PRGGPMCHLDHFMHHHHGWMRFHJCHAGLBHAJKNO@HEMJNRHBOLOPFMDAI@SNOKCHBOSHMGTFEAIAMPHIHJ?NKCDJTHJ]CJMPTLPETHHAg[HKGINLEFLOHI=JOMOBcL?H=JEEKKFGKC9VQIEUASDJJEFCIHDOICQVIDERHFEPFGEARFKM>LIIPWMEHDBSJ@IGLLMIDE^AHJI@ICQH@OIHHKJJBVBIHAECFEH8HNNTN>UMOM>PP=EEUFMMGDUA@FEJSNQTBDCI:GLIGFBKJFPBHJHPFHEC^jRE]AIJJGQFCNCFFMJDPMNIHJRNIJ@AOIK=KLF>JIJOCGLNNUNGJPFC?MLVFB;MLCJVNKPMBDEJIGIMP:ETOGGHGBJMABILCQCHME=BBILAOPEKJOBEHK=KINVICJG>@GHHUAQTHMDBEBIILIHHGNNG=JEOUCLMIJMJMHCLRKKB?I?@MJODENOERJKGJFA?GHMGNMGU@GHGJHIFDUONMGHHGK@BDPJEMJFNHKUCLJGIDAIGOL@GAIMILGFIAGDAEAGKH;FALJBHGCHIML;K>HIGHMGM=CMKINFESQRLINMIPFMIKFNL?HJ\DTDBQMHIK?HNIQGHITFFEJKJFMG@CKCHFFDCMLHNCHLFGCEOQRELHALHKOIFMJORMKHEFPJFUFIJDNJLCHPUEAEKKHCKHGLFNHPKDNCFEKKRFBKEHFFPHKICOLFP@KTPPFDSKPQLJM@HDOILLPPHNMAULIGFRMEGLBGJCL@IHHGOLHJKHGMJDLF@BFPIE@PBJJKH@FIHOJEKLJJNKFMEHFFINIIMACMHSNHBIKDIRRGPINIKJ?FIJCILNNGJWFEFTIEKMFDMJFOEFNLIFGGJQFISLHDLFO]EL@RLLIQIXDPQLQ=NPJKGMIRKDDD>>LIGDYNFUMKBJZKDVWCHLJMSL?N@INJJCLGFIOJ=OEMIFHTIGD?PDMGHFLZFRNUDPI=KJJEXGK@ATHHNE@HFGTHKPMOGSPOOHZCNLQEG9BPbOSLKU@@ZI\IUMAC@ONHC@KAOD@WLOEOG?DNAEE>TGTTCPEQBFDISHFFMGRGJ[EFEUQLJBDTISHDGPIRGPRMIFSGZJIGJFGGRIPREHJZJFNDEWLIFFMQM_NLKLPFHOMGICOJMSQUTEJIVKGJNGPLYRENLLFP\EXgQ]RS?CFTFQCLLLCPJYB[LI?GI^MIHAETBHIIPLDFLLFVEMGJOJDHLF]JLEFVHWILQJeRLLWMGGREFDPLLDFOGKMGNIDKHIIFAJI_THNOPILKMJDQXGIPMJSFILMJWPDGJJGRLHGOFMJDGLTGEK[QHE?KT?LS9UcJPGQLIiQJLFPHZPAHJEFGFCWVVYOCYDKB>SNMB@EJTKVZHNSINC@JGaHMAVVMJMJCFFD@LLLLKDJW=QQGWI?DLZJJENOSFMGJRAGIMKKEKGKBOKSYXSZOHIVSLTTBZPGKB=CCD;FZOZLH[JJLSMHJLUDaPRKI`@PO@GLLROGIFNX@NQGU^NC>IHTMHTLMDFMNSUS_A?MUAGTC;EDVHK@JFRLMEKJKJOBMJQKOBNNGRKGEMFAJGLCCJMNDDHJ]TIDBPAHAJIA?:AEKIXKORDJCGB=RIGFAN?JNWACS?KPG?IDEFKMHNE;CDMECGMPLPGJCMOFEIMCIIJPBBADKBW9JEMSUCIAMN>IWCLGOKH@ZF=QUPW@NBBIGDGRJ?=C9AFHI>GIIQ;KBDLAKGNOBPF[C?LBCJITFNONBN:TBJHJEPOGHB;IO6IGDD@GKMBMKMIBQBTNCMPS@KDH=A;RL;JIFCH>PKDHL@ODOI>MHKAKBYOLOJG<=MCQ_SBFJMKI>NJBF[FK[IBL=NJB=PEEIHMHEIMJTEEBOERMAOCHHOPHLAVGJME?EIJIECIGQEN?TEHQXELLEOMSNKBPEETFIQ?HAOIRJO@ONOZDG@TJFJALXHGNQONJ^A?E@GAECFIOL>DIMKL?XCKCChLJFKCJCNFWGJHLHTDHJEFKMKMLDBPDKJHROODOBKAJXCRLEGTGMMHEMHIPISFBCFOGOFVIMSBFKMDCWLGOMMI[DEP\KEKKMRGONNFOKEHNL@MIWPGJDPNDKKFIHMJKNLLIPKDHK[HMNC@DFOTMRFJIPJSMIHLLOLINBFIMJLOJIOK@OEIGCNIMSMGFJKKIFKMDRNJFJKJNGIKITQHGLDGHNRQHOMJEEACMGJHKKJHKGISILMDPJOIBULEJFKLQABXISHK@HFKONGRNEJbRMBMMLJOLJGGYGJNLIFBMFHRJGFEEHLHNGCJFLQHFF[UFMJBOFLKMDEJMNFRMOFQPKNNEFIHCMKCHGNMJCLJGNRKKULRTPCQDQLMGNQMHNGCFOFJLLCKHJWDKHIKNIMJMJRPIBOEHIBVJBKJIMOLKLL?CKFIDFAEULMFGNJ>HEPPGKI@EFCZGC@TLBIQCJLQQJBQEFGWHOSMTNHA@QMSKV>JIDLGJFFLOPEHGJHCFHFEKJFHHDCGIWCNFIRCLGBMJJCMKAOMUFNU?GMKDHF@HF>>MEODIKJPOS;JWBB?DTTGFMHIBIDICDUIDENA;LHHEH=MKGMCQNOLI=QAGWTG=URFOD]ILBFDJDJILGECKJHJJHDAOBWLJDHYBKCRFLMCKHM5DIZGGEAID>BPFOFHDHXFEBITAGMEHHLHBJPFBVHX@KLHLHYD@BEGCGF>PIGJCGL\\EMDHBRMPNS@XCWFKPL;OIDMNEC?DBLMHK_?EC@DBONBJCEMGEFMGKMF^LL;QBGJJH;RSWLGJGNB>OWBCKFRQERL@DLFBAIGNGLOI:GEFAF3DA@JOTB@=DKNJJIG>ACK[NMRDOGG@??HLD9VDMHRBEDD>I?FIGC@NBHeMKBCRAFPTBBKBBLJCJ7FEDHFMQRG=JE>MAFQHOQBLGRBNQP>CLA_FJOBI>GDBmWP7JICBMMDAEFH@LKCCJQF@HUEOR@IOKN6DMBKKF@KMBAIEILGEMANJKQQOK@HCI>H:IUHJEHHGK@QCK@APMRGATUMDOFEBCHEPLERDCILQH@IEEFAdGM>TCJDH@BBFR4FZ@=RMKGEFAFMOELSFGPPd=ILOAINW>BUGESBG`B>BAbQGAIFIJLJHBcmMEGOMAMFHCRPbALBNAG=PBC]L:VHT:K?O?EUABHJQEFCCeAJFCSALPKD@TUEEJAFAHA@EFJGJV]?KVLD>FFOFGEBCYFI@GVEHIFN?DP>eGF>ME>LQBJJG9HPFNCMBJQAHCJKG>DJ?F>FQJHCH?GPEH\FPA@MCRJ1HBAGIKKARF>?E[FDHBKOQEJFRIJRIZFMFWFMSBOREMCeOGEAKHGDUE>C5>AGNHKBRIQBNPaDIRLMNLZTEFQE?ENGEBAHIIOO=EAIBGOE@EKS@KDFIJHQHKOIN@GHJVRISBGJJL`CPGEQBBYHBC=BQBNSMOZKKUEGKBIHIRD?MUCCJRNBPMLME=AOH@KG=E?DJ[IDEJBFJCJHME=XQKLEDELWHYJDM?\RMK@DDEGPEVL?IRE@ECHKAIMP=NKLKJ]LWI@?IDGEEQF\GWL=CDPPDMIZ=GKG=EADKG@LRKZLGWJGKEFML@BJ;JJPSLA?Dg?M=?;HLH>FFLVGJFJF>9f:=KKBGQGNEJ^DARECFBEJ>HQE=E@JIJHLE5CG?@?JNAJHQIKFI@G=VBGJ9GF?LHM@=BDJIBIULJNJKI;RF?OMFBMCDDSCSHOA@FKEJKHBO?LG=MC?MELRJJCMJHTWKJJKHFFURQKMKNHHHGO@=FP:GO?NENBACAKSFPDNMEIGHHS;OXVSJI>LFOKJLKEHIHJLIHFPHUMPHNFILJFJQKLQJHRGVMRHMNNTIGCJGAQDGNQ=JLW@DINGOGLHPNKKFKNLLHKAHJKHFFEPF9IEFHIHINBJGGJGUN?MFUKIHLKODFDIFOIGNMKLBJTMNAGQQ?QJHEOEGIB?OEQXIKKG?MMHDGIHLFFTEIGOILQKJOMLGMZHNOHFIJJMDKIDBMGD[BHDPADRLMOJMHGDPMCMFDOLDQIMMHFKKLMRJHGNDLDKCGQJITJFOLHG>IGMAH?KLOFDCKQAH;MGNNIGPFGHKT@JGHGHNEHCGFPMEFMLKBTQG@@IMDHE@HGIGFNOFDQEGDDDFAJCNCOJMMQDAAPMLEBUJHKAO;HTDIMN=GFIDHNI;BDE`KAMGDJANGQE>KM>;?I@IBC@8EELCNIDMBIEF78IGJFMEGIOQIBGNHIMGJEGJJPAHG?E@LDDLF9GDITLCCJQVCDGIJ>IGKBPD?LFQZCGNHHCMJBUKHGCBGNECDQCBJGXESULLTG=M@GADHGOKINOHHUGh>OQHGFGRhLSBNF>LB@ORLRFJEMCJ:RLLRHI>EORDLHEFKIBBGEPMKVTQLDMEDVELFJMCKLFUDTHCNQTEODIMEDTAFIDGLCRDNHDBUJHOJNFFJMGLOLDU?SHEFIKNIEDJGKIOFBFYDIN>QNPK>GL>KCQNLBPFBIEOHJGAGFQTADFJOBDKHdGSFbBGV?DaJLGJBBDYJJD=UIIIIJD>Q>JK>TELDHEWBYGEGRVJZKL?IINHZ>DGBRJFUHMBMHISOFIDAMKGLZKU@NBIEOGERRCSKDNH>ERM>TIBBPPCDDAMG@=?\IML7@@7PKHOFFEDIFEIAUEF=IYEQBBGE>E?GECHQD=@ALHRWSMIBCFHGFIACGF?LKUNCL@BNDPKDMELLEJPFTILK?THE7DLGBN?M>FHEMHRGTFUKJDDOENKCHCK@LBLHIJFMUBQFMIOUPIGELS@CKGA@ECJBHI@KELIRQILOQTOMIMIJG=JAHJMJJI?OWHOEPFIHGCF@CN@AIGESGHDSEJHRLL^H=CDTFIOHPAFJMM?HIMJBCNGUEMGDLIFKMJFFOPZNKC@EHLC=MKPJGNHKFIJDEFPLMNJBJLKNTGGK>HILN>VHJIFIBGOLJ=HGLIE;8GPNLJG?DJGPDKTEIJFJLNMOIHJHUJFEMHIGNQLPGHNLNGGDBVBP@Q8KFJC@KUGFTEKJOA?TLJLX?D@OBJJHIINOHNG[IAC@NKEEECIJBDJFDAOG=OGHC;D?QD@IDNKBWNGKNGKVBHNKAJNOC?NSR@L=OULMGMIFPMOBM?JNMJ=:AHJJPNGIEIULMJJG;AOYANKRNHSGUFGPPILCYC@GHAKHKEMKFXQNEBFJIBIGRCH;MFCJPKMTQGY=LEEIHUMQDD;ETHE>LXJHZJDDUOHIHKKJGDBE?FLEXJFIGEGQKPNKPP@DPJKLLPLNGFKNCFZLPIHGHOLERNILHKJ]GKPEMONIQKMBFSGDCOKQLCGF_JBJCOJMELHEIEEKGJEONDGECGNNJ>FCIEFHSGCCBIMFNEQGMIELSFHHAG[PBKDKCHEKADJH:DSAKLJJCG@GOKENKNKGFJJMOSNDTMFMSNNDJJHDJQHHHDN@LHKSEFJFNQGMHDBGHKPDGFGKH?LQKDD?GLOLIGHSJPGBMHJCKBKDI@L>JIHLCGOWKGFQDGMNAFCEN@ENGBIQFIHQRENHEBNNNEIMLBBFNHENIFCHBWLLHOFBVFNMEIAUJD:OJKAGGDLRHFKDNKLGNBCEECNFHDJGFFJDOSOEJJAPJOOJSSQDVTGIKNOLHCOKENCGEBLHMFDLIETIEHKLIDHEHDLGIJDIRN=LFJJLMFNIJ=LDEPFQCIBHHK@CDKKJLNIKKMHJFMDNMDFHRKBIMFHFEFCHMINHJBKOMFDJMLNBQJGHKMIOJTEEHJGRKIMJMKCAKLHAJ[FPQMJFYQGKRAENMNJHHMGLDEILEJJDKCMGFDCO@AIFIAINJKFPIMFAFMIJHBEMINSHHTOBAQJIBFHPKTLDVJRMFHKFGMDOLLKNGLQOFJEQLPKRKEACONQJFKFWFOFFOOIIVNOIMHGRPGBKHLTDDIG>DLd0_VEYLFCFRFBBBPaGPNKHDSBG@CFJNH;CNMOUAPEAR>K@IIIMNIFD^I?EJQHJJTOG?PMIAM@FCE[PMRH;LLFOBGHPCAALCK?RLWXDFCJEePCWJ9I@GKVQ]FQM\EJJMGILT:NGHCORRHSFFNOFFN;QHAG@A;LFH@IDLRJLEM=FAMDPAYJGM=<>YFG;TNJ>JCGMKGGFEMHLNIQOK[JJEXUM>LKDGDSIJEFOV;MFIJDYODEZKS:HADMGIMKLLK@HDFS?PHIRJR@6HaKLCQOD@=HKCOF9TMEKGEJKJE=MJZJ_IJATLHR?DIMPOdMMVDEFRGPGBC=K`G?AMIE@YKQOK:NH===;eQG[OL\I`KLGOJCQX8S8X>=?LOLIEBACECL@[I@TNDFMLOT=OCIQFHOENEFEJDJCB@=UFB@TEFHLPLLBUKC>NDQKSIIHECFQLHGIQJAMLQMMDIOPCWHSMP?N?SCFGFHMRSBJJMOURBB@TFD?HKUK5HOAWGIOJLJ?KCLKYDPGARHKGIABJJLADJAFJCLCAILVBRQ;1]QJSF>IC:QDDAMHE9SR?\HEEAALLO9BPMRMGQUFLMMXFDG?NMJQLSZCDBIHBEA?VLQDKKKLJCGHHP@KGPELHGG>CGEFXKOBKFDINEIKFJIDIFCILGQQHGDOAQFX:CGDOJDAJCDHEQQCLL:FJQRHMMHL]GEGTNKELHFPQGMWENJGHDLILTBZGQFKQEPDINOHMRKBIMHILQO[LROLGPIAKLDLKEJLJNHBTILQLNHSLJBHQLHEANRHLLEIHH=LJGHCOPLMUFQNJPBORJFENAHGHM`FN@NMHEEQKIJKEMJ9NXHOA?CSULKQF@JSIMLDKOQIKOMMCJNFYOBOABRONEELAIMGQDHV@KBRONH@MDJNMPH@PKOJTHKDIIJNPXTOQTQKPXJHEOQKRMIMPQ@EJIJBSCMEJRK@DLEEPDWEDILQMHC\JLJHPKYDOQGETIQ8UOLNRZQQJJGNJLEMCOJGODFPVSHHJEFIJHFBPMLg[KSKHMIWPLTGMIPQOIKMDA>DOO?LLLDHJGKNKILCOLQ@VBFHGIKTNLKNID@IPQLJQLEDF]HPPXRDTLNBMBNPIBGGF>DNPOBHOPDRGNCI@MBADSKFQRNBIMCCGBHHFLERHEGFNARG@KJEJ@HHBPJ?[Q@KMLNGKDIHFFGLE>CAG?IBLCOGCAEAENDOBTJ>TIDH=JA@CQIJBT:HA@OE@HJO@L?O;NBM>AKDRGBI@NDEJI@KEIGC[IGjUHE@CEI?QB?EF]FJRDGClAJKHCKM]BXTQG?Ic?E@CWGHJ;FZGHFDLo@REUU\EIN?AE[EMsZ7AHCBEOWPP=QGNPV<;HMIFFMJMUEDBS;SQH>UIOX@WJUASOMNABBEFGHGIOFACBNEUBPCGIGKKIRMHEJODHJVJJPE_=VGUGHPCGTCK;JINFKEPEDDDNIDFQGZELSGQH=MKCABUSPDBIJXMGMHQKLMWKHNPC9MHEINKALFELCGGMMFNI=BN@OB;IGCHFAGEYB?TAFQGPBPGHAKIPJJUOEEJ=GNJTBEDO@QNAVNFJKKBMPDKEEQPEQJPKCLSWBTMAANDEYKTJAMPKGJAEECKN]OKKENGGPCKMISNIUFFGJQLGXLBSMQKLJVEHCPIIIOIJECACAGgMFVG>AGHLGHAJUPELGIAEXCGUDLKOBES>QZBJEQPMIKFKREMJOOJLNBHKCLJKJAHCLGHQLINDMXILLDEECHMNFRKQEKIKZGJQN@LNILUHJLNHNBSODJ@GMFERLU=DGLNERG9GFHJHCMSQIIPBDSMONGCWDSKLBIALKH@JGKMSDNRKJJORHGONJDBNIMELPITFBVDE=IFE=LIFCCNBDIGHJG@QE;PECRMHDENEIIJLHEJA>AEILHA;J@IDDNMHDOL?GLKEJJF@FZD?CGYDMTJ@I?FJDBWNNWKHOEQJHADKHFVMPAMJDCRHKFGGLABHFGMG9ICGKOG:RONE?LKD?DB4@ICNOJSR[SGHRCJNISDDQE??H:QI9?AOIDXOMCJD7S@EILDCH=CMQ?KNFREQNFMDLJQBCHMEG8DGJBFBBFRMLPMDGDRG@=BF?JQNDTCIGK?AEGDGJMMFCBYABDEJIE@EFQKJDZLTIJDKVKICK=ZEIJHILXVIGFGEJMMKI@DHELJNECIIBVEGiQHANAEE?I=IPBTGKEEMJMGHHJCEBINDGCLAAGGMAKHG=GGKXAMN?GNM@QIRHLGTGGICGWJP=J=LCCWCH@NINCJIFIF>[IGIGGPLNLRGE>QT=DBIKJASACUHBGMFD@FH@CJQBIHIHGQGFLRHMNJGHIELPREQQFQKEEGBNNMDSCHPLUCOMPF@FHLRO@FBEOUHLODMKE\HTLKAIRKLOUIOKRIAUF=OOHNIOD@IVUEFKLCM=E@EHEJKDOFKE@H@AGESQDBBBEIILOHKQHJHBCEBGGFLFFHCQEI@FNFG?RJMO?AKKNKIMHLCJEHCSHI@FBGILJDKLNK?LHDINPI?H?LIHKKFCENGACKVGJJLUFMP>GDGBMIIHBDMFGTCOHMWLFLOJSFDNMJKGHMKOIJJJBHHHNHJKEFDJE8GHFOFHV^DIPOJ=IQC@DKEIHRNMRIMB?AAMAE@ANHL?:DQGINJHECHCHFQKP>HCDlFNFRIEVPD<>GJH=EOPKDECDP=GQDKFGYQDYAGNFQCRESKIFGLAHHTDSBUHKMHGIQGB=RhQH@9DAEBDDJFVD@LCEMBSD<7>GZIND?BQ<>HGCHE7@T?DDHGKEHGgEF>DEEJRC>B@HD@I:BBF7M@KB;@MY>ONS>MAAHH8JIEBE=EE=:HF`ZLBHHWK;J?UFCG4c6DPWJ?P=NDCEJHBIHPFJIIFD>HDFUADDVIAB??XO?GOHSENALQ@?FUMHHCMQ?HCDFFMIKLPB[C?ETEHHG?N8JJFHE:ZALHAL=BTG@TQBBBWELGPDGDHKPGLNDHDNYCHIYNHNIKPFGKOFKUNUPRFWGHDNODFMNGIMHHCARKOLKFDYUPBJDIHV:IMNMEQNSLHJM:LGRJ>BQNILKELLJGAJ?CLHHIJ?FJJKJNONKPYHJAJGA@CEMFDFJGLIJ?TFRJFAJGHKNQLHFCMK=ILCZGGGHDBDESPGVRNJLIDOMUNALKLBELGFSPFDMDWIADCGIID@>JAP=FBEDEEJ>LLVIGMFGNFMGLJEIENGADKDRCSCLPKLAKNEBSTFID;PKIJHMNG;LHOTKGF@N>FJKOKDQLAC@E>VXALDMDEFDLDFGIFCJDBBDGKPDKMEAIQMJTMMMINUZQDCKUGEETIWFPH=DLMIMMLHHKGNFHIM@FLIGBRKBRJABLDEOEVMLIDCSIHGNECLKEFS@?KLNLHCKJ@LDEILK>OKGBDBJIIFNMLVJHJLEHJFGNH>MGNRGDKSOKQXZ@BOIQDETRMHGIJGGQS?MHJAGEMQNENJKJMDFNRNAHHIAKJUFNASSJMPJIMON@GGHGJGKJJHNQLKEIIKJGKAOHEGFPNAASMKFFVGOKHABIOFRKNKGIKELDDHCJRHLNENELMRNIDGIOOGMIRJGFGHDDIINHLNDAINNOEDEBLLYEKIHNLBIFOCJJSMMLOIMNGHBDEACESGKJQJHJHRDDMCOHFJPFNIEBCJHHGHNLJIGOCGWKDJJMEWKFFTFHJBLLMLWD?INLMFPQJGLLHC?OBHODALAA>NTNHAFMJMNFHOLLFHGGESJQEDNNPOPDNNBISLDaHHMHRKKGFSHMS>DOSIIFOGEKHMZLCJMNKJFMGNQGJJJCNEJLHCJRCIDbHRHXSHDNIRKNRBPJHFLMLLBMLIEF@DVLPFMEHDLJMGRCNHAPFPGIHOLLD>JFLZCHLQJNTEKFJKC>DO[GVXGHPJDWJQL\OJMMKDDQJLRE=GISLSGL?=LLNSAQIPGPISOHIHQNFFG[KAVPMFEGKGPOGLQHHAMKGHEGJEHCOBNEDCBPc>DSJLPf@EJD@KDTCIG>MJRHMCFKH@GZOMMA?BSHDB>FQFKTMTHFCHJNEFCLSCKSLMMGEFGEACTN;I;IJLJEGN^JNEQECOHPFBSA=NGFCMD:PJ@GNDBCFJIKIKEUR>FHF=LDFN?DG9MGHSMILKKKNOEKEFH:NIUBQFLG;9?HQDROE>;FCHEGK@KOHJMLIGFGHCMB=?MCEBMBRDRE?B@CFPNI?QQNATEUJM?JDFNK?AKSF[TGDEFJJBBM?NIaHEIOBUMFQ?IOYLV@8FIBFPAEXQKATCEHHBEHOEBO<@J?ENNBMHLNHGBLNLJENLFEBBIOGKLLGLIIN>NNIS>MOHRJNCJXBKFSLKJKCGRA?D:SIPMEJLBCY?KA?CGBJ;WI`DWEMKLFFIL:LKGHDWQEL<@A8AMI>BEEGZVKRDDJMNN`S;BORHRCFTSO@EI@CEPGCE9LKX]DO@FG>KDJQELNMHSQAL;DJ`EC?T;BKDCBOF>NFLQBLMPDKJAMJOIOCMTHAWDHEIAWBODEPNFNIJFELBKLJCNCKNUB?BHLUGKHCHMMHPIQ?IO?IIV@DMOEOMHJMKIHLGIDTHAEGIKRDCGLAIHP@HMODD@CMDJJVHGAKGNDKASQNFFHJ9BEGI@LAAFIBPOADIECIKFF>PEG>MNGVIOBKT@GFHKLR?ODjJI]>I?@HKJFFFDBBIH?BHM=JBIB@KIGDOGNMXEFC;_JFCFELJHNFCDJ?NFBJ@FFLHGHMDR@KTLJM@GIMQCHTLNPTEHIXBFJGGLCLBVD@H]CALDMILHJC@CEFIBYP\AGPMMCJSEPWIKGLGPJG\DBLGFBV@KUA?G@VQWKDDEGQO@CWBMAQLRHKJIJIQ=VEVYUMBDJGEAHUJBBLBQGEUAFCGALHNRBHMGI>GPEKFRTEHLF@MkIOJEPPPY@CC>VOJMIDHDFMBL@EPMIEDCPJBLHDD_JUBLDOKDBJRWHTCKLUCDHIOD=IGQUPC>DDLK?J>MH@FF@KMGICHLDNQNSDPRfCFEE;COTI=GIIGJ=MFGDEJDRJLFUNFQMRDFBOMMFHABOJCPCKMEMFFJHDJBGLDNFAMMFJJNFLKCJGDG6NRM@OBUDQKIPBJHHMED@KILFMLMCGAKHMKFHDQIDGNKGQN?K?GKMLE>JQ7JEGATHFCGJGNHNSFONPHA:DHGJRGJEEUENLDFBNLJG@MBHECQDFMJKMDIYJMLXW=PFEEMRTC^QDCIGMDBHIPHFIC?OG=MG;GIPHH@OHHRHHAFEHAACFGQKBDRNJCNDIINTMBHP=TIACEGTGHGLBQ@KICOOEBJFKQGFTPGLMLBCIKUIGLEGD?>>GBOBKSDJQFSFTLK=ADIaSDBAHEIC>QGFTJGMIQ=CSILMJFEcMESGIITMQFEEANUKJNKPFKKLEEFNE=MKHNDIE>NLVON>RMIMOEOJGOEU=KPPOJGKIKKGLKFYLGEL?LFJAIJJNEAECFP>KFHGXJDJICC@LOAJMIMFAIIUFEOLHEMGKMCGGHEFLLHPMGOEDADKFQBOGOHKO@ODLLJKPBTATDOPDJIQJHIIMBEDN\@RPLGDLDIMUKGGKGHLHCBTFKLFMCHCCFCDHDIGKDIEIFFJFIJPMFKGBHEKONQIHLNQKKI>HCGCKGIHFHB?PI^NMFKHDGKLENWMLGJMEAYEODLUMKJACIHQEYOAWOAOCGKNHQGEFGFSCOLGOMHNDEM>IPOFGGANVJFIIDHDTCNF;MKKNNNFJEOJLKTOSDLNJGRKJKIGKHMFGGQECMDYCFTLHLFBMJSIKAOK=LEFTHUDHNMIJJGPGLJMG>MIGXRDCBGLFSLLKNHDEMSGDHLPMJLFKCGBM@Y?HIFIHU;ELPIADBGPPIGQ@G^EUJDTMJJHXK@MLLD@JTLLDQNJ?BHE@AGPONLZHIPIDVP=JUQVDEVCJKGEHJENBJLI[AHFQ;NBMNKDLOPLCIGMFGVNJKHNFALHPNHLHJSE:F[EDFDNJLTRKEJVRJ;XGIKFKANDH@GNE?5IFKGJEOFZEGELNS?CBLKKHFMQEOGHGHCHEL:LXI?O=N]KJENC>WLO@AD?AGKHDHU=HGFIIW>CKDOJ@6GPCHFKNIITL?DGBJHE>8HEJI?RJNHFCGSCGCDDHDJLEEE@ECFFFPBJ=DMJ^IGG8IDSCAJEIG<5LFBBAAAREGIF9LBKOJ9N?PIA:5AUJ=G5MEC@FKHCG;AEIM>EG5I;=FMJCKGIACJHII:CENLBBHHGCAG8DLTCMEFEEKMNI^GGRDRM@V>?J@9G@E7ZIRKDNPDGGCBQ:DDHM-IXJT>A<4LTFJ=>HGL=>@?JN?HDBFAHKJR;FHNMUKCH=HCBQDGDBAITE_MF9BBHJJACNGKLJ@@QHAOL@C@BBBHBJMPJG>PJJQE=VLMPFK=OD=CNMCJI=PLFFIH;E^KOED@BCK?TCGD>KJHKJCK?BPDTOHC:H@AAEV?IBHDMF6]GIBIHC9JTJ4PFIKHLK;E@IDJ>>HDLOCC?CNKG8VMHC8HVVCPGUGLIFAMKK>EG]IBDHKBSENHLDDCEBGBJB@?GGNN=;MME?Z_BGXBH;CDHEIDICMCHH@FNIJBJNQEEE_EGPLEEFPKGBSH=bINF?LGHJLKQMPBDMDIIV?KMQFSAINHMQ=K>IKR@GH?QNLRXO>SEFHMFDEONIQKHGHMNJCBCQBFOIFCEEOHMMJOBLEOUDCLAKJAAHHNPUGFEHHJUNATJDALEBDJEBKCGE@JLDDIHINEJHQEFILOPEM@KEGFNBNIERLBJAQJIHFEFBNWJDUJGTMNHCBHHDSMPHMGMKAOMHHCFEHPIFFGFNVKPFCDPOFFFJETAHFMD@TGKMGDJKBEII?DRRHCMHKGMDCAMFMDDKKLJHFDMEMFEDDMLEQFFDGDMCLJOPN@HDDJXHRL=KJMF[JWOICIHQPRB?KFJFBJEHEKKNQTFPJNYMFBGMGMGPHMZMCEHHHR@9bUJMIJIEFEIMJIBHGJKKDCHQQKAMDIHNBKPIHD@EEIL@?MBBFJHKM@REGFJNOPFKVGIJQGAPEFJILSG@MHBMELFIKOECFMNFGFEHOL@RJSGL?FLHLHODFQHONPIKTSBDGRIDIS@EJJKJRFBD@DFTNNLLERJ@JP<]HM>KLQAENKTFRAFCMOGBVGDGUGFHBFLQIMK@RNLMRKECKHJ@WCKQLIHLHTY=GAGK@LHKNJFFDN?OQ>DJ>KMGTT>CRFDOKKQNHQHEBYEEPTLDIEGIJLFFFMSHJITOMCJJHG@D>DUMGIJJPHMUROE=BBOAH?OVJSFOL[>LPHHFEBPEDHGAHIHO>FANMMJIMETLQLDKLOFIIOOEOCFFFFEEIOIHHJMNJFGQIWLNLFCCGIRED=MGB@HDFKKRCDF>SIJDQJLPFDEDLJGFGQKKD?HG;MPPBOFBMKJ>IKIKL;GLKIQI@IHDEFLRE?AFFBNNKIHDF??HKGDQJGHGDHIEIK?MFLQFCINHKNSLFCGHLISNGGKDKHFKGRPMIOKML\ROJGGHFETWHLNMGFCIJPHRIHGIHPPEGIO:PHGIMESEJKGKH@QDNF=GFLERCFS>NKNDMLNQCGDOIRMELHFD2DF;PQFGJIOEOMMFPKDIBP?FFEQWNFYJ@HJJEDIHNLC^J?EKMIIFROCKHOG>IKFE>MHECKEMLIKDOOBCGIQRFBEWGGGFTB?TM>ENFDJF?ORCEO;UAK?GGDCHIMDUGKHKQBGGQBJJPAJIJNKOFOOSRKJEGDJLLILHJGGI[EHFEQPGLCIIBOJN_FBTMLMTHNR:>HFMW=H?NIIJETPIM5CDHIFBTJAJMOUSKEFP?HJEEDGVQBXK@QOFJICIMVNIGGAVR[LS?HGQJFQRNQF>JPSLVG8EJKJPFCQHGY@CEKFQLD@KXJAIEDZCJU?H@?IBERLNFEDIJFPKQG=BBKGM>FRCQ9H?F?OEFKIGLCINCENUKIBBHENJ?@EDS>N=FOF[FEjICE8QDM?8FDI?IMW@KOXHARIHLFGPKEIAJJDEJNELLTREJFKPHC?GEHHPFM_PCI?XIDJ@@>?VJGPCHKHQTOCCCCCHL@RGPEIQLHPBEHIK=FDJDACCHGCAFGQPTCWJFECMWGGTNPCBJGBKJPBPAKHU@B:JJIFIKIDTFSFCCEOOKSVI>DFPGSLQPMGJDHCHLFEQWCAROHFSDPQONFEKOLDHPEENFJPIJ>RSKILAKDKR[RJNDJOMBF\NGEGCFKKZSHLKNKKE=GHHLRMGEDJMJKDJEbQDB:LHEMONHRST:EO8J?HDED=IJD>D?SGJNEOJ?YZIUCQKCGU@IC[>AURIHAFLGJKHNJ=DI?BF?PRH?MFJSEDNHVFOMKCMNNLXUPFG?BA;UHPGRQDKEGNSUJKOGEZPMECFIHBDILHGDD=LEFPCIKNFOHGGLFFJBLGEINLMIKLGDELSBDMIKNKQANHGE@HINKFESEAGIKZBDIAELGLJOE>IST@LKRJCPKKCBHIDPRMQHEPCFLJIEKKOILKI@OPKFMAHIEGNEKIBQ@OFGQPZ:J@HILZCKDKHKSAREJHJIF\IMLLDAFGJXFPFAP?GHE>ILPLIHTQAFKM?HP=CELJSFIOF@JEE@GFWJIEK\PRMIMSETBUCLIOIQ>;WK>RDQMGLL@IXJGTCJMD^NHIFLRGNIIGH^EG;FITNIPHPLDPIN9ENM]?:DH@[JKCONKBF>KUMG]PTUGFR>BKE=ZNLPLMCBFEGOAIONKAIPGPBDERHTB?CGKENDFQLIQE>HKDNHDADBGJNVLPIOG8CFMMLIA@DMEIGKCFFLHBIO:HLTHPIH_GLLELMIGKQUNFENNHQVBDHKPLOPIDLQJDBG@LJOBHNHNB?S?QFEIM@IEFMA^LGPBFKPRJLLEVDGCJALREIPFFLEJMCURKJKDBIQJCQYFPBKKKKJIFIDLSEGLBPFHMHNHRGBSEDC>AQLLNMFBFDGMPFOBJK=QBMEDGLLKDHMK=NCEAGRFFOVKWJFQGHHIIHHMFEOKIPHLHDEJaQMGHEIBSBVKDUTNVEGNIHFNFNG@HEJLIFKUPN_GDNMGOS:MFGE;SNGKBERIRRDHBBFSJEGEKBD?IJJOJG@NFAKHNFFGQRHKLEIP@JJGPZJCJLLJSDEENJJEIOMGUIFJCKEJJGOKFGKNJBXUGHLEOEJMCMLIHOLDJOLXGMLOJJGBEPJLMIRKJV=LEIQOJI@LHTXAFLRO@AQFIP:SFCDD3LBgDI^ZI@B=FBDJLUROG\OFSL>]FDAKG=06A>FP8QP?_BNY@IaCK=BCJALFEKJJKO@ENu1B@KNH9_Q^FSUIRXPLIV>MJDW9NfOaB9EQCQ^MF;@BADA>IFCJH;UYRPTA::FCE?IAG:BNFNI;KDMCACQHGF:@OFD14P@H=N=FFhRAREBR>GAN@6G=CMEhKObIDGVQWGH>HGLPEGFQGHGDO=NCIIIP=JBHDTGOOCNJCHDIRDEMDTAWHUAMKBPJaM9JHDJ=BICCDEE>KIMHW=HDQGAIO^LLE[FPGQFQMKKIOHMHQGWJKJEDPGGZ@LFXJIPA;OCHHMTQ]XKJGLGMK>EYTGR@HOSCFIVUOKLVIDHOHLBIcQPQJNFVJGONGKKH?XHLHHEWHNN@XKTEGKJKLUPGTVDHKHTPRFE/GHCDBRWGIEEHY:R?9EBNMEHGIcBDC:=I:KHGWBJGS8??I:CENLELBbRDe9UILM=?N7WFAF<9?KP?GS9PGKLB`BR=OP5TAGGS?N]>G=J=MZMBAAAHH>3C49:?CO>DNC:Q;GG:UXCFKFR=D;H9G;@MBL?S^T;RIPBLKFC>JJCJL>GK9FLQW?@U`N>AV]IQD4JEQIGKCJKEN[GSBNKHLFNJLXNNHGNGHRMN=EHHCOKGQRMMFBPJCLBBWFFF@FQGJMJLPIHDHBPNMQK;QOJN>GGBLIPBRIGKQCWKYKLLHKcKANXJIKQEJQOKHIRJNOBN>WNBMKKIPQKLGOLILKJHK>HFAKMILQG5LWFIXIEJ@HIKHIAKGB@JIPHPPGJDLDQDNUSEXRJAHJJ@I?@PNCETOFEFLZNOTQTMNNQHOM>GLHQ?MMRDOGKKSOG@HQQCHGKETFFJOP?NDEQJI4CFD?BOWOQWSUMPPF?KOCGEDHHENQBVSIJ8HMF?JGJNFGOLDTDOJPMJIGBBDFSDHRKYBECKLFGJSJDEDIENIPKCEJIHKSTOHIL]GKLHIHGOLD?HQFDLILLL@DB?IPFLVMFBJKRDTKDJDG@@KENIJIC58HDBK?FQBBF<=HVL@IFHNLM>MDJGKE>CCLEGADCH;AOLKNGJ=KUOKaKMHPOH=FGQOAWDMJCVEKFGK>MFCF?AASF@HCIEPNHWNJPJ@GCJIDS9HMKFJ>@GO]GAEKU@?>D;KH?OIB?GAOGSMHFLAFLJ?HFHT>KG=CDSHPIJJBVJMJCDDAFPQGYFGCECDIGGGGII@IIFKSJFNDB@HKPLGDFN?SJMOMKISHNKJNHD=BIOA;@MKJCHN?SUIDL@HNFQC9IQQN=GKJCWBDJOEENDMH@NEKMGHSTDIGH`?IIGYQE?9KANEQBEPL2EGJ9:JKEHF;JFGWCEDBI>CG;NY>UGIJPL;<BGC8K?XRICLF?PKCKC9NB6LJ@M;LEDKK>>GAPIBGG5@KAND?G>I>cCG?EFR?HEAD6PL=LGJBBEETBBA9I@TETEGFBMIELFSDLKLUHJSFFKMNODFJFALGD@IVPKLJFKL\SHGJNBLMCKGKTLJHGNB@>FDSCKIHSJBQ@KF@KNOIKJDGHKKMBIMQILMILMJLELFQLFLKQDKJLNQIJHDH=@EJMNOELSLMBFPMWRPECIFKENKPDQWJ=HOSGCKPHBLEIIKVFMFBIJIIOEBDKLGEFMLJILPHRJFFFJBHJJLANLHJEMLLDJHJHLKIIJUVEJCQNSODFMRHILWIFLCGLLIEKDFWJBDMHDKDGBNONKCBKUILDKESDINBMDFHHIKQHBYJLAFHJKMFU;I@HPBO?LRHOCEBQKEBFOJJEJGUFGGTIJFESLHJKE>HQO@BOJEDNPFEODIGKNFNNKGIV`OEN@TNOJFRGJMMFLRDLU3H;JOQBCOAU@LDOAWIAWXRKQINGUOILGHTM?JUHFIKKOIA;]BGFFTRQEKN_ACVDNL]FEUIJGFDV@IIIL[HHLBAMKCNFHEUPJFEC@FNKAKEIPE`FHTQGJP?SALJBGPGMUGSFLIILGLJFeJDCE<\;ACFCWKDAGQBKFQNFROJKPDDNGEKHNFJCCBETONKMHHDHhAF:ENNEJSAHI;C5MI[GC>HT:CIEDOFSS@Y=>TEDY?N=EOMDBJNCIGDMDXOLFBU7@GFEDN9LGEPKIA6JGG>GKBN@GF[KHCN>FYV?V?<6?7?^MECO@>OI8LEBMFDRLGI?KJAAN3KMMCFI:KEEDLK@CEIGDNDC=KNJ@KMNICKN?HLLGDDPDCLF:I@Q>>M\LNIDVDDHDID@HFFNCNHEHNGIMIMMT>LLOCKJLFLANF?HFGGEBGOGCDHFJHIAOJdTAL=J@MIOMHLIHQBODJKF=RSKICDBI@IRQPCC?PFIGLNMAULEJOJXCKGE7HSN@LQTBTNS=N@MBMDENTPC9IIMI=NGGI?XD>GKLE=GRHKLANEAEG=NCJLUC=?CLJN>NHGIHPZJPHVLFTLCJFADRRE9MMHDIDPTFTIEHHCODEJENPCLIOFMIQT@MLHM:VTLMA<>O=?DEMFHPFMC@MPIHIJ@POFKQWPMAAB>UKWCCNKLGJKACEEICRNTGIEMQHLIGEEKABHFICNR@GEAD@PGLAMHINFJJSISFINQFIQEGHILJ@QJHPVBIJHIJHGMGPRHILGFGHPCUOL@IPGDELRJNWGLGFBHGQMK@KLAISB@CJUGJLCGOPFMJXNDFDGCENA@GHGLNTDNOTDZHTJ^JNHAFOQO=NOABNFLHGLILKJON?R7EBLJLJPTR`OKSCRMNCOXEPLM>QcELQLQEKHSJLFJC@JILDLQ6GJSMCJFNIJARBA]R@DLFRFGBNJUK:IHMGRFOKMMSFKSVRLFGFDOECNNMJFHGQEMEYEGLM=GLFJMGGJMPDDMHKEFAM@MLDQFFJQCRIJHT?QKDGPRBKHNJKPFGEAGHSDNHNCKJ@@PDUFDPHIUHQHSNHFJNIARSIIHBFT[KREFMHPSDRAAP@SDHSHHBJKJCCBFGLHGQDKERGFFG`NDGGDMEDIOILFMJIIKMLUIDFDIJUDD;QIAJG_DOCAE@GWOFF@YONRUJHHNKSGTNVDNJTDFUHFBFLHKJCPMG:ALMGJLCFHMCHKFBFGOTNNSRE@KPFNTPVJJOLMLJNHMLLbLR>OFXSSGFLSOQRDMMCCSHSQKHDDRGJJCJ;ZHGGFCNIOIAIF[KKNT;FOMOLHKD\GKURJPMIEJABJKJPIH>XEOEJJLELPD=S;=GDMFCB>ZIPGQCEDHNHCR@?KJNEFAOFP>EHLOUNRPQHIENGNCGUIDCCRKMATFGZ?UHBQY/GJECNRHNPKHGR5PIMJM>@HIMKBGLCDFQJKMPCIV@MHHIBQLL5KQ:PLDP?ILIHVAFCS=MDDKDSKIOEJ>@OOKOGDI7KZB>IULC@LKGDGEGBE@FZ=NIF=IKLCJBAEJELGGHGBPGOJJGHSIJBDUTCKLUC;JDN@CELK>K=BOUJKKDTGIMNFBBD>GHDHDNOB?H<>OZIE8JFORBOF@B:JSGQDJACDDCSIHK>KG?FDKRCELW<@D@HINGELLBLFPIIDLGJOROJCGJGJSJCFHN?LAIFDEMQOHDOFEFOEOTHIFGJBILIJHGEIKLVGAKSIMFLRILACEMJCSXMRBNEOIILOPFIBLAEKGKG?MLHNMJSHLRFHHBRJKIEDOOGCOHFMIEIEVLRMLJGJMIKHDQMLNI@?KJKGCFKONOJNAEHB]JHK@JJLRMEFIMJJRPLECEHNwHKKLEQcII@@KNJLLHBUJKVH@@DGIHbUKCJLAMQM>@PJWEHHEFMHDDG?ODAMLOTMBEIJDLEHKPNEE=FBLTGOGGBLIF@EPUJJJIFDELIDFOCGVHENFPIILALSFK9IGDMN@KQRAPFKMOLPDGDAOHH:Q>LKBDJGBD;KLOK>JQAJDFQLA^IEODDFGL:HHCKJMJQLLKPFGOQLE=AMFMGJDCLOLIHJHJ?IAGDMN\NOCICBEJ?LF@GJLNU>FMJGDHOMELHMDPKGNWCOMFQIDG@D?HRNGDFLJKH[CPI;NHLGJUFGLIKGLCUCHBQMCJJMBFIDPI>JCIROITMECRFRFAJDSNHNIGPFOIPMQBEKESG@?KIIKMIILFOKJNIKILGCJNHCAKHNLFOMYMF>TINNQIUHPHECDGFGRBJFBJ@EJGJGHLQPLDFCSEICEJLKFHJDLSKDCKEJJ=NMO?NFGMJWEIJPXJJIFMBIJPICO?UGQGJTEEIKELUCGCRJGHJQEKVFKHDMCQIPWQJKLYLNKDKLXPYNOAMEQLCPICUYDDEGHJNMFKNKOQF?PURNLIORKGL:?ZHNPFNMQKHK_UUFOJ^DWLYIVL@SSVJLSPSQO[OHLONEIKPCJGJIVSLCJEIGUEHKNKQDTPFLIIJQ\LELPOFLMOKR\ITOaJK@MDTGHOGETIRLVGGMCOISJTKFNKLLFQKPIMHLIJVINREBHELNENAEKDNURLZQBHPIDKCOCMYTSCIFI[KHYQNRKVJFJPSKGEPNTLGK>ANPPERJQMQTOJ=FB[FGFNaJIBUIL?NMTOFNANDNVLFHJMQQLRHIJCQEBVVRKQQIHJK;M;KKHEQBAHJIG9@CHLONQHHBAVCABQLT^LHASYHJR?FC@OPHKHVGCHBE[QLLNNE>IDEKBHDABHHGAGGH8EAHAJKYKMJFMRDQGFCHIMLLKDCLBAEWBRCOLJF?LPJKC=>FJIGE@IGKPNGR@NMCILM=PFRSVDHR>BJOBBFFCAOXH@NSUOQJDMD@FUJLHJGHDQEVHBNELFJBLMHMFUOWLMBHYIG>PJBERK>FCPEBHKFYEDD@K>QIDLKPEBXJSNUSHNN@DINGFDL=IMQPOHNCQXOPHODENTBOGCZDMSI@UCMISIKUV5FIMOGEHK>ULMEGBEEHARKAK>>LFSYMLLDZDHNFPZQBHICMSGSLID?MJEJK=E>LFKRIDGH=GEDKEG?MLNGHGGO?<@HS?@=BEJJNHHDIDD>OMSKLR@COQKJLJRGJHCKCGPFMKNBISGOJCLHD@SCHKBUK;EJBKGFACBI=G@ZPBNLEFJG8KOGDKIEIJDJICHCHODNBMKLVROAGJG@BDDCBKGJMCDQEFFBMCOKRHLIRJOED>OLCJDCFLDI?IPHSGNENMJHJKI;G?DAQ?JDDBFBIFOOLDFD@QMDG@\CAIG3WCA\L`NELBNACCKKR@P>EE:JEDJTHXDOA@A?BF@L?CNBJ@>@hLKFCHDHGEJWVIKEKK@Q;DIJQBKACFGQN?IEGIBGHKHD=M;EGDBDIME]HAEDPEJRJK?AIBF?HEKBLE?G?JQHFDJAQAFJLL@INQCPAKHJLL^NELIRTRBNHCG>J@AFOU8POHJKGP;dANCBHOOLNBCATMM[HCJKHMJODGD[NKQ>X@IEGIN=OFWGJ=VZVJIGGHESPFN?CQ>DUKHJGJITNFFTVFTSNEF6NRX9LLHCCTQV[GBBS=HMLPMGUFKIQDWMFNPROKKRMLAMJHHJO;IFFNBHESGFaJKC`L[QPID@ONEIM?UJOFICGHLICHLELM;VQLHPNFPQIQHPAJMI?HFXF@DAJ>SNKFHDXFRLLHBDIVLPAKCTPPDAKJPORMUGLMDHSJM>HMPI@HFFQVBTCLGMR:QOHL:PRELA`J=GVGEAKIQGJBIHIN?GGJFDOHMICRHELCIJEMGIGIRLDLCHFMHWGKGF_CJUGHBLKDIJMBBDMOIEKBDPEH>INFEGHKPIHEDDKJICEKDOINK?EIMFVTLNNFOBENEKNJFMBUIKDNB8INW;[KRC?FXGHDDPUHINJSPFLJDRERHEFCZILEQIBF@NEQNQOSKKODGhCNJIP?NHAO>EH:MNIGGHOIQFCEBFSHXQADNHHJYFN@CKQFTGFHHKKAJLAJHKIAQMBP?EAOFCA:GKC^DHM@DGE>JFKCDMLQNNIFHQJAC8I=ALDGAUBD?AKOGAB>NCH?=FMM>G:@CHNI>>=JFDLF=4?NHJIWKD@8@30@K>C\9E4DdOIIBEDDHFMHL?F=GaJFH8OLGKIAM>KKLBE^QUCHBSA=?EAGLC@HCWC@J=SH:HGL@C/D@HHGAEAF<9DC]:AD;]BDGFRBIM@=L?CGIHGJPNMPC?SLJVGG@=HHRJBR=JK:ILPIJUKHJNHBCIZBHDFAHDTCSKHDIGHIGSLBFNB>PGCGGLPJFKHE8^IMSVMFHEIPJJIKGKRLEHLMGHJWQNMAKOMENLDHRIPaBN=K;FCFBGIJO?UAVNNNGBCMM;EaPFFBQF?I>?SJH8JEIYQDL=E@JUCBFFXDKLANILWTH?GVGHUBYWMLC@RCV@JUITQKK@UOO@FSPUKZAAEMBFKEH>HTRLPQ:CFBFHLNMB:CJWIQIKOJRPSRNRYQMFKU9IFHKFHQVAAMVA?DIALDHHCPMJK>ED:MPH]EFBSHILYDHBL?AEJUAFTIAF9DYHLCLLHPOO=MHNLGFCJANOGCMFPL@B6FPXQGVKLA@LJEENJNON@M@HG9AFE@KNIHBC4J@MILNLDAMNZIKGPNDLKIRG^CCSGIMEFFBDII>DCBMPN@IVNPLHOEEC@KTK@ELUMEDGEQ@TJE=KNGVSZNDC>CBKBEKFIFGMGGDOLGKCENFMMeBK>>DKNTFEBHLUE:LMJBJHCJBNGKCGF?QPDWLKGGPABOLLBO@MIKCFRE?FBENCL@CmMF?EB[GERIYPOGCKP[<@QH]FYTWGAGNAIFHDCF@MLLBJSGGEPLNMIEC=ICDMEHMALCGLMDKEMNLGJI>O?FJHRgMGOD@>GAQAgBH;HVJCHCH>P?HDFLLLF?DKDA@QJVCIHNGRK>?DEDCICKLIJMFAIDKKJULL>OGEJNHGHL[IIMFREFTG>RMHCMNGXFGHHOOQCBALKCP>J?HHHJ[RIKCU@TMGIQJJIJX@T?KN?RKAITOSFJPRNMDFJLAXPADNQKQJQGCJGFZDXDOM]IHCNXPLGPIBJVAODL>JLUc:G>G>MOADEHSFEQF>RVLELHDHPNICPMLUGRGHUOJMPP:IDKBGKBLJCEJF@YJKNOHREGJHUNOKFIIGTTULIDLJPPTNOCSJEHIENGKCFFNMHQCITIWOFBQIFSFGDILKITDDDLQPMPMHHVCFTDBQPHOJEGQJNPPNMKKIIFIPAHNICMWH?EBNJMAKBEK@??DFNPOLDLEGHIF@I>DIAOEDPG?ETR>?MHJLKGKGMLHQLKRDABGNJRJNCGM]MXNSQKIFPPO@BMDHNCFAGHI@HGIAQEGEMOKOFAHMDMFAIKNBGKEJMIHDBF@ACVSNGHNIWGUNPTU@QMERDFOGHUEEWDE@N>CF@CNKD;[E\FQEKM:EOOX?WIFAJIKPLNSRME@C>EG@LARKI@REDAMQKLHCVC;A?=ODHPDDVAGLBWD?V>DKO4HAJIA4BEPISIDKFCBKLSJGS??Q?\GEJ@[LCII=R>GFE>EHJSCL>EUEFKNB]>EQOPKKHIKL]JNaDPJZEHNPBEE=@NJWHJNL@KJNPOFT^EHUIXJOUKHICEUNBGMHSOIPSKGGK?NXBDT>VRONNL;KLENHNL@H=OCGE@MRLSIA@JNHEVIFOSIICDFHHDGFHEEOFNIKFIHVCHNQHSOTMIKEKNKIER@OMHNJLMGOLIHJDSKTPLGFJTNME:LALJ=UBEOMFLJHFVPROSN=DYVNOFI?OKLECIISENDJENRILIIHPO>GDGOEJLEHEOKFAPJKPLEDUGKTBEGJNHJDFIPBINGNELODHJWJCPLETIKERHJQKQNFVSFMQEH?EFVJKFNRALIKOHKUJOGKF_D5CF\DSCL>ANHIO=HFGAF>@IDENF?GKKEFXHBF@JL:F?ER9ECOK>HHP?QI?9FDXOEHAEJBE]E0FKBO?AMKMKAUNICC=JGMHBKEK>;B@JG87HM>CEF@NEND=?PL<=EMDGMFDJOBF7AOH@??KKGMHC<:=8?9BLZFILIH9HCCGQ>;VCN@EL?UMD>BGIKH:EKOK9CEADPEGBAFFTNEH[IBQRAECDAJF=FGPCHKJMBCQ@FBCKJSHMSNLEFNUFUMD@QIB@LNGKLOGNBBFFKMHXNMIHECJEGGBHIGJGNFCJHLFDJ8NHKDQAHNSJIHJF@INGNJMOILKJGFJHNGENABGBYPCDQ@GMSHGSFJHPLLHMAHIMGEGMTJDLQEHECFAOUYSPAFFBDGGUJ>O?FJAGMMMGDEDUHGMOF3LIPNHH?GGPMGEGHJGUVR@FCGSRMSIJKJKGJDCLMHLGNIG@GD7THCTF?GAGMMQQKJJ?>IQCDOBRKJKSDEIIO]HDH@WFIBAN:FDBCCMNN\VFWI@?FF\?FA=NDIDASNAGJOHQNF_DIJHTZDJTFFFBF@IAD?NK>LLODIBIKJMFGPETVMOSHSAK:LEKFEK@IBINCJILSGDEIHNQI>bUZ7d9A[=EZ6NQLQ=VUQOM;K@UPK[UFJKIQWSG@JMbMGPQeRO8VVUKWHUOEL_ROBMWOGGMXOE@HIBIKFA?L>Q\aUSSRJJTZPW@L@ARKDBYFKFTDNBQSCQ@BDV@BHQHGFIECB>JIDR?NHNOQDZDFMCMNCZSA]HKIKUeGAHGZJAHJE@JERODTIFBF@CBIFAIAHGG=TIMNHLEEFGIIKKDLIITKHOODJ>?EFL_AFAKJF@FFEEH@RDI:HHSEI>NFCFCaEKIDIGOMEEHKI=IFJFO>IFIKGFDNDFHF@D>NNL@EGBCFEOHFKKHLNHIODALMN?CQ?@BHYBFK:IGUIFJBFGO@UFEV?UPNKALAM?HDHEH3@[H>>LBC?LPHCB?7AI@C=J>A8LAFJ:FC?>TNID9TNDG*BEOODKINIF9SFAF?M@A]7VCHKF?PLGEBDCHY>MAGHFnDCACNB.XDOTHLLNNGHCBJUCQHNMPJJ9I;12GJBK>HDANJIB?RVLJTLOE@GSI@=GP;SEWKBXEKPEEIJEbFRL:FZSHR@KMQKLQKLFDGIFSSBMHHLRD@IKJNFBNQLCWWGJQCEORSMOGPDKRMCJM]MMPNMEBKOJ?S@BLFKJROMQOOPBDKPNHMO@IKG[LLIDODIE\MDPQDBFCMFMTbGOI^KOFLHEIBL[YFKKQKCQFQLSPODMIOCFCCAHHFP_JA?CGKSaIMRMHLCK@QG?JWOLFGBH@KXQHGEFFMPEJIXHJBIMOOBIPS\VIANELCGHDM?NDDOAKDEGKVNLC9KPJ=@F7GCGMHGEDIGE@MNAABGDNOQCJGCJI:LKCJJL@CL@ED8FHDJFCNCJCGEIGI@;NKGBRREKL@EGELGMJILJCCFGTMDKIWJ?HRGN>JPCJROIAQHDJIIONJPGHFO?QNQ?DQRNSLHCKLOPDFIHHFJKCGDJ?PNUQBGPL=HHHBOUNQJ;IHDOEJKESMHCNHDMQBBJJCHILFPG8EHFDENKMJNERBENJ=CSJMPCJG?EPEEIBCCEHBLITROBPHUMNGQGFNHGLNH6MKKPGCEBUEBRBYMDFCKKCUWKJND:WPPIFFKSLMC8DMPSKK^KJAEW`JSJMSNHCP@ALENNKRJHLLKNI>OTKDACSJCKNEJKRGF^AMHHOUMTKZITFLKXCORPCIELKQD?K@SJOGIJUINKLEULGMHNGF[NGPRIOCUL>GDETAKKSKIDUHDBHHXNWWTVQNKJGHLSCLCFNBEN?ACGWDO^HDLJINFJTCGOHOIDME\F?SJQFUPTEMMTEFXJ?BIFRHLIJARDZKQRLSYHRJP=MSJVHONILZPVEVDW=KTMMAGTEKMJQDGGGPU_;=JJRGNMT=KEOHHOMINJDBRLHNDMPV[QONNCWDADd@TIHLWYPKGJIRMOFVHJMJJBJ?EIELGCDJHJAVFKJN>SAOPJOHQRIJGLBJJPFMLAMHKK@JJPLRMDGJG@ECGCHJRFKIBCEGHBKTLHDTKBNGRKHBIFDGEDJIHILKIS@HQKOIIININSOBMRIJABJIBJGKAGJISKKCLLMKFFHMMRHOI??HIHHIGCKKImKMKLECMFHHJMOGKGCKNIIGVHRSDOIMMOEHHGBBMHONGREGOPLU?OOHHMJKKFHXUGOIOTF@PKKLJGLIEOGGGJTGGRSJLG@FGEEOGKGINHOBCLLFF`KG=GIKDJRFJPIZHKIOMI>LFFRCDLEEHNHJGLJGNIPIGGLHMS?EGIKQJHK=LJN<KJJBTPG>PNKBHNVAKGACIHK?LMAMGWKJGPLIOQEJOMNHHERNQJCCJIJBHRKFMGAGEHHPHJGNIMMLTEJ:OGDJBDIOUEGGPGIP>ELIPALAQHQLFM:JLIFEHIRSDE?FRINMNUANILNDLPIKDFPPAKMMJGFGLCSDMHKGNFAMIGLBLNJJNLJ@GLDEHIHEBJC=MOG>KLPKSKSJNCF=HMBREfEDMSTNGPPJQEGKFE@NKROGQLFNAEULGMRITLN?JHMJRIEJTTJIBMOMGYLLFWJEJIHFKNKJDHILJMNEMMEQMLGQ>BKFIGAGFLFHJOKDEGGBSIFFIOHESCCZOGIMIHPILICVCJIFDNLBIHMKTEFRUIENIM?PGTQ?TAIJDSDK=DTMILNHNMGPJBJMOMEKHKTMNIBF[JA[DMJHFJKMMHDEO?TGBF>BINFJOFQJFIPLKUFGHIJFKAAFGICKCNOGIANLCTOGKEHDCKDA7XKd^XS>GBHKSGOELKGDEOMDFHLIHWANGJIBBMIAF9@@TNJELNFGXMNECJIIS;LGIDI@YKEMKRDFDLIJJHL@WIIE>DCJOLKEXMHOHTPKHJIUDJYLF`LNQBBHLDDNQ==M?JIGP9JEIUOJGFTWPTDGF6KTEMWO@@UGSFELUAE@GJSCKIPHGIKNFOABIK>JBGHOOJGQEG?IGNFTB=CFAAIKGMTYCGIWGIHRSJHGGITMOR@H@LIAGODGNM>LEMIGHJEJPLJRIM?LOJOOQLHGLJOCLIKIQAEMDGKJLFGAV=G[DUR@BK@ZEIKJMHOL@@NTGLCO@IGMNJCJNQK9LLNUHFGAHFMFDSJCLJNFGOJMHOOGGJFLQC_FILMHGADJRHCNCD[NOKCKPH[TDEJG@QJLPOMUGUHLIEHKNOaDMOEGKMOLEKQGGGVRFHOBKHMLAGIRXNVCJCQDHLQEIVUGIOGFPLXLNIVJHXBFFIJEDKWILGLSPCIJGHIVZYJR=LRHJUAJM@HENGHNOAPGSC;M?EMRENS?L@^JJ@FMGDGURRJVUHAH>HJ]NHQQBRMOUTIPNMNLS=SHGOM?NADIHLO?IHAJHEQGOUJHPLKKCBUOHEFFNAFTZXEPIEPEPGKOMMOLHGAPPIGIRTQJLHDY?CHCIUDIRCLLVHbELHKNBAMMNIONBLHLPIUNSJZ;BMMHHOFOJLKEOFHLHUCLQTNNM]GKLBSDG>KODCQHMQQHGNGHF@JIKGPGILHNG[TTNGCKLAGFD@KEEEDONPKMMJHHSKI>ELNLNMPMMCJILBMHWMG@YGUPLTIICCSSAKJIDEF]OEF\`FHKJDRHFPEDH^>LI@KIGNUC@FDSAEQJTJE\>MINC[OLOTJNREJOKDOKGFQDKBQBMDDJMIBIMMLJJ=GN5DWHCEE=>=ZZOOD@[RBD[GFB.AE>MMFOI@=CN>?:HCXIC?R9@ME@O=AJ=E@GIDKIGQ2@RJ9DA>VDC9TCB4EHAG4QAPNLH7IAK@J??EK]OJD2FGFG475QD>D]LABP5GBN>TFE?LG>JCA8JPGTLJ?HRV??M\8OGCCI<>77B<@FB;DFQIEHHHEVC?IHAN=QEBNK@@^J.MI>PLOHQNEMLBOJEWF;DJNEEIPFAGFM@EDYDMGFNLNDVPPFKDMJJSGKIGJDEJPRVKKM@SJFHNEKLMFJGMODHPQNECKPNDHLCHRDJINPBLH>LJFNMISCOODHLHEMNDCKJ@?O;FMCJFMHCNOZJFXHFE@?AJGMFLPNBOZMLRJK@]KGHMXACICE@OODOI?NIHISDLJCF@PPLCPGO;HGSLSNJIAO>CECFVK?>MIMQVBPE=J@DSI?DPLOHDDEJKDEJPFUNE>EPKU=EOJQDGSGT_WJ?@OQCJET?GJJIJKIQMGOFCKGCPFBBHRGNPMHHKVOK:AIEEPDDKNNMQDGKL6HBF@QG>IEDME=9GPJO@9KIHOMJKAKGF=KMJHGGF?OJE?HRLQDSAKMHLFHDOBJJMOAEGHKPCMBF@:LQJFGJPCIULJGPHWVRJDMKHEFOCMKPN@MEF?JAK?HLCNOVOAJFDDMHOEO9ARRQBHFOCFHQRILLOLKJIQGGJHSGGR>EHQDIKONCIMYHBCTDEHKJ[ONOFHNLGOJNHHLERJKDNEOIJNLSMBPKHPEKNFEJKIKGIQULFYJJKIBJLCDOILLRKIDRJVDNHINPMLQLKFJMGRMSUQNTHLFLDMMLGFFNCEJRMKJWILHJNFMIPHFGJGMCRJKLBSEEOPJFOQLGNITKPUIQKJLOOQFJCGSLKOGINKHKLSJJKJKJIFQIJMEHJEMJMNLM=OJERPMOMIRNSHNMCGMNPLLDEZGIIKNPPFJIEJGOAKOGLFZKLAHEQBKJKEHKGQKLQJLJDJOELKDNKHYILJELOECHICFJPJHEVLWJLMJ@HBGD?OCKJBRJBBMIJ@CQRLODLBPHCMEHBKFBMLONEJIIHHQHKGKGHKEBTEILDINKJLONILOFJGGQIN?CHQNUFIGIIDEIOGJ@LNLIHDPJJCDCL:GPLAVN>KNHHEEILFEK@LIC@HKHRDAAIHFNLDFJBKWSGOWFFIIJOKLJLKIDMGHTMNNBIQLKBKGHNMLG=IBGDPDMJDZKWDCIYLLBAMF@CZDFIA@GKKFB>CNEDLENE@D@BJAMGEV7H[SJSEQGGOH8CGJIG@JJ=C9I<@SHFB@GMKIPJUIaOH@@QAHLFBH?MSBMVIMELF?=NMAAHWGDBSRLDHHIJ?BMH=JkR>DCYG?FU=PI:FIMJ7@KCM=AU=KHDIILQEFEAICE[?G>EVIF;IFEFRFJ[M?QAAC@JFDGGIAK>SOMLWDWFID@DITDMFHAGOULFSGHMTLPMJK>HQ9HJD?IALLIDCDPH^FLIICJD?UFHHMJEEFKU[DO?@IGDAHZ\QGAVKLCPEUKRLFDCJCJM=JM6N8IEF?H?\@JHIH=;T>EGDH:S<7PGLKANSP>KIBNDJHDKSYFM<;HIE?ERIALQHBDBJPNHPHC?CUEH8OEQJDJCMAURRMSFO_AOQH>QFF??DEG>_LGOFEH=NICERFKPAY/BaHIFEQKECQG=LLND>J>7CN0VHGJ?^OFICkLTEBCIFUHCUIJHG@CBABP?GM?DFOI@RCCcE@FI>JFLRKF:KEODLFCLYJFHM^EEVENHD>SVcDNCAHGAVSLJCILFAEJLH@GHH[GFJJFDHKLJLNUEGLHFENKDRJHDCDCFDJIEO@IMBSFGJKEO>CHBSFU@IL?NUKKFC?HXMBMGBBFXLMHGB>ONFMKDGDN>LNE?IENEMCK?DQHIHJM\DHEHQECIFLDEIQ^RBWEWDaOQICJF?gFCGDXJVIAEKDOVGKC@FBFKGMHLHRPEIICH=QSDEVUDOHNLJLMCIDDIQHTNFG\LHPFWIKOWHECINKEIBCND:NJMLNNBLGKJUELJDDCMK@KITFKGOPNIBHOQPTENEI:ONJCHFHLKJLKECIMLEPlJMJGIBNHQEGTOGSGMRHEXEBKN?GHQRK?gFAPOKFKBK?M>EOY?^JIGTPJFIXQEKNKKIIEMFSOXPLAEGMQMFLCGIQ]DLOFJBQNBIRIRFYNSJFIMHEHCGFAKE;BRGGLRIIIMJEIGIBGXFDFH>LLMEFL@UMJHRFIN>YD8BKNJMPACPNIIKEQGAFBS`BGCCJG@EHDCLDGPBVGPAKHEOJCRHHREZMICHIDILEJHHEPHAPIPAKJJB@PKRDD?[ESHHNANDNEQHIDHDFDJEINKGDHBEUPDOLPKMFGMHMTMQODEHOMRDEJPDHNMFBTHJGDDHKOCAB=DVBLHGURLGDMUKLJJAMXD?TMJOMLCMFGO@GJDTEKLIGEE=BKEEWFISHIMKOMGFIQELTTDBCKLIFJQGLQLQJRIUPPHKCFKJIGIIGONFHSVILBHLHPIKIEKOHEFMFJU@GHBFBJF>M@LRRPAEHQNRBAFJ^QKLIGGKKPAO@KCIFSIHD?ITGDMJKSJBJCPIIHCJNGDGBSO]VMNFW@VBFMMLHTLNOJN>LJPQ\JTKLNLOCIPJDJRPHJIIDLHLDOF?HFPMHLEKIJFOMEDSIKD;IHOIKYHMFCQBVHNENFQJNJBPMLGDOIEPOKOCFKKPGB>HRURQBMFHNSPKCCS:LMHHHH@LENLEDJJJQHJHIJIJCHIIHCWKLURIJHLJKCJEFKWQTO?IGL\HEGICOHHVKCMSQHYPQLICNRIEYO\MROTPUL@NDDACICHMKF^NOG_FOAGSMYQ>NQFITFBIUHRMUYSGHYJCKJVPMSILCPKPNIJLJIEPK]KDXRK@EMQENYTLMLFEJEDNCOEZUJPQXONPEOXKgFJBFDNNJMS>E>DOEXNJCBUE?CPMGHSD[HJKHPQTiG@RSVH>DENDBK?C7JRSISJTJOHBHVJKOE?CGKHFN@DHUJIRMLcDHLPOGSDWBFNSIOIKAAKCHLP=GHLQCCC_IFOKKTJRISOKFQQQGJHBGAOF;BBHAE?O>EFICFDLSLHN;IPOGE;KJMAAEEQIQPSJ>DGI@GGCDDCMJQV?EABEKIM?IIL7ABKDD?1@GCE?FKJOKE?LDJPUIGJLKGEFCKFJCIJFLEQ?QTKNOME;IIMHNBDDSCR@CBHNLCMMFH@CJF@FH,I@ZSUMNMLFNBWHMG6ETK>M]MJCDEHHFBJ?BJC9F@DKD:LSHBAJIBEFA@RBN@I8>=?DENO9@AKK:>BHDdE7CS7?ACDMO>GBBr@JCBEGCGCDQI>GTXBYDR8BXGODCAH=EJGCP>@KPPXIPIBHHFDVKNUFP?KCB?9V@JIDALB==OGF6H=MG=PLAYIFQF>bNG>NLHTMS7JJHOGNCFMHGL\@BEC:O^XGPOEF>G>MMBiEP@H>QTND8FBLPS7BIF48HJSLGPA@ZFIQO@CBCPBMNHILHLFJPFTMGPJOGJUI>LPKH@NQJ[R?]JGNMNIFGNFKFFONRCIAHJBGDK[LQCLNLJEOMLLGMSFBMHJDFMJJJBFILMLYOBMDLKJ>OEHPBDOBJNJHLCCJCWNIFJLLDTWKDIVOGGCHEMFS?IKDLLQGA>THILBKYK;KBLAEMBLAMAOFLMNDKDGCJFRFKPPJQHK@PLHJAH9;GDQAELTQI?PGLNPFPULOELCJE@LUKJEVNBGCG@JEJFKJKGFDNCEKLLFNB@EK@KLMQTLFJMOGMTKBETIQCSMFOQBGTGMOMF8F:ILUILQJMGTJGKLKE9DAKDGKIIESUQJKTKTNQNMBJNNANKIMRKGIO@DAYLHLD?SHJ=HEJGOLHSCHWUTCDFGEN>RFHHMQEGGNFADKHMJ>>HC>M@KLHOJMCDELLNLGY=@@OPDR?LQB>ALKJMQCAFJHLNE>DNHCDJDUTLKDSD@GG@LHCJSOQFHPJBBKMGWJJ;@HOHKDEK?HZRDFDKGHKHABAVPGNH=EGOEERLECKJALBJQHE@ILPDAGKHIPFLGJDJ?XGK7U>WHLA\MNMDCLYSFCMKNIIXJGFB8JGDIMIBM=Ra@Q[HMUMEJ@MJKRGPGICND@?DJEPO@HOMODIHA@FV>?PWCABG@E[=KMKDTCTEBDQKFJ>FGDPJJJLBJKJGF^FGKKFFDHLD?G8SUHGLDGMb8K\aKJEIKJFK:NGLS>DOQLB@IOFD?GGLIBAHJ9TKGFSJDc:K7PLPL@LL@k^DELCMDLCIIJGONEFOAGAEGCIRUCFAPYIBgIDQKIJJUNFB@KFNNZIDBBJBGDJJIDKJJQJHCT[NPBFCLNKBQMPLLJOJRTOKGQFHDPFLGLPHGLNAJIVCGNMGGMDOOOGFMKALO?INAGKQMBHNGGILIIIMEGBBTKNOFCMUGNP@GIFGLCJCEHPHSQJCINKNWBCJHJSFOIFJGGICHGRBBKEGIRGMMIJINNIQWPEUGELICKGHQHFIGGDJJNUVHGKHMLIIL@EHVIDLPLGFYEICHIGMMIESBINUGLOF@FCHQHFLOPIJHCGIFKLIKESDFEHCJEBENQQJOQLLDLJHAJCGHJLCLJMMIISKVT6KJGICOFGIDLEFSFDHJUITGVLNHBCIOMJJEKJKNKDLFHOHDKHTDVNFGCP;GH;HO6GSEKCLQIIE@FNFBJMIGROAWJL@IL@MJQBLJP`DCDDO>?GQMLAJNBDLFILLHUONALEAKMTEBKG@IKKH?@HRFKEQFJKHRDLNQ?LONDFHIJAKJNKBWHMJDCGEKLNFEC`CFKPJIAILLKALGRJLIFI?JBCVDHOYKPCCODEGBMCHYEJI?QMGWHPEKHCMJZLPGOJJHD@SJ@PLDEKMQ@JBODJOLQKHFEHNNBGEMKII@JGGCHHCNB=MNLEMKL7RDGJCHKIOIIFBLFFKIJECERJOIDDEFCDFIFVPOOUNVNGIGSRHOMNOEQRCLFZVKF]JPOIFI[8RTRKSYJYKDLNPGOYDOLJUWGXSCKMTROIFYFDFPNLTILBDIHHJUGNEHNPFPPYMYMKRPKQH@BJONE>TKJRDMGVPEOMFGHAJLNFMQEUCROIIOGVXOWVLMKPYUTNQGJOAODMNJXLSKJHB@LLLXOLWIHL\HD\HQHAJSFJSPEHMNJMXMOCJNSM[GLQNZAKV@PEOKF[`LGFOLKQS`JGJIMBHNOBACJZG9GPDHCHKEJ@KJAJQDPNCJDBEMSUN>EDKLEIUHCGGOFMMGJIIDHMRIJLOFLG>MFK@EO>ECLIDMJF?ANCPJKALUBFBNGPPDNMLHFHCGQOPGSBGSAGFHKCLSOFDIDGOC@BEGNNEUCCCLE?HQHGD??LEAAMGDOK?RPG=RDSO>BPKGII??IJKHEJTKKJQPVJDGPCQVFBMCGEHDHNTEE>@M?LVKASMO\IVJ=>CUZPOZKDLEAW9RARL;UKKCrB;JFWGEU>NKCGOBVADA@HPELKJDPZKeNF;KSPECSJk;NK?>MgLYOGUQFT9BRMUAKSETLQ@BET>7EEATWK?KFIPKNOIKB@=JHMI@KTVED@L^8KUKD_JKJSSRJUa=LGKWFI]=IJSCR?I<>NHABZJRMISKFG\G]BOKGVAFE\BLI\R:_XHCHjJZQRLOGH;F8L?EYINLEPEAM>F=DAMMWPGKIMOOENIM?JJHHHBMBHQBMNKE?NRXJFLK\RGOFKEGKPHHKOPMJHDBHLEFRCQMVIGJQBLK>JGIYME?IKKHQSGTLI?ACHCH>MIJMSWGE@?@WEJIEKMP:@SCHJXEPBGIQQQHICFPEISEIBAILMBRFFJKELERPMIGPJGHE@DHHKKDJOEHHXJHCKJMKDMGIFLKEEULKBJNJAVDRIAEIK@FKGCHKVH=H@GBLMWL[JJHMQIKJROLJDAMJWKI@OCMBPEQDKNJHOEVNIIHN>EETCMMQKIDISLIGEIEFIFRJO?JKHEQLEM?FFFEFBFTJOIJTBCSGJIH?WIKCNFHAAFGCLkIAKXLIEGGGHRGLGILIGMALLBBJECJMAF?TIHM>BLAKEI9IHCJHA@BGJNHPJBWOJJGCFF=SUFLABBFSOQMEAVIDKDGIHEEJGUBQNHMIKJ@GFJFUOORMNJFIK@OLSZHLHNJ>AFRSPEGGFNIIIJ>EMPjWAQF?GDNFIGJQIKDIEHZNMNLGIPIIFTKVJDC=FTF@@G@D?JKML`DOEIGO[LENGTIEADIEKOHSC=IGSJFIJNRPPEFIBNkEGPIKHJNLGKCME7OEkDTF@EALBDFGJAQA6QG{AUHBPLO?EV9KV@QANNVVIGEHTF?DL?J=PKDBLH?PYLPL8IL>KHGHKPDPQFCEGNDTCCNMCKDLHU8IgG]hDGHDVRCCGADIJVHEKNQKICWPETTISOAQRO?IURCNJSRFEHLJJG;FMNUKIQIOOQOWYDKISBLKNJIA@@JMGBAPCIGNTZFSV^PIPLZ\HNIVJG@GIGB@OZLNXOGHIQ\FIPERMQOGHDCPDDHDQMLNELKTBPLGIXCSCENEAYJNFJOHMREKIJHDJZHJHSWNPIJHRKJO>BAHBPHCHDCI:DOF87JMG?AGEHC>^?JLDKNFQ?`Q=Y@BMHZDBEK1F?L=AU2>>P7AFD;TC6N=:BGMHGDB>PD@PIS:KTJY@MHDJ>JA?KW>=QD6M\A6JIJILHRMHM?JQPNF@IPOJHEH@QOAGKG>LIHRMMMH=JOBQI^GERF@ILBIKKKKDEEFNIEKAKILFMEQIBKDFIDTHBJ@BKKKONBDKGEGAGLKBGAAEEGEHFDHQGGHENFSKHLHDINHDLIKEILKLVEHBEKHA\J@KECITOHEM9LG?CSBFRBKDPDYLKH?BBIIUGHKMGIEG?FJLKIKPJOKIGRPJQDJRGKCSMKKCBHGV@;AID>DIEAXILDKD@AIUJO8>MISIHJF]XHGBTMERK?NJOBNQMEM\@GCJ@:[KEIBAHPGV;GGK:AB>FRXJ6Q@LCAGD>=HABGD<:IG?KHL>EGC;J@K;DJLIICDOELM`;IXVGFPEMAPKCHIOQCJJKJCD5MB?MCFHDFKLGJELCM=PT:;>>@CPEKMLRMOOJHDPKMHGGGLDL`MRCHJAGFMPKIQ@BMOAGCBHMLEKLFCPBM>HNN=COI?JKRNKGGUIANIANHMRTJQ?T?IFHQNIFHMYQRDMIHEQYJHSPMNDOHL[J@DHEDD=MPMNIL?BVONNCNBKHPHNGMPHAEQKBISMESAKCJ@NLKUNHQNBF:FFHMHDDHFX@JIINFGERPPKBOJHODGLBTMFQEGPPHCRP?OOEMCJLFEPLKJJHBIFJBLRANRQSPIXPIRDDNCBESIKBIKGIEESGKT=PMJJHIILFIPIFLFNMIDHGMENLDGKKOFLFBKMKJEWHGR>VDVPJDBEHRNEIKQFNHH=MBHJNJUNSM?PCGGX^@DLGWPHQIH>EGUNPFIBMLEDPECAFLEFHSLKHIRVNQ?FODEHDSNEEHEJ=CmKCNJQINQFIC?KICIQHENPDNLCJN@HATDALIDLJJIGUBDQPJZPFKMLQEO:JLIGJDRCOOQTEMLLPIQGFFH@RCIFRORILFLYAMGHMIIMCOGMEGIP?G>KJNGPCMEFRPOIMBESFMDSKIGOHJGPKHLDDLHEJF[?DDFAIF?CFO?LKGFLMDJKHJGUEHGJPFNOJ?OHECKCKDHEJDROODQJKNKHEUMCGMKAMJYVMFIRFHVBHAHPHIPOQEKQDIMKGJNFORDXECHEBDIMLROL=RDIEHGKPHGLIMESJPEBHIDMQGRIEJNDNLNEHJAGLJJLRXJHAIHGIIHFSLQDEIHLFLJG=NGECAOBIIFCNQGQJCGDIALDBEIILKMPMCECJRDTIIIDKKELSPRHNFMEC=IGLNFJGOVPI>HMELPIFWNDRMQLMP8LLGFNHMYLOLBHEGOKAHJOSHRO@HOL?FHNGPC>GOHEGHDGCJKFFI@BKXMGN?JIRHME?OFDMEMFOJNHDPIIJEQKHEZQIGOOQLILNJKGLMNMNPJCDJTXIQFLJMNGCLEOFHAHLNQEQEPNGFIQFRVDTKMDKJAERM?MPMKIPFQKGIQLEPNHVJEIDKLJRUKCDJDDJCESKGFLPMAJO@FHKIOL;AMTCKTJPJFSAPGNHHDIIMFKT?HGOKILOSDER@JLIAIIGPEPEBPERMGEWHKWTJJUTENUFCN>PRFRFLFGJ\PI?MR?ACFNIWLCTDGUEDMPP?K>HAUE?MCHN_CEFKKRGPCKERLFLUVOM@SERRCMMJPSNMKGFLMGQDJQPHEOKA@E?JHGOKPMHDKIFTDLKCEGFHBCNMINCHEJFUGFGMJPHMCIFHIJGKCJKLPKKDPWHFLL>KGKGD=>L=FHGCNEEMPHAFEEZJPQEIOQCRBIPOEKKPTRI@^ZMWHQJONUOJGSCQKAQPPENFPLNMLCBDBHAKCHWLIKC>SC[LLDGNMVBJVLU?_LBOC=EEBMEFM>IN>?RFURKLCGNMQNDIFBJG@CMIE=HCHNFLPONDRHNKJQGFCNGIGLDUE=GTLGLMM?Q<@JHTKPOG@LINDKVHDIVMOGLFGPNRVOEFOHHCNS@CNQLIRMKGCULZM@AKUKQFTNERCHQHUTPIVHAZHSMKDVMTFNSG>RRH?VHELMGLNUAQOD@MESUZELXBOEDNDSHB?INRJQFPEbIG@SGOFNMGVHQFKR[JHHZEJPLBXCFJRLNEI>I[MUPCGNTMGJKPQG9UDKJBCPPYLJ:QFSI?WIHMHBVFOHGD@LNKILO=JONUNJDACTPXMDARDFRHTEJIHEXHHNNKXOV@E?RIUMSMWOJOOSQOHM`MWNISKHKIURCNIQMGMJFA@GFVQYQ>HNFMPJ>KOPF`HXPNMMVEHHD?HRSQOFCI>QHLSHBNZ[QFQQIPSS\UPKMQ=JPKPA@GA@SRYSUVDUHJRFECKKJ7AIHHHOSQ:BQVNKFAU_NIOOLJOJLFGOIFGQOLAPEJHVQCFIO9S=FKKEMHT9UODME@IHLSE?IDI=JDOD@NJF@DYPJLHEDRJMGIDL@HBFAFDLHKIKFIMTF@[CJSISADBGJLMD?J>HQFOLJBIGOAYHRGJEHJQHLFBJIOHIFFHK>ABLWCFGJKJJ?LMDRON@IIKIELIPDGKDFNFOHIN@`GKMKFEHSPGKPEKEA?BADLGFTNFMEA\EDJINPBVAQGIMGDKB=@1JCAOD@GGUHGDIDIA=NNCCCLJDH@BIFIP9OYDPGCKGGFPDEFGIMCFDJH=E@BLEH?OHQK?F?MMGA?G@KKCNFMDO8EHANHJD@VGEBBFH[JKJISDKCIGIECELOFS9GJCAOJFRLCKIIJUF@>OHCHMMCPOH>EDLMBHEOAIMFTCIBDBA>OHVHKLHLBQICCCJRIHECDLGFDHH?;NuNNFCH;DEJCBEGGJF>NGCBECDEIHJG?EMIFPEGRP>PNSHIWKFJEKOHQINP@GHVCwVJHBKG@PNFJQEQ6HOQPAIMIMKDENLKARGCGW?NFULF@@FZICGCPGIFPLIMGEBMKTG>LBI=IIDMGGQ@EQKHFGVL?^QIAJFOFHO=CD>F>JFI=MP?LBGAENAEPNGDMIMCGTML@B?EDONGCBLSHLHNEEAJIHOINLHEDOOOJFRIOCQOALJLND?^H?[CCLRBKENPJ>QFCGEHELfHCDIIC>JLM>BTHQHFIQ@JUNFQJ@FC@CP?JCFABZLACJ7LBL@V3KGBCNJNIE@G@IF5?FDV:?JBB;PEIIN=BB:EJ5C@9BBUG@G>K?>DC?H=BND3?RGKOT8DEWMSG8?BG8FBKTGJGBHZKHEMI?N2AH4?GM>BI:EBICAGYOEMF?F@EH3@K9D?GMKLHCSJDNQSGLFPM9IEKF:CE:HAKKEUJNTKQOKMFINGRGF;INPNMEPDPDLQKQ[VRINDOKJGMAHEHKDNKLHKQOQKDN;ZHSIXHMCOFNIQHOLNIQWEINHJTOHKMLSZNQaGFO\JGUPKIL>JSKJHEOGPFNMMNLJQFS^MEUQJQJLKQLWFNNLQJTLRUUWM?WUOCGHB\N@ZHEPOFQPDPNM^NJAIRZLXKMLFNZDDPSILMN\RHDLSJAHKIL?CEMLWEHSKK]LRIO\PGBEMBECFWCOMKKDG;LJLXIPVGJKQH[JTXOJMKIMUIOGOIWEL`BCIKIJROMQKNLUGV?RLESDOO@HNRNEMGGDWAHMH=JIERN>BSBHEA;;I9GRFOPHICJMOLBRQ:DGGKNGIJERDE]LAWEYLKJLQDAMQL:_F>9@XKLD^WJELASIFJGFIEJCIDL[NYMFEOF_>?P?8QHUKJCA?JEPFJKKFLK8L?Fb/G:=SI@JLMDALEI=ICFiA[ODHBNPICVQMGD0?CBGNHOL>LJ>RJKGOJMPNJEAGIHIFHKPNGBEZVBKBKFJM=JJAMFINJLJBEHODJFCAREPKDNFIJF>EJJDGOKOOBGKFMJRGDGFGKJGMFEEF?IDNIIIKHFAKEGYMGPXB=XIVCFJLHDJAX@MMIED;CIFFHBIFDCDDTIOJFMILHICRCLNLCFITGNMJLBOLGQDKICQABKNCMFBCNFDHMDJCFOPGRSEUKDMRVJJNEPKSICECMEHIDIQE\NCLIHOIFOKIBMPaORG>AJDHOGJJEEIFGDIKGMGGGGPLA?QEHLL:IFKHMPAD:J[N:RICSU5GAH?GAAQ1OKF;N@GB1I@BPKH>E^LCIFJIJFHC>TMMJ=D+,UIRLVJE?5e9EHRC>LFK=:]XI;ED@GE:D@1?PMAOEDNF?AAG?CPAP<@Q;OK9D:E>GUOHRIMQEOLLNGNIKIEHFI?EMNDFKLMLFLDNFHMFNTLIDGAFFMOSJBUKNLJHIJHYIIEKBFNFFCO@KRIIFGEIGHHKGUKKMMOUCGPFNDRMOEMEEMVGCHDLJEKKHIIGEGMGJQK@CJGIEBIUDFEKLNNGEMNOEEHFECDO?HJDBBEMGFMTI?RIMQJPGSILOQKNHMCGHWCDCJNCKAGMHHBIWHJBCLSQJHKJHCH@@IDEFPEH@JDGHJBQIBK`EJMI>EQNQGEPMGIEKGRKEFDGIBCGIILIDOKNGJOHHIDEZHFOEFML@MOOJR>KIR\PXHIBQLGISQHBYEDKA@NMFK;HHJNMIKMNHHTG@NKF6IHEXFCGE?CRLKQUBGBKCIHBG?UDAOH;DPIPFJOP[HCIPF?NJNFPKIFLJWCLLZGFTKFBHNWFFQMJBIHGEG?FMCIQILKLOEOGBIKKQ?CDOK@MFP@RKCLCNFGONDAIOPJBJQEJEOGVBDLH@LBZ?LLABGNDHI?VLPPJeFCG;RCLKGFOPMFJYQFu[HEOMNKDoEjQ]=GMUPCMGJNOIML9T;>=SDALOF`NJKc\CGKQINWDVFD?FoPGUMO@PDH@ACSURGHLMX:fJEKDHFHqLFGmHNHDGGMvA[HGmULFF`VONOIRESHkaUHhQLOqNHQLFDKGOMFEHNJMJKEEpHPGFGQNiLNIaBW=QAG>CJLGPEFKSiMDIKKP[GL[POLfcZQKd>NNDHIeKDZF>PKJAVHK[HOFP?kG_VHJIESSNUPGWIMIHRpeMjGP@PqMNABHbAOEJJAMUDCJC\B\RESG9:C@H>OFDMKKKLCMNHE;SCJJKM=C7GG;V@FAGBK>@?L8>GDJHQFDPD@U=:BLWIMKFHUFQLLBJCLRR[RQAKMD?OI?CFDMGCKM@>O>DCHB?OE@OFK>>JHFPDKDJC@BBXJR>FTAUNDDMQL?@DOLNIZFAFHLMEDHMGACHH=BDD?G=7CGGG>>;C>>I?HDLELHHOLQLEAUKLED;OBICESRCF?C>NLENCIHIC;KHHDK=CCHEACGRFKIQDH=GLCMN8GIGKG@G@C?EIIA@SBBGEBIAGD@X:PI?I>G9IGAJKJHLLEGNOIJHJF=DMB>HGKXQYKID?LTEQHNLMPIGJ>GJJFFPHKAEGHODDPBMJHWEBNVFLGKTRPBHIRGLUKQFPN_aEPFTQFETGEIIGHRPJFV=EOJGIEIDIIMPPNPKIMGMVEFLPJ@IGESJMGNXQKMAHIIBEJIJJM\JJJ8HHMHJJOSINIGRO?GLELH@DLLRHNUVCGAHJQKNHG?RCIPOH@HAEMMKHKOSCJHILFIGLBGVLGSXLAN?N=LHGVORBIKHIMLGHFJJIPKG@BILKQOLFJIFLPGMXOIFJKHGNCCOIKMJKIGLJKRHMFSDMMBNFM>>JILCQLMQJJIFGKOEDELQJFQMIKMNLQPGCVCD9OLGGG=LTME=SDMUHPCDMMBCQKGKE=JLIIAJDLAIKGHLJMSJXTIPFA=;THMRYITKDRFPDH>DQPLHEJEQIH@@MQWJGHHMUBYIPNOMFDIKAMLO>4KACDKRSFT;[BNCAVKLQNKGIGKU@PFQPMURLHHJJEDDJB=KGFAgP]DLOMD>HKCRAGHKAgCJUON?]ONAUEJFI?EFL>FAF>AgPJEMJcGPM@JPFIHHLRFRTMEKHGDS@HLCWOME@=CPIMFLPBDFAEHNLEDJ@KA?DHMLFJHMMIDHMFQLTNNAGT=NACOSHNDRTNDFHNBTFOBPFGFFDHDLAHKIJGLKHAVECIIMKFEGMJ8LHHIGY8INJEYEOIHJTOHFHLFMLDJJQKIJFEMJUCMMEUGCMMDIEIUSJHLZFKVIHRUOHUOI@HO;KCJKNJICNNMIKDDPFTGMNEOKGKQKCDCJNSNTFOPLPKEMIFFHEQHHHFH@JLLPIDBJMLJGFAKGCHJMQLTLMKLAY@OMKVRRNMLVIISI_WLDNRLHNPOJJ=KDQBMKERCSSPGMLI=HHMJJPCWPI@LCBOMIEYZCEFIIINHLQEKJBONPPOKIDBOAJuKH?NPHKGFBNOENNGLUEPNLID>EEIPGNHNWIIHONGSIGMRSUDS_KKALBMIMK>MC@SEFINkFIFHJRJPSACACCFWPHIFK@IPKCCAKLGDM[JGCE[OJJEONIWDEI@GJ>GEFHNHCMDPHMFHBUZDHBEFKJ==PDPGI?CSIASEMCBRKCNTMGOJLARXGTJHLKNCAFRHHGPJFNHCBDGBIXNH@YMN>LBLOQRHTEHdBMJPMIOOPDJFKCPDFJCTPMJJIMN;OHFLLPKDCIQQGJTD>IFBVNHO@HRKPRGPHEKMFKH>GJIM=INOIFSHDNQGKRIBcEIEASEMKKEQGEHTLNNDMHEFRAGEFKBTPDA>IGFNLSVILCHGLIGLGMDKNNIMENNMBGKGNHDGF=CRGQNLO?G:YVCMODPSEHPCFFQTO?OH=EDNLTJJJBSQBLNHCWLDCZJ_JKS?JIFNTBHAHKEOHRUMNDLE@O@UK>HRMBCFHDEPVCSKK[FCOSSMN@KHWBU>SLHYWKBOH\>@LNHERNVHJIFGFAIPJB=JE:ES8LE:aU?I?GHJS@INEEGKJDDLFMHLGA[F7MEMEGE?NKBGJ=>AEAKVHK=>L@;^BNDJHHEK=P?IDBCDF@FMKADYODKOANLQ?BSWANCGBKOKBE6NC?@GDRLLENJMMKQQQII\BMX@ODCFTL7_7IJFDDHSJIFLHPAVOUDGQMI>B]LCDFCCJQRHVLKKKIHJCHEFVKEDBLNSSHIJKEBF;NFONK4LCLHPMFKJHZEJKSCAOI7MHPIA8GHB=BRH;RNJK>MDCOGPJIGNINK@FVLJHBTWGNKHHO8BICIRSLIIIJOJEGBESDE>HFV4EJ@KDEHO,>GMMSHSCJLG?GCLHPV/DUF@?=NFI;BHJE?BBLEN<@KARCHMGLNXPPSJKJQSOTDRIIMPSHSEDLPAKNKBRFXDJGE\HLUO?OKGOQRTXL\MEYGDWQFPJQsMOQRRIPQONE?QFLMULHCRNOINFSKTNUUNVGKaMAYTIKOIDGSDKXOTG?_JMHTQTKSMGNIJGGSXQMKMKIcRPP[AQLJOQNDGELFFMMSMKMOMPIHMQKFJSGKT\GGNJNJPBRIMDNQHUNDIKTITDGHLIJOPPVUMQXKMEJQJQMSVNIUGZQFHFFCR_DDFHB]JORKJKMZHOLNPNEGMASO\NJOdDPGMCJHE=?CJYJJ@MUYO[>PMPLNCGIFLKXJTKGRIIOJ?OIGE[NKUIOBALDKXKPMIZMMIFLBLKJDL@TKHFHSOGBPJFLE@OGHFHEWEYTUPTJKWLHd=MNK`GOFHDEIFTIHBYSRANQKGIXRJDK?BVG>SJN=RJLFJEKNN>LI>FK@OBK@GBKI@CiBI=BMHCD?OIBPGBOJL;L?=B=9PHMM;EGHCLKIFR5P@DVKMC@EGHCHKTB>H8ZFSETHHNGGNBNIG@BMFGKCJ?E2:QI=AHGHID@JBIQFFHLFBNE8HE?MUNCKGNIMQO?AFFHTICEEDABFMAQEKc>N>BRHKKFN@NUPA?FMGMEUFHII?CED;CDN:AEYNGAK@HCHPBMDOOIMTM<>LHMJ_=P>LNS??LXPQ=UGHVNRJJWPIMIQJINPKJKFNFOFNHHFDWKHOIJHGRK>GKOVHDONFGEDFQKNNLGGJ?GLLJQKPEEUJHGRC@VKKKFHJMIRLMIIMGREHKLHIFBHJHF7LDMRINHOGGEEKJJLHNPEQGAJFJMHKPMOLLK@JFEFLZLDALJPLFPIKDEZNEKBQOLNLI;CRFL@EJFI\GHCKMDULGIJQLMJMJFLFFGCHHKB;FKUGKKJGLFHGGFQKITFHKPKFDIMPJKFHGGNGKEKKPNOIUKII[IIHJEKKKPHBECKLGEGDNKFFKYJFFNMG=RAHNDGE@PMZHKQBNTKOINGTCHDGRJFNPM^HMFNW_BOHDZIGLELMTIHMPZLNIKSKFGDFGFMPBHDLMDHRMLFDJGRMEOMMGSOAM\HPNFGIR?J;MNFMMEAFTGVHIXRPLEEPDKJGLPIPLLKGBLGHHEFIM>NCK=KRLLNADH8G@GBRaPQIIGZGH@KHJKIHQPEJMEFGHKPMJRJMGDHETMJJHDHFQI:JTFQILN?F?GKFKBCGHIIGOCM?PKCBHMJIJLLR;JHLEDKDNIFHEBDFKREMBHCFNPMPMPNGCGGLRJBQPGP?MIIHQLROIBH@OJIOHLGHHJDXMELIGQHIIJILASNJLRB?IMNPKEAHKOKEHHDCCICLQBFSIIAFBM?JQBCFEGECT?QBOZJFPTRNEDOAWYDB:BORMLPIFQ>IKLGPE@KPSMQUJHGEJeKDBGF`HFE;NHGIDYLMJHJPHHLNMJWGEPRRMGBEFKCNAH?W>CNGEH^IKFCNIFUHEGO@@SCIIMQPEFALMDNOGNIJVGEPAFEFCL@JJ?NKBKUcPHBEHI@NPVERGLEGGGRFIF]TMZKTKEBFOXMOMAFNOFNTGLKROJIQ>DDEIFIKKNMGABQHDGFPG?]MAXLUG[FEKQP>E?GHJHHPBQYFIIIEPGOPEWEEE<>CNGHIGRCBJUOHEE\V@AGKWBL@SKLLKMHKBLXBAC=QGJ?PNC@NSBALD>OAKAPLEJBACECP>KGKGWKRJ]A?FN]P=;OMOPE=FTGDIL?=DDOIKCOENUHOECBDTIOI[DPCJHEHOHJK]LLA@ICCIKIS>BSFLAJQNOH@PEZPLR=VG`AOTDDY>@NKWIOK=IHDKMPHNMJGEJI?H@NHIKBKIBQEQPEKJINCOLKFTCLH@KLGBJEOPP>QCPIGDKKR?EENI@Z??RKEDDAMIOBQJFQ>=LJPK>IFASEHQEML;DBAVOICHJINJKPHHFJ;ENNOCIBH=LDKER=CCHOQDACNXPPDFSBNEFPKQTNLOGECMCJERLTG>IVL?AOMGBGLOPHIA?@QJOOLFCRNE?KKBIIGHMKMJAEILCHLFLQCIASMLK@FSJ>MDIK=GCFKIJJ@KD>ILDGFHJJL@ECIMFDKWDPKFBOOGPRAEM@LGODAOLJNCEEGGIDWMXTHDJBJFGPKKFJKUMRFTNJMKOMOAAFDNHLKEFDGACFM5IFNQCFLL@CFEMRIMA>QI>F>ILPNIOZEECOTKJNLMNKHOGLIJ@EDQ?BBI=BKLL@GCPJKJEFBHGGHR@=9EKF?O[DCHMIHUIGIOS=DDEGFGNLIRECJFGVC]@IUNAENH@FHISNOSCCGNHFBAOLILGELEKJJIN:AA@NOGHFDPDPPBAACG?FI=KJHDAC^F=IHEEBDEONQIDEEIB@PPGJNGPGC>YLEAQFG>C=EAMBLK@DQ?GJFBHDEB;@OFSIQDKGQB:GYCFFDDUPIPGJHN9JKEALAFLDGELMEJHEKAKBLDRGIFFAC?HGBEHGFFPMFODCA?FBDJcVJFKTH?LJJKRHBDCKFGFAFEH@;L]IdMHFEFMTBM?BOEE?=JDQAGCKNGRYGNFAHEAZ=BLGJR?IQO=G@]EOIKGHHCFLL@XCBHLGEBI>EMIIS>GA?LGRMcV<=ACSLFBM[JAoCIRAJEPIWCQDM=MHDAGXCONGM;C;XKEEC;LPWMQKE>HHHELLRXJESLLGFHHENHRFIK:TO^DD?BCG9BBHIGCMVMQEIAL>IP@ALC9LID?JHMSCKHILNGSK0J?JTHLJ@QGGGOJPJHDEFQAUIM;HIHFHEKX?RNIKEO@EA@OBMDJLBFKIJJLGRUXGN?UKJ>LCCLNDJYK?NA@I@?HIGDEFOShWFFJHIMLOJSANKILDGH4EHJRJNQG?SBDBTDBHALBBJGFGOFEKEKFHIN\ICSOJWIHDLHHDNEHJBHO>IQRMD@C?LR@DQPEJKIFKFMDGOQFCZHBFHHJI:>@OOLLCEESXOJQGH?JBKQJAJNIOKAKNIc=LQIFEHLEL\G?\NMIBO@SPPTJCNCNFDJKGCBGAKKF?FEGOGLTWFQLRNIC?GJIGJQBKSOFRGCHEIREHD9TI?KDEQOPFN?ELVLLABSPMDCJBHPHGJZN@=CGTFFINIEECJVSGBGJ@ADIVGPWNIOADLLYHGBBK>LN=\ECMOJMFPHP?OH=GFLONMJIHHHEGFPEQND;THPMPPRDXMIKM?IPBXVCXCNL@HH@OBHKJIJDKDJ@5KGFLFMJM:FHFXDC@KQHEEOEE\QHQMJHGEHPI9QGKIZJNOMDF6?P;RR@IQKRGSMTGLDJYC=HOGFKLBIFHPTFLOMBOPKINGMLLDNEOHSFKL>KKJLQKQKDOKHICJL:JKJEJQEINKIHHCNAU@?JG:PKD@XIQRT>MQ@FCIFHLH>GGDOXLQGJPRJPQI?OLJRGPWGLR:JOBQFFJDDSKWGRVH]NSIBXIINQJQJ=FPNF@@LVLI=KPWSDPPHNOPWHKNEJB=JK>KGGHBOKBKMFFHcG;GMKKOJGICNMBFZPBORIKKNPBPIOLQESgKJSQMLJMJYNELFNGQVALBLHHP>NRDDHEdGHXHD]NHSFICFEOLCDHGAPkLH@MDLQVXFOK@KMUCHQLPDM@IG@DCJJaLKPHGIS8<`GCHHURQVFXON@HDIHMC1aEDHOKBbKL>FHEGSG>OVLWQIGCKYEGHKECNMDHFGIPJCKOMOEKIDPGSOAHKRKJMDFGCLDMFMELIMGGJXPNKG@E?HJDRLLRLJIFAMPLFIQBQFKBJNLGKOVRKKENLEYLLQ@M@NMkMFJBF@WQLFIQHIAGLJ>KLCOLDDBQFD>@NFQHPFKHLQDAHAFLHGHSKIHLOJMGCJDMPGFLF;HEBIOJXPCAG@JSMDCDFBICFIBOHLGINHEGGHECDFGIBILOBQELKABNOCJBDOHKFCKFFONGCFHAGFJGBJKGLCLICOPNLQNNJEECAKPNBKIGSRH[DWIMJJKSBJIGPRGNKEVYLEB@QTAJCDIC@BDLZ@WHMFUCXLIXOIBBTMSVRGQDKNVQRBMMEFMGGRNE]UMGEFELHIRSUF]AMKAXGML=CHEKKJLSIMPQFIIUIGMGODQHYXLHRHWVJKFMIAILFZOJM@NIIJDFJHIAFJPKAM?>NCGRCDFBIJD>GDBLFSTBKOCHOIND@R@DLHNOPCI?RENFDPB;FVHLGLDFZAH@LJOHACFNEMAHAQUXFAIEJ<>J=XAHBGECKXJBQHEQMABKIQKECEHDOL?ECGAJKBFF@H>HSG;ILBMHGNKLLGHEKHOMAMFIBK>KC?LFNJPLLAYGMKNLBJN>NDCAIL@EK\CAKQLODPJBMNJDATDFOU9FIJLIBRLB?JHIIACLOLF@KBL?VMMAKEEFDLCMINLND?NJ?EWQKQCA=KOSGMBLLGP?V?EMLAGI?HLTMBHFHJLJBE@DQHGT>NTEIRZIIVKIMLFGOJLRPYI[M@TOZG;AFIDOKJERGGAHUD?UQDAOJAAMDUSEJLPUCPPCJDGIEJJOOAIIH^GZNJKIHONIJF[UKKJVHP>XCJIEOKHLHJKOEJK?G@PTK[NO^TJMPDVFSF;GYMEJTTOaL;GNMZPCMHMFKN?MS^_YGMHQUFFHS^SSLV[PCEHRVZILMHFMJJ?ICZTXNE@PELSH@NFYVLLFIAFKUNGNIGJJNSXJQBAW@PNJLPFSFOJKTKWCYALG?C^KQFGETLORNPQIMLV>RHIOUKMGMTMOKMJENKLCS=TFJDVPNS:MMQULZHFOb@JG@F>KKPJLJPSJ_JMKMP@IJQAO=PKBDJIRPPHLLA@JHIONLZR8A>P[DKWSWSTORRNHYH[GPAGHMTJQGOGESNJ?IGIIBSWGRKUOXOKBPYARSMJHTHWLENCKJAIIDNMMNUh=ATLMFJKHGVNX>BCM?\YF\HRAHEAPPLL@LSCD=TP=IJNA?TODRNN[O4JPG=BAeCKGMSDTPKC[BIN8W?NN=OFPQAOLUENHK@EBROGDO_FINTFD\O^EJHBFFIOKF]RFKYLTB5XLQK\FCO[JOFUFBMC;=NTI9BK?MFSFNRLKNVHDXD^P:IB>V@DONGK[GDAG>GQEHC?KFFHY@CAABY;JHKG<5ZJD?LEHMVGBHKIHBIF;FMJ?LUOE?EB@D`MG_IGHDFNG?S4CBCUKHNS?SEPHNKHBEQCDWG]DGJLJH@LCLIBLFDMCKJ;GBJD?OBIKEDF?M6KCF[>AF@FUJ;=RHLBIWBSJEU=X=BMEKGXJGMPHMFEEB=]DA\>EI@SEJJJMPD@OGJLLIlWJH@VPFKNQPLHFSHFWRHYEACZHKHFEKJB@KFOVUVEeYTDO>RLINaHYKH?AOU>ZDHLHBOOQRLIJHMLRFCBDTJHJLlFdFCN`ZFAFKdIAUANMXO?JKCSVSRHRUY?BIBQGfP?RUSG[MOLNILLCB@IBFJDC@CI@YSNGGJRI_SPOGFPVMREJKOHDIHQV;NCOJK:ACOSOETO@HZANNHIRGDGSLUUFLPTVILNSV_QOIQITQGILP[MLJBCNIBTJJKIQLEGIMcOAQTTIKRJRKLPNAF;N>JIBFJFMHMOEK@EEJXOUHQG[\PBA>U9HHJSIKNHBJNEOPF@KHIWHCIIPBCKPLLDZJIBI@HKHIBQQGDMGFKGGFNCQIHJJMIBSJFXFFPFSREHCHWKMRMKA;OLIQKJKITQQRHCLQHLSIFJMCG@NFGHMJKTEFMNSMKKPIFHGDOWO>PIJE?@BADQADBOOKE:PAKGGTJK1QQRNDHLFF`IXJIH=N>AVPGRRMRENCiJFCCWY@FKFMF(UNFGF=GL@DBGUEEN8EEH:DALBED@U>N@<>EEET0C=9LNKA?@Z8D@CBCPLIMJIXJNGNJ=ABE<>FOKPABLIJEUFALdCCQUMRBGSWJ@FGJQI>FLEHIQF:9>b?EXKUQEEJ?G`IGPHK=VP@EFLDGEIFLLMPFFXMHUCF?Q9GL>PLVLJAUNIUARHDLQDJ?RZHF9GWBC<@;IF]K>H\OYJFXKMU=FBJOP@BFLKPLGQOJN?MBIS@=;E[GKUK@NMJXEGOBM[LGIThJGMH6NQKV7NRLNLOPNNJTUCNVDL@LGB@ID3RDEAYVOI@KD@HUONBI@AIJRHMJKUTPGRLN?0>VGXDNCO_LIhLAHQKQ>BL_QDJDFGIMLII@TBDHKLK@KLOELWDGEGJ[;JJPLJCCSD@FBWIGGEF@LJILMCGF=RFE=?BSO:LFCAOJEDLAFU>>>?CIRP=LLLE@?UGSECHDPO:NRINKELLM@HINGBOKDGNP@MHLMGQFJI^TMAU[SDZPC=D\HFKAPEFEELYE@BHHLSD;ODSSEGEmVAg@FDD=RHLAGMFKHJOFLX;]]\NK;PLSPIEOPCNF>XBYL>?EOCKF9P?NLOJ84IGLGBOMLHBDNFAPGUDSVEIVQ>SEDIFD@AILS=FIfCKO9ENEJZVM[TIEC\MHG;REL?IHCQUPDDDPHF??JOPBKMOEH\HFRX_?KOPGAHEGUEMHCFFJEBCMQFQ:BMKKRLJGGRQDIUQLPINGI8DFFHRMMYID?G`ZLMIIQHRIIaNKJAFRAIcZSFWB9NDSIDIFHFJHH9DXGRKLWHDEQ9LKWCPIHUMFDLNLCAEKLGIJKDDQ@MH=JDLMKPIIKMBNCEPICGDFPMG?GAEBWIRCJMRKZHSJFDK=JQPHKMESCNVPEC@FJPEI=LGRK>NQ:QIGEDJOPNIPHEKH>I7GCWL@R7GOJIHJVPCFLHGHOPB[KEMHTJKGJAOFLADKUEDVIONPLNG@DGEJQKNOHOCJP?>KBSFFHJKQGRDRJBOBILMLJAOPKFIJGTMJHSOKGLLJVEWGMGOWHRKBEIPNVUADNNCHJQNMGGMEK?IMGIBHKIFJJHNHHSO^\SJMFHJJDCTI@KLTKILJHBM>d^CNOFHLKGGLDIBA_R:ILHDFJIYONQMPEOWLJTCLMPWHORMFNKKLHPJEKBEGPLQBKHMLIFOIXaMLBOA?KYNFSDCFPMJETCDIKYLACF@JPFGFBTLLJHPRGO@TERFIEIKNNHSJETHFRNNOJMCQOIIQCHCGWFJFQQCQLINLKPJEPEMJBMK?HKVS[@MOHRJKFNIONGVWLFFHJRYTEBKF?GIJMCCNSFLIHHJGNENGHBNP?QHRGJ@HFFIGMSJDHENFLDQLKBFACRNF:POLO=JUZHC>WNOG1BKDLNPPMS:ISOAJHF>JHOJJMGBBGKPGAUMJTJHNFTNKEVQMJRR@UCL=@BNNLC7LDWBCPIFK?INUAC?KGSEOHOQMLBAMLF8ISLk=LJZFYKIDIUOFLIFGHDHKDNA[HZKUKJGFVH>MMGA?JFDPMSIONMIMAHJGUJIQCFFJMIRJJDLJUDIQFBGIFKINDFFLLCFOLFJHFLLLNSHHNGEHNOJLVQPNMLKNMPKFFJXIKOHUICKMLIDDHCFMNGHFGIGMDNNKJIFGDEL@LHLDNOPQJGEOODLKM@WGIEJJWJHQJFMELIGMFKKGICGLESF@MZGFJMQDGKQHLN@HKKMPJGEJANQIEUIDIKLM?GMEIJLNWIONIFKDHQZJJOIOFRJDBMDMNOJBJOEFSAOKIGHCIICEKKVEGFUESJPMIGFAQDSJCKOLJKPBGEEOKIO=IOGGDHILTCFGKE?COWQG6I?BELRJ=@BBDQ?KPHK=YFFIJBJBJFMF?GFKOEFKEIHBD?HNHECXCIDA>FJBBEMHAEIICDIEB?>G@JHKMFLD??YNNHDTH@AJNGRFONLDDI>FFKF9LKNBO??NJGUPELJNPI@L@PACDFSAIDOOMD@TORITRHQIHNOFFJ=JHBDC?@LQ@:AF?NJLD@XNJRH>IKJR]DGE>ODMLINUPDJPHAKEQQGEDMJUINQGGK=CHTPBF;FJKNHDLEBIKP=GGNOLVJFCIGB@AKQAIKHIKKUWFEMCCORAOIVFIQDSFEAIIGCEODIIJM?GCHPWGTBEDIHLHQA@IJ`@KDCQASDBERFJCJDLGJRKBJFFNB>JDHQGIY>IFK@VFF@EJLJAGSJMXTNPHME>RYFFBNNIP=GMAMRDRCADEVFLGKCLYOIINHLMGKKHANPNG?LFRHKDFMGBGBPBLEOIBFJ7HNFUETMFGDFFAIGOSMLRLHCE=GIGDCMFHIANNLDNJGGJFKMMKIHOQCGKFOEGMC@JELLDHBVRHOBKIGDSJICHHOOIKFIMHFAHJEDFFKPEK@LNGBDGGCLRD>KFKHGPQKFMBLQJHFCGIAPFAFJHAFBHFRCJNDQJGFHFG=?MLDTJ;HLR=IRNQLI>IKCHFJ\@KIIOOJXKIONFMHJCDAFKBEOHLIQCHEATHEHENDLFKPFVHHMJHSDQM?EIENPJJFAEEKNJLKFLKOPHDDEOIFILFNLDFNGNVJ`IIGRIGGJGKHJGFEAJINQDIAFLIGIJ?@HLGA@QSNNKACPLJBERNOPIJJIL?HHHNN^KGKNDJIJJNGQEOMJJQHI@QFKHBIIMIKDI;OCEIJNMFB?XMX?QQKCJGKKZRE@WCLBKBEJVSGLGCPNMGLCQC?PDJKJPJ@FZQIHLWUSHHJBZKDEUHNNMJATJIKEMLILDWLFJLADKH>FLIFDODJJFARKICLEDLFOIABHLJMKGAJ\QAWOS?NNDTLRCESGFGZPFKCFPJUGL>UPKL\bKJGOIPLJINRCPALJLILQP@OMHIHOHOKJTLVYMFCLJJJHFOM?MLAJLSHNGQIIHB7IPIFOQV@\OODDHLJB\MIWJIPUP>;LOHAJUNT=LLFNMDRFUEKLKIIUBDEDIHMCOKNTLMDEIIVQP@KDPQPOCHKQXDFBKGH_OEBDILHSKQ@MNSCVOEJVRKVQKEGQELKXNKJRMMJFTFPFFDOH_=GFK@HQJKL>KM[ODQJIENMHBDGPMPEEIKIU?LCXQXHBIFL8JCFMK@BOBHQNGJGKFVKDDJ9KTMHCNPLFKIGMJ=ZNKPVKSMTVOAKFTPTNJ@EFSSRLPIERPGHGBJNMMDaNWOBNNBHKMFJLDJFDGXRDFEDEDABFVJBPKHJOOPEJ[G;OKKMHBNSGKJQ@PIMOFRDO>LNQH=EIQNEHNMNJELREKXWQJFCGNEOHCMLIKVGJIMaFKQIJLDRDQPGJC?JJLGICCGF@MBLNRLLDDHEKPKCV?GOFDMJPJGQITKIVEDIAPEKOGEQNMOEFVBIFEKCLJL@KJ=RIJH[WKHEK@JRDNTBDGCEOIPMHGOGDVHEMBLBHAEFFSKL?OHPQGIQOCJHDKKNLFFHNNBLKFLHGLGQFODPNKDLIEJEFLE@C?DLK:VFBQ?JDLIEEPJIILFI@IHOQJEPKQ@GRLHJHDEHNNJICOFMNFHILLDDHNJJRGGQEKQHNCNSGMJIIILGOTJMFJMLDLHQHDKJLB>GQ?HFLJEGEKBALMBIDFIAIIMQKKCHEFDTHFOGGIKHFFPGNFNKKKMMQLHLHJBNLPKKEFIIJICFBMVJCSMJGINCDNMMHHLJHHDBKKSLYIPRHDAIOHNGGJDEMFCLEHHHGHIBLCFIFWKWKABHKLCHKK?LMAOZEHRMKGEJKTJBEMLECFILEFIJDMBHHNFWHNJJLNMSEHSKODHD;NDCCQPKOMDPKOGCPRIMFDIRHSBREPFMOKKAHGGMKFEMRILASJD?@KIKMSWBJKETHIHPKCLIHEUKMLIDCI=CARMMCO]?XNE?VAF@GBDHGLOLJ@QS@QJINBFFPHQLNFFOGIKPVTLHLDDOHKRRHJ?NIK\@>ELNBJMHETNNHHMLBAIFIBHOEBI@MMDNSKEBPZMEKMERDG>1IFAORIHBLR@TIHELH;LPNILE@HU@IIXNUHIETJ_IPSOKGJAPUMJGKO@LNLTL@LCGDPMQIVLCPPHUKOIE?DOSTF>=AGGL@S?PIEBEHB@KHEIFFLCLFWFIJ[JLZEU9LRFFJMCLFJFIFRFIHDJDQ:QSIPCDMKKWLJJJMSGMJPEFFQEWIGBCPILGRECFH>CDCJBBCKHgBORKZEDE[jPMGVIEGQLPINOJYDBMAFPBKONGWJO@BGFFLKGCMTEMEGZJMMJJZKJFSIIYPENJNULGGJGFVPUCHBCNFF=LVFKDVHGIPGOKKQEBLTIOD@DLDKKEHBJPGDMAE\KDOAFHKQII>=KILJMMGHMOKRIHGBJSFOFGKFGCGYTNPGMRFBJQ@OWLVJMKLIB<=MGGMYDKJKUJYLMMFBLFLH]@FGCAXqjHDEQQKQMMIDJJOPIFDAMFQOSHMHGCDJDKGHGJPGREA@KPPNG[HC>OIJAIFJFIEK>GGG;?J@FODJ@KLDBGPBILQGHDIR=SKM@TBNKLGEIDGHJHBLEYJLHIGQIRHEQLACKIHDP@AEHQ>G5SHKGSBNG?KDCELWJFAJ>;QJIIEEDBCHEASIDIDMNGIDGJXMFWG\MHIIH=KPKF\DIIFPSD>DLMT?H[E@INEFJD?JGJKHKJDGFOPJHKCLFLFQHTQFIAEGHVGCFWF@DBKBKMGLWEAKHIEEAGFMKNDBEBDJO>@GASIKLCMGDIEIGH=@OEJ;DIHDJGIRB@BKGKIBEJEIMHQSGHVQFLSGLPFJBA;KEHOGNLGMABML@RIEDTAFFLHGAXIHXJLJROFNECFMBUBCPIIFI?AKLLJIOUNGABBFCQCKBLMOOEAKKHPGFIEABMIVDHTHTMMIHHEH9DKBEWFSEKNQ@P@IQD=eJOZMPTLDPKFE@EDGGYDAXB@QSJ?NSKCKMEJRMHEGFWKL@IBOPHKcBQKE?IIMKJIJOVDCRGWHJIGCNV=RLCPNJQ>BMGJIJEGWHC@DDOEOGGLSLJQBDFGCFRKGNOCdFDB@EFEKGUGI>EFHDRELPLGNAENNDPAIIPSSCMKVHDBJJLVJD@QGLCD?RFEKUWHK<@D@FDDGL?OJJOJPERRC?HMTOKQGIHJOBISJJEDPQGLMLOFLRHFJCRHFAM@EIKFJKDNAFKLIVDBGOOIL=BIN?BOEUGUBHLP@XOKCNLBIBDG?ESCDNFIUOHOKLZOEAKJ@DPR>MEFHANMFUGESD?HGLJIEJHLLQNOGCMDKEES>JGHKDAGJJODCSBFL=BJAEHJGFONFAPGAELGKKBR[PJYGhDJJ?GMLEDOFGHEDKJALRG\FLIOKPJNQSIIFEWIDMKW?7PNFHNKT@BJ@MFH@H8HJLS;CLMM<FDCNDDAQHJH?OIHCGDOMDP@JNM@C>JLCMGT>HUM=@FBDCHKGLII8;AHCNOEFGCMMF@NKK=LO_HS@FLOLCH9MGARJGGI@OKFKOKSG9LFE>FI?KCCYLAJLUIEFFRKFIHNFI?H@G3LCVOGLGNGAE@EBCNA?>ICBQFFG@DMOM;GGDJCFDGEEQqDbLQIJHJPN;HK;AYJJGJGKGPF9VB8GG5RR9CJKDRCCEOCEYJ]@JHOPHUBC@FWQMJFBWGLWDWIEJBDGKQSHNQDEKIIbMGGEDWY?BK>HLJIOWNLKFSNSPFVSCLDCFM_MHRQHCGEG]UQSUFPNDIXVDDNJCIIBOKLCGFDTGNFCGRVETJIIDLKRX\FKOHJELLJKKLONB@HBSJ>IQYU[@YIMFRFRGQHMOILFNRKTEL?EDJFKUNCKFGGGES@IN_WDJKELGXFHJBCMGOXA?NPEGG@FFVTdMVHONIXFGJSCIEJLIOIJIIQMKERQNRFPDDBSFEIRJZ]KXCLTM`F[FIJJELICFEYDOOFNH9PDDTJEDDAFPKNSRKQKCJOJCGCN@GFBRJBLGGJFJRDOKEGLFHLF@OKTNUOFJMFFKHOCEOOMNWKLHKOFKIQBHHBHOHSMCAQMKPIPSSGGHRHFIIKLDIMGEJGEKLTEPHKGOLKOGGHHJFRKNGKJGNRGMKEVOPDKFPJ?MLKOHLHBPJMKNPNEMHHHGGDMSNIINQKKHJHOKJNIGQGDJDFMNI>ROMKNBIHBFF@XDNJLPDCIGQDKFBCENHODXCUK@HTGQRJBHHKGLG>KNLCEJLBPXQLEQINLKCDJHLKCFIGNCLHPGTDIOGDFJFAGKHJGISDJBJJITMPKH>GFOANAJPIT?GOKKLNOGMPMCHCRIMAJDKKAKIL@F@NDQADQF]HHH@AFJOERNHGDHJLCEHKMJGFFLIHNGIHIEPO@GDLGKJNOEBAKFCPTKH?GEHLKIVA@DXG=QKEHYHCTNGSFSBMIIDODSPPNLRLPFLEGHHPDDSODEDKKCQNJ@LLJRJCCMJFJA=ISNAHAKGKMSFAK?FCCINJSLB?FMFKSFPOD@LJPQ?NHSKHGJALKEPHHHLPLOHIEMXKTL>ADJUEJKIIJLPYSFOSMJACPHIIJI@LLGKBMIFVGMF9ORHRDLPLEEFHINCFJH[NLMHHIODAKCMRFFJRXKUREKFLJGIHMGMNBGIWODFMVBKNPNVIPHALMGDJFNGIOOQBNMLGBHGEDWMIJIGEEMLGJOKIRN@bNJPLAIGHGCEMOFLGHEKDIPFIKHUFJGLMIDOHNGNRAPIOMFFIOHJHJOLFJAJFPNCNJFIHMNOKIMNIKP\NDJHSPVPRIDFDDKMINDKGHOLJLLGHPYIJDLJKGJSNOMQ?CEJ@HJEGGKFEDPJCIFGNFQAKHTFJMNGHHHHCSKJNFCFJQLELKUPMEDBMRQOIIGJNPHHIBJJ;NHOCIXLJMLIIIDQOEJIKKJGLJEMGDMHNGPJOMDHFIDGIKK@XbMCLKGCPGGMIFJOKOUHDQLQCZNIOWDQUJVJGLSINPFGGCIEJI?GLDEJFLHGPHWRNROGGLEJJKQUMBTHCWEDFTOHNKDIJALCPHINSFARLOMFZLIUQNPCVAFHDDPOIR>IGKFFHKXTTEEIOIEFYRXSDPGNFXODIFRNEVDFADHUAHLPTGJDDGQKJSNANLHJMCG=ZGCC?LLFFNQFHIHMHGNQI?DAIQOHBK?GSHL?NBRSPDMHGFPANFGHBD??MUOBEGJF=IAHSV\JQFC@UEKDQLIHAI@VHNDSSJJMHL=MH^MFLRGDSFAICCKA@EISF=GNGN?PRGDTCLMIEKCPE?KCLJR=HIULAKNHPGFHODDGMNKVROHKBICHRMGBOFLCHURL?GSAGSHC?TKK?IFH>EARBPEEFHLMKIKSWJTROWJHOJPF@GGGGEFHKMPJNKFQNDML@DA=JL@CIEFDMDPLFIHAIDIP?LEJNCLI>HMFALPKFJM;QE=GREAMPO=ILHXFDGWLOGAUNQDLHKPHQJDNLLOSKIIPLBLIINJ:GJLVFCMCBBE9J>EJELGIEJRC]LMLMGCNKMFOCJSKDMZHJGMJMM?GKLIVMLXSE;B@MORIS=BJEO?GS@F@GFEFD>LAGN@DSBEQLKJAQEJQKPNREC=@DMDI9EP?OJBO?AJVDBDLYDMEM\KOLB>KKLENANKHCQI?MLCE=G=BFJDWFBIIUFHFLIEFN@MDHAMFCCBFDDJPJ?BUNGQRC@JFGQNLHD=?CDG?GDOP?JGCFG]VDKEIFGEFTPIHDAG@JNGEFMBOESHWMC;UB@LAPHEAI@O@K?JFBMI@QIC@MIZIQLKCEDCN^GKPVEM>FB[WMCUEPIHHAWHADDKGJFP=?NBKBOPGHMGGRGRJFQVEASV?RRaD_Q:FHGQUFD>FOJCRLDJTLTKMGDCFRMHMWGIJ@ENV?VGV>GKUPULBMDIIPFNSPWKIAQIIHQK[OTLE?KGI=FZR\NLKSNN>HLHF=PGJ;MCVYeENIIMJMNPFFJBADEEEE`IUIPGFKBCKQJ@GGRQSNIC;HGO[HFUHIB;ES=M?DI\V[K]NlMOL`ECN?JDUFD^HQPOZBCHH\F>@XH:NVN>NBQGCAKHLIMAIE\DMJOLILMUAAEXPF@JCBJJBFTHSA?JJJBAELIMLK\HIG\GXQQMGQPCDIDM\DMPJZKQVFMNFQMLKRDIKTSHO@ILJEIEICKTDFRJJPK@QNTFNGCWKHRCCRLNXOIISFITIHFHJRYHB^M[QI>IPXEQOLI6QMFCDJJ@KBDRGcTJGJLEBJBKLKIJJAUOSARGNICOKQLOWMRUTHWIKPDC8TPGFHOMRGHRL:IJQMJGOSNHE?K@DFIKNC`IIKHCN=G>RKUMWQGVO>OFKFH9O?jFQKHIPKE@PBGJI@PnDJLILSLNWO=JGPJLHKFHWJFFJICBQCCQJLBFZDLEIPIB=NPBERILTGDFIJKKOJWIFOKARHHRTJGMNGFMEPIF?KEJGOHDKFHUFKIJGD=GJBCHIJGGISJLIQ@DG:HRP?PJNJPMKIIJ@PKGNCKIFGPJMCDDMDSJIINHN@LDRVLLCHJRFJJIBXLHJEJKMBDHGBLTI?BINIIEIX@EKMHDPJKHPGAJG_=AIBPBJ=J>MIAG>BACHJBSG@EDJI?JRRGKBIOFCPUVTN>UKLKAGHIEOWRGKNIF@>M\CKMENCMFLUEP4FGKMIJIM?EMMLVKLFAHCKL>MPLMOJQHTE?JD6KGQATMNE9EIKIBGQBQPNNBJEIQ>FKMCGBIHFLXDIEQJMKGCCMNLMCNGTMMDLMFGILOTQHGMOAD>N]AMHLL[PH>KDEKKELPFKRQKFEJL@OIB=N;TPOQHELIOLICHNB5FQORPLF@IREOMIDEKHPOZ;GM>ICGJOGNNE?GN@OHEHHIJKOAUH?GIE@LEFJ=BAGQGFQBOONLINOMKPEKBXRHR;GIP>JDNSJ?NT\@ENMBRAPEKIIHN6Q>UQGBDG>aHMP@E@>MYXEHM]NKWHCBJJIAKICTIAeMDM?LD7MHNHHV7EWOEAEHI>FF>KONL;]KGFKWKMDB=JUFELGLOFIT?UDMSH?;>J=K[HS8>BKIG@MH^MCJPPJSGKJCNJLELF<@QGIGPGMDIM?KADEGILMPUGJO?DFAKULLEHDCDNFIDKCIBFXIB;HCTUI=HNARHMDL?@DL]IKNSLJVDNERKG]DOGOMIOGWIHGBZSOPAPD@UTHDHNK;GLLG=KPIHIL]JMFHPKCGEL=KKHDIKRAAE@LMEGOLGNLCJEG;MSCKKE;NP@DJEJPKKJIGKKHIMSLFEIFKFDINDNMMQEHGEISQBPNT[EHMTOHNSNE>HHHNB@GKVPF?JBW=?GKEOCJTMJEAAKBOIEPKBHTR69BJCGKKIHQLLMMSKHNPGHFJJK>EHOI^BUSEIBMKJPEWBPFEOLMEMMEFMJMMQGAPRKDJLLMMBHEAKNEHJHMHLIHNHISMQMJAJQKNOPKKO?FHDGN>GKDMMBMCGOKNPIGGDEAI?PNHJFBENHHORFQJHNK?LMHGBCBFE@DHMPKLGBKDCMQKCHKNOGDIGLGHG>NLULNLFRMGGGFMKJGFRJFLHPRHHJGPJD@H[>OGIDKKJMGK=UNM;JNGGMCMFFIQAEAMJMELH=CLNSBMVPI?RM@UJLJIISNRQHMEQEFOGCMXGNCFRGKBHMJKG>ERJRJBDIDHQF@CMH@NIK=ISNFFWCFD:TDUZ^IJJMLIE=FLHEEOOONJF>KBR;EIKGFDLGFKMOHO?HEHCNFEKHII>PMKEDQHQANOYHNFO?NPURGVJJGLIKILC9OQKSHKbJMNCDOJLIMPCP>FQKBLQMINJMJISMDNDBJ?GAQNHMKRHIKI?FPKK>GWQ>HPJPKSIUE?@\B^HLOMHN=BHEJMGNP@IOWJFPKPPANOCC6QKCIFF+LLLYiQOHQKEQQLJ3GROCX@J:`HALDJUAN@NLQ/CBIIYIZI8OTRCDMMHCCFIZJKHLEVTSKT[WU?LFT@RBIB7MLOOYTIKCNOE=MHTbQGC9QKIPJMNIQLOJBSGKAAECBFFO>AIJ@AAIPBEAFQNRGOLIVQHHNEP=AXGJFLQBDGDFLICOIEFEHSLPSBHMPDKLGJAEIGJEAHLMH@LQHEFONIGQFLKGSGGGMEHKUGIFKBJLHBLKKGOKLOOJLILIFQPDPHJIIIDNDEGHICOMHL;DFAPMJIHOEPWQLG?T{KCGERJVFQN;_KMObJVEKSPIB>DHJIGPPVELERLQMFJCVGGET9NN[FLDODLLUGKL>IGN=AHZFE@AIJIJI@SGCD?KEF@J=JJJNDD?VEFLNKCGLE8L8MK8VUJMAGUJDK>EDF@LLHEAA:FJNQWDE=E9FDJBHGHG=BT=AAOLHIGLGNIXHQbKRFKEP?TK:NBOJCQ=M>JH=L@N?QJHCMLQM@PNEHCOEDCICEB@DCH=REHMI?JOJDHEACIBJLSQ_NEFFCFOO=EFBMNIIDN=HGBCHEOEG@GKEFGK>DRNPjHFMAGEGLSIGI;FDSHGIIHLHLL^MFSDIGOIMBHKQOJ;JTNIBDIJJJMAHKFT@BIIIRXHFHAFEDJJKTQF?DEDLGHCG=GGFLLKHQaTMEAJLONEPRQTPOKFCIBUCHSEMT>DHBPODNMILJJEKF>DFUEE^YIHMGBLLVMJXMQKQPGKOFAELOLIIHGMTVHKALKNIHDQISOQIXBJGDPSKILOFMSQPHOLSITO@F^IFNE@;GQENIMNJEMLKUHEVHMMUJRCGYNRQKEJUMDFBQMHFK]LQIGGCIIEFC?AFAITBIINTESLKCMKKIMFFGJTDUBKNDOHGFHKFBXDGHOPKXNKLKZKC:WZTIKGAGKQYCEHESI[GPMGHIPKIKH>GKCXLWGGKJIHEHINOJ?OND?IBIOOFQ?HMLDDHKBGcBUHCDNWEFRE9PGDMLNHLCCMHQIPCLYKJENCKNMTOGNZHKHFICG@JHFVBNMOMI[ICXO?JF[DCKKPGKGSPFOJ@DC?OB]RIIHRIALMF>?>HGIYJD^PEGFBHAAAJCRQD@LJOFF>C@NHHQMFH;XFSLIBKJ?PTGOGIE:GVIKEHRTKQFBSQVAGENGROQKWFMM?PIJJ?VLSG>IDEGIKARDDHUQCEHGMKV?PCEHVDg?GK?UFOKOINUELCN9ODDJ@SEIMSXJFKPRZJGUOMIZNUL@_EB?MJHTNMHDEUHRJFJPKFRCF@EQHTORINTNBK[NJ^RCGLVcE>I>HOMDBIMUKRNWVHJEJNEMJFd@HLMHIHJCNNQIMLKBMINGAF;GD@E?OJIFM=CFVJYJBKNBGSKCOHHMOFKA?NMLTIFBAHAAHZNCT:KENOJKOHAMKD?LBMB@MELKQGG?LADHBDCFP;FIBDBCBAFBNGIQOACHFIL@IFCBGJM?WPHCGHBCHBMHKMINBIBLW>@VMAAFOOJILDHICLHGHJ=RFDGFIKAGKAH@LOCAEACMHO@HODHFC@EIR?CMIVEFIH@KFKHMIKQGGKOARBUSDSNLLN9KMBWPKJBA:NKGIDOG@@WIFMUILFGIJJDTAOI5DDEBH@EFRLODPHFHNEFVGBML@EDI?LNDGJFCLJKLIINGLLKQHHQJPTTIDTNOJC=KAIL@KLPHXEGCKKQGCGCRJQMSGOLEEEJG4MGGRING?;IOUT]:NHGCJENFJAHHHNIF@CHWUGICPQA@OHBCA?CGHGP@@XOCHMJNFUQCRMNHRQJEJEDONTKM@T?MPQDEKFPLAVJGKLFIJFLIFbBJN@UKQEMGP@JBOFHHLQJQQWHFDUG6TK?KTREGJGNIM>FKR>QERKOKFKLCOJTHK;SNAOUFFE@ESKG`]DFJDNNUFLFELJSKHJGAMKLFE^?HTBQLI[KEJJCEEN^CAJVPGBFF:ILCKLFCLMKAHJLILQ=@MOIG@L=JBNGQLA;DHNFKNIIC?UMQJKFNDDEGQCDKWRESQBMHWII?DAHCQHMCDNLL>NPOEGIGI@HJLEIEAhHGEQKQG`DCCVIQMC]LMOCMFE??ISBCBBBQOIbORDGFFGGGFA@FDP?FJSGMJGGT[FMDOMFJMBHGIPNDeIDDHMBHJ>TCX@MEFIJMIQII>BFEKJ>CMKIJLWYZKHOJ;GI?OHQHHETNVOIOAJBXGFZEHEIIQORFPKYBIHPAGAKJFGFUFNLGPIJ@LKIBOIVN?ALMLJKFHFJ@IMBKFRNM=PFLIGJZCRVY;OKFCGILXKNIUKJKKd?L@IFMJB@NSVEDFLD?IAMMA?ELHP?AHEJMCQGCQHGNDJHTHGJKLMFSHJSJ@G=;NBG=LGPFNCEFJVGTMFLKKJECCFLEEGKIIJDJIFLDQ?PKEEJI?>KH@JCM?BSMLABYBEB\KPJK=JKKAAKTDQLOFP@ONFIEINIJRLSFHFMIBBLNGKLILJEFI;MOBIMPOMMACJODPSBEIKQGNEOGKIUDIHJPJ?OOHGVKAJAEHMLSH?MCKDEDEAEDHNHKLKQDFANIHHDFJLFH>IGQNKJNINLKGHENDNHKJHFPBJDKKGPNKC@@QLILYOCPGSMHRLPBODH=KKUEHQKGH;EEGHFLLFKEEFLGBIMKNDGFLDSNGIF=FANRIJHPH]LBPUKAGHJ@GH@LJLQIITJRGQDFGINMNGADHLJKJCFXMCNOOIMECOFLOPQHLFNIRIIOCSMFNNDGHFCOLBMAJ?QDRAMBQIHOAEDJRFEQJIWOSTLHBMAHFFNMHMJOEcPGHPGMEFNKCIO@OENKFJJNJBNGJFIRBNH@MSLKGHE;TPTEOIP@SVHANQKDEG`QNFNMFEC>VNFMTEIKGMHLAAE>QKHLEQONKHOMGIECUIPCOFK@HE?QNPMNNEKO;JEGLHNGfJYKADEHO=HLKLHULODORSNFQDJE@JKKLGEINQW@GKKITS@HELNBIKK\PGPIKWEOHHMFPMIMIFFFJHQQFCCMWOQIKHCCMRPIZTHH]EPHIYGQGIHLKVGGONHKMWFJKOLHDNJKIDKWPISI?YSSLGLDKFQWGaJQLGKDVWQCBGIRKHIIM?@VGNBMDAFCIMARRIJ@PMKTKEXNBIFL>IHK@LIGILOGRLGLS8QHEIEWEOWEIEFMANIMFNOC@L_PZIUILGLF?DD>JQMGMEWDKQKLGQILCVFKEK?IKRNPM[BKXIHQOCOMGIECGSL]FWFHMIWQEWGIGDJRUBGN]ANPNHQNODISFQHAPPPMHGPLPEGG@DI?JMFQKXHTA^FFEQGESDCHMHRGQJMLENCG[GMDCGLQLCMGTQKLOMNHMHMH=>JGJHVJDFAJGLHGDG@LNDPQESLTADSCMIJDHKNVDHJEEDKNQHHKSQHIJACPDLLKIGMRLLFJJNQGHCBFARQMKPQPHHJMJDIIAIOHMOBFBLJTGMBHGMR[HIPXCNGZUGLCGRJHOFELBJKDMNSJSAALKHOKGNFXIJMKCBPCQULLJGOIQ?E@EJIHMIN@DMHIFSIEOGAKGLECEKPYANGAJ@>JC=K>2INDMEEIQDFTVIBWEGU=HDLIEDPB@NGGQWVP?BARJPX?=P;BGKEQIJ@>@EKNDHG[@PSMFUEGIFbBNZZMNFUPHOSeHIBG@ECSEKGHOILGOHEH@WEGKMCMN\BQJDHIO8GHSEIBMKP?HLQ?BQQMOIEIIEULV>J@PEKK=LOALMK?NKABHHFNDMIHSODIJIDLEPMAYSBDDND@MFVPFTDKHKGHGLUGALN\XA?LJBSLKJNCG`RJI@@KHEFEFNNJXJQJFNKIUFD[CSNKOCINQIHTI:OIJNQVBMOP@HFAGGMIJLEFJGLKUQVBJGWHLDHLL^JRGEDKHIHYJPCONLDRSIFJOGVEKHFYNRDLDGPWM.IOPJKPLGMHJJGBGGNBIJFQILJJGQHXIICKHHBB^NNG\]GXJHIFLHHCCTJFLN@@NFFESDHJDWKJMIGFCDIEBFTJY>IMEII?MGHTHHQNIKCOHIG@ELJDTHVL:KIGKEXLNVLNNIJO@I[HDNCGONDFNJ@CXDGUIZKO9C[LIOICKMLMBKMJPAEGIIUOIFLNXUAKMFEC@ELOKKCKDGUCNMQPTGGHLWIMBNDNPHININSEQDJQPA9E\IHNGM]ORSJTcJGPMLYPDWEGBLE>>IME>NRLJKQGJQMJNJKII>[VAEIM]D?EIDOHNOICGJHF?IOKBH@XEPK=IIFL=FCCGO^DHG@GMJH7IBPPHZEPCINLLCPHMFF=@LNS@JIKSNKREKIJQHIMELGTDINMFOKHSAMHDPHaLK?RCHN@GPJQGHPHHQQHWHKLIONL;EDEKPDH\@BM@A@KGILJJID@TICQU=H=JKQGDSFHFA;IH@OTRXCFOBDMBNFMFEFKKT;PNMFSFRD?ABNJFRG@CQHBE8FLJABA@LKIFCKFAFJPGEVF=NFEMEYFT8OPDJSWMGJ>LFIWMIKHLPGKKPIMRLIIIIOPDAGIBOHJPPNGUIR8P?JCFPNGLL=LCFBF<NIIHGEMASGGY^MNKDH?PBDNOETJUPNWQJMONOE@WPPPGOBEFEHQMKMGUH@G>YHGQKNMIMIDMJEV@EOFHHSMTIKDGDTPDOJLSNIH@FJMEBFNPPUGFYFIJGFLGFMHQFQCHRKF?AQNJ\SHP[@FUKBRHHJLAWNOLBHKGZMM@TMSGQLKEWFELKAHOJIKMKOCBD?>AINFAFDPIGBDFNPNKGAHLOMHJOSKWLQJUPGFGMGHLUOGGJMEGL^CKEPCEN;`HLNHJKGEAEGTMIOPLEHLKGBLPFIZBMFKPCSLINQAEUU?GJZIKFJJREOOHISNRPEI?OKGEL@SIPKKB>NUNPHEPL@OKNEA@KRDFGKEQADJCFS>OI[WJDCKCGENQQaI]GEGQMSLRIDGBJE=L?HHCKHSKHLGD:JJFAJFIKMMKLMIVJ?ILLQLGPNCJLHDPFLINJFEHNHPGLJEDIGGIPEIKQFCKHO`LEQaHPHEJJ?^NNIGILIFCC?TSGDJUDQN?EQKFCWLNNCPROBNKOOFJEGWBLIFAXHHNMQ?HPI:DUFIKF\RHIDP>QNOJJZJEAJGNIDRIPGMHHFJHLFFCVIJKUPHD?INRKTBDEBONOHGFHLNMCHCGDA;LVMJMCMHIKCLGEFIGIIHKRNLBLWGKMSUNGcA@IN@GCTCL;EIJFMKIBCQJ@LIINVSEL@NDMNKCUBM@CHF>HMNHRKMHEGEPPEOSEJCHEECFPKJXLGHKJFNKBMGOJMTOH@JIHOBJLAGNMCAQHATOBMEDHHBSDHEJIEOOFCECQGIJDRJPGOIMPMGEMECO\QHaPMMKBDABHCD=MCCCEMFJLGHHF@JJHFeRH@IFGHGZJQCJOPCRD?MDIG@DHIU9LQJJXUONCAGHDN=HAJGCIACAEBJBKZNI?JGFEJHIQ?DI>CQBGDGHEPMHBHQHLDGKFG>MMJE?@BG;CHFLGFJHMKOJULHPNQFQ\E=MNGJQ@LFHQEQJIHGNLDGPDPCNDHAUMBLGIKKLOSCCFOHMNJ:KZIH>CH>H[MKI@EJ;G@KJFGMDJPF?QLIFJMJTLEBFNACLL=MGQeHBHH]IKFKUIVHRSPPMRLOKHRHNCKIBEHNPN@HNFTNAMKIYR?OMNINILEVALKJTMIDOLJTKNPJRLDUJ\QAJLGOMNJL`>?FKOMKPNFGK_GBMOENJIJSEM;INPPMKCQPKGIMLIJEOKGOFJLALPWM^HQUCM@MWDNKKNJAQCEM>K^JW=MLIPZJD[NOGIFWH1LJOLEIHHJMCOJCOQPYIOH@GCEJHQMGG?A@HKRMAcIK^=J:BOTLDKLM>SEPPFFXSTU>[FK9>O@ZELLQJFJBH@AKgB7DaTZMQGOPF;Y@SGQ>>:DPDGQGLHBMXQJHJ[b@KEHG7T@IQLQ_LAAMNKM@ZA9I>OKVIL:IM@LELNB9K_B@CEPBFHHEBF*FAJNPI7LAEMCAGUFAFVEQNFJEOVIFBIGSTF@I?HGSFJEPLBHNGQLQHGKHILJH@BEFE@CNCHLKEFKGFLOKDGOJSGN\?QMGKKFDMIGJGDRM@LJOBSLMENGPFBYKAFNFOEKCJHGDADEINIMJGGAMH@IKSIHJE@PEHSHRGDKABMFIH?ONHEKKMEMHQDPEFEJ?PN@OMTO@CCQC?^KLBJBBJNMGEZGEGELEHPNHUJ@NH?GIJHLCCFIT[SASFEEIKFMDBMDMINDMKINFSJKT;BHDBLGPNKHHAKKERADOA@NLLJG:BEEFDKUIOLNIAJQ9\;DHFJL@JLOLN5P;UIDIJDOO1L?NQ>NLSH>?RJR?:KGAH=8BC:OcBUOJPJV8G@KEDJMRVSZNLT4NJ?FO<5KPSRAJIFGJLFI2EOTBFOR^OLENJ?KJIGKKLNGN_HD[PPMIKQGJJHNSIRWHWJMVPWVWNHFPRBQCGBQMNOBDMIFKALPKLNLINQALILOOWLGEHHKSM[FJENJZJCGYOJIGGHCCHBPJNHYHRMLLSPCMLKEK?\GHKGCIBKYONKNEC@LB?OHTPEFCGTFNOPCJPSLKDKG@UMTHGJHEOECCIOKHKUJAENFNLKCRJPKCVYKIGLQNPAUJHDKMH>KLDKKBG?IIOIJJLLGDH@EEVEFOIHIQRVNF[OBFIUKNGL9?CJILFFIDLFFRNFJLECMGBHHUGFPDP@GKRERMM?OMHFEJUJMHQRNIDG>L@>@TGIEEEEGLQSGOC@EDOO=UMIJDIIGPBERDMRUOAUJMTFFJCMBHCOBJCGG@IIWUGJK==DEInEDBGEIAKHALKMNFEGKVEAD@KCKGFNM@OEFTJLJLPTEKKNFIGEJOKWDCLRGDIOBO?O>TMGKNKKGJA@HbHIXIFALNDKJL^GK=CUSDANCEFGLF:IC?KGJWUS>KAOJJFQ;BHAEKFGC^=DQDQFIFBL=FD?=ENIPK@LgETJDNMIZO@ENFGI`ILCKWFFcMFJ>MK?QKHSLEHVH\NUH>HRIOABGLCEIP=HFHCICFBNVZTSOKTTREUCR6I]JJINPWFJHMEIFNjMHNLZV=AMOIP]>ELHH;BJGHI@KCQQDWGILN:IGJLCLHFCGCBUUPNNDIIHLS?DG>MJCMLEAS`HF@SFDDENHECOIBCPHG^>?IOTIGKK@KEBMGTAVMId\GHCT>?RH9O>FPBGNFNOII:GTRMEDJEYEI?PDRJ>JJL:CBVDSHKM9NOLQMLJDCG>PK7GLCLFZL@LJEEEAFI0MJORLHNIEOAFE?MKQUFFK?IAFK?GNYHEK@ZE=GMIQYFKPRREPNFC@>GNKGONJMA@CVA7IQGHQPUQY\UCKWNKKFFKNJHGH:OJ=EPPJNOJPM>HSIPOUPBNGLUMGC8NGVLIGMFCFKI>SFRSXHQFDNRGFJN@QYLNKLFNMPGXZVTIEPOHKH?JIGCIGCMJHFJBIFKMF6COLIGIJIcHEKT5FMNMLGMRKJXILBIFBOCO1CHHCGN?PMKJMMEFOLEZHOKKPOOLKSQRIKPTGHLSESON]GSKQOBNNVLIKROKOEKILEKKNBHPLHOBNIANNBGFJ=JGBWP[NJFNM\GBFQSQQEKOG>MJPKMRLHGNCYRDMSGMPHJIZQJHDAJ=QLMDULI;EGNKLLHILHKGNCJINJEPGHPLKMFVE@VPOOXORYWGGJJNOOKNEMFHDSHABQFHFOGMCCKGZLJPHMGDAGDIKQHMCRJDRPBLIKPOLFJF`GDJEHIHEJ?HK9ENDM@QIAEKDKFGLHKMrJ?GHJILPLIIOJJEBJDCLJIJDDFFCHLCSTKDUCC@>FKAM@@IAR`YFFKINJDFK@KICEMJNAMKCTHFKDHJDGIDIIFDCJzQHqHI@J@HHJNJHC_LRBEEL?BQDHEH@QiH@MgPDt?NIGJLJGFFODB;DB=GDRUAIGKMDPFMCBJMIFMiBlHH@KDGDLKlED;GIABCHHPCHPQKLKHG??KGNFLVKLSLMLDAIJIELDAI?KSPFCFEFB?LLCGNHFFBEIMDADBGH;EDPGJXKNCHFsBFFCGHERG>KGH@GOGBHLMCFDQSE@LEHL9GGJNEIID\OGOHKMA:HQCQQNEH=AMGGL^G:9DHCBHGM>H?@`HGE=J;MBFF=GBCBBGJB<@QKF2CAH=BIM@N?OKALCGD>LAUKCXICEFJAE?BKKAHLODEYPD?CP<[aHGKNIQN@KQPRKWPGKPOSJLQMJJKFJRPJREHJPKCRPKHONKOgQKPGFDPET;MMQG;BVHR@RMMHNCJJNMGNEOURIUNKTJWINIPGJJNGUJODOMFFOGIMKINLQ[JRVSPGOGPNLQ:ORENNPTPPYRRE@L]FKHKETMHHOP=HKNIOKJONTYbUKMGJSDMMTMEJOFUUQHQQMNLH@XPULJBJIG\IPjENCNUKNW^P\KRLVUBWMUKRFPIOFR:LZQPNNHOKTVHSHYTRTDIETLLMFOIOORIQITKCMMJAOOHLNPQQDCMMMHVNTRKRT;KUMKGLGNHURNGGD:FIBIHHPBPEMFJQEQDVHRPEHIUELKBDH@EErIIJLIBKEILKLKLNGVLAFNJGKFPHUGHXLIDEDOGOVIBMLMJBGGNHULOCGJLLOIJE;NNSHNSKLQNOCTLQRLHJKUGOOIIA;PKAIJIL\KWVIKN[DRQLFLIB?HMHOJPHOIJKPJXANEPEV@LH=UU;MHPGIJQGKF`BGNUPHEHTCSPJLFKAFOUAFJLKGFFLFGJIUURH9JDBGKINIASDICGB@@BSTIYBIGA>FMHDJNITN?FHJEKNL@GLIARWOBNL>GFMCP@GE4FHJNHMFFFLIPKO@PBN:PDUJIONY^OP;HMCJIFP>UHIVKHDISDDGJMLJEDIEEHG@MFIKEJLSKEFHFFNHCELIFHKMDLS?XPW@IDJGFIFFGGNDKK`KUJEQQJJEDHEGICJMGLLDSHQJQMLFNBACKJJHHEHD@L;COJPGM@FMI@JRJKGRQ=IMJLBGAFIELJKKGEPGMSFOP;FDPBTIKQJAIKKJDJHFCNHLFLCEKJAGNECG@JFHILKGJGIBJEGFCEPGAJEEJFEEHHQUEJJLKMCGEJOIHFRFK?QZHCGGCBJDNHMK?LJG?OHQ>GHNDFJKLXOMDFIGPDITDPD>IGGFEQJNNDDCKIMIK@HKJLIRJJVOMPB_F@;GHGTJNGXH@AEHOCBPFDMM@@PGQJIMIFDNJUIEAFSLFMIGGFY@OHBETGMEOFDLHYQIM@JHMNJGPIHTHQQJIM?DFGNIBMED?KTJ@NBPAKVGHM?IDC>WNFMIBQHRYSJHJLEJFWGEEIFC@MAFDTDJHGLMCRGJ@CXBDEDKRGK;WULURHK?NIDLFf`BHJ@IOS9IG>IK?BJIPJN@KCFAOQDCHHLKKWJIOJHPG\DRCU[XGO?AAAMAFWBAONEIQLOAM=J=HA=IJJP@EEGCMFKPLFOEGCI?RHENEELMPJIJOOKAACIIKLGLINWKGJKEGKWELCH6EJNQHIDINI?IDQIBJAIFBTMQPDSEF;F>DIINDLAFUO?a<=DFSFHG@PCJJ>JKJKFLKMIORMMMCPCHHQMBORDBDMN>NTGB?GLUEGGJLYGGLCKNAHGFMEKOHCVHDMHOSAEGHDHFGDPDJ[KFJDRMBOGJFU@D@GBAJNCWLMNV[BO@FCSRFDKGISNCK=EGMUBFFOLMBCCLQRPPPGAHFWHDCG@FENOO`TAGOGADNMPGDDBGJADIEIPOMPDED?LPI:PFRHM?L?DY:QONFBXJIUQLF[NHH:VJKCOKUNAPNIHEKRIGFEAMGJNCDRRJHNK8H5KCHNUTAGIIFSPEMKWMRBMGPVFLNKH?QKLJNKMSSQKHLLXJDLJRDC=HKKERICPHKMPSF8MXJDT@LFRPLG>IOEENM@LNKK\OFRHDOEPJSMHN`E=<\KEOFPBGEIHPPJEOPMJNIQCHLFMBHFIIXLGEYd@[GGPDGSEKQDM@LSCMDFNFPBAD^FQIE-OIRFGM>VUANK=KBMIKZGJLKOHF@>XKDLPE@CGPXKGLRLPGNQ;OBF>HMKRGA>AK@CFNBILB@GHKFSAHK>MIEFPIBJ:>DNEIKQJNX9HI8WGNMHPBSNLMNEIGJIUIGILCPE<PJ@HPMLVCIL@KNBJELT?OKIBBUJGJ@NDBQCEPKIMTPGAJ7HNCJILODFMGQ=LFDEKMQPKNCFEAENOCF@NKNXZDUHJ>>OCBDMOODJVJLIFEDJTD>RAIDGJGNVLGKTOHRO@FELX?JJ>KPSKQGBHJ@JOBQDKG;CCCIFK@DBLLFAKA@JQDWIDNHHGK[>A>DFEGODI]A>OI>DLFMOHMKOCPKF6EJHYGN@FRQNIBO@?BHJG>H@HILRNLKECK?EJR8BIVAHG=AMK=FCCNL:VDSGSPDAF9QGELXBMBJFDHJK?>=K@D?EBMHDE=M=E?EWBFDHBFN:HHP8RPR>DSJHLLTBQWETRMHGNDGG=KLWELCKMLHYAFSETGLISIPMKNBMRNANLIIKKGLILJCC@OKEORI@OCN@NKJEYLKROKJLQDILTHTANOAJHLO?KELNLJEJFDM?>KSQNQKHL@JHTJFC=EIRMQODFH@HNJZIGCCO?HTFPRMUILJWXMDHFBIERWPDMKE@LTAIKXOOIDTGESLPVNAJTEN>NXDEUHHIFFNULQ?LUBQBKMKL^HM@MPNGPIZGFKKHJINQMOIBEHTHOGNCKSHJHCJPIBLDJB@CMMKCEEA9>GK^DB>FSFEEUDRDSAFGB=GYMDJBINGAIFMKEJN@DGDHC?M5YNHM@GJMCSCNGBGLFFCE:FADMIDPF>EB?QECJJIE>EKJC=U?H?HDRGFE`PNJ9?POMC>?IBNLILKDACJEAOS>

>ENBLR:BP=CGKBEXDFEHFECK?IP>FFBNCDR=LF?IEICDLNO=DIEJNFMF;=G9NCNKUBCMCFC@HBEULHD:HCDDKKVCb?SVY>?IHRL[PG\MHMAG@QGPFbJKPI`BIJJJDEOBKMQPCHBMMGSLT_NINQKEPDILXDMHGOREQFMRMRBNDLU?DGUCVIHJDKPDH?[OTKHMHFJ?FI\UCEJHEGQJPRPLGM\ARMCFQGBaVPPICOCO>H=FVBWFJIOMGbOLFYLKELHMAFTQ=IWCMYPFIIKCDNBPFcCGGHS9IKGHKPDDGIMAOOPD\RNEJM@TTGNSPKFMDPJPGRTMK@MKFPJMKJL@IFIJMEOLIHALCFYJMJGKIE@IBF?OIKPd[QIIQGXK=HDKYIDMNIJFKGJKCDUMFWGMHIMEOOGDM@LTFZKJLGJHIQCPOOCFDI>BCLMKQKNDGJMBIHJNGE>QE?IMEBPZN@JLKGURJPNFDG>TEGFLQHACJBCCDDJ;MJKEGIBJ=EEPDG>IDOLQONDCOJI>JITCMHDLSMCQWIEF?GLLOJJLCEHEVNFQGCKGHLANNICIOJJH?DIFKHITJETGPOFDDFHKLHLIGAJK?HH=D:KENBOFGCLGDR@ELLVL:HGBGFEWE@I?FHBLJJJ@MINDFG>FIBVCLPFP@MOLRH?>NOCEQLMBQGTEMLDEZKK;KWPMIBKQDMIQDMADGNCJJJBLNDZCIE@>ZLK>EPFVTCEPBJINBFFIJAFGMHBEGORCDHS@FDKJPHVLTLUOMMHILC9IPDLHUIKXTNDNWC@IKHKDECLGLPGAPCDJBFDLKFTKCFHMLGHYI@KMEKAKOFHICGILFGKBBGEEHECKEIMIKKLOEFFN_JCJJJREINECMJCJOCNEKUGECGGFCMF?MHKKFEK?FEJHHNNFNNQPFMHFDILHZJGIHCHKLIFGMHKOOK=SHPKBUBFID@ODLCHKNPBDEMAE@YJPJCMPFMUJEBDFIC@GRJFFQIELHFEGINIDEGVICJJHBIOHIKMCKIPBFNFRKMLGKZKKCHMEMKLKaRA@FIHHMDBMAPHHDLWDDJIJBFHS@OSGOHHI@HWJAHNMKBHIIFJPSPGTIIFHG?FFBL?NOLECGDJIKL=KPICROKLDGJHMEJLUFLGICGKCEMLKEIFJOHGEJXLGGJLNNSLJNH6LCKRPMFGFTPNHPFJIJL>MZLLGRGFNHVSHGJ@KDIJTFCAQGFEBZH=KFKKENLVJN>@KJLQFDHJAFF@WEBFQDADPL=QQBNI>>DHDGFJFHFHHHSFI>BUIJCIP?FCHWLPBJFAJ=ARLVIQLFHOFGGRIKPRPKILKMDAKCDKLQGK>IILPFNIJNLIGHFHMHKEFLHDDMHKDLIGEGO?LKMIHCIROOGNOKJMNHKNHECJFMJAJCGNMJIKFGINDJRMRGOEAKNJCDHFLFBJFAIOIGKKJKVFIIHIPARFDJCSNIHCRMGIGHMLEOIGKNHFJTMHEJDEKMXGHFBAFFECOIHQNPGEGHIIHOKIJILFDHDGO=OIAIIOFMINMIPMRSQCDGICHNDJQBALDLRHCLLLIFHICBIKGIFDJEEHKOBDMJKIJRIGQNDDDKKKNIJOOCHGRHLLAHMLIPAICI@OGDOEJLOIGMOGCIPCQEF?A=PJJDF@QTRGNJLGJCIOPGKFIJPSKJOUDLPNLFJGHEGJEJPIGLQEMLI=A=KNKOFJCHEMQCHEFLDINGJMBQBLCDDHKNFQN?PHL_MBDKKHKBS@HOHkB>[EBIFQJHP^UCCTODHDWDIJIFGIILFDDGEATGJMKOJCQICJEEOEEDO>KLNNKQDHIDEEMMEO?NJT=CWABJAIFMJHKDOMHNHDS@DKP=?HQPHGGFBHLEMHKB;FFNCMKTMEOKROPFMIDPMLLNHSLITMDRIWTUHEGRQIPIT^EJFQWBANJBV?QRZNRIIKKHDSMOHANI[IHQ@LJV?LKGTDKNVC>H=EEIIXJRQGOHGKKFEKFJVGHN:FFSNIQKOCIEFNNYUAIDTULNGMKQJJJDEKDE\MNNL@ANBOIGBDPNKQT>GJJO/?SNBC7BCCICSENHVHRHUPJLRIMYBLBD@OMME@MMLHHWRCNTFSGML@NK>JG=DME:HGE4FLSFM?JGGLESKH@PKELJJLTH@EJMKAXIJOOOTL>MOGKNKCGDBANC@JHAERYKIIBHIJOFCGCKKBGQHQBMFIIIHQJRGPILRNFBPPO?CGCWEHDQTEFKK?FCMBD]NBOELLDRFSIHZCDJGTJD]LDNCSDDBMNKILYJKNRI>GNIIMQDWFALCEDI>ILEPH=OGJBWGKPUDERHFEDELCBIMZHIIEOGYRRNFJPQHSFHMPEH=KRHNKBIBIOFGODMX?KPNUJMFTK=COQFCLL=BBJLGTJ=LJCQFFF@I9KJDH;GGHJEJBAOIHL=JLKG>NBJBBIREMHQLDLRHDKGIOJUFNLKDJJKI>INELQ?DDDJB@GD?FIDPNO:FQFHNAZ?QQJDJJL;FFNNMRNG@>BINKDCLA<=CF=@MDKFOEEENCCFL=@MODJFHEHFLHADEJOPD@JFIGBGJ@GFCFMBKEHPIK6>KZTQ>G=MNEJLJOAPFDQIGDTAEOIKE5[cHIIHMFB@GAJKYKTIUI?_GJM>MJNKGGPDIUT9KRJEEFGHFFIBVCPORVLNMG?AUNC7LECNISKIQMIMLJIBBELMCKDRGJHGCMMAD>JOHJFMFAQLG;EJRDAGGPFCIGAVAMCQGHF_RKIKC@;KU>JEPQDHPMGAINN@NMCOPJUBC3@F@?SNPOKEHGTGJCHGPTT>C?VGHVGPFJLJV>QVMGU=IPI:@EDFFLLPD[ENGIOQFACEWWJNPODEERFINMIM?=ACECOM;DKPBKBQDFP=JRB@<+JE@LN7KLBZ8EBLIBC2RRFGKEB@F7>R6G1CME>AK2E?BR:FC[IEH@DGI.EGF?DJG?8OAGEOK?NHK?;]NIH;=GHDDA>KEHH?E@@3@HH7EGG@AB:[KZ>OUOCD=?AA@EQHK4D5=IA8GM>E?6DDEIAIED=;;/V=SF?QHLEFHKEKLDFWPJAEBRKRQPFEFMNBGOLKIUJPNNNJIMHOEHEDJHFHFKEGIGXCHQLOLBMBNILRMGHJIHJDJJGKLHDKaELXFKSGJPLJIGMFTHIHHNIKYOIHHCAGLGRNAHLRFISJGUVHKFIKO]RHCNEHRHBITETUPIEQIMVIURL@HIJGMMSSLOPJEUDKHHFKCMINMG>UQRIFKNDKHMHQHHCFUEFCFMKJNFLHEOISFEOBGLJHEDOMMEDHDLQAVMDRGIFCFLFBIFOGFLEKNNBOLQCJIKO;OMDRCH_ONHPJVDGUJTEGHP?LKHKHFKTIL?KOHGRHGHKICIJNLQHD@FKHGHQ@I?IEEFA?GVIBA@GHGSFKDG=@UOXCJCTMG=KGE;GNINDJZSDI^GHP?HK=LCNSEJCK8HFKQ_J?IC@ACDTCD?AMILGFMCIOM??NFGJLGQCDDG@BMEITLQJFCHBHJK@EKYKNGEKK:OHLEBOJVFHCOPQJD>JL=VPFKFJL@?AGOHI@EHBFCE>CBNBOBGLIFAJKEKF=EOCOQL8ED@HBJFMEQRBB@BPNKKDHAT=BILJALMSIFCKIIJUMENFGLLGLRESLRIMNIJKGJHMIFUNMOLDDHAORJKRPDENNLHKUCOILULGISVGJBEISGESHIG?LEHMSXNFMFFDHIHGRLJLKKPDMJOLITKNGIJHHGMINPM@HNRNPMJENJHKIPS?GENJEAGGIJRRPIATKSQQOMGIDMGE@RJDLGGIJFYFIXHMJNHHHOIKITDEQJPTDEYJFKVGKHJOUN@LK@HIKGEKLTTKKLORUGLHLQP@FQADNOHLLINJJKFFAFPVFSKBRKSLKHAKFEJIGHSIGHbK=KJHVONPSGMOAHILHJEJCGRKQBGSGQK>LL=RGISNYEK>ALFIR@JIJBRNAFWKIBK@LIH;F?=[HTIRGOEBCCQMEQEARDDQOKQrEYIFPFJFJFFRILJIJOKDFH_UAGE:E@:/FKEGQNMWPKLHKFLRQNTFFFFB>OJOFMP?LPAJHJ:FDOJEPB6LJR?CKSPJNOIFTCDd>ODAIPBTJOGBJEGFFF@CBBEwLL[DGCO@HAFIFSGMPUSKBOCOMFERHJCH\FNICOSGJOIKDKI?QMKOIMFEIPQFHPPKEBDD@KDPKLFNETJ8AILFGEGIIJJEP:SDJIPEOKNJEUMFHBHGJHFBPF>KG@PPBJGFGGMfIKI?JEAG[UJILDDJQNC?AFLBSSFIJQQKCNMTFGGIRQJMILEMIKNISFJDAKEJEIDBJQHGBGCNADHIGIM?MEGQIQBHPPDIKLSFJJNDGMJCFOVFLDAJHIOHFJJFNPEABBLELPFFCMG>KPHNONCIGGGNJGPINTLPAGJJYHKRIKINJBJNCNHICFBKJDEGGIQIMGPHLPEIKLHGEKJPN@FHMMKTDKJOHFONIFRKOGRFCESHOBHAGJCLSI@P@MEPHKJLMCPHIIJOOMBMF@FCLEODSCKHKDQJNQDPLLIRHIFNIMIMCWJKIKLEBDNP^KIHLRKHOJX@KBIBLGJGVWK>?HI;?HGJCFDHDDIHHIKGBKHHDIHBKJMQFDKDGRMKGHVGPZFGLFGHPFDBETESGMAKDFAGJDALQIGBDP@EMFQGEDIDLDJNMFJVJFLIHCMLKHBHFDFQHWCNLMJIHLKDIDGBLKPH@HL@ONUKLLKGGDQCKM?D@DI?AJCMONGPICEHRJACPMKFNHCPHKIB]EQDIMJHDMGFCQ?SMKEEDEUNFYGFRQLFJILKCUDYILRIBSPNJMDGFOGSGLNUAVRANFQRLPGPAIMHGIACT@DBFKLFKIPFCGFPILHBGGTEJIIIJBESAKFBMGJI?HHQC@HKNAMMI>MKGHIHBR[MNIKMPGLIEE?IQ`FBJLRNKHS]UMW[HFQSVHROPCDIFFLWGJK@FNFAIEUC@PGFTVPULKMMLDBCIFKMPMFQEBIEMGIPFFKOODNSMIRJDHTVYFFNJKFFLIHUMRWREKKTHHPMDDBSJ@JNLGIKDBNBNLLMJCI@LHGJJYJPOMAOPHNCMEPF=?:MM@JELJMCB7DFB87FG>:@IM7I@9B@S@FBEUGG67=FKK7AQZKME>?8F5BP>NU8L=DHING=A8D9JBHHA>BGIEdnDG1E?<>IJJ?:TGFCC?NC7HJ4>E9KBW=08@i@D?MQ??GONN_>F?:NP@=OJIFFEC3HI,B<D<>?T9BEM=4G@J7[@BBCNDMJJJDDEPSQIDGYDO@CJDLLYANOX?VCPFV?IGOKKKENMQLF@NAJFMR[MFFMFFHFBHLNHOARSIHOLK>JPDFHET@KHN@B^OK@KUBH@DN>PKGIOMENQNKONKKCICEMKWINQADGIIINJFPGTQDDOIBRQ>MKHIAIBJLL;EPLRQXPNDEJIQ@LEDNLHILHRRHLRGG9LLJBGLJHEFIOLMHMLFCO?QFMEOPTHFINJCLQKH[MT>;@TONKX?FRSQCFJGLKQHXRfHJOQG;=P>LIDGKOKG@RGGDOAUIBOMMJOFLFVEAJNCYLEPQAENFDPT@BSLIBNDFJNGGISPNHOQBLOD]IMEDA>NE?LE7JEBZDPUJOEJFQRDIHODO?FGWJGHKJ;LWQEEOEILHMKOEF@KKETCGLDLKFFHLKGIHHHMMHGLDD>JEDJMVGBSLBDDN?LHFGEGFBCCGLS>EIGNIRNHOHMLQDDEILJII|FNHIKIMOPJM9MLCMLFJHGUEHSBMCRJDILIMILIQQ>NEAFGKABGHLLICHRKHHQNMWPLQJOFFNLDNIIJEORID@I?PXJKEPDIHGEH@DCMGNMNKLCCSG^J=@MUIHGFFAVQGS@DOJBGHHIWFMAIHQSKHHMDKEPE?BD>NNDJHS>>DINQER?MMHHDHL>PG>BMPGV\5BMDHEKHHCIECKcGLE;<;D@HJHUHPFH@DIK??BEQJCDGHjCLJDPFIC=CAJGFMBH>CQHALCP>B@PFQ;QeLHDAENGCJNHKKIEI]TFCCCERSHCEJBKJCIRFFU>GJEHPLGMKICORLT`LFQBFHMNLEMJCeLWBUVFFGIBNRCLMPRFEPDLKKPQL]VPHCKLGLZKR@ULEHGNPSIV@JLAKHXXAHATM>EDKFNQL@DBHPCHRMHGNKQG?GEHdGLNJjK@HBCFOCT[Q>7SO@TBP[LKC>EQMEQUJDMUQM]NHBUEO[]KGVEIR[JMRPPUKN]WLVGFHILEC@EXMNOINTBTJFOKFVAN>LCeMPPKRHOWPR?MMFGFJVIMKG@RQBKSDPBJCO?JGFBBIIEPOLCS@YBEDGTNL@JHHCSL>EOBAJDJHMELMDUKKNHCCJNHQFLJK?QFMIFDGHFELYMQLF@MAOKJUEDQJQIQKDMHUKKCDJKKLHPKKMOMMMNEJD??HI>MMJKPEYFHHGDEBCPFFNIBNOWWHHB@HPPARKLBOJGJHFRHALSNNYJHT:ELIGJQBGPIFHUYHGQNCFQGQQDBPKXL@GIGBBYIAJQGRULA@F:GDHH7DYBJIMOMNCNCEICUJMPLJ7FTJEDSEJ>QLFG\FNGZCHAM??LIUIOCQCEMKM?TM>GO?HNF;BAHG;M?EG=BHFKDOMCIROFSKLJCKJOK>QLN8QOEOFIEEOGJPEPHEGHNHUKDKHBAPNIILDL>MMKN>8LGDDLHLIJKKOEIGGGLIFD@EHGFBIMIJD=TSDTHIMLPFHTDBKJJILLFDPO`ALKFJDUCHJHMEGKPJA?IFIGGCNIDPAGJPHLJLNIFKBAFMMQSEMJAJKLDIBDK=9GEKOKVIFUNCBCROIOJGDMDGCC>IFJGFELDGCLKLFDGMJJPDCAJADTRLN]GIKENFKNFHAO?RELCBDRCNEKEAG>KDBJIHFJQIOSFCNKJOEMMLLTLEKBSHEJAQRRHHMKX@IECLEMCZRIBHRQUKGVPGDLSCJE@QFNNBAAIKDCCMJGHPJNC_DF>>JQKJD_V@LEZCDXL=K`@[DLNQHBD\LNJHKEFCR>ZGWH@DGKCDFQVN@GAHIIFEWFGQOEVFIDFBXRIJBDDHKDJLVH=Q?K]AKDHIHCDDM>GX[FMRFLLVHZQ=XHEYJWKOHDFVHMML\EOK[LIBL?JH>@[DF?BAHMMVPBJNPDTE=KOJKCVFCOIEHKNQVB[CM@HWHMFGJHNEIIGEENLOCOKbCRJIABHRCGDEQXBBKGELDLJM@@CK=SIS@NKIGDVCCJKQIKI@BBIDQAMODPIKXHBQNEQF@KMLMDIEJSGLHKADGFHMTECDBGNEEVKMROVCCBKLT=NN?GHGGVEIF?R@GJQL@DCMLDKLAGDDGMB\LQBC;FMMQJQOJDGEJMDFEQMDDPAAHHKWC>JYLCN?OQTSIIDHL>IQE?JNEKLMAJLKNF=GG:BXEI)I:TB>K@KMO;@R5T>@CBD\E;CPPL?@:IAFC?Cy@CFFSNBJ?HK@H2VCBVG>EGQ@EAE?JVVBEBQ5@@?7O6QPG8BHF>PJEQP5DI?X5FLAH=@PL?IFIC9MYDG:SW@RHRKILVXMCJ*DFAIP?;EW@>@>7I?KHI@ECMF?J8HT?HGQSLHIOLMKU@9KZNQ^MJ>I@DHKDLHPKHLV>HNIHJGEHLPCHAPIHJKHFLYLAHGHBHFC>7URAKHLILJ;MZO@MGIRJ\FO4[REIRTGJMMBTFIWG@NQBLBKTE=JFIMLFJKO?K?LJEM@NPTYHGFCKKLTDKQBTKFJIJIJOGKKGSHZROE?MASPQDPOILXD>MM=DJIRPPLESPN?PFNA@EEIGIJEIMGKHHRLGHGcECRFNMHNJQCGRQIIFLGVDJTGLNFOJLBJEHJKILQQTMEFEIHPdDFSKCFJ@HAOMBLM@DRCJPFMDGKKGFLIEGCERJFBJTJPGEKI@HMIKDEGDKKTHPDCSHR@I@MELLE;\KO=LAFKIIRODIOCNKHJAEGFFECAMKIEBPGDBF@MFGJGFCHSDAQEJKHKORWBOSOJPOJEEQELHTFGF@JA?HTKGEFN@BGJGLEKMSLD??OFLDLRHEJKK=LKEFCFLEFEKFIKG?JOLMHCMEMUCDHCCJIBEDDAJJIHDOFEEE@KJBQMFIN=DOIDRKMJEERLHD?@CETFOOGGIJGQRDBNELBGI@CQECE@CFADKGPJHPJKIIOIAELLEOFDAHGNFLQ?CIBLC=GABCEILV8HQFH@DKGNGNGKDPGCIAREIDCGLMGKFFDMIGMHNLFEJBPGAA=QLJFIEKPGKUONHCDPLDW?BGIGLOMIMNGIECBI@JHFMENGDGAJFMJMEJHPHIJPAFFFGKNKJHJLGJMNFAADHPNNUGDGERJMOHNHFKXGM@EHC@ECIELAL?AGIJB@IOTPJGGENT@JMFCQRNKLHDAOFIKHGGDKBGCLJE?IEGLTEFLJMGDGHNPDHNSFFPGFNF>DAAADJLOHM?OLNHMNPBFCPBHMLHCBFGLJAGLRLPDHAKPDGNLLJVBLOAJDJEJPRGCQBGIHIGHJFLKEHAMHMEDCFGFNZDMFDGIKKPAEIEQSNQR@FJPODIFKUMG>ICD;NAMIKT@GLFCOCMKIADLOMEJRHNELJECTIFFE:G>AE@CPPNQBOGESXGFJOSXLOQTDX;IS7OPOC?HOSOEMULF@FHIG[YUIT:LC:JE8ICKC@RQMKL?P?MWD@JOHF8DTKLAEFZHK?=SBIY8CO[UBGQMTRM=Y>GFFHZ:N@BAEFLBKIQHNTUOA[ONEEE@Q[PLSEN;SLCQIJ?JODM`Q\GS\PKbKM=F\QBGLP;OLFEMFRAHCJM@>CFRGKHLN:PX\BMLPIHJTPXBFCS@IHFMLRVVCN;KOXEGJ;KPIFHRQPEGVNDC@ROEJQR\EDLZCNCRFKAPOaF=9E>=M@HDHINJT>GLFLI@QLHAIYHUMYGZQLFKIPJNRIRSEA;=BQVN@FHOELM?FHDBGSSGFNLJLP7K>GBHGLAIIHDMFDIGVQEU:LAGGI>UNQ?FNDFHRR@>ONKGHLHJ@INXPHNEHROKHQEOJUILBOSFBKIU@?UQGJFRRONJTJHG7PLLIHKKL@HIAJDAPAWJMGESGH>GA>LIHMKAE6DBOBGBKCBH?KOKEFKEPQBNKIQXDGHPQPM9GUFGFQAH??CG@QFPHIISEGBENAHHMEGFNIWYDC8H>VJCHIKHDLNHHD8MMQD=D@VKGEOGC;ILHQHJDJDKUSBKEKD@L;?G=PMAEGFNEGKRIAP9\>WGKLFKEKXANHNIOEHLAILURKFWRAMMPHHJIIHE@IIJRMF>ECQMFTGHCNHKFMHFMQHGK;HKAPRHWFBQQHH@PFJNQTSC=CKLSDHJMT?COMREOVAN[BDNINLISGKORLIQEGJIMDIOVHDCHMQPKAMAWGF@HHJDKBHE@MEEJTGJ@NF?IONFMDIPIGDBCHKSLJJ`LOB?DQGPCEBBQEULGEKJIOISBCQ6IJGKCICJIHYCI7UUXCNIMODJSTINN=FLECLEPKOHMMBCQ;CHFGHLRPBIKTNKP@HPKGH@JJXNLLYM?DRQEKAXKOLAABPNFGFWCMLADSKPAOJ^GZG@ZI?JHIMHLQDKCHC<\AETGF?[AQFDTYKQNTDLHRQKE?NJ=YFSHQ_KILOK;FBPLLMTTYPM@>MAFCMDMMLEIDPJOLPM>CPPGKGNF>TIHJKMKJJALLLEIGHNFRRDUMKKKYJPNEMMKL:MG?CJJ?O?CMF`GFQKNAOWNQCKEIDOJEHECGLYPCGSFTJQPGPSNIO7GOUEH@pXBOFRTRLCNEMKNQcHSLHIIJMMIH>BKXHPIL@QDMK=WPJKLIHRFLLFKOD?IGKIJEOKDAPOEDLBLJJKFEFKAHEUGVKJBIMJLXJHMFN>CGKCNNXFLOII>IKOSL?EJEJNO=B?AJPAEJUOFLKSMKOV=BGT\FIKJMJNGCTEEIIEKODJFH?IHHKOTKNLEJGPHOBDKKODMCXRBIPECFJHLTPJJHJMRMJLRMDIRQKEYI?HALFFLGJMQADOEIMVQGLUUOHJMKAHNCJOO\DEGNIHMLOCMFU>GICQHAJLTNHENMLSMCD@MLAUQIIKMPPA>AGQEPHD@OREHHGDJGIHQCIIKTHHNJLFQIHQDGL;QTMAMMAIRHIKFRLGNPKOHDJKKK@RIENGMHQFEGEDJBKWIER:INWLDE?ODBAFLLPJOHPHSNKJFNH;A=JLLADFHBPFMFQJKSFQBRAAMLKFKNELKLHKU_LKFEJJIIID>ULLBGFG?MBEMPHMMFIFO?REFKE?FAI>EBfJPFHCHCIHHYLCKKKK=EVOHLLRQJH@BJOUHRJQQFTGXALHGCEMMOMNHVMIECDNVHEJ@WIEKENODTDFNKHENJPQSILDMAMSFBDXHTNEAOLGTKPHTRWMADGNDDHHDLCLBCHBFUIHMEBJN?WW:KRFRAIBKL`MLINMLBKECSDQIZEQEPBDEKJBNK@QMMEMNH]G@NC@MFJGIIBIQ?ESGOCPPMCLIHFESKWKGBLPIAGFEGCLPNLCCCVWFPKBI@PLC@oNL?BMLNEFFIE>GGMKC>MHJF_QIKKSAIILWBNFC>QJSCLKFHJIVXPVQCOHNS\SJIRBPMECNKGCNHLFJE7EMAJ?HUGJJI>^?RDD>GBLELEJDKELEgHGOUEF6DMKRHLLM?GcIMAFVBTGGCDIGBRFFBFMFG@FCGLRFFM_HUEBHTFELLLAIJIK\NBFDGJHMZJCJINGHIPBFOWHIEGBC?NDAHPFEHMKQ?NE=HQHJEHKOGO?MPOG?ODLL@VFEFIMGANGHEDFEQFIKVEMHPPJDFG??JLKGQMKGPLFHID<:O?GF@AINKHMIL?MAOKCEUFRH]HIHXMUGSPKKAUMKJIDNGNNJRDKTANMCJDJJLQLKGHIGNQIJTFVOIDIGPPAPKL@KSRSFCEKEIEPDHEPBFSNGD@H<>NFNHTBEBI;ODJEN:ME@RWHF=NGLIK?BHDFJFDJGMVO=JQQKRCIAQNMDDF@JJ>LQFCCLR?KKJHBBEPGIQEPGBBDGVGK@FPIJJPHELOM?II@IO?SGIOLKDCCKQQ>F9NK7CLJT;K;JEW_KJB;FSIDGJKDQGDEHEFIEBAGEZHHNMEHII>DBIHXCGMORDE@CTJIKHCPEL=ERGLHCE?LILMAJDJFQFMGCDNDJDIHCIHBNF>AKBD=KKQEHUMKHUMJMUWRG?LLPCGWNUKUBJHFEOUHHMGDEBHECHCSLGMF:WBKHN;B@CAQPOE?ICGNKL8JSFFMN_KEFKCDCHLBLJIGK=EPNFLE?HPGOCBAN@MGFLDHOQDRRFARF:EB]NAJQMN>WLTHARMK8QQGS@JHGUGHJLLOTMHLCKERK@LEFDJALNOO?GCJEP=RHVLJBOFAIHWQ@KEEUMMG@=G_DDYEEDDBJOGJIOJFQLDJRA@AFDIFGHRVIG@MFFQMJBSCUGOMJ?GWQHESEFcOECCD?JGMGOISJH\KCJLPJCBNCQGL=EIRKM@EOGKFSRTHP[NIULRNNIOQFGHBJDAJHK>FDIGUOPHEJDFGCSJJJCDMSODG?RHUFWQQGPOBOEFF?OCNOI9KYDGLAFDNB;NCOLEFIGDFSJDJ>O_GEHGMGFKWKA@BMMBHCKOEOMETFNJ?EINEOTTLDIHA@QKMAEPKDQBZYRCKCJGTOH=JMM?MGJ>KGFHNDFSHGJQHGDUUI@GIHGFNEDLMB;FPHAEEUGKGBIQ?INE;LDPDEIG@FFIIBQYTDLMTFEOBDJBDEMQGJDFKOGKDBNQDEZJFBLBLDSQ>CDEONG?ATMVIERDPPDKUDJQLBHKGOLISGJ?COENVEhKLKMN`DJCCERF>>JC]KTED\QJFTVHGWNNC;NM?CUJXSLNDMOLHSKDMFFD>OZP@HNQ]IFGLRNJUYG@GECE@=BBFNP>KGKESEF>LK?ODQ@GKMGQBCSFJSPLJBENJI=EOTLCSYINNCORCUOEWLOQHWWGFMEJIORGBGANL=D^AID7MFBEUAC>H?MMBCJTEJOP?KPUIP?HIIERO?AKH@AXDFCSGJKF@LLF>^<:FL@JE=DCDFKAIFTX=HQSAANRMOKEFPTKJP;=NH>GUODFDPCLQCOACIGDCD3WIUEDCMBGGNBOFDEg@@OSCIO@NDLNGNJX?IMKQMLF?HAI@HTABVGDOOPIT^HKGOOFREJMEDPKFVDVI>QQFM@DVDBEHNGIEURFJJGCCJDI@MVFHNNMKGMSGGH`ARIPKHIGIJAAOEHKNJKYGJISJPHOBOIIOGKKAOLK@TKCSQOLKOOCZMNMMFDKHQOHORIMFLIPEZJOJ[J@EKMGNBEZLHQLUKSP@ADLLMWDONLDK@HFFENFLLOBMM`GWP:GJAFNQGBHVKY]LTPG?DKKQANLELFHJKELKXGMDJIOQMKHLEDCLMFFBGAN=RFJFPELDFJE>CKDTNBH@GKIQIQ@AOEO80KHEKFLNIHMBDEEGAHMIREGBEIDHMMEDRI@SFFJCDUEQFLNPGJIJKGAOHMHIJMJRDGLJHJINLEJIMM>FJSLHGVQJEOGQSHFLGJEIDKG@PMKMMGKIMUNSRPQMMNDEMMGNLHOSECDOFKEEFHLILC`MRORI@KOLJJIMII@LFL=HFA@IHPEHMMLQGBJIGHNLHFI?FKMCCIJO?LTJSJEJLLP@E;MPJADFEQGFDPIKHMIAJAKB=EKFIJHKNJH?DN;AIP@H>>P>NBXLNFVSMJCQDLAEKHMERIMKX>JGHM\G@[EMP9W[LZLLGPAOTDGL9BAEAEEDLFFP8DNKKKLEDKPJLUFNPTD@=OMTHRHLPEEZ\EHJEBPBAMHWPDOGJSHC?OGHC[GKR>HCKJBUUI_IDHLM@BIMFK;RCFHSDUKTFG?IBILONIQIEJNHBOL@JJC@NMBRDKPJEK@DKFMINIEF;LFDNFJWTPME=NLIJILHPGHGPDNNCUMQECMRQHQMEDFGGHIFEIPKKEHDAL@KMAHIDLHBEGDHVFDQOICVWPFHBIPL[GEHTDJHQ@a>MADKHJPGNEPLUELG\DDJPRJPDGQKI?@=FLKHQLKEMQEGBBBSQVJFDHOXHOLQKGKHSKANLMVSFTIBNMGGDPDNRICGDMC@IHIKEA[IHFL=BTUCD=>EFFRCCJIIM@AHSFCNNHGOWMVCDFZIPPDOXEFSCQDKDHEBBQF@HINOQAMUFKQBCIODIINHJAKDMEHKKGFPF?PSQMGDGKPQRHOBJHEEJ@PJZDLYGSFTIDJUKYIAHIEK\JGJIEHPKNGHOAOVFLIWEIDJABEOCFQHHBD@L=MQHHCGDMN@JGNSJAMGIJFHIAFFAR[AT8ABPBLH?PIFXIV>IWEEKFRPDNWMWDGPOFNFI^OBLJOJEKEKLPNMMNHKFGEJL>DAHH_@KLHFNHFMNMA?GKK^EAFMLIUQJJKGELIGIFX@MKMMKJJJAPPIFMGGRFFCHORCPLHFUKLJSEFBNJMUIFCFFRPBDQHFJVDJFOFGKMEJ[EJMKRCALKIKEIADHNMHPD?OUPJPFKQIFRXEKFNPKFQOFQKHKPXNHP>>LJLOPKPFOHGCSBHAANGCIKQLP@DLOGFHO?MHJK=SMSIDBFEWALUJNHMAJDDENHCFDKILKKCP?KFNHRNFIJIINNQJEAIFSELMHGELWMKHWQLDOVILKIDRFGHHEE@CLFEEHLK?QHEFJIB?GE=FCLFKTHHKHGOCEHD@CH_H?NJKJLAFJQSMKHILK@QILDDKNIFBIJXHDKLP:JKLVLD=NINNQIOGAPFPFHJZC^WF<];=CIGUHCVIFLBEJJJT@IQHCFLNI?HPKJOWFDBKJQET>ISQEU[MMJNNMHVBJL=R@QAGJIIIFZUJLBSJSM@GNfHKLPTMOMOF@RVTNFAJKICGKHVDFZV8CFJ@FKPIOXWJHGQXL@HG@JMELIDPIEPLJFGAHULABJHKLNELDTV?JGHJCEJbJLFBA?=KU8XLG:`a>?OZW9PXVAWGSI6C]M>VSOQJ^C0JQTUZSVRC7E[TQOT\NRYXFTZNLSYP]LS7\GPHO:^E/>F]SRC_=YACT3]0HZSKOQMj@;Y]NLN??HT>UH5G=ESUAW:M9HLZENed@;SXKSF;IKTO/OVO]R;IB?OL8XX9ZZ6POMYOSPR?8VF[QEUEHaL@LA=4P^JAK@QOVQ`J[^:QUJY;X@W9POPM_L/ZL\EI6JSTYJNGMHIER`4AGRVN@IIORPP?NUGFQg[PQNId:@HH8ORKWDSOP@CN?=Q>FB3U^:N\IFYj=]ATX9HTMJKOJLE`Y9L4G6@XF[JCGN@HCCHSLIF\NJLWAJNOIBJMHJIKRHD=HLRDSCNGEGMHGJLPGTQM>PGGJNNAEULGMCIA\NJLNLJRHJIPPGICZQBE@AVJUCORDFLLPCFEQCDHGH?IJOOBD@TINCHQEFAJHILO=GMJQOCSGLLGJSKSHEHAMJKJMNDDVLDL;@LGGA>QNIK@NKBKM?DTFLDPNI>IBELQEIHNIJBLSJ]JDHQ[DPLHKNKPGERJKOHFRIJADKIIBEIQRJENHNEUFQHKINEHIFKE>QCRHA?OYCFGRGPJ>IJIELBMQ?JFNRJJICGFGP;JK?NONMO?QGBEHV>MIPGCVIINCRTMKf@GXFFKEFICHJTN>REPGDLKJ7EFZRDLDOUCdBLIKLOFYEYKRUZBERWIVSMAMJKFHGJBBKVPHFFKENCL6LJEUVUQDOBLMIIJNGKJTIJIEJ@GPMJMMLKGPND@FQRQM@KLLQDIQHGEHIGIEQULGBGGUME@I[JCFFLIPIEEILL:MPSN_NPIGCWESQKI@WGEHIIEKGRLWEJTNHIDSGJMMGIDEIE=EMIGOKGALRDCHONGUDEHBEMLKLSFJK;@JHNFOHNK_EHIHBNLASGM>BBJPULUYHHMNJDIHFPKIGJQSESKLKC;HAM:DIGR?WCIKDFVEFEGGBCRNMHGLH[MLMBLJF\UJHNGCNGFHMIGESN?HGAPNBLGJGMDGVNJNUIGK]GDBN@FKRHFCLDGEHHDNMGKPSMGSD;MIFABNQF>KNLKI@ONTGGOMMJ:PJBGNBKPQNSIBGNJCOCJMNSSKYUNCM>FSUMF?AIXQAID@7MHWJA9F[JIHKBJGHFEZIIEXCGIFULGBMJHFEH@CIKJGGNGKLNMLOXSBWNNNNMLFFJHRPMPZIOOHAIDFBGJIXSKQDFPALLGJONIJHKHDKMBEGDLIBHEIXLM?QLKJDKIJD=MQCKSASTNGCMALIRKMGJFPL@RERUL@LKJMGHIAMQKFJJMU:FHDUKGAKKB;GVFXEQJODLIM4NGTEALQJBMHVMJMPVPWBIDNRVGIGMMLDMKCAVINKHLV;FI:JHKRLSSIVMHBEDFMHBDDXEFJJDORKDIGDDSDFLHJSPEM@KPMRK>OTHMFUOJIFFXMI[FDHJBJ@KMGKDCLDJLHRMFKLJSC=MGM@UMLUIGINE>@OGBKLFAOSJHDJCGJQIRLNIJMKBODQOVFEADIHUHBL>ROBTDMSGPLAAKFHGJFNROI@DEFCGRLMJBHPVTLEODLK@@JIIGHILFPXFIQJDJMQCECLILIIJHRPFMGHSRBEJ@HG@OELYKMAQTLJIIRC@MMABCHBERDJH\AEUDMOHMFDHDN>KT=9KNGBJQLBRLL@JaD?WGJRIEGSCNFJA@ADGEFDM:LPGOFD@OKKKUNTKJKKFBFOOIWEJLAQCMV?CQEF;DWE>=SH=GACHEADJMNO?FIIFWIDFGLMJTMESFIGJGELIOCIVGFFNILKJOC?DSDLELKN@HTACEJ:@HDIDRKFQGFIRMH]BILOJLGZI=ILIPJCEFFBHEJHIDLLGIFBLBMFKO=JHE8I@BKNFNBNPHCDN=JFBYQDXP?JKPLNMALENDRCHEKIPZNATPHCSFLKNH>GDIP>KB6RL\IEPHK@OGDDJDFFP=J3_Jm>@BHGNX;GC@\GCAEPQ]PNBEEJG;3HEUBFFZTPRXI;CJ@HNSIG@T@E=PN9H6I_CIAVJP@CHJEEHM=9JQHIGPHLBODKMLH>FKLC8AMOHB>IFnBJ@BEHHLKHU[BECFJBPL@F>>MGPKEBMJDOEJsVWE7OCHAbBHGFNNQJJIEGWQB?KEEBJ@UEEKJQ=G[NHELUB@X?NAIEQHBJB@NAOGREAQfLCQCHLFPBIG?PS;B;IPMQ;FS_VKJL?KMRHK_EFRLC_BC@TT>GDRKCWXCIIAVJEOU>SPI@VDMRA@WGC=IDJIAKLLKQFNC=D`QHBE8IE\WTOXX;KTAF@S@F<;EKGYLKHOMHG@:MJYKGE\BAANAVGQNQINHKPRGFDMH?BLMJNWV?TC@EE9PJ=OHFARJFDFMZ6FLFGCGZIVNNCAGKOYNGSPJMLTUQDGRDUHCJELGFIV\MKVMDDIETJ?OLaHAKAXAHEIGIS>VPEBJIA[BS@AK=QF@IEBOKKHJJMQ?CDLJcKEFNO?PQBS@GGKLBI>FCEEL@HBHMRVELGHTKGKOPAFFHJKQLFLDDBPJOGLPCGIMJI@=WGDG@=JHLBOLICLHILHG\IGKDMDBHCKBNMTICJIJIKMQKIZOB?NJFFDMOOCJDDQR_EGOPJNH>LBKTHGASUEEPFKGGJBPILGGBJQKCPSCGLOOHJILFBJKKE@@HNEQADESHJ=LGPRR?EIEHHHDKMHFFOMEGFGOPIKIBTGNINHHIDIOFBLdNN@BLDIIJEFEHAPIH?GAC@CG^CJUBFIEJIDOODHNFCSDFJOAGCJRGDIDAMSGIHBL^GRIUGFGEHKHHNIJJVEFMSEBBKRLOGKFONCRFYJCQLKZ=X?RJQGBCFKEHFPHLJEECFKKEA@CHODL@RMJI;IHDKDGRKFGO@D?JLNCJ@BHG>IT][EKEELPSSILHQSSLM?RIOCIIZIQ=BGJMJMEDJIORKJN>HNKMBYEEBHNGMMALNJHPIUSEKNFQ@DM>MCIRXEAQFJOK9IKQKHMJILIKPEQIDCFEDDLMKB?DBMAGBMCCE?FYNRMBFKNHSARQ@PHFJP@ETGHMIGGOJDJIDESBIVN@EEJDHL:MK@J:O@KP^NLA>=BDLCdPKTRPDDFFICYLBQDELFRRDPIBHMLMO@CDMIQRRHMHCOVIHI>IPFFHXCI@F=TCJIHYFFBJHHUHIKG3LTFIARHKQGMIDAAGO??GFFBOJFV[QGOIDJLN:DERHSMVEMQYFGCEKHIHILPKDCBGJDIFHJGIXKRIEYGDJGJGGBJJSXJPNKCH;XASM@9OKIQIMNNFIVD@QCC>@NQI@HaJGKIMHPJBEEEDPLGHNAIDERIKLOCNVHTJJGNCFYKJ@NOFNBLAFPHMLCJFDMDPCEQEIHFGNBCMTJ>PIIC?KIBMIEHVDBRXKGBFDBDJSOOJ]JK:P@[IIILKJHCKFLMNJ?DIADKQCKTGNUFSFMP^CFMKDJNJIEMOYZKHIUJGEJHNO;AHOD=ENLSTBBGT\KPMMOMEOS?PVWGWOELE?D>=XOPNDWRCAJOS@LQJEKLM9IGBKEY;LT=DRVKDGGN@NIWDD@DI[FORWUKA:?KOV_MQSVMMQHQIWHNCFIIXLNHACXHRM@DIQ@HLEFJIKQAWPGBNWFNGK9DHNMKWMN=BILLOMRKJDEMCQBKESCLXDPKHJMIN?ODULLRNCTILNJ=HGKEPHIRENJORIFENITI/IQWLECNCR>@>HKHT??KMHe:Q?>CJ4KV6QLBI?KIIMG@TEQWCDHOEJDFLBNTCSLWLTQAMMJE=EWY?:BC@FM^G>IGRL>SK^EABBD=KGUHH=NGJGP[8;CKPGOLMbSMOCY9L=GALN]DKSXOPMJFHF?GXJKEQGTCIEG]DBDNCLOHNLFJSKCPMSELAN>?EIFGM=WBG?MK7@:PQHNHPKIJBIKALKAJ=MN:GBLLAARSCEKD\8BHIVB]JMLLZ?SRAQAJOFK?JBF>BOBPLRCELGPLCO=EHO_GBIJKJMIHID@9:XNKNJ=AHEG>S\LGFUOPFJENELR9HC[I^CJGFIORVEF=EINEAFRTBCKLC=LJJYI[EJDGAMGSAGJCECRTJXBKLDEUP@BPLFICHVFURRQCINQJIRGAFGLFRHDGNAHHTLK>9;?IEFLJKPDB]SKFLJIJ`RI^>LCGaPSIEXI?FEJAOQASPIKVQKIH@@LKLOKDCIEMCGB@HCW=BJIKDLJDMAJHEELQPQQFH@DCEHCJIIMDQKIJFJGBK@IJJFG@DFLBBIKEKQONEGFFKKLLDBDEILPHKYHJELFINHCKTL>QTHPRIGGIKRGBLEF`JGHLE:E?GGRAPKQIE@INIRFDMTPJKCN>EFHGTFDKHGJ@HNH@LNHLMNKNJOOATJKNODDMMDOMV@CGTKENEHYHYQJK:PGIBJMKDEE@GVIMHQCMHINHMJHCTBNPMDGNDDVDDGHE>TKPQ@ZEHHGXSGEKRI:JAOEAFCHAZG>D>GSKhMAH>HOTLIBCSZDSOCOYMCTGPYFJLADBLN:NRAGFLHH9PF@EDOCGTILKJMNNLQSSSC:QFIKM`MK?ENO@NCRIDED=OTCQR;JI?NOYNKOJK;JOQMK]>IBS5IF>WFSMFE@GKFJRGE\SJFCJUX>DHO?L?CPNM6EN7KFALJAES^KLDDLNJRMUJ3SE8JGEMKOKLTCHGE[DV@AGAMNLQN=IFDNIEKL>UEKRGNCCJQ\^GDI?RBMLCMLEICQPENZO=IMNVUSf\PMGM]FM>JGOL@LBBQZ>OGIRXQ?MFQFJIJMDDEJDPKLIIPCLJOIDJOTPQGEQEIFRFFGYcDKNGS?IIPESENIFDMUL>CHKFFRA?GJYSM?QDMIIPDMGNKJL:NHGEPQJALHDTQMDJ>@^L@P[YJGGbJRDST?OCDEP==FNJMJEIRBMLO8BQIQMT?UIENFNPNGM==CEGIGODG:BCXFgUHD;C@JNHEXN@MUETL;RUVCUVRNOGKRQR>F@JVG>CZTDMG:EAEFHLL>GIFKQRBQB@MCMLIOBL:=LMALLBJOBGIMARFINDAIU][SOCUJIFIHFJBH?BADTDTREH?O@FB>QFKIMFBBEMKLDEAO:BNE9MLEQGBIKCA_GTBKHNRPFENBQCAI[9D:JTMBLMFKLJLF;RJMGHRTD;CPEEUHHCHGDHJFMLGNNRRCKBFBEQARGfAMEETNDHJOFAKKbGJO_EIDBJRAOFHHJD@HILTBTHTRVLSDEOFLCQJWUOEGNLPJFUIQJPPBDEBIMCJHDCTFLMNOC@[O?TIJHIGDHBDPED=:JBJMOLNDAPUTFSTbSJJFBKLNKS@PaIDINWKKIPV?BOHNLPZCACF@EKJGIJ]OBBHPIL>FA@KLLQOGXPC?JKKP?NTPGGGOFN=?DLVIHM>JGA@KJLRQSS@BD`eH@HIHG?L@CEM;UHKDSERSNGGU>BEFHJIMCSZO_C9LGK@NAF_@LJIGLFKBHaELEIGTEPJDIEHHPUGYOKMTLJSGDEAQQJ>KHCGHR>HEAKNMLFNLRFRGTILPTFKQKLDKGJJJOJSFJXKK]>LTPONFNNQICJPNKSIFJMQEJ>[KGHJICHEJUFMPMFIKQFGFSTDEKFIJOSWHNFFUI>GJGmGGOM@FLEIMLTSGKIQQCHJOIRNCFYGM:LTKFMMTHABKSLNTLPEOLPEGUQHJEJDIEQFERFNPDLHNXKHUKKJGEHEGEBIHFSDKEQIDBCNFEGENNJHSRPEDHY>VI>LDLvVIE`CGMNGOPIKFOiILLOSGKECNKJEAAFFSIDMILELPLSDNCDOLJM=HFNL?XGQOKJKUDGQFR?JV^HGPHKETJNFJJLGKHEITNEFKFTDIQU>HBEICNNDRLKUGNJDJGMULQKALLOOBHRULKBGJNT@E>GCNEUNH@CBYGEGJBRMPGWLOQNDEJJIAHKNMIVDQRGEQFSJJCCMJOCKNJSLHQSHAIDJ?KGIRMEJROFEPKQMJNGVH`NVNENSQ@NSFHHAfUIH_G?JGKG@JcYIOSBHQHAHPJVJHFFCGOKHBCGQOHYGGFO@EJVBGCWMUAIJNDJRPNHDIMGQMORTL[GKMRNNABHHIHQEQKEGOMJEQE@OMHKJACGLFFBKGFHQGMFSYX>BEBEIRKPKCBBHNZBA?@R=JJGGKFR>WIMIXNIJKOVOJ@B=YFHEjMCRFDM>Q@DKDYJ7NDHHIBQFOJABLSPFIE76[BBFF7FBRO8HKJK@TTFDFTBHF@JA>DTWSIRN@RLNIEIS>FKDP_CJHRPINPN\QR4W=EDCO@LIC?MS@XWCJFBXQBDLMGfAMKDO;QELE@?HTNKCYGEYHJ7FB9DDGOMG`F:PPHCHEBBHIF:QLNL[F>RPSNTSRDWKJBVSSSFTRDDUPUPXEFNXPPOFUHLUSRQJLKWKJONWJNQJQWVPY6HONL]XQYWV?SIPT>FNQHMWEX\WHHOLLKNPJIGSFM`USOFVMbXOCUGPKOTVOQNMDVSLFTFHCSMUZRbROFMPZIKSLTPHO\LPGLOTBH\UTK>HLOLMQNLKTMJVMLHaHZJFUHHVICE]HM:PDIKEFFNCPMMQTLMFHMNLmS`]NPDQEOCNJSJOUF^JKTFMSJNLFHOCNEEQKEaUNKUYHUQFPLMHZGLEVSRDCLJDTG@MOEWMITPELR]SJGUC`ZTKfHMYV@VOWMH9IDD

6KJUOJHLDANAL;D:R>EUNLW?E9HFOK>T^Q7H8BM]J>GJXKBRJIHAKJDEBEHA@EQMJ7KLHFHFDRCH@KHXCBMB?E?DIFFVI>HRWKAKSB?6PO8EEPNe2^AAGOEQGH>QA=K;CHPFCDGYKAE@FJLIDMF@LVAOVEHGHDQF\JL=MAJ`E@:C=9G;JRa?EBOML?EIRDKLUHENKeWBELCF4N=DGRJE@B=EQMFF;FPTCKVBNFROLWQWRFX;CFN:@NP_=bEHSULXKNMODIP\LKBXIOIMPPbMVKVL?EJIO@^IfTEWVTJRHSPHYNQERLPNHINPRIJSGJLUAJLFLFKNAHLL\DWGRKQZ^YLHHQAu[D?LMAFFBQJZcOFKBHMMNMKkKbIV7HU?TBI_EOPYeTTJ?WhIJPTIYBJQzIACBJB>ZLjVOVSNHVJWHOKFP?HGFGA^AO[RNBVCKEJGkTBMELJXLEDF\R8SeKRLHQXLMCZW`YQHJPGKTDIMHPG@CQRKGHJFHJFNOIQIPGAFLIHCAJG?AOARUA?AKBLLF9AFCKFYB:XBBMLERWDKEFB@H;EFCDAHDXLH<@MRDHFHGFUDMI@\MMEALQOPIE?>CHALOEFHJPMGQJGMHD?CAKAEEC@DJFECA@TILD@FL?WQNHEKISJBHHKL?OQRJMXHAJLIADLFGCJDRBQ4IO[L?PI[MLIIGWXBYMIK;MBJRADICTVV>BKJ@Mb>VJOQFASNR[DA1U>\J@PMNVMFH65BSI;IEDMUM;FI`PFXBR`A]?J;GPOK[M?JLW;O>BGFENOJGP:IGQ=;EUPJMEE;FQS<;KIQEGSBC>BLAFKIBFE9BEBKJ=AIGKTFMKQFIEJ;?XHKPMTEUE9EA@FDFHM=RTDGYITEJATMO;PEH9JPDBLJNCOWGFMLLYZGIIEUXJAAFP;ScHENUIFHPEMBIHJPLCJSMLKHUBFEWMNKJOXCNUD\OAFFISHOMSBJHKHIFNJLOMUP;EQGFGLI@TEEAFNMIGGEEGDLF]HJBRENDMQCRSRLI@GIIQR@UHJJHZAMAFAOLSCD:Q>FHT>HMISTHFGDDI?GPEEELFEOJ[KELNLJJKFKFLS@CEOJM?[KBIHKHYHZIJCEMMEPADJFAMRPDBNRLKEBEJ;BIIKIFAI`?GDPSCHDBJU?HQLGEDJJAMSFHMDC=CSEGC?DTPDHIHLLN9FYNDPMULLJODP>JFCQNP=MANCHYQIBPMGSPECLOIRPESKJLLKDHSBVTDBMJUDNRGKCMKLGX]L>XF@BNCFJJ>IYFOGLJ=RFBUA_FBBJRAOEMI?QLPRT=bRHCGK\IJCFLLYSGQHNDHIJFR^?FHOBLHJIINK?EZPRL?BJGS@FMPCMCMDKFGDDHISLPKI\GEILCJFLHL@NCIPJHNGAEIHNPCHIENCECHGPDNJALJIJUOEHFTJLJKUDKHNIEMAK`QKLBEIJEVK[P=VNMN>GMJVWKJMLSLDFLDWKHIOEGGGE:@AIM@HFROWEHIHMHKVFGGIE@DL@KKOKEF?VCIALFNLGPDLMBLMNBLEADJNMC[JGIFEJHJKDCUCYMECFTCJHR?MMETIMEI=N;FVQW@?SSORJYDMWHSEFLBHNIDIGJIIKRBSnOHCRHKOG@BJL=FDJCGTDFMAIEHZOIKHCMCJHFLNBADVJWNI]DNMIBC@NDOTJDULOPJLNIdI:FNMK@XNV?LHTDLOJ[LOHI:EWPOJMHRLQKKd8EPVONGHCZKAQGLI>F[IUGGOGQBF?FCOuDOHQE\EKGAFI:K=>SIBNRWEVNFOAKSISHHUGQRMFNGATMCKGBBNWGCNOBGVKJLGUNPOCPAOIHOEJROKQBHIMXWJLBYTLKLPJEGSULLABGKMDGRK[KMKLRELDHFFFCJMCMKHXZ?K;SOE;MTPCJI@8FBNHMSDKAHLSC@TGNeIJDJDQAVJTFEKKQINRIPEHOTGJHHHKFJM=HJVQ]KOFMNVING@FJQUSH[LO4BSaUGG?JEMSRQ6Q=CR?CHBL@CF2PUTZINKSFL^JPNF7U>ZIKH@aCRQOBJBBPQHFRKLOK]XcDFJaC:EAMG;ES>ASG\BDYPPTWEIC@PDDNWXJOGMIPQ9FICFIScOOOMZV:ODMJMJNWRJQ9VEKMJVQCKKIKJDMHIHAOLDKWGLAULOFINBHLIHIMGJNRFMILFHHTJCOIH=KNGINHNLCODH;EPQMAKTLC>BEKCSKJGJUIQQQKSRQDGXEC^XMGGKHSNGJNLAMGSK?F=GEBUHMOIHRDJMLGFEAHK@JJMQONGVFGIFFAQSEF@JHAEISUGOIHMSSI?BNCREH?E_DWS^GVBRLQIH@OLQN[JHNBRRMKEPIGPMCQCDJLCYUGVN[\NJGIZ@HLMCH[KQENHRJQKSECNMIXK@LNPI?=8UNFOPSDKR>@NQJE@GKD@CO;MHLBHGS=`YEGJF;TEZLMLHCHXEKMBAHRLPHVNPINPSBBJP@EP>DHJDFUEAKGRLOEADCD;EIKIKPH@LKJKLFIXFVDNLKIHIGGQKKHESQIBFD>IHLIAIN;KS?CKFS>:BIQICFUCPDBJ9FIXLVNLQTMFKK7SNRRTFMP@JNCHCGLFM7PI@ASEPIFH9T>ENC?NJ?KCNKACFKNMN^KI9#AHSKIIMRMGTQ>VEI>9NHQP>LEFJLOHI>OULRFMUQBICIKHEHFGBDTMGPIPMRUM>>C@VINQEBMBJ:QJJDNIO;KJA@>IKI>D;N:OVLOOHHOSJEDH=BQFZ?CEJNNFA?RLCDNQ;OJJPHBTLIFUIJAJID@DPMVLMUDPGMMOJF\KDNIGCRBCUJDLMIKICXLPTWLGPM>PFYJGLOGIUMQENI\MKAECJKIRIBMLPCNSIGNHHO@IJP?NUHMQ@JOBJHGKTHIHJABIKB>STINYOXKKSCHGJDFDODOUREMDKRGFPFGOIQN?IGTNLDLKPNO?TWFERG@NIENPHQHIIMIKCR@QIFSZ@OHFKGUMGEHDOMFOK?@ONJHCGRBKMHOMJDB?IFO@PCIGGCOTLLJONOIF>WOJFHFBEIIDOBIGGKGLILIMENCHFGG@PA=FSJPTCA>>CDI>GCMMHBEFRNNJLEJEANMKRKEIKDRIGMGGGG@HGKFQFKHNFQLFBGC?NLIJHQNLENL@KGFRMJUIODJNJKBHVMPOPJJHFMOKEHFAJJOAPNBJRHJLKJMR^GDFJEJKBJSCLNBCGHJGIP@HMECKRKVFEQFLEIR?EEILG?QQSHKGEANRGDLKFOIRHDBIVPKGLKFOKKINBDITIPGCMLOHKFJHKPBSGEFLRKEINGXJLENJGQJCHBGGRGMLYKJNFHT=HGCJELEEBDEKHQOPGB[WDEHUQRSVCHDHDLGJHPRFELHKMGEPCHLPGLMD?MFFP;FEDCNBPHOBCICGENRICENVCEHKKTCCFPIHGBXMIRIODDHEILMQLIANLHEKGCPHYNQEQXNHKIIFECEOGIFJKBD?N@DMTNENCOSHHFBEPPLK>HEDGTKNMJGREI>MRDDGICAMKOCADCIEG>T@OQU>MJDPIMPIIMB>JFJBHE^QFLFGOBQLLCLSNLIEIEGJZCCADQGLOIVQQJDDJN=HGQIHWGRSNNHMEFOJEFOGFMSJLGHUBDGGUHRKLPDKHHUU[CEMFQOKFCJMDEDGQENIJAMJIIPHQ:GQEPOOPMCZ]SHOHYEAEIAEBIEKLNMFKDFHEH^JFALIHPFNIJEFCFRETIEIGMIPFCDTPUPLEHDKGVN@PANIPJIC=SLXIFZCPKNROCNDMNCMM?OOQGKUJAVHJ@JKN>HCDJQCDPHFJCFGFIJICFKELJWBOJLHMC?OBQQEHX?M_MHMNIHRMUHECGFHKHSFRKAB@BDEBDLNNLRDO[NPQFD=ES>HELFQQHJJC>DGM=QOPEGME?ECHDKFOOOXHGGORF?FBFN[PIJCLIERGO>PECIEOTaDLCTAMKSCBKEJJO[FJQENPFbNGGXSCGLRPOOANFLGHD=QDK=BNLRCIHBLPE=@LKFP>FBJAQQ9GGMRXLGPHFG[WKSPSFOH[JSJPDBMJEAUDJKH?LIRJRAEDM;RN@ICIBI]NVFFF<]FJZ=ESDHHFDFCLEME@>HGUBIGAG?AEIC\JAT?KEQOOEPOUYKIVLLCEKOCECABJJGENGFOKJKGFELAIKTDLLG?@FBWILQLHAD@NMQDDIA=FNU@M@KNJRKQDLTEBSEIRENMINDGCR@TGFMF?N=OHAIIQJOCENBHXIGURDBLH;fGW>LNEKIKB@CKKUTMGJMTPGLJJMEDGEAODPGEBBNPDG>VMJJA@TEPP;FHDGIFOTLCII;CKCIPGI:FHRF=H]JOFEMQELGD=QVK?GGCOGJIYKJIKGFVRITIIHEDKFGR?VQ?>DIYFHGIXFPFH@KOLWJRCTIIa:gO?AU>>?[]L6OQQ:TGUOF9UD5XSCJAhC9TMRKIQR>5:AbOYNCVNKFYE^ULNPRPJI^?_GN6AMIANJ7<>NLYCT>;RU_LLORIL&F?E=NPDZCNQJLDD>8D9B=;OT8OMLETk>N7HU9NYCLQMRNDVE@JRBFSL@DIRKFL?DPTGH@EIMDWEHHBKHCAAKCBXJDICQEGS`HMIHEKDiZOYPHH?FL>FDUIFHHFI\KABRMIZAEAE@OL?RGHEFWMLJGKCEKYDEIGOHHDACNCLSHRPDCMCGIDYCNPYDIJO>AOMHMKEGOG@CIRHIXAOUKCZINK=JVEMOLGNSOGGTR?GLFDPOFJKGPHKMNOOSNOUWHPFFM]MKEEOFDKIQHLKPMEJKHKMLMHHNBHIGDMLRJCHF?HKKIGLOIRILFFDKGLJKCIIQKLTGGHGLOHQO@OIMDMGNAGFRBGLJHJGIENHICLRONNMJMIOJJHGNMLFMJNEFNOEKHIQKMICLUGESGHEKTONGPNFAIJUd]JCJOLFGLKGAHAHDNHJDHIJWLMGKSOOJEOJLHLQLLLLUDMFMHJGCLLRVSMJTCLOPIDFGHC@CHKJQPLOJTGMPNPLIKEMVOGDPHUPFFOIF@FWHCPUNDUQNIAPFSBUQGGKO:KSXDIWWSCE8HHNDGUKVAWCTPFVA_UDNKWMOTG;J:JQCGOTSBLKHSCNFJNBMLV?NNYQ?HDLTQBPHGMPXQFFDR=\RSQOQPKQPDTBGCFMACECOKQKIBLT@NDP^;OAR?JLYEJL>HI:IU@KMHEN?aJ@M^PTELWXQQPDT>GA?PXAPQMIFOHFBXDFLUJCYNCKO:G@IKWHMLZL9PNAKVGTG==LDNOGPGXJVHKAFSIIIVEMMJRHK9L@UMICHaTRAH@LRE`CJELPJEN?RMDHVQFOWPEPLJWO?I>PI?MMDFINERHHRTGGPKBFVLMMNIPCDLGKJTC@FF@SQMMQCKLGSRHVNMPLPGPFVJPNHCGB=BNLOGIINGZOQJNOILLH\AKRS?RUPRVVEOBOLJK@GPGYHJNQNOKJJGITP8JEIKMFMOLKK?L@EV@@JjCJBCUI>IDI@NWEAAHTIIUF>OR?N>ILGTWVUNSPR9VVDSIP;=DJ@EKNA@HKM]JAFLDRHSNG@AIJFF\JLHAGDJTNUEBEGLLKOUQMHF@ILOILHFKFNRJESBTK?BLAIPOKBDIPXKNJPNECMMLKH?MGIAHIIVKINdABIMGQKDKKH@?>BMYKBLRJJMRDHONKLCL=BHE=H@PO\JHINIRC>BJKJOTDCN?H=gACPYDKLQPJMH@NGDE[VMJE?OQB[CQGPABCJJDDPJJRNRTUCFZLHKZEGB>NHAH@IHJCPHJULFSKWVAEXM@MTREFJA_EHOHNGCMQ?LQTNJIZHLJALBCEUIMODBFPPHIXNLEEEIQJG@LRHGOLC@KMOHD=?ICKHQNBNKIEN>DJAILLULLWOECPHJH?@CALIPTHFDPMQDJPCKG>JL=FKMTKCO?CHVACEC:JHSVGMZ;HHJKD;LYPGNGEPGALJ7UKHFNB9REHNPDEGQJO@ODJ@JF@PDP\LGM>>EDACBNGS>HFM9OHIFHK?N@QPUOJBFMEEAXU?MQO]>HAA>JPNFGJALVL:E@PFJALM>F@FICCUMSNFEI9GILNIHHFH>FEOEIBHEFFDMGKMATDOMHLBFRSGMA@KLBGDXD?DDMDJJROGG?RHCIEZEFBZKITHRLKX?EAREGSCRWFGG@FCBCNAKIGAKDDLCPIQFNPDWGV=LFO=DV=NLCI79FFHCGIIKFJHIHVQHOHAGMJ@QJEDCK@NHBCX_IKDPYMDREEHGFG@HHIGO?ULVFBEJNFA:LIMMKCTDTA;SMBIIPOOGUBHRCUMGXAKNPFNL>JLNMNGPCDIFQADGKHJ?IB=HJQHVHJFGFMQIHIOUGSGEFRJMP?:QFLJMFJJHOMDSBMHIFM9GF`VDKZVMFLJDJ@_CF>FKQEMHaVHSROCHPWL\FRPIJEMW>KFVPUVAOJJJD>LD>IMOJNCL@T:@LIFG@MXFATOBRDNPKEMGXFPEP\BKQWJMGWPNCHTWPKH?DTLOJBHHHLZFPMHKDKKIMQDSDCJNK=J?ATIEEHQHCFLI>OODJPE=FGAKERMCMCLEQHSBNQHKEGCCCDL=JCHCFMTGGGLDNIHE>SBAAHFH@HFJHLOBJJNNGR@COFNKKHNQOJGL?ELJCBBAMBLJHKKDUADKLQ\GKCFXPTQTIDDGMTJ:@TJAIFCVGMME=@?BIG3J^=UIEUB>PIKMI=PRG>QSDDDAMLQEOBLGN7BLOXCG[R=CJIDJGQ:G7MECNJIQQNL\AB=C9ICJHKE@JPSHLGAQAHJ=JDDB>NJEKOPQMBFI7=CSFCNOMCDB8SD4JHFPGRZKCLHITUHMMH@B8<@UFKKGHUICE8M>S`HNORODMKRPQIOQGVE@FQXEMIFMJFOVBJMO@LFKBAMJIHQK=KNPLCPBDCKANOGIKFIBCLUHDYDUJEGF?GZ=KIQKKXEFBHCUFVHPWHEKADYNJQBGANZMUJNTTMMAJKBDMEANL;F?M=GIQIFEJHFFOND>GHAK@HDBIQCMAH8GDBCSBBI@>NPHSHGLH=FJCO@JIBHMIELCPCBPBIEC@DOPHDAEGOIMDCGN:H;_@DIFLMKOFHJ@A?LENB?JHCB?JPHH?IDJQKKIJ;?NLIMKCLDVF@ARNHOGGMAQGMDGMLMJZ>JZOX5VC^Y[SYNJ:BPNYSKEOM>GULMKT8VKNAOOGIR?FFEYMKBHQNHGK6WE9MINBPDJE;DZGO;B9UJM>E>SE:W_OKPIFIIFBKOCF=QM4IIODT>L?MZHMMQAIS8BMDNFBOMcEEESVTO8PFAGFIFJS4FJ9TXNHDLJ[P;L>^F6IMBGERGG3RG:OML@IINSGAKHRRV`DMMGD@VH\BDFULGHODEMIMN\MHFEBKGC;HROBMO>XKOME?GNNGHECBIBOPVEJGGaB?DEFKHAAGUFFBJODWFL@@XHWFEMHT>@DBNKIIHcHEHVAH@MF6^KPLJMPBWABCIEPEWVCK8KC=LMcFNDODE@KHXMEKGEPUH=>JDHSGDEHHCCHLLD?DEAJIHKJP=@TKMIF=BJIIyDCNHNJ;ROPNCFTJPESPANLHLKHNDCSHL?QCbTTX6KADJH?FAKN[JNEP<^IEFMEFMNHJLPI>JCNODK[MEDGMRYGQJNONHTNVIYTJHBHJ]AREATFDFMLOBKKFPHR@:QMOH?GPDELPLP2CJTJ5II@VRMNBDJWP:>ELSB@UXKLFCEGSIIPFI@NBIEbHbOHF?JSPOCSHNLDQGIFKAHMBNO?EA=RMFHPHDVBHLRAWSJSFADJFTFF@P?GBN=JGGPOMMBCDLBBGRFEIOKSJGODDIIOIFMIOSLBTCK\EFC?JJJcDCNWK:IMKIVCNDIGMQLOR@=RGFCZ=IDREPTAJPNEJIJMJYHQEPOGBFVNMPN:SLBG?KQOUFK[DAUDEGGJ>WDNSFJJ>L?CQBJF?CSNIOMRNTM@@HQBKITEOHXIEFI?EBIIPHPTKHKADMM>HMNMDKMPhPHHKGRNTJ=HILQGLEJDCOHI@AChTFIBIIDOTALQDDDB>>HGBBHMLD?EEOIJ?NJILPNLWPQINQSEOE:?PANOOFI`HE=IMALMESRH>DIF@JLGIPB7EHIELIPJHHFFKM?LJUCOHRODMJGILGFGIPNMJDO[J?JNQ`DEGOEIJRJHRCGCCIG@FNENTUIKDMIOEEECLC>EG>JOYTN?@EPBBC[HGRI^KNCHUDA>JOEF]fEI;IQ?_BD\MFGGaBPK@^WclDBKXHYJ@=EDHRR[S>EGICFFXFECM@XTTCITDVNOBK@MBFuDCnGEHMGEWNDKLGG=FGAEKHJKEUbRKOFDTHMELI\S\TRNKHHMJN\OYGCkK@EDAHHCPLFLNYGTPFLGI@BA\YLSGjNOM>@FJFBJgNMaJCHHH>JHEZG?HNISHGGVQ@EUoEMEKQ=KCKcNcLdGIHPLN?L[NNTEQCMLRFMOLNLOEOECTCACDJE;RLTGRLGLGGFIJ]GJKZR=CTIJMNJNQSLNLFYOW@YETDBQD@KA:Y>O@EKZO6@MKANDOQKFSM4OO=NHS>INQCJEMGLMFLCP;RAJODUNDKCCDCU9JBQLKMQI@PPNLPME?_D>FFFCGLO9EH@LALJEGCGF_RTO;AS[>LJDRLI=GCRFLGDVAFEMR@YNBDDKFNQ8IIBZ:EHGEFRKLEEPUGGKOISXFN>W@qNJ@SQ?FPZIG`MOBKI>\ONH[MVZCGSWBH[LGQJM@BN:VQWTR;dL@RJIDW@KGM;E7U9HCEOE@GFUQ@AOGL;NTHPLKTC@>:OFJIHLJLFBDHKDEMIJDGHOOLD]7=EGCFOHIG]SGDLOKFMDIKKHA>QJFRNIGNIGFRJ9MEIRVFJX@JUPEE;FCHKCOBXIINFKDU@JDUAKMJEOCKQHNMFJJHHMKAPQIAOJBGDI>??ELZHLB>6OjMHIWOJKCYXPOB?SSJEG:QCINXNMJOHFJCMRJDNMNLREOL@DBQLD=PJQMPBRN?:YLS9]LQ7NOQN0EQa7QUCGOP@=TSNRUML^>>XWRIYXTRXWEJGNVJR]BRIMOIMIQKGP>W@ZXZ\WMNP9KORQQJYBM5^NO@VQ\CVW\@QSIJHYTHWS`RK@QE?FY?WV9SA>X9WG?XPHUAMSMKNNC>P=@UP=XSUODLSWBSGEN;J7HR_6[LG6MJ=-F_E>GVR1LBUD:3ZI:TJ@QBWC;HSLGWMBB48EOQJ=ONMD:]CS[Y@TNJBAS;Y>?JVVJ/N;NI(M;XAHRI>JQN`92YWQOD0H9MMR@JCK8GIL7KW_?IKB?KBAH=VPBAEEM@7O<5IK;XR8QV9Z=P]@GU66/PHOJ;RK_PR9Z=85NV7GE@JSSFPF\O3RBSP?R:_5HHMAQN;UFP5K@8LMBEIGKBHDMU?CCXVJ>GJF7TQ6USUQLJP+_.6C:=ETDZ:KML@CI;5K4966JS:KSE8T`;J8XV8IYLQGXKP6OY7G6I28CNAYKMINVH9D^SIJWO9ZLHMOKTNBPVBNP]<9NN7JKGNGAH:TMNMQDK5QKTLJRMVWGDDE5IQ[94V:MME[RHRMCIYITBH9^6IO`MNP>?ML?LXAIPJHHLMNGLGL?ISNLMDD@^OMHUDAGUFcIJ.INRFIIFRGLPRDDKHRMDJNEOFAA@BLPSIPAFQYRFE@QDI@GFOQHA@MGHKANOSAELEG@FFOFBCOHGLCNF@VL@RJQK>@IIKKJKASJFPN]VOOWPQUPKCULMOHHISLQFRTSDO@BTXQ\?TBHGSGWKKR[LPCJLR\QGKEGN@HKQ\PKNNQN[SOSTJKYQQKQAJKFIPNGREGGTQATJV\JDLJGHNQRCMI@GEHYODOJJSQFIPMDJPG[W8KCENPOOGFUMHZPLXDGIPX@?IHNCdO\GDCNNXQVJKKIONHCFKOZNT=SHDURFYM_LQCTMVAPFIBIEASLNMPDRNXJATHEGTIDLSULST?BOENJdFNGANKJU@NBIEI>OPBEDDXTLEGDKOKKEK=SLQJOBB>FOROLJLOW^FJCFKINIMLUGGJY@OGERIF>RBNKVDDKLGKDGLPMHB`HGDHAHOLKTKXTTPIQGDCQIINSYPOKNLKNLMCJMA?RMEN=CEKFDYHGNHEDMLHYAFJGIKMD;HL?E?FAW@RE@N?JBBWGNH:KTBADANHQEHASPFVIO;JPNROC9KBDGNL]ZDPIDQZNNCGAKE;[IIH>HSCDSE:CEY@NCJV@WSIQDCF[UCEDCMIRSO>BNO^?ULL?GLP[OQ?QI[SXJHANGDBIC\GLCODINQXKEHSQPOKIFHLMGGORMZLIBIKG9PJFENSJRZCPKICIJPHbHFCQJBLECFF@LJLJANWHIHFCJBACEPJEEF>FLLFEBY??EGAPDGFEIELGODANGLNI@KJYHGNCB@FDEV>UWDLNaLWMZRG?ZCB@FLIEPMLKSFOGKWFLCPIH;E@KLMTDBPORQILIJMHEPMJBLFG>JGMCPHEDDKCYIQIBBLSIFEUFFJHROEJTJVNFMKBDUKPCJGPGNMGJ@EMFKIJLPP@?EKTFT?GHJKQMDSE@JGDOB=HJODNNRHFFGX?OMCECTEBGO@PdAQMGKMIAC@DKM\KIEXLNJFGPJ@TEXNOEGQ?LAQIIN?QALWINFFA@KHII>@C9MHEL@FMFCVLIL?EBE:DPJMCAPEOAA?OKDLBODBMCPDCGOAUGHFCHNLQEEHLM^QAL>@FK?DJ>ULRJDGH?LLE@NWJARH9CBCUY?QJL?JVHCFNECFUNEDI>GbIG=NI=JCPO?AXHNR@RDGKD>GKGUQF?@HI@IDRDBFUIIF>>BJCCGGD;FRBQHTPCCOSWHMECFIOERGSDJLAFDJIC>?BNNKUELA>SPCA:?OBIDMHMFINDI8@DK>KTHIDH>KHG@LH::DLL>E@?P9HKUC>APEKN?D:EHUL>KBNHBKRLMPQVPGMDJHRFMHF=SNCATHDCOICJLLMGMDMQGOHMWSEDJHOXM@eKKKENFNM[DOABMFHHMIODFSHJRQFBIPPO?AQQFGAGFAYYKCIKP^NORNEJJZL?NBEQKIGKIHBNMMCGLJSXDGLBGKLUHXFROPAIJIIX=XLDPF>K?E>OHSPLFKGJJCHND@EJLOGHXCRGBWJNMOIDMAQFQGCJ8DGNMDCLLQO;CEQFRNJRJILMMLKKVFN=AGVSSNEGFOJMIKGNITGNF?LG@LLFKQS?TGEFFVKEOORFAGMMQVROALZPDXIEAFMN\OEHNFDCLPLJBOGQSRMFHIOFMGDFRLLFELINMAKMLYHN=EGJKECQKJYOEGSLIVXGTGDOSPQKJHCREeOMCIRDPPIF>HHIMFF@DFL>KLEPDQGJLOUV;HLFFKSNFLPCCMNQ;NQLGGIIKGFQSQ>LPMK@DDEBCDNDECAFAHGXKBMSKEKKGKADKMEJ?@SBBEGPLHJMFRMIJELJH@IVDKDKJHKDWJHJMCLN@PCFEICHERFRIBOJKLLANT@FAMKEMNJKSHAHPEF?NT?KJF@FA?FIDFHLIg?PREMJMNGHVXDPKJNPTJHFR\GHFOO=GM?ODEQDBFDDIEEIGJRDBFIJFNOQQ?UC@NLMHPGNI:BWMJ@ECWHOJH]DFVMIFBHDPXHMDBNHQEBIIHBC[IPR?NNEAKBMIGGG[KGMCIKD?ERJHDLGHXDBOLLDEJIJIKNSULSOCDV\HCLUA:LEUVNOIUPQNBSN??DMGALGBWINEIBNILL]GEHEPEJIMJK@EJWLKJIGCFIJRQJKEDDJDMMNGFGMEG^NTSOaRNKJT?>PLV=FD@OJEDLMNBKLC>LK?DGO=DSMQP@OPPCFDCXI@AGRHCJRFAQMDCDRPFNDJHIZHB=JLKYHJQ@@JAK@JJDMPPXLGHHGF@IQPPDC>FU?JTIOQgSNH>LUAPVL?HJD_LBLWMOQQMCPQ@KFJGDWSUG\LKNTTQIRMLKJIICRHWLOJNFDHI@?PGCHHY@PBKDHDDJINTBDCE\JDNM?CKFMIOHH@DGDOLRO:I?JGDFOFFNK@IKSDPOKIHIRKGQCJVJPIFQ@C8IAMHGHCMCIGPE?JOMGHKI?NCJJEBGL=FHIMOHIECIMGIIRLKCEEFKKEGDJGMCM=PGJHHCHJIGEBHNHHAHGFHGHEHEJHDKI=PJBEM@FF?NOFFUMHGEJEFDGIBLLEGSLF?JBNIIGLDNFMGFOGNEEPDEGBKEJFQLGEEUITI>NKNLRWPJLKC:EPPU@HFFMDJFHOJEMFEE@DLIPSFIBDNE;F@NDBRMDIKCITGHLLONMQBBNEHFMEKKBI>LFCJ@MCIDHJSDHFJDIUQMSIGELVMWMFKNANEHAF^EMAKMESELKGZMITLDDEQ@CFICBRGIDGDHOPKVFCNIFOHUMLKSFJVCDCKEAJI@CMBNGIFHBJPLPDKFEdFOGYHGYJI_JKKFMHGTIFRGCDHQ?FSOLJPMOOKFMSOLHIRLNWWNI_IE\DRD`EJLP?MHHFMLKXNNMEFFQHLFCXFZPNNAAHGKJ?DIGT[GHGHCMIeTGiGVMEIOIL[EJCPMRLEL:KCSS@KFNRMQKKNFISMOBLKQD;GTGJCBOROLF]UEJNMOVfSK?EERFIOIOIGQ@O]COJVMODFIFJN8LHPVEU^EJHOCDLONCGLWCFN@WLQHGIPCRIZJMAVAYJWQLEXJSEP=F@WSDVMOGHCNOPEQDHNRSGFSDHILMADIGP?KJIWOIbF;OWATILE@QIS?OJX69EFV=EIG?D@PDPJ?MCF>GFM>@:FJPUCFJKNBHRDC]VCEDRGGAFCGQLPF^GODFKSCISOHMNMHQDLMKB[UUMSIGH@;C;NFMRZMPT@FFJDPQGFOD>GAKQE@RBI@D?HRC>JQKI?MCM@PCEDD]G7I@GNNDGHBZWI>LOJCFNIOL?OA?GIO=BHWKDFRFS;DcFGRT@>@BKMKUICPEHECMCIAMELABBJEOEPHFN@EFHJGLHHHLEWZFOIPHCOQ=GDPQF@TK>O<;QRNRKUUIP?ADIEYPMMSOAR]SE?B;EGLGECAGDAE^EDVDGTHIIKG?ECGI>EJVHJ:UPIDOUW=L^GMR]N\RDDV[SAa;XLIELOJQAYHGCTEKUIVADDKJOMMESIGKHEIEEJRLOBHRNJLULZPJHUOHPBFLNJTHMCMNPPFCJIMGJSPMMLLCWOPAIKOEIHOBLQCHGDJLLH>KMITNHHIECPDMCYF^TDJ@NFQQHJGMOLLENUJEDQKJHUDMIKFMWNQZEOFEAPODAIIBJO?HZQLFBCLIOO>INFBD=UQIFNLEJIOKODKLSOMCPBGJLMJ>V?Q][NKHD>HJPNPXFKJPHRA?J>MKJNPPFEPICDJCKJOBHTCKLF:CGOEGJII=FKGJRAL?AGNDJJHIDJJEQNcHF@VQGLIJFHISUBEEQII=HCN_;MSMICMKAMIAREMNNNSW>AZFBOJIFJBIKONHHGED_OBSUKCLFDCFLULGV@CBLOMXH@IJGRGLH;F=EGNJJQV[KJCA66L^?J?RHRHKBGI\QBAPDQDM;V=KLbRTGILODIJT>ESMOFGGJ?=KG:=IXPLOGLMGJAPCR=IHK?FIU?R=MCMDNPAYLM?TIFBGGQJNFCZX4CJC@BYKR=QRPKLMLQHRWBORGC@LLDOH?GIOCRKGQJHFH:KDOZOIRNBZPKPKULUDMHE?=MEWIEELHFGGJKPEKNXL_QLMGBPJDVLGGNJFCDCLICMKbQQXMCJ\O=CDGRQN?>GIHGSDFRCAGRSEEFLCCKLI@FPKTRIKKFBJNHRENFHTJFGDSJCBSMEJKR?RGQNUKMKKF>VYFAXD@FIOLOIHB?JMQANGJ?GEFMBLJA[US?YF@KOADF>LHHSHS@DZBOE=GEQGNGRTJFBPGJDFP@IFTBA^INNDHFHFIEHMG@DOHNNM6RABQMCJMFIRd@LFRM@RFOJN>F[BY@HFKHHH?FIKCCQTLDAVKHIEQDSDMORKMCH?E:JOaCIARIJTIIGIKUINOJKGNC>@LCMCC@EAKOBO?EPCJGHBPSN@Q:MQ<@HMOHEFEJCG@HKOPE>HkRQF\=CHF@J9NMONPBKT@ECIZGUHBOGOPEHEMMFAUFUKS@UPAQK]JMeGLGGOOHLFOPA@IESIGJAOKI[AKQIGKPK>EYFMDC;KLP@KGSARKCRPDHDMKJE_DFF@CR>QC;IOFKGIFJCNBOTIaPFSGSTFSTKDCAL>DHKUDTO>KEJIBLCW>KP@4DLADHNKQQQOBIQJSPILDDFQIIMLDGMKIDKCTLNJ=IFISHYQWCUN@ICPWKOJDDDGLVLTHDEDIHGU@AC>AIAKHUMOFLIOCKGP@HKLRAFIMKVFTMCLCHBFDM?FNNLATOCHEFEBDRPKJORIFM=NFM@IATGZEK>LN@IIBMEKESMQGQHTEEIJFNLMMIRQJHHI^KFHLHTKDNLOTFOTPGZBELCK@ESST@DRLPN>LG@HJK>LKDPFDJRMEEJ@EKLMMJFQFICJ@FEFIHZNMHNMM?OKOEMBGBXFAKICGOKPGEFADSFDOlTIHDJAILIJLJDLSHKMQKI[LKV[PGYTCMAETDCPKKCAJLHNHPGIJCXHNJBLNJ?BCKELDUHMGAIGQOJPCRDWFBJJ@CGKPKCIHEVACHIUEPN@KEG:HYMTKM=HFOIDKIIQK@?AKFAJ@LYFKCLP>EIHKRCGOBMVGT>>??RNCOIMBIOQNLXTF?JGTC@HRMRERGSEBNAHLJTG[>EQFATXDEPV>OSKPR?LMDKZHEcALBB9EBHIDGJLGFEHBIDRAOB?G>NIHNGGEEGBGDMOHOL=JLKNKIEOJCCPFIMKJNLGRXGOKNJ>D>KHNKBQBOAEHGDIKW=Q@FREB@GHDWJINFJK?AOJBQPAIHJCGIP@ULT@ARJ.GBKKKTGKQGGHGJQR?AJKMGHKPJDOCNGCOCKHON:ARE=OW@DGDDFPCFFFEREEHGLGKFK?DDCLEEIJRJNRBFGCE:LB>HLOH@?@C;LEOOIMNCCPEIGACEIAKFNGNNIFMIV?SXID@GMDIHJPDPJDPM@K@PRFPLWJ@HGPBEFLWKFFGbIOJMLKKICQOQOJFHWGKN?KGIETUDPQDKJKFJGPFECL@UMLLFE\GEECFKKFKCOHDL@QRUKFKHOPPLB@GDLMD;;IHGBLICLKXOEB]SGPWUMMMYRRFHJLMKLJJHGDJBJG=A?HHJBL>OOHB;GMIPNLJIPOKQDOFNEQEFEEJ;FATGA?UM>LNKG@MLGMJJHGRGNN]QP??KRGESK?MIBaDEK\O@DFHJIIEMHJJG]MTPaGFKXDGIhTUH@AVQKJIQLAED@JB?PYRCZaPALOKMG7FOPMSJ?JM]IER4[KB4JK=?MKECGRTC[IT=PDWOMPE[E:HLJZ_ZN?BIL\ENHIOGJCNOBTXJQQP@NBGWLDJNBSLIDVNHE=IGQH9MAFDJLSWPIMRBHUYLOM59A?POHFICGZN@IBRKYLVA@T]CPMLPAICQPWDAFJMEKLIBD[ACZZ?NRBQ>DTVWPB?5MUIADMQHPHHF<9CXOV3MGR_R8QH_N>WAQT:pFVEb[MP^PEW@LBGD9ENJJDX?KLT9>_KAX:FO7RT3MZG@P[KIC]YFKNQDLUKZ@[U?6=C=DM\MO,FIGKLL[QPIVBXLKRFOPVSMHNVPLNGOQPVGNKJTMDNEJOUGCKQNHNTJMRUSR;J^KHPfNCK=VFHASEO@MKJBCWSQAJLQXGIIWEDOBCSMIBWJSBA@GPXYHIQLGRLDN[CJG_Y_HKGNJQVLEICIQFGWAEL=IRRKHTQ9FG>WULKMOOPITJLQOULL]HM?KXBIC=RDQKUEUPDDKSAJS@CMTZD^UMGbOZC_eRDHFPGIUPIGE\ULGT@TG[3IUUVVMGKAGWQL_RQLSLMUQQBMO>TAZ[VETDPHUKC@@UFHHITPMUHRIdaMULPRPRTGeJJ@=KMEE\[FDC?JP@@Q>CH=B;FNBKNHKJMKE=@DKIKBEUCSHJTJJHCOGODMQTHOADPR`CNAKPOKKEBIC@JQKMQFROP8]CbLJAGGCPAFGOH:MHJOJCH?DFaDJCLFIHL:VLOF;LDWXREI?FIEKCMTMNACWZKB^FTIJNQEE;H@TIOLMHTR8JQGTKKuZp@XK^MOieJQOZmNu^fLF]rRLlWxLCYYYnXc_QS<[WGXa^bcT|fWnsIplgThPw[JVPiLe5j]C[YUu8nWHkS^VWMPQHu[WseAYE`aWaNJO\UaOMrTGL]]Pj3MmYPaS`?SZ;gCQQTVRfWjD[XAWcHpzVdpV_KTiSARKNDkePWtq{`xVCrSdJY^KL_VlB^\UYTSbYPLkLjs{PHjvYNTk&^eZcSMQVR\E~JL@|g[>OXTUCtY^cF[Sjm^STHmSJ`YPUc~zH]IJ@UfDO_KPX_kCeYt`pmTOOxSgE]]pg`Ea`tI@Z`TK=ECJTULPRBE>PU;OFKXEL=LEGJFFEDQBHEMBDJRDJPDI=EKDHEVMRM=F?KGURGGGOLCKN?JHL@ANIBL=MDGPPKLAIKLIRWOHUFCL@DMOBED_JQOID>JRFEIRRH>AJEHGONM;LGWM@KKKIH?LNLIUP<8DFEAPGDTNGGE=UJEGBLA?BBMLDIMSIJFGLEESGBG@SIGNOPLGJ?HQLIIGNGCHDGJLJBMKIC^FISOEC=FDE@NMTGILQMMVCHFULV?EFBOKHNSLNJFOMJMSEOHDJELLL>PSGN[HBASTADN@MLMJWE@GKHKCFZHHDGHH8J@LMBKGAMRNBKGUFGCEEEVMNGANGTIBNESKAFJQELILYHFCaMKGP@KHOJHDELTQFFDNFCNNNBIUDA?MHFIHIINGAJJD?DM:I@JQOGFGHB?GEBMWIJGHMGDU\?UOKMRU>EKFLKJDBHGADLHKBJ>EGCTC@CE?DSXJ;MDFQIGND?IS;MGMHSKJ:FdILAKVGBHHRaIIKMJLCJFEUGHCJ@PNKRVFNDRHJGCSI@GLRGYFDIHJMDMMEPHIHRONID@JNPBCDEJSMIRHVGRHIJCYNTTO@>NH`DDIHJOGJNGLDNGMHNOSNI@OKLYKDMbLBOFPLJMCHGEESIE=KL:GGEGE?EGSLORRKNLINGPEVTOBC@RX>IJ[NIMLSUGFE9RJNHFJKEEGSFSPONKGALIKMM>J=I@GUBLJJFLW?NII>ECGMYEJOLCE9DKOHPOJKSFDD@FGHMHJJDNCH\ITKUHCPHIING\JMEGFOVOPJES4BERA>DBNFAQRIERADHKTHSGAL:F[FJPLAMQFMPBAAK:KIOMIWINSMCTPDM^V>MAJLKMSCOHHPMBLLTJXCCMGJSOEIELC:EPHEKMJKP=GPHIOEGEOMNAROMICIHLQPQBDMEMAHKAJQITPDNCEFIHJID>MGHBFW@IFKN[RGTEEGQL@OCMAOHK=KHQEHELDIKGFCPMNJAPFKASAAN[OIFEGCB@GQGFJDQBURGQEYJFRIBNL?HURJC?=B>LJIGQNUHLC@M^UJLHDKRLIGII[DD=TKKHGFHLGHH@CKTGV?KUEABI@FODEZPJHHDDIL@EHSLRLGIMJGFKME?FBRTVYLEKF>PHYAN?LRDRIFLHLQFBKP?BDNC>Dm@AKJSVF@FPIFDNIOGCGB?KFFZCJFB=CUWEDINHPC;QOLISQEGLPRYDAXJGQQHDKLZPSMJBNMKLOOKPUCWLNBFWSSCGIKFQPAEJaPILGMIGVUKBTO@A>BCEG\JKHLXJJWETWHDOVMAQ?IPQKLFQDTOPNODCGCOWDPSGCZZSOHHOEFNFBJJ7MMODUJGKICKJM[OBMILJHDI[IIMDNL=IaCGKFRM@F_QTJVJEBNKQFMEHOI@LHGUOLNGCJCNDNHHCI@DHCYMQE>IPICSCEODHGMKGESKEGGUBDHNGHAEEEHMLEDJPNO=JKHIHJKPDYCHPHIN]>CFKI^DIFHRLBGPVGFQZFKPGSIFLIOFFDFOEMHIKK^W?RKDGGPJFCC@RJ=PHIJOFCJMEPOATQPOZHKNTGJAYDIGWBKATLADDC?O?@UEKJHPJI@FK@KNPLML@JINFIHALDEIMFLJHIHIGIKJP>FMFDTNCJLJTJDLLFBEGFFOCHIEIL@JLXG?EISFIMCFOIJH@MCMKMMCIBJHNKRHINSJI>HKNQ:DMKVLHPI:TKEKKNCLGDGWFNFJEKGPQESIMLIBEICRIIID>KLIHQCDQPOFAIFKGBKMM?DGPHNEHLGBJGBLISQMJKD@=KOIQFDIJKVSOKWHKJNKRMNBIKPNFIALCFJEJEPDP@FGNAN>B>FLc>RKEQERGIJJ@GWBRRJAHNGGX4JG:PLHIRLNCEMFNDGFEKASDIJDEATDKAOIIDDJKXHJEHDCMJFFP[CDHEBHSMG@ELCIHRNDNKGYGENEWHRGMNDB@JHFeMMODCCI?`PIIGWLFFEVV]JGLWCIBOQINNKS?QIMSMGYIG[ANRJJNINKGXFOMGGMBFBJLCDICGNDMGXIGJ:KJJJESKKCKA?C@SCMJFTIAFLJJIHKIIFIFECPEKDGHAJBSCM\CDTPIZBGIPDPGTINH@ESJGCO;UKJDDPRQJEQRPTGOKDD=CXPMDGMNFTML@?QEMLACJHPOOHIE>IKB@P[HHSANMJK[KCBHIQFMPO>EMJNLSHPCYDNDNIHHHJGHPGDNMCBJ=EPJLGMOIBHOEF@^@GAOJVECKPPKE=HMMGFFEIFGOJQTE=HHCHMS??KHO@ECMMLSJNHKHFHMRMBC?HEPJFTOJHIGLHLCCIN=FOLRKLBULCIQKIMGEGM@HJEH?HHIDCJQOLJOBNM_EPKOLDFMJMNLUDPEJILQLCMENQKGCPOSJHMYE>OQHPPQAOKAATQIF?BJGYHPDKbGEFPEII@KPP\MDTL?OILKPP=JNDLLKPHJFQFKAI8@D\IPDTMHCRFM>JKDPACBJPUEFFAILJPNKKJ?KGMGGPIMH=KDLHEMEWI?G>OQJXGLEDCH@IJHDOMTI^=PIYZPFMQMHEFCAOSCAN\MLRC]HSJ9GGCQH?BENFEAOKJEDD_CFQQWUAKDRHMWPCELKPNCPLKKLPNMDPBIHJLDFKM@EJFEAEVGCRVCOBOLIFIKMPM?JJG?FMVPQMRKHPHEKPAOZLGLHGQIILNNOPO@PKDSFKMMEJLJFJIGHFCKOOHNJCETKHFO_IZRGOGIPIIJKKQ=NPNIJAHNKHMNMECPIFEABFEMHGIDEMNTJWHGEONGEJGHHVFFCQIHDHJJJMIPKELICNEGPAH@FLHD?INOJOLBRINMIQCKOMG@P?@MHOEGIICBHCFBNLGOMQKMLSMGGILBWNGUQE>@HQHKTNTKEPTLJCALN@AAHJLGDLcFEIDQILOUKLOJFKIMSEIKHHMJEWVFUK?BKTLJHAGCDNPFGEMNDNAWIHDEJPIFGNTVN>IOBQGFJPKHIVFGCNRHKBOOAHGHQLIFEUJHGOGJFNKcMHT>LNBFAFIOAMHGK@CU;FJLGDEKWSDRSFC>HLJJJ?JXTUTGHJJT9NN=HMREDFTHMMJLMK@MBGHENKCHFSXCMJDFJP?AEOMFRJOSR@MGAGPFIFHIEIQM;FKFICJHDKGFCAHIGIXJbJZTNLTGJ?HTHBGIZ=RJA8CHIHYO<=ACIqC?GLTQDEMLJPHHOKKNIM>DEQOMFGGBPV>CJOKQM>YOLINUUV>TGRR?SC?TGBQGIJ>FGB@JBYH?BGZ;TEFLMJALALIBINPKTN[CDMO@M=VIDOCJOV@IHPIKLGJNYNCTGCNNBQSQCOCEPOIOKAH?KHAEFTLEQLKU?MGNFQ?PIQMLTFJNRNFB=B@IQ?EJANHBG]QEMCCGKI>PUIOCBEII>RIEDKQGJM=HMIOLFLQPMBK@T[K=QPNEFQHK:RMIMFMCMFKDMEKJGIEJLIKCINJGOMCJQUAKQICJOBFNMJMOMIF[THDGNBAVJBNP@IBQLLHIEYGEWDHKHQ=DIK@KWFRTa>TGOHNJIBKFY>NDH^MKGNEI>ZTGWICKAPFOIDFO>KIMLAVCIKKKQAHIKETF>HVKQIHJNFJLI]ANLJEDNLGSIWROII]FONTHSFHZRDI`EULGGMHBSJU?NXKI@EFMILNPCLDHIGfJJBVHHACQRTQKRRLHNJLVKFFISELBG>BGJJAYEGFEIHNAPIIPM?JGPUGEEQDYDGIJFKVNKIAQI@MXFHNKK@BGMLHJJ>UMFCIOMJIAAHBDD9IFCILBWFI?HNCIQDRHF>GCMHNFHHNGTGMLWPG@OEH@BILFIIMEPJIZFNVJTFQGNNL`QIAGGKHQ[GDFQJJGDINKMC@KIA;FIDJPBRI[JICPFOEIBFSIEJMADJEIGTNK>IMENAVDDNKCNPUFLICMFLJVUWCNJOOIODJSZHOPJCEBANKHRGMEGTIR?MKG@DQNLKNGKJLISIPGUKIFFOFNNKBMKMLMAHcKV@IJPCDCMN[WFLJSJRKRFILIIIL>RJID=JDRQNGFHLGAODPDTJCTCOODK@WCNIHCPQROFFHHLBXKE?GJC>G>PNPNPKGNFIKH=PHG>JJLAHBB?PE?LMCKG@?C>LBTNFIGVV@HHKS?KLRLQN@BGIJBGDIHGGD^RHQ@WKPLEEIJJKL?KP?H=GKTDFLLGLJWEKLNPSDGKDUGLKHAJGVJUCNQPWB@YOMPHMIQENAJAA>@WR?PMPX?QIFRPDGNGN^FGQLROKCBS?O@UBAJVJ@YIEKIMCICHHOMHS[CEJFEQ[RCHJAMEO?NH]FKBLDIBNGrWGDCmJJHICXB8>HI=NDSf?MTHLFIJW;F=O?AHEYRRNGoSJIGFZFMLJZNEC@CACR^EDBJE@AI?GwV?HIKF|TKDRcZIZFFGBCJPfFHB;AHFWFGDU`E?HMoMQGh?MFA?MOUIPJFLHK[TI^PQNJ@I:IWHMMCSEDG?@[Ib;Y?@DTPKJDRxJO>MbKSJALLVpLW;PHHLJGGL?@NFJORQJGEJLICHEYFASNOV@FQMLG>UGQIFJKDGRNIIMJLLFH@?DNJFHONGFMIRJWDDJGLCBTPK??CJFHC=FOGO?BNEGEYA>FHJOIJFGMFDLAKGRCMIEX@LCPCeKGHWJLWIFINGGd@GLIHNBFMJQIGKPHFGDJFAJGEHMSNENFATCeJ@JKEJ=T;NBFKKBCPKKPLLKGA=K@GJHHFDHCSHOHKMLOOBCIGRJQBLIKPMGHCIKLKFNAOHIOJDE6FRDKNGDQKBHVSHCCIBCJCGUPJJ@FVIDWIPFQCEFEGGOZ@kJFOIFOIAEV=AHNLJQGMFFIULFDFFK@GHFPLHL@CYIBKOI@OHRJOOLKH@EEAPPBOHHDMNGAJLHQLFDG@TPGNDLMPJOHJDKDBWGIJ@LEHADJFCSHL?CDGP@J>AEDKOYFSF@VMLMY?KGESQDGDBKG@VFEYWSHWUZKjQLAX?]HWURMDIA:[I=LASJB@KQGHNLZWOIM`GKCMOJCEEHGGM6;>GQWC==CI=RRCMFJVQ>LD=NWFKBGEDFKPF;IAUTSR@OGCLIGHGFIAFNINJHC8FO[HA6HBKH>GVM[KLBEQW@:LSBLVPDTHMRSZB>MEVR@OHGVJHJHU>KN]AHNOIFFCNPD<>DGXQ@RSOSNEFXMDGSANNLD;FEVLQQYIFJBQBCGDHLMFMDFBQ:CEBIDFNCIDK>LOEBP??LIVQJNMNMGGHFCCFGZQOKDBNIJQHVKHSMJGQJETPILICGKH`BMGLSOGECNBPIEQBHCFQNCVMKTHKHJIXBLLGNMQNJCKMIKKHRONKPT?HJFQPINIO@LPFEGHTEEI@AK>QBMPEGCODNAPQCIQRNDAKOAPKBKKTP]JEJEEEBDEDKEHKNKDGNGGMJGGOIDFMBGNGJHF@ECIW=CKELHHSAGOGNJFNRFEMLQICOUJJEQOOAOEVQF:RLESFUDHKRNDZOJIAGBBUKF@LVWMMIIEO]OKJJNOLO@MSFWKGKKESG?NNRCPH>HGEMIRUCLGLEANJGMT?NIV>MKKIOIPBBMHKQLDJFJTJQFELRTLFGHPMJRHPLHIO?MGBSIEFHJILGIAAV@OJGJRFNW?GMISEJ@DJKHFbEOK?J@QLMTMEGO>IFEEEIRKPREKDSYJLECIREIAFTBWLJD^GKEIED=LGAB@EHXSHVUIOGOHGHRRE\MQEQKPJLFPPPNKNW@DGNGCGLFPC?MPJ@CQHPRHQQEKHOVSEMQEHKLGQRJE@ANIMZAXLAAIMIFDQOKNGCWF@UDELX?K=HLPOHFMK>HHBP=LKWF@@TLEIGJQQJHGCJAJSG>ITNOJJIFOOKRKPLHBI?OJGLNUCKODMOG>ECTHWJHLMFBICOOK?NNDCBDCCIBMJJMJIBPINKMFEDEFSHOC@LTIRJILOGFLNUKEGJPKKKCLLAJOACFEJLQMLSL\NGGVFCEGPHRXQINAA:DHG=JJ??GCGMDPSEAHOF@HBTOMHFDALLPL?LFW:>@FI>[LDEKPDENIM=KBKEEI@GE;NIKMAHA;O>DN@HO@J@KFNNBLN??HGIINC@:PNEOSHGONMHPANLNCIPEILHAJHFIFNGD@EJMFEIBAIFPLAOCAIAEJGDDJAC?GBMIGLDGH=KIKMGLOSKMTLNQEIPKKVEJEC@ECHACELIVWDPWN?UDJFHSPEMMJE@JOBPLTKO>GGHUQFTPDEPKCKBJNFKDHWFDKDCEH`EJQMDBQFFIPOFDE?OWPL>LGLK@IGHVHGFNFHCJ@EJJFWKCLLRPGFDIUGA;FLIGGIHJQR[NKMKAGLIILKNKBCKCOJPA?HKTMFLJQKIEIGG@FIAEHHKHMFDRVTE=DCPMHBDNVOFEKKPLEMRHSLGE>FHNG>O\qBNF=HwYA@QKEQGi?JIJ@MDPBXSEQBFYMDNMI@bXKGNJD@DP;HUKJIQCJFDFY^INRKRRGHGXICSLIOCKKJ?F?GLGJEIFCV_QHKGOJNFQILKGDL?@DBVIEIQNGFFOFHMIKJLHJOJPMH~LNHA=LQM@MDWQHKAGPDJ=G_LOJTHGICMU^HKWDCKTPAIBJNJCDFKHG?KCHQLYTKMICJMBCCDFREKJTFWJC;:KC>PJMKX=IIEIPFN_DFIJHAMAUJOKE:ARDJJQEB@JG@K>MSBL>THXH@BACGEWHJHMJLRGNGLXDJI@GNFCLJTKRSGBPDJJHK\C>ILOGCCWN=S_GJR=NHREMMCBADWKCH\Q<@KIIJD=IJSPIFEMRFTOGAKKFLLMOUFFJJLE>DRHH?REDDSSICIMMFOSKLPMLMVGNBCQM?HDCKOILIFQLLHAEOMLLHFDKIHJLKIGGLGTL>IO\EYMPNDGPGUOKSPPS@HTCOBSM]DJFYBG@EJYJEEFMV?\XFHCI@HNGYATF[GU?OOFOHOFELHLSXLGHO\KBSLNKBML?KTRDPAIWFEKL@BiHDHLBSSBIODQ\ODHRGMPTEN=UDKARGONJG@EFGFfO]DHOGGIHJEEMDBINILE]@HE]CFKCGCWhNDSHYEJZCUQS]WCIAJRARAQ=HFVJTM>AGRKGDH>OIGQDKKRAHOESABBD@JHONHGJMHH]@SU;GGE=WaJBDFKBHTUOLQJRBMOEII=LEHAJDG@4VNFCHBXDKJODMCQ@HGFLOBIJ7DFFHCTIZUYKCEHB4PEFHCQ=CBE\HFBFGAFIC?RMCMDKMB=REBMHUE\@QSODFOAAFAKPGGXJFLG@JGIKSIGMSOIEJCMJCLKLQEGPKENPMBJOJNIDLJJMHPITHOIUES@LVKM@MFNQKKQDLFLI@OHNJQO`HQNXFNKDJHTMQFACPCILKODJMMQNJK[KOADKHDMCCNPJJLDHMQHIULTEFGFA@CHKEOILWLEGMSISKMMNTCFYDE>NCEJ@ERUGMGOKBGLKECTHMPPDOLDJEJZN;FSNBRLP?YKQ?M@KPT=BUJF?QG=XGSKQQKRROVRH:KKTIE_QM9UPLMTJRJF?HHGZ_ZIMDFMMAMKBZAIG=SQU>ERRPFFKM;ZRHKHITRKSOgCHQMJODOLNPIFMQGLFBKFPIWCPZaEIHNGVUHEDRU>VLOICIPD4KRQLTLCQTLORGLUL=HREBDFOJOMCDBCRQ]VHHYOFPFHDWLLG[VIDONMID?LUZMMFQRKDCLBCLGHHB@HNLB>9PQRNJSPPFIHRFLGJIAJJF?DHQBMEVRCDLCOJDDFJJQUGMGFVDAM@K7CFL>F@T[FGAGMGPIFGPI?XHLHBHESPDKFLQ=LBNGOHLCV=X:WKICAJDCIPBII[FKQGL9IRZPBEKBBILNNOIEWOELPTHUMTEG>CGJGDJLKFLAAQAKIDJJBBMJLSFKDIBIODM@CKJGO@NDJGOAGHOKGUSOEADKWOSCTOPJMMJGMYBKMIHOWHPT:QGVPQCGDUUMHJKLLIIQOR:NLKEPPGNFHMGBGOMIOUQGGNPUJMSISEKDDFFUEGLLREHKAEISBJZLMMNJPL`DYPGUBRHHFKNSKFIFIG>CICIJL]I>CFGUCORZMRHFHLTCHCJIIKZDFDDSGJHLIPHJGOVH?MFCIY[FCALRCSBJYLFTSPL>MSCQGDJPBALPCGLJBL[VI>BYBOLFKYKMTFXKJQJEBIJCRGOCLLF>5VQG?DRBDCRJAKGH7PRMDEJNBOGD_PIDJ@ILIPRHNFMGEXM?GTJQAVK?F>JGHMFS>@GRKDORHCJIDIMIIMMECFDMKJBGBFUHFRLMHKKEJTGDGGPZDKHEFPOMMBJ>DBNAMIEDEGMPKNLAGH>BPIS?JFFKOKRMQOPIIPMJPNILEKNKPCJGNAJVOBKOJKDJWLJXOIBAQELOGHKECJKEQHJKDHDVLHHNJOHEILGEFRHLOGOWIGPGPWCSAKKFNAD?CJGNIKMJAL@IGPVEPIGFHEBELMONBH>HJHFN@ERYPJX=KF@PQWUUFNGJJMIBE@GBJUSE@^APKBGTG@RTHEKTRVMJEIHPMJGALCOHFFEILTHN?JLGOGKRJH:@DbDJCPCAJEMWJNGCHRsAJPICH]@F@E>KCLDOPRKLPA>ERLKQCHM\IADFKSNM@NDBICEHMNNPI@MS@DHBHUFCNQBLIU?SHFQXKSPC@WFKDCEHLIHS>FONKAATDGQL8LGNJFIURABQTJVPgHCEG?NEDQACOCEMEGMKIEEHHKTDPPSXCMEHINQQSVVVPDJJFNVUEKOMJFIFInJGHTFFjRKLBNHHAGBGRFMHIFWETGTRHJGEOPIGHFHFOQYDGPFIDESFHFENJE??ELKJHMHLFKRKISQDGLH=OMIOJJE\IHSFLREMWRGJODHNOROTQLJDGQJY9MNBJO]REIFYBLCOHORCJIUKIIF?FMKOQLEIMFQT>DAOGALH@JJFPPMBAINOFPQJEYHFZIHIFPKO@M=MENCNAKH?KJVOMIP@KFJDASLMMETELMMUNKBIKFLEOKPIHFICAERDOJEHGHQENGKJNLFDJJME>QMFPGBRSSJFWFDHCTENKRLMOSRGAE>IJBDFJOIUQOMKDDKIKHPERG>MECFGZIJKJCB=IQCFGGOGLNAEPMEDMSCEOBC<@>UKXDFFDNCGECHA=K=AMEFGAPLIEEDHF;AMAHJZCG?DENIJPELBCPCLRPAKKVGUGDHLIQNOBCMEJWGKXCKLESH]GMQCMLJMCGHQPKCJWGFVH@PEDFPFF?GFLDGG@ISJLOBMCAHQKGNLCECHHGHHBR@OMLHABIJAFGTGKHKNSGDETNJDKSH@WDPEFGECBL@[IN\LIDNLME9NTH;MKEWJVIHDL=GBRGKDBKLOPNDDJGUDGEBAGFISNYKIEZGNJGX]KQ@@LJCQLYDD>FOXCNFNH=BTRLIHO?JFSFUONMPKUJHLNJHLIEOJFICEDBUFZFBBTEAIPHLIRGKWIOLMFZSTDRSEL[OJGI_PSDNDQMPLMIJOMSIBRSH@LHQECHMOQITAJ\HLSLVHE]PJGCJHCFIOLDEXFTCHGILGKOJ?GKCPEHMJCAHMJLRES;^LSTQBLJEDILTLGKVPHLK>GM@NLILNDLBPPCQKHIBGEIFECMJMLR@EGMSKVFECC>HQRHfJHBIFEAFLMJJ<@HBEAJJRGBKBJOHOPOV;DNDEQDVLNGWVFGNMHLBICEBGQFIRLQEFOIGBBIWKOKFLJHGLFDNEKFHZaGIAMEH@K@LIJKHGFWACL?GFHNFIHAOFGGGPKKIIFMH?GJEMRJQGLUGPAHPTMRBRMNIKNKMQTNGFMGRG@LKGFP]SEGAFPQLUGESBIP?FKMDOJLFOHMPHROQBAAGEDJFLGPNKRKGJPQ`HOMDOGQGHHCHLRDCJGRZ[G[NNQS\BCEIHKMNGEKaGNG;DKMLGNLHDKGHEME9JEMEEFFDHLLIMDIHIJLBIKBHF@FZKMH@LJKLBHHGBAHSRBHSHHYRRLKB@IDOJfEFOHM]ALPNFHLLIKMDIAKAFCRXHRT]UQBHMKJGKBBhIEGPVNHSBMBBNJIK>FPCVHGHSE=YJJMF@DIQMEDLNJJ@KPVJINBJ9GT>IJCINIPGL>ZFCS@C?QYMAJKLP?NITYBMLKGBD?VUD@RIJDCDD>GDZMD5ENWGJIGAMLQ?BHT[>LIEOMMND;BIDK?JCFAWE?CDI=N@>>VIGDE?GHIOS[:QFF\:DKWEIOCWGQ`HEQG>KACGMFHETXDQCJONU\BCP>M@@?FNIJC8JBNHQ_BFGOKY?UOMNe@KBVAE0OD@XDKGHDDEFGB?BIKMEBKNCBD@A]?JKOHOCOOCCENEQFRGMLQGO@KOI?KONGLI>BF?FQRGSPCIGDGB@@NB8MM?F9I>JY?C>QMKIKYALAFEJIEUC@EB@FGPMaHQJPFLQ@BKIJGLTJAKKFMEEMPUJJPUIWGOCLNEEMMLLNHC?ASMPEI@QBMCDEOCKHPQBQJFDXA@CJ>SKHPFSWLGOJBLAGHOCSIGBQNK[LIIDFC@LDLK@KDQC;EZGGA[IGGPMWAJARIO]OJK;HQILH_GELPKSTBJMLGEQOLH@BGRQKLBGFJIKBHEHFIJENQFGO?JDFCGCCIG=LIEJLEQFKFKDZUMCLDFU>LGACIH?JLIBHACM;MRIDJHDHKGK=DJBD>KMIGUFBGHILGTEDCGHQJ@EM=BI?M@JCIIFNTKEKOLA=AGEEQHLFP@DC=GJOEGIMI8HEBQHKAGKGEKRVHJCEMEPLJBCCGGDGKLGHGROIF?A>IK?HDCGISF@NMMKOLGHCQFRKFIHAEHGHSIKIGSOLDSDHDNGP9MDMGDQLAMBEKFJT@JKCFMHNLLEKJIDE?HDENNP?LHHUGR>PIABJBJHKGBJCNOFFFLG;PBV?G?TNFJDETKHMHQ==FDM@LDKEAHFQGLF?HLLLJGCQ@KALHLGHBPDFFIKQIMEEM_J\FM@IKKNEFDFDCBHMLDLHEHKYL7E=ICFJJGMDOLD@DHOJE@:GO@HGII:BA6AQJ@NBDIJDWNBFKXBBNFIMMBICBOEGLKIVCQLL8HPDBGDNRVLEBAKFFaLPLSGRCHTHEGA@I@HE@FDFOJ?JAIOHGPVLNPCDBNLEOHJEFIGTFFONCHEE@DSGKLJQBI?6KMCDLL9>JILLFQDOJ;ATGLGNBEKDIVMKHDH>PNWKNFCABBF?\LGPGN_OO9SPJPLRE>KTEHPCL@PNGRUGYJFKCZMRUOYK:N[[TFAIII>SAH[ESPLMqPH=KQD?C9`>IJRRENHE>bDMB;XYRSRIFKGSHJNRUKKCLRJXFE?MPADRgO?GAJOEJGd^QUTQGLDPCEFLVNNKNCBOJDMTRHTGLcJMWFNHRPMIMU?ULYSIIVLEMTB8F_;H>>QOS1`VPMJKPNLLXEUCONPBTMLQEL9U>JJSL?NDR@AMVX:LL>SJABCGMC>U@ERIXHB=FEHIAHSRNAHF@QB;LKGDNaHKPMBD@EB9IKE@LJUAVQQPCPKCNMOHKEN@NHFGFEA@JD7NGBOHBPJSTH=AJKAGEKFJDIBGHDCOCKSMC=HO?0LC>EONWTLNA?O?IUARBBRAHQVNDQDG@ORi>HB7GA3LEXFGQDJFGNXIPIC:DEBHGMNKI>ZSIQKGKE>GHE7@INRPL:M\FPCKPJNBCXHICRIEBGOHFFJU[JHGNSDC@PlJ=KNREIQBP]J@KITBEINGRMKMJJJMJE@Q>KQJ@IT@CUJSKIDEKKRMNH?KRWRDFNJCKHJ\QFDU?LMBBGSH:DGKVTKSPPKKRMUGOKTPJLREYOHK@LeBHLMLKMFHHLKNE?FY=UNFQ?DBALKLOOCPS:HICIOFUDMKOGDO@JJ?TSIFNLOGDHGERFEIKGDGAPKOEIJBGFIPLAHHFP?EI8IC7@JXGB@TANHKKMMIOGMFJCJ@GBF?KKMNDDMEFNPIMJHW=JI^?SHRBVGFJCOHRRCAQIGJSGFSF@K@QD>FWFTGJAHMIBHGGFMDMHGDCDKHDdEIF?HCIDIF;GAJLOEBAECMEJG?PGGAYDJPBAJ:FCM=RTJDKEGGFCHO;JCGN>HP9CCHIKFJJIA_AMD?AMEKHG;>LJTGK>DC=CPJHR;CJFV>BJBPHGDQEMKLJFGC?4I>L??PGMWOPKJHMAMDLCRPFEDFT>@EUETHCJRMIAEFOLFFLPBDFSJPERL?aLJJMDPIWKL9HEJOEKDIGG@RFGN?QBTJGLQFPDMGARHIRFJTJQWIRNMETHCHHQQM@AJTBMIKINHYJXVJUCMTMQMBBHGJAEQ;G=>MHMRDLBJDQQKLI>HFDG?UDSKHFCCKKNBBOJKSQGDHCKLNXGRJADKECHJRGCINGLMKFGLW?ARBCLVRX=OCRHEEAMKEKIPBCCTTKFEANLFIFPILOMEMCZCFCLST?O@LE@PIKR>AGCDGDAIFIAT9QFJEKOOLTUHb?IGBDBTEDK@DBLMLUEIPDNJ9GLBHCLGBJINQJGRDHKPEVQQT?BDHFECJHFSACMDTJBNPRLEM?HNFWDIGANIL[ITCJGLD@MDKLMOK?JLVCHFBKRFNEJS@BOMF@BFPBJQLIBIFQIUEONBHGGODFEGBOROEGPDFEKBKMIQHHDFKGHPJC9NHU]LFIHGFAIYXET@PJFDQOKQDPPAGN@EJDFLAHFHJAFA>FM5=SDGFOHHIJJKLCED?ABHDRCOIHHJCFGGQLQUBGOKBOSKO@JFHMZHPJDMCKUI:LUHGLDAMDIAFIEFNDNJHMUGLWIFIC=BC=AROLCIQO=MGJENCSIOOGD]:JDNPCNMEB?CDGEOIMDJDSHNKREKHMUDEICNBWCAQLFHEEIGFJQUAIBEXKONPARLDPKDEBHIMCLDCHDMZHKEDOFJQRLF=TQK>MNHIPILEFG=EGPGGEQ>A=PNFEKKCKM=IMQ=FIQLMKAUV7JEM@RJFNfLHJJJKJNDHNBDFMLDDCJKNWHFFLFV@FLH@DAHEFIOCNLEJIBEFMBKD?JCEMF]AKPYLMDDQLHIJJKGMEKLMLEFKA@8HO:cKSFIMGBGAIK>QCOJDCECN>KEBBSPI[DDHFVNKPU?ZJLEOVDFEPHJGHK>IEFMDH@DSLICIOJJSUMBA@JJNIEF]CGCGWRNUE?KCIAWLMCPKLEVRFIQCAGQJNI?ZOUEITEDHH?AJNVBFUJUNFRNF@CJLPPIRGRONHNFLKNPJMIOGQMNJZDDMKEIICHNFIZMHMK?DAEKFNN>HCBCBFJEMQYIICBIJGJJPDEKFKGLERFMLB_CO=GQBED8MWROFIOGHKFALMHPHIJFOM:TSDSJCKGMIBHNDUNJOEK?GNCC@JLNOJGTMWG>HQDEAGCFH>JJJGLRAIZFBHJKJLDK8AJHLNKFKaSCIMCHIDGFMIALNI@TRUGIOQFDKPTIOLWFCECAOBFHKRGCONAONM8EDITFHM=O?GMDGHEKKAGMLMG\AKHAISH?PBEJLPMFHKLFJK;>AOBSOZJLJHPM;=EKEGQHMRABSKAKKNBGK?JJGD:MHMHZI@FBIG=HJKRHIFNBEHIA:QIDTNOFOEI@]HDMKMECG\IKPDQKPLOBSLJFIPLQRNDALLLFKFCNJHGRJPO[IIDQD>DNKGKCRGAHAJ>FFGGKMSEJMIS\DPQUFLCNRWZTPKJUPPZvPRWNUDNLKHKONR@EGPDHVOMZLTTdDNXKON:_OQPTbI\VOPMPPnR^MTOLFDcOGQOMSMYPILOEKLQ^NC>fQFTMSPUb\WISaMDMSNTO\C_QUHVFJSKXVIIOVIJWSNKKUZQNJFUVVTT_O]QIKT[KNbLQOJSMPV]gOPLFGTKTVOCMT]KCRKNZLTCIJXXU\KFNKUXR_UTIYRXFQMQK[SELNYDOU@UQTMUOSMKMaGJDZNWXOSUVKYGRRNERETLFUbNQUMUIQK[H[HLMYJ]RQOXLUCTIJZXOT]MIKNKHUDQM>M?UAQSAIRTX8TLN>IDURFFMP:[[MLRIA<]OSWQQ_UANQNOWXSSM[TI=@P`HH[OXOYCQQZJT@a>5IMRVFKRKBHG\EPG[_a?ZZNLHAXLTVT7KOaGMU<=T[ONJWFY?W[EGPKZ@NVZDZ\>EZK\Q]dY]J:PH?FX=EA:TAGMITQJ?UQI9MCWZWKTHaY6XFLHVNEKXD_XIQU>[aCVYW[GTCTI[RNGGJ=M\]TP=GTLYK\YVOTYgJ?A>QJFLBMPUS\FLOGX\gSZXRHSENGTDNS=QGUNP>XH?C_HDAGfXSSIJFFQK=FDOKNIPNLJTY>DIC>OEGMPOKZNPIDEHIEPLNKMMDM@HCNFJHKLSJCDIKNGFK?UDVEOESLUKBBEFLaLOFBAOEKIEJFIHHDI?EIARMAJNEINSEBICGINLHJOMON^FHJJDDLBOIDOKQGQQGAMRWGCDNCHJMMLSIEJK?^JFKUFMPHSGNBIFLLJGPJSIAILANEOINQYRFLHLHBOEKPBLKQF>?FGGHOHMRIOMITFJGIHRPKLNJBKIOF?KNIMPILEAEHQXXIIKHDSIHHO[MJJEAAU:A@GMOI>Q;AGEUCALCCFWBJDQLHJIKJLKOEEOKDUM>GRFUPIJH=I@C8CLMNO>OUGBERGIPQHQFVJGWR\?I?G@N@BCKH`JEFJMEBPSTGZKCCENPBKEP@RCF@J?VHOOQE@HHGQUHD;JNCPLQ>TAYRIQL]INPKVPM>JRIDALIL^GIFMSBHC?JIWVIREQHKGHCGJCBFJPK?AIOMGLHMKLMLHK9CJUPJTCJQPD>GQFTOEGRIQLYGB=EFNJKAFCH?NVKJOGD;TODbCLEGNEXIGB:CFRD]FUSOUFGQR@EJGD?HG7GIRGDKF>BEKIFIGK@KLLKPIHBUCIVHLNQ[HJLMOO>WH?ITDEJJ@JKOBHEIFRAHMPEOGMMGJNEBIIDQSKREONIEJFLGW_RPLRORHHJKCDWSRGJQDP>LEAM@MK@GFCLJKJFDBQEEQ?CFXJBCNCFPOGKGPJCAJFIOLHSFE?RGXHGEGTDUBLDLNIDJ@TKNMJFPGJNTM?LDXTON?GFE>KIJLNHLLGJDIHBIDOQHEHMNNFPA?AGF^QEOGBGKPdZF@NHOCBMLFCRKGJHGS:SMA?RK90OQC:NXK8JKUA59ZTFTTCTCV@9BYKKOPPG5?TYJHMXPTFEM>SWXFPLIHL@GHECU@77IGP@GXMXA=JKOAK:0FMKTHBJVM0CDQEMNRMGQGJCRIR8SIPDIKDNH:UJALIFHJ=GGCBQABS?L@QAHWPNN@HPWMIFGPTFCTDCRMF@IL?Y;DQSOFKDUVMKKIGAFCLAINPD=GLRPFGGO?GaICDQRMIM^QLF>UJDLLI\?RKJKI=NDR;DBRF7SMMMOJIPIFPFJGODZEKMN?MINKKCOUKPHHCPK?HJDDB?BKCPAJSNTKJP=IGMVBLIFHPJ^SFHRQNJHHOOCNNOPJKRJQ]LiVGCDRNR`EQMFDJJSVKTZOOdGNNGGA?DFHGOH?KY[YEKIIUDJaOOSHNEFQINFKZ;ES]DMDDEULEMcPDNPGIAJSHGJOEJ:rNILPVBDJQPDPE]?QNFZN[MJILKECKKYBBKEPGAUWMKINK\MHCEPUDGSLKTJQSMLQ@EKJRE?AIKGIKEIZOKODG_IJQIQHRRFLGNFJNJLKIHEFMNKMDKIRCbOPKIBRGPHZOH=JRJQKINbTbKIJWHBCGLLOLSHXUCGGEJGJTAVN[JIRIKEINHGNN\K?HRJUAQLAOMIDGJGMEMBBKDRKFOF?I@EMOMKDKFMR?FIPNRLSLGDHBLLHWNHH@HHP?DL?ECDPKQEMAEHFAVIRQIHHJEMBOCHCO>G:DQETAN?CIFMFOH?JNRDD@PXJILFLFHLNDDP@GKEEMWSRKFAUWMI\KLCFLEUKFNTHOBFFBDFOBJ?GCICMBK?TGIHEJGEIXIT=HTHAKGRPCGSMF?JDGCLUYGITO=PGKF@LBDFLH;IGKFEVBTGKCCFLMCNJIANJRHEDGJKDFKjNMLJKGRCKEKJUGPGHLFFDCW@AGMEEJ?NPKGKQQHHHQBEBBTYD@F]TWFCLJ=M@WKICU>KPFDLRCLGAMBRMREBQOHKEGI:PHNkMNDKLPBAJGQTVPEDJNJYFESJCFOHGLPTLSJREA@MFDGNMQIIQJHNJIIWGMHIOFCMECIKZOBKMVW@HFRINTUGVBHRHAJKTX@JKPLBTIHSLBTTF@IMENNMLN;FJGESTMMGQK@L7KPREDBVLC@>VMMSBIHBLIMPRJHNEIR@@IJIMOCDFJIMJLLVGIGF@>LOOBICHJRPIUQt>E[ALJGIPI=UBSNOFBN@JLMGBQEFTWD\GB:RUFPKQGSCAJQGBNSKRJPJ_DDKNTRJLJKSKCDMIDCFYKIGDRDKPKROIFMEBJCFHUQQOLNJGCGFHBLFABEVEMRG>DJJ@MVHEAXLLPDBKKCEFQ>LHMEJFA?KEJC@RRIKGILEBF?:MKDUBWCKEHCLNCFECWDMQGA>NHJWCCNJUBTCHLGEIJCFFCRQBGQB=;@SHOLK;OJF@FV>CBKFEID=CHTUEFIL?FHQSSFBRNEGDELPNHJQ@@DBPEIRRIIA?LET@NQFZFNFHGKOVFTWMGRE[HRM@1G>7BECBRLCDAJJGOE>;D?ZMSHPUN@IADDEBKHCFEQMQNHOBUKIKHIcGFcAXJ;IAF?BJSMF=GCCCHJ;QVH\HFJ3MDOBJBEDLTCKKELU@QQNNQEWH?QMJCYMJ[JPKLA@ED=GLADIICILLGJE>VNAOEAVSGECIIWaGJJ=HFSSBCMIHOLK>FS?eHEKQONDENT@GDmNTJFETIDRHkEODEKE:GJWHQAHETRMXLIJEMJUSCLPIND>J>AGBLLQGZTFNONMGEJJGEIH=J\HLCJJER>FBCT\OTEDMIO@NKE@IJKL>AFMKRIRAOBSBKIEQDCHFL7BGKGEIMCCCAFAP8XKGALI;?SCBLOABBEPEAMP@AEMLJEUEIKFHNIFBDOOQMEAMGDDMEISGRIFWTKIFNQKCQADKN]JJFNK9NARHTKGSREKNKOLWAHDEPKE@UQOIOOMFFEMPDIQLPJNBLNOJIRQ=NEIJLIDFJFQTZFQPIGQR>INAGP_IHMX8aJN>QS85OZT=ORL;QSQL:BVPR?QMH;VZY:NRPFXS?IHUQ?PJPQM8O;:MQ@YXBZL=[?PYRI[AC1]PPMLYQRXRFV@A:RR>>QDVPYOWJSY=MSQ\?SSRMI=PXFPDSNODKQALW8B>9RT8GZL=YW=YCdU?TURWQZQSCP\;Q8L>?RWVULRROQKNM=L]HXIMF?Q\UMFWNQA@HQYKQLILMXGhPGSCOV=QFSJTKJMSaRPJTMATJQLFHNNLFOVOBPS=FDJMNFM`S:?PACK`Z]XCSNOPDOSE;KLUDXEKSYT_PLLIZUNEL^JLBAWOCONTNPPOTGVHFIOEUEPGMWKHHT@^7WYQGUK\MYLJMPD?@EMKEAHLBRGKCQALHH\MZD`IFCGNBNUUGEB]SH]=GFLBDMUEPA^RFNG[H][LL^A]RNRQOHLBRUCOIDGFCGSI@GQFHHM?ICGAHVHTSJTRQJLEFFRJSHFGDWGDMOPPIRFFFNHHPEWNH7JQL@MNCFQLIGGLPGJPCNJVAVHFKHELACHAHAHUMLDLRAEG@BJCEMKZ[IPMBGFNQIF^LSIMFGPJLFBLVLECE@JIFF>AFPIGKM9EJGNPMJAN;CBPQULFEIHICCGGQDELLRGLLFHPVMLMRVPQGARJINWNEHIBK;OF@QQAFNIHQJKEGBAKDNKGCIZBIL@EJRUAMDMIKCEH;JTHBMDQNFICBIMJEa8ILAPQKPADJPDN;KDAEAEUJJO`HISTEIECHGMFBMTIQ:HJEAUPIEH[S_FMDRYYOECWTG=JN`GENKMUOLROEGTSEJK?CIEKOEEILGQ6NIW??E@RHIDZ=BEMM@PRiEaJFIWE@OLFQ>LVLJKN=@PCF?G@JBRUIH@AJQEPSQFJSGNJHMEOEGFEGBALM@JZNCVSUFQNJP=NDRDCOMAPF=DHU;OCCATBBE@^HDAA@NHJPYVMKYDL:I?USDHGbZHCJ8`ISUFKFRKRQDLQFUILNCTGMCJHLMLQESJ?GBC?HQOIPPSFGQGGGJGGDFFCHJUJNMHQHFIGHKRGCGAETJJLKJKNWBOJPBNDSGF@ADOOIBIHMGCITKRKHKRAGJGKOJJJFGOL?IEOKRMNIHHFFCAFG?HDIILNPOJM\JLHGTPQJHOPNLIJNFSI=AIJEMEMGFCPHMMNRHMHLHKHBNJAJDKSKKMLRNJFKJ?SLOLKM]GTKUNFJEHHDKBL]EKIJCGLOFGH[ERJIMEHIFIJGLG>?ELWNSJKCNSHKEN@LS?FGTIFLMRAFMIOBDPCFAS\SKIHCEJCMKFLIEDSHMSLCISIJLC:DKLZDHPMKI=MEQLHOQIJDEH@ANFLHNJDMYEHCFDIDLKTOPHMPIIMFLFGEHQGMIURJIOMQHC@ZFEEGVRFKIZDKCL>WNYNKNLCGNLOIMSKRILQ<JJIGRGKLG@FAEYDGEK]\DIDLDDGENJENGL=IGALFUWLm^K>QTQFKYQEdCKPSZHNETMIRLPEMIWJT?A?CCK[IBDHDIDUJIVLUYWOIDFOKF?TCGEKPGCOELGaMPJM?C[ELKCJHHMKP@DDIIFCOKJ]?A>UEAc^HE@HCJQ@CEYPDXHJBHIJMHHTEFDIOJ>EB;TMCSNW@IXJEMCQQIECPdGMLTPKMLFDHO@FKMUSFEFPPUEGV[SHIED=UAIIKQJPNGMBQQCMGTUCGAK=KJF?OLNFQRPQDMRXJGKT?JR@B]T@CRDHOHGJQGLLPM^FD?CKGFQFCLIGOEGECRNR=FHLNGHZRSIRLGPLBLGBURGYODCCAGTPBGR=U?SIAKLIF_AJHLIDG=>G[FOGJCOKGTGMRHEPEOM?NPXFBPCNB=HGB?MJFLLJXI>KPbWLVEFR>PU?KKYFKPKLI@HLOVNXK\P?CXPJOKCJEGMNJ=KMPMIECGDCSIR`KJICAKEAFHQJLHGLFHNESKLNECCQMDTGNIVP>FINJMKFNJPJGXIKJKPS?ICNHK?MM;FGHEJPRNKKEMMW<=>FQSJDJGLKDIDARF6AG;IK?LILID?P8B?MAULNGACXJDG\NDFGLMCAJXPRXPOFUEM4EKUEDCWLDLLDMEKSEJIHG9IABQPGG>ZMPQO7OCH@JHJGGLKKLL@OUBQJVLDDCEBMIKDIWJJM@EEHLKGUHIL9RK9OFKRD>KBH@EFLHE?GEEDHSH8THLMEKJKFMHMLCDCPJJXBHJJC?[IBNFKFUF;LJBGGRNFPIF>D>?LNHESG?LHF[HCMEROKBIVGGfO[?LHWIOQLKLJPQQDAIGMFFEGDDPGIDL=CHIJERBWGSINRWBWJJN_?RGICG?ZUVEDQGHBLFNPHFNFA?OJNZCJNJCPHMGCALCLRJI@ECMU@NJHLBHMKJJQP@EGDTHC?BLI@59DEAMdRFCQPOFCRDQ=PZQRNEHSLMAHLYTKIEFJJCCHNJGBP:JONGE?KKADNQDMRYNKIJFFGTFDY=nMDBZGPEH?YLPJ[TJF;XLF8adVJQHJ=HL>NDBIZFAH<=UGKQYMMHBEDFVYJBRASCECLNESHREH;L=JFGMQ>CULKOEJ=BTCR@NBiN\H@SIQKGJDKCLSLCIOKGEFPBO?L:HDPLNKVIHEK@EQQHOMNDY?GGSSBM?EABYGVM@NNZDMPGCTC?NI\>EQhNF@FFFFIJVF?UDPCOFPILS??AIM?HJEKYGROMTB>?JFHUFIHHSRI@CDM@ONOSMM;HMGKAIFVQnISBCQNFGEKO?NTILKJ=CNGKOFOJKCKXCNOCSCESNOBG?JPDHJHC;TGEL>?MADG@AKN@OSAIIDX7DD7HMDISGVOJ?VDCMNLNJDENSEHUNZNIJDNADLJG9C]U@=CK=ROLCBJFQ=HGHQTEGMBDLKSEHJT?N:LJMJ@S@PJHP9GDTNODC@?Q9C>ADEJLMPFDGKFLMJABXHKICCLAEOMYOE8IOL;DKKLf>EF?GG=ILG>9BDWJPE\JMCLDGGOBGGRKMQCHBENO?HO?LCNII@HGKMJFPLEGKCCIBJKAXKCKBDFJ?IGEFDDU:I>AT@FFDKQAACFK?FAKFFEMED@Q@JRMMJ@AEN5XDJON=OK>GITOIIJJK[>JN?HS?OHEAJBQL>OVRGEMHLQ@DIHBNEHEK?HONRINMGTEAJ[IFWDDJ;IPHNDAJMNJQRE@G;KHMH@NFGQIBGFAEDHEPLDHNLIFABMSNODOKSBFDMC@BAESIDXGKPNJGKGAFMCCBIJIDVELAHKTJHHPAJJIPHOILJgAILFHGPJW?GIPMNKRRICKLFLHFFNBE@EKEJJLIFIFCKEFCN?ECRDJPRHNKLEKBFFQJOFHNDERPGGUOCGREKIENMFRLHFOOTZ@ICL?]ILGL[W;KFKEJGLBGHKIGCEFXKIAUJC@JR>ECFMSHA;FKGJIAFS>QJLHLXOP@UBQND;HHHIENCIXHPMI<N=SHR@DNKLMTILNJSNHCOAJILJJIIFBFGKEFBKGMTGCMACPMKJSSHCGDNFOCFMFFID=NHM>G^P;GDHHGOLEE_EHI>ED@CNRCHGGILAHIJGIN?JQ=C>FLGSHBNEVGHUFEJ>FHLO?IXGMBIE?L8RDIHMRH@JMCCBCFV?@GJDBUKP?HOC?GL@LAIbC?:JTNGO>B=FIb=ZDLLKLGBHN@>P>LNEIFEDDE@A?E@NFAFCMC>EHGNAIB?:DUFJHHEKBVEK@>CUKNA=QUH:VE?OSLHIK:GP=JI:;FQSEJIO?N@ABF<>@>QHJKQKA^@ACKO=RK5OFFBCJIOLB;@jR?M@I>@L@BMGDBH@H:;FGJP@BB4PCKZEAH>CKGHLEHCIKPOD@HNP?GKNFQFJ=JFNIR>DODGS`MLPLAEIZDROBHYODTHHQRALIQINCFDGSBQPAHJGUNLAOOBOLUIBFBJW\EQLSFH@NGPF^RPRVNEGQPLMCVGNTGJ@PIELOCMFKMEBHFRQHPIIFCFPOJPMB@MMLOJQMFQNK?KECNNMMBFLJGMFHKFOIAJFGKOMG?GIQM=VNGPICISHRZRPIEEJE]KBEKFPEZHNJOGO:KJIKEMG@RJNCBNJIPKSINLFAACDCEIEDLHCHB=K@DFHPRLOFHDQKJ>MHO>IJIEWLLKK@HRHCKHKCJUHJGNNM?B@ICCMFERGMLPKNE;OMFHHKLHMGGMHELEEKEWFGILEKKFLCNO>RHFRFFSKEKFKNFCGEKGFJKOXLHPHJPKIHNKHMMKNIEOCA>RDZJ?JHECEHHOMIUDIGCCESJBDKIBNNMDIRIJIBL@FLFOLDJQFGPIPXSL>HGLPD@HHKHTFFGPGDDPUFM?OOGMPBFKALELKHHGNCGLPKLEBAPIWJIKFMDEKMLIGN=JKBNGIYCIEGF;KBIBIMLBPFRIBAGJNNHHFFLFKFIFGIOMLLLMICEHBQ@DGDNJ<>IGSIBKJIHMGHNMEQDLC@YIHSCEHSJ_MFJMMNOEMPGOJIIV=EGPRTJJCCIMINCLFJHFJEKXEE@KABMOD7ODINBFDTJTPPKRQJXLQR8aBSBPGAXPC@>@ARAHKJI?GFMN?JHB=VDIT;FO^XDDIIK\ADPILQ]JKJI[EGTGKPDOKNXQGDDFKJ=N=FJVIcGUUKDEGOMDHOSS\KNJPTKKEALFRHACSJ8UHTR=POV5YERDKPYLO;\B>O8U?[HVN?KNTG@RlJ>V?8SIMKETVSSQ7oBD9[KNHMEMNaFK@RQ4KRTW9UFO=TNPIUHBg_LO@=DNLP9D@UaRCFRFLMV=jiBE`YQEHVDbA=EBJNTIYCUKU?PLE>T1A86O_SLOT:[[:M@QSOEIMCITELQQRE;FQ:FJV>OOWT\F[@AD?DCHCGALGJ;HTIC@FFUE9K?LFOLX=ICGUA:PTDGG9CMN2SNM=:MPUYFHBF;KUOB;R@@WLDYHIFIHPMBDF;N1?PDBSQMWLDD@C6BN>TKKAMF>DP6C=WO@KLEASMM=LNGNDSGIL;Q?;?N6L?;LENRFHQKJT?GIJDFNMULCKLAJOARXMELROMDKOU?JINUGDOGJH[GVKIGJDLNMDGJN@EKKLRFNGLJM\EFLWNDL>JDLHKFECIMWUFFOGBBLIJHCQFEQHHISCYHCQT>BB=QNKAHMRQUFCQPHECEAVFPIAMRNJQVI>N=FMLOHCNRRNRCBCIE@PWMN[IMFCOHJD@SM??VJ?WABNLFVMK]V>JVOIDJP@PKKDADKOJV@JOKFCILGGLDTKSP8P=FFIGCJHEERRWKHISICKBLECFGCKHGKOGGJFQN@JNHBTKJKEGQ=GKLQOJfUSGUEIJNIF?HG:EKKFFNLJMCDPAJEKBJHQAP=FBCCJHLHEFGCTJKFNOKJJKTACOTBLLFFHQJNDHMIDHHLBGMFTP@HKIXDJHYLHJJIALFPKDBKQJJH?PHHB[RWCFFLLSEKLMCMQIWN?PFHF?OOCMJCH;VMJDDFIYVKHAHLMF=LAD[FBBEDEGVEMEHMI^JB=BMALMQPVMN?CDDHV=IA@DMGOIRMGLH?QFOMDAT>DCCDRDFRIEUJ@EEHK^@IHACHWNK<>ONSAKF@?VHFGJEXNKFaKRCK@I;L>FP=ZHXTR@KBEIIJHXHKN@K@JCDIGAOTFKJUNIKEGMGKPFBODGDESKLTGSI=KFMIIHHAGJjRINIQDNTDWFYGGKHXNLOSY@MLLFJ8V@DMIOPPISEUNKLOVOILMBLHWKO@DOILVOTIHJ>CMMHSHKJAK]TGMEJOTPEGQENMZ?LEOXRDLONGLMEKKFSBDKJAMDUZAMHJQIBAKOJ;HIDKRGMHTOLOZHOBOIFRALWPZFRIIVGI@CFPFRFJHQJMYDIITEGTFL[HIHOVN@IINIP>JAAO@JESSFCQ?OAHLFKDTABGENFPKPGMIBQDTD[FLIUJJRRQKUDEYFLGFQGJBBEAG?V?MSENSIIVBP@JIOE=DBEGFRD@RIK=AGNNLCGTLIBLGFEGJIGTMOOMCXRGI?MPLF?DHMLGLHDMS@JLGFIFIPCELHHBKGHCTIANGDSNOPNOOBKGNGG>FVCGAIDWRXONRBAHLGDEOGFLCQOWHHFFBLQ@RGVBH@EZKCQUFLKAJ@JHMH@JA=KHKHPVEFTFGMDGJPHNJDHQ[KFaEKHCFYNEJ>MSMDEVZOMLEF]GIOEEEEPN:GHO=LlBFEQQ^GKG^VEHO?CFHJOEAR?HHKF=VKZZ>FMK>LRDJDFAHERHJPFKKESONHELVIDLJ@LV?CEQBPLEDEKKBJKMNDJNtQHHFJGKDP>DOJKHF>HWCPCQOEAKOCM@BNEBJ>F^CC@RENVEHGA>MUMMH@JJDKR?COPEJFHJEPCMQCGFK<@FLIMWDGBRCTNPEHHO>LHLMI?MING?GHBJELD7>>\NFJLHDGSEVGDEIEEPJCJIGUO@IKMBHCMU?JH?JEREDOGEIHEYODMD@LLOSFDAIEIGGGLHPOMQBBHRLTRJVCCEJFBIDWAHBRGH;GMWGIGOEMGHEGIJMGIEGcUJ>CBJA@HR@UJ>NNSFDBSDNHQKOKKHQDEFSMHHEDLDHP`HIkEEYFHKIOGPEHOLfWN;KGLDHGMKBIF7MLQULTKECGFZGDPKBCQJOJMICMJHLJADPEGKHFMXFJNTIRQDJAJMNJJTDGLHODPFMVIAGBKADL=FI@QS;WHOQJBGBFHPJSFAKFQLMRNNPQHEEDMJUBTBJ;=TQMCJG_KZ@FSTC>>VFQKQKLWMFTEWMJOI=IHUCMC`IBJKINMAABGIIADLPJECJHPBOQA`REMNR@DLWDWAEJMD=HBGIACJCOHY[KKOEY?QE>HNBPLCESFMJKKHNCODD@GD;ITCGQPTK>IJ@KKSF>JOGMNIQFKLQQHMUMNTNBPJCQ@IAI@M=CVAMHBHJMLDPGKF=JRDCATVNMJNOFUSBR]DTFFF:AJHIKTUHD>JXG?NERDFLQJILLBMMLHEHJPLCFDFMTMQEHAMPCQKDGMMNCI?HLULHHVKP@@LVUGLDKSMBJF>6EFCTHQOGIFKJAOCOWPJK?=JNNETHKDDOFDJG;KHEDGHAFMN@UBOC=WCGFXTELTNRJJEBF`OSHFMKBPLL\RLFHE]CHRJPRDLJDIDOL>ADLG:OJJD?HLOYC=TLEVYD;:MHNUDOL>KKCQHFKCBJIDBFVSJ?JLSLOHbABHNCKFQ[CHZELBYQ@PLU?Q?GJARQIT^@CGGKLGFEJX=>[VGCGDFTHWDKNVNIEPA_HBABE@EKRb;AQCaEDLIPIPF;MHMGSQ@ZS?LCBMbEBAIb\VPEJ\AHKC@CCOALCLLEMEB[FGFBDGOFAIBBEPG6PAEX[HGBENL>JJZDERPDXUPMCXQ@9XHOJQB=CNHG^JG@NGPFDGFJPGVECLE@KFRFASBQTTFBSZSEIAGENGHFN@NBMIQR[MIP_MIPQGNJKFJPJJJKTPLKT@FIAKMGFAAXLPGFLXZIDNAOADACFNCOTEDO@@DMLWFGEHOFCRG>FPJIDQGHMFPIPFIAH>FEGHE9UCK=GFRKHOA@G@CPDCCG7LNIA@I@JIJAJFKJDGXKPUJPID]LM@@MIVBNFL?AMUOLDKHGDCA=GBKRNI@LXRFFEIGEMDHJNHGGIGH??FGHBNGLEMYQSLFQTFSN>?BJIAEVLENHAFTCK]KCA@BSGSFLNTBKFNOFQPOHMFBICNGOIFP@HOMCEIBB@LMQKCJ>DP>AH@PADGFGEOEKZHHRSCSJLTIFFFDHOKEFRK>;QELSHMIMHKL>QGCSHDIRJMJJHHHHQXEbLFMFMLHGDPNKE@JKGKFFCGJNGiROGA@UFFJHFHKLTND?@MMMQPJEIKQJGTL:aLJKQLHENWNPJPHN=LNOP?MKKSYLPIFB@OF@PJGIJQGB>@JFDAOCGIIEHTJLGN=F=BNLMMDRHHTHJPRLYS;PVCBKCB?IMEL^DJTCAENSNIEODMQJHX[GQHLCHU>JPNWMMBSFPMJDILKZIEPATLQTEECCHJMIKF@OG?BEXLU@FDTETN@BIXKEMF=IGEMZKRDCBHNFHLZJSSFXAWIPlHMKSMKSUN@SKKCPWLUMO>ORKTEBNQJaGEPEJJTBNSATGUQJNGUTPFHESOBFBHOCGSEITHWJ_GND\C[EPKF`AEJB?UKJHG@K6;SAPPAZhKHGNMZVIME;UUGUJRiBFLBIM[BQ?TEhLNTS[:LFBLaHCXONAZFRFQEPSA?IHETHJEEO?IGTYFELQKWZGMPGLI9WHEMK\HGCVOXO6GKCM=KEBOMPDLWAJH^G?@PKHAFOCJCPIOXIFOMHMGCHGR_GLQJEKDQUWLRQAP=BDSLLMPADCCLLU[EQPKEEBO^QKPIAB:E@@DOVHIQMHJKKQNcQPGFNQOHPGKGGJLPFR9FCJ>KGJIR?OAKGPMJNUQCJGIFCDGPLANAM=IKNWOMI@KPNEBWEPGSC@GKGAJHCU?GNE[?VJ[UUNHJOIRIPMHHHTSYBGENQ@QNQKLTEO@GP;ESMGDEVNAJKEHD9AJFNBMUEW>IRFGC@PQKQH@EPRCOFSGKOJIHJDF?IGMLAFGKH`M@GFCDD?SI@FFJEJT@IHEPBSKRKHCQ]@O?SEKCFUULOOEHKPBHOHDMSM\PQFHLRIPIEEG\HFFOCFHKPFIMLTNLVCHTPJT?KNAAHGLHEIHGGEDMNRDFKKLTFVFOJHFDGHQHIIAOHG@CPGH?PKHNPPJKCKKLJDQYMIJIDAMJHIOKIWENLSILOUUJNJFNIFORAEYKJJBMYIFF@?BJBEiI=RKHGCF;FRHVFDLRQDMJJDGBKFNIFKHHIMFbNOLB=DHVJIGCFEICHMHBMCKCLLMKOLVFAINMMDTLJXTOLJFKKSKJGKKVG\JRMQNQPVCJUIFQFOLTQPSVMLFKMMOUOLPHMU[QM;RGKG@TZSQIMXRMSKHQUKMNT[KDOL`LMYOQPLII=GKMURSTTQKNYTXOMEdKHGEPRMSNLWSaOOLDUITPLQUHGMJI[VTKTLJPMKMKWDZPLLSFJaRHMAQSZXLHSHTMMNTTQMOU@?DROSBRKNONPBKNUWQNFSREHLKXUPNPWIQXUSHFUOPLMIOIQLTFVRFKMZIXQQHKCZRQWULDPLQ\QBHVOOHQSRVJFTMCPTKQ]ONQRWQAQTPXVDKJRGZTVNQPQOHSMRBHHPJMOMLISCAAFMAFMEMAEGJ8GZFOEOAQBOPFLGNHBTFIEMKIAMROIOJPEHOJLWWWHBTCGKISMKLGGSHMK:8JKGLFHEKFDDG?QKDLGLFIIE6NOIMICJEFMLQKROEJECITPMDKF[GTJKGRKDLDLKBFNFGPQJOZTPCUJMMEUEIFHHRCJHHME:EQKJGRPLHGCTG=LDHCG>IEKXJFCJPHFOHMNM;NGNQEIEIP=ANVCKPMNPELKHFFJAIK;HLL>MILODMNIHVOAK[HICEIXKCHGC=L[MNQRHMDJEXKXEL@YFKEGJCDGTHNMNHJB^HLDWBKHPPHDKINTDJIRRTQYFTPUTNQJT[CRCGHVE@ITQOJ6]HGDOIN?MM?KIILUPCFMSOYKVPPELJLLYIQEWOWQHNKIWDIIDVYOIZGKTGYLO?IFCOHCKEFQPZD@THGLQRJLKPUR@L?FELIFUNLJGL>NFDCUWRAL@NRGSZYONJBJILUKPJQHR[KLDOORCJKPANMT\NEEL>UNHMWTK>EAEOEN^JOH]EQIVNNGFMYNYDMGKISQGFILIV4EIMiOCQNNDKDECHPJMHDQLXUDIIDHJO=HJTEC@KGIGENLNLLFPLEQUK?EFVCBJMK;FFMA@IDSELGLCNQI=JMGJICMM:NGJEFNBGLULMKRFHPFIHJNDOQLI@NPIOBGSHOFGWEKHKNNJGGCEVMJUMJM>DYGKA?QAJ@P@LQIIDPISIOGNUJNISKFAHB@Q[L>?RQKHFDQSEFFQPKBCEDONPFKJPOGK?QLSPMV=JJTLKJKB=AITNNMIEKOFTOFUFAC@EOKLNOJSMLDIJDMIBLHGGZDLMIOJJHP;;7DKMNN-FFEAME@NPCET8AIFKDG@KGEVNHUACEBFFNBU?EKC=[EIINEKMFDVK>JPI@1GPN@>FCPFETMDGDFBK>GC;M>TD9KJICY>>?CACLMIKCGNBOEDCDGA@SFLHDOMN9=IH[LC@PV9BOGINJE9IOG?DKDHGYK==NNBEKGADBIBH;CB^?MPEJG;HQJ>LJGBM@FNMM[B@CNU>IIVHMKSINQCFCJFCDLAENPH\DIELRcP?QOSDSGCKIPRGEBLJHLSGAIULMFWOKS[DDKINEDD?NSPETEPOQLCTNKQBKFIBGHKC?A@ELKI9KHMDAVTLKKJA\IKIMSEM<]TJGCUK:HWTDRNBOLLK^FSQGJTOJCIKTDIDUQ?REMFCSSLh@G?>LN]RMJLYKMRYELFLWPQLQOGTDNLD?XJTNIINRJBLHPKHROFLEDPPKLIAMCCKHQOCMLLI?ERDPPNNHGKLGBEMIL@JFK@GGBOIOQCBTEAILOHILZNQRKIGSGDD?SDLWRHOI?SEGMC@=PGMKICMFBNYIRIGCMJKNHFMHCNE@KFLQHECQKYQGMMMKEHONUBDPDDFBIEMM>PPOFCFFHHCKQH>CJNCHON=NFIBLANKPBRcHDPRBTRO>JAKEAGEGOHJFBLGJFQMBIDTEOPLGJFLHKHIHEXNHFLMEOLDFZK>EQQO\FQ7[RF6YKE5NUFAGU^-YMSL;,bO5UAOSGPC5JMGMWWMD;FALM\KBUDJGZA?J>EQVAE]hCIX=XQB?KHNYPD`:\Z=KAGb9PD[5LUKFbY=I;RF@/1JUHK@DUHFHG_9?D\OKB:DOI>I1WJ@?KUZFLS2X@4J9CFTCYFPLP2CRB7X1=E.KR=PYI;Ua=M9WQ6GQLCQU@ECQ[1CJKFNIF@=YDIJFODLUMK=MGJKEBFJUBFTIOQYWL>>>SRKUFWGfJ?VQCBMIKKLQGDOB_DSBOSIHLEPEGPJ=HRDBHIIEMFL?UEAVLIGfKLP;MFNEDWAESDNQGADBILNFHDHD@POLFUD]DETIIFR>IERIPBDIV?OIIMESUMKJFGNBEBQXbPBIRC=HGDVIDBUZNBEP?EGKFMNGSITEAISMHWASGJAQNELMBK?MEKLHHILRZEZIHT=RKSQOOENMI?_PEJOTRB@MLFNbH@AKOMKRCDOMALIIJAEHH=AHOERLMFJGXNGIWCKNGEIKEG@HDBBGIEIHHRNGLJHSMALDEJTAFPUJGKGNQEBGIPEHRARIKHDIHPEBASKTJ;NKBIEEGGHILCJKELPVEDLKLLJLSCPOQLHKPJLHRLEPGPVE[JVEKBEEEZHAEUGGOFMEBL?PLSDFKAI?BN@RIK]MO@PaJJM@J\JFJE=KKJRBNVNURHERBYKCTJ>KFNPKEJKHI@`VJQGCQJII@KTOGMPSFOHIDHAGRMDGKN@FPANISC?FHJITPFEMBCJQGCLFTJJFTQGDJRRHDEZBGYNPAMFHJ>HIOEESDENO[APFMAHGDMFFPSDAHLFOHJBJGQHMFIIBLDKOaTRDA@REMMC\KERDP;RGSGRMRFNEC@KIPIXHFF@EPDHHBGBIGEJ>NIOLHHCQGLETTVIK]FL@QECJINHANFRFFGCFE=IQGLLKJSMCFJJKDEM>BDFJFUCSJCOWZDEBQLUKNPIQQBLkKFEMPGEJQKEDCSJLMSLGB?GRNHOEHKVJELE@HGICJZJ[;A=IIFPbBMJVO=EBHICVN[OMH9@DLPVISIIE?KGEQ@HKKOGEV@B:DMCIGCJ9MXQSTEMJHF?H?LIPM\IOPEMGIAIGFKHLLGPFHJL?DNFS=PHNRC@BJLGJGOAGBNJDE?N@CJVGPSHKE@FNRGFC9DFJIFKFJLQMHFKKRRIQEEORFQ?8GTPKDNGMFED>>KAHGUA@NUBMEKSEPNDJ@ODOKKNNOKKQDFF@MOTP?PG\HbM?EHDKNEJ;>FZIMJqIOBQNEKPgVKUHIBIPKGGUHBO?JDDIBPLYGMTGINNNUJLGVC?R>HGQMCGSQOOFKHDFMDGEWWJGENHQHIDBS?ADBGB\JJQTACbPNODIILLTFGHH[=KLTGQ?KLNPJEIA@E;KGCKFEBNICBJMRDEDAFPBFJFLCBLSCKC@CJAHKFIKJKKCPHBKJ=?GKQRGFHB>HCRJJDIDUFINFOI>HEGKRKDFIBEKQI>GJGLGPJOPLGGCMIIINISPLKFEI[KTGBGNCOJMIXBFGEIOFAMNNLLQJJMOPE=HBKMFTOJLGOHIERL@GJFPNIPBK@HQPNNFD=>GMTLBRIEGENJMMGPKMNLGAMK@HHHLNONSJGMGAPFDBDEMORWHAIQX=BJ>OBI?RELKPIPMLBDIHO>NKGKFJPILGOKBEJWRJHMC9LLHSRVAEKECQYHFIPADHKLIKK[POIDLGMQEBI@SMNVQIHHACBSFHEGDCKJIIF?KMQ>FWQJHUVH[J?MEITMJ\FGIM[LDLD>@OLLOOLG?O?DLOJHNRNEQUJABLCGFUIOKRAO=JEV>LHBXHOHKIJJNOE=QJMIOGMVFJIRPDWKDJRDKFHG>FEHNDCEJ=JE?IFQPGKOILHACJAJPIOMBPRBFMFLKFHZFKF_?QNFXKRMHNCHMOG;DDHRBDLJMADCSMECAME@IQYPJKGQOPQLTLDFJEHIW@QMEHQFKLFHCHJLODIHSIVFNPELPQPMHJGUKJODHRLUKKAKMFRGONSTEHMMJRKIKNIGKCHGSDJCJGAHEULLDMQFFCCYIRPELHNAEKKPI@HDDJJPITHJJGQSOXASQIQHMQJHCMCDHLDIGSLXHFDCEHK\RRLOKANHKLQANBEE@NHOIMDBN_gRImGA[=KJL`G?EsTLAP@LOPJHFORMFCLHCJGKVO>FACLRNVACMF>QBCIQJLHRICG@L@ZVGACOFDgCV@EYh[jRCIKYHHNKCJ@IEKKIRs]KHDA\NLKJPAJFCJLcMAQDCEJ]KHGRIEGNNH]QlAEGD@bMIUESLKCBKJSMG>IDD?PBOFJGpGFJHEEQPHFGHFDAGL@J^SDJC?WL?KQARKMPK?DYTDADDA@CNFoPCFSGOHLJM=Lq@VYFB?HII@CRr@LAbH@E;[`HDLESRDCHFSB=A:@CRRDSVCRIIK@MKLKNTCL@@GKHNE@AT]JKCHCBJJEFDAC?EEAED]FILKIAAZGDFR=CGEFQHOO@JNCQBQHMDK^:CHRUQJILJN?DVRY]JTJIILJOLIPPHHFEO\KDBQJBKOPGNKNTGQBNGQORPKDDTQINE@FGKLEJBEDG@NIJFKHKENJIMVGMIQJLKKKFFPFINIDMKPHHNH>BFLHFHIQW\IGONCOQDIHGPPHPGFCCMAAILLJU@EM?GOLEIPFAE=O?KQLL>KURDNDJQWBBDHERMOKBFCIO;HOMJ[HEDMGEHEKLJNBJC@=OMAJFAONDK=GEDIJ?AEEQDKHPIIHIIME=OKR[GPKMMIKVVPWAFICGJZHLKVKCAV=>CJHWSQ\XGCHMBI;JL[EIEXIKFLI?LGNGO?KALEIULHAAABHLLSSHGPKIIISHIQCGCJKHINOLOHN8HEGMWCNKKDCR[CKORYHOHIEB?ENFF>EEKCZQGQ>?BZNJEOVNERLILMQOCIP@BMGANMMHDMTFVGGIKBMHQHFHNDXSNVGHM>MQRMM>MMPZ@HRENGPFD@LEEQDMDVSKDQ;T:UAUQHJLDD>QPK?<=EMK>?7LHKKR@GFEUK?9HQBH3RRTNXCNN:JENCMATGSATFK_GHNBHR<>TR=BIMHLH@DO:RDO>NMGGCQEFEHL9CQGUEMIHLTGbSJ4M8COF;GDFBE=XEEHPFECKRIWBDMNOEPIRNJSLNNMEICXAI]AJLAAD@S9LTWBEIJPD:8FIUO@NAACDGC5BF?QEPRBDNNVOJJNOD?DJFGOFEMKCCLOLOXFMR@BHH?JHM?RIBCA>BSJCD@?LJO>HFLDDGIELHGNM=CHAMBHMICM?MDMJCECL8CJGJ9XAACKKGQCIIDID@NBEGBIULIBJMHAAJHKCSNG>KJHZUECF=AHIDPUKJ>EDBIKFBD;QGJOJ;P@IBJB>OOKMELLFF6IFFOO=LQJEIOPUGE`HDFDKO\YLOC]ONA>EIUFAEMHBOEBDGIKIY_RRL?@RE]KLOBQDNNGJ^KENKLBJDMDPBMRALFFE?FPFW@N_F;SBOROHHMOJGC[eBFJAEMND`RLLGA;THSOEIBBLLPMMA]NJLIGOBd\BT]BNYFRAEEHHHRDNDFHYFHQ>BBZNKMCL_NZGREO@HLPIILL?EAFFMAFWAAFFLHKS@GNDBOFXSDRCZGCFPUMUEPSQGEEDNLALI;AIGKHPOHNUID9FKCFFFDO:QFCMG@KHAPHP@X\GHFO?OG?M=>NFJVHCMIHRMR>EC4G?VHBNN9D?DC=TLLGANAC?FDIGOER:EMM9ROUDNS8YIBGMUNJ>NKDCGHD?N9>8OGPO@MQGDCHQTCKHIFOFLJCeABGGQIBEHIQIPDTH?JIFDJMLFTFLV<=^GSBJIAH:7LJ?NHF8DN?RED[:PGM[E?LLFJG^EE?7HKDFJFELMMKJHDHO@TKMOBN@OERTAEHKJANO=FEFDSTN=BJDFIFHINCKEODNFBOJ@MCGOBGAVHSKI=GOHFHP@JIRY?CAKGP@MC?H7CRJFRSHECILAEGQI=LOPCDKAVMRKFcAFFNKKHLNDKJK[?KJIJSOHFC?F@KHHKP@HPHGMNELQQSL@VDGACQBGCFLAXBNIHL>HHMLKCGJ@CSIQR:WDEEH;@I@KFGLH\HPMLGHLLHNPFQFCHCOFIPFMNWCNUCFSPERKEOAQHFI\@iBF4?IBKMCJ[S@9PKFDSNUQTGQJDXEB@AQ@=AKINd<`OIEcH>4X_TFSRWAcR8bQOWO\@?NZUUNXYSICQ_V[MSYXQM\QYV]O[SOPMRB][^EGA\H<7YdYOL[BiAISE^D[WMAOUQ^F9a]TYMFPLJB_SCPGVTZJTEU>NSYAVbg=LYPDSK>QLPQ>NPMWPEL>:PRF[V?YZO^QGWDAC[YKO^kBZ@][9MUTZQ`WRKXbK@KFVJFTJ@JBMPEQZFHBJGLEBDLJQCJHHPTNDRALJDJGBJJQMFGJPHVJUHSEQTKL>JKKOQIZHSMFCJHNQOKDOLYZHBWKMHMJESNFLRFD>GPBJ@S=@FDDHN?HGIRQaG?KQLBBIOIXKEAFBNPBHLIBNWBQHRECMC?^GVDZPW[IIEJOGLJDH;ICPJRHJODO?R=RPIDAPNJNENGG@TMDIILDPDYQNPKL[MJNLKOGLLNWQWOATPEFBJGF[LMOKJOFLRIDYEI?OLMMEQFPQKCHAJCSN?PWMGRINDYKEQ;CDXCF>EWGJMJKFDJK@JOIGMCHSEWSNAD>SLKNKDPHKGSNCRLMDKHAREIMX:ER@E@OFGGDNKOMTCQFBTBFC?DFTLBKIHEIFNBKJOYOXId?EGJGHPOFRAGKRHIMAOHDQK@IQABNEF?NBSIRFHNOEJKHILGJHEC@EHFHR?JGBIIIFKFAUMSKMJQ@D>LBCWQQHRIJKECK>PFRFINEHFGRSU[LIBH=CORMZGGNNHNPDG@CEHGILRFMKRQO;GSEKLLGNOMLFLFDEPPJHFDEHIGHFGCI0;GSOPJG9c5MFNG>OT?PCXFAAGJQBFKEHKGPMIRHIQSJ[aSMXIRJ_@?CNNV@Ju8HOWJ?JERIAYE>ETLM=C?EFHSENPOWKFq;GKHF;ENFCOENDUDMT_DMDOGWNN?VOMHIF\FF?88WNDETUFYO:BPEEDB[JF=YE;HRQFBFIQ@K@?KKJ@CJDCKCUNKLLYGREA9PXG>FD=FEKOPEOHEFIG>GHHDMJUU@F>A?HVBHMNDMAM@PJQMEEFVMKE?HK>G@DEJDOQRDF@CHERQEcC=LGH?NC?WH?PJBGQ>FX?GF=IACSPCL\?CFIGG@@EOMCGEDJXI=HHY]YUCBI=OPDEIK:GFXEC?@N?E_K?>IM@NELNNHSGEV:F>LUFNBFODWCCSH\CFL]MOCLGJGKR>KCQEIQJC>ERAJSDCD?GKJQ@DNKV?FBEGQ>RFGcMQ=C]?JM@bALMDVNLNE@IBMFLIQBJ@NAKARTGHAQ=gENFFMVAJDLPLEDOBCJHILLSMCK?KOD?=ITJJBHH9?PQOHIPKJGMLEPRPKEIHHRICRBQIPAQKDDNHT?EHKXMJEH@;MNFJGKBWDLLKC?IE@ORW@J@PKLIAFDMGEQE@LN?HWUESCEGHFHHMKGOBKALIKDAGDQHE\EWETKJBGUSMH@HCFJIDLKLGFM;ITKLGLMBLKCMNAALHIFRI]ODHCPDBGHEPPOKK>GDMBCIFRIGHNFLRNFEFIKJ@ACIDOM;AJN@KLKWSMHLLRLMNVFMGCR@OL>SOOSLQFOFIUGQ?FBJHNPLLHXIIDFHOXPYNFCBDHDLKTEQONZFNNFUKLQOEQ@?KN?GPPHDSRIECLNHJC@RPMOIIMLCJLVMJKMOGMBFBHWHDLJJULJ>8LLNFNFZU@NOWKLHKVDKTGM@LWUEO>ALWQKLIGAHJGIWGIJYRBMRJMOBMLFLKGJJGSIGON\IKGX@EHKPDCERMFDGcOK@INEDAH;A;[FD;=CEFCIEMC@G9LNIX?IHPPJ3?K3OBJ;EI?GGJHJC5JJCIL?DC2HJ:IP@EAHAEH=3AGF@=R@KG:FADHL@Z:LE4AHIKEECK<@F>>BSCCROHBDGKCGJKF@MOM8BH?PC9[@DNBEIHJHKIEEDDFF>FE>P;CI@EHQLKOOADKKFAFH@_`R=RT]ZKSWGESPMYXcYa;TG`L[XPA`PYKSJ_VTBVMOGBOwTPMLXERJ`J9^SS\\QNlZVULDUNCQNRNZZFJDEQeAGBTbZSDRNIFHWHMVc`IRIU[OSJHSHLSSPZNSKZMLcQ>V]WLKLQFOHLGBHQQUWHOHNbQ3NHRQSbY\==]ED)BJOYNFXOl`_ENMK^TGKMdUS`7TZML\XJN\PRJBG?V8J\KML`RYLFHKPVcRdDCNKLRBc]nL^>XdXDYYNMI_QSQLJ>UVIOM9WWKLKFH@M]UUTGF_FZRFUFFfPdUXCgSQSYJWOc]YLROgObH[URT?JK[JdHEPOJRBDLIJLNNIJRFIZ@DKKJIDHDFF:DQGI>FPFLIHMK=FCIED?OOHEFDFC@@GEP>KLLD>LDEBMDGKMOI?JFOIMTVYIFCFIH>IHPBPGGLPVIO@EKEHFNDAKKDHNRHJLDAGJOCNEELFLFAEIOFEOPLSFNJX8@JHEHR>CO>PR>JFQGFEACGKWQMH>IJHABEFHFBNGKTJFBA>G?ObKD9HX@ELLC:BBFMOLES@@JGDE?JFHBGHKIPPHMNKISJLELKFHMJHDEPJIOFADSXAS?KAJ@I?MHHLFELGH?DHLKEFIKERFHAHOD]REGKKOVIOJRR@CV@IHRR>KF@GLFDIHVIDHEOGDLLQOSMBPLJJDADFLGJHATPLGEQPMPNIDFGJIJORPGBMPEEEFSMLJYE@HJGMB:TAB>CMMFGMMKIFJMD>BHICRQNGM@QKMPKZIFG>PPMR?OM?EIQQK>MRJFXPSPAJVNGL?KNTIHNAFLCHSBWIKNL@KPTD?LXOJaGYVTNMKEGNH[KAIYETHIJNE@OPDF`H`MHLTOHVGOM9HO>KI@IJMKYLMJMK[HUITOFGIIO;JDT[HPJLT@CR@RLMDWFK[DFFST@GG;N;MQIFN=LK=HNMJAEKNAI?EJRKDKJLCA<[LG]HRKNNJRC@KAH?HJGMKIOLGNEH>ZT@FFC@AGRGGFNSMMKNXNOQZMLENTI=BLKCMJDF>JQDHRBUCFUJEMUBFGQJCMTTBHLQQLCJIQNONCPILCLLNFELFLDUVLR;YUIHMPMJWBLPUCMMOWKO;RTBHQCOIJGJHNDNKDKXBIHBHVKNHMILHIRMKUFSNPHQEGHMA>KG^ODAKJHIVGCDIEKRPNINJKIFLHFZC]HKPBLHERKEPMNDUFSUECHGB@INERRIPXMIV;JHOIMaJIS;TMJESGFEHRJEGMQ?GPFIDEBCNOPLHJHIMEHHILCBEQKHMKFM>JOGHFNCDIALKGEBLLPJSHMJEON>HKNGMRNFIIKAPDHJLGIUMOO>EKJEKN>K5KINWH>KJFFJJLLHBEGHKHJMEEZMALZ?C>UBPJRJLHDGSNOGTLNMPBKJMMHAFBFFJNF:HIHHKMNMWGLOGQMDELFCPCGDC?SH@\UUOXWSEOMIFTOJIL>CFNCK@IJ>FPSIQMGEJIPDIQSHHBFFCBKYEE>@DCNIBOKH@BMM:PRNLC?JQHQHHKPPS@GCABL[GIPYNOKOIEJKPNDCXIR?HITELNHK>K;YABSUILNRJ[JKHC;Z>GFDLGWJ=EBUGNGJMQHKCLANFGGPK@NF@RPPNGBBD8F>MQNBGECC=HNONMPMOLOPLQHBVEMEXKGJNPUGN@FEG@PLVFCCMOJMPLISLMJGHNIIOAOQHJQEHFNEDFEJOHJIL6SYSGHLTG?LRLQUJFGGDWHPRMN@FHRVIFT[KJEFJLM=\HKNANFHTR`CJCEKNLTH@PQFAAVQQEAQCLQHNRJHFINQEBPPOIOOHX[?PM\ODC?@JLOMBDDEGD_VHE@GPRHZ@IEMEP?@NOWULVKM=I;HKALFANMFCGKZVX@FTPQJFDZKNFIPHRXFFHBFEAJPHHMKOJVULMCICBFGMLJEDRRSHE[X@CCCOCO>AEFGDMDIW:FJBH7B;MJEFM@VTJQT8_B?D?MGQG=PIc?JGEBfDM:QMITJREY9BJY;?ETTOBMM9MNF]>MO?@B=QK?BHE_A7ABOQVECQ?PH?FL[IFYB4GJ@FFM<[QM6GfB8KLKBGKB@NJG9LN5DH?ZIJ=ESH>FP9TC;PDWK4>=7MK7C;RTGLBJL@LC\NMFSIDCFQCNR>A?HFEJFPCAFB9SMB?EDFDOSBSN;D9@VBNNIDAJDJLAORIMEUSLDGLFLEMPCSEAGCHGKANC@MFO>HNFCNPHEJKCGGNHGLGIKHJHITIIJLIRPNMNBKSFFGFMAKEFBKABMCIENOHGKKKCRTODHLNJEKSOANSGIFMYEJTAHLDEFEYLKIKIMKOFCHOIIQJEJHMFNENFGSEARSGOFBIKR?ME^MILQIDJGKFF?DGRMRIEJLPLPEBR@DVDMKLSNIJBBHKTCLGFETLICEOFOGQPQLPJKLKE@SMLGLKNHMJOENFFLLNNHNH@RHENDGEJL;K]JNNGJQSDJBBLKDLL\A@JIJMHHLJAII@>RLVFKJ\AKG;DMRJ@FS@DXFMCVOCWBIFWFL>FTCCECjPSQ[K@FNLCIEKGESKWPEONEBLIF=A>\M[IT2H2EHO>BBJ<@e>FNGKCMGQLJAAIHZXI>GO@;CHQKRIJU:MEGRPSJTFAP?Ne\CB-TNQQHMIJJL@XDIAKP>WEN?D@BMGPIKSH9UKNaJM=I;PMEBIPFGNSFPBFFGDDWULEUM7R>HSwbLH9O_K@O5AFJOJGEEKJJNQDDDDCVGMJHDP9KQL?IHGPQAHMSHCHCDGOEEODHELLHOQAKENHNDMCHGJPMIGDMVAHNRGAIHNG>MBPBAHGQLIFKSEFQJPFLNFHGMGOHCKDGGUIJ@DMLELUHLRDCT@BPIEPIDDGDJDEM`HVGHBKMIFMJOJ@HDEBJJHDPODXPG;JADTFDCWGDOJIRFGLABBAPGGMOIJKMFKGKPCKGE=EQG?AKPCEONGFHECNMLOIDHBML>PKJBEIQMJBCIFLYYD@VRoLC@]TJQIHLSM?JCIFIQYKFDFKLEIK>ILNDD@AMMLFBCWPK@KAPOH]OKB?QGEDFKMPJFOQPPFMPDMQFINJ@INOMDDDFOHFJ>IICFLB;FKVLRJRLGKMQLMHAJMCJECIgKDNKEQLNLEMDHECEQEGCPMCCWKBKJ=FTMIFSXP=PEJQTNTLTHPQ9SJNFKLAKGECLGCIOSSPEUOFNHOONUENHTNHHMQOH?J>GHKKSCRFPHEJQDVCOMEHWMPFNQEIMNKFCGQCGDNVIFKGVIPDYIN:NMGJHJLKNDOGLJbIGMMIFCGHKNHG>JRN@BHDMMNTBLhTE@IVDDMHB@UGO?DHKFSQGHHHER[VMaLFRCMVNKG@EIB?XBV:TMDMIHJYLHIUMBLLKFLBGLA`VCGIFFGYJDJJHEKNRQLFI?:JKFUQGSARVLWRJQDMPMGQFJEGVHGMDODGK@@CFKMONJJLSHIDSMNLJ>GBYLAEBBUAA:IKGRLQM\]FOBGTLLNMQSCKDDLGIKTFNLJAONEP?L=CPSGJNRJAGFXMLEHNHI@ELMIGIINNVLR:EPACMCMOIHSIPIUMSONBNOKMOCOWGILQK>GHMOKBV?NBRDFL@H^CFIC8QPM[JLKMNCRFCCOGG@UQ\KG@YAKK@QAXKRaDIHQJK>IH;8]MNJIJICMRHHMGEKDLWWSHMPTGRPMG?KQEPBGJNCHIIJJGDOUM[MANEMEBJ[XPPOMLQGMJJE_HVJLFGVMALNPCWBG^KJBLHBXME=FM?_LGQQ\LKUKUFOKEIPOLFNJWMRRUO>LTMHJBVMMKCLSROLGGOGELSLMJXAPMOLBSOXCAKQMC_GCFJf@LENVN?ODOILTQTDOIRQMAHPJUJHFZS>GMNNIC@RLSUIMDDKFMIERKMGHIQJKEHNKGLMFLMTDTN?SGJRIHI@JTCBOPMWFGFESICHJZEFHNJPKHRRJNHHNEJOQHTLCJHHGFN@KROBHIHHAO?FYXVLHRPLSJPLKJTG^BDNRbHKCRJJQKPQKCFIALNVHGCQKHKHOEI@FMMKKTMGKGDJLVHDGM@EMF=HGFEOJCLEKUQI@O@BN_KEODLLGOPIEQLCMJWBDAF@EH?II[HOQ@GCGKROIOEFENJKGSNIJIKGHi:GD@MXTIKAFF=CBJQNB@G>@@[DHDKJGMLLKKQTUV@NDYIEDKWMIGADOKOIMN=LKOJECOJLBHTB8RDNIILICARFTJFOAG>O@@TOG=OHJLDAHCNTCaZBZ?S6LGJBDKIHPGKFHA^BNDUVQJJKQFQFGBTUPEFFUOIOMIEGDD;AKHGCEKHBPSPYFVRCIPMMHFFR:OELYDJGMHFHEJBLMCE8FCBHFJMJFASJOLBSSGYLKFOJHTdF=HGFFLTLJMD@JDP>GTDHEMOPHLDSKEMGEPLOOJMIJULMDLbIJLRETdOIBCGANEQQH^J^CEJKBDLJGPFGDKKHIJFNQRUDJJJDCGNOEHIB@IBIGMJJMFYYKLRDKCIWMM@IPLHHNHVCKDGFINMQGCDKMGLPLEFKCKJSUBMYLJJENRBQGCFSPFDQQFOELWOCMKCGCHIIKMIOFKDGCCOEOCFMDIQCNHEIH?EKEJDMPDJFFC@PKQFVCI;MC=S[OKBGGI?HGKAKEHAEFNOLGAPLADFBDKGONPUTAVI?NKFWJFIEHJGPHMEBcHIHEGBGDKMKMGHGNMEOKGPXTEHXAHMFF\I>NMWFHCMJ?JDQBIKI]CLLM=GRGLO@;>SIIC=CFPHCGUCOO>PE[APBTO@W[\57VLPUTD2E\2[L;?AKMTPLBHTa9ZI?R8SUOWI@)5QQ[NBSRIfN8@8I>8PZLCHGXM>?:MMSCF;:I?G[\Y[JGJL9=QDK6^S:FNGNEYMOGJ^9G<_?2TOPQEFGHCH7OJE?SPBB?CFBGDAR=HHSMQLKIEWTNPRMEF@IFHEPIIHGNAJE@>YIHANEKLBCIBJGRGN=FCNOMGBGDABIFFMDQKQMIJZD?;WGDWJJKBSJGKRKOADGKOEK7GDAHFFDJN[=JZNEKM;JCEFLHETNKA@M@FCPVTJQQNHKBO<TRCLWISLDMLEKKQP=FILREGAMOPNODKHGMJCQmVTDC>HGGNECTGMJFHJLJOHAKPOUHGPJLMEJGKRKJIFILKMGNOLFLNIOGHJLHKUDMNDBIMMSADENDIEQHHIC?HO?O@GIEIIHVINHMWEIDBKHH;DENKE?MGW@VGZGHRIHJCIDLFBPBIMMQTFRLH=QDBXBODHGJFMLOGJGBOEOMDMKOEMXIECAYI@MHQKLXGIMOTIMRCCDGKLQ@bU@@TIQVABOJDPICHbLGPT>JGQPGKEO?GDKJETKLH7LOSVQKeZL@MQHJ>KV>]SIHU?KICJ?WLCHJ[SHEFOHMCLMQPUM6DADQDFSMBPFMTS>IGYKQMJSOCFRNODVHM;LKY>CP8SGGCFK=VIOKIECOP^IK^F?MAKGKRGWCGNGRWRFEtCJCGGDOA@KNGPEHL@IJDLIPLK?UHJUXGLDTV;C>LJK^IO@JNSPLPHJJMLSRMIC@@ISDHKJLIMM<L?XMOGONCKQ@JBOR>H<@GNMUPBLCRKJNJGCIMOJHHBDPOS@HMDJDLWJWINCG?>INCFNPQ>JGOH=?KIIHC?EHIMFINJLEBHHE>KUSFXB_NCP9=\EFGON?ONO:.AMSBNB?MARIOJMAXFJN:PRFNTFIME`;GMHFILOTOC8CWIF?QNBIQNIQFJ7C=PIBFRPALVN@CDNBCJXGA>JLRAIPIMBPIKENTC2JKCIFDHLJEPIFCDLKHTQ4@GTBGHOMT=J@NMJJ9ELHJN=@OAXIKPDHKN>>N=NJHFMNCDSIWONFFIG<=MEGEMMLHJIR[DGFHA4GYG>d[L5UTJ@E5SW7BK>IFME>JACMaIB?8MDNLADD@ODHL2RPKBXOLQQKJMHK=>FLACNO^WD:EDU>8??O;COJINJSc>:MJNFD=MSHKN9>?5RMJZA>R9BNDJPaMEGNNEINIH]RPE<B_K?QQUSB\HHT=IAV2ASGHSNAADPFF9;OMPFJD@NACLHB9?aLDDITP?QCINX9DHUE]=@:9AWAK`CLGLDADWP@=?FNEG@FGKGLFBOKFLFQKFIQ=NFHLFECIGFTJG>JQTHKALCV@IJ?F>LSMPBTA@GLMMITN9>QMGFFCBPFFJ>LFRHI:DAFCD\QK;KLGDDLDOKD@KGHORAPEHIKKIL?LHJJKD>HFC=D@BE]ILKAITDNJDHDMQJFGR?JIH>MHFHVSEG?KHHG`HXDIFXJFFLDDIOLLGIMS?IVLIXRPAJGTKIWACFLPVQCHXCALNCHLZFEEJJMVB[>MIOQBMFECBFKCRDALCK@EKEKKCGFdJV^RPKIMFQI[IELHMWJXJ@UMKKIOE?PIFCG=BGUCBWTYFBBDIFGDS;VT=4XI;2MSF9HPY/YBIB98i<0WEEWLVE6@QFVSPJ@8AKXNRIGSLGIR:OcRLQJEDAM=REI>PM9UN5NGXOUIR7=#RKQH@K\:LSUOKJG\+2A<9FHB\JISL8HI?;Q3M<9L\-JSF:N[=H=MRFPSII;LZH?EHH;BK?@=YB9IQHBBGI?CBUJ;W[A`OH=ABLOJKBHJ;?QNEONSBMA=KGA`H@VQGI:N@JC[@EIKE6AAM=VCKMGIK=Y]=K@=X=I[>>HM9GW?LHAdSEKRSP5JB=WD9GMBZTPA;IL`IF@S6E?AM5LAMS8AQPTZ6>?jI8I?ABEJHB>QDIC7GAC>8KL:PLH=VN3H6RR3EMIT@UFCVBN5;OE=HSGGUNACJ=LRHLJIMTHGQGHKMCNJ9>LMFKYIICEEPLQ?LNDLEPPHZLNDGJG@9?HDHO?ENNXC@E@O:JUKD@GEBODMHEIIA>SHH?JEIGNKAIHCY@?CPGLH?WLC@?>F=KBO@NLHH=ECKIHJ=PCNMHTJCHSKF\K@KCLF@IGU:QPKVFMGN?JBFFPCO@GMGCOEGH?GMG\BLRE?IKCAMMFPKFGCGBUJMCHIMKMJ>CTFQ@:BLPGQOGFJLKTCDFDQMOMPIKNJSM?HM@SNB@HF?DPJEHNCAEIHLHIDMTAIJ?KFRLAWUSDCK@KRFgHJD@KLIFTIFFDDNNEOQEACK?DCLDCCIRO@GGMRHO^RFNFOQQDMKGWGVMHGFIJLFTBJKLNJIKLFI>VQ>HKBIYCIHHGREFIPHJKKDMUGLFJNWHCDGHBOP9FLHMXDLBNFHFNPIMHJUMJFDFINXETKSPIUSMDRFJGSALGJFGGQIOPHAJJCLLHEWM[WI;>GKSQGLE?`JCKHJMRGFCPBGDIDMGM@LILJQKH@P[ILFGNDAFJLEXEIHEOF\IIJODNBBQGHAADIKINBFLFEF?EGIHEHBEINCNSWIXLNGHAUIYGEHNNLYPBJ>=XCHEDH9QIEGL:E@FPJGLJLKPCIKUIOKAJIDNMJQLEGEGI@FXJDDOOJGERLCKQDNNBPHUJSIFR?CHJF>STWA@WEUS9KKPQJQDP=CPNNPJHJBCCJQMDH6YBO;LABJJOKD7SGUCAPIAFFHFPJKWDKEBE5OCCDOFFHLQTMEPJSR>HNCNGLOMNC@OBEDGBTGDEVAGTO>HGJIGHPJZCKLFOKIH@B[HMEGADJJGEMKQWJ>YKRE@9RVSJEFGFKKFIIORAIR>HXSCJLJ@EOD]E;KRGEIJNIFDECKGQJ=GSTFGBMKIHMOAGIMIGIKIFLHBOIFNXWVL[CR@M?RMREEEVOMMRBTLPNKAKDGJM>XAGJUFLGJEQSKKPHYPGGELNJEPINKVOKMLPRDKPEJYGMMQQVAJFHOHPL=CEFCDMJSG@=^LPIKGMHCKOFGHILFGPHCMCCRCULZHLBFOIQUbKKOJPUOIAIMRAINXZQ\UEELFEFEDPJBDSQWHMJOCHFQUCUDGH@FBAJBNHMKDXHCTJEN[MQCH[J>EILBTFQJPERFE\HXPFHGMJTGECGUNDE@NPKMIFRNJI>HCKRJABO>MHB@GDNZFISILB@DFDIOF?JJS]P@MDHQHAROIJSRK_MLFMPMTEK@FHL=B;KL>L;EHPO?FLKIFIASOIURHILKGLQKK[IJALBJREJM@PGRREIM?ON?AELOO@]OLCLN>ECDO?KPJPIPKSDDSCLSCC?JDFLOC?BUEEBAEMCKLKTKOXKFF@SDJND?LFRUH>=UPDJLLMKPBGKCCAJIGLPXOQFLBOCJROKE?HKLM@IEZGHLDVEOJDTI:EJHTFAQOLGRSIF@DM@CJDEGKFBFDLKNHDIIAOHE8PRILJCGALES=BEOHAFCCAFFHBQSdUWIR[AHXZfE_ILAHNQEPGOJIDOEFHB\CDFMXS[FGWCFCERDPDFEFIFPN@FCCDOB=;NJULUHS@MOFJBSGBFEJGJKJ\SIRIQEdO<\c8HJHHWSD@UASJHDJLFMDAWKDNBP_BM>IEKMILSIMCIASFBQJ`FQ_JGFIUFLIFJ[OGHYBK>IQFOGSCHI;QURFQRUELJOKNIIABHBCCNSJKQELFXLXARDKHFIFCfIXQHGDQZNLMEDQDOEAIPFGOMDGFPRIIIBKFPREILRKIBENACIJLLODCPRIHATQAHH`QEPHKYRHVG>XEBHHJFRGHINFZLXMHE\DIGCMKEHGLKKPQCTEPOMRKFGNHPLELSCWTWJE;PLFN?OSJLNUH?QGGGEPP@RNHFIGEWKFBHDRSP?MHIEIITLKJHBATQTXYDLQSG@GKLYGERGGBECFHaE@>RIBJDQ=OHCDMNQEWEJG=H@SUKLB`A`NHMNOSHNGE@IRLAPFJFC?WBJJJZCDWFQKMdRKSEHTBSILH?PKGFG>EKOTARDYV=MMFFMOOHC^FKEIFPSYPNIKJNFIMEMJOZYBG:BGDKBFJKCCDHKFPJKEDSSIBLIJMN>DIS[@AFEQRKFJFFYLSSWPW?I[RMRGQIYAZGEOBEUDIMJC@PIIG@IFJPKQHFGCJ@APFFJLNHMMFEHUNSKLHIOOGKIMC?BNPRKEFG?CMKFGMPSBGLOBXH\@BKOOPBFI@KLONSLTVIEMLBNECWWIFTURDQPOGPQFRJIFFEMLXQEKNNOEFOTYOHHCHTLKVMH?XTSCNWOEHHIJCNJJE>ELZWR>NCLF=XSLUEM?SCAGVH?JRRHJOSIJT[QSTIFSIKOFIGP@HBNWPFGKK]MLAKSOC@OFJDPDGLLTVAQIEGDWKKLLLHGKJHOHQITG:INGJKJQSNOENJLWRYLE@FeGGNRLJEKI@W@QDFEC>ACHKDSDCEFKCRWNWAKHJRLDSAKMDGLF=GLKX@MPIGGIFIHHEDH9I@DOJIGHNIPLNHLDMOH=FAEBFBKPMLJKFH?KNGOE^KDODaIDCNX@GCBHHMGBHTTDPJIDA>PC`EFODJVE@CPJFJOEOLH=TGDK`HN?LRDHVIBLG@HPSIDTQXKILNFCHdEFO?QCFB@LNG;PPKAKED@9@CUTBGAH^DNNGMSJFFLAKOGMCRBGLHFIND8MOT?PIL>GGJBYHJBDJSPOFDHAIJPMBKGIQFLM:GKHEI@OGMBHLQGNIMDBHIPOGNKN7DBU\M=KDVGLGGJ>HPHMK?QOJY@PF>ND@LTJMRJIEOGFL=?9MOI@[LHNKIKDSCG;GXAJJABKHPEJDVJBCCTPILJBFI]DIKKVNJRJIBUYKJDIPKPEDQHGKIJGAD;FUMBJQNTO\:XICLDXI@E8G;OMDID[AJHJTHGIBM?JBKFIFDTMOJPVEGLDIMQMGQGDEGGFPFL>NA@FGPRBH[ECIG>GTBRAFDP=GENDNWKIHFECTQKJJFEHPGLOGWQKDRXUJHGRHIAJWEGOOIJCJKEEKCLJMAN;SLGLRCRCKTMHKHJ^CBMFIHHFELIIUMRMHGHRGL^QBJKJIADEJQ;LIHNUM@UFHMKDECGM_OBTMGI\BRFQEIDEEKGTTLEJLHDHKNJMU7DHIM@IHDaJMEN]GIHCEIXCFINNL]?TQJJK@GRMTJKFOFGJ=IGMPFUlIFJEC>=FIICMNEMSCIQJJDCOIJHKEBHKPEG<@@FJKWDIL?KP@KTDK;?LNDNIMA@?FTPTN8EDMGM?QHDDJIIRAcYEK6ELH?FHLHDNPKB?HJKI[OF@RMJFMJK@A@DKMMKEFF?OHQFB>LIGKKIHLBTJEFEMEHIEMGGGGPS@@NRKMQFCSIQCBMIJIL9I>DGL;LGJKBNGFJ?KMOEOOEJEHIDSROGMFG=UFJGCBLEHQRLECMMCF=FD>>QARMGL9A?BDGECNEOLD;MSBIIADJDDEITCBAEFT;OHER>GO?J>JBFIHC@HG:BKA7KIJKEOEFED@BDSMDF=FBEKKBEBLAA=BL@HPFEIKA=;CKMDOGD7MJCFABGI?DEDBDHLPLIKDY;L6=BEKN@>FNFEQOK?KLHDEU@OIFM@@R:BFB?E@@IGKHCGACC@CAaCKNNFRGEUPEEE=G>HKKAMIFFMDLRSHXPIFO?QNHIDaLEIGLQ?MeLJR?NMEKNJNKKDIB^QRHDLILXDLQLDHC>NNWPKKLGMSKK=NMLEROC@?TFTQGHARLHLENIDJ8HNM@JFIMMAHHMLQEPKPNQF=OKHGEdTDDM=QREJSMNMXKL[NJHJ_N=ICRHFLJJQVJ[GII?G?@WLHGFQHETDJQJHGQE@EIMHTIBGG\OLHQG?@KDG?Z>SILE?ICZYQO3>?P:MEO7GROPHGRJASNHI=P@MMCDTPKSKEGGUA=I@GKFLJIUQN;JKGLR9NCFE3MFVKHMIOMFSK>TGAR_VTWQ?UQDV:T@J=FMFPGAHMRNGGCJXNEHGI@LPFMIJMOJPEDLHADOWFL?P`<[BLEXCJQZ6MGCF8RNYHLD;EKcHJNZEFGMJ?L@JD_QVHDE[=B>GHHIIQHIIKQVHNCTF@HC?FI9BCGQKSFHQELNIAO[ODQEKVG>`KGQCOXIQ_6;F@APYDMDKTGMN@NV3EKMRTKI@HBRAAMAJLFFMOGI=P;PLKMEI8JZDOHCOIQBSNeRSM`MOGCEQOMLJF?HUNRN>DRZIXLKO@FMGERVLBENCXBQKDJXD=HMLEIOS=PJQ>S@DKGFRPGQVFIAMDEJJKXHTJHRFLMNENDLKLNOEG9L>LJRLGIMJJZXHLHGKJSNJASKA:;GGNSO>JMGGDTJKLBD?NOKFIOTLGJICVBKJCXCNNBOTVR@OGSJY\FANGKDJPUJGMOIGDH=GJLS@QVKJDDGDKMUPLIJKNKHIDKGLNEJAOQHOVHJKKODPJPZ>SHE@CGGLEMH=KVP]AEBPERGMGAHCDNSDHIEKMCDPOGZMZ?HR]NNAFUFLGJ:NGBCGOOQEQSJUHKIHH=QGMBILGMEKJMQSGHLGVNDKBRJJMG;FOSHRM9KXUK\JIKSHHEHO@BLBHZQBH_PXRJFO=JDHFKFCKIGIGEKVJFCF=PH=>ILCKNHKKB>HQJJGCMLFSGJMAKJLEEGHIQB@TMVQEDJBPJQDYCHJKML@ACXFGJEID@BPQCPOIBJII@IAKG@WDYGYIENDKJNBJEVQNKQFCFT=HEQHEHDFQQaMDDQLANFKTP>UFNG@KOOSMKU@EGTFRKBKEL=FEKNCNHEN?CJDN?KTT?RNDQPMO>VM>CEFNKDLOFY>>GORSPLFPRNGUCTEOJD?NFJOBAGIJHCJM:PIFYJKDHMZDK>DGDKDVB>HHAKANTGLLJAVNJJAND=GD=OHcHWKIFKF:PHEIF@@J@FEHDJFVVKEQIMKIF=IDGHHBAEDHICJPFUFFLHJNYG=IEB>bGHCINGRG?GFPGPYPFHDHOGTJIOGHBINUPOOBGGICAAEHHJGM?KEQRKLKTFJFJFP=C@IHGDLBURIRRHNHEILKCKFJLKEFMHPMGIMGJQNPXAKFJNGID@BBATSHHJFIINIKS@GMMIDKUNKEJOBCCNJDLTWJO@;NTNTQ@AIBOSIAFEGBELJPVRHQBXGBMFIHRMMOFIIJJTDEHJYJESEHPCCEEIPHPK=NMFJBIBQJCJLJHO=JEGCM@DCLIHQUA?JGDCJKIFGAG@TEPNEKPNHBDFFG>BKGILEFLVHKAKAFI=GE?LKFDKAEGADMLP\QODJEJHOHCUCQTBPIDOME@GMHRYFK\BDHWNJMKGCYLTNANNGELGJOCDEICOUGDD]HDH5FRQD\SPEEGKIRHKHCEEAKPYR=WMO=OMMHDNRGFIH?KOGCNCCD@SASW?LB?PSLIIBKDJJDGKHBWDIAADFPGPF>LFHPFBMD^@P?F`D>GIKKk?FHEBUKADQGFEUSGJYGMHJL@JJKHDGBTDAMC?FOMJGKJIJPEK>L?[FPEHKKE?G>DGMD_JR??FGLIW?CJL`:N?IFCZSMSGPKBCcANJO5=BLIFD?@:BJODCP=CFH@SPGELFCHB;JDJBJH=N?P8JA?MMKCYKD=?@JMPFJ@LUSCPP?HGUBIM@HHEPBCPKYPMGKDXNE=GJAFWDJ>JBJ9MGHPDGDEHJIIFK\DLFO>GPBBA?JALQJ?LMPML>;H?IFCOKG:=CLHGD;JLCWA>OBBMMDCHGEKKL@JKQFAKKXCIILNMYI@IF>RMANHDGMABMSQHBSIMPLMFWDDRHGRHFFEFUHKBWIMHKMNDOGOIKGGCGFDNKONMQOSFLPSBKTINNPLM@LHLFIDBBQJDEFOMIMP[K?IJH@OPQXLOFELB^?HEEFNQHBGA?>NCOQJKUMTICKF?DSKLJIQKEGN@PQWIUSPEMKHLPIJIKMFDINKEMJH?STEGFHFBSMRJCFPCLLOJXGFEDMMEMSMSKCBEJJ;BJFOJCJAICCPCF@f=`KBATK?CTIMAUFQ@KLPI=M_IFOEBVIL<>IJcI[\RVL7MWPZMHPWSM]NMTNJZNJMMI@YOT;D8Z=<5`TLKGR8UHM_;T<_NSUVCWEKV5ITGLJA<3QO[PT_TVaP4M9L;QMCAJD^PZLRANVAWOZP=U;UHYUWUXWGQRWNP8ALTUSUNQ?KBW[=GCISNK;UPbNQPXIAbX^TWI]T^PDA=CR`GQFXWX=Q_;C`1KBWH0LTJNI>TKIHCCA[GFE6A@KQYJ9LPLQGEWP=ABLIUAWELSRQK;?IKCF>JFK@VHMFDGT@@JIN@QZINUP>?HIJSNSK=GCGPC>QK/VPYALPANKNPF@DJMLIBI@WOeMSAC?AEGG?8IBHNPENAAMOG9HKKKLL?NGOAUcDLIIEGGEPOPRXGNHDEBIMMNBJMUBJ>LLLKIMQGbGGSJCFNALIMHNQKXNEMBECMSLFHCA;BRPIFXTGIJVUDHPBIKDM9I]QIEIHE@KXOeN[OE?GQOCCMJMN;TFFQEJNU@3?MPHIM]LEJKVPJQQKLKFSNMHSHLICN?HNLS;RELG>HRJTCFSR=GEOGPW8YHEOHMOCUHMAJ>J>QRC\[DAYPPGVE>IPM2TMP]HI9AISMNOS=JCPOIDQNI_NNFIBSBF^QAMB7FIMHGEKWE?INL@IDHRK^PT\UOGML8gUJIDQKHDOGHJHGM@GFIQdLLH7BKKFECGNO^UVLL?KM>MQAA^9DHJNMaJRZGLDCNQLUS?ENH@GLEUQIDE\>LJFAPPAOWVC[:IPEMLDIJAIIGE@LIQKJFKVH@FMCEYGEFZQMJdLLLCJLVD;QNJEJJHGJDFWINAWEHBMMVA>K[[CEPFJAHJQDQVXEIIL?JVGGJNTOMICEFTWLJFP=IL>KTJFQOKKDHJLLFRCNGNFSFNFABFKOSLROCJLGELFQCEAJCDO>OI?C@DLVHLARBKN@KJKQLEH@KCPQ=>VELIOJSLLDOIKNKT@RLOO?USQSIHDNN>PPJLGHJLGEFXIHFTKKP@FDK@FRDQLNMSJKLOFJJEKHLKMNKCMLKJIGODEBPKOBKNKKMFSHDHDNNIEQBASHLPM9NGLGAMDILCHIHMHENN?C@@@LDFKILEGGSAIFAHKDKFECORMGEGCKFOJLMSFIDRIFN>M>HLCLOGYDQTQGAQHBLHT?HIURQFUBBEPHFGSJIJGFV=AMR?ENAEJ\H=LGD[NBLJIIJGN?NGMEXFEGMW9OGWQKJLGA?HDVSRHYI>BPD9KGKAJLKHCO\LLKHIOIRUILE@JVIOAKIIMMTGPVMHICFGFGSHLLTLJIHECHDNKPRNFNQIDQKUMCQVJIFNUMGLREIIODV@QJGO[VKPQGMJFOPSNGIHIKHNGBFMMQNDNQDGKITFNCMMIAUKHHHV?GJQCIJSFDBQQPIPKMU_FLGFOQHHFSO^FWKENGOKKFDQBDNULDIENEOENADFB>I@EIJAULKHVNHLJJIKEJMOEJQHLMJHNMLID>MGRCODQGBEEGPJE9HCPPLGEGQ]F=FBDNKJKHHLS9BJI:BHI=CRZQCLOFKFFFQKTCCL=PQBFCPLUDUD[SB@AOOBK>MNEJA=TYL?DAFSFQDHICPBDQINMIRBFYKJAIDLJ>1MH\IPDFUBDD>>KCDJBUODGKPHC@KGKKGSGIPJKFZKXCLMQBLKCQJB\UWCZGEGELPJJHGSTONHPHOFHRF@GNCJNJKZIHCKQQ@EGMUPNO^MRQRHGKFLSJYHGOKPIIKJIU@BVFNY?SAI@HWPPQQPTFLUUAJABNNACK?FQYHENIKNDJJRK\EPQLLZLLJMKGEPJFVS=SGD@JJGHMHCDJJGBRJMBKCBNLNHMGWIIFPATLSQGIJFLPKHRNJGPNFGC\JMLMHZPGJJCDNEPGRLFALFKTCIEKBKLKSGO?EDNRITFF>D`CDM@L?MCFKPGSKKETCFNGDMDBI=FYEL[SLODHNP?>EBCFADDMEIE?ELQHBDE@CO@HI@SEKPJNJFIPPFEPGHHEB@DNIJLEAgNHJQMXFGJCEIOKQHLILEGNGJAHMDKIKOICKIICJFFDO?SOHGLYQP?BHKNCNGRHJMTEQY=IC=CJ>EJFANJJHEJSIQJFJKUBQJFFMCBCAQOMFOLDSELFHSF?IPGMSBI=RTPFGLMDVGNMEROBHDECE@?CPGE7FBN@D@LSDHOJPTQMFM=SGYZLKDLOHDSGFBEDNYOEFPdOHIHJJVM@CNIAUL?PBITBLS@IJRD@HaGGIFKM@KKICIGIDOBMHKTBQJPAEBWGPMKYKD>ONQMRFEJPJKJM@LBPEHEOGETNAZUNNMLSCCFPGWDM>JRQDP@KHJJLQGFJFEHDDLLDLNMPKACEOILOKIJDJTSKJHHLNQZERFIMDP=OBMIXGFBNOGCHMLQPFUSGIES?GSKNNCRNIE?N[MBEF>OTO@KXJN[`EMGUI_PJUH@MJGCKFBJDAUJJKFU:FGPNKGMEJPEUQZNHEJNPIUBIFdFGGOI@UGINFSGWECLZQLJFKXO^RNILVM_\XIBKDQP9BUMJTOLVPYTGBVHBJ^PMVDM6KEGHBHV`@NHFZNASLOPWA?KOCKGYLYRJY=M@CMPINKRLOTS9PYOI?GCFIQ=DPGACQPSVVIDKRKG>MFBDIQJBJU=IFOJUFBSFHJ@IKDKRHMSMUDJINFLKOJCGIQEIKATGQKSPG?SOILKFOKCAUFPJMWEGDKNKLHHRCHGOOLIFILF?ICQBIBOIMWDFJKIKLNEB\JKFGFEHFSJGIIJDRVKLPOGHHMLHGII=OMCDKGQOYEMOGRJPLINtT@IX@BEFMJGFQHHMLDMEQIFC@DF@S?FFLFVGRTJHIENHMHLKN?SCKEVRTKFKEA@FCFEQFCKNBDICLWWOGPVPDLKGGTJSBFICMPQTFCKPUHCTFMMNHNEKHFBVFPMOERKMJCXKLHGHIHSE@GGJJYHLLIO^EFWMLA^FUHHOTGJROEJOHJKFHEGGYCC?HPGFKIHFQKBEKBGCVIKJDN@QJP==KIQJDUFLJVEM@DGDFFD>CJKVAGQCQEUKTQGIAHLDNMGCMEKNEENVHECIXMHPK=QIGQDJCU>OINCGP>H>HCINUQAG>HEKHIIPFDL>TGSKUPYWNBXCCSCRWKTELDJHLMBDFOCHECLRU@LIKRNDHNSJFCDVIGCJDKNIVBISSNNJRKKHJCIJIEQQTO>GVLWIJ?HJAHPFLK@HLOKAPGHOFB==GEIFIEDMQKJHgZKBAEOE]NIBATOJGGHMSXANPFJELOLHLQQROGBOHKIBSr>MAPBBJE>HSFFgKAKMILLMEEHHKLK:OOHSPJJBFCKGJBPFQSDENMMZFEWHP[KZDEFRINMQDNHKBBKMIB?G?COGWJAFIXFLET@LDSPGMJ?NUKGJLAHMUJFDKQIJKLHHMDSHJGLRFGLCSKDQKO=JEGGM?SGIHGH@LMOFTRMFIF=GIC=BKFKKGJ>DOFBBKKDHED=;EF?MHLPEEBGKBUJBPGNQDGFJWDDE>IKOF@TBPMG?SYNGBWBEGHLR@DGXL<:DFDQQSDROE?JHDNHQIADME;TJGILPMA>KJRX:HCET@JKGADIWHJEHH@LGM9UPJOXLPBIHOALMN@GLK7FJJFNUCNHNIfCLE?O9ERHFHAELJCJOC?JAM@=GKGOF?K>FZFPBaKQ@I@NYFKG<\ESGBQOA?I;IfIHBLIGPLbFXIEDMZDDRJZWD=JYOGQIHNEWTJ>BGFNIKAOWBMKHQS@DAPFQ;BL;>TIIMGCSEINKPLEHKDLCGBLQKX@PCBBGUGT]ULIPB]HDWBJEGELN?CXFGQDAHOOJ]HTIEE;IO?LOJWFIUHMNUIQSAMNJHM]DHHRU]IBORONHMMEX?QJJQLHZSKKMAGAOHOAACITTLHMNMOBg>JERAV6NHJPMDIJPRTCLAQ`EBDOHEOGU?EQ\TSQTRFSMKL@?TFHIEOOI<[XEJOIK\=MIQGOGGJWAGQTJLZIHIFBBFUDG;kL?kFeOHFOIKNTJFEJMLILHMLMTTOGJGE:LOVROPYCI?GNAJIIJKUPaRSKCGNACQpPCPFMPPBNICCEE\AJIMKFFJDACIFHNJYMJNFIMREGIJDPLSIFJFINQIJMLJNCLCILLIKIMJFOETUNINMIGOVKL?FFKGVMSBKJ?JHHETPPOGEPGFHERKREWEIMJGG>PGKFHDBRDCTFJUCLMJNG>TFIVMPEOOQEE@DCNPIHHPAMNEPHGDUFLPMS?HcIJKH@KOIDC`MEP?HREHDAMMGcQODRPMJMDNDFJQDMNPLBDOIH@GCFIKFSPHAPFPEAAHCAFIMLHJBHEFMEL@GHJMCMCFBGKBICOJJMEKIHG?EKKHFCKHHGDGQAIOHEHBH@KGNHVFHKJGOGAGLCFIFE7JFRFOHJ?>EGNFIEMKDINFJLIRJMFKPHMNJMALRFKPMJODRIEPNHJLCKKALGJLNLDJFOIEUVFKLK>IGJRYSAAFHDMJIMKRGMNHWLEEPPDEIE@EEBFMDFAG@RNKECRJPQL;JLJPFLKCOLKMLG@M>EIQFOCGFFCDKDBLFG\BDHLEK@LKIEMK@HKOPOEE?EOBRNNBHIUBKKAGHGKVFIV:PGKGKDJ?>JSJICFK@BICGDGTBSHNEACNDEL@OMRCE@QX@TUFHNP@OM`EL=LJLVXMAJBE?LJ@BPEH>]CSQMHCEFETZLFIN;C>MHQLFDQLNXJ[:FJSKOMNNLUFCJBKIIH:@ECLDM@GDH\?@LFEFHJHE@EKEBYO@SKTLGCMGEHIPODKRPGF?GTN9B:LXQ=Da?HR>;CKF@XKIKEN?DBDV=LCQCPL:GO@ZEF`KLDLLGBE>KJHJC?NKFDEBKAOGJR?AO;EAELHOGTHBXHJIMAIEGPMFQPKJDSGAQOOUMRCF>KB?THFNHJ@FDEFEEIFTLEcQIMNFB;DMKGMK@AKKBKQ:L@KN:GIOCS@WQY>\NGDCKOEOC?APL=?G@ZX?HGE[AUAD[NOLWONU@7IDNJVZL]a[O=PUN>]TIQ]RCcKN8F7HIGJ@ZPGPMM[U>C:OKQQODZTFR@>VMQMQ8CX\CTSNPEVR]WN:UHEQP@AP>OF>OELQPGQ@=JVLJPJR\NYIH_FF:KD?DEGRJPORCQW:AMICLGUILDBU[CHD\BE@QKYSFICYEMZVHLSOJSHSFOLLJPDEFEJIFQASM[N]YBKK>ROPNMEEET?FOME@ICGYKGFEQ?GP@BARESFDMNPEVPIHI\SNBFIYDJP=MUBHNFEXJHHEKIUELK?GLQJOKF]JGGY]SF[FVGFUCLFAIUIPP@CLVH@NHJIDLMOMSLNbAXOEJNQGBQCOJZJP\LJKHEJ@PRN>OOLNLK]INTDSDHRHBEQHJLBIMSGOTGI@NEE9M@HEN>Q[_WJYKKJFKKBHHKSMQCSOLLBOJMDLNEINENE@MUAEGXAQOPDJL=MHO@KKRVTGPO?EJKECHJHCDJ?Q_aO@LPTPBLEHM?DKFIAMEFKCEGQDTCEC@CIAHDN]GLHBL>A>DHK@:VNNHKWNJCROKHJLDKIGDIH@eHRJReIGIGGFIRGKRALVSUBJBDCNMMILGKHCCHMSRVC:GCB?A;XNJFMGGHLIBFH=FHABNOB@LAGJ>L@?MEGDBNENFLFCMBC@G@PIH=IDQBA;LGTQLFCFCTHIDBGDNK?MKHKCHOCKHIMHBNZJFCPKCOFH@CNLSEEBCECFJHZGL>MLRAHRR:GLMVBBIEFD@JHSGI?FKEGDKFJMH?JEQ^XNKHWS]FEF>EDEICDP?@OE@EHCDZPNLFGED5HNXHNDNIBFFHCQPOF?MXLFFKPJELJ=IR@FKACICKCGJDIGAAJFWDIGLQGFCCTLFEHGLDRLA@HEFDNF@^MC=Q:TJ>JGHDAME?`GB@GKDQI??@=QGH=GPRFMFK@MQGNQH@G_DDNHCRPBDHDHLFLLSCPGWJNPHF?IDIT@FFJ>Q6TKFCHGGNISFaMNQIJJK=NEG=ROIK?DI@E?SMHODK5MFMIEEIHMCMGCSJLK>GQGDOLGLIRJHOLFHCIGNG99AELD^GHEPSASHLXQYXJMF@QLKMJHQHGMIPQ?HKGHJDLQODEAJKLDNHAFHMBKFQWCEEPYAVGJOTNDIQLIKFIDDLIGJPFSELSHLLTEJIIAEEJOIJGOIILNINGQJFKBNAGCLHWNEHEIDCRJFLJUMPHGEHEOKLANIZHKQNJFGIHCUBRIQHKU?JHT@EIKHIOHKOIIPACGGKMINFJEGHIIdMOFGGFKHJGHE=FCIA?GNTQGJMKDLHEANJFGLDNAHIJQGM=PMEJ@@KFD?CDFF?FINBANUKT@FBHK\KSLQVKHMNEGMPMAKDMF@GFDEUDNJGHTD:^E>VIOQLFFGLUNBPIGEQ@NKRVNPOGE=LOMDVNNK?IMQLBEEMPH>THB@JTRUDAHNEDFIFNGKBALFIIKIJIMLKDIGFDPTU?NQFGJLGGLMI?A>LHDHEEDEPY=A;IFLZSIDJF>;XFVTFD@OLGARJVHBAHCLCPWENJVCKN^G@f?>LSHAPPK`RL?OLWENHLDFKQOALBIB:JGKIVHGFHMbaLGHOBLFFDPNJMUBCMNIT?AKTHQEpFG]NTMOGPJ=JNV[HDNEKISX@WTKm]CGBeKNFQ;MBVF@UEGDBBMMN.NDUQTFNC?EMGS;D_W?GNCNGP3?RQWGEL[KL?LCD>SASN6G^DN5[LA;;GKFSAWS:nEPTG2F6I8BYGEK?YWNTRYZO9NUY`@\INHYEQNU\KQL\@@RNXM>ICJIQC=Q_=JURgOQSXcTCJ6KBG=8QJEHHODcOAI@fHFL[?IN^HPURH9TTL38KFHLIFEAKH_BNVBJHFJYLAAHGLE?F?LIUXHJHM@NCFGDG>NKTJE>ONIPB\KCRMNNMNROHPBDRJJPAMI=JFGQEJJLAGLC@PIFTSFLGRDPNPGDEOM=LB@FLIVQLBEK@@HCHTBXMDLGLTLLFGEE@II?BMEMJMTXFFLTAGKHUSGGQHDEXCEHDFOHIK?JJDMVHKHVJPJJQ@BOEGCCH]8EFHD?CEGH8BIH?EMDTE@HEjTH:NMIJACRBCFWOMU;GD=IFB7CVD]L;M@>Q?ELEG6?PQLANOHCAK>@85CTHLP=MS8MHIKDIMWGA;@NML?EVPFUN=WBZMD@P@BCN@MQD@RV>GHRDNM9H\HKMFEBPEE>KQKIVG@B?IH8VCQFKCAOPBEGSF?JHDOQAQLDJAHBLJFJFDJJHJ\HKBFPASTGHKKFNBBAHDDCONLHNF?PHWECVEFFP@GOTLMGV;I@KFQRJMWCCAHEGHOH?CTMMFICLHLFOEPMJVIKEKFFILTRGGEU>QCHOIKOIPRB>JASJLGTNICJMO>PKKGIUFIE?FILMQIVOCJHLAM@LNJBKGJAKCPIHS^NPMANKJJGHLONIHMKTUAOIJJFaMVJSHOI@QKHHJPCPBPAIVKKCDCPBIDGKGQBAJ?RJ_REEOICGIAOLPLBIEHCJFMINITHICRGIIG^^EYA:EIH[>CLMBNQKHFTJOEIDKXP[FRVVNJFFDRGCFFYOFIJNFPJLCSHILDOKRIIUAHVLCIKKLWKMGMMMDOOF?RDI]SBIMDJFCFIXLLB]LFFHJJNRZEIC?LFLKEICJ@E]UKKDABRUILPJWFCKDMANJGPNGNQOFFPHTGYHESABOFFEH?HBPFPH?KaKI?HEIcH;LMGMGHKCKMKIQHEMXDFFDDDFFLL;VDOOJSHLDiHMJFIEEI\@G=HJLDHJTbIJIYKEJEMMCFSKMT\FIRLPIELLRIGBKPN8JHEGKEGDPFKMHFC>NSULKCBIKWAKNMGALA[HSTNJKHRCJNRJ8?FKC?@JJQMM@EAIGMPSGNEFCIMAKPEZGFZRRKHQ?MOFBETJGODIC;HGPOFE@T@DLJHPHH?FSJKFNOH:M>DHDEJCBG?FE>FDDNIH@IN@AL@FK:QGUI=L?RMFHPAJIEWYGGSIBDEDC:AH^R]PM?E;JCNG>^CE:DDCLXIJOSFEGPUNDDUSBQETDFVLFGJW?IEF2BEUKKM>RGBBPE[JPJGUH9JDKLIIHKEPRKKTCHPWCIIRHKCPHSGMDAHTKBIREFLMKLLHFKBFNIESNLLHDIHGMFIGABIAI=DFG[GH>IHFJIINKGKOLLOJB@QJFNDJFGEQCJDKFG=[FQX[SNMLHBGTLGBBE@PUCNOQWIPHQKHFKG@BICIJGEBRHHEMMBWHBHA?EMIICFIAHECFQIFPDLMHHNENMB=EVFEH>NMEGMJK?HOIMHMNLPQENTUOKBKPEFLFHICJ=LTEF@HQFAQJMWDPPRIEBNDMDI=UNMHFQPSLHBGEM@>JKNNC@IEHROXLFCEEJA?M;K>A@HN@BKRDMDL@DEPO>RHE=LT\CEHHQ\QE?OBKFDSUQAL_OJ@JMFFOBKTC@GPIBEJ=TOAFTHF4XJ9?ECKFYABPOFJMGEGIGFZCIAHDOGIOSRCVCEEBLEJABO@KC@J=G?DIMQQJMM>HDUGJPAQGIHCNMCDLELCE?EKGELFBVLRJQQNLRCINNDC@OLJDCOSGJKDQCBFDGOMECJJNFKERVOEJCYIG>KKGLFIPGHEEKNTNC@IFAFB?PGM=M>>FIEKD?MRQHBIJKFDGHKBTLELHMENDMDJMGCR?JFQHLIHHVCIFBLDKD=MNNKOKIHKAEPRML?GILVNLQEEFPFFHB^BSBMPMCEMMROFBXMVMLIEGIG@?FRCOTHKJJNSCKKJKHPHUOIHKCHOEI\CMKHGCNAECQHVGCHD=GCOLMYB>EGC?NHINWMKLTKGXHCA^QGDHLDINVGMSNEF?TAE=QFJHGDGPGFELFCBXGFWIBEGJJHDJJBHBMIB[BNNEEMFHJFHDCZBSHSHRCOIDRLMGTRN?EJDEO\FI@=LHPMQGHLSHGVUKOSUH?GDKHGILRK=CKFGDDNMIIMYIDALMD=BHTFJOREC?M?SOMELIFOCKGTEGIFQIGQUCTMEQKKAEIGIK:MMOGF@GVLDIJP@DMII:F@LPLQTQOFJ?JJ?HP@JIEFEEHPQ:QCIHJIJHGCPKNHWIKEOD@QMMIKFIALGLMLIKMNG[BRNGKPNBII>KSOCJH?HEFCEFKE7EIVMKLEFMJBQH?SEHH9@ONFRKRIBEK@VCJILG{[CMPEFNDNE=DNDBCPE>PKK;T[EPPSNHOLAHPCGKQFRHKEEKOLRSHFE^GDQJKDJPMNIJBOTCR=@NL?MD@MCCCMLAEEIN@YDNHCFBEJBBL?OHQWHL\PFM?KPNDBBPBCYMHGMI@QQHKM@U@CLEYYD>E>FP[G@BHTXPHGHALMFQBPTWPMSGNLQUGJ>IMERFQUETDKHMDJKOAT[C:HEHMQOEHIJDVZG=RJIEEAFdFAVKES\VE_ANORTC[GAKJKLISIML@I;?;K8HELHNGHIW?IAUBEF?HADUOCNQJJ]BGLWMZHEMAMAZB?CAXLGBA>DZFITJEO@CCIYM;:NFDF?DGOJ9@JKLGWWMOATLDHFHIVVALGGAGCFOS?GJGF9C?IRA?FQHLB<_<4cJAPDDAL9KNFfLCIRHLPC,IGNER>LGQWDCJIECIAFK>FIJHJMLPHCDQQHEQKQ@?GSMOFVCOTPABLKNOB>LCIIIRNUJILJDGLCDDIRBGH>COHC=@JLAFQF>HPGFDHDF>JCFAPKOICGVHHDJJCNQSYHGTGGVEHAKF?PILJ`OHED@FFLKDJMF6?TGKAJVQN>MIHHOMUEgTNAUbEOFDDIOSJNGMOHGDFLC@U=AdIFX8CKLTJT@LNICFJBJTSKBI;JMLRISEc?ICP?GK[QScJHJ:BIDDDMF[TCJ=AO]HXFFGTOFAHHKUHMF>FDCQSZCCKDL@W@O?>LCERO@`K?EJY?JGI^EJUXQ@GKjQQFBJEEECEJMKEMG>LBDOQRFPLS?HGMDRJJIZGAL?SDAREByJWIFUIYGTJM?MBRIIMLHM=H@YDGHEFEIK@EOHENEMOLFIDDLJH?EM>FAFLLOJO\EIGFAJFHKKINQGGRITH?LRKK>EPKMGLHYRGGDOPHVRFDFLCFFDIFROGMKKGJO^KGBEJKTQXT@BYJKZBITTETSHGNCIGDTADCM>ZKFKHQKI@JBNIQ\CJPPPN?ELFNKFQQHHKCK@G?OFNBFVCJ]VOLCPINFMKGBIHNMCICMJSKDMYEFQFNHGNHELMTEOQGMFMOMDPAFXKJKBHGIHKMW>AQIJNHEHKGFeJOGTYGHHKNKGHNI=@MOIBFIDPFOPPJa_JFMQBMJIHC?=ZSOKEBL?JNHPCEEAFHMHBSGQMaGG>CTJOQ8JPILQ?BDP?CGLKHGPASBB9CPQF@WKURLGKRRICSDM@WGED@IATHECHGIFEPIRLLB>LLGDPMMLQVBM;DLK;NLKGI^GGI@V@JI=LHVNGJMBOUFHOMLDTUGOHEAGUF@OGNOPGKRPP@KS\MDEW@AZQDGLaQRNNNKIRI7I@M[UMTRRASF=9OFMODG?@MKBFDGPTQ:MKZFNELF7TRZBIVJSEGFOGMAIBU=EMINFLPVLENAKQH>QPILSG=ERJKKIC^DASDJQWJ_?LNHMQRNAJDGIGRVDMJGJKO[LHJOIEEGB?:TKLWG=@NOG]NJNIFKAVGXDBYCQJMKBKSFHQTKTDNQSICHMTBMLFJTBHZIXDFIJUMNNQAQEHNTHGIBTTXQJIKDCPFPGF@H==HENCNPD]HRKFKMSAIP@IHILOPJHMMLAJBEGBHR@EMCCAOFACYZM@J>`RDIABG@ELGACGGLNEOHCCOCGAGGIGK?MDKCJH>CINQS>@DEISKGQCJHBKKIBMJCIYCZHFBGJPFFQDEKOKJ@?EMIEDOKFJL?:KNNJIEBLOF?XNBDMGHIIEDNJ3CGSACJM=@HRYQCMEVNEHALFRDSQC@ENJFGHMLDLE9HJFDFF8?OI=AALIDNJM=OOHMLCOED@MIGNE@QH@GFLFOQIJDCLAWLYJMNGMCPH[LGIO6BP@IGKCKGSQDLNNVJYFL[IGVXDFYCKFQDGKPGOLPGFDRD?\DODHNFEGLPELG=URIBRIGGFMBKPLE@ALI:PDJI@JDC;\>ZNFMM@:JYDHAJCMJGFF=OW@LS>7BKHJD2?SCUFBOG?CMJ?J@IPMEJ=JP>?CENIEEGACBHAATCBCKFJ;?LMJOQ@@XDCJGKABEMANX?=DJ@B=S>89GDZSFO1=Q@HYD=]9@HDMG?QA\EKDMXDDBFCHDC>G]KPGFTSMQBJU?H>]:KWIJD]9@=LD?KE@N;8BJVKHCELCFKU]JFKNDKM@5FJCERaUFEFKd8IND8>WFKVECJFONOHJG@BFNZGMHNHUMGAGIKVPKLKF:HRJPFSQfBALGI??EJRGBKDIFHGADMIADCJIIAEK@NJRFCMI=GBLNN@YCTHHVG;ERHFBOKLHJMSJWQPFTCBBOKFIGwKEEKICNWXTNANhDD?Gr]OJS@ZTE@JfOQ^BQICMJF@GTFBQENEGGEGZPEDJJ_>ShKIBMHQDBJLGOU[LBAPC?I:RK@NDJCAM@FJ?IOKFaFEO>YGKCAKXNHMG[KCHJKMHUHDLNMZGGGEKR@SAEUHEICH>JEHPQEHHKEENQJ@QBPDFDBDPAUJQQLKTFGDK9KHJF?LB>PJLS@I?ILHFEKCQNFIHH>K@HGFKCMBIPJG;MFBJOFPDGMEJDLGLFRHK?JAFJGJD?MEHHZGU]R@C:OWF@BJE?RCIEQJEF?HYKEKSSCE=TNBCF>>\PIBBFPHIJGQELGGRIT@VGKEVG<>ORJJHIQ9MHBM9>TAOLHU;BJNLJHRHAUN@9DDWL+MDP>=HP?GMRS>:YWZCCI:PELSD@A4IO_9?BQBINR@ZWR=PKJTQEGC?NC9MSCENT@C;EJDSOCOOI=9J@=DVIRI@I>J?HbMICDEGCQIINLCCFILGKERJBLCSTBKDRIHAIIHS^PHJOWQP?YFYBCHHHK=MDK?MCEMEHH=BJLFQKTGHQDFKPBKDLDJKR@KJLCFDDSFT@SJ?EBM>BEBTE@L?LPPPJEFHEKBFGHJOE?UWEDHKKDPPOFLSCRCB>E@@NLIHCOLELDJPKLGT]CLHEQFNHKSQILKAMH@LDFFJGHDNEBNCJDFICJRMJLM`AFF=AGMOLJJKOJBMLKHHQ@HF?@KAIKMJGFOGKBEINDJGHKPDJDKEIP@IGWMN?NTPCQNTKFKBQIJDKWLDCdEFJOKJKAEBBG;JJAVILMH@DEELLLSHDGELGNJAVDKMIMPIL8LKH>P@QDGJ>GMC@VQBGBD@I@DODGMFNJ;QKDLUESJJPJLEGCLNRKGPNCMJQQGXJDTJSAMAEMOH=FCGKGQDFPCBILGKILG?MILFN`CNNYAE?QM>VBHK?HD?GE:K@IDGIFJIDQXIEHNA7TES6CEFMNEDJENBIEELB8CJ@JJHR@ITGDJOK?EHAGJNPGUFLG@EADH>KHKJEPDO:HQ7MCHFSEGKOIO?DKIKQBGFF=@IKJLJCFMFOCGbCJIOE?AVaOK@GAEOKPQ:EPLJEVAJUOEMFHNNCEADTN?@JOIJHQDHGIOOKLBRP;LME8DAZ>DQJHKJG=KVDLDJBJFHMKFMWEE@NKBKaPQRCFG=EMBAERMK@JLKS[KH?IE=GURMNETL6JMLG9D>MPJKSPONJHMEPLDFJLCDHDTIJHRNIJRJOIDJF@HHCFBCTAMIIHIIKBEIGJCPD[RAHGG@RDH[F9IFHLJRQGPQHOCGJJH@AKIURRE?DA@QLJQIFV=WIGGHA>LKINNKHDPF@UHKHNCHGE?DKSMHCOEMQINJDEBTRKHZBGIGRLOFEE?CQPNUSLGTNB?DNHLELICNOV@IRIQHVEJC@KE`BCKDLBE[@LDMUJOR@BPOFBETULRDHQCPOSKFHOICBJEHJMPCMVPKJBDJPANEUIONEEJELMLKAFGASFRLSPHKGDLRUIHLJNNJIGGK;AHDOHKDMHLLDSLKENNH>EBJDAROHNDHJLLBDGNEKJJGHCOPHFNM@]JIRQKFGO>=GLSHDDIHLNKIKG>HBRDKPJKMQFHCEN>CQRFFIMQJ?EOONCGEGFRIWIHLNIJHPJDEGQIUMECAHIHRVBMNQBFEIERI?GHNOGOSOHMKLBLRLDAFGJRAZFKDGD[MQEHBHMRGNFN?GNKCFBOTJGGMHOFGDGUCHL@CEGKDQGKMQ?FKRAGcMGFJEZMJKMCNNMS@CGF`FNCVLOJFIKIUI=A@QHGYG>F?JFPPNRAMHLHCNDFP>A?JFR@RDGHQILKPEGWMKHML@XPDNJN=FHERHMKLGOJQHSEBUNQ?PHIK:PGIIHM?IEFOPC;AFJFHGNHEDWADSH@LONHDJSGD[EALJJXABFHHKLK[CM>E@ADKK;B@@G?KMKNGOIGCMBAJSDJEACQLBYPFEGKPBCKKTGKGDCKNeHKIEMODGIMCGKET@JPONOGEAJXCGCNPCFXGHAGKGSLFHBO>YGCHJJDBL7FF?E@QXIKFAIO>SFS>=GMMBFQJKRKH?KOFLHLDP>KGLSDVLJ>OEHEFGHIGHRVNEGAD:QSMQINQPGIMJEUVYSJRMPKGHMETQRPRMALGXOMRJENHRMDECIJGIMQFGNRINJQJ>IDELDSUSMCJANJJQNIOFLPAUL?HHDIBLGCE]IJNBN\KHDGFIHJGEDEAJTJSIEFMN@?FELH;HJR^EUDBXKLKFHVHITKQJNQRBEFPGHEAJOIKbGMKEIMOJFVH?G?GOFIRPGA>OBGBOHBICEJGFHVJTOFGHM@MKE=EMSBKPGFXOAJTFYGPDHLRIWSPCIHMJMNVF?RVKLDJUR7PRPR\NLNED=K?CAORIITFSBWQCSWV]DIVJSKDLGZURUGEMJO?IN?KE@GKLL?WZVKBGY?UZ@IMGGLHQMNKISHUDMCNCKMUJEIOFGDFKOPAFAMO@IHJAH9DBUNAM^D6EdRIGJKFMM@LR?ILRHJPS?GFHUHCRS@LIUPQKM=LFOFDBEFGFLRKGLKIEXLCOGKCKVIBFIIEG?BDKOODRHBOKNQLMIJ@A[PAKHOBHZLMZC>ZKKSJOFFGKNKEDGCKJTJMCJKSZXMAGJJGCMGBGJQXGJTBDIYLDBWMUGHLOEJ>KOGYNQGGFR?INM>=GNGFCNLOKWPWSHPMOIXHEAOKJKNEFMSTHKMINXIRG:INLJGKLOSLIFKE>KHDCDQ:HENKEEPGFLAFCOIGWNFHEBIJKGRGHV:FEBFKKDEEH@EMJQLDDCICNQBLHPKKJGCD@HDCCDDC>IKO@FJOOKCBKW=JILHGYBMJCLDAEPOGGFCLI=OMECL8AHKEEGDFAGNBMSQN@E@FFGLF;EAKDU:KL5?PJMGEEMME1Q>XABSP?@PBUGSJCDFCGH?CMJZGGGIA?BLEI?GN>GGFN9?@BI?`GAHK@CAABP5I3GL]@AcL2K]DA:NX9BNQFCaMMOG[:=7BMESLMSHSOEEMPOEU>LAPLTQJISJKHTVNHEIQHCDGEOEOMDJMGJOVAMJMDMGJBFIJMTSGOEBHGI@NJEEIUBL@NLHIDX]DJJQGFKCBTMPLGLOCJ[MPFJIEJPNFAMRGBLOAMXDE@GEGHRDQZOBIT?GAFBLFUFJXQHGEGLRLENJSOQFDNARFAPKHFMFOHIKKXARN;LVLRDEHZAJBNGHGKRCF]FDFIAIMECCIFYM>HSHCBCGLFWWGQPDGGNEGFCFCZPRIJEIICIIFXOBHIGSTEKFPPKDUUSMFUPBPQRPHOFQJNEIM?MIHCTGBBQFOIFFE8D>GDK9NEISKAQXM9>L@DALKf?8BSN@JOE@>@>DIVB:IVJEEGPQRJGHLJ??LGVDA?K@LR@P>PH@FJIGHKKPE?CCAUT9>HF?N:>DGAFBCJE;JP@OBF:DH>BFHJIJG=DD>A?GK\LEJFGG;JP:HJNHFNRDPIGUP:KR>MZDBDORD;EIM@DFA:CNF?DFJACK7GQGHHH@N?RF@HNAA@RQICKG>Q^X8DDEPC=CVYLANLK;<=MQ@PBKML\HVG:N?HDQBAHOBTG?GGS@;GRLFZOKDF?WIPFAL<<>CIDT<;ELR`BAHM>HHEAE[KM9RVNPRLFAE@QPN>?GSQJ?RAFIHHRYJUBJM[H=A>OCKGHH:@FKG>N@KUGI\LEJ@INNGPGQ@>>IJJTAGDRNOL?EWPDLM=NMECFEIGML?GEIGGCC=P[S9WAE=LEAFTRENC=DUEI?EA=^BDUDS?JG>;GE[JPADGRFWJDKALAJVFCJIA@IIDBGJGCZLB?MCLGTJCK[K8MEFENESN>QH7FM=9KNBF5LSC?KF7AGQWBMJ>FEDA?GMDIBIL?AHDF=>\BaHCBFDBC@DCB9XG@EMCIDG:;BMBAEWFENNICDGFGHGFE:G?AAKBIODLEFJX>?KDFLM@>IFrO@XPCQI>PGLIS;L]GNVII=DHOLRMUDBDHOCQG>>>JNENL@EMGH9IS^L>>IJbAE?AJII`N8DFGFJICOSL?NChCU8KHGCEEKJUOHBJa@FDcHEEJNDBOKKHKGLFVA;EQNFMKMHDLMGMUFNJPUDDFKGPINFJ`MQA6QEBGOEJJPFKRHCI@KDPUFNHCGLHMGMJHJGDLLVEIJBEALF@AGRAOGGBEVMKVGQH@DSEIKHCJDQ@FUHKI@RIA>PKEOJLF2SEJLKIFQBNOG?JKQGKBFO[JMEHNQRIJNJNE>LIGFMKHCDNHCJP_OGKBPLKQGC[EMJ?UDDMKIHVQENMEGNHJICHNPQPLGHLOCOFRUPELLKHQNOGTNDPKDHIKHEMKJJAFILWKQDFKIIIHEKLEPLCMINKNV:MAQIIEIFI[KR;FFKFHDCPHGDIDKNLRKGTMJCOBK=QCNNEHANBRODFBLJPMIPFVHH@DANG;MBVJF?QCI^GUFFJAIIPNNPF@DQIECZHBGE9LJ6IJ>KLPeDPFLGIQ>H@KDJIBTFWA?YAVLEBFKNF>NIPGKJGFCEDEeKO5FKJBGHFFIK@OKQ;HKLBNTJ@T=GQJPL@B@KCOXJIALHDLN>L=EIKZJ?E?B;OEBRHEIKPD>9BSHM>ELRKCEIPKCLMNGHDEL]JJBGTBJBANE@CKHFMDGKAGPEEGHKMCLHLXEEKCJJILJVDD^GGICJEG;FNIFELHJQQGIDGR@^LHFKCEHIHVKG?PHHF>NELDKMFJKDDAGGICAJLHIEMMHISQBFGVAE>FE@EIMCPKIHINCEHHCFDPAPFOGVJIFGLKA>MKEEEIDMDHKMCBCDTIKGRRMARDLIDFID?EDMPJGHOJCOTJAJ@ZNDDDJGJBGOMB@LQVMCKMJDHCCLFUCADMNCOAELCAJMMKH=LJHNCCELOMLAUART@OKBTOHDIPN;FONaNGFKDFHCLVKLKGHJSJNCCIMOFRNGOOC@MBODFSIGNNBGBMJAKKGNH@]NDNLGFJHMEILAGGPL`INIJSHEKEIQ>GFHJEIGDCCOLOSKMLJCQTETPCKHPA?KFLLGMPXPNTWELAMCWNHFBE]FFDLCSHGI@RLAKNRYAMHDFPLHFLEP8TNK7PKO?BOGKGABQMWTLJAEKMDC?DG=AQSJHH\RXFHNFJQSTIGND@I>N2KG<8@P3@FMJ@>@FHJ/KFD;N]JKLIRFA=?NBHJF?JFFN?DHJAJL?CES4@MDBSNZACMF:ME>=WVBACENMLSFHLGUG5OFFW@X;J5NRFCKVDO@KHPEN@8LCPM-Q@:GCCMVGDHEPG?IZ>OI7HEIJOHIbHAUFQLDULIPDDEDBFMNF@?LTI@LNNORGF?OIE=C=ATBJENSND?DHL>LBKQPANLIQMFIJRFEME@IHYPFGHBHHARNDLPILAOPHML?CKMNHIIMKNIGTI@HFGDL?MAGSNO@B:CINJNFHHGJJDMIQQZH?UHIBMHAJPGJQ?IXOJGGHBSTN@BCGIMNMNHGKMREKUKFKLLATJHKKEHJOPGLKMOFGMEPPEIHI>=IUPKCFPIRVKOVKPATPSHMJRRIESRFJFGOGMIGICNYJQ=KBELQLFQKCTJCFMKCFGOMGJF?IRGVOQLNHYG=FSVANLHPJNG5;MMJGVIIFCIOLNFSMMEgDMA>NKOPW7>SC?MLEKNK=NUUEHZMUNPaDBJGRIKOSHB@JL=FJLPMAGVGNDLOPILFDKOHOLLF?LLLC>GNJLMFHDNBYHRPN=LU>VEFCNOHAJIJ[D;FKCLEHILBCHAJQLPYMCSXOMR:HAHYHEDCGHCTJJJJQ[^=WPKJG?K?CHOBQK@IQKIUYELDCGVJLHHEXQLLHPPKTNGLANPQNQBOMAPMKEPIN@FLFIAWFLLGMAFMGMUGCJLSOVYIGRDBGVIJUEJPLEUICHPWZLPG\\]EK>JGLOZQCHSKDDCJIRHXODGA>L@@JJLHCKFCGJMR?MJIOLWLNFHSLBGQFCLRRKDCOMDD=OMTMVQERO[EXKUE>MQ=DNMGBDMWZKGIKNKREQISQIJOCOIKKOJJO=OHDVBLODMAMAIHHRLUBPMJRDNEEWSHOKROGADPG^HBELLNHPHLIHDJJDOIJJLCONILXMJKG@GHLLJIKAOHSJFILVDMJCJLNOCHICGGAODLPIBMG?IHQELC=KPHHLAONKGGHCHNMHAKDOIJFGDFLPOLKIICQFDSLCKNGIGGCILGDLLENJDLLNMKLKJIGFJHGJIILEOLA>CZJMMLOKG]KPOEEWKFOEGIKEKREEKJGODJIFNJMOJKJFEADZIKMB?JNG@SHODMNMGKGBOH?PBLHFKLNJEEBJG@JJOSKOJEJMLEFHTLKGIQIODANLKLBDHIGOHPMLNNGKQIOIBHRMTIJPOKLJMVLOQMJOTHILRKCJ9F3MMF1DI9GL4AC?KDE3DD9=GKAU:DIFG6EBFIG0HJNG);K?OD>K?BG@@C28JI?9KAMLBEB;A>6MICLDABA;EQL2HMGF=DF9@JG>BGN@IFFHUPAFMHLJ?CFAFDQMHGGLJFFYRMIKOMOWIKRVGMLLGROMGJMIHPINQIJOBFJQLHXPILRLFFMMGVIEG?ILDLHLLPNCMQXENW@I@SXJ?EKKMGDSURLGCTKH@QKLJJIRNGMCLKMQHJHELLHGJHMLOKJHRFMIJKBBPSLJEMNGDIAEJKU^FYKCIRJNFHHGBFFSFDRJQRRQJGOHDWKODJJTKISHIDHRNQKPNKGMJLKDRPOFDQENKODDIGJGIHICXRLRK@MLTIOI@>MNCHOJMJCBGNNM>EIO=KNICLOL?LKVCQZHRKL@IEHJ:OPNTBIIPUIDKHCKGRTLESGHISLLC?JGFJBTFSQDBFFKIVEFPJOGDDKMG>INISMJFXIUFJHSHUJJFOEMLJKGIIMCJFFTISPCIGHHOBNCKNORPNKJKFHMLRELHIFQILKHBEHTOJOQ@EAGA[IE?OTIHKTLBN>SGOGFOWQELNPMZLVRMJEBCOJHN@NOJTGCMAPBPFMCHKNRF?IHbNIAMGI?CELHRCQIKCCIOMKKRMJMEUQG\OFINJHLGZREQVNGLHGM@FEELDEFNI>GEPJ@NMBQ@JDQIFFGPUSRGEJLFOIQKKTKBLKHFIJIAJUQHHSFGNEEOMJICLNBHGQUM@DFKATQLLRFOKSCEMELHHSCEAFIRHJHQ7OJH/XMD9PXT>]L_I?2QG7VH5KBEKI6S7LJEUJJUU:J?:;[SOOLCDXQOUPab5QALWJM=X=M\JJVZ>PGR5O4>6HFLWOJNC7PBH>:;JUBZGENV8NCBINOG@6K]9RYF7YV7J9MOIMRDFH_SRAT]=B8L8DIIHJBIHJOBLFVMLNOLAJCL:LIOMSM@JNJY=A=RCA@FCBFAIM>]DKUGF?ISHNOAIJLRMFCMTSEEINWB;EJGEERCK@NDILICFBIBaIGGHIQEK@FdQXKRDJECP`LJQH@FIDX@LCMNSDBM@CSDMDXCEICBAM?MLC?PFSGCIFDHGSJI>EIQFENHQOZ@BCCX?GHLMWIJBTSBPGI@EBHLBZG@@UHCJAKJDFMSPF@OOJLICGPLNYFKBAOPEDTKIMOHFQFaHOGLTILJREHHTPPXJKLFNJO`@DRRFHWE@L@SSIIJEFKSNIGHDIHOJFACCMNGMICHHMHD@JJRNWEIVSHKENKIHNDKJKFIOANERLLPGIGIQNHB[ZOFDIHOWHUIGCDOWHLSROLRMOKHOKJQMQNJGNKYLX\EDOFMODGECFLRNFGLNMXLRLJHQTNQLNTNDMAPTDLKH>OO\LKKOJGGONCQCJNOELLNHFQQKNCPKXRNMLRLGMCPHHXXOTRSKLGMKFJDEMAGCCFEFHOBLIPJCGJRAEHCS?IEJAGGXLODEJFCCUGIKLCDGDESGELJBLIJ=JSL@QKPK@LKPLJLDZEEDIOEAJ=MMGOCBNMEOK@ONNUGTWDNFGJ@ECHMKHLIKVGFMU@WRHIQPHWI@LAKJAIIFNGG>>MIDKMLJLGENEBIAGLSBFOCPC@HIG?AOOGJQGFIAUXPIJ>WTHLKGIFHNGFKKAQOLGFGJNQKOH?LKCJ:QOPEHQDHD@;HOBBHGFDEKA?QT=INGFDOIGOKHGFGHRFIKBKFMFGCFDHDKBGMO^IKK>XKFIP@I?BIH?DR;XUKDGBKFQ=DbONHJGIP\FOIMOFEQA?FZQNQKPEMNPM@IQWGDC[MXLHLKILMHDOIWDTI>WMHGEMHANRV?[DKWONPIGKKKJFGCSIRDIII=FQWPNCAHIO@GFCWFBGR\OTVLBJJDB9IHHKGDJBIELEFH@OADGS<;JIPGFQ_HFHFQLIPG`LEKNNEODQD^GYEHGFOI??OFGB^O@IERINJJLMXFBMPJGJIPJMQBQR[GJRIOTGLJHMHJGM>CBJXEIMTXaMHJTA_RIJTREHAKNKDHENQGGIaEKEMDRMGDXMLDRRBNLMFRGKNFDNLLUNKFTQKOSIJEOH[FEILPDJHTEUPHIFGH>P@NUGFOGXOBZQ@KJGFJLJMCAOQLKDLO?RNXLIGCJBLGDNAKJDYQGLFGDCHCPSJVCDNFPILKIIFPBLKV=HAVNP=PMHOOUEINIUOMOJKDBDVGJCLAGNEOAGFRMSIGVGJHGLAJPQPRFMWOPKEGLNUKKLHE;FVOJEFEZLKAALFYTPNHAUKDJCNJAMLQJORRHJJPJ>ERACFILKDOLTJ@EE[XOGLOLADMPCJLRGOOILNNMYOCCNOSKPCPISQJPLLELXHOGTQDPFMGGCROONPDRSK@LLLAFLHBLGBWUMPIKPNKOIARMKGKOQBNNORPBEQLN\KRUPHPNIDKCJHGQULK@KKJQRMRIKPGEJSMIPGPFH@IKMCFMTDSJIKJOMLJLNJDQPPOLIJSAQDNKMMHGMSKNTJHKGFKKAFTSJKEMYOJDVETIDPJC,XB>>LTNM[M>FFBFUQLLIK[GLPGTP_HPOMPG>6^;@=AEJFOX'O9R5ERE=NJYRJ1RRVQKB3CJ?EH>F1SEKI@@NCT>IBF]a>=H=H1HG[BCHPKWFJGBC>RVEEI7GSP@VIXL=WLERAPAT=>^IQGHAJJV>AC>>QOGAHNNI:N[2E_HWCU>VJQIIBDDQH\HLLN3?_BDLCHNJX?HLNL@KHH^CGNSTHEMEMVTGbCJDIELLIGOMJUI>QMMGTVPILKQCTBJLWEGMP?PLEOMLEEFGMHQJHGMSLH?MCTIFQAEJHMLTQDDKYSE[GOWLKPFFLHXHP^RNP@GHAXIHCNHJIQJJHFQIP@FHEGKKNCKAWKMOOTDHRF;G4HU*HBY@BAD(LGF>C;AN:OU)'1HJHF=C==4AC8CE8HRQ74N,9@7KOECF97UCOM&1B<D.9=@==:B8HRL>F08ND97@;KC0G4G>>HHB-BC;4OG*>:B8SH7R.8A+>9.CIKL+H8IJHJ@:H?5>=4IG;7;,96J1-4GAEM?MB<$N;NJ/MI>GG55AHR>=F;FQPG4H1$?FEIEP96?:G?0C9RGJ6OD:1OPKFRHK<@WP:RN7MLQA8OOGDK\ENERM?GRHFRLFICM@O=DGJND7I>W@JFLBHJO^@=NMHKH7BKI@LA:<9OMPHK;T@XKL?BSWAENFCFM>?7DIBLHNBIBFGDAJAGJ>S?DWAASIQIA85PFLBDSUGVGETGLIHGPISEB5MbNME?T=QE?=6ENR9IG[HP@?BTFKRNR3F8P9;B?PLFMHOLOOSISQLEKLYLGOHFLDFKKQQLHBGEHMDJKWEILALINHCE[;M@HMHPDTJIFOFAVHGWJMQHUEIRPIESGIOPHCKWEPDLBGOCGEDMHJSNIJLBIIIGHHJKHADPWEJLIOLGNKIJ^HBGOEAKJHMAHGENJJQFDIHAJEHBGCKDINFIHPDHKEDOKJEEEIDISCGDLOMLFDJPGGNIMITEKWKGJGQFPNMWPHGCMECGNFBOLIOHLPKBHGFBQKFUGLIJ>HDKAKIQNUCQIDNEMK>GMIJMQFYOMIQDWADLDWFI;DPEIE>;F@?TAGTHUNHFPQPFOQZBMNIJIHOFKIKN@LCKWAIJADKJKFNOOGIGMGJOPXG?IPGGLDKGN@DQIXEQ?=WMLOJ=8EVKKNML>LTH]PPKEUPQMMMEURQE?:[QM;?QFITNEJLHKJLM@>IGIDUJJADNFCEFIAODJIKKIRA?NP6KOBKAOORFXHN\MKFLFGKLJBE?LJDNCFLITFPIAMGGZBTOFHETQJ=H8@RPVMIFQIPAKJAWLEGXGJNNRAIGTEG5GJHNL;J@KE@JW@EPVNBTJ?JSLIIUNRLJUKWA>KJFEQ@K9BUIMREXFNNNLMHCIGIDEDEFRPDMBDUGJKN?OKFHNIEOOCCUBFMGJNMDMPIEEJJEORGLLAGOFKPWDGN?GPK?DCOLTNOFFMFBGCOGMBMUFI?OKGDKTCJHCOILVLFGGHJBDFF?SGaJCDRFLLHFMTOOGLCGQCEUFDDFCH@DKHGOOVPOGPKOF@JOPHGHKLKDUXSL@CGDO?MPTSSDHLP9XEIKWNINTNEMGMJTHLLJBENTQD=OEIGG?MDKAHHDJQSEIOFTMJ6NFRDOEJPHHUIIIJQLUHU>HKOFCNDM@HATZ<[ICDQY:JRPDFQC>GH?QEIK@9BC@AIQLEE_SFCK:HJKFFMGQSICPAMMPTV?FEF>EC?7FGUMJLGIE>;;EIPFEBMON:>ILPFK>OKCOPOIAB?_]IVRRC>LC@J[EHNVK@ENSZ?KICUUAMLMZKKLVCZB;<`FLEIISGRVD@KBH_MNDBFHfE;;JKAMJGRNOKH\6GMPDKZRC@Q\?E9S?>HBDLOR;YW5KH[GH@CJ<@=EHOMODBPHEVD;IA?E>>IQXRPGHHIMEB7GNT@NKN9QQIIKQJHOB\VRWTV9CJNIT0O`^TJRGERIISgQRKURYCJIEBH]NJAJNULNR8;V@BJFPNLLSHIT\=[9[]AHWDJJdLcRGTBP=NA?MFIFMRBEQN[IKEISQJ@GbPGGFTKGLOFEHNLMMMGKDNFJURMNVLNEFWCELM@KTDKICBB@EIHUABMMLJIOGMBIGGHUVLNNEMH>?@KIGGHI>KAJNFUBDZHFIQNKRGHBCJIZHPLISIGMOMULEJMAJMLJRGBEFEVJEBKK>DJPIEAD;NMPHC>IQHQJRH?GFGLK@GFFJNCCHCJQJ@DNBEBFPJI>NNJEILGNDHIINOHLQL@KKDIGRYILHFCWFQLBUFDJKOJCIKHBBKLCId;UML4W?73HPBIQMH6COIFF4[O?VICPJO=CCXVMJVUOA;LIPU@GPIJRTIHYSIPM\`@O?XLVCTDHK@GO9DLRHM@J>=Q;=P[@VV?YHISHJ_5X6SCNMKSWRVOCR;9;OU8:K@^PXAPKYS>GHTM>K5X;OYMQURY_;P@QSSNGFIGKDGCMNRFBMFJS>UGPOFRNJDHHKB@UDJ_EHBEE=GIkRP@\UBGJEIJHNEHRUOFGQWJ;FNKJFGFKQDCCCCHQHF>QEEHILBDMHSJQPEMJ?MDM>AKQBFLFGGLPBQCOOEIKNK@F>DIQGIB?EHLEKRAEDFEEHGKOPENBEBA@FMEJCDP@EJKMEG=MPENEDIJGAIPR?FGSCDDBHLMJMCLECAJAGHDJMFDOHLICLP@INIAFMRDKELGPIHGOFFHLEESKKDFJSDJDCLFGHOJZQJHIHHKIMKHNLEGHILKLB=I?HRL>MHJNGOBMCIKRLOCNNQOKJJ^FEGKLJCELEIJHEFECKTCLXALEJOIMGHM?TMED@GDKLKJIPRIESBEECDACF>IGKMCPFEGQMENAAIJFQMECAHDKGKENL>HKDHKCKKEFKOCANHDKFCFGBKRKIEKQLEJKLIHOJHLBMENJTCJMH=N@KBJGAKO>JUMDEHXEGHRICULLI>SCGGFAKRQBIHFHRNGEIF>HGH@G@GSI;\VGCPP@OALFUgFFQRCHWF7KIUKKJHJGALFBHFFRMKU`B;?PMFHG82IEAA@IRJGEVD?MMHPQG>@[DFKFSNPQEFBFM:C@ETFJJKFDLLGK@FJMG[?JZ?TGOLFIGPCJFWBBKDHGK=LKJVYQJJCJ?9@I9OBLRBIPUPPOA=GOUI?KLJJEC>IJJ=PB@FLKFKS@H;=EOACEAYNFLEEBEHQDPCJCOK=?A@CQA:KCLAQVOMBQ[MVBGCJHNDBbBDMKJF\CQILALTRFJMT:KKLIELKBJDFOOTQ@IBTRBGSNFQ?FQNFCI;RFIFMRFKRFBRKFBEKINOFBBHIJCJE@HKLHJGF;=COMMHM@CHICYLMOGGLHG>IFICNCKGVFAAVED@CK=PLNFNHNSMPII?@NMNPHNEFBH@HKISTIEVHFDHBVOGKNNDMCE>DBGOEEOCZCJJNKGBSMGA>HEFFCHEVOEBBAOFOC@FOKHULMHF=HTN8QPF4LRVGFPKDF9LGL@QB?NHARIOCBGGVWNH:I@IQJEHDIKUALIILCSCNNBA>DC?;KH@CK?;@NMVC=QBHJ=MEI?FWD>AQPGC;HUUOK=9IFDDMAKA_PKFB;KJAIDBOTTAUGGCPHTHBVEKIJESKMO==ADCpMIMU>JTLUILi9ECOA;JBC[IOSHGP=EG[?CGDQTPFJ=OF=K>IUJK@EB>EWGHAMF7N]LRDK>OD?I[CNCFFLPBGII=]AVAIFTKPWN@OUZ??DNM;?H?AUE9K:H6DRHRN:5CRY@JEECJ?;CJEA?AAMGBPBHHJIAI7IHSJOCGQIH@DLHFDAXDRLKC>JNMPP?BSXFP@HHC;TC=JEDPCK`EMDDQA@JRNB>IUHGHNI]DAGFVWIS[LHSBRFIPI@XLLIMMF?F@QSLGGXAGGJBGIHBFD=EILHLDC]FJB8FNFR=TRQDWb^=GZK@JcIaZGAE>?EILBBOJNQHMGFFOJIKCIQCMODARPI>hET8GKKNOC>=TAPE5DAD@GDC8W;UJ@O>Na5SA@FFGQ?H@LBCQ>PHPWFKBB:JNF?MWJEUS[6VBT8BaNB@F8L8/MRNKYgPW2B@DFCHKCCKQL@1E:APC:LKX?M]FB/FKV`GO:GXWEXJBAE=RDNJIHH>HD?IJB>FNHE;JII>MBTFGMAGOCBHG?KF5FDCKL@=MJQMDD>JIT7QBPHF>DGHBDQ<:G=A?<=;FAATEHG?GFNX@LXDKM=GFKSFFF=CMCBCOFCKKAIB@OECF=K>HPKLPHPHDHBPGMELOL>=DFQDIDOMLHDI>CECC=NIGHHDELE=JJ=HI<6LE?GFLNDA=8J9KB:EP>B?FCQOLG<:@KJAKDC@BFESH@PLPKHP88CEDIECCQMWCDFOHVCCIDEPEPDJ6EKQEQJD@IWQQUCETUR;@HOI@IINOI@N;JSE?ELDOHDU^FMPTKVBF@LJKNCKCJ=TJ@MTB?O@HGDHA=G4YRYJNGJDK=:KIDLBLHLLNROGFAWKR9DHKXDLHQEPNEWpGEHCKCFKIQFIHML=LCGIGHENBRQmKPQLIJIPPOBNZWGPKUTKCJ?IPQKIKNFE>GNJJDVDPFAVHSLLDK@QH?TdHJE>OHFJE>GFHFJBFFINIDEBHKFODLBQLFPGMQGEIKY@EAEIHE`DZHNIEKIDHAAGKOJIJJOFCDBIGCBJMRFI[FCOEIMPCHNKHJPPKIGJEIIQFL=>FMKTPOBEMH>JALHEPXGQ@FKGMPFTCQNPIBLHEGKNHEaQF;LHDMLLILSHCLMPN@SEQTLYOOVFMMGHOBEQAGIIJLFNEWKJYDN@EMPG@TWKLEJKADLK>K=G?INIEDBDASCPITXTHJJKQCPWSNCJ?JFHUOA@LEDJIIPPLNKIRMF[NGFEOIODJRNLIJQGKH=FDJCTMHGCCKKK?PKJJE=EIA:CDF@M=N^EBMFcHGMGOAOE>HOKSG@PH\GFEETBIC@JGKJBKRHJIJEPSLNG@DFHCLJNWPTIFFIGCKTJKFNH:EPPKFSPMRHMIGEAPPICEGDQNLDKMKUBJRKIEDJIMLKL=AJXCK?WWJQKIZEIYFIQKQOLKIFJFJBDJKDHHJL?PFCLXCFFNGWRQIOT:AWCL@KACD>GLAC?RCCOKIBRKQKNBMIVQGBJGGEBODOLDDIBSBDFQEEOIGHDCQJDMMKQSSCNGEMHFJIINVJIODO\SK9CFHI@LQQL;W=LORG6HQIU77KVCTG-8JI:fC@B+KOOLKAM=>IS?MPg>HVP@H?ADCJL29GFBSG>Q;K\>UNIUa0CLJQ9C4L(D[PD_R8IJUR>Dj7LTVWGRL0]0CA.?\8F]J9Qf>[=YN?KG@MGXKG<`bWKWP@C>CECQJEP=OMI@CGETOLVAJ@AQBHLEDKOFEUAFRCDIER>MITB?=TJMGL?LHRILBAC>@HB8CH`HHLHBHKDQDJ;>>@IA:?FGIBEN>S;:F=GL8CFNKKZCBKIVCEEYDLMJLGDGLIMKJDL;CGQAAKIPUOGI;IOP?OFF;7<;H@F>RHGP\SNHWCIPI>@HMHXND?DBH=K>LI>QK?M=CMR;ODABJWNEE=BFIM>BEIDHGQRHFKRcOU1DI=HBhNKDJCKKXK6@SBKW]@EI>nDAMBTK>CZJIOZIDFJ?;@HK`MOEPKDO=JRO5DGNbCCJ>?BNKJEIFADAR=KRcLJ@cABBOHRDMLKDTICJLTADIHLGO>QHHUMHK@JEEOF;XUE8:HB@GL@>QW>AEGEGI@KD>EMGBHRTDAKCWENIFXETUAQLKIKGQTKARCHSJEULMDDROAJHKEOBENIQFKGEHGBLICBLJ?GLCOPKOLBCHLO@H@ES?IEEKPDVPAEPBK=ILLJRSMJGOAOHKFDJPAEHPAKHCSELRTYKCDFIKPdLSDOG`LEAJRLIYJJFGLOQINHHLF]IJAHDEJMWGAOKCBDGOGKKMN?KJBKFDITGLGRPS@HVPKGM?IAKJQ?MIEGF>KELDNFFD>PJG=S?IKMEHXHHUKJJGM>SMKIAHVKNVAMDJBKNUHBFJLIALFFMKJPHLG@GPLNOOC?WEMKMLQETFXUCIEKGDT@GACHNKHLFLP]?Q@FDNX^:HKCNI:EG:^HLDEMEICmIQ;DLC@@UIGIPIVP@LD?BAITILVIMQQDEH`E?JCZHIMKIFCHIEIMK>AIGOJHCGEAZ8NP=?F>ISIDFHcKfEKGBJNHB@>JEDGVFPPKOIJYO?CM:MT>?AGMIMJNMIQJNPJLH^PRNQGLRK;BINEEIFA>O8FBOSFLOcW>F4OBMOM9CFSQGKCDN;JDIUT\VKGP;?OMGGD^PJMUD=HHAFMOKHDEKJP@J\@HReGM=UM`BHIRVR@X^JMCWL>CHVH>DFEI<[JMKJJKKBKJLKJEOLBOJVOpJBK<:EH@KW?BKL=MZJWLFIJFRJR>ORIPMIXUSMK=JHAKINDG`HLHT@YSQTEYZ\NSMAcBBGRRIMCAIWMZCPJIONJIGRNFMREQQGME_@@JNEFVQHHNDSQGKJME=TKRNGNO@VEILZPGJDTICIMKIEIIKCKIADUA?MDLIHLFGHPMMZIRJJHREKYLELIIFFGT?LHHIKJCALMKJLHGJOKDLFNLKTIAIHBJHTHJTDGOOPDIJFLBGSL=IENPFDRVLGOMGNKEHOJOJKMKIFIEGMUOGMPQJ>GLOJIOMJKGVJGALJHNMGJHFLGMOICJBMRAIHGJOFPDTLBDMF;IKEJE?ISZDDFGLKIH?S@EKMHNK@@JJEPNLCLADFEGDK=MECDaJD\EHDOMEFJGNALTNFADQPQUIGVF@JIIMLUP@QGN\NIOHIKQRJNEFDMIJ>MCHIJI?FFQKIGPRIQM>SEICFFLNAHOHHFIHRLDKRIATEHXDHJLRFFALMEDKTHGEMIFQJKQLSQAC7FM]HAE>C]ATHKHBJHDHGHK?FHKSZ??KFR]DHHIII>OELLCSMCDFOLCKIKCONVJKKBRGDEEENRNI?RQRHBG>LGLAHJIG9FE>MFUOOEZEDMMUPNMFIXJGKI=HJKCHMFRGKDKKPZMPOLPSDIKKGVBGURLEMDETALLJEP?FFHHEVCLNHVLVJFFXEFHHA[EGTLELMFENTJMNAOOE@MNLEGNECCKSWFEBOGXGLRFTJNIGKQVUHU=@D>KGAGJEMFSHNPBJBGMA@NDOPOMXPBGSBUEE?KKM;QOHHHHNMUGLOHGIEDIADJN;RDITBUCO?LBE?NFPQJ=MQKOM@NNPPSMMFCIJJF=RCIEJ?FSHFGJEHIOJRTQMOIIJNMGKXOJPSUETMNCRKKHOOGZFKIRC@PANMOMMBGKHIEBFSBK_NIFNCN>EHJSISGOQ[IK??SNHRNRGA@Q_QNAJJDHDFHGZXKB9IKJCL;JFXFKJV@MDOJBIYEEY\IICSWLKJ>FBJKHKEDLEZJKELM@SPIKDTSJFEM`@KGKGFQFAGI?O[HQTMOOGGFKQCHRPEGCAWOGLIISRHDAJHDNHEaCIIWIRYJIJKILHKLGHDQAJNYLHFIGCCPONGPQHNKGJMEERTNCC?M?QIAEIKHQLGB?IEPODKILG@GSJFINJKAGRHQ@?F_KHMI>CZLIGH?OKIIJMFIHGGCDULEHPEEOLIHEGDIIDBGBKAIJCEFIJCIAHRIFGNBREMJFKKSCFOIKJHGFFPANL@KC@JGHC6CSGKKJJNFLJKSLFGMKICKOEAAHFKLIHNIJAOIJHJ@BOG>GFNOMIPPO@EI\OJFJKJH?ENVNBLENCC@HM>GCJMMJBMMJO@ARSMMHHIHEFNDFBKGFGGNQGUKLIGAAHKQGQAGIHFN^JMFDMPHUQNXHMO@IELQSDWNDHVQKOKJKMKTMLGJEYMGJQYXZINFGJCKIEQK>FFONCNOR;LLNEQT=LNOKEO?DOJRRMCJRIMBIES[VOFLJHJHCGOQIKAUSULONPIOKHKRIMMHP?NFMUG?KC\BFI>CF@FEUQSNBIIIJITJFKOHHJIHGKIRNHBMMKJDBJHGEEHFUUAM>NQARGEQREKGTIRBLQBVHFYCDLILMIDINGCFEPM9AOZGLU9ECEDNILQGSERQRKLHGKGGAFJGLBJCMBIPEDRLHGMXKOWHCF]IJIOJQDAPQEAPAGINBUNGIEHI>YIOIRTIWSR>SQJJCHQGLSLODEFHJFIOFA?@R>NDPODFGPFJKBLEQEOONS>EAGCGGRIM?TLLFIAHLKFSMOV;PAIKPFNLGWPBAAXIIZHBGCE?GHJEBRDAKXI@>HKIMALICMIOEDPFVJO@ENKTAV@JCYBFH\NC@LKGDNCCOM8PFBEPKBMES=@DLMR?PFPLAELMFFLCKHICCFEROOQ>PHREDMMEBBIEBIIBDLF^KK?G9MGNK@UJYD?L[NKGJHNCHK>AMND?PMHIIPHJL@CHTGDMKLONTKF]JSB?RIIBEO>GTTVHETCKEBSEGIJRBNLKHPTPTKJIKDH>BVLMAELJCIHHR>PQIHJIPCDNKJK@VKHXK;FCKAEDJKFGLHRSOASBLLOLH;SKMFMPPDINIHHHDFYPEPKFCEIHNKD>HGEJKLIFNGWCMOCDEQIIGECFHP\?COJGEFPAHKSPVTHGM@GEJE@@LIBGFHJNLCDFDEINDEOIFCCEGEHROFHMQHHIBDKLNCIDUKLNNIQ@GIJ=LAD>GHMKRGJIQIKQJN=JFIQAUCIHLPHBOIHINLH?GLCHGDHKGBWFI;RACBGFHHEOJIUBPKEG=@XERNGFOQ@HVG@SEMCJQHNOKJ@FIEQHKGJIFOCHO@ARNIIJRK@GNR=FHALJNS>JOHFCAKHIFNMGEO@MID@>KHIJHNPNJUOKATLHPFFEYPKMSNLKDDSK?T@IP=EKSGIKTTFLIVIL>DKJQOGPEEB?VDMDJFEJFKTM\OSH@K>MF;LDD@GQPGEBUDCLRHECgQLECGI;EGHFWCNILFEMMN=UMMG?BPA;NOA8MMJEN>KHDUKKCFBHKGMDNLPKVP@PEIVJPKJKGHMQISAPEDNEGOLCNOODBGEHNJB>IDKH;IKK>?D>BLFAIOL;HGJSSJMNC?DREQKRUAMOOGOLOOAONJEMTP@EEJERLBTLMNMDD?XQ>MLEGBDLLBdGEHW?JQI>@HIFYFIKJ?AHGBBVHAFJL@K=K:HDMWU4\KH8Kb@>JDRK;jY>Pc\QFbHEDBFRKNSOOEN>^CT[II`NXY=[;@PGJH?HENKQMI\D<\BMFMUTK\SDLIK@INKGB]^7JPBDEKPDAIGVPC=U6;LJMF=FBOVHCEOSSLOS>Q=L>B@;L?KFEVYQRNF=QICCOn?=LS`D9I@VNBH9JI\9RIDWMTCHBFS<>JPALTGCXJRGEECFJK]GUHLND=LJGILQLOSC@PIMS;GCKKa\HIOOQA@HIUDA=CHULJI?OC\XMHNLNNVL@BQGHHKAJGFKCAMCHLFFCNYHMLGFND@N>KOKCoOBGI=MBIFEDLIKQODOB=CELHGEI=HO^LGVLDK=PHG]?R:KJTNXGCIDG@EH?GTDKXCHKJ??JQYYJRCYKFQEP=S@C@AJN[DPGQHJHJEMPM?DKQPMNPCG@NQVEMBHIEHBFQFNCGJLDLPPIK8JALLHPOA?PHGOILLIJNIMDIESDJ?LPVPTJcKPCKXLNMI@PORLGKTNPGGTXBH>MHDF\FRVGJSISST`FHSSIEKH]VFLQNFNK=JMGLIWIXIDKEY:OPX[AR[FVTHSQWXCOSOB>SPXBORELORMJFSGQERICNDSPK]TKH@ZVDHJH_HRKJ\OJICJE;LOTEPNJLPBXMHVHJGMKYMBIUMNIPJGIKMHAPUGLPFRD\KAJLICLTDMDOKSTTKGRK[PIGWIVaCMBJYNCPIDODSCJI=QFGFGPLKAAI<>TKFDSQCKJMHJKPDLKMHPPW>OPHJEDGI@MEP?QKGACEILINKHU\CO@DPNUGK=A>J?JG?AJKIFTH>JH\GCHFHDNHLECHAEG>MAFGVIHLISH9OIHJL=NSKMKCH[ADKLJHO?KDHFL@RLGQRNBH@FKIJP=EENALGUHLBA@CU=UDCTNEK@MDHGDLIQEKHJBQ>PJE>GIECVEGAAOHFGIE=BCFAM>G@;A@TJMEOFGUBGJMS>HSS<]KIBBGBBFKSFDQBBSHD9BVAIPLT@MFDOAQELUMB?ORLDMOQK[MYLK?OMCR>CJEPXDABTLQS>HFEMTQILFU=NSDCUPMIB[IDE9EJDMMLHJLCLSFCLVPLHE>EQOJ>OLDI?UJIDH;`ADW?=MSJPPGQJ:LHPCRCI?CE[6PRDAKVGB?IIFOOBKFSNL@YMMH8JCOMIOHJWDEKCGMMDGNKIF:EXGVCCRFT@HKEUBEL5MLADWLPLUJSYTJYPGCPIA>AG\AD>JKJXCSAXJXCD>@FOL;JG@K=MBSLHI;ADFIKDARKDPLUDJNHEFDN?JGAMWPDOT?RC=SPMIKJKK@KCRIGFMF@INHGUE@OWOKJO?R_KEFMNCTEOMGJGP[APECLKL9JEAJISPLMJRUNCIORQJA\OOSBQQBZUJEU9CNJ\AJ=LNMA?C4LDD?C?DHIGEGJHKENFHSNHJ9SHGEKMMGDPPL_IDEKCRIOQLCNBMCGGNNVLIOJHRHPXLDDBIQC?PDHFLM?QIGNMJMKR[QRULJBLIFMKAKO7JEHOKXDLINTBHUDWFYXEHOHCLHMMDCKDOOO?CROEPNTCKOIJSUCG>BPGIRFQ@OI@K`JGCK=BTNfHFENMRGKKENSTBINNG=DKW:GCZRSN?SWHIKPRYQYMVQEKJAIT]NWVLUBJBCPGLMSSVLNERUFFOMDCOSDKSJNWKSQPBIDRUMGUYRAMGMDPOEUMJTYHO@QFNKJKOOOGMOTGMIFIDMJZKNHCGCSFL7BGIIFEDLBHQDZWLSHFJQLDLO>IKNCGMNMPP;EGEHKMFHFCCJEALDOPKIGIIGLNO>LLKD@TDDHHCHHHBINGFFBWMFFK>AIB;BGB@IO@@IDOSGLKCBSJHJCUI6ACNK@LEG9WP@^CZIJQSMIFGCPJAEO@CAIVQILENCFDEICDKTBQROO]HQGILPIEPCRLSXH[?@AFKLHIAQIHFCJFOKFDD[ITLE>JBFRHIJQAIDKHNOHTBFHTL:PLMCGHPLCPFKQICLAHV>FYOJKNJNOKBJEMFMD?BOIEFPSDSDIPRHAQLES@CFKHLHCVQEIIH`AL]EN=IOYZ?PSIMMI@VLHSDWGM@FTCcNLPD_IHLEIJLHMTTOIPMFCECJKLDG=MFORIkWfLHELHBJIUFOLXLKWTGODGQIR]CANHQEEJgCODIVPNH?F=EBEMGDEGLDIIGGE>JBFHNCKCBQUTI^RCUSHVGK?MaGJOBKNGFMTOFLMFD\P]RBI\RKMLDSF`?VTFQKOOYIL_OUKNIQHKKIJKI=N?QKLWNKMPNGONHSEJCFLHYAQARS_KEBB@BDBP?Q=NGGIIKEBG@CQF9HLEHJKS]CDEFNEHXXOLFMXIN=RCPCTUNAJCR>QSLHLJJFAQIHDBHPJESNDOECIJMHMAQDSBKGKCIFZKDALIRGTKSG[U=QM`GNLAGOFGLMPWMCIGOOUkNJC@RFMN?PNMMKCFORDVFJG@FD\SJROM?OJCZKFMBRHSKFUQ@FFSEIOGGINGDIPKEMPONR?ICSHFIDGJIESCLEJHWGNELW=ROAHNJXB?NJSBBEOQQSCJLNIMFHKKEJMVIIIFIGLDKNAM@RJHHDJOMEOYIKJFUcUS[LIWEGLNEMGGDSKKGE;PJIKWMMDMRRKAGIJSQUOHTHKWWJM[LKQbLENPKOHE^HMHCEDPN>JPJHRYQREOC?LQGKPHPCCFTQEG:DFQEZQDPCBDDD^LOIJIEBSAPLFGKIVIFIHJBGEFP?CBJAEOPJIHMF@JDJAKAD[CKJDKBWHRS\NHEVQBJMJKVH>KKDJHI?KBQLIHIL>GKMSJE=MK@@GFBKGG=STVFFQJ@KAEGW?HNKGJ=<@MLRPHMR@OOC;LFDOK;UHIHFGMEuFBEFRYSAKEDREBALE=EFIEDOKAIL\DDNRFFMGQAEPULMTSNFXFFFFMTSHJP]M?JOJADDTcKOGGHKJNKMIDIJ@FPVRFNLUGKIJQCKVQUHQLQNKEQSPGENLBFGFGQFNTKIMCHNNHOFLKNJIDKMFLTJTNNMPODKMIKLNOKPNHRONGJJJILHSDGAOVSRSDKUCGJNHMJLXUMSJJPPDUOLHMGJ[NPETREK@NRM>GMOMLQFNOCOEIEKJFDG?HI>GEBFLIJNS;L;KRMDUKBMLMQIQL@JODKPKOMN[FCYKFA@LGCICSMLSHGBBPNGYEKVNTEbAKHINMMIJGMJHEM@BLLHHLQMHNIYYDCCLGI@>O=GCFRTAK?F=DT@IGWULKNJTDACLNNI8DEDIGQWHTLDHGMCMDDHDCPRSRUGF_QFDICTMHMGQAFAODHVGARQGJAEPFLDNb:?>IBMNLLGLGGBKTCK\CJEGFHJNGJIKFEEC>LAAQUJ\DICUHLLGKHTQHHQECG\LAKDEEL]JMR@\JGJ:GJRCIJP=FUQA>FXPOEONBSGLPIJLJNZHG@LE=TLQVRLGLHOMFIFJMIFSRGDJ@PQSGOGM=XLIFOD\GLBRKPJITRTHMC?TCROGQbE@IGOMJQYDUHNHJIFTBMM@KMLIQKEKB?KRHFZJFFKPI=AHEEJIBEBNERELBLETIEGM?GJPAHDCWFCJDH=EOMSEHMDCCHQRILKCJLDFECPLM>LPDLFUEXMIMFCHTJFJDFAIMLIFIFQBMIDGEKNQUIBH>^KNMQHDHHRIE=BQBNGJOLXALGGIKB:COKMNHPSOEKAL@FHMFJMNBGKRENK^ATP<)QWS>^RF1TLII56YH3UIG@-4F\EECSAML;E;^ZGWY15IOL\H8=NKGKJ2;EMU^Ca:K8MKJ8JbX:MWQ6LRC?:\Y7DRNMMDAC8DQ8YV1T?3\>SUALe851TDUQRZPS_D;XB79IUA;L3L]KKSM]_/PQaPGU3Q/IGJNWO+PJR>K.2KGQEQMN>XPJf2SPQJLFOFWHMADNLOBHLOVA?MAJCHDIRNHGQPQEOJOPGLSTKUJO>HDMOQKIGEMGOQGOJNNHQFKKCJHJJKNHCJCJGGNEGLNE@FMOKLJIFPOJITYDBINLIGIJIK@VTQALHKGTPGGUVJKMMLEIMEGGQYLFRCDJEJJOVIIJUNVLGFLFH=LJOTOOFASQOHMHNFFKHHIIPFMJEIEBBLIENIHEFAHPEDKJNBNMG;GKIPBPDFMWJKICPIK@GFTTRBGSFDGHF@NHEHPOGMELHKINIOOEXNMIOBFKHKPIKKKDDVPMKTKGWSHLSMIWUGGNFTGFHLRPIJKEHCMFFMJKFHHCLFQDNKPMDGTNNQDB@_KSJILKBFFRELKCECNIBTVPMIINFUEREJFJIHCLPLOKJX@QHBJCNLSHEP?KIJQRJIRFCVMP>JMMKL=?FIVLgEKRNJHHGKGFLHIAFLJJING=MOBHMNEMJMGGGNEEJVGJFMQGCPKFGOLGMOGKTMGJAJYYTELEMOAHJEJABSMBXMWPLMJTGNFPSKMKCZLDL=JGLBI>@HEIQ\ARIQHEMDBAJARIHSNEXHDUGKKKJQGGKCSAUPNCIGBEHDNOKJIKQHSKGIBLKNHRKLJ@OMGKBIFILRECPEPKJLMBNOJJCKJRMP@PSEFJM@J?JMENMPPNIDKKFASMMPELDILRKIGDFEGOEKEADNNJGFLBNBENRMLKK@DEJHFHFHLCHQHOKDPNIPIKGKMNQFPGCDMNLNFQDELIKLIOKHGIJHEKJDHKMPHPKNGQNGFLIBMHOOKNVJHKTISRMJNRNFILKEIHBLLI?EKFJCOMOIDLDIPHKOBQNJRIUTHHNILCEFL?IJDJBQEMDKHEJNQJIQIBBJKIKKHLMRDGFG?QYEBPLKHPDHGGJKFGOQKLIPILQSLCOYEK@DUQDNKBPKS>FcGFJAHX@KRHJTJEKMJBLWQHKLEM@EBQCGCEMTNHLOFHKMSEGD?WFSFIOMMXT?GGO?HMIIH;ICOESFbOGUFEPUF;IIQHGGMG@>BMFIGINC??KSBAMEHWPIKBFQDJGLBI:IIC@BO>MPBRGFKCTJDLNBB?NFCGNNFI`WC6FJQFRAORND:KESE;HGMM=EBCA=H>OW?QAEMQGNDRGUJM>TQDKHDMSTCODSDABFYRSFTG^JJEK>BKJSAKZHUHLHZDNKHUAPEIFDC?GLHJMRPMJ?KMPAFJIFMO@DLLPJJKK@VGEMDRFKE?IJRFJBFHFHCFBUIHC?NFHNRIJKEI@EBJGHJCKPXFRFNKEHDGFPTQGT>MINE3[KMSDKQKQGODSIILGFGJLSKIENPLLMJSGTMIRBQHYJCCPECSQIGEFDIBKERBAHKEBJAQIDL@CRBMHH]HJKWHNKFJFH>XJ>OKSOGNMAMGKKQEHHLFPDKMJHE^KSKDTOELGGXPFUIGLMOZUANJN;KSUIGM;]NHOF=SMKJSGNLKGG<@CSEOOBFMLIMFSCLJJTDYIKGON@WNOMRPYLIEJGECSF?LSOOJKNARCEM;@IJLMHRPMNOPFVSPW@URDQKDIBDMPCOIRL@UHUHJ=KOKGKJZ>FTTLNDJJJDHXGJJUNQJFDFLFFQIPJNLMGCNCBFLGHHAXKIQK>CJTPERG@Q9UAD@JLGMHDLNCMGMEAEDLCPHJCQI>CGM?GVG@EPELHPHUBLK;DJ8WQLEQDEGLCDPCM@@CGEEEIFIOXEIPACDQ|JGBUBIRODKMHEVIGFE?GNO?CGQ=KQVGITFNEOELVIHBMJQEARHOIK?ZGEUUJgFJOWE?C?LE>OEAGCHLPPW@IHLUIIUIGJRCEUEOJHELG?H\PMCOS?GVKIFDEB\EURCIHP=DISI=NH?ML?GLIBCRNCCPJBQEANH@HCPRVFHHJYEN[LLHHJNMGMTEHADG:;REELBSGIGTI;ERJJ?ULGRP[XKCKIN[EHMKJLPSIQFHPlLF=IE_IIGMDSIRQMGMJNOQXNLHMINMNMKJW@]HKDHLLEOKJERJFJJLHHOMTINRBLHBRHHGREBHLGHLIKNSNMJGHNJNMIDLNIFEHNGKHEULEICNIHJKJKCSBHFMKEFML@FNGI@KJKSLGKUEGJSGNJLJ@L@PPGJ@FVHMNKWLMWCD9BQIDBTG@FCOLLRJOLNGEUSLILGMMXTKREKRIPHFPFSPKFGNNOFLZJALDFIIILGLDLCMDFGNNKHALFCHLEFRNJPNGNKOGPANQOJWHGCMMQM?FMLIGGMGHBHNARKMDNRHPBJJMPFBLNNNDEN>GKAMHVMDOPLKEELGFIVHFLC?DEOOHFMJDIFTKLJFSEDMJSJLBRBJK@L=NEKKNGINNLJERH[GNRHFQUBICIESIOE>MIUKJPJHHJWGWGGEKMJEONIJIMF?EHJLKJIJCWLNFJ?JOQBHBRGNCYKIABLHIGDKNT@GOZGJDIMJLPIHCKUUOFOHLEKJDAMIBRWQAHEDMEHIDMGOEEMDBNL=ISJVEMEFKTFKJAQPHQNPODFVGPOERAOJKLLOXKDLWZLCKDCILAGMCLJMOIKKJLLGLJEEKLFHA>=BJG\>GLJBSCCRFURC9AGQBPJBPFL\EKJSKDKHTKH>NSIW7]FEKMAJRBDGGCGKTLNAFHJYMPGCMFLKNQNER>FFOHNOJCDGR:MNNP@KCKMCCUGTMYAC?GGLTHFBDNQBP:@NSHANBPVSVDC]AjFKNHST\JPCFOHYNCDDFS^JTROWX6;KYE>SSOX@XSQWQQHXHHLPMTSH@CUZADJBHQIUHPGRYJTKJJ>LQWWTOWJHQNQKLG\HGJKHBICCIJGMOQOOJZCKHFWBKLKIGFHRcFNI>IIHXJLPGFEGMHCQOJ?YCHSDNCAOHNGJNNKMONRh=RSE=EKGMT@CKOC[LSQINFIHQVQTBJSPEOHKIwMGNXXMMJHHGBLJSLKU?TRHY@FQSLSBIIAPBKWSIi>LDHEEMD?KRDWKBPFG>UHWLIaSFNHVRMAEKQQDFKPFcAYJDZTFHHKJDIKDVWPTJYR;LTLIEFFLQERGEDNRQOIQOOWOUKRHPIOWBMKDXNKUIJXALHM\]SDQ`PBRKRLUVPLLZYFHHADNLMILSAQAIXKPFERFZIBHMKPNJEOHYJ>JEFSLMKXBJDJGPJH@QHCGELI@LRJ[CJ;IRNFDHDITPHSOGOGGKP>NKUCQSBXXRW>KJRQKF]PIQ\YWLGZ[PI7GMLIT]O\FOCVTTTNUJQLV]CLSVDXYNO[ROJlF:N?MUCM_USPLY:J^T^SVHALWTZOLN@STQGFJUPDNBNWEY;WSCPN>FEZFX>JW\QLRO=iE9[ONMLOSBVOBLXQTIC[MKTSRXNBaVPOJ<`OgNFCH]VEEF^8CVRCENVE[HXJYMUORJHZSC^SQgWd]THOKYVW=VEOPUTYOQWAUXQDKUZEQh3OR\OMcTSOJUZaaOKY2_ORBGNOZ@ZHSLVJ@kOS[XJBOBGIKLH@XJ=>JALBGDUNBDBEEFNJCGJKFWLHIHEHJGFYMJQUKQFNHV?NDIRVH>LU?HJFTCNDNBF>KGNIHRADIAHLGLZGJ@J>ICEIIOFGJPHDUIBSD@SLCKUG?M:LPABCMX?RMRJEKRSFLZBKFARRFSRHPQCM@HN?NECIAONDWNQTFFDXJ=QIEOOOA^FOHE?BTFJME^SNGNDHPGNRMKHKNIHPHI^LMHFAHFGQMCNXLPPLLMLLIVOHBH[CBKTGEJ>DAIREEICIK?@>HJIODGLMMRFN@NLOMSKIAILFDMQIC]MMDBFZZSGNECEAHBRIKdJ?LEJ?BQVFEOMYGEIOLILHJSBXELGILEKODAMPZN>SPTURQ>QBDIGMAHL?CKMPKHOOCNEDNPENLLTCKJQZQGMKRGXFKM=OJJU>OGHNOI>DCCTJZJN@B`ROJGKE@BJVMIRGKHMFUNK=CC?IEGUCNF>@HCCKLGGNJIXLTLLSDF\ACG;ZEB>?KBIAGHDLCIJPFUIKEIRIFP@CGMPSBBFIODECF?NEL=ACLHDNGBIMIFLLENQFHCHKFOMFOGPGYEMHKMFG?DBEKPGAA>OHNM@BYIGVDVJDEIX@JLNJD=FPEPJ@QPJBOQWKNDMEAU\CJMUV@VI@EKHJPGGBANAHQEIPTPFPMIJCGR\RDI@MTMKREHJOYNLFNDDZEDKRSLJULREMMCCWGLJ>NFDN=PO@MGIII;CECKPHIT>OHJBL=LAQH]BC@UDMILN@EMOLORGDKMQEBGG@kHGGG@EBLSFKOJXCGUHCDCPFOFKAEZBKGMIEHLGEOVJOEHMIJMBOIE[CDMLLJQMI^DCGUMRGJHLF@J?FIIMZBQBGEIDHXGQTJEILOEDBQBLLGBMDJNKJHHLLJEHKNCDRMNJDMIMMFFJRDFRKPTELJHEAGBSI7AWMDGDNNIIBDKJHRPIGFPETJOIMOSGJMOFHZAPGLJMNULUUNF[JIDFHLLEQDJHFKKHOBIASGLCIFKJHLGKKZDGHE?K?SNSFJAGA;JKBEK?JJG:M@NTJNBXDKUSYLLEKYOMNJHQFHCJIF>@XOID<@R?L>LQROOAJLELIIIFFICMKDD>IUJQFFI@GMGGLKGD@MLOCMNHJDI?NHGIPTRSKJMMG^OAJGJKHFLNIHGEOGELMKNLFSHEGNF?@IKFIGLI?HASGQJPIIGJWNQEBOJP\KKOHCLG`FGHOFKKJECGKNHGJNMEPDOGHHFGJOFORH@?SUMDCILUKENHMFKCJGIFJIRIECGNVLOKECCNFRFGJLJLFOEELOKQ@MG>GHLFKLCIGPMGGPLK@GHPEOKJTHLFFQJBEHHDFGKJ;QGGJEBQOCGQGLJ?EOOBEFPbWQFNGE[HEFHFJRKHHGSKBLE;ATVIJQDFFINOJKGECOAPFDLFHGOQXCBBGGSGCGFIDUIF@HGDGELNAHSGEAEBMJNCPGLH@LPA:NKQGKKSCMKGOSDLCKDHKDKLI?GKOLMHE=DMKQTOH@GKHM[HIOMIPDMS@JMLATEFMTKDEUKDLDDJMKCPGKBIHHF>HOTFBNGPBJF@G@FRBCGGHJVENJC>LE@GW[XGCLBMDOK?CFC@DQPGUAPPJGHHIKIGGHLTZEIS=NOFF:CISERBEI@NVIAKAFEFSDHCMHHTCI?JGNHCKI@W@EHGJLQCHKOMEIBFG>O9HGRITKXIGPBPFBE4AGEHLIULILAZGBBKMQLJ@PGJES[KMIYBDLPHJPNONCCKQF@LMLPKNIFKNIBCIRD@JJROFSA>LNHVF@GGVGDKOESELKDLILCEKA\DLBJCDFUOFDPFCQRAIGIIGG@ESRHKGIIMCJ?@KESHVVF>LPGKPFMDHXLICGKUGPIQLH?NKBHLIGSJAEVFFNE@E@C>D?EJDLKRBGLVQIWDCCKHASG=F@OILISLFD=OECOMI?C[WOJFKMNCHFFTJGLSGVIJMOHIFGKKJDMD>GFHIFR?KEUOMGGTCMDQFQHKKKPBNPWUCLNJDHKHZGAVXPINCBIKCLQH:BEFJGHJ>EKCEGKC@@LFTQKGNCHEE@NDMST?GMSFDNLEATAKDJFKD>BUKPQIPDRFMONFRJUEOKIE=ASR9GKNLBLXHR?BINFDGAHNJLQFNYEDMIGGLJEKIFUHHMOIOGFFKIT@KLWJC_BEWQBFKFCFGIHGBIMBQIIIKUMAGHJDGJOPQL6PILFBIKL;FI@M]PG?@RQ;DCC[KBEKJNK?FNBFETYLPAP@FPP;?JCQHVDR9X5IVQLEK;BJAHERHBMOFIQFEWFTMQ@@VIKDOQGQBRQCCF?CEGJJAMMM2CN=B>:X5RE>MXOMJFBHCG]LCSRNdSSDEKFaCGRJ\ONIONOQSOJR=HU^FIDSMG;MDOAQRCF@NEHESLZ5IMCYDZPRHMRIL?:LOEKLC[XMU=CVD`HNT]SA>EENUTDWE=OHM;DOD>>BH[@MT@WRQEMJ>IH@=CDlPGRDRIi:CKHAKFGN@RQNHPTMEOSIIF[KOJBMBIGBZS]AK;OLDJ?SNV=GFO@DNEQfTVWRLNI>@E]KIFA]SL^aLCBZ7@LSIICCNFDXLB[>bGUWQNIINDO_NGE==EKPPXKNUHKDPGEULFBAKHCETKMKDIHGCTKRFaBFRFKEOSMBMEQHRCEIIMBHEECDHBKIFGIIJEU=OOGLHMLJSDKGB;FGJPKNHOICLDHFLJPQ?INQETGKGETNHMHKCJEFHNBDHOBIEB>OHDFB>AGIGVIWIGB@FN]OFF6IGHKWSF>CJCLHBSIOHUUONSIGIGELKNFHGGGHCNEOMIJMAFAHI?LOH?SJ>GPBIDY=JHLNOHQHC;XDGa]>JCFFEKMRGQ=PKPNEFKHGHKOIJRPCENLUCKDUMN@MDKJC?HAGDOOD\PCSLFUJFFBFXEMSGEUSQOMDHIKDFMFFVFKTLKGLKEPGMI@GHKEPJENCDEDMFZNGLFI^LVPMHMHAEHBMHDTLDEHFPJI@MPK=NLEL^EPGIV@HPRDKWRMEKC?LWHCFJINLCWGRLJSFHNICPDQLLJ?RIJ@LDXLNHMPLCGDDIMJDVNKEFIIDGAOJVICKLMSLQJ[HEKQIGFMEIGKFCCGNOLCCN?EJDSNZEMLEJDHVDIKLBQHULMJIFDKDCIWMILHIIEJRSBHDNNEJFMKNMQHFCCEMIMHPFFKGPIJMRIKEGHFEIHK?QZDBQI@JDDHDPONMEM@LCKU^H[KGGDMEOHSGSGCJQNM=BJKETN8PHJGDK;@RK@FXX=JTQ=FMEUPPI9IGXTS5E77EH@RUEZHEW?MQL>JBI.KGKJBUWW^SBH;34[]0AG9NOLHS>\Y@RH>K9P2L:B\VDRJ9OEJ6R<@L[N;FGb@EQJ:P;=4.Y\C@OMCWL?F;_O;NVEO=NFI;/GB:RNJIRDPMRPBACOKBEEND>TJEJIQODIUMDWRKFQRO>AMEHNFMNDJCCGJFAR9LDMIMLEDSQINEGGM@GEHLHNIYSCPXKGPPDHHELGFKLINEFCDUIKIF@GGOJKNIIQGF>ICAHA@OQGKJB@@M>GN@IK>BJNDNKOIIP>ITPDKUCGOGKMRGOJJBNFJYSNPIJMGBJLJGHMNSJA?RWHIHBULGKGLQKUBFCNEJHB@GH_KPFHREG;NBX_OBCGM`>IEJCFRLLN?HL;@XBEWHPQOGLXQFIFEFGDKICKBICMFVEQWJGF>LFIEWCPRNHBFOQGHBO>LBQLXLCLLKEP^QQJEMJVHBP@EUNRJDKLOT>FHJQJIBJORBQKE_MFKME=VILKLDYBOLCIGNOGDDCMMKELGSJ>BDEIFPGQVJO?LJ>OGHRGMIOIENRHGGI>M\JPEFBHOIDNN?JJOQJHIUDDUMINQIHHAKGFEITLEMMGMMYET_EIGCCHFIQEEFF?HNGFFGCDNEIQHKDGUMFCFDDFCANADVIBKTL?KULSBKOCPTNQABGV?HFDNNILECEOHBGNNJI@H?M@SFFNYDHJKB;LA?;@MFIMSMGN=DDEEPAQJMJGACI>SJAO?HLASHHJSDIIPLTLEK=:MQ7SQ>LLUM>FJMOPHRJ5HGONKAMPPF?MBCRNKWLV^:H2aEK:H7P<3CGLGK;H5SP.P;W7DRK@DAXV;7ILRMJ43TTDIE@G;NMP@Z5O4=?AAQUT:UMQH8EqKFUX;UIO_@Nd8?3PD]I?FVKYQBE<8@HK3AF:RQIBHG]\>SQAWBP=O0IKPGQK9YDLAE87EUB:EUXG?JCG;4:PI=E=IINGL=HN>GGUQFGECe-?KANV@@3E8KTGKKIFUOFCF@RJGAA>DHEJOJH4KEMC@=JDJHFFCEB=UBJOI8FCK9JCKG?DVSFDAIDDDBB=V>IFAOCEPMPDDATZKGEADKBFNJHBBOA?HLIDHPFENJGA=eV>C;8B>:ILOLEEAE=COHBKLDMCQK@KDQ>IJ?DKUKHLKK?A5FAKBHJKJMGYCJBCOF@:JaP>HFD^HR:XCYGACHMSPGEJLMBTOFFBC?FHIQKLAKHHPOEJLSKCRBOMHUCP@EHIKHIFJJKML=MEOBMLGPEPVPGGNADVEBJKPPAFEGFIDGREFMKADPNIBJFCHLBLOIJAKMI?EJKCAOLMKIHKEBOGTO@KJHKKIKGHEOCJEAKKLPAAFA@IFJMKNEIJJEEHDQLJCEFPENHKKRLTFRFJ@PGEELMEQ@E?MNQAOOLBNCQFJPNIEWFUJ@FALJLC^W@OEKKFJQIESDQQGOMJVCMJGVGIFIJRMQEJDQ@KIVTPWNRMJGJLPKNSJQDCKORJAVJVIANRKNL@LYK>MJOHIaHGMDJOGGGKQENLPNRG@FH=EWGJKOW;HQFRBLPSIPQ<>HIJHTGFOJAKACMPGFPVMJWMSUF=BBILJEHMCO>HLQW@I>J?GOQWEKFH;?MDFTMGSPBQFLGJNLTN@C@RNF>IOFWDDQ>O@EMDKFIACDQTJU^FPDDFFEOCRFLPJNRIGQOAJFKLFFSFMTCCNHLAB>WAKKQGDFPMFZBUENEHYDFWDGD<@JJX_IVQGiIXSDTFGIAG>]ECIJJHNEJ>DKI=NQTGJNN>XRQ@H>OLMBNAGVFDNEULEOMCHIHD?BEGPKGCG=?REOQJIN\NGD5KGDbOJ^=VKONREJ;PEWS=LTFQPFJJPEG>MEE?O9LKFZJGHHHhDKSQMKGLBJDGT[DBMM=CKXGQEDBLIFZKGK@EOkJ@7QIBE=UCKHFJMHNDOLITDQ@CLSC\LFNPVHL>JBQHFJLKQHJFAGV?EQ\E@IIJPEQGIKEILNIGIQQIES@FHaAMHKEWLDCKFJLNMRPLMGBE@E_NWIJHKGPHGYUJKDHDBFEPOZF@LUQPbO?E^ORQ?MN\MFGHJK:NPHROJG]GMJOJLVERGC@YQHNJUIJOHNPBSFGIHOYKTUOHLTLKDDPG=ULIH[LIRFJDJHHIIVUMMOKQL??kJHCKHFNGIRAWLKK@PDLGPGFPEFP?CULKRENRMI^HTI?DHDAVGOLCONGPHDQGVORFGJHHBOLW=NOAHCJMNKNLMIAMGMFEH[JNMFELCKMNFJKFMMDMLK?MHLGMCHHDNHOPEXKUGHIP:>IFBEIEKFBHAFFLNFHLQQJHP@HWGSCICBKWAHHHFPOGJ?IHRNKMJCJJGSHMCHJNLIMMLJDQAIHIHXG=ESJJOFQHDMTRJHNT?BGB@GJHTDJJNDGUHIRKIX`NYFJIAEHPGSDGBHII:HHZF@HEQCIFL=MHO=DHFEKLEDKAGEGQMGXAISDVCKEIDJLOFJOHLNOBLWISIPLDUHIFI@APNEEGJIOCKLKNG?NHMN=MLINGKHGJDKEJEENKHPNBOBKKNHHJPPJEJFKEEOLOMJHOSMHGDUJW@PISGBVAJKLELLGKMOFNB@LKIGKJNIMNEBRODHB@AJCRKGEQKGKJ@CQKLJIJCOSLNLDDHKPGGQNJNECGNAKNJNJFEPKMJF\PUAG@BRNF@cB?HNFUVDJNN@CMJLH:DSHGORJEEOEHKG\DJKFIEIJKJL@JINLCPIIF@CHHKZM\HUJJSDKAOOLMKDIGR@FDRGNIHQVK_APLGH=NEQGIMKFCOJMAGNEEJNGOAHIDJPSZFL[CELSSNJ=NHFDJGFGFOQPJEGNEORJDJOINKOINNNEDNGIHDDKRGKKEAJ@HJFGRNGKTDCAJENCKGKKCESU@LNQMKCECFDDNLRDVc^DRDC>?GIUILCHDNEKR@MRKEI@IFHGIPDKKTLM@MNPNEAGKMAVIJEHMNRKBFRJ@KHCPI3G@RO]F@J^hFNPP@FI9@GQM7HRPFEKP@1OV9Z^9\J@YCHRKBX:6,e?GF;YOTYH?H<24PW7?K=M`JBRaaH2XPPT2V?X-IQRJVF1PJWAK6JSEGRFGSEG1A\9KhE=Uc=a*WX7IhDZESUK;\b/SFW:=IPMLMJGITPO>QBEFPJMFH?NGMOHGG_G\MPK6FOKPEALXJGREYIAGOAGHDNAMLEROJIPBC>SRNUMSHGHFMCEKTD@HMILRGNDIV@QELJBGC?]MFEQ[FFINSGOK?GCJLHKAKNOSAETARUFJ9KIFFSUJNVB[NOOOOHE]LDV?MBGJIURMRHHJPIILWJEJJZOCX@@AQ=KOMOPBJJNOGELPEUJLDBNSD`NCSIMDQO?CMMAKOJFEIEEROJJFQJEFGEMNUNINCLBBDSISGMAD:TBKEKWJFEFD@VEKJBHKF?AGKRBAUDCVGGHJGDTICTDBLDIPIEKMJOMDFPGCMFEKLKEIDEGK@SBEHKILG[MGHKJHQKbHD@RBJGGNM;P@GS=I;JLGDOQHTKJEOEKKXAGDGSUQHJAGDLSFaKGYHFFNMVBMEHHINJFIJUONJNIKEGCOHUFNNH?NHDOALJBHSGBTKG]AFOOCFDLHE@FNKCPKRNJNBEQFOJXQHELLQLOZLLLATLHVKGNKHSHKEBLRGPIMGIRSFAEJIREHNLFBQDBJH>CLIQFWKMNGINSKFHSMNKKTHGNKUITLJRSIJL=IANVNDCACMUBLU@HTERID[BEEFNLESSROMHVLTDNPBSZOYNEDQLRLMUMMCPIELEFRBMDFCGGGJMRKOHCXRIEEEDMAR\QMLSLDJG@NSW=FPHMIMSGWD><=;3U<=6H=9OL>:;H18:H>=IE:ME@6>8F8.678DDNEGAL@NAA=9EN:;JF5E?DA@?HCC=OEF7M=;57NCDB>>G@;<::J7@TAH=:>=D5P=2@?CCK7GX>DJLDE6C3C?DAOOB?DE:0?BIIHM;<1G<6>/'IOB0D>C)LBQ8DIDLF<><>47EM;I@KRNQ:@@ENOUL5JQ=H@4KLADZBLN>\LN@II;FHSGNK_VCAQIFTMLIB?IGD[HLWQ9DVEHJgICIQHBRFCDJRLJMTDHBSIPG?GKE@NL?PHOJU?RTDCVLD?TTG?VKPRCCNFLQ`MBRQCEJPPSQQDRFFOHSIQEQUKE>JGAVN[ELMHKH7JJIMHSJJB>GIBJVNLKOCQEMJGWPKHXQKFLCTNDFF@KDJ>MEKWMEKI\VI?JUHPMDJZF>SBXK??OMINPMBLDETUEBONIPARDYCIGM[ICUEMPIXIRNKOF7JJNKLSECBSDIJBDDCCIFSPGEHREI@HDIEMNKIMH?QSMREMKHIAKBRFNJJIFD?SLBDKH?MMEEGMDIYHPHFLCFUHLHJXLOCHMCQL;HTG?EHBDOSAKHHBD@VJCS>HJS@OIKMFNFILCIOHMDDKKKMOIKKGLLKFIJBIDEMCIHJIFAKMMJFBDW@CIQJSRDIHFLNKEDEFWO?G[DIM?NEQNQHC>EQHMAZFGNMDBIMJFJIGFGQFPCMIRNFKNBIDLSERGQSINSGNNTKKCAWJGJHSBSXQDMFKICGBBFFND[BAGINQLDJOKEQFGEMCMG@HOPAGIJFDFIPHP@DNIHJPENLHG@H=INIMSFMQONODH@CLQ>CFSIKKTCLHCH?OLNHFKGRNPNHCEMOAJRAHHCFSIHCOPCCNIHHDHGI@GLFHGD?QKKKGPFHGUQGCGTSMMGAKENJISMCLRNCGDHKPD@GKAFAQLKOJINJSHUFMGJINSJCGGKFDLQEOQLDMQIIMJ_TLL@HLUBDJSBBIA?QLQONIDREFJNHTEEIL@KONHP@^PIFUV7EKLEJDH@VG?HCIOGKKFBBDG?SEGGJF??CGJFGBO9J?IROMKTRM;MLL[QCSJHNUFGGHNJWDPKEHBOCQGIMPALHUJFNPTFDLVGCGKFMOQEXJGFLGHUIMQ[KJSFHOKGEBNIEANBR?DGMEVYIEIMFHC[LLHJJ=KFCMONMAK@BFHORKVHHAKMROQHNVBFKWTF@MPHUTQDMNVPAGAOIHAVIMNKFLJCHEFQIMAKJNRDSKDEMKS>GTGIOTJLP@RMKGFILNHIQEGEJQKHbISH\KEHJID@LDNACOHQOEAPEOKEMGKOFHVJJ?DLHKPGCELGHGULGHRIFTKIGFIIFKJO?QGFLNO?DETTL?MYWVHGPEGERFGCOFY=;MORI@FEFCHHFDEPHKMOUMFCLYJKENKDILNGRKBHOLRIP[VK]OLQL=FMHJRBFLOMKIGIEGK@HVLPCFDHINFNMQMRFLBNJFCNCDIKGJSCEWM?CGAHZ@HNNJIPOHMJGLGTFHDQOIJTHEKHHMHDKCFMHLLCHJEV>Z@LMEGOKLQGIICSQGGCCKAGL@IRBIKFMOKFDBHEPJKUL>CVIICNLHILRLNUE8WMDBLIL>KJOPHNFHHNPCDGNGC@?WLFHCKHFEJJL@BAJMHQQJ>SNKOTCIMKIDNLIMMMPEVVJTS@LHRQQFZJHKMWKHHLGKEK?JIIH:CJXOISTLDGVLLJDIH>GPBCINMOJOEG>QQGKGBHLHGY>KQIMLRGQQXILHHIKFGLGGF{CFCJDQHE@?M7FNLAFVGPSC3@I=NDDVTU>@HGLSDQCFMBOFAQFBUARLIEBGQKJHJKLC?<>HJLIDH;BGVRZJGS@LEJNHMMNOH@KHO?GFBCCEODDBD@CJTMKELH?DA;>CPFAANILHBOD;QCBVKAHJPLHIME;=;RJDO@ICEAPAB@8>KECRDTLDDS@JR>HOCEFGJKJLX>J@@BQHPKE>LABJ\NHHAODJGLFMPKFCNAFLEFJGRIGCFFWKLO=EEJBPCGLXEPPKO?FGE>FBIPQ@T@:LIHANMLKNA]]K=JXI;IJMKV@UBIL^IFQBO`[]LMENBJ]GMJHBMPLFWQOSJ>BMKSSKPKLMKFERIHDDKOTIGDKVIGQL`G7JDF@?DICJ?OVSAGWGD?>H@GAGK>M9PJE>ODMIEJ_GYGAOZ;RMYRPGMN:=KVNQFFBDVMGQ<:BRJUHCK>F<\NGJJ?M@DNARCM@KLR@X]8KFEAIB?RcJHASUNGJEMQFCLWKQ@@^ENN=TWHOKVN?JJ7MBQA:E9>CJGEFFFON>COBKJKH>P=JAUD7F=EI?@F6UGY>PGJ8RH@BGAHFLK@LCOHRCQ>@LAD:ESDLBNG=9G?CV2EEFLNCFPM6_FDL8^OQC?L@DFJNDGhOFBKT@=HD7LNDI?JDC=J@HNCFLJGMNIGIOEC?KI8CJI@CNXMRIHPJEYHWHUJ@HEBBILDHHE?KE@=ERAELBGOJEFNRNHFFJTDKB8HJPQ>JJHHMOMKO:FHFEDGKP>CDHFE@FJKCIKUZCH8SAHKHGE?=HTCW=RHBNMLHNCHJKGLDLYCICN[YSD=TKBILINFC>NAAVGCKD]@MLEHTEKKAHNKM?FKTCRRICMLMPKON?PGDEJCHJOLOJCJ=HCKKJNKNQHHGAPOHQGJNINIHH@GG@FMGJOEGEFIFLKQVIL?E\LK@LE@BRUMHMQE@HTLIVEANOJKAGC@BOKLKKFKRQGDQCNTTKPQHMFFDGFLOKL?FCBOJHEBJFLFDC@DKHU\LEG?FGRAHGQDBEHKEBAJKIB@L@GMIJNE?OEQML=JABBREEELL?KFKQDDIMKPNKLLEHPDDEGMUEIKGQQFSH[HALKGGWFGLADFEKGELJC>ANFPOIIFZ_EUSP@GOEGDFKN==HMKC[CU;C>HFPQWMRKHJHUKQFNLT[KKEIBGIHJHQNLHMHGC@KKL:GDJSENKG=NUZ=V>EGJMCJKG:SHMELBQPJJNHETI@GJ?MCKFHKLJIGODEME;BOGRQBLGJ@GRDNF@KIDBDJQI=>=PHIAIHANSGPGGHDI:IINBPKAPLKIBNCG>JQCKAJABIARC?EJDIVOAGBKEGNODTEKHBAHI?JHRJLOHL?JKHFG@PIOI9LHKM=J@JX>PGHPMHI@MCGCFFBEDGQRAM>RMRAJNAHD>MNGG?JDTJKFGHHK?QHBH@HNLF>GHPF@NICCK?NVP=JE=APCR?JMGELHENJKIGKEJNLKGHGMLCIJRJLI@LLKFD=Q@HMBIDGIBFOKGTPDRMNOEILNSLTNKHDJNEPNH?JGJNMLOHBKGJOJN=UXHGGQJLBEMOFMRERDFHINCLNEJGJJRGSQKIMLEIQI`INRPGHAOGOQKHKIJBUMNKIELXJOKIMJKNEJ>QLNIOJ@JRQPHMIMIHHJSNPDFIANIKDGDKMICEDJIMPMCPOHGCDEKLJJFDGFFDVJGSLDMMHHNOOJOKMTLPJODMPL@GFGNOSGFJEFEHIFKPPRQRHGKFAMAJJGLIFKIUUKLJMOTKNPIGKQCBD?BNIODIEHCRGIMJJOISLb=ESFOE>DHFOGDJ?LJBBLHBMEJSMLRIKKJNNLCWHPFFLFFGQSFFGWBMJIPG;PSGILBFFBAHPHSLAOFCAHSUVOOQGcMCHMTCJDJNKOLNJB?FFIIWSIGN=E\OYJOKAHNGTAGMLOJMJHXCGGEMS>EKEPKEQHGIRACMFWJJHARCLDB@?HGEIJDENMDGMGYDJEAZFEH>LJC\NQKGGREHCWGGMFGFBAKM?ICYLTQPBGMRGCOKZFKCGLQTG?PIPYFAALBNIKPQCNGMN?CPJQKLK>BQQGOHJNUSFT;HFID?EFFIHU6UOL9RO<MOAMD2DFb[7DCENX1I>APO9TJ3VC:Z?LeMPZB;4[SUF:UQ[YMPW6J7]]4VVHTRBSW:MLV:F47=RMJ?GJKJNRW=?EYRL5BJPMGB.JUJJH_\QFJA[<@MC8MOJHKFCBTKMMFFOBGPHSHYAIBLRDCHVXJRFOIOKHCHJKOOOPDMVDIOIGQN>WHKLQBFBHTOKICHMKQPKGGENOSHQTILPWDDBLFHUKMTFMNPIDEIHIHKLNDJCFNDJIIPJHILEBHCQJKPE>JQIOACKRCJPJIIRDPRMAADEBSBfOKFEMNOMKSSCDNCMGQPDKMLJPGFJOKBBIFAFDH?JLDMJKLRH?@SMKGFJDLLNMOKDJHLDWM?RAE@FEKTKEMVEVOIEHVKRPB>AI?QF?ELLOJJHHDTOAKNDMHESSCGRQOE@FIGEFKACDLUCHILEDOFIJFCKRMGGHTKC;ACJOAFBPQGI@=LCONEHAMWERHAHICHOWGVEHQ@JEL8NLJEN@CaEFDQTM?J>LBEODRGFAHERI?N@NLN?DTDA=BQGK]@DKFEDJN5=L=JIZCHIIN=;@?FAQEZL@>MCP>PJHR9M>FROKJAGQDFJK7HNW:PJGSJKMN>F?@EMGQKIN?DGENO\NHFLNIAJ?OHCUJEFG-NOEKJKGPOJCOB\>>?;J:9?GNKDGJ?DIKD@BNPRE9MDHLH@VCX;JKJBFUANIH;FIITGX>M8FFGMDPLINCEKU8LL@2AL?CEDGKKIVKUKHJKJEMG_REK]MEHQRLDHDDBNJK@@CCLADYHBPNGKINDCC`JKMBBO;KLBN@MRJFLaJLALNHLJQaJFYKALGLLH?CMJM6:CGLFH?JDKGFQO>LO`OJIUQ?JNRJOJGO>BQJGQQ\HHAQKIPSGRBEAIILDLENHJJHIK?MMHIJHEGAMSSIIFFCHHATNCBIIDJFMAHOJLK?H5N@IOFBFFIFKNMCKRIHSMGFIITAIQODBCQLQFNGKCLQSFEKFICGONLNEILESXKOFQIFQPBGONSLRORGGUPKNKE[MGDHINKMR?JXSNASNNMJJL;PLELHMOETOMMMFKWMMFMIJC5LRJMHJO@OH[GFANMQWLBUQO_?LEOLIPSPGKENNHK@RERRHESGGOONMNLLRGBLIGO=IPGCPKHN7UNHZNUGFDSBLKOSMLLQMRJBIDSUZMDMLMJMTGMGGNSKQGKJPY>NQXFQOIMHVUQGGWQLGIJUQRUPECMXPFTO?ENODHBTHEOPFMMHJ;PMKBGHFHPELFIHQPQGKVEJAH?LHSHFGMNVLNWhDHL[>IMUUNKQKOKPIHZN=`LN;KHEACMGJHICQIFKF;IKGDOXHZDOCFDNHKHKUJNFDUOLF>FM=EDIZKDOYJQDBORO9PMIEAELJ;PIEFEaV@FJPLMT?QMCAGOA@NTH@BKBT@A?WAG@LF[5UBMBILIKLIGOUCRI;KKCDNLGIQOD@FJIJJOM>PAOXEJMDPDHIA?BP>EBGPNOLRBCNGHK@HF;JOHMXLIMOCNRTIPQJU>EHE?FOEPFJ>M?CORCMCFNAM8D[KKMIFBJSA?JKQILF@?XN_GDLSE?SFOBCGCDDCHNOBEDS?HGIHSRHWNNHMFMK:aACEKQRNOCC?V;FEHFBGHO5WEN.UN;EQbE>IFP@KFND6BPM9]>GIDL3FCXMIGJ@AD2CEUZKUVNJ=NWHOMD[T?CON@UJKE>9ON<9EMUGCJ>XDEILNINJM2?HQVH=M]LaJBFJ84V@;O6YRP5QFMKHRUCFVOAMWGD@F?GTOTNW=]B5HM\MA>?BSUNUKWLKPOLZ;NBRIVHRAXM9JFMH@L/JGGHDNKGDPQHCJKMGEHIDVUGMMGNBGBORJIKKPQHPGGLRIQODFIDMFHJ@FJHCEOEMMFDIPLKQNKGIMGJCFIHJMPRDTMHHPRMEFGMFKEPIDAKIFMJJQNKLHODGEROJQOLMFLIEKE\JHCHNLHHJLKFK[CGIGIKKTLONHOCP?=JYOEEKNGIBLOOLLMFPGKRIMJFKAKMKPGPHSPJRGKCPJMEHFSBCCFPELDCPEHGIUMIMIH@FOMQSHHKADPJDIJKKFFIJUHEPMJDSN=PGLOJUDFNGVLUMODCGRFHPJAHRHHGL?PHFUHLMLJSQLFCJDEEELFOPOLTLFKTG=@@DPGFLEGCKAEIEGFJNJHMGDNHKHDHHHPYZICGUMC@PDPKG@KIHGGMHHTBQQQ@JTALAIBOKBTLQCEQEENLOEMTKHNPHR9?TUPFL>K=JEJLPBBOIKE=YGIHIJOJJHD>IHCFHDDKFGOKDCSGFSESRHOLBIEE;FOXFIQIGFJKKENOEGPMKPNGXDIKV?FEHILRSKGGAFKDIHMLCMTMLLLMGAVI@=J?`VGFQRGGPESHALMNIIFNINNDJEFLGYJMPFDTQEDHNKGCEJNM[GLAI=NQLKKAGOBGLSN=;GBCAGGWOATCBN=FLBFLVLKRMRVLYI?MILECBNHMLR@MCHKGLLLKSQGCQCELJEFDQJJDLIHTQDJKIPIQMSHJDJNTCMSIUOIFCHDFHEOILPWEHECBTPPMJJBMFQJHMMWIFRQTQGNFLTROFLI@IHSKLKPHFHLJHFQPOKKAHB?FFLMREPKHREMMWEX@JE>DMKJHGWQNKTNRLU@MUFJBJNUKOLGGINXM7HRHJDEDVAGJAPFAOKILDLJ[GIHD]EHVGL@MSQF?SNIHILFPOQSJJOVPILJVMGPG?BNVCJAEVJIFNQMHBLI=WICIO@PNHJ?BLGDFHDEIAO@MANKPJGEDNFNLJODCBK_LODJSBINDBSDJHRKELTLSANKDOCNKFFHDQKKHHHNINFOQELFHJCEOGBKGDANILTJFKKJNLESSEOPEXJHMMMJBKPJLPSENAFFJ@INISRTZLORNOH\MBKLHNQKMHEOLFENNOBCLBGEFEMQHMGBMAFQIH[SOMKFFFJGLOJNOIJLCPIPEOGMPGELOCSLIPOGGLINKLD@LSPF`O>BCJEMKGMLNPGOEIDLLPACIULLBUWDKTERJLBLBALNTRH@SIMKFOFLGNXEVUQFQCLNGIIJNIITMHLHMGEKIAONOCHTSGCKKF?IJCUHDSBMDLELKHBIRJCDMCEC5GL>NHKANEJFKYCHBEMMCELEI>ULULWKHCRKHGIBDBMTHES@@GB;LJC;BRF;=IC>PY@A=WMSFOI3\RDCMHKJ?LMH3LWGJAR5RMFTGEHBCGKN>LM9BHKJ@IE\@L;ZCIIANMZWBCIEEM:GF7?CJ;MCJS9A6EEF=;4AX>JWIAHNIHPIIS@NLNRQCRIJLAAGONKEB?FER?EW[?WA@THBNLVH?ADG?EHGF8KFHFLM=FJG9JHC:L?G>A=BQO=NMNDFFJEANSDBNTMIEL:CPKMQFNDJHOIOHNLI8KRICC=A>GNFKO>IFKLIGWeIIHVNRAG7PHIELKHCIKKGFIQLHGTBRG@?IKIGJQI@;MBCSEDS?RBC>JMBH@?ILB>HMJIKDGE?AF9NDCNLP=B=ECKHEGO;DKRCBQLJGGTOFJENBFMMDEB:KUAJG?MK>VCAOOJMJFNHOB=QLUFTI=LGIKCCO?HGYBKCBKPDBEVI3GAFTLLKMFKGREJZXAFbGQQOC=WSXHBKDDFL<>NRIMEE]LNMMDHJ@U_JOJJIGXHEM8KQ5]UMJ=IQOWJ[Q>EACRKKNNQ^GEEMYRFEE@9=DD;RUWKV>A@CRBRPEKCMCZJIP=I7SMUMRAJLPF?DO>CHLLACNKC>=LFQI>MDIYROI;DOFMMOJ9G<>IKIP=XPEOTGMMMFDMON@GSX>NTBEP>FMPDKNIDPNFIG\GBF=XKOSNLO@DPSPPDH:WPBOQTFJAYJ;?VFMQHXILOF@JLDQPD@WC@JI>CV;MRQFJN=UHJXSETBH.R>GGOAA9U9W?(;EFB5<^CEIIH9ABL<8H3CEDICA@O79H`K5GU;G?FBbcBELG9C==J6UAYL:PEGIMP,@>@3R1O>H?:BTI@DP5A/C=HCW\TSE0PLQ?KTGJFEFFMFLKMOCFDSUGPMTMLLQNLMKOMFLFINIOJPGFIDFMJKISKKQJOQOHMDMLBSGJETCDNKISMNLAJMLQEFIARLMWMGLPFNCGLMMGPMMCEUJMHMRBIFCJQOCCWLMLKP>MBGICRJRKHCHHFKKGGHERIJGV@\FNFNPKNONKMSOGFIFPBNEKPDPIFOCODIDGL?IPD;ICJKNMGUEDEBG[@KMI^IFLJLKJIQHKIINLIULOGDHOEEINLJ@FIIGQPUMLONHGALHLGG[AATJFMEO>?I@;O7LO@H7W=DO@PDKGXIA@MEGJJPQKKMCMHNLPZ;DD?ENOKUIRQILNOM=ARJJ>N@IF@YE]QNDFIMAPQHTFG>NK\STDIAH?DNHIN:TOJJAKME;GBSUHLTLOSNC@ITF?_APDND@IHQDICNDJKEJDSIJT@JRKMJDTPHUHIMKFDKKQMNAS=IMDGJUMN@KGJEIKKLBDUGL?EKINJKTDEOIJP>MVL>NFOAD^HCLIOQJFIMGKKOAMG@OCGBNEPBJJRJII<IHSJQLIRKAKRO:JO?SKHJKTKILIGRIIGLNF6IDGNDISDKP@LHOI@HQHJIKKROHSHS>NIQIICIGNKGTPMGHGJLAIPWCJMGPPBEF@>DBFLIGHHMIFTFAJKPDJBJNGHFBQS?EPJHHNGMMMPHHGKHOLI=MR@LIFEBQGPHHMEJ<7UGGRCMHCAECMDHN=JAFMQPVOMGJCPQRITFPLEIDOEOFRBHZOEF^_NAHYOFBDCJXJTGKEKFKSGAMHPNEKIKDG=I;SNIQFLDEBTWMIHEIFLIMHUI>OAOO?EABNDHDKAIM=RVELN=W?GPKNDJ?RKCJJDKECMAFNKJDKIS@SSPFKNSENSINTMDTHKNCKNVROGCKDYPJHPO:FPJMKJBCD?OSI>?M?FE?IGXYBDMNOFMNBDLKKJLIRJKCLB]MBPECOECCMGAOGRLOTJPNFEIBGBGTCRIBJRHIIEIBNFLMEVNLNC8JA?IDMANQIJCENHQIIRRHAKCFIEIEBPCPQEHU>JDJRJMVJUNESHIT8IMFMMKOKGEIRHBHCSMFKNLRHGINFPGDFKFUEKD>IQEBBIFRNMGBTONOOOTHJOPDRGLBOHFLDBKF?LJCIHIDDLSHFIKID8PTPIFEIIGUJC=F@RJFMGPC;GHGHIAIHGQGGPBLOFLLJ?LKAOKFFATPIGTNGMBMM@HEMFDISDKMXINTSLPDHfREQ\TJRLGFFSQdGGFM?VPILRJFCJEGNKKKIHDLQPREYEcTVHHFIHGXHHNVVUQPKIQCLJTDDMMLFBJFLFWNUGKJRAGEEORDMJKTFTKNFDEQGJFHVVCGTEBDKBCVFDFUGNMNIIFFNMFFaULNFGBCFSb;JQ@H`VNGQOGS>JIIE@EAGAMJM\UL[MPBPJOHMDKP>MK@M[KRCYKLOKKKWJ]XNJLWJJXGM?JGZCNCTSZSJJQOGPJDQJWICOHDE[HBDDOZCMMNLRHHSHMHQILPEVKMIHOGLEULKHDUFRNM>OCBGIBHKMOFJGARKFRKSBQBFT?IQGOPLMLLRDKKDIJIIEQIDKIMKNJVLFLXCEHJ@EMGFGFH>IHCRGPIJA[FHFFHEEMNJ]SMEOSQENBTRRbLGEJJIHHBTCALA?CL>HMGENSEBEE@PEEHDC_FFOLFKIHNFHNLJMIBHNKJHNBNIHLLGDRD@QONMGQLLCE?HKOKJEHHFRMNFPMKJPKKKML@FQGHQHNIHQCBDNMH6H@LBKKFBEMGL@HOJIF=?DE3O>OOIULHAB>FOJJ]GWEGDE>BSAHNEBSH<@FOIP@G@MQEEMTGJWF;ML=HAHCB>@EFGBLHFK>IHCWLODECMFFFFJFkOEHC??H>EFJKBDIXM=BAJPNCFHIJK=KDKMGGNC>NBEDKGFDJQIHFGB;7HFEG@=CE@JBNI>CKSAHFCGEBKL<^IFDECHLOAGD@IEOCNLOMDINL?JMPGKJJUTHKKMLMUOHFHMBLOMHJALGJUNIMFCLAKQIIKDPEEOWFECCQLHIJGHJLTLPIOEGOFHGNFEHINKCKGGFQOEHLIDKJEUVFIONMHKFGILMONEJJUAEOMEJJKGUKBWHEQLKPLKGKLFGJPRKJNIPGJJDJXAA@JNONBSIEDLIICOGMNHQKLALHAGRELRFIFJGKMTIIBFCILFINIGGBMQHGCINIPKLKGHNMKJJDHKFRKLJJ>JEKLDOHIISLJLMTIMILLAI?KEEGJKPKGRJFVNIPKDFANDKHOGIGNELKRGPRFRFCHUHQEFGD>CTIL@>TGIOIRHVGHKOGWKHFHSMQ;NHQH?IHCJOJBRJ>LCIFQTMKSCKF[HJCKHGIKIFLAHF=HKTTEG@LMJJJGEPOBFHHQGRIKFBMIIKABH@JDNAHSGMFAO?GQJHIJRN?DKIBLCPDSFIVAMN@HNFDAEGOJPFC>GWM??VHKFAJKG:POIAQJIQWNLPDIRMRCGVK@D@JMFBHCGIMPEGGGIHTIVHIGCCMAOBFCENLMACNIPJ]SJ>H@TKHNDEENBEE?TEJJEHRUAQFNGKCHLYJCHDEDJEBOTMIDHO[F=ULNLWMJMFKHHHHLI=KLHH^OENHLWOAJEM9D^GNIIFRGCJJJRNDFHJEINOUJGDKUMGJFHVIKOPLMIQRKPLPEJJNICJ[LFQSISPBFVGI@HNLH]AGGMUHGOKRWORO=NFMJaL`KJJQILBPMRGHIKJHHCBQJHCNJBJEGKO]HRHR=KXEICKM>GJSJKKQBHFCEI:9ELKCKGEH7KQQFFIGMMKVFA?CKQKBB@RKAP?JHI>FGKIPJEPHAJI?AHHI=HNAELGI?GX@8QBFB[CHS>FM?BOILC>IE;EPIBDD>EOCKDKJ@JICCF?DNHKOGCGHGNLNBLNIOGJPHTGBLDDME@EGHEMDMJOEBBCFGEAGXHJFGEJMIAB7KDNDOCIBEBBGNGRAMBGHOGBDBEVJSPOH>MJJNNHBBM9FCKGMPMJ8RGBDFMFFBAOJHGIA>:HLFRIKEJWWDO:MEMH>N+FK=LOKOB@BOCTKXIDMTPAJHGNRLJ?JNJIEGHJQOCHZCEONHLOMPPQBLMKFKOGSMOL?JEOMPDQ@F>KMFHKIFDDIEH?AJHJLUSHLKGDAHHHMLHMFL>UCRAJOCNJUEGQKJKGIV@CLFDERGMLCCMDEFFKLOAIFJHSEILQEFJ@CLVPFH=LKJDCKUMCAFGQULEC;AKNJHAHOIENCMGGRTEGKG?JELHQINCYKKCKFIQCADPFFRDGFLGCJJJ>ISJOIN?ECXC?LJKFDRJHMNLINHR=EIFEAMLBOQH[KLGEH]IHZKPDJAUTDBCGHDPQMKKLGMLDMPGGMNIGIOGPIEONOJOKMKINKJJRNHGGKGDEMTP?MLHJNXHHEIQKKLNGGSOXEIELJOJNLKFLINMGFFIKFMBNFQRKGFUEfJANVCVOFTKEJ@ONKMLREGIHDKHUCJJBFJFQOUOQSEGJNH?IJVHGMLBQKGBNECMSDHGQJOEHIFHPRNOIECCJGFACDEKGTDLDEOLVQNNMWILDMIKLONJGDIJMEUHF:NCM@NMHJ[SLEGIQJB=S=OYEIGDQJJFPPPPODGLKKYHPTL@DLT>CIFCJBGGSAMILBZLDQCVOTB@NDMGDDFOHPUC;?DOYNFIKPWSFKIHEW8GBNSPJFCO>OC>DIQBOKULVHFL?FDQEFIGBK[JNJTKCOJHNT[HPRHGLKI=QII@GI9TADHBXE>GUH=OJO>KGGFOg:EA@GJDFOUSLKAEHHOAF\CSVLFDOPHOD[FEAVHIKGIEIAbIACKH?HM[DGFRHXIAS@?UMHPGLCIJ?NLCbVPWH5>TCAIRPIHBMLK>DSW@dH_MLMDHEG@WMIAMLCFHJHOBAO6UBDCUMNW4UKEDMLRI^RDBOJKBWGGBGIOgVDMNRP?>J9B@WSMP?FJHIDD;NMGLkFQ@IYDOGIJFAIK@FF?FNIERFFMGKFRTTLGLBLTLJCNFCLIGG=JC[M:NEHKCPKRKeCJXNGO>QOK?IPLMWX=?;XPCD_?MGADNUPK>QTJIADE@MH>QIMEFSDCOKR>TLLTBMDDQLBCBEX=;=LVETMHSDVH@CAMLLNE>=FHDD9CQG?FNAGMQBMGIBKKB[EGX?DCRHJLDICHD?JCBFCBCJKGKNFGEPGELQI==RBGGIOHKOIEEB=EDJHPENWFAMYHIBQLKJNLCRETEIDFHLAICHKLCLOLHDH>[FCGSDI?KCCDXEPLOOGAEHM?RDTK=OHGBGH>SAJNHCEAKLANGHXLIIABIIKCBGKOJQCLFRAKHTFFJFXZ\JGHHFZIFHF3CHTH9?CIEFLI?CVJEIWFMPLWEE]N?PCKKAMGSWLGJSKV>DLLESYLMGPLFJPEDMMJH;SEQFVDHEDQ@QHFELXGBUK`CNNILOHHJG>GBL=FDDJPDDHPRRWGCCKMTBIRKLPEBICGGRRWdIOKOBRNO6L9RVB?LRM=^@TR>8XO7RDCHFX;BEFDPPDT?:BI_BIKMFQFEKFJR]NFHDHFEIQADQI8@EBNG3W@[6FU@GAUMO?>PFNPC;3EDKNBND7LIUCX<-0JBBQFKOIUO.EH6?RPACHI>UQNbDSJ9NMMJJ=,H'AI@HTJ:KGI;HG1IFL>DBEFL9HH5:?SNCB8YLIMG5PK>NKV=HHOAS7;A@=LPRTK?NT9>H<2QA>A=BL8J_I7GN:_NDMBMHUADR_GOHBHOGFJDOFLGHNTCIBPPGFECNKVGIN?JGJLNHDLJIKE@TGCDLQBXMZ=NGIFPKRNANKLOUHB=IAA>HOBI`FMfCMFLEPFMC@;CJFGLONEONAH]RED@VHOR;IBQD\JGVRBIHSPPKRHQDKK7IKKKFEKDKNdKSFJIIHBCBJBIRHEM\TSNPPH@ADAALFJ?AGVOJJNBSSD=EKJHJJCGKWDOVBTDCH@_=ETHGBBNUCBPYXJI@CB@CPFBPMLQTP?AG;@LYEBTKJECGCDFQNMNATK?@FMSXK?PKOJ=N?FIMR>V5CVL;NXEI6NTHGLEB@EHURLLFLFPJH?=IT>MHJDFR4WKTHOHQJCDT8FHFDX=BTLRTPAGBT[DHHBNSVFKAOT?JAQHDFBEGGICTHMI?SMXBHKQTFHFCCGLLFJFELGHJFRJHCJI@ADIGVHEDFQMGMCBMFDMH;AADF@AEHFDAGLCQCXBDEHMJCDXKK@PGHLKSNIM@JKK?EGTCKKLCNEMJOJGJFJDFCQDMLKHD>9JDGDEKKBEIH@DJMXADGHKFIM=?N;FHMMRSLILZcE>BIO;@@;HGKRPDNMDRP=GOJY?>D?MIIG@JHOBDGMDPHHKJCGT@MQJFDNUG@TMEKILGHNMPBECGHWKZ:XNGEEKB?AO?IDKBIOSA?NIICFENJDDHFALHALNLMEFMJSKBGKJJ?NMJ@QL@METIJK@GGAIENQZFLMNAFIBFYC=IMDNMLEIHGDALLLTIGJSRFQFGELEDJKNKTTKK@HFGMVIKKHBEA=CKEGPHLHFEMNMCG\PWFEFJJKXQNJPJEMMFHRKHSSHBHIQB=ICIEFFJF>HDGGOEKXGKHAJJRMQEFIIQBCHIJDD=PJJFMMNJCQDCSGQLJFBNGK@W?MIIGCCMLCOGHGFGULDPGFIGIEJFEUFIPGMOBQSIPIKER@LNJOH>IMHIU[KBL=GBJFI>MIGA=BPNL>CPMABDLF:FKGP@IHAB?JD??O?G9FBEEELLJ8LIIB9BCE?H@HACLFL:EL@>QEG:HQII:@CEDEL>HGBGODD@EA>TLBIDG@NA:HS:FAEJ>@G9H[HLIBFLUGDK7J=DIIVBEIEOEHDA@WCJHKAG@EDIH@ENGEEDJ2AHBH:PGMKADDGAHHC>>MEGHC;B8A?JJHRHCEK>6LHDJERK@FTIBQ>IHGFG?HFKALNDK=KIC>DGEFARIFF]?CIMFLHHB\AZFHIHIHFK7TCJWT9@6HMH=>JKG:E?LBDRFSDA6BBHFDL@IXHHNDLJDCA@HQOZJTGCFG;KF^VCKDLEM?>O1FKJUZ?EHOaJBGDI;JLOFEJFJ@@ROF;IG]IGVHNLMVLJAEI??^LEANHG7NK3?@GDB@N4NcBGCXMQJDEBH?9KCLHEUPEF=DEFCNEIWMBEOJRG@LF>SDMCIHJBHG=RLDFA=HKLEIIKVJ9LGKPIERIDAUFLJTUDAI@LEnF@EFFLKTOAEELMPGGML^KTMHJJ>BBFXGCF=;NDCMDCQKMNDHMPHL?RTJ=TNKGRORCQIOONLIUMIGNMETLJEKPIKOPQNBYHVUJXGLKIFHIFANAOLF[TFP?F>PQOQNLJGU>KBHMLF\AMFIDCADPEYSLLIOFMH@GJEQUHbQESHCQNGJFNKFVIIIVIKNTQULGBBICCSJDDHN@KKMDARSHMIHGLLEIRPGHS8@C>NDAGI=OMLI?BLHKHUOILBADI:NHWQBMM@GJEKFIGCQDGQSGQFETWFIJMH?MCGEDDMJ?EIOKMMLCIAGGGFBECNQHCLUDGAHJJAKFIQAE?LOJCEGLGARHKOJM?NKHFBIE@L@PLHJBLM>JP^8PJIJBOGGG>HAOVL[BCNZMH@BIB@@JKUGQAD?K@JMP>J=FL@HA@RDHCMPF@BLOPEDMNAKHP?QoA?JCGRAE=CHR=G>JJ=AR?NGQDPM>IFB<:JLOGJ?EJDMDIOBFQIF=AGP@BKNKQKOBAMB?D==P?D9JICWHI_FHLAUQIAACI:J?[LNIMM>AJQV@IKHAKLD>SN@CEIUKLMNPPYQNLFTFEDKJO8IMDGM3NJIL?@GEOHPVADDPJJC[QLSLFOPMU??OESJFJ@KUERWIXIJHA?NFRLEOCFMFW^OF?_CGITL?ROIFTP@DLKJLO>OKHCBQBPLCFDGJFLHFEJCXNBKGQIDPLMSM>WHAOM>QFAIHG?JOGPCNUGKIMAOP;MJBLPIMTKIKHIIC?EMMIJOQMEH>[PRSHLACRFGNJBSIHQFFKMXMQRFEJ>HPGEFI@KNEUJSQEKMOOLHHL:XIGOWQURDEMFPNDCLPIHJFKKFFFPTDCLOFCLPPNLICLHWBFPEJLJESFSIGNBJHFPFKHHYNWAEKEBHOSQEIECRIPBN^JPDELRDON?ICCE:HIJHDIPOFBCPHLLCVICCEIM>GGCMAAJQI@EJ=M@UGGGHGOJN>JMIHOGKIJKHFQIIIORDBg>_HSMNB>H?GMDUSL[Y>KL>SMJ?KEGBJHIQZRMLLRRMGDZCNBLJ9HLKGC@FRGDLB@RRGDL\HHPOFG>;YEMFCNOON>DFPKPLEPFCG?:EIPHJBQLKRR?ILFJJGJONKKEEPSAIQBGIDD8GJHNCDDEHKIKKMLH]GE;DENERKF\IROGABHROEPNGC9GWOGJIHLA;RBSSJHKRIALK@ACL:WVGGGCNOACOLHFROG6MDGCKFJ@T@RTFVJDgJQOGGYCFIEELTEOCQ@FGDTD?FSK@FHXCHIGQVJL@?NMMGGFAIWQYUNOL>I>OMI\LCTULJUDEGFBKNBKFHWBoSDVJNLSBNF]=JOGKHAMNHHKFLQI7?PUHFKJDBHQ@BOGNTHCKHEIODG@N`GGABKIJPJ]DDGaONCBIFFAKBGQJR?FGHGLIEFASRHKEKBKMNAUHTDEOQJOWSDSDEIGFWEKAKMJLVCGTKDBLEHXB[HILHSSJGNLFQNIGCQCEOJMMLPOCHINBQLGQGEMMHFOB@QOPGHT>HMHSEIHHNKEPCCDDCHNLRMGG?KDEPM@SHEGLILIBSMJGILHEDLRNGIREWPJRLEAQHGPJZPKIXCUMJ@QNFOPIIIJHB@FAB\IEDFTLJOKKCISOIIDSOBMSLQJQKKQERPOROEPVEKDTNIIEJBIGHEFLFPTaESJCOUNIAILKBDJHKJEAGN>JNSGQ@YFGIWGFMLDPODFMHQEIM[IHEHHNIGMMRZKHPHJBEHERKLIDFQORLIOHPELB@YAJ?IFLNNLPFN\MKJIQPOR@RHERIEPGNHCMJJNJI@NLLDTNPD@JQ9EHHAKTK=MQKGHGNEKGDGDJPRCUEBLCKPKCMJFICTDJNGWLYG>;N:HRBKECISKTQAF@CRLGJPS?CUB?M]LMA=>ZN=VAIAO@XM;?MQQCAK@QJ0HCY@BOS=TR_IAC[TIIP6HJLJWP>B8NGIKE:EAGJQ9GNc>DWG?QGDFT[P>JAIBOALE>9RCZW@RAEV?[JS]NHMF[HK>@@OEKVSQOJMX==OlPVGBBBDQJV?ZFA?EYSIFZ8\@?M4?JUHKB@KYDLMABWBGBCKWBIXDFRXCOBPY=MPHFL^LJ@NRBM4W>BNEEF?HE?RHLDEAKRREEMUC:LKIUICAHOP>=C?D?FH;DGRIFMBGIAIRREEDABQRLHLH>I9MGCHEJHWEJBSCKIXWKDIJD?NTHFOFQ?ETIFKMIH6FHTCHCKDEI>F>BW]LCE?CD=JAKEIJHIHKFDOEMDaJLJJKLH[PDAQMCETMGGFN@L[EU@RNKMG@MMLOK=PNKGQMGE?OOONHBO@XICGMHE@MXJFJOMCAMGJGIRPDFMGIAHGLLLA\IHEGGHKP@KHJEH`EDVEG]HMPGIKBRKLTWMMP@OAJGQLGLJXRGSJPGFGLUDJRHJN_CEQEPPJEPMBHCJGFBFLQGHOGR[OFP?GNDEDRHFJDPGDHVbTBPRA:FAIDTMCIEQOBFVHP@IBUNBIJIHD?]BMELH=GEHFG@GNFMEWHOWHNRHFRREGFMMOJEC9PQL[FJACOPDJDNKJLFGIcEHAJDM@YPHJU>GKFEJAdHQGMVHMJLIF?MIHNEUJPMJDCBLWJLH\=QC[NBHKMNNOEFLNNLMPEATIHVOGIJFGWN?F>NFFKFIKSC@FPSEQEHOLIASNJJNLFDUJNPIQIHD>GBKHCFFBQAINDWICNEbOQGFGDGNGKPPEMHSKINKCQ@IJERESHDPRPGIDJGLJRJ=SGGSGKZDHHMEJI@IABENRYGMJNVMFQFMLLBJBEKLFMGD?DBIDURBBPMGWGIKITUOLADBOFLJFHNHJP@@UDEEHQMF?IOJALMDFNJHGGRdO`H=I9>KGFMCD]POEDSL@QHDHGR?GI@KSKE9CTHLLIJJJMDHVAJELJ^LWIPJGFMK@SJFOKGICMDNGNDSMNNIKGECJNGBGTIRBFTPIJNDMDGKLMLCOIBKSGPHPLI?FLUOKHJEKFMIIMFEHKHEH=OEGNMJE>P\KHCFKNMHKFCFCIKLVZIY=FIERCDLHMJIEKQN?:KFD;IEMD?FFXHLGIHGIOMMCHQFVJH=M8O[L5PI@(BWD=PPMA`>O>9-TF7T@ASMJF?LOIGKWRA.?ERNPHVGbLFN?NZRFNMKN=D@I5G@K:M>28JRDE9N9bD/RBQ4?ND=>POY97FQBFEC,GT?MH7I5PKUAIJQ3=FH=LU^>OWKCU=M\PLNHZN2IGEW;J>H1MKEFWM-?OS>J62KS:EMHQHM?EN5FALM8T?G?K=H1URHHBNJPGJ=^=DO=T8F=IWEEOIHMPQJMF@:`MPU[INJ@NUVL6>R[GRYM=@UTS52H\H>I.7HCFSMG@5MQHN=BI2>NS8XT`@OOE@GEECMRM0FCIBLDJ=5HEKe^NI@S?TE?8HO5@NX`H@R-cBAJBBORAQEDGK;GH7DW3I?:Cd:LX9@Tb>VJ`N=KRNLYYUJ=XY;C0J>=NWGGJKG?TRMeJNNFO@ONLWKL@BRJFXHIEDLDWGDY@SKOBQKVG>NIQGXPVN?ILIHRJNIKQMH_KHPQLPCEIDNCKEBGDOLTNUP@LFCSBMEaJJ^D?LGYGBLG;DIIDINAOGULBEQDOGSNEGbCZLTKJSbJQIVDYHHL]LLNJEJGKKKKNFCIPONSLPDUBFTSULJJTSL@FLV@@ITJHMINLKTTI@KDOOIEQFOBNT=TIHIPDLJFEG?WIFJJ@EILGFHSN_4WZI2gM63VUP3RQRC[BMA48YE4rGaNI`@5IWG[YQRF=;JdUTFKlZBGgMH__LYOKBRLE\FC>H?WXB@N[[U=O9dD4H3`6ONKAESS\69_`RGKB5BWC:bT?[S:PFVKEIk=7+ZKQOBXNWiJ:cB:2YU4:QFG\SHQPa\2JGH[ES-V0C_U=_M;QLUAN;@Q]DLH@IDFML`8;[MRMO>PND:V*F<6X`BG^NHDOLBOKLD;CREIBNA?LKJOGDO;OEDQPEOHV@GJBEEFHP?GF5E@LMUFFLNMCCZHUI@FTKVJJHGMCP>IOFEAQRkHJDS@KISJDGOQHWNEHLC=F>VWEFQVGHK>T@F:JEFMDECTDVKDMEN;LGHL=DO;H@?INFKVBP<]LQ6]?7;L\F6FQUBaBGC=7^I:WPTJBDDADVKJ\NLI<OCU93JBO;FUN4EMnR:1P[]EDEA:EMRG9F0GST>NCL>CL[?SfcDI=NKSN7HNGFPEH63JGFac?eN>SIL^PKT6=-SOLICTKTXMBGCAT=IRK;XGdQ,VMCa7F?U+AU?OVL:LNYCC5;HYJYBAQOM=PS8EOZ\QH5PKIEM5WIC;AYZKHM7X/9P==D\;\CWHYBJJ9E]4==>HS9PbH8V`8M;K]:DWBKNZMH>Z[:P8K?A?Z5bJA5_H=7P^N6LSO@VCDS68QF=XQMP:[KJCZNTSPJG@D>dM^:C`^=GZMMRUD\FT@OB=\FEBL@ZH;=OcPN;KDW=8M6hFIOK<8M[V<>bbRM@G=DCAWP9L:JRQ?MJ\;Q8`0EVM8]RDKIVAA97@c=H?>TPH?L[SAE?7K\6J`P=a]7M;\Z5E[JRWUMR?_`>F6OA>@JPO=BCNQHBBJ:J@KIB?GGIFBIBHNEEQBOGDFMCRLKJBJNBTHGJOIEMBRZNGEGMKIHJLJJKCSAINE]ECKEGFNUFP>GIJKSHUNF@GBCKRDCMBRTIRV@DIERMBOSHA?JKPIJYLIEXHHKDJEGDHAADEIQLUFLAFISLHEGLJRMDADMKLGAKJNQXQMGNBJGGFGLBLHJSIHAGGOHMDHMRJVRBKIJJRPPLGIBAJKLIHSGBCGNHICTPN[BG:LMLGFKWSA=FHLDGIIID@JBJPB>JLJHLDEEIADHGHCILIILOGMF@?@GGHAMPU@LKCFBLHMOBIB?JG@@M8ENGGA=OC>GEHKIAJEPK?DCNLBR=BB@HHRELBUAiKHBFHCPCPMENCHALOIFDSLBKPQIDA>HGRFMD;KODGMIONGWHMGK?MDEI>G@IIPTFJBNB;GKM>ZHQ?HVGEEKKATGDCDAHFGNVMKQCH@:IDILMEI>NBBUVJJ=KKKMJMHDEGDOCGO>N@HPIIHHOG>MIAHUEKI@]BNJQSMJLGLGCOHNWVE=NNBM]UBOCAFL?CCBPCCERGFICGFJMHPUH>DOT;JPT_QNENRHELMEJTCFEUUPDAHJ_JG>DHPVHEBHUHNHOLQFPLLPKFECLKGDEUJ_EDJEUMTODHPHHKLPXEHDJSEMOCD?HDBLLGKFAOFUOCGHWKEA?:FEFLOQJGEC@IEKKGE>PLZI@FFFKSMQOM=BHUCENTBAAEEICIJT@YMLWLHHAEWI?JKDFHJGEQNBHKTTRAMGKNLCBBDPEPPWBNIMGDYQCL?GJDLOESENPCV=OOMOQ>LROJISJG=PY@]VCKEEEGJCP>PVMQFJXE@NI@AANITSGCAEEBVKVNXEHNCOPNOJRMKLEGQGHZMCCEEEROSLTHPGLCHF@CE@BTQGJJPXIGKQIKNJ=OOLLH[VQBFKLI=>EDOORI_KBAQNUGDQLTMDFBIKMMIILKBIMIHUBE@IBIKBMLMLMQRYJCCDPCFOFGLRCNKGLTH@UKOIFBFFDEKDJIEHNCHH>IIMVHGRILAJKFHGJAE[CHHGBQL?UCLVCGEEB^;>H;AADQIXACLFHH]CAMI]CAB^J=FGIN@HKSKCKBKYJADJYGBKGGAKC=MN@BKRNL;QGMNI>HLBB:JLIGHUSEIISOEOSOJNLRJIHBIOQFLCFAEIFLBDHIGFFOBAROL=IF=BACPLE?EDNNN@EWGEEPZBVCNVFIGITBEITNQNJFANFL=QDERMDLCVGNRLJ:H=NOQFNP_HMT<^EFIGJCDWHUGBGFHRFMIL?HDFCNEHQJDVXQ?CILKOG=AHDMCH@MMZ@>IIL=FEHYAPUEHO;DW@AJOGOKSfFMHWD@IP@@?LFMPBHCMDE@QJKLCH@?ESH?FPFLIQGLOKIBFRGQUND@BLOHNNMCIHHKXQMEUHMH]OLEMGEHQDK?OHLINF]L@CLAQG?UFHLLAIDW_BDTN@KGGNGQKCJGRRKJMALGFBQFEAKFHPNFJHIFQFMHEHKCMHMTK?CGJ?GIKJGOHJICPLCJDJHVHDNATBBI>JKHGBNIHF=LKHB?TKOJJAIBTCCT@CDEFCEKIIGNKCBDOJHKADCPPANKCKHMGBQFEEIHIEBJ?ONLNQCXJILJEOYLMFLPBRDPKEEQBYASLINTGABANRMCBLGJPRVKMDNDCSKHMILEPGAASGFCPYY=RP=OFKJGLFGNGQFMBMFIJ?INBJPEDRJ=KMEGFCECIIRNOGPFNJ;OKEINARJKFMHK>DWD?FLMSZF^JTROIQN^CH@NCYGBDH?XHJ?@NRIGKBALDKIJLHYOCQMPVKLP[VcOSSBMGNJKEIEWRMHVSNIKSKHOALKKIJKCMDLGQHDF?LNSBSKS?GNLNKRSNPCPDEOGMEOJCKNNGGAEGHPPHKKU;PHO@HDPGFOASB\NTVIEJRIVLKGOKPK?@SIIPGKKDJNMSWGPDPWHDCGCCFMMHILGKMKDGFQ=J?KOPIMEWKCUOHJRAFUKNHIMAILEGHAHPBJEGM>JMBIEXEINEMGBNFDINHMBYIERGNRSDREFDGGGLRDKEHLLMKHIGOEOLEFJGKCJLK?JGKKO@G@BQJLAEOIBDAAOM>?TKML=JILIJMOOR?RMOF?HDIIBCPENNFKIDIPVIRIEJFREPRTKTIIBX>OPMBcLAEFJIUJNIGTIGIGHER]bORNCDKUfLS:YSOEFWEYQVRDDMO>JMEDLZQCKEWFW7LMLFFMCDGGJIJEMSPOLPEITILIVLDB?>MQFPN=J\UGGMDJfNJKQVSYPM]ONTCJQUKX?JTKJJHPJPLYVM9QJMIUEPLUXHCHEMLIIMHPBS;YS`NTKCZLOL;OCBHORHiDKGJUPLJ[RXRMMLA:WEIHFKCKR`OQZALNKOGQ`;IECIENL\PHGGXACMIJRMEJRBBLLJKRKDGIRSAG\KJKDKI@JGVNIIPGNIHLTEENLRMGMKJLL@ERSMNBKQ>KCVOPHCHPJOSO@KVHJDJKQJO@DJDPLLFKMHOLHRKDKLOKGQNM_MNKHLQGVQO]ELDH]MINKDLFHMHSPIE]KOPFDKNLVF?FMEQDALMJSQHGDFBLOHJLCHLcNKAQJHGELMHCXKSJAMGEKFKRKJQRRQMJBNG\KFJKTLVBHKLIHNG=ZAOEFG?MGUJJPRBGBH[@GBGJH@KLH>CJTG>EPAWNDOJPOPJKGPBFQFHJKLSLNLRMREWIIIHLGRPIGF?NTDDICRCNUEEERKJIKFNLKOJLNENKOAGRQIDFRIKFFTFILPIF=?BGHH>DFD?QQINSKGLLUIOYRDHJGOPCNO@PM=WKIH@HZAIKQOHDHDO@EQRPKCFDLOHSHGLELJNF=BO<@RHMTKNAQSFGMIAZKMMEJGGDFF]LJGHDGMLQRFKCOKMANICKDBIG[VJERIKEJJTEDEJI=JGQFMNSDREFKTSFFBCQGMMBBCJ=AGQCDMJO]JYHCLLI_FFMGDCUFDF@TICFJKLD^BGLMNHBFMMCWADAJG`XLCRLIHMGFTLCCGEGXPJHKTHDKIPCQHHKLJRHHEVDP@JIOOJ8LUnKHWJD\UMJ@?PI<[QEbVgCBEMMSMJRN?;RKMQJHEVMNSA:MPHQK5`WUDGDWBc4JV?GPXRTBP>L;EyDE>KKYKURYQDBNSG=M;MELL^HTWMGNQNE?^K7?ZGMGbBN@QPBRW[L\XUI=HHA;=VJSHEBLKCGFSMXHQIHJJPZQOH@?@ICQEIbJJMNDKMGGWDONQBKIRT\RHBZNQTFFK?FTGKLJEFCLLKFJEMJVBKGJOFj@JIIU=CJBJJIEJAINDNJAJFFLLZSKV@XJLFQKNEJPSLKBQJOHPBFARE:HH@NMADOHDC[BKLGOKPOYGTQFGMIIKID@IEKEIGFYIKHLQFEKEJSGRXHOMJMIHLFBGJMJMSYFLNEIEKBIKMNFHJJDIWBOEI=FEGADMOI[`EO=DL?PEOTH`;JI?U:QJCHHLPMJ_DGKGLHLTHKCEG;ZNHGHOJYMQFOCQGNCBILLPKMUPMROECQHXUQGRTNNLJSGDLd>IDISMJKLBJ@PTFIC:N@KBBKWKL?JBIEHKSIPCOJEEJAJCQDU[AGAAEIS?CJDZ\BMIPJSOFJKBJNGFIKCH=ILAJHMBFIOAHGNDOID=JCKFIJSJKGH:YCBDJH>LGQGUUJIIQDR?VHF[E>PFCL?PHHI?RXGTYYI@SA:RFEVLGJFMGZFHQPMAIEOL;IEFWVLNLFKFKJGNCGJBJKF^PSHCSG>HT;PMLAM=GOHPHLKKKEMDI@DCGLGFBLHeKD;LHJMPN;KRGMB_LG;NA;HSJUFHEJBB;BHADB=FP;OABLDINDK[H>HPEANKHHCWP<@CMS;BGGYLFD9TNDKRIWV?HIEKG?HFFBPHAQEF=KTLGRIBJIZBSGHOHGDLCBAGTBQ:G\GDLMIFGKCDPIRA]RCGJY8IJ@OA@RJKZRDJKLPLHKHdMCY@KM=FTERGdJJGHGFLDTQZQKMJBC[GC=FBFLLCEJCLMWXKIATNEHSFEMQFKLIUEHHFKHIO[PKLGKMHL?GOBALIFKAKAEBLJL?JKCIDMPIENORKWPBNKULEWFIQGHEJLBAHNQALDBEGMREIKHLCHVPACYOKNTFSPMKJLIQQLMD]LKBTMNNHMTH@SVZ>>NLBWLQLFLJQK@GEXTJHAVGGRMDJNHMNFUHENZAOCJHXILBNQDPBNBKITWEGI@SOJbMW@AERHLDHEBKROJGIBJMPEOKGLKVRQGHDIJPLaPDGKIFJPJFPNFKKCJRLTCMSPFJKBDHRSEPKELHGHQLNPAFRQLDOSJ@CMLENGEMNJL=DEOOQILEONMDNKODHOUOKMLGDVPKPFFDNHJIIILKUNFJLLFFGPKWFJHIFEQJCCISRKJATVHQEHJPIGKPJEJHUPBMCKKJMMCLKHJMKSHNNHJMSLADKFIMNJIMOETJKQMSTOIHMQCBLQNMNKFOCMGMHOJHMMSDGBBNI@SCIFENCVJ@DLRG[LHMLPLLHELE@NNNFLHVKHIIIBDDMEOOEGKNNOLIHREDHFGKOFFWRBHRRDNIMSRKNQ\WLIWINANVITRLHMJNPIWEHIQMSMGHMAE\QLNWDFQQKLRII_TCHUACOAKMG?NRXZME:EGFIH_QMLXEXGLCFEJXNSJHPEEDLMHHCILJM\N@ZHJXFEIRRTNLJBSKNIGQJBJDULUSNHVKJUDILAEAYDLINGDCLDUKIDIVGLEARD8LOKFFLMO@RAVMLNRLGQHKFFKIFYIDMKEQQJN?PMFRULIGKBCLLLEINJF]JSCI]OUCZRKXMMSWIOLQOFJORJ[JXIQMJQOKJFBRAKCOSRQMVJJbQFNJRFGHTRUQNQVGXK@OFABKBQC@ICG[CIO`ECEOHK?FH_EKJEJ?BIGIGIWIEMONFMVGLOD:NKSILBELQ=HRRFKJP@F@BHDJMMLPK8\HGAHDJEEMF[BBMO?TK>KIQFFJLFDIKPdFHPHFEREAHH@OROUMUDF@>AHFKCIMUDG@F?RDTNZPANJNEVR@E>RJKN`FGOfV`>V9HNMPGOXWAOBYFXINIGOYBGHSSLFIGMJEEDBO9FFNJ>IEFLFRFJJ=TDMLOMEEBKNOGGNBANVW`QN?CJGBPRI[KBNJFJEKPEFOEHDHKJCNNFNOJQRHVGFSMOLNU?BJKGMLHDGHNM@LLFNNEIOIKCDMH=IFNK]FPJIOENMOKHLLRUIPQHMAIMGLHNP>NELIHOMJMSFCFRDOGQQJFJFEMTCAQKJDNLHPHLIENORKFEHGFGGUFJRHQGWMGIHEKPFMLMHLEINBFEGJGBLQHMLHLLQHGQOHKJEEGGMPIHCBDGPAGFEFG>RH@TKSRNECHBFHFX@NDCKCNMNGLNOKKCRJIIGGLLFLBIFGNGFGQGMH?HNQCC=HIMBQRFTPNJLHEWOIAJCMHSPPMKBHSPRED?\G@HNIISMKIEGGEHSABDCCICHIEGENHKKRDIBSBJMXQDJNBHGMFHIGHGIJCHI\IOKGKBKTPIDKE@MMJFfMCNLFQDPER?SQEEICPFP]GHNIVIEMQLDNE@EDEEKTEPOGDMHLNLHOMCKMKMIDCTJOKOSIGIKQOONECNGQPXIEGIDJBILPBTMFGRFXLGKJQ?LN?KPEAMMN@JELJMGVIQEAKLJEHELOLIBCFZMDIAMCP?HKQNGEM@ODLFKJTKTFDDR@GKPICJPLMLFNUPJA?ENH=FPOFDFQJKKH]KLKEYG>QCYAKLJ@KMPDHKCGMHDDA@[E9ANUK>CJTCV:VBN;;>9R==ACFGF>9CC=HFDA@EDMJMKX:GI==MI5DHF?T;I=OLMO@A>YO>M=EHK?KUKQJBJJEBOLIAAEC:HOFK?<8AANGLJEFH=D?NMLNKSMD:M=PGQF==<@BD@RAHG?PKPBI=J65JJS@HCBCTGEFCCBHJXCMNGSKATTCJNCBJ=FLOFOQYFKDHSLQKHNDWKIFJFMEODKOHDEIHEGAMLP@PJKHFJHHOHHGJMMGEKSAHQJIPFIOPQ@PHG_@EI@MENUOXV@DDIFHIDONKHBAGOGMDHFHSCBMARKCIJO=MRQ>GGJANSHGIGAOOELIFMHBPKLQGGOHTNFUGKTQMFJJKHKNLNKGWGFLJIPRBRHJHGILHCEHEQLJ>DHDHNBPJMCPIJCBEWJHFKFIOLJBFIDRNH?JI_LVGMMCBOKHIINNKAIIKDLUPPIHFJDOJB>LCQ@LEGJELK=QFKIBHQE>J?LQDCMBTKJCEJ?DLIIPMXQLB?:HHGCIKHOKOHDHZGBFKTKWIAECCEA>O>APAIS<^HDMKCIMRDVLFOWHMO@RTNGNRJLHHFKTEKEGIFFGWHEQDRLMHJPCBJLMKDRNHF=OBQMABGHFLJFQFENKHGJIEADNXIFLJJE=BHMIDGMOKAEDIGIBO=LOML>IJLGRTHILPLQMGPEHIILNBALBINGGONECNHOKJQ?IRAMFQEKKKLIMDIAQADMLHIOJQKKHNJJDVOGICIHNEOJZIJNMJMHHDKVNDKRPC[GGEWSHKMCDELRNIILIICMLQPJGACRBFSLNNFLBKTLIJCKGKNKOBGGLNECTJ>GKHMJDJHAFVPMPKELMCDDCD@GMPIMLNHMAHIOHIEJLFFPMHUQMDCKMMHNIKTKCTDCVOGLQTOOFHYZLNMDGPCMHGJEWCFPGDHG>>BKHJHEIEKEIMUJWOHJTDV=IPUH\K@FE@KRGJDOFLHNNGPMCSFEJOGKGMFDDLRJIHEHRNFWYLOPJLD@KOGNROKGQ@EGILP?LHCGINNESGMGHJLGHDIJEAHECIPZFAEIOZHPDQDH@FKfTFP@LFDRFOKNHMOOI@PK@SGMJFKSPLLLEESH>AAFB@IFPMDXRGK?KIMULXP:QIPIWLPBSCTPOHEK>TNM?CJEHIQRPTPPJQPVFIDJHLQ[SBGKJP@BEKLTOC@CHFLCPHFOBIDRGVQVFEVCD@JFTMTKLIHEKOMJFELHIGQEOC>LIFBMDCC_@HNBLMHQLOMT\IGKLAZGILQJRD=KM>?NNE=FMJKVIMJOD;DLFQMMFLIODFAD?DCRGTBAZBIUJ>TCFEPHLXSHNJOGFPLRMBLLNKJCEMHDHPBCBBNKDAN?PBHOPKBDFPCOQJJFK=OGLJIILIFIXDIQ>JFBNIAKEKNGKJII^AFLEEBFAEJMGEARENSKFFOSLCMA@PCOOC@YEQAJWQIQBEIB_DIDCOGC>ZABDAHIIMLQRGK@GBBIENKJP@JBTOUJHEN@KFCVH@OUHEYIDLGJOKKBIMGAFDJ_KNKJ\4bVB0VC?7LYB<\YL7N1b;L1oLDMNAaIMAFLJXKTKYH;>BTJNWIMPIUNQ?RT;VMbK3DBJCBFNGGJI;J8JQSFB=@BQLI9QUWBCRHJAGEKDTS4DHHJLHJ88CFKlg;KMDl?eaK]h9E2eCQTFUCNTS;@?@7VX?DN9FXRGLKTW-HQKbLK1k)?O@?]U*RMT=I1-IhEEKC^EQ@NP/AJUTAH>NCJMK5QS8\EUXCSP5a28H61G[@\BORJ;HZDEO=?5,Mv;GY<8XW?RARQ6ChRYC_LO=pT8N/P>=HMORMMMNHOAEJMJDDHQBBNOVFMOKJGIGQUQGCCPKPBMJSITJHMJKHKI\JBDQLDEFJCLUAZHGMQDENS@PDCPCNFICGGO@GFM\POBOBP=PCDMIIFCKFGPCDJLMPFUCSXCPMMOEFN9HMILNEHKMFJQLJNHXGADBIVEDCMNA;N=JEDHHNIMELLMIIWGOOJRJQ?BDEDKIKIMKDJICUCLPMUPQEKOQEHLJOAIFFWN=SJKRFHJLPPDOIPIJDG[2aXC9`C9B>S;>FEYNB:U:TAFNBa?FPV7KMZX87TWMWOG@EGJV]JLFNBHOVEMCUPRIQJT`9ODRN:^9^LSICHSHN>NQQHDTSQ?BABISBEKEEDRIHA?BNNFFPFMLTIJQEURECFKRUFKMLBKDMKGOOBXLNIBIIEWWNJEG?ERLNUDJJLNSKFHGMMIMCJJOOORKFMGNEHEQGHHQEIGHCIQHIGRSIL@KZMADGLCGJGMDFFXK^JL?GCRKDJQNKJYIGQK=OCKOWJJVSJHLNJGIKHHMHHE>FQJTSJJM[PICPICGOIJLPKNFKLBKJLCFODVLNEEPKNGTM?LJJ?RAEHHDPJACMCIBCDHINGKIFHCMGJHDDM?CLH@LGTKFOHEFMAIBJJIKIDLNAK@JCEI>:CINFGGBCENEIKF?DGLMVKIKQJ;PSQDDEKGFFBQHKDLDFHFKHBJLK;HEFNUILE?QCKOQ@F>NJCT@?N>F?IOC?=RHL@JCLLHDH;DH@FBORMCEC>NNIHQBHKCHTNFGHFO?RDB@DJAB@KCLGSHKHDCMHHFKLEOOQDNKVGSHNENHJCKLPLPIJE@QMBNEF=ASJJKBNEJEFCOOMLLANHNFI>;FPOAIMJLHLQKMEDITPCFPGVP:A@?BMFFGLNKFGE@IGDCBLDELQLH;ORVHFEHBICGIFEFQHDO@OJDELKKHDPBMQKFFMPMDHAILFFJEIGJIIACNGGDQDJZGMPGCFISCLCK=GHINHMTKQF?JGQU>LDGMLMIOHKHOIQK?CIODJBGEJDBFHSGI?LECENLJLRML;E>@>CDMJKNPE@QELFRKDHGED@FIVDIEKIJE@IRGJBFGGFTLS>PQNEJGDMNCIGBH>>EFBNMNANNOO:KJFG?BCEFEKKEHAIQPIIEUMCDLC?K?JHOKE?HCKHWBGERFUMSKQ[GKKDJSLYMVH?NKMMROIENEJISMIPGKOGFXNMELRRRQJNQEQEKLFJEFOIOLITKTDXDFOHPHGGLLM?HNM[GIOFTGLKUMIIMHJOTOBMTKLFHJFQNH>ULKCKMGMCHSPOHELHPOVIPNHE>HHRTUICGIA[FJIICJRJOGBHOOSFKGKIJLFKILXNJPMPJSLCHUONJPIGMTMLTOJOGILOIEGEEMKPILYRFNZNITgHEEFYXHCFQPKZDCLKMFD@RCGMLFRLMLNKOHVOCWMCVL>YJFSA>NKKMHRUOWI@ENGNFK?OCPVKOCE?CZHFF>P:ETGBHETCEGJKPJIBFNJF@GNPMLDSXRQGFPDFJQLRBK?>DQAFHVFPIGFBRCVBSEVXBVLJKFIQVQB9MPDCNYFHKHFLGJAPXWXEONNJICKTK@W?KHIDCOFUOCFMHLSGPGGKIEDQCN?ICAIJKERIICHLSDAMYK=aHM>TU92K^V7^^D/URNGD7XM+VL;W9]94QOYaTOUI3-HIQaJPPTHPR9MZWWURbQ;K6`ALHR:H<9D[^JH2M3ONA\SZ:J[QAHT=?R[M;FGRHN1G63JJ;?(QAIAM[GSnM@SB85JW=2[CRUSLY>^f/SYJ^A[3[/JPMKVP:OUQ5L99FV`@IFbFFBUS+:J*ZI8NPNKLOQTJJX7F6F3>GJFCYEQJCODFYSBUD?@FDJJ>JHLGNAROPIMCGBMHPNEPLEGUHGRHRNSPBO=WG>CJNRKRIDSUOFOTA?MEEIOWEP=RN>EEOM=AJMA\PE@LBF?;BN?DDEFJAIXNGGSILCFIGUMPKMOHQMFVFHQ=OJZIJKKN9ODPJGPCKWNG>dODLBAR@GD?KEFDLKIJKTDHCLGSALHHKPJ?^LKBLDD?=KGSDZQNJQMTXVIJASICBOLAFKSBMPKC[XMELMAHOBCMILIQJWPAIFGOMGJUOQHUKDGNJEOWGCLMCK@IPUKDFP>DQTQALZUKMAGBQJUEFQOOFOP=BHC=HQDDFOJGFAGDFKSEJADKDECVP?LNHEKFEHNGPGOLL>JMFOL8IIEFJMGOSJKORDFIJFJVAKKMCC>IDPCMALQJFDP?GFECBLGJEGDDGHPCGNRFEHNEFJ>GDIFICLRJOVJGKGLL>GMREER=IB>?LDEFBGVFPKHNMMHMJGCFIJTMZQAEQIFMEPEELZK?SMHIMGLIFEDDNLILMMMLDPE>LFGNPKKCDLNGHGIMBPKHI@FGFDAKIE>FJNBHFECWJHELGFJJQRJFYHLREGICSFPDCEQOKDOHXKAF?NFBMJPMKPIJMMGHONJTOHSGFPDBANMMGHHIPDAEDIAQAJQEHPKELEGKHYOP?HHKGOFJJKGCJF@QEIYEGUFQJEHMPMFGVNKUKZLIFN@KOHHOIGBABMJOBJJEOOIILFGHHJOLOINZIJOHEOBHNKGOJHJIDMIKS@LSKDKHNKCJ=QMNMGIRJRQELFHKKGLCHHHPKOFGHHWJNGMCGJKILFDDKGEQHLDHMDNGLKGNJCJGSTF?HMHTLKHHNHLBAKIFHGQMKCLPHIFGBGIUPGLEGJMLILJINLJFREGSB\@DOHL=GGFHHPKODRK=E^HINN\GGHICKWHI=KDNBIBDEJPATONGNMIRLKSEPWLGEGTLGRHGFFBNF;SNJLHPF@LOGGGOQIJcQEQJBABJEIKNAPTABbI@kBKQEDPDHJBMRJJQ@?XMCJPDLNJLJ;NHQGOKRY:JIQKALEFEVT@ABMJQAG8FIRDMGSAP??VFGOPKQIDMC\KOMIHAJ[QF=QLLCJIARaHFNAEHKIQWDTQQEPKQPAEKGU8HQAHIHBPGKDHH@RLWQUODJGIPKAMGHGPMKJSKKPP>=PFOIMQDYJKEgUNJFBLTAVRJ?DKEBKXKINOTIEPCBGHGBS_OH@PNOIDGETEKLENLKBEI@A\MB^KGDJA@COIEIYHCFUHJKJPXHOEINMLJ\JUGFWHEMAEJUHMIJOMGFINFR`OKMIJDLKTCEOGNHU@JLJJJFOKHD>OLGGIOGDFCEJ?SNKFEPPBCEIHIHGQHKFELbJIHJBIHCEFDEFJREGCEJJNPBCBFF@PE@I@SLINMLLHFPAPQGEHGKQEMLNVLFNGNK=G>SHCOHLJKDIKPIBOC[EGLXLDNBHMBHQBRBPIGLHFI;GMFMJIR@HCH@EILKB>CLSFPISORCLKEQGHLRHHIEKDMMNPN@LMOKEBMFIMAFLLDTQNKRBLLXKFF@JESSELIF>FOFJEGHAE9O?FFOCDAJ;KQDOGJHIGJQBIGLGM=H?_KCLVSH=FIFPHVEWE?NF?FLOHMECESREMCMEEPSOKGDLKFREBBE?I=WDLK=:MIIKKFMLDNI=^KM@KKFGNPFGBEOGCLT9JNHMRMPGLW@PNOMNMQ\WLKTKFJbLVPBZITW[HMDEXWMOFHADJYNGC@HH@DLg?BVCMBK8EFOD:IIL}OHH:VK?BNNGGVGNMHIT?TG??G?PCHK;L@JRNKF\YLPP>?ZL?GKH@HAFQL>GNQ@\?:D;JDKGAFLLMD?C@KDYICJJASGDB>DRYKHH@LO\FGH@DD5CIFMREOIGLXD@FADDHNGM@KTQBLEMB?SSJKSDFDBUM=ECIO:JIRGGICLHKDDBDNGNHPNCJGEEJGOSFDGCQIKMJW:YLGS@JFFNWLEPLIBSNMQEYOILUIQPGGJI>LOKHIDIMUFRCHKHIGCHKDEK@CWYDHJLH@KLDD@FEELHDDLDJLRLCBKCEMUXKHDIHHLIIVBCKQ]CIFMOEP=INBFGGQBDPNGMI`IIIOMFJKEJNNLJNMFCAJOLMJRBGVKMGMKEOGK?SHUTDKIRKBAGPHGGQSEGFKYKDTBQHKNJMTGXMDNPMKMHIIMKIHIEOJJEKDRLGBNKISXJOLPVEKUJHXPJCNM[AQTBHPLIG@JGK?FNISDLKFPFJVLQILFSDIQGHIQFJ?QDUF@CKGGGMFAKSGTHIRIFFLNJCLDDFLPPJGBV:F?TN@D=IJCJJHM>DGGGNLAJ`>A?FIGACLEKNGH[FGYVDMKEIBNEUOGRDF5ARVCOMHTC?LLRQT;YFSFOMHFFFQQGHIZIIDLC?IFDGGIJLIHCUH@KIIMDSI@BJHRVH@ONKOLECOIGBNFGNMGJXFIKJFXOJTIWIFIGROAGNF[OJIFGKSJHBFLBPMEKFTLBIQPKJGBQKKLNNIJLKKJHKMYSINJHPL?HHQDNTHLHY@OCJMATHNNHI]WG=PFHANHGIOIGDROBIRGSMJJBECFK=HDOJLHMFAUWNEKKLBTKBOM@NIMEOE?PJLIPAIFLQGFKGGQHPN:OJOEKJKMMDSHHJLEMMCLKAHNPKGL@GERGLDOMDFFNEADJIJLIJMDPNUVQLKOKQGKLMOL>JOMGGLQLRILHKKLJKJNKSGJEQ?OKKHMYDKRCIRKKKKSJJCJF@RUINNPMDKBHLHEIHII@HDPHOFH[?FJJ\ARC`CCINGBVENRLRKBLCOEMFLLIP8:JLJLCPTNKP?FKNKFWICSIRUD?KHJM7QMEFIOECEA@THFUOK@GSTM[HSFGJIKKCG>LJKJ=DICHBKMGVKIHMWAEHR?ILPLGX@>DOJPQK8CZNG;AIMWFCWKSYQLIVJKJBFLEXICATKKJNLOGOSbGCENHGEGGIHIFOCBLA4AMSS@IV=LMGDJBAMVZKCDFTWAIAVMKNNGPECIHDQEJBbO?L?GPPYGGJHM;=J?EFM=FHGNJIJHTGF;EGRCGJJKCPLNUQDC@>QRLJISAI?WDGEKK?\KCWMQ=CER:SG@CDFKULED`IC>AIB?XEGMJTHI7=MJRIKEKGNNKCJEMHIEIRNHJDCIKMR4DS8fHUKFKHFGX=AGD6IMJF=EMMGKFSR?IEGQNJA;M^IFL7EFL@GNFMB?GFMGFKTBOIDEGKDLDNMC9H@EXJ_NIIGLEHBOPB?P7ACCBHSL?VGTKFSUD]AGGPSAHLEFXIBL@KJFVBDIHSKKECPBPRIWJP?=O@MNTSLEQJLRAE]FbGMRNGMEKPFITIPOSHQHGNGFIHJDCBIBHWGLERN;?LJCSFQOINDJFFF\HIKGLGNDGGbIGKGBQJGBLUFEOQDHHHMHHQGLOOSIEKIQGOMNDFH>GAQFIJQNGSGNFBCMUNIOKKYDLFG\EQTILGMA`IODHQFGUOHQNIE@OISLH>CHKGRBGLLSI>EMWCFPQJCOMHEFNETLP;QJHBAJPUGFBIFUGNF@AHNOHXJKEENFKKDDDHECFPWENNDLIFLQNLOMBOPQLLSGM?HKJUKSIVNDIGGJEFEGG>@RNLINEJ@SBDINH?ASGHLVECEPJERI@EFF=HKUHTNCGAILIGGKIHQHCCHJIBM@PRPDEGBETQICTNODIKKHFBLB]DNIB@FC@JKITKG=SVBEJAdRXHIH>GDEKARPJHGJGBNCCEFJC[@CK?CT?MRTFSFBCMCO>K@?QGQSCCKMDEGJHGOMBDH;KBFCXJ?N@OPPNRBQAE;PSMR=KPBJJ@@YGIEDRGMRLSMLNGHLPH=CGNLGILJNKIPTQI\DKLKECHNIEBCJCJDAEKDKTMMGMMAHGBQDLMHEJDNJLLBH=PKOSJI>WMMCGDTJCDHDIHAEP@AGIKMDKKH;FCC?OKLOIELRCTIEGIDKNLMDLGGNQJDLLLCLG===CT;a@WJFLCFPKB@IEBT?C[DFHNF@YHVMEJK[M3NFRDULHH=DAOCE[TCTKGKXGFKHQZ@JAIJHGI8HNF@MRHBnDI>MMADBDSAJGEOMOHC3AFKWW?PJGEMMDFHDFAUEEDFWDNFFI8?TEHA:LTH>GG@ENQP>D?CDDSUDOGCMCFD@EBCPE[D\QRFYFPGXG?DAMGE@IPDJBFTDFEDLCXZMFEF?Ia?>IMADCHA6BGPN@:F:LMOLHS_J?JKSQC@JJDA[>JJDNREJOJMP8HHCGCBLGGFFINWGOFIVNMHJQOJHPHCM?GFIGGFCFGVJLCLIQDOEDLLNCJQICKAQCJGLQOKLGITENEHKLNKNKKGFKBJYBGMBDHKJNHBCEHEGILEJJBJEDSCFBILCE>JGLUMHIKCKKMIJQMMBUGCJMRAHHJQGFMBJNZKE?OE=FHBOKGLIMSNMGEQHGGOQK@PKOJKGKKJUKOSBTHNKHIALJJKRJMFNAPABJKRNOHGIFGOGPCLNGFJDPGMJQDJQOJJHMJJTDICORLHKRKONNEIHSMSCJHKB?J[LNIUJOOMEGGNHKNDSGOKVKMESMPGHFXMPTDBKQJTMBKFIMBHOSJNR?FSCRLPEAMJPEFHTNCGEDEDXMB=JHDHFOUTPIJV>NMHOHaYMfDHVKIHFOBQOGMIU[C;N?IQRLBCKLVKD?ISeTNNKGIGBPCNKHHNHBGNJPILO\MCHWXNFNBADE^>JNC?[QK>TReUGWIUQH]CI@MTXKAES@AJWWMKR>KXPPDLRE;GGIMPO`HQGKETJJP?EHEUHOEZHNYTSHMVLMRVRQOURKPCJGOIHWDXVNL?WJXTNNFGJFSKKQJAFCFMHHTZFHFKJWEJS@GYVVJNLKTKSJIINMEN>MESRTBJ?OM?GDIWUOPHLKMMXJLFRSOOPWXHLDPJKLFHHUCHVLTFQNGIDKEIMMKSFDKKDRLONJRHIRYFHIWLN@CWHFKHBKQIDITOPT\XWKKTYLOIJQAI^H^QHILCEHRLMKTHSRNXXRLOKH=PRJHKETGFPGHIHKJKBLI=OJMGNHIKKJ@LKTVHOCHHMHLGJHIGND@IIPBGEJHAXKKLLCHMAGJEPKIJDIIONKHGLLEJEPMNJGJCHICFCILJMOLIKNMDJIESSMIAPGGEIESAFHOKEOAILLLK@FIOLBNGGFDKDGKRLBNGJDNKJKFRJM?GIKRJEMHFSOJQIJKELIKOPFIGBPBCMLAGTJDHBGHQJKMGAFLHH@FKPMOMHMOIFDLIJJALCNHKQKFHJHDCLKHIJEIKJOBFQOHGDCBGIFJLCIFFPROV?CPSIFRBEIP>XG7<:VMZBJDPIgS\FAJLFUUNSNTCLO?REPQQILAYD2MWNY_@XN6F;OIA;KHE9aMH26MIOMWWRIPJKCMF@HYFDCRLLCNIFIM[ISPKDDUIJHLOHIIIP8PKMJLIQOANDIHDPVNI7JDEDTKWGDNIBAPKHFPGSKNJJINAHISGGTETCNJHDKNMXLONLKFFONLUPJPBQDIM>NEOFIMJPMBDXUHKMLIFCJKKARLFI@TPSQRIG@NENHNDIG@ARKIQHOHBWEHRHFCFKIEEPPRELQUQHGEOENJGJIOELFFHGDMGGQDGKHSKNKLQULPNMBIDDOSIDECEEGDHLUIKLMHKLWD?IXXGONMYPYINTKMNHHKNLFFQMN>JKOTHRKTHMSFFTCPLK?BNTI@JG7IFEN:ENBBJ9JLAJLO>DCHI@EIXENDHDPHIDAFRKGSOKA;A?NFDJOH@DB@IFLICBIIJALGK@RPBJWKMHBeFGLKFD:GFLGKDLEILF?@AJMHMFBFH?BOCJ:LNJPFMEC8EEZK?gKHJHEN9BWCPBPO?9CO[MS8?DEALSCUCEMREHLQSBMVBTHBNJAFS>KF?D>=NPHDDHMM@@@LYIAZKFA?KGFQHMDBLHLCJ?N>LYF=OE7D]OAK`BHOJGKM3DXCJTBVRKJBQGP^UKIRFAXHECUQG[P]FKIUTIJNBQATKLBQEMDXHTLOCKF?F>HMK3HOCBWKIADJJETCTBGCFBMGMAKNS9>KHQHHLW>XTOLJKXVRPIOQGPHVRWJSMQFNQMEID@MJJKPHMBKJAKJ=DENAROKHCCHKGFJPKKJEBSJJKLUDFGQHUPPDEFIHEFHOHMSGQUGKHBHGAOLEEOKHNDCHKB@HENSMFDYMTGPJPDIKCEEFGFLPLBFCVEBINGIIOVLQLDIFFRHKLHLX@BRLLMDHJHKFNIJDNHMOMFGQBUNSKNODG@PNIKBUHIIULTBIOGFIBPDRGJLAGOH>GPELBOJTDGIJM>ULFLLDLKLNFEHHHJHNRJKENPOOQLOJI@JEH@KQFGKVTJIGEQHLGG?SPPGRLFL?K@GHIKSAKSMHEEDMCJXBNFVIPJJNKBMDBP=CGFI=QO=WDMGL9KFOKGSQELCJKQIDOIJ;QFAZXG[DFHVJNDKGB=9XFLUHQdLG@DAHLJBFCE@ABMHKIJDHH;E=ITKLIQKKIDEWSJDKBIDMKDJ?MCSQCMRLOBNKMBLC@IAHQKFPL9?CL?SRKNEGNDCB@ULIEBHOQGAFFM^FKHJGFIFN2IAGEL@MGGBADDISTMCNAHcKDGMIKHCFGUAB@CMLPPUMKA9NEHGRWORNHLTQNWID=AFJ?AF@GAHAMII?C\LGNEKUNJCVSFMLDFJN?HJDLAFPWOKKF>QH==BLAGBTHHSH=QP3LICMLAA?OLJUHKO\PKGGFEPEALVQCDPEHBBJQNQJNSEAVBBJDUAFLDMDGSJaLLKAIEFII=CMJALHOHRDAKLWZHBHJGQLPTKTJJEJGFICWCNNJLFJMNIFOQGG>?FBFPWMFNKCPZ=CGHDSFMETLDJRDFSOAIFLMDSGLDKOOCQMNJLTAIPRDAJICDGDTIBHJD@T@BF?YKB@Q@IGUL\HG=GJANHHBNHSJLGODSLJKBLGPCGCNLJBE@GJG>N?OWKKJBHLGMIMYL@OPLHMNGBIHTJSEMMBPNW@JFEVGCCNPFJFDVOQCSLGHJPCBFKEQHCE_RA<4R=;XOD@Q8PO;9JNPUQ??G[;IGFPPF\MaM8R@TF=8JDL8/BD?N^EOL;M4GSMDbDB/WAeDHMKGQG@EH=BKG:>O6NNKNDLQRAPQE2CNQCKSCIII3FC=KLS?EMLSBCPU6DOSPF@MG;?JD5@X?W:kJKUGJX?DGLPPBHEASBFRGR6MA;GJJJINQS\B:ATONQIG@@MNFGKI3cBII=UIPBLGCL[G?LJEKPJAJOEJ\BCF@MLEJRELBGLLPAEOFME?FQPGMDJYD[CDEGTFQKZUJBEG=KGQUITENNNI>GYOUIDOGKHAGVLLRGGK=LPLF?EC=INKNHDKVPUVHGIK@CLISFVEFQM@C@JCEFBOQENDVI?NKAOAKHN8U@ELXGKGQLGOHJHUIAGEGG8FLLSPNROZ_ECDVBCVGO=TKJDTKMDAMVNFDLQGDVEFTNKPETK>LYPFVSHAB?I\PWAI^WJLVEQV]EX\LGJLJPKF;J?XP@DPYVK?WESJ;R@XBFPLMGLZW=AUXTKG>A?I@MH?H>QOTEE;KFILcEJ\VIFOB@ODDMDLSDJBUSAPMAKEISUJLDKB]FYHCRKORBDQC9?MK>@EHUIQKSKQS?J?KQ?M:T7ERUB_VBJEQPI9@OUENNH@>AYVIHS]]MOJDQHHKBAG[D[>CPOCGGCCO4IH=FV?JWM@SZHU6_QCLYMITVLPARU@HBQHIIIAQPMKSDJ@KRGLDDBORVGDN[NLMJTKLPRGWRCDISHMTCIGMGBPFOSKMGSLPKOPEFVSDFMCMLKRLPKLOJDRKEMHGNEOOPKEFEFJJUEHPDSHEGHLDLBD@BJFIHAaHMHKPRNPJMQKLJK@HPHCBSKJIHJVOIEILGIELVdDJI]IIOFIHDKGGHHLLMKREKKTSMGLLDCCNL?KQWGLLISBIJOKVE@NVHFFSIJOTJQMJEMHFNII;IFQLRQLIMCKCIPIC@MSRFLPBINCTPDMNFANDMCHSGBLFMMNCQCHG\PMHTJLGRIHPKPOCONFQGKHSPGTKA?JMLHZ>HIBJAPRIN?ILCBFKDMKJGEP?JKKUFKGZBGHQQPIUNWJ[CSTPCCRGRPODPM?PLGRFBTJG@EIFIDM@G=OIMHPJHKJPDJSFMEOGIENEISLUDK@GSRJDIGVCUECGEKODCJGQFMJHJGJRP@MGKCJOQUGBIMKFMIMYHJGIOIOEAKHGMQAFTAI_I:TKDFLIJCQLKMKHLSBKPQM9KLCJKSFH8GKTSELHIK=JVGLKJIGHOMLVNPSWJILHMKGEODIRBSOFWBC@BNAMPOHEQFHBQGHHGPGGNFMLIK@DTNRDC7FBFNNPJIEDFODF\HQNJDIHKMNBRUNZGS\IFMDICGCKBI?FOIBAOJPJ?PJKODMEHHDISQGLLFESFBEUNBIYKEOOIOMKDPMMKEKMPJJILKJFFLGH>?DKQIJTHFLKQAINAOGEJOPUKDKDSNJSGEBDSEIOHKNLVF?CCFCOOJBJGDNXEJLDF@J@XFCFK?MIQJDKQQDKELIDREPEMH?CNNJHSLDLPBNRPHJSPKOKGFFKFPHFGSHGTM@MKNBL=?LLJICFCGEGD@SKGMIJLIIGJIE?AGKMFEEN>OEGJMPISHIBMISJCD[KGNKIJGRKNNNNEKGEGEJNEHMFHMHIRIJNKPFNFCNFKNE=GUHVPKU?NZUQTHN@MKDFFNELA=JKFHB@GJILMHOBHHELCYABHHBHQIKTBEFJHQLGLDQF@CJIFGLJNIG?JIGBGZMGFRXFTHIJHJOJIJWPHXLOCMOLOFLQPPKBFHGKIFTCJNBLFONAKECLLWGKKNGFORND\HJFM>CIEPAKGIDIFBRBFDENEKGNMFJKIREN\DRKKKKIBQ=FKOI?CSKJBKVVEFMGIMJMTFHKJFJI@LUQGHRNMC=AHOJMHKOjOAFCSKDMKCFFIAVKNQMJHQKJACNCLPGMJJKBKPMUPNFCVMG>=HFBZENKUJKIQQERNCIKEJEARJFMLNILOPJTMJEOK>CDFPMNHUHDGDJRPUINQGPBPIDKDGVHFWGGHEIKFKHNLJKPILT?CLBJIT@ELIMDSLMMFMIQNMMCLPUMJH@LC?LBAGGSFGUNGMRPIF]KDGFPFPIRGNMGILGJL]LKHFEBMSGELJGKLJIHCQGOJRFUMULA?BQFFIPEQFKCQEKQVRQLSLFR@FGRRHKIURHD[ABLJWQCIO@LNQIIYHOGPKGMMLKMTSKJGLJPHHBLLHGYE6SISZaF@JMBDIFZGAFPHJFFMI@?JDVDHAGIDULN@IHQO@;b?DT:KEIBHUUCFFCIN@EKHDMN7SJIC@FLPOQIK=DNJKLGOFOBD@ANMJGHDN@FCOENFDHKF;?AM@YMJENRQIJIJJKLFNI\EIF?BBGIIWSGNALHGRXHDBCLEB>CJHNBFTSJIFSLR?YBGKOZ>OGFDMOKCAMNXGHIC>FNRMDAUM@ADSIELOC@HUJLHNKLILGN@MKNFAHGKGKHPRIWDJMDMPMKS>QDUMOLWeAJVH>CZGCJQKSGHK>KJ]MVFL?N@EFB@OPGFNB;HBTGD:GLJO@N^ICDN^LR@GRRHFFBVOKX?IHHJMBRKGYBHENIHIRQFSMHQSBOVFUDNEFLLP;RMVJNJRLIPGAMJEKPJHPGFF>NAEBHLK>DTJMGQJGS>CKMOLNIMFKKZCJPICLHUKJDFCHEKKOGFHSQHKLGJDTKRFMHGHMEPILFNMLIKHFMMECTO@KXK?OKIKULMNOHMKCVIL@LLJOMEQOOEKNPCOKKEN>TNUIJVMIFEOEKAGKHENGJDMPSAGSF[IIDDSHCJJHIXLHFIQIKGHGQTKEHEHHCDAQFHGJE>JNSJKKJHHHGG?BKLFFO@LIESMBWNAKKSNNJTBVIGHGQPJIMHITHLHGINIJDOLJGFHEPANDKHH@OIOEBDTJVMNIJRHJHEHEKMDGIHMLJFQJAFOLIMRALIGPHIKKNTBDT[COJODCJLEATEGFO?CBNG>PDULNQDDIOMGKBSMIIFKEPNTGEBDHJNHEIGCGFNHGHAENHEJHNPIIDIED=EONOJIPRH@IJBCOMQAFFICPILNDTRGRNMACM;GHXEGD=KBNLAK;KGFBKCDBKDKLQFE[8XGSFJLE?HENNGEPMNFSDJ?FENP?IDECIGC@UDKMH@QMNEFJEQN3AIAGG[QEHQVCLE?FEKQHPIM@@AGIEBMGIMFJDJEHCIJFTDRQ\IMLBGWOSFKS;ZKHF?CH9ESIBP?KKLMC_NVBEP[LOKARQSKHCJ=FCFPAMAORNPEKBENKSIJO>D\NKVCNOUEFLN@DLEJKPLWFFDGLHBPFIGHSDQ?@ODFGXGFJCFDNDJBOEDMBLHGGQII9N?GKPKGFPMIEBGJQGRBQCMLDMJ[J>GPJGHELIKIDH@YJNKISGHHPCGQXDZKCXJIHMRM:CPAKAL=LMJOGNQRHGFGCQWKEMH>PRJOFFWEN@NILRKFLKCJLJBD?AHOMOJGGLOH@?NCIGCIOSMGXSDQKYUCMTXASLIKQCGLGSGBGDHIRB\MGG=P?TCFSICCBQEL[HV>JKRIFRFSADSTDNCCFTPIG?FI>:DHKDOQLQR_AJJRNGHFDOG=CFQXDVKDMAESSGPEPHG@TFIFKQNNLIJHQ]bGOE>?KHCHDGCIG=MJIP:SMF@KNFOTBNJENEPEE^KOJH@INFGMILCMARTHRPEHCBLLCLG@GV@PMMDOLASRKCOOFSIBLFHBXQBOCHNK@@ENICIHP?PIBLJ@E;PNHFKLNENDXTFQFOPMMHGNMNDGGJOKVE>ESBFKELKN?HQSDQROEVGDDAOAECIMMMGUAFHEIF@PLAQHHCRAJFKLLAEODIIGOJCDJ>JFCMDRPFICHFHLTGJQBGOIKEEKBNBKGFW?LDEB[NLGWJTKLDYMVBY`IHJKKB>JJOAHNMCC=JGDIHIANHBF_KEBCOHHP6GEGSNMDSKEADMGFSJIP?BQGJ@BFMBIDfJ>H>HU?NAIUJRLNYNUJQIBEIGMBDK@INGFADTKB?H4G?KAILIA=NFC^GDf?8BEHDFFLY?RKJDKKJKB_BGCHGSIHcJKBSCECC?DSHNMSEDNEFDLAHGJKAQVMCPMIEHNFDLDC^GZPSD;;BNJaGG@HAMLD@FK[>@JL@KKQTDOHI@FDCFiQJDKEEJ@AMKHAE?QOJ@WGTQGRGEOJI7KBMIUNGHYCQTLEHXIFPDFARLLPDOJLUHZI8YPGFI:MYH_MNE]BMO>HOO>JDIFQSJPL@ID?O\DJRDMHLCLPBO?EGUKKBPHULGFFDCHAGQUELPOGM?DK@AON@G=<\ECE;>TLNMHOHUFBGIDI:FO>FGWBLMH>HIJIKHAFC=DPHCLEL>GDIPPIFHDFNKMJHLBVGOMFHLNGG@KHDEG=QEEGTPHNETEEFDKDGBKMIQFKLGKVBMGIICNMKH=KCJKLGR@F>PTHQ?HMIOBBHCPRIMFNJ?JMIDELAIGLHBDLIKHF=MMLJHDMFGUGHMQQCMC@F@AGDPNCIJKKDIVDFDCIUGQDCGECEEQFHMRH@IJHGIEGHMMGJJLIFDMHB=JVGIUAH?QQZKJMESFCFLPFHNCC[UAQGNVLKSSK@N=JRQJDINORMNLCJIOZJWVDCTIOD=ONLMMKOBIIABKMPWBBTT^JLAQTCNTKIDJ>LFRBDLSSJPGSKWQKGJR@ADLCOBGSPRGHNMWEMJQKG>>QGVNBHVAIBQSE;@HKGGLUALMAEQODBIUMOHSJFYBLFDHTTLCKQFQRMQFIPHJ>BQHTC@HGBKLL[PHMNLTJJJULHJK@FG@MPGGRWDFL]GOCPOIELTJmOFKNXKDIO>UQMTF?KVHEEKURHMDI>MGLHAMGAAFBIILHCJIMELDGEE;LXPDSPRTQHESEBQJLCPEGJLIIEHXH>EGDLHMHTEDMOVLBHIIAHGFK@OJOLEJLKIJ>HPV\DH=HPCSHDhIOARBPG:MFAEOJIIHTKGCJUE?GDLPBDE@JCPOA`FGIOZPV?IHEEKIRGGERBANPEEHCFLE@;AIKKFKNUHMICOAGCLHBNFJLKEGA6@CCOHESHKKIEJJFAOQIBIHGIDBDINBJ;?JLG>LPP??TCLIVGODAFOTG==IHLSASABI?NRJBBHNKG=^ERQVH?NENTXYJIX>=DNGFDUIEH-UMFNEFAG;D=AENAIGEICLETEEG@BEIC@OJNOJPGCNJBJDAQDGJ?NC:@HFC>OKDJMFEMCCBHBJNCDP?WIU@PIDHO;LISCE<@BK?RQGIV?KDKH/^@_QLE_T?KXWIFHHXMYEIGFPWDLTLcTN_>CQWNOUPKHL?EZMXJPYSIGTJRTSFQSKHYIKUUOBKJXNEKNWTKJOHYDHOLYPDRNIKTQWKDi[RNIJMBHDPOAE?RQKAQGLFNQ]JNj^CISGFORFQPTQ@ISGOOKMKJTIMYKHUQEPAPQNKQJJFVOUC?UMGcVILAKJSOJKMDKAVGdKJUEOMLWFYE^NUQPFUSNQLWXGJ=EdJJJJJFDQIRLIKPZf@QIKMFWHVRFPLZQRELEQGLPOIFWIT?QNJBILMGOGGEDIVGUKXQW]IQ9YS>NWJRXRISCSPFKJUFBDQO?PCGHD6IBTHE3:OIFLAGMELG=B?IYDUH?POJGDJ=IIPQERG@GNJ@D;IK>?GY;EMV8M8M?CKK:K?GDKJOEHCAADBLIROC\MLYCGFTKOHUU=AICCCU>BAHODBEJ;MDLcCSC?JIBBVLF9MBFRNCVHYVMFLKG1@IAGG@O9WII=FBNFMFM?Q?B?GHMFGSJER`LPLENTEICRQKIFDNLELKJ@LFHTJF?NPDKWGFDFJKLCFQRMCTMFJFHRKFPFKQKUCNHHMYQLMLWJJAFNMILHLNORQCDHNQMJHUXJ?RDFQHK?TCGDECEHNJNQDRMJLJMNGJMOKTGCSNJJHJGCJQMMGLHMJANMRLLKIOIAKUO>ODAMQOFINWJYKHECUTFMRHTNMJ@GJN?GIG@J@CNNIN@WHELK>GFVJJRCCDFLDQPHCKLRMQHFJJONOPCMJLJBHKCJEJIGJLYJ@PMSGFFKEWGFFBVDLJISCJENJGNQO@HKHKJNHNEMLMMOLIIDOKIDNQN=S?OOLGBJTIDHDRFHFFDNGISPKIJE@;?MSA@T;DODIRIDHQPHGHHEHHALJIS?POFGLBJ@EHECEKLQVHGNL=MDID_HVIAIDMFQ@ENDQJEBQ@JJVDERLJVHGOELBMLXPOO\BUOWFMBLB;HGCGKUIFF[OANFJEIXPLIOMGNRC@QIDDOBPDGO>FQM@Q?FFAHHLFHCFJEEHTKIIFFIRENKSFCSTKFDKFREFDK?MTDUEQDZQLQJL\OFMWRK@PNO@OIFEBYFBFJJCJHISEIQD:LFEJEPJOLFK@PU^S?DSILQMCMJQQ=@GRPNIBEOOO?FOKJIJ=LJOKKHHRNJIDDMFNHAKKDFLICMKJD@PJRGNHEWXFROLJQKLPHOMKPOEFKEWLAHPNFO8LCLIBIMLQMBQKHNDEKTHQJKGEJD>@EJKJF[KOIDHNHSEOTETBFAENEJWJJPQXKJHKGNS\BUTKRJLJKHLWHJRNIHCNQGUHGKOLMRO@K:GNF\PKLJNJA:KSUGPXQLIMDUDHM`IPAHGIPKESGKNTHVKUMNIGHCH>SFUOFYLTTHIJKKUMULI>MKPNF?NGVUBGHNVZZfXJVDKIWU]ENGLSPHVKFIPPUMIPHDKOQJGUMFI?ELNWISXATWKOJKQBNGLERGMFOYKEBQQMCYFPCFDGSIB_HSQQWE@OILMKJEFNKHG>[CLLOH>KINLKLSDBOILFUONGH=LNHBNMMHMPLYUIPOMMY=KXXN=EPFLNWEHMDKKRPEP\KKNMQPLICVMR=YELINKOCFJRQ>KAIN9AIBLDUIMIRQ@?FOMCS?MIPAHGKNLTDLWVSHCLJJL@CCJOCOG?LYFPLHBJMGD9JBDKAGULOGMATRFBNQMEDDGDONAB=WJKJNICHDASPWOCELGEVUJGGSAMPTMBFCQ:KJHNEVRCRFFLLAIDOMEGSHWQJRQMDNXFEFDJDKCDDKIAMNINLGDFHGTPIYVNHRTQPQEXXLFMFNHHJRJRJAJCEVJRIJAE>NMFDLMHO>VKJEH\AHGPVJMQGLBE\EVGWHQS?NMEDHJBHEENMOBHIIH?KLKLNOLILDIHOMNKCIRGLGIAMNJAQG@LRCJAGOTJUCQBOGHNJJOEPRHLIKCJIIOHFSMKOJHCGMHL?RFNARE?EF;GQGDIPGJ8GQO@HDFKNDOIHPRLLJ>E@>JJVQHGJ?ECPREIEKGDFOKE_[HICHIEGOD@KPBGGUOKGJKIKXGFJOXGG9GSKLJMGQJFBG@OCHGJEFQG=E?MN:MKIKDDKNPJ@CCWN>QBIZK9KRLBKHXBLRSMJ>DALL=`HVIK;TJ>MS>CCIP5BDBFKIPEGMMVLFE@TITN@FKATB>:PRQLH?KNEILDB@EP:IT?KI`=TS?LELTCCGLNLJQETR>TBNNOBMPHAQD@BETF_MWDCCHOMPXLZ>?QFTPUGMHGDEEG>:>RM=DJKHNF?GAHHWGINO=D@^LIO?OLBSGH@HNBRL?BKHEGSQIRDFTCI@=I=BCBQGFOPHBBOLLJANAGT=AJJKKALQ;GL>NAALNRFPLELKKK>SQDCHJNAaQDcFQMJP;FNECBGMFRFKP@FTIKNFHZJBIPGQPGEOKNHEAZEGQDGBAPLIGKK>SEEJEHJELMH@`HKDHLWKFC>HJFE?MGEHDNFOQGBJZPLY;KHDKFIFKHJBCMPJFLGEQELCCPFID>PLNAQGNPGFKMTQMKUCRCEIMDGJJVTDPDMHCLJIKA?GKDHH>JL@DKISKMFHFFODONTMHJCKMMFEAUMGJJOLNSENGTKBKBLGPAG?GHQGOBEOHJTJFOIDFBOJEVUJEIHJDREHJDNB?SR@GGIPOKBKIPJHBDDC\PIBGCUVOULJMMTCMMBKRQQDIDDGL:SJCLRHPSCGLALH?JIJFNF=CZNGIBHFKGC^PLJKJLQMRCGD?IKJDFISFKLNJAAKMGK@EFHGgKNA>GZTEMEL@HFEBBMMAbIHILFFGBJQQLHCGFMSKAGAPIFCASLDRRIKGEFINFICDHMJJQDDHFNLHKGLHLND9KGHQPLIKRJBGPHSBPOJKLLYLJ?@KGBIQC;NPIBMQEGEGFMKCEJOBMCKJJJIJ>LHXCQJPPNRBAMO8I>HUNTPGNECNDFGHEENUAJLHI?XJR@FRHNKJDELOKAKHSFQPDLAMHGHADIKAMFMVJG>GLM@JNVFDOWODLAEACBKPHY=QLLI@EHEGCTGLIPDEB>IBBHYBPTPGJBMXMCKGIANGDSPIFFRHUFCVNLXBTSAEDCAOVCJECHHDCGSJ>J;HUIKONIAXFEMKKEEFCM>QIHCKKKP@LDTMHWHJBJJHK?ZTME>CY;fGH;RR5,F]GG=TK=RHOKD3LGB3J7ZA41GZKK6R=JC5M5\:HMEVJRV`68JTUBNNCFNOSi??MUA@D@J:?JPNGGKJ=?NBP1NCJXFF9EJMBJ6BXGHRNNMGL=Z7?GI2KH=NCKQKCERCF]SMTXSVGJKYQJLOMYM\NYSXWDKLQIFZMLVVJTUSRKIMFULUBTRRPIKP=KNJOG?MJJLLNHEHMLCMJIJKILAQBFAPNM?>K?JFILXJCDHLBGFEOLGFDMHCGENHIDDTOXAEIFOHEVSLEJKGKVRQG`GOMORLPLOINHNFPIGGJR>DOABFCGYNMNJMEUFE>RJL@BTOQYQSILO@CHJNORIIKQNMCKPHCN?RBJHHWDLIJKQFFECGSGGGRCOHSMUJFK@AAEKMFEEHEOKMHKYMPSHKHJOJEGHNLQFSHDBUIL?HQ>WNIIHMU@EJiGKFZMLBJGGOEQ@GERSRJKJEIGD@IDGGDN@F[\OYSVA@GANJPCLMHLEMQDOJELIHFKINEKSDHK?HDNIUXK@?NJMBOLK>HANJKBKHOTDHEGJQFDKEENMFBY?F^QDNWSMCYMHNJFEWMHeEKUNB;KLV@EOHSIGMQHAILHJGGMLLMJOFL@TFTRHKLSFINJUDJDESQK]LBCPRRLPVBLHBCNGLTSOAGNE@AJLMPBKMHPDFCHHESNBK;fE??CKNLCFNJX@J?UPHVREDPMONBMDPGNLEM?EH^>NHWE=FLKKNRRZPBYQQGJENIQWJFBHGHMPJEBHFMOCHIFbKDLFHSJRMJCLHKBKJSGHCNIAEFIMFKJOHOIJDOKJREGAGEBTIEUEHBFKEAPJH:@G?DIADSJ@QEAFPKIHPICELCDLNBO\APLGHTPLPDFYJJQM:MLJCRHHFJHRKKFVMONMDIPK@GDMGAZPN=GHMQF\GFHBEKL@LMEDJFADH@HFMLJQCFDK@XLQDCBRJKGIPA?K@]DGLW>KJOD?>QBGGFAAIJREKRCFEQKFHVLONKDJPJCQJHIQQ?JCLHBJDYMGETEZFLIOLCRKEPFQUCHKBQL\MCOMHFZDOFPXKVH[SXBA=IGTPMN>BRLHECNJINIBLJECSI?@ILMNEOH>HMCBJINJLLFXQNLTSK2IJPGLOCKCKDSMIVDLFL?KNUQCUQESCLDIMKST[BSRKIH^EEQM[DPRTKNRK_IEEGNFTO^PLKNILDFPKQGLdMKESKDCIQHGF?G[LJLAVHNQBRBRA=LKCPRCPLALCPGZLLN=JGSOFD=HXNECF[KWEPFKNKQALOMIHMPMF][G[CDQECHQBMLKEGDFBLWYIHJQMHEVTGNVLDFH:MNIFF>OQHJHIA>PEIKDFIVOF7CHEINLLFHEMFHIEKSHFD=RD=FRNFFJDBLTEEEDOPFH?DG>NFEAJRJ]VHC>H@NGQHPNIADOWMLIGONAEBHIIKKHPHCIIELGBB>;:@JJRBDFRKBMPDRP?OJLLEV=OOPCHMNKGM>TKMJQDOZLTEQIJI?HEFILABACBSKSEFDSKIQC@^IFFKKSCCOZICHFGRROIUPCGWBGJCHHIEDCQBSGENIQQHJ>T;LNSb?QOHD@=KLRMBBFRP?OKFDQ@FP8V>JVFKFDDFAMQQMEFARWKKNHFACHITCFSFOAEWCDGQQ;ILJILICI>LAIGAEITBHOLAEPDUIDM?MHLQ@@IBLIDNFB\HIJCJINH?GHQ9MNNGGC?L?IIIBHiAB=MBFUJFUBDSAGEJRPCHHIBL?NLJJKKPEFHJDEUODHKMHBLFJOINLFFJKWMFEJNIKKGHDIITPAJ:RKLJPKCCGMIOBHOQLDONHL]BLE;LBNJQAHKO?DBFL@FUJSKOIRRDPMJFCVIGBE[PJVFCPLDLEEAMOPF3ZJAQJ@>B>GTLGFLJIB?MOM]EJGM@LBHOPZGW]FNMAPBHGNGRQIPWJ]KIQMKKO@ECHGF@GNE@EIKEGKIHZCHJEFHLNHLEAICSPFRHCO?\\ELlDTFMCdXCIHADGI=>QQTMFSWDFGO@INNQICCPLFYCH?QMGBNOCDSABHAENBJIZGEGGFJKHQGJ4?YMPQX>LDOHDQMCHOIRDEB;JDMICCDSEL]NOsBHJJHNMESQSJEQTDHKBBBXKCNCIGDICL>MVMCNIBLGB]DQ[BLCXBLcNRND9P]UKHCHOQFAHPDUXLJHIDIHLGNC@AIANQFFBBFLHOVNOMEUAHKLITFVARHQLAOGTAIBWDQIXIGTHJLGAEEGGPKHKVNNVGYHMRQDLJMLAG?EVCRFIFNQBE:LGLEPKPEITONQAORCPPTMHEPKUMRPLTDFb:TEHD@ONDHDCEPOGFFGHG?WXH@EKF?Y;KUEE\RXJOSMLK>KKCUS9[HSEGXXBHR@OONEJORELPCBHG@GEP<8=A[KBKH]KJVGSFGDGACHJN[QJKBJCFKCAEKC@GLQAJBQEMVN?BADY?RMCXONLBZIBIDEVIIZAH@IFWKUJUJF[FVKDFEJLIK\JGLCF@\JDIJ=MIJBLCIELAECaHPUJLNLKMREF\JPKHHHDDITHFMH@IJFP>SJLPFLOQTKGRH?P@PQKG@NJJBHFKP>FHLEGCQJNKSMHRUNSWTGNOKHLHAHBDCRMIUKOTMMZMFKNAFFKPSJBMOMUQHQQLK^@FGCGDCFQdKNGNDSFD[TIJELNCJHDX@SDFDJCFJEHGZORJELGHVDFD>ERZNOI?KQFVHEBR=FHLEKIFJGJFPPBI@KFDINOGHJCHAXOOHCNER]BHHHNTFGFLUB@AJKGP[DGOKJNE@IG@ECIVBAFKKJSJTEMMJJJJOFRERFCZIFJ@JCNDIGKISADPGPGKDQPRNMQMNMHNEFYDB=4DHKK\CGCRWIMGABFEI?ODAEBAMG?DQGT@FMJPB:;RNQBDH>KENNEKIKGEILKGCEUQMOKGDLCH?Y]KJEGGKCP=C>JJDLDOE@CQUDLHZOMUCSIXJIQFQ@HEN@QI9DOCIIENSOQBDGMFTQFI?EKJPINIFI?E?OHPJHFRECDBIR@LREQQYFDhEUALJOMRRRQIDFRQHDICHEFGJGQQGH@IARO=@DIHNIHJFQOEFELGMRNJHENCDVMF?FDRC@DNS>MDKA\YE?J@GUFH?TKJF;?HGQPB@;JE@BOKDOCCG?EHJE=N8MHXI@@SR\ECHGFCNLHFP?RKJKYRMEANEEGLO;IAASDJSAAPMEMKOC@JKLDAVEDFLE=KA>HDLBEhLFQALMILJFFD>FNI=O;ED]FAWETJFIKE9>JKBBAMXJBG^FCDIDQS@QLSUEJMMGLDHED;H=I>PILUHHEIJKKEECCLICEALDUTNOJ?IGJMVJP>SPDOUQJN\FRV@FBKGGCC?KGFQHPFGDQIGDESEKOEIFO?KBNJDG@MXDDNBA>MGRLT?HTIFHFDCNEC@EFIBEICBSLFLCFGRI>NJ?JEFMN?PKFAFHCIKIOKDHIIEMM@@ICDMDJFGFLLJPEPKMDCJPALPNFNKSIHLIJPBHGQNHLIONKGN>DJJKLBDHMRMFEHHPFHCJBHJIF>EHMRFHBDMCCCUI?QNGHG@KJCSFHNKJBLMAHGHFFGKHSODCGYLGSCAHFOEOQKERFHFBBPLLEWLMOMC@PJVNFNLG>KHLBOBMPBMGJLJTHM>RGNQJJMEOCPRH@RJOF?OOMLLBQHEBEKSHJAGLKJJILEILPNJPKMHYFGLQNCMM@TDELEPESLILNLFFER\FJFGVPPLEVDSDREPO@>KGMSQO:HPGY@BMJEJKHDMZKRH@IFEDS?JPLJKFMHORLBNGFR;TUOLKMGRNOTILKEUJC_NWO?CLKBLIOOMSOOBLKJLVBGYHIGEKNTL@:LFBNRCEIHIOHOIMIINJKCLXDLMFILOQWCLTFHLKAKLSGJG?EMKILJONFEJG>HNGSSVDOK=ASUBMAKLGMJAGWIJETEJMMKOEHPKDC=KSPXPGJIHOGCABDEUGFEAEQNDAIN@=MR>H@OSIHKNMNDKSABEGFHJKHDI]1MDB0VN:5KPM6MF@LE?=V8XZHHRTBA9IASGL5>1O;28KRXE3J?Z@3G=RJT=V3IPIMX9B/TLIF>RMD[SFF:;8KO<9N3FLQFUCMSBNFJTCH:S1?RM?RJ8PQH:G09GXDBHQM;AJIO3BKTUN<:OFP@A9GDJHI[^GGJ;PAAG78JV8ELTHL>BB1?K,C9>KW5DWHLQFDNI?EJIGBI?GHTLGTBHFOFRMGCCH?KAOBQIGGXHICEGAJKHGLFGHKEMNQGVMGXQRRDHFHGKGSGUNJHDCCRRMOBEQSKGBVWFQ>[HDMLOCJL_RHCQJIFN[NKGKDKNNHMUFFDEMNRQKJN\HDIFFMN]EHJXI[BKYVIHiFDHN=OIHGGNLR@BEHKHEMTQRNMP>IYHMKSNFMOHOXHJX@JWNJMIMFMNJHMFCICIKQOEJAKJNJMFOMSDEINRLLUHF;KFLC?DOSTMIGGRDKETPH]BRGJMAIBDDZKNOJBQLPJECSALEBPLHLIFNEKGUFCOHVGFDFP>F?C]TRJALNJHHIFJQAJSFG?:IS92QCKWMNXHERJKELNFDWDJMDEDQLFJCHHIDJJKOKVD@?OI@HTG_EMNZIOQMYBSOFNFPOGPPILLLCFLAEFMJ>ATGEOL8AMPFDCR@TXUEGHDIR@DM?FLHIXJJD:JVGJHCIKDGMNJOSSCFIREHGFKDCODJPHEGILLVOKHQOMHMEMFVIHKWIIJKIOJKCDFIGKHXKJFIHEIMDNKFEAJNQDACKMGDGP?PDOKXFLBHIKNHLCIJODEJFNIIQIKSCHQOMBK=OFKMJLJPJPRHJHBMDLIPPMQHXM?E[JHFIE?AEINHKQGKEQIIKRIPHREIBNKDIDENVLEPOKI@IHBOBEKDNGOXKICQNN?LF?PDICPLHUL>ISKIKBNFEECGGSIAFA=QKFFCJF?JFKLGYHCMDLO5GKA>CKDEB?MGKRPHQLMJVLFIMA?>IIHIDINKKEYCCHSENDBAERCRJKNCLMG@@SHHODBA>KGBFSCCELAHKJBGFFBU?GRKAAIIQCFILDMHEICDDIKAK@TOGFCKFQRPOULEIPEDHJKJGMDKHLCAIGGEPCGFKTWDRNGLKGHCDKMDEGA9NIGMFGKFGFDBCNMJHINBJJINTJCRCMNI>EGKIBGGLLO@GQHNUBQU?BFDGGSQCI:BXGZLIEGIAECLBMJRPBCIIDBHIDE9FG]EFOHBQPWMFGJE9NHH=PSRFKMAZI;HHI>?KBICGKMONGHJFLGMPHLQPIBGFTHLLHKIJHHD>LLPHL?DGFOR@RDHNJKF?GHLAHPUFOXJHCMBGKLUQBKL[QNGILMKF@?=IMEEQRDDJPJLIVOFIXHJHOBADX=LPTDPCSIEUSBOPDGAJFKMNHEIWFCSOBOLEEENOP@RPHJHFPUJTNDGEMMCAPKMIHLGQDGJDHNCDEOSQNKFNEKHMZ_GNKREDMPNHH@G?IJKC?MU>FGKDBEG>LOOCODMFAKJFFFJJEQCHDFG=B?FDRQVHEAKEOFJMHJDGJTKJEGLLBB[NQ?G_GHHNIPKOBT?FHGGDYRPLH>JJYBMEO=SA>TKMICLKDJLBHLCGPIK@ETKO>DJ>JSLJAPFGON>EHEVNEOJEKEFCIGHODYLGIGHVPI?IBADGOQGBLT@ESCDMADZAAJKLCHLPF8NHUDHQ@M^RHVGDSFBFfL:GJ?7PJ?=EI4;SLH=K;>HU9G;@EGGLKNHd@HHPcEDB;QE@@G@KCIZWL=7;EG>OR>LV>T?:FDAF7@KQ`JGMAHIO8NHEX@IHHBLC;J=P7RKCHJS=ACE8=RG:NJ]RNDAA@DYHC=\DZ@OL6K9S;8B;ZBPCMEEG\9EUEK@HBSJF4C<8Q9B8]D>SE-7G2:I=<2gQ<9JJL9NF=C5H_VBR;YK?N:F?DC5F@C5GABA4F`@LDB:5LIH>MKnGDYH]A?GOGeG)H4FLJB*9cHVIC?IDPNJ<^H361AbC=;;B9@WG8IAKAI3EZZTFO-XR98=.TBEL=3XGCN?LACQ@FH(A>;B$4CA\9AhHD@?@E@J=OWB&FI_WAQRTGMPJXXODhEKdHN;RKGWUPGNWDDE\F6.NHTBNMIIZL=?=M?JJKG~FDTQQMGKH5PIH[/PN>QB?WYXHHH@,>AKGJE=IRbPLKHGSOT9U?HAWL6CN@BTSLPGWCGL`AJNT]DQ2SUIAOIC>MHK]PIXQ@CEFAA>ENVOJ=CNBDLON<>F?4UIIf7@J=ESB8USQD8=@G;J_DKPNAC=DH^F=g?L=MBRBF_FA>PRHI=WDPNUUH5Q:INGMGVQ@ATDGTNAICLPU5GI6HJQSKEK_FN?KNFK?E;]-@?IHK;GCLQFLSXGUGHPfMeQnDAI@T2XLJKLEQHT;HGOYANEWID9N9GVDGLITFPNFIZA9W\A^TL>NO[QA>YKHCDZ\DFH:FWQeHGJGEYFAB@RDUL?CGNDUWN;B>;BOR39ZBTYI9YLAK7OXKGHRVYE:J9DbBC:HFK=GHIK=CKBAVHTJM_NBLP>Q=M;OEYHKHJHO?YBci\0OCJMFG7JKLbCKOTG=JH@MEE^DY9\gBCPbAINTKKQL@LCQMEXAJeOB9RRU@5GMGUZdJSPXUV@CKK^C]HHA@ERMDG/KQMS_DeMK8A=MEF]HH?M>O]OH_HJURM>FK=IWWBCG6aUF?Z>XWZ^H@CSSZRES>NURifRJWKQJP[?dH8@YHIPAgDDMKIQO1iMGOD1CUHMNvPWW>RPNC^L@MDSK(HB6LMHDIKHP^L_IO^:\5EaKVKAKKFKDE[?ISNLIHJIVNAXAO]DE3OM5VGFD>MM;QDISHIFQe4G?:M?DUZC[9<;P=HM?SSNFeEEGYC4UFOG5KE[c;OKDMFVILNF9BPUTZFQ?89PSZMJX]XQHNOLhDQ;^UHRMPGGOIB]FJ\S%ZF>DU>N>JHGMSRL5CjSMSDZIAAMNH9;JPAXJGAD5-VGF?9DHS?0HZGI;M=DTNDVLHF:FOIAWYB<=MlC.:OPB9UNKPIGVYPHSQF:1ACJKSBRC=-N=9HHIOKKCPDA8DLQK@<>;1\KO[/BQBKAQC=BEDDRAFLD2B<+9;?QIHL7FOiKRX;>;FQ0LDMG>OAMHL^SPL?MA?K_?VYM9UB;??48YH<8^:KJHBBDHJG=?DBQ\;=CPFRL>FFMHA9NPHAYPHFHG<6H@>O`PWLMPEJ7C@=VDKIANK=@>YXDKD>V3AEUE9DLRDKG97FU;?APLI@LFGRTHCHCVCG_J7;2AOIKFcSIEBQD,@6C;AI?C3CMGD9UCMEKGN9EMP<=JPWGDCMDG5CDH=8ION@@5MUCH5CDE1MEH;8@T2,QIOPKHDRJ=8INE:@Z7b9TDRDIHHTYRYL>8S/FT[:9DNCPKD?C@YWOTNJi;CLaKV3Oo@A?J@TLMTH8MDM4RGJ;MPDGC4@S5CDQBMPGD>ENWCE;VDMI>QL=FbNO@FSBF69P3OCK<_\DJNJB=@Y_\]IC?HRKR[PF\_NLS@KC9CK=aHCG\\FJfOGELLV>I^ELKFC>QP\FHSdPT4R3GC8GAKICNIWMBAKPPFRB8AOTN=DE_;6aJLFMFEKBIDWMUOHQ?@NBAM@PCUEQNX<7KICTPAMS?PADAIl?MFPMHRSMGH8K=DL9E==O<5FWELUKWQJRJFLWRKCEEJSD>>_JWSDLCS@RN>OKFJRKNB[MbbN?aG?FEC;D_KS9M>&RI>OF[;@PAJKJKKUFIODCCKMC?MGmDINWW>FLOQS?JN4N?]EUF?IP[KBE@HN2C<[EGBX3K<[GKUDNK@=/Jk^ANCMEAMHbQMUG;E:Z>GKTEVAbTJBL@OBQ=ASR@FDNDG:VLSGd]OHIMCJFOD>@LMKGF?SIF>KEC=TLD@7CNFHHDHPN=LH59YB`FR8BbIKSFcA^4YD`^ROHUQY=REDCACDZB;ENSI@FQLC?U?8LA7ND6NPBBF1JKFFSKIR;[EA;QT^H;GVTW.NFKF?ILP\KBRLDVMBLGJBGEGGFZIAFMZ:ADH=JY5BN<;PMPC>PAMH9>KKE?MW 9HQI>B9QBI?OUN=UAZTDKLNCCD;GDFA=HFKQFHP>gMVGDHTDCUUHSH?C@::QDCeKWL]RG5HEZLEK>Oab@43G=IFc7)WCRHOLBHMLH\2`XI[VJDJYKHA7H[OOQ9OASOE>6CEPPBDOR=FGNOMd7D>N;AI=EMHEAC=DGSP9INHDJUU=VAN@D[KQMONSO@=>QCP6ZLKMW8D5@YJ[I`gG>G8EB?NCL9OH?UC:RN`ME=GUC:R@WCGKDD:?ZPO6YM=AVFHD9MDZN?BARE>QX:FSURM6PGXIGT[7LJYGOITD@?eFAR=SVGS?EJBLKIDI9I@SSDHHA?W@MKAQ>Q2QH@\ADHDAV:>DBO@CAFK@Q[F?MHGIMBKIDCUMH:K@SIVBGLFRWWAACGQIXDUJ9LT62L<GVLM:7@DEA9H@FCHHH^@NK]BSK,C.LEKBKJEGSXHCBDMTD@QK=]CRM8I8FEaEDaICN0AHGB9DO?YEDQ>AOA+SESL4eHJAUKDCECI:QFLM@LN6HFLIMKKGO?I6DJLFCC<1F>HXKU?MBVF7VB4OgHEDA8IR?NZ4B:=J$>DAEOUBLJKOLSLG=H>@Bq@6L*KJK?`AVLJJ;NNV1SEKdLP=IIFZHOA:D=@F/_JTJZ9GOIPDHB@6ZM=OD6gaH>7AF6D@6GNKI80DaJSF6UC^L47_^e`DC_P9C=FDL=KNJa7^PEJ:P::[3NK;3DG?KEWJ;HENl`KR:ID?EK^D@X?CBCPK9ROLJDCHCYFAE@CG?LO?5LA8B@D?5B>N#L6EDENBG6=::F-LQPH9FWE?QLYQS7PJ?6DGGH3NV@LAIQ:D@FRHQM2QNRN<@MYAKFJR'.EPJB>PD+SdL8DZMaKRKEG4EIATPDFBNL@F=EVD<^FKQNM9GEWHMXOP@C=CrPMOY@H@TxPJSPFRT3EFHXCSBCLBP>KBI?HKB`IRP;G[NKODNOFSJOdJlCTKPMHMFcAT?SMGNFaDLJHIKV[_GIGEGKG`QHXMNOTHHPAJDs@NOVIELIIDeMPNIMCNKJ8EOIILR<>M@QXPFMGVZF9uI>LIMaEVGCCAPQeHC^LLHH?ROFBOHHEGBEKGAA@SLDIAUFJ>L>J>@?>?;J<:E8A2LNNDDSJCFPE@XOOFBGQR=@>MQGMYE>HQVEQOILOWAHI9NBIPBPM.DCW2TLOEU`LU6CTUX4C8Xh@FGGD>@??(P\YULFF?ABGeZADKSN@H2>fFHGLLI#Y6X;?JI;@W/PQYVOG;AJR)pU;CECWS[A>]%VFK6WZK?D;bBDcT[7;J6IIANUUB(HNZ>MBG@M9H3K;@VGLpDK=V@;Da?4[KTRGRJDL:C4[LHNDBMEE:VDEGGDD@ANQMHG@vQD;2>SHU\5KChVENE7I`MA9@DPKSSB]iDRIH=7JMfY7R=WJJQBI];RI`[EASIXHJ)BJ;?lKMEDQf/JS=_B\PPHQMBTDWSNBG6>C>M=FYAlTFQN==K@H[LNXDPFAQRNC6;IMT@NPIKJHFLPCH?CRW?NUT?OE5M8KFKIHPDJETJI<\YDLORIH2MDJC1:<@GIKJ;=5CP@IW=KOHME@M[>6>O3NFEANLNUGJFJO9.XDL3MIB=FTADE@R>G==DD>VKCP6P;AELGF8>@[BIAPBK=OAQWJAI\FKAA=;ICUL9;DLA9BPJ=DN>9FGFE<:bKKB4ICIH?K;5FLG9CLI;KHJMfBB6;FC;NEMSBHI6NV=]8EGKI<@8TFFC>>]AIFEFF=I6QLJI@C;GLBBRHHFBX5OM@AJlLTAOYTGCKDMS5@?N@WL];?GC>IGGk*dFKm?E>AFAM8Z;N=9B=EUFRRA[89SBG;;97E[?FQ>S@EUm=KBGJQ@:FJPD[8U@CXOBM@M]MK89HHU<_LNBVXOOCMJ[=HE3>@Db`<69CQIKFFCGf9XC@HA=H8UD?HWQ\]J+AJJ[Z?*7@KQ@Oj?H?UKXJJ>GEGq}QKJJ=BSOGYHDRZdWIJ`UUJ=?9F@8DNNBFRKDTHB:J=]GFNSQQ9MHEQPDiTP7MG=;O?;CN=HXLM>RMjEFIJIOKJAOTH>MFK[BULP@DF@TMPKKOBBV[PH?NFCFMQPCKMMMB@IK8CHEZCSM>S>OYMESARZDEJaHOTSAA\AGNm?EMEb>KYVJIIIIBc>GMH7JJIMZHR:h7M@UAMeL6[FLTOWI=VWEBIPOGLQU]KOUBK[BcD9\MEaYJXLPIVM:SRE@GHHI|CGP>N9:VJNWNU[=N^@TLLSR?XSVVMLKKRQBEZIT@QK9WO]NOS]PII@IZJCDI@=XRALIBINIDM@MW:X\WN@TPIXH]@QQ8GHE_8LKHbQDFJPUlRS?CL=@(LCQP>DPYEKZ\KVFVer\RKRWOL9LT\MNFWF>6>SB@NS$TLOIKQPD?HIIK[N@BZQEIMIFNPD8L::USGBT=CE5E@GCSM>H@H;RTPASGkL=JV=BGGAEJD;[:G[AWYJ@WANBDQMXQ2M>@AJOV48B:OXMHJVD8=NA'6??AUG7[7Q:IX@B>SMKI5?MYPRAKB?CS,IFN5KTBOCFCCBE;ESdPMHSFZJJLLXFC?NF=NZH[\CZHSHEK>^Y?EBNQ?BB4WLOLEQETI@JYPF>=VD7?;JJFIBJ6FKC^CE=D4F3IMAALPR=>KHFMOPDEA=AZM>C>BCI6RHD:CUVU@C7CC@N;HOJKARSG?CVHHGBAZ>;F9A?::5UEAOFG=8D8KNBGKCO?=K?AQCLIAL?MHR:@S@EFB:X6IKAOIDKJID\SPKFBIHD7?QUEAELKRJNFNKANBQfG_>NQAPWPNOD[VJPQJKBGP?ROZ[INRVNP@Z[YPDJ8VULYFDYLTFEB`ITGFO@DOJLDJJYTGREDJUI?^[MSNBPNJIHAEJHBBRG7QFORKBN?MYJCBBLAKGCDIJFcAbCGaYHSO?TNMBNLa`HQB:;RUEFP\G$_ODIJBGR]7LKQJKGKDKJVQ>IT;DOOL[YI?@:EE>KGHW;JLE=C[;CHMCDN8<=FNDH4\FAGU[F?OCNBV;bJLEH>QLO>nJFJECK]NC@7d:-QFKH9HIIKFMQ1BRC?;LGD@HASP:N^YM_UTMRO?KVI]^ZSJLKZPER7IN@@faR@ZcQVO=G/[UGHbCR?;HHMMOZSO.QFY@2BRI[69.MO:nJFDGHQB`IGYGiCGLPAMK@QI=FFQRV`PjHHDq2L?QIDN8=UODJ.FDAGP9+W^ODEH:OCNH7FKMCIX@EFcMLVGC2Q?BG[ED?[8Q6>=LUUM\GAZ`>Z=AXNAEBFDEL^POK8d=LOdBLFCK;GDMLEEMTCbIC8F?N=DXBGIj@GMDLbDLCDsZELMH78DPRIR.UNUHMTIII5L@F9GLTT\Z]EK8ZDSYG>EGSWDJ}YDiESO=3QG?GA>LOKF`PJK_BD6?D;XTBQ7LF>B=KQBEN+=HFP<:GC7;N;bILIAAGGCDXG8QEEKm6"HEb4?KII>>HHQ<>KHgNBWJ7:@A69ER=?ELNA8RFEH?;9I@;X]GEMRIMJSDG::TFT8LIME>;@?4;FJKOrMRE@JCSdYED:4,G^OIIWUILKIEI>:=IM@?BMJGFD>S6X6VUBPJ;P][G.CEB8YDITGD=P>D@B9EMDT>CJ>=F6>U09JU>JIFNR:QJVMJ>TQ/FNAC=JO>K5PMQEV`@JBAFNAK<\H8@9HENG?MQ[VGKIMGJ@HGCUEQJKKCM@UEROHGApDV=AGW9TGPH5^TE2ERBn@@NGL?[I5S5D8DU;OQ9JSG?>:BFK8D9H=:7L?CLOH9JC<+COGIJENX?CICFDAKH`9H:^EKPmOJLBFGN^;:HVD7@EHOMA]hPDLI?M=>FP;@QND?TFDHU4OKJFY@SGWMEXOFaDJ@AEBQOP^9TC=^PIEKRDIFPRJ\F`MKJ_SJIRb>^HKPHGIY?JQXKMGKKIeETWIDCJf[BOJUQ9\VUJLRCEFMCQVCNgKE[]@_aNLAGSgKCIQ@QQFENRAA?OOJONQGTGE`DLSM@EFaPVFJKa@IJ^:FDSLQE@VNP_@=QBCM-BuCJNHGJM7F?I]I[3E6V?=LD];SH@^G0JY>DB?`AJQpCGEIO1V;XG9BVNF+H1[TDM?D1ADU<QLPCE5>=9>PIYKK(E)JWN:IKGFDK^<9KIMIF>[@ZP:jGMDI8Pr=XQIHFIM2LDSMVQHG>RENBVHTTUH9CYBBDK\MIPJEEPKHKfEKDDP9RILK:D>LXIH`YN@ZDZJPKPLHBQPMBAHVHFMA[MV@YFLHBO;QGCNVLHHBMKHRAXUA^bRQSEDLIUEL?WG[XMKFIIERGHKFFQAJNIOKR@TXT?QFMUP=YYNW=DXEI;Q[JOK7RPCDT@NXE@MIRGX:gHBM7RG?UC7AYE>;>ED?DCN@8NCHDcTIKHFEL_I;CJH@PG>\AENKL?X?>PSOKMKGBP;FCPHKFK`MGH@NJATCLJ]H?@8CJFJTNJ@IKE>ILHHNBTBPGFGdENQ?@L>:KH?IXLHSIDNA;@_EFG>EJTE?@KNZLEZ>ITNAW=ONJB@DAL>TJI<OH>NBI]K;:OOJ?F?VOEVCKLEDKKOaNTAOHTMTQ:SLCPD<VOLCK?Q7KKMP+DHL?Q>I=MCZ[LNNGFASIERF;DGGGT78AL8AXGFE@NfPFKJGN9ACRS)@OVmZf?HUGJYRFHKHYMmNSZP?Vm@NHCCQJ?MC8bBIGCaSV@EBPEBbFC1O;SZJ6AaE>FFJGGGPR?IAKG@A4BFKSLINIBCTCFAA;;KVECFAA?PHUP<4E>NA==P;9:5>GHHFN8A:4HBMDGHNOHCEBBGIAIC@=;HGK;62HK[BCQA=M=H8BRNJEOECNSP:,CZ9CN?1DH>TH>R=8>QI8CEEGF@4K>EBH?M;>DFEJGLNDC@=E.JADNLJJD>B7WM?XF7W=-DoWC;LS[?@STM@F>DOMLNOQ?K:397DF8aBO>?KLXLPOKXTRB>FLNN\Z9GGMGFJ@Y8MMMD<@\VLn@;:JQIABFV]RCDI@O6H::9PKA>CRE376UY:DN0G=JLMJKPU=IY8BeV7FA4i>>YGVXEEEF]OIDbR1PLHLH:_K?I@Y:99OKE?HCCO?Q>NKGERFcEQL9E>ICK@B:INDC^K?OTZLEO=FCIFJAKjDHEP?=JAeNaEYB=R9[\[MQSCbLCN<>IHJF?QFI;AFNHC[UN7OUQGZQFK7D9ADA@I@HUJTCQ@@DK:U6KTDHI]GN7@NG@G@MT?H5?DDGDVLJR:J=\EE0;@;J[AJKF?FEGLI:LLBL>GK>MNMUKHC=8?<>O;T6UKIHO:V;PGGFH8:AORUGBORDGE9KG8n2@JDFK9AB8LJLJ?S=HSNEaHLJCB?QGDKI<<=CBJpB@UCN4IKwNVIFBDEE@;8HEJI1OBG@P@E?KK@CDAGDQIMTKJYKYBBIOJKF?GFUFYPNFYCCB4EC?OMO>KCIKIF/J)^EQKOBA4C_U6QPfJDM@JOEKHCQ5NC:AEMb?GCHNGXR\N.P:MM@KR=F0KI4PU8LLRD:8BJA??A>9I>BWRZKFV?0IEM@GVIFQU;c7?RI73M?O,H6;4DLFCVMKDKd[@R?BNFFLB7DRE89:CLHICF@J<"I;HF8EISU>YPIQCGHQCN?9SD8;=LPOAyN3IFES`HBI@_fk>QGJ8KL4;>;NA,8JTGGRCZUJELH=QSF*=:s0GZN]ZJZJJ<@G==S;EETFA WFL;H7BSIP:C?GB_:AKDD>11T5DjSD6GP?AKBH?URD<]KTR^7CRCPCN3RK>=3>KN5KM^66LEBIPKJAIF1PA?J=iIFHI^]RGTP;EDHG@4gCF=92NUD;E=FCB=TPCEFGJ9CVWCS17=GG@HM8HN[6LFHQ>FF@KZ=B>KT\J>A)1CG>QCL:MP@DHFDJS8O@L`ESdJ<(D;GB?:9P@K:HLALEB_;[]^HAGC=I4M9KBA6?OI?E>L=9@;@A;45UJRB;BEBECTGgK<5-M@@>GQ;CF(CZKHDM$96@6E=L5SXPKU?KL?7H6X@;Q,N>?@PaIW2_<4KHHJ@W?G@DS:]4aK6[L-KF@OKAEIOEH-DG@>MENHSSVMIO1IY[MFL`CLLBQDG@ALDJDQGUOID>XV_AJ`WRLNE:M@;;GIE>@TJ?YTWNJJDKFI9M?U6SOSdNTBb@FQP?c>F@;FNY5EDCX]CUI@GGNQa4BGR;9HTF?KIEBHLO>NOZCD8L?R7IO9M9GZFW=K@BEAJGHSBQON@ULMNIQATHLJC:J?@ILAARIAERJ@FNBI;KC?DMI_9I@GLMDHI9EJJNYMOKTOCLDJLN3OHK>89>[LJL[>OEFL=J9M:[SEBIOFXGKPBGaPOAhXSJlO<6\WJJI?NZSIEMNTHGD>@MEXWIRPMYGJ=]SWTDPNK2H?D]Q[Lb8YUSOL_[GLGSXNjfJJI]VVH;CNHLKSLMHD:BAIZc:OVEOB_WNWN;PSOIN9SQMAODON`>9LKHU/HNAAAVBF=\9Q>FI5]CIGUTRSVCKV83W`JNKNuHOFToKa^3K9PMDUeJI?KF=MAEEAF>[FIICVJLJIA;9SFJHSK;:2IK=1BFBF]NDFR;HFKY;MLFJ<6HJ=DAEHQB=6BE@4BAGDG\N=:2>OO=7K9DEJFMSBAJ)@HYG:@I7CF7KGa;EBDUCXSMDSMAK=9FGEQ9K[QN?Z-8T;N`SbRE5P7OJPB8HG9EXL?Z;G?D@H8F<0J.0><:N=F?G;UVrKP@U8L?BJV-NCFT?@DU?J@>F>%RJCUA-\FR;ARQP14N?FO@JF>KRXNHOJILYLFJDAK1LN?F0SSOR4?GO3NHFIOI;UPH[1HT@O:JIKYIAQEBRGHNHR;FFJ=EHW;EX+M[E;];QlT:L5QWFOR\HYVJFVcK_BJXI9NJM8VPKJVLPWPECICFHL?HW[KG\Y=UQRGKb9KWZX]>GNBE1DJC9UH>HFhADHkJH>\OaNJG1=HG_OHHF]@FGDPSHIL[HS=TH]5B>TFXc7TKAGHQJK8WeLMAQFe>EJP1JISBJYNGWK>eLZR^SGKHJOFEK=>?G[DLH=:PWdPMHQNTOJRJ<`FNI;IINNGPDrQZNDH?[GKGQc@NIGPADD0W@P=NFL;HD6<=8?4FF>M5LTDO;E6D:EeRF4=?>PE:V=9e6RM0KC>KBFIECU@^EKIC?>EBQ>JI9I>@HCDLRD?JGE@BB?BN=D6[CR@I=@JGCSBGR`CCM=AE5ZEJ?DH>JMDFBNA@?_\G;DNU:JM3F@LXBI@83D;N>F6B[WAMF-7C=I:?E;JWDH@N6BD/K@8;TMY=@<2K@OP8N^PCFACKN@VRAkIGD:GI_TUSKHPCBDHFOBM`MZBS9FREGLMI@D]>ACMADRP]I1EVVGV^L8AM>EBGII]XD5J>FJ]YUSaHOF[IBFL;MHHR@VTOJBF:QL.3QE_RGSTQHXBHIQIOFHEET>DADDBL@HVDJHPLH]I0RJINX;HIPEKDNK5GbGNJ[F;@O4RAV6BSHAU]H32ZOPD=IKSMI.K[CXb[GGMaWIU[LLHLDB9gLE:I0=@.N@H;.NQSAN@E6=OVJJiLXK9GFk]7TMHYHMV@M:[JRCIBSQ^PMLPKHW;=LMRVD@GFW\@LhLFXOECNcNURCBEMUaTbOWYUa]MRES?DGIQMK;OS<=QBk:SWIJSKC[5?L_eP8@?A7?GPKIVDDMFNEECS=ELeTB@DS?FMXL;:>L:SSCDL@I\OMGP7-BLR:CMPTL@G?MC_BONPMS?HCejLBNRPDNCLAIM=ER@\)AT1KIZKABBRBLKARWF?O?PBeNWUODOMGT\7OK?AU9IET-UK=F[H5IQIDM4FXDIJKLGOIe@ANILETMSR2DL^ZKCCQLJNOJ2WPKPBMVOTXIUZIgVNFHUEZO9B8A;RNGZE;=FLMI[FP@JKS8J7EBA?D>bCDBJMSFG?F=I@:@BWH:Im:OL`5BE]NKUB<@F6A<\EKJ8?G8\AOIG6BB;GJ>AVCU=EIHBX?SN9-OEH[O;a/U@BMOMF=IV9=ADJAHDNUFTAI4NLOKOHF>:lO^CAEKKRL9HHQ;A?HJE@@AKGELVB;I;@5ACK=TF1RJ@DS@7CHM?EGHU=YG=IKWC>C@D>I[@SI@DEF8D^>8@J:BROAMVBIE@K;W]?C.A:\DEZLg=R=UXXf3`\PaYPP:UhFPd.LEMJU$+8N13yQK0h]^T;A@H`QO^EOZHHHM`5KOEGUVDFYUGWQgXbS7Xd,<,8UPHOCbJ.T[GrVFeVQ1EQC\:+>NgB]/E7?MK=?,WTD=3?Nt[zj@1]JE?_JLKOA?@Q-@@uTM9;QUQIRGXfQi44,YCKHPBGEABES9XPCR=D]G@LNM]@TQ=MUIMEABNE6WL]AJMPUBUSWEEKALgW5U\TbB\ERLKFTZFL9EBGEH@ORGCURBOJGBX[EGPFVFAQ;QCDBQ8K\RLTDTQ9QG-QMRUEF6A8WK=^BGTFPGJXGUCD:JPR^Q<2M>BGfADYCDRH=6CXP:GPPI>GM;BIKLBAH\g?CAGB;IJDNDGOGBU?<>FI>VYWo:UAJ?QPCBI:HLMCHJDURARLIXNGI;L6MIOIYGHEC5QGFBFGN:GI[@WDQ?VKV5CKJLB`OKF\DFGLGX;\@=IQP;ERDALD[BFSON:IS@=C>HBD<3QM@AB9JDHKNFMARI5GBB>BIUOF?CiGgGM=MAF=BLQL:CGOBkL[QADDR@ENQTDBLM@EB@GJ?@AJGNHLFN@HOLL6S`THA@IM]EWCNNO=`ILYLVHE.5J;KQIV.L:Qg91_A>DJN\VCJSPFDUADRCJHK@B7PEKLV/RDN:KLKPNLcFRBnM=R@RE7WDBRHKBBWHWZ6@M89]FAOKHH>AYGFRDMC9HJAABQqF>D:VD?]5SAYMII@D9NK@AW5E8nXR@AMEcQ7EDE;6:DFD=Z9YT]AGMU?T>AN0D=WXLIQEB5JWDU6'FM]FMJUGDU8K`T9GSMM@MT>GCHQF>CB>EHrJ?5;?@>>8IDE?@]>QBF=@IKX=K=9[8W|FJf`FHaPOH3iS>sFG=CMUKGUMHHLLBPIIE@FMUGWJ>N:BQN=:MF8HAQKGJIMS>6GS@RJOXKASLK@OVOWEOKLJTh;AJJNRJ6VOIEL:PSAR`KLLDaCf>IFJTIHRHT7OGLRSQGRGK==WJDUOMA;IJIV@?<=ICG?KFIIT8HKQZMN[SGJAMYAJU<@P6BUOAW@GZKDI:\8RNIE4FHF>M1VAQN>DHXGIPHQcWQQUHGPAOVsTPOOD=WK^6>9TKQKJCLS;;OCM?LF?BAMM`MILOGD>CAAXHGFRZCNL\L^NXIP:SDGFdBH=GCHBH?IE^4LEBK_@G@@UG@JZEOUMIL;F6XMOCJAJL7>N]MESFOLLQRUBISEALIFSN9RADQIXQRGGKUJEPF?QFSIMVVJWJ`RAHLCGNATIWP0MDMVQ?CVTOH@C\GWNEJWIVF?`@>JIAA[QAAVZEL>ICMDJTZYY\G@KLTLbSeSOOTU=@^FD?CEY=HTGJWMCPGUXMIGOOEQI_?ACMED7GB]OJKL`6H@XIFvIR9XBOEEALEXU:OR=KWSCEGJUMFFKPHZ?FBRCCHL>IKNNKFWIE?PP?XKZIPILRM;>NQ>W\WMCB:=VGJLPC>DGJMHPFKJBUGYLGGS\FA5TVBKDPZ[R=\PF=TBN8OEJYMI1C3TFN7TC;GS@>CJCDE3HIpG17PF?eHUCB9P>C4>HFHFPSCK+IDKR`K@=VBN=BEIK@CMMDLJOCEGLRJG?HZCDGN;PCWAD6@_JF5L3AQHDKAQMKQ:7QDEOFGSKV:VC>PGT9YHWBNLVFMFIKME5JAW?K`ZBMBH<5F\P=gGW87YLJaJMG7AICPNCF=<6QKY:OHG0ICEDWK=>Y:ADOQQ>M@WE5T:LTGTJ@A>JOYGNTMJ@:H;GYFRA<[BF>6aCC>\T=gBB=Q>I>SEMC:>HJAQNBMIB>7WBW3Z@AB;\K9JCGL[OLK;G9SMXP<S_CYK@SUIoE;PIKYEHOUE@EjdxGQ:FZCUH@AQ_DP?FWL:L[OLUQ9MCHIS>O.DGPaLPWIV4EPNFRRCFf?76Z;Be5LE_\OLRGDZJQ2D=O7AKoSGPQDRjB>]aV:4M;HO2ErP<>LG@cCZ\+A\OI?7VCZZTICb6LGA>FYZ40GE?Z[KK]6:QD6T\;FJM>J@BFLREJ:;SKRCB9M<@;HB=PDgG:KAA?^54=GUBH9DDECFGKI:Y\L<J>GFMJ7ZIIPKa@DJF5ZaA\FUJ5cQ8=5JCD@\GGS6CGDMAOJ?W94FNSBIA=8BCGEEKm_VH8MM3=EB:D;NKADLG=GEC5@8-bZdP@A`Q=?JP<7N=CeB<@BPDHNB@JG@GP1MG>NI=?V=:;D@:IUJC@PH6;GW@ND`OKF@OU8OJ@SIGWU:NCG[FMINAG>PU3KT,H8I[K67K7I@Q:6b@M8BR@LJ4CfdB9ZFC)ESN?[NP:gC8Kl=KH%H:KZCH?FOOcFHR;H==DKINCCDTNTBV@CPDAHM6HI=?H?a;VCCELUbHF>TLMBK5CWB,B;9EKNVCSS2.R:FJBWT80=N@%2IJEKEQIBR@'5HELB5NJA8NDBLH=XMJFB=O;16=?9WQR7LXHDHJ7GGV:FEJ:RUI9:B5A:`LD>HD9?^85jKJ;=IdNWABIID4.PHO8O_F0NEB3JVXSB=OLA/JJDMMYI*O3NU>IJQ*BECH]I@EF?FX)SG?KUDCLUL\GHG:HTJLAV9e@JQBTDL9LIIQTNNTQ0AFTU7Q>OaFMQM_<\`SDVHQ(JND6,I0K@GCSNJI3OHRCXOGDIE9MRFPA==EJM]M>G7VUB>]D4BCVZ0DAVMKQMM@[:KL=7>4HDMFEQERIC@@KY=ORIVIAPd]NTbXM9MMBB>F;D3I>2WUCHGC=]@+FHAAMHTd57OGXLZXGZJT7FJIF*ORQEDL?AQI;FULMZHG^AMOFKG]VSW?US4BFHVO:LC6A?c`C]CGI:hH5L_?Q<@88c9I3IFERD5DO;KEHPMH<97AE6H:=BCIAQCUbCN;KNCV=KM;,;LEVTAZ=8ZNAQVHLFBJ<;K@[@9IA]HFJH8>L>C;IEP6FK<)VQVSKGR@=H<]QCDFBLP<9?:?75D@J8?EX8CE7?EHX@B?AAD/KRBJGMFACALG*AKJ@U;;b7:[FFY=PBB>9CBUYGBIHGSQDTF;J>IUa;W6GX4L-7OVB>ID?2K5IQ>HOD=7OVF>GEEHEB=FBD@>?I>NJ12L6HKKRKLJMBL8R*3AN>LAI5{SAACCMDIcER:I5CSW4hP1CCALDN;94?LE=/JEGG=>CDVI4D>/RTXEMIG]NFA:5AERI`JJ?6PABEHN=4PV^JPDFOFKOE:8QBPEMBDFm?JG@7+FC9>@1R[FB7WNFGC8H:i]?JdN/EFWC7h?DG3]TB585JEOCEGKRGT8JUI:BMYpMD1Q>QGUeOTBNH,;JG8IHTQK6XMF1AW6CEEEAIB`=[OXI`@O`/HIB4L=SG9O_>KHDZ_LOTY-6D+8?NKKMRIJ?lJBL;FKVMBSG?H3NDFu>H]KTDQM@FOMLWZLEOCNIWP9k_P_\?F>M:9e7@E?^Q6MkEHLN797YNAL??>SaIBJ\]KN`RfU4=OF_HK?EAMaP`SMM:pCIFBFOQNDJCI=?DOgGG4NR@V[DSEDYW8VJRD^cWX_CKEZpJUXZEJT8VXGG8KQR?KW[LQ,bmGD]AUKTS\LKeR>=HHI\UYYJCGaH@LIvIYX^JOVFVWJL\ISLO[_KMMKTWRIAKSJL;eMTP?IGQGTHLVHIU^I:MiTqEDGQ]bBQYD9ZH^TRbVITETZQRBGK[RCLIQSThS?HBKZ@DWIOY_LT`BFOB]ThVHKM^OPKdPIVP[XOJ`CEXL?OFEXUhF?D]P`FLPAiNIJaUGPND_AF=JU[JX=7Q=XORHLXETDLM2QYWJO@>IQE6HAI@@P8`HL`3OIITS9QI8ELDZQFQ1NJ@O?KJ.KA8H@>UJ:M^XW?@IESMPXEMGHIOFJKC8lWCPL\ONEIA-HKXSRTCNI?^TP;;KRFMEL8FFD6<^Y=IKGJPE6NUE@GNF[HIgSFRKC;HAMT>L+;EB8PQKT;YGKAMF=^N5OFVU>CTNAJBDN_THITHDEDAIACCDG:HLKFJQHNCWBHBNGHM6?9?K3AL[FFJL7KDLEQP\KF}CEXVOLIL@TMEAR:ANGO@CDIHCI;IKMFI5GTK??LECUUE=IPQMOOFNNBHGK2JH9CGC?P]CNDQ@Q:TBMRMaGZABQNI?SCN@THEB:`NYF:CC,KB7FN=G?FLS>>LG>OJJT;=OB]ILAJIXGMCS=?JCCRB@?H?`CLScIDOKPETN?-;VA@I@AF@IH=A?>HBM0F9J:QL+IFRG9?LFJ9&LF?HJVcFEQDDGCD`D>HN9:BBS>>E3:JmH=6DRH=6C8D^@HVHP1GTFK@IG6?;Bi;FEBBEOG:I:BM?JRF=NAAgAJ?GJGE]IC.5N:BFLSVKR],85O4I?OI;HMD7MGQ;BGH@-NANJ.M8KDRc/;HIN9BNGAB?P8G??8RQI7PL@<3;3ND=[17OKCBQ7FKFLS1VATI^>Q=>UJK@9IKGM>N=TIDFDQKH:9a@MICP:7GNW:2S;PVB_HIK;IIUH>=KCUU^^bGRJJ@BGLMNCFLTSHKBML:E:MKg=M[B>P;MDCLGQ@GZF:E;T=K\[GCCNPQ4HHBEIK@PD@VJ@NJ?@;^QQ@GLRRMEEGM=4L@EHAKH:F4GPHNIPZJF:KOEHL3?VKKUOXPCIFJL=JUG9H=2LDCDSHK?KCBMWRJ80WX5ALABRLU?TVLFJHGB?KKnFGNAXD<=O=NGG>ABJFM`FU>V_WVBOLJF>QP@ZBOA=?@>=FG9?F^DGQLPPBK8SDLIMRRHP;c=@[EM;UCD^aAPGIBYDG6N:=AGFMKMQWR^B\^[\@=e?BCKYM8KWHOMUGPQKhbFQ[5LcJ\O?@bARLhTaJ]ETFQSMZU^Ik\SHaTLJX^HGOKHKXbOjUWSFAKUWaE\MSSRPRTARJ[eQNZ\E]DEJOaKGB@0@NvJNEXJEVTKI;^oMOMWAYHGUL`UU9O^XTXQLPUP>SKK]KM_>I?XLOHOWC>V^QQCGIQMMELQAFGHX@T@[DEOTMSPHM@HTO`V]WQW9FM@;EQ=`LWULIfHRBR[PNF>CBMRA=DJ8F>_F8F=`EE5aJD@>A>?ULBMCKBWKH>:aJWFMJ?9LSG:OF9IH:N@HM@+[E?K;EFR/M[IEGABC6VDBK>SD=FA>G9M7CQH=A9@TLANLFFHTF=JN7S>;JFJW>KJUN[MPJB@J^DVQ6FM;APJETC=JKFK^G:@G9Y=ICMVC[M=Q@?HbO]TIXFWVHHO<>ZOGFFPMNUGPEKM9ME\OVRQBG>IIHDMKI;X>FJLVRB7AH^T[JPHL@KUR:HLHNHGWJJBOJ@AEH=MNBHP_D6HDEITHQLBXMJfB[PP;FHC=MJTUC@P+>^cBZDIICUSVI\CSJB9FIR9DJ^P5?CCGA:GTW2KOFH>LEC_JOFMR\TCU?]>RTAK=?PHLM_cY8DEL]A[[=K^LQJ:VZ=CP8`>JJG\b8[[RYV[FJRMKOJOW@\F:aSREFX9NDMSRCHRW_DGPKMOEX@G7IJNLJBKHONePEADWXUHPSJAX??>H9_DSJTHON?Y;gE>LAGKEENIP@ABWKTKM>FNEMNSLQGGJZGL_HXLIR@R6FMTAJSHIYDVTUNUZHDLfLMYZ9CIZdLVGL[JOWFEWGWETYQJJHN:WGD@^HR[X_OEIEcO:OMEPWJWSLAB@DKER]YQEZTT@QYeGXOGHQTV\PLSHD[[C:?OVOHE[JKO9GANC9UPNODNQJPJIIW\IVMBLOPJEFHR`IEWQ?TEF6NMYOlCJLN>>[_DVIIXGL@adZKRC?T5WJTLTKO\HFBQBNHVB]LSHKSS>P?P7QUNJPEDTMk:E=G6M^?FI>TQ8MODFNJBJAJEIPOJ^Oi9O[Qc>JDO?XLFEY`LMKK@YQPJNQQBDU[ATHNY>UHDI:AR@V[IA>RKBBREH@MHKJMKNLAOAIF>KQM>J?OC>MDPJmKELPMRY[YM@STSUEIINPALL>F<@MXPFcGCCMONHGAT9OPDFNII?Fh>BDWGOHHXFHUbVYP=C@BV6LCTEMEXQ=U8VFHBUK^6EEYaHQ<^DGONQKGJ:=FJT[NRTON:YEILIOH=ELPGK?IJ?JM9@^FEUUXAMOACF_PQFM>A`HC3B>BAOI8IAW@KI;MH@JIKOOAFNePZLJGIKF9NPD;@@F?PE4K8MBLS<B=NDXQF2MW>EJBB;>@?STE>;F>MRIGC?HEH@?B3OFPC3@P=J2KNAR?NL?A6@CIEWFCNQ@O;BLB7F>NQR?MTENEMSHW99S`DUTQGG?@Z@T9JbDD38OV/UNHH9BBF5ODC;PENQLADLN7FUHM>HC2TIJDS;O6O>]7SNA:1A?RDAJ;=:9D@HGKh;@hD6A9D`AFEfB<<_ED;CC>GR]86N?=@CpOE<9E@4aFQMT;66X<8I>9DGPKQJFAEHEHRDJE>SI*8>AM:W[8@T79FJE@NV9`EF:=0HHCIDWIEI8II1D7Q>EA9AJHA>J:.8DJE5G=H@ONR-JCD^8N7EIAG9@I>>MG:P5I8-i7Y:T=Y;NCI?=>QEANZEEI1<=ZBOOGB?HXFHc;R@GFMJSCMN?iEDN@FRGK>>N@L[?=?XKNIWUKLEFLCIeBHFDIL@MD@@E8TEHbMJF@PDAFAOHYKQB=TKGL?UKF=TJY>THGOAN=MQ@LQKSB??1DEPcPNPSRFN]HI:KQV4FCUFUCX@Q[>KKH?YMS9O[PNLQI@?B@DR2FAAO?O]UECJHHYPH_BAF;C=;EEAHNWCGBSQAH;CNLM3KIUSSIJEMIKZEBHAMSGM^SYOY=KOEJ:CFEDHR?FORZ@V=K5DKFZVLFKLSHFKLFWDG;N2BOQOBDDIEBNKMQKMLKO^MK@;\KE8KALc=VD\X>\:PPO]\BAVRPMYOWLGGJHLFNIAFKSLVNDB^HIP7HGFDAPQWRPFJ;M??@LLQS=X>FDI>@IIGSG=][OGF6FSCLN@DEJOZGPPKCFQBPXHCIGR8C:EHMFCS9GJKM?]XSALFHTK4ZFOHLHIRKGCCJ9ONITO2BHKIMHIG=QNFaKAOBNFTRLGJW3>ODLB'JLOJ>BSPI@E@BEFKUENBAHPGi\UWPVXENBVGTLK=VAPKJBOK?XgBLNIGQAI=VPDEPEIKVYK=It_EICFGUGMDKbQPPICH;JBUDCI@HQ`OCy\EI]JCGSCG6HG]RbSGAZGH5@I@OBDTCUCXXJOSXDJXHOaPMIH@FUT@K8@IGMMHQUaN2BB@FFLO2IZFVHHYLVP?ORKB@KBFFOSAVRGOL3GAAJMTSONR9IMNBIJABDBCMNHSEB]::C>YKMKSL=bPOWYMIQ>NGMJC\PTRJ@Z=GEQS]?HI@;BFNHD>RLUHUJ@YFQPL69SGP8YRNN\OGH>CPHAEUBOCEICVY:ODG@GMJHHG5Z0M1@GB<>GLGDJHLHYQ9EV^B6GIDY:MQ?C?BE?)FHSXKIB2?L:A?IIEYGYGBDYEJDBSDGGKA?CVABLXMB]IE=X:GIKGHBKXH@WQSJA76DMAeNLKN:QMPUNE^GME^BCUFXEYDDW?JC:>UB^=DSATJKKN?dN=DAPJHAIK@KKPQNPaNY@6ZMDU8?LGm=UJFS_YUAIRVZJC8]fWAkQaEQCM]AB>SANIZPLLRIPI\ILTTOVVUGTJWTOH>XQWG\VR\E`I?KJhLANVREGFHNFKaC\FZ[->FADL9HEKB@O^NIP?PF]?O@NFELHB5TDKLRL?3A;IGEBJEIKRlGFOKG;CYjPO@Lk]ESA\MUOPGL[CMCKIFLAGU@FHZQ=@S@RCP;JDQHHDZIKLEGQMJDEJOSA988RO[CJTJP:AM`JKXQVR]FF8A<FRD=ECKML\CBHNP]CA=BJSQ^HLLTSFAQDNSDEDB?ZEJRF>RMUPVONXXFE1H?ITU^8CA[87NO<9ELNE@PKE,BNaN@5HGM=AL9OXTPSMFVFHA4E=NZA=p[CJHQKVCO:@IPZ7UWP8UP2Hn<9MMOaNTD[WP?S?K?<>SME/@BSFEHFNE3A@GGRKDPFb\ZT>0?\8S`IBVTLJIUAMS?MF8FDH7hJKHAEST]IUYUHK@XVIBaKPK`IG?@CF>FQU6DGQ\AESRTM9<N-GGMFER9AbV8=1U6JGHE;FR>=BV=UDU718ILLFOFYFL?D]FJD<<mRN=DDNI;>L]6WDG=HEELILQC=NK6?GAQBG:2BTW>R=:C9EAJQEIQVNKO>JIQAS9I;?NIcG=A4PVRF=AFG?9:O7LGKMRBGESDS>FHE=NBM@?MGVQ?MNCMS><>\6eDNVGM=L]E;FUKHJCLIA@QC7INJ?K[EDCLGKHKDGEHDJ-FSOGP8QCK>L?RB>HOTdVL>S5X[NHYJBNFCSBPCIEAJBDTF:HNDCTF^BNPS9PO8NV@BDeHHDKKIHU68^PFS?@PbGN@HN@RSBE?6IXWD@LIhN@K?LEKOHLHE_NLKFQKEE;@hGL:CMF=CJQK?FA=DOM<:E=F9WETRRCJSLLCMP9>@JK:OLJLKEBAJBRADELSRGBLHU@EIIJNUAFN@NRC@UNA;7M@ZCWWKENTT>XBRX@@NODXEOIIG>UOWCAEDAKB\RIHFBL;7HHDSSLO;>AG?DA8J7X;CJI?IAGOPAC?CYLTI;@BdaD:K?LN]KMAcNLIX=B9JMLMBKRAHIAc?ESENO;Q@?AEST@CR?QIKLF@I_VXNJDKSQLLeQWI[IHZZQb@LSMMCJZSEGLGOP@RRNJLSPP^JEPWDEWE\`]KNMOEQBV[QYMEbLKJaEXI^UpNMH`RBLGNhPC`GHN@J?SMKOLYXRIOJTSbASKIIQHNDQJaGWEHQRUVJG^XZGKKQNI=BFJVOOOBRUAQPB^aQKPQXLQQMHPB[OCQR[EH_DQQPKR\BNRMMM[K^ZVRRUbOFEORWSMPTQURPi_OQFYNLLFIEaW9bDNCFKS@EOPOGFJOJ@FPVFKGK3BFD5EDCbK[EOULMCdlRKGG?LLRpJN8T\>G=8ENH@?G@;>O\?>U5CM[PT>:];DH:C:=H?WG/TNE6@[AO?EIVS;FFWT1LJBUJ7ZG>[nL>Q:N@S4QFX]GVELGCD:GD?3GC4RTq,=OHHMf<D;KBSISHHF;3BX;;GIUDFdHWs:I::?@BBC,bUXY?hMCEDLQVCJMDTXNNG=^DaO\UHVGIahMIAUVO=TWMKRYLOFBQ2AARbJb5NVPQLL^cF9SQAEHYSKGPJCPSF\B?XJJJCUTUNYUJTHPQ/RObCM=FGBA;DJH3UKMPO>XJNMP:ERIFHSIS(ITID\OHOCTT?HJLC;HDBG:N7PCOGH?GLFEEIFVCP?>RDJE`AYIBD9OUSF`Q>@pJKWFCA9L2D?KJ=lMK9E?ILAO>@OM;UJAJSKMVJ=IJ6HL4EMEJKEYO7KG>HBDVZRUMPDJ>X:BOHJ?IVUKZiFW:G,]EaDGWShV=ODWKD?G^TVHEHFOAI\DO:_KAQRLEISGBBZQJJIO9FNG_LIACCPl=TTLA?U7T9KIdH[LUJ7Q@NACJCNQX>L8CX:I?FBPDP97IGi5SL5MTAGGN@GGWE:fCH>>Q7JOY31QL9E?AHK:=CB>3G;bMON?NHJWMC;EOEEOE@EJD4KC?KV9OKCACHPZHGBD:<>@J>BBK@R<:PLAEBC?oMMC>IQ8;:3Y?]=X>[HHFC3MQ>4EAOAOGC>A?82;K9=UKKPB7>VMMD;VMJ@=b?G>>FF9:?^=GEMJ;@;9@6F8JO?CNJKPYPPb::>EI[KGNYPLCAC;Z9HQKICDGW:LMTELB8OF3DJJ?PB6^TS91DOCPQRGE;GHEHAK?RXO;AI9[:JKJXe^A]GO@VP%?F@YJH2=`MICLGEhK^EKAWBOUME>W+>L_RFGHa>BO4?ENEC2WNQIV@CRRHAQIOKH`O?y>J?;KLHLIW@N:j=]Y8INEEZOLXdZxQMCIMd_EILLTM?S[FH;OCB\KQHLBJa@GNI[O<-SIBO?GNTPUJFTDMNVWZW_[PWSSDJEEVTMTBSIEJIJOQKQFTOZRHRFGULKPKEYN>JWQWZPOEQKIDMGN@P;GMLYDH[MFSX@ELT@;NPA\O]\RGI8JKQSIPI[CIBGAXO=EQAUEMRDYCNDaVFJZNONHQFGLYBMJKGSOVMGW[I\TaCqQmNGKJQPNATGVY]SV8`GHHTSK]>FNIEOFQN?;PJF2hAHLHBNFF_GCFRA=JBK@:TFSMQPB:APOB>NC9L8I?LAJAFI@CVEKASPFIMU@@NAFA:SdRiRUX7IKEGK7PCB[A>CLBFKK?6FI?FFYQLVj6CD=C\UH;DSF@KUFAE\CCHDKO?ILMKHCIQHCM>FFLGBMN=JCKNZ@GNLLM8eDFD;DXCGMCPKM=[VIGLOWON9UXU^GM?DJMaDYfDAP`aBETLJHJVWYLWOOEEJGH=ILRKYKFJN`Ba=ZUTLAHOMNWSBCiGTLBODDWUcHMZQ5FGMROG`WIMD6VhK0DBL7WTLl>AcMEVE@GJ@;NMV[I^7bZBKQRj,aC1K>DTZON@\!EIGXXTAPFIRH>S7CHHNIA>UCGW]S>K(CfHAG\UBSUD?MPU9JL/5TM`IROIN?TaTJ@G,T@U2FNGMDJ?S5CJDPFGCaAP^KIAGGPC8L;P_G:XTJBbND3@EFKE>T=HR\DYaEP*ZJW@IMHL>n;HAFdO4GDBXU.N^RNVBTNHHYNVHL9TB{3XLJ of>NT\PT`FBEFJD.IYM;U6@8]AG)5G5uMKc4@D`SEUOSW8WG=MHTUALAK>QN9e?SHIFSAWGPPV?DLCBF-LOXXJEV94KIPCqN6IJ`dETLK:KXAH-LCFIHMEMVD]QYLPIKN=@M;B@E\FRCDHFEQIE[N02TS__ZGM=@M[PSG.56IIB?`MH=`@PpA7[>DRGURFARUOF5fL?DXGdEDFUWOMI[WYElH?INr;TZK;DBFGD:QR`;PT6@WPJBB[=AP?RAc9BS_?AEGUOPM`3N??OA9r>HBHE>DA:RGSODWa=NYR>NSETDWKB7ARA9BJBJiM]NJORX@GRK_/9?YQ?_:S=KNq7eDFW:GRId5PGISTJM9MCZX;6(TLGrYVETYEIQ\WSHWIIm5XR=PQ^cWMJCb\YGEN?96IcSUDM\>CWFZkXb0YVG]=\B>LB=FNPP]R^]2R59TB=A=:7V>RIUCg=:J-LO5/?T8KLO9@MLFS%QHDGFIYTBS.R7L>eCPCad?>;H@UO8`NM?A?H0CD3d>JT@EIMEEQpK=PKXKPJEK9K"I9>gI>.IoGCNQ?ANX@M\bME=>;=673Y`O-EYPLP7KTQIC:SICRIE3HA;D8U1HAc@=3JKP3CI6?RNWTDO)n?B`@8I4L?F27DEv375GDY@A7MJ?PX48]H8b8CQAFRaM67?L6%,JK.>?R=``CSncSTF>F@_CQK{@IO=8>LXGILEDFNIOLTLCHD[FZQ:UQ=TDJEFLAI[=;YDZQH?^IVTAD\GhKENA>LBN4e9JNTIVMD>IOJESkK?QKCG9CJ:AbD@=CC83JKSKE>N2CPRSXNENJhN;AFFfEFKA@BSBBRGBOKE?ZFN;[SJNC;XQCMNHPHGE8\D]7HJ@d=PP>Q:;KK3=XHGZGGHPHNYJKMCIPRELB3PFONBGRQEGC=AI==CME^EYJNSIC[VOEKRLhLD?CKEICXH?HNfIQCbYI=;@AG?Y=NTCMMRCD>KFGM[?MKVLFQEFYO:BFHSO];[HPGbADGWKSUPCVN\FIKRN9LHKVFCmNRDE^5DH?ALC8IR@J/I;IMLMVDE]9@YKEJIS>GNVR@F?9.F7L]LELEUM@Y8GHAKA:H;ELERGSS9NPVF=HZAI]PODA>ORA>UDUP5TCCGLVDXRNS@CPR87IOC=9BF9g`SM@fJNGEECI>FCYJG,KM=LA9Lfb=g4PX=EKBNGNHIILGHEJOB^HEWO=I>=@O,^[=UI>DKEPjDHe>J8LDRLCBGRCJ>7KLC=]>E;O=OHDDIXD==OABfCGRPNPPG;AOIN:MR@KKM=@ERoZWPOLTEEUH9XFB`BH1FI?HJOOHVUMKAEO@FG_ADL;iFFVBXNSZCHXH>8=DODAI;HSKNCFCH[@UX>oJFkDEZ6FFLF@D\KCF5CV?:BUWFE[;UH=HCNQITJ0NZF\D>BB;ARI2GIGRRHI==:A7KDEc=SDAB:JC=J;:;GBORVCQ;RZ=OI;3/A>?KASC@7N<5HX=DMS=6D:\8`;TA=EI@PGJI0XFA^<:R]FXG4?K5A7HC>AHBICJS@CL@NCT>A?HPLOF??HOHSL9V6SFNLX;XDG_MSZD=LDPYJMXfCMUJTXEF>Y_\OGFBGPGGM=OO\M:FKULTJTTJJWJS@GC?HFSNXO=FFHFPHSBNMCDMQHOMIGM^OAQIcJDFOFZO`XHMRHS[DUQJJBJNaEIT:Q?8^RRAW=M@B6LOKLSM>JAXK4HGG`I7@JGBZHKEUJ@P^9PBHFXUW@@UUMAQF?J^CFHOSJMGBWTPJFJLTQENJBFVOWLhMMGTBAKKNRNMPJFO0>MFE4M@`[O]DLYMDSUKRRUCKX@8DWBH:NE[SYDCBEUG`IN=4DZNPHQOCO;^NBKeQBS@J5BG@BOM]=dF]MT?GDYJBM^MPPNCH?G@JMIGORDNIc@:THM?SPLCG5^?KWGIT[X%A8ER=CL2PDAOA`].eSPEIT[OebG.T^QI8FEZJKQTQSWdJHZLV:XLOJ8CH`_MDMR[FEYW=Ce_FQPHJROFGpO`U?OWUDKkLAQVOi>r[O^KAD5JDF<[CGMKCZL\KOIZPXSoTPJrHDTMRN4f;MRRxDWQBEaKOCY_JI@^M@RIabCPiD[[FIJOEEO^BKG7_NHGQ>M[IV9OR;PVQJJACULGD>IKKLNDRIAF=CHaY@bPAAc5;R;U6EDK=FLBGKBH?=?XEVJ@@NCCR==EDOL=D[IXaANgJG9=DOCNRdSG>I;9?^B?M?CFAEF>@RM8KLTKCKJNMDIBUFI>QHERB>RNHU\8CKQX:A;`JB;>TFPIIGUCF_7FMCF9CSCWLFA;PGTKaBRLO>4>DCLF@1R@>PSN=GOFRH4W=DL>XNAFGLFHU@LAC=[5PLIJ^`DRIC<=\KGB?9L7K[FJ:KT@JGI8DLP@dPKR>[@BIHA5IOdFE]MVZK@L@HI9JTG9>@IG3VXXMANB\G;I6H?CE;M:ITKUQFSR@]LR@GTAMUA@A;X@H9YCLM9H=NKLGGKPUD:2O9MJA2BB;L9GQNID=LCT;GF]UHSJBFJ[B@IAGDPB>R;P@QJNFOEFPZ;D>@WTKENZTLYEFDTaKGKKMHFRHFQFW:LNH;BGEOCU9JPRBM;PYHIJIIEHJ72GVFMCDFDQ<]D@OAGLMEMD7ABJ;:DHIMM89SOR=ACBIBKMHD`OMGUBG;7AGA2JGJXFJVIJHB:FD]B=HB@TBGTBIDDMPGBBT?4LIKDN]5=BSIJE>:\E?AM@M;IEMYlCUa9DDA]4J?PX;>H4Q?DOHN?FDJNJ:JFKAM=eSZDe<@N2H7SHOZETGKNIIVJ@SE9AAG@PRBGGGK=ZJFB@>JZEGKK?BE7>I@JKHC:XM@F?NQUPBGHURFIXX?AMR?_PJM;NYCbUKG=TECJTOR6LA_DBHPQBY^KETI=BVRFIR[>KLKH?BWCV]F>BCKWAFGIDLF@=LSWALOQOHIM`GOCF^1CWIDVFL:AIDHWBIQVHEN9?SYM=A:HBBaADJRCTInJFTKhL^B@@HJNEQHRIBELKVH=`CTZ;X?7JL8CJMGNKF5N2PLgDENJEG;UJUiZA>SYATND8C>MX@l3NQBN:BAGURAE_RC@XG?MG7@DAOZ3D=ENCaXJ?YWQVMSNL34PCDx<;N=AOF@BC\AAEOU;eKF6D5@_KDFM:AU@;40T7?PNDI>28@R.E>X?FH?@!HBEF>FP.MSSSLSGMED8R3MPO8HY/2GUR?I6NEH=OA;NNLFBMYFYNTNL0DBH?XxRO_Q?SW:CJ4[JE7:FNLI@D;F[=]84K@>UJ`G:f45GSEJH;T?fAPkaEKDGKgRLKEFZ<;HBBKC:@gLB8WBKTEDAL@KDFW@JW*F6SM>WECC57=JPXANR,?:JJ=HY;9DPLO;OUADLLOUI8PC:OM6LDU/CHP[:Hc?;_4cEFG9A?EH)VBILTBDNCgCE;8aMIDRUO=7FF9D9=KGHA=ZHS;KRGJPE>IQ;OOW?CGJW9KP_=8H:LGU;=`=C^4E\7DL=6I3]F>AT<;PBB7<@RD@HE9DH;FM7LZ`6jZ9^Z8D=;\6CMkg=PBELE?@GLE4P?QT>6A\JSO?SFFLCPZC>W>6CGPHLRC:JAJE>7`OFPU\A;EE:OAPK`DOG9NAHD@HKEBSS7CKQNSJVEEOCCXWMJECCMQC:DZ=B:KVQ9bSgRPFJONJOAHVXMBDS5XR8J?KMP:_GHMLCIGRCB>DIRHO-C8aONh;LXFONONP;[R[?e._2O[A7OC?=B6@_9NBLBXLKoKM<GJ_M=DFHEK9PAHANUWF\FBV_NGI9>-W?I[FW=HEEFOJ8:BGLCDAS,@@PURDNOTCBIBAGKCFdFDGKQIJ:H5MPD<_T0CW=FH`OZ6PDCdWIZU)c]MVUGFHIBI5T:TK7CV6EUHM]HZCESRJi@KNJMgMJD=CU7S\GQ<]\DEBn:RRQNI]N]NKOJCQUhcXIXIQB_Ig]OBdTIGKP;J=L^9FH:]\DD[UPAUGOX\cPK]7U9T?GEGAFbHLOKFG?GP@8;UGHK@?ORTIXRZCQ@FPB>A;cL]X7CADCM?RUOUZC)*H^=7EJWDcFPwVA:=GAD3=TMHW:J2J\8*2NM=RC=?;(=ANZVBHSdA2HDM3GNARQD`BSB@HQlLGJ;KF8N:XF=@GHQK97DLWJC@NI^D1EJ9=7SbVFC<9GBUH;BIPTC:IWMLM=>;TPS?NFEF;FN1JFAX=YEPGKAE9MSFP?H:@KUUYDdCCkaLM?7OFTBKQHJDANLKMHJGICJEaF:COJ:OD7IBE@K6_:NfHKNVRER7R=;@@6DL:?LHQ]AS\I:DQRGPaDBLHYfGSESIDB[P?JFmI;`BCEWCAEIMPKTC4NDo@W_UEfIMPF@[KEWA@JBQ>K=Hc?EOIRSC@DUGgMKKN;[BBFVHJOK?HfCC]PSJSR[Ma_HPcPIgMaYAKSD?Nh:GPcGfG9GW@?TKIP@A]cAG?T;HX*PL4KI?UJD5PVPD9H9KDETIicVdwD@D@UeDJKHO9V@K]OMM9Sa6?iSDQfRZKD9S3F]AaJK?FGA:HQS<72MXKRHT2kbCYiGCA]KfK+REPLoJRSBJ9DlK4@A2=OH@ZLIAQJOI\0K`oTQC>a0PdHQ9>=DH;H9F`FVMECNHJFJ`C>[OUCAB;BC=D]JWH2NAIZBSi?M9Y@fRBD[BF[4G;HFSSRSYTIVZVSH;?ODZIQHK>VGK?:PMZL;N9BTCT>HA@I=0UNQRIC?IHDGLMIHIIIbVG>B>ELTGN0BDMSJHANDA>DBML9NGAF@^B@JCOGGGLJKD@P?YKKDDZG;?IF8OAIEOI;OLJOQ?1JJEP[=N@S[E9RTDGcDOBPEV?_TTLOI`IIIJR`VUP;P@JAFGLVE?@Et6AYVN]VMOOCEFGO>WAEXJQRBO]GPLJ^7AT>M@OKKUJWTONI;DGB^KRM:@@JWTMTiIW8>NAJTCJHJE3JOIJ8JARK@LPBGZJ@NGLTHP]T\QIR;`6My4OMK?NBNHRM(SIGBHHLEZPPABGNEHPZdy8DG\:7TSF\L@DKUEONGJUYAGVLMTTRJABO];RGA2T:O_OMKAUQTMY?Y/LhB>7dQdEDMK6KK@1=YXJ?LV[KRD>BNMJKAL:hHMQS;OCE@T=RSM@IRLDFKXPRNDCFK>VFF>OP_VIFJ;CG?=EfAIC[DO\E]IHCT@PL6?BCJGQ[:EIEIQ^KREKRFGHFFCBQ?OMGI[EMECS9?OGAAaC?E<>KBHE;ELG;QU>cLWBBMZ;ZXLC?9\SJFJSIDVHJXJ[MDHIPVEQJOAHF@MDGLCS6HKFI=HK?L]QEM:>A@NIEHTAVG81:HFFE=JISXK>BLICDWRIFCGII>ELICFKC?UFBCRMA>GDYRWDF9LQJEBAIE]FEc>KAGE;U;CMQMEMU;GCB>AKP]TGEKPJKEHDLJQPM;DR@I^BF;80JM>8:PP@Q@QAQIQRDU9EN>JTDGDSJEG;I=FL@@:COC@HFDGO_gF]CXPBFSRn^H:N?FgKQXD@PKTD[DJ6H\DJEFRUJRCU=IU^DAK@DRaJGVJPDIeBMIK\DDL?T@JXBKEKIBO`G_GW9OMNTGIEY0NP<9UEHII@AG;IDCCIjC_D6E:XSNN>P=h[\L@O1IJ>;[_SO[@]GQ9F\@KIYST6M;]@ODGMEDQ8\J;PGBKDUFSCU@KHH?QL9TgPL?G=bADCTFE>I>?LG9DN@OLLZ=A_2=CNFZ=D;DELKNTZHDIGK;EKOW=GLQB6iFAY?JNQHJNOOCCPpHJYKSIV>A]FLFL?TCPLHLLDM@TEFYDQX?bSLXERHOEGBUTB3EUKSEI\JOLJJMD?PM@NNTIJBSDWMNBJN2VM6FQh@TLS;HCLOOZPTQ;LIQ?VVFOEZPKFDMH7L=GG=OSDPSSZcSOH;?OO+JA`@U\K=E^Z]gII=>XM`DVLMDNHLECMKL95ULQQ@AQWVSA`GPMGc3QwF8gBE[MF@VLHQ@YQBP9MCFOHCC^AP@UIC@B[F4VeKFLY:`88NC<9EOxJB;_;:>S3,+GAXZMEOEVQ>HT1QCVgI=M7B?C@4ZZaAL9Aq5BNAAW^HRLlOj@IEUBGGFCKIY?YXFZSS^Z?JZKV?KDOH3JTL5I@=EAUFdeUXDFCGVKUJP?8LIXWb`EMESqFEREp`VZ:N;kQ]H=H^JE@?=GJ7;PMFG8^KSDo[M7uWHDMOO[7%QGGmc?\R;]AJ?4PQFK*IiR9N@4MR?D9EN[^SB9JIL=CL^Z\RB:UC_D8PKO7iTKITCR=WAfBq`R;REPNSQ8=858fDNfPYCLYD=7A:JPMEE>:IA7OLJG\OJOF3T@<-@@FGMOI/?UDN9YECA=N>CB0PAEML8?>?-.bFAWG=Kd>FB8;;VUGOKPR@,:BTNRWBE?CIT@ZK8DOGK?F3?GAM7JO#@.BFLiPVU^G8NQJOUB6GDZN?A=ED\>VD;F,<@B@4H8CWGeC42m9@=?OHKD;IB;IB9>@EJAOG;3;[R;DQ=.IA=O@D2LDPIDF3X=KNkI@A0:QLAK?E@QF;:C9Ii/?aDEFEJB-CUBH;A+LMAKD ?BAW>CG_8BHMM@>V@HNL8@KFGEOGRREfOAHPVEF9NN=ZCOD@;OK=TEO:6YRCTEN]KDJ?GICCHR-HSWVZP??V>LGeIU=JZD:=JTG;GK^A4HME?E>JJFO?IVPcV?HL8RBQQ;VBCCD@QCDMUP\RC=<@NCUTDGVPRI:QDCRL:GKVDD>?\?X<:X8)>BTFF?CBM6R9H:EJH?Tc;BETLFU49@IM>ALCUH?QB=NE3\H6hABZ,LD?>2F54@P>nSgSACSF@2;<;<5BZU3J@QB`N9aONG0T6:\PPETH#:;F7M^<97=_@3N>PQOI9FKLc7?UCHc?D8AQtTNYBkDn_k=DQLU+BW?E<_Z559L5oI\Bn=@_L[:BDID?fOU]PpLEZ8Cc?LSFG>P9`FUXHDWGIE^QLFOHSFLGbJIcKCAKLPNFR>DTNCS7HIF?LTKZCUN1QRLQSTC`ABLODRHBA?YJ;QRDGQ?TQUYKCJXWINQWAX2^KJEFBVabSJBBEG7G9fDCTMOC=eP;=W`T@SA[YAbKHZQCPB\ZHPITNHQG?@S7D?KEKAEVKG`FJHqJJSPREWYL?ANP;XfECNRRINTMMHQ=PPJNJM\JSWTJBEGVNDMFK=ODYAQI[8EDOb?>T8dIJLROYGQLGEaANLRYG]GYOYQ=INODGDE^NL_]SCVGB7JL]M@R9@YMHLLLOZ@[]JRQARPEKIO1QMUS?GKAEESHS?HRddQPWXIRN`GNCRQK:CJOR79>UP=OBMCMPGCQLMAFKXAB=9BRA]M9GGRBUULPQWIBGKHBSQIGS^Y\6J<8PKE=L@PDEGe;=<2XT2FFNA@\ICADDE8GRE7JID/J=L\H[KLPI=9S-=HI>GH5EY:CDH[.OHFI?C4QSE;>45JHVG[;L>BYFKEHR~3D;>W?YRDGZ;HMLLMS:2KNM4^?GB5A9BVC>N;??D=CMC;TKM=6:K[B;GKKKK9I;A@UOEQ@C?RdO>d7DNHT3AGNUAEL,8U<@HLSDT=CQUEKPHPKFSFG>;DHGKKD=:FFABVEV9EIRL@IM<8;EHNM@HQH:HPPSJCGGSJH?B=JCEYXDJGATB=DBCHW_JQCAQ8>D2LJ;G2>CD?8QL6BOEL@IMB?QVVQBCZ58RW=A7LI2HMIBNAGGGCP7H=6SMAV=54B=FD58/D;Z;=?8NO@>8OLB5@\T^HG;5L@UNAYF@A:PHBUCGGDL\BCUHLJSJCA@COJLKEP?^C>BIHM>NDH>6C=@WHE=LKBKBIFGCEDIHNED>FCU@>FGNBJUGaGCDHFEe`R3JGDG\R=E5DFQP?G>LK3F>@ceZJZ[EFHLKB>CKG?BGHXLQ@CGM>CTDEKMFBOLNBO?S[GNTBSNEV=QGJAAAYMGJTIETFPTQTYLKEIBV@>LH;N>@?HdUDFNEDNPT4ZX\F>7PQDHLSECZQAIKU=CNLQ8KQ6F9GXH=KC8NM9LRF^MTOOOPIF@>:=KSa_C?GIFJ`M7CSHIOOXKQAGUVGC[NS@F=QTLOKBCA;LEBO=F_CIH\RA>`JaDHLXCMJZPRGE6DPSHAGDPMH;X[ECNPBMCOBVD?ZJ[T@SF:F?U7XGKLN\C6HHRKKEJPEQQEPQgNR-=>XRVHAlK?DEEKMDUGFBQKS\S;YU?GgJHDS<]JmG8CMZJMMEQD:HRS[5U_J@TSHLkHIOHDAUW@I?FEUSLMTALNRVCIiJLJDIR?;IN<9S=GGHO`?TL?MGR;V?^ZfKTMKNRAONFZJgQHMYJG:L[OT:8]FQLV>GG@DQDMPEXIGR>XLBQ@WKMNYYF?YLCX8DI@PJ?KFLVbDVNBD3;N*D9KODJMBS04VI9QM=OME?O8HT>>%>3K;?HKFKMf;MWCH>LG:JGNDQQ@@SEGH8@DJMIdN??2,K=GD5LfPHM>:??>056@6MLM=G>8IID:EO73SI9:<4DEC7OP?UKf<<eAELM.M?H_G9J5AQ5&8?M=.C-FWIEXQ:O>CIPCR9HOI^]ACMPQ_DGKCEGIKHWGJL=MCJIJG>NO?MC>EdN@EM@EJSN@JQKCELGAAKD@LKN?OHF?EGAOWMK?FDIHQARIHLMGILK;3;B@VDDKF^FAQ?ZhEUIDSMTKF3@SWBGFEOSHEBA_7DSENF\9H\ALIhCQL=a?GOD@L;?4JRKINN@`DGY=@RD:5PHUUN:SNW9]FPHTLGOIYLM]<;CPH?@NIAF_QNLXWNS?@eOETCEREGBMJO_PDLKCTKQzE<0]g?=J?RB_NGKFWDqHNCcBTF;O>AM2;@BTDPC3LD8BNCB=I)D9\59LWUS-B3XKOf1>7G?F?W@Z;Hi=F>FGH=7GLp9VOSH.JAiM0S7NC7D@@OZKKKSE@bP=Z?MDN4;MPBFC:TMASYKY[KBQ>DC[RD\Gh4MI[7W:QE?N6HVQBD'^U^j>?GC<OZRL;;PK@K>E?OIQ\F^K:BF?ADXJGZRR^?I7ZOUJYFFD@;MU8^NRK@ITXOYP2FR]B7JU^DSB[Og;ED3Q@:EKLSB6BQUZ>CQQO>8QLBJLiMAWRPDXEHV=AS@Y@ACLN@BOCGQ8RIK3lHC5?V=QNAAOHOG>THh_DGVFI}FBHoDQRBMQGJDGKVb@Kf=H@LLHLhKDAdWXHORJII?A]DE7NL58ODLJR[J>>K9IF?MFQJF'RJK[S7AY0MLFHBsBHI_PCSQO[>TILEHFMPKIGL<>?YBMSiEh?EDLB>BD=7NLE5OcGHMDE?CGIDJQG;=Q@EIFHE@9UKI96@>B/OJRAQ[V?AJ<;FE]7KDZ@CaJAW>~RM5CL=IFP@@BKV:L=>GQG;>EKUC>VAP^H?OCP9BDJH@L>UKLEB>DIHGCTDZLIIEDFEISJq`@O3A@IAQ=OCS=MFDM>OQH6[BEQJOFXMVTSBA>UP^E[DL5>N@QWLCL9OA\GeI@9H?CKVF2>EGUA:XKXT?NC>S>GA6DBFENBEEKBJHCaAA@N:N>DCAQAQN<>HGLEYEIRCM;YIHDLPLG^XIJ?EP766S?VKH?;BIEP]ONTIE>XDNOMMNCJBHUEG>9PQCNFH7T<>>_JIIQ]EKAIDJHIKED>SNDS@BCI8JT3?BEkIHAVDCCV?KJ@E@K9=dCJHJDXNNMCMW4IHUHL>:A'QGQYMVA4B:@>:F:SFDYJFI9=>F6`>CR@9O@@`9LIGNDJWfM?GCBDBSH_>GOM;9FM;;DNVHGSCBGFITKK@EFHFASM97C:L;FGM@[JHFNBH?OMED>D8MHHT@G@@>S9GFE@2EN?KKF7T>J9GB?KEQHlBMTRAN@HDEF_F\HP_AFKBF>VD4VBAM=EFFTINGCZ>[@GL;OLL>IJY=[[AO>J+NE);GDG6BO\D\EEAITK6B:;;Ma?BT;HC=AHMI`TEP:BNQFKWRKU=w]FTCRa3M`R;C2Q=MDIMLJ;VGaX@NQJKQD=Q8=H6PD?CeTPEfT[U3dFNO=J8KFH8^PI:A=L7=KG@A=G=IK^IBKKI?Bt6>VH<_SA@SZSEBT`V?E;@GYMNMCEPE>GFiY>[7T5i[2NOIPBECJE>1TY:P5K@\VJ?AB:>K,nSGWEA,NAPUNA8VESF9;SfPCESOFIC\MF>?MBDF>>@P+C3HG>/AV?CX?3[.Q@VHA@K5E>3K F2DWN@HX78gjVD9X+@5CLTYQ:G>ZSdCNLQ^@-UQR3E?e7[=7UOJ4aIEGRT4AN?G<8;a6wJCU9:8\L0RHEEdQ>:=HNdD;J6876VhAABOADEIDPz8KFO?G5xg3aG>WGMPII@BUZHE?]\GPNNJEhLaYOI`VTK;EMPFTPJd>N]JI?TK^\KFGAU>:7HKOXY=JfOMFQSNItHE@GMB@T]@KLCQOSCeaIBL\KU8WLTEFTN6LHcBU6YVQLGP?R>ABJMGYKFP=aFTB]kEMLRB9;cVE:A@]CSCY=RNEB:]WEPUFVFJ>HCVLP>Q:HJJ@JA@GQK@JJ[ICKC>9JANbJ>BY+GK>ATHB8FUF[CJ@IC>CUM8EpM7HKYZEILGOg:HRGM:OMAMOW@aW@F@H@MILN;;EM=BGGF@FG;DQMRJMEEBGSFDPKZGGFD>CTJAE`R@BBXRCZJhSR@X=P?SI\EFAJHOK=_FIYLLUA?AUB>=H?J\OSd>=BU^F[T[MUFCMGbUVX;fdCBVMB]CX[7K_LGKGWFJPR@NFMFV@UU8[MKXSM;G;PIM>A5;MG=9ML3>;VH6IO[JOM<0L=9NTGX\;-A8QMTCOTI@D/QSXG?7L15O6UJ6EOAIZK;/8IAFMGDE4GE=3EFLPSA?KH:EEGQEE9A?OF@^4J<8QBN>ANCI9DIBGQJFPJDGH;F=PE.KF1E:CGI?YRNKQE:fBBH@UE7]G9LJCJTLIIYJAD?^?NL5=Q_GSGJIG7BRECEMNY86;@N>OKRNGELG>QSKI5UDSH96>EJFoM?E@iZNM=YM3gGkC7\E`TEHIO3:PKDIMPXACHVRG^OU?HUISJLLa8?YFJDAFFBD?;9?LSL1IOSPFRQEKITIMUBIJA=^LGI;C];NM=K??HP;CHXe7S@D=XIR?LI:=7??OVQCAHFR:4TTR>TMGO>OCOCFB\HESEJHKG:H.S[EYO>R?R5CFNPILCh>IU7PUL`Q6N/FWGGNKEAOUFP:BSUM@VWS=@CTMDEcBQO6?;FDBEFRHOKYK_N@INQEOPJILASBKQ4:E?DQAFYFMDJ<=OeK=W@E\GR?VL=IGGNKIVND@A6EG5G>DI?DP9MURKQRIDBB>I]J_:ZVMICRHRNOD?AZKZREL[[MC+4E:ID>HH>F:@R@GKXPQ/A`L@?GN>IS4JHCEH7MJF[PQDYXR\P@P@HMPOZCN>OTN=TLRMhQE\JDR6NZKDSLP8QH?HUNGa[EKI9>gGLF?6^Z^hVQQKDNA]?Yd=RYT]MLKFWHVEh>TVJ]OWXqJSU^iF@HUI@8>H@@4SSBYBI7EFAH9aOALEBCPG`NNZBTHRSBHFTjHM9:QUD:?I>FCpKN5TTRW`MJ_KA>LVP\?HOLF<+UV>iEBZQQGId?W_?>HLPL?eJf=JB?I@8DFG5E5PFUOFKADV7HH\GHQC@O8QDIR@I/OH_RHHD7DAGO`MEKnDG[FFA0OCWLEiIUKIDDUQMTP^GI>TYFECBXBA=PJ^O;O=>NP>O=PJQNWGL@KL=MXB_9MI=I@MKL@V4^MFR[FECID=KC=DMDNOBCCK=@>>W:GXSPU;DH?`=0LDIPKOk6A94P?=S:)M>R=K>JBMF9QHI=JgCIAeXDLHJI0NU2RcAI=:UB9FWD9XCGGFAWLJL9T<5:N[bMEJ?TIEMP8W_BFOHFH=KA^LK;GLo?FEFMGZ>HQI=@>E;EB<9SGII`;>LZMI?DADQNNJ=AOC>?JKEKAICMFDI:E:RCD@NNXAC7=Q8E?\RGXSO8F_\_JEFQAVFJA?=EFDPGS:GRA^CDGLFHMINADeHF8?7GLUPC[H@WMCGYQ9=OFIJ9FBRO<=MAdOPEKFM@>]HNI8UYD7KRTWKS@_AGHQ9QGK>OU=Ge;MRI5A=GDEUOWAG45\OFBT?CILe;SIGJTPR?2:J;S:;FLKGF=FOaM[@FQAGSKMF@6QLTh:ZAA9JAOGN1NHNUQFRNTX?]RVX:;?QPAI[W7L>UHIROWPFTnTFaFMBMIGG\L\WTGBGJFD@SFkAPO=KbMRGXVWZOLAWHAUU@:EWUETSRJXU]RZHALHOaLVHLg\SAP;4=ELW8=G\OWWLGBWTRE`PRBTWRQcHKH__AYWT[U8SIb]MayY[BLDYG:f?GHH]PPKEC=RMLgHbBV:[BCGMVHMH9OBBLSJPE:RA?LQ>NEAFTJXUFDKFNiHgIKITRe>=YZIGR`R;]FL?XBND0>HAR=T:8>KJX5:BPSFD2??FX68DELGCAIDIJEMTPU@9ZEGKFJ93T@11BRKGEHIL[ABJOKOHW4RZB7SMOUVBDX;MG?BGXB;O1IZG]E8QO8GNHFO@]>OMLJFADBqDQCGM@M?KBC9OHSH=K5OGW:^B[A4E\@=]HCV6*CHGHOM]8WPGNL@HTAPCWRTDABMJBN>I@UfM=GOFFXMFIG;65I[>2PV1OSK>P?WPd7F?H9SG7HMJ`GCVI9RBQAbGRFmGAA=cHU5BOBLECIJF\Jd8RKFHoI_L>U7GEPW>R&@QgXCZGQML:R8LWNNTJHENPCUGRIF?ZMWA=IG<@GC?6@JYUJGDLURSK9C\??RDHb;BA=BG0CJJCB=SO9K?JGNUBL7=IkGS?I_ANAXB89S9<6FNEQJNTTHH3NF_JBM?JB=LTIGR9IP3B?N]@NCYMF?C-0OLLG>MH3:QC[KK9HGQF694BR9XFAW@DQ92;4JCB8CN@B>DOJ4O?6=FKG>DGC8EDRSEXG8M8F<5XD@9O@V=;>9NMFMR99JDK[RBCCQ>ZAIAJBVE>CZ&I@7RLU:HHDRN>=9!P4:E<[BN0<2:FI:Z?I<0THLN<@P=ZDCF:HQGKPMKJC>JLOGJ^G5=FE;FD:ZFLRF=GJGH>3]NC<NU]c>2G^L]H

@QH?V=LNJMRa;EMTG?JGD\BGD@`VH??NKB<1O@CQCCDWF3>;e\F9Q?8vLD1BH8FR>YIKA@SUGK3FKBZF\ELEEbGERED=P4I9JLII>?FA7;RP6TIDVJE,MH8X[PJAjAKDK<8H=?O3BIM@TBsN=AMFPYFO=?3?8J;X9G1JIsKLEB@ERMB?3\BBLPSOBB\IT`>WH>\T8W9]XJMCfKED=JA`S@F9WCM=QPU3@AEJDN?YGH1@HIDL><:D@;LGIR=M\2C?EB=LGQKLEFVFbMC@NFPR[>7F?8AIEH:?@3OAMQ9LIK7=DASSJNKP@GABRII?GGPAHRE=9=CYDKGKVUALBLE;bJA[>?VCHED>?];fq>;EJE;BVOL,DVP98:YLSDQ>LE=ONJ6FC>@JGZAE=ETAT7:@BLA9?DI4M2[XEQAENEK60:GG9[A>CCOFGREM=DL=FJHGBMJDKRMHEKKEHED@>HHYQDNL8A4CGBNFFQ=Q=HC2HEI8DMK>L>DDI>GLA2;X4L@;;-OCPFHBHBMMBEUQ7BQCAA@@8TQFD2W=7PGTD-DJUJZL;R=JH=GNNAL;RGA?AYI=K9K?7:DLJE?:HHN>LCQEFfI_UHJAAIG+EQKI<>JMHPN=G6LJ@@O8=WA[B?;HzCG?ATIOS;P?C7OEC.DKLXNVFD`GEXC9HEMM.2NIUXSD;FTJN@SHNkGT88G?X?MOFN>`E8XL5BH@GIQDP6@:0:QT0:LBD>G<=@CE@H9C>47W>@W3PN>Z=>DSPPFRo@?@EI\A3B_Z:MEENZ1@HCGCE;FKNE5UIrMhCGBLGFAAI]E?WQKRJH@F=6c>IJ=:R=KEA6l=V:`K?K8$bBRJFWGHP6:^B@HBbC;1LRSQHTT;[9DLD;E?IP<:=@O:IW=H?QGNSECH5A?9RDOK>GFIQNF]9MKL98Y@?HRM?MDGgIKCJCDW^CF]8TLGB<5I?KAAPHA@GRHKEY>@G=CJ[;?ASPY5C>EQDI9J3BCDADICE;RYLY=NFHQC>CZIHISMCLQN>B;CBK\9FHVVQH?ZGCSVLQOC@BMFLGK:DK:LFYF\KM=W>EELTBPLYB>=LR;LBFQ>K8?ArA@NR9AHKSR3GNIGJ8BWUAZFMGPLA:GIPJ9MK5BKJMFVR@FNI7>IP@A7IFDFA:MV@9KFFDA5OL]?JAHHH9IYPMD;JBORKKNB9OS;>X=?=KI@>KRU8KaD[L@;[=JZLAAOB3RIMS9H]JPIDMBHOCXRA=MQULZFJHT=PNAJX3@I>F76hKHC>g5=I>>TLYD:P2ECIAYYFUSPZ@AGW9XB?=PCOTcFIC2R3SLKICKMIRXMNUDGILESN@XOVIBKEMNFWHGKWNC4>?:IPSJ9@ESKI>WJC`=A?<9H@DEG>N3L;EbA@@H0P=KBD?CK@LEJH=XCVBMRVV>4Q^TJD;UT9IAKN:H@>0JL:>GG=R^;>@IIPcHDIFBRMA86GQGJQRGLHL@DHFREIRLLKIFD<>F>GAIG5BBMU?AI?GbBD@FP9EAH3;)8KID1HHIOLLMKZBGA?BE6DS;=HIL;OI=F>X>N5FED8BKVDB@=EEL8G7EUJTC@@[B@KHSYELVNI9AUGVFH>ERGYDWLTN6JOTPJGV?JKERIQ>ENXKGCNmPEDGHMCDYESNJDW@PK@IhLFD;>VIA\FUIA=IBSFLHGapHM6FLEGCMDIA6=sN;QL>GEE3YM7MMMYTMJPZAJMaFOUI@=L>U9XF0;KNMLENUFNO@8IXPM;SF?VH6VHaRDSPO_IGE>8R^\Na6QSXB+;FL<+UB7;AHD3JNX;S8H>IIL`IIEQQU?DK[Q?M@AEaFN^SPAh[H7SV2^AM@HH];VC:TAJ>BIBZF=G?9JFMG=Y@[R6KMAOKZFN/oKZOELZHLEIhIOP\MGLEDN6DAY]9DTEWaH8LV5JHAIDKQF@NENI`PQF@QOLPJMDWQZXWNQQOOJ@Y=B?IEOU;6CGFLKDHhFF;;AUTCNBNPFQD9>R>PDF9S93PD=YS::+;\:C?>C8?EFRB7D@WV8ZS?:HU@;AMh[6[HG7CNC9GUAGAeORS4GXCdKEA_ID]M5:H69\D?IILGVNTW??IH<>6J8L>@>NT9E>HDNGBU=OOA6CQT??DJOU7F@L`XfB]NS?OW`PO;AM)WQKYDU_D;GPLVMGGhPOOK^5IFF4=WPQSH`AZNH@O9KNAR3G=RJGG@RCLDQ1CCDFCQPP>A99AAGNJCOJAHCHQKC7N\LM=D@GMH2Ui9GGIFU@EAKAGC??@;>JB2J_:GMETMAPQBEEBL?O?Y9MXNBGJMM@JEKQ=D5MFDOJ=;TLMO;S:8DJ3IAGNBL>A;CLB=E?DMTG@HEHE\BDJJDX2H]C6DK=PDCU99HIF@HJATAeAFRNEO=CBFCCANJ>>FF=ZIE>;>UWFIAIB;M@4HBB?K=KL??QG:LAO=7:2Z[8FFYEIGGJ`9IH.OLP21JFCK>;FZHN`A8E?IF=OLeR<@@DD?UORA@VGO7EL=MO@PL,[FR\MHO>8&:?AVFD)=Y@DBQ@H@>8@IFINCIQRD#URFOGF^UE@V;bBFHH?RCG<@PG:IXDGHDRM=E=F=T4B;RaJ6?L6XZD@;]<3MT?OT/DN3;HECFD4;4@6!ACOL4qMCLHHCP>MXIFD?OKH8IGM9KU6IE?MKEDO2=LIII::ALGMOECHKLFE;OIE:@J3JG;C1C?@L6;GBHH`99eD7QTE@CGA=deKIPBN3CBGNÝ˩IϭĨˢ¦ĬͥɪǡɪĦƠƬŤ̞ӬΡ¹¨ѠĢ®ŸŦФǢߥťīêĤ¢˨īʠŤɨÞğɬťɫʛèɦҧͣ¡Эéßۦʨȥ͟âϧ¡è§ʥäĤģƨť \ No newline at end of file diff --git a/packages/backend/nsfw-model/group1-shard5of6 b/packages/backend/nsfw-model/group1-shard5of6 deleted file mode 100644 index c8a9f7401..000000000 --- a/packages/backend/nsfw-model/group1-shard5of6 +++ /dev/null @@ -1,18 +0,0 @@ -ŧƝèä̠£¢éȦǭ{ŧŦd[çæǣfëħīDZġṬ̌ƮĩĠ£̡éáȬ 7[-.,#; +&+/"-7#715)0*)2$+$+/+21(#'9$,1->/./(+$/)&)5*$'0-+!)%>*%0,, );'D(!69400< %#1#%2$50$1+;%,%''1 A"+9)12.#"@30% &)1'*;+0*+224?&6($+.?8_'O;0"#$%.6&*7'())91)!4 '.1#2<).2 0.C(8$:/!:*?%#&6'#0-+*)30&$/3@/3,#.%8%52+%*)"&()*D'%6!38%'(4*J#'+,&0#%*#/5 $#+--0$6-."K*+&3 (.**"868>.:-'0!0.$)D.<4+1'!*F6+$,%!$&9())0+?),(.<$(5(#2&.',+K-#$'*"$%*m-*7\/++(1!*3%A4'/.+=38)'--!>*+'++$/%-02.+.&$,&( '5%) :'$,)#G6$",(&/'*2-0$1&/3$0R+))#&2*=-4>/$,$###2,39177761@";5+&2091,% 1'-*.0O/)',%,0#(,-(;,<('-"4&3'-&%.>-%++-(05/(%.)/*+75%'F94,)!57J'$ ,40)*2*87:'#'0! *)*-$*0#&)1$,#75+$)95)Ji/%-.)*&0@/)=#9(670*)//8&-*#);'(#"''>$(4)(N2F.&)%4*/&*"9(/-:.*%I#('4,.-%**+%-'0&,001.-6+'+0+/*$12J&$E#.()/- <-0%7:$85-"?.5 *-+@,2& /5-$3%4&)1$.$/8,094,!00K3))56%8(#*+1=&$1*(:%]"'3*3' $(61 ,@4#['-#5&--(? :&2%9!8,$4#3&'34)92&$="0-,28&-*-$83$61"-*1.#+(F.48#32+8/),!:' 0&',701"3+3+%7(,'G%3O#0(#44$".#)*31-*0,7*00&1+12!*/(2*7%3.".:+6)..-46$*#-/8'0+2)68-0#CB),(:*G9-%52)7da(%+"42#''@03@$>/7#kF&+AH8(m!33,?A*4+50.,!1'4'28->4 ;#+ 101%/!6/,)C,6+./f*$;&%3&,&D,%":+?0)!4(/%-!#6.'4%+$&D0"#)%,#*3-,13"/EC$,.#B7/#*5b,>0'& -)&.6(*!$:+00%7#1$*8I(3E% -A1W$,3)=$+/8":50*3 ,''((=*(#-1%$ .8.N2).;:*,,.(%(/+F)+14-%*0%#!)&q'5,-56-+530* $Z! -&-0/*%-'+),32=+-4,?)3!)&(+8&-&,#%=N"('(L).=.&(@1>+,&*+%5A0a.&:1%8 4$*($=7-(5*D14-+&+=-/.0'.7(9%%!%2+&$.8%1j&4"40+#!*>e3"(%0'%$:3&'-&0-2L-3x$.!(%91( $+(##9(1>("% -N+1-)()'76)-$4d$$(.3-,+(%$00.3%(82&'.+3"/&8hK+0%(/(85$+1#5'*,&6#(.* %+'58-Z'&! +'U: 3+-0G&%#.6+u,#:,5",/-&H.?((0!")/9"+94#*).98&4/#1('t1&/$B!+$)7)+&:.),. :"?,#*(45!0(0*4&2+)"!,)54-<&4*24(#*(')!4(,$5%8)%,1=%4D%<"4n1$,%.G')*=<0(,2B'0.5$7014.+&"#;-!"%D'%%. &+ H.,!H'$/0[)B(<,/ .)% ?,$+.'.)%5%%.0+!1)/ > 2 *1/3- )F(- (*L',;%!,+%;3#!1&0$& -';*1$&?52&*,# %u1-<&-+*)&*)!-5$'50+ C+%"+5V1-K#$>4& 3)93$4$$#?*&&"""&"2")?%(&('$1#(+0(#3$(0.+5-()'3/+J!*-$#0+3$/%**+.-#0-A%/D154++#-+=7' (/"4,#L!9"$/' 4+4-, )/&)&(!.33'/+-4(3+%>#;'+*'-)/-'+A/,#/.'"A10-( #/&>0(/""!5 4'1;(&$":"=#)-<,4(*.&9(*-,+-.%#-%2'531(,->&(A,"5/.,,)2$)"#44$),.#04))=@*@4.) ,A,W37&*>1*& /+&V2&.3/2%(6%=+"%-<)7()1 $/.7(4?7K%@*/@'0)-095,6000'3,2&##(8-$4,(C.'712$+.1%&'B,.30'(4A$/,I)(/$+:66+&,"4+/%+?&*@08'=9&;&F$%D$/*3 $/%24!+'(-!3(='3*)-&1"7/)"//7(5=.,"$#$$#%(-)+-&/(#,0'8%#,$B,-&38+=")'2' "9%3$*-$& #'%%++#+$/,/+-63&3 16=+w-$34)(2++7/#**0(+('.!'-#)<0"'(09*)!.-):%(++(#%'0,017<*)9#+&/.=#0$.'&*:)%)%%A#L04@+66)")0'5"%+1-*.251%>/0%## + 2&(.+2+2 ' )!&�%(>!2$.('E/1+,/+(.#28+/6.6R&")))'&-*)$+*8#+#'.)-))((G!'44!0)$1+4/-.&#")/&-')&91'%#'2+/5$)'*.,)/#'@"+/07($M2&1B.%'5(.',A%1,)*('##0!.-.;'1/.@3,,(*&B+( $-.(/;#7'+-$)*$")*2+%#$,"+$(1$-)#005=$*,!+.+2+./#(.)"5!U7/"&)("&+,,*2&!-(?+-,8/5#'(-0(((#&JBC&$%"B+'./("++-')8.9&+>&14&$$F*/(&2!%);/),H21"0%0#3&!#)//) 0(/'5078&"7;,74/#".02,++6!,./% "&.6 ,9$.(.)1/#/*++@".C"/&.2" ,.!!''-%8/%+>)','v7-&"20$((+0&&('(0&6*%*8)#=2#49(Z8I'L$6&-(;%($'$,%'')F: ,-.&8++-'!;,"40$-84# *$$!-!&$!6/A99&(##3(&*<.>6?&6"/#)1"%#)&79,(&#B%5,07/+<',.67;/$"5# #N''%,&2J2&1-324&4Q/?*&%+$1/0+%-021;*3**):"520+) #|0*%&*2#,,'H.",Q':%"%-&$`$8<0M.*1$'*@&.*."(*-5,$. >+"#&7",*2,=)%&7,I!<*,7''--8-(#-'&5*++/%"(&!716@F5;#7*%/&E2,5$%(%L2, 3(4%*-#!1*732,+(*6*<$,/ ,-$6V,"5$;&24(+=2&,38&4,3(%#<$%#%*1/' 72#).&5*/($46(1'&(@0#!C053 =,)!&%#)%$')-(0)-'-0$!.(!:(N%-0!(-+;%%D6/1$/%[(')9!6#3#03.'9%3(1-%$+ *9(!53)x$1A\,2"5+,)+)'$+&<76!N.&5!/L+:'50*$433#+%<,3$,)))$>1+#2&4&75=:<$+%2- )',4x(A(!2#4%+#+/1,R()>,$).'!FU%0 !4.,(+**,)+0*80+()%.(-+"6+',/,V.#-*,7&((4.+%)0&$$*,$)-9!/8+/%3(#'(5-, %%&,%-,+)F'<1!*/))0%1.*-+7*%.+2)060?&16*3?1)*(5)/(8 /$2%(&>):/7()-21' 9(),*'(5.++$D,),'%,*.0/98;,4.'%/#$/2$.-(6'-#(),0(*!' ),@4-%'"!-787(&70>(-%0/1-T29%-0*3-*++&&9,8"2-3#3.7'-().&#-* (---&0( $0/*+#1")/.)2*)1+-%?"16%#&/),8/-!##++#&%-'*+4,,%-*#&0(<>0%8!#/5,'(*@*(8"1+%,(-&+-0M*/2*=5+!3&.0/&7').&&:)2E "1/'82&%8'1,+.*)-)"11('((%U0&2$(*0/-*-'5)!&%9),?%+(')J+-$&(#%8-.0.5*>$*(-$('"/2$*0('"$)&*$3!%)M10-3U$)7(91'"$*B'"2.*(1.''$))A+ $,#7/#,/"-"+)(+)0(,5/)(+(*%2<1+82&(65,+.'4&%1'33F71:H#@/*-/2$#)&())*"0):9#.,$?1,(,<)23+:,?"M'!#&7&&;!%5%<(1*%""3("55"!#0(<&`"<7J#,6):"*(8%)&3)*,1+#5"MI{6!0,)&29*&24.-.)".'$!<0+m(&&**0))-#=(7D)!05$3$+&!"2$)7$ ,%1J&$'&/?6)2/F2)4(41$F+#&)23&2#y&18%&'*+%)(. ]6A(%62#6(&2I-'>#9&,,/#&/:#$-,&A; 8,:(6')'/(-84!* 5&%V.$,%#2*-'./:+8&5$!3)#(,7)'#,.?/*6A#,-5&*&/.%@.1(#+%*.4&%,. /&($+)B*5#)0")*,)126(2!-7'/-+ <$!.(#7!2&4-*$*(3$ 1)3.547".&(1*: $*"*7*5*$(&1%+(%!.0+4 /$/$)2#1 ( *>',#% +,'+0;537./"/D,<*(,#&/!)!%%')('4#8*"$ .#%) !&'.5)8 '"(-29,'."*-D/,5"F:*2*&%!+)0)"+3)(*#')61+"'>0$%;+-%4##2'/6-014*'*;4%+ S#.)E-%72+0+/.-3G7"-$*3(A*%2(,=4E+--8$6&'0+''$$'-9N+N*4.(--07&/,++/%',%9"2&)*-+,2-2! ,4./?@8G#&J$D$+.(,!+9.4(,)&4/"*7*5933")+.51G.!$(8j('3E*(")25J4.'..;&3% ()*3/'21&,+$,B&&+6#' ,3_4%06&-,+,0<'*2&(*6#$01C)'89- *(I*10(0@#%024 *,(&$"+$#,)#6,1*&:%R*;&*-%.4':/.8(6'2*3:,('%,4%0'$+&A---.*5-(*7$2D08(-%+.1$(2%1$C/0*<.*%-+T*82:?7P&8!05" C0 '-'*Z+,*; ;+,+$+(%&.$%/'%$-42*40"($#"-*)0$-%1,,4++.B%9'&.0-%-C2.0(:+-<-5-/0(,)1&:E(2/!)64*5"'&,&$"!.*"="-.*+##(2!50.+8%1, &%&#*8!6(+#1/6>. *+.(-"-*)/&/($$80)'(:*.!/".0#.(05'6/#$.)*,'&,<)3##8C!'2!$F$-'6.6$&4"35/.08%&0,#)#)*.0(Z2"0--##*%)(#$'%2''%;/"+3*-*#' 6,-6#,(13&47&1}:*-(),+ 6$34-'0c9+?"4@331(&562--)+**- 4+&.0:&/3.,5"- %,A)4/)3 ''&)8(*%8;5")-!6&D((/("=)')3,=0'-+3.3T'!*'",*1P%!)-+,?:/,"1D0%/(%>"+6="<=OW/<&-I&())1'",&PY(23#&.5/01$!'&#"6;3+'@&;$#&,467/2,(S"8/8!$..00*?h%%$0(E#"O??0("2$D"'!$),10;+6-*'$8*'-'X0-#* +!7+$"-%:)-#"@)%F8+((*2*@+/ **% .C/",# *(6''/*'V@.$7[7'1(&&;$9)& 6'J,)2&-8(!$&:S?(+ Z 1+%W4\&150.>-"!t'11*"%,;/p)/.y,-."%26 B$<0\.2%>'/.%3&"1'-=#*!&!J9#F*6#5.,,GZ#D"X/)5!96'' '-)'%33)*2/HD11(,(+.#&3'C(#&5-+@O['^*).4+''.6(#"4*.2$D%(,(,6$F#/+:(%!-8%2&16>$!4((2J,#')0!*:+)3&$3!'` '+%$2//8A&((($).**90#3&< ,/#!>#.,",&)"$*%"3&612"1%(*/-7/(&&0>#Q.K.&5K20%!$6&K##%-/($).(%+.-Z0+"aA+%*I=-$()%L3*$*#-%"-,'.9(*4'C&*/)?K*(/'&)+%-&9/*")$+1*'= ,-4))(&;,#/+ @:,%-0#*'#&@+'Y-1$)&-)32"//$/!1*0!*3L&/$7*(!5*/(!.&&0!-(,1$).!')0*6(*&5//)-%)/2:%0! ;#."/)%#&)-5!$-.,/$S55&+5/!$1N(,#!,:%,(*8*&/]54)= +E3".1+/'!%!5)&D0%#'>,$.+5'.:-&"=+. 0)(+2!0"';0 .')*M(&2'-*-#,%/)8+21-&#)&<0,#7*&1 A8)N5"%%.)&,*2-,&MD0+$*^8$-%31! 64.M/1.;'-6G$,&(3:9@3)#0H2?()/?(4$ ,B*4'.#)-)'5-&',21$+%$A!+$7)%6,)@+%00--*(,)(2/"')/#'-5*7*;)#2*E0&_*50")4,)5)"2*!*#%K+/&-'*%!%9!6M"6#6Z1()6 =&(F",)[+1% 7'&,$(%U2$3!)2-+#-;@g,(+-9,!4.40+0 $0?3+H")J+"#/**'60+($1,(A+U$;84&,!*"./.2 ,? P4$-#(v"$'(1=89#").(F/$)*%)z"#4"8&<3'.:*O+5! ($+M+N6$5,*0)'S/#4'-,"$D(%*#(+&-67E-.;"#5.%#%+'#%A=6%8^2>(F." 1P!1,&!';$%&9%03C'#5$/65,!**#!&#*3"#)*')&! /:/A#!7=37^ *'":A)4*'&8>m#01"4()'"% #"%9(H;/%#.%=++&.Z1$9)G.*=5E#72&'!% $2,@1&$1 N%'<4##,*$9, >2-&-33.10-K2&N;- @D,;3/ O0,#?(.-(2.0)-'!1!".R6("A&$+?(0'-%',)3B3N(3/ 4>G-#,)&.((5"*&+'1)(,"D K&63,*0C/5(2!5$(-9)("E%24,*9-<$*$1'!+2*35*!0.,2L@NK ,S'*,:,$,2 =9N.2-),#J)':"F6)&1!%%1;3$7&2*<50B3)1?9") 1L;&)7') +%$(/#&/5;@?$*0)(.%&."*,5(30(%/-@$(9'<$$4&%%4:Ma",/'-:*/II%&-'4%+5'.1'"-/)!;: 39&)14$.784"-#.#".#* &,@'I3& +#>6&&_1C]'%#35'1 &*(F-'(%-,"(*3*('-/!(012)F 0&,+9 L&6)*.!03+9%96C/v3&,&%-*#9$$&4&7$51(<#!A+P&+#8(,'/#+ .).*5('6')1+%)!.%& ,+(&%,*-KD0('!'.64):&6.*$01$( +34%% (++,-5("+)-#=K,0*'4=#% /C0*7-068=+6+*,1%&$.B)-6,8!-4)&,&"!8&()(+.)(/3.!)*%3+$)1*&4%"-0(%$/',&*)%1 -&*&--204--0:A,-,*&/%23#*?3,+*%",)9&0****0%/;-2-?8+'(.+54-)=*56($$0/%'3*2$$$.65/)'04)*:&8$."2) %0+.$4"$+%*'+%5"$I>3+?D3,/./*19156A !$7.0&1,7;4#$)(2+$ 1&33$.,'&.&,35+'++,7"$= .,(*5/!4.): *!$?,(/+8",6@+3%'/ ) ,(.%206:)"%+#))%&2'') $##&(2($%'-$%-<9--$#!%,/&&6)-"'$$0,"&.. ,B+!+/&.(-$.)$.+$+ +#"01(**7.9$!+$0 '.!'%*!0/+)"-'5) ..!/1-!#;-1+-4+*+:'.-/6&*+&"8',2/#7&(!.*%+$)%$5%7# %3),(#"8&+*#$2#, 3!)*@.3,/"12.%*0866&621!.*((*'2#8'")-*4C,+5+&+**0F"-*++%/1),.%83*.8#.#);,'$*A20-* ))0&!,*")7$\#,43#%,9(*:+@,(*,"))+,#8'!&$%,,4"$:6(8#7!*=+6/3('G'-?+-1)$+++,,"*/527)/+$7*1.###1#!2"#")'8('/)2/.4' '613,A/1-8*5@',%,)-*4%&(#%G5+&&,%%,%'"0)!&/(/6'&-)M'="#(,(B'),'"41&('.,4*,/4&8+&-7)-#'*@%9%I$*'+#N++ -!5#1"4+-.'&1!-"1-('#'%%022# 1.%0.&10//3%$%'2K&'"<+$%@j+,0,* 52.',57&%**8$$2&,;!+3%002'%(4)(*.*3&*1+$%,ZC- *#&2#'%*-B#2.1'4+1&;*<((,J2"$:)00/%4-3)..,1#$-.(*&,*'%$3'(H5!2'+/'#/!0$,$>$*#:("6.'>/(3+>'='&-,H/*&>.)/..($4("2&X/d.#(0#+9;\&'!3=-)1'.$.#%'(*&#)F'",)((/)0!)+_**#7!N')6+)%"%& -6!-9",0c_-604(3& XC4#*%,+*#6&<$)+@4+0)!%*/,)4(+-%,&.210&.'05.*!31&&4-',$"+,5,5'(-14,$'$/+($%1"'($-%:.)-/0&+=$-!)"2%1/-.&%%**!-&/.#+*'%-6-*,,4.3&$02)&/+$7-4,#!),7+,'(4)1)%++679( !%:7".$)5%C/.(7).204&$$*06*(/+*@5'11 '*&14)%.3C%7#`T,,=1!&&6/)*.G'5,A152"&%04/(*.2)*8$'2(++.$0(%C%"4';'2-;+.7F.-/82+';'%-+@4..-+.4.2'3#(&''-/(2/5'-%!.&3+/4,- 3-!"0<-&2%(&)4(10!"1$#&0,((&,.)%'%<))=&)3',!"+-9(#=*%2())&&.;,#+;,",!2% -Av * +)87)4%3( '))&,24.&*%,&(.4(*1 (03-#,'2,<3(.6.%<('/<3#4+10)!))"+$9(.,0?..-/ ,X/#$'1)1:+&/ ).!0-)82P-"$:#)P*"%+&0+-/-!F4*)&)**6'('#4**T#(Fa (=-'&&65"1.(&+*!1 K1($+7-02/)10)&.=;5:"*!%*#(!+2&-Y('"+9&,`$+.//%)%6+%%#%+ 3 &2/5'*01&:1),-J(%1*6+1"015,(2&%1%,<*1>2%3*113*@1*1)0/-#*<*E($'(&?5,&''#,'-+%-'+&D?%X *'60+"*,2(5":?(+-*/),'/6F&%,++6+))?8+K>!,,(/:52@4]I#6*)3$=$+')54Y( #1+9&/$'%#3#%0+6((,)6;%-M)/"',<%,<'"!=03'"7'41,"/!-;.-+(:4+,$"'',+('&?*&'$;6%))"=5$-5<(-@-*9&OL&1*&681$%(2&'13&N,1$');))-#/,3B'#"%,3-=#,!12)G&/%+*4, ,**N+9&"5!B<&&04$-1 (%.+9(6%!.3.#6#"$D 3+0'/2,2L! 2)#%,)/50.22'0#&4'#"&,4&,,&3,A%2,H*!&2(-2:G%/1>"4 7=%*-&(M#3P)#,,'((!@0&%2&$'.0*!.%!+%)5?*0+'!9P19**'$*'2[;20+*,(0$F8,F,0(0/!)/&71*"&5#-'(2;#/;#+%+#6--0;#d+%'+#&&>+4''%/+<&*'2-!=%30<1'34,+H**%(3*:=%=*''((,I))6J.465(.F)<1()9.!(&$)?4--(&@$ $(9)(:*/#2 B.7!-/0,/5Y'&&8('(,.B'$1'?48&[2"$'*-:0*K0.'.#3$)1+c2M.+:+$,/://7+ 6-.1%!&%.+*P7$(7S9B*.,%",\11)-!')((*"**, !2&<<0$+!.&572,2,$^/(>':*,4%.&".);O%5#]"J5",),;&'-/L<.*((06('')3&,.?F%3!.52'(%2"&'H)2--#I-($70 17,.2!1&.845P*+&H5-&$#m*-6(&?/ $=;/##)*-#1c-&M+#))*$!0%0+L.N@/,A /)3=((9.]9(("(+& +;0-N(/"%G$4%-)-:*6Z9&",)#%."(%!@J3& @!831$&0&."5 Hk+D"*T"-6 /..+S*''(o'$%1F%/%#*$1/11%)*'**&--O3#,=*<&* /+80'/2: G$&$7()F7#(&(*F""0!B*Q* .4y7/D(,#2F*'73,$3( '!G>h*46$,/'A$!/#?9&++?'%l.-8&#&,&*,*1A,$0)M&$J\ &+6%((W*8*#,$*)5*>D.c9"B'+7':"-.$2&+#,-'0*2(C'51%1!#!5'!.)60$0 @;3/.8+%&*5'%!(*+4-$$R0>a5#"&+&3.*/(Q*(&3282%*))&;&$$+#O-,"&@5'<$"31237(4"9%)-.-HbJ)&&5/2(.'!'$,$60))G 36$,*%&$'.'$Q*0@00,(&$=-!?+811*s,#6!&4C"F(3.!*:;*&#)(,&%$+)1*./1("!(/)M%;'+%&4-A+62%$3+,%!(/$#1+,@'-'%)4#),'**+%,($7$#*.''8%!!&$A%>!--':,+%(U30 (5+Q+2())6!*-%$".,)&31++,*$c-%n!+()'0"$8;0 "2$%&44145 :*$6',+4>+ #%(#3)#2+8#%$0/&"!$,#/#&-#1%+0-"+"&!//*)#**==$H78*%*7)6<#5!+3+Q"-B%#'91(+)'')&=%X-'-!-(!)! ,x'0n?.0* +1."-:;'!'1-?2]./."2)"*6 ,1+>$()#4m1.$!*/$<*;6$3+="".%.1:0 */45 <&!#*#*/'%E5*/5A=K+2%)A!(/3:'()9+.%#-)+&32("-F1*1*/!/'#00@(*LM%%8:$575&.3"A13"28(0-.( *$+/$%*#(#7<,)17-,:#-2&49*4:"))64'%%%.,# "&*M:,H)(!&( 1%;.0!':1((.27'8O'$1*=)E)B$8".)-2.:%)33) *.#B'()'8(,$$*,+),--$:+A4315%*P.-()*.,@?4&'"2F*/&6)&%*'<&B+.(/.@))&*+(9?`""> 0+"&'+M!82%&,,H 10%A"$ -L@$*#52-(A&,*7;+!3"30.%<=2*):$,"9(#!!(g$8)%%*/"-2#596+-$.&">34')((D&'.*9&("(/,-+)'4/`&)/4$'0 F%6(,(*+**3(%%$R03.!3$*(++(##+H%"%+#y!"Ek,5&'9/#1%""2+2##7&62%)+#%'<)#/#A!&-.%16(.)",@:,(!3"%%3 -*(B$),'*'3"3*3.:%"&:U"*+!+1=J3!2,$* 17#3536.*$@%/()3"8'2)'A*#'+#A"-%0%&+7-""#./G"',)*09%"* H37-!.5',),'G)#.'&3$0"$92%C('"3*?"*)2( .4-(-L$0(W*7&T03X'&(/$ '.))11%(&'(4#"J$7%,2L&&$.!$7*4&%9'B+&%,':0$'#,#$3+#-4=-*+!51,=3"#,5-"$*)*),#*8.(4+/%#,+3(-'$>1.%('%20'/'(/(0,'2!3&(*-)/*5*+''-0'&2(14:1.34,/-05-3386,4.*.&8%(+#(>+#18',.-)-&.*K1.-.8q10&."././<(01%*,./|8!##,&$8871*+3/0'3401$+4A/2.,%(+064",*&:*.;K.)+,,-+#-,4*.!'=L3#.%+)(2(#+),!9".2&*/*;3? (@0E%5+(4 +>&4E,%**!CI&)$! +%#4,>.'6&(>'.>/&#/,".f))jJ87/!<(+I4?**6#Z4)H17&>%%K/!#3%;3*>-,.$+0/70. C&,%)(8*.4(. /?+"E->//(&*$-<#1F+5. 98$+&B')&2"/59/12Z=C("-,711)%,+M'@L)_# F4:/%<-++<+%<-!)+ 5*&$7,'$%1>9&**/6&d&474VN--M<=& -1:+$:/71'7A3,9("*'.(3&"#.#(') /)&2-#( %0--%#'"(/*)8/-39'*(,%&4+)&5,/2(('.(!.-#<* 2(+)&'+,+"5+*', (-+.'*:,9'(4+(,&))&*!!'*##&("56&,,3/#&20)&,-(*"*"-%304+'6"#8!#%%(+:$2(' /&,0&/$)2%!+(/0''3#! "--0'&3++)#+)-*%/##+A+12)!-(&'#1(--;(&#..0,*%%#(*$(111)%)"/2/3)'&-)''-0(8/)421/.%#&&2$&#,+.,(",-7+"))0,4+%,15/##',0/+,(-(- 7+0/,%(7,)!$I9,1$'$,&/+.,()%*))4/*+("!,1%'),+,*1/($#3$.) *)*,#() !.0%-+,)5&;*-?%30G000'0'$'"00,."&302 :.%72-+@$&,/'1*d:92'*(/'g6!*-0#))+0,(L!'!$+F*3.(40!&*#>2@:"/3#%C)4%XA#d,*, $""*10(72,,1,1",7)6)$''571/&' 6*+#3."%5#),%J/-)P),1&"!1*8/)()$+%5*/!"%'!*0$6&1"*4)W*9&)8%<..-((2K/=)-31$!#7)%+465)$++(6$**74'534(7$60(!<13'0=*R,#/t,-0$"@67!,*!C0$"2 $*O-2!'#"(,,0!')&M$24!611%%+%67//('"/: #G*(J,-$#$)*&6'$""-$)@-3.0*54/2*"$c+7),E,<6%&%'""-6,94/!5<#=. Z 0)*%4(&4&5# V"$,08&&.83-4)/L *!",+)$-C /&.*1"$%;(-#WK.%0%%+./)!!!+0"#ED*9%2'-3%'70#1&e$",9"&&,(+-*+1%A())!,%&0!*5.)(+-//(IC1%1*#+%(,!<&+7(#m%-0-$.$*J .*B#-9*13%" :2$'&7#&)+(0"]%*'55&)W4-,%(2*2.'4.2+8.$+$&)2.!6%/-&1G1`(# &&%#/%')-W&2<($",#4.41)3(1*1),$(6'))&'3",$%504&@!$)h(");),&-7#'(0.,)$% #%#33,"%%)"!!*?81/,W4!'+43+,%'73, ).47'042"'!7$3'((2,%+5 &%2#='8&()?.%8 ..2:-(1'8)4($*#."%*402:()%*'&)',8-'*)%" "&#'&(03,)<.&/5$ *#5*),(-'*($5)')%!"1)6($#"/"6*6/*&5,3)172/'.%,$-051/%%*K.%*2.,1$8,,($$#&&6!(**)'(*-(63!-0+"/.,#+-)-)+A"".!&(1+&+&"**0-(;"+*3/''$$5'*#&9/"$&+/}!%$')32(/%-82+(&./''2(!.#4,/-"#'.#?(-&0*'0+(.,1#!:*+#+(X!*%='4,+*A-I,3900%%('+-&#!)0*%-./+%%$2'/-3)*$+ %;.36!04,**q& '*#T"(,36:/++%$)&6%4&v%B,*#5#-$2$/)g@0"7/%6$) 2.,-J.C%%D43*.3$25'(202#-.$/*2', :"%&DE;()(+24P$8*a)*,*%%B" "5,%'$9$?(0*/!4%"$%$*9+(%&$!)((!$E.<#u'@(/$'+-) )2".$M#)8$3/6B(*)$+.3"$, &9',(.*A%3L0'8-./02p^8/0".+%#;5/ #%$13?(')*(0N#-97,!,-6,!&&-0)!'2%%))813*("-.;,*!52/7*%..'$(@-4+(34(:O A&"*$),!/"#0,2$?"5!.39*("%!"$#$(! ,'"'9)*%F8336+ %(.)!$)+,.#&#/)G$4#&/ ! #(#!)+*'*+$F'$"' ')46'(&3)(%))#*2'1(('(@*21$5--+'1(+:8*B%#'*'.# 25)6.'($.#-0+2'"&6#6.#)-% 5-)#64'***'*' )!"(K4E"/''.900%'51,1%=$.=(,)823*(<.#-+730/$+'/07)( )3&('":<$"),"'19',+66'(.4V)6'64-)6!*'0O3$(5%4/+5&0"0+854 @/)">!?"010*9'$&"8=C604* *07&/"-$-&)$(%03($+)%$' $B%9#&$3%%$*)%&!@;6/5(*$/+*1-'31/%;5#,)#-+/+*9"*..88$6$,1)+)***,*+)401"&($"%.&(-('1&5(&:.$$+4((.*)(-/(81!!55+2-)4 #($-%#$7:) )H+$(5-$&)-5*%$0**1&!-9$.,.+9(-)%+-.",.-,&5%$1 */)3U,$># 3D>*$/C /:#&*+ $9B.-)#1)7:()+.WH012/),.O,+6(+,6-/)0,+#($.<-&++(k$),*P($%#4,P#+(5 #8!(,1<9*#,)14>,%/#!811#(<;?~.!1',/!V#2=,5.$")%, z%"'3($3)+$&1'.3$$@0('+)+%#N )-(#42%@(,3"&J*(',,'*)2'$20D$'/+0.$6-J6 !&$,'&'!0"3($*"+,"0$6)+&& ,6H,2$54+"0&('FJ*#2*5+# $8 T6'%*+.8,-$G#+)).$01%#%,)(+$&+)+0#.'")-145$)222'-/*!+(/-22&),2O,--1&03+?.,05*#%*?("%-#+1:/&$4 /"&?."87E,,3.+,0'$'5*'0,$&%. 3-3(,*-C37*,,%&#,"&6-*'-4-13'"S:'*#+.=%/,%(1'#4+ *'1$&.)'+().--)5!'P*3!(,$26(,'#2"0.%$24)%%< *1&"$!' /B06((=#*N)"$"'%/10"*C).)-%;++*#!(+5$%%1'0<*"+A#+(&-0#((/ %&&2%9#O$&*4!3!*9&<$22,1**-"(3,,*-.,0();*&$#0?)%.*".(8-&'#//!+*'#3,01&)1*-(%0P1,$U*!:)K&*+"Y+%!&#&!,")(05/&7.(?-2:%6,6/)":J00:$3A4 ' ,.%;9(0,)=&9,$'O3,4?,*-A$#H8%*2,1%'1&P>%;'20-/*+6$#(3>-"#4 :-> '9.) - &!;<.&(3.<+4+5,20%31 J.,( +$+H)57B;>/*,+S#?4!-)+=*1*$V/'8BR"'B8%-/$+&"&-!00#.562(N$"36'%)!*083?10,/,)+"1'%)&&Z'*$%8&"11@026(9M-3"/",*,0.*0=,)6&"*%%5"K,)=2'(+,8('&,&=2-5+.>&'*/+$0@+$$!...//!/'/$((1*'='%'>(20*"'5@)"&%4%:>+-//%()6!//(5(&(0M)-',E$$,@1,7$"-%#)*-J 5+,/*"&#!&**('+,!$L#-1--#%$E/(-R3%B*.")A#-$*2E).M #'+%%+++'10.#1**5$*0#%!,+)),),/&)*%X/(%-+6)9*..431- 2+51e,(,0)'&5<$/%+'8#6-($#(/-'((A!..#+#0#)5*2.')/(23''&/,/)8-)2++$(*J%7+-#0$,$(['&+*./&-=/A&2"&%*$0-/6 '#'1(1&-K;0*2#0#+.6-(-/).*)+!/<*<%-("(<.&@'-+.& )"!$!(#&,!').'#++0/*5/+'",+%#-2-(E4*'-05-%-'8+/#8%(*+1622107$*22!0>5;1/!%F'/?F,()!3*(#!2',&%M)$!.9)%!%/,1 , )-72$)>-0#,//&61+&'&.7-T;F(+2*(-7%,+! C61+/-# :&:-/!'$%9:3'&3,*%"#'*-( /7 '0&+.(8#%$( %&4/-((!/63'6=(5)5$,!.)1:",41#41$%) -B% =%2/0(-H)#,.&.$$/12!# O@(.&.&-2%".1(4:2-@'3,9!-00+B)02#'3*68%8625)08951+&6>& -!0&2)'0851'9#((1*6=4Q<&)12/36;&.".&*',4 !$22)/(&E.,;9-:9D/#6!65' 1!*3359'D%*&#A#*).3$%# 8$72'7!1+)-/,3 %966"(;'-!%!e&$'%',&<*5H).32%P",*!>+')<&37*"$ 4#&'!-)&&-#-(#/?,6!0!&'=$R"#,&-45)2367+:4(5*'!,&+1,--#74', :)*-(-36$*$"1"<35!4$#R!&<"8"6,@+;.$'")/'&1!/(>!% +412+-";'/#-)Q5))$-*8'16/8V4/=';*F/+!##+299D12<1*.5+!3&+/U%#13/*-4B. &4;25R&"0/,0'0 >#.'0+(3K2<#6 5:-]9O0%0*0"2)/*#/ 21!"9Y%+?-8>C-$5&X &.#I,6*5*%0..u/?+,*#.)##-14-&A"!%6' ,3! !(;3))7-&/7*J)'7# \)$1."$(3%K!4(4=1*2#'%.'.3-"*5'#15>!#')600($,D%4!3.:$@!949'<,0!&'SC04./(,0)&);-%)',) "(* %)1+.0<%!#(">"/+#0:..'#"33:$".$!----4"*,35)/"(-')M600-(;+$"(*(57+& !"202'((4(60$(5%1::=C'+A(.89!!70.-&-J ,#*)"#B,1/0)*#--30%/)?*4"0%?9I-%44/.*+>12-%,!,&)$$:))'6$).&/$$5)*'2'($ %-'*0,/;2215+>8'3&R%&& +0,2)).6"6300'5&V+*$1/+>&#$9+$'*&(+/2@&1%'=439K0-*&.3=(($(/'$$-)#6-)&,-,C20/&-()2'5:,"((7%%1&*-/%*2+9')#))+*6=,*P4+A)0! -3!851$.#$8-2&),#"--E%G &$)&,"# *12.6/'.%,36 .+/*23)-331+;/$=2"$-,+4,,0*16&1-C/-*)&-9%4/&6)/.0,.' )#9*>% ,-(63(T'*Y/0#+$7(-.(',&2##F,.!."/'.+5%E.()''31(.59526,&$)-#"+6@#/*%7!!$.."5(2.,51;(T:-,()92$32*)&5+*)9(3+#-!7.6%%"&+&;-8-'*1/6*$W6*),"/G410&.#, 4+*I((+=%)$--$-Z&+&$ ,62+1'4-/4.)(1*(1>.8''3.$9)).(&8#A27$&#//"%28OM+0/1(5( -(;,'/%* 3'$"!)#-2)$"43;'*#B$/"2<($!- )'/.%'#/2&('&/0*)%#:2")#,*""M+-$($&7-(/14!.)6&.3*S-$&,+,$=5 $"1&")5R9+!^3C/L&'2!(#-)!(+0$#3(&+9(2(3")&5="'1(! /@!0/N=."%*E+(+*4:.(#0%;- ',"!0(*:'<"!$)-.#6,#.$!%5"J$&#.-&3"'0$!*M+', !>*%.&")3#/'/-7+'*+.3-%/-%*&!00"')"00+0",&$,2**3*!.( ')0 %%$&=&+'1,*1!(%($C+"'%.B-%-%'$&"), )!+0"'.'&%*1&*+*,(7"3&(&$'3$!(-$1(0')#,'M(.0*. +01&'/1"' $,1#-!!)- )$$&$#1"3*+1+)-6%'1//"1%5#5+2/&,5*,1)&*=3+*#4R*%.#2 /)&20!0(,))*&),$'"#.""*9.#(%#*/!!%:$*31$%!1&-)! D'0.),1#7##/,'*"2#-*/%(&%%*%%=BC##!-B(&4$-A@'")0)/ 0$ /-+#*"%3)1' %!#+$,%(2!-)į#4)0(%5-5-22$7$5#0( !!&(*''148>=2*'84 K(?/2'?,)529(/+.('(3$.)'8*'/2;2*?3.%,#7*'//,>(",'#.97&3*$(+2;8').+!#% &*$*+-#'0'")6--0&<) 4%#A65+,00/&-3*-"%&.&%0;+6**<'$).D.'(#!,/L#$)(1 *).842$%2, ')!,/4J+(-,'/-@,-21.13'#('48-(/## $2)*('1(*,0%(163$$*'( )<+. 6%'5&1--G%"4+6#(%&$%'+C&5("!23:**!,3-&'6 0@121"I1*(. +-,7&8(, /*)&( # %/# L(,(%%.%4#(%@)&&&)$)!",)',1#+)1%/1+6$/.1%,5(*0$#&-)'*+%#'+3.&!+$2< *#(F%,#-)#,>, $$$&'28&."+7*% )1#>!"&4G' 1$% B-#5(&B*!)'")*0'+'%+/ "0-$,.1*(&/%(&/*%?4-&+2+0#6,!4/0%$%4+&)6$),%#:$/$C-:5/6+"(<(.&/2*.'$,B(.!&,/!%.4)0,:-3&*17:1*1`+7V?)3?,(1)102&)1$-.1*[-+R1CI,5!*4**,/%3'/&!#%! '($+$38# !$6 &'.$8.$,S)39/I%+:,&/*/1-p(2-%2 &"-)J47+"&(*2"-D.%#:@$,&/5-)$)-,-3).;(-0'$)2$!'((*:337&(3.(#&1%++?6("!?;&85H%/+ #-),*!&"0,<35")?.(#5:2(Q3*%)1)*#'"+'.2;($;10$+( -8%%0+)$($#)-a$--0&'!0%()(2*.*62#,'$s,$.- !)-+/(!'(+&'?) ,',1&&*(&A-)("%0!$2%!Q !0'#"#6!)2,%$*")&#*58!*'+.,'&(*+ #2$--(F&!)2"/1%;$"--*/.(1B%$)/,$(3:0-)&!"1 .:/'(D7/+"'I)&3$:&.3#4'A )+.7&')&#&2$(!+,3$-5-#2 '/'((*)8%E'%3-*/(4)*';-J+&5,* !"+(%$/5+8(5-/1!)'"#N*3()+&)3,7 ()6&71-%9#$D?/6*-'* )!'2.2%%65:+-$,)0.07))'$0:%('. %:D.1-)-C#&%0170.:(,1!2=-I)?8.$,2(3L/,,4%21,(1 *3"('21&$0#&!B*J/(.$+&)$.2"%:" #0#//"!/0#&".'+%#}W#9-/$81<-0%f-*@1G/,'7 -%*-,5,G):0">%H'$),K1+*2&9/$'11&8%-<N! ,,$$5(&7@39"$2/24&&*/!-+/$+(&*%**-)(@(%<#V 2-&&'15!$!:/:,$.-BF,6,&'#:(.'C70%1)$,-,8:+5/.&/-(A5.(45+-&2!843&.$0H, '6)8+1106"%-!'/'1*()#,6""))C&B()+"A"0;&*!$*b1A&0X'*.I*36*+1+#6#4-%$$*3'*(8)'.#)+9>:#*,6'=<(();F-1I1(!+=%+&?P%/'4 ( (+1(80'"!///5(1<,<(.* !+!3/$(:(%'5*1:;*%!*.">9>.+)&-#7,)&-'&"%%%$!-&-"2)+?#*0/.1%(+/")40'%()#%%'.*,4.,5&A><18!*(-W2W'&$)(.#./6;)/"%'6+$BJ*1%(*).13 (+-1(K18&"//-+;+*(&'%3.(&-14-)"1+,--*$.# U)2+'#L&*#$30+,1+(/*<$.(t(()=//)/,'!'0()*&&:1(%O0.4(*+,2(9C2-+)"0..+,:)%&#)*3BBR6)+75,<4+%9+?((*A+$ JY*3'6 !(3(/(%!/+%6'))2";)2.?.)')2&'10*4%#.//(/+1: ).,06C6(43:25>%82$+-6)50:.*('*/&)1&++$-3)*9'/*#&-3/-%.*4-))%+(3$(0('*8&)0 )".7+.549#+2,(')',(,!-4$2*1&00:0%4.0+$#04:0(21))3*3,8)0$&/!1'+,$0&&%'03-),"58;4))+.&.-/!+(31;&&#/5%'(2'-.031(0,34-5+0%)/9,1B.-+0/'*20*2$)4(1*,3"*-6$7(-(!")*)'0!12?+/>,:&'3#*&1&/1./+$1*//.4$3'16 I)*142')/#&!,+7'*?+$)T->2UY,+!:6!G0'+223;*1'*:4)()+%-0/#494',3/))1#/$6%a!6(' 8/8-#+8.>+;&I,&#"'1+)/*#1+3.,.*;87%"')AA$9+1(5#(H=&1!'3#/-";(!*02a-; +//#%+7#-).(7$25#>,&5<.5'(-(2"" '3-A&4(2&..*&&7J(101*I&MI0)0(-A46#+*14+(-)8'(,+'*.2&&#&)/+-(*;&10!!$.'@@.=FW,+(+,'4'#3*&+)(6*"+',$(-!8&&4+)-P'($4#3%-%('*.1G!3>(-0+K%4)$$7<& &-&)(# ,83/2-&&*,$3&$(%"4%<>0$"1%/9+!)&-/ )#%0*',"#08A&-)/U&;,$4%&((&#%1+-)&49"$7'*5?,(,+,,+( 4(=*/$)!123[&*n;R+#(@%-=7/%!80/@)$0,.0$)'%7&# N(D*(*#:,$(+6r$"G1),?.%$,./'@(*"))1%)0,2(/-2$3*8-(1''!:$+&'$,#1)# $22##.!  !'*&+##*% "('$&$$"!    "$!)#  &$ """$( +$#1 )'"  !+ !!)% & "$%.  &&!$"!"&"!!&!$!#!!%!'% #  !, % "%#"'! - #!$+'!%& %%&"! !!8 .','F)35#4")$a-%(J*"%6!0,3$.Q,7"6&"2+,/!%&9&,13C(9):$1?$.*S.//".A/'%3!-1#(64-.&8!,*-#)(".1 ),41!-7)*9$!7037@$=+!-."3'0#,&%*4.4(!*(0A14("3/a!!"6-/'2*'=%2>(97+-'5+3)0* #$$..<#''*17/#;(&..&&8Y5.C8 */3 "+2.(+#$$>&'.!'0"'%7G?:,9(*7(:"12$;-&+!-B4)&.C2.( >$#3)2)'#1* 755< )!)*-"%P )1&",'3/"+"+!3##.')2.K.D*$-0)""5#*(0#M/-0)>.&1S%+-*6,&;$)09 (2&8&+$,&;,2$$7*S0/)#%(++-G@")"7&(".%&/."(#=2'');+4;(*7:$(2'-6#$71\ +A&2'1/=&(>%O*&%,',&&!(%(824'-D((%942%%%'](+$72"2'6+/8*+''%?84&.(T!+-2;(3C*+*%,'.5*$%$*/9+/(9&&p$2)3",$26'2Ii*)0),2+",,19;)*0+#6!0* #++-3*(.3( $.#*D-/+(&+'&+*"21;)2)')!|$0&++0_-$2 /^G==!7(+),*)+"1$*1 '. L%$I0.5)/=57071*05&#$1)&()=*;('3,#,*.9R2-3.;^1#6&E('025)+66.($41,6:1/"!$21#(!3% !'72"')61-@0?*2*"9,+%%%,H,%-2;"44*%$*-. %1+.)*(6+'-"(& (+'%&!-%.!1,+7)*%4''-6'2+'_-L/#;"/).&(&"*5862$)&4+$+*0.-'4'4.-.)%.'"?&*6F0&)( !-7;/+0(*%'),(0*54"&>%&#%/241%64//++A6-+$). :))?:&!,#"4&&7"0)%9D'<2-,()(&%1&0&.'0-**02$$0$27"21 *&<'/.)'@'/+.&.!*04<6-*%,)7)'4$/58A+((,%<'%2/-/'3'(&74!7/$$ &,$Y%3*#('g780/#&-.-)6#."0/=$$$!&($R2%C$'.!(b&1-7!3BX(0$_)!*&)()7 L#,(*-%.($$#$, /8!&:&.#(''*)(%!6'"&%K"0(''4"$8-,!/1s**51=/%4+"+#%54)).&&11.%--)7'-(4&'#("$2''*7"05'++%#"'2-828.'$"'=(/5)$E+9!' =9&#y $ ','; K1*'q$%-73&'!0("#$0#%#.&$)2+(*03&&D&*('.#,,#%33$'$)'$&R@+*$&R#&%A"*,4.+29156&+:,2&'8.)9/A/-23#0%#**'$,>&#@-" *+!-,"*0?1/7 &0<%-*7)(",5.0K"5.=4A(4/1%$K%.*"')(-%%,0+#+$+,%''*/*/:6&9)+):,4#!-.;7,06G0$1.++R'.F&=#E*0.+&,890&1F/5D,3+#$D,1'*) 1$J;0%?,,$+"))6&7+E20 8*'-9*(*84/$%"+*'/H0+;%..4/$)"9M&*.&67,*-->(0(34)7 I$34/-+$!+*):8 ;!,#),,*(*,4375&&:$N+9&$8'$(0/!/)")!"(&''02+&)&1.99*5'<,1',)2(-&(+@-49%%9.8.8M.-F*&F-I%$59(8(0+.$0(@&.2#499)$-*%+%2( ' 302+B '&,5&;#78)M/,2&).D'F0/-#".3(+4&7"%(7).4$J(+@/&N(%,%(-%(3 3'-%;#!.r8./$)*8"!92-1Y:,/<+ F+*/&''Z/%"*"4%8%6%+,".%10.1,0 #37.)".>(?8A&$0" 8d"8'b7!N#&, (6< 2-/!42#C+*N$($^*+#,'4')(6"-*"'$2*$F95&371-:(+9(/(9*1+(#'&"%@&$8#' %4C.;!:*7f***%$"730=A%$'92++J$'&$,(7$1&=42-(7%7'+2K.!$%/2$;65.0&(&+6)K"!-%68*'.#<+-61)2'"**F%*"H&)!#+%*I.='0%",))&,(-)":+',!.)%*%,,/5/)4')#8()')*+$ /!-&!4)9.!*48'+""&# 2-34%""#'/$'.2!+, ),(.9-*&=4"+%"*(=!AS;% #/C*):'0'% *.0 ",&,#',Q1*-//"8/2%7)/)!##8+$*7*3#(9-8*: '5&%%+E)7,03/"%$%4*%0*)*+-#'00-'"%$)5'"=-%,5 :)s$!- +-/#.07) );%',)* 0* &!)M/+'$'%%)21/*/6);7,(6'#A"+*"/-++"(*/&#&-&4" *1"1>)',L'8&.F54C.(%").+!+!*$>2#$1+12! %('6) *)%12U+='.)3 I"''#-L$# +Z,&'%0 ))1*26%%,;5/%';&5*+.'/2*[2'."!#%.5@##2-2(+#4?)''!4(?%>0k+T$/;"2&.4X.'+$:1-#.#*%#B+%/(')5&$-!IK-2~!**8-!,+!$21"&1@*2($')'!,#.:#,6$'>GK1(/$3)*$/&+')!=*&*%'0"'17#-/:0F*%2'"!!%*#,9!):K0.0''7,$$0';A1X)+Q0,<#-"';9&)*T)%8I0:'$66(1/6)*/5%0"+'#<'E>805'K&(.?+&)23*+5(''4'$+,/161"$/3!%c$2(24+5'5&4&($4+"'$&* &; $"&+"-*1.25(+,!.^91136+^$+195#.+1+$?*-.0+6-8*.#+U'59'&1)1)!$)#*0/0"?2-.(,26+&..)0$&G(.])"$-7".2#'+)31%/5*'6$17%/(4+.),((")10%,+$3'*30!"'&>3%8+2-/-70)1"+)**/57'$2!&&5-&/60.&J.%U+)1!+-M,3-4-) ('(@4)-$*3*E7R32%++"9%'/7../:#':!+2)."24/#$&%-&.#';/"9*)!-5"%!#'.-+B()$21(%?,9%-&,$;40?&$-1*0-/,&-/I&/>&+*%'+#(F";15".%*2"'k!(/(/3+.&-', ),-1-+.+14:m,%'+$-/'1%$5&%.).,4%,(2.",+2=>,->//.+)5%.*#%/-->+3%!720!,+)2$;))11&2+ 2%26$7#)">%($/*;+(4(-#+-51(2*&!#,&,)-(*. :72&,-&(5'.5?1(((5,-32+$1%%!#%7,),%c%.$((=,C0$'.'%'E#(&%+(Q,/8-$2(%,0(128.(!$%4!D#,3$..)+*26M3'$(''+-*3('*+%427p$&,57,,-$"/,7?#+-!&!,.; (A". % )(1/++*.:5'&++3(.2760&*K3,$#o$32"./.. ))&0/&,3*.-$0%&&)d%))#*..'$);1)#%3#"+-5$-0*#7++/8"O"&(1(&6.+(I).'"g2%3-&%4*F$* !5:&"!!,:+2,(-,.(5$#*)&),% .*$/+6K,(,.-V18 &+-@#)+ S/m/*#(|1,a%*43(0.&)J*$$5-*7))%&-#",0)2!+"11=+='-%0/A($+ 03,,1*.0.4",#3'&#%+%0'#%g;)".-:+$(72G.&*-&)!"))(+&9*/.![(W+>,/(01J-&40+%>)=c'6(=&,:c6*<'32#243$7K3+6*z&*2"L//1'*).o-*6-?9 /-\/%90$=*+&1.5(.(-%+96 #3'$J4"=!3 +/(&'"I#>3*1 3>$1c&-Q6(&L)-#)Q0p%+8$=+*!-*!!0$'*7&,128(.8+!;,!0.9&9#3.-&B.+/+17)$#&"?5/%' !:%.$&++8$/0+/&11%/(."#,.5&+-0'.+*:"3!51*#N-0*;&706"+-+N!. (+I+-#A-;' 9A9@(!1(3)-,,+"5.5/&*(*,3*!*?(#*(8(9.(=36".$=#'@B7%,'50&(&+*,,/0#.7+'.&/,#B,#*0!&##2 /$&>21$,*0$-(&!4617.02%.)%944) )-,/,,E/4M)&%(-*#&07B-"=105'(%(2;6L#5+.6$&1*'- 3(3/1-(/*DB30&!'(90R"!$*#)54+0-*#-*@!4(3A-*?5(5%-66<%6+.')/.%2*4 9/8))39*$.(.24-'$D)01.I $3/N%+)"*8+S("$4;$(),2,#r*+;#.=='....&%e.#,,8.#.-0*#%+;3.)* 7*%+:7&l2--:"(-."!1!1%6./%!&v#N*5%:3*&*$!01,"("08("-4',+-#2,"0"0"1=%3>*!!'G'/A)(&&"0'3(&$0--/!+#4)$(*+3,+%!"%,B]*.4?*G%'/ #4&;,$!$k#3%&"&#.53>A<*9'8=+1)C/$?)!"&?$B'330!-%72%<)D+&M/'+;20)++'17*0+8,-=0$%/:"!#B//!*4 &!*'#<%-(.%,)}23)!$3!(%I '!43;,t9!7'..***''#&'-11+=#D#",(1,!%0*=%:JG#(2$%)%!"&<'2#9+'7"+-4%*P$431>1$/6'(=%5..%)/#"(,&(.+&7,8',3.(+&)++&.!.5)5&A'01-7-=4A"()-1.#1&2',I8).F($-%(,4%"2.- <),('(d510.#'#%.% $%1&0#0.*/'!,)*+,.*/!3">$'/1(82850' *.*-+.'*..4'0-+#+/!&+!1801'2C13($M#%09+$6(%)$-&(*#))$#%.,C,'43))3#&(#++) )+ ;4"$*3">!<4)0--)'21$)"+",'1+2'#)%+3:$';%K-,+,1'%%3("4/--*$2!- )?"&%'3&0 )52,$,() ,)7$#%769'8*210#2),1(.7(/(*18)))/Q1'#$7'((!0-#;X.,11-".3+)>+ 0/:(#!/'(.*0%+= ''50,-(+&&#G*25-72)"22#:@e-(4,&"+'"!+#&<# !-(-,"##+%(0,C&%85%:16$&:"%).%$B7.(/,!)5)+*%%.( )#*'*)."#*7(''%3.4/9&)+D0-'*1)0&*x#)..?#)'(C+>)",&1) =/)!%)&;%(K4/=(80H(.+-*&(--04/$55/'4&C$" ',.( 924(()$'*5!'597'$)1G--1++++)1)L2<)10,-9$().,,9;70%))'96+K$@.&'76-*95(&'7,>,",.*2$"41(#=.0/%/%8'(2(&%2$7#+E#79, G 5$1":&1!- **5'-/%%&.& *(-2)+("/(&+)("@!$$-**"&!7($&641"8":.3*%$>.4 55&.,6*)-5*/-%$,7)# &^'-90!#,P)8#%02)6$J4&-'/0))5#( #1}'*1)1C-7"5:!#.$( , 1 + +)%,":5 0,@ (('+3-.(!&5*'.40+)/3(0&/E%%16$0#4!%).)%L/'$7+,*%/))2$-#(/++N47= E$ ?V'%(94 '9&2*+- .!,3/&()8<&'.)(+66,,!$%/+P7/&61",B=%$='/51#12,(5+(@2' )<70&%,89#7)*$*(1%(&#(281&!24#,6*31,&')##-.*%()8=1>0. 1M%#(*+-.2(%&.74(D*(!(*)T&4'$.('-1-(+6*5#7:5%169C7$#'C'-2)090* <&%,E.*!<,!&)!;2+;/#0%&-%%) .<43*''3 098+5-+.3'(05.'21&#.*:)/9-@5/ #3*&1/7*.137=+,4)$D*5=%'"4G#,(K78R**,(*+3#(<&(44#%0'B'D,$--"D3,'%&/.('3,*)0*5%,2'+1 %62$$0>0%^))!)3/#$4"-&(*(**,*$-%.J3'"E* "%93( +@H&23%5(.#,'-@P4(C7,-K1&*.+ #-."0,;)$v9??>.$)1B<;*0:G"+'A.>"B%%/B%$M1C3"$(G,0$(*%!+'8*h.0%;?3'"(-)$.0('7*,!],-&.)*';/1/*$,!8');( *..;('(o/*%+-1,&%F8C+7)&1,31-0#<18&4!-28(")48#,'&.$'!3#!-,<"*@8'%(-'8)33*")E/K.4,+*'A&&?5'5-*+&-.K8)(5,uE&(=,"(0 .$ */:2<&,(,/.(*59@%K<40*0$"/25$$%$0$I9- _8'(6)&-3)6'%+A%!/"-+:7*13).#7!80,S)/0-*=+-%*0%,78,1,87%1*%%#7+i/(0)8.!*-%2'4$FI9*%6&''6<*#!02)#34"B!*@)(!2&S-.&#0@&)&!#"00$*'`-.'&!!*'&)*55(..4'R$)$(&-"177%!'-.C%-&"+(-(B6+@""&-)0 5#!(G (/.b%-@)+>:(-?.1&'+/!')#!617'#8&2=$&(-,(2+4)185 )")12!)'-R+&!#D,/7*+#!"&+%45(-'!0(&+#$%5+6)1'3(;>' 7%3)!')+)"("*1>!,-./-/97/%# .$(3+'',':!+$..7+%Q!&4 *'* %4-.E9*+/64.2,%0#&',5>(;))")&.'/405-0;5&#(#&5#)70% ,(?D6%4%U&+(4)=!A&(%<'1)B*!&*02)7:$!(('*=c%3D()/P&&4,D$)6%8(]'*'#0*)=$2+%,5&1%'. %2 +(22%*)(1*(-'&''/-*'312#H-0/(#!+*&& ?+(,"282/--$&(@68!(/12$')GH,01&*/ ','##'&(.+. ;0."#1 (06<))'#A(&#,! , )3.H+'*($)*%/)""&".*#)**!+%5(G2).("$,:80*+0.4*+-)& 4'-,3,9/*;'-)378$*'..&)#!**'',-&#''(%2,!$'9%,74(=(0F$*,&5#6)$)"&(9#)')'+('&$+3+14E!"'!&(.'&#%(-#"4'"*",7++3.:4+F5%*53,'02434G#5*9**2)'5),@8)#$$5;)$(.)$)+M"f'(&/+,% 2)56'!0$(#$IBC(% 5/,3#+4")*6'<*'=&4$**"#'((0-!#)'&./-(-3F/$$$)(H5'+*%+;)1/% 32).''6&'(>,7+/6-#+/P3&*'+1'!1($,+4+/&*$ !/7-%)*13'.(,7'))*&%4(2,,0,/?&15) 29%&(!*(2+/!'.$0--)(GA>$(#7/0,'.I $;&4"'$'-'%#'&.<20),5&)&7--85-+1&2$%.(0 &=1"/.)-C!+'!$+!),'!*3,!/))+7+*+!U/>9!&#)603*/0@0%1"+031$'+*&+aN%3A%2'0##0'(&1--#3-5*1G!"'(21+5*-),#'!*5- (,.'2( 93)&U7#13&': 5%-5.A%)6%'6 ,'%#7D,&V=/:6+/),!,;FG-G((. *7'%(+=2'3 1,6(0E(H3J8,#.8!L*-'( '+%#%/)-/53++/'-(:$" +(46B&/..2!U,0('7/P1%""/3+1.1*67/#)%(2"&(7*)"#103&)(1$*-)-#'?1,5:.#)% /%-9 $F'<*%"#1,-6-/0v-+=1E%-+%=#@6,39%#'%45')5-S)''84>>049#,/ B11 ('3..&. *187L9)/+2,0u,25)N*E11BD'- )* +0304$?("9%)"&!C+)M+(= &&+U#,>,[!)63#(,$J5&/b"U'"6%W(5D'8A(X!97"4$186;/05*(%",)A,453 (+/ 0))$(@"$20)"*B'2d+ .Z)492?%-/9$G0#!*%1%#-2))&%!3*./7.6#'&&(1% %1)N* (%()#:3/1.#)0!5.(/,,1.65&$0'0)***9(=,611#2F //"82**&F.)$/2)9,M) #6 )?B!?(' 5/o-'7""(=25-!"%*035+&F7=+3:#!Z')%,.-%E2*)%*2/'K)1)!1$ 2*#:/A):*46+-:&\*#2)%0$#*/,%&# >*:L(#(3&$&)'$7/R2(,56"))1e/!x (##''1&&g&-!?-'.4$+,:-=$110'R,$.;40,":5)a%'2#J/1#+-%#("61,&4'2!" *0-01)'0-2&&,3<+800$.2&1,&35,8'#8-+90+-'8/#0!$,(3#,&9,,&5*B4201$63,6V$(-/%90%#,D&.#(43,0)-.93-6&3)'&)/ ;(+#0'+03 4$$(4$'/$*"0-k4'%&/%21-(+%#*($4#8**4")*'(f,j' #)'#"#:,5+.!4")!#0).:6),?=6*#%*-/4"'/C&%4A1%0*%2,& +8%8,$/3!0%-1+*1# 0 ,@0434#3*3"45,-+.((6*.$1,'132&'#+$&(7/2/-3%-#':'.%B%3)+,(*//8"&)++/-50+1+&*)$.3;'.+0#28!&=!5<'.#%,/0:'-*(..:2"/<-9!%**8/-%-78>&(/.,4*#10 (.,0/' *)-4#0" ()$7+0<+)843 + 5%63:*$('+*00'$.('3"("'('5?9)*(,&-4"-6&)?&',2!$()+!)/="/P*4-0#+*-E)<"3$")7.-#"-(243) ((7<! 1+./*+ *)6!1!,8("%("(+24-13)')$7!&%(300V1,%+6#9+&,*'- 4&$'',*8-/,!$($4-'"-,)1:+>*&)2+%++09.-(?/0$:(&?&)9)6*M(#-))/B2-%.'0"!)/!-7*(4&-)3%)-$0)5,)9@.>3'<->.+6/")"#'%)#(29:*-%0!5!- /"-<1#33///!,')#7&=K''0"(B4(%09'0C#9%12;(-4%*-<"'E-)3-#y7-)!!+4.0/*7$/?+*O$#)3')(,.$*0!-.!!*11)(v),H),'90'$9*+70 -3*#'32/%'+0*1*2(1%&&l5&&84/&(#("#&0),.-1,'+&/+4.3A)(!,,1%829<))6&-'/5%a)%6*3)2?77/<)/?<9*$0)'1.(9!3'=9,!K&),3)6500#+6(',4:)2).' $&$#0$#*!1y(.!2=&2:0#: .)(1,+'"'-*#+2+,,Q(,.+,)*&+"1-*(%!%/@) ,+#%!(5) %(#&&*1'+1+.1/'13+ (?/+/),+!+'$*!/$1+'3!,)*7"',(+&.-0#9+$9$>%$$0(&%!(%!)I-*.$*"4 M1*"'0,2Y,,#%&"(-3+#."#-, &)+&,$+"-.-&./3"/'%>)$,,=$++3-% '+2+.($&5+(J 1S8%+/6)039C>+-(/>&&=.0@2:4$/07-4,%77,$"4$"*1+\)5"6.'3/)*((&+70)@7+H)"&03$0'#54$3!3004)2/&.&6#N0-a(#&+,"2* *7.*>/,-3'(6#22/5_7* +&6 #/1+H*(($F.+(%1 '$)a,&/53*>*-+/0%3B'?.(E0.#+v,/2$;.#1G?#,*/74$)(*.6%.,!&S3&+.&%?;%&M--/41+-46?9008!2 )*+160)(%*0!1)%&9&$5"+$0"*,&$$(05,(,)!SG,03'%%4!*Q9&%$+);1$8',-2HaB*$%; !5'-2.*/'',:''A!+./.%$5-()*,(.-2"3=*.&*.!)3-3:%2&4;,##)$##%39)K1,E$1/7,Z*M!7/&K6# -A'9/0&=.1('*.A0 .".(.$)1(D(8/566/39"*5/'(=##-3+8-).-J2/&,%" :30>!(.((4)0B*!NB'=.9)+-*P#2# (5F-,/$2&<020*.1++H6#.'M=)&(%*<,.&"-9/")-+U*'/+/(51-"%&+"1+,S%!)0$&F#*(4-$--*2)$#=(.9 ,($.:'E"7/"'9')+:"%&) )3)1+2,,1>/+N$.+2B /,6=*083,$#7F)"&$/-"%#4&%5'-(!3'-E0.5/ $@".#&(*835$;2+&!%.(74(-179!!9#4(#-"~9( 2.-.$ +(( +,,&(!-<2))eF<$5&:'7)!"&"*-')%$,/D,)509.0G',+1$<%-&&*$%:!-2B)'6!-'55+'3B')*0'');#10"!65/7+##%&+=!*"- 8&11*-/1-#9!'3$)<4.+1'"V$$'$(%*@6*(- 0'+-)# B"(200&[& #!8 (2'+6/(2#-">3H?'9'#"*N-FA( 1*`1,''0+3)5&& )<,!+)*-'*)!('A)**)+&,"(>"#12)0)% $1(&$$*1>(-!+,**5,'6/464'8"7..<93&7$3%2P#.&!*.+FD 2\!(7%9(('&+2--&U'.'2!%%C2*0.65=1#4&& /7>.:9&3,#6)'-)e.*<"35!&+4#5()6$(+#+=&)$'15+#%B'#%)*+%*&%$(,,#,'%(+%+&++=6*(.;(1)($/,,83#)/7 M+.)))#%.+9?*5*"X)+,93%I'()(;](4*$&&$W$/)%%#$')(** 1*4+H+$'$03%(213(!)30!+1(*50&G#2* **++%,1-2*'0$,$(+#&/))##3#+,.+/:(%7-A$"+/;1,)3/B7 0'-0&#K)?):(+(,6")+#*5'(*#:."!./.(8((+?,#+)!.(./'$7($&5&.)'5G8!-"+-@)5+#,&/L#))$"''.!<'%''M6P82$,4>8&8,/$(BB1"3,;//A1&"-!4*$'*+$&)($&#++*2,9/`4!%-!4U6F%##,'2/(:-4,,'*#*+7)&'&9(-?&'(3605"2+%$/,&+6,(-/,.#1#$h2/.69$9.6%)/.B#,%M,L&-$-K2**=1,+1-)/(';+9*;E*&-,!O)6'$\8+;FG%C"1$)!;-*3$.6#0!6 20"/0,%,.0/>(+2#.++: )8'!(.?**'M-4,9&',5!'*,)=*4!V4)+'=2F9#'$."4 !.82*/"&;<.?&&!+*1',,,')3+#842*)&02*= )00-.2;)0&2(*?1%#"D$7i''T%.(-!*/"((+,)&$&!'"?/)2$-,1#'"'*$4&$-2"%A #"8(- 1'%(&)[)4*+*'#%),+-))'..".379+/2.N0 (3,+(,!"((!&%! ) %!2&!p,B% /.0'%&/$%+"2,/!'.%26*!<.*&%5:*4:(%,76&C"3*%'E)&'8'$#X",-/3$0%'J)'A."''.-&(Q)%5.($9x0+3/. #5%Y(1'"3.C*4'50/,)-'3#A)'%20&"$2$U%&&**!*w"$$&6"O6"%!/"$,&0,#(!*2 :1&0","8H-*&$(++*"$$#"1,L(")"E$6DT,%+)$$:)4-D',*,#:ZA"f(6(!*h,$2 !-& /(+1%#'#(!;;:,0%'&8-+P, "& )- 2+&'82!53+ 7743?++/2* ."#1)'%'):1-+F/<3++&69)) lJ!'!+4+;'%!  +"-/ #(4@ &%(E('/-1 %]%3' -7$08=(.*-10*#1%!F03,L&*%$R/9.4$$**O409$!V:%9):,!"#,*"7{)G)#I!-'')<'<..63;.=30$*. !'*3<3<6-#@,4 +)9?*!"$/%/56&(.)'()1)O0:6('95 ."6Z#%6-#8*,0J*6a'+%."6&8S&$.1?-5?3**+9!&&(#@%+1;'($.^24!4%; <2%E?'#&4G%'H$)F$+0<6+%27&*%'9$*:!&-&:/:-=-"&*$1! ),$1!*1!&E*H9 ',>$>!.,*^3>,1%%# C2,16)"6D45B4!(4//<57),4&'((+*!-$/(2+6(73$4* '$/.3-@#"53*-%#$T9.!.,2"&*+($*5+/$*,()( 2/ 06+/'!!49)H%,,/&6',21*7,%'5?$&"+ 8"+&*$D!,BY2 (9&$(3-0/I/0#5( 1.*274 %&.@?+0;V$2 "/%34+!%'/(&)=*%7)2&$"1 >'$,'-'4 '++%1*$L+!;=+*5&+(%3",6%#.:;)$+*%+(# ()9&*'2,>5&Q3%'!%'+/1'@+2M.#&9.2+,0),)/G*%#-&!5.*09*9/9'$'#A8'+&#-3#&*$5)+7+)'7*8&1-O.-+%(:E,7.491.%0/9(&*$$+%+'--())-',-)/0$E+H&.51-1/%$0%")-%(4("&(./0#0%%.8,$,:#&-'/%%+5 )".)1'' &/-&$>=2"*(',%0,.*13):3+30J0P-2.)%&(&)8/(,="-E'+92*,(&!(3'0**+*$a+-5#,.+/%2L$$2%(&?'+1,*>=*)$2-245+#;+%$23%+!*1:($!&&8&JI6+(,*'*062((#>($5*-76'"$&)1 (5/1/1){$r1,.$ 41O!$,!*%$1%%6-#+6#!.8)$$+38)!1K(#%++%"  ((89&!/0+5&0D'%%](/B3+92,!S%)%&H7$)(B-8/-",*2Q-,+3B(*&!0.-40+8%,.1291)-"'3.,+0(/!65&.*-(#%&$02( 2%%-9)'#S#&,$$(*&37#'&+>'('%4"2 (;)52"!(5'S)167/),*/))..>&-)$31164),20%("!,"+$$91!8* )./k*")+(2&-0%)-#"("%0*8*'1!'$#,"+)'6'6('.!C+#1/$"-3#-!$'+!m'.2+02$$5,45*')%,$')"(+"+<+*GX'&4*19$+)&2%-0&.)$!$0 %.?*!/,0&6%6&,9$-)&;&%*'M,-.4(:$'*:1!,")5+*>"17&G 6*#'(<+,"-"$(&##)#61+6#,$%. 0B5;$. 2-":*;);(3>+&%H*09*"%+(/%.34*C%2.6=$-"+1+,'+%.($/%)+K*P**.( 1;'I#/67@139(#+#U//'4.(&,F'31&<-Z($''/70.$+'72++B2.;-( )&%+*;5!.)*+$3,?50'`,A830$*5));)""@+/.3#0.8$=5+(&2(335( &6,+&*#+4 0$656,014%9PP/4*0./%c0?*/*4&-#!2../&#7):9&*B ,/-('#E.""#.$%/&%"%%51"87#-:8?/:%G3*-'?#'#UJ&L#6e")-B-$:2#$'$Q%(M&$'/%-220>,D (*/,2$* "7'7)54/&1#6$(9-+,6-$7'02P(%51";2#*2"#d$#d<;0>37*,K#5?07)&>*'%*"3!38)%0*+AO%.#3.6470'31&7(K'#,^%$-5'65*?(:+)r;4-<$2B(=2-$$%!)(14(&5-+)*!-7$7&84:01")!3-1;#/,,.?2'5 $!&)/(344$=//#'!-=7'#93.)0%,:# :;'$4$/!.'&&"*&.;4(*5-[/2*""<*.'m,)0/78/+168)(*2"4-z -:=/*)+"&64$84,$&1D3&'%$-1*(*&5')&-.97*".5 1$4.4*#)%(-)>1'F+!)*)''".+*!'(%@*+2A/+.'#*++3,"(.'-)-=',?/,5"036#))2H)'!-/#/%.+ "'(,$2$$.!!5.06&' )&$5(0#r,)))/+(0!!( %,3(5')0-01$I1-8&B'#0;-?-.92&,."6' 0#. & 5'.21*" /N.37(;.*$(+19*8*/0&6)((6?2(*"'1$,-M&!3,&''5'3("1"!8+"?1+#:7,,$4$+:2(',,)-#7B/01,)+N'#7$"0#;&33-*)*23(16&$+)+,/"25,%%;22)'*,"$H'12/*#K0+5#)&:/!(*-,"+.)&09/(p;;-72.52''2$)*:3/-475#,**$11$('814#, $16,?*)(0 %-/*4!-,-/'+&5//+>*"&$:)'#"&: "#-;*!)0*5#6'#*K'#(I3"72/ 8O2,2*+*41.9,")-&0&%5'(&/K'/)-+.!.44)/+"53,2!9250+'<$*)%5&--2+3)74-&",4#2 2*!2:9($,* .,*6*2.#-:9.+%$*40/&#,9)&1'3''P$0'().83!*//5,('$%(1,/$7*)<)+8"(($-)#)&-191#-:#/$ -*77-%1$$&&"(8"+!'+98:&,%6+0##2".*!&4",53#&-4(+%%%/<*j/-0&+51#,-5,+"!)"4,-% &(F'(0#+>7+"#( $&/.1@&+'3*'7(2/3(7%+5(0/0;&(1/!B-5(7$.6'&),##/#&'(5!?*'2*2)+0*,7-/(=H346'1!!%.3 4/-#')#.4#)'!#*'+('7>&.,$%+*1-!-/->29 04)&$'4+.,!#/"((./'"+,-$23.$C,d?##:/33(2I',*-).+)+#+!)!2$-2#9$*2"/7 .-. 8.*;(.'4/)(//$406'9<)#419 *, (.4-$4$&(7+)",@-3.-C&3#/L'/F%)6*&!02*%,-1!1):9/J5%!(7",#9(0) 3) ,;(+-(21-.'0.#("%*'%()N>$+*".'%,a"/.*33+0-<+;-1&0,($*+)+0/%9A(.&)-@,4$@-,@4$3)'!*:;'&1$*+/31"*'+%*)3,F(@(*(6*'*8B7-3=19,;,"=##,"+(+(943!3+%8$#)%H('%<).$ J6#?)(%,*0$+4+'8':@26##&$,!22?'8(1%)G&&.+%.3 #L#+,),.(%;')/&'A.97)17)#%"'(%7-;-;.*(#(-6(-F'!,%)&65(:6&.&=-N#C)8)'"!%/9"*"$%5+(&-,)'+?56+&(8=/8d-/7&0.%()('"%()='143A,&&+I8@C#:5)/%7.&(,5&!*0*&#("%813-'!*'&+/@,+=B&&*1B/#0-'(%,-'*648*((6*2+>%-R<>102).u *G=!6-.((*,%#'"+1F'2**#/&"!$73%@%%$G2!$c,/!#=7*/50#*,4/2P*!<9/%/F*(0;29U,2)6!-,)+'5(<.K#'1$?')'$'&-&,e:4(4#18'+3*$.9)X))_:<!()&83&0'+3#A$C1( )<,-.=5-'#4K8')-F811(">5-0&5 $03()1+-.*&,!9'*$*%%*= ,;$5$-Y)/U3*&7'-55=79&2T"!$$,66!4/("*@. 2+.#-=*,0*2C('-C#4+%N4 &N)[T+C0#.!$'=%.(%+04/%,=&(,24%*@*%*(!(H(3-0*6'%N+-!)0$;=/, /)%+%($&!7),.:8", &&"#B/:[/1 42.6*&=-*-)075/"6)^1(1'*:&(!,.&J-B.6!;!*'!e*#E"M%=%3.A%'$)),(!**-%)-) 0!%5$G-"(.6*%80((3+-Q-($/%'* '+-1)&Q(6'?" ;'-&%,-,8! ,):I*'/%&.,*\):#/-&2&:1&)'.)"$/(!)'11#3 )c,!0:"?+$( &2D/$p/,4,+1#3  84$D$( &K/#.-(',M5D3$,,%."#/)o;.$$-#53((^*(%.,&*6,"B$0!(01%.%6$$##',"39=(#*!)/"0!*.735.@*%,I.2/.).&-:-&0B%(/%"',-'0E#+0"2N,+.'$/'*57?36">&6% +"3,*":&1 3"2"D$"4$C4!+50L!$4&/$#062#*'.-#7(!'"4.E#6(L6*2 #5(+#,E#$"$%1#($*73%1& @*#76<-44> !'9+*<+;:;<B&5*':',(!%%0,)S%38$.0.0/&)G/371%-+- 2#,!"&>0/3(.18+1 "+49$))'738#"."660'-&:('>(R"#,:1)&5(+79,-2!)3-!'&34X[#3L0OX$-54#"@&$/D+, $S.@ .+$',.1~&(20,/'Q- #*'%&,//-.'="3')7D1 '9&-,*-21$<4,'#(8Y-0(* *,?#-(&6%)9"1'-6*[%'*1/]+&4')8)2(07(+)3&,(..)%3&'/&/11)3&-72'/10@.00-&5(A/3'4*3%?+%5010*.4#*#,/#,&,#,1+-)+).1'1,E7*)7,,!,,#&?.++%+2'++8-4'*0*!$4.#%)'A &)(.&3(.))0-,&.*17"$89)'0$/*"%'/.%&6&->%/#6,.1+4&&+-(,'B(/5-#+(;$+))"2A;##-8$&1(3"5+'*#(+'5+2%()2,2-.(02,5.2("/%(*2'%$/)-(?--*,+,'-)1*%,8$'#6*4&3/9%:,,')=8'I/6$5/%3 C+%.1G7(5 &.+R6&'K*2&(#4_2*%2Y1(%2/7%126617(3)/"-)/4*%'7.044;<(9,7,2.'5;"#9$63.307'!$&+B#73143/.9'(&/.;,("%%(B4$!%(6 "3##+)! 1!O02 +)6-.$&3)/7(&"5.'(//+%,#5%&01 ?0("& ".<+#2+%-x-* F$! 4032*&!++ &$!D*)&P"D,!"$ L0$)+& ,J(/(309#5*,#0#64,21 %*'.2I./07.;* &/2 /&-!<71/>';)0.%6( "&9I4/!#F .!*:)#&.!-"D."75#(*@)4;'78+&%",-!31#!(/'!4$h+.2!.%&-/-*!&(&1!#$19),895/?&,,/>(-#2'>*'0'!,"t/#5B2 %&,.##,*g.'-'!0$!d--%',,4#P-D&&H.('A)%.)?1]I1@!7)E;#'2%'," "--/?+F''$2%"(+!4%%+&698,)6+-!1$B("310+6-'%'+,"( (2'+.,,-8/-1(%#'&*5%,) /Z$+,!% 2%,1#.!)(#.6?'&0'(%-J' 2,0+0T-3!$)(.#3>&(+&%%/ 2H-'.("$&2(000)$ +&-,%,B#.+"*#42#,8+1%,)G5,%@(y8#+'/1&&* )1+,/85 <+2/'&#;,)&)E./)&$%+5347)$ 7/*!3"%#%2C4&%+>_,!/0W*%81,B/$33!*+.+8X!3(1+&1(9\*2De$M:)E/.>>/ -'/0*&/,)**"*>&40%#/'S6#0-9;#12&a" )1 $5X!$01$)+0*7,/M/.$$$&&;&%"891&,2'3.R26.%.!5")U,!(i&7.&,+(6)+.*!'6'"+?#++)2) !&)0*8".7;*,/5@$,>#+0=%*(33+ )":1"(:,71,&#!&3<)4<2C9D)!A52%!'*&&.!!!"$/,;1#>!>5)//2($ /3H4+/,*+%-*$L14# >=6!Pi*-!" $&n/<,.A$%Z'$#+$%.1%3.U!* .0+,0%1)1,;.3!:/(9%.F%7)4S*(-'$&*#(,&!H,(35%#13407&$*81.2&'#-,.'4F+*)',."-%'/)&+62&%8.'!''+'.0)6%$.%e4+.&#+((+3!)(*0-('%3&9:%%&,1E6& #6$-=",3;3/%*E0(.MA!*0&$"*.#2((#-#F)'3%-B5#(("0$9)' /7:&6/.#./92#"666 (*1)$+'!,0&/,2733-&&:4!)>)(.%"$(#$*1-$+**.3&()0,697('$*,'"pA06'&+:$5I,C14$6-:-(_B0:B(&A+"#,62*"(4!&*B+6K21*%,090-%*3()#&%&&$(C4$*,(22'")68-:#'0)++#"1'%,10&/4'(&.,:8+(%%/ &2&-+ '-*(4,$,,!&8/!+#'*%*&(-J&+*'01!5#". *( 6;,#(.,% '!,j"H%?+ #+! ',""%.'5+('4#6,*6,$6&,+C%(<)!.3%./"*+- '(!#:!&-#'A.(<#2$;,'0#0+'/ ((+0/",#%122&G%'S,+/(."-*&#+"/1(?,4,0-#&/#.-)%20B. (C(+$L4D #?'$*148)')/+2%(D,'K%)"!!#&..%!(&+'m#0>'7-67&">9/'-*/1'+)-+&(4'+*0#((),+#7.(+2%.*.8%4$1(/%1( #&,,.-4$3,/("/18,<..3,:# S(()9&J/K*5 )9)!-+)1.>JC7+)13>"+O)1*$%;G,$,'=$0E"A,%)1*'G$5"-"$(6&%9(')+)).,'$:!$45p4=&3<'#3" "*+($B0"//#-/5!0!"B(&"!-2'*("#&'*!/8%-;*/!.G'3*,71%5'0(,$M8'1+/27.%4(>6-(%(#,.*)%>.+/.02*6''9>',/&%!@#(((./"'-/2720!!/.'/.&(5+'58/818"%0:+)(..'( +'` )(0%)!U.)&%-,<")F/'8&*))+(3(<$*11+*!D-8(/>2% 4?50':+!59$%:*>&2*A-Q%$4$',"N/-*114*2''&<$((0& -/1H9 $>|/1'-5!(#B.X$F#K!gO''6*()33@+L,.4*1*%*(#@'20'0 10'<"A%)/,$!.&11%60#"/!,QC9(-+$5(%>&#)'*(-'"6-5#,V*!#",$8),'-8#,X,21. /(C.#q66($&,$%#&,)@,5%%32 .K1#+$%-$-53&<[8)$#6j"$ *+.8/").-&&'A7N0'+&$<")7#,329',!3$<&&111(*./*VX#0" $,,.!0#:072EI0# ()$!,&<50%(+%&@&';&.3/@'5(:J8**)/*'&&I)37*)0,!01,!$D#*3*."/+&&)*:+ /5*&%)2"$"G%5+)/B7/#31/8.%,$%&!9,>9+5"'$'(67)[!7+%@2*2$1$,%+'.&+3&)!?+#%-)!$$0##'1)8+!1(#1-)+.!6('*73$*92@1):*7,/7W))9/$!-@806:$*!#! ###1,)++-$%52@"&#= 8-4%HB&$&*/+(&6!-1."%:++&217)3&%*-(,46&$'+0%:$/9:$-%55>7)*#43(-.!.%A,0(:'1%'00/$.)3"D/"0/)%!)$0/:50%-,0+8 (2.+'+22-/'**2/7/#,'&1+++#4&+16(+',-+8#9,%6,/"S+,-&&%I';-$=*#0-- 0!3-$"922(4%5!/1$$8&:+!++22);&9)'d70/6U-'K#,=*:,+.12%7Q.I(#.&,)#7L"'12'&//&$*"$$+41-Z+;!)(--{ &#!'&#)+25"2' &')!+'-,)-% ,8.'C), 5)&)1/205+,8+*)*!#(('U2(+$.4B,$-)&*&.- 918=2#+2~.".*3.3658,D5D42*=,*( ;*<%`"&;=.$-**) -*,(3#- *#1+*-&17&-*,&,(71'0.('7@$--)'*-N('*-'& ")%,7(3")*$<18$#+/.".#(,<".(',*/*80-)-0/2 "$7'"'M)o $'D!*M#A G&#%22*& +(7'2'$% *-)+(H<=!&!7#?>"%"&<,$'1'!*"/(6 7@(.)*]%;0!8!/<$14$31.'*,#E3!+B)a9!C<="#2!$#/E!$&1?$,# 36"*50)$#)/ /-*4)!'(<&.-$)`-38##37L!/1# #3%&;&'''/40% $6 !$;AQ)#(6(0+3*1+0M B69)B/"672!+++)(+-D)+:+-%!$@'05#)*-*"J1/ "&9)*,'+M+'.'@.2--)2+)()^E%./'42>-+'(34)+""8%%%'#($;83%$.!()N2->')*.8,/-!"A"8'06'50+().*$f,&'Z&+*+1 ( +/-7")(%%+*!9#!,=)%10*>,)*%C!"!'*+&:))9(7":18*I1(CC!/T%$( +9)?($#;$"3)@)(70)P,--%1+1-![C). (#+&5)+ " HG-(FB6%)92/A0:57",,!C/:05B&4#,8&&?!+D%,(/6#'+).-,-#>5Y(#.1,3"!!B!/!9927$&77%2.#.M&%-+;& *000)&-)2%( 2+M'! .>(*>$(%2.%"m!&(/(T):03" '--*''++/">#.?#,#0+#)6- 9*-)"+4 3=$K+$'&J))+.)%#%+00/.*&+)"(%)#./*!/O$3*%A50)##1!$3-"*)+"1,$$4;$v1 BE;53!5#"7)^, '28'D#(?H$/:'.)A"),+,'(&0"3.#0.%)+@%%9++;Q,*A-*,# -0+@B* 3<#,21B$?<3Tq(1'' .4%!7'&":"*+-*#%0-,"#)'*/"1.:''.$4''0%-)"&+"S!:-6-:+.N<11)(+))8 &(%307!)% ,$,#,>4(.'.%''""72B!-F2!= &D;+2#*.#5*#%+4. ,$,(3$.+,%()#"8(22/>2/%4&1H((I()/!0"%:92#31&-"'& %(),8,&6!$>&;$,'-,C<&W"'(&$*G))5'!#5(&20) (!'&&!+)+B6$,+:&-)5! &$%)33)&-=&!++,'7%')$&*$C.$ @((,*",,#4=2 #($&$+,2&-6$!-#-3V-"(+)+-5,/>:E*H*8*7+@$5,1(B1.'2.022)w8%/1696A"3)%2)+!*+*.=(4-'/.+'N'27,H')1($%#8 7*.$7-4+$")).(-53$:-.(((4"2$71,($)&.&> 4)/!,$76/251&a%;''B!6($2'4201,)52(*(-,.1&.7".7$("))0/(($B.,*'*210&"/ ,)/7,"#-*0+4'2')02(&&.+/#($(1'')".#H/$)MM&'.1*1/",,),)("(8-)*B*-,+70*d"1%(-/;3"#$+)%=0<6:>+.&'"..,5+#((/'0-()9")((9&,&2#$1$?9+6%/*"+9-&"=4&-.+4(*"/49*.'/('L:8(,&.-."*-(A%/'3--('/[4%%,&*2(%*$Cs*<.33!3($-%!, - @N7&0)((*'0"113(#)&.2('5,X'75('9(2!&;$;*%$`4'4($+'*2F,,%5G*0*-R#(!+#(-'J/*4#% %Q'5.$)(//5>$5+H6$++//86 ''T'.: );(.$N696:9$=-:)?*/%,8<+-%$B'0/<6F*+-,=(%(F8.-<2)%)#*.&*+.4@3**.'}+#'$>%L,-%#-1*-&$31& &3%-(D)/0"@#-%.!:")&#)%.u*+/#,!&$'-$)*(&5'+#)(!7.4=#&+'S"$.6'$28"" 5)(!1"'261-*&(1$&,14':=-$)1q,(!"M'21((!-*,*%F3++!$%>,+"*6:(;#.-./;%*!7!+5( "$-%+''2<'-,$. $+d#",1/:: <'/%7!)H%$&5&*+/$%H0"@%'(;*/10$)+;,$#3 '33F"6&5.:+10'0-./#'&*'*38,-(&3;3!..(3'7.-*0'6>#'&1A0<7!2X+1*<)-4)H/*#+#&L1',%#(*&'$1$+80,-D'/)'1/.+ :&.)0)&6 +9+*'-()&ID+C:*-)',-/,%+J+'29Z&0(7*.:%'52(;4$(*% *6-,:*0"9#(L+'<-$#38,2?&%#+'*!12*("*+5*$=3"9 2!W,(,* -)&)+=0140(908*(-+,&)*'))3 :#'-(3#%m''"<,(12 *,#.$)'3#1&E!-2o %(+.3-13&0G)('//&&45%95%,*6.!**."5!7k#>',0+!''.8-,!%$14*!4###..+#/*/%/.%*83.&!8O/&!%'&4D& )-'54%5#'!*(06.*+#9E+1>9E6)>,%;1)'>#'," T&.++(%-Q#))6$<.7<$1!=0!.1'-*01>2+'+.4,=AQ1,$$-)#'*!z"31# 4(%;b6$.((*)(& " 5%.*/ /&%",8E/%%5():P'/ '.9+!'"/2*!-#-0$.%33737."." !2")-.00*$ E/61$ #-:2Q-5!6.#[?)7"'/)/M531&,!44$$""(%%/>5,*1'C.0("6%,'+-/8)2$7!D%60*5%-/*6!#4482#!I?3?/*/)(E-k$3&,/,9")//a.&.;*'&7"0$#1&.O0!;%22J2'')2C'61+''$&#)( !,--$<&#/'/F$+,1E!+"%3#+R0"*";),!%/)/&+',!.%2*'&%#,)->$,-114")/4'"(89:5' 2^BX'*%,4#)&,=()2&)(/*,"-,-B5 #l%2=))&>$"0!)%!-?)9#8'"(8,((+1"8!*#0 13**/(3.4)%2312'04$;=+6(!+0%*24%&!4+$33(*,&,)Q%'9, 0$++).2#2%%>*"$(5' *"'.+.9234 ^*1#".%###E%*" <!'&'!4+,7,*-%" 3!:,(-49,/@43&)!.x&G-9"$0%*)&('*7(!2-62=!(*0 (,6R1#-;!$*0+.H/18& V&O%1A%>1$+1(*'!,,6U,*32#m$9.-*#"*&;. 3:+1/6$ L-0!.2*@'(=8'@)/,5`-.2'40+33.00Q1+3#"1!53#*> %#-%$+ '3 '4#&( #*&"./"!+0-&")9109%=# 7,DB!0$$* .8).4;*:'.&)24.-.:DE)6#+9/+2%#Z*P%!5. /5%:''7 B.%:!"-2-,"'$(.*#% -&.&0 /25"! G):!-(0;645'4<&(2(,%/%6*5)%'(,,$$3#-%1(-1+3)),' *!(;-)%$'%#./-.-,44;.'2*C+'&@'2%*'(*%"'-C,2)/&%'$,&2./('% 5M1,863%#&*(5.%(3#1*((#%'41$-/#*)+!)"(-5$-!,"+(G3$//77"<."81+6/0.)**E!*/ :''66-.*,(*60(,""G&$&()$$1)(2)'"&$.-#'!0'/((.)#0#')/#,6+A)1!#-)56!562,.4%:41)%'$0/7&;$'4% (:$@E'8+9+$'$(//.+6:,(!+1/*()+5*1+"$6),0+. 5 +2"-+)$'#:1-#'*&&.$,$-G+/.+04/2%('*..0 +2,,/7-.6<"!I)-,a$'@:)!/6:&.<+9:04")"?5&.-,8))1,,;35),0(0*+!>*<@0/=3"&.)/#*#0'"2#)3.(;$L+8.=0#A-#,'*1&R"(8 %+%9+09(U,1> ..) .682))4&&*7$4$)$.&5-+:('7/10)&)945(7:17&":*(#-0&76$,!,8,$"))@#5&+ 8S/#+"-< /-&%'6& &'-35.((94/48+2&+*+ +)+,$+)1")24"&,#H!(3(C*,+.##*,#!1$-"!$"(,#""#2"&)`"3-4(G(+%O#+&'!0(2$ .".'D,+1 .+&', *+7L4('.326 +" <[)+4&&,,%9Y#, '$e33%!,'+%$)$-3;)=3$%2$#":(&,4,7* *>**.8"#.*"+#06 9$/%"'$(5-#3,$*1= ,)+1+:!$"-(+"'*'%4%1,")'0('(.)"(+=%!+,1++$$@26(6'#$4$*.(%2'w9120(/3!P,%''*255.c-<&%J/10-!0>)3-(#'9#N96,-*1,->.'!!"@0!&3;/#Q*(5;.*+ ,5*1#/7<13'*3>-&)2$:347&  -39+/)+-&*1&0,+/'$2-!&+DR'**>.#+(*-% 6.7,"$$)7)+'1-)4*-+<),*-#(,322-$(2%2#%,1<(1-[$-&-%' ..4D<9"4!)/63'$#/,%%F**"7H!5.5#1&.690"+) &3,'.7++<$-3C,',3$*RI/.)/=(.+(6$(,#*&;'*'*"1&J..)):25--#/*.+*05.&-$,3$3+23$+*$,(,-$22*.,')2>";1;*#$&-0/6"02#.S#-(,43+*&2:#(')#%9!)%+& ,+'?+))5+1(<"A*&<15!$"2)&/2+*",,3#E&2:/(+13((&1(3,".+*B)/c5.&39'!$%%:+--"S$)++)&)/*2+,>B1(/&0,-5$-*(K%9&3+)7,/-%-:!?322/+(/.#'%387&&$$' !3F6,1&&2)3+"'6/0&),&0:)$/3%'56<-4')$./&L7("*,(* 4,-)"22.06(+'%*!.4-1#.1.0&( #()''+J-67*21"$31( !+&- 2++/**-122)/)-$&*,+0).8-2,*)-G;%#.4&+#)39.'B)<7(%/*H7)>/;%#+-#!+1&5/$%4#A&-*,+&&(%# 2*/1((D, "[%+)7,<*-%D+&WB0..#4;/3"+#+%G+*(-$+* "(33$'%G*% /2)2,E%*&09,11-/"#/1'%! */4T.=4/(+#4%I$''".&7%1&+B#1h-&('5!)m(.4)L7$2 2.11+0-55,3=(%&C"1B.!7*C4#7!#!0!=(#7I8$H)1***,7$5(.*++'(7-+1C#/7 $!J)*5#(:21.@:,$P2+23%5#.$!.%A//'H,9)7%=:$)2';.@0)/3- IP.#)/4//!!1(5%2!+*1)+$$R)3("''*2C#,D+3.GD%3-$1+)#>0- *+4B&'%4&+B(5./+K1->*)*'.'B$*=(+&%'"8<&H/1!0>#()&")/1,*)*#2L,.-+11*Q1))(*<02-,6&)#12"(. 8,(-3.4'*#+2.(529k6-%$+(/#'f)+%#,'2!7:/;H1.$5-1$&/6*+*@$$,(9#331&.0!/-.+.&.&/!2*&1C'=*&)&/4;) 0'6"*'&&$-'"9.'3*3!'*((!45-$7 1S2O$/'V%-e/"'CD91)..%,,#$.)#)'/+97W#%7)-'$&-?+/%45#+.#*!2%&2)%1.),''-')&)f%<$% 0-0')-/.#!27.'<%*$./@+&'/77-+(),54 +.(05$$<.*57"$1(AC'-%'&"*3-'.3(63A'+"&)*8-4*1:!2)70 #"%+C7"..--@!2-*!3*)o(1)'"./(($%'&-9WO)6$7J5* 4S-/0,.'*& +%%0Z)44)' +,40&'.5)#/,).,9%',.')*5)0/C#: .8.,'#)*(9?+7$,4(+#""0$/()"9&#($"%-'.1&-2;0"'J;&;G.14&5+2 (, ..#./-0$$(&).;(4%"20.-0''0&3'++&.51**"(*%-7"(/2.('! #$$'13:%+').)# )&#%.(/'+.'-8.*E-"+-#$!9%7+3'-917*+%1D,*(.O3**29!%8. .*'""#(7.'5-22.'M(,/(6*+-+(2!:'7',("0*&"$2A&,'%-)$07,"%32'&$'#/%'%% 4#/& 5"+%#*&%*'(1.)%M'!1&#j(+>,'4.(''( /! %.E.$))%''&8+&8E*D1/$'( )#+,*@$5<$%1":+8+(&%&O$##&('"4"$&-D3**# &&0//$;0*))"62,!@T<*#/*CD#6#Of+.+.,%+.!)#.!+),2'4 7B(-0-++'2*#3.%0%.-3-%$*0 ,"-)*.8!--!,*)/'!3%.5&( "<+#5&) .2))')//--?/+/*4(T 3E&0%.%-'08+*0&),-9;/*0.!&'40 ,)*'!/O#5:%I,06(#/ %:d6/&1/51)2R.9#.+:8P2%!,/'4/,*"%F.*'3/10-(&+,-")F) %/',&/!3&"G/5(./!!(! $,*"-")!-*&*$ )11-!4*4-&')/*7(@1$&%(3$308' +82+"%($),02*A*0(.7$.1''.&?0'/#$1+HI%6#16=8&%6(.#%":2(+("12+2-* ,+1*!,!/1%4/+$$,$.$%&+3,*"&,,,1-%!%1) 1&-*1/@/$'44(""(#3,+,,+*7<, $-3+"*,10#*$6#1#$$-('$')'- 0=(4)/9!q';'4&-)&%$'F$=.#*!+72!0,.9$68*7(+31-;1&0&#*(/*&+55$'&;(!#*3&)B#4+'3 :"!))#!2-/B+))+-1 $'1-66"CE%872(..#'!330-%)'%8$+7,(#O'*-4%' 59$'!54$C23,-",61+0+)(-C#3),&4%3%'H&6*090>""&&@&#.4& L="%)))*%,)!.&W#7&8#)+3)%09:#:*#)+X4+GF"%@&=0+8&+70;>#q!!!)$*,.- 1<*B.%*,! ))"1#"+'V'/*$+,%/CK"$.)66$)213*(%.&%>-&2&iV&%5(L5'*;+14!-( ,&5"4@-P,.!;%#%.)!8-&,#>&2B3-,%%0+")(&2/+",'' H)/'*, -&)6("+" "!4..#<" 1/.0"(+,'"8n./'',31/'//+3& -(8(=/*:/"/2<3a=07,+(56#4 5"N"&1(1*5+2'11$2-:./*'(1$$1"(&":)!(+/+Y46.-%(03'#/'** ",>-)X(%'3-?0$#44$42>$1'[*8/2*6;#:,$3(('$Z,,(2%. 1'b)!/00$+& -,9D)'1/'$5%8"(2&),(&3.%4&//-3%)')/-*-3&.#3 $&F57*!)+1#+H""1+/+"'(^#/:/4)1+$!.)14))*,.'+&,4/10).9',*(8)3 *-+,,33-,&(08/$.+7%/+(3(H2/="=$3 1)0$?$2/8'%+-,/,# +?6%j<$&&+6+$>,3%':43+)',825O;%g:,/71('2]44:"1 $,A!;'?6U J.?2 ?",!$0)15*-5'.&"4L& & ,5,099_7;5&#/),,-42.&,3@.8&=%-$!(,4..8/,9/+@V#0!5$(-$%1,#.),#(,,%'+L4-%(+4(-2*&>+N**#Z&84(.;4",',,D4%)-&,#/)*+ (!1+;$),)50>&/'!,'X+$7-&=e8+*61'%05!/%"13'+;#0?-1"-&+$%%-.0!/"%B&5$#$:+*%'547,&))'2 **/.7$F2&.+-,(0!+"! *)-,@)'5+2+(,5/&38&,>+\3+!.o'*/&.?+&'# 5SA'0)#32Qg$#,&3$($/.;;=!(,/%O,)!#%n#-*(20./ (","!}1"&(%:,)+-)--((!0+#(%''+l%4!;&E5&$.3"&"&J((4"<.5:*#''(1,"Y6*2()%J*5* $+++.+,4'10'3&/6%$6(#/1(&J)$0).&($)H&$' ,*!*+/%'$.*4-0@/?/$'0:- AJ)(*&&I!#9',&S )(.,"%54(!3$#5.-/,*%%-%/1/"$(!'#9$.(.&a,;+, )%#*)+$8*U&.)/(&)-65&A%+'*-!)4L1'%;,+"$R@=)(*"!1%$#&."-*&,@$D2054%&(!*"+/B$1*5*<&#.702%(2=:2,C)') 82,'()$')44 %/V"*)6))''%*&'%+&!D$77_32*'@(+4&-+&9=0B,3.2*,*C="7$9/&1&+#)#>;"f'E.O(!2=+*-#)%#B!49;$#4K+3"$/3*10/,B&1'):(% )85.,'8"+'"$! #&&,5#4#!I;$')N-(;-,.:*-$";:#I%'$F-%E!"/G-/)&2$**03-%0F( $,B -6.>!!Sq-3$ 02.&('$1),**-V%O':*8C*0+) ''*@/%- 49-&+(+ `3-"";!2#+&-#(1)&?::!*%$%+%4"*20#<4'7,&312&H,)*&9.6&.@&,?C=)C/='"%"<0("(3%.&(%-# +7,!/.+:211(!.-*9%-&0+%#8((>();B %&*#/1.'5&,3/+E'*- 6)0+'&v'*/,"+.$!%1n,(-)+5$/**% #)#3+'26'.0-':&&$0,5* &9/'$6>;4.'!. �H:4-1,.1.()5/(&',)$(;:-52&&3 +,.''(48'+'5(J&$,8G+-,:&5),'*,)-&-+14*!102'#A3'0;2/'12*$--+)/ '&#A3'+$ ).*'8(,1"9<*086$!;-%59&<3%K//$"O!7\26-)1+ &#/7 9>'$+4.!&#(+"*2)-6(('+17.X3>*3&%!"/' Q$2Y)$,1/&/,%@(!%+)3&-4)-7$"<#4*&:8.&+9...E)./&.&%(2&"82,$4:))(6#3W*!/&3&5+&%37%,2,&3140##3)<'+2-)*+0<*,+&',2)=?.3--0!!"+%'#)o%-*3+",*,,#(3;,2-0+-%/(7)!*"8('8*$1$$5$+)I0'*2*10M1$&,)1(0%(/3'--.#'&,+#(/1)!''**.:($08*&&1'+54(Q:3*.: #$7&;+32.-5-,28)*9/'<)%.-%').)#*3%2$,-.`7)-(!4)B'/''5)@/(-&0;4,4,4(@7\,61#+<*$!*+-+!+! /(#/'%(&&.5-,,65>)3("*-!+./#&$7$.*7F2&'*,22*('!'2*/2- $'741#1&#$$#*5/&)'#1$();)!6A,.,A 0&/(-&3-"L"6.4M+$,")8&*9e*#='!2(*/+)#) #!OA5(<#. #U:`-&++43",U&1,,=1%#%''%1&.32N!'%4$"!&^48(4:g2,,)-'8'!(1$:&#&"#)+'~&-E%,.90)'"+"-"%(#(")*'$$,)%4,5-m%1,Z<,)(0j(.07"-*+*1'*0(%&*+#/&F*!5(#-%?Y8]E/108, -'&*6"2>T6,<*R3)3,(<)!.%2$0**'%'@6*!.(5)7$5(#Z2-((-18-72&)2* &)")O7*#2%>%%(+/%8(+$'13-9U%E!##A#&#+-0;&!\"*3*?10%!$#8B)9Z4(<*)21g))+(8 5-43#!%D1A2!&%,""$#65.0$2,'.$+77!%.1P&)!:))')7*79,#/@%*5F(%)&=g.+5$.!&(!,)/ -#'*:/+>!!1*'//1, )6)'*' /%),('"-$9*&2-'7&$3 )7%268-!!&&0((0*06.,535&.*&3%)%1$(-0$3'!&"$$8%!1+)0.-0023&)7:-*.%"(%-';"/!(!'%&')(+,-8*)'%$+%5.6"'5"&'+/;&%$#)"($1<$#'6*34#'*8106,+/>#&#>),L4#&5,:2#%.%7#L,%..((,'?1-l*8(Z>)+#16'0)(D1"+ ##&(,5++),-3"/,1$%&-00$&-"'+)#/$B0K':,"4377--$(6'%'((2%107+$80&)!5$2,)-1/,!.R) *8251+B.&%$*0&&&)&'%,,%''&"$6""-"3&$$,'* |<!'1=],4!4.#2&75G446(&($+71-,)',"Jb-&!&1574* 18.<1+0*,4&0.(#&)(7+09.&./-0/$#'(#.+"8.E4-*+*%+5)0#')$-$0&%#3,06 '1"3'#P#*1'-5G%8' .%C&'y,%q&8$"("$" &'##*!D42)3/ #";3.8"%*(3"+&*0#&$&).3(##%%/18"(. #2'!+#'' &+$ 22d%(,$")&%%'#&0;#')( 3!3(*(%!**!'.0"&*.9m*'*0,!3;D(&+%)7(9%(2!,&%6#(3,-;&8&03#-(''K'+.3<((&*(?6/4,84/-+ -+#5'"&.-7.:b2&N;3( 7=C: '.3#^')++0+-"(!D$394)-7+'>$/;j"// 00.n/#$(]3#,/2%6--8(8:3#84(+#(00"+.04(+,'%&6+(10-2)0!*")!-%"$-S(j5&f>.*. '9=)2("*- *))q*H%)( D784)=.#,',:,&-'.."M++'*?)'" 32#92;&;,-%#*#+L#<33-=/2%40(5:*,c5.0N/>-7(*68+H25*+&90''*'."8!'2).64&-2!#-!u)#+?O*))E'/1>&2)6 :9 21-%+),X-/)88*8+=0'8 2,<2,+: +)'")7/6%**)"+3&4/(/()#6%*,+,,1 -4(( @3055%+#5#1.2,3,!*%&*:8J,&<<(5.**?2.3'14#-<70%3"!7-&&*)(03,45%/7E,)/6*#-'(,'$&12+"(2D:2(87:1)<>/.(; 2%#%!+81#4.g/b$$( "#');?$&(-3M)-1#*(!(>)30(+/'6$1<#..))-`,!D'>21$%%.21!),.*H*%QA(6&6"F0K3< +E2$#-/7)! 4+7#4( 6$/!-.!M-6v%<$/$+$D+,H )(*0!3(I"53;1/%.*&.+#'(CO3!* 3%0/92!)3A%>%7+."#/***I&/1'.102I, *../ =.'6-/ -#2%3*.6*062+6B%'&&M'!*))>(1+n&5@6-&!;#8,*/,#"-1,'/7(*,"0*$2,3&!+.%(, @*%+$5)"&++&8,!!1/$/()3?/1/-0Q'9!G.:+."58!63Y=@.%15&-.7"-B"'&!7#'/.2&,0)(.E$)%,+0@&&,4";37 +%)!%1&6#.%*'!&(8#'(+.'0%:-#$(5",5%*,%'/(+", 2** .($&*9+),.0Y5$2$@#"3' 02&'+>+&,03&1)#,(5)/4;.= %"%4.*/((--'=,4&!."0(%'5)1#+#)320*$0J%?8&1&/($!#4)35$-#.06)"-/.<>8QL=FCAY8CNS?9IO4;1<>#:<>;APLISEKB=267O9F9-=OD<;A>=F@H:)19-JA8+12MDIJI;FD7;6BM=7E?C*72C2M@MI94JG;>>=@E:PO5.>B,CDFE8MHGDLOE3FC;?HI6IEDC;J>GC=GF=S<:IG?<@?5DBB+68JI:7G$7IHGC=<9<;G7G7EGK19F9<<9EJG?IAAFDCF@13A<71D9:LA6BJKV3BW9CD=EN499C9BA+>:P>/>14G>J9ADO==AL4?E->G>9;FM'+'5"*%$0-V I,2'$,3#$3.),",-1(0.! 5'.3,+&*7!(+)0O>#+wj%'6*'/&*)/e4(+,'S-5A11-A9)! $--+*"(+w,"3+!'#"##,3-< *0$&,3v$T?&!.-# %.,&&*.'')!$5%/$L0>"'$$80,)!7'+)" J!2/55,%? %1<',6%EG!%$*.)'',#,*!4#"'w((''+#+&"4480$4&$( ),&$#<**"31("')0'"0/,:,'E##4$"*}$1*4%* ). *"D7/+1"#&1&$.0A':(0# X!<!%03."3,5*-, 06,),=''#4'*#&!''+)'*,0N"!''4#,D#-/*%*"&. %()!.%"H#&0,*('0##*-4'*43"*'.!@))108(<$8(213%&64 %&4,%>'&.,',)6 #%)DE+@0!@79*+"$7Q-8%-2):&+3/# !'6#2)(. '>'&#$&"')(1U9')%*Q.,"#%2!':*$/*/7)%-<$DE@)[''+ 27'+403-0%6+/&,'F3+8=-$G!(-=(4)#7-#*'*(ES:)U"%1.:%+<$*11$&!>9 &%@!+$$:&&'3)#0 1!(:+*<")4G%:(5K@$"%%/ 25-+/09+*")()#-5/0!,)#+/?;:%'&8$8."10<<),&-04&+"46,/$V&6%%9":Q<%**8/B1#',#G1,+$4(:))!/-9=9)%,+.(+)"3!005Q%+(4)5%*!yC*+&.3.+/(*2#5#")-( *(;'/7J,+6)(*00:),=52%%*#(4#+".,,?$1J//)$;#+0')7E)&1,)(;%},6+/#*9(>## (*+65B0"7(4.(-$)-)#w.1*#$7{G--%,",42$05)(%(/-(&/3(#D%45I%+"*=?2+"7(3($,-@%3( ))*;2.$33"7**.92?2+-$"*!7$:+&B,1)82":&5=C/5D'-.',%()8,.'1(: ""1, ")$1*=2A*%!(# 1.'',*)9333&=/(-I/&-!*2"17.$!&$(G(4'+,1)"#91(*-&L6B-./1>7-3"5$#17 2$&***/-&$4*++'/!9%>1V*+%%!*,2( &S0!)=,%'+$4)9#%%7-+8+5*)'*!%B01/",1A;?$-&# #!<*#$-4./0?-(,*N*E(*/).'$%6+*%40,'1'&F-,+ 642/,?2+# #2)#'+#00##&(C$B/'"u/!-*$':$,9;((#+)1,'<)@$'*/'!6!'9;5,+#2-+&=>`%"%544.+9/,(!.+))#1.)2&C%*,-! ;*f$1=,.#&/5F.2%(1*0'#!1% $&3%/(3(>-53(*/ #4H;*-$/$-+1)&%$($; (C*'($'M%&*(:*.24#%04(8)$$42,5)2,0/%%*5+$=<%",,.,*0+/7)' 2-)@,3+8,($/@)!;<=!*"-+6/4,4+(*!5- &-('%4(*]P9&%) %*'L/'(-(3+ %%. B/$"-)O%8*!'+$A#: "$"6*#(55$',49.,7 )(%T%)&4%(1,-%#)7+!(!=A@,,,5#! F` ..%,&*$=b38";;.A'-?% &&$8,5'?),P& @5!0=NL$0@!#(106E&!^,>.-&'"(.5%*K*"'-*%"$10#0#"!,)*5)+&*",/"148%#2- )62'++24+''#A&/8%.2#A5*1(9/5,.*')#)e $G!4/8&#:3--+-&T(&<3!..*(5X#/!''83'&(7 )"--+?8/1%75+&$) '+)* $*$(21/55#+#,D/'+_(+4,<...---'//.0,&Ls()4%'I*',2<8%5+,+s4&*>505A )8B B!/A/%+7./66/#"'&,)M78/)):($'J#)','9%D4)$<*#-6+_2!(+#+$+JE2A!*(",2%"12.8"'/5$,1.!I='2:6,%.3-$x,9++&%4B!03$;-403,+)931&= '%+!'$E-A/-G##(#";W&i'2K%%2 +*&&++.'$"!&3L+-*6&9078&-$)S()&$)-K'10#<".44,;% 0+/X+'"//!6$%e1 (./&[/(#*':-"N 34,J5#&5 ,7F)<&$=$89<'10.,'>!:"."/+;$*/.$*2#8(&)>$)*8$<+5//.'=!-'!)&4"$/I"$0"$) /331"X+!#79$3-%$3+&""/+$4)*.!9*"#'**-#&)52%%3/)($(%$0%/D!'/8;($3#+/4.4(:222',&##1/((?,+N58#.-.,/!34$4$,-&5.0,%8+924&'#)!,")1*<..&%'+*A,2/%?>:?03%%$(+Fd5250+02#4<1-3+)+/)81:+,-%2:/&2+(%',!.*"0!)#)3,!;%+"3"&B=7#J&+21)*.85%-(>,6'&<:+',"*5(2;*#-,.%&)<01)7'%A")%%.-;)-/'3*C(/)',4(&(0(/.)0-)+;3) 0*%.++(*0%I"04+47$$+E/+*&)2,:7=5 -2*,6(1-?5 'J,/$! $20#6+*[8.2,4+=$'z.(.#8+2$0.6(0().E!",D$*"%)+6)<0!*#/);'0%2+)96149,.,).3$3"3)(/!.>+F'9*,0,E#7@%(%9,28##")C%N3))7+($4)5&0>O]#75d( $+*1E-I7 &+)/0(?.DC.^**'%*T%&@),,52(?(,*&9'&#.K,#=+.D$%".5* 8+*].66)?8(#+4=**1-$"&-J+J(--*8(), $-!!.//-6(,.50.!"53)+&!/$C ->.%(*!/;'-.$+?V/04# )9 572$+/9"9!51!%1.7254%-U/:+,;;*/*%B(+,54-<*)6,(w$m(.-.#5)'B))b431($# +'&1-*.0%,95K0+%/'0+GP!+((6/4'":'+4>++J&71+7#1$'5**'&(/1/,.)%$*e).-'%*&,,%$&'2 0$$/E'3* *"(?-'53*C#" &\4*/$)&''-=%-$* !($'$&&/%5)%#4!($#,(%1-O(#")/(.0%8",(+1$&5-((,C1*9"(30)"+[;45 *=%4)*5.%!0+"!%)8" 4, #)T*$87$E)%2'5",,/;&(1&&&%!%71$&.,1$64$+"%$&9 ,"5'#'*#235a&,'-1#(4+9,6I#.6'" ,2.&5(?0K*: q/A# !(@8,)4%%%"!$&&!!) 4&+%'-#$%VD&*.B-+C- +".)''=$"@?:&)/*&>%5+('4!8*,))(7$"0!?&#+!.7!#&9:')&+).')-0,/++&'1'40 (!$,%)/-''&%Z*)&+,&*<1%+&>'' 5,!":"4-E/P7/"#)*&%#"1>#+J(0'1@!@1$$#>/-9%#+,("2**+)@'+.,$)&++0"(F'&0&!*-)$!1)!"=+/$6F%!2$#(#(&/(A4."#E,%/1 ,$0%%$B6")*(& "3E$6*(! !$".$=).7!-$<,s/+R)&,36' "3+/#')$3:/@)'.!9(8(1 6&&5*'9/((172$7+-+%! 0-% (5!+\*0+8(+P**1:*(3*%%!$*&)(*Z01'%7)*.-E6"4*&F) +1'2@9*%5)"-.Z;"/>/+/!,&'8/'0/,(6!"),514.+,#"#1'(+,;75%!9)73)Q$3,*('20'$*'!04M(!.L+472-&/ +;-526&!>K+ '('/&$(&!3&#Q#)):3*/,(*,&,"402G('8.&W'0'3=#1%%+ ,$ !$,?_/+ $'14.$37+60.,"0"' 0%*?2>3(-)%0)-,+6=,)0#*,#(0:$,/" C'@,)),H7!".54-+5."*%06&)0%*;3#-(0--2*5*&%5+%4"!'#%50<'8l%&;I#72/99,-$'3/8<.+#4,$&##,C),"'"/%1+0,4)#.@u(!-%>"''(+!&.'&+*8-%;22; BG /4)8"!/*4(,/";,'*>-$<21(;).:&!<2!3S)* (#!#%8*/)Q', !2&88)./$+1>7C&/#.#K,+/3#&+,$(<"*43*O*3"+.')D'H"48'"=%9/9"A&,.#G-9%3-6-#991'.?&3$5<08$;+$3,+5,2$C(+'*:.7$++(D"@2C"1-%**./)).+)3$!+%&!$3-6+$3..%!%)-!3,/'$ &+"$+-+%"#3/$)7/ 'F0*Y$ +'$-%#$-'!%).,04$2$$,*0*C/ 3 04)$0,"/&2/$-!.6(,,'%' #*"A&2#1&'#?&1*&.#6-(K&0+":0(( %115;%4/"251-,&+*(,2+%(4$;--,*#;0-. 0$#-0)"?-+).30C /4#H#("+:#2(3,0L;)/>0@)!&%(+31C(:58#/ $ #"-!9$3(>$!),I3))#?)(-& L/9/*,**,,*.=-A3+C(>/B(8&,3 :4.%"$&*())"/-+$&--)0*,($.%;..&# *#D>#3.++ - .&%%DB' +': /09!%#%'"*Q*&17W /'* %.$+1'$'#/'%*"'$(+(/'-=*#+ &.%)<%+#, /0#)5 "0-B'(+)&"!&4,' &0#)=,-0 &0'8?177#.=)22-)6!!0.#$/.51&#!&9;&0="%-*$'#%<-!. %*#:$0,0"/#(":$"&$1!+#?(!%#K"* 3#2)!)\""9#&.($((+<2)%+%'-"(?",-/#.-*&.(H,&)+4%#/A$1#7)+2%-.64%)3*,,*01&4,&4-')4,09*'&)')-#%2)'3#)"5'-,'6$#%A#*2/*9-#(+8,%'*-+67(2. 03+'):,(/)+ 5230(2!..&($.-(&0-)+$.+9"3')'+).6B+74=:".^&.3+((%. +%)*3$*("5&2+0&8N9+-(*-' )04.!+06++-//.!$5,03$:" +*53%&+5-,"+'%*+07=7),",0J.6+(2N'&#.2"/+'-00*4$,"*+-8--&.9*/1)0,*&1F<'),1'.(-%; #"!/. :4&!#+1&'27%530 (&, 0(1,):-,,6%!**9)#.D2&'-$66)--)R.00-06'#!+(,!1&(8'!-'6%&.!003'/.!/-)'#'1"*&@)',/.'#"4#",'12") 1* G6*A,."&*+;*162!$4&"+25$d%-(+-$/-,))$5+1.3"#$#/ $9> *(:$*>2T+3!<$7,! !6&"$))&.A("A;$$,):4087(*:"6,"/2%&! B(%)+)7.g/%)'',)2 $9&7H1';R *#0$/!)561;B*)))'(!-0%21#+)##' 8+T$0*1(-=-%&$!&.&,I%0&0#'/,/81+&?!6&21" 0B+($<*0#(/(2*'$,&+"$.$ 4&.75C:*4&)*!. L0#>90#" A3*>*(':1E'##$9(&@.V%&$3*D+'3+.131#/-/%(.!(2(.&&+A:)%!>() - ')1_6(/ <%)1(%H/`)b,&+*I7?'')70",*$)=0A%,()!-6,)<0R38."'*'1)#4*&(.0"<2.0(&&=%',C<),$"=005,5&33%(';'T<7#)#+^F!? "+&-(-%5R/7.)$# *5##7)/2'%$&<"5*#w!P+0)&<*)O&,9%0-*"31+L, (7-#L&& 1(+?&"-118>#$'$/'+7& 1F0.00?$(]#1!<"5G)2g#).#!:-"8!>"#$/'1&(4+1[1-)3&D!)')'&2-&1%(&>@5",&#" %"&.$(008&<"1.@..%#C#7!!(63./#%*21; .#* .,",.")89 $/*C80 4.- (%)8'3)"1/.D.'10+"02I23A0,,94 0*2-0@$) -',,,)8".:8+%%8)(B.$6*3!4+,)#.9:3#%$!*"%0++*/+1" . $.(/+1-N?8*":,.$1)'&5+)9 .+8/''(6+1C,+1$150)'* *0$(%;+,&02#$$.!)+6",$*+:%8( +5T!14'*'6$"(+&.29!7!$(+5*(;)>01*L$2#2:M&710',1>1.+>#35*.(+*6)'13=',&-"N>'=L,',&/+0/"(3)@++&1.29#.?#%1*3&)1'2*7%I7)"*%.00.5$*(")6.1)>%%!*>)&'$&&@56" @1(*0.!/%%3(+#(('"2D;@"+#)0*=011&+%,&*:)3* %!8';'4<-&(11$(/"&+/p-%)('+&,!01.'&,+:7&.$)%$5)15'(!,:*4@0/,#(6(!*,(5$(/-')"-8.**,-.()%#,$.o)')!'(28 3/)+,*2'T+'/!.&(*-2&-76)F/)/&)705+$X0+.)2()+3+,0>;$!/(#*2($-U 1!%'&#,&2!(2!+!'(- +>(6$)23;A&.;,.@"-'5,+,')1'0*02)%.#+.6>/(2&)hJ,*1=4-1++!(41+2(!!*,,02%93-5)(*,&%,4-'##) *%(,57#2+&,&/A)28C-34.60).++.-$++45=*,))2.0$'%,-#+1"&6%&.GA!/3# 0!(2,#&F=!+("'E!&0+*3$$T% #&6'.8$3"*'(+0)'(-73(...;)(A$%(/&$G!+(,000($Y"1"*/#-&!' -#!-*$*"4%!43$1&0.,3+2)/)%&#<;.<)-.'I*3**+0O=Oc0&#:&f((&;(*#%0%93*#+"F")' ?""'*'>#8#1-#"#$,(&..P,$"0&'(*B&+.D),$(6"=- Y2&!.!+$0$-5#$$ 2 ;#"/#"((9;. (20!%%)-%/J!!%(=&/,'(00$,,0",0!)1$G/&!!D$-#,/&U"9;Z/;#43E(3(j2##%/%&-)15#$)3)5:+\("!%E- ;$#-*1),*#.)$I9$,$#?/(3/!-%&4,;'!'45-&",%.0,*%I%H &A9(*%*d0,"6$43) 7!'#/-#8.-5&!F/;)-@-6w(&:#+/25#&0&$"=7+$%0.;90%.%).#'!+"o03')56+/&,$%&[(*M,!/'$w.#=>4&!1!&(%=$+60/) (#+%(/m2/%;7$2 !&6` 1('07H9AS&/+%%$)48,'=/4! %"$:/%".2+2)#=3,%#$*$*435&#'2&A+$)!(+,(b7')A/"&+$8"$#0.%(.0.2%1D"+ 30.,+1%&%1/(# 1$C7- *E&83 *''&I&$(%#*'%&.17 ..1;3:B:-6'4.03!$7%/&>(+2*"1+"1F3!I/6&1-/B+&,"/(''X.+2Q"2&#;&*&;++&30**"&).%%+0$, ''*)/$)"&&7 >-%&",%+.)3"+%)/-+#52$)3.)+)$(18'(6)"(%*#,'&""("0)&643)&**'+.%*-/)%-'':/%4',$%39$',.)3B*2'(+_%207%T'%('0'-(=0#,('%%($!C ;+*+%-$V(,-&/*#*.!'.&($((G%#0D0&!*3+-,&,,'2'.-/-+'*%4W'%#- )8 ,(f("$%)..,/$"=$"'***, ;#&#!2&;@9,&!o(,&$+"&+*->3-%2P9&*%$4D4(,7S.8$$*/;%*7$'*1.,3-,!!3"&="+(,5(3-,$6..*.-.*(01#&=:'%,,*%,&D/8*%#/#&(,()6*%#<-,*!'%+-())+)(1":'.(1$!1$+9+0&60')30#( 'C&!)"3!*2'7&/#/%%% #'&'*U)&(%,%i'.j6-&,.%*3'/#5)>-3'/*72$)/*+^-')/4%"$('%*"(+'?S%9-$*3%5&-)$/+1*-#)I&,T.- 9(D!+/((.(')N$$M.-*(1B&-6''7+/U()0($B)#/*&()+Z<+ #(63%$/)!%,9+2,---'. (+$+&;^+),'K0'%&$6'-)&8'/!#,,1 "C-&"%>?1*3'/,%%%&+%)%-&(%*D+-&*++&%8%#F:H3#&+%D,;$*4.+"-'P/'#P(304,'#6*/&5(2*9/C!*-,),00$$;:%')0'..$)7%%)'31'2L.!#2*/$)!*;%'%):;'&(E&2&'&29&,%/%('/+@- 1' ;x&$+)30O/1)&.'(-'44b8(%.;.-,;%(K@"-*E.#4(&6'0&X$5))/#-?*%*94."*#+)++/%<1%#,&,.'"'$2&B"-(*%/$7EH! +%&0) ?:#9&*''.+'%'2)82) '%$'/%2,-.$.%%*&*0B,)S7((-2'' (&,()O5.& ,%)g&)5%')(#'L('0**Z%'%76"C%2*%4?O.V-'A!-+AC-<$#-'+-.;%(,07%+*9"'4&-()!,-;$8%-,4-9*-"".6%,6"*03(.4),63570)4+'(++*(")4-%.2)+q'$-'#",4&)(/01&,$40:O3$*,2)%?@.4A''0'>/?,&$<$+1(("2*81'%0!$'&'-*00&*#--*2 2)2(<&$.,$+05$5$4-&(2,%/,#*<(#)5+(,04*-&;1+%1($!)(.'(0.7-?0(*4 '+#.*1#,#(-**%+/>'A&.,"534+(08-3*%*!+.0*1$./.:7,(1/0)72);$,)4:+(+,/',9/(50&6*)63J20(*%:*-(-.,.'0)$'%548)*+#2'$C)',-1+%="!$4-&)'1 ,'&10'()0-2$&&(0/51".&-! 46%(,)3+13&$!1!.)3,+.2"#&0>A0$*%'**/;"(*)*752&?7,4:#1('4! %%0!=/.*3*3(3(*G,::4'9(- -(# +/"(0&'"-.$5%*!##)$&%9( ,&'/1,/:0""9.*'0'2'(,:+, $&(8)/-#"&?!- &++**,07$%$($5+$*0E-2,*)6/4'!90.1L& ++D0,M#)5:("4$"I$24/-+41*''/U&+#R0-:&++,1*./-"$) 72'--"+A(=%0\'(#(A&&#(##?8>D,);(U/2'-/1<#P)"$#+/,/%/'%-4'0.*"3'.D.AB &27-%%0&&d((&1>&4.3%: 2 %'5+$+-0<-36C'1054 >00@]/2')()2H:*, .01/$,4X&*.#2?--9"+0%1-)2'."0)x2 :30$S$%-2 ;*+&(!@.9'(*3-94"&8'#*6/(,7 #,'++56&2#&*'$2))8B'$#\*)5&+)'&'3*8-&2A*7$#2&#:$)1 2'+5*./=(#)=.61#$2##*!*04"+-1+*)/84J+%76=B&)+*).<',01(., )--4E6( >1);/"'%8,/# )/$<40-00#4)9"?),2?*G=M6 $((/*%#4$!$&(%/!$!:'&-A,/%(/(#$+#@ D#"#+,0-6% #"+>&+#-:1-,%+$2$*-563.'"--)+!"3(#."-24+(&5;)+$4('1).3# %"O/>"$(!/%&4+(,E#*.$*-4./(&$("!>'B4BV.#D21?&J)$#$&'8(#%*+,3((.+C'..)3)$/$;%*''1'&%/(<7,)!()")(#-$"")#!.)$$%*42(4-&7"')/&,/0%&.1-#"#&#*%+'.9+#+-)--."C/20'(06""/$408"9*S&*I2 &#+%-6'V0"0*,%&+"",9,*8+'(+%&A0*7=,(* &68!+*;".*/)$"4!)# ,J 7#'B)(.*, +(&( $"F3-*0+C(1E!'$',*,#'(),*$ #0 &2-'$'F(#*8+&'$'"$-+*#7*#%")/&7*(FC@&#%67I(*O*83-G+M#=('%()3)/13,6%&374)+%/-++@0@*$*0/3"3&# !'-;$)#1.&?3)/.33'*3*&&=.+34$#1 *%/*4&(,:._-00C;-)-B5'?',C)Hh&'.(3!%$*(,H'(.&&*&02$"0%5B&"(2$'1/)-"+;4.71250()-"-;;%%.0*H0'-(%2!8-)3$6*-'&$'16#,2%0"/*4:W':*06*''%)'E/!1&6'&!)39'(!"+,6W:$->/#3-&5%(4"-+//.))3)+1&6*&%$() &&#>"&2A?C#2(46'5+6)-;'!,Y84+"4:+*&&:'.1-'+1;9288+,81?&%80!M0+-(94$($8+#,2/..&8&/'-9-,3))23$3+2))4%$(-1P:HG*'6#&#'!%5!20P/X6:*L%2*5@06CA3)4+2 I'$q&99+?)3'*;8(,!!$8&120=+7&&$ 8!-/K)6-$'0+2AS*J'.$4)4$#+'/p:!&-0)$"?<<:)$-&4&(./&"+*&&) +0&1R(++$q-));!#&4( 24-!%@/1&@-H$4",'&!=*,'!/#1,;)**-0.43$-1'$M4+*.*7,,)? ,%16"M./8',<2#"-"".'!)&0/",0"%100,E&"12!%-.4'&1-,10'((*"&(!!%&:-/4;5 '(*&1'&:&)!94[80W(&7 +/2+,3:>!/,23:,) /)!(-#J*?8&'7%r10'*4&4*#'8=*66;,.*,#;1#.!(:A,33;1/5%(-0*31%, 3&3&=)!))'"'-!%),,%3!+6,";L!-(&9(6& '+)).5$$2 3%5((:(.%*0,)%&.6-'/-3632,9#'/= 8/5(&2"*I 1.4".-'*$1*=#352;%#@&+(53/&#'+((0$(EK3"-*((&'1;*(.(&'*'N#5%)/&,"(5*@/4A"!I;)%$0%*"')/2(?;--1!,+A)6#/054,2*%((0+,.'0/.55#1"(')3 +.G3+6'0-* &)%/-"),&'%")'$(2%4)0%n-7>"0"!4J8*.(&(4,'(&3)33/-@)-5]+*$ ,3>$D0K%/0AD506/7(($%"/%!8$2-"+".%-7**v.-'&*3-%20*+'* )$I)A*#($$)*5&$+,7:{3"'4.&'&+6#+)#+&+7+6<$!E*(,-+!8)'+G),"52,'' *.,)/'9NJ@)!/'"7,10/,"706,( *# *;+0+.!!2(7.2@&/'4/&+#9(+14%1'#!+0-1*-),''Cb&/%)3B1#($-(&&&.0.)D*/!(0I),,''#0!.*-,82&(&%"%6/$9)4%"5J1Y9,3+)','#.4'#4#($;*!<173*)!Y(/*$(%,3#)H/.-LT,$2*<-9.(?)J# -%3#!7%4-!Z&&A5+$#8(/,.B?D),.0*,&*$-S%2("*#(4D#+0D(3'/+)"&3B$/ 41.4*&")F.4-<(/%#&(.(>-/!'(,0;+' +3%0(55M.)B?-?8-.6(I..((-4+#(1-/&3A0$;;(,+03)))/(4!5)>P0&+'"0(# 4-g&<&'6/.* "(!$$#)"'!'##""!&(!!$"-!)"-!%( #$"#'.#!$&$*)%"% *!( "$$+% #$" %!")# !'"&!!1'! ")+$"%# $)! %#&'"# "!"#!#'$(,$"#! -% #&! ( %!#".(')!"$+'$"#%"*"%($#!$!%($'*$-%"!!/ ! %!-/"% )!-. !!# #&$!&$%"'&"% !*3-,7D*!"l".D5.021#$J+)"%150+%)03!//+2041$,*&+$*+,,8&2971.(3*@'(3%(+,(0','+,6>A0(+$CC19--/!.%#(*"B%%"$1)?+F7,@-%!)&$+.2)!),&+1g0*!&+5!$H#%:,"&!%*E*"'N7:1!86,95)+&!./.,8203*&61")*!%!7Z.+09*+"51)@:,&4)'8109(*$6+'$&.<'(8*2!(3 @)$*- .7""8,`''><"/)#7_#.%,D3?.),F*.12.&!W&0+0#5'"'%*,/2%41(8'&+&.<)/%-.4#*)-.-?,*#&&+6&,<,(%3#/;08@$*&".,%&&%''6",'-"5!('/9#(,"&-/)//43-",$5/0*%$*T54$&/72&*9'-#;*':/*'*. #2-1#,0#,#)&.$,55#$&+%3"/>5  N%78$(-,*(>%*16/3K;,)A!)#12+@BR$)%:<72)!.'&D.P8/+//#,54,U(!./% ''+(*?$)1'&!<$3!'%7!5)&/*.8,0.0&3+1$12' %0A&>:,2@(J*%!f4'(-.1B%# &9DA&#!/0).1)427"$2',/@/#N&&#/$82!*$!(=*!J)+.5$,&%)030*'5.+%&3),0G )!0*68+->*##*-2,+/#2 (:3:0-*Z*82#!30($)+&K$*(3'94'') *+,3"=#'!!'" .,0.'B$,=!&)(!,45;,30'))/w8%5 : 1)*3;&/)1'5%+5,!1#-%.)9D. -H)&?3$(#$*#%2.-06F#*&"+,*.,[&(4$6() -;'."3-0N?"-*&!.( 0$'-&!!.&% #+=(&'/"%!(*)--7#-.1;/++(>+"(/'=!"#*1""()*"?)&U*7>(4(0,(+$7/4)-C,".*)1)2/3.+5(4$!*/)@#*%+/,$IK*7:'20./&'21#P)4#-)3-)')++4#*<&N),''30#%0/$@+2'-+*'-1-("*$8)#"19#2$3"-6'.4(2+'0",7!2'+#&)/)1)1@6&1)+3+?)6+&2+/#)-&,!6/4$%/$./3E)+%&%%8)'#H-!( &***);).:"( 7+)#1%:!$+*1F'133+/7&- )3#"#2'(*(+#:*+08#4%$84,/#D1'*3)5,<&,&%(,$5-),8-'#+10/$1$3'-10-(V917)@+2"25*"%%-"3//&)2&79''C)#")) 06#-<,)?(*$#-$,=-4"%/%. .2/5)(4)18+#.7.<59001.%.(1'2-2-2/+21+))=B+'2),)-#,-L6'#*18#?$3+4)&;3',$/77!&.!;B2(JT'F*1)$($ (7)""-.++!1$$+4F3(##*40,(.8*+&99?/+'%"'>(",:/4$;536&C?;&#'-/&%=4(C ) 20"15%?*)2*##$)#30(**!$,1,%-($6B&,+G,7,+#$0-)5)7-.J/036135+,!!585&$/%+8'$!-*&"'/:&%8-=)#3&"+29+##(0##(H,$#1""!/*1(*;?..0&:'.,(+&C/ ' 8';(1H[62)"#!4 (@""$6B6-!)&*0&'5-,9/5&'8B7&%"\/<0(%4'80#L()79-.@M*$-(,4&%<51&9&-&5)3'7'#&-%-$&:*(")!3. &+/%%+%+2&3,*0-K/C +2$!!2)+1)4#2$!5,,$(#*/(4&+./.1+*,&1,$?#-(&%))+ $%@!V$%+-!)85+)/:+"$ ;E#(1!%'&+665-1(+7$.+@'-8# ,*:""-P+#(-(") #-9&-%! : ;+(!84(6(/.(,*-B*-@5$5,-'&!&!/,-&$$E,/+,(*#.7+;.-*-5"&*32!!*.8,G"8( (,.0'&(%-,!-*+(%:CA"),!& ,)%* ,7!02'0#C-"2["2%%(-&7@+'(&#,&$&)(A1 B(',K3H%(!1;4,/1-,)9/-)-$+%_"c,#D&.0+5-"); (&<4 3'2)*",+,)0K'&%77%2$0--#&'+$23&'.-&+:(+7)&"8*0-7$53!!'('.*0)1%!,3$*+;#0!00:-+1.,.3*$32)= %+*"B4$1&,-&-,!)#3+A*",*-"898-#*!-+('-)*+(%+*#$%2K'(( ,1").!2%. #*%&!)%0 &/6&4(+*($Q!;0C&()+%)A))2B'-,$'=8$%%&+"`020$23I+N'2*6%&8(/$,+'%!.&01:0,''0/*%$4#''#*3:(2--9$,**.4">.!*+6,?2*6#$(!"(*!,,.0$B.'(68((!*%82-/,*!$7,.$-+$347-'(.5(!X/$'/1'-D2E 1$%9+0*&*+G8.4*)&'A")/43)"5!,":9,+7+7135'*&$*,,+%+++i##3&+Z611+)%(4"+(%1*/$'C&(.#'..*--),-C)0'5B*##0") 6,'*-/)0G3.!$)%)n.,("$,+&U0'"$.(%)*'* 2 / 1((114-&2&1--#-'--.,-0.++(9( * *4(-+BZ"&0<3#4.4*"2(. /G5*+++$3.K"+<481&"(5*%1"&D4$#130FE&9:!!=-M 0E/)G5'.," ,%1)!'B]+2&C);3+')**)&0+*'"")"",7.9O&,(6H/(!%:1.!)!%010 =1-.87/@4+$),%+62$)$%'!-!%-%/02&+ F%%$)03/)6'36K*B]0&3&0'=+.&,/%$G6;-*0,'F?0%K,+$G*5.C2*7#&%57.0&-2%10G,?5/,$1'4)"'*1+!)#-E"&())21$"0'20,10(),?/,0 3:(%,%))<9"");(%%EA30" "B6&,%3(/+)-+(E&.4./*#01)#*(.(920 ).&!-SD/+'%IB*#4$#8D&/*')+("XI'61)$'%%%,>%$12P62,36!/> S%3**#0$+'#2(1*'#"#)$ "7(75O%$$,(6#'$//-'2.X#')4!&003$]4+)2!YO'& $$$,&'')0$"2:(4*%%9&?630)B.4&,& ,9+('"7.15/.$)((('80)%4$131+.%21(A,#)")3)8/%1# 08#*=!1 %&2(%= 7)$HY$'("F1F-+*C('-$H22+7)%:P,"#IF&03.D!-$)6G0]3'6-3&Q)1"#7&0)3727 *".3:3*#2-7A9-�.%/5"T001?4((9*1*&9#. (C,@+5-"$*,1&&,*(:1*%$6"+a->8+!'9>/M(+.+%)4) &)%')>&+*.(%2!5(3')),.-+!,$, %!"1(2/,&//%'%)++%*)-/02+9*9)2&$81)>-+*'+60;%(0+(&&+Z0+4,'*29<+-;-"/='+128,0%$G"0-%')CJ>+&'-.$,= "@,4#!2/*'/I+)23.,+i!/"..'0.&*."*)*+(%,?(&(%303/&.((,2,),&"0(,;)*=#@40..0:$+*.#0&()7',.3%)5&")3'')3`)0&,#./!0-&*&/0062-*-3)#6/(SK"?',&- $=*4'3C'*".8--./$*7@#'#."*)/$84(=4+*#%1%8E4, 2 '%/=/9#9+ + .$!-=!&6#$ !/8G(1<&"/(',%( .%!>,-9))%##':)4D,&0*#N+37,+'12%)6(##)&"+ &&)<'0#*4(.&-#=6(E/*&(n-!8,<.,+ 7 -:4!I87$,(&'02/ $(3$,#( &#0?7#+ &2k""+,6(-4)##A11(+*8).6,$'(D&)*%7$!*:-W <8134>.*(1-+%7+6)E$"/3"\+%#&@Q$-&0!.?".!50,#%9'%)#7)."A."(().3!+10!\+ )G$w#-2&'&k!%(%#'(8,')#-- '4:($)%-,+-/(5'(("-3+)$'!(%"N4(,,'E$C-&*"%@)0*$21),-"7$. 4!((',<''9%-?3+/&%(6)3#.+#.(!*00--'%);19+"/'25,+5'! '(2#(&*5"*9*"?)-&8.6%*=$#" !:(-%&-$ 4$1!.03'4 /.'$$$-%/),,(+,*#*0)0(#/.&#)+ &'7-02%+#*6!*.)&+0"*9+,+1<')6$'$E:"#&&/$+ $?")!'14+!'$+!'*3((&, ."=5(%0<#-;!",0<$507**!6&#'9$% )>!*$&')-*0"()0.#-&*,,.)/@3)$E&L*% #' ""-(,'&7*3-'() 17)"!$,30;-5&'%!P$*-%I*%0;/2> *(" <,'-!! #!8*094$&61*)2+/!$)&$+2172%0,'!/ ,(&)##(#*;,*%&,50!(*47&'.%-%%;766*!*:2%/21*' 0#4"/&4)( 3+;$,(*$%".$)&#*6+4%!+91-!$(2++%-/(G(#+*$'*+1.-3.d *%*)94"+8"((&51%#(,,L%'$1)'7%@'$!#,)2F+,"+ 720N%) "("((I!*-/#;("/+. 2*&V.#J0(10,&-7:%7#*/*(/*/,"&XQ!)#'&G(";4%4-J)((++*&+@':/0.-,#6.#$(0!>'//)2(( 5#4,)'  & $#$&+#9!(*"+,9/+"9*$' %/ '2(3%('+(*QC$")1 &,/$=)4(+8+(00(/7*.,@M<((,) $+G*9.-0($/'1B.3-"6+$#0!)7,JD0L0+'3'+#- ..1-QH7#-),""0,#;1(>:';()#'+$1(053-$(*)!6.(;,.,&'2,+U'*)6(!7'$$#7%+,;)-<5,,&1%*&)'0"#F2'&:#+5-(--*+273-'<$=3&'7#$B+**8'&)4$,3-%07.% 2K;!1!0.() 46<1&:';4H<-!,4&G/(/&$!1'-3/,0%(,:2"077% .)6161*()-2"C..-./2M.9A'3)3/0)310'&1'(5+'%1+$/'8#-9:$/!6$)=-%;%:&0+22=(-'')i$&-5&'!64)4!#0,/")7$$%*,($$%2G*7..8%'.A.)&.&!,,#)$J1O&&7*>"9/,%#,$)&)-"'*,%1*.($0?D)+&0/<*')*(;+$%+$:-W'4*0*G+!0,-167((#!4/#4!162;$/(.%##S+<$'A-.!/*''1>$75#/&80$*#',1'.(,.#.&'-3.2@E2-/(,(!:)16:+* !1C.',/!'($B("2&'7)$'/J%(@0641$%,+'&A9#H+*4-"6s&$+'$2,.#&9&'2)!/ (3").,+2+)12.")#-"0- +* -)(K,."*%.(#20."/#"0"/"&0+,',00U*$%">%.0-/)-2'&#&,@%,02%,*+;+'*(1 ")%0(#%6!",++<*1#$+("#/+1 3%&.@*$%'('(.2&5#2*2'./!'_*3.''*)5& 5.)1"5#-),-&%&-+!3%").='.!7?-&%-)R1;&#*..!))$+%!1`)7-%(*1;#(,(8, $-.%&-"5"56%/ )3+,)0&2!7><+-).2&- @14:&"1)(2C3/()*,4(,)-#,-+-0).,61-4B9'-)).D%( .%,=,1',5/%)>'?-5.((")7"&)14.)#1*C28)$%335#9&&.+I&4&3,-$(#,#-R20,!2'!--#6-1":+$0!>"/(/./*)# *,+6+P15+8*(#$*+(-':-0G/26((-)0(6'7(+4/1>C,,++00'+.,+,21&5,*.'" :)97..213=3#+'3+*,.4'$+:'!-21G-1'0$)>)0&)+--"-81;3>,0&7 .##,5.3&(11:+:+&25)0#,$4+-$B0/)()(% 4&/-:(-0 $0!)&#, !'F3-F/-%+/*.)$!#'((2*1+.-"50&0.&'37&%3A$*"#2+*6 96*(*15%04() ?$264$(;!!&]+,02'R/-.&&*13(M''x)/" ,' 6,:77)K2,0!*!*""'7A&''!+-;-81%*/'$9,+&0")2M#/+0/CJC'4"I#1/T."7* B7!(+,%/14+U(#-#",7*2*$,'*:-A+-y%B%-:f,40'$%:#7(4>6+&*)!6/.@";&3&"3102%+))&60++$1,.'*9/%.;4*&,$#=FV"1',&["#(%24C&2=G+(4$'))A%$(0"%"/+(9CC!7 *?93%.+"< >3)%3103.#4+-&")#*!()'L&($B%'#%&.*8.+11-&*%)#'%#I+%-!+(;&$@+IZ%(_'**;(1)$051"62#$&/ \$0150:/+&%,,!)B!Kw-6' B)2&?10+81",!,"#')(#'-6+5,:0$*)1)"'[0G'-+#<%-$/-.7'7#*3!+();& 2,&)+,;&#)&$&+$.M1,9#+.#&+**4"<%-*# +$#,E((!X&-69#?*(1*:--B.-2(+T5'2"'.**09$+##40v9(()$4)*'06%"/,2 !*(>!$0%&"'&$=!%,-"4/ )#10*;!)$"0(//-7!!1#@.,<!.6!B>-" =$&.%2"2 #6''$$/:&&","593$?#3)-2-%9&jA+,$&M!,+'1=-#M)K*'*(+"&8.).0,9$/4%$"."y')!""<*.F,+:664'+(++("'"/1-&$'(H/'93+*)&U#.'+&$)<=!)u*9&0 ) $(.!(7500'9#>2** (,"8+:"+!+'* ..4'#-(LC,&#"(-+*5*,+3'',$/2&)'<* 7 34+F+"'''<6)&<-(+7M#,T-1%4"1..1,7 $&%%/ %33,(*&!,")$%7"+00 [%4*'''*/&+,)%#)*)"*O.. P0!2#+;)4&.&%=#,0'5))0&30 3%&$1+%9&'$M"+'',%"-*($].@5.5"'+:)+2.&)#*#$;(0&A1*"{q# B$%&/*''=+0-8'$7-#&0-%"-:,/ -."'-+)"/:/ $(7)57&*,'&!*).4)--?)#9H"%-)1%)&-%-)051>.)(-&/)-71##:%)*3!-97 -%"D".,$$)3<#%/',/+"/!5$&)6'04,!$0$,'" !)+0)-3)'1*,&/-,.5!H)7+/&".'=4*&#(.-E1/4G&1 )*,*%6&7&717/+E 35+*#/0>,&.+3.%(8)-''9.$<)$1A'%),!., 1(8.-"+9("5:$2,*.00:#314))&-."/21:%F&23(0++$$(3-7#/"#'%#",/(&$!),G2'2#+@@$#)&# !#-'65'*. +0> %)%81,8".+$47/"&.".,&6e185)$(6,()>&23 U_-+'//(,30&,9!)) 4m# 0#*.&+L#!)'&%*(/)1" -B-0/2+86&0-0?.35/%*%!06!*=!065/*,&5,68'1+/&&=;90'*(,4&#@),)$!5%)';&& ''EF"7""#&2%$4%-/%'#-.8 -0^A)c*1R(0("%+1+.8:*J'/2@:;_,&/C4'(+:, 8&&,1!#*2(:0'1+%5), %045&%T-,A('/#(-!0%'#7D8$@&/08+/!3@(/4)?-0(*%4;,,#3=C9"I0# 0.&<+(56)$*.-35%"#I2('A!0=H2%.<,*8* E+,((+2;.#>*)I%3&,;&+3((%$20-#"$#D6 ;*'+36(H,(!#'*6")!)!0%2)%!!=**.#V$6,32*7+'&3/!-2*11E&'$6/+"#'#&A.&5,r+$67 "%7*%#-)%*2""2c#7*) "(%/45$(+!)6"b81%#,*.".2#/$$$%48)T:($1/ J/%2>+282*-/#/*/<'$)//32#5(&*&Q %$ '"3% +,!"*-,3& N(4&!0(!37.%)x7["2+1^/+1%"%6!5Q"!!"/+1,&I'I+.*&>!$0-%&R'56<.!+./&))$!U#*&,9%+(*6'(*+@:$)+,,"(*)&,3I% +.'0")#=$)0."03''!>#'+ \!(00(;9*",' -+%#B5?1-/354"@#-*8*%%$+2-/(!''!"0,@&&-&4,&.7 "'L5("(0%7%'#I10)4*2-.2:$')*)'))6(0;6)'5($#3s/$>$"+",)+*( #+0.(%&+%0-'7.,')1'%9-J)."8< (&&*/%"x'&''&/!/')(:!5$.!'8&.1$"7 ,+( 1()**('&*&&5"64"..1&-&7.OJ"#T#!+9/8(5/"%+3136#0/*".>+/))A=) '8(-E-1S!1.%+*IL. 75"'(&.2&$19"6%)*;&'$))5))70'$.)$3!(0/;0&Y&8# +F00*8c&+)8*K+'=8K$>),,94%) P/%)4!+)(E1 ,.+\"*,)##!'+"'!(+')5'%'4$.3')V#2+!+). <+,'7+#/J%%$,%/)'+$##f "/(#/$/0 (27("4!3))-*#1.+;1%'.<-'*&)0+!!8$/!+!'B/++%6,&(!)((; +,5*-(-,*($!('80B3,Y#43%=)*&/($1J-&C$#"'#.,'/*'3"2E2+($+%&6-#)C8),C,.39$,(,77$3'2*!$))!(!/6+4"'8-/&#'"**"&,2%,0,,/>&/2&+-,(!#+"#,)7(G 1).$+*2?#5Q'"C+!&.$&-)`'-&-(&1#82"/#-3),"11%22%/$)1I"*H5"*4-9)0&-31"+& $&A).!,2&!71+'"<%'=6''915,..#86@'C #,(*/%*5*@1/*+14F ?(23*)^A?(4 !2 `&%*0".I/<>0#6*%(()%=)7-$53<(!*/'#(6#3;.9/)D$H.#37t6&(().-+()#0$%'.P/+-%!4,16 F2$$30%))0'o,'0#3'1.'([ /*q0)31/35B*&30/5/3"##&#)6,.#.&--P24#.+&5/>#>+/)-1%-%,+13-2&!y((7&*"$ -.01q(#,0%((53-!*%%+-0"C,)9-,5+#-"5#ID(XH-(,-%$M6*%+'&0-#/;1/$9,"& %+(,!*$("$1l?<+)9 (.0<")&%(.(++=58G#&EX)?"X((3()_,m%N4*208(!'*, #5*&,(%(%0!I/' 3&#-!L0+,!!-,(2$1*1U#&!_E0 * 2X#0(D/7%'%(&'%-*#'-& (9$+#-,. !",#&$.$#$) !).#'47%)X&'#/%,,-':-465#%'/$k-#*!5*42+,;;,0/+!)2( 6+*(*?,!0W*%1:)&#?#,&#.$07&(,), .$"-&S3)*',.!#4+" 6+2,%0; +20)1:4M1(*-'$$=&"&-,F,[2(%# #/&&$$#$3$#&0E'(0+!+F+ 4n)0(-,&)F3!3;& 8%0*%*,$%(:1(.#h-$3/.3%,A&<0&)+"#(_S/95R9B#&78+$&5J!+,p*1' ,@1,&-#2)1%"/91!,F926!$.""5&40,/',cB *!!>7.>%-;*!02)c"'3)-.2D0+3#9)'589.4\1%@4#*$=**/'*,(% ! .>&%;!(:$F10&-2-?(#++ .$!2D",--+L#(->8#33'3"$!-FC_,1"$$&)-$)+%)("8(#-9(&+&'+F%(F2-%H-#941)(0;0(#!+*L".*""P:! *).*0+0!+/- P13#4).9+&#*/9&#-%$()*+*,,&& *.0.?K2$*30#7&2+(.(D@2V,*!+9+'<+,cC#'%+(%.;1&%--++3(6(&&/%"!..//,,*')$+2#!'%D-2'J"11#'03$7+0$-+7.(-3:F0.&!*4&+ 8)%(*84%.)0>14-',&0(?-2/a7!$2/,$.-"+.3+&5,A*%. 'v; 1*y!%/"'+#;&-,**7/%*.J925!&2;*'..4#'%"8+9#-&#)!%,6%'/b$.1*3;6*.'(..1=F-#-.*A%=I---& "*&,* 22#&-'(>0.++5&"4'"2,7,% / 01 -+,,0)+$.):-)),%#*! ))+,I-/%10*-+(*"/@7&685)!#/'$'").)80%786:4_-:((.%:& 0.)''3)6"(%.;2/$!(%3'-"1B.)3/@*4&$-<&!-!?(I>9+.239$)%1+!,+48 '%*'(-+$&421#(4-E 08$53#7" &,*)'&6(?>(0&)-h,)/$$#@E"(:)&,!-. &-(%((* 'D&1(9/#. &*"113+"$,(7),>+$-++(;&m2"-:[$<"**(. <33$-3"04:2.+-'**(.$)7)71/6,8%#0"B;#9+6+)-/8:()8"!$)$.7A*!F1,(%4P3!(-!#*0%),)*1"%8$2''I(#70'$02&*D+.5 T&F)*1;)48,K#''#=.(912*($-!6),!2+/'/!$,0/(##8!`49(&12K/!&'@/B3"(*)%-%*&# T0;9(#.7*B#/LG%&I#/!)6# .N,'/*##.!(1#@9/9?' )A$#9&:(2+.#?,!,'.8&%4!"F' "+!&6*'&/!:(*#+*&)&"@1$)&3! 3)'."- 4%J-0*%1 7%',%0)(-,!'$=!%C0(8. -&0$)4-:$*.+# )0*02$+(1+/&*-+*)2&(! )%+$! 3(47&!0(%%3.>DT*,2!+-+%**-.!,2;--'*=#%!/(!)&,(6%#6<$%-'-N+$'&+('$((6( #2/("2)):%#C$$&!/&''8.5+'.3,2#/%#*))1.)-.,33%3211/*,"&%&#,((184+9%+%,(U0, %R2/)1'()',4 (%$/*'!2,$*-./&)!:&0/:-8$%9&-(<((:&1*#$0"8# 4*/',3'+9e1#(#++-(; ?(!' *8&!',)242)&8.-2$"7",'.3.)),&2%$&&%4 -*2!=,)2*,'U+',*S-/27#*.4&01%26/5+;/2(3)%0C3,().0/%*,/1*&5#%-)+5(;/-"),'1-#264#%,**.&+%4)'$.2(:%--"+':$#&$+0+=8#$(*.!/$/'*7%#/7'/4)3($),%2*2%*, )-443%-0,0 #9/1'(+2&%24)/&%3*($-**-084./.2).042*9+*8224(-!)#)#! )$.'25(+H$'*AZ,2 //P.!*',&#+8$#"%@+/( 2,$%,B;#.%**'0,4$2,&"-#);.&!")(""/$+-'&(:0'10,+%$ &/<+<('; )U *%*#),#J-+!5*1F%.-0+$-21C#EB''"/2)+(*',*)-5.!(4,%!7&*!%$85/$,4*);,0='/3.%A&(21,(.(G#)-)8+&%-(#9'4$('$4,*@'%*<@,%)+2#Q';BD//*& 6(5 5@,.$0A6)":--(*!+!F4!3.'=:1)5+!-#0+0*%)+1 "*!%7#!0N)434"+#4!,# 5A6$"++5+3%.F$)!3,O.2,%&%4-J&(7'*0&!,'"300"$4:.*C)(#@0(*3S*.,!=7'D["*- ,)&,5R83)()0(/&<',*1/)!,3( !"'1'&%866\-2,C01(G-''-S*S9.*I4 :,&(" 9.%!*-')6$1E+;!.*,%'D6'00,,70-2!&'0F&&",'9)3)?"(/"-4#+#1D2-+(+ &3$/=+M3-$!7-1 0,O'(6-68,2*-&L4%,375'6*$,/=/%)'8%+/#$)'05.-10U@5.$.>855.D4$-)'*/7%25+10),*.&("+88&@3,,(+%$(3%.(@51K0(*(-4$=+(3('2?=33-')#HI*C&O"63%.D"C2'%%(N),$/.&",(#,!(, 27&5/,,*)",&&+0;"%1e$-1+#$;/?%59!-&.'")'/.<"+( !*'&$"*0',#P)&0=2"*("#D$%*&/###%-15(*+"(+-.20<(63)' 91=(!),%.(+ '&%0&!("/''-,-,(.#59;8"1*=($.#"'!!1/(2*9#:*'7))%7+"3$>0$")&(2)"!J;$"&''3!.!#H/&1$()-/*)\$%R'02%2*-/,#,&4#%.%'4%2'!4+%*%*B&1FP3%&<86E*2*&$12$W.,*+-/)3;-"(01&+6#0$*-&&&('7"O0L65'#$"#7%&4$2%-)'B4>9'. 0-Y "7+%+%=/1/$#-6+,0&"5)1:K/!3&A!5N+*/.&'&!,6*"-6''K, :u*[## *-)5(%2-D:$.''*#<8.#3%:%5-<#W!'K&&1-)#(.#$-",!*U$%$*6:!)$#,B?2-%/:*1/54(%A@%*0+,!,)1>!27%/.'*+)4'(94%J4&%E"'&!)),'Z$/* !&&(232C2-&%'*,513.,/"8>)')s!,/26=-,00+K0=*% -#S#2 )0*$/-)17&#"%(,7%.)3.(`34,<*3./2%0)"055&$%%(0$##)%)1)01&28..,4*.4'!1:$/$#,%$4)$'E(/57"%.++.&5)*)A -$$**9+,=;6/'3"+%2<2%/B&%#4%5*4+,',7("1A(95.3=()-*)%0/.0(31.%1TE15*(.$1&1&7(/-,+70&**934#&'"(%&$"5&1)+)32/,&!DD(3.,4&+.&')6+1a$E**1#(.1%.*((.#)9.:1."%+(&'&')#2$2+.,1:+0-4484/)/)'/"!!40*/,@6.E)#-A>+0"!"01H*%*'"A4'N,(*&(+33&."))-4/,%%+16?03#<221..8"'"!1F30-0#.#)a/g- 4&,/'.1"(.$/ ';0'53/%(1,".4"(:)%"."%"%34$2!'()!!&. "%'1364$#+(=^-.?@)4#1&)+&.+',5 '!(/$$#7 %/0*)6<))+ -)+)?$(j&!%**!#=n9#((9@#00$9=:V(A"$735%7#7*%1-.( - 3#'%;(1%+P&,86&,%+:)'/@&.4).)/.&80 $*"1.\%8')(#'#40,*(!.%<*%*Q(+*#!A+ !10--#+ $#(7/54$-+06&'!1'0/%6$027"2&('1'( +:+:3'""%$.;!(2%*) ).& ",#&+)0%" &,&6*5(,#'-0(,< &**423+&,&.$/**+*%&,:"49'3-*)#,3&5%/'&%'9,0-)0',"(+,-'5,'(%(+40'6Z5)*)*",C&;*1,&344!).#)#&-**6'#2/04 "+. +8&'(*2=3'$3-($*/'-*3((8(*);&F+$""1()+//86!65))28,9!(1,9,$,-5&%);&&:#2".6$.&/)*/'&*!/F6++!4%,'1(V(*2,&,.(%$2.%,2&I'++'./&%&)0"#-)((-'.@* 84$#/#5"'#-.(($*6)2&,($,8/7, -$**)%)'.2"+)+%#*%)(2)0(20+A&:3$&4'"4,"&!%,'6/4+)+*)-7&66&&!/3?+>#%'8(8("*81132!0&'$$'/"":,)(#&*5/H(&/:"1G,>)#.;&?9#8,6(3;,*/3%5)5%,+/,C?, "+3t)$*L%."!%#P"$)+.*(:-*7*=3>2&7>/'*$>29/4%* $2C"2B$ )%2.85&3**,.RO"9&4>7=):.-$"#.)">-*-9*AW3,('%1'8'O#'&!Z2*))%1/.$.".,$-97/(')+&$5(1$*)1 .3&&!,9522*;(!'897@?:)) 3"6..13+'"B&)-*$6.v'B)2'$-#%+#:!A+Z/&*(3#"*]0#,4*)/2$5+>$#5,%C/3'/'5$-1+ )&-sO1&39#,&EA 8/ 4*/-.1-01!-(+&a80/-L7%',31#X)(,&)&-)1%:%1.(3/:5,7!#(0!%"1/&)&7))!&* $4#43+6" +,3%3&&3+$(3.*&7((22!/0.'0!$(#"h!*+31*)""$:&+*!(&$%6)10e!#()%-<$(%"*3((!.:&*/(3%"#,)"(+ #1*6,$,),!)-#(4)( #2+3,"-,4!g&42*01'+1**6,"+ -*[((%FD%#.1+3-!($)*-- +.%1-6'*$/23?)((.-!2!.D),'(-."-),,(+0('')$&&%'-/!(+:!#3 5*. !!14).-)'%",,21. $4 '*&%'%'*(=:'++ *##9-%)0/-%,*#'(%"&)#$'2-#B!-,,01 ()#%/'-+1.$72%F$(/ 1(7+")0!9 +6,(5'n=#-&+1%=$6)9("0&!T>.'*!,1"#'+%'!..*+"*/a1&!*9*+#"1*0+0"(7*6:[#%/8-(:8*:%$*5 = 0;#.%,R"%%#R?#5##)5+A%%*%+23"-,&&"$()32&&."( 02-N8&&1(.?$&#?$-$/-3#/+,>*)$,0#,#+%/'@'.#!18+-)6$+ ,* 72'*/+!)8(0,>$,%".:-F#)4. 08%)&@"&#')!--4(%."'%%#3#4)"++2<"%-7(*(3%1"I*,/#))%! ./?I+.3%9%.()%V*"$1/*+*+-)+)4#"27 8K+.&)&&*$.*1*. 0)028,&)*))0;.)++,$!*0B*- .)*&0( "$''-$8N@%#%&!A$%(B4+)*4'#1($*+,"!)$5"/'*&%3C6$2++E*55+-#8)+())-+'-/F=,/6,'%)4$1%:?<&*+&+1#$+'444S ?.-6+(!*/-.$23<3 3*"88(*#!%+,.%#-%'-/(,%**,>#6)+#%(%&((40&Q,.$**&0&*5-()(#("/63%.("%%%./"23;&()/%(>"2!,#',T&".3 :.&)&2"/*D,'*5S$%$%+.=!%(/'&&#X$.$4,+, , &/3.&+'C#)J0%(1)*\'"0-=:+,$/+(#((8-X.- /2!*/A!)/*&-*.)9%$"%* !).#9(%?%&/%F&&.,%**!3+2=$'2'02)=8%<,'"!/0-A/A"-;'87$'.4!%'+$-DQ$+,"%(-/!.)<0M2-3%1!#4(' (N'(&-/[F(1@$&(.5&.)&!#1)2.8)2*2'>$ "-i)#0*)*'164S&.!(5(,/'F58,#,&'/8-4|+*&*"$)-99<3./,,)"`#:)&83.*#$&($1=4'#(' &;+12)3@7+-0a&+M-,.=$6-@Q0@2("/)7#2!/84$@$%($:-%),";*,0=-+1#%= 4-,'<(((02#!-""+(,I<47#*"+!4!!+&$14=""A(+&+&-$#0!%('%('"7*"*%*1/!(,*/+!.;D-,*6(%7 '$)*@''-&&$'.%0$+(,%0#.'*#(%);,*,1'&)&&",*)"^< -"?A'#,,!14)&"/(#$,66($+&*'%& -*4,/(,)53 /%+$)#50(0(5").$(1,43739/&''*1))$*&+#%;0/,3,*n9.$.*1.%/8/")*!!%+),=(,M).7&+9$+,=.(*(-&4(0& 2-#$8.( 39/."*%5#+%''6'$,$)%&'.-*$_,*&,4(,'2;?%)* ((+*"!3'$%&'&*.$1'%)M0 "6.2*(%+.,&6/&3$#30 *b&!S$''-/6-<92)(aE'5=",*3!2'',,,&3,,<%'%*(.!+-X-$>*.7/"*+%/-320!.0-,5*)(,#-.%*0"'#)&ET6*.40)$*%.,41'$)!+)#5,"( .2\)1&6);%.9)/63&#C#&)2.#;2 0D)66I(#999%7%@"B,9("& *AM@'2/'L"#)6)$$)%L3$!.''.,//-299)4 >,59 7,$.41W*80$2!2.:*5J'$-2#*@*-G,)&=H+0,(5-##)!"A6.;4;/2*40.(<% $8#&*AD)!0U(;4%)'/(-D/#&#! ).",&C/%"+7':$0&)&&8;0-!45&))7 $'.%(D(%%&7$/)h-"*6?&,MC\,!,+1('.H-#&%'; '2"*'*+3%&5&8?",(%*:2'@+['.-$/3)372f&%*#@3(??-%*&5(t''2)U,5(Q.2'1 *+*!&%>*3B%1"%3(!,$'/"B*$+0(!):!* )*&+!'!,9*6'E0=')?($'(+0r) 500 (."/-',$35)!-);-(/&*%4&%21")4($!7++X!"8--'0%/1 /&&,$* =*KC$,7(5-5%8+/*'*,)!)/(+#/-<'3#&-(&&!&%.5+2$?,''$)2'-1<,/2+&*0)";#,'"#&.&)'+(0%'t*&)%?,5")A-()"4,:%0'!(1!36.(.4))*60 8)$>+,//%$3):2*0+*5 ',B-+<3+:!0')(-%$*+/@$+'+/!$.&(4%2#0'((,"*:GB)"'@$ 0-+...>&,C&0" # )2-/),4*&1$-'(.0)&<%*,&6.L=&0:(*,#)%*:(038%0((;t-,!2%*-+(1+60 *9(0w*%-(&&*,$&92. 9+;B-/(:.!3(4/&'2+F%#"&&$'+(.4*%/)(?("22*C" , (*+1)F%(+1A)*,#1n. /&15"//!*9'.A#%#+!.*&?31(&J'3/5-6.?(@&12%'/'<)##*&0:&%'#(0K/)'7+$-0$3!*;+$ +;(J'%!%6.85*$O$% ?8.>!-+&;/U4G(&!2'%W51. **4+/%7?#+'2H#.!74&#&4(Ft5+&,U%[< 47&E1. )/.2+".7>*"0#2+$A<3@00'$&1+4, <<("+4&@= $ 5?&6#J$,6%dA5:&($0)!E((/1B$/:%&9->},7.1%%,;% );)8%,)02,k//8,0E%#-&)$G*,# /7,C."' 63.-*&-- )8,;-M (-,#-\,"`3.'3w#1%,;F*B93&=97',;>%/m#*/+*1#/&;'0'**/"!-"#&")3;,&8,''$,.=5&,$()3- )+*9),#$'N,.;&1,*'/'D.1*"+3%(3!#=.0138'$" /2#),7'+)(+2(*1$$6#*7%$0+)&'8&/936 +!'"#$T/$;?").40%1-1$()*:U'+*- 2$1#&)+#A 6".!0!'$'(3k#C)($1'08J$/2,+*0G$*"$!% 0_'.%:*1%$&0$-$ +$/+!'7-"(3(;,W#)41**1)%''*+"2'1*G74DG $;(."+.>'%$ *"#+%3#Q- I!""#*>*!''%9&/$.76'(06.3)%/*/'3+1&+-)516&3J /) .$4*+15&0#!%-#6''(+#,1/+))5A)'2"#7$*G>#!14J%!"',%$-+&+($#-/"'&&#($),463/!'(1+")'@1.*0$$k-2$=,Y!7);+-4'',%1%30')3$50'G.)!' +'/"*,035%'.),,%3w*.04<''(0.( '/,&4;.',#.7(2/A4/$5,0*:@1&%2#$,+#) #(&;%/0/!'()'/%( *$,#+%,&*K((*+)"(/+!(;'"G#-J+',+'2$9)*-032-1"'&&*-$3/);'#)U .2.%#7 "<&'.-!!:+!I&%3,4,))6 %+%*#9-.++/',8*+4+$7'.02+3-1*$#,--*!7f'(#!.,%))+++J0": 6^\')*((#;&+(%]**%)!*4!01C'("$E%%(+2&*$* L ',)02&(.!3&A$/<5*=26'$()*$,$(--3,2*5(7+$0$,$*.008*.-*232*&%&#?041,!"&.F, Q#3-&)1$/-+ B*0$[S%?34"%-&+$3<,).8#8/9&)!%/"$#$802314%24E3+!)*$")!#;2%*('8$$/-0f#0$)l0(A,.~/#)%'2&.#"-'"<)'-+'+"5$2,'>.)3%%28 ',(;.F*.7V@%(0.#,'*$,"0'!@&-&'#*'):1$0%&-=: 65)&9)1)>"((f!920:8(!.&0&218#-*+$#+,"+#@!#5/,#$Q%r!#%2)02'.$,$"*)+&(4* $7 Y6$6/(#!'$(/'*6&&7-""(3%!&3+%E#!,*1!" $=9) #2,':7!3"- )!.*N -!6*4G20.c/*$)4AZ4%>&#o41+(.1*+$#2.1+71(%*&%% 4(#Y!!'& #2+'+'(3$%6&90$(?!',?'3-./5)$02-*E((.!,-575:0 #,14. $L(: !!,-,,%65!$)('&)'77')$$-071%&0:(,&'',&()#X&@":B0D#.,4/$7*),E2-,!($&(-%;,')0!C-$3(,1'':)"&&-%4@ 035@\D#7- 5''6Q19+/3>!"(! ,.40-#P%2 W7#%BB,. L./244B'%$#2&+-#7B)&.*%"#*3.!+)()#'0H#&%+%1-":0 "1+E'*4'$*)/4(%&-(+63'*2'-<*%+,)%_10#&.+5-&U%$*#4;35(5%77%7,G2+4! #/%*A5%,$%:S.)*39F"-8'(/<-4&,6*&)1+)&"S$-(%0,9'!/*(8""&''('%, ,*,&)6%7=!#&(G%#%>;'K!!#$/%(&'(.#)8', !1D(,%#,*;- &:))4;'%4&!*&$E+6(;$(.#2,%%$%/"+fD/*#/#3"+6L21(4/K$"%2(;*&!:H&07%*#%)*V*)$%(*8$+0E(K'1(%4/2+.70".,11&)% *(41"*-4,1,>2=$ *)4.# '2"&+"7!)%'+%+&"F$G$00@-,+*)&'+4193!''! y#O#!*'$.+7("%*++$%2(! @')15$ %5**,*#"'%&L8#$.&(<&/M#%$&7*3/)2%2/.F*7=)7'/0"D,)+$/(*=*0= )1#1&-%((3%!,)82-##),3'4+$'*)1-+-D5%B/&)!!"$*-2: "#')&)@%*48?(+!&Z(!',!,;N3+*$1f$1 &%#.)?#'!&)"&$)429-0L9%$ +F/%660 @%9&+-/ '+,4!&16&(/#(-!)'.&&%->!3#(/&2#)/&".&$-7<9+1&-3-D(*)$#&*(.845E.3=*!%#*)&76*)&$((*/',9.F 1%4,11./%$!/:%3.0&7*$8 #H(!)+)17)$' *42/3,'!.,00P#E+#+&&!2 4#+!&- *"/&5')##+.41$&*#6'-#7#9/.1%+55",!,DI!"*$*,("%L,2*4-f7-")%#9+??&,,+*(&!C)&.2F-!(&&>*45<"20%0#13-67#e *-% K&.))#%S559R*H!''!(,;7#1.,3F6,/%&1&%@+K#6%5%%*,&"D0)-0$'5&,!, !&@!#&$'3-,*.)#8<1/*$#, +1*4!(1/93.32" ?="c)8,:S+A%'--$)$1-'2G..70+,+75,F$)0&N&2$@)$$$.&%*.%')=2+=&/&(',#.')a*'2""* 2$(<(&<%"+$ ."'(!."2I$+'/,,!)#(.8>05()24!,7)($"#-..:B'4%%,3#,,(/.!Q%& *%$%6#"'-'4&/?-F,%1 ).;-,,'%)'"'$*$','%26*;0*,,&%%886+3$*(6(g),$.J6$?--#*# /D'(%(+1D,333243+")0$!D,)-D/)0*,186<0&<("*+47:%$:2'%@$&)021(&,('+.*(D34+!%~1 .&,%100-*'/4&19+)2#+4.+1/ 13.+!"&#.(/3$.+(/)!?F '=)5H'&!'<$. 0%#'+E: *),2%6,'0*&-*:3/)'/5$F'-<!!+,'$,3!.+*-.#$/>,"'%9)&&!$&7<4"$,9.&,,%**7135,#!6 '/-&$*&G-&6-.&+)%,,18"-$-*3%.#)2%",*!&$-18$,<1.)_ +4D"08)$A,G(3-/2>##)!,+4(",#'*'#.(-7%3'!1.$"7/$+*566 :!?,%+"( *#8%) '/6 7*#-!90/+;:'*E; $3*;(()C-'1$"'*5()%2$-2%01.0=.%.7&0$&%$/"#+/48%-%,!0<$*)<.% @@2'&-)%(',.1+3 '$-5"?>*,:': 0(+1,00.&('$305#3(1:*455)3'#*%/?-04&11+&%"1)!-'*+&,('-*=0"*!/$./+1*+: .9.@10+-7&"F%@+/4 )9/$$(!#" .%HS,,''15,+;,0,*",<$'6;5""1.#>D@I#/$'7@.B&1."6*<,(//-.%0!#&4" # (%!05.+81#)""" .'  $'&"#" # "$"!"#!  $'"#!!#%%! !#'+$%% %!'#( $"%" 2$ !,$ $$% %))% * ( #'% , -%$ ' %+ -(),#'$'' !&/"% #'$%)!!$#-%! ( !! "-% ")   &%' -S.(DJ0+2/"11/*7&.3B 5K6$=.17#,85+00)3+*-&($4!$ #0/([2"/6S"$=#%/#6)5&-6%%)#&/96%B,21"(%$'*$#81$8 )1,&"!1/=~2'!1)-0/3$$9+),#:9( '&0 .,AAC:613,%4':(0 <%*93.1,/J)+/*882 6'+7<3I=04'2+3#-##*+;0F0& !.).B/,+"8&7%$O*6$$40%%$),3$'1)B*10'$D'M*6!&$&KGO>*2!/#1&"*,1-/&3/%:#)-)+'& -$,&%3)/$064+&)2%Lk'2/)+07$-2()"/('--,3E40+!*$*.0"454%(<*) 2"829#!-Z+*1(,$3'494*)A3+;)0&' &(5(:/9"G"/L3-E;* #(&+*)!-98%,S?)*+#(;#"011*(:,*9#++..,+1%"!)%'&45,! 5.&2D7#!%(+/,(&.!1.)O &9$,,&+A+50&"-0&.%82t-(*!$*'< *#6'3-):9%6##/: '#))C-#*)1 #1'5.$9"-$*$)6g-&F#!+&_'+:[,4.4!P/,)&4)2!&',5)::38;U:').;H+-) ./&.4*;)'--*'6.+"-65%'('%!--."*64!/$!B#6+&2*%-9,=2([0.T%%D 47"+98#KE?$5.5* !/)%.F( &"$E2(T&82SZ"$7*4%(.#*+&5*)&33#$D.&=#)'/'@$2'#1%+2K9+*1&0&8 2/"++)0&%#++,-7'!.X*#(0#*04+.10"(/ +.&@)"'!# "36'205A=""&,/,>#2' 4 /%.(4*,"3%2&.($8&)$..#!3!-2<4(9-)'*#,*@+03(3%#+ %$ #*)0&!#8:.*09%+2,#-%,($+*#8'!+ !"#'!+.30i#-!3%* &%.#:%U!87%7,''/!8+)'2)!8%7+ 1)6+/+)&66.%-/&,.001),-)02&6+1) %G5!4))#0#25 0*O-"+$(/$*.43<$.,/0"'#)$%+$C&1[, 2*2;G *')!+(+$*",%,*(&!.&((D+%$-+*!)1\/52"00-$0/&.298##/'.)1;($(+0-3)&A*.-3-&$&'1+((-2(0)/%6,&&.)5%1-* %%'#1-4+%0'583;&&'&(+!:!*0)+("(6122!%$)17.D>(4+*6#+0+)$,.45 84.&+43"N&(4/))*(*"#28$I'!4)**($,1#-0.0%+.'.,+1(-,+83&$13)(/-,%72!#1&)/17**B$+0.*5! *%)';).0'.!*1,)&2E).1*($&,6,*4-$$/$* - '$*+8879)6$#)/,(%66/2.'##-'/,*.3'80+ %/K!0$#-6/'+$1.+-49-'#'9:*<2%",,(21$9'')#(*-/7'+.%4;+'$2,06./%$3-)24.'H$%21*/K2%C&E"%%3D5 $H*(E-,56/* %/)"$.#*'')525-$.-)1+,C+ #7*(?*+)#/' %2.+%)11@F&,&##A""2/(<-##-$(,)0(6*$/).7'2(2M2.*.Z'0*,#%)5+96 ]9N(%$5'\S"!$$/))(EL+(.8% , 9'**(&*"+)+'F%9=*-+,)@)'(#%$A$43(''&I.7,). !'*302~&%%3$!#.',#'6+'(<8)+#$*30)0*>&1* .&-$.2&=#%))7H#"!7b+4/#2&*#J4:86?/0(-*0A01)+%"23+N7+)3)%(@((k-4;41#!%$$650,$@#"&((5'. G )%+<)*5!&+.<,+-*'9@(;(/#-"'&&$,(+'I,'/*"5&)2#3'#9#2,#!%(=!9@)'0%*2,".)+/,)+%),7##*14.,+$"#$'-3(:!*))/6:31&"1 (1J+%0-<,* 6'$,.)7%1+',%A$*H)< 17'>;&!40#4,2$(@&% /!#/#$#%$'.%( >3%57,-))C91(<.$51+.$("&4*0*'/2!0$/!%%'%/,&*3%43"27 ")!1: /-(**%3*%E/++!b,$!'3)*&+&+/''8$#+,6!$'35+,,(*#)-12>%)$%!/#'"%&.4(@'&&-)=,,*(++-$'$#,(+15#@%"0$,))-3#&(./*'*&.**6#=7)$/!I'+-!"1"6554&*()&@%#&)+$*/(&;*B$ >82(642!(!,,#9:9,1/'#*(&"P.#)!#)<&#*4#,(*71*H$,-2#+9) =9*,17+E)E" .)#9_2!(&'1'2)@*0L&/*-"!"4$:&+3%-&',G" )(",@76/,/*)- /*0+!&"3&?@!!2%",!"!2'%( &(#;+"*0#*0!''1#6(B'+ &)(%--( H3"-)))6;+$!-(.D\(1&)$F,/)%:, -12K)/-5!$.#6:#'5#&*1("9 4'#'B"'9!5-6/0/39$###(&%/#)#:++%!'&28%#;"3)**6%%@A3"$&%#'*)!).3--0*,._8+H*.& EC'"%F.2;&!!2()n#/0. B')+'(%AG.>VB l%)+%A-;Z$/581)3g &-*430#::J##2"#$ )+72&3(+,'&'&#&20!!3@%O (0!,&;6*3&"".),<4$.(!:&")()1J$L/&K%.,))(5+1G$/#:0@9$\'4',*6/%.9CV"$(.'E!(#L:0760%*-5.(&%**&(;.4)53- 3,"9X.")+!( 2[g 7!;( #6#d+01&2#+!+#K-4;106"-(-50D3r,.E/ $)#5 90&'d*+73@)9-8/*.!#)(+&)!'.&%=% =!(+/)7"2 ,7;.":*51 7''(.*4#M0B*"6"(@-+/)0 ')$1/3)@:4.3&09/9$8*:**3?+;+#*%#'-+<"9)4 *#<(8-+0"01**1-'. N/,@7%7>#5#*C)(C/* &%-/!&.0"H2$3D)$J&&'-.4@YD%",@&"'/)+."9(V>'N$0(6 =)< 7&8'((V("5'8$#,Z,@!,?,+;")##G!(")(7$9,9(.*;&0(/$2'5"#4' +%$,$+/):11(7%0;?&'$).E),S+-'%+L)093;9#612'02+$!,#,*. *'3059="-87),57A)#>0$(%$'B6&5$A;,=!&E/50Gh-*? (''%,<&>*&3%";%#&''26S02-1,+0**"+9vR%(538 #:P%-<802++b+(..#&'A(&*F77 92A5*2,"&3%"=>-&5":* 7#"#*H-"%7,!./&6%'.6?'5?)0 )&6,!#"9=$ 71*3(')"I$)) %&%$.$$)%,'*(.%8(1):)#+50-7(1C(8-.+;*)../+ ,+%5**VCL'#)XO)/$ -%4K'.&$ )0#-(6/(E*1&1-%-%&12-$D3@8K8(';*9!-$-=12O/%9R&&,&&*'10""&*%N"&+"#)(!'"/ )..$4D(1#'3' -="3*'q,+(%>07'!*%%&58-`,83+%("-"1"9%H">7++/I. -Q,0!#==)3-$1 !.+'#/>8%60*&*' -R6!*"-0(23+5!%3.,$(21!"*,/+&,'.@(+(+,-#.*8?%,+&$&-(+&& $()$%&!'),*6$-%*)23):$$'%$'/0/0$&#'3*9+2"2,20-11;!&/4/&&8(#=,"0),b%+ 9>.);/'%*$E*'.,2'9'5"()$<)7?*71*--.*1&-.%+*$4=,#-4!+*((11j.%()(#.)=.0 1F3?'1)%$/4&'%,,''*5*(##$60 !),.-"".''-.$E+0/(1)2*1+1&'9'0"'5.&*97'+ ,.%)'#0-(%?0'&(64$$,'5)-#& **%)%$)*')$,&) *2*),5)",9 &(A$+%09%$%%),$(';,5%*,?'2$"#)*$#03*+*(4&%)&.19/+3+/'%$-75%.974 #n$-%#50,6)0D0,127#$*4."A%A#(9)l0,"#52*$!)E */%>+)0 +)6#,&%!-$+(2(#$"#*!!"P:)*"+(1*$ +'.-9#79.)'$&-!-*"$+9%& 8(192;%-%1++&M ='*904 )3&!4*5d<('"9,.:#&3$4'&0%1#">"&2*L-$C!13&;0'6"%0/+&+,#-D8"!$!*4//+9 '6/H04-'1/)(!#2,$*6+'-&(*4.%"3&((/2$"&+&2-!'/'*9 *,*%'%(P) -%3D(*())()73:9/2,:5(4-3+.+0%,.0%&'&F*)./+7'0(3**01!C),+/.+'#!$D03$1I+,..50(*6.3;%/-$6.+(.3+!.-=#02+9-,(0&*&2%."/1*)1D*,2*1*1(/!)0B5+1#*1+(')/.'#'(D'#)*<23>./24*)2*=(,.<4*,'+$@(*'7 "15-(((/(:'/"$&4)5)126-).(6'1/()6&8-+&)")/&$+*5'#$#19(&,07&+G/,-/()(+)3(11('"!%()(4*'/-(#/('F$+;0*.D" 559--.)#)3**+-42+&(). %4!5/&+7(/*'( +7:5*'$+3 -#07,/,"=9%)),<*4+/'*&0&(!%)06,+8&,%,*-$.(!/*'-(*F5.&-*#"15)$41 #/<)*+'#*"576&'/,20!):,/#-1&3&#&+(&8#,-)&/&)8*1'*"A)"'-&.);36'*,0".!0"+%-+,36))(:.1$)-4+)&9B=,)$-2%&.9),<2.-**#+1-*3.,+(/7*)!).*%W$);.4*1" 1)*1+.&"-6()'<$-,%&@.5&&.'$-+,&('61)]&6#/% !-!,A1,$5N7 23*,*05>.8"22Y;2*6'#%!%+,'"1!7,(("4=4<+)+*#($%9*4G 0,454((45$O*#2O*/&2)""#%($3/2P!B0B)4,*%6'&.$,)'(0C)),&=.F-+'G[#:*( $!+ ?),!J"#%C+$03(/,0(#21A*5'3%-2+:(2O, @20!-&"+=L0)'*%%(;0)/%-52"$'/*80E(<,.+A5-<1'55E3*98+-'8+.6#9/%,/+%Z %,')31J2+,$)<1()$'! %0/7k&)+19*.E(-&,(/X/"*$5()2*5C*=2$.#*F1-$#<#'0* *"<)4/))2,/.$2,6*)(&(:&%-);*)40."#;%(=9)(%'.$+7$+1%R(#**%.^!$.2740.% 060%(38><&%#))5A5("++G&#-=$-+&''(-)/0,5'6#-0+2O%/)($1)'0:&>.1S5&'349(%*+"*"+%45(6&%$,($+(%.&:3%-+'"/"(#/4"0)/13/7"$/7/&#&- "4)%,.016,3&688&'*$,<1-(0!)'6'"-,$-././*.)&7.1-a 0!1>9:/+&#!&./&N048)'1$$=(-)07+'!)&,,(,!$#A5*67T`71<'0+''H=**;#&)-*5B68'61J7"/'&"10#)"&$7&&$#*M..*%$'G.+A= -%1!+9-*(?(1)'K""U03,)#$.6-:*4$&02 (u9U-0;-#/3%0/13*,D"/;5,)<$)?'?%5$/80##+9)76$$!+0 *_*')%.*(&05)0- '7("&"/l,<)!.'/&<05/&,40 5++)'%--%//'.>;%(&#)-( 7!++1: 1*$,,*1L3'D4&1,+$51*8")7%.)."05E/%%*&,**"4180,"+($#1"-&8#U"+8.2'%'!5(!)4)M1F$)(*(30007+&#&+8&7',1)%'+*01($-/+!+.*,&3))-))24*)M-%63(+.1715/!+44-"6+,(')./ %-$((+#;95'6#&&!5%5<'1% %4/)$07* .7#0'0*4'509(//'#-1&+!.+'(4'-;*<12,+9).7%+2%$&5!C3.(,$"$#.!,$'(&/%..012+' #= &)&+0&&%+&0+120.)!"+&,(2 ,$!!'"(#%%&%+3&$@"*& ;"#/++O9A$+$!)+'*)6G37('/2&5!4#50"11",(Z>$4*"%8)4%&&&4'.+9&,#*#+.*&,%(1, ,!.+!E)-.,*)) ,4%,-#%340%6:0;/+-,#0g)0-'1%0%./$*;*/ (%"22=#)$+:(*!1#1B.*1/&(!.+436 ;..1--$1)0+%*" #/J'+)!'t"'"#+*%)&*)1 -2'.*" )#2*!*:'1)3/3;$-**#*&!((X5*5',-'+8$7+$$A-!),,#4! !69:32$7(),'//)+5(%&1+&#)$%*# 2%)'.=&8+&'/)204#),((-=%+;1*%&9(9.+(8/70'##2')27'*'.)077(%.;)#2",4"(177;0(2 5,,-(%(%9(4+>4)'+,$42-(&+'>ZF,?.3+0?5+&5#0P*$?:%3-)8)+$3!)0)=4%0+"$/ -$-6 D1'$",)-:=.*:5-18--2,C''"@ <&16%#"&2*4<(,7-5(/9)+0#6!1+&1+4)(I3(,+D03(#.5%4Y"P2,'1($$+/3!-.*(5"91-,@L+88-!%A !:7#)+'"5'+'3!7.CLB2*)+138!7+ 7$$:;'(.?&T("#2%4$4172)( J')&5%!(,3'%70.62("/+.0,&<5!* -5-$22/0).:,$F*HA( +-%4)#%&'$%0#6&78,1)'<[2-+0&)$!03(00!;0'1#).="=-$&L:"53*(%)',<(<(##n1"08-(#G% #.&'-1'&,"-&3*)1#&,(D`&4 .-$D4&)* 0)-Q&&7.&(#+.*5;t5 B04"R %1&00"$ (,+" *-`- &6*$0)03*"0 4%"'$/*(%'&/'!>.($+/+,+ .&-#2 /()!&&&7#9#D'&8&74* '6!4!'%%,&(20 $4#9i*(($<2($H<7!!(%F79:7"*6*-31?"4%!0(5<1)7+ &!'&.B>+.9*,!'4(!@)#9'"V#.B7983/433<6O*2#")5,'4$78/>A=)$$!4,&#),2%&:%4'$8?,B%-9(-+6%S 54B*1/9,,9$*!)*Z8 !7'1&%(<->P.3)4&0-%#3-: *$%?))3/C 2_# -/=$%*5805.%"4=*-.+1 /),/0$$8#+/<,%(&-C*8+,i(4*a>93"05+p#7#9$90(*$'2$/`F":5!#>/&,<<#133/3"6$6:+)-.-7?8,)'0$2&/,-/,!*8)3#>0&$;%%$7L":K3:0211#/ (!-4+BD,!(37:-9=. 3"3&6"<03)/,B(E75)`*(45.$*E()..$!,(('0$1.)2&!*.<((1*H$+f"!2T0#' *& .,C-,6<:!M=.4Q+"+,(.)#,#-23!!)&264#($,M(%4#'%K/A|*)<)&-#/*j)'->%%D#%"47%,.?M$*)5:1.O14%I/!=-%(!U, !3,G"'1L'3(:"8?8.% $ '3-*$)")&'-.*1#$.''.%-;2&#/.%+ 2&'.=)"$'%)")"=)!V**"405"*o'!%3"F;9-($>(/'6 * (=$#5"*;%.*A...( 43$33| )&-?1%&8R4?1&3-"$+i$ &%9"!'=8-4"(!H-("9:7;1'(W&((1'*A;(<4*/,(!,<6'/$%0&%/$#2).*%$*0 # (#(4 -3$6:#?b-,%6+.=++*#*2!4(,/B/ ?4!4)/>#?-/)D6+3+.( 3*%+"6B2*;.;9$C6.5)2'7,B#%* 3)/49*@ 2/,G<#B$-M-,0#&(.9-;.-(">22*&7%15+)"Z ):+1"%!+%?:)'"$*+;)'%7-+BW- %61&)S(-62'9'#C;I + '593"!, #-# /0)-5)1"$2-)9*?#21# ,//* !;.)C&=-'#.0510;*."3&'B%6-).!9" (/#&('(?(>@*/Q(-)$*432$2(8:*:&2A0%("3;*23!=%5"B-)(&"',*88!76*$+,A*4-,$"!-&65)<%.%/#8/5""&366-.85'$ .)'((b0/# ))3&9M$4-)P/&()!%- #"13$--(-#$))'% 8%(*P.!8**$6&(&'(;!0V**77#$0&1( $<1##(C$&,+%9*"5%3)(M((!45*-&)11%!@$5$G&(24?',63*.15))4+;&11H43%!#0/%'"&$2'$*&(4%) ),(+ %$<)&-4+8 08.+#6"3$: /,)1, =("4.0'%.'^$*OX63.24,*/&$#(7()$B)")952%#%@L0-5,->Q')&+ "1%)3,%)G)8#21$<"/,"7%<&,g508*1*,$)&9',P(1.%*'5-%.B,#$5R!91#6(221A'.522);*/&'$/& JK2(,'?0+/ ++!'-<$-=!'B"6+74/-,0%'C'-1,3',=',6 #)33.&*%+k.\H;.'-Y'&-73$&/*$# (//<('2$'*.;,'=E/(+4*-&#@\'4T823.)(8"-/1(/F-$!3.-H&4'90<*5*,9Dn%),"w@ $((-8.#/#30$,A)7$%=50S8F'0!L/U#''(!2#;%'ZA,!'()(;C+9$4U. *- 0-,( )AM0.&!&0"/ /$=+'%+*I,7)5**$1" -86"$,-3%(V&(%>$!-,)*5..,L2=*,# ,+&-.9')3( $") ((*)<4:-*)'D& '8$!6!-&/*'%#)$2"2.&0,'0"-%&8-*? !*?C(&4!)'*)%)$'!(*U2;& .@g9'('570244I+;,,61 9!#!,-!"*(""S'"8.6$G+'#,.A:1%*3*Q/#&)H-024$1,,%2&50*072'( 3& %"!20$./M&,C6 (/-).,&(#+(?,&!;0C6(9','(-I5*3T'),(41,,85F,&'.%$!5.$(&+:1Q1#*+-#g'$"@0/!43D-#%+.!(%6m0+)h$5 42=#-,6.4(*-)//*.E*%2-4*,+##//,3-%''0"+&.P*"'",+4,&-1*"&*11+%%,*8*&0,)/"*4 D-#+#''5!)&/,*7-*<'6!?-/!-##2##(+,7-//#n,,,)?5&+*8.71'"#A+5.)/-''!'0.+20)64"#/7*+$0'2F/(H+#,0"@610".?(7=(,!!+30!&=/'7&-!-+,*&%-.3(%/0!*2-"!%-*0(A1%#(9,A8,)&-*3*B*",1.@/ %'2' # (+5"*/*%+!'.,,!=-& 2+2&/-%')1(*02#/2$$!$'.$//+/)9$)5D ,,(,'1'',5<>%(&/":(&.-*$($-B)$.(5)- *%&":$2&.2,#&/)'?U>"(*,.+5 (+'#-/.30#*,+#+ ,2"9&,H0#$'(!$&+(+9"$(1 .>..**)(-".%&&(,-/50,5+679N))$#)/$+14#'.),=&+15 0&'#(<(&*!--'F")9A/#.#8!,)-/*$3# (4#)%+-*,#*&$&3<>+#$1-)'*')+$,2(0(:"&50i%*:4(++0+3-X66.19%&*-,612/24(99(6/>)):?,%8'0/-/4//!281"7-+#-$&+5-'(%'8#$--''(0+ ("'+L'-627$&68<& /1(+'"()1(.)-'%:#":&1$!&A1#.5$2$DE$(%-&$!(*R+5R,*'>0*U2+.#**$A/+/3'"a1$85 ,2+4($+%$$.((8.!+1'#7('+*$(MA$<#)(/&1)F0.CO4'"*4*'#-43+;.--,1**#'7(-)'5..))&4%*H%5DP/&%'1!,0%!%),!.:6))(+:.+$:0 (%'! 27*$A41,/E5,1'#0+;A$.3!%1*')4);&')%:# 19#*!1$%1&h*)&48 $,:.2#"@*0).9(('+!&!3)1,*F8!-"3!*.*'$-.(1%(-7&.'1*6-*$.#()"!(A)56 +4*'0'3 !(!#)J.*3+").,%80&',!&(-)'(',105@7 #08@2(D8@#7,$>&,+8?,"(2.%((#-,%4&6?,0)*/$3+(&"4$' 1%".&,;"&/#,"+ +34%/)$#/,-8/F$#<*%$B$1"-*1*(*&)11/-+%#1('$#('((2&#/%7.''3#,!&9)B+/0*).+/%'03/B !(%$-'(9#+'8)6).*(&*+&5-#4!!-);"'%1 )2)1&2%, 0Q1.,$!9!/"4#'& (&,&+.8)-#'7&3+8%JF*'4.%'<5;,''))5!/4'%'*(+*",+)5$0D%)+'%0,("8%:)312,-1'#-+&3>/,*"1,%$2$)%))-3'.+&,",+,.*5&%+$.O")0(-)0-(%)8",3'.-88%+/(-1')$10'()13+.)/-4##*<-9'%$)-$&--,,&%(!&?%0(!#0$.3*)((.('( -2+(j+/-7)&266$.%`&'0G'<(*'&.01,4.0&,)2.$4',,7#4//6*(0&!(36))-15 +1.+&4:"&.0=B1$4$*/'&W))$*)% %0:"26&(''(,-2277&'%3"#: .$+3.))$1*.&%7'B6(7*#'92I(' /9*)6!!2)*,&:)$*2"+/!!*&2#9+*((+7%2-'$4+(")%)$-(1,,3%+3@.35%0+)/6.(+'8+B'!0'$%;"/!A&5"+1 0.$1*(&-/$5',&3!E0+6"*0-"& -%(.<'%G""7.4&,430i+$(*#/4>%'+/*/')$:&H"-&0+-5/-+1(.,$6(.01(M1<((DE-,%+1?%H*=<*3/-('4"36-&$#DR).=594+#6+=6*28''%%#"T&2'$.&H"40&)&$E,51*4!2'#'(".3*))'() 9#6%9!E(--W20' $&%''*9/'%0!5"+%$,.(."//$/+).%!y,&'(, *(6E;4,"/B .44\*$/-*2*+!42$#(9&*,!E%,+/%1%&.J/+Q!;*,4*;,1,'H2$0,8'7$ '-(/&-35(-/L+(&".!!)B:!*!22$1"7,$%$#%'"*+A;#)"$,,+-%-%D31!).>$)!!*+/ 5.A-<'(54)%?'+&%+'*;%&'0-)%4$"#%#".%$(" g9:+5(750!7-5 "(*($39(&(%!0,2*>*!50#,G2/&%1,2%(18#*++A$&- )&*.+0.#'"7);&',/ D493@,,- '1 ''$C'D**-&+!#((93E/+J"#%)L-(--$!=*0 ?:8)4 6/%(61> 77))#*00/E+*"206B$)(.%%!+2K(/ &-)?(#<.+:j-+.#-53=1'#&4;3-5+,),#7%%/+2-'('%.*&2&..,."6)2&(8!8/'04!#'+/,"'.+1,-* +)R$ *$^3!31(*)9*%%'@,3>(#6#1&"&75?E=*7'(1'2]'*F$*%(@(*B$2(.'$,7-&,$5*#/*.*4".>))1,$#&+),,2-.)+&0-'G&*!2+83('+,($$(50.*621&<$91'32*2"9&/+$/46' !'2-1/"<,&(1%*%"(-E+'+% +':".*'1.3(3(3/(6*##$*/:*(*+-"D2*.6"?**+-'*%3%+*.*"3,0*) *-#+-.(,*0;1)&L+,+)2%0$-/'(*,%$*"7$;&$30=+5,(D4+,.0.4 9@#-1("80006-&)/,%47!9#%5#/3"'5&/4((*11&_$0$3()+&/-'3--)31&03-,)$%+"'('("'#+3,,*/)"(.2).8510-*#%"0k%&$!**)"+,,./*#520,1)'@-(%("+3+1)&2'41 06$/(#*#"6=0."/(#1$)%#+""&"%+11%51"<-4'*7(6;(.*&E,*$&-,4,!8337=//'*)\H>',2#&.!;",&%98*!'4A"5.0,=, '- (B$C9J)&'#+0.N$+( +#+&(!/*>1'B'*;/"#3+,16.'+4@5<2./('7 0R#/#)&$'*#-***+4%,N-6"0- *A43262.6,$O+L418$!&b9$/ 1&$*&A6"2)+)..'9-$;%+#&*5&%5*)2.,(,7,G&51.+#-'5:*)6**0):$/#31*,&$3H9/'3+*(-d'20+X).6,%#*'`1@%'HG%'*&'N).$-#-24,@1..'*"+.)&"/)+5'##!(!.(&)%)'+,2+;1,(")1&%1/+#2(I2+,"!=B++%*75,,%5!'!$.(2\!)&=B5.8.-,! 1( &7.)$+-Z#$,*/&2,%4+!'(";(/#)(%&''++)(",34*!'$ +. 30A<0%"$&'X-,"*.=02%3(G12(#*'-0 ;.-*(* +$%1"&45%2%/&&'(3(.+*%):'+82 #').%n7-.1$.7+<,&('"**/0''+*-1R"(() '-*&%.4&*.$-')++%'#()7*,;)/3&+'#-"$'-'0+#!/+ 7#'.%1''#.!!)*+9;47$);-()),'>()+)5$17?*3'*9*-+5*'3).#;2,-L#$/:&7'.$*C&'E""0/#1%2"&.%.%'(3-.3 /%%<3)#,:+)B$17'#()-<('$'8319&-B&-17(()=,1%- )')/))&+!,&"1&13+/0;3E=.$474&%6--3#**+W22*7$Q#.8)+=+31&,#'%0)4-2<(&%76!8#<: &'#/)-b)2.,(.'-%.='6#-''8&)//8 '%*%*( S&,)#+)%J3"2#<-*<$3!/9:('.%&/+%'/ /"%%4A!,%G)"*++-+221.%)+)9(10(*!# )'+4"3/(!("/*0(7$=2 ()+$T% )/##')4$0@4*,!.%(#$&4)<(!#6$(&,'0/+&W.E)'%)E*'0-')(1/",#%'$#A%#,#233)(%W#2#1$*')"!#!B /*0,0-#4#+++6#.NN7'G&'"0&32X5%*,%,'1/+(727#'#,/= -r'E'& -<1 1/*2*2,2'%%%),n"$$/-"7DC1&)03"#2*0*1(%'H! -18( 1)!1+%+*.#&+%# 7*-/# G(&7.E)1'.'-)"/'&&+%#-# *+"&1/d6,!.R,0"3"A,"&'+(!0$,!'&,R '>-&"&:6!!#'':Y%(+,2!,%&'E"$(!.(332d#!%)-)$'K7)$/6O1,2*"?(&1"%>9$!t3(,59C+4)0#%6379%1!,''-%,%'$$0*11"|&'G>-f4-!#,%+)1%%4%*'.-.+0$*"8":.,(15/$+@(9-25*)!@%+9)8-4&@'"+!#5!$''-,,-*+4!':*,3",*A)-".470!'')(: (<01-,!(*"*D+8#,&3;-&$J&0,)%+*J)'.-/ 7 +-&/*.$)/>-%'#"/(&')A3(88)##&#-#&;20*%!'#.%-/=.$3&/D/$+1,%7*!3,.-2%+:3-#.30#5/6R%&#I->.&=$3>$4;0)!6,%!7%=*/-13*.A' #*(2I,4+-c 1- )0/%./50$+)%+03/- /10)-%$*00@"-0%'"7*8*1)6% +!&/23/!.30(0+&-"/'2/-$()&!'$(6"-#71%.$++I%()C.!+,$(/+B6.3#+2G(-; -*:8' !5B605&+/5 <#$,/C'+,%'#%=-46-)/5-5-5&/,$-).-4''%9K8-$(2$*;$%'7(7$), '$, *05+(7'-)+*/:/*3* +:)(.42#*3,084'%8?,(-71*60*+)(+10.-!18)!O#+1445()4(&! +4=C4G=%/1$*&*'3.(%!'*/8', )*#$6*.G.7,!.-$9?)&:)*"-3()4-10,I8&!&H?$'4.07>--0'=7$/%3'$",+:7-D1.(4&$,5&15:-'-#/4-*08-7"/(**I..8.*67#'&8.-"'#(.+((0V,57+-6),.%#4)PX38?/H&,/ -''%(1&G/5$B-+-,&"':+*#4 "12#(,#(*&)&*)C%%0%&,4%/*#1/.-%10,5<#C"".2*',.-0E,,) &*(2%/))%/;!,%02 )#'$:!+%1d/**B*+:"#()*;$(1.;(1.: +(?!+51-06%T6(&/'2.X/(5.9- '&%326F(%2%7--"5l#*+12/'1"J)(")-!#-!6)+5 -$622'5>/7+A$##- &$($>:$"")/# &0L.5*+8=#,(2,8@#'9)''/3/(,?!%;7P,(%)#&%') -$=5"+.#$((+. #%!1.#?=/)SS6,,&%2&/G6s.54&#&7($& /)*&?(:!>#'1&7{"1&4N'".)#;""73+1G;-'0#$#!%&$//!3?*1 ++ (28($);'(.&0'B$A( ,*'%3* /-/*73*(" J*04$.,-"3:3(.*F0+2(90#1$,21/%,%"%1?V!%(!69>1G+E=$1-Q6-"%;-1&"+!91, t%/--/%."?#"78,18H*8<#!&#& :5%0#%'/%) 'hL7-&!)H&&/$#)+5%",)'!',##$.$.,( )+3#2"4/' )*1%0-,-(.+8,/.&'"/(+>!8&&6V&"''&/:$%$+$!0(>6&-8+1E-$0)&$$%,$0)%%/102"654,4(1('(!;57,G-+;@Q&<23*/&)4'"!*2#):56+C8&,7!?6+-:) +-"-)-"$5!20(<*2:*F07.7&**$ "((!+=/!(#'$(+,/-:)2*$"&)3''1&,--,"'02+=+#'7%+2012*.7+*0"*&0./ &20%*)''- &6/?.'J"*"$$#)0)(6+ .,$*(6,6%+)#. ($.#3.&J#A$0(,/$)&$")/-#5??!)&)$+78#(*,0&'"!"-,'%*=*(4()+#0 *%#'(/A=+&1!*/1/*!I4,0&-!#1"$)'$2&7(&Q/$@;%&.c)J).#3$<(!,!4$%"&/L-&)%1!!!%$'6$'%"+ ,(%+&"-:.((,)!0+,++'I."++ :' *.%D*.8*%+%*$>1)&+;-<@'()@)'5#!25.),'4!%9l*$"")('5&$#)#W6*1*$+0')#$e%.$B'5*&4%1#!+ '{.60- /4%-IB0 %)-!#)"8@))!\S#&##-{-)*/'1x+/,/$+-%&')A!'#--$(*'F&$')+.$)l\1(*P,%<)^'1d-'%9>5,P#&0)I(#++&i5K.8%')9!)!+,".#.1,0+$,y*.'61*/*%23)#"-(<'04&3##+/4')%. 8.%(#*/-)"$6f"*D.+")&8#F(+"-4%"92,1/B.25( %(!*(&L)8g2D".+,(1?0':#$"$,C.*+,*&(%$+412(<6+$'&+1'"$(/A9 *%$71'./(G)+#.(?@'343%'"# )*('&)($&''2*%,F(80)),#O)'k+(&*!#'+3+'1,$#*4$ $ *8$7/%'""3-#GB"?-$&5&23-?7.2E6,%3)$4""0%6,.,^-?G)+2154',4& /=6)+#%"#+-$#).8'4D/E!4/ ,3#3'0475"04;170B#3(76)(,22#&*(+38+-@TT7$/))=/'11*>5)+)2)$#$6/:*(02%"5&%(,!*(/%'&$33*.f2%,.%=C$ %+) *503+E);%..(/"'%-20(8/)1+.)%'2- %73&&-$ /3'&&,''0!@ ;!3!+%%@+2#(#5)/&++)%L8&'0 ,)*!)5'5%)#-)>B++%:2,1 @9/@7(./#/F):'+5-1,7'/+)7(./-3 ((*!40',+/3,0-+&#+'8.,**/)4*-:5#)(-%,%$,%+4A-(3&!-7F22'7,$2+..-#+)0!%7(#7<0+!535$&3,6*$&)(%'+ G;#4/&!>'-.8V$"1/!%6z5)0$2)02)2)#!;$((!*+7$21"8# & (5,'))")(!$9*7)+&!#0,4!%*:%647/2+$&-(4 &/..:$,!=(/,&.(-03*/(8.3$'!.*(+ 4'*,&/*%!'9+(25F+.#!'5(+83*#R'%4..@,)&! *)1!.'1$'3< ?#(!7 +,' ++%&)--&.'"!*6$>)*S!<9,#*9#-$)5'#(4)&+#-)&)2*D,",*#A+2(/,*31+.+/!./,1(#((I.#7+;)&(/'74!0 20/)%05 *73-#(")-"6(&3)#"6!%!*.-.7#&4(2./&3;2#5.!#%).12$-),,#'/(%%)#0++C0;+/*$+1%)!+)-)4(,%'$)/&3.09-(0'355.*1/N-"'13.#'3!'4%.".(&%.:B&,4*(J-"9&) +!&2*3'*Q78&1;"/ 2.)&%9+'6+,72%!!$# Z".-'0%*&_/8*N+,&-'//59'%.2(%&.",%/7("$1&,8&)M#)A,D(>(/(.;&///"4!"+.+*(,..#,*3<-%-A?,+'&10D.3//*,"*#24(!V2V1,5,,2*99,5%/!2&=3% /0-#**0#0'+..30*231%"()2''0+-.X##(%($,12A%/9(,%*!&,$)3:1h6'4,#U4"9'&'-#*-*$,#%* 42#$.0/<#'2 51".'))()+&,<9LH6426s&$(&!6#,8*-5?MR'().-#0-'DC()4/*M4 a!1T8L!@ (1J(<);"!,6$# $$6<5+") (/"*7)/&2/"-5C"3;<&=*.e-C-&") %*7.+8([-&!,!43595"/&)%$%*$%@#+%&3)*!<0-5',-55`q!)&1$$E) G',4 )4,1)415$M&/.)$(#")1!73 )7F36X"0C1/9)1."$(/)C(+&$$0$17X/ W#%)(!.w&).-&#/$4!&4'S04%6/4-&$#(5@+:*@9.0&%/((&-.6$9 *7 + 8+ ')4-"-+9"&+B*,!966-T&"15h+'>;8/-.0!+*.C ' )47)9%*$)2#)%1*+#&F'!5D.)-#1&(^-(&*3#9&- ,195'&-Q%G08OK 8!',.1 7"$<0*6/$-.'3*:&%4;2+ .3.)(/1-"5&!!%F$)K#0>#')'$&,>781M0E1"$'@4O!'J-*.7"/8%)++$=';/!$Y+"5)/ ..#U%Gw'6+%/? 8S5**$-<&43>&0#((*$ A*CFv)),1*6!($1-54,,!'9 &$''+.4,;++EM,.,,1.+*2"+!*,4k$ 10%#:$$* 3,-%-l!. Q&$ ."'%X$&%=,+>+.!#^14$8G!',3+'/%C%>'&'"$0$#",'07/;0!"9C&%&Q0'6;E;;-(+!&)?Y#"'%%$1#/-#* (2$6+#,.*,'C'8;'5&.0@"""'%;0*)-!U/%!I/%3;&()5f*F#)&-%'C#*11-('7"*E,A%,&,$&.,,/ 1&1-)%)+/@4*5 0*(#$G,#:R-%%+%((%2%" 1...*#I8-1S$" AF(;,.=+1&+*@3+)(@&4-.0?5!*< +$#"))&!%A'&1::&%@$2-'((.-&*1&"4#,H(285K?(3=*&!5&$$;8*,$%3&,2+@K15.+(1,7.;2."+# <0&4+9,,"(+(1=Z$.&?&(.,((4C1$$&(*50($)5:'57&$(% 4030)-($(4$*&#+'."/&/,T*?<,3,!3,5+(8(-+2(?8)*'$''!7:)!.';-()$>#$1#..-6+*5*'4&%/,+.)+()#I7%5".;$ 1!<534-3)* ('$ 1-;''%(..2!*69")>"H$:1&0,"3*u'0"4 0'% ,.9$C0..,/+)15.EC5%.!B6-'-+'&&+*.#*%8/(E')&'!,95-,$)'-)&74(%-.$.)-,%*0+!."<$FI#+ "#U"@F>#).04%1&'%&&U.2 &,*/.(4#'F(9*,/+')-.-3'!m$1#8'63%^";,$' 3()'1&-*+'"+*&(-#9%)0%),($$"&0(%++"9Bs-0*$'1 4"'+*, '7+%4410G.##(##..+"-))),*-K%(6$"&92,+*&(,"+/'<$&*'*$$(<1%/O/&DP 6!*=!((W/"/&/!3M+,2!$9'""2"8@P(*;"#6"'%("* "G)"4$#C0!A/0.8O3(#0/-&#,(D-+"6")(%*H.1%7#%+8%,093.+-%%"0.,5-3**01"+/!!%*%56H",(.,'=(%/!#9-6'+=!7#*-5$+0&((F"'$.=(6&"*3$$.-,'>,)*=#3D!*: :"/)&%(".'*#U.1 .-,$&"#*('.#)+-6=0;'%;&#%/$.2)$F,*&"Y*;'!%)+3 &,*=25$+*()6*"+!60F"#$#5F;<-$)4'$&)0$)6/+:(##/(6 D#!*$n*76-A,T1)-$/<*<,,'+2'O-6L7&17'<-1)4-, 3=&;+%&24#'&)327#**',(("1%&% $+2*)% "/&(%)=)/-*')'0*6-#./)%8(5+(:-/++')0?-0%(6,/!=-:#0..-'(+-).(4%10+0+"*9 1-0+&-2+4*(+;,/"7?.2 1&')-4,*0%.&&-$(,.>,#)(%*("*23; &)'.'%.-2(!?(-"*&/8*$ 2":*$(3/0#%730;$ '&?,$..'+7$20#,4125'6#&:*,1),"$&$4'*&,.&1 '2(0/&15-.,??%.,E.),*!('(0-&+'!62")*!4.!','#2'+$'&.*','%;) *!"7*/.)63%**%2+1-'!,$:-31($3/(,'(27*3(1)$(+,69( "),4=D16+.'&8'%!&"2%@&M7-$*#)(>>%+(1$.'%%.&&',CA1'5- =*.:. 4<)"*&PF/, *$0!&!%,0)*$5&/.)-A6-U,16*/(.0?%+>%.1%! 102'3$+4&+0 ("--7'$"('()*10'/+. &!#C#.:)71&%!-6&1)+6)%14:.10@5,:3$+;,%,''-=00())1'-*(( 9273&0.;-/*//!*,1"#>&$B13K38*,7&e!3*<)/.3%+(41-)%//0/)2+)&)0(4?)+/9 5$5< (@//,(%, /(+)( "1$!?* /"2= 9.-!+&%0#&-'I),'G2((#":4'&(!)4 -(3#)/',02 #)0+-$2,(B179#*2//&%#'8$&'34$,(").1%$*$,1,)%@#(.-&!#3)1+'9*-0**#&-!# /%,65'%46%<1*.&/C7&*,-#1! #/#):!2/.#'/*206/$%3(&.+1*)!%,*0"1'(#,47% 8(!.)'-*''#,(7$'%,0/&*4*1G5&%7/&'))$.$$+*+-;,2#,(&%'$)+#$*',!--))44,2#7!)31)94*,",0#",&-%%"*(+.2/(&($11*'*&]():#7&&$1"*),1*(( $$4&3! ),S*/,21/-' (<2"!9'"/4,,5<$3=( *.4,"'3!3! "1%< )"P:4'**,-2I+#+!,*r+%)921='3((&&0,"(*'6*5,='/+':)/-5(')+*+M18+0(9.*%2+#(.$&@&.$"0'#0-07*/*/)8"756$2$'&&$.*)*'-+$#e% 0.,/!.&<^0'.$1)#&2),3/8.#1 (,2.$1"<7$-,&%$+,069 '('')&1$3'-+9I)(/<{+-/("'3'',B!'+64*/M.0;'*$,'6)33_/0/&=&)-',*)$'&3,!0:'+-*#$(1'.0,+282,+2.$-%(#3-2 !;/2,;'-$+:+&0.,(1o"7&'GL18.9C(;"#@3!$&?"'3*$2$"(-<$&-*(,)*7_"%*&?'=/=)(+6&3/02''_:R7$-($''%%))+/*R.E)("ZL0 0+*8."'-(:4#(/%!',:'%%-,Q$z:*',.h(6!%*> $"T#R%"08'*3E-/'*(!I!/*&%$&,0!6&-6'244+7=(+*&""'1$+'8* )(5.!&*"%2,48(#&-,/(0&?%"!7+6/.,#'>2+09&0)&4*$##G)>(; !&,(-&/*)A&0/, >/"0/H*(*,*)1>!,)/&%*#,>.(#)!'N$8*'(&.0$,'4,>)7+9/(1/;8&. /4=#3.(//1%;4$0-!3+*+4;&+"9/2&'$%-(0+(+9%*%38%)(1-P*./".6,!+'.>"()/2+*2!Y,/"3)#$%4,.--'/&\-&,!%N2.$7&2!61*"/$'967;"!'6<>!$"3.,J=#*+"(3*2'+'74 -24*54-/1.#4.(3+3#,''(5*>#1&03+$, #(##1+-*,.-(4<* ++.+&&%/'P-'!0(1!#0-(*01%.##52---;%#+F(.(2)/%#,27(-0-''<9-(!- % &/&*18-12%0&*#7-$'0*()41*1(.; .7%"0,.#9#6 -$81)$'&/,"3)"$3 )%24%&10&')*=6'*)7'*4!/+80D&+')*,!+8*)2"$')%-0*$;$7&&7"('%5'-. !1(,>*#+#/3+)&):..072,36,;&*0'$....7=$(**2&)'!0&$*5.!&/%('*612*#5'.*'6#491- 0-61),"4!''+650.*1+0>,;*&&1.-+%7,))*&)!8)/$(#29/13$(+$&%'/"'-1-+$14A.4-#-90S+;I4(%'-7:)>%&-'%!-30$&)I$)()/)+%+4=.)())0(" '%:D#$%2&5'1A7"#.'p"1>A#++2/157,0"+2%&$/!)$'%)**/2$''E-,-!.'-.(.""/)$"$&A*0"0)30)D/S-.:+'&/'!+ ).'0-",(]1#,&"'!$$0.'!,3(&*-*&.&,/&K&#((2(+/- ).-'""%!*"0'#)K,'+--5.$D"1$*,/,*#2-'#'$+#/'2'!#\i (3'2'"%$5)!6(41#'!;^(1!".20"?".(!/.+/,?1%(*502"@b(MX!, - ,6i$ ,$$/.\ '+/A!),"&&$(`/!"0&+&!m -J.'*,;')'+*"+0#0+!*)'&#;,(/#!$3/*1((1M"/'*+"%"J9/&&4&%)#%+(44D":kA())#@!$6-',+$%)"7$+'#"$)45060D9/'#/*.+/#",19%&$* A=,J'(8/#+'*!!0$&9! /)H 2&%'+;(;4&@+")5 :$1:4!,-,*2>+),""a->0/&?':HH(A015+*S!.%9+#+$+(BK1[(")$&(pU8#- 6,025)#.! + )%.0#$"6 !#$$5:#-(!;'*%)*" &,6)@"9!)#0.& '?')%!**+)':-#21 !+!/8 %),5/"#"-+!5-+%#&'$*">$1!'*+!45/#3$(6."( ;:##:+*3(50$?#3*+' #3*-+#+(%('.#-:18(!6#(,6*-+/ -$'';!'*&%))+ $!$)$:,)$#!&1-:.'-*!?4)$3($(-/&(4&3-$4&("# )!'BA,'<#(#24#337 #!$#"8*!2 -(*.!;!"!$!+$#),9(4-4>95(!'$2(+*-%j$*+:-d%*#&>7)"%&8 "#.%+'#(!4 )1".!1'T'*!() *3*.&(!#(%*,C%'.-(.8!7(0'i"),( )5$%(5* &)6*+$-/.6$#51,,'v--*%3# H!(%*/. %"8+,3$**++),8"-2$.1(@/,,/( 4&/*'1&'-*4/() 1"-+.#3'$0-'%#*+0++)$+8_-!$/+)/ ,24"8+!42R"4)#2>#'%B+Z17:*&4=*#$,0d,-'$*9'"&0 ,,/( 5%.$,96,-$/&"-1&0:.*? /1$)+< "O&.':2&(+$;;#4+)#,,63",!*6%'32#&74*('D&-*!%5)*#L5'#421+)(/ A.'! )'95.).'2$"1.'" ".#%,/2(!e)F'+3&(%?"0,')&:'-0&,((,+3'*.9$"/ 1*$!u).$2*.1.11;:/2#+"0[##(3'#(1*1+$4 `=%\-'2 ++@&+#)&091)&$,/618&3$F-&&("+L#*) '#)*%#9.31,"-+(""0'*7*>"#'/+&%536*-&#% E-*-7%-$#(1)-3,$..."+%;J/.=7($'-#!1-! !"/>($<#./5)$H ,$:0 /%(+&(44))#HDP4&?* ;+3*5&++6 1-#">2),K-8 &+H# =2-'#6C8%?0$1%")5/*-L#%-.++<8#*#")),0,:4$3(.&-.-'*%'%+%".")+.1A#.-&#.#&0*,>O))(.* 0"/4$.+6G/+3%)2C)%7I'2#&6!#&".+!(+D(&A(1!:."/&E)+)&-'<#`&98F.5(3"$**!41)%2n/B)-($/:$,"&0& 1,/,44&-5"3*.a,( %/! +$&0A2++4!A%-)(83(8..%:!.(#d-!13BD.; (.!&.+-"&31,!T8U+&-&"/"$.,3%"%"@::1&2,?$%/(*,($*%(59H-1'$*%$.M+%'$-%R&011!**3(7*7?1-#!5)"2;32'.&+&3Q$2$/%0$8:&6;?-&.'.C&.D8,N3G*%*()6/(''!58IS4(+(+70( +2$'<*6"2?(2)$.(/.*&/,:-&00("4@,8-/$06" ,"'" 2*L,.3362#%%LFe#6M53,%`.1>,"#)0.,Y-+&G(10-44=K"11=.',%.;0"-B*B5$$4.8"AF!'(0'--7-,0%3+'H.')%#8%%.,(Aq)%:;" 7>\.( ,()*0$,D?,0:)+9@3.++U02A6P..3.'$$0-'(6"0+-*,$)>(-$I"&,)*3A!-103$. ,((G,8(.*"##+6(+*A5)16,$*/2<-C4723%1$",'0!(.*;(&#D#!&#0$Y#=3P .?,,&")61-.5('9%-D(,!7?&0+1$5!8'<92!'-3*!#,'(E*3>)!13K-,Q$(2!!($ %'//:-0. "*/"( 9(%%*,#'%)C*0)(!G.3(6)U1!)%J,)5##-"4!8(*,,*/,,*-/0.),!I'$- */#9.%%,+.2!7+M88+k)/'++$+,9")."$P6C#P>"1%*"#%3+5*+)3*,>2;.&#2#+X!.'*)*6!%(&.-(/'#E.&0"A''A5(,M3%01,@6'((&.(-()++'71%@((68R)!831 6B7,',*03 &",.)'#&bI*$):).S.9,O0CP,7;*@<32,8X1$.++%.1(:";:@(-4'+Z+(",+-7(#)*;%$&JA",#+(=/'1% )H'%..<`%($6(&-"&+&:**4.%',2+I13/,)-/*(M4.&.&!;&".+/4,H'1/&%60$&!%(45)&0$!-""'45,H"%#-;C%(1&@)1618 8./3)0-(&=,%,);'+!"#5/(9(#".28#&;+'(&-5%5#(6"L%&4$*1'(24)++7."7(B 6+)1%" !$!'1&+"#2,'-7/) )"1B'4,  1*5;+%.-1G4*E%%/'(.9(!+#)$Y("&(,8".Q,>5&);615&-%5/$+&$"41@-E)#+#+"2#;)(-'7))$)2) 6'#D'.#"#*3&;(-&>29": !'7&/*$)*#(A2.$+7$($$(-)=-(;)0(>&+72,"$$GC-!.$",+!1> #++>)(0'+%F2"(/!$(-%0%0 (%!+8)0%+"&(./;))&&K(./:'') 6*/.(* 1$5 +6&@(# >!+-+!)&J/$#&?CB*5 3,"((7', 5$.("-'0Q8 &5(*<"4/E3!33S9))']+6%'-%"69>(2-#&2(00&H%,-06*+%9,(2<�)&$/t70*(+$ &!51'"#()2'"*+.&) # 4$+'-K04)0%'&(2)?9% C4+,7G"(*9$#4%.($3'S"/(.-$"(*$*!$)-%%)/%!'1(-&$:-+#4&&*)0*0#)1'!F4*92%"'2%*2,' +42,#'^"!8B1$.#()8$1,-.#).!2*'-%72((91"<6/!X@!$0".+! &$,&2V46'1"#% 9+.i(*4%''37(,M$''-+.(3)&2-7&2%%)',,2%P/'6#H,+0.<-'<#6& 0#+*&''%/)'10#!J(N(%(.')G-&0(+)*,&#'<0*)",(. 9%&0(4$+<8"+/& "4"4q(9C4*'$'.- '.:&,5?',").&% 4/!&#A'1*$!%#%#5 %/+$!.1-(*&&)4 "'7'$52(;/+&4-$'""%1-7"*$5%"L20L$*"')".6#)-&$> 0;V &9)8!*/)5.0+/%1)10,%&(! %)%.'&(-;&7+%''5%$!Ik-.+59 ,+5#'(.1$.),.6%.5)L%(#-'F0,*(?5@#&(('(3!43 9A3&*'5+#4!-)/M2,')& $+,' ;)3)()(3$"%1*3'*'$(6*))9=*".<+ 70$&#~-&<)(184*7+*"(&("/%"#%%7 5*0$1?U"$@*)03&)/P,6*$A+)">940+&(!@(&3<%4'(! $5/!+#.<> 7*!)'-/&2U $*I/.92%)"+191)(#)9*3&&,"(-50-,.1*277,-/-1-"+17**+!0**"" +96&.)*0%:1,1@!:/")'*5&%6$)2)>R11,7&0*"A&'8 &'8.-30-!60,")1%5&$.+o>1%.'2*,)/+>*,6",#%15+?#?#"%01$"-)- "<)%<5'*!/-6"$(2&-39*#<1/&(+ 11-,"*)"(+/+.5.'&"''//.0=.7,,2%&.,',-!$03*-0+&="'<*(17.*7#3%$('$$12#,. '7(0$5'-#'$,55*)',&)'=-1031=&,6""!0,67-0+'41#()6$4!+-*-9&%1%/2-1'2 B%+/$M6+1*3)/0%(7,"4(9%#"*3*0>?+' 3>&G(-'*,31,%L&"&=-+#'(&46=".3,(((%-;#5598&7.!4Eq0&4(*12%!)/ &00=0)45?)%-,-'+,8J%-!6$+3%7(*540-I/C# !2"*),%1^"4A"5/%&1D)* m29%)/8',$, ,1(#14!($#:'),"#>T-+#*2"$-:/69" $:%,$.$$))63+1*''$-J5:&2&#'&&:;01C a;*0*%!'.)Q.b$7/#1+'> 2'0)$8%&T"#!-,##&D!$1$P',/3,19(,3*(%'/2."1'%*5($0(#40+jE%0"%0"3&53#2'10.,+#7!!'S0/:%&8'"( tF/"#")*+% 2=:C)(3->'%..+('2&! %0) %T"0&-Ub!- %8%!"!.--%,*/<$/$">@ 3803$#*"2-#5) *)36)'5YF,*B&'(,A,%%('',0%#)(5!5(00&"(".##'5-,M;)V3!q*'41$,4%1$+&57-%.F%)#%'52&-%#%.%%/).>-)bI&-"'$/# (*0)&15*$%5>":&'+;!'4., 192)!-4);"))'l<)5$~012=(A--&%!#+,"1+16+.5)@!62"$&)(A(5,&%%8%(#+)5E%6%;*72.'40#)/2&))'1(!9@M$<(++%,!$%)2(T6@+4%$/*'.,4&'0QI5.(H)2(+)*,*+<,9 625),)%#2+'71-)'!].(C3$( >'.(.)"W*&0',N31K1-02((,.,+1(#+%'>1&'"= $;$!'%%*.$,0,/#$&%$(5+18%0 '()*22(,436'3.#'.(&"%!#)$ /*:(364+8+27-/#+06!1!/#,&%0)!"!"+!,!#)$/5&#-#0"#&&"/&(%5*#,#.,/).*>$4$'*4-"2/,/$8("" 8C##$?.% 5/5,0+.!"/13=)*E2*'!1)##"J$$!40-G&)7*$.:8$#<''9+.$+($6 "'4%+*0!%#'4( -8)9#)16)<,+4'(++/"$3'$')/&")!_ +C&!,.+(%3+&&&- (,.#% "+<8,39%/2$)3$0-1+5)"28*3"/-0$$70v16/0),/_0) ,#. 6 (7 "&?,= .0471'*(>:$+&3547/&2 5'21!))2/<-(&%('+,[/, "02$4 =+1.(+%+">$&"4,.m=A.-(0-)(!5%A% 33(6%60 /&)!2(A(9$7"48(&#'$*(61)#$.!&4-+`/0&0),,1(%5&)(<--<,(-,..3/ )'425*Z"+0#Z!5**$"&.%125&+N'E63)0,)+=)2,?6(#*)/+)-Q"$)&(4*&'4-$6>56<"-%+."$,*%$1CJ 0&-)._-! 2*/41!#.'*.O2-3!*8<+,9(1((2&$/"5=040-#+*,&9#(/'+1&'(&&1'"(`%936/!,%#&%.1R.-+ !*614-A<(#"$!%1./+/8S(;#B(H'$ ?!,&1#/*!,&%33"#7%'.+6j 5"< ,'54+18,!4&#AH0%,3"%70* $D'&+##-%05:*"&"0!.%%*.103/#=%(*M/'*='6(;#+#%.-$$$')4=-2>3"0 H'"..7(699#41**!'&,&"#>5%--#0,o3,9o,:$&%#,5 %5+'19%'(N%#!-=/ 3"3/''*(1'*E&,!H32-,%,09$5&@*&*20*6":,4-3!9<63'$CX/(*4."-."+89)$"23)6A0',)(!2$#1M%/)"%.3"& 48.!%+8%+/%*-. &1#*/1"*"*-F,(/6.4.$ ,%,0J>-10b.,$?.(" -1(M&+H#)30/,%!/&76'&,*'2$&"($016'(,3#-0+//!#+-+,*2&/&57),#*#/+ /&E13*"#' &#&,8("-6&*%"))C1*#-#$83)(3,@!.#,++((*4)- .81 ),(' 0)+-2/$-"'*J-(#*)&1.4$' *$!..),',$/8B'./*8/"/*++@/-!&0B"3/"64"30,7#-:.$%2&%%",%"'#,,$(+,.$-#%"#"%'#&4/$'",?->80B)%)&.$,B;63+/= .%7+.'*%*$';*2-"/.*&-//@+/)!*+*C%'%!&,-$1! * '72**2)(-%.5)-((,'/$B))/#5-,'&0%&D.6)$#6D*/!A%.8$F3%&&6,!*0*3"(7#&()./(."2)+'=.*.'26-3'+(-(91#(7,*5$&$ 42-(!Q1B$,:,$0!&227/.-2&52:-&)7&+O(:,&1$,, &1"*1%)';EA)$,:+-$0?)#*(/+.,#3%%0*$)62'%)'&C2=("9-$I:,/)%/"13-)2')6-=91#%E(16.,1*A*$-3).-#18K60/,,+,fD%)!9:*80'45$/+)-1(35"*(3P.0!+'#A!&$)?&&&.,!,-%)( ?')$/(+9)%)): '+&,'( *(2/$&($511J)/-+0%!.)0++;"&*'1)/5.7/27+.("+,64,&.)/(',1GX-%#J#0**.1$.&08 #*)-)"07*$+#)+;++3$)$-'5//@('2!)B$-4!7H3):/(&*,411K&0'&"+!)*05(9(#[!V$1)%) .+3-a2+H!}"'$Q1$*#0<*12",+13!97)-Q#8B5/'73);)(&8#%%!!!4""+!K&S,#+202&%,-+(-'.8--**%M-&Y,8"E=+(#3+5mM!$+'.#0/2O<24/9!".O).,),e(G&/J'N6<)5 %+"</$,-.$'$Z$,:5#-'07#.6#:165,*>%9%,51',%*0)+61'(&0.#* *=/2+)5-,1K';,01&0&"D?3#("+/0-I1,(./%,,)/'5.**%'+/1*C-#&$&&&),&.".4e(30(' *$>'!+<-38,6Q',#!'-#.$29%,"*$/E.."#&3"/ E-%! )))7538/9&.w'C14C&3)#,(051:/1%*##C(6*3(-)()3('-+,#!4#:0$= "(%*&$/,-39&%F84298%#,/-P8 )<'%'@!*,&'('*)-'/4-J$0&2'#/$ *$5$.$+)19#(%."&1O($"5,)>-'"0&.+) +)+/*-%2'&,8":5#;)%,3##&$-&$03**&!,1+47)1-5/*C7`,)!$/-53/(10F%5`"(,%!-)(!-&47.+-10-8 *&+;#!".+" ./004F)*(+.8(.0")/+""!%!)'0 ,9-0&&9/*%.6+&,1/"01J-&74=",5"9#"N':Y<)92!)1@!"$4("%*-)*+.&33.0'<;#0g7)$28/P:", . B$-(3J!"%:.2.-2"2),4*/!.>#K!4; )*0')&'-"(&N',52.(&18?0(;((<')).96-#787+:""410*%+:&H'6R*(!'/+.g' E'./9*52":!,6+&/08& )*,(00+,",6'2:&'A"):*%`'./0)2:(5#!64'2=G430(&-4$%<4&*+8&>)=P,""#0P<3*D=&+#.!8)'5F$'*6(')+1$/YH=,7/(=C?9&3.:)1''5&!)2&91 0(2,(3H%82!";-6/+.**)%#(87*"*,%2'+)-)((-'=vI5-#0:\!#:&(B**,SF$)1&0'$))0- !"C$)#72%)M+7,+!#& )3&)N& +;+)4),0$)'<((%#&*./-41/ +;+,*$3#+.2'+&0!)'2"1*" 6*&,Pe((%$47(9+0"#7,&3 '8=+87% #'6> #6+<$#($#)&61#&2/0/5+1#'9*$'+"54)"&)%0&07&%(*%+,$*'&"#'$,8F$).6=622:.&-F*A+#.*-9.1 (-&3,#+"(:&3$0$0!(!<'1+7!#" )i%5. "Y&$'73=&2)+)000#&%='8,!&!))&!.%)),305*1,:3%#(1+-"&1!-8,("#"/+)'-0a-M"-)+)2"165*,,30".)02B-.1n89"/%%4363d+[<7((&*'!3")-.*6(!:!2>.,J-!3$$.-H"1!50*="$(&$=M/, 5#-*&-$916/5%*(.1$:#D*)/=9;!')!#$."&,,0#(,%*#*&/F.4%&&0+:$8$),3=.+.%5(5O$8-)$&/6216)'+.B **:2J%J.2&5$4(%'2Y(". 5$:!)'*C3=*<$#$)4*$G$,&=#*+2!6-,$3F!!**&81*1!]81,1(4(0#'+"" 1$#/.-2D*3((&300($;'..(0/&2%75/J+.5'.67#,+2!%+& +K))"((1%1*;;4l-336--*2;#)",9.)*4#7-'+1+%*11+($%)' 1*+)+-"+>',$#+(L,3+0/!4G"%2*,+/J5+'&%5&&1,#!3)'8%$7-!/%'+1,'+%)&2*?&.!,&*''V1%, &'",$,33+)7,,7*&%!2(.)*,**.&4)/$95+*-'#G.%2168!!%$0*- 31+4 +,/:($%)$%+)9'44* *+#"0!8($-!((*+;!647/0',)#-".(8%6423%.(,<$*'$?!.@(!,%&>0+1,-%+!3&.,/%,-$A-8$&)*+-*-*5Q:E3&%)"%2-))').1(G>*, #+4"801')=+4",A2!.)8-!)((3 '++-)$/.B+>$""7'!BJ4+&).5$).&,+>"!4+*),,1:,"%"-6')Q-,+#9 Q17"&)0>6)C#7;"'9*;+*- 0l#2.1 8,%"$%%2)0227%*(&P##)%5%D!@/) 0*-,7A5*,/+:-"-' E*;'/4--:%*$0&?#%.)/$*:.$=7<= "*)'5;$#(92-1&1*'!)+.!?'9(!)G&*#.>@C:*+6'#H1*5-/&(#:.3"446/Q"1d(*');)*!)$(-$%&77j6!.0J$12)*)1!!."#%*8,-*2.(=:&//+3, 9-$)V0).-+4%! &!%1(-"'$$/&1)z8((-%%0&,-9%"0)8& .,%+).G8/-/6@24)/58!(+2"/!"*-,6,0+2/#%%^'9$#08##"-)')%15!*0&>/&#.+,*(8$7'+'!!"C#+*81+H%:()!0!H)/!*./6$=F+%*&-"*,&,890+%!"73# '&!2(J5H8)%.*08<)'.2- /*,,#%".$(>)%5*)$'+.'*2'(3-#!0%)*%;+$*'-(+(6.(-"9"%&#1."1&=))4!9!G#); )$4#)(+&I!%&.&%*)'<),%$*"!.>!>(2!:696.$(&(3'!.+'#-,=.' &,:.(6.2 '2"%158)/:-,$+1+)a,$"=4,'+4 '>5+((;-(1&+ '!"0)E4)"A.>& L--0".-&:316f4+,$2$6)&4)-V )!%$()9$-&'/7Y(2#])-$'$).+'+$607*5%J!.)+8%8+RP'0"'1:%'%%-*A*#/"4(*3!-$ /,;C,+-=/'';2?7''%':-/0#,."0!'&!59.0"A&*.3*%+=1'J5#;)=8$37I&4'=>(|8.#P,*(*";5'!*.(,&c0,",$&(/*&(%;)(*')7!(*>!-1(/1%?:&/-0)3/*-)8*"7($&<>.&/'/(B*'+.'+-3=2++*#..&D)&/&'G)-+7%2(1:2(($")[=:1+)?7D'$"+/*"/5.%/(#.;Y0'(0#1('"2:'1*05I''25$1(4.('01'#$ &*2'0)1*!(<,1+'&*&!/$#&(3$')-&1,--*.'!C0,+1?69$,3'&>0-,%'/62*+-,&2A1-/&)$($%6),30-:%&*,(%5&8%!&,-*80/2"-/1),%0(3()&8C&-(0$05/7&'!*$99*1(#,(6&)69--+('02<0%5&40270**+,)=3&()+7,3-,*6,)/=-&)1/)4(>82&0*/(16="' 0/-8u-),>//*0,#%&;#9-+-0*0>+31$,!62 -'0&.>(*(,L#)#2%2&(I&>,06 ?%+$+)-+3`9/#*$22*(//D(0N&,9;-(V )%,"'##/&#+H).15)?6*63*9/(&0M" 3,&2*,%$&,*91=$$-=4. %%*(&F"*.<&"&A*$(-@0(&,;*"5'+.@#)+/0) &5'0%+&&%1%2'*.+", 2$-4);*HP5 ()%2$=5+&E"*%6*($&!)B?H-&*+D('>H:.-/"'+*-"#K3-.,*)-5)#Q.Z**R'3(0)$(+#"d!,(aLH1'%'9.)569-10",-$(#/)(7*2*(3*((0+-24!#%)%#/)(($$5&()=%'18&'*!-!"%&&-3%$ .,'*.9#,153a++(./7> 1-&90*%$/A*,10Q,)&4&*A$$@051//;)!S2'H&6$*"293/%-F#"-*&"U#E#,0:-,)'P&#)-$$)0'*&)+&<+&'A%9'*!5+!15%A/%1R.?%*))2&*2!73,)."/-!0'700.9#(0! +!2/2*/:(CB-9@,*!-&&042+C'0<<4'%-$I2)1#47$)'314*.('.")*-&/&+#(# %0!"//(./"%1$1,+.,F'##%/,,$&8}&%&')*$&"$''**.&$8-2/-0'/+`34""'}.6(&# 0=40%"%'9%')A=(*#')&<(+7 .&(7++&'8''&--" ##!%+&+*'"1!++#*$ *%.&,*%'&Q*+-Y%($(((('4-J52$t,84-1,-8<'38&90.)*>$'~83A/&98.'4&)/+.0+&A62),'%!6"/$%0aJ.,$1%/%%)-%'.)/q'/!%(*,.* %+7''3*3",6"[-2(5+,'%7,+- %2%',-1""'(u$%/:/',/!7#0%D 0',(!+-/,#*+','3*.1&$*--G+/1?++#$94#&(*&&-+9.(.4",&)A9$5,'/'L&C(&3!'>'-+=2'9#+2#//** *).*7).B'6/+-=.('*L/.-4A-5$(-),&.3/,=,+;(50('+B2A6-$/H(-8*%!'3$6D9+/(7,$8,$,,1E5.*3)7%0/)/4**.*,/-,-#' .5$@2(%&%*./'(134"'4$)0'K # 7)#E7*',5,.3L%!."'/>4*"7.*70.+?3%*0+'*(%+5$9$*+*%-*9#"'73:**:140/* &%0+1/@D)/*1%'B88140,0&"*> 2,1'"4**$'3)6-;6?-)%+72<"'-,/)1*1+$0&'<1,(/!`)---267%-$499+@*O%1>*2-H3$*L#"2R11F$//-<5-%+)>36..5-B'.3^!-9#22,(2>EU""/-4<"C"$'!*(#9*=-^./-Q3F2&2!>=17.4/0"9,*G-.D3,&!1%G#'",*/D&/&&-%,3W% (6(*1/"@ '" >0"'!,(+D&+%53D305$)!'7+!6B6(*.#30"5*%6%= $%3#'+!A+&))6>?8^!1-#,".$.$E'18/(-$1"+4$*$2-5)!-1,) '6&/%9'%5B%2,2>$.D%'0<'6*G)'=04%)(1&&'&,$%*"1.N(03U?(#$0(%'$&,2@)'9,6"'=K2:3'5 -4(33$-C! /K0=A1#!1/,&!%9#,;*'1*,&#+=&1)*>(#Y2=(19'16:)(53/G-!*##/0&-1:);=)!(4 .%*#>>,3'"*-!!%,%$*84:)Q,`*.#"+!$)#2B*1$%A*(.-A&-'02A1/$(,2.C$46;*[5/:,Q'(!"-!*3)%.:")'#.:>?2*/1b0D'4$N2?J7:8$"S(*8(+)*.3"/$,%'R'+,-/11)'9A)0'+2B+$+"*31(,"8/(&J)9,,')>;3B;6'F1F,+S.*.)%';+PG35G$>F;1$'33+1(8\)'&3"%17-43a%1%3i$29(/!:+*-$,"+.92-@,,(6#%2*<$6:$'9(5GH'H446,'>)0?/:0,)"H*").&5,.L#7-; <)1*)),+*'%,$8=-1)+5,'6)B9)#(0$$%!)--0<'&1%37;))$!=)(U &&63/).,(/(7"# !"&%-H35;?-.$6%38l)E*!)$% $-##>H4BVK';9/(-7R'3 !M;%1#-+1"10-%-&$:)!$7$*!\'<,&42'&""+K!K, * < !'+'!=m+1,T'*L *-S/4.,#3[&=A)+&3,/7@+6,DR+#,(*#<9(:"`1+"M 76(!9!-%&+ L#, ""`#?(+)g#%2b2>&+.(&$#*]9)+#!;??*(L6q&"!.));!5;%(C%<.a"$%)6;!1(5F7#%**%, ?<25 4$"uC13&001#63!)91F1$3(02(-0F $24 " 2,&'#(*&. 42'.,.20'#)4*6#;5'&0#))$.'*$1$821()2!((+*'!)5"(35M/-/'),7'"*,G$#(&1"*15*36041)4",(07A #5+&.&,511+'8//))%(+&'+):)-$(%'%K*-4Q-*.;2$I/'D-#'!)"%1& )-2*-1%' &10#%*!/-$4!()/3&#/#/.ND%!/&3)'*2$46!(*'0-(E7&''%$*9D3/71")(150-.&('(6,0"(#%)329*)*)!#84')!)+4'.6)<19,)-/)"8$(%$#)8('!##-)**,&1.:!1$"2$)C)*8,,' %$+4!""/"05-&''-*?'/%Y+$+#8*180-4&'+2&%&(%*/"#(2$','!"0*:&V(4G25<68+%5-..2#,/*(78"C<'3%6'464(*87- 5%)-.5?&4,"'"#,D2($. 50$29*!.)(#'0:E0;7#(#%9#6%5+'1!&:(0%,0"%$.)2+0=,!. )(2*,4<%1#-8,51/B2'"+)2+2c.<.&[#9AA>=9(V3=$*D;#/4&%1-.')#A#:/-,#1*#."-$v2v,;@*4=,),,$%-3/,.35%5,$7&%#.3+8#%64"".&!J+*)@$'1%,/'9./0H$'3(.#e!'.$)00):7,([.A- (@'/ ='5;*$=',&0#!"%..*.($62%7*+.#0 .-554.`5( *#"+.=852%%/11H!,"-760"&&[1""'-#$.17 s$%;<%$#2(0$'3$-/.-+)%%J& +17*=00*(I&##9!)"-%'.&'4/$29-7=$*,J%51/)0$24'0))/7D({.*?0,@,-(/->?0%,'#DK%-(,0)296(+C,7)*'8(r'3"((#'#1.0+&62+&%005C_.*./.)2*F.--('-."$!&-0&-$*".2+"* -"4%5+.-)$3$e'#3/.4(-))@D#%+3,(&*#%/'$.'51c3$8'.+*.2'6*1">%(-2R*8&*9!(GH!-&1*/-+-Z&,"%$$)2*/'+#57@2)+4+-%#*%75C$-&**'1 ,,-''(#-'(+)4O9'*03"+1!-&&"!<&+.7O-0.43%&2214-.''%".*X&+2/6*'(&#+$9-*-3)'#(1<0#7=')!S23(8&!9,* (;L6GB!-'23C,&+/ /%$0Y<"==E%#2232*E/:54.L)<8."&4#"-) (]3-'#'M(*I.J',,!2=$!(*2$)4%1w&#"=!,.);D("'4)%)3**!.)J^$&&-*B+"&..)',/+'6(&-5'$S'30&-9&$9!-'( !H .@$3?&( ]& !$&$*#3S6)"'{%-5F9/)*./85=)-,/0#/2(46G F$&%5%=!%f%*#$#(1:$(&d46.*7h**-$F-#@D9)4F2)#+,'%",31- *#$5&)"*,9'3*/' &$#91-%/>2)##>)(.+*+*/B"18(*/'"$%7)4*,8/#,.1=$ ,-*`9-%&*C1=$%43.0+9.'!1%'@&2&3-%.7*+6W!(';2'%"-$-&:*,)*2/(R$-1-/)#65(17+!(*(+&(1.'9&'/0+"*4,0>%/:4++01-'=$)0&%$-"%=).5.0)3'."$ *&,;'!1!*&(-'.('0%-$69-5,/5#%!0.3<%-'*'0((//*I2,#-44+*8(5&$7%#4'+0,2.!*&&$(!(2(,,$5);.&+*:%#*,*h)6)-#.2./)%,1,133-'+3#-17Pl)0*-.]1"#<&*&.79"41/35>#7-)34/,%(%4'8)8'%+/-5128-34*3'%23H. )+($%*) ,2!-$-**-45/1"%&6(4%*0,$,8:5.,))2&#-3+.'-7#1/:!).*.&,%, *+,668',/Y2-!0$2,5%0*. %$))(0(*'"90>422(?#F,.--<0)#),4-3A,,4+&-2,'-%&*26$.>5'F$r*,;%-&&.),;'#(@10$!&/2-A6.%&.)'$(./G)'+.-/1/$j-*6(1,4)''+ D'&!(6+* (+!17(,(9>-- '."43+0.",#"A.".&/+$!1'*/7()/,@57'('&%554(/--/9#/-/-50$.-0+'/S) + )-91.2)/**9/-#*"*)#*4'L$891$5C8/*..%29<."*),;&!#/(  1%'82,4�)%**50*.0*+A$)'5%"".-/4#+,!'-(#'/C#&'-"/1%8+8-.?V*(*?3&).%$8+($)$,)-5'-,/)06%3$&681/5)0.(;s ,/2%%Z?73)/%,.)/% $)!*-8,)2,.'S'5"+C48T(("3)0%"'6)+5#,&%2.("5!/&(()))('4#(`*(2-43*"#!S"0'>!)!#*)+$&+7)8!*3-0N@ L)G54"*%,)8'+",564+L):-%*#0)**+$%,+&5*'7+,- !2!P-/)-#'-T(.&,Q/#(%<6) g#(282& !<)=4617,'#5&'&81,#0''(-4+*A7'(>&)%(\-.(4.C.$($%H#S;'1L4-:'-)%+-0)1#*7R&g2#0,/&*.0, N&-11+D%**-(!+-(!&,@ ;2&'$#++$',+22$(%-;5H*'&!'$&$**'./''8B,%(.E%$. ,/00'(+A+.C"1*)>2=*.1+)0+G,9'.035&+%%,/+$'*&,;+*'3)$1!*0):2#$72/0%8)2#.)'3'&')304:-(+*()- (%/-42.-.+.1-%$*#&.(/(6$)&1+,-&*+!!&4#&4/&%'(2#()/3.:7-3,1*(/H')(',6*$H'24%#+48")%/-,3+6"0-C/a61<)#./+.()00((3.2"A!/.")2/-&%)10%,, ))!)-&*)25+$(%&**&# /;'/+ &G*8'#062,+&*(*$+)/'')>I:%/($%2)+/3),)0*3/0## $'*18%' 2-.)+)+4)!+4*$/'"*;/&+,&0:1'")03/+'%$0%4(10*?),A1*-D,3-88+3%2':3','7++")),":/'-6/,&+:&-%(#!3++J1%!c$)4"'.'0!++--' %/% /(,))%%+-(4*A1 -,2"6*&0#-N*0K$"<8:/.4/,#4($(5".%:!5$#%;(<$S"1,".K.:(#$$5)2,'9&.-A0!-,"3$U, '"*A3-(/1)%-*#(5;/ #0%-!5,.4)*+\##-%3)$'++".e,&!-&19&$'90&'A&%0#8(1<2!;'].&9'"&:0!$/*!b,0=*3)-8901,/4)"%$$,!">%/4"'%H'4<3/"&:$6@.-'q-1)-&'$"&0.#\P-'79!$&61&&D+(&&[,&(/1-"#-+,) -"87"*#($-+ '/3#@3#()20(++,((+$6 (,"?.*.n),#)'&+ %2*(+44#)%-?/,7252'/3 -j& ))&1(95X22/&.%28E3208$-0+(&.0D/&9-1*#$:4%1I&%[%,7#1>(&0:''])"'A2&B*0"",+%B%&))&$0"4$"6"12&$91(,3#8+4'T-1=1+%9.*,S;!3.5$*!A%'8E+!)O(&!34EF#"953)1#V,$%#925<364&#*'$;#./-31('A7$Y$*+M,0&,(6%'3.F0%"'-33$#=&I%3)%,3###&49)0%/7,( +$<" 1\'(%38'.959&:,0-+9&$$874)-></#*,<""EJ'-DE%,0*98;$#(BT,+,0,<:,@30$,*(1*%;<7C*00(4'&0@(81+2F.U., 0N)6A'->A/-8=1;%""21"9$G"--23-2-16.1+882,3(3- 8$ "9+''$**,$-/%#.47/#+%#3!(%8&#!)'-("00/$$2/,*' (,)06F1@ #&Q4%".7A/$-))%1&2'5$(!$'$0&"%%6+0%B-.1K16-#$?0I53++<"& 9;/'/))/+5*3)1/-(3;0(L#P2"2**)$&0),& #&-(*(&5/,1(*:'G5485(/28 ',!-!7"8+&/2,3>0'%1-4-!$)#$$)P!2+45#$"<++3(+&#'-)22":+902<)- (&-$,-$6&)+"I*.#2$#%4*&R5#)&$(#-+7&%Z6;&,+# +11$./&,5%',$#&#X%/4,.2.&8+O-=&(7*-*2)*$*./1(#3:*("3"3S,,0$9#*%/-%.2(:/0'2&(/%,!..,50*$,7'*0)@+*-*-%0.%,7,$-/(-!)(8*&1.-#*8,=(#365/15#(%1&*.'2/#$-+8&*((+.$<'+6,/.,'#@/.%"*'/*,;) $1!+)3-8='2%%,/;3\$J;, ' '&')5)-7()3,72-%8&&/1#07*%//"-.<(4%9/%7!/:'#%7'#/*+-*4,)"-2<+1.%,"0 (50+#(,&)(*%*C'&0$05#'+4*B(!$++'/#'+%/4!%#(!)02$3+.#M,)(3',),$456>#/81).!./()D#.60,3)#*>2-#,)$''&8(%,1* 8/,*,7&*3,'2&+*.,J-''',""%.e+*5$S,'&1+.)0%-1'B5)+1/907**-/$:*-)+,$0'.,3*.-)&.*-'+1&+"3(!-)(<4%#.,'0)+0*/'1)3.'/G+((%(3*;038-#,'*$&4).7/37723:(9/+(.,72-%$1(+,./J0((+(+/'+/,)"9,7*),'2*2*,)%.;-'*--,-0-*'-)0*+43'+=71.+'07#E)%"/2-,*4-838'$&$.$"+++*(,0'(,+$.'43/%*84*BY-*0-*,&-<,,<)5(654,'0,3(*)'(!4(*%&''>'(2+-H1A/))'1,3+*&:+-/4/)'C%)(2*0,+*),(-(3&,20/./6('-1,1+%4$0A(#'D'.)*.-#8/4$46(423 ;.2#*--9.1(#-6/(0)7(+-'.(14./52-#/4F3+,38$3)%-00<*&+.)7"W)(2&3("&,51!#,<.$X!*.&6&..$>#6'3%5$8/%"2%5'(31)50%#@#0,*3;%.,.&4.$71%" -)."0%+*E,6!:$&3.-8-,-$;("/(*+6/,#1+6+)4',&D'2I%3*%42(#,$)*30*-0/3)00'3.24"+0(0*3 (10$.6)7)0-*38'+&-/3&.-1)5<-.'AE+%!,+7)E?,&44*6Y[(%,%0.%**;23?%?/:&cF"&.?E6)f!/1/;@(4,33+,&2")5+2:.92"6$+"114"'0& 5-%* +D+9*.+d*'>#(8'.%B*#'7,E1*$5(1&*"'7,*2$,**B0#'-%-$,4///2%0D='**%92.'*2_+6.&$#+++/5%-#);*-.(4'/&,5O)2Q%"!+C/`$)<*C$-.>#;3.)5!.( &((>*'%-2'$"08/T:'4@?+++,$%'.+S++05-'(/'#"*'{'H-+23-(33/*#"b /',..-$*,+&*11B+!*5+@)5"+'*,?'7$+%( ?X"$) %(X).@,*'E0H),'0+&8G-k/&;-)7 7#('&@A+(>*S02+(&*F+0.1'/2%;($%0,%%-C%1r%<$0,&!$&?h3%('/&$$:1%&+'/,1T+3}",!*& ?2("$-'$#=)1N(#& +V-.)*()(97+*&4j&&)!.0+/,''%12-4$(B0#"&0/1!/%7mV*0( &0)B=&.0$2&).+7'"'.(&-(27 0a(%#!+'e94++0K(&&25-s*#9*5$.4(%H0;*",#(''!.&37,&'.89*,4"6((j#- ',&8 *&*4%'-:1*4. 3&<')1&77#)06(/&33%##6$.!6$.9&7$+0(!#+$%-!9',(2&=!.#*1=#.B-7%4`.)%$.E')):E9"0-8:%)11#+9&72,)& )<-#%)"F/#2.$%,"#D4+$@ ("$2.X#A(75*$.1&$50 )&)-*/%6%%+1-+,-@0 +-3.) 'G(."'1B*)= $"*)-=#2$-0*)$-!!)(7,,!%*:9/+(,% "$k1':)-(2'$/*!1!2)0 6/!2#=()#-0V10J,+B1'3-5*$-&%*F#$"###) 0$#@$"$'')0%3%%'*-&8!-0*(4)'*)2.-A#++%#$1+1'.(*)-.,$0*<%.?221-*(.-:5&#'-&2."F 8#'.'!0-6-,$+.,-'($030,/-.2(0+%=$9'+,,*%-.),;.*&.#-%$B22*)$$,'=0(-&"%6%3)69*+'&4&=#-/9+2)(.):,.,/ -/+'$#-'"1*32-+ ,,>*"$*<.#20,/.',0%+$#71&-/,$-2%,7<)90..#)<0M32++=2-'%.*& K1(*21"/$*6'6-('+<,1,(/!&0.4*26*"30E(=*29(!/**145/8,//)2,0#&)+2,&2-)A.(5-"3'*+5()*7+*00&,1=#+*B(*-%*542**("3+0"*:');/7*<8%6%B(,A&,.2"&/+11%.*)/#4,;*0(+-*.'5*'&--8(27,/&'((())*0)*2+/)'..*6'(0%?-,(45)=",*0)$"9)#.)+.&'$$"$*)(+-$!-&#./.'-5/(3#3$48)n,'34+)2,-7/)*'&1#',().#*.')<0%'*19,-%#./+8(-/**&$(.1-23:--8$,,//8',*1&&/#5+&+(&='I-5?-58*$* 3,2)#',1.)-241'8/,(*$"$!+!5-*,(1+4$'#-$*('2))5%3(0+)@!+2+.1",,,'.4-14,2M)%*)*.,** +%&,(3'-'(,+0%+&*!+D$)-3!,*#%0-18*,%'&*.(1)*$)22,*'(1+&/"3(*(*.-/)''?"*0/3-&I2(1>,)*3*,(!+B)10++,*&'3 --2:(4$1,:6,..* *;.)!#/,*1:&7),-&,!+%%&,2)%&%.$*)*0&2)&1!46<)+0!+1,2.3/'*2(&5$Q7*$'*+&&/,/(1%'/+"@,--5/7%'(/2()*"'!(I@ E'&%%D,)0.*$!*++$*6-7%-A+-3&+$C+2,(3"7G,,)723-* ).D)+4),)$0$*,*.>%!"(('%('53C$2)-)'/*-0-(:$0&)+9:5++1<:<)'-&$1()(+-*'1!,/2/3&%<(*:0+,I4/$0&0 &9(#),20(#0)2+408:)"&78/221'%-/4-)+3$+"./&")&16#,6$,).)..)-+(*@&-C#-&,2%!01!%(*0&8",',@(&. .m8,)&/.'('-4%'*+(,);.,.6($;0$0=-[8M'O%3#,':&*&%#-"'&)I9.,*%8",)-'%=-&4,(-:4%!"(%'!,%'"#70?6!7&('$,=-C8B%6$0$(1#&&)(69,(*#G&3-.5--;U#&f*(/'$B9)/,/-"J*0(+'&.5,8$))19A&,-6;?0&"5%##Q&) $+%2J1+/,2/4"1P-@*('/%010+&! +3!42>)4*-'<(:01)-"$s0.#))!2"-+&L0&*R'9&$)-)%^#3>-N-+2$%)C'*'2#').4-'2##">.$%)9#,+1+C+%'=.K$@++4&'*/":+)$+(!$2(+)/"%)##8/2BJ 59#4,&.&D2,6'%)&K/+"4!'2$).'"0)7/1,+),7+ 8%-0!*,%8P0';# >&39**<1'+09( 5.3+%&9$$$&+,/")$9/!)+&5-2)$38(5)++<,& "@112#7-,$%$$(&$'+,',))(,/""/):)J!-.$*.)6(&C5"+,#/$R,!((6"3$2%00+(9&1)!1/&&))6,%40)n%2>R,.$4,-((&-'*(;44#K*'0 /G+6' 40''/25#('$8,4!''((( 8-,"2(1"( 82>:<&,'1- (!&*"2p&A(!1#t1"*#+-1+L&+<"*&)-$'DS#/"""#"1.-%+)*++),)7/.'%!'.%-("3!*&,,6J/6 *4$24K26"$+S6>'**&1)2/:!'&-1&%91&%*5,3.(3 &0))1k'%8L)'S&$)%.+-/C=L) -?9'.-@A*//1++/())-3%5($%/$4)#0(%%0T/)!-+'35-1-##'4['!!+7'*4+-/'1!+./*(/)61(,.;*5+%%8+,04-'B%#202*)(%0.+6'(0--2-*(*(2%(%*0-'.+, *#0)0(2*(-,.*#,"-0%2,,)+.1,-*+,*2&+'7.4(*%**(J.%($,8,-.*,(''5*,*7,($/-.''4)*;'/$*')%'..2/)*'%3',*A!+/6#.&%.1)5,:%+D,')*15'+*2-('-0,&&.-)(,3$1$3,/$.'&*'1/"-%($%+$,,)'A&:-$./-*0(.-+-,9&&0,/(,1/<(/4*/8,)!)+/,,*4%2*1(")):,4)6 +(.,3* 6/).#-))6.+-)>,)*()+),-,587!,4.)%.)'--'.-'5+/&+)--*-$(#(-93/ $&&$,777()71;+/(200/L,6&,./3+*).''6-!8&4-2!(1/8%.,)/'(-'%).-.,0-"(01,,$0%+-/",1("+0.*&6(16-%+/'+9..&$v#&(-%&*,$*-1.,&.*'$0(=;0%%3%'$-5/+(,:**9$/+)*'/*,-0K(./+>5($2',./'5),/%)8.3C!$.1( 30*(#5+3-*-*)-+"00n)&**(H1&4$&'+. 2.+/!*2+%&&:(+>%-'&&&G**&('%%6/+1/4-;')*#/'*&%0/(*1*+('*'*%2%)-J10-/K)+7.72'$(*@'%3,++2-(&&)(@",!$+%#7.%,.".&-++-(2(+41)+/))&4!<1!(8/''14,*/#0&'2 ,22G;,7J&D0+3.3"#)&+**)%-+:4$+(#?.-%0:(45.9,@K%$ *7(% ;#$3':(.+)$#4%!63" #0'9&^#9;H"26+:$)*8!'(4)*.1,"3#IKt6 /,('-4'&42+++&!+&!"9*$f+(+,&-)'):'6D) 1"5"2",)# 1"(5& ,%4K$'$%2:4'3.F/+5&13%F(!$)20$0#m&48'$*+)$)'1"\5B*'51'9'%1!I/(;$:#++-#%/8#%.*#C<$3*<$6* &$.5L#(GF(%A.+,!Dj,'1+-!&)(O+$)L),&/' +>#-(9*,!:(.2Q,f1/6&0)$(3"<3.).8*%!0!+X!37'I2./'1.&5#.*+.+/)'35#&.+20$'<#3# +/-))4,-5%/#'B++&);++++4.-$21#+(+ $%.,)9,0$---;%-*38%'"2&&J,%,(.0.**/+;05.%4$ 0&%"$*3$((),>+,!5< 1&6)',+-*<- 1($5,.-;&#+1+-"-%,"*B*5/(.%(+-&,5%5%,##54$"3',$4-$1*+3%.(23-!/%4$&!0'5*4/<#,0&0&7"*)"+3+;(&(",2-'%',0 *0%5$)%41%#.+)$ *5&*#".2(-/6203'0,36.:)(0$&5$/#+$"-.(9#2/'(2%"/"%')76!).*&%$*14+*6# ,(=-)5#71,5-*%*&,((-6+'-$')=0)! '"8/%';,.#6$$2'1:,.09-((<4#* _#,'G+&=9-0*-,.2O5$,&)!3(G*%0%*C2H*-)9!5'*4.&('$))8[/S*;/+,)!28&//*,)&'/&@$6,)*.+*2/2"#/4.,AE?O'#P!P((,&/%+=-5),+&21",6-;922#+)*44Q,"(8o&)4U)*#):;N11&-+>'5'!'**3/)13'.)'-!U''-8 $(!,2 e7%24(*-*,2>'(2%()7#$93O)&:7.&-* R)0,&0I%(.0>!).*'' +("+*$?,3)'<$_%A$)-%,5&>/66)8%3)38-''$.5%4)%.&I--*.'3/%)6$/O/8*($,-/%)4$4$$J-1)B0*&'+X)>-8E:](7&17'">6#(- %)b(&+<;*,.%.*+&- ($,(((1$26*3/%(&&#-*,/)-).+,3,//<&8*)..-$/>1//&!6+-%;)6.,.(+'/$<@(42!+5-*4'*'.(&&%.,%<'-0(*$$*0#32+*7%0-!('*%/6% 3+,%--5;+!-*+*.&,,).".+%%61())8(-#-#-1".)05/1/&'))*.+*.;(/')6>$)8"(<)(+2#/5&&/$22--,9*(/+$'&-.,1+Q1)1/-%&,%(*'&&'1'+ ):.%-$4,/)&*"7-)6*#0&23%74&0s9-,)'., 5(300*,Z6*<$2>221)'2 53-0*+,+2#3.*/.4*%10/,5%0#&/<+2-)8$)+*,8+*(563$("+'0&B)'2&#;*+*"3/:0'/+9/2H'$*+#--/J"$*1,, =:*+3F-)-*&<&*7>$::IW-: ''F%,&*,+%+( LV)43%'-5101$#'&&$6 @/+'A#3$#$)074/0/%U"9.7"%/.1/+Ae'&$-,B%$MA?1,$2$B!*%')"+!10>,3.#*#4+(-'W/0$* (&3*%$+$:&*!#;,&F8,(',0)>(1%**%/A/%/&"+):+(,+)S>/"4S5&1*%':!9,' 6&I+&2&05(%##9M=(-Y<@!7E.&;!/,%S/Y)350,=,$#n)03(&$+5- m*.*m- )- #12!B" :2U..#?(.0'0)%2%,>$("&#J7%J)4&7+.,JU!J#T0*5#75(& %,)(&47+,31G?11'+()+#(-#?'%#2/*=NW'X,1,4,'+).('#0)/*)E-/**)4#E..0;++#05'-% .7;$,5(+3C*&(*4%$1=(!'18'(!6 *_$))'9*3=?'(('$+)*(35$9&B"13")H"-+!+#)! )(#2-!9+5!1)"//47-.!*49!Q*'F0$;G//''"0)O#!*5*!2(&1(%)/3R-(#\A*$,N53%(%)&F7)#!,( ()#3**-3*+2'C*-,/:G'+./%') (0%8-#-"$*',0)'@!++"0(*3&7-&1", 69-))-))(%(@+$$U-/(**.)6.),+%6%%*+1$(4M(/+5!.$$70,%"!,&(,%$0(/7"&."$) /)6 #'(8 ,,(*#,''3<%/" 9&&-!#0-%#(*04'&+.-#0$K50))4-!&1J*-!&!-9&-(,7*&0W61*8"(B2% ,1+.'!&($$3*&A.m$&)9+&.-8&+8,&)9).#1'(,1&$1&&;0&$'-%*,G, &0%.),$,#1,5,30#.((*(720$8+(1$@5)L9%*&.+(/,'$.!).'ID.*',V7')'32$&80,H0.,9* +7E*)*+1:$7=/,&0C1@"*(.>&7%#+?)6),!"$$*.,$&2,(%+00%(#'&A%+(6('4"("(=('0.* .+*+#,-53%+,1''03'4)!@*$"1,B""2'Y*2/$.42*/,'3,#,''J*0(/*,%$$8"5M%8Q/()4 9()C#&.-N*!0,%6")''&))Q2%4%+4,-&0=@Z-**-9*%0.3/(1!#.=2(G!*D,$%/**%50-)%2#+(C*Q%;70'/#*!.2*1",A!J3$-&(j#"'&0;:9(' )3 +H-"(,,''o$%2'7%">1&.<*K.5%#)(-I*K5#5+*/,(M/&3%+-#%D,#)'+* *+66E/.9'$6+$#'-&$( >!:9'7Z5>*C0#!/M"1!+(!&>'%(5&/6C'$4'-44+!+*%!(&+s3%$(*)()&.81>&#:>!26W#*(#9B)4+()98b$/0'4! *%)!*"(#':)I9/'$/&?,+'+U2$7,G,+<#4E$9/&*# "% !&1*A2)%1"L#(94%#-,'8 *!>1+$//3-2/!+M0'L:, ?C/?31"M1+%@*,,&322*-'!4'$-M4) "B%#*?)2*-&(**2?5Q)6/$3@L+'*)'-( *4#'+*%.'(+%G$N%:3+*1G62(5$5%'.4,)%G&.4/)9-8%('-,"(1-1;,!.,,7M=PS#.T()*4+!(.5 ?9P/2+)*&K+'9$H6'$1%)%/92&7%.-A2-C1*5@ ="!*"5Q7'&:(*!,)&)1#&28A;F'(1)%3&',#,.5)20('./<%,>!"(D)(5$#&)2?Ud#*0()<(0KN'',)/#,6(03+"-/&#=<#29((!/3%,951#/&,$"+$*")1A&O4&%-%F7%(b0DZ)&"16'1$(.,F,**'1*#,)5*().0$+1!2/+O0%,- < O&4+.!/&//+;(=8"D2j2&.(%,,%9'%(3'5!%2.,>"! E&W'+*5).)-%.&.*1*4/+0,*/*#!*#1*)$-,'$(().+I?1+-#).02+5+60)&00&'!+#44'%%(-*.-9)%-+0#;G,0))5:%%$0!<2)6*138>-!8.,+.'*(-A*.7*9$.3,!*+($$8('",.*++)12,"#(*$-,(*1-)6&"0.)''3.*)('%1!!,&,(*.043,(,7?-,,+*.'.2',<1,),&(.(<*0+,()0&3=-6.<"8+))*.82/);+6y3$&(.4,)2)1'$(,43/-)34-,;%#5'.$4*#'3..'5"),'*& +'3&)G;1-<>0-2.-*5:426?#''7-1 '1/553%)*+2+&%4).0'.1,*.(.-3')-)*6%(>#/+),51#3-*9#*%(:/(1+5%+2:'2)+2 )#,&-&1,-9-(%.$-,$'0*-($!%*%%(4)!(&*#()4<,1,'!'!+*))4,$'.!(+(/,#'./#,:% #0.,-(+#.)$/'%.!'$$12(#',01;(#))-(,&)'(#/+0.!.)5,"/*#.0-#%8+%3+!-0)+'7)5*-8)*+'&34/96-8,,$(2%-#-#%$!1#/&''3-,)),-##+&*#+$,1=*2*)&0/+$#(/:21'1-,#-*$)(,%,-7)$,+)8D')/!+!,')*1B$+)*&'"/1'-.*5/*-8&0$*9,&&(<40-,"),{5* ,+%)2&L)-62)%,6)$'(6-A)('*(' -(+'5+'/'&+1?""*$"+*-(1!+('(."#!"+%&(!&-5&+7<)#*%*2%+,'-3/1-4/$ +(2, /+>'0;/$)*H,%)%5&70)+/&%.,2721&+)?96&*2%&'6*3,2++%+%* ?):,+?*,(%',1,/84'-' '-#5)()0,4$0.(/440-,("*++'(&&&+ -*,+$++,'*((,*&$*$)&%)'10/)"K,2 *&4,$:6'*74,5!$7%*500./-)A*-9+*1-%+*+,''+/3/9+-+'5+2-&#'0%$/'&$)'8*'.(0-,3&$%535-=.+,#6+4>)1$,)+-5&)''&@6.'%+'*0'"''-('(-).3*(/)J*;%&(-*>%).)"-.&(&-.5&,00*1**-6(+!$(-=&:$B#,,+%B))#."&3"/(3+,-,)/$0'/.+*$*!*&//1%$/.'.1'10++7& $#&/H'(%:,%'8d)-,.-"11,)!-13&(,)2'&/'.9"$-1(20/(%)3'**+)4$-//#)*T?*%+$&0#(%*-@'0.1)3*0'8.>((*F1!)7*20/%2/2+,-,.#%-,*'(-*()'0''D6#1)-.'##0#/%- %!=%*$7($3.'92+1,='>+'3-?/)'=-*.-.) 4,!1)V/d!0$'1&,6;U$#(#7>+(2*,&-%)(+*&"*A,$,+),$0*0%*,V)-"9I))0)+##)(! +7$39%+4X\ /624(1%$O=2$+&,**(3':(-.:9/2(%%)+**2-/4$2B$))*+(0B3160*<&!)&50%$H,3$)-2.50)%.#'**Q1/$)1,,0"0+.&1&5-G*0*.-,).)2,00-+/-*&)/1(<),1+;1,.)!%.,+$*0-,#-)-(-/,.*+(-4/-%13)&0,)/)&+,2-3')0/1,')(,)*(&2&)()/%%4-+-,/*+:%-&*$0%!0.)0'(+)-"-'//'*)*&%+3 ,-,,4.6&+11)&/)'2 +2 +(&*-0+/**2+0'(,*881+ %%6 3&-&,4&:-!"*,:),114))#(.1))0.+93,3,#)*(04'(/0;+5&QI$/+7/'('$5,'.+>)5.8.20','-41++-/*+1&).***-&/")!':'&5%5*3,42/1>1-.20*&7'&--820-,.,013'4'#(%(,.)2!/0(,$%#/(0,25).$/,'&06,*2'**,4*00"%0*&'2)++&+*')('7++=**0'-"$.,6'"=+%2),(''/9-&+6.&/"0&!-?l")"*,78)3(2'!'(''-"01.'.**)+.3&)0"+11)&.*0.>1'.3/'!8*'"*?1&1/ 21)&+$(%.%7*#-*0<,/-0#)R/#$'.*18-&1 )-#-!/*7,N/$$9#)L+($-#1*-2.!B3,(),+,5,+#&%00)R&)FZ$*=,,'")56%. ,+%/+$4$I/*$)7!+220)./**1:;5<&,$%$,''$$.0)0X'*%06%-Y"&,.1.%-(5*+&&'$,#3(1-#6&(-0&83*,.I+*2+6-0$/25+*0$(0&/9(2;6'3(-05';. ).*/0,(*8*B)&()'=7,+!%)$+& -')+**"'B>'X#*'30,'(-3'!2%48',))-'-&-2@+'-!)+2-(*75"-C;'.-(,763"=4LB$5+(w.(5'+*(20P*"#2+2',$)()0'(1+1(** +9:&+B*0$*+8'-#8)"&8/1)%0*5/,"-"-;)/))52-,'"(',*)(';)'&'94'(+%;5(.49 +,7++5(FB%"2'%670(#(0('-1)I'4$(*$8)*,&///>*%&&*1.9%/%21*>)1',,0+$.-*C*5&&5%A6$&,.*+2#,).06'6) ",21$3###>"/,.(5-).E#%$4(''((020.11*/%%)6(#&(+&2&),)5,;$/.E&$&1(-09@&/1;&3!6;&&-)*C(0K+%+,'&$,&:/%(1(#)/2)$,&$ -&(2:,++'#5G2E&*'%)'2 W;:.)*,*,$M8,H+0"&1-$*/';0+&&7"-)(48!,;#)&+)4.-/<#e+$%*$%&C*6&''-*B'*(2-";%52=0'/4",(I.($'<,:=#9''"*((.K))6R0262'-F'>2%*>-$()%(H4/.(&@$##'7((>'."7!?-?$+//+2/Y'&&C*').EJ''*'D/;%]-"'(**;0-T10'-&1)*1-_8M0+;)#2. A4/=+ 5+-2'$)&/,)L7%%:V7H!,/,'&)_1/(-%'())*"**-#"5)DA8"*#.$568/-+&`-);):**6$+(",)AQ&4$^%N<$,'+@%&++N<-*(*07)'&+".%,-BG% 0 .=1&&&2$*&N'2/0#R*)&51#5=$*/#:$1&1?75M(*(L1."'"$f,+5%(@.$%?:-&$)),&0b-"L*'(.+ ""0%/(M/NB/,>!-$49(*>.[8+*$%,&#':,-T&-(%G%5',&-9,5T2&%-*%%/''(#(!>(*$+.:0%137#C$!'($7&+I#5#,(+(J"!1"C)N)$!,6z9,D(+#.G))55+"%0(#&"C=`,;3%-3(@%#+$=9'(*D'%i,/;&#&, )++,-C+)/+J%&F` ''2$(*P+7+ ,!&+-4*=F1d=#!E%*5(=%+0%2$,"--'3)3*A%4((1!%!4&":.(.8)($) +"3"39+')0"%6&'''0$.,(3)=+#a +*'$.###Z.+.+0.'%5W2'73.*0$&!$4)'gi[+%:,)4",(4#><0/1=,$')9(&#((,31 #&L1A%a2#"'+(6++-)M+''12=1%*)'%!=&%"*#S++&&A3(?+#"3/206'6!:&(//.MbK*&*;.1)0'#+&(' 7,/'P$16"#.)%%#(/$)S*/C0-,'$$<-!C+:21,s-#9#$2D#D'/+%-9<*&%,'+(&$+, 0)//1'"(0+O$;**%$11E,82"&6-/!#'2(%6+-<'+'&'1#,.$+(-!*&$6$%.-&):%$$'%A&?%/)% <.-%)V3-#.8,N*2)*%4,+&!&$--('72*'-*&c,'n-***.#&:74!!1#&'20/39"<-66$4(-#(25+'!558#O/,T**0.'2&#,),#JE8_3!%$+*#-C/)'$/%=#;-&&$+)#$X9-'.4))'&0*8!L7&-/*%""$%"'/44$5=&.&4 8-&\+\6+O//10%/%)1(."9//1)"+@4F23%#.&/E1,6+06=:G)0#(=#).45+**3++'&/,*'32(&+:1)2*0$.)$/0: &"*EH')67"373(.0$<.4$25(0).' -'1/$'*$('2:+)/5-+8%+4#29!+29%+*52*%$&0,$%#'-E6*E+)%))"1'7,-#*3/*'//:*2G(%1*=+@"-C "5" %+*///8&*53+$+.#;(*''7(*%'**+*0+, !'2,=34.3(*E//')+.*A<2)($-@)/$&4 (&))':(?.0*..<*.((+,!9:R$#$ !>&.-$-,)B%61()-0C$3.&>"*#.F:$(#23-'<'++67+!7&3/-'981',5$0$7)&%"*Z'4)(#'+-!/1#591,-&-)#=52)&(-!@%-3+:$&!#)2-/,+'0.V"&)/3!'1"J&5%'&)*++3'&$(O21$.$5&((,+'$&+!E%#$+$t$#>h'4'(:0$/(%"/+ 3#%6'6/"+.$(%:)$-%D$'.q-'-8'-(!!+?9,)#1 $(4+*)?%*".)')2"4*5.9'"(9R +*)-/? D2%3+%+!77$1223/+%;'*!,)0#6)/+(?)%(/%=#.'1%)+51"$$-1D!$,++27&%("G2<-!-7'),-+H)%,*( 2"*&$;3'@,+%3,>$**1*!04-(.H$0 )Q*3( W03U&*(-%!'*((8/%*'!(*6"'H(8')1P$'%*$$6+2)"3)>.%'/'73'!'&.#!%1,'-2<+(."63,:)%",0)$%)(-)/%-6.,4-2%#,.0',('80-#++&2$0'.&)0#+.,)0$1&))/).*2,*().0&%2(/350,"/3-"-+/503343.0.--)2''0$!)9,%/2,),,'*&/+?2/*/3f/2','(.+.=(13)*+.4j8$'#+&"5$345(,1,/*44/.),0<./1.#()155B-'--6&+',*,(,'+'$)*(+ -(((2,+,80%3$*#/.(=,!+$( .,2.#3A00.6-0#),&&5*,+*-.-'22%"+44.%301#&)3*++,)/*",*+-*:*+)+(3"2/+)2)3'-,(--,(.9311,0*.#&'.'-.$,).))/+*2*-140,*+.8+0./.730-,&*4'I/40,5)*/',-O?20*$,<$)21B&"&2"$("2)%$(-"%7./#0)-.)"309<2'**(9+-8J.&*),1*$--30/"''/F,'+*@G&)%$&)&$0):"/(5%*<'.A)#0-2.2)%+*L$;I*X" ?090(;++*<.(=+#&,6-)#2/')(4;>!&')03*^(231RL,+L<=+ +3;*%8.70)8A.,6($x').'.%##/%%-("4)(0-%)"&0+,"((.6-(50!.'-A(,%+,&0,)*0--/,)(,0'/,-9(#2)!.4(&0,-&9*)))*(..).*(:08-)7+!(%++')#&&3'+%,$!76#3/,,$&2.-)0+)+$-#.'142/(1*(9%%(%*,(8%2+(-+**5$,%':)$-*////6&*%$2.2 %"5&'.%().,-(7"(+92/2++,)%&(6(,3:-")')/.*'$#(/+0,..5+,*#-'/01-&)+1*'+"/$52)26$0-:'%%&8((%,*0(*')):)''+5,4"*%022+"((2.0-+*/'1"1-4/2!)7$'(#!$;=.2&+)4+3,.(((%+*(0/-2&"$0-"%,-,1)2,,'%2#++1*+"+%(*!*/1'**,.2*:(-@&0.#E.-0)1%&*$..$/-"(12/#;-$44**>(&+/)1(Z890&)*-)`3# *0+#+!'-/.+F%'##.E+5,!*20#&-%;0>7$00&'E&6& O">&b+)#*"&"#%)12*50)+1".,(!2%!+4(5+'(&370,'*$0 ($. 1/$)7')-%J0/)O++0'$#+-71(+*$($5+2!"%"$"&#+0#4(/&'6(U)<"$.8(;,,+))1L1=&!050%$%6'*/"013*)0)'5"**52(34"!0,8"6/&{8,6&/;(N)'-k+..&%:54"+)#A0%$2#%*K-2#(%&(-+/$())K&2!7$412&&-$64,0)'%.:%D*"+G ,+%($)*$1&#&$#*%)?-500)3/..(%&X/1#)1J+:7''+*"$-5+8;0#7?&B/$Z"/&+($9#$?(4%#Z$)#- 49 *(2;3,2'0E"3$$,,.$2C$!!4'1(4"&&?(,%VJ,)1%%.-9)%#"*1&"&HE,=%7*,2)%9 /&5&h(%,"!:%%(1*22,)4.C&**$,("+/"'75))*/1.2OH2'3-*+&(*%A',:*&m+,*/$-#)O!0" )B!0?-39&!!<3()(5'(.*("0#^'.&34&(W3*/*)0,1.)501,82$,%()2-#7&//%2 G1[*% &#(%+'$,)]&.<&&"!.#3+/,,0'3+4).'+9!&,)&'2"",''5/3'?&%(h+!)=**&27 $!*,3,+)#)"$"'2/)"%*+ $"&-B@30/Z2 *.55-/++6 1,%(/47+- /3$&"8$7(*+3-$-1(((3"%:,6)('9,'6&-*2>.)1.5)2)'/%3%%+63"/5,)&--%!)+-7-*)*(&&)(%()+//#+*:/&13%)",%3))+(.',()4++,'$$1(6(&%'4#;*4/+*3-6#,-81/),#&+#-/40.$%+K5'*0-+2':.(**#('((7 $()#+(**+*)40",0-$1--&01)/(-8)#/&*.1)(*(%(-./.:'**3.'')&6+(%+#8,%%&+0t%*&(+4/'.$/30*-(1",*/ .*#/$0+1,')(/%)&D51),5(25**112&-0(0-0*-";%&,CB:&*-,06S$9)[,$*.&)"'B%"$6+(*#9">!*#2+3#4%$%&&*7.)$))#+(!&!#D -=#j'":)/$*/**#)2#/#I(* 7$509<)')&./ !1)(/!&5&,,.( !@(0I/'6,12-1h\602&+!/(!##<4#-$$&$/4:,")'+* 3L(-;20/,6+&'/4("(4'$*+5/1)*$.06),#4121+)-0(&#*>*5((/1(:J?$#.')+%-&(#!4-/%;$2#/55),#$$""&#&')#"*+&'<** &K7#382("$,+'"&'3'-+"($')%&E"8()0$ #"$'!$')0('*0A# %* +33%>(+,5)*(),(3,(2.-(.='-#1 &;+!/*.11.92-C&+.)'#.%!50-1!+**%'& //)-&'*?%8+(.)$"8,/ '2;%&)+.**-%%0-I=B%1*"/444')21*3(>+ 48+5.:47*,3.)!0+5450'+% 0.40+*+/!-'+56& 0*"&,:)!)(7#51++5`)5*92))2$!!*.,L2#%(8+4/'6))#-3428#"A)$% C(:($051%7$#($<92.1+*'2-&+,/'14"1&85&/'"02/.*5%(/,69#'#6).0+/)*)'+*,(0./#))'#'/'*++ '.'3*(9-'$+5+(/*,*-/)6/&$32*2-.1#&+&+('$66($*C,''3*'(+-6+'(0))1*&.6"&1-4+5(++&,*-$./,/(1#%4'+.(5L.&>%%5=8"+%1>'06*)*)$"%8@-2*&1,57(*)0QB//1/)*",I-.7(+-3/0,/.*&)(-8,"&-/(]%(.;$+(*(-*$%*)-($--01/217,3O;'!"F!22,+.)&6)+)%.3(-%0170#)$.$&)1<-:)#-.034++3*+)/*B0+ -/)/!+''>#/,.'/)<(-3.1!8''**.?)1)->!3A75'-2*'.-I/+N5.%*0)4*/*1/+&.&>3(+%)#0+*9/43/.HO)(4-$06+5*+3)*#8(+ /!612+0#,2)1+/5)#*&-,)4$*$-&%"#2+'2.3(!'!&#,> )"K*(%#'5,J#.(5 %5',*#/:6*),'148.'/"#4/1(*>9;k0%/**.'R%48.!3.$$#**- e&$'3)(3+*,*#2+02%#;0+&,*,'%J$*++'21*<).1$&B*+),*+)+0)'3,D%'.,!00%4.F6"$&!%.*&)%0&2&$*%/-'1#5)))&#$ *4F01%22,$.'')C%C+&1.3+'"&7!N5+&*+07,0")E'(.*-(10;,./),*/4'&@++ ++)0%*+-$ &)++)(0-;()(-#!%-) )*+2&(++:(4;0066(+5.0'--&2'./4)@3"0%#A(1#&$%,.(*10%)(8&#&+))-&'**+2&.(%(+15$5'#,123)++*#.%0,'03&)-2H"+-..'/.&9.+.3*$&+9&$%.$)3&5/'!1'/%(:-#74B.-3//)-''(7(&-+$((*#2-3+,*0>25+-+&'%.&*5*+",,2+20+&G5)+%*/9(+*&*.*&2($))1&&.(&,++**-)1")E*-#**)16),&&/#0.&'22+''7#*,'"(%(%/>-5(.9&*B(%'#)!'00/'+?-0(.)9*+)%$)(2'&)/*.8+$" +9&,-%)+-(&)/!'+).$)"4$D'(*3'3$,2)4&00.}/)--&)/"#-.++-!*/++3(((#09(".)&/(7".)(%/,$)-(&1.10#"*1++'%/Q1,%S,#;)N&,,%] )""$%&!, &&+4.%<-(D*/8#:*4.&#:S1/:&1B 3( -+$?;(/+):(:+$)S2)4?+*.>%#L8"&(1+0''.&Q= (;)1010,*7$$*3<,#"3>-3/H.5/4%8&;Y%$.[QX$/,Td/!;(),*&%V#,'-$ ($&&')6)#.$(!&!+7/31*7+)>',",\,./'B";/ (0399*/(-#$'%* *) ='*,'%W'M//22+<#:.>"!&;-(-) >B/&)0-;+5+3,23#.0 K,,# )''L+47F>A0++-R%@2#++/G)2*$R/(8BJ'$B8'.0$*' $',"00&-562(N$$34&%(!+08!4?1/ *-/*,&.%')#)K(*&(6)(/-7034-7G#,5#.%-(+--(08*+2$%+%+#6'>,+51*),,5*&(+)70.4).8*&:,*%)"7**%**6<"1(53 #2*)+&:6*(&,-('+/%I(.!+%71*1/'"%*&,'"+,6):-0-,-/0%)1.7;,5%,)* -+#&+(/%$*--.!&+-.8,''3&#--,-'(,%$***3--/' ,,##*.!#))2+-'"/'(9,2&*/&'9*7+,,/(%'%&1),3%1$% +,',1#7-.36%-!&5#'..'"-!*.'!+5'14++$+(.&/*14'++4-#'+.,)'&*(6)&235!$7-C$1-//&)$1*$('%%%8)"'((*.7)4:-0'6*');)--&17-($$2,.--!/'-!,(.''A)(-8*-/+#+4<)$(#1&9:+,22)(,4'0/+1)&)2K(-',I$&-=311'&-)&*+1C%2+-0*"*!$*,*+)--&)F',-++%'%?0(,O3*?),&,;$/$/0?-0I%&%+')-0(*2.-&/,*8((/$'$*,*,.*-1(/))P0)%%*.3(:(.+5410%7)3-Z,),/!,((38%#/)+'6$5-('')+/*'(:$-)'+%/#,7+4+-'-(/0()&1-/*3-)3.,$*-D)2.,$0%+&+M)&+,.+&#+"9/=$/$'*+*2..4'* +,(0%-C6-+2'-&+-4-)-0*.*)/%-8,:%/($0'&& <-'9*,!-5*'*'&" &%*'(,$**/)!$**1,,4.,'$*.&#+2-)<1,(--.*(-$6.0%5&) *,/38!6--7%",/)#/576" -,#)F+0$:H+(.$60)%#.%*&)E**#.7+&$$1/.)0)"23 1$$$;12$-/1*4#3++(&)/4/Q7D),30*,3),+"#=3.+1$.'""5)8.2&%&(963)&2(-*&&!)2'#/7!'4*+0.6!'''"&%2-.*' 5/2+"58,3,7%/%.*27#.: 3$"1-#$+ ,);' "##:&2/,&-?-',5&+#(#.4.$'#O8-0&*)/-&$23.142/=*5/7&)2-(=,06"(3(05%5833&.5:20,,3;+$,#/%3&(+34 5(2!*(2+0<3F:'(420243'/)"1$&+,,+!%4# 0).+#'A/,<2,78>+'1&75%"3#'(1v254);(-'%!='*,13%%$%"9(23&4"/.+.#1/6 "(945#+:(.#(&b&)+().*<&+7C),12&G !,(#=,&,9(28(#"$3%*%#/*'' &,(.(%-=-6$2&&)<'N"$(-(.43*/077(<3-3*'#-)(1.'-%75'.'7(*.)/08$*"&$/#;27#$3%&P"&7%7"7u(A/:.&&!*0 %(!0!#1(<#%$-4.2,.!8*0&)(M2)+'0-5'07. 4M30;&6*B+*#%#*292@03<3,13,%1&,1R&$01/+-7@,$'4803L(!1/+/),#>%0+z0,(6F0;(80<-U4H-%3+"0&1)+)(2 10%'<V%(#=-9?"A)$91Y#'B-&0B#*N=4'6#*/4.++6,*--/1@*71!8()=$&$(73D]L/#!'->4'O"&-&G,/,4 +&.-,f-@,,-$-(!&% ,.5#,)?$"&5*#-0 & #'; 3()3,(/4*I+&3%"X+#.-)&(3(I$3(5;1*-$%%-'-#5/((8*#329"#()316'#)C%1$0,7"A"334)8)/#)*OB-2/,%'/2''(;0!')& **"&*,"#% +++//<%#%)#">$*.'39"/,)'$/1o:&!#/$"1.,*5"+)"43+.$' .(+G42,-'4)%%+*(67)*$$$5/1')&4*6/%(5 %068;A')@(-66)"2---'*H -'-'%&=-1/-+*$-+4/'/(9,0'-$< 7E.(%43.0''C10-%+!*(( %&:+*&7'*3"&1%%3*,*0()%#%-(*/-+7/.0/+;3)0'L)''%.0*2*+23%:000&5(P**%0,.9&$'9(&(-((+.2;(.')=#305B//+(0/<)'*,- (%)-)$6$.#+'-*-A20/).((0*65+%((4)%.(*./)/0+5&.&--*-7<++H2.@),%#-0$812&.%)6,3(*,%'0/A'D$('((.'&#+12/20)/&.16##%*,/)4/'.430+9.%< 1&&+,.1,+0-04+2*B/-,-*,7%32(2)0$0.,,'#+%5+!;'")1*4,) "L*-P/1&,"5"(-.)%-+0%&E,/#0&.)/*2)A-!!*,)(30*,48543.$&+-'"+3?)/,&8%#%,.'9(0/+117)L7-***41'/2*)#'4$,+"(4*7-$",'6/3%%%**':+3,)-4+4'&" T00),'.G4,.$,#. 1+*E(.*8)),-&.%X*)&*&-6231+4112**,/,02@,2(+/ .(5+*2"-(5"=6 8)%$1-#%63H$F).!#,/*"5($4$>.)4!&)#2&)"$".#/1)&(6u26%+%@*6!4=)'!0#')32%&&-3+ &.'.3)/$)23"+"/.(*D1.&+&8+*.00'0):'04$("L++'.+,%>4'''1'%)/P6*%\3?0C+'- +#,*&).,(!1,&+00."0)+!4<"#-1*(#3"8$3/Q9-'(+A*%.+67. &)3+8-#-%#/&+4(@'"$(00#:*&+ &! %3$G#&',2)2#+0)')D- **&#;-&3)!-3",)++6(%)!'-.(1,%%($10%$/"#.!+,0 +''( +,)-1!.&&+$,&#)($9*+$$1)+-/#&#E'&"&0#C-$%,%%%&"))'#20))/'%*.+)%%)+&7#.#!)$%%/$&(1$4(4'/"$)) .H&)3).*+3(.&-. $+ !,3 /)!(5'#%&&#.'4')),*.5)$5)1#-,+&30//%*6,)4''%,7.+'%0H1&/%12*(-0#-1&$'�*"%&!-"&)32%)(&#.++$'5&*4."##.+--!C'.-(223$$-1%)*0#.(5&"((),#'@:8"" )!?&)2*/B<*#$-, - - #%5*,"*%1 -/!",)"*"-%%++,-($1+0#7&-)#0+3,00#8#2'0(!($***((158:8/-%82#G(<,-+:.+44<+0,1())/$,)*!9,'0480+!62#0":/),-%(1c*'"++(,1-0,1'82,,=3%0-++.62#'@.00('*4/+8./.+0)71/**$(,*'++H8#)%&(4,,<,71,4/A*.9'+(+/:*3.$1'0%02)//1'5#5)*#)*,.+'/+'94&5,4F"#>*/021$V*3/#..3&1('-B)0*&300,'*4D'0!./2.'G62,4&UN6,t=8""!.';+&,.!+=)%.'%/:5%/)%)+.;2)-/+#&& ),&/..')0(!(8,-0(7)"5'"!:31,)12.'/1.*%&&1&&,3.4,,6*%(,?-&,$$-2I&%()2!$(,-630&'/-!)-!..1E.*&,+#-.81-10*/,#$*&29-++$&#00.+)4&+0.').6.$ #(+/#(>1.!# 3'#'"0%)4-*=''.25&,"''-*,>+2###.24+-",.3$$&5&3A5- -#A-)(. .)+/*5,("5+,+)#"( %1%(G++(+'.,"0-'&9!&-!(%.$++('(3*.**,,#-211!#//2$.4,'1&#&-%)0, '&)")0.$(+(23"''.#;*(&/( %;+#%&%%'61(-!+7''#(.$5&&,4?&(%- '';.&4(':-#()(,,/$"+*)++ $"*1&-'.2+'+.&-,(((:4,%,0#/'5+"1+/+,$/+$'4&-+#$5!")';/30(2, &3'/(0.*'&$+7*,),)$%+9+3(6/3&+1!;=>-."a,"5]D&6B!*)/)331((/$,+2,`.,V/K7R)(,!S((.+%./).<2%$)!):,''=T-'+) +0'&(&$$0&N-#%N!--)*#.3Q$70.-(+!4>+=FU%'*21+f#*S+)50($QN%(-%+.07. A"E!'EA1!M#(*+4.1'5(#%)"!:)(&'D'%&C,&*'#HJ&+-"1.)0A8:&/2(6)#J,-&/.''.'K#*-#-(*)++9^).&)1G;+8CQ*2$)0(-+/%2&.#$'%%#%$%.&2:#""# 5!))!,%=,$/Y+3;0F("+D-&/*,--m(2,$3&$(&P>4+#((%1#!,B-&$;D$.&,7!/1$*!,/22&.;(.0(&'/%#&( ((>14?&(6-(%'6)1,=6)##=@&55D'-$%1(*)'#326-3$*:1$,5:0'K1(%'+(($'$**+.=)'8,."/*)'-;+*+30( (&+'0X,* +4,*$."+'('-,))2.$0'*$f,&.2$$##,+,+(")))') 8)#!,+,4''.$.4,.%*-."#4(!T#(*,&#$7$'/-0&)2&/%$*93$)*.+-(',+.!,0,,+#&"<* %/#25&8+).3,0!+(-A%#"--+"**760-)/ "%/44/)+=20-* &C4&0$5+.6#5%z9",/-8'-&%$(/%$$0/."+4+*1"/,-%"'#-:&G*&9,'0)2)'-!9.B.,8/&#*%('*/1;%1/*1"+' $"@&8-()&!,/("9" *'5030.#4%%><"/3(/''$)%&2/1'7..%(/)I#/,*-c= )3'/,=>(B&7>'459-.&)*0-.8(*'&.6$)(-!(8F)/,++B($&(/092.!:),0#2; .$G)><.',3)4H0,,3($1/-)- -1%!!((!02'&3#&$C-N.*0$-&)&./&"#9&%%/'/+$#0.!&%%.( ('#o P&6/0&;2=-/'Z,+?0F-*'5",)*-,1,D-91!=%D*$*+F2.(0'!8,'-1!/'<(,="K$#+*$%4'$8>0:$$2.24)'*1",,0'.(()&)#),('A(&?(S "..$*&13&%"63:/& ,'@F+5/& (#9+/+<90*0)(*-!.6:+9/,(.-*=3.+2.*,(%1)1$:33'0"&3B,"%3)2-2".-1&%-$+-)0,()!)4+%-(;'? &(!,!9!-6*)'#,Y.=* 3P)+ -F)04-*0*$6&4*!% %)+2+'!+9,)2")*"6:8(++7&<8*)+5@+/A1& ,9$-$"?J&/&2"%&*,2'90(-08$1:/:'/"+ !,%20%/0*&#+5*0 5=*(#()%@!2=.(+$*#&2--&+''#$(%%$ -!)-&/*)=&).)./(-,/%'3.%(+))'()0')00.4%=<928#*'2N1I$%%%* *,!/*27"(2&)&5)#@E,1%&,&/-3$)+)2*D04'#)-.,6*,*&+ 1*%'-22.%'/"+),-)&/'!P)1#'($I(&##0/,-0+(.(<&-+b*(+-+,,&,2+*,5-**%,'/>=J4)$+36*72/(4*7-++>0$$=L,2*4)&)2'2(&&2(&3(+(2'7-31:+)%)/*-0.,1+&,.1&-+/6%'!0/.4?2+32830:)53$.,4)215,(&),1%*/&)*%+0,+2)/+$'-3/*(1)0+,*(,+2%,/*+,;(+ -&''.7+03/6&,1*'+)(*%,$.3'.0+*$..80%2.0,$&.1<0'0-(,/*2/3-0%+2&3-&)&/&'&*..,)0$35:4*+, #-)+!,2!.(2+9*%%.7')(/*1--3-,2.22*3-0'*.3+/;0,).0)'2--/'-/)1//3$*01$2+)*%$))*',"33:..8+7&).&)*.'.-,.-&0+/1/3'0%07%G,*.21(,!.!'$+-0))=) *K-=1X\+)#35!B1$+328=-/&):1) )**&,.1#"256)+2.,(2$4&3%^$3-' "4!-8,%)909+;$D,&#$(11)1(&1.4.!2,(>69($(*>?$5-4(2&(DA'4!)0'0,#:(&-.1b28"(--&%-4!*'/*5%05%!9-':9/1*(.)6$#"&5+E '1)#1%+5(((7K'.*0)H'OCy.$/++@35&)).40,.*9)(;I:10+0-."*22&*(11#%-%;X.+-*.6@322-'.'()S"#9H,)+0O$u3:'<-*)*-$..--,/C%&%.$(,'>!-A"=4$(7,#)-- -1-8(0-!/).$~1)62==,,5%+(02)),--Q&?8,(,3.u2)0*$C1&10;"93-'41-R'6'&0%%(/$*6-*2*'k30+-1%)#.(,')20,(/'2'9)),0W1*E0++.,4'&%(*+,,*)>)61##%/(FG.BRY ,.,1,)2('3*%,()>+&))-$(, >&(/+()X)&%7&3(-&+*+.2G#6=)-0(O&2 *'&:@(!*.(**'!091-42('+,'2'&)(#2);G0'#3&,7$+!,'+/!+&(.*%-$&7>@),*0Z+F-&7''))%(#/*.-&7?#$8$,5E-+.+(++*#8)>*.##+#-32\)+e0.C)'5.,/&'(&4($"O&I(*-(;,"%(*5p'#M.,-C/"&&--*(B&+#)*2(+0-3!+/.3'2+=+$/$("9%,(.'(&0)%%&54/*$'4 $*')# %/$*/%!2$)!#).'("%"" )$#"!0%"$!!& #!'+'%(#$.$#3*'',.!+&"'()#%,#- +$)4'+(,$ !*'!)##+ *)$'#*+&- 3&$'1%%-),"!( !#+"3+$#' "((,&'*(#%&+"("&/&5"$"''$'(*('',)"*)"'$%%')&(%!(&$+'1'$, )'.&'*&(%!(((),1&$#& '$&%($&!3%%&'&- &$ !,),"*(#0!%#!((""+''#!+0 $#!##'##%!''-.&'#2+!,+"1 ')"+##& % &%$&5#.+0(<*21 0#&W4#'E!,$'6+-00%2J-1$5*))!,#6&41/9-5#1<%8@&.,P0.-'#-A2)%*$4%6%,6/+,&1%1,*(+,"(+2$+15,&%-5'-7($"3 ,249%9+ %%1 ,(1,/% '))+5*4(,-,-B//(#6/V"#!97-(8%)9(19)90*)*.1$7&1,$*!"$,..7&/$+440$8(&+.%$4L:,:?!*-&4* ',+0(!($C'),# %+%#)<>7827((4,1 /"/!1*%')+C3$'(,>5-&"6%#6%/3'$7)(525B""($,).$&E$,1*$5071"(#+ /)),+/-$/E*=&$.2-"&5*.&+F-$5-;-$-L#&(*)1,+9&).8+/%3*+'-&6-5%"(8,K+-)"&&-*!,I<#(%4'<./3)"2(*1-2,')'*#4&'31524")1%+32--"(792&#$-!&%5:#'%0%0892%(,+%&(/$*$)-(9%>(!"1'&// -#73%&+6)"74*-73%)"/).6$"!73W"+<(,&03<%)<&H'%'(),%#!")%'521'-@&)#(<42$'$(R(+'7/%.'7(.4&(&((<41!%/'K,-.:'1B,(*%.',3,&(%-+6*0(8) %f%3'/0'14',D`(%/(*3,!(-/5<)).+&.#!/)" +*-1))+0)#&*$,@,"0( ((*((,)!&0/:%/)& *"k%0%,*3Z.'4#.QA:; 5))),*)/"4'(0"),H&'F-.5+-64/04-*25+%$1)&*)8)9((4-(*)+4H3-208Q/"4("<*%2%32+*63$)*(0.*/53.$(#3-&+'#3)$$)63$('11.;,8,"2'%5-/+$),?+!',06#.7)&*)--$'0.0)*+5+(-%,)$'-)''%-(+$3*,3+*)2)). 4)/,(Q*A,':$".(,()+'*7463%**2+&*+2.-(0$.1!,,-)+*%;(+5A-*(*"%+590-0)+"')"*-,/+31$);)&%*0/32&23202/A4+*%(.#9,*=5)%-(%/%'2"/')#4?%#:.,*)*-)%-'0)0,,0+/.0&$/*11!51"-&:).-)';)1/,&+#/03;2-,(-+5-)4&-45<-'+,*6))1...'1*()214-'$%#$* (^%4'#&&n572.%%1,,,5 %+!10A'""'"&&#U0"E%'.&&`&-.<$5>a-2*b($+'-('<'N!(!&--(,.#" #, "0="(=)2%*'*-(+'3'#&'J$1!'%&1!%80!($26|.)6090'1-"-#"'08 +(2&,32,)*/.?&-/1&*"*$$0*'(9!".5(,,'##%2,8-=-)#!);'-5+'F); &$ ;<''x!')+%>!I3'$o*&,63'+! 0#*!&!0"#&1%#*2)((34((F((*'.&,+'&37"% &'+!)Y@-)#'Z!,&B$('"6'=-1*+)-47-(3B13#=-3,#$$?*/'+!+"$.'C;/(9-)&)$',5'4"+A 1+$7)+/8,'+6..&)'*('4C1,7:K()4*)/1$06!j&*&6 1"**+,*6%1+&,.4!4(,#'96)%&"66$..(*&&%&F%/(." '"#6,&O/!$ ,9:-%#.'093*%-*3%$)0'/$'++9.(&(0&*(+481/ @*(1("$7*4"1(/1,1(5-/3;&&1"$$,3,43&-.,0*>>0.--)+, ;-$7&/8$&*+)%&')-5$'.#,A6*)*.+('-.&)-4)"'2)8'*'%- 8.('1-38$)$(!1,'#B2$6),,+%"0/,*)&73-)&116..*$>'*/3.*-((1%6+(+,/,2,0.',!/5),**-*N.=,'1(%)6/*%32+0 /#1*&*-,7+$0./8-8+-0'.?-)$,<<,+726(&$0"0&H./"1.$;&-">+40+",#;,>*.4#/&-!)(:+8*%.-9'..50&*&:G))/)3"7*,-09*/&.4(3%B'13/-,$%*+*76#8#,(+-/-))!-2231*(5'K.8)%2)&(0,$0,%*#&+$*&06*(,*.076+1(9+4(.(1(,+'+>048(($9,823J/)L-&J*M$#4!7'3)!0*,&,%D&/2%367''0*$*#3(#&!421*@ (&")2&4$87(M5+0'-+D)E2//(%00+,4(/#')3,,7%J%-C/'Q''."+,'(2#3%,(=$"-k6&/%)*5%!82-1U:,.8,>+"'-*($Y.$$)"2'9&6$)*$,(21-0*1"#24))#,>'<7@$#." 6e$>#b7 O"&$,$'6;"4/. 13%A')N&)&d*(#-'1(*-3#.)!(&0"))E=9) 2;0.>'-8*-(9),0'$"'&$)@''6&% %5G+;$7*8g)+*'%#24.7B##(73-+P &('%/'6"0%=1/,#7(6&*3K.$&&,4%9;3./$)&+4(L$ -(68+%+%$?((50"3+$"'$(@))+B#) $(%)C(=!-5%&+)())2&*";+&.".)%)&,,50*22")$#3,-)+.*#&4$.( 7'76#$$39+0#!*"$0*13%%$$2-)'10"/0!#2*&15/*'61 '##,"'?"DLA#&),D0)9(4%"!!&21#,&/(%!1H65,09%4!02(0*!.'' &33#+122%24$-<+8"+9%)+,B(3,,1/'#*"#5&$+*,2++'(/5)'#%14&#>,%,5'?&m'' )$)2 /%.-4'!&7,*,*+$,+!%!-L,,(!$+#*5.3()45'>7&*8+"D%)'$6,.('0/+($"1)1#(1#&5=' %)#H*;%*B46E))"#*,&%!-#)$=2$*2+,4#&'-)4*"++$-.M+@(-(/"G&&!%#*P'%!+\(%&!).!*(+",$;0$#+;1*%(<*+/+.1#X-'.&#&'.1A)$/,1'.#6;+)&#5(@(=1f*O)0:$0$/4U-')(62,!,$+%'G.#1(&!+1'%*#CG.4"!t!(+8-%-+#'.3# )1=)/*$%)""+$-6$*9&(=CK/*.%"/'*'.#,*'*!@,(+"$*+"'76#)/=0B*%2*#'&'($'=!$(7L/.0&+9*&),%<@.W+*N2*=",%'84()*O'$2G.6)(24(2,4(.*2(.%+&'9*F=7.0)I(*.;+((..)*1*'*3)$+*1070&$.7!(d$.)1/-5)6&6')&5/'&'%+!';!%"(&+%.*-.5:'+-$0a:-2.6(S&,396"%/-%+,'>-,/*)7/9-,!&-P+69+'2)0)$&)',0-1#<9/)*-!3#57G(3)-#-*'&28751',.')4'&..)2,')--4)1#7.@;.''&,+%5 %-,).&'**9*)40.2+*@(.P)"'*9'1/''*+1-& 25+"!'3'03(-+.*.*,)("/.1'+*(3**50%$)&<2&40$3,0051-1)",+(+165($1"''4-!'02..(@1$K-*2%,0E,2+4/-%)+(;3-+)+2-;7L02%.,%9&'051/0:'+8!*3(.#35.'$'+,&,'(6,)5-*(-0$'"((2+'!?''&21*(8,#:%+++%=%518&%*2--0.*).-@'0$=&),'(+$(#E&7.6"'0(-.$%c%+0&/2*,'.&.%)*./,..*2.;b+&*)$*,*4((3'+0,--4'-(.,$,*287,,<-1.,,5'.*'&---:#.4'&41+$.+*-*%8&+3.*0+$0(07'6&,$9'*)0(;.&4(-&)/43(2,!&%".&/),+,.!!77.*--)&/%-3-.(01M+%2-,&<(@a$:'>'-<`:*:)22(124';G/*5*w%+2$K-10%+,.g,#,3+?$;%+-Z+$81(;*)(//4,,%.$+85##'0(%I5$>$4!(.&''$K#D0)0#3D&.Z',U"6*(J%+&)T0l',;&="),"#.-"%.!%)+7')+48'/7*";.!0)7'"4%3.0(@*)1/.5%)#'%64.&) #9&-#'.)4&10(.'/4&-&,"%0+1)) .2&,--6%0"300%D--(8&335&(,+G"-!(+B..#<+6&%6:!7?)"/'4*.+.,%51/)),).!+/)&*>%&(+)4*8.*844&.&7#)9>0)/'4-(,"'+)"(,+0)'4*,.)/,%:*"%#+0$%%%2!/"&:0/&.'-(-)'#2343"/11).*'824+#-.+/(->!00F')&'-)''//=,!82##13*&')053B(4+-4&(0 (&-"4'/00-(0(@;3/$(!((;.J&$(*$'10)00.&$+)? %-*39.-:2*3),45<&1,-%*.-&5,0#7. 2+(33+)1+.310('A,/1->$$1.H%/*)5+P,#$57(-'+3*&g"#++5#,?;*/-..&*_.&++50'-- 1+&&,83-*,"8. %-<6(f2/*7&)..#%.&2*1/0)'(j%F+3*63-(*&$/$1+%+"!,7)#*4$,,.'0-%.%*#29(29+!%'A%-=**&'#/(2&&%/,./#/%3*&,..2+)&#$)(AU,./;%,@)(,%%2&9* &##g$2$($'&-43=<<+#9%89*2,G.&;(#$#%A!%!A&34/#.$)5"1'8(=*'I/',93./*,'/2*//8*+71&&-6%'&?/- (4!(#+&"<,)*-,-+j11'%#&1$*%F%$#488+d9!4)/++(*)$#')010,8&?%$0 &0%-$)2,='9I @"#'#.%'()!#(6'0(;++7&,.1**H&.70:1&/2)(;'50/%(/%"(.&&-#.%5/7)/0-)-,)+,&0$,1(3&8)0126.41C$+,.1/ 2)0+0H4'1A&%)),13&$0//$%;(.*(([11-,#(%&0&''("-(.$1/)"1+$+ *++.,,0#3%<'*/,*3134,+$--,.),)'*/2)-,/%*1%&+$3600*.A02+(H'&07,%7*(*&.%()%++&&'-,=+*11*,4'&)(.))",(&:1'#')1&8&;4,0//*).0%}!),$*$,("3/5&&*'.27(*:(A..++.'#'%2($1--/2(4"0$)@&&**2).#*410' .-)".(8%'(644*8)341!3-+1(/6'.**.:-*+1L1&%'5('*'.$+(8L.,/-0'..*);)$229*$#,(,-*.( -9#,&41*,),(( (<'.7. #43(%0.'8=]0(/.)#+(#%+#%<&##$,**+$$%)'*/+A)&48!$106&(6#&)-''?!8*"'1*&*3)(*"(&+($&&)(++.!"+7++(%002/3*(-<,.(+2+/%#)i&***<$*()<-;+&,*.-$;/,%$*(9&)D$2-:+51>*+ ,.*$+.0.2.%30-'4#A&!#&+-#'""710+((!%*+1!%(785&$')- E-,#/*-+-)1&H/8+2,+-5$%+*1*+$517/&*(+84+#D'<-%)56/!)91,&(518-%+1,,"%40'%!#6,.-)+%4'(1+'(-&2',?!36+"?&2&/"5&/#+'+ -3$*./'))0)",'/3.')&/***,+%="'%+*.#'$5(*'951$5%9+2,)$=,4#47*/-8++-7*..%$-7+&"%#'#X&.71$%!/O+5%*04*!3%E3* .+30(*5',##1m()3,-D+4$1#9$%0'*#,"2%*%,(&/(;4&1->%-*++1,/*%*#7&(.4,-,)5+0(2@''24 &.$'4!)*<=.*0"=4-12)--(7((-,7*$K!)-*2),@,,-/&*:4F)%+7<)8!%-;/ 1./&,%&&%+08.%18.&(#3-8050-)6)(#)!/0*))8)!-4/)*?+*-=9.1*%?$"6-2)0++838%&<.*(I*((3***)1*+3&1&*1,*H53=$C#&"0$&+<"-1'.9.*$;()/@+,!:1%%)!50, :-*0(+*)+, 2713+,)3$077,2-0.3))/3*&0.)&0+8,05/;5,$#%/*(/13--2268.,4*&=.69'!(&"4?"0)H88J/)2$*.6%+8((20)'2*@';.(0.'A0+&%&0.*'/**-2,2'01)-0#%6/$%0=&.#(Z-*!.30%&3!($()'/,,,(-'0D4'&C*%#&$9#5*!!*@F*33*2+0%+'19L2*%B5*-H 2*+2+&0/&1,7,$m78<91!', 2;:5) 2:@%.'=0:%<'#+ / <'&I.@3&%+E-1(.,(&+(7+\0"/&9:1*%+/) '-/((6(.%R*-(.),,7/0*+(-&6'*A'")1 -9*((`0+**---('D4C*;*%3 120-1#:38 (/".09($-34&,&),&)'4(#,+9!*::)'#*.)6(34)$*B3E+!4,',"%A*%; 2-6-,*&.3F8*(8,nA),# <,%)0!!/&&*0637**#*.-0+%- 67?"'G:2.+0&%/.5*(%(0#D=/&W3*+8. '.2)3(+)=($0#+0>8-34),(6%9**N*.--*8-.#'*4).; 7/1.57&/($)%5(^,*-+91%*-)2%6#CC7.)7&'"/:*%%22*%21#?")A-&$.)G+/'#&1>*-&"&&70('(X*-.#"%+*(*)25+.(1&L%*%,'-#0#95'"!+++<#,)'*(.*=2,<%&#.,/&2&#+G!'1/W'/:)):7),;02%))0"%.#%506'&8(28*!&+"..'2*2,.70#,%*13$,&0N1&!#@,.#"9(/("%,,)44'*&&0+*+'&&!5+0*!3'4*<9+#%7' 3.$%)+)"*()2:#-/31*063.(%&1#(3+%',*7# -'.07(&L%(0'-&/&&1/0B9+,-66+.0&-"'(.5#<"*8,($,$+'.1,510:3'(.#(7&'44(!".)@B3'5/K(0*3!+@#=()&;)/',.,+,0$%*'#$*)),)+$900#'3$)196+&(&>+&#-#$+#*1)B-),+((-(0+&$($-'%-+,$,(2(E3,-+&')464))1/1)+-&)"7'*-1.73+:t'/(!108),(0/&)&!,('&.-*##+**)0(%&)6',21*<)1B%)-#)3(6+'($&*:%())%,'+&'*6+)0?"&&&')/(%&'(,#$4($/%+2+'1,88+@0#'31.)/3/83?$2*6&)/+(3++=7*#'$35"*( +-"*#'+H#Y)('-.-&# 3+53*/!)%(A:;*'%2,-2#'+4%*-8*9*):)2$**(%*)(.."%*)$,.,*,#2/$&;0(/,).A%-)%%"( **(#*3.%-*',4+-+%O/:9%"'%,401+, 0=1%/%-165&+(-'-`J(1!>)2+,!%1"7#)&+4()0"*4;(4"-!())-0/4*'(('*9/1&.-$,.,.070*18%@i*9,-1+B2&(6D(30C'+&$'8&1$22/! 8")+(2A()+$3$F2(.'.:00%"*.3?.21*+)4' # 4#!.L,1'0=')29*>80#I3%0"%($/"='- *1-,$-+4!+1@'&,!(/6.5*,+.%("!-5-')*-*6#'$73"*+K3'.5',9%4',4,?,'2&*5",+*)3!>+ )!P< /83+1-"-#".9DF+@)*0#+6*(),@"3)1 %/,"3'0A,A/J%61'/8$E*0&'!',%&(-,,105,.0'*' 7##"+",45=*-+-2$"P+3((8,M3(&&01&-2.3,55.'*&'0))&7-+&+1/4!'(+/&* +(0#*:1+47.#%*%$0(.6"%D)7+'$'1+.4#,./m(+?1A%-+&8">5*1>%&'(2;%+3.U.'&!658=81:$*/#G-0",'3-+'/!)162N;)-*21/u+ 14(K'G2,@D&/#,+!%.3/6&@'#D%")#*C*%P+*?#) &'Q'/8,U#)21#&,'N3',\$S("6)W% 2C( 7A(R$98$1$/!86:5-0+!((#-+?- 322%+,0%1)$$%@#%&;0*#-C(5b!*%-X(4<5 D(..4#K0'"($1&"/5) )**$ 0*4/5.2#+)%(2'"%0*R"($((&&%#:0-2.&)."5.(..)0-66&'-&0(*,-7(:,!705$1F ,.#7/++(F.*%-0*5(N*$#:! *?E"#=+(#4,l-'4&$*;&15,$#&*/93,%I8:*0=&#W&)(#.1.&B3,*(+/".)I)2+%2'%!2+&5"-=+8)33- /6&Z-&6*%/&"%*/.%%&"?/;K)#)5(& *(,&<0M2(+62!+(3`,#p$)%%((/(&`)-$?.(-6).+9-@'.11(V/&.;6/+"<6)]'(1&F,-*+.&#+#3.,'2'1!&#!+/#*5-*)1*3)$,2=,8/.$/1(2-'/;/:'$9.+50+.*9.%#2"'-+6 $-&;)+'7+@3033)7113T$/,-'61(&."J'/%)00/-&*.:2-3(4,%%!)/#"8'4(0(-/2%1#$-3&(3&.&*,b3(*$' /(1--(+%'))'4"8++6$+*()_+_'$#((&$&;#.450$)7#,90?&*5)!-$)+2%$$>)-#5%*#$2(,**1<4%1,*1/*#(5*80&0#2$/$.1-,3$%1")C1!501$0*2$"53*.--'' 7-.%1.)080#("'%,(*)8021.1%.%'8(0*C&3(//*,0/8)')--.(8..4+',(*,38'-11#16#(<&3?'-&&-139*+.'#0!.92'0>.5#'(+6-/&0"76B'(.1.2*&42$+1+--)")*/2$/&%))&2*18 ++:27%,$3'547/()(+*0,,'-+'/')%%+))4;:**(/(-/&*7),:&)*5$%)+*$,0>$0O.4)/&,*1F#+:%5'%*7,/'(0'135'!#,+5:##2+,,)*#+*8"4#,5('(+&**23012')*"5$)&,$0/2S3.&+4#9,(,+$#(,!6#)&,&.(:02("(+&/-'!+- , 26+=)'+4-%.,18,,&;11'9)';&*8*8-L)).+-/?2-%0(/$%),#08+)1)2*1%*",$/(8, .6B1<1%8.?,,:/"(%%*'!+"'36<,/)1&0#,&1"+:0$"25000&.*) %7&;I),3"%*A4)($.7.1C&>%316),1'+,8#*A.*0+$q5.(#'+2,0/*5(+>+,L'$)3 (+*+/(*2"0+$#$)2/')p-/D%+)83(!'8*/60#-2,$*.3-('.1)2(2$(/($!&j4%%831(,((&%(,,00.1,(+%-"(3.6<()%,)2'817 +%6"$/((1.+)'!)+0,)-'0/O,...-+/&,#,+$(),)$.8'&,0')*'8'$",&('*-$ *!-0*,21*10-&+?**0 )-)%-)$*#.)+/,2%+*+7),2+/+-/3&%"%5*#9#>'###,+*%&,$&-I+,2''#'4#&D0*'#$-+$!6P*3&'')(-1,#*/#*-0$.*-*/'/$..-).//'1+'='$)$,9%)(20(#*)4,,+*&0++&@"$/R1!%/36'.08@;0.'0=&( =02=444'+0854/*59,(*8"#%.!0!'oQ*4&4+&0.+*'()*4.*?!9+E+')-5'**%/3%4$/3.#7+50)5) 7(&J3+ ](%(1/"1)$(7-+>!.-,5((7"1!2.6_7)#-)8"$/2+"F*+($I.#,,*4#'')b/9l1,&9'/9")"!*)E0.L"*$&'1?D(.3<&@)+(./(>C#-D2)E/+%.o,55&<2$2G; #,'266$*#))44&,.#'[3(*.((<8-%N1* .31-.74B8.1D/#*Q-L-/%4,'(&#,>;%2$*),12.*)&+1%8)$):$'6%.!)/")/'#$)38,',+!RH+04('(2$*N:(()-(90&6%/-0CcD++&:#!3&25///%(+5'*H$),0.%'4,(*).)./0)09++$,,$*4.9<'3'9;)##'+$#%'0#:)O0,J$3.:*\,T"6-% P:'!.@)?-.%?,0'(*-$C/'2%-'/&*1)E+5.465036%(32(*: %%-.,4+'./C41&:;D0s+12,8#(,)$-%03!=0(# 75.<%*-))1(/@*"F?*:-8*,++L&2$$'5B0",/&3(9330)+.,.A5%.)K;,')&+;/-'%/"80&(-,M+$1*.*"/1-#&(.$ /,0L'!*0%'C%-+2-$!(.*0)&%9*/6#;K#),.%U1H&:*Y-3B25'8%$'*,8)-("$E(!?,+N0$/'4#&*+$7*$,&0.4.01)%7:"/(2+/'#".?2&(-$*'R$)#+)40'/'-'),',:*'!-"#+J00/'0*%'1/'$:4/1+*)+4,1%.!4+P+*/&$+6/<-,)19(B$62$*5)(*4$))*$*6*2+1.+18.1I#,+2B"/-79*0>..!$3='&!$$,#!'%50 %))+%&..2?-31)$$9$)!')%082$)7--)"$4219/(.):8?':')(%o>,"3()&#(%%!+#-5('"*;3',[=!:%,!)2(1'#%%'/%,#"35 =3(463*(C#,33#A%'&/(#%608G*(*.".#3,)(5B(%-).((?8."+#/:+3$$&*&0?",#'"7"*&9$,2-12$< )71(20"O$&(&%-/:,,))+*0*)($<%)8.3%K)#!307"&/-3+"3#7;H5!!:*( (K(B;) 12L3, ,.4*!.'0)&!(6("0(',&) )''&8)%0*+-%'+)8!!,"/%'*"&#$#"3(&'%+27)-%,,(( 6.(72365)7(71.!9;4&6"3'1P*/'#*-!*@B$1Y *8+@)'+%-2/.(V(/)1'&&C/!-2.78<0%3$)#.4<.76&2.'6+(,+a*/< $23%(+5#'4)-7&'.$*=(*&'!14*'&A'"'+*/&,((&(",+&+)((-%"+'++:6*++9)2+)'..,73$-.9!P+0*))&)--8!B,9) U*#,-93&G*()*:W'1+$)%%V%-+)('+()'+)!2-6+G,%((13&+07#5($(6/"*0*)52'G$5.!,,+,(,001+(0%,"*,$'/,+'(0#+,-$(,@+(6,@'%,.<0,*4,C:&3%/.'$L+>,8))(/4$+.$*4+*/&6-#%./!/'@'*+C,&",)#1)"20*$5'&%7'+))3F!5##.#(1;+3)$,)-G$)($&*%-$;*$*)J6J5/(+6:2'7+-#&??3&1*710=/(",$6*#%'+%*()$'%,*)2+7.\3#%,#/O6?&$#,(0/)7*7++(*&)'6+)*'8,,@)('3404&".,&'0-&*6,'*-0 / ' 0%'`2/065%9-5&*,-=%-'F+G&+&+M1(.v;0,&1+(/(&9,8-6@)&+.$L-6($Q5,:@G'=$1!*#6,)/'.4$.$5 20#/0.%*(/2>(,/&/--7 ,7(")-A ,,&I,2-5''-3"'..(:*.$N1'*(54D6#*"-#0$"+2.)/#&4<,=''"+)3&.-*(+3+$722+,(..*:'+0.$../;(0)4%)>/($&=$6h((L)))-#*0#()--%&#'$*&:,'2%.,/#)#')%4&#+2%$A %":**#1)%(&(V+2*,((&$+).,'*'1-$045;).5,M1 '1+!*&!+$"*+$)&! $(!!% 4$#i +E) 1+.!&%&.'%.$4 -1#!)/'23($>1+&&39(38'$+::'%E#1+'(G&%(8&'%X$",-14$0(&I('@1#!(&.-'!%P )%6-'&9o."+30- "0*Q)1(%31B.5*30.!+*+&2$B)$#01' $3'T%(%*)!,n%%"&9#L5#&#-$&#,&0+'("!(1"8!2'/&+#6B-)'% [B+).(#%%'%/"+K'$+#D$5EO+$.*&)6(1+C(,**!?YE "_)8)%*b*'1%#*'"-(.1$$(#'%::8,/!'*'30-P($$)#),%0-&)=/%56- "8542C)) .0+&+%$1&)('*<2.*E+;0*,+47,*!dI%& ,8-#7#),$##+$ .2"(&7:#&#)#F&)--1# %X&1)!.7%3"1=:*'C,1"*)7>+! !%0&.56().*(&*4!*Q/<8'(89#- $3Y$*8.$;+, /J" ' 3Z0(&,#5&7Q)$.3$B.7E3'-+6&"'&,;#5,@3&$*65@$2&,)-# E+4),)T&/"'%*!@8+Y)6$!-9"+<#./8*(%,U--%*%6$&##0+'C8$'),3F'!(>'+;'*-B$5.1.0- 1-&= $1?#"5'&612/.-@1'',)#* &,'$0,-4"*?(C9 ,$,5#:"*/'M17).( $) @02+3.':#B31E3&&8))19:/%($.0&(& ).+4%282/5#:2(-'","0*#6*E#+;-5'#%'N627+2''*,+$%00-#5-(',$60!1<'/%%#;4)=$%/.-,%;(,<0*3,.+25)%% *#;&,#*$<&5EN-$!20+'&!;)1(="7%5#9#1.#-736&"*5@?(,6I&-!!#'$4&-0(%(.)&/5-%;/+*"#7"&":'!#$/),*7&'./(6,%# E($8;-)q5'+''1(#+8'$,86*(0*$1+($(*4')%3->#6*K4(&&&!(-21'<)1I,''4,3,(3+ .+/E(&%2(#6.+06'5-< ($)$:;(1(%.$1&!.'4,-4-**8-7'1.G..++&5A,4.431/*008*%-%((&/).*,)+.*.4*-5(=+A'.33-00('0())/%&2)')(2"-/%!1)*,3.'/9(',(-'(,2%*"0)-%%#&--()7:,$+&*/(/--+14.92+1/D0D12.-&*'!'+70),:&,C)*6/".-)%$*.).+)+,#U+.6#*.+0&2I&(5',(:*(0)*;=.)'2"/152-(>)'%25$($*08(&%'&3)EB6,-+-(+37/.'';)$1-+32,"&++-%+6/1/-(l'g1+0)"54J$',)%#1&)52%)7&%08*(%-06(%4E )&(+,$%#"*(88%( ,-,5)-@''$X*0=3.72*#N%+&&A6$&)&<. 63,%-,2M,--4C'+(%.+.22,<#).1796(+%)30. +/(/&72&!.*0"'&&&%,4)%/&&06"+)&P&)"+'(*,(57$)&.;','*2$2#)9)2/&!'6&O*2521++).-*,.:', /&01037),0 0'*$%)"*'%40#4-#+-0e,$.**1)//'*-&&(&'2+!6+&2#'(%,$%$5!").&5+4')+#?+(..*#+3%-"#&&.#b(0/+/1&%5-34**,()"")(#*,&):/-CR(%7-36',(&2'//+0*&$'0&%%-%@)!$+-.&3&2(,8&,)'#9&$*(K./,3)5'(-6,%+%)6)(;#/7'I!4)"(&8*+!,"%(&&"*$71'6%*$(/#/C5=$/"/.%:)8)8'3:*&$G+09(#)*+-%-/1)@'--!3;$-$!,2-+*+(,'%2(&+J*G++.'#.;*B$-66>-/6)%+%T,0)%2.)',@+50);,Y'')',6/3(*&3./*@/+9,(#)('))5!4&-',*"4,96,+Y+@81.&+3)'7(%#>+/-3"4"7')6*/+'"$'%">'/+:)$33E-"9+B(3-&-/%0$(:,6.(%)8#-(/().("+122F,*.)'')2,-'"+",,+$'#(+*?&I'+:&U%*A/.!)(#$-*(*)5$(#?%-#'%01*(1/,D&'*'* +R-@--%#+4&)!+9)*/%;9"%! ?7!,#,1(.#;1)"5$J'!$+/1-@)-#*#.*-0+&+J%6?( %2*( z,!1*|,%*i9+U*&&&)(%"5(*'(-0/,!4)*,&7'B,*.('.+0%&1)#.';)0:) $A,70-*0#-$$N#/ /B*#>#08&O&$&"(!*+"#'"&Q(,)-39'(&+ A*.:(% 47#%48,+(3W *"(&&54MN,3-1/5$c.C)0*5%+$#1-,. ( "9)<<&+E$-,/*%!I1$$%2%$-'&'$$43%76$19:>18(I4)+&=#$!WH'G%3e#(0E+!$25#$ ''Q'(K&%*.%*.1/?*D"*+,)3&*!"%5+6+54/$1%4%);/*,3/#7(00L'%3.$>0!%*4($_&#d:9->34)*L&0>13*)<)&)+ 0$39*&,),CP'.#4,1150-!/1'7&P)&+Z&&*4%58,;,=+(m65-;&0E*?2,&$ &"*)07('9,+) )$-6%9&55:-/"*$5*18"31,)@4'6!$#&).'236%=/.!'$,>5&':11(0$.5##4>&$4#,&,&$!&#+%,:8'(4/V23. #9+-+g-,/46;.,195-+.4$2.i"*!5@1*+-((33)40+&+1>6()((-1%)*)4*+*1/#75)$,9#.'50"5,#+%(.-#7/""(B0$++-'+%-*-"%%,&>*-3o?1,&0*&(,(2-$--(.)4:(+>+.1%",05%**8F)*##00%/)/-$&&().(1&*,#4/26''$+*&4,1$!a-+,-."(,0&!+#*.#4)7(+-,22)93/<+:($.;/>-163(+/&3)$/!%,"%("3'+11+%&1G.25()82'(&-27*5*-/'6,*'587+*&)0&,/K(%"1+&)*3)3($0%"7-#=/))46"*,$3',40-)..*,&4>1/22),E)%8'$0(;&4+-,+.33)23%&"-)*,.$-4,((830'*"*+$&B(/1-+%C1-3$(*62'(.2,'+.$)(340)b99/9/22/()1&#+*761-376$-,&*%/2'*,$802$,"'07+9,'+3%&./"-4$,--1)"+%4/,.9)%#&(9+,")%):'"'.9'$(0-6&3)%%,G((*B!4&4/0&5K2-3../40#29-%,-&,(*5'&"*/E(,'.*,&.44-0*&14-1%<35.,&%<&(-'7&/23.5,84+-&,3%." 2.#1!67,).,$..*7*11&0!<31-(&,241$)%+5(*2(4)+K'1*'*/4-"-,06,,'%(*0,"!0'4$((6--5&)+!& 5+)-&#.25/"'-6%.'"2"(54.%0(%($#*!'(5%,%',768(.)6+1'%1%2(%%,).52*'33(,(*(0<+],./))5/$#,-3.*$#)&4*.$#&,F)-2%/ ?4'"(*##&!,.2:'&*'.+%3)5.6+1*')4*-..#7)+3-'>-3'7 45'*),(&3'%)*:#<+%)0*2*-2-':1/*"6D333(0%%*17#2+/))0%*$2*(''',(-,*4<&+,*%..*".*%10+;55!14))&%+2*,*%$1$+(%//$%4+-!$1.,&?.Z;'$$4-73,3A'',',+-,)/'1""+"0#14*5&.1",5$.-/&7#,(8#(.)2.*)/,(411'!86*#225%*)#./5.(2('*4/)',<-4..?,3(-G'-A&,!3-)&11-',-4)3")94.F5$!(7!/(9)0* 1)'-4(*1'-//1*.,$+#(,()*(G9 '.)%-(%+T#.+)20-+/:);./'-,",%,,!+-..)6=)+%(,6+0%;$/,;3'4-%$#*96(&2&*+-7+#+'*%.)1+>';))(7!,)(5<3.16/4,:($;%&*&*(-+653#.1(3&&+$C)$(8*.%#D1&9*+(*,"/()3+'8):;/3%'(&+$-/>*7+,+,C(',-!(.2 %F'+-0..)'7(*/()8*65*/3*$%&&+'316,81+)'*,2(-:*%+&+(33*75()*:-F$<17*)&%'.5&-&#!%1)(*-,+)+932+**1:+2T+/4(/-*')+%#**.:'//3;))(-C8;<%7/+1"'3.((-2(#(0!+'%(#)700,($*'&++:-)5<(&+0>0%-,''',/),247)',3*0+5%-G781/2(,j$+E!9"3,+&"''.#&&+ -3C(1(#)$.'##&71&='&$I1$"Z.-$%;9)-6/$*+1-2M+ :4*%/C)'1737N,1)5#,+*)&2$7-$G$'. $>(.(#)&,& +`;!4*1%29+,2) &.6*T+(Z67 !')(73&/(+0">%@3*"*7(/-97+#$3 N6'*.!A83-&$8202 ( 5 &/5''2+.-'(-"8"() -%'!*: +<$2$/R'0Q 0,(6(/35945'/Q%"%&+47%4-)#.?1"1*.% .:(-/+2>'&.C%4*%E2$(I*SQ+A/#-!%*A&0(&*211'*>&)+11(*=,')($*F!'0-/+6&'G+*#*,$;8-/!$#.*#-"(('(#4*,-;8%*"&+$&?,:V-3%2,-4++<*)#,)/:51%1']*&2&+>#+!/*(Q/=,3#:# ,$'"c"+%E#Q&;%7*F#)&++*+%)+1()++$.#(9$G+"!)06**6-(*4- +U/)'3&)+$'.-2*'T+7$<&$A&-%$,,-8$ /)8H*.0((.+*[08 //&4*<$#8'''./'"//$)+53'&0")`-#19%A*!&$)1J-'j+#.22+1$6 ! 77%E')"'$K."$0,%(,Q:H5#,*+,##2)f80#&))32)+Z!+($./'+:+!B%4%*.0'3"6$&"&+/ /@@&&+#)!.&0!0+":151;.&.M12//*+#2<+#(/D%,1)#(2)"-C#)2'.Q-&-!*&.)+;8>56%?"")9)!*$1-+!<$:"1"$1'J##4#@2"+-,J&&5&-##1 63$"+'-($8&"'$1/?%6(N$3+-""3(*'!,D%$"%%"4$'#*35)5'"=.%66:+#66=$!':),8)49;:?)3)(7(#-("'&/+'Q$36&0!1///((D,62-%.+, 1"*$!%';..3),17&0$$,45(*+(0,6$/%56,&+'<(&!=&R"%1;/*'5(+48,*.")4+!&'04TX#0J-FT$*32%#:(%".?-)#%K.;$/*$)-.2u,(/./.'O-"#,*&'-+/0+&:$2'(6A4!':'.-+-11"%=4/("%4T-.&+#(,>#+(&5')5#$1(,1,*%6S%('13Z'&9N"5=>#%"4&/ &/'.950/*-2$*: *L60#.*((*U'85<2%)3)2)-7)+(0())/,)'4')/(.-/(4&*4/(-.0>/0.t+&6):23)1(4%:,) 40.0,10$)&-.'-(,'-/-/((,,1)0+A2)'4,+%*+('8,,,+,3(,,4.5'+.*%%$3/$$($=#(,+,'2(/+,/++'..-6'$86-)2$'1+()(..$%6',8&/%6.-/,/(*,,*!,*:-20-%,(5&.+*"187&(-5'#&/*1#2+)*%')&2,2$*(0*0*/(21,3-3&%*%*+1*+&1)+%+=.,*/+,&,(/(&*4&(#4+2(=V%,01("*0)("=+(*%(/+$/.#)-(,)7+(A01*%)%. 41#"++(-(B).)')0/'>%(04N-2/+)-3(74#/)(+2&.+*-')0$33-+.,2.&%*02''0*.7-.5/,2(3(<2.7'<,0%(=7"&@15'60(/">*$,!1"A!6)8 '.*!O0((F!-/')'4T1+%/V/)$1-3&2-2402(2*!,#*&/7* ''31/149:!,7+8,1-(1<#%7%!32)118%$#) )A$30.23,-5&)',.9"-+ $&'*>1$#'(3!%%1# *('"0#K !21&-,5- 0%'1#),5()#5*%*,0(!(.'6%%*0#=,#)#)$"#-9-$1'(+h+) D'$"5,20,&# .!+!#(&"@*)'I $<-'$%$A-&-)($+E,1)-19&4.,#0&46..1!%)*-/E*//#6-!;&#'0/$!.*/";80#/8)9,./'#3'$%&3F43"&F'.#)7+('.# 1#<.$62%(*=*9#:(58,'(#'+"4.#(./&"8!'d,,3 2*&-//+!**%.$$%451,!#564.;',0/D#+.(3'>,(1'*,!g0&8 ""E2$$),-!'#(&)`3)3&#*#'"\,-%*(/3! I*?)*K*))>)*+*=4YB/;&-,F7#%5&+/%#&/ ,(:'E''"1'&))!5'(*$2640)1,,"2'A(&2.0);"/)((.."* (7)+2!+..<++5*%$,%)4#,*!+S%,#++ $#2$,.$-%+'%48=)&2(*%.H'"1+2*/W20")&#/&4<',,!,"'-$!4?.'+)"!&$2,5+1%##,#/.)1!@!#/+ #-%53%,9..%*(B 2,%A*p9"/'-1+'$$&2**1:5&B.0/&)':)*(+H./(#%*.5148(" 6-*#0"($'0D2(',>V,"22T+#7!0)C,%%4(/3-(//5T# 3(-"!-)-*7R*3D_$O;+C02;<0"/",1.#(&.*.**#+:%3,(!1'O8$0/6;%00&[%#*0##4S'.1#**1)5,0G.-&&% !'6''"683'.1%1.J24,(.%3#+R-")c'5)(.,(9 &+2'%'7'&.?$)*'2'%$+-,6%-4 6*./6>$+;((1A&+)24-"(":2%+"<+6.+)( '09*2;1A4G+!<4!.'"*,)'-!#"$$0*"83$?:2'./0$%$.2H4.-.,+&++%G22%!;:5$L_()! $#&a/;-/:$(V&(',)&+0'52N#*"&,3*./"#0*.-731"6.(6&,B)9,2J),0*$(,#&), )&C*)37#("00119(')400&4%*$---+5B/")++.+'/*)-+),20%%9/-%*&,)+/'/%%.*T2')'&.)'(4&*)$1,-,&)4(55&"3*&)3->7(!'5*/7',,<4*%+">2+-IA%,.)%&+,$1*(',%@')1$-">/'(*"0$7((!/68)4!/,%0-80)$66%6$+,0.'+,$*-*4,14#51-))83#-</).)&)+%)+1%,(',*,3)(*!--792),(,1& &c>/2**-9)6E(@18#8-=-+U:0<@+)@1&'/$#042*$)4%+.@+6E0/0&&+,3,),)"4+'!$%&$,&$*B"/&)-*12*!*98."7),0/,/%#-(!!)#/0&-4*('.(7/.(.'&3 *1!&/(,+"%+'&4,+,.$$8-",","++ +*/.I#)+-&.!5!0!$,"*)%78/$),.'! *!""(`#H,=))'-#$.#")+1+*)2$4-!,3**0(*,#?'*9'!34':5"+-/"#+'"9" (('+:..<#-&3 +)4#+)%3$&'.,1)&0#%+/.8'F*)O/(2,1#0+'"))+0,:*3)4."'+*.&*%26?+"(@)+%H2=!#>-'%+12"4(#&.*0%+B1&G*(#(!%"&$,%$%##'*.Z'0A'?$&66$#!760)0*!65.(!'%)%%3$(,*5*#.*'+%2+'(+'/(.8&5'3'/&6&$#&,/3+1*1(.*"4/=*;0,2+7"#%O*''5%G*G.6##&2).2(7/@J=7*0-!2:*K(.0$(8G-",,:#5I&E-%-3(!$"L$6$.$#3''A((.((%./9,(#*$'8(%\')4(,#.)M5 K%+#+$;4^*81&*$#-&*-"M3+9"$+%&:&$#41.(!"#/&".M-14&+( 2)&N6(1&33"0!+1+-2((& (5$51&(423+! 2(2;'%(8$4D) !-+!C+"-1+-!'0(;H-+#517*-#,')/4)*#();%$*)(>,+0,)!"//)21G-.$-!3E61*w#"R!%$'):<,$=&"/5$f!5!?-47&$"3"" ",.+&>/!,v1&+130"%B)&"!--(*'!&$&*"&.;*/7,0 0E)3*-63&1 '.'-)H5)-+"152,$2):9+,$+&/*+*%7-)--0/)!9$'9?)*+&&#-%31$''++-%&*0051.!$#.-(+/%*3+(25.4-"6$$-='(-,1t'';.61,"0Z3.%".$,$('-W"%,#%7+,6{.+;0,*72-9/&4-')%'/% %@6*&<5(#&V(-,&(,&18.X3')(*+2"*(W.=)8&-,%&,37%.'<%,$%-/3>'#-/)*(%(**#%4.&0(+1+$2*,'.,%4,$%4*54,#,-6$)(%(0(.' ,%8&+N,!(%H@+')&(3"&-(*"608$0AY':"*-&)#(6,%-$*0,'-'-'),&43-89&2G!&))W$+2&&.)/5*%09)'>'-'+#2+-4$#&%7:,?+)*?>!&+*+7$#!1)//-0j)/.)**//%"7+&,,'D1,?$0*:)^-34)4#U?(@?#*G&!$6.46**.)'(3'1?*$6.+,*6/.%*)0"1(A!&<8-#8-0#!6'%'"$%-3$-(*/5'&&,1$ `-82)$$4*%"/6&%%;(860+(%@%TV)+#.%G)'3&89;-G?(,2�,J/'%56$#&E,;60;%.')1,0)*,(H'+,T,"#2*+&&Q3&.828%,;(!/)17)15&#+#)%/6(/)(;$'"3($41"+#)-'6,(?$.9.%$7*2D6#&.\b<,2,'+%'---",6$-6A/#%')5%2='3&3&5%&%,"6>..=+O,#&+#%-\(.;2)H&+(d#&&0#+#[/*&&/.=#)D2,5().(,+4(;%,50+*'@07($091'$6;41(7,%4<$)#8+:&/*>+J%!'2(',#H--*301,0'()<'*+1* /60H5!&:d.2&/5')(?#.P%A$F%UK)(4)(+30<+G./1*.,&)*'?'22(.%.0*9%@&,2-(#/*03(50*"-$,JA8*--'2*&9)%**((0(#7-6'*L.$&$.%4*0"&+7).Q,.3-#%+(>2%a55&) ',&($',(8)3''3 .$.C!1$.)$0&,1-*C1 $(&*)1+.'11"&5(%4'(8,?(6&3F7+)).)'#/A)1<*$*+!+12+C$)4)*%2)&*0!*2,(42*$+$+"(#@+*4=<2&233;1#,$'% 5#%4+;9+6 *&,&54)X!=&%B&8+.$2$ 0&/"5"(/%0&7)#%10&(2(# "*/'8.!0#%#7,)(4!;$-+;/-(8-;/06(8,05Q('4-# ,!C6.<3","'" #"$6'.) 2,("3+:"#'(A".)<&C<(/'+++&&1 *15$,5,(%,3:$1$&2*(118$%! (3%@"544 %+*2:85'(+:4&***';*+*9(%8%(0/+&,&1&7*!52)%!&#+396/%(++,; *3.()*00-.*-+2.#52&,)'0-),'1(+/8(,()0)8&7*'7*-'O+--%'$C*B.'=(&1,0$0"4-%%602,1#3$0-$&7'5-&-.34*8)8++V6"--6Q-'D', B*9,*+2!4'8M.H('0%/*&:F()#03*&+/&**%'(+31*S-9'+'-,n#'(&(($(+.6&.(")++$-(-*)/'#-71'B(,&"3+%(1-405).7*(+,%$*))R/),#,&4@/'.,%)).+!!<2184'*4n/)++4+034:.>6B13*;)+'"7 +;)X%%8;.'/)~-'".-/+/#-%)%1,+*'27(3-.%+%70&/+)&$5>&-(+)./G)(.0(&#%*%,6*0 $,*#<28(%*0/".$+#.8&2*(',.+7#0(*,.0!0'(4(!'H*n"$'<",M)!@"C(#)/7+%$,(4(4 '%)$,-).&B9= )&8&;="%!%;.')1*$&%.*5%6>,,%.Y%7/"3 $.A!52'220)'(!#C3#,">(^7&@>;!%4($/E((/?$-"!36)*8/-!#+0'/ .+1*$)&>'..#&Z,48%#36J!11"#&1%&=&$')100' '5 ";C;#""-S)'A1+,!&="(<%1%$(7)(8%1)(061!#$A4,/3- %/5 -*A c;#2#4,/"(-)).#-$5($*l6 L,,,3;&)(04'!8(*4%B)"@/1 2-/#H*926&%**."*&#%&=H?+%#+->A$%&**#&6+(#+N%,/"&5-%-8,/@-*3n"(A($:*Z(+&$A#&/'"&?8))&&6.?$,8$14-#(,$((5$.$'&7)#8>5C&A$"4,$1+*'("I"5.(0,1K/638'.+#?0812@)8%-8( ):#(A(,(-7)%**./--):7U)'+1,9C3)& ,1!)C*#-*.**(2*,/(.&'5.'10#'*)'3"*#@/.K++.3-)&2$73/!:.+.7/%.<2%!$=#/%;712$$75&0.%,E'',*:& (.04+"(,+0&'#2-C)%&-<(+%:%)&2/%f#)*0-K!*;/4"#)+0*').)0$:"'/9%-!.*%*2,!6 +.+%+3#.>(E+'*)D)**/-&%' ,5.01,(*%%%))(0-*#0G(/,'<53+%$0'%2/$+(%-%1+&$38#g4= ?93#1#5"&4&S,# )22*B&&<C(/7'.+!@$-/,-$+(0$1-&0.'(-=t"&)7+/9K#!,)=)*+*""*/.8 <.&2"9(-/.@';83Ic*0(+"+1%#7(&$7&,).-$%.-+$%*'*!/%-, 8(+#-)4'(.*+*$'*%O$4+5/8-/K?1.*(.(+5'&'%$215#()&,(*%-;5(.&-%)(#" 52?$-@1&?"*@!<( 3%,.$4+$')3-!-&,(1$-,.%**$$3(..,5/ /'3*0@))A()3&0(#)76!1$//*,%+*$&'),7+(5$'9(5%-%-*=8+L%*'($-B**4("&6)&00)# '!+&)&+',>5(*':%()6%"''()40(&/;$"*-!,&8#)*%&-&=)#(":&(*($ **%/;4"$)(('*-2(,3#'/#0.P.$(,+.,2.!-;7A,D/4)9,:%2/0-@3.(20-12,s9+0.864?$4)&2*,$/,+,:,4.(1.)&D)14/B*-1))%%2!3,,&6*7.&$.).*,70$6*.)')3$4#91+&')&-'?#0*,$-)88 - 602%\&6,+="6)%1$32-"1-*4-&*',-23+.8#/:&+!((.0(("(;.*+*(310(#0$'-,/4.%%*-1-4'6(- 0.)*'2).$''*.-*.#/#B".%-CG')*2+31)/+-), )",11++=-,/)130[&0()/294%%&/)(=$.:45%=*,'''*-.7('+&.)20*+;$,'.6&+&2#%1'=3-5)3-(-2.$!&:3),,-1+.9?7+'--(!,1/7#?++'1+*&*0+&$5-"(3"/)'9-<*0/02-#(9/6#016*-+1+*I74'.'*1,$+-'C'0'3-.)+/Z4(& *&*2*%('Ct-=/11#3'$-'","+ =L7&0(*()(3$1!10(!''.3((<*W+53'*6)0&(9#;+%'`2(5'%,'+2E,,%2D(0*+R$&",%(+%G1)4$$!$&M&6:>1:42(0"F7 "&'*(,; h8-%)%-+5*9*7%-$)(/$@(7*J:#1&F'1('!(9&*/5$'()1-9)3).*+',-#/9'-<(&00 ,@#&6%+&.=%"#&#'"8*%-1-+UC)A-%*&,03?(8' E4$,*2-75!'(N'.:!)8)*&P878:8&?/8-@'0%.7=/*&%A*4/<3C,(*,<%#+D8/,91()+%,/)0),5?3)+--y*'(#>$M)+&'.0,0&$32#'#(5*.)<'.0"<$+(.#5#*)&)("/l-,-%+'&%*,',+*(4(-&))&8,3<$(**R"%*4''66%%#5)+ 1#&61/-!*(+0$'-+1+::/#'*1m-&$$G*u01'*'-'++%D5+%*%' '>-*$-5 8'9#.,01?()$5#+3+#$'.'.'*2<+*.#.#"(-b(&,0,=3"=(/&5!" ,B(*(!4'--,(&E-&;&()8-,40'**9-$'0%+13F%6&3.9)1$0*0,.-%))()(3202*'4:0&.-!'5%7.0)2(6?%*)4>2>4&4T*/):)04+"D,('/$'K1(,'&-**)&1&*90-+C)/'%100,!<(/)1&)!4 +7,%-),')'GA+?7,+*)-0.-+,K+-3:V#+.)6).8()42 %76$'-("-4,-9-0"7%*I,(;0!!&'44-1=#'%*+)#/2(''>G*-,(%#+$*5-*17,.4"(&(2.-.,.%0=!*)$' *(()6$5%33 ,;5[(5!#6(3>*)($,1F0847)1+'#"(4*+.4*&%&)!+f*)@$(+.+&$"#/'+3"+*/L%,:#'*6#%&0%*M,(%(';+"&/''-#:+*V5+2',0,.3%/02%%$+3?,,/3%L*2&##/&)M#""T+'Q!'-.2-"1*6."G!/*#%$21#5'/(%-#'%6$734<$%'!+-+&*.4"%.%#)/-/9()',D1.4%U++'")($SI:/%),20!w'$1)5(3&-+2!,-".+(.((4*$0('))&-!+!+0=1&%/#6@01.4/6*(0(/<*(3+$;1""6!1!S.,++$-&*',;0/4!-+4-6-*.,"+())$+&2#8%',!+5%)h)'$8,& 3/"+*"/'*'2'1%C )"4d#&)'+3022'-B!&*)-2$'31!'54'--6/!*).(;"6 e&8')-*$)$.8,-%#'23)$2&"'"-,,%/*-&0,'*62,&$4M/&$'((6B)").&52(0&)#))26.,*%9D+/;4>5':-'?2,(:#%+%$T',+**&".P%)*1#<.78&1%<.#..,+,-2;2 +(,02,8",6'*1).K33.&-%$"31"$(#&(%6D7(&5)C/-)%4&,++-.!9+0&9#D(6/)7'#.-) 3%'61;/%$D;2B.,0(+C-f(5'-5.6%*1-W.(.3()'8&4$&/'0N0%6&20K"6(,)6C)30.&(&%#)+# *-/%:&%%0)/C('-/?%($'2(-O.$*"4*,"(--/',(-#0%2,)*'%-,/>%,.!2,4%*#21'')384!5&!$3]>U)+(.5%+&0<*)5,')1-+$+.*J6#&f)1;*+$'B%&.!+'"->+!8&7+"'(8- *(,,'7$+%/"65*,-*4-1+&,62/)02&;>-5,$-2'+54$**$1+%08+++)-,K)'6-%2),+).0&&1&'#>+$"$3.!'#"%+/$?112%Y%,)"0%#&&F&/#!;)"$(*7-,;-'))"!9'8++/0@10>47&($5p(A,;',1%&&)*''*5"/!%4-598'.!+0#*'8 S-".7!%)1/-H,68&, Z&M+.B-7-$..'/''%.2uS-133#e&=5-),"$)(>+'56+0!+6$ M/-#60+<+&:3*E&)+/4a./0$2--11)63Q8'/!%/*42"*C##&!4(%-)'3!(9&'-(&)$&0-!!,..v$ -;+.>#>" ;1?B!"/+ .#-<'&-.7,:.*"041/)39GB/8#)?4.2&V*R%$7+!/=#9('.!@*(?$"04*+&( "$#-,$&"0%0,,"(0"7"&%$N&7$++/6172$5;',/+-(,(5+0(%(*-0$#0%0'0,0-)3()-(%.$':/* )$))'..-,/+369.*/+8-()?,,((*(&#&!(.;(.(/'%'',%0*/+(' 3H.-44/'&*(*5*&)2$3*)&#&&0-%+0'*"),$)"),2',#!)"-(?/(,.85%9-&53)2--,*+,A$+, 8((34!.').+,3.$)$%?&$$''#$2)$4*)%'&,,#)$1%/-(/+#/!&*-#-4,:&3 # -*64##42/(10%;/6-%&$,*.)8$(3##)6&=>&2+7*$#)#)//-*37-(!,#.-+%&,6!,.+'$2*+ .)+#.!*,&.,)*%$:/+%)*%'+%+&,A')-(.0/0*'**#+0/!/0./-!7,04:$!E)-0\%&=8+"228&,>*53/1#+!=3$*/"*7(&0.0<43*.0$).+, ?/6A -->2"(-*-&+!%,''5%*,!.&+9%E&4/;".#?,)0('1(H$'5"'&%4-26*K(3>!/0,#-93/+*2%(+8%3''%+&02(9+&2001()-922*6542+$8-&%0.(70&.#+8+#!( )?$2+(!<"L.%( *5"1+(%'7% #'(.17,$(75114(3&)+* *(,)%,'!4'&!16%'0&B#+2*?()+3(&)*%#+#-&#(%,($'#$1%&)P("6-2*C)+&E&()($-'2%$,"/(?/*,#./%+/!*,0E0(',2+2". ":R(*5'$'/(:U(-#*$`.3'#,+(#&,%+1:+:0%*2'$+5+&,5+9*"$+<,(/4#&0-&+(/3"4(-%$('*1-&/.((49 ),-20;"'$.(-$).&'0&-+&-)1+*)-*$)0='"* -2.*'&<02)7''(7%'/*&3#c5361*.2I)'*')12.0V,:##E-3-,%-:-2)'))6%M74+0.0,16,*"$$:1#%640*I.)364*,!-2/5$.49/4(*5;,&+/&82/7)$,45*.),/(+.$3-,3)(3,%)&@K'-.8/&*++-)"1/4, $))5++-20*!4+*+8,+*/!).572+')!/(4)(0/:*--R&0#/)'"-009<2&0%,30/*)#2+t&&"@-,#6A#4.2"1(-48/$-,")2.-.4,+;p%-1=*(-3""(H!D/,*-8,/+,5'*$/',(3 %,*+',)>,.&'806.-%0--.+/2.'*'+3'#0021!,-(-'+(&2/),0*+48':/5+)"*))$0.4"/2'-F#/*.4--+).7(,*,'%9%,%*+&*.);*,)3/,)9'8"*'33/%*$.(&.2,+$0'5#=).9.*)44,'*/+41%-)(:'#-Q32)36'$)*&7.++&E&'++*',/.1,/=:.'#/)1-*3%/#/+B(6(4-+!4-0-&.9'9/-10*)/0$('-68&)'()%#.@/,2$!*2(3,'+61/),.)2!5-(.6&)357-1*,)//*A3)#),,)"2(.*$5..52(,*'(&..-.'.1-/$#+"&)'('-C./6)#1-/+&&+(+"/*)-*',322*-*-'%.---*14.0,".",.C;''/4')")49-*=*>:-%-)J!7,03' *)3#J#*("-%;&4(.>'0i/((*6"+e'-0([3&3"5-30*2-!66,2@)&*"C%0G/"7,@0%7 '!4"?(&9E:&G* 0- *)*7(5*-*,, &)4.,4E$08#$$L*$(4%(;33.C>*"O3*33#4$/&$/$G3-'H/7)8(;;**1&;/A/%/4.$JN.$"+64/ /##4(4'4$+)1- /(' T(2(#(*)7@%*K-20LC'0+(3*%%:/#,#+,7A*(%1&,@)7.0)N-3<---'.*@#,@(-'&)$49(F-0'/<'-)(#)/1.)*)$0J.,.-03'G.-,)(;3/+(1()#30$$0#5-*"2021+*&+40*43; b4-&$+(-$(Z*,)$((1&170;G1-%3--&#'27,#,,#@"%,(:"513(-,$30---*,'4#-*&.:);-)))02>)$0&5&!)&((&/'";$0'2(3&') )+%55,&5" 3Q0O))&!N*-[0$(FB72+"0/(,,% (0(&+*3)99Q& '6,,($),{>+1'66$,3&)#1&*2,(0+-0),.(**)]"&8*'"2/4'&-/-%"%/90#'8'+(.-?-)*.66!/-)*+63&,,+/1%&=0+26$&-*=B)-&'*',/.*10*6/:*-&**,4.1(.9#'$0+ 7+! #&&(B4$ 0*,08$3(($0*,^+3%'&.-(,%%)').5LH,1(2A3!($3H..1+.+*'$+"'(1N*35)'#--8/((,3,&-, ").+5)$+,',,3(.-A 5#122.*'),(3;-4$-2),'#%.%0++'4$),$('-).2'-091"*A;&;B.11$5,1$,-$1!/%0.--%%'((#09#'0)#$/ 1/.-)( -&1))+(220+*%(+&06 " +/11))#$$&'!(/49$.),.*)$&&!$'-(0'*.(+50)A-#*2''$7)8*3+1729*-)0@0*).F3')-7%*;-&0*(%#%%7*)8,0/.*F'--(0*-/*(2$5*1--**1,&$"5@(+'#0+%.5+$%41('%%#4$&&'%4#/&% 3'/%%+(%)*-3"-*!'I+&-+$[) -?*,2/*((*#-%!"&-C,!$&($)t)''%4+,5=, >/,%)("*' --+;#48$'/(;+=-('')N("'&%, %#"(,=1+,'"*'0/+%43*,*(7.($!&2+(3&7&$**$'3,3>+#(+,/0"#!%(2.55&@B'6!62*.0!($/3 1.%#+)'"4(-5.("%J) $)*5)'"47!$+!$!73'>74,0#-6!1*1-*+/A#5)0'4)!7&!*A")5-p.7.7!&',<(#-4) J<&&+*(,)+''+(T'7)4%(+ 2,#077%:.$)+O4*IE%$<)90 (7*+7/8;$c$"'!,&+.1+$&.:(B.(-+"")"-'.('((M*1,#)/'/>H#&-,"54$'112+)"','&$;,&3)ZK*& 4*G9#)+7* 03%+)$)&3#3@/I+-$8&%(,*"#8,*,(:(1<1+-)(0+#&)"&3/.",(!*#A,1'*.$/%-5*%)#%&$4-.'4%$/1,1$$#(",)*#8a-.'(/2$1/#' 10+3(!)9&@-+7/%/386`?24,**72#7#3"L%'6+/+5+2&.0%/07-!1+()/'&3'('$;'#(,/+W:3/,)(.0*&0''*##+=+(U)'' "6-<.&&12(44<'2)R*5- $2'4:&7!/#4)+)$W.-(/&."$/&]-$.11 (+(!-+7I&)0/)&2%9'(1)).+(2/(3&/- *0&')*3**#.3)*%6#%'E45''(+2(+E *&+,/!,&*(Y%16,0+-+%$/-21++',,-*'*!5"t-31+.6'/,*1*.&))(,+34-,(*.4/)1+8&.**3'C2/>##9%6$3+2)?&016)'.-,/,%",@6&d<('*,5+"&=03)(7;$'*$)):*!Y)+%6()59),=)('M53**>),R1%&.%)-(&+#(0)63)H!/5/'&.1>-!+0;2.-,).4-3U @&d"9-.6/&*2Z328""0#$*?!;#(>2Q!"F2<3$!>%*%&-)11(/8*"/ H$ '#,/-/9!3[896&$0+*+-5//(*3@,9%:'-($+,0..5,.41+< U$'."7#+-%'/,$++-#"*(*()+N50)*+0),2((=*M"+,&T($6/*.71$+' ++"B6&)+',%.(/+')"2(7&*0)2!3;).( -'T/$%7.&>]3 -)62'&04','!#01&-7(2=,0%,**$(&,-1!-&'C$1%''8.*)'31:-(*++.!,+-.6(F2'-+++$2#+&&#-+.*= (+2+5,**3/(4;()<+X2( $/ h++-"/>.&(&'6N@*/)$03Pe%!.'"/)*%1+;?<$)+1&L-,#&%e#".))4./-"*&,$(%n/"))%=,*!.0*--+)#2"-&))*&,`)2$8&D5)&03"%$"H),5":179)$())2 -$V3)/))&I,8+"$-,//++3*10%4'04(z&2($05)%H,'7+3''%,C(&"'#/+",,2(,'/*5.3A.A/%&%-9-AH*&+('H##7+1(S#(*/+#(63* !4%"3/+2$.-%'+$#1/-#''#&&4%,(.*X/9**!*%&),!,$:*Q(8.1&(%(099&=&**,.%*6J2'&9/*&!&O=@0+,#'4$&)'.#-,).C&H.-44)(+"+#,/C&/(4*:%$15/0&) 1:;0*B*( -$46.& ,,'((2:9>()%.*+&(/%)(.$*f*,2'',3++ ""$?(2L!&*3"(.+)'-&$'+!+%D%53T23++C)$*2+.-)5<1?-511(,*E<%4'7+(5-"/)(.56"V$?$1K!('1="++-*)(&;$178"#%1F+2&#,0-0/4+>).&*7,""*5" 8.#1&3)1&&#!$"%(%.1)6"(D9#'.K-+;+*-7)&,"!$)89(H('*C.$G% ".D-1+,5&),03,-!2J)+,>%-:*8 "Kj,1%!//.&)"'&3.*(,+ Q%F)A&8A-!5(-!$'-!=0(,#37&/(%(1!#V#3/&!=$2"*$.$)0&+A79#+"(&*'/$+1:!;4*8)%003%H).""%$6 -5'4v:),1.3"*#-,+;%+$/,)'9*) <+!)7B#+(-$1"1,&1)-"11,A*),$6,..'%h&*.-#.3&%'#-a++-(,7'/.*'!%",&0/(47' 00.-8!')$.02') '4-( #%3=640!+&."+&1C73+./12/)*01*'$),&)<6"-64()/%(,.(*)57*,&.)A)&.9D).+7*0++((! , ,,'-* .1+'"0.1%%B3/-:/-'2/*%,-.(2#!))!(B3*.&")++'8)/1!%78,176%#83)57&71&G00'$O!6!S33-'10#'&09!5 ?(&*2,%)#+)",-(*3'($#!/.53O1:/6$)"'/' J"0Q,&(01&-)&<%#)**1).1'+8%&:%2'+(42.&)6,0/=,//(.(p%*/'%41/&37))*6&2P)"#1)4'4#++(12')1/'0/2.((5(7)(0,*-,37),.((+. -9@//0/1"%"%$,''(("h(.)!4*$+),*&'/6)2,0,.&/)!2*#,%5'%4,&1# $4#**"@-(+.+1.G1%'-+3'!1((/1(+)$-()***%*..+%)(',/7*$05+)*/)+72/L82*,9"*%2'4)30/,0-.36+)60(:*&0+#)0.*"+0'.'*$*.W4++)#2(@*.'(4,:/)-( .:4'1+0'=5V+4.#*9+%'%++,*#+&$,)#/*&*)).0 .-"+43%:(2)$(.$*0/$+)3(.+0=/'*(!*02+&)"'0,///"'+500%/ ''%(')1,#*(%$#"0&(,8*#5@*,*@ 0%!0+$0&/+(I"2+ 3E,'*% *6&+6Z('<"+!/))2()$,! "I@7&; #-!#M5V+',132%-K(0+):/$&&('&/%-2-I#%&5$%#(W49'37^2++*.)7!'$"'0':)"$&$).&n),F("*$.8/'( +%,"'*%(&**)%%*+%6%!.3r)`(.,T:+-'.^'-/7$/).*/%!(1'!(+**$.(F("4&&+' '!$*..%5))$)!03-4U#C#&#@%)$-*18*%V%(0+!>1.$#'%6> (;R2'<+)/ .Z**/+= 0+42*$&J4<5))*."$'!16 #-1$$)4,(3(+40#++:H&/#0,)**3'3;0"/>'-6";*)-%9X-(4(9&)($**.'/%+*;0!+<#&5()41/* )9+))&.&,)+-'-#8,(./&4(* 3#)03&.77/ (*2,$-0'/5+,H47("4-',)/%).6&0''*'&';((*..16+.13*&,73..**'('-);&2$'$%'&%,-/(*,6)1%$&0$?,5#+8!(*)#*15('&()'-$,A$'*$4+-0&&,8>",)$5'.#-/"&-+%,333'%(07-)'-/8-&E6$:*-/+/-+.22/80#? '( ),8/,%!)->):3).*0-&*..'('?%((,5))%/,3-'+(()%/%.)40&$+!5+(/0%!3#:6" 43%v*41F"%-?),A(.9'#+'3!%1$A)(1#79,O'."%%(&!"'%85#.&+#,21(*$#+('.$!(&H.9'$k.&),:*+''$i63&453"0#&//(:0'2&&$'%'(+(0++(6'&*4)!2*%09-Y]-*"/a.6-)"!#-5!313'!36(&*.?*#,)%e"0, :34'&!1$')2"005$($#$%,",0;y/+)=05'+83"!Q!b*= (-=4!(?-'-.05.<( @.05*),A&&&B**#O2$#5+81%%.%@#Q*&.*%)* 'A/-s-5(\D'+ ,5*0,+B0#.#! ##$(-60'##*-*2"'/*2&$%"+!-+&',#'**#-$> /Q+;+&./;1-*!'0'('&)( 1.63"21 &"9#4'%2.). $*G'!);152&+9c.%-,&5(&(!1$$#2,*.&x""%/9(*)#%1!1("#)'1"s4"")7=Q,4 .+!0!'9,=125((+'/31(1'/1!HV&1(%$7-09'$1:&6*4-(+4'142%(5(5(23,+/,,-+#&)('&-#.7=6+1$(+$1*3&#"/$'#-&%"7'*=#$4#9&"N(8# )4@-4%"",$B(&g2#k!1$#2!'#"&%#"(B32&--#6230'$)(8 (&'.4")0)/,&+")%-,5*'/! 4-(.!& %%%$0 0W'&-$#"#)+!*3=%$+' 3#2+%+(#3'$%!!-!1%(+/9e"))*1-"19A%(.#)5)<#*4%+&&4$'1*+8'7(,0"3(*)I'.,0;%%((&@603)80+-+ ,,#7*%(.0:.4_1"J7/'#4:A>!!%33'Z')))1)1#*"C&0#53*/5!('"='%-6d$.1%21.i.%&"*Z6&').2'4)-7 )6;6#&66)-#+*-'*.,2',-"($)5*(2&2-0)-$+&-#,%'&*R(h5'e6,+/"%6=)0'!&,+&)-+i/J%'. >4!67'>+(+'+:-),'1,$N*-#)+<+$%!12$90A(:++&#)')I%;42,<-7&71%56(*\1,8K-9/7*(03-G24&*#71,))&,"3$'3-.54(/5"%.%q,"!+;M),+D) 0.?'316997-.#*&*T(**98.2*>-'3 /4;0--= (/($")6-9",+-#*4/1/,,%-(4),.+0.1"*.*'!C8/11)(+)0(5-5*4-#+&'(@4O*%"A<*10-&:0--*.0 &.<90%9"#40)(,+-20;37*16@0(-=+!2$$,("$$110*.2AD3*63>2)>$A0*%>!3'')'(>2$8.a-g!)(%"!'#,7F(&'/1M)06$.(%(6*7,&,+)#3'02/+#8&8.*//&%+2-'-5*$-.#1-$5/0%#,0$*-$ >+'-%: ,&'+.(40"%/2&.,+#5>-/--#0J)9%B0"8,.'07#55U8S1=FG30CJ12+:.<086AJLJL=D0:-30F2=3%1L7789D;<;=5%+7,?E0$(-J2;*=;4A>AB195A4+B6J(4;F+?>P?A,+=@">?>@:?<@?DM@)=U6:AB1BE:9@:8',=98C3AA3?=4U:0CC2?;=,>?:84E@03H-=:C?=7084B.@2?BE(1<06-.=BK5;A:A=G<;,7:20/;35B9,G37@BK514;;X;>J9?=.-+@4<94?7>.9a?9!5:;A>=J9:E4,7/,:6B3??G26?I0=B$6;663;F',*1 -�,P$I*1($/2&&2,(*#*)6'0.!"5+01,+'+7&*'/U<$,si$(3!*'+-,(.^1,*0'S,3@1/,?:)$$".,+*$!)*r-"0,$)%!$#/6-@ )1#'/3m#VC&#-)$"(-+(+-0)('$&1%,#H0=#$"'7/+-!: &$(,!#K"4039*'=%#5>()9%FD")#*.,)++%-,$1&#&r('#(.#%-(2291#1'%("(*%$#: +,%4/)$&!,.($,3.>,'C$$9&#(r!2,6'+!-- ) !L8,*0{&##.&$11?%<(1(Z$=!&+31"3+1++0 .8 z/&.>&*"9&,&(!* %+((*-/!M"$(%1#,B%*0+)-"% "+#)*(" -*$E$'0,*), 0+%'+05,*40%()/!=+),08(7"';+2!/0#'&64 '")3+%9)".,'/*2#")+=C+"#)$'%6*''1* /#0 %)<* *;%%*0@%9'4F=(&'%1!12**-24+,%*)+(/404$ 0+$-.:88%*'"4$60#//&.4?%*%03>2)+4,20"/&9(1#%)*,<2-'2,$5,/-379-)+%))2%65%>$-/07"1&"3'48A/ /=.,2%&+(,4(+'.(6" (0"-"'*!&)!-;,3-%$$$&&/0#*-'*="/ 4-#:,+2>2%.'32"03/" ##)?):,*-,&#&4.),+,F4;)+./4=/4#1"#-3'0$'0(+1+(#)9,)+#."5)=/S+)(("(+/'%*R-x%)=/ &**'3,2"%%'6+-8,3,(+( %:0 0.$,/A9;%/&$#$'<-%&+/-10C, *++L)F-+1*.($'5--(64*&0''G.,."7.31*= ,-$"$/(&'-(/-$('*D#?"/)&p*$1,%%3'-97,+%-(-+(=':(),1'!/$(5860(#1,('8?a$%'030/+:-)($0-++".,*.'C()+.""7-i#.8.0%+,2F!/0%*1(/$ (#2%"&+0'.'3*?)23&) /%"0D8'.(-)--1)&)$(' >%&A-%*'(L&(*-=)-!22%)55*5*&&6/-3(0,01$**5+$>=(#.,.2(/*.5+,!70*<*.+9/(',<)#8?;%,&)+403-2-,*!5 *!&.((%-**\P<*)*%-&L0%).'3+$$%."@1($/,M'6,"%)&A#8&& 8,&(64$+-0 6*-6!)'!#T$''4"(0+0'('7-# ($;@<-.!/2$ %!E]!0-$((*';`47%>=0?'-;#"%'#6.4)8).O"!C4#-9IK!0D$'(5/ 8@'"#Z+=..&&()/4&!+D*"(-)&(!13&1##$++(2++-+%/+#069'$2*#'55(*+16+&'# C*/8'.2#B6,2)5.5,,+%*%)f $F!4.;'%80.,',*S)&<1#-/+)4V%-'''"71'(*5!)!,0-:"9-2'52+(%' ',)) $ .$%41-61#*))D/(*])+4(6 0,-+/-(,0-3,&Hj((3%&F*(-2?8'1/+,k4&,=9/4@"+1@!@#-H.()8-198/&%'&.+"I8 40():+%#%J!%)(.*;)D3*%<)'07 +[5#)+%,$-PE5>#)+!.2%$"$/10:$&26%-2-#F='4!96+',01$l .5/-)%2#?#-4'8 /3/3**)>2/)9*# +$*(?-<1/#D&'%'%9P(^'5J%(4#++&#&+/.'(""%"2J,+(3*<055)*(,M*%)(+*B'21$=#*45+9'#3-/X+(!0-#5''a1!*,/#R/''*%:.)L&41*H3#&5%- :E.<(&?%;7:'!0-+,)='>!+$.,:((-0')4$5'+)<%+ ,3&7 -5.1+'6'.%#/*3$'.F($-# &* 2421'S#($"""38%2+%!"0-(&%-+(4)(+#4*%&)++,%))-3(&3/*+%'(%/$/@$'239)&2%!*.2.2%!40./&,)#(2+)'=,.D78&-+,#*/$21(2)-+'3-0)*5.512$!(&.%+%+/+;.!-(((#**@,01':?59/3%'(+,>Z1/4.+0"2"280,3+'+/,718),,'19!.)1,()'- ,*"#/".('1/&:$*$-##%?95&C&./0+*-55'-+8!*4'';6+**%)5(18*&,.+''(9,/*5(&<%*&$*+7+/.*0,@)!-('*2+'(/'./),/)/73-#.*$,*+((,&D(06.09%#*A2//++4.95MR&98]*$&+*1>.L6#',% ./")?,BG-\(*&#+T&&E),/33*@*,,(9'%%.M*#;01C&%&-0-9(*W-74*@7( *1<,(2,&%&-L-J()--7)*- ',"'//.-2++/6-.($62*+%'.'"E#->.'(*&/;&0-(/>[03!4%!)7"67/&*28%<#8.!"'2.3423'-X.7*,<6,0*%E*+-#50/:)+7,'m%m+..0#4*)>(*]/02&#' ,**1++0.'+76G,,&.*.*EP$+%+2/2&&?++5@+)L&83-6&/)'5,,&%'03.+1*''*Z,,-' ( ,*.,(#))/!/&%.C*1+#+#&?+(3 4+@&"##(U2(1&))* '.;&*'*&$'$(')'/%2)''0#'"#%,+&!2+I( %$*/).0$3&*(*1'*5/)*,@/(5&(10)&*V936%(9(4)(8-%%-.%$%*5$!7-$#*N($72%D+&2) 0$*//;((.'#(%#+5.'$,+.(91 &,&($(5!0&2+#'-'/#.0T*,&-2!'(1-5-4C&.4("#+0+$1!'!;0F,<#i0>( ##,? 9.+0%&$%#(('#%(&4(.%(/%&'N@(,-=#-/?-"*".)$):%%;:5'(,''>&5,))#6"8))+))5#"0$>*&) ."8 $");9'+&.(,'*,---*-)(2'3-!)"&,**0-!((*(%U))$'-&':/&*$<*%"2+#(=#4/C/L:1'#.+#'$%$2>%,E*/$2%=!=0&#&=+-5#&++)%3*,+(='-1*&*!&++/#)A&(- )"*",-%$%.( % 8(.'3B&&/)')$()1(B1)$&A,$.0.'/()#D6&+,)&##2@'1++"!$)"!0&9*.3.$=-g/,R*(+10*" ( 1,/$')&181>,&.#9'7(1!5&'6)';-(& 28/%8)-*& !2/&#&1#'V,,+7)+M*(2:)&4+%("&,)-+*P!//$'4+-..A7$3)'A)%,-'0>:)#5*"%+/Q8#0;./.!,')8.%1-/+4$#+/316,*)%$%2+*./834&%7&:1*O$2.?9 1,&.1D0+B-) )+$+4*"+>'((0/'!'*+"/5"!K(#,F,573.'-#)=.227(&:G-#*(),&)*'%4'&K&)+;5+.)-,,+*$3//C,(7+)R'/&19%1'&+#! -)#z&%.>X0,%&)/3/*59*60--$/&!)$""1'+;4!=2'.-)2*-+*3<,)1 %+1%!)06$&-- &@+A-((.F5"#0$51/- 50%-'17)&0'-5 6&/)0-.2,2*(&7-%$5#$+'*6/8*6_&'8E$61.6:!-1'$0.4;--$3)%&$'#,>,-$'"0&/*0-1'%.;g($,$*8%(&()#(0+(.(:0"(98=/$/,,-81**8+n*9&-)9,4&3>(-')0=& "=$*.*&(0-*5,1-,''*326.)):439 !;@#-8,7$%.)4*,-'":,)(=.!>03*>(%,6$"86%4P*+#(&""%3(0,J),$%3!+53,/,&+1@8>&!0$/#G-,*%4$$,-!()9&+/3)I,5'**&*A#%)F$15)"<&9/5#A&.,%A,8'4/5)Ʉ(+;)2(38-6#7+&0,(1+.%<%+)-:+5&,,)#B#92C$2.*(,0/+//+*1$#(')!&406"+'./.&!'(-$3# *-('!)+$ &*.1(".),6.%*B$/(N&")*(,&"!()*!$(.*23$1&&&*,/+D-&3#//+'.+#3&01$/!13%.,+('"#%#@%0$1%'$;|)0)(1(51(D)./!9*()'%.137)/,$042*((.)(.2('+/(=--,+%82+.'0&&-0)!)8+.&.0*=$w-9!#@$%$.<,0-3-1C<(-6.:&##&-+2/&@)854%/("&% /'<(3'7*%'-H2+%#@,-,),=*4+.--',*//=,@2-B-92@)5),3$75-#"%$'')+(#-!-/(+1)*5+'()('!2/-*"$/!$&+-''$&8."1(#'%5&.+11#'!6,$!$#* "'(5(#$'C!-*1$0*$&,O)#8&&2'&')-74&&*(.1&+<$+-,'--(&/(@*''#*/*#,9 (0&3)-0'++3,+-1(0/*.-'7+).,**2,,3+(&,%++#(2$'1(,%0#,-(&0'#(9#,22*6,))-1-%(+,*/#4'#1,&-//*(2/)1+)#312#1'0 0-"**&1-)$.+*'&1,5&0*)((*-4<'2236#.M))-*+.#."+'&+0$,'%4&2.,&3I2(.'..-&,05+&'05**/---%$4*05"2$#-&82%()3)-#!+($()2/81+-%+-I+6),8B(&!01"1,(,-.*1"/%+.,3)+'.6)1+).,,(2A6(+*7),)*)6#$ $1+%81''"+,*+03(*-#0##%&+%,&0,(6/*,4"%'/4,&,C1))($3.+!//&N,3..05)##-&(&"7*(5$",(5$-.'/48(..$.-'%((0)-#<&-'%/.$,,!#1&%2)/2&+(2.&I1+8,,$,**9*/3/&(4($*87)V(!3*1!/'..,))"3.0,/$%)"$+$(7#?! 1+< $.92Y'3"9&:- #(%1# %),*)/=%*C ?'&+)622;.&)8#6+".1%*'$D)"$.))./Z4((-%0)1"!4!%5C6,8#K%!,#5&-&*4817=,)+''.& - -")/.$3*$'&(5(M&2!-.'0?+")'#'1)1A#0"/%)1-.%3.%+!,3*%<,L .9+$%) -(01!8,(-+-*=/.1')-;*$2=:,+,#74.417+2%0%('5#Q>5%)$2Y?#B'+''*-,+2L*9/2% )!.8$#0'./"&,%%@#4*%j+K).)$@('K&+<$, $,)#0"30J) .*9+%L(*0*+;'" .#/064#&*'-'14$ 0A.2-,B"!&']%.#A#"3H)/c#)+'&:.!8(@%%%,)1'(!605R/+)/%C",))'"+.2%.*$*=="2%++$$$"&"!(1%(.09$%8%-/:./'%=$2""&71+-%', 3/;'*$+#0,$-/$*98 ) 2.<60$5/,$#(,4)1)#'x2/0?-(//.$24J06=2,.30!/,3-/=()#/**-.)6".:7-'$2()?/'6*!/$5 1,)(,886&$(#-%$1*-)/,.%$-&$---,0-G97,%7/+(3)+'3*,6#0)8+()"*9+/>-(.%280(,-#+/'*%;,-("03%%(,"))5", ,-8)2+$,8K$41'!,*3"&'+&/38%<"*'-6,,8)=/0.H%1&0:G#830--3"60,,<%05*0*--3*'4.>*/&0!C<(?D.(/)..0.#(3*='/)430:&.@%&.*1%+0%1")8%C7-"*#-00,0&-*%,40/'<'(# *6.((&')"855$#8-(.-/#/%*2',#-+)%0?7='*%+3+81--&*%+&-6*2/#'$3%7&4;-&*00').'*(/`0(*)'+(. 0/*,%++76*.%!(')%2,/3+(%#+8*38,3$, (+3*$(*'1'&.+'(%+8++*(+0()&%,&3^+&+"()-8!2-)+-)0+J-'1'+(*+-8)/42,=!*+-&)7/3+$K-+-*1)((2,,,;8##1)%)0(',M$3!&&($,)4 */',"'*,#)8(6'*!//:>*.8*"1> ",(5-.+')/*+*3/"-).#*-57/(2()ZE.,*:0-0*'&*4-,0(%&).-21'74+1)*'-&)+3.($'*&'*),73$0+&*&-@,17A/21!,4()-++./#+,61;,/(,/0.))'.-!*0%)4')/KF$52$ 1')/+(%L>#++!&F '1),1!(Y%#&)6*-:&9%)),+0-&'/"72+/00:&%?$&+-'&M%++* 14/'&X#1$ ++&/'!#&#-%#/+',"4*"71&2'0,*7-2*-*' =/5+/0'K-/&+*1O:Ri5("<' d+)'=)+&#"'3'9"1*#!*"E#()!>$$(&&>&8%2,&#%%-('.,P,(#/ )%%/C)+-H)/%#)4%?,%V1("1$-%1'-8&''!3"<%$0$%)(==0 (32$#$(.(2M# ('@)0.&(10%-)2&-1$'3$K/(#"H#,%*/*Z%7=[0I$24H,4(p6$#(.)&.).3%&,2(":8*Y($!#B0"A%#+.3*,-'.-#NA(.)!&,')&+.-*Z2*(5.!*C'73&.*))F'$'(&+'&(*26!+$+09 "33@";.3'4/.$1'&&5'/'@(-3+'$0-(1D$2%C.3&0+-9& ')"/&()N,',I$0*%;(.%9+-&01-,"%(-&(-1&,"(%/(-")%+(4# =+)$%.'*1*1".().),%20('3.++)&(06('2(%(((#*)%$&'&0,%752,*-('..#&#(+--*/()7.&3*-$'!4:%(+-(0=,0))-R&1-4)K)$**.(/,<2"&.)'&(%&)?%7+))'-%I '"++*,(%./$'/)(')$(?+&-? -'$+1)-,)+,)0(.+-2-%+%1Q!($#-%)4".)[,)&%*-.,' /'"$7'"*+*'*$: ''%#.(7?8*$&_+.'',%(,,+,+),,*%)r+5)'R9E2'*+&?);#*1 -(&/*M+'%K(406.&%$5+/'1*4.4.E$+-*'!+0.''8<%&)2(,-&'5&$0%31*.I/%$0)+&*&)=))('89$&(C'3$)'.2(*'/()(.,>.!4,!5 n$%.,#4-M1/)))'&-%60Y8)),;)0/8%'J@'/(B.#1 ''4&0(P"3+,.%.?*!$+<4-%+%*')+,'?1&(,'+,(((%/)B'+)+'0)4?E"#-'%3("@6&5%*'#(-+)$)4)6..""'%%(/$3//+%0#'+(,1A)*Q5+*,"0''$*&,')K5!5)!)&*]')3''(((+G+'4*,X$)"&74&D%2*)3;K0U.+>",)@C,9(%#,(+,1>%(,,5),)=$("2'.(*$0 /:$4&+/7+9+*!%.2)-6$)10!'.2*-52460,2)$,-*.',"*2+%/0)*c&'-)##-5'-()/.(.'0$-7E1%),-*);:-5=**1&9.:-,';(,4&(%-,4/+%/$%*")*/,34'(#.,'3%0*/'<&#,,'/20',$(1+&*0+(-,*,7(&'5*&"/.2+*(51+&2,(")).()1+1*$;0-.2!*-&/,0))%'.))&(-8);),"*%315,)06/.,)-#*2-*1),3084+y,2/-(6/*8$+*07-()*-**5.*2.)4(+54?3-++&4-!*,-1**&.(')'406+,-'/%&<.(*,/+':"#%1-++&-#,&*00,**-,5"'++(//1.".$.$&23&,-+0.16)''1&0'/-.,0%&%19B1$,+'),.5&,,'*74.':0.04(.<%/--')./&3/*'),)-@ *&.-$-92,4&,1-"+0%#*'(.55+$.(6$,/--[1)-#)+--!/&)"2)116'3/)4"$(0(40,C*+.+2)).,.+-.=!#)/8!)4%,,3!)1,$&/#7/1#(2..,0.1*.K(&"+8-,5!,)7,/$$*$&(73,)/''+3%.,-%0.$!++4'%+*">*,0%'&$*$1-,+-*$+"*1,'$&1'$,*6&1#+=%)(;&1#4&"/-+*'1)),40%-&* 3'#*+))$-*P'*.:66*'+3" )-.##-)+#%"8)0%$&0-*-00)('&%0.$'()');),1#&'/$8/1+/#*0)/'(@#1673(8)*$.''$-/#+/(("1.%4&*$'$,%()5'!.')-2&*2-"/7,%)40+'.*/(&+9+,$'&*7#+./&#&;%,$'(,*!,/.;'#)$)$4!-%*1;/(*)'%,2-%'--/31K17+*,'+Z+$)7C<$)*)(80'!*F&5/C*22Q(2#)*(& ";;A,+9'O.1)-107$M*"#&#),*%/&+(&,5(2+)$1&1 E,@@(2;,$#/'$\()'.@*1 ,2&9%/!&(/+%+-!.=-15=)0.85 >.1@V.2)(('1D;*+!.4+2&*4V$*-$0;0-7"*-%1.!'0'3%-'k0#901'M$!'+07?."'L#-*#.B-C'&+35(W;5F,"+3"/ *0/#0- *) ,$1. -$&".(,2+$.31")&,(y0&%=2)*1/,@)2&%)-0'*,-N &)@/+`)&?*78-, ,54%(-*-.';z)$& /,50d!>&;,+&)$A!,7+(+4.95'*8(&+42(,9#'!!+)--55(.$*,&%4(,5@"+(&V+,6(+'(,)5-4.)0<*6#$3%&8'*1#0*/7*/.=)'*:/42&(1&#-#,/5&*-2),(/86$E.*66>=&+).+0=!(+-7,&/"-'+-.5@9*#>2)81%")$):.1(%,-(<3&1-31%3%9&9).0<-D9I5#&++-,*&3)&*))(-&'&9+(->./'(-+$"(,'?$"A($''$*2.0&%$&+9'$,'-9.+ )(+%1'*+#261.)$0-(,!""&0+&-%034-('2:*.'8(#4(/1$!($N1')%+-.!,'4(;810%()"+&#+&"%%"%$-+%%$,40&9-+8 &$*/-$*0.)22/+, #$'+*%),4:*%#+.%---&I11{ .$%'62&%!&-%/8"4#9-U'*K3"+%*'/5&M6&.0+"%.'+.<*(8.&'*')C/&2:*%!*+&26)*)<%7)-)$&4$+!()G#3%&:,&//+*$%(&%$E5--,(,@&1I&#'**,,&*)-"#!)/)##/!%/,%'+C&&65"+&'"*!'-&))!;,&##)., 8&'C?<)(#$1;N*(P.92*@-H&8(+((*/(..2"+5&)134+,$/,)+<.<,%.//1'0''&$$+7$,#.."%>2*,,42&,3*)%=.+15($2#*(/,6()/!63U0/1?7+'.=1*>).@)D[%&,(10&0*1&'&.14('w$(,-4U7%-9-&3+*5'-/%,)/."-(*3(,1*2 +&)%*%$*&$8!!+0?:B(/*46(1*3&.:*"+&S7/+"44".)!&(!8)-1,(+068.46$(,706'(51#H40 +*5/' )'5/$-1-0,&6)-*-5*+.))00$0)1+&3(#'-2K6AF),1#*%*$$0!1,L0R2;,G(1( 4B/4>@0*4 ,4"C($i&85(A)2(*:6,-$!&6',1$/9+;+&& 7%.-J(4.&(,,0?P*K).&4)1("/%(l8%"!+/)$#>::9)&*'2%'++$"**$#+#,1'3T+,('p .()9!'*1'"/3+" '@-".(>+E%2$+#&$=(,*#-&0*7(,+,31/8&-5(%M0(--(8+/-8!*(24%I-+4'*63%#.%%,&!*+1/&-0"(../.F(% /1"&/01'&.+(11(**+")*"$%(9-.580$)*+(/!&&A%+"61R32R#))5#+.3*+1<:%-*/17*'" 1(#' +%J:.$-A ?&P!G7.4.,$+0,3%4&6$,)0*-5",,(;6$0(+6+5('+(-,*"++', -,01!,,'/4/>&$=':#)*/:2,A#*('(EN++/6+.)�++*4.!(#&.1+&)3.3*4/,/)6,-(1!*%6#+/4"1+3*7525,2'40),.')+"!&-,.)3+*/-8&.(I.#3*a7(';-+)06%0#)/<,+4,-D&2-,*',.'&".-&%!%+63-3,2'0+-4.04%*0/B$8')/.(3#&*'12((1/%(+.<)./'(7.1*1:%$/9-;&1=4$/1)4(9036!),"+,426)#0B.'.(7+*?().#)089%2/&-#2&&0*&'].+%-+=0'A*#=2*/".$,-2*'./#,)9,!&*2609*#(&%./31-*2&2/+#%0+(++..+.)/.?3**,++2*,*1/7+(*9%-L&4..+0%&)13).3%1!%,-1(-2&*#)')*(.'1-(*.%/(-).-3$-*'-3',-.&)&.-+)3&*%*'*&5%.02'),,***-02*&%0+0**.201-+".)*+*(5+'-.3%1,0+-,/"%&+('-,/),0-(7,#(43&3/6*"/,*'+02(-/(0/0%,.*/03+4(&.)3+*/&&$!."&0+0$8%)(5)+1'(.+30%'-))-&)0,(1$(-+2(*//5&-/)-,,'-2./-.&&@"9)$*7.-$//050(.)11%**.)0/4&41.($+-4,"'.+ 406+5,.&./)),*8-&+.%/(,&0**/,)1+/(-'&%,)2/,1"0*+0/%-*0)+,E+*>)(0(.%(2%1-*B!)B=,%6'u5.')4%//&(8A(65;*+++%85 -!-&(tE6,4.("1'6+,/+&!4/3-("0(-*01&1 *(4%?))*(!>,'"Q*-%S1 ,1 5)#D(+*+,4+%6,D$89"&+!))5&,(2%"--%:+3))4+228, +'#"0)#/..!"044'K$0,(*+)$-(:/(=7'5#*)$+% (!&50"&8"($#'?*,*&/)+1%)"#'&&+%-&0-&472(/&".,)'+)41!4$:-$$$-%#)K+9=6+-+.(.,')4+"0$,"#85":7)($1*"3. ("$(*83&4 /&5%321C$-0#2.B0 ?3)"0&-0 %1M$!"( -3+%34&2('(A0247."@)8%/*D%2&:1/+*!'/,'"2'2%&*++)*)%&,15!);0$%(107.1#/2"&$#/,.',41+")'*:5'.'2&(! +%$,)/13',5%.0/3"'&&+)1#/B"-"%-2%)3*6%.&(*/5% .9$65! .2.%,+6!5*!#8".")-&5$8*(30+ 0*(!'C+*%1//*1"++,&-$(!5LF<("/$#8,1//*#805 -)$!+$ *;*0*2$ /)9,3@*-&2-'(%6)-2"6(3 ($#-101)-+-))C[$1'-2>0')(-('().,-)>--&'0A)-*&+(0%2,.,81&(('$$41"3(2%%4D,R8)$3,.*+*'.3*%2&*#7,$;2<2",'#S(0-&($./#+H003HK. $1(9-5.'<*B%$##,'1$&7&2/$V(,<1-&!7+..-A>>(-01'-'#,&*K&1)%,$(2?&+0@(0,,(*!%0@$0%20-4)(%(A-3.>*.'$&)-*6,/!*),2;'*"-3(0"'44 G1*B;-<7+04-E/0+)/4+%'0-/&3:/)99)*+-4))*4+9"#3+?M-(-)$/+&8O)%-U@#4.](<')3--!#*!!!(! $'%)"!* %)$$"""%%)!!"&&" #,!!,#$.&(!&""#)#!)-$%" %%$(*#! )%#"%"+!"(!$(" &*(#$$"&"%!%)%!##'%'! #0")%## *,!%#$#!"&)""'$'!$### $"$ #$$$"%%(%),#%'!# ,! $#"-#%(#)&#%+*)"*%#&!*(&%$$ *$''%&$ & %!&(#&*(!#.(# $!/$"# &)*,!&! "(! $#-. """!&"'&$ %!"% &"((!!#$ !'0-)6?&#"\#-=3.21,$% A,*#"%,33)&)//&,*,0-2-(()%-&+(,+4)151,.)/*@'(2&')) +.))')/19:-**%A@06*+,!.&%&,"7!&%"#0)8*&=2(@+&!'!%'+.0*"*.&+1R/+$(,2#&D"(7*"%##&(A/")G050"95*41()+"*/-(8210+%40%%)"'$3N-)04*)#0.*:4*(/'(41/4()&8*''* .9(&5(0$*/#:)#',",1$%40O('9 7".*'5N&#/&)<1;,*) G*-11,'#I(#,)-'1+"&'++.0&1/+4*%*$+6,-&+-5%**,,,:+*$'''2&-7)'&4$,20:?')(",-%'%#&' 3!*&,!2 *(33&'+$$/.+--12,&++4.1,'%-S07)'. 7/$*6#++%":) *60(*,,$#1+0&+0&-"%+',"&,53%'(-&3#+<4#"H#28)',*,(#:(,. 4.4H?-/?")%32,>AG&) &8732+!2%&E.K40)2,*-52-P&%!.-(#+(+*(<',1(( (;#5!%(7$:)(-)-6*17 -!&*)(2'"6)#4D$.%).03D1)/%A(('8$*1++%%#]? %#!'(*(#00&!2)6B8-%N/7D$C&7*#-=6"/#=31$76)00(&1%)@?0#--%70 ')**/.%;,(/AB6.%8"!8./$0)1*12+")-B)!;8*1>)A)("W0%'1/6#>!)""(8?<#' "%02.-1+204%'/*,1>+&I).$-'9.#)!(7)$C" ,1<),)$*+2+0*6-1#'1*#./>!(&!1#. 21..8/""*-/0-,$-*(3643%)P/5,&(/.*%)('D$)-2)85*')$+/-.$5%$! *# /*/-&='-?!((2#,44=.1,$)+-p9(2+!4/"()'34()08+0/)2*"5#')/'3=,#0G*,53#(& )')%1)/"24A#!$#+$#).+1'Y&,-"3*,'.4(.$;+/D7!2*(#+'"/)"++" *-%%#+,6*+$*# $&()!*/+5!$/163+*)%@+%)-'@#*$)4'&%'0$?)'T'78%3(-/,)!"4.0).9.%2*(2&.+"--+.(6($)+,;!%))!--#HL*65'1,//&#(-,'E,3)'+3.)%+,+1%*7)@(+&(4/&"&--%9+-')+&', .4,')%9,%$02#3&/!.2-*4'!1**. -3 -(-"#'(/),(,86(.*+5,6'-'.+.0$'-#-'2-0"&0%!/-3>(+'&$$6&&&D,%'"((.+(5&.3$(%$5 +,&/'4')/,/?)335.-6'+%)1"%$0((,**!&5+)-3&.&$50'/!=0')5*2,9*+$%*+!3/++50,'(+-/(2$0&+/0+!&J3*5)=+,#03,#(#,%1-*&'-'36(%@*$"+)$-3&.7,);&(&%-',9-0"%0'/!*,.3)(3)06)&-4.564./,2 -#+-%/.0.2.+0/,'+:;(&/'/+*$*-?1&'+(/&;$1*0+)8.$+$,6<%)/$6?3+EI'@)/('(%#)5*#",.*,#5"%*1G4-$%-72()+8,/&69A5+**%*A*!-=/4(842<)@8>+))-0'*83!(B!,#./%03$>*,1*&'&)%1.$,+'%("...%)'$6A)+1D-8+,!$%.-(#6)7*0H/01$4032),$#576&(1%,7*&$,,*"$(.:)':,8&%0'%+63(#$)1&')G,'%1$&%1'..)5@./2(%8(/+)(&?0$+&7'9).BT3/(%"'$6#+<"%$3#B1/"((,1'(4/-8,2))5?7&*'!Q2=1'*3'60'F((87#/,=J-(/+*3%#:5/%7)+)/*6)6*("(.(,$+;*+$&"1!/#)-/#&,&-1%3+,0$.I/@ #,1(%#6-+2(7)2'#" 2),&$'3)4&,**.4)'*&/'$>$-(+(*.+#$9#I" '. ,!$43*)00-#)!7#@)"-%#'%*230.//,1)-,6--5#")(2'#2 D&$(-)#' &,6&/+""3#9.&!4-(3 +0 1(2,/9*2=5%9/,(# '%0-+%!!%E2/'+$*#.5*;2/+07*<&')2,8D220(('$%.8%-&+5 )2"," '(#;+()".5,&/+7--4) ,)(.3,%!%'-8(804./)*+/F5%+181*$''9583)$*.+"(,>*83-3%'!(22#7115%>%*!;&#'2$9%-6!#++<.+1*" 5' +1(,*3'*,8(%%*&2'*53!,,2+**--(@/.(&/+'(.$-3600%K#./ (+,,1)?92)5 <(.3##()++,!.6*&0( 25d%1/"?(*$;!&)30!+ */*8,A%8&+0&/6('1,*+#3(02!)6F#);%2''%/)','*<13*6*;*0 2Q#-)%-+%5=)-&($,''&$1>9!$D()4E1B%%//703-,()&91.+0&(3^!T9!@&*2'52(,3,%>49#6&3++5**,!I&%,0;(8',0-!&#)0-='&-1!**6**>%$+@).)="2/&$-.(**:.5$"2/%&):(-"!-.@0-./)+2.(7/)>"*1'(@0'5"')))4+&&'5+;* "),/1:<;/$+..$&+*/-#."*('$'&3&%2<(#,1!).#-3#7(-#%2#%#+%,$'05%1-,-)%F%9/@(&*+&%)<)*0B(1+#(<6#'&(-#X020&4-E,I'0,4!%%4)"1&--''"$/'.3<0,+*/.*((6#'(&-36,3/,4%-*)-9#9-!++3+>2+3$()#%((#,,,-%=-**17'($)$7--0*.$$5.1$.*)0/6()+,1)%Q/!&+10(+@4A"3%)9*0*%+*A:12-+&)<$*/10)$3 *$26+,4)=335#(+'%,.++(*#,*])&3(,N6110*&+4$-)&0+.&*>)'/')/3u*.,++,>)2'8>+'%+#&$2*(+,-'0D0)"$'**)e+/*"'*.&O.(%#.($-*'*#1&.$0(+1/4*&0(2++".'*,2,*/-/+):+!'",3*..=S%(/<1%201)"/ (-"!0D0*.,,(6/E"+<781$""#)4+'0#*A3&)310AB'79%":/D%#/:2'4/+,'-1)2()!1,*3/2B*42'$2*)..#+#!-)'2%''->("?510> $?0)D3%)+-#%-%2*"&?#W)0(?):3*)-++)'4+*("&(#$,40!7F'2,4A/)!)810&(#(0"12!#90./84-=4-&*-)*3"3%*%++%.')+(-#1/(-$D('%)-#1-+4*38G,=V/+2$4&<-/'+2('@7=/,.,(!}B>0&E.,#C-//<0*!6&(%05-.(.0#.1D-911-'3+,)$)(0/$(%,>#&#+,*23%%0,1/,01'%)-=2)2 15*%.&+,:5$$)<,($?>:/%%&>3(*%2+/+,*,*C',321 *%./)%)(+ )722 (,'%1R:/,(*G>.)2'%:@(-))***%!RG'v54&('%&(-9)'1/H33,03$0 ;#N(/*()-%*)&2+2+(&$%,%#%!2'73L4.6)@/3)-,/)*+84).+)),$9<+*'+)4&'(.**(3* R%)+4$)/1/'T1+(1!PJ(&"'''!(($)*0#"17'1))%7&=5!3-,<)/(0'&(9 )*($6./2//#()))'4.(%0&214**$!2-)7."(("&/*1.&2$ /7%+;!0$$*3&";"4+&DP '%*"?2@- +(@)$*%E 21+"3)%6M)#$B<&"/1+E"0!&&7D-X4(702& M'4#"4(2(/419%$, + 18.*#2/8@8..(-3!'Q*0-@6))9,.,#4)-"%>.?+4 .$%(-0('--*6/,))4%.[19;)$*6<-J'*--'-1,#+;@,&?.,00+9&3,)&(("1,M'+#1/.M3Z0(P8-(!---7&*+#1$)++."C023(&,43-)$%%= .$'3**&!$'2))_#*0>4-!!'+&7,0&4(41&4S.*S+*% *,#,28')6)+'F./*,65/ '2(.))+7)"HF*/!";5%M.*,5.',.+1'");+-1,4/*(,(;9(+`.(*&1)&2#+(#)F,20'+8'3+"(!'*6&'%.D%%2&+E&%5m)%2:H:+&'.0 *9!';+0'%0-,)/ A)002-,,S#/*+-+0.(./!"*+,,&$-<)&)%3//1$.+),2.',"%0)-7')9(710,-04'.).'/()(4*-.1$*/*$*3&)* 2\&-)3(*-#./(+%*-37/+,.5'%2.(JG!<&1%2!(;-2'1D%+".40.,/#-4B")$)&+$0&50)93)'#$.$6D3."-#*'0:.5$8(&/#". %"/8$)6&%%"24@&14*)/-&.*$$.$"<,,6%(()('9.0?,%0-%K)34+-(//&*3*#&.&',#(+*:*2#(3+-*-,9/)?-'(+a-!2+7+.("6$ ,<2"A45%,*$'01+##*4&2&)#)!%/74),"(1c" #&,.*,5("!=/2)1*7,26,&'-?%"),'4'&*1,M";;016?-)!'02*'3.3$?%&12%X))&%!?G$-$4 20!*$8- ,$*#7&$ ,'5-/#A.%++,,0!*01 !V!,!*B&k&0.'**b&$)'' )+8.(,%,-$,59*%*)+-+..)4$')"+2".*)$#* $%N1)*,(F$E)'.&'9#,)'4/'*.$5'-"3"+('+:))7$*=1(/'&%4+/#.."/($$)-/,-,&*417($,(10.+/+#"&(1$')+5$*6(%<(/'6+6&+6$#$##5*,)"/&%1%-"./t0(5 $,/+'(&.(2)***-,*$)1*3)'9F+$!*++#1F(=D+-;$[;*'+)+$&(.&%-$-423%")&40&1*10,9$(---)*-*%4*(.4('-('I0,*%)&+&)**'#%''9)0-=./)&++&%&6+23'+'(7%)/&(!++%,87")%)&*,%,)<2&.-17"%%'2.,-1#,-)'$(-&.4$ $0,)4$L3-+.,-#1<%,#%"+X((%* %%#'))(4+$H*)*"#%(.-20!=%;"K51=*!10 6 1f.>)<+-$ $.+"9- );7+9*'&)++(/,0280''),$8,+;-0-%)0,*M)()5+%9'&&$6#")1,;- 231+/)0$(*'*%1(%?1'*"7&'1.!*1/+(776-*9%<2()4((>-*(6*&*/'*41&/!4/'(/E:"",&0,(!/"14:,(8+"86>3-"+6)E.'.)"!#/,.2+.0'*(4<@#$$.B%3$,+!/'.)4!,6'3659+48C0,F$$M.'A!.-'20G*%68+.,0'.)'! $,, 1#@31'#<3,,!3&7$-2G$3-(0+0)*,(.0$1'5$0+#(.:!&#(+2#-)%%1*$+15+0%%)*,I'&=$&".,',!#%0'-$7#,#($%''*$2$+3 2,#%-%2$+*+*))0)%0)(,--(6G*),"0/#0.+>,4%,$+:#0,$3*,.+,E7',&L&*+*+-$'&%4):0*2)-#4.050C7&B-6(2'.#.2% =-))1+3'&/$"('"$/,)))!((++1:,'/'$*-,)6%'3,.-@%5++-),$&'-(01)P11.!&25!&/5(,077,.'&)2%5n2,(,-($'1,+(*-//#/1%"4=11/(,+%1))=*#'07-."((#(4&&0)%(-"0+>$+6')*20,-1.+-"0(3)I)/$#".%05&*/+8)&8%'!#/,*,-"/'.#%1*-<4&161'%..515/-*++-%?0./-/1G&.8;*3(2-:>*0&+*6"+%,&/*'*)%"#)8),1,61!'0$/-.*'11**+5*!"(26*07(+(5'))4&6)4*#8!(2?!'B1),(*%3('"8415/($-'%2"1'+&+-$7*&%:931:*/'(9&'$2)(5%*1:2+)4*$&2,+)+,4"%,!*1.-(2241(6&.4&+."+8$+&!)71)1<*+,.-&!.3%1(2 +0&C71.$/9*/0-"/;&1',<*./--'/%8(/%'0$.-,272-#'./(" 1(#72&* &('/+*--+)*!16."(/))&(&)+83=0,.1&"!,*3+,.))/-+'.&%%*)5(('3#'0\*.)$4%((.+$-,24':*/%1+.,",../.%)-+56)&/'+$'*.,/H)"-$(40&/:(".)09$1$(&+((%/+",01.+.,/108.:*)#.+.&-'1$.70-.%5*%,7*(#-!-#-!'*,<0+01-)&0$*60)(1+)/(6%,87(/%2&+7+%(:&7,0*5/9*/(( (S&#-8''&50+0%#/+2'(7&&'++(&))1;*0-17('+<-,(1(&,*),%B/B))3*8$51-'%*$*!)),$)+**2*,+'/7>),*0 39+(+,'6,'&+&8/Q(0+1->.#---/75+!#)%#3".&1"0219%1'.()%H+:'*;..$8B!0$-0048+:***1'(,+,2&0+.*!&!((-+),/$$($%#-.+$-.!2$*+<*+'H4,..""- +.*/451$%'(-"$1.+12)-'2-%+(,)/)-*+,$/'++2,.990+5)+*":&.25#%*+%%/@.!)-/&'''@") 2)($3++',C()9/520&(-,%(?6*?/$)2-#/!_(#-'!2+/&)8,)/+"3$).#..-/-))33.)"+$.'//!-0%+(/C,0)-%0,&1,/'/#(3%0 -0+)$$0.5J,/&"3)10/0+//)-((/;#'!&-2/,#)/*6().1/$%,)2#)%&7!&+.+8*4(.)')$ !..3"1&%5<+()&$(*'+1(3)1-5''.#(S*30&'-%3(6%-,)$4',(,-(),*,'2%)+!/3&+ 59+#'3('E28!%+,."*%&$*'4V)3-)'!(54#$,+50"(.,((*%7"26&-%&.+/+1)/%5<>+,(.2), $@!57:'$/),3C4+)*++8*)).$'./.,1)--53)3 A8(/,-/A&)$-**=,2*/4+%)7(;05,)'&-3#))0.2'$0*?/9(&%1/3#>)(/*D*2(.+%$2.('&.'*K02,%4)$,-$3/2$;+(0%;%,+..-)($%+.(6+Q15+4()%',,(-)6, /B./8"-(0+/(4(5*-2-39C--,-./!++.++/32*7*,-,%#=*:8-.-#0494#.)5*,(11*#+9)'023A,2*1$*=(.)+(.,)-86#=09)4(3"-''-4-2()/1!9*5,)/2).&-(3(-%>2.+,-($%4&02:*,/"&/#*'&-!&&?4,C.,&,1+-.*&'&)&3(1..-&41)0-'(.7%$2 > ,"#$0-)5#9;+()/3(-1)*$?%.24))=!$,^)0.2(R.*.!(%)20%L%'q),""-("3/<48)K1/1#+%*'!(:E')(",/7-7/%#&+( %5*(("/#+1Q&-+0,GF?$1"#M$0,R+"7* @6$'*+&-/6(W+'2$!("5'2'#,'+:.=(# .p$:%-;d./.%$':%8(2@7,'!%)$3./A%>(0'$/0,1&+**(3/+)""0+-%*9+'.>9,)-"&>DR#/**']&$''$//>$1$Gm,6("?00)=0,*:/!1&0)%'./'(+204-=%-!)-4-%(V,E'+&#;',$3,13*4%,4!.,)<<')'')=0&((-2-9f,E)2.8( 3-&-%.8,$,,$)'*-H.!.;&)+#'., )3,9%.)$*')*A',!W%(,&18(80&2(:.,;,,5),P4&0&%1)+ -5(,)%3.l60(&&.).$0:#$4-3 !+*?$!&*+) !&'*=%",-#2,0#1/*5#;!%~2',.+#4%dB),&)E%,/'0;+%G(O(%*-*$)5,)04+6%%10&)%0'm)$(%&6,)@+1945!4&,-%+)"%$/.,$.&#)-B+!&7##0/1+'T+,(,0')=A %&l0:&(3 *$('/ )7$8./+9*D4,*#""%.!6&7""'#*(+$/"16$$+/B=*(#*!*&!+*(42,(/-( "4'71',&<( ;' 2-(H*#$,%> 41""6-((2I!3M0.*"8!01-3& : .(%$,/3/-)3'&.""/$'6%+-0!#X.5+(.*/,)0.('%(+, /I0+'"J1$-#+?..)0'#A%16%1/$2%62!9$(,1*'6& %-'M!,)./)#))*'T-A208#!'7&*."-& ,&)%&9'.#&?1& ic%*A(%%-*'"'@+2,5))5 ,%*00&$,9--#.0#+.*)).7,#" %(5*37&,,')&))04).0=*&4B%&#/)1'().),+462:.),/(.+/81&&6+)+2$,75$+&'G! 0,#&&2:&!)-()4,&."7%',6).2.%%3$"-)&#&(+.+ 24*(0),)0/0+3%F(8,/)&,'93,+%'0/F/."3='1#,*)*'0)8(7/61)G#07*+&2/8()-*0-'+3!(/&&<1&7!((0"C)'-."0 ,!2*3 ,+&.9'$65+1-+-.39%403**%+*(.//;%D&31'0,.%&%)1+7$.%$(()&,-'('$),@.*1% +9='%+'###%/(66(,-!-.;"")*#*6/-8&*(%6#4/)(2%,+&3\.34*') 3-(+<&/7#L\/0)30'+2.&,9#(+ 3g$%,$+1*-K'#,*&(()2+2#!.C4!300- 67'..4=116/*+(%-6$)<#0660*",%3&58)1. /'+:680'(*+5'$?+0* &%7%*&;(&'$+'CC#3!$%&&2$'2%+."'*#,,:"+-YA,`*1P)3'$')2-267"*K'/2>6=X-&/E5*-*6.7)),3!%.2(:2)!/-&1*-#&103&(O0.D'')!&(0%/%(%4G8&B'/2 9,."0<&16,A.0*,)58+,&38>:#K0%"!,/,9+(:3,'+%--47( 'G3((>!08F2&"4=-*4-#A.-+).271&; -!)F'3&07),1)("&&22-'#%(C0$8-*.03)E-)"(*)8$*$+$/'3+''$<,*+$N*:-2!4,5*)'31#.1)10E+'%50+"%#'$%A".'4.o+'7!8"'#%6)%%,)%,-%%4_%6*",!%$&&103&+,$,-:7)1#3K&6*("55$H'&).(2 76,-43++/0'(&5/"'/+3$)*A0#W&'"'37)$4/36,2)+'-012'*%/=2*'(6#*-)%/,60+#%-0L*(,%3,/96(A0/534+):)5&Y7/)",+0!,1&2&&&(27+L4 ('40"I.( 1?,/43)//'2*-?,&(.051&5)()"#&J#($(%3)#+/"$).*4'!M!,0&$1)"17-)(m7V$0+7Y0+2%$(3$5P" &$'%.,1,'F*F) ,-&?"#&1.'%S+357.$,/-&,.'#P$(*,6)#--+ ;(,+.B#7&+ --+%(),+,2F!%&*/*0",(8))//$30,)%7&(-$R&+0.*9:,'-(#//%&D3?1.-150#A%-+6+()%,221+!%()%"2-<)*.&6.#&+:$$"*H6*&*,(5%*#D31)4,3/.#28$( ,+%+)( ,3$%)0<5,(5)&&0f/$"9&&,$++/*+#%(0.,'(-(2/!)!9-,)*-($9."H)+&8>#'(+*/(%k(*#%%)/&,()'9%6'/#*5'-+(%4#**$0-*'0'()*)&(,%%2$42(++5(-*6-JE#&L&$-8/8'2/$(*3-25&01*(*?*+*(>;)")5*+A,1I$02'+*FG-#75$''(0,)$08#2'(.6(()-*.),6-'%0*$4&")1-;0%S%5%$(B.2+8X'-)6+G+(= 5!H&<).",72&) O0(*5#*'.E0#.0)T%*,+'%%)-%)"*)*,5'(*.(/1(#(N%4,#(*)%8..*6+'0E&&&.'1'(+$('Z$"!/)$/%/1%'.7(&7"/,,#))'.%,,80*&/7#)(*#+&0'%$4'/"-$$'=.,,'3,()%*&(#:&.,6*+*+)++&"+*8.?0,R%32':&)(/($2G/!%B($''%--'0+)1%2F0'(&*#&2!0"/=5%-A--.5'/*,48%0)1*"(-)'.#/4-5&$7//'#'$(,$(-/&(0. --<)02!(+.-*"%*!'&/*3'B"0'-(-*3:(8I*'>,$'0%#&0(V),%,,&1'51%-),0*1#11#31#2$(/F$*C2(*2.6+0'+1/#-%#$)>+.'-3'"6.*+%9((91)*724,-.)74<&A$'+'*-()4)>/2()44@#<)45)&P?;*3#&'1"V*')1$/G0=>0%6.%#(&*)=-5.(3.;'%*0)&(4&5;%-8/)>&H.$55i9)'+*0,*))!0"$(*0M.*.'(0+06#F1%&10'#+).'f-,2$2(2,( )$T%+*d,*11.13C-&4//4.1$%&$$+%5-/),(-/O44%/0(60:(>)1%..$,$+-/-'0("o+(4&*""+/-3h(%.1%'(43)!*%%',2#E*&6+'5,"&#, #2'L@&RD2%-**%"D2,*.'(0(#/;./'4-#&&%(')#.+'&&3b=;,'7& '.*:)*&&)/*+'>3<@$$MU&<%U(,1((`,b(K5/0.5,%%0#!,%$6($.)'')0!F*&"5&!.&G1*-&"-)-1!.(2Y#%%!^A -"%/N"4)B14)(%',*(1)((,#"'8&(%,/,#!#'.#)'.!#'-$',$!& 54('X&&#.#*+*-?)"121)&(5#c-&*$2'#25'(?9)1.,"+0+$40,));)!.O*$17%'+<" )$$0%, 7)%&+)+ ,&-'Q.+( * +($"1)t#"5/30&"/:% -60&/80F0().*"&$A&"(+,H,W3&"$"(.&)(#%'1%"'2H*,0!+$+J,#1f(0(.-(-F9#3<(#<$&2-+-+%%*81*2$i/$5./1&)E%?/'+,""((VS-9"7W7C$*58+%#3I!,*j)0+#.:/.&/(4*/'"29/$+K<38"(.'&2'61-/(,\D%*##=7/;&*8-$-2' _%%4+.-0H0+6%8))$482,9Y0%<2#,%>.*0'.+,&#$#/C&(= &*9$%I4-)/4!-C!'+*)!3$$0"E%,--)N%'.=9&02'2$&%*KBX*2$'&))+!$')%*,%4+#,='&+ )$-E'*E0-'I+$820+).<5*%"-,M#-+$(N?##**.)2+.$+.."I01&2,-4)'&++6$$.+& '*(.-*!,&&$/.2,:?/("-..%4'/.& *);=2J0)#)!8,(;*)V9&(%-)&084$%0-)*1(6*().&%%.+/+0)+%*&.4%&&$(@,1'B%1.%*-0'3*.&,+4-(,/6<5/&%-4).!:,)*' 54'++/;/3-'-),+9+00S1&'13,#0/!0//#)(1/;!-$)%)f60,i!(-$',""9'/*))3.%).D604#%38)*, -1#(&%;)5'-&',$(-4&"%0 U%.3+283,,)+,.0:B-$,++;(8A+),)##,)/+" 03'+.&&>*.**0&'2&!2) 4**.#,0#,*--0+*%.,7**-*)%*&! *+(,@..)$./1/ *++*-:3'323&$%0+(,%///70'5"6::3X.6**/'8(%5,***2(;*!,,/:2#.'"))3(1&1@0# *10=-3').@(#+&=)D<6*1337%+'-/&.!-79$('".*,,-((1.$0'*3.D$-9%5/&6&#)+)-'!*4'#B<-0'+-_1)/)(*AC#(:+(,&2+$$)1*)**,$,?+0&;.$0%(*'006-$%-+7)*%<+&3-0$8)d4(/8U%=%-()0%602*13$&41:1/,0(+,'2&-6!,8013/4*%1#$@9&7-3,,.0:8)*5$!!&-#(.!7@.&B0,+&0I1$+,'&*0(.0&-2"&(7!'3)'C)!!/(*22,-$#A.*8&P(A*.2# 7*66-G(&)&80/6/5+,(.#6+-(3,/!+1##.,4+$'1!S;5$$63A)!'(?,>2$*(-*.&--% "G184"'$,5i1$@&1GB)(B"$/ ), 5& *A*'01&'*%+2#97156%$(!<*#8*6,3+3'; * +&*1'"-%#B$"%%, '61-$")*#:)*()(.,,%#9/%*/2$ 1%2"'8&1!4(A0,.).1%),'1&(** '&;"(C%)50,+++*6.:"(.*%%(1010)(#'-0)/)*$$.2&&%!%#.)$)/+42)!.(&%.(7;D$.-.,-%%!+&-$+2200'%: %$*'&/',*5*"79!&+(,I*)$%3&'+#%)6(%*2+&%/&)3'):$,#"/$"%';,5!,-2- )0$)&$-++1,)./)..%1//.1*",$+&'$++)272+5)-(+(L2.!$E2/",4-(+*#-2%''#)/*)&,,.+/--',#6$'2-8*7$*0%.):(+8&,+'%2(8)(7+#-1-7#+,7Y1%& $)'.':!5)$($#.2(')-,065(*5--3%'8""/-.21)+0&0(&'#*2!2+1!;$.-/.$.$O+*-,J-11:&+33&0/'15,-/;20*3-*/=.,++/+5(++.0,&4$%-*0.&5*,*)-,0!-'631 '+()3,-)3+)*+0+5%00((%6(!)&%+0,86&'+)/#/%1',5*$,6),.+1*$*.--(3(,'0$,/30+'/2.7#'903)**0'$13,3('4*,&+)++/7/4-00(1-7/+8*+11.0(/$"+!*% '%-$ 03&,D+,#)>O'0"/7N1$.',%#)3"'"&<*.*&2-$(1?8&!,'.&&3-2'6('#,)*5.+!$$%,$/$+1)',70'-/,'+''%+7*>.(@')O$'&(%**"C+)#5"(0E(2+,/(+02<-@>('&2/,(-+'+(2)31#(/0)5-," $%804').*(=+,7(/6,+=*)3/ +&/->"..+4,($)(&3(,*(*(/.(A'*)7?#)+%,2"L)8>@#,,''!(3'0##4C*/!"0:7'!4-,($&($?2/+'@;+*2-1#0./-,%/.%0)-&)4L(14$2'$)!'4",""6;4)%(.8)1%,?%'(0 (H,4#-$'#2+?%)7&),!*!(#-%"3/2#$74.%C*&&D0%*3T*.+$;8+ J^#(/,*).8^3#3*('/(1'9%-)1.*&)6*$ $#&1'%%60:\-%7.C05(J+%).W*V9.-O3!7+'(!8-&"*/)*9!/J*:"**+&*I2)-/-)8.*1"#(*1F('$,(6,/*>$&/')7&+%0G1)0(( )1$/:(K1,!!3-1 3-K$(0)25!-/(.'M5(,.67'4(&+.B.*+' 2$-/&%*'231,78S@3,(1@8290C4$+'',-7(/0/,4&+)*$*#-:3'D4+**,&'(.(0'<1.R.'((./'?'&2)'/:B12/))$LM)F)R"22&,H##F0)&"&'S+,%-0&$+( ")"'+&42(4,,*/+$.&&+19"*/`&.0*'&&''+ . )&%4//',)!,3-481;.55(#">!3%;(!*-)&)'2!%'!&.&"&/$2+'/(,0#03$2v7!77$!.*6&&/$)(#$4.(6+=$A'';,(%6*"&'3%B/$%$ $)&*4( -*F=.!#&++0"8'+&2*")7$(/U1E2%&)6,7+$)''3"#%Q'2;$'&)*)02$+/&$,2#40$$&&09)*:<&%+(E$+'60"0C&-@'&.+,+*-)'*(*55+%)0'*<02')+"(!")$&(*%"'A!&N-4(7&9ID*!B4*$A+&/&*',02'#S&%J+.2#'&,21#''1$&(,!(6'1&$30%'&+ @*1AM2#'A;"5H ,./)%29$Y/ **,,!*'2:/!*0/#,:&1$--''')'4#O2P78(&'&'8&'3$5%-")+D2>8)$0#..T$&7*&-'C330$&*6/-. )%7.,=K0 & 1'B%6L-+/0&)'$,4(#,4('N-"9o+Y#&%(0*4,(1.B:!$-')!+(I6.!0&7(5-<#Y!'I)(0.,%)#z$+$(/%,",R%&$*79 )%&,F?2-(/@-!2.26&'>= &*0)/"-*0B# 2"6(/-'++)4*'<4%N!6')H&$&%+),'Z$-+""&')033I.0'''*.604/+/%<='*-k!)12 8@,(.2+K"3<*&%*%X#4 (//&-0)<6&%)$),<%-'5, ,\641?.3,2/&2+%372#(&'%+.&$$)))2-.2,.2/1.2(/0+#37'+&#.&%6*%'>(/14'%/)*-*3+&,9$-)&',8+*;=3/)3'-"&293&/=*'&3&6+2(*'+'5-&4=6J(8?.)/)(-*+=0/'>'0.%7#+'*7.7''(.#52*5+*&/4)(!/,/C-(%5-'.$""'5&?31#@,4-(1G(98#8"(7$'.%,,&+5+,&31+,9,&-.#..$!**,>22,(56.+*++++2&!%0+,(+7./-!-1-0357,"P%+]+--:'+)0;,*-+*(="%',/-,/7.'+2 2($(8.,4-*-20*%&7<0-&-J$-&'),C+.-1)*+4)-)),02##1=&(&0A)7'2,*)7.%+&I2&*$#37#(,U?%+-2-09&179'2)/1)'10'+4543*+5%-2,+--$4*)5(3--7&-*39$&0'#+.5+F*923(,)(')1+,$3'*(+6,(+#'3-'1!''19&&1-5-+$)#.5'*%+"/%'$$%&'(+1*(!$('.%/%('3--$>.,.j"'))9-%/)3*42.+@(1,2*1%'&+ 4%&/-%1*+()#2*6*G0*(<(51)3;('2"))&//+0 ,.--'/L?/1-*,)5'0'4*/-+,:.'*(;27&("(&-#'#$2%1++)3/.(*#EB*2-,4&+,(%+1+/X'B*&1'*).$++'(/$)9.:1."#''&('&+"1'2*0)26,-+3376/(.*)."!%20)0);10E*%,::+0*$'-3C,&)'">0%F.&+''(0 3(/$),//,/%&+!06;13"63010'.8#+$#6D0.++(-&&+M._-&8%-*,,.%$:#/!#.6/,40/&&/-#,=%+3-,))*%*;1&,/"/3)$ *)2#*&4293&++$7S*0@:*1"6$-+!'//,/9&&""+%%'!8)*5-.68&&4"1+)-9&1]%!)*)#(9f2#((#>6&,>%*7$&)6)#5)%+5"/.00".*((&*+%#7!+)*&&)4.B-*/8#3A-<+&.='=5(3-5+/5!0+.0)5*5 +,,)A:#/!",2m+'+G$-%#&#N#('-*-)6-"&5-;154*2>0#&)&<04/3#) ".>%#0@$(!*)/",60&3*(--IJ!7(3<5<'3,,'!$+) :-).7+>S/),('1&4'K#(%$K0'!'-'---'0%-.%.740**,/+"$3"(1'(,2"#13)% .63.2):'$&776?8;(* 2"4.05 3+'%@**-)$3/f'B)1&&+&&)%;#=-S.&,+3(#,"X/%-6&%./'4.;$#4,#?+4)/(5$,1 +)'.eJ- )/9')$A=#6!0$4'--,5-22#,*)&S40.-F2$+*2.""R*)-'-',+7"(<'1-(0-6;)1'$)/#% %,/"%%6.,"%((#4(.6+5'#3+1 (4&*4 #+$*$2*%'!42/0 6"51*(,"*)"&\$('48-0$#&&7'+-$('$(:)/1a&&,/%02&%"#+2'$17&"#/(5)6($**0!&."&+.*5.&+1,&'5!'1"'/!&3,1+*4,3-a&13%00$*),'9(&.&'.T(,'(#'1 5-. !!&3.***'.$!.+04(""3)',(*'%(--79%*1(#(&5,*+*-)2(*)&%*%$ &,!%&1*%<'#(,0/1# )"*%*/*,"*%2.)32#B'). ,'4 ( +,5!-;)$1#f;"&1)3&?(5,7)$0%!O;',*%3/$%-$(, -2+."&&3Z8% (90,$6(/,-!#!"6()1>S#%1@)+?2+6"".2&9!-4!%2$,M'$)!R;$:!&-3'?$"1"+-90 )*&,"#*+21%,%.#(!4/!*N:&#**)A #&,?"0-.6/%.-2<(*#'.3#("&!%-"E'5!&+2+3#/"+&(' 8.(!,-(#+3#/*)=3+($+A.!A&'3* !/>%0&;(&!(%$/02&$0!0"!'.*2-!%+8 @!)(2)*#5(4 E//, $((% *4BM,'+"'6&'-*$Q?B1&+,'%80):@(1+$!"-- %'*&7,)$/<,,&/0)3&',<,!"),E,(.14/,24-.*E)+&$'.'&( 3$+,,&!=/%'1,,+,)0) -)6$$#06%6I,1*,')0'+*$3*/#0+z226-'))+*1;0*-,0#&#+2A+.$/%.)2'""%)) ,%5H>(,&'%='%)?7,,,2!(%2)&,0.$$+#8$/)#,) )3;6&3+,@,.8-1$5+-***.)(-/B<-03-('*3'/&8=<(%+*-0&&+(132I$9.11-)'+.//%008/"1('65&+%"(,./%&$+),10++'*+,?%6,-$((%('*11'F,*%,*&2%*6**,+&'%.50)-)")'()4&26;(*&$0%,8&3#0$),R&$/1#!8-%)&1(.*D.),3M'&&)..='#!&/#*')%S$2(7-,+#*$!*.1*$*'C$+D4&)2')U'%--=p7-.&0)&$*+40T/+$/2#,.?$*0)&-(1-5'('&+ "'2'9&(>%% / %F((3/"& *+!1*#".<$&3%22*<9&;+*%".4. =1A#.;'49 &'".2&%(-'-FP%)-#($+/$,)>2L/13%0$#5'+ (R#+%01Y=&"%.?&%)/4&-+(##9)"2*9(5,2*8#$%0a((.(" * *(!.5/O'+ %2.-.!(>26,#,&)0!9+0 q"*+*"*!%).88;1/. ,+,'['6)(8./)%#()'194!*')*"%5*-2+ /?8*-0\#,J/*+;%3.?N-=/&&-(4$1$,96'<"(($:,%+*)<*0/;-&/&(9!1*)';1.,+-$"/ .+*.A?78#,$*%3%'(%$629'+=(.%0-1)'1%-('$(-&30-+"$/2%2%-0*/*'-9B,/,61(5!,((.?+02*(()+(-&().'#0$-)2'/&)?-3*.-&--) ".**%#T#&:!,(8A'$,,#!6"31'"2+*%,47*$&+**("%(+,4*4*/)9%00+1(%+ 8.,.+3$,-! ,.-70429-1)!$)/1,!+&0).%+9//"+42,b8/'0,"8#0%/5.")!('"& -+-=+.H/00+ .4*++=,,-&1$/)8%( +0$#5+ (#74/.#,-6"')%(5*!',%.+%%+/(#U,(,+.(-,37;& +,,(.*' 1)$+'+&+.(4"+*-J/$&5")2**&,-*'50+33!,]&"I"'*+03-;74()[?)4<$-*3#.!()/+,(1")(=(&#*(/,.Q(&<,*4/'(*%/,"/02$,-,-6)*+.&.-&+/#$$&+@Q3*.4.)&*&-+14$#) +&%3,(*!10W(1%3'?%,7+.3/$#@&'*/,":-!0<(12F($786$5#9C,5("' * ?KA(30,O#$*6*%$,#H3"$+*'/)-*,.36(5"82243+&/30V)42'1%/09)5D%#/1% *=*(F,|''=B).(&2-'$,##%A1-67512*3/.*8%"& 4%')>@(!1N*!53$*+-(!,C3&%&!$"'+"+%?,'#)8'8$0(*&+77/+ "53))%9 ' (.)!)B('((:&3+f-''7>'+LAV0!.*3(*0J.#(%)<")3#*!(+(1%$4'5?"'-*(,<5)A,W%0,$./)4<1a'(+%?1(<#+%%)..j(#4-/$(.#+.+0&37)# -*:/*0(*%8&%1,&&5)$"5,(Z#$8,,-/$//""/)(+$, >)F@$-7'5.4(4-2+'!),*#))',).,<#(3$)++&($'&+1#-1$>+%&$+/),1=.03+()/)#9'*&"$'.%()))0&'s,&)#?*6!'?0((#5*8&.)$)1!073 (+3)(+5+"8'%;-.,.$#2)52(/))4$ &.?,+=3,8"3&+)0%'((1<'(,./"&/)'1&3$3()&2&-9BC(#!'8&'0.+,.*:'*A*0"$' -6,0+03('3(,*-."-+*7C,.2+)9.)'5@00&*%9"#)),4(@2%)>>*),$9,+#C ?:)&!,!*'<*J<)1#3'*0!$+)$+6)$//8,-*17d--%5$+*(-4,8.%$*:&0l)(++*(*.$':3-$8,6B33&8. 7( 5/'*1+H%#"&((%#','/0.$/*(A,)21*C! -"-*%0&H)&+0>-(!.#4g/"0*14'-2#& 07(1?$%#!'&/)$954&$ E+3>+ -%0/4$Q+&%+:*5.(52'*'*-2B1)%>52''4'./%%5.%)(-!("0&=!>(*)+566''=A-1@#".!-5Y-'-!=&02$`%#7'-"'56,&&"!#.&2$-'&;:-=09(''%)*&):/8+307(=&+ 1'%-'9)%$+$,9(%'",0H2()4,&+ .&2#(6*%#, 5&C$&")4.96-#O%&:7-;%!,*':.M4B(( %#0))S6.- )+3..)68%,'/G'+!70(%'2)?j6+&+M&U;"/2(?0+$(,.0)&-5>,#/!$3*'?9/;0.$#(/*3("6;'#&%2)>6#&"5:)"5$F#-6'Y@2:$+%.!,!@)'00A&$/9&$4+8s-5-/&'!.7&#':.7()*-3,e,18-1C$$.)*#!"B(.&%08/B/$%#50/-)),+$!(6+/(>!75'(9":$/Y#'12)2'."8()/)/."'1$#)!*-7%+8+$'00&02-"",(*-3. &/*$()8+*)"$C.2A)0,/'-$<.1)$* 8"11)";15+:9&$ ./!''+4'(++'. 5$)4,'7'/5#!2-),$7#37.1#*(+#%!S7%2E!$.2/"#3//%$,';N.%1#)*2-0-(**&C*2 1!4#$!&,0d""E%)$1)05D#,9)0*/?+)&"( &.'\*+# &9,7''$0#-&!*)3'! '4 )%06#6(#Q)(9/,0,0(#*0* !8',+A15 E@$&?-3&"((8,)!#(!,5!1$E,!G#$##%+C.'&%5',($003&$/33--!&0,.&3*0&)1(825%$/J&2'",%3#-+3#1#$'+&:($,-&,2.0*(:>+*/%!$7%,C@&38J'"(+&&,$*&+'%",2#(&*#'',,135-(**..#%#<5++/&'f/1$=0Z#6+:-.2*',&2(.0,,3$!43(C-,!'",%+'+--76('/ &))*5t+//6 9))$/+&$"%.0&/?*&+&.7&/0>4.'0)-+8:3&)8%$)''*!#)+>&+/0$)'(--)*$,&."$!*$+)+J(*)+*$(6.&$9(#H$,G,&)-'-&: ).,071,5$%%*,/%5+(;*%(O#+10%"9"%=(*,. $!@.#D$%4)3(,&3%)-&,);*,,22(-:)/5)%7(.30)9/2+$(+.#.*"2 c*)$#//%++,-(H%+(!;$5WW ')!+**%:),(*S,, "+ ")3(/.@&)&%@(')-2%,&)$H$ (-*-3(*/!$6(A'097,=05,('*",(/&(1,2-2-"7*6.&2$*#.2/2<*//*153(*'#(&<03/+"&(0E)"J$0/+)0(2,0$?+2&RL';12"(/%*&2;+(.4$908+*"&,#%%+5/.144'31D3+"*-(#,"##<3',''9%#%1.3\%.#!)\/+<,.q3%**'-'2%#/*$9*'!.*(+#2&3,)<.+4$(29$*,'!=.L*-3N>)+/0'+*(&/&/+"<(,)($#*)*"6/'/%).<7$53+(7>K,*)',!945'+,)79# ,,)/08'3%$$+3,4+83U$).+#,*5%-2!)'?%$.&4&*+!7')1/,"'%+ /&.?(B'B()(.'5*'06)%!&*V4%$&.2+!7A$3&%(?6%&)#7((#!0 /*0/(.5*2$$/!"*0)(*84%-!M'$"%53%E4/1 ,*!+32+$#3&$4@A!-0%6#-A*31;$+e (71+@5%!0.5'136#11, )&'..$+%@%'1-1' #S#j#-(8)61*+%".&4/&*+-((&9*"&7 P9"1*,$)$$$.(1/&#>+%#'1$& %0+-?&!)*, $%'9:%&&3.*!73%3!&("'*/D$.#"8*3B.10W$*.%*68O1%9)'\!;4'(/*"*+'%4. 5)3/'$+,$! '&27#Q"#&'*2-!'"""++(0"&:';/ (*= ,. ">'2/-14(%-3/*B+(.$,/6/ 561"#)+11.&%M(5$$%0+++)#54"('--& ()(78("-$$(0/40$$/:(.%+(+$**&R)>&!8?1!A& /*2-&8+*,C1,/$-')*.';-',"1&A,#5*+2((3*&((.$4@&.36CX"B&2.%3)&5Q07+/4<%%{,"!, //.+&N$2&S6%)@?+.%#O.3041@)(&$4&,#.%7B*)0)( $/41"++',%'%.F&'&+'/*%70$%2,D)(2+',+/3((*/)-64)*0(-9+'*+)&Z/0$)--3-&R&'*(6912+!6'77'7-A2+4$#!&/ (*=5&-&&8N0*, 06@!/3+$-6/4(-3+')/,*%#N%*((1,7(!#/-':#$&+)((&."*+*&*0"$#4:#&)*C&%)A8*D#&""$%/$)#&),+%+9'. "$'2C%,*$',/:+"(7+,#48)%2($ .'$>&2'6&*+'1*%'$(1#([>/1$/(7$+3D2/'2+H#&+1*9&&$6A(.1(+'*!)*U()%$+*8%(5@*C'5+%6""25)060$.-24),$&$*( 06#-,5(..;3='%-)1.%%(/$()#6&*'','+)%A%E)11=/,.+)&),81;0#&'!!!n( N&&-&&0-"4)''/(,)%2*$!@'&12)#'3(++-"%+'%"I9'&,&)<&3F%'&'5)4++0(41,F* 6;'3*//&C,)*&/*-?&1<"*,'/..%%-6%$/+60.$%+*5*1.$)*)/0/-<1)?4$,$&#&(*49"#%%&-#))=)*35<()%(Y($(-"-:L5)*(2]*.%%(#--?%)!%*&(%+34:+1D5&#!-D1"(73."A'5&),1$%$,,3!"&/3& )1%)+!().&*&.?$3&).*.%).&"+&&,;98+.+-/.>'.()%(,+,414?+59( #($( &':9,()#'*'0%)70D".&5//310'"2.0(!9+%:$#sE+$,+)35+'&!"+42-2,*%,-/2J#B,%.%)$2#5#,#' /#,%,("9+&#!').5! 4%',%4).$9%2"0 /1',48&.!1@E"!-'*,'''I.4+1*_9".#,'%4)?>)+-*())"D*&-2G/!('(=+74<"2.&2&/3137%`"+,'!H(.,*()R54;K)E %()$+09.$/-"01>7-1)&&0+(>,E(7(3(&(-$$F--(1+#0%-%2##,@'*(&*4-+'0)&6;5-/%',.0+2$$.19:,.5'">8$],7,9N+<'&-*'%%10(,F 0!0 867<7**+0.+*:.%(#+")/)#6'5=!#,5%2Q $4+*2/,$+%*45)=0'$+3.82B/.(470C',.)E*3$>)(#%*+()0)+(#;3+9& 1-,(.#+)$W,&'!/$&**3"+7&)7*%+$%!",%$'%1# .G) 0$'/0/,#%*",7@,4+%",1 .6-$()$)2-9=)5%) -3&.),0+(O'$".%'*7$""(- (3&0C+E-%0"")030+".''-)&(!$+"%/'(37*;1+,/)((9:3!00(+(5*Z+,(-F2)>,!1#*'#.C),'+-0?*45113!$/,((0*$C0).>0*.+-2:6<.(;(&*+247)&70*&:(%*-53-% /,'+.!+*C24+($i0$/%-'0.-.!+),"3 )08)*3$,5,-0,!/1+*''((.+12% $ .-,-(&>B$)8+5C (+'%<(0%/'#)-C<"/,./'4-&1,&-.;62,)34'@).7#$$,,)'.5$/*/..(&0@.$(&9,!#**#&)964%')&90'..',*;250(&&3"-.2(%+(C,*4.+),)(-+26%0&-!+4'/'*/ '&-0'&%236"%,<4/(V"+2@$-5*)A,D+.-.28,(,'.*2)%*$),((1./9!(2*%1-**6/$+)!254 :$;/')!'"*#3$)$'.4#5)'0&;*,,6<),=:")0*6'()>.'$/(")(7*')0$,1(1,+.;.'+5)-$('&0#&)/15%,%-$/8#,*;,&!!A82)(+,%!(*)+0+0!*&!-3#<8(,7(8!-),-/0./'&)'3/1%3)/8)352(/'&+'-:*+/(02+*&"-(% -(')$,&-,*#8/%*#/(-0+/++6-6,<1."+-6%%?$>*04",5!.$()#$##/' BO,-$',4)-:+-++$/2&(/87%#2,":C;C%.$!(36-+*,&2.-+0(&,@!(/(*%.("-'&,$%)$(+*:<5(A+4!,(.::-<'/*"4&:*!).--.'."&%0%!#%"'&"-2+,5/%"& 0(*)!/ "  *+%),#(##*,#")$"&&%$#(&* "'%!''"$$!)'*(&%%$",#'#,& #%*&!-''#*,"10 $*%)!%%$' "&"%"#+ ')+/$%!$% &)+*$$)*6*3 &$!$-!$'(+"(.!.&!%)"#*%!4 #+-#&.$(- .)',%0!%-%(!%6%,-##".+$ %",".% ($0$*,')9&-!)(0&(%')&&&*#"/)%&+#"$, !*!&!"'$%."$(%&""%*,)$ & -* ,$+L.*@G.+0/%1.1'9%-5B$2I5#B+06"+83./1(6-+-))"2 $$#$./)U/$26M#';&$.#3&&5%-2&'*"'1<5(A+41#)&)'('"4/%8"+2,*$$+.Cm3%#2(-/.4#&8*,,&35'"&)0!+0;>D:5.#7",# 5(8 */#7)*;//2,/!D',1)75-"4(-5:2K8.2&.+1%-)#+*@/F0(!!/*+"A/+-%7$4&(G+8$$12'&)+-4 ((1)"?*"30*&?)E*7"$*&)KCJ;+1#,%0($,*!,.1'5-(6%+-+&)($,$,)$/&)/%043*&,1("I `)!%/1*(/4%-3)('0()).12A41.(*#.,.$012"'+:+*#.#317%$1T-+0+*%2)370*)@5+:*,)'!&*2-649!G -K..G?*$'&,,'#.95&*P=*)*&,=##40/)"'=.(A%,",-.,)0!&#*$'(05'"8,)2?7%#%!&2/)'(,$..+N"(:!.(&)B*70##//&.(=4q, ')'*)?#+%3(10)85$7"$.< '')#A,")(/"$.(4+%:$-#))'4e+'F&((Y&* :V/801"I*+$")3(6 ($*4*7249:W;)). 6H(-+!*0)/5,9+(,++)/,0&.34$'"% +&#//,#,75(-(#='5,<_1!3&2(3"JF#"*"0)!/;(1-',4,@/+X,+W$%D" /3 +94 "!I#D=#503)#".)(0F*"$"'C3'T&80NV$%6-1(*."()+%1))*53)%>/%9',!%0':! 1&"-(+0A2,")3*1&412$+*,2')$**..8,'0R(%'(/"*15-20.!+-&*1#; %#"(%&#&*6'/14;9% '*/,4&0( .$.),)1m(+&/)2'+)$9%#*&+1&!0$.362-5-*),*.1A,65&6&#)'&&#"#*%.%%&68.)27$(--'-#,''/+$7(!)%"%!($")+$14]$!)!0%)"*%+(<&G&54)6-'*4"6/('4+".&7-#/".3.+/*'3;.'+1$,+./1(,-+" 04&3+/*%$@3!.'(%."58 &1,H(#,!,/'./9-9$'+++2#)'*'$/& @*4M.-)-7D$)&.$,(,$*"-%., %($.!)+);,)'/++()4Q/11%1, +(/-*.0=8#%3,1+2<*"'///3+(:*/.1/*',)0.'))6%0s+/'30+).,5'2/.&'') (2-.*"(1*5707(%$!*(+0&7#,1),+#*63,3%'%-04+>;*0-)6&+6& +*(.-47$420+,55%C++20+-,'-#!*28'B(&2*+/)'/2%+2-.'(.*./+2%&,/.+63''//).!.-/)59$(1)*$116,*=)'2++7&$,')+$6-/2( 4!'.&/**(3B,.1,(&+27//4+$&2$+"1%**,06575*5%)+..')6434-+%()(1.+/1*6.+#%"3B*0($-:-+-'/--/09-*#&'65*;1&!-.-43(7'(+'#+--4(/0&39/*'0/.31.(&8.)1"4-'G$#4."+0H.$A'E%&("2@5##B)'>+.25++$%.'!#'.#(''-214+&.++/)+B+$'2-'>+-&%,*"*!/.)&*0/"#20*9+%! #,&(,)2)2*%/(/7'2)!1 G0/..T-0(,#'(0*9#:$#Z8F'%'7)VN$#'(-&,%CI*).7&#/%3+,)+*-"*(*,@)99)++)*=!)(*"$&#@%61&''&!C-3,*/#&')0.0 q&((5&&!&<#%4*+.'"%:(,++1; <+9,G(37U&+)%%()),-&76:++90 %+/$"+5+1.5B3'($(7"($,=))#!)!00,#/+7'% ,7'#+/'P!&+'*.7*%&',/1$(67$3!0-+(+)9+9,(.$.(/0-:%&!''8R#$"/X'6.'-%'!!B22:391+),1*E1-*0'3-+K6((3-"#'=+'a-.975$$,!!7!3/-*":&#""')+2.2 >"'$&;&(#1#&'.B+)&%(&8A.7'5#$*&+ '$#,#%&"H2#$3*%/.'/%2,%4".*$"(*$7(::((+*$*--*5)13.".-()*4($(58+-,$(+'('),*3$'-)/2881/$0((1G.&%-.7, +#2!'((0'7+4.)0'>+"2?*A$42'78##8,'16/$-:($! .&+"2.($%'&*.,+$8**.;,-)2653&@+%/5*%)*,'":-3.,*+&.',#)(&4-"."4%,/"51#$(#95",0%(+,12&?"6*+'R2(##2,)&-'..0,>#!,,1!#$+4.(-+#'. &/,56"+,#),&-%"')0*"=&+$,1?7,.&*,*!&$%.2+25"9($0%3")+-3%#')/,*$/(4,*2%"::*%(!>$2/$'3&3.83('%,%<(#$$'',40$:'#:&!2("<-,9..$& ) )#,""' 279-.,'"/$ +$I0((#));, &.$0"0!.50(B#.(2#,3*(=<*#0480"E-> +%"5 S0$(#$3$1,;'0$H(6(1$#*0'1-&0)-)$0A!'(( '(*&F>5+,-3)'0%3'(+!)%1*9;#%4#(*+$")(%+"%+%<*%%++$.+ '/1*6(<(*(''!'(2-+"B-+/,)'6;0'"*+8BO'1')&A+20,7*-10D'210##/ "4@"(8#,+*',6)/%*$=!&6%1/3-.4)58"% "'%&)"++3*)! ,+11%#&<"3(()$.*'?<0%, %$''*+!"'22,/1 ++/Z9+I-.)%@B,##E.38&"!1) *f#%20-!B',+)+&DH,@OB a$)*'A+7V'05:/+2a$!*.,631#<9G$)2!!&&%-)5/(/+.*)()(#'51!"1>&J!*2"-'=8)1##$.*,;6%!*+#:("-&'3K"%J1'J#/-(**/* 1C%0$ 9/@4$S(9(.+8/(.:@Q#%(+&F*$K6.56.&)-20-*())(&<.4(34+!"4,':U-$,,"(!1U^"4$9(%&5#^!!,35(/%,#)$I.59306#/)+3/D3l!+,B0%&*#3%6"0)*^.!);5@&8+7.+-"$').$*#(-'&9":%). -*6%2!,9#;(:))5@*;/%+(#)++7"6':"&&=%7+*-#24(*/-(/$M.,C7&4C$4'*F+,D/) "&)#,%!(-1"H0&5G($V''(+/4CXI&".C'%*0)*0!?("]A$R(,)3!>,;,?&&K-4.Ig",+J!)*(&+=(@ *&2'%='%(((04V,3.,),/,-"+7sS&':3=""@T)C-'%$-/(-3'!,"*314E4-8).05,/##(!5%&?,%1#(<'( %,&,7%());,$ .2%*-)*('--,'($+& #.4/3(%,*;$)*61##/0, ("((&//"'.(4/&*5"&$1D75&<%/./+5?2#s",%/)) )+)&-,%.)&* 6()$%&&./#/3(-0%4).)9%$+&&%: H')&+.2.@("-+)(%&?-,+7!%!"6'./1(,-&/(6' $.>06.!)-2#.O')9!*/9.(")**33, *&+32:24'"'<.5;+$)-,(/&'+)66(1 11#3),&:!.&23&,4/+"4-(%0D*&*Y$.) .4)/-(#,)$7'#'+40'-*,/41/4)*+%3-(+D21 1@"+''/#-6(!"+;*4-*b1)'(853'!.$'*$69)[1/<-$-,0%5#1)G "C81+4H9(,E'2##79*40*5!#0+%".:8'10&0.&"'+#K9$'!)!4.3!7*3''201')/.!%+.,,'-'-<(#3)+*-,.%0+49$,('(*+**'&#%).")"&%++,+0$-&/+30*6%'&'&(#/10-%'%(2-8.3$1-2,*1/8#$)2"0,')5)%7-$-(!,Y&+#49,,81'&*&A*(0,/r(6*3#,+&2*69,60,/,4*-',-(+(&47,&/2$+)%*,.`.( '*)(,);0.$#3> 18"0)&&/7*&%*(&)*4,.&&"'3-%#+0.-((1((,+'/!()'56'$,(1*!.$'!,-'+#$'**(.#(-))#(1*),4.)+7'%"-?&,#06)&(())&*("%5)3'+/8(2&'())('16-),+3&&)',/72+#3-.)(*,51#3243!&e+#(.-$1,0F5)/-5$%*+2>'A%&1("^.+#"1:*#"1>%.%@1)6,-6"!*/&#',&$(1+-"'%$  H6'1*(#'2.%'2&,.4#59/&)'#(*(*!+)4(.$>)0<2A'+#2,%,E%5("8 :@&3-.C94#!*#&$9!?95,8>(&!1**'#9,/#,),#..&)9;$'!% $ ""',5H(-.(+$+$&.-" (-/"!-%&:8'+&*+7*8)'!7,#$#%;(*"#V#*%# 0%2=*0#638(>:(<,9*8+733W8%&%71)9'#4-9)%+'.%8#%+,J($> *2#70!).##57("(.1F6 #"!'5.),8"%22E.1-(/1)($'0*')2/*0*'(01*"0&,*-0%$!&*)3.''-)-7%*,*%*'+E*!/'2=+*)*)(,31940/,53(3./*-+.&-03"))*)B*,.1+6(0*1),0/%=+*-0.-&$&&<-2&1B-,.,32(+4-1:*40&6.,(0.,#0+9'/0)6-+(0#**(2(!/#01,*2;,)3,1.3'-'(0>2+0%,3-++).-($),>(%.-8019,132))1+:+0/85)-),';('(8#'/4.**'/+7+/"'(4-3'-12*,2(4'//)'3&62.&,'*.+(,*2&&&%16+*-08'+E-///,)**+2+02)*'%$'**1+)+!-)$,,*A(,60).=$#458.-1+)*4,)#,,11,').-%&3(3*).8)1.('$(7<.,(%&%*!-'-&/7.,,!<9*'!&+9+4%+2*)"1,)#'(/4/&/9(*'-+-&.*"3+,..*G80).)"&14(#30"$28)+*&&,$/45'(3'21 +6--#00),,$&*.%-$,.,'2&-4*3), :#'*/'0':55',--#/".&.%'.+,11**/82/.+,9+)*6B90/%--((-7*.6"2-1*.$/1,(3*++'(5/*$(./%K&+6-/)/# 0(-3+,'#-6)(!)5#,".0%)A+7')0+',+*&5--,$#+//$;%53-@-,5-!,#,(%*5-(3/J/'(&'),0,8'.%6++/,'#-*=#7{&,(1!6!*5# )*-(*3#-.&%(+,2)7'-6-+,*5)$3%(/.1+-)%+,0+8-((,33.#$##Q&,/"$/0?&8*<"#1()("-1'+ -,,&.-)" "1;A/!)G'6&3/!&(($D?4#"1),347+-$@8)5"'$,,3+2"',0)E!<)-$6)))40+*5%19')..%(;(F1.&25#'+%1/?,.!*(0+(@--,''5+-4&"+#*-)2)2(.1*$(3*+&2+:'*4-)L'7>&+01(A!$*9!/))0L!0&%(+ #10*%%)98#1*%$+&,>1-%7D5 02+-)/3!>-4"14P90.5(%%#(.,(%0# 4-'('2;37+*+*$-&$4*4@$/-%442"(&13"G-%/E+/' 4,"#%)'(3,6G"*1,*+5('1&/()&/=&)/'71A-,%CL$6)*$%!+"8),#A%(( >((/3*2-0($01<-2)#0#2!3+8%.E+:/*,"'09F3+*, )$?2(2&)43!$((,8.>-=-04>2*9.$6(1E6%=>) ,,3(08!7,%05/% T"*$,4/C0.1+%70&)(&%,"!-(4[$(*/9)-<$+'0'3Q3#1$ 9$.3(4<$);.,+ $A/+&&!A%"0<-".,09( 71+&,:$44&Z!!F5"^."99)4&-3(]*8')3..3?.!03"'0.6.=$$#,)B,2-.,T(H96 .@1(3/;277,.$,"$%#"%"08H;&3(,0&0<'&1$+(8&-,,'/,/+$1$/:% "(W!4!'.=6'#G$6"-5($@(*%7)!J#''!+)2c4,$-=!S,50 ''',4 43$'+&->A.)))311/-56+)3' -)U+(3$%T3,0)$,'5+31+'6.1-(2.+22'')0()"67&)(.).,$5+-+,)()-0+-*=7/&).7%$+;2,*+07-2,--j.:+6+$+$5'24)*212. *.#-2(,($&8)%0,8+*1..&%9)+77,+'&2&-8&+/%J)')+%0P&$.162--)$.02%)69:9''%- -5<5,")(C&(+<)/)&'(+"1+/003(4(.$.,/G'--(*,+'05)9/3J/%*/36+(.+$*'0$04(6(%#')"(%-)8-+0-,1),9)+"#/)(.'-/&.)),'":<&-*91$-(+"0%(&16$2*,06)5"%" *150&%*1%'.,$.-.0601(38;(*+&.:1*&/&/,7('0.&-,-00+2+'4/1,\ 2"3=A6/*(&!'1-"'M,07)%/'%@+0)04('#)&),*+"&!<;-75NQ416&1-%!'E>+):&(**+5H64,;6F7'/('%21%.#$(8&''%+K/1.%#(D,*><"(#/",7-'&<'5#'K%&T-0",($&0 2-611##52.k4S//<5#1/%2*25+-=%/91*!)>")@'8&1",50(",9*65&$&)0',V+%#.(0* )&*5(-&-"(4+"&".\.8(!/(/(=.4.!'-./%8')''$4*&/0*.<;)*"&**+!4()+9"!1-&++,/F>(B2&.+,$41)5%+6'.*1%.1F2&')(,(-#3080*!0)$$1%+"6$P$,2.2&&& 7(#)4*N-B %''-(01.15+%$*+2%7'.2++(-*..)&/3*'*/-)(7,).').3()E.&10)--27,20"*21-%$3*-),-/1&%,)(..%763'0&*%$6%2:.1(#$-/*(/7)$,4#0(1*3)006)!/-+$//(,$,+' )0)+8(910--7*27'+6%"&0";2".*-&#,&+ -'(-!&-)0*1.1%'")6"&)(+/&)(*(-*/3./)$ *!$.'1"-'$%'%+'%((%,1+(;#*%%='$*(+F2>'+%&).),,2B/"7))31*2"3&2-%-0#.)O7#1+$$6-2'*)$1&0/0&)$+*-/,'+)+1+%,$1,%?+0%,,'&*#02()-$(22-)26/=0-/-$.T),+-/+/".1%*2(-%-(%52:%*#,4,(&0$(.@.)+-',#(&:3362,,".+$,3/-%,)&*C*+'%)c&&#"--$*%%(#4 -2(*,$$'$1'#&7,/'30/3$+!+-%+)#* *E4-2%,,(,8'6,&%F2%+++"3# !3531.$3)(*#03++5*)&5(&,')+-$"2&+,);(7)*'-+.-.$)-**,6%142)&)9#40+(4+6,*$'2+&6,*1)0(41!/%(.7")%2$/4#(/05:/*0#7,-)'&-%8#,-2:1&&*(#34*-)+$9H@*8+(+)+;4*(4$-B%!:5"6*(8*'!4#,..7/$*)&!,%($,5%93-&')#+,$24--36+/71/-,:%&$A#=(41$$%)*,.5,+5+7-21'+,'6#/*$1*.*,!F5*+-?,0($33&3X%Q-*$1'$%003'-3+'3#60'+8M-6#=+#&?"$96%'/$*/%,,2 3  4$-#%G:$ 5!5)'!3()9(>)$'c*'.8,*!F$"'5)&,>)',"0)/*(2$'.,?Z00!*+$F1#..2)")M%':-&,"0'#5#7p0%F31&N!(0+/-##%*/-$+-W* %5.+0(.3,#1$0&$)&$ 0*'&*+/'"A-(!%...+*!.'.%2%.((!(&)4&;%A&(6)94)""' 4$2$)$'-(,1-#'5&6d,.($$=1,$K:6#""'&@87;9#*!5././$>"3!'"2*5;2*:-$%"+(1>8+.9*-#& 4,#?+# 6&#X)0 @99710152;5K+0&#!,5.(5%64-8?:+!$"#6/($--.&&:% 5)(7<-@)/:)-+7'N"46B*2.5+-7)*%*-V4##$#"4(.'%&(:/ ?K23,3&3*)&3+:$-&&=(*$2/C$%2[(#"-0=( ')3702.(%5>).0-0"/*--0'&5%*.:+!%(*.B*5,.b)1+Y:90%/1*!f%8'4'82*+%'2(,\D$83#(#"!?/'*> 9$212 .2%4%67.+ .+.8?!$7.*)-%4'.#-*-,%*1(3"*#'$')$#-$?+%P-*"2,.$)f'$#4"A84.(%<)2%*9#-!'7 $)0#'3"#//L.-.+22#(+4o'(&4:.'$2I490/5-#(._&$$*#6(%);$<01$#'F.*'9#:9?/&-L%&%1)*<;);9,9+,$/;8*2)&0$$."%-(-&$$'+,!&#+''9"22%96%CX0+(4-*C-'.#%-1$3*)7&B * =.&4!'3@&9)2(G0)",+)'&0.$1&"4?41<+<:'C3-2+2' 41<&,+ "5&0/5.;!).1&B9#?$,K'/-"$"/,:. :,-/%930,)6&!.8"(($N")8.4#&%+(D7 +%%()+8)&,;3.@R$%"33)-L,050)1&'=6C"("+:5/$#*!"+$+))(9&%1%#0')5->"1.#!-.0("8.*?&81(!/*0-3<)*.#+F&2-(, A#!+5"&+-):'8A(")O,0,%)+1/0&1)&4;,5*7?/ )$"29//49*'="@2)#'!%+-65";70&-,@08+2'% **53-8&).#70;%*(2002.=7& '.,'!'#d!.6(+2#9L*2#11G,4%'"&/ ! 61#&3*1")(- %):#/*P*!";)'#7&*"#''<(T+%>5$%2&4%$9/*")C%3-"=+"9%#9('#J''%83+)%'+.#A"3!'C)7"3;%"*5.(1.9$'*/(: &)2J10& ,6(*$&'30%*&'6"* '/(!. &)<''+1)13:%*) :"2!< $3('0/(:'!5.()%**Y#*N!Q5 2-60.*.$&&(7'+%?)!'740$&#>J3-5+.< P)'%+ $0!(-6)$)@(5"-.%<".-%8!&>%)^204*/*-&((7)#-K+11#)( 4-&.>+&$6Q"8 .$3!(011A,,521(>+.'($+%!" FH3,.&?3,/#,)#,,>",>"&C3(70+,-.&)@),0")3'*;&+6"!(.1/&($*e,VI9*(-U)%/83$&-+%!#)0/:($7'%)+<*): C/(,2-*("AZ*2Q333-&)9$-.3)/@*& 4./I'3&8.7+3-,9Ag)++!l?##)(,6#&0.)-+&*$*);* '!30?2)9$2t&*+G4)1G(!(+(/2*(61B,)'+!$!#%3,&((,80!K.%!'.+!['%!! 80."!.0A+&$++#(&2[3+)V$4"#4/:&,+/+1(&+(.0*/<%()/.1+/.#(.1 *2!*%$(*3(-*1H+#)&-*3,)/"/*$&)01/*)+.4,',.,0&-5! @/&+'*)/%-+,-.5,)6(5$#<.2$0"&0+)'-)3-%/4$]--/(;3%**2.31#$%<.1.)0+)+'(+.(13-54&$04,. )0+6B0(N,%,#/#?400$0:(9 <+&.'%)52%*8/*:',+-)+%.$,3''+0!-3%+%$(/+/*<1)',6.<4"$4'/*+!*%)"+-,(.-)/9'1+2#-,3.#,(52&$0+)*,-8,1#'$.(,0''*.8.-,,%>/1)+.2-&30,&(1(/4&.'/ 5+B5+.9/(%1-)4*2&3$643!"$/+/*K&0)51,(#'6#54$%{((1*(1'(,3))('55'*).5+{)>)2$((.%%"Q)+$37:445$;-1#/#80&/'.$3&0,6&2015-)*2*44',**%<(7.+-R3&)0+(3**8*"2)(7<,5*,'*#:$5,*/&C#-*&*1*)&'/!6,%$)61.)*6 (.#6)*4+'&,*-(*'@.1*.@60+-,(4.#?/',1.?+##&':.6(,'+0,%.6,(80%'.&/%'0),&%((#5+.(#(*))-1),),/ 2/&",+.823-<7.06(0*.*06!,!8.6-/=60','0",(7%1]+-9&)(+=2)/3+.)()00-7&#+(&32())-,%"*)(6.7+*+*.*4'60%"#75:/-'@1..,.../'-11)(;.%$ &!-*4$*2*&,%)./+%;-'$2(4)-0(+(1(.1/#02*#%').')0,.-7'+9!=%++&0(1(),3 87&+(/"4*'!,,-()'.9*'*'6+.%+*%&7'0#%.5-().+)>M:$+-,-+3"(.'&-/05/%/*,%,#)/$6+",@0&$*(!)**),6$&+0$0?0*())*+$,(&(+-2#35.)31667F+*(&(-(,/3()0(+5-,20!2)&(+:+**".++A&.7>-%*%8&,,0/,'0(#+9#)'+,,0%)%%*56:,')--**+'&!,(--+/,8$%55d*.83((.0.2%-Q65-09(*+/+11-004)74,50&-):(--,/5-2"394%#3+)%,'&-3.*+*&8&(.,('.--",!)+G--316((358(&0,*-*$,*4+1,/(%7)'4'3%"';1'02'/%:<'&',+&&(+I,2I,+'<0-H0',%+,'<,*1-(%Q1)84',0,0(&+(&(--(8,%+,+&3)),+()?9&7$))/&.+>..%>"D3*'(4,(#.32+:,+#*./, -'*4)!$,)+5!.0,,'1',>'1?E/&"')0#,/'"',)%/73,*)-91$*'62#)$)#$.$4-':3111?3,/($107>&-3$%'0$,)+3+7*,*'7(#02%)%.$&&1'[*("-14#%.6+2%'9,0*,9+(*.$)&&3*01,@5$,&1!+/+*',,+/%(-4&'.'1(50,(-#,) $#+;+14$.0+)0(3( *&'.C-+3.%-/-'5#.))'$)+/*'$**0./593!),3<0+=6=#4+):'-#.69+"((!/,')*%--(6(4>*-,+-#1--&&2)%)#.(%,).7"&.%+ "/'+32(/(&&/+*6.!E%$8.(&<%.-)0-,((+101-*&%"0)''%,,()2)&.)5-.+5&*%&9);*/0(+0-/%$'/1.>&(**',+)6'.%5)5++/('--'3.'2%"/-9&%+0 #+1).&1(/#1N0,+%"6#-&6)%&'+'.&-#/6-,#'4&2,4*D>*'.+')539+'%++/#.1*%))(+ *"//+3#',>'"-*)%2,*%7(9,1,0*,/,&,.!! &2:/*)"/,)&.%(&()-#2&//(0$00)1+4&$-'-G"+0 )-,,)$'+5#04*!/.65&*/)+!2 &+&'3%11(+&3/*+-.12##)8*3,'%*,&'"/..0)()$':)0)%(-'/1$*,(-+&(",/,,[).-7))111'.&T&%0C)6),').-4/122***2,&4',,4#1#./4,-0&%).2))-1$6 +2*+(28)'-19>1m(0(+.')P**&*)#$(.9%28',*+,!0.3253((&3&$4$1(+1,.''/)/%&:+=7)4)'*63C++&%!,6-*4#& 2+(+(8+$*3#(*'(,'/$6,+&'-8'1,((4-)$*'+%0(.+00(,1=.15(0-+06-',&7)=()".'(%9%!0$='5$,1#-0%0))*//)5(*(1$=0/7),12&)$+!$).8''@%'9,1$$,025].$'(&0.9)+,.+1!+&)4'E$-'1-/22./1*-.'4(,/2)F29+'?@.+(+/>#>,97/+,.*)2!44/'$%9J21721."+<,=!8(.9#&-'&!$"L)/()*"A#4--+%*G.20.2!/)$&-,!)4/*,#(.!5$.%5 =)2+Q,0$"#)%).$'1,$*."2#'&(&--.(.2%-,%0% l&).'/!*/!9#B33,"0;1"1/W$**#-)'0%)!35"##4&/(!A$1()&/',,C(+L'8(122601,$A/&+0#5/1$)-,.$+17',-?s0)&#, %%<"8"#2"/1%5 5)!&& %%!1)F7!&!%#()/-&,'<<"+%!*-7-%!$,%"-!6. >+6' *53$,'A+!)$"*%'9&''.25"2$ !# #+(!'! X47'3"851 #8+3&$**'%.8+))("/)6,#4/#-C/0&)1-.$(04$-.-?'%- +'-.*./%(%3,8*&,-&@07.9+*.#$.#&*&@)?)*,++"""#((72B0,B%$),D+*-+'%<-1"?:6)2#"5,#+63:#03#+*&!,21.?/+%/.4@#+(-'("+0G+0%)!+'7("8-)<[-/,&*1160'$'/71*2.+ ,+$5%(0)/-'(&%/*'1'--*-$"1)1)/5'80)/4!$&(,+/")0*00.0 )+J)%)&S1$1-)+(1+&&'@)4:+'3%1*$'42#'&(<+->&2 (/(&)5-$.!&3)&,--"*!3%)8'*0+(''--.,/+0'!*(/,*D'*"1/32)(++(%&*3+,+50/*9(5+&12*2&8(",,!$.47*"#&1*5-'5-''3&)%%-,@,,)$#.'8%1)(1.0'1'3!-(1+'%()+4*))**%@/)+ 2$<(*"(,)-(3&),))#0-1)*#)-%+-/)*+/72*)A+-,'0&4*/-((**""'$6' 9#%30:*5-+-$&1,68$)&&- *)$)1&# (*4-&(4&/%';-1.$3*'#&!-'))$6'+()(2*,& G!842-',0!:(6()#"%E#"$,-".3-'#"$%-&.#(#1&2&'%5/,"*3(D9&7$!+(%&,"70))2(:5(1&7() -:4.,-'$$.-!(&& 9%#*!".S/'"*,%/$*'./93.+11'0*2.(1#1)/,(')!&3''8)*%52,0)+/(7311&(21$7,'")@(-(!;;&!+(&#,"*,%0&/'%0 ,%'-'+ $$)-76'#+,%!731)*$%(4(+>+-6 6'/"9&5'H2'$1*',)"/.2))*-%*")-*++(%6*%),#2%9-,&+%%26*-&/,!#0 *3%$("##-&'+13%:/!9/1(,6+77++(+:"++$$(.1.#15058,.$))WA;&,0'&,"4".&$86)$%0=#3+-'=*"%+ .=$B9G'*%&**/I#, ( *%+&"'#3);15#+.,f+A.-9-8 85.#%?-"bV%#0.'#+1%49-5) "&&?+*)0# )#+(5:(0-+)>4)*)$-,0%- '-# 6*.23=74,7-*-1)%$(2'+1>%"W%'!(,$^0,58%-B;0!"(4*$0&8+%,'5*B*)-+8'0*%1:!=*6)1*),$',100.I*(190-$)2 1!1$0),& (,2((1+#)8%@)(3/%%-(*24.{%),:3A#0'&,8-..%5%("$/'-a!%)9F505-*("".'#%(:,($*.Z%%,)/&2+$0)#)'"7'-'+&(()(*+))"229)#(& ,/41<70##)%&\ ,-$+,<20&3'C.3)'&'.0!8,/))+#,('-$*41&1%-'' "$'>%.*,(, 9))91#%$'0&m90(/$,5->-(,'#,*/*(&*,+3N')&+%*.)($)/2%-.#%/*-,('#)**.8.,6(/3)-(#+")(.(/)&'"-*'6!(0&.))&/$$*-,=762'*4) ,+++)9)& *.+5%198)0*+5-.,8/%1)0"720-F'&07&4+*(*?#('@!'./"/%0$'-)2+))3,-3!$/**82*&-4*+>'1:'')+,; (*(%4/35*2@'.16)++:.1%-%&(+*0',&*",*(/)3/,-28.D>,%082&!)4.,2)*,-R2/-6%G$-4(-=,34,1&)$0,0-39- )'66#5%:6"',$/).U03/*"),*,)0!7(4$*+)"!!8&+/-6#*()%+*$I*-)$*)(E1$/%:1,:)5!059()/%(/-(*,#0#&*4;"%/)H,#3*-*&003+!&(-=/9, (-%!%&0(4"14&%*%+)-'7';6 *,3'P$%!0$+(*%$08!.;59+&/$-)''9(6)%$5%% &+-0:-!+Q0!E-" $<'$5, $()8/"1&)('%@)#0$<6>+&#V.,5&1"*!$()%9)%&!2,.5"N9#+)$$-&33+#90B#/!(*;+m+?)+ ,<2'!-**8'0'"*0&#(+%e&&'$.,$,3@<.1*,/$ %,,.(4)*"E  /01*!/"'1,((+3!$(() 1'1.%!D+'5/?(;+*$+#'**#"&-!#(+ #(/2\-(3,K.-#0%5/#(&.(&$0&7 %(, L$(B)'$$;5$"&((>V$)++3 +%%%&E"++ ,*34/e("()+( ('I8)(6)&18O 4-0("=(&1"&;#<)&n5!+-3-(&J$--+&((G''!0+2"5 -.(0,.(%3=!-*)%##0('',A5)#7;+#%("-$%>/4*##' 3$,.7.&8!$.A/&)2- *9*"%3,-,4&,9/,&+"41%#7/8P()#F-;.)<$6>)46,,!%4,%'5&<+2-.0+/<''$#%*2E(7*0V"5"*%.0/)./51'+-$+340*#!/10,.'%+2.:".3(('1-6)/+6'!$%.$),00/$/0/(2.&.#2)14,%)*'$*')8#*&4/(.$-+@'(+C/%-,#*3+B7,0#+/?)+6&,,;9(#&5D148(/-3!4'&+-;,--'*!;.0-8*./$- '/3-(H51*)%24,&)0-'030+&*&'(1.E-'/*&,&',."600*--3&$ 5Z9%.'+%#%//&.8-.01>*$*$2/#'"H$,*%$)9+9*&4;*,).1),*))/1)(.50-%%%'.<1/,/!&-24$,2/-)0/(1#44+39+<)>.46.-10+/)4&-,'0(.-1(*&0E6,&(0&-6"*)5)6%(*"''-% (/4**2&.*,*050+2' +5)*.01"'*/-/75*&7;,)022(50+)))*-1--#45*#I%.2412**3,%"#-18@3?=)15$)$()4-+'#'$+15'*"&&(#(4*-@$.7(!/-':$@)'3+(#+1,,1,2/-G0%$(FA()2,.48130(:8&0*1)("*,88-?2/-5$'+1).18-%0$-30)/2,8'/*-+B-23/,88$'%6/+#'%!(0((*0R,44+#-2*,.&'3.L#M19=1B(..& -$')((0'G/7(C*)+.(&+5/*$5'"..%)+#+*)*'(,A(*5%*.4'0,*0;/1%'+,4+'(5,/%=)+3+1.51)%, +.'/@,&'()+.03;*)-2/#.#*!,#?&,0+'&4:%0.)*(5,(#R'('#+* /*!0&*#*$,)/#$-C)(*!(.9/$)? 22:)0%$336(1*%4.%95+/.+0%)1.&#-#%"'*:*(+%'!-214$---#&S%$ $'1->2$$)w9500:'X$6%*0"(31S.*5-5*!')&239A'(3'3.-#3b'&*/00#3%!I*($,,$*1$:(*9&-###703,7;.5-@'#"#+ ($&-%<6"%(!,0)!,+J.:*)4>'),1)9@&$:* (%.2!/*#*>$'94J.&(%!$$%'$!."54&,2#&)**0 #%#( 0.!;<0)JM7,,&)3%,E5m-34#!)7'?0,B"0$! ))44J7$-&,#')7*',7+./+)5#("6'4-B"')=$)# ,,-'9):B!"#&1)2r$,',M)#.-#8$%:-.3B:-)1+"(%($-2!6<*0$*0 (,6%''8&**!%.,A&@*",)%'3' ,60(81.'$%D(11#0*- !.62'+*A0)0*93!,"242-#/+$"3B"Q!(( 88 <1D+C;&1/T3.%$903)$+$5!.+#i$/-+!+%1!@#&57'.;H.5>$%( )$:9(5$%!&)(&$%_F9.(%+F"&)%$0*;'#--+$(}+!'&+'-10 '&2#/"3&!'/./%1+%2*0)50(*%-%-%)A%5#);S,%%'("26%#"''+"$&2(43 ".<12@-$4,'%*$(% "1'& %.309 56608(4.(% 802#.G+*5=O+=10)2)+4*)",.&35631< >%".<"87*%/<- /5*2,=#(5"//(:-29):16-(4-/,$ -&&$*/1'$/?=((!'(&*38'-/,3*&%* $+/#"/8('7(+,$1!-% %'/>>/)5#(10,* #K6+,(( #/$$+)$0$8+%P-&<;&&-c*K!*.'1&=&$)$8$&#)2G"+))#."!$ &#'3$'#&%,"#-'%(($$.:.(%+*"0,.",*+N+"+'">*!*!1&C*.#8.$*((&;2*$+<.?A))'A'(5%!04-','1#'!9l+$$#((*4%'"%%U5+0!('+2)*!&b(,%E&5*)4$1$#*"#*x46.*"01'1I?.!"'),"#*#5G)*"![!U#(#%-z +,/.'1t*11.$+0%)()D%(!$1*!%$*' B&&&(*.'(l[0++S+'>*])6j,*%:B6+ M$'0+H)#)* *f5L/;&&+9%,$* ,#,%,-*/)%.u)-+91)/+&30)#'%.(8$)43%3$$-.$7&)#.60#)$(2..$'5^"-@0!*!*%:%A+"+$,0%&;7)21=/79*!&), ,'-D):b6G&0,1'3>0+6$#$+3B,+*,,'-.$+304&;5)#)(*4,$''.>;"&*!'&51*20)?.-'3)::(153+'&'!)-*&,."(, %'+0*%,G'4/(1+'N*+i,+*++%*+7"(&10*')4"'#$#+:&4-"*&!%5+'EC!G,&(3$!02/A40.@5+&2+&7*%0%=+-+Y/)0. /3*0%3275$06:350B!5,:5)+-01(& ,+(59.,ANO;%1)*=*(42+<2*+'1(%(%7.9,+.5##5($)/%),1(&('!11**U3 &1-( :?'"'*"("0734/A';(-++-'(+2-0(=0+$2+.%')'2-"%71)(-%%/6)&'-*-3'9"8#/#*'(;+0'"-%4*1%+,-+F1)'0$1"(-$,4+5*%#,+8>),,71$-1$<6/93+./$2=+9),1,0-7(1),4*-*+2'$+(.$41+ -*/3-/0++%+,61,(.0)4+.63'++.&.'&.(+/;1,0*&/6C14'6"2&1--+-'**,"+0+&2:4.$416',3-7()+-)$*(%C8#%12' :$93(1(="6)<2!.,&43;-0*/3 ./ ,2+2)P010(-&,+(4. -2"6/3,)"+B%5/20*,+(-/"*<&'1)+-*$)+*&1/,)'$#01#/A'0*1%!R&B%+2&0+)-(1'"1-,50,-2('%/#-$<<*,,5!N'(/,$*3j4*1)2*.0)3)#&9**(#-*6'33&5%'(&'4-&,+()($'6(6)(("&0-2#'+6'4/802,(*-*3&&-/-5(,'8) ,-%/)/0/ +.(5-2#(!%#/*'+$3+(-&-,%&)9.&-1@-/&#)3)+61,%J)(3!,->-,)%#+)2$-)"3%(2$:%>%)$4!#.+($,.'(,$..'.)"$%+3%=)+K$89+#*#6$,)(2)%(3'(-%.)%,1,?+%/)&?,2*/+.01*/+0$,1+-*()(H.'6-7++',*74&.$3./.(1/#+41,$,$,-'5*'/,$'5%)$(,,,3*&0*2-2&2:/&1.&((,22/"(0+++'*-,)**&1(,<.#9)0)$-.**"0+-&3**$$%),(1/.7.&3(344 -)/+I0"(02,&&0%(1'/$-'&&/9D$!*,3'(D.#6(*!,&)/*1')P66!")!0:%$/%1".-(&;+'6,-73'%#%$$V#""--+.'*)V/6+L/*&-$2.!45(%01(&'-$-$/5'%%.(05('H"#+@-?'8(2,.;(+-5&0&$!--*-'./.&,)4>,(-<= .+'(..B,3-1+/$-#&35'#Q3Q2/4%#,#.3)67,4&/%3$(84$%130%,,0#%-&-,//3).21%%)"(0((1,.1R(&!(+,&//0='-7'*%)"&-%*170b9*6+$O3$<)'&,&'0)$,%%)#!30''-..?$&3 61'.&*'**,%.$77EF4311l'#))"4%/2+/3@GK(,*,1(0.+BB&,01.I6"](3P7H$Au!+2H)7#'8""05&%#&&8@3/%)"$+.#*3).&13%07 D"/8 <(:+,^.C". (& )'),50+8)T+&!,'4/57 5%0)'&&'*$#;$0*%6)(!$=!.,6*-$-56Yl$*)0&&G,$B),3 + 5.0)#424$K*.0+'*$&+1#91#)!7B55U#-?1/8)2.%*)2(@(.)#(/%0:V/"M%&,+#1k&-//'%.&5"#2&M25-5-)$$)6#=*"9,=8/.'!&/)+)*.6#8#)8%-#5."+*4.% -.5#&+>+,#7!67-P&"#44`-'=9:/1/3#*-.?#&%028*#5),')2$+(1)*'%@)!7C-'+%.&$^/&(!-2%8&-#)1;5%&*Q$H/()594-"14.)'/#/$."=&%$&K#)G(6D%'((')-<660V1E 2"&%A.M +S++4:' 29((-(&<';1 %U*":.0#-/$V'G!v*6)"'/:"=R :,*"/<)928(-#+$*&D)INt%*+/*6%+#1-4 2+.$(; %&'(+2#1(:-+JH-/+'20++ 2#)!+(0j&" 61!$"C"$!)"4,)#/h#.!V&! - )(\&)%=-,C)/"#\13"5!E")*20*/&G%@(+(%%2$#$*$32/=4""=C)('O 2%88H88,*,"*)@`##(''$1%/*$'"*1 7+(+/(* *@(;;'5+-1:"#!*%8-$(-"R4!%? ,)/B&-)<^)A$+'-&&C#!&/1')/5%D,?)3)*(%'1-0%0&6-*)'+,):1$'7(+()&%E.&6R)* (*)./%7+% -.)/-%C 6-.T$!$BF*=-.>*'!2',/:.,,&?&5+3.!=2%38#,%&$1-'%1>+&0<7 )D#/)+)+,..&1&$)1',I'2 8#9H:/4&;-&!4&%$88( 0#!$5$(*/*5H63++-5+<0,#(%&98(4+ >./"')!*!/#7U&3&9''*,&'7>+#!!'0*;0"*"-08+:0,$(+!103/,4-)(1+1'$(&.#+'/*O,C #=)!!1!, +*8.*5)*++*;<(()$('*3<*',(9,&)&#:''2'..*2+/8("0+)2-*3$*)+'D<'7&/= !0%742/%07"'%)(&*1+8,'**-5!/#&,67&'$?&I*9-'21(1,p(/!'2"*''"(+19&=+-1.1.'051@=6(,"D4-'.--%*/.5%(##93+A((($(*$:3/+)*--*)"5:*%+3#-+,,$+10%.&!>#@F*%%#!$Q(>I:' 1500(3*2&%%M23%+,(2(!&"7&)C(51*-*&/+, -1!#)$'e&9 ;%19)[$7)+&0+(.2*.*!+%#/)#(!+ ?))+&&:#&),.$,!(/)#*+#6@j.1%',5 "6&*+)*$(4/&241-E1'$&!#32+$-)+)3.,I%,5)*$8-.+!**,+')-(;'*))-%',8$.%1N,(CN#3%+:'))O-"0#.&3I*,/#(;!")' $1#3FJ)"+9%&2&+'(&+#%$"H($2')=/">1208K1%(%/0.%%/+$B/*$4!#(.%'+H-4)9#'+;&./63-+1%*'#1/.4#*4)*1+"/-#(&+%27@",(-+)=))4%'7-4&,?%7%,02&,/***>$+(29#&"6%#*4$&0-,(9-();%5>#+9!9%.+*&)$1)#-&R03%0,,$$'!"%,&+*/$-)-49/;*)>$"(2&.2 )'G( *(#P+$;)&%(-0$$(.+> 17",/%*1-#+%5/D&"'#%4B;:.%,5&(, *.(+1.*3-%(-(6"E$!,#d,94$+?/P3(#-$-:+:**)+0&O-6C6'02(5)/+4.-#.;"&6-*'-2&)'*4.7(,)),)+#0')'"',/)))$#+&#+&!*7$..*#+',,-+3,(//*'5+6$1)5)./))'/8).($)2,.#$9.7)0/.-))+,(+*0"&01,0.'*2"1-7+*.1,4*+-4+4(0<-0"3'(/,3),4(/((-%,/.<(()*',+%+/09!$))/)(//0)%9-1!(,'07,("1%9()&4/3&"(2723,$'(9-*,-)-7(0-%+2/10)5%(5-14*!'%%%'1+*(.+)0!)-)-0$12.*+:8$%0,>-(.+%'(+-!0 %,'"60#)+%!0/$*(-(1'*#*+/+'*%&8)$*$'3..+(0-'(+%2--/'$,(6*/4)$3/)),+/6,4*0-*'-'27-#%*1"29;/4-"-()6%!'#''4&9+F7*).# %+*:6(,,1%,*'&2)(+,A>/)1,#7$(+5#.#1;+%*+B@,-##)&1!)$(,.)/)4%+((,95/F*20*-'.+:',:'-0&%#1.4%)1*/3*+-'*%+/3(!*%)(()(./,..."$&&<(14+81*%"&"-!6(/,*6,(104,//>205/&(5#)(-+*-9!1+()*.),,++%5/22'.",9..+04$+-."&;'(://A.5!,.3)X%4+6*/-1(-(30.))0-11*3,))+-)/:*,.7 6(28 +;-..*%.$++-**#$2'$:,#(&26%30,$-+'1'"&!.)?..&B."(('&73&()"*2#,*2'+/%+0/"&+-,.%1,)8436+-1.3%#'$)3))"26++)'(!30%'%/+0,&)7(*,.'%$1*3,(<*.5.%)(0$%$3.-33(+44'9.*1'/<4&,2"*$0% "�(+5%3./)&,/2564%'#1)'+ -+*-#%//9&$0 '* &-3;%#:'&4,,0*))"*!(3&+&+03,-648D5)(61(+)+'-'$*&,+-:.1%."+($)) )*#'.(-&1/),46-5"1$%2/+75(+&-0!#,%1**+-+2003/())//,',&Q+*5'8&'%/&+'-2***%&(.$0$"8E),'23)(4"'0%5/$'(,)."#%)0-0,&#2*4+-&@(*)4+.0)&%2+4$26('=+:&/%!&003.*&(+"3),4))6$&,('3)010+%0*%(i/*2*+*#/4B&(0$/)!*$+20E%08+&I-$,4)$/ *&7;'A)02-.)4:51((1()+/4$%>-)0'=3).1.<'&")K-%,"8!.$/A1'%!6+.<)%0-'A- *,102-&1/(.(*!0!6:.'&2",7*%3 (-=0+$1(%&,M01)*+/&4*-8))6/) - /8!)"'"76-/%6EB'"&6# 0,(,$',""+..,Bq!#"'--'&"%+*"%'+(%;,&("%810,*,0,+##30-.'/..0"3(#)#(*:+#3.%/@+0"=08,*9&<&%7%K# +6'-4*%5($)?#:-,T1,+#4&=%0&))/@)3<# ')!).23+)90$@E!:+.O*.'332+*!#);0#&:*$-6.,5!!":&3;(%,.0!-%&.%3##"1*8%,'P88((+#+,0I-$+"-)f+%+7/2<'0(''&2."+,#(4,3)9*/*)9'2,5)+)-+*"G07,-)9,,%4,$'*'#?)-%%,)'/++5-."*.*3$6"25%0(')%',*-)*.+(']&$/. -0&$-(:S0+/$/(%'.*+1,5,$0#)-1-%/&86"+.&('+,126$''+(*%0'4',)8G('29j-/0,%$0&(-B#(,44,-L00;/,(,#,:(04V/0,)@)$-/')$++''+/+%.!<,,-)$'+0'.3,)3:2$,-5/ %,*( &0.3&&7/4.=!*.%03)'00 .).e#=$)/2+2,*%&';!%/#C##(*/*-,7--':(&.)&'?6,**%!7!/# 8" ()'2-#)*C3I*'3&*($0.<)E2%:)!*#$+')!'@0%)%4GKI,)3(:"=##1#1&(-V(.)*$%d#&3)#1#&%'66*6#6!1",4"J6#$-%*8%(H+($-0C(#'$"'+F!,'(5+%%M #3B#%<"&+.,*-)(-**0%R%,()5+.B7"(DK-6$1 5B,9'"D7&)E"#5').% %'@&(-*!'1'$/Y!+((>,;*6(#.4!' 0+,0(*]9K%3%-&*&$!$&'*,&R/H($$RM-$4+'6.$&.&58+0 '%*>'!!+,M k7'%-1c&1#*-> %"S M%"/7)-/C++')+ B#(**+!")2"1%"*4)/60%)2:+*))"''/&,$)3(#*(41$(*&%0,03)%'-,/+.*<'#!6.3/!.,#)90-0:&2)'1,%#&@(;*8%#-,(-'**,=+.-,#;.&./B,*-0*'29%. *0'%-(.9./(*$&G(5,',(.3(+'4+8';-60+2/94-0&-17%1*-.10&:3(40"2,+*59%+)>.3+''&0(/,++3#"-(64"(+1-G*--"/4-%.),7")*/1-+/"P-0%1)'&$2/-0.'0(S-''&4)()H10$7*3%61*%0&( 36!15& %4=>$%"1.0G=%!'.%,4!*3',*22!-36*222.0.'4,)0"+5$,""*(*$4+<%0'.7+$,&'+'%2*,..0-"*37*%(-/),"(&0*I+($%.+4"%.-*+1- &*$%$54.-)6$&,;)()8(1%&-14+.!-.),76.)$/!)')-(+-5/.1*1&$)(2/$)-+**8.*.*.7#$,8(#-/.(9(5"4)20',&"/ ,%/)%%3%!+&-2&)./()+,:2)&,5+)4 -/3-A'-(-,+&&//'1'%)*"*1.)$6"7(&4()((3,),#!"-+*:)&*%03+'(*9..13/)/6,:)*0*&,,0+65$'-+/+.'*2%(")5+$&-&$*(-3/2)#2(.($3%27.,&/041#)*&1&%-,322-)&2+/8)7)((2-++#4**(),($5+.')&34///!)-'&)&-#/0,*-&,1:-0/%.8/N,7C1)&'056(9$'-%)%-./()+A%*')/(.!-19/++()1*((**7B)&%1,1)/;2*$,'r$0>>#*!+0//4<,1$,/'&$8%(%+#)&+.2&('J+++$/',/*.! -)?QF.H+2()'',.+)*$,*3C&3+!h$@0'!*$.10')"+.$&B]$$)<14&(0!/!/8)12!'$)5)(#-+.(34F-=,. ->3!'$1G7()%*+'5()2;=3O.-,+5$*'+(&/#.*!.#(+)$0.LD))1!5/X!'-I2($+*1)28.$r#$*8$(3%(4'0 33'0%*.,8.-,;.)8C%,&(1'.**(&X+F(/>-)QE)*%,,3&0$$(E&4$)3#3#'-4)4-01F0.0'81<,0,+2#/)%*4$>,-'-4(1,0)1(,'%1)Z"+#&)GBN)&:,''&#()'+-9J$#,:(:*.(4$!7)*'9("+%/'((-%31'96.$&4 +>42')&('%E!6&5('-"&+6*"52&#"&!3'+^1,2W*0%6(8 '*,22$,..%'+#'6;(6#%/%%-+'&#.!&&&P'()%&0>)#0 %),3"&F$. -)"A+;%$-%"#+&-=') *,N0/B*;f55. %)35*%*0:$(*0'%-<-)#1./5513.'A+3-.>#"(&@),%,)/2'D/P//5/*"'-*"*!+/'4/",)_2$)&&'$$$3.% $(2'"&),/)-).1(H&'(),*..+#*"+.!%$#!'#*&,''&K+*,/,3.%B#2'.*2+."/ ,'&%#*!,)2(#&Za$(3)/'%&$7'#3)31%)!6^|*3"",03"@$0( /0*,+>-"*.31/#;_*KY!.#.$+8e!$#+#'-/P ',*@")($'' )_,!" -)*&%a$1I-*)0=(,)(*$--$#.-##((#%8-;F)!.@,)%-.-/,AGD)$1/%3'&*/8G&)+8,3!2*" ):2"0/%%80&5F*+)+'"++)&!A+)'$ *"$+)$%'/3('+$*+($221$#;)B+-%&$20'0)(1K$0(* -%$"$F90"'+1&(,( '-%75C';eB++() @$4/&),"$, #9(*&'&('14182A:)'%/)-.-$#+3:%'(+"><,I-+32"(&)#%4%'< !,&F!4&&(-@&<3'>,&*:"q7 &043$$,.+'3;.(/#%`,;%/,)<&6EB'@102-*P",$8-%")#.*BI.T'$+#('eS:$-!&0*038)) %$!"/40%&0#"!!($:6$0'"8#%*&%/#%'<*)>1* 1*+4/ #1A$"'-!"2(($&77*13*!-4%,304 #$/0;3)&%%&&#&&7#2!*-,#33,#;&46,-) A4&=)'8+18 6%(.',/! :2.7!+.$-!*#2=-7* 7' 2$6 &6(#+*%%#); &%,"$&))""#"1@' ,"0 2,:)'*.C2(&"3+$-70!'@'--':(%"$$+!'9;2*='#'!4!0 ;9/"$/!@+$43#,4%9#-%"$*%#/&6*729<"./- '#/7"+:$)*"-",&,4.$1'2.')- 4&%-&+-/&8''2$)-*(/$0%3--2.2-?"3)%('+!%-%%3( 5+%660)(5&$14(&,,0'$"*+529-,3.*')."'+33")04"|.$$2/%"120!$7/*(7 *L(&%*.!.),-0/%$5+- #))%&#.9)*'+(\% ),8,W'+&%;8".# ((8 %%-)+($(#2"(0!+$1-"M(+#',")3*!0'+$)+&**@%'/.!(-6$4 ',']#)-(")5$(*5,"(+5)*%-,14&&21((+f.,-&3# C$*')1/!'"8+-3()+,,--5$-1%/1(=1,/1)"2+/!+(1&*.'2/*)"0!-+*%!5*$0/%)$../.)) ',6Y-!%.#**/ 024#7(!$23K%"4*$1;$%'A*P.4#7(&"6;'$%-0\,,'(-4&&(0"'..,*1',62,$.&2'"/.(/6.+<#/2#*,>"#F(,':6()-(:;(5,*#.,53%-"*3$),11$+!45.*+>$++)'4*,&G6*&640.(+0">+($%&)760*,),(&2+($$%.$'+3/*&^+E)+!1'*'<$/-,);N64!,'(-%)2%*)$7%;*;(,1),*'-,3',1:'%-%0,)!#l+.$0+-3./278/7%+&1S$$$ 4)"$)2, 0,%3X=%W-+."$*.=%/&+(360+*'..6 -6'3&C/*.(&+F),$( )&))&%8/61*"-,+$$4&,7'9&$*+ +('315*.&$*$C+,"04&0$'//'.0,#0,/#)';F2!,;4*%)1#!.+&'"#.9)';"++5)'!H#-&8.(.((+)*/6()'BAL2&<-%:-4-5* ,,1#0.$"90,*H-7!',C'%82*)"3> 4 &9+)0&'+5/,.K%&++,,85$,##())./(74%2,,"-..***($+%$ .#+*,0?%.-)!/%*/));G-**.,$2!.2&.*3B2 *0(,0=)(6B).%)8!%(%++"*-C()?+0#8-#0'F ,,*)-*7&#V(57@08(6$'*(!1. +&,_1>,,(!'. :(,#&0$#0'0*41+-3#/++X,(!&."#)''0@1++5 !=$/ *(52)8..(6$.&&\/%/5<=09!'.!&.*,%(/.+$P7Q.'.)&2!%.)4(#'$9;60'1+"9&$0)9G+K40"0*2)!))(%$2!,-1.-9\%44'9.0@,76*7"(!9$!d)A00#&1 N/(.#''5B'1-"3%,6)501"%&$(5'H22808-'.U1#(1).-%/&<:=/(*#)'; )#,#*=7#4'.F2!60''259-*%,25?+- *,*86#V%J07=(*)$-)(3#8E23'$*'$+P+''&.%N*0/1!&,3'4#.;B--&$2.%.812*-*,'0P&4&/&/%8;#3:A-(-*.D&/C7-H3%I*%*(*1//(*"2<#LP 4(*')4.!+#/3%)?,;$0@(2)$-)/-,&0*;,'./*&3 A+9,3&04%#+'("!2)I.03240"&%JEa#7R48+$[./;+%!$(0,+[.,&I'0//95?H&12;".%,$1;!3#+F.G1.9%=?"6: 9.+(&+.(9)/.%/8"-0#%-#)&(1<++/%%&$-%&-5?&#()3/&&'*0$:"&(0)!+.4.*.'2&+A0('%$7)',,)?`*&2"7"$39R0+$.'"*+/$-=>,-8 ,,880**(M-1="6@/0-,%&)/,&)5"0(+)+#$);(+&A$(,*+0;%+/.2(1#/('@+3).*$%&+4-*&>3)/6/&(-/7)=3644&1#",)3")2-6)!%?%!(!"1&N$72G$,8+,%p$)51/03)*4%0C+.#1>&1*/'/$1(990"&,3*#(/))@*3<)%02F..F **-%$&&!&*.,900-'&,-"*$!4('''*(*#+>'1,($<.4)5-K-$*&B(-5&%"-$4"7'*-+,)!/0&/310+ ,%C"+%,"*0%9."'.*/.$4#, I56.f).&*,$+,5"'/# !%M:A(L ?#1!()&$3#&)5,5,.'4.2A48.%% 1$"(W$.&$.)/4"(!*&/*(/)#D.)3%>((F4+*H0"'.2,B4%+*' ,( .#)(+((5/%#<''48U*$:20!7A4-'!0,28!&!)+ -'$'^G*(*:")"-V05-P.AP.6=):;61/9"W3%+*(&.0&7$;<>-"18(+S.(&/(*6*#++;$&,H>&,%..=+*/$&-G')3.;_&)"( 3*(0#&)&6*-1-#'1/+I02,,&!..*'K20&0'&:,-3,J'00-#<1''"%(67)'/&!+%&(27-F#'&-7A%+.&=#*39#/6"8022+$.&)*?=+3 /,$(+6%-#4& ,*&-)/P6 %7),;$0/B3&0~!2O:* ,"'#[.6%',&&56#:&0+#)5*.+(?'+.01)*)4!,%0:$#2+%%2j30))*&!*%(&)0($)(/&(&$1&)*.D16**('+&4#+>3'#A4+/7@$)!+5%&2%.&'3+O"/)5%),,(S,'0&<*$,1"''7)$2.%"+/.(.A)%*)($*,/[+('(16-1'"! 7'4/)3:<* '/".*,'%,2'-)0@!(&-&+36@+;:11'@/$#+&)$."(#-9'9-' ,./(*+A4.&10!&+0B'$1//#&2)(-(61(5(-*Z&*)/&*(**0(*)/&*>%=*,=%2+'!'X@6+*!-6'0+F()"+!"'!!%* '!'5=;-4# $*$)&-(.-&'4%$'+(4)!&=*!(%6"))',.$*$(.+">1(<2)$(/+140.!)0,v)"*R!$5@-!-$*(6.03.**&0'/)(/&99'*2"/!760'T9!".!41$*'&.).P-6)/ ( 9-0Y/+4(3!*-:$&L(.'+-1+4)%0+6%/, %/)'-4/F)(1$L'+2*70&<% 3#+#-0%#%'','(3*" H&K"%%*,'B((+$,,/. #*91&+()'2 <"#2+0)&6:!!-.&$$3"2 c+:>4%&!&'/-$-18%(68'0$$,+%"3.0'?(0,&!.$(!4 $),,'!,.,*,%')!3#"&3)&23'=/ /($1.#(##$1+7%*%3*!I12E&*!&*!!-5&*.&):!/:V#'7!(6$-1%6+4-3#.*0-,%y&)#!)%&,')+-;&3+(&$3%"%Be+-)3!5$.+0$(*1.%.(/+3'-5+H'(%-'@#!0+*'94?%+''++/&21 7!;0,!.'5,"5$+).I4)'') %*+*#8 +2(+)(3&%(4(5(*(&)5*'*;7+$.>$*##61#&$n.+;()-91,3,-#%*%)#.&%()'4&2)0&08I%,?)*+2'*/H+6+'=((>51.*&$$!@)&2=+0&&&#'4!+#*&/:@%5*$('),&0Q"#&E/,50(,&044"0("(%(5+!/+%"-!,+#31*--1.251/--)$."*%)/&2+.6C@%4##;))+2-312$ #,'7/&6$&0(66#8!*%5)0$7%8*'0B/%:+!$1),#'%*$-(6.0/-)"#46&%+1)9'$+8a@0)0*&-(.+2,:'-2$,!&07)E&:%&).1#)%/%'!"4*'91,+$..6$%)/#/.9/#%;-.(*-%42-/%0-#*00,-3-(,%'(/-.,:.7/*4)&/+*+."$$0$1'--#'&> )7,+2;,00"2%*+-!(.20*/$&3'3(/(,%'(048//%-'"")'7//0 03;+,6*&!-2/4,2)+1-)+)3$1%),/-4&&.+11/.) 3!?%(.%P7 )4#(3+12()"4("4(>'%"(2).A@-$"$2@(H(+)*,3.+'R&#)=,")"%)(21A%/1-+++',A$65<4&6-#9Ft0&1-'24)!)/!'7-<-+41C-'0+*$)16Q$,#5&-2"3"'77.,W.I' 2 ((-%3f!2B$:0#)0L+)#s2"6$),<)-%/#)1(#.1 +&&;$'-$$=T),!,2#'-?-67$$#7%,"0%$**71-"1)&)#,O2<(7($)$#!:? /6F$m@-/)%'0)Z*m#8.!0+(B$/(/)$4$ (_%&!-*#% &J$%6$W)-.3(/9(*1&'%&25/#8&$,3'&3)%1/'oI%1"&3$2&53%3(40/(/%C'#*V/-9&%8&$( q!J/"$"+*,)#2=;B((//A(%2-**)1' "'0+"&V".# *U]!-!$9&%##.,,$)*/>&0%""=C#3915$** 1.%3u+))47+&3TE.)C()'*B-#&($),1'$ ',8$7)42*"("-!$#$7.'LA)T2#h')42")3'$4#,(65.'-B*!,&)'<3)/+#'-('/-.A/(\E'0$!'&.#!$)+*'/7+%$6@#=$&+:$%3 0+!-64+!+4*:$'&'d;-2&v-13>(E.-*%%%+'%2-.4-05,? ;0#&)((D'2,%#&:))#,)8C'5$:)92.&1-!%,12'+*) 5(#8=O#;'( -%+%,&)2'S6#A.2'"/-)2*3&)0NI4-'J(3).**,,,>/=!534)/($$1,(8..*&$T'$@1%%' 5$3!.1(!I*#3"((J/-H-)/.((+', )./'+'-=(,(!>)#)5!)/%(*5&0 7*&(''.#'7)+2&-"'(%,3..*53 7%&:0$!'+"("+#*$'1*8+354(80/<+%4'516!1"-"# ).%-(#!%" "4$.&.%$1$-!4%%0*3#")&(.&$+4,$$((/3+),,<-0$-+9$0&0/,+!5$)&>B(&';-#$2(;)-'-!,-/1='(D"3*&( 01"%"N& %#%5-+I(.4)&!,7!<%%;(#.7,1%)+"4*7(0(/''!&2(%+>'2#)4>09.'$2)%*+.#*6&&&(1&')'Z )?*#"+*/ &!%.!'&&(4"*)*!& ".C;+.9(./%'3$0,-+4+&/3)0%..2&(90g10.!/,./P.,"*%-"1%&4"&':+8"3-251#-*?:())0337-&9 ;#*30#,+0.>"#%""%1-.+/9M%":#G)F%( :% +)0#2.#+$"90# -3' 0."=h)0! >",'13'6(7/"7+$@J-%+1%44)!(?%*') ,$/47-()!",&4)'$11.:0 >#&'!M3 '-?'5-<&*/&*0"&")&6@+/71"4!H(*)26%'17@!5,+-)&&/-$(71&(.9*m<-9k)?!$%#13 &1)+-5)*&P$(+-7/" /":+)(+*+&/A#.G2.*+%)5: 3%?-+'26'5 "?-"//7$6915''?S,& -=1".,#,69*(!45$8A-*()'#0 ".N*-'#%#(8!%(29-"&&,;#/5'+/1"(.)*-3#)%))D/)+9#21-&!-'--C#8+00Y+.$>)/$ !./*D&(C$-40"-*)$0%:7)',,)/'&&-'.3/+)*2#-.--*##,,-/-4(+*47*.'.(-) ,);13!(%'(#$%(.5''/6'q+(%),D3)(,$'9/+',*@$*'-,,'*,4)/"+12#-.**#%1))0!1/'-#'.B',&!**(2,3('(/%"-,!,-))%.9C/.#!+(3.$-++/"<4*$!))7"2+%!52#(2.02%*5/'#/'(''*)$("++#*(,- ,%+'%%''$&"#(32&*%-<,;9-;)**"+-%0?963+/:!.#4"(-&)'(',6)/+$+/-',/*=,-)()*1:*((!+/,$-$!."*30*+1-'0)-3+++%'(/'<%)+0$4,,)&+%*?-2*'$$/9+-"<$-6$B1(%)4-&,1.2$-8&((*0/)-$ /+-(90)"/'0402&.+-,<0&*3",(2&&'&13-'#H2;&+8-!'/#&"3251-,/)2.3-()6((J(8+)0',+u$)0#*0'*,7@A*#+4*+&,7+&%*+/*+"-"2(%/)#+22*'.(&>28'$7*"D8+/*&/$!%.,-&4(*4.9:1%!)A)21/*0,=*%*0' .,%/2C10-.++*V@%*&!48#,6. '13&1+!*,2'14"/'&5E.0'(()<&'+-<&&'/.&--&,("<-*(1(.6*+*+6 )*&,'!)%.'20"& +)31.C'-,*.& -+/+,:&()*1,.104,34.0%$+.72+(,&.((,/GN,$$P&1),..&,%43$$+ +-(&-4-%,'((@*+1'-'/'7-4A)(3$*!?',5!7I6*51'(*.6/1H)1!(&%+%*,-9%9#((W&S$0*&*!0-9,]1,G#o(+$P3%,(/<*20!,-0.#1>)2$%8M$4A40*;0+8,()6$ %% &!9#$+ G&T/&*241(*,-,+.*/7*0,,%"J-(Y-?$@;++#1-2e%J#&+)0$.32PA13/";$"/"S/*,(,](C'/G)K4@*4!((& <$!!/*//-')'X*1 94'-'.7'/5$8958 *,B%:&,6-&-)+1++23;)`".% /($)''.A)+()02(5%3+-,081G+Y$'+&'$(,(1&-*B(%)1$.'($)?12++4,+1I'"8(.3'1'"'@>0"+&.010D0+)0-$ ./)/(4)*-(*,0,+?.%)*(*').+0&.5X/21+)"0&:*$+:(/5,2K*.&%#)1$-(44')$#+(1?.,%(&/$/'B,'!$,+)3114/8+-f(B.4>(4.&-&2318//&+(%>,6)9'/+#!)+7(*./,&$1'7-(;"$*)*')0*.1:&$B61184(#.1.J9%%)9%(,<#+-*'(+,/**,3/E'.%.*%/(%*&5%.$&+).:%&+,&'$2K''&6*,<.)#1'/.,"-),--,&1)%!+9$25(4'%-4(%('))%-0*+*&.1)14+2.2/+<8S+(#&1+012'!2/E*4S#).&%-!,)".%480+/3/):!/&.:'%$++$$-,0"/4D,+)%/8+,2',-+($$)##-)1$-:,,'(71++33-$.00%.0F,&73<$%+7(!7%#O*9Q=*<5%&.B$#)5(#$,1(++.&621$!0&::$.^ 6+'.41K:%.#!-%A#,*/G"''6/3,*3&2)-4* .%.A#J#16$)+/"')((-"&(&L&-61.)(46;.*9),9))+06"8-$467+>$%005(%-;(F'5P(!(!#$%/-0^(#D)019-!55&:$06.(+17(!*,+'10,3#+9)4;)(>)(7+&"%W(!.10*.9(5$$64)0;E 10-)),0&&=1*+,6%>-" ;N,#$#2K;3-> <'.&.$5'(4E"&&)3+*--1#$+QE;-6.(>?B7'008*1&*3(&,0'80$4+3**5G&60""-(4')1')-;()"#('#!.//4.)$+!;.,(#/%,34*)(!5+)4# /)&5,(-K"Y%:(*35)8',&'3%+'2%*78,94$!#"&*2!>%!(8)9"(+$#-*84&(100-5+-#)7,#&("20,#&+%3)4:$'*-#2-$))*&'(&/3D%%/5<'52660$.D*@, $0&+8,0#'- &7*''$";(3'!/(/%,&7,0.4#%"$+d'6/!&T&('?3<*2++")115%+&;"$8+## +,&!-&)*+912+!/+62'&'3 (/'&0!+6/!(('"--&&-1c+R&,)*-4%1A7)+12/%'*-2G,-9t7I$/'&2787j*i"@:'(&+(#.%(.0!(9("<$1@+/L+&3%$0-P!!6%65/;%"$()*AR2."4%+,)0$826/6)('-1&J$R)+4:6<#+*"'(,#%1-/'&.('$)%.G/3&$)#.+;&5%''5?/,-'9)4^$!B-)%),:6.8+*)+G#(%<0 R)N-/&6'1('*4^'#-#6'8"!('*C#5=,B'&$)4,"U%)(G'%*5#5.."1?%+&&61.0!d90-0+4*2$))#%#0%&.-+3E,3(&(01/(-C(,0(./)/$95,P./2+",5;#0.0!%('$3T-'%+(.'2,=@/z0449"/,(2C$+$-8.,*0$8+)+-,(./.))%'*& #0+,+-!-&+;',#%.*H+0+0."2C#$4,,/.C3-%)&3'$3*$"/((3(%51$.%,+1.,%-'*&10;$.%,(((+P2')!#*((,%+00+*6,-4**&(#/+.(*,,*1'3*/'74$,-*,*E.%/0#!59#$'$//,#44/2"*,1>'$%*&'!+,9(23*$-,%%.#6,&-#&(+.6#92824**+'+#)*5'20/4*2+,9&,*'>#/A+ ))$;2-/+,&,!1!$-,.%"+.&@-7'),--#+,+*6G:B1)&+!#/.')#'*02#)C=,-&&-5&500)'?-4(,>.#0)6,%('*3"(**/)$--B)=%$&$8&"AF2*),/3%+/$/+}>&&2*)*,-0;+$#&.;'*M.-,(;"M,:$)"*.>9(C'5;#*<+:?6(%.(!/#($$.1-)*%'01-7','373%D $G"#2/211@:-%(+0-,!9,>C1*,,**AH&')'%J-.%'+8$18$/,%&,K+)&0.63/$)%?//:%#3;,7&8;X#HK%i/0$$1*#*(&2<,$-18#-%18(2,-1(*$)7$+(3< /A,+3$0g!'0/0$6-'%('(5,1217(+*)L$&'"9'C'A/)!2.2,8@8-*1-9-#+)#E/ 8)00/,9$,(/(<(&0*, %)90 (@4 7?#% *-(09')+9100'0+*',.0$;)7(#+E''".>BD8(,9'&C/,60/'+(;-0$444#5K&0]*+$'):-,"!)('$*$*)99f4&13F'12,*+4#&0#&((:--+"1/*77%/.,.0""8/&*Q2-0-+6+!&''3!*/%(#%/*,+q6'),'):&2O-)E)''8$.4#-')%"%)'.%.$-)$>'.'$1-.36100(>.*,,&,-' +#)/-,3-&1,--%+-.*#(),.,25#5/*"(#+744 +((*(0.2,&'''@--3)%0!,**5&+&(()2-1.$*/%,/0.,%%3!'/.-,*.&,$&(',1&(''#+'''&.0*$'3+%50$)50*'W.-,**.8-.;),*0+G-6.#&+@3%,+#0F&"%4(-1*2+,3'$)1$("%)E+3C-#,%(J&5.&1!"(35**.'-8$D)/3""+./,0:"9-7(.8(.3'*#2* /) 11)+'*&.& **3/.2'4@+0-)''6151- 0('3%D+0"'.<0(2."-:-#(')/)*!>$(-0#;"36 ;$'*2(+)$4,*65+,(('6+-&&%+)5%0%$ 38)#*%,-#54&-+.6)):7.'0/=#.#&&2##/&1,,6!#".@/(,10.&*J*!#(92(&*3)%-+8'!6+-!(& 1=;30/26-0+.43*%/2#3#()0*2*,'5,$%#V)8(&)5&#$)&)(/&14 .-;,)*.(*)16%&1','%'=&--6/3>'5()#0#B'1'*#.-5%=A+$0+'$%*%1633(&(#70" /+$,(H6>;(#..38;" ..31.0+)-&$$.#&=&'5)&&&)*'/2&*1,"!%/%()%m7/%))/,(+3)*-$>&"&#01#1);*)/&7%D&)7#++2#**)&!E&('-&'+)*9)-''*"%#-=%9'5 <466+)*))2)##--(&0.=0'!*)#83+3.7"&3&"035*0:*,&*4*,^+#&":4/(-4(<2)+(8-)3()$*##/,A2+"=0>+#L..2%.+$<319a!1( -( 1%5#+%2$,.T")$)%+*"4&-')/5T(3$Z++(((*-/',%9.7")4)E$-**8&6+NK'2%&.<"'(&&2+C,&1#2**5"%,##4,:>0./?0'+<1>8%*))5,/1#,0!2 *)'55-2$?$,.2,+ *=1'I!1&4+?6$15J&"9*;=+t;,(Q+(- +&;4)"#*,'"/)\2,%,&%)-*(($9,+,)+7#()9&-1(02'91'1,1*2.,-+5+%6+#':6,'4+1+<,*.,,,/083,-!+#/-*@%"%-+'D,//1'.(471+,('+O;7.+.8$5;(''+-.'23/'.&$.#4M-)'.%.(*!/:,/.,1C+*03%'/(7.)+-/(#(!)"*0'.*0)$-;.2,'(*+%/')&*3)&*0&50-)*-*!<1,,/:75,-0%)93.-(*030,*,+'.:1,,*,%(&(0+03*.5&&.,*&0)3)%&-..:-.-&$/.0*,)3(3,).5='.-*(2614&&',&57/.'&+,8+'661/),(/-92)5*1303.,)*,)75*)$,-8-2,(,6+*37,)*3.-5-:5/),-!1*/68&*"---7`%/.-g:0-//.+():)6.,-3-4-/9%=+)$+*--1X42')$64 *'--E)/K%-6&5;C (&D3%(9 2, #)$.+6/48))+@29& /+(-9)<(0!./$+:*.*-+1$(1((=+20$4)C3[.(/!&*+,7&*$D--).!'a!3&&*04+7H1/V81(EJ$132:("#+'6.&*%:3+"&/'0#M#')(O#?#'(&1:$,&?.+Q"!")'+#&$#.$ $)'-C&/18,@1*:3(6/))0J$!.*(-*+# (&+/50>) &,84)$ (&.((C',+<(('@($)",="0((-:.$8((+;%-+-/+$' 5&,),%)$-#4'*51*+.'/2):+HM4$)1(2&=7,(B#/*4+)&)&-=AB-&.,A-'?D;*0,#(()0%'H6./*-).4%#$P-Y,)Q*4*-,&+-$!&a%,']JH/*'&9/*65(*2<'&,$/ '$''-0%$#.,('-6#,431_/.+).8:%/,&6/('&2=*+2.S.-&3*+=&&?-4/,/2)#R/)C;H@0':!/((%).,)',&*(3''))7()(*"*+*#'3(<(6$*%4920'-E"#-+''U%@%*180*+(L%&*-%&)1),)'**>,)'F'<'+%3*$$/6&?0'2T/B&-++1',/%55**-'1-&3#)8/4.:%)"0'"+#/.2)1;*E<08A+(#+)(/53+?'1;@6)$.&E1(3'54%++2,2++))0#)' )),*)#(#%"$. '0-),.&(2(0,--+G%'$%-.,%)3q$)+)&,''"#$%,+)%%7,0,,-*,.W/5%&'s)4!($ $/>3-'"(*2''*>!?$)&)*):'+7"/>$p10)73)",01M1%D%d,"30*:#$!,)6%)-(2,+./-90(5%&)*44"-*7-)+,4- +$9*()&,36')#8%)3+,%(8&))+5$!$&$**+,**$0%)+()%$$&-'1''+*J*,-Q(***((*(/)A00%l0=00-,-7=$17%83-++?))l64>+)74,&6(*.++-,(;62(+%'"4".''.WG+*%///((&-$'-(.h*1"&)*,1'$)*5*&0)/05$X+,(3*,'&0,*,$)0'(*.-%#)%h%'.3.'*2"3%/$%>#.).'$..,+'+-(-)2+/1)&+-"1>,.5<'*%'74&)''&+,*9.&-0&+(*:6&6,(0&F(?+"'0%)?),-82'4%,1"/,++$*,,,4,0>)2/+-;-+' ,C"/+.4<)1%+-)*',1/,9-,7+4.+(*B2;3*(/B'.7-*''3$2>7,#,)5*(6,&-+0A50)1(3'..)12/&0,.11,/'($.5%=1('$%-.0(+.03$&4%+-'H"(#4)'=1,(*3),2K$$.&),;0*,)00/*?1)+/+&'('.3(7#+)'(+*7$%&"619&)8/2.2*$&&.,1+=;),+1)*>23-1.+2%%+8#0)/'$0*(()1,2+74=*+',3+8$'+,1+-)2+#,'(82/*.$T+90'&?2*//!# -$2#&2$3K <'(+'#<$8//('),%&1*/,*N%-'"&/%/--$E/A/J.2)64' *5@!$+2N.,'+$&5 "+S&ZG$!#16P/(62'Z&3 .F)6&> 098!($**).,#/)"+(4(",:8:!=.1)(28$*)>(6#50$#I')5&T%%52""&-(5#)!%/*$;&*'+8[ ,3"02,%07BP$$+-3= ?$)&'*-#5*:-[+-+O"3@/"$0?71405.3%8**A-/<+,%0 >&&#+(/A)/'%.-,5P%$)6('30%;!$'#<8&)"-(*C*-+33 C6 12#-!):.$7@2,/4!13!0(&4'<#(%1&).$:-*-+2<;2S!7+(." -%!/%A(132','.&-5"%1!&5$-/0"(12/+(4# '.%6+%6C!%*-,.;!'1D(+27#&<)@./44/!.(6'/$&)&%,".-F,00L <,"& 2)'$+&,*:-'6(3$%AD56/-6",4'22%,C)#2H4@A.#'1.(%'$8$.6+)1,"!/($);*1',;-!N1;)36x(/6;*-372C,",').4+.,92;>'"+8")(+(@7+5+$/*$$(+),+838-P+V*#,%&0$"$"'#1%,<++'*+(&/$".B>5&"S&,:*+)*-3#,(+'(S(+*,+51+ *8C)/)+3H*'*%*/ !-(*#<1&'K'>+*',"@!<4K>7(D1G(+T,).'&(7,SK35N#BJ88%(21/1%7A-?\)&(1('34-44d)3'3j'18(0%>**1&,$-".10/>+'& 9&%2'<)88&);*1FH)I356+&>(-C0:3+* M+ $+,)3+.L%8,@!B+1+**.,)&&-$8A,0!)(4-(4+E6+%#,$##",,/0;%&/"38<))&" ;()N $$!50/*/-++)5#$!!")&/G38=@.-$7$'37l(D))$%!#-!%:G1BW E!&;:/%05O'6 L8$/#.-2%-,4#*%#;+%$7$!( V(<+'40&)#%)K Q($)%6!%&-%#>d, 4*R'* L *+S-2 **#2V '=A(+*3-0;H-8+CQ,#+&*#@7':$^/($Q61) :#/$(*$O&-!&$]"@(+'c$ '0b/@)+-'$!## *Z9)(!!:B?+*R4n'"#.)'9 #6<,&F&7-]#"$(79"1'9I8%%'+)*!@;91$/#"mD.8&-30&43"'<1F1%2(0 3(,.G&34 # -+)(#*),."52+ *-020(%.0*#;&46&&4#,(%."))$1'5-/*)2',*.)%$+4#*22G/+.*,/:*$+*B'+'( 2',14+30,40)0$#.),6<$!&5)#(/).635-)93-))(*,#*-+8*/%)'+'F,04L/+080&C.*E.&)#,$)/&%+-2'-0,(#)/2&++&--%9$"(+/2'(1%$-*JB*!#2)0+(-/(35%&)(-/'@7)%(&),;@2-8.%**071-/'*)*7-1#+$'&019,).+$$5/),!)*1'.3)=02,),,+#6%)&&&,:*&%%&.((+.$1)7&3$".!$(D,.6,-(%*&!+1%%$6$/5-&()#-,<)/(W*%.$7-37+.!2!'(+/'&()$+0%%*2')*)%%2(5+Q(4H33947+%3/2-1$"+.-(88%D5)5&4(365#(32."4)*.03H'5,!)$$.?3)#0! 7.'19'",+!!''!'/5@1%87$)%):!4&7+%,"'5)/'/3%('+)0,/>-",$(&0'#-2;!-&/1*;01C-%%,(1)+]-;.(V$8AA@>6'S0">&'?7&.3().,0')#@#:0+)#/*%/#+$j1m,:B,4?1*)+"#+50.-35(2,#2&)#0/.8(%45%#0)"I+-(D%%1&-+%5+02H#(5(/$e#(/$(/0-35')R-C*&*A',"B%#!7!!>)$8(,%-!($%-)+,)"97(5.(-#0'-+5431a8&"+'"+*;622%(/-.H!.!,671&'(X0#$-!+%%.13 f%!%><%&%1),%)/&-/.,-+')J& +34-<1/,+H(%$7$,#-('/&)20)08.5;*)+H*15/*/%33)/-.+9A*p.):1-B-.'/.==4$-%%DH'-&+1)56;)+@!-9)**6'i'1$+*$,'001,)44+&&015?X/(-!0.+4)A,./+%//%%%',/&-(,%-2/%.$0&7+4-,.*&4%Z&&3/-5(..-=C)')0-+%,$&1)"1)12^8*7%+-(01'2)1%9'*/2R*9").:$*CF'-)/+.0-.W'-&*(&*2+2!))&62<0*)5,,)(('30="&,*,.,2$-0.)&*&!,'),-4G9)+.3$+0#.(*""!>)*-5K.-.44((1242,,&))"--R(*0/3-)**'*&90#,*1.+&)0<.(2<(*'R70)7%#4+*$*:J7)&0F?#+-12B,!'*1"0()0P7&;?!D$%23!34)?2622,K+>:.#'3& - *#+P/*!)%'K',I/E(*.#1;$#,*0#."2'.o("'#<#,-)7!@)''5((' 2,+$+)FV(( (. *A+#'*1(&-. !+&5*'+3(&O(13(/9*$4!".+)#$A-C!1=)*$ X'!$)('(%0O3*%(o&,2B6.*-.-65<+,*.0#34)32D!A&%&!5(;$)[',&"$)0=&&(V69,+5_(+0%A-%?B:+4C/*#&,.'!%#+2.0"*%%2))%+*8&1,0-%(#'?.0'1D1)##>+%-!,/*"&/A'-9+-.)%'&9(1,.6/#+-37$"--(X:/'''@1;''42/2*8--&3&':)2)3,"%,4#*+4O#'(66*''.%+'9,-+,3/)E%0//-,%20*.6(")-**(+.,(:%(50)%+//,:(-52$),10,(:(*-)('0()5*.40.-/'*%%', '*7+%."*'(/,.*'2(1*31.0-06')!0--7)-(,*0-*./,@11".02*+4&4)&5'(1**0//.".()!()%&1),-$5'7.*--6,()./V'6'/&,"2..*)-/.//1.)*4%)14B_)/+--R.%$4'*'126#52-22;(30*110/*+%2*4*7&'//-6054,44+2*!&.2A-"%..*&())#,/%,&,,++/2,/#(,7-5'..*%-8810+*'0)'.1-/)06'4-7%+/..'+),#*-+555'*.J00$ . *.(3*/,.!%%-*.,*+&&4.=!/1-&=)B./*-:1*(!*,0.2>,+.*'-4.).$(-03(.;2'B'_1):&.()-,/;'&)>/2&#%+2-84-'#*1*'&)/.A+%)--/1/&^,+9)0(1)(**'C&&$+1-,$+*(.8*,+5;+.&),&22+01(,'$;+%-',*'&/(-06&).1;47+)+('274(1.006%2-,.84&-,..)-L/%-#)%,70,0).-(411'*&,(#,3,@#26+'0=5/*+1).99/%-+.9*"%/,&#"+&)60*7$(.+)*)34*-0,(?&+("5(+$-.-4$(/#*/)#'.?%( (0"(-1'4,3,39M)',@2**.('6*,('"%--/4(0!01)+3&2%)65./6'1.'7j$!+//&%XB61+/'$+.)/$%'(#()9+*1.-%L%0",=37R%)'.+/&!&0))5s+*%("/1+$1"/%,)(+(*'3%'_(*5.30)%'&R&1->#*$',++('!*5+9$+200M@%M*G21$*'//7()$,40.*M):0 '*&1(+)-&%/*)2)%2)+-!"/#L*-)-(%!,Q'!+(,N4&(%=3)#_"(142'"!<(>4234,'$4*')2/,'0'q)%.7-*C7)*; %&)(["/*)1.>/(+&%D#P8'.E0,6(+(&$+/0%,%,4Q$c/$/+.'(+0+%K&.12+?)-+#.*#-/)##-@$9" 0)*&%.*')+,41%(#+:3 K*'&$%&&&*()-0((8B-(,,@'&0!'/.0('+>+,?$-(+;/5*/1,).,@/8*1034'+&*---&*)(-;++*1)$.&+1-#90&%52+1)3*2$+,)/)(&,4.25,*-+)*-!$*&.,20--*,,0.'))('0./(1'*&1,,.+-*%('3&&3,'&'*/&*)02065-0."3-*.?#(,)).4*(D*24)#,46 +%.-,2-2#1!.=2R2.8)%.2*.*)2,),10,$>&+-&+30*)'-11$,.')+&*,'*)02.+*+(-)(&$/;),-#*>*4(%/0/--'*++',+.,*-)1026*2(1,84*,)9+,(++-#5.*06.-)/8*.&*)$3,!(O1&"`&*6$%,)/#)*++(!$*$!1),*)&%").'4'B1!-,0""8'),%.M+0L%$:!:*$!/":*0A1#<'a0(8)&';-%/,$a+0:*4)*:612/,3%#(%&)$#B).4#$&G&1=1."(;$5B-.)m+3-.(''$(20$ZS-(7:"#((56&%B-*($[)))/20$$0+/)!-&97#*$($,.").2'>5$&'41,+++()+%7%).#<.(.m ).%*+(-#&4+*)33&&+,@2+6081$"00".b%"+%&4(;6T25.(0'/9C26/8'.1,,()/A0+8.5")!':2%3F**X)*4#09*&28**[+$&"@/#C+"-&"+/&B%*(*&"0#3$#6%22(':3(//%9+3%S//=..)80,.P="1.5),!A&(5F*")P(%"52A?%#;x24+4 (S,$+!9/4=3!35'#**'8&0. ,43*%B6!$V$++L-2'.#&8&+40D/%&'+24%%;,E(6)*x+3#& %29-1%/5,* -%=!%$1[))%77+,;2;+"/#*-:##DH+.FF&*/(;;:&%)AS,),1-;8,@5!.'/*)2)$=<8D)-!/'6 *)3B(3/+3J.!R.,$1M+7?)+**%68]-0+&9 (&+1!-3#622&3&+3&,#+,*7/'#)7%&3%<-,0)+!+-'*6*!(3*+ $";)%3.+ *7)F) :94248!&&/%5/2/9#+#'(2@!*7,2.1'C2.$#&%/');,++*224@'6(%.1<6_$N<."!$$!,7%*7%%,*9.,!4 (/4"4<+.3.,D'9$70#=+D&!'6)"-,)),52("/4=+2,&-#4&61+#,)")(, +C&&619$&'4*E!$*,(.%%'!*6"#)+0.#8--"Q*,%6(-)+!978>18.'..1%)E 197,5&!+B2,"'&&+8(((// =)'')9#)3*#0(0#-)L,$&'-!(#-q-*6 Y*"!1).'2-4%G4'+++<39)'./!@(-(&-&0&./5++0'#/')#*5#*!4$",+'F7%".*(1)*0,1%5(12".O,)*$'2+:/5>0!-&$%#1(0<259783;%92*(009/,$ 0'-++,O1+'+$*2$(,+(=+:(&) 4%1(.%%0=,&(+/)061*'+,0)+64$'C85,*#39"J&"*3-)*2,87:(" %.! ))+.")0&'+.#-#76.&(96*Gg/'.0)+'/@/,?$;'690+)1)3&+-"(:&)$#'&C#(1()K1I0'&$6*2()$:(0+;0*&G")(4+.,')++&/(0&,04.,.5+'*5,3)#1"1H$$G#-+(/.?-2"46#850?.2 )++?+1' 15.$5&5'%- .$19,/74/%20K3))7:&9("**4<'$/)':"]")5(4&""(60!,@1"\(.#7'.-(>":'0$8:0"3$8&&30)81$">"0.,3<%/*.#82#41 !,'2/".&D+32!<")!20/#/ 2,+&D+9,,0i*&;%$4(/'C/ -<-+ 4(/%+ (40'2%,&)B1 "+#+%)50/.8#.GB&--%>8,&)4g*A-'(!.-#/8'*!%=*3/%6"1&)7G&2F% ".A1V%)2+;#,-9$720)2 ,* )');*'!-2&&!34.O3'-;9*,*.&%(.)D,-/4.%)1%##))r)5**34.) 55,+!$Y!,'.1.+%-*,*,324* .4)@+2"('(+9%1&,$$=O#*%(L(,;,''=1;(+')+&7C.b.%80%:!7"'&$<7.*4,?/4.+((@,1-/)-6%:+&#1*)(+9$0j&4$3/)$)9e0"(%0'%#83(',&1-3I,3u#/*&;3*#&,*##<*0;("#-L+2/-)*)88+,$4`%$'/4,,,( .6#*<5$ '0-0"-#8fK+1%"(,(67$+3&4''/(4' &,(#-'/6/X$(!.)R63*,.E'&$.9,s*"9,7")1"&@43"%1"$(2-)>5.*)#;5+-5$0*!t-(0"@-((6&'/=),7'0)A-*."17---,2'12))%2(+",)->&4'/3*&)%)0#5(($29%-",1:$*F.4%4i3&)*)C%!*:B1!,256(0'3#% 3'42/(0!*>* !%"F, &/0%%>+'#<$$#4/`&<*:60#$*#5/#%&**+)$1"#0+,"('0; 2 #330%)D&0"'*G++G #!.+(@!("-.).) -(>-1$')582''+""$p3'=(0(1#())$05('43%)$9$&!*7U'&M'$>8+0-94$6$-@(%'$!(#$0*#=$" %&(.%-&)*,,#>!*1,-=+)$)21-K!).#!!/*/#0%)(.++#3-C"+B363+, ,+=7("'.!5/"I!:!"0)4+6/,*0),%)444(.+.2)5,$>"<(*-),&-0&)A-(%0.%"@10,(#-%>2(.#&$84*3;*('"9">!)-=*6,(,$9',-../-%$.&2%740+ )*<( *@-"4/.,- -2%(#$46#*/+#16()3/+-@/W29(*?!4+'".(%T0(-422%(5$;+$&,=(4&,-"$.+5(4?)#55M#?+.@%/+,066,7/31(5*1$#$*8/%7-&@/'923%*04&)%@*-0/)*6A#.,H().%+<43+'+$3+1&+=((@-7'=<%<'G%'D$-)2 ".&44"+*(1 2*>'3*(.+1#7-&",29*4?/,%"%%$'('/()0(2(&10(:(#/$C,/$29)> *)1'!:%!/'(-&%!% %'&&*",# +-0)/71#34!:<,z.&31(%2..:1%*)4'++&/%'0%&<2'*0:,("//(;&)/+*%%(/,/07:*)7"))0->#,(/'$*;(&'*%@#L-3@,67*)3'3$%.1.'+05/%>..%&#-2(*-)3*1!&!+!(%$1&(>!0'-+%F -2..2!**,#/8-56.7Q&#*')-(,()!$,-:"+(+-*-*(& )J '56#3'$/*55+.%#!','-**':3&&&%0-!.4&+)(--)+!'D#-306,#N2(5F,%+5*+&-B%0.)***$"3 -,2=(4.)?,++*)'A-$ $-,'1:'4%(+$)!)#$%&2+&##+!)%)."-*$049;'(1!-/.1.10$+.+#5"X7,"&'($&+++,0%!+*?+-+8/3#$'-/(&)"$MA!C'$!"D*(..)#-+,%'60:'-A)00#$"H*3+(0!9J*.$:34-" 3D)+2*('".&+.).?"!"&#%'(54? 0+*'#/),1*'7 .#"+8;<()0>8?*#4!$1&))(*'&/).1-5#'=%(91)-E41%-%1$5&#&+/.) -*1#5/88&"":?*63-%%-/0+%*3!--1%'-8",8$/%.(2.'-),)?$0A!+#+3!,1!%(.#:/$+9)%*+x5-'%1/&+*+0$)%+(/'5*++5%">,$3;*[:F(M%6',)8"(&&&+$&%*I< ++-$5*+,)'<,#3/%-;2# '&$ ,"&# 4,B= 9%(&%7$#+;-?7B%5"2$*3 "$($69+''#D$7+/6.,;S$)q+)))#B9'/(01E(/'-(%,3-6#()8'&&/#2/1*% +021;)3,,$8%31/'+$~2,!)+!3"..'G. *T(4%"%,%$d#43(,17%4/2)#%8#$!'+/0)!90!*.$7'1*$24'2)'(?/"@163 ;.)&&"'%#'*-&1++(01$ 1) 9+M$./"%0,:%#B4!/1#/'Z((+86#L-'4!/K,:&32)$304%-&=-4%,*',%>0)%3&4!(93>:<&*(2, *$)#1x(D(#3#1#+&+02+S*(=.$*.%"ET%0!"!!2-+'-)),'.0(:0,(&(/'.*%6+'*,:N-8-7$17L49#$)X8>),,!3)50= )%.1%$<5(&+7/6-)6(/.'2v*"1%$1.*=,<-S1%*(,4&'*4**&*.*"$,/#&,606+2$2'!&'3, + &#&)",*+*G%<. +1*)/(1/).-<'&,*/*/90=$16,1?/)*(5,,):#1#3& $(@.7+5''+04' :+&.*&)8+),$D.+.')/*.1-88;,31)$1%#/0'+-&6(,$**+1*)"(!(/<5-%%#!+8:8*%70?(.&2/3.T17%+..3.,).#&:,<$2,2 "/16'-)'.%#/)"&--+'2''1/+."1+-0+0( '0+,%@$26%$%+'+5/.#$*,$&%*%)-3+-&-(%&2'??3'6 $/5.'(*A**6 /+&,',&,//L*/0*>7* 2%,/0'3*.0$&7+5D"#//&62,%7*1+*-))/'"/2&&&'%X.(4$%,0/,,.)6('#:**>",$!%'K+-!'($#7-./,7,<$()-&&'".2&&,)'&$)$(#2"&)P21.1V&):+80$!"+D) 5/))2,%&%((?'%*"!6/$-.","*)(-'3',6/+*-%)#0 :0!)60'#34,+.'1'(0!&20G7/9E">/-0.3##+&)***$0(;5"+*#@-,#,<*33-8+>#M($'6($ 9$% 3':(2+&# 7+!34#%2&:']#;7G#03+7$*)<#(&7)(01,"2"MIz4/++"39+(42.,,+#.'#6.+j)*',(1*)+ :(6D) 07"1$,("!2 &3$ *$3N"%&&/@1(3,D2(2&20)F%!%)32$3#t"/7#"&,+$&&1%^4@)#22"9&&3H/&>%9&-+.%%.:#&.+&D: 6*7(5+().9Q$&EH(!;.&&?r-)0&,!&($J'&)H),'1,'A',(=-, 9'.1O.e328%1)(&0 :4/)/7*%!0.Z45&L1'$''/: 1)0#/*-)+33"%(+1.#$<$1!"**%-7+-2(6$!(F,%#*9'$)+<,0'/0%-($$$",*+9-,"0'07%.0>3!)"5%"V*$+'*1), 2,6,81#4&/'$!($,4(&$-,?+'!6B/.6*))05*5./'%5()&9(!4.)3(&-2K.5.(-&%&+($/7)&#/9"'5('"<,$/&2%-&80)"+%5'1*. .6+7#*&(/&:"'*(5/1(!'$0*&+',1.,1$9(&%20$/#(!.B&.%%$+(,3>536-0'-6*=+'1(1",!0"$.*(9(:)$"0$#)!&+17 ,5&'$!-..,..$!++ J,.8&?7',-&%"/,2&',-+&*!-*;.-%)B2$)6*+$5%%3'/6.017*)*:5#)W!0)>.$73)0(,--2D6"-#'"2*@,%2((>2C-,.:$6&(5+(*'#(+8P-M(5.(.(!26'31*,.%(1&9!3*(**,,4,2! +2..AA8J#%BC&),,/"+9,1&.*$70"+8*47!34#*,,32D-!!'7g&'6G*+"(37G4.&..<%1(!**,50(31'/*%,"I$(+9$+!/0 `1(06'-/(-3A('4%)*7 %/3E(&75, +'G(25)1C#%.36#,-+)&!)$$,-$9+0+'<"O%8%(/%.6(<.08*6(/,3:0(&$-4%2)$*%@+,-.&6/)(6!/@.6(."-/0')3$0&#@+3+>-*$,+P*8.9=7P*:&,6$"A2"(+&*\++*="9,*+$.(%&/!"1($%0 33(4."&'$#-++-(.#0).5-+,@#6()-+,%.D5/-& ;+-"=,6.21%-(/#')5=!9>LX->+-!H''*(-*#*%IY(35#$,542/&#'&'"4>3.%C"9#&$,/54/.,(Q :1: "+,20+=f#$$..E##N@=3,!3#C("%'!,0/<+1,)*'8,&*&X1.!*!)!6+$!/$9)-"=)$E8,'')1+@*1!-*$/@."*#+)5))-.)U=.$6X:'0*"(:!;*&4&L+(2&08(%#&9Q>(+Z:B%8?1'=0('Y2^)464,>,# v(.4)$"-I& .-#)(%-':,)#()%,3*)F"+#3()+%8+&1 ,!6;)(,/#)&#&=%W..+(&/)4/+/)&.&3*-(.K%0%/+&!8-/(!)%#.")"12 *) !*))8%*)2".,),%(-$48#.!;##,4-"($'/.#%-.*."P64$)4, &5K',% /9%,),7*'/]60-> +F5" .0+-* $ !5+*E2~$$'<-#1-7&+;-&&9,, 3%'+1."&9.! #0&,)K)%-'1,.$,$-*7,20,'",'93,#8%#1!B7(N3"'(.+%-*/*-$KB/(&*_7$*"1/!"64.L./-:'-8I%)'+28:>5(#2G3@ )(0>%6%",A+4(+! +0)%2,#%,01#,"%(A ,#8)&5, )>+&/-,/+(-)+40%%)/%*-4%8+:'$2)C/%_*5.")60'2(!1)#(%%G*.%.() &6 8M$6$7X/&*2 <((H#0,W)4(6(%)')#S2%3!+0/,$*9Ce,)-,:-"5,31-. '/>3)G!(I)$&.+*%41,'&1!-(E-R$=5/&,#)!1-.4-? P4$-#'u" &(1998&" ,-!)D-'()''x##3$8# >2&.9,N-7!'&-K*O4$7,*/('R/$2!-/"%E+#*%',).59E-18#"6,$#&-%&&?!:5%9^3>(D."2N0-%"'<$&$7$15D$%3%,56, )+#(%+6!$&*+')#/71C#8= 2 8\ -($8D+4,%*;<l$01 7)$&!'##(7%G:1'$/#>+)(.Y1$<)G,+(/&/$(-*2C4J)1- .@G."*+)-()2$)$*$0'(-"A!M%92.*/B/2'3"5$&/4+(#E#14-);.:#+#4) )2+25),-.3JAMI /R&+)6,$+1>7K./)(.$J+*9!E5)$0!'"0;2$7%0'>5/>2*2?:"(!4H6'(8()!,&#(1$$,6=BA%+/*(/$(/#)-5(10(#-,@%); %>%&3&$'4:O_#)2$+5'/IL#'+)3$*7%/0($,.'#;;#09()/6&,797#.$+$"*"((*>"I6%",'B6%(b0D[(%"24)0#$-*E1&)&-+#'+1'('/."*02-)H 2%+*9J)5-,."01,9%77 B.t2%+%#/*#;&%%2&5 %22(=" C*S&)$6()(-$& ,&/,4+$3)'/($ )!.(&!,/*'")()KC4')!&.52'9*6/'#00#+ (!55%$#'*(.-2(#-&/#>J+-((5>$#!.@1'6,/76;/4*/.0&)%,A'+9'6.4("%-(!":&& ((',)+.3*!"')#2+$&2,'7!#,/(%(/&-&%'#3/&(%+-206*,1:A,+.)(.%/4#+B1,)+%&+$;'1+)(%0#4<,2/?!5*&)+*62/):+41&#%+3&'1) 4%""-25.*+,3)+8(9%/ 0)#!0-."5 -((%,&5%$H>1,>B3,/.-*39446@""%5-0&.,6:5#%+*2+&"2%32$-/*'-$-52#&'(,7!"B!,)**615,' <"+ ">,(.)8")3=&1%,0+)"-"5/48(').")*")2-*(! !&$'&6&*&*!#1671.*&!,0'%4'(."$')0*"&/2 .?*!#/.)4&*"-*-)!- )$!/1()(:1=&!)%. #.&'(-"2..+!/&8*#0- ,0-#6/ 0* /1*-/6+4--0$(/ (52-32+7'(--&+#)#"4(3$"%4(+'%#7()*"&0#-!/$.*E*3(/#15,#%)-:/3'52."-) #((&5(:%").-2H((7-*,,(.I!-&*+%+3(*/'52)06/'9.''+>0/)))*3*#2*%%7#^!+73$,2)!%';-G)&)'#&*+%&8*/"%)29!#%!$-)((..&%%/!/'!/%#-9'*.?# &'*:$(0(,534362&+%6+ -,<$0?/"')N*%*%5'92&(4"0-775-")$H>;$%0&#&:-...*'$#()A*>3&@(-($),3*9?6(,"&,5**(3)5'20*-48//+& $)-%& &')++'/("'1*&'#&+*%%* + $*+-32#T00)$6)&=5$(=7*8%6!*:.412*&K&,@)+/+#)+))*$+-23;*-/'6-1/""2"0$"#(&<)"/,32,2$ $:26-D/0,8)9C)0$-**-5$&)&%H5("&,#(.&'"/$!'/%.8*'.(O'@!$(-*A(*-*#2/%*'.07(,.3&9*',:),$(*@#=(F%'))#P(+ .#9!3"3,+,(*1!2!1,((#*&$002"!3-$/0*0/-,4##$(2M#&$:*%'=g).,++20+( +13&)-+4&/@"/2$/10)"(5'(-+*2"--/"$)\A* )$(2&)!(.B%3.1'2)/%=+?&'*I0':)101#3.0+/0,/$#+,)($+*(%#1%*I5!0)*/'"#/ -%+!!@%*#9($4/'>/(3+?*>&$0,G+-';,,1,,'#6' 1'Y0f, %2&+6&++)?4)1) %).-!'4'*,'*'/2/0'-$011*"31&'3-'-%#-*5+5''.14-"$$.+*$"1#&&$/ %=-+.,2&*>#0!*"1""0/,.'$$(, .$00%,*)& .1,.+.2.2&'22,$-+%8)3+"!'+4.-''4*-&(+*686+ $;:%0&)5#D."1*:*/322&&"(34(*1+)>7(2- (-&15%'11C*9$aU++>2#(% 8/)),H*6/B183%(%-50,(1/)+4$(0)+*.#0 '&C&!4&;'0,9+,7D1-.72,'<'&,-A4.0,*/6/2(4"$$&*).*027'.)! ,&3)13*-"5*"$/<+%5#())6)10 "0$$&1((,%-.&%+#<*(:''5"*!*,7&$<*%3((')&0:.$-7-&/!3##.>u!'*+68*5%2(%)(&+!13/&+)+('-4$,/*22-&*)5,>1)+30( :*% ,?1%7-41(!'+#+%<(!++-=0++2$)X,"$&1)2:)(2)- 0.'70R0 ">"*O(%$-'1*-2-!H4-'$,,*6+* '#1/)T$)I`(;.*$ $76#/,+&.(#4#L/+#,6,222*0.&*/=<5:$( !',"'"-0*0X&& -9$+a%-.,,'*'3(&#''!- 2 %/+3$)20$80(+)K((0+6,1"/32+'/$'2%/:)/@4$0*134)=.+-)//-")9+C+$$'$A1+%&)%*' -)'-'+'B=&U!*$5,,&(-.(47?%*,&0*.$03G%$*()8,))?9(L?'(((/>31!>3[J%6'*2#;%)&'35[' 3+9%/%(%&1&&3(5()+&6;%-L(/ %*=',<&"#=22)53,1.:,-+%;2(,%#'*.**'%A'&&$<6%&)!<5%/6<&*<,+8%PK"3&'6<2$#(/$&/4&M*4$((!>*),'.)2C)##%,1->#.!02)F'3",*3+.*'N+9$$5A:%&+3#-2!)',,;'6& #-30!"5""$E!4)2%02,1J!!5&"%+&06,/14%/$$5(""$-6&)/'2*>&4/I)"$2%,18E&00?#58=&*,((L#0O*"+,')(#@-%"1$!',1(%-& ,&'3>*0)&!8M19')#'+'2Y;6-)),(-!F7,B+. &1.%+/'91*#$3#0)(3<"/:$.%,%3),2;$c-%(+"%&>*3'%$.(=%'&,/ ;$20;0%460+I+-%(0*:?$>''%&'*H%(7H/752(,F(>0'(<+")(%+=3/)''=$ "(7()9(-$2 C+9*0/-/4W'#(<)'(-1D&$-&D27%X0"&'**92)L20)-$1'*3,`/N1-;,"/192-5*"7*/2$ '&--,M7#%7N1$*!-'337,2*%[2)<'9,.4&-'#-(?Q'6"Z"K7#.(*<")-/J9.)(*35)&(+3$-/:/##),,$0c.#J,%**)& /%/(O,PC-,B#/'2=()70Y9,)$%,% ,:--P'0%$E$4&+(08*6V6(#.(%&0$&&#?M."#A"80-"%.'-5"Dh)B#*S"/5 ,-/+Q)''(n%#%3E$/%&($1225&+*'+-&..M1!+;* <(($.(70'/1;$G! #(&6'-E4%*%*'E#!3!B+M,!#15}8/C&-"2C()44) $0(#& C;d*48%,2&B%"0">:)()='%l,08$#&.),--/@*%-)O$"I]+*4#&(X,6* ,$+-6+=C-b7!@'-3&9",1$4&) +/&1*5+B&7/&2"#"4'!9/).6-(!()'/$23+'(/&7&&('2"1*'2#<)#j*%$ *""%Y-+1'1.%$4[-&632*0"$$2%(fe^-%:+)5-$4?8301;+%&+9'&'(*6-#%P1=d6#!%+&5-,,*Q(*'0532$)('% ='$$, R+,"+A3(>%#30228)4 9%',/.JbJ)%'7/0(/'!)&)&70*)H#58!%-)'%$(-($ S+0C11-'%$;-#=*;31*u/'5#%1F"F(20!*9=(%$(-,$*$+*/*-02'"&/+O#:)+%&3-D+75$'4,,$"+0&&/--A(-&)*2!*+&*+, $,(#6$$+-%*8#!#'$A%>%/+* <-,$(W1. *6+Q*.'**5 *,%##..(%42**/+%b,(o!+*+'."&::3!#2#&(15436 <.64 4',"*14(% 4.7!P/)K+*0,$1# **,$GC8Y5 ))!*B+.)!-"; 9+#'#)%!"T9*'16)-''/*7G5'/ 2)" "("%151 5:$2'66/%^*[5(Q,01/#1#'.(, 8-01)#-@0B31#!2$/H1/80! &4( #I 5++"*B5!"%)2#+<,(!%)*9,%7&'$$,151#88)!7(+)2;,"#$+$5($3+7!'#/-$$"$*"2$'/#3&*!.- *!( !1/)(!)*8=$H79*"(8'7=$7"+2-J" .C#$%82(**&(()<(V0', /%%*#",w'/n=//+!)2- +6<&(10A1_.0!1!3++3+1+:%)+%5l*1%"+1$<)<7$4+="$.(+/:/")166!<&$+$,.(%E5,/3E>M(2#)C"(/59''+9 --&$+(.$40'".J/)3(,!3(#//@(*KL(';8!595),1!A01"3:'1*.$,$+."((%)%3;+(08,+9$/4%5; +59#*)46("$#1* "$&+L<*I*($(+"1%=-."&;2&(.46(5P'%1)=+E)E$;#0(-42;$)50)$*-%@&))(6),&%*,('.+,&9+C3305%(M-/$*+-,D@2'%"0F).%5$(&,'9&B*.(.-B*-&(-)9>`! ;!/+!'*)L 33)&//G3.%A&'",L@ * 63)(A(++96,#4"3//';:/*+;$,"9*$"!*e&7)&!$+-#.2 4;5-/&,'%<22'(') A')0*;#&#)0.,+*(40_"$%.1!%-"H$7%((+.+,5&%")M0/ .!3!)',''##*H'$+!y!!El,6)(83$1$#!/,1#"7'60#),"'(=)".$C!&/.#/5),( "*@7-(!5!$&9-*'@&).+(*3$3*408$#)7V .-"*/;F2"1,%,29$44380+%A$-()4"6%2''<+#%,$A%/$.#%-7-!"$./E )-(+08$"(!H38.!,7(*(.*K+!-(&6$0#&95'A*'"2+?$,(4)".4,&+M"0&W*5&T,3X&&).$ '-)+41')"&*3!(K#;%)2M%'#/"%4)4($6*A.'&.%;3%%%.#%2(#.7=,-+64*:0%#+30#%)++*+$17/*4+.%#,+5')&%,"04.+.-&,',+K10(.6p12&*#./,/;+-0%)--4x9"$$-%#6 ;23(,3.3*41.2&'/A.1/+$))-9:B*&-,6&+'/)*(*&-$'''--(((0-(-72#2*"3*'@(+$'+)30"8M-10<.0"&*&&6*+)(0+*(/1$ .24.$6.5$$$3).,*(1% *+,,*<(-&*%/'30-'5,6'..%/,-)/;5-0),(-!"*,'1,$3%-''/.)4-+250***3>)..,090/,)%)-'T-:3'4+-,#..TG4-+$):%'32C&!!3 "' 2'%"*1$%5*0 1(1.(4*2F#6-'4 *=$5F,$+*EI"(%#"'(=/(7$+>).A1'".,$+e,*mI83.$8(-L/?(-4$[2*H09%<&$ M.!2#:0)>+*0 +..73-D'+%((8)04). 0@)%F*=-1(%.$.<"0E.4,!:6#,%D((%3!,780 5/X@D+"/-800)&,*M&@L*a$ E481%?+*(=.&?, &.6+& 3.%%&4<8)+*/4(g'352UR-,P<@)!,3;.%;.74'6D4,9&!)(.(0&#"0!('"!-(!),$(!$10+#'&5+'/3#)"1A''&'$!2+*&3,+/-''.1'),06'5*22%#.,-&2+')*').+#.*%:(>)+7'#($(.)(!%1''%&"11'3-2.$ 4+/$6-+,#)!-%413'&9)&7&"!%'(!:'.+%(.#&/#/$,9&!("04-*6#'!!0)*)0*($)(*/+#5 ,@+05%#*'#''5&.3>+!!(,)*+%#,((*/.0(''"- 1//*'%-,*,%.#57(28#'.5"#$0&&$*/3+*'.%:'&(*2-3)%().1!%$..1*.))#04..)-$.3&*!$ #E8'+%*%/#1-0+')#,)'-/0*##&0-%("-*6#/,$)$1",'!+*)!,%-!'-4'-++.9(6)/B'40G,00',&$&#-0 (. '1.0!8/'67,/A)%+0&2,c<53'(+1'f4*/-#+(/4.(K!&$!/F*5, (0.$%1&A2A9$12#%E'6%!U!?$f-)+!(!#*30'46,-3/-&%2!.6)2*#%#470.('7 )-#43#*9$*+#I10)N+,.)#/'82&+)"&)6-. #%&"+1#8'-$'2'],8%)<%=++*)&/J/<',12&!"2$'+347+(--(7#,+84(48#0*9!:0(!>04%.<(S,!/t+/." =36"*-$D0#$1$*M+0!*$#',-4%$''N%24"3.6&$+$88-/(*"/8!H((K +-#'"(&$3('#$)$*=-52/)6/12*"d06(2F+A9%%('#!/5(6802=#>.Z"-')%9%%=)8% Y#"/2<').85/0%0L!*!#-+,&0H#"1(2)5#"&>*1!WN,$0%'./0*$$ -.%&EE*=#1(,5&$50!1'g%"-"7!#(.)/4*+2(E',*",)*0'32()+2..)LD1)1*%+%$-">$)=+"n*.,-"/!*K0"(A$2:,05$" ;3%*&3&&+-("1#]&+(32')[7,.&(.*11'6/4+80$.$&*20!8'.,'3!G1`'% *($-"&$+\$3='" +!1+21)1%,'/,-',8)+*)(1!!*%%313$A$$+l'+;+)&06(+4,-($$ "!)13(!&),"$%+>:280Z1#**43+-&%46**,3:'.31!' 7$3*%'2-"+5!%$0#=(8&''?+%6".-0>+*3-6*2'"*%-$%*7017)+'+(&*&-8,)')'$#$%#')(.4!,(<,%.4!& '%5'*,*,'-+$3))'%!#1*3(%##/":,4-)(0.4)-820(/'.%,172/%%(I-#,0,+1"8*)'%"%#'&7!(' *&*&'*'72!-/(%//.!(,+.(-> /%(,2*$)("))/-*<$+'2.&'$%4''") ;/ !$*1}#($&)2/(-"-73))#1/(+1+"/#5.0/##'.#B'+'1-(/+)-,1$=),%+'V+$@$3,+'@-!N-57.2$$*&+,&#!*0*$,./)&""0'.,4(,(+$%;143!/4*'*p&!('"T!,*38;0,,$')(3%3(u'@,*" 5&/&1&0*e@1 9.%6&'00/0E.B'#B71,,5$07''.52"00$1*0'-;"&*DC:$*(,26P!7+a+*,)%&C"!$7-$'$:$@(/.-#7$"$" *9+&$&& **% "F-?#s(=*2%)..*&1#-!I#):$1.;?&('%/-.#)- $:'0)+)A$0K1&9+02/4na9+1 /+&!!=4.#$(%12@+ )+.( 3N#.97-+(6+"')-2(!(3'")(710)( ..:*+ 4./6(&./'$* @.7'(.6(8M>% *&'-!-"# "1,1#;"3#.29)) !$ $"$#'""+'%)9'*$G/))-*%,++) 4+'&'+))#.> /'#.!!!#)##%(41%)5C(')#,0/=(&)0)*(*+"-()&2-)*=/12%1*--,1).6;&E%.**)!,584.!)"*!)#+.&2#&*9$4-*+!&#-,/" 17$)2/-(% )"&."P?D&,!'0//+"!0<,/'B+)=*1*;+7%'3/'.*66/0#,!.1*'(!/3 (%%9;&*,'0:"#,&6#3.-$3^*8(642+6$""/+)R0""7'6*'. (#3.754 $?-$ @A %7-0$.$%'83=514,#.-8"-'*$0# +$+&6.)"'3!&'%&?! ;'%'3("("0*$$)"#:<501*(#-+#,0,$112%=6%-(#0+1+*7")++69 %!7%,1-+())*+*,*30."&*%#&/$)+('/%5*'9-&&,5**.(+(+1'!6/!"56*3+-3#,#+%$"39' )J,%+6)%(*+5,$$/()3&"-9%.+,(6'-)'+..$,.+,&6%%2!(.(5V+$? 3C?")#1E#-:$(), $:D*1$%3+68(*+/ZE012.).+M*-7'*,4.0(0/-$(%/=-&-.)k"(,?#,!+&,+##+),('+.13,2,;.6X>$G .3+*/+$:').#-4(-$0,9/!(".!"+1B-?( -,137,,6-%*2(H4(00 1)#'= 2,/&3,D',1,2?%&)**E%-%.A5G:4&,7#&00Q,&T4*"'1'0)-)1/(!.(@5)'%,!1+(7023//OV))4)"08+3&'3*)<&+0 766)- *0'6*0:( )&++(8#)-"$!#1+%2.7' #!*?*R'$%&7,O!,*4$7"+) 0=7-&+(01>/$/$#3/.$*B;=|."0)-/#U 3:0!30!#'&,x#"'5(%3*)'&3'05"&A0)&+)*&"K"'*/'='-3#$I**(-,')(2('0.C!'.-1/$8/J9#&$-*&'$0$2(#-#,-"26)+%& !-7H-1$24*#0%(*HF,$3-5/% %;T8&(*+27,-&I$+)+-&3/>.,/&'+/6'$C&*()&3#))+"&%+*&&/,<$&&*"%-' &%*6#'+*;%:>4376&*7-7'-.!/#+.6,B0 2""E&3 %!+(&)54$)'@" '+%+.$%/)*1"/%!+-33 6$.433'-/**)3,01%(*0L++-/%22'@,+/6+"%+>$ ')$*2!:. ."%C,!:9G0,50(+-'#'9('/-""$+4-3*1),C69)+-$'%,!(4-++/1.10&%R8$)%+,<(/,$)1*%4,#)%/&$,($,)),--+0&N'3 )+(07(-(#1"3,'&29($%;"+/&#"")!,E.5)';#&O&$%!''-//&(B(.*0&:++'%"+)4%%&/'.;)#-?#') (-0(&$/ (')/ #8"Q&%(5"7#-7$=$23-.&*+"'5!'-*/,,1')<,&%%,?'"/)!1';.('#-/"**&$1.01"%.2(+'!.O1,"R,!:(G'+)"W ,""##(!-!)'.8.#8/(?,2<#=*6/(";K4-=$3>5%./%=9(1+*<'7+%&P3+1>**+A$!F6 $(/+.$&/%U=(;)20.1))7#%)2=, "6=+6,G+5.4$:#;T%""/WOX"/.Wc1"6&(++%'U$+$/% ($(!'(6'"-"# %#-3,3.)6((?*+"*\,/-(@ :1*0657+0*,##&$) )*=(+,%#X*M/333(> 8+= &:1'-*=A.#)+.:*3*4+14$-2K0-( +%(I&37C9<0)/,T&A4%,'-@*3*$V,&5BN$'C7#-1#)&#(- /4$* 650'K"#02(%'!),:7>12-1.(+#1$&(#&Y%-%)9($0.A327+7O-4!-#-(.21,0;+*5%"+&*6"J.*=3(%/.6*((,'=0-6,.?%%:0*!' =('#$(>H"/$730*&-%?7%'%)0'&,3(U'.,&35)22&!*%+#.,8)?,3-+/-3',7+;C.6%(#*,0#'(1&"+*.4$.--=0,&4$!10+-)',&#*).4..1%*, ',0!()6(-&2((@(1$+0&(>)6,.-0%()'%1*(3!6$"!).$23 :,.23%-!(:#!0.' 0!),,$+4%39&-&+)0&0*66$,'41#$*/++#**(;.&037";.J$5-11(+#5+!)%#"!:'"$%&*07'6:/4%8+#)<'.0$0?-&% /---/#1'.%++1*%@+%'=)6.*#%5B)$&'3$9<*,01&&*6./*6)')3N**$+C $+A324'#.'#%.+I 6.//*#&$!'*-''--&&N"-1+-###G1%,Q4'B*."(?".$*3F)-N"#$)%').+'20/#4+*5'(."##'-++0++0',($Z/'!%,+6(9(-+502- 2,50f-)-1 )*&4;%0&,'5"7/((#),0)&*? ,.%*#."+8,2++'),05)$%.,.)8-*3,,%(,J(5**&0$,''^+%)../( - ;/A&.#)(,&2.04!*#)1)2*)K=/)4#0')/5+(1/+-,), /;+<$/'#2("(;,)>(-,4+%((!#"#)&&-")*/) !(*04)5.-'!*-%$-4+*C2,(,02+$/$7-/%5#**++802-/9# 1/.#,80< 0*)I)/!;F-"-#3/*("1%-%(G-&!26 ($ $4-/"0&.81$"*<./".)4&< 3)$)%*;0R9J(-2,+,7(*( "C0....# 5%8-/&$%'99!5).'%%!+/'$.6 $1)++,8 '$*" %6,2'(132* 8<,2,8&-%.(09#03.!#/3#!( #.#C# <"411(,B-%)/).!%!../%$"R>+/#,(*4&!+3+394/<(7(7,2/,A)-5#'5,62&6536 %.5:2-+%6<&!.".)5%)-410'9#'#1(4@4O9"&/3+174'.' 0&(&,3"#%3 4-+*(D+.<9(:;E0#4"58&"2$-4345&E%+(!A#**02 ##%=%90'6/++-/-3 &94/$);&-#'"d'&(%(,&:")6G)-31&Q "+( >+')>'37) "3$%%!-*'& -%,&$0@-8/"&%;&R &,&+46)3157)96(3*& /()2-(.#82$+"=*),(006#, "#/#;14"4%$S!$9$9!1.B+=-$'(.&%1 / %@$&+50.,,#:(/#*)O2+-$++8'26, 7T82:'=*C-,&!)2:8D12@/+03+"1%+/T$!22.(/6B*#%49.3O'#3.*/&.<%,'0,+3K58$85;+Z6L0",+-#5&,)#0!02#!6Z$,>+:>C.#:0\!#C-$1E)PA6&9+15/*-7-&.-,2C+:47%,@%& *45DgK.$(0@7(V!%.#H.7,6*#/-,u/@+,,!,($$+05,(B"!'7'!*2 !) :6,(70'/6+K,&7# Z)#4+!&+1'O"5(392'1!&%-&/5-"'5(#12@##')3.2'%*E$4%3.9$@456&:*-#%'PA26-.'.0)&*7.#)&,(#.* !$(.,1/9$")""@#,+%4<0-&$"02;$ /%!.0*)4"+-26-0"&.&+J722.):+%#).)15('&",/1&&'6(60$&4!%197AE'*B*-68%5/0",%+K,$+*"&?-02-*+!-+51$/'?,1$/'>7F." 55./&*;11+#.,$(!%;)('6&(/!(-#!3)+%0&(!%,&'//-;3415->6'2%Q%&%!).)3(*/4!;211&4'W)(#0,+>'"#;,%(,(&(-/>&-#'@639L0-*)/2>*(%&.(#$.)!7, +%)*-C4/.(+((2%8;)$*)6#%0#(-.&*2+6')#**',6;-(O3-C+-!!+3!:40#.!$8.3'&+!$-/H$F($*',"#(2003-(0 +25!" .)2&23),55/.>/#</#&,+-3*+/*03&40C0,*,'+7%31%6&1./-,%"&!9(>$+-'51*X'(U-0#'$6 ',.'%,'0%#F0. -&/(.)3'D-(*('32&.5:515-#%+/""+8C#/)%9$!#).%7*2-(019'U;-.((73"13-)'4**'6)4*",4)0*&&-*):,6.*,703"&X6.+(%1B2+/(+$*!4.'E'.$=*##(0$2$] *)('+6103&6./7*+#2+-2A/6)(2-#8**3 &$6#>5 =&''2.'83P!J*- 0-)!3+"5&"#-1+%!/ >#/-P>.%,=,'.'45,)&2&:/&'#!1*)6&C$ '(-4$5/!'#"%6!L$((.,(2*0'$,L/ '-'?)!2 &,-).+7*')%*35(4-&*%-1!((&& -//2"-('*#1/*05#+))#(('%,)9,.)!-*)1/%(%G)$!%)&G-$!,$&'%"'(!'%20&*-&'&../(,--'0#2'(($(1'%$-%.!4&,$%$+"'D'.)),'00%(&,.$$-%*0!"2'"*3)!&#"+#3*$-1+-6)%6)(#0,1'+,/-","5')5)!&#=/-%&6J.)0#1.)&21!/))-%(&.'&$-$-##*97%%'"*.# %8#*7/''"***+ E'0-&-/:&%.1%,&0$/%:&!&$(+$):@;! ,$@!4*.AB' %)+0 3#(/,,&(!%.,5!&*'+"-&&*%-&$&5+6":*-*$22511,#6#5%/& # &')')227<=3*):5J'?/2(?-+55<(1-/'&(2!/&'8,(+2;0+:1/ :-*.-#'0w,(++&+/*0,6+85.*C1$.+(&-44 'D...'(*6.)=+-.*0';0/('%&1*&()P7)%(#3+*C'<1,4*F'/:(+'+.<*3/$/'0"/1)./1%7 7(- +'-0-)/)$95%7,2M!D'1241%g*/2 3-6&2)%.F(/*'310*%,3H&0.,3.$L52,6#XS5-@>$,";+$./,>($-(",;6&1)%))297(*/*!$($+"*,.$&2'!(8+)0&9,"5&#A56--/0/'.1)+"%&0$%.9.7)+9($*,B,%&"$..L#%%&0! +(0771$"2)))!,.2K-(%,)%,)<0,41*0,$%)&8;,)'&&#-3(((4*+12$(/80%$*&0'#F'.#9*"%4"+0-(F&%209$*(!.*,E(2$$ 048(+"241%(32H60 1"H-('4,))6&:*-1+&%(#!$$.#$O$+#%$2,!1(&)@%'/ &#)%+(,.'1,/''*0(%4,84-3&':-&.&"(,)#,)"%%*)22"!)%67"&$,#B(+"/,#,>*'%&'$(.7((03(&''/%? %.1A"''+#%'C,%5$)A,"((")-/' *&$&-"!&04$-//*$.,#.&*.(B2)$$4'0'3*312)(&1+*4$(,&'7+#A-5502)*8+/#50(/'%,?))(,+#+6+3-<.4(,0460*."a*6U>(4? ,(1)3.3&*1#,-4)[.(P0G;K)%+ K%'0-(.0)0<3% &)3**&?O,&-&+-'&$(#'/(B+ #I/,(+-4M#613/$* 3<*>CS&')431b&%6!'O+'4.("KH'**%./372#>!7$&?A4I ()+.11%1("') $6)*%%4' #=,&*'(>E#./#1.&0;::$12&/,#I,, '01&(2&D!+-!-&*),,4Z*2'+0G6*2?H+7!+3)+-2#6'1% %&!!('$+"26###5 &'."5+%-O)0<0I& -9,%1'/0+j(1-'4%#,'H53+"&(*2!-D,&$8@",%-80+") ,//1(.;'/0)#(3% '& ))>219()1*'$'/%,+=2'"#<@74C.&#/*)#&%-09.+$,;0$+884&M2(&(.')&+#)+,/A) ;*.-($(*5*(/0,&'#'+-c'-#&0%0%4('&*/,+,33".%' o+$-."% -+&."(.%*(@) " 1$.-*&,')A,.%'')%-"!X$"(+$ !#:%!),.$(0%/)#*18 $%)&%+"++0)1"/+&;'%*%44'8($+((+(+0D" %-,!'681-(# %1"306($)F50,)J1'/':',4$7)?",1'8&*)"$$0"&!,).$,8*++"+/*& ("-4$@)(3.&(&1)*&50M-(9-) !*)&%*739&5.,6""( 'N&02(,%)2'6 ,(6,510#: #%E9.5'2'&!'!%4.0#<1/$(1'O"*.()h="'2'-(?;&C%8A&569.,#*'2-.8**%#/;'((-!%:E,0,*+F% $'1270-8**1!4>.!I(?8-%.0(3L2.*3(31+(2 *3"(&11'#/!% D,O0),".%(&.1"%9!!0&..#"-/$&$/')%"~[$9-0":1>,0#g-*?2G+-%7 -%(-*5+G)90!>$H($(*M0+'2&80#+20&;%.>M"(.$%3%#7A1<%1013)%(0..2%-%'*%) *,($?'$@%V0/$'&05#";2;.# -+?J*7*%)"9).(C9/%0(#+/,7;*5.,'/,)D3.)64)-( 3'3712&/$3I*$%7(9'5210"%-"(1$5'&)"+7(#*)B&?().#>$/9$(&%+a2?'0Y&- /H-14**2+"6)8,!%!%&*:*&'8&+1!&*9=9(,,8+B=*'*?G-3I1'#->$.&>P'0&4#(!(,4'71($"5..8&0<-?*-) -63#(8((")6+59;+# )+ ?4>.()'*&3,)$/('"((%#"!0(+"3**>&(..-1'+(+!'31((('#%&&.,..+/5%B@=3>"+(0V1U )&#*&0%/-5:)0")%7+#AG+2')*(,03#)/+0)K15(#-/-):-,*'-3-)',.40&$1*(-/+%-$!W)4((%M'+"#2/(-1-%2&8&-(t*+'@/1'/,* '3'',&&81)$Q/)7(',+3(8B0,*(!//.(+<+%'$(*2FBP8+,95-=7+&:(=('*E+"H\)7(3#"&5)1&%$1)%5)+)2&=(10C,(&(1&*0-+3%#+0/&-+07#,.,07B5*52924>%64#,+5)209-+'(+0$*1&*+#-4(+8&.(#&-1/.#0)1+*'&*(5"*0((+8)*0$&$.8.,629%*/,&)+',(+!,6%2-/(-25%02<22,%22+M)2&/"$". .:.-1*#f2.*,0&* 0$+%**1*'/#1&:'')0O/&>-+&+02%)%&(-+,)(?)30"!$-)=B-=DW1-)--(8)'4-$+)&6+"+(($(+9%'4+'-N&&$3'1(-%($*/2E!7;).2*I%4)$$6=&)-(+'# -71.4.%#*+#2#"'%!3%%@,"**(2%7#(,$%.11%+,*+B1-0#81\ !$"912'9,)5&45(8;$%.6,!8&./""(.,3$/%'334 6'#2)&'6J8.C7)+2&+5-%%(&A',,%-%%*@I7:59''6%7#01$7/&$%=2()/B4' #?(;(1.*#4(*4/:= -$(((%$O#)+$#/'31*".#1(..(2/L,C&.30!4 0&1#N.*8/=/#7V!#+-+8*1=#,-:"%1#7&-#/(<*3#!%9-P..*"%*,).F>!+"6%:-.4)2)..-3('(&*$4#)7044;#*,(.01,/ *7<4%!%1!&"8;%'"3&3;<+#'.*&$&-!,&'/%8#A)!.$'.2"($<4'&(9-3:+)4:$(1&-8$%!60["-A&0'0.;%(?%L,$%('-&'!"($(924',A(( &;84"#$([)+%93#1%7,/7','%%B53&-(R.+0=(1C+-)$.%.5-%&'+/7*0*:'&n%1)2 /&27&1Gj))/(-2.!,.17=*,/*#5# .)!,*//))+4( %+$*D- 0*!'')%(.+%31;(1+&)"y$1%**0\-&4#0_H<>#6)+',**($1%,1"%+!J&'I/-5(,=37/7/./8*##0,&'*>):)'2+,,(+9R0+5-:b3!4'"F('116*+55 .*(11,592-!!/1(,""4(#!)73"((71,A-?,4(!8.+&$$.G+%/3:!44)%$)-.!%2,-()+7*&+#&%),' $#-&.!3+(:+-)3+&*9)0-&])J*#9!+'.(('#+393/&''4)&(,0.,(4'40!.1*!.(%@&,6F1$)' *6;.+4')&&!%+,1)23"(?&&$&/332&530/-.B3,)')-<++@9%".%!2'%7"/'%":C% ;/0''))(&0'.&0'/*,+.3$$-#18!30-';"-/)(@)/..'- ,11;6,)"+(9'%2"05:C+'+,%:(%40,/)4(*(43"71$" )$"[%5(#&%k9:/3%%..,,2!#*"0.=&#%"&'%V3"@'"--]1/;#3@Y+0)_'#,#)'*;#L%,#2.(-*"!!"+!28&<(/%)&'*(,%!2'##'L'-"'&'4"$:+*"23v,+636,'2("+ &45*&,&*50,(*/,<(1,3')$'"%-'&*5&.6).(%# )4-5-<-$!'=',5+'B);!'";<'"{ #+,'-V&)H34'/"#*2%($(53A/05a<6&4"()@(2,9%;/!=)36.!\<9/.:*2(7*1,G-'1),.,152%;8'/*()'++9-2&-$(.&)<0%1 8/, 003,,3"*3"2/.4*')0$8-'-3/&:$1505(22,-7;/0++"2#0(42-,/'$''/,1-A)#-&-,5,2.(.O"&#)4)$+),),!2/!"1)//:;*2/+/8078%)9+2#+80(8/B/.36"-%!(*%%)A(";-"-*#.)!(1A2.6!#/:&.*9,%!,6/+M"40?1A%2.2&#I%0,!'%(,'%).,!,&,.&$(,/,/:5&:)-) > ,3%!0,83+15G.&1+.)U'/;?*!+4$<&0Y,+5% 21A6'&&=%1*.0/E(&3%322;&>2/*),1,&1,#1%%"$ +$%3'0/6)1$@//%")0j*(+.+*"6*-1/+#70*S$''7+L)0(/%9,0%#"&'&C,%+0-+)$((' %)08# 5!),/?)!../M8.+!!)#$';70().%)')+%/*)&0(/.$-;F ;&/&H<#!#&!0@C(!=!F-1,*',980&2E05C-6) "$D(/&**!!-&J<.'<.*%)!&(7)8*F2-$9)(.7)$+92-''#)&%3J.+97'"% 4;,,**!'&&Q"/(. ($"8.!T2!$*:8-#!0'2A4&#*(7""(-$.#!(,;)'$',&,*&4:31C)$6, "6*72)/4-/%8103<$'1!!&.4,75$--+1)@B+1-.++*=.!4%,<'()-(#$,)17"#0+F<('*0((",/"+,5)$7(;'%& +!?+&)1.6;"*!'2-& F5 ;**(.#0/,'*$C6.&"045,2' C$)43/**')1#8*%*.0+0+51#.25'.),*.Q0B**/'"*9/*%44*1. -&$)..8)5/08(8+,-&2D0)#*?:*'817%%#30"H1/!1/"<&+!C)6/,-%B,B*0;$/$.+%B/8)%.,<'1/24&(#:N&)0'69+,0,<'2%20&8#G%34..($!),):9!:#)$+*+.*( .8355)&7#N-7($8'')./"2+$* $(#%+22+'*(2/:6*4'>,1(*)/&*)'-A/7:&$!;1838J.,I*&G/H%%48':'!/..%1&C&11%887(&0*&)$3'!&3/4*C((+5&<"86*J2-3(*.B)E01-%"22)+6'7"')4)-5!J',@-%O)&.'*))(2!4'/(9!",s8-0$)+7$"46,2X9+1<,E, +/'$&Z.$ +#5'<%9&+*!.$1//0,4!!171) .;(?9A$$0%!8f$;(c8#K#&- )5= 4,1/1$@-*M%,%]++!,%3&*,4!.* (#0!+'E87(4901;*-9'.*:..0*$'&(@&%:'& %3A*:9*8f+*($#"53/9D%$+92++G%''%,*6"/(;42.%4$7%-1L0#%&-3#:54/.%)&,5)I!"+&6;*)-#=)-71(3*"!) C+B%$%+&*<-:"(5%$#,(# +/-$5-(/#-( $,(*.!5"+19.#'#:,-&'.+%#+".(":)9 0##50//$#$"0+33!##$.-)))/")-"#,+'-1/,*44)'!* )9FR9'!!*E-9()$%" 0/ 4&2%$)N81.08#6$2*'6$(''6,#150,%/8':'7!-9$( '.C(4+'11$$ "4+#-&)/)+%(1,,'"&./'#H*$.5!A)k'$,$(..$535&")#4%'+*)"/'$&G*+'%&,"+02.(&/3,86-,2*:#%'$-'))&,+0&'!*'1$*.*0=' %* H+:-'F05I,'$%*.)$)".#=5")2,11#''**.* +&&10V+=%,+2I#$& ,N#"$`,)'$-.&. /14$%,;3-$(>&!4*)-)/2&\0&-""#$,3A+1%+ 4B(&'$3'C&92n,W$-9"1&-4W-') ;6/#+$)$'E+#,$%)4)',!EM03"")):-!-+"(-5#(26%2%&$+%,$.6!*4#&=EH.+-$ 3)-&0(*'):,&,$'0'39!-/:2E)&4'! #%*$*:"#%;M-..%*7(#%-%=A0Z-,O1)9!,"':8(+,V'&7J/5&%37%2.4(,+2$-$(&"<*E=703%N)*/@/'*/3''5*&%3(%+),38.$$,4!!d%.)43(5)7%4)("5,$)&*'="!"0",)0228(--"-e9.-14*`!(0<4 $**0'#@*-.1.:.;&.!,U&6;&&4+/,"#(#)-//%A7,0&*357H&3&2$.-"#3<2/0#,-%$.)%+),5)%*/+6'1=,F?)%#*)-#4 %)*&*(($'<.'0/+.''F*/[(!.9",.%'-)6.%-8'!!)6"06#/+4,*&,+**0.%+3%2()02 )%;0%50$4.6/82+3"+()*.56%"0 %'5,&05..&K(%P))4+,N)..4-'$)*)E5*+%)3(D8P10&.,!8&%/7.'29$);+3(- 24/# &"*%.$(9/"5&)!.6"$&.+*@)*#00)(=. 6%)#-$@3/:%&.2)0,-0'*.H%0>)+,&)-"("G)8/7$+"*1#(n$(0&04+-',&, +*,0-./+439k+&(*",/(1$%2&&-*-*3$*&2."/)6;?+*A03.)*5$,+%&,.,>+4# 62.#-+*4" 9&'30(/,!3%38#4$)">')&++<*'3',#,,84*2+&"#-$,*-+*-! 972&.-''3%-8B1)('5-,40.$2'#.**%c$0$&$<+F/((.)&%D!&%&+'Q,0:,%0%#(-(408-(!"#4"B$-0#2/&*(05N2$"''%-,)5*%.*'355s&'+66.+.($0.5>#/+$' --;#%B$.&)*2/-*,,;7&%**1*/-571%(L2,&&n&14#/1,-!(*%10'*5*1*#0"$$.f#*'$),-'$(82(##4$"--8&.2+&5.+0:#R"&'/''3/)(D&,+$i0(4*''5-I"&"#5>$#"!,>(5*(/+/+4$#+(!**%!+(&0-6H1)-,/W.8 &)+@"(*"T/r/+!'|0-a$)61(,-#)J'"$3-(;))"&,"$+0+0!+!218)='-&2-A&%*!53-,0.-018#0%2)&%$+(2(&&f8)%++5+%&62J1&'-$&$ &**(&<'1,!X(W*<,*'04I,%40,&<)?d'7'A%,:c8*?(13%122$9J/.5*|''/"K..0%)*-p.+3,B ; ,2],&82&?,)&/15)-(+%*:4#$3'%J3%=!2+.)(&!K"B2'/!2A"1c#+T"7*&M'-%(Q/s%,9%>"), -*$!/((6&(/58(-;*#<+!2+7&9 2..&B-)0-/6$%"'#<6/&'!9$.#%/(9%/2(-$..'1)."..3$,+3%/++9#5!72,$L-/+<#5/8"+*+M!.&)K+-"=->&"7B9>*#1%2(,-.+"4.3*(,',(5-#(@(#'*8%=0&;45"-"? '?E7&.(6-') '*'+*0-$*8*'.'/*!C*# +1&'%$.#2$>11#.(0#-'%"5438,23'1*%824*(/*--/C 20P'%$(,)&$/5E+!>2/6((&*5=7J&3+-8$&2'&, 4'2.//&/(AD30 &"*(;0R"&*%(42',++',+? 4(3>,)=6(5&-36<%5'.&).0$3+1 9,6*(2:-&2)015,''D)10/H "11Q(,*!*7,P)""3<%)',4($v (+8 .@:'-/-+ $f0$-,81$/,2)##-<4-**"5)&)< 8(o3.+:$))+!"0"1'4+1&%'w"M)2$;6)(/""./+#*".8'"+6$,,-$6/"+!."1<%1>-!"&G#0A+)%( /%4(&"0,./!1$3%$').4,/$"#%)C_--3? ,H((0#"2'<-%!"l'4''!%#.33AB;+!<)8<*1)E,$:& !&@"A'441",%34$8)@,(M0%.:60-.*)02+3+=*):.$&.8"!!D.-)5(*&>(.'.'+(11&"%2)$I!'"14;)v:5'-/,*)("!'&.31/;%G#"0(1",!'1*<%9MF!!'!1#%+(!&9%4#;,&8$.,2')O&/50?/%06))8&4.1#*-"#),%)0 )#6+6(*3-'.((),$.#/3)4&A%02.:-?6E!)*-1/!3'2)+J:(,G&$.%(,4$%3,-9*-*&'b622.")%$.$#%$.+.!0-)1'")*,*/.)-5"="(03(8053.%-.,-)/'(*02&--/$,1!$*"/801%0F23+%M#$0;)"7'&($-%%+!)($#$-.@)(54')4&$'#+)' +, :1%!#+2$"%%'6&/,55.&.-' -(5"&&899(9,3/3!2*(4(-9(/)+2;',(0P1'%%7)&&#/.#=Z,,0..#.1*+<*"20:($$.%*.,0'+>*)50,+')'$"F*27* 83*#30%;=h1&6.'"+%"%*"$<$% !,+-,"""+''0,D''66%9/4#&9#%)-&&B9-&0+#+4(+*&#+''%)&-*0# )5%&)&1/208'+*@0+&)3(.&+y#&+/>#(%&D+?)#,&0*#;1)"")'<$'J2/;)70F(-+,'&+-+.6.'53/#6%D# !&-.& 801((&!')6!(697&"%*1H-.3,-*+)0&K1=*3/--:$)'0,+"6971&)(*:8*"I%C/'(74+(:5( '(6.@,$*/+/# 3.'">,0/&-!9')3")&2$5$+F$4:-E 3%.:"0"+!))5&.-&('/(!*'+3,-)"/,''')"@#%&-(- '#5*'&763$6"8/5)%'@.366)0,8+*-6(2/$%09,% &^$.;-"$)P,3&$,6)3"H4'-&10*)6#+"0})+/*/D-2!3 >",%)+/!( ))%.#?5"1->(.,*,50+)(7'&,6.*/,7+1'0G"'24".!#3"(,=@.+0!D6*43%*,)>$,-7($N'/*1%.G$).,%(<9G#%(<='9%1<20/1%'"&%#*,9-*45+$&"3+:.8*1&?')* /4*)&6' .6.(*?+&+C=,3, E '7,6./$)547$&=.'%N-&'6*,)'.*)1&0#+-**N637"D)@U(&(:4+9$31/,.#)4.%(,;<((3(&*45/,$%'0,Q7/)41$.C<'$?'/13'/2.&6,)@1%!*<:1(%"-59'9&+% +*3*)*%(282&$.1"*8)52,(')&)+'#''6<4>/1#0M(%(+-*,0)'#+13+@)'!',)U)4)%.*%+..)-7'3%886$/68C3#&)B#,1'/=,-"@%&.E/+ =,!')!90,>2%0&&,&'+/;57)'$1".99-3./.5(%33*%21'$.,8107,=50!'1,'0/5(/077=+/5(!?)3=$($!8I-)L7;S.(.()*7#(=&'33"#1'?)B-(0."D2+"")0-+%2+-)2)7&+2'+4 %71#'/>0&_+)#(11$'3+$++(('+)'.&/K3&#F* %&;2)'?I'22$4(."-%.>O5(!B4.,K3'(3* -%+0%0+:*%y8>@?,"*3C;7(4<H%-&@/@A"!%/D%"K3C3#&(I,."),$ ,'9+h-/#:=3+#*-)&+0%&7)* [-*$-.*'0-0.,186,)$!1"$2-$&-(<$*#--6()R!'6#*&)!%2,.G8*+/3400-&-#$&+3 >!&:(%$%$,),3.4//72%#*!&5$)51$"(& ?$(%<'2&@+#&+--)6:!!())(+.*-6"''6+074.,0%4!&/&;-*5!.#$+0/'4#15"+, -=-),8(?"'')/%&/4#*"8$ส#0,$&,-3+0+/+ '6$%/$$)(-#',+4:+4-.%+-9-*6%$).(00--*/.!03!%'-.1"*" "0'*1.*%-)88+-5+.**&&1"#18=-,)(C(4(D5,"*)"3' 2*((),6*0-0(')%'*-'30,)6,4+3,'&&'/*(5*++"-)/+3,,&(%+&(,%'.4#" 0&+80=)(,).%(41)0*)#* ,)4+"#'"'6(,.&2 ,0)$8*'))-+&-,C(#.$'*!7++03/$'/-2.3''#+%*$.-*)*'+4#)!#-+/4(3,;"5/%!/2($(.)*%%-%('#7!$06(/"9)1)$'2+((+20.)%&+0-!#3$0!'+2-'0!*('5=%)).'/0$+*!''4,$!>*.+6)&'+%54(012('&%-%,,&,-'/*)-#,%)%(&%"%.,//+*$.&%))%'#&-0!"!%)1h,1$'.%#0+3#).&":5)&20(!*(86%1%"53!00}**$*! 6."(=2 -,*/B",% # ) *,'#(2.!.))*7+*)"Y-=8#'%-814*/.@0$1"//51"*+*#,gN&4A&2(-!'2> *')2)'/ *8@+3!.#&(,1/5+&,'$%6.0$1*!+,./391'/:#AA,.)8,#'$'=H",,N:/# '5 0%".%7-" ,+&'+')#+B. -* 7!3%C%4)'9(3!7)4=.+3*i "4(2'0+($20,/&*F40M*E.2=.1I+.#1(1')=#.Bt);+/4+B3$%8E)1/F &#$(7$0421> ,()4B'), 2!N.%-$.?20&-+4E)23()$8'4-V)4%/C(+39*?80!P2%1!&&!/!>&'&4*- 0.4,0G##(*23-8(++*%'!(4,"+),#2' 83((R5$24'+<5%+6,A')5%(6*&$%7C,'T=/85-1&) -:GF-D((0+7$$(,?2'5"0,7(0E(H1I!6,#-9I(-%'%*"#&.+,/24++.')(;" !.)64A**-03#V+2)&8,R4&"!13 *2./(87,#+#'4$&)6-+!&400()(1%+ +(-#%?1+3:/%(%"-'-7 "F);+'"#1++6../t*,=1E(,-#<$@6+38%#$%53))8,S(*(64.W!(44!&/&K6%,e"R*!;&Z(4F)9B)S!:7"3$.97>0/1*&'%.*@-51/!*(."0('%$? "$42*+A'3e-#.Y*6=5 >%..8&I0&!)&1%".4))))"2'/38.7$+'%(2' #/)L+(&)(&;000/#+/60%-1-2,95''0$/*+(*;&<-510"3E0-!92(/$E0,$+0+9)R+""7 '?@! >+%4-o,*:%!(=05+ $%)474*&H2@+.8#!Z()& .//"D2*)%)1.)J'1("3%!3.$9"->(9,74,,8'[(%7(&.$#,2.$$! <+:I'"(6(#'(&"<.R3'+65#)&2g-!y+"#%'1'(e&-#?-)/6)-*9.?$40/(S/%.:30,$<4'b!'3$E,/"..$#(21+%2(3!!"+2*4-('.*3%%,2?+72.#+0%//%15-:'%7,*9/*.)7.% / %-+2!#.';)*&5*D3151%51-4X")//'90$#,C'/$'53.2*,.;3.5(3)$&),>(+%0&*13"3$%)2%&1!,!+-l3)'!&-%21.')%$*'&4!7**5"),)(f*l("$)+$$":,5+&'4/$,)/8.,)>20#:(&=$*9'8.P(%.(-/C0,$/'0"#(.!-8+'3'/)2#)-&2'9,)8@0<2$;.@--7."+#$'%*$45?*1&1"1!+/".;1#22010#-&+ 7%>L(+/ !)B6)%!/9(2A"<$229)-3!..9 (C-)2,%y7,( ")3../*6$0?*-P&$)3$)'.0%+2 1." #*12&)u*.G(-&7.&#:++7/".4+&'04-%(+-*0+0!%.'%$l5%&922'($'$%&.,/.-1,&+%.+2.3<%'#,)2):38<))4$.'.4&a)%7//&!4<682;(.>;8,(.'&0,*; 3(;8/# K'(,3)52/0%.9%(&45#2+.'#% '#4#!%!1{(.$16%-@/$8!!-)%1,*%$$'+-)%/(/,S.1)1-),$/ +. '+(#%0=&1/#&$*6*$($"&*-#+'1+-20+50/!'A,+2,,(-*#+#-#.)*3'+(+;%'1*'&2+1$$5-$9%D&$$-)'%(("#0J,,/"* 1 E.-! &.,.[*0)%'',/,%/"&/,!&))(.%*",,-%+/3%-*'=(',-:$+)4*)-)4+-)*(4('$J$,U7#,/;&034F7-,(.=##>.-A371*,/827*(77-# 8!&$,1+V(32-(1-**)'',73+D8-H-#$,6%,'%34"/$24.6(64)-'7$N4-_%$%)-.& *9/)>0*+3%&5&22,7b9,!,%7 $.1-G**$#F0"*()2 (&,c.;g2-$8&/8#)#&*A-0C)"$&/=>&/64)@)+*/.%7A(A/(D.*#-u*13$=1!1E>",*/76#&((-3&..!&R0').)$@:(&L., 030*,35=901>.+Q.C,(#1,')&&'>7 ."))+03/)&#)-#3'#';&'0%*'1$*.(%#*36+%,& SG)02)'$4")R9'%'+';/#4&0/0F_=(%%8!4#010.,%'):&)?",.-/&&7.('',(/.4"2=)-&+.#)5,3;%5&6<-"#($!##2:&M5,F$0.7+[(N#5,#P:$,<&0#$840B"'.*)3(.D*"LC(:/8)*+(M"3"!&6I1+.$2'=114)-.--D9%0)O<)%'(+<-+'!,9/#)+)T-)0)0&/2,#&%,%.*/S' '0%%F%,+2*&"//*2)%"?(.:"9P*(*Z.M&<+_00C13&9$ $(.:(,'#%K*@--S/!,)6!'%)%6($-"0,2/-1'"9;#0(3*1&&/B/*&0$()Z (. '52#0'+'*-&-;(#*!#*P22+)/&#&30% ;620+*'+1'."-!0-S%+0$#+5-=/+%.:(E#80"&6+++7!(&*'4)2*0,,2=,/N"0*3@"-,6;*3=&##-A$%# 1&+3-"%%04"".3(D,)6+"&@$*"#(',2;.#*2.",#$50/3,,0$59!A%8$("%uH0"4,-+#"*&+.!-1)&"-:6+/nD$:&.3/*6$!'%(,'%$0."C0-<0'/.A$+3".@$&+-,!$7 27F-'%6/(+4,"4B#42(,#E-3$% );-/""**&1B% * 7'("/)-./0"8 &6';2./*(!c$!).')5B*.$'-,))-*$G% 4-/&])!' 5'0-0--/!0 B2Q<8('"0M#?C+3(W+***2."3&0)( '6+&)(*1&.+$1$C%1)(+'+)/8 ""/"5*/$*#%$ )('$&*49(.!-/(,6-&7.877+:#6/- ::4(8#0%3Q%/$"',)@B!1Z)6'<*&(%.2.,&S(3)0$&$E0+0-7:<0$2#)!,8>/:7%20!8(&,*i++;!23"&+3'1)(8#&,"(8'&'$16*#%A%"&**-(*('$'!--"-%%&+#(*+)>7))*;'2'&#/+*:5")07N+-*('#%.*7 A)5* W)*,95$H*'')<[%1)#$%#Z&+)&&#&()&*+!1+2+J+$''22&)22"6)!(3/$(0((41%I#3-*-*)(,./2+(0 -!++!&/+($#0!***!),<)%5.?##*-=1-*3-A8$1&-/#"K*=+8(*)/8$*-$'3*)*"7*$"-,1)A((-?*#,)!-).0(&8(&&7(1*)4H 7! .!+-?-6)#,'/L#+)#")&0 ?(%((L6O9/$+5>8'8/-"&DB32,<1->/%0"6&#''-$('("%%,*(2,9.b4"&.4T7D$! ,(/1(9+7)+&*#**5+'(&:*+@'&&4505$4*((/,&*6/',./,#4#'i3/087$9-6&*//A$,'M+O$,%-M2*,>2,$2+(/'&:*9*:G)$/.P*5)&\9+=DJ&D#2"+";/)3#17"1 633 02-%,.12?)+0!,.+: (:) (,=,)'O,4,7'%-5!)-.'='5!V4(*(86D7#&$,!3 ,72),"'8<0>)' +)2%/.+%(2,%562)*'/1+<$(/1-+0=)/%2'(@1% $B%8l)$S(.'-$*0!)'-,)%!&$*&=.'2#,-4#-!&($2%"*0#%B! 9(/2*%%)&]'3'+))#&'*,,))&3.#+678+-5+O/(3, *%+$#'&$'( ''0#"r-E(!/-/ %&$0&&-$3,/!*.$28)"?1-%(4<'38)$*76& B 4,$(I(('9'%%Z"+-/5%.$&K($C/!((-,%'U)'8,&%:z1-3/.!3&Y'1'#4.C+7)40, ,),(1#E*%$/.#!%3%X$&')-"+y"&!&7 P7!% .#$)&/.('" )0:!1&3#+$9J.+&$ZB'+.' $&"#/!-P'#)"F#6GQ+#+)$'<)7-D&+).#:\H$f&7, )h+$1%/)!0,./%$)#&$;88..$*$60-Q+#&'-"0+&(;1"41,9631B+)/2) -#/''&&*=40+G073+.(87')jI (,4+ :!(+" *"/1$*6A $")D(&0-2%]#6$ ,8%2:=*,*-/5+%1$!E27.O&+&'P-813#&*+P52<$#V<'9-?+#".+"6{*K+!#J!,,)'?%=,.64:/<32%*0 "&+4>2=:* @-3():<*!!!.#/55&&/)&*'5)R1:8($:6"+#6X&%7-#8).0J(8d()$,"8%6T$#-2C-8?4'-*7!&'*9#81A3%!(658!2$,'.$F+6&(#Z$-!&'+ ;5-f%6"+<'4%$3/!%$,_31!*<) %/6)AB )$ 4G$'I#-C&*+C'.31+/.2&%6(.: 5&'5&51-/:7##&!*3 "),";).2#%F)D;"/!';$8#$.,h+=+1%!&)"C1,-32&6F59@,!'."(1/876+&'3.)'"*-'/&/52*,%/2#22".+;(<#!/9%0)%)V921,0&%)$+$#,.2",,*%#"4. -1'0' !:0+G) ,.1*?-=/'8**'2@+&#-#;"(#*"D,=S2!04$('2-6.B 3#2& 5(+.!-3./!$)/A;+.:X'1!&"-&3:*%%')'06)#715('$5<%! !/'.&8#,(*&.+ !J*":@*)7$+'%2& *6%$*::'".*#.*# '+9&(&1+?;(Q2'(#((000(;,3M.#'9-3,*2) ..1H)&#.)!8.*/;(:/:'"'#>:).)#0 3#$*&8,*6))&:+:(2/O..+%'8E*6-27/0'1-9'%)##*%,&--'*,.'12*//$B+F%063+54&%1$#(.$'4*$&&101&1&).7+%->"'+'/%%,7"(#,*.%(#$/)''@=1#)*)-$0)--16)82(52J/N041)"+%$*90(+@%+H&+52.*)% )0#,+,+, d+.6$*.+0!2L'%4&*):),.*)><++#0/266*&?+%"/5"*!)0:'##'(4'JH7*(*,%*47/+'%:$!3,/64* &&&1")61110(z$n0(-)41N#%,)%%3"'5/#*6"!.7)%%,19(#0I(!(*)%#! ((79 (!,1*6*/C#'%_*-B4,92)V&)&$I7")'A-;0,#*+1P,+,4?)(&#-+.40);#)232<3,+!(31.*2'.!86&!-)/%&&%&.7*#3#&18*(%S%()&$(*%19"'%,?%+&(4!2''>(60"!(8)R*0473)-(3,*.,>%,'#23054*+20%'$"+!)&%:0 7(!(31j,")+)0&02&)/$%)#(2) 9*'0!(%!0!$!4!,*)8(5&'* D*%11&!03#."'- n%/0,..#'6,26++*%, "+)#),%-<-*GW)(7)45&+%&2(,1(/,%$&2"&."=) -,2&7$4',7#,*&!<&%+)N-002)9$&*;.!-"*5,'>"38(L8*#%& 8*, ,!&&&# '"6.'7 )#%0 /B4:$/ 0-#<*<*>)5<*(#H+0:("',(0%-44)@%307<$.$+4(*&+&,(#1$')M*P),+&!0<'I$056C.28+$+ Y.3%"2+))-C(5/%<-['#()2610%-'8/+*B2.>,''%$+(95"-'*)#3.>31&a,B65,'+4*(;)#!A+.-2!;"6$(<*0+'"#&'!;(.->)"53G+;.H%41&+/&-$&:,6/%'*=#1)1'+/* ,12.I+*1,&&-6,0'!' ,*-$$()+?&N*/9'[!)B,- )&!".)&(,9")#B&/!&'16'*13,G%$,%" b&=(,#+2&)-=%(.$=1$'C=(&+&($C3(4&T+%/4/4C&3!+!--(,'")I&7M%'2&$# /(*!,{<)^-#!#&%"4%*,$-60,1*.+";#F+).!'+-1&'0&#+%@'):)%D/5,-+= ,"!X!0!1D*A"/8&O&! !!&%*!"%+]).'007*%''#F, -<&$09!#;7-'+7[, %'#1:=_.&*8"<? K$%8!(0"!.!& $%K)8 $#()B!*&2H=C%$#)(2%/A)'!*+;,73()K$D .*%!--,!% )*2(*8&1()$=.09$?6--*.&.!16(%$9,,#)(: 7%51:+4*8#=QM,3,2/1$e0@)3+3$*!!3,/-'"8'<9')E!*0-($!D2"##/#%+(#$#&53#66 /:9=/:%D1,.&A#' VI'K$5c (/D,%94%''$S$*M)&&0(,/02?+D!**0,4#* #4*7+560&0'4"';/+,7,!4%32N&"2/$=2#+4&$b$"e='$((#3!3;)#,++BO%,!2,5431'20(:'N)&-\'&+4%57'=, <)+s:3-=$1@+=3.#$$",(40)&7.+*+"/9$6%679/2#)!3029"1/+/?1&5% &&-'354$;0/%%#.=4$#:3/*1$-;! 88%#2%.$.&&"%*%.=0((4 1X.1, !:**)i-+03590+098,))1#4,x ,;=1(*/#%31"73(#'1?3%)%%-4(((#3'((,/:7*#+90%2*4*$)%(-+ ;/ $A/!&(*(&$-++##+$<)-3C1+!.'#++*4-!).&(&/;(*=),4%,47#(*4I*)%-0!0'.-"%()(&3&'- 8038#) ((%3,2$s)+*+.*(1$) (-2+5))1+31$A1-8*@$#.9,@*/81'-0 5%-"+ #(6%,/2)#'3Q,57*7.$#%*2:)6)/.#2(+(6?2++#(,#,*N&$0,&)(4'2(!2""7+;/-%:3),#4&,61(**-)+"5A10//*.K($:$;%11..-+11'04%!!+',*,/6,$'=00*)*-#$C(.2.)L.+0!()8/"'+0+#+/!(&080+n=<.://04$)0$(&:51+2<6.,*!10%(& 816$- (05+@,&'3!&*-*3!/,0.%%20/,>'$"%;),%%&&#&*3&*5%2/5,8&$)9+.0-<*(2/ B.5&1#26%%'-##3$'")9!B)&0'1).4(-7..&!7:23%%#")3(+&!!+")(./%"0-+23+$=/c<$$!9*60)/J%%*.'.))'&+",!3!03$7$+0!.)"31: *+ &,5-$2&''6**",>//,-A%0"+F&/E&'2)(%3-,',/3%0(860L5$ '6-%7,/+2'#.8(+1(/3-+&/.")"'+*&)&N;%)'#-'%-`",/'63,1,<*:-0$.+)#+,*)..$;=(-&)-=)4%A/*C3%4*&#,8;%'1(*,02- +'*",*2*H(?')(6+(&7@8+1<2:*<+!="#*#)'*(745%2-&7'#(%J()(<'.#"G3$?))',+0$)6*#8';?05#('&+!/2B&:(0',E'%-+ %.4"&L$+++*.(#:''-&%>-;7(14(%$#%)'5-;+;-+'"),4'.E' *$*%76(95%)&<.P"A+7*(%!$-8!+ &%6+&)-,)'-<64+)+6>0:c*,7(00&'()&#$()?&113?*'&)H7@C$97,2&8/((,4& */)&"'#'802.(!('%.0B-';A$)*3A/%//%'%,.&*549*))7'1,<%,S:;/03*,s *G=$6..('). %&'!,4F)3) '!.&##%:3#A&("H/ $a*0 %@;(.40!)-6-2T- ;7.%,D('/<38Q(2'4".+*-'5(:, L#(3#<**&"&$+&.f;!4)3$/9*,0)!&.7*X))^:?!!)*'<3$/*(3"@$C3)*;+--<6/$$4K6'(-A832)#?6.5&9 $/6&'2+,-(&+!9&-$,&'-<,;$5$/Z)1S 4*%9)/67957&0S$""#.57$7.*$.?.!3+.&,<*-1+2A(',B!4)%K3!%L-ZT'B0#+$(B%.&&*031%-=%'+32&+>)&+'!)G!(3+1,6'%M+-"(-%;<.,2'$/%'&& 7(-+<5#."%(#%A.:Y-.!71-5*)5,%"&%05;2#3)_+'2(,8&)1,%M/?,2%; ( ($e+$D$R'9#9)C)"+**($(,/"+-/#/$#7#F(!..6/&:/)+4,",Q-*#/#&)#$+.4(%T(6%;$ &S$%/;0&&5',970-1'2*''/4Y\!4K1MY'.55' >) ,A/,#%U0=$.)#',.1*)01,+$R.#$+)#&.+/1/'=#1(+8B1 &9"+/*.13$?3-("*9U)4$* +.@%+&'5%*7!0%+6+&%9Y&()12^)%=Q#6AC!!/"4#1'0>6*1)-1"(: .O91"/,'%(Z$48<3'(9&1+08)*'2)*)1.)&3$(/'0./)2'/54*.1.A./.,'7(?02'2)2'>'&60/0*/3#*%+-%+'-$+2,-)*(-1)1.D4)*8-,*)#&A,+*&+3'*-7-6&(/*"$3/$#*'B!&()+&4'/**1.*%.,06#!79+'2!&/)#&)0.&%7(+=&-&8+/1*4%(*-(,(@+/6+ )(;#+*( 2@:%#/7# $1+2!5)&'%',%3(5#)'3*1,.'.4,5.4%!.%)+5(&$0(. *@0,+-).%-(1'&-7$'"6+1%:c%.01$ .,&%#@(()!"0+$11"%0%.'7((I03*"($170! ,+&4'D*1&#(1.&C#(06Y/5/+'04'73!/)&(2$,++-"*1'61.'-*70$&*44&'4+2<./5+.3#4$>517&8+.('>6&I.5'4/&3B+$+."F6(6'/*S6*%K+0%'#7^0(&0Z/'#--6$115306(0+-"-+06(''4//58=;!(8*5-3.)5<$ :&53)137'%#&A#64135238(('0*;/($&)A3!&$5 $1"!+(#!/!Q32 +*7..#'3).9'& 6.(',-)'*$7)%..>+#'"(!$,?*!1-%+v-(I(# 8223,#"+!+ &&B*,$P F+###"M.$*+)!,I&3$108$5+,#0"46+02$)(,5K,// 8+8*$00 /',!<92/<';&-/$5%!$$,F&''2'#*.!8$')$269-*7)+#/%E*&32.+8-$*%).(+(3(-/*/*<.*2)&#*&'#3&,(-Z&- +&%"6"*.%*!-'#49=*$2('&.K'1./)1U-1!%*&/$0<%++ )&'0"2D2(**#"%3(1-/)#$"-"/+(+B!#.)%.$5.%/9-3%.)I3-$B'y6 .&00*$) &0.*056 @,2/(%%:.)&(D-,&!%(/4356+ 6/+"0$$(/F1$$*=Z,0-W,"6 4*B,%$3+/0/(..6V#4(/.'0'5Z*3Ee!M:*E0.<=.#-)/0 &$.,,,+!)9%5/%#1(R5%0.49$.2'a&!).$3V#.0",+0)4-1K00&'#"'=%*!891&/2&4-Q05,&-"6!'S, )m&6(',*$7'),)"&4'&,>$.**2)#$*,.6#-39-(.5;#*?%(/=','05- &$<1"*6*7/,)! &4<)296E:F'!=4 0(!()'&.$"$$.+:1$=97&00.""".4G2,.*''$--!J23";;3!Qg+,!$#'l-<.0?%$V)$%**$./(23T!&"%.2)-.%2*0+;,5 6-&9&.E)8)3S)(0)$(,&%*%"F+&35!&%003.7(&*610!3&(%/*2+7F. )(%-)%-'(.*',63'%;/))'+(*-&4%%0'`/**&#-'&)0!(*$.-,&('6':8%"1$(#/.A6&"(8'.>")1A50'(C0+1LC"00&"((-"2%'$+&G((5&+E3%)' 0$9)(-:>'5"-/"0072#"63!<(*/,(,)"*.(1+45#80*'%:3&<-(-&%'&"'*3!.'+,*-4&(,/-4;7(+#(.%!qD15(*';&4I+D05%8,<0(a@18D)&B*)!2"-50($'6"')B-7M2.*!%*/71+&,2()!!&%'&"&(B1&).)33+!)69,8%(00+'$ *'%,"/1".0)%"*'8+*'-# 1"&2&+$+,*,%&,1),-"$8- '#+"+*!-%/+C %(,%-6#7#)#,%!56'"$/+# * %!+e"F%B*#('!!$/".*,2(*)3$9)(3+&8(-."<)'2$!,6"5:")+*!(.(!<" (-*-?0/:%1:*(5$+!(3")).+,&. # 432#D")L,*3*.-)%!$-/*B/5)9 1$(+!,))$2-9. /C',)K6LA-"!+23"5+(*128)@+#J%+$" +,##$'!-)*i'-= #>"):8* =6-#+*53,(!(+)'#6 (!(:&(*&%- 4,(*.*&-,9#4&4&2)6*&'1*5,0$4%3% 70='>-%1%6 %$O),'3&L/J/8 "7&.4)2,AMB;-+/"5;(K'-/&9K&!*,A#3K'@,&//+#$ M&3 .%(6"'?++)+&*.-9*,( %9(#b$'4$--'V3M%'-$<1d+8'&) ")* +!J2+6!+!(9(*5*/(""0' 0D/1. +' 0)"Q-+3!/-$+#(+*.-&'"""3&4- '544(2)+@""'?/E'" )*C"'4., *-):E+*%1-5)+!2)',6()",$9#$-+(D0*1*)//&.,C)0$-5C8.'" U&!%#><&%5" 54 i7A*27$! 3#).&"D1!00"+62-!!F%$#,.,)(#%&*!"/<)9?-/.B(6*+71%5+.&-(L5&1+029/&3(=6-*#'"/.)*&@/)0,12( 6&%&'E6%!%d%--$'-'48+a/$+((13#'&X0B'>#.)"('8;%-'E%*'004C'"02&+ +"(,)""1,&/)+5($1+*'/*"5,%!2*70( ,/9#% '%1','-&9&'M.*$P=*)&#(7#$.$*:13#/Gb#9 +,%%%&4-$+%*0.*/+,%)/$650>:#3J$()Y$,5$/&25,$.9(&@$.#,-(.5!"("9?-C+'*<;%*'/9""2(1+*-n(0+)(+/,#"/.'*0)<0)>$5+9&[*74+6#W:);?$(B&"4-24)%1&$!1*5>)%6/+*(5/1#**1 .#<#'=3,"9*3"5*%*"#)-2"),)30#&',0 \07/(" 9(#"08(%"6$640.%'>%TP()$.%D'&2)75;.HA&./% 4'D.#&4:&""B)50/8$,%-3*1%-.%=$)/W-$3*-%(L1$-538!+9&-&19'33#) )+7%+)$> '"0%!10%)!'1'7/&>!-6/#"5)2@3!).]m8&2.&,&'./,%*5 0:D-"(*6'1='3%3 &6$$#-!<=)/9.M*"()"$/['+74&B+$b!()/#,"W/)%&./=#'E/+6$.((+(6&?$*2,()$F/7+3=0#!3:73(8+!68!&8+;'.*=,P(&6#(,!L/.,112*4'$':$'*0--00I6 $,I),4,0-&))#=(2.'."0/(&&/.2'+*0)UY$3#'.++"0";)7(J>(!$*& +'4-0/&1&%1+)7('9,>%2*1$*$!%9#)--=;,7!+%%)35(^#8,'D%4"2$($2&(.&'8$0"9*!)0-#&0 7* ($-!10.*27%*-:*)$8)B9/;"=+/;W*'<+%!+C9167#( &"!"!0%)) .&'!B2>"'(#E!,*>%GB%'(*/-+(3&%,+/&9+*(1./#3$%1*..66$%&"+.!:(.;5$/(5370++&5.)0.,'B,-)6&&2))22,(/#7">.".6)')#/3;/4&+)2*:*54*/)43)0',+308/$,*".,+-$2')06(.&)+*:#8+"7*,$U,.,$%%H(=-"=*$0.. 3"5+#";21*1"3/1$#7&:."+,/0);&6(%c9 2,5Z/#N$+?+8,-,23&8S1H) /'.( =K%("36$%-/$&,%&%(5/+V*9!&(+-} %&'&$*,06#1&')* *(*,),& ,:/&D*, !5)&)0-408,.6(++*#)*'U0&(", 3A.&,+%%&0,>,"5#,& *1(%)%,+9"6=+-*,\$;+"6#/>!73#15/%)+!%C3 +?%b<&?A8 $2 '!,H%),>&,!39#&7.*%#&,$2-,2%&'&>$.-(]+5;&45M#04$#%4$(<#$('/20%$8 !!4B@#""*Z&&G3')!'<$!:'6# $9'%6$4 (&060! %B.-,60#%10)+Eh<$5!3(-#%.+&-$.!6&#&o8S%%//8#'+07("9!&3!F*E..#-*,#I(928#%(,0 +'!&&@OB/##..@@&"&()#%6'"#*M$),#'7&$.:+.D,)5~&G!;$`),"%A!&2;I$&((D+!'B<+&%#70D"):&48+"&+%&$5#-#"&6& 9<:F$F#7,32'&(S!7+'.*/NAN*#)7'.-4(2+3JC88*E0$"680#+-+&(-)A))9)0%#;&/6"**+)#K2-#!%<(+-(,N+#/)@,5,*(0* !(')]G&03$7/>,-$*54+,"":$&$$$($:53%#-"+&M5,>')*.;+.. C&8*15'34,&&1,#h,(*Z'*,+0!'#*/,7#,+')+)$7##+<)&01(@-*'$E$ $!%+*%8((;(4"=!34*I4)B?!/X(&&*:(>&#$9#"2*@*(8.)M.,/$1&1,!]C(.!(!+&7+)"KK-'F@3%'73,D.;58".*"E/834>)9"+6"%=!(C%,%.6$%,*/.+.$=8\(#00.=E7,$!-2%E+-)-)))3'-0*)$$5/&0/ '()%1(#J,(X)*23/)$-:1.>-,+9-$.<5 C!/#:;05%$75%10$/J%(,,<')/02*!(1*2$&!4+J+# ,<(+!<&&&2/&n&(0*S,<13 !#,-+&&*&/<$/?$,!0'$(5/ 8,1(!)13>$K*)))G+*+-)$!(+2/10,%+'&'($/.*!/Q"2*(D5.(%#.##2. +' , /+&$5;%u1CE<5!07#7)`,!(07'B#(=K&,:(0(E++,+&(+1 2.%/.%'.B)&7*,:Q"-)@/*(%! ,1-BD.!6:#,20@"?>2Ts)/((.3%";')!9$+,0+!#/-*"$('* -%0/;&' ,&4'(.)-)#(+R"9+6-9)-P=22)(+)*7"$&$ 207*&!/#*$-=4)1&0$'( "74D!*G2%@ 'D<(0!+,"6(!(*3- *$,$1#/,-$+)!"6(4//?20&8'/H*'J')/$0"':;5"11'."('!#'(,9((8 "?&:&*',+B:'W"))&$*G**5%"%7)%30* %)$)"-&.E6%+*<&+(6$"%'('55('0>$"+- +&7%'*"'*'A+% A('++!*+"4>4##*%'&+-1(.5"".!01[/$(*)*.8-/=9C+K/7(9+@#4,3)C3/'1-.0/*y8+-/973C!6'%.(+&*,)0=+4/+0*(&Q'13,D*)2%&$%86+.#8+5+$!+(.*/72$7/0'"'3 5";2-%$(#.$A!7)/"*&88.515&`&:+(@5+"2$641 3)(6.)+*+(/2&0:#,8%(!%%0.)(%B.+*)(342(!/""))+4-""/)0+5"3)(00,''0+/!*")0(&,!,#J/',PQ'(.1-6/!-/.*+( *6*+(?*+))84+e"0&)0093 $#+)"@".<36 >*+)'"/--6*")(.#2-&&:)()<#)$1##0%?5+9'3+!,8,$!<5&./+0)*;>1*#./+*1.9$E*,*8%&&&.'$!7* %3 /&(5+>'2014&)=+="249',)0'*I;5*)&-,- ).'C%/%5,-'*1Z6(%+%)1($)'Cs,>/34"3'$." ..@N:%/((+))-!1!.0("*%./(&7-W(54&+6*0#&9"8+$'d5(2(#.',5G,,$4G+.,,O!& )#')%H/*2#" "&N$4:=2:22'1B4 !" ')$(:f8*#' +-5*6)3)-(+.#?(6(M:!/%E$0%'"+<%+.6"$('0/ 9)2**+*+*-0:),?(#-5"+@"&6&,&.;# ("'#:*&..,+UD'A+$+'-.5=$6)K2!/*/,56 $*T&08!)9(.%M366;5%>,9-?(/#.8>+*&%A'4/;4E,(-.=#"*D6-,:0(&*&+/'%)+3?2*+++~(%&#@$L*,&")3+. '!'1(.)B)+2@$+)+#$*&;--41&+*9,#%1 )24G$8&709)4 /*1-.1%'%(')67./+'47!4V*0'7$,4* F/($.%$N1(,&#)+((!0$+7.,*B&1)&01/- ;#/).&(7-9-,&-'+'KC*B8*-*(,//,$+I)(/<[&1$6(/;%'43%:4%&(&!+9.,<,.&6#(L(%<.##17/6?'""*** 52*)#?O*,0)$#(!*4)).7*33&) (31.-*.#-C.1!&)$''7$6#89+B9g#6&<(6B)('!+1K/:4:,4('.8)+17'"!%+ )u(*F$)+1/$#!1&'4'-,V!*;!$-5#%$3 'P+$ #(&?("%-'&-%<,+]5+3!,0--2!,03%%"+2C++/3'M'5) 0#)R#"],#\ $,..-%1)8- K!/*$"51!;&.&", #"5!568@"'%!+-,$'/:#%2&%(///4()#*G103"`-&' ,(!XM:.#'/10%!/(7(3"-)6)+2+&,,&6-#3&#(*!0*-,@1%%4$=G110918+#/'-A)*4,$;/ 9 2!V*)+,.(((.<104 +)719.)-- -%)*'('38#'-'6#'l*'#7.&0/ -, /%(&2"0&D*3o!&))*6.01&/F**),/&&15%55$.+70!)(-&6"8i!?%+.+!&',:,/#&12' 2"$!--+$.)1#-/&+72+$"6P/& '*(8B'!(0%84#4#))*270)+"*5)"0.$*56!"("3*'36(,,(*%R&)6,!.(,+'./#+'5 $"$6/+"!*+5A31*#X(++#+#%!!D&-#!> &!('+;#+<'(%'!"9$6&-04<)/<4;()"0y,<,3*)/ '('&*$+5!/%0,45?(.)/($9Z+",7!!-0/0C-16"'#Y)S$2C%43"*/)4)#/5P61 15#i%A53')"&,!9/"48&-#-5'""Q+.$03+9*$;/,E )+,3b-,0$3.+52&42R2'/!.&52#);!$"0"&,1%7(8"*(&)&$1/!-0,$+:,.<(< 6)>? #.,!- 0<((,-8)7+-&)24)+ 0:E<)8%,;2/3(W*N'"7,!16%?)%4!>.)':#)7,-$'$'#-'%% /'../"/4"5!!"!I&> ,*/=5:4"6;$(2(+&.&6-3)&'+)/"$1"/'3)+1,0%*-(#*"(9.)!'$)$$021/1-73:,+.,B-'%?,/)+&)&%!)/C*3,0+(*&- 2,3(&$3L0,651%))((2.(*1"3(&&!((3/%+.$-(, *#*.8".!+!/)G4(/1;6":/%92*51/.+*(C!-.:))95.*+-(*72%*"#G(#&''%%1)(4**"%$,-%%".'2-*1,!3"'*- /8.D'2!!.*76 57/*57&<540%&#*05%=$*7&"+;#!U-#,!.:#4,($&7#!')02:+#+76.36*2&*),!()/)$.&3(23 %3"F!*.,E'*+1'"(.!#1%/$'%,*$&#%.%%(\!2-5*F%+$N&)'(!.*3&,"++C.+*#./$*-+(4J7**+005"*"!?V.,3$$+*%7^$,&&%f03#!)&'''(#-7:+:6$'2#$;)#-4-;, $)>+%-8!"-*$'#16"8'/# '%*4,$0*#)3=!*+*3-; '*&-!&-+$:&3*",'0('*0+#*.=(!'"01).$$?23)7'$#5#*/*"5&u?26/&-3"Q')(&*242-d,; #G010, /@,5.%('7#O84,2*1,/:.&"!'>2%4=1&P,)683(-!.1,3&.2;/4))3?,"*3&:20:&! +5:*,&-0$).%1,,1*$&)DS',+?2!)%(0&217+$&%(5','3/'9-*,=.))-&%,344+&%3%4&&-3=%.*W#-#0&&!,03AA6"0!(360'%.-#%D('"7H"4111'*5;.!(+$3/),6*+=&-5C+'*2!+P G/-(-<+1-+7$',$-'9&*)*!4'G-,&(<23*-"0(-)(05.&0#-3#2*32!-+%*'-/!52',,'(4>$=1:)! &&* 1.5 01"-P$-'.30-**09%'()!%9#(%+(+,&?+)*3,/*=$C'&B0& 1'2,*5#.+)K'9(4+)7,/,',7 <1010+&10#'#087')%%( !4G5*2& &2*2/!)7/2$(+'25+$03&&86:04%*'1,&I7&!'+() 6+.) 10136()+%) /3+1&,1.2$)#'(%%.J-85* 30""1.'!"'%- /+-0-(*020'/*,&$+--0*/:,5/-.-F>$&1/%)%,4:,(A(<6(&.'H7*=09! ,,#!&1(23($4!C).)-*($'#$!1'-4'+F, $Y%,'8+=*,"E*'V?1.-#2;06&*#+$H.+),&),!!"(63$(&F() 13%6+D&+'1;/34--"#20($!)15S.;1/(+$0#K$&& .%6&2'.?#0h-$('5"+m'/1&M6&24,42)0, 75+1;'$' E$2B/!8*A2&8!"!1 ='%8G9%H(3)*()7&5,-*,,'(5+,3@"26'!I*,8#(801/A;,%N1*15%4%1#$/#A1/(G-9)6%<;$)2$<0@/&.5.GL.#(230."2'3&2)(1(+$$ R%5'"'()3?!*D+10KF&2)&4*)$>,-!),8>%%%5%+B*6--)O1/?.(*&)*?$+=',#''"8;(J00!/>!(&%"'/4.)+&&2J+-,,02)P.*+'-=22*+3'&!12'27+)/315'* -30*65;n3.#$*+.!&c',(%,%3 67/,%'#-6:' 1'6$"**&$",'!9/)0'3#)(()&34*#8"1S/S)0(!W)0g,'GC91&0/(-.$"'-)'*%3,88W$$7),(#+*A,-#66"*.&&!2#+2(%2,*.((.)(()e%<'(1+1%&-00#!".71")7$-&,0@+'(,66#0++*+51!*1+.6!%=.)85"#0&@C+-"''"-2+(,0(60C&*&*$+6.2*/;#3+6/ #$%)F8!,*,(=#2+)$3*,n-0&&$./**#$&),9VN*3#9J5)4U+..,/')(+%$1W'44((+,52'),5'$0,*-,9$%).&)+5)2.E 9!.5-(&!++(7?*4")5%+#" 1 1((#5$$(%#"/'-0$+0=0!+F?%!--8;P2$#-/&4++*!%E/-*00/-,)&'+*"-F)#&/&/$-$1&!G/8'.0" *#%+ *. '!.)%+# )233 3,5.'(+-*7)@/#%''2#418'+80+$'(%),22,D(/)+=#03(',$@.%0"$2+ FI$8"/5@6&'5*0 %!;3(-)#42*0.)-*2-#-#.1(3/((#/!.#%'/3,) ! $.))0+#!$/)2'/+3.B0%&57)!"&!1++,()+7:- ,7-%*+0.%+"5%1%"!-('$&)%-!/=&2'.8 v&?&1&,(&&%(F <.$(!,621/.8#28*5&-2/=-)&)*1/836%&)#82#)(2!0 3)B-#+$+<,11%*/+=+;2)!."%,(/)((14$&)<("!)5'+A 4(&2 9# &(#"2-2C*)+-.0 #(1.57"DD$871)./#'332-# '&#5%(7,)!#O(**5%(!47&%"75&C34++",70(3.)(.B!2'-(6%5%'H&6*/90=""&'A'"-3' Kq" $'%*,/*!".:*D.%)+ &!($/%%()U(2,!)/(,@J!%1+!37#+5-2)%&,($ =,&3&iU'$7)L8"')>,09%,'"*%72A/Q,-"<&"&,+ =-(-%>$4B3--*&0,#*&%3/**&% G(2&+-!/",7)!+ !"!5-,!;#1-/.# ( +)&$7k,.$(/0//!'40*4$ )8'>0*;.$.2;6b;07,)+84%5 5!O"&4%1+6+0(11$//;."0*('2#$0%&&#;*!'.1-]631,)%03'#1")).=+&Z+&%!2/=0$$53'35<#2&])9/1*7@#7-&6&''!]++)1%1"0%b+,3/!)% -,:F($1.'"4&:!'1&+-((0/'4'..,1%&&)0++ -3(,#4""%D67*"+/4&*G&%0./+!+*b#19+4%/+"$.+11),'+-('$*2/0/)/8',(+7'2"*,(.-45(.#'.92$..6%.*&4(I//<!=%3!1'3&?$0/6'$,)*.*#+@5'i?&(&*4+$?,3)(:< '+!+(<+^)*'8%&4=)+=(%$O46%,<+(U.&&/!(0*&, '3&76)J.6.)!+4?,-.>1/-+'/6.2R @&g?,/80'*5_3192#(B>%A6VH/@/!?")%.(/3*/7'!/'$3N" &.2+277`:=1& /+'(*421%+/>/;&<%+& %-0.,8+-9.)DX #0!6"*)#%--#,'+()*''+L3.&%)2',3'&>+L)+$Y&95+-;3$,&#)+A4'&+%,#.)()%3+<(*,)42;(+&))\*$80%?i7+(92)"07 -&22$,:%0=,-$+',#'&*10"-#(?%0"'#:+,)'554*&(+*0*)//7$H1'-+-,&0!+""-+-)<)(0+5*(-3.(45&*@*`1)"+m(*/%0>.'(#!3VB)0)#20Sh" /'!0$(%3,9;;"(+2'N.*!"%m$,*&5,//'!.&#{-#&'%>+')+(**'(3,$)()()i$3 :&E5%$-4 &"$H))2"?-58+$%&'2-#Y7'1$)%J*2, $*)*+**3(/0$6&-4$#4(!/3($I($4),#$$)I&#(!,)+&.()#-'6+/@,@.!'09. ?J(()(&F"#8)+&S')-0 %52)!3$"6--1/(%$+%-0.##)!%&9$.&0(`,:)*)&"'+(#;*W'/+/(& (.88$A%*%*,#(4K0&%:+,"#R>@(**!!3&$%'-"**',?%G3025$&&!-$).A#/)5(;%!-6.0&)1<:1+C*%+ 85/&(,$(&/6:I&!%+%*!'-&+(,!&q&*+#'-4/,""?#$5U!")4% -%+)-%$'+!'!E#63]05*(?. &0+0.*7;5A,5.0,*(I<#6!62"/#%0%*%68!b$A/M(+0A!(+''%'$="366$%".K*2%..1/03+:)2()8*$!'49.4'6%-'$"# ##('-2)6"&I8%((M-$<*(*<&"/;9$I&#(C.!F$ +G*0+(3&.+/4!'#.I)(- D#,:)= Sx(5#.-.)*&%!32,*+-V*N(;)7A!/0)(%&+@1%'58'/('$.#Y4/#;2'$.'0(+A<7!,#$)%2%(. 3 ?3)7,#/03(E).#'&;/3#-?'.;C=(C/<*$##?1'!*3&,))$,$!*:+#2/".;143($0**;$/"/,'&7)(=+):D'&,$1!0-'4&-20,E'(,":*0*''u'*/,!/-#"" 2o-,0(*6%1))# ")$4,&27'/1-)8%&"1-6 * '8/(#5@:2-(%. '%2H94.2+03-&'4-+%&)*#);8-55''.),/'*(37%)(6(H(%.:F(0+8&6(+*)+'-)++24,$2/3'!C4(.:0.%13+#.-,)0"!(%!A5(+%#+,)%9)+2"9<).:7'":1'4:';7"M//!"P5[26-)1- %#19!8>'#+1/"$"(().'*7(''"-24-W3@,0$) #-%O#2X($,//&0)%>' %,)1)*4,+:% >$3#)(<9/&(9.0/D+-,&/(|$'2$$73/&49))*6$3[) 0&4&4!+(&42&+4/(404.$#7':')4/++,/:),,%(*2+=A02./4 " %,'&&(o'0)1+!+*,,!'39-2*2**$0'4- * 6((8('1$#7#)*F.(-2)3-K4$$0+1$0$*10'+./%('++#*01'$''(*.8)#29'('/(+74,T84).: ($9)8)44/,60,2:*':0%=)$0-"&)0*$*4&0'* .._4+.) 2-F)1&&2)A.).'3<6+2*4(@7[,80#*<*%")+0-#.$".(!/&&''&+5,.,65#=)0+"+.$,10"$%6(.-5H2'(*+/3+('"(1,23+%)642#2'%#$$(6/'')$4$%*<,!7B,,*@1&!/++'4*$L"6,5N.$+"+8'+7c+#> *"0)*/''"* ! KB2&>"1 #P<_*'--81$.T'//+:2$%&'&'."140L!&%3&!$`5:(79d2--(.*7%(1#;&"#%!'-()+G' ."/7/')"(#.$%,$(!))'$#*+&515+o"0*\<,+)2h*/.5".*.*.&+1'%&+,#1&G("5%%.%>T8_G,038* !,'#)7"1CV6.;+S4)3/&:*#/%5(.),%%(@5)/+5%8#7)%Y1.+)/27.84$+.(!%'%(M6'#0&='%*+/&9(+!(05,4V$F##"E#(#*,0='#\#+2* C4.% $ 7B*=W6'>,'3.d*'/$:"/,34,$@0:3$$(-""%!81,0!%1,%9&*78!&+6S!2$4$+&+5,5:.$/?&+6C(&/%:h0*4(5'$*",*,$,"!)<- +@$"/+)/03+'5*&''"/%-+'*%.&7)"0-(7&(3%+0&277-!()/)#+. 03/+;67).(%1$("3$/03#1&((!%%=%!3-+1//2241*(;9/-+(#(#)&=#-!( )%%)+(+)18),&$#1!7.6$*6%%' -2<+%"$(#**0@#%&%4*51$(,8=!/"%0$+12&')%)6/2&")0@*%&5+4-$J:#?-*+*++(.5237,"?"())'43'"$%;*63((,1+&).1&#'F(&$2""$-*71'.,))2&1'1-&!*3)&01%3#=6"!05#v+2.A ".<'+;&/5+",'0!%3&?)&3#6=/K&- $&%% &'75!*'($)40(,#!('(0#%&C+5$!i+&&+>*/(&a65'361 2$&/-(;.$0(+%$#(*)+0+-&6()*3'$/*$/:+Y^/,/]26-'"-3"./2&"71)'',<,"0(![ 5+895&( 0#'(2".14$'# #))+19u0.(702,,72!P^+ 8),?3$(=().0.4.9(<025(+-A%%$>(, K4#%6.58"$,(6$I+'*-%*+'@2/l+7'X?(-"+5*2**@3!- $"$),8.)(/)2%.*/$&&,,/!"-#',)#.#A/K%:+&&058!$#*5''*'%( /952$05$' > ,.&//.2#%-Q( *=7.2&'=s1(.($00'("' '%!3,&*(4:'/!%2 4$!%*-2 =&&/>]38 4%!,(?*B/54%(("*50*0''2Lc$-#(.48:.+: 'E/6-'-3'23+'%5",5-)7 &,/!(8!!&*%&*#66D4'-$%+!5,6$&)&&%*''4-.5%/!6'#N*- )8G*1*!)-#D)&x3~"5"$,#% $%*''-C1-(1/!$7.*/%(*):!*();!&)%.6)!"'21;" ,$6)"-!&! !#(% ,!7`''.& !&',.&,F$ '*,4"-+,'+".) $($2,(%)-7d*')-+"2<>&".'(6*:#'4$+%#7!#.,*;'7+41/)(&K&,)1;&)$+)?3,8.72+/ .!,-!5*%$-,:+3b0"O;0'4=B<'0/%\%(-+3(/!)E$255+37!*(; $+;g/01.+n1%!*_1 *-0#5**9&885$63())1- ').4*(,!+#%8)&2/+-&0$, *"+"##+Q%l2(i7/*/!&6=(/'"),#&+)n*F%&*F7 63.7+&++*;)'-).-%L-)'*<($$03%84>&;+!,##*&*H#<3-.>02*:1#5:)*b2.1L/<+4-)37(I06&,$92*$('+:#%3(065&+5 %0"x)+=O'+)G(!2*>#3+0641-,'/**W)+(B6/:(71)0$*6<0-+;'-$$(70:".!,.&&64+'+-),&0&-.+0'5(1-)!@5.6/''))5$2//,0+ +((,<7M+">;$21-*!@0-/(0-#+9:/$2!5+&&-))65148%.8E)&,<*-)%2)## /2/(.4FE2+8540+8@0##B5%&$"#84 6.i'g $"#%$$+9@$#%00 N'#4#*(#(9%4.%,,&0%6@!4)*,-`."E-C* :")$-/0)0-&H+ QE(0$6"B1M/7"*C6!%-18)% 1.7"8*(4!,-,$M'1t"<&3'+%C++H"#)'+4!4)J62@.-')/%-($)&BQ3-!1(.251"'.3I'C"7+/!%-(+*I%20)-3.0J-%)-1/#<.)6,/ ,$4)3),5)062*3G&&*'O'"**'?(10o'8?4.(!=%6-(.,&#,3.&04))*#0)"3-1%,.#), A*%-#7,"&*+'5/!3/",)* 1?///-1O&8!H.!6,/&37 64Z?B0&53(-.1%/@#'&%4$&1+/&*0*&0F#*$-.0A&&,6 ;15"-$' )1&5$+$+&&&:")&+/*.&<1 $(5!,2%,*&*-(+%+"!4(- 1&&%)9.(+00X6$4$!@&!4&00&),D-%*13)4)$+*6*.3=0<&!%7.,.()--(<-3&#,.)%&6(4!)#*211*(0G&@:(1&.(!%""3'1 7#) $/-9,# --.3<4MK?9F;Z;ADE96HN99:=4*C7C7JOOIKEM5A1?=Q6?829L7@@@OFCCA@64>4@H:4,4SIM>DABP7A5ID<4SCH.>-G2IAMG7.DB=;G:;K:I;SP?B04>?>?4A?@E=FL9;8@95FFI1G@T=F2-?B)CJEBFEGBHKUF.CJ;AHL7BMC:E>;12EB:J<@E;BA>QE6HH:CA@1DI8$+?=J>81I+=KA4CSI]5@H3DGC1=AB[B5=_DEKH4:;@CBBNDAK9/B52B=B9FBJ8ADO7CD8?=:>>GN%&'0!*""/.S!H*3& 03#%3(-, +*4%.+"4'+3-*$+ 6&+'/P>#$ui%'/*(.)&&.b1),,(R+5D01,@5* "%++*+"&*t,"0,%*#"$"-1-< +/"$.5v'T>& 0+!)0*%(,-$%'" 2$,G28%%!'51,);'!)) J 0/56)&<)%3:*):%BE&$&*)'%*!(*'!2$#&u('$#/ "-'"27:.%/&"("&*"'"8),#33*%&)2+#0008/(A#"6%$){%3(7 '*,-) D6*(3$$#0$'./B#9'.) X!; +08/4)3+.."/6-&-=%*%2(+#)!)$(+)-,0 I##'(5$-D )/))+ % %+!*'%$.&#H(&3*+)*3(#,.3)(66%*,.!C+)1.:(;"&=(222 $'88#%(7-&;($0+(0,7 "&)BG+>2!>49++$":O/6'21)=#+60$ #6$4+&1$)?'&&#)!(#)+0W8(*$+R+/"$&5#&;+#+)17,%,;&DI>*`)%,57()314- -"5-0$-)F4,<:-$G#(-=*5+!$6-$-(((ES:(Y"$1.<"!+<$!+00%%<9 *(C! )!%&9%))/)#. .$);--=!)4F&:(3K:'$!&,75+-.28-+#+*+$14,3"-)".2@>9%'%;$:0&0+A 8%-'1/3** "48,.#X%6(&9";T=%''8 -D1"(-#G3.*!4'9 +&"0+>59('(&-)*,&0,+1Q$-,!5$3%)"sL-)(/50&.&)1!2!$*0%&,%=5)2D.-7$)""'247)*:2/*(."--&(&3/*?!,K00'%9%* 7(+7D()+/'+=#{,4(*$/ 4%<"" '++42@.";,40&/$+-(%w,1+('5uI.- 0"&22(0:,'+&+)'%)5'#= 41G$+19?4,%7,/+"+$C(6"!'**<1+%01$9"-/53=2)+!&(6#:/C!./032)4#6:E5/B0--&%(',9+/',): $1, #('0+7-=,' $#%"0-$,+)(: 35.":.*-E.&/%-2"04-%()E-5'+.-)$$2/-&,%L<B-+0/>=,2(6$"38&/$&/)+5-(#!5+()%/!7&:4T**%$!(-0' (P0|"):/&$((6+6 $%'8,.8,4)((*$?.40"./@:;$/%"$"@.#%,3.1-C,%*+O(E++1)+)!%6+-&34.(3'(F-,/"432.*=-,#! /(%*+%.. $()H#= 0'!v.#.+#(8%.7:*(#,'1*$>&:#'(/)5 )8;5/+$1++(%.="!&%#9,5$<),S%>5!1=OM$/A$&$508C% #`.=-,&%&)05% ,F)"&-)#$$22%/$#!+*&5++'*$-.%/46&%0-!)60'+,05-(("?%06&,3!D3..*7.5*,)%+$+f%D"40:%%91.,*-&U#$=1#.0''5Y$1"&( 72('(9 )#-1*= 8.2'95+%"&!())) $)$'43.63$*%+D0*-_+)4):/,0,--&00,0+#Jr%)3$(H(),1;4#5,,*r6$+:505A *6F"B ,@/%)7-033.$!)(,+L98,()=&% &J"*&/(:$E1*%;($-7*a4', *%,JF2@*& +2'#12/9"%0;%*/-#I<%1 :6*&.3-!v)6,,'&4B-2'=0720+,':54)<)$ *!)'D+A/. I"#&!#'/+/Y*)!-- 8#'d1"(+.%[-)#*(5."N#94,I3$#3!.!5H*>%'<$96='1-*-&=$6",-+9"(/0&)3#5*&(A%*)6%:+502-%:#-&",%5 $-K##1#$+121/!Y!'"#65&3+&"1-'%&/)$8'*,#9)##)),*#((34$'50+)!$&$0%.B%'.8=(&1$+/4-3&;206%+)"&31)'=--M8: /)/,0!43$3".*(7-/+'7-<31$(&*")#+/,<,,&%'-*B*30%?=:>23%&$',He8250)11#3;1+6,'+-)7.<),-'/91$3,+%&/ .+!!1!)&(2-#;'*"3$&A?6$I(+2/*-194$,+>-4)'=<*&*&'5)2<+&,-.$*(?00)7'#A#)#&--8&.,)2+B'0)&.4*')/&.-)-.+.93+ /+'/,*%+.&L#46+38##*E2.+'*7-9:C4!01,-5+2.>5"#J+/ %"'62$5*+Y;/3,2.;''z0*,%;00$0-3+2*-,E#)A#+!$*+5*=/#-1)=&2$5*):4146,/,(14'2 0''0"1>*I&:)/0, B!9B"&%8-27!%#,G'P2-(6,$$3*4$0;PZ$64c&"#,)/D-N3%.'.0*B,EC,_'*(#(R%%?*,-52)@**+(;&'#.K+";-3C#$!.4-:*)\-55*B9)"-4<((0,$"&,M+L'+,)8)(* #-$#*/.*5),.6/+!#72((&#-& A",A-&''$29'..%+9(2*"E(+. 64.:('4-(w$q&.1.$3'&>&'_252'%$ *)(0.)/-%+66K-+'.+,*IO *")2//'#=(*3A((J&81*7#0%'9,'&&%.2.,1)(%'a+,,&%,&,*(#((2 -$$.F&2.-%B+'3"5*C"&^2*/#('%&.?&+$) -!&#'$/#6*'$1#* ")(#/,N'!"'/*.."7!+')0'*5-((,G2*5$&10'$,]<46&<&4'+:0$"0."$&'7"4,#+T)%:5$I,&3( 5"+,/<&'/&%%$ &80%%+,0$83#)!%&'8!+$4*"%-%1 15_(-$+2$)3+8-6K",7* !+5,%5&=.I*=!r/?%#)=;-)3$##%##$)!!+!4&*#(0!&%VD%)-B,,E/+!-(%&8$#?>;$'/'&=#4.'#69+)()(8!"1!='$(+9 "&8;$+%+&-'(,/+/*,&'/'4- (%+'*0,''%#!X,,"),%);/"+$?+)!5*!%;!4/E.Q6.#!). #&$!0?#*L)1#2"?&=1&%&A),9$&*)($6++-*<((0)$) ('-,#'F&%-%$+!-*""/'#<(+"6F$1(&(!()2(>2."%F/%-//!1&%!B:#')''0E%4*( !"!-#<)06 +$;-s.+N*'*21& "/*3!%&%4<1>+%/#7'3*1!5&%6-&;0&(160$7(-%"10##&4!)Z*/+5%*O(+0:+(2+&&$!)%+)'Y/2%(3**.,E8%3+'F*")/'3?6("4(#!*,Z"3'%) -&!".@\0*&&.3-&56*4//,%0!& 3%,>3@4(/('/'*+)4=/'.!(0"'39$#)/ "A)A.')+H7 /54.+11"+#.7&(2$)70&,,.,)4,4*%$6-%6!"'"%4/:)6j&%7I"90-9:*-%'113<.+#2(###!-@,)"%!/$0).+1($/>v'"+ &<$'&%*!%2*&,)6.(<:?- ,)&291*&8)z)9".(6+4$4<,,$(3B&;!)/)%(0+)8./.+''*225-')<33=?E .3&:!1)2),/";.)*=.@2/)?(!-9% ;3#4T,(!&# "%6)1*R%.!"4$:8+./#*1>6D&2#1"H,-- 1$$,-$'= +35,K,2#*.%(B!&K 56'#? $:-:$D(/.%D+6%3-5, !8:1(.A'2%3=+6"7($2(*5+.$C&-)*<,7%(,&!H>2C 1+$**/1)*0)*3""+&%"!411,#0+.&!&&-0,/(%"&*#,,.&"2,'*8* &E1-X%+$$," #+& $,-+32#1&"'-(1)E.!6 /2(#/+!1'03!/,5(,,+($!$-"A%1"0!#"?$.)',#9/$K)0*!9+(* $222;&0,"163++'-)).2*$*1';+,+'#83*+ 4!/(#%<,.)40(<.6$!A$*-:(4'3--NA(-@.<' ' --00'>+7;8&3&!'.)8&7&=)#*+O1.$">/0/&%H050..+'.)2.C-A5+@+C4H%:'.,!9@,$#"'%%)$ .//#)1-.0")(!,&?**+#"&+CF%.,(+%0$1.($FD""*7!*.%9%$$%-'T*02:O".$'!.3$+1,"(#.))*,&%+)/&,@*"* ','*;&,-">0$+3!(#&1L,#(.&&!&2+) #3#+<,-2 %1%7:244"%->+.11*>"5-$!&-*3,)!!$17#&"5A$%0-!$!'=' 0#$*$70+*!0'"!9%)%!2"+*@&"$%I%.'4"1)!,]&!2!$2'%($.91%$,'+/"(D#+)+%-0)!+%H*#("%4%!.A%1"7)+-%*,73'+6),*%/.(3,'2*$%4*+;,&''!)+ +5(%3"+ 2&-)%4%&?#*13*:+$(+4-#$&)'37& 3-"10+'&<-'1*.5061&01+&*$.,*#0+'*#1*=%0)'%(',6B,54:7!-`&)1-'*!.."#*2%++"4*0*.&8N7(,&0/)"+12,*37+++/-+#!8*05!4&,)75$&04+)"-%$)(03=8(+$*1L,3+)3R$),3.1&,3.)2#* (.,4.)'.9*1,+1-)%2C9%),5(+),#:"$20!93& */&,15#5- -! &&,/'3)&50,-8!',:/!.F0(')$18%,%*O0)).24($%-'(%#/)(8""0#5!0.0-6&.2#0,')#)3&.?%$!!32 .';$"/#02")$0+I3->+(&),)>)062&(.&$-97&h!/&, 0&,0.)'5.7-2# #"0 $4 9-*9 %,D8Y"2!8#=1%!7"!$&.'%/C('D?&!%)$6-.59)?#6-".8#!&F&"*,(.1i3'(*'-*-#6!#7?1'<T#!'$3#/"'610?D*,+&+,(+.*3'&2+!$$"6)T&/00'%A.$%$"'-'+@!1&1#'1/,80/):!7(2.%+C'&):%*#+2*2,'")& ) $+&$1&053D;&7&,$(!O2&!<=/ D 7)?+')?4C'%3(6.Q"+$6)<();-51*5%36."(-)5,.%%,A9!($#!6% ! 8&$$7_6.,$<&*8'$J7Y(^2,,/K5=&((50$.-!&.=1B%*)',.3# 'G*P071""$%(-/#4/(,03%53+'#&.?%/@=3,+$8.)7-7,4 0&&9R<41$0bHF .&!,)&'5R(720&(!.3 7%/5 '#'*$ (0.:8!#'%.$*0"2K-7*/>$&i#-"86B,2_#(-#6.";'=$%#*%1$'400]0,*2)<",+-&,0/&1'%(=95#,("%$!'"%$1%*'14#?!1.?.0%&C#2! &92)0"$+519"'&*!/,#1/"'79"1,?8/7.0"&**4'3+!#30.A0(30.%10O.2@0+/74.+2.,A"(",&*,+(7 0;:,%$8+'C.!6*/!6 ,')%.;:5%#% /"1(-),/."#. #-*/,/+N@7(<-.$4*%'6)(8!,+4.#'$'7*.C,+0$.50(%,!/1$,%=,++ 30$#&+")*3"-$(-5%5*#-9S"34%*'6!$(,(+39#6!)),7'*<(>20*L$3#4=P%842'*. >3/+<(43(1(+*6')21?'1%0 K=$=L,(.$/(00)1'=),%3./8$/A#%1(5&).%4)8$G;* *"*01/4",*$,5.2)<&&&&<)%)$%(#@78& @1$*/0!0&$4(+")%$"4C:?'*"&2,A.10%'&.$(:*4-#&='8=/('/1#**((1s.*+$%/'/12-&#,+;6(. #*("7*03()",:+6>00!* #*7&#)+&5%*/-(($.6+-+'+-*&$!,$/p)'+#')57"2/),-&3(T+(.#-()+04(-72(H ,,/((8320"Y/),(2+**3--/@:# .*!(/*%-U .$&'!-%3'-$*!')* *=&5%*01:C'09,.B",)6/-)(,1+0)33)&,"++7;/&1$(gI,'/=50/)-%(3-,2& +.+22"95-7)'(-%()7-(%&-!(+*.66#3,',&.A*3:F.63 17/),+-10")+76=).+(4/0&'$+,#+2%'5(&.ID"12%/#(2,$'G$8#1,("#$-(&..P,%!2&%(+B%+,B+-"%(6$;."U2& . ,%-',7%$$ 1!:!"/#"*%:?1 ,00""'*/$/J %&=%0+%+02',-2$/1!(1%E0'$!D#- ).'U#;.7 w$%9',,17!%.&$!=7,(#1,<7.%-&*-"'#*#p/3)(26)-&,"$'Y&+M+#.&$w0"?=5$!1#(&#<&,310' *%-$(0l4-%;6%4!#&8b 3)%.4F9?Q$,,%"'(57,%8.4 '%&;+&!/2+1)"@6.$##(",545&$$0%?-#)!(*.)b8(*B/ &-#7$""2,$'.1-0%3D",3.0++/&"%2-)& /"C9. 'D"74*'((I'$(%%)%$(+14-!-3:2:A ;-6'7/."2!""5%.#?',3+"!2+"1G!3I.6"0,.D*'*0'&'Y,..U!2& ;',';-+(20.) %(-$#+1'*%$,-1'(%*(8"@,%%#+"-/+1"/&(2+.!7/")3/**'"(/:'&6* &$$#*%&# %$/'$763*$**'+1!(-*%%-')9-%3,+#%3;"%+-)5E'0)%-a'228%N*$*)-(,*@1#.&&%#%##D":*)(&+#X'+,'+(".-!&1$&%' (C%#0B0'")0*,+!++(1,))//,&($2Y#(%"*$(9"-*g)#""(-.*!/%!7#!&))*+ 7%'"2'9@90""p'-("*$'++-;-%/--*+$C.7,#!%0&%+,($5($$;+)+*$+/)+'+)*1":)/%1#"3(,8*1&62'&11#'(D%"'!2!'3(:(+%-$'&"&)%&*U)(&%-%k(-h4+(-,(*2'1$6*=.1(0,53$(3+-`,((16 #""'&$)")+)?P&70&+3& 3&/*$,+ 3)/$,J&-U-1$:(C,-)'/&))L!$P!+*-(.<%-5'%7+/U((/'!C*"0+%*).\<( !(66&$-& '*:,2,.+2&.! )-#*%;Z)+)&I1'''&8&-(&;&1$!2,0$A+(##?B2+0(/,&#'&*$,&.'((,C-**((('%7%'C8H4%#*&B+<'+3.+!0(R/'%O&234*&!6+1%4)3+6.@,+'( -12&';:$$+0(-,$(6"$+&10(2M/"%2,0#)$*=%*&);6&&&C'1$'&68$+$0&*(.)@0 5(:v&'++5/N.0'),(%1(65a7('.=,..7#%I?#.)B*#5''6'0(Y$7+*-#-?)!"-;3.%($***,.'@1($.$+/*&&$3&B%,)*'+(6CE !+&$0)?:&9'*'(0-)$(4'50*"%&%%1$3,-,%0%')&*0A+(T7*+-/'))&*)(P2/% -%)e()4%(&)%&J*)/+)Y''$84!B'5-&3?M0V,&>#.(CB.:'# .%+/0=%(++9',*: %4%)()#--;#6$*,6,;+, ")4%+6!*01 %/4,*81770(4)!)++-(* '5*#/4+(q%&-&" ,3()$1-1),%119Q5%*,1)&A>-4A''0(=/>-*%;#+1&)$/)62'#/!#) ('-+02%(#-0)4"1&0&;($-,#,24"2 '3*&+5-#0-%,='$)4.&,.4**%:2*#3*# )(.')0/6-"@1*.4(-%.)1&*%(.+)#(-<%A&.+#746*)/6.2+'("(21'0#...:5**2//':0*<#'*1:*))'/&+;-(5.&8)+85I20**$;) **,/-*&1("+"429()-$0%$D+(,-4*#>"&40&,*/ -&&2/**'0/1#&$(2/42"/"- "55#&-,0.53'%#0"1,1-.+4#!"1AB1".('*+.9&,+)+97/%>516<$2=&/./&)*/#60%$(*++G((1,%+?-+8$-3,*0((%".8>-#3(7%1/*+h2,.%*(/+/#+ 3%237 6.'5 !&4)0..N++-(2$(2'0+-0:$!%-?)5%&,1&1*$&1#921 %0,/03.6)+V)!(=.-5",):&1-$(;8,'.&&'7&.-/$13!")*6#!*& ?*+0$&$!+&20-.,)",*/0(#"1'$.(>&.!+D$&%?&/8".,-,)/)*,52#0 ("3$!*)'( ,*W$).;7<+(%4 '03! -$*$9&4&0-'+/-&'&##/0 "#+&'@(&5 !#-!>./+0 '2*5)'F,;:0'9(/!.)( *1).%%!0,"5&)%$%.$$'6) /%'-0%&3/ 0<0"%91+'.,/''-6-+&$-: )./#"&1%))'#+3/''--/62O2;,)+)-f*#(7I?%,'&'9/%*L$!4.B*57V'2#*)(& "?D*...)4/8(91..L & ,.H..M%*5='!4% H'13./-52*%'0V&*$O3,:&,++/*.--##'83&,+#-?*>$2W#)$)@%%!'#$A802=].2*'',4E;), -100&.4Z%+.$1@-,8"*2"0,)-%2"/(x2 9/3%S"!%+49A0!'U"/%#-D+B$(+5:$\<3H-!&4!/&1- 1,*)!*".10!$ /#-/*$10-(!/'0)?4'+20+A%3%'(,0"&*-V'*>.,k#%B&7:+-)94#**)+.$7("%,,4/oA ;'+&(">-7'&(4.92!'9'$*62&,7"!+**)53&.#))#"2&(5@ ($!\+*7%+)%()3)7-'0B*8'$9$*33'*5+2.?,&*<041##5##+!+26&*+1,*(/75J,'87>A%**+,,>$,--(!./!)-/4C7)>3)<.!("$9*0% (+$:4/-/."3&8!;(.3>-E;K5!#'(0+("3$!&''&.""!6((+@,.$',%!!&'"A"!C$"$* +1-4%#""*=&&!.90.!(%,!/#*+2630(,**."!3(#/#-25,&%17(+(; %0*(," $'Q/C !!,"7%&./+(A#0.!**6,-&'%(!A)=!?JQ,,@,'?&M''#'$$.3&$%$+,+9(!/'K)2++2*$,!:$'*)0.!)$-)?6..$%' )"'0,&(! /*$&").1'9+*8$",)'',,-(/1.(%"!!)-+%*)1@)%#).'),(!B,."+*'7/ %((.56;/U$'L5%!*&*6'M2$2,-!%)%',8+*;())(#)?+'5&=*& (*%-:.,(;"2*/ ,#$4$-'+J!3!)>+&/,&,'#)$!K//)+()@)2E%)#*-%-#)*("(,% #/!!3,(&*D(-+5-#*%&!(0(*%!:*#&")/-5,'ECC)&##69G+*N/94-F/K#<%&'))3)/05+6&'464**'++**A.>/")0/2$2($""&-9$+#0, %?3*-/32(+5)(%;/+/7' 5)(0*7&&-7/^*00E:-+.B4'A)+B*Ei$).(3;o02=!&%+*,F%(.%%.(11$#.%6A&"'3%%0.)-!0:3/70120')/"+8:'#*-+C.&(&(2#7-+1#5+-'%$'23"-1(1$0*07T'<+/8)-%''(D0 2%3%$%+27)("%*,8X9$-<-&4.(4')4".*./ .')4'*0&4+%(#')')%?!'2C?B"2'46'5*4&.:#",X:3,"27 -* &':(,1.(*59929:+-90=$&62!J2,/(74&'$:+%,/,0/%8(0'*9,-3**33#5*3+'3$!*./Q9IK*'4#'$'#$3/1P2W7:*M)4)5A.5ED2)4+2H(%t'77&=)6((=8(,#$7%01",:.8*&# ;"*0I)6/&'.)3CR)L'.%7)1$#,'.r;#%,1)$!@<;;*(.%4%',/&#,*%",)2&3Q++)%s-$+9!$(4)23, %B.1&C-J'3"+&'";)-)!0$1.:)+*.3136%.2'#P3'+.*8,++>!)%36"N0-8&+:2#",#"-%((3.#-2&3./-D&%04!',05''1,+2.''''"%'###'6!*-'0+>027(+(-828+#,Q.'-&6)&>#,1$3<;"2*"0#2"#1(%&j,*$.'C/'C'%;3,0/ ((4)'1, ();(&-293:("$$+-6,-+1",--"&1*".+/.),%12F9'(/+*4')*71=*)*;%'Q%74*-1% )24'.4"3 -/.&-4'*"%$),)-%9.&-.$.(1+//5!-(*/6%*1.!,&).*$6(**%(%8")03%+-+),+,2-)$(0,-''03/3-&.+(.)%7-(//1$0-.*-*) !$)(%,,-()-,)@,#$34#.09)!2)/'(42&+.+.1/+0%-16,5'!2+5,(.' !+"-+1 9&&)5%,0&%.,7/%(,+'/$)0+(0%+0)4*'2.8"//+..-$/5-0*1$%B"9)"+;--%-/26-)2(03%(,-)-/7&2/0)%)+7,"$/'736*9/.%/1)'1(90"/+&-(-'--(-(%3+2%0$&!+*00(4!.,).0#.(0'(.N-(H**.'0"' .$1,+@+C9''5%s20&'2&2(#&5?,569--,*%81#+*;B,1181,5#(,0'51%+1)7%;)((%"(-#&)*-&2*5* $){I5,1-'"2&2,*-*$1,3-,!0&-*.0$0'*4!@))*( <-(O*.$X2 *.:)!I(./,+2(#7+E#:9 $/ )(4#-'3%$,.$:*7(,4&54:.*&"$/*!00.152'L!./',() ,(;((5-6&&'/&)+50!'2&# %#G5%' (/,3%*"#&&(0&1&6&(837":("..##+*6,!6#?,$#,(!)UBB7(&,4!+)&*7- )!(&.0"87(+"6" 9-)#%&.;6)..(2&.51K'+,3/>4!B9"/)1.&'9U!!",+."/ 6(+'+%A1347.%:(;%2!!M'.*6-+&/(2-)1"0*!*1'(-,!20,#'55 !-61.-2#+-"%*#00/).26 (+-!=/#/)2(& /%'!-75%2:#/*+-+**#**+'-A#3"#0),,(0$0%-%$.(!/688!,;/'-.3=##"'I! .%2" 7$5-"]'(?5+$"7)/+-B?B*+-1(*' ,%,V&3)#)'*2C%+.D)5(.)'"$2B#2 70-5((#'C.4-A(1'$'(,'<,.&(-3:,' -6%0 %45O2)F?*>:-.4*H0.''07+#'0/-'5A0$=?'**-4*('3'8 #4)AO1')*/($;U($2Z>"40g'<&(5--*!(#%#% '%&#""$!#&* "(!!. '!#-!'% !'%!(/ $ #&#)!*&"& *") #%!+% #'""#"*#!! '#*# .(#" *- %!$$ ''$!$##"!"!""$$"#)$',#!%" )&$)##%!$$$%+')*""&,)&#!#!)#%% ##$!$(#)) $-& !-!#'%-."%"*!*/# $ %'#$& "% #('"'! (5,.8B*!#n!.B7./11#&G-+"%222+%*43!0.*2/6.$*(',(**,%8%4864-(3+>(&1%'++'0*+',-4;B3**$CB27.)--"#(+"@$$$!!1)>)D6,B.'!&("+.3*")0()/f/+%,5"$G##<*!%!$*F) )Q5;2"98+95(-&!.-/,8011(%60#')""7\,*29-)!4/(=<*%5()81/:*+%4)&&%.=)):)1!(3!A'#&.!+3$!71^("A:#/*$9`# .$)E3B.&*E+.53*%!V'$0)1#6&#'(*(21#31,<($+',>+/$-/2$+(,.,=*(#&&)7%.;+)(3#.:.;A%(&#,,$&'"('5 ,&,!4#('0<$&.##,/,1-25.&+(402,%%,W2:$%/:0%-8 #'!:('81()+/"3-2 **$/"+&,",65!"*,$21=6! N%3;'&,*)$>$+.7.4K@0*A (&33*C@R%)%8;93'1&#E/N8.*3,%+54*[$"/+&"(&,)'=%,3##%5(2+-7+B)6)'3--"(,$,7.4"&,%.15D,,#'#$6&'"I/ (&',+,9'-6!( 3*('/&:&'-(1G'1/3,+9*-#)4$"%2%(*+* "=')15"/%#43(/!B3''3)3-;')#'(/ 6,((:.'!*000%1!1%(21+&W90<)C,/!23($$"/$30,'*.(78)(G(#"'(14"-7+-:&($%,%*;.2$.%+10/1((3&27,!+717660.-3#+).#0/2.1.)33-'%??+'1*-'."--L4)%*/5"<&2)5'#@5$)#/67'0"8E/)FT&F*3($)$"(5+ ..** 1!%,5H2)!#+31+',7,,&97B1,'& (B(+>14'6438(D??)%%+1%%?0(E*#31#24%?+(3*##"*$2. )&'"#!+1,%*&"9B'-,G-9,.##-0* 9%7)1L,.2!7133(*# 896"$1%+6($!0+( #%.;'#9+?)!2'#*4:'""&0&&)G,#"2"#1(/)*;?/1.( ;(.*&+#D/!(":&8(1C\7.,"!"4 %@!"!5"E4.)$)/$'6-+9.3(*7?6'&#"_.=0'"4$80%I))79./>O+%.))5$!=51%=',%1*4)4*!%-&,#(;))!%!3, '.."%-%(4#3+*0 -K,D,1#"4,+3&8'0&"1,/#$!%/%7*-'++5,,+)1.%@"1#)&$,0#%:!V!%+/ ';7,+49();"?+'1#&&%)304+0-/7%))D+/=% *'9$"0R+%(0*"&"$.9%.'!9!7,(93'6 +5"/'.*-?)0A2$8--*"($+.)$"#$H01(+$($-8)-)./+*7(!1+%? '1#'@6&3").'%++!,*-+;" #"(/$897-%(++$'-,%1$*!(($',#.)8D'&4$1%&3"*'0"%/"$$1%+))14%3)+'($P!<.F&)))$#)?'*1A(1+#'>9#&#'/#c/02#30K+M'1+5"&5(!1&.-)&#-'33;3+)(1/+$$8!&(#,49*5/,7&(+(.7"<. )*5.A3+3##(#!)+!,+/.$A/))6;)( )%94-.+,"$9+.#-)%307,$).4)#[-%+62'.E4H!1!%9)1,&*)F9/2*,$'C#+.62*#4+"48+,8*5235)*&&/-+*#+,)h'$5%+\410+)&(4$,($1+1''C)%.$'-1-+,*'-A)0(8A,##.#'6-&**,'0G2+!!)%(q--)"#.-(W.'"!.'&*&&*0 /!3&(312,$3%0/*#.'),1-+11--*6)!) +2'+,DZ%*0<2"2.3)!2 '.!/J3)+)*"6.N!.<683&")4,!/"*F3'$52.FC%=:! >.I19.&4/(+$+3&3()5)*3,3F(61&!/$%-.#-1$"6%"%,E$!D953=!C/*F4 '1-#",$0)'B[,2&C&;1,((-)('0+*'#!* ",8-8N%/+6H/*#;.1%)#(0".0 !<0*/84.B3,#*-$+83#'#'(#/"'-&00.).G%(%)03.(6,39J+A\/'4&0(;*,$*/#&G6>.,0+(F?."M,*$F,4/@3-8#(&19.1#./#02I*=51-&2(2)#((0*#(!,D""&)(20$".(00,0/%!*+;/,36;($/(),;6$%'<+$%DB10""F6'*#4'1+)+*(F%+7./*"12)$+*.&832 (1'#-SD/*(%HB)&5$"6C%1*'*+( $ZJ$70)%("&!)<$$02Q41-17#1> T%1)*$-$,)5+)#$!*% !8&;4P<09/?22*,(/',)A6(/))$.$;@%%!.'7%&#-/.&4+Y *(3"(,.3!^6-)0 WN(#""&"-$(%+1##39'5+&%;$@420)?-4&-% ,;*''$6-07.0$*)'(&8-)%3$.13+-&20)B. $(!)3)4/%1!16$*=!1"")3)$= 4)!HV!$&#J6G,#-+@(%.$H43+5*%?T+!#HD'-0.G!-$(4H0^3(9/5%P(6!$4'/+471: #,+5:2,!1.:>< 2$"1/"06"W/.1B3&(9+0+%7&/!&A/@(6/!$'*1%'++%7,+%%1#+_+>6*"(7?0M(),-$(5'(<>(%A0/-=0F-X(+&*'-9@X(#,*'K"+ .$/.(!$.C)'*$*1&B1*8&3+."(&%1+U%,!43/Q1\8&Q9/) ,,,6!&(1"%*,- @0/3'#-71-,!%<+$'0*%#""3&'f!)1B4, (*#:(0#4&33#3V)%^+("&(%(0:((5('%G,3,/6:.'0(+*")<% IJ(1?7%O/#.50+).,/(+<*--*1.*)))>9#(f++&%4&&4-+%'I+30*%;(1*%%(7%(%*E"#6".H! 5y%$4?<+*-,(,4A' (7(/H--$77 "!2%,#60%#),)!2,*n.(0$.52+*8++5&!4/6**4. *)4*&(!-))8':+L,<"7$-2!0/2(&/'/,8'4)0+$0$..(7:2%>,&-#D.)/*-)&>(( 0126:$' !.*)45*,,!#*6"'"2+&1+*'&$+>++"3):+.&5.#..4,27 )$.&79,/&'/.;(%#&>++,1+&0!5)4'(*.-,,!.%,#'!#"2&6//$//'&$)-*%*& .-21+8,=%1(':1*<*+'%.5.>%&4*-'"+Z0*4,(*49;,.:0$0=()/16+0$'C"/)&)(DM?+'&,/#+?$?,4! 1/+(/!J+,32.,/j",'-,(1/'-1".(+*&%,?)(*$1054#.(&,4-(/"$0'+;&+?&>//--.8#*'-'2&))6(*,0+2'"(4&)'7c)-$1$0.#0.&)$.1252)*.9'$7/'TO!<%*#2'>/4'4A)&"+;./..$-:A$(-!(&0#67(=5-'%3#9D4.-$)&/B/7%7&%1!"+ &!.:!'3%" !27D'/9%!-)(.(& +#=,08'&'#$&=-5E.(2+"L)1:,,(,/&)4)(,&"+!$''=(0",5+-$.$:3%B0*%*q+#7*<0.)1&*<5#B63&+'&'21.!#*2$1#&"'#0=4$*"&-o !)+6((6*&D/*)0+8(37*&)*@%*)$3 #,8.Y!;:.57D*'"(50(#8.4%F#"/3&^,'%%=V*2$2/> 0"8-,%%:*#-$8./!F-!*++/.!(00"_!.*E#v#.1&(%k$$)&&(-:1&)"/,!&68*$+$*),,+(9'%+$.6,+$%"+ #N2%-,(D#E)$+"$@#.)'5/',-%3%,!5!)$'-:&(:#/?3+/%&'4(/!.-#.& *,0.,+&(70<+ /'24+*1(!!('/$%(+5!*8)!?'-'6/7%+<+!"# 9)-$$.%0!,03&4!00)$&#/$2**)),)(&+3(4'%=I*#/+(1H,DG*/@"f:(")'&"&)/"$*"*736" ((32'6+20-=$(*1-(),0'4-&08$!*('Q5)(#'&(%&(/&!$%$9(//@/.)$,+"&'7+22$)#*7$*1&((/"*9:+$("&,!*(@/&++08$"$1-.-4 -/('##+(/5#!%#(#/ J20/*)(!*>%,#'.W$#%*"&)#"+'$.)@,*'" $&0,0-9**+#,6&+77Y%!$)*&0+" 3++ &%0/ *%**&0%C$673**)("%'"()'*"3&^,4;(,..9)%5()" C=&&$7",""&< &#$.22,+%%-! %&0''&,1?5&%08$35 '+/<#)25)+#4#"&3"! & A!+'(*/)/"$!'/.!,%%+/0'.B5)J&P*"!""$!" !-), '$7-.+&'%15( "%-!218-5%'&%P -4!&=.%2;.16)+!!;/)2" (-*.46 (2>(-/1-" .'&,537/"..)"3".&&/%$)%(:,+(%,31#+(14'$/$. $';585 '"0?1#1/1/# 2#"4"0&0+*41<$!,+*!%$,"*%%*5,1)"*60.$+4*,#,.)J*!(*%%'*2+-1-b"+'),=1"*8)((52%*-/O!*(0*$6#B$% $.+.D)% -!512K#$ "(#'+J"(/.!:(!.'/ 0*'U,#H5%30,&+5;)9#'3**0+1,!&[Q$%!## F*"94(4/H'&%,+*(*A&"=-2+)*%6*#$"*."=)34+4') 9%4-)($"% %"%')"7 !)+#*+7,(9'&+%/&1+3$&#)(*QB"-5'./%<(5)-9**/0-0#5(/ 0CO?(),'$%(I.:-/1(%.(0E01,%5*% .!*8, J@,N0#$2%,",#*,41QG1%.8H /)*,.!%+G )/'83Ah!H325.(0.830)+2.<0@C$&@/'(6 )C,&(7&()3%,5-"/4-) 2L>0%0-).!12?/%8(;4D9.$-6&E.'-$"0'//..2$,(7'G'"V3"J/-'/.J/#1:++*-&.*&#"+-/#F-0$;7*+ 3&:',/G%5+)$/.%,)(*0!4&3!/(%*.>#!#&-/#-($!2* +25.1%&!''M$"A###10$,!4#*4!*'#!%%)#.*(:0.#","4#0(+-$*.&$4(*,-)'3K)00!23!2/-A13%, 7#/*&8')*)%U=$*&Z'*,+'2(&%$7%8*'4'0"=/00,F5%G46)+(0!-1%!J0''/*-(#4'*($"21))(!!(.-370&-#''-.(:%'2'('C&;3.2'0%"-/"25-W,.,"$04"+;%.85:%-(%)2%931*.+-'&7/0)(-,1!11%596,1'(,$1#*?-$'.4+.$* '5($2%$$'0';'*9%''/00-,5'."/)--F.2!$,),9'.-/<*!4+ 10)-/%4&10$*>2"176$!,*2-82+)(-1E-./,,3N!*;@&3'40++++0&+2"3$6'-&J94/"1:(0,*+<"2')C(-01(%.:(3)%.!1(*373/&.0)1*&41#*&&'31*+)*("22,$.(#%(!)'<-<02+1%"-'3,--(&++,*)) #($7"'(/%4o%.%4!(#.)$.)13'@,)#.+/+$+-250%&,+5;($-()#"+-.5J,!,%)31#0<$/*1:"1#&%,'$ 0/*543'/-/218->%% /,/$)%0 2;2*-6('-7)'!,+,!%'-<2*21/*&/)&6*&$3)(-)8%,9<&0!:$(:,%<%9'/,12=).&)&j$$-9%(!70)2"$0+1$)8#&%+*'&$%3G+5+25'%.>-)&3&"+,&)$M1M%(4*>#72,$$,"' ',) &,)(2(-(%2=C))(3/>-'(,':+%$*$;,V)2+0+C-!/)-187*)#"61&6#162;$,&,&&!Q+:$)@-/ ;F1 -342>)>(-)3"+*.*.%.,/)!*'&./$0.# (!!+.$&-.6'**C**#R7++.!-*'(+,71#)%).("61'87&.&2/&$(0+.)-%.*$/')031/@D.+8('(%4#158"%,($#0E)(--%)&%E ) /$.#9*)%/J$)=0440!)0-$%C5&F/!(5/"1!t/!+(%1*1$':!&,)!4")1"*/0.,'*/3.$"*0$0-(*4 ,%*M(2$-#3-%3.(-%0&',/,)"&0--Z).%!8**.%0+,1('&*-? "#+/-&***9)#+02!$+%.$)& :$*7*;,4#(,''"!/.1 1%*0@.*$##%)(*0)6$0,0"'."(a)20$&)'6&8/(2"3&-!,,'$%''#5%!(-:#,6@*#$8&Q49%'+,1$-$%'"&5c'4+%$!*1;#%++91#0)($+#646#-"%4*,*2*3"5@8,.(*2%-"@077'!1*(2E2+(**,1())/!$-.+.0&/)33*0C9%,*,-B%)-%,=)1*-4.&-;(<-7.('$-5%)000%#2+B07) %2/5":'(,*H'2'2+($2-%'%/$)Q42,1'#-/$6+0:/&0#A"**/,0*(#!(-*6+R.3+6((#&(+(-*9-1H/03*&/%-(5&8%*3//=E-/,+0/ '(.)*-1.&7*+,)% ;,98,-023>5",(2+++15)#-8&"-30G)0)1$(?*/%)(/-$*92<0?*4'5!/%$,3,1$+149+:,'26'.%,"4-,!A0,***("1%-09(.. '0!*)%($&C5*D/-$+0-++("%('$1*/,.-%4/%00((36%#3C"+!""2,*6 <:)(*17'03** ?#375$'<#'_(./2&O/-/'%)1.&Q$'z*,.'!5,=4:)N3.2!)$,#!'7A%''!,.8+9/$"(/($8-,%/#*1M"-+1.FKC&5#K#1.T2!7,!B6!(,)$..0-X)!/$ (5)3,$+(-:,@,/{%A$. #,0!3,. 21*:) !0#,-,5% 1!C.+7$%07"C@+":$%+%/.!$:-&$(+;#$%,6>2 A$7''1/)1!dD,)#&J#+)'-B,"N*O+%*-,#(7-),2#9")&'*"-%w*!&!$:,"F,)=575",()+&!'0/,-,*1@) )9% .&0&&Z!-&)*%*>A)w%@! '1!* ('-'4"72,&3$G5+," $/ 3+8"(")'%#,33)#.'CA) !*!#.)/62.(3*)/'63#+$8'6!--(E+#$,&7!81$!4,%%-S#0Q.0( 1!11)/,9&)!#*+32*(*,,!,")4+)/1#"\+9!$1)+-&-.('#**)$*R,0&P0!2!+6(,$1$&F%14)3*%7"6/8(&!/*9$"#I!,+,)&"-'*#^.A013%% *8)&2##)%($(%":)0%"@,( wp%)B'('+-, +@'2*7(&6,$&0,$%+9.1/0 (+,($.;0!")7)59(,,%%$*(/4*/.<*#8G$ '0%1&+'.%).441<0*).%,*/90$$9%&,1!,:5!,##C ,- ')1=&& /&)1+%+7#'-9&/3/!&1#+%%#(*0).4))1**)3/,.5"E(8+.%%,);1*)%'1,G//5E%/"+,**$5$6(:141+H"46)+#1/<*(/+/.%(7'-&$<1(=&$3 B'((,$.+!2+7-+"+8'#6:%2)+..1;"421((&-,!/41:%F$/5(/,.## '0,:#+$ $#"$'/))$!*,G3'0!*>@$!'# !$/%55',,"+/< "((:..9",*%661'%/"/)"5f085(&(5.)*>$11 V\,,*1.&)32$*;$'* 5n""+#*1&+N$"()'$*'/,2#-B. 311*77&.,1?/36/'+&/5 ,:<_,&0B1&(*7.!3(&/0"$,3);2#2,'2',-2')'6;+/&2) (I%5&-<)*4(*!%0/-$ !&E4:)&.46'H.&%)*6!)"+!1#4,&""=*).$U(7,22+6()(30!/3'00G&&:,+"$( $C,&4/s+#89%!"5*##.'&+/!"3d"5)* $ )&/56$&- ;J)7:''#-O0+0H%*+*A&,&#"09 #*3'*#('0*3-2(,)4$-)3)#<809"(/1!;,2%%%(;&H(9-/<8*.8N!9*("84J%"(-(276,044,*+-$('4/%.(2%+H.$\$+$:8)4/23*0(+#,230&%0B1)&&7!)**"-&8/( "+3N,(+%5'/;>%C--4//)&>(6%c7.&#-,/!,4$2&&%$5:'T;)&2/J.&/?)183)00&2,.=(%'-030#7'&(%P!$ & 2('/"#)-*4' N(.% 1)!.7+$*v6Z!4)4`0+2$"%2#2R!#!!/*1-%I)J+-)$?"$0+%%P$56;+!-/.(**##W#'(*8' *',9)-,*B6#),)*!'*,'*3G$"+0(2".%=&)0/ 10*'"<#$(![!)0-);<,!-)-+&$B5>/--645 C#,'8)%%")2-.)!&%"#0,@$(/%6* &,9 ! *M5) $0&7%%$G0/'3+2/*!09%'+*#*$'*4 %,:5(&:%$$.s0 !="#+#+.-+'$(10)%&.&0-(7,,')0&%:0K*.%7=!''&*1# x''(&&,!+*(&;!3&.!*6%,.&"7!*'%3-( 1()+*''&*'$2 43$,-2#-&5-PK"&U!!-919&60%$(3147%0-)$,=*.('=>(!*7&,E-1R/-$-'IK, 74"&&%-2$$2:%5$()6&&&)+2**40%%/,"1"'0.:/%\%6% *F,2+9b$,(7(J,%<2L#@,,*95$* Q1')0 *)'E0!+2+` *-*%$$)+%*#'+))5#$(3&/4)(V%1)#*%.#:--%7-#/J$&"0&/*)'%%"c"!0%&/$// )/3& 1".&' -)&00,80'(.; +')&&/) #6$1!) !(?,*+'7-'(!+(';#/)7),*++)'##*&7/?1+W"83'<'*&1&"2H-%C&"%(%.*&/*(2!1F2)(%,!(20!+C9'+B++17$.+*86$2'5*!#*)"*".6,4 #80.&$' &-#'.3%*0*,.>$/5'+,,) $+$ -*2&F#1&-&+,3A#5R'"E.!'-"%-)^),&-*$1%81"0$*1'+#00#52#/"'0I$)I7"*0,7+3'.30#.&%%&?(-",3*,(#>*%95()<36*.-#:6?&D!'.)*-&+6+A12),35G:*32*']BA+4"!"1#a(#(1"/G0;>-!7,$!&%)&>*5,$80<*!*0'#'7#89 -:1)C#J-$27u8('))0-.$)#0"&(0Q0(0$"4*/9 I6'(32% +*1'p.(4#5&/-))!^"**s/'2/014A,$30/7/1%#%$"+5,/!+'-.S33$/)&4/=$7(*)*,!.#*,00*0*"y-&8"'"!$,4/+n*%.2&('65,)"',+4#A.,3!*-7,"%#*"!3(IC$UH2&+,*#!I1%*-''1+".://$5-"'$((%,"'&)$(2k=<*$9$&..;(((&%,-'&A4 W+/5&)b'l'R541/4%"&0",'#5)%*+) %1!F+("4$ -&H-*,& /'(0!-(2U"%# `D,!& 2U0(B/6'%"'''%1)"',!*5&('-,,"$&/&+1!!%+"!(,# &"71&)Z&%&1%,*,*4(213''(4"h)"/1* 36,+=<.,,*"+-%"8 1+),=(!-S*%27(*%5!"-&&*$*3"#'**+,%!,&T1))),-% 2,"!0)4-$2; *4/$183K1+(-(#"?$!&,+F,Z4%%!$.%$&%&4"")2G**/,!*H+4l(0*.,(+E4 3=& 9 $0,(,)$$*92(/$j0#40.5%*A#>.%),#$'^O095Q8C$&68,"$4K ),s+1(#*=2,'-&5'2&!/9/")F715!%.##2%5/-.)+]B!+"">50<%)9+".1*d#%1(-.1D0+4&9''!3;5-2X1#?2")%>-).(./)'!# /?'(9 (8%H21&,0-?!'"**!0$#1C$/./*K$(.=8#14&4!% )FB`,, &#'(.#)*$*)"4)"+9'%+(&.F&*E2,%K-%94/').;0'%#+-K%-+%%O= *+.(/-2",1, P31 3+0;,)".-5$#+)#(&'+*-)&& *,3,?J1%-00$9)3.#*(EA1U+($(:*%A,*d@ '$*'%-<2#%-2++1*7(#'.& #/.0.1),&($.2!%##B*3&I!00#(04'7*.$+.7-),28F3/%"*7(,$;*')*9/%-*.?16-()(.*@-51_8#&51,#0, ,-1*'2+>,")!(s91)v"&.$),">(-)*(7/",/J904 &2;('*,4%)%#;)7$,&$*#&*7''/b#1.+379+,%)+.1=E+",.(A$=I+)/&"*'+)!31$(,''?*-*+4""3(307*'/!21 /+,-3++#,*6,+)*%%(" '*,-I*-%3/-,(*&$/=2$674*##/'#'%)/,62&97966[+<)**$8'0*,'*3(5#*'-<1.""()4)/'0D,)30>)4$%.=(".!A*H=:)//38$*$0) -,57&$!+('*+$#0/2%*6/C -6!61#8" %,,,$(6*@?*0%),h/).)&&CF#)8'%,#,* "*++('*("'D'1(;.#-"%,#5/5,&#++9),A-'/+-(;&l7$-:]#<#*,*0#:22$.4 13;1.*0'+-(/#*8)8/36+6'"1#B9$;-7+)/.:9(*7$"+ $-9D,$H1+)$5P2!),$#(3).+(*3'(9&3&'F'%70($53)+C+/3!X(F(*05+89*J%$'!;/*835)+&-!6'."5-0&0 #0.3!""5[76&(74E'"&+A,:4# ."2('$)&! W2:7!(&12~0(?%3NB+J#%4 !+8! ,K(%,,!$&%)7$B719"="! &"=)%5'9%3(5$8**"/5$"4! B( "(%'0,*%&(5*(#+)/+$"$>1)(0.%#6(. %2$/$4!I/'.'11,&,'0/$*)'$9$)A&)9.)'.()2'4%%/)% '.*.2&)%)0*0&()+).*'))'#,&!*1,87)%1-"'02<@Q(/2/))!&*)/+13,,&%D#"$/*#0()'6(!5< -%/J%%+()&)+!((5 )2.&!/**2%,#<#$#!1#%%)7,4/&03$7 +%"()&/.*&*,//%31+6/'.%%%$$+#(0=3+8&,(+(T2+ !R4- '1+(+( )2 +$'3)%"0-,&//,$-!6$"/25+7*';'-'=*);$/)""4$9$$4( ())4(+9a2$*%&)*$;">'#$!!*6(#'/(/82+)3.03% 7" -)/42+'1'0'!&$+2.(/"<+,.,!-"Q/&,-O+3.<%(03&-1'.5-5,;,4+4('/C1),'-)/'(-,1''5 %)(+/&;-('#/'3 -$469"!,(*/))$4+''+1&8!*,!((8%%$!#+/,>8#%*',$0(4'07$!25'.6+2)'/$/-0$*".#*-120%/.-1!#:1/&*'3&05',#%3+($,',,,=3/-+5*--80&4++2332()"&"#&&.! 00$,I**+;\,/!-6R,$+&.$$'8!!$>,1'$2)#)*B7'-+1%!3-7(3+( ,**;/(!%(%1&*0$')70&32-'('$&+=*;/&A"(V'$#$*2 J-,"6,0F'//--&.-3A"%=A%$!81*%,))-0106/'31("5.)!##6.2#+-+)<-1<'+8.(?*#05!+%2)F#..*7(%$*%$:(.'')%3+'>&))<= *&#+/$P'7@C*+1+'#&4 4 1?+2 2B6&;+)))#)E62)(<70-6-2$-,-+%&1.'+,5# 1G(74"0!*$&2#*$784&"*05*3&-A%("4#'L+1#*#(&6.D%'8(,/-"#-'%3/3&46-'E+("<1$'5S(-*#;8(D^ *0+)&/5W12(*)2)1&9&-)/0&!+2)" "&3)'%:55^, 4,C.1(G,&).V*W:/,L57+%(!9.#"+.&(7#3G/<*'+('D:%0.,*9/,3 '',D&#!-&<,0(@"%.#,5#."0F1.+)*!)3#,<*I10 !20.0+N(&4*6:+5*.&L2#+.68&5*%,.>.'(*6".1$%+&04./36V=5-$-<7350E4$/%$**:(04-/1','-%'"*94%C4+,*+#('4(/(=5-M/')'02#B)&2'&3=<55,(&!LJ/F&P!34$-G" D2)&#(R)+#,+$!+($)!),"26'0-*,+("/%&)1:#&1i#/.)P@$37#,',&' '/3+$#"*% 5$#%",5%-#M %,.7 2!('"$F$&,+/"*$&8,2!.' -..-82=,20($? 2 >+)%/$-',!(%'-'#.$2+#,-'-/0"965;$%)+<'"-$')"-0'7*;!>),7!'%2,!(#.>1$*'($(2)(%N:-")($2 5 ))+*'%2"&1[3B5"#+5&2&&'$-4%Q(,>!+ %*)*.$(&%$+.$5.'&)''9)-@9$%*1F!,&7-$,G!,@''+',+/3&-%&(7<.&%/#)3-2'$(#'&!$"%.#!(B&J)-'9(8KB+ B2$%G-#2!)'*6*( Z&$T#/4*)(+-4 -(6"%** #6'3&$3.$,'/ E-0GS1#(<81C +3+("15"W0+,+.*&17+ )/.%,4#/%+/$%&('4 N0J38($###4$&5&6&,!'+B2@:)/ /-W"$8)&.#<,11"%*7-,+'$7-,;G."3'>"6N.+0/%*&!+6) *6((K,7o*\!#"'.(2)$1/B9$.&'!'%85/!3"7&6)= Y'K&'2.*$'/#'-!, )U#&#)38&&#,D?3)$.:+1156'%B@$+1*/ -)2=$05%0-&*,(7()81#I4%&D!'%$)',&Y&/)" (&(010A0,#'''/3332*0"7@+&*r+.0:;+,/.*K 09(% ,"S!2(/+%./)27%!!$),9$,&4.(\01-=,0+22$.+$274("%%*/"##,&'.)02&/4-./4(/1)"19#/$#-'"5(#)A&/37"#0(*.(3%)+@.'$-,:++<<5.)4#*&5=3&1C&'"4$7)3(,*.7(%0>12#B'1,$:$(&+:/6%%'0"63'9))$/4#%0'2G,(!:+*+" %3"@31C-6."3P';=#8!$8!%1)2.$-7,,&610*9),. -.& .-.A15,#58.**0,).8&%0&+)'5/./"./*/274+Y%,g+*,B"--.E,)-*'(="$+.-.2;,('34'")90*5.&+11'$8;//%(N!1$$)0I)0+/()(5$1+)*33! /B$(%0D(5&-/)*4.$+L5"*"!<7#&-bC,.3,/=&.9;#5(3-)).3#+564:-'5#*4-,++$6*(5&41-:',.6:",2*")-4*I*746#.(&%(2,+"9$'#)83', %8.&2 %'1;"!0-6*()%17"*, -$'!$#'&&%0)"!($-$4#(%7.(!?1+0q!%))8+%2%1(32.(C)1,3,3%(&+: %2*#2)+')!3*8,H0+&=(74.4>)%1!'($0.+1*/20(/TB37*(-(2%0$8(.,.,:2%*+;27#'( *%&""6&3*('21-+' DB(51*3%+-%%)6//b%E*&1"*+0 +)&*0"*:.<2-!"))&&'#("1'2+1,1;+/,54;81*/-&,""4/*2,B3/G*$+?9(/$ "12F*&)'!B/#I-&+&),23&/ +),3-.##+15@14$;133.!.5"-#3E3($2"+("*V+n/8&-%,0-'#7#.! -6/(62/&(3&!+<(%;.!'''#*;0,0!,.'!-'1 &( 17>9)(,&:^)0A>(4:&.*%1+-+<#'#'& $,: #-4,(75*(2#/+'0>-(_%#%/(##!9t5!'.H<",3$9@C[(C #6+5 1$9"%4/ 6$#*$&,%-"0&4#%)T"/73%('':/(2=%4-+((6/":/"$'!)2]$5- )'/",.335+%/#:)('Q,1"'!>("1.(*#%""3172"*+.5- )$1))3.#+28,!((3*'"44&58(##!*&,<!$9 '(/+$!!&*$%,*0$"',%6+;*-)&,0) '9!'+*7/5($)%.%0,)()%%,: 48&2.)) .2&6$-&%%%:)/.).(,")'+/&4))('*-31':Z6(*',"+A)<)2+&045#(/$,#%0()2'!2-/3!",,(6%&()4:5)#2-'#+0&.*0((7(*):(G+$$"3'+(-06652)*36+9"*1,6,$+-6&%+<&&9%2#54"-'1),0&%+1H6+,!4&-(0*W()/+&,-*%%0,&).&F(,+&.0&$'*1#!-)((0'-@)64!#/ 5!&#-2)%$-7,1'*(#+805,"+#(**&()+2#,&+)")")'4*/'20-C(94&"$7(!3,!#$%+%606+(,**+5&67%(!23C*<#''9&8'#)6!0123.(''%)0"; +(*%'*5/J**0: 0H/='#,<(A9&;*7(2:1*/1&3(0#**-+B>!2#,1v+&(L&,%!$%M#'*,/**7. *4+=093(7>0""*!=2407%+!.@!3A%*)/.72&4+),*UQ$8$3>7>%8-#-' $/+%>-+/6'AY0.)&&1)7%O!*'#Y2+'*&3//$,".-)-:73)'(1%%3(3&)*303'& ,6534,:($8:3B?8')1%5-033-$"E').)!6.w'G*/)$,"%+%',&!&$.%.:+-&!)&1%1%)4"1!)'.'!&7-.172+-(, )(%'k%,#3-2,'$#:',+#$&$'9)32g""%'&3;''%+8$%.=#$#3'+'0'#&.'#$)!""',9'".-+ %.'.$*/#$0+4.$4.9+l+3.!*.("+3)5+$/",%_$)+(=F##)030*")()*$,/*%/-)&.!/14?)1(+-"3*F(,)*(1#'*&./'14&.'&$(%(0/$!&$8!#2 3+0"".)+-.+.#!,-63,  5'*'!#&('%55&+-%#(&8**)*,'('--'$+%%0$&,-$B$*++2-#'-!(0(1",)2.'5,'A&(.'9 (%%-9');-$.)n:&$.-+&9'7)9)"4(!U<.1!&!7/%'0$!/".2%-!$+1^3%'660&$3+2+/%% 4,(7>Q$%,9-/>6-9,4+91:'0#*P$)#QC 8 (+.(<&$4$$"63!'0(,# (%44#,,2"+ (4!$K7*)/.> !+>'.*(10!)/.=*/""./ )$&!$/F)/$#11*4(4(*(&8,' 73+!,:44#=.,##+>-D$)2-!$);"+;&$&(("+),'(/", %#0"/2!%*0"?$ .,&-(3/"L+00!#*)%#")+II*,/#&3'$5"+"RCH4&..)"22*AD(60)%"#+.$(%9+* 1@**%,/%8#",>*$)+H.(.461-04,--K((&%%0*%& 2&,.->, #1,(--).-!-)5! 47!8O(.(+&&-%+)6*/!1+038,%)-+*0:0))/0!%#+2C+0 0*-).' ##''/%7OB''%'$@(&'A6))/3'"3'#*1+!"*#9$.( (%'2A8%0++D,64*/$9+-*)+-+&-0H?,,6-&%*4%2$9<<()*',0#$.(231P>/18+*",,./%12;2 2'$69&-""%*/0#$!.%'+,&.'(+/A!8,(!%)#%%'2.(N,-#,+%0"+5.(+'!&%.84'/$$&&&)5#04;))("2''=$2.!%,Y#!.3" <-%')0!.+F,%*7T&'$$,,@!$&/'$& T#3&8,-,)!).3&&)&A$*K0$%2'+Z%!/-?|6,3%.*+ *(9/W.+%01$(0D (2(&/).)9 #$'+"!+0#5)%?$&1"E&$1-'++2* -<$*4'02(=8#=,)#$,3+=/$68$(04$$',!-GS&,,")'.-!.*=2L124"2#$5&("'Q() /1\A'!!0>'&).4",('!#8(!3/:(3)2%9#"(*f*%.' $*(/93Q$,!%2*,1(H16+%,%*3!7-4x-,&+"'(/89=4+2 ,*-!]#<)$:0-($"&)$.=5($*+$9*24)#1B8(+/c#-N.,,<#4+?Q,C3'#.'4#8/58#B#&*"8-'*)#2&&05&)-&&? 5(&)>+,(-*'. ++!.F:25#)%+"3"",$!:65#+9!,(1),&0"%'$!*."5.')# -*$2#+/+3*!.8F).*6.(8'$)&C%/3*%"$$*.+'&+&1(-!,!%'&A/*/-)&,' "*')$] =$+)=I)$&(!!431&!-)"+.7('1*''$$((7*2*3#4"0-++&&$ 72'2,4)/*1(14533.*'%%,,*$, .#-9/3 +62+f;6%,+6-'-6/$/!$%!'.)-<',Q**0) ,8(+-=,)'%2%1*0$""3'" .,!(#31,.!0(4$*%!(5$%+ .'$&..)%\',)2-&+$3=;'+-)+%*#!0)&+'()-/%4 ''%L0!!6,2+(&---'62&4&&1"1*a%#Q%((+04*=94)(_B)3>%+*4$0('/-+(5 *+?'$#(), '+Y+#>),40!+*#2+ 51/#-.--7*('*%,-$*/"%"('FU3(+30*%+$),32$#+!+(%6(#)"-1\%1)7'>&-:)-65$"B$',1-";2/E&42G% :67#5$A!B-6( ' , AMA'0.)O!$'5+%%)$J4"#0''-,-/-379)5!<1555.".61W(62$//-8)4J%$+2",?+,I,+%=H*/*(5-%"+"$@41:69,5)6/+(9%&4#&'?D)1V)83&*(.(,E/"%$" )-#+&D/&#);'5#0)'%&;9., 36()'9 $)-%)B)(!&7$.+j,&)4@%+HBY2 .(3*(0J-")&'?!'3$+'+,0$(5'7@&.,)+=3%A,[&0,"-2)494g&'*'B6&A@,&*%7*v()5)U-8(R,4'2 ,',!$#>)2G%2#%3* .&&-#B,$(0&!);#,#+*$+!'"*<(8%B/>'(A"($#**.p(#5/2")/!,.&(%26)!.(:-*,$*&6(%0/$'7'" 8+*\ #9+,)/%// 2&'+&,=(ME",9)6.7'4+0+'(+&"&-%-'-,<%3#)-,%'!$(,1-0"?,'%#'2*//<,/1-'(/+"<$,%$&.$(*''/&&o,%'"@,1#%@-('#4*8$-'"(0272')5*(*4, ;(#?-,/-##4)80*0++7 '+A.+?0+5 .(+/!''*/>'+'*2 &,(%5%-$0%)&.$*9GB($$<&%3+--+-@$+F'0&&.1.0(/5)'0',)%-!0*);G,,5+'8+*%4G,/"&&7!*&/3)C3&, A9)(,&A'(@?A% +-%8,J>&."7'',%,%"*6' 04:'1*+60 %4(*.&!6+%*(,&$0&=':+,%,65=#%?F/6B!"."'5^4+)>%70e*!8(-#59-&%##-#6$1*%B;-;1=$$"$)*'-4*%T#"?;.<".*!9-V2F''"2'&X4//+*3..'4>$+(4L&+63$#'3(Cs7-(!,W%Z= 5:%I0,'..1*#/5@-"3$3,%A=2=00%$*0+4.!8:%"+6%C:!%"4@& 7"I&+:'e?8=#)&1* A%%21A"%/9&(6/<~/7.0$%",<( (>):%,,03*o0/4.1F$"/')"I++%-9.E0##"431/(&,+#$9,;-T '.- -`,$a41'6w%2"*=H&C;('911%+= @)*g&--1(02&8+)0,'/!0"&)"(29,,6.%%, % (4-)!,'$#91#!&.(%9,,&$*E/(G*4-*(,$B11($+7$.2">*1-;<$%/*! ,#,4&,,%)1&$4%%; '+-& ,*)+)7!07.4(*-%'$W4(5-;06(')) +#.$).,3,0* 6(9)%0",#*012<(.0)33.*&$!%!>-340 #+2E+!O$2/(*0#2.+"D(2$[T$A12!%.&+%2;*'-4"7,7'(!%0"$$&:12524%26G3*"&)# )#$91$*(*6#!$0,0d"0"(m0);+*}0%'&%2&-%$/(#;,%/*'("4$5-&>+&6$&5: (+*@.F'-5U?()0/$())#*#+'$>'.(%")&'90#0&$->874+&7:Q'(%'.!:67%/,'::!--'.19!1%$"+7*5*70V'/,"*)5$-4'%:!0%3!-&'1--2- +)*!/&"1@*?+>#*'/6-45-&$)a3%$'.:& 9@&-'#'A6#$-1'%! 5/%//(+(/-!!* .0,')@6).Q(!+2-#I070+%$18.(''1%(9@@" 2 < )>'8+7!%'e &92'@5)6';&/-9$1/.')&,&"+B $/(/!"U#o''&5!20&'!")#0/#"+')!&/-"$5"T5$4)%$###'3('5'#;%)$*7#""'.,-F!+'/#%#!<:#!#2-&98 2% +"+.J!07);F02+^,&#'.!) -032.$S&4"W7!'@A..!L.0153C%##!3'-0#8D)'/*'#)5/ +(*)&0K$''-$.*#;/!%1-D'*/'$*)04%%'+**75%)2),<*#,+,%_11&'0+4/'V%#)#5:44*5#78&7+E4-4!!%0$*B5%.#%9U/,-17D!-4*&1;.5$)4*$'0+(%$S"*(&1-8(.+&9"$&'&+&#. +)+&(6!$!8=%"()E#%'?<*L %#$.#*#$')/$ (6&/!"#2H!--#"+.;-%;)+6<%$6(!+'&G)4+7&)+#3+&'"#+%(iH0-"0&3#(8M21(2-M"&'3(<)(";J'.4$'&'+*\&'&$)'9"*2C*M(/*(804(/81--02%,!#"))18$*.6+1,?5=#"()2.#"'5#)((3!)$',#*(%E!L&10>1+-+%%(,9.;3#%!&!!{&P$")'#++6%%#,--)%6*#!D#%/6%"&2()+.$!*%%M6$%,#(<&0Q#%#&5)4-*3*12+I+ 7<'5&.0%E+*)%1(,>,0=!*/$4).',)3$ +*:2.""++3( 5."))(1-,/G2*C0(, !##*-49 "&&*%'>$*2:>%*"$\&"%* .;M4*)'0e(0$%#-)=$$ #% (")51;,1L:%"!/H.#860 C&7&).0 )+-4 &14&)3$', %(-$(&-= 1!%0&4$,-'#,$"-;;<,0%+4-@(+("#%+)0746A+4=*"'")($44,)&#'()2%*:0E0%3-10/0&! -6%5.2&7,%9!F("')+57(%$!+72+4,'#-,.1Q!F+#,"%!25#-"&/+!.' 7'% $,-22%&'&4(-!5$7//1'+77"),FJ"$,#*-'##M.2*2-i5+"*$$9)C>'+-+)(%!G))-2H. *%'>/46> 8-%/!35/58#j!+-$"L%.*(&$S154Q'C "($",-=3#1.10<7/1'%&0%'>+H"5)5*$)-$"G2&+3"(/),%/ +='$$&'8.))1)%79/11%#-",1+3 $1296-00=@ e-7+:U'D&+,/&(!--)0F*-72.6&'/4 *3)(!##,++8B'."#*1$+()0- Q%&)% (4## '.(/'1C(G-!3 (29-*/%&+)!%"!)$(,$&15)<3,*-$&&879,2"(&8%g*+$,G5%=+-$*%"1E()#*)1C.110141+&(0)!E1*-A/+0++287;0(='"),58;%%92(#C$#*/32'$-(),/))D45- "}2".'-#1..-)&-4$/9(,0#+5.+0./2.,#("-)02",+(,) =F';*6J '&!'>'/"/'%',F9+(,/%7.'0+'.*=5.*+06$D(.: !!/*'",3"/*)-/$%-@0"%%6'$% &&796%#):0$+-&)(9312*"4")//'%)&I,'7+,())$-(05!,%,*5%0!%1&). '%118!(830(^+5G/9+#A,F(0,03='#'0*3'#($'+)%-,0:#2%".+$#8.#(*666!= ?-', &+#9%)!(*5#8('0#9.+.<>(*C9$3(=&$'D2*"3%"%*7$)'2%.1*0/+0>2$+6&1#%#%/%#&.28$-$/"1:"+*:.&!;@3'$-,&'*,/1)4($-5&A<)09)<".*.0-/,-%''$4244(/:)555)2 $&,%3?,,3'11.'$"1)"/%(*&.&&.+>3 )#3$,0*1+*7"/;)C2/+.7%#F$A)07+=-"$*"## /%GT/)''.;+,8,2,)",>#%4<8!4."@G?K%/%"&:>-)),$31--3%%*F"-(('.#$+*!+&'($%++;A8(=00(%3=C+A&.0!7(;+(.1,.%/"&%1% !# %##-2/+<1&  -"" .  $"(($  %!+ ##" !!#&" $! ##&$%&!*()"&'%#"""#)$  $$)#&$ /#*!%!%*%(("* #"( ,$%!-%+) ( #"*-!(*"' %%1'"& #'$%"$" ( (! -$"'%" "(* # /'(-U.(AG.*0-"..-'8%-4?"4J7!?+16-85,22*6',+')#5"$1/*Z. 17P!$@$%.$5 (4$/5$'*"'1;7%C,2/$*%%&'%%9/'9!*/(&"!0,?2&"2'..05"'5('/"78&&'-,/C@D8716#-"5);+-9&*<1-1-/J&-2)98- 6)-9?5L=32(2-2$/%*.=/J/&!#.)- @-,,$9#6'$K,6$%53&%(+05'%1*A-40('C(M(3! *$'JHR=+1%/&/&!)*.,0'3.%5"),)*') *$/'#/'.#164-%'2%#Jk)"//)(07%/1**&-)'.-.2H01.#)()-/$244));++"2"836##-[++1'.%4&685,*?1+<+/'&%&3(709!J",L1/E;)"!+(+*&!-7:'(W;,)* *< "/2- ,'80-="*,,/.'2!%"(###36,7.*/D8%!$$0-*''-51(O '8%,(''D(6/##./&.%71u.)*(+) >"(#2'1*(9<"? #.:&")%B."+&. "0)3-";#,$-#)3e-$H%%&['*;Z/7.2$M*.&!'1,4 '".3%663:8U;'%,9E(.)"+1&.3*<-)/+*&1,.%/27%' &)$#0++!(42#,%"@"8+!''/'>$2&!1'*/H8-)1%0%8.1 *,*,')!-,.-7' 2X,$$&0$*05-012"*-#)0#?(" )## 26%322>>$ &+.-8$0)1#0&.(3~*,#5'4&+'#9'*",/#!0'/0>2+6,((**-*A-43$.$")"$'!$*)/$"#95.(3<$-0-#-$,&#*(%5)"*%!" &! &,"31l#",3&-(#)":"S'86'6-*&6!90*%5+5%9.#0")70.++!463(-0%,0...)/,' 00%5-,) %E4 3)(!.$06%1*L* +#(1')03/7! -+/3"'%(&'4& A,0X11+1**-0+1)&A*,-2.&",'/**)-4#/,.)3/$$,(5$00,#'& !2+2-#0)391<$ %''(-"7",0,,%!'3421"& +.6,G?(4,(:+3!-+$/,25"54*-+43#Q'(5/()$'-#(65"L&"5*,/)'(0"-0+/#*.&-.)/+-,(95%#10)*,.,&64!#0"+./4+'B&*5.(7$#-(((!>*/1$!/ "+ 2((%2F)-5'&%'.5*+7+!'/#)"/ )%*+6877*3!#,.,%'5425-*##*'5/,/4%30+%!/L .&,6/*,%2+*04;,(!#)97#<1(-/'40&7*&&"$)*-5&.1%4:0&"3.)3,+$%5+'13+%G%%23 +/M1&D'A!'( 2E5!%G*'D/-68.-%/'&%1#+(&)429.'-.+1*-E+"$4,(@+++!/('0+*&*23>E*-'"">"#0/)<*'+#+*$1+5*$.(/8&1&0J4/*,Y*/)+"$'7); 7"];O'%$5']T" #%/)($FK,*,9$.!9'+*%(-",(('E(89+/,(*>(&(!%$#D%83('%$ K.6+(1 )(400!~#%$2%##= 4--/( ;&)+*-=;,:+G&/6_",(!$)*)'*&56;+*52 %)*' (8+2,A,70$A/)/7!:1+&02'2-;&'8'$'#3-6Q8Q>5.*+&!3(%$:4=/I'6A2&803&'E"71/$*.'7- +&!((%)(1%D&+)*-(*4'%-5%9+:*9,1$##AM!*'> A+,%-:'!;+,5/4%+#=4/ IC%(@M+!/&'1%$##J')2E8(;540>/( !7B'%(')$;&2% #& ))//-::.6:%&2%3+(15e1)'"5*+$&.( ()7N$ /c+10$. % I/84282/)-.-@2+-)")0--P:').'$)?+f*1<:8$"*&"9 3,.. 9$" #).-%5 !F","*A&)3!#.1B-+,*(<8(3&'(,#&$&&* %'*D4-$%.,,(%-$!7 1+$!'(!<$B<+,")/0/)1)*1/*+)(-5)",2;./%%/'(*/(9")*#/3>5/* 2#'-K1$"408+*$/&"*,(8.1*&('@(")H+A!3,(<4& =1$.,.),@#$#0%&+-$' ")"')#2..18--)-<72$A,'+5&!''!(#!7*1-&.-%+).!%'&0,#)6#20!.1!$( 52#+9&,)*32*97+)$^,$#&3+)&.+-&)'9'"*/8%&,)(- ,%*$*.-:'1P&2'0$&"$$8%'0*-$"+F)%"#!+#G@<)4-(('(/#(2'"3';<%!4"%$%#,&(*#)#?,!%/+/! *0&5)A )$()'(.)+J6', ,*&5$=1%(,4GY(/('%I/*+&4+.3.G(/*0#%."6;"&8!,'+*$<"4('="$:"/(6-24$49!"!"(*"(#/$6-*( $(00'!A#8-,( 6)"?B5&&(&0*)+ $+(3--1,)-^8*G-.&!BB)##G.3:& 3''n$$02/A(( )(*$DG-=WDn$)-&A,8X&/6;1)2g"+,*641"98H$$4 $%#+,70'6*-.'$&($&52 1@'K(0!.*=5(2$$!-)+:7' .)";($-('.J#L/&J#.*'))5(1F"/#90=:%T&5$**6.&3<@U!$&1&E&$L;3550'**4.'&&(*&(<04'54,"1/$5Y/$--&4\h:"8'"#3"h *31$3",!(#K.49105#.(,20E4t+-G0#&&!3"81'(e.+91<+6,70)0 )'***"'/&%<&<%(+-*6#3 ,8<-"9)54!7')&.,2#N0F,7"(A+).(/&(#5/2)?;8/5(/;.6%7)9.(4@+;-&.!&&-,97)4"'$;'60*0"17)&3+&/"K1,A7$:?!6&*D(*E2+&$.1#!'-2 H2&2I* M&&'*03>ZD$ ->%#'1)+0!;( T=(M'.(3"@+87':%+*U+!3'9"",],@-A,,;#'# G!)"))8#6/:*)';*1)3%.(3!$1(,%#(%+1(800)8&1:>'(#,"0B'*U,/("-P)/759?%654(03("!.%-+.!)'5.68@#095'*99A'#?.$*'%&F6%4*@:0?#$D/81Dj .+G ')%$(9)=-(3&$?%'%)&26W24+.+(0,)!*:yS#&93:#=R(:.&""/1(15'#).6.5B0+6(115,.!##7#$B'%1!*='(#-$,7%*'$>) +4''.%-.(/--&"#,$ #26,7/!)+F%%*86!#/,+& %''6,!'.*4.$(5##$2J96(: 1*1,5A4!"0'/&)'*().,%.+"'"9&'$%$$/0"-2*.-"7'.*<%!*$$"=J$)#(,42D)!.*(,#&H--'6$:',43)*."3'6)!/D-8/%-2!,T%(> +2;.'"))&95-)#,72:5:%%A06=0%)-/%7+(,'99(2 .3%5'/":/'44(021+0,)$1K#%,h#.'20+11' 1, ='$+22%2,0+6/28$*'"4,&(J;30G!+'?S(<.+1G&"!%9.<60-)+a,'- /"&)A*'+J55 8,9/".*!&0%87).4!-.!4*/ +J)!(3#--0"6"$8;7%'/?2 0.-0*%!?8"!5"0)7),"(F12*')&",(#*&1.' (.$7(37<$$$3/62$-C$720,=(*'21/%-+%6#(S9N&+(QU+-&* '0K'1/&$)<"-+6'&!<*/'+6%1'.-,3(F(F1J/,""!;&8"&2:!5)Q.#!6N'()')&&..#(%'H%#$+ .'(1"Z.%/D&0&)6$ .7$,*)p0-&'"8-1!#*$$" 99/c+5?)+&+(12H%@0)+3H2!.K&.""9>.-,/3 **$$ *<;.1/!'-(!#*"Q6!(#(2,58(3)&5,(%%/0$**,-%-'0@%#/'+'..-'0)6="--'#(.&'&("*)%%%!+)+*4",&+*22(:$$*%"&0/./#%#(3+6,4 /+1/*208!(/4/!%8(#;,!1()b')$9>-)9.'$*!C&&+,1%5+5%)(";(6=,8.'))3+0%-+)()&4=)&03"*(().0j/&'-&"/)?,/#0F2>%2)$%15'&#,+&)*2,*!"'7.!#(/-0##-((,1#A-0-&-(1+2(1('6'-#&6,',78*- ,/&,&!.,(*B/$'&64&"+(6(!."%-*%*& $(+&)',(& )4-),5*#,: & *A )#19&%%%&*%,&!8*4$*/?'0%"$('#%03*,')4'')&)0:201,.)&(,82&-,6-"f,$&2-$0(6A5./%:%!1-4!=&?&$9*"n1- "5?/#7; 4&C.#9,.3 "+,'# .( *+0'("%"% L<,2%*)/*&'1%/.5!<:8*&',$., &*2%(":)0=7<.%+,'*Q5#$> !?D%3#0G72&"$'#%1#;62$>=)*- &-$&;!+ )),(,0(%=8%$!$! ($$&.P+0)&&&1"*/ '1+$0!(*;>,($1$7,:)).($))'B+)']#)) 2!*7*0#13:&.032&+0*:),0=6*,(-$A(&'9!#15-(''1+:*-"%&5(9(313.'0(5(/-('5&8/*$(%(/)%+*1'"&$1<'(-18&)H-/,1(+**)4*0/*&"%#&()4*&+0*$.''F%*<1).D#24:0/0'#*4+,.,32*'%)0"$5#5.(,6&2*&'"(4@2&(" &6 -$.:*-,#>6&&(+<,6*0)'$6,( %%-6)"+7&-$*)-&-,#0)),++H9.(.+"%08&!54%0=&)*'$)#374)'/,21#*:..#11&/&!+*'7#.1(#1%(<)2') ?'%%/%0'>22))/0 . 0#+!$+*+/5)+,81/',.6.%$7A?0/$--$&/9)-9!3).)(%-1.*6/+0(/5,+$*//$R$(9-/,4!.(-2,,%$/>*&+8%0-##D,6*(.(&/.,$91+*&#-/*#=$80.E.-6*, )"#'8("6-R,"''(,(4,3$0#8++/,$!)'?"7%('-3'7&+*)(*.!.3$$)+*8$9(.5.(,,7*6#*.,/*/+#+*0->&$"'82.&(%Y$,.!"00H%<,C2)"(.5#))/,),1+ !2@D/*L&:#3/!#'$KA3 1()499+-#D?(9&!*,4,7 &*6)M?'*"7.((33*+9%3;((-3!)A$S1.$18##*!.1G//,'4*)E.,,$%;-)8&'*/,3%6%+4(%+1&*&0*:&(6.*Y(?D#(31)I")9 5&(.Q2 ##)! 6/(' +>4%0&""-,@0*#4M713-*-24 @.9!25[92+5(#!$$-,)%2!9,&*$4A3=+*+*$)%#7+3H!0-"646"&'34#N+#0N*.'5*!! '(&1.4O!=1A)4,+%7')2$.*&(.C''+%>0F-,(G[$:*($#(!?&-I!#'B)%.2)/+0'"23>*5& )"*"'%9%/M.=/&/, 39C7*%.+%:6(/(+14#)--;0F.?'.9<0&C4(8%-B=*?7-(+4+19 >(%'<.'[!+%-00K1//%(94&#(("& !*,7m',%19&,C%0$*(/Q3"-' 9(('*.A"):'(*!#L0- "A&$'>-#%,):%#//0&'=%54*X%H6f-9;11'-5$g.5%,03.2@&$4,(++18(D!&%$'G+2/)%[+Y>:2A4,04:43;-++ !%#%#++8L>'5(,/(+6"#-$+$6()(,(/2/!6'&:&#&Y0(-?3("P$9#-0%";-+$=,&Y+(#)+3f8-$/>"\,07(*-(378#(,*,EA,*)&212--56)(2*-'i+#1#Z4'/'%,':*60))5-3,)7/+43("(++%6=&%'0%.( 7'').)%&*.+0';83').6$$,@2%')06.3&/,y,>%6,"+!<&30%,3,.0%/ 21()($)=)%,):+*4/0#!=(+9;**($0#,6%+2'Q($() ._&$0083..%,50%(48=>%$!-'3?6)*,F&$*>$-((&&.+'//+;(7%//-2P%0+(&2,%-:%<-2R4'&166*(,*")!,%27)4)""#)'$,(#)."/;2,$.#*$8("/0#,*--/(1''5+/.a*!2@;3-('%"(1,&N365*'5##>',)08*(")%*,(,&!@8+78Sc83<#,+$&G<-'=$')2)8@=7*64J5'2%%%30#*"'!&8#%%#&J21,$"(F++A<"*$-!,<0%$7(2&&H$"V/3(#$#/8+9*/%'50's7V,/<0$13$3,31--C!293)*<#'B$=(7$/70%!,<057%$#-4 +_)& )(-)%!"0.'+0#&9#$*'/i1;("3%1#=.30&-01"9)*%$$0-(-2&.?;#(&!&*,!9!)(,9 0*)/**.Q<*C.$-*+$51)5$':&+)/"03D-%%+'+)*!719+-"*($ .#-#7#Q!*7,3&$&2(%+4-Q0H ')'(1.//4,&'*4$5#+0(''+)0-(#-/+#*.))'4,*.)*47*(O-&42&,-0:/9. (01," !2)-*,(/.!$-'()*#5;2%3"($ 4#3<(1&##20*&/3,!-9"2(2*5(436(-+'"'0'- -'&&-*1<*;13(*<)/7"(4#!%4"C1.*,%&!, )$)*(.%/-240,%"&:%*%*/&&()$1+52/-)"+'+*1-#!#&$)'$&&&+3&#B )'#=&"+*,P8B%'""-,&(+4E1 :'$12&5!4"0/"11 +*X=#4,#'9(4#%'$3),+8"+!)%/+/**$'2,,#0+ C(-+,*+)-2%--""/20&67,=.,.-".c*-,)1)1#/-%)7(/"*$"45=#) +9))"'2>+*.%&+#(+:/2:-.).&&+3-&!'$!"*K)/"!%u#&"!-+!*$%("1-3,)*%")'1, &7-+'2.08!-2.!,# #(R4+5&+*,(7&0+%!E/&..+$0$4?1-, 3&''$,2++5)'(4'&)&''#".$++/9$7('"5+50/ $(*+0<%1;3&$'<$0-++2+<-(!%.+$13(1'.&722((3:)"4#+7 ,/5/<+(1 4-+/%&+'7(.*23&%)* 220, +%>WJ.45%/%-=4-&5"4M&$A;5-)6)+"2+/*76%.)&#-%'(-1%@0+%#- *+970,81/06/,3-?(%"@"?+01&#)+'-8+'7'3/0:*-, ; 0* 2+8-* J6)/+K13)!-0%-^K0,%3(%'-*3"+2,%)&67%1>H*7<('C!!<7#'*%'8/*, 2!!!4#>FG4(*)328">+##;#)38 +'0@%V*#!3&"=&6 -72$'(L',%4#(-5!)4.,60.&+).(1 @!7&& #/3#'0.//*05&'D+LE( ++%":+#*()%'+"5"47(2)'>\3+).$/$%)8%-)""@0#0 */< A*"(E9" 53*("*$.:':("#p.$.7+-$D'!%/(!)8'&-+%3)-0$$-,G\'2!..'J2$(%0*!,V%(8-))#/+&<0-!#+..),"*'.!0.*($'%5 9$E$(8&85)!%9"5!(%'-'(40!$6#;h,''&!=1+$J<7!!'$H:9>:!'6/,12 ;"4%!2$4;1'9+"##'$/B=(-:'-"&4* >)$7($W(0@78;41833=6O*.# !*5.'4%56/;B<' ##5.% ,,2%&<%5*$9=.B$.;'.+5%Q54@*0.9,,9#-%',U68&.$%'P02(4'2*"$5+7#*%'>'(0/E !4_#..>%%,7503-%#3<-*/,2!1*..1"$:"*2=,$'&.E*7)+h'3,^;53#02+q!7 :#:.)*%&3#,aH"83#%?-',=:"1/503"4#5<*+..-6>8-*'0#3$0!--., +4)1#?-$":&'&6!L:G48/222#.!+!,3(>E, (26:-9=-!3%3&5!;.1)/.B)C74*_.'74/%*F&)//##*))(1(22&3%!)/>*'3*J$-f$!4S2$)$*%!/0A/>.2&+,I$+."(#<""14#*=*+1<7<-1;=L|+';&&-".)g)!&/>%&D#'!66"+/?Q$,+6!;..R26$M18/#'#X+ 2*G")1M%0(:$<>6-%"%&5.+'* ')"..,0#%)& '-# +@1'#/0$, 2&(/B'#')'+#*#<+"T.,#305#)m'#$3#E;7-(%?(1)4 $&: #%3%'3 3*F0/*//3#'00z#+%0>0$$6Q6?0*8'"((d#&+7&(=&6.2"&(I0*$94?A2&-V%('0(*<>*@>.5-&%-8:)7($3&!/$2"'/)""#// %$*: 05%;:&@Y+*%7)(?)+&)$/0!1'-6 H"/!A0"3'0@"5)9+J6,!/'/&(2.0#!1@9-:,>9&D8-5%3'1*?#'+!0'319+@ .1)E;%?&/X-,.%$"0/3-9,,,">25*%8&/9(($Y&<-.'#)'I:!)$$&(/5&(&;43DX'"5- 'U*.6 1(/%$>(%(:%&""%("4,+5-&=("7-,.(,+\$+NZ74.53+'-$#%)6()$B(#'952$%#@L1-6*,=R&)%+#.!%'4+$*G(80."< /-"8#=%,h416'2),$'%7*!)P(11")(6)'/@*&%7Q :- 4'130C).30/+;(/$ &#+$ GL6+-(>1*0!,+"&1?"+= &B 3*90,,-.#)C%,-+3$->%,6!"(44,#+$,m.ZH;/(*X&$084%%0)&!*./:)&5%&(-<,(>C.).5+*%"?\)5U7/21*)9#.12)-H-%!3/,K#3%9-<,4++:Co%(*$w>")*,9-$0#1.$-@(6$$?22U:E'/Q.W$&%(4#;$(Z>)"'')&;C-;#7V,*-!1*/')=O0-'"&."-!."=*'#,*H+6,3))&2#%-76!$--5$%U%#&?".+))5/01K3@*,% -)'.,8$)4&!""(!&(++=6<. + (%C'&7$!6"+'0*)%",$1$0-%!0!+'2"/'%9)+='@A(&2!($*-%*%''*S2='-@d9()'762133G.<-,619!$"*- #+&!$S' 6+7'G*)"++A50%)0,R/$$(K.-42!1+-&3&;3,03/'&!2&"%$"1-!&-1M%-B5!(1-*/*&'$-(?+%!80D6*<%0$(,J6)3V'&0)01--93H-'(-#"#3-$(',:0Q/(*+.!f'# =.0!"43C+&&,-#(#8n/-*h#4 62>$++3.1+*,(.0+0B(%2+0)+* $,/-1 (%!%(2%/+/N+"'!.+2,',.*!#)3//&#.*7+%.+&/!*5B/"*&*'1#(&/(';0,:*6#@-/#.!$/$%)*,6*!/0#p*.-(>5'(,5.7.&'>*2.&+,(&#(/,(2.(86"".5,(&3&8F.(K,$,0"@6.3&-A)7>) + #+74)8,':%.!-%,*)&.!/1'',-"/- .$"#.+.*@3#"(7+A<3%**+*)($*++#--)*=$2)2%+*,/%/)8- /)*+10:.-&!-&(1&#%+=+++)'D,0'+.2+(/.'$%0!.5'(#/#3(J5+.7))$0-*8*8*2415# -'/&R$3&51+%##:"45 "(%1*'3 '.3')((6/(&$+9))@+6$&&/)]'-$8;8214"<-0!-!9.(0&3$4'- )<#0234.&*/%.5(.&' E)5,),Z1"*+*&0)-:(!3)) 7>);(+(* =#2-(.'J!('!&),, %/6*#"$34,(*6%)6),/)($(),%*(A)4(*=:-' )-*0+&A.".3/90 $&?-?*/"-1+#.2-&<-#)/%0' 3$/&$(!!5)."$'0'*+3%+'(04/#.(+1+6-=4/-3&.-0*0:+<-3-.=7.(*&2#+(<"2c'-7'&&(F.%-9)+*$'.3.5 !(&(02)&(+(( &%(415')*),*1) 70"! @;?-.%?420)0(..(-2"1)(?2&"!!*+2#*.*))$.,."=/&"3'0#-+%&&3(+13"/3%"&$1%---,-9#*;D!),$-(2%'*6=<$)'1#7* !(-)'*$0A*&*'7'+")*)!:%-$,.,&#.*+@T<#++*/)3$%,( *.+5-#.-)")!)0#9'+G0##)'#"')&,7"$+1 1?.+,)+()"0$#''-/!06/*5,26:Q'+'$'-$)/2$)2+-;++151&%$(;+)(/((G#(6?2#.#:!*)2.,"1%"*7%%%**-.")'$"4<=+"&.-*()#(+&/1*.):!&50o$):3)+.0)/0[56-17%)+.0523/34*5;+72=(&<@ -'9)/,-.502392#!4-,#-#(-4)))&%7"&,.'()-- (!(,N&.925"&37=(".2(+)$'*1&)'0%':#!:$3# %?-#.1$1%DG&'#-&&"')P+7T+*'A3(X0).%*+&C.*/4("b/%84#-1*3'$+&#%.(%9-",0'#8()-)#'L@&;$''/%.+G..@M3'%,5+*$-44')0).8(((- $$2)1-+F7!-#4 ).,'#,0(-%)/4!".(5-61+'3#)& *A(26"+2)'.%3% +"#(D/(3,$*..&9,$&*!&%,*#(*,006>4 $.;?1)E6?$8+!?(-!+7>+%%./')'$.,&7&:?+1*)/$2-)'#1$(1'"+'*<$%.$* , ,/6%/(%%1,/8/G"#>+'!A&/,)1-(*%)/1/-+## 2*&'%(((*0($.'9-)&2")#9*@-14**2,/%(10-B %'$$)')8&/&5'7+-+($*-$50"4!.'<$''4+1)3&2&. 3T1.,&8"1$5$'#!($.$+.5*,#&5&6+6$GF,%30&&;6<-'#)+3!/4($((&+*!+-*5'0H')*)%2+(!;(<*3/0,,-*!,-&3=..*%0+!$/#+%)*-3'..)."-*).+5$%,&.P"+/).,.*$%)8!-4).+99%,1'+5#)%%4$1.&*+24,-),.5$$+=-:'#$,.#&+*+/$$& %@%3)""-$/7(+(&+'$)-1+)i*1.8''173#.$a')/F*;&+%).22/3-5(,*0.&6*,+7!4005'+4#!(05)),13)30+)5:%&-2;C3#1$(/#(Y(*"**%"$2;#18%,'*)-,6/67%%&2&"60(-1-,($0'.$&='C5(7)#(:2K)+"!,7))7#$0()*(5*"*4#(-""+'1!6,+)%*6%1,$&2.*!*'*"1)/,04#*6B/28&0+)13.'*'7-A&'.'$#:%1 A#6$-0"1/#2+(!+1%7'+'2"E2*9$*1/#& ,#!(/:$%F##:/5',043h.#((#,2@%')0'.!+(#6&J"+$/)040.*2*0-%7(-04(N1:++ED0*',2?&F+>=)-*&%!1!45/($$>T+4=41 2,A+94+09!')&(#"R)6#.+#?%50-,##J/71,4!4%!%(*!'2&',%(*"6#5%9E(7.\1/%")&-+#+9)#-(4"%$')/*1$0.&-.)/&%z*)*#)",-6C:25#7C 463a-*0-(-)*42$>#+*L"()(&3((,H*+X&:&.2*;)30!I0$&- 4(:#&/,1%*44%*.E'(%#+#%(=!80",."3!9+$% &&,*E9 &!%/+-*!-$B92!'-<,&!*)!1#22>.8))+0*)B(!)'*)*;&&%02, 6" %%&2('i9;+6#;5- "6/3#!(-)$3=+*( 3+ /*<+"7.$.G4.(&1.2&%17#0)-C($,!(#+,+1/%( 8+9&'+0#F265=--,(. %&&F&C)*/%,#$!')82D4)I$ '(K.-,*&!@(0@=6-0 5.$)65A56 *)$!*020E-*#206C",%.$&!)5L)/"&-*;'!;-+;i-+.$-65%"72;-40)F2,./0+6"9@%*/(#8-1/6,''/-%26$9$$6%,0$&2(-5'&*/.)_&2(4)(-%.+'11-&41$03+.''''"'&)(!)%'/*,)0'#+2(.640/,($'"/m&)$ )*($,,/./-#6 2.,4*+>,''*(2,2*%/(52"/6%=F*L(?#(%(, &%)$.'1.%(3(8-(+)+*)10*@*1'(&+.6:('"9((+(+-8,$%1'-)'-$9,+,!&&%"F/$"1-6.'$'&*$(6%##22*%,/%/#*<4.2$/!,% % -&+(!3$1*#&4#.N%;2-%'.-3'1 (,'!E'"+!$.72 %!#&.&-($3!2!&!-+&"&30K>&7$2$$$($6++(0+99(5*:)%"1;+1%*"(%(*!*"#'"<"!%,_."2.'%#* ),>/'./('1(21#3&- *'& '%)4*(;)-*22)7&/9&.21+'%2-#<++",:-.+ :6*$4%"/ +.!1&*#&*-#'.%+)&(07@.!*2" 4/)".+!,()?.,5$8)0!1(5"*G4'6/"!#5,, .)('%"+%'"(#*3,#/&$6*:)$+.%#5<+0$.) /%2$#)!" .%',/3#73>.6'&7*3;++.)D#,-&,-3+!7448=-)$+']F='-0%$.;&1"#98+'5A"3,/)<)"%.",B&A9K)'&$*,/N!)) ($+%(!/(;0;#*2/m+C,/:18#761 $ A.%dZ&.-),4)75,6+'!D-/+/"(#,(9<(1.,)=8*(*$,,2$0$. 7*1.2F:8)<0*.7+*$+5()3D#"X%&'-!g0/58$+FB0""(5+$5&7*%.'5*J,+/*:&1+!0;#>.:*5%(-(%,04-2R-(-<1."+42 2#6&,'),4*)6*.>(A')94 %!0+,07+%*1@6=1/.)'61S"3#*" (,#/+),+6&(O+9#/*!)C20471/6*&L*R3.9#!%i7&."0##/&=5"2&*.0,*4-%%6#-!'/4)%2)+41**.=1E&3/,,"2+5<++7)'"1(6)0%3.+*)$2F5,*1*.&-`)20+Z*+5,%($_#.D"'#IE$))*%M)0$,%+-2+B2-/*+!+/'%#1&*6!&$""(0**+()-,04*<1-("(1%#4,,'3)I0,-!"/$&'!*,.-&(*+.1Q#*),!(-)% '-5"*+ %-((++&(#)-:+*7(.5'*&!*#')+'0*$#,*!8#*-%/(("/ #+..;954#+8*(*(,+=(&,*6#.7B&1)&:+,+6+)/*/ 92-/I"%.8$5&,!(C''E #0//'0#'0&+'%(4.*4 .&(80$$,<+*D'/4)!&&*;*%%'9019&/D$-06)'*>)0#+!()&.')$- *)&1%11*/.:3F;-"5:2$ &6,-4#*,-V4.,7#S -8'+=)53*-$(%0-2.0:''(77#8#<8'+#0+,a)1.+*,(,%, 9$4$+)$;%*0-7"&',%)("Q'.'%-''I3$/#<2+<'3!19>)(.&'3*%)0!.!"%3>".&G#)*"$$/24-!( &:(72!-#&6*1%3.$*$.,,'4%=6$#-5O'#/"*$/$%01$2<24+". %$#''(3'5)#"4%# &.,02) &O0M)&%!@$)5( $&(3-#.!"&!!;(",#4"93)$W!3/ .)"-,$&>-)..74)2-!.,'2#,HL4=.&%1.1/X<#,"%, 5"3*#50;#'#%,:!-k&D$'(61' 2!-(0$6(!/,!&%/'l%$&$1%!,6?@.++/6" !/,1"4$!!B)+0)"0$(.,((*+ "()$5++.H*"0)E'4*.'+*",$&'+" )+" +)##"-3f+&.(L,/#5 9,"##-&0'6#'+.K!'C*$#$93 !#($;Z$(+/3*"'&%F"&&+%302g&!&'/+ '(M5&"1(%08N4-1("A&%3 &=;&%w5 +/68C,4(1$#5466%1.(%.$)& '' --/2"z()E:.c6.!$,$+*1 #%6#,(-,/*.#("6"9.*'/50#,> &8,/6+(%A',:'6-5)A*"-"6$#&(-.--(+4$(;(+3 -'B(/ -540 (*+(8 ):01.0!&+#,F-7#*'1>,&%H%/,)&,+J)' 0+23#,.&2).&'2<+)&$#1*%)(A5("89( #)".!&>31)$ '"1"-.$-3%(#4+8)/(9*"!,"+.22. -1.(/+'0$1'24-"((&#)$'6!-%51),',+E$&-F-#,-")2-@3-4$(4G)+:#+*89'"!6@526%-.2='&).D&,-(&#=.-16'//"*&/1*'U50+-%56+$*1*%.61*&&$&'4.E('0+#+#&.- 86,,(+4 4e@".&.'%/0$.6/--0A.#/'61)M ()"")9&<-&4=-)(*5)/)((/6')/;,.)(!$0@-0*/ /21#-8/(%3-+2%13.0<)A#?.65+*/4)2*4&0-'.'/.2&%%2J(,2*,,2.*,).(.C-$''+,,1.=+)*2-#- *-$9'*4,("3:$01(&(2)- Z&&(#/ *.(0&,'+".+/#&0M)$)#'09/%$A:29)."&474'0) 11"<5,01(1$&4,(!+#'!.<+'* # -484&.**#U#%""#01;17-/5 3107;3#2,&,5%%(-4>1/*'1 4*3:$C!$/.**/+04F+,+##))1%1 **&0;#-&2/ )#)$6-$2b./+F();#%%*-9&&1/>'3-;+%B#!+60-28&W"4&(0"'0.Y0'9,9*'&'657H)"4"3+/"4j$**120%2K&''-0#&.#6()5"- !"5/6(4>,7.@$"+'%%&89#"%,4%%.P16))7=#-'5*7>"%;)$&-3.%';#"56M+(() ""%'&/!86&+4 '($.- "#% 3- >?0*UQ:-'(,0&(G8v/67'!&6(=,+G"1 "&+.;R6#/,,$.-8,),<*-2*)7#(%4+6-F#&)@$'!1,,$>%.+1&#'!$% -/#4?*0"!)/ !.8'"!;"($ %0)D%?*-*($5))2+*73.( !K+25$,'- 5;1)/,C.-1(<6$,!1400$,&#%4C!T '(97 ?2I,C>%1+L2+"":44&$- 7#/,#p!/1+-!1A" 05*28K);<%!,!) 69(1&&+/ *$'eJ=+'%,K&&+&#),6'"-+)"(-!)%,$%-'%'21$3)%'/3&/.!'3*),4-,-'+$,%-C#;((<`#'.$!5:"$"&*$3&9/$/<,3=)<.'+$"%)1(%&0928#565'6'8(''801 0?,(;?P)?2/$0&-6'( ,4'+475*<@&)8$:?+&*8)#/4)4(:")5+/)4)1:>73-6 %!('$!'(*2@*&)!%'-.0-+8'0(#$..**2$,++*%'/()<+-"8&5.010.-> #+(/)&620!(3.$)+%** $4 -:.&B"%###)+(%5-'.!&(1)6'** 0"*,-!1/$F ?$3.,-'.($%%-.%!0@;*+!$&&'26 $+.1$'!"!!/1<)&2()(#1 -%"').A:+'0 *10-)J3*3'-!-"$+(#/%6)&M.$?:$%+d*J!*/%2$<(#+!6#$#)/I,'*#3"#"&$'7$(#$) ,'$*&"#-;-&#,-"1*+()*F/"+(!<(!(.'@(/"8*$*%)%=5)&*;,<@')(C%&6#351(-'4#'7k,&##(%)6%#"&$U6*0!)$+1'*!&c'.&=$4'(4&0""*! 'x11.* -0%.HA2 %+, "(!9E))X S$'"$,v.-*-)0z,2/.$,-&'&)A!'#-+%%+' B($$(+."*j[3)*Q*$<)]'2c,($:=8*O$&1,G&$*-!&g6I0;''*9#- ) /!+"-/,/*%,u*-)84)0(%1/+'(+9(15%4!.16%+"05/#)%0++$4i#+D/#&!'$:$>))!)3(#<5*0.?027)!')'+$.K)5g4E".*-(2@1(9!&$(.@/)*,*%,)&,503$>;+%%&)1)%#&0>:"-(#51(+)(F(+&.);9&045'%%(!%+)%*+#)-''&-)%)E%7,&0+%O*%n+&))'#&'4*$2/('(5(!""+:#8/$! !"1- D@#C-%'4'+7/=604B5-$4-%4%%*$@-++]-=H+,3159((3%!.A5)(&'&#).')&18*3C1C"40$+2'5)-641$,4;.1/D"8*:3(()/1#%*+,49.-@QN9$,+)A-(2/'>6)(*2'&'#609*,05"#3+")/!*),$$%$53',d2#,,'=@!"%-%+:)6+D'>%,.*2")&013'=-'1-1"'''2,%95'%-'#.4&%#-().!?!:"1"+&&?+1$*$2).''/+'K6*(/ 0%)*4)7%(!*(=B,%*:3!.2>73C8(.31C*7'-7.3.4$.*)6*/.*4"#(&+$44*,*/5../,*"/-<--))0(4*.84$''1"+(#-&)3B/)6% -5E25'8-#0,-+/$.,0$4'%7>1*"445%'5-7)'%*+'(,"I;!21&!;"A3&5$@9)C30+'56<.--3.!/-)3*/&Y17-$-$''&3-*7"6//1&!+E 9-04)+' ,/ (E'*.&*.*"&+''+.))& "0//I#1)3$`(H$*0&-)(+&/&!/,+40,.2$(!,!, ?='-09X&$0/ $3x5)2%0)/2(4("#7$)'")+9$35#5&"(#(5.')("'%"%8*7(,$!"0.4""(;%52722+&&++6#%...<%+ <*--$/).01 )/'7.2"%$/'(+!5*(-%.,&")8++15G,0#!(4'(43*$P$'5./=,)& ,*1!-& 2$'3<"? ("5-*%!+-$&' --&/%!" *7#>**T#;;*"-8%,')1)"*5'%*#+(%(2*A)!-*"D+0+.+,13*.+-!+0+1&$))K+"7+=*(*/'94"13/+,&.4"+82,!*$(-#8(%3+$$6!#"(,-.5&'4&2*.'4<2%1-#$',01/%,)+*#&/(&)' 1)-A3 9+.*"+0%) ,+-)2'+#)$(.%1,/;-&0&357**3/N. $04*#&1%&4%/"0'&$-:A!),3)*E,!;$(*#&2(3&)P39(2; 0!2-*$&9((6+*61%!!$# [",,$.%+%`,7,P-(%/'2,47'$-2(')-!+%/6("$2%-6&'L "(B,A+='.*,;(./1$4# ,0*)*-0.$.'6=-(-== .)%$20D/3-3,,$,#04% T2U0/5.,1)6;+6%0 3'<1& 2.-#)*1 "1&*.-10)15/%"&)0''/+-/\#$)*)#-23>$/6%(&+$'.#,480h5)8,$T2!9'%&,#(,+#*"$* "22#%.0-9&(2 53#/&)'(*-&. :8NI6544s&!&!+9)05DNP#)(,1%//)@B()30+M6!c#1S9K @ +2K':&;".8#$"%%6;2(#'(0"*8(2$02".7E"29>&>),c,C/%# ("%*7.*7([." +!335:6"1((&%(+#"?".%#3((!<//6&.-77au!(%1#&H*!H'+7,4+2+216#N&00(%+#$*2 53 )7G05\!.B016+4.#&(3(C)*#$#-%1:Y1T#%*("/x&*/0'!.!7!&1(S03#7,4.(#&'8?-!:(@7/.%$/**&,15#;*7 *!8+"*)1.!,,9"'+B-+!:77-R%!06h.'?=5.1+1 **.A ' +47)7(.&+2#*&1+,#&D'8C+*-%1&)^-)',5!9'-!)0:8%%-P"J09QM!8',.16"(=/+9!/%--(4(;)&4<4+05-()0!0-"9% "$C$*J#2?$','%&-A992P0H.!$&A.O!'J-, 08 .;%)-*%<(9. %X.6*/",/#U'G v+8+ #/>!@W4+*#-<*348&.#))+' D(ELx'*(1*8"*"3/64,, '6 $"''.02):,/HO/0,*4-*)!2#* +*3l#01%$7$%+!7-/%.l#0T%",#&'V%&%=,+A*1!$_25$8 I"++1*&/&C#C('("$0%$#.$+5.:0 8A)%'Q.'6-& )60'*$#D.$;V.)+&*'&8* %-/%3+*G :*2W""EF%7,.B,"2*++62&)'E)1(/0=?#4>)%"%,,*$2C'$/5<#@%+).&(-.+$-%$#6&$E'08$7O<+5@$%4'#%46-!*%(-#$-2*?K/00,)0(6+H1+"*%"39'3.<,+!'+' 6 6X'0$=&'),)'4?-'% '/$5-"' 246*41*&+*63+/%"&4%,&#)(1$-&,)W0A!?+!-!,)++8&09(++3+<8(+'#.)*4=,"0&B.'( 3", /-.4.-9)"0%)0.*0",)'%K=#1'-:#1$?823"/5%('+!'',)4/(++.3!1&'69 (%='F&8-%+3(2(v&-%1 .&!!&*0<"@/)0.5,%16-C>7%+!A6.$-,&$&)-0%, %:/"D(&)$(+45-*-(0-)&59,',.#.(+&%.+,+(@!GK*&!$ U':I:%2021&1&'$''S10!')',+'7&'E%8*&1($,(/+0"& *d&7$6&55&W#:+&&5-$(5'-&"-"%*&!&!-!@%)1&%8$#%-(#'$)+)"$+":Dn*1)#%5! 2#*+), %5+%43/.K0!"% #,+*$.+,%0+/H$+<$$':/1/!,)(,$-,';'$*&*#');0&/M0)DR 6!*>%&'X-"0&/$6N+*2!%9!( #-7DO(#,>#$4#(''$("&H*2%"B3!;0126O5!'#,/.%"-(A.,#5#(.%+I-3(7!&-8$.072*.-&'"//+6-4(+13"+0 #%(&26E-'-*)>)&5#$703*+>"6!,/4%+1*'(E!'&0; &4$!+5$$1/,(@*+,>$4C!,>=#.*)%((#V+0#/+,$% ""+!'(.#***4<.?''>$"%0"+4'%G))&!Z*:)&(,1 '/*@/6 ,,'(5+$+!9/J!%!%6F=9-")5%#+'0$+73+:*"&-%9 @!!*q*;4",B2T0(#,&0='=,*(*3'P-9L5'/4$;(0'6/+0:%;,('1,%&')328%,(&.(%"2'&$!',2)() /'-"*>"+0+$)%++.'5,".,)'6)6**;*,-*('+?,.&"'500" <-:$412.)+,/*&*2#%22+0/,6../*'.0+5''+;+/!3>.1 2#&,,7+/4*-$$*%+/.A,$)*$('")007!)%/''-/1%"?,.#(#,9/&/!;)$&301#$452:%#($=,#./*+8$1.$+34.7)4"';.,5*-%##$3))$--'1*0(02#33**->?"0'C-*0*%%)'/ .(,'50+* 2, '*)%1')"&'-,&*&%:&!)!$71..*52')*"1*21&+&8.21(&6.&-((08+4(2+#',-49( &-,4>C16**%&7$%"$%3'@%M:+")#)*>@&*+3$.$%#0)((.A?.(5-!= )/8/3?(!,&RD.+"*$1 &"#)+,*(6%,,+/A4-S'26,-*.-<&+:#00% 1.0%2',2'*2"*$,-6%*!(&')+.0'/,,%"#A"/8(63(!& /7'0(+5)$037-0-B4,85"'</!,*'.=/,$)*1$.,&-#:152$0+=*/*16 /+2#<&$A10K18(.5&d0(:)/.3&+(22.)%2..+'1+'''.%1?)-.: 4&3>!*?./+&$-#.*+)+ 1" >(!+!39!4/,*)%1$ %.(I*-(G0(&#$;3&&)")1 ,'4$+.&+12 $)1*-%3+'?235%(73/$$!&4&(&.2%(*$)2-&%),2-)&8&',."""4(3*!8--3."&/"#"().53%%56#./%-)*%%'&-%,(. -.)*28+5%6 (70#73(+$.0!!)&,((%))+/1-,&')102"*%X-&:%:$$$.#)"+2+%'!#%/$/"5M($%61'#7$-3,%!'-',!"&$402+/*8(,$=$#'/-,1*(".+4/9'#<);'+#-15)/$&%!;)+2)&6$'('-7+$.($ )m1*0%*(#.5G%*0"1'%#(1.D!36(#G-!+0(!.)#9=&A(,2-.)5;63')2#()05$'@*'.&=5(.2/;%#%Q.%)"9/ *A4)$"4).=$&0.&D**1215/'4-'-'& 09>*'$4!08*%5'+@0,#/'$&/K11(&).!2)-7(':/*-16!*!77+.#5GC$$'8!.*%+#$- ,--)K! &*+)"#++ $&'&<*$% :33*()/-*!10*+$/../"1& & ')<,!./!1@+1!>0:(&5&;%#9#M 0:!-2)':'&?9+*Y/+(!3&=#/"')3E%0B'(!(,44.&8.#DH<+(U(-(03.-& !(&-,&) +($)*2' -9',0(#$(0&.0-+/72!,,4.#/''$1+3$$9-2,<**%,7+$/1/'0p >$#.4+1/.'%&B$3@!&&+#/):-/&;%&-)&%=7)'$#+#'%6(')*6,!*.I2N-$6)-,'-24)N1%9+,$#($1&&=.*+5FVO0*4'3$:"",%5%+,T&2+,$k##0(&4!&"'28(=%84'5#L@'&0'&;')F,(#,4A"$(%!(%L!+&(4#()K$6@"9!%,5.*4(#),(4*Q(0(-52*;7 -GN26$0:C+:)C":$/@!#7(%4 %'/6'*0, %/*'3Y &*&?!80<%&,0$ 11/9%'e>I$;!*'%##$'*(10$X0J)("\Q/".('=.()5#:4"'-%((+=$!#+-Q!t:($,-c$3!(.B"$ O#Q%"29&-2D/+-($!G%))")#$-3!2##,2%393,7<0(+*!%))#+&6) )'7/$(&&%1-36("%--.,0&=&#"7*4.!/.%(@2+/9&1'%5,$#$C&>(8!!)*)/%)+*?'/2+ >-"/0I-)*0*'2= +*0$%(%-=--%) *P'8+()'/1','4,;(8,9/(3.:6'.%-3<#3+)/./%<4%2,2+*)6:&,&;/0'$"$-(.+'+6' )&16#**1/Q(-- 05.$+*-;$+(12,-1!Z-/$3'&#"5+..-(.(]-&'&6,&'O20$4*3!72*"0%%;747#&49>"$!7./J?!(. )2)2(-%33./7*64202/%1-)3!+4$/&#(5-A#1'14+%, #(%#3)-+-.,*5;*!+,0(()&0(L)'"/'1"$/,)+/1&,!$62,/*=!"2F&()5)/#$*46&,-*))><-("/%$&0%(37-04$1%!-'+-,))9/*1#1?".7$ /*-#<$8/"70''%$.+"3*#&5!!''.3'&14$++*99+'*:))5!0.6.G%-%&)+!(7)'3#!$)(/0)&9%6%$9#'&&5',+ /)(;-'+ 23*'&*=,/.83,15->''/&%../,2>$(,*/'(%#4%&!)5/"&.' &(,42-*"6).+'7390.%0-61/($5#&(-452/("3--?*;*$%0.,-&7,',('(!8(/%$$153-4!'+"'%%/"(,2.*%/1C--."-8.R,6K2''&0:7)<'(,&("/23#('I&(+&/),".4<.()''.)$"%$8D%!(/)8%0>9# /&t#18>")-0.147+1"*/%$%2 '"(#)%(11$''D,*-"/%,0'0 *)=LI-F*0&''*--+'*#-*4<&4* k!>-'#'"/2.*&+,&)@\"")<.2%(-%.%.8*54(')4&%"+*/ *84I->.+ *4.##"0I3(+$++(6',+6:2J0/+*3"'"+)&+!/%/"(*)!3.NA&)03.]",F1%$0+.(26/%q %(9''6$'6(.4-&/#(3,: -.*=-%0?$,$%1'.(.)$X):)/5+&KK&)%**2"5""&G#3'*.!4!%+2%4,04?/,.(907+0+)3#0*#)1$<)-'*3'.00+0(-'%/)Y.&(&DEM,%8*%&%$')$),8@#.2(9*.(4"6'%&<(*#1(+&)$43&86/#%4 (;74'&&''!D$7"8+(."#):,"4/%!%&0%(b2,5Y)/&;';"'*+12 -.+'%*#'2=*4!&.$%*,'!!0&$%N%')!&2:+ .!'*,2"(A#./(?)9$#/$!%+$.C')),P-2=,;i58,')23&#&.8#&+/% /<,)!/0-36.0,%@)2-1@$#'(A(,#0'24'B0Q//9-%"%/*!+"--(20"))\1"*%"(!$%10!&.1)'*+,(-)-/'H(!)(/(-1- +..("!% +%.(%)J.(,,,3/$C#0%(,0+.!.,)$'#(!.(4&#$Yh!*4%3(#%$7'$5)05#& 9^*2!!-30#="0)1.*-->0%)+131$?c*KZ.!/ -5h" /#&/-^ (+-> %-"$' *a0 !.'*%"i#0J1')/<('$*)#)/#/($+&&$!8-:G(!.C/)$.*.2,>EG)!2,#2&$'-3F''-2+26&# .:4!2,"$:3#6D)/)*("(((&"B)+%$(!"-' &&04((("*+(#102!>(=*/& '60)/&(3P .*) ."% "K7-#)4'&)&$,'85A!:i@&+%!> $5/&**#(* 6'&/'(%$#%*55430C:.%%0-0/1$#*05%&&*=A-K%)81!)&)"$2%'< ,)I!4(#&);(94'?*$(:7$.34#$0*.*3>,&-"$c+://%?'=HF+A/07-*S",#:*$.",*AL/Y'",!((lY;%+!#++(3) !." )!0"-+%"&)#,+'17"(-9!))"&0").=%!)9.*#2)(-.!,:+&+ !-+,!(2:& 11*"-8&/633!#&)-#C/**!%#/#9%.*0(4008)&<,",'9(&"4,)<&-3&:+"$2'+, %;.43#+*& ',*:1.0 4%!.&. (7+$&%(%)#B'') $#,%'!+8(&#+&5,5+*)-!E.+.%0)+*60*=#31"7($#! *!-E;0$="%%!7"/!6/-"$"!,$9-$17",.#<"%%,#%'2)8-2A#3..)#17&03!*/"1"&-<3*/0.*+0!.&&.%00.(>+'4*%(#''/!0!0-+5/2-H!7$"&(+$.#"5'3)#8:1&'7&!07"!--/##))33<1-5+.$).&)61 (33*!!50'"56.# =,)&='T-!!,*.,/+11#$6(-%+"%"/?%,'+%g%$*9-e#'"'>9 +!%%7"-#.(#)5"(1-"1*Q'* &.!'5+.$)"%%#+,B''0.*+7"5)/&l!,+$ *7!$)6*&)2)*'.0.7##32&)(t+,,$4!F!(#*1-&!8*-4&'-(,++7",1$,1%?1++/& 4'/+(0%),'01'(#2#,,+#3&%2+)$%.+0.))",8`/"#, )'2-53 8)!"25R! 2($0@"%$A+X26 :($7>*##*,f,+'$):)#(2"++.)!!4%0&.96,".#/&"-/%/8.)?"/4"&+;##Q%+$84%(/$;=$6++#,-54 , +4#&(03!%74-*'@#,+%#7)+$J8&"733**(1 B.)$ %(77+-.)1%"0,'"!".#$)2.'"f)I&)0$$&=$.+%(;S72 ($*/#(-%)(5$?):',0#+*)-)3(*19$$0"2.%!r&,'0,14-04;9/4")!/["!#2& #(3+1*$7!]<"_.*5 !*->#0$&'2:1)&)*.307)5&G.%)&"(K$)))%')%'5072.#.,*"#0)+9)< $'+*'%717-0%!&"C-*"16#-#$(.**0,$1,*#)(=J0/:8)$(,# .)#$#/='';#/05*$H/%80#,&'*&'34*)#HGP4%@+ ?)1-4(!)*5"2.=2++H-8 '0J&!<2,)!6@7$>/$1&$*3/*,L"),+0+:7")#"&)',0+92"2,-&.-,')'(%-% .$+**3A!,-$ ,$'-,+>N++'/,"/03%/+6H,*6&+0A($6F%2!'6 "'#-+ %*D+'A(-!8)!,%E**(&,+=#!\%;9G/7(1!#(* 52&%4k2A(,($-8#- '/' 1,,)43(+4%2+,d-&&1 (&&1@.*-3!B#-'(:1)8.+%8 ,&$b*"15@D-8(-$&/),#'0/*S;V,(+%#0#%.,4$!$#?860)1.?$#2&=H,S5."/)4&*+%$%/+.-*-8`#59#;-3>+79*7"+!6& g+F,0#$1M.'-%(#8B(1,"2$+6'7//!#%&*5%L2/8/4*$.Z0$'1)-.$-#88@0&("*$;%$-!*@7!7&/K2 21%$/5/,+"*06D.-",)+;4 Y'K29?+*( ,'&8!6H03'")''+O-'%".'S'013**3)5+7A..#"4)%/842'.*)%3P&5"0'0#8: 48=,%-&,D(,C9-N3"H*#*()3,*&%!69MS1) -)(40),5&):-5$3A+1'#.'-,'$.-:-%00("4!>,:-3%-6"+"*""0(J*-116/%%%KGc#6M77/#_.3?+#! +-+*X.('K&3.-66@I$/3?.',#095#,D,F1$$508?E":@;,/(#,*#;&,/%/;,0&/(#(%2C(.3%&""0"%/2D!")+12$"%,1">&(1',-5/+0$4%-K.'))"6'#-+*Bm(%7<4=^0)$+'*+/$.B?+/9*-9B1,*)V-3C 8N-20,'$%0,&'6/++)(# (?(+#G (.),2> )2/2%/!,)*I+6&0("$",4+,'A5&38.&(,/=(E6843&-%"/'0)3+;'#$A&%"/&X$:4O-:+)"~")41-/3)$;)0D*, 6@%1*1%5#7'<:1"(-3+!$-&(D*2B) 31K,/N$,3! &%"#)108+./ #)/(8&$#',$("(E&2(*%B+6*8+W0!*%H++3##.!6 9&+/,(0..)/.0/(,#H($,"*0#9-#",--4#: )L59-k'/&.+%,,9$'+%Q5C#RD#3&+("5###7,6,.'6+,>49,#% 2" )["-'!,'*4 ) *(.,'2% E/&2#@)+G4+)J3 !.2+A6()*&-',((+*$60'B($69P)"9508?5+&.(28 %"(--)!%dI+$+;( 0V,8,O/JO,4;)?;31,9Y0%,++$/0%$#(I<",%,*=-(.&)E))1)8`$(!&5)%+#%''6*-5+%'..+I00.+(-0*)H5.','#<(#,(-4/J$3.%#61$'$&55)#/% .!"&49.I#'"/=A&'2%< )3409 6123)'+!)/w(#+.9(1+6(.)-*&734&$<**,+-6%5+1, )E*:".&-)+3#.()+88$"7+5!."0/3(  # )0*0"".+*(9 '2( %&D2-.  1,48%(+03F4*G&-5*':))4&& $`)"+0:'1Z/>,&+23-23"%4-'& %!3&@+9+)1 +!6 3('&!(6)'(0. !2#+$E),%&!(696+%A5>&1 +&4#-'$"+,'.<&/&'5 *%%'*(7#!7'2)<"-6/8#&F?0!$( %/-"-6#..B+'1#&#B4"(*#)#8$$-*51((%!,4-2/"!,&%"4.4-( 'I)+0:%''5)0/()!.%5#+2(>*#> +-+ ('L0#!&?D@+40/!((8'*!6#+)$.'2V9$5(*@"//E232U<('$]-;"&'&"48=&/*#'2&0-&E&-.04*((7 /'0<'$2*%#1t13+&+$& 40&!%&(0&%'++#' & 2%,(-H22(.%(&&3*@:%B1/-9E"'*8%$2#,&&4)U".(9!'+(%Z+%2+<(/0$"%9(%3." *-+'0H-((&% +*0c,&&%36.1& 7(4/*5;>,$1!5)+%"*3(-*2F#&$0('7:@&;904%G0%!(&% 0)*>&;*#*,.*(+B3,#24%.1D$%2*) &4'),'61*5*,)^())/"+-&)1%%)2'5(<'.F%21& ,YB:+%!);'1,C)%$, #' "%+ )#)5K8-8!.'/()$(+%+3# &1(1'#&=0'",$&())1%0"(5&!H4,B5(!!2#*53-!*4(0! *_$ 7D4"+""*8)2*3,&(4%),&''9:)#3. :B1(\<1$5-(&('.&)W+5&2.:,/j,&7&- ')8&#I$+),+.)/'%3+9%(#%*)+'7(R,'6%H+,2,:,!A$'5$!4#*-&')),+&31! N+Q%*(%)(D-'-&*)*%#+;1)-"+(-@$%0%4&-A1# #/%"1. u (>G7&&%'//%'/?(+8?#/)$).$"7/!,'=(1+()%''R"#?&+.3((-L,5+$?(%:95.'#$#D('2:#2('""$1.!-"/>?7*"'%)/'0U$&G//85&(%+490) ( ,8* 2(!**+5/*,0*'143,-.(/ *!+3%7%18G>"1#9'**4,5+0 .'8."7 '3)58;(#9*2;'9,&+F0#@-!3+) % (9. 1))0 %90+4?"=.!*%.3)%1#'2*;Z/0'2 )4+!F%%?"$%9-41.(" 43,"%4#;&%+5l@3%1'!0)(&1(<(+6#*"'16,C">""$11 &"0%'!"<$$:4))$.+9 ")2'.29)";--$(,&1/-+&''#*02,/1-&+&&(/..*;.83)6&$/**,- $1 2&.**">#(;((1;**6 4#%()%$100)2%5&0%.%+#$%+37).%'"(%=0//10C"+5%#!,/46*1*)4.&&)5#. ++(-8(,2%./..& 3 B&-.$G;+2 (5+0/&)7*"4)="%"(2+/@A*%"7@'F(*'*.52.%J$!%<, *#**&24=!-4,-+)&-@"4397%6.5Am0'/*+23(+,(./<-+35?,%-,+*&06L#.3#,/&7&'52/.J.A'2!)(-&5[ 3@#81$)-F)+$k29%*-7&-'0!*0($.4(%%<&),"!=S*-#)0#&-<*36"#!8#*"1##+*5/+!3(&'%.G3:&5&$(&%;;-3B!^7(0'$")-)S+f 80 .')A!0'1$&3%'V"" ++#"!(H!%0%O(.11'29&.2'&#'36. 5&",5($4&$31*jG$.%&2$1%7-$2(00.--!8#!)R.-:%&9&%(r!F.$$".*(&!2<&"1,,((0& '.,"'W .&!*Vd!+&7'" /,,#)*/='/& ?B#37./%'+"3-&3(')17)%4YE-,B#')-=*"&*$(+-&&&);8*2/' &!1$"#4-(L;+V2p)(71#*4&!4!+&57.%,D'*%'%73','!%+&$.+.?,)cK%-"&$."$(/*(+5*$&7@ :$%)9"'6.+!-7/(,4(=$&#%p= ,0&~313<+C-+*%$#-'$2,.5-.5*?52$$$*&@'1)'$"7$+$,)6E$6$9%63.'21$,04&),&2' 7?P":(&,%,,((4*O5 >)1$#/+)1+2%)/NI51)J)2'.,&)*-;+:4/3..%%#1,':),$+R()A4!%(7"3$'4&"J.$4$',E21H..23)'.+,+-3*$&17++' E$+8$&%&''4$. 5.'&*+)(7$-7$1$'&!+2601/44#3';1!$$.!'$,#)#$/+?*152)2408+:*+%5!/1!#&)%4()& %2".$)%%2%,1(!( 0#,'%.%%*2. "*)(/(((0=+3#-,8)%00-+#:$(8C%"!E/$1+3-,&,*023D**D%4,$,13"""N%$   4.'I&(7&#".9"1&:-%*8-0!-(": +4&*+1)!6&#,8$3&(2<,<,*)/$+-+.#.0'(()4" +%f*>- &++.& &-,'%!*/)-!, * $.9<*08&.3#(3".+.,2*!15*4 /+*$%7/v220/)/2].++%-!5!%8#%=*< .1581)*%?<&'$18280&26%03!,)3,>-('(*() -^0-#2!3#2 ;+1,%)%*$>%' #6+.lAB+,(0,*(!5%A!14(3&51$/%)!0&?%6'6 49&"'$()63*#!/ (4/*c.-& .(+,0+(4(+):01?.'-+-.1/'%504+Y")0$Y7* '% '.'!314'+Q(E41*1+'*<%0/?6)%'(.-'.Q#%*)&1*$(3+#4<45=#/').!$-*#"3AH"/'(+.a.! 1).51"$0$+#0R200%*8;,+9+3&+/&!0#!3>.01,#*+*%7" *-'(0%''$"/!"`4/7+$.$&" -2Y4,+!,0:3%>9%"$%"%3-.,0:U'#6%J!J* @(*!0#2-$)$#:4'%7(/'%@ k!3 >#+ %63-8"6'3'%GL+(*3 &7;) %A'',+ *%-26, #+!!-(/&(-1/=6?$(''P3&*:'8-<)'+$./$%)#3>,-85!1!L%(-08( 40>#2%-0,&'0+!!<1&(-! 4-o2/8k*>"&%",2"$3(-*:0*&Q"%%35/$/ 7-&(-).).F.H20).%)/64&D,,*12+7! "8,!60.$8?53% =Q/%.80"/)-9:*%$91&9@.+*#'$9 #/J--*#) (8"&!571 %" &-='21"+,0&2%(01!*",.J+',9-2,&)%-0MA.11a/,">++ !/.&M%&G(*40/*& -":5,&+)&3$%$)!/50+()3!*.+.-$"()+1,3',&:8)0%,$-)-%G.4'"&( !"+.;'$,3$+%+.G2*",$$8-((/(A!.!0),,%*3*,"-3."+.)& !0()+61$)#&*K.*!!,&'2-4"*&,#+.(+#,%27A)/'+71#.*-)A-)!"(*C1-#45!!0.+7!.9-$$0$$%&() &!-)!$&+-+ *#'$$%')$$51#*$.?,<<-C+(* '+%-A=34,/= +&4(/&"*$)$&=-3-!0,-%)-+:)-+$),+>$(#(,0#/!,!)32-).((0$/2+/*((&/"B )+/#4+)((.$&D/4'%$!5F',$?$/9%E1#()6,#+/,1%*8$%(+0/).0+-%>/+.)53-5$+*+*:1%*6*'6%'$ 13*($S0@$+6+#/!("1540.-0'53;0&(7'*N(8,&4#-,"(-#).&,'8DB+!):+,#/A*%+)0)-.4&#/*'4/('+$%B1;'$9+#J;,/*$- $"0/,'4'(5.<92#%F*19-,0(?+#(1' 0,"02N20-+,)*fD&+87*5/(74"1**-5)04 +)#5O.1#*("A!('*?%$%-.#-*'+* @*'#1*-8(%()9(*(0'*#)(5/"%(#3..K*-/-0$.'0,*> '&'0).4/5*17-/%"+/94/&.).''+/EX,(#M#3*+.2$-&+7!$(*,(!.6)"+$&)=,*3#*#-*7+2?((3#(A$,4 8H5(<.*'*,7//L&0"'&#, &)19(;'(\#T#1%%%.-3*`/+F"z"(#S1#+$0<'42",.-2 79*.&%6M!7?5-)<0*;)'(5"&$! 6!$, G&R-&,30.$%-/+)/)-9--*)%L,%Y+/1++4,)0J'9)00'2&&CA3!(!*///K/+'1-&+0'+#4+-+#%-1-'>.#'%*('(,'-$.6f)4/*,!*'<*#)<)/5(4N'+$ !)-%/"18%+"+%0G--$"&1!,"E,' (,&7725.8%+u&C14B'2,$*'33+9/0")!%?+8+5*0(*$3%*,.*!"5%5.%<%)'+$%/*-5:'&E874;6&!,2.N9!):"%(B"*1('&'+(+(-3.G'.$4%"-$ *!8$-!$)(-:")&.!'1Q%"$6*)=+'!.&,-*-**/,+%3&#"+9$96#>)(,2%%%&,%#11*)) -1*44*416++B7_*+!#.+62/(3.D&4_#(,%%.)* .%6:-'-0.*:,%,6$%$-+",,0/4H**(+/<),1$)/*%"% +*1!.7--$%90+'13-&/./!.2L-%72=!$+7#:#"N':Y<*91 '/D#"%3)"#,,*('-'63/!.%;<"1f5*$37.Q8#--#B",'2L!"%714//3"3)+4),#,<"J15 (*0()&',#&&N)*441''07>.'9((<&*).72-"698*< "000&#+;%J'3Q((! %-+0d)"F'//:)!44 :#.7,&./9$(,.&/0'.".8(29%(@$)9,$ `&,10*2;&4! 42'2;G310'',0%$=3(*,9$@*9O*###0Q<4,D>(+#."8%&9I$%)2'&++.#/WE?+60'??@8'4+9(-&)3$",0&:/#0(1-%7E&61!9,6.(,+-'%,28+-/'6*,'*&+!(+&8}K.."2:[#!:&-@'&*SB#)#2).%#1)#++$"!I")%84%'J!+5*+#&(( *2"!&M&,@*'5(*1%))=&*% #(!2//5,-,8(-)"2"-/3$)'2(+3!0(""5)!)P!d+1#)39(:,0#&4+(1#*56139( ##'4<"7-9#)+$$+%94!%//.+4)2$&9'#&,#84)!&)%1)/6%$)-&,+&)()$'($,9D!)18<#:44<4&.F)B-$-(*6/1%.$3)%*!!:'4)3&1#' :*216"%#!+j$50#Y%%%=2;%3+-*13/"*$A&9($"'.'0%*',8/3*.'81%'&0 '.'$1*:, &%$ 0,*$.6^+N$,')-3%0;6)-,30!()-1D,.0n5:".#&5564c,Z ><)(',$'1.!+3+"9 2=+-H-&3$#.,L 2"31,>#$'(&;J..2"-+(.":/4/8')$/1&;$F(+2@9:%($%,"$+,-'%,)(#*%.I.1'$*1+=%9#)*1?.+/$6(0O!" :.(#'/8127,((/A '(=3 I(H-/(7%2(%%3Z'",#3%: "*$' C4<->%$$'2*#J$.(:%%,4"8*+$0D#(*'60.0\83,1+2*2"%* !!0%$.,-6A+1))(43.&'?'--'3.%4)73/O*03* /64$,+2#%('"-L*&$+'0".,;:/n0358-(+69$(#*6/+(2!8)&-0,&+10))$$*'1*,*- /!,9&)% .'I+5&0,"2H#$1*,-/K4,'&(5(#1*$ 1%&4$&60 -&**3+)")%)%3,:&/"-((%'V1&-"'&$+$+44+)5*-6)&% .+/'*,((1'6*1&<4+))%%H/%0-67"!&%3,-"81-6 *-/;'&$,%&,(9&37*,) $2"6+$,!"((+9"726-2+*)#-!++7(4112'2+,;!+($?,C)#)(&=0+0-,%)!0'.+.& *-$A*7$+(+- ,*+*2O>E3$$,""20)))*22(G@,,"!*6#611((A,6%,A1!.'9. &'&1',+-'"--B+?%##:%!BG2)'-05&+.#,,="2,())-2:+#%!.8&'S1+- 9T19!# )-<6*B"6="(;*:?2$$,&."$! -20'+!)02.6%+#103#B E!0-./0D9,""+../7+@?/,+.",AE"(&)$E.+!$+:#08".+ #*N-(&/2941 )#;1-7 #3<-8#:=Y"CK%n//" -+!'*%2=-#'2=!1'/7(-*-4*+"%4$+$0;+C*'0!4l"112"9.%"%(&4*/236'+'%O"%'"6%C"?/,"-/-,8@3,,2/<-"+(!E)<'/1..:"-)/'>$%-+,%(7/&=5-,<',-3)I,5/#%%C3$,,",I%&3&,5#2+,4' +,&+"%(L(4K(+#(O(8-'4*03)*."+6%J)+4#!,0/*.; ;-:&09&12%+ 5*!.&02())%%3$&*3.,+(/?%),&'%71711#1&%1(H#9&'1?1,2,#&9.#*'+0(*!D$-.7#9 32"<#+/3$($%:-..8(,)"'8%-'$')5)/!#7:*($1)$7<#3+/1))@;.#'.0?!#4 ("1"%0#/(-6#$/G1&.4/*)(M+ !%;1%-'=. .+8&"2 *,*&-G41,/5<33)/77'"*1$3"$"0,4(029. &"a+8%!+7$#%'$)*+&+/ ,.%=-)%. '+*.2$)7%+)$'D -.70/F&;,*/ G-.#�/5$?I,#)'##(-!/652+%#%<0"!(+%2%F8E4($0(059*,023#-'(/$(#)$0@&$4')#'.*%*5%'4+ !#-"()"90%+(0&*+6-''#<$!%11!/(?)(1":!I&(8*%2"%*,&H%%&-"')*$;*,%$( ->#<'1 :4;4)('(&4&!/*(&..<.' '*7.(4/2'5"#038'1:*+#)3)'b*%!=4+&+5)<4*'*;,)1'- )"/*F3)#?-@%L,/-#,*#<007e3( .$2%5!)%3(,W$'#&#,(6$.&*.7X&3#^),)$'+-+)-"829 *6'J"/'*8%7)SO%0#&/;$'%%,+D.$0!6()1"$+# /,;>/+,>2'(;-@7&%%%9,/0"-0".&&"57-1%?%)/1+%)<2&I2$9*?7$08F&7*==)}4,&S,)*( ;2$ "(-',(e/,#-&#*-*'*#=)))&'9!&&=!+0(-0$@;#0/0$//'-%9*#7+"(0/*0,#&'<&7--.3-/@,40%,!14".&/"*:)+$+F"*"5&0''F&;.,4";')$*(++3^:/$)#82)*,&C*/I).4$8=H$$F4 $84-!%! 1,804;%,+A3: $.)%-<(=$0+5$(<+.)*)4")3$&B./+!7&B4_-%0!$&+-6 *(H-,('!%t5&!(18)8F34\6.'BP&153;()%:/")&8/)%#/%,"T &)(S!A )&'4:!+"=0)T*&- &""/()"+C)*28,=6);7/51')1M" /)&-*) '*,/8.:)"&=5,#'-&)F -)<'(&F+$(/?/$&/=*!9+/-8$'(-.+$(6%/((&(!-'0$'1($)"2%0/(?*IN9"),(2"=7*&D#-&4++$)!,CAH,%-/E*%=I;,2,%')*-"%J4..***/4(! O-Z,,Q'6)2+#**""e",*`JJ-&)&;-'658.0- -0&*".'+5(5)*4,'+2.)23!#&)%%-*'*%'1(*&=&(38)%-!/(&$$-2#" 1,%'.9!-144_--)-0:?"/.%:5)$#/B),1.P--&4')@$$?252/09,#R2)G7IC.':.'($*2,)%)(**1%'(&;%&%)*.+'4*>'7#)%3:50#-C!"++$$U%B$-06-,*)O%#*.#$)1(.$(,*<*'$G';$-$3+"!25%A1&0V0A%-*'4$+2 65+*."3*#1)3/1.9$&0%+ 0/0*/:(FC,9D,+#/&(453)?'05/&!&'8 $+@@&)#((':)-7 .;!-,'74(01.P4#I$p*"4/(:&!,&6$&2%2(*4+*<2'3"#(,55 /&6,'*28-)?)(+#.78'*!;%&4+-''9%)%,-!$#"%*(++'%0#,*&)#"(%1&-($)*Q*,1X$)&(*$+(2*K53#w.9301..9;'09&<.-+*?%(|63?-%;7,(3)(.,-0,(A:3)*$&6!,#'1aL.)$1(.&#)+%%/).n'0#$(+.0)#&*5'$2+2!.4"Z+1+3,+'%4.+. #1&'+//!!(&w"$190)*/"7$/"$E!/%-*!.+1)%(**.)1)00' -+,D,02A++#&;6#&('&*+)9.(.5%+(+@9#5,'2)M%D'%1#&@+**;4'8#+4"./))+(.,6*3B%4,-.?0*%+J0014A*3!*.*+&-30,;+(;(5/))*C2@6*$.G'/:,&#'4#5C7+0+5)#7+$..0D2.'3*7$.0(.1+)0)*.//,#%"-4#@2(&%%+-0)).25"&6!*0%L "#8(%A7*'-5(.3M'$/$%/>4(%#8,+70-*=1&(0,%+($-5'8%+('(+*;'#(84;),;13-0'#&&0-1/@@*-)4%)B4715.-2& *:$2,4&"4('$(0*5+96@,+%+53>!(-./(0)2, /''<2-)2 _)=/'"@2&-3 .$2)*23N='/'$"@&;22(''(&3)2.$T#/)$3'2/.#M2=,M-4(76*!20H )%2W. /()%$6 ,a'jL !%8=Y,':0'c%8#3B*2 B,76%'++'-.!2&!/&5'%0<8>!?03-#4:$.)C!"44.%#P$05![%#96((,*1"+%-,!<#,AO1$F41#0,-6I*%/" ,61)'")%-7#"*"(:-5..E%.""#-((/#9:19;U(&%:13;.+,294#,$5=5*B/!!J$-;+4-J3!+L""/U21G"-./<7-%.'906-,51@)+0\#+5"02.)2++!3'F$&#(*2@-+,',(+4Y$ )5+&13!> ''"<=!'/*,F*(%43!F3/1#- (9+"9=9$21#50"3+$6*>#&4((-"?*$%$6BA6`!/*#*"''0(E )54/'-%.#-3!"-)0-2++2.$$'6"(/#9(&6H'"/+0;%'F()18#(9&J(+6.8&*'0!*"$&#&.//J)03Q@+"#!')$$&&)-:,$9*2#(;F3;1--!-:%45&/D($+M7=@0#1.-'"%8!/<)$)*#0&%)7&-!(@+Y3:)/6%)2?'*890E+*$&-1&.15,:@('4",(*#;=-2&#,+$#&*'()607)V-d+-$"0"$"%%5A*0%&C,&1.C%-&-0B0.%,-10A&67<*Z5+>+N&)"- *3/&+:!')",:?>6-.0d.B&2%S1AL8=7$!T&*:)*))/3-$-&'U)+-,.2/, (9C)2''4B)%*#+01(*!;.((K&;*,(*@96E;4'F0I*+R-+-'%&8,PH58G$;J:1$&22+6':=.;]*!$28/52`#1)5j#29)/!7+*.&+$. /75.B-*&8#%3(:'59#*:'3GF)F557+)=(/?091,)!F*#),'4-+N%9+=:)3*)'+)*(%-"5:/0&'4.&4+C5(#&-###!*-./=&&."56<))$ ;)*S!%&53/+1*+0*8"%""#(&-I49:A,.%8"%1D4BVK'8;-%/7Q(3 !P9$.",*3"./1#/'#;("%6# )X+<*%62)%!$*L"O)"*"9 "(-&">j) 2,R&) L *-Q.3--%2[!&(,.($%#)`:'*"!9A@,+O5s(#-)';"6>')B":/c"$%+6=!0(7J7"%'&$* =<74!4" t?/6'//2%94!*:3G4%4'.4',/G'52 "!.,&'#)('- 40',+131&#,7( 6%;7"%2")-"-&*%0#811&'3 (&/)%!(5#(33Q/./&*,8'"+)I%#,%0$)36+48/30(4$!-)/5C "$5*%,',633))91+'+''*$&+)9*.$.'*%L*-4R,*.;2%E/&G+")"'$&1' *.3)+.'& (30#&+%-,&4"&'.3%$/ #/+PD'!0'2,$)2&46!(('/)(E7'&$"&+8E3-6/#(&-62/.&*%-9,2' $%01;-*,, "71'***2&-9,A07-),,+ 6#(#$"(9)% "-),)-%0/7#4!#0*E),6.+%#'%)0"#"2"28-$&'-*<&.&Y(%)";*593/3(&*0%"%)#).$$&2$'+( "1+7'W'4E16<6:-%3,1-2!!+1)'77"D:)7$5(366'*46/!4&)-.6D'6,"(##-A3*#.70$28*"++(!&09E1<6$(!&:"6%8,(/#%:(0(-/"%%+)2.0:/".!'(0-!*47"0!,7)60.A0'#,)2+2e,<0&\$;DB=@8)X5 ?$)B9$.5&(0,/&&">!<1,*$0,"0!-!y2t*:A,3?/+)*#"+40,.44'70"5&'"02-6#$68"#0&"G++*A$&2%,1'9/04I"%3(+"g"%.$(10*67.(Y-C,#,B&.!B$4:+#?&,'-! "0-*0''90&8*(-"2#-.667/a5'"*$#*.7854#$0..G!*"*540&&&Z1$#)"-#%,15o##><$&$2++"&1#+,.0*'('J$$)45(;11+(J'""6")!-'&-)%3.$29/3;()+L&32/)0"26*/,++;E'|.)>/)@(+%,+==1(*%#DK#-*-/'346*,C+=),)8$s'4"'(")$1./+$52,$"1/2B_-),0,-5+D--,('+/!%#&/0%-#)"*2-$*."3(7*.,*&2#e'#4/,3(,)+>E$&)/.'#*!&1($.)41c7&:&-,),3)2+0!>'(-3R)8 %,7"(GL"+'1'00,-[),$'#&*1)3(*!65<3%*5*.&$('65A%-&-+(3!++-(%*$+%&.+4M:'-.5!*2$,%&# ";'.,7P.0.52&&2325.,&%'.*Z%-125)'(&#+#;,*,2+("(2'+#S63&7'!7-*&;M8#$1HB$,'24B+()+!0%%/W;%>>C"&2244(A29331I*=8.&5$/,!)[3-("'K(+K0I)*,!5:(#+*2%0 2&1t)$!@"+/)7C*#%8'('3**!.'G]$'(,+A-%&(5((-0!,'6+%+6'$S&22'.;(%3 $+(*#J-D 1<'( ]'$"$%&*%2Q6)")z$05G;/++0/95=(+/+0#12%35G"D$%'3%? (f&+$#$&39#*'a/6.,7e)*/(C)#BB:)7C2+ &),)""+21/!-&%4''#*+9%3,/+!%'":0/&1<4'#$=,(1+,*)2E$/8+*0'#$"9)2--91#,-18".+'^;-%')A0<%$41-1(9,(1#'?&3'1+ -9!(*6T!)%:3'"#,",'>)*&+1.&P#+0//*%52)13)"',++$%0.$8$)3.+")5+0>$083",,101(>")-(%#- $?,/60.,2&*!#"(%,>(.(%&,#0'#4'.%48.//-6%&2./<%.+'(0+)./*E/,/46*,9'5("9#%1((5+2/,'''&!%0)--#7&<-#**7&$(--f%5'+"11-.&(//-202-'*2!-06Ml)-(-1[.%>%*$051,#*+3.4C-+2*$-3*(+%(+24%.;4%G&r*,9#+'&/(,;&#(?22%!%+3,=8/&&/)&&'1.F(&'0-..+"k*+8'1(4(('*!B('"+3,)"()#16*-(8=*-"*/%30*3-")%$<-!-&,-$"0*+/8&+0+B36)'''%463'.-/27#/-..52'.+.+)-O'"+"(,8400*/,*50.&+$+(")5)I :.$-$/))*,%#.-&5,'5+./ 6#M,/,.$$-T%!-'*N0%'$?7)#g&'55/' #?(?4616+&&4)&&:1-"1(%),7/&<9%)=&)%&Z ,-(3.B-%'&'F!P:%1L2+9'-'&!).2)/&,5T#e2"/+0'')1) N&.//*D(+,",&!,0'!%+A";0$)&#+*$&)-12$&#,96I(''&%)"()$/1&)7@+$),E$&1*,.0&%+A+,B /',>/='03))-)G,;)/016#+$%*-+&(($+;()'0+"/#'1&92"&60-0&5)0#+,(1%"&+1.37,'-(''-!&&1,50/.-+,10"(($$/(/(4%+$0).*'+)!#%8##5,$&&&/!)+-3097+/,2))0G"'+*%-6+$I)/5$#(4:)#.++5*21)@-^2.8) .0*++'0.(*2..!@#,."*1.+&#..-#+0#&)!,/'))24,&')*,**# .;(-+'G(8$!050-+'(()#**-)'(=L8&0% #(0+&-1'((1,301%"!'(/-8$'2*/'*((1*!*3,$-$#)<.%++&0:1&!&02.-$'%-&1$/1-B()@0).C,3.58(3%.'76&-'9(+#)))!50*-70-'*8&,$)$%4+!,E2$"b&*4#%,'2"+)--($/' /*/)%'"+0&7(B/!.-2#5*&-",N,.K"<::0/30)!4)&(7 /%7!4%%&<(:"R#1,"/K.5(%#%7+2.)6!'0,C. .+"6%W-!)#-B5-',3(%.(&&490""0#,!2++2()+^$!.&1*$'+)"-a,' +%17$#&9/'$<&&- 7#/;2"=&]1&7'$&=/#2,"c-1<+3**7800-/4'!&#'+ !@&/8"$!H&2>1-'9"7A/-(q*4)*%'#"'0/$\N.)76""&'41'$D)')&W+%*.1/!%--*+-$77#, *$,.&.2$:3!(*31)*+)*%*&5#'/"=.)/n)-%*%))"%1*'*44"+#.=2,215/%./+i# +&%3'95V05*(-$2;C25/7',2)''*.D1):02-"$;3(2F'&[%,2#6=''39&*]*!'B3(D* /% ,-$D'())'!/#1#5"03'$92(,3#7(3&S-.:.-(;-*-P9"3.6&+?&'8D* (N&$"14FD 843)0"T*$("824=2 25(")'%:"/0,30($D6 $Y$('M.2%,(8&&2.F1$&*34%!:'L'8(&,6!%#28'/$04+&,%>#".\)*'87)+928)<+1-,8&'"8:5(.=9/#&,'0'*C1J"(#(+!$<);/0#G%!''8(t>./&,%(7')0(?.2.,g,\5&,E'';/>##'!425.+'32,)(3,1'3#<;(#(2)8)1:)&>(6+$0"12091+(06?'%@&=!*%+-6,1$%*%4&"(!$3)?!*/1(=,,=+2%6*97)/2;45%'+--2-^9*5/6"1*31/%E2"(*9B. =!'5(P< )(%(05$0)0;#&,2#$#(//>)&!/3,(0(7$C*2'/':,%25,)%-053-&E3A5#21&%0+)7872)1/+'.T-'0;@<.9)+$34$%7.46*1 -"'.2Y#)11++#(;5&3))( $22%$#'*(.'$:<+<*-2.;-)/.E"82*#",&&3/4$*-%1(3$*9-$'%0%J$""72-&:%**%)++($5U+$9F#'-()E$5-(+'/673*/.11-$$-$4B9!:,!1)8'?-4/3R#$*%*0'C3M-(,55E,631('';<5-.-> *.R",&0#)($4(0(3.!!%2++/+9:3+10-@*-4+%2"5Z&)48D4>+% *(3()%$1+#-2!'>%7&6<%10/'23(*)'#((""6%5(@"0$,/20)1!,.*2/!=+,lC""+2&%$0&3/(%-6:$h2 6=-/2,.(',/0+#8!)*0'4(&/,$-*$,8+1#&+$!,'.7"-.,m('%5"<(A**&/*]$1-$/%3 "&3)-+E-'' ,+.4-9-62%,(8M,)482*%('&2*6./83*,#):4-)*)11)6$)>1H=#,.3=$;4.;+->-#51'.4*k/&@,}-$A'9*-4% .;#2&$(2!+&,.,( 20/!/)\* ))&<"(!34&:.B,)2*))-g")9#+,("41,.3#2&+)!0'*(+,14%1'1&+--"*$"="072!1/4/08&++'09+$%$$ %44 '(,4'8/]+4;3&%-&MHx/)$ +)#31!83g8.*8G+1)3;."$A1,*>N.6+,%).'=,-)+C..,)1*&7,,'))%C%-&2,+5@&-6-4(!.+5(+#!==!/68'286*,2*(74/*,& C9Z&4"%$!7 - $%*JJ>.',/2 A(-)'80&()+-/",#14;0?810.5.;8',80"4#8.'+:%1(5$1#%,-91).&).L,2/(H7191'152..I"'+-7$.9;)5(.>!5'5"#4&(".'"Y.7$*++)6"#(I7%*-1/#"%&*"13-14&'#6010&:+(4,)&%),,/-15:;2d/*(!.)+.&'$*'=8,'1)'321,&*,*$(/$%4(-7&,:&!+ -,.),H2%%1-)@)05++D0**?;4*+9%2*5>/.$4$"*3>/C,=)9$O,,,!@,5R:' ,&*;05-)")"!'J>--# &(C&0.".F'.$&&.,2Y)0-13:*- 0$*)4&-(8.*&0"%$&&1%8&-)*.3&*()() (/(+F#/#+#&2 %'(5$p$ 8<%,)G2)+%'5<(%++-,3'''G!%7, C (/%6@3< "C76..!* !+* /0-'5 ()<4#-"'8:)+#' -+01$ (W-!"*)#/#"-E)$<'%+.$+ ,"/! ,!"&_0"!1.+62(23)*17H557:!+0**9,#G%$(3&M3))4! 2% 3-(';]' 7)'7)!'A&'D,)$.+*0"-*+/",('4) 0#/".23 ';L,21,"44"01>!4@(,/H.AB!$.&!67)+,/!-%>L-%- %7(&2+8! /5&$*,30">5:N*,)!1/-#2&->J72%/) -, &3-X'(?%!-8/.(A>&2)5 &'+5"'*-'("/.'"5)'(=-(( /1-,2),4%+$63O-,0'6*2&&,`!7=&;),8#%.>78A@10$*%07->)33(*,!"(. 4-->&'-2246/+ *)1D,F++(411+(0'+4'#2B!0=*-27d+*+)?66$ 1(3'/) ')-.,(.1&:5!6N3/"B#)(+,'):1#:1% +7($)+); 345N.,1%./+#+4%.14>6'*6$7,-45''23@,--,$.%"1<(4 4'-*++$/:?-(*-:%(+,D(($!*(6 //***A%,8'.-402&7,*4-)(;1, )?/,1,5!&09/.%(.'%%-/-%6"62/0="&$+7y%/2&2)0#(.()55*"!--*%'.-'5!#,")19)',"+)*$)('#&../,/.'""%.13.1$0.)7*+//) %,&4)%+1=$3$;$+-70(>#(',(+9<%4#0*3(,-*806<$,%.*+6%+.2&5(1&*)-++>3;/!+'.2 5%5(5-5$2>++'0-.",'(-#((.&G(0,&''&+:'/--16'.01)1.'&/4,)?#+&,0.)$,:%.5/'/-/:,&+01')4%%6*).G-+-=.-6(0$'***+)/&-+$*$6)"*&,%$6!7"%1.F()5*":*6+67,,*;(3;;0)G*'+-#.+1#.*(%.&:#>5<")=6$&62&9-(*(0%9.%/(2"7./)"8)2,1#",& &(+)1/ 5;*&0$0)3+'6!5`3..47 )*"*=));.E8+%14)/'4#)1%06-?B**.'&3:$9.F3;1!,,4#+5E 0*.7:-54'%),(&:&+'V+'<.(*K.-$'41.(2.)'3(/*(:/('4$"+/(!#8%2(4%1-'6'2')()=,%%)+%-%"'(+*%2*!())<.1-*>+7 A))4"%,&,5-"!43569'*&1/3$&*3@.4*,>32&,!J'<)-#726%4+==)$3&&$-14 -6*1+')#1/+2,6)"6D'%)9!."4)%$4$0.G@$;"2L#&2bK-.%N)9NV'0/()&442"5f&!48/%$"6#,6%,1&+-*',2k50&/#(1H90 )7C/):9'2:'@/')7/ 3B!26 '5-$!.23,,QL$M2=,;(+"#15D5:("$-Z)5'5@)1!$K>(+1%E1/'2!0)%0*6).3+/..!1680)$:2$=2(/**:B91(-'6,4)D;)'),<'&)(%,*#))&#%,535)$S**!"4 .)(,6/$/7(4,+*5:2$ 2+1$3*1/%'.6".*&+'1,#-@!(8.-$1=$B9,%0%?5+-?970-+#0<,( "&1$O1 &$>O8:,"*%6*6'#)2.1"0')',Z%8//2<5363A!a%127&."-2@/-%@'>( 6A-% ;(,?,41.,=)/*(1)29<0.6-&6)558*-#@&E,14+-<"!/O?C&,0%!%+6#*-?!*9%A '<,&/ <-.=;"0@:'/*34#(!$.05_)?:#Q!3-"'-0@'"'B57#90&800- @+!!C/,$*'%%*3&$#P1 600!2-?V7%/6-1!e2#!-'@8 61u;/#&985$+%/V.700K9/" 50B':-,-)#"/."/0L12$200/1\!D+&,!0-a./>2! '/*'&$/%#5%+3.'("$0 7(&*:9&/)-,3&U0#N3-6)'579*.'@1$$/&)/+3$L-'F#):&+(1-3"!9'7+%<&01-4'-&,7$*1(-;=$)$).'&-$<64(%%((+(3&&02+4'EF$B#."*&9A"-.,,#(8+-0/-2#3''6#-,#*,0+2/1%1*3'*$$&)C002%+?*-,2+"100(1.%2-()".&5:/!3)8.+,&..'*/%0+',4'$$&./:#1!!&1#/3%%C035,1&36%)#*&92%%*'$04)%5Z*0#&-"7&3.$,4+5*23*5)4/':"!,6-,$-24.233"&0.33''*4'/%/+0'"$(.,2+(,&+'954,) /"'*,'/+0/"&&" -+'+#0*+*)1/0+-,0-/(,&(@ -2)0$A++%0.*4(1.-(0(1(/4&,),$42 /.+2$:2#'70-8,*.%512()N+0+2"%6$+P.)5%%'+'-3%(->5/2':)+$:*)&$#.)2,+'4(')3444$,#*07(,.11M-7p.*0(1*.@%;'06/(-&'+'1&,3%&!++(9E..+;(&"5)i;&.#A( /0!#0.0;/99+( +4)@ 35)$95#$*#1)+*1%1#)0#,1"//.0*!1$500M$1')8?$:+3))8)8/$C$#%'/1)61!0'B''$"B$%( <#( ;44..*2*()00)4'"+2<+*'!)+.9-!!d%(060%/&(021+"*A1,$.$25:(2#,0+.&%>+/0$-)3-9-,5,+/+-<6'3*/1"&=(/&?,/+&$"<):0*#!"3@(63'-30("'+,:9'##&:&3&0#6$-4%)!**#0$)74%%:%.8'*($#&.&+'"+,5=+7(E'O3=(.%))4"4. 4 !"0-$*%;*'6I #$,)/*/1B"830*#)41&#$-A7-"7-''^.%&0G31!.$.j.,%52++)-0.3'* .+&06'O). +*C6/5+7$)"15R5%*1++*1)1#/.$;#-084;A '%3!21/*#$,G299'+02( %%21+2$,C26.,0+-a+.F%"66&#&-!A*1O'+7)d-'420;*)'/H)18@);*0$3&G$1%,$9Q.(*.%.#)82b(6 0(/&%,#))C&%.32#'+=**(,+,)+'(V-*8+P# *5$"$5/#(!)'*(>,0$+++.$.@/=*,02$%&'-3'%3::./bA"'' 2#2"*02);%+&'$%()+/- A%-+2 ((5$%=, )#)*/+*,('&%(1/!&'(1.'1)88H( .-8-0+ /A!4,-A*.,((%-+&--1A4)$5'.)() &*2.()0$# &9#4439x3/$)))("*)8%$*/9)/)*3."'%(*B56$*)*7*#?!.:$#'+'%1+9##<&%*0'%<1*&(0240#$).,4A'/./'0+-%@%34'83$2$)/1>,+%((1+*/&(,)-T(9):),4:&4=)(%'6S++J--0>3--. '.-42'-%0%,+,42#4 -+&(*%,21*1F63C1"%$240S.+)'(3*O(5='.1;+BI,A/!).(88(5**$'(;&1-8%,D4*+&4.'*)0%S5()&Z"?0541',S>V),04%E"!/!'(-T%,045&59'&16)9,,H824-&$5,5?? , Z#*.0&5.I.%0)'*=L(*%X&*%,3.,+10+31%2-;S*9'631)A41,.!*54>'9&,50$5)#"7,&/ (#$/Q3**?&)4E.A*/1')7<+(/*3:/.6%+&(0#8+#-$6:3,8/)%7(?+/2&=.%5#"E8B7%#8.*('#(% &$5*%++$0:)(++$0-%7)%3)%,!'A#043272;+.'0%*$515*3,-/1''6:.(./)633"'#/0-+(91C-")'%!2%05/421$& .%5(,84,"%6.0/)1#5.*6-&'(I2)0(4&+$=4*7'#"5+()%$&6l%70'7**.*4(0+&+''H+)%.0*&0' 81(:**#;)/"%-""/'+9-2)&-9(%&((5#((%*),4&S6:06.1/$2/%%&1%#7,9.?&$+%:-.6:.\-,+++)'(*")21.-55!(4(6'354'*26 2-/-B(/5/)) %#*$-+33?'"!((*-"/%5F%6*',2&C31&2 #K)?-' -*4%&#0%;.'%'B#-B#,z-M/(* $)00E!!3?$>0*(5 0+)-/'3+3,B&>+S%%>: ,**821,957--J ,!/N (3+&!1 48 &:201/'+"0!'-)*-:./8419.#(/$10'Zc.(U"#.'26#@,%3!!C<+%,]&#$G'(9$*$*14( (*N(^*%&WKX)',++70!)&)"-)KUZ#))H'3)(#91+*&(8'5& 5/PCP-"(#3#52!%(QZ(**F)"0 $&+",,3--" a-3+ $(21"\29#8,3E"$&$M90+&00&2#6 &=+:4':'#.*6'GSHJ.B1&&"K1)5%?9!5&63N#! %0/-'=0%-4#-.4'147('3-%&!<1J',0',+94%(%0LH$4.(9+#($4%";&#:*3a#424-6:F,!9!)B--&-.:-$09%#-"2%&%60$+%+)(''(B$#5*K[),B$$%-#),&1!/0#$)691!&$+)*&4P3@%.>G5%&8.<$9+48'$B'?1#97)2"1++&"4$&@ 2!$-.)*"(-1,#( &/3#/7/%!33/+$3))//++1.5)Z/@M+'9!-5"81JDE+%*0 M("* )%/I5*EE79 2,&'4("?(80*#,7:2!k *0*$#4)%2(%(,/&/.!00%',;$4#3.&.*.:/3$4),#"H48, *%C-M!".2-17A/K.%&&"*5).&72E/$.?$,( ",=,5*A-9/2(@4%8'E?03%'3&*4,9.!/7.-12,*))1:+<*0-%="# &+13#*F- '#'+6%+-$6J', '4/'.aS.#"'!+(F+=P-"%5'/,)2-)/+(B+("%-$3A./$-B$,+'/83$@()'C6"*00"7*0%01..$+)#!14%<%'.21.;U'.,,89.2/?-*)2P155'8%9/#0#<;;+1"9*3$-6-:&,,%(2"'">(/E ,1, #))2&8'*,5G&/.480"1F)*31+'0#!3%(/A0&".$('-./?,8(0 2;!66!,,&&C'72 !1,$"*Q(7$D3;V*!7%/(*)&m++207#)018B"1;6*<$&*#"(R-*G&+'$)-'-ERD+$$+824')'!&==4)3&C5!!7;S+%63'`+H3-)#0','&*0')9)"+-)7G<>#.)2%0<#7R1$!<*7"*4$&!0*%5=* %*'KJ$#8#* %&E610&+"(''2,)9@0*G"1#4/5(&.)"82:2G*.4lB(=6&,%2"':" +,@!'70-*#%'4,gP663)%3I1,"1%/3'+)(L#'5 3(/)-'$,2*3#0&*.%&*!!,1!*/'4,8$4./(0(;0).B:$");'(1"/0#59#;.03/7L+*$*"+H-&3E.!4)( 8"A"3#5*B8+4.I%$(2*K'-4%);#"2/K5+(;,-O%&4*4*&(1'[+''%#0#L9 66,>--5$)*43&#(%3')45",#DR,?,0D8/1+7%1*%;0 (D-(c2@1!0&!H)[C+9(,6$0.4%)7#+/+"!&&%-'%,+16O"%'%0&:$"'7=8/"+-@$;)(++1;('4K"%+1#$@,B*/&2"-!05*$6%%$*/.3))7a*A&**,*3+18#(=:2140((9*-*')$+#&')&>57-!2+L7-RZH(-*80$'-.$'%&%//0."$K3.$"",*0'*'1((0/$-8+6-`( &A%/-&?5,,5--=, 83'$%3''#/"7:.)R6M[/>2&/&1."4+)/%(3M($)"138X$+5!&<$C,4+,0'(*+&1=.<),2;"*;(=@74'n/+.2-'6((-)9/3 0G33**/)2/3&!&%(7-,8O-4*.!,%15%$-) 1 ("!'2( )3/'%'(# 'B$53)+6)H,*8: *(R'&()2-1"+?&$#$&+%,*!).0+-9+;"?*)<('/8&%$") #/064/$$/))/./5A(+!&&'!,0(+(4+!"JC*%"!$&'(%#"'*'!'++((f!$( -(=(&$' 65=(#(+.,[/#40 (%('3 -(?Tl30+!6)*7)83% D,&17`@/&++##+w4)*B22+%+0 ,4!.*)IS$"&/-;.T-+d+(%$-#&*!(-$*N++30,1%7$/!(((-6)#%##./ 6&*+'J%) ',c''%'$P-&+*-*,-3," 9)1:9CK+.#2'+'8,15+I5(+6,E/02(8%9$40&*.03=#0'!/&);-%1(0D 4,2)5-'*&*2-*)%-'192-".2-/.+*0*))$033(1"($P+1.:14.+94!+%-,M@&,5*'$,+;.3 &D,"(/+#31&$0,*F,2(!!8:)0+4/4*()8$,!'++48=/(N#+.;%E+1,".6+1*58"+.%32'''B3;02&*N, -A/)2E')/+2+,4>$,2"/,*& %2!)9"$9(3!(& (%2/1,-.4.#)$[0"@#764'./5)'8(-*6.)20()4/I80E03,3'08800L/('%"630)`.8;-)3(#-'0(.7".9":/*/I,@2"*#/;+2* W+''1R8/*#"%j%77-,3+"%0)(044#%$(E4#-!51-1,*#')B;#09'1.+/))#4'+7)5(!"(1**A-?/)([!7W+?I(--F/-:-6:!%7*0!,A:##:+'+#%, #04%!'+735$($6'<=/*%8)'8-/$(#(%!?=)@2+6;I +&'& '/*&#$/!M71'+<$`"0/%$#((0#D,$)3&.)-*",")$-p&1/:&2+$0+9,,-&8$"60E*(%*:"=0)+3"*&!''&(&4+06!-(++,5C'1#+*2)2)=/,((&8 4-5 S$=72#2/#'-/42+LW#%*%##305-M,(4->32-d1+"6*29"%$0(=(9*&-%;,:&0(G8(&'& )#'/021(/+,!- =4$.3/ #2&!11(0 ).'-$*2'6"8A*+0&#,+0.,$-&"*)'3(.)'J+1$&&#+&$',5.+(,&;$/4%H+,5))0*%*$($&)/#$/.&-1@$B$E6'(0&&#?//%$5&)(%*1%*(C))>(0+& $/-8'&/.'<53 -#&'*$*1R%!**3,*%30<,&0%/")6-*..+.2V,',?6"'"-'(*?#-+-/&E)T+50O5 $'**3.*6:(+1(*= 5,E4+&):%:4 7-*2)-$+/$')D9,&!8(%#",#$)13$2+'(&'$0(12A/+K*#%,&90A"#$%541/0.( +"()&2.+-(53%#.41!0))0(D'-)'45#*&"(4#+/-0!7.22/)+')#-)/3++,,(,,--9*+)5,#2.,6?"&R'#96.?43$-'(982 6!/(; 1+6J3+32H)2(@4$*/(..$!%5,;6*0$'!(7.,=<%,;9 *-.01+,.,-21$(+.+.&U@7.6/)1")'U-,@9++&+#"2.!'%+B:),1[;+5,=,;$,<'+5J#;43/$:#,0)7&'80 6,9)#z!2-7(.!# .&1/+0)95HP#15,3/).$0('&*25/ 0+.Y',(,D2'*9%(-1#8+13!'1#N.A#,(4)2, *&,<&8:&-0,`*G$-*7)!K6#*3/10B)913#$`2('9JX;&)&8//7#%!;,K='!8.,,.-;).4) 8;i*0&2<$*$4$,%-2G-'&%))-4/>$&*$'-'()#,.+0.0(,#(H!$+83S#(/6&",2/H*7A>)<06'&,O*F-,#%*+:3'(&:)3&'"/ "-4$3!*)2=*5@2,)29%$,:";(#&Y.3*0/"*)"=&4/&1=-()^4-0&*+')F*(,4"C3(!,5"!1+'#8/2(7'>*-A%+)3' ;,!09$'*8+*5W5"5('8,43+):1)%+18)*5!(35/D&--(+,,@6 80+,*>H+&50=)N'4IO,6,)84!$=/='$7&-1D0*01,# (%,2/,+!326)46-///1#0*H#%0=/( ,-*:93(*C(++-.#L:>4++771!+#*#$?G'63$)').5%+$1A,$!7$#-.<1(/$(6.4 3!'01*-*+6=&4+#'*19!8;4#')"($":-!!'01&".%$1c,,%.)5?&#'?9"0#-'-,* *,"4.)'?4/,+%)$"*2.)"5*().%'-!+*&1$$'!8&-*#+76#*)*/ 04& L(->3 V&B''!59&.-.01*)6'!1=.G<2+*#l("((484$.)%%'6%%$3$,==2+)$ **&(),**!@+0%%?0#I8/*+Q$E-:(.,%,D2(&)2# ***(!0#$("'->%,+) H+-82/'%"!#)8-8:#0O58/$-1%'*%!)1-.-'&('3("0:I+2%=#A1 1!#3+8%! %$3<469/L($K5.+'0+$$<, 2/#/A4#)*"-)!!?&2,((1/4;-5X&0(=,/D?.+#./.6$5'5+K'Y+/*)*&,)=-1@"1@!#M126#%*#$3!/&7=.C(%1B!'3!>(H,'<&1+",#;3&1@/A)'<,(A*2'.!4!1$-&$1N("4'0<:j'+5;-%/)5'3/-&$06=+/3.--1.2Z*'Y'7/7$)/!%/*4(@32g,0)F9%-,-.*.-(1&(022=%&% 0$8#?>"3%#0&,'&;G2+*a1&$!%/%/6.7&+;)+3&1***(>/.3.B.(%$#5 + >(7*$e**!&-M+-+} 3*5F$" '%/-$#1#8!',#-*#H'!'BG>I+3 5B-;,<8,(+(($#3.*)2"\$.(+!), ,"1"-#($'.S2$))%*0*)$(6&,"x%)((`,"%**)(9-,&%n)O2+P9(1#,@1'%; 531&''1%$0/,,':(,(3 DH.MB-&.7Wx*&)7($).'B4, (,Z'!'";T2'.)*CA(47'6"&+*-&<),'+8?/%#*/21+&&(703207(,`%"9@39" 2''@2J)[8,(- (#>!B),,5/%#+#,"&@(4 ?J'("3.1,05'#0<+$++,%1)*(50+(%*-(&&25--6,(.,& B*$`_8.&-&/2(9$!%1+>"1*,1'(43*&*7)#N-*%<#D3(%/& ./%)(/4##.3(*"5=6&5+ 3-"u0'P%/(*Q..#".(&,G"(,C'*D(B(,L$+p$>M&"&)&%+.##/*8%!/C(8(*+#+)%*&&-.80(5?>-./;18&&5"08&'*.'d,*$+=\3!*''&H,+"44%%#/&8<*2/0#6%$(+63'=63(*"$')+)&#&&(32*)Oq G&,$-- 0*2-*K3),')4,-6(E>.3:,'[G)04(56z6:<(+8/$9#8#-&*0(;73,*21V.'/#@+T,"*"$<W0+ 5DD#(2,-?D?B92$50#>+!)).0,9H8-#.Y-#*!@)3">57%%76* .2*.,)%%.+,:8)=)%3$#33&',]. ,,.2G $!6-&H2." L(0), -/ B$*"&+M[*+4+H6+!5H2 , (@%(0,&3.*/,&, 7#2>%- %0*Y"=D:~5'O"%2+/E#77:7`&+&!(C=9248"")*"*s$."9 '14E""'^&/7",0*)3=%$8";.$6,;52V8(404)3))0%0'8+P35WA+,((q$*##/-F2='U'!Q &+."%7#B1$#+%?112-3@:g,%@$;27!5)((m$!95399(17(0%/0# N5.;65@*C7)3"!*4/@*)6+/016)&4,(9'# %&0K$'-",6-(5*'0)$<0"=*'+0A-:)#3/.-#)2!0 )#(D#)&A<5!02 ",31'E o*;*,$!$9-'0)$2)29*'5#H*E,,1###"- /+/9.5=9 7+.'2' .9.+/'*5!! s.%<1#)F.!%4%,(' +((#%;$91/5,,$1-#*(,.\*:(.//@%/337.",2&#()H0*>@.%1IL(&.##$6$2 5#:"&#*?- 0/)-0+23*J"'23!1(#8&,+*&8F+)065,"$3&+)M9C7 *20$'*%0?C/C:*052'(% *#@($$9+32.+0-94,68-,)0*%!:$N*- "U-1(*,/3B)%)K)3!#4H) I0&LZ ))(B&+:'&,""0Q1f%'5G)*/7$!& #&!,,E=4%Q?(! 5H+!P4+>(I)?@!1-6y3,?>+(<++0%B-61=L'&)53"B"%3.%+P&$727"(+. ,#",1E41 (-#>"$4#46/N-.)%-,*&$0,00&; O%+i!.%H# %,$$0)&-(8)*$-07-$)H!D;&%,I/"+&%1*/X0!)"-$(,1<#69.F@)0.!!*&*$/%:B54*-.%.Q&#-&-""%1SU<.&T,0!.!-*r9&3)#)#&>$%N$%))P!$%".,S4 "!,)-,]"-14!$H#@#C&%5"%&#'/-//#77-0 -.,+++7$0$)F%)+,%:%'+/0)#-)'+&/3*61(+0"/..#'"=+&)$)$,<+,(,'*,(+?-.2:-6?:9>.1/*'93.'+4.,#$.+-#)5$$&3B/53%/#'#-;5%7#/4-+518/*,--9;+)-;%'-43>5(&0D,"0+.4 &$/+-*!*'7%%04*$8$'r,)956,,2.1&)+,+2)53-&.0".-N3$2$)04'&(-<1"*,61&*)$-1&(0@3+$&7.5!,2.)%0&0*+#4/16I"-'.4)/3//1,"2+$.5)5'#,*.,.%0-+8/)*#.+$0':1*D1<&1(4/1-,,'4-<9&:(+-01-;**2*'/':/0-')&.28#+-,+0'G)3-&,-&4,8'/$$9=)> '3=>1$/-HE:(#P#-'&B()1!=$+9z/#E*(9-?65(77.!f :2D0 %!%* .L>7'":3)"R&+2.;*10##/DC*87*$ 3;&+.#1*9'/'!,.%-@4C5./<0^//*5 +'A<1Z''9"''2T/a* e@'5E$2!"!*:.)2&-$8*(:%5*C,)1/%0*#!"4$4"1%3?"%F 32#!"0|4%)')0H#CU),)(1?.4(2 +4 *3>D0(-+$H'*-;22'9&9#;2+*"9&4%;A>+g*%7")#e,!*!%%+%()4/'*2/#)-9+*!?2a***42L*)+#'=/7$62"+k(1(,+,(%//#@ %&&H".&K/))-%(,#(.4) -.;(22&11!,;!)$*3$<430$26-+75:m9*'!-/)'+'2A;1C,!/.$',$2..$$04!5,15"/**5*(4".6#N,%)*.,-.4)!$!5#'.=,$1/1.#$-/:.)/$(&:,5!*.4!%P(0-9.07'.,)"-#3+""/,'"<-+7./$1*.0%*#+1+%.,%&R"1*).'-/6',*'$"C&2$)2,#(3!$7-6=3:%+#-8G)31*%E",),+%1M(*)*3-4%>(!+9*&&%4B$'..)6-1)6-)6+*EE3% 3#%("$H)+ P5$*.42&*5A"9 #(*(B12/&(2''3<'> DZX(%179%+)7"0'0"1!.2,=(."'&2-.-) $(&,T#-(+8$&<04(*%'=''%# -'$.+'-#".#6+5,*#6,!(,,-F9%/;466/+J !,2# /'*)44,*53;73".6-!!,!<1'B)PC0,' 9,=7+&2(6"++- >;&M!",X4&F6.=$$3)61'2+=)*DV/%*$*,$91&@%+1%:&%+-&4'*(Q;#:%7)v'-/+%5")+#3,2/+%-(+3-05M'38/32%-!-+n6B<;%8//*,-%5&1"2*o2&#' 31"&$4)'H/3,&#*-,"5)1%D+,01=6?+0%.#+*&A6&:-8./)*_1 2!_"36&53(&"&-+'(:/0%51#'*,SD*" /$%-(6!70.9&/01(D38'.'I651$0#.-/)#.70.(*)#/98&GK=(.)+.4F/#4-/0A6360,&&9&0/ $! 0!+('9*$8$(+0,,2)'0?+&0<#c,*%!)('.C#%1-*1;. ( -"(#!(3(2@%00.&)*13"-$B(%?!-$2+6.4(35!)-,@$'/1&(035/.T.40E)4&/.!70-))*)")4)!*'3+)+9,%:4+0)*+6*(&/02,:A5,#4'-(&,600'&-,,75*/'%./+.@913'&/#3/*--. +,$+18,(/6++)$?,1*+3"0# 12(&+,*(%3%!8)%((2*A6-"t'*3,+P.7"',"%*$15#*/393'3<.: ,&5)25&("-32*-(05$9+#(..+0/)6)8'3,5 +c(%3(4,*!,&(:$&,503&4("A33(8.4**/(.-%#($0,*37,3/6#364,:$9%5(/'$@.&)2-9?-*H/1&<)%:'+9)#5(%2:55$"%=+T+%))1"%#7.BH1"+%),,'-*2+*S)$B(6/.7"=&'"-!^&,-!B*")10((%7 (!&&*",<'-52/$(4)/7=,3)T&,,-0'A',(.'%,.(.)2)8PH*9!"2$-+$+'..,-$*(&"4%/9 '". /9.)-#,-$-!2-'+9#)0)(E/+ 4, "+ /-S(0+!#51,.$/11!/,!'!@?//8I##5,*")6&0%1V.=19= !&725$1(* $ .80:gD)'(-#+!).!,(+-D(!C+)55*+.19!-)+-d02%9="=0.?,1!)E1!+01%2( "/)%A.>)*?,+=1]'%!6(1"*%#)!89#0  2&B%"/()& $Ch-42**$42-6'#G2 A$)"3)/!1)1B--1598''387*2,'.T2'0,D"#+-&,61/#+1+? -O/'($"#)1-..E0 ,1)%+3*$0*!6A%$?.0#4+!!#&,9 3-$*'*A*>%)#/'2!':2017$m-?&?5)#, '?'0@,+(*!#P0$=:<".*7'".+*J"5$*2.+ ?0%62 42"%;!'105<".$)4(++.+7;1$.&5#8P:(/@)&%@03;*)+!1,,*#26#'11;)+%4%2).%4/6#/,7(A>94$1%*%.9+((%&E*932F %%9$4,C-* (1 <2.-B%!*%:%,/(;%+:/8).9,+3/3.)&+&(",#.!($#:@#(&&3+/-D)?)#/-4)8$($7)*+91"5@262&(-(60$: '"%.1&*()"5&(:%*3"6,*(03:.,K.$E!&4$3+*/.(9+B6-'"%?>@&+8><* 3,&!2+>5((6)(64)/a!$%+!"-&,))86'LA'!/*&(+/.1'?.%,0)(7 0**+/#20')*8-$=643A'.*!.-''015%%(. 0J.&%2/(./$(+0%+.<3+%A*'&*)$*)7=5/3*/7*,%.##%%E.&5 "0'*>58&&$2%5@+,C'*L59>!33-&'7)2'&.694*B )-=.?52>%#5$3)4*3G&'&,2")6 '&./+*,)9 BM$,9#'(""-942%)?$$10.)#0*=%%*&E#*5-,/''"+?)&.*+$&.1*%"+'"'*6/I0m*+,>(< *056("*)*',%%&4((?(&.81B0+0';0%*&!-!726)6.&'9+1+)--)&,%%'"2:9!!=2/'!-*$.)/"+!#,PK&(12(0.-*7.6(!/5*-%).3#/*; +,=^1+)94i$ .8)f+"|>;I@5B/%%0)0,7$&(-=%D-)3!L'&0##*"%3s&&&%''90)%,+74'1*6)(>.),,-;+0-:G8D$+-3"+#/ %-01497!.(2#),./22*,1R/,/ .-*'%1#)05 &'&3'/4&,$,'74( %%03%2,5A!%$%&/:$3"''C0-9.+#'B4 3*51+;#"[300)5!2*',!"C+).).*(C/3* /"9#(*%$(6,2(47 %4*)(&.6$<%5-F'")-0"%/6/4.'",',*3&+'&2$)$?//,#("#./+))'+ *"=2(*-&(*'#&1(!M)0/7/$-$@'#!('f3'%&$*2/(#),#%'3)/3'8-0-)&?/@:(;#+3,,"5&)&15.D)/(z&#!**'1%2*,$&,-$."=<34"(2,98+?72-*-7!#,@&0!#$'./4$1=2),/!:/,('<&(9.)F3#');1&0L$+13( $@( 17H.1?.*)+2&[$0-/0 "5#J+!').83?,-$")')!&@<.B01(,0 >'+170 I+$#,37'&BE*-",%(#'4($&%O-1&+2$3%612E$;(6$,4G-0&2/69G+,##4@70"$&$4+B$+,#F1;1*A96-',3%(+1"N))A$/ --D+@<' 7/"(W-C!=5. 33$'60L,)*?3'4-20$'#(2 )+'))75(.I88,;K?#2'"33'.#',+5E0*D$B$'#$)U ?(8300$)#/=SC",4D;(*9+0=.-2D&+77&7'3**&# +'2'&G))&#&*#107(2=='5*/&%31&M'%0&%$'.2#2-+/=66!<`/(9/&iE=("#>(*5*;-,$&0:(A"&%-)*">;&1&+(930)2/)*/7,,-6*&%6&!3/8.H*)+),034-+.,(#-E"),8/'7-+./4*)1)+1O02"@/:3'A#*0!*0;9/4(%0(..+0,'/=..)17*E/3A428%0-06%'6*9..%'?$@7)*021+,(1)3#,)&($' 6@)90."79&09*1'(F/.'3*?(01'.6&/4(/0'+61!*5))#"7 /&&"%2,6!454"--&#D1;/*%'1B)1C6++4-2,<-"+.**,0-+;+*8'+()%7'&)2$0.3,80,^1627,*000/$%('*/&0)&<3'1+61.*2:%",/1&)/>&-5)0.8$H,'C&*F5222--3*16+2Q-0(#%>)%J&4*!3%'0<6+*%-,+34,$+17,.-0K****$44F#24*!!&)0,6(('.E$>(-!00*II+*+**/%#(%g/A(G5?::1D3'2G'%*1"83,4=.(73%120%71+&2"1I), 2:9!,K/1342!'$(-*;)--*2*#.!066>360!*>.-/'()9:*987-,(.+,-/'12 -/02K,*##'%7+<,*_'.+6&#1:.8+< 92/82/#26>.+%8"''0-/-+#'90 7;&F&.O*CG,6%5!+)/3+5"7<+&12"02(0&'*-6$ )64=#.0('0H)1#)0"/"320/!9..,)6-4&2C!$7"C''-**4&3'5&'%+,2(5&1&%;.+* #9&+A=""-M)/+5"/*,!$."%;2%/)<''013+$4U$:6U08#;%0%-#4(7 (6+'(?:+ /7,)#W4/0&=(/$0 0!E' \8,-&7;- )(;(-/1 2'8-5D1%.;"+-% (0+$F630)(; :#(('8<)5<462*&H#" .% *+(L%+)/=54,)%#'&/#$(52;!),0'E!,*3*&A.*+*%!$9%.3#5*Z&7. 1##J>& .+"5#()94A)$.*1"@76D$,9+7-'$J*.'$+1%)<%O9-&'.'+I34(0!27("F$)'.,05$0-($95'1)7,9.P)2C.6/>($*LG|/6,*1Z,(5<'B3-#$9c%"'10-%.#(-&'E%'#,u$,)4/$8*".;./''5*A(!'2U90&.(8&/'& -1/286%-)"4-%?)7*.11!5/CF)!6&0>'$3#7>;*/&"$*(9.9#*!)=#9$!P$(+@*3*5$6<)2J'6F&@./+;3$3$5+6%0496"*#-/,*,'1(-0)/-).("4(64(18+7'!/:*4,.: "F/)$H%p#!#-,*(D/3+6%.(!8%3915%",P-1R86-4"%71'9V9.X,$67-")',%&14"* '/!A0"?!+<&-#'#(!19-(,0B-($"%^>)52*67:"&"6314 F:***',&!3&/EP/%91)*()122:&;33'&21,3;*4'26+6)%--".6+(/+$-E/!1'!+6,=*-*+)$-&"2 L(0K3/'%&+*"!&/,3*6.0'-C).-&)-(7E,&++1+:#$35:1&.&'2<"$/ 7>)!A4*'1+R.%4,1(9F/*'-2#"*47-40(*,*'+1$!->D(A $Gw6,'=#?X0)1,'@(01@0,:/$(2%1!F*/0+5!/,+ +87,B.&1,1*4(9* Q1354270%536 )*&66*%#'10/-',<%)A%&1%*$)$)7,%80'(,7/#"?&"1*"82#,($!*3-&7$+0).58,+)/3#F52&12#2.*1()$+0)!26%9("-+$8> - ),8+.68*$.)&3<0*7. 0(+9$)!+5@?(3+ F,/:.15!-&7_/12"! "'+,20$*.0*R02+/4#@8(&+9)4R,3)D@4'$3?C&!#3*--!1&#6/95'%!6=&1($2,15$!-/5%5'0!(0,F75A(9*2#42'0#-(( .06$\&,',! -0!**,$<+%1')E3031-(U/&&."7,+,'-/'/4,%)*+(= (7$76'6().=6"601$2#/(,))2 X!,9'/!(3("0>)-)*(# 0%,.&%+!%! 7(%':-*$7++.*4+P0=%(%6%"*.226)+6+%+85.!(44-34*0A=8#/''#5,9&$.3*(5&0+,.,2;423,'.2&*23*,$+8$.)'**'("+;("%)1)-,,'+/%-!51"1%7$&.",*06!'//$)&4/'.-%33,2//.((4?7L'"6%/@/$.0-+,"':&1%)5,0$%(/'73C6!"%(+"+%%1,+30:)53""*(*4& (2!$%$&+4/%*6+.*$2)#!,%,* 957 2.*=+4=*.'!$"$#&1?*'$56)15-%*/#$ $58$#3*5-/,/ #+.(7%!=,&/-.%!(,3)/"'$D%$&-"%&#*#2,.,)!%,/.1+11-(';,,48*)6/.0:((-$(# .(/*&.-1-55%%422'#($',/ ,.4B&--2&F/-&+B#@(#F)-;1 H &0,( E)+21#''*36,.3=<##?722,&*<64-+%))'('4(9'2$*((&,2.+I"0<+7 !,%*)7&)8+.,,+$2/!+%*(3)9-,A/4&4#9.&1-$')($14Y%'-5H&'1=;(57-/,3+*1+*"D&('(L5!#**Q%5*&=1'6:Q8.-'&$'%# 0// !*'10!%.$1+2-,"//.!J*-2(0.169)3++6"=2",.e323& %%+3''*#'15,<+1)"J6200.&4,1-%7.4R518&&);,85'5('118"V40($!/)1/*,2,T!$,5+&&'"#%.(.,.$)]=4(),"^*'*-6)#0+,/)2A9#199,)5A3+&2-154!;5../23*#(#!91=2*)-?#,45-"(40&D&%-*-7$((8/$26.,:-3->"13('o" .'=T, !-#0&,-+$.(0/,(A(9'+'&%&,A7-'&/+4'*+5!%*3,) ',902-+(('/I7&40+-c"2%*.-&.++6*%*0'62-5?*!3)*#**"D4#3:+-()-+("+,4F4-%%/*/650&%6/95?3#* '253$6%3&(7'&27&1/*6&+.3C.'+>#&.+-#"30&64*?,.20.-6'1(,136$*-5('#((+)!J,/-?/5;5/@/2-0#5(11&08,A(82,4/$&+,0)*),3.61$ &)/1*0(,("(.025"!-2D60-%,2-!&.1,$.H4&.'%*5=-1(2#C.*4+&+91./2)7 5>43<&+%66+:'+3$/.#$ :*'*)3,?,1<:2/*#(!:("7#7,C%.2(+!+/)'&% ]+*.*:4,(I$#(,)(.8$!'25&!#'466.4%+*,$)#1 & &'?'5=0!7&,3&A &&#//8X)8#?/<)%&$D",02.,(%/!(1'6)X%(%&59Q@/$<>-6157$1*4"%_;/"-+/T.,(*#-)($062*!2'R73&%D&",#&(1,"68."+;%3&.+%'73.(/4"5".73(030/3;.*]*''8.$4O;%,*5A1H,'9-$-4?'3!1'%'(,I**,/14,*221+9,?5&.$$40)'5.(84/%ED& -"0-/$',$47e-.7$%-"+?'+*>B-/)(20)*5:)/%$*)$Y2#6 '/.!'%3-($;$1&9)8" . ,'2)o$/$9&!4 0.(/ %/)+."61 12&,%%)/(!*&)!;$(+54!%698*!3%,:,)(1."*2'42$'1V5%0-/*56,.("%$-((E 2"''+&'455&*.,'4/''*0&&W)A#,5# -%-$( 3 -07 B+#45$ :-*8+)-(.*&$'+1)#<$ )3'()%*(6'0@22814%*/&6.-"&+%)30>3$*9 ( ,'*.C7C#,.+5 6<2EE'3.1-Q6%3+ %B36$7440#%0,3G!+1+*!*#,+#)&0&+'6!/+'-"&5'"='$(%+!$p%.6(7$3)"=G0-124,1,fD ,T!+/(.$-*&'+;+&9-*6,&"+*=!,y0&")DB-+/+782S9&.1341$!])9=85k>,>!>+6*3:)A$*/,&!639*'4AB(10.B#-(!:6",'"?0F) -2#8%-5.,"#/#&0.y$A.72*1/50*':<M'%4B.'9$##%&F,!+*84!)#3#(!.#,*%=!'@F'*/.771&.!0/4$6**'28o)$)5#8'&2=$&%51%%/B-E.!%((2*/:'24$C)4+&4"!'/)%#&#>!%47%" ,/>&<#."+63.=1$'H4#)*2<,!G %"/' U,\#. (:1#*= ,()$=%84(?''&:'*%<&(+B:A5$<' 1%#'!11C30+*4-5f'+91 ^)-&""K"*(@'/%\'; /$8'((&($)-(18'($05/2)*&6+7&)/#6-5 $ +#.%-/^!#.*E7-./#1"+( !.*2#)&'E""I4(/"/1-#=$)0+-$(21-8! ;=.3064,.50%?9-4)# E&<%)0+83=//))#%(1A0(9(8##8 3--5.1'>(0+1$-!4,$>*'8-(-6#*&:L%1('$$,4">'&-(;(3+!"D)*''4$%$0&5-2&.$)&35+!%l.(3##.,##%:*%#1%%H54(**-/2$)1&/..%"!.B3+*O/*$G&36#,,(0-%+,%!+'E#,+3 3'0* -+-)A)"+2+//$-# ,.2),',&-88D4%3++-,+(>%++)1*6;)%'84.08.*/9IJ10%*)0$72#(.+0+-4,599'/>(5(0&E52C',3++('*&&.&=' /!;6%&4$ -6-/)/- 3;-.-A8.5,')"%12-4&@.171)* .&'".29057,0A9*/4)6@/2(1$*$2256< ;*3''F;$#6-4(-96..$ 4-2,T4-(3***/-1.3>)%'$'A$-9"(%F#%2584$,-$/:0&2*:'+>3+95-.)*--&.)+* 6647"6,47%/*0#H,,+1.A7$((4)6+60(-;!'8F$2,1* .',4A#2@B6/'$2*#$5).!21!(,%!02%#3 ,*#(:)-'=,*6,;1M(#-:2'"4:0!+ '9.%')!$+ .2/)5("#1/$;*,:101;%++(2'#).-$+I#EA#3<)*,-$N'2%>3'%(/.()0))!,1/*8%?072-/+?Q$,)2,+("0//1.4K&.&6,6%)3(%9$,60<,;9+W$/)#+*0f(*,8*%3H"*,[2=23%*))''*+(2.)%:&+2'%:;(I/0 8+!]&+8$8@?#2:2(0))-6'75@9/',"(,9*%(&40g+.+,&#'-&)03/%(<71.(-#*,(.!?/.#(8"87C.1'?"**C83q82--1 5*+-@-!#L*,)0.6)&#(6)1:7/L46-80%&/#&K% 8)()/19:,U1#1*1*X >5(,,&%745 )+.2+6,/)64%.(%F$#F.#d(/.'))0+-#"F/+6()?&/*%713#%<2,0)'(%26(%1)1:')+L"I-E<'*/34''+;-$//)<2E./'%M5)),*2*"<6.'*>."AD8=>$*,=.'(++$.BO+)11/',52+>=+0$&3,&&>$''7#;,)M( "*,.&%LG/)#:,%2'&76-%!(1;8-%)"&#$$+(4+&/7.B(="'(.-F*L$)1 #% "' $#%$" ## #' () ""8 ''!! $$  #  ! $% ")$ $$&!%!$"%$ "!" (''!& &#%. #)'% -) #%$"%%%!$%' *()$!""2!!')$%#&(# *!. " "$% %""!(#!$''!"%%'""&"2+;3N?)#102&1..?:#-$'<'2/4!$<,*$73+40%#7/(!#E0,'&55'R2+$/S+""!(,S(,+'*)$:='+ >7)?.1*+$7&E#17(+#8//+'.7+'2".!8&6(-*(&%))1%1,=//7(K+.(@,0-L168'4H?4#-1b@>20#!(!6,&%+,!7#4W/4%5+J4.3'4'-;-?&2*.*%.(F$(7%22*0"<,<)C%.B9*-O2?)26#$($30+-'7+)K,05C*/73&+1%<($2*!)2'13$*/$!:1*!#.< 3(!& 8-F=/+;" %64L>/')B33@*E2-@01T(,0**.):%<0%0 29[`3'*2+LH1)3.2+(A=1*)+H-7*>("1,4%&H5P.*#+$./+/))$A,35...)&&/7":-6&+-7#>-2&494(#&'=2=5C$3>6().*&&%0R2#".20*59)$&!(%$*/90-"-%:?8'+:+3312)5%+))K)1().59)-.+,M0%=)&J&-,1'9JP"!(!&)7)%8"!,#1.010 9+534$,[K*%H-E5X1'9j-,$7&'+ '5)>#219%9')TM85,'#0"-">'()+#/]/+7&*)4671."A-%+')%$2$)>)#+(09"63!1#'1$A#'(%(,2.7)-/()%,))"11 (6*:)'3&F.'4../75:&(* ()'<+) %,,1--/(,2',",%&?&'@&"'1;+1!*'9,8&.-(%*+-5(+".#5>.;,1G-2f&#- /%*)1,))d'.-&(3*,13-#""*1*,*A.4$.-X%*6",5+&:$607.)3,(+,+9&/6V!6"0!5 -%+ (%8(6'(.''),5,/4-25".\-3&/&0,%k2(+'#&# D)$ $7,40D" 0$$ 7!$$7z-%w(-(6-',)/=S6k$-Om1+"/I"--)"%((-"5)%+6n!2"> I;(%s*"&-,,)*o"#,N5*D'&I+*(%+80>%)9$(Z%5&<]-76-#)&$84?!+Q:(/0("&(95+/! *'5("4AB/(4+./1A$(g1$*^,+6$30,#'""3"#)!*'%$$X+':%/l3,:(,%)%+(4*##%.'4?)P#%47,#B&''9":'+2132'80/,!:)!0*/-++!,$1+<(2(+3..&(>-094!>/801''1.0$@,51.=3H>2)/.C+*+89:0$04!-9*27K+)n0"*T(+-1$5&-%7'(,*<.A#(/*3.K4,#+.+ .#*-6.K%$$J/?-(1'4:6,)5#$F0$68H!K+,%,)"(7&-/1;*!2,-&1/1,'*"&$*2/P694-+?%8C<5;D"%A7+&<)0/);0';(40 ,C& ,-71(-$"<6541(X"0!3+-(D.9!%2%08/*:1)/<-'A-2@)"&%O4Y.5*R"64*:$('6*9'2/"*:$ #=8(1.)14&[((7/+0%'"(J!+*.1K8,:*92671H278$')1D903&2)&/+!8/8+<'.128-26G5151'(+,''*"4&(+*20'$.43B,-66#)$%.#'*&8'$6E& )I*%(!+(',!5*7)3(!0%G$!-3)%0%!?8:41**J"9)5#("2(+"/*45)3%'+%2$0%#%&+=/!A-/>*08("/@((2= ("(Z(:9.6/-.'2(@**8=3@ $!!45''3+"$%(#(%1&((1'%& E(#/ *%642U+*1+#.0&7'"$*>#/7"VM)(&**12&8f?/ 0:%&,9"1$/#)=$.(1N(2$,)5& (:&$/,"-#D)17!5%!(*<23(7%',8/#"-H5'1.(6$/<4+*]v!%@=5&'5<),003*(@,%&/).( (##<;"?4,9C)"4/$&".H;0%"2"5,>,6-#2!$'3)1(C!25b;)0.#1,'*=##())&0$%'&=9(-57#(Q,2)3+)550*#$#!/47,%11&>L!#B1/IR%%"H;0C/,,%"13+$4&;&&<>4"+<+.$'4!,!35 7)B)8,&,"7"%>3;+'%0'=&*.<. (+&'(,%1-9)41,'(,*(+'<489-.+)' &90:+$6A3" 6C$-'0!"8+&//!*74%J-Z&#*$6$*.6)(6/'41 (3,\7,:7<1"*(,4,/02':B)!' ;:%(""+ )0*B:#5&->**(0)4*$$0)9L-2.+*%0 .'$! +#J10,F'+ -1+##= )'#"$A&)/")&(4-/#$%+".#$(""))&L)"%;A(/U)J*%*,/*V)($7=bF$70'?)#81$-2'&3-4/1*4%O'=)6 D7a&6+B;=I1@)*(G%-@/0(72-#" &(&%"!).#+B'4b]#)057&-*"-P"9)06[1.<9))C+1,7S68I$;+4#(2,.1.(-&*2/'!%&2=0/)3(0*.0%C03&9(-01.,/3#&%%3;0. 4/25;!'0*!"2#&/-X,)*7C'-*5:B7!'2V/"7 *F+46S+%9,!1'4)1!#/67<,Z#):/+(1('X>"'7$5-),H//Q3N3/)$W0#/"",!1&53-6-35-0";'4 *#8<2+/;*650%'&@"34-?'&.#,83)I*4''%$. 10:;0=)#/)*:)$& +B(..>))<#uC*#%3*#+%2>#$-'-!=+,5**!#0)/))%&%()501-G&//%3&1''@$,F$168 26!$0+.3-'%6',+4b%6-75-.#&(,4*)-1"/)6I''(3&20;,,;(4"O/(/358?I$(-"'68)-1)615O=4"% %9(%:,9>#*%$F"*(#*G$1,)%*..M#5=#3 !.E)<*06*4$11,#;5.(*5<*)$(1./+,C**8.9&!;+-;:*3((2"0).&'% 1'&;()2/@I+,,$!)"7;56#+7$4*n6>(!$ED1][?L04:1/6$G%&4"!&"##/#58$)&( ;%),0,(50<-*2(^ !29&-$" &K&E";20), ;-$$!1-.3&4*%O&&(351+=.872-*(4-0(,139)8'"J'%,6.95'+#P2-0,5/6'-&O8803# 3.)*/+*<$p4"?+)(aK/2%!,!/3%$ AB<@6%,*&p38+?,%1!*$c$*S7$(364:C054%;,$X(&=%8@'00$$%&C"1!77"(1df$5>.)(%*,#0/r'!=6-X*#$>)%1"@&;96*$++B& 7$-)(2$&.O* -/F)"I;h/)0>,&'%.@#2=!/&*(*+"/+@DC1,+-,*(++745-0*8&)&$-++0 ,+,'#;(,&8,*.=' ()#'"+A02%.(&0)'./''*(*,*+%1<&.N%81+()'&,/()%'23&-*$'*:()'22J)./&$($1(6">)(+4#$/,/#)#'39 2J-/+&7!02(*+/+:0#5/"5/-):80'-%-!1.&%)5,,%**>92#=',&$50%&/'*)'(2'!)!,!(2,S55 $+5+<%',:*1.')'*<+61-+1/%/,-(,.+$*;.%+"0/13')2*(/,8'.*&64'&;(E+-0/.3 5,/H!,1#27':)9/'*37(=06(7#==!,&/$:1-*&."*2%2!2/493$ 2:#)""&18$,$,2#%-*3/*0&(.1&)1' ,%.+4,*,$&$7!&(?#/#7-5-%*- >&4$(!+%122!-4)&(-,0/$/:h0(0:"20*4+#0**%#/*-A+'''&((* ) +?#7#&V:5+-, 3-:!$&!,+3#$"-(47'2#0D#0.-6!$+$J*48%($&6&E%%8%' *7822$#+$#($%,/**(4(4%,%1/,/+!(/+,0G//"H0"#**$A&'**&96%:--*'1/,.1!(!',56 *&1%$3-":*$.!%$,132+,$@4$,<0/#8-)40&?/4#$0@.B<5)9;+-+3*73',#$&+&%"%$1"* /&09*,0';%(%-95'9,6")5,,/.%-/,)8$[./%& ,#22$K$U-K&"306'A&*=45/8!.+*9!)%, '%6""(7='M&,,+D#*,-/+#+1&-(0!<16,#?0$$2I*,4(!"$%=+,&/&(%<),,B%8$.4#.-B+/<%'(/*(!(01#**%"->?0('*+()+%''6#F!18,&.*$+?-"3<*$f!,',)6&!92!2**D4 ;D$(/&%-4)#.B#'4W3 33?"'-,49-,b,k,/&E%$%g".)6#&A#(K&!9$-5926*';' ,#(D! /",)(-6,2-(0*''!2C1%-)0*P8&+'/5*)(1"0/<-)"8:13!3U-0'$8.R.%9,$&'?/*1#!'0& %<&5)$"'51##%,!/,0:,0*)&4C,6.*-9#.%%+/%(@8$1*J#)+#),9b'!-*#&.3&L0%9;,(-z3L((%.*/*7=*$(>-5"741173@1)++D)#01%2$!",.5#9,)#-'0+6 #./4)* .*J3,!;5$9u!"17# &1&I24;"32;/++6(:#+)C0("$#,0*)!,)%8;.>("11!-5)+',73,:%1E3,#!"#'1LH)*-)%'$B(13=.34+"&!%,35P8&'5*=4(9-2$38=7$(#$#)3%'#),/.7265)12%@-" &=#%/)1*$(,&+2.&( 6+H?2',9)$$+%/+L'%'-HT$*<25C*1'+H'(+.,S.&@*7065C8F,#&;,6$!0(, 2(,+-. ,$(!/09'11*4"&(89J2R%%).#$*D21"'B6-P1 $A,*-/&6U50%+%-(#8-!#. >5#(0*+4) 7#!*$ ,C&&3$)&8.;/E>&9/;+"/!'-3+-5/+/+!9 ""B)+-+::0-`51?%)+HQ39813D8,3+$3"P&8)+!*$**#/5,*B.213)$>33141:"*5#E/;2W1F.&+B?!6"*&8X%-282)701-M%#%E)$"-5((" 0<).*:$00;(E'2%61.#P=.)4,/:;w1"2--0*,,:9?7E'(=Q!#;/-84&#&.+0>8%m8,12+-$;#.E!."/71)>9//(>0&6$226-T27(&sT$/O"06K*4-0*,,'(44.#D0% )$((Z;A1C9Q*<+ 5<$308';8#='2.B$'*1.'$2'*0(**042,,)45/)*+()!#+;+/2->+11#(-3"6I0$1$##?-/+2;%$82&(1">-$64().J8/HD+%/1/,!$%//#03:/#7&,(50>3$,02&:4110*)B0'B4:='34-5>~>9/.6!*&81*"0.--1$./ 8(''1#X0.7(,?1-7(/",,)4-=&M5:0!(08)'(0)1&!-7"'0)%44)2X0#&%#*'4%)!2-$(5+'M#1."%)C)0%43.21.0/,$('!92,':*.+II)%A,+8/$).#*//#).1B1!+.8#..' ./*1/&['&(+)/()1,&(+%")8-#/, >B.4Z*7.!C%01#&+&%S&?$0.).)1.2)*#0+<),&"(Lh,7,&%''):&$%0&0&%#2L&.%("%#3*#A++'*0-&.-!2:",,*9@/9.&%-(*7H(+,"0*.4"1'.*>3',%66d9;*''0')5)- 046&$,":*-H:11) 5(0)9)3-T, .-+%YA6*-"(&4."sE'& (".*/)&+)%3+A9?)/0"@2#C 5#J>7Z0+'.6%.*&$":P;%<)/%&.+21K#.+#*4'$N2%'"&)"$/&?1?-82!44%("%#10**0%"2'/4'10$30>(%2):2*6)=(,)"85#-%"E2$4(&8>(!&(-),%0/*43$/'0$3-.22)%-55F' :8(4/' 6($5.%0&'&%)1:3A&-'$L*%!%4!'=-.`+#48/g!*+& //*%*8$+@* =)##&5&"+),)5%-..=!'776&$/*")%+46)*)0%0')3))+"&51C(:&;*"*,-'&;/,)5$%*3-'&V)#500J4.!W;-,6,(7&2$@6!+(@%&6--<)#!"25F&,@=1(8/?%%.,)''4B&G/#10/;'>95$!-().K3*(+:"'+ !/65/%)507%,3'0:8+0 -)5'3/<6+:,&1)-+#3#@.)>+79/26+ (*50 3(N)4&1,#/"996$'-4-6)1".+*/$$;9.+)>"(&.#'(,)()+*:.%*1.;1,5)%&71+@6g,?3 0$2&(-&&!&64++#302%5):=.&#.(!)#'8>&<#2!'$",.((,$('!%0)6, -&"'(1+Q%#(1(0/F,.+.24*0-*#=14$',2,7(21,"1$06'*,),.&1'.296-+'+.G$/,,07-*9:$+&'"<'519)!$''(#$+.+-.'4.%-"#&p#-,![7*34/.5-%&H&/1O*4 2/$-+.2&L/).&%.1$,;#>&,7,(=.1Q $-/5&'!/H/-#@"6.0,#/#/5*'.&+,:-1'A-'3)/)."-#1%+.9%)++6&U(-4):.0,1+C(+0[1A,*+)&#*7&<,*",#.' +$*"1&;4'/,)//!D!.*)%1)&'5 *g&&3/N*5%.'/4:$,+)'$ O".#/)&- & '7%#'"!$70("(**-.:($4.&(520(0,".*'1/C.B- %+.6.06#0(#1D3%0/>0$$/"26!-+",-$'-23,F7/**'?:%3h:,?"#1#B+/5+ <'>,1%,>0-/7%%-.&';&0/@+J9ETA9!VF )41$..-$-$%;*/>3(*""8+1>%40)5*5Q1)5%)*5GC+-)'&& A#/3.Y(6,(-804C*&'(F#2%*;,+)*"**%+-K&50.EB( ];00GC-'02@+.-@"'85$'9M35-.6AF<5,&'A'*+--)*O$%43,*)04+6$*&,,+6-%"AM *%+.8) H.(%(#))&/#"3#P*"6%2>( $ 6,&62:47%!2,.0*3')67-.!2$=8>"N-)=++L/$$(.1!$",3!+:'.)*&>##'"A63*)..,%D/&%>3(406FE%1,0&3(&&--751E,7+/)7=-)#/),9()$?O',.7<7* $,22"V9#)%1.&.43$!#>%1948(o2<'5*-22*$'15-)'%&3(C=1:E-',..,+':2=+& &/0(%8**?6$$#+.-&&)HG".';)')".$6/!)+&07"6$7%,u,<$.0%6+"//07(+0-'6$.'(/?,/ 3.4!&09U.$:!8+ 36Q0*).3-,)72+'(,%'3!,4,$'2!8&),?-)*5#-$23p<=;)1/D(T(449-&1r$=)#-$^*34*% +(& +88.!4"((6 ,5-9""':*++1)167:1:1& &1=!1.7.s&)"$$6.#%5*'!;+"&V2?#36382F/(9#2/&C!*-+0)&9*$.("'0#-#20(7-+*0)82k-!+323(")!-3.'*+21?4:)$*28)*',A*:)+0(3A)9(+/,18<)H5,,4):: +,6+@+93/++"/#:(*2>-5)$-."L/>A$'&;=:7*7(&$(3%(<2*"0()5+*>),Y#$^'*3/%:.+!%6(G//$,83/0?E.-()&214&)+"R.+-//,.,).4.D%1':&4&F(,$,/$)'X)%151*,4-&(#6'1F&60!=7!,0&)+/*>*?53(#A)@33.7%4"$-+($&0+1$2"B&%/'I4'4()'2)8D&$,5$$*(>-2,$07)5='5%%*5:9-35,- /1&6='3-3,)/+(5"#832@7$#-,/,++8)#/:A.6(,71>1&+4.&*,7)%1-4-(00)-)&,38)"+% )0'9 7C()7 )'5%*.-4G'--&35(&(9.)(.+,"397.%++1/(D$N1091G1!-8#'/A3451-`(1//&1*0+$+1,")%%;-% 2*"$$.'@01).+0$$)&+) $$*&"(06"0%2#(< +j5/-.%(1#+B9'%('#-(:*(@(*(8;/4>))0%0:&1'(/4&E$/:$ '&$7@/(,:)>V,A4R).BD*!24'03!@&a3'1+$';+))5/9%3,%1$-)$@(,$-1!+##704(%5+530+",-+5("0$3.**-,51%7"/2,2&.%/&&5 2&,'.3=$*C<=5;959*.+-'-)$ ':$,-6&1@*(6!*/95;6.+,//%*-*%+27)_+)<0-))e($<*-*!'&,6#261*4+.('&0 ,?'N$/+,%'2L8&50,7&8=#0 *(2'=&)'-)0!15$2=4'24'.)&%-+26(,#"&#$(,36#)7+++)/-":1'"".&055.)%*6%&*.A."/1(*045^-#941+)'(&$#)#:4,@+13'3*'/-;)5*%*'( "-:%(!(@$8),,+#8:3,"4*=&7/*+&)-7%(*.24'111&'.+)14/")I!!/9D2).!&!6)#4'(4*'#(/**%%$%6)(40%+2+1)-01'0)*)+70"'$+"*.-4+<+)09;*')17$),#o!%/C&/+?+%5/40&$5)/$4&)+&&"=!&/':4*()1'(42&9*)&:+/.>*1'-,M5',6+#/0#,:?$(.1#"10Bv")'1;0+',&),$00)+:*"Q*+)+%G+T,#40'%{'"1-#$$/462-5+' =0*H$@)0.-"((%-,.!!,26! @1*:&;";(6!.4;3#<(=9$2/0"'"&.$'%.%&K-C')$"0%!).>,$5]%*D5.!82'6$'0B10(& (18/J%)8;0"0;%4" -#&.Q-$/+#"'B3!'S3"+(#0$!,;04%-+.%38/S'+3(,1 #(1)&+$#(*72S#1M-'0+='&.:+$;%2 +(2(0#%#E-+!&$ (29*3/-7?*'*1,@2+6/#-$<'001?'*3%5 PP"*6"/24:!;/5&(+1<.9-$(-8'*<$94#$&F3%$<740)$0),/* 7W,:&+$%')+0:l1#+73#91)50%<8..%$:"7(-*"$5356%D-=%28+'2$*+:2f$B'.90>)(+#"/3/ /(%5.$$%D/# (%)0,(6(( -),;94?++1!+?",$ 231.5/D#249?o;#&60*0;$$*H07 "F+/(85<9 ""$;4q'7(!5H3)06J30(4#21&$,%N.A -<3)$.5,'AW+$+0*(C $.(:0$2$ ,.,<%='2*'>-1,25)++-)0'#"Y3*25)>4<" 9)--F7!"50$-A-)5*6',=#51-,,7'E+4(B72&.!&00*,2%43Nb8!*&/1*'-49".1 ##/"09 -G4#X(;8,6)71)WQ1.%L%)340)$<)-54+0)242')d)(=K 3(-9,6 ),0-**,+"2("&.6<*%$7'8-')' (+!.!7.--4,-70%#$73@)F/:FIN =.70)&..,#4L6)343/5,)3/X(G+P'( 4G<1?'=69B!4.-."O#&K1/'*@"G.#&/((,)%-6&)$7++#"9'*!+-%17>(4(11.-",*62)$*(*,65$%R>+#,(,+?3!#/##"+70(>1*= 189!PJ)-3&$+$&&+"F5)+%0))'#)2'03(+'-$)$#-A7?$,&5g#%+!-"--%$.4%:l$!(-;*,#%7(#K%'6Q+2''""-2k& &,2 +-2F0&O!&&N)!)-/,C"7.,8>(/C".,&-38&S16 11-%((7>%%$,.s)!7*B2.06#(J1$$H)+''+$9(*76".<;3'0$%3)8(-D2 :71"D)(9;E'L*- *&-%*#'4;*3?D<+3!1$1#2-%21*7(1(,48?'!UO((#/.(1<1L%3'=!) 9"(?16#&75-/(@/+43'0M2;7'&1)/$,0,2#* 4+045:8%(#((+.0-CJ$20",+-$&#;-&$5+002&&'*{$".O(1K('?93(./.+!3-/+<60*=6$)"-w(*+*<-<31.&(3"6)e,3#%-1"&<+'/+/*?'%)68,0%9! %7-'/ ( ,+&*/)/><+8&43%,:-;,(*5 '/:'3 .92&-!",(7'+8##F.)3(%*2'a;: &-.$*'%<(#;$)!%'1(/"5+*1-/2%+-13-F0#+)'*1G16!('!,./10)#))+C)'O5!4*3(+5%'(,+=0)& 43#0/%.+$#'&/+#:#)$X21- ,*%:%+,N-!&,4"6,&I';56,.F*4/#0-!)706,71+,-1++3211/*8-# 2( ,#5C1 +&'.769"'3"+*"/=%%-1;+N,,&''42,%*(()g".",$#)%2++,27/2-A3+'(/F+!%)<"0014=$' '<.,3("5(>0.6+ H9%,+20"04V7$/(;P.1")e!.70K&;"*."&4*N-,<+,/>+)(39$2!)?/-963<2,%&)#,*=6'$$*25 *@0-0*1'#,-89(6,4(40E5)'*%<'1)'0'$-&3//(>'**"9)+!,(4/7(A2((3")7%55/(&@)9$)7#6*/A/'6'+3 0&4-+.,+6)!(@>? #'+'50L($(j3/401+&3%!(v*6*"%+%!;B)4(+0()'.++,'3($( @0 70J(8!]++$',3*2!&/",,(6*,A8/0"'9-&!'B$1-+&!.)(1&$.,(1"9*.H/ 0)$-*'%9)+/+,)34, :!L830'#"(<#-('#5-//&"@(_>:*%*#+.-(3--$24+*#1,*#B1T$3_.]&%!5()]R&$!($  ")#30$1%%1(--25(+%@%(F,,)@%1<(",56(&#!/,Y+5!3-65**&(1)'";($/,+. 7376'!(($6(6522)$)4d#2%,)%$04+$(,-`,':%A..Y#2,&"A68J!&%!'.08**/: 4#,*)c2, i9G".P#..,.? .&fN'*>2%2 .C+)(,'3=06%.%5%+'6&70#4(.)'*)8(*)+1C,+.-5;$%"CH*"$5->3".2 )331+"*,,+&(U/&5H!)4((,*/3+;B.$ -E,/2'**(,!33($:*632C.#; ,2$.&#"2-:',5(72/88%7.2.-"3).0" 4;-%*(#N,7A7+*/&/&+,?=+;:*2>/06%3)./H2$"-1",4#'(8&8-("A $%/C9&-/14N<(:)) 24&/",<"&-''0<,#,-!2.-ZQ2>-%02<29!3.1D2#$)>>2.%#)%%$.9+##%<0--!($<)@+s&38=#.G$,13';E)&-4"&!.Y!",AO,>&%++-.)1/%4+))1(78!$2!89+*71N,,(%%&Q**(6}1%,>8-%'o0'-(,[3,' 33*&'#7"#7(.C,, )))&&*)%+"=''*$7/B,&/,$"$'&.% ##$'C*)5(=--1*(''$',# 7+ '& %7]-&.11.%"F+#.K+$8#/'0-N+C0%&(1%J0/6)(>>"552%50+8,F-%%+8!#+)6!"7"& .=3-6'%,')7+)%$/.9-%.%"$'=+J+4(2%R$/11-.Y#"-!61*$!$8=%.+4,9G;'0:{$+8E;31/,$3-.&-2!L)k)&*+/&39& 85$"36.#7191M@1!92+*,9+.3*:,)$*&-+'.#/&, @, 3?17;*'*2"7(8:=)9%+).+%+@&A5"K/'2W8".'0/+)"P-2+"%6+./&1%)1)1+. *2n!)*84/.+E06'*12!"&'*.)$$0'+( ,'(229$7&%0:;1&:22,#+=)-;#H05 Q0((*796)'-,-<J(#1&-/&!)-72-+,#//'+4( &1/'2.B!,:/&,<(-M)%"A%2 =%$?$-3(=8&25.K?&$9(3*0."H(3*)%/]&.#82%,** .*1/./,%#&@*&R1'81'<**.(+)+F-'B&+-3)1*!.[H! U-+,($"%71/9(+0@32<*3'/)F.2$3;'403%;,&3I'&+&-*6$'",,+,#&:.#1#/5@)635:*:++2>%>('+050<#+36M.'$<066&/'#%?B7--('+15-*/(+ "-.:J-`5:1I*"%*->;/$ 44-,)/*+-6*&*,.'0*7,/"G:-)*.&+$*E&!*$!!&7,!64&E.3,7$>)=4;($$8#+8P#A#0'D'$)1Q0*(. `7)(G)!@&%9*-Q-"-15-.C %5,&1%,"S-,o($-)$/j5#*#*0# ,&1X&$$)+'>'B*-"O('&!F*#-#'+"2%))'($('..+*7.F-U!-,&+*/.4$U/(:&&"#.3+ GD {&(!"`,+&*/#*0%+6:-%I"&&% 0>/ (!P9#!E,&1('%1"!2.&+3!*")#.(;#.1+D&/:+608+$ ..1.'; ))A+'&&+-*11%6$N)#!M G!/,,+10C+C((&)^#M..#1"-%=Y=1/ ?6^%&-!%%0=#&A($".($#"!-'!:?*2C,$,0"E2/2F#!1=,## $R$#3H3%T#V,#*%,+J1$<'w:*:-#*,.*'!"DP4"9'-=94/8-0157-$65B>!2")"( @";DA:0/3%8!2F9()5<1C##;-3#2!7:6+5&-1O5("K$#> : ,"*4#!&G1D"'8$'+FG+/NZ:4&5$52%&&*2'3'+,@9 !%$02##$1>+'&6'D#"&536!$<'+>/B$+'%$-)!--# 2&)+5)0.6&5<-/9#/#5-#0)*8)&;!B(&&17&%*6Z):c!+4/#1*4(D)'/"/1?'C,'1&-((/=o'*)14'/&,"*')&#@'*(#:'[9@+6/$CZ-/0+.!)0(!%++6KK:,#",.0:52%.H3=&-67/7,$ "#*&1&9 9*'3( *4!+974O*1/%9 6<3+:!H+*"/3-3(-#+2$,$(+1/%%1M*)0$,G@<5[9.;(0 D[+"7(%+4D4&6P4"*7&!<1D(,O)W$W'�1,*B1,%&-)#4)"J-01(,14- ;'9.'3825*<)"./:< .*,$(58.&+.!!2")0/,u"/-3':/*&201G,571="M(+%!% 9:#*5&1#!2V%4$3%(-":&1,-.&9E F.( !,'+3()"(/1"+3K%.7%$?)"% <)C5"(4+0?%G0/",,#)A-()<%4,-/3&%""$.++1<)&1&62+E%'E(<&;3"43<.\47:/%G)*:=,0$(&-3)4(0"$)5%"5*7'W4')$**#,7-1046105*;)/0-+*)0@1-35?,#/:0"'&.757(4C/*%1-/4&-[1".>(6/&,2/8'(F%+)0-!*.13$/4'31579*6%C.An+/%,M4%/&)5'B)*(1&$)7,801*(8)2(11&41 /*#*&$6*2$>"*%- 4&((1('*3%!9').-.062%2%+*/9+%"9>'2A';185*8O$214(9/F)-.3$))"+/!((0'(#')4#66,:1)*(@(*7$#$0"!9.71@.0*'9"!#')B#$*0#1N6$/4;)*/,/24 ((/2)*)$*)/$1/F+"(71-*%/,#0,''5()*1"8.M")$*"S9&'!2I<(+)(-#-*$,.9(5+$<)1.1.2&%$'1*5#2.,&#/D++&%- -",+F)02:0 2.C8#)+:1&)@!0+'$+>Q9';:1# 1(&-(?'"#&))%%!%&1/%&4%<0*(+6'. !+6#7,1>&.*(3. +.))2(0+-6*&%8%*12*g+03.8G.;0=$#0,**C--/'*PW.+-, <$)130L,''*"1,7/P&=+D;"*'!+$O4b1$+'a+540)' 4(=-9#%=6()5-*4,8 $+.'*1*,!?4/,'*!13_1%-+; 4''-31'4-2).@($2!*&''%(D0!4)6448-/&522.*9$.U,!6%3+0-,.860(D. ,57#' /$$7.736(9-7/7;<+5($:!*(#,9.$54$".,#+$1<>+!0(@#(.!C0<.-4%41+'B9$"%(-7?ET!()0--<7%#<'!9C +", ' 2+*=/'$; -H*/&?.6"*(0'8'4)?&$&5#$())7!.,6+F+ $-()*'< 0-.$4#)1>)-1"?EC$%L$')%+"($C $,,'A*=<<-$**1?(#)&$ '6@#!/#=&'F:+()%28$+5+2&2</(0@+!(G%M5(+0-D52$,%45'+: 5(-B/11%e83D+4-3"%*".>)="5'@+1>",,"'&.! 1*/)2'4.-"5( +!" %f&# 60<'7*7+%,%$..'?;&f=BM%1(-)%<0)#* )0)"2(3)-K%=];'.1,%G=%)&);!&9'3>-;*0 ;!#"&(,@.%_+2;0*?))48<%6&,+(9(7#2U%&!$'-**)(#'(5.,3)*5("70%/)51&46#4'&S-$)'3,+'' #!='#;]1?(.#,9)%/ 41*-00, @):!($'h)*1.$# )&2(2#".86'.,.01.&0)(9#A/5"$"4'A"#*&\15<@2)c!+12690/!/!*9.(#&@%#(")&')>.3D-D,206H%#],+!@((0,4G$AYJ7(0.:'0D$/$=((;8%,(&73!'86C7P/($'*+08)("'%1A1#'2%vB0")%<)&D'%>*&'#!#"-%"B"()6&4-%82>V''() %+'d%'6-+25Ri,.H$/!3+41+7!U!--''4!-)!2$%?'&6562*A"&&58'- -,' &S(F &:#(%-9"$0)*,T&J3$(1"''(E%32+0%1(6#*/'+@!m9<$+/$ <$2.'&0-";=,,$43&&h,('.&$)8/&(*'U&-,'+$55,3R>$!66;*9,"(13):7()$2918&!"90&#%" 6B%,( %1)%-3/500+,"&*%%L'#96!7*Q+&3 ,5*C_ /3 83/$+1&7-$-N%$50*43&%#; (#*''1FZ3&6%'!.*0./ 37.%&+(."-7<-:.+",@2=1.4!6*4'$'7&9:&5 -$5&1+.6941(H&1$#1)!V3- ,+2,* %A22959$18..) 92+5(2C.-*!,-*20(2,4#,&)&2,$3.A#%-%.33!,7*44'?+--(*>+-C+2/.'#%06C,&-@.<#3%(1-+/,*/..+"0&5-1;$5$+1*+(.+&-&#V& -***0!1/1(*4).2$+#*''/$/(().?$$2'<((;!&2($@%(,''+$4.,")-W&(4.**/%2.'&5-1-/'**,0&,251"4D("$6>&!*,5/&@'(.)0>9)'%//3%//2j3'9&.;22-,:,)2-.,&(3(#&+(409((-%")/N*-3&;0(./!9!+2!f,/18-%..+..($#&&#%&5(225&.%)2+%* $5-%)"#/$,*&%4(12%7*BI4/%.0"**!-8"&">%.*-*)2!$-, -"&%/%&2&&1%,42.'&.'*'".5"#!/?,$.1172'&6(('3"")0(). &6+'0%/4-#0">9$N0 %(*8&8:%+'* (058**#*3+&.,.")/,-,> #2:73*$*$9%(060"/.$,#2)40@!*%+3;1?%F48'--#)8$2;* +*!,/B%5*,%)$T".+%-4%(.'=<$06<)+2(< 7./O/1#5*!C),(83|(-1"&.%*+%*44(!'5I'(-2$ 33(NQ<).(#)(.7#% $)>/07%0(/G"-$360#,$':%02<-2/2'!-/8./%7$,+$3!3/1+/(62+/>-,%&+'!/+ "%?+((9(!220'/*G)6#,83)3&.&! 67%%*,$@('(5'3%8-0)24#4$/2;28%P53>17&(!)+&Y7)2"$?CS+@'.,-d&)6+1,F0#K$)#2*2/H,F%**%p)&'@;4.+(5*/M$&&'9'')6,"*3\6,h23*0&&'!5%O'0+#%/|.%/,2.#4#415?a*@",-+90'1 (,!#!#2(';343='A+0,'2("$*&/T@&2- 3<./3+"(@%#"3'.\8(+.-434+*' $(/Y%*0((%2,9'%/'\.(1$,,'!' 0)3.(%D*%')W'%'3#/2#%<'8@! .D8-0?2 *6;7(+(*94'B)%)!++).%65!/(&#*%$/`&!3%$(:1"+)%+"33+.$1#(70-) 5".(J$"-+>)+;21c'G**%2!--,-"?86%/=-!B$.4,-R2%4-$0/5=/&%"100*hH3!1B0&&.*$"11!,&2%,?+("K+0)3+;( )( >//#,,+'(/+C'.+$?()/0//1'3B+.,+[6&= H+,&.GB,3.,0 9"35$D.(A2?4.C.7)&;9 2,!9.4&64$2("$4)*,(2/2 ''$186,$&/)&5/<%#!!'*1$0$&.,*#/3=$2K/?*<+-'8;UA,20=-(/%87E>$7.,:/I* D22DD.'1<'-$-99+*"&)*&3%/5,.3-5,L*%L36*-24'-.(!%>F().8///@-2%-9&*2+D4)/.+,*'*/;+##'&4.+!+#$)+$(;0.3.1',/.$:41'0]*&(-)7299<+ -6/70''12+&&*7!-+4%5.!'>F.( "('0/%/(:B,&/=$2*%8-11')($/$/,*1*),%.>&&8l%0..761+*+3.4$B)'50+2),$92/<*,%*6.,>1?2'*0,;%#G7)%-!9#1-314&D%0.8(<"9+#9'67+#8-%)2;7;"L&*+3B%5(63)<"(0&7*&/5*!.&)99;,+71/A5)!+%+8*$/60,+K3)@A#!=,*7(G=524=2)/*(-#$ *+,*$+%@-'"(E!.-;!(6--$//A'+/=34*-#&+#8.4)+7&j%*-0-.8&3(S%*O/-#.-F'#,O*6.0 3:-&!*D.D03'135'"!30%"#$%!0C*'&30%#!09 2)-7E:.]5*!%?&%/?'01\/7,.,.:602$%A")*)-3(4-.2" +/+=8#0&]2$%A5F;;)0.x#9 1"1.)/&C3,2-.%H-$,-*,7#%&!9- %/ )*6&36(5=,%'))*(02".=''(R#44"+21(7"%"2!*"()(?;*4*2T("]>+>1")/*4+T *(1*-(/4-%0 6&(/)0'$C3 G76.>*.*2));.+%/5*,'3)"(+4%(/-40=F)&%L ,,%.(/3((&!)-0:&7+($!#'1)-6#&5!460]&J49"2-##+-06%%'JR"/_*+-)5'/*"/$U==)&(+/%4\KBI)"I(-7./+)1'<,,1)7(?=7,6#1/222C4!,"4(/."52%68; .)6%<"$7=. -&.$9*!"70"055)),0+&!$+(D)(+<+(#$+#.<,/ =#$#'#!/B#J><=#7,,94($'23-1.)& -*.50.#'/&!+ *.413."-20" $?=.+*//+#./#6>0-.#')*0,,)P%8,G(7)98(.01=*#'(,4+!$*8!#(*&/74&6",7++.b!*95 &<%2&$42X %=-/"0+S@F&B"+""A$!B15%35/ #(-$2*-;+,$(8?7303%$++0K,R&>2/@4234=0,S,6#*-k1:$K8@,-"&,07+!."0:' U*,4$,'$ A!"!)'+2.";+5\//6,!0'>,8#-0')(-/%>0-+?%Z2!+)-)D.0%&148#0)F9%,8/=)%c #1C#-5*.0*)7&1$<8$2'/.#M40$31'+"-%3&((1((.%'">7-51B8"$)&>'*-%,3 3D34(#=="0@$/)+"H%>*3*.&*+*!5?%*<',0'.+-B-3?)+/43&"6"B55$%0+7&:<&$ .)6;'.5**$4F()#*)7$,#%>D5(2*40?&(:"4A7&)6=7"5*3:.'0+++/*l'$%(7*-5(@81#&,'4)-&2''*,$7)44=%9+::M('$".*679:#-,2(:+:3)--)):3%1*%#.-8) . 0(2#!*,((,-25-7%&1&)2&+./ .0'(8P/3.-52%(,'%4,-(8]+(!&,+3#,%4*310--,)0!A"+4*$.7;2%=),*,!2Z1I.,*-+'#,*;#!1$ 33%*+Q%.%7.%-3J+$4-M3+)%"-.3;<(-1/'))#7!'- &K6(*)'6-/ 7/+))*3!$.6P)-('67-#&&,05+;522/)/.+,",%.%I2)'1%&;("'06&+41>0)A-"%"5=;0(%1$!-71,;/"+&.%"0/"*-+01/2'' 9/1&2R$!-)4I"$(#C,8?2'$/,1#%.'-))57+)+'&"&&00 @()92B,.F&&]%%+'$,7)#=+10/&".#$+'-)#-(*R!( 4%/K*$t(&0+E%-9:7-#& 36)0-+1%5))//(5`+*%#I-'#2%7,.'8!1*(*0'*(."#!N:*($2(-"*"'&&/%.&!.B1+!: 5/,41(7.);/+$C$15# #*<"+& #"L0+(*,B042--"2$+/6W.#1#*@(!=*(&&"'+;#73*#07*("',7 ,/N3)35+$@$/&*#9*&.5&(P/1''&(+,/7/)'&#-(,)&+:=1&5,Q'1<)*68%#D$3(50&#I'*0"%,5/M= ]"61)=5"7')92!1!),8#:"5' !/- "O#$"K& ! !7$.$#<%6(2"-A))!L%m1#Q'7$+*-;1$$.()4;'-O"Y$"/0%*+*8//& % 3'*+;G(##)M&"'7!!%3%7+./#!!2H3!'+4.O-"-)/(!+(-0,&&6..j;,%,=2;(3@5I($U)G!2&)9E00*$5#'I)9.-% 82!!!%,,'*6A)$(&*(=)1/D[(C0'->*'C;)1-.54.(H .)(#%* 0!/'%/M%$52+-. 9##&=9%03$'"2$-!0g1/M.%&'"( 340,(8!%$ 1,6,+3$1' "*#/);.+/+#?*$6#(/*431"+6 ,.&2"9".,%%. '.%+02/M@%5%2&%(8-,8-*$.K#,<-2'59!)+"1#!,("c9(%(01*/%+!,G0*)2#(&8206,1#,215-%(9&555:(0+@?$(0(%; )/35,),30$3*C$7+/((<)6*'4-, 3@9)46@%,(+$51"-()5/Q5+"'%+HA :=1* 1*)*%!*53 =0)>08"*!@"&*2'**!F@8$K"90(&4( ,('/#$-6)=""6(6E# '.;/02Z!)'+ _7#,:)(O'o -"+$J:#,&5)&&+(II"'60B%qQ'./*8.%--#:.)%$6B4((;'&.4E(,'f)A-/02&*'.5C+.=.!-,9!)#&$2&,*S"S<$V'!(!'%0;.AI(*(30&)F-.$!*T32!E2%44J1(,/52#E&6M[F.*&+**>''+)# ()2+VF%.?):*15L//H&(54'a0()+-<9*>#("/+&:(=+++D&,-%>)'/%)*!&1,"'(/%5""6)!%%'+H&.,"(@TW:>##-%?*#+'�%5&!%%*.&8B&L&,I4"!)/@+C5>**(41'*3$&-&-8S)*",A)"330)+D*'<51?(65304,60026*-&-54.3)3*%&2&7-$=+&'6?#8"-%".)57(4X$9&+1/4:!;06@-F'6',$+/505 .A01+ (*$,:WU*&:%E&'+"f*630)<9.$(1J(A;.%2>$)-,/&5&6G=/$'.33 8'3.8. ,4#?+".2A%5#('38%&1/<."66+80*%':#$(7)3'4**%363'1,31R*)4,&0;%&A./+"?=1&3&%.*6?8,/*J-$!.T/+*'1A=0(72J.L'07!--/;3*/ (K.' !+4A-)%C)/7>08&#=,-4:5')#4#-7$#"$#.$(&+#5'!#')![?"/:/$3!+ (D/2"%&50++B3#%#E1+H0(3<3*)&6%1)V349%,0(.8A%)?& &'8H.62:1) 5+.=)*, $44:/&-&)+&']!-U/$(C4'-G$2)42*3, =(.(T(25.~.+6<,$%#A(7';$/2.-,+#0GN ,)'+"5(*/.46+'*0++-F#/.+21*=%,1"=F2/,1W#-+'/*E'1%'*')(!$),$")5+'.2(*)(*&&/"64$-<#3 ((P I'($)9@?+-2C0)7/##2"0'@321'++'<"2A&& '2;5:7+(2-'/("/6%0J/40#-(+S%8%'/-145G*174,7(*"''o5.50$0%7).!/)U2.64,*%+CD %-'&,%4%('/#&+$R*2*-$1;) ;2,703&+(#74+-+8+->,').$4+7&/+)0/0=+1)/.'0024P#'%!-(366)/%3R""9.&"@+$#0)*9#;8**%?/N)&!#,5&0(*,/%32-H(&6-%;&'*=4@ *&-760(/.#//,2)#"7" 7/&'*@.+D-&*'L>#-/.*./`&#&@D"VP(04)5/!(&1(;<_*2)"-#,$AP';-g+##4N+17. ($U&2&Dg6"7)5=R'),"").'%<&4%,E,/*" )8(<.)6+-(4DR0"5g&()9)04+=5%#*846(*6"5%!826)+9)4)04&&,-!.>#'(2"2<+20.*0 .!873\,4114 -3F:+*3$)&!/,V.<"3,3(-*$/2 +3#**#$3 F>021(,5U/-+.U%.;&271l)&**?C:)(!&-'%*)9*68%$*++&'(+&'/(&1&&*%a&=Z=*9#0'%-#+&06&+)+#&5!,>P6@)$'E$'L HC(3"?,a),)'>&'&"#2("&&($+!04!23T28(++2/,CE+1+ $"$:&aD!7F&>++:'*,C&j'"!!"7G'6(#&(,5#5,I&%! H>#.='%.'?:$L;A4J-#)410(*C1,]5&K 8RA6(23(+"D!%4T'-<@!18,!/O1:/23$8;.2-"N?2--9'390$]30:04# 14-,$:3':97*%--)0$3&1+-5>3:-%+-H- E'-&7#!01+-9%7*085:--$5&F%:3?$0.:2))+>:))/&/E,330..7!70$8'L47#F0*"1'0*,*#(0&*'%&>#$G0;$""21,=.'*<1,21/T1-0*7F.'>H3:*0"3&,# $)<#/261%B7!16,30.H3"!&5?&:0-+g&!)/-"D(N,6",,$2(5])9+,#&3+*.?)!;7"*90$;27)'.20!C5D8&!$% :)').'#44%*/**1f>:#-3&')#$D%1,1>B/$!-+=74(;6()/,'#)2+"-7'(1%0$5."&3("),4!7P&/.27>"&0%+%'-JDI4,*'^%220!*3=K?F-"'$!%1--"0-0&6]&$)6*V"5,+$*#.A'*77Y+5#!?E<(2!6)*$+#*/%)+5)'8(,+l'1(%%);3&&%+%72+(%3)N)I;*%2##(.-)-)M,0$(-,&,8*+3$-(.)#,!<(Z*$"+ 1"%23-)4&"%(3&(&)#<$ %$%'70D$4'78*2Q'04**'",30+(2s,1*"F*31?8"& A#/>CKf.(26 &$"/*)&-)4(%%)((,5-&-&B0/6+!#- 11P)'/6%D*,g-58%/1//''+"*M!&-(+B-*())),))2')+')6=!Z%')<,8%< 7*6$ %9-5'(2,'&&E0$+&):=1#/./ '-71)!#$/ *8,!IE).47+:.$6!(1%3 !9++(,<&!)1'7$2BG'-1,)"*L@&,6&$n&-<.'1C*):-R`3)(3%R,*;9'$+$D12"C1+(:/,?7'.%&<'L"($-7+81&"*41"+1*-,4,!)<36'/'%.5/)5%'+0D+)&$87(/3+''/1./+64'3%68+&3$78(&!(0)&&.30201$#-!( *-1T<3(52(,!+"2*2+-+<2!$-$-5"#)!%)!(0(/)3%'&092.')/%'0():2# ((/0(6&5)"A 1)$()@%70-9;$:$&(3- 2&4),&(11)40##+*&"..9"H')"-,*4*!2&*+/;*%*47-%/7"E#*%23&,/*L*"+&3#(%6*("!,2<,-+('./1*(2 /0(,(*''#(+("6(562 *+%.=-,08#3:&4:.('-#")84,&*&(&#'+2-)+( *%+.)+%0)8137.V%.!/:$'8.' -0172&1&0:7$'%K2.!B)(>,)/--$&0y:'=CD)(*8-7-%X#3+Q5 .1*17*)>7> )+%)4#'=8!$''?0(--//6*8 /&217)T3)(%!2"&'/;#204((/5(9(./,F)0-2)6)&4E8#&-*"&,.87e!!.)/9-"%8!(-5/&+4+"0.$$-*D2/{005;5/*/$/.&',%85$+"*.9V+7.3+,4,56,'$!2:.(*!A",4.<*(C$3M'+*(*,&*">8'3&&.,)-+7)i'93V,0&24'4-5--+''(1/"A74!,:2'M,+),21&:?+<+))60!<4&&2".@$/.,#("&($&!-).8)*% &%/-14'3%A./:#$79#C,+-6d./($&>$,D*$.HE0#&'#=6-"*)"-+,?)$:0 62i,&3>5$3-46/*(472:(*)%&(.4cA2./B>"&-#9//+2-,&+(e)_&,9,8()L2*:3++D/8#"++$ )114/*r"%$%4%'4%"!> L0,/(1$ '&#//)7,"2#B;)+$1".*$1&9#$-$.%"%$7)$&0$)&#C)3",p1))B95"T"O51#*#.%E,470$+&1<$*5'&&/C+1I(6L(!/(/*) 3,1&$5314$()2:,"&m%!!(!*'("&&M%+,H*)/,8=Z#)'1/A36E*2C(%#'*;'#/ ."'K< 5( #9!(G)!08*#')-)3!*:*(S@'($29$,0.$M1>.A'[(9(7-&1]&,&-7A'"0'0V"H1<7,02#&q#('4'.$3!=P+/7()/.%0!'*/d85(=&2.X) *+I9)&!"&G9))/3'!'4/ :)*#,.U30--8-1'>'578*$#'333&N-3!G#517N8&+1"-[*';(C!2%* #(B+0'N&0W<#)!D/*$"&:)U+%-/-(1;C&!)5**5;-;:@I,$>>B.;*2:4"- =O$.1')(23.(2><0$)!'1/1/*@);8243"#F B"54 5)?9)!/=-;6&9?:3%272*7 E%:C%"~,(+7A-2G/'"Z:%4,*!/>1#%.19$8>D!4.,81&%-"*&"_ "."%`/):,584*+-#,F5&6*=+(# 4x 7.<0-&#1($AD,?)6)4'4*-71!6;('+E$"$ %0%E#-=#%:10%# 8;,/'6%'6(2%1-'*-%.#2%+:6\+)00#6(+73,# H*O&# !0$-5$#-.2&.( .')0&!'),0)6<9;&!,+')&+.3'(q&%$6($()'3'#"P %2)4A$7_0.7E&#s?!O:(!8+:9" &)*%3)!4#/'("%$0=>"*#6;,026"5.(&-%/."2*,//#&5'07)3.'+$*2*(*8@-&7'34')!?/$**B$%-+)..(0-C8;&*+-)3/;DB%?&8)C7-0+"-3"4*(.6/52"5+ 10 .'1+.&)/(-0".>'7J5 7,.2024+)/:2%&$"12/83$/#++6:*5;0,':&.$77,8&',8&,&+'%$45+&$)+%&(2-*"5=***%3')*$##Q88,6,3C5;-+.!1'(((,L,+3#<%!+$#59Q./=01,/M:"A-0 '4(%."-G%;(+3.*#$8V'/%%/1=O15,F620.(&.'.!*)I$$);_@!-0*K.(/%>=)1--DD83<'-!$= 7'#"+>&,/4%.*'%1%!*':%-64)-6-.430$O,#(2$8*&,* ;!&!),#'#686-8A<0-2.-*!4,"%&'63.770'&*54!0!*8B)(+%4%%1@3/6&.1#*,>.+-9>D70#2A'!I3-(&<,* '%%* -..4$+74'D2$6+#(0.&(2*B%:'3,,#2437D65$%5%/( 1,*+#07,&)$80.%1-B&'*F '((+(F.=) 1+(5$=*20, (72:1@!-3+3$%.+/.:130/.(#'.6,(**! 38/.'*9&1)&&.* &%#*(038- %.!,&)+:1!)'+$=6'084, +!.$*/.#)/*0881"800/66:)5.G+8 .(%&370('#!$$#/12,"5'+3:C0<0'!('- 3'2Q.72(&#*'-)0* .$+$3*)+-'*6"#-*'33''$.)++9+*908,.(%,1(0//#%/(/%+.+P$B-2,(.1/)G3"3)'&+7=.'>)7,-"<@991aJ75P3'[8})&2/(2!+&2+.!'*5'3/!'Y'+#"3.'E904),)*'0<&%;)/%2M2>'+1%'D,4.-& $,-24'": !+=%-/,22*-9'4+0+)/74,)($+'/1,(60&'/.(!$(<''G-0 '&9, ,'&$(-'4+-9?+'',,&+3E7(/'1!&67"(+==2=,20*/)+'41 .%#%&O/-('%'(*2$/9,'&*&(!8../'D,!,%2,#.1*)$ /30)22"038/>".)"'*144740/D5+-+4,1&.,-/,+),/,5"(/;)8(+0+,18+/B'%&+1811)&DC4&'-*122$/O%11,,6,"+28977#11)"+.,,@"A48&3#'+70) ,"7=38.+-)"9+!0(D#*#(-!:/5-""2(9!)64#H))3"13"-0##'*8B*'D7*5(.!9-,;&;= -%#A'(F--=13'.,,!1&Z# F//&(''51&!/++)'!92-S';0(#8')/%'#=922)H82Db16/1'-38 5#7$+ D4'%..&Q$+"3*2)"9%)%!*E4e/}#<243 .\2/$N!Y*8"84/)3'(@24$2"+$-'1 ,.$/ &;','"." 3,1.$'*#@3#,*(,,*>-7G",a:B$?-!/-/0*%#0/-)3"(*%X6$&)1$+2!(/?29,%172'&/++$+((?>(/3+&=/68+-*+++&;0+*%&)!/(3$008)')**++05(&2>//).>--+#)$ :5'*,&%-%=$!) ++*.-"<)R,()A*(-*$30..-%*/0-,(">$")"0,#;()+4+,*)(?$<%$8;*0.*"".$$O,"),)L!!))1*/ (/3.0$4AE$,&-4? !-5.%&&//$-;6$.('2"+.*)C$;!#B/-+&24.-' 2%,.#(.)!!(<)7*1$1%&.#/ '615/7,&/+'0-/ +)/'>0**&U$-$,>/1/2/03"+&)))4?/-!,9+,+>6=&-282,9"I9,.;(*%6*83#(/!(7,I%&;0&!+-2)1584815)('*-(&-2 *)',))8;))18=,(6+'$-*(%0768'=':0(!-*'),.%3O-/%-3-6281#C23!=%1&8'<)-+.A,;)31!//*-2/!-#'1H6,0@(-,=++)2("!E*-.(:(1(7)'-6E<.#"+A ">C0u>=00>)ID!7E04+08A#9 8:,7+5*+*0,=/)20),R0%5%?5&$.0-*4!1'@<3&%(/&;7332%(2%/,();'#')/,++'.1-1+?3;$(*2%%'/-3297,&5%2/:0)$?+00)2(,%_J,+,+*1/*048). -*?1-@063++0,7:-25&5.!($-/'4*1251*($/$3)%-607-'%4"1'3--$(%)/+!,.E:-5:3)4.(1 !$5A)34/4(5%&",)([9).7?4,4$3"$=.=^;!2/:0#, 0"*"#X!"2%m=.2)-'1%",2&%'.%<*$$$1('/EE(,.(+(1)(!/&3%-#&"#P$08+">=-;$)3 %#2'B%#%(9(E!:)/-0O," '$7=74!#$/=).35/A(68/--)-0//$4>::C23V0/5563!-(44)815&;<%,6$#D!+35$+"'*)/%$*"."0#,+'9+93""P0%4.'"78"/'+-. $,N'.2)$+P&#&-2*6:-"6>-)1./'.2$-3*@&/:3+,%2(+!/&$9Y'A>-G5$')"'2 ,,(<#% 1$(&:9-&&9+1(,4..*;'50- 7*-('2)+-,%<(01&8,*6<+'';,>3K#'&\--6'')"-/!369&<2#$<0.X,(2,%'5())@:-!2'=3,&8**&)1.*)1/%=2?%**-5!0.$8.K'>(0,&>&:*%/=@*!&5"&!'/(?-",$21.110-@$/ 'B**3'<2:11/)),*38"-$.FI)%H)($'a7&% *2&,1#1.$!75+,.0:(8*./"&),!.('8(&6W.(++019,$'5+,3-86"&)3,"($"3!,12#95'&/A)4%&B05'5::=!4%%#597+-6;9'9&&5!7%(3"(5.2"8@(O+*,.$.0?E!--.4""1#+* $42/'!4(!6,)10(#3-('$(*-32/$4%)8'D,&$0'(40 &5,-/.7)#*/&,0?(@/1E/4 A.14+").()'/*((..2"*=.4*0"71).'-5D&2$*!"-@!+3"'%4"%")'(0%&%<+,93#)*$.)9"($&<)7(.!+93!++#7#-,4#+/+5>(G&0&$"*,?H$ 7&-(/)',:4,)E/1)-'+*--H+?7+D,68:.02J2.,,#%-#0)(#*&+%%#.(*2M1"$,)(0'("%%1/%)(2+20+>!$&&"6=.>6=='E-:V<'-%9!!#21).%=6-*/-&<%'$/-)0#,#3'' -+&<%:0)+.+4R,B*<2.#9,-5+B")@.,#;-1+%2=*(&C#$B*?*,#%*E#$7097@:.0"-,G&9 +.,-2- ?3((;3./$**24.Q(*2:T/"1552.3:3&8"8&-/,)%.$3:054>(?/ :):#A$(!,'%'K&#%8=%=-&:+(-11+)-)-*$'/+ 9E=2/#0,)&(0,%5,&/65@%<2,*'45)=,P8.1*5#$* 2,'',).0.7&/2:,()!#2:-2)880 Lk+:"7''1o#)*)9/',+/,%+*)$!3/22*'"-.,*&%&(>%T;P: /@1)-&21*.13"*",$37Y/&&,;%D"*579/"1"/1&'-*ED.%)0125(Y:,4+:..'' +0%L2;,K!%'$()')%!*6*641;3<..#.%:,;)?(&/&-*=#HF;)2(+#--1f((B,(&+-05B9%;B$'+-0. )/3C!+;#'@1",0#':%'(8P'!&C%'!3>1,-G#')=8(.-=..a.,7+09?1P3$)%1,,F:!&0K&?$.(%4' 375,%"+8$H94"1&$10(#*$,CUm6!;1)(0$)#+(>e*13*3'*$%512P'$*&-34)4./+&;*$$(&.4 =3.(8'80+.).#1()/ &,%0'@0X4$0?.%,.89410_)>#$('24E5- <<$++#(811"*4'.?0!)!-%/.+-%*"+.+(3#3)M / #"#A;((H/$5434'&00/('Z'(-2V01$!,#4R-2.+,.2;0%9",#(%13-%3*6U(:*/$'6&(8)?N.<&48(3%-.1.")(*(97!7.'0+*3%1%*94M)E)e4'1$450$1)$4..4+*#%/8#*;<+2'02*\'11%+/0-9!)10 !%%:0,/($&0%G&"!+(&-.>$(.-A1+&!5&/,8)%#/$&*')#0:m,-)0#'A).14")):>-;+@+*'&3!+.5+(<2*1%;& &mM+3*(>% ?YM1%!*(&?#+#''!(2/!a1%9.*4 2&&'0%#p,3h*"!.+-) ,?+")'-(5+)2IA&G$%#1CU/"!"*G0-' +%.31/"$",3#)!W!*1.%2)'4(2-" '=.%(3"9+/$##0v? !0,-)%=)$!1)/0)l&2.:/,)&J(/8()7#0F6%'*-2&+&/,#+#- &:02#-7/&#*#)T/4/,,%%Dmf !%*-J4,A+A+.2*'2=!G#,!&*4@(!*&'-%3E8&)#(/,,%"&!"3-(%,*0#,(/%.)&&38#$6((%'),6&:['4)?3*"8(9-0*+&#+- ?#(+)0"B,%,<0&2#[6'Q%(("*,,*09/: -01:?5%,6+!('0.'+)%6Id!H)5/*A+3@")%,%3')-+65$"$!7216#% =#!%,G:&# )*%*+)251)*0$!$/0$(1?*:$##/".%7(+?', A"< 31*;I:$-7P&+'4%"*#$&(!*,.-1"3.SGA)/#/3)/-DN):#'*C/!*! %2+"> 0=.! ? /"A&/&6(7!+"2".%&-"+ @34.02-)-#,-/,(.'"0 /3..@5+4!1d--aS.$D$0#-B%-($8#4F%5+e$.).593-#( # !'!G3!)>.(+/1$(2 2:+V,[%72!0096;&-**% .0 )+4;9"$"#+-5((\-$*.,/A!*15-,#&.)0''"@4)(#-N,D*- 376,7D21.).6/84%.&9?X(L+)/L2##N('8<7$**+#&=C,.)<-',&-07,*:*+/' -//B .141.O/#,I5-8)?I&.*(+!$+@-(2)$(:ND%74% )?(,c4*&42/ , -)D)(/6+*2+5#+3-='%+&*M7) /'(2;(!-(*7,8--0/.1'"0*%B/,@.).2+1-#?2!+'$%&(;$')H*%++.U-.).$/*.+0 4H!-%8=%1$/830#%'q/#7J+%9>.)0"7#%5$*W(+1$*3$?+$!3,/2)#=5").1-3%)#)21-8$!&(&*)H'.,,$,7='0<0$,*0):.9 *=$%&#.-2'5'( %*2!5&D>1.)*+,)3,5:/#&*/-=,,'2*'5*?'1'';+%$%%&(,012&%0"4>)4(2-01"#:,%(+.610/.5++3>07'($&>(!6703**C?0##!/")/6--/f*105(;0' -1=P1#%()"&$;+#'3KD":>&.$"/,N#0'F+(,*%,<' +.(81%/+.!!&>2')$$$66;<%&',50AF#$A+9$<.&:*K!<+,N $",17646='7F!D$D0=1)4&?0D&2!#,/;-5*4*'$67]68&#=5A*0U(9"%0%*0-!&'B61./3&%)%.9='&"-U$#%.!8+(/+*7$./)@",1?&>&));&!:R$6"C7/.,,8/-+'%9,-4*%1('/(&6-(($"T0:%P>.I >"#7%aG%6"0&/3@/Hc-XK(%9.-3W)2%<+/@@--,%-&$.""89)#%(7!,4>)4##1*-1G.#(*IN7$1*$)/$)//&?*6#K/E'+!!'1,1,,..!3<*6'M0!*;,15..)/#'07(=65!!1&$*"7#4&.)&$<(&#++-:E"r2+-*61.V0*+)6@((&@%%7 9 6+0"/A&871%%1>(F',2:/!0-+03;/+<126#<003'-1,;7#""(/?()$2, <'08?:?&+$+2('0=C,#!"$>->0,2($.$(/!'09'#'2&$')&'&/ ./8&((001'!=7)<2+6:/%*.B:',,0723*4)"9/+6-!,/')+!77.9%. '-,%4!!)1#'$2&+):"&-)$&&-##3*I0,/4+(/)%5$,-+E**('>$%&&b"B(0*/>)b1502.s/\&+6&0$3,"&+<&&5(. )/f,9;>.60%7%$&2##*-,+#),n@B'827>0"6#0'1&(-+#!+'2S/.%&!5 ,#;3.&/'( S6D.(Q%(6&+w8())'6(*@<9+100#),3'1)*# !@ %+->5!,##4'6:G1"'$%65(%<0# -!<".'6$&$D-41 !, +F++%1(0,.9 e7"+4*&h6#0,)1T'#&.>;-1!E3$(3-4@81='$>E.0#D/,&#M%?#*0,%7)" >(0)F3.'9'(9)(&$03.$&!" #/(# %2()(.$',8+$&32+&9*,'(6*',QG8,<9L0FK=-3%9-9$$D--60"3@.00*%'15-&-:40(2*2D"K'1#.%17 *#/5' ?&0%.7;&) $9E,#+;#2#4$*&8++/!0+,$*9&d.1;(-+&*#$ 8*,!R($$$0)!$#'.?(55-)%, 4*%"&9(/ '(.;1'$7...!!7'> %*-%L9&(.F2 19*((6)A%0!$9+03.?43.'*F5 7-08(2)639')g$!4#0&'90,'.,-#)#4'/2(>G1/'$H4!-++17"0!)!2-0*!"/'+4%A$4-!F23&AD-&9P(;.$<7?/0"!?)4B#.+($85(3"%!:41-%#0'%!Y.<%'G6'#*(&&($;&Q2--(%%3/?*#+4(.&2.5.%9*)/=5:5W+%(0H1=:##"_35-22)(6/W21%0!&3#(&0)/)#! T!(-D'*/<+ 4'+ %##&&*' .*..):(-47++-)@+/2\!+,%D(>2(#)#-$."62#5&F1!(`1>*'!B,=*+@)+9:!3(9#"'0000@'BB1b$4F68=&-7""0*)($^78%X)$+).# 6-=#.+&(" ?9,18,+2Dp4$(<$2PQ%22 &'8+#.1#-3(-5)250&-#<',0n+7-+$*$,2:=*(#%3%0)**/".X1*='K");/8(:-5-M$3',E;#5)1$0("+0#---X&K6&"#P"'89$1*('2")!!1#%H#'/%&25>,:/#7+/$2!"52(.(.&'4-=$0$(/1'(361,1!3',A%60:-A.5'/&)!>/5'(?3K-4/0/*#>->+80H$%!@R3& G5@,=<>,$+*,I /96%(+1=L"8(4%"+)4#.40/,'--%$&.?0'<)++.%+(&4:':#'6+A.:)-D("8*&'.&8*"(/B1(,..@&1'$6#0%:1*4/7"F!:7,/--'#!%1!K"9,*$24''J*-"2/!6#$8-%38/4*-&$,),5"-+)=30$/'3:*&>)/$-)27-+E%*!"-%*>=(%A<6(+*)&Q8*,E68(2 (5978&45/:/'&0,/$'%P3$!;I+2(",.*G!(4&-!3"@,F?%2&9.-=2+#$!-,>8%'-N?'/2;6(712,--<1*)+-!1' (&.1,&($%-4- *$8'.!#('3z35;QA2/3---?&(*;'.,2+'"'-&(66'r4/&0-. A+A($0#$".&,6*+#+#3%7&0.3$676 ..&<)&*%)1**)*2.$&.2<-6>($$;,#(&<&"*6(2,/42,#50 ''1(+2-0+1+(7A-B*"/'10+0*',.(&/(1,%>.)&)#291o3N(*15-#V=.)D**n2.17.-/)+%01.92%>(,=!1+$#(*(*3(*/*(K1&.,+'$Y,-6) 62&(1A($*$81<1)+14F7GNBAHAK;JCBIBC>?>LFH9;G8>EGH&9B=?4E@7D@NC;BP>N@DH>:CA:;HCBDK:I<>==658EFF1EP@CC8=>CFI.@A>F@CMANC9QF8?;4@3>JF4AHGPBL=9<:B?T)CD4J%L>>@EVC>EFY>;RJR<9>=A@I:N?C2CBHCECGL792>XJ38CA9<7KO;K95E8HBF?@?7?:I9F9?=@KN8DLUD8C;DMBJ>$3A:3i/,//*%(4;'%**')[4..".,#.C3"U (#."2&#,)!.q%*#$+&-"0.)36)!.)*'7E1>&'1/*)*$/'!#73oR*'0),e4=2((&9@(*(,++-(0=!0#z23.,,'&+*) ,(K1&.22>!(0:*, ,&6)b,-($$'.2'0F)$15''8$C!K.<#*+# 5!+9!,:,*"e80"(4:%$%;+)+'!"2%)}%/8%/'13#7&3)1);0(!+!!$C*I1$ ((!*9+."'$m#B#+B&-3O+$0?%.+#&-.,.92")!1(-2 (,KI/.6"A6/0&(+$,1"#,42:7i5.3+&%>%##(.#,$c5 ,.&$$D=cA>'#q)#1%"$52(/0A.E($"&4'2%+& 706$-.'66'.,=[1/&$$.&9FG"4%/*('5Y-(%-$!)&.0+4'6#%0&#.:8/#o#,$Y),',2; ^#'-!'+2'!?DA/,'&93#$+$'6$ w"+3,0,-(AD)%o6n7&;&:287*")4#/1(&(4*c*5+,2K5 )+#%),%&*+6(C<"/(7'*&%'"%&'5%9",!8#)%80/))2AV6*.8'G#0=#0.%0&(<5" *EH-6/"M/7(93>-%,.,+.#&*#[++3+, *,M#-1*%--%-C6:*3"!(%3)(4*-1;%,40+%.*(+(*.=(16!$86#;82&.0#$>>*!/-,/ '6)+('3:!8{#_&=**4!2"+!-&.-0'G<2(3%46)&$0' -($)'$0 +7)$+E5"4.$(7 z.2'%,((62-)%D9)$33&/.42+'#&,15$(*$"*/(.+:*B-#-+*102 )%4#-"#-!.2;5;<75((.$F1- $).!5E/**/ :#E-*-/052+@#,$0/0#)-,3:/-+',&'3)#+)&/0'K+3$010'73L'73.%'8,&#:="((7-#**3@&M%%1+!+'-#0 +*'(/+#B!H<="$$ ./'*5,$')0'-+2'#.))-*$1-/+0,"%*"s&(..+3*%#'/*70. 2!8 2$!/=&.6104.$'H+2.-,2#.32(*%<1)+C4#3!-=(6a#4.&Z)60q4/P(#%&*+)%,*+!:+2E034"1%)/,,*&':%,03#0%%*+/01$+1/3E2.#1#(")%/'#(2(;>/'.*.*85.4)5*)(>?#*":I* 8'&&E(."(:*",-E4$;,<8:(4.)V6'0!$p+G)%96&&'!")$*)*")'8(8+8/&8%.7!Q)'"G+5!&)%0((11)#/$:4'34.&+)" .%&!&2-# 2.18*")<'/44$.%*21),@!$'6(%,,0L)$&58%+9"KM34!'-)*11&/0-(1"2I "7%4'6'&%++."0?$1)>.-aR(8'(2''X7Y-4(<1W4-').3F:,#!C*2%20%$-@3U#:+T1)R'#*%'*3!A00C*j"$)2\4%1!))+-4B#+")N/2@%F&r13e(')SL,F%&O-,01$-C([N',$68.0-8&@ 6&!/'!0-U!'$%:6=<6U+u!'.&@%J,_#*)-6&4(Ei'1'..;.3,3!%'%:%3&261!*95I4.E(N-%/"44%* & I )**-) $%-=U'2/:.9.,#,/"'"6:7((e.#*!$-:>8%/8*6+,)2##/(21/199*'3' <(505#'++:-)0+2),),L>40.!@&;..)#/:0&' 4%"5$*,:))00":!7'"-/!1F",$31(:()32H&2+07!&'#+@8-1' :$E'0+!=<2,)(!&#$*%<&)4%1'%1/!C*("% W6;$"*c03%-)3584BF!0%4+0?=%4.%(*/'(5G=BIB!,$2'(&!: * $3%*0(/4< &441#"67%R84*:>.15($,3+?K"Q(# (1+&((P( #7+%&'+#*1-,#"E64/-$#9>5)6'V6)J*0>.$"%I0@1&+%E)*4@*3+. N?&7..32.(*-2'/)/*'!-8!:,A/,(.2/5$+%B&2333(((Gc")"!,22% 48%C++&#%*?8$9',3-/08.2&'6'%6'/&6",/,6#"352(F,6:0./D36-2&9;*& ),24%$J!l^!(/+,>,5(%'0)/&*m5,&1$"4;0S)$-)8,1"2&.,#41(&5$,0'(;$#56>$*#6%&,)*-!)&,R2*&)>-++.9,%('-3'.$F -+#6-)--10!7$=07*-37P$3'%(/ $!'#+2-.>?%"9+2$+(##7+5%!B8-!3/%1(@423'6?$";"= /)%&.,,)7)&)('9J0@#473&31.>?163*075(8./#-$F(5*&k1."&@9)<96/!>I6Q>-H,%76.<;) 2('1P86*;.57(-*%,.%#7+8@*2*0 &''))*+4&-3,=K,.((#08.&"0.)*'2!"t(")&)('02%" '(9HF(!%,=//'++"-#,'40%+'V2/1.Bn*$G2%)>2*233,.N."0)1/$50).=/$.1$"2%1*(+-5!-3:7)403($).!?2>(('8K)!/$!0E-(&#)!#"-1."$1-%%)\%&08-1*11,.)1AM-O+)#)O%40"6%#4<@2h .2%$4!6A6,#(<*&O05-*,0$27%&%)/[=/.(2 .&#!+,*5)!&*%#!#,+L,E%5#)Z+:$*H*/,%1//S4>:6',6I'!<"*(-%-'1H*+!-&-38%!/)8.,>+01"6!A5+D:+!2&'A*)&"#M%0B%+'-!0)##5.$$-{V.#$!.$04;7&+('12'8230!.U38E29:'-4=]J7+W,81-#23,(. -+P13&53#//,$!"1P&.'Z)A#/'"%-25)+0%#'**E).<74/(&!+&' .&)>%<"4!'99#('*-).(($2./4 0&%2&$3.0*,%963,=913.&4!,B))&"|$(%2%-& "E8,(9&!%*0+67+<! .$-8[$.+* %+ %U+*"/,!/%1,2$'$%;%++3&8$ZS!(1)C'*Z()'+w$*;<6!*<(+/4103:%*.0"'"$4"+:6/%/' %($5:2) 3"&.9,'/$39/)#(C*14+57,8()D/0')1$r4'C7-//4@;$1+2!N96k ?)2C9%)'%'!$6)&'(1306.# 3!;186&8'G-"&(4+).;>;/")'!!D,3"/20E7:-EE500!@!-8%O'G4*'-'&.(#(%''$':#099"L#1?'#0,/?'*,.#*3+*-$>D*/!.)&/98%.45/.$&;$<(8-3%'$(..(J+**x!0''$)0+/126'),)dS2&1!-+#2"92>1 +4+%,*( ;4.`f4$03 .%4 .!2+)+#)*$9/&[0'# -$3!)(->4+:A%/"<;'-$$*%$ 3*'7)$,%!10-''E()6..#5))~)$3&:<7,5 '%% 1? 6%2)&-,#&'PXI66+;A-9,4(,%%$'$%6;#;$&?+61L-5+.$/#1/++/D=($8!3'#')Q"(!-&3-4&-%4"10!!$)'I5,!'5''6.%@(*"/$;*,''(9".)3&*""7"-(4W,,*'1%'#2-)$34+%!#!.9>1,!/(#$*(6 #$19;C'6:2#)3#4, .$."&'&-5<)5!*3.54(9(500B29*4'3&-B')3''2$#2'*A(/'$&[*-503&5"Y+&* /0'0.#6K1"9'(-#R'!;,6?"*/+.-48$5/--3 ?'2632%%(D!%-#0!3$ J6$/$&$0SZ!3!$<-(5 I*:B:%*1+!7"0'1*)!$3;(;,,&-2!+G':,64,%=$B(&1(A(,#+2 ))>;&.87:--%#130&:0/") %-!*3 '06&$*0-03'.).%3)11/"2#'(1.7(-)!1-2-%-8+/-71'3$;9-3?#1%$);&552#-N#+$2(%3?-4(3 :!$/2&*::%'2''./+$\ C0.*80$G>-O6(8&27 "%W$/3"/0/5).O&8.E!$);#8.%67!,/2'';.0,.*1"22)!!7%4<#)5591%,,@"%/3-/.28;#2282"9+.,)1)0!@5-"!,T&-)5-4*- .)*42M6&: >'*-/+<=5-"P5.2"$-!'+37* (.F*0;0'.382')'5!& -"! 4@(+H5$(*,2*m.*#&13)'&#,+1( "%.&45+]$%!!.+5!&)&)-&4)8/%2+)2!$'2B*#%09,3%,'&:2+&$'6" 'G%(+'5(@2-%1$3(+'+!(/2*'531+0'.2%0,5.(+8.53)0(.+>'"-"1#,$**).2)*#P1**) &++,$(%5(1-)/<+'+"'1(,5/"!0+').,"!)*2)00;/+?,)-,$"8%1(30&93,,:*3*!#)B(2),=$#!"(.#P1*8=2,06& ?4&*%*%."+*>4.&($.$".,.'/7.1!:_).'/$.&/70>'&+2%'*<>$*%C&.-)#-(0*B+(#9<,/8(C$/1.3)0@/:$(+777!#-3$','&M3M'-/(<39-+-+- # 4;,SB14 G$,*)!4$b17>L%)?2)$6%%=-&8-.Y@"4(% #,O-=11A742.4-(2 5*&%%.81/5$*#((.!6-5:&L+8',*7+#:8.#2*,$,$4+/:i%&=2*.-0910#0&*'&+.1&2$1_)+.=**,$&( '30950(%*/+))1""G;8.'-"/*05,9)037!,/,22"(+4&<4-55D92(4%"7!64?#(73%P)/)',.#1)).1-))$32'I; +%)%*!<(&118/$.'/%!97#*)4$2 ,"3.E()+6!-2;895)>!#%("""?%$(:,&#= 3*C%C)+/<543""011324<; 0*"$0O,4+7/ % g'01&'98 E#"."',&3$6/3(.7!&<0#& )+D6("@+74,,'$,B%%)",33Q&"?:0##')2:/!;'<*H+*'"8$+#F5;(,&&1):*-+&-+1;;4'+;58-?!Y,+1#8C=.-'!$A'&?2;",'%-9&*3&a#7*=:/42@4@31$=,!4(,%1#(00 ,":)-&!).!):;6('-+E4&3$$!.&+$0=;:'-+'#4"!3-+!&5=60)38='g64'.7G2,:!?#/+=/#1))((*&%x5-0-%5.47$7,0,6)='9%)/*-:(1^!4004 #.1=*0$BK+)+@1"'+-#%4<2j 1%')-13/((,1'-+$+&< (,1&2*78.*#"a#51532.3$+/(580<+53'G.(8+.-6::8#D0-8+ +,$C-$(*,B.-I#0=.002.%&(+* +"]8@1(0B- 4'29$;95)5(8<+4#(/4."@*6*!+1/.488%3-'E$(+0-0+24!+!A.-7 /40)@!.2*-#421&/!14+&*(C&$+"$'-00I=8.9J).(-->=.1!""'6#+"(#%.<;**+,+-5*&(0%*(&;:*;'1=*-+2.&%(7!,1+,"2/9!&1*".1,+.;(3'4)022#,**(;5'$-770'/+."$'43.A5L($"'8"$-,))+6QE80&)-)*!84&+:1&(*+1(-%2'+(,(G'=(+F+f5.('*1/4!;26%37('$(0!"/'($$-1..((0*'-.2,,&2)135-(>,$)2&1")!=&*-'$+9#Z,&.*%&19)+:2,SC+2+4##&:+(/4'5$#*'*&3I")I/'M&*-6)4"1#B:0c9433D'++$1D1;*'!-(&5&:""4!5*+*$;/1<9R5.R+##!S&03!)$//*8:+3&'@F%C,. &8&(+")"D(-5B2?;B*.@;0B1Xe'!&?>3/-.0/(#)./J.(P-!"&19&"G-.W9*$!G*M80=)3$)7*)P@4')N+"$.$7,D*,+*.&-:/)'C(0.&2!B).3$>-*4-22K$#/')2$-Z% (,\>,'5K &,0(,0-!05+0),#%/(,9#3&3&%19 0+/.'@/-7,.*.3=(%#'%:>90C2;%?&2((0>"$0 #+&/;0,)+9+'$0'-,/Y-?#1!#+4,'+(+#%8-1'(+0.:))E/$#,=5)*%.&"&*'.+8;'<4A/2073"(,()4 ,!&('1#8*0*,)\- "1)4&'14$)&'&'"+71+1/0,(!T.6+3-1%$+(!)0*'.,/1)6)"('(&51*0"5 '3/6,*%:/a%-1+.2?&7 *3'(%%.46.-1,.'+15!>"$#/&)+,5+3)[+*0#'/0,:/0&2-(5.D0-.,.*&1&*0)"6,+(1-)+,*.#(:465''13++#.+0-(*'+2''%@D/)0:1+1&-*O(8*:+"0//+2!&0:.<)$/,+'7')&/(6-$+!264**4('*'8D:#=23%%(+#*63U3C+,0$)3."1K.)-/D')'!".*#4&B'$+#)$2A$*1#.*(09&1,-%4%'+ *.$!,+'+!L5*#+).(=2$ )"6!!'=14<$#(G,+-&!+)+-"*88C04%('&+(2+(*'*) .>*,5#)&177g34+*)0/)%%/?7% ('$>0#/...-'$/,((!'(('Q05-$&&>;(,&6-/0',"-$6$+5)'(&K)!""/,?wC1,"B7,g+<+-0!$=5:(",.)07.*1-*;.+(6$*$.%<0$)=/*;E!'2%"2)%"#'+-L##;%+%&&**0#")(*3>I+'8+()0.&7,1;.-^6$2-\(0'% +#+.)*(?*!*);!$-))%%&.#*<.'%;+0"6B;&0%:'*h2$+#A%)&).'4'-%*+*#G14(#+U.%("0:.-.%A%@6$8 0)/-2,5)*0*('!#//,3%D&$&B)=5#(*3!4+:8!'(*4M32/ 0"*0@:#(+.@00&(-U,(-"2)"#'/0?((2W 24':%0**&-'A$*.&'/.$-.8(2(1K7((5/&;1(-4/+,.'*&2-J23+?'%(a$./&1$#J/."6'-+1%%)"$706-&$<)8*)(C1#4-#%#30<6%%) $$(%0! -$'2((($87.3?((%+)&# %k3!:'%:&-%3'-6/5%(&&.+)%',$''/2,-8+#1'+',+*'(/'5-.//)T%0(&.807'%7)*&&=&$.+9..%"5 ./P%*/011"*FM#'/)5%84-#&&-(DV+3+")$) 72P"-+)0'@6<&!%,8-30/(-&%+-*R83% 347.82? #4%%,&:-1?(.*)".9G+5"G"-9//5!A(>*-= @ +"&3.,+/3"/#',&6A?%?)@1''(5$;3W51)52,.*&*(,-,/4'?+%(,6<>/06,-&2,10'-),'"%-'8-&5)*-07)807+A2830*6$%!*-8&..;)8<<%#4916"/(1+66[+"(:&+773/+'5(/1#,O)&9**.$'F44%)G7>($7$2=,&.1. 8/,,*00PY$69&=12.++)3,%**&($05#%33$%/),(3$++0;027&+/&1*)2;#-*9*(0>!%6)(L6'-)/+.#'&"%,#7(.*%3&3(&+,')$(,"&<#;+!-5:-&1"-7++,%3*$(-/;!<+6'2,.%;.04*2.()()*(/("$-,-%+.1+$$=+1-(7&&0#2)35),.980*/'1E.& 83(.5, '&8+4+-)717&&.8G587%)(+1,/F/+ .,!0&)#G.'66-* 01I8*(+1!(*%)*9'.16*'5O1..3"(%)-'."(44+,*/(/':#'/4+&+:*-!*&,:I4)R)*).>0/)0+4(2&- #6!=)&'$;UGH$$!-'/5!5]"32#+*.(E.-)01%,/"7.F /23 $,*$F5 95!)33%:!`,/&8'&&+*$02:$!>,#4$5,$,(*0)U#7,%K0)((*'02 2#0, ,6)6&&$%-%-!,-$%/'-)*/9''/H23,)5"�!5&1('1$&')1_8(/2**S'*#$*7-%$%0-54)27I!!5(;&6*"&9;2& /;1-;,&%9'*4>'0=*?K63&22=+T$$(&,2$+,%5#8)>';0*/2?.2XT(3.&;1-.()7)!"$-,?(P#0D$-0 C(''!)/",$2*)/'(/4:,"#&:!1w$*)R)M,<+)'.2-%&*#(&pB!6,&**)=()#!&-L(7(%?#,;1!*05(735 *+!)(*0(37('.-*8!)&5,%C!.>.14.-;2 `/"1%/%*=&+'0,,"w))$.+6 )2+3700/-"&.3+4+$)2+&/-".&=;5(* && %;8/&%[=;!&@-$*))l*U,!801 9"A))267,2+#)(N3+1<,'%9)5265/).L6%3AH13#+-/(2&,+,.#c/'.7)2<)?8M54)4$ (;.:"C$+2$-*3(I15(&'7'&C6I.&('.-.(%-$#3+#23"&/ @#)?%&'#7 */+I(4,'%-1.48%",$.((=4$]-%++N0C45-$).35/+;<)-%7!/(2$"'%1/(?*'!3/4<./H-$&244O..$40(,.&(-?-!+)+&,H9.4*72,,$'7)"#(&0*4#&-%%)?*3(/)8'&( %$*.$\,76$!(/52C!>4!4(82#/5A(47% %>$1$LU(),.%/2>%'())5#'&!C- +>'96(!|,+2-##7%#/)!,(8'67$#0)4$-(6+$$#1?(&=!?(#//"7%6!15(,-7?15*`!/'('& 37+**z)'.1*AF+8#23#)/-"X24#*'$$,32!.5#%(1#?>6)@2012&!o2'%#-(02'#];++7"%$79L--624-!(9e="!*K*%,)*(407%?4)1?5+6307/I'*/!$*Q"#%)4 H1-,/#m--+ '!p+/.*28$8#$;"I0+7#!;J%2>%(+4#7*&".+6-//H1.7-6 +'+**(@/160'%7.X+#<0,&50+@')L2<*6-*()J+';)/53=471/2(.*,)/&;+#-5'.0B 9,%23034G?/,4:7051H/(3D/(-A:.72+7+2'%G%<4?-,I":+3-.$$0&:.#,I7&+A4(3$'%)+,1s)* #15$0&;)-#@2@@+++?I+%+.9),)')*4#'-G(!3J")(6*.-::&:2-2)*8!6B"#-07>:6:)+5=!7%:(+&&59;(4/:+#3&A,&'--#4%18+,-"(39%,150#,3,%=%.=$206/8&(-%: .5^H+(4"906!,& !1'20'1/'$-)$$);6#!;K%2b2?;3.$+0=/+/7+#>@d!!$$,&$" )/2F7"%'*4..>%%3!6%$(H/3%83 34&G'1LG[68A$Z'/2'/.32&&-,/0<$%./&,,&D$4?*.!>O/. $F7$#"+&)*+&6'40' 351$>@!&+((%-!+7, 0+*/2!'!/8 7+/-/:#."7.,.).+,#%58).!%/%1.%)2%I*%0(07:'',2*3($T) *2%-#("++B'#+**<)<"*(.,+90 ;"%)!m5"%'52$40).$\3H*K%1)RE'.-$-!1.27D0$$61*'282-16%#A'9>90 '-1 +84E/V8+23#29'2*&,*":&0,%&C="&*I#: .7- /1*04#.&A-!'$%=<"F/;5)11.0'8<1/*s1,&:),917"/(%+0/51.6,7.%+* ,+8%3+-$.%#-5&!.P&,7C(B,2$#%4'2()%(%./6+2$9 1,),.L'/(+%+/2)(6)&.$/0E*#%2+65'"++96&11'/&-5($*+)!(1($%=,-.:1&,#(')10N0-&%:7*0*B;0*-$*+@!,A*.!0 *%(F0#/89-2(!+!1+.,7!#1)-1%+(,)0.#.1(.,Y#+%09,/+,,#*$8*<;)=>/+,E!)2;$1&.,L.?%$+$)+(7)4*-.4735,*78''.?:4. *5,&#'.1*2&C*-$-'.'*--E3*,)0+;G.-&1.$4)'*2&",/,,=*/ )(%.7.*1+).2-4)2"10, %)e-"63-'1#4-)30-'#!/$6%-,=072*01*&&001(*#9*,/%/'+$&!/#-+*)4-$/+-.#%+$!"%0'2& 4&33"#-)'&*.).-$5/.%$$"&.)-75((%%/.D/3)(!+','."&.*4$7+2+/63#.#,-.(-0(0-,")& /59+.+1,,<=+2+K!-.' %'3(.,$%)2(0,/'0-$.3*)65%**&*,/+*('26#,+/'404)".(G+.%/37*.'3233-1-)4)4=*"&-'1#7(,;"8>^$1/)8-&8*,)))2.,/,#!*,74!)23,.+)2('+%..;25.-1*4$&-09'*02+'+6&"05/!/0)# 0*-7F51)!,.(0,(72:(21'+4%0/(1,21) #0.-(%F.0+2&(,*):7-$,40@)6F"..*$?+D0/0.?-7%(&57-*$%'6*1'%'+,($!Kw,')D$&((/F84)#4.',4>.3Z.=<31:4, *',*)3!-)/$0*803(2#)0M@-04',7$58#$&8,..#'4&0"-/+=2*_!/ *1@G8&,!#-!,2e25'*-#Y %&-:2<-,41/'(&U#,#x*_,,'67(!(.$:/.06./.),1/.$u(/$%&&!""'(#($*),,,3';/,;)#%&#.48('+*.$%+8-',N-;3-+# ;2,&202/)%51&%'(E1G,+09/):%')<-!4/7'*)W/0(1-/*T$?=$)!16[00=5!( ###'+80-40')/-*-1',D,&%&7$@%$# 0"0%AE,%*()*6?8,R+-2%6-")(/6+'!-3%6/03)A(71../+;44+22&643">!$6",%1!1 21"%\ &(6(8%?$'=.|%0B&"%-,2f6).'&-&=4".*)-E$()V(""-!<2",C*30L+%$N<3 1&($4,#^K"2(%$0)'%('3M-.R)++'7#!32)6$/ ?++)%#+,7J$*-/81,6-("$-,$/'2M4E!3+.1(04'O-''(lJ0+.$3**$@6 70-'4("-*44,$&"&-1/)/2.$(N&(&%& !/$#k4127N8-9 &+m 00)()$1,,(/j-G(#3C%=3+*15(##-&151!-4)+7&6$9(*0H-,907<$;$l"8*$$-/)97-&'%+2-F )1$#B;+'.%-'i)$#$1-2M,- "? ('"*'%7%&&"($"*:!."4"/4' 1"+#:o.4E/)75-*3>'%-:.$?2,++34$'3*0-7$"#4,+)*-&<<4%%,-'.00("-3+$14('0+9(&%&+21'69:&R)$-+$1%=&0:--%#&+)**&,&+,6='0&4 2/.((+/(*/6=!.46&%,-+.,$8P"3<*'-,`0(> "0!4'*//=@(&'$0*(+$1%H>0#,)-%%1,*1=6@4B$4%34(+6( "0&30"$BJ*BAA'+,(.)$891723%*,$,F=$:9//1&-,;& #"'2('$430+&58='1(++9/6&1!5)8 *$`2'&3A)*4(1-E*,&!2('>>&'2-57,)+,$:2*(#.,&,'k(.5G5)(-!)/6*<%E,-M&-"18G.0&1/@&6'(.=D&%",)'!)*(=W4B3091%9,Y%+*'F!.=*,$3_+E%%)# $,)"% )%#0## !"+'$ !"*!'$$$"(#!%&'%%&$&!!1*  )"!$" )%! $(&%'%#2""' % !&"*!)'2!$$'#""!% +$ )'+%$$'!"% #!! "%%0$$( #")&(" ##&% &6&+% %')# & ) $)/%! (#! !%($!# &('#% $+%! #) $&!'"!-,""&!$!! ')%&"!$)$**'%# (!#/W#C8%&710;B57%@0-%04%9)#.)342+0)/%(%#10,' ,2%(0'4+'1o/"),7)086.2,08.98%+9A21+1(&@6/-D#,2/-$%%1**.@+7+g.;+/P.;4$$8'2% B10$-B,&F%%+,'$$(#&,0,B$453/+#&3+*!:4# 3( 0%!.1$&*# )75"!$4&'#,*8.->)/7&1-$N%/:*5MGX3')*;)&7-//*/"&,(+4#(0!$/(,'$5,J+.+2)!,-3#"$?4>0&:B&3 !%0.<***')$?T24)#'05"'727. (Q!&5+/1.$!N)&492$0-%-&+8(-28+$&'71&'.7002($ 3.4(5*2'.!'#&2),*-6*-3('+))3.'67%%K%,=)*,*&0@4L1()/&.$(1'6'-))%'-V0*.EL/)$$$++861+/,%H5!.9!&[> ,>&:$"(1$(6I$G)*%,-)<7:*,&&8!,G. A8#*'(P=)!%!8'&93 6/D3-*.&&+3&*1+'0&$-" /2N%,(!$-O+F1$%&'0@63')&!0.M,."+ %%;&,O$]v%)3 "2+' HS)1BG*&?#*D(4.&'1=3+.S1,&'6.54#2.)>&.")))/U'7;1D+%4D&2!(31%/=( ='#,$"4 7=44);%#.1'C:$$*=9 3.4-& '$- *A-$/31+0(6 4*'>0"*5.1@2: 9.X')7%& 6#(\(2-*0(7%""M)+(F.!<0/&3(0)30F.*E%"K!%BG+L6#B4$$4*'&;/06!]@5?,&"5+4W.#1A($',1/(A3$E%'**!x&16+2%'N( 4,&+,*4& /'#'!.,,"(+0C:0<*'1((*$2'?.4+/;8'" )-96"" ,X$0K"(<%)#3 *2';$#1#(+ 0D*")6),,F-'*#%2;.#+'K!5)/ #!-!3,>%))1-&D42,:#>0,2/2;C$(.?%1E2(38!'2 .+/43&),":)@0(2.I2/$%&(.J/612"%528,4E6- $(!D3*3+h9'*'"$4-%+,042=6& 4#H>5361&,)H6'+'& ,/"3+>&88+/('*).+6.*"*5!"3@(*-.@#4I*37'-##</451*4*&5&,./B.D%$/454..*;7 +,'"#,0(='#/-S;'*?!% !1/('.;%*#3"3$!'%-#$2*/5"40*.5,13&b.-%/ *'30+:,0$3"(7&'-6%6g&%(1o7<1!5$' +)=0*&'1.+83!52'!'*/6#!,1(-%43' .&$>-:*0+!&"9-0$6&.81-=&O'$-#333"26)#%<*.(052(+P)//&,%*0(7#.,$+)11$ "$4),#)3''27($<<&:0.,'<($$1-:+"'*5(39)2) *)+$@=+"*90#+(4+)!584-@28?%.#7)(,/1"5'/2+-& 5!27";((')3,**0/!,1 $"08' !2F*- #*1,0&"&9$)"@'";&$4"-+K/#,(%1$/0&*()/% '#8>7D)'"&-"% (*;*2-.,&c/$2!V:7V(&+(2#&8`-6!G8 +&()$0F,#0++%*S'#&#,#1&"#,414#,("!!*$8$3,/9<'+#($%&*#1!/C/S86;%!823"38%F-%#11(?%4'4.//:D"-'9"%8VD&(1,*.")&"(&.72$!3&4% <.+C41,2(4,@3.)=!,),! &(&41!@**$6"<#6#)4;)&%P+*A$(1$,"!,'0,+,*- (> 34."'(0%0=&"16-;")&0+,1'3 #;-,*0N.*.*0+%(/+#$8g-*,E!(+7+)+0#1.$O2&&/* (:,k-)>?+U("+2",&%!(@( 2E1$0%-3()-))-+;'"**+"(2%M=&&$8/*S@K+ 34(/@=/<+$:/(23** #)/"*=(0.,,"1*5*|4$-,//&5I2) 69F0+),"9T'5-"H28*2)*!S%>"6;*/)(6$''/.-*,*O1>&)>`(')$',-a)1$)!-:*;;)+"1.+%+++(,5%(*0!8(%9*47/-&!5a(4,46-:5C.9+5B1%2)).*3:)6 @G*1$"565"1%0:;%4##6;!9/-"0-.,/1-'130%*03$)K4$&32#.&,!+6+!&3!,'B/&8!,*1&)<86D#0 @+6-06#+).D!#(-(+549<+:0/6?%,B:)"9(U/$"15-40>200.&6( +%':.$!*32!#-/4.""2 $2 ((": 48<(1576N-7)1E!*9.%*13#!(?>"*""'8$3$*+1#(6*)A,+8D"?-,.& &".A"&)654+)HQ%/6$+**.6$?5/ 4(<--@.  !# .!'$4.,)+/9-/&B@$'"!'1,&2(16$;2(#4"8 3&$"'&++%?," ")5&8(*"0+(3#*92,.*'30,3*,' (//*".((%9$:)+,$ (6&3A'",.7/'!.&07931&=(.*U91.39)2&))&7&(577F(55%2":&-;#;3,((8($1,) +72.%,$%'3+$0,),176().`6+56 #,:'8*1((5")-'$)-D*1/E-!5%-9)*%%!$07+$4&"6->8=#*!/' ,),' "%%-'+0?I(A6-0=*>,((/U,;)!3850/!/0-283,3.(!*0$1?.';/*?2F%,&-+%33&)1(6<88*G#%%;(1#.+6&N85+,51C4!)0-+1.'..7-*)9+&33)+$)*)%6/$#3"90;(,/+*/0'( 1&.1*/#.#.5:+9U-&&(*9#-048$9:-.#'!3 1-./2*+2(0,-6-&,?2SJ%8%2$*9(+#&1'$ +*#%,E)$,(A,'.8.1;A199&-.5.1,,0&*2'Z3,WE,*+*4L-(=#+%"3:3)$7'.%(-6.<.. #)$6--)0$ *),3,I$ 4-1"2.+=,&++3(&*A-9%'*25&'10/#')/+(,6!*=1,)-k35)'"2A2.."P.-!'$0:&A:&!-L4<%9@+*!9%&)'"*+'#!Q8/&R*8<1-$B+).!!2.1),( $=&120./88#))5&)#.(!+'@%1'M$&')3+->451"+#/..!1.:2*/#3-":5/'L3*"D0:0"i*"1)+$$2.$,.)'+-((%105"50('19-'+#' &#,+2-+'6()@ H%<").)"' 2,0B&+*&(5*1@"8!,"#18-'/)(.3"'4-:*+',,F#&/@B%//0.)-#(*'"9;6*)')*.7"**#A'+$#K423$B.) 4"D#+,%4!1?A$+0-(1!:H.'!&>55/&(<601.'1&+))#3!7!D*-"($*/9-(%-7&3B(6!C@0V,/Z6(5%)(*)(86!3$1'1-5&-7!*(22%A '5+(&1+"/$&*# 62':*Ng3,0%7)#L" ,/93'B>I*3%/"9$&(!*"-+<'O38/ .1!4&$*35(%)' 2(91C?3*'1I1&,+)A/0%7!1')X82+b&%6#,&$/$4&,< )-4*=#/%),553+':!&20',3/',0*8.04%&#.B8-$->FN,62(.02%%8& +,0)+'(i<(&+(+42(6-',?#8)U<($6/8-/O.*,9 ,&,"&4%.(-47$!8$,1*&*'/+/>*,(-,D++-!*(;47''.6;%F))9L!!-+&60&j/,.0%-2%*'(0/"F1051 (1168/'""38(%#/+0&0912)%.%*)3"3T0>)- 6%0"*),1M(&# /80$313%H(//-4)9&/4&+,"&(A>''...%1+ (,!7+(*2,3'()296B#2#69Q&0%6()@$#%:1'07&G06#%$N$/#83K3++/((/)'2-5**%).;-/5(250()&/*>"*E)1&-- (++*1(46)@#*,!.,&+%%.(%=G3&.,I,:f($52%)21(+.3!<,A&4'=5-F@%)#5C*.'H)+"%=2D.))3)-)3"?(/+G'9/)#+$.F*613&+)(?-/'2.#,!$7*/:)<*&./('0 941*&*;2&<%85*-*R;9#"50*-. 6%,'6.!02*!!5),0#'<$3!##..5"1:((1+!15-&3;006 ,&%#+ /F9r!#.&2#&/:#9*.:./*(3&&%:-2J*Q1/T55q"'5*6/+(.$/8)2.10/:"-01/O+7=%8;"0F,3*$&<35!,-"!#)=$-(!$#2"!)%),(75-@'&*$#%,/.84!%%4A4#+5#6*.()C*).41)&$*<* 0&34-#'D="!410<24=3A<5901;'-<;.4>I>4*/>'";W00$9)-'<53)j17G*((,!1,-++!-.<.B'2-,3$,#2%'+0*&+7%&*# DC#& !&%."."31411%.9A-*(&(9 &:,&=/A2(,$-.(,!$((.-+),&/20.C *0.)('&0& #20,&+).O#-'1#9*!-&&!1D.0*-'&0*%/#"'0,.+,".*8,)) 4%%, +&'+9,%)&*)3.#'0*7#Q-&).!05*&1D(:02#,;20-%'&)/-4[=/(+ +C,)92&/3K&'3#$,6.+ /M4k0%8/*1%(L+7E($8, ,-&#L$++-$B*.1-80,&0(&*,4"+.)*,5&&#.-A0(''#/$&&+)2102).7M),%:*-0,+*3./#,;-*(3**$&2!*=&$-#B/+ 1*)63:#-(2F *>*"!01$+-#%# /B('+31,//)L)(w+1+4++* )3&)'*7)1'%/#9+-2*>%+3>/*+$)DJ7(-# (+&2=&;Z0$+0-"E#*2-,*!;$(!=&)"(;)*)1,!/&"+)7&'9'/K(-#$""")569)1!$+0;1'19*(")*AE+0P"'#R%6 ,5&#)#A6&14)*<,3.!+0(D*"+46.5#1%>@)0)A99;8-$'-'!2+@66*-"0>$(&-0,0'.1,)()-B".A!)4+O 3!-*Y *&5!.C:,A&+OD#3"P+Q"02&O#&2*%;2 *;'1)*7#."D $,).%#0724'4T"7-K/,.'"-#,;,38!6-3,.)061((+(05">5!C=9;J%%#*6,7*8%/()172#9$G2%6+/(78$#-8A3563+ +9#.*%.5+4 "'(/)0(6C$(361)%4:/E&IM45(e&2$*<&5,J4 A(*510)$!+@$$&$0%@$&-=%,@@2&*"0$#$/89665 27%,?/,6.X-7F11#.*+)* 00(,1= 5$"7-3.7&B0(*#%3019)U"# -&J,B*C=1 5',!"F)1@0141/6%).1*6%4&8.5=%]4422.,-;&.0" "&6A8,6-E13'$$/,Y+-#&(@$4801!$$K-*3D8%&!+'#2&.-!*H#,)/'0&+6:+MM61$&#($2$((9#F!!+,>1$A)5)V)#@'0E0/#-2*$:N$,3D'0%(851"3%2( ()/4,2#')*'"&.#'#V/"6%@$->$)0O3%0N-).;))L'50/)>*+.!L2%(10%&2$071 +/,37/%./)/(5(),**!'3%)&+*'&4.+1+7*7'#&20(%7+'/>53,3Y& ,.M3+D!Q#%+>01A ):%-2-6,+L$+=& (#&.5&9+,*#.'61,/6&%*)+*)".79%'(84,'(- !/../$-796'2,,;!86( D* 3'&, *4*$-';(11/&,8),%)%""86-+5#+":#$(;1*6*-+=&/;+$*-1-/&+&},(D.,'03!.19-661%!239*9+4=)*8;)/8(,2'+-B)%*0+&05*1(61$*(3&3 ;&#9.(;$#"*%/125'")-;'38$/()&*/@'$),44'2"&*%5/63"0C5+2$(&F ! .Eh"3(6$2,-'1'(5&?/4%,00$)),("-&#.),0-@&/2(3'#$';308"2 9+*1,G+)$)$ %'4)1=7D+-#AK+0F>)#.**+332;*T-*.%#k(#<0#!?4):+"'Q?4-0-)'("!8,.$!A1!'++8('3<+9('?$(G34%48$'- 1 +3&91*/'%2#2+J;&72751+233.,+)"-:203#@0$+(4+-,1+=/*/%A'$"&-$1Q"8$.0+/*'*.)2*F$")<,@"*42.$(.0%8#)%'8J(:*2":(!i?+-++! *1"016EI6+*@1&9+-"3D,('.#8'%12?8*/*%'),'!6B!01&$1=/&* 2+0:,<&/1@+-240;&,-#)%+#5"0$,&0,1%<5>#&%&3-""4-12#/.0).<2B,0S#?9-#?9<)"H5!3*)6+.'9'-0*:1&-!""(4v3(5.#K%"$A":13-)!*#*'3$#$1:45/*9')-$64660'2Z-(S(.30%*"0%*1#[M%0e5('&8)22-)#190BF%&.'7,":$)(&6,/6.t*$9#%'%%#$7*+@+/?7D 1C$253"779A+0.'=D>>B"& 2* '.=$-**#"+'1##''9(0-2&%V3+3.(B]1(6!(,2 &--'./)/+)6? +1%)@/2#(%0!)0$.1$(2+$%$&*A+;5:'7P09 62,&B&&/6/!.0-04.8-+(4';-!!72-*2@1.:-'+$#:'%0(T##- -/9 7.""%&*0=!*,3("*A-!'%@:811A-3'01$"!4'&/&, -'10#496,+"1)6,"0 +&.'',##& ')0)A+(*/!$(.)56- */(246,1$%$(-+1.F3+34'")(/63'!$:9#.-&&$:0E.9'0(!#(.(D7""4-+1%)(?D)%.&))&%''*9+#(-%0)A+,/)* 1// *!/u''21*+?03--0(&'D "3(0%4-30*#,#.%0>:%,1;+E7 3%-((*;$8*&+(<9=),10.'$+;$1'2B74056)'=)0%#5&++(7741)" (),#+(3#%820C*&/"'F(8C(:8($.3%.&+J'A) 5+0./3$T1+!--((:71%"-)9' +():"'-45<&-/,3&!1)4+.)3,$++&E'#'?($1,*,-46"2/)'&0(0$)#)0+,.9<4:6?*!&'%7(-(4.:'11%-#(!32/2.9+"4%)21*":0#*-!--$*1A!**/*@3,1!+-0'11-&*1#3.+37). (,.2*'9$!0)'+6* +205%(=K4 .0 &,-641044%1../;/.--%(*<2"".*3*7/*4%4-+#98,20%8"B&/+),'($$++%.+15%4$.4/"/)0)(-))+'L+'7)%4/D9+7,!)1)/!')5/&$*5/& #$-&22,*..+34,51( $#7/$0B%1$,)!00>)*4>0L03'+"3&-"&135#*/&,+&&"6#>>-.;(#%,/I#+-++)19:3*+%24<4+5/0$*3*$&$=',0%6(//,6%(-(/,'6.)<-&2*8 ",6A(-$&@.5'B!a/A"I#,'.#).?" 2-&1"$+20?,(>%Z++<('=1 "*$$)%$6`#0(&=&$#,W)%:/583143$ ,!3: *+Q9�"4.$/9.*(#-"9(#@$$^;!(##.:#) ()+2+-)!*)"G*5(&0#)*,0 M!*/5#7%/&!9.$)+')4):1!.7"++#%"/.J%95'"7=4+/*-$%+B//=483#".2.%A.84.5&937.%%--+9$9+)010+%;'(''.L1-).&""=!A&:%(&"7!16G'M1-<-*.+ 828>%$.9)3"//!.6#AfU'8/4(%"*  0 .((++&*/6'{&& - ''))*$K5$@&/-"5*0&'$3-0,'%2%#)7$;($-=64.%6$"(#<7655$0*->1*-8"+$3%&8r,&.2(,7- $$C0;+('"$?B&@$1!"!(('-+,(?%2>2+%$"-)/4+5H*0K1&(0$$0/%",-'+"-B9C &4: .3/5B*05*08n,"--/0%/,$c'(46:1).1-*L+5'3:/&6&26'0$%#.=%J,2:$90*'*&"0+=S('!#6$f 3#0./22'$24K0A84-)0(4'.&/*+#$-;;3*+2./)3$'+ ++,".3Q'$#.)/642*D,&,+0'9.947 +#,%.3E#06*/8,c.(*1%'C;$?7-4,, # =13)-00+'(_Z+1!4%<*(N.<8,; "4,*>%1/@E)#404 ""I*o!^%2+(+ ,22)1F!2<1.%) +&&50#2=".&%$?37"!5$a)%"%R2*0+,3#R%g-'/h)*,(31-$*,-%3&$ (+P%@D0!Fp!0&)3###&7&$,4.*=5>(**>L,0+5%:@H* ).:$2KE*D:/(; 01#'#"&'B-)+"%.#1+>))A'&6.#B %)-!M:A>2,-1.3,4+ /#;+8B'$12)3&5C*1+<-1*/!531+"% !!'$2>-0'9?"S+-4%@&.%#.8%%8,).\-'272!7%7))9&k"21=?12*!%+$&j?4 '&546-"(''%5D)&A$.3A&"-1=)%,#>(02?. %)C 8/,,-,.:+&'0 ?) A&<++<,G24,$0*2&*G#0#95%K"/*((2+a'04*-00"53-++1)('&q*1&7&F+)$&60$*,92009/>0+I.+-.<4&$*(AG(3;6&*%62U%H:\9*2-N !7(,96-/`($*.82.38!3S00%&%$**50$(',"%6,<$*F!6+&/V($0("(8<*(,50(B%$#' & ;Q.>''3&$.! 76",&1;5.')$(,,#8+)F+/".5P7'/-#4)*1,-:41-!6+$#12"-%*6t27>)8)3L*%3)."-0#+"-2-1;.7++8.(!#((((2")2,@03='. ;")-H5*!U0"1?**)W%$+, !:),'$$%"(*%#('".+00303/'/6(!1$@1.'-)*"./)(*&,&0,5-*(H8!34$5(7` 3$.)",L$(/"G1>%%2(,'&5)"0EC3+<'+;&-%-&$G -(*")"."$/+89'0*%)#3'S-<2:%4'((7@%A0=,U#,0,&-'5=*#2,*1*,4'$0%"3,$!),(/5(!2'2520,),&-@&/#=:/+0-- *#.!7!](B+?0.@+G#%5)8;+/#,*%5"-+#/;-,*(lg'(%&/..-U/,..,$. ,6),(,+X(*0*?&37.&%,"")#J=+.+-#0"-+'%&)A03$&,**-1$-6#F&DX4+(%2*'34'-I(+#&$%1(+*"A)62#!3#<7$!$)$1$)*.,#'*&!1O)1-1$.8$,,0+&)((>4.41R(7$)'1l'#*( 3&B#0C6%*&*)++'.'F52),8+%)5$6'$#4'!G)&13.4(// ;3*-3+($;&7#!7!.('*9*=*)+',5.("22-+-7"0$2$4-/1- 72#+*(%*C'l,$@ %6$*+8,,7!+%")229(1T-$3:$.$-( ,%<4% %$'5"!&$$)"23/43:2$b*4"%.=$ !+$#%+G'+M+$.*#0"'25E 6#2./-6c"S-$%,1H' -"':>2%g9&.-4G3(6&,+]/#;!1"5,.)28(%5*(35,/$411/A))F"34-+,#+#-*$'0!8)5+%A-0-*.)?'4&,&;C!('-0&&.$)$+81,*/&$"++(2*&/),# %*&)%90//73#$A(9:"1!'#"(;9&!&)9-//g))*m ! &?9!1:'))2$#2-.;,33+).$'* 2""9",("*.-+-711'11/,#B//%#46,(<1&+/1H*0 :7(P5',"8$2.V##)-N''$#i)* );03 1-*?.0,6).3+&.G?$0C$3.'!%&$"$9' 8-/.z/&'#(4/&%-:-#-*))+7B)<2+2.)$+##:8=(-'F*?- 0-39/"'#/250',H"H(9'+))>6((!#&,I2*4&+P70''4%1'2-*'$j/5F$('=%'2&*401='0?J(A0#2)&,+'#06%&)5*2')".#"0*1*83-.3 %'(<,1&/.+'-8*+"#.!)@ $1%&$-2833,+-,&=&A!&?**Q U9!)e#002&2'2.*2.,)0&.+'6D+t(>+/L C%,:(+9(JB132B-D`"3&O.434 9A?+7%-(=(eM%.(-*$,16,*31&S.'5&EC)%%%/%70&/<).2:.*<'("a)'$+$0.@45".-)6(03%.(,;%,#(IE,.E.9,=1#,G! ,?#&(*(>1"0+#6/06!5*$<"2 5"/<=*T'&F3/%'+ /7*2.-*(0.37?3W.4+<9Z"!3/*~/--+ ($*")F+=3(9"!0"%",!2 *(%$s/$8G%$%%&!,>'J04)+D+'!/5''+`*#+(8*%;)5*20/42#0 7$5+22.&&1,29!,*3;$(+-023,3)$)&)",8)3<2:13-6.<0+)=e%%00$ %(6h2&3:5,3,&/#IF(4F)&(+(,'#(@&//7-&+9'/#3313!(B*$-#-.#.0#2!,12<$06 2$#/'#$'2/w#*.'(,/%76",--,,,,&-,(/&*,027'2E"=08?+4(:+18('.#-,- %<=4-0,"'+.)..'#$)%'(.((&>%0)%)'/">'*1(*)'(997=+(1$,&(-2,#3.+"T#--$M('('+*0065<)3+.+3>.D@,)?&+(*!-/+0 2.# 06B$%0&-/+ %'(2(32($_"51(W %1.*1#-4*5O6/)2H.!?3:*1*$3 .)41D+!?40'2)57$..<*06(006- 5#.2C4,%!&2+1 9""CS;":&'0"2->/!!K',;e8*18)+&/[*,--2@!*%("3=A"I;/0)%.%(+#6&83&*##,+?,*&#$9(46.23*/1..*44!*&A1 +#2" 6.0.&08--S)#/0\'2 ;- #$)%$+H=2(-]1703 $,&;*%+1*(#$"<#?6*-33*3JQ/5*6!$&'(!:+-0'$,$9>%,$+>1%-,%%'%0$ #:F=(-#2.+(48)(0(7&/,'@+-)37.02,')1,5". 4/&%(1425(.--06$n?=2"9P*'#"1 "7A(7'7)*)'4M2$-('Y'--)*.:)665!K/k7B-.D%(12(%7 ;&!. 0'AP:*1&<#&83.)&))%:*$"+*(*5)2J%7(1+"D)%#,*-,)&K)3,/#Z(.2/01+C+%2"!0#'"# #,/ ',7$,"$9!089 /*%>+)-$@360%.8%+6(":$#'&42B4-1."%'#"!.:1/"$'& *,$'7$%'J!--1 -(%%!W%(,&56'*&.%&)"11 '81$):%!4/#!:0&"21O%*!?+957+((,'>-;**/:# ,+,/-.2+1)D(5&!#),$!!(M/""?-/++01!,%+ +',%4+'3$,x-!@`.8%#0 (4&5(-2"!/e"-.(*'!"#F.)3-34"o-$!9-+0!<#?*<8$-22/;*-%&0.,'+)%#'1-1%/345.)&(3-'32)).6/*-"46)!%&0"3)2!,"5/2*92&!.',9+-3n)*$&6&%3/%!1+6?;"/+9671%97-/')29(+/31+%'<-13(&!,"52$!2/1#"8--+*/B-*)1'(#8/-!1OX,-*5,.3 -H-/";/0$+/2)92:$*$-*>E02$36-.,+)(1#-&($!(+6$*'/,9/4/-,2(!%9)/+1+(7+$#- %= 35"/'K8298-8&>+*-,4,7&%&/2%088/, %;+ *.2$+/' 3'K*)R+/.20 ,<"'0.&31/1404",17/#<20/!9+49* 9;*+1,%!24=#,$*'*5.'1"f7q63C,*./&"',@103=(8).)0;%2,//64C1#3d^!&-(%+)D,)/!,'(*-$6/ $/-)&,,1<$')#.#!16*Y')$% 5#<;7,&2%3*8#l-1+.()&%,30)4'!/7&+)J*-*/%/)$-"2)($+.!$/5.@4"&1"(&-#'-&-&#%3 /,'0U9* *O&'--$+))/"1!,3&/49+*,&4*0&;','$(*+24E)+O-*:)2%9*- -,+#(/5&$+1,+!2"#++,)*)2!Q&"$7f8>$))!^.#1(%)%&4#!;4>:8:=&,&%+*/\H2!1$'":, 60$164&*8'$"'84:=,&,'-%'* +%(!+(#7/Z(-*E'<0-($#('I3)$0*0.+/'+$-3)$(F-++()79%j3*"4+h100/2'(]8%#/2L<x(&"$'11(:+/07 -,H5)&+*&>.6;!%!,,#,-)%65*91<71,,%3B2H!'(<"+U)//-,!."(#E790Z=0,!<&''U':=*-"%311&?:,'&%)-2((&00*N!=E&*00-)62%)B)3#$1J5,'1:)'\%:+#9255+3/(()0!.>-J.?%W$(E"60,2*3%!#&$./6,)/1Kh.)H/,%:"&36..,290:'+-*.'1G?2*V.'-N%0H7%"6+7&-3(7!K$6-*)5$#).-=.$8#3$N5 9 A@/-(A"$'*>U7/!61@5%)503-87%54('B2?$+*5.3%=3(K5+%9X.-1/'+(8'70.65&N);Z/0%"6,*I@8%3)%=$3'38,#+.#1''71+K20 4%8:('.B5<"&)-+D++#()//87)-.,-7=(7O+*D %3A%&1#-&S1/+!@%&"*-$/7,*$/M*$."'K*62,1/(2,8"7(2.)$0,?C,G: (.W=,(6(+1#+&'?'/*,(6&_(++<*(I+')'-(+'15D8$>1&&"'+/*#2=(417#-;/T%$>:"+)(.-A4"C(,0610%.$'K>F+*DE&B"2H$/$,$*'.5 .$*>'+@,@C/&:DC0,5(%$:'+%+,'4+-- 4-3&<(&#+(3,*'M,2"$0)2#20#0-7* &#H/-/&241c)24%/388!3('&!-56@(%F:%0/*&-?+F9=7!"'$*@+8=O (1*$".+2+/)/0B&#%*?2!+0L2+'6$+-!%!-'L#+-+,1('4%4?E(8:)*O6-G2.*"'-),-#!l -*=-/*(,M2=*3&-" +[(*+:'+.,)#0.)-C^0(3M6(6&6#(8.%&X:,%.+B$&#14-%437$!'7,64$(%>+/"441=0;)'S(33%1',-L *9+)8%+&5:)5'' !)2-5!4_:#5'+i4%#2)%#-9"148$79'&5<0"'6:)-"1%.+1",4-/5))8*5&+*4-5#24*"%.1C-3?k.:&@%;%*1f/)+>@:.,+*3<09!4'-8/22:*:'#5A'#9,BD*3.?) %/-##%#&B'-,-$**M7?$2&%34*c3.1A,)*8+8-*93(=')8)2((!7'(;-033,I3+%I..3#-8(0)<52D*; *&7$1(D##5),*);015+161+)4."9@AA11%-..+(#R243%361-/$%.)6%$T(2$)/!-) )++7+ +2&O5*.)&'_0-*2!2&0#'9)$++01((>A(-43%D;4('!+2<;)(,+,.?+//:.! 3.+()14'<0H+&)/!./.31'(2*+)-+0<##?*5 9>2(*2++;2,!4-,/>@&# !"8+-<,#,,<.2,7"?',<0(<&&+'38/!05!8!1&/=*'(0$&:#/82/-;9,4,$712@'S01$*&,5)"24!F/$3/1:(61)9)(*#%/$'/0)002($J$&%+-1/<*%'=)@%$))%%-*;5*60#(.18()-"1(/-2-<51+;/.7 *,2?6%3121.)2*,,(%:-0$b.1A*6=;)1*00+&,(4( 0%. *%7.)>*.1%1)(0.!:&$$20&')(' 8/-6406/ (*,*)3/,!@5)%'(-*0-/%)%'0",,1(+!*-$-,J":3-@06:<3+2K/"+1%%8!/',1&0*-0+1/2"4,<-!#1&&,:&)2349("2/".&8:$/%1/8&26#6-'!)/6C.%*,6).&+$+1+-&44.&8 '$)<+6)6&50)**2B)9#-'84%73C4'/$.$32$():$5)'%*)/,,,:5%./%9B&5#"7-1)-,+(%'/0".&1,C12+O:&9/%7F..'>K%*//$%iNC21$>W,(D_),0)W,;$-b,:.*R*7-5%0$!1+$)4'1$+7/)>&/4@N3715'/*&'//9(2nK#:5#(*(1&>-16+'++0("',$,+)A )&A+O.J-70763%-14E#?199 -##,4&/5,!T2& (#; 2:%K+)"0N+$/+&"*2.(F/3"'.99R,-:9((F*0),+#.E'#N8/,F""5 '#T))5B9',K$(1\-$Z3'01/%-6$&,86%13/'+25(+/,34+1#7:#3F,1*% J.$.+,3O13+',,.>-.%(17!/#,-,I0.|)K%))#/+I/2#+33,-'"->%*c)H&0J.3-+6+&/4%/- 8+C*771:5008#+(,013/8*/.&?!7%.'#(#7;/%-#+''/)0(,.3%&' 3?F(.*5,=((+>$$*%!9) 3);&/$%#)!-7,$'527;1^&()#&26% )20s :+)151,*-2>#;G"(**)&3 (9Q/(%#(D<*.4+!+s:8!",51 +3-2&7'%(7/*+/)''#+3$4,Z?)#$08*81&-5*%5,"/@">$%&+8%/+>,++<<+*#)+2&";'"3%.(&=?6&30,."S8%+!8@"6510-3$(.+j*)"/*+$/<5+!,JQ" (?0-.#:4/"10+&,"-%*/ 7#*)@O 1'??%46#P2K#5"/% ')`>5'B58!4 O6*/%7$01 -/0H%3 !L6)#--.//B5<)6):,%7+9%-00..6?"%$;*:I4,+ "!*0&&/=2/):=)4(.%)K!!*%6'$L*'!$!5'<698;>,$='5<*8# !.9#$8.:I1(3.A#J**(/(3&(B*4$5.'%D<"&%?%-^. 814#:(4+K'&")(E!$4-1B/++<.2#!'!6A*.KD%647'/*S5 ' %= $56'(*005,y %;#+6+"5-=F$/)$&0/+<"%$Q7#)68&)((9"*,&=;3(,)(l&5(C'3&(%,A7'3+<";/+04$B%$*($+*'%/e3(8**4$54;&> 3'..+0'H*;623$54"/'4,'E6)*%E*(/%)>0>%<&)04).+%)(%/G0*Ae*(?((#?B(3%250 5F!)4I(1,-+4,&>!+/ 9"51,(.=+#&23&-&5!+6.*-95*#( *$(=!!5'(7%17) '-3$) 5!0'-&=!>'6,@+'+)1!43)58(&+.)-;# "/)$5&2(.8%/**(-'*:( ++0 5+)$9,.!"/,/0.K2,3($&2N%1,@Y$342"-&5J(6)%=,!!-:149'2!$-!65.+84&)+'*21%T7+=:Q.[;)e'+3A$V( ,/!!,$010C%68/)-6),:j;=I:%",&'*84(-,('M#.//)- $&'+5_')!311>..+$'./D%!.#'2(/-!]"*,#-$':)@,$>)) *$5T33)d4()- -)'.'5(!$,C:T:&/)(#*6%&!!4*",5k!)D&/4.)>8 -'/:9''*.W6-38;C&'*%&1(1+3=)>'&%*6;.B7S<+6-'/2&63.55oK",($H*0+A#0)/39&K-+/"-!$2&*0%6*p%* /,&! 5.!$2 +1/96)> '5/8,)#$%$03."U5)+#.,)$.%":<)*-+,4*(31+$&H4.,$."*-31#(T*-+#-+9&/$'-/&*.0"(,+%&+'#-$,2+%6/%)$#$2;'!*>)-"7*1';42+('0$'"/6-,-#6!"02-%$0,.!(/#&*D&'(%.0!60- %*) 0$#2/7%%/5,6*!7,44/):=2.%62! +%A,3".*0*'6/)*).,%043%".+4&2))"%-%)-;G3+8!(%,8''!1?)*%5(#(!7$5'#7#)(*&,7'(#40##*# (+:%'#9$/1(M#('.Y3'&8?(1+6+!(G;%36!X.))1<"0%++!5%"j+!.0(*/$(2 )/*!-,/(2'A(V,L & /3,<7')1-36aD5$-'&*0258!*)==0*2&()).8'-"1,/3+%80. *E?K58D'#$++(?.,'5 14V5*8(%32+#(*0 ) T!;.")2&(3$&1# %.6*:1&8$E4$,/(1&1-12.A*-8/%L25/%+:,$/S$(++%#!=9N;*,"4(&33(/,>B,9!"C.<'/'93+7.2@&",/&4;A#;%%{<=-+5/',(%D4&O1G/.)%:-A&&1-+90!<*1/A/"5!.*",X>@X./+-7/=2&1.Dd,2!!"&<-.,4+:2('8++0A3'$8<%+&L-:$$21".7J#"$"<.$*)#b,;^')e&3%:'/B413$<&A7.;761##)3/Oi!$' +2%+/'*"(!/$-"?*(7+$(8%)(<9$,*F'-?-%@#.'S8-=%F'A,#-& "2!&"$7(.*3C'):& A:Sf."'I) /+;(:%+/)sN46!>)'2,@**,<-#.-)(5$'?&34*+",+ &.,,+'1##0&L?5$4"-9*,2/1%"+z+>0H%9)+'&$-%29$3(<$')@+''',-$.+*"/# &9.86)J6 712#)/N$-%)@+$*B$#U3+%*-+)*.*FM +& 2.2>&)4Q"%+9#G>8571/!#8&./%GG7":"16)4/ 2,;\F1J:%0>%'1.@1!-0*"77,.'#0*B-!,+&3$=0)5'1.)%/9%'1+-4/-'9-F';,*.1%"1'/E51&F(6O*.'S]4&=.,.%3/#!319*# "#)',$#*>'-0,3")?%&&'$:2:..-8#*)K$?5(A&)(/',.(/%!/*1$458,'+$B+(8+; (@(*7-26./"79,.')+##($&#B1+)8*+#W$)(#+,/!"4+$&+!1/P()1&,+),.#!(4+2+ (C,0( 9''!$64?25%37'):..5*%$G B( 6%=51. Q#,!.,:'6B#<-)Z/($('1!M06"#%1#2/%?"!(."4--82?#++&B56E=;#(.#B,!3'%#+2$*/$$<55')='01*)>J5*)G+"+0-,$#.91(1N@8%!G-/5,$.#+09=;&,',(=6-*(763'%)510+3c.!,.)42?*$$/5(*.?><3,<2.)$),1P%h(4"3.1*,]:D'+7<*(#6'\(*$5')%,$*&),+--'62$59!6+9+*)!)%4(-([%3*+1%9&/;&.&;(&-1-1/#,1*$/;*%3,9#4*&7+2,(4#""%(.#2&!3#;2!@':<+&?,$  '-(332'/B$>'*2..(%40$ /'80=/%!."0%1:&;!5 5&$/=. ",&5(/++*#!#]''$:/(5 '-`96'3,@6&%12-5&>'#&/"/*5P**'0"3%2<+)50/(" %)*$-*"2,+~1,&3,31H)!F !*()*-.+G*4?'"4) *,2&""#!'#%9.,%!#*=&/08&92#*&%1#]<+%("-#:3$'.*3Y,:"T*#&#'S$)-*$@$)-*C**7&$SB1")$5.05!//E#+O(')2#$ -H(7%09$2%&=?1'-,56!A ?$(3'5*'@(/-`)(%7&($86.(*/49"$U-%/!- 9*76#(-5/11'#0+&!6++)!+4.# #6?6.$+-#$,,"%,0!%90K/0"*%3)+032++)K )'7)(-31.$=(**7"&.*+&(),/$0%&64):)/0/$/"C4:-6//'/2*)N%0&%,F,$%#2A7:0I#4?34##-"//'%3/,(% ((/9'-*H#!"/%j6# '4%@!,X0!; 33811@20+*$;48m6%9!&;&'$5#)8.);-)46,)6&%5$+?"4/50()2B03+,$A%$%EH6<')<.8&+<#@6'2.21*+)(.)8+.:5'*&+&-+ +;1$'):2&"4- 0+:$64-0/&**3-!&-=)DG:#'b40%4',-"/5E(0`".I7(=-5 ,N%$11+2+-+=" ?&/,)A+07)&5(O$)0";-E3 D%28-)#*82(%(=3G35.F*$)+,%[2!+/  /$9.)</0.+%-'#*#3$""'$('*&5 '/O2(,8$'_$.3'%$7JF 14;-6 (.)3=N*<+#30/J,>@&"1,4-%& /09C$6 -*S3%6'),)2:2'1,)&#"'*#E2#+4-/1:10/!'#2"&184,1'11-..7/D'*"6*`-/7!'!+^`..#0q'054HQ*.7'!#3"1-()&&$")89*3*253(7%%(*3 .46$.,)!!!(( =)C#1'(DD>*$.+"7.3+(;"*&0,--L)09$*),),+-!2-,1%!A*(.%W'0 1*34**'!?+" 0+*$(T0%"!7)0-.-&"(/"-/2+('!%9E1:18:>;*1) !#/=4/!><,$&2G"+.+$+(-4(.3(75C0*3//:-%:8CH'#$*/,LF,22/2,$-R!*'.+!%12//?.(";;#@0=$''!2(,':"$d)59(+&82(/2( ,G)? /$'7'2,`"'-K&+=$51%-."A1/*/"4*- -*.4*)%(6=.+.57.2#$%()jE-667,(!"%'0&%,%%,H!(@Z@+*:(922P?+$B.-3')*+1JJ:0(*(!'+&+%%-/6).9/7.+A-0+/3/.E6L!.#)+;."), +@,+85&B$ 8/'(51.#+)7*1=3)$$(-,,0-,#4*/T'$&+,>07&"4*4M+X&&++%60)*(:28&-%)-5M"0@"%( #,,(E4@.2&,-"&6+%39(@0#2&8$":?,(#%3.5).0=6%%"03y;;=( 7$=$.8))50,G** "1)6(;%+.1.)f&,/''!'+),72-*/740"7)#"-60-:%=%K1+')+2+$5BD''!%13/7>3'#:&H"1-!.43<-"H*03/3!)*&$&27-%-.$4"/7.0*)/''?&60)2'K).4&3 +-"D+1'%"*$07"''&<*26,/,--436.'.()04:@+&(:8/ )Q7I),/'10*8I)(&2A?5%# (F$+! '1#71!K*1>3(%Y%J6 A'(0+%)(/t23 .>(+.*+|<&1)+3#)G%&+?%+\):4-&")F0g62?v+&*12_%-%97*&b$H';$,8j"0 .>h:-9+;4D8$ $.80"1$(4P',,96<26D,3!,*$/(& 9#-7&($%"2,6'0"+4&D'>;-1A3',36#&J9&*,28)#1)134*,/%"!&Dg?+78B"/(1#:/'2*&,6U),.00&$!P%@(?$00-/7 /%7$((A+%P%=7,$61!@+1(+128!,- '"+4+ 3%%($40&\#%'*(N/0G(&("'1&*,7*&,:''/$.+ 0@,#)*3/,+-&%5(&*B2(OI),R#d+#/9?3%&$(%&$?'5(&34S9+<7("" "0)#3!M25)"1)-<+)0"/ 3B$Y*+ -%6*!97)$'188!;,3@E:2#QD1G-F-3"285(.2.(&),#)'+(=3,46?#!10!$)(!*$"/.%#1G4*40,#6-!b#%(*&++'&/-'#'-=>J%$%13#'# *,0/0!&$,'0 531'-(6H$ )(&) 0%"47:):")3!%-#4,"2"6*./)064'(B1+.94(8%(2!52/,+(6&@/6(9-(9,9*"*,{-0%%+&0'7@$)2/4))16!#%&/(;:.//16"26).62[&,,&%1- /<'6/2+$p),$(-"h02236# %&)1/++4'3+"&5;*(0+,-':2-(.q5',),+6)*)>#45'2-8:$@*%%#%F/3@*)*+#(0A5!/)%/!,'(-$!)%*S.1.73')(591:&D2'("B*-&%*&&&2>)7;1/&5,#2+*E)&3,1.&#,("%//$(0)+0$$"8)52#."1/#8;,%/-/*-,:-P&)!31'%0&11h(9,*/?0-,%0$;0(5*!F"-9!D*"(0 72545"G,02D(..%5D.$8?6.%.w8(70"",$7-$2%$-,5,&'.*6<('!,%/%$(/..51$?/-,.#.+).&!2..'-%+J9&'3))7 %!)% 53"++#=+#2.! . "%)!&/0;:+6*H&.0/55(+"*7$-Y%+.")#`5&+%'AA52<7&%$#56#1#1c!-)H*#*$*38B**$"%r=1"'I'%):$7!$%3/4;.-0'2.5,2-+%/+&(11P.($3 210D5.!7(*,,58%$" / /"*;(? El%6)'/2$,5''(#("8#02H$=P$%*10+l0>7:'$(4'"1-#*;,--F)!>Q%))@0)1%4"##+"&)0.KI&G&A$%)*)!0W!/'+ "/ 4AA#4 ("-0,#(?!85 5&$G((2),,,Z2/E& )&. /'+/( #3,='A.%"2m-"&(%%$&" /-N(I*-?3#.">0-%,=E>-$&,;*%)( 7.++8)'&+&)$5%()82#=%7b+!B6;!>0680<8-)B!/'0'/;u8$1++ #%$(u,.*&'-%#2&3!-/#DI5%"(9!(:&#%79 (!'$G$ !!9;""*E)Jf+5)%)$9W1 **'+<13,),)5#?&6))Y*,>3$2+3*C-)++!/$&;,)\+$.0/, <,/&-)J)$,#.&#++(#O,)Z/R4$43 /?&b'425+,$ %2!',(.$4$4,*30+#-2'1&$/105J'.$8"%0)## #,4)#C ,(7/(/+-+)+#.%!%*(,+3)5(7<1+),'.*%/45,,802+&.,-(-'',%.!!)32$(-73+(($-,%#!7)580+#+;,0&.+--$79)28?%426 /7',.#",0!-)60,K?$#;$E0!K&.#4.1(172,0/H$00&&-"##D.)23)2""*3/'/6&-#8#i1&<-[/A5=F' +'9*&100")"(/$&A)+89&&259!%2'00"&/F#!%.&2*996(&),($4.7 !% '*$5,.!0-2&$%).8')&& &,1?+>2%70/&!#'U(%&+1#924,*P*4)1-3*6%&5 0-)H$-"G: 5)+D//0<,--%- ,+6&)#1$")**@$.-'.7*+(26&6+'7&%,!15&.*'9+0/7/?*)++/).3-#/1;%4'%3)@+)/+4-('(*!6>4&3,5J,('++(%!&&b1",#4.<>(-#)* *H/,..'/><)!202+(!@,3/=,'$6/&'&,(*"++"049!40024&-,$:.,, =*(@*?0/''<%1'#)=-+,!1Y.041&"$229551,:85%5)$4%,%--.1%-;,7$6B1039-H'%*)%,"%,=..$8:,64+*.6281/.9>0-*(:&/&8P';0+'*./("#1/"E,<2+-/-!*+'++*0F, /"13,*8"1>'".7."%+1-',(.">;(/2!:1 8!X42!.).$,0P0,4# 9;!)^"!-F-//0&J&.2#0&/P*E'%+34!"91.'9'39,&(&&4+1/4*=7S)4;,@ '?9# G*0K0*2&3H84)'6<,$!54)8#23@,P*%?#;'!4$4%#)":13+3"$3=@?1%+1(-;"0&$/0*"3%.,:'58Y!*+6**)9%"./#=#,'#,/#-0)5,1/645D6(#-'%-9$"B+6%"7$'&#,'!,2<6&90*500. :2)B4&4 6&=)E!+/'#%/$)2#-3+4.*6-#/)2#&!#.+%*?!=Q,77#(8&+(>1($(2!))5472+4/6#'2,)H=+.()10L+0*'B) 6')(/&!*&14($6%)B+ H$,;"--82*')+&%35(/ 4%%*1 B%/9(?72-&1M''5%9B)0 -#-904\:4$2"+%$'+1"+(!.$+2),8E/)).2'7##701(1.V&1"m)%-&;0*,+,+-D80$' 0-/7$"*/-4G! ;(Q2$6",0# $*':."B-&!$33/)'*.:-' I7-''3/7@*HI6!'(-)7"&$/2-6EBE!(/0'*;")*(5C%# ;* 2+.!2<*(<-4+5#1&/0!.e('<-#/*;e/"#0&,O 34068-:,1"4*+'.6/"<21*1-%+P*M5W:'-E?'&W0?8.#$)9)$6-+%&-%)A',6,$),-I&#-?#-;'3#82,0-,/',N43%0@'(?$*2,(579/$3)=%(.=:#*,5"2052*@%4+6/<18@!l:7.,8"/%+,6+82.*08/6((0C!=.)+20*=&("5B*+.-#63=.%';-*5(-F*-&"'>$;%%*7<:(B).F!0*,%5#*/&2(9)'$6H/(1-((*'0,,A&(2"-/LA%$.15++59,%1?0I9'$#%1+=F('*3$!3''!,9;1'36:**1(**1,,0(<$)04@(5H!,$)*-= 2($$#(i,$/-/((4%$1(&*6%A$2%4H7$,151"('0(.&06'##*0(*4{##$=,(14(!9(<%&3;A$0?,-#& <&7/-/5+&I#&#-/%&*#2+ *-G?"$(60)%'%!ARH12%&19)1)41G5!,)220-*#'0!-.&7)*+&//)$5!-#,#95$7"*)("B+#<*&+#(.,0(j(1$23$/,-1*@*$#60Y.@Y*,,$83$-$!-02'.)0215!/%$)@/(@?85*/'3$2%,N'\:,:*)4*,.#!'8,%4M/#$0)82)2E%v-2/%4!#/)9"'(0)901"/#U(+/6&(JM; 1+ +;<A(&'0;.2$(7,+WA.8G'=.%#F+* $1'')&&&'$&250,1$&11-2)05M'2***76'2#$%7/9607'2F,,"4*7,"-&75&1."a=")/C"("A*$69)',!*)/C1&,-=*$$.$+%8. ?;<;$6-"5,%+#):.=)!"!0<$.A#**&*%:,0.4($!/: F235"##)O0108+)?#!(e:,24*9/3%-+,'%;"4,:+.4.7+.(':0(##->C+.6%*KYB2.6-)+ '+?+&5'C,.2#!&33&1+&*/#701'*)-(6*.<"3*5%.03F+.2/6-/' ,':4)$* 'C-$,#")007%$$#;ET2!/*%>C8.15%4+*53":- &((6)(0#61W!#75+0$'6./R)'$"@21;"+7)./*)('4+ 31'1+>(6&A#4&1 %'1-%*&Q%(*4+*'/$**4+0*##,.%/&"<,'(*.*%/+5-,:''"K40'8'!-3!;/,2'4'+@ 4$,/((( o)"+/*())5-<"3 222$/(*.(,9< %154$/)29+%02"(/6*43+6"&,61!(...'/&) G-9I6),*7)#,#'G63(%7;3)$9*6:,*D#5%*%,(.$1+*2#% -&-=/%50+#'-(41+.%'L-(XB1JE.1<6,(4J+!N%3$,"$,#+J&(&7*($'22()-)00)5(45B1!)CF'$01)5=&F4_%*-YI/$/0'(64.!:/,)-B&*4*,&*,)&/<(-)1*$-47,"& !'.>@4.E)8( (4/#1$*'E0)-%,7#'..#(.6#:')?6+s).>'*(>3"!&10&"0$*83%26(41/11"0."!:,'*&/6'=/<3#-7+'+8+)@#).)-C3*05"*58,)*,%%06):''?()),/*3'('?..&<1&4#.%<042607#4+-D;,@-3&-()*&2!-!E*$((0"+).3-).%'1),.>#5-8,/'*-!+5'!16*&(2,))@4/',,,,,16,+1 /"$3'6-4(,/;/-8/)+0, ( -1!9+*+I*4E#'44,..-5';%'/-*-0%7:.22-(&!70,$"(,+"-2%--1"1&11,.%+-.2,1)()$77#/*%)7(--%:&((50*/#.B/$,)6)&0"*;&$0"/':+6('5,&15&6#2!+.&/57*+G#(>.&.&.130/"+45.(-.1*63'%0+,-*##(-/%9:*%*,49)'/*." !'A#)0;<.!&%'.'%'%0&1&+(.!*1(/)7/+&&/.,-+$#21!%&%,"/,0,-")9-$.:+'-*0%&+$$%(:3/6%-+3"27//2,83*')('%/-5%*(2H2%.%++&100+ '&!*6)2)0),4-* 1+$$('*<9&(/5&*-&/(/4)B/-*!!"*.,'-'+9>2G*/3)$,!1-'-#+2%#//-.1"/*/%5011&&**2MR"0+(D67+)4#1, *()B$,/+00-)%))8'+"+$,(:02*/00)!$+ 2&/,#'%+8)")- 1;) ".#7*/ -/(5*0((#+$1*/1$)$.25)$$&$(-+1=I+*%*2-";15$.+3+*..;3+) , *(#*4"2$!;/)2$C<*2!W.%(?';' ..+)-,)7/<%;#.?./P!",@7,G0'-/,)=."0',&!4%4%%%&-83%-)9.-*,N%+&/&"/.,0F#/:!8 EH)()#4+(A"$)_""1510(-.3--4,0+'*40,1?#%4K<(( ,d5=%,-."(( $@,Z)2/(')?9"+-37(!2% I*'",3'-,8%:*+3!"%'+:2%$6 $)*!(,;/=,E013'"0#6$5#"0"44>+<#<0% .8$#)%)9;:+A)/+%:,#L), 6'O((,')9* 1,&*1Y-94- E2/.,(@4-1:)(7T&4.$)):8;3,.U!$),6:#M)+#-%65P7!#9K/A"% .%-&%15+P,6 0!.#@5#!*02%&%*D%..(fF$:1R((?)6*7(9)/;(.=(1%+%'(h./D.-&.!5<32&1+2D /( ,$9+05#,"4;#$4) $7"$C%$-=5/4&;*1"Z',''+0%+)'+!#E#0J8'1+5=%H*!36*+!(),'9$2(;'1(+.!/+8+"/')&:!"( 5$34#&".!+&/-1+--(801#)4+ *+-&*87'181/%0D(270#+-4&*!(!1%.$8'%(((7E0-V#39&1!(,,'1''3'8.<1;($-0N.644*A7!+5O3")T&7+%+#6*!'#'&&+G)3+."**40,,41&)>8%+$(A,1*)" &6:%/#(#!)#6(,6+D')+0>&&($#-4$'"+: '<+#;$-'$Q'7+)?1%S '7*+%*()h/2*((.14$16,9<1(),!#-/+$vT"9(2!(8-#,!%116"#,/%Q&-0'2-+'(;2)2'03$,'";r#'1)+,/ & !',";'"6)3#)"2/-2+'2F)! 4++"&"3B(3 #&3*#*.-&=#() 46=(+(Q>*)<(B-/151,. 590:=(#4!+ H$%'7&%*S74+4:+$-*71&!?D 7&0$"!53%/(%0+A7("/A:$+)&,1!4-+$f). '+%)''(50&>.%38" 2.$2''&(0#)#'%+5<+'-;&("0.!3,4$!):$0/#=,!&)3+--'/+L,1(7$-1)O)3*)-0 #+%$#(/+(".'%'*%$L$.G&'0.*.%33!0*2*'5407*0+!%"+)/./?=.2.'+$,<(:#(2''"9389$%%0*&28730,!7=)))$12#2"&-6&"4)-%3-*&"G,4*(?(##5+&'+,16J-1-5#&;#('46"E8%*%/+.K&B%4J%>;,#4+&+*J!+*2'10-'4&-+.06'" 02,8' #0$$#.1(49';*01B$&'7))=#40+9J1n#<:)1"3!))%)>7+$(7,1+44)#:.($#$%*4.*%-1= ;'2,,+ C(2&.4*38%9%66$83"/O,P1'6*#',/1#,*,.&)8+3M%&,&&,01,()/G)01-(83#',67)C*,1$-/N+4 3-0%';!&0"'I2@+*'"-09**:#9,23.-1( 2-02;5C(9'%,"355&#,=;5I,,*#*#;(:,V5('""=)(*2*!A,32-86 0440+=41)2?--/("K25'--16&;64(:/1/',.+3-5+7(?,',(&*3,)"$606/&"2/1's.35+("5**-) :)9:,."7:$%*00)'95/'"(9+ 8 43%0/"+;!'"0J8f*%"J$:.1r24 0Z>$D''&$6#+0%D)/?7!"D020G$4,09-2*E->5 -%-"5!-7#,3'+63@$0<*2 ./,$+)3 !5#00+*K&%H#64(M!#,)(;G-$..)6%!*$(.#4@5!"J^*,7( )HFO'f2 &2" 3,0C#"+!'9"C-.()"%)%1/90#&'%/>YR-$%.0-3'+++%17-&#=h"((90"!D(/*()*T%ZB/+6"/0L(1"*/#%41-,!+-0-)3&$&"%,1C@$/+)"()!-(0H<1/50K --&26',")P/)66&%%$!%*+"5.."?#06;/:9,&"/'.),,D9'-1'$-0(.*5!@-4A*/5),0""//H347,"($&);3/)=! .0-F-3'&0"(.)),03>2-!;C:2,&/6<")*C0$&*DB ,)-)L%9 A%R&#))4&*4A./<0!+"-@-=:5>1@8-CX1-&=@:*; \_9'8>4)'+2d*4)3-;&;*B* 84(4*&M-84E/1aA:3(053/3'*$.0,0"!V,>-%*80"C-Q):j*+-#q%8H +;00%'$13:'&;%.*3*4e:<';*1)2$(;79!&#/3*K*80)'(7/*V;#*2)*'"?07H*.(;&,3''<15)$.&12%8!:U"$%+!Y,%$\' 5W-'%4*#:!5-2##-6"*-E$"%!+ 7/4*!3112 $&!Q2./ 2*%- % i"50-@93 -+-'%)%,""1**%F,'c3=5%!(#%*"Z>.;,,&,#;!38#'W2!"/'A<.-7.?1".'$/'B!2#*7./:K2)2.'D*.,(('40#)+6!I1%/)0#/;-#&+-(B<.$!-"(:#'<-")'C1-5+3F"+($O12)0-.S.P='Y+&6,4%.&CE,\%22#A7!3.8/,-B421-de$&%2A+,+)4V-5#%=/&H&"8#4%4%@.2#,M+E3D1S3&2(:)2AX(5G ++'$=A%E.A,)3%&.+O&I !($+2!4)!0"!$++)!&#-`$1@(=#C#.B*,$5&$:8(.5<*#+/)<Q< T+9,?7#0" #"*?8#($#?:fD&690%5;E="?!-,+;%( 9)9),%m3-02$C)$%R1/#05'(N)?V(#)$2$! .+ .6'.)5%9%*(%35.0F6-N,5(3.*3415:%;D)6$0, 48-%8-E)30*@27<+2 I;+-,)*$$!C)-0F1+)&,8&>.3L3,!.>#3]]-;N. 2620%$&!0_%$R(#P$ < 3= F+ J9#-&b.,1<P(!+=:1;('5.*'-?,,+E+<$-'32,&)10I2#'@2*,'719?$.8)&/1#5>-%31'/7+-!&'$=/PF6&&!1)6($D%7 1<./#3)5)$)$%:"532*!5'./003A.2063(<"1l/+#&1"")'9/2#-".9> (1+'A2.,U(!,,$."?*(!35)$4;(A(02#,(@-#$-&*)7!+"%5/-0*?L"*<./1$+.)E#+)=#;+)#(/##2#8!423)-)"20&/'![&;(#78&!44E(#.-':$0&!4/$+,FU,1 "!'=A&,)=J)5*.V(!2:=++G1;!%.D<$ -,1#j!^%!-#'-8,$4%,'4?,6)+$)"/@1g'&:!2$'+;K4)-2> -6%,:1*(6J:0>:3A>S)%6&1%=!&1I3?C.6[*.*C-0,0-=(6)J0;"3*/)1,*N<+5%:)" 10&%/,#HN '#&"C('-$!/6#I$'.!Y:("3(#"0H"-30>/$I1* ,?.$8+0&<7#&('5"39+*&#<?B1*++/=N;03$5&8$M147.1#\031->-+D/0'*<930:"<1#'>-A*.3=A2.@'.Q=.&'-%%((4.'%)/"62)'*"#IL::%+$!)$.#:"%1) ;2&&+-,C>$$':+.&)0K(179%&L%J$5 -%>)95$.-9+.%6&$!)+5"(L!&"+<(*&.,'07=1'8*1-**.)!13H')&J--031?$/3(NH%-9&/!%+%72" '7'1d*D/"$2BC),*2$*'$40$%)-)-D /!-16"+:;!5:-I70('$Q&&55#)%)"#(5#5,8#":*6%7$(<&4(,,3-$(*/*$N3>)=23*=.-'& 5&%/*(00/&$/(%%)/ /='@"(1,3:42$(;=5(*&&-,'=3A.-(C+@C'2.+$9&4.66+/*$)IA:'!+*9/= -44A0<)+%,$8%0&1@)*/1440I'0.&)'7$8*(".+"%+0!&-1B*"7$5"&5%0#%$;)"N*M1/.+-W%# 4*+/T#"*&5 3.1'$8&&,/5-,%8?:--#513)!1,*.$++)7%?)1At#%7*7*1)0A//N#<*2&$1&.4B)2#0:*(,:-1!68-4!+(,3! &)9>06/8,M*16>P)*8<=(,0/*/#'/#7$2c+)%,(4,,!4 &/)-+'6#)*$/))#/..+'+.$+83)1,-12,(/',13#)@."6.%//++0,74"(D4$%3*D,3*5;"U*'.+339(+.)3("+#/( ?1 ++( &"=1%*$'%3(!,'A75'3( .*?'((&#(.>920=$%-"2-)6%4!&A?.',;1#7*6 0)(@>$&(?#'(+&1(/(#/,-1&#**%!+0+5@-100O-2))%)!2+6+" !A%"$'5+80/3C&;)!%/*&' 41.28+S+:''0,8/%/$/++B+(8%$?7#,/)&X+'*(**.&=-*41)-5.'05(-'+',03'3238 !24)A&.'<0+1+9+)7?1$!'/'(+AI3/2.A,7L,I''./-7*1#&6(3-2=2!")-+08$$586/)%7+.8&$1%$$0E)?!'<8*:)?:"*2/,#">!'*-#3/+#)52 +"<2.(, 4>;8*+59#:+!6(C+W)#$1++##2/+$.#92,+6!-'$& $-#9,((10 *#*,( '#&6$5$7(0)!##39#)7&9%84,#-'$+)I5*?.'OD'&&0,-#(5-:.,&$*4B,(.9*+1'* .38.""+!@/'"-1*30&#%80+""I)/0('/1+=:.,'/%&%10.&5$,1$7')5,"5%$+##7);;"..).%8/-,;+++--4+::'),/1&1!'+6<5"1C7&+'@-&,5$!"))6.1()$0#)+)#9+'8/.2-..&-88&-+)(&D* 20'%B+4#7(#$1((0-%/,*59$(&)"18*0#6).+,6$@4!3&+,0&)5,*+'//"7(')- :33,@"/[$'G+2.97*!"+*3-!*+4)?46#-0%&-$6C''++(..*2+'9,B.;%5(/%+"3+%<,07+',05(5&+).#()N-7#A@($&/.%(,)!."&1+.0/4.(7&;/=/&)=4).$+.=./)&%0%)0"-$B*.G3"'+,#$03)&(.($-"-').!0*%.=/)4"82(*(F,73,"3/J*#,.$81*"+4* (3"$,)&(%-8+,)&&$!70+?*%($/503':22./-(6#3 6/&+$%.W1* 2$(-./>&+&3-+.3+;/0:4$3 G.+%0@:(0/2-*#&*%5/A!!1$'!0/-#!%.-@!('F0/,7:3%1674+!&.$(4+/+!,5*)>1'"216"5$1,?G/,#>- &#$5840 4h:.9+M $E%(*() #1(21%Q4*$!+'$+,/%/(&%/2D0&<#!+$0/)D:<0%*(F1&.\#%."3-+"+1,B2>!0$&?+0*+)-&$)"D7,*#*,,!8 9"3+/'(!%44?'1-0+0&!>+50/'$7+)?E$+1@-E$%&<'/2*.=,4&0$*1+(>74*5!2"3/'&/3!% %+(1.>L$%#$,/"$5.( 1""%0 );8-5-%)83(2+-($#L-7*%NBA3"D"+@%A13-+0)$6+6375'"1-,&B-(3((*3%%*.1-P-)""$.6* 57'/06:+M/+-1''$(: '(*!)==/7H"1=$!8K4'+/3247=#4J&80M((-D2)/+'!$"3*#38%0('-(-%:1a+2#4$8+7$)*%)/+2&4++)02(4-3 //592(/)8*,.?:-'C3/$50+'C('$)+-4=6/0(< *))6(3G'04/6(,%'45 +6?*.0(-),;-;*&/-/&(/==):-^$+$)7A -0+$//.<*1"%":?-7,K;(,S)8=2](#D1#'2&*404")J6%>!// 46&+-(&(.#*K*6K;)8--%*-0%%-:79?29K71+'*0%4(4$61<275,&5=+/)3'1K./"(61%"(*):*4%.88.%2=6;96!/+.3=)(4'79(#/.0"&0+83*',''.18'))#8-+) O,0B)1$#!",#5#-(*%,%$(,1*"!3*03")86'+64+&!(<.*0=$E"21 &,')H#7B06%3',#2A%/(+ '-%3*%*2!!#A+H,-/M& 32.1#K3 ,=.5$)%$+-1)!>#+)8C6'+0('K'"$.'%),%%(3.+($%.'#$.I5*#-&,?87*)5E1,#&&&1S69,38%6+F,,-&)/+(4"56&34'6C&$3$G*!59&*4()&1-#$'.'7?%2MY%PX-*5@S 2& 5106=240.2.1) 8*>2;)+ 2*)&3,(&*y&3))*',+,>%4+"9) 2*H/(!%(-%,*&&"%'70*#*+?*8-+)1$6*-#/.5/.!?4; B:! ++'=Z62/&&,(#072( 0)'4:5&(%&3,&32$!* &#**+-9%'/('!;+"(..63&8@%$0) ,/B,85 ')+3U!&-+ %!!//) ,&'%2&'-+%&1-#/*%/4((#&+$)7#&104&" %#+-34??#,1*;++)0'+% "..+46,2)*,4W/%E*-+'.#4BC7+1#*M''6"@+%=$&&A+;&2./:.)--&&'-<+1;",)*142.j/-.$:&24#('*q%.92+8",6,015&$*+%%1+0%0>u4/+/(0"/,%.618+04&/'6)1}9")?;7"#-.-4((+)h]),21,&)$6/"&!,!-76*$?)&#.<($819D$1"&&/ nW#1".;/ ..+$0+01.41O*3)0))),/1",$!>,)',&($"/6.%#/+(,3(%5---/L0c-3@"*/09!%-).40>.5 *2(+''E*3&)'"+-'0!&),+6*'8/%.33<(0 --/,&7%6*$*'4**!*.'!?/#.*)8/?/$$1)}#+((%)($/"&.31-*5 02*&0+4+-6("/L&,()+-%&5,#$'11*4:&(00$++'13/'*!%3)++#"%/!(2.7+#;&-#-)'9.-$6/L#+88)17@'*'6'8#'S)+6%+.'*"/5A')/*>/)+/0'2!),0&(8&&)$,(5"-.'')&>0-/*#9 0067$.,!" ?11$%<*+B.%1'210*.+.-7(<-$&01#&&<#(%')-+/9#(=&-*A%*(,1%%*%"0' **0=#( '%&+ '"#'(.,)%&49(+)!$0!(.$+;C273*3%'"&;'.,;(%##?0)&8#*'!3.&# *55<)-+ >*'!!n/++)* :),9!#*$#+11B(/&+/,8+".2#$1/8;!+9G0+!(#*#6(3; ##&%;(9'00+7+;0"%.)+(3 *#&>42-4/02),#1##*>68 $'-.67 1+0 =(1-$$ &*-&,.<++0-$1$'(8N,11#-&63;5+6'3<%!%3,.+)$33+!G)",0+&b/+(,&(1:,!6('*4 #.80-+%"$,&8)/(-/-,!0,>'9,*0($%"&9$4<7(>>5-'&K#$ 0!+9<):#S%+*5J(48,-#"3(<&2:A-8'.=&!>26'G*2>,1(:/(1*5&0%1O*(UY#0$m.20L;+*/)"#*%-$&1780**38,*$-6')#2#1&F(%-$&!>#'^+@)9 =;$1]/$7,36*27/$1R7"0"3.= ."@$':& F4,,-#-2238-:24? 4?(71"1.5S,#2A(517(&%B&U#%,08("-/+8),#"2@41(+'*%2*%54-:/ !#2&+.&33/3?7',5*#9.$.'+)),.36/&L;)%-7$.5'/-)$'8#%4)1))%)@@12)-8/3B5D-Q((*32%+B&+0*6.--:%.!-27//,'.*&6I$' B*,)-2:F*7:=$2'9/5$'."1%0(0!/,3$0;6'4. 7-,7 #9'+:"(*(03'/3#=(-*!*4%0$%*$+0("N05-##(+)(%/,G,5,()2!,?.%$"'4.5($#+$()D(4@)/2!%=2=&,+3*"#)2*"%1( 7*,*'%*0(!(5&9(a(:)%&$%."8+.+5,%'60., 3*-0*)./31*-&,&:1'.#&Q *I$(6*)'5))@*)!'@57'/#16..[&'400#S"4*0*&,(/4),%)*0/Y!" $ ''1& .066>+ <..''7;-)0 .2G"-%')3:;.0-+6+%,'.-;B'/(#"'$-+3* 3)W#2"$40')$6/' +0062'#1(.b('),+$(*'6G1-!2+-./-2B%$%&+-!,9,/I**?)6*(3/)()32'-*&4433#!/:%2(!8$,.$8+%,&A)#+**!!*"-/(2$/<1-%,)A&0&5-/)("-&/4('8 *)s,+.-)&-$2,!*$*--*(L*5&/*><*/$)-"+:2,$2%/24C7+"$,0%)/+/) +%2%50*$3!2-$8-01$2.J5%4.%$)$0.')-)'7$- 4,5*#91)./*%,!'<%( )83)9+5#*-0240**,'$6+/=/1,$"(.'.'!,1J- 63+B)<%!"'+ '6*($2-14&5''**#)7,'1'(53+6*319"(=#*$.+*(8L'(-/2,+s+@(,L-?!#<38090!!- 0&/(&))#&&*D,%,+!+-1*-&:+]3 1!}@P$(!&/$).: 06%,4(/.+"4(+-+%"$0)1##20-!'# ('0-&'7,B99+07$F)+7( /?;.&/#54*A/*/9-6/;-%*"V&&5%)2(0%'7(*&$8)2),'637/,3 +',62#(!7(,'%#+"+)+>*2&&+O+,,$ +*'%8+*:*).$-03),%-$+.3'"-)'B .:(%-7&!5*)"'.)",)))5-.')5"/.':#*4:2!20$536*,*+4G/-%+/;>')(+&''<$!%(''$1.14-+"+&'*@,E&.#,&%(22/(! 59*0:+2)00)*.42#($7.+6,+5&1*0N,4,),8(1)*(.+J0F*#/,0%*R*,*:.29/6$'(?$+*1-!>/&79##&+046B<20%+ 1&&%,+*2/,2)40$+!.06,4/7+)-*&.F5$!)+-<#0)'*9).. (05'!1)$'.,+&-'(8>'=$0'^%'3014L-4< (!3)A%1*,'$+C+(3+5-%+%5G'R#(2+'(!78)#!I/'"(&54*&*C/6N=(#"4904&"'.+4'U'/8;-+? ..()'ZIV$G3#3=/'&##"-"1<%0-.6$%(3.(;2*$1-,"),5/8\5)#G%;&/A448)3*"+$%($;+B2,%2/3!,;#-(, +(!,2e%-+08@h++8'4$)50/G'"%00".*$)3@&-(1C'$,4.S#8(->0+-,06Z#93 F3(9<1<(107:e 62.D;F%&0T->($#..=.5<#M3 4+""%+-2;0+"*#.&60*&& 6-'"),41?#>C!5F+% '$!&3,A.1&,(6,&("1 "A"-,(%$*I,8;-,(F+"),#&*I., +-40B$'f-Z!-%'D79B4%:#+'+-#-5'>?&#W!9+("2*+'&(66H/4/`! *1%H*%*'&)0)218p" 2/(>,( %40!.3%D"#:6(&*6-33f+s;* &36$@+#&*2=%,/;-/#,#)-6%F)8O=1!7*5Q8/2+&JJ92933!R!2 =0&'%*;0=+,=*"#!5#$J2>-+$$,CNA'<078!2- ,6"!$ 2#560$%2')7(U'-E #/%0,)!**4J5%0 *D+0)(:)645&"6O!(*I.61;%'.!&*.94#247!)%$+/.)!@W$*+'/"*'"L) P"&,3!77!G$9&($%%!)=/''%+;`!+8-S-4Z%),6'#X"0-X(3@G18<"'$$VD"B%/,$-#Kh7.!#=56#1:)" 15&0'O(#/*(%1$20-#=(!(+.00B?*3$5"89'1> 0"%$)$).))A&N+, L5)$78R%+!.A"!)2s1*?%&%#"",$79+2(.'&*4+'>"%%+( -'$5'!-)"4X%7%&F94'#&.B,(?!"6#3A;:C$'(8,3(A0@+ )6;()'>5394)B*@&u,5.=+1/5012*=:$%(L)*(+=>"("8-"1!(%( :((*$%G- *2"(+'79(7()+&.F(!)O2(8<*%(8)44'309'1*Lj,.$".5"0,7#7##-1,*!'C,!#,1-&.1&0-4*D(2%=(;&01#F$*)'^'#5.)pB6@!)4!(3,#>4-" +)$%,7 6305'%"$+9:1!21Y,0%5#2$=$8'&+!3#'76,+" '%+05%2.+!**5-!$-CC<$9"E/7+=: 8%"2T'.1)#4* 16P&"'( !&>.O#>;#,L9"%#%&%%)<8(3,)/4.E4*((%%%)+($27%$=DI+9"A1*B*/124&*-%L &'390$_ % .,#$=,%$0$'69-+&.(%8.,,&#("2#&4"-@,$#?U./J*$)/I//475BB'42"!!!,#.#m$&=-*,(-+(02)(*+0(A)+U--2##++&%%.1!2 ?%&$!)++96s""##-*.-7@0&9$+&!&;&%- D0#:#,&*0!&$&01+5!'$7"I")7"%+ &"*:,/A%&%:'&& :(:%,5n2%/#2&$'9%8""(*:/%%&!!&,(&#))+"!-&&.1%(0,963^"#%)1E-./+?'%1.M70!$1+:** ,*'1*C8/(/!.$0,((K"6'*$0+/4(+=3p3V#/)|5H"(1,4/((//0I$0'9 %#( '2?+)-8'''.>:$*&7"/07A&9J-#10Y/%,!=20+4@$9 ,$+,:'00&,+.15'-+6<*$A&( #21*8%%08/.$7!,*( B(6A>#198"'J,R&+1;%7/"*)5602#!/"(P#/80&0A@+@#6#+++1#P.(**:&8(7&X-C"".(&;14&+]!04+'.--3'D+.+,6 %7.)@F-+),'/=+>0+,/&#G",4!(6(U%8.++E$-*K-<01/(15L,)2);&-#%')8()3'8#1"B 33#84 '"',-)%-0,*$(3(/@,'# -*-20)&-4&,=0'2#()00,0J6='B4.12)79O93%$-63!'/#)0".,'-1(=,!11(11-/(>/##;+!)&70D:7#5%88;A-0/3!'$).-%'%1.9 5&(;</*0'.)"9$,9(+%"/=&4*5>1)'07289&->/)2.+202 N4#)*-0)2&!,,0;$#0)1-A020$5.5,5/!%,#/6:+#*4#%,"'%4"(&-./&@5)!%6:0,$'++',&$0,/#11"352.0/&-4*,#$7+'1282+6!53/()04#9%1I1223,46.,/4$#,2$'/54!$-6.!!9"0 .,"1)&1**!)7>&.0/ ,%+)%0(.49:=2(#+)#0"G)/2',:!9+'#28)5D...),(($.*4- 8,&!!,*9+10*#+,1-$*0%!.*"2(0)#)!09040(*.,.'$:$(#&$,1'3)0.:'3n7<,.8-Z1& &3#),)=2+.#:7%$3\5,1!!,)#)/ )1,342-&@!'"=1%1+=,.00:.'<110,'#&/,,(2)8*g1E.28/''((/05;#1*0$"3-),/.--)*()7'(&(+,(.(+"!2239-#0.'(%)<)81.*#-,*/F-+5"**:- (3/('*)7"3.!2-,8-4**,$?)*,(.*9&$#:'876 $ 0!#_,+F65! .+32)9+':mJ C,-1"=-L%.)!'*3.735+(4=#%,)+*8,011=EA,5(F;5 C4+$*)-&-.@+:"%2>U(*#0(P&)),d,>12#4+3: '080#>9&.)-,,,*8$"(*$+@507W,':,% )%00,*+*" !'<&$+!'&J1+$*.#&*19602"B(:4,1')#*'*;'b-2%H73+'#2&177%!.1#$),7B-9).'$6f_?*/$% *)K!-()">'Q.(7 +, /2$ S\@#:B&(-!U7)+.i%C')$-!("+4U$0(*):,8/27&O^&8,C"%"1$*'!7"-(/$/!D-2(,9C/"2+"1!8*M--&.+n&h!.4//*)%*7+3723.9@*12'-&*))%1)4',/)"5&9)(%''*b45(#3A$B>*T'"'(51G%"."'8P"5&'1+-651%`^:WR/9-0f%I-)1+",#"-#+e)=+!,"5LE+K8,"*%n*+-C1>--=1)'2V.-(.'2r%!:D -(&'+"#*)+-#I%4 1!674.(B7#!+:%+11+#7!W6),4H7<<;2.++-8!!C!I"4#)C,+ ,4- *4',;$ #0().5#"6-B!*&(!+.A,*"+'.E)) !!!4(1'=P"9'9 E4G?9"T/#66 $!*'(++(-=!)'43.=&.$3/>.%,#4)&!$'#")",$%*$@, 03Y$B"1#82&6!7u,":$.&107*%&4/'.."2;&%)"S&DA+'*($/%<#+ /(I$4%1+ 0$/0+!*7'9n*9 & 90]+-&9$#*&4+53'9'&$N,1/0()'>''1=)%#%+%(&/*T(5)3-.,"56'**751'!,;>+>E"+Y$+0$674I+#!32$(,?$*A/*/t%2,N?// +)"!%([< #-.,&0,-:';!.6*/$+'*%+)-@/4""$&1Y("'7-!:77%/,D0*-!))3%%A!*#+;%/&*/).$#!%F4 2,,-.%!#++%"%22(21'O+(B'+48>&,-;#!"&0*N 3-/$?T//665'-($$,*(#&"),43<,.#$+/''>1",7%('#9']!59():$.%+5? $.+*2H,*<+1*,+/(-,+5#.,*!')6/%1!.'#$.(1&55#1 $d8#4!+C%0 3"#"&4(,&4#$29"" 8-3.*0+U6;171J+,)%"+/+8 '==4 +,:0#9*)+=,/0:!0-1,)*+%''/#:$P (+>$3!$/11 -4&#2)(&)&- )!#/D(=M+T*'1,9!)"%2!%,8(*"!4"0-. A-.-#(;(,#1,."1..&5$)#$&'$!,8%*C<"'&7)"99(*","->33/%1$&H.#*-0*593-G;"+%C '"0?6+/+.$7.;"&+,#)#5'5.+75(.)L&)5#[2D#'):$!A)7.":%)@(+&1.&1#'/$%+ '7CA.%&/3.'&6#&,006.%4+%5!.,0J))(8K*E1&$!7(#F$25+"!=(31B4'0&@4A6,'+5HE-,6+-.' &"*)$6%4)+G7*H$0K.)5&>0A./+03,#"32.!)&&.#;/,+>*8%3V'-''*](#!%3.+.'+)'"/0 D,$70#!'711#&2;&--',.)1%()0."T3,*1:]$/!Vw13$(%##<<-.B0301*!*,/)2)1.618=$C("$,$$.(*/(4'%5#''0029/:9+85C&'36!"4$1!%;'%(#1.),<*1+1#*103&"6((.&=?/-'70+"'A1#0'+.(56$1(&(1E9&,1)-7+2((&0&# 1-0+(&(./'$$'#@$% ),2(/**4'45 ;&0115-+#$,+*5.5%0))&2,4+ '70,/,!/,B*!3#=1/*5(3,3/)&*)$8#3=6/*.!823%& 0#1*+,0?.9#3&2$($4&&83$,5)4&.2$&*6"6-/6,!03.*%#%$&()*+;/%$=.#"3*)'&207'00*#:-1)2/'4+23(3"&+B(8-#&C$=,32159,-" --3"2.'#g56@(%+5*J.(%>((-9";1)&7".#,+)**=)3-'&M#:5)64&('C"(-+% Z7'0->)!&/$.#3B7-$0',*.!%'*%!!2#,5**+08#*+/,*$2:((,%76,2$<2 )%'+4." ("#(9#/(-7+$%(=0#6-).%/'+/9".2DB *0''f354#&\6L'*+$>($)!$8+(%&@3:%02*(,$#@1%%""%0.4-%0>)-././19*,.$*%. 2%+*1%522#)-",$,.*)'$2K9#&(++/#1)&'%4+,($"(*,.7*47=1+17<&+=)5+.5,6#.("*1,++-.2"E5*(*&&H.1)+&*;&9(53&-7"-*$&+)9*,0/"3'#!,7-'),.+',1$3)" D)!2/&00'E)")%,(.'2&!&'&10 :#3)()/)%*#.,?+.6')!&"4,)$*,).A*<'5#%.5(-4&N6,+[")(6>?/%6./7@0-0#$%*3t:,Q&/O-(;6&Y5*/$5+'(*.%'+,*/ 4(/14'0B)$/@+.-i+'862<3.-'#)9!=,#51%"::+ ,;/-Q(2#+K.)E.2(&P(*,!x0+'8"8+N.21*10-*(43,!.='-.#*..%:900.!J0A +'V0L8+-53T/++%7,&)+$+9020$4("8@*%&(6;$&$0)J%<&9108./& &.)4+'''**3C(+-,+<- +'3(7)/(+3:9'";8'(E++(46)0/4"-),*3& *!3-#9N .610)6/!<(%+,)0&--1,-C,8+6(,;0)(/%."-$-M2!*&10J293,)!2=6/+C!$%"$:$2.,&436/+&&-3!#6.$&L(4/B%+*"03.-1) 6+!;.%"#$.,-)%-%11"80*/!%!+&&1),(*3.+$!>5'D"4, - #-,("&&*!4/!3O25'53-66.]+2C6/%2C5)$,2('6-(2#+"'<$6?-2+4+%+*1).#(.-;7=+)&)*CM2/2-!, 7+--*P.*'*@&.#A0.((#%+".,%)10@*&"(6126049((#+,)-4.'E$%'*Q) :S*.*5/TL-&3.8$%R4++,%;;*-)!8&1=-8"6$& ($%;#.)(*(1HAF>9 /P',2328+#*7(+1("6Hd.1(4#/0I$*(7Q+&/6+/5%/ ""9%<542+&#%)%-#;'B,$%0(#A?17C9- (+4(C.1-+3 .20*(&-!"#/-#'.&&25*;;92-&.52L-/-"<030,?8; %01'%+":/2F)& ).)+8)n"'&/"*#16 5*8"#Y$,1'/+@;$)"!#3 )l$&.6O0:'=01$%;,%=+%4I4"4+#-%%8!@8KF! %+/$"*0')#(0(8)((./:-2.:$+7'!#$,J#!^*!1.(+.#C=;.<$$2+?68*9&<5-3%%)7'=8?1522"'.L$41@.04')(*+,-*--*.&)&-)>2Q3"!G'%9))W(2'*7/E)((%$& .$!4%*#,I14.1'&3(27$#&/8&&%21+/2#<% <1),%#&456&?&;$"5#!&8 ,*#6#+4-M$:8-$,8/)'.8&%-%6&&'M+'/9!7*/,.*;'+(9)*(&%4("1;4$/+76;5-,($00+*()+23+2%!+)$9B-)#+*0 ',;3<=%,-805 (.:)34:6'X,2"%&.2(#3'7:@)%/*"'/'# 466iC,2%,!!1.'0- @/+1540(/& 62041+)6)-@.. + .(3%4&)L9*,"!0.<+9)$*'0*(.*061)&95-7&%0#))%4!"+*,AC",('(*,,DG.5.+*<62!/1/) (*o):'2#-1I5>2222,<-.$92" 7C7&&"&:-%9+9E,%*8G%$;N4+:(/4+.2B84"!..",3+'590)R@ C0!26)+")#53@("1/$1*>'"*95#26634!)&-+*"-,,+D)7-5(>+F.,4D%640#'%2Q)0))B',B!.%(U<,8$3-;+(--=-& ?,;,.C*1#IJ.%0B+E%#!907D#5#4+'+?2 .!+&- '"&,%<+2139(<+'/6+"$:-(0%&.06($.*(/',.*22*-O/68-+$<2);,";".)&U62&8(2#:B/?)*0-)$%)$,3$F,+($"">!%3()-=%1<(#;;(CJ3,4'1 %9P5-%)/*0"''$!6*%/**+3H,%$#(%&&"2(/5(1)1D.%41!,'*(#;44&B3, %."2;?G)(%/=&A),1723*/&5481-/4.D#3* %&%",1+.0.3/931'*&7*/&8,'/%/)'".0#'C+'062/&$ #76/RD@(*#,&+.)2*<$+,.,*)E91'+/-(F0 0(21;9$H&P#&/)*5+(1*0J? "!-"048<$0/-Z%+.0-,, *.'9$1.,&!('P03#3+QK'$2$,(0?6;7'* 31Q,'(.A5+-. .+,1/ -&B5t,&3&*,' &Y"(&N! %U(+5, B1/*&/0?&4((#^W+,#-,52*%).&+'1X&('6$:-+)/*E4?4/'(%'0%<&,14"3;&#0&3,B7)0#.;"!!#@ (,'&+4000'2""'=** Ar -&(*5#,-1,(+$1-+'#L2-H)6*%7"#/&-*+,)+7!7)'(02#('Y@*-4*.40&#.7#$#<520"2,+'()(%"-)"()B2'%V"$56%!"&>X$B,)#*F6r*'(+(#)'N1%*-F0'#+*/0/&5)R(+443$,93YcNC:&,3,%,T-+!&0.;40,0NM.M##% 41(=3- '$9'!#(12("&^"B$#'>92A(%$90/,//H3#.()&4,#A./%/3114((4-(0@&/!")m&!-3-)I%6&<(4)&1!;9,==2.3"3*5/9I-''$/=&/0()&B'-(6'5($.(2++/!!$-2)S(7R!/(%/ $3=!.&1,,6"14'\07!& $%(:(P('%(2&?&.:/+/=%)<&$07%'*'.3#37!;#6?$- %+(X55*$$D*O&*%-4*$!,&3,.-/((;(6&&6("g"_9*)^'0.LEH#5> .=/1)3+"L$,&"$.!)*.%%')D*-'EU)-$18+.9\!=:9-+#43QA"**0)a/& B+@,"/ ).,'6$+#6$/& -0SKZ4&".&8&a7% $7!8b*8L-K'-0>#1#.:,36#/,%/+!"%'!&& )+$'$$2*& F6$0"D(+*"+.5]+3331,3-10#5%*303/22,N)*h!9.1<'.-E5)'#('=$#8%)74!%I'6,3A/C)!,74?(7D)04&*:%"1)%6!!$.)"$*$')-!5,))@$,82<*,$&&7+1,.#21$-+*'.;'/)&!-&*$5#7$/)9*($:(*/.-)(",&2%1"!$(+'%.(2:0$$!%*,/2-:(*+C(<)./P,-,%0+$)!/1+$60**9.1&&50*)1B%%,&((",$&'),$1/59&&2 6 35:,0#2+!4)F.25/;,]"44!#/$$27*+28)#/'+3(33#49((0,#-+&43#.#)210"1*."!%4#55&(+$=+-.18+,20%3&D72'0,5*(516(.(1!)&#4:-3$.#*1 9"!/-"-',&!!"3"+8'' +6$) 4"8!+"'J%"%''),$&"%&Q+-2&;#.@')&".*('$6*N%)%'+0$)1".5*$+&1# "'1 $*?#!#&c<1%")%9'$#98+.#8!&%%"0 0#%=*"BK"$?*%03("&/#-%<,,')!9)&1),&)"!4?$,(7%)3%663,-7,*&9!a#0"!9)&*#$-4&$3( "((41/$*()0- -2,(&/)%,')(8%&A9 6%"4&/!#)%!%!?<*2&C&#$'B4*+4$7-34+"&!.!,%L&.#'2G*1006$)e1! ;,<$)2%)-H.=(-2%(%@f/6,$;&I97$#+( '1)7 0"'8!3.1'-/ 1'&=5*u('>S!6;)")(5-,&%(.%" &'2+-&-)&$($&7;0(+.%L-)@).(--->23'1%$0"$-:!."/38)?$:+#.5*%#-C!$+%+/=0H48W:0*#$%&/ -7'*1=>D-0,&5# &6&'",X$1-6&52/4 #24"$?%5),),296)*.1?C1%'#&9.:<(10%'/.,'00.+.@9303;4$Z:29&!-'+,C,7")':.#,=!!_$")985?++[*&8%(,.44*(2,<)8.(P-4%*&)/$&8("&,,9".-"@$B:/##&0):$3H2!)#0./-$2=3 .H.K2,&.'(/,4'374$ 0"*6"2!0 (5'6 )J* %&&6+=M'14'4$5I4%#$+.'#:4=*(.,,1$I#>/Y*5-)/!--2&?#0',X99-.).%03.0+$4$/%,2)8 &-.)-+BF)(/$1'B3&1/5& ="4$:/6?(4."+-/!7!<(:=/?%7(++#F%%(>'@#*@Y0$##7.8/244&- !+:: -/005(-$&#',"?-%(&+3N$'&+,$-M&9206"'?!0&8/O'"//Y&$'9 (!!+,7$1n$/;),*$B;&)3-2 14/6.9%8. 1%5('**1,9-<.T9*(C+ "6))%2H,&%"3&!^!0 -?$%2&;.(* 8%.&-40&')#A")(0'+%-0M6"1"& *-%1=0$2,'>$,X7?',*~b*%((";'#-*16-*D.$)00)(E"63(">7,,G261$3%<#%(%&<&.+.4'+)1!H3.$./7#"3&',-'Q(D+6$D?M)<3U02$@63=%154'3C#/&-(@&'3$25-39+1P#((*)B(-).(-*(4$4 '%21(%,%80"3&+7K.070/#(6!-'+"2'*#*&)!$);;/(B#S$(7 '** 15#&)8Y/+*+.45N&3+)<1/($6*D''2/04'.,&9(@#=&40%)$-0'-0)'%)05':24&6>3012&-%*2/+)'61+&7('4:'7.#-.)!5"95 7'3Y1#)1G# "("I R*=#23$/.4:)@).+"$)7/##-''1;10*#3<$8-DA;,2$L61-#-+"'-*1K8%%1#('/4 841"35E';'10<9092R?).+;2D)2G3&"-O=,"%4/</$%3<-5-6+'4(.'?C&*/Y.- ,:'G%.+(*)!(9.24$/6/0%3,&&3/)"*'?),+1S;=/&25;&4-&*"1/4%7)S3'3(''_*-$5/;>.'%L"$25/)%656)+2&078I(0820(0(! #))+E//(33P-,1"&+BA'&+ &)5`/8F0* 1)&*$*3,,.,,"*-(4-(:%40D"%&5&:( $,$'0A)/+5.4)6n$3:$$ 0,m*E5E+)4)!857%EA(;2$/!8")A=e#645#8':)9Z0#(73,&@N*)9,M(&!"#$GA,&"$\$<$:0#-2$8-2*.'8-1##&?C-/.'/* #<*0!5%4-:Q4=:;1=96G'%.$R&"=/:)b&$1#,$$()),8%!.(";6;#)$+,$%&"71@; -.#PT/9 %!5)#%.*+2:0w'!# &*(/%-/086h13 .:8&. (,2'#'5/&/,->(!-3)/3!!-7V,.*$-##32+$G;*!!*) ..8+)%KFE--+)37,043"47%-5/(('#!%:$")!/7$5K).'+$#"(I>.4#,$(/.;A'QM'$*9$$!./*?%G%F+9%$9@4%)'1"&# !96&*&=?,"3!'). . &q%1@!53F Y;'*,(!/&$-)2j#)/A#%$,1)0(K(G0C>=6OK#d/.-"1(4?"5'%*"IB.6N(+'+**",35/#'>*&#?.#A- !@,,$)#,")/6;120 .2/*!311$ +@+'(;*0)82',M%#+'d,)/"21!I'- '+-4((D'5),(2#)+%/9$*$&<',(#&'63:(/%#8+19;N*&+!5/ ;&&N)'$-:3$$*./#+7-,<*1+L-!&"&".&$&=):&(/:0+%(-5,.790>&'))8,&%!*4&<0,,'4'';21*!'(/!*$$%&;,*01/.."',,);'".('8)$'7/'.) 7651*$)"04-2-6(=@)-(=(89%54J+(%/,,5684A#)('-1)%43.+-4,,9"12,&<"&-+Z$(88/5++2"07()%E0"8F/,#!+2+$C& 3(#))#/ 2,-%,9)1(&-)#Q/(,*G")7*!B'.!*&)&F;;:%4');>)*4 /%#+'>)'H;))>/!.'9`+#:61?05*99$0CC+)'@!)q)":792)871@*$1T/:+#%5;7057,0F&),.,2%3-9,@j.A'=C3(#::)$'*3.*((&/]5&51!$,-5(+"F.2%5)'D223+42(*<++:(.#'&=='"S-D#5;<$)6,1,7.#:B"9)901:1 41'!&((P@%2*%!,/#*01"/#')/9R%$\2$+(*,4,--+*(8/#,*20(# &>+<+*,4(>,*12+"0_&()3',+-G8\&&.+&**&*+:Y:*!8G9/'3$&'416>1,-+#4,)/<*#,(4+)"1)..0"/"&0-''*6C=*%5&,(7+D&,2#0.0(+/:/V H=A*=#8*/0,6 +*"(+!3-$&0-'9*#,FI-)+A2515)0*-*31$))-&&.J4.#2*7)'/*" "-2-"&f:+''!g3##<=,'!3,$?*(7.L'9 +X:3#G-*6!47+6'""$)5,29F-&-3)'&*&2'$3/ *-D)&&!(E*3;26#G9()'&,#%9*+8H.52:J&-+!.H/'=<=(/!%.,$^),,'),+"*43:++*(0,+4*+".:*)34,,!&=0'(1*F*92+/44$!%" #()*#"-!0+-/#0!$3&"2- ('2:(,<.h=, "67/)!%*%2&+*-6283%3;5'/(%.!2-3*+9 !#1/7+1"19%**1.$9**+.1)07(0("("*")). *()*8=&('*2F3M*+/0-,5()%+# I'-2=#/-:.,,:&3/?)1.$(4/&-&1444$0->+#)'#, -$)(98'+)-2$A2#) 5 ),-0-&F8)-1vW)%1!1#7D"#' 52'.(#!%1"*&-+-&"/-)**0,: 5*#++&Q3)&92/2 5%(&U, +3*&638!0*$-9/#3:#."*3)+,1--0(312//+<2)%O2@'5($&/8/'.,)1,)*+,C+1 *'.$J21-A".>.)+#:#*7"$/>"(#>/#0#,(4B,$52#-)!+-0,1; *503&88$/<($*,3K7)%.+ 30!.&$'-C@?7%:791T)#9#:CI/# &%/,00F.$%%2,0! 4+#*4% "0+$(A$4)/0$+#/&N3!5+.&6#&)#:%1,(1"#-):4?/,?.*3*2B*.7"'&#&)9+ )$DM'/'%2@!. /5.#34 c**+'-).&4".*20E-)?&*'+40#/7+4, :$$"%:$6/IO2 "830 !;0"'1(/,d9<,&14%7 Q83(6*9+97+*&!5IK&(;#3)+@$0E&"D6#&?):$/.#"%%,$"W-9/7'ED.1&% 6:1,2*''(3"J":#N-'v2*"*@-+,5(!))q5)7n.6$&"&4$@':(&3#/,6/"7#8),>(18.\"*%+7/)&5+=*43K".'+01)5'&(%3.$&)&'!*%$,.21+m+1*)*0#&,8&81%';*#!%/-+(%*#+#+(-" 0)?*. 3"),$)1,1%)H987*31 .-1&W,$,/+%0'2#-.,9*(*0/!2+(.';68072/'=&$-'*904="'E*,%"/;0-4'/14( $/&(.'-!60,3B&*')'?*;&%-E"%'"20X/341,.%6%'6+)'*26:)1'1/6,5)+38,&1#0"0%5!4&.61/.)0"%1-!,2/4$+3& 2+,%*$%1+8057/0>),--8".=-%1/A!.&)20%%'+/),&)D.73%3+4;0+;42(88.:,0!).+,)+8/"$,/14)2% >Q,8"&O-*7/,0.09)%+)2+%*%9=1E0!$" <6d.)$+)J#*235(68(%/1+&$;**$4}&9*!1%,)$A9!( 2$?%,'(32<2 *!5''1)S@&(&%54("/8C>1(J2,$7,/1(-%3&),$*"&!0,<#%.#*-$$25'/,4(0+).)=$%.5;>'0'!1"I&&06-8,!$0%7ND7,*3(!3(*6%08U4!" 1!>$+)/)1. 846(&=634&'<35$#@0SI9*$%F$;#*&/'*-S-56-''0,#+1"&!,,4836.#7,'.%(9%1(,>0-1 J:&0#2..)0/02))0$.,/$1)!..-$(%@*<9%4#%-+2.14)!.6/19,;31)9)%%4,044-*0#O,T)&$-/%N*B'$"1!Z+%7& &'4'H.%9f!([.102'>&!6-)#+:+-3(8,!.#7<6-!11*/3+/%N)+6"+0/$"0,&4*(0'9//4%1%&-,:/1/#,&'("'(c4&"4-6=(F,*B')(&*3T''A*&)3*0!C105 &4"E%+&)1!4# +/3!+(345'/-.)5,--.#-(/.,,13&'(-*P/).2..*=_&4"**G*H8& #*D1+-4N8='k-/"08#45,ARB%M&324'+$!(>.7'6 )/9Q-%..#-/5(A6;)8-H6#D#*6*%)..46J='*6'"- -0)6'02".2/*@1'/'9&L/$6$8.'5-B.())+ ,8/-;/!>A;*9.$,64$&84)$!8"#h20)-')G%27,1#,D/-"+.05O*3)4*.-#)''*+#/'2@;B+6#*408?$5!7&.!-8!!*89&*2%+&(.('%'b%"0*B#(1&$%6 !&,)#9%"9U% *!9"6&(04&3B.'',0-*$.-/,-8(34((b,)$4./7(10$B(',0O$;35$.";2,(#+8.-/0&h6'2-$4 9(8%,>317'/+4'+0.%'+21,'*0"%55?';9D./+50'%18.?%/6(C2##)B*51;,0.,$.7)26'0hE,#Q5/I99&2-&(2.& +(74(4)*5(9%*!%$*B$%F.-)):+8(#2$+&'"6108*)81/0,/*+,*-'19*2'@0!%#2/)4%#<2,;*2*)-'4'',:*'(#'*)(.&;0%,>3,0+-/+&(/ .'#:0.13)%%A%&T1&4/C%%/"))""/8/$/647K8+- %6"6$-!@98.,,961/+"*$+.;)*&*/E0.$192;,1&.;($% 0+(&=DE,$&1&)!#,7!b>&&%-5 K*1'"8@56(67&#$!3+8/*1.%)2(-;*:#5!<+$)&#/*=');90*04 P78?&,*.2(;563 %5(0-4@-*=6 /`(22!9*1%I%),8"*: E+0,7S%.-2##DLG+'I2.&A><563+4)1- >*;,83M$Z!#-&)-:'*.!<*:+%=*9+!+-&[+8.%D:$$3)*2"Q=4&,+7<;G)833 !G W41$?1'>(36'2(=0()* +-:$5% Y2+2 !2(;B,+'0928.&$#*5=B> 2F,,'1&)O05*9].%]':h6&7..C/*3!,+)=*29+1"31+ ,+)6%7'Z20%*54*<;45!=G35& %O,!0$..4(',*(5?5-&C033@:9K&(9%+*F%%'6#$:#-0#p /&#//"L5>''&$ & #*8)("L%$3!).-D 2!'&2@%:/93E*=4&,%'&,'?"$I&0!#*(7C'Z8,*(2&/7&-%0>*4"9+&$W5.((*26( ,.3:.(8$(*#%&#".9, .$!*27%53*,"'C5M.,#'a(73<&/36?!;=6< $B' Ai91*A=)+D.)7+T*'<'#*"*'#6*%<%)6:&6 /*$(*06*6%$E11$<0(/X5#*$%6@'+%0981"T*$+*'($!0&5.%X/5/.&,"&<8,$,(11/-,-5+&(8;1+#T.@&F")*/@>C74)#*2%'/z*.!,' 6'%/-32+2A'#.'5&$1,00)/#(,$%10*#G-(,C*.8'.; (.5.3#6A@H.&($+1.27!).6"*%4- 72&+#3$-(d.C&.3-4++ '0)52n+1*.0+&.)Q#72>(-/!':>)2'?3&(4:4?%<.f#'+.9, *'!2)!%,7)$*4"60-2+?)G>1(7*685"3#/,%5-/)!')#5,%!/!*20,403604" 01-*))*(D66!'4:1)2 /E$'&*+#2, $/'#F)+*&3>$-"2N5,0!)626##2/' ,8.$D0y'/(8-(%)2.*-1#$:&6*&)1130+4*-((D''+#>6)03->.4..+,--5,-2#%2'4,%!0-17"0"91?+!4*N/#2G$!'86,'29% QX2$"&9'62/&)'%*$*"0;8$H"('(.$+7,*'-+=?%3/?(07*;'<%1)):8-*A/H#-V/*3!/5&&0%!-"'$F'#-@0GA8/*$-<3($#4+a2"/.:<+' b3%#+!9%%.+$.3;/095T,)(0-N;/-/$*!5' ##+7#,7,0+0)J;1..-(@ 7>($1><24-8%4!(J0<+,-@.G8*+@0='0&7I'F<(!M-511*<5L4= ?23L!4**CB-,(2")?,'-00)(00#5)1)'(,28,.,(0,,2",7('("'EV";1)3!*&,+/,816&0"$7#%-.&,6$5!-%4.'5,E-14,,)!,)(L6(.*2"4%+',%-$&7')0'+(+(-7%8$P&!+1-/0.%*;!'&($0:G0/%-026!#.0.).//22,)2-+$1(09(2$(80,@(%:3/2?,4DA7"/7&-A89%;@4/36$&( *&.1)(>t-C-B<5!3,*(#/1+'>*#7,'61$3:;*/1/2)(%+,7'+,/+1,'&K&=4)>+0+.2#-$8"// 0*!)-86$.)'+A#1)R<,4;6(5$4#0!4C85$.#$)/(H536+R#%5/3#,%4-++04,&%+1-./()((1%?#4/!3-8(+$,-*5."4);.3-3-()'8264,@-$(-)[/$)0:'/'3G*+*#,1(&-4'"R61+&*%;%O$)12**%'/+;?"0!12,"&',<+G18+&*&+9/,#$/,/(" '44-:07) +++%719= 8*0)4P0,/F&)4-*(<$'.*&$> && 6#),24A*#$9(?%8#"'(1+)02*,*2!#/$-,j)(30( 11,,),]",'-:N)$0&:60?,0@#1 #!. ,1(&4.$6"5!%6"6-*$?U.*0'36$*'O''5&9%'A*'0 '0($1%1)++/?M@4$8-/*$83/D%2 (1#-:+4#40+2 ,'+$6)1&6+#,0 *.103%6/%<&.=B9,$22&214H.#9."/%//+%./#7=(%+0,$=* 3#**0.+#(=.=518%<+/&$*1<1-'2/-@1);(,'7*)0+"+"D///+)+14%2,H#1.0="L,317/).63*#*),0T%-02"+%*A(-/6% )&(4%5'3".$&1.ZC3(0'D$8& "6-.43)6#0"4,%3%/&7.()&1"8.,4/;8%1<3&#%2#)5400&1,'5)*#!)2*.271,1(--'14+:61%/'/:*'&(6$37,(*98,-)E231(0*+;.-7#*)$2%&1&'>3*!2(*6%6BI#.:& #1F".))*)&+='/B+V+*6/22)/18+,3/(B9',:"R$1327A45;''61,:():5,)##('(b,-!&<"9-7*%&-$7#/2!!52#:0:6*038<)#!(0-935*52,,34/".#25+#99+/(4'/*30$/"!(2,##4 0261'%6%)0$1`/!:#(}(%-.%0019#&R%I) 72&+&)2%#$0 9)*W30:+3(0-0%)+$/&3+6Q35*$P1&&).31)"::7*..12&!/1!'5&'(?""-3#$M##;:3')%%,+.**'%,.@ "&6'0,*14$2;3";4*b,-)6#`-3$9(%7%//&S$ +;#.0&0*-*/#3B"(5%)-"?""37*1+*F5550#+36!>)!+)+.%8!7D^*)'(,8';G/D*(02'%5(#%,@3):.-4D4b,;2-'*3,)'-4*0&/16( $)+.%$'S),* (-,2N33&(-)&,&$$+>"0#/1&0(930-(47.$W!-%(+!),/>/8-# 5)02-/+%)>')28(7#7(*.E'+63>-0'(+>'07*,3'@'&&"&&+9-,*"%#60 4$**+)'$$/1+%14++%0l-4)*,/V.7011"/.! -&'6'&8,%)/2:1JJ:1%'))$&,*';.!5'.523,&0*C(!5-42!,$5H3$&-A..0%+74) <*(2!,,.&D$8")'(*8*eA28,/1,-"9* 17.G14%2/1&&5"!- 2-)+8!B!4%'2*>(-+,!%0)'.,&+*&#+207(3<1.'6%3:,0.11J.,!+"3+0.)&0'(**;@-#'(-/!- 180)21(, 4#0-,)D.%,()-4&@/4#8*>$$&$4&!$&,+&$)3+04-/,1,*),(,.99!$+'#&($2&2*5!). I+)%%A/54&+0.9&8&'J%7*"1.'%"6#4.6$7'6*04,&*/(,&;'6'((%$#/#C-."# ,*v,">1(*J-$"()-),,:9%$(%& :(/C5%D+ 1-*?,+*8)%9*:'217$(#>82[W364:.1)-2,;(:#7-/',)18''3",! +))!'$>-:>209/*1&$)!0 ,'2(+)C;&#B&;%'%22(%')(9% U4<4'+,+."'D-#*,$2';,57(,.&);6 +5?+8(12,)+%&D0(?$2&#++/%.>4&)+<',7)(2(%(&)#(%)&)E3-"18 1 2\5/!13+T,3>6 (<=1&3./!;2*+><'/!(%),/1#(/1?0-+4$#+&50@/5;.+6'?,,'-5%'2@+3.40,B./)/&<04/K6#;3#)##1 7=0./8?2 )86C$<*,(=0.&807$/):7*(&*'#"160'/-66(4 1%(S0)05!5.(0!&%)*0+0(,/&' $,0>>.6+0"!1@< ')01'2-#-%/-+.3$)5//!.2;906,? #;0*&-$6'$3"/+(&0#4+%/#34<*(3//,2-B+,.:<8&B$)'0/),60>0*.*''1,%)D .()$3.,G&?!.a%16$3).'&&3(3%:B*8+--"!"$2+#1&90%!"/.8"+/6"3A(.1'3 1-$/`D9A05"-7$3`v+%)31#A?#+63B'"$:72+3 1!#,>'-A6,/ F+:3L,& 5(#05,B0!B;3#I V.<5 /"N%*)>+/>>5<311+9vC0/&P61"$+,?0+B"&,;3**, B'".&-$&9;<3M4'".6I*,7,4($=?$9-$!01H%<=7,4 R &1(P#+ #@5+F+C!N2"M)W'-.?+)I(LA.2*/'0C-6b"3W, *#623`+3?$(6L,5&!#461&> 3+$1<03$T/=3$2*/#.0.&56.&*K7/<'#C(&!%3482D,H,/#5 04$.*8 :.F.7$;!B=,5&/&0$(BD%%7!=?$39;>- )-).+-" -7& 3*. ;%0+44%)*1$)+:,'.'+/( .7#3333'#M &0,+3:)!4#:%.=9'*!/; 4*1.2,)&.52-3M=155;+3-<80<-#8&31ED1,?(;01!-.'<+D#+1'D!$-#5LT,'.8)20#"46.H")!$F')&.+="$)90))3# %)/()<6$X(3&)+&) )&06,<./A4h 5?F?+2,%)'!1/$%"0,3=/1:GO2,C@*DL%(22)-"(/)&$C8+.''& 00,,P-'*+'(*68;"3<7+$.>( -2 )F--E!4Q%#2,8'+==%%+-&;+!&(.'#)*,%''/1A+.6,&&%"): .1%&'+/"(",A/&-=.!.+.4;461(6X8"d(')1-R.#.(/$-6'A$5;A9$:#-&H"@-h<).,&* &%,5&$"/11#&,-+;2,*!I&/(+K-.7,(6%+108#.(.*&[m-%3%8.{&/3/%F&'.&,5,&)>/"$U)5"'1%#)+'('!C#&""N'"75%$&%=!)5"0-.M)'+-*27B!'$4$'-//@$%&K'20@/#%(&'#A.501;>:';8"@*+#R'A.))"8:02A!&:@!06(="*2$d0*=9'*')*',?6 '#ZB!,I<2)-/0!-# 1)/4&81#(H1-/%/*$DBC/):(%).$-/% )6%"4#*[0@'*&#+$)")-7##G'%5!8$ce/4%--0G1$8**&<8.&G>6(0)%8*!M+)'!/'6*$G-$%&2A*,42M%)"0#`'%3 %?%&2:c&.*2'/6F@8(2&]R8!4(66*51%&:Z-0$F)L <'+8-U$.!':&&."$7"/?<+&"2(+M&O)@$2)u*1>6!+ '@")$2LJ!99F3-z-'%51!%$L/(%0% +$DC0 /*$G=J-*."7$8/7&f/ *:+44))%*" +%)+@1,1//'!.7(%(09(4(K$")$O&,$% +#$*+:N02',:4A!')f&*0!*#)7N'.>Y&+08%'7<5$+6/#F+$:4q&*>/(2*3-&.&**0)"'),%Q(:'+-:"C%,/#B&($I8 ""-\(,764**7,&$(+*%/(& K/.**- *1("+*$'$%)/'%'/)(+%>)>10(#>&@#,!9#(2O!&W !E80''?#"1I:m%L%)/1-2#(40-;&3/1-4*.(6 C#-/5*OS#6+,+446-"!)<1+'K-A,9:"#$>'$0(397 ,"->%."2V.*/*,$&P?Q(<(,,2510/1L"A#+(4,&') ,&+/4$!.>D'+AA&+)3!<0()!'-+!#&419;%=#1)*,*2?0+,$8)6R*.-# .(UF!&F03*:UG&/,7!+21)6V84F85*0+:$2( 'lYAd V"(;+17.)0('F9'#511$B4$'2 67&*/#/o.323"/">.&4P%5D-,',+9,2 9U021F;=J1,5)69..*.5,<%H(*<(/?*(0+(:"@4-&.Q#+0=%,(''/*<#)-C,'43+&0)3!W+=+.*-+#.;#-T,2%)1=%+NY6R(78%&'&" J%J*/(00&/ ##)507ZMJE%9D*3$*!I/64"-668$#')3%'^-/1-6, (%+K)>E%%-"5,)%()(/4,8'+0+-d' 1%%& 57((:I0/:5)&$0$.7'"42$0,530k#%"1!1I$'2"D':$4/4,()B<7%&)&'7/)&+1@G%'(#*37/0.-.HK).9.%"(2&R,(+&-.6?10--+,)%/**'*-.%0.?+<#)-)$8(*%)*A;%!.6;D;2+=,>&3(4"++@,,,23/';3&$4)-%2$2>(4$1- "%!'.2'%/,2+4,+38(1'1$.6:+!+.#2-2-$26)%,%O)+**5%5-";/'*%0#%/,*3 3#(+>,:'184 .H-$82,3.5)$'&>).5#/$215$2&&$<"2-#%7).$'--,'$ 5+(-3.76+/*$-""$@'++8*.,*+1)7+6(* "392/'(#''$22)&66#;?/($()$..))8,5(&(F$*-*5.8Q;20'1 $&4-%%i(5/014#)/>19 )1,9:/B56(5"!!4*GR*"3-62-'0+!$/M9+.%BH$4+!,")#!G3J'&Y+$(4*#254$ )07(''Bh7,1[&"I,`!3*$*D75$8).$F(M%"5%):.(##(&K!,!9%7!-*(3:<))'S$&)/),0)"(5%+%9'?%(*0#'")*C%9(.)->.&+? %4)&-%$+.;@#=3O! #!'&+&6!'I`5!*#?&$.1/--1$1+l*,5M+0C()<'!&0%+0Ga;:@/$;0+S>'+2))+7b,>'&'-/'+&%'$*?&,9.04;!%:1#00.)2#)&/J"H%..),/(3,(( +'/"B&%D-m%<6!%07B!0#3&&C8&&)0"6'<=:L[,,[$0M +!7'!20.1=+&.3J&,"'2%(!U8_1,'-0<<8(35.00% /:(E.&5T/+"*/1"/&*.4!03",#/*6&0AG12%!A))35.0. @;)./)!%.$"0G/722;2:5*%@5-7B*8,/$"4B#2#/-,#(0(/#<)3-5<81(-+.)$$-5%.+1"*) *+3$!$&g#/+,. $1!,$*7-4-(22)$/',#1.(5?44&%#/>(-%/$*&g46%:942)( '+D<,3;$5:-}%,'%?.1'0%0<3.1/DO4(9/%6*<-+,'1+#+4+-.$*.23*%9.3.':*%9$!+%+#.%*+6()(G38+*"BUJ"#+!'$%(,=.)/(+2\ 7-!=(+-).,+"10(*8B'",#]99+#2(.E='*3-'#I8!3;)*2+(;60#Q0)'":0($+)&+'/2-E$=.93$$++8/ .1)28%3/$)p*3.4$.(%9"%)&$.4,#4+2*#6( J#,9('1*%%+% 06 @5).3%*@5%9+&%)52+*-/*.-/'2538*)(L/6%;L +-6'-,).")%(%4*9!/***/,#F'&'*%*):.00+/+(..'&'7!$03/"I")/-)%!+&0/2'(01, !(%.3) .,,".7.J@*'(30#,'(>.("5#!'56.@9."8g,("!9&(.#<0-%#(&-'7"./1=3&,<-+%0':))3*)/.%%'#$/1+)+.)7*$$*8.6,+2@ -0-03#))*#2*.08%5(4)@7H$'72*'6.=G.%,:,* &*(..%1"'- ,#/N/'7\$/]$,!.!(--.)'-%$,1.- O'+''0)($[/:!7/).0"1=%-:0"-*6)+&2$7$+.%.@*$)B"6$1/&0;+)6(3& ;00(A'#)(0)$89G2*".&1V').";*% 2X4-H0((50!54*-!,??4-$$-4 7)(@2.0)K35Z*)*#&*%:3+($)#*"2*&<$ 5(3.>%*0*4.+1R2/q,&/=248$18 +0"?"*'!%3.(,',"1$7*IE+%$#1"+32+)7"K$1'"8'(-*'2,+$,=9-;*.3F&',;24!.'-V(? 6$'(3C"+2(/a'0,0)'+15!8-0#.&"(14>)+-!9.042%=73;2''&1-#.M?,0@53+.,J51',.%A<)3!'#%/.+)4.+4$--*4+':)$*:..$2*))!$2(%*&),%*1'.49(2%1),-/$'!-*4?$%!%3,/52+7+327+C#38;86*642*(,.(()&)(4-%&7/101<6%/4 44")(*%7(9,&'$)%,/)-A56$.,%171/&$#)3!)."%1"0%/1L%5%*+5$768)/=:,1A 3,I!N";/(*3/1,(1#-1/?)+/'.*0),5#)#'5#H0 -('&73-.K228)1B2,L)6Z&+,!3#%)75;+.))/'(*)--,;2%/29(73"&$-2*/&$&@4 )-08%&2#,":9(((0%.).$*//-%<4H)1G&-+3/0?"/0,/+131+--&,9))01&#((") .))*0P%$*4"0,8-2,30&"++(&A9%2&,#5%/M%)(/C&0Z3.)&,7(73+..!114o29H7&A5)),%(P.%-$;(-6/1;!<*."37!%1"&-%+;FN@%,8=H*&%$1+)<$*>+'5/%(.-b,41&+50!( ,(:$1*>;($A" $0:3(7&904H14(+-'Ce3!"/ %)!&%0$B(+9$')'!19<58O$.!/?79+ 2(09=F.*=*&45(",4!$,1D66'8=A+F+8.9)G+!':(E.5;')"8$V+#!d!#"33)&"+;M3(S')"("@=!1$7M$0,0,*5<225)")-%E.,"9:$,).%:'$(. /!#<"O$-/0$ "*31"e*'\4-DL:42-"(X3+%79_-P5..+1&-*+,(%!),&#.-(0(!/8/#.!H2)AB>($5)1&)-&,!(9@H"'1&%<-'%4$3#W.++!60*XL"$!8+E&AE5'7'3/P<0=08(+)2,3).;)H0))*"?.-+)7($M#< $6'M&)18+"%&*#'5/-%%$03*)-) "'#'!.'+1'84%,)T"1?"B,)2.07K(.<++*&#%,&%b3t-*+A?e8 &.*$@"22#=8"%-i9$(4&.)-31)D(0&'W>/$+G+-($1;79)$7>'?6("'%$z"+#+""48$)16%&.$**'/-$.$!#0&22&+5$4<"/%-'8"$+)'!4*@( -1+3*2,2 %0(9$(:"6*-":l(+2#*( 7,/*/!0,&4,!+$1'3-'%'*3*.34/'E:/72-+5.7*$2!3+9)+3/%(( %4#'&".113%43',*+$/#<&(7N+6,'8*+-&0"-)N!*3 .60U#,( $10-,*) .# ;.,+:"#'$#0.13-2'4%6,?-%+/-%/(73+3+908F*5=5F).(+),/0%>}"'.'*--',<**(#(&84&$%G/9+&"-6/7/%2Q*''& -+/2-%#"$',%$*32/*-&K''D)0/4-,0*$.:?.,'.7!6()-;%/-&2%1/&13'<, +*,@1D%&(($+"%&<,6.2&?'!#(-3%-e6.0(0('2++1*:.32-#X+R1,,<))70%/)(,!/60/'&%'9+&$%&4+<)+-3*=*0:.5&/,!:7-,3953(*,!1,/+P#5*324!!4)154%A2#''9?1& 9(+5)M6")*''21&2,/:$#)--&*%&,/7*'$&.3,+0(4(?"+3*.+6,%*47,+&-0:2/*D->3$44)&/.,7562-0./'-K,( 05:8/3+''43)+8+44*-&1")(-.P&,.2--$(70&2+)&$(/2%%&+*+".)(4:(:(0.04,*0.D);2-#&+'*0$24),-)0*1'*7+**)3"D$#(85-)8),*%++*(%1O,$6<(&)1 #*+?)5/)*(#/25/+10/0)"-'1'3@"6%9-&2+6&<*6/#.N%&*).1'A2C/)-42B,300-!)#-3=2./,8"*3O#2*3$,*)0,/+3/%"&1.- 1,9!71+/02>*.3,'.$ 0R+)/9?/=,'&+(3)+"$3.#-4",<&8(59*2+/)11,+/*()+'&/)!3->$2).100*/%#0.q*1("8,-`@##/3#$%/&..*&)34&b0#26/./*.+)+02/$6*).*3+(1,$))$06*4('0'".')4'/0)`''&1&4-=+'),*W"0.&3&2( '.)$1(>)!((!++/8/105/%-)7F'(661*'**'/)4*,t72),$ /=4*&*(.#/-6")70C;%*.:;&9418,,8.'42',4(c/&;-n,#=*4%*1%%06$$1)$+1"-(+*+)$/01$-&P+"-+'=$+41t+=.@))/&),,^")6 )0*+t$22.,0&1%,(#-%&*'(+#/%!/(.#*(+#,$$9#.20!#41/,/4'-,&.4+%'&*%'12!))*6'9/V+243'%,'HBk0*%#)'#0-$54e6,'5E,2,08*$*82,-;R,5--&)/%?+-++F,,,$4(%7',%(*'J#,$+*(3D#17+1* #1,6)*#I;"1:>&.94)-.,%53-*,(J8b'5%%'A!2!""*WUA2',+/$F*/+'90**),.-"+'52:/G=.1+8,<9&)8/#2%8+&+A'/(6$0%%-0=-(+'+,Q*/.(M909.*,10-(L").+8(-9@,=&+E#3%2""0()$0$$^/=%)*--5$%'N8$!*1,0"#'$+ 02-/2&)&;-3,'>/&$/' /0.'+."0m!(EQ'87'+5)>@*)2(,)'+*+40/2=C1i))'$+)(/()%)'F?-*:+*!33.,*&*'$+/'*8%.;(,9$*"+,,)-O/(&00+L(03'*I2&-962)(:$9)1H-/$2$"&4D0K+@*;&V) ,!,#9,)M;%!)'$2/7/-!("/ G9($&''% >+,) !-:""1!+(**3`*(&)2'53("& 1*,%1#!./11&&4) # +-#;(*4'3.$'4&$,#%80/D#&$4#()(1%( '5b)!79#++>+'&,(/ @-.(/0+)/$*%@ 244#@)+#- 816"%)?!96'8%%""--#41* %;$))65#0#(&9:&*&(/-0#-4"%+M,"$/1$5#")6)E* "'/#('$1 *#%#S+%"#5)+;5* 79! ),$2:I8=$4;$++,0=$$F%)*#8I8%&%7#$0'".2')%6P ='!2)#('F-%=)' 0,15***-+(&)8, 6!1/52-"&2P.# 01.#62&.1:!7<&,1?-8>#"+(!42))-*$0'8C-%( $4*)4,5%%,4(#$*+2-$:02E)-,""2.-'0*-:C42%1,!*. ',*R+%(:%%-2(.,>8+..4"(&.1&'+.)+")-%#0(+#*?+/,,10+*-&,/*$/;%2;,,.1\-'-)731*%3'0"/,!)+!+,,&..$05)3G/0"@)+(+/%,90%21#"(6''*0)7%0!07@,-0#0.*'*5%.-590((0#3,.23)(03:,+0*%/%"1:(/# 1-3*,2"24=+(-05&(+-@+(%#()5%+,((%>$-0")/,21/(3-.11(*53-!-<1..+4%(+;#/+((3+)%,-*+3(42,07%%&(1e&11$7*.')-,-4.0&'(,,!')1/)0(%*$(1#2*"*0#.**&&((#"%*./,1,%$''--4-+'),+5*,-,'$$+(4*&).8#2%7%,)21*$8),%-)-6:(2%-(#0&+!++5.75&,%/,*5))/6'/+.&-$*.,,>261$")).$3&1&0'2,4(4=-(%.--'.+++$*(,)A*1+'#)#(5*.-.16(010+0+'(.4*0: 0)+,+,'/6&23+'0,/40,/-0(*1#)*8 ()/B'():*.6,-%'+(',$-(+)&", 5'!,()&'5#3")0/@,'5+!9)4#,48,-,6( 39<1'@)',,%3(6$-,($0+7+738$*><$(7.'%1,)!+&,!%5+&0).'712(%:0-01!&1)$#&%,.2.38(*0"4,11(1$4W40/6"6$+*$*;*.;,>20 &1#$7$(-'/#+/(06)":A$%+-'&09(!5-@0:1#/+2&*7B#2*/36+43-)(+)16&+*T++;3)*H2--'1-,#-5/,$0)3'(>.,(6''-4)(#9!1(4&.#-(7*1,)+(9.#,')(+0'%$)0*#5+$*()>.,,*#>'7#@*)1$(&.*/3+#%91:;3+)%,,1''.5#<+0),8 32'+'K)<)- "623(6(;6,'0#(( 3.0$,5,,* ,((4001,;)$4B.'%4&-(?*(#5"#"3+GA(@!#1K$)4[N*4&O(9QP&//)*(010%1_/&)$6$(7&.4(*/+$-8d4-&,(*1M8/#(;H/$:5(16%=4))51#4D%20!)5,($,30,1QM)M2@)=*)#!$#16B3=.#,-U(5&7K(0$%KF*-/$#B02)"2%=K$Q5!&;#((3+0'7E*0%C(%>)*(%(>0)%./;',"3)./1&4:7.')?1%A1)2+-C(./'"),6#.,9$+3%&6.,&,$$'./&+,M2/%123$"4.W$C+&%#0)Y+-<.$"#-.%+)!,$(0')7.')&'+'#8(&,77&3)--!.(S+"&F/,8-$955+''?1%#-*&1,,)K/(E!)8)+&0/0$$8'4+(8%./(0$,*/5%.2,,9=&&&*+'(0#84/+'"$)'!-'0*)13*2%=E"'=(*'.$9?$.-.+&'5*/,,-/%*2**4&!.,$$,,.+111%.*/+-%%)+9-..()=)1)/*%0-/)/,(,)%,""-&37.$1!(4-!).(1/,)1(++ ,*2'&&&+/6)0&#(3(..&(?110-2%02%)&*$50+&+)(+/)$2Q/.(%,&8*#1,",2*5(40%3*5,):%",22+%+30+,0/%&00/2,&.5).$*+1&$&(/.2-+,*.&335,(%1&'+)('12-$'*'&+,),&2))+(0*0,-+0)-*-')?!)2),'<,*'/+*1(5*/'),3+20&+).#51&0#,'/*8.$(2-.5**.(1/1'*D.0+/!'0'.H!/&4&()1',2'*-95-/)7*,)5+*&$!,*..+)1+*+4302%*'&18+-/.1G.3`,*0+1(0;(5).4!/),)(*+-$)3$)#,+(3>*,-5+'#2-[8%0'=,&-/&#+-08026'&" -4+>"$/2+(90$$*'1***3$.%+.$,0$--,/+# 2'0/1uB)0%)8:%6)1-*8(61):'()(,0,4#/#1%9,''#?'(,!8%) 613,,./+&+0-+2'#'.8*('$().6,"#)T'+12%1%0((-00+% *<.+%-(.18(2!',-0-)$8).2&,*2,7.*3+./+,64(1),%/&+6)+'<).)(%&8%)=/+"%'/=,5/'+4,*%(,+84''%'!8(2)-%1)02)+!)% .''30(&9%05% ,'!"'/&+$#00/A,7$B&U4B$($,'6%/26#%**!'&5,%6I#%"),('-1C#F42,%'+/'$#(B4/":.'!)\+$$/J=*"#( "-h+()5.",*&-4,4(--+(02'T%+-*D:.5&2%"* .AO2'+8,((+'-/,$7&++7.;?$)%-!2+,#*"+!I19=&(*4&%$"!"24-,'+I24.(.+!.k00D'"#94&"#0 C*4W+,9,a)',51?)(*2L +=B/8&+$4(O#4"+$6R.$&+&+ *4/h#3!1*,')/"),E##*10#$*?-&&+'-,/!)X#,;*R#$-?*#":7%&!'&'&<*2',)+/#*G-:/*30)!!*,7&(348,1jH$'*%.%.$$-0(1'0#*#&*,--'6#.14#""'7$(8-",!')3&-*-)%&$., #&/%'#/;(/+=2G0!'29*.)!)8-)2(-3'#8,5' #'3+-.-7)$62,(5/-.44).!-& 2)@$,2*(-/)/35(%00<*66.5-+*#*(=9/+8- $)!,1 0/+#4(-#4%!($:5%)%#*%'#1&%".5%64*+ /$;1 ;0)%-+0()/'5,&8-+++,(5W=$"; ,'0*4"),"6.)'>,,.++3,)(")6+.9),4"3/%+.-(3 04,63#5##.*28,*$0'0),,%%!*+,U)9(7'(1D*6F*&!'>]-, S.0/C2(8.!,.*71)*(-&--*31$=+*'(,&.2#2*2N62I2$$%460Z+,('.2)R)2=*20E)KO+G.#'-(6F(7),&');%7.;',J;)*%>4+),/'R3(,#]"D,7"70%'UI]&*01&L%%)%%).]#,,/5'88((78(5*,RA41-$#4/7HO"."X%(+1$4,T2'0/'*?L(+'$^*)#,7,**>---@R2("#'0/-.%H0+/)+-#&12()$83*.**,(O2-,('%:#2S"^,""V011,($h/,:.K3!+0@, +981-:?%M('*/>1'1+:\*>&4/6,?50)-"+24B(5+*20(5+"$7.$/"*$&2R1(*B*$7F,H)06&'6@-'.,57/,6&+'&3%4-&/&780-4.$)'5+<,.0'7*%6$ %$?6"=2(%4-.$('*(")%4.)).%0;))(!+!&1-&3,(0&%",%*;#/1313/7//%5*('6-4.3*+.,)(6;*&10+627()%.0+*+9, @1!+'(!0%,0.450(& -'5++80)#'0//1,1%3"2'2+')+C3)1*5*"1$62.3($#/.),(&(7f%:#.&5**,'5(+-&)('B+)&-0+(+'"4,*:,,#:,/(&.$%-')6,,,'16+#')(3%*&)),,1)H<9/4,01'1/)($)1&&7*6.;'(.'7,(52*T0+-,%*-*), (--,-11$&4*4+/05&)45#40-.D,231*)$$'%*(),348"(#'$$)*-&0'8E*7)'+/'F12&0 !J'A-"'!-'3&'% 0*8/& )(E$*F"")s-L3).$ .00?%&4=&@.+&9#.).-+'4*5(@';*N'$@;"*(+:43-932/,I#1 %0M#+4-)$ -%49%$)6/0/2&)$-#))+(/7+/85/:0$%3#6/,R`.(R%."65&:--."&??+'+U$"%B#+6'(#!#)/3*"))I-U"'&%YAS+&,&-72%/&.#/%LV[*'+G'1)(%=4*)%*/$'50JEJ,('#3"9".#!'#*TW)-+G,!,#$',(,!+12,\52&&)1,#Y1>%8+1I $*)K7--&+* %"2!6!%;)83*?+$#,+9+EQAE-D1$('D-'9';9$4)<1G&"&.-,&?2%.-&),8%04:$%(5*$%#;0G",3%'%53$+"/EF#10)4* ,&0'&6*%811R+888!%:AB-#1*<.1'- 2:'%04&,))5+'%62&(),-'$*'B(%4)HO*/?'-*")&(2'.1(%(0:5%##),)"3I1D( /GC:($+2/ 6-2,8/'#9';1 (C4"+-"-.-$% !5).<"-""2.+().-2.#(%**;$.@4+$63,.%3(&42).-,/%V)@J,&2 ./"90?;?*!#+-H%#&0#1L,->A8?'/(&(1,#;,52/&-58/"c# .!(+&5-#+#*%+0*'+5.1* (/5$.#4-)2(,=+5*.')$!J6;-"'+A.K,2051;2G++,*%*/11':/?,%.<%*("&.8*5'D->46(:>-,,***f.+0(+U;'=)0*&2&K-h:,&.O%?7'6(D;-."&$*/&03+8+#,8+0.5.,,)39*:(/-%;%&#)-,2&+I/#'''/0)-,&7I(,$*7.$("VR*#!)!+,A+7O.&'3&,-+4+)3*(A*'&!'1'2C*$4!1A$., '04/(@(,&<5",/1'5+/&--//*.+'$33#+7'+,/029T'.(,"83.0,?/(+3O021(:#@*$5"9;6-*%:)5$,;-=''-)*2'*!@%/H"/0)!!*'-'8%',8D*"**64/#,L+(.0.&2##0&,, ?1)"0')(/.->!,8%-"1>&43',*%'B*32##4-&&)M*4$F-@P- 2(.(+&&a0 +3/0&+/26B"262*=)$*&#*N+-E',-%)+(-?O! A.%(*6/4)'($(;:5)2$A3%&8=Q,'22(\+G3.)"3%.''!*1((7'$*-$6H7;%.,0(,8"7P3$$:,3&*3$% 1(&39,"#,'EI$(3"'"%+D4/-&+"+&(0*,:?--F#3#2/3)%.+$;.!41E*02b@+<6&,(1"+<" +.A#$7/1(&&%2+\J771')4G1!.%/(01)**(L""*"0""/,2+,( $.1*4 &.+)-("'*#!-.!(.*3'7'3.0'-( 6-)/B9&"+?($(0$11(43&!81"06/!:G-,$(!,B-*3H.".))!:#;"3&8+B<+30F#'+1)K*/5&):�.I6)(6)/N #%/+6('-0&X*''%"1'J"9#64)?++3"*,35,%&!1&*47&*'FU.>+.B!>$20*>#2)&$,'-03*18$+9?3041%'4+/+(%#-!)%*)B6#!>-#0,I<-SRJ,-*5/'+1/$'')"/34,%'N6/'$"+(0'.'-()-.'+9(7-V'"&"F&-,%@6.+7//=,#9-*(""3+'%.$6:1&U6M\/C$0&0&++%/**/'*2D'&*#012]$+8#'<)E+A-/.()+')-<$,:)*3<),>'>@71)i--13**6+'/)7-1&/?50,.1*,/4.%)&&3/.6"J*1(-$.(32*&-*!/()#))6.",/.&&'&&&(<+"9#2*+9+F**67(.'G)*(*1..#,>'+) +,/%,+!+-5//6,5!&A*+5*(/6))' !''$31953&'-.)1/.1>*+$%%*)#%0','1($&%KC,''(&))-(&#&++%'.+#,",\+%+#*)8,'%*&93;)&&0-.S/&73"+)+%0#/,AM`2.*"9w.)0&74"$? -%07S=-&0'$+#-d0('!A14)',.!11!!,-)JN#')0+6*M/+Z,(%'%-'**'(.' !*G.!/4,.2(=%0#)),*6.('$+/-4&,+)C&'"),S'(&'&I0+,*/.-/4)$!<*-<0:F-1$/'0(2)03+E0*)2,>.12&3%2'10')-"/4>+3($+)&"6.&/)#,B 4.3)/"2$((%/)*' #*&54+2%/.+,/))/*',!-/5+.(()B,//7+41-:4+)**D;'&4-'$.)2-0"'B.%&-# $1."'&*.+E('1*#'79&/*/13(%)4$)'--,43@#0'I"/ +8' <*0)'/4-1(36$,-&5.+(*<62/2&7*%",,-1/%'(/>&- +&*687+12,923,)*,$%.&'$%".20(4).-?$)#*(8&>#2%5&55*80*%,!$3)/'!.$))9-$/+8%",*.,!+/&86$; 1-- *21+8,%*$'!/74$19"(-2+*+().! 5(0+'6=,)(&1'/*#:)D-!*:.)0A)(2+.--4<&.1#/-((#)0$)4%&;,"2%*(#+#2.2,-/3+$*&Q/!<%754*)!-5'&4--,2/'//)*//A40E-2-0)1753+!Ew/+)'"120.V-44+.0)%+)0),1'-0%8-(0F+?5+,&0:+4+!M*&'0J4+*%&%[(%64"+/..#,0')158%%#(=4$,%2/+...%)-:7'09-2/,.(+&5(*:+4.$*+1+(?->3('T#6P+=C)/2E.,;+76',0*-$.C8$&8/**'&.%$02&"++553%,(4'98 .*+9#-/+4 %4805(94-C)#2*)2-3*32$++02)-.,12)&8/?4+,7.-&*#)((#=;,7,-5:A",'')#'1+*( +-#K34+,5&S$00')((*.'=+&'1'/+*+$)")%/#^&218)1+%-+9---%5''72B$(&*(;'94((1"-'$%)+(&2)04".(*()-@%/'+'!/*3(710(&'=!7-3&O$=53"./&*'.830JS''+% "&1"054J,,0,=52#.[*.!8*4<%%$ .y):):,'*'8+:)0$F:'%$("*#''1/10")-)/',@4(-6.$$5)%/0+0!+,+-$+1&1$!:@-.0+&-3%1/,&.(&,%$5+#/*+E)3+($%.'$(+1-,'-%#;(.5+E*/5*%//()%)&)+1!%01&./B,?$C9)+0()$?..&&7),)%+5&+(A).@%..,!-(. 6-(.*(@84/#%('"(%0P&)')5,*&459/*0%0%&3-.,-+04O+(*::#$($.*(#(8#-.),(?,G+4.F3#',,+9?31/4//.,$,-+,K21)8./,24(+.&,;#4-;.+*-7)20#2,).%+&'.'),;4+$%!8**(&-!(',5$-+%'*))+1)32$9*.@)*)+& 0.<$&#(110+0+)#)&'+&/(+/)2/$'/5+&.*+#0)<)/+(01$-*&)3&)0+2%3108**+#''!,(00.(/),.++.6-,+1-(//,14$*G%)&64-52/".))522$7&.$&4$0!*1B0&(/1>).';/(,.(..$%%1-5-)/'&$'1+*:9%+74&(,.//$1----0-((,,/*'I92.1.,.#,,H,.98+(&/($/,$(*(95(.2J802*3$*6%+8)-1='622)%5%.1-3'*/$.%5-5*#)y%2-9!,1#'#,(2/+0+93KO"07-01)-(4,(&..64%1)0W'!,'+C4()5%(/0&7-16(,3%S1A%*!)8(3-!+'0@,89'02*`*G)+)8-&S1#!)014.K(=!7/&&g0*)6LT8$'*=*-;$&!>3P<)#:2)-/-"?*16'$89m+0$-;%'!&5#,)/5J,()%+*-00?'),&&,-+++,20//2.-#,H#"*63R')09"&/30H*6A$@&@14('-N*F--$&((@4+),9-2),($1%'-3&2#-&3>#,9;5/,0:'$-7&=)&&W!/2,/2$"+-$>*3.%0;-+)`2,.(-0'+B-),3%A/&')5)#3.('6,.+5'9*-:%(/2,$<0$1>''(6-)3U5#5+,903/*,61*&*$01+* 3#$+3!2-@'**#))..84#60,-):C,'5.8(D)/$BG.0)*71&&8.7(%5(+2=-),1.&$%((,-1**#-/4'34.././)1'@'*.:.$*#*-#*371-*<)-,(.(H6:3-(060%+&+&&;A(33&.+*!.3',$$2;/%"6( '0-72/1#)*/.6%.&'-,+)#,%,2":(3-**(77!$660'%*%')%"7-%',!01($+#)&/U.-#.$4";-')93'0"-++1*%&+!"0,((8///0%)$#).0+%1**(0&(,%0(#0'%)&$7'/.&$*35%),-. 2"3(%C'*:.(J&!>#''$38(-4 112++2+&/6-<91+*'Z'&$(106!)#/,)&(4&&'4&.7=!1+("$+''(,**)!<+3('F.%G:2(+W'?-;!',,*,F5'$(0$#**,)%4)%) &+,9&/,+#B(-753'$%*&+538#4%-J06. $(2#'*&#+1+!/, '&(+0'$27R-.#;$A.#<&&3.3*$"($3=0A8-L*"%E4--)/#*(%;+#51&/B7"+,$.)!'@&&:".,(6#,=>.7[(3*>,*H@,+&.2.1&3,?+Q(\+-')!+$%,"*A-2A'0C&'G69>$))#&3!,(7;.D+"(0J%* 2#>'G('=&1/$ .%91(2#E,K+)7)%'E+5%1$2'3(*$#1%P)&7(. >:`(+7:.&0+0*"4. /'(-5@)171/,2./!V+(U+!634',/%&/*0(>00d)0+'G?$,,/.*0-)1), 22.9%)(&,'3#=B&3$$0(+();I.+$e/$+##+'+2+4!%%2'*0+,++*)A,*./E 0((($3$+$;%8,'_)$*"(-M',){##+-7G(""!)".+"(;"2 $(&"%(%H!)#);J=!Q*3$4=,<-;3,',(+' --,(/#\'-()&'+&$-"1! -&'&(,V3%,*+*2")'$2,.&t#($'b&%)&)'&8),&$e*G4,"K5'+,D+$%9%660'&%+%%"',-((4,/(0CH,G>)&,2Iy'$*2)!)-)A1.!)*U&$'!9V7(0"+,C?'16,5''((*'9+++-6=!+'&*011*(('4,29,:(+a&$8<4>#!-*&B+J([2 *(*%)#>!A,*'4)$&%.%* )!?*!5 ;K)'!6)/&-/)&0=*'*-($1(-'51,&)( ,'(05-+5+*,/%:")&Za6(%/&.0,2&'$0)<#,+)/*&13%(+6%'K-,%7#C3('/&$/,'# (02 $/0(, 0=7'2+"%-.!t0(K'/+*S *-#$"0(''F"(,#A(,K*>(0P&&e%>P$%$(*%,)%%.(8$&-?(6%)($,*&+''+07!-(37C/03<.<#(5!37&%*+)e/)#(<\3$*('*A'(&45$&3'98+1*-#7+#0*2,)?<4,/""((0+&&)')/1,$.Sm"G,-"/+!1*/,*N"/&3),/,)9&>!C,57/!'XL'.3&/6q< AB)(6.%= %8$/*+/'492'%.-N0$.%B(R)%(&=Z., '6F?'*!!..+;?:#"A;5(5.'<*)++-228I6,&/S,#.$?(8$;84)(44,&)/*0*,&)&,-,;;(<+'5!#$4/-&/T .!-,,3G! $+""2+)"I0!. &#N'/*,(,1%?"*('#(,M"O',7+A1,$5G3$+!.A'(9,'0-*+,%-"!8$3>(.$#3-V%9D:s6 )L ''/..D$93!9;[)-('+?;;/"&29$&$%*#)h'2"7#*23J&")Z'.3&,/-,5@#'%9'8!/!%8-860S6(013$(3.+#1&.+5*O26"Q@,/(+h%&%&*3G59+ "N)#O!!(,/$'*8%@5(&)$?004-3D@],(B!$;47$7'-)"j!&%4328:*04)0#"'/.##"I5$-863@+!%"C7,7'$14-;,)6//216+*!3"/&;'%!'$&1C'%,!,"2+(3* '2('94(6**+1C(4(#5.-,&+1"0(,%(=$+&>;5#/1 #/0/(E"f$/;'-'$&5*&#/)'3+75+*4*F*=/'6'%#$".!1*/5/4:>'3-+(2+#-8/.+,-4"%$$i/)81&'A*!'2(++*&***$'6"$71*2#./#%./'/'-0T/2(22->'"/513.&-2)))#E0/A=,(1DG,*+$('3)0%3%<''+*#;, #0,,-0+6-"+E'+24&3-";&/#+.%7@+(131)&)3*-,G9=9'+22& #(+*27@)@:-/21!) (&'&,#@+$$5-2/1+/,2 0-|74/.!+.*(#"!8'F-- "%J1-!)')12<-&+F'0$$&3F+$F0(FY!)*$@),6")*##2Q1!_'&4D,,05##($(#!/*# D<9%O;*%%2D,"O2-<)G!+<< 4,9p1+??0(B+%5'!=.6-!;N)+(42##@$&0,'*G'':47"(,-2%$.->40"(4 >$$ 4%551F0+ ('2,+'&6411(z6!N&+a&1$=%#%/(#$.*%-(5)&*-06/#-I$B!7)%+F3$+;@=#&-82B-&2'$111*3%<41+5*8'#*./Q0$*%"-(&+.;&26.C@(2,#$1'-#0&=;56*31$/L%&-' 0!')/LU;*$R,(%,#,*j9$5*%&&*;#$I&((+L%$%#"+/O3$ #)&+*Z%0/: #& B$@%C)%6'(('(,./.%66-+!/0,,.,6&3)'$B(*-1&5('-./)!&/$'*)12(8/+)1$0-0"&&<))(#,%29.,++'*-),=1//6.6:2:;,12)*61/)'3/$*'%,**%%7&"(/@05$4'.&$+(-83)8#&1#0.*4271-0,17:,*06(.)2/<3*(2>-&--.0$&"4/.,',*3'*23'&8)'b0,986.-/00$(.20/+21+*..$++D6$/%-02**-,!9/#+,61&+-(0/,(0;/.'*510%*31+'2*4'-& /,17E%+%,0+,5.20-%-+%15+2'%*+0)*+,-/50-/#}0(%1#31*=39j'/*.*..-,)1,:6(5%)/03,7.+2)&2*9/..&-*.25$./+.-)?/3/'.-)218*0+#1$5A)?##4>;1(*,F>8( R'0)&>%(1&!7*.4y2!>(+;/;6!!4'362!a%94>.!('$*&/R=8'# 85*"L$.22A(/.( /?D)61,(#19&*+%&/*6& -&"*-&&=4B631?3_.-#$%5'+-;71Y,1 6"&&4V0a&!f>",9F$0!$$#*=0-/*-#4*)>%1+B,(00%-' '#!#3&2"/(0B&%F#65"#"3t3',(*1G#@Z(,*'7;-1)1#*6!.18G/'++*F%(*;0. %9%=$!<2).&5&2&;>A'_+$3%'(d.#, $!)-'%&1/'+4,"&,6+'C3f*+*6 3N,%,!'9-4'23&+m).")+(+*$.+"<$%'&D&'#L3)-('!%-$(.3(!.,5!./'1/!(9#*%%2$1.2('-21*6/3X84+&/,%&-(198-B(#-*%&("-4.%$%,3#;,-2,401/)'6'*:&F(#'-/00*4-#&)-%'7=+!7)0+&&.!15),-'.*7*3 !+2#*C2+",2./4'/.-$+%0,!',)*! 8.,4,/%3**+'+%'6..,-!!E#3$*.)/!+6))32%&9".&/5$"*0%01185(&,#+"."'$*')*$,130(%'0%*%-:0#2&#&&!+54,'$'+-)+'*3&/(!(&2''((-(%"5/$,-."(,/(%),2%+"4-1*4(.()1$+2',"&6#:+6(1,%/35)*&-%(,*&) %0)$&&7&,+*25',%&)+.6+/()&) %()1*9*$9)"363# +%02223'H#"c!4-)9)#.d%;+)*!.-4"',5*#&4*,,G2%$&;G*+)-2'*G&*(?!&')-+'1([5%A42,$$)*1%$+ &+(&"1i%51$$7%((+#$/('&-$$&2$&0(7//''O%"<9818+1$-5@,0/+&C#3+*)"+0I&+/+-00(>)#(6,(%&3@&())/':/4'7+(2,'GB2&'3'! &)#) C-/"O1%)051+,4>#6%!*.*B1//((.,,13)5DUQ'( / 84*,,0("/'1"2#0#0,9-2"$(+3/--+!#)$,N$(+.5"')<12*,'*6),'#$.(!#0+$"-#!+$8'4..!$'41$&,('H;#(=!.53*+E#(3&$.(*+43,(%237!67#/63&#.%(.,)3*,(V:%:(5+k*-.,%4(.+%2*-1+%,**7./1H)44.23 &+!.-c7?:<%?+.,/.%3'0&0)g1'''",6#*(3,+C.4+*-+/!1(3*?0-+578C,.&0*)*(97)92:/2/-X4#1 U&-7!+21&)"'*)!)':14*7/*'*+EA.!&&.+5'45-@%1/0*B0:)-)C463$5%101-$,:00'*,!/96!?H8&2(/,3B3!41-0=.466"-''#5*/.&!#"/%**(5,&;$%),1,-.&'/;0&-;'`*$)!)%*(-!/?$,-*-/66#+$-&)&$-3#+>(.2/*-+.-%.$C*.>(-+/*026*11(.-->%(03'+.8<,2S0/1A108e*130.<&//&>$ ("+*,+((-*5&(.--*%/,04-2;(1',$629/&)040(A*1,$92-*-.0&-/'#+&1.(-8-)40,0(+-4*,&14.,:84*'1'/+(+210'%0+.4:/1)(++-+9926*)/$3/.,,2%')+%115-($/2('+,;00*(1#3% &.%4)!#(,1- )'5&(8+%,)2+@21%p',3/,K04',$1)).%38$-.,85'/8.6!+)503!6/"()"+&6/**(0:%4*'*)-/1-(7-9)6(0#-_&$5.1/,#,,,9&$+3/3'3*$;42%8.41*-',.$%.*1)/37/3-1(525-6(9#1)+%(%?/')3-8?+'F-1 ( #9(&8*(9'$4*' 0914''(7,M,&*+#1#"&%6-AE"1&(#&.+&)-'(,,+#$T)(A*8)2=(9''##2&W&.-# ?)%+54()(5#%)''-",9),541%&614!#5>)!2+W(/ -/.,<$0'.(&+3++'3(;O@,5"$#/%).*+$0-+-+*)( !2*.!6''',"/:1&!+$+.' ,%5*$07%)/")*=0/#3+% &*"01R)3-#$20,+(405#/,'&# %>?0,7G#"5,.%':)!0"(4R3.3")?0&.42*,%!1)(;*8%,@&'-:/T#&"7+0 (-!(79, !5!<)&&1&&##(?]-,:*(!33/6%"D1"$?*'%,.4!3*-=,(1.61',)3;2*2 2*) G20%0*>""*4(,14/!)2.< 6E1#$(#&.--+ J5 #'9(1+4'&0%@7*!;/7#0!$!!).7$"0* 2)'<*@)#-#'%/#+"65*.6'_/4&<0('&*!:**C/,+( !N8&?/9('%1(+4)'F"4$&06->0'40%#3(!;("/10B1+%%/-%56!.=<0$.&,!(??2%-@(."=(4-!--!.+/' /.# (/2/)&(CD:/*-&-+1&*.#'K*#>55?"'A)./@1*'(m+#9./*<&$,'2&(1)8'*:06),6"./102-'(,+)#+$.#***29%)'&4/-,B*=&'1,3-:+)"0*)/60%.8/10+-,+20%3%'('.+&+( )*2&&9&+2'9/+'/35/-C2%F%*2%4)&,-+4/<5(%$!")779$-4::-%/,&&0175(-7&.32*0V%(&!0%%(+(*-)6 3$)D;+(%/+**+0-1&8/&-.&(3!2./+-$00'*.30&<2/6;)0*$,0+-)36))')%0E0*&(2".)0-)-+*&-+7".-$=')'()%+(443+1*-6)++)'(*(?*#4#(/(+60.'&$0!&2;') A'(E/49""//,*(2)#1,&1610+=#%&+;-=6-6(&2%:@'(*,&.(,*,#3+)-2!-/%/ 3%,'4j01z5^++,@4=+;4(4,1B#+)+1#,4$'&,--),*6"BJ(,7%*)%%0:12$(:%(-4-(!2(<&)0&E(,3--.,)%3!A)&-*) %)-1-%(,)(+)81F0a+)-?$:%,425&$'(+%*$%'6((9)','6/A-*3&;0(.'$,!%422*02%+<*3+,2/*"'+&%(('08!6#&#>4.)! *+'-).!*""+PH!*+-2*/+()7+3(%/4*0+--.%,'<##+*;X-,(53`%#1<( b-#q@7#JA3@.$&0,0.4"*+)>$G,+2#L)&2'( '!'%,h('(&#*'9K'60()-5.A;/;#1$%%#%'&3.43;72!%+&0*40+2!,9(';,,-,+:.*.9$G1H(#+/1%++-#'-#.3594%-+/(+.*/00,,2I4.1&-,--*/&)/4$))*3'!-4'.&,&74(%&(01%1/3"?%(""(+*<*0!)(A1)3,%+*);2 $3 +20,5"($T404.4&0+*+% > &*/*/**B%-1+%/&%<$'+(((40/'44#'%0)-*',1%9*3-?*&-.0"(,5(2/)%/,0-1"(+,(6&)'9//+$*"&0.+(*'/#*#9,*%,.'*)+&(4+)D+,-2/&+&="!)&%+%X6)(*))6,(%,+(&-5)+0'8,,,+'<+;2)7&,4+/%2&),04-@&-(k)$'++*/'4+1&'.1(0(5#;06#*0*97+7720.+4%).;'1$**(-.1%2:/'*-$4/.#,7%'5+,$@0%*-;1&+D',15)$&D'!25G.2=1,+-3&]&,/1,%#4%M'"(+,96B**%%+$+!'@:/@,4)(.@&,14/"I('!.47!&)CI(,"/%($)2' #)Q*3&.:&2#313G$<&2(+1E./'#6,7;D-, B80!'$#1*A",,#9U. 2&/-07!+!7-L%)@',-!)$/)@I.80*=> 1.*-5&)#-3'O&+A$.&//G,=A)!8-"(S,E ?7.7.))71L-*(@4+3+4/()'-1"(-)#*+1!2*+L:<,&:6-.%) $2>U?'*5I#=&*7*3>-1-D(*:9&7%4,)'%$(&!/)$H*()#'+'1/6-/:<)7+.&$1/%N)*1''$).3$610+:62!9U.(6"-&(U<8&#$;*+8,9.,(+07*:(("/)*%:7'.%-*8/.%3,'-/0**0=**&1r(%/ /5.@*),%...0,)03)%->!',.43)91+/1,/(+-.0F..&:-62+=",,%,0=400)(-)(5&-*&,6--+/2.D+3=306*,-01!'(!1.7.-(*;':0()//1),(0.5'**,*%%#4<(3,*'26#/"3-.')?0,'2/=**1(01*14+..'-2/$+3!%$'*&&5 /(+#&2*4#&262)--&'&;2:0(&(.>(+?3---)2)<{+#+2,**,)/8(,5*-%,&8')'0)/&3,9./U,315/)/",00'%)+(-(1)(52(.7-&/55/4"+(5/5.'7,(/)/#"9*&.5.-+.&).#(5(//%C.f11$#.1)4.5/2),[//5/+&.12*3907,&2!*3.*)-62-&-$(4$/303-$"<+**-*)#,(1/-32+,-&/4&5%+6/.372.00(=&+-#))%%,($/.(0(6$'#+.,1$+.'1609.),8//4+6"4+'6-#-+))*1+1&%D.,,7%A+5,1,1+/$+'0@*($*",-$*.$+,3D1+2/2+*%1#FG%#3'/&&63?/%'.)1*/(,*)*)1&0+2(2-&8*/,-1*1"/+o.1'A**++$5-*./..5+7*+"9.)/T2&*)+.+5+%(.&'**1-..!2/9++2%5(0&/&$"6/63*(4%(.4,.,7&B-)>)(A123/0+2"*0",+3I."1*'&6'*E $2*##8'(-7$8++'*.'//!-"*&4))-1D&4,(&43A*36*!((*4* 5*) )A)9/0&55+@A,*--&1'!&)R)?)@::%361C".(2?,# (0!54$2330%!53+#2/2$1.(*.#1>(.%0;:%+C0&903#n!#,$.%2(./&0#*'.'1098501%,<+*1,'.77*64<--")-++,1+16".1**(:()$%&%&3*9+)T,,,9"'18,5&0"2#,,$#',*#E720*):$5"&(+4<)5>031&(C$!&+( (.,G%*+*>77,+'%+$+%)+477#*+.%F - 03)(B+--#&)##8$-8"1%Z'51"1#&L?" !)*$6!&(91;)%1+/&E46H%/9)5/+# J.7'#(1*")=*Q :0,',$0I0.*.(6:'%F(&#"1-+2',",'(5!8+0'108/ S(4?-/4:1%/K= s.5-&3Y+)48'B0.$(8_&#(221)+')$,'(A%+%,l'-+6,#9-#,9.1*'5+C-#)";W:5"+.'5)/),#)511:8#%/)'&40(#<*:(2#6,#;.AC*$4!)/?%$3&2@>)2%$$-+7*<$)%+A%C*"#M'*,<*0*1%8='4H)3F%A31*<7%3'5)1&,/30#(#+,.)+)0*).%)0*+/*$2'25(44-5%%2:*4"0.>"%H/*'M&h%"$0+*)E/0*7%0)#7!&591'6$%- K-1P2200%'9.(:Q:*V.%82,$+'"-+(04$'#&.#>5 &9"*9*.$(#$!/8-++/?,*(&%W=*32'27"9!&("6725$F:+*.%,&'2#*DO0!(7.'-()-006-714*+69)/ 9*6+53-3''.0$-3,(.+'-=,(0(&+3/:),.+(%%+'%3&$F(,I00((((+!%&'.(2)70/(/@(-,"*,*2A-**-1-;$%136/&-%*/9%'2#87, #<0,,,.M**.(4*6?"/+',0&$(38*6,),$)$-),3%''.= >(: &@i5,&9(>R1*,.*?&31<.,8/)&"1(-(E*+.,!3' +),#(,36+>/(-::*+:#&.-"R5'(%+0++))$9('$10'22"A)+315 $#0/(&4+&(*+/2"39(&*+-*3(1)1'.)"$2)7..),.C,4&<30=1-2+8-1"C72(*(8;00+4.8-&J036332#.#1.5/.%8"4*('(11/1),7()=)&/')&*#*3-'72)-*3.$!:&1(&6/#*&#!)6.&8(&-%155.+*/3!D44&10$0-%4*)&,,, 19&8*'+*,99! 3')+3-//8"+$-,(3=,.7.$%+&)3'+*1@E&7,"7(0<++5!-)"#3R41.%' *'..11().9-"L3.-.3%?8)$&:*3P-2(%@ ;6"*3>?$!$%4#',-#..'#2/730'$!58$4&(-,"8"$1'$,-5(5+2""(0+D.6<-;,2!3/*&2#/'&$.07&#U"+,-!!*4!(',&$:'$0")C-$012&*M)-,)!8*$+.#%,50)22+*-,/&?%&6&39&7&-+>7"428%1#%*.**#)0 P%*2)+""(3+%'2'+*,*)&!+)(($$,*%!(#2*0*:+)%:(%,%1+C-7&#& 9#%&.-2)-,.3*!"4:+!'13)/-&-;79!*&)%006'#,3#&*2"6,)*12%;/0./',/$%,.(,'#(7',0-%)%"",4)'$)1)*)*%++ *#,5)/"4 "/.(*.. &-'")$'6-3+##31)/-,+*%.?:"=$+3-.;*%+)+5-)$8$.").(/'(/.&85"??'#"%.'5% /():/>(-1"!-&$-$#&-#$/%*/1%'4)*)$01)'&.#%=89##-*).*$0>($"'"$"%&'2>,&$8-&41,%,#8$$#"!24(#3)3/5'+. !+.-%+&$>+()1,$%%'6-+%"'>$0(,"#'#%!5,)-'!+*22,+2,+&&@3-!34*'.*'.9/).1$).2'+,$*52.31('412%%)%+',$0.2?(3.3'C1.'.=&9+'A*.6/&C"%#/-'#$A,/54!+)(,13)04=:&%=!60,+((461-,(**+(*3'5'/*+**&#+4.. C$1;,2$%+','2(+6..++,#'2/",*.+.(7(/=!)5)!/#5+(//&()*'/1N#%+//A&(1<8*.5+/$+20,4))$>')(%F3$&*,H+5*$; /$50-,"/-2541$&3/4'151%-'*.54'0&.&+4'&03%.2,0(++)<)$+9$'/*0'+33&00)D-).0."-7'$.,+223'.2/(%'+-,' C*6+=*,93,710-*%%1$/0).1+>)7*/00&()1+&,*-1+5-%"$&/+++)(,#)4.,2""06I34))(+*!$))2,",S5%,'('4>+0)0%K,*D*&'8.1,6&/"3I.17&!-&7H*H&*2'-"/)(##:)')'2)@++=8,)+&%"3+#C#=7C%-2 '&#(.-(&' ^'+0/:0+'N(!")**.7'$'08""&%603-1-***&&#,"#&!)&O(2A0%A%/.(B!(&&.*9]*=%>,<(&%$F&+///+%%)"-0(6(]#%&$39NK.#=B-4/6=-.*5%)b@+&/)+X.+%)%+%($.72.$3&[87*%D% *%'):-#17-&1G$3()*,'40/+-3&2"-2-%1;.-;70*e)' $#0-&FVC&. (3I>M-#6*(,5D&1%.('%!(+O+&.'13%*13.*B/D'6)/%$8/.)8/';1+%PI. ,%0+*#&')30Z#./"2'"*,+9**(=D*/*(2.(+55&4"(+*#T.$1"#&.1#-/4($.<06"7'9(#.#0',#)*b%0# :'(!$-(,3/*5##-&$%+%61"5, (#.'&#+-''&+.+"/)*.2<%!$194+%/#".!74,),653#30(%-U/-0$(--0/2((-($%.!) K(.'()*)')617"12+&,.8')+2&)S0>%)$1-#2+,.,!5+-8"A3&8/#!1 *(<")%.'()()*)-&$&5(!&-&-,("'.1)- C<04/3$*-+3./*./$#) )/81-'4%'*--'159C%*4+.!"271>>*5.0-G7&1+#,>6:#/.50&311;">&-2$+#&/&2(/,'*3))(8$= *),!'7%%>)%#&+%'d$,7+5)-%!.'5?A+2., E'1*##8< ,%"#@"4K("-# #!6':%+6*,%%.%(1 0n)?.3/*/.3-),:="J+%3?.*%6#%(()A.'0(97"(&2(*&0'"++%="'B>*+.-75#0%*"0.&5,1%')47g,*)1)"1)*1@'$%52)(.C-!G.&'**4,/:'45(<)5+'0%$&+(%%$$9%").4(!#)0?&@ '.%-"40.;3&*#H<%*(4"=)"D$##0,%O,X"*$(83%*7"/&!,)9*2/(;&%$7$0%9(+,>:<,)7')5'$*$11>0-*-1*0]((81$W*.($#E -%9#"()%T#8$('7)$,'*%&.*08(()1/,0-,%9)4&.,##:(5&# , &)))/S&%,,@7/2,&#.$*)##)/-$(#(B#'D"9*.#31.& 9#,-,-#*4/05$$;:.4-43-,*)$99)4(%$E%:&*1)2#194,*-%'%,+A0+7(6!%$<$/,0613(>)2+2(.!/(&=&)71+*2('"'7H'.*)*',-$>((+,<)4-&*@++.-1('"5%..2*0/!-&%24,%%Y,$,0&'4,&#$7**)/)&=74,'(,/,&+3+--0.$$*A1+)F)+#A*06%+0(.,(0,'%+'C(-")1$3(0-",,2,=.)*/+2/'-%(01/-*)/)-:8#=6*4*,0,-*@&*-+(,)37,'+;4..=.++5?C1.*+)2&31')/./+.#6-:38)2=+4)/'<34?(.5,++*)*&/&*;*'/'62''.(%,42++//$39.#01<4+3/'*&)0022(:+124'/$,)-$,27&006,0:!8).1/3:,0+0(+(2-06:!5,2++@8((414(.742.&!..3/K&1./2,0-./2)39)&+'*;+-%7#+*@%)2452*,.)-9/(2)5&):5+3/1.-(1+'*,+*%2:25'2/28'0+3&A*+)5.<6$*)1.6+60"+,7%'6@&1+1,&/-.19"' 3;?71)%.)'+4)j/'0/!,/,&1/('3+*(*6*/)3*+4*;1D((060*'46/%+ (@/$*'#$,$02.)1'"#/."A+*42/-9',+-2$!$+.%.I#AA%17),0.&O*/(A:)*&/-+*2( ,!*41-=%;091+-1:]!$,+4,-+%45.+!24J'0 %9-1()2('7)-8,>,<:+Q$0)".*.j(.,;-)3F$,(]0:8/'*-''(.((..*)>+-.)%%!;5 %F- -#7,"Z')B*7>9$0A1(-+(10)62D6,)/(&,;)')%7-c'1*/&$*,/*16-(*9650-* ..+2%@1#0&&8%85G'1"*E$ *-;7=o<31/2$6.)/L0!(G/-./.7)%&(8+3941K;5+36-6#+,.($0*07%&,A*$3*712!'3.O5*),1/'(-,+)-+!= 53&+'9*/)+ (,!:(&6")!-D$3',f'),-([H7'1*(:,*+05#E,&*/*$4,"0#-+%0&-*)))!+/&5.,&36-*6+,*'#,89**+E+O331++5-/++9F/9#N);:-"-) '+(=1#&*%&I%"9('+4.4;)T."0)/%,Z$B!5)+*&%613$)*.4.>(-(81*/'(F$$ I+#a(,1***/).%#G.*0)+C%/,'545$%:3)++&'(26)&4&3:&,0S'O-C=(,+20),,6.&--*;!0D+0&'K.+,,,4)%?61()@-!$IF4=>%1(@-)('0'*;Q-+25,*31-+F:*1$,5,&'A')&2$@,(M&&%+*&''ME1'$8,&-,( 86-&#)4=6/)*&'%&(+(4+)-.1:%?')&/,G)P'+3'" "$(%#&!!(#,%%$,% $,)&&"'#$$*)$%(*#%%#$)$!!$#5,!'&!*'$"5 ."++*($""(#*"*,$$'.!#!, %"$)4!,'("-$+"',$*%'--/&.*!+ '/"%%,!#!%'&++-"(%+))(+0 "$!'$(-%*&$+-"!%%#&))-*,#'&%#+(,-  !#!/*!!''()$-*$'(&)'(2)&**/)5),#'*+##'*)0(%1$,,%$((,..#1+*&%-2"$ ($#(")*)*" &$%''(!#!$%-#(!$*$,#. &%"*% -+6-E8,#/,.+-.19=3+)<%*+6!%5')y)50+4-&!0#%3-'$%;0)-'0*-J!7+%0L+#'%'*H+/-**.#:=(+!<3(D-.+.(4&">#3:%('3,01(+6)$-./""5'#.'.))*'"(/%,'4.#)6%E-1%9.)6D+16(2C;-&-0W?7/*)"&&60*+(2 #6(9M.+&.'J1+3':.'9-@-7,),#,)C %8#:+24 >)<#A"- ?@,.E'8%++/'#("/.'0#62,F,+/>'12'%),>$"5.'%1):6(-$$ 6-,$%4"6#$&!0)$+#;1A>-23%#54F4"*-)7009+@0,58+8F&@%;=#1)'+&6383%(+#,+9#".G-0<)(0&) 2 2('%.A6K3+"8+,&-'(3-%)'*@&42!)d//1'H2$030J$,9)$(185.,9,)-9:6#,5?(1:6,*0+#('0J2&)-35)57+')$+%%,/5-/%1&:@6)):(2211+5( .*)F*1)*0"18+0/*/I.(7,&A&*.-*6CM#$,&)*6*&6%%. #5/3/28*637&.WD)(E.D4O.,6\-/%:((.# '0)A).47&7)*QG8:.($/&/$!<%,/+%.T.,5&-+/563/$>-(-%)*&&4((?,&/,/5%:@4+<*4,-+2),1*4'861,.2()0@',#6/53&1*1+3)%+)7+&)&7&)3-)4+(#!1*20,- /!5/'0-1.,,/1(*2&.>.+*)"' 21-(0-/''*6/3)),,9-3-%$%$'=20%01,.(**+6-*1%-*'/'-#!9+(3+/.6326+*)&(&.*<))$).$%4-)36"3,5%,4%9+15&!#'.-*'/,) )%3-01+,/5/5.(,/7-.(/%''$+C+-4/'7/.+Y2#'++*284,*2$& =50+<.1)5!57+<'3(723'3$(.)<)%-&*-308,*2**',*+)./'")3*6%(4'<**321,4.7&+,#'+)6%(!(2+/0-0'*6&)%-'*7,.;)&)/6-0$*%2.1&/-*$(+-/4'/#/"/=/8)3E,/e&#+)), *.*&,f(,.%(1)*",21"%%*-+-'D0,'/+[#%33"+70+>#4-!82(2/'/#0->&2#5Q$5#.%3%!+!+"&%6(2'#.$*/(5*02+/6 -d40+.$11&b:++%!#%?,%$3"-94M##*,#7$(#.s*&t(-+5/'2'.CW7f'*Tm5,%1N$./((&&))$4%,(*/b# 4$9#S;&"&w(%*,..+'k!%(W5+E"$I,*$".3.9(+!8*(^*6'.&)*A4N+4(M(90)5'*,4.9+//%*7)$%"7<+12,33(N-(!4/-.'*!*F"&*,.!0D6+7(2.240C.64)+*.=8/3)2-'.-$705,5'2/24515>2.31)*--'+ +'/&-+*2+)7$&>*0**'**+<1: ;2.<'./0&=-.62&+$'2&)-%8)%"7E(&+@($.%+)(.#6*5)1&%1'?&%+2+(/&!#&77>36--G&8+/%,'1!(-#,.24+5(,.)/%/(% %%):- %:1+;.09+"%.:*+.7%'#*Q(55/5-/.*/*<+*:<#4>%+"#1/*+7.$'(+$ *(.%*%4('( )A'i(,#$"0"*923M*)5+&+0$5)%(+:%##15$OG++(,'1/)8Z=-'.;((/6$!4(0$+6%/)1D(5"%**4."%,8#&0,%*$@*0'6&4-&)*9/0(7')(53)&,@2-42'1&,:1()Pj$&:<3('3;'/1"61!-,9-'&--0+!'(%58$=6-7?*&0".&(%,?80&#$%5"3,<.2("2''&!2%(0.?&00V7+..'1,),7#%'',).*&*&86+/2.*#*M ,1.4+-512)%''%,34*&40)9C($B22EJ)$'G92A0..&&//-*4(7))783$-;+-&&8&-"23#8,$=-5-)#+'6+$808*(',,7&)0;/&)+(+(-,3/9!)41-*),*+,*;325+3.)+#&6.%8.%&1:2!&)5A'.%/(%5-(,1#.30*C,N"($$,(3$(.4**4.,5#2''2*P3*867.%-).6/- -0)7?*#+!7<(*&&+'+/+<7%5'!0:.+%2"+1**'!0+4G-4.0(%/%.('$$*(?1.+<+,'-0,$%8"*,$)'?&*2&*l'*3--'&&-#%-'''"$( *)R*%' 9?)/W'J-&*.2+^"*('3=bE%9.'>)'2-'+1#&2/0./+3&O&B).#?9_##>,L3=K/E)-'M'-C//)/-1##!'*'( +0$*>*3eX&-017&.- ".Q$:'15^ 0.82#.'(8!:)"16-B>0()?(1,2U49H'3.5!(1*/0/)+#,0.(#'(1?1-,#0'0+.->`(#>)/ ,C66,Vf,5(D16':&,2-,,-2%'%&/;1. 81/2@%*+)&"5&&".0]*,-6?'))::D3"'-^-$5$'N'/6Q* $:/$/'6*2"%,717*V%':1+)0&)XD%)9%30+-L0/Z0K/-*$^,%.%#+%,$23-2+16-/$2(5%*%5:5*1>*;9-(($E"#26.!C(*)"*31.D(1)&&%0!-,65)4'(1.*8#&(!)>*,,=)+9!uC-#"5'''#/C'#/./%3+461. #+,8&-"%)'-1.7(G!'22$0*/(&>!&I*3:@&16(&5&)*.+(03--03!Y!7'112,)"&0/(/,0!( )'1C1+(;&;,5*,=%>$V0+..18:B'*7#'62+*1-3+4 P=<$&:."@).C$)#""@!&'&(R&41*()*0C%-:!7)!.9$/+.504!#7G$&-($5*$*$+9.'5)#2,C#'+$6##3.A##m,3-&/+4?S0",2.0:,/"&7.3%1,?%+".0-!(0+@&'6/3'">)+7<(6.#/ -)/#$),/'"4#'+,>I)-(($.%:013"36&2*i9C(""'A@4^[=I.1<0-8*F$!*5!!#!(('!1"7:(*(-8&/*/.-109*.0(X!%/?*)(%$#F$>#62/$*0$:.'$$--04(7* (R&%*-30'=+73/2+(4/1.,71:&9*$K '%+!7/98%.$T0+3-6&1/(1'K7311&!/0'*+.(:"k-"A++']E)/&(.%-/'*#DA6B:!-((e/6.!?+"$."+&[&(O8)'-761A2 32&='"Q'("?(5 <*-/ +$$&: ,%62'(2ad% .=1)+$*$*"./k-%<8-U ($%:+(3":&883,'*+C%!6'+',#0&)0I, "/+D)$J5a+(-=*$)'.=$0<'-#*-/, .,EH>00'0-++,.105-.*4*.+("(+$-/$+)('&:'/(:*).>,#)#,,&(&,=-0(/+"(0)*)-))'//*)('05).M+92),2(')1.(%)22),*(%)(=$),"'30C*//(*&'4(6%;"-)*6"%/-0'*%+08$.B.-*'8"42.(*0(<*#5.$4,**532)*%("/1%$',"6++'*'<64'9,+*&:.&&/$)))'.'"-()!)/-J27$%+7,:)*-8+2.(*&,;.22-+,/'3.)+ 6.*&+9**-$/-6&/,.2!-',+2+0".(62)(<,?,...)0"y5,/;&,5+38*8.1,+003':+2-3'<;#(,0):01+(-%+/$2"*+250#"/3#-%$*/2'.%,2!$)1*11+-!%+q+4,,4(!,"'-*3,*+#%(6!+.;&-'4.31&-+&=+7'+$)*.21%./+*)124-&."6a0,/:(1.--+$3)+*'1*/:,)''+,*-#,&+7'5$)S:4+,+$..>&'%',,4$*&&+*39*0%0>#/./4%&%(F,17"*&%$8(@'&7'(#,660.)(,)%-'(-0*-)3*2$&++1///-%(.,-1A/+$C35-(/*(-/+").3(,39+./,+-1114.)0",6&(*)+2**,*.(0100360$*,5/6;%,--%;(*-)'55(7,,**"1.+,1#($,+37!!)'.(&"/*%5/"0$'%,.$/2/-&65(/<2+"7.)2-):02((/9/>90*28$*-13,31$.#*'++('$)0&)!0*-3*-/*:*,*+73)6-6%(3-*1/).0.*4)N!//(&"+%"20#P(Z-#U'$351*?((<12-<#1*.7!)*(%%'4##(1:%R&*.*G%)-+/*#.2$/(1"3-7.""9/#$1H+-6'"%'<*+(9''"=**0C#4#4/$1+>.-?'$&-,&"%-2#)'# /A<0)'/.'''%(*6!F 36,'3$'+A,(5;/% q!-'+&0( 91%;,-A3#>E (0$'!.1)!)" K$+7c5#2/D"+-,49*+e-n)+)J% *l#1)1#'A&&T*&3'1249=)'>(&-"(U#"4#.'&.1,3.*0,$(#!!-F.&*-2(O=%,%-4$,,+ ..A5-#:>22%8a-)#$7/X"+ &<*!(*D6()!#%#+'&D'4+'"&0-&&$, *4 1:+1-.(6J,2,!)1@%-&%+0&-B6"4'Q%+-''*4R(!**&)-2*A-#47.'.h4B%*(.(-)37.&-806!71.".32=2*-+>+$11&/'#'102%4),%*(2+4$&+*3,!*$12C0.$:5(9\$!04&&*5&C36:#4$083(*2+6!+)=0)&%%//+(#.%'"7619*%"04&.5.,*.54+>'0"=6/)('$'0GD&'-*&)&A*32=,"."2(#(&&051D0)&+1-70'7)1*3476')('"$*1&-%(-,43264'-v%0%8-&!&:'"",),)())&+2.'+#5,A;1'-9(())%1*H))*.DH"-517@+0(,D&',/,J.*9,4+54=6<.#+;,3!&.*/(3+*#*.-%/(+$--6$35-1&()54E1 K('*1%!#*; 0,'(:5/J1"%<.++3'1O"40%.'- + (6.#&. #95%(.*(2!*#6*!,&#)C&&"2'/&9- :/B=&6,:(!1''-/)*41-/0"6#&&@0+)-784/W3"3<&+)G#I35743A5.0-&3'L*8,)&(%&,$+32*>.441))8/11408%& ,/!@/ 93P,C.&(*=;"2""+%5O&0/5006-0/H)$'@-%%+/&-% & ",<).(:&--=)C(2*6%#2//#K;/*/-,73m6&0+13-.,:898C)(AK '9/-63&#(1*4><(a7011%+%:'0?!2!(12,;:,0' <1' 1%63:,O16,'iM!'-N$24I-2+0,/0$)45+!A/( -'+)W<@3>7I+8*"7:%42<(89"=*1/<'',1*)'2(*3)+-*50+-+2#5-(-,,+'%+8)20/;+72 ,/0#"4E.#.*%(7..-25($6!/'+1%:+'45)&-F4-A<***-/,'()-0%009$/!4())5172(-/1)8-/.-+/:.*>4;9'22-/:m99/*4$+%2.)&0,.*0(,2"5*($-$O.08**91+3*/*,-)2+8&D39/ )/4+*&/&1%",0$*/)&42)1O.&,(*,&0%+#/#+'%0&+B%00$('=(/(33+.2+1/*((,"80(+7),,EA*(>,*50%)-&*--#&-0?.$,/7&-/'! -/.//'U)'*0&+*), %++&,'""%9)!0- =: +4N*6/$=&.2&'-('K(:&., +/-5./)+&1*7+/($+F[-3/(''**9(''-(2)&%1G(/+)#'(*!%7/%;-*+.-+'0)#-4%)-)5?.5.#!(0&*!4E))) (/).0)0*0(;1')(52W26*)%0(-5,-!.24&&*)7,.@:03)%#3.1(5+32J*&-/#/(M<5- ,&+$0,!&d='(!'(1--((++'1-=4<)*4"<4)A%5$B:7R/*&16+.*(&&4M5(:)2&*--/,B#.-'(3%*$$E/'$$'($+$2'0(?/9-52'22#(*%%-.++/+&4*.3!'11$#.1B-'4,41,1'8,-/(50#0$#%?0&/(&4:&%%*.-/)..-16$5(2%3-#-30%( +4.F+%3 6!)4/(#'7&*3+(1%%)+&+63=)/!(&B/*%&5"(8.0S.%27/Z#,,#,"-5,'*6',E(&;))()5*$$&0)+2'.0,=%&627'%*+ -&,1C+*%0%.'- 3'20&&63I,?&:.%0.,)'>2-%/%&,8.'!,P+&<2.F5, X%8/)1-,9)0'?2(-*C(&5--<,)"(6%=G)/<9.,5.8#'1/'(#*/B(D.$'04-;(;21%%2,'/I2.*(:&()$$.15/,,4+3)*4'277-5#0(2'8,;208+% /&1()4%B.'=*4;1/3+%!-)2*#/)K.8#//%2":69").. /8+2$,.,/#&:1*(.@$'(-)).,-$/,/:.%-,+;+-4!0'+54+A9]+=0$/&5$--)( )5.+.%./3*1+3:5+&),"*&':=(8&2 ''#++(+*#*'&'.(8)#-)%%)2+L*+*.'-)=*.).06- -.)'8/3&(*2+5'1/)!1!.2&*.-,/,4(/328//)&-B&3-+.5+)56%&+&(%8(81<)&%+)&)%.,*-,+2$*%,$$)a(+,)M3).2.*2-$&D'00H+2$3-'.'//(C,',%#1,%/5!9(-6,&7+1I(+/3')#2?,.';"20.+&-$.3*!--(*);-1!(:,'/)-'-$-&5(-.3&(,+3(J)+1(5-0-//>*+.O5;/**'&$+;)<.*&,&0+$.',%.!':2).+(*.>%/#-+(3&**)3&4V'(5/I&3%-*026&-+,(("G'-#+(',$$$)7&(,#$(4/,*&,+/5)%2/')3-+*0)#*+&..$8-@,$',+5.21$-'$0?2&,/>2')-&34$.' .,"',23)C:0$-*@8&/_9/=((4%@,1/(#=#?-!0(.7/0-6%'01',6&0+=.G8@N@:%Q?#(00"200(/)%;(/<-*'#'4//@$11*2+9K0(7$-,2D=/,'('%#<$0=-T(8.('702E+$&)B#1'.8,+),&%+))).J"$'4/0><&%!Q;22CB/)*.>-)-D%+25(*9E53,(5;B:9&%(<+((0+)*M"&!/0,**,5)7$,$)+,0)$$>F )+!0.;("C/+')%(+&0# 3!R*&1%1!9'#)#.)"25;7;'"4.-1*"4&*4:,-&5$:5:#H.)?,-K,%&*&1#%$,4.6*0(,%:&&#"&>71),//2(C+%'>4!(--5DE%0+4,0/%')03"35A,5*-.69*'(1+,8&(&;J(-2381+"#*14'S7%+'z!1**/31&$$;(.246&e17)5*+/0+%)13.+&* (1-?:05A-*.-!/,+&8/;*%%*.0+'8*1:3$' /0.#&)"A@%/%5+'(%($0.*++06%%6%&3$)m*8$( +3(3*"2,05&/0/)4"1((+:-3%302&'06P-':!7( 14F.++.2-))72."$,-')$1&,1!,!*0$9*&(=,*,0",#10a!=98)5/<,P)124",$.i(:*%-)S)35*'"/%'%'66.#1&-,.",6):)(6(((.(.25614.&$'*8$103.j'*%%)4)&&4-(#4,&#J3>%27021>.+4'./'B%**,.((7*%+,"#*.&+".0&3&-+.0+55[0%-41/("+&-"7/,),/.83<.%$,38+,',=*4+,..2?+6,,-,-9>/A8.-/+99+.5+=/90)0".$0$;'+29.4*(+.& C.9<'&';875*6&*$+1"(:+)%3,(7,+<&1S&!)W(.3, '70"&3*D..( -3400;@/.(,(101$*-"J4+#-/.,/3(1./>+0$9(/'A),&.-)/+P+&083-+61)+%5)2?,40&:6$,$-(-,-(7-=51.&=*<20+6$.'*.,%&&3+0(,$?'&0+E.'4(.'./3=$(-2&%',7+0,%/5'79*2%).36;-11+,$/.(27'4/1,(,.'7'&851;4#(#00+-)-7*#2& ;>/3#063?3*.1/'! -,/(,--7/*2/*+&%-75'&,('")/*3$6=)("5!$(%5*+/.4"?',/'45'&-"=2)(3*/#/:1,'+-#./'B)C0470"@1%-4'(-=7222,O$ 0.&/%3#,--'*00#(*'70($4+#'$+(<.1)-*3'#.'+*"%#"*($'05#2("2!&(<#.Z!3,//"'0():7)(*,%,&8-&<%() 38.48*)2*-6&/),-!6, <#14"$**#2=,((:';L/=2N+/?=*#.4(/3">!+W3(/,&("7,**4(8(/0(+"/.';+.!#,3%,%%2/2*)4/11-+$)/)6&!1%4-.*-,20$6&.4,3',*2*)6%2'.)-07',<8:3;947+1+.' -,'!%9)) )4%1?(*2" )13166!*/./-"$&/+".09+T+):1/*)U,&8*2!/$).-4$252).(0++*2"+:-B)2***01=3)81.5*5%4(0%./)2+;&%%-)/&.4&056+-8./)+(/+/0(,('+'&+,15#)#)$333/(&/(,%0+)*'*%;#+/.65*&*2'*3/*;'*#*1++*<'/%-*L3'.5-#-+#/9:('10%$.!1?p(-*1 "25)'$+-54M')68,!4!7,6"!+'% /P!,&5)"&&=5#&Q3&,($.!+#1814&/.*'550M+.1,+/$"***&-'(( )6.T%,D*(/,<'#)05+%;%3)((4'/%$&%@,* ')%0"04(6//#4>(+:X*:&!*4/&:%($ 6(7&+2+5"*1&1$%.".!&1637.'4>)6(1<.@38*7/1%!#(%+#5"47(...@3-0,*/$:-&''1.2*)*('/;.((',E)0>$13$ %/ %"7,)7DA9.%/'-.(**;$326&"(5:+/.:3+61%-$=(// /;)+/%3"LF%(3',318$<-2*'+08.4+!(-4,*9)32%&)@.'&82000%0)-.,#6O(6%*%%&)-/8]1%,34$ :/)2-&55,-%$6$ 5,/'!&205: %A+9$45+&.()(71X%>),8.=)(-%$.2"/&#))&5-(&&B1&#))+-()7'+/'/733;%)-(+=$/$#4/!3/50D%2159d:%'31-08))$-E".5! F(- %7296#$#&92 c%$5)%4C.+11@ 3.#+0$.7&&,&M0:#!0;0,)-8,&LQ*(*",*$C%$'./.,%3&#.-(<& E*10%8-/.,2) )k*.&6)%%Y2,03)?3>%$7'+*%F:&11"#,A0$4(8(+>%50*(/4"D'1*>33#1#'/ /*+7'11O`8$('"12*).4=&'.""%-"08 /I2(V(C9(9(7.+\V/-)K',3,1,#>*.43*0%/8/&,^))="I"3(.3,2!*'!0%,- *--)8&#$/05,(&8*5-(0$$ !+,$1#6-+.1.)91%%&8-9-"K1#5CFK#;+@"/()/-+"6?1+246.<(-0-W)A0T%'#0@=48#A75='5111%K #'L,.*+<%F/$-.#"'#'+$+ ,4)*)5++$"2)-%-5#38G&6'/.20&.+1.)'$,*.,51% &R@'!(/+/,?3!(.#$%. 74*=5(<%29=#JJ),4"%-$'&-$B5**$0( .(&*2(11*-+2).&&,A"6:$,(1(83(2M/<3%'0"*+&.1+9',#2-,0 264('%&,-31,DG'3/'-/.*'%7*'&4-102(&+(s% *2O+1E*%@:5*/1.,%4,$3+<62.=2',#0t+,--<07.1,(+6&7(W.7&&/0&*:.(/.1#+=*%/06+5(2"$&:,)6$+$/,*,."+/>?$-6*/9&-2+8-+,4#*1<*2&094+,%'-+5"*.:($?0,1*-,3+#]8%))'>*($0*4..(;2&- 2)5%*0*"*&&<*6'$*8"")6,.=-(1+&/#/'6$(/,)4#($ *9=8'"+-%04M&'(^43,2+'&3$&+g(2+%"*,%$:9'/'*3&1),3+2(1%))% >.$4.: *6$P,+#--2*.*(-%-*++((:4-4%&:7( &A'12($&/.+#/*#.,).#)8,-F/%-($'+%'4,&&.-*'"13#- :&B80-"&(*9)/&&%6,1!-/'(:/T8<*#%(0+0(5/0-,1-+'30,'>3W%4Y.S,)!8&)ZQ#''"*%# %*$.-&2''#.+-,37**%A&-E(/,@&"/@&#/28"+(&$/+V*7&..31+/&+.+) ='*/-,0&464@"c#4-& V0),"*?!"86'%+,'5+9661*',#4#\$1$,*$%.0,%%%+.\,%='>11UAI%J8*)05'*,..+/(-2:%/.0)9/$#1&)/)4*-)- \?1D*'B7500)*+/C=*)L1(-@3Z,,)8K6*\*561!+.3"+&62))"'5.)+,)9-)Q/&18!+/ 63r.>(QQ071%@0%&162,&(.$&<37#*I"2<*44*+HIL13'/*H%'$2,V))1/1.'/0&#&/,.68HF/5/01#153%+5#F&0:;(,* *Y=(*-$*2(25)33)'%+$)*)I$2_L416#'&$/09F9*/..42+D1#*-#1()10++,:$&"G:.&.)5%(&*6- A-,+ 0,+.5'2;:;-.,2" .-0&"$##52$(++#,7/0+7 *8*=%5n61!&(:"1+&&>45G ( $$**07++-6 6*)*,c2,#a6I!,K$,0- ,9%*&]F')<4'4$2B+(*/)4:22'-#5)+ )7'5,&5(.+)!&,:-))-.<-*-.38$'&=D'#' 5,<2$,3")541+&*-+.')S-#5F,1('*-/ 2.8?+$!$+C1.1'.('+$22,"7+551D,#&#'512/!/;: *!6B"!G$,*+(<$)+:7*<>*)2>>-2%/*)+M-*#& ."+-$%,(8$6-""A& #$+C4!&,%7,L:/ 7%((.4".%56),,+#.5*",) 75,PD*6$&6%0705".&.?0!"*75/+$!,!%)+;0%$$%82// +&>2D.h%37<$-H)-8&>D%-1q/"#,"(W"&,*0)*)%%),%!7!, !%#$&$=Y.)140+&(H*!,G-%8&.,-)M*A1"%(/'E..5(2@6$312,0,+4,C+*&,8#'*)5##9$%%.93*4()1&-8),+$0-8/ (0$&(&<*M05+4(M'!3-20.!V%$.&31*%$#2?&,*1,6G:&2:w$-+7%/*-(,,;.F/&P,%3S4#*)-2+)"P+0*%(7&/-)1%)3&2z+,$+4j#,+84.31>15+--0($(#+0)&'1%-%!)**607'4*%.;8/#:14+!-<+.7'F45%I2)+-846*'-/.8H)'2*/-)"(15,,,,&-1+)4)$#%2.,./<&+5-(*9*0J*%(<)1&>"&<*.3*85&00+G9#'3(5.3.&E,1-+&0V(0#81).*$(',)11'.0'%$@+&K/(;1%8*&.,.*,E-+>))/3+/.#-TE'"S.*,(*%).-)7'&.=//:-3(++?..(39&3.5):*)4A,!(.(-*3)($/+-+"($7.%4).2?(6137(=-,.@ '<+* (.5.9$)37I,)%3455)/*))9C7-3',(42.-.*!-&$/-'.#N,)"%?+/&&)!#.())$*)**,+)(4-F,N",*&**..2"V.(5#) $%/3, IA!o')## X-!)(-.%+-&*69-"H&&%$"6A+#'!L;#$D#- *4*)%7�*)/4(#(#,):%,/,D'08(7.6)"",00*%:!,",>+*(%(,,1.$4$O&($OA"/,,,11 ?,B)(*(W#H) ,$0))";V8. !."#<:\)&2"$&)8 #&?")("0)!$& ,'%9=+0>,*10%@0-2C*"0:*$#%)Q$%3F.%Q&#N*#(% --G0(>$h609*&-,+)#*$%'BP3"#5(,>=10"9,"/-24.%26@9%4'&$'$C%%5"x&(&./'%!$4@/%%:*=%%*446$!<+0":-B$,(%'-* '-*$!4(,#,1*-/&<*38*-3&+&2+%-'(9') 9#>&&&4!6*#+0S'6Z#*1+'/"-5'D(-%0")/@%B#)(3',)"(#,;a(#+*.4&, %.%&/'++%:'(+&5(T:>.7.'BS))30-')*#''17BG!6)#*!1. (,?(,D+6((/5'6%% !&-#0#6"6)&<().367@:@+,4)=&163&6'B(2!/9.3,#--05%4&#)00#(+L%3&+G<64P5.B$'3.;P*(0&($3B5#2F,"+0)%60C48J+Q"O*!!.9**.A$8,+#:,5)%-/,6*%B.6:*,-2+%A)5"$6=19':/&.)76$#2*()'=50!/,.&%2*=2*e++-'4.0---,A,27*3+H$,( %!$04'*5$0-#8H.'5 # !."-'%)8+3,,4#2B C1$# /+,(9$&(*55!$),B!01#%4),$6,<;-1 -*,9'@55-$'')@* +8-5)-5+(!(# )#,5,18+*1!$43,?&(A':&53(40:)O64:,*B',8=/0'-)+2*0*1%&,7'$3.7(O3(+%((%-6.7/13,-3):,0#/-++,.80.13<-".40'(&+077)4=/,)0.25(-S/&-8+21,.3.7'*B'"/+10& -/2/'/2%5231:+1(@-@`+-%)H/$-()4+@*.'/)'(1+4-4-&5'..1.*1/&0.*.$&4*.%:&'+)0))*!/'%+1*$9+!+2-,01.'+((*.7,%'5:(.>);187.5J%115+3-A*/,2&,*".,"+)/)($ ++4$33.73',,>'*5#''.(!607.?-5)*5&%#+)@&(*-"%2I3#+4:),/+.20 "'z,.1'*."0(1'1.F0"*8.-,'--&0(),6),-.#9-J$*)&$N8*'$0D6)*,*0#.,&,39(5)$;)-0$/.-)#&'2-1$2.,('#,@)-'(-'/%,,F+337,(/"*@ 4%&+62,*>#.*&'-+B4&+)(.)Q3\1#-)[+46$1&) 4 * :-4#$:5%)'2."+2-:'''/(-5($+&:6,*(*%11X1).,6"$2'*-0/'2,2(-@($/ %",%&)%-?!-"4-4227-/*72!.+,4&+Q+$2*3,0*)y70-#&/0+01*',"P5(0.3<+350*"@+"+51#)"-%$$605/6(925/599)2)&8&()$.6,&6/%%)+(,(278+!/'=%**$!=.;+,4$31)(?<%'%)/4>BO%)+/'/:7'$7)&8A +$-! *#01*:+) )8"/A+0&?/8$*)1(5+5)>+%'2#%$'',:#-.6*A0%%,')+&7"2+*&4&)0$<++3$#*427%62%C376(/CN'091#+.')1"(.1-*<+8&3'-?207%Y64@,2-0#',"->-9#/+?)08','%+'1"$5*2+24.+%6+ ,$!&*\''#40;!)8+3+).'#$4,)<7#$\:;S.2(+(-=0("- ,-/(3+1(0G#(?S=&3/."C:''%+:$+8$5A-4,2%@!"(!%));'#Y*&0;3'F'!&8:<*1(+*'<15), R%$" *(,)!,*'&$&4,,2)*6)1&1&.*3+,/..34)1**5(G,1%(*5")=%"*(T06':@.*]#&*65A.&%$I35+7-0&3"-;((-$53"#640/!/#+51+'*?($('+&%&=*/F.A,355A"$V*)"C%(3.3#D&A \H1*2,<)3E&/#>(,76(-*':0!'54A7R3(%&)-17()%(%2D-",1)nC1$)%:'%C)'@,&)(&%'*$%?"%)9&2+&9/@V*&$."%*&\' (33(28Q h,/F#1!6+13#'8 W#0/'&0$2,!4"$;&)56=6)B$%!"#6> '-"*&(%#P)I!'<#+'/:#$/,..U&E5%,"/$%)+F%$.+-2%2(6$'0&,? j<="+,+%!9$4.'!)2#*$7;/-$47##d()&/$&&81*&'+#R(/2'&&60-5V>!$765*;* +11(96''%2>09(#%1.(&*%2E'-%#&3*'*2+332.,'))%##M&$45 :/N,#$3$,2+A]!5152/'..(5+'+H'(5-+35')%@$'%%-)+/AS2+.%,$+$*/1.&172'++*-+/99170-"2<07,*3&/*1'&*4&69)6$1!$6<@0);'.4,(+$,F9#-;-?,3'$00./"C.@7!*>>3("3D+ /;C-6#-*(*1*(+8'8&&(+:),*@/ &2A+.,&%),6$$;%-#,(271*&*,00,,(&&/*=?,(2%0511/!03D% +&-+))/))-2/4,-%7.$2525$,W-34!345/,B-3)/&72-$70!'%!.+6)2")(6:#,4/*-5)/*;!71+-%.<%1-24:52&A',$!0)$S10!.*3!+-"(<1554?)#.000(#!9--8*5=02,#)..4%0,5,8#*&)(/*$33?(*.#085&,7,4"0,8..+++@.#18-5/,+%+02:.'+9,"7&-+(1,-/+)--20$+)4-/7'2(/3(*+.0).*'T*!+( */0%/.0*&3+-.'*%*))2'.+**18%$/+;!1+<$'/'';***%+-!$310&*1N*'2/+'.)2/+%0-1+0$+*$-0-+471&1@'!$(/=("),4/#+4--..2:='+(./3*1/5\0&4%/631,+8(*(1,+!0'+0'&()*9.<'(.%&)-K(,2,9.!!'./(4$/6$"X+.062(,,/-/)&%%),$)+6'304',#,/2&+#$6,)' 0(.*+'5)4/"7!(:D10$1- )+%.5%&(<(*,-*,3%(.-!-#'"&,'%1,+,'!*0!0,+$.- 1.#-5&+&151&.1+7/''5,'*0%##++%/-$)5,/.%.1-',#($0?2&B0$$&*5$54)0+#/&*252*(&+3,%1+-))1,0'B)&056$2+',&.%'/70$/.(."2*1.8&**,271";$A94*/+%.8&/4+!$*/%/2?*3-*'*(N&,(&04&&-'=:)039,'.,8$:..J)3(3-#B &*+3/c,,0%)1',+((/5.%&3A-'.-" 05 /EI9'+&& ,'-2&)&$,;004%/%0?(+$/63$+"':+24=/.0,)&,/312#2 #.)'5#1/-*4)54/%,=**'#,'$00"%&:*/-7- 47-"/-B+5#-65(2&0('$81*&'+#:)*+6-;.83"*,5$.1,("01X+H(%.*&8(5)1+-"+*&)%3-)(+1(12-.4%H1)"(32'+%,-;L).3,)'/:35*,7.5'4@'(30#6,,6#%/1(*(&&+**,4.;.;./+&',&;*#,&.@ -$9/*.+T(&&12#$/-3-2)&6")V,%*6,.).'7-1S*-5&+"'4G,/('*.0b17/0//,$G&"$.)2)(&(-O69"(,""B*"%'./!++5**5+(&,2(1&0&("4+31='1*(2$/*1,,-213))-G':&/),(8;.(%./68+-#,%A&0# )#,),)305#1)2-*&G%68,1/2#775$-(.0(='&0%380&0;,%*$2,&.)E8---P4/"-*,3/0(03,0/02+&%6-#)$'$(.!*)-&$+%-'/D:&2*%6#*).++&60*(D6A/*+')3,8+4'(%204/#9">/*,%-#+4'.0833)#,6/$+!"((',403<.#33*)25')%'+2*4(.2A+$C)%3).!.(*0>&'-'-&$',5:%2#+5421&)0"2--+PB012+&/"F4?/(1 &&+*20-4H"03.0(&?<&i+&(:750/*3--H'&%)8)((7+#,1!X"20n32$. '- 3#Y&1/ (,|,&.*-(%5%683>"e)B/+*6+1,/*$&#""2''=521Q%D)2+#3*"$ &&6aB&//$15,/! 0$"(C&$"2#([3#(/(286/('#01Q(2-,'"0*1)&.*i)'+$*(%%$"!,)9+*#F/ $/]&"/1, 22%"(9'5I %+L6./%;/$/A=!;!*0&(@4(J,#'")0 */%8>#9+$'$)($&-f $'#1''(=-&& *'+%71,%&2#&$$8,4)#3$,4P -+?)2:-.d)M$+#2 (#-/0$<36"+B)$?#'..)[$4%1)$4//<-'"/ 0/,)oG2#0H/'(1+%5/!0$*"+(F** R)5) 5*9$#&+ L0,$/&*(*5-B%.,*=))1/1 //(%2@)/+*V3+9"'F*.() D>-21./$6$"16&?0(>0>$/2;*5-&46"2-#:,8*44$=e0!0#F>Fs83# #-k1)&2&'H-2)*GG!#)":&/3,D,. 14.07&=))!#.+#A"!$0#.'-*1-8#(*5J)!).0(!*!!W.>".-1+5.?'4//=$WA+1-- +&( 20+60,)/%?/+&%4+*/(121$,%&169*%# 1+%3/9)*"%* (4(*)& *1-$*3:!-H ,<+8*+)!7!9KB1/2>0(-)8:D=#8*/>.H+ =11DE$#1*3;')'.|380-&$)/*0&8%(*!$*07,,1!)#,B44'%&+0,".,7(A)(.& .#(&*+(10(+?8*10(1#*+(59)/,-,+@.)+.:(,*=,25/!'-,/61&'$%/./1&5/83,5F044:29+),9.2+/.-'63,/6-%2%2.+3! /*,)65.%)213'*'+1*-05('74+,'86<59+,,+.7*3,A-*-!.&),.&)=3:02*!2-;+3)/1.3'D)*A27(,-2',-*%&:A*)-6.01<-.'27)-/+?2+-.--,.+150*&)&3-.$.&$2-(*80.1*0++1.'50-+0M)'+0,64477,""/205.()/2.',.4%/,2%32%$7=,&"$,'0.%-&6"@)(/8%1*'"601.(*)*0(-'-0(+,)-9,'8X'1,*43/,.01-0(?+&3/'0(+(9.0:--+)70/80>1(+2+6"''?6+*0(>$2--24%@)/".7)%9%8.%707#2+%4.&*2628'L'.+/>%1(2/+;#)0$4*)0#4+'".&*429..:0+?2("-%,5&'/7"+/.I1)>>#$6),4+E;4!/481,+,)/&%%*/.-&"+(B,)'+B#+.9!&9-+%1/=&*1;03p%-/#&&(!%9/3',4,\$+/0-*"6(1)H!+G.-#/+?)%0J(# 5-3#77+' ,C/E-4(333)&"%3/'%#'*$/>-''4.''%.8%.+ '7C9)T7,%&<'%-;("..W0"3)%4.+.092/2'&<&)*&.,1)421.$&-/-<7&.+X5%&>6D<:*4 0i&6""0$3-'1&>/&6+/$>!#$/(/...3%*)#"70"!$/"$",,;*45(2:)'%'-/,,3$27*(-R%48"5/.%3"%%.#(!&,&;7/5+2Q-&VC1A-'*4&6%[#).1&-(41*!!5'5"#)+*#+-##:,$$>62-6*0%4+*=2+#25((&0) '/5+*.)34< B()&K%)2+&-5(*%$),18*=,&,!&$,)(2$%8%28-U)I27'9-$)/.17(&$LW$.X--0&5%3(%0$T6=%+-$*6)2YL@#4,/91*++/.052++ *+25-+#+5%# ,%/+14.*#*!2/$!#;<1)* !/3,#"06'8;2-0$(**31*)L#3&F(5)77(.13:*#(+-4($&.5%**&0!63&:$+7+$+*b"&"+62 ': 1%)21T #% ;,,#1,N9B)C"-%$B$ ?51!$.53!"))"3/5:++$*5<5632!&&))/G(Q%A3/?7.5!3?/*M+7$*-c3;&I6B -)'(0,5+) %,8( R+(1&,("!C!$#")+"20"9'6[0.6&$1"(@0:(-2!*)(+.$@3-.>&U1"(&-*F,,%%1/3'2(D7".6+@,(a"#1B$)5) 2-)*2".%<7#1%/.'I3/ %14*-#+&4')+/&+-%)%>:/6/@9$ $* &>()* &-4$=@06*!;;'1D$/+,&F*;-.+1.'++(6>(*:*.3*!1,);17>),#,$=%2$(1(#>29)&2%*4'<>&'#/)59(.0!,.%1C*'%)!*6&*#%9?6)-*$30>*+4#!$5<4&,7=2&3-48,%0-*+.+_-*&*9*&1%:6/(&,-001)3,'*,)7-:3<"9,<9I'*%)-+1753%1-"2,4+31,.-,.52'71*'0!*%9*%0#.$4&&,)!),1105.3&* .*.1)0-0&-.,*5Q010-:1)+-(,8. -*4W-*'+/4%-"(6)-,,-/+",1&<&03+'*582*8+.+0$$-T-F0+-0&#$+*9+"",&!50%/,K$,'5+*,4F,*2/J6*")'&.,28=(-/,++)"0 )0"%M2(-' '5+.$=5)+1%-#$,4J+*,&2,,#&+,(.'77-2.$//,+#.','?5'%,$&:+w#$36)---=2'>0&$+1?;.&(3%-6+)6+).&.#$/0%(-+/6,3$+#!1+4&+M)&.(/G!)'"&F)@>1*((%$($%)'))*1/#"+#&&#%(,2%=&0>3B*/A&&R!)-' ,o.)'<) 24$+)&,&*)*($+"//K((2*,C-!f.'+*<&*=4;/&'$/6+0.-3&2(+$/,%6T)-#G-&(/$3+*'0"3',*0)++," %J:,'"6&+$*".,+-'1$",8-/#5%4.+/#,)6.%>+/,G&/1(&+3,&"%(>20'():23/*2$+",)7U.)0%(8%:#+ '$&&4 0%5.#,9,&&4+3"#*.D3'02.#'>)-&-)$6*"-4',L11'$&(0 )+#522)$1'$'%%!:9+(7/M&0B,/:3& ?/#7%53$!&K).4$'+2,M8 ]%4,(?7!9#&?4 0&&,9%6%:'*. &S&%$B)'"!#6&,!$8)7(3'2B*)%N' h+% L!9('/5# 2''.+'7?$,J# ]#')%0**/,0*!3$!%(%7)(46J- '&2O$'6$$*5(3.+/&*& 7I.(#)40Q.#/,.(%+&22+),-/1e33(#.90=':C1G9"+P)O%6&)6H3./"2(%J*9-+*(70*$$%,2"&(6:,%'(%'>+46@f,?-!+>*%GA+./-22.,F"3.$'%,3&3!*!"9F**3 2/.0%6'$)81!%//$&%0&)3&/'$%5,-4*)(,F#*:-5)27"*(&/&%,&&W6(&(/$2*."/%-!A.,)4&-'6025/-$/.24.(&5&5/54-",,9;)).*!(7$)/02.--2."5)9"%2,#20+;*9)+4,, .$<:)23>(x,*+%.!0".**3/M4,% '&*F?$980,"/((*($-65!82)@.9#+%<$'+2*)'#AA:"'C"&80$$2'$,( *2%'-4)>('5*9B!&&',8/3/R&&--$W3!!,9'&#H(d",&".'F7&0%2*'*)*EG(+6+;)^J)+/,60%10*8/*&%2A3*,8)+'2D&+,X+?-+2.&)*+6@*0:/!%//5$*#%("1)/+M M";&O'$+%(!'/<*@B(+")2-)(A.-%$)N23"!@2&,3H3 +)-30%F+3ISA.,','"&(:*&,'$$#()0, L?s)-?*#9,30I+.G*+57(Y0)).+96*:')!-1&6(@)"%,->,),%9.'.(,/ $/.!(*,)4&($6* '&(+C'-/$(:MP5;($2&B#&%+)$'#/(5'!%%++-3>(G)+K4#%(/;*B5:,*'5-(*/'(-(15O')%"->0!620*)?0)80/<+3420051./44(0*.48+1%*4'+#2(:0';* !&+7='5'/'#0-67(4W&8&+0/.9%?10>-I)3))'018-6(,@./!**+%*7RR)(<*I%)(!\+602)95.%(3G+D:#1(39'*.),)2*5E=0(+12"%4"#8*,+7/#' 2&B-"&%, 3?(3)))%1:%$406+%4"6,6.-'*57"*)74)/),4# ,,25*-4&2+$-58%0)#0$638?C-'3&5'&`%6^! *5=$&+5*1(5,+#041+/+/0L*$/.(/4'&C/."-);?2(2)'.*4<3-.,G-)"/ Q20*%0@>1)5,D1D'-5(.-242'-&B+%!%(.=/-&@ &/0@19%!2)0#671')2%-*,$!!*#&!,#2%"!((!W<"'<0/2!!!1$'>.0!)'1/6,A0$*':,(;*#$.;3(.&8',)M/0:%(3$',7!9(0 6((((0C.10;.)4+ )4+)*!"778,'61)%$'R 'Q/,*#76)<"-+65*7(#31$'&K*18/h*)2;4**&5/1%<$,$.-+))$:@G%&*).&%,(.3/9/&(%.*(6D' *2'-,)5,.&$:@1--"/F-,*+)92798$-5@*#&)215##,'1)c=)5(!0%1G"#,2($8.!.9%0'&%#!(1*)'#')5<$)9(+3 65:%&Y))#*N>(%*(-'(&-%6#.H+"%1,!/&.'%$H).3(+##/;)D)1(,+&&''&(0%$+6+'+1**-)+%)4&42&->%3#.+O$E)'%*7@>"+./C.*24'&5%.(;100)+)#%6"$2>,&&&+62 (00%)./4L&(%!0+0/5(1'1P $#9.)$=)%&,-.7$@5,*#E.L/+"$+3&,(,,-$23-F*'0 *&:",+C2A#+),231()0%14+0)*&3 $$7+),/!;3'D)'('F !?'.42(02`%$":C%XQ*45,62#+(1%8!9[+0)%0'+ CS$<,i-%$.U/09,%)'Z&1%@b"='9-4:S&*.!#*.-$?)5&0H1*-$!%5!(=/,83.#0@V,!#!6h&(*<*52)B8%'-89";(*9%7+(1#88&)@+2'!2-(&,,$1@'()4#07(9-6&3". 464^.3/5/)*7EC)*!8*,)$32"Y,C!/!-5,,*+37 (- '--%$8$G<104$)5 U1,..O*(@*362h,&-!.@D8)##$-'#+%6'98#$(-+'(+/'),"""2#*/(^%:a@0:&3+&2"",)46+*-,%%7"*:S9='%*E*(JC>&1':/W**)*%&9(%%#&$$1'!%'"%%+'/0#31Q)7,0/01*;D+/)!#''7(X?'2B&E+-8)*+C*a+"%&$"4$@*9)''&,3$2!!,D'$"#B::M1,A,A)+%"*A$-:&/>+=.8%,.(!-O8"*-A+'/$%..$ 6$Z,.(/.2&#^<.%,$"5235''/;(,.*"34-$8%.6(',):6 (A:;2E+%*&3/0),<0/Y3$D$!6J ;2+25'*"E"#%4R)*<5 % +8* 1I22021$56/1-$G;0,/1&24/$U12:-.%&3/*.#60'408+',,)/$1%3).3>17.%*-G*!A&+&:&&. 4*/7'30.1$/:0+'4 $G(489'/1:2/)!+87+(+&.#A,0-4+.>#50)2/!I75$D-*$4'0&.)%"(1(+)$)7$+E5 8&&$,1*7-'*:1.-01Y /--*6H++9@07*+&0(3(($.8)1161(>!3#47.630?2"#&7>(>+/,]&$('.+&B+I(5#(,%3,6U.7-,"-1.*-=)!67"!&(?+$613)+,/(%?1A4(!%("<+&*,(&54*)/++1"[;4#+.&%!'&&@)4+0B<'2!6'*%*"/,'*,3+*3+)+b(1)'(*;0%*$.%8.*((1(K*C!:)&2(''.,'.'K+1"),/(25():&!-+,)#') 9)W+ $&*$2(*0!0,'6(%$)! 1() +,$:$!('$!+3-";&7&84"+/I*.#0)&'&#*$1//)0 #d-2*$C)2-66!+"A(-7AJ[2'32"(*&5))%/'1)$(&*)+./+)".!%;/+2.(&.10P%'-6'B+-].17)1/-1(*. %)G$((+&*<,-)*.()0(/'+.'):8'U(('9,5';$3,5'""&6.1()1*'#*A0(,();8."..-#(-2/ *&"#-%)8*#CC*+#3 5)51'1%#)0(2%"%6-,&09&%&4&<'3BC++9)$'+E;&,3&%e$*5.)#4@*+9-MV5*(3'J,,:6*&+'?51%7"1-'64$0<:(1$%&&=,I%)&1!5.!;$.*%,21-/+/04)%*616*.(*/41*3'+./ @&/1'&55 012,$&*.5&,.146+5(67)%,n,12&'+#'1*')15108.('+&"'$,,2L:4,6.*$,%#)'3(1-,-72(%+&..%"-''+))0)/,5/')25/-+.-&+1*#*63+$&*04)4)7,'8 5)*+-@)9--58+9(()1-%1,#7&.+'3,-14'#''()#,,6&=*/&0,,.*)2%!-./7 .$-!2"53*-6'>&-&.6&&/+G-#0, 3'))$10-$'0.82-.100.0+*/&03).+&+,',!*-+)5,5;4",,*-<0..2&/7)473'(-&".61.(/&*+)+.7..,-&-)-*+*%1*95243U(1#-=,!&6/'#-*260$.%,99%)%J3,#G'(?/'0.* ))v:'C?C+'(:.3#.$S#5*!U6#,.*2?))=5B$%0()6#'D6 '*(:1,-/.-4) 7 /$//6'Q.+*)#4'*&05 023)#,5,7)),+G2!/!-/(8-#4?3$*.-&&,.:5a#$**/4-&(8#)7:,,*"3-&10'%2$/?7/u.1286.+/$00&+(%;2&($*,7Q'8.6,*4*35,-'#35/-)%?&,5.<,+D!5P)*+&,)#*&H#3'.$&,,,+.8,j'99O-0(03'3*56-,'&&/-$A68$*;.&Q.,(1/.&;:*<-(*<,!=1)&8&(@&/-,%,#''%'&)+09)*)$')-,/4(1%I.-7&%88&E+(,5]-0(&+='-<-$2CB1()'%;5"-#-)&, ,,B+%9,(23c+(392&3+340,,345>(,)((),3V:4//?>%(-#"71!+-4,,(*&^(T),819**K$#!4,:1.*C35%&*1*"+131-/e%(&(7$)5%*":#M0.0&1&#'*$-0+4.#1$>9),!'.#1+)1)8%',0+'$)'5&))2(*%"A*3"$-h2&)=97$S&O4.!&/%2#(E/22-( /$09''5)',,D'.C(5#J$%/(*)*#4*4&(32/6)(,-;'%*k(#"!)'-(*!.#'H(')A*+1+54Q(+*.3@34D"*3A(%)(,8)%1(2&'H8 /+%&7$(A(! .7+$&)*,2$'2(!Q>))#4;&)0/($E3@0A(U-7)8,*.T'**-5;%&9'1G$B/;7-!02')!b"++1".&7%=G0!.2',11,3'(.0X75+$6.20L&',0@7)'"&(A4)-2:(%)10$6,-&..O!71-/6,/+>)584.##)06.)I/.%E(2$"33K4)-3%.R,)6+?$/''$*-H,3 #J#-/#S=)+#"C/+(%'9+S-&01,'1;<#,%*.&'18/<<:G'$=:>-!6-183$/"=N'!.1),+11.04?<1%.&*12/0+>*?4135$%?"=(8."4+;2'&+;+ <3)>973&6!9/+:$D(6>&'m+',5@+.@.($V:&5-.$-:5"',/"0;%3: A!$6-0 9U1*#.5"&2&.%/##6'0+.7+/4!';1$1+#+!/*+,E&0#+3<>-$+0=%#6/(2),1)9@O"+;(,(%(-0+E3!+)$!1("01'3J$!/?,+9),- &I!&&+&#$-4(@,/'! ;+2*("$)2*/361(+2%&*?4'')!)'.%'%0"A/*7.,.2<8/)%,&)'%"R##.#(U/,90463)),"+#B9)3+8),'&9k"6/:/-)&3'*""'>50*&$2;*/(4%(6(/%1/+*,)+&1(.65U*+&-0'3)+62-('E*N('$%,'-4$(%,12(-)#.&+!0% )*+3)597=& ,*(,&)/3((a%&%2*'(((6)%#H$#1+5@&5T,+7?&b>$F 8)'2086&#+','3)#6'/(*&('3@!;",&3":"+.6;'7-(&!+%3 -(1*=//%'.#3@&10!(-$.0',*:F,)@(85#* D)#*+J'!/",,,.+-.9<=)0/0)!/28G:(D&5#%A4,,0%+0&8-'/6-40#5,%,, /(.))()/(*4"/?(6Z6 5(+2031)-391#&(!/51<5*,&,-6:,/;1+)9(-"B9-A%*-:**&+%)$55,$&)-&$*$82($5H+)'%2"(&(%(`7:-658?2A0013'+&'2P,*/'@#%-%&4?[*/K10-.RN%G-4$)6*&.$.E$@&)3/- '>n,.)$33QS3//J8233''1&-!!*-U%#!,=f?"02+M,(/+G;*,-.HF;1:%'"#; 2&% 0?(-+/(2+*(.(%,'?((<10+6",11.3(P-&*2#;,*(!6%& $$246/4@;**10.'#1+*$"'61,33-'#-/30#+8C$&.)1!'.H<*5(86)*'A*.,5>C1/%*F/#G5+)#A(&'()') $-/2 %-:,(E+"=,% 2/'(7$"!H"4),.-"337?C4/&!:&!/*#/(,) 2=+.(!8/, 2-N%!,'D%+,&2/O,?-"//1/'3#1-&,%13:8H'3-24"%/*.-6-3...2#'361#)&&!7=0.%&6"2&'/,)!$#'&./6(%+$+#&*2)%)%2%A6+,126%!(.&+.)%*6-0<5/!$3/.58==+8+I'?1*)$'30,'%#%'!$$-..+$4(058=572*#'%0!8-3'[371%$")')*!3('.#6,4/((2,,4%%,-'2$1(*(*/(/8*,9/8-/'(*2&//.&$1&.'-0,L'<.!0,& 201%)?6'3+-&&5;-'9'21-$$<<68/ZF55I3&R7i*(-1(2%(*2.($%!!+.'1-*)S&+$ $3-$C7-%5(0*+'0:&!'6++&2H2>'01%*@.4.+&%%,).2'#9!%,";'**012'*;-1-0.-*33)**%-*//-&5-+)0**%'&>*'#?-1!('"7.$+)'&(!/!*4'*39,+).,)#+3A5*1&*&*44(.*6;27/40,41+&12 &/%!&))M5#++)*'-).&#.8-*&*')#4///-:2'+w'-+&-/%*+)&030+22!.26+A&.*$("-!/52322)=4*--&0-5&//..,/()/,4(&19-6.)1,)+2902:&+(012-6)#&BA4)).*052&,I$"32)03(*-36687&(02(%,3",+:&:4;%6(*.:/*&)!5:85/0-(!>+'2,@##')(/$7,/,#'0(;(* 33"D+'6(*3#/2 $++5C,&D5)1).!911;&;8%&*&@&'C-2:21*./,)"(2-!T(%C2)-***66)$.$*+'(%:0.I&:.'%6*,-+"&'@8z3,+@55<]/7!24#(./3&1$<%-&A3(,./.G+*)5+0)%7%,)##0E5^/r*9333#0!U01'K"S.!:#'56/'3''D,%$:(.%,#0-1#.3$3#):&0(%.$!4,2.$'0%?5 1(*)) *557@"-[5?'?0$(12/-(+.-&3&2&'*+Q1()&0&*,"*/> .5+&061 (/),#*-);7)17!+&;145-+)).)&90-,%%($/'2'-17+*++),/03*(18/0+-=,0,%*'!6 3)$,-))(%9&$*-,*-+&6)N-),@(%.)%3/.+)&..2*))!6##&*/,(6)*1-,+)'(@#<$'4=',.+$#* '$G*(0*,J%")*3+("&/41-(4@?%-#/4>%&,2+&$(1+&-35'''!(:$--(*<&4$'<.,'(03* /+0"*0$+.&"#*6'5+/)-#)- .%'4/"604,&0*%4+/ ,*+-;*')'N#.+,7--.0111 $-)-*)4<.,(.%6/,-;4>&-/61*9"F9*/5**#2*32%-.#(5+A%*9-#* .,/*2654:01*)',.+'.4#)((-)+6!8+)16:1$7'*$1,'&-553(x9(5.)!/*'(+/$4E/-*/1'7180!*8!.%!+:!%8<.d;9,-;(C=!2=.0+3 87$9#:4/3)/-+--)6.|+1-,/F,*0%; 6(&//--4$-+=73)),/$84-30%,2(--)*5+*&*..*''#.0*,-=38&**3!'&*-,12:1*"'0+5.40(#=(-/*0(,'NE++-,.21-134,.!2+<."*:-33,*0-46,15'1-&-&+1'2,/17-)*&-'6.).1,4")%(8w!!0*4./'&&+..$-->93454*3.*1!&!3=-4334+6&)")-*\6-09B402'.$&&@3?WC"!33 B5$)5!)#)Q&$0$j>-0*-&+%&!,4-')0)<)#'"3'(0D?-$)**+'2*''.(5*/$&'"J**:+ =>.<)*4"&'4*D!('%%A #(I&4,020M1%% ))=;38 %!&3:,,470;+5:2!+.1+,02&4;$?5H35T//88;0$-)!33+9 64'79(/6$%C$,24"(/#&)(1'&-%2%/&-.*"808!7$&O2(<*')48$)*,--%".H<%+q.&)&X7)2129>..-$)5&5)6&+'@82*0!;(+*?,3F01#1H)%%%%5&'/<$$(37//J):(*(!;$/+\-(0"/% $4")'9,% ,/,+%*+&?2C(14)&/R&(,*#1+98"-&#>8+.-.*)+.(,0+>$/u91)- '!5-)$0.&(81G#&&U*3=k,-+2'*7&022.21)A$22 ;>)4( $G%/+&)0.47,>+=69U(*44.7>'(-'H )00&@+>!&.&%//6&$04)93*$6%*.0'215@E/)=,6""-!>,)'- 3,#,92;(%6+.(9/.$2$->+"0-6:8%11'- 7%(&,2+()(2-<#,%278&%2"(;4707##.:5="(22(@%.,?%--729)&7+5/)8@$+'*A84'6N0,,5,67,6%,R0-,&G(.11-:7%1) +6c.9"/."-4%*0*<0%/,)/,)'0+#.A"+ ,,.&++/830)3' (4/3,3 '&)%*1=1-')4310+)'/2+)*.2-'-;Y7)&'+?'*(5-=)("4*6")3+",.%%)::x/+7&".&%'"$$'10/3+2-,*"+/6*/&'./6*)2&*0,A"$8!?.+60/5;*%;$!(4%),3#'/6#'+%*0.(,$.0&7)4- ''0'$)."'/2-?-65$&&'-+(D1+-$'(#:%)0.%$$6.$*6++2,//& +,&-"*)11%($/)",&(.213'.*033*$1&1*$/2)3+3+.2&%.-6#)#,*,,,/*+(+8)$!-0$.0%}/F23//("2+=5%+,"/+!327&36'&81.O2'2 2',1*- '>!31+0(;3,$0+,!&-0.+)/0"$:09( +).2#12%:+F)8(1+'5)5(&/5 7)%(6$'#"%0*=) "*#3++2-,#0;%3$&<)*4&:/602,*++-44#,%.-7'6274%7(&(292).664%7)'3%5**3&$)201"8@'E,*.,%0-9@%0+,."%2)+*#'240)"0''6/+3/($-+,)&-+,53/'0%+8*D3((0+(.*%$:.-014,#+2''-9+6-1=,1!<),.+$%0,+%0+()*-.!+<04",.#01/4)+4<'/%#/''19%+0$('/"(!+'&0 %$$9.*4/!*.(+-4&,&"%:'5(-#-73"-.#8#,*1%*"-*29&A(,(&%-*>C%%8'++.))$+7.)%(<)3,*&*),/B+>1,@,35:1/0B1/,,)'+'.*)%+&",&,(*&,5D0%#.+*1%%#)".,(")'2+1.-8#6&G.0.4/#('$.7#(7&6,3 1(@1)6,+/(1(&$$3"+-3&(-+/43&288,*/5*&9/2-(.1(#-'+!+2(4+TJ$.$/+(+$,*B&''5++,..!%%70> 1;%-5A')(9R-:0B*&0"3 0)).&8!).** !&,+127-')3X'#,%3,4:%4-:%%H61,;/=$% *M.&*6&+3! ",(&/3 0#!KZM0!'!1 &!%#%(30&')/' 4-;6(%*%;:'<5:?"'D17P:(1&7%"!&4-",0(;1.*1+(>))#+.*2%0%5(*$"!!.-&;%:,$&2,2O,E,8..)7,,7,!?''B,-'#9!-..&/6!($+:&#$A*@-)&*-A'%6176=@*1+*)E%:%,3-)/ .$?5*-85.2%,0530" J+,.9R3"296.+2<9'5!4%11..,.$181669)<2$9,6&B%0&+!'$&'E"$+;<';/,9-(/-4*+-,-/)'.* :A<2.$11'('/.(2*).23<&>,.*&47*<-M5..++!!$+ :+/(+&".//5(./;'(*$$!"08-#1)"4=."$Hj+<%8,$-j''-*60'.(+*&*+)&"4-00- *%-/,1'+"&?%O#>J9"181&+(50++/4$$"$-$14R1%!&.8&G!$'3;84#1#*/)'/*A<.(*../5(\523+!8/5)+ ,/'F2:*I)''#&('',#,3)44+F4=2+#.'4,9,=)%4+.,=$CC:,/),"'01])(B&-(% +-11=8 )8@$*+.3+''.5@&*:%'B/%,0$);*&,3Q+$)?($($/>0-+D'*(96),-;..`-'4*13#?/O1&)(/-#.A#:%(,C'C&-,$0' 565+($/9(B;9&+)%//*#,'1CR_8#40((/''#-*:\,61*1+*%)62*I*'),0"21+5,2-+8+''')+6#=1,+9'8/),++%2'--#*.%.'B2T4&*$:,(0)7;70.X,@#$+!,12B3# ,!@C&,*&084."$) 2'.:,%+%,%3..-'+(*0.+7&3,R#,%""$A:)'H+%34!25%'/-#/*,P'(#!+1 W/5""/%4P+03.030;3(6%-'*(572(4!.3N&;,-')5$%'4(=O. <%19+=$."11.)(()(49#8-&3*-3+1%,;9I*@*d5(3'43/&+/$4+!-4-*"'.7!*;7 +3,03.T'70&(00/;#+/0&$$'&;,!,/)+'1)D(#%,' )/*>$(-0?0*&'#:)-18'($3%*')+$47`+-+1'->-)35#.(>=09+=))&)/*,,7))B2+0'=*&!(aJ+1+$(;&"=XH0%#+)+=$-(()#,3.#\+'<++3$/'))5&'d/6a*# /)1*#/>+$/).,1,)1G>%E')'2=T/#""&(+C#0-!+!0&03/1$($*2%*!P'-2+%4()1+4-!#$+8*"&)1$:+/(%!$3l:&&.+/+&:)&%0"*/.-`,009/,)&D(.7+,6(0B!4#(,./$+*#*,&1$.!-;-4%):1'&*$!))M12/,1#*'AfY#%(+-F0-A)@,.0-.2;!B&.%$$-.=-$+*'!1*5"#A:))(',+.)%'&'5-(&, .3*/)-'.*+'43&)2**&()0!8(:Q'2'#&3J%'(*4$ (")$"(*&.)"1!."1'5-NC! =,1%.4*,*?L.;$..C,#'#!'2+!; 0:)" :/'> &-%6$2"%0".#+$$$,+'<1.0/./'+(),00).*"10/,1;% 4*0#)[)*ZN3$:".$/?(1#$<#0:*6/[~(,&-37,(#.#&! -$"=4&#);$%&(3/10(//0%+1!1;,S.Q)6/%//208).++'&//#,.464%(#&*,9(('P*(,.0/=#*/4,+&(-*1'+$:5,(%/F)@0/" /3./8D61/*.606.%*'7;L'#J+*0F0&'H*)7:5(-,-%(;@-,(:,(.).17)+5,*$0&%.-/=!/0120F.(*E3/6/=F**)(,$'+;."")2),*7E8$ 19-!&.. 8?8.%# &-(04"386,&((313=/$?&+!G(0,8?0*#,%0)8;=.)'6.-::",+4(,4(&2&B($*$%'Q!"?>(04%$)<)*W3)*520#+!/)A&*,2*.4(!2&+2.;-'*(,F4*%-'(0=)#(),2 *72+1,02)%.+)=2-<)*/1)//$=/')($(){*8%*)C+(.,0I.-).%1,0/0"5?!#+'29&5'%-6/.$'(_0%3F+'6),$$%--G&1+B-+,*%-<'%,/*44$.-/!$(>0&-$!(+3045"(*,3/>>%&;)9 )=-'":(A":,1K#'$"%+463 2!7?)6B$E#(!@0;2)5##>2@%1&("'15.6,9'-*24W79(#;#/<*-S)7%#-&*,0%&)?60.! 01')((2;8(&$+&L'(%.$7%)3-,3(.,)<&!34<(:(*)<*&=L'2#?9+2-+3-0)++6 "-12-(-**3'+5!0('(%#N16(K=+B#!@#&7$X?'5(/&/.;/@Y. ND+&6-,3L-1%<),;=0')).)./'!48)-(&6%,.9,7&*0/-2A,! ,+=A4#/*&,1"*/+(9)7)F+G(-"$'-/2"/.--.57*5(D.(,&9*.0./+0%(,5%%"82."'7('+#=!5'/)*'8' *$%)-/3=$b2+'+60-21.#R,2,'5D.**9')8%!<#7-/%-@'4>,$#24*<+/5<1"0,...81)9-56 731--/.-79#(('*.<)+(3,#8+44?4:--//2*)399&%&*%>/8/%25+)-',1% ,18(&'9(,&++*22$-09)),/35)"83):.'87-(,2<9,,(-92-+2(#9-3!3,&-0'(.&67.9%3"&,-'5"$((4,,6'-(5"$,++%+'.%'7(?.-77-,1()<*+2- B,.(+:'%#")Z&C+3*.;(X 23)01g-R%,5"1%/-!'+=#%2 (*"(*c,5:;.34(<*#)/&(++)-"'(,d8B*327B,%5'1)3(+--#"-(3K-+$)$6$(&:3 0&)%+&O 1D/(mL$*4(' h4)-,%4.,?<9*1/0 #,,1'1),%##A"(*+A2$-$ &4'49E.&'$(63%$;-% "$."<$.(6%#%G-30%%,$+C++(2(,&.7&`!"$5&.:+%`3%./+3O))(,@500#H3%+1!(1> 32=((>@.2)E/-!(%H&7#)2-(5-&" <&4+G/-(6&+9'*)&-2/'&##$$4&%$#3**'-&))7)$%3/-)6'/,%:'+,MH4+98J/DE<*/&6+8$$C0.5"/%0=-!#.'%%./-'2 ;/0'.#+7"@&3#&0:%) +/(4$.#135%)'1>+&*8# 0&5"&$=-10".,.&&;)Q *1:'-*&("%8&)K!#$#%(*#/ )7,93)"#$6&01&"/'n,!(+.8/#"4))+!"5 7(/%*."L3$(+:12.(()5%<*&>.13':6.--&-?7"3)48""2'6:.*$W(&!0"+!#$/.*1(,),)+&3$#-(%>I21'<, 3--,5#*$)40.(#+%*4!5"1+!">,6#-;<+'0K":*-;6<-, ;*6B#,*/'34(8!'2./4"!..!Q(6!&>5$*,%% +=-J.))(%*16,A'&+8&$!/66(#<)&/6.2=V+))3G);8)('V24,3/*.4+O33&-#+6#)&.'-,%'!J&,.@*-29'!6((!''*+#.,%0** .+=(,19,*..>/,8T&*-%F%<2*%+'-&.(61)7&D0 +W!3:-*# %C,>+)F/-<4%2)7"+*.-5"1? )@?0Y#0D64?&17( &.+,&%Q87#T*(%,.&(82A"-*' ,&$:7./6%+*0?a1%)#9)/DN)54&s('4'+-4&*6(63,040).'<++.^+322)/'.3;:()#&8#+)+.- 'L/,5%K!,407+9090I#1)'B8&2)1!/%+$,3&0-1N(J4($"F$)$47#4,&.+.!%.&(0#%F)!%*")50>190&;*/(3+&71->F"'&):")+'$760*%*&(-,!4'(.':*+*4N!9+4*.$#3!L33E+2"=,3G!%+/!!&E5&!7#'%,+"/;2(81*-*&2/@,2!)-2*)841+1%32/C(65B2>.0+1)-%;,4'*?1S)5/,.*%>/?,70N$*$AM4(&E4B0?9B,%(',J!1?4%+-68)*-+0I7+.B:;*/-364(6)42/;.*&3+.('( I"0*$5A,3+'-/,@#-2',)1%<.E<+3(50.71**&$/1?8(*,B>+0053#,710/-/;4-*.-'0!)'0),2-)+%*-6/%,"8)2'&))0h/59GB.012*39+(+"9)"./3)'#"+.((38)]5.+1+-#;-$B('3()%0(.4*.% ,&4'5*./2%352&0.)<)'0$,0+".&+6-'$.$-21,4:*&&4%/%*)6&%+6"(6.1/01%30&&)2().13"+0+(89-;-&1&".,//*#-/0,+1,11*>,),)'276b2N+#*44.)K:.*@.!("c1213.--)-$'2005/%':!,.:(10!)%*(**3*+1*(D4*.)+*&P-,4-#!61*$"#0;*&)&5/9.++/5E7IM48@@ETBA9BE<79BP??36<94DI>%:7;42C8+9/FB,8R7A88Q:GI7H<1D1I94CH3LJ1HWA9D9:9>L/=?C;9GLG:<70$ESK@C6593H>J(@H5HN<2GD75<>bD;FFZ63F5<5GC=985@5?O>2:9:>;3OP9/=L<5C9BF0=06AF,3IFAA(0=;0c.,3/*$)5@&*))**$^/*, *+#-@."U('('4 '$*-".k&)+)*),#0,)37- /&+)3F 0="))62,*-"0($80nL)'0'/d5@/)#%5@(,'-(,,,3>$!/$t+6-+-)%*!+&!)*O.+-22>"',>+.$-)1%g,-(!!##1. (/H($41!%9!F$G18$0 +$!2+<#,8/'#];-+29&$*42',*%#/*+~%29'.%/ -%8'3./(8,'+$)L'F0& +&!'4./$("l!E$-@%-1E*&.:(1-#'/-,-:2#%"5%44#*'OE118"G4/2.*-',/$'"*5/:4f2/0)&!A)#&(.$/'b6%+3$($@BcB?0!o-"1()!&5/!.+1:-@'#%(1(!0%*(#4-3!**+)70%0(;O0-+ "'*&5BC#/'0*((5P,,%." #()/-'3(3%%2#%.56.'_#-&I'+(*0:$Q%$'/$,,-&#?CA1/(%62"%*'&8"%g#(5+.!,1(@!A*%a!2`3*9';36$6%#*2&*.!&%*4+R(3*,0E4 +,$%)*&:I.2F-(!'0'?)'7.-$53-+C%*9G5!T$<&&)(,$P)='+,5'A8%"5+1'*)$$*)&+)0#%9#,&0!($/++)+->N8+-4%>(59$/,$,+#(:0#&)A#;& ,+%/+),33I2,&#*1D%?..2#!6;$1(%94#,&%3$2/'0 &7%&:%(,O'.";..*<-6,'!+(--):-.&+6$02$(/&2;5''1.+6(#/(1!!-%00%)"((;".4-+!1*)3&4/++-"**>B2&41"'9+ !%)//56 %$2($*%,-&;>"-30#D03)5/;,,+.(-2#(-&#P*+2,",$.+D'*0-)-+..<80*.%$%&.%%3-*.6*-!0%/0*++-+.).6'01&&31!714'),'%:8/'4*+/#%5/0 ')1>&5 ^%S/@*"'*'6%-%#,).)-#>88)2)55)(!.)"+-&('",&'5'#1A4'1.&)4%('-".*+0+)(*0()0."'/&(-*&-02,3+"%,&o*(.0'1*%$(2/.011$:(0(%/<)-60/.0$'I+2/.-0%(14),'?7++!A3'-",8{(/!h"62*X(11j/)M+$%/,..#(&+(9/1"?122'4%)+/-('(?**14)1%'(,*15%/9+3?02'1((#*'+)!(0'4;/(!'))(21-1(5(,&C;#%":D)"6&))A-4'-7*'-5H1%9,<36.30*M4*%,"$h(A/7;&'*#&&+,'+!,&1)6(2.'9$10!P(*E+4%)'!#0)'36,#-&30'20.%")+$'!,''!'0+#"0.33+'*@*/34%-#%'.*'*@ $*9.&2*0G(#(77&*:'TN54%"#.(*21&$,0-'1"2G! "#8%1*5)&&,. ."/<$2)G/+aO,8)(0(&X4U*3,63P3,%(/2" @:0#D),"8.&%,@3$U"8)U1+P&%'$$(1#D*6A*j#%*1V0&2%'%,28>&."%(L..!:&C$l,1^+'&OO+B+&O#-/-1(+B([M'*'65*007"=!5( ,)!2+R"%$$;4<<6M'o#'+(=#K.W!%(+*3'6'90,(%$)& ','6%)0%1'%.)%>)*(&$P26$$7<-(&I&&E&6&"9;&")>3&;-,-J),,.*AK+,?$+.+-5)+.&+&*;.2.-1.(//^)%7-)--3&U(06+Q-6%++3483>#%A)/'0..<:'2/%))1('3?:C$J+#$((1",()+M)%%'5')&(*%*/"//"$?23..('4:9(6+S2 (J*+>0'(%B-90++$A,*2>*,-/&I8)4112/0+(*3,/).*-$.5#8*A0*,0226)0)G+3435+((!CV%'( *42%#"6:#<*-('"*+89+5**4!-.03-/$)2*'9).-6&*.-7$&254,?+450//@2/,3&<9))$%,)15z+%@"bU$*2**8,8'*'.+2()_!4,'1(%35.N('+*6+"1"5%/-$50)'4'-/&(8&%#45;()*4-'+,.0%**+M$1*(.8.-*,5/#'&,1)-*C%.)*62'0,016+;,8/-24G&5'(+/!##,#,0-.;<(%;,1)**"%3*8($<70%4+'5.>202)6:("8';,$+1-'().*-(4)*+%&4I-=&621%32.:9311./53(8,06?-0&&0613'9%+%E*8(&j1.()D;)A=45$BU6W<-R,$96,>8*&/*)/Q50-B/>9*1!+)+0'$<(8N*3(:$)),-'))2'/4-A<$%)5')0'',1$,3-/,'80A3--*-'J)2)/178,77(,6)_ &'*%G,'-2(7&,D./+8&G$0/H%(:,*71'5&M%!B5=%/S)*'-&3%,((*+S%,'-",%&[-42%(#=7B.;-$5%7+"5++-R&%'%(:6/;-0&4)&(+'),'("09"@:'+R3%"$&,7$%23)8%$)1a+,1?/*A*92(0?+*86-()1&,2,()H-L'0',6.-2>+'!(*&*!-"+!-"+%%/6("%(*,$"94-?NL17$<$)")&&":+)%+!(2&3+-#( W&)).&3(]%()%57#Y'A,)&.)(., ,030))2K5++#,")+14=@W'012/-)$).+$4*%O?19F+/'*'08,)#,6&-(1%#i))+&%$&, -4( ')(;AF&"$.500,(+$.&+-1&/&($'R1050>e(*D3+,?.+-230-I+"/*.%/&2/)-:-*+/(+3!1,(*/4$.&266'4.4'%,,%;1$7*((8I+#/$%-D-'#*%*!$#.1,&$.!-%$-V(')332'-1.//%$0>F.K,+&)J&2/ %5&$5992_"%.2&&5#/A6-% (7-'P030)-+$3 5(+#'+,V6,,-.$/ ' %!),",10%'+)$##-0E(>&"8$+S.6%)E+..*00 .P4=62&+7J-":#&(-*0&/I),"0&*25$#2&8-/>--4&3#>6,E7,"1')"<*)* ##L$/<(-)2#0+&$3/&#.qO0*$&'.&.296$*.%/5(8100 *P-#7A0 68',0=YI80U)82.&04 *('#--N6.)7/&0-1'#.I%0&Q.9%/)$'",26+,+(*(,,A*/74.,&$ )(*#,&)<%;"0$':=%'',/2/,*&0.32#/*)0&'3*.)(':6,+?61..#4$-D)*)#o+&&-&.(%$E7($6(#%,4.4<-8#!/$/5S$-+*"#')#%V)-",+%2%3/3($'%9(*)3(:(RS$)1&>&,L')++q$&18<3 *:+#+-25!00<),*-$'$,6,:9+$1)#%(%2E2*#1''+5-'.#36/+$&/?(/4-46/ 3+*A-.'./'i3*D40,00#:<&. (-"K9:`%>*4A3(*)(# ($2)&&+252&10&0'9!.=0%7&E+$!**4+(-9==!.(&*##D,1!!..-?05#/BC5/-"<'/7+P&D3!++/-)1 *$)*"'*"(:*286#F$0:)%1-.A$')/("*3('/(9D,-$/'%/35',153+$'9)!=!'1,2+*$*--(G"&*%m$.%*((*/3436+)0+ZH,&2$..%1"646.#,0-%**'&:0/YY3%0/%)&0$0"1-+-%(,'9,$X /)&$+"& 2%-+-; 4*8@(-(;8*.+%0($#4*)6(&-*"00#+#+"(E"++2#!-.!6)'u(*1+4< 4+6#)'("27 !6&/,&/0 '*LS>44,;"<2:*3&(&&'*$%98&?%"*:/70P%*6,,(*$$2+-,.:5'(2##4!)s(,(I!)$/*1.1&y.%5%1.*"&,(F0*%-4&)6/&?,.#+&<)0#((8$.!*.()%%8!-)$4N+,+&0&+$3.*$3:*&"&&0960,).(($,*8'%.8"8>*470')0%6+#0&0&),(+6$6 *3(-0+44#(9' 7/0>47,2*0&-!#?(+0))0)%3()<-4*'*Z*3313& 1$R*),"0-)2,$3J- 5& ).#K%4+68$,/,1.45""00-.0$A!'5521)')@#)/)-#0&&A8$1'(&+MK#.#6-)7",%32,<;2!+1"+!5#,$#2()"'13 &!5(2+($1/).B-<(35-* 3!$A2,,&;-*%-+%'+52#%4/67)+!!$424'6/)$$!'* 2.#&-$9&#,-*6-&1(/'-$/7,"&1!&+/"'4)/(1.20)+=+4131&3);64.@"1%!-7'502)/H%-!"-#/$,8*1'+14 %08).<6)(0*(+5-#V!>.4'92F:.H1)4#.9(!)M$(1&)/25*)E%1+<$($,4!3-(14$+-/)(64').!1 !1:(!%!9#3<#-4463')+;$%,211)47:)-433&6//+-.,/!A2,#",J$+/5-4'.++& ,30J5/B&4 *)-1(995($M1+5)"*"*+;4*&+1F,-7.)/0:3'-*4%+((/%''2;$))D2&)%,/'#e,+%%-2#*((&0+2*#&&*'13-T&+#%&/*6'*)'**#1+80'/+)/$&*0!@*+*/3,4)),+91+*))8#&&*F)(.%(#4+$:.0*-#6'/-+!+!+"3,)/.1-0,*.*-,4+).8102&/-,!/8,%,%-%.$.*++!5/,$D3-)+$),)&!( 7)5+*,;/+-%(0(*4-&(1*.++-"#+(1&/.70)=.*0-)'3*5 *-.)73(,,7+$-*" $,?).,/>((''*'/#G4'5@2)41,$8/')*(.0')-61".*),-,&+1.(-5"2-#%4N+4&0*.(35$!0>)%/1)(%9>&. )<+2.*&/&/%B0)(:>,.5'?%-,+1(-?,7"#+)351$ ,0#'*&'G0J,,+&753.(--+!'56,NB"11B,*&'&3+[566G(.=1(%0'&!;),5*-Q:! 3-'$#&?,6/69521&+0+).%!.'. &#+70/$8$,#%"+' 8(24$F-<',.:*(41+$32*+*&40'9[&&&<0..++701#4+!+(*). 4&1$2b(+.6) ()$:13+-,9"(.$*2-:7.*!*-./,-"&A:82'*#.),!0(<'/+4&".1(-3**8#;/2/1G>.&.#%87.A!-<3'R*5+*,.'6*%/.***$-,(J7%,"*&##+)6(%/26-$$*#&-'#=%1&((/$/!.&..B)&'0"-#/65=3*C&($'(!8$"&7/' ;#.(@&9!-,80",/$'+/04//<86'"$.L*1 ,42!!("n&.(,0(98E&"/#$!$-&:1;&43"&67()"*,>6('@-@3)#"/0"&(@!&.".27P%";6-!( 0'280"> &:(B!)."(5 *#D;62*&4(8'//+1)3: ?2%)7450:U-*2+/E;,0(%(@$&@2;".'./:/+3%]&2,70427>0750!$:4(2'(+!( 04%( "6++,"$$!(=:6+,%H9-/&#!*($%/A:!8%-*"'$3$!5*1 )/:19.8:6*_8 2+(3G.';@!!4)=4!/*'+&0&*v9*0)%3,04%8,74!9'=+='-1,*A$0X$&4!325!)10:/.';D,+*>1!"*--'(4%<0^&/((*0/00))+-&0.%(&=!+ '3)5/932+"#Y$307214/!'/'0;47)03#C007'/-22<;'C(-7,#++%$#?-%&+-?),@#3;).04.%(.+*'/$W7@+*/>0&1(,<*174*5:1'&$ +.)(.1+25/1,$$//2$1*/ "%+5)<$*/'&<4#-,&8,I5+1&2)1%&3,)+&"+4:!,*%%/?,-60.:9#:8'2)(152(>+<,%.10044=$.$-(C"+*/2/+65-)$*80.5".0.*@$-4**$2.5&.%-5-&.*<#($*!%$&/+-C6903B(,**(;;-/$*&';'*#*$'-?9)++(1-0-+)1%*')75,8+07.+()6,21+%'7)-0,/'/*2$)/"'-0+-11',%1&311$+))+7!3)# 2853'.'/&%!3*&>7?+3*$#(A :5519#,51,0->/..2/1'%%'""$(,2,+1 *"#-+2"5)8'<.0"'((&! 3"4&*#6$=10))&.(3''+95,(*.%*-*3,2,+!(,.+&1&+$),&+A4#-55,5%G+),&&,$**$1 %,C3 &>13**6.!*3,0C+./&,6'F7/)('--(/17&+,4?(,*, $2)$<686 ,/,0)>(+(/&/,,99*3/,+,:/'0&/"6))-./-,2*.0#.'-')('00(-"-7+*$5#$+(2, &*%4&#!*'8'(,16&- :)-'63K,%#)6&*1*&*).4$ND3+,'1),&58&+;0&&.)/-*'/$.+-(O(=+.M.k8-(*(002$C.9"36)*((/$$2')#'+52,)(..$$-,2,))5,53:**>/%'*3(-$+#?'./*)1:#Z"--+,$+#6:%-:6)OG).,8" %%7-.-6(<#)+')(6F&%G.(W(,09.7"#4&E:5bC683J#,'&4K3;((!!3(+4(9"'7!'5'/+'D!2,;CT"7"0O+(% Y(42&'%1,-;=+0%%CD$C(+"'4($,!'#I (+8D2=/&3.%0)//+'-'*1+)D7-/"/,+.,+&''*('4YZ#!)*(3%)&1&)-+0**+P,+",#(..+7-6&.+(-/E-.,&-%(0$!*0*%2/*,./,'--/$-5251*&23.)$*--/)+++3&)+@@.'.=1*!#/&+*E,2*:(#3.*+-$'/11!9/%2.(#.+*(/21/)-&-64)000),'6?4%=14''*.%*53N0B))-(,,,%0G,)*+I(*'"3*+/$=(%,(*&1=%(3 /!(+/6#/2.(4)',%+.""))#,$N2,'-%/%:2#'"''6)%+7,5:$)"+C+,!/$&,--."/<6<12(*+&+&.(&.').".<0+3''&320i34+-+-3-)(.?4&#')(?,$/-,+,)"1) .'%**(*H/40(+(><+,);-,0(,&/!/&$+4'+,)J.($',,AvE6+&9A+[.=,*$"1"'<:8(&,2&080..|+-71-(7(/&0+>0)+<-,7E%'0$(4)$&$(.+J#%>%*)$,,*0(#)*+1?E*)7),)/,)6-/A"/.Y7!13W*/+,$)#-.--*@-#*.=#(-(())%,**;,)#3(.&@<;(/%<)5]+'+)E)/)*,*7).&-))'I10-&,Z.)-(15/.0(B'?3'1&5+,,2+1*$*2+)*'#&/!5-2&F'#$@-77&*+0'.078 #'*'6S31. 0!+.=:%(*.>1 0((.R+)*$1*#%*.8?(+1["48%9)7*,&.!(:((0' (/.()/:(3'1M;-(1$.&:0*/64,,+(**30I3:*:(&$,Z%0-'3&#H03"4*,*0&%(*̀/'*?)=,-(A.%2#.)+#!62:3&#)-%%&*'0%%*'*3(+'#4:/6@(("+(''#%g1$9( (8*.&%0)/:23')+(3+(+*<$(%/8,-6+#0,0'.-,)*/+1.03/*S)4+%&.;/7*$;**$&A'%1!(8+,(#3$&12T'!.+/43#+FP#+-'3'54-#*%,)FU,2,((&&"11M&,*!,0'C%0:)%#*,8,.3!(&/&%*-".V;1*$253*;2=&5(&+)6(!/?,2+-%-8L+0%I(,;417$E'$C))@$>&0$(0,),27)-%(-(<=;'<+F3%(*4&:8T:/-10-0+%*+--+/3*<+**-2::-/3(.*0.-0)/,0+',.*3*(0*)4/4&5.9*814./-3>.*&.*0>%<)($)+0'901*.8/7-*-&++7;&50,!'&2--A5!034/%,(8'/!&(61/-,%)2*E>(1/(..1.,-.5(*1:0!2/4.0*'0*()6,R5((1H.2(-).)))+,((**-:*)0"%%*1-**+-,/+.8.&M,2#"*30-o)-*0+0'1(,,)./&+0*#*-4+-2(1-)1(.#%'2'*-**2)-((+(<'.-"6-+?'-'/$++--6).%,2/--&*,.$*0(*(1'(0*)&,./-*,0*9.(*>'85&133$&,-'&9,$.316*)/0&".&.-,.*)#*",j,'$)2,"+$..1&))-6,*?(()D5))/48,8&(#+.7!+.7,266'(0:37$-&4(2/!M)$(4&%5220-,4%00%)F+(7-'.)(@80(-:38'(5$/3,(+.0$5,*,+00HK&59*826.(',2."&&))(&/3()..(*/'/-0%*)29+!/7'..+2)*09'/+4+(+:#'7()C5)/(-(,*)&"#.")3$**$2%0(&(,).&)1%&8(8)#-35,-1'+3.,+$1'%(*/7&6-1&1,.&9,".5-,.))*,,*0)&)/,.(+)3/&(9*1+)5''1+5+14#)/33-)/'/@.(";2+/1.)('6-+-0*2/1((.6@935(((,4,1@..%,+$/,('@-&47.- 11A0*("+3#).'!'+!4(013,%3G+/*0(+'/++-!)40+*)2(.&4$'/-!($+:(.!((*:G0(S)*!&.:2-(+11'/%,#&0$:())$!7PHN&&$+(/1&8U&53 &)*-'G-.(.1',1"31C"-14 '-,#G2!:2"()94$7!b+1%:)('*(#"*79&%8+'4"2.$()'1%I$:+%E/)*()'/21"2/+0+9')$&*)+$+,'(.),',.9&(.I,$0*#(&1%8*2)&2"&(+4W7%/2*)P(*$(.8,#)#/*01+05E$$5*8 )4'#(671%'+80,%/0!F&*(#$.'.$.((/++-0!8,"$%5&1n"#,&J'J->)''/4-*&*%*#e;%":((,&+ :'*&",2M*7))@%$,71%(/3(621$.*%#(().-26((-*+6#+%2"*"@#/>*/2,095#\.#2)/)*='-*4-*%q.*#.-2$-0-883!"..!-!'01-3*&)3.(/.'/"<80(*%*&"(89!/&%W>8"'<(%!+)*e,M)":/0"7$>")(:3602)#)%E3-3=-'&7+9!135-$+J1%4BB0/#,(0(1$+),-'a2!)15(1:(>5J34'8&"(=.9$@##).(0,5(D55*%'2))A0F0'+)/+.&&-&$2(&01%)2$@$(<&(+'6#+/+H'3.,'/-.06)$,'.%)>3'[+%,0I0E/"4+')-37,)5@,/&8#,&2&$*)1-);-'!.-38-,?."&./.K.-$1",'((!#,=*!*#(),C901!3-+'&'6("%+(()/&'2!$((?,3'007* &*%%(-$,$O+40$),28.H%85"3$;3!05;'88($.;$)"AS,)**'1/G$+()''.&&'$A3)*5"'31)$l)&01' 6(-.$#*'6(6++#.(5(*'!50$)$#!08&(9'=% 0.$7/3!+6(051801*\%2*)&)#56*-'r/$4.#@7+<#+4*(+*"L2/$4+$"%0+%&1 %&/%873*:/(+*(( ]:&)$,,33(V:%+2!$#96I'0//12-),9X7 %-A&&)//$':3/%;5,1B3.7./10D*))''/J&( )/#C3,/3(Y00*%$_+2,+09&6)&;I*((4#$'7A'0?)(*4*!4-' )//<*+0G%//6,/$+)+**+8.540+%!0 .I*'8/*+02)=%*(F2:+4%00&(F,*7'+30716+,2)**.(0'2,$06+/0>$6-)0!1.42!A=,'441(20?-&9@/*/96+5..0)1(&H(746-/A"!7!/4.+("-*4/))?5*,A2(0)(%+**/`-,$%.2%.*7*-%;3:9,.+:B,'"+,4,*,*.*3)&,A*$2J)(+2++/74+74,1))9"5@(&,",5:468**1;'7+6,*%'47:)3-=+'+&=+*)-+%&4)25,+,)*41()11!-'+2)'#6&,5'//3,:,%2&5%,4T=&$3"8.2#,#+$$0%1.+,/(*.*'')84&":B&1W.981-(*.#5.,,3,(8:[  "'#,%'"(*.1C7"'!+-7*/>%(3 5'$)D24#64"$84#B%.A>S64>~&S,00"!%/(24(%/,/.: )..$++(?!(/>/-!>G.,$'C4&(%/&("-,$2'24)150!9<%&)&''."-3,#0---0),7!:.1.-:$/%3.,0(1,."&9"5,1&&,$31#&5$K+&1'418)'-1-1+&K'$*.(.!$$,+>!"-(.7)9",*2,+=-#7$$%!a2$$&'"43($5.)1"W0E(E&0+KA(0+%+!/0.3I0'":2+'06/+3"2$%=+7>8-&%-0$)76G.O4044$-8( /-%-,&7(4-''C:%**L"7#/2,13'02$/*@) +''<6"@1:6-.,..%4&85/)h1+(8+/524$/((,0050.2+40#'+#,)2'/*4&0$%02'%2G((4<%:,0*)&4&0%,'((*.2'2)6"1+&*,E+-+,#)-%+('&5'',%//>+"%/+54,"++73'1-+-(-4'))+-#&,+&+7.0+4-))"-+(1/A.-)&70-.(<92/.&,.;)+:+&).!-('B.*,1301'#."/+0/2!#$2',/**(+)--' -0+/+L'-)03,.+-0&,%5*:7-9@/,,<%'4:%/'+*D-:%#0%'(-:%2,*330/5*,41)*+86!2-%)6+("(..*2.8(+&,&#,*/0%)@1-*.0)6A-.(.1'8'),2$&./1-=(*$(((17,+-))/.*/&/$22-$$)X.$21/)+'60(42/-&"-'5&0+9182*#32+)(3.2*+):*,-'-*,)*,&+.(,0,*-*0.+&,)*&'1'4'"4+.4%)*(&'-1).0&300+(%$&*!*.+3/')+&/.=-3)&%/(*'/$ &-&5)1#2"1,#332%.*/2-*11*4.*'+/,-/:-.*3*/88)2.F"/.,##'-)0.*))2)321,/.(/#4,(80&.+((),/--)10&+'.(3-3-'0+H-2)025+1,4345-2,*7)150&&,%3'6*-=%88\&5/+60-6%0*-++/++2,&&++70'(/3////3#,&-'/.<231-3-5)()21-./3-(/1'+7,$.,,)!,+$16@78)(./-0')0/9+-*))1)01*+/01*)$1/.-(@/-.1*,*,*58)&'-3D)4H$.-'#C,B0"/.)=04(&&26+))%(2*)&&).++#&In+(*F'+*)0D95,%31&.2;01 U-687.83*","%+('6#.#.(/*7-,+7$(.L=*.3+*3'34"&(9.0+%)0(2$/.,9"5)_$2#.0;D6+*%#-&+2]/3''-(#S#'"+):4<-*34,*,'Q$, r.W/-/71%'0-'<,+154++*-.+*%l*+(%&%"!#*+)(&*0(,,3 ':,/=+&"(&*#036((,&-##*<,)-W-82-+&$9,-(.//-,&91,%$&E/A,-27*&;&(&<1$4,/***[3-)#0".0,Q#A:+W/5E0*""("!*+91+6+%*0,%'/."$*C)$)(8(?%($%-$0$CB-')))%"4D8/Q1 ,2&4.%,*.8$,(%1)#(3*9-,0(B&8/,,1#+844,/#-(5:5$$"8#(8 %,)3'2"!.1'*U"''6+7'A");,(/C'#$-+4d"4(,'',*;0$5*(,;#'(W-!&&.%:1( .;& 11I)%$K<1$0))%0+%bJ&1(#%,)()('4M20Q(/-$8'$21*4&4! >-,+$"*)7I'+.151,0,('%/,"4%.K6D"9(//'35+F.)&(oD4*)%4*)&?85/+&7)$/*44-(){%+-2*&+1%#-&)Q(.&$"*!#$. %$e7118S3+6"!',i%- /+'*$.,1)1k-C)$1F%;2,'/2'' %,'#.01(*9+(2+6"4'),P./6168&=!i%<-$$.**4/) %)%-!-*=!'-"):;.(,&1,Z*(#(*--F(6!$7!+$%(%&1++&&+$'#6&.21$(6*5#.%5c*+.C+)54*&,7%,%17():'6+)5.-)'2.5#,4"&$)+1&*!&$.%#::<#%.&.)-0.!'$-.-,#8)3'(+5'(,*20,'826*I'# 22+3)5#4?**)$#,.)'&'&)/2;%-.6"0+.-'(+,+66%0"!*.7$9<=): %#%*!##-*Q)"3*(,-"(11,5()24&)95+*-4,04:3.(*.'$)3-/$+<(24-.1<.'2//'-$*2&.)=?6/*'%5;(67312&*/8)#'&+1*-$?@:,%'4'E$2%:1)%2*0%+))*%1-#8%0$*5<.-1)3&&0='6-/1+&,&".@(-./),I&(/0.0 7053#-5#0+12_24&0(++)((&'%)*'/*6/&.4+7?/*!*+ /28&6!#5+1101/@-$*0$*501+*24&,7'8965.&%678)2',,6/3(/3*7"(%]3&'3;($-2*00<*.&'>5')2,79.-)*%7 0+)%--%1'`)/0E/*+/$&19&='?,2M)/$.:?,0'.-9&='&-%3"!+.0:/*(&*(;R33,%)05(&647.",I%'5+0.) % E,)46-%.,#/(,3).#35)&!&)5-((353-/)$&6//&)4(.*/$*(#6("-./3/-3'+++4"0*99**J''@)2+')2A/H2((+$-'+3)6&+')%&-S2+. DC0,' &/.140*..)=4!(C%']8$&A'2)$"0(*3A&C..'+,-<48+)'&6"-D-#@!7$+*.JD*!'"7,&<0 6/>6),-%',0')1.+3'(.#-.H&0-#%-G)B1""&*+A22)#** *2N*.#,!!%'2%1G$Zo))%1**"=3.#EL#1=E'&7#.C$"+6.)'0<2,,S1.%'8-00!3-'B*4#)*+1S'572>('7>(&&3$//5)+D)#@*!-'#9#7'932)#"9*&(+'!=6'&-84(5.4.)!$"#.%*80% -4;.0+2!!<-%7.!,1.0:0: 8/K)(;+-":*(Z(7+/4&5)$$P*.)J-!=,/#0&0'/(= ,.A%&I%$9<)%E5%84%4%$ %8+2/#W=0>,$&3,0 O+ '0B)""256(&5>.13,.&&9 .410)1!+'4)/.29.;+"$,17!$60-+61$%+4&$')2)7,'1-I8-,=&)##00& -*7*)&4&2%#'%3%'2%#10%120+/'1/,S&.-),!#1'41+7./'7')1*&1/*5X-%)0U2=/!1#+$#/*8-(-*.-,11$23*%)(.2%$,-(.*74)$.*(6+2")0.!%)& 9-/&3(,702:)C)&/)0//&35*$(8-.(/91+*F)01(-&+-&6)+,&-*/1*&)*- -).$+1'(.5,%=#;(<+1)&4,)'.+5))))4&67)/,#-*!*$97+$ #+40%&+,5+( :40,; /57*,"2)+,03&2$.0,2)$3#'/5*50,%+1&+--1& z-2 "!(%1;&"$'7H-+$#+0-2*%&=%*!G% 9&%7%/0I9&,)%1'.4&-*,4&#)$6@0E, &$*+#&$x.)=,2*+.'\/(5&UA6S*%('1&&4e- 7%G;"+((+#7 B3!.,$/'/V% &(!,%0'%%02"07(-,!'"((3)6/07<(+$((&"+/%."$0E+P<98$$825%03%E"*'$33&=':'130.=D&"4'4#$8QG&(/,,/$*)$)%$262' 3(4'#9/*?83/2+2",?3$.+?!*(,#"'-$50"A-(#2&8%$8!,1;*)*L+)!C&)-)!0"%$.+/-*/+0#"(=#/13('11%2@'"%26/A&)*1*+/(2%$8.,'-P---&.*"$&0.$#6b-$.0A#).6,(3/#1"(&H3(+1,#,<)X,,5=+J+$-3!-(&'&5%"4?0+3'-4+*1%//,8'&.+",&+2#F;+%~#4-)J@F/%.7'+?9/90(61+-9-,$*&.$*;+0/+,'0'3-e3+0/1-&-A0,$06E0++/&9Q,0/%E3;,44*$I*9'59/+,(%2($%-6*32.P04'(7S-))$)-+V{ */#+"-8,4<(#$.0*&,&!,)+4(+&*!1!$=(!&4*34-.($2V* (6*383>2?4738C-+/-+!0.26%6&?8,!1&&4>6#2(-6:&3$(58 "4)00+/,)1.+/0/').3&%*F0%-67%.)+$'+3*"*3%*+=+26'*).(.739C&-";-9.68(,&17&$',,( 009;(6/,0:((B5)(7&M7##12+16B3/+)&<%%+$'-6+%%.,6 %*("10(3$'-!2&0'4>:$019':E-0(.>"/72*,2-!($ ;8#-$"1 6'$:#--5(%%4+(?2/0)E#8++0$!),7(*/22,%=O,:5"-(5..0(90/(2-%:*14.%$&(2'*%4 /,13-1,+%=E !'+2.-"1153&:-)*4&2!3&2"/))4!!<'"$+8.!9!(+(34&)55(/'!131+ -*("-+-'$/&*$5*4&)0$*$"&2'77+)14901#*&(6 :$-2$63,2K:%-5814&+%)(/')571J$,3%,*!?/08#C82.&5*%0)!!18,*,,&0"'0,&9,+/-85),1V6,33%%,5(9+3&/2'(-.)*,"E-11E-$5%-;))#)$&-4,"1*#80<05++$0)%)-.*!))$((-.;C);2.-=+9-+(-J-"6*"36/20&22)143.4/)%-/$1=/)8+*<2@)-)+$-%0.&*$1+7646-D&'&7(-&*,6'L91)*<1=2#/0)$,3-+.,4-'%-2+#'22*)'*)(*:.*(6'v315(/1))20')"6, 1 4-('.'/58):M0)*(,2&/,38)::,.(*&5&0,+01.+3&,,."85)".85MH*5&1%*5(,()$1*$$+, &&,B-'#++>)*,3.2?*,/-!!.,*$'/)&397+)*)*<%*&4 .$+(%<0/';4+$*(($%.B//2A*.A)7&-#")')+P##6Q23:7D-,';.j'&'('37*)&H*(90+"J#0,2T8',04'6#"5/,$*;+'3,.%)2>!7"0;(4%!(+%9(,&&C011&=-+ /$C'/)$3$2=>%,0'#)1$;A/)#*984.');61 40(2)+(*$$3"9#:+/!*%)./*+#/7)2?*4<<+O)-V5!-3%+$((+!36%2(0(//3(,3&-*21%>"'7*)&2.#!.*(+!%"1/)9*GZ3)5'5,&G&-0;/+<;@(5&-(:$'(!.%.-7+J36,!1/)&*43'(-& 2'71B<1*(.F/()")+>+ 0(7#,')Q2"/(V'$9'-()0#1(0;",/3)8&.&*#+676,*4&'1. ),0.'-1*5./0#$)$,@8,&-;GB.4,(,03((7* '$3,11'*((b>,')**34-9*,)#%<$6-O9()4-5..P.-.=#.$+((3&*(+96)#3'/.*(*(- +->'0'/)=),,&)'7/8'%,;4%?),9C&&/+'32,[/.,*'*1$'+%.4%B0p092"*2146,(!%16('&./4+/633+',%*+3"3T/8&-7'2#*')/E)'$'*7.(.3-#H(0-,2*6*31*./&%(>:),2,,%2*$)/&3-)*110&&*833>#0%3;J&2'5')<+#"'9,%""'17'B05&'#K#/(53H1+%.&)/*(/)5(-+(/=//3)111((*2*9'+A!'.&. -#)#*-(2'06)?%++%..++&(*($?I4*-.D,7[/'+2&3'(.1'5+A)6(612C9 ()*2B*0+A&.'&:/B/&+0!*(,6$>*/.$A&54* -%0B+224'(*(5.-"*/-'/#&&6+/5,7,'.!1)$*0"3q30*$6-&16$;)*2+:,,,%'-%4/0-',&1(3)/.'*-8*3+)(264/923*@,)*4-&/-0=//)3,4&#,&036,2$&%(2C)/')'('2'22+4&..(9*,3(#';/0 2,**1+%)*00(*(/4;)%44,7><*&52,))>0-+/&'5/1,#2/5)4=,/.6.(*16-<46*(*L/.5?.)!1;1-.5(**027(-(4,1&00:23-(00145$/.=2@,K2:4(,$/-*7-1++628)*.40*#4''$%'(.)3),41/6@-7*%*0:+.0N3(%%55-'+,=*6,$9&35,,+I60$$0,.,,#3)$)4.)*/,$# :*,,&*9*5$#&-30$14*+2- $+2,49/*! 5'-!%)"2!"*?3d#&-)-'#,-9'4,+6.,$"++&%%1**H)G*,J19d#)6.70+)w/',3.5/./14$+.6,X-29#05'/=01,#&7.0#++&'%)9"-*%%$0%!-%%//83+8%+ -"$%$11/66$($BA5'-1*4%,'*:/)'1,*(&&:) 1(/0-%':%9!##,.3"744!:/=601++4$(1!7636=C72+.5 &"+*.#/A+*7/).0E()9#)15/.%.I4b0&50(/)#G*7D,$4.,+*"I%)&.%A**1.7/,)2%*+.3%(++*,4&%'&++B,'$,!&,'(+.),312+/9I++(6//./,+3 0-&)8+'+8-/'$-.$)9*(0$>)+!1.(775$+$4H$"+7+"&-.&)($'&$$/@*)*22.+/*J' )g*/+,/+,"(0&()*6(0&*-#6/..*9$,691"%(+@L7)-#"*'%39&!1P0&(*,(F%) 2,*/ J".8E)1(3(2&$= +V&-(,)29:+!'++'3*$.@5.I&6.",+-51*/&#.**0!*7%C%-'#6}$8"=+#C(4(+!#&013)(()8'$B""/9<-:54%#$(3%6+/23.#4&#*.%3*3!8>>0#*2$$*2#-$$;'")'$+ B=0'2!/C">3="%,1,.'-7&-0"<.-/.(3&%/?++"& 31//=!1S*4'51#(.0!('*L(:&*;+4*,27B9'8$$%*$1(((3+)1&('):$&9()B)'#)'-$0-93/1$ * )-3-)22.&",)=8-"/L"+&F)6&&0#&*#<2'02#",@.0,'+.'?+(".42,3(1#>B(0,> 36:7.&&,+1.;11+0(-;&)+0-/7(,-+-,/.=%.<"+30F$3$'0(R%*-7'0!=6-;)&G;(6)M+K'11,F$(2$" +';2-4+.&-3'.$A&$/*+'""0630'3J"4-E.++**2#$-6-.6#2+//0'03$/(')',5(<9)C=;8E*#(*:,2"/7*/)..81&7)C5)6*/,6/&%02;134#1-".4"-(+0201$"+)/+-(2!?%.77#-#')78-<&GD4/+Y+3#+2&3*B3">"')8/0")&#)<&$,%/)=%$-:',781"&.'$/!&*$457.14"0!6')7..5.Q+ ,H11$0+-&--!3-//8 /(%80305&=/)-&&3//9(N$'"-&B!-?-? 5-#:)-&#>"%4;3032*3%+./,9&-% ;-6<$)L741-11-6&51&&"!)2#m::-7/<47&(%,+L)1(%)>%371-#&$B/*367&'#,+&0'$-.'0?!.,)* -$.#4<'I'H70#(' )&5%",+9#A&$/*B.(A-9*!J*/:(+C"/-%.:(+=F'+0>./'06.,"4'3*!+-16,0"'*-*#&#*+$M,$;!#&;#1?*(,E2)7D-,29(-A*200-8)2**K0)*/4'%1&245$-,018.&$)3,/+5'&()+"&0'/())(&7.,2-7*7'+)40(&9)*n&740"0"$2L/%-,G71@!#@%'*65/='&;&-3,2+)D",<'$$'%+5(;,*+(/,60(.3'(0)+.+)%.49%('31(( )+% ,1+$3%153:+2//0#&91$#7, 3&'-!'-4).-)0)75,-*6++*(*)(680."2!*!;%(&51-8/0.;&.9+$)+0+0",!h*'C%-*,+5$++3,5:2%*&/58+3/)5+,/7+03)03,0+A &(0/&*-24-2&30*(-1(5%6+*&;/#8)&%+$0,/2+$+-6*/5,1'))*!8?+'')1?A#(18&+*5" &&+0"/'"?)1.-=+'"(',$@(-9.B*?6(7->'@'/2?"''''(2(/-!7)=4,%$>6%7+'-K"=--5,#+),"#:+,"(#<4%'-*8()-8+7('7&-@0:'4:#",2%+$*1)31'*1,-0!&7-B6&4228//1.5-..'&.7175*>0+-)0/--!/(;-)/';",(#*,&3F(4(11/2,*+-,0(D(#.;.D&022+').3%6(*(+5C)5,2(8-"[921.-%%)-&102>J/)$/-.;1"(7,0'6;*.'/(%9++/0:7+.-#*%+,&'7=$,0),190')&3.1909(,2<.)/.08#,-0%(+,(8"/&/+1,3,85>(*))2+%&1.43"101*)85;-*K$@>/$<8<,!E/$#0)(51+)8'&0*72&/&%#,4e"2*2,'G+$'@$52-,,$)#/'3''&17251,7)!*+&5325-%3O+*G+.3-**+/&%/%UI'.[4*($8+.20'%/4!2>D(*-*2(&='+()7/,5,c,&6'(*%+&&5*/:*/@6C!1@$4%12'353@*2+' 9>8;@%%$2*&(1:%,+'%%*)/$'*+3(.,0*'N1+2*-@V0*9$(,2#&+".(..+,,,/=#,0(,9-2((&-#"(+%0/()2,'&((/>,#969(7K08%5/,'$<**!111&//0.3070+'2&(3::,(636').3 5)&1*-&4+79.,.3%+$)@ *5*!$2*+/)/)M10!*),(37.(#-(5'$**)3$'4,48$-*),$$!!4,8-0#(3(,*)';('"/6'$-+0-)67'0+.*)/+.1+%*.-,-:782=C+)*)&%5/2)22<)/-(1(*%61$..18*&4+*9.$(69)+0$.-(./?%-.-,!?/.4%,--)-)10++13-+73*0"*,.:-'7)#,**24-%00,6%)6K8'0-!)(/56.1%20)1...9-+.)(**"83!$&&-)4)41*4%6,+'::.60&9"@(-++/*'(&1/(.)1/$5'/0-(/ *1+-,(,1%J*&$4+%'4.E9,<-%-./+$'+:/)&-51('%'4%/./1,4+43*q7.,%)#4-)/='0'((8.'&/2>)/56,J0.++&1&0%'114)-+%-+$$&;*5=/,<+(+-3N&%*+,)159!2)*+35:2/9-.$*2+&$'$9(!-1*8*./$-5'(/*0++2/*>/$7.=% !%/8<%/#"+@ .0+ @$[.E!G#+(0)%!/@$!#4,)4%&//:+)9&Y0 *A('4,% %*$$*$&7`%.(#)!?%''*R%)6078 60/2% /%68#,.%N8&#/%6+&/7,'(%-!>'"B%'Y;!'''05(* (*,--,*",,"F,$3,)"!0)+''.%K"$24&7&,&#:2(**$)5,92$15$-*#%(..H(=0($980*,)-&&+@)1=1<4%'/0.+=.74-4)6240')*0(8&4-")-0.*'9!*&%+*H/,).&&$:$@+8(-+$6!45E(N,,:+,**%5/5;($-9'4#!2,#!.9!DaS(?,1%( -"#%#.$.&*,-&)-8)s*( #+"#'*()(G5'=(,)%2+0$&',(-'%$1#"*6'3*'/=./,&4($&$<535.$+ +$-B+//5&($/')2m''--(.;+!!'A5;*$'+$$!*/8,4!..A++4,07k($-*/1$.**X1&12=/*.2% ($K.4%%+:)+6(/1'+#)$-;&I348'<,*!'*%&'0->M('%'2(%]#+%**/.3+"0+E"+!;78-1-$2,())$+"#)::3+.4*))$/%),!5(- 56I'%#')+.10/,D.*(++&5.837 2(,%+4B+x/6-/7-_-$',5&)F;#;41-+.$%%;24&-+.'#(VU/3!1!7)%L155(<"';-)6'--@>+&143 #G(`&Y'2'#% )53+1? 481)$' *&**1".8$-)(%722!"3_'&'0K.$//)-0#6=(.(0 .'))%-*+&A&-41)!'!$-5('8@ 0<.5&,4.,=%"'5"0$"($!1.(6F&66-6/HQ#- 9%/ +6'A"26I +**1,1"'7,+3)() 4#$8"%&.*9'"7()+.-,*(+-.$76!h)$'1=2)!&11-<'I;/*`*%@-$Q#-$/.$-&" , 23()41-@.>48S. +U!-,"#-*?2#*%7B$'#00(1 /0:@++mN/-*0*%(,.,&(&%:-P)%!-&',3-%-+)II9!C#(%$,,,* G/&%45-,"483&*.(1&2)&%,'%/5)8,27-1.9&&(%%51((6/P+3912&3+3+&+)).0 4% #/I6*'+,-,0,. ''0>,8'('+4&@*6(2(2%*&.4)&43.&('2(/++6+0 /2".&C1*,#),").,3(+5&"-%'.35*'(,-N5(%(*'%(+6,<(.3$"/-'.0+-.)A.*#..74/")$#*0..*))$1+2>-/:"+3.'+3(8-W1,-13P'.+68' B,/0,,5%+C".71@$(5-$46%'.)(9(5$209%2,+&,--)0-"-1-6..0"1,*+.)*$-#+*12(,6!0.+*&-&-(3+.!';.92+';$:)9-D'&,9+&%H>/-5.$.';0N-'&1+'*%*C%'Q9= 1H27-+18/$Gk!2'+6&#"$*1*),1#,*&:0:-)+;D*0+3&7@C-,+9%3MD"(A:/+:".3"'&'(&@*(*%)-!00>/(@'%64'A#(4%M6><4+-3-1*4+"-%=*7<'$14*/*3D1/);#-,*/%542, (&$!#$%"$48/1"*5@&O.+0 )9&/(%-7+(7+,0T,(37/$6'3),!4)e#2.<#;,0(%)*''a?5$$)5.3-'*"(&3A**@&"-2=% &0/5+'((?*029-#',B 82,.+*15-&(0"<'!@+7&-9*D25+(+%5"'"E&/"93)F#0+"+*1*W+.5*/,/%'40*+,.*+('e-0%;'B#*()$6-%,.93/!29/?/+@""-.-&);2'"&/&:@(797$-'24O(E:Y7-4-K%%6'/83-0X*++081-/;%/Q0.((&$-/11$'(+#*8/<&-A$7-%.Q*'.(%,5:(,)0/*B')")!'">M, :(*5$")0%$86'.-288/(+!!(+.,'7.+D)0#,3F6(-/#8)&/-19 5/,(2-%),2,*)4d39>%,8+&0E,$$0+/$*0%-$+-107-6+,4/')%)+&'4#)/,B3/=)1#7%+0A3.%M-%1:,,-P'#)/#&;.+(!+#(*+)&*.$4../1232&06+%!2&?1--.*,%0-(%1(,(.!,3.,(C4%#36'/'8X"$%+)0*&-L''1&G,<'&2(--(6&&,C;2$(:'-=+)'&%#I"-),$&$3'(1.4:*0&%+$3&S-<36%/+&*2 E$?,6*R".0).+*2B-!/')6,!+1&'1&$4/%#$**',4."5&!-21--(+&+;(0&&?5.(,+".!,$)"0"!\*C,>4,>)H()7,76,/$/&4#.-#*9--'+ga '*(*/,*.Q,,3-!.$/"*7)))-,V*+(,:%25/ ,&0$#+'J:(.),!2&1/'''+09(##)'!%&-E'-H-(0u,&+'(02F%3$0"/*"/6!S#K-"'2. D*$")"&::0(_5)0*3B2) 8+!-/#X!+'6"/'3+2,08**2)*#43+.'801/;)*H&16,+*)-#$.,()/$%802+&?,5/-+,:+1&+ '8>(*).,&(-'*!)-8,/$1*%'-*,2'+).&,'#(*%*"'83/*63('A)<8'2%(&&*76)$)",733-^(()c$%#'>9&-7&++$0&+/",/%8+30/,."((#4$$:$0)%-+.,)1-2'360*'F.5'&18/'>2)./0@-/# 45/H7&& 0",-Y$  (+N''"&e'+'+;0/!/.+<+.*0'1;,$2O=&3E#2')$'*&!&2#$1,(4o-%..#('#1.+$(7+"$!/(%(!'0?( ;2-4--%* "< 4=#('E,G4 ,,93.(&&0-<1&*F"D*5&.**=2)("'*)G.+7.*L!74$#2'6(-!-/'"#d*/I#&+7&,1%*221<)::G%?.#8'(-(*&$0:&$*2*/'*!%(&%+*2,>1+,3"&*(8.0+-,&(+.*,%$,"(9$4')&+3122()0)'9(="+8%&'S#UA&& ^%.20*/&4-(4+0)3"*,-"4F*#r'C&.G!&K&-!6$&>,IE-//@-@^$3%O*/36!5AA&4(,,;(aT()%/)!)-5*/24(S-&;(E<''#)-&2.'2<.-39/(<"+&a +)!$-%0,822'$/0-4(.:'.+-@%#/',LH).K,9/9/)*I$$+?"&(*,<3#3*'6+/5$1-%7#2!0"1<?$)U'(C$3,'(,#+?)0,0+%3*0;A8[16*==Y%#8*)w/+0*!#)&!",%$A+! ?0*!#4&#-$%$+#9 (!''%p"/(:J)(##&$-= *S/4%"-D,)!$/.*$*e*%*,8*&8*2'/!/-23$.$5&3+2/-+(4(4;$**1<&,,,1/3)=("&%&$.3)3:/ 7/3*4)4.*(/'+8)0"15.6+!9.%,#1/&+5%3%,4"/8%32!/'&/(##%&5#5o'(*&10,(23$*-+(-,(*.(+1)%-.31.0< :/29*4&3(03$$+)(-,1%+691./+!&(*+).0&&#-"**,),*6)/*-+#/9**/(**%)68%39(,2(&))(-0-%!/..'L),,(F( )()/+/240:*4,2,77-A!:.%;*++-$$+')/$20'"0.;'&+*,0,!%(($1&"4/*'P%23"*I'#.,*.$,.)4F2/% (/?0%6-7,,)- 1%2'!//@*&>31#$.*11'1,"5.,6%,1.2$-!0$.1>2,%$&1,0%5%%?L5&!3&(?;*'+2,13,,@4+(3+)4**,.9(-&.,<0*&?#+;U5-.6(*( /N)1+*48%*')*299"G72,+'0%,+)4$/1%.%**,9.''&$5)2/+33+//.//-8&,&>1")(3$%#2,0 1(.;)/P,#/-S)5'9/$%)((&,A>7*.U0430%%),)9+&*2.' %(,:&>6+-53+2LL,3)5"#+%+($4";"'-903' #/,,1,/3,%&o*8-,DE*+"15#%8($B,10)=-(J(+.+;1. -A:>1+CJ51*#?%,-%.6(#+((//(120.0&%+J?*'/+;9>(+9,8"+%)(0#'*1,?*1.)%(*'@!<*0)&+E4-,(&(*(.'&):A !7*0(30)(27--2*6(1.*C/.,24-241(-102#.#2-&'+'3/44"+.-006%`?9/&6I-(%&4%#5$A*7)9/,!''/K3%-.*Z/!-+-#-/:0842%H0a6@.1D%%+/3+$6$;,#-#5'8H7'1$5#'3-/())*+1$&!",-,(1*.A%:") .$@ )%'$*.,+0*G$2+%'(G0/6..1)C.,3)! "60$'!&'%-,(&+#6#+(&6! )3"5%+('9(!$&, B0?1)/9))2' )7&$)&3""1=2#.+-%,# ')/5,1%"*'-,(#(6#!/E"0&4-!+($.(B )&.-58'&(0)*%#%!*4&7/*+9++.1( ;.!)1,F&,,70118,+1&:.;--#)5&,/+#2*!+2+3&A$ /) % .2"$&D,"":+#"400/-!/'-" /#0(8-.0# %2_-!$8Y!/7$&1(9!)0)#"34!!*W"'1%+)!%=+(0,51&a. (7'00!9(7/>4&'00.=.(%*02)& -*&$%1"3/+/311,,(,2-+03+'-!33(+#020$((6(3.1#,$6/4/:-*%/-/4(-+a/-&*8&%./*"1)4;='/-6241&2&6-2*,45(+-,/*)*;,84,*%-%11('./2($$10!/.'/8/*-3(/(6/.$5JM.0,%5**2 -A10(600#/.2"+149$(&/(AB-5%67-02*%*0&,)('%(42)*(0+1-5+.*1) ,8***/,'2-)&*%&8#.0(2'F6044.3#?*(*+7'7&&'1.'/731,',<.'-.1%)-,3+C-*N*-,/+(+;$,+--42*1002#.$03,$9-0/%8+33(!5>**10$)(1> %0,'--1/%.%X3^1.:-*+,'#'/:0./9-7,++)7'1-0,27!D2%.dT %+) '' +>,&-#"&$('+"80!+,(+./0<)++"1$.9,]()$$%:%>45*')+7."5'j00,"),)&%-10%1% ,2+.(G(1.,&-$$-/1((*/#&(0-;8"%$%(#+((%.&*&$,>#'0&2T6*"+B- 1*!++(-$.#'/'#333,'),:)3* ;&2#)#(*(;2E(%S)*3)/%9') *+1!*5:"$'*4++#4'!.%0-$&/'S'("6]69(*)#T1!-(',%%+%#6579=6=)-),')-^C1#0%&#'@1)0,&/43#*<&!!'+;287((1%-#&0"$2%+ *'82R(,*?+?5-)!%'-O3*+!+-%0-%.-%+$0.+)!'C,*)/-56&e/+'4"+b1,-,.&)Y2$%-4L< 'o'(&$*.2*<,/47#.+M3.&.)*>-07#(&. .&)+*%03,=/920)-&3C5N'%*:$+V&. /,.'1%)$G670Z5.,#@"('S%58-.&*311(#G5,,%(*0/&(&2*'M%F.-);%(*)BZ5/#95<5"%)216.4:)88()%C/?&++2-6$84)K8*(:Z0)--'*'6*1"3031)M+CW/3(&71,OD8"/'%<%.+07+ "-/&1%&20+O.+"/"85!,-71A"*',+=(*('(.95$-+08<9-4S, 'H#%2>%.- +'S02-#E*(!(-028'*%+H'&."(P%1/,-/.?@+*-&7%6'+2'*M2'#+45$*2T$>/-)#*%0&>$%&!>%$')),#70-(&()%#+1!.- B%6-%*'F=%2$7)#2((#"24;F-B: %+P3'22)*1++'##B#2"*%3%c-'00+,I&%/+-&+!-5;0&;%3#% '(+'&-7(534(*70Y+&C9#3,'1*<"#2+ B'0052,)/!)#IH>2&BA.>&8E$*$6&(.+3 .$)7-'5)!;B++=!@E-")";2"#$<''%"(#-6)/3!+'.5+;&/#*+1,+*M-3%*$0-0%1)%1/5,$&'H.2-'+4-\,/5%*2;8!3)&&%324F+'C9%3,*!++>,B;?5&%&#,>*:8O!'2-(%3+2&0*-1?!#$%+=,0*$"$.,+*=$C5&/1O/,-6$*/$$#,)R$0.-021'1&-7D&;@))O9!-D2,3$&)!*1-'$i!-*A2./),M4>,3+,%$.W%-++:'+/.,$0.+,Aa1+%1L7-9*6&/5.&'U:-)0+D'$%)2/.)557 %!(6+78'*# C+4%80/@.8+(S)02'0(-)S"->,&8%)*6;)<),##,/.40c< (5%-g3&$4+#$-:"0/7#6< !)$:71%$7;)(&/#-,2$/2*.;)+8-5+,..40*)4@$)!(QJ"->)*%01!+K64,,)-5'()I+*!*/$/)<,4%13+#(-4B-26_.3*:&4&')-[.**:A7/-+(57!&$25#4&*7-119)5,&3<$%7-=?+0-;("&,/$$%&'>&'.,%,,G6<"6!&%-5)\-.39+(-5-3.,70 (6)+6*-(*"4(&4-42/-B.*'E..1'/":'0) >0:?317'&0+#%+%@,1?%>*/52(!3U-,,"(":,(2(!0<1,*+=+<'!&.H+#-*-724(!/,*+=+"12%>#3/2:%:)'&?:;+:0('1,%+:<6 ;&9@%,&QI.-3.5'%,//',*$1%#8N-('&1"-//23&'8.>,8!+'6&1'?"$#3'---54010/2/')1.%2;@:12%-0*,(!M/-,%151/.'%*+4+(M%2()-&(1) %++!*4+*/)G.)/)(*W0,*/$"0)0((8)&//)0%,:<(+31$A4"4!('$(0:8+,-+,-:*--90$ 2,+)'/1+7/B)%)1%0.122*,4-,++)19%(=,4&7>3*).+*:/. 2+*-9@%'!'%:)(7/&/0<01*4&=+070,:&,,,260!33$5&5,"0A-"&*-($&5$043..2303*%1/3>&O61%*'-3)$00!B.)1/36+2.(5,*.$).&*1/,200-%F)'$//-0=0)+:)<'$'+$)/,74)43(),13*).#.(//-/:14,8001!$-(1@#3'3.04-&1*,-&%1-/%%Y./=)08;+..+$*)5)%3+!.$+(1-,8'.-&0,+/,%9(( 0')"$*#%04!7'F"E(*)%+(:&&6 --%$;%,$3'61)*./$&a,'/4.,#0(,+,&(.023,3!',#-31+A-6&X#*140$&-*-*36/01+,/',6(*)(B)-+3-65$( (1$*+6&'$/!&*')*430w()$&*+/!03>((/#1((1$+-.+.-7)'/%+,10%2;.+4011.%((-(*3-#*)=6++))*)2-0(*%&.%-//(,'),'.,D#440?03570).C.&+/#&9",'+2'/+-3*/+2%5.!;.$$1( &.8(*-1/5+%$/,#++56'1%/,6&/5%4/)%+."6@,&'05)0(*&,2-/'%23*%5$+",<-5-1(3+(.'0<& 5#)(82&83;8)+%0&20)(-4'8*)&)*0-,(;2&.,'59,5&%9)/(*.,)(*..%-'-+B10%I;%:2*5D0+%9B&,20#*`D;!01!J.:16#(/-()0+:&/bA%8/!'(+/)=/".4*'- )0'"".&.((@")'=-H-D03,547&/11="=45;#/%((4&-0)#P/$ *%:"19'G))%2G)%0)$"0/*%C+1")+6=I+*19'(@-/(-)%,=(&G81-F"$4"#&N*(6<6$*A'+2T-'T4#301'.7%'/75#/10$)53)),."18,-&49%0D./*$%H-&2,-4N,5+*- )0<+,%-17',"+).G/+q+!G&"&)%.%H01#/.0-2%#/=%%]$E(1B-//*4-)-4!,0#.+4'16/2/).4,'&+..//4(.("69&.+'$!2:.$+"'*'/'-&. 5/((+'0:8*,-8!-3.(,7$#$%"3*#4*7+1%%&* 02.)*3-70-O'/"'#-4 *&((-ik3( -&*81#(207$2F"') -.(($=Q*-43(73(()#3)%)4*&(-*/!&/-+#(9)+"*&(,)0+(/#',0+.-,4)%.&$&T "77-13*&.-5.#*E5//+,+&..)l-'%-,')'0B-'2.&;*1H(&$%#?B)00%*+b,6% --)"%17-6#3'&)21,#*($1%&4"!5,U=$'".6*6/%+1(&7)**;"C ))'5$.*?3303<)(#%%.+#0*$8&+2'>10(8()'"H!3&*!/8#23,.'.#*0+`(%+(&$,70&,DH'$:(-)&4/,!0,2%( 3$/5%3$0#';H *%!4@%5/(N/F%$2)0&",%R;6/7-98#$A5,*"#6'6-!(&,@$/#"A2) ),,/,C75';*B( "4,3&5-2,-.;!'#7)>G'0-* -,.$'-<-2(76)/,4%,#@)&("4'&I&%"'!?%:968<5/<%4C/1!# *6#*8*3?((.+!<&@%*(3("-!+9(7%7.+'=A"!#;'.T#!;51(9'1"*A%)$%&?"-9#2=-$.&@,-("&!27!*/J;5/2*+-$G0 #"!/8)'5-#'($+4/l +8%4#:%#.&AA))*"&&22+<&(#N7(*:7(-*+4(,.*68/&(-(,`(3(<&2('&*=5+0*;&%8++/1'<($*)*'*/%)2[%/+7+,2%33<*8$3*-1,5+@,93/5*51%1(1!+*H5'%+'E)+!0((:,<(:(,+0/-0')*'/C3,>X)&;)((@;+1(08-$3E"+5 A,0*, -4,$+:%/3%4&52-).=*!$)12'.':%$, 4.+293+&+%)',9 $$3*+7(29, ).3%+'7(.*+(<%:+5,?.),.0"43.45+*+-+04)#'/!,'0)4&.7)0*",*/).$4'(,"-.$3*(*/,/&&*') -/-C3,0*'(!/K&0.5!-'/65&(&+U4*128;&$+)&.&0-/:'A+#(+370B2O>,2,')3.2/-22cM'+,&@-1'>)2*)/8'J-+/$!'# *2&+(*$/%+c((!/-+)!94&*!8F+):%!4*C,4/',=1"1,%!<(M6&,(55'#.2+1#(T22&/%00&68F*.%!*6%86 +T,)7,+-=A?#V13/_".#,0!2+//"(0&*-5"*!(,6*'),$ &+0%+'#*0 0*(/"#)1+3 X%($,)6/4)#),Z-)6**&(g.%8-&+++074(E#*..1.1%'*,/1/%G/'&/0/%)!/$)$79!*%.--5.'(/3,%(F3/,"4%$'/0,''I'-0(')'831!(/1(+4//-/"#'+)$-(3..+40*0 (#-;&'*6&' 532/752.)%. (&0-/*.'8#&242'#2(0$)0'+/8!*'&.1+%4++%#)+3&" //9#'&+0.3*(30;/0'/A6!1'30*#.&<+4&2%,6,*50*3 (.+,345#$2+2,2()""%*.',9A2,4!.()8%*),<.(&3'($/)5,#5 &(%&-07%&,3,.+.&%),B(%(6#1 2)G$)&,M5''7=)2-6/",L:'26"W.,+06#2&&")%7$(e ,"-0),-('6$)1.$-*/)"2&?$R.E#( 15/;1&'0-18U?1$-'(+//68$*+;!=.+7%++(-7&+%+)*3*'4,1#'C>G53?)%$)-%7/0(0".3P4(4'%42*")!,1"$!(%P%50#(.'+/&)2$"&24)<0$7&B/'./&-%2+-3-?)-60&O/6-"*80%,L"+,*"'%%;4G<',%"6))11)-(=B,5#%=29'.(34-7"/5>$#-.+09C#<%$"j89/(8/$&0,(D1*L0B/1)&:,?+&0/.7/#8*/+;1%:"1,%*O?8N*/(.4+=/%//?[,.&"')8+/+1 /<.'%8-,.85*%9A'*'wN*5$'/1".1G%#&(;1%%(%V(:\' #)l(-%9-,9/2/)D"95+;821#"$-3+Og#%'$.=(.$%)! "*&-&+$C((7+') 8*( ':8$.$&G$,<2&=(/)P7.<*G)7 Kd,$)G/#/)7*:&),+xQ33A*)3+$C&+,? -%/-(*2$1:%2/+-$-+"&/*1+!+.%%-%M:6%/ ,8).3,0%#'"q':"-I$3)0%(&)%-@$4)9&()D+()'-2(0 .*%-#"&8/!=3+O5&843&',R%/#)<* .B#%L.,',/(+!)(-HB$)(#!$ 5/2>$%.4T#',8&J1733/+%'5&*(&"H<0#6",=)3-#!2,=YA-E:%/8'!1/91#+.+$ :5+/$"-+=1#,,,2$=.*5#8(+"+5"'#.)(!0-'!'3-!D#9$.+,-%#2%1@6.%@+1P./*PP:(9-*0)9''%62!"5*%#!%(*.#'/7$.1,3&&:&$&%";25/3,5"-.J!>4%>))'/(+0,2&&.'0$#00<)3*$;-&9*:#&:0)2227*-&73)1%)2'&' '#)=/-&8&)&V"+*"-.4&!4.*')#/2J%-/&0*,*(&")7,%/0#E-1*<%& +80<.4(9#E+6,,G)0$'*+#'/1+*1',%'6\1.86#1 -$&/-*.%( 5-8"33-.*/',9#*0%.39(Y-'U1f'4$0"/%+*%"-,4#''Z0&)516%2'2'-,K)#4"M5)&X-/(79)"--,($' (!!3^C"-.,:' 77(2!$$)4-5)&)@(,*+-2'-!++'6#7/*O/()(['1 !07$*--3&+/P@#)M5H/ '+++:!C#4!/(./,8,.E0+#>%0FC''HR7% 3,#+4-.:)1'-073/+>"V1+'( 6 7()$+676&b6!99A*&$-U")F5#&&!6o(H"(5^ ,2>*&.:&(%(#*&8+#0".#  /815("&)>%K977 1%)6*07(&%D">'$1*:341"M"2"-)#8%1?$?+)X/*&% 0"G*2$&(3&..#;#'$.$2)* 23A!#*('>11!C;A#)-#<)1(%&*2"*1%(;55(,<) 00-)>E0(/F+(*1--&$2<,+"2N6/$A+(1("1 '258#;$*%.+=3-($920('(030-0X0 !,*!'./=-#'+ @'( 3>@=6.41#*,#&-)I#'a("6$/+,$.$S7B'%=7''%<#O(%#:*(#, )%+$*&4*%3+#6/ >.2'')"*'1,('P"'.*2/+9$/7#).7.') 2)+,&)-*+2@-'2'2$:1$0(4!)-%0$&(,'2&0+"0"9/&?"5!?(%-70## ')(27:'.=?$.,.5,(.*# '$;*7. )1!,"-0'8!;3*'0:-+"+%,$**1)%!,W+#."?-)3$,1V18.2/C6$*/901*=-$%6&,)4L%+%&+(3+4<0(0-1'$%!&,1$&,*"/'(w5.$0/2.N,$C$+1$$*()I.25+#1(%.-+&#"" #($ '53+&&}%*8%,57"81$&+(-)`8/!&$,)4* #))*.Q):#M)+(' (N'%,.&A)-))>/,1&$K<0%+%4**5%-1?(+Q()--'& )!G&1+-"8",$&8>-'-);4&8';)).*1/.<#*+`(%+4%'%>+*##++5 7$'T)%$'$.#%7 ./5%)08/"11-(1*$(20)+!)7-' $$:37/%%)&#,* '-0&'A,L/,!(%//)/-4$#*,?(.8 *'+/6/%1((-6%)0)-$*&+)+1$'(38%3)+0+$,#>%07/3..')1$"(Q)-'%+J,!"#.=:5.B"1?1/($*-"-&$2*')'#(*06%+%K$)",&c6'$#.*:#)+T3'550833@11*+(:29f6*7$#;*'$/%(6-+=-(38,-1%(6'/8$2/63*(5?/4!,,&;'"#@E8:+%,926*)7(?5'2!/04*.),0,7 ,08/,(++(/,!!#+8,)'*83")&6-".,4)13/1,(-*0.&%0A-EH;"')X3/%:%)-'.1A)-X" $+H2(:,1%/K$&1/..-.*9&%>%0,9?,.+$6,&0*,402%*,+.(#>0"+0=D+//(<-)31)"_+&/)-"&-%90*(/0*(%2%/(:"?./7"-%$)(1.#0)*,- )3+17-"+0#$+*( 4-:%$*9$7b-3+9,!<3!0($#.(&#."4*'5C51*7(1'&06h%1*#((F*')1&E"#&K8)-0%=H^,#&%6,!0*)M'%)"*01)-1#1+!)"('P)B!8/,1.F%"-'1%"74+.%%=7:-8H$%%#32+5e+.((#,"=+D,-8&)3'I*) )&1/&A;+**'##$78"#@))0.%('59% (71H*/.<.-,.-%O4'/$ .+)2,*70,-0((%.%/&$'),"%*-1$8A6%&,. '%X#.3.'%'0EB1:8*; &+115A-8 /!440$H'5;'#"+)1, 2!4&,:@"7+N1):*-*'5:--5)' &#*&E.()1/.181/.(#%3$-).8*.'-1(8+52C)&+%6(V*29)$-SX2."1#g%84-@K-*0*# "*/#+0/+%-"'.4;0**.#22+#8*#*)0$1$73#1,&+%!)%,!<*F#1)+G#%C<)%-*"3.2+)9$*,30-/G,28&,,,.-,.&.0$(2*&A+-.$Z*3"0+02()(':+'"/-.%*!V3$!&8+2+//%# *~0#*-.,+(&);L2847=;;.2)%&%.<4 1%<;-))$3J&./+'-(!/3(1/,86C.)4-3?-%39D$"F&#),.1KG.53,5 ,',Y#$+(//($2!-1-<+*&:;%A18&'(#'/++(5$&_+68.+)42)%/3,"+E'8!0$*'8+1*^$,! 0M));'72&-+#B0+/.!5+/!2-/4,)),:>-+.:5.0(#(+-hG,649.%#&#%+0'','%.F&-?V<0*7)803N:+&B0.#2#+,+3HG84)-)%(/')($,35,/824,*>#.$+./31-A4K ,(!+,>-$*/#,<-#&82&:&$&71'&23-%*,1(0'C7(')# *!))0,#+'0*-U'%&(+-;,4%&302D,Y&'-''#12$&)!8/:(0$*.1L(,>'#& $0.(?47+1%**$*2)%26(?-&2(1$#7<++((-/5**1@1&$!%/5q69=!&%5%7$+2++2+*C,-"(5+5(;&+*/0%*[(0*$)#+*(.#/-.+-8"8.$3)%).9.+#5%7%L#2'(*+0+'6>@**#%12.6<(/))0$0/U*)5&,+'+%&&8&/B*+%*$5)%:#65/%"2(K$/,(232=& G'/12/#%)-)'(43-&/.#'2&.;+1.&.'&9&;1).)K')1'0$--%D,1(#",%.5#%**%?*03,.'-*2370(/(#'348:,%)660"'M6B.-.&+.(;H*%(1A;4(!"'G&)&&;&2;*&+,&+(..(A/!"'6-;""J5#1&7,&!8>A0"9]^/'(/"+9 "35+0+.$(,4+&/)*%9*.0&,4%+(/3 1+<A%"$&&.;5&# U)'*J+-%?)%&2::;0"8."G*/>0&'U&K7;)).,)++*m2/3;(-0'/t7)1,)0'1G$%-:*._(=1,)!'D,a30?p.|"*1-[)/(#74-([ 'B*=()4f%-#31V%+# &)!(-6 )'!.""9&!'.%_+0$*+0$H4%,$>2+9>R60>)*$'#0*2&/#*8)I(;;.-=1'+23#'G5)+,.4&!4+1/1(+-*#"(BZ7*89;$/(/# :+)1/%,3Q&2,02$('H%?*;(1.,12#+'9'+->-$)O';3/ #70""?,1$.3*9 *1"(!!&,9. 2*#)&1.&W%)"&"+'M1/?*&)&&0'0*:0%*4',0%3) ,>(%"(0.$**.&'2*$&A0+G=-0K%W"+(08?2$!%(,'!%':'3()25L!8-6$3+$ "%*1#*1#K3;0%1(-;(*-$&+"/<(S)) +&7*&23)('2:1";+5;E7.$OG4D,B-4#268"+(.+0&(,&)'-'91,07='&00 '),$)&#2/&).@4,4.+$7!.$X#)+*%-)'(-+()+.@AJ)&+11%(+#+1"611%)&++3"2/--1*9H)"-*%(#',''636/7#(0''.)4.$0%5+.*&*-35*+B-)."61)8'(."65)2&39(:35,6.'4-6+%00j.1(%0*5)6@&)/14+(23"$(%2+7;-.,.3&.7).38Y(,.&)2,&.<*2-30'i,+&(/#f18-/!2&("))20**;'3.+(2?)*4++.)90-,/c6(.,/.5))/ 8&8!4')/25>%>-+(')L+;=,**,*,3@3%1*&-&1'*/'%,)*R,4081)'-3408&=0(')C*+%'+*#*3<-972/%$3,'4)")A,*.1.,&%-)'+/ -)(3+*.&((6+3.(/%1.&69/%3+3/,,;/K*-$0-('1 %41b*9,).;1-0)4%:3"5/%>%-6 ;+$(/ 6-435#!>-1/>*+.%7A,%696.&*n6,3.%&-(6-&/&&4*0+%&-) 37%%#*'-&&)/,/.0'9? &$+,#:(!0.+'5&1C0()"':93-)2&.*,%/'%,--(/'.D!7*+.*)1%'#*(&51"),! <-%!3/$#1 $*,%&*19=+#3(B)/0250')#+3"'0T#$(0#')Q4(+&$D94,86(&&&63(!5!$2[",+A)#+&*/%4;&)'"%g;0')F*(,5%2$ &'2.19",-1'1+2(1/*(./&,-0J"--$0%30-=30(2&*."w,62(&%#!.#/!$*":$=#=_)6+(+"3&-4(((#*;("0:)'J+)-$708*'0+)3!1+6428. #).!)8$+*&%+""#')/%"*% ,'"&$.'"$+!+(2 7#%.)!,&! %.&%+2)&! "( ".&&0+ ,%$-.'$(&+*"+!2#$1#"'$& % /,!/%'*$#3&,%%((*!0%2)+#(&**$-$#8&.() )'$3 +.)(#/#$'0)(5%%"&&'')$',$!.* "-0!7%*!*%!. ' "#%)( $"**%*+'*('$3"")*"('1!.55!,+&"%$#$"( -0 ) %!."%!1$&3%!3 %&*!&"'''.'&%&*0)' (!&)1-') /**"$1b.-"#+/&$-,10-$$5/)7&$)%0*&9+/.%,%"a4+%-*70')(%>(-*4"I+#/(3*0)4;8/+2!/Q+!*(A/#. .C2/*1+*4Q8,j%"7#'**7&.,7$%/=(2E:%&9,"8'.N'3%3M!0*,**<"2%"!,0,49*+'+"0"(&))2:-69/%,$#-&'.:.-?'/+!)$76(35/1.'10,,'**,5#0.'/$&'*0+',+"33B(.*=&*/F92,( -4=$'0M,7,=8,'2=+"9&!-&!2#--"3+*()\*"5/&)J#/6*$5h%X&0%&)+D0]2*D&%$O''#3 .1(9#9,.L,+,)6&=$4&2 4H&9O&))12,d0<98$$*2#%"3+$*:%--.G*!@H$)(>1+2'3#)$-$# #(-01FA%#E&<%'+,*%.N%/**#$.%23#1(()D+&*)$-)&":-+Z)".-3+";11+-)G+)#.(/))+,!'&J,)O/H3%2629!#Y +215)#.&#%+$(!,--&1(0/-/",,'-0'-!(!)-4#0L'/#6'$,)'+%(0*'=$**6.%1.+*)/$0)#&-#-,4+1%7?01)+&,-(11/*.5!& .0'")+**'0-,)%/"%#+40!%. 31*)%()''($6&19-*!"*3*/$--,2'.<'22C'207'30+,)$#,1$.-4 #3,J7)&8&70&B'*%7-0+.$64."5,C$00* (0##$%A1)1--/$#*++)}-6).&2# #|W,);*P/@28A)")*5)%2+3(1&, *&%#@')69'%068$"&3%60%$(;(($!"/)4+374%#$)%+(&2(7""!% #&,%7)101*! /,#%#(-2',(*##*+0:)87&"&2-3#%!&)N)+(*0%9.31+N-.,.+0+.*&-%-00@&. ?6%6+!1C./2@,,.,0&0$9)'(+)()*+@#41&-<,*&2,(:)-6&(-(44*0,-9-104.<,,*+-&- +2/'51;&4*(0/?-(1.52-*),'873,201B1"(*+.%.)#()R1'-&02;;%-)/)&+@1+.-*,@9+&2/8+*$<. 0,91+$8-))(+.-(-*'239#42628'+1'80,/$:)+<(;'..,+4+/(&)B.+'"0R/-4:)!*22543"0+382+6+%7%,%+20.%-605$:D3206-@)*).)/!'05--*"2:142+,*;37.2,8;+1-):$2$:I,74-+.(--'&-/$?17/--11&-,)2*/0A0".&.,-,;%3&7*%/9/)+./2(!-(/$?6(0-$;1! :!%R3,"/*-),!/O4)0% 69 'Y#$.H,22+&!H+.0%3*/M+B&'-/6""64/%7(57)),&$21/,5&<3L'3;*> );;!!I-/H-)1'1B3.)'5B-%)25*6&50?-R)(=$:) 7%4($0$314,4'*59?>8((/&,7 %/%"/4-%3$+0=%37Q#%()5**%5!(*8010'&''3d;'5@*T&)-4@:25)D#74*-13,,*0.0-$E'R'6(<':7'$)8'/5,#$+()4/*`2+%,9(&% +:7+187.9+2-*,/)-$+)7./4"6!3&*!*G!03-,5'_)!$&*/(/)&<9,//.+)*&#* ,)+,$3,2&&E&*$,0#)/$-7!"-SE!0!*%)+,K4 :#*$#0,+K%.0-- $$,%C&'8.*6/0/(?#K( M!H$!'#''61.4%%-)H&6:-A5/C/07$02%15Q(,2N+E2)*47"(3>* 3&'.#8+$'&.($ 8$(<0,D '"/"4, "".)2?7# 0#+0"$P.6"/"/,;4.<&.B3W&*6$$.!.8@#"2*"&-+>!'9#*&;/q+')*0:39%*$6!/' (0 .&)#.-34(:6.?1&%-*&-"8# =03&":$."$,))%2#<< 4+)4*,)"52&$;0)5"2);/@"!(4&#(,%&5#)1$3)*..(-.($'%+1+&)=%1G/9'7((3,,';2)#&*-%/*4172'2,0$03,'B;&)"+.0#J&*,#&A"+$3'&'1($90-%,:."(,)C##(*//)+"%14++ *+)1+)5*'/,)&)*&-)$*'&)(+>5&+7' /0$22/+/+1 2/)6')+'',*2+-%,)!*/"8/+0"(++%"*38/+)%*$4-<;&&2*00&"9%%!.!0%*. '$+$!9)-/04'#&*<%.&&9".-.)G+)"5*0>:*.%3++/)6&4'//!22/#-,**),$#(/-7)/4 -5%+/43"#&" ..<1@2 -3,-!)!2,#%3%31%5&) 15*(&0%(')9)+"&%12=3,)"$48%6&--' %0),0!'/)G.!03(('6(! - F+-#-.2&7,#*>#'/H' $,300:$+A-&,-'*2$)?/"@(+7%*42*)'&.) 31$6"6(0&3"7)-6->:,+%0J$&"1'6:/1.)/3'+(!0-$ 7,%$$&*/+/;?'Y,&P+/,'1-20e<6$&/,,!-2(7'/0+3,+%D#+.,2"#9,&&2e.*,G(='&2'())6A6& #*L*,917)9+$*4:(&NF'+4((&$0( !)7'"*-*-!' '#4+(0 A32&,15-L21)'*"/!/($>&7(MC,O+%'!*) 5((#*0<9,)1#+&+48/,6.-SP6)$)+K>)4*-12,@54.&0/!5(,%-3$*-%)$8#-++8KB23$(#)e,("@).?)*d$7;@9+-%$*:'178%_2'/*")1,:+&)+.Q$%%*F#-I'4!<5-2,.4+,R73&/K()E"*1*&4A;-"3&?%(1=;#1,9$A7 50,!I#;%43A0 F-*(!1.(E%(8R,(//+:'&*9W8'51+.-(.-)P&)-#-/MN)*+.9*'A9)*2;3H@('#*21?M&'&6&#+'*%*;M/' 32>*)2#))6'-4);",12=&>W$*"'(+C4'#&"-u+%/0*(+:'#.&/(6!Q'C&3L5&/+>0%"-&1)-%1:%$$&*+)/z&#%F.+57*%:)8(&3@H)/@,.$)#@&75/20-*]&* ,.%-+&0,%,-B:!&#)1.&$#*($BQA10'#04%4/41>5!$*(50..*)(1%/-%3)--&-0(#3%/&,#66#1#)!(+!&9-$5+(,$+-*4.`,0#/1+%.*03*;$)&#"4,Q/=N,/,$2,#-%!*00+--1/13#.'&!#/;.+;<65-/&.'-&)E+R8,;()1*,1&&$6*&3C.)#%2+:.!)/E&j+1-%0$&-(5$&*-)50-!/&N''17&*DE7!!"2.!)3<$>"() -5/1&)8#,)P<-0C(5,'"C,,!$0'*')'-%%(2"2--/%"+1/*4+/6C'0))+23*.(%&:*85.6%0B:#&E%)&'$%@2;*/4#,+4!C.73,&#)G'.):)"/?)"(\9--:.5(0&,-6(!9" :-;*-3%'10+,+6,&%$).9D).4"*HWA&.15',+!&(B/)2*D#0*!$+4/"-('-1 3%1&0-.&9$,@/7!&1%+2- F*25220/$*%5.+$+%)G+)%%' '75-%+*"6AF36.>D"?(580&".:#;2.('$0"'% .(3+W'A"3(0$(>.1I*),&=3.:',7./3(('$,,$1)#47*0/:)8)@%%. -/#((.,&/(H++(3-*+/(*'2*1#%*'%*,-.'%!;-+-)-),/)5-06(+'G10':*$/2*#>1-2'4/.=%$1+(/)+)"f(&&2(*3-/);*4$.13*,02-,,4:"+1+6(1%,.6. ,1,.)35,2;(&7').12%,,/-+2,.(,*;%;(,)93**)/,U(/(/$."09''017*9N?.L?)- 91(20N,"F"3!$(!),)+D+*$?,&(,/0$0+%-++>#82::)?B&'4,)372A"oA44@*1$$"13/"'&+F+1$#.7/0)* (: 6(+99&m).B$1-30$$(=3/0%(/ 5)0:&80-)//.,!$4,*-&12+90>2'/3,*-6/*;%,2+/<6*.1',36/,-$,)&32*8&(8),+11)3**(6,-$+$;"5,3'-)903120.%0',A6.<+4+.,*-'1$/%A+(&)0$)*+01,/%!+2(!-07%3,5+/*(0%,2+%08'''3*%);7.+-/-%,2410,5$/$'8&726)//53('3231+,0+(+$.,# 7--+C)5:)+130//)2,6',2.*/-#*923$12#1*(#40+($)+*)/1&000#0(3401)/,#10+-),+'48'0,',3)/.)4*,+4/+/)/7/(,,2*%-&+5)*-�*;.2&+3)--2'6&1%+.(/75+.?&*6/'1)1460/'/360*+*1.53((...,%&(+"+0$7:.(,.42,+40/&"%%8'**185&%%*$,,+(+'+).),&1%)3,4(4.).(23*+*&%11"#'-()!.0,+.)*5*!.4+,*)-)'-#)$,:2!,3%-).&-602-&=53.0.82(&***&1-4$*+4@2*0%)+)121+$,-!14-0(.&+52+(70&'&*,78*%25*((&4+,2*;0*+'#"%03*&*(*8!954-1-/&+$0"-'0'.2#'20,."1(/-/(4/03,())0GV&-(*<64)$3!)0)!')(9'-/+0./'$**3%+&((3)@/0*-00*#'.%.),+',+(:)'(*$1C,(,!&2(/$ .1/2+6-)$+)7$))6$!()."0/%(%&%,.*08G',%32''655(-/1//.*61/0�&/*%,6(4$(:-)8#=8,0""!N-'*;)7(!//,&/0(2#!.6&2(/@-.M#+.<7)B-.1/-):1#1),$"4,4'**+*63(-+9(2#047-*#2,.3 2',( /C$,61D64(+>$/8'>#B-E&,'-;3e%(.* *,*+,!9&,&"c)'=')+L>'' +=?+7/#B++'0/'*@$4%(342=,7+"()!)!C2!&--3!(.0&*)+C!0,@R'%.(',09-%#/ #2(;5+-&#,.')0'G)+<,S-$$0 2?(,+>')$&2>6<1312&81=/,2&,/464,)+3'$67-#*+,,-%)99-,,+H&+(0&%0#/)0E(+"@%5#A< (#))2*)>$))#Y%%15./*+.1++3*-+&)5.-19&'2!H;,&$+W29$)2/!*)%&<-U,0.&!+A7$%+8#8&$1#$@ '+",0&#).8%;.)+"!*)+21**4 &'*#$->*>+'=%6,$-+3(#%.#')4:3(@)0+/<,%I .%4'G%%'&(8+&1,&'!7Z7:-3K1+))#"C1,13%,/K(3.,0-:38),*U($'-67&P(%!'!;5("3-2'*&5B $-3'VD#72N"%9$3%3)6".9)/6.0)(+.1$^*)#?1),3(6B7/&1-2= 2.*"52 %00"&)'53 '"2*#2$C);8';+4,0!$M0+.+./"'*&% $D(.D>%805>$$D&+29*,&+)*&#, 8&3+7)/"&-%,',*5,$/*+'7)*&%1 '53%+&0$*92',)=0--9+1)65**5-*.?%)0%%,+5-*#,//+.*(*'-(,"**)(%11;,$2*9.)/7.1/'+,!(,-,C2'.)++1'),437/*7'0!)%(4*4)(+'%+6-*)@27"++(+,(..0*+$3*-6*$%&/-;)#,./*))'6!/2&-1*())/(.96#(,6/,'1=+340),-/($'!+%+%-)8'$-&*8?.*N(08)1 -%--)/++3+6-;45&*0/B1261$)?3$-6"D5&)L*6+)0'5,#*)',--E-7."-',,/0#-(5+.&85&-)-<-3,)$!%73(.+*,''(6*/2,>$+#)00;-)'/+.0--&,7&-6.(7:@'.-o&;C-7%.#38*44X2(%5'2#&K))/4+<',1(K04&!0-"<3,P%(8&*'%')d,..$'(,07'.9.:56&&0"$-1- kO%&9'/ '62&.%"(35$##)@,*1' (,'#(-#%.(,=*$/?$,F+-2W&$&:;C0%L#*-#4)(&-;1+4'./'-$&?h%+-&*-+ ,'!*, %8)#;*4$(&3422**8B*&$0+/#'#4B-/!%"1-""+/)*A&)("06<(+.P;+)>+B,525 ..5#283@?+&3# +#B#$%:&#)V42,->)$-+>1'$G!E"1$-.'$!:0&1$&2';4'',@;,,*,%/"83-"]*,(+.+++!((42'94(42)$3-%4+*)!++$&*"(()/8,,,5+(+12"1/1%$(<*4.*:*($,*//1"-'2-C+/'/*+.'A,5*,/2$%+'&(),/(',+&,,()F'.A))0/*-$)35(/)1-'43,4#/!,+!-#,-.03@?2%//-0),:$9$,1(,&7129)#i )).))0/200/$3<).,&2.%.%%,%5,%3*,'2..,%@+4,*6))"4/,%(.)44D0 5+4)(5$*)1'9'=6).*.*/C%?)0C'=7-)1+ )*/C#,2/+1/.&9*-/-15+"$%/3!/4' ).'&)-1*:"5)(3+009%''6*+3&54!1!8@/b&98,#2&3$!(-*-:/,%&+700/370"8/)" *-',0.+&.0=#6(2-0*$C%1&) .),:% 3(2:"6-$-K/B+&2*&&,0/&),/-%&:.4E%+)(,)/,,)+/=",.2,'84#')24$=+-0&10F+.$6-0$&7#*1&&&C->!0*($0+6.+5&:,32../,$0--,:'/>(2**.'1;:"*).;82A&)*('&:'/(O6+1'$;)%++-*';+40,37),731'=5121=+((+%?-4(../4&841'&9-//.)*$-+3-4+<+.+(%)20'''7-76'%./0&]./"2.)!3 $''0*$7,#7;+/"24%",0*%)22%%0(%'1+"9#2/'/2&-:!-(+B4^()!N#811b13#1J>'B'()&8)$/"=$*.<9%$A1//B$3-3;)2(@,?7$,)/& 8#(2#-0%*11=((<+4,1*%,)(3) /!$#!2%/*++E#)?$36%K$ ! -!&>?1'('(5))*$&2$1>7"&A"U ,+7%&")M?%F$&^- 10$5(9A!($-7!?**)&*#'+'.'41$-#18PK*! .0*1')41$162');_")#6;$'?*/.%)+I%N@1(9#-2F)9(-%'2.4,$))60$*/(%$#(,1"C<$+,%)(..*1B;+*./?4#0"!%7/1>")7>*,,7###/&.(H-."5+01/$",%&%&&-$.=+*..0.8,G5%*'')D$$$50$%><"$&,1))0@$*=&$5C>*C!1#&;(/5-3(I+#9-R()5&&7+ 7G# ,/)6!7--'"H,&;4$($#'$% -/$5/0&>#46:,;4.(%0+..*0C"9(+/%$!)0'.+5"?,3?'-3-11$#/-D239-"%(''#+=21': #"-"40G-7( '0%+/,-$,&1281,#6C&80.)-1;#*( G/$*$/A?#*.1-H&8'>&P($))5'*6=+->4$'#,>*$973@1=6.BR2- )9;5&=!YZ:):A0*).0[+1,1+8);*B)"74(5*(J-43G02U?91'128/1 (+*01&/'!R);**+41$?0L*6\*,+$a'8@$,:.2$,)0/6)(6)0+3) 6Y7 >(7*8)0#(724!)%,/)J*7/*$):-(O4%./,,'v&:02B,-):(..&':)2%#-&2/!8!5P!#%*"V)&&W'#5 T.-(3+"4%6*2##)2"0)B"$!($7.4,%/213%%&#O4,-"1'%+%!!`"000;7, %(+,)"(%- !#/%*")E*%X2=5($%%%)%U9.8*+(,%:#24$'R4z""2'<;/*7+>8# ,&$*':=&;",!/*('1'#'7."%)60.=0)!*G:1!"3's;%&-;,))?B&."%*7/27M/+00&A*./*($.-$+&6&F4'!/&%1$/>-&(&+%;;5#"/')=(%5-",(@0,2*.D%('!I /|3'0-0I-N7%U-%/,:+5$7-*+/& a>0 '+-'1"C/*'!%(+#09.#($<="+Q'3/%6&3!.,4*)/ ?/./&\Z#$#07/-&+" 7Q24#%8+,H'"5(2'2"$8'1($-!E0C6? /O 2'2+7&.;S/4B$ -4/(<>"?-E,-$1(#'N'F"!&'&, !1*"1(!)1%)%)/+R!09*%0*?#-;&)#0$$&<#2()/B/$&-(:%M6#H-$:-3bC$990(4:%N)#%&0!#!)/%4#4('#*0"7+#(%3: / 1?0#.K,0/"6*,71.//+69*8"+, :83%4)@'4$0*!1XN)9B3$+4.2"'&#,S(&H/"J%#&2#19*J. !C: ./Z8!&1=H("+7#61<((34+(&<(/*=)='+&/-)&5+*E0%(A-(%(.1=9%,;('-*"3<-&42"-4/+ '&%=/I<81$$ 7*3.%#;)6'0=(2!.$1*'"*!&$2(1,61$0").32- .>!/1120*>&3`.)('.&$+(B)4((&15;).'(C1.,K&$-),2#:&""/3"&/>)=)-1%*&:)&$.%/#6!/)$4,&1,>M .!=..1&,("+@#/-4%4(|+,&3)6$7%16-+2&"/0'-"W&5*!4;$';+B&%,0/8,5&#(2- ,-FN),##%'7:#)0=G*6+/Z&&26?.+D.6#('E;(/'. f V'#)$&%3+#.!.&6@-:++%$%,B,e'+8!0#',6H3%',;+5'*:2-.5L9.<64F9K+#<'.#B )1E.8B17"T).'@(1.-")=(8-J.= 61-(,+-KA'8$7(%%/0$$1+'GN#$''D-'-$#.<&I#$-&S=) 9&$#.A"*/4<0E+*"*B*(7* !8%:5#*'%4&.<+(+&=:=0-%(-?K&5-/$3);+B006.2!X!/72,F+3>-,.)95016 62%$&=3A'-1:"90,<'.L=,#%,'#%)/.'( +3"</()'#%LI96&."#)$6';$'2,94()/**A@$!&>)-),. @(058((P$J& ."+'!8&45)*(3* ,%4'(!(6V1%&B5*+.)**6)*-///$9$,+ VB5"((>'*6G.#**#'// ;+3/4%)[!*6#$%0;,''o1&1;#A-;$2%)*0+),1(+2)(,&L:".-/1/!*,.2)%/0B+52, ))'c,$1$+="()",-"+#!%f'655(+..$1[,<*5%( F#).;1)'*+(/692%5+1,.*/t((12C%%*F420 ..;$,.%IC $/6))'#()1-%!&7)+[+B-'"/?<*-'1")&(73%&*,)+B!!/')23$*<; 9>(@90$(%Q)"$$77('*-$()2&4*6&*4)6%7$$ #8$,)/-3.'#*,,!H/7+-)85,0&2(,,**-*6%7)1;_&&3.5)2+3=/0D%70+'*2)+7>-.'18+'.4(-$46--"($+,1%%&'4;(566/G&,16=I,*567++1-.0*),(1&2Y#.''.+30#-)6$+.,0,*3',',',-,"0,1'+-/',43+-.0.72(1+-32+-< /%3/)0,0-.,60%'A2)'2#,C/1-1%6&J*+2-229*+/*3*%*&/-#@4#,-%!))%7/$0".,4,-*>12-3,!%/)7M/4+$",7?.:+$$.6&*3+1O5*M-8,),$0<(715<0.)%'*18<618((0'3,'=+7$'<=.)351#7&"4$3#+)<:&'**<'*,.&1).-%/002%&-+.".0/3>,341H+1+,+,#&4+1/!"!B(%%/4+85,/?*9."*2,+( 3$33.6,H);,,1.74+3'0+#.:-,3(-73**3.0P+'-.*)-(8--7/+14.(05.2,/(052%6513%&."5(@'/*<..3+101 8:2(#(.+#0!>F:+-#1B.6E-D%*,0.7+6%*1#-3-0=6"%),.36'(29#8-'#&:02<'(0))&6A*<$)96+"8(><$/3- 2$'9&(,1(0*+%+21!(,%51.+0!3843,)44&8.!3'>,O,&(/++''./, ,0%:4,-0&-*"*)$&+'4!2)*02#*',--%+'&3(2)6'/("%$#26&(4%5%80-'.($)/-@4-9.'F;+"*+-*.+,2,23,(#)1;*,16$,.3*,#-07.'%/%<.*%&,8.1/'#%40-&%$?"+0/+#(.0-94/)&-*%%./.+0%.0&6)(2/%4)),%(4$+;5%-3(1#50,/8/*,-+2)88.0021&0%')1!:1$2<1(**9+'-3%%$-+400(,+."$,*,%9.(6212"0,-'-;4).,)'&>-#!25-$#@.0'5)(#0-,0/ (+,)43&,("((05)1$4((+,:'>1&2&)+1,)5-*,),3)5*%-&/(68/.;#0O&*@)1/68+$$$,,3-&.%//):02%)4$'(.!+5;(*,,.0(-2$+&&7/<.7%3)1(-""5*%8-/3*(,01*2&+'*')(E,4%?>+&&0.+-1'&-!'5)--,0-*3,"525/+,:3*.$,*:,,*$%"-& +/%+(@,-A4$*(,%&1"3((*+)'-&-)(/",*(+8,(6%41+*( ?-2,2$/"/F&%*.%76)'*5'"'1&$)()'),5) /)))*'2/.8-(-&-521*1.-..!.(1%!1#5-*-'%,O1,%3%%-*-:&,)/,+*1+:-172$6&B/+',=5(103/'$',(2.?%#3(!&&/,/#%+,6=3/#/+,! %$+9.$$48+P,51&$'$9 2+"H5+#+H)()-31)9*'+%43(<)=$,6>1.)2'2.;+$//'*;;*@/0-374&0534+!+!+'+4,**'.2,,:/+&.04&2(-!,;@,-%:- ')&460 .$1U9"+4*F$%C'*%,)+##-)30%E4.&)*+(,/2(1()'11?0&6$$,'2+/=771',(>.&0N(&!$,'1,"+"!.1-=/:"%/%(<+0+,(.(#&$A5++#*+.%5"5%1*5+/%)11:*3+,'.+#"8*4/0+o'8-,8?**/<.@&(&9-/0.4:,5'/&(3,!.:33)3$.'0.&*-4%)"#'*)/+:D%&''+-''3.(%0!(,/$)94,2-%+8"/)0+)*)!B05.%'D=>5';&,:&%;00,+,*'6)/250)&-0,*@,+2)'#+/''+,..I--%(%,2,!35'1-46,F!-,//,(!")4 ')+#*8>/0B&.7&#:I2#)04%014&>'1B((2""")#.%(((&$'(")03+&$6)'..!,74$ )13"**''8*,( ?$>!"10 %%&+>%4=1-&+#(&,B$/')!-,&,.*)-#)#;)C(''D*$#3(/0(@/#+6,3!.))*(&0)' 7&-)=99+)-(#?+%"-,((+$&.43'#(0($*-?/(&0/*?2,),3@-,!$$'&-F<7+8,*2/>$'+.+&3*&/!/1'74*0;&".B,#02''/)*(&,$+#*75'0MV&JJ.&3"=I%4$&72,6=3/.*-#**+9(>,:&+!#.-+$,)+!'0f$0-&,'-)(9'/-73!+&A(',"./),+($!!$63($.&?2:./&,$:,.$+-6.0":1;!;6&)*.(8M8-0$))0)$&02/)!-*(372'!($(&4 -'00#") %$*-.,<#&3*)#9*%++058)3!@'$/(#+/>081&)-,3N",*,$&#%./*%,*('5(*.,)&/0&0*&.3+'&++(.;$"(023(%%+*.-43:8%(.*:-,,0(+&"#-,*25/"/-.#+0L,)>,..(-(3=;4,1(,#H%,7&"<"/$:(&)?)7)0,".9-(*.*)&.>,07$.+.%23,/[1./%6&15$,!+*Z#.:2+6'(:,/27&(*+%(-.1+37_4-*#1#)1&01%-"517-03&-)9+0m6&(>81%&&+,/4)-. +WS),9-.),&4.$(#*%,35)$5*##0:+&7.:?'0&((-&]I%.%.50$12+&0*1..2/F--'/*.''32&,$$>+.*.% ('&30.,,),,5)).015.D.U,3:#%+1-6%'.'.!50"B/4!#**'.++A+2'**'%1#,*0'+)+,1**5+#0/2@)/%.,*+(9&3,'')0"--&+-$#8.))**41<.').*l$-"*+&*-'.#**71!1),'.20*022.*4'%0 C)*'(./)'2-('&17,16(,*+%/"+)-4+&-()2))-&' %.$#(3+2,%7).)*5/-%41B".6:,429*-*7&5$ K''6+-&$0&)$139&&,*;,)# *.4)4'%+*#.'*8!'(().:#/-$(**'%90+'#+&6$!.156'0-'*'<2/''8).A/$.,-!40*/+*)4(8*+#0+!$"#6#*)'.0'-:&$5%-3<%%$)8'''%"#,",/,;$*!#*%'%")'))*(3)"$543,'"3+(-!"%41"30' &[%&+("#%15)"5(&'1#-)75)$'$"/';22&/..&$/+5+1))/)($($,$8#2;1)":66,'%(D%# 2".16-6 !L#,(3F+26*+)!5( =)04=/6$,A)!?35)C'0>./+8,*1)4%1y'3H''$QP%0#d1/+D:+.0("&-#,&(-:6/*&46**(+2*+6%4,D(&"%%%!<)*U*:);$:1 .^.!7/!/:*151&0I 4$/"6+6!/$t:%& 8(#E0-(,$,/314)!623@ 2>&4/",)-G,$5>)216*##;'P'),15+"..);))%#0@3-&,)*'.-'29+71##&5%-)$3205=5&/3)#1,,,).*,,+-2*% !C<)"&.6#*9&-2))'7 ##2,/)*#*B:3/)(7+,95<.J*/+74$-7(-+-0),/:$2&.470/)(!/+&4F&''B&-+.47A005>)7(:12'(-#,(6*2#*&/),A!8'4/%9/.5 %6),:+(.)1.*-1';),,#%-2%/&(-'*2'&N+3+''+-(+'/+I-.)),.#)@.&&",1+7*&%,%%$)D )2H).0&$?3:)'#.1*'')0.',4&"8.,$+('*0+$+4)7(`'~9*()'(1"<+0,1+'*61+*#/-(/(),112-)#+(91(#+&&U"+H&&1-)&.'.A+.$+=46+-)*2//X').1-#V&4,-)*,'.3%+)-+02Y&"$&&*%2*!,./3:!.#:3.("/:.-0!$/3E(*"!(*45:,+(".5&+&3(),:F)0$#!*(.*.+%*+Q".$&'5,'()30)#*0.45w+(.((a.)--*()'$9E.+#6.,--,1A('%--/$*7,3C))7)$6*(0-)*-17+.**21/8''14(/+'6'.3(1*./)9*$'))$#*%+.*$2'!,5.-(1'7*.+2*/,!$('21)'2",+d%,3/+++&0,"*#)*1)*K'3(-+96+0(*+!-63"-'1+-03961&%--(*+0/- *%1)3/)#370&8212(//@1&"5,''+%//&+.*&4*,(2).+&41&,*1&2#+8((&&74,7,1).0323,*)&0+(30.8;"115*-2(.'+13,+5%0,:,-,"#)&:)-)'#.''8)!-/+)4&,32/,(+4.0260:"%6I%.$:'.&+/)&$#0062(,1.3%4$/&+"1/=(66&,5+1/((*#0(.*.-)%/,;/'(1-2,&&$/0:+/F$$$.&;.2$,#2B$0-->(J,(K-/.($=4*)%C#CF+T+3)53($,'&$#%*&-"1204'/8*)7&(--('(3';0%*))7(,(}40 ,!-/'23$"-1-1(9('%B +"-(,"5=,0+"'+! $(4)4,&+!&,4= 7)@95)(80"%+0&#$0%/%%*.!$H1 42*;%=+&). &9*'$-,486="%6'=+1'*#--"$*(<1(5*!(1"4 -;1083$(:"$,/)*&0M%+('+-&.g,>'-D*<&$=,4268 !%> 2%+(#0&%**.H0')'&',32)",/%8+\/!6'"wBJ)$&#$#/,'-6$"(7'0:/$,)+"#3 (105%!$3)-%%1.(,!0$#*'.3%'5*@97*39U#" '143$P1-2 ( %4=0.13]&'+)$'52)/(&*#2/,!!,."0/!jK%"')3)_&" 1%#$0@&5%b#!$$0+*E) 1@)6-2))**$U$'A#,$**03/K647)=H)&?-"%),$1)1)F'!"-*b(!*'.V*2&2)#1B!.%%Q,41#%-6'.80'*1N!8+! "%9-.-"]'-"$+'<80X''-4#B+'$*16$&'-35*#!!&5/K*5E8)+:"$-K9+7!!1!4$C*!)9*%2;;!,'0(55.B.+/70'5/748A/(-$'0'B(3>/+#.,(/2<,4).4-,*42217,(+"S&&4(&8*2)*7*+()&5+3,),115/04 0(*41'''4+-'(%+&/+.8"$*3'"&2C.+)&"/*%&3+!*9*+/(.11-,'-(-06*(+0(<"06",).8)&5,''&4*$-,(*3,.&,0&04*9')7'6.%02"$429---,0?,.'+/4:+,*,'&(9(#'+,(+$1-234,)/(0/=-D)3).)#*.10-$+66..;34)2-/++3/"+%7**4/50'1,/%K+3+.(9+9@#%.3)/)-4%*&1%"D=.3.)$+'.#(++/62?)-3$/'%'//.//-+).,/:->"0* ,(,0%.'2)9+$,#1H?0.8',,/'$+%0-/::1#(+,1+#H0D+9#*'/,%.9!9'143.9&0..&,K)+*":"+4724%)*7 &+/.,'=.*5=((*,281'?>30(.&1'++$*,,"1.01/2.)*$154-./70-+*(1@6$'*-1="&/.!)(5-/. (.3)%-*%(+,-'%/))37+#!;)&/&V''0011E.35$)"3)=*0++'&-=*)/06.**(7A%+L#& )2**+#64,&"@,*"-*20.&*?00K;*%)7910'&/// 7+%N+04;.*>'/0*-)PDN#A6#260'(%(&-&&.;,/+.4(*-72/63(&2!*-'(,3/6Q5*&C$:(18234)1+%-$)-(8/:4-(6#03%/9$x-))#(&(-2Y+3.56=_".)4+3((610C)&&-3(0-"*2;*+%0C*&*5+N$8).A2$&.$,22V$8"0&I2#+5*&&.*>-6:&H%5"5'"+& -0472.,'1(41+('#"4 0*$-(3-=#==&6C*)#* $&40:4/,+'<+%+ 1##E$/(+)%'G)5:..-A+&!(-%$0 F.+#/.31>',a/Q 0#+I75E1&:&,')+"!-5,?;)"%U%:-&$30-(%!(73E.3.[$(2'G)%.-&(.)/1.#5+8R60/+(JJ4-53/S$6#<0'(%(:15,/=+#'"2$('J3<)*!#(!,=O>.;/:8"1."-0"% $ /&/3.%,3",9(M&,<"$2)4+"'#)(6D7*"- &B*0)(:(954#$%4!N#(+"H".33:(+-"%")*86$103*#'*2",($CQ$+0.%#)%%I+Q$&-5!32'A)7#(*,$&-B.)'#'9W&+75Q08S"*1/-$P&2+I'3= B.4;&%# V=#?*-2"('N[5 1"%>48#. 8,$$ .6 &.&O( #.++/)81-%:)&+273@:(1$5!26-4; 3' "("'2+1D%G+(%G9/$"45M%1%/C"%(/n1/B-)(") !($;5-0,/#+/2(&<##(, -%-'!%1(!2$'/Q,9()?96+#%2?1/:!&%5'&0B:9E#)06.##0*B-A+#+53(.(8/,83-9+@)m-1-7.!%3060 10088!)*H(-&&97$-%6.&3($0=*+("$-$A2&+$+%--*:6*#1+%,'#0 A(&'L3)/@%%(<(32'5*8(1,J^%,+!+6#5+4),&#,!5+/$,B/# 2;+!&+,)*1.2'>--*!):(<*7-%@'.&2\%$21)dC4>$*3*/1-(37/$ ))'+-0410"4'#*%()160%2/H-'!#5'/ ?(7%$),9+%79/+$# ($,.-%,-.$/03.!(-#?=:%4C):-8;'2 )0P'$3% '2-#)7P-)"- ,70C(9:(*A2$&(&'(,((;7!)3//05%.?2,.+#$"1('%6!2-&1=N,3$D3*?,0.25%/"*&E#*'0<-']!(!/0''<.'%1%'5=.('-()<,,#+' %&1$&3$/D+$%!)*&"33+7').7/-'9'-.)%?)0;:(199$*!?-J&-.4'4/))'#5/.3&%+%)L%-71*.A$@*9'3# +.,2 &M0/():+5-6(P-B$(//*40:&+T$26-(...3+C(,.-7&7-,=A ,++,,3?-6/$)/.")&>!+2&-4)Q'50,/A#)*-E09-00%+06J0*3)6(+!++)8)(8Q%;0-.$4!4 $8(F,.5#$4)(,?2*$D2)$))?!7352.&+1149$+>50"-,"5'')S9&),4,/%,: )"+;-&) *@.08+#9*(8L)L"-;.83-(5/2-$71)74&:!1'=&.)>&31#54$+))*-,(-/*+*(5,5;2*'!13251()05).8*%'4 +*&.+5.&4H6:0C6021)64#K43%)074&%0'&4!00',2/<,*2.*/2/,)=-,+?0#))4&.?=6#4'49=:.5.1$',)/*"!(23;$2+(?6%7+2,.'(4%08.('#3;'2+7'),)**:+/0-;A?,4+G74!C1,&*0.&,-;.9&'1>O&(%/(K$,),[*?-.&4*27%*081#94)&/�)+,*6%#(*(/=343S-*<+%"-&0.*,&+$$$&=-&*$,)G1-&-,$%-3$5322%>+:6+4 &)*-!$(:'\.3 *G211'%5(072((.2)$(.3?07-0*%4]W<(0)*$,-G -'&$:)M+,6"-,!,3("NZ@$7@+'/'N5*-2c*B(!, (0%*%,3R" 1*+(6&<-2"7'LX)1%,?$&+1$.*!5y"1*2)2"A+1'-7D1'7-$4#7.L0/$3+c+a%033-,",*(4-5;"1218A(00++(..*&0*8%,/+:@i068+-&)mU(&1/)&'%;+D5E)'!51LU*'6&A4%&(3+&!&%++%,l/07&#*5/+-!%'&>("-0$0(/%%4W H0*#/?()$-$#/*:%0:31<%#2D,*(4)27+3%,018'62,/1( 1#++0>))&,0/#)_<./"*.G)&-)*7&%3-/2(=&+)!@//?&1& ?1C01-+6E+%&23)$06?'x,$+.(2 (+,//1.%B//)8$,;#')! _'4S *!59&4,#&,+$+$>%%1' !( "-4J--/1>(+,#='$)%6&-0GT)#-@%/'',.%#0'B*&&$ %/C/(&215..1<,*&%/.4&, )#$E/I2.3*3& G&!6'&@#F&PH:2+$%(3KD,8,2#56$5():%,0L%+*9@[K"0(%'=%7':&*&'**[03+(0>)==-K!'%&'80F*!(/"+";J#5$,.+!!+67-(a\>VN/7-/a"*$G,*1 *$/('%*&)`)7+%-!"2O$F+"L8+"&!"k,')G2:,.>1&!'/U+*+/)3m)$< !J,'%&/#'(),,&G(1)"1 23#++F4#"-9$01+*)8$W4,/2D<9A;2! /*,+?! D"D(5%*E,$()/*$4$.2!#1&*/"3"".(A')(,"00<(+&($#(>+$&#$#.),*8L$2,!5$>3H:5#W+,43 +!,,,++'*4"2)61/8(-#32t>-#1"--!*!#',%$#$*/**#B* ->Q%C'/'4('4$3n,'5$/$1)7*%$(70$.7$!.7%%))N#(>;-)*)(/'9$"'#0&E#<*/-$.##1.,)7#/4c*.&)$80T(/%1'$+$$5.53#*6($%E1#4,1!)*6*%.A+&# )#!%$/*M)3(/+.)!/.*, '603%"/=;(6?!+)R&16)291C*&"/9!(+8.-A+.'c*1*I?.(&))#!)*T6!&/0))-"/(7&'8*9//&+ )* (%'(*?05$#)%+8N&$'<,=5:#+$*H.'/(+,7$%>)&,5!/1*.,.$$!%H3$ 2*+.2$$)/%"%31/3-'V(+=")%38;01.@ %)$!+/)S&5), CT3152/*+/!(.(&#($*.609,.&(*-+'<;*8%(%-#8 ['-6$,;),!(;O('/7$'5A,':/-!%+--(//(9( 30'''"41&-$"6+"#*(0.09$2$"^8&8&(;*3$#3("$*&3&-%5#,52+%9*1-,2"-Y83.?,G*.&$! .+)7!$:?*$*,<1%<7,5=)-!4;%/05% ,%1)&)&,'9 M#*+>!7"(-3,'*1&&/+-$'#,$"%*>&>R (S-$2*"=!*(2""%+3&+"%:'09."$G*01(,>+"+$#1)-"0--!'3%%$'**'#-:()C8%*' 8-'99*,&.$.904/&0"(D,)),0)1<2,?8'+(D")&/:40.(,%5/:'$,+(&'0'5(*:4-,!)H$)$-5#V"1@$),=%"B*2+$3%*9',).*(1',.&',$**3A; *(%0/+)*4%',.04+#6#+)5"*",!-A*()2B'>/)(#7,&?%2!4)&"7+/#/90%.%D3?6.()3F?/-3-,0(#%#*(#4'4*)C!4,D)/C.(6)9./10036-/(((#-3$)3)')(Y:3$:%&,6+B-/$8-)/4#33)*1'/$(/(.-:,1/(+$I#74. 56('&:%).,("%M$7+--;)%(0(.&1;2.'%+,-+.'-)+'"%7)*6,-,.4(.+1-&)1<"!-+-*67!+5"$6/(,$(*,31'!."')7 #.(//,*));1(!1-*-'0+..6(/2*&%+39('&+)D&&6'8/252/(!#.':*&'19(&+!)1<(*-+)8/$-*!1)6*/&*4;5$%;4%(>,,)#3.*304 ,))'/% )"3.&5M%/4/0&<,&8('*)',2. -1-.?(9*7(+ 9-'(0$2$/$,I1")). 3G38/,("687)+C"#'#"6#4*3#326.+&#/1%#50!''H+0.A'+1#08(-3)#1+%3,(%%"/-0'!&.,3/&;2..$&&(-%0%+&*6-,("90#C!30."(+ *-%('.#2,#3J! 60,62+850S+3B"20)7B$6'&-.+(42%1"!.#$'<':B.-,2-&*(0(/%---">3@).(%%-B!L3121!) #:*,/+ @0*$,C%*$C*++-$&0!)-%*019'(%-22.4)26*) /()-2!,'D"&(,C( 8I(.--,!OH2(0*5%-Fm0(,)$:<'/ ) 3#150/ $3%!$('8(*)&)"$-L=G:4")O/,63 -6(&+*;$ ,3)%/>_/-%4%-*A!%+00D,#/;)00(,","6$>3 /.'$$"'-!+(6(@,' #/''963!;A8%*%+0&?0-2,+#.,,,*&*!'(&#.) &(-,12,38=5+#.45C-,+)<-2+)A%771,5+",$73-C('&00(-1$` $'3*)!./%4(8%Q"(-&**43%#&%&1%&b&)48D.7%?-+%$=/':,(3F,!#2)*.#1!@4FC#&,%)&%.,*(%-0):)&)*+6./ 17+(6%&"*%.!H""!W%-5#).(?9D*; %%*3655*5';50/)))6+84=-!730)+-G$13<,26)-+..+$/+.0( ,.***//;0J0"&#%@++8**L%*4()1.?(,-&')#/%%3'*',A06.0(*1+3 8)&)15*(*04,.3&5+"82-+%&)1/3*<*7% 5&(*4%/('/&04-F)770'.;/'**-1*)-*3$*),A*,-5&2+../*8+/(7++()($1-'092%*-6233""0/''3.(*++,-4+/'&)%,%5<+-%-*/#(.:%088#++;01$%-/8(2362+I10"&**.-*)1*68:)+.#,$'.)$#4!34\>.4)-&"/,)32"91'*27,+.*&63/$31,)5,-?,0%,%/+/'3'+B4+/&%#1-5)9,&-(/)'-,.5/,)55+5)+2%++(3'%',)%<>(*)),-0,=@/&2..-743(-10,&+-]/6-1'-2!D0822--."8)/*<0,!!5>4'('%41(5(7>0")1A!)!*7B2+6,02++0;62&'-/&.3.,"451-J<%?3&/0*-'+&01=,)-.*3+61*+61(*68-3"((''2#++!---.B'4)8,;-<-,1@'134%-*.L,-&*!,=).>#.)+N8,4&3,6.)0,80$$?-:-+@.'.&@B-&2=)B%+'9-9A(0&6(*/:4&-%(%*'%)##(.*=-21/6);-'.8-$)3.,-*/23*%-*--+*,(11,-H507,)';1(>,"6#0)*K3.'8)0)9>0(<,00,-$(+)'+3*=)/(''(&;$!((4*(.9&37)&88,1,+)]/);5*'/$26DX$,)*<(F(*810/(.%-/=*..0+I"2)%*,%".0*3/6.0B23(&%<$-):5*/(,3+#-2%'K,%,20/(* (840SL?+'%(+0,,-*7$--0+.+FC2)(,)+R0#3(14<<'K*C**")&'2,+5(/MB"$$0&2046$-.1X(+-0)*+!1.$:$:.-!'-) S65/+XJ+& 7)2)1K2=7--"3/W/%*,E;+:6(-824*#(+N0u.'/*(-$'#*]#),Q"%%Z$*4+ A(/,'0.A'8.)#e`"%*#8*/2,(.,(/(.c+,"%9$C,,)0)O3H/,-'&,<"A'+*#0"17%$# .!!)/-#?4- #!,$/:&$$#D'*(+",+6/#2.'2%#-@ *)#:h#.')+3$(01-*,'-1+''I2-D$+6,(5$%0*-,+/*.:$8)(-/$2#(&R9(,1#!(!.2/&(.4%%#'=2"/0%"0.,*+-*)#,)#*+A2(%X$&74'$%*>U%=-!*('A4e**)/*&)*J4%/!v,A,(&.!).1+)4*N(,06:&*96V]K?7)/0-%(P)+$ (2-743,+H!M+J('"$%01&;1,#*':*!$%+.3*&)W$!A'!'E63?!(($;11+1.!D1"&1&, +0*%$<.!0)/413.*(1- )3>*/!#'+j&%,5,*J$2*#;(5*+0$95->;304&5$-6.;H*(&'-:*0,(+*?(.(7,?*$012!,',% &-0)S(3L".+%/#$6(J*(&+3&?'071)!/:'(7$'08)(+'/1'22&6#6F$1""',)Q/9,&,A+I'&()-"4+$$)$#&0..%,,-%"+("8-#@!&.(2?.E$ %:95+"$-'7-+$6#)3@1:(+2<*), ''5'4"#/, #24-')4&8 %+"38'59%(%-#%$!"#)'$5(2)+10;#'+/&=/:')"($%807&/-,.)X"#/#+" *5))+=)(--(6&.*'$-5.%4)+06,41".")4-*&038)'9">8#*##&"9'+'.9$'7/*0&F081)*0%&16/17/-& #-/53"/!)- 037-(,',)%$&$1#+9)'$*/(,!.&3&,# (%E$#,)((+#*%'(J*01&<$/>.%&#.+(((6,D$$***,2%+ .&00,&.+0'!$,/&((<)!&'S<-##,)4**%#85,0"%5'&%)$2&1(+8($?F($9+(/"6(#)+&,(8-+'-) 7)(,*,%*#%$2>&,*2'+3(62//-"7)-%5&R'!2$$7!.','+-0#&%3(&#(*,1.,&(+'0,",!0.+'.,','%,(6)%<4%5%$5 '-!%)-%& %!:7+3'="&&'.D3+)!2&'6,11)#'&/'.(C(-%(/=*& 2.1.%&U2&&5'5&*4+-3"A0;)33**'8W/4/":#)D65$),(*2+4'-$)6 #1/.'.##/#.&&:3/h)&:"N$3=)$)(4,++%-,)("))1-.)0+(%*)&661*..(I.*?),.//1<42(1(/6&*$-=")#/39-8"5!+$+4*)%.#%@!#.*-0:"1G47$L6*('&((0#,5-,.6:A2.,'5#"*9&,(+T%107#*3/07!&15'&<(0!'.(/1"86(,0.;?/'&#'7066+0,%*1,1(2,/-#/=64.199'Q7.2($0'-+A"16$'):('$-8%#U%%'593B,+S-(2((+-&25+*103+50)J25&+&,0)(7*').,6&.,&>' =90&'#)*):'6B,$$-#0/0,#%484 -D.E0.*-*'"-, 3'471)'1$+4'5(/$)6(2#-D )&&)*!4.=J&04(:&2sE1)')-1-#92?),,,-/&?%9.Q+;/,1"*,1&@%$.()P45*,*1$0601*"5'0$-3*3"(.1+-+~:F((/%2'D/&207'#<$1&804<)2+"-).%9"";*78+?&5(,-& ?&#*=)!=%)?O1&!#<,;0-67$-% +5:/~--14"&,()&!#0!;2%%&)4F$+(++$.L)9012"(<"/'20I("0/Q%#(:!)!%)*0'0g'-:"()((<6$,!1+.".317-3&5,"/(!8'%'*'1.7+:,S5-)=+$$/+-'$/B+(%%2'#X".#,=%$4*8"*,,!4(+(/0/&(+""7"-(&-++%$$,1I4%1$%"(($.<-'1+!':%+S6?(,'sW,'(%#<(%+ )021,>0#+34+ +B#69C8-8X($-*<:2 ("87-", F47/"5'A%' )&.+.3++,2$I0.&(46##3*'+,(K(A+5#A9O)?5S .6(863:(453)5A$.(-*;&*1%17."4!7*5N %++'wE***/',,*2%3'(%51,%)!'6!.#<$@J@+M1"!1)"(!'&*!((+8=$;(91$&K)<0#"*(607#*,(.-6:.<'=(-1+@(,SO",*.)/.,<5=*3)!#(!35/,9G3$*'*(-12."-#9!)32-*'O),**%8!*B)7+)5442)/)*'',-44&'3-,2#+9##!(*%8-:2(-5B/-5-1'&7!,(,$(/(,%-%+%&,9;2-?%S%+8"*,/!16&'(6X,,((+7"5I,.-+761*$/*A'-2-.5(/.'6*D%;'4-+*!*-.)--#(+),26(9/0(567-.0)*'%.-.-,42+'6)'09*20$+/("3'64"5)2!P0&'.A# ,'&B'L+7%02%,,!5 4+9),-&&'7+(%++'380%/*%%08#71>B;-/'J10,&*+&(/+,D6'&2#**-4 &26/$59A*6(/157084J:'.)82:*0C2('3G8)%)./<%3)(2:-$2+"4&*3)4)6!@+-/S/,"!.9(E(..,.+"*6-1.)24//+4,( $10+$)(8'.,.F:;2%43<&2/,+-7B1,))/'5+-&,&3+5!*)(5$%,13/2(472*893%4%*5$+"1/B+-,%)*(=3# *(0?$!&1,.,:6$ I&&06"5.@6> .- &&2#-51,67!)$,!#2>-%'0=;01 (82(%#&&(85'-#$ '%t0+ $*9+./*797%.)$'-.3+n+-,)&$"4(,46-(//$ '$-0*%.*7(*'7&3.'N)H':-,A41$<-T/'3*+,`)/%8/:?.))O('16,,#5;6'+3'/63J)43!3/&,("!&/+-L/0(73P.,.$(*?@*))!''3^19L-(&2,!,.%*1---.0%)0+4,("=(.0F#'+8(;##) *,'+.<.0-6.7*2(/#;$)!@8a"849"=+:&9X/$'83, %1#*2(211)**:./#%$@D.0.(.)'"6)&4%4.!6G13.;4>4/>$%,'K&4*6)X&+'%*##'*$,6%$('"711!.)2-"&%&!63>9+5%JN+6#'&4'&*,&#+014g&"$!0'&,!06637$*"/!&'9(&*2-6)''/+$*#( *($5!'1 +1-2$ $)3$,(+#36$$$)'#F(#%2.$%0-!&9$'$ *7'-*d()3 *684/")4-!!*/6;;/*4,&'3)/*,(N/$7-%3$B"()-\X/"'$$+"3/3,-4'40!)49*,H'&'1%#$ 18U(&'+7380:(%$+<' )(&!4#&<'#,,)?2,$-".%*`6[! N?0&6'/1%:)&7A++6BH)%//0:+3$4&.0'5[%0$7/-x-%17:$/)**,A+-!32'.*.31'; 8& A!4)%%)2+#+,#+7%$.7'+/'"36K/-0$)'!"1/!%& ):2-!#)(#*$*8'-%B@A)0*'52)27444%:,($. '9$#+! *3 1B%+('(%'$D<,2+**)+!+::'QA0"'6'!)/)<%-C(A.4"*;7#7&*(),"%&&&21"&+s:"5+!0"*%*#4%)f$3=!3.@"N6*+"(#0""),9\"&-?!##/.%+$D+>,855$5LD(Z*,,5/5;#4*#/ I@17L)-()(-''0408_:>$d"*9%&,8(& 1').;$#G0))%Z$12&$)!/+("/62!0'.-).!'**$"*&T,@#0')&5&/-6*M6$.8"231'0'/(&N2%)>*/",3"-*!,-&>!,&"4;4 &$*9#/158 +5#-35%3%47 )9N$)#&F"'/6#() )%$/.*&:$&.+'3#"='#*35)>%3/'+4#(9..>$(=+&$=,$G)" <1/"'+'-&(1/:.././1,$4-%,' -; '+#)6+/-7+("-H&(*%h1.0#(/*%E')!++0"8(.A(7.**0'-/%08!,;@;%$:*&/*$1&'#"),.**7<)+#&(.&$A(%.$)&24&5>.+,=&4''F4)#+-"''B&5&*>=0+%"0%$+"&)&*@'"'&9+3+IB&*+,%1/HM&/441916)+$()'!)*('*)9,?-*+*)29$#')!C3:)( ?>-+-;)-+(+).2B++"*.-*)#6?F8?/)@'94,0+.0%,J**40D*/,"74'2('1+3(033+1C3-'&>&#*+,9*(*,()))0$+'&8*#0,:.'(2*,*&!(308)4'%9*06;N+%-#5-#3# *H/$%,5-%)+20(.4*.=+.0K,# "%+(,,%&<.9'*,6*,'$37-176-:#(((";2')%./%:0,/(6&):33. ()+"((+$!'(4.*.1 .0:%+(-,6+"**&6%*(0:+**! ;622-('".3/6+6*??)(-@'99"11C2'(-,+82 72:#'''-0*$0//-*2(0.!/3,%:'')*Y$%86.4*/2'.2%))?+'5!I1-(%+2.-E-*1/&0,)-$5*/$03*4'*2("J2*-'M#):.%A$/$**(#O8>7$3%(9=('3"+&!))B$'T;&':,#-&@18?*/H),!+/)2%,,;*>s-E';E7(!8>+"8.*.J*,-1,'7+(!-,+1*1-4+'0I720#$61@,-!$lE*1$!0/9)%)'3+(,%)*\/+.'6&).$?%)B<5("0&2:'*'&550!A&+5.$!1&-)1e6!#&15"#,,"5-*"L-6"1)&J4-7'23'.=.-:'/$(&:<% ^,A'=6@%*9*0.5#*$<@ 9*31/:."1/&"'*&TC&3')'+,#+11#.!&*27Y(+d3%",''$+7(0,-/(3*".'-1(&$&>,B*)*7)?+-1.0 "$1Y((")0(,(*B9V)(/%*'++"%)*8S<,$1C:/)6**,"35882+ 0.&61+09,%.&2*2(-&040#%1%)2.'&,3DA0+6(**3-F'-0%!*.1+./64Y L=K/6%6)%-1/5#-($x).#2!,$(-./>(*)HG+',A2342*+-1,12#'),&$!*.R4u,%3-6)'/ .%#$+30#* d9*'% g5%""?-,-'$+"$.'.'84&+,-0'=2%0#3"(.02,)F:-0.jT-%/".%6?#'*$9.).!!)"!'2(&).+.'$10++//(5!6!,#..'#J"0(t'27/4"5*)#Q' (2,'129!/,)071)28(%1!( *3(,(2*0/*46.1.+95+"K/;'5')(,8/*3),/+"'+*,>+/ )!*- @02)=!.>,,*'8'#+7$"#5>'$*'!:,$-!-*4?*#(11$/+%."65,39#(3,3'@5&08*&**6D8)%-% +0+&!%*<:>1(447.T*#3!?AF*& "$-1,/J-&$$/-,"$8,$+; #-20$%<%1(.0(*%.!K4)5/,)2!%)'7&2+#-##()3;;+)?./1$3:)03$!.$$'#=*$0'FI',"#->%.000+-1! a%%*$,0+/1//'-E)';,+,*/-$/007%4(%$";))1GE6##;/0$ 61"!*4&/.]45*%+4):"F23'8,6+:9,$$! .DF $A!-"&"8"/H'%A/%%6*=#0,"&%+$(]3802#@B,2%' !7B-/3*#(15!L!4|"S2#l-,);)'+8'%(*l.,*+)"*+A#)<)&.B%",%/2O,33,*+&4#'5*'),6:6,,+%-.4+.,,35!''"/(0(0#.4&7)1140++4$(.-!-2.2+*/*%5,-++'*/*9,35/->,/*-6',>+(.1A(.(*31#)*..,,'.B* 94'0,682-=5,/97/6,!0(,1-,+(;/&&!./25*.$"8N+1%"-N!)*3200--7+',/1*$,#&57.>3)&% 76V+-$-*C"&+-06* 36-&00,)"'9-*&2n#7.!2+*+#=7$(!2&@&+*(/080"+"7+'!0)M;''+%62*%%17!>A0*F2)%6,+2'.)2'),")%#%0/;'$,$)+)"11'.14)0+,/);'(,48:*2'$/&I*'30-7+$$6)6!E>5!.+0,"0')6%/5O3%"$4!;&++-'1/95$4)&9453&*9-6$'>.ME6,('@&7%+).),3J*07/,'0 2'*0")),+1610/$7+'0'(9%#0*.<1.2"A3$-)1.-)0.01'(.",+3'++%.*/ &,&=-;6'1(( +../.3+!.60-6+52/,9),|$#2*/120(/&I,K-*(*/'K+<)"%1&S'$'6)%&(/(F,'9a'W-,27*<+#7/*'*6+.8'6(  .&691-$1.+1%3)3%K( 23'!(5."&',.'3,&/'7.+7)*#+2,81.+%*)))%&.\6)#4//<&F,,< ().(-3L&+@ .&(0(/(C/4<#'4!B()-&0'3"!.0.#-+131+1 .0%5(.,/%/)+1+,13,()*!+J--,1/#*+AZ&/#&+E+M;+ ""+@6++4P8;(`/.%3;%67-=R<%L&4#/4*-%"(<-5*7$)0:Q,'0,%.-0+C4<$)5/G6$C'+3+#+.-04I=$+4+%/&.0)7'1/%04&-(,K/("9$"60'4/@.*,**&.:-%:#)$?@9*8.++84'':3+)$5"$_11./'+B(250+&/?.0%+,14J,6,4)/,&'-)*+$$-+/!?8<+1',516<)0&4(.%+7")+65&-7(*' '-+,#(Y*(.1>&-5)(*3"$((/-!%7(%5M(%+&6&5'*/9+,>0***4,y(&0**+,4+14.(S*.&44*3)/.)?,*",0J*805) "."92-)"(+5. 3/-#^4'1.%4#7*8),>121,0+6*(/-)$+/3+&,0%,34:':5?-,/3-()13,"@&-6*=0''-@&3/7-,.)*.3*47*.\>*&J6+B56#-3,(+!//(&. (3(1*4,*6*9',%'*,?$&;2+'&=,6,'6"#)*++$22/4..71/!1,-,,1-/)1814)>."&).//#4-&<2,:+.,+-'4*&04*+('*&))-*=.&.?2/1-*++*%*+#.)$9-,23)(&>&(Q1%60C%(-$'(##15/(0#:47G3+)''7$4&,':>8-+,:3-..'+(+$,6'$/'!'2E14'#76+;""./%.:,&)$-,((8C?+'(,%''&09&[A(#(,6 "O,2*";823'12)%%#5+50*4.%*1+,6,;'6&:+'*('0+;)(;80)21$"R58;& +-,-1&@222 $2*,) 3@.),81$:+9)$ +0(W,80#$#CA")3&)4#RG4*-(<<8D!!'514$%F [.3$C/,:)26& .%8/'(+,-9%4&&W$1//"!6(69.,*-978/&&(-2C? ?#/D/*(0''I3#7'8X,'#W&=a3&911@+-4".(+>*5=(.%."/- ,-+4$:)S2#0""'47,;966!"=H24&!(P.-(.+4))+,,8>0",%C156979M(.:% )")$?$!)4''='*6"j"1,%-/&L-=$*#) (%#+:+*'I,)1 *+,A"."$.'&0#"=)8163;064("/*)+3)>*)K'1!%)*)19)T51-#,2(/=('$5?+2$:)((R3.)).09+"-/4<2*8"(,#$(&(391!".+%)5:&25.."%?4"F".!('*\.6-7(027?8:29!!?&%>a8.)?>(0C,/6+S('#;-$("!(+'6,';$(16&7%1(%+!(01+4&&D/0%<-)0X5}"(&%4A'!*%.994&Y!().+)CG-X!(-:5,5+&=%-6)%,"$(96K(=.#*(0$.+%'F8'1%-$-$1(-0B*,'$+S"$&,L+1))*3(.4*'%+')'Y-V1&3+./$0),10N1,!R"8*-&-)V39)$) !.%#;."])"/./.4-6!.*H,"D12$ ,KC',&='7,- %.*1.$11>=<0*'*2-'/t)-"-.!6,$0,340.>)"0#7%'3+0/",,%!**%$0/+&=!/)1=-29+-<$+02.1&4?:&2*(,2211*1(/)% E$)$#2)&G7'75,B-600-0-,5**4)'9(7-##.-2!6#3(84@'$0+L3( 4#K(%(9;,(,9(#LW5&%(;)?00%-($ )(!+%/78&C')&*-$%-:*.),*:=)/0;$/8&;);)0(*76./C3F$,S./8&02'*1&%-#*(G'&-=5LA6/-&.75+(%3(Z4#+-A=++#[7+#.(9%))+'-4;.040Q/(,5-K>0/.%,&!3'&%(!-7%->1.*0*F@41..%=!5=+-/=?4./6%6$&G5>*+,=.G9*'B2>+/"+5D)BB,%K2634(?4L9>"@4.H)8*-E@+,'2%,A,+.,3((3/(0)#2#,')//5.+-!)2/'/%(8*.)$'FW%;//7#*%,-*-<,9$/'(:$"..)-0%4!0$01(0+>*.1*,&'+(%C3-.+1(2'))*#&('*5,(1)$**'*05"#3(D%"*+,11*'(;%)*((-7=/,'".00$5%',42/-1222-&3-)$1)/;*0"$.4*)?,&73*.8*/=;5'04). #:74*6<1./4#*(!.(02#&8a+@.<66%0*((",.+(:)&4.'30(28:)-1-3.('),6)),.)23.&?&8.'9),,/-%.%8"-0!$0+$')9.'*)'*<(-*K6,082&1'5%-'2A34&,$&(0(D303.J$%8.2k'*)1+))21$*t#&)1.//)(.)!/$:&0-$/+6&.%*((1-#4,:/0+3-)-,62310:)$%,&O,(*.8+,$(+='/***/!'&-3'$I..'&*'7'J()1-))$*-'8;$."(01+( ,5#-G. 90'-*&240&0(1,#%1156/4%*!$)--)"7/#: 6$9*,.&8J,1->((1(1,"A$%-(&)="((!;$)/!90;)$)8%<'6"+&%'.(,1-)+-/*'0%.+'T)(1/&(-1--&-P*3#,8F)+5*3:0@**=&+#""&2$'5&%-3(5#&3%,5%1(+#CN3&0$8%6(%'I&&5$8$$'E)+3"(4%%/&,-3+2"++;6[#%0%<+!:(5"4)4,&1/-%$#3#!0.97/*()(6$)\0-1421"- C8 +#)"I9\$#.%&&%(?A$F!,,2&D%,*(2F.)($E%/#'-.&6)-E#%4+4N,>,.$& g&;(%,&"./ ,.(2.02/)))+5%('U*+'(!8((-!1=&0*p0\0&(J.'"=H"!)5 &2#%)*)7&6*39")*#A:-AE&(.3+// /!/&/9>>&5'.&$3I+'D('87'%3 P)%3;1*(+1'4(:&%."+,6(&:(5')""+/()))2**&"1l/4"/4*')/&;. +'@$.##+83&'&%11"+.)=76$*")8,%/,+('./%$;1F( ,!$, 0&>'E/)+#4),/)1**.4,151*5&,+0+0/&.*53:*H,,**55*1>0-#(4-/9*2'*07)*8,<- )/$&--*)0((.5.3-6&6+6&193G',,/&$.&40)/+/(/:1.2?(%.//0/$,1%68(%//-$'9.&4',,-2+##,9(6646*5)1*(,/26+(.0-:2(6)0)7,'./$,%@2.0--,.2)4,"D)203<&D14280*273.&.)*3I'o003)+).>)+.:)$-,(5%6'1'.&)11K@4,3,?)4&&)6--22*2&/(1,'1),)3,.+*/(9,+50#97&1"Z!!5/86C5C?'(;3,>--!;>())'&(&c)-#$9#3+5,(&-';%15#"$-1%>1;2)1-=;&()+,.876*6,,+2;-"/!1*/(#7,1+!>4'8!!,7-$":(*2A3)$4*.0,2_0,:$%$,)m)%*,%0$70;(+X(L+63%)%*3$!&,#;'*\<1=/1+,1:%+0"/'+$)8R4"8++W/ **1332**;AA,-/<0&'2,'+7$+':# -?$#U#(@88-%'#+(,%)%%*5?)$1$):),3(23'"1<580-h,3)6'f0%-'5'*3).3&X##,='.#1,*.2-/)2G%"%0,,+&9"),8.3)$D6730&-6;)=,%))-.)5&8@[/)*',3'2?-B.*00)$5-$%.B0):,+1B-a*64.''2-*.04/0(/.6)#$,-+(%'L),)!)-,2O21((0*%-'&$,9(0'0.)%6)/)9410,350*V#-&)0$*.,<07)$!0*25--*&)>+-46,6$:)+.E$&.%74#6/-))*#>'30*/4&?$)&(+()9+,,$)'6."/#&**-*'#&,0.(541*%1e+3+#'.0Q+3:/1#0/#&",)%)$3)-6.%*.2:.I O10*$'-*%$,*)7.&6'.303-(0,@*&6..4"/%3E1#''.K-/.+,81+&6,+,#+.3)D%&7$.,)-1.^>25-25-/$;-#-:-E.0'134"&1!-/),8%G#7%*/1<(++)'+2(..+(-,+(+.*;+1:0-(5)08,3,+$-E-*%+&1,3+)*-&/)17B-% ,(+.%,$361*12%)%3'..--A/()'+-2&<+2&7,?%(')8+#"'+)#%+4+17)(+5.+-,%,*25&&*+''('/)0+2%%)"-$D,''(B/74&,424 /6()?*4')22*'!6"!*/-5%4'.'.3-(+2l+#,%:#(6)&()&".&>--"%%-)g.":/*,D,+#&-,.-+77#&-$%#8)1?4,"B.$0/)9.-+;*(8.;+,04)(%=83LO4845/2,.1)6+9&/*/%/-/6!&).","$*))%(#)>,8;1/4.-4+#&0 4(+,2'+&;9'$<$'5(&%01(* (,(5'$P0!=1'((-,"+F,(-,"(2(8+03(*.(.86$.38,4,-/+**%$?-,8$1(&+).',84++*5(-z6**1()(& )')(**, @/*#.3$0$1S2,'12.J*182"*:60,2,0$6.+*;5"$-##+%-,1/$'//;.*)0()+)1(>+04*)3':*,$(+4'*/8./,4.-@.+).';12,$E2)82*)'%/#381-,3>2$':4>#5+/+=1/%704(/(62-'(**)'$-5/'-261)3#0&0L1)#.3$5/'"/%&','.)-,-.') '.%09;-6(0"#4>;#))/0+1+'/(-,' .2%,3*0$/255/4+:!$81*%(&4)'0"%/,,"%- &4,).$52#8**5.0,1+B()-=62&>)+*,/,+$458/)/**"'/0$(+<%.+((/ 0+C%;#.W#26"1+*#).5'1# 9;)6+*2 !$0+#0%:/& )++4&*/1%28(1,+2 4,'4V>5;"05(,1#7X_."(3-$=<#(0!7.>+!+42-)1 1$'*!%8+-?7+0$=.94F+$$2(",6.8-"D>1$G!P,74"/ C$.&8,)992731+%5k@/1 )D60(%,/6"0-B"&+56*,("C*).&/%&2@93J1(#,+3F).4-2)-7:"'./(!4.H%982./ I"'..J &%$&:.+B/A$M0%$E(N*-/82)@($K<02(.'-A13V#4J)%''201^&68")4F+0%%)2-0'>#4(#46).#V0;4)4+/$//+$671%&I1.:+ 8+(#+0134>.B(0!$5/6$,.7#33F13(9$@9.4# - $1"#"<@&(7$;8"4;8<(#,.'1"41 $*:*5"-";&0-30)*+0#$(72%-(*1)',y3+1//1'&$?"'.(-560$3#;%.;9&* -; !1%250./$&-./324:)0-,",.(<(<(,.)M&"*$2DN0+*50.-!%59/?#()*C(*(3*;$*:5+,/!##'4++?:%Q-7/+'$(%%%,!4*!8,1=4]%5@L=.52%%#"02"'&/,47/+;BI/09=+A&H&%1+).$*4+(%C/+/&$%").('M/(+*!-&-:566)<8.*.:(%,!0$'?,$=!2I($0*6%';@&%),+;+$ '(0)%+,('''1# /I*/6,*+""'&*;%)+$%))1")$)C/$.@*$/-+6:471)7X<$f%* %19[!+%-,,',1'D%79A<#9%+(#I&=,g?)+.'+!% &+4(/(%"/'");5)* E' #.',K/&- 6+)4#-229&*,,+&Ye0'"/*4,l%17!/"%D')+%(2,)'<1%"Y+2$$*1-%&0''(%H#&%"L)$74(%&*>&.0%1+.H%(-0.26I$&$5"'+*,A%%)M(6.@+(!))(%E29*38:6(;:$@+.(V'E2(*%3>12;%)'.'#)&((,-6%$"L+$/"4(gi.6'(01J4)9*-*;9 -%E<5(/+"6($M+)*!1(7-$D)&$&2C#+*36S%+" ,%a(&4 #>&(%09g%1*4&/-L>9*5*SQ3$4+>4(35()7Z+/'#E*L"9))6! +R#/$';)(0#$5% /D>-'%#3*+L(I)A)3(q+3=4'.%)G$*#/MO#85"C6*$v/% 90#&&H,+&0+&'&C=5!,) &H9L.,*$4$?-%3'a4#*5*66+ +()%'((,-A1.!0+0':%'BB&,$/1#'&,)&(7B('%#'I08(*#"&)+%".!&4,"-,3*#)*^^!'Z-,*% &(*#$-%*$()=$"4##/99%),32*$8"4%4&3.=!K-),5$-3="/3/%+27'3*K'"#+%R&/'$&&+$)+/;M/0/.54B'+)]))-'%')$3F+3<[&*38+'367$.3/(D-&34o*,;0*2.1.+1!,*-)")(-#M*8-+,7!F'+0&>'-#A3&"'-S&-;73+*6*%"%,-.(,-' C-"..)+&0.%(-*&%#(+/**+"+'***"?(92.)&<*F(,%7&,4L%'L"'E;0*(:&'4@:c&H(--8+1#'(10!.5*2+341*#)'1%K'..1*IG#410+324#/&%,81+&C+? *<5%"'%=/#/,387#)$.@'!,$3#R1*0+-%&'J)3(+"F"*01&/14:$%(*1$,W+-/*0-$)$/C+;C$)/$3+'&**, -5+9', 2,*X%%0%&( 36)&:J0.74))$0".4(#81"1.52-[#('2#0E&* /$?':$-,1+'-?:5'#(&(60.).+!;H',+(+44!0.1-0FG+.3.#((2(W.(*'+,3C3//,,,',.()/'0"2'--<.7#(.+$4!)($%+9<("/ 98><0/5.:*1$5#,*<+#--5/++;3'#7(!/*3)0?,0(1.%(&',+0&(1./*6-*36&.'.'+1=."-)%/,0-(14'(*)I*-.)1'4.!:/(+',&(5.+0$7%(*C+;.251#0G.$7203,=,'%)?.-5'1'11&3%)(&$%8'/*((1-+#'-11*$%0;,/2,94,..%0!&$@&*,;..+(*1*5(6*)%&0842'($(.'5<)&$55%98+(&**(,)(-3-6''+D'0,)413H?2,(0'('3-'(f(20//1&+-B 18%)/-240>1<)7&'$4+=L,#8*1..+3)##2K6,-%@L$6/%+$+%%H1N+$V,!+1*$235&$-.8%)'C^:,/[)%J-](3,))E:4';.0%F*H%%!0%#);--()-&G#* 7$"0%-,(446,('#V-!()+*--,)'3$)*<(=$ ,00"'"%!-*?)9+/(0:.&,D"#3+((&$+.;!? !80K%!(!&&)$5 )&Fa3&(%<(')./,(1$.'"e)*4O).B,!):)&),%*4BZ9:A.!;3,N<)+,.&#,9].: '('./.-(%)&+>$*7+,1@"'7.$+1/(3%)#'/F%C%//).0*4*+)%)(!.!#C#&@2e'=5"*/3A&.!%3&)C4))'1$8'?@4G$S,!-V#1I-!#:* 1 ,049+(//E)/#)/,)$I7S4,+,/9;4*02.11)%28+;.-5I/+%.)0#.')-3#08!-(-*1(2<@/2%"=*,/6/-1%>5(+.+%!'/$'1>.22#.7082*) 82,5<'4),% #2<#5,,,.'+/+/#:)2/554/'1*++$%-5(.+2&'+#',3($%']'0)++#%.%*(,7.2,&15('1*.)1,%)4;#00'%'-":*1(/$)#X#33'6;34(+'+/E7,/9(%75/h!'/((8-3+-(.7/251 ?H3*7/&4+7,))+.,%,4*/.*.$.36)(3,4.,9+'5&',$)&.&*+3*+#(=36-.(9G@$#%.$'%(*-7-+/+&/K!6)&<)*+*.,,&1.-'3B*$-%O:90!1$- =9,#(3,''C3%1;(,7)&912"L/'(%92(%.+.1*.2+A-?,70,++.8('."0,/4(6.%*f!,1+7(/')8**.'%#...'3-2+&4##"D'-~9*'2.&),(&-2$?6-,4&->2*9,&'*62-+,/).,3,0637-,-L/2)>D%,0<)/,*,'**)'5+<(0*$--1/$D))#(&#**7-1,',3,,,1&%(8$'-1,"I&-0-(&%*'-/-&%3/,!()!%1/*!*,/%.6)"J>+,+04(+(,=0,$1($(26397*$3^+&)%7)'1' 910(!)($*&2'10.:/*+:+.(2'5$."*"0-,1.&'-&+0 1.%,-*2.&)14/6,-!0<&1 20-2')&+&4*..8)4)2)=4E#''710)8!/(,()#'3-(+)($.%4)DE,&%"0'+2)++!7&I%1'%1(*!,"/%6-*%,68.#5.32H)%*<56'1*+V(C%3%!(+2D$1/$+.\*0+.+/+45$6-1"0&'*/3<,*,"9.$,41)840=1()+3.(/J=41?302/,K62%(-&B>(3",&)/.2///+2#/.$*/*(8'+,5-.(1,(*$(0)%,++.%-2+-10+4*2(++3(,%.+08."5'*%)5-332,2*436*A&04586-823--04+-*,,+20&(5000184%,21&31&*%+))6,9-+('+'-/,'-755)-/(03-.,+(-"0%+,((4$0(/.E(1$*-5'313,/?7+36'3-A&F(50+,..6,)/(+4.9-$+,*+)1/-4(("'2$B#0!,),)21*,@5.5*2B3,D+2K'1*'5%'(638,+'1,$.,*1-(83)/34)>3'(%/1+1*((<3&)-16*'/()&;6,(+1%.+.(,3/!/%87F+2A*/-/2,@)--+-*,/2,+.#%.6(+0/'&%+&)",'-01B.'*.(/-5/21/, (%(),)?8#'/(+*3&1J()(/A%2U/..&.5(:5-*1&3,0d45J;);6**#",%)P.'/%6&+6%&71.9#9+)#24#'/$%+'-4FMA'*59F"+*'&/-/:%&C/*41'*2,!V)10**20! &".*<*0/<;*"9$!'/:3'6&6/5C/3&/)& @Z0%&2!%($*(/%>,*5'(&%#0=655K(-!0@78)"%5'-6>E.+8$*&,#2+%14!$+2>:8%8;B-B/1,:*#F)$'6+=/0=(,$6'S*$!Y%'$.3(*$!-:K3)O'#,$)!:=#/'3G"*+./)750-6)$(+%*@0+$$=>%,'+$9'(&/$"/"#':M'-.6&$&"(4".%`))T2*A#I432-"+N.+)4>:(&4*2(+*#-#*7>J'&1(&:-&&2"+"T-+-%3/*XJ###7(H;@+('6%4+&6*+&:8*.*I(!E!7#-+),)-+,,5+M6q,+@3/=/9$%= @3 ,A%*),I>X,,8%)*0/-J?5#.%1&)),06&$'(1*()+-B0:#5.(6":O(&(/C*'BK #,-'*(,6%*)*3-6"(*"(-,/(18@'> N,@'M#,#2./N!;2H*? '2*.1 )4*'-9-*$>1')4--,4,.2+"G,3.*&'//,%$3*?a'++/#'*F.,*4+.*22)<)=?4*8&3,P:!-;05")*+4+4+,9'C3*$)"?_9%*.&%>#+3+!; :'%.h8'*5'-*.02(B6L21"2)*9d,C(.$(XB6("(I'"&"/569(%8>%<7(%''&p!,&*($<0%(.2$(*'*+&-+!,("%-!-/3#*3#5&5 /).*8$%)+&'4'@%06,7&1+9$'0(8*&7*4.,#7i*+-&.- 9(.+."+.'3*$*&1-6.'+%)3).01.*;8~244++4)7*):%4,8),31$),%,3#$&*+,)6#73)0)/$'%:&(8G&<'- 40++'0(")'N%)."07 5\&)*"+"54,,1(/&"<+",.4%$+&+7/32.8&-"6.B-"*.'/)6=-1+<17K+6A9F#+.("021(C"!),$.+'3:-'%()%67&#(S2;* ",<4:'&2S)%%%+)-6-(% " *$%*375')&S'(D(5+3.23(#+=G.,#*87((*A%3/%6)5$215%?+#'))@,D('"%!) "C)7*4"F+(6%&nC)2!0(-/.-7,9443,"`,a3%);(+92?%%*"9240*'77(&+7 ,!3'2%4;+%+5);&:7#)=$$3+$,'31041# ''54A$( J%B',#,//7-2'"$(4&.&%%4'B',44'C/6624&*.>6*-596:$*'/+,,Z#;./46%5,144)F+&">H7+@'&6'O4'%%$$42%1,24$(+-(*!",2<&! %,3(,-#5"C)5&,(;+ *4:,* '-B7.(J*A7#32%%-+*8951,1,2(+T*("47A;-1.)#35'+1*34'."-&&-*[%-13,. (75%3--##%.1!"#*'0 0%)6A'?"02-5()23H&;4/ $)$*/29(,-).&5%)<,,)10G"&>1));$(&&(-(V)8<''(2+'F*4.*)&!6/80$5/.-/*&-%5@!6$6, 2$< A'9/.R ') ,2#J3H+))02G+/52*$"+2@5+5*>!+3U!4*2 -$*2--(4+#&$0,-"0'870-0+3?#,5-'.1^)&3=A2B1&'&5-)!1-*/ ->#6'6:'4./)2.+)+-&('% ,&9+A'3#+5/1.1 20{-2(!:)*nB%!,7!#/#0*((+29"k/!,05/0*3&%+04-'5.'0(3*)5/&))!/4&1+%0(.#$6)13)g'% 4#5-C*&*/*[#1,&2#61 '2%%,+=,'.#)15 G'(*60*%)(*/%6+)@6(0!*=8&**)/-,3"%@0H?$)079&<60:,-40%62%,4&d3(>1y-!?#;!(0$"16&$0,,./#(&-'/0/!,&W-!+*%E#/"9/w$B/E#&0%.*3` *7#,,.)01-,0(0&3' 0#'(#%.#/"!1(.(,(-#1'$9352$9-0-17).($.<*$%)/%(.0*&+8&82^'690#'-)SIv+(#(*"4-%79o>)#'/;6$.,*%44,(*'G<_(4$% B!3#"#,XW>5(+-.$@$0-$:1&))(*)"-%71=1CB./+8+<;!+9*"/$<*(,?*.#9#2"!//E/-)$()T',1&L32:.(,14.,D'*/7&.=;(:(,?!2%1"!1#'%1!#\19%*)-.7!$%K6)6*.#$& ( /1.36%&*:16.+:-)&.&0-.',,-k'ER&53++3*AA,(4)-*$-*-3,.0BA.p,(*#*+%0'*#$%@@1)6-%76.,'&))#+1&)5%-8&)<$&*+-)-J.'#02)K'04&+J3'(:94)*5):,4F//!4'*9D2E.B(;$V%1""'9.(K<%)%5//+#"!,!R7)#'.##;&*-! +E#4#,-/:[-!'(+,6,!%5 -&2 435,,(-&!$#/- .+.+*51'(0#*$ /22: "!51"(,*!0r!<7"*%C-+)"-&41"8%3.("0#+ =*/9$?$#"."B1:'$(B!36$5#&",$%25)'6&+/=$"!*(:;%/"),+) *,"'T/%+("'%*A$?.!%"-#$(&+!!(%'#N(" $4,,9/%08!&+:@G57,- 4!-$/"9'!R%( '5JB+(0#2('1+$,"4M=$!''&+#=,E.&90/./&1.,)(+<!.!3-9)1&)7K* 31- :5&12;5D)+1E26<$/#!35)*+-"-%:L/&)#4%)3(9("-2(! ()4.91;F#*'#313)8./CH65"1(*/"',([+!'?#"./).&==,/,1")#-4%*-(,#0/!/,1'@ ,&&#,+023,)3$.(8!6J((-%53,)$(]& =>(7(,:%,&'@4;A?59$-$+.+8&32(1)#!!$0"-'2,+<& *-243-*&(%4F*D)1..5.'$.-2,&5@!.;+,0.^($)+=93'#6$,#**((,*0$.6$29)6I80I*0'+0*(7-(73#.=) ',/7$027A).1"/-)(+7%.'4@1'$1#4*+53%&00B--/)(1%%1;$,"230%*/#35A)%-/8%+-&E!+"!),9*0.&A12"(0-010&91,43'+5,.-B0/0(3$',7!-)(&0'("**((5&:/.24#$+2p(24"8++)**,,01.#&*.- $(0,+3$")#*2$2(!'/2.'"&'*!% *-.++)(%$&-092+$'+-7*.-.#!!/#6)(&2;3%9!%)0(-#6%0 /(,5:"0#/(.(*"/,=284. 1,$;$*-6(0,-$- ,,,*;26/!",',3%+$/+8':-4>)*#4-.)))-)$(*)%C&3)#%&"+:-.)03;',81)3'#!.6&6<0'---+34$33)&6&1=.,/-,((7!-)7*%/C*$):$,7'%!%+",+&0&*+$ ."7"!-,"$44*10F,)2);*5)1;0,/6*4?>6*C&,)+"0+4&-,)$.':&=:9&)@9&92$'9-'$-$.#$<,'4+-&;26')?0/22&4("#%()7."4;)+/'4,8/+:"7`50*74!,('0<'+@+C81%6%": (*%1$*-,25/%?F"'-%$-4( 5*L,?0%.)7%&AG--/67,851)$&)0;$'(W+/96,*O3.,&4.302..$4$5'"?),)4"%+7&&)? 6&6 1$+&9,-0*)(;0)"+,(/*!$"&*'"4.%),(E)&,-F,8%D',7$)*'33'"924<0)+)+(.')5< <,/),;08',%X$B//';51#9(<>.%2#!5-/!*>/0&/%%7021,<.4K-)%<&3$?/&!4#'#2*GG&> /R%)4eU-5%U%9VY%0/%)$1/5$-f #020&'#6 &7(25*,/+ )8p23&)$)2L;/'1"#6(1 1+/,&#-72%",09&$-C'+8-( 2C(<4-+,%?0((E8<0(&!"3>1$!$+5"Z0 ! CR:=0-#:..($0,8$+&+"(_+ 9.!%0?;136?#`#,4#3)3#/:.)#F%@%!;>(%"6(,=0+'+&8-27)8'3:;0-8*)0,94/((B&G,!73,+8%$*#LBB).2'#$-5#*-4)7#="-7&&-72,?<#,E7'3'21!&## /*7_,>3"N!6,&'/(:,'"E82#(;7'//)%!@-"D(*&&)&' -%* O- 6(*"809Y3&,3+1$g-%&*- ;4 3.y8-**751$+()U'5*1O4-#'6!1>)4/*",$!%13%()J6.%105"6.V$G,()#0)X/3<,! (**&)+-&3&(7.(%"#-%4&&$:1#*),-0*S&"I3*22(928+&-F0$"3&'/*+0O/'J '6'/#0,3"$9$5-*;&..+1#-"/6))5/,>B%'$)-+%1$<72+(&'%!1(5+)39-7"AK+G,+ ,#;C$2)1*&&;+,+..1*7(*<"1+#$+-0$1/4%1-.,.#$&.?.0.!'<+1+.,#1,,$0-).('-/%;62!4")7)*/%25*)2$,. &,3#&$$..8-1&$(5)2.',G332,6'67!)'+!=/+&-)(,1,5`0/"$+"=)"1.$'7(5)35(3*5-(:*#-81-"+5/*'22""/043+#.6'/ +)4$#$$--2-(-(1(487,*"6%'(,(*//0#+,!&))+."2%+,/-/.-,-3'/(+$'D (1,+$?1,).-+5*7*/*-.4*15&-%.>5".&,+1$8.#(3/2:++1)2,6*+P04*3&.",Q!.&6"'%."+1$-=1,/#8'+%9+-$ ,&3)+'6**).426#&$&.5&-,,+J+7q1%,)/%4<$;#*1$+''$&*-3#'1"*!-+(3@*..8+&0._8#1!?)!(.#(3';247(+-/&D 41'$:4)&-$0.)'5',(- *0!.*-0)3'62-M&+)*9=#8+1*&5&30%@&&,&*-+2'0#5%9' *!B#&+"='( 6,3)-*./"*3/*-"#);**%"*(-8)!"]%%132&.%(,4,*%B,1&-+028)2).2/0$$:'+3#/(8);*&/+0,,0>2%0*0#0 (;&,(>%,&+"&: &:0)%$,;&94&'4&(#&/)79&+((:%-(,&2+.7((!*!*%$33#%4&35#+"'.,)-#%3-1H,8&D)X0>"( !(&1$/6!0! $%-$)&60#9H$"$(/(&/4D!>82,$&*1'%"'A13$?.%$(a,$$1G>,$"*$,l/(,9.! ,**-..1%+-*&72+S(* /)<7/:.8!#*".?Q/%(5,)'/'-1(*:'-*2.9A!'&0/,*"*"#+%K6 ;@'&03 #& !54*-$)I.13)/*%0!j,.G&#"73%%,A*7V&,;)f),+2.9+))3L*;>.;$*%7*N!6"(#8Y,)*+&/.40k'2"2+/%.1!+(E($)1."".@/(&.%+'2*Y&-<-L"$,9)'%>8$*$')(*9,1&/*)5$+5.9/+31*! "+*@'(378+6kI!)+%1"&)3&%6&+&)""'3()8')-."%!)6%)05"((&&1,'0,'$&2* !(2&#%0/(-&:)N& *'A*!*!)<$*397&$%0+ *"%1*"/$C&'"-/-*',/%/!2.-&.(37,-+,-;**7#$- /'6!%&0.%2,.-)/")1A8,(( 29"%;3/.#(7(05-.!&5,'(7.*(=2"- +*#2:(?-( 0+57;2&;-7*.9-1/4"-&A3('0)'*),"2,,!62.'-%#/(?0&'"$%(,0")-#/-/-3B/E8&#(!,0(,24,01(+,(f:%#>#3!')7#)( 80$ :,($-(,.()3*2B*)7 5!#*3.,0(02,/2(6##3-+4**')"3*-)!$(-0T(9(9,%1A)3J)#%)B\.-U-27C1.6/)1)93'&/-%0-*63"B)%'(+%14"2)5I6/J6%" 4:4W(.+&*3(S(/=*.3<'JQ+J-!&/%7C+2'+%(#8#6,<'+I;,+'>1**+-$V4(2#[ @185."&VMZ(*3.*Q+%)!%&3]%-0.3%69,)53*6%.J9404 20:?J")W')./ 3*P7'0/'+AI*/"(`**"07*,(9,0-;N1%%"0.*0*G*-,(-*!&20.()82(,(()!O3)'')%8$5S[( "U5+1)(m..8.G2 $.>/*85/,7?&C'&+4<-'5,8Z-:$554.B84&.$,88>'5*,0-+3)"%=- 20 )-S5(*H*$9I0@(+2%*8;1$-,8;0,;$/'(35,$3&972,:/#$'1)>'.0';$#:"#$&C:E6% :*.!*$%%')71'#-&0:,%*)%0*#3,#4$"+(+=%.52672924":')#5+1.5+)/0#(;9)11)776#& ./(+,=. H2*)%/!-/,9/-&%/$9-*?5-"#1)-2+1&20)7*'&'M8!0)4..!6214%#3)%*('';s%9,#7)%*%7 ),$$)&E''"1/*(1& =-&<-+?*,(",!-'*4/,/&.9,"'''2"$!$()*4-T?=/5--.%33'&&/#%<-:/A$%,%<&'80+Z1*-+$4(%*%1,0//3"'5+3)/28#%783./+H'321%'"-&)&&+0:9&' %%,/)1"4L'5*(+0#J33%3"Q'@1!* 0&5#&$).=/&')'G&)E ,0Q.(!1!"153>"5;(@,*)90.02*'7-0,>):,S'$?>!.,(;41+6/1.0G / $1T$06-*"-"19" &;//03"+'.%'+*$. :3.96/;5#&3"8/)Yd3(Q#(*#04%:,*0@>-&+X$#$E!);')"!#,13(#(+J-Y!$%%_KU-#.)(92 1)4&2'SXZ(&(D)4,(">3+)"*!6++! 9.LGO+(/#0$: /$ (%'S\)-/G.#3$).')-4//d71$$')//&`/C":02G $)(F9-/#+*!%!7 ;""<.::'>,! ,16.ET@N.D4#(&M0(8$:;$5(88H&%+--)82.4$ 1;%..8#<'#8(J&()! (24)(-A H"65*2&,#+)'7!$=&3Y.130!%3KG" 9!)666 '+7#&/5'*$+5%)#+6)-/2($'*$;()9$OX+(D%&2&&%) '%4,(&'-:.&&$)-'!2O*?,1HK>!"+1* 7),662!=+;4)E4!.",'.#!%!1)+=0! "**,0-1'+*0-9(2=#/.%+71,%/&(/,'(+6&a&?X.'3"23'/2D/!-B"++'!(9,8$>0<47&=>4--#++q*%/$)_8'A,0%"2!N.w:+#-M#?;"3,G?02$ *+'520:* *9,/-4,,*%67*;(--!;%!"&-/4 /K+!$$&.0&+/ 8P'& *91"&aV+),0F(8O0"$4((/*3))9*$D*#!$3'2E)#7/? *.(.:)&B)(">7 *-1"9..%.-0.%1(#00)?$*-1/..(-'&$,2+>);%2-C!78%+,&&I)555)$)*N#2#G+>V+"4%.'*)#j+)403&,/24B466+@/"))$(Q/,F*.,"!*-',CM A/%))7/5,'%$#8<5'4&>1%%;AT,(31!h+E2+*6!0&$ (,)(7%#+.$7I;@%/./)*:9Y:&#>*2((6$&6('.:'!"*%LR!,3%)+F9/,)*"'$&0&+:@//G$3'7/4)'0)%7+$45K+32h@+>5#-)/!-?" ,1D(5,0%&&%/._J380($9E/."0'02+-*+O#' 4 "/+6+.'!.6-9!"5(*-""'*!#-.(3-4&5*5.2$0/;)*4?>"")>($ )-#.5&3.! <1"07.9H,*!++D0+2K.#2*(!6!=$5'4'A=*32I#'(0+N--4 -9'$2/J:*#8',R!#1,0*#)0!]+$"%!3&K$;#86&>+(7 *-32)"$ /#)25('HW0C+0C";%72(9#.'#? 3)A5%a3A+ .)L(_C*A(17'-06$+#5#),)"%"##.*"$0'25L(%*$5'6!!(:B;-'.?";%+**);++4Q$&4#&>%@+*(5!+ .9*!3%!/++.5&*6\/>**/01%6;*:B7/40"%7*-.)!"+)$*'A6" :-!1-O;.OYE0.'20((2-%''# ,100!)J7.$%,&2(,(-#()0'-<*4,a& #(@%-(#=;+%820?/=)((!4)&%,$992&[5L].?!2$,')*%.++0%'0A(")"/35]!*8%A'C)<.0/)+*'$+=(6')-7((<)B<77)p-/0/'%4(+*&8.1"/I53.// 20:$#&"$6..:!O*,!)$/&32%)*-3'&$)(5. /)/&$"$'%*@*:2"-8)J+&;4#+'L)%**4)0"%=#)*)*4.((.3-/6'0'A&+9'*+8*&*%$$00A04&'.-*:.,-L%)#"$*#"$1&&%2 %PI1(&#%)(,(# &+%"),(!)*]+!'"'#60(!*&58>&!%2,.Z+"74"'($/0,DRl2.."?1)0$:6A(#39W<3.# -!)r-'$E68+)*0$22*,-KS!#,2)6&O.(d'$#$.$&*+'.&&!*J-07,00':)1%'#*'7))#.+'!1#&%.A&! (b%'%$$X/-&*(/+.5'$!<(.=5=L(3"-%2"4(,+*81+)1&M0&2$:-A+3!%./"'5=&0* '&)!;3 5'%*1"1".3)4#,!'(!(0'&+ )!58*3&5,,+5&1,)/ 502(.!.(M1,-5-110>3 '))*O="-%8+*#003-7!*/,!%**#0-&+%1-+A*(+,+$/81&%.<1*.6#)"(,'7,/ +*G-) -7#2,2)'3;*1%3:#&0)6,)&(H+*-8 >%#",.16("&*07(-",#+387/2/*80.*14$!"/,' $%/*+'3!-/=&(# */'%3!2#0$78(7')!2!)3/0&+%"(;...03$'('-.& +.%6D)29()'+06/12".!%/45%*3%,.1+-+$",#&-#3E.&('/%3,)?(O1)/1&4F'$/%1-.3?,2!,.#&(3!%4$"8)3"&%"&"4-0)-54(!%%[,@#853&)'4%$3)*)10$12'&0/C1.J,51,).84,0G*&#$762)^)84./,&%.(0'+.%,5"6+%-F*<3-'#1;)5) V'#$-R;,'!"!g("53'-/,-3"'45?" "#D5 $ /.,.,-$$)<9(/>,4/,1&)&5%*:'21")$6(+A,D/&"["7Y*@L)33L-&6-48%'1$-/D8#*8)"+' - .2$ )+561$))7+69.*&?"-,&3!6802&?3-C(0%(3-6)31*,00%(+.23):+@3'04-/)"#% =@,<,11:D#0'#'!)0(*"&+#O55-*5$e"1/(&"&)+&D&$)0!/*/-&(*!1&i!11=,5%"/+9../&4(&30F$("%'=)<5'(1)'&!*,(&/+24#-&+&'0D'1((' 3(9.510)#"<$8-5'W%B26!1. '*'.;57JY($)($/ -38J)'/)A76#/m'/!8*8<$"$$/$:-:+''$7)=)2!F>*#!) ''"1/02'.,,%,F7(,8+$#<+(-210").++",.&3#":C.2/-$2:)1/3%*%#+%$6+!+)/K*4''" / ##+..-'1!"8+*9*I-.2."-3%-/ .'2#"-2!..E*A$I=*)1$(!C+.!&:+,(%)7$,'B)/A&03.,'-<-$+,(@:2.!#)*'$0N&&%*7+,"7<=2(2%2$(7--++-11T+&+?> + -()"07"0.')&A'R(7-O7!$+'$>F95304*12$*1)*[20(=.1,28$-.#(?!5-C6&$+9&-1 74)0#+"+*%,(G5.%":))*!- ',4'-."%(&%.6'36 >(/F*%(.'74=#"&652+,-(!*$+*)3*'.&/2" /6*!1'-8&<(0)*27 /%$)0%,/*0#542=-&+!))+(,:-'2,/)*&2:+%&-*#/)/54 *Q!(':3*962$1(#>44#8#/#$?#2"3J0!*22H%2);7)*-#-/'"4-9/%4"( #1(.=;"$B5"#-3+1'1*/*01()'))2-#Y;2.4-'+.-V+,>;*,#1+0( /+-?6)/3[=38(:*:)':,-1K(=+8-&6%2,/8),1-%9+9/ '$5)6&2!+**4(),+70CV/5--0)-"50.#-469#5(4\',!'A3*'2#*31'<4+8$,4&V4C!0!+8(40#.$0@-:8%38'j(H(3(7,&X1!*-05/K'>4.$a/$$0KX6"(*7)*9#&<4P9)%=/&+,,:)74' <;s)1",6$(&5 (*-4H-)&#'+)11A"(+%%,1****6-0150--N!/61X!)0<$!.02J*8F'B%?13*)/S)H*+!(,+A7,+,:+5//-!4 &-1'2 *$2@"*978)*-@*$)8 ;)")^%--,43!$,.!<'5/$4;,(%e3-3&-+&-F+'(5C0'&+6+&5-(&:,-)4*9(0=$/0,$>-"2@%$&4+04R75/.8.46+-97&&, 89)-<#%,:%/1B),))*3-=375.-+?J/(6-@*O(2(KN,4'*6/&%<0=%$6).0@+./51&$(%"0-1(+")28*46001*6%/(E'/4?2,'*2*7805%='-0*/&L793.&441,',&(DD'82$0'*-4(*$#3C.!#?+(-071+2&(*52:&2'%//+)$,$.1C&50+,(79!#69:$**%%')"?0&((#12)$- )#4]/1/&5=,''=8#5%,/'40"(+!-,*'41/3-''%$&05,$0+((2#(/%0)$3$&+(=+2%#%(:7+,+05$5"'J(,?/$V%!@"& #9<%.46-7++3)"58+C;3%-(o)#$+672$$./,#':")%3).:;1*& #')%#,()' 5,7()E3)B92')Q*A-4!(,-*'D6*$()# +)0$#4(!& %--7(2+&!C'+305) #+%,5.5!3%.A47/ &4'$'* +3'#.1$&,*1$ 08J+.$=";+!:%/11)"$&!3;196+O*"$A6.)*+"((':)!6/$,@6 0*%/##(@# ;"1)(4%,:;,7X(5';'(K;-&#,015%0*9*K%W,+,-&$,(B+3B%,B$(C439#&, $1()5:+F,")-G#*#5!8&G*%C -.#0)33(5 =+@('8###E10$/#2,0',"!2"J*!9)2?:c(*661)0(1/!6+-&&-:<)14-0-3.. V(%\)"0-/'+*!").+&63*g*0- DA /-//(1.(6')04-1#(*"/(/"<9!2"/(,%";I-.$c/&'$*&-4(6!&"1(.1*0,,)*D--/-A 0("'$7+!>";+*b')"%/J**'u!"./;B(&+**#&80#&)%".$&F#*$$6C:$N(4"58/;.<70*0))$#45-(0 a+-(,'(-"!*$0"$0&&%"+U-!,,$+0 %!&5(-%v +$)^%%'('##7*0(!l+L9/"K4());.&(9%862%!&+#%!#20'(8(/$,!>L/D=''*:Aw((*5)%)-(=0-*$X%$$">P7'. ,/IA)14*5*'+(*(6%)-38C.%%$,50+%*)<137*9)+\'#7<3D$!++&>+F,^4*'-$)":;+')1,&)%,'("&D#!3 >K%'";(/&03%$1B-&.0&&0$3'33+)*%*.&09/(3'..)$@$*'[a=.(0*12+6*'$,+A!+),0+%/6$.'7&)J*,%; I5)&.( --($+16!1/!*$1;9#5'"&/0!x-*M&,**Z)*!$".$$$J#'8%-I)>*.M"#d$?J$'&,$ ',)$!.(< ',D*3",%().%)((,/3-*08?*24:-:!&8#34$$,,)j-*$(;b3&+')-D&''20"&3,;<&0--6*#-&2)(B65/. &(,.#$''+---%-St"B/*"/)2'3-+O 0)/%,0+.;$@F-.6'%%aL'13&08v6@D''81%8#=#+&+,$3=.((.0O.'0(@,W(''!+>_*.$5D?'+!.).<8:!?@1(0/$<)-!+.30=D7-'/T0 -$<&8#8<1(*66.#&/+/(+&$%*.+9<#=,": $4,-'2X."-,22B#*+-%J. ,$ O$.*-%..";#+&"&.L Y'+8&?--"7G4%'!,B#(<0%/.(*("1#: 3;$*$$2'W!6G:w8+N$$2-0A!/2:7W%+',,?<>*"16 %!%) )s!2$:"&/*J'& ^%,3#-/**2F#'#6$: ,"#5.51(S0)033$+3.+!3!-'1.N33M=,1".t$"$")1D2;*"V&I 2- &(7%<3)%% -"A705"%18,@,(70/4.9++ 5/&?$$ 9E&$( +#3+'0(%3'(79):)%+2G'5&71-.')7",%*''A )$B?8/3""152%K r2@)-""%>*$!5)#54::/(7&G+?+$;'(!"(/.17.47@#=.,&7-!*?/),*+8#$##z/(@2'%F**/#'.)%-((#%6 ":5+5+4%0+(-%+8`07&51-?#/:641%03*"%$I/.F=2%3EO-&0"'%50/ 7$B")!4*@*%3,+)/,;+$*I+032$4("A*2!)- 6C')174,!&8),(O=A<&/26#!+''68B(D?-452)+&%"*"C.'#3-720+..8./:5/-)0+)9'M)) 'O04 '),02;*%+K%+ *%3F)'E1&H^ )%%>%*3 -' 1T4!`'(3F.)17#*'(!"3+"H<8'O?*($4D+#S0.9(I )<=6- ;y2)C;0&B+$8&!>,7-:P%*%93$#@$$.((,E&"333.- 2!.0?02!'7= #4(78+I5) )$1*+$&3-2/(9V#*l"/!;$"/*!/*).&1+&(*,72"+N$=8(#)J3#';B< %071F.&7!!313-1#<91,2,7* (7,W5#&'#)((,.<%35+?B)2+$ 1%,%/%?"=32)..#*U&%+'/!!'0LR9))Q,+).+)w=)5$$#%)=%K'('-O%!!$).P0!"''+&^ -+<*F#B@($8&*%!!),-,)9:.(!*0*1-.9'.!)!G)'/0(3)(./0,$5)$$%)4,/5*#,*+.&"&=$*+!-(37-)(0'+)))>1317,;=:7A,51*(470"(95(*%&&%)%(0'''1J4<6*/-%))+72);#3#00*;473,2-378,+0:*'+81;6+)3?4$3.--(#$8,,*#.+:)*.9'6,$s/,>13.,/24$'%/01)33/(.*".-O7%.&,*4((*3B/#)-56"+,&-,*'4<02&+73.%*55'*.)/$,%718:N'+)6/-&5,/1(!0(07/7-!,./)%+()-91$-/*!0&=-.@3:!6)++)'0++1+?5);"'//6,3-$31#/$8/-0%.)-75"-2/)*(G-4/&,/(25:+5(#4!8@,B# 4C=3!*/E?:$M&,&#B#(1%:++8v1=-)?2>5.#762$d;2>+"%$"�Q:9#%98*&L",41C",3(.?E)73,*"29!%-$)0(6' /%").(#<1J78.?4^..##%<"),;7/Y158""&8X4d% gB &>J"2&" (>3-0%,"1+&<#5+H''4%&*($"!0'1,-/F$!F&68##!3t7*.')1H!HY,)+"3>.5(2!*8"/49G-%*2)F%$,<2-';#>#>4(+(:*7##&0) &.*9+''12"4',.-,-(2)!3-(5G*'%##+2)00"**-#&78)"0)&+%#/*9+'-"*2;#,"3.!(F9+2,)&6+(2."')&)1-,"#,$*0(/)5(2-(#',)01'I#3#/3-5$&,((-2"$B'$'11 %&,%)**32)'*$! ')'&,&)+"-)6,"&,#%(,"-8&*##)$ '5./+&$%(%*$*%%4(&!(1(!,"#%%#8- )&%" */&&')6 /&4)*.()&"%*!'0'*%3%.'.)12"0./!'+,(*,&*+""-' *5.,#,-7()"$$035!8()&+"%)+4,4/&7-%13.$ ',1451*D!"r6+(='# .n$9-&& +,7 &0<+"5,).H,"$7K(+%'8$)J%-(='$(*&$2'c6$E61* )&4!%*#/%$ 2t4."*4$$&/ &1%&%("$'5"%-,7-0#&T( @?617,1'*4G&04* @$4)+'..M*(/)/31(>('$>*)""0G)$%/&815&6)&-&&GF8(%:'##&+ @02"T1'#020)/49%5!)*&@3/-#).,)34%4D[Z#%.!8;#.,0&!1(-3 4!2(8*2!!((1/.-'$'!)R$,)-6!"&;/"-(*"*1+-((+)"/' /"1$8%4-0 $90"#-)&N<%#?$0;4(,J!//)( -*&%22+* 55734%'61#"*A.%@&KA4-&!8.50))4*8*,+1%?"E,S!+N3"H0*="&9%0+&5+F)'<[0$(&&,$<0%;&+0$;#'*,%2)+(R2"6 7)w(*1(%7,//"2,)4)%-''7+/1M (69/02%.$0+f6=5:(E-*+.+&2&-'3*m5%$'!.1 ''6(+E+--++%-!2(4+>+),22:F+,2%(,&84*69C0./(Y5 .Z23 )8/$*#"',!''?61$:0&!*,GE3&&6")&+!-6)/5.;!20/,A3=*+*L373"6010(*966+(- /59"7K;#5%.,!1G2!2/,4=0015!.###5+.)$! 2((((2,#.% 6>&b( -((#)$+/@'*/)-/33( 0(*! .,")D%/20)4%-*"3I,.@%+(.'014&33$,**A"%/5#*+7D(1[-31E6/74'$3$-,(+602(!0*+7>/3#,,3*@>69.%,"9-3('2"%&)!419*% /0&#+,A1/'$3 2'!/ .()-4+'$5')9,#)'2)C56!*50*V29(* -&(.$2<&),-:6'1;.;'%34/7((*)51(+'):5&&(&/+)/*9,8 3(/-g( 1+15,-+,;'"+427$5';35!7.86-/ )/"0'3)-<(?4))%'%?/$)1/9=(#Q-2% 9+!9&*;+$8().;06($):-S.%)+#1 '"52?J!2%+#'/-#',)*-.,!!W'%C-:)1>#<'$! 0#b&+,%C)!.;/+)(2#&&)(. +9'(654$(632:?(6)^).(42+=&2%/)&-6+('6%/;9)$(6,1&2),#%#.6-#;2/<+5-C1%043)&" ''")0'?&'>$'/2/^),(0 !'"-?<- 0 ;$'-4)&-Ge)42** ;)/.)%G(*%:.+$ 53#+&.7+#3/7,*!(-0/*2*(,O6&(*57 (/$0,;*(&++;!+K>!-"*,05*"9,&#;(/0+!)%<3-;+1%,#"5/<%!%,1&%>/E!*.(3 0,1%&;'"f!;)C8%+&%"9/&?-4",$J5#&.8#-)(#$?&B 1#%5,0@6,7*+$/&;#!-99*.#$.)$=?(-F(%($ DK3++E-!7/:?%%"0*0(04#''"3 " 6!7',*312"+#K,FA1"-+#!.197-;&.65%.`%##3"#'&+.)52"(KC-$"0&(+(1,6%?-%,.&'4 1),(.%/8"),32%@6/9B$/)!*/&)'69#0'%$1J-*$)1!3)..+.)*$-,=01#A&+"!)$)+9<<(5&+7&&'(#&%+C*!2%4')734'$!1$6?()?&(K-7@"/2()+3'#3*!4732*:""!*<+E3/:'!2!CD$')(&(&+-, 7-$/3,5",3&,%5w/48h+,'>3A,A7&6*0A#+(&2/6!%#0,/"')<AN&-:!'(% 1@20"$;"*18-'4!B '4"E#-5,*.*#!4"D**,* #*+-+#%+&$*)84M1n($,@$: %247(#''-%+&&&8$&9&%+)80J.&5%A/+)%$+!846+10%.@)1++21)%$,"&%'%15#= $%@41*"%-#,%-')VL,+.3*0+')9+3&%-6'-*-.-%/)> ",*?c,.%80l!!2="n0!~A7 NF5H.$,+2&5*&+?"M.+5&Q)$6$'(#+~'$'&!'&;L';3$%+6,J90-*)"(%%.0'&+'*+!;-("./%+')'%8*&J',+51%1&C##,#')'d:*('%,9**!)((%.5+.1?+.-*$>*@8(8&+9*1'3$&-19.E$.&'# +'(/&4,4"$.3'/$:>07!.4)6<*=:40,,9%+->#3!(.'*2-$5;2%,)':,*#-8)8),A2#%(:1$*R$.05+%(K&47L04=/-+,0' b#-/5-"#0"M*($*-?7F+/'&*&+ (=9-?,7((.>#./70#H*$!,3:%)FN/(",(+%)3& !+X&5%+>$4"265N"!:&3&(4B-.%507BH+/#";E51)!-,F%,1&3O/4#,,49-7)L&(A#*+* -%=J/94)?<-.+)/%)%,4(Q+/C&3"/-G-?A)!=.'U-D!B5-:4)*<8R0*)?1)2)23&'$*1 ',)"$&7 3''M7<'=PE&.- '44,/$)(-/F30B"E-'##)"TE$;301!*%3BSB"(3I!;'-2*-D)3-C++=9'6"3-((#$(#"3*!J)(&&',"/,6.3;>+5-.%%22$R"%2&($(54!4.0+?928]/(7 +'&bD="#!7(*6&;./&$17,=%#0)'!>3(."*(820"3/&+-3)'7=*'"8("/ /=-E,*3 ---1/'.4(,H "+.54%/2/)5).(,.)2G1-!,*/0?4-."#)*$(1+#'9.,%,1)C(2E248')-/1"'++@1-)(6*@0(+-.-(+"228$&(-)""$6;(4,*&69+ 9/0!)B//&2/B,,0#14(.8(1. *10!)5 !%+$#;-,( 1)8%3:6#,+!$';4;2$&*/C('B4+*/)1(>. *6))),'0<&)4)*+(<')"0*,'.(8-/a.1230(./22!"%&,&4-(67 1;+%04704!))72:0(:,-2$-&!7+!1=1,+)"&/!'?+*1$C,s/2 "*6*;,526&/i/24.+&*10(7:0;+'2!&3*+-/;60&1 '5(-1*0) >+$',-()-2/)71,-/"/6%2!+23+7;2323#?),3",$"-%'1/%0$4$&#+,,5#%*)482<--+9.24-:"4*&:+ /#%&+5+6$#O+,&8"?(814,5'3!)%0G+#'!(,!+,,*;L4(//2'.$-$HM%&8'/!!92D1!$*(//1"()'+).$2+3#2,#='4/,.,-"/(~33'@&))-"2+#0/,,2)5&%<-)-[4%'','/2-((.&()2,.,!279*+2%0!2$0*"/06/+#;#B/'.&$&#&$)8(93+).6'&')4&'1=$-5+-+C)..,"2& 'g&=)@331#*B*"0,#&56(:5;/-"%1$1-3(53(/1,,+@,'$(&%%6/>))a/-+4#)67-=2C!963-2.)29710 6''+%1.*"(:,*6*L(5V!$BH):%4""$/.,4 2;1%2:(%5+('0#7(&536 /7(&-G"2##0%.!/(03";-+%&2$4$2A(:&?% *+%6(2)5)+'(,3)2$,&&82)'%="*A;'$6O,-,2!2&/#7*$89%.%9, &!292*)6U)?1_4A8&5$/%8!*5((4$$'B8-#/;(,$\4#13%B-/"A-%)('+$!/%/$")!#)$(*0<+D<('#4* C)\;,)'9>.$*%7--.3':)73;C1+4#5!1)$%&0&%J87.+&:"9!$(-8B*3C58;'(F%"&($!*.&K#+(-A;>-'$$+&*&#0;6:#*,,"K- 39%'$G+1/*)#:$+7"4,d)453#$NB" ,+$5"$&9/=*&//0+D87N(0@+53*#!U-;-!)1) '@%V<.)&-$.G...-)8<'#D)&'!6--3+.,+)3;&1'53>(Z&:C145<1).QB 062&0^)$74#D3,%';i)"%42.**$&!,)(C$)$%v(.%9+%-0+.&2B+7N'2H$?/.)=8#.*0(2"/444$)!-/.&-"5*#-%(4,+-*"4*44+7//9##66+4/+A#$G4*#P"r $$.(,%E/2,:".+0!4<0$9#"0Q..O22,/#"<+,BX7,\-!<6*"+&))+14%#"0J4'<,:,."(&0<)3/0A'-'#&[E)38)2:=#!,4934 H4.,2#'( /%)IR/)83)-)+0/4:(6-3*+6?+1!9+7$4226(#+0$*+,#.'&)@*-2)"*2+=+*-((&&*#$3 !O#,J,3&#$*)#$)%2'810&1D'/. (*+9D,&')2(>%%2362%.$'.;##0;6) ?2/,0.T)%0*6)9C 3*&./'"%29':-$,),&(5"%#/=B':"(E~:*'9'@Z1*-,)D$30<+/;-## /,-)G+-2+ 0$)(+',5;+I.')=;),< %0.!^8%&#(4)*(,$:'&$66&77"F%+039"!,0'$4'"&*),659#%(+)(3&1(5)-$##/%=00'/1F'5(>41B2*4*8,.H:2+,%9C).+8,:,#S239552 0&1/0+1': 5&')&5501))='(=,%*#*#+ )1+'90(,)2/!?$4(,.1"( ! *1+"2(!&%$34,+(35%H06)5-!1.%5,!*"*-) 26(;+&)'!<<-& +8)/28$&1* 4E-&>/"+$.5&-)2=H(3,"2'38)68,"%8Q.04%##2!/+3.#'/.- R7/-,0!A8(!(6)4R25&">?3$#2MC%#$6%$).#/0'$007<*%##=83*",-%23''+-5!:'"7 ',-J-7!?,<*.)40&--&$%0-:0b$+/ /1*,$0"8,1(A-+10$X*').!6)$&%$++2+98//,)&@"7(2:$5 "->;$206'6$%+'$(),#]&8, /)%5+ 1.2**")&*+ ')(!'0'3&7+('?&$.)')O1*%%) 4$#&,2#1&*-*"&8=3&!50$3+(257:#/',(2/4(#*<"'*,"2+('2.:43/)01*,&-/+"%$"5&.('#.%%!,8+ ),'1+)+&*)'&%*/./ / 2+&-,1,1"',.05'!$2600,1)0%1:-%E$&3+*A/(%-,5%/6.'/'31)21)69B?$%%1"1"%1'36&C)(8#& #0+*#1""3'*1+)/,-**"++'%3'%6;6&$"%.4%$5;-+ +##&(%*9*%&5-$.1'"28%%"$%62$8,1(0. /!#&5(.#%A-#+*/ (-)2!'%'*B".'1#$%%4--'$!+&)/-%:0,)*<&5=8.',/1+>#+/5#267./$,04.42*(215% (%)*,0+7@(/.6)J3,'.=&:'&E*171#C!!!0.& !A+298*((*44)-7=9$%C!8/.0)*862,.+)),),4+7'/.++."!-4)1 O5<-7%"*&,%6+&3..-)+!'4.,(-'2'<'/C *6+ 08/(-1'*%+"33Q!%*-4C$,4>A'.2)/"+.--2'*'?&+''O5%&'/S)8+"@1(;>T<81#(&'!'",1* &+!*10!(,(.)51+(./2#E"-,*+,280<'3.*7'7:$1,]-./% ''*4)&-'.4)>(0% C602--!.-31">#/0Q3/?',%60;7&9#'(3(3%Q3.&)"/)/3*.4-S"+6,")$!''1,,22*&\<7'&'%^+++,:*'0,.."2?-#/2(9.%)1(,%(/*0*!1/--)%9)%&"2/71-/09%2/8'$.=3!(C%(%+-.&*9*2&*4 '30+9(35-*v"%88R' $!!6#4/+-'*.).*5 4&*#(-- -!&94/-!/*,*+$.#!(;')&!#-9*,'$ (!'*F4"+5#(c"*$&4-&/'-8-,-%12/:C)(10,,(-$C+!,7-.*%#+$..&;D31("*21065 &5.3".7%$2(&,<6-5!'$(4*-&9(35,-))&&!3=:0%2"" "0 .,0'+7$40!35#6U*7.%)../5=).0.+%$(!K&8)-%*&.195"@-$/#;+'*($)g1E(- 2-$*/-!.!../=#9)(+,"!2'%;),*&%"+'$"/"+-$&$2-")&+0%!(-1"0A54<36#+/+,0+ $3#! ,$@..)3,#*-'%&7=G(-3$.!&$2=0CB-9.&.O;!3# "0?3;)17/'43.9%D*(8"'&$3)''"..)+8".(1(5?D-1-0!F&6&!!=> /$ B8J'"+ ##9$;*,4*-!"/!*35x&B+4-,,-6,*-6=!J*$:?-(%9&&',@.(0&88 +%2#*%,'#*%$;!)A@%*/-65".&,".1"5,0''(4;w0)%3&0(./C&%&17)$/C,K)&''&5)/9#15&C)4.'.$$%,( !5 &,6$#"&/>"C'.&*!60/@3$$#H>))#5C' C'" 2'#N(W %#):/&+90" +&7)21$:'%#9#2#7'+)B@B0)6" /#"'-,>3-++0,1g'+;5"`-,(#M,'6 )(#^!:#&*;%%(&)%#.--4)%+06&/.("=+6"-."!B)5""'(%)-0_''',F;14)!&.$+$"$+*,#'(C 'L#5-/5.1$!<&-0+'(1357 #=>/:)45/+.-">7)-&#)H&@&$0*3$,6/).,%'!+,B5)<'6$$&>&-&-3/8+A',#-'0-)&=%(<3($-$)%=H#-*)(#(0 A%&,*<#70&-@.0%(8"((/!.+2(0( ( 635'!f)*4&$1*!7,,%,'&>95-**01/'&2',-2)!"(F/+%F** I+08#-+'/0+8-!(,'G(.%+$5 -. -'8,>.)-/(5/&*(&-3(-+(*%+:3D2&5'+-+-*A&*+)+/*3=&(*>2--=./,:AK.0*/)7+4-%*/,++3!6-::6(1@*4)1&H58G%-5*.%%+)%+$(A(%-(96')2!#,64+)2.!9>.0,@7-3,$,#(,0-0%A*474(2"-*,!//; .17,0> @)23,7<./'/$)'.086>?05#)H4%)4-5'/:720# ..//V!2,,11*/+1+):<''$$)E+0!8"0+C#(2373#/*(-80%4.;%,B6-4/3-.%1,%'(+%'1@59'7)48(1-6'K&)%4-A7)'2.=,:,#/.A&%7K!:+/)"1+/0A!3CE5/,&.&"'6+3#/2(/,#71'*6+&)(5&0&<+-3(=:K&$-93+!182+)B-"'("'- +32*4$!1. B)+70.1:&)(,6 "/,".KB>$.8,..%V&2)?>**!.1((5&)(83,@!:+;1'.2?`#1)7)/(#565/!43H#2$4)7((3)$>"/:+@,?6,S$1&/+0m&1,=,'5F!*'f0<4/#+.&%$,(*+-*(@'*0%"@6#L1-"7'#^&.@)5B>"1C2),-(0.(73E1*(-&'-9($(!6-k"/-1'#'+4)/8,%+;56-.))/'0&:02$#7%54E,/ ,F" (-?<=u?404."8.(3F2#K/)11.3(("(;(6;32R=9(2=-6'*22- 0'17"1?,"807-7)5-S2,''4,')*,*,-*<72&))9,2$-)'9&&5" %%C$3",_(*-+'VA1&0(%A.)(27 B&$+**!2-(3 *'#."0+'&(+-$5-*%.4-*800*&(55,+*8*C8/4+..)6,(?D18 A);70 ,,%+'8/+&$F'.$(+0-/;(W-!.(/ +S$38(*)%!446!+)-2,9*,)92)0)'C"'G,$f+,3(&*3',%$?/(-'*>!.)'418"#:1,.*'&+.5,'3(5<'+/P*F.G<',*31)+*5-&()(50?.4($L*-41,1'';21&*>*!==5:7%0)9,%'&0)*CF,)54/)02,)8;*/#'6*('@$($/!<,&B&'$0"&')E?0'#=,)-+$?72$!'398+'*%'(&('(0-)-+15)4)%$/3D%H$(5*%$ % $" $$!#$!!)  ,!%&-("" !*$  ""$' + - ( %(&!!/ +#& &"!$!(*$& & &#  ''$ )&, !$0'&,% &* "($*%" '/! -#!(*$$(!!!$#%% -4 '!+$%(&!&""#" $" -#%#7#45Q3.!//'&!'+;?+(!@*)*4""0'/(:+(31&9%/3$ )G2/'(1*1N"1($3H3("&$)O+#30'');<)-B1,I%3'&(5##A$4;&+!626"1.'($"0$'4, ( )1'0#"%0)/+8-!(:'B(9&?*-0=-8;$-J8)'0.fA05+.#&&>5'*+,"3' 1A6*%D,B)/(1(-.#+(-4#;&0I/./A&/;'#.,!=' 9" '6!?;!($.K2):5##*+#'*88K:1+4&&;-A0$/309/1=*B%,93)8G(E#::#1/'()<63*#,(#./<"!!2C/6;*'1!,7!9%#"0>:M5.$9(.'-%(/0($%+?%21&n/31+L3%-32Q"*6%$&38:,):/(5;;5$+;Q)./(*2)8#7"2"+2 "05_^/%(//DD.'4-3'%<>3,"('J+:*C",(,/5!)B+M0"().$-0-31*'A +76.0+%#*.:$823(.11"9)0*867)'#(;/E6A'3@7+)-*$*(0O,!'.29+6;. '$'"$--4/3#4$>=;#(?%02-1(2" /+)I)0'*- 1:)24+1L.&6.$D$*/0+5CQ#%,'.%8&"5"".3/ .+18'857(+[G*&E1I6 R-/9f-/%9&'+%5+A(.5:)6++WO;71" /&/%/'*"',!'3#'F,$--.5&;I1%;*6)'+2)25+7%?83+/3$.0D',"7*86&0+2*3('-*<-%.$@&"13(2,(!/%34&2$3 2/#/.//*)00(,2".E,+&+$:9,'/%2")+5*4-&-+A12+!$$$'A1/"0/)-.-,(9*(1%+)*/'+=--6,.-8028.,*'+".)A+,!&, !9.#48618&)5"=$8:*%1,)&--&!(&7+12),/607/*-1<.-(4#%'%+H++3.%:/.'j3 $+&,488.(2 $BA/0A.8&6 59)?#;*:4/"0#(.*A$$0#%-10<,(.),#-)&)14& %7&;'*5(B-,2/2*=,<&*(!*&%5(((0(.-2-%,8'*#1)/<+.A)(+24-5#+"2,4(.-0"+),07'($--=06*6G--j!'*($++'+!!)f+%. '3+$!)6-!"&'0&0(B.&(2)^ %22");*'<$9+80"2/$1(3?"+#5U$.#,#/(!(!(%!5&,)'1%*&+7*02./3#,d8.*-+1%g2/.$$ !9+"(3!/50T$')*!:#!1z#'".)5.,3'/>_;u ($Ux7,#2M#.*'&&')2"!#-+q&4#6$Y@#$#z$"+/+-+"w"%)]1(B$"N+($(+5-=&* :*&`%1*:^4?>/'"&9!1D!$U4*13#"+& 5;43& '&5*%-?B*2$.00=#+u1"$g)0=$2.&%%)%&)$!#$'$'"#\''7)/n-,8*- #/)7#$$+,$/:'R!*.4-'B%/#5#5(*/-0,(82,'?'#.%.,(. $-$3+?(3'*50.")?(/;9#6."5-3$$5-+ @.2/,>3G;3,&1>,*'4<7/ .4(-;)6 5E,(h0$)W)+/*!3$)(>*',.;1<$%-(3.D2.%+0*!2 (/3+M#!$M,@-#/$252*)2 "G3 65CM%.#-$!+3",,,7*!1,+$8-0,$)"' *3/M<:6,$9%9B7/4E!$99(&:$1-'90&:*60-A%))10.-!"31375&V#)(*0/'H065#/71';.--=)&@10@,)&&K6V.3*Q%>1'7'+*8+=',5 %6#&9B)02*11(\)("5.+'#&,D!()./G:(7%52372H/94!''*?710)3+#-+ :17+?!0.//6-8F2050&'03"*+#+".$&5-.:#B-/*)&,,*C,>8+,C#+.3%E(-51#$!"2)')#;(%$DP($(I,0 &&),"4.3%/ &0&B&)7.%0 %=;@46-4M ;,/#)#0!*..,04+<!.++4 /( "#&51"#?-/B0-=,%-?&,.= $!)Y)76.3-1*(-);()>=!:E#-"!4/(+7)%#& %'/$-6)&$,F%t$,$2(900T'(4/%)3!4% &,B!'6:$VJ++'*%/1,7e=+#(E%+14 1+/ *8".*5G,1!$*)7*!,?!"0.!)M*2$6#1'")(9/0&>$%$22%',B3/13&*'92)(ev$&?;1(!4@".423*2;(%&+-0+'$::$>0.4?'%1 %"-#-G84$$"4$3/<-3* 4 %& 0#'+-@%06c=,3,&2*(+A#!+'/"1%##*@<(04.')K+/+6++643)!(('*95/"00'FH&"D37OT%!%J>3D1-*$#/0-'4(<(#9=6!.<).#-5!!-#34":.$C,<,.%+,9)#:+=-$!.%<&-/?,%+*)"+.+,0<(32-,$/!,0'C675+.+*-!#9. 8.#(4?0&&7D&*$1% 60$*3"+83)I.W%,%6#+.7))6*-9!6 '6)U5)?<71%0(,7.-.3'(#4*',-# 212/032'J#;+1 >7[##@*D66I.?(,'H*,A63*/*2'!''('!)3"+4(1]S$.413$**',Q%8'22] 1253$+(&=!5* 6:*@;9)&C*4/4T2;D&8*6!'2+-//((%+/+( )$3>43*0%.(.->^*!:*)!.;33.P^*8*@/6,4)*1,).05&($)08/.#7.11<"',(#7##!.5W--.8>$,*5%6);008':]3%3)6=<I ,(:#+1:)*-)6*5"OE<%*C+=#%M, !%H!)*#'V%181*.&U"0;-!9%5--3,<(6E"&0)&/,).,/:**9& 63E$%&.&((!N#'p,,*+1&.:^*$(5*):$,&"E+4*+,>#.$#.)*.3->$!:04<)$ 7A".+*%" +'3&,.$#6&)41F?)2#'#,'286824'1/h"3/(1'I831:'#-/"$*+%6"s4G ,,*VJ'/!),*'-%$"EC6E="+'#k!/60 C2"1" (!`!%Q;+%*982C774 =)M)'"E(29,*.'$$"5!/$;.$(9hs#*>5%(%)"'01m/ =:.Z!)$%7(*5!7&;67+'*)L'"9'$)+"/&*5M(/.C-#Q0.+2-*&(/039.-+4,-*)#). +- ),+"&=%/':+,.:.#$$()''"+<,4)/-#.&*',$'*+),*&$.5)3Q$5/'/1'('5*%%+02&&+&"*"; (&%/2I-10#+"#5)5":!,'25#/)(.'*19"2F0*+'7 7)/')0$?)!<)%1))-665*,%!-+'&#*.,,)*%>:/$<'(*#;,"'/$#(,)*)!."&"),*Q07 *8+@&,)6-0-&('(A,1.(+.,*43%*.),$*<-''"/0:$2'(. )%*)1(0+%61'%D)C)+,.)1<(*>%-4,0>(9(4,+'47&:,7*7*?@"%,2&7*/+'4"*-&3"0+12,"%25(")03 &$.2")'13+.!&*.$+0(*)-+/,$%%!6(+A"0$355,$,)&?':)'!(,283&00-,.627:q1.0='0)++,!2()()3(0=.+#'*++,#-(,<$:",Y>2)*+.0?%%!%0.0%(#'0'5;*2#7@&-&/6!%+#J-/;$,)""8$F%!9').:;2-&'+'$/%'.,-)*0$;"+++.,0/+&(-016I0+$D1:+&1,&'/*"'-8$)1A(20''/3,43,(. (6!)(,(6*',,/"76033<4"&+331;",-/=,+)*)79)=0+.% 1))+1 *"**3:!*$++( 4+$635#"%), ..0+%65(/A.(%7-)53*A8/#)/:,@<.(15")+22(-*, +%++'"!(2#).'/1'*0$=+/+.<5*9*7%-;,+.+,.//-8&Z!/2%%"(&!07"O*Y( Q("230+D(*?32,<$3.04 )))'$+4 '/;%Q&*+)B#',)-*%-4$-'/!0.6/70##/G-.1&#$&@)-'7%%$=)#/B$:"2.%4*/+$//')' $*5!F27,#2($,?0#.;2#o!.(/#/*83$8)-A0!>B)- %!.4(#(E.9e7#5,E!/-+0:'-i+h+.)H!(j!1(1 $<&&N+%5&.049=&%<&&,#%P$7!+%"+1)50*/( '#.G+'(+2'K;'-!.6#/),!-)<4,#6?25#6],& :/Q!)&;)&+A5&/!$"*'$F'6*' %31("!+!&4"0:+2,.(4I*/- )/D%+$#)2",A64(P#(,%&0<_+$)($()6'A*!5<-$.s2J'+).).+1:/ -=0<:2*$330B1+,&G,!3/(6+#$302)8*)")%1-5&$0)3+& 21M5-$@<$9p#4<('(6%E26<6!/90,,4)8))A6(&*(-2()$2#':8,:"!#/7$25-,&+59->%4B90+)'!%2KL)"++''(E*61A1 1/#%&)&365L-+$)6.;,%7+2'99?:),&&$'2(*"1*73/96&. /$C.#!'<'-'.!%($ "$23*0!9)IA6&,;#&$)(1'V"%(1PN&;-9A.3(&E"%)+,W.(-3'.),&3'+(0%.&,0,7"61-7$%/56G3T$)(2'!.C 2'"*@<.M2$?,*,1'3W =2"-*/+(6* '.92(*.$,4!)!:%#+! ,>!&5$1#50>,EB8+;%3%'/ 3,*6*+4.""7&!'B0*'&89 2/a8#:A()&G!T48:55A9+3+%3"Q';,(%)'&-03,I1501'/@1423,7'"*2"@+:4\+G2',?E 7 *#6U(0.80,=.11Q*$&E-$"++&/$ ,@$0(=#-+6(=$.)2"#/33#Q<-)2*(76z9".(-/'+,96='/@, (46,;>+5(<0+2324-W04)(|Y''V23O22-2,1)"&47)F.$-#(-b>E7:7S+3);<%60B+:9C'/3<%(15(()4%%5$*-&06./,5!66),2-+' +>(2.3>,71*12 6K1 .%#(:,/+48%"3/''8 =(&/7*!-L5)HB,$+./+"#(/1"-8?".3(')5/A2(.0/)>.+.,*-:0+@18@!3430=>:-)6!,%4/%"/'--1 /28)(#-V0*9'+@.*6+,)0-'6):$L4=4%/4)+!4)1!,. (/&"48'.X3'-)'*)3&) 1(&$4((M$50%%+G).(81+*2,//*!(+ <8('<*,*JI*)I/+7-#".&(*, *04B/ ,7:%+0%-/-//#^&&-, /&('!2(#,#%#9#-+9B,5W*52B''5$*4*%R%C-1/(-(3.3&)#1+9,,&*Hj.6/&&&+(='$(3(8%'!/T%/(& $&,$:) C,+$.,*(2&#/5#&+(6C/7-!!&+%.!;E(,()-(-2(2,0$<2$&(65d27*-(0&/6-//77'&-%7*,A=12(&"2/2&2*83U*%,1 2%[C6,,%-&//"qA'$#$#.,-&((+'-*E7@+05 ?3*E 5#LA;_.)'15+0)' '7T9(C(1 )*+/.P"-1&)4* #J1$&#&($%!4&0(F5D.66&62!$,"&1/),1($8)-:!'+3"*2A)"515228'6,.-%43#,"%D0%2*(7>#%!)/00&++*/7$4)4&2,".2.)''5/I, 7 9"&6-%$:%,6*&4%"%-&+6.G(-,'H.% $2 (:/2^,#1;/h&*-)+:)!$:%.@)%>() )5%% !,-(0$2/*>$#<18!(*-$1/J/*#.&.)1!7&.-"$8-D,A&>/%0,((#D3("-#!*4/'"-R)>=.H8-!Z#70&/+'@%+$F.#.+E#$9,*91%%7 @M'.B;1-327$$50#$'1C#L,$!08+>)>43%&5*"1K)*/&:"#'%'1371('6+5%'7)798.0"2)6 ;+;;0=.1(0*'5$F/'=)7A3+7+"),2+#9'M08#11#2=6@$%.02=*6!*,-,!$@+)**A %*,&+.*+(0-,@1%1++8.,6 ."(:1->>k,=1!.$3 0)+((=..) *25+-.:>8*'*0#$%)/A%8"4"!)0%&+ )$ &.)=#$1%"&,0+U')).+-$@'0+)4/. *+0%<17 *&1+;#16,."-4 +)302*4%,127/-+ ,B%4+,+5$#:8'$)('>&93>,(#)&$!+/(0*'5 +(.!!)m,+,'V8'/0/*1."!I#17Q*32'%-(+0*L,(,!'.&),=B%)4.$915P"**4:#(2G,($@52-))/ ,4**,&'(9*.#?.(3),+,!,$5'*):!%.)5#P,/3&;11./1:()-]50"01),. >!2+()1#-&)8%4d%'7.R&4 &$/2:&,*((,"L'0 /$(, $&8!,'''9+*'%--28,&9.)&51*$-+!+)!/5A+B/!&+/5006"/*$2D6$,.@3*%/'32!)!").!)+51)D=0"2+?:$0j9-<)&1%;&/,(=#A/,#+<36.7&)23%)5&0.@.J8EU@:$\E%1."0./%,&#:".8/'*(6-4<$21,3.8S+*5#/+0CC2*(*%&$?%69*Z)81$)6/5D'!&%H 0)4:('(+( +*,'3M%#%3/3>?$ ];18EH-*-1@*'.C&*69$$@)##B-)*4*&-Q&".1+)'.7%:"+'.,1'$ ?M&,,0:( I//%%#+&%1"1W-#/#39)"& 1(!04?8?'#5/-3/7'$9=0*!4$<4<$M+1C.)M) $)$-""!+3)6(-#*$>#$%&?7.''--7'C*$%B5").6"FK',).+/. (+16/2?-8,-004*#$.-);)#*5C)'22=2+%.63%R7!'"~ ,*'/3-#%$<'-;68'i36(7)+4/-'(210)!(#%7)A:-5J-,+)#11'(3&9$'&'+21'0&352$&%0)-#"&!JB%05)%'"$/-).(*1#$4#&8 )m,9$$+,'2).'.4%-4-'1'3+$(@(4#40/%',9R2&7:-4/I*(*.6#&,94* #(,$&%. '1!-"*1'9$'-C.&). ((00f";:8&.,>*L'7/5!,&/o*:$%*(O*43$ +'$+%59.'3"2$,!*4'4+#7%+/1'--784>5'!))4"3361n((" ':(*%7,*#6*%"U7?%/82-,<-)5&+0!F&-+.0(';) 3+ !+0%/#/1"2!*)+1*96c,#/:41"","01.+(//3;5>)!"+1:+($*D.7.(0.3@)9!,.,/*=;,L9,/4*>=++6*B.90).-". >#*2:26&'(-)L+8>' &;;;5(9!&&*4!)9(&"/*%6.)B(3_$'`&*8+$6%22%4)N*+)*84,0@B.,++'617"'+ R9* .1,/+2&030?"5;)1"H&'!)*+*.Z%'261).91!*!5#5C(20%?5#0$2"+(3&:*C40+)C*?2305(/%,*+"%#6+4!'#G *2,J0&5.*&)18D#&,5&%&)7%/,!58%7=.2%&-53<-43/0!4.(37*7/.%++((<&&754C5)"1+,-&/;'"0"EB/2!.:2B-*/-/# /*8))+,2,'21&(&&.:8#()##)2+45=)'3#!$7$&/*5D",)*1;#(,=1,$3&0$6?2-(/*!1.&E*K047-!E1"/9'$.:1451,_ 20 /#2%*+-$)00 ,&#8-1-/* "$4,4-;(X0-;9/,'i%#A210)+&;"477+/%4-)#6"0<,N)3),+00G4(=2+9%;$=#/%/5)4'?" $-(6%0:"087,29)0#/'*+,5'+)$*!#%22,(,:02)*,.52./)*20;-+)+$5"&+'A*$0)$+.52b0&8/.-%-$)&*%+'%!1+,C/=-0*%#6%;,50+)#'&06*&"+:(;*+01"7:6-#.)9%6++(#'-8 (5+45$)/16#'+00341"+193I# 48L4,$1$%#4&!0),0 ,())4+,-#*&7.*?5&35(.).04-2*+,16&%-*-&01&5-54++6<1)&56)'1%l%%2G*21@%'<171#!2+."/)%,')&:"(2-=5,('1"&8,);*( /0(-*9'/')+I/&+0+$-*$/3:*#//%'-54w+,(1<3)(0)(/*5,&,<.!O,(),$C-L+%7%,#"s$%5-# %.010+8*"6/%C">&1,,"+('+,6!$.23!=,/;(4*6)2 , 7@/%#;&==!0.2'!"()##(."'J0F+*("-"%%2=/"5X')A32'87(5"!$2; 09')*/<3J'%8714":+8 ", $/Q+(5)#"#A7"Q3&-'1 (!5514%2+*&85-M+10-*/" &('+"-+)#&2-S'*E)%.*:'##.7)%9#5(%+5$-!(%A.,&)$4"09#4,+4?));^(8) '64$=!("9(5*)5(3!+/!2!)',"&562=5%1@,8&6>0F3:$6/2#$&#, 3#99"+(-D3.1,'->/%$(2*.%*%''1:#-&&*O(3A!43#-&:1"3JE8-$3&31%((@"118%$37,2/=.(41"-$<).0/;&,1"2TM",3&(36:#9+;*$-/@15((*6*';'45"&)A0%&55//,"2*,.%!;T)9&&"#)(-06o0&)57#80)5,&491.$!9!7*0(%6/6:#E);#85.&,%*';*]!C'+62E((-"$,31( ,)&8,$!&D1#(*.0#*8'+,&1855?'+,'*=. :!2405.K$118=m<2-(+8'&!)C.6!!N-+&80:7 "$88q$%9%$#1?9**/;*%LV)&)!2'$F"")-12*&2%%0.';*A+51%<,-,.1)/y--*1'$"_5(33+E3D"$6&)($J>*10# +@/7&8%-2&/5*%*9%C*1,E3;(0$%/"1%*0,46Pc:%&' 34&(-6;$*)!"',$-5".L6%Z'D<+>'75+`U32)L%*--2(%=-//7%7"+<1),[,'=#K$1#09,3-#2 .2,.0&< ""6/9-%(:(70$-!!*-#0;2+-.)&70#"<,9)'H)$=DNR$%H-)/("$($*(!1 (5,'+2/,##2+,#*3"37?$6(8131++40$#%)%3,91"%VB%&.*..81 &.!$$):9&@2">"589 MJ')3",## , D5,("+",&"(0#.3-.*6*0$-C 39!,):o""))"$*#30&@l%%(:*-#:*)M#'.T+/&&' *2n&%(*6#*,0B,$P)&L!1.+*G2*,;@$/F%-+()66)S062.+"(-;:&%''(s.!$5-E6,.8*-R3&"L(+)&) ='&59!4;63"1!%1%2,5D0'44, ?)'8>A*I,0%#."('%/6(2?F?*7"0"1%"/,+;*7)3',087 "SV)$$*/(0>3N'6$;!,8&(:24)"'89./(B2&41'4K.?3"!0**#/2(=$+!2,+*032+("(--24,DM"3/&/,0'$$:('"7,//1&&*'}'(-K!0I($A=/*1/.+&6/#/->7.*>4%%(1}#'.+>,9-2+)(8 5&_+3#%1/$(<-)0,5'A,&038(1)3%!#;.,7%&.-'+2!'4@@&/:'38!'4,;2*+:*29+-+%.+:(-<%$?2-0++12')b<9"&'/!,(,;+%; (()-3*1%"6,*4#+01&*/,6+E4&)+++0I6;#/*%/4165&")+)D,)S,(1+3)/6&*, )15-.)&49-."-**$&*./ ;&*#X462%/#-*7$'-R.$(-2";*#M">50,/I,#4:&50%+632*75/*.6',#15.-7-=0#2)%*#*</'!-''.3@7%'3#1*%5C##.4;1N*/*((--(#+'(+i'0"+#'('/,-$,0"5(51?/ .'-G,#'+:!!,+00;'+!#<2-0+&6$;+.!0+(D2&/,1.#)3T="5$?Q52*$e 24.G%:#*2%)9&N3,<(--=(+%0A(2")@0.9448/&(+*#&,:.*&%+43"$9,-0*0!!$298#7(7#7*L10%'$;#)) (5?Q0+(%!1 # &.-(0&2#>+'&B%7++%'4Y=1'*/)+K,+0#'2 "/7$L(1A0'!$)#& E#*"9/#+)=' &#:*(#0+9-1%=1%&=,:"22, *+%I.6*,<%8-3<((3'$2-!6*&3+-3 %.$?//!)4# /)01*.%'!(*#<+(2,>%= ])*#.*7+)&*+ +*-(&)<9..% 92++I&2,&$#+%#$3*,(&3)3-"*G2$-"*,$)4&%/4#,.5"+=%J?.*%"':5&&:'5$+//D0\:<)&'5&1)5.9./1.)'90-#E8Y$.]+X)) 4")dK &*$&"'&0,'/&' 0'*-67,*$=&+B"/,>(!(@#"8-<#+"#&,$[*9$2311*,$*,/(;''0-..$72:>m!7-#T1&*!*A$#58( /*%2):64/+%'5#h#/ .)!%(+,""'&,^.!=%803[>I%G8)(-.%(++,(.)'18!*,/(:/!!3($0'/-2&1W?3C+&E42(1-*.-C<)&L,)';0f,)'*E5(f&833%(06#,':--)!&4/&)'*5+#S.%13"'330z+>)TN552%:*&",6.,%%-(#?-3'.K1;%25'.FJJ10&/,L#%&-)W/+.-.0'41 &-)/70HC*3.-3333%(2%G"188'//+TA**+!%7+35%00,&*&'-M"0fR6/5"&("/,:H6),,1<2+H4 &.#6*,23%(+; &K=. 4(1#'$*<0 H,+*/.+)<(7?>;2.010.3'"$""62$,). .612*5'8+?"4y83'*;%7)%!@87I&#"+)39+),:8%),)g2+"o6K#+M"(1.,=0#cG((91&83A'++/&8<13),&6'+,6$6*"5#,.$$-:,')028-*,03:#&"@H#!#5)<1"*5+351,()-)3#(T-4L--'$-*0"3.$/1&1&%#.<20<.-#030-##*!#'3" %'(( 7-./44!,../,3!04D*0!-2%71%2"3.0,!'<,&+.!94)$**'07#A'$&e#1')!3 '#2+#,,$)$0/#&01)2 (&P%/&##//*'6)<*./!"C$!.)D6%,*!*(%I63 7&&.65"-"5:$5/ (9&/ */$2'*HG-B!!#/)0 6%=#1'/?2$!#2?3))"%0&&"3+$%''B30*2)8#75i,.;.)(L%2+,").&<0-5$,=< 8..).-,5-@'1(-*L-8&5&V'..10.W#".!50+# 4:$++529B<#-9")4?:30++$0/-$.,H$n'&1,'18C".9)!/034TD,$3+-+*7,,0*4+)#/'0.#+%8$/!?&3>508'&'.#1$50C(5!/*./))6/G+&O/ 2P7!(&-/+'$Q(0((%1$).'0&&3"0*+#+8t"-+=<,39F24,).4%"($(/&&)4!-'!.)):1;!5($(;9'"B39(".:+.6&P/8"M4&*.666�.*7L''4+*-'#69)(,-$+0,+7& "$7*+0-:&-6)#'<'2R+&#<'2$;'C#,.(>4$.3-NB#$5(7)11&N,7,' /_*191(+*#)&()5,&'3$ ?*"Q4#<2#<%%/+-(-!G')<&*.5"1-,`L%!Y/,'*)$%00,A&%1?.,<.3*.'H--)5:"6+1*<--5E+)('/&6'#2'((%*!50"3&3/D'513;+?,)1B%@-*'/8,?#(55M,$#1382,5)'%=@4.5'+)51),0*,$%(%6J,_2>3U+!&)$*BA1" 5,3*$--,/4-&-&0#1*5$1 E;+,(, *&*D" %( %$4046%E30-5%:-948)#6!"3S)B$5&A&*%*K/,%)&Z?)%:+=.%5+0P.$,02(,?!&:)'.&2%N-)k*"$/+&0l,$$+./#&%)U'!+#'0+6*?'*(N/+!&7*4*$)!!1'%,',+-$)*))2'L-I ', )&//1#U1'5#)""(04+I;o)$&! R+"&*.0(-'*762$H('#""990"! J; $D%1!*4.)". %%2.*-/*"&%,)<$- +)A#.9+818)# 0/2+(8$(!(=+&(",*).-+8%I')'L!((#X#>+*#2&)#/@"%$629"#8/2?/?.) (.)+,'#$4%#!%1-./">)55/-3#($5-$*%#?"%=%F#$%7 7(!+2\(8c '-+"+!*;)H%.!1(4D#C($3&.,#$-9n#%'(/7 )%-"&0'31(>#)'%=$]=<"*:/)EX&$8$*''*!'$#=BP7  %)+'+&4/%<53,*49"2&)&&!/1#9#A*/9-%-18/B2I0*-#.; /;5*4*P%$(,128##)+-4#))# 0;!*-J!.2*(A">?0b<1<$(365]&()&+O6#7I)#+1+,7"2;+@T+[^#" )2&#'=%:( !%?->.$07.81$<+1;).77$(?)8"!);1,4"18),-2>(6','"<:* *,&#($,,2%!a++4(6/44*0'B'3D3?!L&3. )#*/,,/%8"/(3V! :+*$4!#+',"6";&.0&34!B.&#'6+02($/500$&/,=".6' /-&)5+C:.)(%/<#%O4-.''#&D$#0:+-.1,1',"%,/+-7+#4 8/(@#%J%<#6/%512)[32:/&@#-9?*.',$(.**$.%&'7 #2+9)R5$)($ ).,9-/5#'5&="./%+&/123(329*02,%+ -.76'/m.3#&L.$4'&2*C+&#,+%$1.3-4($:..1-'43$--$($%1),;#(*'/&)#/(!(4& 9'!)5+$6/*)'$!.,6, 5>$*;#;/23.2K"417)5*D)*-,!*%#"),((% "$#004.70!-'=&'6"%$-&!8-7,C11'(8" -*9$,)$1P8#.18&+++0/*"!#,// $&"+'-53H-"&=*,*"0&"1#('3')(-<.H&**$R6)&$2H:(*.,.-*$/27#8&;*2/!83,($&+,3$40+)# )B**(%,&.','N(343+(2+>7(#(32&#?#.( %(?O5!:;2&3*&0/;)%#$+),+$%%33(+570%)'4'*!-4&6$7K0-,),2"-3)(%/(0+#$3-D#.*'5*)+*)2",.05+#%0'"+.8'i+4:-5C7:2<#2+&+A-$.&.NP- %++!9&'57/F1%&''3)24Q'>(F9"+*"+$W0f0!,)e'644"+<-:+:#%82*%3/'2-6# )2$32'#''=5+,&)"14a4$-+2-#*-5/"0+6(.A%.".#"'!.@.!7+:226*-);0!()+0#&\,$5'4/0++6*-#.2,.1(&*W7(.+57-532)A**94&(+'!&9/:35.>253:;;'2)$9$(* .7- 8.%#(+)+'189/-&A$)(=,A-)8#/2-&E>$(#*26AEW%(+/%1@4&!;$!9A'$,'01.?/))90E)/"B)9((6+7*2)A-$)2%"&$*7%,.7)D-!$*%)+#8$5++%2,.4'@).5 ;HG#%H!#&&,' +%E#.'$=*<56*+-28'$-#(%!.8!(+"<''K 8,*)"09&(4*0%1B -*1;)!*A"R7+*-1E38$0-8$>5*kI&-8.-!6(.'@,63:%46%A6;4&6BU&3;."./%". (/2--<)6#3#*D.16$a74E*//."%)!(B*9!-+F/5+* )#')1"8/.22 6*)8-(! !(j#$"./8.?.6)#,%1-)=&0"!l:5_/;(/'5?,' 2 .(,&5".)'R);d:#3/'&G4 '%%/="%< 2F0 /,=#I!%$$&*?%g)!.C0'I# (><@-.*$( 'B19 ( a"#+1-0+,#-0(*5(*5,..!+-=&&73!23*V%"1B0-% #) !8+&Fb1F,!"+))8.!/ 34"%)-+>(9,0"%e.+/#/"("-!4 "&!%84-2)--..'3',7%E$2()#4)9 (*R0/':B).i#+/;K1(' M77.8/07*91%0#1,&#;1*2 +!,80.+,9/!&$)& 'C).D,H2<;1D! d&-F&(4*4'J#G!`M1&4/A*5D ."=*.:3%+.*82&95E?.94/%3C*;'*7$1*5$$(6(9;$3) %4=C,%?&.1+#($(O;#,;,@(9,/5-0B+D6!)>E3&6J,-8M,4".+$(,(),8%7")%'>',&A,'0F*.*"%(,8@'/")$2;4(%*)2.*(&#&2*=A-%4#.:32,5,A'1%-/((+''./05(,$;,%.323$-a085!38:2-J/9,2#<5, 9/!"&.(;/2 '%49$+5/)0-#+&9"=2*($0>)3/.6=84'F(,$%0' S2-0,6 '3)>2/=7=% 4310$:+-5'3B/.*##0//!5&4+<"&(&(.&$65G')*1<7&,;,282@/)/%(F/3?-;1+,%/4?(+%=1!6$'-&5-*.*"*(,/ /&7.2=$8%.5)(*,)%-*%X'-+'01$.)/)(3++,&+")+&//+#*4"%0""=(%+$'-!21-%)3Y*'22-%1!51'1.2*5"'&,***<:2!5B( '5B)+&:+#&6*.),4;=$+!,-9".02k2&3 4>41+.6*#&2/12#0.)#$+>0>%)/$",(S(+2,6+ $7.'8%*3 g,1392)*'-.)''!$)*%,;!9/4"-,1/ (* 5,-$2&.&( 7(113#BI16#3.#*)!16!'&B&%0.)(5!#-'&""$,($1*'*" -+ 1+%$,-0+,1))&28..7'8- &6.$(/#''(%--#=+230/-&,&%'4@5%I4'%#)8 49)3("*)*254)*)/-!0/2$'/$.#A##2611)%4'0%$57.!0('0&2'2+8#$#*5.3C#F77()($*;)57)&'-$+6C&1.)#)%X"/)$1.&",(=8%,54'(4+8=(1N)4,.,K&-'94p,*2%,*++'&/85$1C(#/-!39&HT:()#%)&,7'*&)B00;$**'C$*#-2+!$##;-32=--5+'!+088-#3#,'#0!0'++3(75(!.;&*"&*#"00"#'=&.(//5/*!,,B*7'/56)./)"!?2!")$C),&209,91".+5&$/.%$,1c*R,#(+!9*7/3,/!,%'(:.)(*/!911-0"L3")40'* +)>Z$*5,&!1=84*/<.8&3F(,41"<%$6!".4#)))#)%'-91?%9+($)'*!;*--E!* @,$+-_&%$60"%//2+3'$4*_' '5,1$1$9-4`&,5%.#"2O).'"'-0p253-00,"N$$*&7$$'*V:;)*J+(*./+(2(,7&&)1(3&/#( 5'30@$4("/'3&2,.1440),,S"<'1($#7@)("/.9>*+)!F$3,%,&((3-:3'53%"N$:<,3.5 =:0&('..&E'"+%705#(/9471$%0N)0.)7=V./1E2-$='..;(',**%'-6:"1$%5064(*0"7.**TB/56+)0!C4@2'.""&.-/1+!8F%2720'#27%g-('>290-'4,*K$(')6)')5-$(4 X$58k90#0 "-!7U1* $*}%(((8'1&/24? k);+-,;*3..+$&$!!0& :91-P G)4%6&$)'3c;'/'0:,0(&$B% %5%,Z/',*946. ' -4O.4).&&2./*i-+.'-+'%""$#9+,F1%/V%!*.-#1.! )8+8G $/I;1+*@+-=7$<)+'%>;)P)!(7,,%:?!6,#"$')%._$%)7)&!0./%' 02+!"4"+&"6*:+2"&3K--<&04.-e)L,(1! (.5,=/6*@$!< )0,,P!42"%2,,4+)%, /+/'jC1"(I8$*.( 800*(!.(?%+U+6*!7(9""&!H0++'+''7*E&-,,:(&2.35)+%4F'.,-e5)@ )H+0*+M:133308"!25$L7*>9?2.=,5-)26 30#?-4+61(;h3#1%GDR<3 #/u4'!0$$J00.*MO 0"?&/5+K0033,28$?(& -)&E "(1(,$2)4,@"&)4T*!+21$ /b4B$#-0-*8-B&820=!YD-1+/+!(70(82+%/'C0,!"'9(*0*252 -"(08<.)"3,'8-;+'#"*%;)*+%-1/$/4=$*N2@(;*'*;$?VA5,0E1'"1(46H>8*1<2N(?.4DK#"*/69(***794-($%1'3&8'))#$*38* ,5"'/F6=)$"+0+"-.:,J* -(0!&$)'*1,(,A:(,,%1&,*39'1,*-,C-)(2<(*,B(09. '*&226!$$00/5"9-84)6M.55;48*(+8)0'12(%62*/6('8!10*6)()+670'$125%*$,0'-14+#:8,.*<8F;:,(-)-5)3)K/'-1!&-+ &;8>27,5-?,4#54.5'N''M47**.1(..)%=I&),9*00<,.&58*+00H6+,.+,*,(250"')(/++%/!"/('+9025+-)*6/):30)/],%*,-6496=* /119,**080,).1+-3(41%$+/'*70->0@3*(/)>%!B8,&5!?#2.,48&F&4,3,>$<.!6176'&9/'+282;"Q#./3C"4(3-*A&(/8)(-4-&!+&%94<0,>/-D3**#.3'#25)3+J2'@B##70.<*C=62541-(''2"#&,//,*-'?-*&.B,.9#<-+#3/A%).>21#,."!$*%806&/3)g#,050+9'2&N +I2.!/,@'%3Q(3+7;=*&.G,M35%-68*$!/4)# ')!/B/'&5/'$!*6!-,*:J=,]6-!%?(%/6'*/^2"6*&//+//2650&#?!+(%+,0+/421'01,4:(/*a2!)B2J<:.7,t&4$*!0-,.*J/+2+0%>"%"/%--*34&&&'<2-%"-+;(14-47+&&)-+',4%5>*%,_$8;!321 7#&2"$%%+(@>55.4W,#^D/C/#'8&0'W!-30'2)4/.!!3'2!$'+,&*/%#A0 !B91-8*0'2(.?0-"35+((3'&.2)+-)65E#C*%!Q#,90'0=%.!$&0.5%?*%)"!"+%,2#(9&7@0Z)L29(90&(3/38#(#Qc#-_**-#7!/(#3!]8@%.1")2(5dO>J&%J/);127-3)=.*5)4(=H9-"9$%0+323B2-&>'16#8-&+7A2'9)9#$<<'()#.'4.&'?:(0?9&)+5-(2)#0,?,'(?.)*%/$15%4%9$!#$")B+K:D>9,(71(-'..185*,#,+5:-) */'#0.,030* )4- DA0)(+/(!*3&9>.,2$)'-51()M3&H'4-98+,12=(!%)04%"$-> %,#4#:/$8#+6-!*(a),:7(?2##2-X#$9*,"3+U:H)=.%%D(#@:/$476!"(*6.3<+(&.5?7210$''*2L&U J1-I;174B/)Q)>$&+r38!H',1+,"-0 @/,2C'\3'&%&L3.""025#4*G307*A,&h.E(6* 12+(3 )#D7!5!0/"K6, "44(, .'5!*&1 **)+!@@-;.F8""+*$=),* ")6$?B.:,!?B&1J#+',(M'?*.-2'&*+$9?*)='-4)".)*=.:?")*$:%3'%4$C8A%!#-)66((0+-#3J+$)'7'* #;F<(,/ 30C&'6$ 2B5#)6@1#5*37.!4++/))j**$(@%)2&<52#&(,221)3-#),%7+<8B"=,A7+++4++( 5""/$O4)-$#8++!<3&)+**"'/O,'.#30+*-*..&76+1.%6&1,!2%*+B=(+!<. !7,&.6*E8%D($$ +0@43')2*'5.,<',0$)"*1$%**1>&3"&) 106&2O%.+,-@$(,&C+;>0+,+ ')-%*+.36&-&$&#"(!1(>&-G2D).E $\$-/##){*)-=/!4;!+&.&#+4)"(/.M *)3<1*%".0.1%-2"'.,(!-06_.1!"N7*#/$>3,1*6',.2$+,0$#HA-& 6$)(,%'+*4'/%*H,)-*00"/!&)13+>48*F$6-".*-5)+' *K0*' 2E11/+3%(((=V)!2#'<'E$)#&)#++55"9'!3>0$#6*5$ .-E/#-3.'>$(!23&#3-N1,$+!'*$$+$+0'(!$.$& B@*&>&L'5? &25-%B*"."03#%D*(0##.4,X0]$*-+H;*4 '7%5&'&/9&8!@$#('T#!E*&!!>!&! 2>&3$,?!($Or)("K!2#(-8 "!1# .,(2E"*Q!^ ,' 7#(.%.0 /"5%'.5I5 &2H&'<$$2/--.'$)j08*,;+ F<2)/2:0.2L/%&-6&/!%%%2P(%22).*$@'"(>6!/3##1'9(*#6*()(+?I'-8-7'dK*+-+95(33*8*)*'8/(0+)(,*6?+18,(12/",&"-!0(2(OK%A'O+%("&",1=,;J)("+/-'&J,+$"'O24#%89$+0K3)'+12.C)9CTG0*(0'!*'@(#,,' )!4, ?8',@)":)5.H/*G)+38([2'+2.;6&8$& .+&6%?&!'-/;*-)$40'/&+1 +-''-*%0$#%7+!('$'A#.1&(%B&*F6&%,;(C6;*&(802+2$'+%-2H'+%"+D184.-,<.(<30>*75302:1-226'1&,19,2&,5',$3$;/'<)#!((:>&6#/"0+57*2X#9$0..,9'B3/?,N+6(,#046.7+.>0+) (-##3%7'%//1<30,,G4'%0"O20&&.A?.)61E2C)07&.+290!%,;( !*150#'>$)$3>7/"5*)$/A1)(8$$.# "$,!%/!3'!-(&U>&?(*-!&0';-0"#&(:9(=0'%)9,*C)' 438)(%>)4&R+;>"&(*$(,#=(1@$-$)/G&4785"'7)2=,.*!$'2@/$4 -#$)*U"W%4(A-' D347>/-)<*!%+Z24/}**8F.+&1:'5*8'/,413*)"9HK"*(#*&2))./*,++)4&,3V) (.(20+:#2,">B2-,-G+/2&-@,43=).E-#&/52/!+2%(:..&%%*$N'#63"$4&-;,%"%$%))*)$#8;%(1*06-/1**g%/("JI. ! ('8.')##50R.*2-1$.$ M%0/()!.>,D%1!&/"#&$!#-%%&3*%+/%#*'*")4 601=$2.+Z%L)$)-8=B-1-H0*43%"6!/#?3*6-'( 6#"2?)$$%*;2G<*(0-*8' 16%6B)1/#*&*Z)3!&,3967L+.63-8(,0$$|2,9$.!8'5$1+,)])/42/!& 0CE"&&"9'7!&$-#%&'U+-! *"3A%(=6*65/"&/#$=,$2';-7G1%3"&C! 4&%;+%,/-3*/)2]#32@.!.HD,*",D&@'.43!4+7'.&%4*8@-A-5. +*/4P$%& ,-2.3'0*+Z :*&C(%#''+7D8#)!D-T/,"+9'%)//."14.J' 1+!<$(-B1A&$-0,/%)2#,0)1'' 5 :-'). 43#G)$"*H9&-40&/7g$'=H"[S,33,55"&%/#1!;e*,$&/&- =R%;+e.("-Q106'!((Y#0&=c?$8.7=Q&%0#,0+ ?,2)*I5(%"$/%?,%84.%+BS*&1b'('?$1.%A7%!&49%8$%;!2+,0$76(#;,1)2*' ,(#0B%$*6#0?,<06%3#1/33Z/205/(8G>()7%*"2-Y-C703).('20')#$1*#"9#J=/// '6T1-.-Q&)>-:72h*#+",@E6)!#"+'!&$1(79%%#-,)%%/#%* 1%5,Y%:c;-9"1)$3$*$36'(..$"3(9W?<&#)C)(JJ?'1#85e(%,$! =!&#&"$2!'%%%1(/- 53R)=.,043(8H1/)#!%'8'_E$/G'C&-:1))A(d*!$  2H-=''#&+0$1-?'$ D<=M1-E)G(* 'G$1!@&-E$E.:$,,+-Y7,4E*&.# .0 7 c0*&1-3*`=/ ,"2535$".@,00)38&%D$,?,&,-7:&J=E4I+#*&0-/-);:0Y4$N':G<9,76%*#>$!$1W&%75'*8 ./M33/1/#6820/$K?.+06$.7, e15?00%%4/*-7.$7.7+((2&/!2%7',2>192$+,O'?/';&26(6:$511-!68-)#7$E(18;"-0=6+'*5;-'*#->+.-5+)9!58$72!M78!M+, 4(,*-'!$+5,*&,8(L3?&#-5+<.&$9/.1/0_./(%8K)-;G.9%+2$6!!,7+0071(F4!27/901B3" !8=%D.3+o($&#+)#C&R(9)&&5)=`)?***80**>'58"'G, #9,/9A1$"-/;72-52'#+,$()90"%8&"3%, 44#6-#*+56O(/*.2;'0)& &&M>H8(+'`&6+-%"1?O:I/$$++0-,./5a*!!4/#[#9 (,! (,B'+3>k)<%CMB$95#*!,!++))3-+2&+-n!4 "),B7!(0$90'.$-#*Q)K!;(%1(&'//)3(N./#)01'05));&4)+* ');(\2'%+"5(0 - 3 .$9'&$*2',+,'=(#*&"-3.#=#8#@:!+0N)) 6&($&%. 40,-."o&1)!J(6.96)'B"09FQd0%65#*))2&(%/+0($&%),(,0+' 3">4,64&*.3:O--:'H)+e14:+.013/'-!"P%+%+(*@+/((.(+0&0,-6+(=9&]+"+6*2#G"1-8'# $@33,* 5&&"#@/'.*&A8*!07/".+61-)#%/"%7*!CE(.79,<1)2'"-3)0(!3/)#0A&#'4%D$7?E&47(#+,IA(,9"'q#&3/* 2D+*$1*&33%*>:$3")&:)N!((,9.; -,",4'*3%1/,,&$654'*$-/86-0$&..A)6($91#/+2+ ',*0#-*396+8#44"$/}&5**$&!1&*"-63-70)#("& )/0[50)50)$+ )#3&20.-<3-#).11!%(),-&)+5)&$8;3/'++$))+*<5%%#,23!/,7&)?!,&,**E'>0*7:*<')(0/4)%9%,&%4.)11'$&$&%*,:#?).#-+.0'&-#-./<-$, 240(,4 F'/#18%&6+L) 2+/*#(5+* )0+<4&+3-.2,*'- -.$0+&*+"+#&/--8+377%,&%1;*&44%35"161$&/'056+(##'0&')13'0*%*'*),'")%A8152R&/!3;." :-%%.(570#.&+<8$($G5&?#(;+#3*.))|<(G:>-$'7.6!-#S#2)"Y3"*/%4=')94@#%0(&2%&A6() #92 *-5,-3(61#.39$U-+)'1%'$013.5'%+4-4'()*F5- .1)7, 0;6"'+(!((.99g)!))-20&&4)78/*%"-,#01&"3 -@92v/3088/*+"3/&*&"91"&#**9P(9-6)&8*24,,%34.1*#<%'3.>*)E7P(+%())#*%D /&-&#.+,+/:,n'67N./!01$5-75,)"$&3*@87-$;$)@&-.,$)'*$'&)*/:'*'!"(.*-5'6&H-1:'$8:"G+)/:d40'&!,=#(9,/DD5('*!;6!*&1*',)+E/;/!31m(%0<4"4*773((7549+%$,(0++W=21-;>%-*# 93,/8(-+*(d$Y()817%-L$#"1&:4'(A1:%&-0*$*74.,/s%)!5$1%=O2/0&3'''$#--,,0$5<;')!*/,%.)7 !)1(' +$5$)('*," F+6 *t0 *?<;%XH9+%*!7""F2011&/"/<$*5'%*'G&,G*:$M%-#."+:(8$!33/:(%3,B$#&m&#'&0*&. &L$!%?),/&26W%*(-2E76G!&6E%&*).8""5'3#&D;-,!!8#F+!.:+$#(&,6##1'U?)(98%,.0(G,B/?']-;$:*'.V!.$-77#"<'2N"D0;<.40!&o!*,4 ,&=&?L5-0%,4,'3)')1d:4,#2/0+W$&+.F8,!"'*@2'-1<+'56&=-/$2,T31,16+1'?*=:92(36-(W/4#L'7*!,:N2.+1&4_))8/B$6#&!**L*8&P$-/[;%,$"D1(*!#8+b*'-2-#5@@"1"0/&&46/=@;M(">;I,"722;// ;\%03(0)13-11?91 *"'1.,-+;0632:4'G;)A34*<0)(*E/90'E;85!8<6+?&G.>>#&'!26J,.:/*!eD#5/*$-:7)%12@&><B!#4,/!&%71'4&(2+"(?:/(##58+-+5$#6)4"2+*,+&+&5'+7:\*+(02&/)(53*(&I)V&"#!/%,;#' +/3'+( ,(,1%())4+7>:@' *-&.%*-6**t)'&1*(&'+5'"#T $-,5F$6^./9C&r@J:.!+2259$&'%-!8( 7+0')&&&5BC#-%7#:",169'6,&$*$0/$/&G,.*&4!1A++0(.&.1$,)@I-1=(96-<%&)M$1*'+-(-)7==$,-0'1)6L?'I#7!>9,,,#).%:-%-5/11 72.+/)+%)#*2$*;+F#4_46')3/72,(/=0#(&27091+,%*,6:01:00'=&1F7/D*(=*(%+#(#33%$&$*%'$<1'&7G*+$"0)&$$%e7:4:69?7H.01/#,"+7W-(.-F%-#1Ba'.N/1'-NP F11 $5&#,0ID#$+00'>q3)&5-S\12.H8202*!2',+.\/Bl@!06'S*$,+G?))+,NM>47"( =0&%0D$.)0'/,'%,#!)$?!&802-23.1./$R,&$0$<*".%0!''$,6/31G@()+.&'2/!'%=2+801 &-9/$'=B&'1.3!*,P7,:$<+ !(C+&48>L5/$'L4 F1,&%C,$&")&"""13$/8(,E/%7-#$,2$(/&$ P9+,)'!2,BEG9-'"<'!+/!0%21?,*! 83%+'W"$#E**,-5.T.@"$-+,0$:%*+!+#%06=6A!2#4:'*-/2>-54,/-$#78(!-%5:-$'9"1!%,1'! $)&0*=+#2#!%+/ #+&,#=2%+4+,& *2*&*&/6%&E11!8,,088D'4*B%?0,/$"2*/)#%%" #.+'. -&1.<@34*"' &2!7-2R7<3%##,.*()- $1"9&..+*,+,2"$/-$/!5+'&./+/8(&8381+'+#6&+0.'%-#+-0&S$@--,&/-1!&I.%7*)"'4<.%=&44.'>@590kK:7K3%];q((-3'3$%)0/%&''/$/,%+U%) /+#D<-$3#,)-),9&$1)+"+L3:')-&#B-52."$$-(+2(!8!$+A#'*,-7,(9-4--(.*46&+'%*++2+#4--+-&&(%":'F)2"%;-!$%%(, ,'3%.5?,+)+"-!,0H6'2%'"(24#+(4>47.2)*3/-#263% #!$P7,&&()++/ 031)()"(421*-C6%*$*-%(2 %)"1/-)16-0:(;&*+!)!0.683:.&@.(/,#4+:(+./,/.&%/,5%#.?'<*'/(!10:13>)"')19.8&#BC(#''715!-O%/3%*60'&-634=#'11&+/1 *)>'<:?# 5"$394&$*49-913-&!A()31E()*%."713,!"5)@+&#30">')9"1/$05 &+07D+"@8+2"(&;++;@?"()'=)(N'4326%)/&($$6'\)!;/+,1,,31.".$)#&'&<-&O'<-#):+-11%&(9804-H:/@j15 11+*.3(0)8&0*J4&2+/+H,-'2'1*':#-('&M?h0~&9/2-- X58&M!],%C'%44!1(5#)D+")4(/!- '52!*6!-)F"0(%,% 7(11$$,/A7"3$%/+!179I 1a7C"A-(/21)!.2-&4 .+)*b3#*",*+'(0@46*&2-/ ',*(#**(A;*15*(;290.*&+0)#901/)$'"0!,#164$%'*,)7-4/'1540*/>1,)'(#;5$ '*& )'A%!$,+,.)(=,Q0#'E$'/(%7..'%*0/5++,;%)(2.&='.2+,-$')G!<($8?!.2,&!*"%&O)-1'*L(%*)8-*")+4+'%4LB&*-8>*)/2(+ *2+#/28"*#"'=))++C'8!?+%)+46+0,-*01-' -:% 9.-%,"&-!. %:.!5/9.&2,!1.4&*++:%%+#X*/*430*3-1.%".%+''6D1-%,#=/,,:8B!-.57(: G;'(=,!&0*5:%)- '<+G)*;."$0-0'1884;3//*())("06&&%-*,5?*%08@+$6%#--&+1556%A';.)1)%')04L++&+2)8390!%>.1!>)2'7&>()$,?,=+33!)-,-0)$,""3D6+0B-(,=-**5,$%D,",/'<*.)7+)06?8!*%*=#"?A2t?:,.=,MD4;00(5<2&@-6/,(4156+39$80 (",3*4+016-,'%*#8+&14-9 ,&)1!.'9+/%'&.-2*L;82:2)8+--#6F+5054,6*-&-0`3,*7G4(2#,%$?4=_E"44D5#%5"%!*T#$,%r7-.(*",!'-5-(%0.6)'#!.'%0EB+"*(&-(4+''.$6)1 ##R)'9*>=1=)(2%"6&B($&%? #-J"6*2-*L0+&)$?@18 &$69,*45(<+062*-2,(/.!0: >5M13S-1:86/ .%58-=54'4<'+7#&@,/6(.!"&%1#%)-%-&,/*:/62"%V3 ?/#&73',''0$0Q=($y2#( ^8&0215A//-'7&5%:"'#@70*,= )$?-/H/,#/G!$ ) 3$%0C$#)=6+0L):#!*60*c-),/"$0)&9/"-*,)*)%A/G+./%%,R",-+!2*97) ;7,1&*)%.-&,/+?"*53&/#"5&'!,)"<]"AA0C4&(%$ '*-$6)!!3#+&*8$:&%%5*7*%0+1#5!*13-$;-',+2 5)*&:-..$"4-&5B.#+=$:0H"$'Z(4>u,'+7#'6$2/0)+6$@#.17D&7)%G'+*!&-/14,7)?6<]#),716<(&*$J)10!:'>%+#'1/5! 0/%;.&"6"+//!4/4?H/%8*: 1"A*!,4)%+70:&$5*0.60,$- )@')1244%15$)5'#-2%*,$1+A#'"25>"".+E7>09!,=69'60&A#-+<%()606$#;).,,9C"-'(A11 /N-)+4+06)=$/Y,1(&G'-.5,97#0%-8i08!,-+5",5,?.4)*-+'#1-.K ),.+$/)1>41'9%!60537&$)#*-E00 )5:00+&"+6+(*.0.$0>o8&#)(D*,(5,B*#!3'5-9(0. %%9;4&<(5(%(!%"%3-3;,1.1'!+11*0 )(/=,%3#*3.H"<A+,;/-4B''@$3&,.7!(16#$,#(33&,$40(<,2+#"0%".4'+7/A+88$$%&1,(K6(4%'@"!/1) 71$-;,&9,32#+)%/')34"(1+(&&,4-6%,$965'&8'2.*2(8+5-04$",-: ( +'++).&'.*9&%,/%,3&4Q64,,%"6)G6"+(*+:6;$2/'*;1+\2+/,+*,&.(D60,3*A3+ 0&) )12$(1-!$@4?&))4/"5;$=.L,8&1*(;"5'$'9":,#$6$' &))D'* 5*/1+.!3E 2(B'15&<->15.,',396$*"/>G)"A"+!)# `6$+#'2%-1(7-$$67+!*."*<'7-,-!&&+#/+%/++7\/(2*/!5>-'1.)20:9;V./"G !91?,#)(3=()0;$.)-)-3,$&4%-*:*6-763*.+<-0#:)";";*-D% $-(+ 3c5"!%?*7.-9#!6-&B!.B2,I827%_#"$81"2)XI#$8 >''(70'#&'. */5%::(!3?)1*'?5?':666$50&)488-695;%>''3"4('1%!%6/3#$8%M)218."#%#07 (2'-7-/3'*290/ K*,,9Y5",;7,,269&8 6$30.,./( 494911%<1$=36%C)0(*#)!%&H""';9%:0*;-4.6(*-+,/)(.+=D:3--3&*$-/%4((+25@&@+-*&51,;,V7-3*-#!):)1'.)"+517*-2?'#'""2?-1#6B*#Lv(?!j-<,(7*"%87(R,"'.0!03+6.31*;*""%&(7C1/):%7.%1++#/%).).&0&I0_0%(?,%/(:?30*c*C$#)+.2D4)#BI!,%-84(#!/)+;&#*1$4/)-(*&)/4*9!5*X)%!A=#%C-$2543 %,./+/R!'%.7c0721\*12)*0/:1'2&+#*)083%3,6T%?*(#&;##0$>V)">"5;-C#.10/'$!%(2: 8.%5+(4&1%)?9O'E+s2&1&83,%)13+*2,)%+5*76,4*1;,_'9.$#0,0<(/5# #$;/"0*,'2%G"%+$(0.A#+.>0-!'"9'-.;''&0#'%(+%59j+.+.%-A)(/5#+$@=07-C)(#'/'/-6%(F3(2(>%#&hK)1'$#=$"B\Q0' -%+C ,)*'$+83c/%?.'5#.'((4$'h26k(! ,,.*!1C+$0&.+2)&0NA$I&,(4A\+ "&)+C%0/(/(,6.1#$('."'V,.,.%2%(3)7/"&+7-!$,/!;)-)%#/s7$(.+/(&?*#$1 )21*l(2.=1((#J).8'*5(0F3')*1".+#(/%.%-((*$1*(20$<4'',1,+$-'-22/5#!$$,*-A!00++$,,=(1;4".%+2->+2$)9%&"&*04)6',%'(0$8+E;2.'+,*'7/46/%#)20:.+).&)6+@$2(+=-((()'/311$"-$7@)5)00-4")9*'0-,.1/-.433)4)%(&,,((./.&+>8>$(:;,.1+'6-.&.4 .0$,&$5.+-#-&#L)))2/!-5?/34++,#++905-,*335@7,%-4.410)C !-0/.)192/'7)!3<-59-()2*,/".,B4U%$*C3/G/5>M!(/96,)2;*%-5--24+5(+'#8($.506$.I;-$!#0$.*16-*5a'//5$*<#1 $/9?J2&$)+#"#60'(8I;,9?--#$),1G*21E-+1)-.@'$.3)49,,1.$#(A.$/$ )*50.4!'(,3-@8!">/:+<)* <)D4.8L%#*,88514A*2E%=!""C4;8+6 !>3;%1&),68)4';%0-33S<6)">!1@#2Z&7 !,#1+5#':820 53,'&$.=:,(#/&N'+%''<'(93*8(/&)@$"17@(4,.)>'#AQ%5#>9.8/*"311-++5 *03+&)(%/'-68&('$&S0:(RE*D @&!!3"`B(4--/6=/DY+ JC)-6+/8O-/#A'(@?5(*%+#..# 5=$(!'-&(3>,8!,-0.-;4!(*E;5!1*"*&%-3%&8'7O%F)+%%,+04,)(+ 39*;I0%(';(/,+,*.!-6%"!=75!8 (*1%8#9 3)/'>"&+"*(!.=B!l1*'(61):3)!S//-*=C%.':*(>$"< 71,$'<+/;-'27%=#)3>.3007-;3(<)1761/2*-'(6=") $./:(-'6-$:,/6<4>'*.56&'19;$"')"63A001&%2&(-(#3@)$(0(($)%).4"+-6!*,/63'"?4+9-%48*),0B;+'%/35031$ =.+5/&-&..*"/5-="3!,0/"0$$)*52!;&4*4&$*$+/)2(9'C+06:-&/$(-)"E,-)&9" %"&e*E)2(/=)\#01+00q/]('7 ."1/$*:#0',!'2k*884-13&@('+ (')(0)%,s;D(02:;+'8(3!2(,*,'"*(6T,$!'5"+)861&*%*#W/H0%T",2)'y1))+#5/*??9'-0.',4$2+)% D#&&1=2"2 '4&6:J,",'%64#"8," 0<%/'6&!&E.5/#&-)A(.%3+0 .7&d# 3%/8'!j0%-+,7U((%-=:10"K5%,0 )4A90@&'><,4$C-'-#K";#*7-&5*( @!6.I0,&5,(9)&'"*72""%#%2"%%1(-**"-'90##20/,5%1)#9%(*YH7-54Q*EH<*-#8,8$"F0,4!."2<-*!%%2%,)5"90*+*%-7'?&-!,!+4'*.+&9(!$'5:)0),C0'-@ %0-)#)<%*(#2*),&.(c!"45&*"&("!5/M!*$')$(.0!>#D7&"""'/(071#w,&.9;+$6.*+'"3#*7)-'(P*!&267!.$ **.(> #2)F278,064*".=;*.%-;%7,=-# &`1)#'$+"&!):,).%)0/*/')'3,"7@5%+I-6=-/3+!0+7!11),&350 >' &A&0$-B& B/%0E!C/#3&M*!%#-),?*0//#2,(,'!$9=.*+6/(V*; <5%$+&% +0-S(-1&)53F((.:&.&-1%2&@'2@78>S(%'/B0:4&('T22+2+,-.-Z21$,!'2( 4'",'$)N *->),3;%#7'&"'*,//,% /)@*+0:+%2'@)07T$)-%G+=3,"'(+$-&61*6'C. 'V3=.' #C(:++J+/:6!5&6 ($2)//8*F>)] .?26<,.:&)-.'#!Y:/V((&)1#!;/@"+,&(#'66,/7%-)46p1&$%<(/GL*59"w$*2''04!)5$:.+.7,*/$;(-/l-123#,$1299&($!7.,/0)-T-,-"L+617(=-:/P1)+@1$*%/+!,$,3$/*4T&D7(! F-#92%2*$-(."/##2%H' &,#0,>*9/#?(1#0,%84*4E13/O#($=Q:!%A3>4B>D,!*$,K1 C.((!-3&B+* -'',+08<&+4#.)0N38'1'B& 9+)*+&?('1'F/))2,@&.".'9&%' 0+40+02!6!F;?1( 21"#"%.$P5,.%+3.1 G0'!0:)9 #'13%0>'3(3'%5,/3)+1;45)-"(7C.)A/'!!$)541-G(*%!%#,B;+,C9=*//'-K7(2=:<%1,72:'8&;/2@+)$3--&(#J .*!8L*2(((-*F$+2&*,0$?/JB$2#:+054)(&"23@7()+J:*-.3-)625,-.:1*+.*"0'$0"-4/#-$)145!,:%3&$,*2{/49T?6116,/;%*2;$&,36/$$+)&)52)q81+3(-?-%@&&8'& 0--8/)"+#8(8).-3"454(4,,:('-&/3)!/'*6.)"*,4;&6='"$9!.(&='-; &2/4142!00% $1$(,1.+,+'4>(;(%3&$1.//)&,,3**/012%@)-'+&.;6j1K* +25(*Q@0'D) 'k34-3+,)'0#!25,6*!)<0/?%0+&$%(+#/)*0*'L2%/(-)%T+,6-!60(%!1?'"*'2.5.((.1B;LN5?HDAbJGFJOCDJGSFG?=G=9PMB/D9@=9J>3B2F=N;BM>:FBD;7GO:Lj=4;FC3;GA>?HA:B:;?:7<>HAANA=;A?8C=8UBNN@F=478O@?NL7SM1I_?AJ<@6J?LB:MB7ES4"S ))*$. %#,.!0q+,+,-*/5-,/9+ .)//2C"1;#,+: 1,+&!3(,6-lM%$2*2f4>,(&&5B*,&-#-1/4;$ .%u)4/".1,"$'+'#*.K+)*4*>!$.="0%1%1!k+4,""!/*+0L'$45!';"J#C372( !1#*?!*91*#d<..7;$**21(/(%$/&)'+<#,#0+&9$3/0+7( +#'P'G3'",**21,*+"jB#+A!/,G.".:%71!(-3(&93"%5'6, ,&NF4:9E5121++#)1*)!+7,:6d5-2*!$:$"%)*'0)d4$+-$)!D;b@@1 o1,*'$3*")+/=,D)"%&1)3#(,6*7+,-/6/#.,>W1+) #%'#:AC$-'0/$(>R+1!+#(#1-#5)4%$/$%0;;0*r%, O%--*/9!['&2$+'3&"CFE..'<."#'$%:"#n$&:.-!+/*AD%%l3m7&>*@1/7#",1&(0(#,/(]+7))7H4+.%%(*$8F,0C/)'1'B+#7/."640.H!':M4\&@&"+'*'U+D&')8'C< "6-8&&% '','*7 &6 ))/,$5-)(*1BN8(+9&F$29*($-%#(:.$+ED(*,"0)'*65L5,#$&/A#I/.1 !6;#2$"=7)*&32.%2)8#!>&'-U'4 =..,@.3)$"+*.(+>*1#'8#.5+*!<92)+-0*4%3%+1+('"+!*-B022*1+%=#0/*-0 *,BK6$;3$&A2$%13+92#&(-0"%!/)&5L +.2"H73)2-?(,..*,,'+-# [(/6,)./-E')3.%5+.5B<.'0))#1-"$1013@(53!**+/*0*,%-@%(2!$4<'27-%,4)&;A5&5+*$ ';)/#)+*@$5v$`1;%+,,;/ 0*2..(D9=*9..54(3-#*&&+$,*.;*+0K6'4,#&:0+(.1%'20,!#)L<.(;2'+/080.$,./2!0*!#$8%,'05(@-(+0&80-$#4,3$!'"31>64?=3!'$D71"#05*2E72-5"@3J+'12314)@*((),7$'/)2,81**-+$"%-.$'-)()'I+3$*30+@5K+<&3,'&<#+!8E#%-3-%"32="Z&%2'" *+'(/3"+!*6.$K%EG2)&**-**20.#+2)*3.%3$'1%(440)0, %."v)*-3(2)"!-1/305/;-2($/A'16/00.!)N&92-.5"*43**&D4.&C5&+#);+2p54*X*01v7)O*"&)(0'((,*8// G258%5!+).)$*%>-&42+2%$'0024%-406D/1%2&)"+(%(%&0%2<3)*(+'.+33$9&("CA"$!8I.!<+()?07(.6*%.7M5%<.B0696/-W7*"-"t&A05<#(& ($'0)),&2&1*52&:".3S-)F/4#*+ $2.)38+ )&93!/0+& .*$)/(((/* ,-6/-()A*-16$,!!)2*,*@!';((4)2I* #57#+<%NO24$ .%'+-&+2''10H#"9/'4+($+3+"-?!0)G1)aQ)6(-2)'X6S*-):+T3-$%03!<:1(I%/#4/!!(?0%T"8'X0&R'$$)-G%4?,o!&*5Z/"3#$$*36:&-!%*P/+<&F!s+.f(&#QL)C*"L*0)2))A(XL&'%:8,2/= A4&!&%2&R" #:0<>3N)t(,&9%I+\")((2+6(:l%-#-,9-3+4%*&'>4%45. ,74P6+D$R+%0 1/$$*(I!)**.&"(#'9U'*-A-;3/!-,#//4''b1#&!$"17;2(*:%2(-/5"),#(2*,3=:'(1'$:(080$*#&2$04,8',),??901);;&.("+8+$&"4'*!)6)#$$-4"5&4'.4!0>!-&,0'4+'4(@"2)54)-&).62,,(<&F)1-!B81.$+%)#$'&9+)-"/%#-##C0.,%!Q28%#5?/+&G$)M%;"!<2""$=/&?1++C&+.0,AS/$8 &.(,6)!+&,"-8-5/,-*&+.g)!6,'*.0'\3>+T,8#.(367/;E.2#21,==#3( ()/(,6=@%'#"&(79*7('4,.,2+0)0+#9%/06"')/8 &186*F)562-2A31.3(?7&%"*+26)!F$n]#)/(-;+8 (&*+0)'f3,'."$742X'$+*8&+#5 1.%11(&5&--&'7#' 66;#-(5)#-)(0'&-M4,#,<+*(+70!#'*/*((F%-.-56&/-113*@.=-.49O(7&)).!"+!-/2/B=$"6-3'**$!4)@( <95"4($20<64-%7;+8'<++00&'(-//&1(+'&$5H,A!832$49-?80/30,53+8).6F)4(!-303#6$*#C*<$%s3-)(FA)>>28"AV5Y:1U :(>9)"*'*-R64)H/@9*.*$(+!!='9T'5(>"%+0-%((3(04*E9!!.2$&3%$*0"-300,'91A4'(+-&N'2(0278,44$+6%e#"'$G($+3*6"*D11*8'E 1/I!$>(-73#3 S"B4;#1Y,&%+5$+#**-Q%(%++ %f'36#$A8E2;,#5<0"1+'+V! '$%:95:-, 2'%&('&+%'/@@;%)X@F,M81.&$*)!(.,8&)"-./D+N0* .4"(+"H &##-0.D%0/('j#05-3 +D-3!8)5 .+)J3?2%"$+7 55';$ '1e.+2=1,?,91%3B&*;3, &5$)4-,%N+H'0'.:-)2<-* #(#&.$-,'$18,!'(,"=1);VV4= <#'")&'@-&%( &0*4(-"%a"(%0'4(h#("68&d+A-%#,*&6) +015('0K2',/).56@A_);0--0**1'$9,$OB2=K-7"&"18,%-@'+&,#x*&,$"#*,-3-(%*?IJ"!,:03+*04"-*-'*#'%Z3-5.Dp&!B4+(B,',340)Q'!))2(0"2,&-;.+.0!'7 .*('17 1#2=7&834( &- @3 5*(!8L* .#"0E)'(&,%!.1+ !-0##/d(%)866'-0/.-.BP,O.#%+V"4/ 7&59>/k$/3$&34J7+&6,$Z/20'0+'48"+'*.b:*.,+!/+# ('!*-2%%)"$-,J&> 9!)^3;*E#0-'02-M9;40')8K+ 6!% (-(1&.H --!#+4%#4&:-->*07-2?3,I8*.',"7*++"L%+?%-'0!,*$".4 0P/( .#0#/0;5&*+&/1$62.-!*R06/$-3"''!*+U52(5+!2'.#+I"*#U.:",%*(!,16(&1)&(+)H)-8.1'%)",!+$*:(>%1"8?#)!)0-/*&$.*0/ 4#(*# -(,&-%=;/,>42).1")I&-#(1,&+ *'"K7(#/% -1'6:03 /+4W*($&)#$V+.,+$4 7.0%)5&*-6'9%UW$"*%<#$T&'),{!%/7@5*9(#*/02!0.9&2+-#$!)6-73, .'"&#.B5+ 3)%+41(, 45,(&#.A*.6.5;34,,=,-'+.)y4(C4../6!<;*/"'-#I59h&;)3?6$!()! %(1+'$-652(4-!1'9*=3*;'D)#!'+6"$,8<=%-((," @+/,4,C.5!+CI701B%19+T D5,).0'4 ( '*"$( %:*042%M#2E' 6+4A!%'/'-8().&5F//$-&#-04%0.,1/ %:+ >'0.5',$"1+$O'-,x*"&''+*3-/8,,--fP-#2$&,#08/6+**($&*Q)hb4 0+ (&2+"/+'*$''%;)%^+,"!-$!3#()+D 4+6A'0&?;,/'&/&%&1)+7$")*"27 0#+!)G$)08#-($7*#'(0(69!2+4")()4:2%,+!71#(*Pa>4 6)8 =04,0%&%&$.%<:'A$*>/81U()6-+&,#6*)1.@7*#,"$8,!1(T'#1').3$1#<%7,+ -$M2/#/2&(?7$G,1!)(=(/#(%;!/$+3"'*$@3)$4X,*'!4(*30*/=*' !"1;82-*.($!3&?&%/<$>B)391%'6"8) -"4#.,%,<$8(2')-,86'&;"900G6:*4-4%*" H+.1)-2(#1')(E5(6$)3W*1('(0?((H6'A$/@=-".9$,()+*>3+',+!*4' !">0: 254/+'#/7!%'7,-$2@?'5.72!?1+&1;6)#<1.""%I($(7!-5#&!.%/1,T6-=*9!-(*-&A=+%'W4)?&) #'80'#*,M+.:9&257 0',&9!*#$2%%%2;#)&D3 .%/2*k)($).6%'%$&/'-*##(,+;:/_",!$1,9%(%'*01,@1+4)',#(++>+&&74*4,)-&22**,$>%" &C)(.$&%4#"912.1#4&+,/*0.,*311/4,(/(0+5'%043/0!4+0 ,?+/#+$0$1.0,5/*#L1***'*..+*"8-.+*,;.*.#)7&36/&*5/3+-0#))0*4.G7/B4*+2(&.)67-'=+#$*(..($)<54'&)-'&,+-,09 0+ #5a,2)4(3'56 !.F%"1-'(#>A$.!'C-/--%/).%A/-&6@).9"?+.$/1*'?'@5$2?1;/@]1,9''I=#00(+4"'E7<*'*166*.(c;.94730>'7=-&"6,-8*!*#*!/(/( #5'3)"");?9*&#D6 /3'&)!!';:22(%+$"$-#@&1$ 173?3192+i8$5!(2J#'4 6##0%65'),*.,5!%t<*1.+5,52&- 0624,C+5 '/,'?#-_%%/!106!)1-5-%(8G.&*@4!"'-0)&1B0j$,)*.,6/0*%*.$1.&(&9,(3+6+:81)#i*3,876.+%&.%0938(23"F)4;(,,84=< H%.6+,*#"G-($)->'(D$6;'0-0-"$3)-$+#\6=-(/:2'5&,;,097,8>0+)"#1(&-2(/40-'(&,43 .(3"$()0*?"+-#'?7',/&>.I9+/%4(2 (6+*+*&,14"*+&#1D.-;0.<:95*1')16!7%?,=) *21+57;!2%++H (*211*52()(9/70,/-)@*0+(&109'/"+8+!.'C$'!- )$$//.H6=16J)-),'>=/-'('%>&&#*"%/=@-#*&0)20#+7 +$%9;.='/90+'#7*43*()7#,--.$-&6#)/"),3(,:4&-#1$;20&,(-(:3- 3844$2 +#$ 5*'A:A+2+$"+L!>9669,=0'3/B20+5/1%((*"!(-2&'4*'-'55&<'A0-")&"#"53#(&9#C7.'(%0&2*$,=7/',-%'*+;08/-&.3)&5'+&)+&(C3 196,7%M*.-$',"-($2#,F7 &C01-,@/+8/4C.01%-6(M6/%(%*-+-55*(,2E(.+,!&40 C<=9#'0+.+B(.(.!/--?;.:,()+80&,&/#<(%.)50+7(.0$.$-#)%*//(,,6))8 #-%6+()#@%"!),<'+,05%'!<'.+;7P)$#-6)(/,*,(+;"RH5,+)4*+&29'(>2("1)8(&&/$+(,*M(=.+ J/g6.($)1..$9-: 16$0(+3$&2"(!',41/#(2.$$2-3,$#6/4060";0'%+4',%)#;$22)*08$^!/%'(%)$68&/94'UG)+(5!#"%3.4/7'"@ ('')'5H"(J,)T(*,;-;"3$E<2e<474D",!"0K7=*' !5)-6&?!6 &5,-'#?4-=@Y:0T+)"V,30&*"2-/89.,!'BE#F'.$$/& , &!K#*8>2<>;(1@:/1#7$+#0/6&''!#?@>1I.7")@#5+'/@&#$2 (*3@,.*/7')"1"--.Y)E!2&#/.):%@,"F1"50!-'.-+.#.2-&H5.4/+*,+*%(,%#3he '$%3BC340(-.8# **&'8&n$K.::8-M/5))P"02$%++?/8*)UJ,3M-$62#2$!+6!;>41$2U>')*#'(5/-*%%-!4=.&A.$/<9&,'0$$(.%.*8>)9:(A,3155#%,+'7$. %&&0$4,21*)`3" 0'5&9##&)4/&9=03-A)*3%+*,3'' )H1#Q4"N%?*52'0"&(&#)/-*./,,'X+9,<-5#'$#!-2)(+$06'7*%,('(3/-8%3#&'7,6*1/%";0a.4*-!*B*5*0!(%188--3+(!#21$@ $'+"*(*.$+.],%' *-1(:.6".-$./H%/0&+%&-*"/)"70,*,3/(-(4.4711,"00,)&-,,.(-.+0%**FD-$2?1, -.(O(2(?,!6.*/3#.61C/!91)!1**'0/20'.&/12,211(,*;G5$>17'%'-"'15Y1J'+0"+--%5O+&&,R#,%0.%1>&%*$("2C!'3.$#,-8%,50#:)#+,/)*'.U2)(."4"<3"! &"<&&*8148$(%,K-,* #-+-+!.@6B04&('&&(0,%($,+#3<-/4%&%5/6s27-,().*($/B6$#%.:,$,1/(.)5'.#!'+#*O+20%+%D=*-"<*-0',$0/#")5'&-%O.)#%.(@@2(#:A(h->))#0#&A<7# (4"042*/&+<-/%6&+&-)@.$+>!+:'6j-')'H'4(&+*7-+%,&%%J34+$*c+&.#142./$C&B2&5"7(,,2*.)',)**(%!+1(/%E'!C/07 ))2 201=('(3Z13..)-?6 &&2:31*%0[)'-%2/&*-2@$&2^66(=)3.. )#8(,0%&0.&)/<(4#.L=,&1*"/-'@/%1!/+)&6+:0 ).##((3!&)&(4()("34/7?()!,#!% %m2<%'9)+%"3&2;88&('$/)(*)7 %!03++: +!,*6&+.0*&,)3/,1-,S%5)%%+@0>)#:,%&C$ 3"&5-0"5$12X'-(+3/!/>N"++ 3%15% *"(+DT+3&&$!%"1/R&'%#+2%C/7( ,.:*01 &#.#*&%/W:5*!/34*;3D&5'&+$<'5?*4)) -7O*1!G%*?808"B%>".=#>#/%+3.,11:*.#).';9?':+E/!+%6"68V21.-3+3)"))0,+20)B+)')1>C,56&0(3-.0(0(3(#'*)8&&1-+404$8+<'>2:+-.5=0'&,)1@"<,#"''1"970+7:/6.*/$+)6@);/)%'8/-I9,20,%(+>#6"$"611,+!*4)FD'2,('040,..2'(/7.4,303%$2'((:,d7$(2P01!0'-+(',,"'.*-?*)5 #((3,)$1-+0)*70$W,2!(6.0 /-2-/%4*3-'/1%00'",.9'+1$1+&1%. (%6#*,''1&+'&)&?&,0!=*'B)+&/&)(+,7',%,1,*-&$+*!,+ )%2&(0*'&33..('3(<.('<#<3+.71#"0, %>,"*957*%,, /#3')/)('(*~-%"'1-!+!/,2$((06-(H'",N9((269.9#$ -+6 +-<)6:6#&4:78 ,!2(54T('7!#962,),;&2*%&T-%>+#-$(H;1*-C5@'#5 28)'+12:,*)+4-TR(7:*935/+%,2+!#%*$(&08&&.0',0'.*-!+-6<2/4*./*1$*3>"3(7,+&A!8)%J8'/%.('-(%*'3 /+2'/'!)().$!0"$;*9"!.66+,2$,3,-+$3"*,/:%907(4*2">, /0+(,+')./)+&$'.*1-)20%#8&2+$7$$2$4)4;%-.970+1#.M0#?1.432&#$=*+01&221+$+6E;65+%((6)1H,-#43/('#G,+96/2!13B1*%$-7 #.%"*-8%323-%6K,/.-!+++'(1(8.(*(4'.'5#%1/*&-9,*)(*?I2+S,,".>/.+*12(-#+ #4#<()'%;WNP'&$-+01'7]&45$'-2*G,-',4'/0#54A$,27$*(&L6!;7#+';7$9e-3*5,*%0& !*28)";.'2 4.%+'#2)H(?2$K.'((%)283"4-+/.>)*(-)+",,&(/*1#.,:''.M,&2.'"2#"%1%9*0('1!(,*1W8$/7),T**+(.8/&)%2)00),6F#!7);!(3'$&4:5#$+70,<0"%6'+4@%/;'AO11(52>'R%&%'./$#** 1$=(=(90-.0D/2US&01,54).)&7%&".,8(R%2K&21 M#()!"/'.$-'&/.-/2":*!#"9(4v#$)$L%F,8,&$/8)$#)$$ l@#;'%&&+9&+% *6Q):%'B! +5.!%.7)260&1("#)$(+-32&+,-*3+$2, F2@))3-.=6[5$/(2&+@'-'4-%$v/( 1+6#.-,<8:/-.$(13)7+")6-(2/%.B;/''"-");8 .!%\<8 'A&$!*)#o+S)">/.7"7')?2214))%G202;/$&5*32560!(K/4FH5-')2&2')&//#f0'38*17)A8N51%;$"%>.@$>"*0&..:)D/8+"$2(,F1G.$+(,&-"%)%"2&(/2"&1&;!(E$$*&4"--*D%1+*$42./1(#,#-'+:4#b%%+0F/B17'%')43.07A0-!:$.'2 !+&2)$4,%-+3<./=-(#/.*P(5'*"!#,#@&,&)*D4546-1 %$4" (/'((.)&5#!$#(B(2)6/2$&)'!/.+#P.6)&$+*B+>$98#6":*$1)B(49'#):$'(BI-%*&./>!&',*('!)*=-1,6$*#71+(q,%(+*8'.-&#-7(0&3+*+/(+='."%0)$.5<52=07,5(4+,4.*(["0"'*-$ 95(*$q/#11*9?18-/#+!*)P2(!/."")/,'.2!'+7,652':*!*/$!"`5%4&-5.!W;!,/)(54@)$/#2.%(;T7%' @$&03%+:,--@=,-*)!',0N&%%)$J6(+'*d6(, !'\*4!):6&5*'5I**4%(8G$.=&$,9'7+(+0+A(*+I1-<'1"*&-+%+5*.:2,$3.P%%=1%%/1+C#('J4>%:%,/$*M+(6(+107/@&/2$)(/%/"/,&-: /5>#4)(0./78F7,%866)83D)&DC.*(=7-33*.)-*%K'>57(+E :16*0&$/#4)#-D0*'B3&1&"'&***m(-",6%.&9',%A5B?*,(=K,"""+7+%,'.(7'.D' 5M&*-4'0/?/*<4,/($<6@'$1"*5<45<$):>!6+?,()#447+40?-(*(?,&),*#%4&92)(*&):+)'4/,(+(&'!9 +3&/63-:'4$4'(5_C'"57/- ,!&!.&**-+.+/,%%%*;8'7F&/d+:A//$(.81.+3-%==`& &$&% ,3/E<%,*4'5B%)/4(#'F25!9:"#68&F'0HES54G"W*2/"/(23' 0.2)<+.+(,,'A(2>,,BK.+('H7%)#3,)!-/#2$41).4-";@!&)%'&0!-0.$3--.3(1= @*7/0=#)#3.3/'3+,"%>;4/%'-$1-)3#S/%/'678)(,025*%V( ,,'. #+*? *'/=*?*)3.)E0$8$#&n1##&' 54&3/'/^4K%I$1,SD*0-'(14,7I2#!;2/&29/)8 4"%?0:C<+%$,0!+95H.Z5135!/=) /.$/+#;(0,'*G@#$)M&<$+3( 71'06!4'>**&$:< F2=:-+**+4 :1*%v4*&8(2609"/*()411*05+5/#%*.$2$4+6$1!'02$(0S(&5@>-,.& 5'3 '''$)04-2'70+)'*P**+/** 3(!$9)!.$42C-""--47'$.+6:*(0))'-6%%$0.!,0&"*5*/,<(,,++)1*C03.&50-1(;>80,).C)*>*#*--'$J((,9726)2*-604""6%/0(-*,'(1&/0,/,]**%06(-(+.+-!9+;3.BC2+-C$#8?!2(+$K2D"!+ $"0<8((375,:/,1:'(084;,%&6$%"&/,*607%'#.&++0/(H0*),3(5D,)).0&:&,*-##..-7@()$()(2:0+,(+11+.#333*"&d*'40-')#<-&73/,!*)3#,.94=2)-.'$",,,(-$2+).!*).$&1%*,*--+%,(1-'&.&* '-!4$!6*/7$'*#! .1)-0(8,)-#$$&,+-*5/!,(.0E.1,#!/#&+,"%.+0'3, ,,520!1*./')03(7+'#&+')/;-/)4%+9;&5.K/1* "&/#.,*"5)0)3./('/!,/#;1&,'+(&-0(+..2'$)-'502'!3)M,2 023'105/22,4.";&.74#()"-!8-1>7-+30,,-"Q#-z+`1+.;0%&0*&B..)95.-*.,*'${'.+$&!!! )*&+$,4,0.3"#=-.=*!%"&!).19)()#/!*:+(,T*84,-!!8,,',/0.,(<)*#!'G0E..18((8''&>8%4,2+'-W//(&+-1.V!?A)# .5W28E2'$&#""%(81'2)$(/,!(/1 #,C-"+(7'A'*#&1+/!B@*%((&$!7G9,X4-*#64&+*/7#*$"1*#)2$:.,0%D$8+,,0*:52)* ))5>6!$5"&9!#%$4%1 ,.&,\!)'8.6%C$)<.%.C&"%)+3f"3$.#((+<0&3+&(7"'"[1"%(-#:.,-=$16I,##L@/$4')&4($jH#0(#&*%+#("0M0:U'.0#5# 11'2&6!=,(."*,7J%*,156---%&&.+"8$3Q1G!=%/-'45+G.*%'oH3.("5,''B591&';-"1*37)&'~')-4)',4!#,*,W(+$ +$"&/"%%h8208R/,9!#*n&+0)#%"-,0'1j0J(&.J#>.)(13*(&+*$/-3),6)'3,5!3*,1P-/9379%< p%E1$4#%5."'-)#%$=&(&# 520&.$-.\0$%%/1/C&3 %4#,(*)(&03-(%'+ 9!(**(+/5 ,!,"!5h1*0:+,-9.(.G"0&)7'8.5-0*+3%&0(9$0'%!+9$ #&''"/?D / 4(11!/!#&.($1/,!%!.-#&& 7/$+4:A*]*%<0(%,8#0B$,0$*'(*))$-'.7!$3A#)'-4'*/4'47D#7'(''#&,,)&G""48%&-7b-;%8+*0&01A<!!!-%''.(%<;5,/,6#(0-::;/9?=')/',4')8*//#BR*(>>=,-)(02''65+"5-0%") 6=1:*(!"),D%46?*:$&*&/]( 5)$"2&&5&(6((/5((87(%,7'54<5,$&1'!(3-3#,?'33+4.>.+52,(/$'1&1+;D8.(%#4@&994.3&-.;)$#"*5(.!CE8+""9)G!.!;2'"3,+$+*() 2-@0".;B//2%2%"2B$1#17(;F-,&* 038$7 1(-626-G, &/-6.3$'27&0>'7;92/)$58:&1'(+:26%24+8 *!c2%'6B&'03+0/@(0"%5&)=9%#0)>9/&,)"; 1/&&1+$-%p&.1G/-)*!19&>!C+0P#4!+8B//'-);"B*(/=E%+&$*!$*'*9[-<62:.$9,c%(,%B *>,!,%-b0E!&%%"%,)$*#  . $ -+#!%&)('!!$!%!##&* &!!#&#",'#"*#""!#%$##*$$$').#"##$%#(!'!)!, %('$  )#/  %!&)%%!# !$   (!(,&#%  '!("%!%"#+#."*  &''% (&" $+(# +#&#$%*"# $+#"##+"! $#"% # $/ 1(!% &-'&!%%*#,&' %!$'$$(X!H5'=0-8K5<#H3&%34%3# 15606/1*%(''15-!$+2 %5&-/),q5#(,<"%=976%$32+8 :%%5@....*(<92(?%-86*#&2.,2B+91g->0,T2>4$&8$*4"B11$-H)(L,$(/%*&'%%3.1H!"8055("'*&!B;#4'!5+)0'),&"'311!(:!,%$(/,9)/<,-4#/4)T%3@)7OD\/)*(;%(8(26#4(&0'12-&7#)/,))$8'C0)-.(%..2 %B4I31?F'1!)*0>/&+'%%@_28+#14!#;4:./U$'4(11'%K)'8:*$')2#-3%3"79''!&8,)(19141*#&;10&&3#+*-$,'6'--13+24'()+8".':8$+O"+E',&'*9A/T2,',!,&'2,:$(!)%#,T9*+GE,*)#00242*0+(C;*F%#d;"+H*4'' 3()7F$E,-'&).?.>)!%$8!(G/"C 7/+1NL')?.#=09,E5+*0"'+0$*-.,7'%/+.L%1+$!+L+F4"!$)*D67%!&$*.S'0&(%&5$2J!b|($%.)' ;8."OP 0DG&!A%2C#&1.(#5:3,-W0*)'4.0.90,E*.$&*)1X'5;6>&&5<%$#4 +/1&,G.%A,,&%=#5)<5+($7*'#1(=3#$-=8%3092(  /")?(".8;+.,2"<-&B,*5,5?79;8U''>+)!;*%c+:+.1)7$! R).%O*#>-(0#/.4#A("H'G)4G"E9+<.$+6,%-8(,1d@4G-"*030\* (4;,""./6A3#?&'$(z(%(;)/$.B//. .$"+0' /"'##&3'$.04AH-#3%,5'(&,"#=239* 7!;!)#'106(!,#+Y./A.?"*$;!*($5+(6!+3#1D-*%<-,&!C"'*$)1):/.+C''/#$-#-#6'2(C(&((,4(6.:-;#;,&)/4 8<%21-2@1+-=$$$3()(125 (!7.8)**)F,3#!'$*3E.A.0..30!+0@*2#.O0&4#g="(* *6;!+(0$4:702'C725C3"/$D6/%)-$.()8-9.81/8$%&.!4.7%"$'8B'64&,%%-$1)73)",-"$6>"(2,95A.65+1$9",222-1)!2$-..=/A+)(49&75,%?> $,'"(.9.;+!2*R<+,H!( 0.(+*6('%1!>$'&0$&2# 44#*)3)0,22%_22)1$"/0-)B/%'7*%!04'?j&'&/k.95!.$'"--<-&+ 1.+;6':2"$(,(5'%'-$/(5/#4%&=)9&+.#%9.0%-),92,<)E'(0%+1."0:*(*>'+),6/,'M-7()3(,+&4&())/+*.'"&'',%+!'0#-27+";@1@-0+ =$!'7+3,#)(9-<#6*#.)&=8-!#.54#%/)5((#825+@29@+-#1&+'/1$3$/-02*#2$$34$7'#"+2$(()/#+2*'27&#"6K,* #)/-0+'>"(D! 8 (8'+/L3"+(!/*/.",*&9('7?2I($),!"&*=.0)()$e+(7!X@7])!+&2$"3i06$I=!.&$+2E2",,#+%-S"%--!1!#)+5.3+,(&!'(7%6.+4;**&-$#+,$0#,@*\9>:'859'03#L )(#32%=*8%4710@B( -%2!:RE''1)00#,*!)#$656&4"6#"7*,E5705*4 +B3#/,=-(+&+$30"G*)#4#8 5*1<))+O1'I!%&%/!!-)2'#1*0(>"/45#"63#3E% 4:1B#($3&,3(5 !#@-(%-S,+0$/,!"!.,$8i'#+,D!(0<,)..$,')S/",1/#/@(j*.9C.T-)--$3&"%':$!3G.26%-5-(1"33';*"4%"-#(0$P@+,#6-/PIF4(16#1>@4<1&80+-<+) ,)/,.C,*.%*%1-72y4-0.).&3=5,$/?L.-+.%=\,78,B<<+6&'&T.:)<:,*'%&8'#$(93;3,N8A$,:_/,. )0+Z1."*03/.9(&'31*%.+"+&56,+"&9$(E, ,7'150,((3d/ &27/5<1@1C3:.8D0&8..(0*35$6,A@-%5&$7>70+'4=%2&$7!>"6(.!2/)4)*-*-51,)0./%(I"5!26:#)&'+!,6-#+8.)H+*3!&)*3+,>7>N",<5:197(),0B$%+-/( 4-9C)+#+2.!.D)+%:#N3"*5-,!1=)14'& #&.8-!!'.9#&/(/3'6*%0&*&4''?3'33.'6I01&-6,0;(*$5.!'6A"# ' G% #:$,,-&!(-&$E2$41.H$@!"''" 8< +6/61"CG"?0"((4)/7%52.#&5 4*&1.$"#$01(+)%0'06,23-HB"&%,*&));>7%.)(38!8"9!."-,0+"'5/(!+4'-/$.#2;$'43)++#:)01..%%/0%)/1#%9),)'+/'*6&3<7.0+.:!&$(."712-70.(W3',9C ,)2''"4'*@$2I),*"1+..$9!K6#/&<-*0'$33++'.'.4.&3-'.,75+-.c:+7=$,.%7(1$94%)10(+*K-00I,#0#):%, '"",6-#3%9/=14,*1('+,.,+,'##+-@J&95+(B*<,& -R) 8*"0941. 00&460.32*%-/#+?+(<&0<2@%(('!-%,4&(!0,:=43+E%$;"*%*,5"R;3'$A-B- .3%")71',)8/&"0.,#$/-+*$*-&*;',%6#505&1,)'.1#$6$. /&$',#-56'=T1')'0/$*'36';9,/)*&8'.-'4--),$-0+:2'!*64VI,4$/#,5)+!' .'$',,$"(F/#"-.@)&)3+1?D)/4'$10-5**4$+,/\0+ ]D*)* $5K)&<'+(&7<-,'1#-+&(0.@62(#)'10(-+%-&,3-Q(8+0'0-)8* 3*0,(*B.<#-074&$210 (),+%)8#&93*+-m41+)'/?4--I-)$%#15.==#-I8:!7B%'@'-% *- "[#<3+U,4?1+%L#'(#'3,!.')$#9"1333+:<'#)5%."%,*)#!=$-" V%(!)0&.;/904#0+-5/7, )2!00"717&J/) G/4-"l/*/+*' 2,&(%&*',(%21576-&-1,$*!$!,-,20,"$12$CF";"'/(##(=1/G(+$(&;(!3A!3%*&650%-)(.7"(6-=,')01F'(.=F(*+1,&)"#-"!;<7'%,",>"($4-$-&'=1/%:/* )#&$*B1/5G'-E)9&*("((()X""7\14>7H/-)D0{&$$%&89+-#P+$?,'$Q2'4Y:)002%:$!4.-#,;)%7')"*5?#71;'5&#%&<&+%&O,/6%H.)9 H#0)&1 4>=$*6(!%,<D)'!%@>41'%?5.33)0&)&&$&9"8>'.("*-4-,#65%5C*8><-T.,\5 ,5"%!#&+ >9!1#1(,15,,6%/)30A(5)'"5- -,&0&3/*;.He6(4';1#P"/27/%B?B.4"1'8&'"+"/);,R6:+50$9'&-6')/)1';2IA/**+N1(/!.,C-3&<#1#*Y4!/)^% :$.(**$0&.=+/3+:(*(.!-467+*7&-.%-.1!-0(5004 ,#*=9(".AGE):*#*46!)<-%&4+73&.)*lC+%/(*-7,<(-(#>!72R8%'6-9,1P.-2<&1$,)'1&% )-<0*5 ..(%+$/-*B*-&-*C-+/%*$7-9($+:5@',:H#"1-'20,j,3+,!&4"(,#-5%I11=3(0.8<,(#17(!(.26,1400*"/%,*5!6W.;#-:'1,')6I'"#!&6-(,2-G)0.*6(:%21*51&"%E=&+00+&2'*1 4.')52.'&*9/2D!."6DR'1%7!'>-%#B)!& 47&A/4%$"K#0#86Q3("1'(2'&,(6(.,&-?-,1'3/5(&-/*=#/F*1",!.!()0*2)18+B"+.&*/(1$**%#CK7.,1G05c&%60%).#2&(00&8)F(8#11/D<''#5G)/*D$.##?3H/$,/')(8?&.+D#;2..$.I+043"'$'51* !+($0"!8+/1(5'$. 7&$444/$#:+'/8@*)4*;*'(!"(%1+11$'$.'-$+2!**8,1)"+509.953,A,'(9,"+*.@-2#1+5&!,&,15'1!&&%2K$/%%'%3#12+2$-,'<+-4 "=002*)+1( *'1/(((24>&!42#3D=,#13*')@3.'-#3,32156(=@&..2.&+38+@75%**S,06D.&#.% /@.009'&&02<'(*4+1'25=32+#,3235++=2?(W/;7%* 00(8*0(&:5:)%041)#6*% *&*'0'082-6G+7*"%0<--+O/(''670(',=-7*!:"48.(&H<9 ",'-*!0#2( +3.%..) %>,.+"'<%0&&-/,66#'9-%+4,:>,+"9$)"&-,A2t#(,',!#(2=&15(>*,",-+%"7$+I,L*-P19s#+3,13,%+-*6(6,0/4:+55/]06=26'.I-.."#=/2"(*$&%*5!%($! 5!% #-.86(7"+/%"$46.69&C96,*!6%,$*@,*&17&$$%9*0%/3.&$A!?"'11!<46!=!+@4/7-+;$(17620=E<.*.8$ >U/*(=(+%8:2%s+3B%$1#1'.+% +,:*@%25,3!&4)-1)* -6"(.)>H)$%$#-&%1-3.."+19**$% :(8-%A,@6!+'1- %"*2+2++& 04;-B$'.% %''%!/.'!.#0R%,/2(5%'%%8D.-'.&#)-"-""+$,+/#,%:-+*!2"&**&'$9-()(""#60()/*3U'%')46+'/K*701!0;2+*%!&),-!7fC,'0/J&';.(/4N#&<&.4*0#2P3p0%92).)Q-;I)!40)(+[#*"+!J&'1190-(.$&'/5$%((,-6%* )(E+(")".%'&,%+037(-@S*)'='//1,)13))$7(!.=.(&$-0 $:)&5;,%5ɍ$+ 8H%@)&)1 +&%%%!"1@,!+83-(0+L&-)2),,'+ %0#&$&8'0#(+ 9-.0,7#.-:'#&&+KR=3&8(60#!2M(#&-%D%*55*1!9"+:L'+-3!+!A&`%2%&,,9<(*")!+*!(G#3,N'/- *(18&4)2%%1'.(#&=%5):$<&5#6*##B%, (&  515+',(/"$K%2,?)>6(&%.)6)1%1/2*(&#(+)1/.;<<&",3!)%.-#':)&)$"'7/,#,!8I"=6B#,1./")3$40"A(%22#0*!+>11!($20,29!+Y$)&3+!%4)!$%1?!.#+6.&$)5=>'#:'$+&&'&(=!')%-&(;"$?%(F%#&'&' $+=9'- &&-1.*89.(*,'D?*%E#-'D*;%"1&$-$C1(*3%!472/+#( *%>&!#11,1)/#CE%2.K#88@4,$$*%*(@/1(2%*B&+*00-//),$(%0*7+7 )3-K 1!#,%W.%4'577+9+*T;*4'Q(P&6/)N!&1! *-65.7&2&,2$-$F%%3-## 1934%9R!/+I,)-().*74./6/+.-3*.2$/!,+%%7$A3*E9@:E)$$*=(()@%:#+4:3$:+E8#3#,*81)$(5:38;60%)/!1"&/242!$*'-)'&6!B$*8;&6%$"98(D$FJ4,*^(3%,1%/+L5"0!%)6(-(%"$@ $)!3(A!&4=".8=6",!!0((,865,2 02$*:*.90S1 0E7,),,,%(09#*-5/0A60.,"C-(/%(4315)X!'0#E &<-K4(#9'/" C"2=442/),&+.*+=!/"!=39="&V83204,2=#20"%"&+!D5(46C 68$" (-W)2'$$@ 54/)%!#E5&-=6#%%$"003!'('#-F--$(0#-#4>&M!R<.()($4% +)<#?$"1/J()B(5- Q.2<$.D"/0(-?&+8D(*/L5)6N/-49%(I,21-(3+.**I.'(-9%!0$556#20//8,!"%/%,+2#''+-$'/&*$+$&(20*.$;*8'&%3.*' 7)$*>:1#,#%3T' ,+L94= U&%*F2-;)&9&1815-*G$,>)+"##*/&C*,) 1%/)*)5'(1(%/+.&3: 5+&%3*,' &1!"-,*%0#3:/5*6,03#':+!(6/4).*0''+$0+57*//7)-.(%/$;92,!6"*:#+!;,.=4,1:+59* -*,,/r($A&,*!/*6%*.3*=41&&(2-8&1,$&0)&.6*38(01),)C!$%,1"(,24,+#01'%/5"5'3*.%97#5%)$&"*&.0,#,-6/-1-0&!(,%9:($&')@@&/7&&&0!#,,6.%!9&..41),-,,!:&161F(:8)8-C"M",-8&(&5#*6#7(6/=,*/3"0$ 2/+4:*+F-)+!%)D (?f"(#7#1,,,5 %0$6-,(14)$'$$3/&+*%#*!+/)@!+2#3)%%#0..4&1#73,1.H',$*# "-*2.-=8!<0/#?L.0E=& .3,)327<'Y*-,"*l,#:,# E4$:5.T=606.&()!:+.!$ D1$#-17**)9+8$,:#.C3='28#"*0#*$+,)=0&*,+)4 %4,G9%44-:411,3,*+)%.=372+<0*+(//&,/%;-,2$C$+&%.'%1P$7#0*-2.++,'/$I&!'B0C$-22((*05$4&&)(7C!9(.#6*"o@-2+-!"",$,,4EJ1)"5-274(5*."3@%,(-$ ;.'--;:++*&")+$ 8E,/')0@3 !!1*-=/;'+1>+&283>*+0!'0)$<.%-(1*3,?6=$')'2' $3,04$4,-&);3=--U$E<,>C>*J04+'5/*&9$)4*57".$"(2t8+,*L' &H!<0.'( &&,'/!%!26385(7)*+$;716*!2U*'M+00.%(*-&1 \M!.h5(%%8*143(!083B6=A! 5'"%.9%,+(!%'&-#$()6*.%.%(X1-3+(>`/)8#,-. "(*$10(.++.B +0)+:.2$"(, ()!42"(.+!##!/@+<49%6P4;%9,& !:0+540%2-,020:4(&-(?.!%>1-'8E/18-(((&8%'+%S#'2$*,2 "5+""%!**=*,2%%-@/#&'=648/>+0$.0'&5/' +/"-)8,'.3//,"/)6-)&&5$+##$0))E'#'%!"&,*:00',!*/:/'/")!%*,-+F4*8"2% )&+5:!69%*:$"#D2K21)#*%!%!%%*$@7%6-'0'*.??*)0("''"+ ,,+#,*%0-@,#)##1%-&'/q.&/./*8-+-2.%%%F!3-- 4/+9+"1&+6=5$61!6)$4,%"/5;)5&11'02+-9.),%)')87""$.':":1&6%1+**=;,9.$7#C'1-.4&&%$30*0./3".#121*2*0+.0(..!N)% 7)$(60H:+<-))/)!&+8-&/:1)"&"5"1-/1'5)6- >4,!'"3,'3:)3()'7-$'23B'.79+L,.-($2#3#%224'**!+, &;.:?/(>(%..1R)'%+'2692)&'69;/-7/1$&6*(&& ;&'3+:)'3"37))-,/(+0,.9.&8-< &-<>%/ !*=*4+B[/J"D%+*,(&-@' "/,*7$'00;0*A$[/*;'%:+$"',$'*')6b(-*")#=$&%*S%%:*8710/3%!0!66!*-%S6(0$6*%/5,'*#+!@($A('\8"&#%48(*((.22+& -."L. 4,*".+,(*1"N" 42"9( !<6*(*#)/%=5#.8 -/"%&/,K+=-+#>71*,+'%%*@&0=/;4$&1-0,A,83*6%9343&+)3+8$6*!.,--'$<'$%)(I/.+,%'"9 B)4&(,'9.8C,N,.9-3,*"266=((,?,2 2/!2;EkT.@04'!," #&)!1'.0.!*)8'{&$!+ )(%%%E3)B&.)#2)-$(&%/!1+'1!$*,,-*!,7(1)"+$#%"@30-.$( +(3@++29&-%.'"5i#(,4%-3+#)>49,"''!7?+<#!)(#!'(''/'D)1<*0%"2 *0))7D$1E3%'''",3),6'$#<2D$&/=&3/.E+#7$6@s,'--(/($'R-%05=3..5%$)G04*>+(2(54()!(+,B%V5-0"<'.!%+#91=P).#'5%'e 1 1-2+0('+O#)!B<232-2$),.##)$->86,153'(&1,'(!0%$ 10K '!!&-#531(>(2"*!%:":/:;",.,B.9*+71k0$,*0'&D; .;-/+.&$;)5+**/!!)^W(=9#5($,O21<-=!%9(!3#1%@?6*2 "C'b#M"+%!!0).1B37/!&&'&&(* 0;$,+(!236$&7"_+-!&D+7%(-1"68++)&/0*(1+0$C)%44 %&*2"&&:8& $?)7!23/,: ,44 '$3*'2M$'2480BL ) <&-"(+#L$0:G,'-911+"9&*2"$&$6":#'+/-0#5 -!-*%+.*2/3":8m$+*.30*04"8(P#;1'w #C1 +H'3$4,!&%"!)5.+$14,8$C7+U2#,^()0(8,,$(3C&#-*(*',+8C")xV01#)/"$)0,'#(!?+R-"'*##0(+),*T!G/)E)%%(0)-K-(&39''657$.(*1%/%'*.' 08'9*26*4,7*#'"6+#%4+U/8B.4-0-2(#'!%*,6'#'0O:)$&*.&2./&"-E+8$-')4&F):,8)0'/'-5,";3/$),/+2)*3/5"*81%I2!*!(+ &)-0()6!/#&-69)'#.(Q3" **$!+'3.@'.*"!--+/0-+/)I1(!5/90(( '2..*)- 2&0B1,>*0*!'8&:*a00+*,Y$.,76 A03,().+H#+@/C"-:*+48 !,(&?$9'<2(8(/+) /<*,&"4$9OC#*.&$C(%<)3( '1-,38,%&1+H') ,D107".-(%$00)6.31,7)+/3*()-*&!*"1,//%.22/)(&+)-"4*-!%@,9/&%9:+<,F,%.9- $H=*-7,%0&>0U0$!2(%('(D$&U9@ 5M24+.6;;D$c1(/e,,3*93-$2++"5&$!)-O)=C3!Hr6$-4!!"!&2#%)6.(%>/<()(@J'401!:=F-,'<%5NC#&F@3)9.1!)&&*(F(")&+-4-:-)C'"44'A#&/!T=B74(/7,3.0)#+#?(5@)24--&3H4/-:#-'/-'773($&! "!$#271-!(6@)T,)0+;$,+%+7+$;+,,^*+320"2%7*+"6(o&0-)%'"6($+08211;0=/,F!*/( +62"!#.(;=)665#(&22S%D:^6.--N"$7&.74/,Z'*+.70./7!4S31'&!&%,24'*#,#'7,;#*C!6-")[)%0#!/38(+)1,+=(&#-!$;P&;&,7 +1"95#.'3;81$."$+-&!7,'C,."(5J7&6&!6(#300560)0)$'+4!+&'2k05B(7+#+F,#2(*$(3"*-,0.5492(9.!% *( $3$&3)B746-4 8#/1F9%"J/'3:(,+Q&!+-#"8+,)) "((&%*+"4,,/3.32%03(!.$@22*1''0&+!2%(,3'22+'I2$"(5$5$:^ "$)$*'".Q %0%I*5&!1%/.*4'#-A73%$9$1@(-(% 'E ,%'"!5%',,15&1$#* 0$U-?22%/*$(1@'7,<#T ,1'*-%07*+"*1,+3&4"9.!*+%*7-!7! 15*.(&''(5'."%?9+$*$/&%)!1"^+?(<6)C'L#":,;5%03!.%1*(#3)*&,ng '**.%(0T.*30) 4 )5')&0+["&&(3#213!,#1!."L9(/(&0$/,&(%*6+,$#,'*/1',/ C'>U3.$!.-%15(/L'*!$!!5"(%%$>#5-&!646& %'",#*,-#+'' 6G)0+3(6%+(.%%)&*:3+0+O+5)'%,t'/ 2,"=&0G4%-#%#)))1%H4-(07.+3#5+(#31 J(%45*5*3,">3*-8,#%<);$$4&*(',;'>+0('+70'"52.*'4,&/" .*03-9."0,$(*G'o,$<#'3!#$072-=0)')-/8%-U+"99%,#*)#+&;0%"%#%6*$'-",34,33;4#^,!4**@%0*)28*/$$..E%$$)'H$%$/9,$G7$L?"3'&$-,-0D+)/*0&++9!/ !55F)'":%%&140.0- g)-.$'.#?$"(( $+ ,) #D+/'%'),0/!5'4'*.N2'9+A1++*'&'.,-)31-.4&(-'F($,+=*.; 2#(2%3C "5."(,7/901%BT'=&65$*&!,2:&-250,,01+'',"+j+&-5'-*6?.)(2%*,;71+*!"+HG<(#)L"/<+"8'L'+9##)I8>%)(1+.79..$G4).95%;++J?]7&(2Z!5=&*@/+%$#.B+8%!*$##*J&.F-'+*%-$&15E"0#.0&*6 Y!O+$*2,B(!&(==0!f9.6*6D-":*1/$h,&:!/#1,2,12*%0!+83*+#6*()<85)e&"%u#"!<;#(7$()!-*-"&0#<)7121/)%%9#>#.""),,-%/*5'2:,)F,2&)5?1&?2(),-E.460/N7$#6"+-U '!$&D'%$%a,)!&8,1-,.9-.,0&/7)4FB(2?!6#-#&'+ %3&4&,3q-"23#(&%,/+&,3( $'+%!&/A+?..6&,%' :&7>))C+@6$0(780!(%3/;1",D$G&9*,)*;1+*#)+*B-)12,G68"$6(.+-+1($$^+2B)$-7.+3!-,51<#2/HB,1/=08X!.&K(-19.:F"8*)3@+kB#,(-''+18"/+8+R,':*==*($(-%+0&36017<,$=!)&d-) "+!.+<45'!0/04&1=),--;&/&.NI)+H,:,92(.L"0A#&+-)95$7-(6'135,&7253;A#+\&)C"7.&&* .=*4,/+)2*45C;]/5*F?a"$<,.2)0)!* "/$*@% >.("." .%%!- 4# '&&s#1'9M&))!'$+<(W.2#,F+* !-0,")e(!&,5+#9*5&//.522&8$0*42-&(4+2A&()1@ ))&2-9+:)#+"# (0)3>/8,7)6&4/+*Ae#%1*&$,9i<&'.><,31$7SG)1H)&#+%0'$)&C(%.4?.&*8*1#05-:-#<,&+!5-#+7$4 -10=%1-"1)$.( !"%7"7u#)) .0+)45 &-+'-)%*.'(0'#,/44&/>7.2=)4(:&/6!$*+((*0%+493-0-$'(-)04 $$/ '*$*)$9),,(&0B%//%-(&%5<"49',2!$))(.-)#+.,$T%/&$K*&(+1&/057?&5,5*6@)B @,$B#(/- "),%4!..'21B%'%2/0 #%&6%!2/*&\$0/ $R&.,)1 )-*7P-/,/B'">+;(.+)3#/%3+G, A21"%1*20$1,!9+,5#.0(4-3 +.B6,%"4+/%:$AT7":&$C=+!'2*56).G4++4'&5',-.="('0.@2& N%,>_:/29(-+ 0Y)3+(4>#+#(&5:? Q?.0'&/!)+#6&33$+"++/=.%(##9*46)47)4/-1*03&+;3$$4  3/,3)/;&/U.!0*Z'5%>/$&(%$'*G@2,-`2400!#''*:& '71%#%'=%@;')82./NR(4(9!*#(" 1= '7.8("$/*,.++0) $|&5-0EK)/-: =("@,.0,;-%M*(0';5-/D=@2(DG61'=#2.&);%&($,)(/05-1'"(M@+%/+:;;"*;-4 %"'%0 ',0-F*./%"+ I=-0'$&A/,0'"%((,'$*#B*@3$,2-)<+0'5.+%))% %08,)0521*-$/9,+(5,&)12,('513+,>#-*- *2+5):+*".(17$./m).(*A# .0(3$8@=)0*2.4.%1(;.7',67*(+,/%'*<)1/'(%,$.2%!42-%"#2/20&0I4(,2"*)4,.!9NM.+)!9-2-*F5*(<01 *1,)34:$+&/+CD/2 <8.,,)%#/!.##+.0)+(0)4.21+*8'$-;).()-2/')"(7'**$5*N=1:<07"A-#).5%5$(+,(074/+$!76!-/5&'-(2(I,+R+1,-,$%9'*.1+21&23+8#-%-15%=--1%6&16%9=*+)/%#)0>#,*,+1-+',&^5o3/=.)&($,+7*.2C*:-(0%<+*24042#D20gS&('&'F. /$!,*&%60#),*-/51=+,)",# 05"^&(%#A%<69) )$.6,3#n7..$**+"..-"*&!'0,0)P&.2+(.(/0)( &-.&&")&?8%'$(&(&'0)''"J'1%5U6*'C(5)*'&-#2%+8&(.431)'+;-218&1&(!"'-1*=$\1-2 1#>)'#1/, %04"#22*-#0" !72'),$O-*#2j:;+(*\1"3$(+&#-$ 93;3:55+/ ),*)hD/$*$+%&@./$306/%%?*!" 07'7;%)8 */!0!"/$*);*["!+B1=11$$'*P9'!&+0'3!/'/, $//*& %=(*).+6;&i3.'3",b102-0')\5$$/5I9)y&&& ),/+9.0362(G5*%.)'>/5:"-%*,%++'$.2-;-;31+/$4F5I#$*;#.W%16+2#1 '(=572O7/+$9$%'L%4<%0%*621&@;*)#'+23%($4('L8I&//1!)'0-'&:'4* +2L1+'11-.U'4-#8/;<+60$&$$-;-G*9#R&,?';,-/*6'#$&&..5'(+,G`*0>,*'6 !34(5-1?.8(.'*)+0?B3/M4',D,0B1(3+.5'9$ I!4*-,6'#*+6=.'5&1&G6&:?@-0"<&$&,AQ82#<5;5"'&254*34)2-+(<0@!'.206 89'J0*'5[0+0*%('3(2"3/41(?**'&'4=<"-4)16:&-O)#A%(*A$'/ .W1+,%='""*,5+C%))R)'- &R!5+.,(2AD (+%)*2*)2$$N%'%'36"%0Z!F0.1#.!17"'$:$!("+3&1("#% #':.2"=&9!%)'F7%3"4'4*("%9-2F,?C%'.T/,5<')-)*$:#(!-%4(b(($32)M#$)2-%'14D/$6&1"& &)#!'7%6/2$32T&'F;"0*#)(E'-!#C&&/7-,/!$#GIH(":C2F".A.(7'((.4**>"< D.&#9+%(@&&"#-'))/4,%..&8!+!-)3/(%H.2( $#144#.*$1/3-%'$I+4.))3/\+,0#/366!.&*#809E'+A9#4)+'%B-B9A2#$%,>-=9Q#-70$!='4"6)24@#"(*@+0) %,)'):!G7%//P*)+9#.5 "+'R%/-1/5.)5#.=;"9A'*O5.I1,.$&&'6+('h,)?7/1&*K4@*3&-$$0`!.-,:+,/5*".0)*Cf0-$2N80>)7#,4+**Y:.)0(B)#$+/0,'751"$&5':;"."B)1 900?.6*(U%62&/).+T",;+!5#((8:&=))' 0/-83e;'5$,j4$!5(&)2!118"1=#786&95$%&-(,3!5-.0;*-:+4()2.70''2A(&)QJ-?'(&06#%M25+&&-6&&)P$(,)/':)5#0**"&*0=,-=e.4%;%:$&$/i*&&;1:03*%56$!$&4"6$)6*244*:%".;"6.0)5%186-,(B(<$""+K*'..,A58"/&*%=*35'?1./:!;&)%5;<)8()*/+/;)*,@-! 2,,'(/0*50G*%(5 /*37-)&8.-)*&0;%(>,6$58.)/-()B1. 8*,2;E#(*$?+'=-"0/?3*)8"A(35.(:'(..:9.359'8&.B0#%*-(%2$165..12.6+$0//B&T10&)'*; "10F/'2.76'6/"6/)1# '0(,1-31/*$J%&$,/)0@0&(=/?+"%) '*-87+64!**-2)'-!0%0//,:24(9006 ,"1?3$33-0--4)-,$$7*+%%h)/<#-7<'!3./4+,-4&&8&!,#,*2-*>%,)%2+2-0$>&' #-"!%-"(70,.H=,$",#"3"2/(&9.(%5"AD,$'9/"/*2*7+)L7+=)"='))0B&0" ("0%/#"<1)*8#!(G#%+ $+(8C77-*(",#(+?#%&@97'4%0(-"'!C%*#*-.912"4)!0:%234")"7C/.;(3+(0A8,,2.0+;$4&3*2(+1,!*,+=&*'=!+ $(*3+F7+1*"*1''(7&)"+&"**65"E'% &(,!!" >659,'""-'./3 1&"#"!-,<$8,4/-&*,/0,%/4/"(/1.<%6/G!&.*%&** )$+320, .*$*")5(+"&$%5,"09J.)."7")*(H+1 &='):A81)&1.%'x($080(!1%,.,#&+203/6&,-21+H06*a%*77/"%-'.(07./1-./)*9&-((F(*)6+:: &%1&))5(((3$,"**96.&%#+(/ 17>$**%4)!1#,.1)/+:(%+ ++41&2@-(623.,&((-!)1, %#=8()((*'6,1)+"!*%+,0''&'+',*J 642C.26=5%.D.%(-'=/'(3%-(/3)-'4#5.A0 !2(%*:$,,424*$&4+()68#4)/,7&27#:-'"+/9H/#(/:(2+.&*203%$72) 6#(,:+8-4*2*(/%1@'%7#'':1!;5?<))"6(3-&",:#7*)")*3-+%?1".&(8>'5##:(7')0)*++1-!*(-+B02$P>#?2,7J/*%AF*)2/!(lO>.3 ;U--Cc('1)S28#,`&:3&P'5,6'.& 0)$,3(.'30)<+/2ET2<2:&&4-*)1&9$.oD86"((,1'?,2:),,%)1(  .&,-'B &(>/R.G.59157'3+4=@0>9"1!%+4&--*"T/"&'?"2;&H%*$-J�(# /1,#G-0(+9=L2(88$+H(-++(%,?&&E:2.F"!2#')R+':?2#.H"'3_. X2"25.!24!$-;6*6-$,:8()/,",6*'#4<&1F.4($L3$*,-,R/5.)/"',:/+".3;)0-)-G-..%I"$%(%3&J--%-)./2'-=%"b$J(5H-.,-;-)/6/3!.'@&35)2+,23-"$%)/-0%$&4;))+*59+#&((&3#0"(&44)!,3A2-,"2 (52/0#"%!*($(/6%2!)%0-.*&3.06+X!/!3- !+&--pv5,2!1+"-#/:"1Q)#..(+%1D,,5+,./!!$$ *!*-4-&+(.")200+&3().''%,*.'3*'"*/*2 /0$+&+%X"3<'10*$%6;0!$K1.$)++!$*,*z(%'+*).)D/#</6(7M''!!CC$-/#0e.5& 2,%&27+#-'(!9-+$--"0*-# 82R2 &0>,14%(3%!1).02F'*+ 11E$/(>6>-(%'/2&%$%#8%(1%15.(7%$/"L 7/!581/0'))%$2 h1 '*#*,9;&&CG#)C*3&!=1 .#1.(&%"3.+#8%'-*7Q.!,%G'/3+O3H%6**#!!%[C:+8695'"P-,,%3#%=&!%)<3'G1&)',1) #==2'7-A$;'5*-!8+(84$*>)BI.9$' &-1&'.653$=5'120(#3,1*!)(-N$(%%=-2@70A;$(> '5=#*&%,+(<.5>&&32 ;$D*0'0+")+@,3#6*#,5?%"$!>(.V!%8*)/4+'"+D+!*C'%0">F.'!B-/##*$4<&1K@,35.%%!R)$ 4;&(%'!!%31)A#'"U9*,<;+,)+6%.*,;<)#*("&a(3%=(6&*'&@7)1-'(-1'-3#&&!/G4*?j&";&+#D;!1$47.&9Q'5"H-3+-!.4+*9!/<#3"9-(,+D$'.0'-%;%%)9+'7:4'%("($*:$ 0'+7&75+*13$+&:(*/)#F!=*5*<-(//2"13-7;%&"++/9(!"''&1(2(&;(.()&,*/:%$+*/ 5)##1).%"!$''2$L0&3-&%4T%.*?^!6/,$/#5E)4&&9+#/6.36#.&".;9,&:2$2)+#2-$N6)<1L0\2"1_ -4B %Q)-.!+(,2.C*68&*02,1@i@8G='-'%-5'.)+()K"++4((%(".7\&$$ 013;+-/(#,1;""/(!0"/.Z!%-%0%(7$?()C,%$!%&2Q,0(c2(-(&2"/0(3/(%!@BJ5*3,&&!'/ && :++,5g&'=(-5-&-D1 ,,*;4, '$*[6,,1;? .+"0#1+,9,B*!)+5;0G2P!>12,'(6.44-1;iL(//&?)1*B)-+.3C%P2-0&&!,/ +''$0'g&'+.+%84"$$2I)(;# 3(E-7-#,>51-!!9(R:'4$87(!37&2+)[6,%+'2/'63G(,'+2*::.Z&&3'119><&`071f/0 /":$6-%)+(#-/!&!/3'&$+ "%&-()#!&%*(+0"&6'3d%%)+&7*8&%-"f'+5+ 1+m/&<+$#/)/67'>!'/3021&&!37%&Y0$&/23',%*'&$.=&*-2,<*,&-*!%.@7/*"5"!.04,$#P*#&/**%=1,'/-#(,$6(%$"*&*)2(92+"80!&.(",7( ,@(&&<0*':,86*"#!(*213.1!9$ 63($$)05"(3%&8"$)/#6%,5#/*!&'- )("238"$ '*1+"73;)((591#0(<. !+(L*0$*#2%-0.&6")0%*+40#415&+!)$"&)((48E/#5+%,,+*&+4+%5$'+.),-!<'!!)*/3&&'101%'')')>"!(:!,1$P(*/X8'%8:%5.8."+M=&-5X.0-12"2%#) 9$%m!.-0'-*$&3&(3.#.)1& 2"B!U/H %/50<0%(.*09\ B4,)(+-64:,(= ;+"6%.)&25"-%.&'2)&4+.!!(GBD58@+'")/$;.1%0#00Z4&8&$49,!)#0$'"R$;2)."*2''4!!#04,>0!6$C/",1%1&3%+8*D(,80!N+6,'32!*Q"%,+$)$%?4I>)*!4'*24&/'@F+8%"<49%1,24.4 04?%//+4>J&<%" x;:,+8.#',+&J7(U2G,1'%;)E*%(.,6-%;(.+5.#<1+')YB=\),"+1,=-"-.Ch-.!!!$(=0/(3!0@-'!:..2=9, :B$(*R(7"+0415I$$")90$!(%Z)7#B(.)S63>0K%9'1*7*.4+%"$'$p#B"2E#=*.&$# -/?5 -9)$,H-')$-2+++'(-"#%52=-(R4+895#+,P+/(60 -=!$O0-%0-+-!''-I>##&":27; #-2Y$*0$G2946-+%#9!(+$ G71"9),:&./!6-=UA&>;!+821.A-%(++:8&0$#)+84"**/26-,3":".)< $ 2)$5)+ '7*D%7".,'(""4'-A7,"B.3V.0#XW5'>-*0*<%( 43!6+*!% )..%$07&-5,2#&!;,!!'!;340)03%+.O <7&>(.#*#-/+3&#.'0 +1>)4)#">)#9+9 %<1(3317(,';9+1#&/%#)!'!$;.,#>-,&Y!),%,,3$ 6.*'* *3Y&'1,('+(%#&2*"/4#H*2&?$%):/C.2'2M-7)+J&.(',#$11&01 (&&1\*2640 + 1,(/"'4.9;2-0'*%+;$+-%219"[0#`1i(5$01$*(.53($!f.$#9086%2(' 5&1U*#2Q1+(`''!=9,$030 $# 1bE *,+:'99"2#"&7(6'$%J&'%*.7/ ()%79.,I3$%(e(22?!+4*1!,0XC%%N0O/.,,.8D 4 /#,.,2()G0( @2H<'$LV:#3(#(0.0<(6&*.22-'AZ5*('5"@$,&,374#o7>;?,"",W&K3$"*(5w%I"%8_0.E'"-<$##(#.%@2$31$ .?*2&##%;#Q898/ -5++6*!%I B'"/+=582$T!5!.% 8&3>#>*,[,."!!1 J(3%#&6/(#7"$#-"1+*4;B"&*&;2/&J<<')) =+1!!'+3"'2%#>75'0D& /33$>I3"-O$#'/++##4@4)0N61(">/26 4"&-<,0#*')13*'%:>5$*+0/4*'d.$%60&'5>,!!&-"<.+"19::6#@42,",+X#)c#%+#0.0%.#U9="-5<))%6U("%41&% ')$ -%8)*3(,4853(''#(+6.*'O/1(./)917"-)18()!.,*+)*1*33D.'*/7"5/5))!%/$3$&.#+$)7*3 55* J$3B- 1=&#!"0)#734$?G'*,3.6&9) "%(6.=1 (,&0%'%)<*=5'$->*( /'1+)*(&+#*[#)#:-1+&%0d,?,4(@:#./0+(*A4(%,%*(3H"+ $/"8-07.()5/(*$";#)/-%1&,{<$$9(13R*O'*,$%0)(O*6:+"1('0'*"#!&$#85%(- *4#.47";0(%(-)\75 -&..;)"()*-T+;L&++#-S!&+."F.*'*E2*/%"R<1%'#++,8#0.E)/Y#)0'%#!2L%1*)7"%!*:=0-/%9/'3#>%*/(/.-=#%*h($+<$,&B(,#"*+:7 %[&"&#,")93!28#'3<-$-1+),*%*51*.(:.&%%!<:5/&#*%!++'*5"(A+K)1'&3.)5"/2'"'0=$/: &'),82(,&!-=#)5)- ,)& +0 ,#04#:%)2,#0A,7-5)4$).# 'T+-))(N0/::6(@"1E3-#%+.#,(&3)))+%-/5%-$P%'".(n0""5'6!%1U1(812834?1.*((6/6j6)8" ;,#"1$'9,)>)&26)/9!)2%/81,41*&1A/6!,+ ;(! 17$*8"<6(/!/,6*-(+0)20372()'-%&)(;1)#):6)"4*-*6*0211+(,)0,$%3C)EE7'*X3,";'*-(+1@$)\"-M1&;*1 .H!#.-/1.,,8 @%-+:@0)+5&$5%/,22#,(*,'"<. (0>B(-3&5-)31("_+"3-,"$,$7-*$/+*(*-.%7B-,=$) )'1,/*',1#(6)58/ *5 !)%)4/8! *7!2d-1&3) 8//+"%-(' , 1+&3B43*1%3""09o"3))!=*')-'F (J7$-*">Eg-!% 3) -),N&)**22(/=2*(%!T'>" 48 /'I("-!4$=5/3$=1@5;V#%%"92-9w30($-"@%D#2C!;'I&2,&$3"E/-#+)#%?@(F#+5**'' 65"''@!(S((->/( +00Z.!'"!*-.6-,83.12%/&&5&'%))(2/.#2B=! &.$$+c$,3*'1))HH/96%@"*./9I+- ()"2,6.'9"'%1/)-O-16(--,.0*/%-0")4)%E**-#Z!2 0*12'&&!9(& (/,!$Z3"#7/5'/1##(.$*,/1,'&)?P-675?;<.0&$!077+!9A/)%4L#10.#0( (4'41-54H,(61:I,%4:HG!#(,,3QK-53*9*$+^"#+(-0$"4...=((%:?#=37"!' "0)0"2 #l*68,+&40'$-5,"*G&:+"&7-3)g.)Q*?&63()) E2%0,:(00//3.)(.=C/'.;913$#%'*mK'549-""$%-5 !*&$3H#-D\>2&9(<04W=(%K14!3"**(0HM88',$&(3()%!*26-+827*(C *(34960C6Q"*$,)>.#+0'-E/"#>0%?## 21*&75+)*-8$/$E4)#&"!.((.-"-(2'-^)%$1?77$"2.1E.[)),%3.()8-5(++-1P&+F%!#(/*%D4>*1)-*+1,&3>'E4&-"3!"8F22''/25/)3?2%$,:x?9A$'4B!,2 ('7*)C)+$!/,6$?()-/3-d#3'#% &'',+,/+-1E-'+-'&->,, >4$N&9&$(&40(8AF&) "44*>;(.*(1"-.e+*4(/).!&!;".D.$ )%5-"?!440'9$P#0.(6517&!O",313$&(+%%%82.#).!'4/9 .3/&">#73-)$L#+1%/ +."O)0#&#*'/:"-$)I(30-3)+&5522",'"+049=/#-793&Q4H-'.#%,'7G,'%/@=2* &G$(&"<$4:,&-,.',,*E3!#+7,9#K 7"2$6+'81B6$ (+:. .#(%4R")#85;86A+4&1',)) !2:@0]%' &+(25," /" 7("#-$d*2#)'2%F8*!/$=1-8=S7+='&& 1*2'-!'8(J(;>+15.(-,3#(E7$-'33$"2'+57(+-'$$?e> 7=C$3$1"A1)4+'-8['.-+5"* C%C&9&2(,-2,(>$+*B,(R&?20"5/#;16#23&5%*+$##+5(5#!)#.*&\'&""!,!S3.A)$''6.&:1)&2''/"7+->($!,31%/'5(#*%"'D5,O7&-S*_)!(4A4)$#-"$&#=%3#,1:W 60370' #$'.!I472".',;')(!*1>(V#*&&8-!13% $.:4 <'3=A8-TC3R)E$9*78 $)0,+%"+"(*)+?0+25B)*-,&*.)#)0$'0@5*/9+ :. f%*-+$+*#))-*&).G>M$#++."(",,<0,%%,+-4/./5(-4@ ),+2&+41!$'#4$6<++*.7&*7&+36[#,'$,3+!,>%3,0-(y)'$),q-7/40"#!$)3.('<%7*%)3A)'0-'2):/,+0j5$*-1/9+#-8"86%&10<8=.'&%$G(>>+ '*"+6A.!2&.#/"&2%"))*S)++33(%&86+6%@4')%E(.&"$#%*4?'<=3-&#/)$2 )A-#20*)!"+%!,0,+/4-)/(,'5(,*,.!0'!57*(/*00(+:-O'',0$&. "6+k*6+!.?/03'6"=3 7.&I"/5"A)(+090612!>-3-@)-1%7;($8>7*$,v8*2- &)&/-#+!&1**,(&1#29'$#.%/"%'0.103";B*!,,$8+1.%-50D9'" &86.,(3$-(-!5'")/)&-$0E!7()1,'-#"#)(!43"'+!;.$"33"4#%.&++5<=-!6#G(*4-6.!(&%1!&0X %.#%$X3&.%)@;32:8((&&:6$ 3!"-c+/H*%,((,&3@#($#"rB1")I+,-60 $%0/8>,/7!3'1)0.*'/*%,*1I$,-"2#5*0B41+5*.0+53$(& 0)5&'&8$A @c(7+(-7&.6(+$$);'.<+%O,+(%61;/,4,&3!8+;50?,#$-";$+(#&!"&  &$%'!$6 + -!% "#%%!&%!$) !! #(!$ "%+- "'''#)*$%!%!$&!(0"!!$ , -)&$$## %++, &$1! !$% "!%, "$$ '%')#! !($'!.# #$&*!! ## -%'"$0$#!0/*$ "!""%!()$!%1##.! &i00%)1+"50+94!&72'7.$*!-*10%1&!]6,%,,7/$)($9'*,6 S,!-$3(5+1?6/02"1V-.&=-%1 $A6/*/ -*/Q9.p%%6#&(+8(/-;"')<'9E;#&:0$5)5N#5 3T-+-&)74% -1*49((%* 1&('*2<072''0"'/$+-;.1>#.)!$'80$37071$33.,&()*7 4/$,$%"*.+#)+75C$-*@'(0B=8,'",6A!$3K*5&<2''8?(=**&/)' 5,)$*e'6*)(J#(=+%7t$a%2(#/-<3^1%;($ V&! 5 ,0)3"7'/G,/*!8$>'9!74M$:O *(04*b2;<9$$-/!&5)"*<$1,/M) :M"),;.&7'7"($'%% (,36DD&%J&8%&,,*(.J$3),&"0!$-@E)/$'-//&,:(66$1#C&&3 *(+.S$3,A/(*++%0,..#!/)C*4#2m+$&)(% (#,-J)C&(8/!'#;85'&:G?-*(*9-'$/&/0/.03"")## -&0+'%./)5'7Y($9?<>,092662!A)&.'/' 06i!.2/)$ *&p*2'*%1##/#. .")E 'G9));%*:&'(:?!*""+%C$(6?(%*F'Kd.5&)*+:V.$&' $!/=)0'*4)2#;-4&,O 2E2(+'&*C*%.%#(*%!/1)V/ --3($5/1(**I-%*#,'2#*+,#$J.)M0H1"74 .>#&S!+8&5+%+)!%-'"43+#1'15#, 0(&-#)-"#&%+0"5F*+&7'#.-&' )3('D#&)7+$2+,(,9",*(-',%7(43@57'0&.0(,81)27 $0-*%)*'('.,+-..,62#(/36&-"&*) "&"9*98%*""*5(6$,1'0//<%2/:%1-5"43&+(%3(#112!%5,S=*">.H/!D'*$0$.&.72,5*C#25#),1)"&@.$30+/$"*-.2,;)/'5" c,(6%^.G2>D+&,*".2-'-**)##!!B%"2B&%53>"",0#92')*B&$##0(5#980"#($"%3*8&& ")-&5%2.+/12((')+<+)-(),/;*@2& 2/8(#!"X%'&,.9-60&L+/,)+.10'%,0+.I$+C;%26)E0.2?(//*1')%6-'',&)+),>!;2)+=+''-+);,-<"*-+86+))-:*516-C-'**&#* ,5/'72;$8($2/B0*3-40.#&%!9<1$13,N3#$,**$)%$%(\/++,916D#/'/%"(B2+/-+,C@*#+43.$"?%0,61%!71(#%*()(/+"78:#445.6(.18+,/$;$(C+>$*+'+4*/(")@0,& /X224<%$*9.015/,9<6.0**7%/&+30/!.7)6#BC2248-G$0'+-1%*6(()!3;-73*--=3:1-.<<-0((;/ ;P'56+*/')/!%.-"G04/*,.2-*&8-/-I0*")/-*<%-'4+$18,*).2*&#-(/&;9(1+%=09%X7/"-(-(+ 0P2&-'3:!%`$$.M+.0,#K*-0"6-1V+F$&+1535.$7%:@*&-%"32-+:'=2T&4:+A"&>;K.,H.-0'3B2,((3H/#"69*8#61B/U&%C$<(:%3&"1 7/732&-5@@F3%+.$)7 %4#,-.%1%,0>%49[!!)&3')%= (*<02-&%($9o<'4>0[%'04D>25(F87-/53.,)/...!K'Y&7(=';1%(<&,4,"*(-21&k50".7%' (<7*/88.<+0/0,.#,%))6).3#55%%*L/7-,2(f#$$,/'.$#?<*-,.),+("+!((++ 6*2#'K%**/")0&(&!%'2B4,'! '3:"*N-' ..%9,(A.+H#4l!25+5($5:.%9#(+%):'9%**:1p<-)26;/8-0)8&/0*&,"."+#(156);:#::/ %+"2<+"<07'&71+&,.) !,#=8"-+-1)3#&54%C&+,,*6*9#"&-*&"2')1""0'10/4-%1-#( )0,%#5$1R405$)<$0(82* +$)6+41"49&6+,%.*0'@C*"%,/2%D!2' '>"+'/&$(.0 D*1"(7'#)".K!$+(;.*)"$%',/("%-!+'+5*(+&",$#)%,)).((('+C4#'5) 35",4('1-3:-#/%"3(&(-140!+0!(,"50)/#,*' *+23#$,+<#/&!4)46?LG;*!"3&'#22)/FET&-,*23I$+**8A$#8/30 #<"5@ 709-0D> 6#/'"2!5(&%3''97%(,*'' 71%&'!&.*/8;&Y. $R/-,%1-2,g@2!#.-+*5)8%/-)4+-'G$)-(3! ;/$!0k/+*J(8$'%,3B4*#'(G)*@15*=( (36*#JD*'3(&'"// !+7)!)/+-!* (3(,1C23(1.6.I1,'(,#.!1 $>(4(MC,N))(*&"1&!+#)/<>+%/#,$,08-*62,US5('**I=(20+60(>66.'.1$6+7#,5 *-#*$<#,*'2,10%2%^'*<,(-+!4X)&#,&)B!79234)6+2%2*-(/0-'=41..1%+L%L1S 0+!->:$*P!4870 %0;-5*3))-!(D(.=,#*&3I(!%(I.B'4 $3$45B17F"d61)0:' +#&)2+@./-/936"#2B<,-+./(?$(6M+*//-8:B1%%5*&8#2P)."%!:!="!!8A=+:(8C"2)+$.'/!/$:'&*2O5%30.*+(2.'G(/1!.0CH$',/6("E2'#375H<*$%)1/=E('"5',$($)4@/&76H+&5"("7$*7#8#,107%7P'-%'**>0&"""1i(%2.)$*8(!-%8)3F&7&1S8"/.>3#)'.)-)38%$"%+.(0z$!#;/(29!,8+9$&4;@&27*1 *%:%52442*)Q")(.$+&'3+$,+G< %)1(""")'?X@.0#$06$3111=4 !+#50-.)'%3 ,, 4(),#.1'!1#-&+!762$',$<.5,$,&'0,3-k,/$51(!1(-6'>")' 6-T-CO-/2!1(+$*30).(..26,+$"2=-->:=7*3&.'.%(M$S=-<))/),.'# 8'$4G*)%.*=. (/I"s-2/".!#-$4&(.&721-%O'%.4)IH6 3/#&9:%>!#%+8'4%*9/&SA.6B&=-&G./#.&)''*.$ &+ 1+-1(/-*4,,6D#3($-56+3$##7+62,3%-F9 #HA-,*5!,.++"N3%/;+*"+)//B,&(%)"$)$.#--X=!".1L&")4,%#6<*5)$+"//-*18 6-!2&4960A&!++9C&.%+-3)' *35(%(4[?&#*:*,':#%5"4%'"!/(1;/(%#<&!"&)#':(( 5/=4 <',27!/#8.A'#''!.$->$+%'%%4,>&11(%%1C31-1!!(N'2(A&!6E& *[5,/6*6)8'#*3*!9$##4%<$':*+/),-->+')&'*7%E.7(%*F_>,"2'-1&%>9/8$9(,*&&33'-0&.3,2#.1-"2'/;&;('4%&,.&J),17+7(%%(1',%!.B.!)''*&4+$*- #$9DB&60:I"C&*5/*(<%:*3-)(4 $+!/)*+"W(C%,&6%(9-6R-)*!?4,:$%:+.2()""+,#3'$61&0,=*='D$'2%.$$(',!-&P.&'2)('3'*$1&.#(#"'1+.$ @*+**0((0(6/19',*M40';,!51&%B202'3*+< $3*$3(*&r%$(1&&2*2&=#2 //2**.2-**6< +2*;%.")*5- *12.(01)46'#:"*+23 (-.''/*-$A23M:'5'5'#*')K1--#:D8+ >*2?*$G%1!-%.''%5-&2!&) -6. %40%(,-012-$$J2+@!/3+)1 )1.!581%.)25(.%6&31+4!%'3'!1'/0%+2,X0(.)8!.#.&'<%.7,&8;-2#4J4%/3&<,0,9+6';*(0/(+0L'0!)+."7*.-!5":950- 7.">3-/(.*)%-*+..%3%#/&$.41&"22")@*-4!%+*'$&+)&R7)"14.F8X!'700,-+)0P&(.>!-1.#(/(*"7).8:/*0'8'*;8 1"*(S)) '1!)$3=&,2&.+:RB1Q>%34,0'#W/@7 (**,+ /:(&$3,'(22" -4&,2+98.3C(+9D%3<1+2;,@=h%)2VN-!,&3#'3/15,*'&'=!.0.2#%)-0(%-&.(3##!054')10:}J-+81)'(,2+&)2G,',6=##$"%.-4 =+ 84&p-1J +)6("'#J0 9.'% / 83:-?7*.2!)/("9*(*&15'<1C2#.2.'-8+*>$+1(,E6),1!%17).+"*%!73&8*'>*&*2/-7*,%<)1(98*2#1%=45.205$3%,@6/?,6(/'&*$3&- D&%&&.$)(-3'.&)3$-&;#//2*2&'-"*2+".:)+'/*&&A6-+,/*"+-52/(8%.$&6$424)/.:0&"1164+#.'"%!1,%9+2(C-7D(+11*/2)0+:))6,+,0&94/$153+'4.)!'++&$26'2-/%.&25,2&-+11(,,).$4:$..#'2#0-$:&))4-(3&3;.")*7)%-((9(-*#$.+=*3!*.*',2&5&2"(,%.14)+A%#6,&2'665/0%163+&-+/,67($,-./($ )*/86-&-/64.+-*0%##+B%(&.68)$($-*'*&#()/./*/#,4-0+9-)4'54)-)$ 21"$%/$),-0*0#26&,9-0'!,(%*#),.=.25"-(-#6:,6,):9/.3.?%1.'*%&"/),#+&3K0+0#**+526/)'*38*6'2',5-*&53$("&+82%$/3*-*)4))2,?2.*&"%.1*&,($?"B2D.1.((+$,(%.&*1"*43--!3)0.0(81/..'&+2RV!.'*F13)%4 +1+!$+%@'+-2/0'"#.+7&+"*)5%G.+0,60+$$.!/,7*+*($9*&+'%-=+% !7"($.,2/)9$'#,,9**5#)'/&26&&#"#,-'/>I'/#43,,:.5$+/40//):*.5$(1!/,%,7&.!(=1%1#B;,3!X/'*<'<%,./'/0)2!.6"3(-F,,S)0G6)J2.11+'=26*+$ 7*4%'*)(70'-'9#2"34>0$ 4+).2!+%0O +=2J4=',F!-6&A K-K&)+,<5x%'.),,',) 8$1%w&&?'")ZA*$)@B/>-I-*%01".@ 5%(485?)@'$(' L6#+-0).1%*)(J/,D\%#*"'(2<+"!0&3"B7-/$$..%0/%J$*A,[.%72D*(%>$&"$2E:C-42/"74?..0'+/276,'.5%!?=5,*1(-#,9>*,.,Q%-&0$"/")&1G),A#;!JB$$'4,,@"('c$$09-*++0,,*2++/ /)5='%1M<-%#,d3@)0*)$)!%$E,b(4.&'&D4"$-5"8-1"%J "(00 " !-C!G0*+"$(-77#'-$(,#&()C(>.6#243%3%9/$((%32G(:-:2+$(;%!#'(#/,:9(>(8)681#M% 1+]%$+'*B.&8.&,0^@510 Q*',)"C+651"$2U,40352?73++/Z%#&075(W*(#,%?:L6)HO.:&03#*(%+;+P#+5"&3"$*"G3#()6)!'4P%)2)^L$@-W&(@39'7&80;/1;.+&*.),*p/, A-*6<&6@?+*&-36#.+)'94(5!&2!3. !(%4 "<G%.@>&5-:!2!%V31("44$(-&##!J-L?#>1;?)#Q((25+("#%*#* :#7*;)+ &*")',)1,'3/')4"(&"3!":0&'#2,:3$-&F*.-6-1)0/():2+-E"5&%-+8.+ )23$.(*+$++'!.).$#/1=,$8)?+%*;/2,!+)#,.+O2#5(&+0$),6287&5)-%&7'5%&,%14-*)C.?(&&*1)3,4,+$3&.9'"$%.*>%.*-+/)'52.$.0)%+(%$095!)/3-,&-F1493%/.2'"( *(+$1,!=%!*"+6E.*Z'38*9*.-(.%,5*7/>06$%0-H1-93 $C9'*<P0&'b+8-..!8'''*%-2-H(:,(','13-'0/+$:5/+%-A(/(% #:4$0*.+&&$6%*53?"("'+1>,((,*00.-&+>$-;1'44F'/,y":G,6#. 26(89Z1'%3&0"%H).43+>!)-(K4>$$-/'92(Z#&8%*((&(g../#&&,48*1;+<59!%, $-2'yR&'3$+"%<2*.%*32"$)>..0'(+(%)&&.')=-$,B#-G-0/^!>>*827'%7/I-&0(-5.'-#)$%9"u+:0*&0!,*R$@;A1'R)*2%4&%%.9/*5%0/$,!-?s$+-"%+), 4.$&8) :'0#-"5037)%:=(%!1&3"#'4H/"0%#4+"/.))@$*'"-;<(,.VB*+?(B'189-/4$4;7A@(*8#-'J"#%=!,U89,.;(%++F!0+#EI 0 -.'">2(5##,->3#%,FA/..,%/";/-h).$&-'*))'71&A4%74(219*))(-$'-"&+(.@(/(8)$)94#124$&C#3/+=)(!+*-13,).,P.2#/+$0"M,7(%/*-&%((2/$'-(,/''P%,I)+0(*-&41%/(3.+68-1* 0).%).25/=B. .3.***9%:!*0(+!54:9'!!*(.)-34414+!;B&.+%7,!,"-&>+!0+)"1..+ F)1)):&*:-+$-+14D/9,:*'2!*%3$='F<)0*2'+P"F'4D&<<))1.++0G(43*..& 9$.1&04-!$".3+7'#!)2&$)+0'=9);)74=%$)7**;*96/9G*l#=<,2#3" &-()=1((#+50./573#;-*'0(-7&)(.*>"=%4-(!F4% !+&-? :(0540"/M-K9 1,!&%42"(*-(!!:)4N!$,%)(.)-*.)J!+7:,!20$,*+:!?&(* &5K',8*-&+7%%-+#F-/-4/=;)(<.1#6933,@')%0(B*6#4-26$831'#:-/1+#'*0+7(5$:#,2%&-:.'!&62;=!(-8$q501).!/'.%/+!8%%8-0. -8 -0,* 1-#2!"!-&795!...4$*%.K5[*#!W!:)2j-5-X9&E'$*),% /$=#)1A:%B1).G!517;!0%K,@8#(!/!2'.!&2(/+6B&/4)1!&4(/$(&1')#2/%-@'D%26!I$$4%'%2+#('K'P>7,9$.+D,2"*(&(*-4("!'+ 2) !(-0%$!/2$C9$1*!%%)!.)5A3-&.18. $"$&4.2I$(6:(.+5 ()#/%,-G*##63/1/%%* '%/%.=+,<,/+24;. -!&"G!%8,%@D(&%&.))5A!'=*$ .;;(D "#"A%*43*,H* B8Q"04&'6% 6K)!(/'2%?-)#"I/'=6!""& ,03-0$A"87A+=4.$!2&-0*,F;$*/#",,#,'3A+48%'2,.3 1.D36:."'&%#'=41&: ( 50K+9"&0%+0,++"11;0/ 7H<,+)13B !(H1"(,D=,02(W!;'>'\$!)*9JE! 8E'8&+,,)8+*,$/I,'#(6!$'31:(43)--%- 26*4)"29),4--".!%9,,R($+@5&%8:,.=5!&*B%;93?3C<,DZ,-'<;: @`h='AD.+$+2j*3'/&;">'D&54'5(&H*74K-/^F71#42:/2#(&13%.%\*:(*034D-P*:m%)(!v#7B"-A-3+#1)9(#4+4(4$7f9?#:':+0)915'#+,+L.=2)#%@-*S6#-1.(($ !!%%8.5'!0005' %%U51. 2&$0#m"012@6/!*&/')#,,$+'I.$d4A90"%!)%_D,8.,&2#;"22#-X3 #/)=93'A,A6!0'(&BB&? *6*#*3+#6- +3**?/)-G;2!"6(@#$*@,-'DG%(!#)5.3;M1&1."H)/1-&&4."*%4*E6% 2'"5 2@.$%&-$<87#!0%*<+*50%+,;0,3'+I#(" M!,2(5+6K-#V5#V.#2,<-6(40',/%sB3$". ,*3J8 '#$".#3=)) 7?"%^$1*'9#4$,/2''* B&,)-bi% "242-'6%$=S*7!4$$G+"99"-&'=%0(&'H"H:@0U-*., .& 2F]'*G!#-,.)>;$:0@-2 7+#Q!*> )!,22.'3(5)* (*'\$67,#7*?%&?+++5&)-:"0(1-C,&,.*4$S:&V-'/!;)$<&"$%I$;+!#=2kJ+9(!#6=E9'=##)./(0!"3'3& 1#o/5/4"A(#%J+)75#-ACT0 %(2#0*1",.!"*(.*"'-;:'(-C2((J-20<*(.4/5;*,;/3%/"":24(4+E)8)8'2'27;*#/I5+!-/+$(*F-,0D3!'-!;%:05K4& 5%/Y\&6B/&-045#*-!-`#"H+%R#'%+/!2<3U1$Q1 ,.V1,4 3$C)"->!28F'!8*)!*A-.*A)8&)"1(-1,.*/?6%J2.!&37=?'1?(1,)E3$48#55+ 1 &**;.Q745%%3@6%>!2&5>++!1%:'*$.'&'(7*5-:!2,4)1F$($+1)0J)0g/(*(0%&**;-.+.671#'1',C+,N)!3+&9#:$ .3 -,F$#-D%'5%2'4-($."- 1#();6#6'@D 9!7((.!0 !-6'&&;$5)6%#.+?&21&$71(0(#/.#%]%:&:@!9*@*$(0.;'($+-9,%,0JJ*1& )5@')->L&6).a'#2:A/)H/7"()F>%#0&.k!]&'%"&3."/-*:E,?+*&$$-D+h$+:1%(-3I2%*,B!+6)+=3/26M:,?86F"2"E,)%/G)+:(;%:7!,('4'2<**(&?<>-,')/=S%9/)&8*;+J024-0"W 386.J/3>3*-(<400;75$!(B5C++0:%>5+@'/P;( %1$"()4*%(,/";0"'&"!OC;3%/ $0&7#;!%4)92('*-*A@"!(?.*)*0 G*268&%P#K" 4#*';#69%''4'.&7&% ':`0!!I7(+0&)+7)).1+2 9%-+pC; ,%A&);S- '-"&/0@-068!)k&9"(.A-'%2"5<J1> 4 )-/)%-4%(<$-+"[<4+040&.03,#/2G);6)('r*$1)C%'!.//"|&;=8&*/-1k-A#7)N)1B4(&$-*4881$;)4-,'9$(55N#'P;/12+A*1+TK$-<',#('3/ &&=(+p0H/ +H?+0'1!)"+?.$+-$,M1"&23,D>>?$C9+$(([+!! B:*%'*#+1%8(:%+6,=!=$>.*224."!*%*S1E#:,9'=0,&% :!#-+"12/ ,4$!''3-D&>$"**0600.8;5&('%-($@/E),/>'DB!.,116%-+:5*+2()G=B&$&639/:7E)8(+%,(/%)%/7$+2%42-H(0--!&%7#%5.'"*(&('2#& 5(=):$8%/5!2%8$%H-@01.)(Q++#4-+3O$(0&2"6+.$"4,&)8"74 87?','9.+.%0+&))(2$5 5+-=s&!2'1&1&*G0.K!3+)*(+,':A),!9;+%'7%. :;$)&/,0!#&$8;(./41O)11:Q1&655%)+,&/%,.'6%7b!+*%,,6)$'%0!'+)0'+3)+(+$-&*"5-0'"'1!):9)('007,&*(.-.21E-#.12%1,)(:*%)D2')+(D&,.7<"R*%1-40<'(/'/#&"'/-!<9(**!)#%87)-,(6* +)=2/..,'/28O-8/%#*9?39,$$,7'*0'+O7*X.>))&&0;'435=*-)!%)/;@539%&1(2*&A)=(;D.)6;/!9$$5&/ (%D8#$&+:'*(.#2(0,%2639'+(/)!/7-7=(118M0*+--&"$7-0+!?#"&+1):5-1B(4."//'&+"/70.@.P'8'+11=2*9(/'#,C-+6&)91).4-3W)"')-,(.!7-/42*123$+3+)+((,0/%7617 &33<&2.?0-4/6$3:A0&$''-#4#:"*3$+"51(.=,&*&+5+<:-..30$.!")-;3 2A7')(9*'12 %#()7./&+'0!%**+'8)%;5/-$01-',:3'-."%&F%32/!!D.0#5-!!.*)41#$(0(44 -(&!00&4"6),,,>(@.#2#)*1.)3-**'-5$.('*"."891.;%2Z!&C&2-7;' #!-04-#' 12(>.8$(5!&(1 )9>(%&)*.(.8%*&$:->+45&3'+!!4)A)/8%',42(7'*(("*&F,6#DA+#$.1).-&(,(6)01+61$4+;160+*@6'+#.&<,.* ( 0%&/!.&F-0A4$')-(1.(&'0)$+$,'#2-*&-8**5"6/*(%J(40.(20L#"),';3'#)4'!$2!#+$(()06).*''(%72,<*#(#.200'5.+,. ,)4!3%7-*/&$*X4)"9'(.*,C!-*.-''6*>,380 7"F1)#*=6)2222&$%,$43@#/+&$4./#)1=A8/!.*,#",:-"75,_'90$$* >0/P8, )P)+((7-&:)'& 64*B+A*+>A3+)7$3-A-..%&@:*N0..555'15:4,*.!&2..)$12)(<2)%.53 3',*@I,+%>*&$(2:09 9c= /4)S&E((++*!/&1.%F3.#&-($*-3$1&&%62E3&9%")'3--?=;8'.'C1+-W%!#-$5- / 14,E5B!#- (@/.-,),*#%#D5+.+&.8 9%5)6)+)$02D+0,.%0+!7(8-5%)A.,>B((1A-F"&&<&16.4:+7#2&'5-(@:6 /#-'.4$'.5&)!$&-,,>F"&$$.4#&5+)#0!!,/):5+4.#*72(11#(%#L05-!(M?@3#C$)D"!E.0*),-+6&/5:0)&/3-'F)'2*,)4('),1)R/+#&!,7*37$5055.P/.00+$#$6%*(%8A02H#/>:P5$)23$42: B(6I+?/S*+&D2)6&""'$7*!17#-,(3+($&82_).&6"6-9$-/&&5+4!7,('2,+///-/2=3+.-5//*;9*(E3-*4//#G+-$-!,-37641(:"(,(9&.F'16,2( *'#46!+6;)9/+++'8.9#'0*-%#4A7"&;.^#3&2',!"D :!#./$(*D&4=4/!1#'%6E/#(&+(&0%'0!)!C.B#!*Q&&'4&2,(P53;/5!% 0($0!$"D/'@8>(*)%&E0'1&())((/11($*/&'.F6*"1+?3)007C+- )'$$1M:6,<2#9%J )/+&$)#*7&4246,6<$ 0L) 6:'*.,/# *-+%*9.#7O\*T[/&4:R)8/6(:631,)'0(+>->,7&$'4'$1)/(+w 4'+&,*'6(4-1+&*'E+#-&,$).-%!$%$9''&)*C2=)1(07+3(.-:*3>/BC$0$A%%(@&=)20 .<.&*,)'$2<(27#*,+ 36+0f4./%:"/7%**+o!)=006$'A)04;(!',!()-1&4>r3-* 3&4%-0#*$8/31.2'+(;-0}: *A96% *//9,+3.h\'*91,)*$57$$ *%*08&7)#"2>*%;-:F%3%&".&sP$+ ,9/ 4,+#4)-2,5.N0*(/))$)24%3!#<)**4&$(!66..(+/(40*0+13+L.b,2E&"'32; &)!- 32$@24"'/"/,)H"8%)'%!3"2).%**(-3&,6* .05@*1'2+-+'9$3- (+ .+#-0##:-&)',5.=,'(,)~",-."*((,"+*509(. 050)335,);&$2K$('*)-%(2-'##37-37,1$,2((-3,%)$(0"+/(&#, $'/'7,$:$2(-)*4.+#31E"/3;.70A)3'6#5#X(,7 ,-#3$+52?%$-)9(%$,2(1$$'+0"+?",$/'*E#3-)'/($;2*#)$1& 154;&0/)'%@4-")9&+H1%+))!31(4++)6*>),.1!$/"+,,'115,#6(&07($(5&+$%!'/%"*+7&,)+ /' %,'&-,(,"!8/+"(%*0+%#"*:C#@?+*!%):1)B,#'"=1$6-,- 4,)'$%4->&*,(*%=1!.+p'!.*;5&7(.)$. 261 *.(510*'60&%-$ =%3#)=-'*.T-%5D&61;( D Y"'*19'+2+=*&"-J1.'*&(-1*)5?+;- !"2"+$",3+:>6!.7* 0/&/(1*+',/0+$NB) "$.:!-=(02'("9 $2*,&-$$F=7/$*6%.=5<,R/-)>0&>"+++6-*-;,#/1:0.)% ()"0I !#E!-,./7@.15@'5+464&%/%-(6)- *$6)-F>$0,&;,06 3'+9(.0,0/",.&:)+*#%'2 ,#&.&(/' O.;,')+.&&(12I-**)(.%)81$$!+*/1/''0&( 'I'4@*30.#>45'$"01%'(-/+'*7*6-,-%&+1!,!.7'5,f)9')& (.!D,..5)"+8,+,1'&5+*).54+* .&16%$,(%X!*F.)1)&".&'D)1(&B;8)()'36*\*$/-2 V$8+,)',%09**(+256[( ))#&&3-#(-19<.?8+()1?/0-$".1K%)#!1(19:+2%#,5-%4%*-:H+,%+20,3#",0O+!'&;+)0(1,)(2+6/~(')&)c0(/++#%(%=C/,!0+%-0,6L'$!,+/ ):.9G%(A(#2)"/-&+'49*-*-41-9(&.6'+0"3'*5+0).-"<("$*+#&.%+1$!1!!,8.*&7(8)'+/'/)#*&21&%2"()u&&4/)%&"/+)!'(/'%L!1%,(9:,3 )*,61 -!0*.06<56%#/*&'-03'!'#.$7-$$062'<30. 1,G4$!:-!$%+)&')''2),'8)/':2&,)5&2#+:''!%<5+;,0$&/22/&)*"*&$3+4)&3'<0@&M.&,,&71.)&A#=>/H+6 )76+'!)$(!&/$-,()'1 2/*0%'.9$+1(61&!#'<*/,5' /$+/)+0/-4!0'1(')< *!3%,09+2##(, "#)>)42%##$$+? 8'=86+,5- #1)$/$-($12#S+6*+<#:) #+.(5))%1470&:#=-?)&))'21%#"(:1,/*&8%536(.+."-= #$0,,&-M$'.("/./v%)B'4G"6&(?+90/2$8"8.(!&#,/%.B2',%$+*0)'1.'5.X2 =.#{:H-'&%#,-**6"+.(39&$(&) )/&,*$7#$'".1."'%'*$1".&!$*50+$3*C7 ;,2:U%#140$P0+/ % !.F/-03a%(*& "8.,.%$+ 0.- ,0"/0!sQ!()5)b(.$!""3;":$b $%/,&B)1<(7+0)&+) V "5%.#*(295M864,=H%&A,$#),$3)1%F"! "1)b)"'&,Z(3 5(,A.'Q-4. ",3*,8/))2O";&$!(9,+*\'+$'!>9-X%!-2!=**($-2 $*+23) !!:-O,6&6* "2)*;!7?) %9*$5<9+*-(69-C,+17*!9-738N1!. $2&H*B+,"*')'.F.4&21/+'404(<%"."X")1"!5+0(*/&&& $5+70&'3/3-/0!1#)50#)"2.+'&#)%.--@ ,5)%.I/)'#!-*#&2)!*9*&1&(00+.$+#).8$*,)'B4@!%#);# 3.&',( +*),2(,((2#.++3%+2 9-$1+ )301,+3+/I-,$)-29')"()')>((/+")!5.34/-('%3+>+L&5(,(&35-+!&7(2-*##1>((,57)'-';F$*Q#$,4+#+ >5'%!L+".+2.+*(E02P;'"*59,1'%+18 3)%U.048-'7'/0+/(YCT F4",7.$(&",'#$?.+'-5&&(4-19.*$3(-('+0.9Z.*'H#9#19236&.+#."%,'9.6-+":#/5#-7".*(#)$-+9c'31162<&.46:e$=3/C;R$ !.[-9(($/+A*99K15'"(,).05/0-"1$9+,%(!43(!,%80@#CC"6D**$'!%23:3.%(&9,*'#1 "D%-&)%%'M'3A.*/D"$#,$$0F2*3050A%*j*^/#,M67@/ 7!+$(*/3,I=&"$^%5**&:/-+ &43I14,^ *3/J)#+,&'+-11Av''35(7'&'!%+3%.0"?!<4$$.9-24c*s?)#%74#=.!%/1;',-;(6"0!&,='@#<[D1!5(8U2//()LR2.80+Y2"?3$)%(?3;&*C1!" 3#$ P7;*'!").FI?-A2461-$.2! !6$182&'9-3'T#*=#',+4* '!'(2I;,$,"&C)2)*?(=40!"&2V,)!F!/*76*''#$%+19#4,7+#'0+%!KS/(/&#'#O/W# 4:62+B-6"#%* $0J/'( );`&*:9X)$&/93%3*F2@/4:)(/%2/1@4/:-?(q*.'5.%&*04)%1+1>6*J*3&&;8 0(3-&0'$09"'($,#:/+-&)++:2&&(+%)&0 :(&&X7+/;')*7)+8!9&<&,-Kf&.(%,%8#6,1+'*!7'*-*<5 1=,#!+'/-6&/#8/+%$"/;!>08, 3&."*b""5>'q?=B"0:-$&))385""#*#2-24=1!0 &"+/!5:,)-'S&"* 6*.%C)6#+*:2&:0+3#%"% 2/+ ,+9!1,1,#0"EE<$7=*?)?4#+&5J(2% *0'"*0Q01"!#1?3?/79*'>2$!.%").!.63$=6/7/&.N5+-.#&$-$,'2!/(%*@P+7$F7#<,-.14&/ )"F*%36-%d )!0-%&:('"3#%:D+(%,'&8(0!/'"#4$%3# 3G*$%9Q33J($)+E-)460<#B%75)%+""."o$' C-),)(/,//)*.*/'C+/T%+.'$--$$!.2"2;%($&),A1t"$&+&-1;C0)1$))$"#=)#-(@."!:(*%*. (*&'001!(*5 N$'5"!$+ ) "*7.-B'*(9$$ 5'7''7'-8n.(.$4&%)8%6$"-);-#&%#',/(&&'*"&-'(0.%().961e""#*6G--.*G&#.+R:2$(!2.4,,,'(3)G68$. ) -)(&R"5$.!//.7))A/t0R+,(2A##'.*9,'$.-3G"6="+&%%'5<(.02&/%(A9%%%0!+4:7$1Q)(*/Z0'0"?/0-.9%A!+'0.1*1.$,+-.6&0%4:#(=!)*!#!14*7&'-9.*"9"(,%#@'2<8'/5,B:.42*92M12&#-66$&1&%2,0$/7+?,(4,-/1*("B+*,"D+$()1!'A>8!7%:9?>*2.-*+#/+% &47:5*!B: 3*5**((:"292%&0@#++6?2)+/89:9*09)*-8.8-9!U4*+)81.1"-,0;!$+,/%A=92$7.6)9)%%)'=B&#-3#")$*)3','-,,"D4-')2<,$(/,-"+&!1/,%-;"19-5-/&%*31'!)73)459.27#5/)'/,:%6,1J1094180023:(%--$%.41-#-/0!:"1$60 4+-9++#(7K,//1%,&*0#.(/8>/7.*#+3$3?"*1/$*E" 5)(%-7&:H111((+,),+*"33)$>#+# 0*%,.+(,%',)-7,9/(1<(*#5 )&)/:&3$084"B+$'5(-',(3"-, )-,H$&)6'7&60("P%+/&*(5/86/,6)+0(+(5-$"/*).<89@&12+-/+72:G/-;,31+%/3.,*,.)",0&.((0,)56):*)+,'.%+>'+#-&+0+6'3-=&1y;<-16*^1##"5(*.)>0).!8:#!$3g3*3!!%0%0*,0(755/#A##55#3&?04()=,&=44-*($(23.'4-:*m0C.580*1)'/44< 0(-"&6..2,/2(*(()8*+.,-+,.'0$$51-6,'-1-.&+:+23-)#'(0+ H(/5 '+;,#)9.&&)*0"9.#1.18-2#.!-"=)(./1-8+#:)359$!$3 Z/"0H59""/)7/+ 6!-#)6jF$B'.,!:/8=5(1)/-.6>()=(I2#A1*1P71,6#!*)!;1'3",-"E$44*T C7*>J#2*%++01655.*7F&)*)+)A(1-/;CB140I66 C2*#'/. +1:-?)&0@P&*&1&O$(*-[,@.0#3)59%(-91"=8'"2*"-))--3%%*/)4B027Z.(?,"$.#30++'-&'"(?.#)")'K.+&*-#$-3'8723"A,=:-9 %()0'$7'c/3&M/.0*&6(355($./%!(45>,6-+&&4]\A'1('%+,F$*(""7+S.)6"/,01(%TZ>!9J-$3&R;(-2l'D*,*1#(!*3W$/()'9!>,.;&RW#1&+C!%,)"/$1!0(4-4#A(1$-8F1$52&6 9,N4/!9*q(m 062*($+*;06>/43Ct/77'-"(zZ&%1.&#"#>*F8G'"#22Q^((8 %A5#%)3+&&!(0*r.5;%%80)*&%$@%!23#1)/%*4^F-* 0A'!!-!1*;!3=22:$(/I1,'7(89(4!*009%44+.."0#+,2B*)%*41!!&b8.-)/I(&/'(:%!5005+<$'(?/0B"0&C2A/0/-4E+$$)2(42=(*!*+&4 #),2-.1#G2/%:(9'' k&8Y)67&3( "+&&)A##9,( */K,.)1?"++%/( $#5#/1@M)#0>&1)$+,#"0(;0%"'&"&.C3,#-.5--+;1'##%1.-&,!+$=1?425+7  @$.'%?"A%O>>53 ,0OA18*6!87%8%.:'./M'+(:9Q@#1(&#B)-(7#)#&+#S05&'0>)?8+R(%&1,G-&4#+#9J!3",,) -! 70/&aZ9RI.9).e '!D/-6%!,#-")(,d&5/% +4E(B.D=,!%"$l()'F52,.;0##(1S0)),(2k)"9! G/)*-$%)(*)K(1(124 +,9.*6'.4,+(3&N00)3C;8@;),**(7!@A%:#">*%' -3,!5,16# 1!.'".( .*@& $*12B&1)'! )?(#!&"0),*3W%31%5#B6D<1 Z)(-4!"! +#-*.**,'2)6426--"-28*!(#/&#)",( ")-'0-(:$.9W*G(+*3 '1#D,1(>$)$!#,%P)6$*$LK4-/8-&-1"),$$%#$(443-0$#(+.(B7$5*,$7"_'25%+G-0!%8H, ,<'"0B&%@**"**.&3.'9052#!#*03(29&#!1(7..7!1*)d0!=( (@.7 6 )"("2*3#.%*,1%$=(0-): .Z461E*M(1'"%*)'5!B=2"*&9.#790:<%,25$ 4.5&"/'& +*#;[(+; 3%065"$+$'0)&!&&,!$-@"CU!O0#-0#=+$/'!"-2$2#%6 /5+$L%53'*:) )%"4'+"0,.(7$!'''$/6&%I<%*"5*'83,-#.!-<.2/#-"0H/-.)3$/<2.I;%'$B$'%/>40.!+#6.= ')/%$$.(6()82,-+I '%+8!W0B%'8!?&6*!9%+9'***'(2$).$#,$%(1F8-(',/.**4%)-1/:*"3#,'8") ,"-E+)'5D%=.(% ;/&@#/7):'/8;2#+ E3C;-(%+IH/+:*),$+ (%6%2',L3&F%1E)$7#>,>4. /02*" 73)$,"'/ 4(-0>*7)/Z$*&,/T($""5,'-&))%4-!C* #;-!$.4*!)77!,3!,*,3 *'8(1#P2+!&/<^"0 Xu)6!'-$(#;@,+?7#3*1,%''+.7/6.2.=:'?%#&+,$&&&.%5)+7%'&&12274>5"99C& 44&%1$7""@')+"02!4<12$)')2/)%(9*."%AC00'00. ,J1%((0,(8-(-",0E7.-3-28++%/&/$"%3)2+'&&,,%&/&C!'#(,/),+'5%28&?+1)05-'"#34(/+7%1,)%-,-)""5!,"4)#0+@%&8"<)-04-2#*5.*')':'5>/ 0./&7-2&%#*'.$)-05:59%4"/%.'0$*71'+1)6")9%!+.5%7*+81'.%*-) $)')1/)5&)$;/#'-""/'1/5!15''>-+*4!1+:,>7&7%,/I(91& @'?)2/+79,2"%,#*1!$<)%!&c;5$;!$+7)@0,$=-,&4 43(-0$.%%2&1)@./.+.N 75164&'&<"!3(' $V7+24>+%+1#,!.D62!+'''/((*,'#3#-:1)(,7&((/+%'4?!.+*(8A,4;4%)!)'.5/*!1$(*9)(/7,((+@2(#3.-1#2*.+:%.1?D)$8)"f084$$]:Q"(,)<0')%6#.*&?6;$",-*%,$'B6(.%$.*3/#3:((2!2,,/5/1+ ,)3"3!-*,!:9-"%(4"(#-.(-$'1L6*#/19.00'/4V5'35"*/%2 "U84,+;0-L.@*"(G$*--9*/)$?%*-'-<4#B!-%/$0,(.-%$40J$,, /(,/)+$4.1#,B(;*(97(+'" 8*,3#490<2%)3, ,$A"0/8*:3035((+5+(&5-,3$<%19'*%,)9%+(10:6)2( 0+-8++/%*&H4D(:$' ,72+,'8'/)0:%+&27+(9.*0/1'(0")(6(0- 5')5%+*/) ,/)!#-7/(0(1((*+:.'!!-3**1#*)91&3570#3.(2 **070%$7"1%$+#,13/-22#$)(6-"%2:6")-% .+)&0 3'6+'(0+&()4 1*+)%"*&(6,.K4-(33:!'8*4,14*!7-,+&)/4.2/*8'D100%*%?*,'1/#4,&1(52%(;&),%$% ./.)-5(&"$;*%- :2'&)!-%#( B.#6'/50*;-&%.+-"*"#')-'%5"6-(00)))%0,7,3=!&%&5.##*.&+$?*8'7%'-2&+4$Q30*Z!-)2@A-&1*09E,+4" !&3 =,V*.T%)41&\5$+ !81%%+$++%!0*1#6&,24# ,>(()9--3m*$=3-?4.-% *:@2"7!.% 55%+?//T,,!'H,%F,2+'S&+-$,0%7$2+J046+(; *0+#54(,N&&. 0;2%42)3110'%)*'87/*3%'/6D-2+&80 ("'9'6*#'&/%=6)/)!K*D"&&V.T9-+52V0+)"?**0(!.=2.1(0(5;*$"*08(($/,J"<#90583.&.%=)("66$#)'.>%+.$(=+&-#2&3)0#*1;6 ";9#'H,.$:.&8112%+(4 (2*%5H"+7.0&5+$9('$&'(31+-*.E&;':%& <.&'5/ *#.N7!'-2 3N/>3('397')F ")"7=26"15:0,#$06)81'S,20?"+0#38&56* 1-7)("#"410*&'+11#;3+3 '$)0 .%.$)8-('"9/"=620#,,,%(#5"6,!1V.3%:0-471[%2?"1+*9G#7% /-*+8)!0#-$,<%7G,/*6+#-++(.%/-,?4?(-%!"(AU5,1-%%8($6,0*O0'%*D%$$D*,*+&$++,!)2,;&'%,0007*99)'1#(),0)H#$%2@,%)!43+&(0H#16@-.8'+*+,+/--/$ .-#+'.1A0K-&$?+-9-)R(6('4/A)-)&((&,%%3%*)+J*9-.'*5+3 8+#$29)')12++3$8)91,+$((351*8+=%7'(+5&/%(,&,4+F&:8.*/<.&.',.+*/&/$&#+L(*,9#6,/+1*;+3&7'+)+*"3)'3;5"(+;723"32$%50('',.15)/&%( ,%9=*-#(+6!*+9#->: %+752"$*+8$7.:4-U/1#++/.()2*=8E((. .#"0%$!5!34gB.3+-&+))2/!C0&,14+(/'!734$65-$3+)E.-"'#3&/!8',F-*4+$,-4)7*!-*1+%),.02(&51*:,0/%,+(5&#*+,$BD). *),0*BD*3+2)>05%+16+#(0o0;(6#.0I5?63/1+@*-);0*#9E:&'"!;2&;*>D0"+6H"&*9L4+<)//)-1@71'(+((-4.(:73)R?I0$12*,!*(64>&&--)7/A3)+64&/67,0!$' '2-,#*-3-C%4,:(C(C,-4H$261#'&,W*2&,1B,0B/*+S>-4*6,=*$0(;3# B*<-*D)"4'GI-)3A(F$+(?.=C'26-)/B6%2+$.*"(!%(+)H,58/9*9/"/8*&(:/-/(0550%2---++*'3/+,R30:+,';:+@* !#%4+.1:'68/'7=+EL7,4*1 &:WD&%.(+0&&(!(3*/*-,02M*%"*"$!&&*',(51(-%+D/->--((("61/(:3)',!/9@V&&);'I(+91./'-#-18(1,0,F'3'$.&%.2(-/1//>(3'%$="0)77-2#*/*#,6 )O+#,40-', )55/RL>)$!+/*/*+-5!%,0!(.,H=1%'*((S/6&5.?;'N-C), +$&2/*2*0RA$"2&306:#!-,0Z%0-0)('//"9$:.0"&+%Z33/*[M'':&5+0G2>4,.4*\4$*,>=(:/'+:44.!&'L2}-(/+)2#$#*b '-R$&[$(5) D,/+&0/5&4+& a]!"*!:-20,)0*+,)/a*+!7%F1)(1&N1I1,)"$+:"B$+*/ 1:&$$-"&10=7("#"00;) #&9$+(0)-520.'1)!)A"*, 6l 1'*/2#(40-.,(&1)()G70C ,1,+4$!3&,/),--;"6)-4/6#&&I<'*1%)-2/#$.4($#%>3 '+! 71)#1-)-$*'#'/A8)(R''63#!#))/2!;9//()*,*9- 4%$%4(,-#,)3-,+'#&.'((+/48# "2-*J)' 3*'% )%0*,%&*/&/1$).'0!%/&<&0&-!&+><= '0H%+9),>#=%%&-,9*&'.$3#,#9/ .1*/*%!*,)"&-$; -3++!5.()2;6.,'(!/(8>B-#&.1.W%)-$)#.--+,:*%#$*("4-*#73( C-/,2)!(!#4/.),1. !!)B$&:.1+&*&:(1"/).&)40 0$N*/2+(8'$.=74,65+!*,60+&0,0"62,'*%0#)" /",:'!#*-(.*!0$. #$H($,-%%0".'$"M%21*:$0D*##!-&%')0*R ")-&,/!(+%*2,"2,0&&00$+'='!%#Y:* -(3**& 81(7"&7 '"&!2"/&-:"$BH'!9'*/ 4&!)+&+%92*&,'4)'(.*()&$6?#,(2&,6'636/+ :*1&5$b$!2!!8.%,'*-0!)%4"$ )&*-/-)$(#2-+"-,)%,-#/$(,'.(+:3%7%"3!(+'(. '!"88(4&<$$$'/K:)&3##8'00(#"!2&+'C')($2<+$0/5.(&b1$%5"5%/2,*1E1;#11-)#9^/;0 >$'J32!%+&'0&2(,#:"5+/#/!!+%/%'<5,x%!? V$7>&#))4*-*'/+'&)*3,3+2,'#'*!77/%-.%K+&9$+,235=/0(4&-9!,!1@$!/5=.9&. ("*2'+#4$A%3$+.<#0O35$K:,'%*(2"0:.-26@@3,0%8#<&-$'Y#0)7#,2,/4!"64"&B'. #,$1,=9)03.;@*)$"*:497,/-#&503*5&0'2<913386#Y9./)!5#-+D!08 '(9(!!/8""`* (7;6F,)U')6##).%16,'4)8+9/*R04&*'10*'6+%&1(=(/0%?#!A<.&( ',(;"8F2$"/30-($!5=3+H)F31*.'(',$2(4;2''3 &8$3'1)5+5!1L$('"'14>Q),4$5#;K0+&...,=4?'*,-+2&E&>-Y/;/*,-+1#F!")%,X43,,)1"770.+%8 )%21+9 &.3*.):M)(0%2(I1"!5-5*!:%4"814$=(41"(,4%6#A*8>->%8'(*"!D !$E+ @$'CX2$$<.<0,7:#/)1:/./14$.(*$"$4A2%#)4K$%(+./P'5/75#+<0*65Q'(/0Q&!(=(%,$2*3o%-7"(&*&>5%,6,/13.803)5.,*#; $'*(0.8(:)W5.+>*#%2).$!,C,+$3'"\/!,?$0'9-,-#5%2#.30&"+##?!+)!,,)" ',2G3 -"$#'-$,;,"22!&:#,\8B)-']/#'#! >$!'$.6./A1#1-5)*D 4;B816^)$1&<;0!*!=70'E67/"4'?$$("'8')-/9(-0/"N0,'*28 %7(*'+$P&H.;&G7Y15+695=&785(5?.(),B(&9 18,17(7O"&*))F***!2'+0&7#6&$"50,(&"$1!0$<>KA,Q0 2*$( ,!* )#,7@"8+:3!%P(<1%,(5/<*.(.08>-@+>&,/!(@(+XU*,*'30+@5<*1$ )#17-/>D1")$*(0350/0$)541'%S).+)!;!)D%7(&6655//*)$),,54#&3--.#.=" ))"4/<4'/4D*-5)0*+7**-3(, +%.#%(4;4/@%W!+<%'.. 28'%&5`*,,&,4%9R+/*'853%&.*B&13+)3%2/"1*M D&7(),!+0*(,1#)+++36*8/0$:88./,)+-%31*,.1/**7A.36!)-# 1%:1 :)3Z4%+*F"(""J&W);$/5',-78):-+)$!(5+)$%)%3@.!,+#".,$.'3(*2+5*8G/-+_/," 0<$J&/,(-)'8,1/(152/,8,$"03* ((<&1)0N<<1$34<*12,"0;F7-%)/%3&)&1*9'7"()$<"%)-504'573,;>2!8!(4!,./F)*,"$)#B5)%1=%5)/(=5G)'22$50?79.-$'2,5.48<+%+%7>-%%.=:31##85!!$%%*90%/''%q0)$'8*.--873#.,")+)3(q*-)(&$1),3:*+/.#&$-3)#/*:%/)9#1.&K/D%8-.A80"6(U.&4/),Z(1$=/;<.(%I&'27)+$6?3)+4 /63K+/5 71&.#$*)+I./*94P-13"#+@;(+)&#/_./403-:'6i -9'$!!.)i,@;*71(-18'7V2#'=1,"%=K-&91"P&&&&!I!D/&&&X%8&<6+6)531)'*<-*"#&BB,-.+.%! ***/'!+18I11/5)434<&!2(N'2/7"`%*+))"#(-!-4%%,' 4;5#. --%%)9.C=!;"FX22#%3"$,%( $77/))(#* $#-$%<997!-#,#(*<%)*/'3,&".2$.$"+)#8!,1(#)0/3%'.#%!)*2,#&$/('P'&!,-)"(,%'2 $''+B''!k&/: &+<63()86"%16I 15-,4&/5##)/a+"7i$+$,-0$0;#""##%+y+9$+ (95"7$!6#:-,$YW$& *&.3)#.2+*##)>0 $T1(+-%$$")/X+!/94!305'%)*/-- .;&*2%('-)@1%(4'")i:d LF1(5*+1"<(&3E).8IM-%4,27.9!9#+0$8`%6$=++1!2=: 1)%+,A,)#33+1),7-&<<# E0&>.3'%!7%:0.&/X@'.,,*)3;9+%!D(%D*6/'7%F)-)95(+3.*%+.*X&9'-5@#/.1 K)5--83+10*)7$Q,.()0$,'3'-,&./!#*!5*-24",'D4 B(4#9)7"+&1/&B*,,2$3#.$!'6&-&($(0.<+((2;<'!3g,2 )87'2 '!0072%+#&3+&%<'.-"#&!%#L0360.%.6()!*)=*+#-'-&7vA<'"#6'$-+%$-+6 (#$RFK(+&,67**;4 13(9/(%0"$3$%$!$)4 6H!++'))$$6 ,'(1 ")*--!-:"2%9"'). 4)&y#0D!,9FX?#' 2$"',5g"#)D' %'4%-'D-A.:59!;PM%^"$/1*9C!9&'#$F='CK-#'*$&#+18,>a65&n).42A-("2('-5"#G//$%a#),-)0*)!+)5(6'3/)+&#(#&('[); -0)+7)3-7+X4'1;#751#-(4*(V0#(B)/ *,,(/-D-'489&"#9 *-3@ /3"2477":8(;U"&"'K$-58').)&,*)%E+!0+!3%?+")73'F!6,"*8 )9,.B$%;+%$:.#K->55'),/'-.;/.2//0+!333# += #+)9(2-5/$!*M%)&&l3/4 +0-%F(%$.36&+B%50(..$,,$3:!+=B8%8- .%$4*$"'(+-&-9C%+#&&-*$A$ -!)'29%8@)'0>'3"%J4%,*%''E!7()><3,& * &(#"(++<'#&$>&!:,LC#)**(1-JU&-85/?1:&* (+$*%'"(+93@/-)/,4=%!!)!A68%%DF+).?$0&&)'&,G.(04$)#$6$+$c#&3-13),8&*.$)F/ 6H3('':*)=,*30-'$*7&+.5,2.#0+"T,%($H!'<-&C$-"'+)"K4<:%3 +7<*#0.( )&>&$Oe#1%14/E51'<;$5E@.)!@$/t#!9;32,:;7H$&$-X)8/ %2<@57A+3G(+*1'2#,(9)=p+H&9G2(#:=.';+,-N(*.3*+;+%!-2-2%3+2(#.F8.4" 929-)$#iA+.!03<*!'%1-(*#)(\1-0%9*'."C(&F;6&9&47%+%$59."?%,/-/&,',b4'87$+,(2,*!M.78.&D5,8'61$06-.8',!'%79'\/@'93A#'8+0,6!,%>@ 2*4-182/0("%)$O>'2)('+3&-220*-24U&+_5".'*"+;,3*,4,1)#2$./%% $>-F/')3%@*-5,8!"7V&$ '/()$'D2%"6!+#?(0 7.H(7+`>:!H2':59(1## ##0./+1E0(03%,&3':0)74'2B&)%2D/+1!@3B(J:*%(,*#& ;,#=L$04=N"!#/4'J6&69=1(& -/&a"0.(&)2&'+!:5&,+"-'+5'+$64&;2%*$L1&'%-A14,6(/%+"$).!%))'%* 1$3$#',&-.!&%'08$,?$l6' $%85$+&/*!,3&(78<5*5%+ 3&/%+&.012M/ ++=3%({5$..,/+9##,3*)-*&"7$##1!,)'1"5-Q7((H*#*G(8%"-")!"704"'!5%)--!t#7&,"$,8#42L.)3*",- %D3+#"21f.6.!);D &!/D$%22&'&)$$++'6/%6+%.6 1.*+#1/1/40 )((*#'01#(%6.)4I6+]%,0!*+3&0 7&) %$*&""*&".&$0)##"+$..3&(-,",3++,#!,?-8*&8%$2-%4-!.444$:?5*0"'#,#+15/(;$ 403*-.:,+,1,(9,(*5*)/;*+$)#*"(!5!$'*(A@!.)11E-M"')-,%3)'& 0'H*/1;#2(7*/-9$30A%.-"$,2#*+03;3(0,@-.,'"("0 /#<2',(,2%<8&3 1"'+431)J;+++z['!0 /$9@"&*9,--,"4()'.(-(&/-(,//$6 ;+0,%"M$,'$47/3 6*(!Z$'3.'43& %63$,0"/!9:,4='5)7$?0%85&#(+:L=&&*$!%3"-#'2C61&5=.&M.$,9GP#,!%,/%1D/,%%31-" 7#-"04%)-*(?%)*0$+0$2<<&043"8$!*)0++)$')%*+8784'B%54*+B-&7$"5"($5!!)-IM$ +$%1?%,5((..5$b '$,*%-73&%(L-(C.+/.1%)3/*7(.&&""&%A!-HE5&"60.-A/$%<('/e.!,$ &3#3G'B(':%<$2,$" ().S+44,'<F3 #$;:.'3#&&-9#G-)X5!h1.")=),5%("%(x0#7j .#%'"1-F &?$$-#)(&@.!6%9,>,182U*0*391)'3)@+54K&,'%)67(3"1'''*&'+$&&-"+/$2/&m)?/.)7&'.<"3/(+<'"(-,+*+('&$-%"1)".(D+0"0",*&/.06#,H65<.-3!-#-/N-!,-*2*0!-$*->(%17.%.'$.#>71.710)<& *('@1.0+:+())0=00..438(#!/,%.(+'2/03 =('"&%)8'B*(0N"$*#12Z/634(*&5"&4)-%-666,,+'0*2&-+,79 +,0%2%2,3$@+/.26/.0' 6-(-+/5&'.'!3(1#.((.):,231.?'/))8$0D((2-<%'"(3,$&%(1*'%0H(07'**58.,==&.=8*5&/''/1,11*?)"&#/024#*%8O,+ 2Q ()3.1301<*,,++",$6=2B.+#"?:c-*%+(L),/63(06/!,.+(&?,+(7}!=*2),%;6!'#1"B$+'$1-;6+!;&#0%U?)'' 63(#"/4AD1(R4-"4),1'/!5*(/#"$$0+?)#+&'+'44&605)/(+*'<)#,48A++% +#M(#5/0?'%/#9 JD4!0+3.!0%&:$.;V-!$-8$(+-)22:2"7)%5:34$';1;#C,[H4*%!D'7"+)-&,4P/7;.,'41')2 &'*+/06/.%8*(1'&7!3*/A/.5 L6!+)/.+'.0+4-'2!.//#)'!-*.!)$>'@6(8$%++/1.5'-77+6'601(<*-"2*2230&+'M,Q'#'),$Q)B' $."Y%"#4*$&.)I-&>p#X,+13)9*=1,%+6&25'3$!.!0=/'#1++68#/'G 41"+<)$#+2&7(+,(7/-9,)%'2+:20/ &)$+#$.a9%!0./9#C1+3&%)"2. &1,0'D,4:!1#?)&+),%5$/-+"1+031*.-20'-'-"1+(3++441*')*M'&',1*,B^(.%)F(K;$ (<5++,R;@$d+/)5="64+>R:%O 6#14-)( &>+4$4%&07O*#0'$.+5)D08#)60D3!@(*0+#)+/37O8%)5***&.0+4%.4$-/ *)C1!0/=5N**3!82&3.D-(0(*#+7-%3"'$.$)7$.&$,-,&(a!!,,<+7(#'0$&.,$9& 6Q'$'%8&;&)/B.)F,-'%2+).'*)*5+01-!]++37+4%01%;*'#-/S*720')$82+'#(;, 6.-%g/%1+15,7&,B&33+2*1*&0/, ,/1'+03$*2/?&?2D2,323$$5:'C%0>*>1(*,C&0,<&+2+--1#52'5\E.%R5/E/@+7.('$/1-%,(2/+8*(7*7%)""'%D$#:2+)8)8/$8$ '*&)!4603.07014-0,*122'1<-5&@.&"+.11#4'$A2,;'(&'1&0+"&7(*(-((*)+"<3'+A3.0..+,' .'$(''9/057''$<')U3$7/D#'(")&36.',;15K41)%$9$7#,#B;=)*)=3/0+!(&+$+;+!/*(3G10"$63)?#-/%/7'$%.+#)9AD)$!0"+!$1:"f@!$%-:Q'3$$9:36&22##"#5.81%,,#)2&,3'B&4"<)$)'&/+A"'@8.%3/#X/5C#-*%(1%F233&7%+(6C+*=/"3_*344)9$L#+,5&.1H,4*1R(-'/'?MF2+I0, $C>855+%.(1#. =$B*7/H%["/&(66&+.!<073$9(8(& '/$\+60"ED &3#$5$SG2".,A:6C$4-4"'F]02 A0*?&/;'-!;0((/"-1k4*1+-;*/.$,%&:(6=(+"/%0*20-3"@(Y//!%69->97;!EM+:$$O5 0#.+0*.!&18@0-'@/59558M+-< %&G$$8#';$&9%x6*'-0#K.<)!&&&&$)<'/&J).2,-+G3#+&$* B%8174F19/+4))##/+F#&K%/ *'(/?-U7)-"-2$/9&)2D#/0=+,*P3 ('.36(**161*9!#&($",;0$6-%*7>'2503"C.K-"*!(_#3"/1,/4:=7=4< H$!)V'%;'"$ '%&8+%:"'/;$9+$!'$-0)6'%C03%6-*0S3{#)"$4A%)#.844#R%%.&(=B1X*-95'4/"5%23- -!&57I*6+#%1!/)%E9$.'-$0!1),3C-,'#+S#'L'3$(&.).7(%$'*%&V0S2%2---'(%,/-N5. O7*,'.*T54'#%/$#91Z%--.+3-5.*E/!<2.#.I<&2";!6-/! 1)4.$518>;g (%4)%;f45''%$.9*&(E#3&&='):(!%&83+'E,$#*#)$!("/)90&)*/(2-207$>*"4!-0'(&'&!<.C$+'6&,!//+)"R+$-#-0.,&%-<.#(/5@2/-8A83.;&*##,0,*#)3"''84;<&#.!1,'Q,<10$,&&>7(!-(.(./%)5-&"&3;2'$'S/E/E##*/>=C6/&#*8.*/~,*!,'";,5%6300>(!1!<#(4*.2,.#))%-+.+> 1*/8/.9)1?!'+441#9D3@,"&#'3*.7$#'2')%33/0*0"8(6&c(?"+-*2&+!0./)6j* +)+&, &(M9*@"(-):>*3&>1"$538@!<._ +3-+#",$0,$-?'!+.! 9*4/*A+B64*2*379"0+*$2-,'#%(!1-!()"-1'3-23/4!51&,+)*+A72$'-6,$0&,C&!.,1'#3,%(.((G&#*-7)0!*Q?.,%*7,3!5-) -4($ ;1v+5%9*%$-3-))%3*%=&-+')25.3)2%,"'H#&$#0+#B8)43-F.1-,+.+.6)-2$!9'30! 3)3"6&6';0B(*)P6+8D' )9;)+17(!Q[6&$)C)8'H'*()/'%-;13+)+>:'/4? 16)<&?+.$'44.(B1D$'\2-4"15'*2#$-%+'G&,-@7NC60*$-:6(#5'^:--@=*+"b7,#('=$'',&21:--40\.&*1+Q?.+2"'"5'&(!)6&/@./(/*J@33/0$:"8@-22=76.-5%4 $K2?+-,80B5&%B1A&2%3I*DF)"K39/2%>8I45%B82J'9)2K@))+6%-D-%-'1%*20"3+1*&(+.7.*,.6-'2&,0',)!&>[ 9..9$("+-,-=+8#4"(8#"-.,//(62!,-*,/B'2:$%'#-(#I1(.(4(0%'#'$*&&6&(2%,(#).3 "3'F$!'+)2,*%'9#,%%(2?/)#"1,3!;$'/&%72*5=%0BC5*.4()$?72%6@0//1%'*.(-2%;n/D)C44"+)')+1'#@'"-*&20'.<>$./114(#(-8"'%*&/4'"H%;+(:+0)/1&-)8..!0/ %)?4%%*.@%.+W<)209&3'0 ,(/K75%."$#/)E:23,R"1+2t),)2(,'2,"+#)3.3.&&.*-%?"1-%)*9(/("&0,6,823(2),/+814/0<,$)"T-)(-9-+#$+E"*(((/!''01"M0-&%)%8#X,).*),"-0$4A%+")0)+% +8,=-5*%*+64.%'&"*2-"!/+7=+"4$&#+5-+;3 :9)2()0'.Z*,5E%+/'0% D%+,#($9%%%!: --#8-@+#%?#6'7*)'%(/)/3-&#-/!(7-/&`('..&"3,0,#-T"1 05@(!.+2:4@0.=).""$&0#. $10*4#-)-/$4.*!?H0#$*D": '&X(&5$8! $F/+.(#/&,$-,*(#9DA2$7*46$*3")C9-% 3.5'2%1/%* .)0$6**#5#'( /,(1,3.61(7*&?43/./'00.D/%<65*5'/','-QCt/40()&!)%?-&I#-.0 *)"33+(9, 0!32//"#1$!-y)-A;R)**. $0/A*(48_ !+"A.<&2#6.6*"0,1$#3%.2:<2%"-+6'f033435+#F>,"&"D4c !-"$%&)BB!J,1.+D"-('2H0,!" H$0#&.1%2&.K!$3)7T-?-+#&s$<%$)'!2,/,'33420&+-.:(#V'*"+<&'+/?!/({2`.%)N0*@K)6$6 (*,9$7-38#)(D<*GM(&,7(2../#-;D?#5-&"4J+$E#&99').L.(5;6()+.#3&6"+").5#$:+8%(&/-( %++1)%!#/}12,8)')/$=1. A - +:6('("/2 &(&C42'()9.&4,,&%-/&:1H)*$+1&C' K1'1$1,&+*/.),9//"72(7#&)-,/,&0)594*U0*,,;8&7D33$#5-04(1$*4;)+:(?4 )*"#,*-#1)/,8/2*< 4';'28/M'))+&.&31(/+,&.=2.4D'00./.%.1!:;)*,3,#&@,#0$-++0)!+B.<479)>-/ '+-56.&/4-<0'8'0)7)%./"'$D30.,,*.0)3/E)3.0A)L04290,0;.*#-/(8T%//4&,&+A%+/=(#2)!8$2"7&.',.2ZC6(7.A*4'#&:*015,2'-(2,'2,+(;+,(+2&6(*81 :8&1F6(#'/&(44"3.!'6,+2+.$!(2,0071/2&(*(.2-;35$0!*;((&)5$57--/86(+#C910(00*@/(6#**'1%"2+#61+"7$0:$CBD'-B'(7N',(+&/&#E'3E1U1////5.08E.)03%I=8/>W#.+;8A3FA*(@.'7.1 4;'!#%'%"u&( #77(4.!).'8%.1!"'/6!85=/+2)><$!('')69;'50-&,07=(*)"/30*=6'<#+809$'.@3&3&-3-/c(*:"&()|+$++%. 93:'&W*M--5-&")2&"%-"9"*]=2:*2,)7D$(31&&:Z2!<+4T.0.2315)*<;=(14::%21$,:.(:"!'A\!&A9<- #&-(*!#'(+6@','(9+-4&11* -?44./n'4+8.c,#/%4+(3)++%W3@ .1/,.7(.(4N&1,).$8!.-<,5$&E1;0,#*6;$<(!*),3%<4BZ+%'%+3!1D+?.#/5%4+" *A/+>+)3?*c)94,(%5,)0-3.1&-'3&##/.*'")K&0'',-+J0/&'4)'-#$"+:"($3*(%2&()>445,35/&Y* '1%+.-857, .'21+/.(*:'/69*5"9$)/B$'+#419,-#')">$80*/3%@!!$)&(<+*,"+&4-"/%%(%*-$!&-3)'55.)#3m02& )13V(28+/02"+%"(&7+'3- *306+H!L.2$",./#!,-%70$5'/4+3,-7+<*%<-.5#))4E4"*.K)'+(*63-+:.+%+20"C##7$1-+-6,]A67,26-/#B--?.F,7%,04 %*$"2 &-$*7$E"5 +..=(+'+&,/)/0((-+/&'3'?0/8++,5(17.2.0%0E,)',%1&4,"*+$0,69D-!(&.3'()051+.1$)"3&.-+1D/'&"'+- B*3#4)B$'!$6!)!$*%#!/8*0<)'*3-(,,"+)14#!,,&(!&-*.+3 , 0 N.%$&B366'*6.809'*A(3&&13(*4"%/16&7(/%05-*+2.-"8 %4+&$*&!+&D/% '+*v,#=2-+K-$"&)2+/)-3&&$#&"9&/C8,?-,4'3-**A'%;3;,*-6&)$=:2[ ^.557/3/..*6*?*/)0"-&.:$"%/,$&'%#(#'F*6=,,8-/8)',5&--1,#?=(&: +<$$*5)+'*"7&%T+%D7$'&2+"+G*#+('1*>+10(),,098-0A,3*01,*%&$D+-:!&/(&+(-%*:5'1+6(09*$8&*'&)(("&,,C/' 14#01Z4&%12*W+4=4 ,?<.,0)/%:.(+<:$%.&!*!+.3*#(/1<0.+3,(*,1'G-0<.*7)>(+*.5+,/A./,82/G.-)2$<43/$P1)<6)*'%0!6@.-15C3$(;3F$7+1*@.-%;06&1*=6.&&+*)$"-9-'24>7(5$0(,Q-( -2!9,$"1$&),'((,+*0'&%/!0;?-9(0#"9A9"'&51-3.(,%,0)20(,7)4 /7:4+6,7$;2( $!1&&.%2-+!%1%4*)+%52"<*'.21/0,C+$/<=/(@))+,2-+62=/(--)$0/ (+@$,(+%/*/I$? 1g(/9#0&*#&*6)06C(>+),"  0 *3!=/))*'0!+05$37*/+)920!1_@5=/4'-5$4as1$)12!@=#4)7/>-"(67-*8#4!',!9*.C7)6F083"@.%:&".91@-IE4#I!^$89/O&)!(7/)=87<520'7v@.2 'O#4=;E&#&,(..**)4%/#/#:$%141%0-2($':-())(/*'17'4041'#"F#$* .7=3"7;!196%,"+E$."71174(".3',8L:2A.(<,/*A339)#0!45D!E458*91&"/-(?&<.)/'I+ *&5MQ*,,000(%7<4D*++&J*'.;&"B&-:1%%/!'"%3+&;:+S29++(!/)!$/ /*;31@1k&0BQ<(;:)('%+4 *#+*404*DKF24=A*A"T"/.*++*9$('E./-'!$'&)(T1)&/ +%%9=6 7+E6)+2D%#+"2&%C)#B2U$(.(9+%8;%#(5*:)!,%5+&3++*+&1!0F),>+'*))'4 (-'&/'#'A.%/A-#21*68083+5S4#b )$&-4R!$(-,,+(.$=&5;C9$6$*'$A&:/^@,/*)+("+5&*$624%%"2' )<6-+!J"1(%N4*!3**5/249$,/.'Xb3$$3&2&o&7;#/#C'$-%'-+)%90' Q)6 "*.+&),,%(K"#!L%";3/!('@%+2"3*+F%$+012;G#%%4%'(4-D'%(K(63E,(*-*&A2:*38:5&;7">),+R(H3 )*$5?109"+>F&62$1!%1%U21:6$-*-)")35!"'ZH ,K:8%/31'& /&22%<2%$C1*/#/,'?CG-'=&((0)*-'$)/$$3'%X3;)-' )%(.*05'#!G+&67%fl.9)%17O3-@+-)?:2#I@4(+*!3( J,$- 1%5+#B*"'$2B!/*33N%.&)'])%4 "@&)3/25!,2;&2*E" +,Q$/# %$+$+*3?M-*,+47B''*e'(*&#%( 1G*3<[#++?&"46="'45!J)22{(,8*)4--+%/.)-((*-%V(<++(9D'(3 =&*!D/#$#)U%-:43'+8-'!'(,,%,+$"C/ .*'+'/(&(0-%""',-(&(,&+(#!D*641'%:)K"*$7#(2L"&N"G:0')8#*4H:h'J&(,8+/!!)(0!+5&0,0/0&$&'4!M%./2(JR#12,*767-""-;1+)B+;&88$$"=/"-//89$(2='!)!3#S2*0'1"#$G>S/<)%-2:0+,,I@))+/,'("&/+3*7(!5BM'+%/-*+'';1-& ;&2E',.&$)&X>!&@57&5UJ%/+4%'43.0M52@=4$* 6!3)(kZ?^\!)<,58+)3'$H8*#314#A4  8 4/&)-$3o.536!%-&=/'3K$:I).%(+9/-#;T/0+H;8L.05-<5-/.,6*8"E""6&(@,%4,&1B2+*)#K%/7&0'* /!<#+2B)' /4$%+'6T%?'.(&-",4$1W..!(,@%/OV8O,03(%**"H(D,.'3.$1!"'304[RCE#?@)0+*H(1/'0147""&).!.[+1,,22#)!4C-=A $2!3+)(%'--8(<'(1+,b'#1 ( 2:&'&7&).,!9%(#'+3A) -<:>>3.5,?+1#6%,)>( ,*71.*?2##4'2+2*/;)/%,+#(&**,/&*710,60*56(.$.'-4=.#1(!,-40(17('+&O-./+2,0-90$(%'"#2+-,5 (1K-;-083%3L.$6016+@-&$)>,*8'4$25"6 -&%##7'/.('30+#+/4(!&-4*.7-18+43&0$!A$)(<*,/%(1&6(9&*)(0:51"*"-/%6=&$"89%;;+$'*&$.+)12,4'*'H"/+$/13L=3+(2&%&6-&i&402/1#-+E18')4-16.D26'7'&>S)#:+1--,3) 5I;-*$CO!4,!()*$I2P*'U&*.&209%,-=&&%Di8,/`#&V2i&3&(*C@5%9+/!E&J&"0#*70,$%((I%<#0'+.(837/'%!X) (%0--,+%(0&,?*?#,3.'')%>+9.,$.8-%+J$1(&+'!)0< @=0Q## !",!6%&@j1 'A&#&+*+)2!.'k(*7P#,D+(9)'(,&'5@^79@+>1+S<(-*3$ )8a.<!)%-,.0'!+%*? )9**8A$'6/")/,$6"(%.LB$0/'02,8+-$"('!2E$$;2j =/--/H"."3$&D2&&&/"9%A?2L!W(!0\!1C)">'1*/.9(&)3K$2+/')'O8]60))/?<7%.9.10%09-C0*8X.)#+'/-'')8.;&)'6*1>C46"!?+++70,0">4()3-&,#&6E-02 0=1<0#'A3'6C%1'+"0C":)+0/"*-*-#@(3-755.'.%(, $02$-,1&(,$)0!%&d$-").&1!*'/5-0'(.4)".(-+.) $5>23 %/!5$1%* &$b21'6=96+)!'+K:*2> ":81| ..%A*5*-#';2670CJ3(;+"6,7/&)-(.#(4'-,$*!+39&%0&4.,;,%3( /"('2#''9(-$C48*/$=W@ "-$#$$*+6.(0*#1[7)"A$+)(3(+10-"8E+$*Z;>+2%0D=( ,6($ L9$1@((7)&=2/!T3#'#:4&#.+*/+-0-L(B-8:2,$.;)$.&.0.6'5/$)r,2)>).+'<(&,.!!0.-+8-4*!< $N%-<&&--').'&,3&@4+02+.<4%9("&.390%'-,1+1-1=)%>g.$'$6)#0";1.%)$%*#/*2,,;5(+8)2*2$7!0)3/./.# ."*06,"0,'1,*'3:2;/+3@#-03+0''')%/,-3;$3.,+9.N$&$<61-:!/BO+&.94* 1,-)**4%$-!/ $4U,%6Z(,_%(/!&+)(-# 0/.5-%!O!.)&1/+#d07;,"03 1@$/;4#4%4'/&78"+/*&9+'0A!4&4.)<8/);)7,%910)=$#"4(,4>G0.'2:W)'1 5&(-\5+H3(&0 (";.,*#/C92,((/2!5)+H3-,)K7/a#*'$#(&:4 *)((&,$.)":$4&1-<%.30/+-#.Z!)1|/',9113$45&,4%B$*&, )4,(-#$#/&9)>J/'!"3(./-'$9(K$2($2(*' 0&7.,$-6:.6*5/J(*@24$6*-Y(D$5%%)4H"12 11e*.*,(/+87#;*00+%()6@)(/"7:"-62&430:,)%,3/$/EC30=1190-O46))*'E?-6 (#$+4.0-3(3,+#-'"7$),9.&!2,%''".$#)(/+$22$)41),#3!+,-$,",)/8*"5&&$&7*3/-+5(6.8*H"574<7);53**19*.&+.(8,!!/2.00?8$-1.'61"(&'"$:*9+!'")((+%$->39((/&,2+,(,(,0!'/''4/)5/L%/"*)2'6+1.,A5'2:".+L O%:-,(4*8-$-$65*8'&$+'%(2,,1'%$6M!7,&*"0/,.N3-6"2F4&I-3R%4%"5 !69=,.(5($1*-+,&:1'121'<3"$#-0/1#"(B9(,.05'%5)%"8:*".10+-#-6-!)&59M+4E(0.-.,?&1+,1('.1$))*8)/.2(&#)#*.$+.2H-',0(+06,6+6+ '"*'+'== "&.%+'2#1K,*).C'.U3+.-.8&81.(3 9//k.3S9(:2+/$#-&(N,-3!5(.7&'50+;!:.'22+2'!1',7JLA)*:7E$'.%#0,+6(+D1+:6%(0, X(.++,1/ %1$;&2.@>* !7%"'1845(307C14%2'"?_.&$1($$*$.?,+6)")&'1:566L&/#0@;6&%7$.5>@'*=#,"*3.!14"%*7?99(=9B+H-,.5*!H-&'0(>23;%.%8"R'"'W'$'+2(/%-8G0'V-#-"* 3;"/)6J'1(.(<01,1-)&,%'B/.#(<=$.%+$9((&1 !/!$)8F$.,1'%(!%/ /_*(Y0&A#I013*(O.('87[#Z2./-5$-,(.(' #)$#..')*$)9.#3 R/(CC<*(3(3)+(!."';FM'"3%&?+((3!.!Y2(,;0)bQ!$ 6(JAA+-#6%5, 7*.(=;)/+M* K8 --+*'0/,+:,U9}),F90>14"&< @5 ,@")+)QBf,+<"-(/0.QC:-!/&.%-09&&'(5(%/,,G/<%9-'9!#G0'&)$>.',!+9*$O!@&&: )M$).80".&!31'')+&1, !!$"##'+/$/6%2,K!-3C%,4+0/O"/<)4,!$,/%Z,o()"B?a7()%'"? $;)55!)*c9#*.%/!13(&E9H5+5'&7Y,C0%"#&S=8!%'H/ 4644*!4:$;5/(('$|%-*&"7#()3,(''*/)(&- ,,&'0-)1)3$6%5",)(+4$%,,*'*6$-7,7!.'=$&/#=(%6/3#/)/m-+.%%'-"1,5 ) /,33"()/082$-+,7/&-/--;117.)'0'**&2,=(4&2+3%"$,*$ ++(5 3$29(+((&&:*'6F%?*+!3()0&0#'(H"))#89 *U'($#64("2,$/*$9-"&.(*,#*-055*5Y*igr{tl_}p{{~yk~nb~p~dow~~|cqhlkedq}vmt`j~{ytxzvplyml~r{Rrmw|vv~tol`vtm{txlt^xqnj{aNcmr|vbx{gwprukzv|{wZLuwrz}IrgwkqwfynzzxrdtzmlxousszuumyStwrkvqPxquowpaakqwrhkdzmjudbbxvitquvq|k{t}o|otxetXfmkfo{ylywfnyr}bqdf|lh{`io}gxtvzl}Tvtqllxrzkhpoa|}anlyvqrpylpz{mnmessx~pkuo~zvmpgxv{ysfvhfpstxutctqxatnxsnzeaetxj|wsX|j~Prmqc|r_v|kZ{ouu~ms{pwMzplgekps~}wwrqnz|kw}cw{ts~ltsv|mrvfqnzxazryuvppowzycsr~bsi|hwn|sj~ugwuooeslnwltixyjy}uzpu{b|sss^io~ektywqyghrpiyNGy~wknb{~{tq~t]qrtxmqdup|gyi~owjv{nywsazn}ilyntytxtk{{hx|ns`}pj^`ymqsyz~nybuxozuwrsv{syltmzqgqvtuumpgzlsozhZvcrxlo3{rvxqed_Rzjv[mihYooxhpgTwrz`trisf}}q|mvudBrxx}|vNot~vtlfmdsnuw|pcznqzqhn~ZnZyyv{nri{_ujlsrwwkwxvj\ttulk|vl_zsxr~tvs|busljvnh{okzsngttfxnqywllwx[mj{e}|sol{`mebbv|c8shcu~Muro`w|zkWszt=uwmt|bjd~}|x0}xzlaZrz]kmoknwioh}gyzw}zdmuvop~ywipx-yujo|tvlvup|{vj}o[c{r~navw{evoostugu|j\qj~zsrfnywlkvqPmzwwvz}jts\rh|~whh|nm~irvdw}jqt~r}unoqurowkb}cfw]ikovuttximmsu|~cyfrulurnrk\xqcQ^wkxonyx{za}lonv}wv}u{pnytpxvvudstt]cysxr}pzvjfux|n~}ljxtrrw~vo|[wrxs~qo{~ivkhww~{qmusqwcwuhzsmyuwmntu}kw|rudureeoumv~gn{xwro~txrvw|qqxo\ouo{ypyxv_}utt|wy{q}luLpuqzwDo}nfzwkjVx{`t{pQuzj~vftwzgej^kretj{oretuio{ruwvfXtWhme{tq[z`rstxxvkvvzhv}omtlyfykyq}lwkq\y}vfm{sVinjxysqqkhuwz|hrnakw|kozvc}{}}mylv~rvwt|wospvxnxi{drtpvoittkax~{xws{rxdnwnxx{nzr~ft|~cnrr|q~ztyfte{r}k}wuvmyxs{ymfr]wxqek}vspz~q{qzozhqwptgxzrwvuwt}ow}tvqoqq}vvgrpzz_rspzwzusx|nHxquvrzn~|fsspxxwWu}qxm|jaqorjjgpkxpqjqxo{up`uksmoziOslyohxWtinqvjicg|d}ivsz[kpqgoxggsWovmgnowv`|vxUu}[{tsy|wzoswljbovxxzRjopqezSb|cc}oruk}zyogvvrt{w}|smwxxpsqrl|srowfm{{{vnoy{quqyrbg~m}|xrrhnvzo|vu{ca}Xywzvkuqmdjv}}riZfwzzu~|dlyymllg}gsrvmqynokw}u}wen}r}p|vqyunyy~qs}{sjblig_pf}bzzemqoy|[krkvjlks~uynUxvpze_mmoo{kaywv~wtwkr{t`snsoqm[phtedvsD}AuRwuzrUQhbxtq[]rR~taf}yzwzYfqqzyPwnlm|oxvi{pjYgtm~}zkbvjxxngupsw|~zx{iret~sxpg{vpwqoZ|gkoh{urlkpmxwrjxzoswvupuhl{`eykdpxqyrmhwzuvys{y}Rm~dmnjnvko}v]\wvvZtt_xq~pj]qwbvb}}sryp{gb`|p{kxspuok|wreTjtmukwnsw~w{qrxxar|wsmvpxjutu}rn~rugtrrswnx~{wm}[trnlffuvxzdmu{}yttlurbZmev{iiyjuwvdwnodgkwxuumxedf~ujQygpvvxmesxtvwn}jruuk}tnwvlnzrcqyzn{}xwzvnqpsrpglq~}|yiwtdyitx~nr\osMyyVo_|m}|_gaqoWt[m`{}lb{[ot~:zf^nro_lplz{bu}mqubrxxuUwejG4soYzpshv|qpw`vl^t``=hky^rqw|{~nksxekzn|tmwxsxlhteuyx|gytpnxqmysa|tvtr\m}uqs}ltwp{qnqlp}xt|sltyzvzzn{ik}orr|ttpk}ypxkuu`o}}wz|qxbU~O|otu`pxwPx_vqlkhldsabjtaNzzpmyko|lsvne~nn~~oqrmty~~r~sj}yutw~}bvtcvnr|}u{sn|yyvmhpv|dpv}sgvs|i~tupZv~lanlvgwns}t~somw{}pphxczopkywtsnbprixo}vt{nlwxwt}myiNWogtseqrspvuuwkXvrzmlw~hxvrlrm}aqt~qpoxw}mlei]U~iqvucxns`{p{jnh{qqw|rzkozl|y{zmuwivjttuppwrvxp_stxyspyuupxi\vp^xc{hvozazmjxyldz{pj|{vqjrnqqpym{rrvm{flktmI\zzxe~v|e\nj]hcutgrwdUxqq|ehsvtp|vrwn~~qtws}vrkkp{y{onv|svvwe{{}nujxwvsoxoou}xr}|t|n|llorfz~Ysgrkyot]wwbrjvoan|jx~kqpxZvo{vWh:ckp_ru{zm_wiu|dvrjh}s|q_p\r|szrpu{Xkwnpyzoqvknxrpwvimsbxu~r}iwrfohs|o_o{ixqpPj{{hhqzzlyzrxrhm]h~pizeyjddurrnvzz~unuy}k~s|{zixn~pkw{rvrrkSuinzc|p[cvyb{ydyt}mu{prl|p_aqo3jwgnjwrhysd}ouTdrcV{tzuwjj\tnqquzuzi~Vnjlm~qgbxr|r\j\gopnzzv|xmM}s{uZzw|o~xqxvonsrlv~pvj{ord|pudlkvfvw~miwc|onhu{s~vvoQtP\[X\^cjyynrfywqkGbl|[sinMeq~g||pdvqr|}vqvxswy~xuzovxlzguh|prnsycyn|jkqvzzjS{}}yyuw|xyylv~}m~zvziqyltxwkk|uoyo}{stpwysvzxzguwszo{jrttncmnxcrnx\}w}f[n~ksp^iSccln}prYvgcllkli~tbgrrs}tndUqzkvltpOmuklWorrjyQqqqyah{pwvxxqmspyzn|zsnitwne`Ozrzksq{x{yrszz|zqfyxf~}r~prmskdvnxnltr_}uo|osrrnr|mxvxmzptqrrx|x{rpo}lio~}yxq{zsyltprr{q{kvpkisvpz|kk^v}rocjpqJyq\leezO\yxgphoyk't}dv{swrc|myvtn4yc]lY[lp]nq{hwsznvzxzyuqt}sxrzp{~vxgsxjh}tvjskktmrhkoy|r{wuuwssyumwokaejrqƥwTxyxe_c`Z^_Y}m|wvXx`{kjnv`Yhpdۖzv|wx}u~r{upw}yqtxvoswxttkxzzvvrwstqqv{rxhmqtztuiwnritlklz}}p~gwzj}XqnqlrprwZzf[orK}qz~spw\urjnl~-f}Yyzuu6=xul}nnpmVcv{w}psR|numxlzuystunkxy~rwvrlruxgyUo|y[rwtnN~x~_kxqXw~vz}rtbqdtjntzsdshsrpbpwuvg|nxs~|mytgbepzk`|ruknzotvwnhkmci{lfqni~~}_x{m}uq^zlipvkprpmwqxuups[x:s{kkT}~h~\s9vwdfYjzvPx~vtnvlRw|tirWz~|}vuw|~vjymwnwsuxvpxrotzvlrxlxuxysrz~ryqfn|tpazrqmq{zkj`|gkvrxqj~oushvib~Gosy`zyuv|jsuzczyrkxNsnjmp`sznkogUkjYN|dwxkytyqnjrVohxyV]ym{zs|cnox|k`w{hszi|uu|czp{}nloytuXawumzltpy{sgqpozrr{v}o~fjkxopmhypzz|k{qlI9h~|uVGex{lowOowcjj[|qqpt~yhn}kpjuv_kruvlk|nvosg]kylSvyxhs{`wfWcmY}{}q}mxRjuq7ew^z~m}.a``a]b^W^`_W]`__\t``[___\`^_^9]`_`a_]^``_``_]h\`_a^`^ca`a_^`b_`\`aa^a_^]``b`Sa``_[_```_Za]_ab`\_[aa]_`````a\a_\_]ab`]^``]`c]aac_`b^]b_^^\^`c_`_ac_`__a\`]__]^````^`a\___]_\`[``_aa``_c``___^_cc`]^[aa]`___a_^_^]a]aa[_[`^]][aaY`a_^\aa_Z^``__aa`_ab`a^`a^]_^_][^__^[a^````\_`_aa`^^b__]]_^b]``^\aa]`]a_Ya`b^``c`\[a]Tb_[a^_^\`__[]^`a^W^aab_`_d^aa_b\a^`^\[_`]`]`ab`\_a_^aab`b_d\cce]ggfcd``\bbc__\a^_ah_`bd_acb]\_aZ^a^c^`agacbe`e`ddda`_cf]adddab`c``cdab]`^e`\`a_]^ad_d^_``^]ddeZ[_da^Z_c`bda`gc_]]^```a```_c`^_`_ba^_^^b]]e`b^^ad]^a^`baaa_d``b`]_`ac`g`]cf^`ace`\dade]\]_`ea[cb^\]ab_`_e^\a``e^bd`d`c`_c]dhi^``d^c_]_`c]`]^\e``bbga^`^^cdbac`a`^^^^b^]e^^aaX`c]`c]\^cda_^b^\b^\`^^aa`ca^`\^eged_d_f_d]`_e_b]g]c_e]^d^_gba`^`bfba^`aa`\^bc`^Zb_^e`a^a\`ba\fg^a_a\[]Y`dab]_a^^_c]ba`bc_aca^acgba`abgg^a`_cd`aa^a]_a_bbacf```_acbfh^_^dc`b```bcZ]_`c^a^_]a`^Za]^fbcbac`c_ab]c^[\^`^aae]`^_]]aabbaa`eabce`_c`]\\_hga`_fdgda_fcb_`bbddb`f`cb_aa_b^a_b_cb^b`]ab^`^]^ea``bb__c^de`a_`acaaa_c`]_`a`]`b]cc`dbaaac_^`a^aae`a_a[b_i_\`]a^b_e]d`db_ic^`c]adac`cb`b]_d\_f_]ca_bb_b_caaa]^^c\`ac`a^dcca_]]ba_d]\c__b`e^ba\`abc_]``[g_bbbbddb^b``^g``b^`_aa^`a^^ah`_dc^c`_bb]be_]_abe__b_cbe`]bbdc_^c]_b`b\^_ca_b^adb^\`e^]f_`_^a`c`b_b\b_]_^d[]^`d]_]a`__`a`bccbb^]`]^egbd]a]abbd_bce__]\baacd]c_]a_`]\a_`a^ba`_a_^g``]df]]`___c^d_]`ca`a__`db`_c`\e^`c^^a_]\abadhda`bceb_b``_]bbje^a`df^bb]`ad`^aadbfb_`dbca___g`cg`Zfbea^]`b]e_e_cbifa\c_ab[adebb``a^bae^da__]`aa`\b_a]]eb_cacacbde`_``b\___b^b`]_bcabbh^dca`c_a`\c]`^`^ddb_^bfe_dZea_cd`b^`bda_c^^^c`fdecaaa`^bcb]`c`_^]cd_bhd_aba``h``_\aa`_c__ed`e_\[_bbcaac`_]dca]_a_bd]`bb^_^c`aaeb`d^`ac`c`ae_a`_cdbb`jba]\]e_da]^__ba_bb`_ca_bf[d_ddba]ag^ced]aab^_abfde]bbfac__`_\\`d`b_`aa_Z``b``b^]`f^__]`_]cad]fc_]`d`bad_^^_Z]]a_aa`\d_`aba^]ab^`_b]b`b]]]\c]`bca_e`a`^`acd`b]bebc`a`]b`d_a]a_edec`^]d_^ac_dgad[ab^``a`cafab`a_`\^ead`cbe[a_^bg`ce_b]d`]a_ddbdb`cf`^h__b]a]aaf_``fce\^caebe]d]f^c]bbabdb_]ac^^Z\fa_`b^`]b^]h_^_badcccagce^_ef^`^_`cf_ab^]da_aec`]g`d^ccbfa_Zfd]^a`dca\\a`c^^dcaca`_d^`^_b[ga`_c_acc\]]]a]fd^ab^`_]_]abdiab\`c_cb`a`df_eg^`_ac^``_b^cabcb^da[^a`bb]be\_abcc_`_`dacb[]ffabb_acb`_bb`^b`a_a[bfd]g`cc`ai^bbag`abb`^b_c__b`c_ac^a_ccb_b_ba^cb_da^^cb]f`cfc[]ecaabg^^dd`_a^b`Zbcb_a`aaaebc`f_``ce`cZa`^d\a]\]^b_cb^ege]]_a]b_cba^b]b`]daf^`a[`eff_c`b^`^__b^^^``f_`c``baa\`beed`c_`ac_`]`^^]`^``a^_ed]\a_c`_`db\a_`c_d``e``ab`bcc\`c__``^`^a`ab`bbc_a_]a^_][^_ccgabb]a\`aab__cc^^a]_]]]c]f_c^a]a`_`a^_ab^caac_^cga]k]`_fe^_e^`ik_a]a^``ba___`ab^cf_`]bac^]_[^g`\^f^e\\]a]`_`a`_^a_b`bdbdeecf_aab`^\da`a^^]^\c`]^a`c\^a`[_f^`bbYb__`__gbd^c^`b]ac`e^_^^_`__c^chbcd`a]ccgfba^_`_aa_e^afb```d^c`bad[^^`\b^f_ae`_daccca`c`adcb^_^_da]``eb_[`abd_cbg^`^`a``]b`a]e`bgec]_bcdbe_ae]dcd`d^_]ef^`\abe^g_``da^a_dd_]dcab]^]_dfbbb\^c_a`e\^baabc`a]ccbd[b]_bb_\`d[dd___acieca\_bf``_^be^g[d`cad_`fbZbZccgadbbd^\_a`c_]b`c[e_a`eed_`bb[]b\b_`a\`a`d`^baZa]]d^_^\bZ^]`g\`bccb^```addc`cca]_a`_`\_dede^cbbfdb_^\c`bdggc^^c_cabab^b[e`bc`aac_bac^\d_d_c_bca`abab_ca[b^c_]dd^b^`_d]c\_ac^aebd^`^`\_`acba`bb^`a`^d`ac`eae^e`cc`^``bd^_``]_^baf[_db`f_cdaaba_c^`acbb^f_^`beabbac^eeb`db`^_a^ebb_ab_adbbae\aZbadf]bhc`_]daa]cd`[db`e^eab^```]bb_\a^_accbda[]aa`b_b``d___Z_\aaaa_]`]a^a[b]dba``cc^`b]a_caacd_ef]`db`a\``e_]a^_fbdd]ad]``cbb_g^_c`^_a`eZb\d]d`acg]^`\f]b_`bj^`b^fYa]`]^b`aZ_]]`c`]d`f^b\`abb_]\^`^a`c]fcb`_bb^aac^ccafeb^_^cb`_`^b\`ab^_a\`aaba`ad_`^de]a_bec`a_`daaaa_]hb``_ddb[]c]\dhd]]]`a]]_db\`bac[ga^^ad__a_`^_]_dc_X[a_ca`a```^`c_`]Y`]``]dba_\^`d]a[\cdc^``^`\a`^c`d^]`cba^]^_X^`a\f_`__Z[`ce]b]b__`\`cca_f^bfba]\_^`_ae_`]]_abc`d`b`^ffc_dc`]][bb_d_g\^__`a`\``^]_[^a[ea_a]__bb_b_a__`[^b`b[a_`e``_]`ca_bce_^g^`_dec_^b\^a[a__a^^_aeb_[febcZ_b]daac_a_acda_Zb`c_[[_[]a]\b[a]^^_c__]_`_]^ccc^b_fb[cd`^ae_ceb_`ac^_\\dcaaa_b\_``c[^__]b_`c_bc_[dabd]c]a`b_Yde]a^a_^`d\^b`^]a`]]a^baa_]ac_ac_b^^e`b_]]cYad[bbf\ba`e``\cU`_^b^]a__]fead`a\\[\[a]b]`bb``c_a\b``_^_`_adad\b^^a^f```^c^Y`cWaa^`^_a`f]_]_b__da\ba_^\_\[ba]a^_\`eb``bcb\`d`c_`c`fe___\b]bacaf[cc`_a]Z\ceae`adba^fcdfa^e\ab`f]caacd^`b]d_Yc_b__d]]a_c^^c_^b`cb__adcc_f`]b[b`__cf_^h`b^f_cg^c__cfca^``faZb`da^`a\ae_`aa`aacc_b\f^aa_dacab]_``gbc`bc^a`id_^^`c^a^^cb^]ed`^ea`^a_fe`d_bd_a`_ca`_ab^c^_dk_dd``]^___d_`_a]c_\ae^^dbaba`\a___\a\]j`e`]_]f_`^_`_]a_c^a__b_caaa]`cc]baa_\]f]a`debeacb`b_^baaae`^a]_[aba`abba\`^fbe^`_d^e_^_`bcb`^\fbb`eb^c_`af]_f_bdb\_`_f]^^acb^_b`b_c]_``[b_^ca^b`^ahd^^ebc_`c`b^b_aea`ba`baedag__]d`a]_`i_`[_b^b__acc`bcb\eaab``]b`[be`^ac]__aac^eab\ae`dbefa]aaddcab\]bca__`]ecd^ebb]ab___aa[b`a_c]\cb`f``bd_^]e`bd][_a`c`ed_aad`\dcaeddc_[_fa`eabb`_babdabb`bbc^`a`]_^_c`^_^ba`[c`^_Y^e`[_]]dbbaa`a_d]d`^`c__a_d`a^ahf[^`\c`_^a`__^__^e_bd`_cbbb`caca^ad`ac[bcc^`_agbc`\^ddaZcaacbb_agec[a`c[__]a]_]_^]bb^`]`^cbc]f\]a`ba`a]bca_a^a]c]`cabbc`c]_cb__edcbfb_^^`_c^b]`ha_acafb`baa_]`b^a[d_`]a\^b_aag_b`^^^eg_``c_d``abd``\cda_`^d_c```l_ed^aa^bbd`c]`bb^`\b__\e`_bd\ag_dc_aba^ef^__^_]a_b\^_b_b`ad]__^c]bc`^baabdaa]bede_``ac``cb__]^_a`b]_bcc^^c^dede__f_ac]^a^a`^^`^_d]^a^^`d^`a^^c\a^`a`^ba^_``]a_`b``a_`c_bb`_a___[``bb]ca`]\c`_^\babb`b^b_a^a^^^dd``cb_c[ac^b\d`b_`\\^_d`bdb_]c__]a^f_be]_c_^[aZ\ba_ba`]bbafeb`c`bb^a_^\a^\]d^^]_f]^b_a_]`^\`b`bceeaa`abae`b_cadeaag_]b\bcc^\^`_c`_c]b^^^^dad_bdaeba^]__a`_g`aac_^__\ecac_d``a_ba^`b_]_a^a__^`_bdbf[]aa^]b`_\``^b]`\`_]\cbba^b^ecc`abaa\^^``aa]_c`b\ac]\^ac`a^gca\`a`_aa``faa\c`_a_^b_`c^febc\beae_Zea`e^`c`^a^``^`^]aedd`afd]_ed__bca_ddb_ec_c__`]\`__a]^cac^^^__`_]_dacb`^b`c`c^^b^a`]b^cd^a_eb_^\```][a[g^`c^c]`ba^cc`^]]bbd]b`\`bacca^_^bb[\b\]a_^`c\]bccbeb`\c`[_ccaa\bbad]b_deYeb`^b_a^_c[b]d`Zc]b____cbcaaab_db^a_ed_^ea\_\efdaca_a`g\`]\f^`_`bb`]^adcb_ca_e^Z`d^ab`_bf^_\^fbb__]`b^bZ_a[b^_ab_a]a]]`_^\_]^\cda\[a`]_b]`]_ebd`[`c\aaa^d`a`e^`]f^`de`b`a_eac__f^_^h``bb]`bac[de`^\cad_\df`g^fa[]^^a`_chbb]cchb]]babb]c^acai__a^cag^___`cb[Y\]f[c^d__cb\d`a_acc]g`ac_bcb[[cbbbaZ`]cb_b]_^\d^c`\e`_baZa\aca``a^[^Zb^__^_`bYa``eb_cbaaa`c`a^a`fe^^\_d_bea_a_b_^c^_^a`_`aa`e_\`]d_beb`^a_``]b^ecc_dd`ab`gaa`_a_`kadb]^b`b_^h_aa`b`b`fa^^\^_cbaaa__db_ced^df`\bd^^^^b]]ef`da__ccababa`a`a`b`e__aa]bd`c^^d]___abch`dh`[cq^_d^`]]]^`^eb`becZ_`bc`ab^]b_dda^`ac_ad`c`aba``cb^ccec\^^d_c_eaadc_a[]`d_^c``_`e`cbe`accdbbb`aeb]abe\cbdeafc``_`\^bb]_acfd^c``bbd_^_dcaa_ebbc^`bef`f]`^ccfba_``a`c`bbb_a`b\cecc]_aba^cbbafagb`a]^aab_dabfcce_ad``dbcbda_`a]e`b^abkcc_b_a]`c]d\b]hdaec``ba_aeai`]`eb^e_e`_abd`_bacf\cdb``^`^cca^caa__ccb`\cdc`b^a^eceb``a]cb[``dfbb\b^a]`_`e]_`a\d^d\a[bc``_clf^_[b_dcc^g_`]`d^ba\bc^ed``bc_b__aabb]ccaebee_acj_bd````abbf^c_]bbZ]c^a]`ea_b_`^]aaecbb\_dadbbac_aaccbb^``[c`dcbe_dgb`f`agcd`_c`aci`a^a]c^b]e_\a`]aachcde_^``_c]_a^fabaccce`\Z`\bb]`c^b`b`cc_g`a`adebc`ea`ea^caefdbc^c\dc\d`abecdcccabaad_]_d^dad`bbhabf`d`^ccb`_b``a]a```_aaaZ^_c^`ba`ba_caa_c^c`aa^_c]e\^ab]a^a`aaa]``ab`^^`aadb]_cb_e``a^db`baag]`^d]c_c\`^b]_a_b`aac^_bc__ed```_cbca`b\_b]^```]_Zb`f`a^daa^`a``bd]_d_fc^e_^feg```acab\cbeaabai\a^``ab^bbaeac_^``gZ]adac`b]^bbd_acd_``abba`_]ccaa`_\bcb_^b_ea[ba`h_cjb_ba_fddea``]acabaed_aeb\a___`dd_ge\``abd^_beea]b]cf^`f^_eb`eba_]i^cbbb_``^eec^^dedb_bb]bea^^\_aaacc^cd_]]`^d`bda`ba_e\b_acdcb`_cb`bdfecb\^bb`]`c[_c_b`baaacf^dd^fdcgb\dd\c_b`_cf``acabcgd]_ae`adbb^]_`b_`d^_bZ`b_ae\\a]a^b_`_^`faccbd\^\b`_d_]^`^_c`_a]e^dd]^a^bb``^b]aa\_a`aaaa_^_a]b_ecccd\[g_b]^c_bbb^bb`]a]```baia^d_`b]d^bb``b`aa]gcc`_`d`acd_^`___cca`cfdib\bc\`abc_]c__ab^daa]`aba_bd`a_ae]]da^c^cg_c^`]\[ab^a``ac_``^__h]]c^b^]d_e^][bb`^d]^a^_c`]^`a]__dd``e_a```^b`ee`_b^bf^ad^]d]f^b`]_`ad```]ba_^`cb]d``_c[a]cfa[__b_baa^^`^]^`[```ba`^^acb`f]ck_d^]^f^cba_bad`a\g_cb^\b_fe_c\ab\a`cY^bb_a^``a`bbaj^ad\a_[ha[bbba__]bbcbe_a_cbcb_`bc^a_]a]_eb`dh_dafc`]\]a^_b``d^ab\e^_]\baebb`ccbc_``Zb`gca\\`bcdh^`]\^`ac^d`a__b^^cea`hbe^\cd]`c`ca_ae`]ea`^bb[``beadh_d^`_b`]f\aed`\]ca`^f]c\bbaba`_b_a_c__bedf^^d_`bb`]ec^^_]da_ea[^bc_ag]ec]`a^Y`^`^^__cZhea_a^^aab`_\``]`ea`^]bcU]`d\`cYb`_c[bb]a_]Ycbdfbe`eW^c^[c`adfc_\\]_^``a]d_b`dbZ\_\^ab\a_Yffaf``][^Z[^b_^_``]]e[`aa_\ibc_i^^`[ca`b__Ta^_bh^[ba`\f]][^`ba^`]cW^`[]``]Yc^]_a\a_a`e_][]\d_^_a``_]^_]daca`__`Z\`[]c^c_Z`b[ha_^bc^a\ad_e`aaa\___]e^^g``__fabd`bb]b_\e\^_`eY`]^eb]b_Ydf[df^]]a^aab]dZbeZ`aada\d\da_Yae]\`^^c]ca`\dcc`ba\Zca`aad\d]^`ca`da^f^`cgb^g]b\___^]aa^cd^]\]aa`d\`[^bb]c]aaaddb^d`^__Zh\`_]d^d]c]a_`bea`^_^cb_a_a`ba``^eia_bdc_ad\^_a\\c\b\___adbb__ca`\c`ba`\`]_Zbb]b_c`_\^_Zc]Ycd__d^aac^e]]c^`eZ[]eabd\__eb\fd``\b`baabb]^]c]_`]a_b]`_e^aca^`^c``]ea_]\ba``\_daadc_^]d_ab]^aa_\^]ebdbZaec_c_a]ba]_bababcd^]``[bb`aa_`_eY_dc_ab_c`^a^__d]^`\ac\]a_^b``a^_]daaef\^_[^^adb_b_`a_a`cb\[\^a^ac]^__`^`c[]^bbcccea\_`^``e^c_^_ab]]^Zac___^a]a_[_e]_b_```_[a^ca`^aa_e`a_]]``]d__e_`b]bcac`]`a[`_a`\abe_a^_ac]`ac[d^cdae[bc``a`_^bcb`\]_`\^eb\`_b^ba`_]_]`f^aca_`aa__\cc^a\a_^d]^^d]a_ecd]c_cc`c^^baa^\ba[_]ae``^ada`cd_b[`b_]`^`bafb\hae_b`^beb]cb_bbbba\_da\ca_a_]cb`d^\b^]c``bab`_e`_cYe`_\ba_`ae`ibf``^\`_ib`_`e^bf]a_b_[`a[^^\_]af_^[d_ecdba^c[__e`aa^cb\\_Zaf`c^_cWbe`_]e^[c_e^cfdba``ab`bd_c^^cb[^_]`dc`Zbb`^[a]\_d`i^^a]bcc^ac^b]]`e`^b[be^_bed`]`__ac^ec`a\ead__d`acc_a``be`bdb_dcbccbd_d^]\_caZee^ab^e`cac_\_dg]]```bc^a`_b^a`]e^dccfabd`a``bb_\c_d_`_bdbaeb[ba`_`_[__[c]^^_^`[_caa__d`b^c`c]]\][bd]_c_bb_]f]d`f`d`]^[]bbabde`c`^`ae[c__`\]d^][]`a^a`bcbeab`_aa_a`a[fh^\a`_ab`e\^aec]b``bb^g[d_baa^\b`cdf_^_aaaabah`cfd^cb`ac_^cfehcd_c`__eb]e^cbb`cce^bbda`ad^d^cdi`^_eb]``_aff^Yc``hb^^^^]_be`c^_]]bb]bd```c`aab`^a]b`_hc`_g_^cae]ca^^igeb][cb_daaah^ca__b`[`a_``b]^bd]eadbb_ac]dab^^`c^begca_da^`^`_^ca^hb`dahd`_dd^cc_\b_cc\bc]_^c`]abcab_b``c^]`___bb\a`_d`a]ca^^ea`\a`abea_]^\ccba\c`]^fce^_a`i`^\_af`g_eaa^gcc]`]a^`c`]abb`Zg]`aa^_eaaa_c[[bceddbcc`da]b`e`b`ffeac]`d`_e__f__ab^bac`dc\]__`^e^b``d`__bb_da_ab___^cc``hb`a^aa`]cfaaafac[^e_dbba_]ae_a``a_dddb^a]\`fb^b^]]_`baa_]^e_\a^acY^ac_g_^\c`ac`c__ec__]d_``c``_b]bfbb`a`ead`]`d^`_^cc`i___e_d^__`_ha``^c_a`^bZ``_g_`fa`bb]a\bd_c]a^fc`baa`da^_dd\db^^]dY\e`_]b``c`]\eag`]aa]^^_`]``^\a`^^ce_abbda\]^[`_]b]_]_b`adebehdcYfcd]\b`c``_da``ada]a^`dae^b^a^aaf]_cc^ad]c^`_aa`^[bb\a^\_]_deca```]__b_`e`cd_`ababcbb]`b`_]`d`dc`aab^_ad`_[ae``d````]b^a]_aacb_`_cace`ebad`_^aZa_d]_`dc_^bbe\e_c`]ce_^b__`_a\e_ef`aacb_abebb^_]_^cb^`db\`^^b`g_^]afd_[h`][bcaY^p[[[Zb`ddabcb_db`[b^ba`__bb[da\iecZ`ca_aadaeefd_^`_\f`_]eadfb`bb]ddab]^_]_bbcaa^a^a_ebcb_a`]abd`]dab__d[\a_b_aacaae_eahfa`_aa^__ab`a`]a_a]`_c`^]^^`b]bda[]b]`gbb__^`_aac`^]cba_]^b_bca_babc_c`^b_a^^_d^fb`e`^ee\f^^acc`\b]\c[_eb_`^b]`d^ba\^a]_adg`^_^a\`b`cb`b\`d^`^`d][dccfbbc`Z_f`[]]baeaa`a]cc_bbb`^`dcd``_`_b_dX_d^`^ca\h`bcdac]^d`d^]Z^`a]aa^`a`^[d^[ab`e_ab^e`_^f_``^abaf_cb``db_\^X^]]c`^\`]b_a^ad`_^`gd^^faa_]daa`d]]_`]`pab^``c`_aa\`aa]cce]^`ae]d\^_ad`_adead`^`]^_`_`aa`d]aha^e]e`]]`^_``_aebbb_jbc`df_^`c_cac]`^]a__ac_`dcb`bac]_``f_`d_`e^\b`ab`bdca__cea``_]]bfbafd^`bb__^cYb]_bcaca_bd]cad^^b``cdjb^id``aca`]cd`gc^b][_`ac`_ba_]^ab`^_bd`\\b_ai_b_fbba]]^`]d`_]`]]]dd_f``]bg^_g]\^`i]e\c`\c`^_hbd`c`_`gd]daa^Z\a__`a_ae_dab``b]ad][aa]^_\ba[`bcab_a`^afan_^bab`]b_a_daeca^c]_aga_`a_]_]c^a`feb]_f\_]c]ba`edb`_Z_c`e^be`b`c]`e`dgb\^cf^`\eaZ___d]b_fca__`e_]c][cfe`\ab``ch_^`k[_b_bae`bada^ae`^da^`deeb^da^]a^]ceea^[ab^ag_a_`_^]]^a[\ffb^b`^acb_ddbbf`a`_e_c^gaa_\_j`baed_\``dda`dg_a`c^gcbc^\_b[]fala`^_e_la`ab`be_ca_a_hcba`\`]\a^dYbfa]_\d]d_[f]e[[`b\^`be_Z^^g_`[`\]`cg_a^baaeb]_^ecb``agbc`aa`^[_eeb_a]g^fcbba^`a^cdaa\]ccabb]`]^b``__d_]g^dachdbf``Ydda_d`fa`a`dbb__dmc]`b``caaae_`]e]_fb^_]`acd_deacaebc^^a`aagf`ha`cig_heb`\bf_]]caa_a^a_daeh`cfb^^_b_`^a^md`]bf]d`_be]a`_a^`_]_]``bdd[b\e_b^_\bdak`__gbd\jch`^`]bbb`^__abab_cad^bc`c_]`X``]`cb_c]`[_e\_accbda_]_c\e]aY[a_`_^dc_b`_baa_aabfbc]bcaca__ca`e_`becc``bZ^c_`caf_bea^`_b]`\bdae`^c_a^`g_^gb]`d^dabbb`^eb`ad]`c^_d`f`ba]^[[_ba\c^`b`a_`aaa`b_c^deb]_d[ab`_bcdbdca_^`bc`_`g]^bd]`[cd^]a^^ab]bc]d`acb]``_`h^]^^d]b]c`e^faa_^aa]f\_`]``d_]ca_`eedbce[_ef_c^^\``b^f]cb_`[dc^_bcbaa\db_]__ac```ecbc_bba``^ab\`aa^]f_^d_^[b\```_aabc_faba]eabb]bb]afb`aa`\dd_d^b_c_`]__a\`e_`bbd_h_b_b[a`fabc]cab_c_`d_]```__cdY_]^^`]bbcb_a_be`^baaZ__c^^a]_]b`^beccb`b^cb_`ab_`a\ae_dZbab]a`_^a^aa_b``ab`[cb^`eca_ba`baa`aaa`defc_^a__eaa`ab[e\]_]]_`__`ccb`c`aa_``e]`bae^b`d__b`^[cba`ad`cc^b\eb`c_ad`aa`eb^]\b`c^f_b`d_d_ca`_]]]_`caa^[_^afaab^[[_e[a^`_d^a^ab\`^b][Zd_bcfa``bcc`_`a_d_b^a_`fX`\\]`b_a]d___aac`cfYdaf`]_c]`^`d^\^`d\aba]b_cb\`^]c`e`]`]acc^ceb\^[`__a`bbbaddaedea[_]`c_b_c]caZaaZ^e\]`ab]a\_e````b_`^_bb`g]`dbb_^_ae^^b`a]]a`db\bebad^ca`]d^d`caa]fc^`deb]adbb`a][[bhfe\a_d_`aYa]__]]a^]c_baacb[^b^e`cb`_ac]ca_a]aaa`aaabd^acb^__c_abb`c_`cdcdaaedbe_cbacfc^^add\Yb__bb`cf_fiacc`e``a`ac`ca[b`d]a_ad`_c_g]c`\fa]]bZc`a_]d``]ae_\b_b_ace^da^cace`fb]``aaib`_e`aa_bb]e^_hcabbaab\]a_c_df__```^ba\_^`c_gbb^baca\^\a_a_a^`afdcaad`bbb`_a`a`b``bdda^`^^[_`c`aa`^c`]afaaeaad^`cba```_`f`bbbe]gc__a^b`b^fcd_\b``Y^c^aa`][c_d^_^d^bc_]c___b_`^`___]^`b``^_fc]cccb]a]^a`eaaabaab`^``\^^a`acac]f`]^acbacdif_ac_baae`b`^]dbbba]_Za`_a_d`dacZb_`ca\aab_bbf^^`_^_f^_`^]`ad``bdbc_`d^c`aabaccc]b_bca]`^edaa_b_b_``b`_jbaada^]ccabc`f___cbccb_\^aa_c__]fdba`_ieb__cb`]aad_bd^a`h^b`da_c`a`^b^b^b^c]\a`ca_dabcac^`^ba`bfg^^^`abacac`^bac^ea`b^c`_\_^d`b`_cab_c]a``cd_c`bbbc]`b_bb_^`^]b^fd`cbabc^d`ac_`bc_a^ga`]a`cd^__`e^_\e_dac_`bcc]`c`_aiab`_d_`cbcdd_ad`b^`ec``_da`]`a_``_hcb`c^d_b]`bc_`f^c^a]c^_a]`ba]aab`a`b\a_c`b^`_bc^dd^_Z_a]gfa`c``ad^_aa`]a^`ab_`^ecd^\_b`b`^h`^f]`cbb_de]bebdcab_]ka^db`_`bd_daahabb``a`caba^afaa`kb`[d^a_b^_aagdb``ebbbb`_```adcbce]]cc\^b[d`[b`a_bdg^ccac_^b\ab]_`i^`\b\ach_bab^d]aeca]^_fabc^a_bda`ba`f\d]da^cdb^_]``afc_k_cb_a]b_cbb_bc_df_c_a_Za`]_`be]_`b^_`ac]aec`fc_ba`bb`caa\^b^aa^`daa_ab^c^da^_bdaead`ae[debabb^_d_adbbd_cb`b_a`]_^^be^c`bfab_f\fd]__`]e]^c`bb_\c^afbdcfaebb`]c]abbd_^`]bd]abcc`[aead^^``e`b^cbb]da\d\e]c_b`g_^__ggg[abce^a^beb`^c\_fa_bcc_^ac^ac`cbdd_a^bba_a^`\a_`_ac_dc`e^_a_^^b``ebf\`dbc`baaaa`___b^ddX]\`a_afb__^_^cd_`bbb_g]^`aa]b_abb^`ecZ_`^c`_cfe`^`b``bcl```^`]cf^\ca__b`bb^`_c`cb`b_`\`_e`_`b``ac\daf_aaac_^c`c^_ah[`^dddbba`chc^]fa`[d`c^ca`b^[]aa``ecf_a_^b__c`_^_\a_ab^cbb___g_a\c[_]^e_^^_a^gbacaae`a]c]dc_a]]daiaa^b^a_`_b_^\c^b_g_`c^``dcc`_]d``c_c__a]_b^kf]cf^__]^_d]`a^gcd]abb_^eaa`^ba^ag\aae`a`_b]_```]ab`ha_f_b[__cce_]g`e``_eeb_d]de_aaaaa``^_a`bacb`ed^ea]ca]db_acd]d`_`d`b`a`_`edbacad]\_``c`e[b``ba\a]bcaab\\``_`a_]`ec_bbc\ca`\c`b\b`caa^cbcee_``dcdaca^d^fbbb`a_e]cc_c]\a_faea^c]_`b_ccabdcbe`ba][\`_afb]a_eda]a`^^^__db``caa_a^bceaaaba_`\d__c^X]bbc^_b^[ccga`^bbb_`bd_d_^`]`cbdab```^b_dc_]c]a]a^`b_a__a`b`\cfbead^abab]d_`\b__gga_c`bcbab`caeabba`_ebbdbc\^ddaaddda_e_ab\bi`]c_Zcd^`b__`a`^e^da_^bbb`c^c__b_^`aa_d`][\aa```b^adb_bb]bed_d\_^b`\_a_c`abbY_b`b_f_]c_c`_cd`caad`]]__a\^f`febec^ef`[abad``_`abjbbaa^\_`a`^_a_a_[_d][]`afbedddafdd`c`efd__aa`e]aa`hd`ac[`_Ycaaa_^[`acca]a^bb^dgac_bd_ca^aac^[c_a\a_a_^a]cc_h^a^^ae`cc_`_e][c`\__a_d`^``b___b`^[egded\`fdbbfc^__^b^_a__f]a^[a_daZ_b`aacd_aac\_^b[cca__cdfbbaW_`c`]a_c_fa^`c^\aa`_\\^a^_cdabd]f\f\aaaa_`_e[`]l]]aa_^`_cca]`bda^`b__`ga``]ibe]Zb_caee_bh^]b^ad]d_]da_aa\dbf`da^]cci\a`^a]`^\g]`^_`d_]^\]e`b__`ae^__\_\^^_ebb]aehabccdb[__ejb]aeb^aaej``acaaZabd]Zba_acd`Z_]ab\f]^^^i]e]d]b`^fgae_eb_^][^`c`d]bea_]cd_``^b]ac_ab_ab_gf[d`b`^eaY_`g`a\c]`]aaa]^]`ccabea`cdeg_bY`cbdba\c`a_c^a^ifca`^Z\_`bbd_^`_b`\]alca^ab_g`^fac[_a`^d_``[]aacj]]b_aY`dd^_^`e]e__a`cb_cda_gchda_eaafa_e`eb_a__dc^ca_\`bbZaab\]``b_`ccaa\]`^d^ab__e_c__``[]^_gcga_f`\d_`ea`ec_b^badgai_a]a^bdbcf``fb\bebb]]b]_c^baZac`^cbad`ca^c_acba`^^`bba]d^c^`c`bc]e``_a_a`bbd`cb``b^`_dbbaa`\``b`b_^ea`]fbg_b^d`d_eb_]\b`d_aa_c_\^_ab^baa^\fa_]a^`b```]c[a`cagfab`caceaa`_]bc``^dY`]bbacbac`abf_b]decc]c`eeabgcaaih_`^`b``dc`a^_cac``gab`bbb\`abac`efe]cdc^bce[_acbd^^ddcafcc`cbac_^c^]_a_`ea``b`^`^d`cdc^e`bcdba^`]c^`_b__b`a_cae^`aiad`cade]cac`ae`bdibeb^_e_eec``]cbc`dbeec_^_c^\bd`aacgcaaa`c\__c_b^^fda^adbca^`bY\abb_]^_]``dg_`ga`[a_a```b^^bca`bcb`a^feeb\^b\f`d_^]^]bc`de^b`a^a_`f_a_f\`_a_bbfbe_^_c`__^`eb^_a`bccaade\acad^_bf_cd_ca_^__`bac^bgc^`^^cg_bX]_ddbb_caf_^^[`f``[]db`]^^]_^bb^ac[Za_`b_`d_`_`edecad`aee_d^f`bbeb^_aadf_c__b^`daaccae`a]g`_``_`baa]\^d`]b\`^baf^a_bf`b\afb^`_a``abbb_d_`d[_bch^bfa__`[^e``ba]ca^bf``ab_`^]^`edb``c_``^_^c``_b_ad]ab`_`a_aa_d`^_````gd_b_a_]_cd__abb]f_c^Zabe]^g``a^d]a_a`a^c``a`e^_^a_`aba`c`_^^_ab^a`^a^^\^ba``_ba_c^^`db[g`a^^a]a___ac^caha]bad[_^Z_f`a_`_ibca[ca^\a`aY`c`_efZ_ee]]]a^\e]`c]^bc`a^^ae_`\j`a`b_b_bb`b^a^^^e^a^_aee^`d^_`eaf^`[be\]j^_b]bc^^e^f_``\_d^_]a^d_cbdcgX```^_cc^_`_df^`e]bb^c_bgac`_acaaa^[__bbaca`a_^ca]`da^i_a^c__`_c\aa_ada`Z^`]X`b_bb^a^_\__^_\f_b\[]^\a`[a\cc[_[b`cd`]a\adebca`^\]e___c]^e`_\b_^_e[cabbbc]aa``\`_d]c_^dd`^ab_^[`\[]bega`e`b`^b`]Z^abf`^b_b]^cba`aaf^`^\cb]_a`_\`a`c]\``_^]bg`a]b^``e_]_^b_f]caa`bab[ad^]h[]ea_^_^bca_ca`a_[\cb^_bc]`cddac```_^ce`__kcbc`bac_g]ba^[abd_a^\e``]`^cabaac`^dige`adb_g_c_^Zcbd]`e`bbfb^hcda`^aaba]`ea_a^a^_b]b\gb_adbca_d_cdcaea_cac]\`[_`adbhbaf__^_Ybabgabeh^_aebc__aa`cdZ`_]g\a_^^aa^fa``_e`d]bc^a^c]]hadj_cgdea`]b[ad`^^_dc_^_^`ce``b`_`b]`]be`ba]__`a_^]acb`c^cc\_c_ac__`ae`bbdc`d`_^d^_\b[adde_ccei^`]`egdcdab``^h^d_caae]^abea`aaaa_afabb]acb`ec``^^`ee^_ae_^]c\`f^][Z``^bb_eab\__`aabeckag`]]a_c`aa^^a_^^a^cc_b\_g^[b^_^aabb^_\fcba[ea_b^c[]Z``ca_ebabacfh_bY`^ad[_]c`^_e^ab_`^^f^ad[^l^``h[bac_]`\_^_b``_caabb_b^][]]]^__cg_bge^c`eca_`c_`daacbad]___bdi]``bd^a`^bbZ`abc]`f^b_b^``^a`cfa_f]cbba```bha_a`fba`b``^]`_`\d`aaZa]Ycg`_bad_ala_`_ccc\_^_a_a^dc_af`a`c`_^cba_\___c__^b]]``[a_^]^\e\`b^`^]\[bb\__`]ffbcab]_a`ef_]_\_`dZ__^b^`ea]^g\[a`bi`__^`^\f]b`b\baa\]^_eea[a\]d``d\d_cc_e]bcficfbe`_e\aZ`a^_a`aaa_a`Za`a_afZ^cb``_a[b^]^a]gd]cY]``acd^^^caf_ba`f``ac`^a]ia]_aa`cb^]^a__`b^`ad`ba^c\^dgb`c^cad_edcd^ce]^`^`dcfccaa]d_b^baaa_e``ac`a^bb]^ec]a`b_a__]cb\a```eahcbc]ccb^a`a]ad_ef]_`bc]ab^dbg^ce[b_^^febf]b`a___^b_c`b^a^]^fZbdbae_[abab`a_c]cbaaf]aladZ_]_bbc`][`fa\\\f]a`^e]`ba\deba_dad_cc]bc^^a_adb`ddb[c^_\^`e_`ee^[d^^\a_`f`a_`c`c`^b`]ab^aedc`a``cb`hbg\ec^`b`_`^c_`d^]a_`gdb^eg^df]_c_ca^]b_`a^_bcca\b_cce__`c[bacaag]j^eba``_`f``bbca_]]ae___]cc`]_bbda_`a`e_e]bfa^^b]e]c]d^c`\dfb]d`^fce`cbac_acbadeca_caaa^f_\e`beZbb^bfa``_a]c`fbebeabcb_b^_`ea^c\b_c`_`bXbaf__\_^^cd\b]^af^b`ccca^aaa_g_adcb^dcb`[]a_b`bb\gee]b^[deadc``e]```b^e`d\g`e\fb_bbd__`a]ga^_cda^]ce`_]a``^`^__c^`aa[^bb^aeZabdad_`bbfe`^```[bde____c`__b__c_____^]`^^^c__[^a`cabca]a]b^`g[agcf`_db`_edded^add^``f^^_db_eacc]_^aac_b_cc^ha\bbc___]]^]e`dbca_`_a^c^^`c_[^bda`_hf`^eb`bbacc_^a\_d`[edY__a_b^]^_[c_Zag`bc\_]b_ab_ee^`aag`b^^__^c^``e_aab`b`^baabdbd_c\_ed\baba`^^`a_bac`eb]]bb]dbccb`\aa]`a_faaef_d[`bc^``_abbbd_^[_`b__^a\da_ba`___b`]ac`_cib_d^`bafb```a]e_`g`aaac`__ebd^c^c_aa`cba_Zbc]``_a]`b`^a]_^b_bbac`]d[^h^_d^^__]`_c``a]^baba\^cae`aZ^]`\ca_^`]__`aecgc^__dX_c_ba__da_ge^cca`]`a`b``]abda`\_ba]bb_kaa\b`gb^ba`]^^`a^bb`a`^b]`]aada]cd`]ababea^__`db_fad^ecc^ab_`^ba]_gbb^\b`^b`^^_bc_c_cbcab`__c^^aaeb_abfb`bba`_]abagbbfb\ec`]c`^bb]^``ba^aea`^abac_dad^dg_`c^fc_]`h\``Z_f^a_b`]ca]cf]a^aaca``^a`[a_`]caaad__c^c]bdbda`cbb]cee_b`_`a^bb^``d\____aZd_b^__aa^`a_^c^^aca_a_``d`dd]a`````ccg`cc]b``e]]_d`_c`]^db`cceei`_``eeac^_bbfd_bac^^^a^_cd`aaaa`bb^_^]c```ca^^b]]bc^\ae``b]h^ac`b^aeccab[bdab_a`db]aa^abababd]deebccba_c^dce`agcde_ac`]Zaa_`b```_a_ab^i]`^be^_c]da^adaae]a`bbcbg__b`ca`c^`b]`ea^_`cff]ca`a``c^ebdca]ah^a`a]^]_b^b[``ccdb^`cd^ed`eagba__aa_g]_d^abdbac_d`_[fe\^ba`bb^dea^a`a`ae]\bafb\e`^_]a_[daca`^_ag`\`abb^a\c`ba_a`b^cb`]bbedb^`]bcd`^^_d^a^aacbba]_]_aa`ccd`bac``acb]_`bg_`a`c__c`_cb]_`^c^``baa_a_e]ac^ac__be_b``^j_a_`e]cbd^^]`]\_^ac`dje]`_a_bd_abcde\a_b^ae`bg]b\c_a`_dd\^cb^\``cc__g]^^]]a`b^\a`_babbd``abd_^^aa`[`]aci^`^`bb]ib^^`daeY^a^e\f^ad`bb]]d_bb_^f_^dcg`bdd]ca```e_aa^c_aab_`]`_c^c`_ac]\f_`___[_]_^^jbd`_^aa`^_cbi]^`g`_^a]cb`e_]cccd`_]_b``\^_^]cf^c_a`_edfe`ibaaab_Zd^dffca_^^`[ag`aZ^c^c^`^X`_ag_b_Ybi^c\^b`^\c``Yg_db^^ccYbdgb`abaa`c]faaa`a^c_`ab_c`^c_b]]a^edc\^`efb_b^_\c_fec_c`g``]\`\abf``b^a_a_e^`bb`_c_abbf][b`^^a^abda^^d^gdaaaa_b\_ed[_\d^]`a^aa__`_]\`f`bc_a]b\fbd_^d_bc`hfd`^aeafd_b`^]b^__^``^```abdahaae]ga`e`e]^_bb_abb__`b^e_^ac]cdab`d_a^_cbb_a[```bdd`gcc]``^ba_c__acda]^`db]^_]b^^cfaea`c`bb__ab_c`c`aa]eb`^^``ac``aa`_^d`]cad`deb`^^Ybae]_^]_f`cdca``a`]`fc``abb^c``^g_]a`^f][b_ddcbaZ]bd\^_cbZ_bbb`\a^abfac\ccbaada`dab``^ac`aa\fjbdaaa`[`^^bcdaacf`b\c_^[bf`e^___^_^f_b]_`a_]aaic_`e`ae^]a^bed^_\cb_^_]d__]eada^ab__c`[``_ab_``c__]ac]baa`edb_bc___aa`aeadd^_^_]_c_g`aa``b]`aa^^^b`^`^bcb^_]d`^e^^d^^dbcb^aa``^``cb_d`dc_c]^d]b`]eg_``e^^\a_^\^fbab_a^caa^^c]cafabb^c]c`b``_^`a]^]ada`hbaecfa`\b`a`d`\a_a_]_aacaa^caa^a_c_`^]_bb_`abcadc`a_^`\aaa_`a_Z^]\d]]_e^cd_aea^cd]bYd_abacbabcbf\kb]gaaa`____c`c_beea_b`_e^`db^bba^]bXdcb_cdacdbdb_]c`[`bbbbg`c`bd_cbb^ac``^\aaacbc`aa__\b]a_^[b`bca\c^cc_egbb___`ba^`````a_e``c^b]d^_bdc_[^bdab`_g`_ebcca^f_c\dd^]`c^`a]c_^aac`ab`ca]d\^cbe]_b_adb^^_`^``Zfb\a^dadd]bc^_bd]ada``b]g`b`Z`_aa]ba``g\ad\`bda_]bah_a_d`beac`k]a`^d]ae^a_d_`aY]_a_e^bc]\fc`baabf]bcZdc\`]c^ad[_]c_bd`\__`db]_ba]`^b`a_cdg]]\dZcd``ac\babi`^`]cc]c`eacac^bb`_ae_fcaagabdcbaaadcaedaa]\^c^_\_e]b^g`\b__d_badbgbc`eeab\b`_]]`ab_f^gb_`^^dcda]a_bb`d^g\^b\`d\h^^a\d^\fdbba```cee\`afeba`fc]`\_^^__aa`_b^`bdbf`]g_a^^b^^cb_ac^gf^`[b`c]f[d_`_be_^\ad`ad_ccb_`^\^_ade_]^aaa]`gdc^]dddb_bf`da^`\dbcad[]_b`aba_dd_g`eca__^`]g`^a^_d`gd^dd_dda]]a`ca`cYbc_]___c\`db_b]]cc`b^_^`cZa^dbcabddZ_b`bd_^i]^ibb^a_[^`]gd]]_``\b\^`_b``dc`^]f`a]i_`_``a`fa`]ccc^cegfa_^acaa^e``ba`a``cea_dd]a]bcb__]bb`fgdd_a_^al^`ac_ba_d`_dc`]_]gcaa\^^d`bcd^`bd_^ci_a`b`e`a`fda]cgcb]^ab_`aa`a\bc`\`]]`n]]`aa^b_^``ecc`]dc]]]\bab_^f`bfa``b_`ac__gba]bcb`c_b_b_c`ad^\``^fefd`cc``hccccc_`b]`cfde_cd_a_dd]caaebaaZ`Z___`acg_d]`cc`a]d^agdabaee_ab\_idc_e^b`bafbc^acbec^_dcdabja^gaec`\[`a]`cda_e_[b_^bbdb^a^_b__ae`^ac^bjkc]aca_g`_^b`a^aba^abgb_`had\bd^``aacb``^d`bad]^^_bbcaea__idcc`b_g`bb^]c_`_da\``cadb^_fb_\^___caeaeca]dd_b\c]]b_afd]b[bcfb]cb``]c\g`a]`cfad^ad``^\^`\fha_ccb[a]`]b^_ca^cdba\_a_]d`dea^d_^[b`b^`_b[cb`i]_b^`b_cgabad___`]ea`ab_c]^^c`e`ib^^c_c^bahbba\bb___d_a``^cb`ea\abaceca^bb`cca^`]_]cd^f]`b`_\`af_a^_^_cdbbaacdb]]\d`]cc]bcc^^aa`ebbagacab_d`dd_f^^__bc_b__c\_e__c_a_b`g_^c^ba_c_cc^\cac_b`dbd`__dad]]]_dbbaacaa[^c^a__bbcbae[b^bd]^a^``\acdca^de_abf[_Yad^a_`^c`^\`_jed_ddc_e`_`b^abb_c_c`^_d]]^`b`_b]i_be_^g_aaZa_aba[b]^ab`_ea[e_add_c]]\af]\dda`Zea```\dc_\g^d`a`^_eaf[c^__c^^_`^g_\ae]`]_`gaa`g]`a_`_b_``e_^dedd_ccd]b\dcab_bd`^_^e\_]a]^f[]a]bce^^g`be_^eaf`b`\\cbad_efedgfa_\^d^`d`_`bg`[_d`_e]_a^]c^f`f`b_b^a_^^a^d^\db_\ac`caabda\ed^be^abd\aa_ba^ab_debfb]e`a]a]g[_dad]_fcbfa_a_b^\Zcbbdcaafa_aje`bbc`addabb_bd]^^^`a]a^_ed^]__a]_^e_efdac_a`[cc_^`b`]_g^^`_h``baeba`c\_``ee^agcbc`e`d`]d\]a_`^]d\^fda^][__^c_a`be`]aebc__\a`e^`d`a^^_aa_`[^^_]\acZ^e__`^d^_bda`b_c^bafhe`^d`_^c_c^bZf`aa_]^f^c_d]`a`]`^a^bfaa`_bbddig_^_dafdaba_b`adcedc`bdfbbdac]aj^c__]d^da`b`_^^a`baf_`a]b`a___\df]ecfZcdaZeea_a_akYgbebcecfia^dc][`]b``^hc^^h``\hb^ea__b]\a]e^bc^_e][b]a`_`_acaa^baabad^cidddfbXaa^_\_dcd_^e^`c]a]bb\e\a`c`e\`jabe_aaacbc_f`a``fb_cbda[ecaf_g_de`a``_ba\c^^^e`c_c`_bdecdadea^bd`cd_d^b`_bab^d`f`fbce_cd`cde_ed_^bd_acfb``e_`e_`chp^a^`nfc_cd_c\_c_```cfa`bbce_]hdod_bffbqhk``^eb^cb_``bd__ck]f`]]d`c`fdabcjddbgddadebcdiaccd[a`bfadeif]ffbc]`ddd`dah_^`a`edce^cbdfbaca]dYfbh`af``_``_ebcb\ae__a^ba`ca]`^_b_`^^b`c^fa``^^_b\a]_]a]_^d`b`___a^`a\c_e`gc``f^da_]cd]bae]]a_dc][ac^`dacd_a_d^dabcc`^]\dab]_`]`]^`\`^ad`ca_`\`c^acae]aa__`]a]]b^aa_aad_b```d`a_aie\_^]a_ba`^_d`g`c_cddf\ba^fcbab`^dcc^bceccf^a_^]a]c^```bbe`__`caa_g`ab^``a__`aa`bd_b^ccdba`cdc`^`a_b___b_a_^b^cbf_c``]^abd`_a]^a`_^]`c`e\\\^ca^^_c_b\``ac^bcabbb\^c]a`^__bddbahbbdj_b_b^`h_]]^]_a`a`\_]bcaa`Y_cba_ia\^]_aabbcba_bbe_ba]_eca``a_^e`_`_aa_bc]dd\aea\a`c`__ae``]bcaY_^]a_acdce`ba_`_caka`f\d`d_]^abff_`^`aabc`]^a_acfacda_ndc_bc[_b^`dce]]^ccb^a]e]gb]e___`^c_b]bb`_h[`d_bdfaeed_^f]^__^a\^^\\dbgd]^ab`___bcd`bad_a_`ac`cf]__^^`d_a^`bcb_h]^cbe_f_bb]__c]`d^gcacb^abc]bcc]_e`^abZccbbbab_\b^aca\\h`c`fac`bc_a_\db`ab_^aa`_\^fb^Wc`_b_dcb^caaa^bebbbbaa`[aba]mb`^^ba`bag]`^]ac`^ea]d_``ccb]adca_`bge_``]daha^^aacaea_b^^]]d_e^df_bbbfe`ea]dd^_\`^a]c]b_i\]`e[c^a`]\_b_^]d\a^`]^^``]bb_b]a_\\c_^``b_`_d`b``b```b_aaa_```_af]^cb`^bc`_ccbdc^\`b`aag\_a_`d]_dbf``ac`^dc_dfac___ci^^``bgca`c``bdacaae]e_`^ba\_bcab^_\\``abaab_d]d_cda`_ed``baYga\_bbi_^aedg]`bb``b]bhe`ad`fb^`]e^gab_]_b]_dcb_fdabfbfc_b^]^g__^`\ab^e`dc`ca_`e]ac`_c]cbbccc`c`d_ad^a^aaa[a]`ag^`]`cabed_d^d`ed`^Z`bh^cb^cfcb`db^`d^]^_edc_]bbbaa`]b]bb`f^dbb`ae^e_gd_`ddba]__^b]a`_a__b^`cad`^]`_bc_bd_dddbabe`e_f`__\aaaec^dcgacgb]a\`dcd^acd```d]ba`\ad_ab`^debccd^c`a``_c_`j`^i`efbde`d^g]c_bb_`caajd\]a``[bbeb^^a__e_be^ca\dha_]^g___b__Zce`d\da]\_c\[dbaafab_``baae]ad`bacdb]c_dc\]^db`]]aafc`beeZ`c]d]bbac[cd``da[cbkd_af]`\a__]^afdba_baa]```]caecdca_b`a^b``^_a`gb^dg_ab]]\_cbbbhcbbde`b`baab]`^^b^\d_b`c_]c`_bd`ag]aaa\d_]\cc^_dddbab]adebea\fi^f_`a_c^bb\]a`i_^\c`_bb`^`f``d_^d`ibg\b\^a^_a`a^addbf]_bf`a^`b`dc\e\adad__`_]a]a]_`_f^Zadedbbba_bb`b]abbdddccc__a`a\f^f^bcaa`a]eaeaec_^dc``ba^c`c_`__d^^^acd__fcbb]ba^_`a`^d``aaacc`b_ab`eaY_b]Y_^`a_``a_^]g__]_^_a]`^c_dZd]i\`b\]bb`fbg`]_``bba`dbfbdib^a``\`d_a_f^dc_aa`^ad_bc]afc`bbabgbbc^^cc_e``bb`Zaababdcdecb^de_]cbe`bagb^`deebZd_`_ae\f``b`a\`beZcb_\hbgcc_emah_dgfd\d`ebb]g^_aa_bcc^`^ca_`c_```ad`_\a`dbfe\c^]`a__ega^_^`baaa`_b`ga^^n_bad`ac]]`dag^_`beb_]_bbb_cb[^c]adb`][aad`fda`__ed`^`bccc`d^b`f^bfe]daacc^_bb^_be^^`^de]ca^ida]b_b^aagcb`f`d\`_cgad`af^]_]ba_chaba_ebeaa^fa`\f]d\`^_a^d`f]b__`_^a_]d_`b_`_faca^\acbafbb]h^`_f``dcb^`a_a`dbbfc`_`a__dcaajb`_ec^`_dYaadfZ^a_fa^da`a^`eiae]^[ac_\`feb``aa`^ba^fc]e_b]_d`^a^aa`_`^a]a_Y___a`_bbbc]b`acbkh`e`^cd`_`cb_^`_e``^^_^`d_bc]^\`\bd_^b_^decba`__i_]`_]__ai`_e_^^lcaahecd_c_^b`]b_g_]_a`]___Xdfbja`a_fa_bdcbb`_^`cdda`]^`Z]fbaebc_a``]ce^e__^_`ebaj^c^`[gb^d`_^_a[adca\``b`_`ddbabc_aeca`^b`e`_^b_bc`dccabaaad\_b^dba_ed`ccb^a`hc`^`c^baaebdc`cbc\_bb``_`^^cb^``abe_aba^bc^ab^^`b_c\_dbc_acbah_aba]\c_`_j_ead]deedad_bl]_^_`ab]c]bacab\^_ccf^cace_b[_ac`ae`b`b^bb_adc`_ea^bhe]a`_a\`_b`cc`^^cbabh_]`gd]^`d]]a]b`bc_b]]Zba`a^`cf]chba_^bdabb__e_`_ag`_`f^b`aaf]ae]b_b`_b^caea_bbe]]_e]f`e_`ga`_a__]_``d_^^a_`d_ab`c`ccc^^d_a]^a^ee`c[]bc\b\^__e[`^bc`^b````e]]faf`cab_f_fdf__^^ad`^a`]d^^bc]_aa_aed`c\cdc_`bc]^bba`edb`g^bZ]`aebbb_\e`_dbge\b`aaec^`ch__^c`^^__b_c^gbcc``c_ac]a`fdb`_b_`_eb`bea`_dae___``ac^``e^``d^[abad`_^]^^a_]d`^_^d]a``cc]^\`\^`ea^ac_`^b^`b_\_X\a^a`e`^bfZb[ccec]`^cbc`aa`b_`^Zcagebf``bc`^b`]]aa]d[b\c_b_``e^]c`a^bc^^a_a`\^__fea`^`cab`aa`d^a]`b_eb^^_^ec]Xa`a`^^a_]_cd_ba_b]``eb]ab^da_aa_`\a^^e_b`cccb^`_a_c`aaa`ac`h`__e_ba``]]b^abc``^^b`cccf^aaa_]c]_e^^dg_\c`^Zbac^`]`^cb`bfcd^c`gecbbc[_dcf^]]Zae__c`\a_```^^\Zdc`acf^_dd^_`ac`__be]aZ`^de[_]`]`d]``]aedefb`___`dc]a__\a^e_\_c^]bcaa_fd^^^c`cbdfcc^\_a_]a]`ca_be_a^f_aec^_\b[bae^_bacfaf]^]^[`]a_bb`c]`abdadbZb^_bZ^aZ^__c[b_b`]b_]^c``_^`b_`^deaa_c`^a\[b]`g`^`_`bee`fc_b^[aa_ac`[\^c`b``a_a^^cc]b\b`b^^cb_cYbb____baa`\afcdX`bh`_c_a_^bc`a\abc^]d^^\c\bd`^cfebcb_h_Zie_`_c^\]a_d`]`\b``b]_d\cb`acbc^\___g__b`b^`c\_abca`a_d[]b_ba`Zaaa_bh`c^a`cc`b`_b\]ba^aaa`^e_a]`bca`]a]\b_]aaceb_bf^_`_fZ_c_`]bdb`b^`_bcadde_`cea`cacba[d^`c]cZ_be_]]dc``dab^a^cab`_gc]d`a`a]eeh]_^[c````Z`^]caag_`baa_\dbcfde]_`^``a^^a[^bZc``c_b^e\b__a]c_c]dd_bba_]c`aaaaba^abda`a_c`cfcd]_`_c`ae`baha_b_b`^ld_db`a^_ahec`bb_^`c^c^ad]d^cd_Z]adeh_^`ac`_hba^bcaaac`ebbe]\`c^b`e`\`_fb_[be_``]]`e_ae\bcgd_Za`^a_bbb]akd_c]hbdee]c`b^\`a__`_cZ]dcb_[_^a`]abbc^`^]_a_`fab`bb``gd[^\gah`ea\_b_^ca^b``ebca]ccb^gb^beba`e^_\^\e`b_\be^hd]a]b``_ab`Z[cb`i_b^l_i_fdc_bd^`a^ae]_acfaheab^bdc`^fa`cb_^_d]b_b_eb_c``eb`cafb^]YfYd^ca`^^a__cbaefc^fa````__c_`^f^ca____aa_afda^dbf\da_\cad`a`e_]`b_b]cf_[bdZaafbdd^e`cba_baa_bdad^a^]ad][dia^abgccb`ab^c_fib\af```e`eba`ce^_aecb`\j`[b]ea`bZf`\e_`_`b`_`g_e`b]dgedhadgcaVb^ccfc`dg_`d\h^a]acg^ac`bb^`^c[aafbfccb^^fa_f^_^fa\^_ab\`^\ecafbdada\b]`\bd^bd`a[c`a_f^```^c``]]`adccc_^bdb_^h]f``aadbeeac^f_c_dda_^acbda_]d\acb_]a`b_`d^`_c[b_d^af_`a`cb]^`__d`^j`^_de_^`f]`aebc`_ca__d]e_a_^`]``]badbY_dc]_dff`bd`da^fcbd`b`]\`^_acabd]_cab_cedcb^_da_aebcb```g]_d_e^bcc]b_c`b`cc^hda__`gacc`c``_`ee`aabbb_cg_```__eb__`___\[c]^`_^f\ab``^baaa^__f^__`bc^_ac`cdab_c`__al_``a\^adda]c^gc_befagbbdcefbe_]`c_]^_ei\bbbm_`da]ca]b`]\acedc_gbg_g^e`a]``ciffgb`]ae_``a^alf\da^`]_[a_ddafcc_dd`be`adg^]cee^a_]`^bf_baa_^da^a^]_ic^hb]_b`^`^`]bcda`a[_gae^e`_\dbf^c\_Ze`a]aa`a^ea]]Z\ba\a_`_h`ba\h_`][]eaa__^aa_`a^]_c\_b__aa^`]\^\ff^aabbaaa]c`\\_^`a_ceaeZad]_```a_a_\a_b`c^\cae]`]bafd_c^a`^`_^adcbaa^bbib_^cc__d`a`c\d\`a`]g`d`]d]ac\^`he[aahdca`a^a`had^^^^_aa^]_]__[dZb___[bf]cb^e^]^bk]`baceb`b\f_\`b`[]cb^]a_\aafaacb_aa_`d[_fe[^`e\cbcc]b````_^b_c`ibcebd_\h^beab^a_ab`dch\_cid]ca^a_b`\ad_^^__\jcfc_\]^\`d]e`a_b^_i`a`_a``^`]`_debca]``ae]b]b_`_[a_^d]`a\caa^_aeb_dc__``^adcc^_bb^\_`__^`h`d`dd_ch^db`ghb`b_ecf_^_]dd^`ab_aa_f`]`aab^^_`cbd`b]_^`aca]__\c^dbd^a^`de`c`cac``adcab[`^``_dd]ea```ac_e_\^cb]ab^dd_c`bea``bd_f_hcd`^^cabbf_^b``ddcbd^c`_]d^cdc^abaa_ac^dafabb]a`]`f_]`a^_`]b__e__c_b^_efab_]_b]`_]b\cf_^`_ba_ba`ca`ae``b`^`_\ca`d_b[a^`g``a`cbcdii`c`_^__a]c`]]`e\cec`_[cb`bcb_]ddcd^ab\```b_c\f\a`]ccZeg`e\fa`a`ca`c_ed_ba`bbeaeh`ea``^cabcad\f``a_baeiad`bac_`db`b`baef`\bcc^^`madd`ddd^fcc`_dabbd^_`c`^cb^hce^c\bd__a]b_ca`c_^a_af]^eaa``_bcfbad`_`b^]d\ebace\daamb`^`da^]_d_e``dbb``ec_ccc_Yc`_a`__b_aacb_faac_aacc_]e`_bde[_eafa_d][^]_]_b^f^cZad`b^f]bd]`bd_c_\_]f]c^bb`da`ab_d`cb`d[`\b^`^_^db^]_c\aa[^^`^]^`f___]_f\`ac``b^caba`b^c]^``d^ad``cf^^fbef]c^_eab`]fbde`]c`b]a`bb^bcbbea`bb`caa_fbb``cbcacaa`d`a[bg_`f`d^_de_bdb_eb_]^_cd_bc_ee]`eda^ab`_c_a``d\`]^aa_a_^d`b^\ab[`_bdaf^a`]f`bc^a__b_^_`^bgb^c`b__]b^^accc^b__]_[ba`]\cc^`_`b_cc]_c^ab]dgaa^baa\`_^^_i_e_ca^b]ce`a_`ad^a_e^a]b`ab_b^_af^dd__b\ad``da`_]_`_a_fd]`]^^^bb[_a\`^[]_a`]`]e`__ab^ddb]^`d]`abahd]_aad^bac`aab^ae``_`daa[^`aeadba_aafb`a`_^a````b]`_`^aa`b^\^d_babe^\]b^d_b]_`bc^``a`cac`^bgf^ae_^\`b_^_acd`bc_``b`c_b_aaa`b]]`_^Yhbab]_be`ba]`feaaabaac`c^[aa]daacca__b_eZ_f]c_a`aebb^`bkaba]][]_`c`aaaeccb^_^e_c_ba`^b`^d^dbjfdeb^bccbbabe^c`aab``abcbchbfd_aa__^`_a\`^afc_c_dbc`d\_^_aabc_cebb\a_cc_a__bb^]\d`__^ac`b__`^d`af`\]a\`a`ea`^_\`_aaa`h][aba`\b__ba_d`e`_a]^ab]adadab````^_`a_cb^_]bb^ae\]_cba_`ada`a`Zbba\m^b]ba````cbaadbadb_a[a`cb]^]ca^`aaba`ba_]]^^_]_a[a^aca`_c]bbcb`aab`d`__\b^_`bba_a_ccc^ab_]a\_a^b_^e[`]ag^a^c^`aba[`]bbabdbb__aba^`e]_b]eadbf`__]_^a`__cdcaa`ba_[abka`babd_`]`^b]^`_]_aa`aa_bc``f`c_`bc`ab\aaaiec_e\gbabb_ad\`f^b^^ac]c^a`e`dca``a__`bb[bd`c`aaf^cdf_`_bZ`_e_ddacaac^_]bd\dbb`b^`^a_`bea^db\dac_b]]d`^_^c^^c``_Zebc_```\b`c`adab`_dchdba^a^_a`e^`^ca]cc`b_bagbca]^Z^_a_^_ba`_`___`bc`^caa\_^`^c`^c^d^^`ddcc`]c]^f`a`aba\ab_ca]dadece`_b^`ahda^c^^cbf]`c]``bf^ada]___^\`cd_daaa]a_]a_bcgeb^^`[^Wda^_e``^bdb]ea_]^___`\_`de^cb_ebc_c^`baa^^^_db_`bbdb[b```aa`]\b__a`b]_`_c]``c]__]dac`_]_ac]^a]b`^ee__bcce\a^c[acac]e`_bd___fhg]`_`aa^]`fb^abf_e`__`bab\_d`b^`a_]^db]``a`]c^`_beagbbe_a\a`b_fb_da\^]^`^^f[b__e^b^_^c_c_ab_bd^X_[^cda]_ac[aacc^_a^`]cabaa_^g`\_ca]__ac]b]a_]``_`a`\]c^d`[`b_ba_``adehdbd]^`[^c_[_a`]`a]``]ea`^aa\bdbfc_c\b`_b^`]__aa]_`f^]^b`^`^_^]ad]`b_eae`bc^bZ`^c`^a_cb^da^ba\__ba`aa`^^``_baa]``_fdc_bca^^[abb]ag]``eb]c[_`f`d_d_fbgab__b`c^a_`\`_c_ad_a`bc_`c`_Z__c]^]bc^_b^bcac`abe`c]Ybe`d_a^\]aa^cbb]d```a^b^_^_[ab`b`cdb``b_d_`\_g__bcmaebc]f^c```j^bc`i__b`bca`fab^_`_^c_e]_`ad`aa_^`bd\]cda]]a`a`g_eaa]_`^a`[]`c`a^db^``cba^]eba`_d]]dd]bd`_cbc^b_\`bada_cha^^^dZ]abb\dd_bae``ecd]gac`b^_b`_`^^^^`badfa\`c_\eb`[^gcb^d`cb__efa^b`ca`ca`X_\^^\b`^]_dc`bba___`\^c_`c`db__bb_b]Z^cb`]`_\`aa`ab\e]]ca^`a`_`cg````a_ab]aca`]_c]aa`^__aa`f_``]``ec`_bc^`agf_`e`ca_d`_babd_`a`^d`b`caa`bea^dc_\ea`bcb`cebb`^ff`_bfa_a`d___bbd_af^\^c`de`b]^bb]_d`e^`be`ha_`c`^aac`badja]bc^b`[`bdbb``f]gc]a_aeada\`ab]h]`][^^^_dc_^_]gaa_a_`b`abe^\aa`bb\^^bc_dbfd^\cabfd`]ba`aa`_bcYb_a`^hbbbb_edb`a_c^aa`c`bee^d_`]``^d`baac__^ab_`_`_``bda_ca_cbg`\]fac]d`ababab`^_aea`bf`c\Z`db_d_]`]`f^`ee`dab_b_`_ec``c\adbaac^a_]b``g_b_bccbdad_```bbb_^caa`bdda_`ac_`c``_c^cab`_a`_fac_cbca]`]\]^\c_e]]hbcc_bcddbc`dad`fa_^^^aaa``_f\cd`f^a`bb]cea`_eagab^`ca_aac_ac`c]cca]a^b`c`b__bdcb_`_cb^^dd^]`aa^f^`g_`_cciaaec`dha]`fa`b^`^^_aadaa_`d`a`f__ba^`aba_\cdeab^abb^^ccdZcbd_c]`ce_^`aaY_a^`\c`_\`_ac``c`a`]bgahc]bd]aacgegb_`_```^]b^_^^fa`]ced[^]__a^_^`c_]`abadaiab`ef_``bb`acbZ`_c`_c`cca_beeaac^b_a\`bb`bba^___a___eeib^_`b`b`bbdba_fb_^cc[]fbb\ad]bb[`a[_``jbece_ed[eac_caga]ag]`e]d^a`^`abbb`dbb`b]abf`^^__ca^d^bbd]bda`abi^^_bd`_b]^_babc]`b_bbae`b`bccc]^b_ccbea`b_`_\e`\bd`^__b^`e`^_bdac`e]g^```fia[cb`bi_fb`_\c`_fe`]ddbcdcdbdaabaac``_bbaa`ca``b]abdb_aiaadba^`^f_cefdbc`ddd`cbabbb`dacab_cfedbc]_g`beV`cbabcaeg_gbec`a__^c_ddfbd`b_fa_ce`g_b__`cad_^]^`_b_b^da]d\fcfbdc``da_c`gb`bZg_ca[bbc^`ccec_`b_``eb`b_ba``ah^_acgbc`cbgcbfab_`bd`b^bb_adg`abdbhbefgd`^g^c^^_bab]aa^bd_^af`b]hd`a`a^bcc_acdedbbafb`cc_`bfegab`]cafbeee^^dafb]bffa`_\`c`_g_``bebgbca`e_cd`a`c]`ae[b_ba]db]a^acd`aa_adk`b^cdaad_b^`]cacabdbcbadb`aab`_ddbddd_`_dcbaefbebd^be_cd`gcbgbd`ca`b``caab`]c_c^gbbbc^`a`dc_ef^_`fi_da`_e`_d`^^acb\dgceeaac^b^g\bcfa_abbf`\c`ad`aaacedb_kgaa_\daaebb^_^cb`i^`g_a`_aad^`d`^b`m_fcca_adbbca_^bcdh]^ca`bbba_\a`]b\_`cfabibadf_a^b^`^eebbb`fd`_]`^_`ebda]`c]^`^]cg`^^k`_^bbe]db_d^ccda^dcbebja_ab]`df`dbc`eebdabeee`fg`_aaabb_b`caabc`e`eb^dbcffahc`ca__`ddc_`d`^d[\cca`e`c`bcccee`cbd^gdb^badccc]beda_bb`aagbfeb^c[^a`abae]bej_`\_cecc_d`a_`_g`]ce^```e]dbb\`a`iabceacebae`ac`]cbaeeafc`_]be`eccb`aaeeag`_`daab_ic_^be^aba_egeaeaacea\cbfd`jd]]e_`ea`\ad``_c_Zb`bi`ac__chc^_aeZa_`b`^b`ag`X`cbd_aea`]ca]a_bb^cb]a\Zf`b^d_`b_c_a_^bd`^de_d``ced`__^````d\`^aedaZh`^^b`cccb`bb_a_^`f]_a`ca_`kd`_a]\_`bb``b_badbc`]]d]`^bgfbecd_d\cca^c`ae^^`b_^_g^b`^ah^_]c`]c`_bje`bc_\aad]]`_a[^_bcce^be]dbbc]hf]^\cb_^\a\_`_cacde^ceabc__``_bd]dblaa\c`_c[ec_ccaa_d_ld]b_a``^`fc`]d_\fd^_`^bfdbdbcba_`cbgi_[``e_fa_cecbbjabcdgaaa^^d`di^dd`d^dcd]a^ae_`e[^__^_abd_ad\fa\`a`cbd__``aa`_]_^a]c^b`a_bcf_`cdccdc_`e[afe`e^a]`b_hb``af`^\`aZ`ba^b^`_dba^Yda^`^bb`b``a`bgb`^eb_haeff]bc^^_k`^ba[aa^a__]aZ^db_[ba_`\c`^ac[`ab^ce``[^a]a_a`\Z`dea_abce_aa`^f]`bcb^`d^acd`i\]g`\d_ga_`cabf]baf[fc`aa`b`_^^c_bcbcc`^d_bc^cabb`a`ac^^^_a`^efccecbcc__d`b``da^ba\]cb`\b_a_^`\__^e]_`_cc]`afc_d_]b]\c`b^_b^g``^a_`d`adac^\a__caad`cd`a_`_`]a`cbb^c_edba`^daabc``]`d]`a^b`e__`bb^eadaiae_\_aa]ca[cd^aah__dbdY_a^][^]d]]bc[_]b`bac`g^`b]_f]cabd__e`^aadZ__^aeaec^hc`ce`c`f]e`b^\_a^`^f^bcc^bc_def__d[b_dabcjbaea__c_^\`_adabccdb\ac`^`af`^b`_^a]b``bc^`_bc__ce``acba_]cedeaia`a`ad`Ycbbdddcedagd`dcdc`c_b`cbd_b_aa\`cb_c[`e[bcd]eb`c__acaf\`b_``ca``a]d^aa^_c^cebfbaceb_][``eaf`a^]b`\_c`bdbc_b`_^badbaca_abab`^d_aab`eaab]^dacc_ea_b``_[`caba`gbab`^_a`a`cgc^db_ccdb_daabfea^a`_ccc_bc`aa`_ac`dbcb_dd`db`fabaadddbfa__bddcf_ac`ca_^ba`b\a`bibddeeb`aadbdf^baa^b`ad`ab^eagbb_abeeb^a`f]da__cb^bbddbae^`ebaacbc`_fa^]cbaaebcbf`dbcaeeb^bbh`bebc`_`bbbdaa^baj`]cddb_`afcca\dab`^_aaag^\acd`b^`\c]^^cd``a]cc_a[cf\aa\`ccaaa`___`e]\^]__c]b]][]c_cab`^`h^ab``]g[d`ba_`a_\aaa_b_]d]c`^_\`]a`^]\__feae_a^ac`dbb^_cd^b`g^bjdZ^`a]ca_`_b`ab`___cdh]ccdd]b`_c^_a`bb`ccc]b`bc_dbd]]\^`]`aj``_bac^`b`d^^__b^ach^bh\ac_][`^^^a\]a^`^a_[e_]^^_[e``af\ac\gaca]_ee`eb_`a[]a^e__gc``__\f]]`i``]ic`[aac`_]a^af_bdZa_`^^]^\_``e]bdabb[becda`]`g`^a_]a`_bg`a_b\_]^b^`de\dZfabab\^^`_`daaa^`^`cbcc\^a^c_b\aZec``]a`k[_a_\`bb]ca]`]bcc_[`Y`c]fb_a_a`Zeb_^b_ad]bd]a`_^[d\^a`d_\ac``la_dfad\egc^`]ac`fcZah\a^ca__c_^^d\_[``_\__^[a`b__ba^cb]^bc]_]ba^`e]d^ab_`^dbde`\__db_^ca^^_\aa`d_`a^b_a__\\]`^ba`]ic]bc]^^c`a_\ca`ca]ae`\a^ci_]_b`a^__bg_ah^baa]jd`_\baacaah^da``a\_ae^f^db]\Z`^ddccaab``eb_c^b\`b^b_``c[^^_e]dc_ba[aa_^]ab``[aca^[c`ebba\c`cb`[d^[e^ac^e]j``a_`_a^\b]Yb_db__\_`ed]f\`_X^]ab_b`a^^`e_Y]e^bb]d^ab`^cc`e__]d]f^c`a`de_]b__bba_\^b_d`b``faba]aa^a_[^_`bb`d`b]g\c__b_d]f_c^`dbb^a\^e^]g_`^`db_a``be]^caaeacb___]ccbaadb[`_^`_adga^``c]a`e^\_a\_cb^a^cecX_aa^b`]^aabc\`aaaba_`_fa``adaa]b`a`fcb^ababe___b]aa^^e``fbback_a]dd_d\`c_]_ae^cab_]f]f``b_]ccZgc[abd^acdadbba[`^^c_dab```]dagcaca`c^bfb```_b\ae]^ba`bb`^b_^eb]c`__]d`eb^]\c`]`^a]d^c^b_`[cbc_^a`d``ha_c```dc\adfa__ba_^bc__]b]cb^c_aa`abc\_d`aabb^ac__^bdc^dc^]^b``e\[a`bd``g^b``\h`]e]a_bdc__ba``\\dcdba\^`b]a`_ab_ceb`g`]_Z```d]b^hc\aa]]`_`^aca`[`bb]d\cb`b^ab_`a_`]gg`\]g___db__cadb`]^c_\bbb`_ge\bfbbaa^\baeh^`eb`ca`c\b`a`bbdea^[ad]b_ab`^]f^ccacaca_df^a^_cbfac^a_c[``ecebda`d`[]`c[a_cbdcc``\b_c^`_caca]bbbbaacf_e^a`_babf]b^faW`ga_^`a`[d^^`^a[dcab^``^Y`ca^_g_g_]`dac^]d_^\^_cd`\__dabad\a``_`bceacaaca__ac_]d]_e^_d`[ag`a^a`___fabcc\``a]ae`_a``]\``cdc^e_`eda]f_`^_^^__^cd\b_\eadacb__`e]bf]bb^b[^d_]\`a^]```_^c]a^Z^g\Za_^\^\`cZc]`Z]_``bb\^g_]_\[ddaca`_d_^bdac_]e_ad_a^`aa`ab````\_dc^c]^dca^^^aec^b_egd^acg````dg]^^]b]d`^`ie`]_\b``eb`_h`\`\\^baca^d^dd\i]_e_gadb]^\`ddbbbbc^a_f]]^bb]___e__bebc``_c`ac`f]b_`c`df^ac`]_aaaa^_^`_^cd`[aa_c`bb_jd^___a`\b_`__baa```ca_`^fba`c`^`ca^a`^a_aed`c^cc_b_fac`]a]ba^_dc`baib``cb]_^g^\c\baca`_`c`ab_`b_b[\d_a]c^^`_]a]^^^b_`_d]h]^`_`]_bda`_e__^`^_da__c\i`ea`bhda_^a_`acacg_aebgab_]\]`^c_a^lda]hbc_e`^__a_g^ga```_gc^^a^_ai^^_][adaa`[a^^^_aca_`f`aZ_`ce__`^aeebc`ddlead_c]acbh`^__^aa`_d`_`a```\d```_fmbb\]c`_^bb`a^e`]^^a_a``__acdibg^aa^ba__ae_`d`c_g^_b^d_^`c`\aea``_c^b]b__]]_abc]abcccag_a_\ccb_b_dbb^d`^_b_`abaa^`dbe`d_[`ffh_bc_bcb`a`]cdd]^\d`_ac^a_]c]dae```\_`a`bbeabbb`a__`ba`^_^aaaaa`a^a_[]da_\ecbcb^]`faag_a^`ad]`_^g`a]_f]]^[d_cabc``\^\c\_`[dahe^d^bd^__`_^cebe]a[__g]gbcb`ac`c`b`_]_cdf`c_caab^e]b]b^a_c_Yaa_bah^d]bZbd^bda^b`_aad^cb_ae`b`_^_^e_c`c`_^_^[]^`c_c\^^a`^b`^cabbdac^eg]b`_\a``a^_e^e_e]ad^Yffc__c_aabd`ba`db_bc_abb__c_dddb`dab]_Zb_c_ac__[`dac]^^]^_baaac]b[b`aa``a^[a^bb^^ba_]^]``d^_fbeaa^ab_`^^b]caa`__]`b```a`b`_c`b_eb`aa_d`a]ccf__decc^f`fc\c^fahb^a`acccfg`[_g_dcc_e\c]eca`da^bcd_a`acca[j`_c]ba_a^b]^_c]_ff[b\cegef^``a^bfbecaajb\fbabe^_a\ddaccacaaci`bd\d^b`daZabc`fdgbacb_cbba^a`e]e^ja`d]Vcac_a^caha`b^``bcbcabcba_dd^^cbb_bafbfab`^db^^daa]a_`\abc_`^]`d_ab`ibfaddb`\acdcd^__b\_bf`_gfg^]c`^``bdcce`a^_abge^`_ec`abaaa_`ebcdaaabc`agacbcd_abbda^ea\`ahdb^d`^cefb__c^_d^ccd[d\``e`ba_ca`f`aace^c]ebbefbb^ef^`ge^gb__f`ieea``ccg`_f`c^c`_\d_aa^_acc`Zbbcbab`acfk\cb`_`cc]ac____cf__cdg^ecd^d__^`aZ_ff`^^a`bb_]b^]\[_^_g^__`^]^_^\da`h^^__ca_d_`a_cbab^`c`bcab^^`]a^g]bd^cb\cc`ea^]ceb_`c[`_c_`^f[_`c^ic_b``_bb^[_^_j^_[da[`b_c_]]a_^^b___a_`^f_\]ab^`bYbf`aa^\^c^cba]a^`]f`aa_^Zb__``_`ac\^cb_c^_^ceafba`cc]d`_ab_gda]`_]]ba`]^^`]adaacb_fb[`]b]^a^aZ^b`c`_`_`a^__`d^b`b^[_^ab_c]a_ac^b^``\a\`d^^_\c`bbb^\```]c``]]_b^^^^^_[d^]``^c^^Ya`\]``^_]_d^d`aX^^ba]`ea`bc``fda^afaaa_aad_`a_`aa_ccb][bbZ`bf_`]ab_`aa^]]__`da`^^]b_be^b`b^ab_^`_^]hcg]_cae^cicbfd_aac\gbbg____`a^]a]b^cb[_^]beYa`aac_e``a`bdba^bda\^_`i_]bbcba^]abagab]aa`f^f]bd_bj\Zb`aa__][]bd_b`aaa`a`a_bbdb^_b_`^_b`cabccc_^d^c\e_^`aghca_^d`a^daab^]]aad_aeaeaab^db__]aae^b_aaa_aab]bb]]g]_`Z`b_ae]_^db_\aca`be\`ea]b`_da_]ab_c^g[_eccb^babb]]_bb_]^dae]\c__ec`e^bg[c_Z]a^bccZa_acbcd_`agc___b]cb\]b\`a_^add``dbcabd\^adb_`ecdb]_`e_bb_`aj_^_`]aa_^cZc_`d_b^]d_``^b__eda`abcdf]da\^`[d`d__]bb_a`ada`a_`_\_^]a_aa^c_c__`_^b`b`b^`_ba\`ch_]^`caaa]]`mc]b_\d__b``adba_\ab```_b\bacd_^bcc]cb^bh`d^_a^a```bcac`_cdc_c_d_]af`bdbd___c``b^]aabaaa^b`f_ac^b`a_\]_b]a__cbbaacabda]]^]d_ba^eec``bed___`cd_`]^d\b^b`]cddba`ba`c`ddb_`^d__]]_e]_^ad`]\`_b``d_eaa^d_]a]_]b`_`cd\a]]ccba_fba^d^ce_c`abb^^c`d`^a[_aaa_a[a^`\^]caacd_dg]]`c`a^bda_a_cc__`_]Zba\b[c`b\^b_\`e`a]`dd```abb``e^]]_`_`^]`]bg`ad__d[\_`acbaa^cb_cbb`_c_[a`_``]``ab`^b_^aeabcbaba]bb^ab_^d_aa`bb_]fa^becf__b``daeg`_^a_cb`b`a`cf`^__`dg_aab`c]c]cb_babca_``a_f_^__`da``aaaabf`^`_aaaa]_fb`bb^b_^^_c^``dc_`aa_cYbbcdb[bha``f\`ca_^Zd_b`ad_[]]aagac^a_^c^__]`adbcg`abb^dg`\e_c^`_c_bb_\\bbbe_bd^\a\c]`d`af_]_ac_^_c_db^edc`c\cacfba`^`ca\a\`aab]b\a^__fad_c`c_a\_`_i`bd`^c_^``b\]``bfd`b_b^c^`^d______[ab_[ac_^\fa_`^`b__f\cabc`]`b`a^_a``a_aca_`ba`gaa`]`\__]]ba`[a`bda_``_ca_bb``^]]`a`_]^c\```cbaa_e_]c]_`da^`]\]c[abebbbcic^`^`a_a]^ada^`^`\bbafaa_e`cb`c\^gaadd\^`_^b^g_c`a_ab^b]^g]\[__a_^`aab`b`_____]_\^_`d_f_`[db_badec`ja`]d__e`a_aa\a^]fb`c[cc``_```_cdea`dffab_f]a``c`\e^b_`]`a`b`_]`^adb`dada`bc]cba_]_]c^`b[__^ab^bZ^^_abe^^`haca__a`bi`ac_cd_``^\`d_h`e`d^__a_a`\ad_b^babdd^\Y`^`bfd^]dacdcac_bab_^a^_\_ecc]afa]b``]`a]__]a_\c__bebbe_be^^]adca\`a]]c`W_a]aa\c]__`f_bbd^bdc`]cb\\^e]]_ebab`e`e_c]cha\]aa^b\bdbhe^c^^a`bc_]^a\b^bdi_a`^accbdZe]aa`abc[ZfcZ^^_d\\`^gcdb_bcd_\`_e_ba`^c`___]baa^_d`d_ad_]ab`cdf^a`a__^a`^`db_`b``b`a^_bc`^b_\__[d_e_b]b__\]^c[dkbb_`[dc\``af^`__a`b_]`a__\``_`aaa]b```_^b``bb^ad\ce_abc_^ad^\\abc^[ch^a`]]c^eb`___c`^d`e`c__ad__faa]a`b^\^ac^]_abe^_b`Zc_db]`\^b^^_badcaa\a^^b]__ddacifa`_b`aci`bb`^^gd_`[ccab__c`ahc_`f[^__^a_e`]`^ag_ab___c]`b_cee^``bdc]^b\b^dZ]_ce^c`_``[c`^affgdaa_`ab^aacYaZc]`]ebbd[a_a`]_fa\\bbh_a]^]aZ^abd_faaa_b`_]oaahcaa_\aZc_c]\``_`b]a`\_dcbb^_`a`bg_^]^bccacb^^a``eba]_^^bfb^_a`d\__cb`cbcb`[`db`b^_d`aacbabebb[^bb_`^a__a`ca^]cb\dccbbdb\dd_`b_c[c__^d`^f_fc_`c_f`dc_^hbce^`^baec`^ba]af]__a]]`]^d``c`b^__c`d`b`aa_^[__aZb]cb`_`cb_d\\bcdaZcc]^_bce]\`__af]]gd[caad^gb`\^^^a^d_a^b_cgd^gc`_^]a]a^`cb\bagc^\^^^d_e]]cb`e^`^___f_g]b]_]]`a_ac]_^`^b_^bb_a`_a_^ba``^hb]ec_fa_bc`_``_^b_e```ba_a\_\_ca___b\]e]d`cagde]^hc_a`fbb^]b[\_`ccaibc^bccac`Zab`a`f]_a^ad``_df`\cba`a_]]]_a^dbb_^`a`ac`]cX_`cf___d\]bfacc`]]\c^bk`c]^_`gb`_]_^_a]^aaddba_a^_\`]`_]_d```_dbba_a^aca]``bb]_a][a_\\_c^a^^`]dab]b^]^c`c_`^ca_cac[^]]`]_^a``bbb_a_\e^^bdaa``__[d]g`c^_]__f]]caYfca]c`b^`fc]bb\`_``d``^b_ea^aba_fZac^_h`]bcc`a]dbd`]a^hcda`cb^_aa^^abac][g___`d`__dd[ac^_ad``ce^bc[c[c^b\a`]bdahebd^c`bb^cZ_`ba__[fc^`e_e^d^^bb]bf`b_`eb\a\bcc]bbeaba`][`a_^`acfb`abe``b`e`b`d]c`aaab_gdd_b]Zea]^fda]^]d`dm`[``Ycbcagbf^`adc`acc]]_^`aad_cec^b`db^Za_b_ad^^`e`ba``_e``^_bd``__bab]_aaaa`]]c_b_`^da_]aaae\adcd]dc_]]_`dab]]\]d[bc_adb^hc`f__``_bc[abaa``_fa\a^`bhccca^e^`cbebd`b`aab`c`bbd`_d`bebda`d^[```b`ed`d\_cciceaa_``^]`]a_b_`__eah[\^_^a]Z^c_\[_a_\Z^d^c^ae``a`^]`^a`^d^f_`_``c^``ba`_d_bf\c``fZ`\]_ac^_]cabca_ba_^_`a_b^_hcada`]cbc_c^\_ca`dc`bgca_\ba_``e_b_]`]cbbaeabfbbc^aa_b`a[`^bicgd_``dai`c_`b]ed^aa^d\b[da`\_`c[c]ba^]c]`be]]`gc]a]`_`ada[hba]`Z_Y`bc^`b`aedcb]]bfd_aeda]f]bd`_cd`^``b`]``fa\_`c_e``b`]`cc][]`b_ebY_]edaac_ea_^_ai]ea`baZadYcaa]]`]b]d_c_``ac[]`a\`aca`f`]b`b``cbf`b`aa_ad`cb`ae`aa]`a`aa`]c_ec\b`_c]ebfc_a^`^`^^_Zcg^_ic]_b_f`_b^caa]ba__gdcec_]^che]b]aih\_^_\d^a_d_^\__^]`c_bfY_]^\ccg\_\`biaaa^bfc]`_ab]`e\\bb`_e`][\]b^^]`aaaa`beb[b_da_a_]e`\]_b]^b`d]c``df__a^ea`^bfa_ab`b`eb`be`b]]ddd_]`aa_a`^hbb^bbd_a^aad^^fcb_]`\\b^_^dac`e^cd`f`^ac`b`eeae]d_cc`f_bbaZc`_\aa`bac^ac[aa__cf`aacaa^aZ`]`c`b_a[_[b__]^`\bba```haba`\]b]_a]^_]d_c`ac_bb_`ca^a___c`a^dc]_^a_hcb`]_ffhb]]__caa\aad^d]c_a__^`_a\__a`b_^`]b\af_aaad^bb^eah\aa_`d^a`d\_^hbbaac`\_`_]`[f`cb^c[``ae^fc^bb\bc_`d_dc\^g^eca^_^acb]caagafdcbaa`]ad^_]a`i^d`d__^_`^a`acac_e_^eebaba_a^d^da]d]aec`__c``]]b`a_c`_aac\ba`bah^eac_a_^_af`gga^`\`cbbacaccbcajbf]a`Zaa``adcaa`]]eacbacdaaa`abb`aaccaabb_ac^dcb^_a^b^cdad\dbd]b\a`b``ecf^g_abae`_`cdg]fd`a^`_ad`_cc``ec_d]f^[a_b_ib_bdgdd`^]c\ad`]aad]`fc`e`d`ba_d`f`d^`\``]c\^_hab_[adecc]_b]cc]a^^aaa_`b`c]b^^_cbb^_db`b`_^b^^eeb_ac```d^_cbccaab^]af__dfdc`e`bb__cbccc__b`dcaddic]bbc`a`cb``aaa_[d_^_`bbga`abb``d_a\`abf_aab`_ab^e`fb`^`a_^fc_ce`b_ba^dab`c`a`_``babbdbccd_^abbdca^```gbbg_]c^baeae^``^^ba^_`b`e`^db`a]^`lb\g^b^g`b^a]_`e`c^^gaabf`i`dbb\]`c`ccb`dbb_^cdbdc`a]a`_\[`]d`dh`]d\^_b]````b`_`q]]bf\``a_b_g_b`_ad_[ai^dcca\`^bbdd]`_f`b_`]bababcccbe^]_`]e_`^b_`bg\jf]`a`i^b`d^`bf^c_dhb]c]]bad`_b]aad]cacaa`^`b_fbeb``]_^`d`\_^a\`]\_^__bfabb^`^^a`]]_`hg^^^]^aa]a\c^]^e_d_^_[^a`cada`a[e^^cd]b``aa`]^^ge`_b_``a__``bb^_\c_``aba__hc^^h^`ba^`c`_`abc`e``_`^aa_idcg^ab`^caacd`]a]]d^^da`^dciac\]ca_bbZcc_^``dbd`\`hbf[f_`_d^h_]^`b\ae`^c`de`fa]_b`a`^`f^^a`eaa\`d`^c^bd[efaca`ba__^c`abee]ae`]dd]daa_e``]a\bc_^\dbb_\b]a^^e`\a_bfca`__[b]_a`e^ac_dbcab^^`^faecb_`^f`ca\^^^\`e^]ec_ac]b\c_d__dga`fabab_eb_cba```eX`_d_^aa`a]ia`aa_]ddcc^\cdad_fadb]`cae\dZ_aaaeebZb`a`hagc`\`^]\`]bb__`_c^b\adcb^^[]a_^bea`a^fe\eb\ad`_cd`^bacce_b^]ceZ]aa`Z^aaaa`\g__acgadbdj_aab`]][``hc\adbcbbb\e_bdd_\cabaag`aa`d^h`c]]b`_c^ea__c_^cdc\eb]adb^bc`ba]`a]^^^a]]`d`X]aa__dddbaa`c_]^_ec`gjfcba^]acea[`a]ada`^e^`_`_cde_a]``b`db_^fba]`cbccbbaa__]bfc]`d]ff]`giffa`^`c__`^eeb\c[c_a_Z`j_c`dbaf[kd\ac^`^cfa`_`]_ebca^d__a^i^]`bcfaceace]``^ba]_\^Waccaa^c]ba]_b\ddae[ad_d`aca_b_bZ`e]acfc_`]f`cY_e^abbcbabca\ibd_`a`\^^dbaie^]^fb\`gc]^^b]_`__\bbedbba^\`ha`bd_`ebac^`g^_b]d]daa]_`^bXc_`a^abe`c`^_]c^fha_cai_e\b]cf]f___j`^bbeb^`^c_c[````gebgj]]af\c_^b^fga]ek\\`\f`Ze]__`_`a[`b`_a`h]aeb]e_[gbjc[_ebb__^^cc`dc]^[b^dfgda`^]Z``b`b[g^_acc]^^j_`d_aa^_ab]a^]ccd^_`[]^`^]_^c\`^`^]a^c\^g`]ec_^]^f_e`]_dbab`b\d_c^]`ac^d_c`i\ac_dcdcee]_b_\`dbc_Y_cc`[b`bbea\cbb[j`b_a__ca_d_c`ab^]`\\be`edd[``]]a^_b__\^db_\daaadaa^``a]^`aa`a^_e^f__dd^aga`aee_]c_d`db^]`_cc``^`e_fc\`db`bba]]a`ac]a_b`_bb[c\af^^]^bbbZadcb_`b^cbaaa_eb^a_ab`_b^``c___da`f`]aa^`^_`b`baedc^\b`_^Zad`^``aac^b^`e\`^^bfcah`^a^]`ba]_c^_\a]a`[\d\cc_a]ea_`^]`a`b__daab_^f[_d\__^_ac_cabhb``d_^^`a`aabf_aa_b`db^_`e]ddadd__bacbb`ab_`^`\d^ddb_b`cbc_a`_c^dc[`a^`ba^^beabbbcd`__^`ab[^eb_\c_b_^``^`]a_babbd`_c^]`aa`^__ac^_a`ea\_bbb^[^`_\a]`a`cbbade]``c]]efacb^bc_b\ddbf`]_b^dcc_a\aabb]^^^`^b`\^^```a_]_ae\`[_`_`a^]b[`fcfaZ^a\`a^]``cce`f\```c]]bae``__bb^^Z[ac^`c`a^_`ae^`_acdbgfb^bcba\^`b^b]^^egcb_h]b^b\_`_`fbb`^Z]_\^^b[]_b\b^^``^ece_]`]^fe]c`_c^cdccad\a`e_a[bZ^ab^^cc^dbcb^]`\b\dd]`a`]]a^^d_aec\a^dbfbababgfb\aa`cef_d`bbcfcc\_`_c`c\^b__]`dab_^baa`a\`a\f_bba]baca]_\jadc`_`]__a\^`e`Z`fc__a__bd[de]a`ad`__``\b`bZbZbbabe]`bbe]edd_\afabb`ab`]\c^a^`a\f^b_`]]\_a^b^]a``^^cb``__``c__e__`^_abb`]`ab\cb_dcb`d`d`_^b^\cae__``bacdi]j_`ddg`ca]`db`^a`b`fb_c`aa^b]a^]_`a]]a\a\\`a``d`^^_dda^_]]b_[bacg_b]e_j_dac_^_c`ca^b\`ca_fb]`^lc`ba_]^]a^fbffg^b``a`^cba_a_c_``^abbad[`^e`aaaf_eea^fc`^\^^`e_de`e`bba``e`]^_^ae^_ae^\aca^dc`^j^`]bbad^abb_egd`\dgb_b``a_adba\`]``^c`^abb]`ab`^bacb^`b`af__`^``iaa`b_`c[`^`cbbaad_a\]db_e`_b`bec_[`_`^c^a]ba`bdc[`^^``da``af]dc_]\^]b`]fbaa[`a`caZ`b`a_]`abb^b`_b`b\`_b^bbc^_`^```a_a]^]e^d_b^`a]a_`^``^c_cc\a^c_aabh[`]giaca]cfaa[^``[bacfd`^_caad_e`__a^`eba_dacb`]`__\d^a_cb_bdX[^dfaab]a`]b^`]`dccab^[^f]]_bbdaa^e_a``c`bbaac^`_bc^e``^`^_\`]bf]fa_`a^_af]b\]`_]^_]bda_`^`_badb`_c]`a]aca`\c]d__l`\g`adf`e``_faa^]_`b``d_`^bc_`_`^e__cd^^`fa\`bb]ccc^`eaa_cb_a^]he`f`c`_d`_e``^b`c[h^b_a`_abf]]d`bbb_]]_abcabb^]]c^_a_cdbdb_e`]dca``c\a`c^n^^d`ab`_\c^`d^b^c^b`bc]^^^_`bdab]_gbbbccb^`aac__^_^aab`a^d^bacZ_`ga_a]bbac^`daalc]cZa`]_```bae_a`a``ab]^^`a^\`^_`cb`bd]^_cgcdd_]cdb_]bhc``e_ce__]_b_`__^c_geb^dabbca^_e_`bccbbbb`efb^bea_]a``a^ce^e\c`c`^f_db[ddbbea`c_a^cabd]_ha`\babd``^]_`aae^e[`__``cdfb__]]ded[aafca`a`a``^`_]a\_`_`d^ib[_cb_``bdcda`bfeba^ed][`c]``_ece^_g_e^^abacadc````^_b_\`a`_`dab_cbad^a]`b]e`]ehg^_a``_cdd^]b_ab\dcc`_b``]b`fc]ab^^[ae^a`\`f`cbac^dgcebaaah_deae_hbc^]f_```bbac`a_`e__]cc[[d`g_dab\ba_`^_``_^fdfXb__`eec`^ad^^bbda`a``^ab]b`__`b^`c__`^_f_d_^a`^bc_`_`^a`a``d^d_\aa`baeb]b`][`a^`]gb^^``]__``^]`_bc`a\]a_e]_bfg``bd__\_g[bbl^b]]]`_`c^_`[`d`hb_f``\]`aac`_^baf_a_de_c__^\d`_ab_g`e^a_]_ba]][`da[`ba`^]^[aae_`_`bbjbdbcb``]a_d]b__aadd^a]ca_acdgd]h^c\\c__a__ef]a_ae^b]c^``^ab_aec]]``cb`[`b`ebb^gaa_c_c][c\``_]ebe]`_b`ac`ecbbbb``]`]c^^\ad^fb^^acco^d^`^]^]`]a]]`b`ba`e]e``ea_b_``Ya`a^]]\ac^ac_`^]`f`b^`cb_]adca]`bb_cbc`bd[c_`fde`^faabd_`b\abbbc___`^f`\df__fdaca``b_`^ce``aceba__]bda^][`a`acaa_eac`f^ea[``Zc``ebc`_a]`_b]hbb]_]bea`_a_eb_]b`[a]]c`^bbdb]aaa`]_]``fa\c\bca_a]\]\_]]`\a^^a`a^dc]b_`^n^bj`gcba_dfc_cb_`eabccc^ca``beaaad`_`a_bcb`a___e^a^bbc`cbhd^\]d`d^`ebaabbgbd\^j_c_^a_e^a]`]bf^a`acbagZd^e`_afeg^__cda\[^d[b_^`]^[a`]aac_b`a_Zha[bcec`e_be\aa\_a_a[_ca]baafeb^bbf`a__]fbfb`b_`_c_^abc^cf`^c``a`_c^a^]m^b`_`ag`g^_b^_a`g`bd`d``_ce_bae^^d`_b]bc`\__ac^c_cbb]b^bc\c^`^`_cab`_^`^aa_]_be`__ab`b`a`ab^_b`^^`_dba````baccebcde`]dba_^b^__a]_a^a``aag^]bc^\^ad]_]bkcg^a_a_ab]dd```^baecdf\_ab\ebafe_b^___`^b^`_bc_[f`^e``_\`_ec`ba]d`d`\_^aaZ_ad_`af_^[]`c`_``]^b`aabac`\^cc\_hdbe^caab`afd`]]b^ac`^a`aa``_``]a\d_a`_^^_^_dha`a^^[^b]abc]^_de`ja`]_^a___\h`aae`]fa^\da^b_^dbb\iakb]`ba^j]bZf_^fbmacdec^a``bfaa`ba_k`_a`db\i\mab^dW^^b_\_bd\b\`ch^dbaba_abc^a]^`[a`]]^`]b^^Z`]dabc]dcd^_\`^aa\aie^]c_b_a_\c`\`_b`Y``ba]]bcb\^ca_a]b^]ca^`_`^ba^_\b`a_aa^a^g[_bmd^aa^_a`acaaac]_]_^fa```a_``dbaebbbead\c_^b_^bcd`a`b\g^d\c_`cbab]]``efbb__cca]ba^^ea^abcdbd_^]`[``_\__\_bca``aa_a`acecaaab][c`^c]Y]^`^_`_^]ja`]a\a]\^`_^\]^b^d_d`b`^]b`_db_a]]``^baaae^c_a^^b^``_b__`]\a`_b_aebebbb__]^bcc_d`bbbffc]f^abb^^^cb__^a^_b]d\b`Z^]e^bbd\f_ab`^a]_aabec`a^a`bb]ea`b``aa`a_`fccg`ab`c]][]cf]a`ca]`c^c_acffcb`_`ab``_Z_a_e`ac^aa^c^[_ged\``ea`ae^`aba\c]a_a[aaad```d\a`bb\^^aa\`_]b`_^a]_d]e````aca_`b^ea^]_b\db]\a^_d[a``\c^c_]^aa]eb_b]_]`dbe_afb`a_ebc`]`\ac`\^^^aYcced`__ba`_`c``a_`dc`_cc[^b]ba`]e]_`a]_`ba]a`[_^bgb_\``aedbdd]dg^ce`_b]__heddcae[_cda_bch`b_c_^aa`_c`dc`ed_f^ea_`pa^bce_`hb]dbaa^b`acad`^abWfed\^d`bYcad_b`ai\fbjdc[fi[aaaa`aabc_ijd`_c_dbb_bd^bagb_`^``c]ca_ae_`bab_afc`^i]f^c^d\dfcbaabaeb^e^_^dcbcab^_a`acbfbb`c]`b`_c^_`d\ce`_``_\dhbdgc[eafed^fg_^dfggk_a__f`fb^abf_df__b`e\d^bfe_``ebebb^``a_dg`eccabaca_c^]eba`bcaicejfab`abk^`afgfccj_ac_[cdeaa^]fd_fb`g`bbae]ddeed`bijbdb^_cggfe^_cc]e^`acdibc]f]f]cbcbb]ah``ab`f_eb`_b_kd^afee`^`g_dgf`h_be]b_d_c\e`e_`_e_dkbbgfaec``d`ce^a^a_ae_ad`_d`bc``eaa`d^ddegbbb`_`a_hbc_]a\c```cb]\`]cea`h`__e_`b_^__````_c^]_\aa\da^cdc[gc__h^c]b^a\cb_d^aejc_f^_adc`ab`b_dc_a__fdcbb`[^bdb^a\ba\biadYbbbh_da^ca___^d]e_a`d`_ee`]a`]`a_bb^e_cb`b]Za`^eeea]b`\_\^`^`eb]a``bbdaacab^ba^a\b^bfa[ea\`ca_acb_bc]]_a]]bb]^^l^c^\dec\^`bd_edbbb``_^c]bd]c`_ea\`cca_`_b^`hdcbe`_`a`]`^d]b[badda^eb`b`]cccbab]de_aa_a^cdbcae^`cbd]cbh_`]_bdedba^c^[^dad`_fg]__dc`a_c\`ce_\]_daah_`bce]\bbcaa^`a`^c^]ab_f`_e`bdea^a]`_cca_b_b`bdba]^`c^^a`k_`d_ibbge`b`fccgb]bacdb`f_eab_ebcbag`c`_`cbc_dbach^cc_[f^bcaabm`\c_cca^acbaedbc`a^ae_gb`^eccbcea``fbf`baae`jc^e`ba__g^a_a_\b_e_b`ebcfc_fb_d_`__e^abj_`ieb`]gdb^adai^[e]jdddk_`f_a`dbf_feac`dabdb`ccacbej^_eb^c`]fde`^fc_`aaabde^\^^_f^g]fddfaf``dd`ebae^`d__a^ee]gff_cadb`cbd\dab`adeaga_``idb_^gi\`ebj_d__fhecebb^cabd_gb\dcabbh_bab^da^aaZfda_baaa___ec^d_e^g[e^cjfd`id^ebbb]ceabiiabadj_ebdd`c`baeedb_b_bace^bckaidffc^`]dbaebiaacfac_a_g`cac]``a]]aZeb^ab^_\e_bba_`d``cb[]_^f`^bZabe_^c^^h^_Y_a``bdZf^c`_]_b_b^d`a``g\`_ca`bcbc]ab^ab__`]\``_c_ba]`bac_a`]`fed`__`^_`a^\bd`bace__aic^_^e`_``^b____ha^`^_d`f`aaa_aab\\__^]^aabec___db^c^c^`_bb`b\_a`^]^cba_`^__^af_cd^]b^__cgbc`_a\^`\b_b`bc`^deca`a`_`a]`b_aabf^_`]faaa``accc`abfh`fb_b__cabba\^[]^__`baa`m_c[ek]`e]_`bdb`^_^e_aa`\eb\b]dcc]ababegc`a`]e^]aabc_]c]^a`d_^b`ga\^a^c]f\b_``g]`a^a`_d``^_`^__\accf\]ceaba_bg]_ecaa`a_`_caa`__dg]__ac_\dc]e\a]ae`b]\df^c`b`^`\c_ceZeb__aa_`d`_`]a^_`b^a\fca_b__a_a_]bab`bac]de^bb`aZc``bbcc`a]]c_`g^a`c`aa`eab``b^cc`_`^a^cce]aa`b]\d`ab^`bb_e^[`cb]_]_ba`_c_`aa^cbba^_^f_]^_`d\^a\bbdd\b_abd^b`db```^\_``aa`f^afaca`a`ebcaaib`ccbe_\`b^b^b``__d^Zb^bc]b`_bbabc``aa^cadcYcZ^]``ba]]^`c]]]_]a_b^cbg]a_]`ac]_^b`eda``]_\_]c^heedaa\[cjc^gcda_]b]cbd^^_d__``c_c__beadb`__`__d^`bc]adbeab`]a]e`a_a]h^`bdb`]ad]`c^d__ce[c_b[]^`cae[ab`cb`b_Y``a`a`^b_`ch^``]cedc``^\`dbaad^\_a_^^[][^^`\`][b]`a]dc]_Z_[]\a\_\_]_]]]]_^\a__\_]^]`_\a^]b_[a`__Z`\^[ab]\`a]^_]\i\```\[_\g`c\a[\bVY[b`\]ac_\Z`b]^\]]]a`l_[]^_^Ya`ZY^`[cg]a_[`_]]]]\\__a_^X^b^]\c__Y_]\Z\^``]_]b\^_^\Y^]^b[_Z_`^^\^`bb^^^`]`]`[\\]]]a_^`]\^Z``\aa]`c_Z]_\_a^_`_\`]__Z]]Z^^]Z`]\_[a^X]\a_^a]Y`\[_`^^\_\]]][bb\a^\`^`^`\a^[_^][_^a]^_\_]`\``\]_Z][[\b[`^Z_]Z^]Z`]^^_\``_[^]^][`_b^Za]\]Z^_\^\^^[__^]^^^[_]__a^^^]]_]\_]\^_[aX`__aY\]^_^a^^[a[\^^`[`Z]_]]^]\\_Z^]a```^`a]]\`^^_Z^]c_\\]^b`^_fbcdaa_e`b`^a```afae]_ab]b`ab`^c`a\dZbdh_^^_da^\ac^dc^bg`m\bea_eda_b_\a^cab`bceb``a^e`_bcc_^]`]c_c^^```jbeaa\dha_acadca`aa_a_aedf`be]``bb_`^b_^__a]a`bba^`d`_bbc``\a_e_^`db_aaeh``dd_c`^cd`^]a]c_acc]a^`\`\a^`_a]``be^bc\^e_ahbc^]_`dbc__`^b^eaea^b`babbddg^aagbc___a_`ac\e_c`db`a_``d_ac`b`^aihac`^aaa`bccch_^]dbb`\``a`a_c^`c_d^_``c^d`a`e`f_b\_]_bb\_^^b^]^^]_b^_]]bb_``b`dfececba_hd_acbbd^b`ab^ag]ec_a\dcbc__]_g\a_c`]_a^a__f`]bbba`ed\c____b_ad]c_[acb^^hcib``fcab`a``c_abdf``_ab`c`ecfda\da]_`^cb[kb___d`ba^`bb`^acc^^\d]e_^^^`cc_cd`d_bfc``a__[a\`f`a]c_a`b_e`^be`h`a`hed__c]ecc_[bb`a[c]e_`a`__c``b_]aa``]e]aaaa`cda^`]^^b\a`_ce`_\^ce^_b_da`^^f`^gba^bbhd_Z`_ie`^^`]_aa_`i_\f^c_^_da_d`\^b`]a`a^`\\da_b^]_bafdfb]cac^_c___ca_d]\dca_^_c`cad[a^]c_a_a_af^[c``_^^a^`baab]aY^e]_]b_aaab`a_faa]_`]\g`b`a\aacb^dbf^abad`_`abac`c`_db_c_aca^b`b_a``_a_be``ac_aeb_caabc^Zd\_a`b\_^ecc^aac`_`e__]_cb]`e__]^\bd]b`cb\ee_hbecacd_b]_aac`\^``c^aaa^^cg``_]`]`d]``^`g`b_dd]^a]d`\aacc`ca^_[_ab\ab_a_ac]]_dbcaaa]c_bdc`a^a`d^fa_\e]d_c`^ad`d^\\`^__a`_fc`eba_]`c_^c^\`]a_]aaa`\a^`bbZe_ba_`_^fbaac\a_da^bcae`afc`ac`]Yaeg\^`aac__`^^`__eeabbfab_`]`a\Y`_`a\c``]_b_f^\bab\_a^dfa`d^b^^[`^_f`^ga]a]__^]d]\abb``d__\^_]``a`^d`^^]ccb`^ge^_d^__`^cbaa_a^]abb_^ab^f_e_b_c``c\\`b_ab`Zcbd^e\b]]]_b_^^a]`eccf^`debaa\]edb``b_^ab\d__`]]^ad][`^b_bca]_\\ag_c_]fcbb^a^\]]^a_`]_`Z`^_aa^^a^``^aa]_ddda^b_c``__b`bb_db]`dd_ced^ab_dfag_baaae\c^b]ab_b]`^bc`^ed`bf`\ef\]`dZb`]^a]bdb_da__abf`^`]_bcee^dbc^b^eaaceeba`c]]\a]bedaa`c_c`]beb`agbb_[adf^acde_`ab_bf`^_^cc]h]^^c]g\[f]_bbaca`^da`^^h_c\aa`_ab\db^`^]a]dc^b`_c_ab\eafbaebc`eca_faaa`^cc\^c^bb_bcdeaagbc__abbfc`ada^aabaacadebbaeca^cZcea[b`ccccabd_aba]acaccebc_d_]c_ae`k``ga_]bca`_a^_aa^_cdeba^e\^_``cc_`gc`_bb_e^_^``gbe`baba`]_`a_cfeae_`^b^adcd_cd_ac``ca`cc^bg\aaaf[_ba\ab_aagcaf]_abb[cbabb`a`b`gc^c\dc`^]cb``[a\`dad`di``ea__cb`b`^^]b`a^c_]d_de_^]a```cbca_]_ab_g`]abeafadbaccc]\c`b`^faacfaa_aed_a^`d^f\cea^^_`hbbaeea_acbdccad_\dab`_f`]````b_acabbba`b[`ff`cbh`c`_bc`ac^ad_e^]baa\_abacad^e`_bda`bbabcab_ba\`acaba_b`abca^ccb]^_]`bcb`aaf^bac__aaca`bcd]dcc_`_^caha]^bb]baadc_dbca^`g__d`^`b_bac`abcafaa`cf^c^bb]c[```aa[_bec^cdad^_]`d_a`_^cb^_```_d^aac]cfa_b_a`bb_`ab`g^[_[\``_ca`b`a_f^]_Zb_`]\]b_a\`cacc_a`\`ca`b`c`^`_^a^cac`bbb^\ea^]aec^c_c_[b_a`da`^^]^_[ac^b]dfc`b[]_\babbe`dbca`]_cd\ac^fgbcc`c_]e__d`\[e_`b`b]\cgca]_hd`beZ_]cb_`_]c^bZc``[ac]\```a`_\b`^c`_``b^`ha_\_a__`_]bedd`^acc`^``_b]`_]acda_cbbbc_`^__`ca]`a`g^`cf]^\_f_\\`_a]_ee]`a```_adb`dg]aac\df_b\ececc[^c``bc`__`cca\cba`_f]`d_Y^`_^^bb`bb_ab^f`fcbda`\X^]`Zcb^]^c_a^d\`]`_aa]b\b^^^]bb\bc`a^_`c`]`^\_]\`ca\]e`^c^dh`bda`b`^ccb^aac\abaaa]c`be\]ab]e`bb^a_`e]bb[]add_fe]_]f^ab]`]fb`ede^ad`a_b\^aacc^`da^a_]a`_`]]]]^`_cf_c\`a`aa_^e`\ac_]_fa]`Za^cea`c`b_c_]_`abadcdeeg``b^fab_aid`^ea__^__[`]b``a_abafd`]be^`[a]`a_`_^afa^d`aa`ddb``b`_e_c]_]aa^a_b`^`^]___^_b`ccec^_ddc^_acea[`cdd`d^^cad[hc\bb\c^c`dbfdedaf_agcaahaae`_\c`c]aaa`^a]``_a`_cda_f\bb\^_abc]_Z_ebc]cc^^]aca_`_ddaccb[^ba`a`cc\b_^a`]`b__`a`_^^ad`bbd^c_a`^d_b^`d]^bcdaa_^_e]cc_aa_db]]a`f]a\bbabbdXc_ga`^`_b]^_^^^_b`a]b^ka``a`a^`ab`ib]aa`ae^_cc_cad\f`ecdagd]be^`d_]_b`^__d_ba_ef^d_abbb_`f\`c`^`b_`ab\```b_`bbc^```Z`h[b`bc_h^c^a]dagbc^]^caaabbe^cb`\`^ad\_bcac^^a]^d_^_baa_c^```]c`ab\^`\_^`[\^^]d`a]\b_^`^da_^^d_\``]a\_c`bc^\b`e\_`\aabbp\__]]\_W]`]\`_`c^f^_^__^b`^[\X_ab_c^ba_b_bZ]^eb^\\^_]`_^aZcd`]_a`__^c\\^_]^_j_b[a[__\a]\ba`]`]ca`^a^_\a_`da_`]b^__b^`^]_^``d_e__[\d[a_bZbbc`a[\_`[_b\^_d_c_]a^_baaab_ac_^[_`_]a__ca```_c_aec^aa`bb]acfc^__a__ab^adb`\^^_`^eb^b[ba]^_`Z`_a^b^`b]_c^``a_abc]b`dZ_\b^dbbccc[`cb\caab`_ba[cZce`_e_`[^a__^b_\a`a[\bZ`_^`_Vc^e`]b^]_c[b_Y\abZ^]]^`^aa_cYb]^^c`^\[`aZ__]a`_caae`^_`da_bda_[Z_b``a`[`d_^b_fcdab_b_aa_`b^\^]]`bc\e^]a`^f\dd^c[]c^]_bbh_cae]^`cbc_`___``cb\c]_dd`]`e]^e^^`ba_ba`b_a_`c\b_^d_aa]\dgb`a_]_^`__ad_`aecab^f`\]b`^`d`]fb^]ddcc[]^a_d`]c_``cf_a^a^bc`^f`b_b`_a^b^aa\cc\c_c[`d[e\af_bb\ba_bba^b^g]c^`_agcbcbdab_`g^aaa__^a__]^`Zdb_]c]^ebf`^]^\]ccZed^`]a_b]`c^ldabca]aeb_bh^^^^a]fb_bb_\]c_a[a]`]ag_afa^\c^``b_]a_`a]^b_a`cb`]bf[b_[_c`ag``_]^e]a`_ha_`e_e\^c`\`c`a`fb]]aca__`adi`_^__\\c__]b`^\`^a`a\_bb_d_`a_a`ca``]^a`[^ca]_^][a`fabf^]``^`c\_cac]a_]]bi_\ee_a^\cc\bfgc^]ad`^Z[_bbb]^_ba_bc`\`babaaab_^bc]\`eb`[aace_heaf]a]e`aa]_adbc[`abdcaa`a]bbbacd`c^a_\db\dafZ\c^g`ed_`b`i_dcac\dacfa^\```_bdchg^_]]dbc__``aaead_b`^`ab^[aa_^_^\bb^[_\`a`da^h\`e`dab`aca__aaaejel^edc`a\^fa``_dgcd]`]_cab^^caddd__]`a``[`ca`cb]^^c\`^]`c```_`ce\^i^`c\a^e`_bb_]^^bb__b_dc^[c\_c]\efbb\bdched\abc_`c\__cc`[ad[]bbZacbcah__a`__^]a\`b[]ibba`]bacbdca__`af_f[fc^c`aa^]c_bb_^_e_^_f]]``cec^da_ba\_b^``j`__^d_[_dfdjece_b_^fd_``bb_adcc`_eb^a^fbZc``]aaac^c_bbcg_^f]d`]]ccfb_^_bhacccjd`^^b``_dba^gg`ca^`_^^^``c`ab``aag]b`^_]bZ``_]_`db\b`a\[`f\eaabbb`bdcbc_aai_ei_abc`d``^h^cda`a]d```aafcg]c`fa_b`_a]__ga_eb^bab[f^ed_d_d\gab_dbh_aacb^`^a^_d]hha]defef`b`a_`\e`dcfcgb`d`ag^aec_acad^b`bdlccab__`cb]a`fdgad\cbcd`^bi^_aggabb_ib]df]]aa^cjdcdaab_gcbc]bb`_]^i\c_^`bba]afga_d_aceba\_ad^c\`^]c\g`ea^a_`d`^ecajebaba]\a_bb^^e`_]_f_bc^_^cec`da[b`^cf_eccb_`b`\]_^^^]`ebf^b`^]e_^cYba]c^_d\ab_d`cd_d_aa``b^_adcbc^`a^``cde`a`_ca^dbb^aa`c^c]ac`a^cfa_b]aac`e_^^`_b^a`ed^aad`a`_`^d_^^^aa^_^c_ab`ba__^d]aac_b^_^]b`\_]Y^^c^bbgcac^_a`b`bafd_a`b^ac`bcb_deaa_`_]`\[`_abd\_cc]_a^_\]eb``e[`a_hYea^b_d`a^`a```^bea``_dba_b__`e_]]]]^d`g``^be__b^[d_]^_`e]`ac\c``e`cb`a`d]Ya`_ec^hab^a\]d_^gc`_a`\h]b_`d]aa`a_Zbeae_aaa`c]aa^c\`[abefa^cba_`aaa^ba`^]aaef]daaa^e^\^cb]]_``c\`ff^a_\`aabc^`]a`b^^_ad`d`a_b^`]\_``_a``d\bgbab_`b[a`]aa]_\a_\_^\`^^bf`fc^[]_[abgacf_d^_c_^`^\a^e]^a_b^_`cdb^^ab_d\_bb`g^]^dg_b`__ba]ha^^\ch]\`[\]bch_abfbg_]ca\^c^_^^d]`b_be_`^[^Yaaa^b]c`]adfea]gc__^\]`bacdY_``]a`\c]^`bad\\^_i^dd_boebc`a__a_fda_bf^^\][bc`^_]d^a^c\ba[[_bc`c^c]_^a`[bbaa_\]ahaa`_e__^`]_^\cc^]__^i`a[]c^b]ce__c_fX`]d`bbg`e\``a`^ibbcbb_`aa_`_`abbad`_`^b`b_aaad\_``f]a^^`Ya_e^ada]b]bf_^`_babb_`aag]haa`_^^[]e^cd^`c\Ya``_h_`d^_\Za_a^\`b]]c`]_`bd^c_^]e]``b]\`ca`acc]`\c]a_^``a\^\cd_e__`f^_aa^c]gca_]b]_b`ak`^bcb`c]]dafbfbb]_cd\]_b^a__`cbf_bf]a_^_ec`\b^eb`_`^`^b``]_`Z\`d_\__a^a_d]Z`deeafd`db`a`a_^_``[]aca`bfa^^``^d``a\`__bd_`gba`ace^]^Y\``^\cdadad_]c``^b_^cbb^_hf`c]]b^aaaabb_]_`b^\a]]]a`c^_]^d_^]_`d_cid]^b]^f_c^]\_`e]]\__]]`ahc`bd``he^bce`^``bd]c^b[]`fafbga_b``_`cdX^`e__^]_a`b^a[`fa^_b`]d^`_aa]d`_fef^c^a_]`^^`]dc^]bb`bb[_c_c_babh^dcab\]]`ea]^X^d\^c``cb`adaaab_abae]c^fcd^d_`ab``^`a_a_beac^d\a__`a`b\c`cd]^a_^b_ab^`cc_d[cbc\^c`b][c`ha\^bbhabaa_^aa_]`bacb_^_^b_abadc__bf]cbdc`afae`_ab^_ab^bdc_ca`^a_`a`fc_c]b`bmcb_c``bb_gbaa`_b`c_cb_d_a`a`e__`cac\_`]i]`^b`a\_c`eh`_b^b`^c`^_bbdedeb`aa`aca_^^`^]de_cd\`__a___``bb[^ab^`e_`c^_`ad_g_ce_][`a^cac```ea`ge^bfbda^c`aYc^\]^bb_`]g_bab\h_^a^ce]^^c\`]abgacabbe^b__c^_b\aa^db_^Y]_`_ae_`^^b``c]`d^_b`_cbab^_]````^Zcd`c[a__h^e`]__cZ\\`a^\haab`abb``_``^a]ad`ba`cbb_b^\ig`^cc]eY]badb_faba__af_^[_deda\_`bda``^_h\bdbca`e^_bbccc`_b_b`_[]a`abbbb]`b^]]egba`eh``]d_]``fb__`f^aa^b`ge_aaba]b_`bca_cafY^`_c``]ecfdj_``b`ac_da^^_bfada`]c^_ab]b]``bbbbc_dbd`ccad`aaa`aa__^\`\aab[a`^f^`_bbd`e_`_b`[]bga_c^b\c^b^^c`c_^_be``aefba_`ab^b\c]d[gb^\aaa_`a`[^__a^ad^a`b]\^^e]`ff]_b^^[`]b`bi`e`\`a`_^dc__abd_f^\^_`^ea]_cddd\_abae^`^b`a^^c\]^ef^^hbbea^Zb_d_b^de`a^^]]]a\c__b_b`c]^c`]^b__`ebca^e`bd_c`]d[^]ak`cbbbcb`aea_\bc`bb__bcacbba`ah_a]`_\_`^``b__a_`fa```caabbc_]^b^```j`_ccb`ke_eca^e]`f`ac_b_a]]d_^__^``c`^eb^]_`b\`e`^]`ba]`a`c_a]_a[_\^_bda_`caa`_\c]ba_ba`a`\_bc\ae\^d^cfbd_db`bbc`_`a`_a\`[\`de^^``a``^^`da^]a`^a]_acaecc^bac^aac`d`^ac`bb\bd_c`ca^ac`bbaf\a[_]bbad^c]c[b_^^_`b_a_\b^`e`cc]\^bbcff`]bac\^^`cddab][]b`^`e`dd_cd[fc`^f\^aa\ca]^hb`d`agYa^a^a_[f_a`\a_b^`b``ad`_ac[`a]`a]ece_`abaccf]d^bcbcb_`^c^cbebfa^b_b_c_\]]_]b^babd[a_`\__a\e`c`c^c^_`_`c^_bc^egacca[^ff`c`e_ea^]`ac_bcb`]`_a\]^^`_\cbaa_a^d`a`j^_^bcbecddecb_ah]d_`c]`b\ccc]]dd`a_dda^`Z```a^Zffeaa_`ab__^^ddg_fbca^d`]h_a]_a``f__`d`\a]ea^`he`a_a[b]_^^`^a]caia\e`b]]`bb_gb\`^b_`b^\\_a^ba`a_e`^`cc^a^]bc`][a^``g[]_f^a_`\c]a`]\^_b`d`[_^^c^e_d`ab`_ca]d\ad]_fdae^^``b`e__`b_cac^c]`afaca^`_^a^cbb``_^b^ai^^]cb``bfaa_`]d__b[a`dbf]d\da_cacfdba`cebab]_d^\aac^a`bdYcd`a`bb]ecd_[b``eabcdbfad`ae\`^_`\d]\a`]\bbc[d`bcdp^_i]`_aed`b`\_`aba_`]``d]ib[`dc]a^`f`^c[c`_bb[_]`__\[[^_`a`a`^`e_ad]b_^bc]aa^`b^_c`_]af^aZc\[e_b^`d_`aaa_f_c_^]^cacfcca`c^e\\a_[c^^d_ae_`eb``a`adcdb]dici`_a]ba^]_^e`d_^fb_`acb]b\`eaf][]\`]ac^dbd`ag`cbaa_`]b`_\`e_`\]aacb`d^_`cdfbb`^e```_ab\dabffcb^cZaad_babb^`_b\_^`b]`b^`b`]^bfe`___acb`dacd^a_`fd_`_b_``bdd`___ib^]a_a]^bdgacc^bb_]_a`bhd_]]fa^dba]be__cc__a`c]^a^de^bab`bcb`_edb`a`ab\b_aZ^^ab`ceccadb`[]a]Z`a^aabc__`_a]c`d`e^`\dcb^^a^`deh`a`bc_]`__aa]c\_a]a[ea_[\]__``dca]`dc__^`d^^df`d___`_\`aacb`^_^_^^\e`___c`d^]haca]gc`]]\``bd`[]_ccg`ja`b]_b`a_Y`_^ba^_`_]e]e_\_d``id__d^`^ab_d^`^aja\\aea]`f^^^`b^f``\bedd``_^ccdb`b``aj^_decb`_f[b^a`b`bd`b_a_`dba`_^dababb``afaeedbaac_ccab]^cb`^`gb`cb[]`feae^b^i_e`^afd`abc]`e`aa\`]]gdfbd]_d[bcebbc`cid^c`abcb_`ccb__bfcccadfa`ce`_d_d`_f__abchaab_d\_d_ec_gbb^cbb\cg`h_i]bb_cd`_bebc_e^aa_d`af\`^c`b_gcf_f`c\aa^eacadg`b``_gbabb`_b`^bcbb`bfa_ca\`]edc_cdccaac`_b__bf`eddca_b_a_e`feibd^_d__ej]__^ab]bbagbdc_c`_[c]dah]a_]e[abdeebeagbdccba`^dg_aabdb`_bbaecbbba`decai__``]ca_acecceeaea_b_c^db`bcfj`]d__aac]`]bfa_acd^bc]]fhga^gce^`aaccd`]bcc\aad^bha``]b\aif]dc`a__ba`[f_ba_ad_f`_``cc]babc]_ea_b_ad_ca[c]]`^daaceagaababce[aa_aedcab__`c```caa]`g`_dadbccaa^__cb_ca\`\agb^_eaaca`eb_`i`ae]^e_`_a``^^gab`baa_^edfadaba``a`a]ccaf]_c_`ba_a`c`]a]df^_a__b`_ad`aca__a]dag^da^\a`aaabc[`ef`a^b__e_`bgbbaeb\^]`]dc_]`\da^ebec`aaa]ga^d__bbd`c^aad_`_cdc^cd_c_]b^a]ca]`_aac^`c`f__gaaab_ca]d`ag_`^__cadi\d]bbb`a]_``_b^`^bag`cc_`__ed]ac^`]`bc]eb]_a`ec__\fc_c`^aac]]_dedc]b]b^`gb^aaa]abda]eaba]]b^aa_e_``ae]fbd``b_b`_cbda]a_a`abch_c^]aee_a]b]`]b\eab_a`_]`^ac`e``aba``c`Zc_``_^`_`ad`]`de`_a][a__c_a`a^]\]f^b_]a]a[]d`\]db]cba]e`e`ea^a[`^\b_]daaddb[fc^]ab]a`]`_a\^babe`b]`a_dd^]````_db[`aZc\_^^bb]`dagcb_ab\`ib`bgafa_b\a__daa_\a`\`c_ac^babad^__[a]e]\dcaddab_a^_ea_e`cc``bbdae]^a[bb]i_bb^cb``]bc``f^^`_bg^c``_cZ^]_]^ed``aa]fa`chc]`cd`]aa_da_eb`b^ba[ia^_c^]_acagbb_^fb__^_baaa\^`^a_e^cc`_^^ec_ba``^\dcc`b^]^^e]`a]___bc`_[_bbcaa^^^\]a`aa__cbceiec``aaa\^^dadbdh`__e^b\^`c`^aabcak^ce_^]]bbe[`_b`__ea`cd`[`cda`caa`]bf`bad]f_c``bc^caad]_ba^b^accaediab`ab``d\ch]`daae`^d_bb_`__`_ab`]\a^_bf_d`eed]aZ^[d`_^c\bcc_baa`a_abdb``efa`aadZac__b[`baca]\^cb`bb`^`_ca`bcb_a_`_bbeb^b`b_]^ead``c]`f^affa^efa`d`b[`a^ba^baab\cbcabhafb[``bf__a`a`bb`d^`aa`^ed\Z``^b__g[_dbf`ce[`a``bb`^c]f]`]gah^`_]a`c^`b`b]\`bcegb`]c_gagc`_``^`a^c_deb__]cc]ca_\_aa``c`a`_a`cca_aa_\bcc^fd[ac`d]_gdcYaa`_]d]ca]c]dabcb`c[``ee_eaaa\\`deca_d^b_a`b`a__`^^f]a`cgabbabd\gcba_caa^^cb`ba^^d^ce]bhac]a_acdhag`dbaah\c`ga]c^[\acc__]b\bad`h]`ae]dbdaZgf^bb\cc^beb[_cdb_^ccbae_a_``b_cd^_dcacb`fbaca_Y_]^`h^cbb`^``_kc^_f^bb_g__cbb`b`a]c`a`abdb^c_ec\^`__bab^m`^d][_]]a_[aa`abb^edb^]a_^`bbebdc^_[b`]_ce``_]_ca]a_a`__cbcb_b`bed]bbab^ca_`^_b`c_]a`^]abbahbffah`d`adabf_`b]j^b`_`][a_`b`__^__abc`afe\a^`d^c_aebac`_b^^chfbadadaddaf^```b^__aa]f_`]caad\acb_b^daa[c`a[abaddca^e^]aa]babd`d`a]f\]bc_]b_cabb_a^cagd]`b]_ab`bc`adaecbac_`_``^bZ_^kacba`be^ad]`ba\^aebc_`\_]`_`c^_^_a^cfb`d]b`c__da`b``fc\a_cb^b`]ebf]bb_b^d`\bf^__``bc_b_^cbdd_c__b^i`^a`]e`ba`da_^``c_`eab_bb_bbb_`bb``ba`[c^c^bdac]aa_[]__`c\^a\bc_be]ba_bcb_de^d`dceb_`cbfdcc\]_`^dac]`a`e`bb`b]eaa_\b_`a^\__b``aa]ca\_\b`b[aa`^dag]`bcf_]a`ba\`_^^`bk^`bb_^`a^^f_fb]b`d`ca^eckb_`d^`^`]aad]b_c_cbcbcbbea^_``cbaa]j]ib``aaa`dba_aega_`cb^bababa`\]__c`b]kbbcbb`_a``ch]^_c\_`fah\_d`a]cbck^deea_l``b\``a]_a`\^daba_\aaZ``__b_`_e`cc`f^aa]_]^daaaa]_\^]b`\b_`^__`d_`]_a[]aab`e`a``aa[db`a_`aaae]^`__bb`]da[ec]`_]deacf_]bc`^]cba_]_ad^[``^c_]d_b]e^a^a`a`b`cbb_bf`abf\bb__^c`a`eba^Za```c__`_aa_bbb^cdf^^adafb__cda^bbaa``fcc`e`_ad``b^^a^_ac`__ba`b````a^bdd^hc`]_`b`b[ad[baa]]aaa`b^ebc]c`c^^caeb^a]^eae`^bb``c`fb^acdcadc]\]ci^ad_aa`b`fbbca__d_`e^^ca_`a_a_a`a__adg]`^_e_bc_^\]`c`b``d`ad_^c^`b`^ddab_b__^eb^^`^b_\]`]b^]ba]]`ab`bace_\_]_dba`b[c]`ba_abaddebZaa_aac`c__\`\]_`adbbda`^bb`a^b`b]b__\Z`ga__dfcZ_`hca``]da\^faf``abd`ec`a_``ca_a`d`d]^bb_b`_eae`]Yb\d^^b_eb]b_cbe^b^b^e]`c__^\c\a_aa`c[ccca\d\``c^`b_^de]dad\Zb^a_\`]]a]^]`b^\\]]dc^fc_bb]\a`ced\a_b`b^^_^aabb^eabba]`]ce`aacb`c_ccbaca_g^^a`bf`a_d^`f_Z__`___g_a\baa`\dd``db^e]bc]]b]_bcc_cb^`bd]b`d`_^b`_]`bc`_b_babe`d`[]^c^becaa`c_]]]abadcc_b]a_`b_bb`fbe^a__^^]`_dc`a`^_a`ce^]bagbc``bd^^b_c`_fg_bea^bd\a`__]_]d\c]^`bca_`c`cda]`ab]b]_Zc_cb`_b]a^abbf__`bc_]_cda`Z_da__ca^_`b^^_b^cead_\]^_b`^`fb[a]_cgbb]]abc`bb`a_`b_ed_aa^ac`_c]eb]ecb^`^]_b_]aebag__c^`ae\`_`a\^Z`_`^b`__c]`]_^a^c[d_]d]```b_Ya`^afa_bdbc^abbcd^^f`d`b]e^_a_]b]]^a`__^^^bbb]]]ad]aa`ceaca]e``a_bcba`c_^`e_b^bb\_^]_ab`h^bcccbacabefc_[`_[\^b_]`]bfba_b``]\`aa^gd`_adbaa_cba^\__]_ba`\aa_[b^a`a``af\b_c`]d[cbc`ef^d`e_b]^c_b`_`^b^bba`]db`beddad_c^abb]`ab]a`c_^]`a_`_^`Z]]][^_db\^^a``g^a_b]c_a^h_\`]fcfbba\_]]a``_ibbab]\_`bca`^\b``b_c_]b[_ac]aah^ad`___b[c`^eb_a^]aa`abb__cc_a\_d_b^b^`]c__\acc_da\c^_Y`_^\da^[`b^a^^^``i`[]a_`\]d_aa_aea[`c_``_c`abc`ccejcdd\ea`ac[^``c_[Zb]^_^b`c_b_^_aa``_^a`Y_``_a[\db`^`adea`a`b_\c_f``]^_bcc\`_bb]ba`c`aYid``b^cb^ceb]bc_^_]`b\cd^_b`bbbb`c_`b^]a^`abc]ba]`_\gaa[`c_^^\_]dbb\^`d^a^b]`b^]^d^\^_f\_cae^\f^_da[a\d`a``b]ea^cba_``]b_aa_]aaab\`_a`_^aa^e_b[]``_ad\_b^bb^dbfac_e\\_d[ea``^b^c`]`]a]\lab\a`cccadaa_c]cba``^`e^dc\c^aec]a^^aa_a`bb^^`]]\^]``^e____a^dbb_abc_^a`d^ddaa\^a___c^`g\[aaac`b^bcc_bbbb\_be^a^\c`\\^^b^_``cb``c^a]``_^_]aba]e^bdbZe^^\ca_^dcfcdZde[[b]^]a]_cb_adc^^`e[bc_l^]aa_^]]]a^^[ba]`db]a^]`^bc__b]_a]`_a`abcbbbe``abg`_][e[a^e`]]aa[a_ab`_b_c`Yg`abb\d^`_\b\_ad\`a\Z^^b\__]c`a[e`_d^c^c^aaZb``\d^`e`_cd`\f]_^`b_d^``^_]ac_j^`bb^]\a^a_`_`_]]`aa\][aa\`b]a]]ae``d``^[]_bda][a[e`__bd]\abacaaa_cb_a_X^^e^]d^\Z\Yc^[\^ca_caa_^]_]g]__e[c[`b`]fdc`^^_be`a^aaa`\]b`c_]iea^`\e_a`a`Y`edb_^_da^accc[eebb]a^^`a__daeb`c\d\```^^dZ`c^ad^\]Zd`a]cd]a]`a`]_ebaa_\a_a]`\a_[f]^^_[]aa]``]d`d\_a_^a``aec`^_e_f_\_]`__`[\[]e`]bb^eaf`^a`d`\_bd_a``cba]f_c``_]a`^ceca]__bcbb_`^Z`_^a^___`b_b^e_eb`ad`^cabbc[c^\d_`ce_`d^a`a\c]]f`^ea_b\]^```[f_a][]]_]fa_a``ce[b`^aabe^^]Z^][g]`aa`]^\___a]\[ec_cb^\_\]^g`_^]kahbdbc__]^`^^di^__gbdeaa_a`ca]b\]^e\a`^b^^^^Z`a^^ab\bb_b]\``Y`c_b__b^d`cbccbd^`a^`_d^`cb`db^a\c^_a`_baab\_]a`ed\ed^]`^__cZdgbabffbcab^__^b^_c`ac__][c\dd`ca`cf]ad^^bcc`b]`eb^f`ca`a^dccb`d^b_aad`b`b_[`^db`ea_aef^_ad_^bb_baec\[^bbab^\a`_ad]abce^``ba`ea^da\`b^``^d____\aa`bd^`bacd\`a`b`cf\`]hd^^^fab]ba`b\^d_bd`ce__e`b^_^^ccac]^c`bd^_``_dbac`f_g`\_\[^_]b`_Z^aecd_a^d^_a`_]]f\b`]a_aga^ed_^gab``]`_[e`_\_ab`__ac[de_a`]b_`^``^b]]b\[_^d]e\]e^cg_e_]_aab^f^]cce^fdbc^acaha[a_be[ca_`^cbca`cab_c_a`]_dchg\aca_e_bf_``ab]]`c`__^^^da`abcb_b[_fead`^b^b_c`_`__`e]___^_^d``f[_]`_\c`a^]dcb_a_c^ece^cd_`^_a_d[^_[c\a`_bf]___]ae]_aac_d]bbceZe`^cf\]fabd]`b_`dbdbhbcb^_b]]]dd_bf\`bcab`edb^^`\c_ade]c__^c]a^a^_cab`ba[\adfg`be``bd^^cabg`a]_gc`^adbb_ccbcc`a`c\b]`]b`]`b[`^]^^]_bb__e``^_^]a^^cc_ad`\``dd^cabc_^^a`bda_c^bg]_`e\_\b__dbcbda_^```a[cie```b_``b[ebc`d\`e`c_cfe\cca_]_b__`a^bg_ba_]b^ead]d^\e]`cb^_cababaa_`a__^`c`fde^\[_da^ab_^aX_`d[`ebc_g`\e_^ab`e^eaa^cab^`ec`bc\cae`]__`__c]ab][b`^_^`aa`\_]`bf]^de__bb`__c`b`aa\^]`caaebabe`___cb^b\_^aa`b^`[^`d^]^^^_`^db__a`aa_bec^dc``bb`a_b_^ac^__b_Zcb]^aa[d`]\cac_^_]^]b\f^^e^_cba_\``_^^a^`_[]^b\_a`]_ba^_d\`bcSa^a`a_^[bb^``]^c^^_aa_a]Y`b^ab^\]ac```_a]a[`b^`^]]0_``a`a`X^^ab]b_T`baY]_`[^~a^]^^`]]__^7_^a_a`]_cb]^ab^m^_aab```_a`]_a`a^\]_aabd_]daa`^`a`b_`__a_]b_abca_a]aab___aa`___^`___`__b__`b_`b`b_b_]^^\]^__Za\aba^\\_a[^b]b]`a[_c`]aa^b^]Xa_^`_d_bbbb^\_`cb\_\aaZ]__b`[`ca_b_`^`a_a`a]_[\_`^^``Yab_a^``a\a_f]`a``aa`c^`_baZb^^_Y_``^^b_\``_]^_a_Y__`a`a\^]acba\_^^a_\`a_\_c]_a_`d\\a][``]a^`_\c]]\`a`a_U_]b``^_c`_^^b_^``^\\a`Zc_]`b_Y^b]a]cbab``^_\aad]_^`_bhabc_``cfab_ae`e_be_ad_abbabcbcca_cc`edac_`ccc^_^__aade_^]_b^[bcf`ab`cbac_cecababfbc^\b`bida_gf_[cdga\^`cac_]b`^`g]ba^`cccb`]a`ca`a^afef`aba_bab_a_b^cbb^ah`]aa_`__`^c`aabadahbb\dcb]^d`bbec`c`fa^`^gac_``eb\`b`]afbc]f_chdabbcd\a^b^]__`bcc`ca`a_ccbcb_e`aafh_a^^baabc]_^e`cbb`_Yd__d``eabba_]c^db^`adcb_abbdc_d_ca`]b^^d^e`bc]a`_a`_^c__[a^b__]aac^bb_^c_`^bj`_a_b_`]\_^a_cc`eb\c_`da``b`c_cabd^a]^_``aaib^a`ai]bdcacbb_aba`\c`aaccdacabaa^a^_\b__`ec``ba`ea_Zcabb``_a``\ca_acb__db]d``^\^d_cc`b_`b`a`\a\b_`_`_b\b_bb_`^b_]aab`a`cada`aaa`baeb^caa]a\_``]___^bb_^`ah_`c^c^`d\_adc\``b]dba\aabo__dc__^bddbaedd`b^c^^_b`^]b_Zdb_`^\]b^___`fZ`b\f_d_cba^fg^\a_b`]]cb`ad^_`acb_b_b]`ca_\ba___de]aa]b\ae_c`eb^fc_]__a`bebbb_\\]a`[_bb`b^_a[a_c_b^]\eh`]dd`b\__]``afd^`a_ab_f]b`bbb`dabbb]`d]^d`ab_`c^f^cba_cd`b`_``dcdb\dc`_c`b_\^c\\eacb]```d_^_^_^f]^`cbda^b`]cccd_^dbacab`^`bbabd`^ac_gbaaahd_^c^gbca_acd`dba\``^[b][]`cadc`_abc`d]be[daeaebadcagbbg]l_]ceb\b`ccc`a`bc_b]b]`bcg`bdZe^b_`b__\ah`cefa[]__daabedaad_j^^]^]__eb^af^^de`]ca^^da]^``cbcc`ja^``f]a^_dbabb`]cbedc__gc`c_\da__]g^^a`df``k^]^b_cbc_bac_fhb_ad_dbaf``\djaa^`a`aa^a^ab]b`a`bdd_`a^`_dk`caa`i_``lbeaebe]aaacdaa_bY^^_`ah^Xa`hagdb`ab`__\`c^bba^^ba]\^gee`]b^_`_bacaa`a\`bga_^aabbe`edj^c`bd\_^]bfd]c_`bb_]]a_ddbZbde]b_a_cbead]```\]ead[`fggd^_^\b`acccbgabac]ga`^_jgdgee\`ab`b`aaga`ca`_`a\aa`daa]`g`d^aaa```]c^d`bb^e_`_]`b`_cbh]ba`abcbd]cb^_^cc__cb]___^a_d_]abcae_`c_`[cacba]__ff_a_b``_^_^bc_`cb[ba`dd][ff^a]Z^a_a\ca_cdb`f_e`e`ba[c^c_fd]ab^d^`aa]_ac]a_ce]`^ce``_^ac``afa`_bhbd`e^_^_al`db]_`^e`d`]cbbZad^a`\bb_^Ya_^`_^ae_^bbi_daa_b^^c]c^bb_]bba`c_g`a^gc]`c`b]b^faac_ab_ce^b`ceaa^_a_abd]ac`_``b`edb`a_`__\ee__^__^]`^^^``ec^ba`ieb`cbaf^acbdaaa^_[_bbadb^b_^adcb_^`fc_`cbba_bc``bcbc___ca[bb`bcbbab_``a`_b`eb`b[b]_c``_]i`\`eb_d`d`\^]b`e``___]^ac^[e__aba]b^d_bcfedfac_ccaabccah`a_`_^^eb]_gbe`]bak_`g]cc_`]``^bd^dd`e`b`\dcfj_]df_i^bbcab[a_^_`b`c`_^^d`aafabc_cbbdabae^bdffd`\i`ab\fea^fda__dbg_d`cd^dcfbeba\^c^_hcc\a__]^eaai\dge]]^\`j_beadbc]c_]b_e]deac`ca`^]_dda^j]^afid_d_de`^_d^ba`^[^a]_badbcb_d`^b]_`f^]cbbdedbafeaaae]\`bb`adbd_cb^`[d`a^d_bdab]da[c`dg`bd^bc\acgcb___fi`_^f`e^cfba`diaea`g`_af^_a^caa`db_``]^]\eb_`cba`ac``_]ba]eb`bc_b]`]hfcacd`^b`^bbedb]iag_\bdabf^^`bb`bb]`e]a`\`]^ficebfba^f_db`abafea^bbcd`a`a^__bac^a_^d[`\a`cb``g^b]d\b_`dfc_^^cbh_^h`_d_b^_be_]a_b_^bb]_`ebad[c`^aa]aa^^g`_aadbc_b^^c``cb``]gda^b^bd`_b]_``g`_c[b_ac^c^_baad___]bdd`ba_`Z]]bc``^^bWa^c__]abbaa_`ae`[cad``bac[^c[b``dbcc^d`[b_Zbg]`bccba\_g_`_^ac_bfdc`_`b\d`_bag_`bbbbb_faab`Zc`^[aacb^]`f^c_d]a^g_a^a`e_b]adb^cac`c\^_c_a[eca]a_h^_`bba[bfccc^dg`^^b^^c^`]e\b]`^[bcb`af_f]^dcaaa`a]^_b]`_ija`adeaa`ba_[h^h\c`cca`a`ec]_g`bb_abcbec^c_\g`af`ba`]a]_ad`ba`_^^b_^cc``_ed_\be[adlag^^bb_d\ab_`aae`_``_caaZ\^`aa`_c]\ce`]d^`e``abc`b\e^cbe`\eaac^`gc]]bba]adae`]da__b`a[`_bb`^`]_d`a_^]b``b`aXc]_c`_ge\^]^`b]^cag^]\^baf^_^gd`dcc]a`_b]b_b^a\bdcb^Z`b^h_a`h^]]b_aec``]e\`c\c_`a`b]aab`^bd^_b_b]``aa]_a]^d]aa^`d^aec]\b^c`bc\[a]h_b]acd`]^\eca_b`_a_bbd__db_a^b\a`^aa^da^baa[fda^bcb^e``_dd`h^_]`a`cc``_``b_]e`_b`]a_ad`hac^e^b\cad^]\`acc^``cfd_]dZ^^c^d``_d[fbb_chb[^eeZ`gb_fcb`__ac^ga^`^`babd`d`dc^_b]___b`__dc]a_d`c_ba_]ad^[_cchbd]__ag\d_^aab^`a]ba^c\]^gcZ`[_ab_a_[X^bc_bY^__^Zf]cY]^`^_`_[aa[c`b_cd^caZ]_`\b]]cdab^cb\]^_\_ab^_dnaa^_]ee^cb^d_bd^Z^_`aa^]`_ccbaa^a\ca^]_]b^\b]cha\dc]^[fbeeea^\b^h^\a_^c_`bc\e_[__a^^df^__aZcd^cbZZ_^djad`\^e]^__^fa_^]_c^_`a`bc\\Zd]]_^`bb^d^`b`_^cc[cb_]^_`b]dcc`a]`e]aaZb^]_]_`]_[_`_ab\`_^a_\`^_f`\e``d`h^cda]^]^d``d[^]a```\S`_d^^^^cd^b_aaa]]`bd^\\a^ja^d^ab]\bacdZ^]c]eda^[bd^\`d``ccae``^_[`bdfY``^ae_c]]^Zch_][`c`Y`^\aa^aaacZ[`_a]_d`c`\][c`b]^b__]`]`_^^_b`b____a]^g`c_`ba]ac_``[acab`]ae__^a``b_caf[e`gf^b`c_^b\]b^cb_`abe`ga`_bdf`eg]^]]_db[_\`dbcdc`]`^``\_egca^c_\_`bf_`cg_^a\a]^c\_aacb]a^ccbd^bb__a\``i]_]`b_cc`^aabecb`c\_cb`acj\d_ch__ac^a_g]`]g]ba^\`]b_^ba`dcce`\g_^b\b_bd]`b]^_]]d_dad_ccg]d`a_`^__\]d_a`[db^\cba[_e^]`a^ad]b_be`d_e`ede_`_\```b]d]b`]c^cd_Zf`c_aaaa_ccb]``Z^[]`^```eaabcccabf]_a]d\]`b]adc^]`ba_^^ad_\`b]_ec^daac_`adaa_\acc_]^]da]`\bad__aceb^d^`_a``dae]`cb_``aac``cb`_bbd_]abdabc`cb_^a^^a`a\]cd_c^c`bbdh]cbd\dab^ba[a^c`]dacb_\^`\b[\_bbad`]\`bb^\ca^bbcabba\cabba]b`[b^c]Z\bbb``_e^ddbf_f_a[]cif`a_^d^\`e^^a_`__e]ga[^ac`]_d_a\aa^b`\b^^_bbdbh]adZ]a^^`dddaabacde]abfZ[Z`^cbb`d`^]c`ca`bd^b][Yf]__bbbb\abdfc_`\b_bdhc]la\`ad_Z`f[`_f^ca]`[`c]`addcb[^c^`^e^a`]^_d__]d_\\cb\c_bc````f_\aeY``^baf`^_cZb`bcbaa_a^b[b`]bd]djaa`acd^_b^c_``]_f\_d^]]b_[`a\gab````a`cacY_U\[_f``^b`_`b^^bcad\_`b^ab_]aj^]`ZY\d]_a\]a]c^^\`a^____cae[`i]`^badfcad_ac^b`fabbfZ[^]caaaaaabg]_c^``da``c`bd_ab^^d`b]_b_b`b`]f]ecd^_a`e___a^`gc]`hd`^`dd[bab_^b^__ce`^adb]c`b_]dac_^\bb`_aa_c``ccb`^^bcbbacab^e_ab_^`bfa`[^fc\aa]bdcc`gb`adbaZbda_]c]\db_\dcacc`_^bcb_ac`ab`abcgc[de^a]ca_```]ea^ba]^]a``aa`\]_`^ba_ffbd[cc`ebaid_baZc`bb`^^^`_bcbeb___fd]b_aadaeaacdb__^_be`ac`_bac_bdfd``_a`bcaaa``gfd^e^c`]ea[eaaaZk`\a`b^c`d_`ce^ca_e^^Z]e]_ae\_`aaf_dbf`_c__`Za^c`^``ab_eba__df]bacba`\[d\__]]b`d^aeabfaaa^^^^_d``fcbea]a_\^^a_\bfa_bf_^dadaaa]baaa_\`e`\c[a_^c``bcbd_]ca_fdbba]^`aaZc_[a[adb\cc^_\b`_^^c^\\]ac_`a^]d`baac`\_[_a_\d^a\`c^\bea`]a\_^]ceda]Z`^]d]_c`_^_ab_]b`\\^_ged_^_b_ddebddc`^dbcebab]fbb`[caicc_``_d_`b`b[dae]f_a^_`^[f_e_^dfb]_\Z_dbdbb``d_^^``^cacb_db_]a`^c`]ba^]`da`bade[__`\ac`aafZ]a_eb^c\bea_\_dcbd^\\^_dbc_\^_`af_`_e`b\\a[a[`\`aa]baa^_b[bc_\b^\__b][^`]`]g`_fa^g\_jZ]`b`c\]ab_e`^ec_ac_a``^a_[d_b`acbb]_`_cZg[``bb[cgfa^_cf^_bZ`cd\ae`]c_c__`_`da]`_`a``]_`a]baaba_^b^ef_^aca^^f`ae^fbcca_adceb`a`abace__^fb`cadb_c_gda^fad_dbad`ca^adc`^d\``i\ac^_]a^a]^`\]`a`_[__`aa_e_`bac]d_`a`bb`_^a_]e]^_b`ab_c]`dcbbZ_`cecada_``^cb`dab\laaZ`_`^_cbe\_a`dcebed_cac`c`__a]a_a^`a_^```_de_^`__bb`dd^d`^a][_a`__ab\]c_dc^_^ba`d`\a_b]_afee\a\^[h___`bcbde_c`__`_`c__^]cd^ccb_`a]__c]d]baaa`]\_f``^c^d]c^a`_aa]]]g_```]_`c`_`]bdbc__b`^cbbb^a_bdcb`]fa^^`_caac`^`b^ba\ac`__a_aa`^h]^^_b^_d^^_c_d`a]ff]`c_d]ebd`a`a`e`a^a`^\b^`_d[\^^cc`^_]a[b_]adce[`^d\d_Z^a^eec`\b`d]bicd\`a\\d_a^^ba^_b_`aa``ff`abbdhacb_cc^_bb^cba``efaad^aa_cbb^_f_`d`c_accab^^eab_`c``ea`cacd_`bbba``_c^edb]aad^^edbfbab```_`_b^babb]bab]adbcaab\`]_bc_ac`ec[cd^ce_c`^a]_^_`b`b`_d_b^cba_]ej_bdafbaaae^_bc]b^[c__b`a^c`c_cc^d^^`]Zab``d^```fbbeda_``]b`\a_b`^^_bd__aa_\a]ac_`e]a`cadf`c`^abb]a`ad`adfbaa^ad^_c]\aec^bbab[]bbchd`bada_a^ac_^]acac[d_^dbcb`a``_caa`ehadb\adeb^badca_cdcb_^`dbd_c``_\bce`a`d[d_cb]bb`a`d^__adY_a_^^baa``d\\aa^ba`]``^cd`a`g^_dd_gad]^_^``eb`b`]c\b`\__a]bc^b]__^]_]_`_d`bZ\f_[`_]a^_``c]`^]``_``bd_a_^bcaf_[[ce^_b]c]dcdj]`d`_`]df]b]a^`d`ba_\b^aabb_\Zd`][ad_\\^]^[_ddbc`Xb]caa_]^]edc_b`b\`^b]ea^`bb^c_`c[d_hdf^c`cd_ba[c^_dc_cc^a^_^]`_ad\`a_b`^]^`]a]abda`]^c^_\^_b`Y_fa`bbc_Xcbb`][`h]bgb_aca_b_c^_]`^[_a]_c`feaacce\^a\\Wa^`g`^bb]]^c]_]^_aba]_`c`][g`_``^_bb]a^a]fZ\`abb`_]c_bceaZa`bYah_]e_bda^c^h]`_b`a_ad]cac^ebaea_`]\Za_]_]\dd[_]^b]`^d]e_^`f_^abaa^e`_baa`ab__aca^_ab`c\[f^_\`\_b]acf_^d\d`b`bf^g`]aebaea^_^_`dca^a`f_\^`_ba_^^_babj``\cb`f___`_`cd`_c^\]bZca_`dga]hce___cdc^`b`_^_]a^a_dab^]dbb^]`dccdhfg`]d_b`a__]ab^aeaba``]cbbbbhf]a_^]a[]]ccb]^^`ca`[c^]_]`_bc\ab_]fc^bd^_bh]cb_`a]b\f`ccd_`babai^_b^]^e]a^_^a_eb^d`ea^d``c`^d^_d`caa_`^_a`e_b_`]_`Zccdf^aaccb_]c]e`^[^ca_a`eccb\Z`fb^`^b^cbe]acacb^`beba_aa^a`ab^b_^_b`_e^_bf``a\\^c\ccc__]^b`^`bb^_b`cc``ca\acg_bba_[]`_^^`]cbcc\^^]``]da_`ebdc\`]bb^a^a^cc_c_fbd^bcafaageacc````_bfa^b`a`c_^_^ad]_a`_bg^`baa]]be_^_^``g]_`ccac`cd`a^]a]]\`_\]]fd_]`aec_d__d\_\_bbae^_Zcab]__`b_afh_icf_d_aa]ca][`^ae^_`^ac`_aaad__a`^__`fdaacdea^c[`cca``bb^i_af``a]__c^Zb\a`[Y`b\b__acb`e]d]^```[[]_]^`ae`fg^affe_^_[f]]`^cdb``^_`b^]_\a\ba^^```^b_`h__ac]_c^`a^c_bd^\`^`[``__abedb[i`a[Zbbbb[]`e\`\Z`^d\^ac^^]_^cc][da_^^\^_]^^`^`[`hcaa`aa^``^aaZ_e^d_]^``]bca_d`cb`a`_a]d_d__]_]dc`eb`^a^aba_c_f\_c\_ab]__bd\eZ_c]baec^_Wa]``_`ae^aef__^`f_^_`[cfaf[]cbd[_a^^baa_a[`^a__]`]i]^^_a`^fc^_f]aba]cg^a_aa^d`b^bda_Y`ccc`__]__cb_^a]c``]`daa]acc`^bbgabaaaa]a__baa^]_dbb`d`cbZcaf__^da`_`afad]\^_abcabab`^_]dcd^e[fb`bbba^_fa]_]a`c]a]bea`]^cbaa^^baa]b`b^`c^b``cd^d^d```b`]be`]^a`_e]^cbeb^]bb`__a\^ba]cc_b\da^_b`[_`]\bb^bb_b`_\b]]d`]b__^^^ca`_cbadc^_`^`b_c`a`adbc]dacfg`]db_`cab`]\d^^e`^___gd\mfccka_\bc`bacZf`eba^gb`^^^a_b`hc`__bf^da[_j__a_\kc]\_a]_cb^`c`eeb__```aeb^bab___b^_`^a^ccca^ebc]^c]^`hj`]b`a_`a^f^_caa__ba^`aiaa^a_]d``f]_e`d]`dc^aaa`b^_afa_`^_b^`_`ceeb`a_`cadb\]`_^eadZ`\bcb^_bda_a_`__d`]b[^Y\b`da_]^a]cc_dag`aa``]cdc]`^^ab^X^^_]^`gbd`b_f`_a]\\``[__`_\^d_`b````]b_f`^a]ced_^b`]d_`daca`_dZ^^`a_cebbcdec_^][`b_]\a`a`b`^_``]^ha_]]^a\\]ae^_^a^^c_`a`[fZ__[]_abca_Zabdcd_ab^\d`]a``dd\a]a`]\_bda\ba]e^`_`cb`^``aah]aafdkabe_\`\a^^\[^a_``_c]\aaaZab^^``a\a^aaaa```a`^[_\`c^`\]_^]b`e]`__^agb^`bf`c___aac]b_b_^`a_`a\`c_`cc\`cZ_dbc_^b_\^`[]]_^^a`Z_b^_b^a_^`ad^bda^d`_`^ac_`ca]a`]b^c_a\___cbd__^`c]c]_cdfbf`edhb`b_Y^a^ec_cdb`aba^a_bb_eb`_^`_``e__c^^]bed^`a`]dc]`\_]f^_`^^`_b`a^ccd_b_ad\b_de^d]ddh_`daaaabbb`_d`_a_e^^eagdd_`_^abhaZ_\`]`a\c\ccb^caa^`h`c_a\faba_c[[`Yf_gbeacbg\a]]`_`]ab_```]]bcgcb_acba]^_e`^a`eeadad_ac_e\\cebd`b]bcc`i_e`d_fb\^`__cc^ab]b`]]_b]^aa[]c]`a_e`beea]_\bca]`cb__bcga^bcb`gbb_b`c^`e^^]`^[^_c`c`^b_cd[abdd__`d`b^cc_da`a`a_db]]cdaad[`_bba__`_a_a`cdc_b_\_]_cc_adbda`]`af`]_]c^`]a_^b]_bc^dccb``_ad_`]\`dga^`a``_a_a]aeebca\`ca[_ha_ba_\e]]_^`]h]]^ca\a^]_b`ab_^c`a_ee_c`\_accc]`aba__a\a\[aa_^^_^ed``db_ad]]^gb_bg\`^acb`]d`^d_a`^`d]_^_`b^da]a\_abd^ac^^da`ba_bb]a`^]^^]caa_`_ha^^abd_`fc^a__b^e__^f]aZc^`aaab_`abbaedac`^Za`^_cc`_b[be[aeaa_a_`]`bab_[\_`_dbf`a_]]b^ceca^]\_baba``Zcb_]`b[]dbb`da\]ac_adc^^add\`_a`ae_b\^a^Yb`]^cZ]b]ca_``^^b]fa\^\`bc`\\a`]`]b]bb_^aced^ab]`^a_c`c`^\`^b^b_a`b_b[^]fbaa\b_b`]ca_b_`a_^^_``_`^aba__a_a^adcgd___dc\c`be`\a]a\_[e\`a]da`baa^`]__cZ_`b^\`^``cbb`c_dd`bcb^bb]a`b``eg_^g`db^^b\e`^_cafg\_]bak_abcccbb\`_`bb]]^`g_]b```cf^`aa_da_]_^^^cd`f_aaeabe_a\aa`^g``b\`^abgcc`_a`^_bb`]a`aab^`a_ea_c`_^__dfadab^c^_fce`d]^_abb`c^dggcab]e\ab^c__``Z`aa_bcb```_bcabbedbdb^`bbc]^eb`_a^aga^```a__aa`gb`aafcabaac`abd`_\cbc^aadb\bcba_d^aba]b`\_hd_b`ed^_^da^g_ac\``ac^^`fc^^c`_^f^ejf^cc_b`a_b^_dcdda`f`da`^cd`^ad^`ec`_b_d^`^b__^^_`aa`^[]_`fcfeb]c_bb`c`c_bdba`e`^^haa^^`b`e```e`c_`c___acbe_`]bab``bb_`ccda`]a`_c]```acacba_a_]a^a`^a`\^_bbc___b`a]dabc^d]_a]`b^_[`]a__bcc^b`b]^^\]_dhb_b`db`Vbc\cbmabaa\b]c`abc]a`e^cc`dced]^^_```b^]ca\g_d^acb^\ba^b`]b^ed_\b`\`\d`\`]aa]f__[^^bba_]]_abbfhec]`dab`defb_cbc^bb```\aeb`^d_bdcb_d`_[aac]_ebb^dcaa]gcfa^c]`a\^Z^aaa`^bb^dbd_ca_cac_`d__bbdc_`i^gab_da_behac^ae_di`e^^\`bca^_]b^`baba`_fed`_adb`__b^_b`abd[^]a^cb]`e^^^_a__]^`b`f_^d^```^a^aac^a`e_c]_c^``bbaaaa^_^aZcg`\b``c`]baae`ab\c_^`ababh`d__eea`]fa]__a__`adc__cfb[_acadb^be`^[]_c^^a`c\\f_bcfc`]bcba_e[c\__bbaa\```^`^`_^`^ahbc`_afe^da]b`cc]`db`a_]^e`gfaga_cc_`^_]]^bb_``cbb`bd^fbae`^a`]a_ddbab^__b]aei_bd^^_c`b`^^bc`]aaaa_c\bb__c^]_]`Y^_]c`ebab`f_eaa]`ca_]_d`c``c]^_]\de^a_eca^f`bb`b_`a_ab`]^a`b_b`]]^cbc^e\a`e_bacea`da_c^bc^Za][bbb\^`_a_^^^\ef_e^`_a`__^`_ac]a^]_a`c_c^^_d\`a^c_^`b`a``a[bc`d``a_]ca_`fc`]`b^^^b_d_bce^b_c``\^^bc]\ccb__fbcbaa\a__b`]`]__ab`g`bcdaaa``^abdad`_^_aac]`e_f`cd]^b^e`a^_^__a]\_\bba_c`Z`\^b\\]]fbdab__``\bba`b`^gf]b^aa`aa_[a_]d`cb_a`a_^e^`dba\bb`bbed]ede_ccbd`_`e]cacdcg^db_bd`e^ec[c^d`_he^\a`bbi^ba^acca`b^b`f_ifbbe_]adZ```iaac_`_bcd_g`a``a]aeb]a_ca`ba_e_b^c`a`^`^bahedd^^dca^^adcaa__bcbaaegfcdgdgbcg`_^c_\`^`baahfc`]cb_ad^`c`cadf^a^feabb`iab`^^`ce``g^bfaeaapd^\adbe___c`ba`_cacec^bg_h]g_ccba]_`cgaa`_`n\cd_``f^dkcabcecb`be_db\ae`acad^i_e_`adb`eciae```aa`ac`_]^fbdb_ac``dea`db_^c^d`a`ce_f_`_aa`^ddbo``adcdab_`_cc_edZagh^c^aa`fc^^cfgfef`c^f_c_`dc`]`a`_ea_c__eZ\a``bdcca^db`b]da_bbac^^a_]d^ab^a_`b__\`_ba_\b_a_b_`_e]c`Za]`^``a]]``la`d_^`a_eZc^ab_a`ba_cab]]ac`b`c_^cabba]c^a]a`g]bb\c]b[iecea`][adaace[^^d^d`c^bb]f[]d]f^a\]^``_a__daa`b_ge`\_Za^a`^]`^f``b_ab`^]]aba``]^_g`a\_`ec`bcbcca[a\db_a__d`ba]]`b^\bbb]`c]^^b``cf`b`baaab`c_[be_\bd\a_`edca``_ca]]aaaa`]^_\`dda`^`]`^b^ac_a^^_fbd\e_ada^bdab`caab__b_aa`bea]]eb`^``aa\edca^\_ba^c_a_agc]eb`_Xd_^_`_\gb]^c_a^_a^_ad]ae[^_`_eZaaa`^`_gc`abbaa__``^ea_a^`]e]c^`a`^abc`_b^```afdja`^]db`e`_aa[cbfa`b]]``d`bdcadabb_^_a]``^abc`ba_[fb`ba_`bbfb^b`c`^aa__ba]ba_`_`^^b_[da_^^_b^bgadabacfac`^b`cc`b]]``]adfcbgc`^_]]]bba]]adbab]ac\a^a]``bd`fbb^b^a_bb^Zc]_\b]a\aad_`aba_``aac^_`]_^cb]c`^_d___hb_b^a`befab^ca`c``c\]^aa`_]`dcae`cb]ab`b^\_\_`aagc`bab`\a[cc``e^_^ba_^`c`caaa``_c^bbd^a_bhcb``b_d_ab^h^b`_b_bZ`c^_d`h`eZ_ccb_a___^a`a^abc^c\e`^_`]^`cd[acd__a^_d`e]cbab\c`c`ac^`ba\Z_d^_^ab^a]Z_bb`_dff_^bgbaad_giaab_]b]]fa^ddgb`_aa_\ab`a^babdba_adc`_db_^`b``dbchb_a\ae^bb`bab^b^e_^b_addf]ca^^]ada]baca^_f^_`b^d```bb`c^cd`_a___\]_b]b`a^^`_^^_f`bcbcb^cfc_`_e`_b_`_a`g]ba`^b`[`___^_]]b`c]`^b_^d`bdca^`ke_cadbdbl`abee^_cabdcaaa_a_bd__`cad`^a^bdc_`_f``ha``_a]_^^bac`c`a^`_`]c``cb^bfaab_bbcbdabaaa^a``b^_ea`a``_\``dahabb_]__jc^a]dec``cb\gc]a]ac`^a`b`dde``g`caadfZd`_^d_^_ce`]aa_^_ea[`_]`c_`]a``g_ab`b_^^dde^``^]a_^`dc^_]_d`_be`aacba^ac_cea`ab^^[_bb`^b_`a`baa^__^__e_^^b^`c][d_^ab_^afa\f^aaab_``ccd_]b`dbh`_ecbbaag]deba`^]`fbd`_a[eab`f_cbe[`]heba`^`_b`]^aaeb`aae`edfab^b]][^]`^c`fddf`e_`_`^b^beY\_ag_bbb`a]Z`dda_a`bd`\`adaad]b``d`eaecbf^_bfad\daf_`a__fced\__^d`b\_[b_\bbaa_^[`a_\\ac`gcb`c`_bada^f\^`c`d`a]`c_f^be`bb`\__]afbe]c^^b`bb^^ibdba^__`^b```bdc`bb_e]aZeacaabdbac^__\aacdb^c^aakc]c`gcab_Zfa^_d^ebac\c`_d_a``_ccb_c_f_`a[daae`_^aabeac^bc]e\^e`h^^]d_b^Za^cba]Zcae`_`_`bce`d_`aa\a[`^fc^_e]]__b_`]_a_e]]_\`gae`_a_eb[a``abae^]`\d_]aad_b`^adc\`Za^cf``\bc^\`^``a]`b`a`ab^`abe^`a__c``\adc]`__\]^]b`^]bb^_`^c]c^_fbbbe\baac`dba`a]]\e^a_ba_bb`^a_a[^^`_\]b_cc`a^^^_\]badcc]e_ab```bf]_a`c_eb^c]cdbc^baad_bbab]^ac^a]^_`]^`af^bb^cb_^_]c]a_b`Z`^_ab`]``d_\d^\^baa_\aed`a\ac_eb\ceZ]`b^]d_e_e_`_ac`ac_bc]cd\abcbcab`dbac``_bed^`_db_]e``fb``f``]a`a`eb]e^aab^g``_bb__d`_b`__`^^_b_c^`^[af``_babbae_ab\\]\^Ydd]_ba^aab`b_bc`ac[``d^```d_c`d_^hZfb`_daaba`c__a^bac^[cfZ\aabc\b]^cc`cbcbe`^__a_^aacee`_`^ebbcb]bd_^a`_]ebab_ec\_b`f]aaa^c`^aeebaa[d_`_^]gbdc[a__a`d``bcab^g\`^^kf]d_b`\be_ecb__ba``afa^`[`dc`abbdd`b^abebf`a`caefg`_`a_da`a_`a`]c`c^cfbcab^`bedabb_aa^]bad]cab]_b^c_bc__ca^\^aab`aaacfbf``]a`_haab_ac_aaa^edaedb`a_\`\]b\bjabbaea]_b_dbce]\ab`ab`_ebfgcb]\c_bacecace^_ca^\\be_gfc_a_eecbeabce`\bc_b_ea]d_cbaeb_aacag^_dc^caf]fbadc`a`bfaf[]ea`e^dad`^gdbac`daabcdcfgac_```_`bc\cd]b]e``b]dbb_b`d]``fd_da``b_c`abaeb^c[`df_^cacddacdcba_afh`ba\b`b`abZb\b__b_\ab]b`^^`^cbc][b_]e^^ceae]_f`f\b_e\ab___a]a`a_b`]a___b`]aab_a`c_`ad^[`[a_[a^_aZ_\caiaad]^d\Zdbb_a`]aYaY\\bba`_^`_^b_^_bcbdd_d^\]fd^b_acace]`\a[\]_`Z__g[b`ecb_]bjc`^]``__[Zb_Z`a]^dgh`hb^ac_d^^`^_`b_\b``ac__`__\^a_ac^\\``^aabe`]dbbb\dca^ba`b`_^]^a`a`\_]_]]ab__`ac`bbb_abbcb^adc_`__aa_h[ab]`a\]b`^_d^^aba`ae`^^`ab`Z_`a`aa`]`a`acb_a`bcc]`]a^^^ca^Zb`ab^_``]`b^cb]Za`a^a^^]_c`_^a^_b^e]ab]a^_a_da`^e_`^]ab_b_g__ea`g\_ca]_b^[_^]_dca_^\]`[`_a_^]^`c__daa`__\d^c_a[^`^bbcdc^`f`e\hZaa`e`_eZa_aca_d]c_]k\`Y`_b^^ad^[``a^`]a`affba`^`_adZecacbab__b`ba``dce_a\]a_]^a^c_a`b`gc_]d``_aai^^]]^a^bcacace``^f]aage`e_]`c_^```^^]^beacca^c`baa^`cd^]\[`]]_a^^[Z]]]^_a^_`ac_^cff_dc``a]_cacb[ca`]aagceaa]]c`\b`[]d^ba]_abb_`\_^e_`\aadde`a[]^]bacbab^`deaaaa_``^b_]_^]dc^f`cbaZ`^ac]^cba_[bbY`_^^_bab^bc`dd\_b\a`_c^e`cce_eeacf_`baedd`baabcf`_a_`bb_`cab`db^`^`[b]cf_b^]^`beb^fa```__\e^afb_^^ab_a_c\cc]gf`_f]]b^`ac_]be[a`_acacbcbac_ab^_`_cb_`fb]ac`b`_`b_bag]baa`fac`]`ac^a`b`da``acacd`a`_dcbb]^b^`babade[c`bcfb`abbah`gbcb_ec^]^b`b`\]bbd`_db]d[aedaeibaa_^a_a``a`bd^ebgbgg^abbf`acc_^dc```bcaa`_bdc`a\b`aa`\a_bbabbaea_``a`ad___b^^^_```caaa_a^a^]fb`bafb`bb`bbb`a_]\dddc^`a`_]`ab^abcb_]_`Zaca`b``d^c`ae_a]^cbddcab^`a_fcdc`accab_c^Zg_ebc]c^e_bl^_^db^`fb]`faa_^_`^bac`fab]\b]a_^add`hccc`aac__a`_dd_c]c^`^aa```^^`\``dcd`^accf]ba__adbdcca__`\faab__d_bcad`i_a_e`e`d`]_a]__b\bb^bb]b^`\ba_bfbc_aa_[_b^deh_Z]\____^cf^_a]b^_]babc`b_d_^b]d`^]a``bZc_]e_`d_Z^c_e``ad^c``b]b`^`_`_be`ca`c``^Ybd^`^aaadce^_\bbj^\`e`eb]_\aa`c^`[^`bcde`a]^[bb_ea_ad]`d`bb`adadc`bbacc]c`a\d_^]`bde]bha_`e^e`f^]]a`a_^d__cdd\`d\^_a\^ach^d_dah^_c_be]i`\aah``d_d__ca``_[dc_b]`[b^Z`bde^`_[`bb\]dbdbdaa^]a_a`c_`a]c__e]`Zac[Zj]bbc_```]__b_b`bbeaaf`cZah__]bbha^gd`a][eia^dcc`ci^_ib`a\e]`ad`a]c_f]a_dcdde[_baec[_^`^^`_d\dgZ`bcb`ac_a__^a^fc`\a`bgad]`_`a__Z_^]``bd_bgc_e___^gaea`a``d__a`ed^``b_a__``acgcdbc`_d_bb^bacccbb`[`]ccaccf`dac`^c_ad^_]cY`_`^^`badba`b^`da_ac`ea^egb_g`cc`a\abcaaaad``adaaba^\b^ai^[bb`daae_aa]a_^]^`adb`_d`a\a^[fddd^_adfc_]ebcac^^a``c_]dg_b__Z^\ca_`a`^`e^faad_\be```aed]c^e^`^^bYd^acd]^__f`d_`aacb]`a^fd_b__e^^`a`a_dc_aabaaa_aa``^baca^^a`^b]a_eaf``ccdd_b]``_[eg`bb\`__bc_`c_]accc]_`]``_bdd^bd^cabac_ab]]``a_\b``fbfb^c`gg`daf_^^`b^b^`bc`c^a_bc`ba]^]`^^b_[_edia^a\^c]b``ceaehee_``]]aa_b`\d_^aaba^_a``f_ad\bf_a_a_`aa`ac`\_bi__ibccbba`^ebaceda`ccb[^aac\acfe[eb]bg`^\a`Yaadbhbdb]g`b`c`cb]b\]bdh_^c^acc^`^f\aaadcacb`dcba`d[__]dacd_b`a`bbfeddbb^]bf]_`\ab`ccbbac\_addbb``\a`_[]be^a^b_a_b`aaea`c]dab___b]`a_b^__c`cd`_beaba_^b_`ac`a`ad_ad_b_a]`b`a^cd][_a^a`\bd_a`\``acad^__d`a_a^]ca^`_`\daa`a__b^`h`abf``b`ea`^c]ab`^bdaaa]Z]b_a`da]bcba``bagaaaa]\ad_`^cbcbebg^_]_dc]^_b`_ad_b`daaae`_a`eab`^`aab`cab`^\dab_ceb]fabc^^ee_b``ab^ccfb_eZcc`_dafb^d_eba`^`dcf`]_]c_eb]_c`b\aa\bb]`aab`_b`bb``^dde^`__eab]\^_a\_\_\`]^_bcbb`_acccb_facd\_i][c`\`hd_]e^`a`ba_cef`^\a]_\`_^_acbbacb`_caa``aabZ``_aa``a\``f_cac_\`]a_\c^^cba[`_``bc`dac_cbabeh_c^^edab^]_e_a_bb`d]`ab^`^_d``bcb_ba`dcca`^b`]ab`_a]bd^dgdaaabc]_bac]]_c]c__ba_\`b`a`^`_a]`__ea^b[\]b]aga`abbcb_^ga`cc]^ba`^a[__a\`_b^b`a[]f`b`b_^baca^_bea\afacab\__a`b^_bdbbfa_d[_`b_bde]ccbgc\\\]a]b`]^af]aa^a_c]ebgb`b\`_]`]`fca]b_]`ca^c_]^_`_Z^^`b``_a_a`\cc`bdZ`_`b`b_`__h_``b]cbb_`__^c_`^e^`_`d]^ba_bhb^_db``cbad`__]``_ad\_^`l^d`]`bea`b^_a^a``^aad^_ga`d]a_cbebc_]\`c__^`aab_^_`_]]_^`aa`^`c^]dea]aaac`bbbca_\bb\cda]deabbd`eb^b`b_]ha`c`d]_]bc^g^_b`f__\_`_`be`^accd__h`]`e`b_c``bb^cb`bad^b`bac`]b`dfc^ahb_e`^`]a_`]`bb``dc_`]c`^]gcb``_ae_``g_\]^fa_`cbh_^a`]ac`_`aaba_bba^aa``__[`\b]b]`^^ab^bd`_c_bra_``^bc`b]^eda^abc_ib\cegc^`a]^aa`^ab`^bea`dd`a\__baa_a_c`a`\aa^b`caa^b`beab]a^c_b^c^b`_a`\a`^^^`af^`c`^`\]b_b_`c^a_bb^`ab`\__bb]\a^d_^`cd`ddca_cf`g\Z^cgfdbba\_fd`]cba^`addda_cd\ad_aa`^c_^`a_bdd`daa`[_`b`bba`^aabc^_c``bceabeaag`c_ccaa_^abf_cabfaa\`cbbab`baab]ace_db_`_acb`dbf`\c^]\``^bcac^_a`ad`]_b`]bb^_c`a[_gb_`_`bccb_c[cd_\cac^Za`_]_^_c^`ba_``]ac^db`]da^_eaae`_b]`]a^aeca`_b^c_`__`_^ea_a\ba`da_d`ab_b`__ebc^_`e_dae`^__``faaabbdc_beda_]adbb]dbbfd_cab`a_dba]`^a_bd]]c_f]b_dfc^`dababbag_^a_c`gc`a`g`]\`ad^h^_a_d`c_b^_`a[_^`]ed_a\c]]`eab_``bcac_hd^^b_bc^cd^]\ac\\aaabcaa`e][c]b`_f^_b_dd]`]b`bb\``]cbc__\\`bfb`^_aadaeb^`_^^`]`cc`_c_`\_dac_c]]b_`a^`c_abaaa^c`aa]cfce^__ab`a`aa`^\a__a`d`g^c_^`\Z`_\a`bc_ad[ca^cbaad]a``b`c_e`_`badb__bba_e`^`ca`][ea`e_aa_c__cc]ba`_e]^\gcfa^d__a_`e]cc`a_`^]dca\ec`b][b_c`bb^\_a``_^baa`^ac`b^^a^b_b^_baa_bca_ccc``][^cb``eahaed]\_c]d]ca_a\e_`d^b^^]a`a^gh^_\_bfZcbcab]d`a_`c`ec`c`a`_\`ac[_]``fa`]aa_bb^da``ad`a\``b_edb_^abca`aabahe^]b\b\^a_\cc`abaZdfcad_`__`bade^`a_\_ab^ba]_aa__]dd^\_fb`ab^``_`gaa_bddb\d]^_`bdcd_`_b^e``^c`a_^fb]a^_``e`ache_^`^^a`ae_b^ac]_`b_fbb`_b_eb^`aZbcc^af__cd^]ade^bcdfbcac`bge[a`ab_bc]d`a^ac\cdcd^e`a\`c`_e__`b\bfdbaa^bbdd`_ag^Y_``bb_g`\`a`abc]_]aa]b`bedgb_bcd_`a__]e`c_fd_`bc]aY``a^bb_aa_ebcbeacda_]c]ba^c]`hbc]]^^aba_a`aacf_\_e`b_]g`cbfd_^a`d_^c__ad_\a_deb[a``b\e_b^_ac^a^dcb`bea^[^^bdcb]b``a^_b^_c\b^_ab_fc_c`^cbccaac_`b^``^ccdc__ihc`_e`b`dc_cba``dbdag`^`^\__]cadaab_b_`__dcdb]\bd`^bgae\`ccda_[\_`a_]g`^eeb^`dc_aa^c`^b_bgafeb```_\```a_c_d_a_c]bf_fa^```b`ccb^c___b_bdb^b_f`de`^`^_^ddcfai\a\^\eb`bc``ha_`^^a`bbb`__]^]b_ab_a_f_a^baa_^d_^a^ac]ac^bed```\d]^]_]]a]eadeaf^__\bcac]a``d_eececd_^ac`a_bb_ad`^[cjc\^_bb``a`df^^d_bhe`a]]`f`^``^baa^]aabf__kccbd`g\_ca`^a_`^`b_b`]abd`_^^_[f^[c`_cdd^iZ]a`a^_afdb_^ab_dg_^bb^a_]_`a^\`c^]cce`_aad`bjaa_`c^_c_bad\d___i\^`e^_a^^]a_[__dd`\_]bbb[a`_^\bb^a_b_adbb`_e`]`f__]b^dacdd_b]]`_ac`b_acb_^b`g^b_a`baam^^^[`abc`a`^_b]aaa_c^]`]b\agc]]`d`_`_a__f]be_bd`^^dbf`_`eabc``blbafc_ba___e_abe]a`_d^`aa^b`ajagb^cf_f\abc_^a\`bc_c_cc`^ffa`cab]aa]ac`bfg]c_caf_ed_`c`dd\ac_faed`ad`bf_a``d`_a^dccbbce]b`aa^a`faba]hacdicbc^a]^`_a`ffcc\aad_eaab`a`b^abbd`a]_a\dc``b_aedd`cacbZeccbcac`aibabb_`ac``bcdbbbe`_a[fbad^babff`_]``c^\`b`_dcabbcae^`deg`aade``__^c^cca`c^b_ja^eebb_]^bc[d`fafad`]adc]dd^d``b`a_ceadddfZ]cba_`eab__`cb]\`c[bc```ba`]`aceeafc^bba`b_ff_bd^]f^d^d`]d``f``ed_bdcab__]b^ddbbe_d^b`d__a^cb__ahc__^bd`bc^`b^eead]a_df^_a__dbae__f``aa_cab`_dabbc_caga`abd\fegcc_cd]_^]ab``de_eacf_d`c^eaa_a]g]\b]adbde^e\`_aba`]`faabk^`c^\ea`_a`jb^_d_``]h[a^faa_he_b_b_a`_`fcd`bd_ab`a`][e\d[b\_c`]dgcdbd`cc``ae`cba`\bf`^ba_`b_d``gb]]cc\\_^`cb]__c^^caa`]ada]ibb]cc\\_ca``fcd`cha``_^f`_faaa_db`c_a\^ccedb`bcc`c_a_b]dd^ad`ac^d``acgded^^`_a_^cbbab_af^ae\afb`]__a^c^```aeb```b_acb`b``cc`d]^beeYh``[^^a`_b^bb`dedca^aeca_`bafca__b\bb_abe_]acbb__b__`bdb^`e`fab```\egc_ea`cc^ab^d^d_[be_b`c`^bb^_d`gcb_af__fh^_b``cf`]Zfbf_cdbaa]ceaceb^ee^`e]^^bbfd``_c_^b`]g_^d_ac_^bc]^ccc`]bh_b`fadbccaeca_chc]_`^ec_ccbb^\e_dfaae_^_i`dcbc`bge[a`ibd_dacheae`aafY]`b`i[gaabbbcfc^^^fbaa]fbacbbcbc[_^ded`aafb^___b_dc\fgfa^aa`^efeg`baeb[_ccac\_aae_\^edcfbf\_`aecd_^_c^g_eecc`]`d__gc`]`fccc_aa_hbb`a`ebhbdgceca\adabb`cbeaebb]bbb_cg`beccab`cb`c]a`cac`eb^^d\ec`a^bea_fb_bc`f\\cda`gbbab_ah[^c_ccbda^bbdd__deeee_aaac^\cg`b`cb]e`afacabe^`_ddaa\e^^dg^___fb^`ae`__ba]_^agaaa`b^Z^ab\ada\a_Z`__ba__`d^`c_b__``bd_a^_a_h`_\]^]`bc^^db_a^db^bahad`a^^edbd_a`]af`_]ca_dc_aba^dad_\ff`cdb`]Zg^^daacbeeb\_`a`]_ac^`i]`aabg^^_b^`_b_d`b]_]a]\Zcb`_acb_`c_`bbb_^[^``ca^`aa`c_da^bebZ\ee_cb^cfec^_bc^_a^`_b_^bd^ba_bacc]_efh_b^a`^b_ce^da__b]d`^_^ad`aed___`^_Zd_^dc_c]``_]acdd`]`c``hdcd]g]eb]__a]cebdacccdbea^_]_dbdbc_^`^d_`^`_aa^Zaab\f`a_\^cfa]ea`_`ca^__^`b^dc]`]_da_dcaab^_`^]aa]c`ed`^c\b`fbd^b\^b]e^^`_ac^cae_e`_b^`da`^c``_bc_\`^b^bbb__f`cbac`_gc__`bdbcef`gda[ab_^dgbbcfbae]d`b`abda`Zefaba_aa]cc`he_^]ab`b`aai^_c^^e`_j`a_a`]`bd`b_ad`[adcc]f^_aca`aa_gba\]ab_ab_ab^_]f`d^d`abad]i_adea_^``[dbc`dcb]\a^eede_]a_ca__\[bcbedd`cdga^baac`cbaacbaaf]bf^dbba]c``ai^\ddabb`bd_ef]Z^^`e^`bhbeddb^c^c`]bcaabeb[^bcdac`e``bgb``c^`_\fge_e_ceeb_i\`^cdd^_id`]eb_`^bb`^]hed`aa^eb`cf^a_bfhb^_b_]]_bcacdh]`cb^_`b`ca_cb][ebec\ddcac^_bc]dbba_aefc`fcd`^]acbd\d^]fecd_e^b^`ae^`db[cc_b`e^f\hbc`_heabc`^cab`cbbbad^bbaaaada^d_`bfc\cacba^dc_]\e^e\`[eeacdfdbcba`d`]c`cbc`_d_`ab^fcbZd^a_^ebfY`bcddc^maaeeb__ag^\a`e^bffedbj^e`^gcc_cbdbag``acdgebf_e`dd^d_cdh]^abbafad`adVab_fd`b`hcabfbd``a^fccbab\fe^`dd_b]_b`^`c_caa`dcdaaa_deabbbc`fc]cdbf`aabgddhd]^aabdg`edada^d`caagbdec]de`abd_`a]cai\hbc`he`bd_f_feddid_h`aha_gdd`__d]d_b\bhcd`d]bbbgadcdeb_`ceb`acedfd_`_ahg^a_cecbagbccd]fdabd_eabdfbggd`dd_cacbccgccdcb`ddbea`id_ecad`dd`_c`^gcad^_gb`cb]`g^]dfa\f^f_caea`\_adeb^_\d]]e^beacb_ace```a_\]^_d`_b_\a`e_a^fbee^_^e^]^_e``baa_\]e``^`bbcf````acabcd`a`e_b^d_j_a`b^`^``_^^``a^_`ed`^`Z]``f`d]a\`]bd`_f^fdc`]`_dcabfddb]`a__bbc``aa^`]``]]``a\aa]^fbb````ec]`a[`bac`^`adba\f^d`cdc]_ac`]c_feb[[acba`afac_ach`k^cd[e_`eea^_^_`_db^b[c]^dd__`d_a^__`cbc_^bd]a^bd`c`b^bbb`d`_cbc\\c[__\jacab[h]]cea_c_ea__ci`g_bfa__\d^^ca^__acb]_`dcfah^c_cg]aaa__bc`cab`a_db]iba_b\Zaa^`^d^``_`_f_ebb\]c`dc_bdf][^`c_\e`\`]]``_]\]]g]cbeae[]d_bb__Ybed`^]\c_`b``c`_bf`_]ccc`bcb`_`f[c_`c^ab`d__ba]_b_d_daf`c_\a^igdabd_]`c`be_cb\fb``e`abba_b^`bb^]^c]a`ac]]`\^bcac]g^_i_ab\d_a^fbab^beeac\ac`d```a``ceb\]c]ac__^]_abfc^ba``ead]c]cec`bdb`bae`ee`cca^a^\__adcec`_b_`bg`aa_b_ajbc]d__`_`_\^a_]b`e]e`^^c`f``a`a^b`]\aa__^fbi]bcceb_i`^_]_`a\bc]^e`Yccc]dabdce`ai_]egbg^`b`be^_````^ec_c[c^^]^\^b^b`a^bcbc`dca^g]`b`_ca^`_b^ad_`bb`acged_\a]d_^cgac`c`f_^]d^^ebac\fbaa_bb]`hcacbc[]b^c`aaa_ba_]cb\^_^]`cac_`_dbe_d[`gb^a^Xc_bc`b]cb^f_c`b`cg_`cc^cib``c^`b`^```d_ab^a`_f_ccc^daa_a_`_b`c]`acc_a```d`bdab_a^bba^c\]]`^a_^`d__]``dabd\`ca_c``ccbeaade_ee`]aca`]`ga^`c`^ab^dccdda`b^do\``f`d`a_ad^a_[ca`^a^`b`_`^c_beda]adacb`a`]_]ce`a\_^abbaa```bbf`_c_ge_b]^]bba`_`ac^^_c]`_```cdd[[a\afdae]`iad]hc^bkea]`ad_^bd_bbbebb[b`b`_]cc]_fbg`c`b`\ca\__ad`_`ba^]da_b]``^b`^cc`]]_]_]_`a^cbaa`__baa_`_]a`_]da^b_a]g]_]_a]gb_aa`a^^c``bcbad``_c__``cb]]a`_`ceab`]ab^_]ba^`ab`^aea]bbb`cd`b[cdb\`a]^]bb]bc_\_ccc\ab[Z_c^b^^db``bcaa`^b_^b__Z`h[_^\aebb]^`^da__`a\_b`^]a^````d^__`^__\e^^c^__a^^b_\]b^_be^_bbce_]Y_^^__]]]]\Zc_caaada_b^i`_aZd_b`b`\_`cba`a`^`bdaddda_a_b^]a_f_cb`b_baebac]__]a`[_^ca[bZ^ldc^c`^^_\^`^babbbbbb\_^_ac[d_]Z`]]^]dc\[ZW[a`^cacee^d]eb`\`cc___`]bcc]^\_ab\__bba^bcac`_``eaf`bad``af^b]]cd_aaaa`b_`bab^`\c^^_b`_[```_f]c^\\aYb^^bh_^]_`[^^_^_bc`b\a[^b[c^^^`a_]^`_][^_d`b^`ac`___]```^``_bZ_^c\acbc]Zfec`_]_ab^^abacd\`a^gd]``\[d\a_eab]e]^`f^dd``_ga`_i``___ac^d_bbc`^_e_a`^b\ag\a\^c`_\fbZfa_\g_ad^`^\[aa\dd^f_gcdc_f^bc_e\bc_aa`__f]^]d]d_cd]f]][a^b^ab_c]cbaa^_b]hb`be`_`[___]fb^e```]`b_^]bd`d__^`dgb__`dcac``]_```g_]c_^_]g^`\gabhaaa]_a\fa\^_]^\^[_b_h_c`be^^]\b`_^eac^Y``^bcf_d`adc^b]^_`cbf[]]_^acbe`^_`b_``bY^da\^c^d_b`b^de_]`__bba[`^]de]^__`e]Z_`fi_a`]\_bc_`a[ea_b_eacb`]\d]_ac\^]_c^]edb\`_]_`^f`b_b`\i`\e\ae_a_aacc_`_```_g]d`]bbfa`__^d^bb__^_^_bca_`a^g^ah_h[_`___\[`b\bb_ed_]`_bbc_[d_bab\^_a``aa^^``\db`ha`a]`^^_`_dba\dbb_bX``^ac`b`^_]^`a[d_c[]a\^]^bdc]a_\^b`\`^bab`e__[\e]e[`d^]^cd`edb^^`^^aa___^_^d_bc\Zbf]cb]_hd_ace``]aac[_`a`]aac[`cc``a^a_bbf_aac\`a`\_^`d``^]`\bdb`_dcd]`aca]_be^d^_bc_aad``aa_c_^a\^^c_]``]]\_\d__^`adb`_^_e^b`__bbb`]__b]^``_`a_``ccb\^__a]a`gc]^f\a]_^ag`_^^adc_\_`b_b`be\^_b^a[b\[_f]h`_[a`d`[ea_``]^^\ad^a^acc\`_a\^_\``^d_a`_c_ad`\c__abaa_c_\b\^d]c`c`e^_^[^]`^bd\bb`]c`ba`_^``_``a^^`c\a^aaa]`_eaa`dcb\bbfab]\cb_e\d`]a`bad^`e_da_f_cb`b_b_]_]^\``c_``ac^b`^]__\^bf`_^bd_^^c_ba]`ca`\g]^c_`]_b]b^a`]`j__f`aabacc[ac^_^``^]d`gbe^e_c``_Zd\ad`a^^df^c`efb`c^b`gc`f`gb_ebab`^da`eee_cabbi\a^`a^]abbcbde`]i`_d[b_a``b`\`[bab\ad]d[ebf]cmca`]_`a_ca`^abaca```__a__`cb`_aakc^]gcgfc_Ze`cad]b`a`^c_]``[_ba`b]__`]^a^id_aab]faab]b]a_`_a^]ea``d^bb__d_da_b`c^a_bc^``]`_b^_ad`bdb_`fd_cdeacdaei]___\\]^aca^a\e`f`ab_b^Z]`_``^b__e^c^`_f_Zfea^^_a_e__^\\c__ddbh`_^]_caeee^_jeea`h^fc\`]_^^`cbaa_c]\`_^a^`_c_a``bc\fed_e\]ed^g^db`c]``_``c`\_e^aec[`^^c_\^bcYc__g_\a`cdYc[a_`]db_da`bd\cd_ceabce\_dcca\f`e]`\ba_c_c^kb^]ae^a]`bda`]abc^a`]e^_]adbadbcb^_b`a`bcdZ[aa^acc_``bfdb`ab`eb`b\_ef^h_ae\c^Y_cebdb_^]\beaak``d^__a]eda`_bjbac]^a]_a]`aab^cfeageo`a]h\bfa``^`bdZ\b^b^[_abha]]dbde_aba__dc_dbea_babb`]cccc_[e_adeb`a]c`e`^h^[^cafba`b`acbdf\``d^b_]^_``_`b]cab_b_^ba\aab`k^`]bgd]`^\\a\`db`g\cab_ecdf^`ba]a`dc^ge\_^_a__hgb[ab_c]ca`accajbacc`^aaab^h`\aca^a^`_ci]b^d^]_ba[fb``d_cd\ddaaZ]__c_^h^`f[`^afa`^abebgbc^```_`_`ab_d`cad]ca^_`_a^fbc`[ccaa``abba_`bbbc_^_`afebdb^aabbdb_b\_fb`^`d]a``^c]^\^^]`cdbbd`^_caf`b^f`]`Z`aagaegb]ab_bgfZ]ab\jbe^ab_`^bb_d`\d\_adac``_cbdfjcdbhc_b^\`e]_jgaaa_Zcden]d`aa^]`gaac]b`be_^b]e^^a]e`a]_bYca_d_]a[dc`_[Zba]afhaa``ecb_da]da`abbffacaca_bc^adb_]]f^]ag_`c[^`eb_fcacad`__ccdd^a]e]baa`dea^b^ba]_gec^bcd]d^cc^_Zg_cea^`_bc_c^ai_\becdfaceb]f``ae`bc]eh\_`]```]g]_fgba_^adbedb`dbccd[`^^^aebd`_e_\c^c_]_^e_c]e``b_^`bc`]b_baeca`_baa]h`acd_faZ`ecbbc`aa[^\]`e__ac_a_a_]c`eb`^_a_ac`c]``a`caa_]]bdea\ab^_a^]bcaa]b^^cabacd_cb`_acb_b`c_d[c]i_dcia_bbad`e`_`_c`bcabafcab_ae_c_^ccb_``[_e_`bgba`fbgchabcaab\`d_e^adif_cb\bb`_ca_^ae[adbdec_b``_e`bbab_\]_a`aaabad[ab`_bbb]a_gaae`^afcb^_`_^`fcfbc`gf\b_b`ab^aeca`bd`b`eded`__`df^__^^`d_a___``^\ab_dg_f_`acd`]ab^`_d_]de_]ga^`]beddabaac``a`\^\^`aabacbc^^f`b`ab^\`da^bbc`cf^^bb`acd`__eccd\ad`_]dac^h^^cd`e`bbdac]ce_ce^af_`]_]_ahbd_bhcbbbhj\^ca[a`c`dbe`de`^__`cgaca`b`aZ_cabca]``be^bb`_d_`d_^bb]_`bc_^caab^]bacbb`aca^bb]a`_^cdiabba^a]b`^`_a`_`ec_^cb\_ab_h]b^__`]g``ba_ad```^h\^_`^ba^__be]eca`\^g]acb_ce___^^eb^]b_dc_b^^`_a`]_aeaba`\]^ad`b\a__ad\bh^a^c`^cj_c]^a]c`c]ab^aaa`]`cdedef]]_aa_ce]^c_eda\_a_d^ad^^a]fab`]b_^]aa]___cbbb``_^eab`bc_b\ba``_ca_\`_b\aaY]\b^cd^`_bcbbb_degf^bcbbbb]b]b`aaa]j``^^eaa]^e_ca]c_``c`a^^\g`hg^`^``__b`_caea^b^ea_]b^^f`c^`a_]]]bcee`ab^bc_]a`aa`_a^^]abd^`_\abb^e^_b]cc_`d_hcc]dabc_b`^bcca^_bc]ba^^e`da^cf_eabbcab^^fba^ddf__bdc_\cd_^\]^_b]```a`c`c^_`a__`f]]^ac^a\___b^aea`acda`cgc\c^bdcdabcdb``b`]eb]da`b`a`d``\bec\bd]a^^aca^aba_abaea_c_acfea`]a__`cbe\e]_`e^_b^`^fdd^_`^`cd_`]`bbabc^`^aa^b]aac^_a_bcba_d__^ac`a_cf`_cae^cccb`a]d`ace^`^aabdc^b^b__a_abbba^[a^dabZ^`baccbcc]acbad_a_]fca```_]bbac`a`_d_aZ`c`_a`_ca_b__be^^^_`baeedd``aa_bcd`aa_`^``cd[ba\`cde\ecec_e]_`_\cb^`b`^_cad_`aab`f_a]abcbc^cba__adbjg__b\`]_c^ba_]abaf]daa``\ac^e_a_c`b_`c`^^`a^ab^abeac_dc_bbda^`_ba_dh_a\^bb__^]ab`adceb\ac`caeb`_b_d`aca^`abaa]`]]___ccc``h`_bc_b^cc`\`_c`__^eacc^b_d`a]_ea]aeab^``]_`^b_]b`^bdba_fdadc^_`c_[f^^^`[bf`__k`_dd`cbafc\``a^d_cb_]`^ad^`cdha__c^b_`^`a]`_d`bbd\`b_a`__]ab_^b`aad`___c_d___`f^`a][b_`_emj__`^__bbe_f_``a`je\a_^eabda]b_^a^^^eabbcdfb`b`aZe`_b__eaa]^c^_`b^aec^_ccacb_^bbcaf^c^^^_\_fcbbebd_^a`ca^a_]_db__bec`ff`__abead``__b^acb^]`_aba]ca`d^^b^_bb`f```_`cc^]a_^^`b_d^^^c^__ic]\f_fd]a]`^af^`]b__c]`c`_`__cb_cdYc_a]`a_^_^^abb_cbbZ^_b_ba``^aebd\^_bc^`f`ibc`badaa]\f_`_``b`a[ab``ace`c_]bbfaa]^__^_c``cb`_eaf_^_aada`c`f]`d\db__`^`d_b^`f_ae^``_`b]baea^cbda]a_a__Z__]\aeabbd^a_aacd````bf_^``]^]`b^__b_b^f_`ab]^e\ed[]_gc^]c]]]_a`bd]c^c^^^^a`_bb^]`^^_`ce`__]```caa`fa^caba`c`d`ab^ac]c_bd`_^__c`c_^```bc^aacba_]b]b]``^_\eaae`a_`^ab`^baacdd`\]aaa_g[eag]c_da]d]cdbf_]]aa[adbf`bbcb]ac]e]aca]\^a`f]a^bc__`bbcca^^d`bdab_^ag^ccbde]]]ca]a\\^`\^e^a]eae^[_]cbaa_`\b_bbbb`c]_]^b`a___de[`b`adbb_b_b\c_ddeb`dac`^\`_^]_de`faa`[b_eaa`b^`b_iba_h^``^ca`^d`g_\^aaa^a`a^`_`d`_]``a`ag`_]gc`^\``^^[bac`b]`]bf^]``aaac```__cab\bd^]b^aZa_c_b_`ad^\d^`ca_`gb]_c^agc^a`^]^ca`X^`^c\ad_d_^cdY^d]`\badaca`a`_b`bh`ac^^_beacc_Yad_b[aa^fb^__\a```f]ac`b`b]a^bb^\_`X_gd^]faf]]_^c`^e_[_^f]]c]aagb__aadcbb`c\]_^``_bchac`d^\f[_e^daZb]dea^a``^^]ebba_d`c`a[c`Yc]_]`d`_d]__b_]a_a_bcb^ac^`bhb`_]h_a`cbe^b^b_c_c`_`_a_e^_\`__\c\da_ha^`_\``f`g_[`_b_\]^ba_``Zh]b_]c^`faac[`a^^e`Za]fdhba_^__c^`acdf]^i`^`e`bacfb]ec`^]abb[]]^ce`^`a_g^]_e_\cj_`a`bb`a_ddga^__^i_c```[\_ca\_`e[ba`aaa_ag^c_ad\aa`^]`^aah^]a]bc^c]_a\`]ae__fh_]bb_^eaf]be^_Y`gh__b_^b^b\cac``e_cb`aba]c_dc^edfbba`__^af`ad^^^c]]aafb``^^^_a``bdca__`[`a^``ka^h[d^]`]b_c`dg_``__a_be^`_\Z``d_d__]^^]]_bb`^`ajaa^_`a`c`c`dab^eba_b`la``^d]`gmd^__a`\a^``ha\_[ab__e^\dab`Y__^\ba`d\da^g\\b_^bl_db[ccac^^bcc`b_`b]_a`\_deadadfcea`bf_^a`a^`i`aca_adbb_`b`^^ffc\ad`acl]b_b`ed`a`d_Ybfa]bmk`_`bb_]^baaa[`]bag]]^^_bgbgab^ebe`bfa`bd`habe_b\ehed`\^a]aedb_a]b`_`abac`dd]`__ed_`d`haf`\_`f^]^\^`afaaa`ciabbbb_g^`_\ca_fd_df\edfdfbbce]d_`bf`_adec^`^`aaca`a^^cc``_fea^_cc_`\ai`fd_b`_]df`__a^abbgd`^h_b^``[`_b\__dfa^cba^_db__b`ad]b^_Z_```b_bfea]`acj]abb`eaa`[\b_]``_cacdac^cbcb]bafd]c_cbg]`gncabehaag``cec_ab]]aca\dahaab^_a\ced__`a^d^^bcd_`^b^bba]fb]ac^__d`fbbac^]d__^aa_`d\d^a^fdd`ca`ca_a[bd`a`]c]aaaac^a_`aiac`ca___``^ab_c]a`]bb^f\^_]abca`c^cdbe^dbb__^abad_`_c``^_b`adca^a]_cba_ca``f]d`ab^`[]^ccbbf_cab_]cd_``_^__fad_a```b_^\^bc``^^g^_\g`_`ec]b`_ababc`cc^b\`_daa^_``a_`be_\_`cab`aaa`_`_Zbdd^[bffbb_dac]f\c]hdb\`d\abb]bhb\]e`b]ae^`^_a_aba`da`\_baad`b`^`ecccg`e`[f`]ha^^_f``be``ea\a`^ageb_dcc^cae__a[`cfd``gc_]bad]a`a^^c^^^\_f]c^```^e_c^_aca_ach`_ad_aaac_`_``b_`b]c]_^`da`^a^^b^h`_a`^bbc`be`ddbb_cba`caa`aed_fb^ba`af^^e__cc_ddbfbabg_`ec___^^`bhc^_f^`b]b^_^eda^`deabfi]^daaa_a`cbeXaaee_\c`a__d___ba]ecd^_a_aa^b_dab_a^ca`ae^aca`_a^]_`````dccebb`b_^cc`da^d``b`gb^f`aad`]_ad`beaab_c_^ef`aa`f]acbabc_ac]a_[eba`cb`_f]aZbb[_`d_`\c`b\dae___fd``e_]_cd]_b``b`_bd`ceab_e`a^^`b`b^bcbc`a_^a^abb]d````d^`fc_\acbba_aabb`a`[f\da___]j_b_`c]`d_ce_ceda\_``^b_^_\^cbbcacca^_adababd`_ba`_`be_ccbacbd_`db`^ec__`b_ga_ab^adeZbc]cac_e_cg`]`cgcfaeafahccabbdbb^_^````_`acbaba^bb^``acb___^`_d``__`_b_]e^b^accd^b`_`bgafbcffa`_`b]ae__`bfbba_c]bc`b`a^ccbbc_^e_bca^ba^_g_`fa]_c]`_b\`b_^^aa`beb`a_b`baeb\^`e_c`_c]^_dcf^\__caa`]^`_eZa_\d_bbd]`ba`e^cacbbad^]da^]c`a`d]c\dcdb_dee`b^_f^c`e_ba^``da^``ac__bc[_ba]_bba`]__a`a_gebbae`cbc_adaaa``a`^ac\Xb_a_e^^a_eaa]]`_cec^c_cac`a^a^eab^a`c]baacc__^ahacd_^c`b]`^^^daf`\`bd^_ecb``ddbaf_`ab]_]`ac\]aa\ea`]d]_cbe]`^b_`[`caacbb_ac`a]ca`aec^bba^c_ab]b`cc_a_a^^^_`]`addc``^]f`c_aZabccb^b`__]aaacda]g`beab_]a_c^d^da___`]cb]^^ccaa[^gabcd`k`]\`beaadc]`bb`]cac`i_ba`e\^\_]c^^```^^bg_e^]]\cb\^^_caacc_bc^cd``_a_ach^^__b_^``\cc__a`aa_ae`__b_]c_ag^`bd_^_hb`c]\ccd`]ed`cZ\_fcda`aa\`]_ba^b]_ba``f``__`a]_beb`aa`b_^`a^cb_ba_\a`_^bd]\b^]`\]``\c]^`dca]_eb^b__b_`^^abdbc^^_ec_h`]aeadaa`cbaha\``e__f\`_b^]fd`ab`j^b_a_e_^^]b\_dbc__]a`c`\_a`dZ_b`^bb``aa`bacea_\a^`]_bbd_aa_g^c`\bcbea^b`aa[^]g^_eb`]]__b_`aa_a`^^`d_c`__a`c_]^[_bfc^^_`c`___`c^`cd]bbaa__`c__c`c^`i]c]c\h_]_db`a`]c_cabb_]``___fdaabcce^`ebf`dc^bb``_d^da^b_c_`Ycf``]`bc`]`__^`_^^\]f[\e`h`_c`gcd_f\^^^_^]^c`___a``a`_a_`^fbab_g\`d_a`a]a^bb`bcb`\adacce]d_bb`a`bc_da_a^ba`_bccdabcg_cba`aa]aab]`^`_ae]a[`eb_`a^b]`^`e]_j`a_]e]e_ba]a___``cc`^a]cd\ca_`a]`caab``_e]h^b`cf]b``d`_`[^^h_c^ba_dc_c`_d`]``ee^`dc^^aabf`b^acaaW^c`f_Xab__fb^\^dc`_gbaeaea_``]^``c^^`[dbi^d]eehaab_c`aa_`h_cb`\bc`cedb_`]bfd^_h``a`aaba^ab``ac_`a__\^a`a_b_g_^`be`^c_^a^faab]df[_bae^_``ca^g_b`__d_^^]\]acd]`bcc^_cc^ed_cf^b^a^_`^^c`_fa^_`]`e^_^ci``___`ac_``Zcf^dbgfa]e\aecea^c_[]\]dd`]]_aab`_`^^^`]Zbc_ddf`^`_d`eb___b`^ae`^agaeb_g`cc__`fa_cafa[aabcc_`_e]]_bca^bc`_`c__]a\b^_acaa_f^dcbcb^\b`^ed]ga\]_`aa_`c]``b_]]Xa_d`d`db`\d[ddaaacgbbae``a]bd`ad_^aefa_\]\f`_fceaZ^a_aa__^acba`]cc``a_bb_b`cbcdeea`edb^`\_`a_^_`ga`cbd[cabaacddbcc_]_`b]^_g`^b_eb`ec_`bc``_^bfcaab[cd^_]`da``db`_a___b`^b`]efaa]bc^^c^e`^am`c`^\b_``_^\`_[ba`]ac^aa^cbbb_a`b_ecab`]b`_^g`g]b``^`^``cc^_db_b\a]_^abcf`a_`c`^dVb^a`ma^a_^f`d_\^`^`aa]bca[g^^d_`^]b`^^d`b_e]bbbb`abca]`ccc`abb_`\ic[__]``_a\_dg\]`a`[]oa`ccd_g_cg`]baab]]b\fd``Y^_`__a^labg]a^cb_a_Y_be\a]a_ccaac^f_^g[a__\`_f`c`cceb_]]`e`^`adb\_ddfbf]_a^aaf__`]]]`Za_^bccbbfdcb^a\a]cc_dbj`c_a]]a^a`a^ce`^b_`a^_cbb[b]dbc`]_`_b_dcb_`c_^_ff^c_^_`_`^__\`^^^b^aehb^`_^`d_^a_^_d_^ada\____Zeb___]`_aa`_^bc``b[c_`a_k`_\b^dc^^_ga`^b``aai^beZad^fba]`acb^cac]bc\b\`c]bb`b`c`_]\baf\_Z^`b\\X^cc^_a_dca`dal`__a```ab]`a_f^```]bfa`a_Z]_`^_badg^ad`\^bac_b^`c_]d^b_[ac\^ac_]bc]a_a\\`eeb_daad_____a`c`\acd^_d`add][_`d_abc]faaa]a_cfca^`bc]da^e__a`b`e_bc]aa`a_caadc^]^a`fdc__b___^_aahcb_bbc^d`\_a[\b^a]`^c^a`d`^_^cb]dbab_bc^`\`b_c`^e`_a_`]`Y_`a^gae`d_aeb`bdd`bg`]`\db_a`a]]___bga`d_`^db_db`h^_]\gg`c`_^__`da^a^ag^`ccZaae][c``[bc^`]aadbc_dcbb`[\[ea^]a_a]]d^ad`l^b_aa````c^_a^_]^`g^a`baaaaX`a^a`]bdgab]cb``]b_\a]b^_e`_gcaf``_aa`\_b_e`cbbaa^amc`d_g_^d`^b`aieac_a\\_^`^ch]a]abbbb`_`^`]^d`_`^a`dab^ad]e`_fba[d_\__aea_b^bab^bebca`gee^_aY^\_`hb_acac^a]]dac]ac`\]eccbb`_`ac_`ececbgag^]`]af\\c_]dmf_a```]ab]e]fcc_`eea__``_a`_dacb^db`[`bcfdd_fe`ad^^hb``]_b\bf]bba]`be`cad`^\bc\]`ag_``abc`]d`_[aZ`_\abc]`_a__e`baadaa__`a^cd]_]^d_i^ac]aba]ad`c`afd`baYab``b`_[b`cc^ccchad`c_ca_b^_b^___cd_die\dba]d^`_cd``_[]^___`ca^abdb__``_``fb_`d^eZc`caa^c]]e_`g`\d^c`a]`^e]aab`_]ec_a[g`Yb[^cab^ba_e^`caca_a`ad\]a_ab_ha`aadb_ccf^b^a_a^_qbdd`afcaebab`da__aa_c`Zaabe`aa]a^chaa`^a`_``baa`a_b[`_^a__a]^`]ba]a_ab_^`a_`cccaba\_ca`fgbba[d^_`caYb_^^`^_`_i]_b_bd__[_b^c^`bj_e]]d__`_b`a^cdadb^ca^__b^acba_d\bad_^ae]__`_`]bcg^d_`_]`g`a^adi]abc``^a^aZ_bc`faa^fh^^`bb]`_`e^Z_aa_c_a[bbbab^ecaacabb_f]gcaaeb]]b^_c]acje__bca^_bc^edc`_`badaf``ccdc_abda_h]c^bb^]``abaf`^`bb`eb_]_^``eb_d__\`d`]`_c^_j``ac`abb`b^aa\_`be^]_^adaba``b]_b_c]^bcac\^cba]``cf`gbce_a]`dYaa^Z^a`aa`a`\\abfdb`a`bb`e`]_ab`d`Z^^`a\_gcba]ac__d^_baaa`]b`ca`a`^ba^]bba`baafb^^bab`\cc]_^aab``]b^``bcdc_`^^a_ab`a^c_`dd`bdaaa_b`_caa_iZbe\aa[_b`d`^cdhabc]]^^`b^`b^f\]`]aa_]\d]ae`ca`bc^^_a`a`ba_h__ec\b]^`edd`[_`Zi`\_d_``c____ab\^`]af`]\bab`dZh_c^cZe__^b_i_bbc`_a`e_fa`^fdc]c_\ebcagaba`aca^^``a^\baag`_baa]bab]`ccaa_cdda\`hd_^b]g[^a^d`]^]]\]c^ca]a^dZ`b\e[a``_`hda^^c`^`^[dc]ab`d``_ab\_^___`aaaa`ab`^[ad]`dgab_a[b]`ebhbZ]c`acbh_]f]^d_`]```aaa]^_]`^`be]\__`a_fedkb`f`a^^_a_b^bX``\_ef_]caeabb^_^__b`_ac^c_a^aY\_^k\a`\__aZbbebbi`da`cd_dg``[_`aa_adee`_`cdcb`_aabdbdc`]b[`a``ae`_`_d]b\_c``^b_^dc]j`aabb_^^`e^dc_ac]cafaa\[a_b`_`ac`eca\d\_``]^d_`a]_`ac]^`^a_baa_bc_ha^_a_ad]a__`]]bc_b]ecadc^_^`ce_`_^]`__a^`eba_eddc_ia_]``^`a`]]`c`aa]_`]b`bah_daac_dcb]]c]]ec]`_c__a`\acabdac^d^_faab`_d`f__\aace]aabc`b[e_aafaba``_`adb[db]aa\e\^da```]`]]aa]b^]_^`a`\c_b^ca_^db_]c]ab^_^__b`cbaal_cch]a_a[bbccfcc_accb`c^Zacddee]aea`dgc`^cbb`]`_`ace_ca^b_a`^b`b`_e`_adbbaab`_a_gb`_\`bac__\caa`b]^hgd^``f_`^a^``c_aab_f^cegde^al\j^baa`_^c`_h``h_`_]e`cacif``^ba`dZ_[beac]^d^^__e^^a_bbbbda_b]a^``^ebab^__bab`\a_`eecb_cdc`\]^^dd^cce_d_e]c]\aaababc``a[^aa`fa`]cZb``i^h__^_^cab`_fe`a]``b`__]c`bbddjc_e_gc``ag_b```a\a^db_a_`cc[d_b_ae__bfc_^eabb`]^aa`c_e`^^dedc`bbe\^aeaeaiag^_ca_c]_`^e`^ae_daeaa``bc^d___^`]^hac_g\^`^_`_`e`_cfZbb\e`_f]_b`ad\ddia]db^bacb_`d_e``a`_bab_\ad]^`^^^a__^c_ac^c^`ab__`aba`_b_^^^ceb_^_b`acb_h^acd`deb]\ca_af`]\dcab`ic\a`ad_^_a^]_fdabc]^ea`^b]_e^_[bcbaa`ca`caacb`a`a[^`\\b\ae_^d_dfb[ea^ga]\`^beced``[_\a`_`c_^b]`d`_a^``c`bfbac]_^ha_aa_cc_a__^`]b]d_a]__]d^bbab^af^_]_^[\da__aa__dhad_`f`b^a_]bb`^\]_f\`ba[^a]bgc`^c`ebh^f^`_`bb_a_dc^]`]fbea`cca_ca]`^dd`ad\d]c\]a^b^d]afZd^``\ecaa^\]a^_g_d_a__geb^``b_a`][cdb]aadb`cbde`]^]ad_aa^]]ababZa]_b^c^^ab^^^cebfcc]gd^``_bb_`^^b^`_bgaa`bba_ad]eb`^ca]ea`_e`_`aa^b`]a^[\e[^afcd_a^^`dabb`b\_d_j`afd``a`dbb[`]`\c`b`b`\`[_af_ac`\_ahab^`^]cab_]aad^`_`eb`_ba_^a`dcf_aae_b_d_e^baabacc^ccfadad\]^a`c^^`a[\aa_b``ad`]b_\\]_^]`\a^b^b_``d\d`abb__cbd^afd_\gfca^_[g^a^^dcabcfb___`\bb^_ced^_c\_\^]`_bec^`]]aahca`cea`[Ye^b`dc]`]_\c\\abh]__``dZ]^]`]Z`ae`^`bbdc`ebb`]bc``bd]cbd]bbb^cc_ga]c_aa\`b\b^b`aa_a`_]abb\b^\_dacfc[^_b_`aa^^ac`c[_af^`bbc`ac_d^_a_a]c]`c^dd]]Zadd]\^`_^^^`bc^\_ag`aZ`e]g`_`_ca`]^`bcadW`ae^`b``c_a`[eafcb^ab`a]\^bdahaad_`b`]`ccac\dacca`]bbe`dbac`c`^`^i^d`_b`a`]b`bd`_d`baa_\ala``_ab^d\d`cbac\`b__bbe`d^`_^bc__ba`ba]fmdb]bd]^_^bd`]_d^bd_]e]`_`baddd^_```^adaaad`bbad^`^``cbbc`f`\`d]bac_e]b`````^c^a`i^cd]_a]cb]adgaa]`b]_b_dbb`^`ca\e_`a`edZb]id_a^`^Za_h`___b^```_`bfZ`[``b_ba`fab]^^^]a^acbcdedba`ad_a^bce]```]a]b`__d^_bd_`a]a`]b``cg`ee]`_]d`_beafd`faa[bbdb`_Zlcc^a`b\_^gad_a`abYc`bbd]ar^b_bbbca^aa`acd^__e^ga`a`b`af]bcd^``eb`b``dcbc]b]a]^cd`fa`_bab^b``]^g`bc]_a__`abc_c]bac`b`b```bc`ha]`_e`cecdcee_dce_^ead^`fbdcd_`bafb_`cajba]]bbbcd]`ecd`_c`][aa]abfaa`b^b^c]efdbbgf`^`a\a`f_`d`f``cfcbaa]abbabbaea`^^b``^_db``^c`^``^]`a^fbaeab`db]aaea_ce```aaabb`^`^^df^bc]__abec`aa`___bacc`cbbedc``eacbach^abaccbcb`db_ceadabb`e_f^^c``de^a`ceaaba_d^`]^a`ada`^cb_^d`ab_`_`a_^a_cbbb]f`]bdabc_f\`af``_ae^bedae_bbedcebd_bce__gacd_bcc\a_cac^_beag_ba`bbg`^accabd`bb_`d_cbeb`b`d_acd_^bdb__aefbc``ac^daa_b_]a_bg_ca^egbcbc_`_b]`a`f_bac`b`^^]^ab]b`\`\e^_aabc[d`_c[^`^adj```ba`_]c^b`Z`c`e`_b`\ac`b`^b`_dZbdb`\]^b_ace\^^b^^^^b]^\e`cf``b^^aba^c`\bbdeda`b`b^^`]]``^cabdcad`d\cd\dcb^aZgd_]ac]_e__f_[_`]a^`]^bbe`]Xb\_c_]bc^]g^dd`ca_dba]\]dadbabba\acba\\da\Xa^d]f[b[`adab_dea`bfaa_]]a\_^_eccba_aa`d_[_[b`^__\`be````^]bb`be\hbd^`a_ccj`\^_^]c_b\caa__bZ`]_`bacd^^aeeeb\`_^ba`_eb\`_^``a`^bdadbb__^bdaee`d^_da``dfachb_\abe_baa^\]b^_]__ae]Y`aa`^b`a\_c\_bbb^cddaYd`__faba^``_`ea_e`a^^\`d]dd\d`aac`^acbedc_]`e``^adaaa]\_`_[c\b]dd``d^`\__^dcd`a`e`gbdafcb`ca_cb__baZ_]__cd^_^^^ddc\adca_b^fb`acc]a`^b`ad^dba]c\]^a`[bcdbe_aZd`^`ab_`b^c`a[^ca\_a_fe``a`a`]cdb_a`_^e^_a__^b_ab^bb_f]c_``Z`d__`b\`]]__]f_`b_\ea]^acbcdbb[c_a^^[Z_`bdb^`^bbcY^a_b]`^d`\c`f\a]Z]gb^^]fa`bcc`bc\_`cbad_[]a_`^]_d^^_`b[[__a_fcabc_a]\a^c_\^bb\b]^^e_b^ef]bbaa^ae``dd[ccf`ce`dcd^c]fa^_]^`^]c_febdbb[^[_aabf`b[abebcd^]`ada`]]ac]a`a]^`c^b_jbcb]b`__`c`bbda``bdac_^`f^db[`c_^b`bd]`dbb^_d]__ec\_]f`_bbd_`c]_Zc`^a_]d]c`_ad\iad_d^agce`]adcbca^dc^__adcc^`]ah]aa`]_agcb_]edehcaeadf`acbacbab`fe\a]d^bbaa_a_`bc[_]^`_d\]_f`]b^agadcc`cafba[_b_ddaaac_ja^kcc``b_a``c^db^]g^]^g\e_acbb`h]`bcafbda_abb\ebafbaba_[ac\`]`^_e`c``fbhab`dd`ec]^]^c`^a`bacbadah__]b``bbcab___^`[_aaa^ba`c^_hdkeba_`b_dd`ibefb_cae^begc]_ba]e``adcfccac`ab^[`^`abdcbecfb`c_b_\ca_`bc`^afb_bbabc_a`acea^c\`fadd_`b_dab^c`efababh`bbbcfa`c`__d_baadaadcbacc]b_acbe^a\_baa^^bddcdcc_abda^]_ace_b^_`_\^d^Yaacaab_c`Z_b]_`aa[ee]]a_b`aabfe`^b_]b_b^`b]ac]d[acadaa`cc__]a]eb_c^^]``^^^bgY`[__Z_dacb_a_`b___a_e^_b^d_``aa_a]e_c_c_^`]c``]]]___ad]\g__]_ebc]a]``_c`acddc]_e^`c`^_c_ak_`a^bb`aa__^^_d]_b^[`cc^]_```bbb]aca`cf_\__^\`_bbd[ec^_c`_a`ag^ad^d`_b]`ae]ec[a^bd`d``a^d````_]_b_``^^c\`a_[`b`e``]_c`a[^_^[^_bad^a^d^e`Z`d``b``^cb]dd__c_b^ba`d`a_fZb`b`g`[`Yc]d]bb]^a^]][fabceea_ba`[`cf_^bb]`_ae`c]^^]`_ce`a^`_`b^ada^^Z^dcd[`bb^a``g`_bbab^Z\b^_]`^Z`cab[e`a]e^`ebe]_\`b]c_gc]`__``b``cc^]_]\\d]ccb\dec_\`a_Weab\ba_[`d`^`^`__bj]fca`_d[_edd`cbgc^c_b]`[`__^]bbb`a][_eba``_``c^\c`bZc^^^_aa_cba_\^caf^ac^`^__c]bga\^\a``][]_fc_ac_`__bbba^ad_^aab_acb_aa]Yd^bda`ed__`aeceaaebaba`aa\b`baba]``^bX`\^`]]aa^[\]da]_Z^^```b`][aZ_c_f\_bba`a^^aa`eY\`f^b]Z\__`b[g`^`b`b^a_]Z[^`^]ba\acZda_`Z`_```_c`[`ab_``iaaba]bb[e^f\ec_d^`___`_]a[`_aaab^_^]a]e^b^e_d_\_]\\`a\abba__a^^`_^d__`ce_]b`b\\c`db``^d`^c\``^aa]^^_b^^a_b\_`b_a__b_d`b`ac_d`[`ccd_\_\b__`^ac^a]^fdd`d^_bb\e`]`cd_cc`a\d]_cb_^\^``bd`a[ac]d``^^c_aea\_c`_aac^]^a\`a_adb\__`a^]cac__\b^\]e_\_\abacb]d\_dba]]_e]`_`_]]deb`ad^]c`bca___]`\^a^cc_b]bia`_a__c\aabc`^___`^a^\_d`\]bbe`__c]^^baaa]b_b^^aee_`Za\``a_`__dba]``\bc_f`_c^ad`_f_]\ba_e]a`ad_b_c__[a__\ae`]^_ba`\ceb]da\^a`eY_`]_gd^`\]^^`dcbaa_a]`]_a`]b``_\aa``_^a`a^f^``gacba\_^]jg^\fa`db`geb\[]cacfb\_ac`_``g```_^_^_`Zaaafbh]b^cdacc`ai`^_afb]f``[]a]`abc^f]]g`_[`__ec`b[bb\afb_^_dcb_]`e^`]c[_dbf^cc_ac`^iaea]bcd`h`[aaba^bcb\a`fb_`a`]c_c\caabdc[]cca`aad\``[aeba`]dag]bc\`_fcd^`dbb\h^^__^lcc___d_b^\a^b^_c__^^bd\_]k^d^d``_db`e__`cdf^^^^dfb^aa_ac]]d]af`ab^c``\aZdaba]aac`\\_bf`d]`^g`[^e```]abba]_\c_^`ddggc_a`ag^gd_b`\`ff_b]_a_c_dccbe\cW_\_d^`\cc``c`aj]_d]\^`ce]`__ecb^]a`aa_jb\cd_^`]\d]^[^bc\``fZ`_a^]^_`\\`b`d[abaa\b`aca`ceb`fdaa_abbcf`\]]a^`_bcd`a^ba_^ba^\_a]_c_^``b_`^d^_]m[_^_``^^dc_]ccea^_a_b\]\c_aff`\^iccff]k^ddcec^_`__bb]cefbe^bcab^cda^`geg^cceba_c_\d```__`^\^Zcb__agae\`b`bad`^ac_ffbcc`_`a]``a^`Zhe`e_d]accdca^a[`fc`fb_h^__gef`bbb_c___cec`^[b_dcee_`d^aebbdga_ca^aa\e^`a_eb[_cdcbe]]^_fc[b`e_\bcbc`^^_d_^``_l_`d^de]_]_gbea`_\cc_^`c^_ed^dc^eaada``bba^dce`c^_]ac^]e`b^\c]^eacfda\bbd_aab^ca`db`db^Zb\dcbeab^`]ce\^bcjc]``e_e^b`b]^abdbfa_af_e`_d_^c_da^_d`eb^bfd]`dbc_ccb`^ca^c_bb`b``afd`h_d_`^]a`ca__^^bc\^`^``d_Z`a\_ja`ebf`^e^`b_haeYbc_``b_\^]`]cgbbd`b`]d]da\dabce^^`c[\_`\ca`_dab__c]b_a``a_]c`_hdd^_aaec]c^[a_^_^^^ba`^[^_^^fg`a\`ba^gac^ac^]eb``d^`e__bk_fa_bcae]d]f_`d``ef__e`ab`bcba_b^d`_`aag]_`aa_^_`da_\aaea`ch^]`_a`aab`]cc^]c`Zb`gab__a`_c]^]^d^`b`b_g__`]^^`bd_aaa`]b__aa^^\^dd__c\f^a`_`^a_`ccaa\a^^fc`_gXc`d^cc_cbbdbe]`b`b^cae__\bda^_e__c^^`edf``_c]]^_ea`]ba]`_cZc^d_c^b^`\ddbe^bd^b_\`c]_`aeXa^]`ad_]ba[_[b``\dd^c``a`__e_`fZZ]b^\c]`^hb_]eec_eacb^`^_]__baa^]^`_^cb^f`bbb`d\_c`acYa_`_f_bifbaabc]``b]_bb^caadg`a^]]``_ad^baa````a`aab__b`adccac`^a`b_^f_a^_fdadga`ab_da`_`de__aedeed_^fa__```^_bcc`]a]e^cga]c`^aafba]bc`^_^^cfdf]`e_deecaddbg`_a``_ab^b_^\c]c^_\aa]_bae\_^]b`aeb]Y\d`cca``ab`[b`c_`a_b\`]abd`ed_`^b^e^^c`_`cd_abad]^_a`a^bfbf^`d\]_abd^^]^c_b``a`^_^``a`be_bbbb_[^ed`addbd_bbcb`ab_]]bbb[bfdebff^dbb]c^bd`^cb``_^bd`fc`]g`c_b``\cbab_b`^`j^]a^dce`a`_abb_``[b`b`a^`]^bb_e]a`fa_f^c`_`c_a[__a^e_c]_]habc`\a__b_e`cd`h^_d]_`a``a^cddab`c__bec`c`a`_``_e]aa_de^``_acf`c`a^a[_ad`d^ae``]]d`]_]a`]bb]jega]^`_b`__^`_bda]d_``db_a`\`bcb[a`de]_a_^`[`ab`ecbba_a``bdif^Y``b[a^_]^befbc_]__^`]babdea_aa`ea`_^^b``]c\da__aa^a[_Zd`ab]b^]_ad\`ad^]d]^]_b]_b`]caddddbc^_dYZd``c`f\^e_]a[d_ca]b^d\a`_\dc`_`f`a`^]^ceb_]b^^[\]`ce_X\`addg[Z_^^^h\_[_`b_b`^dcbcc^^beb]\cbe``Zb`_`]^^_]^[Z^bfc_\__ad^`\`^a`_a\a\\\_ab_aabaca__\`Y`_]`e`_bdb]\e^cbaa_^Zf]]X`c`a`]]^aac]ab_b^caa]b]^`_a_da_`^^_ab]ddbb^^_a``c^hZ`^`Zb]c_a][b`d``_]cce`b_ddY`\a`c\fadcahc_`c[e_`ba\`c`f`b`]_``a]a^`\b]cb[fc^b]d`^`__`^_]acc`ecb[cf^_]b\ed\`cb^^`Z`_e`^^`b]b^_]_a^`__aba][^a^^adce``cb]``c]dc^[^`e_^a]bdXdca^`_c_b]`a]b^bc`a`]cg`^f_if`]ch`abb`fZg__c^_cg_]]_^b_`db_]Yd^a_\a^`]d]_bdh_cb`^[f`_^p_a_^`_dc]`^d\`_de`c_f`]b`]b\bfd``c`a^b_a^a_]_]_]]bb\ab]b^``aeZ]fe_a__e^^_bab`ac^Y^d``b^cebb[``_d___]cde`\\_`eda_e``]cc]`__eaa_b`Z]_c_a^a[`_d[_a`Zd]\bc^`aack\\[f^adf]b_a\^a^ch`[`ah^dd`_Zda^gc`]c`^`bb`b`]`]b\]`_d`a^]_`aae^__b`]``^a^_]```_]aaa^a_b]_^`^b_ca^\c]a_]`]b_cf`baab]`a``e`ac\a^`^bc^c^e\fhba`fa^]_\_`[`fad`]_`a__aa]b`]^dbg^_b]b__`^_]dc]``_ab`cadd`dabbc`\`_ecbbcb_`^f`cpa__^`_`^]da_a^e_Z[c^c^^]ba\]__a^b^b^cc^_`^b_`d^`b`aaaa^_ahc`]_`^`a_]^db^bf\bd`^cc^`_^^db_bd^_d`f``_fa```e_`a_e`aacaag]a]ad`_ebd^`_aab`_ec_ea^``a_`c`^a_a_``]`]b]`b`^\ag_c^a___ac^c]b__ebb][]bb\`^bc_bbc__]g]`acc^ea`e]`b__d^_cc_b^ab^a^ab`b]abcah_aa```b_`_ab`\g]a[_^bc_i]]a`c[`_bbb\g_]g_\``ac``aj_`]b`aaa`^ba_b^_a_^c]bb\\a_j_]bc`e]aaa^b`da^d`b_d`a_h]bbb`fc\b`^^a]`]aa^c`[_ec]]``a_c]c_d``bdea]`acd`c``_`bc^b^bcf_b_f\ab``]a\bab_^`__`]d_gacc`ac^dbb^ba^`b_afaa_Z_abfb`bde^_`___bebb]dbb_^cbcdbad`bbd`^_`_^gbacdccZ`]b_^`__^`e_`]`^d_b``^bdbe]`^ifc`d_aba_d^_]`ec_bab^bc_ea`]e_b\`a]bea_`\cd`cjaaba^a^b_ac`c]_d]]`bad_b`[`_]ed``_b^ac^_a_b``acc`d^[\c]_a_]_bcb]a_`c^``agea^_``b^a_\a_a^__d]bbib\f]\e^c_]i^Yecc^^_a_c`d_a]_d\^g^`aa``eca`_dd^b^_aabbaf]a^b[^b`_^``d_`_b\ceaa\`_]babc`^g]_ed^bb`Z`a^]_bb`df]`\_``ib^`_b]_]caf^`a\eaa`_aab`^a]^caeaacb_`caed^_`^^bcbdd]_``bc`_dja^^a][^^^abc_f`\`bbaaea_c^caaaf^_fa`aac`_aa``_`d^^a_d`cl_^`ga`e]cba]b`bgZa`_ce_c^__`bb^^f`]f_`^ecbc_ca\c]^a_a`d_^afeedab]_a[`_gcaa\e`b\a`c`_`acb`^bcgaa`_c__^ac^a^_Za``^^]]b\a^`^a^g_]_`^`b`_[]^a^^]]_a^b^dab_a`a]]`]_e]g_aacb`]__b_\_c_aa_a^cg_ab^^^```^```ec^ab_]^a_b__\_]]^a^^gb]_bb\b`aca\^`__[d^eab_`^^a_g_[`db`d_]c]_`^\a`a_]_c]b^bccd]`ec\^^a_ab_ac]dbaab`]```b]c_b\eb]cefab_`^a^e_]`cc_c_ae`aa_if`^ag]aba`\adgbb__\bacjc`_]Z]`\bbdfg^cbca`aad`\`bb^cabaaa^aa`\b^`aa`c``^acdfe\^e^fb`_``ea^af`a]a__beba``_cbbcg`^_bc^c\_^_`g[bb_ebac_`a__]`b^dcc_a\c[^`d`a\_ad`c_bb`ce^`\fb`Z^c_^\_b]`d]__a_da__b^abf_`^b^_`effc`a`]b`^chcb\^^a`b\eabc]_b`]]a`\ZZb``]^bed`d`bbbc]b`^e`_]dcec`aeba]c^db_bgbafb]daaa_ad]c_bh\ea\ca`_^b]b``^__d`__a``abdee``cb__\`_c`fdgc```_bZ__`\_aa^da_[^_aZcdaa`e_da`bd_ea^caaec^fc`c[`c__ab\^b^^\b\c`]ecd^ab__e`b\`aae`a`d[a]b__ab`h]a`b`j_^^d_d`_bge`_]_bb]`_aae`d`[cc`e_cceecbc^^c`[_a`beadd_b`dabca`^_ca_b]^c`_b_a`b]eed\aa[`b_a_b^_\[cc_bca`aaa`_daa\dbba__b_ad\eeebaaeZ^bab`^]^_\_h_]e[^^`bda_`_b^eabb`_`fea]dba`c^\`g__`a_`_`b^`cc`\gZ]]]b]_aa__acaa`_gd^`e\bde^c[`^abad``fb^a_\ae^a`_`a^f``_ec`a`]^_]^__^ad`a`\^b_`b`aa`hf_c_bd`a^a`__[bb`_deb_baf^a`c_bb`b_^hac`__`bZ^^c__d_`acc`ga^ff`]db`c_b`gcbi_d\`bc_]_d^__dda^_bc_aa^bf^`````bdc`b]ca`fa^aab`bb^cadf^f]ae_c__b\b_`^`ce\\ch]_b_`\c_e^`^b`_a_^^f__b^__dbd]a`X`\^`^g]b^`Z^d`^_e`eb`db\^ca`ff_b^`_a\]^e`c]b``b]bcb``^b^^bbbbda`aa[\cd]_db]e_ccZ^]Z_`dc]\``_`j^`^a_eb]^```b`af_ed]e]ab]ba\c^Z_^b]]^_b\`a]\ab]_[\aa_\e^_j]a_[cdeabb\b^c^_\^cca[\__`[\`_cc``ca[c`\\b`a^\_`c__a^Zadi^`a^_`e__`]a^^b_Za`^ad]bbab_`^`_\]_]^`_``c__baca_e^Zad^`]bhc`f]bc]_b_[]]]de\\acb^a``f`abc``b_ac`cffa^a_e\g`_^`bdcb^``_c_`e\]_b]d`\a]_^`\_cc_aa_^bc`__^a``ab^`h`aXe_^_[a_a`_]acc]ac]`a^\dfeafc_`bbdbaaa``^[aabc]`ba^af`[bda_b\c`]g_j`caZg`d^bb]af]`aecaa`\^babb`^`b]c_]`b^e^a`_d_e[`a\ba^cbh`aebb^`b`ea_``cd_f__`cabacdb_`b__c_`aaaa^cb`ac_ba`bb]]^dc]bdaabd`cfaaa`dfabbaa^^_]dc^abb^b^bfcc[a`bdaca__`bb``^ge_cbd]cba`e^aaab_^^`_]fe]bbbbcccd^d_`cc`[]e`a`e`a`_fb_b__cdd^ccb^d_]a__`[]d^b]be[cfb\ab^a^_`\cad`ac^_]`e_a_cba]`^_g_`fe`]^`e__d^\[b___`^d`dddb`d_``c`^``cb``abb`c_`_]``c__`_`aed_a`___`_ebccZaa_\b`c`b`b`a^\aacaba]bba_d`ccadac`__d_]aba^bad_`ac`]_d_a`b\`d^`]agc]eca^g]be^c_ab]^b^c^e``hae]__^]^g`[aa_^`__d[[\__`^b_a]`e]^_a^_`_\`\_^b`_c^f_^^_Yc]ec_^a`\``d_ab`^^cfba]_]cb``fc]`b^e^\db[e^bf_\cbe`]_\ac_^b^a[dcaaac\aeb`^che__`^ahag[ac_^dah_e]`dca`__fc^ce]\h_c__bec\`\gbc]_c_b_ecd\ahbfa``_[_^]cdga`bb[_e^\bi`^_bc_\`^^c`a_`^^a_^\cbd]a]``]cgbda_]`]b__^f]^\^Z^a\[^\^fb_acb`_^`_bb]]]a^d[`_`_\a^`^a`aa]a_^^ca_b_^dgabYd__cabdbabf`aa_ab`]_aab^`_\]c^bd^a\i`c^_\]aa``\ca`a`]a[_\_\\\`g]d^ad_e`^cZd\`aca``__`aa]a^_ae`Y`g]cce]a_ad`^^c\_a`abaccd_b`b]`ad]e_cdccaa^]`__cb_a\^ha]`]_[\c]_`__daa^_c_```c^^]aa^ba\^f^be^c`ac`bc__`cba`__\c_b_a]_e^^eb[^`\__fcY_\`ba\_c_d_edaec]aa\_c\_^`g[id__debc`_df^]b_`db^c``db_bb[c`d_[d]a\ea`_`_]da`ba_e`d]^dd]]^cg^`^d][`b`_b\fcd`dade[_adadd_[^dabdcd^fbdcb_cbhdba^a^d_b_cad_d`aa^aaccf`]g]_ebda\_`e^`_^]^e]db`a\_`eeb`bb^`a`bbb^^`ab^ab_`]df`_`dbbeab`^ccdd^[d_^_cb_b_cf\dZ`aca_]`_a_ab`^`ffca`b\ed``cd\bb]_c^a^_db_f`ebb^e]e`bbb]a\_^^`ab^_d_f]_]b`]^ccc]ca``a[ca^`b`c`a`e`__`cadc]_`aab]bd^`_]]]ab`^]\^e\aa`\`]_[b`bb`_^`_b^_ab\``bah^^ee_^^`]_ab]``da_b^__`c^aba_ddb``a^^]ga^^a`d]dZ]]bg^^a``a``a`c`^\[^Zccac^acb`[]^afea_`eb_a^_e]f^ba]cbc`ceb]`ZcZ\^dca[`e`a``a_\Z^d]eag``[beaae_c`]``a\]`_]ac\_c]_a`]`ad`ac]d`a`_ac`^`_abada]c_[b]XZ_d_[b\g`_`V^aa]^^_`b]db]a_^abZd^aebX\]`_j`ab`\Wf\^ae]_a`[c^]adce_eadc`^`]`_acaad^eb___`]_a`ac_a^c`]`_b``bcacbc^[db[babe]^`_aXa_a`d`]_aaa_a\bae^ec_b^\_`c_`c_`dba]_^a^]c_dab`b]`^`aa]_ceaica]abc^_`]b`_^d\ab^bb^`cd_h`a^cc``ba_aae__`aaabbb_aaad__baaab`bbc_^`dabe`_c`^][ac^a^bc]cfeda`_a\g_bc^f_a_^`c^`bad`ecidbb`d_^`e]a^c^]dfe_b_d_a^adhda`^de`d]bf``bbbdb^d__^hbeebabbacj[eea]_c`ac`fccebbb]__bcf_]\a_cb_bcb^_fdb`acba`a_d`b\cb]a^`^d````d``a^a``_bca`b]cb^ec`[_^a`ca``__a^^d_]abb^aa_\cb^aaac`c[bcbb]aaab^`dc[bc]\cadcb`d]c`a``a^a]fg\acd`c`c_c^abeab^]^[]b_[bc^]Zdhacacca_ea_`bcbcdab^aaab]``c_b_a__``c___bedac_cab]`ae\_``\`^`bc`]gdadd_d^]^_ce\a^[chdaZ]]`_``a`_]`b]ac^\`ada_`a]``a]bbac[_`b\`d^a\bb]b`^_ba__[ba^f^b`_c_c[`]cc^c[_a]^^aeb`e_d__`d^b``bgabb^dg^j^_a__\dgdaie^a_^_b`^bcaa]^edcba`a_a_j^bbec^`___`a_c^b^a^`a`]^\Z`\edcZ^`_[^`e\\b`^b^__b`d\acfeabZ]hbad`ba_aaeba^gZb`ac^c^]\\_`g^ab]]`]faab_Z`_ada]^`adb^___`_cd^__abc_abbg`if``_e__ec]c`_c``adagab^`chba`cc`ad^_\b_c]][_`bcc_bha`\b_]``\]a_``fbcaab^b`^`^_d`ba_``b`c_^]hbegcb^\a``c_`b_`aa_f`ad`^_^c_a`bad_abh`l`]b[``i__`c^b^dbdc_c`g\d\\^acbdc```a^]c``aeaa`Yaa\bbb`aZd^c`b^_Ze`_^j]`^aafe__af_c^^ca[b\b]baZ^cd`bh]f`b`_dbd\aba_]ca[^c`_]^d``_^^^adeaa^^`]ca```aa__`g^deba^cc`bada][dcba`_]cb[ecaiaba`aY]bae``cdca__^edcgc_`ba_cb``^_`df`acZbcdZ]ba_dd_``ca^``caac`cbaa^ead`abd^_e``acb_Yeba[]ca^fa]`ab__ab\dadgh[Y^`g`ea`]_dcbf_^``^a_^b^[aacb``]`\\^ah___d^c^^d^acb__`dc_b]__aa``a`Zl]``_^b__`c_^ibed__eh_a`^dac]ba]`b`cc\_acada^a`_c``_ab`d___b]\b]ab_`e__ca\]^c_a]\Y^\^b^[cb_`ea_dbe`[b_]]a\b_`a\ee`d`^a`bc`_g`a`_a`da[_`fc___h``b]a_^aaaf_]a\]c^a`^b_^bf_c\f`h`^c`bba``__`]bab`^___``ab^ccabaei^b_]\``ga_d]abb_`]_d_^__aac^c^aee__da]]c`bZd]b_j_^`dc^]b\c_^^_bbbc\_^`Zaac`_a^_e`\h`c^^`b\c__daca_^daa_^^_e`^bbfc]aagddabacc`df`]a_ed^]]cc]`g\^_`aaaa`cabccd_ba^`d^ab\g`\ac`b`__accdh`ac_[__ba``a`_`bac_^]^d^a_^_ab_]dac^_i^a^_aa]`b_]ak]d^cb]`^`bc^d]c`\_dcb`cf`_``ejcfd`c[a`_`acad`ae``bea__aab`aea`b__ca_`_eej]db_^`abbdbfca___bcg`b^]ee^^^^_`ab_bf]aY]^f^h`^Ye]^\ebaa`_d```ab\_]d_^_ac\\cb`c^a`cc^abja`db^_bfe_^`__ad^\e``_abcb_a\_fa_c`^a_eibacd]c^^`_caea^e^_^b_fdde^cab^_`]a__\^^`a`ad\c[b`ad_b\accc`Z^_ef[Z^]g_c]dd_d[cbb\ba\abgca][aaaf^c`c`__gcce`]^^``f_a_d^e``e__ed`cb\ba_``\c]`^bdb[_gca`^^__dbc]`db]_]ab`]_c`ba^ja_[iad]b`]]`b``^e_\bacb^`c`_]`_`]_bd]a^eda]_a]^e^a`Yc]^a\_cc^`e__gd`__\ca`\_`baZ^`Z[c^]b]^a^]b``^^_b[db\^\dacd_Zea]fba__bb^a]_^_`a`^ace^]^afabda^]b_[_c]^c]]da^\ga]a`a`b_[]`Zb[^^^_ah_b__aec^_`_dagb``ba]c^cbcec_c___adede`^c^ef_ebba^acc^``cec_a`_cabcb`ab^ec`dg`]_d]db^ae`_bd_]^cbaea`c`^_a\]^cdd`]cbb^i`a]abcce_``a^b_aaab^_]`__`aa^d^acb_]_a^`adac_`]abdbd`d_ca^Xd\[bd^cf__d``a_cdcfcabaf`c^^_]cad___eacda\bbcbab^bc]a`\_aae^]aad_a]e_cd_c_b`da]cc]aaa`d]ec[a_\`_ba_```fc`abbba_b_cf_bddb`\b`dd`db^ac]dcbe^_a]d^ba`a^faeh___^bcf]a`ec]cd`bdddbe^`^`b``^f^b`e^c``d`aag[_]^c_g_c_cc^e_``f^ab`ab^b^`aa_c_bce`b_`fh`ac^c]`ebac``_ba``]e^dda\c_fba`ba^_d_^`^aabc]c\`^eahb^b\c_[ea`^^e\`]aa`aabbac_c`^`^]^\dba`baa^Ya`_ac_a]_b`bda`dc]b`c`b`ge`c`_`af`]bb_]_fa^b__abaa^aabaa]ab`a\_`d_ab``__b^\]^ga_cc^c_da_dbd]bd^d``_b`bc`_`_ef[bca_b_a^daca`\^`^`_``a\cab`_^cf`_`ebbd]ea_ca``d]c_`c^a_\bZd__^dfaac`_a_aa`b_^bbfa`_a`ad`h_[``__``ca]i^`\deab^b_ac]]ba_]eeb_`b__cZg__cdc``a`bd^e^[_e^_`h`a\`bda``\`bhee``a_bb`_ac`[``a\^^ae]aecc]e]a^b`ddccbb__`d`[i_aaa`^f^db\db_b^bad`f_d_`_]e_feabb`]c_]bbaba`\c_a_dccb\bb_d_]`_``ac]a`g_bac`a`eba\b`a\^`bbb`b_c`f[cbc^c^ab_cb]b\[^\_agecb`bcgdbaa^`a^caadd[`__`e`c_ac``[ba`ab`b]e``a^`ba[``\`d`bdb_d`^bea_ab^`__b`^`^ge`aa]^^_`adddb`_b`c__^_]___`bac`acaca^]d``d_c`^_e`abba`\^^ad]__fa\bcad``a]_`\bad]d]aba`aa`c`dd^`fa^`^baab`d`da[`ba_]b]fdbe`\b]ca`ea_``afca^aa_c^e[_`b^babd_cc``\b^a`beb_bbcbdceaa_ad^]^cd`]_edabaad^i_d^^`aaaad]e]]bdcb]\aac]_aab_^cf\`acY__^ecabb`Z__b__^`a````ccfb^aa_`^\]bb`dd_ea`d_`]_a``^aefa\fcbd_`\^^a`a\]baab_b^d`\[]]Z__[\a^b_Z]_][__^X^`]]`^X^^]]_^[[_]]\aX\b\]]\Y__Y\[]Z^]__]Z`]b``\_c[]\\[^a_\[[\]^Z\[V^]a\^aZR\`_]_]]]^`]]^ZX_^^_`_`]d``]Z\^[`^]\]\Ya[\a^_d\_a`__\_`c_^_Y_\_X_[\]Xg]^__]`\^aZ`[^^_\^Y_Z_[_^`[a_\_____\\^a`Z^^]\][aYa]`_\[Y_\]]^``\X^[\]\b\^Y\]\_a__\[]a`^c^^\Y\cc^[[_]\]]`^[_a_\`]_[]]\\]Ya]`aZ_^\^X`]]_^``YZZ][^`]]]]^[\_^]__d]^aX_]\a[]\^]]\\_]^^aVX``\`]``_^`^a^Z]`_^\\`^^Y[[\_^a[^^]]\_]`\^^_\[`Z`^]_`Va_`b]_]]XaZ]_\Z\]Z_ZZ`][\]Z]_a`d]b^[_\^\YaXa][]]__baca]`c_a]^__f[]c]]`bc_^dac]Y_`]`^`^a`\`aaab_bc_]b_`_X__`aaac]_`ZbbbhZc^Yd^\`^`w^]^\``_bT[Y^Z]a]S]`d]^bcZ]g^]^```a_b\^Teb`^]]ca[a_`]a\d_\]]Y\Z```eY`a`\]_^_a`]ca`_b^^kb][]\_`__b]\c^^a_\]b_^a_]`_\`\e_`c]bba\cb^]a^^cba`]c`c_]^]aa_`]]`f``__c_cb\a^`e\af_a`a]^``d]]_`^^db]`^\[_`Y``[]\^a[__`b__`^_a`_c_db^a]`^_]Xb]^aZ]_d^`^a]^^____^`^\\b]aa_a`_b^___aaabb^aZd`b`_b]`_`_`b_`\^_d`dba]_[`]`a]_``\]\]b`]Z``b]ZVb``aa``[ad[e^cc_\\a[b^`_`b_^__^_a_d]`b]_f[^c`_^a]__dba^_[_d`a^_^ec^`^_``b\Xa]]``ba_fdb__\^gd^`ba`\`a_[]i`^]^fcZ`c^bZ^ab`_\[[_\be`gYec`_[a^]bbaeb^a`b`ea_g]eabc\^_^^bb_\___`\^aea]_cd__`]da_e^`cca`da`^\\c\a`\]b`^_[]__Zdc_]^]aYbbefc_`Zc]_b`af_a^a^^^^f`___]b__e_a`bc`]a_ea\_dZba_]a_``acaf^^aac]c`ba^g^ccb\`bb`e]_\`^]a``aZ\b^b\__^a^`b[Z^[_d^a_[^^be`dc[^]]_]_ba__[b_`c]`]ae`c]aac^__a`^b[ba\`_\`bdb]^`h`[]cica]ecdb`aa`hgecf`da]Zb`___afc`__^^[^]gb`^]ba\_\\`db]^e^be`[b^_`Za\cbag_Zi`aaa^```^__]bbZ[[aaa_]^f^a^b``^_ba_a^`b`]^c`b]ce]ac_b`a_`dab_f`_`a_g_ae]^`gb``a\caa^`]^dfbcgbd``ge]ae`aa^ca`\bc_`a]c^ac]``bb`hje_d_`ccaa^^^Zbfb]`_cb_a`a^abc_aafb\`b`_beeb^```c^b`^d^^a`aibbda```aa^``babb`^b_aabdagfd`bf``_a_d`bb_aaeac\]`bafaeb`d]gdbcba_da[`___ce_e_`d`_cdc]_``b^ab_aa``ab]`ba_b`^]a`d`b_af_^_\`bc_c_`_bb^b_]c_^aa^c`^ffa_``c_c_`ae_a[_`bea_a]ae^ace_e^d^dddg`cb_gf_e``^_a``_aa`^a\`h`d`b_bb_`a[acabc^a`cb`__be`acacba^_``_ea\a_``ad^fcab]d_baba^ab__^cebbaba`_abcdaccaba^`ababbaaeehb^caec[]ac_a[ce__^b_ab`bababg__^a]`c``]c^`_`b_bfba``e_a^e^b`^b``[acddd^^`bdh`ebce``_f`]__djbc_`bdab]cda^b__[^`ddbd`e````bd`cdf_c__^`\gib]ea``]]gc``b`a`a^`dcaedf]b`e]^aaf``e]_]\^bag^a_`aab`c^a^^a`e[dd`faa^_c]_`__b\c_cbb`Zg`bcj]_gaf^a`bd``a__c_\bbbabb_e``^d]d]f`d_c`dbc\af``abfcc`c_`aig``cab_i[`bdfa]bb^`[^e_caadcca^`_b_a]]b]i`eW`^^^ddaccb^acb`c^ea`_]]\a\^da`b^[a``df`chb^dd`a^cal]`]^]aac`[ga`^b_`_c^\^]a]\_``]ca__`_acadcajac\d__e^`^^ecad``b_^d^`_a_^_^_aahbcadf]^bb_a___`aZai^\^a_ddacc[ad_bec`bbc`\^__^c`^^_]baaf\cg`c\_c`a__ba^fb^ebdda]__dggc^a^_d`_^^daZbbec_bc^^c``^d_cbd]ba`ba_bbfe_bb]bdaba`^_b_h`_b`a^b\cd\aacae`_c`c_c`bf]d]^b]_^]`_e```c`^gbbdc_b_^__ac\_abbca\`a`ddeYbbga_a^_ca`b_b`d``cg`_d^^a^a`b`aa]_`__cdh`a_```_]d\_adc_``^_`a__ca^^b_`abce^abcgcaaa_`a_c_ec_aaaab`^c__baaa`c^\_^_]^`b\ad__a]b`ea]`db_]b__bbd`c]aa]hd^d_\aabd_d^`a`a_a`b^__```]dbZ]]ba^]dj]]aa^a\aa_b`eg\_bc]aab`]_b`]`ac_cedc`_^bc^a^bbe`c]cec`_`_Z``__^ca_Z\\_`\_ac```^c^_ba`___bdead^\ad`_\e^`]``^b`]]c^`]\l^bba^`\U_gcaa`^\\a]d]b[ba`dc^XZa`ea^``_bab]__e`\`b`^aa_^_\a[^b\cZ_c^\_bc``b]hc_]a^^ccf_Y``^[b__`^cdbb]b__^`abfc]^^a`_dc_b^_`aYb]^cZ```cfdacc]Z^`b^c^a``a[_]d_aa`_`c\_]f^a_^`[`^b^]`cc^e]a\]bfc__ce_ad]__^`a\b][Z`cc^ci_Y]c^_bb[`_^e`\ec`cc`c_^]a_`d^^_bc^]]`_]]^^`]_^c_^^]a`\`c`aa_`_aa_^b]^b`ab_ecda`d^`b[`_a^]aaad[`_^`\___^`]^]ca^aZace]^^^_[_c^\`\]ab^]ac_`cc^c_]_cb\_dc]_^e_[ae_`dc^d\e]c`]a``c`ca^_]a^_]`ba^\ed^e_]_d^_f^f`bh^`_e_d^`b``[bc__][d]`aa_g^a]a`^`cc\i``a^cdaed`]aca\\]ad`b^b`bb]b__fbadb_^_e^b]bee]a]_^^^c`]]Zb^^be]ae`^\\ca`ca_da_``b]c\_b`aa_f^Zc]`da`bZ[]ca_a\`babb_`^ae^da]`a]a]acd^_^]ed[b_d]]^bc^_bed_bafe_a[cbcZa^f_`_]ab^]dac]^^]e^\a^dj`__a\a[iled^_fb^^_\a_d\^d]e_Zb`Ya__e_cc`^^__^[c\a^_[_c]^`_^_Z^^^bdbd\^d`^b^`f_a]^ba_cba__hb^`g^d[ad]^^`_^addc``ab[`a\`^acba_dY]`]^a`]bZ\e^[ba^baeb_^]gad]b`b]_b_c`a_\i_``]cbaab_fa`eca_aca`]b`ae`b`^^addcb\^`b_a`\`\b_e`^]``a_bb^^[_[e\`ci`fcfbae^c_\bb`]^^cbc`acd_]`ddaa^db``j]c^db`cc\ae```cfb`_^aacaa`\ba_\d]b___^aec_e^]^^c^aa^]`]f_[b_ac``c^bebacaebd`b^be_b]\acd`ae_ec]_dbf_abbd_ddhd^\]`bf[eac__`bc]bacae_\`^beh`b`bebc_`^cec`e__b`_\_cb\`]c_a]``abgc_a`^d_f\^aahaabcb_a_bc`b`[`abe]^`_dbb_bbfab_a`db^__]]_`cba`[bdb]^_a_acd\aa`aa_b`bbfcabb`b``dd`a`^_acb`ga`]a_c^_cbbc_c[a`[b]`\b]^f_c]^af`b_b``aeba`^b`b``c`[b`e`dc_b_a^a]^b_`Zcb__b_`gZk^ch`bgZ_`d``ibfd_ae`^d^ec__ah`ec__d]ad_n^d^fcc^`\bj`a_badcce`i`^]_c_ad`b^^\b`ccaede_caadcbfeab_ia_`_`a[fhi`_^c_`ie_`b`_c_bbdd]]`b^^b`^_\bfbb_c_he]c]bbkccd_fbeecgbb`^g`_l_bgc_`d`]`g_a__cdge_\^^^`ckb^^bb\^e^`cdl`_f]^^ea\\ba__gif_lg`ej``a`beg_Zc`^bb`bb^[cb`]ab]ecd_]`baj^^`d`cecd_bb\_dlfbd`m`aj_]b_a^dbbb\b_]bdagcf]_[`bhc\bdfaf]f`h_dc]ebaeca\ca_d_caecbaa[aabbc`a\bafdjcfb`]_jbb_e^mb_la`c`_aceabfa_caabda``c`[`ecebh]^]_``fZbc```ah^e]aa`]a_c`_c`acbWa_]f]^aedd^e^b\a\`h_^c_a_dab]dc`f`b_^]e^_acea\Z_`b[dfaba\^^_i__gabgc_b^e^^]\bZdd^_a^`g]^ea[a_beaf`\b^]a^\b^]^`^`[^_Zacagfc]]^a]b_c^^a`]``f_\cc_ba`a^cbbb_bfea_j``^d^e`]^]`bdb_^[^`a]b]`h`_^^`_`]\d[ab`Zba`_be^_bc``^d^_d_ba`b^^bc`\ida`ce`b`b`a\ea^_\ba]_`Zec[^c_^_``dc`_^aab_b\ab\`]_a`bd_aadba]_[\]`i][_bfd^a]b`^___c`a`ad\_]da^]e`e\b`cacga``b^\^]aaaaa\b]]cac_]a`a_^ebb`faacbaa``]`[]Z_`afgd`^abcca_Yacc_cc^^^d^_^`adea]`b[]c]^_^e`_[c`^^a_^a`d`dc\_ccadbaaaeacac`^_a__]eh_a_da^bbb``dd\d^\d]\`ed__cda_aabbeac`a_^ae_`ba_bc]agb_c^_c^_`be_^cfdc``bj]a__af`cb_e`d_`]g`eege_ce__`a[dbcafaa^bbcf_aac\``b_d^cdaa^aaed]bca^_[ca`^b\\]cicahc^cac_cdaad_^aabb_cbadggfa_bga`e]a\``dcce^a`^ad\a_`aaaa`^`^^ac^aa`]b^cb`c]fb]`a`_cbaad^aaa`bdhbdc`dbhfbhZ`^^`_a_b`bed^accfdd`dabbc`^_dchc^e`d`eb_aa^bdeacidh``fabee^fcc`_bc^ababca\b]_bb^b^`a^c__c_`eaa_ede^dcab`]c`_^_bbce_]c^`c_cd_a`__^b^^`a_adb]`_``cd^`_``^eaabaadad`abad`ad_faab[`ba`bf`dcb_`bac]e`c___dccaa`ebbdab``_ab`cc^bdc`a__a]a`bb_Zbe^gcb]da\c_^`a_]__fbbb^cae_c^[^]d_i_d_`d_e\_e^]c`ca^f`cac^^aba___ba_``aea_elh_`ac_ddfbec^b_c`]d^`^\aacc`b____`bb`ad]g_hc\aaceebkaaha^dd`^d]aa`]e_ac_a]^]b_adfabab]cceba[^aafcb``bc_`_h`^_abgbcd_agaab`aba`b_ccab^`a_aebb\ebba\a``bc`bbb_c]de_a^e^c_b`b\bc]`_`b_b_adb_]caaabdbg_b_`[^^`_g`ae^`dcfa]`^ae_^`a\ac[gdac]b[cdaaacd]a`cc_`ccb`fa`c^``be`__g]d\ac`fc^cb^haf_[`f`^baad___a`\ecb\fh^`b^`^^__a^\`ac]c`b`a`Zaab\__]b`cb^`cfbbb`c`__a_d]_ac`_cd`]ccgbad]\ejcabae`kc^_c^^]^b_a_]`f`ab[]ce^cb``^```b^ab^`aa___b`bba^^e]]^_bb_b`agj]^[a\^a^_^a^e^ab_^b_^a_^^^d^ah^eb``^ab`__aca`db]ac^ac`cdccc_a_\a\_bbdc_bda\adb_^cbY`ca^^bea^_ac]_cd_ac_a_bk``_`db^_bccca_^`]`\c^b^_^^^_^`_``a]`^_bbc`ba`_^^c]`b^babb`]^b_b^g]^]aa\___a`c_aea`caecd\\^`_bab^^^b_ac`aaca^a\``bh]cca_a^cb`]]c^cecdace]bb`_a]jcc_d_aa^cab`_`b__^c``ahg`_`b[`__`\__`^^c^c`a`^]d__aa`ca`eahcbbaac``_d`_\d_b^agf_dd`_a\]aaadb_a_aab\a]g`ac`a`]_]^_`cc_abbc`a\f`d_`\e[bgc^b^a]a`cabc```cd]_\acb_```b_`d_b`b_]Z^f`a`bb_^`ea^\dccfebae\\c\]^_ca_^]d^f`^c^[agbgbb^cj`_``bc_``db]^_bdb_dacc_aba]^Z]gff^a`a_`_`f^a^`]]`baeee`Z]aa_ccfdZba^cd_]``_babc[ca_`abc\a`a`_d[a^__dc`_b]__^ha`c]a^e_cjccha^a^ddab`aaaab_a_\]d]`bef_aae^acb^b]``^b`cbc_``e`^c[_d\bb]_c_``_^bb`___^bba_aac`aa`f]bd``c`b`c[dbcd^__bceb^eae]dcZc^e`^a`[_]g`^_^`_`c]\d^ca``_]c`\adaadd_f`ab`aa[^b_a[^^d___ad_aaa^b`\_abad\cbce^b\]]`_`]chacb_\gc^[____^`^ah]a^abdcaaa]be^cbcgcc`ccacdded`^ag[dccbb_]baadi]a`^b\`a]d`a`^b_aa_ba^[e]`^aacgbc_d^^`_ccbc_\`b`d^]bd\`a_`\eaa]e]c[_d`]e`\_]a^\``a\bc_c`f`^b]^`^_`X_h`bd_]_``^a`f]^b]dab\^]__c^he`b]___d_`]a]a``e^a_^Yg^`\ae`^[]a```\a`_e_]_ab\bd[b__``^a_]b\a_`^^c]e_\_`]_ad^_da\^\d]a\_`^__`^dd___abbbbad`b]__a\dX^]^_^eZ]`ca\_f`^^cZa\^_ca`\`^b]bd^b\__]^e_abb^ba`Zc^_aa`^f^bc_a_d`a_cf[d^baeda^`_]_bb_c`^^b^b\__]c^`]\a]`a]c^b__d]a___b\c`e]bd`^^_`acbba^_f^^c\_^`d\^^ad_ac`_b`e`_`a^caeb^]aeebaehd\\b`dccf[`_``bdfc^__b]^a^^b`^a`_`c^]`ed_`ag_^Y`c]b`bgaa\b_dbb^e^__ebc_cc`bbbbca[]aa^`aga^^\]a]]\\^\^`_`aa_^`c^bgfae`^a]]^bb_^`^`^d^bfaf[^ec^b_e^^\^c^``_c_`cb_c_`b_ac`bbccc_f_^`bacaa_]bc__c]b_dbbad_c^bcb^]c_`\a]e_]addbbb]d_]\c]```[eac_d_`c^cbi_^f[bc`e_\d\a^afd\\ca`bdi_ca[`^^bb_`]`eb^_\\cbbdbaa]_a`ib\`\c_]c^dc`ba_^]_d_^db\`_`afc`_adb``acbb`dcd^`c__^Z^ecdd`\b``^c]`^`__b\a^_babaa]``aa`b[cba]badb^cba^_j^`a^cc_eded[b^eh`b]_^d^\bcb`d^`g\`a`dga`bc__g`e]dadc``d[b_`e^_]```aeb^_c``b_``dc^ea_ca`acd_``da``abb^ada`fddcabebfe_^ada`dedb^d_]dc^ac\``]a^ededb\]`^_eabbb`ceaadad`cab`cdd_``eba^edcdd_a]_daacad`d_ec_fdbci`^`d`]c^_ad]a\_`^_d\d``c_dZ`b`c_ac_`dabcadec^e`_e_ca`c[bad__bcbdd]\_fbdfd`a^^^c`]_ageb^d`cZe_^c\a```_^_ddab^aacd`d\`_cb_abc_ac__deabbaccb^cea__caab\_aa`^`_gbcaf^^eeeb]`a`_ab^gc_^^^_cf^ba_bcb\c__]^ec]e]b_^^]___^_\_`\ba__a^^ac^^a`^```d`a`_]bbbcaa^__^\_]ca`ccb_``\]_a`a^_aa_`ab]dcb[]]dc_ba^a]Z]`a`^`^b^`^\`[]_`]b^`_`b\_d_baaca\b]e`]_a]b^^``^`^d]\baa__h`^aha_bbd^^ba^a`a^a^`f_Zc_]_b_g_`\eca_]`c^^_^bg]ce`]d[b____`^^gh_`baef`]_bd^`Y`h_ih\\da^]_bb^`_`_a_a]cc\b\]]_^Zab\deab^`a_\b[fc`_^`\_bf``ef_^`\\b__\a`dchebbg_aaca\adg\eb[baa_`]caab^b`^]bi_idc`_^a``b]]b`_]^]b_^aeZabcbd^_`^e^ba``^e^]adafa\[b`\`[_^_`^]a]`^]`d[b`ib_bbb^bb_``a^a\`eace_`d_`_^]`ihbbcd_acZ`aai``]_`a^d_^a]_bca`]d^b_^c_[^cbdb^_^aaaa^ada]c^^`b\h]b]g^a^f^a\af[ca]d`a^ca]\^_bb`ca]]]c_`_d`_d_d_a^acc_Z^a`]da]`c\__ba`_`^^c`^a]`ab`[]edb^^eb\_d`baaecgb]i`_bdXaac__b^ab``h`Y```hc]^d_a_d`]he[_^^\[b]_`d]_e\`___\`a]_]^bW__af[\b\c_]c_a]a^_``]_]a^db`\ba`_c[e\`_bb_a^``_^c`m_eY_`_\fhdg]^gaba`ca`_[bZ^d][acd\^_i_^b`\eY_[a\ab_c`a`aXd^`a_]^]`d\\afk\^bc_eb]`b``ab`\`dcb_i]^g^[`d^^b_b`[b_d^b`\_`Uf^baeebb]_]d^\_`[_e_]bb`]]^a[idac^db`[a^b_`d_^`_b^ca\`b^fb^\ca]`_]ecb[cb^ba]^`d\_ee`bcaaa_a]bZbc_d^_a__b]b`_]d`^a^``_`b_`fb^`_a`ag^e]b]a_f`__`_ca^aba]_]ab`c^aecb^`]a_\``c^_da_\`_`cb[ba`___^_b_a^`]^g_d]]f[`_^]ca]b`a`^c`fac^_```a__b]__]^ecaedcaacb`_ab^bbb`f]\a_ah]bafab__b^^^ag^ae^aecc_]b`ib]aa^_f`fc`bb`acb^]^aa]a__dba_e]^a_]ig_`a^`aabbe`c`a_a__b`b]d^g`]_daY_b_aha`^g^`_cb]bc``_b]d]_[b]^^__dcbeabaf_ab]`hbkdc`a`b[`_`\d^\d]`a\`d]a_b]^^]_ac^b^]cb[`___cb^^___^_`\cf_[caab^``bec`^\_\d_b_f`bab]a`_`]`a^eb_becc[]b`hbf]b]b\`c``a^a]a^cdhdb```d`e_]ejbd_Zg`_bedecb``_^caa^f``c_^]c^e`cg]```fiaakh]cca]_Zfaac`]j_^aZb`^ebdea\ecaf]]edde`b_aahaa^adbdceabe`gc__]]b``fd`ecbf`g_bd^_ff_`bfaebg_eba``^gcd]kbe\``bcdh_b_e`cc[]`a]a`\c[fbgba_]aa`aea^a]c```_d^]afba_^acad^dd`ida_`]b_dfbe`afcfacedfb_ad\d_cacdfcae_cd]^f`^ce^d_^`ha_`daaf]i[_]a``_`aebag_em_^c`fdfa`ecdZd^babadbbacb`]\a``eh_bcj]adf_i_ebfcef`eab`bb`ba^fbag__^cg`k^fbddbe`ebba`_eXac^dhcccd`b`d`^``abb_b`_f^ce`[^d`]\ab_a_afbb^b`ai`da_e`_`a`ddadea^ac^_^ecbbef`a_caacda]]b_f_d^b^c``_db`ee`aa_dda^afbY`decaagad_ac^`]caaga^`c_b_a`db^]]^dadba]abd]adda`_^c]`[`^a^a\]^\]a]^cd_a`b_`_^baa`a_d^bf`^``_abd^da]`^]a`c^`\^a_]e`^_\aba`da_c`c]aa_dabb__aa`b_`c`_b_`]b]da_c`ba]dfc```ca^b_ed^a]a^cc_^_`a]c\ac_a^bacd`bc`bc\`^`_cb\^a]ab[`_]d^e`^_a\]c`ca^a``bZcb]c`bc`c_c^cb``]`_a^_bi]bd``ba^^bd^``clea^d]c``dXb`bda\^aab_d_`_^``c`fg`aa^\^ae`d^^^_c^ac\__]fbbb\__e[_b`\`_`d`_]bdab_\___baa`c``a^]cbfb`__`^^[]`add^Zb_cgb`a_abbab``dca_]`__b`_\]a__]\bZgaaaa^hbeaca_[eac_`Z]b_`da^ddc`a`_`c_a_db^_d__e``a`cb\c]`_`aa]ac`b^d_e^_^_cd__a]_bcadc\_^^b^b``b\_^[ca\]_`^a^ao^_]a[_ac_de_]`daa^abb^c`^[^bc`_^`_`a_b_ae^^^Z__bf`^k``_c^acc^e_aaa]^e\a_^b^^ae\j_jeb____aa`d_a_`ddbd_\_a_b]_a\a[\^[a_ddc`ade``\cbabaZb]b`h]b^e_bb]\]`b_bd_adc^\`^c^``_d_]a`^^a^ab``bc\_f]_d`^`fab\c^baZbb[a`\_a]c]]^_aa\c^_\daddgd``__b_]^\b^c\e`]_b_aac^]_ci_d_c\]]aa^`^][_a```\gb^cd`a_`_^bh^`b_bb`ac_^c_a^c]a`ca]^```b\e`bda_]`_]]a_d`]^_c_]^]da[abd^`dea`^]fbibb^]^^cfc`[c_^[^d_aaa]c[c^`h]^_e\]a`^`c_f_gec`adf`^]`c^d]d[_^^`ac]da_bb`_ebabkd_[^da_^bbb`d`abZ`\_b`bb_bba[`i`c`_ec`c^_dga^^]^[b`^a[ga]b^a_`__[_e]`f`_``^e`]aiadbc\^`\\b\\^`__d`a_b`d\_f^fa`]c^^a^^[acagaaae^_c^]ef_aad]`da`_c`cce^c^_c```baa^b`\^a`aa]`^ac`b^Zc]^`bba`\eZa_]\[\^ad^^cba_a___Y_b`^^_c]^eaa^c\]a`aeea]^`_a`]bbc_e^^`d_^e^_a`adb`]]]b_``^b`ba_b^^`_bag__]_]a`abbddcf``_c_f\gb_dla_]b_^__d_c^a_`]\gf^`b^`^g`__f[_b_ac`abaiabgb]^`e^\ca_deac^e^___\``bb\`\`__bb]iX`afa^c^cf__cdc^b[b\[a^baa]^^_`^__`]`e_db\ccb_ff[^ad_`^___b`\^_aa__ab_e`^]e[b`eb[_a`\_\\b^]db^bd`^dafb[a^fc`^dc[\__aYaegc`^_`db]adb`]^`]_bb^`]afab]`_faZ\^`a``]]b\aa_`\`__^d\cafZ^cYdad\cZg_d[^\^_[``e]_]`_ab_\^`d[_cfcd^]d_^bc]adbZ\bb\]_[a_b]`a_^b]`_ce`a\^fb^a`]abb_]_`^b[^^aa^aa^be]a^f]a^bY__``^]^bb_\dc`^c[X]```^`ca^`c]f\`b\d\ea^\```c^d^`ca_b_ea]ec\a\a_`_`_^d_db`ddbc]`]Y\^`cb`f_ac_eea``c^f^dc[c_b]_eac\]aad_bg_]`da^`ea^`a_`]``e``b`^d^_aa^a]a__cb__[``\c^cddbf_ca\__a^c]d_acbb_]f_g``b_`abea`bdbb^_d_bc_`__]a^b``^`_d`c]^c^a`^c`f`\^`bdb^`bd^b_a^d`eaa_d^^ab`cdac^`_cda`e^c^`c_bc`a``ca]d]f_cg_]_aa``c_]]ac`^[b__`h_\``a_a_e[aacb___``a`]da^_]^`c`]abc]b`aa`cdb[_a__^\aa`\^a[aa]a]adbbf_bdbaba\ab]cc]]e^aa___c\^__c^_b\fb```ee^d_b`_bc\^__[_`bd`]__bb`fa]eb`a_c```c`fa``]]b`]a\`cc__ea_ba_adababab\\beb`_\_aagdbcade`dc]dd^`abfb^__f[a^]```]^b`]bbdb_````a`_]c_`^d^`a``d]aaba_`_\e^^]^fc]]]bbb^c_``c`[^__b_]hfe]a\c]]cc`_]_bdec^]^`aa^dc[gd]eb`bacbc_`b`a]_be]_adbc^_c[`cc_d\e_^`]cab^]a_^cd``a`cca`a``_d^^^_`caabccc`^`\]\d\`\`c`]b`[]_abc`c\d_^``_^bb^fb^``]b^da_g`d_b_`f^^bc^]b^^b`baa]^`bc]`_ed`a_`da_^^`ba_^^\bade_`[c`b\cbca^`bb__a_d``bea^ae[a^^^_cb_e]a[^__]\a\c\ccf_daacc^^_bl^d`c^gaa__b_]b_aa`]_ddabdeeaadc``_\`\\d__e^_a]adfbc_ac``\ac]_dde_^cb^da_]ba]ec_]]aab]g^bb]_`dadac`db`bbd__a_a`]_aa`d]d^b`_adea`adc]^]^_cb```b_j`^ddc``]g^b^`_a^`\e_cdba`b_a]_a``^`af`gebb`ae`f_aea`abccgb``^b__bag_[]_a^bba]_^]\^cgc`\i_bb__[]da]^d`^b^Wc_`_d`Xb^]`^caaabada]c\^^ba`cb_a_^a]a`c]c_Zaac_baab]eebe]`c_^ca`faaabbdiaca^[caca_b_`c\ecc]`hb`a_aaa\\e_Z`ac`gcb_d_g`gb_a]c[[_^\``_`c_ab``cbaec]c`_e`edabb`_d`^aa`^cdcca^ab^ad^``\\^b^``a`_`]f`\baba\a`^`bb_af_`[a`[aaeba_``e_]\_eb^c_`_[^_a^]^abb^d`^gd]_a_cfad^]]ebbdc]ad_cdZgbaaa\b`ba`g]^ec^`_]_cgb^_[^a`__c`a``_ca`a^cbc^b_^cb\`^^ea\b__]c]_ac^bb`]a`c_b__`[e\`ba]^b]`\`bdc^^c^baa_dcac``\bb`c_d\be]_a^daca`eb[cba^a^b`bd`]eb\^``^_e`ac^ad^^^baa^^a`_]`aa_bab_baad`h\bf]]`b_]__``__^h_ca[``b`a_^a_bbc__^``a_cccc\]^^_ca`]_ebcebc\a_ba^cccdgbdY]^^[`^a^c^^^]]b^]`eVe^__ab^a__d_b_]_`cc^b^e^_^d`__a[d`bc_^`h^_]^bha``]]d`f`]aab``^b`b`b`a[d[_dac\`^\afaa``ab^]__dha_``fbc^aad___]dbacb`^eha\`ab`c]^`a^^_^dc]aec`]_]b^`]af^ecdf]_c^[`]a`]Z\`[]a`eg`aa^cf__\c_`df`ac^]a_]bcae__b]fbafd`^__ee`a]^a\ce``add`\_fbc__^`Z_baa^b^_b`\g\ad`^b`db[abaY_bdc[c\a`]b^b\]ba^`dc`X]`\V__]db_]_^ba`b`_a``e^caa\b_]f]_`aa_[`]i^__`_b_]^b^abb`_b`e^ba^^^b__]_b^c_^_d]]_c_^cc`d`^b`__`b\acc`^^c_db_[ccdd^]`dbd^b`a^a_a^ag_^___^`cc_d[edb\_g^`_abf_d__\e^a^^_^`d`]`c`db[a]\a`[^ab\c_`__^`Z^faa`_``]a\ah^]c``\ac`b]_Zff`]_b[a\^d[cb^_bab^d\ad``a``da]ca_`bc``]\bebZ`c\accb^^c_ad`aacadb`b_gc__`ce]^]ae^c^]^^^b]ce_ef\]`bdc`[^\c\^e^c`dc`ca]]^`aZ\bb^cf^c`[^aabadab`__^dZdd]a^a^^abab_`abbbdhbdkf``^``dba_g`aahbbbdedbfdahfbeb]_accde`bk`bedba_c_dbc_^Zdedcbac_ca:fcfa_caiihadccbodbbebddcgWgde`a`b_cfbgc`dcfaaccbbc^g]`bddc`dabdbcabdcc_`gbacbbf`caeN`cccccbcedbdcdcd`af`cbbbddcd`ccbaafcdddbcbcbafdddcdd_ddbhcfeebh``dc`acaafeebfdeace`eeeca`ddeccbfdb_`_bdcgbaaeefdffcdeeedddcdebca`c`fcdclecfcea`^`hb`ecdabbjbb`cbabccad`bd`db^c`agbccddbbagaeeacbeafdeadbbcbfccaabdbecbfcegdeeic_aaa`ccbeahecbdgddeccbbdfae^`ceeecfccccfbcbfhedcd`dk_ddecd`g^]]f`bb^ae\ab]ca_c]``d]c^c`_^c\caa^__cb]_bb`^`a^e`][bc^[`[c_a]^b]]ec[_Z`d^b`]d]aaab]`\gb^dc_]`[cdab[a_`[a^__`^cbYaca[`_b_``_]__d_`^_^]a`\^b\[_b]Z_fd]eda__eaah_]_fch`ab\ac\`b]d]a]``a]\^^_d_c_a``[\\]^\`_cb__cY]__^^dc`a_`aa]]`ccb_`]^a_d[ac][cb^a_^c__a^a`^b_`Y_\dbcc[\fadcaba_]ba\ad^bbe_\]_a]]aa`Z_`a`]`aZ][`]c]a`cabb`_Yeabd^acc`^_e\b^ab`aacf]a^^\]d_Z_\]^Zd]a^c_^_`baaa^c\\_]^[\a``]`]ee``cZb`__^_b]_Zcb^``feY_db_`]d_^b]_^c`[]`cabcc`c\ea[ba^^_]`]^Z_e__`c\c``^ag^^]^`dhdcjfb_^`bbb`^_a\bdd_^cfa_`ca]da]ea`ff`a_]_ebcaaag\`a[a_`ac```b`ba]`]\bada`_b__cddc\d_cb_g_^d_^fgecfc_d_]X]]dc`eZe`]^igbg``bbd]d]]ca__bb`a^_^a^a_`dc_`bbb`a^a]ac\`_cdaea`^\`a^g`ceag]ca_^_d\e[^a``cd`_Y`b[adi`^]]`k[_]b`^^^___\_b_``]\b`b_]b]d`[[dac`^be`b`cc`afc_Zbh^f_`bbab`d`d_b[^a]]`]_dabac`_^aa]c`cb_\``cecdg`i__^cb`a`d_ac^\_b`bf_a_[cef^`d^afa`[Z\edaa]b_ab^]\_]cba`_cbccb_`cbbb_a`_f_]ce_b``]bc^ac\^_a^]]_bfbdd_ag^bb]af[]`e^fcccdcda^c\_`[`b_fba`he`cb^__b\c]^_\^d`b_c``c^cdc^a_gd^`]_a]dac_ca^^]b`al_bdc^b\bb_c`[ac]ba\]b`^^[cfdcbad__`d^Z]^^bc_eb`ddaf\fa]_a\b_]ba``a`acca_ea`\``_`\c^d`aaa]`[_]a``aae]c^bc^\c`^bb_^d]dc^babaa]]_\_c`__]_e\b_]_]`aca_^d^]adab]c`^a^ca```a]^a`]cd\d``^bcd`c]\_d^`da_bab\`a[cac_]``Z_a_ab]b_aa```^`^_i^^_]]aac[d`\[___\dide^_]ac_e_bc^ae_ge``]`b]abc^[a]a_^bddi\d^f__`\_ad``a`c_^c]fce_]]_\^\`^bcf``e^`\d]g\^\a`a^`a`aa^`d^^b]babd^^a^]h_`Za`f`^cb``abb^a`\g_a```^a]g_c^hc^db_ca]b`c```eb_caaa]^ead]_^abb_dad^^a_\\Z_e]bacf_^e]`cYb`gb\]c]a]_cad^``d`d\dbbaf_]c`a_df_a]`b]d`bdbac]_ffb]^`dac\cd_`_ac]^c_c^__bb]`\g^_c^ad^[g^a_b_dfa[a_bb__afa`b_chaa[d[\Zbc`cdb__^aab]eac`]a```_]d^a__`]_^`af`b]b^__b\_ca]fc^\\]a^fc__]b`eb``]c[bbb_f_]_]ea_c`c][cac`aY^^^\aab]dcbaa^aZ\^a`b^]^[`a`\`a_b_a__^_bb^^__a`]]`^b]_^]\_`]b]^a^ba_b_e^_afbfdbbbdbb_^__a_^e]eda____bc[edbaaccbb^[aa`ecd^c]ca^[__]`^`be\`_`_d_``ab[b]^bb^]_c`^__a`_]`_^cbbcc^\__ce_aa`cfd_fegccb\_eb]a``cb`^abc^d`cecd_fbca_]dcb_^_a[a^`ab^cb^`c_]_b]`_`__aa`]a`_d^`c`fa_ad^adbc`a]`h]Zaa^da]c\d]__`bf_]___b]`]]aa`bbb_bc]`_]_a_^`hbca_dbdZ_aacd_`^`````b_babb`]``a_`^d^^ba`_``\`a_`bYabb`f]bbfa^c`c_eb_\c]__b^d]^aaac]^ea`]`^e`a_`_cebdeac__bdbc_b`fbaa]hc_aaceadfb^beca_ac_`af_]a^^a]`^^]__b`af^edac]^^ba\``faa_`^h^^b_\ac`]eaaecb^`_]`_`]abf^^^a_d`gb``\j^]b]ada_aaaabc^ace_``^`ababa_c__a]_ba^bc^de`a][_cc^f]c```\bdc]_`]caab_c]cbb_`bed`abc`_cb\cc^b]a^bc^f^d_a_ceb`e^c_d^_^`c\_^e_beecd^`cbccd]`b_```_efa__bcad_efa\bda`b__d^^aecbfdc][^cb_bcbabd``b^_b`aab^`^abaca_b__^caafc^kaa_d^`]bb[\aaeba__`ebfa^``_`bbbe]__^bcf_a[a\d_aa`dee`dbbg\]a_ce^ca_c^ce\da_cae`dcbc__^[d[^``c`b_`bf_^`ba_`^cf`bf`eb\cdebbba`^[bb``___`c``a_^b_cbca^`d`^a`^gf^`^aa\acabe_c]faZ`cbde_^bc_a_aba```a`_]bacbbgcaaa_a_gc_ddbbe^_be`b_d```^`^`d^efbb`\_fe\_^b`adb`b`[`]___a^a^__``]\`acadeb]a]c^]^_^_b`]_bae``hc`bd^da[e`bbahh`_`^c_^`]b^_c_be_ac]`eacg`b_b`^aa]a\__]____c^``bc_bea`^e]agb`c`a]f\agf^fh`\`___cae`b^_^bc^[deb]_^`b_b_ea^bab^bc_\_fa_d`cb`bc`bd\e_aa``^bbgdabaa^e^`^a^cafdaebbad^]b_jb`]b```a\`a_]dc_`_ca\he_]ee`aag``^b^`_dd\bbi_`ade^[d`]]`bdba^]f]_b^]da`j_^b^cacc`b^`]a]ZdadZ`^^`bd^]^cd`]dba_`__dfb^bcaaaecbc^b_\\ba]\`bb[dacadd^agd]^ab`_a_d`^c^a]^__a]]d^ba`c_a_ba[`c^_`__^a^_^^b_]eb`aeab_]_`^_``aa^^`_aa_de_`^`_baeddbcb^``bc]^e`cae`_`_a]_c^`^ca_f``b]`ba_^b`\g``^`dc\bcabcbd_]\`_^cbgcdh_]fdga_e_af_bacbga`a`]_aa^\]`a]babdd^^_beb_cbafb]``^a^\`ceba_a^`fa]^b^_^c^`\f^d_cb[`becbag_^]dae_`[e^dbg_b^ah_aae\bc]a_afab\caf^c`]d\beddcca`bc``gca_c]badha\a_Zgd`]cadcbbcb`c^db___\\c`_cc]`a`_]ac_g^\_badf^^c`c^`a[c^b`bcdb`\ha_c]`fa_`eaca^d_abc\adi`aeb_d]a\]ce^b]`g__bbdbg]ad\cdc_b\`f``aab`ed`_a\_ab^__acb_bf`g`cdcf__dec`hcfb]bc_kcafa^^`d]c_gaaba^a\`dd^ba_cc_Zbff`^b^`]edc`_bcZda`hb`_a\d`a_a^dd^[`_db_bk``\[_^b``bjaY_dad`]c]^_a^`aec[c\b_b^caccc`]_bc__hbda_ba``cc`__ba_e``ddcaf`db_]ab`cabba_a^gbcfec]_be`a]\]`d`_cdc`b[c^bebgaa_c``b`cda]`ccaa`^d]d__^cdhb__c[^ca_adecba\e\da\_c`_`ca^_a^a^f^^``af]ba]d`g_a^^d]^ca_d`^e_d`[`fab]de`a`[^`]b__f``a]]b`bced_cbcga`ba_]dabhaabad^bcabZ^a^d__`_ba_`^a]acgcca`ab`c^ac_a^f`af^d```____d^^abaa\^_b^^_c_c`i_ecaa_\b`d]baa`aca\]c_afa]a`a^]_`bac]b]bb]eabaa`_a`]ebb`bbg_^^_c`aab__`Za^e]^c_ceaa\Zd]c_ecc`b`][__ca_`adab`_i]_]___a`aa_^gb^a]d_`_]a`ad`_`_cb_db__a]b[]_`cb\da]ccb_\]f_]b]d^`dbcbb_cf_`bk_`^dc__^a^\`baaa`bd\aa]beb_be`daec``a_^Z^aa__e^cd]`_[_c__fdbibbac`bc`^`bd^\_]gbe`ba`bcgbaeea\bcc`\^cY^\_`c`b]a_[_d^_]bcb_cc^c_acc]ddacc__g`a_a\Y`][eZ]_a`_d_beh`^a[cac[^bbbba`f`aZ``__]cb__`aacc]``ccabaada`__`_ba^`dca\Z`g[f_dd_^d`_`^ececaa`^`bbfba_b__`bba]b`c`b^]`deeab[]c^^b`aa\]ca_cb]aad^be`aZWd`a^`ba_^^\`^bhahh_^]f`]b__j^[]_b`c^^bbj[gedc_b^]Yab`_^aabZbgd_bd__bc^`g`be`^c`^d_b_aa`b\b`ab^_ac_^c_dcbfb]^]_dbc_b`c_d^ca]``a_ab``^b^abaab^]`cb]`aY`d`chagegca_a`abZfbba]\b__Y`]a]`dda_e[^d^d``\]a]__`]dcaa`_ac`_d_aad_`_acda]`_ab^ba_c_]fa``da`ga`b^]e\\a`bb`a_]f_a`_b_bdb``f^baa_b]d_`aZd`aej]]`_`]b\c_b^a_`^_`bc`dcc^b_baae`c]ab_e_bc_\b]ch`ac[``a^ccd\db`_\`_e__^g`da`]`bc`f\c`b_^b^b__^c]_bh__`_^_^`__\eb`bhfc_[ceZ[ad[c\ba^a^bca`\h^b`^[]f]aa__\[bb``e^d`b^`b^`f`b_\^^f]c\_e`bcc_d^_\eabe`\a]`^`ce`da`c\]d^`baceaeadcc]_bdaa`g^_c`_ba^`hc_dgcd_c`b`\a\_c^b_bdba^^c\`b`^`a`ddac^]__agb_`a`c^`\`a`bc`^dae``c\_[fbea]^b`ce`ea\^`a_e^^_c^___\^^e_c\d^e__^^ce^e_bcb[_`\^da_adc_b__ad^__aa`a`eb_]a_`a^ab`e]a`]```__a^_^cb_b_abc__^e[^c`a_g^b^_bac]]]c^bcaf`^b^e[aa]aa`b]`ccbcdc_^faa_ed`]^ab^dbh]aca[^a]e\e`a_`a`d^eb`b\b^^cda^faa^b[Y]\^^b\ba]`a_f_a]cb`__]bdcf_baZ`a^cb_^d``_d^]g`^a`]b]ef_`dga[[_aXba\cb__c^a``ac`a]\`]ccd`cfd^aabeabad`^\c_`e^d`be`afcd```[g_`c]aa`c`a^__e`^e`bc_[^ca[^`cade]d^_^^^\b_d^]\b^be`ded_a`aec^ca^b[aa]^^`^c__dd`_^dbd\^\ba`^`bcd_e\a``aad^d__``badbaabb_]`_cf^abafZba^_`a^b^caa_`dcacbadc`_`acca`aaaa`ac]_ch^b^`c`a__^b\cac]jcd^aaga__bb^___a_`_b``]^ccad]bb__aaa``ab^dac]_`gcab```fYda^`_`aec_da^^[`dc`b__`fbe_`_aede^`_b^`_c^_bd`aba^``]^_`_a__a``cc\adc`bZc_bc^c_^`_dg__de^bbbd]dca`bacae_```baa`c`d_b_`dbbga_bd^^b[g_\ba``ae[_^_]c_a_b^dac_d]_ccb``caaad`a`gdae^]b`he^aaace]^b^`ada]`b__^_^ae\^`a`d]a_````a^___fbab`b_d``aa]``d^c\^cbaca_a^f]cf_a[b_`_dddcabbaf_ab^dbX^gaa]]`dg\ace^^aa`bb^``a^_`a`_cb_ccbbdbda__`bba_^a___d^^b^^_b``^_dc_aceccb`^``c`bd_``f_dafabcbcb`b^\_]\b`b``a_``a^`cba`a[b_aac`aaa_dbd_cf^b^e`c_bd]e]a`bdaee]_c__`ecb^aa`^_]^a]a`fbcb`l_`^\aa_bbd`c^]`_fad`_ga`bb_^b^]g]b_dbc^b^g_ee]c\ba^bf`fba]`_`a]eb_ba_ac^c]aeca_cdc_bdbe]`aga^a``de`ag_aa_d^e_ba_^cd`^ceb_^ba]`d^^c`\e_acad]ba^cb_]_`_a`aa]dabc^^^\daa_^cbgb]]aca]bie^`_d_^`b^bbZ^`_cccd]b]ba`ea^`a^dbac`ba`^cb\^a]bd`a^bc_dbaa__a_ab_`^`^d``a[f\^bba^ba`b^e^ba^^ac`a``]gba^a`a^c^c`^`ibbc]debb_[_`a`d`_c\_^aae_abacd\a`ebcbaZ_^_ff_`bc_e`__ecb`a`eb__b_dc^hba]a`ba_d]c]f_hacfa]b]da`^]ca_aa^i`_^^`c^aica```_b`___`c]ca`c_\i__`_^_``]hebc`ec]`^^bcdec_c_adhfcb_b]a`dd^_]_aa^b_^[\ca\^a[c`\]ad_c^f^_cdf^```^a^___f`ddbaba``\daf`bd__`\^c__]d`^`cdd]ca`]b^bb^bdabab_a``d_a_a``_b__c^a_d]bbac`c_`_c^a_]afa]`^g`aa`h`]ec^]aeac\_^[]`_]cbe`b^dca_dbac_a`^c^_`dbc\b`d_]a\_b`dc_ab``e`ba_dec^__``a___[fec`_b`e^_ac]a\ca_]e``^g_^_]ab__`]aaeaef^`dccc^ba^cedadc`aa`^^d^e_^`b`c_cb^c^^aedb`b\`^^`f`__`]_[dbja`\``cb_dZc]^be\c__^ab`bfac^_ab_b_^_`ea]`^h`^a^a^bb]`^`c`]`b`d^^a^bab_c\caaaab_bca^cac]dZa`_b`c\]dhbdb``fae]dbb^b^^g_`_cf_f]bcca^`]a`b`_]Z^d__da`\_cfadk[ac_e`bbZ^_`Zcab\a`]bc_cd]`^aaZ`bfc]]Z_addb`^a]f^_a_ac_aa[`da]`dd_cce`e\hb]ca_`b_a`aca`c_b^_bd]aa`b[```abec_a``_^fbd^abd__^eaeabdd__c__`^ea_]]^``\]`^_a^_a^eaa_h]adf^__bc\\_e`__d_ecb`_cb__]a\^^d^^_ba`bab_\a`g]aa^``c^_ba`aac]c_d`^``_`b`baa_c`b^^_c]`_a]ecb`aa`_`bf`g^a]_]b]^^a]dea^_eebb^^\eba\_Z`_d`ca`b\c]^Z^^`aa^g^cf]]`g`e_e^ec]\b^Yadb_b`^^i^_e`b^^f__^]f_a\aab^c`^_ddb`j`da_`c_`ea^]c^bZ``Z^b_g]_`fcg]c__bab^_```_c_`__^a]c]a[_[^b_a_^_a^i]ddb_aa^_ab`__b]g`bb`e`^^^c[]^]c``b^`_a^ad_aa^`b`ag``a^`a_aaf_`_\b^X_a`]ba`bca[^_^\_^]aec_^_c^^a_a__b[`_b`a\a\a`d^_ce_`\`^\c`c^dd\c[d`dcaabbc___]]dba^_a`\a`^^\c_ahba\^e_^_```cacd_``[a`[`a^`ah_`_cda`bdb^b]`d__`^]_]`^f^_^ab`c__bbaaa^Zbaa]_a`eabc]`]`ecd[cf]c]]]eab__`]a\bc`ccbe__``b_bg]^d_bea_c_\aa[a]c]cZY^aa`_b``b]cda^``bcae]dab_ca\_dc]\]^]`]cbef^__\``^a`b_b`_`_badcgadad_be^^dcb`^^a_`cf^a^^`^bcac_\bbc`d_c`_ac^_cfbf`e_^^^`]`_\e`]_b`eae^b^b]c^_a^__`bb]fdadfd]Ych\_c]]`d_]daadec_a_g``bd_`cebe``d^_b\`_]_h]\_`]_^c^ab`bZ`_`]Z__b`[^_`]e_\fdf`^gdc\_c^e_]^]b`b_a^d`a_e_^\b]eac^d__d`^_^]c^b]^__^ba_^`_c_bbf_c]]dc\_dca_b_ba^cd^`]bcb]cbcb`aac^``bc_`^^eg`^Y_d``_b_e_a_\^`aba]]b_^_]b_aaba_de`lcc]_``^b]`fb`^b]bdd\a^c_a\ac`]bf`^`caf_ea_Z__eja^a]dbo_dbbd`^`eb^bba_^`_abc^_a_aai^c`\`a`cb_``ca_``_f^`]ccfabac^_`ic^ib^beadaeccbab`aehe_ad`_``cec]a^aacdb`dc^dba_a_dg`a`__c`_g`__`cb``_]da``c`b_cdc`e_`b__```_dea_`_f]g```^c``cba_c_^a_ca_\bcdb```ecd]cba__a`_cba_]a^a`ba^d`^bc``a]`^]`cc]d`]`db^`aZ^_]``_^bccbff_cc`daefac_e`c_ad`eab`^_ac^^aa_`ebea^`bbafb^_d_mbc^_e`\`a_`db\eef`ck^e_fdc``__ca_d^baf`c_dcdc^aa^eb^fba`b^bf_`bbd^_]_`c\dm^_acbbcba_dccda\ceb__d`_a_b_cbb_ac_^b``c[`e`bbbac_`\`_```a_bf_ebg`jb^b_a```c_`_c]b_ab`b_bbc`g\b__dbbc`g_`c`^`f^`beb_`^_`\bb_]]bf^bb`]_b]`_af]__c^c_`__``^^e^\`d^bb^bg]^d]`a_`^a^^^cc_bbce_eb_`^_`d`a^b]df^[^cd`cb`bbc^dd`ba_`c^]a]`bbccb]_aabdb^c`^_c]c]fa`bfab`c``]\aaa`_]_d``__^b``aa`_^``babc`^[]a__g^_]a^_^d`^`c`^a\a_`adb`d^_aa^`_cad^ca^a_`cbab]^^[aaac`eeaadbcc^cb_b`_``^_b__ac_ab```aad_a^cba^a`becb`bcbbadaaa]__b`b`\^h^b_dca^``a__cfbd_acfce`bba^aabecb`c_d^c]`adfa]`cae_a`ecd_de`baa]beZ]ac`a`[dbbf_Z`_dZ^`^_\b^`_^]eba`d^g_`dd`]`cea_bZ^bcc__e]_fba^b`bacaca^_]c_a_^\\b`acb^`af_\_b]_g]b_ca\af__ebeca]`^`a_c__ea_cVfa_`bdb^`^_e^g`]^Zdd__`_`ea_a^^bda\bb_ba`]d^ca^a`a`b`__cf^d]`e_baa]bbc\bbf]ac_`\`^c`c`ba]b_ba\ac_]abf`_^`^^ecc_aac]^abac^aag^^c__b__bc`_b[_ac_ca^\^cca`_\^^d_^c_^ae`ad^\]`b`\i`^`aba]]afaddi^_c\ab^b`ab_]^e_bb`d`^[c`da____c`]dgabbg[^ece_`\eabca]^`__b`ce`dd]^]_c`b`c]_^\a_`b^d_\bba`_d^g`ch``dZacaa\bc]d_bae`_f`__b`ba^bge^`f^e`b_d_`ac^`^baaababe`]_bbcb_c`f]da\ba_eb`_^c`b]eb\d^cf`\`baa]_^dab`_\_b_cg^`_dbac^\_icbe[^a`aa`aab``[``dc_[c[_a]^c`_[b_b]eba_^_eg\af_gb`ccba]`b^fa_b^ac``^bd`ae^bd`eec`d]^c_bc`Ya`afi^__b__acd_b`abc`bc^c_^c`a]\aaa^bc\ai]bc`e[_^\cg`dee\`bd`bc_^a`\Z_acZab`c_d]^_ab\c^_ea`a]aaccbefad`aa^_cd_b^cdd^^c`ac^`ba^]bba_d\d`f^_f_]_e``bcb]d\a_b]__`^a_\[^_b_aac`]bb_adf__bbd]`a`c``^\_bcbdaa^`_]agbab^^c^^__abaa_eaa`dbb`__\_c^ad^`[`bbbi_c_]a`a^aae`bd]^abd`^a^_j\`_]c]b_e^`^acc``ebd_b]e^`\_]`a__a_`f[\a[`_a_d`aac_d_b]]_`ab]e`abd\__afa^]^_\_ac^f`b`ib`h_e^b^c^f`aa_c\X\e^^bfa_acc]\\^]^_a_b`]__cbc`bfaa_d_a]c`aa`^``gaac`_`a`d_^`[__]e]ag_ec_`^aa_a_`acgc`^aa_ddacecabb^\[a_b\_`a_]`b^a`[abeb]b`^g[`]`k^b]_d^c_^bc^`a\]fa_ccaae`c^__]^cd`d]ab__bb_\]a__]ah^_aa`e\cad`eb`a`\`_X]__`]bb`c_e[```ac____b_^]b^e_]ca_`ad]___ch_b]`ac__^``_da_a`_`^a`ca^edcf^dc`baab_bcb`^Yca_^^aa`_ac`^[e[c^dc`_aac]da_fea`bb`daba_ae``\bh^d_d`^a^f``bacf``_aaa^b_b``cja_ag``b`a^add]^]`d`bbff`ec]ci^b`cbe`db^b^^q_g]b\a^ce`_dd]_[ba]a^`b^^ca`c_a`[^^]e_b\\b_]bdca\`c``ab_^faab`^a_a\b`\_`]__[^cga_\_c_a^g_`^c_a^_`]b``]]]agga^_c_dc]`_]a_a`\_caca^`]`dcbbb`]aa^`^f__ca`bc``bbe_aak`hh`aaY[]`e``cZab__[[^_`^a__]_^b___f__gbf`e`_aabcbab_c`cb^a``b^`afb_cbb^[_abae^`ebd`d``d_b`ac^_a__b``a_^_d\`___bg`_cacc^_`cb[e]dd_^j^_`a`^cje_b`^_^`d^^Y^`caec^__\fbabebebddcbb`a^bgaeb`d_addabZ^afabb_aa^]]^f\]bcfaadaia`^]^b`\\aak\\_^_bh\a]dd^`]b\d_bcdb_abbdceeb`d^\b\`b\^cb]_d^c`i]bea\d`b]af`^bfg`ed`ea`_cd_`_b_`]d]cac[^b_a`b_bae`adc``ebf^hfbcae]f_e[a`e`fe__`^_[f^^ad[adc\f\g__`bbaceb__a`daa_`fa_ga`ba^`^``baa^e\d_^]`^^afca_dd`aa_[cgc^e\bb[bc``_^_^_]gb\ace^c]\^ea_a^efaabfdi_bbd`^`ec\_^i]^e^fbc`a^Z`^e^c`bZ\b`]bj]``aa]__cc`_`acc`^_c_`_^_```eh^b^bbaab^^c_`]]cc``da^ea_h[bb_`g]abh_a_c^bf`da^bc_[ag`a^^b_]a]b`jc`a_`g]`c__]fc_`a^b^\b`a_bc`_cc`c_d`\_a\]d_`_eb^ca``caage`^ad`d_`_d^da_aab`caaf`_b]aabca^bi`]`adaa`b_b__a___cb`_a[^`aa^`cb`^e`]c^c\a`aed_^_b\dbd^aa^cg`^b`__ab`eaac``c^bdadbbb]_`j]^gd]cbba_aea]dc`^\cb```edb_af`abd^]_a`_`[`a]bf_`bab_bcbdc]gcd_cb`b_b``c_^`ia_``^e]f^_bba``^_bcbf^_b^`d`c_]`bbe`bbc^]^_c^acfdbd`]gb_ca]^^b_c`_dcccdbabc_d`bab^a`]`a_\ccaf`_^ai`gbaeae`_bbebc\eabgb`ae_a```_`h^c`]adbe_dfbbebbc_]]]a`ca`^chd__a_db\cc`^^d]a`eb^`_d_]]_c]]`b]cibbbd^dd_bb_`b^fdbgeb`e`_ad]_c``d_b``cd`a``b_]]a_ade`h\afe`a\a^bad``\ead^c``bd__b[dbcb\cd]c_`ad`bakcca_af]e``ac]a`eeb`f`_cc]`]_[bb_`aac\adhb_cb[`bb]a`a``^db_]]_aa`^\a]`bab``_c_b`_cb`_b`_da]`Y]]_]^`b`edf^__b`\bb_`e[^eacc_d^daa_^_dda]_e[ac``_`]]cadacaa`d_`^e`dd]`^bd^]_`^d`__^_bfabb`b^__^\]`a__a^]_b`ada_^gb_Y^`^badba\`__g[_a``ccba`a`]`aa`]`_e]^c_^`_da^`bbc^^__a[ab_h``^]ba`_aad^_c\d^\^da\a^b`b\bbc``^acYZ`b^cc`cd`b^cb`c`fbddbaac`bcddhac^df_^^\^_daadichca^e_d`]abb^``]a_bbb^f`^acaa`d]`aca`a]`_fc^_^]c_^bc`_bba^_ad[_abdccbc\a`^diecb`^d__ab\b]ba_a_^fa^eaaea^bbdf[^b[]b_dc^a^b]da]d^c`a^`be``]dbd]^]`ba``e`_`a__c_``^e__b\`gb`aa^d_^__bda_]]^a[^`__dd^^\aa`cebadac_`c]j\b_aa_aca`_ca^`\a^g_f`b^c`edf`b^^Z_^edd`fa]c^g^c`a]]cbd`a\c]f```dcb]``]^\`^^be`__ec_c]aa_ff_^abY_`___b]ai`aag^ace^]c[e^cbaY^ae`fbb_ddb^`_^^c]a_`ab^j`g_`^d\ia]^_b^^]\`__]`f`ad_`a]ae^c`]`_a``^aab^_^`_]`cd_gfb^_af]\a\ab\dg_\``f_af`b_]]^_fa\`f_`]c]bdfbc__^`^__b`ac^^a\fab]ba^^bbZ`dba]e_bbd\b\a\bZ]_a`a^babfacdZ[`edada^c_bdaea]bca]b`^_c`_bbaedaba_`dabbbaba^aa^bga``^aa_`^\d_b]aa\^g_bac_cab^]`aaba^f^a`]b`c_a\bacXcaadae^ad\bb_]e^]`debcb_\\\^[b`eca_`dd\c`b_^c`eaaeadb``^b^c`\`]`abc`a`k`ag\cb_]```cf^^afc`f[`ba_d`cbeede_dadabb`ba`ca_[a``\]`]bc`a`_`aa^^^]b^_^`^``bacc`^`d_bca^_\a`abcaa__ca``d\]`a`b`c_\cb^[^`d_]^babca\`e_abaebac_bbec_a_\bbababcdc_`ac``\dea___b]f_de^f_a[ade`a`ee_feaa^]a``ecc^_Ygfe_a^`^a_bd_^daddca`^^bd__b``]_ad_[gddc[\]b_eca_^b^ca_`a]_bda[b`^ac]_b__a`aa^`acdbb_ac`_a]`_b[``e^]c`c_`__c\aabd]aaa`bf^`b_aa_ba_^`c_bYa_a^f``\a`_``dc`efaf^\_d^`abdaecdegd^b`da]c`_gWg_d]abf^_cb`bac^`a_`__aaacb_f\`acbbcdcaafc^]ae^d]b]eb`a`^ee`e`e[c^b^aecdfa`^ga_ac`a`_`cgb^^`^_a^]ad]`a_cbbdc`e^_bbfbc__ciaab`f`c_c__^dc_b[b_aecbc`bb`b\b`a_a_i_ecc]b`hg^aa`^e_ad_]]c`gaa``dc]e``ac`cb``bc`a[b]`bb`adba`c]bc_be_dcd^cd`dc]a_ad`bdeeea]cc^]^f^_]bfacc`^aedafdbfcdcb^_`_cd]c\``aabb]d]\ffZ`a_cca`_aabadaec^b^``]g_a^_`^`_caf`f__ab_\b_`dgdad``a`]`^``a^``_`gae_[`[]`agdc_`__ja__d]_d_c]\```a_d^f`_`bib__``]fbffdgaaaa`_bbc_^`\``f^`_^^_a^abbdbdf`^`db_`_bddfa^^e\`[^^`a``^^`_d`^`c^faa`[^``\^`eea_^c`]_agb^^c\_bd^_^c^c`accadd_``a_``^cf_dcc_\bea``[Z_]_^\bdbcgb^`\^ad`ia`ca\]_`jbh^b^`ed_bb^_d_\_aa^eab_bcdcbb^^d]b_^]_dac_a`j_b`^_b^bd^^\_]b_a\_ab^[c]d`bZb_`baa]\cbb]dghacaeci]beca`ca_dc]b]d^abdb]\]_bf`aedaa]aaf_\cde`]`_c`_bd^daacc\fb^a__c`ec``aa\`_b_a_ac[a]c]`hebg^_^`^fd[bd^e_ba_bdac^a__ca^bdc_aihdf_ebc`^[ca_dec\Wa_d`dabcc`^ae^a^ed[e^ee`dj^__^h_b^bcdb`a^hb_a`a^`dbZ`a]_f`ei`aaabbfbea_babc]_c]b^a_b``\b\_^a_]abacbaabbcabebage`a_cdb_[`c_``dac^`^a]`b`]^ccZcc^`[\aa^c`^^bbaedb`b]^badb^e^bafcaebd^c^dZ`\_f^^abec^`c_ag^ca^]d`a``^dbe^b_`c[cbc__`a\adcb]Z_ba\aac`b`_\_a\ab`_cjbc_cd_\c_b`bb]b\_``aacc`c`hbdacbbbef]ccbb_abb`aeeab_\`b]bbaa`f]a`c\_acZ_`b_`cddcdb``c``^a`_`c[cab_d]]d^`_c_bba^[daaj`]_cca`cce_c^`gadac_^bbb_a_\a^caabcccebaje_`^]cb\dfY^d__d_abcb_bbbca^fc[`baafZa_`_`be`__b```^ccd_^^c``fabbhccad__edb\b`f`h`g_c_caa`gea^ba``^c^`c_c`\^efi`__a`[_\]`aabge]h]_ac]^da`dd]]g^_ad`_cdcb_a_^bc`d``_ad\c_^\a^`__bf`\`^_ab^]caa\^\ba]f``^_\]_a__`cc`e^]c`_`]_^ca`bcab]^`_^`_da__d^fcebc^b^\d^_`]_e^`cbc_dbcbY][a^]bb`a_^aad_]_abg_]bdia\^^d_`aa_dbd`_d__cba`abfgaacfa_^_bc\e_b`a_`afbd`b^cc`\ee_aadf`b_]b^b`aa`^addc`adcaaea`^\da\_]]]abd]c^]c`\`]```]\e`aa^`bdaa`^a\_[c`cbbc`_^_`_^afbdfc\caZb_`]de`]bba`c_b_a__]`]]aa`_ecdc_egabb]^d_]da^a_]aa_ae_\^^``aaacbad_b^afe`^`]c[[a_][[db`a_ec`db_db`c_`_`^_c`d^``bcacdc[a`^]hbcbb`^`b]aca``bbc^`_ag]]^_^dagfb`__[_`a`_aj^\ab\\^^a_]icZbcefb[^^`^a^]adadb`a]fcb^\`d]a\c_bdfa_ac_^__`aab[cb[cc]\^bac_b]e^]\`]_^`ed^^``b`[f_`dc_aba\a__^c`_Z]ab``acf_`c]a`[g``^c^`\c`e_bb_\_b^b[___`a``^ca_d_d`c\b^_cbdf__e`_\a^^e\aiac``_`a_]b_cag`c`\a`cf^bcd_cbb_^Zb`]acc`ba_a`da^bc`cb^c`c`_d`bba`b^ac_b_b_`elb_gce``ha\^b`_f`c[`c_cb\`\bcc^ga^eg\]c_`_bbb_`]^c^^f`^b`e`adaaabaabcbbhc^`ada^`^`a_ae`a^baacf`d]^ea[`baccea`cdbbgb\abbd`_bbaa]dcb_ab^`_kcb_]\^__a__b_cccd]^db]c`cbc\`d^[b^^f`]dabb^]\a_a^``acdc]^`b`b`b_b_bb`Z^]]ba_b_dc_`af^b`[aeb`]f`_ce^\d_a_bb_cae_a_b[]_b_`_cdb_da`b_achec_a`cabaaa_abc`a]d^`faadd`b`e]a\`b_ba^b``cefc^`ed_caa_aa^d_c_`d\c^`_ec]``_a^``aafabc`cdhab``b^\^\bcb``ccbdad_^^afb]ffda]ab\f]jff`da_^_`_^fab\]_aba`ce_^_he_^``cbc_``^b_a_a__a_g```_da`ba]a`^ca_a`_b`bea_gac``f`^`]cb`h`]b^^a_cc^f_]aZafcakac_^^adbY]cagd]e_^]b_a``af_`a^`c_bbg`^`[b`aa___afb_bcd^da__\`b`Zdd`aa\\]`_\\^]]]_]b^ecbaabab]]_`_`a`^ab_a^[b``eca^^daead`[_\b\b__`_`cb`a^___^d\``a^a`f`a[d^``aa`fa_fa`bg^`_`]\]`]b_gd_bg^^a]_`c`^_d]b][_c_a^^a_^aibeaadaaad_a`d__bc`d`c`e^^`dbb^``ba\_dbc`\]a`Xd__gbcbZ]\_]e]_]\_bfda_d]^f]b\b`c_`baa\bc_^d[a`^aa_e_ca`hcaab]]d]]c_ab^b`^^^b[d`a_^`accbh\_ab[^`^b_agdcd^dcd_bdf`b^_\`a`d^]a^_aaafaa`cg`cc_ab`b_f_`^_c^aa_c]``_afb``c^Za`c`ba_a_`[`bcc\\cc[`ad_aacf_`]b]a_]]_d^^b\bb]_caa``bb\c^^dZ`ac`_gda]_bb`_b]ec`_bd\^`Z`_`b`abc^c`b[`_bc]`_`_cbc_`ad]d^daZd]df]b]^a_b]bcahbf]_`^^acc[^^Z_cba_]ad`__ec__]ccdacach\a^_cbbc_`ab`_a\a_b_b^a]dd]`_b^_^a_a^[c]`ddea^a`bf^_a]_]ab^a]`^`_Z_b__j_`\a^_``c_\_^c]_`]ddecdaa_ddc\b\bbc_a`_``\a^^dfgbc^`b_`aa[a]]_c_Z]efc``d_g\_Y[_a_b`]]e_fd_cag]]f_\][^]d_^eb^bc`[c_ba^`bZacec[^daabc]a^`__`a^da_]^a`\bb]]^`\e`c``bd^e`]gbb`\`]acbda_b`b[`bcc^dY^]ba^__]cWabc^^bdf\abec[ch^_ca`cbdcda\^a^`bab]aced_bda_ib`a`cb_`__ad`]``c]b^aa`cc`dbcb]a_^_e^`^```^_bab_bb``b_e`]d\]`_a\`a_^c`^__`^`cb___b^abc]be```c]bc]db`^e\_\`]__a[]b]^aca_b_^caca_abe_ac]_c^adic`d_^`a^^]`g^_^bcaca_b_`d``_`aaa_`[d`cbd_d`bb]`b\bbc^^_^ce[^b]b\hb__ecaca_[]f]ab`_`a_gaa]bcf`_e_bbc]b^`a\dd_]gbd^`]^aYa^^i^a^^__`_abead]aa_d`a_^a^a`aebad`fda_dc_adb`bbccea\`\a^ab^_^_ad`c^`d`]b_db_^caa`^]_^^_^`ac`Zg]b^]]bbd\^aa__`d_cc^`_d^]`]_bcab_b`abb[b\_`c_``addb^daakc_f__`c]`ah_``d`d_\h\]\`d_bbdaf`db]]b\b`^a\[cb^\a^g___\d`b_bcb^]`a_`f_``bj\beaa]`b\]eb`_\db`adb\``^`^_`^dd`c]c``cca_a`]^f`c^dcc[]`]`a]adede^fdb`^]]a_^_^g^]gehie_a`g^`bck_h]_[d^a_]g[a[jed_\a_``_```b^^Zc`e^]`ea__]d\\a`d_cec_Zab`^\[_`cfad_bafca`d^d_e_ed\`_baa\]^c_Zb\cahab^_[d`^]cbe\]b[`_`hi^__`c]```X`a\a^]^_ja]_Zah\je]agZaba`]_^e_Zg_a`babibbca^`i^[a]c`cc^_a]^]_k\hea^Y\^c_b^\hg_ccba]hc]_c_d``dbca]baj`ffa]]ab\cc_a]_d___\_\`]]abd_l`a]^^cd`_^d^`d]a]`bea^^_bdca\abcZb^`ebcb^a_`_ba`addba[a^c][cb`\g]a_aad`a^dcbYb`d]Z___g^^^``]__d]^b^`cb`^daacd`a^^^b\^]__^agecbe__bg`_b^f]]^cd`_ca]eeaee_c^]_a^\cZ]^]cac`b_dc`a^`d^__c_^ae^`bceffbe_]fe`b`b`faa`c[`ed^c]`^a_b]`_aa_a__b`eaaac`b`_cb[aaga_[`bc_b]d_dcea_`beb_^``cdd_bfa]c\_^`_`a]bc\b_^[b__]abb_`bba_d`c^c``c^`]_Yc^dec_`^d^^ca^]a__ab_cf^^^_bb]abca_Y_bc\`__cba_b]a^a_ed]ac\`bd_e_a\c]]]_b^_b_b`_c`__ba`ba_``abdbh_e\__`bcc_ea_d`a]_``_da__\[^```]^^dbaa_`]dba``f``_^be^^\h[```ea^]f_c_ae`bcd]eh__ec[]d^[b`b`eac`a`^b^`\ngc^^e]_`\`]`b``bb`]_`ed`bc_c_be`^a__cd`^^\_gd`a^^e^`__dbadbl__a`h\`c``^]b`dcca_`d_^a`b_\__ce^_ac`c_cb``^cb_adlb]_g`fb`b^dgdZ[a`]^b``]_a[[dcbdc`_ecba_gb^g]bc_[`^dcg_`cbala]c]^_a\ec^e`]`\bb`]a`a`aa```bd^a\^df]gac^fbcbfd^^^b\adc\a]`d`b_`c^^ac_aa_]b`][[Z]`[da``]f^^`\_aba_`[aa_b`]`\b`_]b]d\^```__`cb`_a^addd^a_``^^ag]`[c_aab_]]d_^`\]e`^g^cab^c``_\_]^g][f`c]]`a__[_`]bhaab_]c^]`^c`_\_d`^`da\^Ya\f^`]a_ec`c^^Zace^_fdc__^ae_deb^_]aa^d]]ceb_\^]Z\`bbb^a_ab]\edb^e_W`]aabc^^b_hg][bgca`a_d^aaY`^]h^^^f]fYb^__aadacb_a`c^ab`b]bf`bd^]aa`^\b\aabbb___[bTacb\d_cbaZY^dbac`abaf^b^_`a^X[^^\]__bccbac\dcc^c_^`Z^a_^aaabc]d__dcfb_bfd\]`\b_deae^b^_b]d^c`_c_[bdgb`b_]b`_Z`_d[_\bbaf^c]f]``abb]b^`^]dc_e^ce\bdba\a]^_]b_Z`d_b`fc`c```^bb``_ccbcc_eZ]dbe``]]cb`_`d^e_``bcaa_]c^c^`^\ccabbfb_^\`cafbb^bb_`cabbcb__b_^a\c[b^`\`e`ec]]de`^b_a\c_caac^aa]^`daaaa[e`_a_f[]cc]\cb`][`a_^abdgY^aee__cc_bbaba^a^`e`a`^aabbbcgc_``c`ge[_^^a``babbda_af```b^cb`_^`_]__d_cf^d_`a``ba[_Z^`aba_e]ab_``ccd`ad^b__a``b^bb``becab^]`bhbd_]c^_[c[]f_a__b]]``_]_`_e]\e`\^\_ba`_ca__aac^`^`]`_a^_]gbge_e]cfa]bd`b\caa^`dfd\d`e^ag__]^ccaf^^a_^ac`a^ac_^cbb_^dc`^cbe`bc``d_e^a^f]c^``aca`c``]^hac_ba_`b_^b]`b`^ee_^`acbab]acc]^cb^d____\b\abad_agd__ab]e`bb_c__bbb`cd_]Y__]d[bakg^a^a^b`ha\_`__bbZ]`a\b_bc`bbc^_ae`d`_c\`a_c`^]`e`a`_c`Z[^c``aba```f`ad]\_b`b`]`_^`a^_b\b^`_b`]a^bde`cb[bbb`a^g_c]ba`]bd`gabeb^aacga_a_b^^[a`a`ab[Zb`ac`a[_b^^a]_kdbZebcb`b^\`e\b_b]ddhb^bc```^b_a\c_`Zca`a_[c`a`_ab^^dZaba\`b__``^`_^Za_`ee````\cacfc^]bcdacc`dc^\d\`c^b`e`a``]]b^ec^_Z\bfbb`^`fb\b``hhacaba_`ae``]__a`edbaab_ab`^bd_c_c`ae]]dd`]]]bb[`a]aaba]ed_abb^]a_h```]b`b\_f``_ce_c`_`b\b`a``_ced`^Zcg^c\_d^bc`ca^^_[db]\dacac_gccaaZ`]b`]\``_]\[bd^`_`_`caa^c]_^`]a`^_[dbd^cb`d`fab`f]]aab[\c^]^b]Za]_a\[_`c`_ce]e[^]\]`i`^\b`_^a]_c_f_[ab`__b_bda`^cdad`c`^aba_ccabb`b`dc^a[_adab^^]`_`be\c\`beba]`cc`^^a^b]d`g\]bd_e_bdd__a]cd^`c^bgabaa]a`]\d`e^`dc`c]^^b`c^``da]^ba`_ag^cbac_ZfWZ_[bbb_aaa^caib_ad^ab`ab]_cblf\]_^edbcb[ae_``a`a^ea`b^^_e`ab_e`^j`_a`d__baa\`a_b_`d`e^\bc]hb_cba\baecbe]b``dc__a`a^df_`da`^b`]a\ca_b`fa`b]e`Zc]``[_a^`bc_g^b`c`]\e_bf^ah`a_a\cba]`_c`a``]`^d`^bd`ce`g^dh\abb`a`^_ac\_``aea`_e^aabe__Zdc_b_d^c`ab^]aeaaa`_c_`_b`c_]bdk^`e`acdd_\\b`^`]aa^\b_^\]_b]ag]^b_`ba`_^caa`_]`__^`]`_b`_[[b]^``_af`]_bbb^^c^af_aZ`][e^]bbb]a]b`]d`fa``c]b_^fc^b__ae^`]d`bbc_b`_\c]Ydbb^]f\_c`cae__b_Zb]`^Ybb_\_^^dd`ddbba^b`dbb`cba_aadaaca`^\_\bZa^a`ea``ca`ab]bhdea_a\^fa\bb_abb`d]b]^be_db^d]^]_a`b\^ecb`af_ebccbch_]^^^_da]a`da`_`c`adYcd^``]`ac^fc`bdb`X_c_ab`^ah__a]ab`]c``\\ea_^[fb[_ddabd_]_a_aab_[`eb_`afa_`a_h`^ae_c`e^da_d[^__da__a^`^___t_abacdae`df^c`_`][__ecea`add[fa]`_c`aeb[[bc__b`ge]a^`b\bc___\bbaaa_ad[\bc`c_]`]ac_ae`\`^_d_`^_`^ac^a_i_db_^]adg^f_e`_gaacae`cc]``\a`^dbccab^]a__`\e_bc^ba__bab^_^b^dba^_`f`^Y[`bd`_^_^b^^bcba`b]_^^agbb`\``ca]b^Zb^_`d^__b^a_c`a`]a`^```a^`^V\c`e_^_fag^]a\d`abd]c`b_cb_c[_`e^c^b^`^`a^^b`\_bbcg[Zd`^a`^]aa\a]`^c^[]ceb]_fdb_`aa_b`Y`^cb[d[c[_`^_`ce_`__`ced^g^][ccb\``^cb`abe_`bc``^_]ebc_b`a`aabb^dae^`b^^__d^^ab_cbf^ga__ccc^`b`c`baYk_^`d^c[a`a`a`bdcbabb^a_b^ca`fbd[^fca\^_^b_d_afa_a^`b__^]_b^Z`b`cc]edf]e]acd^Ya`]cc^`d^^db^`a]_e````a`b]^c_ba]e`ec_cca^[_^d^``_abaca]_^ade\a^`__\b`e\]abb\_`_aaf^b_\b`ah`_]`a`_`ab`a^_cb^fd^_fa_\\`b`a_^[c`daag[b`fe\be`a^_`]`a^db``abda]_`^b^a^_`___^c^]\bacab`\bd[g`ec_^e``^eb`a`[\```^b__c`_^`b`\d`_bgb_]fd\a^\aa^cb`h`Z^`ccd`dY^_[_[^e`bc_^dde^`]ab`_ad^a]f_a\``^c_`b_c`c^^^b\d`eZa`ba_]aa\e^dfbadb^d__`^a]db]eagebbb_a^ddaea`]`bc``b`]d_]b`adcea_acaaaac_^ca]dcb^_ecf`^cZZ_c`c]hb`]____c^a``aba`b_fgc__a^aeca[d[d\^`b`a_`ebecf^bca_ab^]_c\^dada`bib^`^ababe_^]\bb`a`_`_d`]^_ac^aY]c]d[babbb`\`da\bb\eY]_Ybaae]a`daea`]_`bdZcgZb^d`]bc^\aeabb`d_ba`b\^acadb]a^_aa_^\c[ca`ada^`gfa^^da`^]eb]]]``g_`_Y_]\ddabb^c___b`e_cd_ee\_`bcd[]\bcg_`ebacd`_a_a\adc^b`]_[cabhe_a`fbcaccadb[e^]geg_]]b\d`b\``ccdc^aca__a_cdbc_e_]`b[]cc`Zefda`_b_bbb^`^`X`__db\aaea\^c`bbad`\ca[a_d^`b_agd\_g_][_adc^abb__aa\`eaa\b]bb^_Z`c_^_d[aa\__^gcc]e`feba^a_a_ae__c\b^`_]`a^]b_`_\`ba[a^_]_b`_aa\]e`\b__aac]bd``g\b^_a^^dg[bj]b`aea^`\f_d^_ca^al]b]_a^ebbb_efefc_`f]_d^c^db_a]b]a_`d\^][dbcb`b`ach]_`_fc\b`fb^^fc_a^^eda_`a`^c_b_cdefcb]\_bfd_b`_a\`e`[`f``da__``d`^b^_[e`aace^bb^`bcb\c^\_bc_\adba`_``\a_`^dcebcbf^^_`aa_b_`]b__]d\a_a\][d_fba]``[^abae`_`^ff]baea]```aa`am\baa^_`cc\]_Z`d^ce_d_e^aZ_`]`d\^gec\c`cd^bc_acb[`]bb`]^\_c_^\``^\``cb]`a_``d]a`g`^aaad^\`_]\^``b_a^bd^a_bdfdabcb\_a^^e]`d```h_d^_`cb`]^_``a[`_b__``]h[_^c_ba^_[\aagc`c[_`\`__b]cabcdd]c\_`c]`c`g^cd`^cbaa\b\deb_cdacbh]^f`^cac^_a]`abk]if^]baaa_`e_]c`k\afbb^a]]`_\^^__a`ab^dadad\i`\ceabbea_^]caf_\c_kb\]]f_^bb`d`c]cib\^``bh`a_a_e_d_`^abad_a`o\a_]a^bea`afgcaa\cfbbYib_[d^c^ajdb^_^bebc_`Wa^`[`a[cbbfb]eab`_`aed]^`bed^c_ab]cd\^`c__`ccabcd]_bb[`\c_`bffa`c``a`b^`a``bcdfd`beg^e]be_bbg``^bbd`f]bcd\`_]`g_a^_b\]af_c`e`ccb__d^^`__]hd_eabgaa\^b`b`]bcf``gd^de^_``__aa^b_\\]aa_``c^a_`bb```^da`d]d_d\`e`_`a`\c_cba_ebdaacc`]^`^c\c\ce^c^``^_c___b_c`f__d`b\abbb_b^c^ab``_Zc__aaa`_^^dd`a^_dd`ebb]__``\aa`cab\d][ab[`_`ba_`j^\c]]cg^^d___^]]_a`_a\_^h_a\__\b`dd^a_cebaa]a_bb__g`dcaca```a]aeea_a`ca`fa^faea\e^bad\a_f^]^d`cbbd\gc\_\]^a^`cdda`aeb`cbbc`_fc]]___`_``^[_```d_aggdccbffa`a^]cbc\c^c`da_`__^`\ba_`e^]_cca`b[]c]Y^b\bd_a`ed__]a^aa__]bc_ad^bbba_c_a]aa]_baaacce`g]e`dfedgb_[ba`g]`__^f`bZba_`__ddaa]j``_^c_bc^aecb]]]]efbac^baaebc`^b`]c\d_`cacabg`f\_``abd`c_ee_b_`[Z]b^_ab`a_`aac_a_acaaaa`ca`ba`ci\i````^`b`ea_^\d[a]a_ba_]`b`_aaba\cb^`bg``\ecba`^f_\bec^^^f^^c`aae^d^aec`d`ge__`d_dd_^cce^b]`b`_^b]_f_]ab_\ae_a\f_b_^cc_ca``b\__\b]b^aeeaefab_cb`f_eag_^^a]gfdfdb`ab_b]]_fcc]baa_a^a__aba_c^a[bc_`f`ad`d`cb\`a^bc_^_]`e^dbfbe\ea`c_dcb_bc_aY_b`bb\`aab]]_b^_a[b`Z_]cd]dc[da_fb\d_c`ce`d]]c^__d`[e`^]`_aac`aba\_k^ha`acc_]]`^`d`d_ace`abZ`aaa_``da__[bab``eb]\dg\ca`_b]_^d_abab_adbb`ad]d_c```_ed__dac]\^`bhca`_b\`e^d`^f^haaada`a`]c_ac_^^^afa`de^c]a`d``d`e__\\__ac`Xac]```_`__\a\ebc`aa^c\a`b_h``dc`a^d`aa_e_]ceddaebe_da_[`_`[aad_iacbc]da_`Y^c]\_[c`edgcfada]d\b]\d]c]\dd[a`^_b^b]ad_]j`^_`d^cgf]`c]cah]^`^bdbfbc`e`\\`a_ac`^a^`dZa^bc`]]c^`aadb`d]`aa\\^b\d`b`_``a_a\Y`d]^]baaa`ea`cd_[`]aYa``\ba_ad]`c_^caebb_a_d`jabd\bbabc_eacd^`agc`_cb`]\ag]cbb]a[a[Zb`_`b]^bYd\`d\ad]^a^_h`Yj^b\b]e^[Z[_daa_g[`a]b_`bba``^dafb]\`b^[`]``Yb\e\^a`[cc^bc[^`^c_`Yc^aaa]]][abcb]\^aa\db^]e\_\a\^c^^^]_\_``ab`a]^d__b]h``Y_ac\dadb\b^a]a^c\`[^]bf`_[`ca`a^]d_^]Z`a`_a^bcd`^[abccaacacd[^h^c_\_^acea`fac^gabeb_Y__^c^c_]]^cd`^bc\^`bc_]`d`afgccia``_cd^e_```da`]ca`^d_cd^c_aeeb\_a`adab`b^]_`_`_b^\cih]]a]d^d_^bcgd^^[`e_`h^bb`^_[ab[faacc_be]ab`a]bb_a\\gafb`^dbZe\^da]^b``^dbca]ab_``ag`c_d_]]d_^d^__abcaa_`bb^bca]acc`d`c]__^`dg__b_`b_af[ae`]_bba^hc\^e^a]a]b]_c]]_`acc]]ceb]^`d[ae_\b_df\]c_a^_fa``c\`]`jb[cacaa^_\aa^`a^`]bcdd^ea^__`c]]c^f`__efab]]f^`b`]_add`aba_\___`cZ_cd_b]af[_aabb_cb]b_^babe]cg```c]\aZ]`^__]dd`]`cba]Y]d__e]a_gae`b\ec^^bd_bcc]dpabfa_`d`]`c_a``ac]`^^a`\`^c]]dc]^a^bbb^ec^^a_``bc`__cf[_e^^_dab`bb_cab_[[`ab_^c`[^bcd`[Y^___ba_``c_\g\_acg_]`ae_daecb`edc^b]b^da`_ab]\cb^bZb^\`b`ac`b`^]_^^`a^`dbZfab``d[c_\_Ya\_b]`cZ`a_`bd_e`c`db`ca_b^_\_`_^c_^b`babag`fa`_]cacab_\b_a_bc]fd^`adf^abbee`a`_``\_``\cb`c`f`fadabb^^_efbbf_adbea`[ba]c`bbdbd^ae_a_^`b\ce]a_\\`a\]_c`^`d[_cZb\_]db^[da]abd^\]`b_`]`\aa`ch^`]\a^^b\`aebb\^c`\]af_a^^be^a`^_b[^``bcb`aag_cc`[]ca^b\_b_db`_``^`bahadcf`dfd`e``b_`bj_b`b``b___b]k]__d^ccbca`bdb]aaf`ccg]aa]d`_`b`[]]cbbg]\_^bc`^^]c_a]cabed`bdb\^[ed^ad[__`a`ceZ``dfecf]b]`cde_]___^_hcZ\[`_g`ceY^]b`b^a_^a^ccT[c`cd^dad_^_b^edcac_[b_`\Zdba_c[ca_]bd``_^^a_gbe`^_b`S\[`c`]efe^Xbfa^`_daab]^_\ba^`_bdd`abf``d]^bce`g^_]fcaca^ba]c``Ya_acWeacd\a`cbad`cab^bdb^ace^_Yca^fae___``_]b_\`_a]`_dbbd[^ba]]cb^``d^ce^__ae]``^fe`_a]cb`\^cf`d][_`b_c\``]ea\^^ca^h`cbe^`die^`a_bc_``b^d[d`W``cb_d_`babdd^_WbdZ`__`aZcbbc`_b_``d]b_c_^ddh]]b_eee]b`[dc]cb_bb[^`a]`acbb^ad[ca__`aa^^^^a``g_bca__]`b_^_g_dbc_aba^`ca`bbd`]`]egdaebaa`ba`baa___ac\a^^adZf_Zdf__caccddabZ_c^_bhg[e_\[dbccbecb`Zbc\b``ehbb\``c_`bdaba^]aeb^_a]`b__ae`aaa`[be`hd_bab^`b`dbca^`abcb`]h`acf`f__^a[b`a__``cie^Z^_ccd]a`_`_daba]_cbadb[abaad`i[_bbcb_aeaceb^\bdf]adaca`\b_`b`e^cf_ae`_jee_c^_^a`__`a[ce^b_]^[acec`id\da``\_ab[ebdbbd^cb^`_\be`]]bdfca\a_`abf^_b``fb`b_cbaaed_`dac_d_\^c`[aac__`_a_```_a^`_b`b]]``aa_`c]dbdc_abe`]gadaaeaabeZ_bea\ec`abce\`^bacd]`a\dabl\`_[]^d_dc^aeba`_\da_a_g``^[aa\_]`a^ab\c^]_`]abdaccbddeabaacf`_ab`b`c``^b^a_``a]_]^c_bbaaece`d_d]bcbbdc\ma`^fab_cg\`[Z]ibc`_aaaa\]c__bb]b_ed`_ba^hbd]_aa[]c\`ag^ca`e[`_aa`^d_cc]^a^__aa]^``_dcb`_\``__d]_i_[_ad_`b`^_\ad`[aYd`bcbaaccc^\ca\aYd_i`[_\`_dd]abba^_gaecdd`b`d`_ab^\a`[^hd^a`bif`]\_`cdf`b^_\`fcb_cc`bcde``^_c`ae`]_c_``^aaaah^]ad^^^a_a`d_]ceb^bbde^_[d`]__Z``e^cd``bdbbac\`dd_ca`_cc`^a_`__\`^hb``dcd_b_]`b``b^]a`a_`ec_d^_kc_dcac`aebbfea_a_d[d^aa^_chd_bb^``ce`dcaZ_\eb`ec_`_^babe^c`]^c[a]beb`ca\_^ddaja`\__f_acbc```fdaa^]^eb`\cb__aabbeZab_d]df^`[_`]c\dd_]b^^d^_``fe]`_`ffc`d^_dbd^cc^^h^abdc_\`bcdX\^gd^fc___c^__dc\\_^`h\^_ad`afchbda_daYacad\ab_c_]a_e]d_bdc]`_b\fa`a\`a`ebb`]`db`c`adYd^^ccYb`b]`dfchae`_ba`ec_c^Zcba]eejfcabbb`ca\^]``edcfaZ^caYcc\dibac]d_[]bfe_Wfb\had^_g]g^^abbh`^\_dba_\a_\ab^eb[a`_c`b[`]^deabea`abc`b^Zcehda^db_]c\ecba^f]e_`ac_`d\_b_`f]`cb^aea_`c`_Y_b`]^`e`b_ce_ce^aceYe_aba^e`bc]`e`_bb]a_bcbf]^dc`cae_]d`e^[bd_a_^b__][bf\c`babfaca`cd]^eac`Z`^_`da]]_b_ac^b]dfbcaf^_``a`c_a`faddbac^^^]bbf]`cg]_\ca`adcb]]b`_a^b``c]\^_`abdegdjc\c[beabcb^]c`a`fb^`h^bccbbhadfb_^Z\a]adic`[`_aaa]_bf]b^\Xa]c`cf`adabb`\b_`_^^`b^j_bed\d__h\daa_c]bi__adc^^]c]abca^cbaa_`a^]```_`d^b^ic`___eb``_g[^_`b`Ydbab_fa^_`a]_bc_cigccZc_b]a^_`c[aa[`b][ae\``aa^Z^`dcb^aaYbY_f_fe]]db_^`^__`^a`c^^`_f_c^d_a^`da[_ba_`adfY_]^eac]cb`fae`\_]Z``]d__``Zccaaed[a]_^bd`aac__]]`_a`_]_\^bbah`ea`abe`\]^c^d`^abaa`b^b]_`_da`^^]c_a_aaeab_ee]e_da^^bca]]\e_a[c\e^c]^da^db\c``]``da_[]cdgj_b`bb`c]a``_bbb`ed`__^_^ba`hg`^caa^_b^`_b`ceb`a`^a`aalkdea_\^dcbacba`ccb```b`b`ac`dc`__ad_`]a^^^dbded_`dcabc^Zc[f_ab_hb\ddc^^_aa_abbg`_g_f_caccdaf`aeZc`e`deZa_[___c[`Y`f^obab_h`_^b^^^aba^ac^cd`a_c_aacb_^deaa_``^`bab`df__lc^_[gc\c`a^`chcabdc`d`^_e]^c^d_b_[aceada_cefbf\^a^`c^^b^`Y_d^b_`_`bae^adda\d^ea^``Z`a\e`^^c^b_hf]Ya__d]b_^```^b]be]^b``e^^c^`^aab__b[cb^^b_ab]aa[_aa^_d^]^_ab^adbi_cedc`^b\a`b^bb^Zaab^[cafb_dbcc^b`cae^abcd^]ake_[cegc``c_\`]^`adb\iagacca]_c`dda^cbbc^eeca^aacdaa_`c^c_Z_f^b^fccZa]f`[b]`]caf]`ea]`c`\`ie__]]c___a]a^_]\```e_^]^icb`fdb^_`^]`bde``af^baa^ec]a^c`baeb_ac^a_\`dd\c_b_f`]``_a^b`e^`cc`_fa`^_]`^bc]b\Z`e`\^]`_hbc[\b`\cea`d]a[a\^aa`a^`dc__`_b^he^__`ah`aac`a`_ba`_\]c`_`bcaa_`db^fbdbb`ca_af`n]bc]_`[b_`_dbca``dedb_Z\acaabb]bb`e`eada]a\d\abf_\b^e_a\a`]`]gb_a\c]^^b^cc[c`a^ab_c`_b```_d`Ycdd]a\c]`c^a^_[]b`\_e_cf[`^`bZa]bbfbbb`bcaa]d`e_haaac_a^e]`aa`a`ade^^``[f^b_b[eaad`e`dcch_Z`ech\h\dbb`ea`_\`_`cbcb^_`__b_ib`^ffbac^[__^\^bd`c_`e[bd]b`c``a_g^ca[e`c^_b\bZbaa`a]a`\_dca_`d]acc^dcaeab^_\bZb^c`c`bae__]`c`e`aa^fZed_bf^acfe\Zadaafc]`c\a^b_eacb``\ddb]_`abbf`b__a`abh]cb^\]]Zf````b`b``a\eacb_ecbeb\^fd`ad^`ecb`h`cba`ac_a^ca]a\cc\]bc_b``b^c^b`b_]`ea_eadab`dd^be_bbcacb]^`_db_bcec_b`]_`b_```^__ad`b]cad^`e`bcYcb^bc]_`lgge`^````cdcc^fcd`^]ba^`\ecY`^_ad^c\bbfcZ```dcabbc][aaac_ad^^c_bb_dcc^`ca`\`ba]ec`_c__[]^dba^__`^be_`ac_]^]aaah`a`b_a_[_\b]`c^e]_\_^`_^^a[a__]bbdbdb_``Zaa`\dc_ac``^e____ca`c^]dg`_ab`_c\]^``_b__daY_ab_ddZdb_``bcdb`]b^cbcd]cf`bd_`e^bc`bbi[b`]b]Za\bb`__dac]``]`d`__acac^caa^ag^eb`a`]``e`_aa`ba_`^bb^ba`a`]c`]\b_[_^^``cgd`bce\cafabca_`d`e_ccae^_e^\^`a_`a_da`b`bd`_]`^a]_[a_d`cd[fedZb`bdea`d`dc_e`cc___c_b[ccd_`aa]b_`af]Z``^]`^d^Yh_\fb][ac]`_^cadeebaab]\b^`_dc\cZa^gai^]`_cc^]^^_bc_cec^fca^`]`cc`^[_c^^bbYa^cc_^b]bfbac_ac^ccd`d\_b`b`a]^\_^bacafe`c_`\`dbbfb`_^]]a`adebad^ebcf]`aehedad_b`\bae^bd_bc_^aae_aab`c`a`ac`[be\a_b\aca]_bai[^b`a_babe\_d`^^bbaa_bjea_a__ed`f`cb_aaba^abh^bdc^_f\b`b^_dc^`cdab`_ced^^]]`baaaab^bd\\^Za[a_`a^c`a__d^d^b_a`cbd^\``b]__d`_`c`___aacb`___``cY]dh_[[`f^e\cbcad`]beb_aca^badcd]\_fbbacd^ac`_dbY_ca`_e_d\[daca^[]_]^\]ee`_cgad\^ha^bcdcd_ada^^^\gabb`cd_`_c`__[dc^bbba]abd_\bcb^_^]\ab[d`d\_agad]^^g``b`b]`_]baa```b][fca`e``d_b`]`aY]ddb^`d`^cccaf``ed_^^a_aa^cbgb_b^a_b]^``b_\ae\_[c_caabac_`]f`aa`^^da``_bf_`_d``ba\c]c`_b`de_a_d]eae_ddga_a_`^`Z^dca_^]e]d]\ed_]`^`_^b_`c_a_b[aa_cb__hc\]^aaf_^c\acd`]_h]a^d_aad^^a`aea`cca__`_^^cc]__`[``b_c_^gZbb`bdca^ba`eba^a`hcacb^]]b^_^a___bd^]bb[^_]ac][]ce_ada]^`Xag_c`]a^c^ab_dfV^__caab_c`_`afa_ebb_fcd_`Z]_]^[``d^a\c^\^ccbabb__`a``c_b^]_^e]c`]]_a\___b^_cc^e_^`c`d`a\`afca^aba`_`Z`ccf^d]dg_]````_c__dg_g_``_]df`\cdbd]cd[d^Ybab_]c\_d_`af^ddbbYZc^Y_a^d_acbd`ceZa__b^_^bagae```bh]`ecbbb`b_gacee`\cb]c]`f`\cccddedbce_^e_bcbaba_`c[^aacbcc^]bd]chb[cdafba_cded_e\^_e`Z``d]dbc__ea[b^edb`gfe]_a^]\cacc_f```_b__b]]`d__^c__d_a_`daaab\`i`^a_bcda]`]`]b_^d\d`c^_ad\a_`_c^[a^iaeb```_dbe^`_^\^g]_cZ\ac_fada^bddb^Z_a\b^d`a`\bd\_`gdcc]a^`b_^a`[bZcb^ab^da^`c]aefbaebf\i[fc_c[c^_g_b_^e^e``^\`dcZ`ab_]bedbd]_`ac^bbba`bba]`^``_d_b]e^`a]b[X_acj`c`acd[`b`^_d]_cd`^bba\`^_b]`a_`\_afd`b__d`]d`e_afa__dc[]dacacc_a`ccc_c^Y\a]hec`dcba`ai^``c\`[\_\`c_^^b\`^__hb`cf^b^bc_dd`badb\^`aa`^^cb`d``fdbef_c`aba_bb\ba\`\`b_b`b^b^eb^dacd`]^bc`]a^eb`b\`f^aagafaabac`_ci_`]i`a]_^`_^]__d^]^a``^d_\fcb`a`abb^ba]c[`^c`c_\Z^^d\gbec`e]ec`jd_d\ac`bbc_^]`aab_]afhdebg`a`ca]c``cbd^a_`e^]_\bb^`ccbb``dc_b^`^cb`ad^n^^g_^`__bca]ah``ai]]]__`^]`^c`ba]`g\d`ah`ad]gbac^_fd]^`b_]`Z]`agca`da_dbgg_a^cd`\]\de`a_d[be]g__a__d``_db]bb^_\_b`a_c__a^_\d^ada_a^_c^b]a][a``agc_ba`_begebcca`d^d^bbbd`fca\[]`cdd`\b^^^ba][b^a[bbdabca[ba_be`d`d^Zecca_b_`d`e`]^]ed^`dbcb_a]ab_`d]cb`_gc`^_d\`[cc[`ajc\^ce[`ea`dcd_ab]e```bde^_cacad`_`bacb__cbb\d^W`^[ba_aa\b^^h_f^ac^d``][gfdeaaf`__b_b^__c]_ec[aae``baedh\`^`^c`dhgdd\bc__[_^`_ccbfcc`aZ]`a`_cU_`[bZf[`\a\^`ca^cha`bd``_b`^\^^_ca^be_c`\ba_baa`e^a\a^dc[\ccbfcae][db\]_e_`d]ddadab_cbb__]ccba_b_\^_d`a^`_bba_`a`ad`c^\`^cZc]a^^[checcbbe^ad`Zb_ccaf`dd]_c]g][bY_^c]d^`ea^e^b\^^^___db_f\b\bcacbc`bdada_c_bf_d]`\aca]ac^bc]^bf_``d`ai^`_babd^cg^_b[_db_d[af\b\c`_^ae]`b_a^_][]_bdf^Zda^aee^]`bbc^abYagf^[`cca_aae]c_`_a`_``_\af`c_^_b_b`ba\]_beaabaaa_a``[gbc\c]_cdcc\a`][aca^[]gca`_\da`cZZ[`bc\_bb\a^a[a_dac_`ee`dc`bb_]c`i`_a]_ga`e_Zbc_`bdb`]^_f_`ed\_]g`^cab^_`^^]_^_`]__`d`da^a^Zf^baeZ^`ec_d_[`h``cca^^\c]\``chZ__`a^ea^^]\^c`ab^ab`aba`cc__`]^_fe]ccdd_^`]_e\d[acc\\c`d\_aba]f_ecaac]cca_[`babb``a`icacaabea[a`]`ec`]`ebb_bb`a\bb`cb^\[a\bc`_`_a]]`]\cc_c_fb]ab`e^d\\^c^a`b`__afddcabb^_cbeedaaa_`bec^`bbbe]\a]aZa^`_d`ba]^e__cf_[aada`ca^d]e\_\``__^```\b`_af[be\c^^\bcbaa`cdab`cb]``b\`a``e\aXc`^c`a_f`_daaaca_cf]b`\ea[cca^d`c^_`acf\bbje`aah_`__aea_a__bd_b_]`aaab`_\a^`\acdab``\a`d\`gda_c^acZ]^^e`]^\_d\a_aab^a^^edd_^db^aaacd`bab[d^c^af_c^`a[``ca```bbdb\_acca_a`c`]_aa]c`_da_`a\_aj_h^b^ae`]_^]^`^a`ee]\]`aababacd`a^]faa\c_`caa`___bab]]bdcacdb^^`e_be`ma`ada_e`a]d\ca]``a`b\]bgnd`d`_b]acb[`b`ba`bc_]`a^acbbf_bacbbdbdZb`b^^d_`de_a]bdbe]_`d^c^`b^cdacc_aceacbac^__b`b^`gf^a\a``]c[bcbfbb`a`d^db^]aa]adebcbbacee[a`b`cc^aa[e[^cb^^bab]b^^^gc`a__`b^ab___agc`b`a_bd]b\_^fac``^X`ee_Zic[_bbb\d_^\^]b\c^cec]]\`]]_aacce_cecbaaa\e`\c`^caac^d^i\``eabg\__a_`aabad_]aa\b___bd`_e\aac__`]bbb_^a__[]a^e][`]^]dadc[_a]`d`f[]^cd]ccb[^^b^f`aee`\_a^cbe]Z]bcbfbab_e]bb^b]cdeZZbefcb__ah`__a_fa`dbc]bf`_]a`aa_``e^cca^a^]c`ca]cg^a]W`b`_^bbe^^_ea__ae_dd^cb__c_abd`daa_ca`^da\``b`c`c_ddc^d`ac`b\c_^_]bae``^]_d_bab^d`^ea`e``a`b``bdcg`Zb^]``_^aecbdb^b_aa]h_^caa^]f^^bcaabc^ec_efd]adY_[`d[a^_b]a_`aa_d__]cc^`bceZ^aab`e`_b[`b`d_dbc^Za`cb[ae^]c_b\ba_bbcb\bY]c``a`^ccc_^beb\d]`]^``e\b^_ccb\__cfa`baccdc_f_\b[abb`Za_dec`[^`c`dfe`\]a`c_h`c`e_b]dl]a`ccd\^aa^__bY`aaa`^`aa__[`_jZa`c]`a^\^Yb`a`[b^Z```bdbcZ]g]ba``^]afbccfa_f[`e`gg`^b_e`ece^`ab\aebe`b`aac`_bWdZ^bbdacadbde_adbabcc[\d`c`_d_^b[`_]__cc^[_`\Ye`_^_d\]^_`^_ba^c``\\\e^]_ce[[bcc`]^c\`a`ebfa_``d^bf`b[[a_e^_dae^b_```cb\_]aa_e`^d[``b`^f`]^_^ca^^hd`d^\]b^^_aee]`be^__acc`d]fbg^b_]ae^``]cd_bgdgcia`^]\e`b_gadcbbb\cc```e_``feb``gac_e_\^a]_h]a`c^Z_gf_b^^f_^[^`ad`__f``a_\^\^``f^a``cg^h`a^b\a`f_c^^^dbc\```a_`_^_bbbacca\bd^`e[eaa^_a\c[f``^`]bf`]]bbb_fa[aa`a]a^c`_cbh]a_cbabadca^]bja^bbb_c]aca``abdd]a__b`]bcbb_bb^cbcb^`_d^]]^`b\]cc[bd^`bc```]b_`\`^^ab`^`]Ybb`_]bccbabb_^]`^aYe]^`_`a^becbadbab^_b_e_fb`a_bc`g^^]acd^c[]a]adb_``]`b`c_b^c\_e`eXbaad_`^aaac``^f`_^\_^_[c`\baabab]`acac[a__dbcd_aa`a``__ebciaaaa^`cj_c]fa_e`bb^b_d]`ed``e^c`^ccbd`_aZd]aeb`]babb_`a]c]b^`acc_`\afc___]a``a__``]c_db_id^_af^a``baae`__]`cdad_^^dacb`f^__b_b_cc\b^aa``a`e_]_d\b^^c[_]^a__bb`bbb^`_cda`b\eabbga`^Zakab]aaba^_b_`\]_cbZbadaa[\^a_^cb_cc___c^ad``a`_dh`b]\cW]Z^]^c_`[_^dad`g\ebc`_\_`d_bb[a^_a`dd]^a_e_^``b``bgaca_]]d_\b`]`^aggZdddce]c^cc\ae]`b]`a_caZ]aa`dba`_b`^c`^b_cc_fc]`^`f^^`_cb_c_^b_aa`c]`]]\^c_[^b^g]^^\^_ba```a``a[a_jf]_c``\`_c^[\db\``c[f]``bcad[_d`^`b]_^_e_baaadab`ec_`\b_`^d^]`^cbcb`_]`e_ak`\bbab]Zb^`_a`bb^c\a]h_c_dda\a`^\bcgba`^_c_ba__b\_ba\b`c_``ea^c[e`]b_`d_be__[efbd_`]bb^\_bbc^`_]bbc]e]b[\c`a`ea_`_d[ba^cac[__bac`a^_bfcb`[^gc^`___]e]_Wba`^gaeaaa_b`_`b^e^ecac\e[`]ccd`a_bbbe`a`]\defaa\`d`]_]a_`d_``]`]^Zb]ba_^ae_eaadba`bcb`^d\abe]babd_aa`^de\]\b`]ca`__c]^ca`\bd]ib\^_bbea\`a^bY_^_``babe`b`cdf^[\cbb`_`]^b^`b_d___abbac__bf^`d^`b^c[````ba]_cb`bbaa`_a]a^`b^`^]cZc]c``[ca`aab]ca_aa`^_^ed]a`a`bfe^aaY]a\]bbcaa_``b[`ada`\_d]^``Z^\^ca`^a]_b^b`d[a]cZ__accbea_^]_`b^_b`a`^fbb_`^bZd^``ab_c_aa_d^`bea```accP_`a`aahb`a`b`a`ca]^__b_ebeaa`ebaad]a_aacb\b`b`abc^hcd`a^]^dbdb`]_deaab`_]`fabababcabdZ^][`caa^`_b^]a`^_be`c^bbdbfga^`_ca[^b^dab`_cbab`^_f^abXX_bcb_^_d_``aa`c_^beb[`cb`bacc_a_`_`\b]bb`\Ybb]d^_^be`ccc^c]cda`[g__bb`ea_e^chY`_]^aabb_``ce^^`cce`]b_g_fe_d`cbcbc`jd_b`c^_]afbc`^b^b]a^ab]a[c`^c_`]^baab`_acab_^[a`cad`c`e\^`c``b_`bbaaeab`_bab`^a_^`ab^b_`c_`_f^`a]e_b]]`a^_h___ac\^[_^a^a`]dY^^^a^__a`gaca[``\aeaaaW]d[`adb\`]b_bfZdcbeca^a``_ic`_andb]]___`b`caaZ`c`ad\__a\]Z`^_]^a`c]`ad^feb^bcc_bb^^^^^a`be_b_]^d^^^d]`bdcb\cc_^a]_d\fagbdc`]aac_hg_dbc_^`__^]adf]_``cc^^`d`_cc^acba_b_b`]]cad`e^aa`^a[^]^dbi\^f_ca_`ab_c`e]]aa_`c`___``_`]cadbc^dadc]c\]_bhdc_cb_b_ba_ccZde`^e]Zedcbbc_b\d]`^a``a[[c_`b_aib\]_]fea_cb``f_dda`cb`ece]`][dd`b[^`b^`\^V_`]dc_]`^cdac`d`eaba`^a^e`ba]^`c`ed_aa_d_\bac]_abe`e_][e``\c_cd[`]`_fc[da``_aecdc`dacb[f`ad\^eeadad^adaca^^`ahb^a`[_aac]ac^addgbaf^_`^Z]a[cefbcac_dd`]`^ca`c\a_\`_b][\`bb]a`]^ab\eb`bea`]acaf``_b`ed]`d``aaaab]b_a^`d_\_f^`e^_^cacc`ca`_`_daab`b^e__b^a__`i[^`[a_^ag]c\cbcc^cb__df``afbd`b]_\aab^e_g[c`]`[d^c_aegabbbb[ebd`\`ad^cc]_`a`\d]ca^_b``_dc^d_`cc]a`a`cf^`b__bcdc^dd`^\g_a_`\dbaabdbcfbbadbc_d]ad`_bacced[eec_a]b^`a_a__[ecd_a_`cb`cdYdY`ad`_e`b_a^a]aaba^_^cbb__fbda_b_bagb___abbc^^daa\d``^ca_b_^b`aaec`b]`_ab^_`b]id]`_c`a_cd`_``a_[`^dccc_]b\]^`d_cb`e`aga\`cd^b`^__a_^bca_b^]b`^``[aad_``a^e``__f^ac]\ba^ba^a^a`a_dc_\aa\`c_bcb__c^`V_[d`d\f`b^ab[c^abbh^\gbbca^\be\ddbaf_c^_dc`a`ad^_^ebfab_caaca^b^b^cb`_[bbke^__db_cacb[_ea[`a_^b__b_cbadabfc_bcba`\_d_d]`\`a]_^da^adde\ccab\_^ababai^^^dg`_a`a^a_b^dc]c`^efd_^_```bbdb_]]bZeb_bab^`ae_\_bbhcZfad^]`a^f`\^c`]e`a`dbeba_]`ccb`a`ba_`d\_]`c``ca__]d[b_c_acbdabac^`aa^bbcd`^feadZ_ab]a]c^`]cc]aabac_`e\``__dg_Z`_]_`[cfeY^`e_aac^^bb__a_`_a^aca^^`cac`abdbbb_\^cbd``e^[^\^^]a`eb^caa]c`\ca_\c_a]a[_`g`f[^]`ad[bba_a`_```cdafc`gb_aaa\_^a]ac]d__`abaa`]^d_b^_]^]a_ca__^\f^_]`h`^d^c^c[`f`^adbbc^^eb^b^db_][bd``ba^\acaafaa]^`\^_aZ]e`]hd`^cab_dcb]c`_a_cab^beb`c]_c^\c^^_d``]bbYd`dqbd^bcaaaab`^^a`\`c]]eabb_^d]]]cf`_b_^]Y^gaa^^^aa]`]\b^_]b`Z`\abacad`_`bcdd`_]_`_`a`^a__``b]caf__[f_^[^^c_[``\^d]h^^^[b\ade\a``db`c`\b\Zcb``c`_`da_]]_b`c_`b_^_d_ab``_cba^aedcbbdb]bX`d_]b_\fb^e``]dcZa_bad]cd`f_\``]heaac\c`b_[a`cfa`bbf`cccf\a^fb^aa`b`Z^c`_a\bbc`b^``^`a`aa_c]^_]]]^bd\dZ_a\c^`aa[ac[\eaa_`_bba`^Z_^^`bb`c^g`aae^`_Z_bab_]_bd`cb_]`b`c_`^da`e^be^afcZ__g_accd^dacc]_aa\b`c`\e^c_`^b]d_]]h`cbebcZcac___bd`_`_]a_e`_d^a^e]bd]````adacZ]bY_a\`^]^`ba___baab^a_\b`b]\`Za`b\b^^\`__aaf^aab``^c^d_eb`^d_a`]ag]^_^_d_cc_aa_``b`]Yc`_[``be_`^ac]^ac\]dc^b\ab`c`a_b`\`_bdb[]da]eec^cc]af`d\_dc_cdcbefge`Zb\d`bbgdk]]^\a]cc_^f_had\da]\[^^bTb`Y]\dfk_bZ`d^fa[ac\`\cfac]bah_[bd`bea`_cXab]_[[[^]b[]`c_b_d`Z^fY]f````\be[`_\\e\dbaade`aae^c_b^__d[aeac]\caac\`````_Yi`Zd^Z`dd]^dc`a`\fce^caeZW]]a_^a]__h\___bg`d[b^\d`aa__\[_a_b[d\]a^d`gbc`cg]`dg]cbdbc`accdfdZa``]^`ccWc_`_d^^[ebc]cYY`babd[\``d^`\be]c^]`a`]^^^Z``d_bdb`daW`a\a\_]e^be_eca^bb`dZacb\Y_]eeb`b[b_`\gWg\fgeZcbkddi_`__\fbe`ff^d`c^fceda_fUeXaa^d^^a_bc_d^aa_`^ib^a\Xfaba^\bacbde^caed]_][c^adbfYfb``[f]e[daLj^b`ccbbc^b`cecb_d`^a^bb]cbb``aaa_bba^]db\]``_a_cc^_cc]_`\cbbc]`]e]^]ccahbb^bac`ec`b\e_abbaaaabb^\e`cb\^[aba`bc_`ab^_dde_^^_Y]gcd_fa^abcfbc^^_^]c_[]`b_bc^^_`de\_^`__a`ac_a`ced^`b^_fe^`bbed`]dkc`\^\\b`acf``db]cd_\fb^b^`^ceb`_^fa]^```]^^e`ac`^c]dd`^\\ac``\Z_]acdd\`__]_a^_`ci^bd`b`_b]^a_ca[c]f`g_]eccee`ga\caacc`a`]_]c]_djb`bab_ac_e_b_eba^e\^c`bce\`_`b_`a^edb`^^ba`ccb`a^^a]^\b`_^ia]a]aadb]_a__\`_``ccb``badbca`__gcbab_e^^a^_db]_`c]ac^e[````_cY]__adc]`a_]_a_f_a`\be`f^c_c]d``__d^_`_bebb_`[__a`_a]`dab^\bc\a]`^Ybaeed__ae_]eb`a^d^`c[^kd^e]^`_`__\b^`c``bb^^`c^_dc]`ca`]_ef`ab__^b_[ea``bae^acga\__ba\b]b`__^ab_[bg_]fcb``Za`_eba^a]`da_`abbc]_a]^^ab_f_ca_`_be]be^kcb_\aab`_ad`a`efd_a`dc^eh]_eccbabb]b]_aa^_b_^`db^bc_a_db__ba__be]]_`c^^^bcY]Zbaegf_]`__a__aca^c[c``c^^feb```^cc_]b]bacb_dc_b`bab`baaa^chcba^^a^`aba\__`^a`_]d__d```bf\c^\dcbb_``^^d_]^babb^aaaabd^___b`af`]`dd\b_dda]aa\gecb^_aa\bb^b]]cba\`bb^baad_daba`a\`^cc_dc`ee^]c^]^^c^`^dgb`aab^]`bca`c`c^^d]_`cc`e_b^]^ece_ac]aea`c``cc]ea_df[``]bf`\`e]aa_`bb`feda^bcb`b^ac`b]]]Za_`]bac__aae_^a_a`gc]b^^c]]`e`dcac`f_ca[ce]a_e`e_aab]b\_`_e_bc`c``ac_^^biebbbacZ]d`cZe_e^db_\ce]c]\`_afc^]ac`acc]_dafb_c_b^da^g]e`^b_eb_c`a`ea]fbb]__bbead\cb^b_^\_^ibZaa_``_[be^be`]\^b`^afc\`aY^[cde\``a`ajca_`_fc`_c`_aa[_a^b``[`^e]`cd]be[\eabe]_bda`bb^^`dbc`ga^Z^``cd`^baced\c^baaa]^a`c`f\]abacab]Zaa]_^bdgac^\ccaab`]``ca]\Y]ebbcecdcd_aba^bca`^_``cdc`_a`c]^`]`ae`[a`_`eacdd]^b[``\]`fd`_cedb]^a`_`cd_i^_b[^^ab[^aa\^bc_c^bd_a``aZ_]cZ^]e`f\a\\`]aae_bee]bbdaa\]]aa^_fd\b^`_ec_e[c^da`^_Zcb_^^e_a^bd^d^c`abhb``gj]b\c``\]`\_bb_bcb\Zeidc_a_]a[^`aaa`c]gaacaba^cdba]d^_`ab_aacc`ac^_cb`ac]\``a^cb_b_^b_`^cZaccbbee\b`b^af`\ddb\]ac\ag`[Z]b_cee`^hc]ec`^]aa[h`__`a\_^ad^b_bac^cddcaa`__ebd`]_da\bbZ]^^_`cc]_`b`aca___daa]__``a`\ac_]`Za\`c_[aae`\ab`\bc^Zaebb]]`b^_`d`^^c^c``bc]^bVbaa_adf`a^a_bd_^b`a^a\````]c]a]c\c`cbab`_\]]]`\^ddcd`_^c_]__ce]bca^_\bba]_]b]c``_ba]bb_bdc_^`d\^e_ab`^bb_ccaa_a_Z^dca]aab`_adaf`aa_g^f_`bdc_bcdcaa`acbaec^[e[b`^^^cb`gc_agab_`eb``ace_b_caac^a^`ae]__]d\^cdba_\^i`_b__a^]d]f[ad^_`_a\_f_d]_abbf__fd]^`^d`^dad^_b`cdab_da`bg\g^dcgg`a_dbcd_fb`[dc``bcccbb^^i`a\ca\ce^_eb_\^__\ccaa^^^baa^dbdd]a[fa\b[ec[_b\Zaa]abdbe^eaa^abcabe^^^b`^\bbd_bbf_`eaaaa_b^ed]c`^bbdca^__`^]_`^]c^h__^]`cah]]]a_`adcbl`ebb]ad]baab_`\a[e_`b[a^\ad\]cf_ac\a]gZaaac]c_cb\aa`[[abf^\^_cZ[bddb`a_`_]_]c\^_`aacbb_dba`[bf`ca^aba__c]_\bbfccb]_`^__]]^`c`cbcb]db`[ccbb`be\]abe`bacee^b\``ab`a^`b_`bb^ga^[aa^`c]a_b`Xc^_fada__df`f]^\Z`\a``c\\kZ]e^^acf`_fa_a\`\]c``d_caa^Zcbbbd^`\]g]ed_h_`_`dac[^bf\ada`b]`_^`_`ab`^b``cab`^a\]_]\^a`b_]d^Vad_b_fc_^g^Zcb`f`_be_gf_b`ead\^^id^_d``^`]c`XaZb\]aca_b^ad^d^bdac[g_bd_`^e]cb\e^efb]a^gac_^[a`^^d_eb__ge^c`\\a]ace[[a_a^_dZa__b``_hddcei[a]_f]d\ab`a_`bc^bbababc]_b\ebccb^]fcccf]^e_aabb_\ead_da````ec_dc`cd_`bb`b\\aec`f___eebfa]`]`ca`bb_b_bc__^cc`^^`b_dadbbfd_`gdb]a]_`]cb^_`\\^b_b_\bba``fb_`bcdb_`\[e_\`ebcbab]`b__ada`aeab`\cb_a[bi`c`]^`ae\^]`]_`_cadZab_`eb`b`ca__adea^`bab`g^`b_c[\gf]_`bcd^^_]ga_^^b_bjaca\_bd\_ecc\Y`c[^]``a\Z[``__i]]a`ecdcbc`]``cahac[d_cb``b]b\c^`ebdaec_^_\bddbcdfcbba^bda\abe`\_c`cYad][]aab]ec_b\ab[_dacb_c`b```adac_[dcabc`]^ee^c`d]b`e_c^`abf^^ccbd\c_ccabaca^c]_a]]``b]_]ccb`d_^gf^b\b\c_\c\_b_^]_ad`eac^a]`d]^a^^]a_aaf^ccc^_]^f[__]_\^\c^g\c\[c`b`f\]cc`c]ba]d^^^_c]_c^`^b^baa`d]a^babg`ed`^h`]d`_a`bg`a__a__df^a_^_`\a`eebb\b`ca_dd``^e_a`\\dbc`__a]bj_aa`_cbca_ic_\]ad^\_bZ\dfd]_\`]`b_ba^d\dceb`a_e`^__`^c[edc]b\h]a\]dbbcbc^b\_`^dcgagebb_^^_`edfe`ca^aaahaac]`a`]^aa`dd`__f`]fa\be`^]\Z]ec]`ca_^___abcb`\aa`a_a`c^a^a[`a^da^dbeZ]c_`ah\aa__ab`e_a^]f^a^`^^`c]l\_b_a_aa_dba___`]_a_dea[]^bcb_^ac]^^^^_b\^_cbjcb[dgda^_cbc__bb_^a^`b`ebga_a`b^b^c^db^_`_aae``da``d]a\bedded_^`aa]e_b^`gc`bbi`abbb[`d\b_a`\bbb_]]^\[cb^c[]]\dc_ba^``__fd``__aec`_^baaacae\``__b_cde_e]]_cc_cb_``aa_^ab]`]^cc`b]bce^eb_b\ae]_^aea_^\\ac^\`e_cac^^eb`bbba_a`cbc_afb]_b[bb_^bdaacc_\ba`^^b`_d\`_`]\a_d[`a\b_acd_bc`ca]^a]bba_]\baa\]]X_ac]b^b_baca\c_`e__af`\`b]`be^`d`]b]dcdb_^`\aaj^d\`daca_]c]`aaaced^becbaa`babad][d_bZbafb_^cef``d\fcb[cbb_]`_eb]]ca[^`a^]ec^_a`a``d_bbacd\cf`^ebd^acY`_^`cbebc]___f^ad^`\^\\acb`dc^\^c_^ac`_dda]]bba\cZ_a^ba]aaa`cdc`ab_`b__d_`]cdbda_b`_bc_b^b^``abci_ac]d`d`bbd^bac_aec_^_eb^\`_ca`cd`gb^_`ie_e^^__^`[_]`cb^^e_^a\^\g^d`b`__b\^``cbccdbba`a[c`_`aaag`^^ZZ_`b`\[b^b^c]bbf`_a^_bc]ea^b`c^f`ab]]_b]d]fe]gc`a_`cab_\accc^adbhc`Z_c`_a^\^^aagafabdcb_^^c```bbaf]fdb^]acdb`Zd^cbc`ac_abe]^ba_bb[_^h_`aba_d^eafa_a_dbfc^a_e`\\\a\^cZ^bbabecf^`c__^]\abd`h\aa\abb`baae`_`Za__fg`ecaebfad__bbcbe__]cg]_a_\_e```d`bfabb^afd_\`d_cdbeaaaa^eccd_a][``_]a_a_ba\]acd_fgg]c`cc]]_]caa`[f_bcb`^\bc_dabcb^afbb_aada```ddZa`afd_]ab`_^bc`a^\ab\dgd_`cb`ga^]`dccb``abcb^`]]___ebff_eb`e`\[\^cbZ`e]`c_a\^^c`g`f``b^`a]a]c`]`ba^`^c^_b__^dacW^``dcacba_feea`b_b_f_]f^baae`b]affac_a`_^^_fca]_`]`b_`]\a^\\^^b_c`]a_adi_c\_bbdc`daa``_d``a`^db_\a^\b\ce]]`_cb`b`aa_`d_fY_[``^daf[e]c^_`_fe__`d_``\b_c`a`a]d`bddbfbkc_be]a^_`eZaah_bcda]fbZ^e`^`_deb]abZ`Y^ZaXdab_becc]`f^aeac^``_`cdd`c_bc_bbb`\Yba]\]gaaeeb`_bb_`a`edb]`Y_c`ca`af^\_c`_]`b`^`aaaf_cccdae`db`]`]_h^aac^ad_fb]bacdbbb_fb]^_a`bcZ_`a^bacac_a_b`a`cace]_^acecb^bb\aaccZcebbgc`ac[e[Zc`b]`d`a_bc^ddhbcbea`\``aeafebb^_eaec__`[badb``b_\c]_`_`__`b^bb``b`adda`a`d[ad`d__^ad`baaa]e`b]`f\a]\c^`bf`_]_aca^b`bcdf\`dc[hae`acl`Za^^a`d^f_]fad`__d``]da`d_ce]i_d]Xdb_^e^_[ada]abd`aba_``bb`\a__hfc^]^`dZd`^ag`baadbjf`\_`bb]bbafde__ed^bcaec_b^cbdcdcbc\a`cac]bd\^``^_^ca`\\a^e`^^[Zb]ab]aec``_^Yca[^b`b^ca`ec_b]ac^\_ed`[c``d`\b\^^^^c^b^]``_c_b_Zabf[^_^\cff]cbba\`ca[f__cec_de_``ca\b\`ae[cacbc_[^ddb_]_afgfbYZc^]\e]b^V]bbYccdd^`^_]_aeh_eaf`_`^``^[c_]``ee`bcb\dedY]fabc`cd]c_]a]a]_ga]ddfeba^faadab`[cca`[_a]a`cb_`_c_^[bbec^b^Z`ZZa`a^`b^[aa]e_[e^^`aY^`gf_j^Z]_a`bd`\cdc`_^`_bca^ca[`dca\bh`dea_[_b`febeh^dbbcd_ba_cU]dc]\`cb`^_bce]bY_`]a_`d^bZ[a]aefbdacc]b`b_^f`ac]_caab\[^X`ecbeaha^\]ea``ac_eXc^b`]a[dZ`[cf[Z`d`^b`^`[_ieah]d``bbc\_][cbYaab_a\da\fa[_]``abbbea_aae]cf_]Yade`fhah_\\\_``d]chec[ad^``_`bcde_c\Zb`c`cd_^Zb_d_dbg`bcb_[cd_dg\egdc``d`ce^^_`b\^b__^cb^`_cac\]g^a^^d^aca_aae\`_`c^]`a_``_]]bgg]b`bb[a_\acaab`^^gc`ce`\`_[b_`^_^c_a^bab`\`ea^b^``acab]__`_d`ab]e`b]c`cd_[`cbbc_^`bdcca[^b`c^bac``cb`_eb]b_Xbaccacb_b]ba_dc[^]a]bgbac`abd_e^[^_g```\`d]__cb^ab_b`\```adb[_g^b`be`fc``]^`c``bbbba_aa^hb^b]_\gdaa^```^__dbd]_a]]\``\`c^dacba^aec[^^aef]d`]`__b```aab^]jd_^`aa`a`b_]h`b\e^ah`a\^^eb]`acd__a``^\e`cb_ace_a[``^ba`a`cc_bbbccc`^aa_cf[[d`Z\[b`^e]d`_ec`_\da]g`_cd_cbc`a__c^`aac]b_d`bc__cab`a`b`]c^a\^ad`_aac_^b__b^Y_baffbfg^cea`cb`c`^aabaab`__e^c]^_^``aa__dkacba\`\]]dac`b``\_c^ba`e`b``aa`a]bbcfa^adabc_fabcbb`_^d`_a_aZ`a\c``_c_\^d^]_b^`adc__a`^[c_`^^`d_`d_f^`ca`\^_ac[dc_`b^cd^aa]a_b^bcbd_a^`e^a`^a\\f`_\]ad_^]a_b__aa_c``^`caa_edaba`a`^\ecZ_c`d_cb`^^_\_bbad```de_ad_agf_b`^faa^b]bc^aa`e[\a^a`^c[]^ce_cbadd`d_dea]^\]h`adacbe\`a_f``\[[c`e^_bca``ca\bafdbab`\b`b`^_a`_b`a]_]a`a`b_^_g``cbcd`_^f`bgdaci^_f]^cbhbccccbedb\`]cb`^_a[i[]edaa^^a\`ac``ed^f\h]Z_b]`]]ac^c``a]bd^a\[ef__\cb\^cabb]_c\_`ad^^`cc_]d_bd^e_cbcZcb]]__b_d___a^``\ca]`]\b[ca```ab`fg\b`Z`c_b`dac`^cebabg`^b`e``a]\_ea`cc__b`dcf]_\^dc\Ua_]\]^[_`c_]_db^_d^de^cecabdb]_[]\`ba[^`a^_baac``g`b`dac^a^^dbbfb`ccb`bcd^`b`db___a_b_f_ccbd^`^be]bba^bbc```_cea`a`\abbcj_^^a]deab\ddac``d\b^^_e_]_g\dbg^cfab[]_a]`acdk^\db^aak^fa`c^c^`^a\b``[]_^_ee_\bccd^icba`caac`e_c^]]_`_aa^db^bb^b^\a^_bb_cbc^_\a[a`ab\`af`a]`bbcc`^]aa^^b`^b[^adcc`Yae`becZcd_`a`acffc_^^e_^_f`^^``a_`c]_[ba]aaf`f`_dcc\\e^bfb^d`]bb_ddbb`a`acbZ^_]fgbb\\`^[b^`d]bb]ZeddY\aaa`dab^__b_^_`d]acbh`bZad]_b\^cfdb`]ebcca`f]`^Zqb^_e[\[`bd_acZd`ed__`_`\bh`_ca^Z^bf^dc`_b^d`d`ed`e^^bedc_]bcad^_ac_``eab^ga\bcc^^^`_b_`_bdbbabe\b]_g^`abdda`^dcd]c_kb\[_l]e]`bi_da^fb_e``cb^c]\gb`^ae\`daa`b`bba]Zb_f^aa^ba\\\b___a``_]\b_abbabc^f_a]bb``\d_^cdg^abb_ac\ab`bbe__ec^a]_f_bbeb__`_deba_e`aacc`\_`d\bZaa_^mb`^b`dabbbcb`ad\bba`c``\b[c`da__b^`_aeaf^`b_bb__]_a_ab\`]`f^`bbb\daca]_a[aZ`_a^ec_bace_a__c[``a_^]_cbaai^__cace]a`d]_a]\]d^ba_ac`d_ed_``Z_^_bb_]ce\dc]`ca``bb`_\_a_`c]`^\\`cac^abc]ak`c\_]`a^gbb^\_]dca`_eaed^^b`bc``_caceb`bc_`]``ab^^ea`^`bacb`\db`aa^da_^`ba^db^_a_\c_aae`d^]ad_afb[_c^``b_b_a_^ae`_ed__b^c`ebecf`bef`bd]\aa`_bca`^_e]b_[``__ab]aa^bba`e\_d^]^_c_b_`e_^d]fa]_`c`bbcc^_^dadaecf]_[aa__b`^`a]d_a_adka_fc_e]ab__]bj`\afbad]^b_`_dbcbgabaa]\ab^]b]`eb]^c`[d`]^d_ghdf`c`]`_d^_\b_a`^`\abeaacie]^d]d\`c\a^___a`[^c^_e^^_b]]aef`d`_db^baca_cdbabf^]a_`h_`e`cZd[`b_`b`cd__]^]debb`bba`[^a`bda^^c`_aad\_ca``bd_`cc_`]_a`d\_[ab`a]]^`dd]ca`aea_^ccbZfcc^cdc_ed_]`a`ccdf\^_cd`_a_]d_\cdaa__cbcbbd\afacd`abc_`d]ff`b_baf_[^Zb_abaa[a__bZea]a_]_]ddZ^_d]_bdebb^a[^`]__ccb`_]a^\]``_bc`da_b`b[b[db_e]`^b`_^b`bbecabcfdaacd\]Zb_aaacafc__ce]bY\\a\^^_`cbbfb^]]b_f]_]ac_`_ba^_\[`]^dYb\cbab`_``ae_`d_cc]bb^cd]`bcbaa\dafa`cc`c`^`cfkaie`ba^`[]]b^e^`c_^`d]ag`g\`g^c_cb]`cc]_`^fY`d^a^`]af^bbc`dab`a^_`Z\db`c`cb^_ce]caY^cdZ^_c^a^_][_a_d\\^]agc]d^_e`eaa]cb`daa]a_^a]d`Yd\]b_[_c^ba__``a]`f]d]ac`dac^]g_bc`\b``^habb_^_`b`dadf^`cbaf__agad]^\_`g_cecf_cbcabZ__a`bb_]_cbc_a_b`acdac_`eb\_`]]bfa_`fce__\_e_^_a_[g`]c_fa_^b_daedcb`_ba^^aa`ab_\aZb]bcaa`adb^_cc`cb`bbdac_Z`cb``_^U_bc_d_b[^b\a^`a]\gca``]_]e`ab`bcbc^`f_`^^g^_j_f``a_`]a`a^`_`f_a]eWa`_Ycbaeaa`ea\`bcfadbb`ba`bc^a^`]c[]]a``laah^facc_]^^\b_b`agb`e`aag\``^b`b[dbZSa^jaa_^dddd_deg]^f`X_cbgad`a^_a_^]`ae_ad^^e^^]^a]_^becc]aa]ba^g_[df__abg_f`cbfda^bac^be_acdda_`]^`]b__dbebeb_c\^`gbf]]cbc`Zc]a^ocd`_Y^bc^_^b^bb]`bc]d_b\\b_acaa`_bababaaa^c]^^b[cY\di^de^_^_`]bcbb`_]`a_cb^a_aafdac`]_aa_\ac]^[aa^`a_c`d`b^\ba`e`^_g]f`^cZ_a`ad`daa`Z[\`d`^_fm_a_dd\c_a^`_^[dg]__abg`g`_`b^`aaabb\\^^c\_```]``b`\dcZdb`c\[da^bee`bbfccccc]dcba\`^\`[cb^_bb`]``b`bb^d]a]_e\b`a``a]ad_[bcf_`Z^^_a^ei`\`c^_ba^``]_ca`_a^c_da^agd[^gcd]cd_da^]c\[ad\^]\_aac_cfda`d`d_b\a_e^^ab^_d_`cf_f^c`b__b`d`\]]]a]a`__iaba_a`__]b]cad^b\cca]_]_\c`a^c^da^ac`aYc_\_da^`ba_c_^^bca^]ae_Zb`]b`^_bbbb^dblcbaaaa_`bb``a`]^a_`ahd`^]_cd]_e\af`__`ea_baaeb^`]bacig_^efb_h`_d_a]bba```bbfe`c_b``da]c_^ca`\fa`acahc_`_cb`cce_ka_`a_ba[_pfed`a^abl_ed__abbb^^^X`]cba_c_daeababcadc_a]]_[fb]adcfa``^]\a`_c^]b````b`cbaa`__bc^aa^a^]^^`e`b`ceaa_aa_]da^e_``bc_^egeba^ab\ad`_a_\a_af_^ca_caead__^d]dab^`_a_`]_h`b_`aZ]dZdY`af``cab_ba^d_fb[ab[aad_cb`^`^_aaZc]a]b^aab^abb]^``]e_Y\[fb`_^f_]d``c`a^aaa_md`eaa_e\aca`^_a]b_daeabc\a\b]_aa^_[a\`a^^_b[^```_`]dgac[d`a^_adaba]ba_a`\g\cad]f_ca`[fi_a^accgbb`Y___bd_b_aa_dda_`d^b\\b^]df_a````_`bc`[`bac`c^_d\aY^c`d^\eb_[dYb]bZ`b_b`a^__if\_]c[]^b__e]^[__aacaddea_d]cgc^db`a]f`\]^^b^``[d\aZa``_aacba]aa^ad^``e`^g]b_[_]a_^a^\e]b`e]c^c^\e]]^abe`b^abdaefcac`ccd`bba\`b`d`baa^^b`c`g_``dcb^aa_bbeaca_a^[`c`ec_]e``b_[`^\abc[`b`bb_aa^]``^]afbd_\e_`_ae_`Z_`[^`]a`\d\a^de\_^hf`__f^c``d^a^a]ab_g_b_b_d`ab_b^dbgbg`^c`^ccc`facf`^`_``a[`e`b`]febc_]af\_adae[ad]\b`^`_`e_d^b`ebc`^a^b\]gabdd__d_`^^a`cc]_aaa[[e_`i_^]e^^`d[\cb^`^b_agcbabc_^^]a]cc]aabbh_caeZh^^]cb^c^dbcf`d^_aaf[\]`]cacb^fc`ca^fa]\d_``]^`Ycbbha\^`b^\baceadc`d_ef_^`^^_]_b_`\b]c`ebd`adbeabgecc_ce]da^aa``hdV]_ab`ecg`_\a`\a_dac]b_a__acg[`^__[Yd[a_\^a`a`^e_g^j_c`]^eeeddb`]`b]c_dce]^dad_d\h^^]__ac_a^^Vc`^aaa`_cb[^e`_bb__i\^^bcf`ed\^dc_^`g\ea_e[[_c^^e^^_c_e]]__aaf_``ba`cabccb`c`e[f\Z^dcf`\a\`^`f^baaa`]bac`abfbbe__e_be`^c]_a__[_^b^b^a_fb`^\a`_c_ba`\bab\]aaca___e`[``b_a`b]ac^b^_^`d_ea^]c\]cb^a^_cdbdb`e_bcbbg`[`ebab]_`e``ea_a]b_a`bb\fh\d_b_c^^fba`_`b_`d^``^e_b[\\\`b___bc]adf`ab`cf^`cb_bc`^`c^c_d_bd^`_e^baba_^dbab__b^b`^_`c`da^_b_^^_be]Zc^e_]aad^_bcba_b[^]b`c`edc][][`^b_bd]b^_b`]c\ca^ba`b^`a]a`a^]]__ci]^^`^bb`^a`c`aabd_\_faa``^ga`_`\a^`e`a__\cbbda^_c_`dbc^`e_bafd\d_`bb_`]a``]i\a\_a_]b_db`\`ba_acde_]_^`^_`bbcceb^b`bcd__b]bd^ec]^aaa_d^`cc]\c`c]`cbb``a^^`cc__^a^c_^aad]^a```edcc\ba^a^a\b`fb__fcabcabc_bb``dca^^^e```bedZd]_^c`j[b^^cZb`bce`bba^bacb^^`[_afgcabdc`_cda]^^`f`c]ecb\]abaa\`a^cb^]d^gc[[bc^b__caecg`\_```^d^ac`d^cdb``dea__cbadab\`a_^_bYa``aZ^___`eb_[b^_\ddd__]^`d]`]e_cdac[^`\__[b`dba]^`b]]c^ea[\d`gac`\[`dc\a\b^c_^b]ab[``b_``a[b[e\a_aa``b_abaa^^acc[_``^`\_d\c_c]\eZbd__b[aa`b`dc`b_b^^_dfa]a`d_^baba^_^a_Vh_b_d_b^c^ca^`ca^ab`c_a^bi_a]eab_`bhb_b`_`bec_X_`bf`ce^a\^_`cb`^__^aX^]_agc_h`ac[ba``cdc[c_ca`d]^e`]^c_`d^a`c__bg]_]a_a`]`ab\^bb^`d`Z`^c`^id_aaba^daaab]aae`daaa`b__a]c^hbc`bj`_^ecic^\]eaeaY^^`b`_``[a`bjd\eab]ic^cbaa\^beab_f`bYbea``h_ac[baa_b_a]^_`^e`a]`e^`^Wacca^__df]\ac^bfe]a`][a`^fc^df`_ebc]d^_b^d\`_aZ^[a`a`baaWb`_eda]b`ec\cdb]^a_``lZbbch^^c_[fbac`cc]`]`]]bdbad]`d^`ab`aa`bc__^e\ccaab^`c`_eahd]c_]^bc]__gc[__``X\\g^`ace`_`]^`adeYcbga]ae`a`a_b_c`b_^e^\ac_ba[`_c`^]aaaa`^da]aafd]_Yfa^]d__bf`^^_ad`\\]a[c_ac[^`adcd_b`_Zc^ba_b[_a]cd_d```_\bgb__j^a[b[bb]`c``ab`g_`_ba]g^bc\__e\_ac_`aa^e_bdfd\a]b__bdbZab\dca`c_``b`bba_a`_a__`\^ba_]d`_ccf^a_a^_]ca_f^eed^b`^]\d`_c]b`\ade^^[bb^g\eb_`a\aeae`\d_\dgacbbjbcjde`dcZ_]c`]gega^[ba`c_^_b_][e_`^b^ab^ccbif_]e__^bba^a^\a\c^[`]_f`ed_c]ad_Z^d_`]bbg__``bda_dh^^cf``ddfa`abc^c`aYacaaea_a`a`a`cad_aca`ba```^aac``ddace_^a^`__cfee^`ca_YYa`abceZ^df[faabda]_`_^bba]ba`Zcbab_bcbea\he`c_^a\bacc^dac^daae`c^`aaa]^d]c``a]a^cacc\]`bb_abab^fabaadabZ_``cac`d`_`a\dYZ^`^a\aaacbcaa`bf`a`aaeaX_e``_^g_da_bZ`Zca`d_^^``ba`_`b`b_bfbb^__``_ad]`^\a^_ebedac_]_`[Y]d__bba]c\_[Zc^b\cbg^h^aa]`aa`_a`e^[^`g_b\j]d[fe```^_f_de``cc]]`^bZ^c]___g_^c_`e`__gc`b^]bcb[]dfY^b[^]ac`d`ea`^]ba`^a`^a_da`a^ga^c``[`_c_`fa__b_c_\^dddf`Y`adX`]gaaecb_d``ab\aba]ce^^]bdbaab_e_`^a^cf`_^]__ae^cd^_b``[`abeZ_]`b^a]db`_cd_g_dad]d`^a`^g]`d]ccaifafa^f^`^ab`^`a[a`^_^^bad_`]f`^c]a_c]c`e``b`edccb_b]^cdda_f\^bba`cfgdbcb^_`ba_ba[_\abcb_d_dc___ae`cf__e`\__^cd^a_`eacea`^Yf\`_g`_gbaec]cf^gbd_b`^eade]b_```^`ea`d_^_\da^]`bb^a_^^d`bdde__^`b`\`_]aa`fc^\_^]c_\b_c`c\_ca]dc`baa^ba_bc`]b_abb]gb\]c`\]a`^e^dc^_aXc_dacbae]]`_^^`a`aa`aa_a__b`^^`a^bbb_`d^dc_a\_^[_ad`fb]beab^`]a^e`aeb`ac\`b]`]daa\^___`f_b`^ag_c^^\a]ai_]`baab_fg_d\^]bace_gcbe^b__a`cbd`b]c``_b_a]`]bhccc^`dd`^bfccbc]c_c]`cb[_aZ`]b_b^c^ec_]ahb__Zb^aead``bg_aa`a_bd_[`]dbd]\]`_b__^_e\_]`bae^aa^caY^`a```_debd^a`dcbac]d_^`eb^f]cc]_a^a^b_bc^\d^Ycbccabf`aaf^[b`d^\^ac^``da_c``^b]dd^babba[`aa`^WbcYb^^Z^a`de`_fa]`^ea`W`_d`c``_cc^`e`ac\`ed^a]cg^_]a\beba``Y`f`e_e`bbc\`__cf_\]cbkb__afa^`b\cd^^`f]f`^^]aba^^[\b]_[_f]_^\b]^jZWa`]^`aa_\cbZca^^]db_Z\c`aae`\\_`ec_aagb```ab]_aed[eb^]`cce`Zca`acd```gcabW^_addaY[ega`^]bbh\\^]eaa_^h_^^ccf\`ac[c_`]f[ae\c_ab`ab_cZ_baab_d[bd`^^\b`]d[^Yf\]b_``c_gc_c\b`c_ba]][Zbg_^bb`d^_`dYcf]dcf`[[b_]_]dc`fa^`bXd``Qaddb`ba^e^`ea\\cb_c]^b__^\^^b_a_\ba]]c]aca__g^]_ccced]ca]ceb^b]^_^__aebb[i`faaaaa_Z]_ab``_^`cac]e]^fc][gbaeaa^be`_a`b`b`bbb``ccc]`ccZ`e`bdh`b^`ca]]da\]`e_bba_\^``_c]^dbcdcb^_ed`bbac`_`cd_c_b_e___`[e_a^b^_`cd[b_aac_]eac_b`]fbbbde_f`_c_bg]_^_eca`g_^^f\a`a_f_d^d]d_cd`a^_]f`\ac`aacb__`^dcb_b_b`d[[_ab][ac^f^e_^]cW`__cba`^^_abbea_^bb_`\dbecY`eaa^h]bca`c_efcf``c^f^]]a]\`b`_abac`[cbad_c^`a__f`^bch]Za``^eb`cc`_[b_[a_^`b^d]cd`[[_^_]`cfc[cbccc_]^``ebaa``_]\hc^^a]`_c^\a_acbc`]a\^]\b_a`cb_]_Zbf]\fa^dd`X`]aa]bc`^`b\Zcbfb`a`d_]]ba^_apg``bc_]b_e\ba]\b`]c^ba^caab[]b_`c`\b`b^i]_bic^da`^\a`^`da`d]cmb`bc]c__`]fcd_a^\Zab`a_``\aac`__c[]b]aa_]d_^ah]`^c\ab``bd^e\_`c]c^]cc`^^__c_cb\_c_b[_bb`[eaaccac\_a^af__]]ae`^_]`a^_c_faabb^ecc``a`gac`aca_b^c_bec```]\cb_a_a]]a_af`a`aaeaa]h]a]dda`a_h_db`]dg\d^]e_a`ad_ac`]a``_`f]b`bb_[_[_bea[_b^`_]`ga_]`^ae]c^_babe^Z_aZ^ba^ca_`aaab_a_ba_]^d]_a^f_b]_e^a^`]^f`ac_aa]b]_aba\a`a`c`f^ab]_ddaae\d_a_]_bf\b`fa_d_``b`cde_]]b^_^gba\cd^_bba_\`ba_^d_\c\ae__beeca``]i[d`]bdbcch^dcbaibbc\^`]`a^b_^e\\d^adab_c_`\d``_cc`]d`bca]]d`a_`a\_]ababbaY^e\^aab_cfa_bba__ad_ba^_`_c^gbc[a^_\fe^^a`\^e^\d`^_a_aacfb^^__`a[bcbb[b_]b]]`[_b`b^]d^__^cd`a]aec_a_^`aea^\`cZcdda`^Zde^bb^b^ec^]baY^b`d]a^eY_^_h\gUgb_bc`fb_`_b_bc^babc^a\b_\^``a^f_eb]`faaeecba]dce]]b^`bad]bdf_^a`eab_gba^\b_c`ba^cZabcb_\\_da]]_dc``aac_a_^]e`c_aad[]\\dbab^\afgd`Y\eccai_\e]ca__a^a_ci[ajf_b\[b_dc^c__^b]_c\ebf^f^_`cc`c^`cadbe^_`aae_abad^ac^baab`^\^aa^a_bgba`b^]eb````a_cd]]d``^aba_dZ_`^^\`^b^dd\_cc_]cdadd\`]ba_[c`_c[Xdceabd^ibd\dd^\`_aada^ab\`]ae``_bee\bf_dabc`_]a``_ade`_c[`adabcac`\e^]ad^`h`abda^`fa`_bZf`^b^d^bc]c\ba_]]]^]___ba`]`a]`abbgbbccg`ebe^a^a`cbbaa^`dc`c`c`]dc``acddd_]ac\`c_e]ad^_\b`a[_cc[cd]cgabba^aabbeb\Yga`ba^]aafc\`c\`^_`^_^_dba\a__c^c`bb]bc]_adbaaba\ad`ae]fbc_]bcebe`[geb_]\_cb``ec_cc\^ba`^]_aac`cd^c^_b^_`W^ee``a``a^fhc^i^e^ckhb]adaa_d]^a[\fa_cb_]ca]b_f_ca[hf_c_^e_dfh^^fabd\f[cae`ab`ab^^bae_ab`dca[b^`_bbg`^dadcb_e]a_a^d^f^dd_bd]_cbd\d_ecd`_^b[b_ab_\]d_]b[d_[aa]_\bfb^bc_fbbbha_``fb^abX`[aa`c]d_`b[b_b[_ac^]`_bbd_e`a^af]ab^cdgea`]ba\^c]j]`a`bd`adb_[`\aa_Y_b[Zcd_]cfd`_a[`dcc_`f_d``\bg][_[bd^\a`fda^bdbeabbd\b]_dbbb^eba_bda`_d^ai]__[ac]ddc_a`abdc`c^]gda^_`___b`de]^d`\`^_bb]^ZbdbdceZ]``^b\cge^dac\X\b^`ca_aed_``^c]bYe]c`hba_`a__\eb`^^c`\_]b_`^d`_cfdga``[_dd`aa```cbacc]f]abb_a^^bdc`c`^c^[_b]bfbe\a]_\dcbb___a`bZ^a_cbb^b[^cc_^c_]dadaaag^]bebd_``dec_`e^_bd^aeba]_Zebb\\aaa\b]a^_`d`ca_ac]a]a_f^_`baf^bacedaad_`bbca`cfdfjb_^ddaf_eedb`\ga^d\_]]aae`^aeid`ba^```^^d]abf`ebdbfbaa``__c]ba`adZ^e\_c^`[b`_fabadab`\da^`]]b\ce_a`_^]fb^g_cdbb``\baa]e[^`_cad]``_b``cdb`ada]^``b`bb]d_\^^b]_ddada_c`cf`aa_^c_Zcaf^b^`]`c\c]ha_^de`^dac_cd]`e\][^b]`a^^gb_cd^a]\b\_acdac_a`Zc`e_b`__`^[c`^a^\ecj[_egba]cc[^a^^ba^_^`aaed\d\]`]`^`\]_`]c_`a`_cbacYa`\_aaa^d]_`bc`^ba`a\]e_a\bd_aea_bc`bbd^ed_aca[ba^___```ddic_ad^bic_bcab`[ab__\d^a`]_ca`aa_bbaa`ce\eaahb``bdfc_]``bdc_Zdad`_`c_ccababc_^d_bfc`^abc``e]f_aa`dccbb__\cbab_cc]baadf^d]d[Z\a^bcb\beb_[a^]_d_^bh]]aaebb__c``abe]eaae__`]]]___dY[^^_\ba^`\_cbe`cdf]]h__a`__c_`eaa^]e_^e`_b^dcac\bbbc`_abb_b^ac``b`b__\c^__^`adgaa_bhdafa]bbcae^`a\\da_``c`]c`_\a]`^^c`dbae`]\b`]]c_\f\^gd\adbcd]_]`d_ccbd_cbcccadee`]a`_ca___b_abba\``a_a_b__dj]`ab_c]cafcc``^b\__^`bbccd_db^ba`]bb_^^`acc__b_`__`_`ac`ddf`_ce]aghda_bba]^bc]`da^]bbabb``fbgbeabb__bcbZe[`\d^_bb`iea`b]`_`f`[e]e_`e`f_`]e]]c_aaaac^[`__c^\d`ab^bbc_`^aba`ea[bb`aaW__ccdd\ba`cce`b\^``ca_d^^`adc_\\^`ae_bdaa_\ab`cb_`afa^aaab^be`_c^ae`[aa`]`a^\`b_aaaaa]_e``]a_a`_db_`^aacb]`gcc`_a\a^c``bc]_`ca]c`aa`^`dfd\a^b`_`_c``acabbda]_f^\c`fbeb`c]baacabcbaf]`c`a^dbbc^`dbd^c^fa]a\`a``dbca`^ccg]``]]b_[c\e^baa[cdbde_c]b_ebd_^a_c_ba]^c^`a]c`f]]__^b`g`]f]dcba^a`^`cfbdddc`\aZ_lbab_d`bcb`bdab_be`cc`c\aece_d]b]^c_d`cac_a``^a`a_`f`gebd]add`ba`a^ca_ibc`efa^c\__baaa^a___]^cc`]a_h\ad[`^c^`^^d``bYd\ab_]]^ee]b^`_c_ac\`^fab`b^bf`gcdaa\b^g_d_^\``a\^b^bb`[b_^aba`deb`f[ddZ``_^c_`cb^_^]`Y[bc^i\b``a^c`h^cbZ]a^abac\\eb_`[bYb^a`a^_a`_c]bb_cV^ecb`a`ca^babcc_bda\d\eb]\b_^_`bc]`afaacc`bdedbd\`b][^cb\dc`]_`Zf_a_b`ce]a_b`bca`d[_ab^\`]^\a`_`_[][^da`d_ca`a`^b\a_````b_aae]Yeda`^^^da_]\aa_ad```^d_gh_b_]h\cb`ehb\edaic_`b``ac`^__f`b]dbcb]b]^^`daba^_ab]eea`_a_b`id^dec^e`_cadbd_dZb`e_e`d_b_c``e[]cbgd_^`b`gdc`^_bcbbd]`a_^^[cbb`ba_^[b`h]`^e`^_\``bbdacc`]`bdcc_dab^be`dcd`be`aa_`b``^[^__addbab^cbdb`cb`_c`^__cecabcd^_aaa`e^ca_c]d^d`e^i_bd`^d]dab]eZfZb\][_eb`ab`[^c]abb_`ab`cc\fb^]^bccbbcde^]ba`c]b_bfcb^fdc_^ba_`c`d\a_b`_c\^]^edc`^_`d`\a`cb`cg_c[`e`e^bcccd`^`a_ca`e^`da]_a]bi]]b]c]`]]\dcbaaafe^ade_`afacde_Uab\]^c`cde^bbdb\`ca``d`d\a]bbd]`eb^a`\`ad^[bbb_b_baZdaabb]bc`daaa_cdccfa^^bd_\a_g_`bd`aa`_`c\caab``_c\g`_`^`b^_ceabbf_a\^a^^db`ac`b]`a]`a`^babdac_]^_daabd_^a`acd`c`c_adb`e`\`^]c\__\]`_cb_e`^eac`baa]bbc`c_b_]`^a`^^^`\a]\db`^]ah`b^d]__dca^\`[[``\c^c`b]]_YZd_b\`ecae^_c_a_\_``e`b\`ab`cd`^e^babcabceb\^]``e`bcaf```a`a`[c]ed^dad\a]b]acZhd`\_baa]cd_b_b^eec_ef````^`d`_bbf_ac^c^\e]b]^a]\e_ca\b^]]ccabc`fa__ddb]``__`b_^gbb^bacaaebc^adbbdb_ccb`bccb\^`fdda]d]a__^]]bd]ea`db]ad^\b_bb^`[`aa``da_b_]]a`ab^e`eba_b_bda`dda\^e]\bd_bdab^ad_caacZ_]c`acsa^a]^`ba^c^__ddddb`\e]da]fbcbaca_bd`a[c_a^c]edb]ba_Zbm\ae\_Zbfb]bbceal`cb^^^`d^[eab`]`ceefd^]^^`^^_d]_a_cda`^_^____[`_a_b`\c`a]`b]ic`_`]^a_]aa`^]c^]gbbb`^i_a^ae`d^^`acec`b`d`\b``b^^^^^a`b^`^__]c`]^a^_\Yc]^_c\dcb_faa]_afb`abb^ecbd_]^\a`]_`Y_ec[Za\fh\\d`d_\aZ]aada^__`ebc\]i`[aaa__abb^^]__cc]kc_eba`ccb`_a`bg_^d[``^aac\_aa`b```b_^^b]daacfa\_aX_faa`ia]`^la_aab_`_d`acd`_gd_d_bac^__a`cdXa\\_`d\]`\bb_abbb]b^_c__a_b`a`c`e_c^bd\[\bc`aea^]`d\acb`a^a[aZ``dc`a^e_^bb_aabb`_abb]`d^Z]][\_cdd_]`b`bdd]^b^c^ed]d^b]]d`_db^ee`bb^]_`c\ac\e[`ea_cd^`^af\`c\bbeb___egc`ac`\`[fde`baah^`a`_bc_a`g_]a_ea\`]_^`e`]]^abaa`gaa`aae`bb`c`_ae_b\ak`cbc^ace^`bad`lf`eb`debcaa`^`cga_dd^]agb\\b]dcbchabb]ae_e`bbfcb]ab`e_df[_^eaab^dab__aahacc^a`___^e`b`_`^`g]da`d^fac\ffc``ba\\bae__]c\ad]b\`c^^aZd`a\a`__dcdbd^b\``^`^abdi_`f_b]]b`a_b_]d_cabf[b_`db_^_`ba]ab\^c`cab_c^db_\`acaba]a_caa_\faYb\c^a_b^b_]`ec^a]^__cbeaea`iba`^_`agfc_ae^eccYc`a]aa_`c`^cc]adahaaZ]^acaae`\a^a`b`ec_c]\ddebe\dbb`_c]__acb]e_fa`aaca^gc^aac[baf^``aa`a^bb_^a^feb``^ea[^`e`dbb^\[`\a`cbcd`b^^b\a\]__df[a]Y``g`^`_^cc__a`^a^bcb_\e``aac]`]fbeca\_b^`_^ab^\b_Z]]bZca_ebd`\bbbce`]\bdcac^a`\\cb__afbb^]cbg_^_`[_a`a_`bb^a[`b`c`^[d`^_c^c]cZ_^_g^cYb`_c^`]]a]b^e`a_`dcb`__`ae]Z`d_`_^e\[bgc\^af_ac`]dcba^b^b_a\a\^]a^aea]cdd`abcXccbab_c\__```bb`dc^ca`]b^`daeaf]aaccc`d^]^]c_^bc`cd[^__^[[a`_```b^[ca]^ab`a]af`ab``\^ab^_`\`aac[ac_]_a``^^b`cgbaad]j`_aY``Wac_ad^\a`_ab_ca_fcabd_a^agb^`fg]]gc^d^Xe__]c^Wd`_`_ZbaZc^__]h`^ac_]aa^_ab_^__ba`a^Y````a^]`cfcaabgab_ce^`\][_^]bd`gcc\[dg``b`ce^[f]_^ha]____ca]`cbb`Zdc`adYd^_^`a`a^g_`b^bba_g]dcbY`cf_aa_`_c[c`[dcabZZ\a_fbcab^^^cabbd[_edad`_c_[`cbZ^cd_cY^d``ca][^`c_c`[fYd[^\bc`aae`ea`^]bab]`_`_bc[_\^b^\`^YXb[]a[dZd^a__`^d\a^_]^\_^^bcci[c]cfijcba_dZ\db]g^d_^bbcc_^\bf^cb_ca`_c`bac_b`]`d`]c^`[fh\b^[[`a]cfb__^^`cbaS^^a__`f`]_b`\``^^^g`eb\b`[abb\__babad`cg`_aa]be___c[]g\d``\j`b]_^]b\`ecb\`^cb_\d]abcbcbabef`_`f_^Wcd`]^\eba_c`[]bd_aYe^^b]`cb^```a``d]f_e_g`be`fa[c\cb__`c]ba^]^_^`bdbd`]cecba`]g_b]a_c`^bf\_aZ^ba^bd^c]e^c\^[`^_[gbccb`d_b`\^be`a]`_g^c[babdbce``_badfce`]ca_c_^^h_a\daddaa\f]baedaaaf`_\_`_b`]_aa]aa[_[ecgaa_[g]_b^ba`bbd_]_`kb^edb``]\a`^```]b`edc`bb]dcf^_eabbce^`^^caa]abb`]`_cfafc^]^e_cfca`d^ad[[b\```_ca\c`aiab_^bd__a`_`ca_[Ya]b`b__fb_`ab]b^fd`^\`f_dcdY^gbacb``faa`_b_]cae][fb`db^b_aab^]aYb_e`]`a_e\be`Zca`abaade_dcb`bcce^bcdb\ddb_^c^aabbc_]abb`_cb]b]a[\`b`^e`c_cbc__adb`]ba^_eb`e^\^`_ef_]`_a_`_bd_a^^]bdcc^_b_\^^^[`]]f_bbadb_b^_`ad]a`_aea``]__caag`bed^a`a]b\`aa]_`aedf`^df_b_`]]baebaa^_fb[]b^dcdadaf^bfab^bc_Y]_h`gc\]fd]\a]fbbbadad_b`b_eb]a_b`]b_b`_dbab_]_a^`]c]ca\b`aced]_]]fd]a]^adeab^\``cc_aab]`^cfa_a_bb_`_aaa___bb^``b^`b_Zb_`aef]_`]cadab]``c_cc_ab`bch`cchb`_c^b[b]^baa\abc[c^fad^``ab`bf`]_dd_`a_Y[a``bb``b^`a\`[[fb^\a_]_]_^b^c[f]d_a_^aa\a[_^`__c^gbacbaga`]a`aaf_c`_de^_^b`bd\^`ahccd`\a_[h^\e^ebe_`b_dab`c`^b\c_]cd\b^ec_aY\a_`ad_^bbf^__]c_hbdf[cd^_bb`c``bbb\aecb__ec`cfb]edd`a\deaab]aba_e^bbbc`b]e]]a`b```acda\cb^d`a`c]a]cc_gdbcdd`cb^f_bc`^`b`c`bbcf_`a_a_\b^ba^`ed]aa]`bacfc`fed^e`bbbab\^\_`g^\aa^bb_`ddbd]dca\a]^df`da\^aaYbc`g^a^ab`c_^ga`bb`cb`fdb^`^`]b`jc`c`_bbacacda_^a^\^aad`eb`\ad`^c^^ffa\Z^_ea[bab`cdcbZdac__acb`^da^ae`\b`ccb^__bc^_^abfacd_`^\`_^abc`]abb_d`__`Yac_b`aac`b`c]a```a^aa_a]ad\`ab\b]fa_[`bd^`caebac\`caaca_\Z``bb^_`_^b`c_c]^]ad^_``e`abZ[bd```dfb^bb`_e`fdbe^a_^\^a_da`bbac\bea\`g`a\`af`]``^_`b]]i`bbe]g[fda`]ca]cbbc^^cd_[\cb_b````_``c`afb^_`c`babc`__daacb``^cada\^`b^_^^aa^cg_cbaacacb^Zacc_aY`a_ac`_adeb`_caba]bb_eZbaac`c`ca]_b\e]e`^bg`bgbabcc`ac\b_`b^_c_bab]c_bca_bbae`b^c_`\`e\eb`eajba`aa`a^a^a_b^cbad`d`Z`a`df\bbacb^^__`dc^acde_`^b_cbc]aabeaega]^c_`aaaadbcb`_`aad_`_^^aab_`\`Z`dbbcd`][_^d`bbbbcaa[d_bbeb]lbba___eYbdbbabb`_feaf[`baa_ac_a]d_aa]a_f``bdb_cd_c^bf^h^]cbdb^\bbXbb_a]\bba^`^_^]^^bd^ccc`]`fb]bcg^c[]`^_d]c_ec`a_\c[Zb_a`_c^ace^^^__babb^_de`_cfbcaaa_b^^]c_ac^e__ab^Ybec^chb``eccaa_\`bb``ae`]ffgac_b`bcbee`aeac^\\___`[e]c__bb__c^b\^c_b_g[`_a``^a`^daa`a``b\_ebd]_e^[_Z_`]^ea_abg[c`^j^_^b`_^_f`__``g`cb^`kb\c^bd\adc^d^^ada]_a_Yaf``g\_]]\^hg`Z`ba_b[b_^_b\]d__d`d`d``^e_bba`adc_acd^Z_c_`bebb_d`\_d``bccacd_dacba`ccc_c`]ec^addbcbadbadb`aa]b\`]f[^e_ebd^_a__\h_``ab]_fbc`d`[cfa``^]_]_]abmi`a`^i___`]\ac`[`aebacdfcbf`i`ccd^`^abbbb^dc^acb]ab^aaea^^Z_bc_]ebabe\c`f__bc]^_accZ_a_fbc_b`_a_`d^^^f__e^b`aacc[acaa`^cac\_abceaf`b`agcf^]ab_adea_`f_Z_ddaac`c^bic_bef^_db`d_ca]_c_ac^]^^a]b_e]cac_ccd\[b`dd[cdd_]a___]`b`ba`_ada``a^_`ac`a`daca`cd[a]bca``c_`a_a^fa^baZcc[e^^e]`b`b_`[___i`d_^`c]ch`a`\b``ecc_]c__^_\^ae\`b_b^_b]a_d`_f`bcbea`aa`c_[e\`bZ^[adae]`be__^c\_`Z`^`^baa`bcbifc`_bc]ac`c_j`_a`dbcc`_]c\`\daa``b``_a]adec]`_^dcc_k`e]_^a\dbWZca_c^``aa_^`]]adabYdec`]Zbbda^_ff_\`^`ba`_``[^`^bd^dcc]b^\^_a_bea`ah`d_d_^`a^`[^\d^cbb]b^aaab]aaa__d]\`a_]b[c^````f``^\]\]baa^d^kl^b^db`]^^`adb]\\be`ch_acba]ebd]m[b^a]bbcd^a`_eccba_aba`baa][_faabada\df^`cc_c]j\da_a`]a`dbfla]ba__\bb_c^dda`a_]bdbd]__^e``dfa`a]a___]ac`_ea`a[ic`]^ea^bg`__cd_`bbbaba``^_`d_]_]bb_^_cabf_]ae\bbg]cb_ba_bac`^aa]c_`d_cg`cdcafaaj_dbcd]_c^^``d^]`d[]`^cacb_a^^d_\\abb`_agcb_^eaea\`_add_^aa_abcd_a`\d]g_b^c\ff`a^f`d_g^c[bbdfa^e`b]dfa_baa``c_dbe]b_db_`\bc`c__b_^_b^__bb```_af[[`[aabZ\`gbd`abeeb]``a`]dac^^`]c^ba]d^bb[[cdcaa^b]bd_ac__a`ac^^c``cafdeec``a^ca_]]e[be\d_cbbXacecb^c_fb\b`dd`]a`d_b`^^aaa_b`c`b^]abcdc`cb__b^bbc]\cacbb`da`]bc^ba`^cdaac^[e^`]`\ee_d]`bdab\^e_eb]`_ab`aab[``_f\h`cbf^_``bcgb^`gd_]dgbbb`fc]_^d^`c`ed^`_bcc`hdab`b^c\adc^``b]c^c_^b\dbb`\\f_h^[dbdee]gbc^^a[]\e`_d`daac`_c`b``d``af^^a`b^^_`d`_^^gfad^f]aaefcc^d]___Zbe\e`^ac[__^ef_ae_`^aa`]bbbd]_`hb]_cda[]a_`b_acb`da__caa_]_\gYf_c]ca_^abae^aaafb\fdbdcdd`]ccfb_f__cg^`fbdg^a`dbbdadg]be^^aiai`bcbbdb``]`he`ea]_aaf\_d`^b`b_`a^^c^fdd_`cabadh^b_[a[``^c_\ab]g`]d^^f_e`adfZb^d]]___d_ddfcbWa``^hc`]`\_]^af`b_a^``_`^\eadg\]__h_a`^bacb_^\a`][a^b\_b`^a_`dbaacaab`_c_`a`c_bcc__^_d`ec\^bee]`baa_dgbb^_c`aceedc[^dab__dcb``[b[cb_cdb^b_aaab_^fffX_^\`a``aYb`bb`aee]c]]haeac_b^___``^\``b`\bbabb`d`_e``b`b`^ad_]ebYfcb`bb_]^bd^be`bc^^_`b\i`f`c__c_^^^ac]`cba]c]a^^bbc[ae\_cdd```b\d^h^beY^]f^a]edca`b^`_\ddb^_^dc_`_ba_c`Z_^e_c\aad^`e``_^eecc^b]_`][[ge_a^f]aaadadbfa_bb`a_c`da_c`c``^\^cb^``eccbb]`_edg`b^\dfbfde`^`baa]_cdecda^^`f__`acd^abd_c^]ba]^ab^]\b`abf_^a]c`a\^YcaZa___]e\bbc`abY\bb\ei_`a]`f\`]_abdcc___b_`d\ga_cbd^^`d_[_d`c^]_abcc^c]cf`\^ae^bbfbf``_`]`cd[ag^fb[_^aabbcbc_dd`aa_c_a_d[^dcba``aha_]\d_ea_`a]_Yd^]bgf`^a_dfa_agd`a\^`e`ca`a`\ba`__g\^^`^a[][b[b]ceb_dabbdj]aa_bcc^baba`_`^_da_bc`]a```b`bdc\`a`ba^]`^bfeaa\c`]Xb`ac]^g^]bbd]`\aebba^__^ab]eedebbdd^`__```_adbc\eca``^`ba_`baccZ]`_da^f`_b\^gbd`_`]_addc`^_f`[f\^b\`_eb\``fdabeed_^_cadb\c^ec_^cgbaiccaa_dd_bd^db_cc`^b``dgbcaaaedc_db\`dc^]ab``^`Zb]d_a`_b^ch`ad``bd`Z^fb_`ae^a]_`ee]b__abc]^a_]bafcc]_`fb`ccdac^f`b_a`aa^a]^eeb_b\^dac`g[_^]a``_a\]d_cc_bca_eccabd^a^ba]`[`[``^^da]b^dc`bddd_bc`fabia_`eabb__a`d_```ah`^`b`gfcab`baeadda`b[a_caaefb]acdca]e^b]cbc\]\_fbmaa__a_cgag_f_\ag`b]_d`cd_^e]e`c[ed\c_`^ac_c\_gba\e\ca`bd]bbf^`caZa_`]cca`cbec_ac^eaadc[``^\^`d[^d`_aa]efcca^cc^cde`b`^^a`da_b`c^\a_`___cc`bb_dbaa_b`c]_`]___[c]bdbc]cc`^b_d__aacaccb_eb___b^e^a`\e`b`^_`^ab``aec`aaaadeecad_]_c`bcd]ddaa`^[deb_af\a^bdg^b^a`bac`baadd`fbga`_bgffcada`]c^`bc_babecb`^e`_`_`acaca_^_faaeb_]_a`ab`d`cb`_]e``b^\hea^[b^a^a[`bhf^c_abgba`b_`^cbb`d_`^adaccadede__b^a[c__`bbb^]^cacd``db`^eb_e_aa`_^bb[dcbb_\e_bZc`_de^]b`fa``\e_eafbbded^ede^`j`a^`cdd_c__`c\d^f]^___`c__d\ca^`ba]^b`bcdeb``\`ca_^ab_]b``^a`fa[b``a[e\[cad^abab_`Yd_`^a`cd``a^_^_a`\d^af_[b^a]c^`_aZg^]\_dc_ea_\]k^_]^c_a`cZ`bbd_eXXdcc^`e_f]_bfcea`_^abb_`[]b`^ddacc^]`cdb_aa``b^_]b__ad]`_ead__e^ec``^d]gb]cge]be``^c_^abc`]baa]c^_^^caYbadc^b\af_b^_\ca^_a^e_a`aZbZ^abaaae^_a`^^cc_`]`h_`a\\ae]f`a`[`cab`amfb```cced__k\a__ea^^aa_^ca_cd\ag^ac^a_]\gZcjZca`_\bd]c^\d_bd`c`h`a`d^c_ag``_a``_f`f^^_c``aa^ch__ab`a_cae`b[`^da^`b^b_``]a_`dc]]b__abbaaaaa``]bbbd_b``b_a_^_^\[^`_e`_ab^b^bdca\e_b_cab^^cb``[d^a]`]`^Z``dg`dc`]_[a^`dbadbeb^a_db_c\_ab`b__`a]aa\adc^ac^a`\`bcd``^a_bbd]]`ac^d\``acdaacdc\db\dbcaeaa`^ab_ac`_]b`ab`f]ebd`]acd`aea]_`da`e`^aga__`c`_c_`ba[_cb[]`aba^b`_bmddea_\_bad^Z`Z^a^b`]]d\ccf`debb_`ae^b_a__aa_aca^`\]da_da__d^`ecb`dbf__ba\``c^_`_e`]dc_d_a_dcc``_ada``abeddab`f[_`bbcad^^`\``^ce^^[e``_c`_``a^_c_f]ca[_`c\`_cZ^a^a`a^_b\`daa`db__[aa^b```Zbba^`c`dd`___gbcae_ha]^dfc^`ac`Z^``b``^d^_aa__ca__`^_cba__ca\c[ea_``bb^c^bd```bddd__]bb\cc_^^_ab_bbc_`cbb`[```\b`_`baea`]b_^]]bbd_^fab_acd_ccb`c_`d`a_^e^Y]_b_a`ad^cb`c`d_aa\^bY_c`__daaa]`^aa_cd`ebd`hc`_dbb\abd\`c^^a\dccdbc]^`cc_a\\eb`^\^[`ad^^ec_^d\acdc`ab^_c\_]f]ade_^a\jha``b[a^`a`^_ecbd`_ed`c^e^accgca_`bcb]_`^aa`dcdebahcb[`bcd_a[cab_bec[b]d]d_d`abadcag]c^`cf_b_^dcd\ib^d^a_caca`a_]ba_^]^abc_b_a^cb^`]bab_`_didc^_]bbb[]`_[ea`^\c_d\cdaba_bca`c^]b^a]f_bcbbe`ca_`bab`^aa`_bcb``\d_a_bd^b^fa\[ba_g\g__aZ^`_aa\^a]]c_`c^`ada`]d`^[^b]cd\e[]ba]```dabbd__bZ^dc]`_da`a`]a][ba`cd`_`^]^`a_b^acc]abZb`a\j_]`a`\_c``d_`fhdb_]gd^cafcb^_`e_Zbf`a`^ae^b_aecceba_b_bcb__c^aac_`cd_b`]c_\_]aa`^b`[Zc]d_\eb]]d]ba_`a^]a^_c_ab_bccga_d`e_d[\a`^_^`^b```^]bf_dfc`]bb`fafcb^_^cbid_`a^ab^c`c_^`]ca`]]b^^c_]bbe]ehg]`eZaegc^`a[dbc_`b][bb^_a`abc\bb`_d\ib_d^`aa_`^]\c_```]Y_```^aaa_`Ze`b_fa]a``f_d]_b`\bb_^d^^b^`bf`aa_____bbbhfdba[^`b\^`a__`^]`^a`^ha]`^^_bf^afaabfaa^b`b_]c[bebg_`aaca_]dd^bba_`]`dgeba^_`ddaa^abjaa^ad`b]^b``\a``ceae[h_]`da_]ba__bc`^`ebc_bc_f^`abe__aa[]cbc\``b_`^b`]`]ac_``bcd``ab^df^[^^`___b_da_ca_^ea\dccab_b___^`acbbd``_`^eb\daa`^a]bf___a_]\^`^_\^_ab_]ce_^]d`]]eaa`^ac_abbb```_]hcc\_aacbbd`c_^^ehcha]a__db`\fa`b`___bcfa^bdcb^\aa_^bc\adc_ab^^``]_d__aa]g_^`e^^ac`bdch``be`Zc`^a[b_]]_c]ece_a]`ba__^[de`_abc_dde`a^h_c]bab`adb`be^b_a_`aa^`eceb``]_\dd`cbe`bcafa`_b_^`a`bb``]_]dcb]`efaa_\\ae``ccb`bc[h]\W__[efd`caebbbd\d[c`[gefda_]`_^a`^^b`e^ba`\__]db_eee_ae^fcf_ca_ecaacdbU]_c__^_fe]g\_`bZd^cdd_a`if`_^[hc\b^\_Zdb^dbc\e_^Zeb]`__bf^dbb]dfdc``_^bdaf`Y`\`bY`deca_d`ffb\X_`dcX^``_]fbe_^^]dcbb^]gdf_]ad`ffXe^bb`a`c_]`_fe^fUbfag]^[_ebcc___^]]_^_]]dd^__b\[^^cbebffd_bd`[Xd^eYYdaa_ace^]g^f[cWd_cf[aXbe^b[da^d`^ba]f]ed[gg\_e]]Wb`_[hdZe_`bbc`]Zdd`fZbcb][\c_^jdagbe``gfecc`bbbaedJacb]__[bc_[`^`\^`\Z^b`\abae^bcb`b[aagQbd_fbXbe^^^e`gb^^\a_aa[c[`^\c`c`b_ZYcacb^c[`bed[^`d\d^d_gb_]h^_Z]`cfcZb`f_W^dgicjca]fbccb[ac`dd_]\f\f_`ebba\bcba__`b_a`bd_bX`b^_da\e]db__X[`afbac```b[cb`kX_]gbbda`c\^dcc`dZae[`a^`f_cVeh`aXbbc__\\aZe^c_bebbe]ddfa^abbhYk[^^c\\^`b\^ec`b`]dbdcdfa_i[ab`__ddeeeac`Y`]d\`ddYcc`b^]bbce[baad_YZ\e^ceZba`h`bbba\c`c][gea]`b^dc`bbg_a``h^b\c__deba^]^_`acb^cYdi_^f`b`bbfaeafca`e^de`ba__bea`\[c`]``_d]`cfcb^]_gf_^g_fd[]gae`]cbc[[aea`bk]afbbZaadfd]^\X^d^c^be`c^feYVaa[dde`^_hbde\f\ed\b\b__^d\aia``a]c[c^]cbb]ia``eaa__a```\b]bb__^__]__^e_`ce^^ad``^h_ea`a_cdaa``b\d`_hadcac`]d`c`_`^bcefZb`b`c^d[bca`a]_da\__`_gcb^^`_fba`bb_]ac`b]b\abbc[c^bb]c``aa_]b_``]dk`_ab]]_d``bdef`_b]][aae`aa]ab^^bad^d]eb_b_]_d[`caaba]`f`aa^^_e_]\_a`db^bg\ab_c_ec\c^`\^`bfc^b_e^`cbd_^Z^ea[\a```hac^d]bbZb]^``ad`^aabhb_bi`\^ea__\_c`cfb\^dbbfbb`a`_b_`[\`l_``ea`_ccfba`cbb^[b`][_`^^`^faa`^bccdcb_\f^`^`[ccb]^acYaacaad^`aa^_^a`_c_\``aebi^``c]_]_a_bfb]``a`_b_c_`Y[db__][ab`b_a_^bdha`]_`^`^gZ_ceba^beeda\[c]`bb_\b`a`ac_adc\bca]_`]h`_a`^^``^c[d]\d_`c^`ae]\`]a^e_a`b]]acc__cegc\Z]`aba`c`ad]_d```c\_^_[eaacb_c_abi__[acd_b_da\`^\da__ceddc[Y\]ce___c^b`faccd_g]fd^dj_a^`bc`b]d\`cebd`ab`b`c]Z^c_``[\``^b^_a_bba`^bb^h^a_\bdca`b_ee`]bc_ce`_bc`b`^_cba`ad\`\^db`]a`b_ab``_c`^`[^a_cbc_`^b^^d^__]bb`_a^b_ae^``dcc``^a_ba^`cc^bcac]`^d`c_a^^]`ccba\ccaaa_b_bbbbdbac__``cfbb^cac_bc^_`cacbc^a^ae^]bfc`c^faZbe`ac``ee^b___^]`[\``a_c^cc_b^`_e``ae]b___^aa]\bdb^e^]a`aaa]a]`dc[_]caaa_ad]^_d]bd\bc_`aabb`daaYga`_f`cajdababYbb^_^`g^[``_b]ea]a_`__^a_a\a]`]be^Zd`d^aba]e_cabca_]ac`__cba`_fabba__ac`^b`badf]gdbdaa__c``f_bdbdebd[ab^^`e^^d^\aab`eaccd]_]^aea`c`bd`ccbc^`Yg_a_d`f]da_adWacb_gbea[b^a`dca_`d_c_\df_]_ab^_ba]]baccadjd_ba\]^\\ca_``]^_`acc^]cbed^_cad``_bZb\_d`\cb__a^_`[bc_^ab`_b^`cb`e`c_`^bf`ga`a`e`c`cc__^fa]d^`c^`]^g\`]b`eZ^^_a\a]ci]gaac`]]`bba^_f`_b`^dd_cba^e_a[^caaa`adbjd]\\bch_]\`\_`b_```b[^de__]b_\ebiab_a`ebc`ac\\_b^`a_`k`]c^ce_bd_c`d_bcag[]Yf`^`a_[`bbae`c`cdd`daa_a]_e]___\\bca`ag\[]\`^[c^]fa\\a^caY^_fbd``]c_^^_Zb_]^_]^]_cabb`c^f`bceaa`_baddka`e`^\bcb_`^adgd`]_a__gad\a`daea^cbcbc_\^_e^]e^d]^[]a^^^d_]aa]^\\ccd\^cc]``_\adaee`a]b_eca_[e_d^^`e_a^b`cg_`\]c]ad_]]`^_]`ca^]`babaa`bb__\a`^cf`^`]edca^bad`^bc_^`^ac`\^``d_\``d`be```\`^]_ca_`e`^a`bbaa`b_^^ea_`b``a[`d`b`cd]^`adcb``daka]^fd`]^b`bb`cbe_c^ha]bbbfd]ag`a\[a`_e]]`[^`_aa_aaaac[ab^a`e[bbaZ`bdc[_ab[aac[ac]_a`Zcba]]\`dbae]ceb``bdab^`af_a_bb_[cc`_b_cdc^_]ega`d`d_febe]`ec`Z^fcXa^d]c^`b^]][dc\`^```fdbb[`f\a\`_c]^^^[_]^]\`]gcb]iZ]`g]e`b`bca]c_^a^aYd[dah^cc_h`\`a`_eb_]b_fg```d^b`[cY_a_fc^ba]cb^e`g^b\]\e^acb`_`cYab^\acdbd`bgd`[e^`\acdc\a]`bg^f^hbaZ_`c]c`^`c`]eb__bcfd_cc_``b`c^^g_d]_hb_\]X\Z_\c_]cb^_fa\aab^]a]ahb`c`d_`_]_aac``__b_d`^d_\bfca\^\`bd^cbhc`a]c]^_cc`[acaZ]ebafb^dcbbV\f__`c]aa`]aa``aca^^b^^`ca`dfec``]b[\`a`ea\ab]]ab`^__d_d`babb^^c^ba_c_aa`\a]_b_e``^`dZc`_dccc``b^^fabd^b``dd]`d\d^fa`f^dfad^d`_^cde\_f^bicaac`]fb^_eaacb_a^_Yda``cd``f[adb[bb]^_c\cc^cae^`]a^daeei_]\l]eX^bgb[`dd^]a`\^b`^`ab_aa_a`b_^ab_^a^b]aaa_a^a_b_[`dc_ca`\`fa^^b``cb`d[]Zcc`]`d_d][]d__d[ae^c_a^\]`_dd_\a]cbc__aca^a`c```Xb`^^c^_e_[__`]`af\dbddb`^c`ia^f``bb`d^f`a_`]b_^dd\b_\^cab`bc__cbadefbaafaa__a^\abb\cab\aZc_a`ebb[b_[`acb_hd_cdc`c^acec^^^_ad^c`]___bb`^aab\\^d\b`adaa_``f]efd_b`[a]i`aacb^`a\_b^]]b]bcf^_b_`_bb_egab]]bgb`a_e_bb]`^^c[aa_^_aab\`a`_`_bc_ac_f`]d_`ac`bbbebcdcb^\b`\a`cab]a^dceecbc]becacadde_`aadcbdccd^a`a`^f]^^b^aa^_b^hbgb_`c`^\acbi`aa^`]]fah`c`\b]a\`ea^bda\eb_dbebd`fba]`]adaecbfbc_^cd_`ad`b^bc\]da_c`aca`ac]ccba`_]c_abcadda_d^`ced]`_^a_]^aca^d`eaae_`c_bgead`^bd^dc``cc^b__b^e_`a__bcdacfabZ`caa_`_bbaa^de`baaabbc_`badd]c`c\a^df`ab^b^`aab[^cd]`b^_acbc`cf`dfcaa`^``e^c]^c^_`e_`ba`^c^decd[dZb^`e]bca^_`_``bZc^dba`b]aYcfde^_fd]__aaa^d__`[__^`_c_^a`aa`_`c]bd_b`d`b``Yf^\a`b`]__`]g`eZbaabb\a][]Xa_`b`_^[a_b``_fbbhi_dn\[bac]ac__e^bfe_```cd\[_a^d_`_adc^fa^ca`^a]`c^]ae^Yc__[b`^b`d]``_`cd_cZde_c]ab`d^cdba^b```d^`^cbcbd__^_a`_accb``ac_cb_aacb`cfe`aefb]ad_b]c[e`c^ea^gb]bcdd`^`b[hbc^e\bf`_dbed`\c^b\[\c_dbce`_`i^``^f`^bc_^d`]^be``^a_]aa\`\f[]^ccbe`ab\`cdabfddaec_ac`[__ad^c_`d``bb^^bbc`adb^_^abeabb]^`_ac`_dbafebcffb`]c^b^[^`e]_``b[ba`ac``^hab^``_Zd`Yc[]`bd_bb[_[^_]a_abbec`]]_c_a\dabfa]^``\_a_fbb_h^cdc_he`aa`c^__cdb^`\[fabc]a__fae`bdc_eb___b]edbbab^``aeaa^`b[^]adagbc^b`aa^acc_[\^e^f_b^_b]aab]abaab`\_`]a_d^ab]a__dbcfcc^`e_ca`_^aa^^_`ab[````^aaae]da]e`c^\a_a`^_a\aa]a```c_d\f_^`_`\[b_]faa_^_[[f`c^]\f\h_]bad`e_aa_e]abb\^a_b`^`c`a_`_`fbdada\^ab_a\aYgdaa`]cc\eaa_hba\eg`^___bdb`ab``^eaea_ca\`b`abdea__a_cb\]^b^a^_e\]d`b[c_ecebd`_bdfdcag]\`_`]b`cab`^[d_\_a`__da^fd`b\d\`cb]`ba```eb]_c]a^`bcab_[_aa]`eab_c_aa`aabccbbcd[a_fbbb`d^`adacf_b\b`_`_\]]c\^^c\e]`acad^^a^^^ac`acd^fa^caha]hdbc_^bcb_a__e_cabZ^ab^_]ac_b^_\bbaaj_^^e`d\bddacZbab`eb\_ca^_ac]`e\^a`^cfdb[`c_ccb]\`be_eabdba^a\babe^`]`g^^_aa\fdb^^\ccgab_a]ab`ae^]_bZebad_`db`bagaibe`^acb_a`ce`bbaf``afca`_`aa`c]aa[dhbffce`ba]d_^`dbb_aa`b\bcgb_]ie`b]`_ca^d`[c`_``^a]be`a^]_bd``\d]c]bb^]]`^dc]dabc``^\]c^ceac]bf]f`f^a\`[_cZ`da^__a`b`bd__e_c`db\ab_d`gccYdbbb`c`af__bba]ae[ga`_ca^`eebe_`c`aba_c`c[]b_c]b]cacf_d^a_c_a_dcaYgcd_`fc_d[``^ba^ced_]c\b]`bb_bbh`^b`aa_`ab^d__d_eb^__abdjc``c\_d_g_``_\ebf[ek\`__\^c^ca[a^_f^_a^db^ff]`bb]a`a_`_`a^c`g[ab^c`a]b`^e\a_^`Zbadac`_ac_`a^``]bbaadgaadab^^bf`da^[b^`a_c[\f_]`faac]^_`_[a^`^bb[`\a_a`cbcaa\`c_h^^_b__aac``]_aad_]c]_aadg`[``^^fa_a^aaa`fabab`c^\]`[\bcebba_a__db_a^`_a^^eba^b__dab`Y\^c]_a_cc`[d^^\`ae^b^e\d_bdab_]b_]`b`cccab\acaeaa]ec_^_adca_`f`bb^badbbaaah]bc__[d^d`^b^a^^aa^[]b`a_^`de]^^`_```a^^^dcg[`baa]abh_^ba_c^`cbc]_a^bccfa`a]\bb`_bh^`^`_`_\`a`\daed^d`bcddc__c_\]e`d`aX]_[b]_^a`^]`_`_^ad]ce^`_d^c\d`^[Yacec]d`bcfa\bb^ab^ad`d`c`__a`e_^dc\bab_b]b_``a`bc`b\c]Zbd^bhd][a_Z_bb[fcd^a]aa]_bbbd[[dc_Zehd^c``\^^d^abc`^_]gba__`g`]h`e]a^^\b\deca`d_ba`be^aed^bb_^fcdib^\`]f\^\dd]ccbda\Zdaa[bdcYYbb`_d^e]c]^Y_accab\^]af_]a_]_^\]b__f][b^a^]`ca`a^a^dbbj]eb^b_a]c^\_^af`acaa`\b`cbY``_`fhc]adb^^d``gabfl]abafb\_`j_\ed][e``\ecfZ`b`^`]``^f^^[_dYcfb^^g\cda_e`^b`d`d\fad^\a_`b[b^\b^]^^bd^lb_^]ad^_ab\a^`^^[a`a````c`c_fc``cb\`]^be_b`\\f\`b\__d__eaa_^a`^Xb`]`a\Zacaf\hf]a_a^`]g^a^`[_c^^dba`_[da^`c]cdadc_[eb^bYeccd`a_a`ddb`_ba]^ajbgabdaacdZeb_`a_]_a`dga]e[c``f__bbc\_db^be^cc[^cba__dcaef\cc_[a`bb`b^[`^^`a_`aacb_c_c_ab_^eaga^^fa^e^`g`f`]_a`a_adbc____\c^`ba\hcaabc[`c`e`c[c`acc_dc`g^_fc^^f^a]_^af]`\`]aZb`^]e`bbd`_cbc`caabebde`dgb_^\da_`a_^`fdaaed`bb`abc_d_c_ac[cf`b_daed`e\\d\]fbb_bad_^Ze]__c`_g\_b``f`ba\`ccaba`_ab^dcbc]ba_c_f_^fc_e_dc`dcb][a^a^`c^Yccb_]^eae`__]b^`cecbab]`]`b`^dc_`_^abc_`Z\]a]j^aa`a]ad`]_c[caa[^\bbc\a_d\d_Xac_`ccaaa]_bcb\_^`acc\fa^ccbc^\he^a[]`^^acb`cbbdc]`ba^^^^^^_]```]d_bb``\]a`a]a`d_Zd\``db^abbdZccb[]`d```e`_acac\`caba^^ccfa^cd`ad\d_a[_fb`Z^`a`_cc_dda\bbaded^ddd\ae^ec`aa\`dc`b`]aaf[_b]_d_d\dgc_a]`]`_b_`bc^\afa`_c_^a[c_b\g`b``aa`_\b__gb`_`__\^b_a`e^b]be^adb__`bab`a]^_a_e`]_^[e_`bZa_^_f\c^e[\c^`_d`babc[`fb_^ab]ba_`]^e\_]_[]^]bcaed]a^d`^bbcb^e_bd^^d_d`d`b]^ae^g_]b]ea_a]`c_c_`cace^bggb^aab^]^dgXbaa^`_]fdcbd_ba]]bbda\`i[b^^a_We[`b_a^b[`ebc\`d]^b[dea^`ddgf`_]ec^cfe\fd^c^efbc]a]hdd[]_`h`g]`]`ab\ggb\^_`__^e`^e`c`\dfX^ebc]adaa`aa`dc__dh__a`dbedd\_`\b\c`a^d\``^`cceg_]be^_a]ib`^d^fc]^][bbd^\^c_[]cedgW\a^^\`bacaadf_`c`^`b`bfabb]_`ai`c]`b^__dZgab_a_^`^`ddb`f[a``b_^l^_b_b_^_d^Zb_]]babZd_^^ca`^accgaba^f]bgd^bbb^da`_eZ^ach`\_```ccg^\]`abbebbbc^]\\`^e`b^c]aZd]gadaac^`a`_caad`bc`bfbc`\_]__g_ba^__]`_^bg````_^gba``ad\Y]_b`]`d``acb`]aaba`g^dba`b_dabe_Z``^_\_b`cd`ea`]_^`cdca_`aYaaabb_da]b`aa\c^_e``^e]ah^b]b^__^cdb_]]`b^`^b]acda`_^dd_`\`\]^dab^cb_c_g\`d\b^`_c^bX\_]_`__`cdadabfda`b_dde_]dc\be`bf]a`g^_`dYebc`e__`afb`c``bca_a]]]a_[bbe`_\\`a`d_aa^aa__ea_`b]\aa`a`a[ca\^^``_`]d^__dhcbZb`[f^b_a\`dd^d^`ba_cc\acd_]acf_`b[b\__faadb_aa`eb`^c^`bc\_ca`_af`eca^]a[^aa_df^bdeaZc]cc_`acab_abb_bdaeba]``^b``h_``abbahf`cfbgde[dbadae`dgi`db^d^`\d_`adgaacd_`[_df_`]^d`\e]`afg\c`bbbd`_aad^fb^aah`b_`bb_b_b[aaa]^^b^]c__aaZcdea^b`c`^abgaa`bab_[bb]_e]`d^^[[`_]_fa^_k`^`g^c^bc\a`d`gaba_a^eaaba``cb]_cga\a^ab_[_`bf_bb^f_bbafdfbb[``abac``dd]_^]bcgd^c^f]_a__eb\ec]a_^f^a]ed_^a`]d`dbc]]fbe`gbb[]d`\_e\bb`c^c^`d`bc^``ba`bdacdge__d__]_`__\]`f_Y\bibb`_][`_aa]dadd`^acaa`e_da[b`abc^g_ca_``Yab`dg^]cY`_[^dbcdd]gc`cac``_[c]a_^ef^fa^^_]fg^_d`bb`bdbb^^`daadac_b]]a]Z^_a_^``d^`d`_a```\^d]b^`cbe\``ci`e]^^^bb]bjf`a_c^_^fd^\c_]^dc\_`_]daf_ac`b_aee`l^`_^Za]a_]^`^aa^l`baa]_gcdb_a[\]a^d]`]b]_cc`]^__d`bae`decbec[]b]d_^_ac`dfa_b__dbe[`]bcb_`_]ae]da]``_bdeabdbac]a`a_e__]cc`Z^`c_a\da^`b`c]f[[e_]ba]]d\]eae]_]addcfc`a^c`b_\aa`d^]```dbY__`_f^_a`_bdaeZ[a`^`e][b^bba\aU\_baZ_ca\f^a^]`\bc_adha]abb_be]^cac\c^_`_e\c]dd^efdd`ba_```k]_^e[`e``d]]ack_a^hgaf`aa]b_]^`ac^__cb^]__a`a`ci]`aac``fef^da^cd_^ca`g^`f^Zdce^_\a^[b]``^]``^`f]_[_\gd^bc\dab^aa[df`kbaa^aa`^e^]c`a__abcg__`b[cb`_da]abd_a`^dc^b``\__Zd_^c_da`[f`]b]b^`\\b`_c`b^b^_a_cbfZaa\^b]__fa`cb`_^^c`bb`dccbpcdb]d_\_ca]ac_`dc_`^a`a``^]\b_b]]bccc]]`]`bafaca^_]b`c__e_Z`i]d_^\c]a]\ad_a]cac^cbj_`]`bbd``b_^bad^Z\b_bad_`\ecbZ_]`_ba`bc^f]^c\\fa_f_]_cg^b``_cdbc^]ce`cdaa^``Y`^a``c_e]]^bb]^]__^[]^a_cabbf\a`aa`a`caa`e\_dbe\daabY`c`d]]_^]df_aa`a\`hcaf__ga]e^bb`a_Zce`b`a`^d^`dba`^^\`^cg`ac`b^\^^`cjg]e\b^ab_a^^^c`bc_a`^ae]\cab_]_]d`^^dda_^bdc[dde_add]e_\da_^c\`_ddc^_^bb^_b^a[d_df[efa`aa^a``gbca^Ycbb__bec\\X`^]]`b`\a[accae^bb_d\__b[`^^a__]c\bb`_^ch^c_cd_acb``c^b__`a_af^bdbaeab`dcb`\_ff`^e`]`cd[b_e`b\[af^aha``ccae`aaacb`^``c^`bX`dac\[cbaac^_eec_`haa`^dc^`hbbc`ab_`]]^b`^``c`aaa_bb^hb^\_ce^e__ba_g`]aa`cd`ac__^^aaa]_`^``caac^bfcg_a`ade_^hac_`\____a_`[`bbb\`aaaba`\cac_d_Ze^_be]`^abf```__d`b[``d^cb`_bc``dhbW`c^c_`aa__a_^\_]ae]bg^`a_c^[[]debcaacaac```d^`e]`ga_dcab_ea__f]^f[]^_aadac`\ad[]^\bdc\_e^ge^g]c^cce_f_[acca``]a]dc^ae`e`_[`ac`ca^``_[`cc]e^edaaac_``dbZY_`ced]]f]^i`d^a`\`ad__ab^`\_gb`__b]]`b\a]^bda]b]da\Yf`]]^Z_^_c^^fc_gbb^d^d]ae_b^c]aacb^`c_\ee`__b^a\_acdcbch]`c`c_aba^\d__\`]b`edacgcd^``^bcb^be_ceVdc_\^_^d]Y\`acbb^aa\`\cffb\]dcb_^f^bac`^g^Ye`eaa_a\`^a^_^a_cc^hec`Zd[cdfbbd`^`\f`cb`cfa`^`````hZfX_dd]`decg_`e^beha^aa_`adb[_Z][\`]ec]`bab^^^f`acaed_cb`hb\\ac]a\_`cha`^dbcb__`c]b\`d_a`_a_e[d^c_ab]a\]`_`_^be`_c`e_[`]`\ZZc`ccc^[^a`^]cc]c]cb^`_dc\ec_f\``\`^_^\^\c`ba]a``]bb`cbYda^`_a_^a^`_ba``_e`ccf`ca^ca^e`a__a^_db``_g_a`c]b_a`\_]_ccdd_^cZdb[`eba`ca`]_Ved^_a\a_`b_be[`eeba_`a]]^``c[\]`a^_d_dg_abc_i_``b\a``d`ead^adfhedaa]`d``a_`daYcdc`d_daa[``c`b\^ceb_ca^`cb]c\b^[aa_hajaaccf_b_da^_c_j`c`_^a`f`aa_`ab_^eeb^\`a`cebad^eeebba_g_a`c^_^_e`]d`Wc]`__`bffb_`fae`\_\\aac`^`_^b_bedcY]^^d`bb`a__e``_``bad^]]`^^`d[d\dXbd^]e]c``d_^a\bb`^^c`__^ah^de_aabcbabg``f\``ea]`a\d]b`]`bfbad_aceba`^a_`cbd`\c`ba`aba`cc`d`e_c_afe]]]egd_^^ab__^gab`_afa_bd]^c`a_`ccf``c`]b_b`fa]``\`]a^dac[`a]`__ehcab]`^aYf^bbcaa^_b`_b`\b\a`\^_cbcbaZc^]b_f_fa`ea_a^_^a`_cdac`[ae`b^cb___e`_`cb\ccbb^c^^ac`^c`daa`adc`b^dc_baa`ab]_a]a]c_]_b]`e]d]fc`Zaabbb`ad_``]hc__bdbbecb_f`_e__c`b`_`cc`ab``bcc`_`aXbbaa]]aha^]^`cfe_^b``ehc\b`__d`bb]bfa`]c\b__\gbf_[`]``]`b_c]c_`b`cdeaadeb`ca\_^_aa`b_d]`c^_b\c`cad_b]ea_`Z__db\`e_bc_\`\b`bdeb``\]ba`^_ka`__cb^b````a`^\]^_aa]`cab]bebaa]ad^_figf```adbebaaaabda^^`a[dd^`da^de`aa_dc]_`^]faea`ccba][a``badd__adad`^ab_accecaa]``_]_abd`_a^`a_b]dbcbe_`bbb```ea`]^acbbe__^a_a_dca]cdbddc]ca^aadcca]b`__bdcd`adf```ef[bd_^eb\b``]cd^`]``_dd`^^^^b`^a``bc``gb\]Zc^c^Z^`g[bc^]a^^_c]geadc_d```bd`]c^ab\__d``ebcadc^^a`a]`^b[^^ae`_^_baa^`bc^cb^_cacdb_]d]f^b_`^]`biba^a^cda^c]`\a[]`bacac_^ch^[bgidZ]^^\aha`de_]_\`^c^[]b^bb__`^g]gbfa____b]a^a_f\d]]a_c[cb_]cac`fbaYed\a\_cca[Y^_aebbba_agd\`c_`ba]cbcb_[`b`a^[cY^_aa]d`cc`bj]_`__c`bff[a`\da__a_d`b_`\\`c`a[`d`a^caab\e^c_^bb``_``c]fccb``h`[^a^`g]cg`c\`e^__\d_`]_caa^]^b`ab`c]`^e`f```Zb^ac]afcg^_][caba`c`\[`ec^db[bb_b_acf_bb``]`h]b_c_aadc^^bc`ec_dc]aa\^ca][d_]add`]a`b^aaab_]\ebbcc]d_[dbea`bbc^_^^_dUa^baZ`f`a^__^`a_c_\dac`e]]^aa__^`caY_a^^`\bg_^fbbca]bc]d]`[db`_b^^d`e`^cd``Za`abh^]a^ac_`c^[cad_[b`^b]`b`a_]\`_b^]d^`ea`c^fbad`b]]d`_cb`a_a`c_a]cZYg[]]`a^d]`c]_chea`_`aba`^`^c^_eadc`a^a\`a_bb``fa^`^___]efa``]e_^gb``bbf[bb^`_ba__aca`hb`_fbb_`a`fda[_bbb``a_a_fa`_`d]^_^b`[^bdfja__ad\^___bba^_\[[_b`^dZ_`^daga__\abc\e`adabb^ccd^_cdedd`d_daaaadb]c^ade``b_\]bb`\^dba^\]^b^a^^`]cb^ba`_aa]cea`dabf^`aad``aaab_]]a\]baac^``c_bdd^_abb^a[`Z`^_d`]c^a_`d`b``cbaa````^`bcbb`ebb_a``c_eee[b^_d^`_]eccbdbabecabbcab`hecaa]baec`^ecc_`]`[]da]eaa_f^db_d\_bde^ba`abb_baXadfcabd\a`aaaacbc`^Xcaaa^]c`a_d_deb`_cb_]``^`a__bb^d``\aad_^bca\_d_ce`]bZ_\b\b``aabhcbb`^d`__ba`dbccfcbdd`aafb`ec[bdba`]`d`b[`b]`ba\acd]a^aba\bagaa\b_ab_a]cb`bc^`b_faebaa_ab^acacaa^`\_]b`^fdacb`ca^`bd^_]dbc`cf^]_`ad`g``W\a^bab^`_]^ed_ad`b_aX^]^a[^^]]__bd^ccbd`dcbbd`f^da^ddae_bc```b^bcc]d_aca_bc___cb_a]^eg^abb`cd\baaa`ab]cd^bb`c`d[dce```bc_a`^`_ebaa`__d`]_]\`aca`^c[_][[afbb^a__agc^eb_]^bb`d__c^`a_[^bc_]dac`f`ca^^^``aa`ba`ab\a`eb_bbdc`af\\b^aZf``a^]bb^^d[_``_ed``b[a`bbede]a\g`bae`af]_`\_^da^^]agb_ae_^`aa_^d_b]a]`_`__eaca`eab[]`aa_bcb_f^^b`a^c_b\acb``_^ac]`\_a_`cd`]eb_b]_cb^eda__aadb_dacag]^^a^bedbZ`bb^c_ccbc`_^a\\^__dcYc`^fd]b_d]cabce`\[]ad`a`a`addb`]dd^bd_c^f^\ga``Xb`]_ca`]fbab``a_`ecbc```^_[a]`c_b]`id_\ba_e`]cZ_eY^a_b][fcbe`d``dcb_^acfa_``ac_c[a\^c^_`_`b^dbdcaiaeaa^bbe_^adbafad`fcc^bYad^aacZcb^_fb^`^a``]^a]_`\_\c\i`bab^c^]hcb_`]cb^c`be_a``h`c^bb]d___e`_`^a_`^ccgbc`\c]^d_\cacfb`bgdaad`c`^a^_dc`g\e`b\\_bZ]_eac_``_ea^aab_de__`b`cacg`a^__ae^abdf`]Wde`be]b^cb`ff\__\`ec`]agbaa`^]ebab]`fa_a`b\_be^`dh`bh`^ba``]^]fb[a_acfcd_deaiZe[g__^\\lad^^]]a^b]^ad]`cfgcba[]_Z_^gfdd_]\d^aa]jaa_`cdb`b]a_fca`]e[b]cd\aa`b__c`bacbceiah\c_aci]ce`\a^]]ba^_gc\_^^dc`[_cc\_c_]da\ka\b\b\b_[a``_`k^e_e^`b]`__`b`c\c`ce\`^c^`_a^fdab`\a_a^_b``c^dZd]]^ca]a`adca`a`cfae`d`a^cffb[_]a^]a\`ab_g^ec_`a`^bc_`cb`\d^ac_\]ab_a]b^d]`aa^\c_`c]ce]af__^a\a]d]baee^bacY__]c_ba`eb_]^bb[facca\`_c`acaaa]`cb`e^^Z^``_]]_ab`d]adc^adgd`\d_]^a_egb]ea^bac`a_`_^d^^^`[bcb\`^efcbga`be_bca_g^`gc^b[_^b\a`b\e^b`^Zcac_b`afidd`_^b[e`aabec^^^`^c[bb]_abdae`cb_aac`ca``a_`d\f`^c^_]_]]abbfc__]ddg][^`_]aa`\^_`__a_aeb`[adac^b``\a^__a_c^a^dae_efba^^bda]_`cbea`_`c`b`c`b_bbaaZaaa^c`gb^cbb`a]eb_]b\ad_]e]cbc`d`]beada`ddjg^\a_badb^bcbca_c`_`ddbbb^`ab]^a^`bdd]e^bbc_bba_]ae_`a_baa]a`caaj_jd_^c__]bf^\fc`h^]d``[_`^cbg`e]``e^`hca\`_^b_a``]ac^`bd]``^b``dd^b]cbh^[^d]_acachl`aba_ac_``c```^b_`c]c]`_`ba^bda`_```c`f^baae]_d_b]e^c^_^da__bb`d^]_bab_a]f`a`]^`]`a^`ed\_[b^`]eabcca_\c`^b`^^daac^abc`_]_^[^c`_`_deabbca_```g_d^dcdaaf__^`cdc`bbbbaba^\`dbd]b[ae^da[`^ga_b^^`^_\daXd]__c^^cc]^cc`\cbb`Za[^b^^a^__d[ddab`b_cc_e^_fc][a`_`_[fed_``ac^Z[acaa\^`aac`_d\d[eabcbgb`]a]`Yb`acd^`d_``cea]`[a]a`gcgg^[a^c_^`ccf[e`a`^a`^e`\ca\b^d`cec_bd```ch]_Z^bbfc`b^bca`b]b`bce]cb`dc]a]]abfac^i^c[^__`cd]_abb]]^da_`^ce_c__^\dc_ac^db^\dc^Z_caae_`b\b]jd]db^^aa]`d`[`c`]c^bdb_``c`a\\_e\^d^_cb``_cb```ac__^a]^d^db^b^c^bd]dbbg[h__d_dbhb`abc^d_a\_caca`^_gca_b]\dc`d_ac]cbeb\`^bi`c`b`ee^daa^\^`bi^bbacd]_`b^ahaad[b``\`^`^aabafZ`cd]a]a\Y_`[cbcbfag`_abfajcbfccaddcddbcd]eddb_accfdfbecddbcbafdbdddda`ddbcfdbcd_hfdfbdfcecd]accabefgacabfadfxccdbccdbcPbdebdccbccbddbbbdiedbaadbffbeeddeadbc`ebebcc`cb`dfbbdcedaDbccbc_dab_baedbeadcbbbe`bacccdddebdbdbde`cac`cfdefedaada`bddc`bffdbb`bbfdedc`cbab`a_f_cdbacfabbcdeedacdfdcbebbgdee_cdccdcbdbbcbaf`eddfbdecebeabcgbbbbbddcffbdccdaeabecddccdb`dadeebecde`dafdddce`bbddbceacbedcfdc`bbbeccgfcaeccaccbaadbZgcdaeb`ddcd`dddbbdccbddab`eebdbcccdbfbbccccg`ebbdfc_Zgcd]]`]]fb_cbbb``aib`b_Yd]]]\_bdcdb`da`b]^^^X\]c`ca\fg^ba^W_``ae\_^\[`[a`d^`a]dbgacac_ai[g`^[a]c_\_`^fca`gd``edf`b``c_`f^]^fddb]b___`Zabbbdcb[dZbhadi\`Zgie_hXia``_aa^a^fb`]`agbfae]g\^a^`ddg_eib_c[_gee]aeZ`^^fdY_dcbbd\aZd`bbbea`[``]]_^[d`acc]hY\bd_Xdb`ac`acab__c_`^d]a^_``^bfcffbbb\g_Zf_ddgacea_^bf]e\`_bd[fbb^_Zcd[e^b_bga_[c]]`][b[c_]^\dbed``\d`Vfa\faed^af`[c`b`\__ca_\^b\`bac\cVb`ddX^^b_f^be[_^bab[[ccdg`]^c[_]ec]f_^d`ad_]`bca^d_`X^icaaXf^\ah^c`]bd`\ccbbc`b`j_a^]_\a_da_f\`a^a`_cc_b]aeb]]_[\d_b`bc]dcacde_`_bea^acgef_a^dea`c_]`e^]]Zabb`^_`cag``b^]aelaedcad_dbdbcaf^`a^dc^ecbdgccb^dYcba`ab]dbc`bf\c__ab``a_ad^b^caaca]_dbec^d^_Ya`^gh`]`e\bcc^\b_ac]c_aa``_acd]b`_d`_]\]^a`b_aac_c]eah]`ca`b^g_^b``adb\`cc\e_ac]`cc_\gf_`ad`Zd]aa]_^ccd_]]a_^c\bb]^`f[bZ^_fg^bed_e`]dabbb`ab^b\f[_daa_b__a_`ab\abd[^_`a_abbca[aab_e^]ba`^`d_a^^`\c_d^b\`e_aeba^beac^]babca_^b`a_`haaa_ba^jefd^d_``c[c`bdf[fab]`_Ze\bc`_]`c^^b_cba[a^a_[a``bc_]a``da`b_dc^]_`Y_b`dc\aa_`a^^\`bbf^c_adgc]dfa\c_e]`^^`c\afc`e_ac`_b]a_`fha``e^abcb^b_c[b^_`c]___bad^aa]]c``[abebf]fb^^]]^_e``bb]^_abbee]e]cb`b_\^`bca_aaa`_]Y`]c_eZaZbfac]^]`e_]`_^d^bdbeaa`^e^`a^cbocb]a]c^_ac_ca^^a_\[^\b^^c^]cgp]cbd_aa`a\`_baaadd]bd___^fb[ab`ba[^bb_b___^^a`cieb`kc^ec]h`a``_\_``c`\_^^d`bbaf```b]_c_^_d`f_b]\`b^b`a\`b`c]^ab_`cb^]ba^be_]aa`b^a]dc^]d`dbe]``aaacabaZ`^cadebf`bc\]bc_bdf`b^^^`bcbba`\edd`ba]acdada^^\_b`ad`aaf^cbbf_Z_a``_^de]\b`a_]`]`]b`[baZ`\_^]fe^b`[ba_]^bafc\```b`_[bac_`___`[aa_fb`cc^[_]`ahdf``^Z`__c`bd_bed^a^\]fb_b][a\caf]d`_^Z^c^_`aYe``]a_bcc__b_a^ib`b`^^a^dcb^`bcbc`b_b`]_b`]b``^b``aabce\cZdgb``^^_c__\_b`ed__^b_cfb_b`_b]`]]`_\b]bccg_a_b`c`c\`\^_`_`]fa`a]g\__abcdgd[b]_`acga_]c^c^ab`]_c_c]`b`eZ^^`]\aa_a^]b^^^bcabb^Za`da_a_b_^`Zbb_d_acb\_`]_`cb^aYb`adc_d^ca`a`]`_fbf`da`c]c`f]`cab``fdbcc_Zdc]``cd`aa_a`dbc`^g_cdc`^_\b_`eeaba_]bb^a`a^c\ca`bad[cb]gba`YbZc`b]\bbjbhc```c`ac``c_ba__c]^b^aa`]`[__ac\cbcab``hf[`ac]ab_\dg]b_^beYa____h_d\^afa^_^]hb]^c`ec_^```]`ed`gcf]a`bcfa^ad]^a`e^dd_b]_bba`_e`cca`b`ad`cbahb^d^`_cba_acaa\^X_`b_]aa^]_]_a_fde_b[^]adbaa\cab`a_a\``aa_cd^da_``_`^_`\`bcb`ced_^a\cb^ae_adeY^\c^Y^a_chZdc_cdc__Z``_]^a^_^^``_aaaa\_\aac`]]`b^_`_d`\b]]c\f]\c`aZ]`b_ad^`bacbca`ea`_a]]gcb_\dac\a`_d\b`__d`_a`e]`[dab]`_gdc[add^\^da^Z_`]\_b[^`\a]_]d`]d]kbb]\ac]ab`[__h\__^``afb_d^d\ea^cc\ddbcb^dY^bZ\cX`bd[`aica\cb[a^^bae`aaeab\ae]h`ab__fabfd``[^`_edaa]]bjdaadeb[ca^c`ab``bdaa]dZ^^`e\ada_bea^b``b`bh^_\db\ad]_\c^ab`_Y[eda_dc]`cdg^aacbbe^bca_bb``afbg_^eada_^d_d^a^`c]baib`ca_^abba`acab^ba`b^abg_b]bca`_^cdbh_fafc]ee`c`_]`bb_e^^aaab[a_`ecd_bh__Zbed`ad`de^a^cba_aceabb\__cac`ba]cfb`c_`_`Zb_eebb__``]c`^``bebdfbde__af`]dbb_bccbfc]b__g__d\[\``eb^__``a]_`b]`cbaada`b`d]_d``]a``^_b`c`c``^b_c^db``bbca__`a`b_]``abaa_ccabfb`c`b`^_ccad`cca[c_Zb]_]cae^^ca^^``a]deab]bcb]a_\a__ba^`___aehi_]^cba[^d_\a^b_dae_[bc_`bba__b^e_]c`]_`_bh_]_ddc^`_^b_d`b__eb^^\fb^a`daba_beea`_b]]baa]cb]_b^`^db_a[_b\a^c^`f`aca\a`^`_cc\^`c_a_abad`]aacd`ba]__b_``_gaed^_\^`_\`a_`d^gb]caab_bc___b_aZccbcba_^`]b`_`^Wb`_`^_^cdd]^`b`e_\aaba`abg`\`b`b\caba`]]c`dh```b^be^bcb`a]^ac_a__f_`_ec[^]`Ze^a][__`[b_c_`_eadc__f^ea_ebca`ab__aece_]b`aae]\_df`ea_e`dbab`^`caa^a_b`^[a\c`a[`_\a]d`dca^cc\c_Zha_`b`cae`a``bbc\_]b^]_`]bacdac_dd_d^d`a^]`]ba`aacaab_`_^ch]acc^`]dbf`ad[a_bd^a\die]`bafac`]dd]]bad_cca``dbdc]ccga[d``^^ada`cibe`d^__`_``ab``d_b`f_ddbb[^b]ae\`a[c\ecac^`eZca^aab\\^a`__`c^_Zc^_d`baYc`__\`c^b^^d`\^`bfa_acc^gb\g`c[b\g`b]]]bd_^`g^bb``a`ccaca`a_d`bdfce\]]cbb\`_`cbe_]_abbZfac``f`_abac]^dcb^cZadbecc^[a`_aabfecacfd`^b`b]cabbb^`]]dfcc_a`ge`a^_^_`^d`]_a[^^daa]a^_`_fc`afe^b___ab_]debh\f\c\f`aY^\eaaabcb^^^ab`b]ae__Z]e^[__\^baaa]cc`b_aad`^chb`a^fcbaZ`[abab`abb`a]`ga`e]agafe[cc_^`^]aea^a\]``aaeb]bcceb]__bce`[d_]]\^^ab^_aaa]d[\b`_ab\a^d^a_Zb_bda_`a^ddae`^ae^b`bdd`b`]`d]``[^b`a]]\]]b_Z^cac\_ce^eebefc``dcee``ca]b`dcfaa^]ba[a]aZb_]^ba]aa`_af^aZca^`bbb```d_ed^db_b]ab]ciaa[\``c^`_a_a^b_`eg^]_`__`a^a_a_deab__`c^_aad^g`a^^c_\fbd``a^c`\abc_b_b`_dea^^dadc`b]a^`bbaec\c`^`_cj`cb_\`]\]e``]bc^babfaab\_d`_e``^aaaae`^cbcbeYdZ]abbea]\cbd__b`ZZa_b`cb\]b___`\f\_`b``f_bW\ea`aab\`b`\fba`]_]_]a^_f]e_]ib`ab\_`e[`afa_]_``bZd^c^`^[\a]dc\addcdb_dbbaaa_\a_ccb_a_baeb`^[ca`^b\a]bcdade\b]_]bg_]d\b`]\_\abgbYaa`ca`d_c]a^d_a_^_^``daab__b`_b```\c^bda`^^^__`]abb_`^h]cag_`__cb`dd`^ea_^]dcd\_ba_ead_][^a`aa_f^acb`]d_e_a^dcba_\c`cg```aba^`X___be]]dbbo_d]aa`__\^c`b]a`__fbd\_`a`_cb]acceZb^`db[`b]dcabhd`^_ba``_`ad_]_ca[_^aaabd_`ab```^_c`ake``b^aaa]dZcdbb^b_a^d_a`b]\eabc_b`cbebb[gg^c_^_a`b`_e]_b`a_a^`eb]db__bb]b]eca`a\b_ada\ce^nb_a`_aebf_c]`aebdd`]^aac^`aZ]_f`c_`ab]bYfa^d]_^[`bc``_\d\^bg`c\^dcd`^a_e\]fa_ag_ca_[a``]facbf^a^`a`b_^``b__dga^``]e^`^a\aa`_ad]b_`_`\bcacb`d`cab_^d[`b[`bd\afac^b\acc`bc]_^d]eba^\`dba^beac^^b`]]bbda_]_d^addbaad_b``d\___cab^eda`e^_`ca_ea\\c`Y]cada`^Xba^Zbg]aa^_ec`a_b^ea^^`]]`_dab_`c[\a_`bae____b_aa``bd]cgb`[h_db`b]baaa_cadcebcaba`aa^^_dc_ace_b[`bdb\diaadb___^`\caea^_c_a_cce^]]b``_a\aace_`b_a__^^b]cb`ba``ba`cdab__`a][ae\`[^dbc_ad\]__[_b[___`a`db^Y^ba_cdbb`_b`f_ab\ca``c`bab]acb_``]`eb`c_eac_`cb`^`ba^fcc^]ca_^^daad_b_dca^a`a``_fb^^bbcc_`d`aaeZf]_d^_`]a\_``Z``_`b\ac_[^Z]bda[`d]`___`]g[b`_ac``eba`bcb_b^b[Xb_`c^__e]e_ba`_c`aacedb^c_h`d`^`_b[`b`]d_]]_ea`b^ada__`e_c_dc__\_b__b_d\e_c_\acbbcaaadb_`g^]c\a`^``_e`^^[cbcdbb^`\_b\`aabfebc_b`d]^`]dd_`bc[]cdba``gc^b`e]aa`^`a_]^a^aab^\ec]`ace]^e^acZa__[a`f^_b`aa_^]aah_aeg_a]\ebe^`_c^`a]a^``[d`_f_^ecdac``_a`b]]_c[b``^`a`cabbca_```^_^`\\db_b`^b]dk\^^`dcb`c]c`]_`[a^^^`ceea[f`\``dba]d^a`__]adc_e`^c`a`fc^a^d_b^bbafYbcb^ba^^`_af_a_Zbd_^af`_beef][_`bea]ad]\e`b_cbbc\_eaab_^`d`]aeb^^]abd]c``^[`c]^a^a_ea_a^\`bcc^]`f^_bc\_ab`^c`^f\Z\baYa\_`Zbf_]c^b^d`d``[bg_dbc]a_aaa_`d^eba__aa^_bc__`ba^c^]^abb][g_a_a_b`fbedab__a_a`^a`ffaZ`_d^b__eb_bi^bc_`aa^c`d`e\b_`f_a`a_ba_acaebfeaac^c^aa`a_`a[[`_\a^`__adc`_adba_b`[`_e`cad_a^_^\db`ad_^db`df^ca`ce_aaddc`_]e]]^e\_ab]b_c]d`a]c^^`c`^ga]caaaeaab\a]cae\dac_]_a_e`cbdc`d_abdcddad`b`e\`aaaa``d_\\eb]aab_^`^`bdadda_^_]`d_daa`_a_`aaabc`_ba`ca``dac_`_cbb^`daa]caba_adb[`k`dbZa_\a_a\bg`c]cd`cac^_b\cbdabZbafaeahd_abaa^`_ddece^ad`a`g_]b[b_b`f_`a\`b^\`]_]_dbb``_cae`_]ce`ag[e^[d]_d]d^]_aca_^ad]^f^`_d_e_aa``^ceb\cc`dhcdda^a`a``bac]a]`_^ca^^_b`a`e`Z`]`b^eac\b]`]_cdd]d^^_cacac`]ea`ab^cb^a[]fc^e_^ac__`cb`a`_baeaba`_aaba`aa\^d___b_b_`Yc`_aaa^b_`^`]a_b][\_d`f[`_ae^^edae]^ad_c`]c_]]cbcb__bd^c_]_^^bbadbbeb`b[\cf__ZZb^`dddd]c]_`c^\`aa[_^``d^acfaa[b`_abc[aa^d`_bb^ad`gcaaga]da`d_\a`aed`cac`da\_c^]a_\_bg_a_fa`^d`^`aaac`^`\Z^^dcaa^dc\cdffb`\a_ba`a`cecc^hcd^eba\_c]a^_]`fgd`a\]a_e_``^bec^`_cef`e^a\adfbdabc^a]__^bbddd]ccb]_]`\]_^^^cfb`^``adab`_`__]^db`ddcb]bd]_db_abad^ab]f_^Y[ccdh_[]dab\a`[`b_dchadcebXb]Ya^^db`ac\^^_a^]ab\a`c\d`ec\bcc_c^`ae^a[bce`_[`a`_a^_``cb_d\c]fabbb_edbbaa^`a`\`c_\cb]]]ba_g]a^[`_a`b^]_`^eb^`ac^Z```c^gcd[g_`f`cca[d__bb^]fb`\beba]`b^dY[X_cb`bd`aaZ]`_a\f\acaaa]_ah^]^a][a`c\aeb_[_c_][]``b_cab__b]`a`]cc^be`_`[`^_`d\d_cbcbb^baa`__^`d^fbacbb\b[feb]^a_e`\a__Z_ea[\b^`ha_^^]ha`_d`d]cc^\cd`]decbabd`ah^babfb\caaZa``d^c]ecbc^_ad]bc_^c^\^^g`_^ac``c`ccc[_`d]f[`bfe`cccaddbaa`f_\b__^e_b__^h]ejc^b_aac`_aaea^a]_^\a^]abac_b^[cgb^^`^e`TYa]dcaa\gcZ]cab]a]]_\[^\e`_bd_^bad]`dbb]``eb`bc`^gb_[acb[cd^`_fd`d^_`]a]cd_]cee]cfc`ad`gc`d_\a_f^afa]cjb`^]cdacbaca`]ag]aa]W_Z_aeac_`d`^baa]bi`a]`ab_fd[adea_]c\ff`^acafd_e_ad^a`ac_b__d__^]^abaeb`c^ae^^\[c_^ca\`a`bZ]g^db^e]_^ad__`Y`aab^bdab\`]]ce\c]`adcd_`ag_a_^__`bc^`b``h`b`__^cabaab_aZ\c_`d_]b^^ZafYaacdab`^bWZ`^c\bb[b`^_`_bcZ]]\b]hb_ca\cdc^c]^d^fa^^j`aa_]_a\^acca_^`cbb_c\^e``_``_ab``bb\`b]`_]bc\\\bbb[__ce_ddeb[_fba_c[\^a]`bd_dbbcg`\_Ycf`e]bb_dbbbb^b_eb`d]]e\_c_]a]]^eZ_caaecb^f_`a`_\_g`fc`^h^h^af`\`_d_a\b[egb]_c`^cca_`X_`b^`\c___e_]]a]a[`bc[e\``^fc_d```ca\`acb_c`bcbed`bZZ`cccXaba_``a``a_b[abbab`^ab`d]bbba_ac_b_cebadbaecg]ad`de\[_^W_`c`^^fba\_ba_[db]^g``_fd]d\bb\dcd`^c^bhce_[\dfdah```caddcc`]^e\c_`b]g```aca_cdc`__e[b]c[_Xdebbca_^_`d_cd]h^`]e^\_`bba_b`c`ja`a]Xba`cf[b`^_bdbd_d`da[bd[[``\bb\ed]V^c]`__aeh`ZeV`db]ca`b[^bc_`d_a`b`bbbb``eb\`dcebdb`ac`^]]lccdbb\c_^M\_bd[[fbb\\ac_\Y[a_^^b^c_cdbdb]^__Za\^dbda___dea\ae]ce^[bbba_g`gaZc_da_a_ba`a[c``aeaea\_be_^`e^``cccc_\dc\`_]bdbb^ca``edac^bcbZcbda^_]`_c\``^a^eee]``bcb]_`bee_`da_\dfb^_^db`db\ceedd_fca`a^^_`ca_Sdgc\`_a`ab\bb`_be_`beadd^\a_^b\__`agbe]_de``\edec^c``ca`bdb]]cg]a`cbcbba`c^a`__`_bcbabc_b_ab`aag_]]b^_a^ca]b\_b_c_fbc\ad\lbbfde]bbc_^`ch__b_`a^c_\a`adbbcc`a]`bc^`^^a_cb^^cbbc`\a_a]^bd_ba^\`d`cdgaad\beba]a_\a`d`d__^e_^_`_b``ced[^a\_bebc_]\]a\aga_^`ab`\h`__dcaacbca__b``abbcc^e_j^a_a`aaca^__^cbb_f\]fdcd\ad^`^cca_`]fd````]ad]a`a`_dbbe_a`a\bcb]_`d\a]b_b\_e_a__beab^ecd^cc]^^aba`^adc^bc_\]^ecda^f^ab`__b``a_^]aba^bb_c^a__d_\\]^f_^a_^fba_c_d\_d\_dbd]gdbe`^a_`a_`__^`_c`]_`^^a_`_c_bb_]d`b`aca_a^_\adbb^_j^`tad_]abbab``cfc_b]^b^_]aa]a`gd`_c_aa_bcbbac]]ebaebca^b`b]aj]dc]g```bac`\c`fd^i^cebabcai^^]^_f\adac]_c`a_ba]fg``[e^\^`c``abia\]_\^edaeb``^c_bcfc`bh^]bbb]bg_\`dcd_`_^_^`c]ce_aead^__dbc_`]`bZe]_^^`bgbe`^`_ac]^^ac\``b_f`egb]]a]f``````c`b_i`aca_cbaefcfebd`cbd_`_c^bcaf``bb]d_a_dfce]]aa^]_db`\`fdabd]abdlf[aeg]ba`__^`bc__d`_l`\b`bddace`c]^`b^cZa[^ba^b]d_a^be`ca`bca^d`h`__`ad`^a]a]]\dbZd_b^ec_dc_`ca`aa\\ca^ccab]_e`ba][`aa__`^_b]c]a`]``e^gac`_`_a_a`_b`ccc^faad]_^^_`\\`a^_c_b\^_d][aedheacaah`a__cbde^_`da^]_de_cdb\cZ]`aab```bbY^_f`b]de``_c`ab_f_b]bc`da\__\`]_ad]c`bfcf[b_^`]^d\_aba`aaf_a_bb__`a\bdc``bfba^b^d`\d`_cea^b^``_`d]a^b]da^baf_[^c_a`d`[accba_d`ad_ca_^\``c`\a]b_acdbe^^c^[e]c\]ea`Y_h\bd__Zac`a`aad_dd]g^f]bdda`gabeaffdcb_bfch___c][XdW^bfbdeccabZ_``e\]ebcbabe_aa]`caece`b`abbbbcda\bba]a^b_b_a^c\Za`]c`a[_`bfcb``_b\bhd^b^d^cc_a`_ad`^f]_ac\d_dab`_bcahdf]_aa_adc^hdbb\b\cgchZedc_bY_cdaaabcabdb^c`bc^^`a`aa`bbaZcbdabe`db]c\fac^bY\_a_a`c_[cac\__aa^^bcca_``babdaca_abc_]cbad^cg]cd^a_]_`d\b]b^^_baa_`caade]_``_e\`b\b_a\_]d]_^`^a`d_cd\`ca\^f__`^_dbc_f^ZaZc``e``_c`af^bab^__dc`_`Z]_^d`]\\`a`afd`b`Y^_^]`f`e^[afga]_c_]da_`cf``_aa]dbhe`aacacdab^d_\c`be]_a`Z`^`dad`ecaa^_df]b`e[`^ba]ee[ccd^_dfbb]b]b`a^a^e`_ca_acacb]bcb_a^bb^`]Yaae``fa_bdedaba]^_af`aZ`aba^ad_bfdfa]b\_a^c_g``cbabbae_cd^`b^`eaa^af^]da_ad_a_]^bb_^aabb_b]_aag_a]c`\`ab^`d]a`ad`]dab_b\db```daacaaa`cdfcdbc`_`c[a^^e]_dbb\`a_a``^a_]^__^b`_b]f_bab_ce_adc^a`b`_`]`^__a`ad^dca`_ecbe]``_db`bd]c]^c^ca_e\`g\_cab^]\__^]baf`\ec[`b[_c^^`c^][cf\b_`bd_daae\`e_c_`d[_cbeec`_`dZd`c`d\`c[^aaa`^eZh^_^b\b]`aa\b`\_`]bga^eebcck`ae___d_b]da^_ac^`cf`]c^^aac__dbc``b`c_ddac_^_b_`b``^eba`iZ``_\dcace\^a_f]^b_addf][`]ddbd[\a^\_\^_d^_[d]b]`^aa`bbb`d\e]ba`a]cc_e^\^`ac_a_a^e]_\abfbc``ddab_b^^c_\]dab`da]`Z_``]^`\^a`a`][bY`c__]`[b`fc_^`\_`^^^^^^\_b^ad^a^`_a_\eb_a_c`^d__``d__b`\c_`a_be_]bf`c]bcac[^^d\c]a`b_^b_aa`cb]_]]bde]d_[^bhdcfb_``__^_a_ad]bg]eae^eXddcac`]ab``]c]gb^_a_ba]^a`^_ed_`aaed`a`d`ba^\ecc\_`Za]bbbcbe^aa]__b`_`_ad]aaa_\X`c___`caab^d_a\[ca^a`baab]cabf`g`^cc_^c`_c^a_c]bef^_\aa`c_^c\ccbcbee_cgf__bhaec^a]abacg`]]\b`aeae]]Z\d_`__a_cbe`]e]gkba`bce\^_a`ca``^ceabd``\]a`c\d`]_^]cda`f`cY`Z_bb`aZeh_`\`c]]ceW``c`a]b`d]bcb^^`a]cZ^gb_aeb_e^]^]db[b`aecdcf_cf_d`bga^]bbcc^ec^_dYaa_cbbb___a]h`ac_^ae\_^]``ae\c[`g^b`acbYcd_b\^dg[ede][`b^ba`_`aWba_^ea`d^c]cdibaabaf_be`_[eba`^`b^]b\`ca_g\dbaf^c^fabc`c^[`a]^``^^^Ybe`_b__bbb]fbaa``ecac`bdadba`_``dec_aadaa`]_`babaca_c\f_]_^]`g_g`beccf`a_eb^b_e^a_]cfb^_bdabcd]b`aacbb`b_eecad`e`bmac_a_baccc^^a`e`adae`a`d`bcaa]^c_b``]bcb_\bbcac^ecd]a[df`_ba_\ab_^^`afd_acc]abba^cd]Zdacba``ade^bb_a``a`_g`bad`_^b`bb_cdb\]`cbde`b_`g]]`]c_]f^c^__bd``d_`[_c_a^c_`[a\ag``\^b^a^bdce^`hd^b^c^abdca\^ccba^\__c[a`^aa]c_fZbgc_b_abf`]`c]a_haaW\^cbbd]dbabc]]d]a`b``c_hcc]`c_^^^\_b^`cab]_cb^_`d^ab`c[``^d^`c_bad[\`^`bcc`[a^`_b_ccaca``ef`_cb[b^^bc`]`aadcbb[`]_^eb^]]be``cab_cbd`a_ccgcag`]ba`[faa_b_``]adbae`cb`_cba`b_c`d\fhaea__iaadf]db_aZcb^b`\cbb`___aa]cca`a__a\`bb`acad`da]cc^Z\abb]bbacc]a_bbc^cda`_bb\a`adbaabb^`bi\bac\ba_a_\^^```\a]`\_`be`_g^e]ca]]ac`caad^__c``b`\b_b`a`U``^^ef]ea_d__[g[b[bada`a`_caad^`c]`d^]]bbc]`_b^ccbb`^f```[`[a^`\`cdZ^^``a^^d`c`__^f^`]b]ffbc]^`^_`bccaac_ad_^`c\[_i`^]b^`[b`bb]d\db\e^^[c_`fe_bb`bc`]`b^bcbZa`b`^dceb`b`e_a\b]^dafaaa]_d]_^_a\c^a`_da`^_eca`cbb^\ba]__a^`bb``ed^^g_`^f]b``b`a`be_``aa`_^_```___`_ab]^`a``_c_caa`]]\`_`]b`_a`cb\_abba]aacc]baeb``^abc[`^\`g`d```b^ce]e]aai_]e`a`d_baeZb__cXda`c`^dae`^_`_bh_b``_b_`fb_`____bb^`]^^acb`acaab`_a`Z_ab]]a_`fb`bda_aa_^`bbf^[`a_babcb_d`ae`eba]\_c^_`_`ca^_`ae_```b`c[a_`_b``^fce`a`bb_`db_b_^_ce__]cabdebcZgaa_f`^c^b``_]abbc^dcebeb`de^bcb_aa`b_\_]\`]]abfaba\bb^d]e_acc`de]ae_b\_d_b``agab]bbd^bcd_`f[b[`ce_a`a_`^c]bb^``babc`bbf_b^_db`^acc^`abbba^^^cY^b\`_d`^^d]`_cf_]acac\_ab`Ybbdbc_bb`e]^b`_^`ddd_d`b__bf^_ca^c^`^`_`c`b]dbd]bcaj_abb`_a_da]aabccbb]d`fd^`\^hc_^cbbajb`a^\eeab`^^b`_ch\``_^edbea`g]bcd^_\e\a`]e_b[^b`d`ca`bb_ab_a_eba_^cf]b\aaa`b_Yb_f`cbZb_bcc]cc]dba_fada`gc^`_dd]_bd`c__ba`a_caea[cb]db^`^b\fa`ac\c`]b``^^^b`ca^_`fbde]bbc_`bc_baa`eg\^_^a_e`bdf`e\aba^ac`_a^_[b``^caffbia_b]ch`]b\ai]`cde^beef_aaf^`ca`cad`b`_`_add^c_]b]^dcbbb_cZ_^^_baab]cbhbceXgb^a`]`bb`d\__`]`bfa\bd]ba_bd^]`aZe_b\^acdb^c__`^b`^bc``abcd`_c_\_cdb\`fc\]adcbd^Z_cae`cadca`bd^`][daa_e_abbab`_cb_b[e__a^]^ead_`^ab_``]c]c[``^_b_`\`bc_`af[^^facb[ce^a_^_eb^d[`d`abaca\ea_X]^_``_`]b``cecb[_`^adcaabX___`cf`c_dca_`c]ebbZ_b^ae__bda_`]_ad^]aa[^\a`ccc_`cZb^_____^b]ec``c`_Zadd\]dc^i__]_d]^Zabbda\aaab[[ddcbZafcb]haaY_]]`babbb^^ba\eba`Y_ecbb^c^[ba^gdbac_b`^^b[_c\fadcef_`_g^dhd__`e]aea`e`c]_\[bZ^_e\d_]cdce]\b`a^`b^baabe[cbc_da_cccecb^\a]^^cb\f^]dab`aa]]c[`_bb^a_`_`bc]bb_b``c_a_`_^d_c`^gc\hZ_^a``a_ba``c_`ea_c_\a\c[_^a_ebaac]]_e^a`de``a^\eb]_d]d_aXb_a`_`ba_\`b_d^\]fc^d_`ggcbha`]\c^^e[^__d`_`c]bdce`^]`a^cab`f\aadfaba^^daf\bb^_]a]bd^id`_a`Ya__cb``b\[_^aaa^`_bbb``ca`a^_^]baeb]`eac^_`b`achad[_hbaa`]dedf^\`]d^b`h_b_daba^e\^]ab_[Y```f^`^aa`g^b^c^]^^dda]\gadaea_bcab]```]bd`^]a``e^hagb`a`cddX`_^`d`fc\`_dad`^aa_e_bad]_dd]\_]ce`bd`]ec_aa_[`_^^`]_a\_ba^d_^^`c`__bg`\``]b`a]ca_cd``ada`babacbb]`af_]e^b_``Y_a`c_ac__aaa`_`acad]ecc`ceba`^f_^ba``fca_^`gb`d`_a^a`__`]bda^f_d``dd_c`f]d^a`_``d]Xca^d_^d^a_d_a^^c`]c\abb`ag^]^]c\b_a]_\decba]c`ab]dba^eb\c^_b]`^c`c^bba^bcdeebd_bb`a\`^d^_cb]aa`b_a``a_b^^a^ab^dab\ab_ca`]caba^_dc\__a][`b][`e^dda\bd`]]a^gZd\_e_`h]c`_e_b\bZ]]a^^^^e_dh_c]^a``b_c]`^^[^b````__b`^``\c\^a_\d`b^`ebaeab\_`c_``baa_ebd^b^ba`_c^b`]baccf^b`]b\\cab_e]d[aea``\_^_^^^```X_fab^ad_cc`bb^bd``_adbj_^c`_a_a[ed``a__hba^c]^e\`b^`d_^`_bd_cecgc`\bf`a``ba`cb^]_^]\ceccagf^g_ag\`dhbd_^_]b]abacbbgdabcZe[_^`b____h]adc]a][b]a``_`[da`_g_]``^`^]cd_c_^`b_b`^^cd`d`^b]\[bcbd\a]_\]ccc`[__ec^_`a_a[ccdagc]a```b^ca`g[bb\a^bf^ad\^`e`]``_`d`e_gc_babeb`a`]bc]b`aa`cbc\^dd][cb]]faYdaa^cdb_adaadbcbcb[e\]``^_X`c_ccb[^ad_dZ_]`b]eZ^`_``a_eafa[^ab[]]Zbcaa^b`^^^cc_a[``eaccc`___^bed]cc``]`^badb]`bb`ga^bb]ec_a`a^a__^dbcfbcZc]aeb_d]h_b`_Z^cdec`_b^c\Zc_^^`bcab\`dec`^[]`d_a_^a]^adfd__ca^a^]^^^`db`f_`ad^][a`^__b^_d``^a``a`b`bad_`aacZbbf`b````dc]a_a^\^_^`ec]e_bc``e__^ed`^f\`]c]^cd`acbi]a_aaf\_`c`_\^_fbbf_]acbbe\dbf^d]`ic_^ade_fb\dc]b\^bda``a^^eda`abfb]`_`Y^a_`f`_`_`b`d_ccac_aac_fb\e\b`b^`^d_b`^`eeeba_ccg^^_^g`eb\b__ca^acc]^^_aa`eZcc`_a^\^_f_d_a``d__f`a^a]da]]^cc]d_cc`a\`b\Ybcaeeb[```^\ad`^]^`^]ab^aa]^gbcb^\a\`^]bcaad_db^a^`bad^dde]cb^ba_a`a``cc`f]Yd^a_cb[`ceaad`e^__`cbYf_e_a`caab]a`cca`e`ad`cd`_^eb`a_^fcd_b`d`c_ea_da_dba`c_c`a\d_aab]c`abfca[\_`][Zce_b]ai^bf_bb`eafd_caa_b`d]^\bcd[`b_]^[bYfg``_^_bad_^`da``bac__\]c``^abbd[^bcb`b\_`a_bb`d_\ag^h`^d_aa_^caa^\\__b_`bbY][_ebbcaaddeeZdc]`\]_b_f`d[bccd\\]`gac_b^c^e]dbea_]a^b_aeec]ba`c^`^[b`gca_]]_d^cce\_a^^a]bbaa`^c]^gV[a]\`caad`b`]`b`d\`ba^aa_]d`c``db^``]fYfgbdaa^b[_accc``_[`a`]f_]\]d^`[f`^_`_\Z`dbbaa]`ed_b_a`[eeeacdha_]`^a`d``cbd`ef`eaf`^b]_^[ecd_f\`]`b]a^\d__a`dbcc^_b`_c`a_ad]`c`c_^ba\__aaaacZ\\ea_a]ica``d^bdb_d[b^^ed_Z`ba^````[^bdaeea_^\ab\`abbeb]cab^ac\`^^aY__ed`b]\cb\gdZb`dbb^bZa]^b_ac]e``]cd``a\a_a__^b_b\_d^__c`Zd\d^c`\bacb``ad`a]^`fZdbd_bbd^_a^da`a^b_ceb`e_]ebcda`ea_`ac_d]cabcc_hb__^b_a_acbbg^b]^b_ab`_a__\_bbab]^abbjbba_c^`^c``cbh`b_`ad]_^`[b`^b\^af[^_ea``_acbba^c]Zbd^^^ab^`ch_^_bf```^c\_e_gb_e_a[_b`a`fa`aa]bcb`b]cd^a]dd_b`a\Zc_deeb]c_]``b_\`ZccdYbacaa^__cdd\[abb`b_ca`a`c`f`h]e``^aa_ac`ba]`ab_feac``^^b`^e\aab^]\cf__^gd``d`fc^a^\g^c`__``c`^]^add__[`\_[`ef]^d^d`\[aad^d]aeaacaab`_^d`a_b_`acg_adebaac__`[^deb]__a_a][a]b^^`c_eac`^dgac`]bd`_acabbZ]]`^^e_^\``i]a_ec_``f`cbf[_cad\__`ca`acaa]__^\]``fabfd`aaefa]_^_b^`ea^b^d___c`]``[b``^^ca^aa`c__c`b`Zca_\[`\_Xfa`\\b[d]b_Z_a^d`_b_c`^ccdcc^`cb^Z]d``ca`]^Z_[ag^\[aa`dc`^_Zb]X]_eacb^a`_dfd`d_b]b_`ac`ccb_[abda`dcgcbd__b_cec\^bf]aaba]]^e]acdc^^^b_`a\[^abc`b\_e`d_b`bad`\`]_e`[g]`^\]a_bc_a\_ebc_^cd`^_cd_e_bc[`]eed\fd`b]]_edXbdbXc_]`^f^eaaab_`^`a_b_aef`^^_be^dcZc]cdf]ce`b]_b\]b`d[bfaX__`d`]cb]_^]]dcab_^a`d_c`^ccb\bb\aa^f_a]baadfbfaa`_hcb_dca^dc^a`]Zbe]dde_afb`\^d`\b`d`[acb]bd_\_dd``]k^_^]``b`ab_b]^``d^abafa`c`^^`accYbbdbb^^_bd`^`e]a`c`gbcc`da`_b__c__[_Zacc`__i```cf___cib_d`cacffha^eeaa[]]c^eabaeb]baaaeb`b_a^_`]a\a`_^d`^c_bbc`^c```_`a_^cceaab^accZ_\`]gb`]^bcc`_a]`^e_\``^]dabbcY_]e^^_abbd__bb]__\jbd`ce``\cb]b]gcadfbbc_bbb`c`a`a`b]f[_cZ_f^_bcb_df\b]]__^a^e_a]```^a^adgc`_be`___c`c`a`^_]b`aa_bbb^_b]`a\a]bcb_abba_\b\^aa\cd`_dd_^c`aa]```_aa`ae[```b`_c^c`agccb^fb`[_ac^ad`acca`c^d_`abea__afad]ba^agae`_c_c__`]a``d_Xfa`_^^a`eZ``]^_d_ca]g``a`_f_]]\_eebb_a^aa^a[]df_de\bb_db_cad`_`dc`ba_bc``c]bc`de`c`ba`bc_a`][bd\bac`b`egd_a`c_\_c]e^^`b___`Z^`eb]Z_aadaZg_`_adc\\`_\b\^daZ]_````^a``d]c_]\_bf[b_`bY`fb]`b^Yea^ac]`hd^aZd_a`\a^`ka_bb_dedbYdcac`cbeacdcc_a^dab]b_`\__adcb\_b`^aa]_^[Zbd^^b]\b]^bcd]Zc__abbda[`^c`abb``fZea`b`^`a`c``d`b`aefb_fb`^_a^a[ac`e\dbf^`aa]b`^]^`_b^bb`c`a^Z`^_^]b^a^bdfbfa_`fb``g^`a]b`ba`]`]`ada\]^^__bb^[\c`ecba^d^h``c_ffaa`_^Za`b\^]^ga^dff_dc_dgb_b^dfcd]da_]`^bac^\^_afbd``]\`fa`ba_\b`b^dc]b`g^a`a\bf]_[d`_`cc_^f_e]`ebZd__`Z][`baaac]__`_\__d_bb_a[^`\`\ca^f[a__dba_ab^]ceacgbae]a]dgfa_^_dcc_ccXcd\d`__a_[`_`a]bab_\^_f[`\cc]^a^c_b__b^a\db]^caa__^]d]b^d]c[`f`cd_]`___Z`da_`_a_f]]e^h`^Zg^acdabaac__a`^b_c^]^daa^`jaad`a_a_ae^caa_c]_d\fb^`db``ab[__a^a_`ce`d`__``a^^[\Yae_a_^Za\_babe`aicc_b]^^^d^a^_`^dabd[d^j_`_c`]abecb\b`f^]f^ga_cbbadgdeb`_babX`bc\]__`h_`c]cbc]ccab`^[Ya]b^dXdafaaai`e`[d^d^aad`ebc^`[Zbadba`cbe_\a_d^aY`a`^`b]j[_f_dcZ`aaababc\^f]^d__a\ba__`^^d``]a`_a]`[ab``Zb_]_af`bbbfd^_ccc_acdca_]b`^Zcc__aa[^aX^_`ac\aaceWcaaaacca^]^^]_Zfb___dc`ca`e_b`bWb]^d_Za_e__^ec_]___bb_`\a_Zaac`\b]adbe]^eaf_ab_`]a`e[`^_bY_a`_c_`_aca\^`^__]^ca]_gf^d\[`a^ab_]a^_d^a_`]\bdcab\^fefcecb]`Ra]_a_jbbbcb`_]]^`daea``^_^bbd^Zdd]^a`_b`ccea`e\[]`ba`dalcc\_`]^]dd``_`^^bc_a^]ac_b^_]^^e`b[]e__``_gfacca_b``b`bd[_aa_`b^]]_```^`c^ff`_dcbdbcZcb^`bcb\``_c_b`a[b``b_]cbac^aa`c^be^d`]bbad]`a_d^]a^\e[eb``__b_]a^]_c^]a^`a^abec_b]^da]_ecc]^aa_abbd]``ac]caa`]g``\^`\a`c^]d`^aaa_`b]c`d`cXea^d^ddbe^`f`]__c`]^_aa_bc`_`_d_cZc\ac_^a``^`ae^c^a`agdab``d^`b]jj_cbd_``baa`amaab^dcdc^`ebX\cibc\_c_`e^_dadfed_\^_g`]`^bfbc`_hcab`ac^ba`b`bca^g]a`cac`bbcabaf_ec`ffccbaa^a_`cd\`hf_`a_a]`dbhbag]bda\`fb^_b[afb`Zd_db]a_`cbcfd``gb_`\]`ccc``ab`e_adbaab_`^c^]]^b[e^d`]aabc``][_]db[_^c`acb^_`_bc`b^\__`abb[^]`b`_\ab``c^a_^^aaa___`cZ]bcjbY^``gda`_a_aa^\c]ag_a\`\c__``a]__a]a`^_g^bba_b_ea`c^d`d\`^ddd[__`aad^e__`]^_adg__`]abe`_`\`c_^`ca_c]]^a^a_b_^]_b_`]acb_bba_]a^_`cabac^\g``b`\bacea^c`[g`_e`b_hcdf[ad`edd_fedb`ea_Ybe]^d``cad[^b`ace_``\fccbaaad`__ac`\_]accc_aa]efa^^bf``e`]^_e]]`b`df`baaac`c^^d`b_c_`]ad_e^\dc___aa_Zfabe`a`ae__cf`e`bbbc``]bc``^ced_e``fbf_h^]__ae^aa`\dcdc]ac`ca^_bk`a___ad_ba\a^c]d^_b]f^g`ea_`c__a_\\`_]f^_]bd^caaWaf_cb_d^a`bb`ec``[`\^fa_^fde_abe]`c`^b^_bi^^ce___^bc`febgaXdbb[bgcafc``cb]ab`\dc`e_]d^^`]a_a_\c`i^^gae]agfba^]aac^ca`ca]a\^gdd_]^^d_b``_f_gb^d_]^`_a_[e]`d_[[Za`b_`da`^a^_`a][]ceg`^\_]cca]a_adac_```]ba^c]dbb__caa[g^cc_`^_a^dY_`^a_]bd``_b]a]_^ed__cab^`^ba_aZd`hh]bcd]c`fY^b`jaa[ca[acd_b]f`__`da^`bcg`_`c`e`bb`d]c\dc`__aa__]aae^_Y__\ba``d^a_b_e_]^b\e_`_^e^b_]``aa_`cdc]\``_a]b^a]`_b_`df^c^\`_`bbb`^d`fbah`Zecad`^fgd_cacdfa^`^_a]``ac`anZ^^_^\a_i_hbZ`]gZ^a]cb`^d^`b^[_eb^c`]]`]]db^bdb[__e^^bba]bcd^d_^a`c`[b]b^[_cdeb``_^b`ec\`abada^`aZeb``f^edbba`_bfc`___\`ad`a\bbdc_`d^cb]d__a^^ccg_e`c^_bb`^`^dc^]]Y`cb`c_]h``]cb``c\h^a_aba^da_]`eef^ccb___aeca`f\^^ba`bbbc_dec_]^ae^]_\_a__]`cg^acc__cZ__c^b`cb\_e^^`b_afeb_`accb^a]``]]_a`_dd`h\__^_b__cc`[f^d_`bi`]d``cf^c]b^]dgb]`_Zc__d`dbb_cZ]baa]kf]_`_]`dcf`]ccb_dbbcc`gabb]bbae^a__^gd\[\hdcaddc`__g]d_`baa_]`]c\cd_`^\d``b`caab_bf`_ab_\e`a^h`^baddaf__^`\af^d_dab^]fb``_be_c\a_eb```a__bcc`eb]b]e]^g]f^]\cdab^cZY`b\_bhcac`\_e]c[__]aedccaccbbcbae]e`bad]c`_aabbdbe\^e^c`a_f```ec[ac_a_aba[b`cbc[__`^ic_^_aabcb```caba`f``_Ze_`__b^ced]`affhfbc^c^`Y`fa`ddbbcba_f^`bbc_c[bacca_]^`[^b__Y`_cdfd`_f^`bf`_bacbfb\ba_da`ade___f^`a`_bc^e]edee]aab^]__a`afeaa]f^_cc[b`c^^dcd^_h``bfef`_daad^`b_^]aeab^fbedbke``^``]`ad_afac^aed]`eb___f]b`_a^bc]aa[^eb`abf`]__cf`_d_dda_a`^]c]acbaf^\_``__dd`bbbea_dd`fb`^`abba^^`ba_^c`acfa^_e`acbed_b`ad_cc^`ba]c^Za\b`abbb`ca`]^^b``_b^d^^_dda]`_ab__^bb`\\_]^^^`^b`d^d^ad`Zaggaca`c_a`bbba_\`^]`_c_\]a[__ca_Z^edb_c]a_`^`\^\cbc]dadac\^`_\[`]^ac``e_i^d`__\bba^eeb_]`debaYab`]`^_b\d__ZaeYca`Y\d`bac^e_ca`cc^ce\aa^c`h\_^^da`^ada^dd_^`aeb_bebe\a``^g^_]_]f]_[\`\bb]jc_ai`de]`acbc^ac`]^`da``]a`b`dbb_\de^[c_^b`bc^```a^a^aa_[b`^\eb`_^]acdd`f`\`cd^^a]aabaabb]``]\b_``]aadaf]]]de__d_d_d``\`_b^`bbb`\ab_\ba`d\fa\\]_b^b]echbcb_^]eh^c`f^_cd_c\dfad`^_]a]``cd__```b``a^agbdedgZ]dffib`achaeb^f`bbb]ba_`e_badfaakd`b`]ach_d`_cb_a``_]da`_aa_a`ba`ac`a```_a`^c`]__`]__]b``f`^b^__cd\aacbe`hf^`c`^_e__ebc`fabcb^d\^d[_ebc]dbc`^abeb_c^db^bd\aca^ca`acb`````b`\c^d`c`ab_babb_ac^a`_```f^`a`a_cbd]]_d`\]`_ag]a_bab_`_``_ga_bcd]```ba`dda^\id^_]_hc^c]^fbda]__]f__cca]ab_cc_a_dbg`a^ccada^bba`cag``_b``c_abedec`[da_bdac[dddf_c_eb[be^[ac`caXeeaafa`]`bbd_afb`cfb`]ecadba_aa`__aaa^_^__^ahd]_bd`_aa]d]^``\_a_\^_`_]^`^_`f^_]ccccbc]aba`eac^c^`bc`c]^a`_b^d`[ai__ae[\da\_cc]_g_^_ccdc`bee]`^b`g`_a`^`i`^eabed[[`abb`cgba\\]`a]]b^f_fc\d_`]c]a`_deadad`aaeb_fg]^[__`cd]ba__``f^`g_a]Y`c`^a]d^f`]b`chdc]aac``eaad`aba\`cbgaca`[]acaaaba`_`abb\kfbjad]_``c^bdb]f]]c``beY`ccd]bb```^d_hbcc]d`bf^_ccb\_c\b_c_`_```_e^baaa_`ad`ca]b`b^aaZ^_a_^[c```c]_\bad\][cc`_`\fZbaa`\``^^^e^bbdcf_bbd_a^bbi`ac^d_f^^bb_bcdk_^b`]baac_^a_a[`a`c[g^_]^bdb`f_]Y^ba_fcZaaacd_cba^]_`]\bbf^]^_bad_\a^[^a^_ba^a^e_bd^^f_`\b`]^_bc]`b^\d`Ya_f`a]_dbg^__ad`_eaa`^bcaf_^cWcfaabebbaa_b]]c]^\`ad\^eae]db^e`___addf`d`d`^bgf[b]\`a`^]_\`c_aaabb_e]aab``a_b`d`^f]accebb`\\b`de`b]\]^add^b_bcdb___[e[c\```g]_cdd]]b_^_bc[^bccZc__a`ba_a`ahba`cda`]a_b`_a[acd[bcd__^aace`dd`aa^_ca_b_Z[a]c_`ae^d^^[Y`eeecdb`[][a`^_ea``ae`_`^c`e^_e^^^^`e^^f^a]g`fbZb`]b^affb]cgc`]bd]`_df]`a_ad`d`__a]`\^da_b^ae`ch^[c]ba[``aa_cba^[a[b\\[c[aceaaaca_eb`c\cah`fc_cccaacZ^b[f]ea\c_cfb^a``^^caa^_c^b]g^`___b[c\^_da`_`ac`aaaZccajda`b_add`a`b[bd``e]\d`_`aa^`\fbcabea^a[b^ef`\_cag__\_cac`ba_bdbfeaa`abc`_bb]fa\cecd^`Yb_cbe^bcae_]haba[`^adZbc_dda`ba`b`cabcacZ__dabc``Zc_^b^acded`bf]\ad`bccaadbal^d_aaa]c\a`ab_^`cbahb^b\a`Zaa]a`a^]^]be^c^^bZ^\faa_ef`ee`g__`bcbd]ef`bZd\_\f_ca]_c_g`cc`^X`cc]c`ce]ad_acebbcdaab`acdZb[`aba`fcaec[abbac`d`f^c_ae\[a_f_d`aca^`f`_e]]ec`^b]dc^aciac`c`baa^d]afccc`b_]f\^cc\`_]ebd[cdc\_b`_``aa`_Zd^_\a^a`_dedbc_cc^\^c_daaeabaca^b^a`d`bb_edac]a\f_`^{zx|x}~z}~||{~}{yz~y}z}vv}}~{~}zw{~u|~|~vx{~}}y}|x{wz}||}}}|pz~}~|}x}~|{~|~v~v~|x{y|~u}|}}{}z~{y}zy|x~|~vzzz~{||~vxwxwy{tz}vuxv}||x}}}~}|}~~}}y~y{yz}}}r{w|y~{~zz|y~}z||{|z~~{y}y|{||y}vy|}x}~zs|z|}{}|xx|~~zy~y}}|}{y|}|z~y|~{{~|yzy|{yx|~}}y~z}}}}}{||~z}{~x||{{~}zy|}|{{}~}~w}|~~}~|vz{~|}|}w{~{{~}yw~|zy{xzz}|~||zy|~~}}x|~|z~y}{v|}y|x}zyw}~{}z|~y}{{~{}z{~|{z}}z|~|~u~}|~}~~}z|{z|~yw{{~|{}yx{~~}{|}~~~}|{}|~z||zv{}~~~y|{~{z}||yx}|{{vyy~~~~{~}z~}~|~{}{z{~|}vvyz{tvyz}}~z|{yy|y}{{zz|~}}z}|x}zwsxx|{}~x|}~y}}~{~z{}x~}}z}q{{|v{|s{{zy}}us}yy{y{}yyy|}~||{~|{}{z~{wx|||xy{}z}|{y|~{|~}|{yy~}}|~x{xwyuzz~}{~xx|~|}|~x~}~{{yvt~|{}}{}xy|w~y{w||zx}~~{x~~z{}|}z|y{{~~{}zvx{}z~y}w}z}u|{~yzuyyy}|{w||vxw~}vwy|r|pxz~vvu~{}~}}x~y|z~||{}v|~~vz{~z{x|p}v|u|~{{{x}|z}t|xyu}~w}y~y}y}w|}~~|{~|zzxpwxz}zw||xw~x|~}x~}{{}{{{w}|~}}vzwz|v}x{|{}~~{{|yzv~~||z{{|zy}v~|y~{~|~s~}r|}y{~z|v}}u|~v~v~z~|y~~zyy~v{xz}~x~{}~{z~~}}zuz{{~{~zzxzv}~}|{}y|y|v{}{|x|~vxy||y}||}~||~}}~{}~}|x{|~{|v}zx{~{||}}}}~z||}yyz|z|~}~{y{{{||v}y}}|{~}{}~}}}}}|}}~{}}|}~~~~}}zy}}|||}}y}|~~{}y}}||~~z}{~~|~|x~y}|~z~{}~}w{~}y~}||{|~{~}z}~v|~z~~~}{{~~~~~yy{y}~~zzx~}}~z|}{z{}x~zx~x{y}}{~|{}~}~~|x~}x}|~z}xzz}{}}~}y}{{ww~|}{~}}{|~{~~z~}z~~~~~}~z~{}y||~{y}{}y{w|~||x{~||~}{}}s{~}{{z||}y{}{}~{~}z~~t||z|z~{~{|z|x~~~y}||z~}y~}x||{u{y{}}|~{~{~{}}w{~~y}y|||}~}~}z{||}y}~}~~~|~{~~{}v}~y~y{zz}~{~~}|}y|~|~~}y~~}yz~~{~|~x|{|}{z~~zy|}|~z~{}}}{|y|}|z|~|yw~|{w~}}~{~yy{x|}z}~z~{}||x}}|~|}}yy~}|~}}z~z}~}y}x~~~}~{yy|{~z{|}{{|}x|{|}w}}~|{}{||}|z{}s~}}~z{{x{}xv{}|{}yz}z{~zy{~|t}|zy}}}}}~}}}z}{y}}~~||t|{{}yyw|v|~~zxyy{}}~{{y|z|x}}~xz}{~}~{~~z|{y}}~~|z~~~y|}z|{{~~}{|{}{}~||{|~}zx}|z}{y~zzz||z~|}~|~~{~|w~{|}~wy||~x~~}|~w|~{}z}|~~|~}}|{~}}}}w}}|}y|w~}yv}z}~z~z~}y{|}{~~|~|{z|~}||}z}}{}}}}{}~x|~{}{z~|}}{~||~~{|v~y}{~{z}{u{x~|y|}z~}wwy}}~w|~~x}~x{}{{}~{}s~~rx{||z}~|{{w}zv~|~y|xwy~z}z{~~}}w~x~}z}~~zx}x~{~z~{~zw{||x||w}~x||~}~~~v~{}w~|~{zz{{}z~~}yw~yyzz{|~|~{~|wx~x~~||r||y~w{y|y|}v}}|}}{z}wzxzx}{v~zy~x~{zz{~z}y{~|y~v{~zzz}}{~}y{~~y}yy||}zx|~{~}}{~}r}~{~||}}{~xy~}~{y{|~{v}~{{z~}~}|~z~~}||~{}|v{w{y|}y~||{}x~~{y~~}~}o|~~{~{}|{~u}}y}~y{}{|y|zw}z~~{wux|v}||wx{}|{}~{zv~~xz{yy}}s~|{}|{~~}z||}zz~|v}}}~}~x|~~|{y{yv}{xyyr{yxz~~zz~{y}{|~~}zz}|~y}{}zy||x|{z}{|}}{yzyw~|}z~~|}{{}{|}uz{|~z}|}{tvy}}zyyyyv}y|z}|}~~y|xx}{zuz{}|~{~}v~xx}{~{|{xt}~{|{~wy~|~yx|x{|z||zz}}~z}}~||xxyyz~{wyx}|wyy}z|y{xuuz}}~}w}}x{}{~~||y{|}~}}zy{zyx}{|xz~~x}~ww}}||{~}~~z{~y~y}{|~}yz{wx}zxz~{{z||}y{|}|~}|~|~~~x}y{r{{~~z|{~|}{}~}y}y{}~z{~}|~|~{w}~y}|z~}}x{r}~|y}}w}}~|{}}~~z~}~y}|~w}~~}}|zww~x~}~~}|}}y}{~~|~{~vz||}}||~|~~w~}|z{~}v}}~}x{~~{z~~~zz}}~~~zv~}~}}||~||z}y}{|~~|}yy|}z~}xz{wzyz|}{}|~z{x|}y}z|vv}{yyqz|}~w|{}{~w~{}wt|u~{{{v}~{|vx~vwxy}mxy}~yw}|x{z{t{yxu}m{t|{~}~z|{y}}x|yyz~y~zw|{|{{~{y~yyx{~~}~~|wv~|l}{}~}zyz~|}|u~{~~~||x}v|~xuxu{{|}yy{}{zz~|{|}}}y{w~~~{}}y~v}}xxw~|y{{z|{z{}|~{x|}zuw}z~{}y|uz}||vx{|~~zz{}}z}~}~y{}~xu|}}~{yx~~|~~{w{~}z{{v{}t{}|t}x~{~|zxy~{~x~w|{~}y~x}}{|{|zyuyy}~~zy|~~yv|~~~{v}|}|}}~}{~{{~}||}{}}}~~yt~}{u~z|}}|x~|~~y|x~w~yz}z{{x{~~}{~wx{{}|z}{{~~~|w}~wz~}{}}|{zz|}|{}{~}~z|~y~|~~~}y}yx|y}~{x{x}~~y}t~||y|v{}{}|}|y}~~~~|w{}yux{}{yz~z|~~{x||~x|{{}}~}|}{|~|}z{x~y{~|z{}v|~{y~}|~|}zv~~|~{{|~}}twy}{||y}~~x}~|z|xyy|}}{|y}z~}~x}|}{w{y}~x~{~}|~v{||}~z}{zw}w~{z{}yvv~y}{|y|zu|~w}yww~{}{|}}y|{|yz{|~|~xv~{{y~xzyv|{}~}}x|}~~}|||~}||~|{|}~vz|~||y~|}}}}|z|~x}|zw~{z}|t{z}|{~~{~|}~|{|{u~{|{~{|~~w~}z}~~z{y{{|~|}}{~w{}~{y}y|x~|vxy~|~zv|~y}{x|x~{z~{x}{||}}|~y~{z{~{~~z}}~||~{{|}{{}}}~z~zx}y~}{|z~|{yw{~{~y{~|~~y~~|y|~}|y~x}~~zy{x|~}|z}{yw|z~zx}|{|z}||~}|~zw~{|~|}w{}}{{}{{{}~{|{~~~||~{|~~x~}~|}z~{|||{{{{v|||y}~||{~~{}}z~w}~}~~{}x}~~|}}||y~~xzxz{~zy{wy~}~|||v|}}||~|}y}}|}}{}{xy~~y|}{|x{}w}}{{{~|~~||{x~{}|||x{z~}~|~~~}~~~}}~~|~}~wz}||~z~~~{||~~z~ws|}u{}x~~{|z~zy~{}}x}~zw|z}}yx~~y~}w{~y}zz||}|z~{~~}{~~~|||{~vv|{~vxzz}z}yy~|x}x}{~|{|}{~~|xv}|w}}z}~|{~}}{~|z~|~|~zzy}zy|z~z~}v|z{x}~}~}zz~{zx~}{w}yxz{}yv}y|~{|z~~}x}|x~w~z~~y}}y~}}{w}wzz~y~|~{}{{w|x|z}wz}|w~|{||{}}u~~~zzz}|z~|{yyv}|~}~|}|}zz}~}||}{}|yzx~}~z{y|w}z~{|{|{||{~{~yz~{~z}~}}||{{}~~~|x~}~|}~z}{|~}|{|{z}}x|||zz~||}}~zy||}}|~z~~~z}|}{}{|z}|}y|p||z}{vz~~|x~}{~{|z~}}|~}zxr|{~z|{|z}{wv{twyx}~zxx}|~v}y|}}~||}~v}t{~xw~}~{|}zy~z~tx~q}}rzx~x~tzx|y~}|~~|{z~~wv|}}||t|}~v~nx}~zy}z{|{y}xynxzzyz{}x|}|~ywz{x}~{~yx~vwv}zy{|ut|~zy~|~~}zz||w{{x{z||~v|{z|}|}xwz~~y~|z{zztw{z~}{r}~}w~}|z~}y~~{|~}yx|~z{|v~|~~z|~}}w~||z{{||z|}}~z{xw}~{x~~}~}}|z}{|~zz}~|x{}{yz|{}q~}x}|u{{y~u}z}~}}y{~z{}zzx}~y~{~yv~y~r}|{~|~~}xxzx|z|~z~x}~||{wz|{}~|~ywy~y{yy}||y{{x|~}}zw}{}~{~zxu|||{|{{y}~~~~~z|z{z}y~{||~{~}v{~|z~ytw~~wz~{|xy{xy{u|y|w~|}y~|}}~}}v}z{|{{}|yw}|~}z||{y~z~|~y|~~~~~}|u|}}}~~w}}~~|}~z}y}|}}}~{~|~y|{|}}zw{|{~{{}zzx~~wx~~~|{}||~|~z~z{yu||u{~{|}{w{{}|~wx||}|{~}~}}w|{~zzz}~w{}wy|~v{~y{~~|wvzu}z|{z{v||||}|~{~}|{}~|u{x}y~~~~|{uyxzy|}{~y~z~|x}s~{|~~xy}y}}{~|zy}}~|wsx{zy~x~|z|{}{w~vy{xx{~uw~||xzv|wy|z||~yy|}{v}}t~xxz}|{||{{}yw{{z{~}{{|v|~}}{vw{wxwz|xw~w}}}}wv|z|z{yyz{x~}|yz}{w~}}w|~q~}zv~{}y|{{z{wz~}}x|}|}z{|}y|~||~{{|uvz{}~~|}{{y}|xy}{~{z}~~vv~zwxz}~}~|{{}w~{|~yy~|}yv~z}~~~{|x{}~~}z|w|y}}}}{|yx~{xv}}~{~}~|}z~}xz~su~x{|{}v|~}~x~y|{~~{~|x}}{~}y{xy||~}||z~x~~z{zx~~}}}~~{v~~~}~~~|}~}}~}}|yy~{~}~|||~{|}{~{}}}{y~|~z}x|z~z}}}}~~~||~~{yy{|}z|y}t|}|}~zz|}~~~}}w}}}|}w~~zz{yy|z~zw~~{{}||{x|~||tu|wxy{u~z~{|z|~x{}yy|~}}{y|}}{{~~xy{v|x{z{~yv{{zvy{x|u}z~~{}|~}|~~vzx~}w}~v}y{~}}v~}{x||~|~}~zzzxy}}z}}w~{~~~{{}~~~|}v{|}|}~{xszxzyx~}z{}}~{y~}y{z}}vy}|y{z}w}t~~}}}~uz}}zw|{|x}~~~}~~}{{|}y~v~~~}|||~}z~}{~}yz~|yxx{tw~|~w~~~{~~~|}xz~}}~}z~|~{uz~xyz}~{}|}|{{u{z~{}~}z~{}|||{}{{~~z|z}}t|yyz~z~{}z~~x~|wz|~zytyu~}~}{~}~{{|~|{tv}~}||{y}~yz|xzz}{z{~~x~z{~}~|yz{{y}vxwtwx~|{{{z|{||tzw~|yy|}t{|}}}w{|ty{s{{}}y~v}u~{t{~y|~uw~|~z|tv~ty|{{}zwv||yvzz}u{{~zz||yr}wszz{~~{z~}x~~v{~yq}~t|~~~}}}y}{z}|}~y~}zw}{x||}}|{|zwvzx|~{{~}v{~}{~~~}}~v~}~~{|{}z~x{~|zxv|z~x~~z|z||z}yw|~y}vzyw~x{~~z|x~~~xz{y|s{}~z}}y|zy~~|y~z~z|~w{y||}yz}yy}y|~y~zq~|z|~w~z}}~{~{z}|}{{}{xz~|}|~}~yw|~~}~~||}v~y~~~vvz~}|v}{|||~~}{~z~~z}|}{y|}}{~{y|zx}u~x}|~zzz}|}}~~}~}y{|{~~|}|{}y|}||x|}y~}}y|x~v|~wxw{|yz|y}zx{}}|}}{z~{v{}|x~z~}{}}{~~~}|}|{|z~~|{y{zy}xzwz{{z}|{{zyz{|~z{~zzz~z|u}{}{}|{uy~y||~~}~~y~z~y~}}y{~yw{}{z}{~}}z~{z~~|{|yzw{}~|z~y~~~x}}~}|z}}~zw}~}}y{}~|~}{}|{}{z}{{||~zy}~z{{}~{y~|{yz}{}{{y||{~{z~z~{~|xy}}|}z}~{wz~|~|z{}szy}x|~z}~z{}}pyyvwws~}}}||z~{{z|z|||yu{~z~|vv}}}zz}~x~y{|{|z~}}{w}{s~uyy}}{|z~w}zu~~~||z~{~|{~u}}}{}z}z|||{}z~||zz~~|y|~~zy}||~|~|}~x~}}|z}u|~}~~x~}}~|}wz}y}~|{{~~}z}{~{|}z~}}z~}}|~}~}|y~|~|~|~|x~{|y}w}~~~~{~z}{zxz|~~w}yzw{qx~y}vy~{|~}y}|}|~||v~~t~z|u}x|x{{~{|~{{|y|vz{|wy~|~xz}|}|}~zv}{~v|{~z~w|{{zw~}}}}xzy|{{zzww}}~r{}|yy~~}szz~|y}|}v~z~u}z{{}xzxt~z|z{|y}y{~yzu~}~zy~}~|{z~|z{{|~~z~~~{~y|zy~~}~|y|}~|~~}~zx|}}{~|v~}~}}z~~z~}~{~}y{|}y{v{~{}{v{}}}x}zwzy{zy{~~|}v{}|z~}{~xu{}~x~z~{{~~v}}z~w~|{~{~}|{~wz~{~}zvz}x~~}vw~x~}{u~}{z}|z~}}|}{~~x}t{{|~{{{{v|{|ww}|z|zy~~~zz{x~~~x|~~~~|~z}v~|~x}}~|y{|{}{{|w|||~{}}zz{~~{z}x}z~|zv~}~~||~{~zw|{w|x~}~~|~w{{~~y||z}y{{z~xv}x~{{~xz}w{z||z|}}~}z{}||z~z|x~{y~||~yu~v|{zv~}{~|x|~z~|}|}|y~|}~{}z}}}v|{}zz|~}|z|u|||wy{~}|~yyx~}w~}w|z{|x}}}{zwz}~~~}||}zww~}{|{zx|yzwz}z~}|}y|}~ys}}z{}zxzz|{~}{zyrx|{~zq}|z}wszxx{t~}z|zz~}yx}~|{{y~|vqw~}}~{~y|ys|~rxyu|{v~{{|}}zzz~uzy}|xz~}|}m}yw~w~owl|u{z{{z~svu~~z|y~{}y~xzzvw~|}|x}~~|x{~~}}z|}yz~wvz|{w}|~zx}xywwz}wzz|}~|yzyv{x{{}w}x~~|y~}vvv}x~}~tu~s|~z}}p|~{|~}}}{z~v|~r{u|y~qxvyx~}x~|xz|vy~~~zyyzx|yz~~|xx||zuvyxz~~w~|z|{||zy|z{t}~}|z{y}x~zvvy}}}|~t~~}{~w{~~y}~z||{~}}~{yn~y~|}{}~w|~~~~}|~~|~}yz~~{{||~|{}~|zy{{~~xzz|~|{x~z~~~z}~u{}{{z~|}}xzyx}}~z|}z~~~}|{{~{~~v~{}{z}}||}xy}}}y}{{{~w~~|}|~|zx{~|zyy}~|||~u}~}{yzxz~y~~|~~yw{v~{z{z|uxz~y}z{w~y{||{|{t~|y|||xyt~~yr|~zy~~~~~u{{}}~y|}~wzwt}zz~~~w~||{||yyzzzs~}~wz}~|z~w}}y|}wx{z}zxxyz|yz~v}y}~~~xz~z}}~w|~zzz|~~x|z}}z~~~~y}{}~}{}||}~|~~~y}uzs~{~v~}}{~z~{z{{~~{}z}~|w}{w~~{x}|~y|~~~}~}{}y~}|{{{~}y|~}}zw{{~~x|}}~~yw}}z~|}}~~~~{{~||yzz}y|}~}}}}z}zy|~}|z{wz~~}|}{|}~}}|}~}}}t~~y~}||w}zy}{w}{zy~x}{w~}~y}|}y{|{{w}~}xz{vu|u}z{}~{{y{~x{}xv||}{}}zu}|~|z}||~~}}~z{z|zu~~|x~}z{|z~~{}{~{~~{~{z~~{x~~szzy}}}xw||~u}}z}~{|~|{z|y}xz}y}{{~w~~~z}}s}xz|zz~~}z|z~|{{~}}|yt~uz|}}yz~|wy|y~vx|z~y~~y~x~~yzxzx~}{|~~z~{~}z~~~~|~|~{zz{w~~}z~~|}v|~~~~}|uz}uz~~~~~|~zt~~|~||}|~|{s{}zv~~w~y~}}||w~v}~}|}}{}{}~w}||xz}~uw}~|x|{z|x~|}~}~|z}z~|~|z~yy|{z}}~}w~z}|w}}}}z}~~|x}x|}yzw~yyty}||}}}z|}~~|~x}}~~~~}x}v|wz}}uzx}}}|~zz}|w{|xy~~{|yst{}zz|{}~x~|xz|z||~x}yz|{{vz}{}sp{|}x~|||{z{w{zu{y}~x}}~}v~]x~|{u}x}~{}z}{~w|}zytty{~|{{ysuww||}{xz{~~wx|~yya{~~z|zy{x}}xy|~t~xx}x~}{zz~zy~}wtt}y}}|w}}}|||zx~}}x}zvy{}~~|y{uyzw~}|~yy||~~{}}~|u}~zy~{{}{|{}{{}w~~w|z~}~x}}zt}~{~|~~}~}{}|{z}y}yu~~|{yz}wz|x}w{}z}w}z{}|~}}}~|~|{}{~}|{~z}~}|y{{}}~{|s~~{~}||}z{~||syx{y}y}~}~z|{u}}y}y}~x~w|{|wy~}~{zxw}y}{{y{}{}}||~{~}v{|}w~|z{|~x||x{~|y{}}{v{zzwvw}~{}t{{z{|||z~~}z{~xxz~y{|y}y{}w~|}{{t{yx{{y}}}{}|u{z}|{}~yzx}zvx|w~vr~yzuvv}~~{|z{z}{}~xyxz|{}{~y~s}y||{}y}z|}}~|}~x~|z{x|||}}}y|{w}{zy}y}}~|y{}{|w~}|}|yz~~~w~{x}~}x{}~||wx|}{|~}||z|w|z~~||~|}wwy~yzzx}}z{}}~~{zyyz}~~{}~{}y}z~z~}y{~|z{{|z|{z|}}~z~~}v}{x|u}~~}zzzy|}xy}u|y|wv}{{~|vzy}yv}||{~~|yw{|}}{{|zxv}x~}|}}}~z~|z~}~u{y{~u}zxxw{}}xw~~~~t|~|~||{{~w|z|w~~yzx}}z~}{y}~z~z|~z{~{}}{}}z~||}}{{}zz{|{|zzzw~|~|x}|x{~||~}~vz|{|~~yyy|{}~|~}|||y|~~~|||y|~~}~{{|}||~z}{~~~x~|x}~x||y}~x||}y~z~||{~y~{}}|x{w||yx|xz~~|x{~zz|||x{||~zy}z{zy{||wz|}w|uw}~|xyv}~y}{q{{}~syzwzw}yzvwtzxyz}~|p~}z{~{qw|v~|yx~~}~y~xs{}~}}y|||vx}{|{uww|vw~y|{|{zz~~|uwz}x~|z~}{}v{ysz{|}|}s~xy|zy}{|r|xw~}xy~~yzzz~{yz|{yz{~}x||~}y~||~z~~~x~~~x}{{z~w}zw}}~|}|}vr|vyx{uz~z~y|www|~|{}y{|}{w~zz~}~~||zzz}~}~}}vz}{}~~{zs||y}}x|~~}xz{}{y}}|}}{|}~|~w{}~{{|u|~|{}{~y~z|tz{~{yy~w|}yzv~~|tx{sw}u~xzy~|zwvq~|z{~wyo}vzzxy{v}xy|yw|w}}grv{yy~}|vy}x||~}|vz|~z{|z|~|t|||}z{|{}{~x~~t|zr}|~{{|~~q}u~uz|w|u{~{|~}{~|~z|~w~~u}~~|}~}~v~{y}}}y~x{x|~|~~~}z}~~z|}~}~~z~}|~}}|{|}w~||}~z~zy~u~|z|{z~yyx|~v}|~{}}~{}}z}~~{|yu{t}w~|}~}{|}{}}~z~|y|~xyz~~~{~|{{|~zz}~}~~~|~{|~|zy~}|~~{~}y||z{~{|}y|}}~||}~}zzv~~~z}{~~v|ywz~y~|}}~y}w}{x~~w{yx{|}}~||~~}}zxz|}}ux}~{z||}u}xz~zt~|u{{|{|x~zw|y}{w~s}z~v{zz~z~|~~y}}y||y|~xz~{yv~|z}~yu{z{{}{|v{v~y}~z}}v~{|z~~||~{~|~|~~}}|~|xy{y~||zywz~z|{~y~}~x{~wz~||yz{}~~~||~|z~z}~~}||{~~}ww}|z~~~}~||x~}}}~}|vy{|~y|~{~~w~~vy|~}s}~w}||x|}zy{}z}yy~w~|}|w{t|~xx|~w}|{}vz|u}||~{zu~|{~|z{{}{~{}{zxw|~}{{x~|w~zx~|}}xz~x}|y}v}|~}v}u{z|{wy~~x|yz|~z||}{yy|~~|~|}rzvy~}}~y~~~|zv~|z}}|~~{w~~xyx~z||yz~y~|{||{{|{~{{~v~|w~}~}{{~~zw}x~~zwz|~}y~~}~}|~yyzz{|{x}{|}{~}~}{{|}~~~~z{z{x}~w{~~{||zy}vy|}|}~|}}}~}}|w{}}yyx}}|}|~|~xv{y{|~xz||}~{z|}ww{}v~}y}{u}~~wy~zt~|v{yx|x~|}}y{zy{||y{~}z}yvyu}~y~}~|v|}{}{|}~yv}~}}w{|}}{y~~|||~x~||y|{z|z}z~x}~~~}}}}z}{|~z~~~~|}}~~wz~~{~|x}~}{~|p~z}~}~}~~~{|x{}{{~}|}x~z{|zxv{|~yzw~}~y~xz~|~|~zw~z{{u}~{yy|zv||~||{~~}|~{}y}}}~}{w{{}|~|z}x~}|y{{}~}|~}y{yy|y|}|y|{~u}}yy{}|x}~g~}{|~|~}}w~|~}|}~z}~rw}z~}|x}z}}~{~}~|~|}{y}~{z~}x~z~~~wz~v~|{}{|~{~|}|~z~{}z{}{|u{}~~~yz~x~~ww|z||z}}~~zz|y}yxxu{{{~}|~|{|y}{zyzy}zy{~zz~yz}}}{~|z||~||}}~r}{xy~}~yx|{w~~|x||}~y}{{u|~z{{yxw{}~}}}|}~{x}{}y{|}~wz~~y}}~x{|~}|{tyy}||{}}~v~z}|z|}~v||}~~|w~tyw~}{{|}}z}v|~~|||~yz}z~~zw|~~|}}z~~}|w|~y}}{{z{~|{v}~~t}~}}~~||~~}}{~{|~~||{x}||yz~u|}~{}xx~~z}|ws{||z|||vz}~}|~y{~||y~{{|w~yy{{z||{~xwx~~~z{~}z|}~~zzy}||z~x}xzwy~{|z}~}}}{x~}|zzsyy}{}x}y~}x|w}u}~z}}z}~z~}yzx|{{|}vxyx~xy~zw{z|y|{}~z|~y||xz}~}~{x}zx}zuywx|~yz}y~zy}uv{|~~zz~z{{{|z~}|}v}w~|tv|z~}}{vx~x~}|y|{~{||}~w~{{}~|tv|}|}~~{~yw~y~|~~{~{}||~~{~|~yw|zzz}z||z}z|}|{}~|v}y}}zxv|wz}~}{xy|}}|~z{}~|}v~|{zvv~~xx|vz}x~||~t~wv~}|}yy|zz{zwy~{|}yzx{{z{~|wx}}|}{~~}z||x|{y{~|~zr|{||z|x|z}w~{{zwzx}{t|~|x~u~y}w{~z~|{~|z~{~vv|xvww|{{{zyz|}}{|{{}}y|w{{}yz~|u~z}}}vw|~z|}y~{xzz~{~~||z{~|y}x{{~}|r|w}}|{y{yz{}u}{|~~}{{{~{y}{||z}v{|y|s{}~yz~|}xy}~|}{}|}~|y}zxx}~|~~z}~}x||y~z}z||~{y}~}}~}~}~~s{|}}}|{||v~|}|~zz}|{}wv}~{{}}~}}x}w}}z~|}~zz~z|}ww|m}}|w~~~uv|{z||s{|sy}zu~~yz}{y{zu~~}v~}s|}{|{n|y|{||y{}{~~}yzz}y{vx}zq}z{~zyx}p|w}}|yxwwtusvvyyt{zwxsrw{zvowpzuxttrrshxrosuupypyrxnpjwzzv{zy}xpwvxlw{qvp|_jyxxwk|xvtzz{prnjsV}txrqxsdaxsumuwmq{d{{|yypuwu`lxqQrtrqvnvnvworz]f{uzy{twwxvbx}{wytcuo{yivu{mtfqbxsx`vquwuspuqs|c|ztwjispuenttxxkppuurprqyxxvurjo~qsrtttlyqs|tpqimusvqukiwwzRzvtkn{prsvuuwt~suyhy}{wju}pzvsqksyQxt`qytyu}pxrzvo{rqkst}{~vpwtswy{qs{qnyzw{yqrsvpydy}_qbfyvoutzyyvtswzzn}kwpywrqozg{wqqt~zz}~{{{|}}~|y~{|z~|vyy|{~|y}~}~{zx~zv}~{~}~{~{~}y}yu~xz~}{|||~{z{{yz}|}r}zu|}||}~|~{~~}|t|~z}~}x}z}z|~}~{zz|}{y{s}~~}sz|{~{u|z{{xzy~wz||}|yu|}|}}}{{}w~|z~~z|~|{x~z~zz}{|~z{}{}}~z~}~}}}{|~~}z}}|||}u|~|~}|{~|{xz}~|}~}}z}|~~}{}~yy{}~v~uzxwz}|{v}~}{z}wz{{|~~|zzz{wyz}{~~x{}{}|}~~v~}u~{}xw}{z}{}|y~}~~{~uzr}~{~{{v|u~{}{{y}vz~~{zw{~{~}y|{{}}zz||z~~~y}|v}w}|wy{~||||~{yxu|z~}~z}{~z~|u{}~}wy{|vy{zu{yx}w~~~qz~v|~~wxrz|||z{v}v{}~v}~|z|z}~|~yzy}y~~}{~|{|x~wu{yzx}{zv~|~zx}}}ty|~}|z{{}zyyw{{}||}~yxv}y{u}||~z}}x{z}~||z|}z~}~~}}yxzy|||zzz~{{{}z~yzyz}}~}|y}y~y~~~{x~|~{~}zw}y{uyx}}~|svzz|v~~~{}}~|z~~~|zxv~~}~}x{}u}~x~y~v||z||{{x}}~~z|{~yxy~}}{|}z~||}|~x|{~~}{~v|v|zztvuz~w~zyy~y~~~{~}|q}~x|~~}||}~y{|y~{|}}z|{~~}~|z~|{}|~z~}||~|~{z||}~~{{{~|{}~{x}|~{{~~}|wy~}yzzx|~}~~x}}|~|~}}y}z~}z~z~|zz|yzx~{}z~~~z|x~}|~|y~|{|}}yy|~|y~v}}y~yu~z}wu}~y}||{}~{|~{w|||{|}z}{}}~z~wuv}~o|rtzwq~{|{{{~}|y|}z}||~}z~~}|~}|xzu~~|~|}||}~w~~~sz}}|}v{}|yxz~}|{yxt{x~}w|~z~|}}y~y}yzw~~}y|~|}~~w|w~}zz||yz{|}~{}}}x~{v~}{~||x|ywx~yz}~~~|txv~z}~{t~~~|||~|}{|}~~|{{}}}~}|}~~~|~}~}~{|{{~|{}|{||~||}}}||{~~~~|{~y}z}}|y{}~~z}~}~~~~w|~~y~{~yz{~~~|~z~|{~{~z|~}||~~w{|~||y~z|{}}}x}{{y{{}}~{}|}~}z|}~~{~}}|}}~zx}~y||}|}~~{{z{v~|~}|}~z||||~|~}}wx{}~x{|x{{}~{}{v}}~yw}z{}yw||||{{zvxw}{{{|xy}|~~|~}~}w~|nu~|}|s}z}z{}~|v{~wywz}~p{}}u}v~}xsxz~s~~{v~{|}y}z}|yw|{~}v|z~z~z}|}}{~~{~w{wz}{|w~~}}|{}~yz{|~x}}~~w~{|}}}~z~~~~}~~}y{y}}~x{}}y{~||~|}z|}}}uy}z|~{}~z{|z|zx}{{z|{~x}|zz{|z|}~~{~ywz|~w~|y~}|{~}z~}yz~|x}x~z|zz~{q|zs}y|}}{z|}y|w}}yv|y{~~|{x~|}}~|||{~~zyx|u~x~}~|~}||vz}~y{|}}~zu{||w~~~}x}~ww|~~x~s{~y|~}u{{}v{~}~}}yvz|~}z}}{|~}w|~u~~yy~~w~|{|vz}|~~x~{|~~}~}zywywu~xw}||y~~{~x~||||~~}t~|}|suw~}}|~z}~v~~~v}wz~x}{w}}{x}r|yz}~|{}|}}{wx|x|}q|}~|~}~~z~{{}{}|x}}}x|~|{|{z{}}~x}x~w}z~{~y~xx~}}{zwz~~}}|x}yw~~yzs|~||}~{xy|vy|}rx|~z~t|}y~xz|{~~}{~}||z~z{~}}u~x|~|t~|xv~y|}~~}}z|x|{{~|~~w~|}~}}|}w~}}~{z{}}~~|}||~}wyv}~v}~}~{z}~{uz{}xx~z|{|}|zz}|}{}~{|z}y{||{z}r~~|xy~}~{~s~qy{|}||w{zyv|y}}}y{}}{|yy~~{{w~{{}t~{|y~||{~}~xzt~w{|~}{wsy|z{~}z|{{|uy{y}~~~~~~z~~}z}||{wwwvwxx|~}z~}|{~~|~y}~}y~|{x|yz~{|z{|}}|w}cxq|}}|y}y|{kz}}|{~z~}zxu}~~}|}yx{vyw~tz~p}{}}}{z~|~qv~|{~~}vw~|I|}}{~~yzvzn|xyz|~||}|x{m~|~{z|{uz~~zz{x}~~{y{~z}}L|}z||{{v}gt|{~|}~}~{}~v~}}~{|~zq}z|t~~|~}}ty{{y~~|~x}~}|~x~~w}|~~}~rzp||||~}{}z{|}}w}|z|{~}{}{y~~|~z|}|{{~v~~{}w{}~xy}}}{|z}}|{r{{|}{z|}~~}}~}{x{}yyz{z}x~~v|}}|{{z~x|~~~}|~}~~z||~~z~~|{~|}z}~~~||~v{~~}~z~w}z}~|y{~~{~|~|~}|~{~xz~v~y|yx|x}}}~{}z}}{}|w~||xz{~|z{}~{|~{zzz~{~{{{|w~}}z{{||~x|}~}y~}{~yyy}}}xw}x}xxz}y~y~w{|}zz}}|~y~{}{z~}zyyr~~}~~~y}~||zzuv}x{~~zzx~|}y~{~~z}~}y{~y~y|xz}v~z}}~|~}}}}|~{~|y}|~~w}x}||uy|sz~x}}z}x|z|yz~~v~{{|x}~}~u}|{{uy~xytw}{~{}sy}xw{~y|{}x|||~yx|}~x|}uyt{}||xtx~|}~{{||vy|~w}z~y||}wv{x|x{|{x{}x~|~{|z~{z~|zx}y|}}z|{}||{s}}}~}|y|yu}}}}}|x}yy}uw}x|x~{}~{}{z~}~{~yz{}y|~}y|~|}z}vzx}~~|z|~|{{|}vwyy~~{~w|}z~{~yz~}}w~{|}yy|}{z~~|wx~zs~{{}{|~~}}w~x}}u{xz}|z}~}{|{}}}y|}~y|y|~~yuw{||z}{z|y~y|}~{z~vv{|~|~xy~~{}y|{}~vx~y}~~{~~|}~{|}}{~}z|}~xwz|}|z~~tx|||}yx~|{~{|}{~}|}|~{||~}y{zy~}~}{|}yyy~~}}~}}~}|zz~{z}~u{~~~}z|}}|||{~yyw|y{{|~}u~}{~{|~u}{{|}|~}~~y}{x}z~|{~wr~}y}||zz}vz{}~|{|~|x~{x||~}~}~}~w|{~~}{~yz}~{}~wt{x||{{|~z||{~{|z~~z{yy~~z~y}y{{z||}{~{{v||{~~~~{|}|y~|u{{~}|w|z{~}{ty|~~~zz{~}z}w~w|~~|}}vx}}x|zw{y}|}uysy}wyz~z~t|}x~}}~x}{|w~}{wyv~}}v||||~tu|z|z}|yx~{{vy~}z~~yz}wx~{x~~yyw|tz~vv}|t{~zz}y~z}yz|ut{~~|{}}p~}zx{~|y|~}}|u|}yz}|w{z|~|{|}xxsz~u~~u}z~~{|{zz|{~v|{||~z|y~{}}yyw~yv{x{zzy||~v|~}|}}{}|}{v|~}w{{{z|{}uyy|xvy|z}x|zx~{z{}}}}y}}}vw|v{vz~u|z|y}{}yx{x{ww~}s~{~~{~~wt}}w~~xz|~|}y}{z~x{y}~~wzx~x}{}}z|u~wx||{{{~~}wy}||y~y}}|z~||~}|z|}~{y~|zy}{xyyy}~~~}~}{{uz~yzy~~}z~x{|z{}z{{{z||~}~~}|y|}~|{}|}x~z|{yv~xy~}~{~z}{y~yxz{|}y{wu~{y|~~z|}}{{|~~}u~{}}~~ww|{}|z~z|}z}||{{}zz~}yx~~y}w~|}~y}s~|~z{~~~|~x|{y|z}{|{z~w~|}wyx|{yv{|}~}{}~vv~{x{v~y~|y|}|ϐw׋{v}zx{}u~{y|}xz}}~w}y~xxwx}y|}{}}{||{x~~~s}{|{|x}{{~|w||||}w}||w}xwzvz{~{{~||~{z{}zq|}{|~|xvw}|xy{}~z{~|~{z}}~w|y}||~{}{y{~}{|tw~||y}~~ryy}{}w||{|tz{~z~}{|}~~{{~~}|}}}{|}z}}z~z{~y}y}}}~||~x}~z~~z}||{y~}}~~|z~w|~~~}}}z~x}y~{}z}~~~|~|}~~{}{}|{z~{y|~vz{~z~~wx~|y}}|~yz|}}}~}y~}yr||{{y|||zy~}~u{~{~~}{|{}}z{~}{}~}z~|z}w}|y~|~}~}}{|}y|}}||}}y}}}~~|}}}wyz~{~~|}x{|{z}|}{|}}z|x|}z}||w~}}yv}{}|~z|}~y}|}~{yy{v{v}z|z||{}ty|{|z~z|{|~~ty~{tz}|x{{z}|}}y{y}y}w~z|v|~{uy|~vz~yu|z|}}~~v~{~~v|~~z|{y{~yzzyz{yxxz{}~z~~{z|{}~||{}z~z~}y}}}v|}}y}~}{z|~}}z||~w~z}{y{~|}~y{{zux}|~~{}{||||}~x}}}|}}~~}z}z}}z{~y}}w}w~|~yz{}{~}zzz}~z||~|sxx{|~}{yu|z~|xw|}~{|{~}}~}}~}~{~}|~~{x}y~y~}z|y}w{|~}~{~{|w}z~vx{}~}~~}z{~yzypx~~}z|z}{{~z~z}tzv}|~w|w}~|{~||z~v~y|x}|xx{{}y~~~~zyv}||zzy}||{z{{~|v|~~}~}||z|{|z{}}zz}{|}~}~~|y~{|{~}|~zxz}~}~~}~{|}|}z~|w}ywz{y~zzy~}|{~}~~x~yw}~~~y||~|}|}z~}x|x}~xy~~~}}x~||~z}|uz{w~{{|ww}|uzy|z~w|}}}}}|~}~{}{{|zxz|}|~}{x{x~}}{~}~v{y~{y~~ww~~z{~|}}x|}w~~~{~|z~{~}|yz|{~~||v~}{{}v{~~}{z}}~}}~~u}|z~|~xy~}y~~}u~|zzx~~}zyy~~|~}~z|{~~|~|~z}}~t}}py}wz|||}~}}~~}z}~{~{}x~~wz}}}}}}|{}~}{}}|z}x}}~v{y{~}|~~|}||}{y}}|~|}|{{|}zz~}|~x~~~~|~}}y~~{z}~}zy{}||}{}y}}yy}~v~~~|~}}|}{~~~{|{|~x{}||y|y~{}~|}~{z}~}|{z~|z~|}zv|~{z|{~}|x|~|y{{{|x}{~y}}{~}}y}~~|{{~}xy{|}}|v||z~||wz|~|x}}{z}}~}~~y~~~}~{vz~r}~z~}xy}x|z{}yz}x|}{|}{|~|~|w{|{}yyzz{~}|{~}}zx|x}|}~{yz~{|u~{zx~|{{{}x~y}y~}{z{~}}zy}y{}|}z~||{|zw{|~|yx{}}~}|{{}|~~}~y~{|~~{}}}~yyx}~z|vt~z~|~|~yz{}}~}{z~wuttww~}{|zzzzz~{}{z~}|zv}v}|}|}}~}{|z}~}}zz{|}|}}{}|{|{~|z~~y~xy}||z~w~tz{~|z{z{{{~}|z}}}~~}t}w}zn~w~{|}{}}~{}yvyw}|z~~{}~~{~~~|}y~}|~|||}}xxz}yw|~|{}|{~{|~|~~|}zw~}|y}}z}~~}z}}}{~}|}{y{z~~xwy}|~~|~}~}z~}|~z~{zx~z{~~x~zzw~}|{yzw}z|~{~}}{}}~~~y|y~{y}~yy{~x}}~}x|w~wzy||~~z{|{}~|v}|}|{|~~||{z|x{||~|y}~t~z}y~{wy|~z|~~{~{y~~~zz{y}|t~x}{~vy{}~{|{y~{|z~{~~~|}x|zz~~{}w|y{}~pz}{{w~{|v|zs}|~z{y~{|{u~~z~{{}{|}zt~}{~|{|}w|~y~~|}x~~~}w{y{|rx{w}z~|~~|u~}}|{z}}|~~~|zzux{rz|zy~|{}}{}~}|~{|{{|~~}~}~zy~vzz~{{}{}{}z|u}zy{tx~~}{ux~~x}~|}{~}ty}q~|}x||y{||z||}xy}}vzy|{{rq{z~|y~|~}z{|~~pyxlsw{|~{|z~|}tv|~}~~~}z}yx|Yx}w~}zy~zo~|}{{u}|zzz~v|~{r{|{w|wz}tq}}~|uxw|}{{t}x~a{wx~z}uv{zus{|x}z}{{~r|}{~xv{~k~ry}x~wz{{x{}|}~{|yz~y~~|t~|y}|wv}zzqtuy|{}{zvz}yx{zw}|}}~x}~||y{|{{}z}~}}~}~~x|~~|~{}}zxx~~x~~~{~}}~{|}y{{}|y{utvzv{||y}v|{}}xwy~{||}|w||zz|zv|~w{}}||x{~|~|~}|~|z|{}~}v{{xzvxv}~x||{}{{}{zz|~|y~~}}~}~~zwnz}}{}z||zrx{}y{{~~y~}xv{}~zwy}{z~z}{|{z{|s~~|z{|~}v~}}}uzz{~{|}yxy|~}{x||z|~~wx~u~~~{~z~|~z~{}~yv|~{|y}rzx}~~|~}{z~{zy}~||zpy}~}~|~}wz}{|~|~t}z|w~~zy|~x|{}{w~{~w|}~~z|zvx{|{v~yz}|vs}z~}}}~{x~|w|z{{{|}{|z~~x|y{}{x~{~{}}~|{|}~{||xv~zz~}|z~z}}}~|~z{}{xz||nv|yx|}}|~yt}~}zxsz{}{wyx|x~~u}}}y~xu}{}}u~zyzzzw}y~wy}|}~}}}}|{x{|x~}u|}u|~}zz{}vw~}zv{wy||yuw~x|~y{}~|xy}|u~x|wyw{|{x~{z~z|{~rz~z|z{vz}~}}~|~||x~z~|z{xw|~z}~ywy~{z|{x~}zx}~}}}v|}{wy{zy{|z}w|{u||{~~yux|{w~v||zy|{}|~}|y{|y||zvw~y{}~yz~s|v{w{}}z~|y~}}}{}~z~yx~~}vy{~v{|zxzz|x||u|~}}}|{~~z~}}}~}}~~|yz}~{yy|~~z{{zx}ztz{{|}|{w|~}~|}~{}w~~s~~y}x|z~|z}rwx{{wzv~zwx{~z|}|w||z{zx|z|~x{v}~}~}z}}z~}xr{vz~~}wwx~py{}u~x{xwyw}{||{|{w~~ys}w|}x~}}z|}}}{|~}{{{z}}zz}|{y{~}~zv|}u|~z~z|{yz}{~~u~{||}~|~~|{||}z{~u|z}~|}~}~u~y~~~xy{x~{x}~u}y{|}wx}y~~~~~}|~~||x~z{~z}y{y~}x~}p}|~~}}z{~||yz|~}|~{|y}|{||}x{v|{|}|{}|}~~{}}{z||}zx~z}x}ww|||{}}{}y|w~~~{~~z}v~}w{z}|w~~{z~}y|}~~~~v~y}}|z}}~}x|z|~|{z~}}{}{v{}y~v~~~}}~|z}~|z|~y}||zzy{{{~||{}x{~yxy{|||z~{|}~}|}~~|{~}}zzy}|v~~}}}|}x{y}~}|uv|~~~v}z{}~~{~z~}~{~}}~x{z|||~|~{y|~~}z{~~|~~|~~|{~}y|~|{~~}|}~y}y{xw|}x~~|{y}}z{zv{|yyy~||~|~~y{x}}~}}}}}}zy}{v|x{{y~||~yz~y|~}}yyy}|{}~~~~|~}wy~|}}|{z~||~}|{v||~|z}~}{y}zz~|zuu}}~}~y{x|{{v|x~||~|~}}~z}}x~|y{{~w}~~|z|}{||z|{}|~}u~x}}}|{{{|z|zv~}}xv|~}}}~}~{~y}~ztxt|yz~}~{~|}~||||y}s}|z{}{|}}t}{|z}|{|~w{u~xz|{~}|~|{y{yw~}}~wy}||y{}{|~z||}}xzz|w~|}~z|~y|~z}~zz|yx~x}ywwvz{~~~{|~|x{zz}}{}~~u~xzywzy~}{zy|||zzw|}}{}zu~|uw|z}}xy}z~{x|w}z~u{w{|~t}y~~|~zy{w{v|}{{~|~}}~}{|~~q|{}{zvzu|r~zy{x|zzw~~x}~~|zvwx{|~~|}~{w~}y|}|p|{z{~{xr~|~{nz{wz}{~}z}~{}{{~x~w{z|z|y~~yz~}|||}~z|~}{xzzy}~t{w~|pvyuu~{y|z{~zz}zzx}~~~~|x~}{w}}}{{~z|}y|}{~~y~}yz{}~}||~~{yzz~xy{}t~xzy~xy|~~||z|sz{~|~}}vx}yy~v}w}|z}}}~{~}}xyvz}~v{|}w}|y~x{zz~w}|y~{w{z|~z}~{xz|~~{yyz|~w}}}||z~vz}|}w}{yw~~x~}z}}~w~z}~|~u||~|~~~{~v~|zx{zz|~~~w~}|}{y~z}}~y|{}z{}{~~}~{}z~|yy|z}}z~|y~|x}xz|x~~~}}}z|{{y{xz{{~}}|~~zx~|}yw}}{}v~z|}z|y~~}}yvs{{}}w~}}}r}z|w~}}w~}~|||~w{}z{{|}}~~zw|z|||v~wuywzx}||y}~||yy~|z{|y}}zzu~{~}~z~yy||}x}y~~~{}z|y|zts}~}~~v}~x}}{y}rtxyv~zwvy}xt{~~~{z~~|{~w~w}y|~wz{|}{~|}}~z|t}}yw~~}}~{{~~zz}x~{~||}}zx{}}~t}~~t}yszzx{}x|}~z~{~{|}~~xx|w~z{y|z}|rvxxyxy}~}z~|~}{|z}~~~}|}{~~~}{{x|}y}}}}wz{|}}}~}}~}}z~~|~|{y}}~|z{}}z~|}|}|{~}}}x~x|}}y|zy~~~}|}~|~{z|}z|y|~u}~|}x{q{}~~}}|}~|||}~}~zyxu}~y}z~~z~y||}}w~{zu{||zw}}||xt}v~}}u~}t{~~|y}||}tv{z{y}}|}}}}|~}}||zy~|zz}y|}u~}~zx~}}|zzu}{~||{{t|~y{{{|}}yy|vxv|ww||}w}}y{}{w~}x~y~}}{x{}v~{{~|z}t~~}}|x|}|{x{yz||~|~|x|{~~~|w~x~z~v|uz|vz}{|~y|z||}w{xy}x~|x}{{}|{}x||~zx~y}}x~~}{|~z~z}}u}{}}|~{}y}{v|y{||||~zx}~|rx}w|z{}~}}{|zxwz}y|~}v~x}~}}z|||z}|{}w|~{{~|~vxy{z{}y{}{~}xxy||xz|y}}}~r~zwztzzx{y{|}zx{yy|}}y~|{{y~svy}~z|~}~z{|}z~~v|z||}z{~{~{{~{{}}{{}|}{}x{}y~|zy~}}~|w|~~yz}~}{~|}}|~{}{~x~}yz~xy}{|}|y}~xyy}}}{}|||}{{|~|~w~|{|{}{yyx~|~|~|||}yz~}|z}}~{|~|||uv{{w}~yyz}|w{{{|{}|~{{~z}}zz}~~y|v~~|~z||{~x}{{~z}}{{~y~~~{z{~||~{y|}w{{}~{{|t{|}w}uz{z||y}{}{~v{xz{}|}|{|{x~y~~}|{y}~|zz|v~z||~||rznry}w~{}xnv~x~}|~~{z}~yxmz}t|yz~~y}y}}{~|{yzxy~x~{{~w{y}}x||~|mt||~v~}}}y{|{}y|wzz}{x|~{u|~{{z}}|t{{~|y~|{}x||{~ssy~z{~z}}{~}}x|{}}|~w|~{{zw}~{~|}|}{u|}~zxv|qx~}w~yz||~wy~z|{}w|{xsxyy{zxu}{~z~{}~||z~~xuz{y~}{|~z}}}x~x}y{~zwwv~|~||y}}}}|zy{{}|~yz~{xtt}|y~~|~w~~}}~z~y}|{t}yu{x{}~{~~y}vz|~{}|z~~{|yv|z|}~y}r||{{}~{~x}z}w{~}~z{}y|{~{~}~}{wxw|}}|}}~{}}u{}~|~}}~}}}~~{y}~~}y}y}}~}||z{~~~|y~||~|}~|y~}zz}ywx~v}~w~w{z}x~~zz}|z|~yy~{}x{z{|}yz|~{|{{|zx}yy|~{}}}{}w}yy||x{v{|{|{{yz}zy}{~|~|{}y|~|yxz|}}~{{{~|y~}x~{{~{}{~y{{{|w~}vw~~~~~yz}z{~{z|}~}uu}zx{yz{{ww}{|~~{{y{~}{}||}yyx{|~|}}~zw}y}}z|z}x|}z{|{~~||~y{}z|~}~}z||}~}~z~}}~~}~~}z|zz|~||}|z|y}zy~v~y~z{||}t}{xy~}x~y||||{|~}}||yzxs}zyv{~y~}|yz~~~}}{{~||~y{}yw~}{~}~~z~|xz{y~}yz}zrz{x|}}x|||}}{}|ywzy~{vy|uy~~w}|z{}}~~v{|zz{}ytx|}|wyz|{~|z||}y~|~|~~{}|{xz}~~}}tz~~~vz}{y~{}v}vw~z}~}{~~}y~}{|qz}~}{zx~y~~{z~z{y||wt~~v|z|{~zzzu{||~|}{ww~zw~qv|y~|xz}}z{~~y|y||x~wz}}|~{w||w~~wzy}}x~|||}~zw}{}}~~{z|}v}~|}}ycy~|{{}z~|{zv}~~}z|}|}s~}}z~yx{~~oiz~~~z{}~}}poz~~~~yv{z}z~jxx{zwm{yyx~}w}{~~~}}y~~~z}v}{{~yz|~{y~}yz||}{~}~z~~}y{}zzl~vy}|x}}|x}v|v|x}}|~rizx{x~~}|{~|z}}{|}~wy~|{{zvx|wxyz||{}}zy}}yzy||}~|~{|~x}~}u~y~}{w{y~}{w~|||y{}{y|{zw|z{}x|}uzv~|}}~w~zx}y}}~{yzyzyz}}~}y{~|~{xwzw}~z{}z|}}x~{~z|y~|~y~}w|v~{|~}}y|{~z~z~v}{~{{zvyz|w|{}}}|}y~{~|~}{}}}}{x~{}|~}~~~~~{z}~||z{~}wz}|{}|~~|~{|~y~|}|}|}w~|~~yz~~{~~{~~|~z~z|~x||x~y~{z~~|}|{~{|x~}|~z}z{}~~x{|}{x||x~|xv~~{}{|{y~xx}{y|xy~}z~{yz~{{}|~~y{x{~wy|~~~|}{~{}z~~}zzz{{~x}}u|}}~~~z~z~{x~}~w|y~~zu}}}s~~y}||}|{x}~yz{{~~~|}z~~}{~|~{{{z}{}z{}|}vv}~|yyz}z{{|}v}z~zv~}}}y}u~}{x~zwy~|~|~|~}z~~}~}~{q|zyz|~{|{|~yuv||~z{{~w}|yz{}{|z{xz|~~xy~z}{|}~}{v|||{y~z{{~~y~~zy~u~~}~z|}py|z~z|yvx~{|}{||w}}}zz{}|~zy}|xy}}~||{|{~{y{yy{{||{tw}z~}~y~vz~xy}u}{}{~~}}}}}~y{~~{|~v~y{|~z}~~y~~wy}}}~~}{|z~x{|~|{x|y{zy~~~y}~zwy|}}}{y}~|z}~}|~|~{yz~~}z~u~y~|~yy{zz~|}z}z{x~|y{|~y{~zyy~z|~{~|}z}~|x~|~||~z{}wz{{{z{~||w|~~|z|}z~}o|}|~~|{|}xw}zz}}|}yz~|y~}|z~{yvw}|x~|~w}}}}}||}|z|}z~{wxy}y|{|uxxt}v}ysy}~~}ww~|zyz|y{z{}zyz~{|y|~y{~}x|~vs{|zy~z~}|v~~w~w}v}~{|{}}~||{w|~~|~}}|y}zyxxy}wx~|}~~xx~}{u~~~z|}|||}|~~{~y}|w}}~}{}v{{y}x{}~~|~{z||rx~~~w}}~|z{|||zz~|tzuz|z||}}}~y~{~}|y|y|}}x}yu}~}~~}{y|y||{|~}y|{~|{xz||y{~w~z~}v|~{z{{}|~wzyw{v{{{|y{yw~z|zx~{x|{||y}s}yyvz~|~vx}}~~|~x{|{}{}~}v{tyxu}z|~}|~~~{y~}{vvz~}{~~|~{~w~{y}z|z~y|~xxw}ryu}~~|{z{{txy~{|~}r~~y|{~}{}}~yyy~wyx~}~yy|}xxy|}~~~~z~}}}~|x}z|~|~zz~|{|{~}zy~v}~~z~w|~{~~|}x|z~|yqzr~}{|~}~z}|xw~~~}~|z||z~y~~~uz{y}z}~zy}w~|~w}{||y|{}{}}{~|~w|{{yy{|~yz}|x~|{|z{~~~|~y{y}s|~~~|x}~~|t~|~~z~{z~}vy}z|}}~|z~~|||}|{{}~|zw~~zwz~{z~|{|{~|~~y~}|~|~}{}|}{z}y}~}~}~z{||}}ts{|}{~}~{{zy~x{}~u~{x}~{~z|}|}y}~~|}~|x|~~yx}}sy~x}}{}}z~x{|~vz}{~z}{w{~z}~~}zx{|||w}u~r{}{}x{zyz~y}|}~z{x|x}{|~}|~~{~q~~x~zx~{z}{z~{{{~w~}~{||{z}~}y~z}z~|||||~|}~~|~~{}}}|~{u}}~~}{z}ux~}vz~z}{zxyy~}w}{||~{z~}z}zz~z|z|y{zz}}|}|}rw~{~zz}vy{}}|{}{|{z}~x}}~zy~z|~}}x}y}}}~w~~}r~}~{|y}}x{{~{~x|{}{x{{w{{|x|{}{~{||}w}}~|w|~z||{{ytz{~}}|}v|x}~ww|}}rxy}}~w|~~z~}{z||x{||{}}}}|}~{~|v{}~z}~yz}~}|}~||qs||}yz~z~|~{y|}|~w||~z~}{~}|}x}x||z}y~|}yz~zp}xz|}yz~~z~y~z{{{~}u}u}}yx{zwwx|z|zzxt|}}~r}|~}xw||}}yx|~xyx~}}z~{{|~{~z{~~qx}~yztzz}ysy~zy}{~|{zy~~~y~||vt|~y}}~~xz}w~u}~|z|w~wz}}wz|w~}z~|~|{~}{{~zt~zy{{}||}|}~{}q|}{~{~{x|~{z}x|}|zz|y{{{{y~}|}|~~}}|z}}z|}}y~}|z|xz{y{~|x}}t~zws~~v~~|}{}}y}u~}{uxyz~}}}{zx}wz|}u~}~}}~{x|~yz~yy||}||xy|~||x~}}{}vy|~ztt~|{|{~~{s}~}~~w}~{}yz~z}y}wt{z{y|z{x~wx~y{{ux|}}}}y|}~~~y~{|}v}v~y}|}|{|}y~|z{ux{~}z|z}|x}{|}w}{{u{vr{y}|}x||~{{zs}|}{}yx{zy|~zy}|w~u}{}y|~~}~|}{x||~}{~|~~}|w~x~}z}~x~~{~{|{~zw}y|~~w~~~~y~}x}~zw~z||zxxv{~}}x{{~y~|}}~zw{|zz~y}wz|y}~zzy~z~}}~~~}}y~}}}y|z~{yy}|~~~~{wyz~zxy~|}}zvu}{vz~x|~{zx|u}xu{t}{~y}}||y~|{v~y}wr|v}u|z{~zxzs{z|}|~zw|{yy{}y}y}~}zy~z~xtx{y~}}~}y}~yy|~~|~~{}zx~yyz~vxyx}z|z}|~}y~y{||~}|~}{yz~x{}~}}|~}zxtq||zysx~v}~|xu{~|~~~wu|z{{|{}~t~~|||w~||st}xu{}~u}{}~~|{~z}}}~z}t|~~||}}}~}z{~}{y{z}~yy~|~{zy|~}{yt~{}ywz|{{|zwx|y{~~||u|y{|x~~}|y{~y}y~~~w~{~~~v|x~}w|zz||wy~{y}z|~|z~}y|}~w~}|{{||~{}{{x|x{z||~}z}y{z}~||wy~|{}{~x}}{x~w||vx~|zx|{~x~y}{|z~x~~~{{{yz{}~|yw}w||}|w~}}zz{}~}|z~x{~}|~}{v~x~|{}}~|~}{||}}}w~xy|~|{{z~}|{}z}{}~x~}z}|~y|~x~ux~z}yu|{w}~yzx~~x}u~}w{~u|yx}{vv}~~~~vz~||~|y|~~w~{~}wy}}xy{|{~zw~|}{}|zx|}zt~}~t~}~v~xy||{|t|}x{xzz||}~|}x|y~~~z}z{|{|v}xu}z}~}}~vy~{}~|}|{|{{~~y~{}{}~y~{z}t~z|zx~~|yyx||{v}|xx}z}zx|z|}z~|~{z}~}}}z~x|{}uzx~~x~~|z{z~x}{{{}w{y{|~~z}t}y{|}y}~y|~~z}~|wy{~~|zz|}~x~xz~x}vwq}|{~~~}w}~}uyzyv{~s{~|{~}}||y~u~}{{~~~y{|x~||z~z}z{~~xwxtzw}~}~|z{y}|~}toz}{~~~w{|xz|~}~|}}|{}|{}~y~{}~~v~z{~}zz{z~{z|x|z~|}~}|z}x}~z}~~u|{}y}~x{}|{y~~{|}~~v{}zx}{}|~~|}{x{}y|}{{}|}x~z|z|~~~|zy{z}|yy~}||z~z}w|zz~|z}|z~}tz|~|}}y}}xz{~zt}uz|{~wyx~}}|wyqw~x~zwry}}zz~yyy~}~}~r~}}|}}}~x}}|x{|~tx{zv~{}~|xu~~|{}}xz}q|{|v|}~xz~z||}~}yzx}~z~q}{}xt|{|~{|~{yzzxzs{~}}ryyw}z~|yxz~~}uyx~{|zxw|}v|u}~{{uw}|y|u{x{|}}}y}{}z~~zsy|}z~w{}|}yz|}z{}}y~}}}}{z~|}x}{~{{}}{~}}z}~v|w||}}||}~~x||{~xyz{zy{}{}{}{}|{y~}~zy{|}}v|||w|w~|y}z|}w~~z}~w|~~x}~z|~y}}~z|{z}~w{|y{}~}|||~pz~~{z~}w~uy{~}~~}}z|}}yztxz}~}~{~}{y|z{x|~~|zyy~{~}|z||~|~~~~|w~|}~||~~~~y~~}}~}|}|z~}x~~~z}~|{{~}{~{{{~~~|}y~u}~w~~y~}z{~{v}}w{y{xz{|~|~{}|~||v{~|y{{s~}}zx~y|}}}x{zzt|}v||xo~x~}~~~~|{||yyx{z}y|y}y}~}~~~|~s|{~~~~~~}~~|~{{|uz|}x|}zuw}~zy~x|vz}q{z~}z|{|w{|}}|}~}}z~}|x}|~|~{s}|}|}z|{~w|x~x~~{~~{{{}xy~zzy}zz{|~z}}}{~z{}~v||}}z{~|}|z~y|y|}}|}|wt{|yz~{}~{|}y}w|yx~{y}y}{s|}{~z~|{~z|{{~{y{{||zy{}}~~|||~}{~}y~}{z|||~|z}}}z~}}~{~x~y{~yzw}~{x{w{z|~}~z|xv|{~{|{y~|}}}}z~z~{w|xy|}}{zv|~}~~}{}}~}{}~||y~|tu~y{~~w|~z}~~~|x~|ux|~}{y~y}~x~ywx|zz||~}z~~}x}r~}~~}}~{|||{~y{||zyv{~w|}xxy}{w~{~{s}ty{u{{zx|{x|w~{{{}yx{y~{t}}~x~||}~x~}t}}ywzx|{}}x{zy|{~|}y|~|{ww|zz}}~|{{y{vz}~zx|x}u}|{|~{~~xx|zn~~|w{}|~yz|~|}y{y}~||z}~u}}}x~v~|z{||y~|z~wz}}}~{x~{|xy{u||{u}o~~vw}}x~zzy~~~w}|}{|{|yy|y|||~|~|y}z~}|{|y|~|||{}{~~~|z}{~y{}{y~}}|}}|}|}~~{y~~~}~~|{~zz}~z}zx}~wy}}~}z{x~x|z~{}z~y}}v{}~}~|y~~w|~|x~~~{~|yx}~~|x~t~|}vz}z~}~y}}~|vy|zwwzx~||~t|~~w}|~|z}||}|{|~}x|y}}}{z~~y}wu~~{|{z|}|w~y~t~}|}y~}~|~{}v{z}|}~|t}zy~}}|~}z}}}}t{}{x|zzv|z||~|~}|x~|}}~wvw}|u~{{v~y}z~~|{~~~~}~{zz|~~|{{{y{{|z{~}}||z|~}w~y|{}}~wz}zz}}z{{|w~|~~}|z~{z{}|{}||||yy}}|~|w||}~|y||~~{~|}~z~z{}~z|~|~{}~}zz|v{}{y~}yy~|~~~{{~||x|vvx|v~}}}{y~vyz~}|z~|wy~|z}}{z~}{}~}{y|z~~y{{wy~|~}}y{~{}~|}y}zx|~{{y~w}|~w{yx~y{~wx||x~~{||{}z~vvw{{z{~||w{{|~|{y~y{}~y}|}y~|~|s~||{{|zx|~}}{~}u~uz}{~z}~{~ztz}}uzy{qx~|~}||{z{{|w~}~|{~x~{}}zysx{~v{yw}~~{~}|z|}x}|}||}}~zyzw|}~x~s{ux~|~}|xyw|zy}|}{v}|{|}z{~y{|{yu}ztw|y~|yz{{|{uy~w|}}|}{}z~}z|zxz}~yz{~{|{t}{{z{~|{y}{{yuy|u~}x~{}~~~}x}~{|v}}||}}{z{w{|~|w}|~{y|}~v~x~~{}xyx|}{~|zz|{|~~|}~u~{~||}yzyw|{zz~y}}|~r~~|}y~}|v~{yw}}{|xv}z}z|zwzz{|~}z~vx}y~z~|~z~}{{z|xzyz~y||z~|||~}}}~~}y}}vww}~~~~y|~{yw{~}y{}z}{}}{}||{{|s~|~~y|x|||y~}|~}x|}}|}|~~w|~z~}}~zzx~}v{~}z}~yz|~s~|}yx}~{y}{~~z}w~||xx~}t|~z|y~}|z|}y|}{{x}}{}|zw||u}|}||~zuzywwz{~~~~{~}}zz}}}~~yz~uw~z|}||}~~}}|}|{|{|}x{x}}}{x{t{|yx}z}|y~yw{u}z{{~|~|~{yyv|~y~}}|xzwz|}x|x~w}}|}}zyx|w}{{t{~{|{u~w}}|}z~|z|~zy{u~{{{~~z~~{zy||~}}x~t~~~}}z|zy}zz~y}{}}y|r{zu~zx}|~xzx}|~{v{zzy|}y{~~}w~|{wu{w~zx~y~{}}}~y~}~z}z~|{x}~w{{||y~u{~xzx||}{{{wx}~zy||~}~zy{y~{xty}|}}~{~xzz{y{z|x~}~}u{|~}{{x}y}}~{x}w~x}{{z}~~|z|xz{|z}|wv{|zy{~{||wxx}{}~x|{}~}~|~~||{|||z}{y~}~v~s{{zz{~|{}}~~|}~{{x|zx}|vzx~~wxxx}~y|||{{x{{v|z~z}~~{|~{y}||{~|z~~{~|~|~~y}~|}}}x|~x~~{v~{w{|{}~|~|y~z{{}}|~|}~~{~{z~~}~z{~~}||~x|}|~~|}~|y||}~{}y|~z~~{~~|{{|}~~|{}z~y}}}{{z|{|~~}y|{~|}}{z|~{z|v|w}v}~|y{u{~|}~}}}}~|{z~wvxw}~u~z|{xvzz{{~~yw~z{~~v|sy|}{vuxu{z|~|xzx}}}s}~{}ttx~{z|{~wzz|~~}y}uxyxy~}}~vs|}{|}z|}~uy{|u}|x~v|}~{y|~}}}~x}ww~z~v|zy{xxz~~zy}yz}x|{~z}yw{}{~y}}~|}x~z}~{z}xz~y{|}|z~|~~~x}}z|t~~{}|ys{x|~zyz|v{||{x}~}{~~|z}z~zz~}||~}{{~z}~x}~{~z||~xz}}}|~wzxv}z|{{|~}yx~|x~z~}}}}~}}y|~~}y|v~w{|}z}z}z~z{}~|y}~z}}}{}}yv~x}y{~z|}{{~x}{|~||}|~{~{|y~x}y~}}}||~~{~|~zyy~t~{|v~{}~}w}~z{~|z~{}~v{~{{~wv{y}~{|{|}|~||y~~{~~~~z~{~zx|{w~~}|}~|}yu{{z~{|x||~|{{{{{|}|~}~y~w}~}|z|z|{x|}z{{{|y{~||}ww~}~~tz}|||y~~~{||}xy}z{~z~yy{t~~z~~~~}~~zzyx|}yw~~||yx{{xy|z}{~{||||~y}~~~|}{w||~~{~}|~~|~y{|y|zzz{z||}zs~y|~{{zy||{x~yx}}yz|}y~}~}z|~x~|yyy~~~~|~~{~o~z}~zv{|}{~}}}{x{}|s~tx~~~z}|{|}|||~{}~v~~w{z|}zv}}t}|yz~zz}~vx~~~y~~||z~y|{~{w~xy~z{x|{~xx~y{|}v~~|x~}vrwy{x|}z}}}yxxy~{~|~{{|x}{||z~xt|{}p~}}}y|~y~}ty}{}y}v|}||~x}}}}{zz|~}{~vy}{}}y|~s}|{~z{zxxuy}}z~x}uzv}|}z~vz~z{~}z|{}~{y~x~|{yw}{|u{~yz}~|||{x~|w}{~|||w|y~~y~}z|~{~z~vvz~x}|}|}z~|{{x~}||z|~|}~~}s|~}||x{yy|}zzx{z~~yz~}~|wx|{}u}}}~z|}y}t||y{~}~}u}w{~|w~x~~}yvx{t}{||vu|}~xzx~}}{{z|}|}|}}z~}{{z~vv}z}y~z|{zx{{{sz{u}}~|~|~yywx{}|~~y|||xw||zz|w||}~|z~~z|~wu{z|zvx|}wwr}{zz|~~y}{vzzxzt}z|x}~z}}~{y}{~~|v{||y|}|xz|~}z~w~w~|yy{}~x|x{y}}z|}}|w{y}}}~wzvz|{}|wv}{zxx{}|~zz||||y{|}x{{}yy{~}{||~zv|zz~zxv}}|}~~}~zu|}|u{~~}}~~y{ys{}zy~z|}~yxxx~~|{}~x|{~|xx{{}x{wzq}|{{y~|}x}y~}~{~{y}}}{y|~y{}}wyyy||~~{x|x}}}{}}{u~|z{zw~}|y|~~}|||~zyz~|}|{yt~~}}~|~|w~|v~yz{zy~|{{y|yyx|{~w~yzyy~{~{w~}|x~{{|{||z|||z}~~{}v~z|zz{{|z}}y}~}}~~|z~~z|~|~~}z{~zy}x}~vz|}{|}}u~x~}{}~z|uz~|}}|w~~~u{zuyz~~z|~{|yz|x~y~~}zwy|{~u~}}r}~w~}ywzw}vz|~}|vzz}zsz|~xzy}}|z{}{z{z{~x|||}}z{{~y~y~~}}~}|p}~zs~}~~~|y}{~||yzx|ryu~{{zzz~x|~vx}|s~~z{|~{~}{|{zz~}~s~{v}{|}xyy}z|w|}v~~||{y|}{tx~~}}{}|{}~z~|~{z||~~~||~~~yz|||y|wxyw|uyyz{|xz~~sw~tszy|~{x}z}wx{}w}{~v~~{|~y~|{|}|}}z~}{z~{|~}}x}y{x{~x~}||~~{|}~|||z|y{~|~|~||~~z~z|}}}~y~}~zyx}{}~y~~~~|~{}~x|~w|}|}~{|}||y{~{}~|z~}}~}}}z}{wv{{}{~yy}z~{w}~|wx~u~xwy}~}||}{|}{wqz~|}w||}~y}z}{{}vz{~}yy{z}~|x}~~}vz|~|||wzy|||y}~ww|~~|y}{u||{}yxuw}yztz{{z|w{z{{~{{x~~~{~}{~x~}~{xz}~}{|z}~{{tz||y~||~zx}v}wyx|t|}~~||~}y}~yz||uy{x|{~|z{{|z~|zy}{}|{{~|{}x}~~~|~~w}{}y|wy|~{||}~}x}}|{}~}}~~|yzy~|}{vx}u|z{z~{}||}y}y||{|}zzvyzx}}{zy~|{y~~|v~{{}||~y}wr|~}zz~}v|}z~|}~v}{~~{~}yz~||}}x||}|x}}y}|w{||}y|}{~}~}uw~y{z{{t~{{}}}|}z}~~}~t||z~~z||{~{y{~|~~}{}z{~~~yy{z}}t~{}|}~}||w}~~yyy}~~y~~{{xx~n{|{zy{}|zy}{{}}{w{yzwzw{y|}}}xz|z{|{|~{|}y~}yv|tyyws|yytz~v}}wzzy|yz|}v{xzztx}z~y}|z}~|}}v~~y~z|x|w~y{||{|y}}~xtz}z}z|z}}}~~{{z~{}y||yv|{{~}{y~{{w~zxx{~}yv}z}~z|wt{{w~{{~~}y|x{{yt}y{~}~|z|yvz|~}||xyz}wu~y{~y}{|~y}w}~|w~~{wt}}}}xyv~w|}{w|r|}v~x|qy|~~rx~~||x}~}wy~w}y{~{z{}~|zy||zz{|v|}}z|}}x|y}s~~{|yz}{z{{|y{~t|x||~|z|xwy}z~~x}~z}}z}~wv|zzyy}z~}{{{{{~|zz~wy{}{{z||z|}}|{{}|}{|~t~~y}~xx~x{}~~t~y~}}|{}{t~w}|s~z}}~u{~}{{~~z~yw}x{yz}}{~~u{xw{zzy~}~|}z|~|~t|~|~}x~}z{x{y}|{zz}}||}|yzqw}~z{x|~||}zz|~}}}xv|~xzv}w}~}}~x}||~{{x}z{}y|{yw~~z}{zv~~|zz~}v|}}t~{z|z}y}{{v}y{w}~}{z}z~}}y~{}zz|{}z|||}~{{}|y}~~}||}|~~u{{{}{|xt~~~}~~|w~|~}{{~{~y}||{yu|{z{y~}yz}}~~zv~~y{~z}~||~|~|}~~~}y|w{|x~~w}{{y|||v~}~z~}~{~w~}x}~{y~}}~}yz}}z~|{zy~{~}y{y||z{z}{~x~{|~y~~{{}}}}~y{}|w{}}}x|{uz{z}}|{|~rzz~|}w~~~}ys{{|xvz}~}~~}{}s}z||y}yv~x|}y}{||{w}{||{}~~{z~~|}y|~|yv|z}|yy{}|~}zz}{}{{~v|{~~{z}|}z}|}~~w|z}}w~}}|{|}x{}|~{}}}}~vy~z|}~x~yz}z{~y{}~{{z~}yx}~}z~zzy|}w|~~}{{{{|{y{{xx{~}|{|y~}~w}}}y~}{~{~z~}}~z}y|}{xu|{||}}z}{zu~v~tzrvt~y|~z}y~{yvyy|y~~}}{~~ztx|}}z~zyx}y{y}{z}w{|ys~}{~x}{~~v}y~}z|{~yx~{}}xy}y|{u}vz{z{~}~}z~x{~~y}|w{|~~}}}y~x}}{w~{~{y|{|}{{}|yyv|~}}||~~}z}}|~}{}}}{x|y}|{y}~|}~x~z~|}}v|}z~y|~}~}~w|~zz}z|}{|}y|}|~~{}{z{|{}}||~|}}{{|}~|}~vz~}~~~}}y|~vz~~~~}}w~y{|}|x|{|||~~|~~~y~}~|~y|xx}}}|}|~w|z}}}~z{{z~}{z{}z||~~{y{|{z}}}~zz}{~tyy}~}z}{|}u{x~}u~}}}~~~~{z|~w{x~vz{|~~y}y}~}|}{~|}|t~z|~~z|~xvyz~}|~~~~}y~z~y~xu}yz~}x}u{|}{|{|{~{z||||~|{|z~x~{~z{y|~|y~w|||}{~xw|vzw|}~z|}}~wzy|xy~w~{{}wv|v}y||~{{v{x~zw|zx~y}s{~}{y|~y~y}}|w{v{~{}~}{~~{}}~}}~~~{~|}{|}|}z||}~~}~|}|}{~{|~z~~{{{{v|~}{y{|~~}{~~|ww|||||y}~~|u{}z}{~x{~y}w~~xt|z~~~~~{|y{x~xr}||~|}z{}{u{z{}y{z}}xyt{~s|~ww[{w|vxv|}~y}}xo{z}}y~{}w|p}xum}x}}}}~}~y}{}y{{~~~{}~~~|z~}~~~{}}{~~~|x}{~~~}}z|}}|}|~}}|~{z~}}~~~~{|{~{s~|~|{}}~}~~}~|{{~~}~|{|}x{{~}wxz~}|~y~~}xt}y}}}zxz~z|}x|{~wyv|z}}{zy}|{z}|{|~~zzzw{||}}yy}~{|}u|~v}y}||}~{xz}xy~zyxx{{~u}zt~|{~xp{{~zyy~|z}zs~~x~{yy~~}|x}zs}}z|}x~}{}~z}zw{{|{y~}x}~t~|}z|uz|}|~|y~|x{~~}|}s}}}x}{z}v{~z|y}}~{{y}{~z}yzy}|y|{r||~yzty~}x|}}zzy{zyyzxzyz{}v~x~z|zuy|{~z}{|~}}v{~}~~}}{}~x|{{|wzy||y|y}xz{~~{~~||{zxx~|zzxv}}|~|jzz{zz}}~{~~}y~x~vy{|wv|~}z}|y|yz{}|}wy}}}{zx}yw}{|zx~{y~{zw{{{{~xw}}}z{|w{}y~|}wywy}~|w}}y~xyx{~}y}~x|~|z}~x{|~}wsz{|~|~yy|}{t}}}{{u|~~~~|yuy||{{~}{v{{}y|}}~~|~}}~wzzzt~{~|{~~{|{{|y}}~}}w{}}|{w~~zy~}z{~{wxy|{t~wp}{txx|}|~||{|}~z~~}|{yww{|y|}xy~{|{{||x~|u~z}}{||w|y{w}~||w|y~}wz~~}yv}~{{z}}~y|~z|v}{x~{zy{|~{|}~}v|z}z~|||{w~}{}{z|}{{~{xw|}|}~z}|{~|}{~zyyyzz|~~||xn||~|v}|}|||v|~w~~|}~y}~z}~~|zz}{{o{|}~{~}|z{}~||~}w}|yv{~~{~w~~yv~zx|}}~}{|wxzvy}{|z}~xvxzz|~xty~x}yzwy}{|~|~y|~}}y|{}y}z~}~}|{|w}{}{~~{|{zz}~w}w{}z}}wy~u~}|~||~z}~y}~y~y||||zw}{|}u~yx~z|u||}{}~}}v~~z~}z||y|~~{~z|}~|~}}}~}}y~~z{|x{{|~wuz{||{{xw|~|uzx|y~zzz|}}z~}x||{{|}~v~}~y|}}zz~w|}t{vxxw|yy|z}~|z}w~}v~y~{~}|~yzy}}||{~{x|z~z{{|u{{{zz~}x||}zx~x|~}z|yzwz|{}z~}|~{}~|zz}~{{yy}y}{}}yyz{yy|~|~}z||~w}zx}vzz|~{{~yyz|xy~z|~y~{x{|}~x~~}y~~y~||~}}x~}yy~~}|w|}||~|}|{{u~}|}t|~y||x|{|zz~zz|z}vx~~}{~y~yx}zy}~}}~|}|{|{~{~~}{~}}{z~y~|~~}~w|{~ww{z}}{w{x}{~xz|}u}}}y|{zy~{{{}|{|yw~z~z|w~~|{}}}y}z~|{|{~~~z~t|~}{{||v|z}}~{}~w~~~t|}~||}~~~~xxy{~}~}zy{|w~x}~||}|~~y}}|~|y{|{z{~}}}z|~}}~yy}w~}~zx}{~}z|~s}}w{y~~{~~}|y|}{x{~{{~}z{xz{|}}~y~|}~zzx}w}{||~}}z}}zz}~{{y{{z}~~z}~|~~v~|}~{{tx}|z}|{}yw{|}~~~{|~~}~{~~}{xz{}{~}}zz||~~}z{~|}~v|}y}}}}y{}~}z}yy|w~~z{y}{|}~~xxy}{}xzz~zy~x~|yw{}|~z}y}u}~y{|}~~~}}}|zy||}}}{}~z|{}~wys}y}x|~x~}{vx{}uz}|}z{}{}xw{{|zz~}}z~{~y|~u{~}~x~~}~~|z}z}u|||zz}w|{}{|{||{x}}}{~y|xww}|}|{{|~|~z~y}{{}}|{~}{}z{|z|y~|yy||{{z}}~|~z~}||}~tx}~{w|{~}|~~|~|y|}{~~~y|z}}~{|z{{}~}|~uyx}}~~y~}|}~}}z~~|z}}{r{{x}~}}~|}|z}|{}z||~}}{~~z}z|zxv}z}~|~}|~}|}}~}~~|~|wu}~~z{||}z}|{~y}}z}}}{{{|~w~~|z~}z}~{}}|}z~}~{|x}}u|}xx{}}|~}}~}}{~}y}|~|~z}{z~y~~~|~~}~{|}~|}|yv|}z{{z|}y}}{z}}|z~{yvzx|~~{{~~}x|~{~}}zz}z}}}~|z~||{|}|}|{||}|~{{|~}|}|{~|w{{}~~{~|~~}~}w}x}~~z{}~}~}|~~}zv{w|zy}~u~yy}x~{{wzz{}~{z~|{}}}x|||w}xz}|~|z|}}x{w|~~|~|}{|~|zu~svx}~}{}~y|z{w}~|z~}z||tuz~w|~y}y}u{}}|zzv~yz|z~}}~}z~{z}w||||}~|{zwz}{wzz}~~~z~y~u~~~~}x{}}~xz}||}y~~~z}|{|{}{z~w~x||~}{}~{}}z{~{~|~xzw~}v{}y}{|{~{|{v}{~|~}}|~{}~~z~y}}}~~{~wz|}{~w}|~{}~}z}}}yzwz}}}~|~~y}yw}xyy~~}{{~~|||}|}}{}}}~~{v}u{}|~~~~y~~|{tz|~yz}}~~s|}|x|{{|z~~|~|}~{z|{||~{}~uzw|x{tx|~~~{~}wz~}w}}|~{~y}{|{||z}}~z~{}{}||}{y|~|}z|xy{z{yx|{{xz~|u~~~|xvzz|||v~~{|z{zt{x{x~wy{||u}~|~yz{{{zw{{yx~|~zz}|~|}}}v~~~}z{}{y~}|~z~|}py~~y|||~}}~~~{{~y}{zt}}~|w{~}{{}y}~}~}|}{}wz~|{x}|}}|s}z|zv}{|yz~|~{}v}yy}}}z~x|~xzw}xv{}}yw~{z}~x|xywyv~}zv}~}|y{x}wxvuy~}~}~~}}{}}x~w{|}~r}}|}}||}~z|x~wz||z|}y}~w|}}}s}{}w{|{||}}{zz||w{yzy~{yz}u|}{{}yz~~~|~x~x{~pzzt~}}||z}z|~}||x|}z~x~{~~xy{~~~{z|~zw~yzxz~zz~u|~~~yz{|~y~}{y}|}~~|{~}}zzy{z}}z}~|zyz}wv|{u{|~{}{y}w}~~|z~}~|xvz|{wz{}~~~w}~|}{y~~|~|~~|{|~|}~w|~x||v}}v{~z}yy~}~y{y~~wy~{{{}v~|~}zz~|~|xz~~x|~~y|~~~z~~zy~y}yzq{}v~~y{}~{|}y~|||}~~{||zv{~~~}yyxz{{}wux}z}ry~{|}z|u{u{x||z}{{~y{||{~xqy|{zyz|yzs}~|{}y}{{}zux}{|}~y{v{zw|y|z~}zv}s{||wz~y}}ux}z{yw~xz}{ywz}z~{xt{yx~~|}|~|{zyy{}~}~}yx{|{z|z|yt|wy~yx|{~~vxw}~xwx}~~~~}ww||{x~~{z{}{|~{{w{zt{{}}}~{u||r~}~~{}}~vyxx~|zz{w}|u{v}z}wtyyu{~wzx}|~~z|}{|}~y~z{~w~z|zy{z{|x~~y{}~~}wxzz{||~}y~{~~z||}|w||z{}u}|x{}z~}y|}{yyx|}u}r|~yxz~|z~}}rz~~|{|x{|x~{sytv{~}~{yu}uwzy}w}z{{{~~|}{~xszv}x~|zw{~xzz}zz|x~~~zx{z|}{{y}{{}~{v{wv{yyz{x}~~zx|y~xx|~~~{~zv}|||{{~||}{~zuyyv}zw}y~}}{}}{x||}t~~{~{~|z|}z{uwy}t{z~x}y{zz~}||}y}|~{~{}}{{}zy|~|}{~~{|xy~~}y{{vzuy~||}|~~|y}z{z|{z{s{wwz{{{xuu~{}~{}ty}g~yy}{{ytv{u||yx{|}x||z}}|z~~}{~yz~|wzz~~yv{y~w{{||~s}vrzuz|~x}~|x~{~{~{|t|}{{~z}~w~~|ysxz{{}~w}}|}}~z}~}{z~}z}vz~w{}x|{~y|{}~{{y~zz|vz~}~||y~}yx~|w}|}~{}{~~zzwv~yz}{{y~y}{{w{x||yzy~}}}}{zzyy{}{{~}~zu|~~uy{|y~z|}~}z~}y}~|x~}|~{~xz~~~~|z}{|~}}v{}zyxyx~w}~}}yzz~{z}{}{{}~z~~w~||}{~|~||yu}~zwy|~z~{z|{s|yz~v~z}|~}zz~~~y{|~z~}|~~~~~{~}y~{|{x{{z~~~~|}{~~{{~|{~|x~x|pwv~|w}z~uw}yzy|yzzx~~x~|z}~y}{~t~{}}|{||~~~}xz{xx}|w}xz|{z{{{~}}|}z|~x|}|z|~~x~~|~|z~}~{~}zyz~~{}}{~y|y~{|{~x|}}z~{}~|z|z~|z|}||x}}~~~x{zz{||~x~||x}|}x~{~|z~}}~}{|||~{~~}rx}z~}z~{}|y|yv~z~~}}x}{~{z~{~|||~}z|}}|~|z~|~}}|}y{{{~|~{yzz}{}~|~}{}{y{w|~}~}z}}{|z}~x~}yz~|~|~}~~~y{y}x~|{~{}}zw}v~y|~y|{z~|}}}~|z~x{}z||~y}|zw}z~~}~z}z{|{x{~|z{}}u|}|}}|{}{{~x||{}{~~z}}~x~~}}}}|~|~{|~||~}{~{}||zzz}|~~z}~|~z{}}~|yz{}~}{|{~|}x~s~{}~yvx~~~|}}}z~x}z}~v{~|}r{}y{v{z{z|~zz{~~|}}~x}ww|}}{z|wzu~y~|{x~|}{wxy|}}r{}|~z}vxy|txxyx{~yx|zz}wz{u|}{y}uw~z{|z~y}~}{}z|{}|{|yyzxz}~}zz~}{|||y{u}}v~|xv~|z}}yyx|z{|}{}}{{~{}}~z{~|~yu}zy~~~x~zr{{y|{zz||{}{{||~w{xy~x}z{{~v{x{y~z}|{~{{xx~y|}}z|}zxyys}|~}|yu~~}|x{~}w}x}{{zzxz}}~y{{||{uz{{zz||{zy{{}||{s}~|z|}~{zw~|~}|}}}|yz{~z~~||y}w{{|v{~~x|||y{z}~|w|}~~~x{~z{yy{{|~q{~~|x}y{~}~|~}~y~~{~{{z|{{}uww~|zzv~~|z{x|}u|~y|~}zy}~{~{}y~y~z{ytzv}zy~xxyyy}z{~~{|~}~yz{~}xy{|}}z~q}|}y}~|z}x~~ww|}{~t|z~~w|{}{}~{z}}~~u}z|~}z|~x}~||~{{z}|}~}}y}}}}}}}y~}z|u}}|v~|{{}~{|~}{zu~|}x{zz~~{w|}~~~~xz{}zz~|}~|~yy||y~|~{}|yzt~~{~x||~y}|~}{~}~z~}~~y}|~}}}}zy~||{|xx~}}}{}|{|w|{~}zz{}xz|y|z~y|{{~{~z~y{yuvx}yw{~~{|~{{|~z|~~~v}{w~~||}|uv}yuy|}}|tzz}yyyy~||z|~}~~z~~uuz|~}xy}}u~~x}|~~||v~z}~yy}z~{}zw}zzw{}{z~xuwzyz|~{{}ywzyxs~{~}{~w}y|~~zx~|{xu~zx~}{~x{uuy{|zy}|s{{~}~zz|}}~x{}|~yy|wyz|{~{{|{}|w|vzwyx|{|z|xxy~w|y{ux{}~|~|}~zu{}zz~|{~}}}}xxy||w|x||yz}{}y~{{x}{z|}{y~~|x|~zwzs~~|~xv~|y}|{|}{{|~~xw~}}yz~}~}}|z}z}uzu~~{~|~wvy~|}yxv~~}z{}~x~|}~{{~~~|}vz}~~}}v~{{|~{}yxyy}~}~|}|{|~~~|{{~{~}}{wy}{~}z}~z}|y}|}}y|z~{~~~~~~}w|~|}~y|~~}~|~}~}}|}}~~y~y~}|~|}x{||zz}|~~}|}|}~~}~~|vz}}z}|}|{~|{~~}|~z||}~}{~~}~z~x{y~w~}}u}|{~{{|||y}y}}||{{zw{|{||~|~{~wz|~z}}}~z{{{z|x{|x|{yvz|}z}vzwz||y}~~|{y|}~|vy|~{{~w{~z|}w~|~|~zz~}sv}z}y~~zy}y|z{||y~v}xyx~~z}~z}r}|~~|{{|}u|yy}yv{z}yzy~}{yy~~}z}}{~~|~{wy~}y}}yz~z}~~}{z~}z|w|{{z}{{~~x{z~~}z~y||z}t}|~y|{}~}~{|}|~~x}t~t~{}{~|zx}s{{|yyyx{xz}||u|{{}|z{y{w}|}{zv~zx}v}xwx~w{~}z|~{{x{}v}}~xzy{z~}|~xu|}~~{|z~{z~~{|~x~~}{xz~z|}zv}}ty{~~|y~~{{}~}zyz}y|}{v|yz|{y|{}~~vz~|}|y~~}v~~y}x{~xv~{|~z}v~~vy|~~w|}|}{|{}x{w~{~}~}~~|~}z}~~}z~y{}}y}~zy|~}}~y{}~}~||~|~~|{|~~~~~z~||~z}}}}||~y{~|~~x||}x~||||x|zz}~zx~~yx~z}}{{}}y{~~~~||}{}}~}wx}~y~~{~}~~||z}v~w~}z{y~~}}|~y}~~~~~~{x{}x~~}|}{~~|||~|~{uz~{|}~}{~~{{zz~}zzy}v~y~~~x|~y~|{|x{t}{}~y|}{{~}x~||||xy|~{}||~{|~u|}w~~~}z~zy}x~}x{{~}~zy|~y{~~~y}t~~}~yy}~{~w{x|{{|{{~}{zz}|~}}z}}~~~{v}y}{~|||~y}}zz}~}tx~}}~|~{}|{|y|u}{}{u}~{~~~}||~{}~y{w|~{}}{y}v|yz||}v~xz|}~{w~zz}z~~~{|}|v~}|t{{x~}|~zzw|}|z{y~}}z|y~{y~|~~}|x|{}}uz~z|z{{y{}yyv{}|wx~~}||~{x{|y~|wy~{{~~}t|zw}w~}}~{~||~|y|}y|z{|wzz~}~zzz{{|}w{z}y|u~~{{{yyw}}|~{yyz}~~x}~{}v{x}~{|}}u}z|{}}|z~}||{|z|z~}wz}x{~|~}}}~}z~||{~z|zx}}}}||wzy}{z~|}|z~|~v|}{}|~~|~|xw}z||{~x}{~y~vx~~yz~~|}~~}w~t{y~{}~}}y|{x~{}|~|{~}||}y{p|~}~}|}~~~~~~~y|}~}v|zz~}{x{|{~x{v|~~{~x~t}{{u{{~~|wz}z{z}|wx|}~~}y~vx~w}}|~x~}||{x|{|}}|w||~}tvyw~{}~}}~w}~|{|y}}}x|~xw~}}}~{||}{{|~~}{z~~~}x~}~{}}~~|zzu}~z{}}tx|~y}~}{~yzx~{|v{{x}|{~|u~~zxz|}|x~~~x|zy}}w~||}{vz~w}zyyx{{}}{|{~|}{}}~~~~~z{~~y|~~|}|{wx||{~}}{}~{~yz{y|y~}~}|x}x}~|z}|z~~}}{yy||uz{x~}x}}x~{||}{~xx~~|wyy~~~|x}y|u|z{yw|xyx{|~}}}~~}u{||y}zx}wtyyy{~}x||~q||{~zzt~yx|{||y~suy}~z|v|z}{y}~zz{~|{~||{z{y~x|~||{|x}{z|y{x}|{y{yuz~}}z}~zx}{~|{y~u~x}}}r~|w~~|~~~}zt~y}yy~}|x}y{~}|~{z~|}{x~|||~~}|}zxzzvy|~~|}|}yz~{~~zz|}}}{z~y{}|~{t}}~{~~}}~~{yy{{|{{~}zy}{wy{|||}~z}z{|}~y~{z{~~~y{~}yz~~~z}{yzu~{}~|}|}|ywy~|{~}{}|~|}{~{}|y|}|z{}~~}{~||~~}~~~|x~z~~|~{zzy}x|}}zy}{}~y~z}~~}z||~~}}y~}}|~{|~~}{}~v}zy|}|}xv}yyzw|~}||{~}w{yz}xzu}~~~~|y|||{{}x|{v}|zq|~{~}~yzvz~{||{~}wvz~z~}y}y|{yy|y{y{xw|z}}~x}|{{{~~}~~}w}{}w{~{x~||{{x||xz|{|~~~{}yy}|~~}}x|x|}~}w{{v{~y~{x~|}}|}z~|~uw}}~{{}~x}x{z{{s}~~{}{|~{{x~w}|z}z|~u|xxw~~|~xz|||u}yy}~|}}~uy}}t|}r|z}~}|~ty~z}zw|z}~}|w}}t{~}~~{~|zy~~{w{}zy~y}~y~~x}}zy|y~u}|vxz|}|}~zv~|y}x}|~~}zz~~}x|y|}{u~|z}|z~{y~{yx~{y{~~~~{{{{~v}x|~{{}}~{}{~zz{~zy{}|~|y{v{x||z{~|~}t~yx|~x}y|}v{}|}yyz{}}}{~~z}~z}x~~}~~yw~~~~~||~}~z~z~}~|}}|~~}|~x|x}{|~x~yz{~yt~{w~v}{~~z|}|xx~}~{}~}zv{z}~{xwz{z}{|z||y|~~||}}yz|||v}{vz}|{z{~z}x~uz~v~wy~~uy}yzz}t~zx~~z}v{}~{~|}|~}z}~}}}~{}~~}~}x{v~{~z~xw{{}w}z~x~{~|~|~}x{|zy|z}~yyyx|x~}{u|~z{}{z|~~~y~|~}{~~x{~|{~x~}}{~xy|}{yz}~|~z|~~|{~{|~y}|~||||}~~||zz|~}{}~~}|}w}||}~{|~~~}{}{x}z{z~~|~|}}~|z~~yxq~~|{{~~||zxxuy~||z{xy|w~y~rr}~}}|w|ycv|}w~|~~~}vu~yx{}x~}e~{y}{}{~zwyr|z~{vt||}}|~|~~y}||~~~~~}|z}||~~zz{}{z~|}|w{}|{~}~~{|{|}|~{{|}|~}~{}z}~}{{{|~~~|}{}~|}zw|~~}||}}|~~{~|z~}~}~}}|~{~|z|~~}|z}|}~~}}|}x~z~{|~}~t~~u}}~{w|yy~x|||xu~|xywz|~~}}yz{{z{~~s|||}zx|x~wx|~x{iy{v~~xx|{~w{z~vxv}}{x}w~||~~{|ysz|~x|}~|w|qx~q}yz~~~y~z~}v}tv~{}zy}}{||}|~|wy~}~s~{}|z}}~~|~vwu{}~z|p~~zztzp~~u{yx|}~zxyy~{||{}wwy~ovt||}x{vr|ztw}{|utz}{{|vy}{{|||y~zxx{|~~{|vxz~}~{t{x~|}yzyz||}y~||zw}~~|}|||{|~||}}y}}~{y~~~|~{|}~yw{}t~~~{|}wy~z|{}|}{{|{{{|x}~z}~}{}|z}~xyz{~y}z{{}~w~z{{|u|xyvy|{zvxy|zxz|{|t{yzw~uxy{~~~{}~z}szx~~w~~s|y}vxy||z~}rz~yuzw}|xvy~|w}||}y}zxvy}|z}{v~|w}}ww{~y|}|o}y~y}~~}r|||w}~~~|x}zy|~xw}zx{~xy~yz|~{}~|~w|~{~sz|y~{xz{{yz}|}}{y{ty|~{{z~~x~yxw{|yw}~}|~~}~z}~||z~~yw~~~{|}{u~~x{|~~~~{~{~w{z|}x~~~~}zt{y}y|z|~{{~~~}~}{}~z{{z|}~uy~}|v}z{z}|~{x|}z}}xyz{y{}|{~}}|~}~~y~~xzz|{~~~{|~x|~{|{}}zy~~}|~~{|}~x{}~y|z|{~yz}y~~y}z~~~|}|yz~~|}~}|}~~{}}~~{~{zx|z}{~}{ys|~~}z{v|}|z||~{z|~}z~~z}|}z~||}~~|}|{}z~|~~~z{~z}{{~z}y}}~}|}~~~~zx{}~z}z|z}}|z~{~z~z|}}{}}~~x{y}}~y~~||}|yz|~}{|yxz~~}}{}|z}z}}~~y~~|~w~~~}~~|{~{y|~}~|}~}~}~~}~|~|}~}zy~~z|{|{~v~|~x{~y||vx~}|{}|~~~~w}~}z{|~~|{vz{{|{x~|~{{~}}~~|{x}||{}|~y{~{~~||~s~~}|{}{|v}z}v}zz|~{y|{~z{~{yz|~}yw~}~|r||v~z{~~x}~}ynxz|y}zwvy|~}w~|}uu|}z{y}{|y{rzz|~~|{|{~~}{}z}~{|w~||{}x~}~|x||~}ux{z~u}{u}||{zzy}~~xz}tuv}w}|{vs|}}{z}~||r|~|u|zu||yx}v|~||z{|}}y~{z}||}}v||{~y}~}{w~}{{}vy~z}{}}|w{}w~}{|}~{t~|sx~v{xz}x~~zyw~y|}|{zx~wywyy}|}~}}~{|vyw|}x{z~~{|x~{~|{x|{w~~{y|y}}}|}}yz~}wx{}zz{z{~|x|}zw|{||z}|~{~|xz|{}{y||~u}{|}}}}{}}~{}xz}wx}z~|}}|{~z{~~y~|}~uv|{wz|~~}~|~|~{{~~zx~|zzz~z{{z}wwx{{~|{y~}z~y}z~{||y~zv~}}{y}{}~uv{}}~x}~~w}{~~~|{w~{~~|v}~{||}~xx|}zz||~}}zx}|zx{|z{}|~~||x{}{{|zw{|x}vy}}~|}wx{y~||~|{{||~y{|y{~ww~{{y|y~z}}~y{~~w|{~||}{yy{}{|z}~~~{~v||y|~}z}|~wy{~|z|||z|z|~}}yzzv|~{z~{|||}|}|}}}z~{~||x~||y}}z~y|{~x}}~{~}~~~~u}{yv|{}y|z~}y~{z|}~}}~v~}~y{}}y|}|{w~~|zz|yzz~|yyx{{|s~|~}y~y{}{xo{}|{~||~}~y}z{z~}xz{{x{}wt}~}}~z{||}y|{|zy|~|}|}{}{||}~~}}~|{{~{}{~~{y~~wq~{{~}|{~}}wz}}zw{}~}~~~}~}|{zw|xzw|z|x}~{|}~|w}{~|{}~{}xq}|}t~{x|}yz|~~vzz{x~z}|~z}{}|~}~wru}x}|~~~{z}{~}|||}x~~{~z~~|}|x}z}|~~{}y~}{{|~~z||~~~y~~x{}}~z}}|y|{}zyz{y}|}vzw~wxzzuy}|x|{}}x{w||y}~~}~|{}}|}yx}|}xzyxw|~~}{y}|}|}}}{x~{z}}}{||{|}{~zy|y~||}}~|yz}{}wz}{xv}|~|v~|{{{}~}~zx~~}y{~wxy~y{zzx}}}~}~~y|zwz{x|zy}|}x{z|{zy~{{{xz}|z{~~{|~}{zyy}z|z}z~|~|~||}|~~{x~wy~{|yzy{{~}~x~|{}w}|}}xyz{|~~}}z~}z}}}{}}~|z~yuyz}|~|{~v}|~wvy}yz}}{}{~~{~{v~yz|x~{{}}oy}}|{~}{~y~zyzyx}~~x~||{{zwz~}{~z|}~yv~}}~|{}~~{x~z~yz|zz~{}~w~{}y{|{|zzy{yyx{}~z}z}|yz~~~z|{{~{}~}~|~~|tz||~w~{zy}x|||}sxy~{}x~~}z{||w}}}|~{|z}~{z|}w{}v~~~yxz~xv~~|~z~|~~{~v{yx}x}z|{{}y~zz|x{|~yx|~y}{{x|{v}{xx|y}}zzxs{~{z|xzx~y{~y||}z}}}|zzy}x}|~|}s~|y|}~~w}w}}|~~yxy||z}|u{|xz~v||y~~uz}{}y~{{|~|u~}{~~~|~x}{|}}z{~y~twv}~vvz{z||yzux~|~}u|}{z{y{}||}{|{x}{}~{||}|}{~sx|xzv}{|~{zxz|}xx}v|q~xz|{~zy{v{~yy{}~y~{ze{~|}uy}|z{~z~}w}}zzx}w}~~t|~x}{|~{vty~}z|z}t{|yw~~}zv~}t}|w~{v{~|||z}ytx|{{w{vnzx~{~y~}x~|~}}}z}}zy{|~|~z{{t}vx{~|}{}||x}|{}z~~|}~|x~y}yx{szwz~{}yz~~~~z{{~|zw~z{~}u{zz{z{~~|y||z~}~}|{x}~~}|~~}zy|z|{~}|yzy~{z}x||x~~zy}yty~}~y{yz}z~~}}|}z}z~~y}|~z~v|}xnvzw}u}{}vw{x~~~}}~||w{}~|}~y|}|z{|u~~|w|z||}}z|~y}x}yx}{|}}xzy}w{{|~|y{z{}vx~~}yyzt}|y}z|z||~o}}~||||{}z}~|}x~|~}|wyz}x{~y~}~~~z{z|{}v~|{~}~||y{w{~}}}y}z~y{|~~{|~x{~{{|}}}}}~~x||}~}|{}z}y}|z|{~}{z||y}vxyxvz{~z~~w~{y}}y|~~|y{z|~~x~z~}}~|vz}}}~}v|~~|{}|||u{~}~yzw}~}|x~{}{~~|y{}{z~}x~~~|||z}|ywwy}w~}y|{~}|~~}~~}}}xy}~~~~|y|}~|y~}|{yx|}|}~y}w~}y{ux{{|{y~|{~z|}}~|}}}}~y~z~~}w{z{~wy~{{~z|~|{|zwu~~{{~}}z|{{y|}x{~|}~{x~~{~~{~|}x~}vwz~zx}z}}zy{z|ty~|{}}}{v}z~~{z}{z~~~{}z}}~xzt{{zy}}|~x|z~{~}{~}|}{{y}}{~~}{z|}~wyw~xz{}~{~|z~x}z~}z{~}~|y}y}~w~y~~|~~w~v{}~w|{w||~}}||}|~z|yyz{}z}|~~z{}~|y}~{}}}~~~x{xy{}{tu~}{{|}}~|zv}}}|{}{zz|~||}~}}{{|{}~v}|}}y~}||{|}~~}|{}|~~~w}|sx{}w{~zx|}|}{~zx{~~}}{y}~|{{~~~{~}yvw|~||z}{v|{tw~}z~{}v|w~{}~yy~v~~z||~|{{}}~wz~yw}{w|}y~|}|wx}z||~~~|}{z|}}}w~~y{~{}~x}}y~w|uz~}}xy}{}|~z{}zz~w|~z|}}~~|{|y{~~|~{z~y~y}{|{y}}{}y{{z}y|zzx~{}}|{zz}{z|y~yz|}{z}|}|~zz{z|~vz|{|xzww~~~z}~}~~|~|||z|~{{}u|~~||z|y|zt}zy~~~yz~z}|z|v{{~}z{y{y|{}||~z}zy}~|}z~z}x{|~~y{|zuz~~}y{~z}}{y~~}~}~|y}~||{|y~}{{{~}}}}yzxx~~~~{{y{{y}{~x~uu}~}y{zz}}{||}{||~}z}{}|y}y~|y~y~z||~~||z~x{||~~|}x{z~}~~~{y|{xy||zx|}|{tw~}|ww{~|||{z}~w{}}|y}|~}}~||w|ww}zu}}}~~z|z|wt|~~~~v~|zx}zy}zyz~x{y}{{}~z~{w}||}}~{z~|xy{~z}{{y~y}{|~}t~u~x}z~|}}~}yzy{}xz|vxx|~|{}~xxz|{~ytw}~}}}{y|}~|{z{z~}}zy~}{||}|y|w|{|~~}zz~}wx}{~{~z~|z{|}~z}}{~w}xx|u|zw{|}yxt~|~~|zy~~}||z}zv~s{~|y{y~z}|}|}~~|~|~}{{~}~~yw}xyx{yy}v{z||{u~yz~|z}}|{||w{}}|y|z~z~wyy~z|yvz{|z~}|x}zzyz}zx}~z{~xs{y~~|}u|{~q|z}{~u|z}zx}w}{{|~}{z{y||{y{}}|uty|uuz}{s|{}~}{y~|~~{zzyw~~y}{}{yq~}y}{xzz~vz}zz{~}}~|{~||{u||}}}yz||y~{}z|{}y~}}{|u{~y}yyzx{~}|}~y|zz~x}ywzx|z||{}}|v{}wzysw|z|yzwz|x~~|{|~~v~{}{x~y~z~||~~~~~|{}{zy~{zy||{y~~~{w{z|{ww{{z~z}z|}~~z}y~||~}zw|x~|}w|{y{}|w~y~y{~~}~~{}}{{|}{w~{~|~y~z~~y|yxz}y}}{}||y~y{|{}~|}~}}||{}{z~~}~}~{~|{}}}z~~{~~~}}~~}~}z{x~}}v|}y|~~}~{}z~y{{}~{~{|{}{w~y~~}v}~}}}y||~|}{}~|||zt||z~|~ww{|z{v~vwy}pzzx|z||z{|x|}~v|v~{~~|}~~|}t~|{~~}|zzv~|z~zvt{}}}{~~~~~{z|~zy~~~{w{~tzz}~}{}w}u~~xxzz|}zsutzw{vu~|||}}{|xs}}~~z|w||~}~~z~t~~y~y}yyx~|~{{}~y}}}y~~}|y{z||}x~}|}}x}vwy~xy~}~||x~~~|}~{zw~}}}zyw}}~}{}~}v||~|x~}{}{xv~~~}|~|s{z|z~}}|{|x|y~{{~x}|{|x{}|}{z}|wz}{xzv~}}u~~u{}~v}}{~{u|vyu~~z}~}v}~}|oyuz~~}}|ywz{zy~zzww|}t~{{~|}}v~{}||{{{{uy{y~w}{|yy{z|~|y~zx}~y|}}~|}}}~}}~xzz{yy~~x}}{}|{}t}wv~}uxx~|~~wx}}}}~w}y}w~{z~{}~{~}{{}|~|w{|~|}|~{}s~w}|~}}zv~}|~}~{vzx}y{x|z}}~}{~~~}||z~~v{{~|{z~zz}z|{}}|}~~}|z}||}v|}{~}}|~|yy|~~}t}{~}{~y}||}~~xz~q~vzy}|z~}y|~~}~}wz|{z~~}{xq~~~w{y{tw}~~~yq}~~{~~}~x|x|{yzzs}y}{~s}}w{{||y~xtz~~~pvzxzwxz|z{o}y|rx~~~|}uxy~~|}{v}{w~{~|}r~||r}z{|yzuzuyxzw~yxw{||}~wttywwyzy|w|vz}u}}|}{}zv~~szu~{wvxz~}x|{zx}y}~yzzzu||}zo|}|}wizzsw|}|~z|x}}wzzvw~|~z~yx}}x|t~v}|v{r~z~~{~}~|}|}{{yw~xz~{~}}~~}x}w~w}z}{~}|zyz~zzy~q}~~y|~~~|}zy}}z~}~|}{~}~zuyy}{}|{z~}{z||{||{|w||~y{~{|w}~{}|w~||~w|v{z}}}x}|{wx~t{|}v}}}||{|xyz~}y}v|x~z}|}p}yx~{|}|xy|zx}t}~t{{|||}yz}z}ux~{~}~~{~}{|||}~y{~}t|w~}~|zw}|}{~w~zrw{}uw~xty~zu{~w||w|{~~z}}tzz~~|~}~|~|~{|}xz{y{vx{qy|~|{|{}}{zv~y~~y|y}zzzz|v|{vz~~{~x~~~zy}x}{~y{}{}y{~}zzx|}vw||{~}}wy}{u||x~q~{{~|}}{{z~yz}}{x{xzyyyx{||~~u~w~|~~~|rz}zu~zzz}yx~{|z}zz~}y}x{||w~~zz}z|~}}|}wqz}|~w}z}}}|{z~}~}||}x~~x{w~~}~wu{wvx~~|z{{|v}~}{|||~|~{|z|}|}~}}}|}{|~z~{|y~|zz}{~w}}~||}}~~~}}|{|~~|~}z{}~{}z|xuy~~t~}{}~z}x}|}y~||x}}~~~z|x}z}|~w{yw}zzz{{xw|{z}{y~y|z}~}}~xwzu||~|~}w{|}{z{}~}}y~{|}yw}yvxzpx}}wz{}~||~{}}{}~w|}x}}~~~~}}}|wwtz|~yytz|vzxtwwy~yu~{w|}}zzx{v~~{~~}}y{}yx~zz~}|~|}}zz|~}}z~|{~yzv{|}~w}z}~{~ww|z{xsvzz||~|}~|zt|}w}w{}xw~}wv~~~w}y~z{~~ww~|}{|x}{~y{x~wxz}|{y~|xvp}~|{~~xy~{|zzx}}}{~}~s{yv{|{{{}yy}yt|{~|~~~y~}|{y{x~}~{v~r~z~~|~{|y}z~~|zzx{}y~}zuy~~y}~~w}~~~|}|x~~~}wy}||~{w}}{{}}~~}q}}|~}||w}{|~y~}{~~x~}}tw~|z~}}{x}}v|{~t~}y}~~}|y~v||xx|{}}uzv~{{{zz}|~}{ww}~|yxx~~|u}{{~}x~}~|z{||{~}~z~lx~|yxzy{|~zxz{zx{}~|{y{wzz||y{u}t~~z~|~|~z~}|~~x~zu|{}xu~x~||yvsy|}{~wyt{{|y~{y{}{}z{~z~{~z}v}v{||~{~}}|xyz|~}yx}~}zzy|}v~|}~~}}|}|t}}|{y{|~|~~~~~~zz|~x{}|}~}|wv}|{w}~~~z{}}}w{{x{|zu}xzz{}y||v|~}{~y~yxy~y|w{z{~}y{}}{~w}~z{v}z}|}|~{v|vz}~|y~z}{~|{}z|z{~zy~x||}v{}t~}{}~|~y~zx{{zt|}|{~zywru~{~~{xsy{}{}{w~~zy}}{~}~{~|}w~{~}{}w{|u}|x~|}{}~~}zs{~yz{z}|w{}y}|{|yz}}u}}y}~{z{z{}z{}|}{~{~~~~{~|yzy{}}|~~y~~}{u}x}w}|w{~zz|yw|}~|}w}|}z{|{||}||yz|}{|z~wzz}y|yy{x{|}}v{{}~~{~~~{~z~{z{~}~xz}}|v{x~{y}x{y|{~}v{|~{z~}~~~||{{|||xv{~~{}y~||}~}}|{~{}{~~~{~|}xzy{zw|y}v~~{|~}~{~|}zy|{}~~|}}{|}{~|z{~x}~x{{}}{|~~{}~~~~{|}}|{~y{~zxz|~}w|}|y}u}y~v}~|{|~w}y}~x}~|}{}~~|xy~~{}|{v}}{}}z|~w}y{|}~z~|{}y|}vz}{z~y~{}~zyy}{~~zy}|~zx{{}{|{{z}}}}||}|~~{z}|z}|~{z}{|}}}~}}{~|yx{}}}|y~y~~|~}~}{|{~{|~y|{~{~uw~}}~~{}||x~z|}}}~||}w~w}{{~~~~z|}~~~zz~|~z}}xz~||{~|~y{~y~}~~~}}~|{~{~{{{}wz{u{}~{}~}v}~}}}x}|zy~zy|~|y~}y~~~xy~|}|~~y{~|{|}|x{w{~uz|}~|~{~{~z~~|}{}|~{~~wy{}{~~~|}{}~~z~~y{z{~|~}|~~{yz|y~{~}}{z}|~|{{}}|~~~|yx||}xz}|z}|}||{v~z}~z{}|}~}}|yzx}~|{y}|}}}|z~x{x~~}|vy{|~yzy}z~|{|||{}~|y~}{}{}{||~}~|}yw||{y{z{z}}z~x|~{qz}zz}}y{v~~|{{zy{}~x|~||~}}~{x~|~~}||{~|||{w~~|}~x|y~|w~~|z|||yy~{|~{|}z{~x~}|||{}z}~{t|}}~~|w|}t}|zyy|}s~x}xy|{~{}w~~v|z|z|~x~z|~}xzw}~p{~{{u}~|{|z|w~{{}}zy}y|v{~}{x~v}~}xz~}z|yz~~}y~|~~}y~|yv{yw~~||}{zy}~zxy~{y{~u}~y|w~z|}z|}y~z~||||{{~}}}z~}|}x~{~z}~|u}|zzz|{}~|}~}y|}y}|vt|v~~|~}z~y{|z{~u|}||{w{wv~z}{y|z|{|v|z}zyxy~y~yx{uw|ytu~~z{z|~~{vu{z}}|{u~}}}~|xv}y~zv{ty{x{z~}wx||~y}{~z}{~}|||{}|~wyxyyy|}}{{u}|}|}}{~xxvwy}|{w{|{ww~w|x}y{{||{||~|v}yy{{}y{w}~wy~{}z}}{z}x}y~{vx}|{{xz}~y{|x|{{|y{z{}r{}|{}{|yzy~{}{{||~{}y~{{xw~|~wy|z}{z}}}~y~~}~|z}}{w~}w~}|{}{|~~|{{}}~}~|~~}{~~~~{}t{~yz~{~vy{z{y}}}x{}~|yz~|||x~}x~||}}xx{}}{~}{}~{|x|}}}z}yxz{}|w}{z|{u{|v}z|}x}|~}~|}~y~}|w{}}}|z}{~v}}|~z{vz~~{z}y|~}tzz}y|v}y~{{xz~~~~x~w|~}}~|ty{|x{{{z|}}z}|~x{y|yywyyvw~{{|y}}z}~~zz~}{|{zz|{}~~|~}~~|{}|{|y}{{{{|}~z|v~~w{~~~x}}z~z||~z~y~|z|{{||z{zy}y~~~|{~y{{|~~}{}x{z}{}z}~|{z{|~}|z|~~|z{z|}}~{~|{|~}{}|z}xyw}|yz~|}~|{y~~x{|t|y~~|xy{~||}zz}~w|y}|||z{~y~z}||}xv}x~{~t}~~~|||~~|{|~{zyw}{w}{|zy{{z}~{}u|u}z~{|~xw{}y|wy~~|w{|}{|~~~~szvy{|~~{y|~~yy}~y}}y~~~|z}~~|}y{}t~|}y{~~}}u|~wz|z|{~x~|~zx{xx~z~~zw|zy|y||}~z~{y~t~|x|~|z~w}}w}vw}y~~r|~~|~~~y~~}}v|x}|}z|y{z}}y{~~~~uz~x}z{}wzsxx{yz}w}||y}|}x}|x{{v}|}u}s}y}y~v{w}{~{~zut{v{}xv~|~~x|zxw|}{|wy|y{|t~{xwvsyu~{z|}v|~s{|x~}{||~{}zyw|y~w|zyxy~~~|ys~}|x{~~~|}|}{~}v{}{}x{}s|}~}{y~~}~}y~}x{}xz~z{x|{|~|{{~z~}uy}|~z~~w}{}{{~|x|{{~}{xuyw}}yz|x||w~z{{x{}{{{z}~z~}|z~{v~{|w}~~{yx}u}y~z~}{}}}~|~{z~|{u~{}||y~|xw}~z|y}||y~~|wz{~x~wy}|||}{z}|}yzy~xxz~|{}yxw~~w~}y}ry|~z~~}||zzu{y{{}zvw~|w}z~~~}~v|yvxy}~|}|{x{tw|s{y{{uzzvxz~~}{}y}~}~}|v}}y~{}|}{|u{wz|{}}y~x~w|vz}s~{{z{}y{~}tz|}}{}}t{{|{}}v~|||||v}~~}v}r{}|{|x|~~z~y|}|}{{}|}~~vz|x}|zv|zx}~}}}|zz}|yxxzzyy|{r}|yy}~{y~}{|{}|{~}z~}|}|}~ywz}{~vu{|{v}{y|~x}}~~|yyz{u~{||w}{z}|}}|x{~}s}|{~{w}}{w|~}z~}wz}y~}~}}~z~{{|~~y~~ut|~zz}{~}}}~~}x~xzz}{}~~|~yw~{|~}|~x}}}{|{~~~|}~w|~~vw|~yz|v{zwy~}yw|{xx~{~~|~|~{}x}~z|z~}|}z|z|y~|}|~}~~|v|r{~}{}~yswz}}v|~~s{|}||~}~~}~xvx}y}x|}xyx~|~}z~~{x}{~}|w}u{}{}y{{~z}~~}{}}vu|u~}zz~y~{~{}}z|~yz~|{{~}x|~{xy|}y{~~z{~y}yy|w}}~}y}}{t~|z}|z}||~{}|}~~}v}zx|~zy}~~~~{z}y~y~zzxx}}{|{}~|x||~~~{x|wz}y|xzyyz~z~x||~x|wzv}x~}z}~{~~szw{}|~{||{~}~~~{~~z{{z~|{z~{|vw|z{}~x~}y}}yzy}}{}{}y~ovyy{}z~}}v{~{||~zw~~}~}w}~uu}|}|~}~}~xs}|y~w|}~yw~}{~u}{}{~z{y{{~{xv}~~t}||~}zz}~}~y{t||xx{wuz~|~}wx|}}~y{}}wzu}}y~zwyyz}vzv||y~|y{{|y~}z|}|z~}vw|z{~}~zv||zxy~}~zw|z{xz~{y{~}|z{z}z}||t}wy{}~|{}{}}zx|z{y|zz~}{v{}|~~}z}yx{|~}~vy}}vv|}|}~w~~{z~~wyyz}{~{{z~}~{|~{|~~uw|~|z}|x{}z~|}y~t~}~x{yp~xyx~~|{}|wwz{z{wz~}~z}~~|}yy~|{yx}{}|~|{|~|}xw}}||x~z}zw~{|x{~|y|}z}}{xz{x|||x}{zyw}~|xyz~z{xyy|v}}|~zy{u}{xz~u~{~}|z{tyv}{vy|{xvvxyxxz}}~~|y~{}||wzx|}zx|}z||~zy{}|}{x}}~~~~z}~}~}}~|~z|}}~}}z}{}~|}|}{}}||z|y~}~z}{y}{~~z|~~~zzx|~}{}~}||}yy~}|}zw{}}~}|yw~~}x~~~{}~}yy}}~x}}y|{z~}x}~{}~~~~}~wy}|{y}~z}|y}~u}}{~|}}x}vy||y{|~{}yz~}~|z}~x~~{|~}{|{}|~yzz~x|{{{{}~~z}zxzz}|z}y|x~}{~zx{z~|~{{~~|{z~|}w}{y~w~}y|||}}~y|}{s~|{}~{~{x~{}}{~~{zx}w|}}y|}|{}}z}zru|y{}tyz|yzvz}zz~z}yzu{u|~|{zx|}}}}z|}}|}}{zyy}y~w|v{~z{}~y}v~~}z|x|{~}{y{}|~|w||}{}}yzx~yx{x~yw{{z|~|{~y}xx~y}~xw}{~x~x}~}z~|}|uwr|z|u}~}|{u~y}|y~zu{{|}|}|{}~z{{xyw{|{w}}zz}zy}q|s{v{z|v~|{}~{yy~|{}uz}~~}}}|{vz{{}{}|~~u{~}}|~f}}}}z~y~~z{|}~}}}y}}}}{xz~|z~y|~{}|z{|~}~|yzv{vz~|rz{~}}}|}yz{~{{{||~}vy}|~zu}}~~z|~~|}||{~|~}}~w{|t|~z{~uy{~~~y|{|z~v|y}{~{z~}|{r{xv|||{s~}~~{}wtv{~zx}z}xzx||}}}}z|}y||{||{{y{}~|||~{|~}~}|{u~|}~~w|xy}}y{{}z{~~~{}y~z{}{}y{~}}|z{~}~~x~z}{}y~{zy{zw}{}y}{}|yxyxx}}~{{~}|}~x~~~|{{}|}{y~}~w}zz~}|wy}|}{}~z~|}~}w|z~~~yv|~~z|z}}x}~{~z}yx{}{yxzz~||y|wz{|{{~x}v{s~~~~zuvz}zxzq}~|}x{}xz~}z||y}|z~{~|{yx|||~}{}z}~~z~z}{~~~z~}~}~zx~v|}~||zz|}~~~}}~~x~~|~|}}x~~}|u}{|~|z|y}{~|z{xz}|z|x~}}{{}}}z~v~~u}~|~z}|yz{~}}vz~z}w~~~}yx~zy~~zxz{}|~|}}z~{u|x}}|~~yz|||~}}{{}wyx||xz~y}}~zw~y|{~x~{~y|}~{}{z{{zz{w|}z}}z||}z}||}{xy{~y~t|}yzx{q|{|~||zy~{}{z}|{}~w}}~}{~|y~xy{|y~}~z}}vyz~}z}y~zy{|{|zsz~~}}~~zy}|wz}}|}|xz~{{~|}w}x{~{swr}w}xz{}z~}}|}~{|}~{z|~~z}}y}~z|z{vy}y}z~{}xy~|{y{x}t~|~}{w}~z}w~{z|x~{y}|yz~~w{|}|}{z|y~|~y}}}|z{|z~|~y}|}~u|{~~{}}z~|xz}{u~|~~y}|~}{~}~w~}|}|z}u{|}}y||r}x}~|x}}z~|{}wz|~|~}xz~~}||}~x|}v~~{|s~wxz{}z{||}w|x}~x|{{y}}}u{|w}zuz|}~x|zv~{q|u~~|z~~|~|~}||{~{}||yt}{|~~|z|~x}~w~{w~}{~}{}z|~|{~~{}|~y~}x}y{|}~~}~}}w}~~{{~}~~|}}|z}{}~|{z~~|{xy|w{}{|z~}x{z}{{}~||zx{z~z~}~}|~x|}}{~~~}}~||}|z}{}y}{~|~~z{}~}}{~~~|z}|z~|~|z|{z}~|yzvz~}}|||~~~~||~{~}~y}|~}||~}z}y{}~}~|~u}}z}|v||~{~z}~{zuy|w}~|y~~||}~}z|v~w~z~yy~}||v{~|~|~x}|~~yyyy|~y{|~}||zyz}y~||zx}}|}||~}~{}{y|x{{{~|}y}~~~~|{|}~{}||{z}}z}~}|~{w~z~{}||z~||}~}|~{}|~}{~y}~}}}~~|v~~}{}|~~{|{z}x}{|~}{~z~~~}}zz{~{}|~}t~~|x{|z}}t~~|~|}~z|z}~zx{~||wv}}~}{~zw}y}}{}y{|~~~{x{}z{~w~yz}~~}~}zyy}}{}}}~~yyyq~{~|}{z{~u||f}hqzwyzms{}jstqwv|~wp|tiovpvz}}y}{|}zzx~}z~}z}yy~v}{}}{|x}yxw{x~~~|z|~yx{{{}z}y}}xzz}zxu~{x~}}~{s||||~~||y|{}|~t}ty~z{{{~{}~{||~~}y{~}|~~z{z}}~|}{w}{|ww}~{ywy}}t}zx{y}}{x}|z~z}}}}|}|~~zv{yz|||}ww||yy~z}y~||{zzy}~ty{{~}~}x~|}~w{z{w|y}u{{}|}}z||~|}z~|}z~{{||~~xyxv{x}~~z~~}y{y|~{{}}{v}vyyyz}u}yzvxx~~|}{x||}wx~~}|{{~wx|}}z~||~~}~}{{~rz|~w|}}|z}~{~zz~}z}{~|{rz~w~{~~~~}~s{~x~x|~y~{y~{w~}~}zzzxz{|v|~~n~{}|~x}~v~}}|~x~|{{{u{xzw|~~~}xzxvx~}~z~}~}~~{z~~{}{}{~vv}yw}w~|}}}~~z|yx||y~vz~{|w~y|~|}y|}w~y}{{~{w}{~w}~}~{x{ywy|~}w~|}~~~~~y||~}x{{|~{~}x{{zy}}|y{~}}x}y~xx}||z~y{vuy|}}{}w|}z}||u~y|y{}|}|v~wx}~~wz||}z~{~v||zz~}{x}||~~|}x}yv~r~}zw|zzx~|{{~y{|~zy||}z|~{~y|y{}~}x}}}~~wx|y|~zyw|x|}t}|{{}||}u}t{wy|{{|y{}}|y|z}}}{wxz~|wz~~zu~~~|z}{}~}y~x}y|{x}}|yy~}z~z}{{{z|{}}}~~|yzyzxvyp}{|w|zy|~ztz}zz}}{wzv}z}~{z}rz{yyz~}|y~yty|{}y~vzyxy~{|v{z|}yz}s|x}u~|~{~}|}~}~xw~}{ysy|~~|y~}|~zvyy}|~z{|~{|yvz}|~y||}~{z|~}~{~{|v{~|~}~~w~|z{}~{|{|v}{|{}~z{~|~yy{{~~~{~x{{~{{~z}{{{|}xz~|}|z|}v|z}}~|yyz}|uy|z{~|~~}{y}~{~~{}z|x|}}{|rwzz~~wzw|xzw}~y|~|v}~y}{~z~|}{|{}uyw{~~r{yzyz~}zz{~|~~~}{~z|||}||}{y~}zz~}}~~yq~z|u|~y}r}wvz{x}}|~z}}~u}~x}{~{{x~~xyv{z{yy}zy{||oxz{}}~z}z~}t}~|||yx~}}v{uyx~{x}{~~x}}xz~{y|{x}}||wv~zzwzy~wyw}}}~}zzwy~{}uwu~~}~{v{v{~~}|~|y}{}w~||~|w{~~{{vz~~||y|y}xzz~}|~w~y{y}|~{}z~xy~|{~||{}x~~x}}|z{~~yy}}z{~|~{~}z|y|~~{~|y}~~y~~}z{{{}|~|~z~~}~~}~z{|~~}|{z~~}}~||~~z}~||w||~{w|~~|~}~{zyyz}y{~vv~{|}}~|xy{w|~u~|{xzy}{{w~s}}z}}y~x~}z}}{z|~tzwy{{xy}~~~}{x~}~}||{}}{y{{~|}yz~~{{}}}t|xy~}}|{|}}y{~~y}z|{{uz}xzz{}~}~|xxx|}~~t{~}z}~~~|{}z}|}x~{y}{|}z~~|}}t|zy}{|~}{|y{~z}{}z{|}}{~|||~{x}|y}}||||~~~z~y{|{|{~}{||}~|~}w~{{~}~z||~}{||~|t|}~zzw~w}}{yz{}zx|}~w}||x~|t|~}uw~y~}{z|wxzy}z~~}wzy|}|z|~}}xy|~~~z{~}zyx~{~|}||yz~{~z|z}~w}w{y~y|}y{|~zvzw}y~z~z}~}}y|z||x~xz~}~zu}{w}x~yu~}{{|||{|~||}}zw~xt}z~~y{}}~yx||~~}~y|y|~~w{t{}zy~wy|}~~|z{|xv}yx{y||~yx}}}{{{}}~z}}zz{{~|x~|~y|}}|z|~|~}{|~{wx||w}z~{|{|x|}yz~~z|}x|}~{}{w~zxz|y~}zy||{~{v{x{x}v||zwz}z{y}~~y}}}}zx}|z~~zzw}~rzx{~z~yzz~{yzz{}zz||}{|t{}yz|w~}~z}}~~~z~zvy~~|}y}}wxw{w~}{}|}}}{}}{~{|t|zy|}~z~y|y{~zyty|}zz|{w{zzw{}{~}yz{z}}y||zw~}y~}z|{y}|{~z~||x~xwyz{~wy}{}z||~}|{}}|v~~~}y}{{||~z}{{~w~x~|}|}|t~~{~}|}{xy~~~|~z|~}|}z}}}x{|}}|}}|}~{{}|}yzy~~{z|~{}z}{|}}z||~|{}~||~{vyz{}y~}}}}{uzz}~}zz~x|z{v|~~z~}~~~}|~~~w}xxx|~{x{}z|{{tz|}}w|~w}x|zyz}}{{~{~~}||~{uwyz}}|}{|~}|z}|xsyy{{||z|~}y{v~u}~y{u}}}~}||}}~}z~z~{|uy}y{~}{t|z}y~{{z}{{{~~{}}|}|u}zz~zxz~|~}uyw{v}t}wz{zxx~}xs{jy{{pz~zzwx~|wy|~~tu~q|tzt~x~}}~xz{zz{}y|~xx~~z~}~vz{z|z~{z}~||w{y|}{~|z|w~yyzzuy}{~|}xz|}w~{|{{|z}|zv}~~}{~{z~{|{~w}|}|}||}vz}|~{~~~~|x}y{~}|z{~uy{||}tz{u|~y|||}}}~x~~x~t{}~|~y{}}z~}|{|{v{|zy}z~|}y|{|}yu}~|z~w{{~{{}}~{||~|{}uwxv~{||}}~~}}wz~}~}~v|}{~zx{}z}{{uz{u~~~~x}zy{z||~|}}yw}tzzx|}u}}}us|~|~{}~~r}uuxx~{v}u}v|y~x{|{v|wt}{~w~~~u}|{}~~~}{~zx~}w}|~|z|{}{{}zx|~{{}zx{~}y}~w~zzs}r~|~{y}y}z~|yz|}}{{~}}}yxv|s|v~y{zz|v~z~~}{}{}{|}w~{z~|y|z|xz~}}~y~{y|x{t}w{yy{~}}x}}{{{yx}}z|}{~xx|~y|x~{y|~}x|}}w~|}x|~|zr{|}|}|xz~~|{zvz~}}~~||x}}{|}yx||~v|~|wy~|w}||s}{}z|{{y|~}xy{|z|~yw~{~{}}}~wu{|v}}uy~~szw|~||~zz|z}~xy{~||~{{z|}|~{|tzz~{}vxy}wz}y}~w|xx}{~|xw||{~~w}yx|{v|{z~zz{v}}w{{zz~u{|~~~|u~}z}}}~{y}|xu{}}|z~}|{vt}|}~{}x}z}~~~{|||zz{z|yt~z~|u}zzyz}||~|z}~{zzzz~u}}y}|}{~}~~}~|}~{z{|~z~|~~z{{}{}}|}{~{}}|}y~}}{y}y~~}}~}{}z{x{~|||zy{~|}z{~}~}||~x~}||}~}zx|}~|~y}}~ux|}}~y}}}|~}y}~}x{x~z}~y|{{v~rx~~z~}}}z}~~|}{|}{~z~~u~yy|}x~||y{{~}{~{{~{y~{uv|w{rx}~zu||~wv{z}y}z~~{w|y~z~zw~|z|}yz~x}~z~}}|{{z}zt~z~}~~|z{zyz{y|z}zy~|x|xy~zy}{{~}{w~~}z~z}{|v|~z{}|{}||{ytz|~{~|||z~{{y{{v|~|}{~}|}{}z~}|zz~yy~~{{}~|{xz~v~w~~~~~|~|y~}~|{}}y|~||}}z|{{y{~~~}|~~}~~}}|~y{{v}}}}}}|}}~}|~~|~|{~zvz|~{}||}y{~~w}|{}}}z|}|t}x~}zv|zvu~|{~v{~z}z{y~~w{~~~w}z|{|~~~~{}~yzty}}~}y|}}}{{}}~}z|w}zxt{|y~{~}~~wxz||~~|}|y~|~}wx|~}~y{u{z|z{{~~}~~}zx~}z~||{~y}~|~|~}~~z~|}}x}~~|}|~y~|~{y|{|{vz~}}}z}|~}|z|~{~~~{}~~}v}x}zy|z}}y}{}z}w|v~{|~zzzy}}~|~~{{{x}{}|}wz{x}u|{{y|x~{~y~x~}|zz~~|}{v|}{zz~}~|}u}z~zxz~{~~|}zy|||{~{~}~|zz~{{~}~~|zzz~u}zxzt{{w}{z|}~zzz~zx||{|~||y||}}w}}x}xu~}ztz~z|~|z{~xzty~z~zx~yzzz~zyz~z}w~v||v~vzxy|~|}~}xx~~{~uv}~{zz~{{y}~}|~zwv{~w~y~||~}~zw{}~|}~q{~z~|}{~z||~~{w~|z~~|}~|}x|y}}}{~|z|}~{{~}{~y|~}}~|{|z~{|}}}~~~{~{zx~{~z~}}{z{{|{|z|||~~|}}}wz~x{~~}~|~z|y|{yz||z~xwz|z{|v{{{~}~{y~~~{~v~~}x{x~|}{|~wv}}{}~y|yz|y}|t~~w~z|}|}yz}}}{y}zzvx|{y~~y~y}zwz|}z}||}~|x~~w}~|}{~{~~}~}~~~}~|yvv|~|}}x~~zty}z~}u}}{}z{~||~~}||v~~}~~~|y{}|{zz~||z~u|}~y}}~|~~{u|}z~~zz|}~|~z}~}~~z}}~|~~}}w~}|zy}~v~s~}}}}~}~~|~{~{v{~}}~}}|}~|}|}zz~y}}~y~y~}z|{z}}}~yw}|~y~~}}}}x~y||yz~x~~{}~|~~{z{~}}yz}xx|z{~~|~{z~{~x}|}~}{}{~~zt}x|~~tzy|}{~}}|{~z~|}~{|}x}z~|z{|}x}z~z|}}x||yty~{{x}x}zzz{wy{~}{|}zw{~|t~|~{z~{{yz~xz}{}~vy|{~yyz|sx{~~~|}~~{yz~{~}||~|y}z~{{{zz{{y{~}~{|x}z{ty}}||}~x{y}}~|}~{{||{}|}|{w|~}z|~~||z}|y{y{z{t~~yxx}|y}xz~|{w~~}y{zxx|u}z}}|{~xv{|}u~z~w}|x{w{ywy~{|||y}vs|~xx|wxy{x}||{{sy}xy}}}|{y}xyz~}~y~~|xzzw~}y{~|~x}z{~|x~z}x}~z}yx}~{z}~x~~z{~z~~~~yz~~|x}{~~~|z{|z~~y{}}}x}~|z~x||{~{~yzx}ws|}wy~v{~||z}{z~w||}}zv~~z|}wxr~~v~}x{{|}{w~{yz|~~~u{x}|~}}|}~}z~~|}|~|z{}{~||~~{~}{w{{}{z}}|y{x{x{~y~~{|xwy|w{}{~}yyzu~~}rz{{|yy{~z}w{u~zyv||w{~w{~u~~vxxwzzx~~y~xu|zz|z}{xyz~z}{}uu}{}~z}yzwz{yz}v{{~|x|z{yzy}{}~}|}}~~}z~}~xw~~~}{z~|}|{}{||x{~}|~}}~}~~{~|z{}|~z}zy~~y~}~}x}y|z|{~|~}~z~y|x{u~zz}twz{{{}{}yx}{~||x|q}z|z}}|~~{w{{~zxz|~|}{~}}~|y}{z}s{||{{}w||{yy}}y}}|{||}~}|x}~}{}yzyz}~~|y|}z|}xy~yzyz}r~{|{}}}~}x|}y~z}~}}|z{yzz~}y~z{~{{}{|}}|}{{y}}~y{||y{~}~}~~}~}w~{yz~xvv{z}}}z~zz|}}~y||~y}}|}||~||~ww~}v}}}{{{zw}~}}x~z|v|||~y|~|z~z~zzyx|{w~}yx|{|}~~|~~~||{|uwq~~~x~|{yyxw}{y|~}{~~|}zu}}|y~z~z}~z||~ww}}{|{}y|}wxw}pwxvz}~zyxuus{{|}}||}y{}|}w~yzuv{{}}zw{z}||{s~yr|~~vyy}{~~{~{~~t}{{~~}z{~|~z~z~z~x|yy|||u~|}{{vz{}||}zy|y{}x~}{x~y{|}yy|{uy|}{|{}yx|~z}zy~|z||{z|~||}|}{|~x|{zv~{|~~{z|~}|{|z~|z}}|{}{y{}||z~y~{z{~~}~{|~w}~|{{{}zx~|u}||~~~~~|{{|}x|~|vz{~{{~~y{~|{|}~|~z{}~~|~{}}zyz~|x|u}~~~}}~~}~{{|~w}}y||~~~}|{}}zz|z}}z}~u~|~xu~|{}{}~yx}~{}xu~y}|~|s|{|{{|~vwzo}y}}w|}~}{{}}~|ys~{{{|~||z}y~~||x|~|~{|{{}}z}~~~~{}|~~}||z|}~{}~}y~{~|}x|{x{|x~{{}}zzx}~{{}~|~~}~~|y{~{|z~}}|~~~}~}}~~zxx~{{}}{}{~}~{|xzx~}~}}z|}~}|~}y}~~~}~{~|}~}zz}w}~~~|y~{|||u}w}~y~}u}u{|{x}|{~wyx||}~|}z~y~~|}{zv~|~{}}~}tt}x|~z~wz~~|vx~xz~~~{|||||~w}v|{~w||{{{yzy~qzy~|}x}}}}}|z|}x}~}{{{|~yyx{}~z~~~~zy~x~{yv~~xy}}x~ws{syz~~z}~z~wwyzv|xw}y|~}~x{}~zy}twx}||~}x~}|yz~{~x}|~|{}y~|{wuyvxs~~}~}|~wyu}ux}x~}||x}{~z|zy~z}}~}vy~wv}y}}{zx|~y}u{{{~|t|{}~z~~~z~v{x~|}z~~~~zz}y~z|}x}wu}z}|y|}x|w{t~}}{}~u|{uz~}|~s|~y{~mz{|~zz{{|{~}}y}xyyy}z}~|z~}||{}~x~us}|}x}~~{z~}{||~z|~|{z~z}wt}~u|x~w~}u|~}wz{v~~||}~u||~{|}~|{|}~{vy}y|{vz|w}~zx||||~uw|xw{z~}wy}y~y~~}~}}}vy}}x|~z|~~z~|~{~z{|~}y}}|~{~~~~~~~xzy}~~w}z~~}~}y}{|zzz~w~}|{}z}z}yzzy}}y}u{{~~zz}{~x~y}zz{~v{t|y}~zz}w~y~}~yyz|{{~~~}u{z{}}~}{}w~y||x{|~~|~z~{~~~z}~x|}}~|w}}||~{}}~~~~~~}y~x~|~{}~x~}v||||x||{}~{{|z~}}|~|~zw{{z~xz||{}|}~}}|~v{z|~~zy~}~z}~xzz}}|z~{~}}{~zy|z~uz~w|y}||z~~|}|}|}~x|~~|{{y}{{}{}|}z~~x}x}}~|{x~~~{~}}~z|}~~~{|~z~~~~wz}|~~}{~s~yw~~|~~z{y||yz~}~}~qy|}|}w||z||w|~||~~~||~~{z~{y{~||}}~|yz|{z{z}{}z{{w}~~||}}~|~}|}x{x}}}}s}||{~{|}|~}{{{|}}~}|x}~z|z}z~~z}~{~|w|}z}{zx~{}|{~~}~}{~~~}~y}~|}~|{{w}{|{y|~~~~~~||{|~~~x}}~}}z|~~{|}}}y~~yvz}||y{}}|~z~{z|~x}~}~}{{~{~}~||~~z~}{}}y}|}x~|}y}}{}||~{||}}|{|{zz|~~z}}~}~{~z}}}z|~|~{~z}z}}||}||||}{|}~}x|}z||{~~}~{~}~~{}}zyv~}y}}}}{~|~}{{}~{}|zx}y|xwz}~~}z}|{~y~|}{}|{~~{~|yuxyz}~y|y~{{{z~y}~z~}u}v~{s}{|~}x{{~~z~}{~{}}~z||{{{yy|~||}}}}|~}}|~z|~~}||{}}~~{y}~y{w~}w~~~yz~~}~~|}}}|xx~}{~|z{x}||z~{~{|{}|y||}~{||x~{z|~}~y{yy|}{zy|x}xzyzz~~w|qyzw~z}z~z{}~}}~|{{|~z|}wx~x}~z~}{{~~}x{{}y}|~z|~||~~}}~{}|yx{{z{y|{z|~|}y|~~y{~~}|~{~~}y}z}||~}~{}{}~|z|}||}z}}y}~y|{{|yx}|~}|~}}|{{z~x}}}}}~z~~||y}}{~y}|}|}}{|xzywz~|~~~|}~~|~}~}}y}}~~~v}z{~}{}{~}|~~|z|~}{}{~~{{~|y{~z~}}}w~{~||{~}||~~|}|~~}~~~~}x~}|}{}|{|~}~}~|~|~~|~~|{~{|z~~y~~{}{}~zz}}~~~||x}|}~{}y}~}~}~~}~|{~~|zz{~{w~~x}~{|~xz{~~{||x~||}{|}~}z~~|}~{}}|z|~}}}~~y}}|wy~}|z~~|}}{~{~|}{}{~}}~~~~|{~}~~{~{~z}~|}}~yy{~wzx}~~}||~zz|}}xt}vy~~~|~}}v}|{y~{}zz~~{}{{~wz|~z{{||~~}}||{yxz}}{~}{~y}~}~y{~}z}}||||w}}{v}|}{|||}{~{}{~~{}{y{~}}w}|~}}|~~|}}~|}z}~}|}~}~{~~|~|~}~}~|~||~x|z|}y||~~}~~q|~||{||~~z}|~|}zx}zz{~{~z~}v{{~~|x}}z}~y||z}~~yz|~}~|~~x~}~{|||~|}xx|{}y{|~}~}|}~}z{|}~~{}{}~zz~w}~~}yy}|||}{{~{~{~|z~}~|}x|~~~t}}|}{}|~y|x}z{{y}~|z{y{zvy{~~~~}zzy}}~}}|}{|v|x}x~|~|~|~}|{{~|}{}z}{~||~{}~|~|||~||~}~|{}|}}}~~~||}~{~{{z{||}}{}~{~}zw|~~~~|}}~~u}}~zy}z{~y~y}~v|y~}~~~}~z~|x{|v~xz}w~|~v{y|u~~~{~~}zy{~||z~~~|}{z~z{zww}}|x|}x|||y~|~}{~{~{w}|}|~~|||}}v}{{}}w~~~|~}y|{|~}}v}~w|y~}}~~~{z}z|{|{zv|}||{{~~}x||~}~~~|~~~~{~}~z}~}|~{{~|w}}~{~~}|{|{~{{|~z|}}~|z~{~y|~}|~|}}|~y{|z||~~t~~}yy}zyu{~x~~|~{{~~z}z|y}|{y}~y~x~{{}|}y|}}{y|~{~~~~~~~{}{v||}~}}}~{|~}z}z~|y~~{~~~~~{}~|~|}|x||~~{|}zy|{z||w}}~z}{||{}|}~{y|}~}|}|z{~}y~{yx}y~~{|w{~{}|{yx|}~~~|{{~}z}w}|~}}~|}~}~~~}|z}~~}|{}~}y~~y|}{{zs{w{|~~}||{z~|{~~}|~}y|~}||}~~{|}~y~|~}~~}||}z{~|~|}|y}z}z~z{|y~||{}~~}|}}~{~}|~~{|wy~{|~}x{~~~{~{~|~{}{}~|}}}|z}z}~{{|~x{~}x{xx~{}}~~~~z}{~}}{z|~~}~|||~~||wz}}{}~~~~~w{~~|}~~z|~vx|x{z{~~~{|~}z}|~~}~}}|~u~~~z}|~}}~|}z|~{}~}||~{z~~y}}}vw~||{~y}~|{}}|z~|z}~z|~zy|~}}~~}{|~~{w|~~}}~|}{s{~~{~|~y}||{z}~~~|w~|~}zy|{}|}x~~~{}}{}}w}{}}~~~~|}}w}z{}x{{}}}~||z}}}~xz~~}|{y~~|~~||x~}}}w}v~|v~~}{}}|{{r~|}||y}{}~}x}~{{}}yy~|~~~}|||~}~|{|{~|{}~}~|~}}|{{||~x|~~}~}z~|y{|~|{~}}~~~{~|x~~|}}}|}{}{~}{z|{}~}||||}~}{x}z|{~z{}||~}z~}{xw~{|}~vzy{|y|~~}}}~}w~~|~}~~yw~~}zv~|~{|~||{|}w}~|v}xy~z{y~}{z}}~~~{|~{}}{{w{}|{||{z~~}w}~}y}{|~}|~~{}}~~|}|~}~}y}w}|~y|||~~v~~}y~~}}~z~~~x|}x|}z~{y~|z}}}~|z}{}~|{|}z}~}z}}z~y|{}~}~z|{}{~~|{|~~z||~~|}}z}}|~}}y}x~|}|v|~}|~~~z|~~z}}{|~}~~||~}y~z~{~y~|{}}~}z|}||wyy|~|~~{|~x~z|}{{|||z~}zw}~~~{||x}~}~}zxz{{{{|}yy|x{{y}|v{~}{~~v}}y~x~}}~|{x{}|}{}}}y}}}||~~|~{~ty~}~{{|~y~xzz|yw~~vz|~}}u}~|z}}~||{~}~|~|~~|~~~yy||}~}y~}~~}|}|||z}}~{z}|~}x{z}}}{|~|~|~zw|~}|}|~v}~|}{}z~}}|}|~{w}|~~y|}~{}{}{|~|}y}~z}{z}z}z{|~x}|||}~~~y|z}{|y~{~}}~}{~{{~}}{{}|}}x{zzx|~{~{{~|y~~y}}~~~x~{|zz|{}}{|}|}z}~~~}}~~{y|}|~}zz~|}~~}|}~}~||{{~|~}}{}~|||}}~~{~~~|~z|x}}~}~~~~z~}y~z~~~{}z~}yz{~{{}z~|z{~z{z|}{}~~}{}|{~~~~~y{}||zy}w~~~~}}||~~|}}t~~wy{~}~~{z||~}~~{~~||~}|}~~~wx~}|~{|~}|{}~~}}{|z}y|u}~y~x~~}~~|}~~~}|~}}|}ww|~z|{{~|z~}|zz}~|}~~yyz|}}|}}}}}~|zzzyz{|}y~x{|z{~}y|}~x{{{|{{}t~{}~~}}z|{~wx{~y|~~||~{{}x}x~}|{}~}~}|z||}}|~x||}{|~~|}~~{}z{}z~}|z|~{y~}{}~{}{~}|~~~~{~~y||~~}|{~{x}}}}||{}~|~~||||}~~|~}}~~y~}~~}{~}~}||x{~|y~{}~~~|~{|~~{~y}~~{~~z{||z~}{|u~|}vz{{y~~|{{~z~~~}~z{v~|}~{z}}y~}w{}{}||xzyzy}~}~y}wv}}}~~}}z}y}~y}}w{v~}yw|}}}~{~{~~|yw}~z}~}~u}}}yz~~~~~{|~wy~{~}~}|}z}~zx{|~}}{|}zyxw~~{{zs}|~}~}{~|~~|}{~}|~}~|}}z~|}~~|~~}w}|y~}x{||z~{z~y~|z~~y}zz~x|||z~|}~zz{~}}~{z}{~|}}{w~~~||z{~~}z{z|||~|}}~z|}|~~w~}}}||{{{x|}|~z|{|{yz}~~|~yv~y~w{||}}|}~y}{}~z~x}}|}{}{x|}}z}}}|~y~}{y||~}|{wx~|~~{~}~}|z|}}z}~~~x}~~z{z~~y{}}||~{}~v|{~|}y}|~~|{{{}|~~}}|{y~z}}~z{z~z~{|}{w}~}}{}~~{y|z~~~}}z|~|~}}z{}}~~}|}w~{~y}z{}z~zz|zz~w~}|y|z~~{z}~~}|~{~{}~~||~z|||x|}}y||z~~~yzyv}}}z~|}}y~~{~{|}~z{}}~}}|{|zz~y~{{y}}|z~~|{~y{|~x~~{t{}||~|~}{y~}|zw{{~{}v}}z{xz{~}z}{|~||~z}~}{z~w}|}~|~|{|{|}|z}{}~||||z{|}y{{|~|w~y}|y}xx}}zy|{y}z|~|v}}}uy~{x}~}|}~~{}w|}{~}~}z~}~{|}}|{~v~y~~}}}~}|}z}{}~z{}yz}}~~~~v|~z}~~z}|}|}z|}|}{~||~~~~~zz||y~~~~~~{x}w~}y~{~~~y~}{{}}{|~}}|y|~~~}|~{y}{|y~{}u~|~x}}~~|x~}~y~~|~~~|}}|y}w}}~{|}z~}|y|~}|~~}zx~}|||~|~}}{w~z~~{}xy{{}z}{{}{|}~~|}{~}z}{~yzzxz{z{}z~}z||~{}~~||z|}|~~y|{{{zzy~|~}yyy}{y~~{~}~~~z}y|}~|}}}v|}~x}~|~|{}|~~}~}z~z~|y}{}~|~}}w~z|z}~~yy~|z~|{|~~~|{}y||{}vz~}{}y~x{w~~~y~}|w}|{x~~~~~~||}|zz}|}}{}{|}~}~|x}{yz{{x~}~}w~~~}}}y{~}~}}}~vz}{zz}}~{~vy~}~~|z}}|}{~~{}||{}}y~y{}~{{|}}y{{y}{y{{x}~}}}||xy~|~~|~x~|z|~}z{|~{|}}|yxzwzz~}{}}}~~{x~~~|z~w|~z~}wzty{~~~|z~{w}|~w}z}|yzwz{{z~yz||}zuyyx|||{{zww}~~}}~z|z}}~|{{|v}~~~}|~}~{~z~|x~}~~~}}v|{}{{~}}}~|}~|r~{}~{}}|v~z|}~~|z|}~y|z}~|~xx{{|w~x}}{{{}}{|}{{~}~z}}{}||~}y}~~|~|~}y}~y}z~}{}~|zu~}}~yz}z}y{{}~y~{{}~}v~zz{}~z}}}v{}~~{w{|}~{z~w~}{{~|~|}|||yy~~~{|~~~~|~x}|{}|~|~|~x}}z~}~}|}|~}{yzz~{z{|||}z}|~}}}{xzz~}||~z}}|}}{}~|~}~{}{~x{yz}{}|z{|{z~{~||}|z~z~|}}}~{x~|~z~|~~x|y}zz}{~z{|{~}~}yy}{|y}x|}~~zz~}||~~~}~}|w~~~~}~~}|~~|}}~~}{~|z}z}}z}~}||||{~}{|~{}~y}}x~~{~||z|}z||x|}}~~~~}}~~~}~s{zzz|~~y{~}||}~}}x~|{y~~~~~}z}}}{}{z}{u}|{~}z~|{~~x}z{|}{|~|~}}}}y~~z~}|{|{}~|x{||{z|~}{~{}y}{}~|{z{~|~~~}}|~|{~~zzw~~}~}~}}|y|z|}|~~z|~}~z~}~z}{}{~~|z~}{}}x{|{~{}~}}z}~z|{xwz}~yzz~}|v}~|{}{~~~|~||}||}|~y}y~x}x{{~z|{}~{~}|{{~{{{{}{yy|}|z{}|xx}v~|{y}~{{~w~~y|}|xw{}|v~{{}{~}z|~~~x~w~z~|}z}{yy}}}}|{|}~|~~z}|||{|y~~|~{}|}|~|}|~{~}~}||~~y}}~}|z~z}{~x||}|}~|~}y}}z{~{|z|}}}w|{~~y|{|xy}||z~}~}|y}}}z~}wx~y|~~~{}}x~|w|~~||}}{|~}z|}{w|{}y|~xx{}}x{||y{~~|{z{}y}w}|~~}}z|~}u~}}wy|}}~|{~z{}z}x{}|||{~|}}}{z}z}|}z~|}}~{}}}|z~|}~|y~~{}~~}|{|~y|y~|~x|}~|~}{{~{|~zw{}z~~|z}||~|~~||}|}~~z~{~}z~|}}~~}~zy}}w||}}}z~|~~{}}~~|}~~x|~|}y{~}zzx~zx}}}{{{|~}~~~~x}}}~}}}|{}{|w}|{|}x~x}y~}}zv}}{}}{{~|~~|~~xtz{}y}sz}z|x}|u~~v}z}|z|}{yy{}z}}|v|xx~}}~|zzs~v}~v|{y}y{~~|z|{~q~y{~|}{s~z|}||{w|{~~|zy}z{|~uvu}z}~z}||{}{w}~}|}}}}|~z~~|}}|zw{yzz|~yy~yw{w}|}~~~||}w|z}}}z}{~}zwzy}{}~w|~{~z~~}~t~}~~|~|{}xv~w||~wxy{yy}{zz|~}{z}w}z~~}{}~~~{{|{}}}|~~|~z|y}z||~|~{~||~~v}y{~~y~z|}~}~~zs}{~~}}~y}~}~|~~~{~~y}|}{}~{~}~{z{~~}}~~}|{~|~y~yz~|~}z~}~~{~}~}|~|{|}~}~}}|~}{|~|{}~z~~z|~~}}~{|}|y}}~|~}~zz|~{zy~~{||z}w}{yuy~}z{}{}}~z}~}|~y}~~{}{~|yx~{}~~~}}}~~w|||~xzr}u}}{|y}|x}xz}}{}~}|y~}|~{{{|x}xz~z}zv~|y|{}}}{~y|z|}w~{~}~|~~{|~}~}~{}}~~~|~~~~~}y~sv~~~|}~~~~~yy~~~{{}|{}w~~yv~|}|~}|~{|~}|~~{~}}~~z}~~~~z}~|y~|z~~{~}~}}~~|{}|~|{{~~|~|{z|}~}|~{~~}}v~~z||~x~y|||~~{~~~{|~}}{~y~s~~~|{~|zx|}x}~}zy|~z~|{|}|||~~}{}~~~|~|}|~{y|~}}{{}~}zy|}~z~}~}}~{}~{{w~~|{~wyz|t}~z~|~~{{{||}||z}~{~{~zy|z{~z~~~~~}}|~|{zz~|x~z}}z{{~{yz~}}{zv}~|}y}}~|zz{}zyv{{{~}z|~z|{v|z~|||~y~y~}|z~~{}|~}}{y{|yx}||~}~|~~u}z}z|}}||v~wx}y~{{~~~|zx}}~}y}~}}}x~~}z}}~~wz}}}~~{}|{~z~}}~~}}z{z~|~|}|z}~|}y~{v}y|}x~|{}z{z}|~y|~|~|}|}~x~||~{|y~z}~y}z{}|~}{}}y{y~y~z~~~{z}~~~z~}}z}}yy||~{~|z}~}|}~}yl}}x{~}~{|~~|{|zy}{}}~~vy|z~~|z~|xy{|x}~}{|}}{}{}{{z}{~}y~~}~}{}}{}|{w}}~~~|}yz|z|}|~}}~}}}~|~{~~y~{|~|}|y}~|}y~|~}{y|{~}}~}|}{{{}zz|}}~~}y||zz}|{~y{|{~{z}~}~}|~}y~~}||{~}|~|z}{~}t|y}}}|~}}~}}t}{z}~z~|~~~|~z{||~|}}y~~y{}}y||}}|}y~{y|~z}}zz}~{{~z|z}}xy~~|}{~~}}}v~}~~}xv{}z~~y|}||~y~{}|z}}{}{z~||~zzx}}y|||{|zs~~}}}}x|{|}yw~z|z~{z~~}|~|}}}x}~~~xzu}}~~{~|~~~~z~~|{}}|{zz}~|~}~z{{~z~|}~{}~{}|~~}}y{{~|~{}~{}z~x|y}~}x{}{|||~y~~}}}}||z|{~{~|~}~{~{~~z~}z|~z{z|~~z|~y{|}~}}~}}x||}}~|{}w{y~{~~~}|~~{}}~z~|}{}}x~w~~z||}~z|{~xv|~y|~~z~{{}~}{~~|~{~|~||~{~|}}~y||{}}|}{~|}~}~}}|}~{}|w}{~~~|y}~~~~~}~|~}y}|{{|{}|}~~~~}~|~y}~~|~~||}~~}~~|{|}|}||}|{}{~||{~}}~||{|z~{}zzy|}y{{~}|~{~{}~|}y~v|~|}z~{z|{||y}}v|zz}}y~~}~~}{~~|~~~zz~~~~{z~~~}xz{~|z~{~yw|~}~}}}{~~~~y}}}|{~|{}~{w|~{~||z|}{{|~|y|~z}}{{}~z~|~~~|z}x|~{}|}~}}~yt|~vy||}||y~}~w~~{v~}|}||~~x}~}zy{{~{{~~|~|{~}~}x~~~{~~}~~}}}{z~|z{~}~z|}|}~{{}~~}{|}z~}}||{z|{}y}x|~rzw}~y~~~~zx|}x~zz}wz}w~u|z}~{yuy~|~~}z|uv}|w|~}y|~yz}~|}}nvzx|}{~y}zz}~|~}v~w|}|~}}yy~}|}|}~|{{|}}u~{t~}~v}|~u}zu||{}|~~}~}}~~~{|~|}~{}t~}|}}}~z~|w}~~~|~y{{~~}|~||}~}z~}}~}~|~~}~~~~{{~z{~}|~}{w{v}||~z{~zz~{~}~w}~}}}~||{x{w}||~{}}~}z|z|}~~}}}}}}{||}~~{{~|~~~}z|~|zy}}}{z~}|}{}~~}{~~zy{~|}|x~{|z|{||||~~~~~}~~~~|x|}~||y~|{{}}~{|~~v~{~}}{~z{~}}~{y~|}~z{{~{}~~{~}{}|}~~{z}~~~zy|}zy}}}}|z}y{~{zz}{}~~~|~|~~xy~z~z|~~x{}|~~|z{|{|}z{x~~~}{~|}}{~}{}|}{}{{~||~~}}}~~zz{~~|~~{{~xy}~~z~y}~||~}z}z{}y{x|z~}z~~~{w~zz|x{}y}~{~~}yv}}||~|}~{~}z{|}w}~~~}}|}x~y~}}z{|~|}{|~y{~zz~yz~}}|~~~z~~~||{y|}}|w{}x{}{}~|~}x~|}~{}xz}||}z{}}~||~||{{|~z~~u}{~~}~{{xz~{x{~~~|~~}}|~||{{{|{~{|~{~|z~}|}~~}~y~~{{{y~~y~z~{zz}x|}~}~}~}}~~}{~}|}{{|~}}|~|z~y~z~|}|~{~{}}zy{~~y|~v{{}|v}y{{}~}z~~~}|w~~z{}|~{~|zz}}~|~~z|}x}~z~~}~~x{~~y|~~|~~~z}{{{}{{|z~~}|{||}|~{}~t{~z}~{}~~v{~}}z~{}x~}~|{x~x|y~}~y{z~{||~~w}{{{}|{x}}|~k}y|x}{{}|z}~yz{zy}~}}|{yz~}}}y~{~~w~|{{|}~~}z~{~x|}}z{}{{|||v|~yz~{zz~}z|xyǛs}w僎z~}||{}~{{~zz|}~~}~}u}y|}~~~~w{}~}}~z~~~}}{}|zx}~y~}~y~~||~z}~}{~{{{}y}{}{|~w{|~~y{~}{|y~{}||{}~}x~}z|u~~}~}}~}}|~}|}}~}|}~|{|~{|}~~y~}|}}}~}~~u~|z~|w|zx~~|~z}}x~}y}{||zyzx~}~|||~{~~~{~~}z{}y}~~}|}~{v}x~~~|~~|x{~{~||~{|}~~~|}x{x}~}|{|}}x~z~{~x{}|}~y~~}~{z~|}x|}z}|~~}|~}~{~t}}~~~||}|}{}|~|}zx{~{|~{}~}}}|y}{xv{{||z}~y{~~z|{}}}}|~z|}{~}~xzz}~{~~}z|~w|~||{}}z}||wz}~~~}~|||}}~yx~}|~}~|~|}z}||}y{z~~{y{y|~{}x{}||{||}~|~w~}{}~}~||}~}{}yy~yy{}{~}||{}y~y{~~z~}~~}}|{|}vy}~~}{z}|~}{}~|~y}|}~yww~z~}|zx}|}}|}~z|}|~}~}y}|z{}{~|}{z~~~|~x|{~{{{}}x||~~~|{z|~~~z{{y}vz{{y~~{{|u}x~}}|~vyw~~|}|{~}|{~~~}|{{~{{}~|~|~|||~~{}~}|z{|~}~t{{{{}z{~~~zx|{||s{~}}|v}{y|}|}}~~~}{~~x|}xy{w~}}zxy||~~}|{z{}~y}{z}{{}{z|}|}z|~}{~}~|~}{y~||~|}y~x|{~~~~}w~}z~|~{|{z~~~}~z~}~|~~wz}{}|{z~~}{{v{~{~zz~~}~}~{z~}x|~}}~}~~}y|{~z|~}~{~}~~wz~~}~}}{y|}}z|{~|y}~}}|}y{|z~|{{}{|{}y}t{x{|}z{|}|}u}z~~|}w~|w|}{y}~~zww|zp}}|}~{}~}~{||}|~~|{}z}{|}{~}~u}~~~~}x}|u~yz}}~vuwwuvuwwvxuzz|zru|z{ypwu|r{ywwrsnvtsttwmwr{twtsqzytyzwzytx|~rzwhvrxlowuy|vn}xvryrrqpt`}wvvqtkiytpqw|rszlw{vyzttvylnvpeuzqrvouq{wtuvgn{~x}z|qvussjxzzx{s1nunyuqtztvjo`utxhtoxxw|p{lwsryzgz|vzomtswlkyszvpsqyuturszx}uxrpr}wpusturzpr| sqtorxqzttouxy{Oxyrmuzoqszxxvyy}us~pywyqr{nyuusps`vpjqvrzwovw{sn|tpqrq|w{|vnwqsy{|us{tp~{xxu|nrwxtumy|lvonvwrxwzzzwryy|{rxq{ruztxsvj|wtut}~{}~}|||}~~|}|z~~y{z|~|}~z~yz~{~~}~~~~{~y}{~|}~~|}|w}w~~~}{|~~y{|y||~~~|{z~u~~x~{~}}~y~|~~v~~|~{~}}~~}u}~~~~~|~~~z~~|~|}~}{||~~}y}~{|~}}|}}~~{~w~{|~{|{}yz~}~~~~}||}~}~{}u~v~~wz~~z|z~{y}||{~|{}~~u{~}zy~|~|~}w~}x{|~{}z}~|w|}~}~y~~v}u|~|{z}}u~||~}{|w{}}|}}~}|~y}}|{~~~~zz~y}x}z}~~}{y|w~~{|{~{~{y~x}~}}}{{~|y{}zuz{~~|~v{}~zzv}{{~|w}x|~~z|~{}~z{~~}|}~yz|{{~{w}~~{}~|~z~z~}{z}~~~x|}~z}}xx~{}~{{~~~}}}}~y||x|{z}{|{|}~|}~x|{~|}~w|}}}|~}~}z~}|y~y{|}~}~}~w~|{~yz~}}}|}z}{}zz~|}~|y~~yyy{z~z{}z}~y{z~||{~zs}~|}}{~zz}~}{~}z}}~}~|z|~{v}z}x~{x||}}|}x}}||z}}}~~{}|~~y{~~|~y||~~ywxyy{|z~||~~}~}~v~}~{~~|~}{~zz~}~|}||~}~||~~|}|~|~}~}|~~~~~{{}~~|~~|{}}~|~}{zy}}~~{|~~||~}|||{{}y{y{|~z{~w{|~}}zz{|y~~z|{{~|{|}{~~~~{}y}z{z{zy~~zv~~z~~|y|~{}y}x}||~}}}v~{|}z}}~|yy}~}y}|}~z}~|~}~~{~w}}~}~~~z~~|}x~}}~~y~}~{|}{|}{zy|{}~{}z|~}}~|zz}~}}|}y~x}|{{|{z~}~~yz{||||~{}xwy~y}~}~~~~zyv{|}}z}}|||{~~~}z~{}~x|~}}{}}y}~y~{~}~~{|{|~}|~~~{|~||~~~yx~|~}z{}}}}~x|~~~{~}u|~~}}~~y~~x|~{~~|~y}|~|y~}~{~~z|}z}z~}|~z|}}z}~}z~|~~~{y}}}~{|~|x~||{|~}~~~|w{~}z~z{}}~~|~~}w~~|z}}|~yzxy{~}{|}||{v}ry}y~wy}~~wz{{{y{|tz||{{~}y~|~w~|z~|~}z}~z}z}~~|{~}z}z}~}~|}z~}|{{r~||z}~~}~}|~~{yyz~~}|y|}{{~~~~|z}}~~~zy~}z{}|{~z~~~{z}~}}}~|{}~}|y}~|~{zyx{~z||{~{~z{~}{~|~{{~~}z~}|zz{~{w|x~z~}~~~}~{~{}~{z}z|~}}z|}|}~~}yzw}z}}~}}v}~}|}~{z}}{|{~~{~~xz~~}~z|v|~y~~~y~|||{{}}~|}}x~}y}~}y|yz}~}{}~|~~}}w~}z~|z}zy~|~}~{~|~}{~}~w~{}xwx|}||~{}~u~z}x|~z}}t~||wv}yz|{~|yyx~{}u~~}~~~}|~|~~}{|z~~z|{}z~~|||}~z~x~||}|x~}}{z{~}~}~|y~zx~||v~|}~~}|z~|z~||x{~}|{|{{|}~|~|~|~~||{x|{{y~}zy~z||~~~{}}|~~~w}}~~}}~}~~}~v}|{}}~~~|~}{{~yy~~zz}z~|z}}}|||{z}|}|{}|x}~~}yx|w|~}|~|x~r|~~|z~~~zyz}}y}|z~{|y~}~}}}{~~}~z{~}~|x}x}|}z}|}}|||}~{~~}{|}}}|}yzw{{~zw{zvvz~}twy||||{{~yyy|||}zptzstxsux{xzyw|w~}}zx{wvv}vn{slu{~w|r{{uy~vrqvhy|zz}rrj{}{x{~ysq|zu{w}xlv|dwxvyzuxru~ylm~~|}ux~{ymt{|~yx1q{|}{w{zu}nqnvzqtxzy}utwuu||f}~w|qtvwzrt}v~xu|s|yv{wvxy}rsn|{{{r}xqy};ytuvt{y{xztqwc}z~qt|s}z}zx{|~uwlyyzxz~vw|{ugwwt{wnvzwz{pz}~o{uqzo|z{~{xzw|x}}uvzm|w}|{u{x}zx}jtl|qv{wwz|}z}zr~tq{t}tuzvr~z}zy{|z~|y||{~|{}}y~{yz}}y{z}}wz}}}}|{|~|~{|~{~|{{}~w~y}z|||||{}~}~}~{~}}}{~}~}}x|}}{{{{~}z||~~|}~~x{|x}x~{~~{z}~y}~z}~}~~|{~|zy}}}|}|{}|~~~x}~||{{}|{}|~{~y|}yz~~y{{y~z{~y|y{~{|y~}zy{}}y||{{{|~~|{~~zzyx}~z}~|~{~}~}y~~~{~~{}~{|z||}}|~}~~}|~~}}~z}~}|x}|y~z~}}{|u~~|w}|~~~xw|{~|~|}~w}}~~}|~}~}x~}{z{~~u~|{y{{}~~~}~{{}}|z|z{~|w{z}{}y{y}{~|~}x~}}~}yw}y{~~z}z|~~~|~yx{}~~|~{~~}y}{~x}z}zzzy|z|}x|~|~}|~}}~}zz}z~|~u||}}}}~~|~}~|{z{x|z|zy~}}~{~~~|}{x}}}~}|~~x~{yzz~}w}~}}~|{z~~}}~{|zx~~~}yz~{{~~}z|}~|~||~}zyx}}{|~yz|{~~}|x~}~~}|~}~~}{~|{~w||}}~}~wz}}x{}~~x~{|}x~~~|}}~{~}{{}y|~}}~~yy||}|{~}}}|y}}y~x}|{}y{~|~}~||}zyz|z|}|||}t{|{}z}|s|}~|}|~z~||}}~~~{~y}u}x~~}||~|~z|~}{}~}}}~||z|~~}~z}~}~}~}|}z|}|~~yu}x~}~}~||~|}}{}~|}{{{{|}~|z|~~}z{~}}~}~z}~~{~~|~~|~}~~z}}}}}v}|}}}|~xy|{~}~~{z{zx|{|~{|uy~w{|}}v}}x}~{{{}~~xy~~}z||~wwz|~||yy~w}~|}}~z|z}{{~~~}ywzv|}z~}}{~{}z~wy~|{~w|~}}~~y}~}w{~||{}~y{~~y~|~}z|{~u~}zyy~~|{}z{{y}||z~}z}~}x}{|~y|~{||}|y}~{}~y}~x}|~}||xz|~zw}|{{{{{~{|~{}v{~~wzy~xz~||~}~z{}z~w{}{{{}z||~}}}}z|z|z{~y}~y{x}}~~~~z~}w{~y~||~}}{}~y||~{||{|~|}}}|z~~~~w~|~y|{{}~{~~|z}~}{{~~|~y~z~|z{~}~~~{~}}|{}~~~{||}}{y}zz{|{~}{{|z}{{}~~ux}|{{~zz|}~~xz~|~wy|~|z~||~~~~zz|w}~z|y~}}~}~~z~~~{|y|~|{~}}|||x}}~~{}~}xzy{~{y}z{~{~{}z~x|~~~}~~|}}ӛ}󕙒{}~z|{|w||~}zx~~{~|||z|y|}}|~{{v}|}z{y}{|}~}}}~xy}x~v}|||{|{}y~u~|~~}}~yy}~}y{{~z~}{~~x||v|}z|}|~wz|~}~~}}u~}~|w~|~|~x{}|~|}|}{~~~}||}~~y{~{{~|~~}||}|~~~{|~{~|}{}}y~~~}|}~}y|}~~~zz}{||}}|}~~y~}y}~|z}z~}u{~{}}~z}~|~~~}}~}|~}~x{|s~{{~~~yz}x|{{}}~}|}{}||{|~w}z|~{~||~}{~~|}}{||{|}~}yz}|~~|}|y|}}z~}}{|}~~{~}z~~~z~{}||}|}~{z~||x{zz}{}z{~y{xzx{~{~~y|t~|}~~w|zx}~~|}w{~}y|y}|~|}~~{{zz}z}{||~}{|w{{}uz}~z~~~z}||}|~|{}~}~{|{~~}~|||}}yz~{}z~}}~y}{}|z}|{~}~z|z~|~~{x|~{~~~||~}}y{{z{}~|~|{z}wx}~}}~~~|~|~{~~~~|~z~}y~y~y|z|~y{}z~zzz~{~}{tx{{}~zy{~y~w}~z~|~~~~}~~~}~}|}yy{}~}{}~y|{}||~~}||{z}{~~x}y}~}|}z|}}yu{~y{|~{}~{xz{~{|v~z{~|}}|y|v~}{z~}|~~~zw}~}~z{~|~|}~~{t~z~~}|}||}{}~|}|}{~|~~~~~~}~|~}z~zz{|~~~}~}~}w~{z}||~|}z{~y}}~}~x~{~x}~~{~}}||~~}}zu}y}}~z}}|~~v~{zx}|~wy~}w}||{y|}~|{~}~~}}~~|~zyz~~}|~x}z~~|~|}}{|~|yy}z{~}}}}yy{}~}~|~}{|{|}|}x~}}}y}~zz|}~w|y{y}y}|{{|w}|~~u}~|||}~|~{}||~~~z}~|w~~~q||z{~}|~z}~{|{}{y}~y|~}|~{|}}}||}{}~z{z}~}~~~y~}}y~||}}}~|}|y||}|~zy}~~}}~}{}~}{~{|~~}}}y}~{|u~~~}}||~~}|~}zy~}}}~}~z}~}~~{}{~~{{~~z}}~}|y}{{~|~~~}}x||{{}}~|{}~}~~z~}~{~}~~|~zz~~~|zy}}}{~{|}}~|~{|}~~~{~}z~}~||~~x}{~w~z|~{~{|{~}~|~|}|y~{~{{}~}{|~~}|~|}~}~{{z~z}v~~y|{{~|}}}{|x~|{|}}}~}z~{{~~~}~|}~v~}}y}w||~}~}}~~~z~}~{~x~~}{~||v~y}~}~}}|||zyt~tv{{~~|||~~~zy}{{~x~z{{{~}z~{~{{z~}}~~~~|}~{}~}}~z{}}}|x}xz~~w~}|y~|~||~|}}~|~{|xzuz}|{z~~|{{~}{x|~~~}}~}~~}}{}{{|~z~{z~z}{~}~{|}x|~~~y|{~~}{}}}~||~~|y}}}}y{{{~~~|}~||}~{}|~~zy~z}}{~}|~~}|z}|z~~~~~{{~||y~z}}x}}|~z|~}|~~~~~}~z}zz{{~}}||}}}~{|z{}||{~}z~x{~{}~w}z}y~y}~}}|~~}}}~~~x}~{{~|{w{}t~}~~{}}y~zx~{|w|y|zy~{}~}{wz~~zx~}||}|z|}|~||||vz{|}{{|wz{{{z~{}~}~x}~||s~{~~|}v}~~{}~{|~|}~|}~}zy~}~}}}{~wz|y}}~~z~}~}~}}}}t~~||w|~}}~u{~vv~}}|}{~~z{|y|y}{~s}~~y~zx|||~~{{}|{v{{z~~|~|}|{z~}}~{}w~}~y}{|~|}~}{~}~x~x}}y~{}|z|y}|~~~{{{~~~|}x}|z}|~}y{~}~~~}{}z~}|~~}|}}x{z~}{~}||{|~~~}~~z}|}|zvtx|w}}~z~~w|~}zvz}~}|}~}}y~|~||x}~x|}~~~|{{|}z}~z}}~~~~~}}y}~{|{~yy|}~}{~~}{}~|w|~~~~~{~}~}~}{~r~~~{{|}}vz~|~}z~~{y|}~~z~|{}}~}}w}}~z}~x~}~y}{|~|||}}~}}{~}~~z{{|~~w{{}|~|z|~|}|x}}|}z~}||~|z~~}v{~~}}}{~~x{{x~~{z~|x~}|~|{{~tz{|{~|~{z~{{zv~{z}z}~~xy~y|~}~{z|}{}~||~y~||}~|}}~w}}~{}~|~{z}~~~|~}~{u|~}~{~|z{}|~~~~}{}||}}w{~~~z~~{}~~}|x~}zz}yyx|z}~t{~~}v~}y~}{}z}{~|}{zv}{~~~~~{z~|y~w}~w~}y|}}{wy~|{|z|}{~zxz}z}}{|~~|~}}{|x}{{}~}~}|{}}|w|~~|~}zx~}~~~~}}~z{~}|{}{}y}~zv|}~~||~z}||{{{~z~w|z{}}z{~||}y}~w||~}{{||~yx|{|~{~}~{{{}z}~}z}}z|~~z|x|y~|}~|}~z~|~|~|~{}~}z{~~|}{~{~y}}}{~x}~||zy~~||~}}}|}~}~z}}{~~}}~}z~}~~~y~}y}~||~~pz{{~w~|{y~}}y~|z}{|z|}y~}~{~{zyz~vyur~{}|wz{~~}}}}xy~z}|~}}~~~|}}}}~~~|yw}w}{|~~|{|~{{~x}~z{}}~~~~w}}||u}{~~~}~|}}|~yz~z|~{{~{{x~{}}~~z}z}xz~~|z}}z~|}|~}|{~{~~{~{}{|~~~|}zt|}~|~{~z~}z{|}}~~}{}~}||~}~~~}||{w|~|{|}}}~{}{}z~w{{~~{x|{|}}z}~~~|y~~}~|~y}y|{{y~~{yy}~~~{~~}y~}||}}}}{{|}}{}~|}|x~zy}}~~}|}~~||~|z}|}|~}{z}{w|}}~~}|~|~}|}~||}|~}|~{|~~{}~~~|xy{z{~~|}}~|~~~}}x{|}|~}{}~~~}}}{~}}|{|~~~~z}|}~}w~}{~|}~}{x|y}{z||~{~||z~~}x{~{~~{|z|}|y||~}|~|z~|{}||}}~}~{|{yz~~|~{y}~~zzv~{~{}}~|{}|{}vx}}~}}xz~}z{~|~|}|{}|{{y~|~~{}}|~|~|}}}z}{|{~~{v{}}~|{z{|~z}}x~z~|~|z~~~~|{~|~~}w}v|}}|~}~~|~zy}w}~}~}~~~uz{ty~w}yy}~z~~z~~}{x~{~}zy|~{|z~z}~~y{}~{|~}|y}v}}}}~|{|}}y~y||}~~z~~~||{{y~||~}}~w|z~z~{v~|}~|~}}y|ux|~||}}}z~{|y{~}y{}x|{}{|{}uz||{u~|}}}}z~}|y|z~~~||~||z~}{y~|t~~}}{y{~w~v~}|~z{~z{xy~~|yw|~}}}}~}y}|u~~}{}{~}~u{{x{|}|||~|~~|~|~y|{}}{|z}}z~|z~|z}|{~{|{~|}w{~|}~~y~{~{~}~z|}~~{~}}z~}z}~}{y}~~{{z{{~~{|~~{{z~}}|zy}}~{}x{{}|xy~|y{{~}|~z}|y~y{|zy{{y{z~zy}~xz}~y|~~z|}}~}{~z}|yz{~~|{wy{{z{~{~z}}{~w{{}|~~~}x~}{z}{}}~}~{}}|z~~}}{{~||||}~|~{z|~|x|~}|z~|z~|y{yzy}}~}~y}|y}|z~{}~{~|}zz|~{z~y~|}|}||~{x~}~y}w{~x~}}~}~zy~~z~~}||~~}}~{z~~||{zwzz~~{|{|~~|z~}y}~w~}y}z~{}~||}|~z}~{y~{ww~~x~z}}{uwyz}z}|{~zzy~{}~~zyx}z||z~|{|~|z~y}v~~~~|~}{~}||~}zz}~v~u{{w{zy~}~|~{~|~}|}{~}}zy}{|{}}wx{x~z|y{|~z~zz|~}|~}}}~z{|z~~~{~|}~|}~|~{~z}}~~~|~~}}~}~||}{{~{~|~~}qw~~z}}}~|~|~||~}~|}~z}|~{|||~z~w|{~~}}|{~~z}~||{w~zzz~~{|}{{}{~z{{}z}~|}{u~}}w~w{}}z}~}~}w}z}}}~~~~{~~~~~~z{}{|}|y||y}}{}~|}~zv}z{{|}zz}yy}z}|xyw}}|y~}}}|||~~}y}z~{~~|y|z{~z{}~v}|y~|}x{}}~{||~}||z~~}v~x}z}{w~uy~~~{~|~{z}w~|~}~}~~y{|~}~~~~y}~}|y|}~~|}~}~|~z|z~|~~~y|}~~}}y~z|wz|z{~~}{~}}}|{~|~}}}{}~y}|~||~~|||}~z{~{~z{|z~}~~~z|{z}{x{~~~{}~}y~~z|w}~~x{x|~}|~}{{|~y|~{~z|{yy|}z~}}}|}{|}{}~~}}}z|{~~|}~}}~{x|~{y|~~~~{~|}~~}{y{~x~|~}{{{~~}{~{zz~}~}}}~}z}{}|{{}||{yy{~~~~}~|~}}}~}~}~|~}~}}~}~~~wy}|wy{}~~|w}}||~}|}|~}{}z}y}}}z}}||~}~{}~~|{|{~||z~~z}~~}~u{~x}yyy~~y|~|~{{~|{|~~~~}|~~~|x~{}~}}z}}{~~|v{|tvz|~|}~{twy}|~w|}u~||~|~~~}{{}u{}|~x~x}xx~}zqu~w~~y~}~~}{}x{~z~z|}}wv~z{~~|~yx~z~|~|{y|~u~u}|z}|}}}}}}{{}~~{y|~|yz{||~|{}|y~}~yxxzuz~{z||~}u}~}~}{}}{sz|~|~{z|~~z|{}{~}z|}z~|~~~z~z}zz}|x{z}}}}|{|~~{~~}~{|z{{zuxz|~}}}w~~|}|{y|}y~yy{|~~yz~~x{}~{|~}y~{~{~}|w{}{~y~|~~z{~~||vw~~~~}~}|zzz~~}~w~}~|y~}~}z{~|}y}{}}|{}}~z|}|~~{}}}}}xxz|zv||}~zz||}~z|y{~}z}|}|~|{~|}{}|z{}|}~{}{~}}{|~zy~|||~~~zz}~{~|}{z}}~~||yy|}|~||~~|}|~{{~}|||}}{|{{~y~{|}}~~~|x~|}}z}{|yw}~~~}{|z~}~|}zy}|}z~~}v~}~}x|{|}|~~y}||}}~~}}~~~~~~|}~|}|~}}~}~||~}~z}|~|y{z~|}~~~~}w|~~{{~~x~~}z}}}~~y}zw|{y}|}~~~}~z|}~~{|}~z{|{}|{|y}{{}{~yw{~|}~}~~z~|}~}z{}{}x~~z}~{}}{~}|v|~~|}{w~zzy{|{}}}z~~z}~}{}}}s}}z}}z}~}zz}~}|}zv{{~}|~{}{{y|x~}|~{y}y||~~|{||}}z}zuz|~|}{~{~~{}~}|{~|y|~}z}|{yy{w|~~p~{~}{z{y~z|{}yw}}~x|}~}|xz{~{v|}|z}||yox|x}y|{}}z~~|urr|}}e}}|{y|u|{}{z{}}|ov|x}k|dy|xv||}|}rpw{}y}zzo{xz}t||{yy}|{}}\x{zt~~yqy~}zs|{z}{|z~{||~~w}x||}~|{}y}|zv}xu~|}y|{~{~{wy}vy|}~m|}u~z~||}|u}ty{yyy}{ozsv~ox|yfx|{x|~{}vyy|{||~~{y{z}xz~v}}{v|wyxzu{wx||x{w}zyxz|z}}{{u}||~v}z}~}}{}|{~x}}{|z}|z~{~~x~}z}~}y}}|{~|}|w{y|~~}|{|~|y}|~|}~yv~~~~{}~~~~{z}||{}~~}~|y|z~~}{|x|}~y}}~|{|~x~~~~{}wx~}}{~}~~|y~}~{||}}~|}|{|{~~}}}|{~x~~}|z|y{}|}y}|~~{}{~~}~|~|~}~~z|~}y|~~~~}~}}y}z{~|~~{z}~{}}{~}{~~{}~}~}}}~}|{zzx~~~}{}{~{}{}yz}}}|~y||}{y{y{|}~~}xzt}zy}~}}zz}}~{~~{|||{|}x~{~}{y~~}z~}}{~|}y~~}y~~w|{~y}|~|w|~~~~|}}z~{{|||~~{~}~~{~}}|xz}|}|x{}||z}~{~}}z}~~}~z|x}~z}}{~}~~|~}~}~}|z~w{y|||z{~~wy||}~}{~}{}~y{~~{{}~~~{x|~~}z}}~}~}x|}~|vy~|}{~{|{{~{{~y}|}|{~}|}~y||~{{}}{~z|z}{}|}v|~|}}zz}y~|~{{}{|}y}|}|w}|~~x|x~zz~~~z~~}}~~}}}}|}z~||}~|{~|{~{{}~~|{}~{z~z||z|{|}~~|~z}{|}~{vz~z~~~~~|}~{z~}~{{z}|}y~{{~~|~}|{}v{{zz~~{||}~|zz{~~|{|y~~{~}}y|}~~|}}~{{{zx~}zvz~|zx~yx~}y|}}zz~~|z{~}|}z~}~|~ytzx~z}}|z~|~~}~xzz}~y~~~~z~}~|{}|~}{~~|wz}~}{{~|}~~}z~||}||~yz|}}y|{~|}y}|}z|}}z|~~z}||}{~}~~{{}||~}}}x{vz||~}y~~||~{|{~|~y~yw}~{|}}|~}|}}y~{~~}{~{|~~~x}~z|~~}}zy}x}~}z}}x|z~~{~|}{v||z~{y|z~}~}||~y|}~yv|~~}}~~|~}{yy~}}}|||}z~|~{~~~|x|~xz{~~~}}wzz}}|x}z~{}~~|{}~}z~|}zuz~~~}}}|{}~z}~~}{x}~|~z}{~||z}|}~~{q}x}~|~~|{~zy~|~}~~}~{~w|}}{z|z}}~~}{~|}~~|x}{}~~~|}~||}{|}~|{~z}y~||~{{|y|~~}~~x}z~{~|{|~}{}}}~|~~}~}{}~}|}z~~}~||~~~|}{{|}~}~}{~~~{~{~zr}z}~}y{~|z}x~~~t}|x{}|}{}}}~z}|x~~wzx}w}~|}~~|~}|~~zz~}~~xz{{|z~}|}y~yz|}~{}||}|~~{z~|uz~zz~z~}{{|~~~z}z~~yzy}}}|}}~zs}x{|{{}{~z}{y}}}~|}{||}|{}|}}}}~~|}~~}|~~|}{~{~}{y~}}~~}{{}||yx{}~{}y{~}{~~}{z{~{~zy~}}z{~}|~ux||~z}u}}}x~}y~}~{|{{~||~~~}}z~}~|~~~z~t~{~}y}z~|||{|}~}zz~y}|~z||~~}~}|}}~y~~z|z~{|}}}~~w{~~x~y|wz|~~}{yz~w}~}|y|~~}}|z|~~{~|{|}~||{}}}|~}yw~~|{y{~{{y}|||}|~|{{~}||~~|yyy|}z{}|{}|}~|z}}{zz}}yzvy|{~~{yz~~|}s{}x}}~}{|{|wz~~}~{{~{}}}~wyz}|~w{}zw~z||||}~y|{z{|yx||}~~~}x~~|x|~~yz{~~z~}~z~{|}|~~z}}{~{{|}}~~|vz|}z}~}}~|}{|{~}}~}y}|~|{}}{~|~||{|~~~}|||}x}x|z|~{v}||}~~y|~|~}}~}~}~|y~}z|v~}~~~|}z|||{y|{{y}{||~|y{}{xx~~|~}{}x}~z}~{}~|}}xx}~}}~{}~}}~|~}|~}|~{}}}||~z}x{}~~~~}}w{x|{~~zz|z~y{|~zxu|z~|{z}~|}~~|r~~~|~|yx{y}~}z{}v|~|~}|}}|~~}}||~}|}~z~{~{}|x~}z}~~|y{}}y~~|~|}~~z{~|~~||zz{~~~|z~|}zz~~}x}|~~}~}||{~|z}}~}{|~{|{}}{y|~}~}{~}}{z}}~~}y{z{|}~}z|~y|w~~|{w~||~~}~}~~{{~vv~}~x}{~}~||||v}~}zyy||zx}z}}{xy~|~|}z~}y|}{z||{~z}}z}~||y|||~}~}{~|}~z}|}~~v{vx|tx}v|~~~|zw|}~~xu}|z{}w}}~z~vu{}~}~|~|}~~|~~z}}|}z}~~~~~~~}~}}|yy}}~}}z{}~}|~}{v}{z}~~|~|}|~w}}x|{}w|}~{|z}|z}~}~}y{x~}~|{~}~{{}}~~~~~}||}~~}}|}~|}y{~{~~}z|}}z}}}y{~{}|{~x~y|}{{}}~z{~~~~~}|}~|{}}}||z{}}zw~}}~|}}~|~~}}~}||}}}}y|}}~~|~~y|~}~|z|~~}~}~y}~~~}{~~{z~~~~z~}{|~}}z}||xx~zxyy}}y|{}}~v~}}x|{|}{wz}}}}yz|}~}{~}}x~{~y~y~~|~z}|~~z}~}~w~~x|}~}y{~}~x}y}x{z{}~x{~~|}z}{z}w~}{u~~|~}~~~y|~|~}}||~z~{}~{}|~|{x}|z~}z}~{|z|}{x~~|y~|~z|}}|||~}|{y~~~}u}|~~v~|zw~~}y}zy~||}}~~|}}}|~~zu}z}{|~||}}{~}~y}~||zz{y}}{z|vyyu}}{z|z~~~~w|zyy{r|{~{|~}~{|{}}x|~}~~}~z|}{w~y}{}}}~}{y}~{w~~{||~|}}~~{zq{|}}}~z{}z{~}}~|~}|~zz~|}z}z}}yz~~zy}|}{}~|}~zy~}~y~{{}~~y}}~|}y{}x}}z~~~~||}||~~u~~}|||}|~~|}|z}y~}~}}|{{}~|~y~{zz{}}{{}~|}|u{x}y}yzz~|z~~x{}}~|~{}zywz~}~}}w~}~}z~|z}}~}v}}~}~{~~{|}}}y~}y|{}y~x~~~z}~v|{z~~y}|y{~}y~{~~{|w~~|~z{}{||{~}{}~x}|z{}}|{y|v|{}y}}~|}y~{~~y|{yv{w{~}|~|~|y|||{|~}}}~~{|~~|}|~|}|~~}|z|}|~~~}~|~|w{~y~}~|~~z}|}}{y~z~}}}}}z}}~~zz|~~z}|~}}}}{y|~{{}~|~|}~xy}}z~|x|}}}~~{~~{{x{|~~~~x~}}}|w~uz~~~~~}}||{{z|}~|}||}x}|~|{|~{|z{~~{}}~~{}}~~~{}}}|~{|~|z~}~~~{}z{z}{||~}zz~}{~{~~~y}{|x}y}|{|z~~u~x|yzz}~{|{}z{~~}~~~x}|~z}}~w~yz|~z}|}|y|zz|}u}xx~z{|}~~}~}|z{}|zyz~|{z~~y~|~~~}{w}}~~~~{}zyv}}{y|~zx{~~~y{~|~y}u|~~{}{~~}z~~~~||}|x{}~~}v~}}}z|}|u}y|z~}}|z}~z~~}{~{{|}}{~{~|~z|~|z~}||u}{~~{y{}{||~~||z~|y}}x~~{}~}~~{}|||{|z}}~z|~}}}}}~}}~~}}}}~|~~}y~z}}|}~~{z|~x~}~~|{y}}{~z}|xz}}y{{z|{}z|z|w}~w~}~}}z}||{~}}||}||}u~||x~}|||~||{|z}}~z||~~~z}{y||}{y}{}}zv~~y~|vz~~z{}~zz~z|y~}~|~~~x~{v|~y{~y~|{||z}y~{{}z{{{y}}}}~~y|x}|zz}{}x|y{}|||z||}xy}|~|{y|{{}yyyzw~{}}{}{}~{u~||}}{}y~}~~z{{~~~}|~~|~x}{|~w~z}}{~||~{{|||{~{y{{}~{zv~{~z~~{{|z~~x~||~|~|y~{~|~||y~||}|}~~z~|{}|~~||z}z|}z}z~~~}}|~}{x||}}}~}~}~|}}{~~~||{~~~~{|||||~z~|{}~zv~{~~|{~~z{~|{~~|{y~~~y{~{{y|~~{}|y}}{xyz{}|}~uz~z}~|~}}|{}~}}{{}}~~|~~~y~~~}|}~y{|}}w}~}z~}{}~~yz|~{~}~w}z}~|y}z~}z{~}z{|}z{{{}~xxw~}u}|}x||{}~{{{}}}}z|~}}~{|}|y~}~}{}~}}zz~{~~~~y|}~z{~~y}}~}z{~~~~z~~~{}zz}{~|||}~~}~y}{}|~{~~{|~~~}{~~x~~{|{|~|{}z}||~~|~{}{~~zz|}z}}}{y{}~|{z~}}}~}~~}~y}|}}}~|~~w}|~}}}|{|}~}~{y~z~}~}|~z~}~y~}{z~}{|y~|yz}||}z~x|~z}z}~x}{|}|~{~{}}|~~}y}~}}w~||z~|~|{}}}xx}~~}z~~~~{vz~z~}|}}wy~|{~~|{y~~{{~~~zwy|~}z~}y}|~}~}|}~z~~~}~{z|}~zs~}vy~}{}~{}~}||||x}|}||||}}||x~}wy~|{~{}x~~|~~ux~y}~}~~|z{}z{~~}~~z}z~}}z~zv}v{~~}~~}~}{}y~}~~z~}{}~}}|}~~}~z}|}}}~}~~~~z}|}}z}~}~{~~~}v}~~~z}~}{}~{~~~{{|}||~{~}~}~|~}~}z}}z}||xz}||}~|}}}{}|}~|}~xx{~|~z|}}z}}}~}~{~{~||~}}}~~w}}|z|~}z|z}z{}~}}~~}z|~}{w}x}{|}|y~u}{|||}}||yy~~|z~~w}{z}}~}{}~}}~|{~~|y~~~~~w~x}|~~|vz}{~z~{{|}{|}}~~~~{|}~{|}}}}~~}y}{}|z~{z~{w}}z|}z{xxzu{|~{}}{y}||{}~~~~{~{z}~x||~~|}}yx}}~{~}{}w}w}}}~}~}x}}{|}xz~|{~~~|~~}}}~t}}}~~||~||~~tz|}}{{{|~~}~}||}{||~}z~~{|}|~{{}~~}|~|}~y~{~}~~|}y||x}z|~~yz{~}~y}|~z}x~x~{|~~~||~w}}{z{||~~z~yz~|||}~x{{~~{~}{z|~}|{}~}y{z{~}{|~~}}~||~}}}~{|y}xu{||{{}}~|}~|z}z~y|~z|x{~y||}{~~z}z~x|y}z}}}~{~~||}{~}~{|}y~|~~~{||~}}w}{{z~}~z~y~~{|~}|}~~{~~{~~|}}~~||w}}|~||}|}|{|~{~|~}~}}~~~~}~|}{|}~}{~~{|x}}}wz~~{~}~{||~{~||z|~}|w|z~~|~z}xx}~y~{|}yy}}~}{{|~y|}y{~|v~v|y~}{{{~~|~}zx~uy}}||}z|}~}}t~~{}u}~y~{~~~x{y}z{y|~}~~~}|u{|{yz~zy~|z}~v~|w|}}~~yw}~|yz|{~{}~~}~|{~}{}~~w~}}~{{y{||~{~~}~}~}|}|~||~~|y}|}~}{{~~~~{}z~|}}wzww~||{||{{v~{{|{~~|~|~z|~|}}~{{~~z}{}|}yz|y|~|}{~}|}~|||~x~}||x|~~w~|}{~~}|}}~y~~~}{{{}~|}}}}}}|}|w{~}z~|}}w}}~x~|}}{~w~~y}~z}zx{{}|~~~~~}~|~{~~~}}}~~{~}~~{|~|{~~~~}~~~~~{|{}~}~}y{~~~}~{zz~{}}|}{}~}~|~x~}y}}}}~}}|{}{~}{{}~x{{z{{~}}}}z|~~~z~{w{xy}~~~~~}}|||}~|{y~zz}}~|}}}~}z{}}~|y|~{{|~}}~}~{|}u}z}|~}}~zx{|z~y{||~|xxzy}~|~~{~}~~{~~~||~|}|o}{~{y~}}|~~}~|z}|ztz}~~z~{{}}}z~}}|~~||{{|~}s~{~{y}}x}z}~}}~z|{{y~{||~{z|}}{|~|zw}{|}vtx{z~{z~|{z|}}~}|{z|y|}~~x~{r~z~}z~~wz}|~v|}{~|~}~}{~|}y}~~z{~}yv|||~~}z|y|}||}y}~~~~z||z|~{x|}z}~~{}x~}~~w|{}~~{zy}}|~|~~~||~}~|~~x}~~~|{{y}}~~x|{|y~}|~}~{~|~~|||y{{|~}}~|z}~{|{y}w|}|~|~z|{}}}~|z||}}}}~}w{{}{z~}v{~~z|}|~}{|~~~}~}~{{|zy~z|}~|}~{}}}~~{{~y}}~{}{|||z~{}|zz|{zx|}~zz|~{|}z{|zxw{|{||||||{w~z|y~~w}~}}~~}}y}}}~}}z}~{}z|z|~}}||{z~|{z}}|~~~y{x|y}yz|}~xx}|}yx}~~z}}|~}}~z|}|~z~~}~|z|z~|yu}|~}|z|||w{~~~~|{{}v{}xz~~zyz|~y|}~|~}zy~~~{~x}z~~|~~|}}y~|~~|}|~~}y}||~|~|~}y~{}z|x~|~y}~~~z}||~~}~z|}~~|~}z}~{}}{u}|}~~y}|~|z~{~yyy{{}~y~~{|~~z}}|~~}z~{{|}~}~y}|}}}~x~|}{|x~~z}~~}}{}}{{~}{z~{~~|~~wy~|~{~{y}{}~~|~y{~}~xx~~w}~z~{|}~|~z|z{{|}~uz~{}}r|xzyzww}}~}v~~}}}~}s}}w~||z{}~~|{{y|z~{}{|yz~y}|~|u|y||}|{~|}{z{}yw{v|~z|}z~~v~~x}}~~|~|y||}z~~}}}~|}~~~}|z~}}~yy|}}z~||~~~z~~~|~|~~~~}|~|{{~}{||~~yz}z}x}|{z~{~}}|z}{{~{}x}}}}~||~}{~~~}z|{}~{~||~{|{~~{~~~{}x}~~}}~{}|~}{~~~z~x~~{~z~z{~|{}~~yzy}~~|~~}}~~|z{y~}|}}~~~}~~}{~~~}zzz~~|}y}{}|}~}z|{|x|y}}}~{||{~uz{{~}~}~}zz}~}~|}y~||z~~{z}~|~y{{z~}|}~{z|z}~}|}zzz|z~w|y}y{|}}||{|~~~~~|z~}yz~|~}}~~{|~|x|~}~~~~y{~x~~|}{s|~|z}}{}~~||~~rzz{{|~|{y|}z~{{~|}}~{}y~z{~~||}w|}|z||~|~~~z~~|~~}}}}|z{wzz{{~~~~}~y}~}~}{|~|z|zx~~y{|~}{{}{}~}~{|x|}~~}~~}}x{|z~~{~~{{y{}||}}}{}{{{x}~~z}|}~x{~x{{~~~|{~~|~{~|}x~{~~zz~|}{~|~~|~}||~|~~}}|wx|u}z}}x~~w||}w}{|xy~o}{|xx|}|~|{w}yw~yz}s|{~~~|~}~y}~}~|{}~~}~~z~{}y}vy~zt~{|w}zz~uuy~y{w{{{x~~|}}}~}|}~}}z}|~}{zxy~z~~}}{~}zt||{}|~z}||}{z}x~xyz~~}|x}}~}~|}{yx{~{x~z~}{}wx~v}||xy}{z|~~~|}z}}{zz}|}|y|~zx~y}~x~z|zww~~zw{||w~v|~{|{u~z|{{v{~{{{~~{z{{~z~~|}~{y}yz|~y}}z~~}w{w~~||}z|}{z~}}||x|z|}~}{|}z}x|}||}}|w~}|zzx|~~~}{|{y}x||~~}~}}|}|}}||v~}}|~~x||z|w}~}~~~z}~}|u~w~}~~v|u~|y|{{y}{y~~~~x|z{|z|}~~}}}|~}y{}~~~~~{~||}{|~}~}~}{{ty}|{y{}{z{z|}|}y~z}w}}t}}~|}~}}}}~}}|~~}|x~}}}|~{{~{|~}~{}z}z~~|}{~|}{{~{|}}x~{}{~z~}|{{{{{~~}|}y}|}x}~}|~~|v}|~x}~{||{~|z~}}w~|z|~~u~~{~~~{{~~{~~~{~}~}z|~{|~z}|}{~}~|~}x~}~y~|}~~~|}|}~}{~|}zz{|~{|z}~~}}~~}}z~y}}}~|z|}z}}}~~||x}|~~|~~|w}zyy|}~}}|y~~}~}}{{~y{}~~}{}z}~~}}|}}}}|y}~}y}}x{}{z}{|}zz~}~|~~yy}~~}}~{~~z}|~}||z~w|z~z~{x{~y}~}wy||}|}z{~~~|}z}}~z~~}|z}~}~{|}~w}~~}|z~}|~}y|z}}{}~{~{{{}~||{~}y~~~~}}~xz~}|}~y{|{}~}|~~{~xv}}w}v~|z}|yy~~{|zz~z}~|~{uz~}{{wzz{{~|~v{}{y}~||{y{}{y}|}~|wzz|wzz|}~}~}w{}~~y~{|{|~|}~~~~{~|||z}|}{}{~}~}}}~}{~{}~~}|~~~~{y||}~||~~~y|y|~~}{|~}}z}z|~~~{}|}z~|~|{y||}~z{~}z|~}}~|z}~}~|~}|}|}|}|~~}|}~z}z}|}}~~{~|w|~}}~}~~}z|}~~w~~}}~~~|}}y~{~}{}z{|~}~|~|~}|~}|}}{{|z~~~}}~~}||}{~x}~~{~~w}|~|y}|x~~}v|zyy}~~~{~{|~}x}{~}|}{~}~rw~~{|{~~y}z}~~~}{z|u}{}~|{{}|v|}}|~~{}x|~||{~x~~}{{~~{~zz{~}}~~|}}|~~~|w~y~{{{~~{}}~x|}~}zy{yzz}}{~|{}{w}x|}}}}zyv|x}~}y|~{{~|}~w~u|}~|||}x}}{~y}z}~}{y~|}|~~|~~{y}z|}{y}||~}||~~||yz~z{y~|y~}|w~}{~|y}|~~z{~~}|}~wz|~y~}}|{}}}~~~v}zzx~~~~}y{~}{}p~~z|t|}ywx}|}~~i|~~xtz~yy||}}r~~|~}|{}wo|z}}}v~y{{~z~}}|~z}{~{}~z}~~~}{}|}~z}}}~~y~~v~~}z~}~|}~~~~}~}~}x|}x{z~~xw~z|{zxy~|x}||y}}{~|{|~|{}|{}~|~{~|yz}~~~yx~~{|{~z|~z~{zyz~}~{y}|x~}w}s~~}z{y}}}{|~}}~|{{~~}}{|{u}~}}~~}~{{|zz}|~}|}~}}}~z}|wz}}~y~||s|{|w~}zy~||~}v||~~}~}}|}{}}|{v}~t}{}}{{{{y}{y~|yz|~{}|~|{~yy}|}|~y}~{|z|~{~}{~{~~~}{z}~}~~~z}}{}z{{|{z|}~zy{~~{z|}~}{||}|}~yx}~~{|}{}|~|||}}{|y~}{z~{z~~{|~z|~}x}~}y~||~y~|ywz{~~~w{x{z~}~||~~~z}{|}}y|z|~~~{~~u}z}~}~~~{||{x|zzx}}~}~}|w}|xx~{~{zx|~|~z}|}|}{z}zzv~~}~|}{~{|yv}||x|~|{z}|z~}{}{{{z~|y}~zu{}|}{~~~~}|{{}{|~z|{~{~}{z}{z|}}{|~~u~z}{~v|z{x~}|xy||}z~}z~x|~~{z~y~z|}{|y}zy~}|}||~}~|y~w{zx}}~}}}~}}{~{}~~xyz{~z~}}|{}{||{{w|{~}|{yt{}}{yy{~w}z~|~~~{}z~}~||{{{{z{}|z|x~z}{}~~{|x|~}~{|}y}~~yz{~{|~~}{|z}{}{z~|~z}|~{z}yw|~~|}{z|~}~~~~~{|~zy{~}y~~z~}~~}~~x~s|~|y}z~~zz~||~~||{}~y|}~|{y}||}~x}|~||~~~z~~~z~z~}~~}}|{~x|}}y~x{~}}}~xz|}||z~}|{|w{~}z~|{{~|~|{~z|{z}}v~~}~}{|~~{}{z||||z~|y{~}~|{z|~{}~zx}}|yz{wy|}z~~}}}z}|~~~~{z~||{x{z{~~|~z|}~}z~~~y|y}}}~{|~~zz~}|{{}}~w|}~y~v~}z}{~{yz{yy|~~{}}y~{~}}z~|~}{zx~y|~|}~|{~y}{}|~~z}|}~{~z|~~~~z|}}}~}y~}}{}|~|}~}~{t}}~}|~{{y~~~}~}v~w~}|}}~{{~|}|{y}{}~}}~y~|{z}~x}x}{|}~|z~|~|~z}y~}~~{~z}z}{|{{|{|}|~{t|}z}|{~|v{}}~~z||}x}z}{|~v}{~}~~~{w}}}~~~}~|y}z~z|{}}~y~{~~{}}z|~z{~~}|~y}}|}||w~~z{~|~x|w}}y~{z~~~|~~}}z~{}~}y|zz~|}y~~~~}z~||z}|~v}{z}}~~{}}~~~~}{|~}}{~}}}}~|}~~z}~~~z|x|~}{}~~{}{|z||~}}~{~~z|}}}}|vy~~z~|}|yz{}~~}{~}yx{y~~y|{z~||z{~{|{{|~{{~zx|{||~{}y~{{}}||}{}|~}|}}{|y}s~|~}{~~||}wz}}~}~}|w|}~}|~|{}~z|z|~w~~|~~{|~~|}}}}~~|}|}|}{~|z|zyz}}|}}~}}{~{}{|}}~{}}~{~{}~z}y}{}}~|~}y|~|}|{}|x||}}}~~|~~|~|{|z~|y~}~zz~|z}y~}~|{}}z}~|}}~~{}}zv~~}~~~}~}~zyy~~|}|~}~~}}~~~{y~~||}z~~~~~|{}~y}}|~~~|}~}}~|~{}~~}}|}x~|y}x~xz~|}~~|{{|~}{}|~~}}}|||~~{~~~}}~z~|y~~{||{~|~x}|y|z|~{~xzy|~~}{~}~}y|||{{|~~}~}~}}~|y~|~~~}~{}|{~|}~~zx|~~}|~}~z|y~w}}|}{~{~~~}~v~}{|~y}z~|{w}{y|x{y}~}{{~|z~}{~|{|}x}y~{||{~x~y~}{zz}{}y}yxxz|z{{}{}}}~~}yw{z|~~y}{v|~~y|~{}~~|{}{y}|}|}wx}}|~z|{}{~|~y~{|}{z}|~t~{z~~|{y}s|~|~~|~zy~z}}{~y}~~{{~{{||~{w{z~{}~{~}{~}|~x~z~t|~w~|~}x~}~}{~{~{~~~xzzx{|~||~|}~~|{~{{|}|}~~t}w|}|y~~y}~{~}{w}~~}y}xv~{|~x~|zx}}~~}}~|{y}z|w|z}{}{z{~|z~~}}y~}wz{{|~~{||||z||{{z|~}}v~~y~}x~}~}|~}|}}~|}~z|}~z}{z~~{~~w{~y~u|~}}~~~~||zx{{|z||}{~|u}~{~~}}}~z~~}{}{}x{{}y|~z{~|x~{x{|{}}x}}}|~{z{{xux{|~|y|~~z~~|~{{~~zz{}}|}~|~~}{~~{z}|~~}~||}q~{}||{~~}||~~|}{x~~y|{|~z{y~||}~|{~}u~{}z{|z~}~{z|~z{y|w|v~|~}{}|{~xyzy~wy}~zz~z}}x~w{xv}}~~}}~~{{{|yy}{q|~|y~|y{{~}}|}~~|}|{~v}{~~{{{{|{zyyz}~~}}{zy~}}~v{|}|~|p|w~}}}}v~}~z}~~}}~y}|}|{~}y|}}|{~|}|{}y||~~~|~{{}}{}~{~~}|{~zz}z~{~}z|x~~}|~~yy~|}}y~}~{~~}}}{~}}z~{y}z~y{||||~}{{|x|y}||~v|~x~~~|{~~{}|}}|}{{u}}x~{{||~|}~~}v{|}|{}{|yyx||v}~|~}~x}z}y~~}|~||~{{|~}y{}||}{~{{~}~y~{z~zxy{~~~}zxz|z|y~~~xu~|{~{}x|}|x~z{y|}z{z|||~|x~}}~||y{~zy|~|}|{}|~z{z~z}z{}~~{xy{y~w}~~~wz}~{|}~~{~|~~|~~~}|~~}y|v~~~}{}{}|||z~~z}y}|~v|y{}~z||~|~v~|{|z}}~}z{|{|}}{z|}|{|~||xz{|}|}}~~|}|{~|~zz|{}|y}~|}~~z~|{x}~z|v~||y{~}}~v~}~}|{~}{z}vw~}}~{y~yz{z{||}~{~||{~~xy}w}}z~~xz}|~}{~|}y|x}}z~~|{{||~v|xw{y}~|y}}}{|y{z~~|~~|~~~~}~{~|}{{v~}{{{}}|{}{z~}w~{|~|y}}}{|y}yzz||z~}~||}}|~}~~~|~~{{}~~~|{|~}{w{x|~~~}}{}{|||~~v|zx~{}~~yw~x}~~~~~}yz|o|~~~~||vx}}}||}{|}~}~~}|{z{}{xy}x||{}x}x}{u|}~{}||}w|~}}{}{y}}z{}z{}{~y|~|{~}}|}{yz{|}|}|}}|}}~~{~~}|}}{}vz}~~~|{~|{x}z}}~~|~}~x{|{{}~~~w{~}z{{||}}|w}}{}|}~~|||{||z{|}|z{w~{~{|y~}~~~}y}}w~~|}}}~~{}~}}~|yy~zzzz}}z}}}~}}}z~}~|z~~}{|}}~~||||v~|{{z~}}|y~w}~{z|{~|}|}yz~z}~z}}~|}|}~}|zz|{~}|z|{|~}{}~{}~zuxw}|~~{~~~|x~}z{|~y~|{~~z~}{z|~}t~{|z~~|||}~~}{}|}}}|~~~}~}|~~x{{|~|{{~|zz~{~~}~{~}y|}}~{}|}~y{~~}||~y|~|~~y~}~~{}}|}}|}y}}~~z~~}~|~~z~}~wx|}}|}~yywy}}|w|z}}{}{~|||||~|~}~~~z~|~{|z}~~~~{~|{}~~}{y|~~{~~|x{|w}~}}}|{{~~z{~}yz}~|~|{|{{~x}~|~}x~y{z}}{z{}~{{~{|~}}|~{~~}}{~{z~~~}y}}|}}|~{~}}}}|}~~|}|}{~~x~||~}z}}|~z}~~|~}}~~~{|~}||~~|}}|~~|}x{~}~}|||w}v}|}|x{~}}}~~~|{||~{}|}~u{~{~v}{|~y{{~}}}}z{}}~wy{{~~x{v|~{}~{|~|y|~|v~~~|}xu}~x{~}z|{{}}|~y}|z|}~{~zy~~{~~yy}{~~||}xx}~}~~|zz|w~z{yy~|}{{}~x||z~~~~~~}|~~}zv~~w|~~s}||}}{zz}{}|~z}y}}{~~}{}y|{~}}}}|}}|~{~|~}z~x~zzu}~zv}~z}~xz~{}}y{{}z~~w{|{|||{|}{{|~|}v|~~z}}|||{~}~z|z}|~}|}|}{}wz|{y~{{}}~z~}|w~}~z}zz}{}~|~}t~||{z|~}|}|~|}~}|}|~y~z}|~}x~|y|~z}~xz|}~zy}{~z|y}y{~{~}|y|xz{{{x}yz|}~|{{}~}{z||zx||~}}}{z~{y|}{w}{y~v}{~}|z~}~x}~~y|~}~z~~}~~{~|}~~}{}~~{}}}|}~zy~x~~}~}}}~|||z~~|}x}~|~~||}~}z~||{}~|}}|z{}y}}}}y~x}~|}}~|~~~||~z~~}~}}}~y~z~~|}~z|~~y~}yz~|}~}}|||x{{}}y~{}~}~|}{}~}|{~~~|}{y|x~~~w|z~}{y~|~{~{~~~wv}~}|}||z~x~}~~}{~x~z~~|x~~|z~z{||~z|}|y{v~|z|}|}z{}zyv}~|}~z~}|z}y~|y~|}z|{|y}{}~~|z||~~|~~~~{|~|}|v~{z}||||z|}~}{}zx}~{||~~zy~}{t~{~~}}}}{}~xz~~~~~~{}{~~|~~~|}}}{}{~~}z}z}}{~v||~}~~}}~~yx}|}{}~|y|y~~{x{~}|{~~}}~~{~~{}~~}{~{~~}w~~||~}{||~~~||~|~|}{}}~~}z{}}}}y}~|z~|}y~{z|~~~~~w{}~{}~}{}|~}~~{{||||}|{|~}}}~~{|{~~}|uz}}}{|~||}~{{}}|}{~~~~{~yy~}|~~y}z~}~~~z}{|~}~|y|y~yw}|{}}~|~|}{~wy|~|}}|||}}|{~~}x}z~~~{|~y~x}z|z{~||}}}}~|x}}~}{~}~}|~z|}z~}{}yy}}|y~{|}|~|||}{yvw|~{~|zxy|~z||}y}zy}xx||}~}|~z}~~~z}~~~~~}y}~{zz~|}{}~|~z}{}~|~}{}}~~~~~}~z~|{{}~~{|}||}tv}~~x}x|{z{}|~|~}~{}z|z|~{}y|~{~z}|z|~|}|x}|~{}~}|~|yz~x}}~||}z}~~vx|~~{}}~{}}~}|}}x~{}|{|~~w|sy|y~~}}}}~|}~|{{~}||~z~}{}w}|{x|{|||~x|~}x}|}z|z|~w{{{v}{}y{~{~y|~}~|||}|~}~|y|~}z~~~||}}}|~~}~|yy{~{|}xy~{~~~~{{~|}{|}|~|{}}{~~~}~~~{}}~}~~~}}}z|~|}}~}y~xz{|~~y~w||~}{~{||~|~~}~~~~|||~|}}v}~{~~||}zy~z}yxv|}}~~}~~~}|y}~|z~{|{{~}|~y~~|}||~}~~z~}y}~}~{}}}|y||z~}}z~~y{~v~||z}|~x~}}||~~~}|}~}}|z||~~||~|{~{~|~z{|z}|~~{|~|~}}{|~}z|~{~|~~~|}~||~{y{}~~~}{~~}y|z|~}~}}}}}z||}|~|}y}~}||}x}~|~~}~~~{~|y|y~z}|~y}{~~~}z~{z||~~~||{|{~~~{{}}~}{|}|}u}|{|}}}~{}~|z|}{}y{x}~~~}}}y|{}~wz||}z}~||}}}|xx}~~~z}~y}|}|{}v~{}|~|}~~y||}||~~z|{z{z}}{~}x|~{}u~~{{|}}{{~z}z}v~|y}~}|||x||||}||~x}}~~|}}~z}z|~}~{~~~}||~~}|w~~}}~|||{{z|~~~y|~~x~~~{}~}~yt~|~~zyz}|zz}{{}~~{~y|xyz}|}}}y||{}}~|}~~zxw|~|~|}~~~|~~|{|~~z}||}}}~||z~{}z}q|}yz}||~{|||~}y|{}~}~|~u}}~|~|}}x{z~{z~~~{yzy{}~}~}~~z||}}||||~}}~z}~~~|}~~~}xu}~~{~}~~{~}~y{}y}|~}~z}~z{|~~}|z~{}z{~~}x}{v}~~{z}{}~zx~~~{|{{z{}}}~yz~~}{{{~}~{}{{~}|~~{}yz|~~~~|~yz|}~}~~~~}}z~~zz}{|}}}~}zy|~|z|}z~|{}{||{~xz}~||~}}x}||v|}}|{{~{{z}{~}}z}||zy{x{|y{|}}v~}~}|x}{||y}}{z{}|~|~{z|y{~~~||~{}|~~{}w~}{~}|{||{{}~||}}~|x~{}z~y~}~}{{|}xy}}}|~~~|~||}~|||~}~}~}|}}|~|w{~}x||~~|}}~{~~~}|~y~yy}{{v}~}}~~}~y||}~~{{~~}{}}u~z{|z|~x|{{}}}z~~||~~}~~z~~y|zvyu~z}}|~~}~z}}~|~~~}}~|}|}{|}~~~~}~~~~~}{z|~}}~}|z}z{{|}|~{|~||~}||}~}}}z}{}~z~xz~}{w~}|}~{~~y{~y}{}u{}}}|~y}|~}}z~||x}{vy~|}{|{|}|}z{{z}|}|}}~|}}~|x|~y~{}{w}z}yz{~}}{|}{zv|{u{~}z||}~|}z{y|z~|~{}x}|}{{{|~}x~|~}~|~|y~}~zy}~~}u}~z~z}}s}~|}~{||{~}|~~|~x~{}{y~}{s{|~|~x{~y{|~~~~yy~uw~~~{~~x~~|{}~xz~~~{yz~{~~~}~}}}{}}x{||~|}~}||}}y~}}}}{z}}{~~~}z|~}|~{~~~~v{y~}{}}~~}}|~{~~~|~}z||~}|~~~~{~|{}|}~~}~|~}}{}}~{}}{}|~{|}}wzxx}{}~{}~|||xz}z}y|~}~|x}}~}}~~~z}~{}~}{y}|}~zw{}}t~yxz~|~|}~}|~||zz|{{}~}~}~y~}~~{{~}|~~~x~~{yz}|}}y|}z~~{}y{}|||{z{|y|~||}y}~~~}{~~z~~~~|{|v}||~{vz~z~{}~}~y~{{}~{|~}|}|zx{|}{}{~}{~~~{|~{|z~z~{y}{~}zxz~|{}~zzz{{}|~z~}}~x{|{}}~}}{~z|~~}||}}}~}}~}z~~}}z|}}~}}}}y~~~{}|z~~~~}}}~ys|}~z~~~}}~}}z~z~w{}~y}||x|uzvw|}}~}xo}|~||}~z{~~}}|xz~zzvu}}~k}}~{}}|}{zxu}~{vv}{y~~y~~~y~}}}}~|~}}|}}{z|{}{|}}|~x|~z~~~|}|}}z}|~~}|}{~}}}~~|~|}~||z|||z}|}}}{~|~|}}}~}||~~~}|~}z~~~}~zz}z||~|}}}{|y|}y~s{}|w}|{txy|}}~y~}{~{z~x~|~~{zz{~}~y|{}zzl{z}x|y~z~|z|~}{{{z~~x||u|~~}uy}x}~z||zz{||~}}z|}u{{|~}}y||v{~|~v|}uy|~~~}}}s}v||}yq}xz|}x~{}}{|~r{xuq}}|yy|}t{~vx}ywz||x{|}|{}y{y}yx~}~~|t}{~~~|{y|}z|~y~}|~}}|~~~{z{|}~~y}}}}xy~~~y}~~{|z|{~~~z}}~~y~|}~~{{|{||}}}}{}}z|{~y}|}w{|}}zz}}}{~z~z{zx}{v}}~}{~z}~}|{z~}~{x~x|tv}~|z~}}z|~}w~}|yw~~z~}}{|}x}~|~z~|x}y~yx}}|~r}{{~~w}|~{~xz}}~~}~{}~~|}z|{~}~~}z}}~}zz}|}z|~z{}}~z}u}|~||{~}x~{yz~|z|~}}}~}}}~|~~~~}}w~~{}w~|{~y{}|~}{}~{{}}}{z}~}~}zwy|||~}{|}|~|}|~|}~|{}~xz}~w}|}||~y~}}{||zx~|z{}|}~}~|}x{~{|zx|~}~~~}}z~|{{~}~{z|~}}{}{~|}~v}|}}~}}y~z~~~z}y|{~{z}}~}z|~|||{~}}z}z~w}x~}}}~}}|z}~w~~}}{{~}|~}}{||~z|}~{~|}~~}z|~}~}}}}~|z{y{|~z}|~~}~~~|{|}|}{~{{~~~}~{~}~|zz~zz|}z~}{~}||~}~|y{}}}|~}~}|}|z~|}~~{}}y{~}~|}|~~}}}~}~}{~{}~uzz{}x|~~|~}v~||z{~|~x|z~zz~}~~~}}~w}|z{~~||w~}}|}}}~{{}z}|||z}~y~}~~x}z}~z~}}s~~z|yz~~{~z}{xry{z{|yyy~~z~y}{}yx|y|z~~||{w{~|}}}}||~|}||y}|}z~|}|~z{}|y{|{~|v|}~|}{|~~~yy}y~yw}y~zw~}}z}~w||w}{|~}}|zv|~{y~~}{|~z}~}~}y~}{|~}~|}x~~|}yy||~}}y|~}|~zv~|}z|z}~z~}~{yy}~|y{~~z{~|~~~}}}}|{y|y|~z~{}||}~{~}}{~}~{{||u{||}|}z{wx~~x~z|y|}{y}{|~}}}z}~~||}y{z|z}zz~|}x}}}~~|}|z~}}|{~|x~|~y|~|{z}~|z}~|~}}~wu~zz~}}~|~}}~~|z{}y}~~~~}y}|z~{z~~|{}x}}~|~||~w~~}||~~u}x{x~~}||~}w~~~z|~}}||}~x}~~{~}}}|}}zy}{uy~||~|}{}~{~~|y}}{}|~~{{z}~~~|z~}|{}{}{}}~z{~|x~~x}~~~~~}~{~~||~}{|{~{}|}~}y~|}y~~~~z{~}z}}}|}|~}~z|y{}|{}}|}||}~~~~x}|{x}}z}{~z}~z|~~}~y}z~x|{|~}}~z}|z}}~y|~}}}|}~{z|y}|}z}~}{}|z{|~vz~}}{~}ys~|z}~}z}{~}~}u~}~yzx~yy~z|~}}}}y~~}|}|z~{}~z|~}}}|}{v|}{}~||~|{~}|{}}~~}}~~x{{|z}~|}{y}~~z}}y{}}|~}}zs~~{|x{z}~|x~z|y{|}~}{~~}~{wz{{~~y{}|~}~~|y}~}{}~}{~z{|{}{{||~}xz~{}}y~{y}||{||{}~x|xzz|{{}}}z~}wzx~{}}}~~{~z{}{~zz}w~~}}}{{~{{|}|}{~}{|}{}|yy|~}}}z{}|{|}zv~~|~~y~}~}}z~~{y~~~yy{~{}|}{~~~}|~|~zz}{y{|~}~x}}|{{~~|{~~|~|}~}|{}~}|~|~}|~~{~||{{|{}~z~|}~~|}}}~~~~v~~~yy|~}|~w|}~~~y~~yzyv{|~~}}}y}}z~z{|x~w}x|}|}}|||~}zr~||~}~}~|~}~}{~{}r|{}|z{~~}|~~w~y|{yy~}{~}}|{{~~{x~~{|~|~}z||}~~~|z|||{x{}~w{|||~~|{}~}}x}{|~z}~~~}~y{}}{~}{|}}{}~vy~{w~~}z{{}|~{x~{w}z{}}z||~x|~~{}{||v~~z{|w}||z{v}~~zzy}~y~{~y~z|~{||}zz~{}|{}y|z||{}{|{~}z{{|}~}{{z{z|~~}}}{{}{~~w{z|}yx}~}z|}~{|}{}yz~{~~~x}~}~|z~}y~|}~}~x~~~~}|{~~{wy{~|{z{{}}}}|z|~~z}~~~}}~||}|~~}~~|vz~z|z~y}{y{}|}y|w|}}~~~||x|}z{z||k|}~xz~~~~|~w~}{{x~w}}|~|}~yx{}|{{~|~|}x~~~z~y~w|y~}~|}{~zz{}}{~yx~z~~~~}z}}~}|z|~}}}{v|w{}}|~}}~|||~}}}z~|~{yzxzx}~z}{{z{}z}~{}~z{~~u{}~y}|~~~|}||{}~z|}}}~~z~~}}z|{||z}z|{}}z~z~|y~yuz~}{|z{|~~}|}|~z}~{~v}}~yrw{y~z}|{}y}z}{}|y|}{|v}}~}|~~y|{}x~|}}~||~|z|}yx|z~yy}{~{|zz}}~xz~~{|y~}}{z{}{s||}}zx|}~~~|}|}y~~z|}|~y}~z|~}|{|}x||y}}|~{~~}|}}|x{~}|}~||}x~~~~{z~{~z~~y{zz~{x}{{{|{~~w||z~|~}|}{~||}x}~~~{~}~~v{~~{{~||~y}||}~|y~y}~}}~z}~}~{~|y}}}~~{~}~yyxz{u~~|}|~}}~~~}~}~~}y|~}|}z}}}}||~}}z{}}z}~}|{~y{|{~~{}~}z}}}z~|}|~~{~{{}||}{~~x~}|}}~}}}~{}||z~~~}|}}{~{x}y}~~|~}{}}{~~|~~{|ux{}{y}}z{~|wz~~~~y{z}~|~~~~{~}{||}~|z~ty||||}~}}|{~{~}z}~|{{~{~~~{{{z|}x{|}|}x~}|{|y}~~~~v||~~~x~||}||}y~~~}~|}~|~zzz~~x~v}~}}z{|~}}|{}}~}}~{tt}}}~~~~z~u}~{~|}|}{z|~}y}~~}{~~~}~y|{}x~{||~z}}~}|z||y|~tx|}x|~}zz~}~~|}}}{|~y{~|z||~{~~~}~}xz~~|}}x~{~xz~~~~~~|z|xy}|{~~yz{|~y{{}~w|~{x}{}||{{xz~~{}}}~|}{|}}z~|{z{z~{~x}z{}z{~|~||}|~y|z||~|~~}}}zz}|~~{~y}~~y}}~{{}}}y~y{z|z|~z~}~|x~{{|~|}{{z}~|~}|zy{|}~z|w}{|~}||}||~}~~}xz|y}{{}{~v{|}|y~~}z~}~|~z}~}{y|}|~|~~z~}}z~}{|zz{x}|}|}|v||}z}|~|||}}~~y~~}}~}~~}|{{|}|~}~z}~{|~{{x~||{}||~}}|~~}|~~{}y~|}{~|~|~|~y}{~}}~|~}~~{{|~}~}z|}}zv}~|}yz~}||zy{z{~~~|~~~|y|}{}}~zv|~z~}}{~{}}}~|~|}~{}}|}z~}}|{|}x{}~~{}}|~u{z~||~{x|{{|~}~{z{}}{{w}}~}|~}{}|}}zy|z}y|~~~|}{{~~y}~|{}}|}|~~~~~~{~~|z|v~}||~||}}|v~~}}}~|~~{|y~t~}|~y~}}|}~~~{~|~~{}~}{z}|{|~|x~z{}~~x{~~{~}}}}}z{}|~|}{|yx{~|~||~v||{}|{x}~{}{|~yy}~|x{~|}|}~y||v~{y|zz~~y~}}{}z{}~|}|}z~~|~wz||x~x|~z~|~{|{~}}uy}~||~t~|v|~w~~~|{|{{v|~||~|{}}|{~{~~{~}~~y~{}yx~~{}{{y}}zz|zy{}|~|~~{}x}~|~zxz~z|{}|y~}~~}{~~|{|y~{~~}~~~~~}~~|}~z|}{{|w||||w{~{|{~|{~y}~z{~~z|}~}|}}||zz~{w|{~}}}~~~}zz{}w}{~~~}{t{~}~~}|}}{~~~|}}z{y|~|{}~~|~{}}x~}}~}}|~~}~~}}y{|~|~~y~~~{~|~|}}~z||{y}~}~|}}~~{}}y}~}}~~x~~}}y~~~{{{~{w~~xw~|x{~|~|tv}}{{z|t~zy{t}}y~~yzz}|}{wy~~y}{{~{~v~{}}~xv~}}zv||}||}}~~~}|{~{~|~~ywwt~}z~z}~|}~xw{~z}yz~~uys|}~xyy|~~{}{{w{}~zyz}{~||z{|~{zz~~~}{z{|~|~{}}}~~~{}|~~{~~~{~y~||w|~}}{}}}|}}~~~~|{y{}~z~}w}~{|~~yy~~}|{{}}z|~~}|~}y{y~~z|}}}y|~y~{}|y~~{{{x~}}vx~}y~{x|w{v~}~~x~}}~}}}~~~~t{}y~}~{y~~~x~~{x{~yz}y~{|}x|}}}{~~~vy}{~y~y||||~}~{z~~|}}}~}yy{x{{~}~|{~wv~y{}}}~x|}~~~~x~y|y~~z{}|}|~|}}z~|}|}{~zs|y{~|~zw}~|wxy|x{~z|{{}|{~~|}|~{|{x~x~}}z~}z~~{}}}~~~}}}}}}}{y|}}}z}~~}{}}w~~|~}|~|{|{~u}~v}|}|}}|~y{|}{~~~z}}wz~x{z}{x~|v~}~}}z~x~~}y}~|~~s~~}|}~z~}~~{|{~vx}{yqyvx}~z|xx~~{||w|~~~w|yz|z}yyx|}z~~~|{w{|}y}}w{y}~~{}}|~{~|}{y~~}w}xz|{}x||}zzz|zyx|}{w{}|zs}}}m~~~~wy}~{~z~}zzx|y~||}w|{z~|xzs{|~}~{~|}{{y}{}}~~||~|z}~~~y}||z{zz~z~}~}{z~}}~~~~}~~{v~|}}~~}}~}{}~}}}~|}{~~}~~~~{y}~|~~x}~}}{|~}~||{||{~~{|||zy|~~|~y|x}}t~~|~}|z}|~}z}{x}yy|{|{|~}u|~}~}|~z~y}|}~{}~z|x|~~{}z~}yx||tz{x}~yx~}z}}x~~}zz~}~~y~~|~|~{}{}{}}|||zy}|{z{~|}x{|z}}|z|z}zyw}}vzz}~x}}~~~}|}~y{|z{||~|{w~}{~z}y||yw~~{q|y}z}|}~z|}||z{vz}{~~{z~~r|~|z{}||~|x}z||}||~~{~{}w~z}}|}{~uy|~}w~y||~~~~}~|~}~|}x}zz~~~xuwy{~y{}|}z}}~}|~|~~|z~{{~~~}~|y{~}|~{|}~}}}w~}~~|}~~~~~~}~|{|}~}||}|~{v|~~w}}}|{~|{{~y|~{~yz~|zz|z}{~~|{z~|~}~{}z}}~}wy}w~|~}}{|~{{|}~{|zzvy{vz~z}~}x}||~y|}|z~~~}~}zv~|}|z}|||~y{z~yx{{w~~y}}y}~~}|}}~|y|{~~|}~z|y~||{~z~{}w~y~~}|}yy}y~xs||}||}}zyv}{}|y}y}}{y|~}}xxy}~x|}x{|~~}}|}yz|{z~~{~z~|zt~}|z~~~z{{~z{~~x|zw~||~|zyv~}~|~~}}~{|z}}w~u~}~{~{|~{}{}~|~|z|||wy~~{|{~z|{}|x}|~~}~x~~tz}y~~z}|x~}~{~|{z}}~yy~~~}}{~x|}|~~|y}}~}~||~}w~z|xy{{v~}~~|{}}}{|~|~|s~|y|z|~}|zz~|~}|~{~||}|}x~z~z~}~~}{|}|~}~}vz{wz~}{zy{z}|z|x}~|{}}~{}z{{}{|~x}{|}z{}{|}{~~z|zz{}~z|||}{}zw|}~~|}y~{|~|u~z}}||{~w|w|}~y{}zzzzz|~~||~~y~}}~y~|{|~~zz}y~zz~~xz~~{|}}~}zzt~wz}~}w}~}~~~}{~~~zz|z~xz}v~~|~z}zz{w}u{~}|~|{w~{~wux{~{}x{}{{~~~|}}|{}x~~{z{{}||{}}~|~~~}|u{|}|~}{||}~~|yy|}z~z~~~~zy{~y{~~}|}}~}}||{|}z}}~{{z~{~~{}w}{y}~|w{}{||{x{}~}{~~|}{}}~{~~|}{~{~||{}w{{}~{y}|~~z|~~}y|z}}~|}~~}z~~}~{}x{}}}z|~z~~~yzzz}}w{~~}}~|~}|~{|{z}~}~z~||}|||y~z~|}~{~~xzz{~}x|~~~x~~}}|~~}{~~}||z|}~}}~}~|}}|x}z~~{|~y~}z~z|~~~~}}z{~{{~yyz}}{}}~}y~~|v}{}~~|~x~|~|~{~}|}y||}|z~x}}{}||||}|}}{~{y~{}~}y}}~||}~~}|||~|~|~}~~~}|~{|{{}{~~}|y~}x{~}~~~{~}}~~w{}y{~~|{}~~~~|}}}}~}}{}~~~y}|~~~{~}~||||}}|~|~}|~}}~~|}xy{yz~{|{}}~z~~|{}~{}z|}y|~~~~~~}}~|~~|}wz~u~~}z|}~~}z}~~{}~z}|~~|}~~~|}~z}}}}}||{~~~~}~}z~{}{}}||{}~||z}z~}}~|{}~}~yz~}}{~}~}~}~xz{}}|~{}|{|~}w}x{~{}{|y|}|v~z~z~~z}~{~{~}|}|||}~}~~}zwy|u||z|{{|~~||~~z~}}~}vy~}y}~z{}y~~|~|{x}~yy~{}}}~~}}{}~{~}~|{}w~|~~x}y}|~w~~{|~zz~}~|~z|{~{~|}}{~w}}~||y~|u}}~}y||}w|||~~~~zw{{~|~~~|z~}~{|yv{u}~z~z||{|}|~y~w}{}~y}|{z~~~}|{~}|~~~~~x~{x}}x|z{z~y|}||x}~zyv|}~~}|}{y{}~|{z||~x{z~x~z~z|z}}|~}x}zu~w~z~{}||}{zw~|yxy~z}}~}}}{|{y}}{}{}{}~y}|xxy~wzz{{}}yx~x~~}~|}{~~~xzzyvx|~{}~~{~~z}}}~~}|{}|~~|{z}}|~|w~}}}~|zyz~|{v|{y~y}~{~yz~}|{|z~x{}y}}~{{{}~|{|y~~z}|~zy|~|z{}|y}}}}~~~|}{|~|~z~||zw}||~~}}}}~~z}~|~zy~}{xw~y{|~}}z~}|{{~zy}{}}}|}{~~|{~|~}}}|}~y|~{~}|~}}}||z|y|z|~~}x{|}|{~x~~}~~~}z~{~~|}}}}|}~~~y}{~|{~}~z~~x}{|{}~~}~z{z{{~~~x|z{xv}}~||{}}~w||}~z}z}|~|~}~z{{{~w|}z}~}~~~z}}}}}z|{~z}}~~}z}}{y|z|||{}~z~}~~}}|~z~w|}{z|~x}u~}}w}}|}~{|~{}~~~{z~|{yz}|{}~}|y|z~}}}~||yzyz}~y~~}~}zz}~}}~~}~|y}z}}|{||{|}}|{|~}zy}~{~{|{y~{z{}|z|z~|{x~z~~~~}}xz||~|~|}~z}y{}v~~}}z~}~|~y~~{|z{~z}|~||}~~|}}y~|{z{~|}{~~{~zx~~}~}w~~}z|~|}yz~w|~~~}x{}{zz}x~y~z{}{z}~~}q~{~{|x{ywz}{~y~~}z}~y|{z{}x|}{|{}{z~zy}}}~}}z~|y~v|}~yz|{|}{~}~}~|{~{}w|}}|t~|}y~y|~z}wyv}~}||{~{z~}}|}~{xt~}~{~{}}}}~|~{y|z~}|~}{{~~~||~y{x}x~|z{zw}|~yv}|~~|~x}v~{y~}z}{|zu~~z|}}~}{}~~w}{|z}r~|~y|~}~~yy{~~|{~}z||~{~}y}~v|~z}{{}~~|~{|}|}||yvyz~}~{~}}|~|{|{~}}|{||~~~~~y|zw~}x{}y|z~|~{~}~~|}{~}{}|y{z}|~~~~z|~~~~}{~~}z~~{}}{|}~}~{y{y}~w}}}~{~}y||{|w}u~|~}~z{xz~~|~~}}z}x~z}w|~~zz}x{z~||~~}}~|~~}z~}{~|}{{|y||}|{y}~yzx~~{}~y}}~x{~v{}|}{~x~{z~}~x{}{~y~}~~v~~|~}|{|{y{|~||~z}zy~~|||~}~{z~~|~x{y~|~y}zx~~{}~{~{~{~}}||~|~|}}~|}~}wz{}~yw|~{v~y|z}||~~{|x~{w~z}|~{~{}}|~~~~}x|~~{}{zy|~}z{~z}zz~~|}{z{~~}u~x~{y~}|~~}z~}~||||}{z|~|}~x}|z~~~}}|~wy}z|}{|zyx~{~ywy~|{~~~}~~}z|}~|~~{}|{~~y~~}|{z~y~}~|~~~~zzy||}x~}{|s~}{|}}|xz~|u~~|}|~|}~}y}~wy}~~y|||z~{{t~{~|}{y}{~}||}~}z}~}~}|z}~}~|}}}}{|~{}z}z|z}y~}~{y}|{~|}~~~|||{|zz}|~}x~}y}wz{~{~~{|~y|{yz}{{~|~}x}~~~}|yz{{z{w{{}yw{||{{yxx}}}|{~~~w{v|}{~~}xz~~z~~}}}v|}xw}z~}|z|z{{}~|{}|pwz|~~}~~t}~~}{y}y~{}xw}~~~}~}{v{~x~~z}}x|~}x~{|z}|~w~w{}{{~}}}|v~~}~~zz{~|~~~}{{~~~~z|z}|||}~}|yy||{~}z~}}{~~}~|}}}{}{~|~~|{~yz{{~}z~}~||{~z~~}y|{~w}x{~~{|~|z~z}{{zv~x~}~~{}{~x~{x|y{wxx|~}}|||~}~}y}~zwy|z~}|~~~}~~y{~zz~|{~x~z|x~y~|~}}y{{w~||{}{}z|x~||~}|}y{}}|}|z~|yy{}~}}}~}zy~|{~z}{}}|y|}z|~}|}z~yyzy}~}}y~}}|z~~zz~}{|xy}z~~~~{~z~v||z}w~}|~}z~xxz}|{xz~|wxy}|{z}}~~|}}~|}{|}}y{~|~{z|~~~z{}z~~~}}~}~}}}|{x}||~~~|||~|~{~z||~{}~x{|z{}}||}}~{}y~}~~{~}}y|||~z}x|}|{|{~{}}|~~t|{y|~y|y|~}~}|}x|~z|~}yx||~~{z~x~y}~x~~{|~z~z{}|}y}z{}{z|y|z{|{~~~~|}~}}{~{}zy}}y~~y}~{~~{zy|~~~xy}|~{t~y{}}z}}{}~~}~~x|}~|~|y|}~|~x|~|~~{|}~~{}y}z}|sy~{y}y~}x|{{w|~}|}~~|}~}y|z{~{}}|~|z||~}}z|~|~{{~zz|{~x~~}~}|z|~y~~}~{~z{}~|}z}}|}z|z~~~~~w{{|w|y|w~|}~|}|~z|{~yy{}zz~}}|{~~}z~z~zxyz}|}~~}~}{zz~u|x~~}{|~|~~{~z}~~~|z~w{|||z{~x~z~~wzy}{z}~tz}|~~~~zz}}y}~}|{w~~z{}{~~||}zyzz~~y~{}}}}~}|z{~~v|~~z~xw{~~|jz}~~|}zz~~x~|~}|}u}{z}{~z{|~z}}{}||z|u}x~~~x~||}~|}|}{~~}~|~~~x||z|y~~~z|~~y}~{~}~||}{}}~u||~zz|{{v}~{{~~{||}}w{xy|~||s}}{y|{~vx|~|z~~x{}v~~}~{}~z|}}zz~{~~~|}~~~~~}w~~}~~{}~x||~||}~}~|~{}}{{~}}}}}~y{|~z}{}{~||z}{~yywz~w{~}|zy|}}}}{z~~{{{}~}~}}}{~}~~~~{|~~{~~}z~y|}}}||~{}y|zv~}{~~zy}|~}{||~|{{{}~}~|~|~~z}~}~~}|y{}}xy{~~{|u|y}yy}z~~~|~~}~~{{~zz~}}~|{}}|}|{y~}|z|}}{~~|z~|}~{z}~|~{}~}|z}|}~zv{{~{~~~x}z~}|~}|~z~}|z{~x{~z}~~~|x|~|~}zz|}u~|~}~y~{{{~~{z{|~}z{z~y}}}~|z|||~|yx~~}zzzy}~~|{w}~}{y~z}}{{}z}{}z}y~y}z~}~}}}zyy{|x~|yx}u|}~~|~{}{~~}}|~{||}~{~zz~z}~}||~{}~||~|}yy}{|x}~~|z}z|{z~~~~}{}~~~}xvvzz~~}~}~||~z}}~}~|}}}~~{x||{y}|}}{~{~}{x~~|}|}||}w~}|{~~{|~}|}~}}~~z|}}|{}}~}~~||~~{~~}|y~{w~zx~~~}~~~{~|~y~{~~|~x~|}ztx{|z{y~}{}z}~}~{~~x~||~{v|y{}}|~{{}}z}{{~}{y|zz~}{y~~~z~u{z||z}~~|~|~z}{|~y{}~|y|~w}x|x~~}~~}}z}~y}{}}y~~|{~~~z~~{~|}{|}}|y{|}|}~z{~}{{z|~x|}|}~}y{|~|{}}~~{~{}{~~||}|{|}~||w~y|||~|~|}|}|}}y}|{~|y~{}~w{~~}|~~~~~~~|}~~~x~|}}}}|v~~~~x~}z|~~|tz{xz~~~}}~~||wz|y~~{{|~z}{~~~~~zz~{}~}z{{}~}z~~}|}}z{~~~|{~||~}~|{}~|z{}|{~~{~}|||~|~}~||{}|}}~}y~}|{~w{z}|{|~|~}~~{}|~|~~x}~z}|}}{}}}{|}}~u~~}~{}y}}~}|}}}~|~~|yy}~|vy|{|~}|{}}y|}{y|x~|}z~~~}{y~~}{}x}y}{}|~|~~~|{z~{||}~{}~}~~~~|}}~~|z~}|~v~}}|||~y}}~w~~~}~~qpx~ny|~zz}}rxn~}v{~}ws}{sxwy|~z{|}{|~~z~{z|~~~~~||zz|z~}|}|u}z|}{~{z~}~yzv}{z~~~w~z|}}}z{|z|~}~~}|}}}}~|{{~~}~~~y{|y~}zzy~|z~|||z~{z~~{{}|}||~wz~}~~~{y~}xz}z}~|~}|~~{~{|~|}{~z}~~{{z}~z|~{z{}}~{{}~~}}{{z{~~|~|z{~}}z}{}}{{}{}~}~{zz|{|}{||}z{y~}}x}|}y|}~}}}w{~|}|~{|{~~~t|}{~~}|~{|}}w|}}}u~}~t~~|}~~}{y|~x|w~~}|~~~}|x}~p~{|{~~|}x~}~y}{}z{~{{~}z{{zz~x|~}~zzzxz|{|}}~{~|{|}}x}~~y~}|}|~{|~{|~|}~~v}{~}}|~~y|}{}~~{|{~~|~}z}}|~||{zz|~x~{~z||~{u|{~}}}}}{yx{~~|w}~z|~~v~yy}}}}yxy|~||{y||~}yy|x{z{}~}~|}||~y|{}|}{s~{}z|{z}|}z|}{~}~~~|~}}z|~{||{{}~}}y{y}|{{{}yxw~}z{{y}u}y}{||{z|}|}w~~}{{{{}~~~x}}|{|}~yz~~{yy||x}yz~~~z|}|}{{}z~~~}{z~{wyn~||||zy~|}}u{~~~~z}y~|}{|~}u||{xz~~~|y|v{~~y{wz|}~z~|}}w}}|}~z~{~y~z||~z}~}|}}~|x}~{~~xy|~~~}{{yx{z}{|~}z|zz|}x~|}|}{y}}y{~xz~|~}||}{{~|~{v~}~}~~}}~|u~w~|~}z|}{~~y{|}{y}|}{~~~z}wx|~w~{~~}{~|y|}y|}{}z}~|~{~|~z}~}zw}}}~wy{~~y~{z{~}~y}}z}{y~}{{}~y{|y{~~~z~}}|~~|}{~}z|{}}}|w|~~|zt~{z}|}s}xx|{y}}}|~}{|w{~~~}~|}w{{~}{{|~|~{w}}zz|}}z|z~{}|~}~}~~{|}~}z~|}~y~{~zyz|~w||z~}z{}~|{||~y~z}{~~z{~y~z{|}}|}}|}}|}||~{|{~y}|~{~~~|{~~}{yy}|{{|{|}|}{}zz||~~{}~|z|~{}}|y|~~~~z{{}|~~{~y~~{z|~}~{{}~~{z~y}{}}}~|~~}|}}~~|~zy~}~~}y{~{{~~}z~~{~~~{{~w}~}~}}{yzy~{|}|~}yz~}}~}~|{~|t~{}~{}~~yx~z{~{~}||}~~w~{~~~{{~~~|~}~}}}||z{}~|{}}{}}u{{|}|~{}~{}|y{{{{z~}}zy~}z~z~~~~{~~}x}}~z~{~|~~w|{x|}~}~|}|z{|~}}~|}y{}||}|~}zz|~{|{~y}y~}x}}}y}}~||}~|~~~x~~}z|z|}~~~}{}s~|}~{}wy}|{z}~{x~|x~}}v|~x|}u|vy~z|}zxwz{}}yy}{|{}~|}{y{|}~}}|{|z}{yz~}}}}~{~}z||{~~{~z|||z~{||z||~}}|}~~~xy~|~~{~~|z~~z~}~{y|}||~|}}~~}}|zxzw}~z|~}}|{}z~~{|{y|z~}~}{y~}z~}|~|zy}}}{|~|~yy~{z~|}}~{{{{|~}z}}}~~|~~{~|y|~~x||~}}~||x|}|~z|}}}yz}|~~}{{~{~{|~~{~x~y{z~{}z|}|{~}~{|}}z~}x~}}y}}w~||~z{~{~|{{|||z}~~{~x|~}~~|y|~z|yx}~v}}yzzz}~~~{}}|}||}w~~{}~}}}}|~~}}vz|}{z}~z~~}}|~z}~~|{|{y{~~~}~|~|z}}}}|}yzzy{x~|}}~~~~||y~~~}}}~}{|~|}y}|}xz~z~}~{w{~}|~|~y}|}{}~~|{{~{~z|~~|}|~~|}{z~|{~|z}}}~}}}}~~}|~~~}{}~{v{~}{~}~}}~y~}z}{{y}}}~z~{{}x{}y~x{~z}t{|~}|}}}}~{y|}{|}~||~}wy{{}z~~}~~}{w}y~{|}~z}~zy~}}}y}~|}}~~}u~|}~|~}}}y}}y}z~v~zy|}~{~~}~}u~||}}y~}~yz~y{v}y|}}}wyx~}|zw~}{w~r~{w}~{{}}x{||}v~}y~yyx}v{}{}{}z{~z|~~}w}|w}~w||}xz||{}|z~|xzy~|{{|{|}y{|{~{zzy{||~}w|~}{y}{}z||~}}~|w}}~z|~|~|~{y}y}~}~y|~z~}}}{|}{|}{~z|z}z|~}x~||z{~w~~|~}}|y}~z~xy~|z}z~~z~}y~{y}}z~{|z}}z{x}v}}|~}z{||}~~~~y|x~~}}{~}}}~}|}zy|~}yy~yy}~~~yx~{w}~~~~~z|~z~z{~|}{}~u}|y}u}}w|}}~{~~x|yvx|~x~{~z|~{}~{{~yu}~}~x~~x}}}~~~}|}xw~|~}z{|}y}|}}~~}w}~}}|}}z}~~|{~~|{~u~{~|{~~}}{~~||}~}|~~{|v{~w}z}|{}~{}}}w~||}{}y}{z}{|x}~}z}y}y{~~}|}{~}~}~}{{~~{~}}|}{|}z}y~~{}yz}|}}{t}}~~~z{~~zzzw|~|}y}z}~z{}~~~~y~{|~y~z|y|{x{z}y{|z{}y{}~yv~|z|~yyw~||{|}{~{|~{~~|z}|{~~z~~u~|}||zzxyuz{z~w{y{}{~{y}z~z}}yyz}x~}y{~}~~y}y{y}{x|}|}w}}|z~~|}xzx~~{~~}~}yxz|}~}~~|~}~~{||{~}~w~}}|{{|z~~}~}|wx}{~~}y~}}|z~}~}z~~~~~}~}}y}||~}}~~|}|{|~}{~||}~~~~y~|||{|yy}}~~}{~}}z~|{~y}}z~{~{y|u|}~~{}|~}}z~}zz~z}~~||~~|||~~{~~}wz{y~}xz~~}x|x}{{{}~v|yzyz}~{y}~{{z~z}~~~|x}|{~{{z||{|{}~|{}|z{|z}|{{{{z{x~}}}|~{{x~~}|}{~~|zx}|z|{|~}zzx}||~|}|}~z~{~z{{}~~{}{y}y{~|~}}~}}|}{{z~|~~~~~}}}z~|w}~~~~}~|~~|~x~{}}~~y~~~~}}|~~z{|~|}}zz}}{|{}y}{~|z|~{}{~}}}}~|z{w~|~{}{||~|~}~z~~}|{z~{~~w}~}y|~{{~|~~}w~}}}||}z~~}z~z~|z}}}~~~}{{~~~~|}}}|}|}z~}~~|}~~w}z|~{~|z~}~~}~|}yz{{|}~~{~~y~|y~||{{|{}{{}|{}y}}~v{~{{~w~~|~}|{z~~|~z~|~}~~}v}~{|~|~~{x|z{y{~}~{}~~}}~}~~||~}}}}|yzx}z~y~z~|~{}z}|~}|z|}z~~}{x~{y~|x}||~{}vz~|~}|{{|{|||~v~ys{||}~x~~~zv{~~~~}~{}y~~~}~|{y}|y}y}{~~{}{}|}}}v~}}}zz}z~~}~~{}}}}}}}||}~~}}~~|~~}}}z{{~y~|{}|}|{~}}}~~y~~~}}~|}}~|{|~~~{}|z}~y{{}~~}|}{}}}z~~}~{~{z|z~~z{}}|~}z~x}x~~{{~{~}{}ww}|~~|}}|~{}|vw~}}{~{~~|w{zzz}|}{}{}xy{{~}}}z~}~}||~~}~{~~y~|v~}}~y}~~|}}t}|||~|~w{~{zz}|}~|}{{y}}~||{}~|}}x{}z}x}~z~|~~w~}~}~}{|{~z~|~}~~~~{}z|~~u~~zz}x}w~~~}z|}~}}}|zx}}}}~~z~|}}~{}||}z}y|~|~z{}~{|}{~}~|u|~y}|~~{~zzzy}}{~}z{~{~~~{{{|~~|{~~~}}|}y}~||~~z{y||}~~}}z}y|~}}}}}{~{}z{~x}~}~z|~}z|}~{y~x~|z|y{w}{|{|~}~{~|yy}{~~|||}}~}x|~{|~||{z{|||}z~zz~|}~}~~||~}||{|{~}}y~{w~}}}}z{~}~}~|{}}~z~}}~}}}|~~{|w{zy~~}{y}~z||w{}y~}}}zz{~|{y|{~{{{~z|~~~~~}}y|z|~~||~{zv}~}~}}y|zy}|||zz{|~||z}~}z~z{z|~|{z~{{|~w}~|x~}}~{{|~~}~~~}~}y{|}|}|||zx}z}}~}{~|}|~{{vz{}y|~z}~z|~{~y~||x~z}~z{w|y~}~||}|z}}}{|}~w~{~}}~{}}}}|y}~|y{~|z~x~}|z{||~}{xz||}|}w{zzx~}{}}{wz}~z}y|}}~}~v|p{~~zz}u}vx||||}{z}~zzyzzw}{{}u||z}{~}{||y}z}}{}~}xy~z~z|}|~~~|~~z~yw{}{}z~z}~}wz}~|}{~|}~{t}zx~x~|uzz~{}x|w}~{y}u}|~|y{~}~{}|}}~~~z}|~}|}||~}}}|~z~{z}|{}z}}{~|{~zy{}|{~~{}{~z~|{}}zy~z~{z}{}~}{~~tx{~}{|~|}~|}}}{}~|~~~{~xz}{}}~v~}|}{}~}}~|}~~|x|}}|~}{|}{}zz}~}{z{}}wy~}~}z~~z~}~{|z~{}~{{~~}z{x~}}{~}~{~}||}~}}}}x~{z{w|z{~~~~}~|~~y~|}z~~~}~{|~yz~z~~{|{{~~~z}}}}{~z}}~|~{}|y|}~{}}~{xy}}~~}{}}xyv}~~}|}}wyzzz}~{|}~|}{}}x}}|{}~{{z~|y~z}~z|{xx|v{zz~{x|||{zv~~~{x~z~|{}}}|vyv|z}z~{~~uwz||~{~xxz~}}~~~|u}~}~~}{}|}}{zy~{}w~~~|z~}|~|~z{{{~{~{|}}z||x||~}{~|{}|||~}~|{{}||z}{}|}y~|~z~~|y~|}|}}|~|{~{~}y~}|{|{~}|}~~~y}{~||}xy|w~{}}||{|~y~}}|y~y~|~~y}~}}~}~|~|{~}{}|{~|}w}||~||y|{x~}}~}}~|}{~}||}|{y|v{xz|}~~z{|{|{~{~o{~{|{t~z~~|zx{}q~}~|}|~z}~}x~|}|s~|z~}|}|}}~~w}}}~}~~|}{|||~~}~~}{~~}~}x~|~}wz~|z}~z~{}}{}}{~~}~|~z~}~|{}|~{}~~}}~~z|z}~|{}}~}~~x~z}~|~~~~~}~|}~}~~~|~~~}{|}}~~|}}~|||v}z|~~~y~z}{x|~}xz~|~{{{}|~||z}}y|y}}{xy~{~z|~|~{{z}{|~~~~|}}|}|~z~}}}{~~|~y{{u}{|~}~z}}}||~{}~}{||~y}||~}|z~|~{y}}~|{|uu{sy{{z~zwy{zz~|}{~z}~|x~|}~wz|v}~{}~z~|}{{{~|~|{}~w}z{yzw~~}|~y}zx~~}||||z{}~z}~w}~v}{}}{{z~~zx}|~}w~~|~~~}{{~{~~~}~}~~|~}{}x}~|ux||~~||~y|}u}y~~}zy{}uy~}~w}~~z~u{}}}~}||~~~y~{{y||}{}}~}~}~yxy}}}|w}~}{{~}~~}~~|y}{~{v~~{{y|v{}z|}y~~~}~}w||~~|}zy}{}~y}}z}|x~~zwy}{w{~~{{{~z}|~~}z~{~{z|{~}~}|~~}~{~~}~~~~z~|||}~y}|}|{x~~~||~z|}z}|x~|z~~|~{~}}}~|~y}tz}~~|~}w|}~~~xxz~}~}~zv{z}}{|y~~|z~~~~|z~{|~~~~}|}}~x}}{z}{}|x}|||{|}~~~~{||}|{z~}~}{}~~~x||}}~~y{~|z{}~}~~{~|y}|v~z~|||z}|z}|}~~|{}w~~~|z|z}~~~}}}}||}|z~~z{y~}w|{|~~}x}|}xz}y~{~wz|~~}~}~{xz~wy}~ww{}~}|}z|xx|xy}z||}|oz~|~|}w}{||uu~}xzz~~v}}}z}|{x}yy~{|~vwz~z|~||xxvxv~xzv{~wxxx}{y~}~~}|{|~}~~x}z|zz~{r{v~~}|{y~{{|~|x|}||~~~~{y}|yz||z}v}{|}x~|~|u~|{}||||yw~~zz|w}}}~{~z}}}|~z{|z}zzxw|yz|}}~}{~~y|}|}{{~{~yy{~x}|}z{{x{}~~yz|~~~x}~~{vz}}|~}x~{~|~|zx}}~~{xz{y~~|~}~~x||{}z|~~~z~~y|}w|y{y}zzw~~y}{z|x}}~||}|{{z~|}~z{}~x~|}}}{{~{y}xw{y}~z|~xy~z~~~{}{}}~||{{{z|}{w~}y{||~z}{}}~zx|}}~|vwx~~}z}w~}{|}~|~xz{}~}yvxz|txxz{}|z||x{|v|{}~yz}}w~}y{yxuzx}z~w|w}z~z~x|}}z~{}z~s~|{w}{s~{{}{|}u~v}xz}z}|}{|z{|~}}z}{{|}yywz{zyz~~|}z}~{y|}|~||{y||}~~w~{{xxt~{v{zxx~|~~~y~~}~|zxu}~~{{{}}yz}x|zw~|{zz~||z|}y~{}}||z{zz~y{|{ty|}zz}{~~{}uz{~{zuzzx{~yu}}ztyw}vwx|r}pxyuvtx~~~~~y~x|{}}{{~w}}x}z{~y~~y{o~v|wy||{~{xz||{~w{v{v|z{{|z~x}~z}~{z~|z{xoxx{}{~y}|xxzz}w}}}{{{|xx~|}|u~{x}z~}w{x{|z}|}{|{yu}}|~z|~}||x}w~|z|~~u}}rz{y||~{z}}s|x~v~}w}|~{z}~zxz}wyxz~xz{~~y{|}zt{~{{}xz|v|x{}|}zyxx}}~uy}z|w~|}xvz~}x|~|~}{}~~}{}|{x{|~y}u}}y|~~|||~{|~}}}x{{}|z{~}||~~}|~zzzz~{}{~~~|v~z~}}}|~||{|}}~{~}}|~}~|}~}~}~}~z}}}|}}{|~z~|~}~z|z}|}{}~x~z{~x~y}|z~x|~}~x|~}{}|~~w{~~~y{}w}|{~}{{~~zx|{}~{yy~~}}v}}z{|}w{w|z~|y~{{~~{z~~|y~x}|~{|~~{zz}}}x{xv~}{}y~z{z{y~|}}yz|~}y~{}|y}|~|~{~x~v}~{|y{~~~x}~~{}s{~~~}}|z{~}{~{~y|~{{|v{}y|z}z}{}~{z|y~y}xz}~z~}~|x}|}v{xz}}~}}z~{|{~~wy~~z~x}}z|~~~|z}{{~z{~~|~{~~~{{w~z{y|z|y|}|~||}y}~xy~~{||{|||{|}~zy~~{z}|}}|~~~~y}|zz~{}~~}y}x~{}~x}~~yxy|z{}z{}y~{~~{~y~|{|~wx{}|yy~{{z|x}~~{yy|{~{{|{}{}}z}}~|y{|}{z~}|{z~|z~t}}{||x~{yw|~||x|z|zx{~~{u~yx|}|}z~}}~}{y}{~{}v}y{}z{yzu{~|{x{z~z||~||z|z{x|~|v}|{z}|~}|y}|{{{~}}{|}{}}zz}||}|z{}||z|{z~~}x~z}{}z}}~{y}yz{}~|z|~z{~}}||xz}}~w{~|w}~~}}{|{z}{~x|}y~||}~|~y|{xx|~|{w~}yv~x{~{~{}|z{x}}~{~~|~z|}{}~}{}~~}y}y{|}}|yv~}yy{|~{{~}}~|}vw}{~}~{}|y{|y~~{y|zz~~s|yz~~t}~z}y}}z|{}}|}}~t|{|sv|{{||{{|v{v~~z}yxw~{{z|}{~}zx~}|y|z~y}y|||}zy||w|{{z}{x{u~{}}~x}y}w~~}zyzy}{~~{v~yz{z{|}|~x~}|w{~x{}}|r|~|~~x{z~~z}uzx}}|}{ywzx~zy}|x}{z~v}|yy{z~|zz~|y}v}~}y{{}}}~{x|~}{}w{}~y{x~}~}|~}||~}s|}{~~{~{|~wy~|x}y~z{x}}||~{}|~w~~~{|{|{vzx{z|}y||}y}|{z~~o{~}{~z~|z~t}z~zw~||}y~}{y~~x{|xwx|v}}}xw}z}}{}~zv~~{z{{{}t|{~}z~~}}z}|{|z~}z}||{{z||{{~y{yw{|xy|r|~yx{}~zz~}{~}~~zy|{}w~z|z{|~yy~{}|{}~~}zz|xyz||~~{z}|z~{y~u}}~~|~{}|~tvz}zxzz}x|z||~}|~}{zxw~||z}v||}~}}vvw~z}~{w~v}~}z|~w{~|yx}w||{}|y||~{~}|zwvx~{}~}vzx}|xzx~||y|{vu~z~}{x|x}|{~~|{x{}~}}zz{yzy}{{y~y~}~x|ww~}|~|}~~|{xw~{}{}}}~~{z|uz{}x{{||~|}}yy~~~}}z~~}~{~|{t}}}z}y~}}z|~~y{yz~|~~x|~|}}z~zv~~y~~~}y~w~r~}{y}|v|~|{|~}y}|z~{}z}}}~}}xxw}~z|~|~|}}~~|yv|}~}~|}{z~x~{~}~|}|}z}y}|zzx~}}v|~~yz|{y~~z}{~{|wv}~~}~}{{{|x|y}~{}}|~}yz~~x~yx{w{yz|~||{~{zu{zx}z{ux~~}~zwp~|~|}w{||x}x|||wrzs~~~zzv~}}uxvy~yy}mxx}}zu}~{xzzzw}yxv|m{wz}}~|~}zz~~}xyyz~z}yy{z{||}~|~x~xvx{}~|vx}|n}zz}zxz}}{}t~||~~y}~{~xu~xx{z{{wy~|yz~z}{{|~x|w}~}}~}xu~w{w~zw{}y|{z}{}{wz}{wx~|y~zz{tw~}}yzy{}}~z{|}}v|~~}y}}}zv~|~~{zw~|||}}v{}~z{|w|~t~z}}}v}w~z~~zwz{~}z}x||~~y{y~}{{{z{{zuyy}zx|~~zvy~~}|}v}z}y~~}{~|{~{~}~z{~}~~}wv|}~|w}{}}~~}}x~}{~}~{~~y|wz~{~}w{zz|}~{~xyz}~}~y~{}}~~}|y~}xz~~{{~{{z~{~~}~}z~}{y|z~}{~~x}wx~}y}~}x}w}}~z|t{{{v}~{|~{}y}~}|x~~{yuzz|{{z~y{~yy||w{z}|~~||}|~{~~|~x~{x}}zz~|{|~x|~|~x|{~z|z~v{||{{}s~}wx{|z}yw}}}z|x}x}|~~y}||v~|}|~w|}x~yz{y|}{~~~}u~xy|{~{x~x~}xv|wzz~|{~zx~y~}w{{y~z~zv}v{~{vzz{|~|zz|v|z{y~{~xv}yxzxyzvz}~~~~y|~~}}{||}}}~}}}~}{~{{|~uz}||{y|}~~}}|||}w|wv}{~y}tzy~|{~}z~z{~~|~|~{t~x{|~|~}xy~{|}~z{~z{y}|~~{~|}w||}~}z~|y{y{u~yx~~~|z~w|~x|{z|x{y~|v||~z|}}|~wy}wz|z}w|}}z|}~~zz}|{}~~~~|~yw~z}}}|z{yzw{||~~{~|||~}}~w~~|~y|~}~w}w|~z~x{y{}|}~w}{yx~{y~~z~}}zz~|}}z}}~|~y~w~z}~}|y|||z{~|z|~{}~|}|~}|}{~z}|y}}}~}z{||}|}{|x}}|~w}}~~~~|~}}y|{}|~x|y|}}~|||~~zz{yy||}y}z}}wz~~}z~}x|z}}~}|{{y}}{}~|~y}|{{{{}y{~y|{z~||~~|~~x~}|v}{~~}}z~~}~}||~~~~}~wz~{~{~|{~}~}z~}vv{|~x{}y~z~{}}z}~||~}y|x~x{y~{}yw~|~x|~z~z{~}}}~{{~~{}}|~}{}uu||~~wyzx~~|~{y{}w~y{x~{|~|~x~}yw}|v~z~|z~~{z|}|{~{y|}~z{|z~z~~~x}}|yw}|}~xz~{zx~|}x{}yw{{|zv~y{}z{~y}~|y~|y~}wzy}}~z~}}|w}~w}y}x~|}|}x}w|~{wz~zw}z||z|v~z{{}~|{~~zy{v}|}}~}{~~}}{zz~~}~~z|yyz~{~yzx~yx}yz}||||~}{||}y{||{{}|~|{z}}}|z~}{~{~{||z|zz~}x~~{}{|~}~~}~yy|}}|x}y}}~y{||z{{~z}{}z}~p}~{{~vz~~}}|z}}~~z~}y~|~~}yzt{}{~||z{xv|}tyzw|{xw~y|v}x{~}~{}}}u}u|wy~{{~|~|yw}yux|}r~y~rwz}~y~szz{{}|}{~|~wv{}}}}u{~u|mz}xz}~|z|zy}yo{zx{x~{{x{~{~yxz{z{}~~yywxx{z{{{ws|yz}{~x|{~}~zyz|z|{}w~}zz}||}ww}z~~z}}yz|{uyzy~}yp~|w~~{y}~{~}x~~|x{{{}~}u~~}}}z~~}~~v|}z}{~|z}{|z{xw~~~|w}~~}~|y|z~}zy~}{w||yy~|q}w~|~v|zzu~|~~~yzy{|yyy~z}~~y}~xv}ws{|{~|~~zx|v|z~~}y~x}~|~z{x|{~~~xuxy{y{~~{z{}x}}~~~|xv}~}{|z~|xyv||y}x{z~}{y{{zy~y}~{}z~{v{|}|{~ysx|u{{}yx}|y}||v~xz}x{}~x}{~|}y~}{{}|}~|yw}{~|y}}|yy}|z|~~}}}}|w|~}~}}~x~~~}}~y~}~~~{}}z}||}zx{~|~~{|}||y}~xw~|}|}|~}{|z{}zvz{wz}|}|u{{|~}~xxy}z}|}~~|x{z}z|z|yz~v{|v{}}y||~{~~zxzt~{}~x}v}{}}~{y}|}}~~~}u}}z}y}}}~zx{x{x|}|z}{}~~{s~}|~}yy~z||{{zv}~}}xsyy}{zwyz~~{|{v~~v{zyw~}v~v{}x{x}xx|{}{xy|z|z||v}yx~}y}||}z{|~zy~{{~{y||}}t~|~~{~}ux|wwz{zyx~v~{|~~ww{z}zxyy||x~}{v|}}v|~z}p}~zv~{|z{}|zzwz~~~~v}~||~xzz~z}|zz|z|vvz}}}||}{w}{xw|~y{}}~xw||~wz}~|}}}{z~~{v}~}zz}{~yx~w}}}{|yz|~~{|v~w~}|}z{}|x}yyu|~~{~~|||xwz~s~|v{~w~|{y}u{}}xxz}|{|}y~~}|~~y{wy~|}~|}}{|}x}}x~yz}}~{}}v~||~}~~{}~|~||y~z}|~|x~}|y~}||z{~|~|}}z~|}|y{yz{~}|~~}|}}~~y|{z}|~}xs}|}|z|}}~}w~||{xwyyzz{~~yy}z}z{zx}{~}ru|uwy|t{~zx~|z{}yyz}||{}z}}|z{~~wz|v}w|y~|}zw~{}}yv{xy{w}~{}~}{}|}xz{~{w~|~v|~z{{}x~}}|{y{}}{{~x{}y|}|y}~v||~|y}}~}|~u{~z{||~~~vtx~v{yz|z|~|zz|w|{|wy}yz{yu|t~|}~~v||{zw~~{{w~~}}~|}|}z~~w}|}||~~y}~{~{}{x|zyyz}~wx~|}x~~{|}~w{}}}~{{}~|uy~{xz~}}}|zz|~vzx~|~~|z}|}}{}|~|y|}~z|z|}t{z{z~y~{|z}z|yy|}yz~tzv~}~~y|{{{~|uu~~|||x}w{}z{x|}z|~}vyz~}}~yx~|zyyvwtwx||zy}|{{}tzu}~xx~ty~}~~~}x{~|rzzrzzzu{v{t{~{|ux}z~y|~ww}sy|zyzvv|}y|z|u{}~y{{|ws}us~{|}{{~|y~w|{q|~r|~~|~||z}|z}{|z~}~x{~yw}}{|||{y~|tx||yz~{|~~~wz|~|~}~n~}~|z|{}z~xy}|~zzv~{~v~}~z|}{~{|~{~wx~}~w{uy~yvzz~{}w}}yz~|~ty|{z||||~{y~}|y~{|y~y|v|}~|x{{x~|{z~zp~||~}w|}}y|~{}~|y~z|yz{{x|x~v~|~~~}}u~|}~ww~~{|~{|u}z|{~~}~~|z~z|z~{xz~~z~|x}{zyw}w}~{|||}}~x}|~~|~{|{z||}|}w}}x|~{~}|zzyw{|wyy{~|~yz|xzzu}~~|}~{y}|yz|}{w~{}}|~|{}}y~}|~{{|z}~}|~~y{{z}wz~wzw||~}}z{}{{y~}~~y|~}y}~z~~t~|}{}}zwy~~~y|}~}}z}~x~}{yz|yw|~{{~z}|zyy~}z|{zyy}{y|}x|}|}y|~}zw}}~zz|}{~}{||~~zz{||}}{{}~z{y~w}{|z~{~y|~{~|y{}~{~~|~xz~{~{xy||}z{|y{|~y{~t|x~{||~z~~}{}}pw{vwxu}}|~||{~{||||z{u}{{vw~~|~{}z~z{}{{}}~~{~{}zuyx{~~~z|z}w|}{y~}}z{~x~}||}w~|y~~~}y~zz}~{y|}|y}yy}{y}~}zx}}~~~|{}~~w~~{z|t|~~|~|~y~~||{zvz|y|}zy{|z~~~z~z~{}z{~~}|z}|~z{}~}y}y{x~y~~|}}}}y}|xvzyzv{{yy{qxz|vzz|}}}z||||}|{}~w|~s}z|ty~}y~{~~}{{|~}|}x}wz||zy~y~x{||{~{~{}xw~}|t{y~}zw}}|yx~~}w|yz{z|y~uw|~}~s{{|{x}~}r{z~{y||zu|~z|}u|y|}}x{wt{{y{~}x~yz}~z~{~x{|yy~~}z}}~y|~~|y}|}~~|}}|z|z~||{{zy{}}{~}|{zy}}z~~z}{v}}}}{}y~~~|~}}z|}}y{wz|z|~{w{|~~|y}}z~x{y|{y}|y{w|||{z~zv{~~{~~{~yy~~v}~{v}{|~~~|~||}~~}w|}}ywz}z~wy{x~|v}~{|~}y}}{~|{}}{|~~sz{|}}||}~{t}z{ux{{z{~{y}~z{zx|}x{}z~}~|x|~y}}~~{{||~}{{}w}{z{}~z{y~~|}|~x}z~{{x~~|z}~}}~|}{v{{xzy}}{w||~x|~|~}y|}|z{zy~x~}|||~yz}{yy~{}{z}~|~~y}~z}x}}}w~}{}|zw~u{}{w}z{}zxz~}{}}~~}}z{}|~~~zy}~}|x~{{|{zx~||}{|{t}z}xz{~}}|~x~}xx~}y~x~{|||~z|~}{{yz}~~~}||ztv{|zzz~{w|vwx|z~|{}x|}zt|~~zz}zw}}y~|z}}zwrv|}|~}q||z}zsyyw|u~|}|{}|~~|yx~{{}~~y}}xrv~}||y|~y}ys~~~qxxs}|z~v|||{}}}~{|o|zzw}y~~}o|zv}z~ox~j}~u}|z}z~~sxu}{|x~{|xxz{vx}|~}z~x~}~}~z}~y|~}}{||wzuyy}{x|}|~y}wuuxz}v|||}}yyyv{yzz}w|z~{z~ww~w{w~~tv|v{y~|}s~}~~}{|~{z|w~}s|u|zqwwzy~}w~|x{{vy}}{xz|z}}xz~}|yz}|~{wuyx{}~w|}z||}|~{{|x}t}|~|z{}zzwwy}~}~|}t~~w{~}~x}{}|z{}}z{n}|~{~{~u{|}}}|{zy}}x{x|{~}{z~zzz{y}}yz{{}}zw~z~}~|~~v}z|z~~{~~yyxz}~{|~y~|{{~~{{|}v|||}|~}|~{~}~yy|~}~|~x|{{~~w~|~||{~yx|~~x~y||~{y}}u}}|wyyyz|}}|yx}y~z{xz~~uv{~yx~{w|{}|}z{v~|z{{}x~yu}~zr{~yz|{~|~uy{}~|~w~~y|yu}{||y||~z|{~~zy|xys}}y|}|}|yv}}y~}wx~zx}{vyzw|wz{x}}z|~}~vxy|}~x}}|}zy}~}~z}{}~~y~~x~}|~}|z{}{}}|~|~w}w{t}~~}x~~}y}z}~z{~{}}|{}|}w~}w~z|y}z}||}|~~{~}~y|~~||x{~}|~z|~}}~~y}{~~}~}z{{~}}||}|x{{}~~{}}}{~~~~z}}|~zzz}~x~}}~}}y||}|}}{~zwz}}~~w|~{z|}}}u~|{z}|x~}y~|y~|{y~x{w|y}|{z{~|y}w}~|z{yuu}{x|zy}||zx}y}{zww|z|z~zt}|}||}~|~}}|}}z~|w~y~z{zy}}{}xz~}~yy}yx|~t~~{~wy~}~yw{{~}u||{}~~{|zy}x{y}yx~wzz}~~~t|wz~}y|}}~z~|}~~~}|u|r|}~~~zz{tx}|y~~vy|y~y|~|~y~}yzz{u~{~{{y~~~{}|{~}}{{~{}}|v~~|z|~x}~~~}~~v|}ty~~|~}}{~t|~~|}|x~}s{|xv|~v}x~|||{w|w~}~}{w{|~}x~z{zz|~}vy}}~x|z{}~~x}|~}z|}y}{}~{x}|{}|~}}~|v}}y~~|}{}~~~x~w{y~{~xu|{}~|~|w}}}|y|~}{~ww}x|~{~wyw{~|~|z}zy{|ww~|~{|{suz}{{~z}}y|{w{|{}|~x~xz|{}v|zvp{|x}{}~{{zv}yv{{~}~y{}}u~^x~||t|w{~~}~y}yx|~xzus{{}{y{{swww|z}|xz{}~ww||{xd|}y{xz}x~~wy~~yu|vw~w~}}{x~|{|xtx{y}}|w~}{zz|}y~}~yxvy|~~~|zzuxxv}}|}z}v|z}||~}zu}}zy~|{z~{{|{~z~}x{}~}y|x|{~v}}y}~~|~}|~|z{y{z}~wu|}}|~w{z~~|zx{zzuz}z}x}|z~~{~~|}}}x|}}}{{}{zx{z~}}}s~{}||~||||zsxyz~x{z}~}||{u~z|x|y~}x~~v||}~|yz~~~}yyxw{}x}{xzy{}}|~~~u}~}}x~~x}|z{|y}~}y}|~x|~}~xwzzz|vux~~~s||yx~}}y~~{||}xw{|{z{{~{x{{y}~zu{wy}{z~{}~zwz~x|}z}}~z{y~{v}{w~wt~|w~x}twv}}{|y|z~y|yzxy}zz{}yr~y{|{}zz}}||z~}z{w}|}~|w{{x||~yy~y|}~}}x{}z}y~}}|}yz|~~x~|{|~y{}}~|~~}~{wzy|{~z}}}}y|w}z||}~~~{vv{z{xx}|~~{{~~~~|zz{{}}z~~|~{}y}y||z{z~{~z}y|z|z~y}}}~}~~y}~v|~|}~z}r}|~~|{{y}}{{x|u{y}{~x~w~z}||{uzw}{u}~zy}|zwz~|z{~||zwv~u|{}}~}}||{}w}z|v}zxy~x|}}vv}~s{~|{{{~}x{{zw~xzy{|y~zx{{~~~|y{|z|~|~}~}{}~{}|~z{y{z|yzzy{{|~{y||z{~}{~~~||vz}y}|}}~yyy~}{~|~}{~|y}}}{~}{}{|~}~||~~~|}}~z|}y~~}z~|{}}x}{|{~||{~}x}y}|}}{x~{~}|uzx~|x~y~{x|}}~x|{y|~|y|}y{}{zzyz|z{w{{|wzuu}}{yyw|}z}}rz}|~~ux{z{v}x{wysywx{~|r}}{z}{rx}v}}xx{|w}w~uz~}z{}z|zx|{|rxu|vw~{||{zy~{~~~~{tyyz~|y~~|~|~x{zry|}~~y~u}x}z{{y{{|r|yx}yy|uz{y|{z{}zyz{y}|z{|{}{}}||x~}~x~}~x{|}|||xzz{{~|}|}vq|zuy|~sz~}~w}|zvxz~|}|}zz}|yw|{~||~}}}z||}}~~|~}w|}|~}~}|t|}}{|x}}~y~|}x|||~{|~|}}v}}~{|u}||z}z~x}w~qz}z|{{~{~v}~{z}w~}tw|xw~t~xzy}|yuvs~~|||vz|p~ty{yxyy}wx~}zx{y~~{~e}s~xz~yz||~v~y}{z{}{}v~|}z{{{}zuzyz}{}{~z~{~v{u}{q}{zz|~~q{utz}x{x~|~}~|}|~}||~z}x~}u}}}y~}|}v~|s|~|zw|y}~|~||~{||}z}|~~}}}}~|~}||}}}y||x}{}}|w|wwv}|y||zwz|w~~x{}}~}}~|{}z~~}{xwztyx|~~x|~~{~}~y{z~}}x|}y~~~|}|~|z|~}{|}~|~}~~~~}{x~{~|~|}~z|~y|{{z~~{y||~|}~{~~~~zv~{{y}{~x|~ywz~z~~}z~w|x|zx}|x|zyz}~~}|{~|}zw}~}|}{v~y}}z{~}t}x|~|v}}u{}z}{{yv}z}|ws~zv{z||y~|}~x}|{{|z~~~{{~}~~~yw~|}{z}yv|y}|~}xz}xz~}x~z|~z~z{}~}~~~~~}{}|~~zy{w~z}{{yz~x{}x}~}xy}xy~|z|zz{}~~~~|~~~z{~|zz|x~y~|{}~||}{w~}~}}}wx~|}x}}|~w}~v{}~~s|x}|~{z~x|}yw|}z}{y~v}}u}t~|~|yx}}u{}~|xz{w}|{yxv}}{~{~z~{~}z}|zz{{~~~||y}y}v~~zy}z}~~xz~~y|zy|v|}|}x{w|yx||vz~~~z|y~zy}{|zx|~}}~{sy|~w~}}~}}z~~~~y~v~}{}y|}~~zz~{zyz~~|z|w~}~}z{|{||z~}z}u{w}~~{{}{v~y|}zv}}~{y~}}~z~z{yy|~zw|y|}{}}|zy~~}}vzyyy~|wx||{z}~s{|~{~~}~~|}|}~||{w~|{~yyx{~}{{}~v~wzz}{~zz~{{~}|x}{xw{}v}}}y|zu~xz~{s~~|xx{x}}{~}}z{z~zzzw{~~}z|zyz}v}~z|~|w~{z||~~yw~}~y|~}~|}z{~{~~zy~z{z}|}{{~y}xy}~}{x}~{}|}~z~~~yz~}~|z}}~x}|qz}~||~z}y}|}{y~~}}~||y}y}z{yyu|}zzy|{~}z}vz~y}|}zx~zz|~q~~~}~|xz{w}{~|}{|~~y{y}x}{}~}{z{|~{xz~x|~x|{{}}}}~|}~{}yz|||}{{{~{~vwx{}x}~i}{}~~|~~|~}~q}{~~}~}y|~ry}|~|}z}{}~z~}~|z{{~}w{~~y~z~w|}y}}y~|}~~{{~{x}z~|{z}u||}yy}y}~xx}}{~{||{}}y}v~zxxvy|z}}{{|{}{zx{z~z{{}{zy{~}}z~}z}~}}|}z|~t}~|}|~x}|~wx{zw}}}x||~}~zz|w}}z|~{{xu|}~}}~}~}||}}w~{}y}~}{~~~xy|z~}}~y}~}~{t{xzzz|}~w}}|x}~vz{~{~w~tyv|~|z|}}z~w~}{}wz{}x~w~~~{~{|{~~x|z||}y}{{}zx}w}{~~~~{|}}|}}}~}}|x~|~y{~u{{~{~z{}}z}|wt|z{z||{t{}}|}~x~~|~z}}|}{x~{{z||{x~wy}w}}~}~|~x}~~y|z{{~~}~z|z|}xw}}z~}}}{~}x~~}|{}~tyz~{~xz}|xv|uy}}y~|~}zyy{zz{wzzy{{~wy~xyxy~y~{{||y}|y{|x|~{~zz~zy}|uw}wv{~||~}~zx|vwy}}~|}~y{}~{{|{~|~|}v|w|}tu{~y}|ywx}}x}{y|z}{z|}z~}|{{uv|{{|}~|}yy~w~}||~|~|}~z}~~{x}{~x{{x{|y~z{}~~{|~|w}~z|}y|u{wz~~~~~{yy{}|}}~{||{~~v~|zxx}~ux|wxx}~||}uyv~~}{zw{{z|{zz~~}zzy{{zy|yx|~{||~}y{}x|zzz}}}xs||||y|w}z|w~{{{vyw|z{s||~}{yt~x}v{}y~}|~zw{~vt~xwux~~{}z{xz{{z|{{x|y|}w{||yz~{x~|~{{|ww|~~{{||}{~zzy~{zz{}}x~|~z{z}{qz}x~{}}{}yzz~}z}}}~{z}~z~y}z|}x|u{|y~t{|zy{~~xx~~}||{{|zx}{xw}}z}x~~~y~zy~w~|{~}}}|z}~}~}||~{}r|{~}|~z{yu}z|}}xz}|z}vv}~y{{~~|x}w~|z~|}{{z{}}zx|l|~|w}~}v~t|}v|s|~sz}{t~}yw|w{u{|~w~{u||{yn~y}~z}z|z{~|x{}z{xv~|~}n|~~~|}{zy~~o~}x~}{xxuyssrwv|xuzzwxtpwz{vnytwt{srsqtivwsvstpztxqvqpgv|{w{yz|yquwumuzpvr_lwzwyk~xvq}z{prniqV|uxspytea{svqvxmqyg{|{y{owyvclyrVquprvktouypqy\i}vyv~rxuwudw{{vzudwmztkwxzmyfubxrvaupvwvqpvrr}czzvwlluptbluxyxloqvuprsr{yyxrumprsswtumzps{sopjltrvptmjuvxS|xulrqqq~wuqwtss{iy}wxls|mvvusksxTzpbruwzr~ows{vpzvslqoz|unusruy|qu|qkwzv{xpqsvpxfz}]ncixtpxswxxuvtxz{o~kuox{rssizxpsu~{}{|zy||}~}|x|}z}~wxyzy~|y}~z~|xy~~zx|~}|~}}{~}~}x{z}v{{}{}{||z{wxy|{|s~{v}~||}|z||~}|{~}}}wz}{~x~|}z~{}~|y{}}|{zt~{}}}q}}}{}zw~~xzyx{{}xzy~~{yu~z}{~}~~~}z}~}}x~|~z~{}|}|vx{}{{}|}{z|}~}~w~{}~||{}~}z|}|~|~zv|}}|{~y~y~z}~||~~y}z}y~~zy{v~~v{wv~|}||v||~}|w{~|{{|~|~x|||}~xzz~w|x}|}}|~~}}u~u|x}}~{w}{x|||~|y}|xyq}~z|{zyy~tz}~}}{}xxz{{wz~{~}{vz||~~zy}y~~~}z{w|v||x}z~~|}{}zxzw~{x}~|{~{}||w|}~~w{}~wz|yw|y~y|{{~~q{}x~~~x~ys||||{~|w}w}}v}}||~y~~~}{~{y~}y}z|~}~~~}|{|y{vs|{|wz{v{}zy}{|~~wy{|zx}{{{wyuz~}~|}zwv~yzv~~~}}{~z~}yy~z}||||~~}}yv{y}{|yz~}}||yz||{|y~z~~{~}|{zx~y}~~~|||z~z~{}}~|{w~zxx}}y|~}}uyy|~|v{}}~|z{}~~}{{yv~~}z}y~z~}u~z~{~yw~}y|yz|~|w{}}z|}{~~~zyz~~}|yz~{~~{xz|~}{}~uzvz{ytwtz}~y}xz|~y~}|}~}|t}}~{x||{|z||v}{{~}{~~{~}}{~}{}||{|~|}||~~}y~|~~~~z{y~}{{}|x|}}|y}}zv~w||||~zx{yz}}~~wz{}|~}}}}{}x|z}}|y~|{z|{zwz{z~~z{v~|}}}v{~{||~v{z~}yu{|vzyxxt~|y}~{{z|~}{|~zv|}z~~{}y}}}~z~~wv{z~~l|ymq}wp~z}{~yzz}{z}}z~{~}|~z|}}}}~y{r|}~z}~}}x}~t}{~|x||ywz~}{yyt|x}~~x|~z~}|~y|w~yzw{~|w~||~~w|t|yz{zyz~~|~}}|}z~|v~~{}}z|yvy}|z|}|}uwwz}~}|v~~}}|{}y|}|~{}~|~~{}z{y~~}~~z||y|{|||}{{|}|~z{~}{~~{{~z}z}}{}}}}}~}~~z}~~x||y{~z}}~{}~z~zz}}z|x||~{~w|}{}~}y~{~||yz|{{|~}}{~~}~~z}}~}||zv|~~}z{}|~}||yyu~|}}}{}~}{~z~~|~}|ww{x}||w|z~{}}}yz~{w}w|}{x}{|}{{{{vxw~|yy|zz~z|~~}~}zv~qv}}x}q|}yzyw{~wz}z{n{yyy~x}xtw{t}~zu~z|x||z~~}zy{|{{z}~~z~x|~~~{|~}z}~{xzu{~{{w~}}~~x{}}~}xzz{y~{}~x~z}}||~{~~~~{|y~x}|x~{~}}y{~}{}|z||}}vy|x|}z}{|}{~|~z}}{|{}yz}{}{{|~~~~~}{~ywy}z~x~|y}}|{~w~~|y~w~~~|x|w~{}z|~~yq}|yu}{}~~}{{}x|w~~|zw{~x{~{wx~|~~~~}||}|z}~~wyu{t|w~~|{~}|z|ty~~~z~{~{|~zu{~}{|w~{{y}~w~w}~}y~tzy|~~vz~}u}~~|}yyz|||}~}~}w}~~u~}zx}~w~}y~v{~~|}x~}|}~}~}~{yu|xv}yx}}~~{}~z~~||{}|{}|s}~{}|}tvu}{|y}z~u~|x|vy~w~|t}}{x|r|z{}~z}~}~}|{uy}z~}qz}~~|~~x~{|{}}{w}|}y|~}z~|yz|}z}x}y~w}{|}|}|y{~~~~~|{w{~}}{~|y}ww|{ys|z~}zxy~{t~yz~qz}~|{~v}~{z||}|~}~}z{~|z{{z|x~x{zz~wwz~}~~~}uz~}~}~}u~~{|~~}~|~}v~~}}|}|~|z~~}~~xxy~~x~~~|z~zx|{}}yx||~~~{zy~{~z|zyy~x|{~{x|s~|}~txz~sq|||z||t||yv}x}|yy|{~|}yx}xzv|z}~|~t~{~{~|y}~~{yu{w||~~}ysx}z|}|~|{~z{yz|zz}|}~}}y|y}{z}wyyvxw~x~~~{{~{z}|~}|y|z}wy}{}{}{z|~{~}yy||dyqz~z{z~|z{|l}~z~{|yu~{||~|zw}u{y}tz|py}}}~|xx{|qu}|~~~tz|~zF|~|zvv}n~{yx|{|}y|}o|~y{{~}t{~}}y}z~z~~~zx{}z~~}J{}x}|}}zv}g~sz~}~~||u}y{yq}~}u~||||}}v}zzwy}~|~x}~|xz}z}~v}q|}{}}}~|z{z{{y|{z}z}}|~{{}|xx||z}~v~{}w~}|}xy~}~}{{}{~y|s|}{~~z{y~~~~}}|w{~yyyyz~}v}~z|||}z~z}u|~~{}~}~z|}~||~}~{~{z}~||~z{}}yx~y}z{~|}}{~}~~x~yz|x}y|~|x{{x|~|{z~~||}{zx~{}xz{z{}~}{}~||{~{~|}{~||v{|{{z|}y{~}~x}}y~yxy~~~{z}~w|xwz}|}z}wz|}zz}|~x||~z~}~{xxr~}~y~~{|x{wv~wzz{y~}|z||y~}~x}~~~wz{z|}u}|}~~~}{|~|{~z{x}z}}w|u}~xz}t~}wy}{x~y{y|x{}xz|{z~~}}~u{}}zu||zzuv~{}|~u|z}zxzx|}zy|}~|{yz}}x~}|}vvwy~{}yty~{{{z|yz~~v~zz{~~}~xu}~zy|x}}{~{~z~|}z{}z~|{zx|~x}~||~{}}~|s}~~~|~{}zy~|}x}xz}u|y~x|}x~}|}yz}}~~}}~~{z|{~y~~z{{|y~}vz{}~}}yy~|}|z{~}}vvy}{~zy|y|{z}~{w|z}||}zy{~yvy~zs}|y}|{z|~~~w~w|{}xz{w|}}z|}{~y|~}z~}~~{z||~~vuz{|}z|{{~x|~{z~|}}~wv{||xz|z|{|y~~wwy~|~}~}~~~~~}~z}{|~}z}u|~~|y|~|~}vy{}}yz}|{}~{y}}y~{~~{|~~|~zz~~~|y{{z~}~|||~yww|}~|z~}z{y}}{}}t|}}{~}}~{}{~xyv}zy{z|~s}~yy~|||t}}z||{~|}}|~}z{|y}|}|~ut}y}||{z}v{|~}|{}~~{v}~{y}{{}}{~}~}y}~~z~|}|{~yz|~~~}~}~|xtzv}{~{|}{{~}||{~|~{y~{y{y}{}z{|y{z}}~{}|{u}{~}~}|~{|~|x~{v|z}~|~xy|{}|~}s{~|~~}|~}x~vw|~~}}~vy~}{~|w|x|z}}|uwtz~xz}~}z}~t{}w}}|~y~||}w}|{ztv~|}}x{}z}tw|y|~{~}yy~||w{~|~}y}}y~y~~{xxzw}|zy|ztzvx~}t|~y{{z}x{|vt{}y{}q}|x~}}~~{wx}~zty|{y~~yv~{~y~|z|~yys}}uv~x}{|{z}}{~w|~z|}|{|x}|y|{{y}yw|x||{w}}zu}z|~|~|}{x~~}}x||{z{~z~t{z~wvz|y|xzy}y~{y|{~|{v}||xwzx}u||}{~|y}|zx{x}tw~}s~{~z|~wy||v}u}z|}}|z}zw|w{y~~}}wzy}|z|~|x}~~v|w~y}}}z|}z}~}}y}}{x}x|~~{~~|}~~~z{{~}||x~|~{w~zx~zyx|~}}{~zvyz|w|{y{{yy|{{}{~zy{z~}~}{||}{{|}w}y}~z}xx}|vx|}}|~y}x}z{x{v||~x|yv}{~z{|zy{}|{}~}|u~}|}}~vw|}}~{~y|}~{}z}~{{~|yz}y~}y}{}~x~u~~|}}x{}~w||{{}{{z~z~|u{x|~w{z}~{y|ww~~xzv~}}~~}}|~~~|~~}ˏuԊ~}x~yx}~t|y{|xz~w|{wyvy~y~~}|~~}||yy~t~||}~{{y{|}{y~|}}{|y~z~{t~wxzvy|{|}|{}{}zw}~{s|~|~}|zuy{{w|z{~{z}|}~y~}wzyz{z}y|~~zyz}y|ty}{~{x{|sxy}{w}}z|u~yz}|~~~~z}~~z}{}~{|}{{|~{y{z~~y|x{|~|~||~z}~}}}z}|}yz}~}{z}zx}}~~|~y}x}~{}}~~x|~~}}~|z}{|}}~{z|y~{}~t|{|}zz~z}}}~{z}~~|~~|x~|~wr}~}~yx~|z}z{|~~u|z~~~z{}~{|{~~}|{}}{|v|~}|~|}}~}||z}y|~~}|}|{y|~~~~~~||}ux~{||~~~z~y{{{z{~{~|||~{}z}~z|{|~}{w~|vv~~|~x||x}~{yvx{w|w||~}v|}|~tz|~~y~x}{}{}~tz~~xz}}{}z~|~|~|{~y}z~y}~z}v|{v|}}ux}zv~}~|~~}}~x|}}u|~z{{z~}{xzy{zzx{z{z~}}zz{z|~~|{{{}{~~z|~{w{~}x|||||~|{||w~}{{{{~||}y{{{vx|}{}||}|}}~y}|}~}~~}y|{}}{z~z~w~{x}{z|}zy{z{~||{~}{qx}w{~||yx|~z~x~z{||}z||~}}~|~}~~}~|xy~|{|~{~y}u{}zyy}}~z{w}z~vx{|~}~~{yz~y{~}ymv~}z|{|{{|z}y}~r}w}}x|v~}{~~|~z~|uy|y~{~{yu{~}x~~~~|zt|z}{xz~}||z{~~~|w{|}~|{{}|{y{|{{y|}|~}|~~~{x|}{|}{y{z}}~~}||}}|{~{w{zwxzz}z{y~~}y}|~x}xw~}~z|{}z{zz~}y|v~}~xz}~~}}wz{~|}|vzzw~|{|xyz{uzz~|z~w{}~|||{{~~~|~~zz{{yy}z}~}}v}~y~~{~}~|~v~|y{~z{zxw~}~z|~~}}|x}y|~}}~|}}z|~y~~{y{}~}{z~v~}}z{}wz}~||}~}|~w}{z~|zz~}|w~|~t}{z~x~~{zz~||~|{{}|~{~}|{~t~~sy}y~z|}~~~}~z~y~}}z}yzz{{}~~~~~}{~~{z~}~|z~z|}~w{v}~}}}~~}{|||~u~}~{z~y{|||~{|}x}}{~~}z~}y{~~}~x~{|}}|~~z}w}}~x{}v~|{|{}|~|~}}|}z{x}~~zy}y}yz|}z{}}{{|}~}{~z|{w~|~yz~~~{}}}{}~}z{{|y}|{~~y}}}~||~{{~~{}}}{y~x~|{~}{z}{z~y|v{{}y}}|}}|}}~~x}~~~zx{~q}~z~wy}w~{{|y|}{}|z{~}}{}|u||{~~zwy|~}}z||{w~y{|}zyx~{|u}|~xx{z~~zz}y~y~z{{{~~~|~zz|z|}{~z}~||}}~w~{|~z{z~{}~{}||~{~~}}~x~|~}}{}x|w|~~zyw~~xy~{}}{{y{~|{{}w}~tsuyv}}zzz}{y}xz~}z~y|w}v~z{{~~{|x}}{z{|}z~~||{z||}|y~~~yv{~}{~~y~u{uy|}yz{||xz}}||z~}}{~}}v~w~zn|~w~~}{|}|y~~zxzw}}{|{~~}~~~}}z}}{||~|zy{|{u}~z{}~y|||xz}|x~|y|z}~{~~||{}~|{z||~~zy|}|~}~~}}~}x|{|~{}{~{~x~{|}y}zy~{|zzw}}|||{}}|}~~x}zyy~~|~yyz~x}{}y|~x~}yzy||z{|~}|y~v}{{~|z|}}~{z|w{z|zy}~u}y|y|zx||zy}|z||x~~~~y{{~{~|uw|}vyx~||}~}{z~|}z~~~z}}|}xyyz~}|~w|z{~~~p{}{zxz~}v~zu~z}yyx~}}|~{}tz~}}x}}{{v}{{y|zy|~z|{~|x~~~}}wz{{{ry|w~z{~~w~}~}{|~}|zwuz~u}z}y}}|}~x|~~~{{}}~{|}}{x}v}z{}{~}z}z{y|x}zzztw~|~ux~w}}|{|tx|q|{}u{||{}}}z|~yz||nz~y~}|sq}z~}y~{~z|z|rxxksw}~~{}y~}}uw|~~|zyw{Vw}x}|{zzq}|z|w~yyz}v}~zszzz~v{uz}|vq{}}}w{w{}{t|{az{vzy{ut{|~|wrz}x}||zy|qz~y|xxy~w~tz~z}y|y{w{}|~}}}xy~z~}s{~}|y}|zxw~x}{tuuz}{~~{{wy~~{y|yw~{~}~w~|}y{z{}|}y}}~~~}{~v}|{~z}|~xyy}z~}~~}{~~z}}x~~{z|{xuw{v|{|y}~w{{~yyz~|{}~}}v{zw~z}}|{u|~w~{}{~~}{zz~}{}{|yy{~||}~}}u|}~z{v}v}yz{|}}z|{yz{}~z}|~|~}|wp|}{z|z}{|sxzyz|~z~~zyu{|{zy~|y|}z}z}}xz{s}{{{|~|~v||vzzz~~}{zz}|}w~|}z}~}}zx~u~~~}~{~x{}{~|}~zv~z~||t{y}~~y}|~|z~{|w|~|~|xqy~}|}~~w{y|~z~r||z}}~w{z|}{}r~}}}v|z}{}{w|x|~v|zy{yt~|x{||~|v|}v}{|{|y~}~z||y}~w~|}}|yz~}}|||{}|~xu{~z}{z~~|{~~|{}|{{z|p~u|y~zy||}{}~xt|}~zyu{x}{yy~xz{~|u~~|w}zw}|}|w}{y{{zw}|v{||~~{}}~{|yy}y~z|wz|v~}}}zx|}w|~|y~vyxy|{wv~x}~x{z}{xw~||u}x|u{wz|}}v~{z{||{~sz~}z||{uy~~~~}|{y~y|~{{y}}x}}z~~zwz|~z{y}x}~~}y~~yx~~{x|~}y{{yz|}|zw{{u||}||||xxz~yv{|{x}{||{z}|y~}|yw}x~|{}wz}t{x{x|{}{}}~~||~z~{z~}wy~{~v||||x{{zy~~u~|}~~~{z|}~}~~~}~||{|}wz|~}z}|yy~|w{{|~{~y}wz}{~~}{~v{|~t}}z~z}z}}z}pw~yz}{}~vzt}|xw{z|||w}|z}{{y}y{~y{}v~|~~}}{y|{z~|{q{}vv~wu~pnx{}uxxxuxv}z}|{~{y}y}t|vz}~{~~{~{~||~||{~zy|~y~|{y}~}zy}}}}}}|v|u{~z|{|~|{w|zu}zz~~{{}~}{}}}{|}v|~~|~~||||~}w~|~~xy~|{y}{{~}w~zv{}{|wy}y~}}|}~|{{~|}y~|~~zy{~~z{x~o~}z~}|x}~}|}{{}|}|{|y}|z||x{v|~~{z~v{|~|}|}~z|}}{wyzz|~vx{|}{}zz~x}}v}~~|~z}v~|wzx}{y|~{zx}}|}~~~|~~v|{~}~|{~|||z{{}||~{}~~~|{u}|y~v}~~~~~~}~}~|y{{{~~z~}|}|zz{{}}~|~x{|yv}}x{{}zz~{~~{{~}{}|~~}|{~~z|x~w}{~~~|y~w~}{sx}~u{{z}{}y}|~{~~|~~xy{|{z~~{}x{|}~|{y|}||~}}~|z|z|{}{~}~z~}w{x{~yv|}x~~{~yy}}}yytyzx{y|z}}~~}w|}|x|~{~~}~}y~y~zw{y~zz~|}}x{}|x~{|~~{{y{{{~~}}~{}}wz}{~~|{w|}}|{zv~|z}|~|y}|~|z~|z{}{sv}}||}z{v~{y|v~y|~}~~{}}z{}x}{zy{~w}~{}{{~~}y{{}||~vx|~y{zy|~z|zv|~|~xw~}||~}x|~{vyt|xx||}|}|{|||x~u}|z{~|}~|v}{|z{~wzu~wzzz}|}||yyyu||~vz~z}z~||}|~zy}~~x{{}w}y~}~z|{{{|zwyw|zyzuy}{{}{{|y{|~x}}|y}}|u~{y{wyx~}~~{z|}||{{~~~v}zn~{vx~zyw|}}w{y|{u}x|~|u}~z}~~~xyxy~v|}}x{~}{~~}}|w|}qzz}{|zu{t|r|}xzyx{|zw~y}}~}{xwy{{|}{}}|w||z{{|n}|{{}zu~qz~|m{}wy}}}|{}}{{~|y}y}~w{z}{~{{}~zy~}|~|~}{~}~~{|xxzx|}~uyw|px{vt~}{z~}w{~z{|z|v}~~~zy~|w~|{{|~}~z|~z}{{~y|{}~}}|}~|y|zzx||t|zy}vt|}|y|uzzyz~{|tx~w~z}v}}v|}z{|}~w}}wyu{}uy~z{w}}wx{|{~~x}w|w~{z{}y{}~|{y{}zyzz{~||~|{z{~tz~zv}|}v~}z~}{}~wy~~|{~w}|||~}~|w~|zyy|z|}|}z~{|{y~~{{~}{}|}z|~~{}{}z~yy~|}|z~|z~|{}z|~}w}z~~~{}|zy|y{}~{~}{zz}}zy~|}|}~x|{||}{~~|wws}~{{~y}~~sy{v}|u~~}|{|}x||{|{}|}~~}{~w|z}{|}x~}xtwx~zy}}||}}}|yx}~~{z~}~yzxzszz}|}zxy~||z}{|~||y}y{|tv|{~s|w~~}z|qsvxz~{xw{|ws|{~~|y~|}}wvy|~vyz~~~y~}}~~}{~zt|y~~t}}~~|z~}zz|}{}~z~|~~}{xy~~t}}uzzu{|x}}x{}|{~|}}{~w~zy~{z}{z}}tuyyxxx~}{z}|~{zy}}~}~{~{|{~zz}}{{}}~x}~||{|}}}}}}{y~}}|}z~|}z}}y||}z~z}{|~~~{|{~w~yz||y}}z~~{||~||}||}}|~~z|~v|~|~vz}u~yz}~~~|}}}}|z}~~}zzwv~~~{~y~}zz}|z}{~~|yu~~{}~zz|~}}wt|u~||}u~|~r~{~zy}}~{~ty||{z{~}{z{|||~|}|}|{{y{x{}{}{v}}}~|y~}|}yzs~|z~}}}zuz}|{z}~~}y|wwwzyy{}}x~}z|zx~~xy~~{w{~z|~wz||y~s}~|z|y|}|}~y~z}vx|~z{{~~y~|z{{}}w~}w|z~x|t{}~vz|zy|}{|}y{xy|{}~}y{||{{{{w|}~}}|xy|}|~}~z}y{~{}~}~x{}}{||z|||w}x{{~|~~yw{|qx|y}{~{|z{|yyxy}{z}~|~{~w{~{~~|x|~{~}|}v}|w}~yyzz{}{{{{zwx}~zxww~~u~{~yzty~|z|w~{z}xzwy{|zy|}{xsvy~~|z~|zz{~{}u}~z}}{~}zy~|~~zy}|{z~|z{|~{~xz|x{yz~}~|~|v|~v{~~}~||~|{}~|}}||}x~~}~v||}zy~~}}~}y||yxx~{~}}}{}{||}|~~x}}|{}}~{xwy~}|}~}z~}}z}z{}||y}|}~{|}{~|~vw{{w}~zz{~~}u{~{x{{|}z{}{|~z{|}}x{x~}}{}~z|}~|}x}|}~{{{{w}~~}{{{}z~~}x|~w{}z{zry}~w}}uz{z~|{y|}}w|x{{|~|{~{z~{}~}{}yy}{yz|}~w~z||~|~qy~orz}~y}{}wnvy}}z~~}}xxz}s|y~~~~w}x~~}||}~{zx~v~x~x||w{v|~~x}~~{z~kwzx~~~~y}}~zz}wz~yy~{|{ys}~yzy||u{|{x~~{{x|}{}r~rz}zz}z{~z}||w}z}{{v{}{|w|{v~{|~|x}}~~ywv|rx}}~y~x{~|~vy~||}~v||}xwxzx|{ywt}{y{}{}{|~xvz|y}}|{|}}y|y~x~|~wws~{~|~y}|}|{xy||~{}w{~|xts~zx~|~~w~}z~}~z|}{tzx~yz{}|yvy}{{}y~|~}zw{}}~~{}}{t{~~|{z|z|y|}xy|{{}w}x~}~}|xyx|}zy}w}|}{~~}~~~|}}|z}z|z{}~}~||{|z{}|~x~{}|||z~|{z}vv~z~v|xu{z|~{x}~{{}~zzz}yzz{||x~||~|||~{~{w}zy|~|}~}|}||x~x|y{{}|w{|z~{zy{~{z~|~y}||yy|}yxxz{}{}|z}{~|z}~y}{{~|~x}{y|~y|wy~}|wz}~w||{|~|~|uv~zx|{zyzxx~~}{|}}}|zy~}~z~||}zy~{}|~{w}}y|x}v~z}}|y}y|}~}~}z~}||~~|~~y~|}}}}{~}{}~~|~}|{zzy}}~{~}}{{z}yx|w}x}{||~}u~}}{yx~|x~y||}}zy~}}{{xzxu}zzuzy}}|y~y~~|}yz}|zyzv|}{}|~~{|{{z~y}~y~}zsy~|}y}}|x{|{}~{}|zxy{~|uz}wy~x}y{~}|{w|}|~{z~}zt}z}{w}z~x|~y~}}|z~{|{}y}|~{w}{|~~}}vy~}w}{}{{~}z|uw~z}}~|}{{}|{}r}~{}|xx~~zy}yz|}{ys~}vy||{}|yw|~|}}wx{w}sw|~x|y}|~{|}~z}z}|wxx}~~}~~~vz|y||xz|y~{|~}}|w|}}w}~|{|}w|}~|y`z~{|z|z}{}}zx|}g}~}|r~~~~y|wz|~oe|}}~~y|}~~po{}~~yu{}z~hyyy{y~l{{xv~}v}|~}|}|~zw}y{~t{|zy||~{z~|z|{|~{~~}z|{|zy~fuw~{|~w||{w}~ww{v|~~{ryx{~{~}~z|~~|}~{||{x~z{~|z|v{}ww{y}{}|}{yy~{{y{||{}}{|z~|~w~|~}wzy~zx}|{}y}zz{{|w~{z~|y|}uyw}{}~~|w~z~y}y|}}{x{zzxv}~~x}|~|wwzz}x{{{||}|x~{~{~y~~}}|w}}u}}~{|z~{{x|~z}u||~}z|{yz~{|x||}}~}x~}|~}y~~~|~}|{~{y||}}{~}}~}~|~|x}~}{}~w{}{{}}z}{~z~~~}{|{~}~~x~z~}y{~~y~{~}y}||}z}|x{{~~~{|~y{{y|{||z|~~z{~||{~}||~}w}~yx~}}|{}|{}{yz{~z~~{y~y~~x~}y|~{{}}|}{wt}~xy}~~|~~}y}~z}~|z{{{}x~}z|ux~~z}x}|}y|~y}}~x}zu{~|t|~v|~y~|}{}y~}yz~zz|}||~}~{}~~{}z}{}{||||ww{~~{yyz}~z{}z~v{~{}}}}{}z}x~~{yz{{~}~~||}}y|~{|~z~r~|{y{{~~{{~}zww}~~||z~z||xzy|{zyywy{}|xy~|{|{}~|{w||}|x{||{}|{zx}x}~~y{{r~vy{|x|xv~x~~}}z}{x~~}|~{z|||{zxy~x~w}}{~|~|{{~~y~y}{zz{yyv}}~{{|z~y|~x||w|}|{{~|~}}~|~{z{|{}t~y~~~z~~}z~~yx~~}||z}z~||||z{}z|{y}~}z~~{x{}~|{||~{}}}}}zzz}|y}v}w}y|yy|||~z}}y{v~~{{yxxxyy~~{}~}w|~||y|~{}~zyw{|}{zz~~~}x|}{|~}~{}m~~|x}~{y||zw~y{~~|wx}y~~|z{yvw{y||y~}}|}}}~{z|}}~xvxz}yy}ztyxs}w}yu}}|~zu{|x{zz|}~~z|xy}~{{x|y{}z|wt|z{y{~~{v~|~x}v}y~z|z~}~}|}yx|}}z}{}zx~y{xyx}tw}}}|z}yx}||t~y}}~z}}}{}~|yy|~|u}{~~|zx{zxz~~}}{~~z{~|t~y}~~}|}||x{|}z{}|t|w{}y{}}|}~}z}y}{|z|x{}|x~vt}|{~}}~~~x~~}||~~y~|{~{|yz~|}w{~{~|v{~zz{z}{x}ywzvz~}x~|y{yxx{y}z~|x~~||~|zu~zzvz}|}u~w~~|}}z||}~{~}}v}|tzyr|y}~}}}}}x|}{wwz~|{|~}|z}v|y}{}}~{|}y|xx~qzv|~{}x|{tz~y~z~|s}y{}~~{|}~{wx}vyx|{x{~~~}ywzz}~|||{}||{y{z|||}|{}{~{||~}u{v}~~{x|~{~~|~x|z|~wt|~p}}||}~~z}wu}|}{~{{}~~|}w~{|v{z{|z{~xy}y}}xzz{~v}y}{||~{~|~~|~w{{~zy|}x|}|||{|yzyx~z{}z}y{y~s}}~~yy|~}|t~~~~x~y{~|xz~|z}z||z{~|{}}{z}~}zv}|x|~~}{z{}||}{|~}y|}}{}~|~||{z}{~~~~|{~}z}~us||~y~zzyy~z~x~~~u{w}|}~|}~|~x|}|}}}~{z|{~zy|~tz|}~z}}{~w|~|~v|}}zz{|~}y~~|zx~~|{x|~}u}}~s~{||}y{xx|zz}}}y}}v~x{{{~{}~~y~r|yzw|z|~|y|{|~x}~{||zy}~}~{z~yw}|||}~~|}|~~|~{}}~|u}|~|y}vv~}}w~z~z||{zwx~}x}z{{~||~z~}{{~y~~{z~{y{zy|~{|ty|z~zy|u{|}|~{|y}}{~y}|~{{}z~~}|y~}}y}}}}w|~}|r~~}~{}z}y~|z{|x~{||y}z|{{{|xy||{~}{z~{~x~~}}}}|wy}z}{{{zu~y|}~}|~x~y|~v~w{~|}rxy~~}w{~||~{x|}||{}y|~|}{|~~~|~vz~~||y{~~}|}}}~tr~}}xy}{~|zy~|z~v||{~~}}||{}w|v|zz}}z|}~xz|zp|z{|~zz}|{y}y|zx}~u}v~{yw|zu~ww~}z}|zyv|~~{|r{}}yyz}~}|{wz}xyz~}|y~z}|~z}}q~v|~zy~v{}}xt~xzz~}~~~||zx}~y}{~wr|{}~}|~~v||}x~w|~}|}|}vyx|~xz}v}~{~{~~~z~}{~xt~zw~}{~|z}~~}zr|}{{~~~y}{z}y||~~z~~x~~y{|~{{y|||{{|~|~vz}w}~y|~|z{~wy{z|~|w}s{wu~x}{x|~x~}v~|vx~y~~|}}~}zy|wz|{s{||~|z~z{{zz|{}z{y||}{~w~~z}vy||xts{}|}~{}}}t}||~v|z|yy}~{|y}wu|x{wzzyyvy~x{zux{||~||{~|~y}y~xwy}{}||||~z}{{tzy~~~w|y}|x|{|{w}zzs}wr~y~y}~x{~{~~~|}|s||~}{}~zv{~yw|~zwz}w~~u~{y{~~{~}}|{z~~{~~{~{~y|~}zx}{}}v{~~{~}xw~}x|}~x~}}{}x|~}{w~|z{z{zzx|~}|zyz{}}~}~ywz{zzy{|}~x}|~~y|~x~{y|{~~~~~~~}~}~x}~}{v~~{z{x{~~|{~|~vx{~zyy|}~~~wu}{wz~y|zzz|v}wvzr}}|y|}}y}y||w~yvp|~y|uzz~}{|yzs|}}zzx|}zyx|~zx~~}~~y{}}~zt}x}{~|~{x}}w}y}|~}|zzyx|}xzzy}z~{|x}w|z{|~}~~|~{{~xy|x}{}}}}|~vztq|||yr{~}}x}}}vu~{{~~~xt}||y~~}}u}}{|w~{~tt~wv~|~v|~~{~z||y~}sz~}~}~z}z|~|~||}}xxz{}~w}}~|{}~ys|~~yxy{z{zzyw}y}~}~tzy{|w~|zz~{z|~x{~|x~z|}}u{{|{y|zy}|yz}{x{|}z||}}}wzz|~~{|{z|{xyx}{||}{ywy~~}}~~~uy{~z}z~v~|}w~x~~vz~~{x~}}~~{}{~}{~x~}{{~{{vw{}}zw~}|}v~||{~|v}zz}}~|}zv{|}|~~|v}~}~y}w{~~~{~}{||~}}x~~|w|}}|{|z~}~||~x|{}}x}z}}|x|~x~vx|{xt|{v~|y{x~x}v~~z}~t}{~~y|}tx~|~~}ww}|}|~}}{|~}x~|~|x~||}x}{{}~|~{w|}|~}}zzy}}|v|~~w}}u}xy}|z{y}|x}~wxz|}{~~w{y}}~{~z||~|u~|z~v~{~~{~~~~|vz{}}~{~~}||~{~}x~~}|{~~y}}v|v~{~}~|{~}yzx}{|w}}z}w}zzz}||}~}|~|z~~|xxy|zt}{vv~~}|y{y~y|~~{~y||~}}}|{}wy{|~~~y~|zx~{}}vw}}z|{{}}yw|{y~zyo}|~{}{||x{~}}v}{yuz}s}}~{|||{z~~u~{|~z{|x}|z~|{{}xx~yt|z{}x}{{{z~~|~}xo{~|~~}}}v~{|y{}~}~}{}~|}|~~~z~x|z|}xz{|}{z|~y|x{}}~|~{y}z~~v}z}x~{|x{~{{{w{y~~}y|}{~y~{~}|}~~{~zx{~y}{|}||~}x|{~z|~}~{zz{~zy{z}}}~z}|~v~zz{{z||||u}{}{|~}}|wzy}{u~u{|{x{z~|zvyrv}}|zxsx}}{{|}|y}|}s~~~|}}{~{{{||sw}{w|||~{xu~~{|}~yz|t|zzt}}~|x~xz~~{}~yzz{{p||~~z}vz~z{|{z|{y{w|}|sxyv|y}{z{}}x|z|~x~yz}uw|}}z{u{|y}t{x{~y|z~}}{|zsz~{v||~|~{||}z}y{z}{~}}~}~}}w~{{|}~{}~}y}~tzw{|~|~~~~x~|z|~yuxy~zz{|}~{{~|}z{}z~~yxz|}vz~|x{u}|y}z{w|y}}v~|}~y||}~~{{}~}z{{|u{uy|}}|z|rz}}{xtyz~}~y}}|~|wwtyz}~z~|}z|y{~~{|~}y~{y|~~~{}}~{}}~}}||~~zwzz~{{~|z~~}|~}zx~}x~|~}~||{{~}~{}}}z{}~}}x{u~}w~|}{yx}~zv|x{x|x|{{~~{}{}}}}y~|zx|zs{|zy~y}}|~{{y{t~z|z{}yq~y~|}~~|||w}~|{z{~y{z~}x{{}~}~|}z~u}}y~~~~{}}|~{y|vz}~~xz}~w~x~|~}~yz~x|uxr~|{y{z|w~}{}{}~~}~yz}|{x~~}|}~s|}}{~{|~|v{z~}y~~|z}{}z{wz}||{|z{x|y{}|}{~z}vz~|{{|{~~|}~{~y|}~z{{zu|~{|}~~{{~yvyyy{w~y}|t}{z}z}~yz{|~zx{~y~|}|zz|}~}{~~|~|y|x{z{||z|z|x{}z}xx}y~zx|}{y}y|z{~~y{zw{|~{|{w~{{}}}{|yzwy|}{}{y~}|}{}{||||~zy~styz~{v}{z}~{|}}}z|}xw~|~~{z|}|zxyyw{}y~|~~~}{zvq|~}|}|~x{}|y{xy}z~x}~uxz}|{x~|~~t~tz{t~}{{w}}w~}u}{{~yx|{{x~|z|}{}x~zt~~zxxx}|~~uy~||z}~|}x~}|}|}ww{~zz{}z{}w{uz~ywzy}t~}{{|vy~}{n~~y}|}}~yz}}|}z||}|~~~y{u}}|y~~v}y}||{{{}|}v~{y|}~w~{~|wvyt|~{v~o~~wx{}w}}zzx}w~|}~{}|}{y{x||}}{~~{z}{}{{~z|~z{~z|zz~{~y|z}}{{~}}}}}~{~~|{}|}~~|~}~y{{z}z~{}~~x{}}}}}|{y|~||y~}|}y~|w{~~~}}{z}~x~}{|~~{}zyw~}|~zs|~|{wwx~}{|}|uy~|vwyw}}~~v{}y}}}~z{}z{|~|}}||{z||{|{~wu|}}|x|~|x}}{}}t|~{{{~|v||{||~}u}zz}~~}{xy~~}|w||zz}zywzx}|{}~{}{~}~}{|ww~y||~v~|{v}~y||{~{z~}~~|z{{{}}z|zy}yzy}~~~}}w{{|~}x}{|{~}~}wy|zz~|{{|}w|||zz|z}z|{}|{~}x}~|~~~x|}|}}z|}{~~{}~y~y}zz}}{~z|}w~~x{yz}}y}w{}}}}|{|}}|y|xwx{wz}|{uz~~}z|w|}|{|{y{~}xz~z|~~y|{zy{xy|{~||yz|{~}}z~y|{}~|x}y~~xyzx||x~yy~}x|z|}z~zu}~uw{z}|}yzz|~~~}x{z}}z}{y}|}~|v~}y|}~}{x~}~}}~~s|t}{~|}z~~{~zu{~~~u|x}}q{{}~~}|~|{|z~}w~}~}~x||{{vswz~w}|yv|~~~y}~|}|~y||}z}}|zx|xy~}~zuz~tx|z}{}yvw|yy|||t{}{|y|~z~|}xu}yu}v}|z|{z{z{y~tyx|}|}{}{~w}~y{{v{}}y{y~y}|vy|zz||{}z|{w~zzu~|y{{{}{||~~~zy|}|~{{}|w{y~|w|~~~z{z{ww||}w|v{~{zyy}{|}}|}v{}}|}{zxx}}yy}y~~~}~q~}}w}~~|x|{v}~{x}~wx~y}|x|}uyy|}}~y}~~xyy}z}}}|~|z{||w|y}y~y|{z{}~{|}~~}~~~{{~~uxy~~~~~x~{xx{|y{}z|w~{{|~}z{~{r|||z|w{}~}x~}}}w|}~|~}}|x{z~}{~zzw~{u{~z}}{y}r}~{}zy{{y|~z~x~x{x}z~}}~v|z}w~}y{}~zz}x{y}~~}{~|}zw}|u}~|{zuz{yw~}z|~{~}}~~{~~}|~~}|zvx~y{x|~~~}}~{{~||~w~|y{||t{~u{}{y}z~|wzw|u{{{{~}}{y{zv}x~}|{}z{~{y{}u{z~v~{~}~z{v|z|{|}t{{|xuv{{{~{y~}zxzu}~{z}}|z~}z~v}}~|~|s~}}~y~zz|{y|x|z}z||sz~x~u|{~~{~~z{x}}|y}{szzzy{{zy~}x}|}wu{w{||~{|~y~|{}z}|{w}~vzz}}z~v{~w}yy|~{|||zvw|||z}z}}~xy}y~{y}vyz{~|~w{~zz{|||x~}{}}u{{||zw}x||~}}w|yy|y|zz{~{x{y|}}~{~|yw{|zz||{{~xxw}|y}y|}}|~~~|{{}~{{}~||}~x}r|{z||z{|}~{~}~}v|{y~zy~|x~yyyx}}y}y|}~{xzx{{}}z}~}{}~{}}}z~|~{|}~|}}~x}{~{}|z}y|yw~zxz|}|~~z}|~|~~y|~|}|~~~{~|{||zy~}~y}~~}~|x}~~{}~y|{z}z}}{{}||~~}~||||~{~~|}||{y~|z|v~z}}|y||~|~{{{}~~zz~s~x}u}}x~{vy}}~}}|{}{~z~vwst|x||zw{||~}~ww{{~~u|rz{}{vxzx{|~|x{x}~~|r~{~t|~tw}{y}zyz{}~y{rx~zz~|~v~}}}vr}~z~}{}|}vyzyu~}}}x{y|~}{y|}}}ywx~|x}yy{{v{|yy~|~~{}|~{{}zx{|{~}y~}}}yz|{{}z{yzz|~{|~}v}}}{zu~~y|xv|}x}{{{}}w}{}~}z{~~~~{}{}{xzz}~}~||y}|{y~~}}z|}|w~|{|}|}uyyu~y~z|}{wx}yzy{}}~}~}{x{~~y}}xy}}}yzxy}|{{~{{~|}~}yu~y}yz{y~~}{|}~~~z|}~~}~}}~~|}|{xx|~{|}~~{}~{}y~|~w{~|u~{|u|}}w~~{|~{|{}u~~x}z|{yw{z~}}~}||||~z{{~~{}}{~|~yz}zx}}~~~}}{}~xu||{~~~|wz{~}~|z|{|z}}}~~~z~w||}{~{{|}zx{~{{~z{}~xz{y}yw~|~rz~}{}}zx~}~z|}xy}{|~x}z~{{uy}||}~~zy{y|}zv~}|}x|{}yz~||{}z{{|{~w~~|}~|u||~z||~{~}{~{{x~~{|{|z|{}|u~z||y~y~z|~{xyw~}yz~~x~}|||z}{~z|}yz}~||k|z|}}xxz||z}}~|~~{x{|{r~tx~~}~~y|{|}}z|~{|}~v|{v|{z}{}}q}y|yz}ty}z~~|{}y}x}{{uzwz{~y{v{{~zw}z}}}w~|z~v~qxyyy~||~}~xuyy~z~|y{}y}|~|z}yw}{~~s~~|~y{~~z}}ty|z}~~y|~{~|y|}}|{zzz~wy}{z|}{y{|t{~|~}||{zxtz|}|~~xwyvx}}}}|xz~{y}yyy}}|yz{zywyzuz}x|}~{|xx~{x}z}{y}w~z}~{|z}}{z~vwz}x~{|x~zzzy~|~zz~~~}{~~~|r|~~~wz~xy~}yz{y{{}yy}{|xy{}{t|}}~}{}zv}}zz|~}s|x|~|uw}~~}xvxyt~}|t{~|tv|{xzy~{~}|zz}|{|{{~z}y|{~vt}y{{}z|}zz{{}~uz|u~~~~y~yzxxz}z~~zz~}}vw|{xy}~z|}|~|{|{~vu{y}yvw|~wztz{z{~{}|yz{xz~t}x|x}|~{}}||{{|{{x{}}|~|~{xz}}z|y~}{}}y{}~z|z{xyw~}}~{}~~}}vyx~|~xxs{}||}vw}}zzxz{|~{~{{~|||wz|yz|{zy{|}~}|}}{u{{z}y~xv}}}|}|z~u}{}{}vz~~}~~|~|w{|t{{zwx|~}xyxx}~z}y{{||xxy{|~y|v~yr}}~{z~w||zx~}{~~z|xz}}zx{~z||}z~z~{~z|||}zv|y}}{}}~{t}}{~y{w~x|~{||~}}|}~z~|{}xs}|}}~|y||w~z{zzx~{}}{{}z~zw~|{~}~vzyzxz{v}~{w|{{||||{y|z|~{~}z}wy|zzz{|z}~w{~}}{{||~|{~}|{{w~}y~||x}}~uy{|z|~x~y~y}z{~yz~~}~}x~y}w{{xzw|u}{{{{y|z~{}|y}xy}{}u{~u}}|w~|zxyw}vx}}}}w}}|~{}u{}~w{x~}{x~~|z|yz|v|}}||{{z~z}x}||||u}~{u|z|zz{{|}}}~z|z~zr~xw{z{zz}xuy~|s}}y||}~}|z|{{z~t~yt~y{~x{{}~{~~{x{{v}{~|~zy}vx~~~{}~{|}z~|}z~|}}||{~{~~~}z{}}}y}xyzz|wyx{}|wx~t{uq~{x~~{y~|}|zx||xzv~z}|{{zyy{|{z{~}~{yy}}}~v~y~z~x{}y~}~z}}{~{}}z}y{~xy}}~~||}~|{~|~}|~}x}~~|z~{~{}~}y|}~~}|~{}}x||~u|||~{}}{~y~{}|~z}~|}}}}~}}~~|x{~zyv{{zz}zxw||~y}u}}zx|uyvx~~{~z}zy~|v~rz||}}||}~yz{xzzw~{z~zy}{|||w}xy}~|~{}|v}|z{}{||~wx}}{~w|}|~zztx{zzs}{|z{x{y|~{zy|}~{~}z}}x|}~|~}~y||{yuy{~z~~y|}xw{w~~v{x}m{}~~|}|}y|~x{}r{~xz{|}||z}z~}|y}{~|~{{}|{{{}}{~x}~|{|~~wz||~{||{}x~~{z}~}~~{zzz{~{wx~tzzz~}~|z{{~|z{~|~|zw|zyx~}{~{}x~{|{~}}~u|z~z}|z}}z~u}{}~{|~~x}{u|}~w}~|~x{}z|~z~x~{~z}yx|{x~}z{~~|xy}||wz~{~~|}u~x~y{~{{|u}{~~}{|{}}}}~}t|||~~~|z}y~}y~}|~|}|{~}{~}{{||{}s|~z{z|u}}~~y}{~~yyyxy~p|{{|yx{|}|{}|}}zu|y{y~{w|y}}y{~||y~~{|}y|{~|w~v{}ryyvs{x|s|{x~}uw{yzzx~{{vz~xyyux|}{y}x}|}{~}w~z|x{x{w}}x~~}}{{{}|~zt}~|}~{{|}z~}|{y|{}x{{zu}zz{x~||w~zwyy}xx}{|~|zvu}zw}zz{~x|xx|yu{yz|}~}z}xyy|z}ywy~uv|z}~y~{~~z}w~{u~~{xt}}~zyt~~x{}{xzs}~z~{|}py||sx~{|x}|w{w~y{~|~z{}~}{x||xz{zy}|~y}~z}w~t~{~y}~zyyz{{~}~u{v}}}~|{}zyyy~x}~z|~z~yv|||zy}y~}~}{||y|xyzuy|~{~|}}x}|}}}~{~}}}~{~v~~}x}w{x{}}~}s{}x~~}{~{~||yt~}x}~|t~~~{||t|}~yw~~{}yx}|{v}|z}~v|zx|}|z|~||}|yz~~}}tz{~{z~z|w|||{y|y~{}}~}}z{px~}}}{}xy~y|}yy{~~~wt{}z{t}}v}~|{{v|~~|}{}w{yy}~z}}~zu}x|zzv|~|z}~vz||t~{zyy|z{}x|yzw}}}z||{}|}{|z|~|{}z|}|w{}~{z~}y~}{|~|~v{|{~}z~|xv|~~|u~}|{}{}~|}}}{~~|zu|{z{y~|}z|}~~}zv|~y{{||zx}|~|}~|{}zx}}z~y}~|w{~}~{w}~~|{u~~y{{|~w{y~}{w~~}|}zz~zz}zzx~x~~x{y|~y~{~|y{{}{|~||}}~x}z|x}~}}|y~|w{zz{}}|z}rzz~}~}|~}|yv|{}yy|~~~~z~s~}}z~}x}yx}y|~z~|}~}{|x~}{{z|}}~}{~z}wzz|||x~v{xx|xx{}}~{x{}|zzu|y}~x~z~~{}{~{~~z}|{|}w~~}}{{|w||~{}}{~u}z}|}}|{}y{~{|}z}~}{|{zy~}}~zx~zy}~u|~~{~~y||zyy{xzy~}zyz}~~x~~}~z}~}z|~}y~~}y~~}xz}}~}{yv{z~~|~|zzt|v~u{wwv|zz{}x{|v{y}y}~}}{tw|~}{{x|~}xz}|}}}~w{|zv~zz~z~v~x}~yz|{y~|}|w||~xy|v{wxz~z}}{}~~yx||{x~~|x|}|{||x}w}~|}}|w~}}z{||}~zz{}|zxxz~}}{}||{~}~}}{~|x}w||}{y}~}|~~zz~}|~y{zz~{{~}|~y~{{|~}|}z{||{{~}z~}z~|~{{{{}~}~zz|{{}~|~x~{~~~~}~}w}|vz~}~{}x~y{~}}{}z}|~~|}z~~~w~~|z|{}xx|}|{~z~x|x}~}~|{{z}}{}~zz~~z|~|}~z}||zx}||z}{}~|~z}}syx|~}r}}z~~x~z~y}{x~}~{{}~~{z{x}}~v~}w~v|~yz~{z|}~}z{}}zt~|{{}y~|{x}uzy~}|{|~x{y~|}y~u}}{z||x}wz{~|z{{z~}|||~~~{}||}z~w}~{xz}x|{{z|}x~}}z|~{y}xw|tx~u}|~}}}}}vywzwxx~x~~|}xv|w|y|{~zzw|~y~|w~~{w~x{rz~}{z|{~zy}~{v|t{~{~~|~~{}~|}~}{~~}~{~~~~z}}x}}~}{}}|||zz}{~{}z~zv~}}~yz}~~~z}}~y~{z}z~|z}||~u}}x|}z|~{~x}|s~z~~~~|~zzy}yu~}{~w}|zy~{~t{|z{t}z|}wwu|}v~vzu]{~u|}t~wu}||{|x~p{}~}||z}xpw~rm}}x}~}{}~y||~wz{|z}~~}~|{}~~|{{}|}|z~~}}}}~~~}{z{~|{x}~~}{{}||r||}}|~|{|}}~}z}{~~|}|~{}}x||wx{}}~x|}}vt|w}~|zwzxz~x}z}wyu}y~||z|yz}}z{y||{|||yx{v|{{|}}zy~}{|}x|y{y}}|}~}y{}x~y}x{yz~zzuzt}|v~q{|}}{yz|}~x~zv}~~x~~{zy|~~~{|yr|}}{z~~|{~~}z|zw{{{|x~}~y}|t|~~}~|{t||z}}z}|~}~}~|u|z|x~|~}w}y}z}}z~{~|}z|}}z|{}}}{}u}z|sz}}u~~zz}y}~{{}~~yy~{y{y~w}y~}{|{zvx|yy}|~~~~y}}}|{|}z{{}y~zz{|z~y{z{{|y{{z|{yyz}}y|xv}{~}ix{~}|zy}~}{~|z}xwy||vw|}{~}~{~~||z}|}}}xy~~|{{wzwy{zzx}|{}|z}w|{{||xv{~}~x{}xz}z~~~}~{}ux~uz~zw~~x~~wzxz|}~x~~u{}|z~z}{~wr{||~~|}}vz{~}u|yw}}|}~zzuy{}z{{zwz{~{{}}|z}}z{zy~s~}||x||}|}}z}|}~}w}|zz{x}}z~y{~{wyx}{u{vq|zwxzz}y~}||~~}y~~}}}}{wu{|{|||y~z|y{{{y}~{u}z~~~|z}~}~xyz|x~z}x}y|v{~}}wz|~}{{{~}v}|~y~w}zy}|x{y|~~~}w}zzy~{{z~w}{~}z{||~~{|}{|x~w}~|~~~z||~}~{~|{zyy~{{}}zz{r}}|{~w|}~~{w|x~~}}~w~~zyz{{~o|~|~y~||}{||}~~~w}wywy}~w}|~uv~zy~|~}||yzv{~{wyy{|}}zu}y|}{|yux~z}yzyz{~}{}z{|{}z{~|y}~{~|}{{z}|x~z{{}{{{yy~v}~uz~~z~{v~z~~~v~}~}{~xx}y~~x~z|||zv{{|~v{xx~yzv~{~{{}|{||{~||y{|zx}}{~|x}|}{}~|}z~z|{z~{v~{}~w}sw{~|}y|wy{~~}}~{s{x~x|}zxxy~{u|zz}~~y~~}~~y|}~x{{y{|r~z~v|y}xy~|yz{y|~|{|v}xy||~}{x|z}}z||{}}{yzz~~y|~zz}x{{{{z~~~x}}~zy~v{||z~zx{wz|{~y|~~}~}|z|}~}wzy|{}|}}yy}z|yz{||{y{}~~v~y~y}v}|x~{{}wx|}xz|}}{}zxy|~w~~{x~y}}vz}w}wz}}~~}xy{|~|~|{~u||{|t~y}}w|{|{x}yz|{{w|}|}{~y~~y}z~|{y~~}}|~z}~z|{|~~{|~}}~~z~zt|{}|z}|~ywzz}{|w~zx~|}yz~z~w~x|~{x{|z~}y{~|w~{z~y~|w|y~{~~~{}z}{~{|{}~y~t}|{|{{{u}~y|~~}}{~}~~v~}z~s}x~||}~|~}~yvx{~~}}~{~zz}{~y}||}||~~x}~|{}{}y{}|zy}|}y|}|}y~z~~w}~}yw}|~x}~u}}wzy~}}|||~}z~{v{}z{~~|yy}y{}z}~}{}}|z{v~u|}|~~~~~~~x~}~|y|}y}}|}}~y~~~~~}u~~}||wy~|||~~}||x{{~~}y~~|~z}~zx~|}}~zz|}~~{|||~{}|v{~x|~{}z~{}~~{|z{}u}|{}u}z}}xyz}y}}y{|ywz~yw{}{~~{~x|u~}~zz{|~~z{}||yz||}}{||}~}||~}xzq~{|w|}x}|}ww|}u{}|y|{|z|yxz||yz~{}z|}y{|sz}z}~~~}|z|{}w||zy{}||x}z~{{~}}t|~|{}y{vxx}|}||~~|~}{}x~~|}{{|}}zy~|{z|y~}~xy{z}{}~||}z|||{~sy}~{|xz||{~}}|{~}z}}~~y{{~z~|z{{~}~|}vww~|y}~~z~}~~y}}y}{r~}y~~}~}|||yy}~{z{|{{~|}~||z|{|yv~y~{~~}|||}}~|~~vx~{~z||y|}|}~y}|{~~}z|{x~x{z~{|}{{{yv~z~u~vy|~{}}|~}~}||~z{|}~|~y}}~y~y~}~}}{~}~~|~~}|zwz|{|~|~~y~}y~~|~|~{|uyw~|~~~z{|{}|x|~}{~||z~|{~~|~~|~|}}|~|z}}~~~}|zz}|}||wz}~}}}|}||x}x~|~{z~~}~}~{v}w||x~|v}~{y{z}yzx~y{z~}|z}|}}|}y|~}{xzw{}}}z{}|y}u{~~|y{|{}{{vvvzz}y}yyvz~{|{~{~}s}txx}~~y~xt{|~~|zv~z~y{~y~}{|}{{~x}}~{~}y|xzzwzz~{}y}y~~}~~v}}}z~~}||{{~z|{wv}|}{z~{y~}y~~x||{w|{{|z{~z~y}}zx~xz~x{{z~~{|}}}{}zx|{{|}{|zz}}yy}~|}yw|{{yw{~~}|~}z}}~|yzyy~}~~}}~}z~{x|zzz~~z~~{~~z}|{}|y}|}~}w{w~z}|}~x~}{z|r||~~z{}~}~u{}|y}z}|}y}|||x{x}~}|~zvzuw{ux~{}{}|~xy{x|}z~{~x|{}{|{v|~|}}{y~|~zz~~~~}y~~xxz|zyz~}y}yy|v~zv~}{||}s}~|~{{xt}yxxwy|}~t~~}}~z{{{~{w}ywy}~|z~z}}|}~w}~}{}}}|~{{}~|~~}||q|}y|~}~|~||~z}zzt|}z}}y{||zw{}z|~z|w{|yx}z||s~w}yx}zx~{|}xx||}y~y{x}~yyy}z}|}xy~{~z~z~|zzxws{~xt}~~}}}{y}x}vxxtz~{~~}~~~{}yv{|{~r{}z|}|w~{}z}yx~~~}~|w{}w{}|}~r}|~y}z|{}|}zyz|yw{y{x}z{z~~w~{}~}|yz}~}|}y~|x{|}p|yr~~~}{{{|z}~{z|w}||}}{~x~{~w{{~~|{}zwyyz{}z}t}{|{zz{~||zy}~~|}}}~zxyy|~}z}|{x{zvx{{u}|~||~{zv}~~~~z}}yu{{{vy{~}~w}|~|~y{~~|{{~|z{z|~w|~y|}vuy{z~{~~z~~zzx|wx~{{|~v|x{}z~{y~}v}}}zx}~|}zz~z|z{rz}}t}}~~}yz~}y|{}z~{~z}{~~|}zs|}{~zz~xz|}~wwx{x|rz{~|z}~}~~v{vzw~}y||{~}{x|}}~}~uqy{x||{z~ys}|}||z~~|{|zuw|z{{~}zyvy|zy{~wz~y|}}u}t|~{~}xxx|}uy||x{v}w}xz}~|zxy~z|{xy|{v~~~~}}{|xwxy}}|~~yv{}{y{{|y}v{vz~vv{|~vvy{~yyv~~|~~vw||~|w|y~|z{}z|~|{y|{tz|{}}|~u~}~{~r}}~{~}~x|xw}}z|{w}{u{u}{|ys{y~t{}yzz|}}~w}~|y}|~}~z|~~w|y|{{|~~zz|y~y}||}{wvxxy{~~z}}|z}||{v}~{y{}w{|x~{y~~y|~{xz}y~{v}t~~|yxy|~z~~s|~~|~{xy}y}~zuz~ww|}|{yu|uxzx}y{|}z{}~|{}wr|x~~y{{v{yz{}x{zy{~~{y|{y}}{zz}y}~zy{wvyzwyyy}}~zy~{~vy{~{|}~zx~{z~~y|}|z}{~{vxz|w}yw~{}~{{~|{|||}t||~{}|z|{y|vxzu|zx}z{y~z{yy}~}w||{{~z{z~{y{|{~~}z|{y~}{||~szwy~|{}|~~|y{z{~}yz}u{wyz}|~ywt~~y~~~}}~vx|g~z{~~|xru|s{}xyy~}v{{|~}}y{{|}x{|xyz{ytzz~v||{~t|wryt|{~{z~}z~z}~x~z|u~{{{~|}z}}w|~xu|xz{y}}w|}|}{~}~}{}{z}{y|vztz}~x}{|z{{}y|{z~{{{uy}~}}}x~}|w~}x|}~{||}y}zww|}}u~y~~~}y}x|{|x|w||{{y~}}|~~{xzzz|{{{~~|t|}~wv~|~~z~z~{~|}|y~|~x{|z~y{}{|{}|~}~~}{~vx~zwxww}|}|}y{{z{|z|y{~{~y~}||}~~z~}zxu|z{y}~|}~~~{~z~}{~|s|{}|v}z||xy}||~yy||z}}}~||~y~z|}}{z{|}|~}y}zz~{}|ww~nyv|v{~}}}uz}zzz|y~|}{v~}y|}xzyz}~t{~~|{{|~}z{}zz~{xyy{|{}|~|~~{||w}}x}~~~{z|{}w|~}}}y~~|~||{z{|}z~~}~{~x{z}|}z~|w{~}}~{{~}|z|y}||{}~}~x}~~|x}z{}}}x}||y~|z}~}~}z~}~~z}~|~z}|}tx|~}z{||{~yw~~z~~{xx|}}}z~z~~{|~{||||}{~{y}}|}||}y~||{}~|~zy|~|}}{~~}{}z||{v~~~}~}}|||{|~x~{~~yz{{}|}~~~yzx{y|~|{~}zz|v{yz~{|y{~{}}{~y}y{}y{|}~z~{z|{~~|{}}|~{w~~{z|}~{u|}|~{}{~~|{{x{}z~|y{}~x~~||}|{{~z{}|~~}~{~~~y{x}||~{}|{~{}}~~{~x{}}}~{||}w}|s}{~~}}yvw}~z}{~yyzz}x}}~t}z}z|}v{}{z}}yzz}~}}w}~yy|||{{|wyt{~~{|~x}|zxxy~}}s|~}~z|zw{|vwz~yv}|~yz|yx|{{|v}}{{{w~w}y{~z~|}~zy~z{}{|~y|{y{~}{{}~~{}}yz~w}{x}zw{z}~{{vz|{{||}}zz~}}y}||z~yt~zx~{y~{qz{|z{~x}{{}|~}{}xzyz~~x}~||ww|y}}|z~}|~||wyy{}|~{y}}v}xxys~|~}vu~~|zz|}}w}y~z~{|x{z||}wz~}~}~uz{{{y~{}~{~{y|{}~|{|s||~~zy|}{zw~~||}~z|{{|y{{|~{}~}||{{u{z|x|~w}~|z{z|~{w~}}}y|x|{z{z|~}s{~~{v}y{~}}~|}z{y{z{{x|~u~xw}||{w~}z}}}v}|t{~yz}yz~||{{|~y|zy~~~zu|x}yz~xx}wyz|{y~{}}~|}~|}{|}~xzz|~z~t{~y||zx|}wz}{~r{{y~w{{}z||z{~~~}u}z~}y|~~v}}}~~{}}{}{}}~~|y{~~|}{z{x~x~~}u~||z{|}}|zt~{{~vzyz~}x{~|~~{{z~}~}z~}|}~}~zy}zx~~~yz{}y{v~|~~~~x{{|x|}||{}z{~}u|{}~}~zy{|}yx|}}}|~}|~{x{z}}y}|wz|yyzz~~|}{|y{~yxy~xwy{yx}~~|{||z}~~{|z}~x}|x}~|{|z~vu~~}|}vz||}}}v|y~yzyx~}{}{~|~w~~vv|}{~|z{~~v~~x|}~~}{~w}~~y||v{z{~zz}}~{{tz~}z{v}q|x||{}{zu{y~}zs~|z~~z}}w{||zw}|~}ut~wz~|z|wztuyz}yy~|~~tz}~|z~||~~w{{~}yw~y{yz~}|~xz}|~u{yxx{zz{|zzwzy}|vz{vy~{}|~~}~|u{}~y{~~|~{}}}}zwyy{|wzw~{zy~}}z{y~v|{~}~~~{x~{x}}y~wzu~}y}x}v|}~{{}~~|}z~|}xx|}~y}~|{z|zuyu~~y~~||~wuz|||{yv~~~yz~}~|z~{|zy}~~}|vz~~v|~~|~||{}{zx|~~}|}{{}|}}~~{~}~|}~|~~xy|~z}z}}~{}~{}~{~y}{~|y~}}~~|u~{{||zz~~}|}~~}~}~~{z~y~{|~y{{|z|~~}}{}|}|~}~}}yu{|~y~}}}{}~}{~~~~{z{}}~{~|}}~}w~w{}}|x~v~|~}{|}y|}{|z~x~}{|~w|xv|{{~~}}~x{~ux}{~~~}{}y||}z|~|x{{y~z{}w{y~zz}}y~~}{|{{||z~zy}}yz}|~{{~}~|v{|yzux|y}zz~wz~}x}z|y|x~~w|yzv~}{}yzt}|~}~~~z|z}~v}ywyu~}|z||}}y{y{~z~{z~||}{x{}{~}~}y~y}y|~}{{~|{}v}}{|||}~{~|x|z||}y~{}z~v}~|y|z}{~{~z|}~~z{}u~uz|{|{zx~}r{z~zyyzw~zx{~}|{v|}|||~|~}x|x~~|zzv{y}~v~}xv{{xz~{{{|z~{x}y~|v}~~wzyyz|~}y~wt~}|~|}{{{{y~|}|~z}|wy}~z~|v~}}t~{|}|}w~|x}}zzw}x|~}xyz}{x{{}|~}~v{~~|}z}|v}||~z|}yu|}{|{~~y}}ux}~zz~||z}|}~z}x}z~~~~|}|~{|~~~|~z}~}}x{y~x~~}}}z{{}}~~}|{{}~~~~{}z~}~x~~|}}~zy~{w~}}}y}}}|~}y~zy~~z~z~}~}xw~z}z~z~{~~}~}~}||y|~~{x|w}z~~|}~~|{x}ww{|}~|}}{}z~~~|z|}{~~}x~}}}~|{|}}{w|~~|{~}~{~~}z{|||z|{y}wy}~}}x|~~z~{y{y}v}}}~~y{||{~y}z{}ww}~~|~~{{|~t|}~x~~}|~~{|~z~x|z}~w}{~}~|x~yz}~~x~}t~}z|{{}y}{w~{{{}z|}~|{|{zx}{||{}}|~zw~y~}|{}~}}z~}}y{~~}~vx|~~|}{|}~|{z}s~zz|{~z~w~|z}~|~}||~~zyx~{}}|x}~v}||}}|u~~}v{}}{v||z~~~~z}~}}|}|~{v~}~t|{x~|{}{{v}~~y|z~|~{}z}}y|~~|y}z}{ux}z{|z}y}zzwz~{xy~~||}~|y~}{~|wy~z{~}t{yw}u||}|{{|y|}y|z{}xzz~{yx}{}}~v}{~xzv}{{wyy|}|}}zwz}}~~~vy~~u}|y~}}z}}~|v{~|{|~|{}y}zz}||{y~|z~|w{}|z~~{|~}y}|~z{{z}}|z~{w|{}}zz~~~~~|}}z~~}~x~}}~y~~~|~y{|y{|{w}{~y|zw}zyx}z~~}~w|t|y|z{}z}zx|{~z~z}~}~yypz}~|~~~~}|}{~~}u|~y{~~z|{}z|yxw||}z~w~q~~z{~uxz|}vz|{}|}}wy|{~~y}uww}~{~x{{{z||||~}w{|~~}|sv~yx~~{}|{}xz|{v~{~}y~}vy~}}~~{||}}~~|}{}~}z}~{~~~}{w~x{~z|~}u~yy{~|{y|y|yzw|}|x}~|~~|u}~y{}}~~}y~~{{yx~}v|}||w|~z~{~|x{~z{}{{}z|~}z~}~}~~}~~|~z}{z~z}~||~}zwx|~|~||~|~~x|~|z}{|}~{z}w~~z{~}|z~||y~xz~~v}zy~{{|}y|{}{|~v{~~wy}z~}}w}{~u~zy{w}vxwx{~}~~~t||}z{{yty{y{~w}~~t|||~{zu|y|z{}z~tuz|}{}x}{~z}x{}yy}}|{~}{z{{x~y||y|w~{z~|{}z}||{}xuz~}~{}yy}}yzw}x~}~}r|v}{z~}z}}~u~x}x|y~}|y}yz}~~|z~{}z~~x~|{|~~{~~zyzzwy||~~xz}yx{{yz~|z}{}~~~y}|}|v}~}{~}~~~|||zz}||zz}{z~}vu|yz{~{|zz{}~z{~z~~}yz~~~z{}~{}yvxu}z~~~z~~}~|{xz{~{}~{|}z~z}}|~|~{~|x|{}}z}|}{~|~||~~||}}|w~{}|~~||yy~~x~}|}yv|}~~z~|~~~~~|z|}~~x}{||~}|}|x|{y}y~wu}zyzw|}||{{~}}|~u}||}~xzs|~z|~y}}||}y}~u|}{ys{||}~}}{{v}~~~y{yvxzx~~xx|y{w}y~zx~{~vw|z||}x{{||z}}|{~u~|}x||w|~zzy~zy{{{~~|}|zy}~}|}xyu|{~}xzzwy~~y~{|~}~}}~{|tv~~{|}}x~}x{z{s|~|~~|~|{wv}~{}y{}w}z~yw~z}~x~{z}}v}~wy}}~|{wx|~~u}}q}{|}|uz}z}{}vz{|}~|x}}tz~|~|{{{~~{w|~|zwy{{~y~}~{}}z}}u{v}|}}z|~~~{x|zz~|z|}~z~z~~~~w{z|}|t{~}y~}~z{x}zzw{{}{}~~|{{}v~x}~~{}~~~~z}|}z|z~~x{}|~~|x|t{x}~|{}}~|~zv{x{~~x}zzt}||x~yv~~}{{}|}w~{}y~{~{w~|~~}}}z~y|~||}z}~~z|y~z||{yz|~zzs}{v~x}z}z}|~}{~}}~~~}{w~w}{yx{}z}|yy}~}~z~~~{|{~xz}{|s{v~z~{{}y~~x}~{vz~y~x|~~|xx{yxyu~}x}x{t|~}||}v~~||||{}}}}~||~~~xzw~}|xyw~|||{}yz~z~}}~~|yz~|x~~y~~z}xzw|x}|}v~|{}||z{{|~~zy}~w}{zw~y}yw~|}}~{zz{{|~~}z{}|z~y}{|~y}}|~y~|z{||}~||{~}{|w~||~|z{}~|}{|~||}~{~}~~~}~~yx~{x|t}~~}zz}}yx}xy{vx}{~yyww}y|{sp~~|x{xaw~~|yyz}}~vv|{|~w~{|c~}z}{|z}{{u}}~}xr~|z|}{~}}y|{~}||}y~{||zy{~zy~~~~}v{}{y~}}{{z|}~|z}~~|}}{{yz{|~~|}{|}|||~}w{~|~{||}||~~|~|{~}}~~|~~~{|z~~{~~}|{}|z|}}|z{ux}}{|}~~t}u|}{y~|w{{{~xsz~uxty}~~}~tz~y}~z}~}u|{~zzyv~y}}tx{}~zxjxzs~yv{{~yzz~w~w}y~zx}}v~}~~|zuxyw}{|v{sx~p~wz|~}y}|y|x~tx}|ww}{{}|||y|}~|s{}zw~~|zx~s|}~|zq~yw{u}wrz~wz{t~~~yyyy}{~~tvy~pzs|}|}}~z}xzu|{tt}ystz|}}}v}z}|~{}~yy{w}~z}wzy~}}}r|y~~|{yx{z{{|}z{{x}}}|{{}{}~~~~}{|z~||}zy~|~{~|~zw|}u}~~~|}wy}w~z}|}|{||}||y~~z||~~{zxyz{x|yz|zx~||{||t}|wytx|{{wxx}}{y{|~s{}y{t|vw|z}z|~{~szy~~v}s|w}uwy}y~|sy}ys~~}v~}}{ty}{x}||w{{vx|~|y}|w|}y~}wy|y}|~p}{|y~~s~||w}~||~wzz{|~~wx|{xy~zyxz{|z}}}y||}sx~z|zy{zz|{}}{v|tz~|}{|~v~zxwz|~yys~}}}}}~{}~|{y|y~~u~~}~{v~}{|}~~}|~{~}wz{z|{x~~|zs{u~|x{}yz}z~~|}~}||}{z~|}}~uy~|}}u{y{{~~~}~~|y~|~{}}~}zy{zw{|y}}~~}~~~|~}xzy{z|}~z~x|}zx~}~~{y|~}z{|~~x{}w|x}z{zy{|~x~{~{~}}|{z|{}~~~}~|~|z~~|}{zwzz~~|{~{|yvz~|{{~x}{}~z}}~|~}~||~|y|}}{}}}~~~}}z}y~||~}~zy}|{z~z~x{}}~{}}~zzy|y}|~{y~|{}zz}~{~}~y}~~~~x|y}{}||y|||z~|}}yxy||}z}}|~z|}~}~{~~z|x|~~~}~|~|}{yw~}~|}~{}}|~~~}}y~}|~|~~}zy}}{||~u~{y~~~y}~}wy~||}{{|}w|~|zy{~}z}w{}w}~|}y}}|~|}}|~|~{z{}{|z}z}y{~|}}}~s|~}{|z~z~y{y}~y~{|zzy|{~yz{yyyy~}yu|~~}q}}~uz~{}~y}{|xqx|{z{{vv|}}{~~y}~tu~{y{x}{yyoz|~}|}~|}|y~~}{}x}}|}v~{~|yy|}vw{{}t{yu~z~|x|yz||~yy}vvvx{v}rz{zz~}}}q}~{v{zzz}zv}v{~|}|zz{||y}}y|{|~~|~v~{{{}y~|~~x|~v}}z{}uyz~~}~zu{x}}{~|}{r}{zx|w~xy}}w{~z{x~y{||z{wxx~wz~y~~}~~}|}|}uy~x{y}}~{{|w}|z{|z}~~~y~~z{x}}}||}~~y{~xv{}wx~|{{~}~z|{~yy|y}|z|}|~||xx|||{~x}}~v|{|~|}}|z~}|||~{xyxy}z}~|{~~y~y~~{~~{~}tw{zw{{~{{}}|{}~yz~~z{x~{~|}~|y}w|xw|||{{}|~~x~~|||}y{w|~|{{~{vu}}{z}|x~|~~~}w|}~{x~~zz{~|~~xy||zz~}~~}|yw|zx|zy}|||~|{v|~~~{y}~~y~}w{{y}vy~}~~{}x{}z}~{~|}{{~}xyxzyw{yyy}|~}{}~||x}||{|}|zy{y|~|}~}z}}u{|{}|}|{}}vz{{z{z{~{}~|}}xzyu}~}{x~}|}z}}|{~~z{~}{x||y}}{z|}y{~}|~~~}~~|u~{|~~|v|z{z|}~z~{xz~|~~~~}w~{||}|z~}~~|~v}|zzy~z{|}|y}wyy~z}ys|~}{}x|~{yo{~}z{}~~~~x~z}|~vz||~z|}vu}~}}}}z}~}}~||~y{w|{{{|~|{{~~|~~z}~}y|~{{}|y~ws~~|~z~}}~~|z||~z{~~|}z~~{|}~x{y{w{x|{~x||z|~}y}{}}|{{|x~p}~{|v|z{~}xw|~wyzzx{|z}{}}{~~|~}xux}~w~|~|}{{y}~}}}z|~y~~~}~~~~x}x|}}y|~y{z{{}|{|~|y~~v}x{|~x~}{y~|}{x~zzy|}}wzz~yxyzwy|}w}z~}xzwz{x}~}|}~|{}}zw||wyzxy~|}}{|y}~|}|~~~}|y~y~x~}z~{{z{~|zw|z|{|~~|y|z~z}xy~}{xv~~}~~{u~~|z{~y~}|}z~z|v|xvy~~x~{yx~|}}~|~|x~}y{u}zy|~{z~}~}w}y}zzy|~|x{}|||}{|~}}{{yy{}}}z{~}|~{~}|}~zy|xz}~~y|y}|~~}~{}}{~~~~v|~|{vxz||~~}y{|xz}}||{~z||}wuyy|y|~~z}|x~wz|{y}|~z{~|}{}zt~|{{}~z~z|~{p}}y}~~~{|x}~~zxywy}~~y~}}z~~wx~~z~z|~}{w}|}|||yz{z~|}z{~~~}~v~z~z~|}|}x|{{xy~z|~y|}}~}z|}~x|{y~|~{~{}{ty|yu~~|{x}}}z|y~qz{~~~{{}{~~|~y|}}~w}|}|y}{|y{|~wy~x~~xxw~ws}~}z||~{zv|zz}z~z|{z~{|yx|z~|wx}y}{{v}zw{}yz}v}|z~zwt|z~~wy{z|z}|~y}~}{{z}~x~{}}t}|xz}|w}x}~~~|ywz~{z}|y|w{}w{}z}|u}y~||z~}y}~|u}{zz~{~|}x~{{~}{{~y|tyv}wxy{y|{z{uy}~}v}}~||~||}~~|y|~{z~{{}z}{~}~x|}tu{vyv{y}}|zw|}|zy|w|rxz}|{~{{vz~|yx{}~{}~{zfz||~vy|{y{~z}}v|}zyyw}~~u{y~z}|{utx}|{|{~u{{v~~|{u}t||w~{~v~{}}y{vy}{zy{xp|v|~{~x}x~}|~|{|z~xz|}}~{zt{~ty{}{~{|}x~~zzz~~~}yz}vz|t{v{|{z{}}|}z~y|~|x}~y~zx|~|wz{~y}{{||z|z{~~}|{~z|}|}}{|}zz~{zz}~}}~{z|z~tx}zyx~ywxtx|y{y{{z}}||}}y~y{}}|}{~w|~znwxx}u~{~~~|wxzx||}{}|yv{|{}}||~}~y|}w}|w}{}~w}zyy}{|}{x|}}}{~uz{|xyy}|{z{~}||wx~}}zwzv}{x{~zx{{}o~~||~z|{x~|}}{}y}~|wzz~y{x}||z|y}|}w~~|z|~~}}y|v|~}}}y}~z}}|~{|yy}||}|{|}}~|{~w|}}}z|||~z|z~~|w}}~|z{|{x}uy}xxz~y~w}{z~}z~}{|~}x{{}~~y}~{~~~~y|~||~~w|~}|y~|{|u}|~~zzv|~~{}x~z}||~|~~w{}|{}x~{||}{y~~wx~}vz|wz||}}~~|~}}|}yx~~~|{~~}}{|~|x}|{ww}}{{~y}{~wyyw}|}}}{|{~{~|~|}}|~y~y}{|}x}}|~~yz{}|~{{}{z}{~zyw}~}~{}}{}}|~}|~|w{}}w~~|~|~|zz|z|{{~y}}sx~}{{v~z}}zz|y|sz}z}zw|x}|}}{~}~w|}}}{~~~z}}y{sy}zy|~~w{x~y|}~~~{zx|~|z}~|{{z~|xy~x~~zy|}z~~zz~{x}{}~~|x~z}}}u}y}{~}w}x{}x|yu||}{|~}~~{~xy{z~~zz}xz~~~{~|}|~|~z}{~~~}~y}zw|~~~||zwu~|}{~}~~~{~|v~~~||{|~}{yz~|~x|}{}}z|~~}|w~|}}v~}~{|~{y~~{|{|}|~v~{tyz|w}{~xx}|z}}{|~z}y||{~~z~|x{~|{}||ywx}~}z}|v|}~uu~~{}|}w}wz~~~{yv|xy}~z|{|~~w{|xw{{x{y}z~zwx~x}|~~~}|{|~~~v~|z~{{w}y}ww|}~|yz{{|}{{~||{z~w|~z~z|}|{}}~|z~x~y}|y}y}~~~y~}~zx~{|{}|y~{|y~z{x}}{|yy|z|}~}{~}x{|z{~~|~|~~{{|{}|v~{z{}x|wv}~z~|}}~}{~zy}z{|uy~~||{~{x}y~t~zz|~xzw|x}v||~|}{yy{y~|~{|~|~{||}}~y}~|}z~~{z|{v|}}}y||x}~{{~}|{|~}{~{}x~{}{~~}{~wyxw}|}y|z|{x{~w}ut~~y{zx~||}}{}}}~{~z||{}~|y}w~x~|~~~z}~}~}|}x{y~}}{xz{}~}}y}}~w}|y}|{x{~}{tz~~vw|}{~|y|}w|~zzx~{~}~}~y~wy~zv~|}}z||}{us{~}x~~|~z~||w{x~z~~x|y|}z|~z{w}|y~}{{~zwy~|{{}{{y~w}{}}~ux~}~x|{~~~~}zzz}|}v~yz|}~x~yw|}}~xuy}~}{w|}~|{yyz{|~y~z~|{}~}y|{|z~~{z{~|wy{z}{~~y~|z|y~}z{~~{x~~yw~v{{yy|}yxu~|}}~zw~}{z|xu}r}|}zy|}y|{|}{|~|~}}|z~}~}zx~uyy|{x|w|y}{{tzz~}y~}}{{}x{}|}|z|z{yv{y{zx~u{{|{{~{y~{{yx|zx~~}zzyty||}||vy|~r||~z~v|}}zz}~w|{z|~}z{~{{}}z{y|}||vrzzu}x|}~u|}|z|v{~zz}z{w~z||}x{~r}z}~|{zu{}zy{}}{|{}{{}u|}|}{y|{x}z|zz{{y}~{}|x|~z}xzxxy~|~~{y|y{y|~{~yzy|{x}}{||}{uz}z~yzuv|||w~|vz{z~~}{}~}u~}~{xz~{}|~}~}~|{~}|{y~|z~|{~yy|}~yw}}{|y{{y~z}|}z~|}zz~}{}yy|~y~}~v~{z}|~~~~z}z~}z}}{~|~{|}~zs{~y~z}y}|wzy}|~}y}z{~||x{}}~|}{{{~}~|~}}{~}{~~x|~}}~{{}~~~|~~~vz~z~~xz~~w}{{{}}z|z}|}{}{~}~}}zw~||}~u|}}~~w|}|{~z~}|||~~yuy{}{~}wx~|{{~~vwxy}qzz~x|z}{|{~zv~{||v|x~z|~}~z~~}w~~zz}}{z{|~w~}z}xvq}~}|~~|~~{||z{yx~||{w{|uz|z~}~||w|yzwv~xxy}zsvs||{wv}y}}~|{|{sz~}{~~x~|{||~~~~y}~v~~y~z|x}xy|~~z{~~x}~|~||~~{yz}}|}x|~~}x}tx~y}wz}|}|x}}}~|}}|zx~|}zyw}}}|{~}~v{||w}}}}{wv~~|{{s|zz~~{~}}{z|z|z~{{{v{||}x{|}}|yz~x~z~{x}v~u}u|}~s|x~x|w{u~|z}}|~w|u}}pyvx~}yxw}}yz{xw}~}r|{{~z{v}z}~z|{|~}u{{x~v}{}{z{y~}{~{x|{|}}~{|~~}|~xz{{~{zx~|zy{}s}}}vu|wyx}{}uw||~~}|~u~u~w~x~{{y~|~|y}~}w}z~~|~}{~y}s{w~z}|}~~~yw~~~~}|~|xyy|{|}z{y{~}}}~}~|zzy}w{~}|z~{{~|~{~}}~~}|~}{|z}}{~{~u}}~|{~{z{|}u}~|{}~~y}~{|}xxp}~{xzy|{y~|{~~}}}{z{|x~|~~wxr~~~~wzz|~~uu{~~yp|~}}}~{{zx|{zyt{zzq~{}v{|}yq|~quxw{wu~{|{zp}z|tx{}~{~uz|~}{}|w}zu}{|}r}yry|{ywvyuxzzvy{w{yu}|}}vutxwux{}x~|wzu{}v|}~||~~xtzszt}}vwx{z~x}{wx}z}wx~zzuy{|yq}||~~xl|{sw{{~|~y{x|{u{vwv~|~||xv|}xux}}{v{s}yx|{}|}~{{xx}}wy||~~}~vwx}}z|}zzzz|{|ys~~{~{~}}}ww|||}}||z~~xt~zx{~~}||{}z~}{}|z}x~}zz~||x|~}|}w~~~}y|v{zz{}~x~}{}yy~v}}{v||}|{|yvz~~y~|v~y{|||q|zx~|{}|{y~{}yz}r~~}uxzz{}|z}~|{uy~}~|{}~{{|~~~y{{u|w{}}|{{v~|{|x~{~svz}vx}w}u{~{u|yz}~v|~}~z~|~ty|y~}|{}z}{z~z|{zyvw{pz~}||{{}~{~zv}{w|{|zz{y{x~~ywy}~{~z~~~|z{w~zz~|~zy}|x{z{~}xw||}~v~z|{~t~}x}s~}}|~~~|yz~}{z|{z}vz}yx|||z~~v~y~~zrz|{u|yz{v|{{{{zz~|z}x{~}u|yzz{~}}|wr{~~{v{|~~}}~~y~~~y~|{}}x|x}}yrztvy~|{|{{xz}|z}|}{}{~{|~z~|~|~~~|z|{}}~}{z~~{z~{~|}x}|~~~|~}|~}~~}|{~{}z~}}}y~~}}w~vvy~}t~~{||{y||x}}y{|~{y~z{|s}{x~|{v||~yz|}yw{yz{|z{z|~}}~}yw~s||}}}uz|}z{{}{}}y~}yz~xxyyqz|}xw}}|}{{||{}x~|}y~}}}}|}||uxtxz~{~{t{{xxxuvu~}~yv}|zw}}zz}v}}v}}~}}~{xy}zx}y~w~}{{}}zz{||{|{~{~xzu|~|}v~z{}|{}xz{{~zux}yz{}|z{~|{r}}~}v|w~|~}xv~|xww~~~y|z}~~wx~{{|y|zy{|}yz}{}~}{y~}xwp}{|}}uw}|}|zyz}|z|}s|zu}}z||}{x}~yv{~{{||~y~~{{}{{x~}}{ts}y~~}x|z~|}{{|x{{z}}yvw~}z}~v}|~~|}}y|~vy~}~}~w~|zz|{~|}oz|}z~v}~|{|{~z~y~|}uw}}{|~zzx|}z|zzt|~y|~~|{|v|~{xy~}||{|vyx~|}{{|{{}{~}ww~|zxx|v{y~|~~z~|}~yx|}~}~xky|~zyv{zzyyz{~zy|}~{yzzw{y{|xyv}s{}}z}{{}|}{|}z~w|yt|{|xtz}{zxutz|}{xxtz|zy~zzx~y|~yy}z{}}x}~vz}{~~|~wy|~~|yv|zx{|}u}~}~|~}{~|t{|~}~}|{|~y~~|||~uy~|}{~~v}v}{xz}}y{}|}v||yx|zuzzx~|{~{{}~w|~}}}{~zyy~}y~y{{y~|z|}~~~zz}}y}w{{}}}}~}{v}wx~~}y~~y||~~}{}y{|{~~~}z}z}{~x{{uz|}|~x|xzx}u||zyywrvz~ywsz{~{z{xy}{}{|~~~~~|}z}v{}||}w{}u|}~x}~~|}|~}}zr{~y{~|y|{x~~~{{|{{y{{|v~~~x~~~}{z~|y{~x{z~~~|z}|~}}z|~z{}|{{~y~||~u~y~w~zw|{z}yx|}~{x~~}}|y|{~{}{{|{y|}{|}~w{z{|yz}~z{}}|}y}y{|~|{}{|{{|{||~}y{}{{~w|y~{zy{z|}}~}w|~~{z{~}}{{~yvz~{}x}}|{}}|~{|z}||}|~}y}w}yyzx~~zv~~~|}}|~~~~}{~{y{}}~|}~}}z~{}w}y~|zu}}v|{}~}}{z}}~}~~z~}~{|{x}}z}x{}~{z|{|}{}tz~v~|||~~y}z}~v}~~~|~}}|~zy~}z|~|{w|~}~}y|~w~y{|~}z~|z|zu|||~y~|}~}{vy~{~{}y}~{}yy~||{{}|y}}~|~~}~~}~}|{}|z}|~}{}z}~~}~{~||{wz}~||}y~~z{~}~{~~}y|z||}w|y~|}wu}z~~{}|}y}}}~}~~~|~~{|~x~~x~}x}}~~}|~}{|x|~~{~~zy~{{{}~z~z}}x~~~~}|~}}}~{}}~{{{~y~|zu{}z~}~w~~~|}|x~|~{zzz}~~|y||y{}wyz~|~~y{|||~|xzv}~tzz~||}{y{}{y|{~~~yy{z~}~~}||~{~yyz{}}}~{~~}{z{z}z||{z~{{z~~|{{~{~|~{zz~}x{|{|{|{{}|y~}}{~}}~}}zz}z{~||{}{}z||}|v}zy~ywx{}zz{|{~z}}~y~}~y|~z~{z{~}~~{xxy~|yz~|{}{~|y}}{~rx}|{{~{}v}{}|}w{~~~z{|~{}|~z~}}|y}~}z{|~~z{}v||~z{z~~}x|{~{}yy{|~}~}z{x{|~y}}~~yr~}~~~{}x{|s~}yy~|z|}}r}y|wy|{}~y~vv|{}}{~y~z{z{y}sy}~{t}~||||zxz{}|}{|x{u~{{{~v}~}~|{}}~{{yy~~|z~y}w}}xwzwx~}{}}}}~yz}~zyz|z{xztz{x{{|}{{|~||x}|||}{}}||~{|z}z}|}u~||~y|}v~~|{{~~zz~{{}vv~w|zz~y}|zu~}~|{y{xu}{zz{}y}x||u~y~zy{~y~x}{x{tx}|xt}}zxxyuu}}||yu}}|y~u}~y}yuztzy{}y~vw~|~x}|z~z}{~|{|~~}x{xx{{|}~}{}v~~|}|~xxuuy}}|~||zxx~~~u|zy}z}}{|zz|u~yz{{}{|x}}~yz~{}z}~{||}x~z}zwy~|z}xzw}~{y|{z|y{{|{}u|~x}||{xw|z}z}~|{}|}}z}~|{yw|{zwx}{||z||{}z|}}{}|xx|w}z{}{~~~~~{y~~~|{~||~}|~}}{~vy~yz{~~vz|}z|{{{xz}|y|~}|{y}}x|{}|ux{~}}y}~|{~}z~w~||~{~}~zwz{{zz}|y}zt|}w}z|~{y~}}~~{}~y}{y{{|}{{{~~w{}|}zzw{~~{y}x}~}u|{|{zv}y|xzyz}~}~z}z|z~|~vz{~|x||{{}|y}|}~y|y~{zvzyvx{}|}y}{z|}z{{z}~|z~y~z~|~~}~}{z~z|~x{~{{|~||}~z{}w}~v{~~y~~}zz}~|~{{zz{}z|{{z{y}x~~~~}{|y|}}}~{z}|x|x~{~~}{||~|}}zyz{z|}~y}~zz{zz~{}{|{}|}|z~zzv}zyy~}}~~yy~~xzw}x}yz{}~{||}zzx|w}z{|x{z~z|}~}zw~|x~zt}~~{|~~}}}~~{}|zzyw}zz}xyz{}y}}v~}~u~{}|z}xv|}z{x~{~~w|{zz}~~~sxvz|}|~}}xy~}y}~x}~y|~y~~{wz~}}~zz~y}|s}}}x}~~|x|xw{x{|x~~yz{yy~|}~zyzz}zzx{{y~u}~{w}~}y~w}|yvxy}x{~|y|~}~w{w|{z{|w~|~yz~}u~y~|zzwyxyx}|zz}v|~}|~{~zzw{xy|y{{~x~s|x~zx~|z~|z{wtyw{~~xv}}|u{zxv{}}}xyy{|sx~wwutx}v}y}}{|u~t}zx}|{~yzxw}}~~y}w~}~zzz~~}|zs~|}wy~|~~}}{~xx||}x{}r|}}{y||~}y}~v~{~~~w~}~}{{x}~{~}z~|~~|~uz{}{y}{}|~~{}~~{x}}z||}xuuw}~}|~z{|y}{}zy|wz}{zz{{~|}~{y~zw~~z{y~}}zyv}v}z~{~~{}|~}~|z|{~v~}~|}}{u}}zx~{}y|}~{~}{vzz}w}wz}|~|}~{}}y|zx}xy}|z~{yzz{}|{tz{|{~}}~z~{vyx|}}~ztv}w~|~||u~xwxz|~~~|~|zzt~zz~uzwz{vz{wyz|}z~}}}~{w}~{{||~}~vy~wz}}~yy}v|vz}}t~y{|}z{~yy{w{~~y{|wu{{z{{}x~z{||}~|v{~~zv~sz{|||z|x~|{}z}x{~}|}~~x|zy}}|v{}|z{|}}}|yz||y{w||v~~}|s|z{~{x}|~z~||{}}~|z~}|}}{~~{vy{vu{{{v{|y|}z{}|~|}z|y|v}|}|x~|y~|~}y|w~z{}u}||}}|x}yy~~}|}~wz}w~~}|z~|z|~z~vu}{zy}|}{|~||y~|xz{~}}||~zx|~{~~{z|~}~{~|{~}~|{|x}}~~vy|{y}w}tx~}~{w~}{yvw}}}}~|{~}~{x{z}{~}{}z}|}z~~}|~}~~}w|ry~~}{}{~}ytx{{}u}}t|~|~||z}~~}~xwx~|~x|}xyx}}}||~~{~z~~~|x~uz~{|~|~|~z~~y~}vw|v~}zx{|}~{{}y~}}x}{}yx~{y}|}y}~|{{{}yz~u{z{|y||{w~~|ys}~|~y}xy|}zz|z~}|v~yx{yz}}}}|~{}~||~{~~y}}|zxz|z|}~~}{~|w}}zy}x}y{yyx|{|~y|y|yzv{t|w~~{~}~{{s{vx{}z~|~|}y{z}~z||z~|~~~}|}}z|xw|yz~}w~{{|}yx|~~~zz|||{muy{|{}~|t|||~xu||~w|~~vv~||~~~~~}ys|y|wz}}~w~|~x~||}~~y}~|y{{~}xw{}{uz~~~~|}zy}~~z{v{|wx}wwz~}~~}~wx~~x||w}u|~{~}~zzxwy~y|yv}}{~{|~|}~x|~~w}~}~{y~wx{}|}~~}|v|xxw{~|w{zzxv~yz{~{yzy~y}zt}}zv|}~~|}}|~~|x{z|z||y~~{vy~{~~y~~x~z{z||wy|wwy|~{w~}~|y~~xyyz~~{zy}~}y|{}~~uw{|{~~wx|y~~{~x~u}~~z|yr~wxx}||~||{~yy~||x{}z|}wx~~~~{}~|z{z}zyy}y|{|||~}yx}}}{zy}{}xyz|y{~}xzyy|~}x{yw~}~{w|y|{x~~{xwy~~{{wxyzx}|{vr|yyyt{|}{}zzuzx{uvzz~~~vvxx~~}zwz}}}}~zy~{|z|w|w}}xw{|{~|{{w{}|}{x~~~~|}}~}}}|}x|{{~~||~}}~}|~~}|}~z{z{}|y~x~z}{~~{}}~|}z~{yz~~{~}||}yx}}~{}~x||}{~{zy{}{xz~}yv{~x~{}z{x~|}~~{|}|w{}}}{y}~}}|z|}v~{~{|}||~y}~v|{{|y~|}~~z~zz}~}}~~z|}x}z}}~~~|~|~z}}~w|}}x}|||||}{}z}z|}{~}|y}{z~}|{z|z~{||~||y}~w}}y}~xzw~{{}}}~{~{|r~~{~~}~|x{}{{}x}{v}~{}~z{}~}~|~}y}zqv}z}y{~s}yx{xztz~z||}z}z{uwy|z~zz|yx}{|}}~w{~z{|{}{y}xv}xz~~}|~{{v|}y{y}{~}xy}|{}|{{w|}|{~|~~~uxy~{x|w}~yu{z|||}~}z}xw~{~x~w|}y}x~}~|y~~{}uys~~z}v|{z~~{xz~x}~}v}~}~}}|{}~}ywy~{~yt}{u}}z}~wx|q~~yu|v~{z|w{|{|{~~}~~|w}~}|~}x{{|~}|||yzw}~{}~~}w|||~|}i{z{x~}{{}|}~~{~~~}~~|w~x|yy~{z|~||||{w|v{y|~rz{{~~~}{z{{~}z}~z||~vz~~~~~zv|}}x~z|}|}}~}~~~y~x}}t{{|}u}yz|~{~{}{t~z||}}|~{~~x}t}}ywz}}}|s|}}{|w~tw}zx}zy~w|v||}}~{}|}y|}}|~|{|{~~}~~||}{|u}~{}~~x~|xy|{yz{~}~{~}~z~z~~yx}}|y{~}|}z{}}}x~y|}}z~}yyyyv|}}}x{}|x}w{y~z~}~||{y}}{|~y~z{{}}~~z~}}v~}}{|||yz}{~z}}z~~}{w}w~~xv|~||||~}|x|||{~x{{}zx|z~{{z}{}w||{zy|}vyv|~zu~w{~yx}s~~|}w}|v|y|y|zx~}z~~~~}z}|xz~~{~{}zz}|}z}|z}z~~{z}~|~~{~y~}v~{|}|z|}}~~~}}{y~{}~}~y~~|zu~z}z{}}{z~||yyz{{}~z||}|}~~~|v~w}~~|~x~{z|~y}{~yy|z}w|~~~zw{{z}~zvyy}~}}w{z}v}y}}}~~yy{|~{{{{}ywz{{x{~~x~~}yv}y|||w}|y}~|y~|zz~{{z{x~~{|}xz}~{~}|}{yx}~z}u|~zyy{s{{}|}z{zz}y}~}~}|{{}x}}~|z~}}yx~~~~{}{~~|z}~}}~yx{}~~{zyyy~{}~ytz||~z{|w|{~}|y|y|~||~wz}~|swr{v|xz|{{|}}~}z|}~|{|~}z~y~}{}{~zvzzy}||}x}}z{}z}}|x~v~{}|xw~~z~w~}x{y{v~|z{~w||}~|~{~|z|~{|}~z|}z{zz|~|}~{}zz}w|{~~}|}z~z~|~zy}{x}|~}x}~}|~|{}{}x~~}~|y}{{t||~z}y}rv}}}y}|z|zuw|}~}~||x~{~~}}}y|v~~~{~u~}wzx||~||zzv~|~y~{}{z}~|v~}{w}wwyz|~w}{~~~u~{p{v|y~~z}}|}}|z{~|}~|ww}~}}{~}y|~}~v}x~{}}}~{|~~{~}|}w|y}~|z~||}}~}}}}w}|{z~|}~|~~y|z~~~y|~~|zxy}yy~z{{z}}xy||~z}~||zzz{~~}|{~}}{z~~z{~||~}}}|||{~||z}}|}|}y|~|}|{}|~|{~|z~~{||y}y}~|z{yz}}~~|}~~{{}{~~}}y~~zy|||{}zz||~}}v~{~z|~|x~}~|z|z{xy}w}|{{z|z}|}w~x{}~yx}}}~}~z|w|~|~|{x}~}}|y{yy}y{}~}|wy|~~{w{v||{}}}|~}||}y}x~~{|{z{{}~~|~z{{z{|{}z|~y~~|||}w~y}|}|~|~~~}{||}|~|~{|z~{}||~~|v}~}~{{|~y{}{z}{}{zz}~~|y{z}|~}}u~}x|~{|||t~}||~z~|~z|}|x|~}ywu~~}||}{zx}}y{~{~{z{{}yxx}|z{}v~|{}~{|~zz{y}{{}{yzx}t~z~{|y|zu{b}fozcyyqu~}gspr}v}}ro{ph|}qwtw}{}|x~z|zyz}~z}y~y~{~v|{~}}}z~z|zxy{y~}{x{}zx|z~z|~~|}z~~w|{}~}ywx||x|~{s}||{z~x}{~|~t~wy|{z|~||z}}|||~z|~~~||{{~}}~|x~z~vv~|{xy~}~s}{x~yy~}zx}~|z~||}~||~}~~}}v~{xy|}{~zx|~}yy|{~x}}~{{}y~{}~uy~{y~|y|}}w~{{{v||}u|z~}~|{}{|~{}}||~{|{|~~}~~x|xt|y|}z~|x~x|~|{|~~|~t}wy|x{~v||zuxx~|}v}y}vz||}~|z|uxz||||~{}{|~}~{tz|v|~~~{}|{~yz}{~~{}z~q{}xy}}|q|~x}z}}~~x||y}zv~~~|y{zxv||x~~}n|}~~{~x~~x~~{{}|z}|}|vz~xyy~}~zyxyw~}x~}}}}zz}}y}zxy|xwx}}}}}zzyz}}||xx{}yz~}|z|z}v~z|{|~y~u|{~~x|~|{y|zx{~|~v~}|~~{}}y~}z~~x|z{}{|~yz{x}y~~|{y||xyxw|{}{~yyux~z}~{}~x~{~~{|}u}y{|}}~|{~u~z{|~}|yx~}{}}z{|~{{}}x{||z||~}y|y}xzr|{x|yy{|z}y{zx|z}}{~y}~z|~|{{|~}~x~|}zwx}{|}y~xx|z{{u}~|||}~{t|~u{yy}z|{x{~}y|{~}}zxx|{}}~u{~|~zw{{z}y~~|{~~w~}v}~y{{x|~yy{}z}y{{z{|}|~||~~~|zxzwxn~~y}z{zy{~}u{}||}~|vyx~y~|{{}t|yxzz}}~|}y}yuy|~}}y~xzzw|~{{w|{~~||y~|}t|y|u~x~|}|z}}xy~zys{z}~}y~~~}wwyz~}|||~z{xw|~{{{||{zx}|yz{t{}}{|}~}x~z{y~~}}}}{{u~z}|}zy~~{yw{}}zy~{{{{~x~zz||}z}}y}|~}|y}{v}yz}}zzz~~v{{{}z}|z~y|~|{}{}x~|z~~}{}{uwz||~v|xwzw~zz~w~y{{~z~}|{|~~|sxvyr|y{w|~z|~{y~}||{x}{{|~{x{}|z|{}|yrz{v{y}r~wv{yx~||~|||}}}w||}y~y}z||}~yzx~}~{zx}{zz|}q{~~|}~~{{|u~z~yyx|wzuy~u}zx{}}v|}~~|~z|~~|y|zx~~}}tw~|}w}zx~u{v|~}~~zzxxw~{~}w~vs}||zy|y}~}~~|x}{|x}~}|}|y{~}|}vz}}|x|y}wzw|}}}~w}{}z}}|~|}}y}w~|~}}|||}|x|~x||zy{z~z}|{{}{{}y}}x{|{|~~}y}|~{|}z{~{~|~}}}|~}{}{}~~}z~{}~}{}}~z~}}}w||~|w~~{}~|}{|z|xy~yzz||~wx~zz}|{yz~~|x{|~v~}|zz{~}xy}t}{}|yy{~z}~~}|{vzwy{|v{|}}~|xz~~|}}~||w{y~}zy}y{}|~u{xz~{~{{||~|y}y|y}{|vy|yz{z~}}~|{{xy}u}~}y|~|}~~~z||y~|{~{yz~z}}~~~r|yz~|~|}}{{}}z|z|}|}}y~~~{w}y}}}~~||~}~~z~}|y|||{~{~|}}}~u}~{{~{~}}{{||~|v{~y{x}~w|~~yyy}~{~y}~u|{}t|~}t|}~ux~z|~~{~xxzy~~|z|y}|{{|||~~xx}~~z~z~z~{y||}|~~~~~~zyy}{}{}~x}x|zw|x{{{v~x}y~|~~y}{~y|}|~~yxz}~{u||xzxt}|zz{|{z{~|}|~{v~wr~z~~zy{}{yx|{~~~y|y}}{x{tz|yyvyz~~}~z}{|yw|zyz~{}~}xx~}{{~}|{{~yzz{~|x~}y}|~|}{z}~}|}}zv|y~}~|w~{}}}||{z}}x{}z||x}{}~~}wy~zy|w~z~xz~z{|zx~|xyy}vz{{wz}|}v~}{}~}~|y~{z}~}zzx}{~ryx~{yz{{}{zxx{{~xy~|}|z{rz|zz~}wy{~~|~z}}|zyy|~}wz|uyv{~}y|}}|{}}||~|}zu}|z}~|~}~w{{|}{wty}{~xy||x|~y~x{}x}~}yzz}|}w~~{yw~y~~x~z~{{|z~|}x~zwzy|}v{|~{|y~~|~}~||}{w~|~{||z||}{||z{~}~vxx{}|~t~~z~~~|{~}xy~}{|~z}~~}}z||~x{|~}}~~{}zz|~}~}z|}~{x~z}yz|}z~{~|}~}~y~{~|~{{|wx|{}y|~{}}|{v{{}~zz}x|yzx}}{|}}}~}|y|~}~~w~vyx{~|}wy~z{zzvz~||~x}z}~wzyyzy{~|{{|}~}}~}|{tw|y}~~z~}~||}zszwzyz|{}}zxyw}~u|~}y~|t||~}}||~~||y}y{t{{z~~~}zrz|}y}z}{|{x~zz}~}z|u}{x~}}}w~{|z}vzv~}zu{t|y~}z{{~xw~~~zqk|}zpy}y~yuy}{yw|~~t|x}u}v|~u~x~}zy{z{x}|||||x|x~y~{wy{{}z{{}}{}v{y{~~}}{{|z{wzyy~}{u|ywy}|x|}w}x|~z{z~}{~}x|}{{y{~}~}zw~{|}}~||wz~||~~}y~y||x|}|~y|~z~vz}||}tzz~}~w}{~}|}~x}~~z|s||}}zz~~z}}{{|v}{{y|z|||}z~|~w~z}u~}}}}wz}}{z}}}~}w~|~|}uux|}~|{}}}}|w}{|}~|{|t{{|zy|~~}x~{{v|{v~~~x~x~zz|}}~yu~ux~{z}~u}~~z{r}~{~}|~q}wtx~x~y~x~t}}w~~~y~{z~|v~zwu~x}w|~}~v~|}|}}~|~}|}{|zy}}y~|||~~|{{}z||z~{w~|}|}|y}~~z{}w}yxs}t}}}yy|y|}|}y||}}|{~}~xwx{s{}uxzzy~v}x|z}{x|v}~}z{~|x}~x{vz||}}~z~zw|x{u|x{y}y|}{~w|}|~y|zy}}~z{|}|~zx|~~x{x~|}~z~{}z{}}u}{|z{~|zs~{}~{}~~}xz|}zz{w{~~}{|w~}}}zywyz~s|}~xx}x}}zs{}w~~zyz{yw||z}~{xz~z}~|}wv{}u||vw~t{y{}}z~{y|{~~y{}z|}}}z{~{zz}u{{~~|zxsyz}vz~{}~x|x{}z|zx|}z~u~yyz{u}z{|~z}w||wy{zy~u|}}}}t~~zz}~}zz~yxv}}~}|}~}||uu||~}}~~z||~~~||~{zy}|{ys~y}|v~zzwz}|~|x~|~{z}{zz~v}x~}z{}~~}~}}~}}|}{}~w~{z~|z{|{z~~~}~|~{~}}{{~|{}y~{|~{}{~|~}wy~~|}~y||~~|~|}zy}x{~}~}|w}~~~|{}uz}~{z{~}z~~~y}}yzx}}~z~|{}u}~sv|~y~~|y}~~||}}z{}z{}w~~zx|z|||w||~|{~}~|~}y~~|vx{w|rw}z~v|}uw~~zy{z}y~~}x}|x~~|~zv}{z|x{x~||}}}{z}|}zv~|||}~{}yzzzz{xz{|}|yzw}z{~~{x~yz}{{t}}{z~y}z}{v~yz~||}|}zxxz~y~{{~~}{{v|}}v~|}{~{{~{~~}~z}~|{z}yy}z{~}|zyzw{w~z}|{{}}|z~y}z{~}{z{|}{}|}~~~~~|}z~yzzt}}~}}|~}}|z|}|~zy~xt{z~z}~~}z|~~x}|w}}~{~|tzy~yz~v~}|wv~{xtz||~zzy}~}x{~~~v}~z|{|~}}z}~y{tx~y|~z~~|}|{z}}~|z~~{wv{}~xy{}~}w{|}~|{}yzyy}~~}z{w}{{{z{y~}}~~}zz|}y~}~{|||z{}|~~~z~{~}}v|~~||y}}x{~zz}z}}wz}||~||}~{|~{}}|}~}y~y~yy~}|}}x}z}zv}x}}{|xz|z{{~}{~~{y}x}z}xyzy~v~~|{z~y~x~}~z~v~{}}w|}~{}{v~}{z~{~}}}~}uyy{u~{}}}||zz~~}{~|}~}}}|z{{||||zz{w{w{t|}x~{{||~|~{{z|{z{~~|zz~}y~y~}{~}v|x}yx~|zt{y|}~z{z|sz~{|y|{zz}yyx~z{v{{vtzz{}{}|yy~|}|uw}~}z{zzzzw|~|z}{xxzz}v}~{}{~{x|}|~~~q{z~wz}~z}~{v|{~}}~~}|y~{{~~||}z~}}~zz{~~||{{}}}}{z}|{z||}~{}{}x}}{}~{|||}{}z|z}|}~z||}~}{|~~~zz{y}}~~~~|~|y{y|~|xx~~|z}yu{z{|}wz{{}}~{z{|zt~z{z~~|y|~wv||||~{{y{~|{~|t|~u}y}~}~zy~}|y~z{~ux~{}{~|x}{wz|}{~~}}z{~~{{|~w~~}y~{}|}{|~{yvt|~||z}|}~zq~z~y}~~u||z~~{}{y{v~~}~}~~~~||~~|~~zyyz~{z}~x}z~y}||z~w}zy||~y{z~~{x~~|}}|~}||~~}}|~v~}y{~vs}{}~z|~|~}~{v}}}}~{~|~~}{}z|z~z~}~z}z~~y|}x{}}z~x|~}w}}}~}x~|yz~{y|w{~|{~~{}|}|{{z}ww}{{}{}~y~}}yy}{{~z}x~u~z}}tzz~z~}{|~z{~z|~}{~||~}|y|~z|y{~~w}~y}{|~~x{~ysy}~zzw}y}~z}y{x}z}}z|}x}}|v{}~z~|{yy{x{{}|~~~uw|{{v{|tv}|~{}~~|~x~z~{|||{~|{}y~}z{|zz{{y|~}~}z~}x||{tz}|z~~~~x||~{}}z|zz|}}|}{~t}}z|~{|~{~|~z~z{{zyu|wyw~{y|xz~|zx}}y|}zxx|s~~|}}|}wu{~~u~xy}w}x}zyxx|{||zwu}x|wyy||w{|{|rz~z{~~~|z~{~yxz~}z~~{z{xyx|}}}w}{~~~~{y~zy|~{~yz}~z|{~~yz~}z}~~~~y|}~z~~}~y|z}}~~zzzzxy~}}~w{~~~{{~y}}}{~~{zz}yr}{w~{~wy}||~{|~x~y}|}{zt~z~{yt|w~~z|~z}}zy}|y|||}xz~x~~{}~}~~{z}}}|{{{{}|}z~~}zz|~xz}y~{|{~wyvy{z}}zzzxx|w~|}z}}xxzu}}yq||{|~yzz|z}xxs|y{x}|y}w~uwyww{~}y~y~{w|y|~z}}{v~{{}}||u~v|y}~~xz|wz~{}}}v{{~zz}~|yzy}y}~}}}}~|z|}v~w|}{u~}z|z~}z}{z{~|}~}~~{{}}}~~{~}||}y{z}|}|}x}{~}{~z~~|x|x{z|t~|y}twz}{}{}}~w~}{{wy~q|z}z~|~zv}|~~yxy|~~}~~}~{y{}|~r{}~z}}v|}~{zx}}y}|||}z~zu~|z~||yy~~|~}x|{~wyxy{||py||~|~~|w{{}z{~|~~|~z{xyz}{x~x|~|z}z|}}}z~|y||}{||}{||}}|~~|}~t~zzy}wx}u{y{||zz|}~x|w~~}{~~|}|~~~vx~|v~~~~|z~|xw}~~}}yz|u{|{x|}~{}~xzyxz{w~|wv}{|}}}}~}~|}}}||vxq}~~y{~}{xzwv~|}z{|~|~{}zx||zx}xw|y~{}x~v|}}w{}x}~xvu}syyx{}yxzwxtzy|~|{x{y~}yyw}{yttz|~yyw{|~||z}r~yu||tvy}y}~|~zr}y|}}|}~|}~~z|z~zy~xz{{{v~~~~}~}xv{}||~zy}~z{}x~|{w~w|}}zw|xw||~x~{{}{}x{~x}xz|}|~z{|~zz|{y}~x{z{w~}|~|}zz{~|}{|{~||}~||}|xz|{{zz~|~~z{~||{y}y~{{~||sw|~u|y{~}z{||}x|}zuyy~~z}}~z|~}~{}{~}~}~z|}z||}}~~}|zy~|y{y}}~~||}~}yz|w~~~~{|~~}|~z||}zz|{~~~~z|}x}~~~y~t~|{w}}~yw}}~~}|||xx|{~xu}|}||z~wx{n}x~}w~~y}}xr{|}{||||x|}|}y~~{x|~|y~|{{}z|}}}}z}}}y|}~{|}~y}{~~~}}w|z~w{{}y|{|~|}x{}|}}}}~|~zz}~}|z~{~~|~~~{~}~~zxy{}~~}{|{~}|~|}w~y}|~~{||~~}~~|}{}~~~}~}|}~|~{y{}v}}}z~|}}|t~|w{z|{t}vyz~{w~z}vwv{{|~}}~z~x~~|zxz|}}~}uw|x}}zw~y~~}xyw~z~|~{||~}w~v||}}wy}|{{y|t}zz|}~~y}}|~{|{}{{|z{zzyy}xz}z~~zy}x{|{x}}{z~w~wrtzz}~y|~xwzxx|z~w~}z{~|y{|~xy}tvy~z~}~x}~}|yz{}x|{~~||~z|~s~}v{vwt{~}~~wyt}u{|z}~{}x{z}z~y|{z|}~w||~yu}y}~z{x|}{tz|{|}t|||{~}}|~v{x}}~}|~}}|yz~zx|w~~|ux|z|zx~{}w}v|~r~|}||z}v|zv|}{|}t~|}x|~l~y{|~|{{y~}}~|~x{x|yz|}~{x~}{|}xwq~}{|y~}|{|~{|}}~x}|~|{}z}ys~~u{z~u}}v~wzzw~~~{{~|w||~z}~~}~{|z~tz~{}|wz|w~||w|||{t~x|zx{|~}~xwz~y}y}~~~|vw~{z~z}}~~~~z}~~}|~{}z~}}y|~}}{~~~~zy{}~y||z}~~|y}}|y}{~~z~~{z|y~{{x{|~x~~~{~tz||~{y|~x}{~~~|{|}v|u{{}y{}v~{}}~wzz}~}~~~zuz{|~~}yy~w}|yx|~}|y}~}z}w}{}v}}|}{y}}~}~}~z~}y}{{|~~zw{z|}v{y|}{zx~~~~|{}~}vzy~~z~wz}{|~|~{w|{}|}~~~{y~|}{uy}y~}{z}~~{~||{x}|}v{~~}x}x~}|x~|{}|y|x}~|{z~}x~{~{|{~|{}z}~|y}z~~}||z|~x|||}}}~}}}{~}~}ww~{}}~~}u}}yw}~{~}y{yx~}z|~~}{{z~|~~~~w~~z}|~~w~|}|z}z}~~|y~~}w~|}~}~|z{~|}}{}y~|~|zz{y~{y~~~}}{}}x|~}}~w~}~{~}}~||}~~}}{~}|}~{~|}|~}~{~|w|z~}}z{~}z~}}}~~~}~~|~}~|}~}}}z}|~|~~}|}{}~~|~y~}~{}||}{{|}|{~{}~z}}~z~~{}|}~zy~{~~|{}}{}|{{|~~}|{~{y}|z|z|{yz~}{~~{~{~{~}|{z{~|~}~~~y|~|}||}|{z{|~~{|{{{~}~}~~|{|}~~{w}~}}{~z}}~~}~{{|~|~x~~|~z{z~~~~~~~z~}}~~|}}|{~}xz}~}xz{~~}~z}~|~|~}{|}}}|y}{|w|y|}~{{{}}}~{~}|t}~x|x~~}{|~yz||zz}{{}|{|}}{z~{{y|~~{|~||}|}{~}|~}x}|~{}~}||~~~{{zv}{|~{|~}z{}yyw}~|~|~y}~{vz{x{{|~{|~~{|~|}{z|zz}{~~y~}~x{{y~x|~|yz~}~{}|zz|}|u{{~vxy}|~}~zz{y~~}zy{~~xw}~sx}w~}}{{|~}~u{yy}~|~y|z|{~{}~}~~z{{x|{}~~~}|y{}~|}}}~~}}{z}{~~z~{|~{|}{{~~~}~}}~{y~~~|{yz|w}y~x}~w|||{~x|x}{}}~~}|{}x~y~}~~}{{z}~|zzzz~{~|z~{|{v~{~~||y}}{~~{~~|~z}~}~~w|}~}{|~{}|}~{z|~{~~~z~~~}~~~{z~}{~}~}}~{~{~~~~{z}|}|~{}}z|~~}}~{||||z~}|~}|~~z~}z{~|z~~}|{z}~~~~}~}~}~}~~}||}|~~~~|z{x~{{z~}~|w}z{z|{~~z}~{}}y||}}}|{{~y{}|}|~{}||~}|~~}|}~~|z}}}}~}}|~~zz~}}z~{|}}{z~}~wy}}~|{{{{|{{|~}}}t|}y|~}}}z|}~{}y}}{z}}~{y{zyz~y}~~~zz|~}y}}~|~|}}~~|~w~}zz}~}~u||}x~~}~y~~z{|yz~{~y~}|{}~}~}~{~~~u}~y~}|{}~{||||{{~~}}~~~v~|}~z}~y}{}~}}{~|z~z}~|{}|~w|z}z}~z~|{{|}}zz~~}z}~}~|}y}}~||~}~~~y{}~~}|{~{|x}}x|~z|}{}}~~~||~||~z~|z{{~y{~~}}||~~z{{{{|~~{}|}|~w{~{}|}~{x{y|}~~}~{xy{|~}~~{|~}{}|~~zy~}~{x|v}~~~y~{~~{~~~~z}|y{}~}~~}~}y~z}~}{~|~~}{}}}~}|~}}{|~|~|~~{|~~z~|~|}{~|~}~||}}~xz||||z}|}}~}}|~|v~}~w~y~~|}{zz}x|}~zw|~y~~~z||~~~~yy~{{~|{}}uz}~u}~}|y~}}z|z~}~|~}}z|~|~~|}~~}~{|~|~{{|~~z~|}~u~~~v||~|~}}x|~{{x~~}~~~~~|z~z}~}~~~zz{||z{zyz~}|~z}}~z~~{{~|~~~{~}{~z~|x|~|{|~|y}|{}~yw|z{~~~~~|}~~}|~{}{{~}yyz|~{}{~y}~~x~}z||}y}y~{~~|~~~}}w{{{|}}~}}{~{||~{}u~{~{}~~}{}~{}~|z|z}~{|}{~x|{x~~}~u}}|}}|~~|~y}~z|}uz~~}{y{}y~|{z~~z~{{}|~}}~z||y||~|~{~~z~}{~|}~}|~}x~||yv~|}~||}t~}{y~~z||x|~~~~}{z}{|}||||~~~}~~}{{|{}~~~{|~~{~}~z|}}{z|||~zz~|z{~||}||uyy~|}}x}{y|~}}~~|{~|}z|z~{~|}}|}y~~}}|~zyyz||~}||}z~~|~~{ww|}~~||~~}~{}~}}z{}|~y}~z}}}{{~}~{~||{z{~|||{~~{{~z|}~}~}}}}{}~~}~{~~{{~z~|~~u}~{{}~~~~}}x~z||{~}~~}y}|{~~}|u|}{}y~~~}{~~~y~|y~}~~~|v|~~}}~}z|~~{}y|~~~|}~~{{z~z}||~x{||{|~}~{}}~}}}}~z{~z~{|}~}||~}{}||~{||}~|~~}~~}}~|~y{}~|{y~}||~}~}~~{|x}~~z~}~{||z{z{{}{||~x{z~y|{xz|}{|zx|~z{~{{~}|}|~{~xy}}}~~{zv}|yz|~{|y{}|~|~x}zzxz|~~~}||}{~{~|||}|~{~~~y~~y|{~~|~~}{}~~~z|z|~~z}z}|{~~}y{}}~~~~~~}||z}|x{~~y{}~y{|||~||{|~|zz~}|{{~~y{}|x}y~z}}}|y{{|{{|}}y||~z~~||}~|{}~~}~}~x}{w}~{}{~|~~|z~}~|z~}z}w}|xz~{~{}~}~}z~~z}|}|~}~{~}~~~~}~{x~|}}~}~z}{{~|}|}~}~~}y{}~|~|~}~~|w|{|{~{~~{~|{~|~z}|x}~|{~}|~w}}z~{~|}x||}}~|}~z~~{|~|}x}||~~{~{z|}~}~|~|}|}{~{~z|{~{{{wz|zz{}s~yx|yx|}~~}~z|~}~{v~~{|~|~}{|~|~~|~zy~{z~z}{y}||}|v~|{}~}~z|~{}z}}||~}{~~~}~}~}~xy~|{~}|}~~}z}|z~|~{{|}~~z}|u~z~~}~~~||w{|{}||}x|~}}{{}{z~~~}}~}{|}~~|~}|}|{~}y{|}~xy~~y|y{x||}x}~y||~{~{~|}z~}~|~~z~~{{~~}z}~w{||{}~{~~}||{{{~{~|{}|~~~|{{~|{}y{~}}}}w~z}~y||~|~}}zy}~||}|}~z}{~}~~~~}~||}~~~}|~}|{y~z~~{~~}}~}||~}|~}}}~|{{x{}|}}}z~~{{~z|}{~~}~{z}~}|~w}}}}|}z|~|{~~w~|~|~}}|}~~}}}~~~~|~~~~}~~zz~}y}|}|}}~~~~||}}zy}}{}|||~y{}{}}}~~|xx}z~~{|z~~}~~~}~}{{~{}~~~}~}~||~|}{}||{z}x}{|z}}z}z~}|~x}|z}~~x~z~}~|~{|}}y{~y~~|~y~~|w}~|~z}~~}y~~z~zx||z{}|}}|~~y}|~}{~~}|{~|}~{}{|~||{}|x}~~}~}||}|}{~{y}}z~|{}z{}~}{}|~~{~{}}}}{~}{~}}~z~~~}~}}|}~~|z~~{|}{~~~|{}{{u}||~z|}{||{~|}~}|{|z~{~{}z}~|~~z||uzz{~{yy{y}y~w}u~y|~}}{{{~vz{{~x~}x{|~y}|y{|}x~}|~w~|}{}~~}|u}ux{|}~}y|z~}~z~{~~|}|xy|z|}z}}{}~~|{~{|{{||}~~}~||~||~~|{z{~}}zy|}{|~y~|y~~~y}~}|y{}||}}}w~~{~~}|z{~}~}}{|}{y}~}}~~{|}~~z}{}{~{u~}}}y~{}{|z}}}z}~~{|~|~wyx}|~}~~~|~|||~|}~{|y~w{|||~x|}{~|}~}}}~}{{~~}~~~}}{}z~~~~~~}~|~~~}~}|}}~~~z~|}{}y}~|~}{x|x~{z~|y~|{{~~}|~{}~|}{~z{~|{z}}||}}y|||~}x~z|~}~}}}}~~x~~~~}}|{|~~~~~}y}}}|}{}{~~}|}}|{|}{z~||~||}}zz~||{z~z}~}~|}|~}{{~y~~}w}|}}|}}z~|xy~}||}}{|{}}|}~~|~z~{~~~~|}{z{|{~{}~~}~~zz~}{yyx{xy||{}|~~y}~zxy}~{}|z}yxzz}y~y{~~}|}~}}||~z~{~x}{wx}z}|{|}{z}}{~}~}~~}}}z{z|zx~~{z{y|~}wz~y{|{~{~~~{~~~{}||~v|{{~~|~~z}z}|}|~z~~|}z}~||}z|{vx|~|}|~z{~{}}|}~~~z~~~~~{{}{||{|{~|x}~|~{{x}z~~~}y|~}~xy}}}}}~~y}w{z|||{}{}~y~xw||}|~{||yy}~~}z~|}}~~||~}~}}}}{~~w}z~}}||~}~~~z|||~~}~~~~{|~}{~~~z}~~}z}}~|~}}zz|{~|}}z}}{|~~~~|~x{~}}}~w{z}|{}{{~~}z}}}}{zz|z~zzz~wy~~}}||~|{{~~y~}{~|z}{~{}{y~~~yz{}||{}~|||}~~}}~y}}{}|~~~{~}|}~~tz}~{~{}~}}~~{~{|{z}{~}zx}}|~~~y|}|{}}}y{}~z}z{v}}z}}}}z}||{~~~~}~~~y|w}{|}||~}{}}~|~}{z{~wz||~y}~}~}}x{~~}}|}~~x{|{|~~|~~}z}y|{}z~~z}~||~}}~}|~z}~}}{z~~}z}}}}}}}~z||}~|~vz}~~{||x}{{~}||~~z||~}z}|}{u}~xv}}{}}y|}|~y~~y~|x~{~y{|w}~}~~|~}~~{|}x}|~x|~}||{}yz|||}|xx~}{x~}~}{~||w}y}{|{|~y{|~y~}|~}}}}{~}~}z~}y}{z}{|}{{}y}}|}}~}}~|~}~{|~|}{||~~{~y}~|}|{||~||}}}{{|||{|~|~{{{||~y~~z}}}}{z{~{|~x}~~~}}|}~}~}|||}||}zz|~s}zw|~}|}{zz~~~~~~}{~{|}}{~v{~z|~~|y|~|}|~}{}}}x|}~~|~~zz}|~{y}vy~|~{|~~y~~~|~wy}~}}}|}}~}}w}{{}}|z|y{z~}~||}|}{|~~||{~}~~y}{|~|{}}||yz}}~{~~}~~}|}y||}~}{~~||}{y||~}|}}{}{~x|~||{{z}|}y||}~}zy}~z~{|}}}}||~}{z~y}~{~~{{~~w}~}}z~}}{|~~~~}z}{}~}~|}}}~}}}|zz}~||||||}{}{}~|||~|}~~z}}z~|x}|z~}}}}~x{||zz~}~zz~~}{|||~}{z|~~}}|~z|~}~}}~}~|}~||}|~~y~~{~|}{y~}x~~~}|}{y~~||~~{}|{|~{|}xy}|}}}}||||~~|~~}|}}y}}}~}~~{~z~{|{|}}}}~{|}{z|~~}z~{}{|}~~}}~x}~{~{{}}~~|y~}}~zx}~z}~|~v|||~||~~}~}}}yw{||~y|y~~~}~|}z|~z~z{}{~{}~}w}x|~}x{}{}~|}}z~~zz{{}{~y{}}|}zw~}~}}|||}~y{}{{}z|}}}|{~|~|}|~|~}}{~~}{~~}}~{|||~{}|~~{z~|{~|}||z~}z}z~~~{|~}|}}{}}~}w~}{~~|y~{}~~{{{~~~{y|}}}~~zzx}}|{|~{}||y|~~{|~z}}}|~~~{{~y~}{{|{|~|~|{~{}}~}|z}{~zz~}~}|y~~x~~|}{~z|}}|~v~{|~}~w}{}|~y{|}~|}{~~}z{~}}~|}v~}~y|~}|{~~{~~|{~|}~|~{|}|{{}~{~{|z}~~~~~~{y|~~{~~}~{~~|{}~}}}z|vz~~~w}z~|~x~~~|{~}~|~}z~{~~~}yx}z}~}~~~~{~}x}~|~}}~z|~~~z}z}z}~|~{x}|~|~~}}}~x}{~z|~||~|~{~|~yx~{|~z~z{}z~~|~~~zv{y}~}yt}z{ys}uzyx{~~{~zv|w|y~x}zx}qwyx~}x||{x}}ty~|tzx|}x{z}~yz~}}z~|}y~~z~~q{~u}{{v{|}{~~}}|~{~}w}yyw~z~{}}~}{x||}}zz~|~~}|}}}wy{}|y~~}|}{zxzzzz~~~}}zx}{||~x~y~|yz~x}~}}~|x|~x}z|t~~~}~{z|v|x|wyy~yx|}|}y~z~{z{{|~|y{}}z{{y~z{~}y}{|}|}~}~{|z{~~}|}z}}~||z}~|~{~|~~y~x|~~{{{s|~~}}~{~}~~||~||~~z~~{}{{}z||~}|~}}~}~|}~{{}}|~|{{|{z{}|~~~}{~z~|~}~y~~}~}w}~|}y|~|~|}{|||~z}z~~~~x}~||wzz}~{|}}x~~wy|{||z~{|~y}}z|}|{~{w}{||}|~x~~{|w~w}}s|||}||z}z}y}z}}~z}x}{~~}{{|y~~wx}|z~~{yzy~y}x}~~vz}~{||~|~z}}~~{}~}~}y|v~||}|}}}~~~z|{}{}|}|~z{w{~~}~~z~}{}|~~~y|~}}||~}|~z}}~z}{x{x|}~|~{z~~{~}}}}|}}}}|~{{}~~}~~~z|~|~~}z{~|~}z~~~x}~~{{}}z{{|}~}}}~~~{}}x|}y{z}|}}{|||~|{||~~|{~~|{~{|}}~~~|{{~~|}}{z}~}z{}z~~~|{z~~}{{~y}y}|~}z~|~}u~~~||~~~{{}}}|~~}}}z~~~}xy{{}w|~z{~|{|~|~{{{|~~}|}}}w~||z~}{~x~~{z}|}}||z|}~}~{{{}{~|}}z{zx~|{~{{}}}}|}y~}|~z}~|y~|~}{}}}|~{~~~}{}v|z||~~~|}|y~~~~~z{|}v}~yz|~{~{}}|~z}{}}|~z}~x|z~~|~zw~|}}}}~|||~~|z~}}~~{{x}||{~zy~}}}w~~}}~}~||{|~z}{|v|}~~}}~~}~}~zx}}}||z{~|}}z{||z~~||}~zz|~~}|x{}x{|}|}}~}~~}}}z{}zz~yy}|z}|z~{~}|}|}~q}~~w{|}|~}{yz{~|{|z|}|}}~{{}||}{{r}~||zz{|~{y~}z{z}~||~|}}{{~~~~xx}||~z{~}~{~|~~||{}~~{}{~~}z}~w~||z{|~~}{|{~~}|~}|}yz{~zz~x{}~xz~~~~~z~||{}z~}yz~z~}|}}{}~~|z||~}|z}}~}|~|~y~}}~~}z~|~v|y}}}}~~}{|y~z}z~}}}{~y~|}y~}y~~|x~|zw{}||xy~~}{{~|}}}{}}w}}|}{|}|~}~z|yx|~}{|yx~}}yy{y}~z~}~}~{z}}}y{~}}y~|{}z{}}z{{}z~|~~~xzyy~}{~|~xx~y~~|}x}}~|}x}}~}z{~~{z}}}|{}~{z{{|z|~~}}~~|x~{~{~~}}{~}~}}|~~}{~}~|~~}~x~{~~}}}|{}}~y~y}y~~~~|}~|z~|||}~{~~}{}~~{~~~~}||{~~}}}~~}~~|}~||~y|{{|~}}}y|z||w|}w}~|z|~z|}|}}||~|z~~y}}~{|~|}~~{|}}||~{z|}|{}zy}y~|}|~z}{w|~~|{~{|~~~~z~x||~|~}|}}}}|}}}}}{}{{}}{}y~{|}~||~~|~}|}||~}}}~~~~|~}~|||}}~~}{~xz|~}y}}~~|{~z{z|~{}|}~~y}~{~y~{zw~{y|{x}|~||~|{}x~{xz}}||x}}}||~z}}|{~{|y{z~||}v}{}~~u|{~{|}~~|{}~|{}{{|z|~~~{}}}~~~{y~|}|~~}x}}~|~}~z~y~{~{z~x~~~~{|~{{|~~z|~~}}|{~{~}~z}~||~|~~y~x}}{}xww|z|zy}ywyz~~~}z|}}{||~yw~{|~{}~~}~}~~{}~}~y{zy~||x}}z{}~~||~z}||y~}}x~{{}}~|{|{}}}}}~~|w~}{|{v}|y~|{~~yxzw~w|}yzv}}~{{|v}w~||||}}~}|z}y~zs~v~}|x|z{~y{|}}~~}w{}~~|v}}}|z~{z}~{|}y}}}w}z|||z||}~~}~}{~~||}~|~{~~~~~z}~{|}{~z~~z~~~~}~}|~{~~z}~~~}|~~~}~|~z}}{|~}~{{z~z~|}}|~z|~~~~w|w|}}~}{~}~}}~}~~zz~~|||{~~|}{~}}}}~}{}~||~~{x}|~~~}~~|~~}|{}{~|{{~w~~}}|~|}~~{y~{}{~}{y~}|}|{|~~~{y}zzz|}~|~}{}y~~y||}{}||z~{y}|{}~~|~|~|~}{~|}{~y~y~}}}~{|{|}}|}{|{}}{z~}~{~~}}|~~}~}~y||y}}{|~yx{|||}~|{{{~|}z|~~|y|}~}}|~~}}||}{}{|||{~||~~}~~~~~}}|~|x|z~}{y|{x|||~|}}{~}}y{~x~z~~~w~y}~yy}|}y~x}~~~|}y~~{~}|~z~vy|z}~|z~}}~}{~y||}~}}~}y~}y~}~~}~}x}{|{}|~~~v~{}z}}{|~}{z~{}y}}}x~}{{|}|||}||~~}~x}~}~}}||~yzz|{}~~||}|{|x}|z~}~~}~~~~}~~~}|}}}~}|z{{}~}~|z~z{~|~{~~~}z}~zz}}}~|~|zz{{}}{|~~~~y|~{y}z~{|xz~x|x~}x|{|{{z~}{||}~}~|y{t~y~||~}z~|~}~|~|}z~{|}~~}{z}~y}~|}~{}}||}~~}}zx~~{||~}||}}{~}{|v~|~|{~~}~}~}{}~}x~}}~{}z~~~~|||~~~}~}~~y{}z}|z~z~}|~}|}}~z|{~z~{|}{||}z}n}~~~|}{~}~z{|~~}~}~||y~|~{}{{{}~|zy}}}~}{~|~~}{|{|{~|~~{z||y~~{{|{|{|}wy{~z~vz~~z||~~~~|~a~~~~{~~~}{}~~~~}~s}|}}r~|}~~y{}~|~|~x}~}{~}~~~wy}~~~v}~}~}~}}}vy~z}z|}~||~~|}~}|~~|~z{{~~w{~}z~{|{~~y{~z~}~zzy}xs~}~}}|}}|}{z|}}|y}|~|}|z}}~~|}||~~}}~w||{}{v~x~}||y|v}||}{z~y~|}~}}|~{~~{|~}~y|zz~}{~~|~}~~~}~{yzz}|yx}~zz~}x}|}|~}{xy|}{|~~}y~}|||}{~~~}~~~~~|{~|~|}}|}|~}zw~~}v~~~~}|~~~}}~{{}}|}~|}~|zx~|}|~}}|{|{|}~||~~|}|{{||~||~|yz~}{}z~~|}}~}~}|{zv}}~|}~}~~~}}}{v{~xy{}}}||~}||~}~z|}}~x~~}{~||y}{|z{~zz|{|}}~}~|||{{~z{~w{|~{wyx{|~{y{~}z{|y}}~{}z~{~|z}}~~z{|z}|}y||~}||~~y~||{~~zy}}~}zzz}~{}~}~||}}|}{~{~}y}||v}~||~~~}|}}y||z}{~v}{~{~}~{y}|x{}~}}~|{}y}}}|x}{~|~|||z|~|~~}}~~vw~z|~~}y{~}}|z}}{|{z}~{~}}yz~|{~|~~{~}~||}}{|~~}}w||z}z{}{~|w{y}v{~}|{w}~z~}~~~~{|~x~zwzx~}~~~~||{|~}|~|~~~|z~}y|}}~~}|x{}}~}{z~y{|~|{{~}{}y{z~}}}w}}z|~}}|}}}}}~|~}~{}{~||~yy~{}}~t{~z~w|}|x{z}~{|}~|{~~~yy~{}{|~{~~{}{{~|~{}~z}}{~~~w~~}y||y~}|}||~~||}~xw~}{|z}{x|{~}~|{zzxyu~zy{||}}v|x~~}v{{}}zzz~zz~}w{~}x~|}r}}zz|yyz~~~|}}~|~~~{{~{t||~~{~}}{{~~r~w}|}z}}}~~}}}~{~}~~}}~|~~}~}~~zy~}~~~|x}t~}~{}||}s}z|~|~}u|}~~w~||~~}~||~}}}}u|||~}|~|}~~~~~~y|}{|tp}|{|y}~|x~|~}y|~x}~~~{|{~{~wy~|}~}~{|~{~}w~}}|~y}}}wx}|~x}{~~{v{~~~~|z}~|~|~}}}~{}||w~z{~|z~~}~x{|}~|~y~}}~{~{y~yyr~~}z}~~~}}~{~}z||x}~~}|}~~~{}~~|{|{~{w~||}}}~~~{z{}~~|~}z~}|{~~w{}|}|}}}~~}~}{}u~ww~{|~}}x{}{|~w}}~{~|~~~}|yy~}}|{{~z{x{~}y}z~z{}}zx~}{u}}x~|}~~~|}z}~}}~|yyy||}}~{{~}||z|~~~{~}{}xx}{}}|}~}~|{zyyzz~{~{z~}x~}}}}}y}|zz}|w|~}z|~}w|}{|{~{|}~r}{{||~z}y|~}}||}~{~|}~{~{{~z}}~y~{z}~}z~|~~zy|z~}}yz}~{~x{~|}|{|}~~z}~{~~z{|{{||{z~{y~}~|xw|}}|~yzz|~}w~{{}{|{{~~~~}~~}z{~}{~~}x}}~}z}~{zz}~}||s}}~}|~~~z{~}~~~x|{||}~~~}x~|~y~{z}}|~||{x}~~~}~~}}{}}~}~~~}|z~}}{}y~{z~~y{{yz~~~y~~}~||~~x}z{}{~|~}z}}}~|}}|~~|}}}~~~~}|}~~~}~~~~|{~~~~}z~~~~~{z~z{}|y||}|~{~}z|z}~|~|z~zy}{{~}|{}}~|{|~}|}}~|||~x}zzy}|}}||~~~}|}~||~~}~}y||}uy}|zx}}~~z~y|~~v}{~}}|~z|~~~|}w}|}|{}~|}z{~~z~}~}~{}~~x}z{|wy~}|z|y}~}}}}|{|}~|~~~~zz}}~~z}|}~yy~{{{}}{wx{~~{{|}}x|z}~w~||y~{}{}}}~}~}|zzy}~~~y}}}~}~|}~{~~~}y|~|}}~}|~||~}|}}}}{|||z~}z~|~~~~~t}~|z}|~~|~~x|}~~~}~}|~||}~}~~{~~|}|z|~{~{||{w~~~~|{|~||{~}~x|z~||}~x{}|~~{|~{u~}~}~}~}|~y}v~x~~|u}~v~x}~~~~~y~tz~~|~u{|w{{}{{}~~~uz}z~xu{|{y~~~x}}~|{~y~}z~|z~|~~}~~{|{~|{~~}}~{{~z~}||~}{}z}|{~x|}~||~{~~}|y~yz~~|}~}|}{zz~}|}{|~}|}}|z|{{~|{{~{|}||}~|~}|}v}}{~}~~z|z|{}yw~~y|}~|~{zz}}{~}||}~|}}~|~}~{{w~{}~~|vz~~|~}}||}}y~||~~zz{~{|{y|}||zw}}y|~z~y~}{~~xz~~||}|}~}~yzzw}yw~|~~}~}{~|~}x~|{|{~}}~z{~~|y}~|{~|}~}zy{z}z~}~~~|~}||~}z~{|~~~z~{|~}|~{~|{~}}}{~}|yz~~y~~~~{|w~|~}~|}||{|{w}~}~}}{}|z~~~|~~}|z~}}yx~}{}{zw~}|~~~~}zz~x{~~}~y}}}~{~~~~}||~}~}~y~~~y{~}~w}y|~{|{z|~{|z||~|}y{yz{~z{x{~}}y}}}xzz||{~~~{~|~~}~z~{~{z}~~~~}}zzxz|||z|~}~~{}}~~y|}}}~~{{|z~{z{z}{|}~~~|~|~z}~}}{}z}}~{}~}|~y}~~}~{u~y}~~~w}~~}{w~}~xx|}}{|{|{~~}}}~^~z}~~y|}{|}}zn}}~|~}~}}y~~M~|~~~|zx|}{z}~}~y~z}}}}|w|}{z}z~{}~~}}}}~}~}wzx}~|~}|x~~~|}}~}}y|~{~|z~||z}~||~||~}}}~wz~}}}~~~y{x~}|~~zyx|{}~|~}~~~~~}|~}}|{|~~}z}{~|~~}}~}~~}~{{~}~|~~}~}|~z}}~{}}{~z{y{|zz~}~~~{{~{|}~{|~{~}}}~}{y~|}}{}~{{~~}}}{{~}~}{y}~z{y|||~}{~|~v}}}~~{}}~~|~{}|~|~zv}|}~|~~|}~y~xx~y{|{{~}z~}x~~{~}~~}z~}{~|{~~~|}z|~~{~{~}y}x|~z{{w|}|z}{~x~}|~~}|~~w~|{yy}}{z{||}}y{~{zyx{|~{|{z|}~~}~}~}z|{}{~yz}~z{w|~~|~z|~{}z~~zz}~w~||}~zv~~y{z{qz~z~}z}yy{~{~}~|~|~~ww|}|v~}}}~~|z~~}}{}z~{}}~~}~~}|~~|~~~~}}~}z}}~~}{x~||~{z~{~~}|}~~w}}z}~~}~~y{~{z}~~~|yzv~||}y~{zvz~|{|}|}{~{}~{{~{}~||zy|~~}{{~~|~}~}y{{||{~~|~y|}|}}|}}~~}|~~z|{z}|}|{y|~~|x}|}}{z~|~||z}}~z}}~}{}{~||~z}~|}~~z}}~}}}{}{{|z|~{|}~z}}|}~~~}}}|{||y}x|}s~}|{~}}}z}zx|}~}|{}~{}}~}~|~~~}yw}~yy}}{}~|}{~z|~|~~||}~z~~~~}w|~~~~|||~{~x{}{||x}~{{}}{~~{{z|}~|z~|~{}|{}{~z}~|~~~z{}|~{}~~z~}|~|~}w}}}~}|~{~z{{}xz~|w~}zxy~{{{u}}y~z}|v|ty}~}~z~|{}y~|xz~~~z|{}|xv}{}{}~y|}{~|z{x}{}{~|}{}|}x{||{~}{}{y}||}|yv~~~z~}y|}{z~|{}|x~z{{~}y~}{}~}|||{{~z{{||zw}z{~}{{~}z~||}~}zx}~||~|z{~~v~~||z}}w~~}~}{~w~}zx~|}z~}||}|~~{}}~}~x~}z~y}~}||~}z{}{yz~y{~{{~x}{~~z}~~}~||{~{~}|~}x|}~|{}{~|y}~z~~~{~}}~zz{{}{~{z~~~~~{~}}|{~yzyz||~~|x~|~~|}z|~~~}~}~~}{||}|y}y|}~z|}}}z}x~|~y~}~xz}~}~z~~~{}z}~}x|z~}}wzz}~z~|{}}~}~}z{x|{y}{~{{w|~{y~{~~~~z|~y~}~~}~~x}}}{~}}}~wy|zz{y~~u}x؞{𐙏r}z{~{v~~{~{}~x|y||~~~~}}}~{}x~}|~y}~}z{~}}z{}{||}z{y~~}~y{{||~{||{{}z|~~||y}~~~{{{~{||v~{}~xz}|z~~~|}~~|~}}|}}~x|~}~~|~z{~~|}z~}|}|}}~~|~|{}|~~|}~~y|~~|}{x}{~~x{|z~{zz|v~~{~~y~z}z{{~|}~|zz~y{{}~}}{z}~}||w~~}{{~~|}|{~{}|~~{~~~|~}}~zx~z~~~}~}}}~~~~}~}~}|~~}|x~z}~|~|z}}|~{|}}}~|y~y}}}~}{~~z}}|~}v|{|}z{~zyz}}yz{|xzywy|~~}~{yy{~~}zx}w~~|z{v{~|~y~~}yz}}|}~|~x{}y}}{|wz{{x}}zx|}~~~||zzz~z~v}~x}~{}~|~{|}}~y|}~~~~~}~~}}~|}~~}||~z}||}w~|x|~~~~vz{y}}~~|~|yz}x~~|~}~|}zz~}~~z~}~||~y}~~z||y{|}}~}yy}y}~}}|y~vyy{~~yy~~~|{~~x~}||~~|}~~}}~}}}}||}}~~|z|~}{|}|~}{y|zyz~}~{}{{~}y|~~~}}~}|||{}vw~|}y|{~}|{{~}x}~|{{~~|{|~zz||~~|}{{}~y}~~}xy~{~}|}~}}}|{||{~y||~~}}|~~{}}~}~}|~~z~|~y~~y}{~x|}|}~y~|~z~|}|~x}w|{~~||}~|~|z~~~~}}~||z}vy~~z|}zx~}wyxz}{|~~~z~|~}~}}||}}z{}{y~~||u}~zy~~z{{~~}}y||{}}~~z}~x|}~~|{~}~|}{~~~||~v~}}~}z{{|}|~|~y|~~z{~~~z}z}w}{|~{y{~}x}~|y||~~}}w}}~x}}~}}||}~|~}|~~}~z~}}|z}}}~~{z}~{~~z|}~y{{~~~}|~{|}}{{~z~~|}|~u}~|z~~zz}{}}}}~}}z~{{}~~~}|~}~~z{|}~~|~}}x~~~~~~~|~~}{}{y|}|~~xz~~~}yz~{|{z~||}}{~}||~~}~{}|}|}|~}}}|xz~}}z~||}yz{}~}}}}~~{||~~|{}|~|}{x|}{}{~~~}~{}~|}}z}|}{y|{~~}{{}~|~~}}}~}|~}y}~}~~z|}~yw|~~|}~{|~}}~|}}~z}~|~x}{|~{}~}~z|}}~~~||}|}z~z||~~~|}~|z~~~~~~~{|}{}{~~xy||~||}{}}~|~|{zy}wvyz~{{~~|}~y||~v~z}{~~|{||{~~v~}}}~~}~z~}~z}}}{~}|}v}|}|||{}|}}~|~~{|~}~|~zx~}~t|{|~~}|~y{||~~}~}~~~}}~}}x~|}}z~|v|~|~{}|}}|{}|w~x}|||}|~}||~~z~~y}}z{||~~~}|z}{~~|~|}z}}~~~|~{}y~}}yx|}z}|~~}|}}|{~~{{|~~|||~|}|~|{{}z~~}}|~y~z}{{~~~}~|w}~}~}~y}~~|}{}{~{~}{}}}~~}x~{~y|{~~}~|}}}~}~~~{||z}~{||v~~}}{~|{||||~~~~~|~|w|y~|~|yx}|y|~}~|~~{}~~|}y}}|}~vz}}||}}yz~}}}||}wz~|~~||~~}||z}|}z||}||~}|{|x~~~}}{{~}|x||y~~~}|}}z}~zu~~~{}~y|ty}}}z|}{~||{~w}~}z~|{|}u}}~{{}~}|}}yw}~||~~|~|q~}zz{~}|{|~~}~}}y~zvv}~z||~~}}~|~}~w~{|z}|{~}|~~{}~|{}{}|}}||~z}}}{~~}z{~}}|~||}}}}}|{{~}}}~~{}}|~{||{}}{xy|}{}z{||zx}|z|x~|||}||{~~~~{w}~}|z||~{~||}~}|zy~{w||{{~}|}~}|z~~~}{~}|~|||r{}~~{{|~}tx}~}{}}z}~~|x~~~~z~~|v~}|}}|x|~~}xz~x{{}{}{~}zyu~}~x}~}~}}~{z{|{|~x|||~|~y~}~~~~}~{u{~}}}y~~}|y}w~{~~||yz~~z~~{{}}rzx{{}|~yz}~zzy~~~x~}x}~z~}~}~~{{~||z~}y}~|~~{~z~}}|~}~{y~~~~{|{~~}}~}~{~{}~}xx{||~~~z{}{~}ywzxt|~|}{z~|~~~x~y{|y}||~|y|}}|y~}}v~|zz}~||~~}~~~|v}x~~~w}}~x~|~~|}~y}}|x|wwz~y~zx~|}~|}}z{x~{}{|~~{~|}}x~|~{}{|z|~|{{~~|~~~|zy~{y}zx}|y~~|~{~x~~zz{~{~|~~}z~}~}{|}}y~~~~}~||v~|y}~}}~|}z~~}}|}~{}|}~~}|~|zz{z||}}{~{~}|||}|~x}|~{}}}|z~}}~~}x{~~{}~zyw}}||}{}y{{~~{y|}}~{|v~y~z}~vy{y}}z{{{}}||}}x|wz~}|~~z}|}~}{|y|z~~~{{~~x~y~}~}}}~|}~||w|}}}~}~{~}}{|y|}y|~|~{yxzy{}|{~{zw|~}~z~~~}}|~u~~{|}~}y~{x|}|}}~|~|~|}~z~}}|}x{~~z|}|}}|~|}~~~}~|{{z}~}|{z}|{}~|{z}}z||~|~}|{w}y~{~y~|~z}|{{~~}}{z~}|~{}y{y||~{~}{~{xz~}z~~~~}||}z|{|}~||}|z~|~~~~{{|zz||{|~}z~{~}~~~~{}}||}|~z}}~}{~}}|xx}|yz~}}~z~~}}}y~}~x|~{{}{~~||}~}~|~~}~}|~~}~|z|{y}z~~~y{}|y{z{}}{~~|~}{~||}z{}~}x}}{|~}~|~|~|~y|{|~~~{y|{||}~~~~~{y~}}~{|}}{~~|~~|zz~~~}z{~}{yz{x{~~}}~}}~}||~|~w~|}~~}}~}~~}{{}v}~z{}~~y}}v~|~}{w{~|~zuw|~~}|~~~}}~|}}y|y}}|ux~|y~}z|u~y{~{}||}~y}|~~x~~{y}|y}z~~||{}{|{|z}||{}~~{}||y~x~~~~~y|~}|{}v~~~|}z~~|}}|z~z|~~~~}|~|y}{~~}}}}~y~z|y~}|}}y}}~x~~~{|y~~w}{y{x|}|~|}~{|~z|{~~~~~~}||~}|v{~{w~u~{zz|}y{||x}{}}~}z~~~}|y{}{{|}~}x~~}u|}x{||}}~}|||}}|}}|~~{}{||~{}~|~~~}}~z~||s|xv~}}z~}y{~~{~~{z~}~{}~~||}~}~}~~~zx~x~|{{|}~z|yy|{~~}z|{{|}~~{~}~||xzyz}z{}}~~}~v~}|||~}~y}|~~~}~|~}~}|z~}||~~zy~{}}~{}}}}~}{w{~{~|~|zw~~{{|~~~||||~|||y||y}~|~~||}}~||~{}~~z|}z~y~|y~y|}yxz|{|{}~}}|zw{}yz|~|{{}~{}}~}}}}|{x{}~|~|~w}z|}~~{~~{}{z|~{{~~|}z||}~~z}xz||||}}|~yz}~~|~}}}z{|}~~}}{~y~}}~~y{~~}~xyzz}~~}~}}xx|}{}~{y|yw|}z~}z}z}}{y{~~||}w}z~y}}}|}}~}|z{w}y{{|}{||||}{}}}}y~~~|~}~~|~|z{~|~{~}{zy}}~}~{~~~|~~||~{~}}~~|~~~|}~|~{}}}~y~y|~{{~}~}}}z{z~|~~}}{|{|~~}|}y}|}~}|}|~~}{~w|x~~}}~{{}||}ux|~~~}|~~~y~yz|zy}|{z{{~x~}~|z}{}y|~~x}}}~}y{{}}~~w{|{}}~}~~|y||{y|~~~|~|~{{{~{z|x}}~x~|~xz~~~~{||w||z|~z}{y||}}~~|}~|~}{}z|}{{~{z~v~}z}~~~||~}}{|}~~y}x~}w}~{~y|}~~}}{z}~{}{~z~}}~~{~}z~}z}~~~{{}{~~|{}|~}||y}|~|y~~}}~}yz~~~~{|}y{|z~z~|yz~z~~{}{|z}y~~}}}~{~}}{|{{z~~y||~z}}{~v|}}~~z}x~{yz{~~~{}{}|~{}|}}~{~~~~x|}}||~|y}~}}~~}z~~~|~|~y~~}{|}||{z{}{{~}~|{{}}}}~~{}~~{y~|~~{~~~~}|y}~}|~~}{{}~z~}}}}z{}|z~|}}|~|}|~~}~|~yw}x}~z{}{~~|y~}}z{}}}{}}|~y~~}~~zy~~~|{}{}~z|||~||}|z~|z~{v|{|}{zyz}}~|}|~|}{~||~{~~}}{~||}~}|~{z}x|||~}}v{px}z}}|x}{~}{~~|~}z{{~x||}~y~~|}}~}|z}w}~~}|}y}{|{}{~{|~s{~~v|}|}~z}y{|||}{|zv}~}z~}~}{{z~~~y|y}sv{|}~~~}~||}||~z|}z|~|}z~y}{xzytz~{~|}~|~y{y~~z~}|{|}}{{w}~z}}~~~~}|~}~zx}~z~|~}y{|~|{}}~{zv~~xz|||~{}{{~|{}ywu|z||y~|~}~~|}w~yxz|}|~|~|~}}|~~|}z{v|}z}|{|{z~~}~~}~}~~}{z}{~~~~|xz|}~~}}~~~yz~~{~~z~~~{~~{}|z~}~|~~~yxy|zx}}}~{{~||y{{~}}}~}|}~}~~{||zz~}z}|~}~z}{}}|}{~z}y}z}{~|~~~|~|||~}z}~{}z~z||z{}~|x{y{||~z~~}{{y}~~y}~|y~}}~{{{}~}{|~|~}~{|~}x|}}~~{~}~~~|{{}{|}~||~z~}|}~~}~y~~z{}}}~~}|~~|~|{}}~||}z}z~~{~{{}{}{~z{y~}x{}~}x~~}}~|}}~yzx~z{y~||||~}~~|~{{}z}~{y~}~|~{~}||~|{{~|}~z~~|}z}}~|}|z|z{{~{zz}y}}w~~{v|}|~}}|{}}z||}{}|~~~y~}|}~}}{|}~v{~~|w~|z}~|}x~~|{~|{}{~|z}z|y~}}z~~|z}y~y|}}xv}y~}}w~z|}|yy|~z}x{}~{|}{}}~}~{{}|}{|w~~}||~}|~}y~}{||t{~}{y~}z~{|zy|x|}{|~|}~}|yz|{|||~|~{z|r{~|~{|}|{}{ypyp}w|~|zz}x}v~}}~||~|zq~~}|}~~lzw{}y|}}{|{u{|}}|v{yt~y}z|}}y~~kz}|vxzz||||w|{|~}~{~}~{w|z~~yz{{~zx{}{}~{||~z}~}{|}{|x}}|p|y|~|}~zw}}{z}{{|{|r}}pz~z}~m}y|~z|~~|~{}z}zz}}}||zzz}y|{~}{}~}~r{z{x|vz~|{{{|z|}y~z|}~x{~~||}||||}{|}{y|~}{}{~x~}~|~x}}{~x||}~{|v}}{z~|~z}|z}|}~|~}z}|z|~}~}y~~||~{~~zz{~y|~~x}~y}{~|~~|~{||{}vz~~|}}~~~|}}{{|~|}~}}z}||~{~}~||~x}~}~~{~|~}{}{{}}~}z{|}}|y}{}}~~}{~~~~{~}}||{}~}~z|~|~}}~y}y~y|}{|{~{{|}{~u~}||}{~}}}|{~|}{}}{~~~||~|~~}|~~}~|}~}~~w}{||~~z~z~}{}u~|}z}}}v}|z~~{||~~}}~|}y||}|z}{~|~~~|}}wx~~~x|z~|z}z}|~zy{~|v}{~|}{{}~|~}|~|}~~|vz|}~~}{{zx}|}~~}~yx~|z~}{}}}z~{}|}~{w~~||~||~{}yy|~~w{|z}~xy}{~}{|}}z~}|~}y{}}}~}|{|x{z}}~~}s}~}{~|~|}}||}}|~w~~}x}}|~~~}~z}{~y|}}{{|z~y~||z|~}x{}{{~}~~}}||}}z{~v|~|}~~~~|wz~x~}z{}}y||}|}|~~}|zx}}~~|}{~|~{~~}|{}{}|||{||~~||~|}|}|}~}z|}}|}~|~}z|z}}x{{z}z~~|~~}}~|~}}}y~~}|~~~~~{y~{yy~x}y{~|~}{}|{w}|~{z~z~z|}~z|}{|x~w}~|{}}}|{~|}~z~z~|}|z|~}|~}|z{}~yz~}~~z{~~~{}}}||~z}}z~z|~y}z|}||y}~}}~|}~}x{|x~~~|~}~}}}yx||}|~~|}|z|~~}~}~{~}~|}||~~~}v~}|~~{~}~|~|{||}{yy}~}~}~z~|~}{y~~~}}}}|||~{x}|{}~x||z|{|z|~{}|{}~~zw}xz}|~|{z|~{}y~~~x~|}{~z|~~z|{|}xz~}}y|||~y}{}~|}x~{}|~~}|~{|zz|}}z}}y}}~w|~{~z}y~|~{|y}{{zz|y~~}}}}y~z}{~}}u{z|}~~~}|~{}|~||~{z}|~~|~yz~~{~~|~}}{}y}}~}~y~|}|~~{|}~~}~}z~}|~z{|y~~~}~z}}w~~~}~|~w}z|}}{{~~|{|~}}~z~~~z}}|~~}~~{{~~~||}~}}}|{{~~|~~~y~}|~|z{~}}vzy~~|{}}}|}{~}~~}~zx|z}z}}~~}~x}}{~~}~~~x{|yv{~z}}}}|~{}z{{~{~{}|z|||}{~~|{|||{w~{{~}~}{}zx~~~y|||y|~~~~|}}~~{z~{}|y~}|~|~||~{}{~}|~~{}}}|~~~~}|~~~z{z~~|~z~y{}}~~z}{~z|~{~}|}}~}~~}}{}|}~~~}~{~|{}}~yuz~~|z|wz|}~~~z}z|{z~{}{}}{z{~}y}}~t~{}{~}~}{~~~x}}}}}{~}~}|~|}|}~}}~}x}}}}}~~~|yz~z~~v}~~|~}}{}}|||~~~}{}y~|~}|~}~{}}~|~{z}~|uu}{}~|~}}{|~~z}}}}}~{{~{|~~|~vy}zw{|}||zz||}}}~zz~}|vw~}{|}|y|}{}z|{}~u}{{~~|}{~{}{}~zy|~}|}~~||zux}|~z}y{{z~||z~|~|}|~}~x~}{x}z~}}}~zx}}~}~~}zz{x|x}~}{{~}~}~|~{wz}xt}~}|~~}z~~{|~~}}{||}{|~||}~x~{{{~}}~y|y}{}~x~}}y~z~||}~yy~z~}|}|~w}||}~t|~~~z~{~y{}}}~{yz||~~{~{|z}{yzx~|~{~v~{}{}~yy}~|}}|~|{|{~{|}}}~|}}~}}x~y~~z||~||x|x~}|~|z}}~z|{~}{}}}zxu~||~}y}~w|z{||}~z|}}|}}y}u|~}|~|~{|}{||vy}{~~}}|~~}}z}~}}z}{~~}||||}~{yv||~z|~|}~}||{z|~~}{z~~}{~{{|}|}~~}~y|z{|y~}~~|}{}}|xz~~z{~}x~~y}z~x~|~~}|{}z~|~||x~{}}{~~~}~{zw}}}|}{x{~z{~~~~z}}zz}~}~||~|x||z}{|~}}}|}}~~}}|z{{~~|~yyzx~}~{w|~{y{|}}x~~z~{{|~}y~~z~xw~|}{|~|~~~~}~~xz~~~~}~{|}~}}|z{}}~}|x||~~yz||{z}}|y|{|}}}}|y|~{}~~~||z~}|z|z~|~~|~~y~~|~~~~}}~z~~}}~}~~}{~}{{||~~|}}}z~~|}{~~|}}|{}~~~~}~~}~z~}}|~~~}|}~z|~}|~|||~z~}|}}~~{z}~~{}}{~||{}~~~~~~~|z|~}|}y~~||~||~}~~~z~}|~|x}z{{{~y|~zx~y~x{}~{~wz}{z|}~|}}z}z~{{~}}~~~z~~~y|}~z||~}y~~x}{}{y}}z}{|{}}~~~{}~||{}~~z~~w~}{z}~~}|~}}}}yy~{}~||{}}{z~{~{~~|~{}}~|{~~|~|~~|}~~y}}}y~|{{|}~{{}~{}~z|w~{}~~~|~|~|~{}{|}~}~~~~z{}~z}|~y}x}|~|~}}{z}|}}{sz~{|~}}~|~~~}~~y~~|w{}}w}~zx~{}}|z~|{||}~tv|~|||~~||~}|~{~}y}}~~}{{{z~z}z~z~z~x~}|~}~y{~}}z}~}~{~{}~{|}}|}}y~|||}}|||~}z|}|~~x}zy~|}z~~y}}~~{|}}}w}~~||}~|z{}}z~}{}|y|{~|~~~}y~||~~}{}{|y|~|}{~}~{{zwz{||x{~}~}~yx{~{|~z{|zy|}y}|}~z{v|}~}y||~~~x~y}~y~}|~}yv~~|y}{~y|~{|{|}y~{{y}}{|~y~{|~{zy~|yyy~yy{~|}wv}}}~}wz~|{z~~~}{}~}}{}}||~}}}{~~~~}}~~~x|~{~~}|~{}{|~{|z~{z~~~~}z~z}}xz||~x|}z~{~z~|~{~{{z}~}z~}}~y}~{}|z}zz}u}}}~}~~yxy}|||{z}|zzy}}~~~}{}|~{}}~~~yy{}}~~~~~~~}~{}}|}}~~~}~~}|||}|}{||}~~~|~|||x~}x}~w~|{~~|}~~~~v~|}~|x~}|}y||~}x}zz|x}{u}~{~~}|z}|{y~}{~~~~~y~~}}~{~yz{|z}xz}{}}~z~}|~|{yz||}~}}~~~|}~y~~}{x}}zx~|~z|~~}|}~{z~~{~|}|{~z~|~~~~{}}z|}~y|{|~|~}|x{}}}}~|~z{}}|}~}x|}}}}}|}{|z|~|~|~}{~~~|z|{}~{~~{~|x}}{~~|~{}||}|}~{~}{~y~}z~z}}}|~}}}|{~~{||~~||{|~z~|~|zzz}|y~|}~}~}~~{|z}~~~}{~~~y|z|~|}{y~}||}}~|zx}}~~}}{~|{~~~~zyz~||~{~|z|{|}z|}zu}}yz~{~~z{|}}z~|{{~|}}~x{}}}~~|y}z}|{||~~~~~z~{~~~{v|}~|}~~|z|}~|y|z~~~~||sx~~~~y~~||~|{~~~~|~}~}}}}~~}}{~~|z~||}}~{~~}}x{~|}{~{{~z~|}|}z|{}z{}~~|{~|~{|~|}}{}{z~{{|y}z}}~|~}~~~|~{~x{|~~||~}{~{~}}|}}z{}~}|~|}|~{~|~~|y{~{{~y~}}||y}~~}y}~||}|}}~}}y{~|~}z~zz}~~}}~~}y}zvz||}{{w~~|x~~|}}{~|~}{~{{||}}~z{{~}}}{~}}}~{v||~}}|z|{~~}~}}}t||~|~||}}{|~y|}{|y~||{|||~v}|w~{}|~{~}}~}}{}{|~~|}~{}y~}}|{z}~x}}|~~|}}y~}{||~z||}z|}~}|}{z}}}z|~||}}||}}~~}{~y}|z~||~~{}z~{}y|~y~|{yx{{}~~~~zz||~~|~}~{}z~}|y~|}}x|||}}}~{||~|}{z}~~~~z|}~|}|y~{}z{}zzx}~}~~|y~}yz~|z{~}y{}}}~}~z~{|}}}z{|}|~zx~}|}|~|~~~~~zw|}~|~|~~zzz}z{z~}zz~|||}|~}~~}{~~|~}~~~y}zy|}~x|{|~~~{~}}~w}x{|}}}}|~~~z|~}u|}~|~|{|z~{|}}~~{|y|}|{}}|yy~wy~|}|{|y{~|~}y{y~}|~}}z~}~}y}}}~|}z|}z{yy}{}|~~~}}{|~w~~~~~{}|~{}}}~~x~~~}z}~{{z~~|y~~~~y~}~}~|}y~{~~y~|y~~z|{}{y}|~{{{~{~|y}{~}~|y~}}}}}|~z~}{|{{|~~~~{}~~}~~}~}zz{~}~~||}}z~}z}}{~}}~x|}y{}}}y~~~zz~~zz~y|z~~x~}~~x|xx~|}}z~~z~{~{}{z~~{}~||~~~~}{y{y}{}}~y}|zz{~~{~~|~|}}|~|~}|{yzw~|}~~|~{}}~||x~~y~~{z{}x{}~}}~~zyxv~{}~}|~}|~yz}x}|z{}|z}~}y{~~}}}|}{}y~{}}|z~}}}yz}{~~~~v}xz~w}~~}~~~~|~|~|}~}~|x||{|}}}~|~~}}~}}uz~y~}}{|{{{~~}}~}x|x}}~{|}~~~|}}z}z}x~~~}~}~|~~}}{~|}|x~~{|z~}}z{~|{~|}~{}~}zwz~}~}~y~|{}y|~~{v|}|y|~{y{|z}z~z~{~~{|}}~~{}}|~y~}}~}}~x||~~y{}|}}}}~{|{{{~{w~~}|}~~~}~~{}}~}}x}~~|{|z{~~}~}}~}}|x}}{~}}~|~y~~~}}}}}~|~~~|}v~~}z~{{}~|{|}~{|}~||~~|{{|~y~~~{}~~~z{|~|}~~{}~~}}}}~|~~~~}zz~~|z|{~~|~~}{~~~~~z~~{|||}~}x}z|w{}~}}~~|~~y~}x||}}|yz}z~z{}{}~|}{|s}x~~~{vz|yz~{{x{yz}~y{zx}~~t{|~~|z}}}~~z|xz~|}~|yt}|}~}~~}{v{~}y}~{}{~}}|~|{~w~{|}}z~|z~{~~|zzzz~|{|}y~~|~~z||}}{~}~~}~{|xz}{|~{}{~~}|}|w{yz}z{}~~~~z{}yx{~~~~z~{}}}~}y~{{|~~}}|~}{~zx~|~||zy}~{~{~~y}~||}||~}}~z{{{|{}~|~~||{}zy|}z}~~||~}|}}}}~}{x|~~~{~}{}~~~}zz}}{{~|~~w~|y~~{~~}}z|~~zy||~~}}~||{~~}z}{~||}~|~~}}v~~~|x||~~}~~}{z~~z{}|z{~~}}}|}z~y}|y|}||}}}|}{|{{{z~~}{{~x}}}{{}w~~x~{~}z|{z{w~|~{|~|~z~~}y~}}}~~|~|~y~~~~~~}~z|}}{}||}y|z}|}|}~y{}}x}||y~y}~|y~~|~x~~wwxy}~|{y{|~~}~{z|y|}z~~|{{yyy}~}|~}}||~v~}~|z~|{y||~|||y}x~}|y}y|~{{{u~y~}}{|||~~~{yy{~}|~|~~||z|~~~}wp~~}y{|~||w}{~z~{{{}}~~}~~{|~}x}~||~z~{x|~{}}}{}~}{|}~~z~z~~~~{yz}}}~~|~}|~{{}~{|{}~||z}~}}z}}y~~z~}|}|||z}{|{{~yy|}z~z|}}~}~~~}}~x}{|~}{|{|~}}~y{}}z}~|zy}~~|~~}x}||w||}}||~}z{{|}~~y|{~}~~||}xx{{~~{{wv~}}|z|{~}y{|~~|}z~{||~|z||}z|~|x}{|z{|}w~~~}}{zz{z}~~||}|{z~~z}x~z|~{}~|~{{y{{}x{~yx|zz}u{~}z}{|~{z|~z~yy~~z|y|}|~{~{|}}~~}{|}}~x}~{~~~|y~~~}}|zz}}~~}~}~|{{~~~zx}~}yz~{{z|}~}{~~}~~z|~z}~}}}~||}}||w||~~~|y|~~y{|}}|v}}{z}}~|{}}}{z|}|}}~~~z}~}}{~yw~}|~|~}{~}~|}~}}~~|{|{|~|~~||}}}|}{}~~~xz~{}y~}|~|y~}}}~}w~~~~||}~z}~{||{}z~}{y}z~x||~~}{~}x|}~~z|~}y{||~|}|}z~|~}~}}}}||~z~~~|{~}}~{x}||yw~||~x~~}~}{z}{{}|~~~z~~x}|~~w}~y}~}~yx{z~~y~{z{}|zt{}}{x~z|}~|~~}z~{~~|~x}~~~oy{}}}{}~{{~z|y{~y}y~}{{}|}~~~{{}y~~}y}}~z~}|w}|~|{}}|~~{{}}~~||z}y{{~}}}~~|{~{~~~~|}~~~}~|~}~{z{|z{y}~{|x{}y~}}z}|}}{}~}~}z}{y|}y|{{}}|}{||z|}|~}{{}y~}|~||}~|}}~~~{{}}y|~{~~}{~~~}|~{z}{}~}~~~~~|{{}z~}~|}}z}}z}y|||z{x{~~x~|z}|xz~{|{~|||}wz||}{{}~{{}}}z}y}~|}~}zz~}{~}z~y{~}~y|~|}}~|}~y{~~~z~y{|||yx{~}{|{|~}~{{{}{~y~}|{~}|{~}}|{~~|}yxx{}|}|~}~|{}~}}{}~y{|{|{~~}}|~{}|}~~~}yz}z~}~~~|}x|}}|~z~}z~{{}~~y|}~~|x{}xy}}}~~|}|{|{|~~x}z}{y~||~~~z}z|}}~{}~}}~x{}}~{~~~y~~x~}}}{{}}|z}}~~z~|~z~y|z~}~}}~x}z|}w~z|{|z~|~}}x~~~~|}}{|~~~}{|}z{}~}uy|{~}~{{~~|y||z~}|~q||~}~~||}~~~~|}|y}||zzz}{y|}|}z{~}z}}|{|w|{{v}~}wyxyx{}{~}zy{x{xz~~}|{||}wz~|~}~{~}}}~w{w~{|~}~{~~{~v}}z|~{}{~|{|{~~|{x}~~}}{~}~z~|}y|wytz~~yz{~}}}|~|{|~|w|~}~{|y~|||z{y~|vzy~{{|z|~{~|z~yx}w~{}y~y~z~|v|z{}~wx~~wy~||~||zyy{w}~|z~}{z}|~}|z{~~z~{}}{{||zz~{|}w}|}}}|~z|}y}~{z~|~x~~}}y{{y{}||}}{|{z~}|}|}}~~~|~{y~w{|~{z{z~}~x|}|~~}}~~~~}x{~z~}{x}{y~~|}}~x~|}}~|}}w|y{{|}||}}~}~w~z{}~y~{~|{{~{|u{||z~|~}|zz~~~}}|~x~w{~~~{z~{{~|}}~~~~{{}}{z~}||~|}x~}~{yzz~}~{~~}~~z~|}~|z}y~~|}z~~yz}~}~}}~w|}y}}}}~z~}~~}~x}{{}}~}~~~z~}}{{}|||~|z||}z~~~z~x}}}}w|}z}~y~z~{}{~|~y}~}}|{}|z|}~||~||xy~~|}{~~~~~~}~x|y|z{}~{{~||~}}~yy||}~z|{}}}zz||~}~|}v~|}~~{{}x~}|}}}|~w{{}~z}~~~~{{}}|~~~~~~}{~~{~~{||{~z~{z|}}~}~{}||~~~xz}~}~{~}~~{}~~}}~}}~{|~}}~|y|~y~|~}~y~}{}}}}z|}|~}{~z~~{z}|{~|{~~}z}|}~}|y|}|~}{||zz}x}|~~~z~~~~wyt~~|||z~~|}|x|~{~~{~|~{~}w~y~~{{y}}z~{~~z{}~~~y}z~{{{|~{w{}}~||}{}|~z{{{y|yz}~z~y~|}}{|~{y}}|~y~~~{~}z~{|~}{|}|~~{z|~~~{~~~~}}}~}}{}|{|~}|z}}~~|{~~~~~}}~~|z}}~x~}}~z}}~}z~~~|}~||y~~~~~{~|~}~}z~~|||}{~~}}||z~|~}~||~~~v{}}}yz~~}}{}}|{|{~}~}~}~|}|}|}}y}}}|}|}|}z}}~{~~~|}~~~}||}}~}}~|x~}}}{{|x}}{w||}}}z~w||~v}|zz~w~}||}~~~}{~~~}~~y~u|~~}|~~~~xy{}}~w~}|{}{}z|}|~~{xz~~}~{|}z~{}~y{}~|z|~|~{{~~{~~x|}x~{}zz}~z~y}w}~|~}~}{~~}zz~}}}~~|{}zy~w~}z~zz}~{v|~~|~{|{}}~{||~}}~~~|~|}|}}~|}~~||}}~}}~zy}~||~}y}~~z|~|}~}|~y~}}~|~~{~}~zw}{~~}}}|~y{~z}~|~xzxx~}z|~}{yxx{~}~w~~w|{|}tyt}|s||~~c|}z~{~vw{}~~}q{~y}|}|}||}tn~~yz}}}||}~~~|{|~~}~}~z~}~~~~{~~|}~w~|{~|~y~~}|y}||}~z~~z~|x~y~}||z~~}~|}{|y~|~~~~~~z|{|}|}{}y|y}y|~}~{|~}|}}|}~}|zxx}{{}xx~t~||}z}}{w}~~{|z}{}~}u~~~}||~}}}}|z~~}~|~~~{~x|{w{|z|z|}}||~{}z~y{~}|z||{~y~}}{~~~y}}|z|}}~~~{}}}~y~~{}w|~|~}z{u|}z}~{~||~|{z}|~y~{{}{y}{}~}}~~y}~{||z~}}zy||z|z||{}}||~~}y{|~}x{}z}}|~}{|}}zzx}}|~}|~~~|z|~y~|}~}~|}z~}}}z~}}t|}}}|{}zzw}{~~}}z~z|}}|{{|y~~{z{~}{y{~|~~}|{w}|{|}z}~}}~|~|{|~}|}}}}}~}{z~~|}{zv{}~~}~~{~~~|}|~x|{v{{~|}{|y~}{~x~wx~|{|z{|}~~~}~~~}|~}yy|~|z{}|~~w|~{{}~~}~z}x|y~|{}|}{}|~{}v|}~u~~{~~}}{}|x~|{~~z~~~~}}{w}z~~~|}{}{}~~}~~}~xy~|~}~z|~}~}}z{}{|~~}{xs|z}|xxz|zy~}|}~}~{}~{{}}~}~~zzz||y}x|{~x}~{~|{|{}~|}|~|z}|~|z|x{~~~}|~y|}|{}y|}|{|}|~y~{}}}x}|{}}~~~~|~~~{~~~}~}}}}~}}~z}{~|~z}z{}y|~}{|{~~|~z~~~|~|{~y|z|~}}||~~~{~|}~z~}~~~}}}}~~~~}{|z~~|}z~||y|{~~}~|z||yz{|{{z~}{|~z~}z{}x}{w}}x~{y{~y{{{~~|~{x~|~||~~y}~}}}}||z{xz|z{}~{}}z}{|~~{{}z~|vxw}}}|}z|~~z}~}{~|{|~z~}}y|~}z}w{x~z{}|}}~||z}}y|~|~{z|{~y~|{~~x~x}y~~{|}~~}|}~}~}~|{~~~u|}}z~|~~{{{~|~{|~|||w~~}}~~}||{}~}}}~}||}{}}~}}}{~y~z~v~}}~~|}|~}~}}|x|~}}{}yz}}}}}|x{|~yz~{{|{~}}}~~~}~~|~z~~|}||||y{~}}y~y~}}z|z~~~|~}|z{}~~z}|{{~~~~~|{~~{{|~|{{~|~}|}y}{{}|}|}}}~||}y}y{|z|}|}|{|~|||z}~~z||~|}~x~}{~|~{~~}||}~}}}|~{}~~|~|~}~}~~~~{}|}}~~|||}~~~}}{}~{}}~~}}||~~~}||~~}|~z}}}zz}}z}~~~~x~|y|||}}z}x~|~~}~}|||~}~{~~||{{|t}|||~z|zzz{{|~|}~~zzz|||~~~|z}y||}z~~}~~z~}|{~}{~|}}|~}~|~~x~|z~{{~|~~~|{~{|}||}}}~zz}~z|||}z}~|~~}~|~}|~y|}~{|y|||}|y}{}}|~~|~~{~}|~{|~}{}|~z~~|~~vz}~~}~~|~~{}}{}}{z|z~z||}}|}~{w}}||~z|~|~|~}}}}~~}}|}|}~{}}~|~}~~}|}w|z|}|~~{}|~~~}z~~}~~|}|~~{~}}~~}}~}~||~}~}||~|z}~~~~~}}{~{w{~|~}}y~~}}~{}||}~~}~~y~~{{~z~~}}~||||}~}~||}~}}~|x~|{~{}|}}}~z}}}~}xz}y{x|{}||~}}|}~{|~|zx}z}{|~z~~}}~}||}|~v}zy|{}~}||z}{~~{}yy}|y}y{yv{||}{{}|{{}~}~~{|~}y{~|}{|xz~{}{}~{|~}{}}~~~x||x}~y~|~~z|~~|~}~}}{~~|}y~||}~xyzz{}}{~y{{~|~{z}y~~~|{z|~||y|}~~~|{~|{}|~x~}{{z}~~}~y~|z|~}~}||~}|~~z~x~~~}}~~~zwz~|~~~{||}~}}w|~}~~||~~~}|~}|z{~~|}~{}~}~}~x|~y{~}~}y|~z|~x}||z}~y{}}~}||~|~}}z||zxw{~{~~~~}|{y}|}~}}}~}||~~|{|~~|~|~y~~z}}x}{y}z|~||||{~y|~}}}|~{~~~z{~{~~{}w}~y}{z}~{}~}{|}{~||~y}~}~}|z}w||z~~}}{|~yx~~~}|z~~~|~~~}~}|~}|z~}~}w|{y}y~}}{}}~|{~}|{{~z~~|y}~}|{}}~|}zz{~x|y}|z}~~~|~|~}z~y{|v}{~{~}{~|u|~|~~~{~|}zzy}|~}~}}}}v}y|~}}}}|}~|{}}{|zzzw}~~~y{~~}|}|}|zu}|v~}~~}}z~||~~~}}}~~||||y||{z~~}}~z{}~~|~yz{{~~}}~|~|}}z~z}{~~{|~y}~|z||z{~}|}|z|}~~{}~~~~~~~~~x}|~{~}{~}}|zz}zz~|{~~z~}~}}}~}|}~||~~}~y~|wzz~~|{|z~}}z~}~~~~}|{}z}}|~~~~~}}x|~~~~~y{t|y||{}}z|w}{{|}|zw~}|~~|~}~~{w|~~~zy{z}~}~yz|~z||wwz}|~}zz}}{{{~y{zy}|}~}{z|}~~{|{|~{||}w{~z{yy~{{}~y{~~|z|}~~{|{~|~}~|~~~}|~~}|z|{~}{~~|{}}w~~~x{~~}}}~~|y|{}|}z}~~y|}}~yy{|z}~}~{}|~~~}~|}|}|}z~{}{~}}}{}{|~|z}zz~|}~|}}}~y{zyy~{~{~}}}w}}}x}}~{}}|{{|}|~w|z~y}w~|vt|{|z}z{|~|}||z{}}~y~|z{}zy~z|~~~zv{z{{{z|~~~y}z{|xz{{{}{~w}}}z~}wy{z{|~}zz||}}|{}~~|}~z~}|}y~~}{{{xv~}|w{{}|{{{z}}x~{z}}||~}~~|z||~|{{}{~||z{|y}zyyy~~z}}}}z|~}|}|yy{||}~}~}|~{p~y{{z}y|}y}|}~|}~~~~}{||y}}|}}y~~}~zz}y}w|{{~~|}x}}~xx|~x|~}}~~z~}~~~|y~~zz{}z~{|z|{{~}}}{|~x{}~}||}xy{y~}~~}}~~}|{~}~~|~|y}~~z|}|}~{{}}~~}|z||{~~}}{x|~y~~~|}~~}~|y}}~z~~}|}}~w|~x|{~|{~z~~}}}~~~{}}~}}|}|}~~|}}|}}~zx~}x}~|z~~|}{}|~}}~~|~z|}~~~{}~}~~}~{z~}|{~~~{||}~}~|~{{|~y~yz{}~~|yx~~{~z{|}y~~~w~z~|~|~x}~}~|~~|}{z~{||{z}{}}~||{}{}}|z{z||}~}y}}~z~}}{}|}~|}z|}}}~|{~}~}{~{~|}~}}{~~}}{~|}~|y~}|}~y}~t{~~~~|~}|x~}}|{~}~||}~~~y|~{}|~~~|}}~~~|}|~~~{}zx{}|~}{~~~}~~}~y||}}z~}~{y}x||~}~{z{z~~}~|~~~}|~|{y}~~{{~{}|{~{}~{~}~~|x|}~~~~~{}~~~}}}{~~~||{}~|{|~~}~~}}~{~}{y{~}}{}xz{~~||}z|{}z~}{}~{}~{|{}~|~zyx}}|}~}x{w|}}}}}|y{}~{|xz{zz{~zx|~zy{~~|~~}z|{x{|~zwy~~~{{x~z~~~z|{z{|~~~}}~}|~|~~w{{yz~~~{|y~~|}}~}~~}}}~~~}|~}{y~{~xz~~{|}~|}~~yzyy}|~z}}y~{{~z|}~||}}||~~~{~~{~{z|~}|y||}{}}zy}}~~{{|~}~~~}|{}}}~~~|}|~~~{z}~|}}~}~{|~||}~{~|~|~~|{|z}x{z||}}{|~}~{y~}~~z||~|~|~y~{~{|~|}~zz~~{{|}~|~xy{z|zz~}|~|}w}~}~~{}}y~|~y~|}||}~}~|x|z}|~}~|zx~z{}~}}~z~}}}|~}}{~~~}x~}~}{}{y~~z}|x|{}z{}}}{~v}zz|~}~{|~|}|~xy{~~}~}~|}y}y~~}}|}z~}{~z~~~}}w|}|}~{~~~~z}}~~}~}y~||}|~}}}y{y~{|}|~}||~|z|~}|z~~}|}}}|z~}|~{|z~{}~{z{x~z}}z}~~}||||x~}|~~zy|~~y~|~||yz}}}~~~}}~{}~|~|||~~|~}}}~x}{{|~~{|}{w~}~yz~zzz||~|~}|~zz~w|}yw||}~~~}||||}|}y{|}~~~}}}y{}}~||~~x~z}{}~}~~}}~|~{~z{{}}~~y~}}{x~x{{}{~}}|x}~||}}}~z{~||~~~y}|||{{}}~}z{~~}}z~}}}}y}}}}{}v|}}z|}~}~~z}~|x}|}}~~~~~}}||z~|tz~z~|{|~z{}}~~}}z}~~~~|w{~{|}{}|}}}~}~{~~~}zz||{|}{~~}||{~~~~~~~x}z~{}~~~|}|}{~}}y}~||~~}~{}z~}z~~}}}}~~|{}~x{}|~x}{~}x{}|~w|~|z}}}}zxz{}}}}}}|{|{z~|~|{~y~|~}}w|}~}~{{}}~z~}{||z~{}~|z}||~{~{~~~z}~{}~~|}y{}z}x~z~z~}|{z{|z~~|}}~|}y}z}{{{x~~}|~~z~}~|~}~}z{~~||}}~{}~x~~}|}{~}~y}|z|~~{}y~{z~|~~|zz~~~~~{||~xv~}z~|{|~}}zz|}|{|{~||}z}y~v{|}{}}x~~}z}y~|y{||}~|~{~y}{~|~{~~y~~~~z~}}{{z~~|z|~~{||z{|~}z}u~~|}~~~{}}~}}{~}~|{|{}~}~}{y|}~}||~~{~|~{~|}|{x|w{|}|~{{{}{}|{}||~~}~|~}~~|}|~~~~~}{|~|}~|{|~~~||~}}~~|}|z|}~}|}|~|~~}||x~~~}}~|}~z}~}{~}~|~|}~}}w}{{|w}~{zy|y~}}|{~||{~~}}}{{|zz}~{~}}~~~}|{y||~|{~~|~}~~|x}||~|}}}}~y~|~~~}}~~~~~~~}~}~~}|}}|~~|{|~}}|}|~~|~}}{~~~}~{~~~{|y~}{|~~}~~}~|{|{~~~{~~}}~}}}{~~|}~~|||}|}~{~}|z}~|~|~{~~}}{{~|}}}}{}z||}z~~}~}}}~{y{}|}~~{z|~}~}}{~y|{||~}}w|z~|~~{z~{z{}~~~}~}~~}zw}}{|}}||~}}{x~~y~{{~~~y{~z{zz~}y{~y{|~}|v}~~}~}|}~~{}~~~z{{|z~~{}z|y~{|x}x|}|{}}{}|}{{~|~|}xz|~|~~{}|}}z~~~}|}~z~~||~~~~|~~~~~{}{|}z~~}~}}y|~~~}~{z~|}~z~z~}x||~{|}yy}~}~}y|}{|{}}~~||~~~}~}|yzz}y}~~}{}z}~~~}|{z~}x{v}~|}~}{~z~|z}~|~|||{}}}zzz~{x~}~}~~x{|{~}~z}}~~z~}|}z{z}z}z~{|~~{}}z}~w}~zz||~~}|{~~|~{y{|}~|~{}}~|}~~|{~y||||~}~{}{{}z~}}~v~||{{{~z{y}}{~|~~w~}{~{~}z}~x|}y~|x{|}z}z{|}y}~{}~}~}{~}{{~~|}}}{~xz~~}}~~~~{z~}}}~~|x||~~}}~|x{~x|{|x|~{}~}~}z}{{~~zzt~|y~|~~}|~~~|{~|{|}xz~x|}|~|}yy{}}y~|{{x{}|}z{z{|}}|~~~~}{{~z{}|}|}z}}}}|{~}{|xx}{}~z|y}~~~|||xz{w{{~~y~{y||x{}}|~||z~~~~}|~}||~|x{~{~~|}z~}y~|z~~~}z}}~~~}|~z|~{~}{|{~~z}~{~}|||~z||~}~}}|}~x~~{~|}{}{~z|{{}}|}~}~|~~~~}|~}~~}~}~~~~~}}z}}~~~y|{y~}y~|}~}}~}{}}~|{}{w}}}~}||z|}|}~}{z{~{|~}~~}{~}|~{|~y{~~}~{~{|}z~~}yy~~x}~{z|w|~}}|}}~~~z{zz}zz~||~|{~~}}z~x|z}|}{~}z~|~}{~{}~|}~|~~~~z~}}|}}{~}}|~}~}{|y|}}x|||x}|z|~~~v}|~}}~~~z{}{|}}vw~{~|{|{~}x|~~{}}~xx~u~x}~~}||||||}|}z}}|}w~{}{}~}~~x~}y~~y|~|{}{}x~|||~~~}~z~}y}{||~}}}z{}z}}{~}}}~{}z{}|}z~}}}~~~~~~~|{x}|~~|}~|}|w~{{|}}|}z{~~~|||~|}~}}}}~|~}~}~{y}~{~|~}~|}zz~|~{{|}}~|}~~{~z~|~~{~|~{y{|~|~~}~y~}|zz}~}{t}{w}}|{}~|~~~{{~|}z~{~{~zy~~|}{{~}{~~y}}z~}z~}~|}|{z}~|}y||}{|}zy|~{|}|~~~~~~~~~~~|{||~~}x}{xy~~}}{~{~~~~|{{}{~~~~~}yy|{~y{{}|}|}|}~}~z~~|}~~{{~~y|}y|~~~~}~~y~~}z|}~~||~~~~}z}|y{{|}}z~~~|~z}~}~~~}}}~}{v}y}z|~}~|}y~~}~w~~w|{|}yx~}y~z~z}z}~|xut}|~z{}}xl}~w{|y~|~{u~wz|x}g{x}~~x{z|yx~w~~~}z~}~w}|}~~}~~{|{~~|{}~~~{x~~}}~z~|~~|~{}}~~}}~|{~~~|}~~|||}}}|}~{~}~~~||}}~}}|}~~|~||z~{|z~t~{}{}y~y{~~|{~~{zy|{~zx}y~|}{}~}}~y~}}~zz}xz~~|{{o~zz{~~x~|x|y~y}}{}}|~~v|~~~|~|z}w~~~{|}z{}}z~||{}z}||~{z}}{~~~}|v|~}{}}{{}}}~~|~v~{{{{r||wz}~y|~~|~}y|}}||zy}u|r~~y}y}|{y{}}{zw~}~~}~}|wyx}~~}y~}|x{}z|~|~|x~|~z}}~}}~{}}~}}~{~|}~|~~w}~w}||||}}z~}}}~}z}}~~~{|yz}~{|}|{}~z}yy~{{~}~x{zz}}}}|~|{|~{z|~zxx}~~~|~}}x|y~|r|}}xz}}z}v{}x}|}~zxy}zyz~~}}{}}{|~~z{}z}~yz~|~}zzw}||}z~y|~~~~x|}{|{|~|z}}}|~~{~zy|{~v|{||~yy}}~~}~z|wz|z~}z~~~y~|}~zz{~{~~}|}y||~}}y~|{{~}~~}zy}}~~~z{~}{~{v}~}{y~y}{z}~z{|~}|~}~~{y~{~z|~}~{|}~~~y~|}~~yx|~|~{~~~~~|~z~{}{~|}~||}~~~~~~{~|}|}z|z}|{y|~}{}yy|}}}}x}}}~}~|~|~{}|~zz~|~}v~}~}z{y||{~~}~{||~}~}}~z~|{}}|~|{|}~~~~{}|{~~y}~~|}~}}~{~zy~}}{{~{}~|}{}~}}{~{}|||}w{~|~}|}{z}}z~z}~xyy~}~||||{{~~}~}~}~}~~}}~|}}~|~|}}}}x~~~y}~~z|~}{|}~}~~y{}z~~{{}z{~~||}}~}}~~}|~}{}~|}x~}~~}{~w}{}{|}|{}~}|{}|~}|~}~{~{|~|~z}~~~v~}}{~~|{~xu~}w~ypyxzv|v{{|y~~x~v}w|yz{z|vvv~}{~z~~}||z}~|x~~~||}}{|}~~{y|~w~}z~{~~~~|yz}y~|yy{~}}}~~vw~||}y~~|~{|y{w{~|~~}y~}~}~}}~y~z}yz{~}|}}y~||{~}~v}~vy~y}|y|~~z{z~~{~~}}|}~w{{}z~||~|zyz~x|~{~||}~|~~~x~{|{|~{~~}~}~}|}}{}x~}xz~}|}||~y{{~||{}}}{|||}{}}}}|~}w~~|}u~~|{|}}~~~z}}z}{~|||}~~~|~y|~|{~}~~y~x|}z|~|}~|z}~}z}|z|}||}|y}|~{yy}}~}~z~{{~}|}~~{~|}|}x{}t~}~w||~}~}}zz}~~}~~}|}}~~|}~}~|{~~~|z~}z~zz~||~~~~~~|}~~{}}|~||~}xw}~z}|yz}|~~}|}z~}|}}x|~~z{~~|~~{}}|~}{}|}z|~~|~~~}w||~}|{|~|}}|z~~~}~|}}}z||~|~x~|}~|{~~}||~~z~{}{~y}~}{{{}}{z~~}~~z~~w~|~~~|}z}|zz~~~}{{|y|~}x}z~~}~}~z}yv~~|||{|y}z|x}}~w}{y~}~}|~|z~~}}{|}|~}~~|||~y~~y{yy~~}}|~~z~z||{}z}{~}~{{~~{}{~~~y~}|}~~yu~}x}~z~~|~x{~{}~~|~||~zzz|}}|{|v|~~|~{{}|}~~{~}}}~}|~{|}}}}~||~~}{|~||{}||~{}}}}}|}}~yz{~y|}{~~~y}y|{||{{{|~{|~~~~~~~~~}}|~~}||}{}~~}{}|~z{}|}}~{|z~~x|{y|}~}{|}{}}}}~|~|}~~||~~~~}|{~x~|}|~~}~|}{{~}~{}}w|~~~{z~~z~}||||}~}~~~}~|~x|}|}~~y~{}~x~~y~}}y|||~~~|y}|~}~}}~{{~}y{}~s}|z}{{z{}~vz{|x~}|z~}wty~~}z|~}{z~p|x}~}|||{~~|}}y{~}}~}|~{y~~|}{w}}||~~}}~|}z~||~~}z|~~{~}{}~{}~|~x|~{}z}~|{}z~|}|z}~||}~zy|~|y{z||~z~~x|}|}y~}}~x{}~||}~~~z}~}}wz|~|{y~{~||~}|{~z~~x~}}~{~|}|~~z~z{~x}~}||{}y~{}|z{~z~z~z}}}~}~|~}~~y}~w}z|~x~}||}}zy~{z}~{}}}|y}~}}x}~}~~z~xzy{~}~{z{||z|}~}~~~~}}~}||}x||zz~~|{}~}}~z|v~~~}}}x}~|{}{{t}{z{~z~~~~{}}|~y{|}{z~y{|}~~}}}~||x~y~|}|~|~~|~~{}}{{{{~~~}~}|||{}~x~{x|~}~~{}~|~|}~~~~}~|y{yy{}~}~|y}~~|~{|{|~z}{|x|~z{|~|~|}}}~{z}}~|}}~}~y}~~}~|{{x|}}{z|~}{{}~~~~{{}~~~~}|z~zwy}{~x{}|y{}}~~~|~|~x}||y~}~~y}}}~w}~~|y|}zzz~y{|{y}~z~~~~y~}}~~|x~~~}}}{~w}}}}~|~}||{}{|~|y|~}|}}{{}{~~{|y|~~~{|~~}~}{||{|}}{|~{|z|z|z~~{~~}}{~x|yz~{z{~u{z{~}y~|}{~~}~|~}|~~}~~|~y}~~{~|~}{}|~~{{~|~~z}~z~{~}}|~}{}|~~|{zz{~}z}~}~}}}}}|y|~~}{~|~~||y~~~y||~|{}~}~~|~~~yy{u|z||~~~|z{~~~~|}~~}|~{}{}|}}|~||z~~{~{~}{|~x}}y~|~||}~~}~}}}}~}|}|~}{~~{{{~}|zvzz~z||z{|}x~~}}~}~}~|~~{~~}{}|}{z}x|y|}||x}{}~}}{|~~}~}~~~|{yy~{}y|}|~~~|~{}}~z|}}yyz}~}z|~{z|zzw}~}~~{||~z~|}~|}~|}}||~~~}~|~||~{|uy~~~~|z}}}~}|~~~{|}~}{{~{{|z{z~}}z}{}{|{~z|}v~zyz|{||zyz}~}z}{}}~}{|~{{~yz|{xz|~}|}~y}{~z{|~}}zzz}}{|~{~}~{~~|{~~u}|}x~~y|}}|~~|}ux{}{}|~~~}}~~z~}}}y}z}{~~x~||}{~}y~|~}|y~~~~|~~}}|~{~~{||}}{}z}{|yy{~|x||~~}}{|}~~}~~~}~{|}{}z}}||{}y}{x~}~||x}~|z|{{~~y}z~~~~|}|~~z~}y}~}}}{~~|}|x|~}{|~~~~z}~yx|z{~~y}|}z{|}~z}~~~z~~{}|~}x~{|~}|~zwz}~~}~{x}}}{{|~~{}~y{|x|}}{~{|{|z~{~~~~|{w~~|}~|~}~~~}~}|~~~~}~~}~{}~~{x~|}{|~|{~|x|~|~~}|}{}{|z~}}}~~{x}~|z~~}~{}}}|{{|x|}|~y~}~~}{}}}|~y{~}~t|~{~~~~}z{x{~~}~z||}~}{}~~}z~~}~}~|~|~~}{yz}~~}~~|||~|}~}|zy|~~}z~~|}~~}}|~w}}~~{|z{{~|~~{~~}~}|yz}z~~~~~~||~~|}~~}y{{}}|||z~{}|~}{z||{~~|}}}~x~y{|{}{z}}~{~z}}~}|z}~}~zy~}~}~{~~w{|~~{{{~{~|~}z|z~}~~}}z}{|}yz{~z{~}~z}}~~~|~|{zzv~||}z}~w~||~~~}~y~}~z}}|x~}}}~|~{}z}~}{|~~~z}z{}~|x~}~||}|~~}|z||}{}{~w}||y{~||{|||~|~y}~}~z}{||~}|~~{~~|~|z||~{}~~~~}}~|{}z~}~x|~~y{}~~{}v~x}~}~|}|}}}~{|{||x|~|z}}}}}|}|{zz{|~{|}z|{||}~|}|{}z~~}~~~~}~~z~~~}}|{~~~~}|~z}|{~|~y~||~~~}~}~|}}{v~}~~|~~}}~~}w|{~~|~~|~|~{|}}t|}wy}t||~z}}w}y}y}ww}t{|||~{~{~}p{}}}~}~u}~~~uy~}}}~~}{}{}||~~wz{x~yx~{|}|wzww}{|}tvsyx}y}~|}{y}yyv~~{||~|~}{|{~~{~z~z|}~|}~~~||}}~~}~{~~}}~|}{{|z}}}}|||}}}~~z~}x~}~~~~y{~~~{~{}~~}~{}}}~|}}~~|}yz~}~z}{~{y|{~}z|~}z}~~}yyz}~z{z{y~~~~}~~||}~vzyy~~}}zw{zy~}y|y~y|}{y}|}}~|}}~~u~}~{}z~w}~|z}}y~}{|~}~|w}|~z~|v}~}|{}x~}}|~xy|zz}~~wz~{}}}}|}}}|{||~~~{}{}~~~}~w~{{~}~w~}~zz|}zz~}~{~~|}~~}|~~|}w{~~}||~~~~}}{}x|~}}{}}~}|y~|}~|}~~||}~~}w}u~y|}~|}|~{|~z}}}||~{}~}{~zu}}y~|x|}y}}{y~x{z|}~z}|}}u}}}}w}}x~~~t}~zz~}yx{w|r{}{w}}}}wz{|~x}|{~~}y~~y~z}~zz|{}~{{s|~}~wzzzz~}~{wy~x|{z}}{||~~~v~v~}~}}{~{x}{~|z~{~{|x{x~}y~zvz}}}{{ty{~~}}{}w}~z|||~}~y}}}|}zu~z~}~}}}~}|~~~}{}~{{{y~}y~}~z|~~{|y~{~|~~|}~}~~}{~{y{}v~}}~||}{~}||{}x{|~||{~}}z}y~}}yw|~}|}|}||{}{~~}y}}|~xz{{~yz{{||~u~|~}~}{~{~~{{~z~{~}}|~|~~}||{|}{}~}}~|yv|}}|~||}{~~|}|}|}}z}~uz|xxx~}z}{{|}~w~~}~}~~w{}y||z}}}{|~{z}yy~}x|~}~|~x~|z}{~|}|~y~zz|~~~}||{|~}{~~}~~y~||zz~y~w|{|{~y|}|{u~}{}{~}~|~{}|~|v|}}{zv}~~}y~|}~z{}~{||~|z}{{}|}}}~}~}~|~}x}~}}||}}{}}||}~~y}{|w~{|~~x{v{|~~}~{{~~~{~}~y{~{|~{~}~}~z{}|~z}}}{~{~|{}y}{{~}~|}{x{~|x}~|}}~}~x}z||~z|}zy{~{}{~y{ww~{~}z}}{~{}}z}{~{}}}~~|||}|}zx~zx}|wy~{}{~{|~}|}z{}x}|}~x}~~y{}y}z~}v}~y|z|w}~y|~}}xz~x~{}}|~|}|~|}z~}{}~~|}|}~z}~~}}|x}}|}w~}||~~{{{}|{w||{z{}|}}~{}~w~~~|z~x|||~~{w~{~z~z~~|y~~z|{~}|}{}|zz}|{|y~t~}}~~{x|~y~{|}|||w}|x~}~{}|{z~}zx}}{}}~}}}||z{z|t~~{}}~{~~}||~|~~{x{zy{|{}~{~~|||}y{|t||~{}~{~~{|}~~y{|~|}z~}y|~~}}}y|}|~{~|}|~|}~~}~~}|{}{{|~x~{}|x~}~|z|}z}~}x}}}zy|{~z}yx|z}~w{||~}|}|y~}~||~~}~~z~{~x{y{|uy|~}zw{|~}v{~~~{|y{}~~|~}~yy{}}{~}{|~}z}~|~}x|~}x~|}|~~}}w~~~|~x~{~~}|{{|~}{||w~y}~}{~z{}}yz}~|y~~{{|y{z|x}|{}|~}}z~|z~~}~~z}~w~y~|~|y~{|}~|~{}}~}{~zwz}{}zz}~z{~z~x}}~}{zw}{x~|}~{}y~~~|}y~~|~}~{~zu~}~}}~}x~}}}~~}~~}{w{~|~||~|~{~}{{~|}~~|{|z|}{~}||{||}~}~{z||}|}z~}}yzz}}||{}}|z|{||}|}{}~||}~{z~}~}}~{}~|z|z{|yz|~~}~z}~}||~}~~|||}{y}yz|yy~}y}||~~~}||zw|~}~|~~}}{~}}}|~~}}z~|||||y~~{~z|z~~~}}}{~y~{}zz||}|}~~{~zy|{|y}{~y~|~~~}~v|{}|}}|~}y~|}}x{~~{~~~}zy|~}v~~~~}|x|}y}{~~~~|~}~}}}z}~}~w}~}|~}}}z~~{~~{}{z~y}}{|~}~|~~|}|}}}|}}{||}~~}{~}~|}~~~|~z~}z|}{~}~|~~~~}|||x{~~~~}}~}{}z}~}~~|z~}}~|~}|{|~~}}~~}|}}~~}}~{}~~|{}{}~{x}z~}}{||z}|}}z}}~y}{|~~}y~~|z~~zx~~}}}}~~~}{{y}}zx{{|||~|~y}{z{}{x~}}~{}}~|~|~~{z}}~~~|}y{|~||~|}~~|~|||{}~{{|y~y~|x{}|zz|~||{{~|z{}|~~}~~}~~|}}~zz}{|~}|~|}~}|}|y}w}}|}~|}~||x~~}|{|}~~}y|}}z~}~~}}}{}~}|~~y}{}}}{~y~~|~x}}{zw~~}}}~}~~|}|~}~}~~}x~~|z{v{{z}}||z~y}}y}{x}~vw~~{{~{}~}}zt~z||}~|||}{y~}z|~|}}~v}~z}||}}~~y~~}}{y}~~~~}~}{}}}|~~y{|y~|~~}|{}}{}|z{{z~x}~{~|~~}~~{}y}}z|~~{{~y}~x~zxy}|z~y}}{}}y|y{}}~||~{~v{~~yw}{}~}{zyz}}|yy~}|||{z{||~uyz~|~yx|}~~|~|}|}|}~z||{{|}|~y~{w{~~}|~|{z{y|~~~t}|x~~t|}}z~~{|y}|{~~{}}}}z~}~yy{||}|}{zx{|{v}~{{}yz~|}{{{}~}|{|z|y{~}z~|~|~~~|~~}|y||}}zy}~|{y~|~~|}|y~}y|}{}x{|}}~}}~|{}}z|~~|}|~~~~{|~~}~|}{{~}z}|}z}}y}~|}|~}~~}y~}|}}{y}~~~~}~zz~}{{||w}yy|~}|}~}|||y~z~~}{}~{}~~|zyy{{~}|y~~v~}~~{{~~|z|~w{{~||}|y}}~z}}~{}~~z}~|}}}~~|}|}}~zw|{|{~{~z{|||}~}~|z}~{~|~|~|||}|~{|}~~}y{~~zz~~y|~z}~{~}{~~}v~}z}z~~{z|}}{z~{{||~|}{y}~~{{||~|}~~||zy~}}~}~~||zz}{|||}{|w{~x{|{}z~~y}|x~}~}}y}}{|}|~|}z|{}~|x|~y~}}||y}{}}~~{}|z~~}w~z{|}~}}z~|z}{}~}~~||}z}~~}x|{~~}zyz}}~{}~~~w~}{~|z||}|~~~~~x~y~y~|~z|~|~z}{{z}|~|z~|~~z}z|}~z~~zz|xx}yw|~~~{{~}~x|}~~{{}}z~~z}|}|w~z~}~{x}y}|{~}}x||~{~~x~~z~v|}}{z|z}}z~z~~y~}}|zw{~{~~z}w~x}}}~|{x~|~zy~|z{|{}~z~|}y{|y}|y~~}~~~~~}x}}z}}~~x~}~|}|~|}}}{~}~~z{|{yy~|~z}xy{}}}z~~|~~~~|z|~{{y|{{}~}{}x{z|}~z{}|~{z~~{~~~|~wx}~z}~~~{~|}y|y~~~}}|}~~}|}}~{}|}{||~zz}x}~}z~{y}}~}z}{x~}}}}}{~~|}}{~}y}{zzz||{}}}|z~{}y{{}}~}x|}}|~~~~~z}z{z~~|||z}z}y~~x{}~~z{~x{}}~~|~|{}{{y}z}}z~{{~y~}}}}zx{~zz}}y~~||{|}|y}w{}}}}y{{{y~x|}w{~~}}~x}~}}~~|}}{}}{~~~}{|y|{{~~|}~~|||yz{|~{}z~~v~|{y||zz|}}|}~~}|}~z{|}{||{w|z{y}~~z}~}|~~|{}~y}~z~|{|~~~z~~|~~~~z~}}}~~|~||}~~~}~}y~~}~z~{|}~~|{}~}}x~~|~||~{}{|}{~|{~|{x}w~}}z~||{~~z|y}|~wz}~}{{}{~{}}~~}{}|{}}|~}~~}||~}}z}{~~}}~{z}|~{~|}~zw}~}|~v}}~|{~|z}{{{~|y{|}}~~|z~|}{~z|}}z}~~}yy{{}{}~}}}|~~~~||~|~}~}x~}y~|~}~}~|~~zy~y}|~~}{~||~}~}}}}~}~~}}~|x}~~y~xz~{{}~|}|z|{z|y}|}}|{~~~}~{~y{z|{z{u||~~|z~yz~x|{}zx|}}}|}u~{w}}}z~z}{|~}|z|~{}~{ww{|~}w|z}~zy}||x~~z}qyzz|z~|}}z|~|x}|{~wzx~}}~|z}{}{y~|~|~~v}|~||~~zz|}}}~u}||}}~~||t~~{~{xyy|z~}z~z~}|}||}z~|}zzzzz|~{{z|~yz~}~{~y|x}z|~~|z{~x{}}}}~w}~{x}y}z}~~x}zx}~}{~|}}}|}}|x~}z~|z~y|z~~}x|~zz{~|~{}vz|~~}|~}||||~y{}|}||{}~zyx~}~t}|}}~|||{|{}}~{~}~~{}}|{{xy}~~y|x~|}|}~}|~{z}{~{~~~w|}zxy}|}~{|{~}y{y~~}|w}|}{{||x|z{y}||~||~z{zyzyz}zz|~|{~{}}|~}{}}~|{z|~~|{~}}~~|~z}~~yz~~~~~|~~~}~}{~~}z~|{~~{}~{~y{||~}~|~{}{~~~}y|z~}{x~~|~~}z}|z}|}y~}~xx}{|~~~z~zz|}yx|z~z~z~{}}~~~x}w}{|z{z{z{|~{}}~~~||~~~~~~~~v~~~|~}|~~~~|~}~{~{}~|{~~}~z~yy|~~|y~{{~||}|}}}~~z}{yx}{z}x~}~}||z}}|{z~|{y~{}||}}y{}}|y|~}|}~~y|~}z~{|}v}|{~{|x~}||~}}|}~y}~}|~|}w}w~{~z{~x||}{|{{}}~{}~|}~|~~{}~z~xzwz}}z}}}~}~z~{||z|z}t}{v~{~xz~z~||~}y}}|{z~||y||}}~{|~~y|{~}{wz|}}~~z}}~y~~|~y~~~~~jz{}{~~z|z|y}}}{|~|{w}~|{{}~}}|{|{||~z|~~}~~}xx~|}~}~~||}}~z|~}~}}}z~}}~}{}|x~y~z}|||~||w~}x|~v|||{z|v||zzz}z|y~}|w~~~~zz|{~|~z~|z{||}}|~~{~~}z}~~|~|z}~}{|}|}~{~~|}y{|~~y{~~{|~xx}}{}~~{|z}~~{|~||}}}{}~|}}~z~|~}|}|~~|w~|~z|~~||{y~|}{~~}|}~~}~}}}y~}y}~~~}z~z~}}|}|}}{|z~}{y~||zy~~z}v|~}|}w}}|~|{~z~|~~|{{{{y}|}{~}~~{~~}~}|{|~~~~}y}}{|}~}~~~}||~~{~}~~}|}{y~~~~|||~||w~{}}~{~}}|~~~}z||~~z~{|{}|z|{|z~}{~}||}}{{z|~~}}x|~yz}{|~~~~~~~y}||}{}}~{~}}~{}x~}}}|||}}z||}}}}~|z~{||y~z{zz}{|{~~}}x{v}}|y|u||}}|~~}~~{~}~~z~z~z}~~~|{~|z|~|{|~~}~~~~|}{|}}}}}}v|~~~y}|z{{~z|}{}~{}~|~wyw{~|}}}}}~}|~~y~~|}}}}~|}}{{}{~~}}v{z~||~~~zz}}}||~~||~~{|~~~z}~~z~}}~~~}}z}~{}|||~|}|}z}z~~z}|yy~|~y~~~}~~{z{|}}}|z{}~zy{t~|}{{|~y}~}~}}z|~t~}~~{z~v~y|wy{}z{z||~~}z}~{v{y~{~}|{~|u~|}t}z}~{~~{|}}~~~}~{x}~~|~}~~x~}{|{~|{~}~z}~|~z~}{~|}{~}~~|~~y{}~z}|~{~}~}~|~|~{|~zy|~z|~}}}~y~}{}}}~~~|~||}~{}~~{}}~~v}{~}~|}}~~}~{}|~||||~~~}{~}x}~~~}z|v|~~||}~|y~z~~y~}}~~x~}}}~{{{z||z|||~z}~~~}{}}|~|~yz|}||{~~~z}|}}{~}}|z~||zz~}~|{||}}~~~|z~~~z||{~~}~||}|{}}~}|{~~z||{~}}~}|~}~}}{}||~|~~~|x~|~}||~z}z~~{}}~}|z}}~{x|w~~zz~{}x~z|}|}}~~~~}|z{~}|}||||{~|}}}|}}z}{|{~}~~}~|~z~~~|}u~~~~~~zu}~ruy~|{~~oyixkulq|}no}|{}||~|{}{zz}~~x}}~|zz}~~|}~{~}z~}y~~{|~x|x~~{}|~{}}}{}~~}|{z{~}{~~~}z|||}~|~z}~|~y{}~z{|}y{}{}}~|~}}{~~}~x~|||~}~z{|}|y}}}{~|}}}z}{{|~{}}~~|~}~}x}{x~y}{~|}~|~~z}{~|~}|}{{}~y}z||{{}}|~{~{~~xxzy{y{y~{~{{{}~|~z~zy|y~}~}{{x{~}|}~z}~~~z}x||}}~{}}}}~~z{u}}~y~~~}y}z}|{~~~~|y{{|w}~~{}}}~}|}v}}~~}~||}}v~~z}|y}y|x|{}|{~}~y|~~~z||}|~|}}}~||z}|~}y{|~}~y}x}}}}|z}~~~}||~|z}{~~{~~~~|}}{}}~~y~~|~}|||{~}~{}}z~~~}zwz~|}~x}z{~x||}z~z{~y||}}}~}{{y|~{~}}}~||yz{~~~}~}~|~}}~~~|{~~~~~}||||~{~~~y|~|{~~y{}t}~{|~y}~|z~~{zx}|}{~}z||~}~~||}~{{}{y|~||{{}~}~|~x}{y}y~}}~|}|z}}}z|~~~}}~{}~zzz~}}~~zy{}}}x}}|||}||y~}{~{|~~|x|~~~~~||w|zz}{{|~z}xx|~}|}{x~|y}}~v~}~~~~~}w{z~~~~~~~}~zx|}|~y~{{}~~}}~}z~|~~|~~~x}~}~~y|w{}}~~}zz}~}}|~}~x{}}~~~{}|{{~|||~}~~y}~~{~||y~}||z{z{|}z{|w}~~~{~|~|zz~}~}w}{|{}y}z}z}~~}~y{}|~~}}z|xz~~~~{zy~}~{yz~|{z{|~~}{}}y}~}|}~~|z}~~{t|~}z}~|r}xw|}~|}x}||{{|~|}y~|w{v{|}}}~~|}{~|~}z{~|y|||v{|}~}~y|{{xwy|yz}{}~}}~}|z{|~~~~|}~}}{y|z|~~|w~~~~|}}||}}}~~}}z}|||~~zyz~~}}{~~}y~|}}~~|~}z}|~~z~z~}~}~|}|}~|z{}~~|~}y}|{~~}}~}~~|}w~}}}}}|~~~~~~|{~|~|}}~~~}z}|}~{|~}}{~y{}z}}zy~~~}{|z~~}y~{~uyz}{~z}z~}}}|{}z|{zx|y~~~{}{~{z~||y}~~~}|~|x~~~~|zx{z}~~}z~|}{~||}~w}x~~}}~~z~|}}{|zz}z~~{|z~z~z}}}}}~~~|}}}~~~{~~~{}{z~}z~}~|y~~||}~~{}~~}}}~||~~y|x}w{~}v|~z}w~w}}{~~yz~{~|}~|t~~|}~{|}~~}~yz{}~~~{~~{{z|}{~~}}}z~}~|z~~z}~|z~~~{~}|~~}}y~~{}y}z}~{|z{{~~z~~~{~}z}~}|||{}y~|}{~{}x}}~~~~z{~|{z}{z~~|~~~{}}{}~~w~}~z~v~~||}y|~}}||}}x|{|}~||~y|}{~|~|}~}{||}{{}~|}|}~~{}||yyz}}y~|~~~|{~{|}~{{|{zy}{~~x~zwz{|}}{}~~|w{|{~}}zz}y~~z~{~}zz}z~}|}y~~x||}z|{}|}|||||~}{{~w}{}z~~~~}~}}|y|~z~z|{~~}~|}{|w~}||{}{~|}|~y||~{~}~|}|~y~|}{{|}z|w~{~|}~~}{|~z|}z}}{}|}z~~}~~~~}~~|~y}~~|x}}|~{~||~~}z~z~|~|{~z~}|{~~}|zy}}}}~}~~~}}|~~{~~}}}~}||{}~~}}}~~|~~}}~|~~~|}}{|~wy}|{~|~~}|y{{}}}{}~{}~}}~~z|}~~}yz{~{|v~}~~~z}}|{z}~{~~~z{~}{|~}y{x}{|x~}}{~~~~z~}~y~}~u~}|}~|wy~{z~{}~z~~||y}z~|xz}|y~|xz}}||||~}|y}z{|y}y{z{zz}{yz~x}|vq}}w}}{|~{yzyz}|zx{{zvz~~~}}xxz{}~y~~zz}}~}|{}z|~|{}|~x{|~~z}~~z~~~y|}||~|}~x}~}}}~~y{~}|z~}}|~z{}}~|}}}{{y|~w|y~|~|}}~~{~~|~x{}{~~|~|}~|~~}zy~{}~~}{}~|{zx}{zz}}|}{}~~}~}}{~z{~|vy}}~y~~~y}}z|{}|}}{zz||}z~}}|{{|~y|z}~~}~{~{}}z{{}yw~ux~}|x|{~~{{}|vy|}|z}}~y|~{~~||{zz~~~~{~y|~||~}~~}|}x}~}~~}~|||z{~}~||~yy}~}}}{v|{}|}}~~|~}}|}~|z~|{}w~~t|z~yz~~z~|z|}}x|}|~|z}|}~y}|y}~y~|}~zz|}~}~}~{|}z|{~}y~|||~||}|~~~|~~~{~}yz~~{}||v~}~~}}~~z~}x}|y~~}}{}|}~z}}x~{|~x~}zz}|}|y|~{y~zz~|}~~{w|~|yyv}{z}~{|~}}|}}{~y~}~}}}~~~}u|{{zxz~y~yz|zz|~|}{}{~~}|y|yz~|zz|}|||{|~~u{}~~w|~~y~}}{}~{wy}~}y|}~yx|}}~~~y{}|{}y}|}|y~{~w}|||~}~~}}}x}{~~}|~}~{}~}~}}|~~~|~~~|}|}~}y}~{{~}~}}}~~{yyy{}}z|}~~|}~~|}|{}|{}~|yxy~}~}~x}~~|{~}~|~~~~{||~|||}{|t||}~{{}~{|z~~}{~|~{~{}}~}~}zzzyy{~x{~{~}||}{z~y}{|}~~|~||}{}|~}~}zy~}~|~|z~y}~~~{z|}}z||}z}xz}~~~{|{||~|~~~~}x~}~~{}}|}x~~|}|~~~y}}{~~}~~~~|w|~~|~}{}}}|}{}~}|~|{}}~|~{~|w{z}}~}}~}|z|x}}}~~~~||}|~|~~~~|~z}|yz{}~z|{~|}|~}~~z~~~~~}}|}~~~{z~~~x|~{z}y~||y|~{}~z}}~y}|~|}zy{~}~}{{~{y{~}}{}~~z~|{~y}~|z{~}y}~x~|~~~z|x}}~|}~~z}~}~|}z}y~z|~|~yzz~y{||}}x~~~}|~~z|z{}zy|~}}~~}}|{~x|}|w}|~~~}v~}{|~y~~~y|{x~}{|~|~z}~|~{|}~~~z~~}~x~|~v|{}{|z}~w}~|z|}~~~}~x~~~|z{~}x}~~~|~}}|yy|zz|xy~}|}~|{zzy}|z~|~|{z~{w|}z}|{{{~|}|z}y|}~}}}}}|y}~|~}}~~{}~}}~|~{y|}~~~~|~}~~}z}{}}}{|}}|}}}~~||z~~~~}~|~~}~~~~~}~~||z|}}~{|}}}~}}|~~{|{|{~}~|}}}{~x{~}}}z|~||}{z~~~{y}}{|{~||}{~{|}x{}{|z~}~~}}~~yw|~~}~}}x}}~x}|~~}}~~|||~}~}~~~~{x|~|~~}z}}x~}|~{{{~~~x{{|}~z~|~{~|~}~|~z~x~{~~~|}|z||~}~z}|{}~|~~~}~||~|~~~}{yy|y~z}~}~~z~y}}|~}~{}|{|{|y}x||~y}}|}~~~|~|}~|~y~}||~~~}|~~|}|{z}~}{}}}{z~}~}~~~z~z{~x||~}{~||~{}~~zx|zz}~}y}~|{~{|yz|z}~|~}z}|||{{z~{z}y}~~|}|||x|||~|y}|wz|~}{}z}||~}}}}}~~{}{~z|~z}~|w{~~~~}~xy~}|}}}|}}}~|~~~|||~~~}|x~x{{~x|}}y|}}~}|{{}{~~xz|z~t}x~||z|||}{~~z~~~|yx|{|~z}z~|~}}}|{yz||~~|}~||y~|{~|~~|v{}~|~{}}|~x}~~~||~y{~~~|~||~~~~~~}|{~~~~||z~~||{|x~~{~~}}}{~}x~~~u|}~~}~{~|{y~||~~~{}{}z||z{{zy|}}{{|{~z}}|{y|}~}~|}{}|}{~}}|~||}}|}{}}}}~vy{yy}y}v|xxy}~{{}}x~ywyy~}~~{yz||}}~}vz||~yyw~xxw~x~zx{~z~|}u}}wx}|x{|v|~~xzz~|x|}~}x~||~{~}z~{{|w~}~|{|{}|y}~}~u~|}}~{~}z}y~}|z||~}~|||~~}~}~|y~|~{~~~~zx}}v}||~{}}~z|~}{}~}}~~{~|}z~}{}z}}}~|}|~}|~}}|{~{{|z}z|z}|~}}~~|||}|{}vyy|~x~}}{{{|}{~~~|}~~}|}|w}{|{|y~~{zy~{{|}~}z{|||~}~xz|~}~}x|}}}~{{{}~{z|~}w|~}~~|y}z}}{~~|y|z{~}|z~|}y|y~}{|~~}~~|~|z~}{~||yy|y~}~{{{}~~}|~~z}~|~~}{|xz|z~}~}|z|zz~}~w|~~||~|}||~z|~{}|y}~}{y~}~z~|~~~}~}|wyy~~y|}zw~}}}}~~{||y|}|z}~}z}}~{{z}}||z}xx{wxx|~|}}w}y~}x~|~|~}|zyyx{{}|y}v~~z}}zx||~z}~x{~~~|~|~~{{zy}{z~y~}}{~}}|~~}{|}|v~}|{~~}{zw}}~}z~~}~||~{|y~~}~}~}}}}z}|{||z{{{{~~~|~{}{z}z{~~|}}}x~}}}|z}~|}~}}}~|}~||}v}}}~~~~~~{|}}y}~{~|z|}}}|}}}~}~~}{}}{{~{}}}~}{~}|}{~w~~|z{||||z|~~{}y{~}~y}}}~wx}w}~yz||~|~~zt}v~}z{{z~wpy}z|y~|~}u|||}~y}~~}}}y~~~||~}}|~|}~}~||}~~~|~~|||~x}}}~zx|}}{||{~}z~||y~|{}~~~|~|~~{}~~}|~~~}~|}}}~y}{~}~}}|}}~{~zz|}}~z~}||~|~~~~~}}~|~}~}|y{}{|~~||~~~{}y}{}{y{}~{{}x{}~{~}z{~{y{}}z}~}{{}z{}|}~~}~~}{~zz|~~||~|||}v~}|~~}}~~{y~}}{}}|{{{~~}}~~~||}}~yv}|}}|xw|uz}}y|||z{~{zyz}{|}{}~~t{|{~zy|u~||}~~~w~{}~|~~y}{~~~}}|~~yzyyx~~~yxvzz~}}{~}~}|z}~{{}wz}||~{{z~{w||~xy~~~}}~v~zz||~}}~~~{~}|}|}||}{}~}y~}~{su}~|}z~~~~v~~}u|z~}~~{~y~z~|}z}}}z}}y}z}}~}|||w|y~|}{{~|~}|}z|~z~|~{|{||~{}~~|}zz{yv~}y{zz{|~z{~{|xz}}|{}~{y~~|~}{y~|~~xy|xz}~|}z{|z~yw|~}y~z{}|~}{}}z~|||}~}}}|~}}{~z{}z|}|}}}|~}|~{}}{|~{w{{~{~|}||z}{y}|}z~{{~}y}~~~}}y~w{{~|~|}}|}y|~{{}w~||{{~~~{{~|}y~~y}~{|~~~|}~}}}|||~}~{~~z~|}x}~~|}}|z}~~{|~~~}~zz}}|}~}y~|{~}}{|z}{z~~~|}}|{~|w{{~|~y~}y}|~|}v}|{{~z}}{~|}||}z|{~}}|~|}~~~}~|zyyzz|y}y}x||}}y{{~}yy|~zz~}}|{~{~~~{vz}z|~~|~}~}{|z~~~}x{~~{|w~}}{~}}~|}|{||}~~~{~}}yy}}~~}t~~{}{~~~~~|}{~~|~|~~z|~~}~{}y~z|~}~~~{z~}|~~~}~y|~|}|{z{}~}|}~|~{|zz}~}~}}}~{~}|~zz|}~|~|}{~~~}}}~}|}x}~|~}~~|}z}z}~~}~|~}~}|}~|~{~}w~~}~|}~}~}|||}|z~~|~~{|~~~~~z~~~{{~z}}|||}~~~{}}}{{|~|~~{|y}~{}}y}z|z}}~~~~~}~y~}~{|z|{}|~}{|{}z{~~~}}}x||}z~~~~w~~}~{||}}~{x~~{{|}~~~z~{~}~~{~|~{{{z}||}y}{v}}|z}~~~{|}~|~zzz|~|y||~}y~~~~y|~~}~~~~~}~~}z~}~|~|}~}{}}~}~~{~~~}~}z}|}|~~}}}~|~|~|}w~~}~}{~~~~{z~|~~|w}}~~|~~~z}~~v}~~~}}~|}}}}w~|~~}{~~}|w|{}{}}}~|~~|w~~}{~~~|~~}w}}}~~{}||~|~~|}|}}{|}|}~~~|}~~~~~}}}~~}}|~~~x{|~~}|y}|~~~}~v~~|y~~~}}}}{~~}~}}~~}}{}|~}}}~}}}}~|z{|||{z}|~x{z}y|}{y~|y{||y~~~~~~}{{z{}}w{~~~~}}|x}~|{|~}z}}}~|~z~}~|}~zxz}y}y~}xy{~}}v}}~}|}}|}~}~x|}|~}~}~{y~x~~|~|}~~}w}|~}}{~~{xzx}z}x{z|}~}}||~{|}z~|~y}~}~~~}u~|}}~{|{|}~{~~}{}~x~~|{y}{}~}|~qz~}y~~~~z{}|z}}z{}x}|zz{|{y~y{z~{~~~~|~~~x|}~~}}{z~y{|}|}~~}~w~~}|{||z|zx|y}~y|~~z}}~}{}~~}}~|}~{}~{~|~~{{~}|~}z}z}|}}~w~{{~|~}}{}}w}}~~{{~w{||~}~{|~~y}{zzx~~}~~~~|~~|~~~}~~~}}}||~~~~~~}}~|~||}|}~~}}{}{w|{~v||{|~~zz|}~~{wy}r|~{{~}}|}~~~{z|x~{{}||}~{v~t{}|{~~{~}}|~z~}}{}~~~}~||}}}{}~zz}|{}{}~}~|}||z}}~{z}|~}z}~||{}}}~~|z}}}}{~~~~}z~}||~}~~z{~|}}{~}|~|~}}|y||{{}~~}||~}}|~|}~~z~}}~~~z}z~~}|{{}||}~~~~}}|{~z}~~z}~~}{~~~|~~z~|}z~|||~~}~u~}~}y~}{}~|{z}~{~y~~~}x|~{~}{~r{~}}}~~}~||~|~{|x|~}}w|~{z||{y~}{|z}}~{}~~~{~~}~~|}|z~}{}{|}{~{|}}~z{w}{~{~{}{~~v~~z}}~~}~|~{}}~|~~{|x}~~{}~~~||v}}~}~~~}~~}}|~|~~~{}~~}}}|z||||~}|x~~|~~~z~~{~~}}}}|~}~~~~x~{}~~~~~~~~}~~{}}~w}~~}}~|~{}}|}~y}}|~}~}x~|}z~~}~~~{~~}{||~~}~}~}~}||}~~~~~y}~}~|~~||~~~y~|~{{|}~~~|~}}{|~~~~}|~}}~}||~}}~z{{~|}~|}~}z~~~|z~~}~~~|~}~~{~}~||~~~~~~z}~}y}~~}~}~~~}|}}{}}~}}|~~~|{}~||}~~zx{~~}}}y~}}|}}~~~~~~~|~}}}|}~}|}|}~}x|}}~{|}y~~~}~{||~|~~x~~}q~|}~v}~~{}}z}}~{|~zz~}~~}}||~x~~~~~~}{|o}~}y~w{|~}}}{|~|~{|y~{{~}|~~}}z}wy}}~~||z|~}~~{}~||}{z}~v||~~{y|~}~x|x|~}{|}~|z}~~~~~y~|}|||y~}zz}|~|~|~}zz}z~~}|{~~}}z}z}}|~||}~~}~y}|y~~~|~~}}~~y~~~~|{~y}z~}|~|}~}|~y~}}y~||~}~~{|}w|vzz~~~{}y|}}~}}|~~~~}|}~~z|~~{zz~}}}}~z}z~~z~~~~z~}|~z{}{~~~|~~~~|~|~{|{~|}~y~}x~~~~|~|}~~z|~~y|}|zx{}~~}z}||u}{}~}r}{}zz~}~}~}}z||~|~|}z{~|~~~~}~}}}}{||~{}{~|||z{}~}}{~|}~~{~z~~{~~{x|~|~~|}~~~}}~z~~|~}}~}}|{}~{~~||~~|}}~}}|}~}~~}}|}~~~{}|}y~|~~~~|z~}~|~~~}}}~z}}|}y~~}~~~z|~{~~|~~~|y~|~}x}~z~~}~|}xz|~}}~z~~x}~}}||z}{~~~zv~{~||~~{||}|}~~~{~~}~y}|~|}~|}{~~|~||}}~}~}~{~x|~{~}~}||}z~~~~z~~z{{}~}~}|~yz}~~~|{~~~}}~}{~{{~~~}}}}~~}~}~~{|~}~z}y}~~}}~|~z}|~~~}}z|}~}~~~}~~}}}~~~~~~~~~~~~~|}~|y{|~~~|~~}~|}~~~}~{~z}{~z~}~~~u}~}~y{|z~|{}~|~|}|~|}~}}|}{{~}|~}~{~|~v}~~z~~~|~~z}xz~z~~}~}|}~~~{zw}~~|z~~~~||~~~}|}~}}~z~}|{}}|y~~~y|}~}w}|~}z||~{|}|r}~{zzz|}}}}|}}w~x}|}~zz}||{wz~~z}|y~~}{{}~z}~}}~}}~~~~~~{}~|}|~}||~z~}~z~|~}~|~~{~}~~x|}~|z~||~|~~}|~}z}~|}~{}~{~~~{~~|~~}~~z{|~~}~z|~}~~}}~}}|}}}~yt~~~~}~~~}}y~~|||x{~z|y}}||}|~|~}~|~|~}~w|~~}~}~~|}yv}}|{}}~}{{}~}||~}}~z}zz}|z~}}}v}~|~~}~||}}{}{{}z{}~~z}~~~}}|y{~~~~{z~{~|}~|}{~{~~~z~|~x}~z|~|~~{|~{|||}~|~~|}~|}{{~~}|~|zz~}{{~|~y~}|{~{zy~~x~~|~~|}~~|}y}~~{~{~}~~~~~}~}~~~|x}~{|~~~~~}zy|}~{z{~wu}~z||~~~}}|y}}|}}|y}{{{{~||z}}|y|x~}~}|}~~{}~|}}|~}||}~{~}~~x~~|~y~~{|~~}~z~~}|~{~|~}}~|~|}}w|~}}~~|~}z{~|}}~~z~{|~~}~~z}|xz}|~~~~}~}|~~~}|~wz||~}~}}}~z}}yy~}{|{~}|{~~}~|||~||{z~z~}|}}~zy~}}xzx|}~~~~y~~}~|}}~|~}~~~~|~{~}~z}|~|~}}}~|~|x}~~~~~|}}~~{~|{}{|{{~~~~}|}~{~x|~}{~}~~|}~}~~~||~}|{}~z~~}}~}{~|||~~}~|{~}~}~~}}~~|~z~~}~z{}~|~~~~{~~}u~~~~~}}~}|{~|~{{}~~~y}{|~|}|{|~}}}{~~z|}~}|x~~~}}}}z}}|~|~}}|~}{|~~~{z}z~~|}~~~|}}}~|z}}}{~}~~{}}~|}|~{|~{}|}}}}~|x}~~}}{}~~~}|}|~~|}~{~|~}z~zzy~|~~}{~w|~|~~|~~}}~~~~|z|~~~~~~~~~~}}}~~}~}~}~|~|}}{z}~}~~~~~}~{z|~}}~}}~~~}}}{}~~~~x~z~~}}|}|y~z}~~}~~{|z~{}~{||y~x~{}{||{~{zy}~~~}{~~}{~{~~||~y|{}~}}u}|~|~}~~}}|~~~~}|}}z{}||}~}}|~~z}}~}~}}}~}}{~~~|~}}x~~}~~~~~{|||}}~~|{~z}~~|{}|~}~~|~|~~}x}}}|~{~y~}||~}{}{z|xyz~}vw~|~s|~t~}rt~wzyv{vu~t|{tzy}}x~~~{}}}}}t~}y~|y{x~{}}~|y{w||wz|z}uy|z{|~}}z{z{}{z~~~}y~x}|zz|~}~}|~}}|w}|}{~~z|{}~}~|}y{|||}~|{}}{~{~w|}{}{||||~~~{{}~zz}|}y~}}{x~}|~~}}~}~~}~}{}~|}~}~y~z~||~{w}~~y{~|~|}~}|~~}}~{z~}~||}~z~{}||~|~{}~zz|~{~~}{{}~~~yyz|}|}}~|z}|~}z~~zz~~}}|~|~~~~yw|{z{}v~|~}{w~{}y~z~|}~~w}}{~zz|~{}|z}}zzw{~~z}~}{~~||}~{~~~~}}|z}{}}}{|~|}|x}~~~}~}~~}~}|z}~||~x~~}~}|}}|}~~|zz~~~}}~~~|~}~|~~||~~~}~~~|||}z}~|~|}}}~~zz~{~|~z}{|}}~|~{{}~|~{{}|}x}~}|~~~}}}~}|}}~}~y~~~y|{y}}~|~~~}|{}|~~}}~~w}~}~}~y}~x~~y}~}}|}}|~}|~~z~{{}~x}~z~~y~}{}{}|}~}~||~yx~~|~}z{z}|}~{{||~z~}}~~}|~~|}}~~~}{}|{}}~~{z}}}~~}}}~~yz~|}{~y|x{~z{~~}|{|}zz~~~{~~|z~z|||}w~~~~~}}}}~~~{}z}~}}~|}{x~~|y~~|w~}|}~~{v|~~{}}}{~w~}x{~~~}|{~|~~z|~}~~~~~|}~~~~~}|}}|~~~}}|~~|~|~~|~{|~~~}~}|~|~~~}~|~{}y~|{x|}~{{}~|{~w~~|~~}~|}|}}|}{{|x}|z||~~~}}yy~~|}~~{~{~v|}{|}{}~~|}~~{|~~}{|}~|}~~~~{~|{{}|}|y}v~||~||z}}v|{}|}}~}|}rx~|||~{~~~~}~}}{~}~~~yy}}{|||}~~x}}}z{z|~}|{~~}x~~z|y~~}}{|}|||}y~}~}w~z|{}~}|~}|~~}~~~~}~|}~|z~|}|~~~~~~~~|}~|}~~}~~x~}}~~~|{|~}|}||~|~|}~~|~~}|~~}{~~~~~{~|zt|~{~z}{z~}}}|||}|~{}~x~||}}}z~}|~||}|{~|~}y~z~~~{|~{~}|}~}}~}}~||}||}~~~|~}~{~~~~}}}~z~|~~y{}zx}~}|{~~}~~|~~{~}~~~{~}z}v|~}x}~{~~x~~|~z~z~{~}}{~~}~}|}|~~|{|~~~z~|||}}y~}}z~z}yz~|}{}||{||~{|y~~~}~|{|}~~~~~|{~}~||}~}|{}|~}}|~{|}}v}}}|}z~|}}~|z|}wyx~{}{{~}}~~}}|}z{~}||}~~~}~y~||~}}}~|~z~~}}zv~|}}{v~~~x~}}x~|}|}~|t}z~|w~{}x}z|t||x~~~~}~}~|}}~~~~~z}}}||~~~}|~}~{{~~|~~}|||}|z}{|}~z|}~~}~}}y~}x}}}{~|~|~}}}|||~~|{~z~|~~|||~~~~||{z|{~~|x}~}|y}~}~{|{~|}}~~||~~~z}~|~~}|~~{|||~{~~~}}}~~~~}}y|{z|~xz}~~}~|~}~y~~|}~~~}}~|~~}}y~{{~|}|||~~|{}~|}||w~}}||~}~|~{z~}y~|~}~}|}|~}~z|~~}}zwz|~~~~~~~{y|~}|~|}|{}~||}||~}}}}~}~||~||~}}{~}{~~~}~~z~}~}{||}|~~}~}z~|~~~~~~}~}}}~}{}|~||~}}~|~}y}}~|}~~~}~~}}~||~|~~{}~~{~}~|~}~~{{x}}z~~~|~|}~}~|~~}}~}~~xz|}~~}~}~|}y~}{{}|~{z}}z~{|}|}}z|~}~~|}zz}~~}~|~y}}|}}|~|{{{}~~}}~}}{~z}}~||~|r}~}}~{z}||}u||}}}}~z}~{|w~}x|~{~}|||y{}}}}}~}}~}||{~}}}|||||}~}~}x}{yy|z~y}|~xz}~~z~{}|~z}{}||}~~x~{{~|~{~|~ys~|~~ywt~}r||}yo~~}~}~~}mqy|~|~x~{}~~ux~}~~~z}}z~|||~~|~}~z~x{~}{~}}}~}~~{~|}z~|{}z}|~~||}}z}}y|}~~{~~~~~}}|~}~}~}~~{~}{{~~y|}~{z|yz}|~}}~}}}~~~~|}z}}~~z~~~}}|y~~|~~}|}}}~~~~}|}}|~}}{~~}|}~~~~|||}}~zx|~}~x~~}{~}~}~~}~{{}|z}~~~y|~~~{~|}|}|}|}}{w~x~~}z|~~|~w|~~~}}~{}~~}}}~~}|~z~}{~}}~}}|}|~~~|}}~|{|}~}zz~~~~~}}|~}}{~|z|~|~|}}|}}x}}}}~|~|~}~}~~~{{|~~|~}{|~{|~~~~|}~z~x|~~||{~~|z~x~~}}|}}}{}{}|||}~{~}|~}yy{~~|}}}|}}~~|~{~}|~|~||~~|x}~{~|~|{{|y}|~y~||||~|{}{}}}{}||~~}{~~{~}~{~~}}}}}~~}}~|{}}~~~~~z~}~}||}}~}~~~~~}|~~xw|}{}}x|{~{}{~~y~~|}|~~}|~}~|~|}z|~~~|~}}~}~~~z~|}}|}{~z|~~}~~z~y~|~|~}}}~z~~~~}~{z~~}|wyz~}}}}}yw}}z~~}~|}~|w{}~{}}~~y~}}z~}}}{~w||}x|{y~{|x~|}y|~z~}uu||v}}|}ym~|~~~}~|w|~s|xosx|~y}~y~yvrt~w|~}}}|~~z}x~~}~}~{~z}}~z|zuz}}}}z|~~~wzy{}z}y{v~}{}~~}x~z~x{~}||}}}~z{~}}~|y~~}}~}~}~~~|}~{{}{~~}{}{}~~~|~~}{w~|}}~~~~}zu}~}wx~|z~~~y~~~~u~~~~}z}{~{~~{{}|~{}~|}}}~}~~{z{|}z~~}{}~~~}z{{|~~}{|}{~~~~}{{{}~|}|y{|}}~yz|x{}z|}z}~|}~}~}|x~}|~}y~~~w~{z~~~}~}~~~|~~~~}}~y|z|y~y~|}}~~|~~yz~~~z~||{~}~z}|zz~z||y~w|v}}z~|~~||yw}||z~x~~{|~}~|}{~}z{|x|{~u}{|~{~~~~~}}~|x~|}}}}|{~z}~}~|}||{u}~~}~t~}~}}|}~}}|||}~~~}||~y}}z{~~~}}~|~~|}}}}}~{~~}~~}}~~~|~|{}|~}|}}~}}~{~~~}|~~~|~~}}~}~}}}}}~}}~||~}~}~z{~}~~~}}~~~}~}~~v|z~}}{~~~y}}||}~}~{~~}y}}z~}}~|~}~}{}}{~}{}y{{~}|}|}~mz|~~wx}||}{}~~||~y{{{~~~~|~}}||~x~{~~~~~||~~~}}~~~{~~~~~~}~~~{y{}~z~~}{z{~}~}w||~{|}|~}~}~~||}w{~y}v||}|~|~~~}}~}}x|}w~~|~}||}}~|||}~|y~{|}||{~|}}}|~~~{}~|~|~|~|~|}}~y|z~y|~z}z{||}|}v~|}~{}}{~|{}~|z}{||~y|vz~yx}~z~~y}|~}|~|}}}~y~}~}~~{z~}}}~{|~|~~w|~}|}~~~~y}}~~}~~~|~z~|||z}}~}~}|~}}}{~~}z{|}~{|}||}}}|~}~~}|v}~~}~~~}~~~}~}~}~}}~}{|~~~|~~~z~~~}~~~z}||}~~}|}|}{{|~~~{{}||~~|~{{{|~}z}~~}}~~~|~~|~~}x~~|~~x{{~y}{}~|~~~~~y}}{}|}}~|~z~|~~~}~~~{~~z~}{{xy|~~}{~~}~~~}}~|~{y~|y~y~z~~}}|}}~}~~}{}~~}}}v|}~|z}}yz~}}|~}|zz}|~}}{~~}{z{~~|y}|zz}}}~y~}{}~~~~}}~~~~~}{{z~}z}~z{txx{xuz|w|}w}||wxyv|urw{yywr~vvxsy{wxqxruq||uv|zxw}qwsw{v^rzvzt{pzywy}zxtsshv{wusqjtv{r}ymq{ltzvs{txcsywft{ywyqyu|{r}ufsx~x{|t{x|rpzw{w~v.qyx{suwtt{nrp~v{ttzuzyuvutu|l{uynyty}lp{zzutztzx~yvt}{~~suo|}xwxvytywv|!vrwury}wuypux}uhyu{vpys}~z|v~xwulyvz}swvuvuxqsovrlt}vxwqwzwr|zxox|u|{}qzw{zw|x{yu{x|wstyvyuwkw`zqs}ww{|zw{xpyszrzvzxwuttu|yuu~|~|}}~}}}}{~}~|}z~}}{~~}}}~}v|z|{{}{|}|~}{|w~{~}|~}~}||}z}}{}~~~|y~~{~~}~}}|{|~}~}||~~z~z|~~}}{~~}}~}~~|~~~}}}~}||~}}{~~{}~|z|}~|}~~~|}~}~{~|~~~~}~|~}~~~~|y~~}|}~}}~~~}||~~{~{{{y|~~~x}~~{~z{|~~z|~~~{~}yx~y|}}~|}}~}}~~~}~~z~}~~{~}~~z}v}}}y{~{x|}~~}|~|}|yy}y~}~~~|y|}{||}sy|~|y~v}}~{~|}|||~{x~{zz|v~~{~~}~~}~}}{|}~}|{|w~}}~||~z}~|}|}z~|}}~|~}{}{~~~x}{~{x}~}~|}~z~z|{}~}}~||}v}}~|~~~~y}}~~~|}~y|}z|~~}{~yy}~}{{~}z~}~w}~~~y~~}~}z{}z{~{~}|~~z|}~~}}~|~~~}{}}~}}~x~xz~u|{}~~{z|~~~}}|z}{~z}y}}{~~}y|}}}~{~x~~~}~{||~~~|}~~|}}~|}}~}}yy}~||}}~|~y~}~}}}|z~~v~y|~z~|w}y{}~||}|~~}}~|z}{}|||z}{}|{{}~~~~x|}{~}}~|~|x|z|~}~}~|~{}~||}w}~~|}z~}~|y}}~}zz~~}~}~|}~~}}~~z~{}{~~}~|x~{}~}}~}x}{}~}{~{~{}~}z|y~{}||~}x{~}~|~}}~}}|~{}}~~{~~y~~}~|}}|~{|~|~|{||~~~~~}}{x|}{{|}{}~~y{~{~}}~~}{~z~}~z|~w}||||zx~{zz~~}{}z}}}~~z~}z{~}~{~~|~w~|~~|~}z}~~}go~vqz򖞚vr}}{o~}y}}~}~}}}}{zx|~~~}~~~~~~||}|~}{}{{~~|}}~|}|z|{~~y}|}z~|~~||~}~}~}~~~~{~{~}}~~}~}|~~}z~}~~}~{}}~}~|~~~}~~z~}~}~}~}}x~~}~}|}zzz{}vz}{~}|~~~{~}}}}{~~}~}~}~z~}~~}~~{~|~{~~}z{~~}~~~{~|}~~~~}}}|~}~||~}~~}y~{~||}~~~~|~|~{~{}{}}z|~zy}~}~||~}z~~}}}x~y{~|z{~{|}|}~}{~z~}{~}|v~{~|}{yz~zz}~|~}y|||~}{}}|~}z~{}~z|yy}|z||~|}~~}}~}~}}~z}z}{z~{}}|{|~~~~{{z|}~}~~|~~~~|{}~~~~{}}~z}|}v~~||~~}~~~~}{}~}z}~|{~}~~~y}|{z|~~~x||~}~~z{{|~{}~|||~{~~|}~~|z~|}~}~{z|z}~|}~|z~}}}~{z{~~{~}~}}}~~~|~}~~|{~}~~}}|~}}}|~~x}|~y~~}~{|~|}{~}}~}~}~z}{|}~~~~}~|}x{}~~~}}}}x~~{{{}|y}~~}~~~|{|~|uz}x|}|~~~}z~|~}|~|~zy~|~~~~~~}}~|}}||~~y}~~}||}}~~~{zz~{~~~zz|~x{~}~}~x|z}~{|z|~}z|~~}{~~|~~~~{}{y}|~~~}{~}}z~~~~}||~{~}zt~|~~~}~{~}|}~z}{}~~~~~}~~}~z~~~}|}~~~}y}~y~z~~|~~||}}~{z}~~~{|z}~~{~~~~|~y~}~~~~}~~||~{}~}~}w|~|}|}~~||}~~~{||}y|{~}~~}~~~~~}~~|}z~~}~}~|{{~~}{}z~|}}~}{~~~~}~~{}{~~~}x~x~{}~~|{|xx|}{~~|~~}~x|}~z}x{}~w~}~~~}}~~{}{~|~z~}~~z~}~zz~~|z}~}|~}}~~~|}|~{~~~~}{}|{~}~|~{~~}z~~x|}~~}~x}|y{~{}}y|}}~~|~y}{{{{~~}}~}}z~|~~}}~x~~}}|}||}~{~}||~}~|~x|~|~}~~y}}z~}}||~|~|{~}|~~}}|~~~|~}}|~~}}z~~}yz|}~|}xzz|}}~|~}|~~}~z}~|z~||~|z|w~}}~~|{~~|~z}~}}~~~~~~}}}||}~}}}~t|{z{|~|{~}{{~~~|w~}||~|}}}~~~{|}~}}}r{y|}}|}~~~|~~~}~~}~y~}|{~~~|~~{~~||}~{w}~x~|v}{z}~y~}}{}}}w}|}|{}{{z~~}|~|||~~~~~zy~{~~~}~|{~{~}}}}~~}y|v{}~~|}~}z~~|}~z~yy~{}~|~v|~}~{~|x||~{z~~z~{||{~|~~~{{}~}z}~|}}{{{~{~}y{{~||w|~|}{|}zu~}~~}|{}~~}~}~|}|~z|~~}~|~|~}~|}|~zz{}}z~vzy~|}|~}r~y{}|||~}~}}{}|}{}~}~y{|~~y{}|{~~{x}}||~~zy{|~~z~|}y~~|}}~{~~~~{~~}~~}}~~x~{z{~~y~~w}~}z}}}~|}|~{zwy}}}}y~~}||~|{z|x~}~||{~z|~~~}~|||x~|}~~|~~}~|z|~{}}}|}}}~|{~~}|~|}}~~}|}~~~{}{~~~{~z}}~~}|~~~}~~}~}~}|~|}}}~~xz|~yw~}|}~~y~~}}|{yzy||}~~}}xz|~z}{}~~~~}{}~~~}z||~|z~~~|}}~|~z}~|y}{|}|}|}|~z~}|}{~}u|x|{||~}|~~~~y~}}xz~}}|~}~|~}}~}y|}~~~~}~}{}~}}~{~}~|}~||~z{~||z~~~~|~z~~{~{~z~~z}~~}~~~~}}|}~~{}z|}~y~}|~{}~}}~{}}~{{~}~}|~}~{}}}~z}~z}|}z{}{{~}~z||~~~|}}}}~}z{~~~~z~{~~|||w~|~~~}zy~~~~}~~}w}||}~||~}~~}~{y}~~}~~}~~~}{}}~{z{{|}}~~||{~|z~{}~}}~}}}|~~}}~~|~}xw}~}z~}z}{}~}y|~w{~~~~}{~~}x~}}|{{{}~{v|z~z|y{|y~~|z}}|}}x~|}|{}}z}z|~}}{}}}~{~}|z~}}~}~}z|~{|}~}~~~}u}}~~|}~zy~}}}|}}}~~~~|{}}{}~~|~{|~}}x~y~~}~{~}xz|~yx|~}~~}~zz~}~}{~|z}{r|}~|w||}}|}~u{|}~}{~x{}{z~~~}|~q{~}{|~z|x~}~}~}z{~~}|~}~}|~~~vu~}~~z}w{{~{{{|nz~~~|y~}~}~~}~~~~}|~u~|}~{~}}{~|{~~}||}}}x|}|~~z~~~~~|{~~}}~}}}~~y~||~x{~{~}x}}}~}~}}}{|}}{~}~}~{~}}{}{~{|{|yxx}|}|~}~~{w}~}{}~|||}y{}{zy~|~|{~}~~~{~~}y}~z~{~~}~}}}{~~~~~}}~}|{|}}{}}~~~{~y}|}}|~~|z~{}~|}||~{~z||~|z}~}|}|}~|}{z|~~~|~}}|}|z~z~{{{}~~~~}~}|~~|{|z~|}~~}}~|}~|~}~|z}~}~}~}~{}|}}y{}~~||~}}~~t~}~}~}}}~~|~}}z{|y~~~|~|||z}}}|{~||~}z~|{|y{}~~~~~{}}~}~y~|}~{|~~{~~xw}}yz~z}~}~}~{|||{~{||~{}|}~~|~||}|{z}|z~|~~}|{|~~~~~}|z}~||}}~~~}|~~y~~}~}|~~|}z}y}|x~{|}}~}|||}|~{~~~}~|~||y}z{{y~z|||~~~||~}}~}|~|~yu}~}}}~}|||y}{}y|z|~}v}~~z}{y{~~{{{}}~~}~}~~|}}~z}{|}~|z~|y~}{}z~{}{~}~|{~}w~~}}||z~~}{~{{|}~~}~}{~|}}~}|}~~|~{}~}}{}~{{}}|{}~~~~~}~~|~~~{~z~{}}}~~}~}{|~|~{{~~~{~~y~~}}~}~~~}~{{y~}y~}}}~|~}~~}{}~|~~}{~~{~}}~z|{~||{|z|~|}||~~~~~~|~~}{}|~}~~~|}w}~~~}}|~~~}y~y|}|}~|}~~|}wy}z~~}~}~}{|~|}~}x{~|~z}}||~z|~}~~}}z{~}{|}{|{{{}~xz~~{}~~~{{}}}~|}}}{~|}{~|}~}y|~}}~}~~~{}~z{{{~~}y}}~~~{|{~}~~}zy~~~}x~|~~}}}y||}~~}~~~}}~|z~|}~~~{~~}~~~~}}}~~~~z{~~~|~|}}~~|}}}|~~~~z~}~~|}|~}||{~~}{~~x{}u~~}~|xy~}~}~}|{~~~~||}|}}}~~~}~}|}|}}|}{~|}}|~~~~}|z{|~~~~~}~|~}{x~}}}y~~~~~|}|}|~~}~|~{z}~z~~}x~|~|{~}}|}|~~~~}}~y}}~~~}}|}}}~~|~~~|~}||z}~v~}~|~|}~~}~~{|||x}}}u~|~}~{~}}{~~~}|~}~}}z~~{~|~}{z~}|}{z}~}~~|~{|}}y|yu~w}wy}ryuroswtzwqsyvx}zytrpyux}vt}v|~}{swni}m~uxvvo{rzz{wy|yxxzxx{skvzz}]ryxu}nzvym|wxrz~y|}{mmxvysu{{dzx}ztx{x}xv|y~tq{u|qwx~{yrv}{}t~_z||y~v{x[ry~s}}tpztvtyz{wzv}z{w}zw}y{rszks~zuzzv|~xv{}iruu|z{zwrzr{y~wvuv~pvru|byp{yy~}}sxvps}ssww|qzuryps}{}cxz{{ztr}w{z{wrxvux|{z{yxyy}yoy{wx{~xzxpr{rzzuzzkpty{q~wqrx{poxtlvwky~t}ux{wv|}~|}{~}}}~{{}~{{~}}}~~~~~~~~~~~|{~~~~||~~~~}{xyz~}~~}||wz}{}}~}||}~~~||{{~|~~|{~~~~~}}~|}~}}~~|}~~|}|}~~{}}w~~||}}}zz~}}~}y~~~w~z|||~~~}|~}y}~z~~{~|z}|}}~~~}~}z~|~{}}~|~{~~~}}}}~~z|~|~~}~}}}y~~{~|~}~|t{~}{}~~~}{{}~||||~}~~}}}~|~~~~z~~{}z~~|~~}|~~~~z~{y{}~~~}}~}}}~}~z}|~||z~|~||~~~~|}~~}}|||}|{z}~|{}zy|w|~~|}}|}}|~y}}}~~~z~{~~~{t{~{}}}}~y|||~~~~~~|}{}}}z}y}|~~}~}{{}~}z|{~~z~x{~~~~}y~~~z~~~{|~}~~}{}t}~~|~||~||}{~|~{{|~{{|~~y|~~}|~}~~~y}~|||~~z||~}x~|}~}}}~}~}}}|~~}|~}}~~~~~}~}}}{~}}}}|~{{}~|~|~z~~~}|||~y||~||}{~||}|}~~|}z}}~~~~~~}~~{{|}}~~}{~}}y|~}|}}}~~~~{~}~~{~}|~~~}~}}z{~~~~z}~|||~}~}{}{y{z||y{~~~y||z~}y}~y}~w~~~}~}~w{}~|}}{}~z|~{}}{|~~}|{~~|~~{~~y~x}~}~~~}~~|}|~y~}~}|~}}~~~~~}~{~~|~{}~~}}{~}~{~~~{~|~|{~}}{~z|~}}}x{zzz|~w~}|}}}|~|~|~~{{}}~}|}~~~~}zz}}zw~~~}|}~|}{~}}}|{~~~~~}~}}~z|{||{z~~~}{~{}}z|~y~}z{~|~}~~{x{~|{z|yz|||}~}{~~}~~~}|||~}~~}~}}~~~}|~||z}{|~}}}}{~}~~}}~}xy{|~~}~z{~~~{~|}}z~~~~~|}w}}~z~}~}~}}~~{~~{{}{|~~~~~~}~~~~~{~~}|}}~y}{}~}~~~~}||}||~~~~~x{|~||z}z~z~{||~~{}~~~|~|~|~}{~x|{~}}~~|z{}||}~~~~zy~}|y~}}}~~}{}~}~~{|~~~}~~{|}z|~~~~{~~|~}z~~{|~}~|{|}{~}}~|}z~~~~~~~~xzz~{~~}~~|{|{~x~}y~}}}|}~{|}~||~}~~~||~||~z|{~}~}~~~}|}~|}~|~~}}|z}~~~}{y{}~}~}~zz~|}~}~y|~}|~}~z~x~||}v{}~|u~|~~z~~~{}}||~|~}~{}~}}}z~~{~}~u}}~}~|}}~~~}z~{~|~~{{x{~~~~|}|~|}~~}}|z|{}|}z}|~z}z}}~}~}~}~~~}{|{}y~}y|}}}z~z~}||}~|}|}}~~}~~~~~~|}|~~|~{~~|}}~~}|}{}{~}~}|~}}}}~~}}~}}~}}y||~{~~~}~~}}}}x~|~y}y}~~~~}||{|{z~~}v{{||~~z}|z}~{}|y~zy~z{~||{~{~}~|~}~x}|}~}~~y~}~~}{|{~{~~|~~{}}}}|~}z~~~~~}}z|~|}|}~}~z|~|~}|{~~}|y~~|~~~~}{|~~}{~z~|{~~}z~|~{{~|~~}}z~~|zy~}~~~~|~{|z}}~{|y}~}{}~}z||}}~|z}{}~s}|}~~}~~|~|~{|~~y~~~~z{|{~}~{}~zyx||{~}~~~~~~~|~{}~~}~}x~z~~{~}y~~}~y}~|~||~}~~~~}|~|y}z}|{|~|x|~~~~z}~|}y|~{w~zw}~u{|~~~~|u}}~|~~zz~{~z|}}{~{~~}~}{~|x|~{~|}~|y~~~}~}{~~{}}|}}|x{|}}}~|}}x|~~~~{x~w||~}~|}~~y~~}y~{|~~y}|w}|~~|}}}}~|~|}~||}~~}}~}||}}}~}{~~~|}{{}~~}~~|~~}wz~|||}~~|~~~{~~}~{|}{~~}{~}~|zz|}xx{{|}{}{~~||~|~}~}~{x|}~x~}}}|}~~|}~~~|{~~}{z}~|}~~z{|{~}{{|~~}}~~~}~|~~}{|~~y|x}y}}|~|{}~}{{~}~~~}}~}~z}}~~~~||z~}{|x~~v}~}~~||~|}~}~}}}~~z|}|}|y}~}~|v}}xz||~~{~~|~|~~~}}~{z|}~~|}}~~~~~}~}~}}}~{~|~~~}z||~~~~~|~~}z~|~}|~}|}}~~~}~~y|}~zx{~~}|~~~}}{|}~~~{z|}|{}u~{|y}~}~~}~}~~}}y~}}{~}|~~~~~~}{~{~|}~~~{{~}~|~{~~}~~}}|}~y}|~}}}{}}~~}~z{~|}~|~}}z{|~~~~~}|~~}}y~~|}|{~{~~}~|~~~~z}~~}~~}~}~}}~~~~~}}~{~~}{~~}|~~~~}~||z~~~|}~~}~|~~}~z}}{}||}z}}}~}w~}|~|~}}~}||~}}~{}|~~}}~~|~~~~~~}~||~|~}}~x|}~~z}~~}~}|{~~}}}{~~~{~}|~~|~}|{z}{|z}|~}}{|}~~~}~~~|~~}|~}~}z~|}|~|{~}y~}z|}~~}}~}}}t}}|}~~~~~{}|~~}~}|~}~v~}{}}|~}}|~|{z{~y~z~|~~|~~|}~~}}|}~~~~~}}~~y~~||~~}}~{~}~}~~~y}~|}y}}}~~~~~~{}{~}}|~~|}}|~}}}}~~~||}|~{{z~}}}~}}|}~|}~||~~||~~x{}{~~~~|~~|||}}~{}~~{}~|{}}|{~~}~}||}~|}~~~|~~|}{~~}|{~~~~|}y~}}|}~z|~~}}}|~~~{~~}y}~~}}}}}~x}|}z}{}~~}|~x~~~}|~|~~~~|~|~~|~}~~~~|}}|~}}}~~z~}~{{}~}~}z}|~~|}}~~}}~z}~}}z}{}~~}~~}}~~~||}}z~|~~|~~}~vz|~~|y~~~|}~}|}z~~}}|}|~~~~~}~~}~}~||~}~}~~|~~~}~}}y|~~~{~{{~~~|}~x~}}x{{}~}|{{}|z|~x{}|z}}~}}~}}}}}}w~{~~~|~~{~||~~w~~{~|t|{}|}~}}}|}|~~~{x~|~}~~~|~~~|~~}~~{}}~~{|{y~~||}|x~z}}}|}{~~}}~~{~{~~}|y|~|~~{}{~|~~}~|}~~{}}~{}}~~}~~}z~}~~}{}~~|}||~~}~~~||~z~~x~~}|~~~~}~|~{|}~~}~}{}~v~t~|y{|}}||~{~~~}|~~~z~~~||~}~}zy~~~|~|y}{x{|}}{~x~~z~z{{{w}yzy~}|~z}}{w|}q{||~w}}z}~~z}|uw|||{~~zy~~~~y{}~}~~}zt}|||{z}~~{|}{~z}~}}{}|{{}~~|{~{~~{{|~~}|z|~|}}~||}|}x~|{~~z~~}|~}~~~}}}xy|}y~}z~~~}~}~~~z~~|}~}|~~~{|z{~||{}~{{|~}}||y~}{}~zx|{{}x}}}~|{~|~|~w~zz~~~~|}|wz{~}~{{~}~x~z~~{}~}~|~~~}~~~}~}}~~~~}}{}}}~~~|~}{|~}~|~{|}~}~}{|}|}~|~}z|z|}~}~||{z}~|~}~~{{~|~}|{w}~|}|~}|}}~~}~}y{|}|}~~~}}x~|~~yy~{||~~}|r~~||{}~~~~y}}~||{~|yyz~}|v~~~~}|y|}|~~~{~{}~zr~u~~||}~{vz|}~~~~~}}}|}{~~~{~}~~~~~~~}z||{~z~~|}~}|}|}|{~}~y~~}}}~{{}z}~{|~{~}~}~zz~~z~~}~}z}~~~~}~}||{{~}w~}}z~}}~~{|~~~~~~~}}}~~~~}~}~~|{}}|~}x}}|~}}z|~{}~~}yw}z~}}~~|~{~~}~~}}||~}~}|~}~~}z|z~||}~~~~}{~~{|~~x~~~~}}{{}~}|}~|}{}~{|}}x~~|}}|}|{~}|}{~~~~}~}~~~}z{~{}~}}~y~~{|}~~|~~z}|~~~~}||{z~|}y~~{~}~~}~w~~|~~~~z~w}}z}z~v}|~}|}~~~}z|~}x{w}v}{|}w{{|~}{|~v}z|}}w~{}}|{}{{~~~}~u~}|}}|~zz|~|{y~{z~~|~|~}~z}~}||z}~~}}~}}}}}}~}|}|~}~~{|~y}{~~~~{~|zx||}{}{~{~{}~}~{~~~~{~~~|}}~|~~~}}~}|}}~zz~}~|~~{~{}|~}~|}~|~~|~}}~~|}~||z|zzy~}||}~{}}~~}~~~{}|}}}~}~|~}}||z|y|}}|}|~zz}}y|}~~}}~|y|y~~~~|~{}{~~~|}|}}}{~|}~|~x{}{}~}{|}{~}}~}}~y}{y~|{~~z}z~}}}~~}|}~}|~~{|~~{~~y~~~}}~}}{z~~}y|}}||y~~|}~{}~{~~~}}}}}}~|{~}~}|{~|~}~~{z~wy~}zv~{}}}}~zz~~{}}~}|~~z}u~~}|}vy}z}|zy{z~}~~~}s~}x~|||}{~v~~y~x{}}}}v~~~|z~|}{}}x~{{y~xx|y{{|~~}~|}z{|}y{~}|~y~{{{~~~|xz~}~~}~w~~z{~~~}}|}{||}|~~}}}~|zx|v~}y~~~}~~}~}{}~|~|~~~}z{}{|~x~}}|~{||y~~}~{z|{~}~}~~|}|~|}{}~w||~|{}|~~}|~|~{}~||z~|~||~}~}|~{|}|}y{|x~z|{~{~z~|~|~}{~}}~|{~z|~~~~}{~}|v}~}~|~|{|||}|{{x~~{z{|{|}~~~|}~|}|~~{zy{|}~}w}~~{|{~|~~|~}|z~~{}}~~~{~~~~|~y~{~{}|}}~}~~~}~{}|~|{~|}~}}}~~|}~~~~z{~~~~~|~~|~{|{~}~~}{~~~~}|~~y}~}~z~}z~~}}~z}~|~~|~~~}~~}}}y~~}|~}{~~~~~~|~|}z|~~~}|~|~~{}{~}}}~}~~}|~z|~}}||||y|~~~{~~~~}{~~y~~}|~}~|{~~~~~~~{}z~}z~{}~z~~~~~~}}|z~~}~|||~~}}~x}|z|z~}z}~z~~|{x~}z~}zw~~|~~{v|}z}}}y|~|x~}~|{~}~}{}{y~~|}~|~w{~|}~}|}{y~|~|wy}{~yy|~{}|~{~||}~y}}|~|~}~~~~~~~~||z~{|~~~}~|}~~|~|~||~}}}~z~~~~{}~}}}~{}}}~}~{}~}z~~}~~|w|z{|~{{}z~}|}}z~{}~~||~~~}~{|~|~~}||~}~|~~{~}|}}{{~xyx||~{|~y||~w}|~~}~|x||||~|{{}~~x{~y~||{~w}}z|{}~|w~~x~~|zx~{}~~~}{{~~}{{~}z~z|~}~~~}~~}~~~~}|}{}zz~|~~~~|y}~x~~}~~~}|~~|}~~~|||}{{|}}~~}}~~~~}}~}||}}}~|~~}~|}~}}w}}~~}}{|z}}w~{|{{~}}~~~}|}~~x}~{}z{}{~~y~{z~|~|~||{}~{}z}~}}y~y|||~z}~}}{w|zw~|~|w~}v~||~~z|}}~~}~z|z{}u~~~~|}~{|sv|}w{{~}{||}~}~~}z}z}{~~z~~}~~{~}~}~~{|~~{|w{z}}~}}~}~~}{|~|}~~y~}{z|}}{}||~}}x~~}~|}}x}~~{}~~}}}~~z}{z|||xx}z~|~~|~~~~|~{}}y~||~~}~~~~}~~}|~~z|~~{|{}y}}}|{{z~~{|{}{}~z{}~~y}y|~~}}~|{z{}}~}~}~}~~|~y~}z}~||z~~}~z|}||z{y{r|x|}|~}ywyw{{{|w{}~}~yz~~~~|sy~|~}|{}{xy{x~|{}x{|u|~|}}|w}x~}}~|wzwy~~}wyx|p~yx~~z{zz}}{~y~~~~~~~|}|{|~}{~~|~|~}y|~~|}w~}{}}}}}~~~}}|~|}}|~|{||}||}zx}}{~}z}|{}}z}|~~}x{}}||~}z|~|}}}~}~}z}}}~|~z~}}~~~z~}~~}|}x~{}}~}~|{|}|y~~|~x~~~~~}|}}~}v~}{~~z~z}~~~~{}}~|~||~z||}}~{}}~~~~}~~}~x~}}z~}z}}}~|}~zy}z~~{{x|z|z~}|~~~}}{|~~~{~}~}~~{~~~~~~~}}}~x|z|{~|~{}||w~{}~}}}}~~|~~}}}}{}}}y{zz|}~~~||}{|}}~}}||}~~u{u|~~}z~}~~{~~}~u}~~~~x}||}||}||{}}~}|{}~~}}~|}||~}{}~{~}}~~~{~}~}|~~}|~~z|}{}|}~~~{{|~~{~|~{}~{z{|}~}~z}{{{~~}|x|}~}~}~}~xx}}}~~{~}}{{}~~~{}|~}}~~w}~z~v~~{~|}z~yz|}x~y}}~wy|~~~}~}~|~x}|~z{}|~}{|||~~|}y}}|~~~|~~|~}}}{}~|}~}~|v~~|~y~|~~~~||~~}~~||~|~~{~}||~~z|~}~z~~}~~~~}||y||y}z~||~{}~|}z~}}~|~}~|}}{||}~~{~}{|}~{~{~{{|}~}~}{}}{~~}}{{|x|~|z~|}||{y}{~~|~~~{|~~|}~~~{||}||~{}~~~}~~~~}~~||}||~{}}{~}{~}|}~~}{}}~||~||u~|}~}~{|~~~}~~~}|y}~{}|~~~}~|~~~z}~|}|}~}~~z|~{||~{~{{|~~}|~}|~}}~~~}y~}~|~~x~}}}z~}{}~~~}~|}|}z~}}~|~|~z}|~yx~}{}z~}y~~}~z~~}}~}~~~}~{}~|}|~~~}~}}~~}}}{~~}~}{~~||~{~~y~~~}|}~~|~xz~~{~~|}y}}{{~}~}y{}~~~}z}z|{}}~|~~|}}~~|}|y~yy~z|}|{{|~}|~~}|~}||~~~~}}}|}~z~}}~~}~|~~~}~y|w~~|||}|~~~~|~}||}{~x}u|y{||~~}z}{|~|}~~z{|{}}~z}s{|y}~w~~}z|~}}{{~~|v|{||}}}w}~}|~}{uw~||x{{~|~}~|~~u}w|x}}|zx|}y~{}}~|}|}|}~}}|{~|{x||~z|~|{}~~vwz{~}{z||sv{{{z|{~z|~y~~~~z~{}~}~|z~~||~y|}{~|~}z~y}~}~~z}{~y|~|~~z}{|z|~~|}}}~z~|}~~z{xu}~|}|~z~~~|{}~z{z~~~~|y~}~~{z{~~}{}}~}~}~{}|~||~z{}|~|}z~|~}~~|~~~|~|{z}}}{}{|~|~zx~{|~|~}}|~y{}|~~y}}~}~}||~~|~|{~~}~~~~|}}~~~|~~~|}|~~z{~{~~}}||~~}~~{~}~~~|~|}{}}{~~{~}x}~~|~|}{~~}}|{~{z{y}y{}}}~|~{z}~}~~~~}}}}|z~~}~~}~}z||t}|~z}}z|~}|s~~~~{||~}~}~|~z~~z{~~~}|{~x~{}}~y~zz|~~|z~}~~~~x~~|~|~}~|~~|}}~~~~y|}|~~~}}x|}}|~}{}~|}|~|}}{~~}~{~}{x~x~~}}{~}z~}~}~}~{~{~~}|~~}~~~~|~~}~~}z~}}}wz~~}|~~|~x~~{}~}}||~~|}~z}|}~}~}||zy}z~~~|~|{~~{~~|}|}~~z||~}{}~{{}}~|~}y~~yz~~}~}|}}|~~~{~~}}}~~|{~z~~~}}}|~}}~~{y|}|y|}xz|}~~~|}~~~|~|x|y~|}|~~~|{}}x~}}~}|~|{|}{}z~~~}~{}|z~|}||~}~~{}y~{~~~~|{|y~|y~}~yzz|~~|y}|}}}|~~yz~~}{}{}yy~~z{~w{}~}~|}~~~~~|~~~|~y~{{}~}{}~zy{}~~~~{~}||}}~z|}~~u~}|~~~}}~z}}}{{||~~}~~z|z}~y|yx~~~~}~|}{{}|~{||~{z~|~~~~y{~|~~~}{}|~}}}~z}|~~}}}~}||~}}~}}~~}|~~|}~~}}}|}|y~~}~~~{~||~~}~~~~}|}}~~~~}~}}~}|}~{|z||~~|~}{~{}|{}|~}}||{|~}~|}}~~|{|}|}~}|}|}~}~~~~}~x}~z|w~|z}~|~|}}}}y~z|~~|~}x|~|~}~~y}~~~~~~~}{}~}~~~|}z{~~|y}}{{~~||}z}~~}~}}~z|~~{|{~|}}}{}|~}~}}~|}{}|}~{~}z~}~{~~~~|||~~~x{~~|z||z~~~}{|~}~|~{~~}~~}}zy}~~~}~~~~z|yu|}~~|~~|~}~}}}{~|~{~zy~~zxz~}}|}}}|z~}}|}{y|}~}}~~}~|}|~}}}}|zy~}}z}z}~{|~z~~}~{}|~{{~z}~|~x~xz~|||~}{}~}~}~~}~~|}{|~~|~y{}~|{~~}}}~{~|~||}~|{}}~~~|~}}{||y~~}}|}}~z}||{}{~~}~}}}{~}|~~|{~||~}~~|}|}|}~x~zz}}}|~{~~|}~}~}|~}~|~}~~}~~||}zz~|}~z~~|}}}~|y~~||~~|{}}~~~{~||z|~}}}|}z}}}}}~~~}~~}}~}{~}~}}~}|}~~}~|~}}{}}~}}{|~~}~}{}}}}~|y~yy}}~~{|~{~}{~}~|}{~~~~z|}~~~~|||}}~~~}}||}~}~}}|y|{|~|}}~z~{}}~~}~|~~}}~}}~~}~~~}~z}~}}~~~{|~~}~}}~y~|~~{}y{|z{}|~~~|~|}}}~~}}~z}}||~}~z~|v|~~{}~}~~~~z~~~|x~|~zz~}~~}}|z~|~}x~~u}}~}}~~{|~}~}{}zx|~~~~~{|~}}}~}~~}~|~z~}|z~}}~~}~}|~~~~|}{z|}~~~|}}~~~~|zy~|{~~~~~~~~{||x}|~yz}}~~}}~~}~~~}}}|}~~}}|||}~~}yz~~}|}}~{}|~}|}}|}}{}}}~~{{|~}}}}|~~}~~}}|}}z|~}|~~}{z{||{~|~{}}}|z{~~~~~|y{~}}}~~~}|{{~~~}{z}}}~~~{}}|}|}|}~~zu}}}~}~y|~~~{}~}~}|{~}}}~~~}}~||{~~|~|~{~~}}}{~|~{~|~~~~~||}}}~}||}}~~||}y~~~z{z{~{}~}x{}}z~}~{~|z|{|z~}~|{~|}~~}}~}~~z|~}}~}}~~}}~~~~~|~}y|~~}{}}~{~|}}~}}~~~~~}{z}||~~~~~}}}}}~~~~~~}|}~}|}~~~~|}}~}|~}|}z~~~}}~~}~~~z~}}}}~~yz||}~}|~~|~|~|~~~~z~~|}~~~~~|~{}}~z|}}}|~z~~~}~{}{~|~}z}~~}~~~z~}|}{~~z}~~}~~~~|zz~}|{}~}|~}}|~~}}}~|}}~~~|~|}~~y||{~}~||||}~|~z}|~~~}||x}|~}~~y}}{}}~~|}|~|z}~|zy~~|}}|{{}}~~}~y~}~}z~||~}y~~|~|}x}|{~||~~}|}~}|}{~~y}~~}|~~~{z|~{z~|||}|~~}~}{~~}~~}~~~|~~}z}}}}~{}~z~~|{}}}|}}~{w~{}}~}~{}}~{{v{~~}~~}}~}~|}~~}~~}|}~~|zy~~}}}{{z~}{}|{~|}~{~~~~}|}~~~~w{{}}~~}z}~}~~v}|}~z~{|~{}|~~}}~|~}~~}|}|{~}~}}{|~||~~z}~~|~~~{~~~~~|~}}~}~x}}}{{~}~z~{|~~~~~}|~~||}zx{}~}v~~}||}}}~|}}~||z~~}~zz{~~z~~~z~||{~{~}~~v~~}z~zz}}~}}{}z~~}x~}}~{y|}~~~~}~~~~}}|}x{}~|}~{{~|x~~~~}}}~~~}z}~zw}{{~~z}{}|~~~}}}{~{~~}}|}{}{{~}~~}~|~~{}}~{}z}~|~~~|}}|}}{|}{}~|||}z~~|}}}|~}|~|~~}~{|y}~~~|}}~|}~|}~|~}~~zz}|{}~w~{~y~~~}w~uz}~~|~}~}|}~}{{}~}~}~~}~}|}}~}|~{}}~|}~}~}}~~}{~~}}z~~~y~}}|{}~~~}|~}~}|z{~}~~{z~~~~}|~|z}~|~}}~~}~y}}~{}~~{~}}}~}~~|~~~~z|{yx{||{uw|}||}~zzx}}~{}}{wy~y~~{{~~|xyx}v~z{~}}z||w|zw~|y{||{|{||~~~~wz{|~{}~x{z~|~}|~~~~~||~~|}z~~}~|~}{~~~~~~|~|~}~}}~}|~z~~~~}~~|~}|~}~~{}|~w}|}}{{~~~~{~~|~x~}{~}~}~~~yz{~}}}~{|~}}}y{{|~|}}~~~y|~}{|}}}{}~~~~}||~{~}~}~{~||ux}~}}z~}||~}~~u||wt~~|{|}|z}~~|v}~|xz~y|z~~|y}~{~{|~ym}zzzy}~~}zzz~~}~~ywz{}y{}~}z||}}z~~z~{}|~~~{}|~~~~y|~}}|~~}~||~~~~z}~~z|~|~~|~|~~|}}~x{}~~{|z{|~~|y}z~|}~|~|}~}}}~|~{|{~{}}~}~}{{~~~{~|}~z}}z|{{~~{~z~|y~~|}|}~~||}||z~z~|~x~w~}{}~~{}}v|~{~~z}|~z~}~x|}}~}~}~}{|~|}~~~{~~~}{}~|y~|~}~~|~{}}z~}~}}}}~~}~}}~}}{|~~~~}}~|}}|z|~~~}~z~z~{~{|~z}~~}}~~y|~|{{~}|{}|z~}}~~|~x}|~~|~||~{~||}||~||}z~}~{|}~~{|~~|~~~~~~~|~~x|z{~z}|~|~~}~}}}}~~}~~~|~}|~~}{~}}w~y|~}~~~zz|~~}~~~y}}}}~~~}~~~}}}~~{~zz}~w}~}zy||~{w~|~~{|~tz{y~}yx}|}~~}y~~{{tx{{x{~~|}{~}~}~}~~}~}~~{{}{}}{~}}~}|~}|{}}~|~}{w}{}~~|~}~~|~{z~{|}}}~~}}y~~~~|||}}y}{|~y~}~~}}~|}}~~~~|}~~~|~}}|{~}}{~~}~~~}|~{{|}}~}|~|}}}}|}~~x~~}z~|~}}~~}}~}}z~}~~~}}~}~~~}{|{~}}~~~|{~~~yz}|||~{~|}~|~|~zz}}~zw{x}~}y~~~}~}{~|}~}||x~}}}zz{~y|~}~}}z}~~}{~~~z~~|}}|~}}|}~{{{{{{~~~}~|{~}}|~~|~|}|}~||}}~~~}~z}{{~{~~}|w|}~~y}}~|}~~~~|~}{|||~~|}|~~z|}}}}{~}|y~z|~~}|~~~}~}}}|y~z~{}~{{{~w~w|}y||~}}yz|{{{~|~~}{~}~~~}z|}~~~}{|~|~~{|{~}{~~~~}~{|~{{}z}~xz||~|||||||~||}}||}}|z}|~~|~}||~zw~yzz{}~}~}~y~}|{~~}}}}~~~}{~}~}|~}~}}~{~{~z~~~}}}}z~{}~~~~}|~}~~y|~}}}~~|{|~}~|~~~~~}}z~}|{|x~~}}~~~~}}~{~~z|}~{}~}~}~~~|{}~~{z{{~}~~y~{~~}y~~{{|~~}~y~~s}{~y{~}}y~~~z~~|}}v|}~~|~~}|~|{|y|{}{}w}z}{~~~~||{|}|}}}~y|~~~}}~z~~{|}}|}~y~x~~{~}~}x}}z}{|~~}||~~|~{{{{~|}y~{~}y}~~y~}}}|~~~y~x~}~|~}~~~~~{}~~{}}~z}~~{}{}~}}|{~}}}~~}}|z}}}}}~}~~||}y~}~}~z~~|~{}y~}z}~|~|}~}~~||~z}|~|~}|z}{~~~~~|~|~~~{}|||{~~~}zz{~}}{}~}|}~z~|~z}}~~~~{~{{}~yy}~|}~~{}}}|~~}|{~}{~~~~{~~~~~y~|{|~~|yz~~~{~~zy~||}~~|{}|~~~~~{}~~}}|}{~~~{}|~}|}~}}}~}~|}}z~}|~~{~~|}~~y{~}z|~}}{{yy||~x}}~}|~~}~{}|~~~y}|~~z~~}{}~~|}~|~~~|}~z{}}z~~|}|~~}x~}{~}}|{}~~}|||}~~x|x}}||~}{~~~{~~~|~~~~~~~{~}~~}}{{z|~~~|~~|~}~z~|~}|}}{~}~~|~}~~~~}z}~~}~~~~~|y~~}}|y}{z}{{}||~}}~}~y}~{~zz~~|z|~|}z~}~~|~~}~|~~{}}~{}y}}~}z{}~}|yv~}}{}~|~{|}|~~|}z}}}{{~|~~~|~}~}~}}~|}~~}~~~}~}|z~z|}z|~~~z}~~~~~zy}}||{z~~}|~}~zw}||~}z~}{~~~~~|}}|~~z{x}|~}~~~~~}}||w~~}}~{~}|}w{|~}~~}~~}z}~~}x~~~|}{|{}|~~~~}~~|~|{{~{}}z}y{}~~~|}~}~z}|~|~~~y~}~}}~~y{~~}~}~}~~}~~~~~}}}|{~~~z}{~}~~~~~~|~|~}~|~}}{~}y~~|}|~|}~}{|~}~}z~z}|}}~}}|{{~}~~~~~}~~~~~~|~|}~}|}x}|y~~~~{~}~||~}~~}~}~x~}~~~|}~}~~~x~}~}{~}}~|~~}~z~~|}~|z~|~|}~}}z}}z~}~}~~}~{~z~{}}}~~~}{~}~|~|}~~~|~~~~~{w}|~}~|~~~|}~~~}}}}{~}~}~~z|}~}~}||{}~~|~~}~~{~|w~}~~z~|~z{~}~}x~}~}}}}z~}~~~|~}}}~{|z~}|}}{~|}}||yw|~}}}}}~{~}}~~~}|xv}~|~~}~~|~~~}~~}}z}~~{{{~~~x~~|}~~~~}{|~|~}}{{|}~~}t~|~w|y|}|}{~~~~}|}||~}}~~~|~{~{||y~}~~|~}~|y~{}||}}}~}||}||~~{z}~~|~|~|}~~rxz}~|~~|}~~z~v~}}}~|{~~|}}~x~{}~|vw}~~}{y~}~~~v}~}y}}uz}~{|v}|{x}z{~|w{q~|z}}}~{}}||v}y~{}~z~~~|wu~}|~}{|{z|z{z}||z}|~~~~}{~|~|~~}{y~~~|~}~}z~~~~~z~~~}z}|~~~y{~~|~~~}}}||zw{{|~}z{}~z}{~~~~|~{{}}|~|~{zyz}~{~~{}}||~y{}~|~}y~~|}}}}|{|~~~}|}}{~~}wy~x|}y}~~x{}{}}{{~w|~~}w~}~y~{||{}~}|~~|~{}|s~}~}||}|}}v||}|{wy~||~}||{~|z~~~}|{~}|~|z{|z}}~~~~}}}}{~~}}{~|~~~~~||z~~y~|~z~{|~|~~~~}~}~~}~~~|}~}z|z}~~~{|~~|}}~~~~~}|}yx|{wx~|w~}}}z~~{}|}~||}~yx|{{~|{~~|~xz}v~}{~|}}y}~}{}ywv~z|}|zy~}}w}~~~~}z}}}}r~~}}~r~~~|{}}{}||~u{|~}}{~y|z|~}}}{vy~zy~~|{}||z~~{z~|||z|}~}y}~}~~|}y~|||z}~~{~~~~|}}}~~}~}~||~~}}~}~y}~}|}|~||}~}y{}~z~~~~~|~}~{}z|{~|~}}~{x{z~~}}|}~zy~~~|}|~}~|~}z~}y~~}{~~}|}|~~}}~|{~~{~~}}~}}~}}~}~{~y|{||}}}|z{~||{}}|}|zyz{|~|z}~~~}~w~}}~~y|~~}|x~}}x{|}}{~~~}}|{~~}~}~}}~||}}|~}{~~~~~z}z}z}}y}~}z}y}~}~~~}~~}~}~~~|~}y{}~|}~~~|~z}}|{}|}|~{}y~|}{|}{z~{~|~~~}y~{~}{}~}}~}|||~}{~~|}}~{}~|~{~y|yx~|||{z|~~}|}}||}{~~}~}|~}~{~yz~~~~|~||~~}{~}z}y~}~~{~}}~z~}~~{y~{|}}~}{{z~}~}y{{|}}}{~~}}}z|~~z}}~~|~|~}}y|~}|~z}{|}|}~|}~~z~~}~~~}{{}|w~z~}~}}}}}}~~}{}}{|~||}~~}~}~z{~~~}~z}}~~|y}|{}}|~{~~}}~~~|~{y~}{~}~~|~}}~||}}{}~}{~z}{}|~~~}~|yz|}}~}|}z}}~~|~~|}~{|}}|}{x|}~~zz}~~|~}~z|}||||xz~~}}}~~~|z~{|~}~{|w~}~}{~z}~}~~}z~}}u~}~~}~~}|~z}|~}x{~{~vx~~}}|z}{~{{~}}|{~|}}{y~}~}}~~|}~~{|{~}~}}~{|}{~}~||~}|~}|}~~}~}}}|{~|z}~||}}z|z|}z{|}}~||~~||~z~}|}~}}}|~|}|}~~~{~z}~}|}~}~|}}~~~|~~~~w}~|{~~~|~}~}~|~}~|~|}~~}||~}~{~~}|}|~~{}{w|~|~|z|~~~~{}x|~~|~}~~|~~~~uv|{}|~}~}~{}|}|~}z~~~v|y{}v{~~|||w|}}~||~}xz|~|}~~}y}~{~~~~~~~x~~||~}}~}|~z~}~}}{{|~|x~{|~}z~~|}~~}~~~{~~~~|~~~~~|}}~~~}~~}~}|~}~|~|{~~~y|}y{}}}~~~~||}~~~}|||~|}~y~~|~~~~|}~}~~{~~~{}~}}}~|~}}~~{~|}{x}u}~~~y~u~~~x|}y{~|{~}y|{~~~}{}}~}}~x~~|y~~v}|z~}}~|{~}|}~~{~~{}y|}|}~~{~}|}}y{|~x}~~~~}|~z{~{|y~}~||}}}}~}|~~y|z~|}~z}|~~|~{{|{{y~~~}~z~~~~~}~~|~}~w~~{|}~|~}|}{x{|}~{zx}}{|~~}u~}{~~}~~|}{|}}{~{}~|}~yz~|z}}{|z|~}}~~{~{y}x|zz|~}~~}|~|}y}~{z~}~{~|{~|}}~}}~||~z{~|{}|zz{}}x~x{|}|~}||~}{|~}{~|}{}~}~~}~~||v|~~~zv~|{yy}{{}{||}z{~x}w||}y~{}~z|~}}|}|~}y~}{}}~}u~~y|~{z~~~z~{~~~|{~}}}|}w~~z}~{|}}~{{z}|||~|}~zw~||~}}~|~y|}~~~|~}|}|}~}}|~||{~~~}~~~~z~~~~|}~{}z~}~~}{{x}~yz~{{}~{~y~~z~|}~|x}}~~}~~~~~~}}y~{}}z~|z||~|~~|~}}~}{}}|}~|}{|~z}~~~||~~|{}}}}{}~~~}}|~}{x|}|~}{|}~{~}~~~}~}~~{z~~~}~}~|~{~|~x|~{~{{~~z~~}~y~z}~}~y}x}||{|}|{~z}~~z}||||}||}~~}}}~~|zx|}~{}}}~~}}~}|~}|~|}~}}{}~}~|}~|}~~~{~}}~~~|{|}}}{}|xz~~|}z~{~~|w}{~{{|}zyy~|~~|}z~}|w}{}|{z|~}|}|~~~z}~|w~z{~}zy~{}}}{}}~~w}}y}~~~}}}y{~~~}}~~~}y~}}~~w{}{~z}}|}x{|x{}|{~}z~~~~~|~||}|z~}{}}x~wy~z|{~~y}}}~|~~|{~y{xx~}||~}~|}z}~}{~~z|{{||{~~~z{~{||~~}~z|}}~|}|}zx}~||x{{~}~}~~~~~{}{~~~~{||~{{~|~|}~}~~|~}~|~}z}|{||~~}~x~~}~|}{|~}}}}~z~}~~||~|{~|{|}}|{{~|~~{}}}|}~|||z{|}y}{|}~||~|{}|}|~}~{{~~z~|~}|~~~{|~z~z~~~~}|~~}~~~}~}|{~~||}z~~~}~~}|}|}{|{~{~|~~~|~}{|}~}|}~}~x|z~|}||}}~~~{}|~~~}}~|{~~}~~|}}~~}~|{~|}|}}}}~~}|~}}~~~~|~|}|~~}w}}}~|~{~~~~}{~y{~}~~{~~{||~~}~}||{|~~|x{{}~|~~|~~~|~}}|}~~~}zztz}~}|{~~|}{}zv|}z|{|{zz|}~z~|x|{yz~~|yz}z|||y|~~~z}~~}}}}x~|~~}~{}~~~}~|}{~~}||}{~~z}|~z{~}~~|}~{}|~{{|~}|~}~}|y}{|{|zzz{~{}xyz~|{}{~~~~}~|xt||{x||y~~{wz~{}}yx{|z~|zy~||y{}y|}ssx{z}~}{||~y}||~}|}}}z{~~||~y{x|~|~z~~|~~{y}~~}~}|~~}x~}~}~~{}{y||~|z~~}}~}y}~~~z{||~x~}~|x||z}}y~|~~x}}~||~}vy}~{|}y{~}|{}~||~~{||{}~~~yx||~}||}~}~~|w~}{y~}{}{{~x}~~zx}~{v}|}{~}}|}}|~{~~~~|y~~~~~~~~x}}~{{}~}~~~}y~}|~{~x{z{}z}}}~||~z}xy~}~zv}}~z||{~~}~~~yy}~|~~||}{{}~~}}|~{}~~}~x~~|y~~}}~~zz{}~|~~z~~~}}|~{~|~~}|~~}~{}|}}|~~~~z|}|}|z~}~}{}|~z}{}~|~~|}}}}}{~}~~~||x{~~y~~|}~}|y|~}~~}~~~}}~||}|}y{{{~}x~~~x|~~{||~|~}{z}{|~~z}y|~~}~~}~~}{}}}|y}}|~~~||~~z}~~|~~~z}}}z}}~}~~z|}~|~}~}~||~}~~{~~~}}}{{x~|}~{~}z|}~x|z~u~|~~u|~~|{{{~|}||~~y~y|}|{x|||y}vu~y~~{|}y}~~~~||{~{{z}x}|{|v}z~~~~}||~~yw}|{}}~~||}~w~||~}~~}~{~~|}~z}~~}~|}~{y}~}{{}~|||~}||}x|~}~~}{~wyz|~{~{~~~~y}||}}~zu~~}{z~}}~{y~x~||z~~}||{|~~{~~~~}z~}~{|~|}|}~|~~~}~|zx}~~~xz{}~|y{~z{}~{~|y}}||~||{~~y|}~|}{{~~}~~{|}~~~~~}~~{~~~}~|{}}~}~~~~~}~~{}}~}z}{z~~|~z~~{~}{}~~~}}~{}{{{}}|{}}~~~~~}~{}}~}}|{~}{~~}}}}|~|}|}~|~{~}~~||}~~~x|}~}~}~}{~~}|}}~~y~{~|}~}~~}|}|{|~~|~~y~z|~~}}}~}~|z}{~}{}{~~~~|}|}~{~}}z~{||{}|z~}{}|}z~z}}||~||~~}~~~}~~~~||~{|~}}{~||~~|~~~~}}~~~|x~~~~}}}~}~~|z}}~z~~|~}}~|~z~~~x{{~|}~~z~~~{~}~~||}}y~~~{~|}{|}}z{~w|||}}~x|~|zw~~}|}|}~}~z}{~zy|||}z{{~~w}{~}{~~||||{z}{|}}|~~}|}{~|~}~}~~}z|}}|z~{||}~~~y}}|}~|||}}{|w}~}~~}~~~}~}~~}||}~|x}y~z}}x|~}||~~}}~z~yw}}|~~}}xy}}|{}|~~{~}}~}z~~y~|~y}}}~~~}x~~z~}~|~}}}~}~}}}z}{~~|z~|}~~~~|~~~{}z~~}}~~}|~~~}{~~|~|~y}~|~~|~}}|}|~|~z{{~~~~|~|~|~|~}y~~~y~~|~~|~||~}}~{~}~z}{~{~~}{{}{}}}}~z~{}~~|~|{}{||y}~g{zz~m}fz{y}{{~g~~|~xiy~~~~z|{x|}~}~~|y|~~~|}~}}{y~}}{{~}~~|~}}{~}~~~}z~|}}}~~~|{x~~}~~~{}}|}|}~~~}~}~~~{~}}}||}~~|{}~~}~y}}~|{~}{~}|}{z}|}~{~~~~y}~}~}~}~{y{}~~~}~{z}~|}yy}{}|z{x{~|y~|}~}~}~~z~{x~y~z|}z}|v|~|z}}{{~xz|~}z|~~{|||{}|}x~~~~}~}{~}~|~~}~{{}}}~~}{|~}|{~~}}}|~}~~~}~~|~{}|~{{w~|~~}}~~~{}~z}|}~|~zy}|}}|}z~|~}~}}y}}|}~{{}{~{zzx~{~|~}~~}|}~~|~z}{z}~}~}~||x}z~z~|~{s~}{|z~~~~~~|}{v}~~|~~z~|}}~~{|{~{~~~|~}~~}}~|z|z~~}}~{w~~}}{z~{~~}zv|~z~|{}~~x~|x}}~}y~}~z|x~z}~{z{}}~~}|{|~|}|~x~~||}|}}z~~~x~~~x||~{~||z~}~~}}||}|{{}~|z|~}~|}|{~}|y||z{~v|}y}~~}}{~~y~}~~z~}y}}{{z~z~|z{{|}z}|~}|y|~~~z~}~v{|{~||~~~}~~z{t{{x}~~zzx}~{~{~z}~}|xz|{zzz|~||~~}x~}}}~|~|w~}}|}}~{~~}~|~|~~~y|~~v{~~{~}|z}~{}{|~~{|z|~z}|~~~{}|~~}wxx~~}|~|}x||v}{{}y}}}}~~}}~zz~~||~~~~|}}}|~~}|x~|z{~}}}z~~}{{{~x}~~~~~~~}}|z~x~~~~|~~{{}~~~~~}}z{~~}{~~{}}x~|~~zzy}~}{~z~||}}{|}{|}z~}{{{~~}~~w|}w~x|}~}}y}~y~|}~~x~~}|~~}|}|}~}}~~{}~~|y~|~|}~x|}||z~~}~~~~}}}{~}y|~|{|{|~}{~|~~z~|~z~~~z~|}z~}z~~~~}yz}||~~{{~{~}~~w~~~{}||~~}}y{~~~}}{y~}}{~{}}{~~~~}~}~{}}y|{|}||}~~~~zz{~}~~{|{~~~~~}~{z~}~}~~{~~|~|{}~}|}y}}}~|{~}}{~y~||~z}~{~~|~|~~}|~~|}~}{~~~{}~{~|}~}|~||}~~~{z~}}~}}|||{|}z}}z}~~~|{~~z~~}~y}}zz}{||}~~~~z~|}|}}|~~~~|}|~|}}~~|||~~~~|}~|~~~~z}}~}~}}}~~}~~~~}{|{~~~~~}|~~~~}}~}|}~~}~|~|~~|~~~}}}|}~}||{x~~}~z}z|~}~}yy~|z}|}~~z}}}~|~}|||{{}~~}~~~}~}}~||{{y}z~|~{~||y~}xz|}y{z{z|~{}}y~|v}~x~|~{z~~|z}|v~z~~y|xx~{~|}~~~z}|~|~}{y}{~|}|~}}x{|z|~y}x||~}y}z}~~{~~~~~~}~~}}y}~}~~~z}}~~}|}{~z~}~|~{~{~|}}|~|z|||{~~|~}~~~~||w{}}||}y}}~~}|}~|||}~}~}~~{}}{}}}~}|}y~~z}}y~{~~~}~~}w~{{{~~xx{{{|y}v~~{|~~}}zy|}}}~~|~~~}|~r}~}|z~zzy||{|}y}}}}|{}{{{~}|}||||{}|z~~}||y}~~}|{|~~~|~}z{|}}{~z}~z~}z~}{}}}|}~~~~|~}}|~}}|~~~~~|}v}}|~~}~|}y~|}|~{~|z}{|{|}~~}}~~~}{}~{~~{~{~~|~}xz~}|||~z}}|~~}}}}}|}~}{~~z}z~~~~y~{z~~|}}~y~z~{}}}|}~~}~~||{~~|~}~yz~|~z}|}~|{|}|x|}{~|y}}|~~|}~~{{~}|~zxy~~~|}~}~}~{~~~}{x{|yz||~~x~w|}}~z~}}{~}~{~y}~}~}y|zw{|}~{}}~}}~|~}|~~}|~z|~~~|~~}||~|}~|{~~|~|y}x|~|{}}}~~}~~~}~~}{{~{~}}~~z~~}}~|}}~z|~}~|~}}}~~|~|~~}}|{}~z~||{|{~{|~x~~~{|~~~{|}}~~~}~~~{~}~~|z}~~{{{{}~~}}|~~~}~{}}~~}}~~~{|}~~~{}{x~}}}|{}~~~~~~|}~~~~}~y{}zu~~~w~|||~~~z}}~~~~}~yx|~{~{}~|}~~~||~|~~z~}}~}z~|~~~~~~~}|}~}~}}{~{~}~{~~~}~y~|w~}~~|}|{~~||x}}~~{|}|{{~~}{~}~~}{||y~}~~|}z|~}~}|~||~y{~z}z}|}y~||}{~~~~}~~~}|~}~z}}z~}}~~}|}}~|}~}~z}~~~~}~}~|}}{~}}~}~}~~}}|{~~}{}{~{}|~|~}z}}~}~|~z{|~}}~{~~~|}~~}}~}~~~}y}}}}~z~|}}~{{|~}|||}~~}x}~}{~~~~}~|~}|~|}~~~|~~~}~}{}}}|}}}|}~~~~~~~{~{~}}w|~}{|~{z{}~~|}~|{~}}{|y|{~~~}~}}~}x}}}}}}~}}|~|}~}}~||~~}}~~y~~}}~}}}{}}{||~~~z|~~|}~}~{|}~~}|}||{}z}}|}~|z}}~|~~~}~{~~}~{~}}{~~y~||~~~~}}||~|}~~}}~~}~|~{|~}~}}}~z}}~{|~~}~}{~~}~|~~}{}~~~}~|}}z~w~}{}~y~~~|}}~}|{~}~~~~{~y~{|}~}}~~~~||||}}{~~|}~}~|}x~~~~~}z}~~~~}~~|{}}~}y~~|}~~|}~}z~~zz~z|}}z~}z|}z~{~}~z|~|}}|~z}{}}z|~{~~w~z}|}|z|x|x|z}}z|~~{w~}{~}~}x|~{~{v~zy}}{}y}~~~}~xzz}x~~x{~~~~}|w{wz}}|{|{~{}z~~}{~}~y||y{}{~y~|z}~~~{{~~}{~}}~~{v~~~{~~~{~}}~~|}{{}}z}z|~|{~}{~}xx~~|~~|~{~|z~}x}z~~~|}}}y|}~zy}}~{{{|v|zy~z|~~|~}{{}~{~}{{}|~~}~}z~|}~}}{|~~~}~|~|~~|}|~}}{~{}~~~~|}{}~~|{y~~}}~~~~~~}}}~||}{{z|}~|||~~~~~~||~z}|}||z}|}~~|}~~~{}}}}|~|}~w~|~~||~}~{~~~{}}}~|~||~|{~~}~}z~~}{~}|{}~|~|}y|}z{~{}~~~|~~|}}s~~z|w|{~}~z}|~||{z}~z|~~}|x{u}|}|}}y~~{~z}wvz~}~{{~~~~~}|w~~~}~z~}~}}}{~~{~{z}~{}~}~~|||z~~~|{}y~}{~~~~|~}|x~{~}}|~~}}~}z}}{|~|~~|}~z~~{}|~}}~~}~~~~}}~y|z~~~~~|~~{}}}|~~|~~~}~}}{z{}~{zz{|~}{p~}|z~{{}~~|}{r|w}|~|w~z}}{}~~|wx~|y}yz}{~}~}~{}~~~{}}~}{~~{x}}yzy}~{~~||y~~}y~}}~|~{z~|}~~z~~~~~}y|}~~}}}}~}{~~~~~}~~~}~~~}}~~|{~}z|~~~|}{~z}~~~}~}{|}~~~~w}}}}}}|}~}{}}}}|{~~~~~}~~|~~~~~~~~~~}}|{{wz|~}yy}}w}~~~||~|~|~~|xy~~~x}}|{}x}~x~|}|~}}}}}}~~~~}|}z}~{|~}}y||~|~~|~{|~vy}~{~{|}~{~}z~z}}}~~~}z~}~~~~}~~z}}~|}~{}}~~~yz~z~~}~}|}~~z{z~|}}~~}{}|~~|y||~|~~z|~|~~}|||~}{|}}~||z}~||}z|{~{}~~x|~~~|}z~||~~~~}|x|~}~~~~}{|x~~~~|~~~~z|~{{}~}}||~z~~{~~|}~||z}||}~|}~~}y~|}~}~{~~}|{|~{z~|x}|~~|~~|y}z}~{z}}{|}}~}~|~}~|~|z~}~~~~|~~~}}~}~}}~~|~~{}|~}~|}~~|~{~u~{}{}}{vv~~~|}}yz~~~}x~{~|~|~|}}}~~{xz|~~~|v{{~yt}}|~|z|yy~~{~{||~~z~}~}w~~y||}}x}}~~{|{|{{{~}x|~}~~~|x{{||z}w~~{|{y{~{z~~~|{~|~x}~}}~u}}~~||}}}}~}}|}~}|}~}{}~||~~}y|~}{~~xz|{~}}~}{y}}y~{{~~}~~}}{}~}|~~~z}~z{~|~|~~~|~}z|}~{z|{{}|{~|~{}}}{|~}~}}y{~}}{~|~|~~{{~}}~{|||}|~|{z~{~}}||~}y||z}{}~{z~x}z|{~~|}~|}z|}~}~~~z}~~|~}}}}{}z||}~{|}~z|~~}|}}|}|~~~{w~~|~{~~y~}|~~}~}~}~|~z~}}zzy}}|}~z~|~~{}}{}~y{~~|x{|}~~||y}|~|~{~{{}}~x{~~}y}z~z}|~|z}|}}}||~}v||yyx}~~|yy|~|}|~|}|}z}}}{z}{yzz~|~~z~||~~}}~~|z}}}~~{{zu{{~x{{|}~z|~}~zyw}~|}~~{||}v||y|{|}|}}|~|y|}{z}z}~|}~}~x|{{~x}~}|zy{~}}{}}{zy{{}vz{~uzzz~~~~{|zz~~}~z~{{|xx}~s~x}w}z~~|z|~~x~{{{}~}~{~}~z~{|}~|~{|{x||}}~}|yz}~z}}~}}}{y}z~}~y}y|~{{}}|}~~~|~}|}{y}}~|}x||y~{~w~}x|}x}~}|~v}y~~{|~~~}{|}x~x}|~{{|z|~}~xy{{~}~~}zz||~~z~v{|~~~{x}{~|}}}}{~{~~w|~~~{}|}{~~~|~}z||~}}~}{~~~|z~{~~~}~{~~|~~|}~}}~}||~}{~|~{~}x~~|~z~||}{}}}~{z~}|{~{z}}~~~{z~z~~~~~|~~~~~}{~}~~~{}x~|~{{{}|~y{~~~|}~|{~z~~|{{}~}}~|~z~|}x{~}~~~|~}{}~}~|{~}z{}|}~y~~{}x~~{z~z{~|~~}~y|~|v|}~~|~{{|}{~}}{}~v~}z|}~|{|||{|z~{z~~|z}|zz}z}~~~zy}~||~}|~~}{~~|~~v~~~~|xz~|}u}}{~|~y}~~}y}|~~z{}~~y{z{~|}z~~x}~~x}~~}}y~|}||}~{|~||x|}}|{~{~}~}~{~}~|}}~x}~y~|y~x}x}|~z|~}{|{}|~{|~|}|}~z}}|~|~~{{}}~}}zx~{{z|}z||~}}}}~}|}}~z}}~~{}z{}{yz|~||}~}{|}{{}{|{}w|~{}{|~{zzy|{~}|{yx{}{~|~}~|}z~~~|y}~~}{xw~~}y}|}{}|}|z|}~~|~~~}}y}z~~{~~|}~|}|}||~||}}}}~|}}}|}~{|}{|~|}|}~~~|~}~}}}}}~}z{|}}}|v}~|{~z~}}x}~~}}~y||~|x~}{y}wu{yy}~}{x||~}{}{~~z{}||{~|vw{}|v}{~}~{~z~~}yzx}~|~z}~|}|{z{|~~{z~{||{|}{}}~|y~}u~}}}u||~|~|}w|~y|y|~}~~{~}zx}}}~{||z}~z|||}|~zzy}}}}z|~z~{z~|~~||{~}~zw}~}}{{~}z~{~~{v}~~~{~~}~z}}}~~}~||}~z}{~y~|{}~y{|~}z{}}}}y{y}{~y~~z~y~}}}~}~~~|u~~~|~{}}~}{~{||}|}x~{}~~~~~~{}~}{~{yzz|{{~~}~z}{y~~w~{}|~{~~}~u}}z}}~vy|~}|~||w}~}}}y}~~z|z}~}~~~y}{}|{||~{~~{}~~}|}}}|~|w~~|}v}{}||~}~~}}x}~}~{y{|~~{}}}z{~{~}|{}~~~}~~}~|~z|}~{y~}z~|~z}|~||{}{}}xy~{}{{}|{~}}|~}u{w}|~{~|y|~|~|y~z|x}y}~{z~}~|z~~}|}{{y{~}~}||~|{~}|xw~~|}|}|}}}~{}}|{{|}}z~~z~~{}}}z}~~}|~~||z|~}~}~}}~{||~z~|~}}}|z~}~|z|~}~v~|x}~}}~y}z{z~z{}}~{w~~|{~}~t{x~|x~||}~}}z}|{~{~~~}|v|~}}~~~|~z}|~{z|}~~~}||~|}{}~y}{}~}~~}z~~|}~||{{|}~~|}~~|~~}~{~|}|}}|}~}|}~z}}z~z{~|}}zy~~z}{~~|~||w{~~{|~~z{|y{yz{{|z|w{|y}zy}y|~~{{}z~y{}{||}~|}}}}||xz|~~~zy}v~}{z{}{}z|}}}}{{{y}{|~~~{~{~~}z{{}}~}}{~~y{}}~}}~{}~|~y}z{||~|y}}||~}}~~|~|~~~~{z}}y{~}{}z}z|}~||||{y{{~~|~~}z}~~~|~|z~{}~|~|{y~||{{y|~y~~~}|~~|~y}|~~~{~y|}y~}|~z~~}|~}~|{~}yz|}{~x|~}{|}}}{~}}~}}{~}}}}~}}|~{}z}~}~~||~}yz}}y}~~{~}{~~~~|z~}~{~~|v|}zz~|~}{}~y~}}~}~~{}~x~|}}}~|}w~z~|||~}wz|}}|~~~}y~}{{z}|{~}~~~|yv{~}~}|~}~}|{z}z~{~z}}zwy|zu~r~wyzy~~}||x{~y}}y}{{~~z}}||}~~|zzz}x~~z{~~|~~|t|}~~~|}|z|}~||~|{~}~~{{~}~}}|~~wy||}~{{y|{~~~||~}w|~zz|}~y{u|y~}||}}}|~}wy|~|}~~{zz|}}|{|z}~~|}}{}}~}}|}|~~{~}|y{~}}xy}{|y}~w|}|~x~w}|{~{|z}|z}{}|{|}~~~z{||y{z{z}{}}~~{z{}{{}||~}}~{}zzz~}y|}}|~z|~v|zx}{}|~~}|x~w}}~|}~|}}~y~}~~~}|}}}~}||~}~}}~~||{|~}~{~|~}~~~}{~{~}|~}~||~z|y}|~~{}}|z}~~~z}~}}~~|{~|~|~~~}{{~}~}}|~y~|~||{|~}}~|~x~{~~~|}}|}~}|~~~{~zz|}{}|{}}~~}~|}}~}{{~z{~{{z|}|}|z~ww~{~{z~z}}~}}}||}||~~~|||~|}|}|~}}}~|{~|{{}{{}~}z}}{|y}{y}~x|z~z}}}~}{}|~{{}y~{y}|x~z{}~}}x~y}|w{~yz}}~}~}~x~|}~~|{~}z{~}}~~}}|y~}|~{|y~~|}~~{|}z~~}|{|}z|z~|~~{{||~|~~~~~~|{}}{|}y~~~~|}}~~}~~}~|}}|z~~~y}|zz~~}{z}}zu~z{}z||}|}|{}}~|z}|{y~~z|}|}{~||~~}{}{tz{y~}{xz}zx~}~}~}~{}v}w~z~~}|{zz~u}z{{{y~v{||~z}~z{|}x~{v~~||||~~}~vuy{{|}}{z{z|~{}}|~}~~{xz}y~}z}|{|}~~}|~y}}}|{~|~}||}}}}~}}}{||}}z}x~~}z{~x}|x}~~y}}~~~x{|{~||}v~|}~}~z~y~~|~~{|}{w~~~}y~~}~~z{|~z~~~z|{{~~w}||~z~}{}~|~y}~{~~|~~||~{~~}x}zy~|~}~{|{}z}}~z{~z~|z{}|{}~wz}z{~~~}~||z{~}~|~~{}~{|{~}~|}~~~~}}|}}~~|}}}~}}~~{|~{{~|}~}{}xz{~}~~~y|||~|~}~~}}|zy}~|z~~|~{~~~~y~~}}~~|z}~}~|z|~}{{}|~}~}z|~{~}|~{~{{}|}{||z{~~||}}z|~}{|~|}|~}~{}~|}|w~x||}}}z}wz~~|~}}z}|}}}}}{~~|}~}{|}{~|~~~~|{y~}{{}zv~|xy{}|}{}{|zyz~~}||y~z~z~x|{~{~z{~~}|~~}}{|~y|}y||x~x}z}||{|}z{|}|~}~}}}~~|}~{x{z{zz}~|{yzz~}}w{~}zy~z~{|}{~~z}||x|z|~||~}z~{|z~{~z}}~{y|{~~{z}{yy|~~~~}~zy~}|}~}}~~z~{}~z{}}~~{}z~~zx~|~}{z~y{|~~{{~~~}xz~~~|||y|y{y{||||~{}y|xx~{}}{{}|~zz|~~~}y|~{||}|~~}}}|~{}~}}~~wz~~|}}y}}~~~~z||z}}}z~}~y}||z~~{~~x|~|}~}~~~|z~~}z~|{|~}}}~~~~|~}z{~~~}x{v{~~|~||~}~~}yz|~{y|zz|z|~|y~}~}~~{z|}{~w~}}~|z}{|~{x}}{zy{}|}~~}||}|}~z~~|z|}}|{~}}~{~u{~}~{||~~~~~{~{}y~}~x{}}{y}{|}~~y{{{}}}~y{}z}xx}v~~~y}}~|z{}z}|~~}~~z|~z~}{}|}}~~y}}{~}{{|x{~|z}}~~}x|~~}}}~x|~}z}|~}~z}x|{||~~y}}~}~z~}}}{}{}~~~z{|}~{|~|~}}~~}~{~}~~|~~x{~~|{}x}}{||}}~|y}|}~y{{~{x{|xv|{~~~~}y||~y|~{~|x}~{}~|}|}u~~~~{|~~{}|~~|x~}v}}~z|{}w|{|z|wy|~y}{~}}{~z}x{y|{}||}z}z{~}x}~~~}~|}|y~x~zx}{~|}{||{{{|~}|~~|}||}~}|}{}~{x{~|~||z||~~|~{}~}~y|~{|}}}~~~zy}}|y~~{~~y~|||~xy|y}~{|~{~~{{~|~}~z~{|~~~~r~~y~w~~~~~~|{}{}~}y}|~z}{}~~~~}u~~~{|}~}{z|~~}z|{{}|z|~{|y|{~wx}{}|}|~|v{|~}}}}}}}|z}z}}{|zzx{y~~~||}|~{z|~z}{~|~~{}{{||{}~|||z~~}~}}~~~{}z~}{|}{|}~{}|{}|~}~}}}y}{y}}}|wz{~{{|}zz}}{|||}~}~}}~}}~{|}{|~}}{{|y~}}}~y}}{}{}~}~~~~~x}~~~~~{}}~}~||}{z~~||~{|{~{||}y~}}~{y~z~~|x~z}~}|}~~yz}{z}}~}yz|~}|~}|~{|~}~}}~~|}~~}~~~~{}~~{~~z~z~|~{z~w}~}}~|}~|x~~~{|~}y|z}}}}{}}~{{}~|~~{~~}~}|}~}~|~z~~}~~y~{|~~}~|}z{|z~~}}z|}}}~y||}~~|||{|{|}~~~~z~|{|||~{~{}}||~|}zz{~z|}~}u{}{~||~~v}}}}{}}zx}|||~x~y~}|~~~}}z}}z{|~~{~{}~~~~w}v~}~|y{||~~z}{zzz{}}x|~|{y}|{~~}z}{|z{{}{~|y~{~~|{{~}}|{~}~{|}}}|~}}}z~z}{}|{|}~}~z|||~{z}~y}{~~}~}~||}z~|~}~x|~~{z}|~~~~y}{}}|y}~}|yzy~~|}}}{|}|y{}}~{~||}{x|~}}~}}|{|~z}|z|~~||z|||~{~{{||~}z{|~~~~|{}~v|}~}||}z~z}~}}|~w}~~}{{~|~z|~~~}~}}{}~{|~~~~|t}}~~y~}{~~}}}{}{z}|}{}}{}{}~{{{|{{~|}}|}~}z{}z~|~}}}||~~~}{~}~w|~~ww~~~z~{}}|{~~{z~}~~~}xy~{}|}~~{~x}}}}yz}z~~~z~~y}~~|z|}~~~~|~~~z|v{}z~{||||}|}{{yx{{}||x}~{~~}~~}xytx{}|t}~z|zt{~wy~zu|~}}vzwzt~~x|zz}z~rz{w}{zyy}ztz}|t~|w{~~w|{~|}|yzxz|y}|}|{~~~r}y}~}zv}zzz}|}}|~z~~}v~yw}|}z|~~}|x{{||}y~{{~|||{}}~v||}{{~~|}{zzz|}zz|~~~z~y}{|{~yz~~|z~{~z~|}~~~|{|}x~~{~t~~~}}|z{u}x}vxy}zx|~{~z}|||{{|~}}z}}~{y{~y~}{}|w}z}|}{~}|}}}z|}~~{z}}|}yy~}~~{~}zx~~~y}~s~~}|}{~}|}}z~~|{~z~}{~~|||{||{|~|~z{}{}~z}~~||~}||{{|~~~|~|}~{}~}~}~z}~}|~|}~w~~~}x{|~~|}{}}{}~~}}|wx{{{xy{}}{}}~yww}}~y|z|~~~z}}|z~}zz}}|}{x}~{||}~{~w|||w|y~}~u}~~|~||z~yxz|}z~y~{y~}z{}xxy}zz}}y{~~{{~z|z}}w~}y~~}|~}~|}~{z}~|~~|~}~w|w|{~~|{}~}{{~||}~}}}{{{|x~}}~~}~~~}~~}}~||{}~~~|~}}~~|{~}{}{|~~||~|~{}y}}z~~}~{~~}~||{~{}{~}|}|z}~}|~~z||}|z|{~z~~~~x}}~|~{~y{}{}}~}{{~~~|~zx}{}y|{}|~|||{}{z}~~}||}}|}~~{~|~}~{{}~||~|~}y~}~|z|~}}y~{}z~{~z~z{{~{~{}~~v~~~|}~|}}|}~~~|~|~|~z}|~~yx~|{|w}{|~}z}|~~}||}}||~v|~~}~{}y|}}~w}~}~}~}}z|{~}zz{|{}}|~~y|{y}}~}z~}~}~|||{~|}~|{~~~{~y{|}{~~~~}}|~vx}}~|}}~}~y~}~~}}~~u{}x|{|{~{~~|~~}~}z~z|}~}x~~|x~~~~y|{y||}~|||}~~{y}~}}}{~z{}|{{~|~{y}~~~}~~z~|}w{~|||~}}~~{||z~|z{}{~zy{{{}~{}|z|}~}}y|}~zz|}{~}y}~~}}{{}||~y~z}|||~z~z}~~}|||~r~~}wz|{}}|xxz|}}{|~~||~{||{{||{u}~}~yz{{}yz~{zzz}||~||}{|}~}w~}|~{|~|}|}|}}{z{|||{~~|~z}}x{}|yz|}|z~|yz~z}|}~{~~z}}z~{|{~~wz{}~~~~|~}}|z|~xy~z{~}}{||{~~}}|||~~{}y|~~~~}|}z}~~|~~~{{|}~s{{|~~~}~}{}|y|{z}}}|}y}||z~x}|y~{|~z|}~|{zw~||~{}|~}}z}~y|~~x|}|z|~|}~z{}zw{|}{yy|~|x}yz}~x}}|~}~~{}~{}y~{~xzy~z{}}|z{|~~z{~~x|z}|||~y}wz|y|~|}}y}}~}}w}~{|yz}{}y~|{z{~y|~}|~{~y}z}|~}||~~}}~{}}}~~~~|}}~}~~}}x~{}||z}|y~{{{}}~}~{y~~|}~~|}}|}|{|~~}}}}{||z~}~~~~}|~~|z~~~w}}|}~}~~x~{~{||y}}}x}{}||}{{}~|z~~~}yyz}~}z~|{~}|}|z{}|~y}~{w|x~|z~{|{x~}}}}}}{~}~}~|{|}~|}~|~|~}~}z~~||}}}|{|~|}}|~{{}}~~}|~}~}}{~|z|~|~~~~{~|}~~|~{~|~~}~{~z|}~~z{}}~zz{{}~{|~{}~~y}~~}~x}||y}||~{{y~~~}~~}|~}y~z~x{}}}z~}~||{~~}y}|~|}z~}~~|x|}~~u||~~}}{}~~}||y~{||y}~~|z{|~~{z~~~|~~~~y||~}|}{~~zz}zv~~|{}z|{}~{|~~}}}{}}|~~{z|}x}{||}{~wx}w|}}zw}xzz~{~|~||}~}z}~{}yw~{|~|}|}}~}|~z~~~~~x}|{}|}~}}|{}~{~}||{{{}y~|~w~{~~z{~~}{}}~|zw|~{}}}u~}||~}y||yxx|yy{|zx{~|{||uvz}||~}||}|z}x|~sw}{{{~|~z|~|y}}~u~z~u}|}y}~{{}z|w{~~~~y|{}}~{}}}}~~~~z~~~~|~||}~~y~~{~|{w~~z}}}~{~}}|z~~|~~|~}~||~~}~~}x~|{z}}}z{~z}|}|~{}~~}|v}x|}~~{~~}|~}}~|~{~}~{~}|~|~~{~|~y~~~~}}~~~~|~}}{z~~~}}~}|}}~~~|{}z~~}}~}w~|~~}|}}}|z|{}x{{}~~|~}~{}{}}~}{z|{|z~{~}~|}y~~yy}}|~{~{y{|{}}}~~~|{~{~{z~~z~~||~{|||}}~|{|z{{}~~|~|~~~x|~y}z}}{v||{y}~{y{{|z}z|}~{|}~}~}}~{}{~~||}{}|{}|~||}~~~}|}{}x{~|~~{~z}|~x}z{}}}z|}y|x{~x~z|~y~~y}}}~z|w}~~~}}x~}|}}~|xz~~~~|}|}~}z|~}~~zy}}}~~}~{~~~z|~{{}|y~}||}|{|~~}w|~z~~}z|}|z~~}|~{}}~z~||~|}}|}y~y~~}~}|}}zx~z|{~}||}||~|y}~{~~~~~}~}|~~~~}z}}}||z}z|~~~}{}y{}}}~~~{{~}}z{}}~~~|~zz|{}~|{~z}|yy~x~}}yyyw~|~xz{}{~|}~}~~|||}|~}{~~~~yx|z~}|~~{}~}|~|~{}{|}}~~~y|~}~~zz}{}~}}~|~{~~{y}}z{|~~~}|{}}}~~|z}z~~}~}{}~~~~~||}~z}|}}|~|y}|{~|}|~~y|}|~~y~~y~~{}~{{|z{~{~~|z{{}}|~y|{|l|}|}||}}z}z|}~{~}}x~~~y|{{~|~||zx~~}|~~y|}~{~|||}z~z~}~~~y}~z}~z}~|||z}~vx|yx|~~~~~y}~{}~}~`}~}~~}~}}~~y}~~~~~~~}~~}s|||~}~s~|~}~x}|}~~}~}}{}x}|~~~}yz|}}|~x~|~~}|~~~}{|}}{{||}~}~}|{}~}}|{|{~z~{~|x|~}}}zy~{}}~{w{|xt}{~~~}}|~}{z~z{~~|}|~|~}|}{}{}}z{}x|{|||}yw~~y}|{~x|~x~z}}~}}x~~||~~~~}{~z~~}~z||y~}~}}}~}|||xy|}|{~~z~y|~~z}|~{~{xzy~{}~~z~~~}|}y~}~~~}{}|~{{~~|z|}~}}{w}~~x~}~}~}|}}~~|}{~}|~~~|~~|{zz}||y|~{z~||}~}|~|z|}~|}}}{y}y~~|~~{}}z|~|}}|~{~w|~}}}~}~|w{~z}|}~}|{|~||~~{}~y~{~}||y|{~}{~||~{{}}}}|}|~{z~~zy|w|}~|y}{|{~yy}}}z{y~~}}}~{||~y{}~~~{z|z|z||||}}}z~~~{~}~{}~{y}~{~y{w~}~~|~|{|||~~~|~|x~~|z~}z{u}}~|}|{{|}{}|y}~{}v|~}~~zz}~{x|}}|~z||z}~z~zy}~|||~}~~wx}z}~~y{~}}{{~}|~~||~~}{yz~~~|z~|~~{~~|||~|{~~{}|v}||xy~{~z~{wzw|w~~~}}}{v~~x~~{~|y|x~zxyz~}~~||~z}{~||~{}~~z~z|}}x{}~|~{y|~~~}}}{|y{}}|z|~~|~|{z}~{u{~z{}~~}}}}|}~~~}~{}}|{}wz~}|}|tzy~xz}|y|{}~~z}~~~~z|z}~wyz{{}~|~~{~z{~}}|}~{~~~|}|~~w}}~~{|{x~z~}~{}{|}yz~{{|}{z{zw~~|~}}{{|~y~}v~~|~z~|~|}zw~y~~{u{|~}zv~}{z~|}|v{~x~}s~~|~~}wwz}}~{|~~}~~}z~{t~z~|x}~|~s~x}|z|~~~}~{~~~}}}|~|}|{{~|~~~{~|v}~t|~~~}}~}x|vyz||}s{~w}|~}~|~~~}r||}~y~|~}~}~~~}|~~}~|}}|~uz{~|{z~}~~~|~}x}~~y}||~|}}~}{}~{}~z|}}}~}{|}~{|v~~}~~{~}~{y~}~}}}{}~~~xy~|}{~|~}|~~|}{~|~w~{~y{zz}}~z{}}||~y|~}~~~~}z~}}x~z~r{|~|}~~||~~||y~~}~~z~~~~||}~~||}{|}{~{~}~}~z{~~}|~}|}}|~~|z}~|~}y|}~}~~||}~~z~{}v~~w~v}|}}x{~~|~~x~~~~~~{~z~||zw~~}z{|~}~y|w~z~~y~y~||~zz}v~~w~|~~|{|~|~}}{yw~}~|~~~{}}}|z{~~}}|||zxw|}~|}|~|}z{yw}z|}z{}~~}z~}{~{}}zy}}x|}~{}~~w|}{|{z}t~~}}||}z~z}~}z}~~~}~}z{~}~}~}}z|z~}~x~{}~y~~~}yy}z}}}yz~}}z||}~}~}}zx~|z|~|}|{}zz}~|z|~y{~|z}~~}|xz~~{~zz{~~|~~w~y}{|z}{||~}z~}~}~}~~~~~~|}z|~}zy~{~~{~{{}|{~}}|~|s}~}}~~z|}}{}~|y|~}}}~~}y~{~{~|z}|{~|}|v}}~}~}}|~|}~~~~|}{}~}{}~y|~{z}{{}{z~x~}}~}}~~y}}~}{~}|z}|}~y~}~~}~~}}}}}|{}~}~|~~~}|}}|~}}~y~~}}z~}zy~y~{~{}{x|~}}~{}{y}{{||y}z}}z}}~~||~~}|x}}~||~{}w|~~}~~~||{{zzx{y|~~~|z~~~~~}}~~}||}}}~||z}~xt|}~{v~~{v}{}~}}~y~|~|}u{{{|{}~z||{|}}~}~~x}|z{{y~}}z|z~}|~{~|}}}|||~|}~}~{y~}}||x}~{~}~~y~|{}~~~|xy{~|}}~}~~x}|}|~t~}}}~y~~z}~{|}}}}~|w}}~}{zw}~~~~y||{~~z{}}{}~{~}z~~||}}}~zz||}}~y~}}~}~}~{u~}|~~y|||~~z~~~}}}}}~}~~}~~~z~}{~~|{|~|~~{~}}~v}}}~}{~|~z}|y{z~{||zz~}{}}|}}{u}|{}~|}|z}u}vz|{{yw~~{{~}z~uz~|~u{{wz~~{{}|}~~u~}~{~~v{~|~~{x{~z}|}{{{~}}~}z~~~}}~~|~}~yz~~{~|}}~{~}}}zx~~z~~~}}~~|}}~y~{{}~x|~~{|}|}~~{{}zy}{~~z}z{|}||~~y|{}~||~y~}|}}{~z~}}}~}~~~u~~}||}z|z~|~zw|~z|~|}z{z}~z~}|}zz~}}}~~~{~x|~w~|~~}|uy~|}|}~|}~~}~}~~x~|}z{}}{{}~z~~}}zz|~~}}~{~x~~{}}x|~{|~~}{~|~z{yxzw~~{~~~|||~|w}|~{|y}~}{~|~{|~|w}}|~|}~{~|w{z|{~~~~~|~~{|z~z||~}{}|{~}|||}~~}~{~|z{~~~|~{{|}{w|}~}}|}~{}xx}~}|{|||}|}~}}~{~~|~z}~}~~x~y|}|~{w~~~}~~|~{||y~}||}|}}|~~{|~}~~~|~||~|}z}~yz~z~}xz}~}}|||{~~z~{}||~{{{x{}z|z{~}}|y}}w||z}|~~~~~~~|y~{~}z{}}~~zy}{~}{z}}~}~}}}~~||}~~~}~~~||zz{{{z~|~~~~}}~~z~}}~|{|||{~{~|}~z{~~}}zv~}w|~~yv}|}y~{}||}z}||z|}}}|}_z~}}x~~|~}~}}~o}}~{||}|}~|}|{~M}}~}|z~||z}w|}~|}|x}|z{}{}}z}}~~z}{~}x|y}|~~{~~}~{~{~~||z||}~}~||~}|z~|~z~~{~}~|{~|x}~|}|~~}}{}y~}|}||}yv}~{|~}~~}~}|~}|~~~~{|{}{~|~}~}~~}}z|}~~z~}~}{~z|z{|zz~~|{~~z~}z}}~}}{~~~||~|~~|}~}}x{~{}}z{}}|~|~z|~~}|x}}{y{{}}~~}}w}|}~|~~~|~}~~|{}zv}~}|~|}~~}~{xxyz{|{~~|~y~}}y{||~}}~|}}~}}~|||z}y}|~||}w~~{}{w~}~}wzz~~z}x~}|}}}}~x|}yz~}|zy{}~|~~{~|xxy}~~|~{{}|}}}}y~}~|{~x{}}yxx|}~}~z|}z}~{~}}y~~v~~}}{w|}y|y|v}~|~{|~y}{~||}~}~}~~}}vw}|u}~~}}}{}}{~{z~z|{}~~~~~~~}}}}~~~~}~~|~}~}~w}~|~z|}{|}}}z|}|}}|}z|~~{~}|~z|w~{~|~z{{y~y|}~{}~{}{{}~z|~}|{}|~||~~zz~~}~}}wzy~{{}}~{z~y}~|||||}{~~{{{|z{z~~}~x}|~~~{}~|~~}{x|~}}|}~{}yz~zz|||{~~{}{|}}~}y}}|}z|{y}|~}}|}{}}x}y}~~|}|~t}{||}z~zy}|}{~|}{}~||{~}|~}}~}w}~y~y{~{}}{}|~|y~{~|}{~}~{}x}~}}x~|~||{}~}~xy}z~}}{{~}z~{~|{{~{}|~|~|}~~z~~||~}}~{{}|~}{}}|}~{{|~}{}w}}~}~}{{~y{{~~xy{y}~ywy|{{xs}}y~|~zs|ty|~~|}z~z}{~v{|~z}{~vw|{~{{}x~~z~{~{zy}z|~|}~}~zx{y{~~{{}~z{~~}{||yx~w|~}yy||{~~}|y~}w{y{y}y~}}~|~}}}|w~~y{y~}}{zx{{|~~}~||{y~~}|~~~}~{y}}y|}}z~~}x~~}~z~|x~|}~{~}x||y}}~~z|}||||~}~{~~}}~yyy}|~|}|}}{~{}{y{|y{~~}}yx{{w~|~~~}{{|}{}}}|x~~~~}{~~}y~}~z~z~}~|}|}|z{|~}~|~}~}~{~}{~|}{~y{{{}~~~|{~|~~}}z{~||}~|~~}~~|}}~{w{z|}}|~y}||{~z|~z}}|xz|~~{}}{{y~~|}{|{}|v|}zy|~|{~|}~}~~}xzz{|{z}{~{z|zy{|||~|}~~~y|}z{~~~~~|wx~~z~z}~}~~y~xvўx썗r}~~|{~~|w~|z}}z~|z~|z~~~|}}}yz|~{{~zz}~{}}{{z{}}{z{~~}y|~||}~z~~}{{{~z~|}}~|y}~}}}~|||{{~}w}~{}}wz~{y}}{}}|y|}|~|~~{~~{~~~~}z{{}{~|zx|}|~{||zz~||~~}z~~~~}{x{}~x|~{~z}z{~y}~~~{~~|}~}}{|{}~}||{~~y{~~{{}}~|~{~}x~}{{~}}~}|z||}~}~|~~~~~}~}{|x}{|~~}}~~}|~}|z~~~~||yy~||}|z}||~|~z}~~~~~}|}|~||}~}{|}|w~~z|~|z|~~zz{}|}{~{z{yy{~wz{}|{y|vw~x}{y|v}}}z~|y~}}|~~~z|}z|~{|v{{}v|zy{~}~~~~}~z{{~}{}w~~xz~|~|{}~~{~{|}{~~}~~|~~}}{~~}|}}||~~}|{|y}}{~}~~~w}z~zw|~~~~}}{z~{~}~|~||{y~~~~~~~{~~}}x~}}~~y{|yy|}}|xz|~~}~}}}}~x~vxz{}yz}|}~{~y}}||~~{|~|~~~||}~|{|{z|~z~{~~{x{|~y{||~z|y}|}~~}{z}}~|~||}z~vz~{}y~{|~~z{~}~y}{~|}}~z~}}x{z}|~~}~||~~y~}~}z~|~|~}~~}~}|{|}|z||}~~~||x||}~~}~{~}}~~~}~}yy||~y{{}}~z~{}z~|~|{~~xx{{}|~}||}|}{{|~~{~~{}|v~y~z~|{|zxz~xzz||~{~}}}~~z}}}|}~~|{~~}yz~yx{{}v~~|zz~}~z|{|~{~|~~zz}~}||~~{|x{}~|~~~~|}~{}z}|}~{}{~u}}}|y{|~}}}~~{~x{|}~|z~{}|}|}{y|}~x}{z~{}}v}|z}~}}~~|{{~~{}}{~~~y~{}z~}{}~}|~}{{|}~~y{||~~zz}|}z|}~~|{v~}~}z}}|~}||||{}~}~|{{}{}{y~}}~}{~{{{~}~~~~{}z|~~~~~~}~}y|{{~z}}}~y|~~~{{{~{~{~~~|~z~~}}}{}~|}}~~}~~}|~~zz}~y{~|y~{z|}}|~~~}}~{}~~|~~{{~}}}x|{|~}{~~{}}|||~~|~}}yz}z|yy~}}}~}~~}{}}z~{~zz{zw}}|}}~|{|}{~z~{}~|y|{}}~|}~}}~{~~|}}{|}}|{z|}~|}}}y~~~}{z~{}|~zy}~}~}|~{|~|}yzzx}vtwy}z}~~y}}}|y}~|~x~~z}}y~}}~}{{||}}}x~}}~}~}~}~~}~~~x|}}{{}~z}v|}{{|}||{~}|}~{~}z{~~|zy{~r~{~|~}}|~y~{|~~~}}~~|}~|~|||{{}~{~|t~|~~|}||}|y~~y~w~{||}}~~~}|}y{{y{{{{}}~~}~{{|y}}}~~|~y|~}~|||~}~yy{~|}}~~~}}{{}~~|{~|~}}|{~{}}}}}y|y~~~~~~~y}{}z~}~~~||y~|~~}}||}~~|}z}}~~y~y}{|y~}}~}y{{|w}~~~}}}|}|}}~~~{{{z~}|}}~w~~~{{|}~z}{{~|~~}|~~|~v~w~y}|~~~zy}}{{~|}}|~{}~~y{~~~}}vy}}{|{~}}}}}}z~w|~~~}|z~{}~|~}~}~}||~}~}}~~~|{~z}~~|}zz~zw|||}v}}{}~}~~}y~~}|zu}~~|~x~|wx}~y~~~z}}~|||x|~}z~yx~x~}~}z}}{~z}~z}~{w}|}||r~}xy{~~~z}}}}}}~v~|~z~~v}{|{~~|}~~}}}w}~}y}|~z}|}|}~{||{|}}|}~~|}~||}{|z~z{}|~~~||~~|}|~z{|{y~{}}}~|}~~|~}y~|{vy}}yzz}}yy}}zy|{{{||}y|}~}{~~y~~~~~|{}~}}~{{}}y{y}{~}}z}}}{}~}{{~}~}|~~|}{}|~r{}~}|}|~uyzz}}~~{~~~z}{~}~~}~z}|u}{}~~w}}}x{~}}}z}||~}zxx~}z~w}~|{~~|{~{z~y|{|~z~y|~|~~~}yuz}~{x~|~x~xz~~{}y{~|~t}}}||}|}u}|v||}}||z{|~{{z|z}v}y~{|~}~|~~~}|~~~}z~~~w}|}|~}}~~~}~~wy~~~{~}}}}||~~z~~{}}}}y~x~{~~}}~z{|y~~ywzwv||}}~}zz{~}~x~y~z|z~{{~}z}{}~{y}{}t{z{}~{}{~|~|~|w~w~~}y~}{~{~}}|}z}z||x|wuzz~zz{||z~x}w}{}{~~}}{~|z~~x}|}{}}yz}}~}z|~}~~|{z~~zy~~{~z|}{}~{||~{~y|}}xz}}~~~y}|~~|}|~|y~~~~~~~~|~~w~y}~{}}~~}}x~~~}~|~{}{}z}|}}z|{}|||~}zy~||{{{}zy}|||~~}}v}|}~~x|}~~|}{y~x}}||}z~xz{}zx~}||~~~zuy}z{~utw|}|}yz{z}}}}~x}x~|~{|~~}~~y}|~}}~z~~z|~x}}}~zz~~~{}}{~~{~~~|{~}}x~}}~|~~}~w~~{~}z|~~}w}}|~~yyz{{}}{}~y{{~~}{~}z~u}{~|{~}|~}~~z~~}}~~{~|}}}|~~|}~z{|~y~}y~|~}~~}~}z{z~}~|{z|{|}~x~||}}x{}~~|zv}}~z~{}{~{~z}}~}~~{}{~|~}~||}~}y|{~}|}{{y}zz~~z}~~~~||}}}|||{~}~|}{z~{~~}zzy|z~{}{~yz~{~|~~~~{|||}|}~~z}|}x~{}{xz~||}~y~~~|{y}~||z|}}||{}~||~}||~~}}~||}}}|}}{|z{|w~z~}}y|~~~v|z~{|||}|||}x}}~~}~~||y~{|{x~~~}}}}{~~{|~~z~{{|}}~}{{~||~~|{}~~|w}~~~z|}~~~}~z{~~|{|~}{z~}zz~~}~}~|~}}~}~~|w~~z}|~{~~||~~x~|z}|~~y|}u~||{w|z~~|zv~x~|~}z~~~|}|~}x}z}}~{w{~~x||~ux~~y}|~|}z|{~w}{w~{}z~|y}||||{~z~}}|{~{~}||}|}}z~y|~~{~~{|~}z{x}}{~}~x}~~{~|y|y|~~~~||x|~{}~vzy~x~{~~|y~||~}z~}}}z~w~}zyy|}}~}}{{z~}||{~~{z~}{t{~~{w~v}~y{{z}z}}|z{|}~~~{~}~|zz|{zz~~}}x~~}s|}~x|y~|}}}~||~~z~y}~}{~}|~{}~|~|}~}{||}}{{{~q|yv}}~|}{{z}}{{||~x}~{|~|~~}~}~~|{z|z}{~|{z{|wx|}y{~{}||{~~{}}~|~~|}x{}~x|~}y{}}~~~~}x~{|y}{z~~}~}|~~|~~{}{~z|{z}{~{}{|}|~}~w|~z}}~{}x~}~}}||~~~~~|{}{{}~|~{~~|||~z}}~~|y}}~{}~y{|~z~}~zwy}}}|{}~}~~}zy~|~yyz~{y~~|{~}{~}~{{zx|~~~~|v}y~||{{~~{|y~|}~~|}||}z|~~~~y|x}{||~}{~}~{z~}}~}~|z|||}~}~~|~{}}}}{z}{~|~xyz~w}|~~}~wz{~}{|||~~zw|~~}y~}zx~~{y~}}}~}~}}vz~w}||y{}}~~}zzvz~~}{}{~}|~}}~}|~||y~}~}~|{~~~~|y{~z}x||}z~{}|y~}~~|}~~~|z||~|}~|~{~~~{~~{|}|~}}z~y}~y}}~}|||}}zy~{}|~|~||~z}|~|~|{{}z~}}|}|}}{|v||~~z~}}z|||}}|}w{~}|~}~{xz}}|~|~}{y}}~y|~||~}{z}~w~~}~v||~}y{~}~~v}}y|~~~~}~{~w}~{y|{~{~}}|~|~{|~{{~|w~{}|}~x{z~{|~|}~{z~}}}y~~~}~~}}}~}{~}zz{|y~zy~v|{~|~~}|}}}~~|}}}{}z~x}|{~{w|{|}z}~|}~{{}}}}}~~}z|z~y~~~~||||~~~~~||||~}|{~|~~|z~~~~}wz~~}}~||{|}xz{}~y||~{{z~yz~~~{~|~|z}y}}{~z}~|}}}{{}yz|}|}z~{}w|~}~~z}|}{zw{}|~~|}~|~z~{~}~{~}}v}}|~}z}~~~}~~}~z|}{~~|{}z}~}|||}|~}{y{|{}~|}~~}{}|~}~y~{~}}|{}}~~|}x|~~~}||~}~z}||~}yz|}z}}~~}z~|~~}}{~|~~~yx~zy}~{y{~}x}|}x|}~}~{}{}~~~z{~||}}~|y~~~||{~~}~||{|||}{x~}{yvzz}zzy{|{|{~}{~~z|~|~~y}~~~}~}~}~z|{{{~y~|{z{|}~~{uz}px~{{}u}{~|~{~}~~}y}~{x|{~~z~}~~~}zx~w|~}}z}{}z~|}~||q}~w}~}}|z}zzy~|~~|}{u}|y~~|x{x}y}{vu}z|~~~|y~}{z~|{~}y~~}}|}}w||z}~zvzyu{z|{}~}xxy~x}~||{~~|}|~zu~y{}||~}|~|xx~}{{{|}z|}|z}}~{zx}~yz{}{~|~z~|||yxu{y~}|y~}~~}}~x~{~w|}}}~}}{~~~}{}}}y}x||}{}~}|}}|}}|~|||}|z|~z|~~|~x}~{~~||}|z~~~}~~~~z{{}~~~{~~}~~xwzyzv}}~{|{v{z}||}}|||}~zx}}|~}|~}}}{{}z|{~|~~|{{|~~}|}~~~|z|}~{|}~|~|y}zz|~}{z|}}|~~}}}~{{}~~~y~}|{}|{{|}~{|{}}|}~~~x~~~}}|~z~}}||}|}~}{~{}}~z~~}}~~y|{{~~}}{~}|{~z~}}{~}~~~y}z~}|~|z~{||~||z~{xz~~|~xy~{}{}~}yz{z|y}|{}}}}}~z|}z|}zy|}||}{~}~||}~z~}~|~~}|||}z}}}~}z|||z~{yzyy}}~|zx~}}}{}|{}yz|}{~{}|~zy~|}{~~}}x{|v~}~{}~|x~{{~~}~}z{~z}|z{}~z~}||x~xy~~{x~x||}y~y}~~}|y|~z~~xz}~{~~|}~~}}}|~}~}{~~}y}~{|{|z}y}~|}{t|~}{zy||y~|||y}z~~|y~|~{zzz||{||||y~y{j}~||}~{}~|{||}zp|~z}~m}|||z}x}w~}~~|~}zo~}~z~}n|~z|}{|~}}~||w{}~{||x{}t~y}zz}x~kz~|vxzyy}{{y}{}|~~}~~{}~~|zw|}~z|z|{}|x{~|}{{{{~}~|{~|~x||{q~|z{}~{w}}~{x}z|||zp}|oz~{}u|z|~|~}~|}{{}y|~|~|||zy|y|z~}|zu{{{wyt|~|}|{{|}||z}|}u{}|{~~}}~}~~}z~{{|~y}z{y|~~~|~x~~{~y~~~~~||x}~~~~{~z~}{~}|}|}~|~~{|||}}{}~~y}}|~}z~~zz}~~y}~~}|}z~~|z{}}y}~}~y{{~}}}}{}~}{}}~~}|~}~~|}}z}~~||}{{~y}~}~~}~~{~}}|~}|~{~{~}z}z}}{}}~x||}}}|}~~~~{|~}|{~}}}|{~~{~}~xz}x}}}{z|}~}{|}~}v}~|~||}z~||~{}~~}~~~z~~~{}}{~|~~|}{}||}~}|y|z{|~{z~|}}|u~~}|{|t||z}~z~}|}{~~|~}~}}~|{~{|~}~}~}~}}wz||y{y~|}{}||{~~}x{~~zz~~|~}}|z~}~|}}~vy}z|~~}|{|z}|~~~zz~~{{~|y|}z~~|{|}~~|{}w}~}}}~~}~y~~}~zy~~}w~~~{}{z}|~|}}~}z|z~}|~~}z}{~yy|}~}}}}z}|y~x~}}||r~~~}y~{}}|z}}|~{~~~y~|~x}}}}}}y|~||{~}{}|~}~}|z|~x}~~~}{|~y~}~~~|}|~y|y~}|~~|}~}x{v}|{{}y{~|}||y~z}||zy{~}|}|{|}~||z~{~}~z~|~|}}{~~{~}}~|~}~yz~~~~~}~}|y{y}}zz}|}|y|}}}|}~}~~~~|{|{}}}~xx|xyy~{}~{~}x|||x}}|}{{}|~~{|~{}w~w|~}||~~z}z}{~|y{}}}{{~~|{}{~~z~{z}~xy|~~~~}{{|~{~}||}~y}}{z}~z}{{}{|z}|~{~~}{~|~{}}~~}{~}{~~{}xw}}{{|~|z|}{||}{{~~y~~||~~{}~{||}}|~||{{x~z}~~{|~{z~~{~||z||~~{y~}~|}x|}y|}zy}}~|{}~|x~yw~~~||{}z|~|{}~~x~~~y~}}}}~|}}y~}{{z{w|zz|z}}{~{y~|~~|~|~|{z|}~}{}~~{y|~~~}||}~|~y{z~|{~{|{yw||~y~}}|y}{}y~tyz|~}~~}|{}{}~||z}|~}~||z|}}|}~~~~~|{~|~~~x~z}}}~~}~~}}|}}}~x}}{~}~zzz~|~}~x||x}~}x~|x~{}~{z~~|{{~}}|z}~z}|}z|~}~~~~|}z{{}~~|}z~|zz~}y{y|}{~~}{y~~}{y}z}z~}~~x~}y~}|}x|}|y~vz|~|}}|~~z~~~}~yzz~}}~||~{||{|{|}}{~}x|v}z|{}|z}~xx}}|~x{}{{|}}~~|~~|z~z~{}y~~|||~}|{}~~|}~~}}z~}~~|}~}|}{{|~~}y~z|~}~z~|~~{{}~~|{|~}}~x}|{|~|}}z}}|z}~~v{{~~}{}xz~~~~~z|{}|~z~|}~y~||{~|~~~y{~~~q|z}~|}~|z~~{z~z~z}}}~~~}~~|~~{{|~{~|~y}{||~}~yz{z||~w{~}~}|~}}}|{~~|}~~zx~~~|~~{}~}||}}~~xt}z~}y~}{}{z~}}~}{}|~|z~||}~}|}ux}zy{}|{~z~~|~~}{~|z|~}}y}~y{~{~{|}{~z|}|}|}{~~v}|z}|~{||z|||{}|~}}~|}~uu||z{z|~zz}|{z~~{}}~{~~}~y{w~{}||z~|y}}~~}}{z}x~~y|y~~~~z~||~}}}zy{{zw|}|{|}{{~{~~~~}}y}{}{|}~|}~~z}}{|~~~}~~y|z~}{w~~~z||}|~y{y~|}}|}w}z|}t~~~|~~|~|~~{}~||~|{{}|~~|}{~z~}}yzx}~}x~w~|~||||}xx~}|z}}}~}{{|}{}~~}||~~}~}}xy~~{~}|~{~z}v}{}y|y|z|zz}}~xyu}|}||}|}~~w}z~|{||~{|~~|y|}y|u~~|~~}{|{y{}}~w|~z}~{~}}~~}}|y|~|{{}}~}}|{~}}zzw}}z|}|~~}}zz}yy|~|z~~|{|}|~}~}~~y{~}{{{~}~~~|~|{|||y{|{||xy{|~v~|}}~}{zz}}|{v{|{~}~}|zx|~|}}{{}~|~|~~|~|z}|}~zz|~{y||~||~~}~}||~~}}~|zz}z}~z|v{xu~}z|u}}{{{|}zx~}z|w~~~z|}|~zx|~{||}~|~|~~xz~~~~{~z~}~~yy{}~~}}}~}~yw{{|y}}{y|{{}~~{}{}z~~~{~}z{{}||y}|~{{|z|~x~~~~|zz}||}~||}}~~~}{{{~~{{|}w~}}|~|||}{}}}~}}|~y|y|~~~{}|}}|}||}~{{{|}}|~{z|~}|~}|~}}}z~|~}~}~~|z~~}~~~}}z}~|~|}|x||zzy~z~{|{~z}~~x{~ywz|z}ww}~|{{~~}|~z}y~}{}|~~z~~z~|~|}~}|~}x~~}z|z}{w~}{~{{{}}||||~~~z}{w~~~|yz~}y~}~||~~~}}}{z|~~|}~|{z~~{v||~{}~~~}~~|{}{}~}}}~~|}~x~|}y|z~{}}~}z{~}~|~~{~{|||}}}|~z||{{~~z}~}~yy||{|~|x}||~~~|~}{z|~{}}s}|||~~~|}~~|~~~~}|y~~}|}{~~|w}zx}}}x~}{~~|}~uv|}~}~|{~{z~}{|||~y{{||~}|||y|x||}~~x}}{~z{~~~zz}||{{|~~}}y~~}|z}{{}|{|~~|~|x}zy{z~|~~{~|~{}||}~{|zx}}~}}|}|y|}{z{|x{}}}~~~{{~zz|~{}y~~}~|~{~{yzx{}~zxy|}{zwz|~{~{}yy}|y~|~~{y}z}|~}}}y~~z~y~~}zzv~}y~~~y|z~|}}{~y~{|~z{|}|x|}{{z}~xyyz}y}~wv~~{}}}}{x|{}~y}~~}~}{~}z}z~|~~z}~~|~~~}~~~~~}}y{||~||~}{~{~|}zzy|{|}~~}}z{{|x~z{~|{~}}z~~~}|~~}||{~|{|{~}~~}{{{}x~~~~zz}v||}|~zwy~}}y}~}~}z}yzzz|}}}}y||{x~}|~~}}}}|~|}}}~z}~~x{|||}~}}}|||}~||~{~|~~yx~y{~z|}|}~~~~~~w~|}||y}yx{|~z|zy|{{x}~{~~y{{z}{{~z{|~~~}~x~||}|~{~zy|~z}{|}}||~z~y~zzx~|||}~}|~~~~~~|y~|~z~yw|~{y~}~xy~~~|~~zz~}}}||{{z}}~|{~~{|}}~~~|~|~}}~~x|}}~}}z~}z{}}~|~z~~~~~~}z~{|||w}}~z~}|~|~~~{}~}~}||~}v~}}~z~~|z}||{~}~~~|~{~|}~}~~}}y~|z|y~}~~~}~~y{}~}}}}|}}|z{}{~{y~~zz}|y~{~}~{~~~|}~}|~~}|{}}}|~}}w|z||~|z|~{{}~yyw~{|}}}~~|}}~zz{~}~|{x~{{}x~~{u}{wz}{~yz}~~x~~|~}|{}}x~~}~}|y~|||z}~z|}}{{~|x~~}}|{}}|z|}|z}z~{~z~s{}~{z{|}~}|{}~{}}~}{~}~|~z|{z|z~}|~~w}{|{|zy~z~{}|~{}{z~|~~}{~|}z~z|~}~~}z|~}{y}{}{~~{}~~}~~}|~|}{}|~|~}}}}~z}~z~~}}|}z~z|~||~}{{}~~~}{}{z|}y|z|}{y~~~}y~|~|}{}|~}|z|~~~~zyz|~~}{~~~~w||vx|}}}{|w}}{xy}}|{}~|}}}{~||}}}}}z||~}~~~}~}~}}|{v}{~|~{~}x||}}|}~~}tz}}}}{~}}~|||{~z{{y~}z|z|}{x}{zw~z{}|}~~~~~~~}{||~x}|{{{|~~}||}y|~}|~}}z~}||}z|}~~z|~}~~~z}~}~|~|}}~z}{|~|}~||~z~~|}{|||~|~y~y|}y}~}}z{~|~}}yz||}}~{~~~z|~{~{{|{}xz{{~}x|}}~|~~{|~~}}~~|~}{{~{|{y~~yzy}}}|||y~|y}~|yz~}{|~|}~~|~z|}}}|{~~}|y||||}~~}~}z~x~|}}}{|~~{xz}zx}|{||}|}{~{~}~|}{}~~}}|~~~~{~yx{~}~~z|z~|~}~}~}~w}{z|{|}~|~z}{v~{~|~||}y|z}}|{~{|}~|{~}}x{~uz}~~|}}{~~x{}|}~{{x|~{}|}|}}{|}{}|~}||y|~|~y{}}|{}~}|}~~z~~~|z}{}~|~|}z}}~|~}~{zz~~|{~~~|}y~~~{{{y~z|~x~~y~~|~|z|~||}y}}||y||~}|}y||}}}||~|~~~x||y~}~}}||}~~~|~}~zy}~~~~z}~|z~}{}}}}}||}{~y{~|xy~|}}~z~~z{~~~~}}~y}z|~{}v~||y}~~}x~z~{|z}{}{zy{~~y}{}}~~|z}z~x}}~y}}{y|~{~|}~~{~}|}~}}yyw~y~{~|}||{x~{}|y|}z~|||~yxwv~}~~}|~}{}y{~y~{~x{~|{~~~||}{{~{~~|x}||~{~{}x{}|}}x|}wz}w~~~}~|}|||{~w|~|~||}}{||~~~}}u{~x}|}||y|~}}u}{z}}|~z~~}~{|}{}z|z~~~{}~}~|~~~}||z{}~}~y~~{|{{~|z{~|}}}~|}}}{~wy}~{}}z}}}|{}~}{|}x|~}~z|~yz{~}y}{~{}{~|~zz{~~|~~}z|}~}|{|~}v{~|z}~|~}~~}|}|}{zx~|~}~}~}~}{}}|}y|}~{~|{~~}}~~~x{}{||}~z~}{}}{{}{w~}}x||{}}}~}|z|}z}|}||}}}{{}}}~~~~{~~~z~~}{|}|~~~~z~}~}}~~~~~}~}|}}z~~}{y}|~}z~|~~}||~}||{{~z~y~{zw~~{~||}|{~|}w~~x~}}{}~{~}y|{z~z{}}~z||~t|z~}~u~|{|~|zx|{y~}yz{y~{}u{}{~{zy~}|~z|wz~z~}~xt}}}~~{~}x{|}x}|~{{~~~}}}|||w~|||}z~{}{~y~}{{|z~|}~y~}|}{{}|}~{~}~z}yx~z{}~|}}|~~~}{y{y~}}{}~~|~~yy}z|{}}z~~~~~}z}|~{~~~~{}{}{y{}~{{yx}}~~z~~~z|~}}|}||~~yzz~|}~~}~|~{||yz~}}{{~~|z|~~}|~}~~|}}x|}~|~~}~~}~}}{||~~~zz~|v~x}~}~}|z|~||{y|}~~~~{}}}~~}~{}~{}~~~~}|w~|y|}~}}}~|{{~y}~}|}z}}~~}|~}~~|~{}}~y}}}~}~|~~}~~}~|z}}z}|||y~{}~|z}}w~z~{y}~|}{w|}}{z~~|~~w~}}||}||~~|~w}~~}}}|}}{||y}}~~z{{~|~~z|}}{~|{|z}{}{u~~}~z}}~yu{y~}}{{}~|}}{{}~y|y~{~{~~|{zzyy~}}~~}|zx~}|}~zx}z||x~z{z{}}{~x}}|~v}x~~~|||~~|xz~}~}~~}{}{~{}}}xs}~w{|~~wz~|~~||z}~~~}|{|||z}|}}{}~{y{}~~|~}}}y}}~{y~~}}zz}|~~|~z}}{{}~~z{|}|}y~}z|{{~|~}z{|}|}|~{|~|{~x{}||}~~y|}}~}}}w}}~{|{{~~}}z||}{}}~zw|~~{|y}}w}|~}~|}|~{}}z|}~~|x}|~}|}{wwy{~}z}~{uv}}}~y}|~~x|{|~{~}|~{|}|y{{|z||}y|{~x{{}v~}~}|}~yz||~~|{~~|zyz|y~}{~}|~~{y{|}|{yy|{z}uz}~z}}|||}}x~|zy~~}~z}~~y{}|~{|}~~}|{{~}~x}~~~|{}}{{zz|}~{|}~|~{{{|~~}yy}}~ww}}z{||}}|}}}}|~z|}~z~}}}zz}}}|~yx~}~}~}}|~z~}~}w{~~||}y~}zx~~|{|}|z~}~~|{{}}{~{y~v}~|~|}}z~~}}{~|}{y|{}|}~~||}|~|~}y}|~{z~z~|}{~|~|~~}|~~x~~||~}{~{~{~~{~{}{x|~~~z~x|~~}}}~}y}~}~||~|~~~}~zz}|}}}|{||}|~~~}~~|{z~|~}|{{}||}|~w}|x}v}}}~z}|w~u}{|{z~}}|~~}{}}}u|{{}zy|x~}w}{{|||{u~}{zy}y|}~~~x}{}z}z|{~}v{{}}~~}~|{{}~|y~}v{x}}{}}}z~~x}~{|}~~~||}}}~}y{}{}}~~~|}~}{z}}~}yyz|~~|~}~~}|y|}~~~z{~~~||||y|}{}~z}~|x{~}y{~|}|~|{~}|~|{~|x}||~}z{~}|{{z}~{|}y~||}y{~~~{{}~~}}~~y|||~z|y~}}~~|}~~~|}}z~~}~~|~|zz||~~~|~~}{|{|~zy{{|}}~zx||z}~~y}}{x|z|~||{x}z{zz}|{}{}~~z{}~z}~{|~}|yy~y|y}y}|}z|}}}|~}|y{}|~~|||{~}|ww}}~|{}~~}~{{~}{|{~}~|y}|}y{~}~|{}~{xy~}x~~~|{}|~}z{}}}}}xz}~{}|~}||{}}|~}~}x}~{{~~~}}~y}}{}~~{~~|~y~}}}~x}{~~~wzx|~~|~~{|{{~y~~y~~|x~{z}}}~}~~||}w{~}z~|~~~}|~|y~z~}~}y}}~z~}|}~~}~|~~{~||}{~}~}x}||y{{}z}|~y{}}}w~|y}}|~||x~|y~|~~}~x}~~}|~~~~||}}t{|{|}z~|~}z}}{|{~{|||q}~{|}~}|~~~}~}|z||{z{{~w{|~}~y}~}w~|}{y|w|||v}}zyx~zyv{~{~zz{zzy}~~|~|}||yxx}}~}}~z}~|}{~xzw~||}|||~|}~x}z{}~|~~|y~|{||}x|~}}}|}~z}{x}zwt|~~yy|}~~}}~z~|~{{}|y}|~~}{~y}|}{}{{z|y|~{~z|}{~~~z}zy~yx|}|~y}~zz{w}}{~u~y~vz~}~{}}~{yz}w}x~|{z|~~||~{|~x|}~}|y~|zz|~{}~~v~~|{~~}~~}{|z~~{z}~~y|}|z{zy~{|}}||{||}z}}~~~{||~~}}{~~x~z}z|~|z~~wy~|~~~|~~}{w~z~~}z~|}~}yyv}}~}~x~|y}{|}~z}{z{~||}}||}{~~~~wy~|~~x~|{~{{}}}~{|t|z||}|}}}{x}~~~|~|}z~}v}~~~~zz~{||}|~}}~~{{~yz}z{~~||w}~~~}}{zy}}}~z~}~}~~}}~~|{z~|y~}y~~~z{~~~~}}w~|~x}~||~{~|~}x}y}|{~}~}y}|{}|~}}z}|~{z~}{}w{|~w}~~y~{x}|{z|{z~z}~|{~~yzz~~|}|{~~y~~{}}~{{~z~}{~{~y{|{~}z||~~{~~~~y~|}}~y{}~~}~|}v~}~~}|{|y}~~~~{|~~w~~}~||~y~~}~zy~~~~y}~~|}{}}~z~{yyz~~{y}||~~~~{}{|~y}z||}~z}}~|x{~}}}~~~~z{~}{~z~}|y}|y~~~z{||}z~|}|{z||}{|~~~|~}{~~~{||}~|~x||}}y{z|~~z|{{~|~~~~~~~~z~xu~}|z{}|z~{y~~{~}}}|~~||~~xy}|~|zy|}z|~~}||{}z~y{{}~|~{{~}~|}|}~}}yx}z}y{{z}~~z~{|{}|}}z|~|~}}}w~~|{}|~}~~}}~~|}~}|y|}|~|~}}|~|{}}}~~~{|~~~z~|{|~|}|~y~}~z~|}{|~~~}{z~}~|~~{~}|~~}~~~||}||z~~~~z~|~||~}}{}|~~~}{}~|v{}}}{~}}~{}}}|}{|~}}|~~{}}}}||}}|}}|y~~}||~z~{}z}||}}~}}~~|~}}}{|}~{|~{}}~~}x}}}~|~}y{}y{~~{x}{~}~|}}~}}y~x~w|}{~v~}~~{{z}~~}}y~~}}y||}|u~}|{}~~}x}~{~|zw{{||~|}|{{}~~z~~zx}}~~~|~|}}~~|~|~~x{}}~|~z~}~|z~}}~}}~z}~~y{~v~}||{|y|w~x~|~|~}z{zz{|}|||{y}y}|z~yw|}|}~|}|z~{~{~{}|~~~~|{|}|}{~|~||}|}z}~}~{~yz~|~{{~zz~}y}|~~~}~}}y~|}}|~|~{~~~zz~{~|}|}~y~~~~}}}~x}{z||~z{z|{xqx~{~u|~y|z{||qr|v~}{}~~d{z{{}|{{xvy}}x~~||s{~y||~}}{~|sn~y}}}|}~|~{~~{}~~~|~|{}{|~~}~~y||}}v}~}}}~~~{}~~}{~~|}~}zzzy}z~}}{z~|~}~{|{}y~~}~|}{}~{}}y}}~z}||z{~~y|~~{~~}|~}~}~}}}zzzz~~zz~vxt~{~~}y~~~~}y}~~z|~~|}~}u~~~~{|~~~~~~~}x~~|}{|z{x}{|~~~}~{|~~}{~~~|~zy}|x~~~}yx~~{|~}y}}{}}}{{}~~~~|{}y~|}}|v}}~{{|zzv{{}z|~|z~}}}y}{~~{y}{}~{~~{~~~{}}|{|{|{~~~{{}|~|{}}{w|}~|z~|{~x||z~~~}}~}|}{|~zxx~}~~|{{~~||~z~x|~|~{{z}|~{~~~}u{|}}|}{}~~~}}y}x{z}~}|~z}~~y|{~~}}|}y|||~}{~xz}|}~}~z{~x}}{|||}}{{{}}}|{}~}~yzz~|z}|{~u{}~}}|~~}}~z~{~y}~}{w|}~~y|y~{}~w~wz}|{{zy}~}~~}}}}~yyz~||}}z~~~}}~y|}{}~}}}~~}{}~z|z|{~|}|~}~}{{y~|z~|}}|}|y|~x}}~~~y}{|~|}}~{}}}}~w~|z~|}z{~|~~z|}z{}~}}|{t|~{}|zw~{|{~z~~|}~}z~z}}}~|}|y}x~{{y~~w{~}~y|~y}|}|}{}|z~~{~y}|}~}yz}~||y{}~x}}z{{}{{~}~{~||}~~~|z}}}}~~{~~~~}~}~~}~~}z{|}~~z~y|~y|}}z|~z|{z||~||y~z{~|}z|}~}~~~~~}~{~}{{~||~|}}~}{|~w}{~~|~y~~{|y{{~~~|}y}}yy~~}}y~zy}~{}}z|~}z||xz~v{~~}z~|zy{|v{{y~}|}zx~z}}~~z~~}}}}{||}{~|~{|zz{}{z|}y}~z~}}~zzy}|x~yx|}~}|}~|~~z}~|}{~}}{}|~|}~}~z}~x}}u|y||z}~}}}{{|||z|~zz}|x~{}z~}x}y~{}~|}~}|}|~~~w|~~}~~|}~z|{~}~z{}~~}|x}}|~~{~|{z}}{}|}}{z}|}~~}||~{~z}~zu}}~~~~}~|z~|~}}x{~{{~zz~~~}~~~~z}{~~y}|~y~|z|~}~}}~||~|}~}}}||~|{|}y|||z}~x|{~{|z~{z}|~|~~{y}z|||{~}~{|}}}z{|}{|~}~|}}||{~y|{{||}~~y||{|z|z}~{{}|}|}~~||}w{|z{|~}}~~x}}|y}y||}~~}~|~}|~{~z}{}}}~|}}}|}~}}}}~~~}{~~|}~}~|}|~|}~}z|~~|{z|{~|~~}{|z}}{}y}y|~}~|}}}}~|}~~~|~|~s~{}z~z|z{{z}|}~~||~{zy|}|~}}~{}}x|~~}~z~~~}{~~~}}~~~z}~}y~y{{{~|}}|{|}zz}}~{{}~z}{~~zy|}~}}{|y}}~}|}z}{}~}}}{~|~{~~~}~z}}|}{{~}z~~{{~~{}u{}}}}{~{~{}~~{{|}z|~}~~}~~~}~~~~|z~}{z}x}}|z|{||~~~~{{~}||}||~|}w|{}{}{}~}~}}}~y~~~~||}z}}}|~~~|~~~~z{~}}~}~|~}z~~~}}|}}~~}~~~yz~zz}}}y}~}}}~~}~z~}~z}|}|~~}~~~~z{z{}~}|~~~~|}|z}}|~}z}~~}~~~{}~|}v{~~zy~z{||~|{}}}}||~|z}zz~x~~}|~z}x}}}}}}{}z|}w|y|y||{}z}~|~|{x~x{{|~y}ytz||~{{~}z}{}}|}}}}~}zzz~|}|zy~{{~{|~~}~|}}~~}y|}z|}y}|~{z|{}z|}~||z~}}wzzz{~}~}zz|z}z}}z|}z~~~{}~}~~~y}~|}}|~|{~~x}yx~~y}}~~y{x{~}~|~{}}|z|x~~~~}~|{~}zz~{~|~~~}}~~|yy}|~~~}}}~~}~}z{~}}~}|~~~~~~~}z{~{~~|}}|}w~|{|~||x}|||}~{|z}~~|~}{{}|}~{~z|{vv|}~y~~~}}}||~}~~}~}|}|}|}|~||}~~}}y~y~x|}|x|{~|}~~~|~{y}|}}~z~~}z{}|~||v~~w~|y|}}}~||z~~}}}}y}~}~||~y}}z~{}}}|{~{x~}}|}y~z~~|~|}}~~|}{~|~w~}z}}|}||{}~z|}}~~|~}z~}|||}y}z~|{}{y~w~}}||~~}~}~z}w{zv|~|~{}~z~|z~s|~~|}~|}}~|{~|y}~~~|~{}w}{~~~}}|||{z}~y~|yzyy}~z}w~~|}}}{||z~v||u~}~~}y}}~|~{~~|}~|}{}}y~~|z||~~~~{~~|}}y{{v~~~~}||~}z~x}y}z}w~}~|{|}z}}|z}}{}|}~{~~~~}}~}yx{~~|}}{|~}|z}~~{y~y{{}{~}|~|~}|~}}~}{~{}~y|~~z~||z{}~z~||~}~||~~~~~}}|~}}|}}~~~~|}|x}~~}}~y{t|x}~}x}}z|w~|||~||}~yx~~{~|z~~~}}~w|}~~{~zzz|}}}~yz|~{{}xx~zy~|~|y{}}}|}|~z||~{~{|}~}z||~}|{{}|{{}w{}||xz~~yy}~~xy~{{z}~}z|}}{{~|}}~y~~~{~z~}|~~~||}w~}~}y|~}||~}z}{~}~||}x}{}|{~x{{y~}{||}}~}z~{}{~{}|~~~||}y|{}}{}~xz~|}~||}|~{z{zx}}~|}|}v|~|~x{}}{~}~|{|||{~|w|yy~}~}x||~v~t}{~z{~z{||}}}}~z}{~|{~}~~}x}~z{}x{}{~~}}{w{}|~{|y}|}~t|{z|xz{|}{~~z}|~~{~}xx|||{~~}~~~z~y}|~~~}}~}|z}}{}}y~~|{~|z~~|~|y{xu}}~x}|z}|z}z|}}y|~~~||}z~z|~~}~~|||}}|z~{}}z~|~{}~wxyz~z~~{{||{|xw|||}}~z~~{~}{~o{|}{}x}w||z~}|}~|~}y}~}|z~~{{|x|x{~~~y~||}~z}}~zxzy~|}~|}~~y~}|}|z~~|~y|{}|{{~|y{}}~~|}|}}w{}||}z}zy|x~~~||}z|}|}|~~zz~~{~|~|z||}}}~{z|||~}~|w}}y}~}~{~|~}~x}~}}}}~}}}~~~yz~}z{x~}}{}~|~}}}}}|~}}}}||{}}}~~{x~}}~{}~}|z~}z~~~{|}{~|}}~{~~}~~{|~~|~~~}{|~}}y~~z}}~}}z|~yw}y|~}z~y~{}{z}|}|~~y~~~tz|{||y}}~~~}}}{~~{~}|{}}}|z|}{}z|{{|~~|z}}~~|z}}{|~{{~}~}}~~|~~|}y}}~{~}|{~~|~~~}{~~~z~|~||}~z|}v{~}~x~zw|{~~~|{~{~~~}}|}~~|~}~}|~}~}~~|}~{|~~}~|x}~}}}~z}}}}~{z{|z~}z|}~|||w|}}~~}~y{}{~~~}}|y~z~|{|x}}}~{~|||{z{~}|}}~|}{|{|~~{~}}}}||}}z~{~}~|}||z}~|~~{}{{~~~}~|{wz~~~{w~|}~}|z~{~{~~~|{~~||}{}{}}}}zzx|}~|}~w{x|~}}}}|wz}|~}x{z}}z~|x{{yy~~~}y||}}z||}{yy|z}~~x}y}~}~z||}~}}}~|~}|}{~y}}{~{|}}~|~|z|~~|}~}~~}}}}}~{}|xz||}x{~~{}}~~~|~x{z{~||||}z~{~~{|{}~~~~}|~z}|||z|{~|x}{|~|{{~~}~~}}{}~{~~|~z}}}|~}~~{{|~}yz}~||~}~~~{z}~}{}~}||~~~~}}|zzy}x|{|{}~~}~~|}|}z}{~{~{~x~xz~~|}}z{}~{z||~{~x{{~{{z|}~z}w|}~|~|z~}}{~{~z{~~~|z}z|}~{zy}y||}}~|{}~}|}~~}}z~z}{~~~{y~{~}~x}}|zx|~~{~~~{}~w~}}|~~~~|~~}~z{{~~~~~~}~{}{}}y~|}|{~~{}|~x~|||{x{~~~{}~~~}~~|}~|~~}zzz}~}{|||zz|}}~}|~||}~~~|~|~|{{}|}}{|~y~{~|}z|y~{~}}{{{y{{}z}~~~|~~|y}}~}~}xy~z}|y{~}~}~}~~~{}}}|||{~|}|}}~~y|{}|{~~z}|x~}zz}}{z||~~~|~~~|zw}~|y~~{~|~}|~~z|{}|}x{~~}~~{||z{{{~{~}z~z}}}~}~}|~{}z~|~}~{{~}~~y}~}z~zy{{~|~|~~}}z~~||}}~~}~{z~~|||~~z~{{z~|{|~|~|{z|}{x}}}}}{~|}~|~w}{~z{~}||~~~z~~~y~|}~~}{~|}yy}{uz}~{}}{~~}~z}~}~z~~~~w~~}~~{||~}~}}}z|~~}{y|~|}}~}~}z|}}}~t}~}}}}}~|}|{{|}||~}~~}{yz}}{~|}~~~~|||~~z~~~|~x||~}y|}|w}~}{}}|~z{~~xwxz}~~z~}|y||z|~~}{{z~~|x|~}|}}|||~}}}~}y~~~}}||~{y|~|~|~~}~~~z||~~z|}{~~|zy|}}|{}{z||z~|}}}~{}z~~}~z~yy{v}~}|~|}}~~~|~~}}x{}~|~~z|~x|}{~}}{}|{}}|x}|~|x~|~~~yz|~{}|}{{}xv~~}y~}z}|~zz{||{~~||}{~}~}yv{~z~|z|{~x~|y~|{~}}~~}~{~~x~y|~{}}z}~}}y~~{z{y}}z}{~}{}{}|{}|{~~t}~~~||}~~~~~|~}|~yzz|||~~y}}||~{~|{}~{~z~{zzz||{}z}~{|}}~~z{}||~~}~|~~}~~~|~|}{}}|}{}{|~~}|{}~||}~~}{|~~~~}~{~|}}~~x~}~~~}}~z{}{~}~|z}~~~~|{{||}|~}}~y~w}z}|z}}}~~}}~|~{|}}~z}|~}|~~~~~{}z|~~~~||||}~~y|}}~{~~~z}|~~~z}~}~}~~~~~}~}~}}|}}~|~}~{{~}~~}~{}~~|}|~y}~~|}{~~z|~|}|z}}{|~~|{~{|}{||||}~~}~~{|~z~}|z~~~|}~z|~||}{|||}y}~~|{}}}}~~z{~~}{|~z}}~z{}|y}y|~~~~~~~|x|}~~z}~|~z|~~~}~|||}|||~~}zzz}}}~}|~x}}~~}~}~zz~}{z|~}~||}~~}zx|}}}~~|}~~}z~~|{z~~}~x~~{{~~~z{|zz|z|}y~{~z||~~zy~}~|}}}~y}~~{{}}z}}~~~~{}z|}{|x~{}y{~~{{}}~{{~~~~{zx|}}{~~{}~{|v~~}}~z|~~|{~{~}{~~|}~}z}}y}~}}~}z~}}||}{{}||zy~~z~~|{~~y~~~{{~|{|~z|}{}~z|}~~~z|}}~||{z|}z~}|~{{x~}~}~||~zyu~}{}{~y|}|~|}|{~}{y}|w{~~~xy~|{|~~{}|}~|{y~|z{}z~~}~{~}}z{~zz~z~}}~~}}zz~~|{y{~~~}z||||~{z|{|~|}|y}~{}~~x}}~~}|{{|~x|z}|}|y}~w~z~{~||z~z|~~|z{{z}}}z}~|~|{|}~~~{}}}||}~{{|~~z}{}~~|~~x~y~~|~~~~x|}~~}|~~{x|~|}{w}}y~||~{~~~|~}z}{|~~}z|v{{z~}|}~~~~y~|~}wzx{||~}~zzz~}}y}}|z{|}~z|{}{}}~}}{y}{|~|~~~z~~}}}}}}}}wy}{}|~||x{~|{}zz}w|~{}~}{~zy|z~~y{|}{|~|}z~~~~}|~z|~~y{{}|~|}|}~~{~{}|}}~}|~}~~|}|~|~~~{~|{{}|}}}{}}~~~z~~}}}~}}~y}{||||~|{|}|~|}~|}|}~~|}~~~}~|~~~~~z}yz{z~~|z~~|}~~}~~~~|}v~~}}}|z{}~}~~|}|}z~|~z}~}~{z|{~~{}w|}~~~}}}~{|~xy~|~z}~~~~x{~~}}||{}~yyz~||yy{}}~z||z|{}}y}{}|~||}z~~}|{~}|~~~z|}}~{~|}~~|}y}~}~}|~}~|z}x}|~zz~{|x}z{{s~}|~~}}~}zz}{~~}~xw~}~x~}}{{{~}}~}}}x|zzzy~w~~x}~~|z||z|}~z~~|}yy}~}|~~}{{}|zy{{{|}~y}~}~}{~{~{~|}}|}|||~y}|~}|}~|{}||{|}~|~~||~|x~{~z}}}{{yz}}~|~||~~~}}}}~{{~{~}~}}{}|{y{~~|}}z{}~}{y~~}~}|}}}~~|~~y~|}|~~~{y}~|}|~x|}|}}}z}}}{~|x{~}~~{s~|x}~{~|}~~{}}~~~y~{}~}~zy|~}|z{}}y~}z}||y~{z~~~|}||~{|}}~{~~}z}||z{{|~y}~~~~~~|~~~|{{}}|~~|x~z~yy~~}{|~~~|{}{}~{~~xz{}{~z}{~}~{~}~~~|}~}}{~z}}}~y~|~}z|~~{z~}||z}y|}}|~~}{|~|~~~{{~~~{||~z}z}~}}}}~~}}~}}{{y|z~yz~~zv~}|}wzz~y{{x{}x~z~z}|~{wtu{}zz}xl{}~xx|t~}|zvy{~x}}e}}~~y|x~}~yy}v}~{~}{~}{}|~}~{}{}~{z|~}}|y{~}~{|~|~z}~}~|~z{|~~~}~{~}}z}}}~|~{~}}~}~~~~~}|~~}}|}||{}}~{}x~z~y}}x~~{}|y|}{~vv}|yv}|zz~xx~z~{{z}}}vz~~~wzpxzw~~}y}~zx~|~{~~|z}}}~x{}~~{|}~}y}z~}~~}|z~~}{~~}{{x~||z~~||~|~~~|x~~}|~x|}|y|}{}ywzyz~xs{{zz~||~}}~~||~x|~yy~tr~~}z~{y||}{yz{~|z~y~~}z~}|wz}}{~x}||{y|}{|}|~{|{}z|y|~}||}z~|~|}z}}}~}}~~y}~~w~}}}z}~{~~|{|{~}{}z{}z~{}~}~~~||~}~x}{}x{}}y{zz|~~~~|~{zz~~||}w|wx}~~~|~~x|z}~~|r}z~x{~|x|v|{x}}}|zy}yz}~}~}~z|~{{|z~~~x|}~x{~v}z{|y{}~~{|}{|}|}{|~{{~{{{y{||x}z}}yx~}{|x}y{}y}zy~~}~zz|z~~}~|z|z}~}~~z~|~|y~~~}zz}}~|~}~|~}{{w|~||~}}{~y}z|}|}{|}}}|~~~|}y~}{||{|~|}x{~~||~{~|y}|~}~|}}~}}~{y{}|||~||~~~~~{}z|~|{|z~~{x~|~~}~}x|~}~}{~}}{~}}}}~|~}|~~}}y{~{~}~~}w|||{{~|~y}}~~{{~|~|~~}}~~}|y~~y}}~|~|||~}}~{|}}|y~{}{|}~~|{zy~~~|~|{}}|}{|~~z~~~{{||y{{}~}}z{~~~z~~~y~x{~}~~~{~~z{}}~}~}}|{}}|}}|}~}{|}}}|}~}}x|~x}{~}~{{~~|~y{~}z~}~{}~{{~|~{~|}{}}||~}|~{}z||}~}{|w~}{~{}}~{~|~z~~~|}~~~|~}z~~z{z}{~z~~}u|{}~}~zw~y~~u~zx{syz||q~uz}}z~|{~wv{x|~x~z{zwxy~~~}}z~~}~~z~~}y~~|~z}}~~z{{y{~v{{z|z|}~}|{y~z}}y~w|||}}vy~}{|{~~}y~y}|x~{{}|~y~~~~{}~|y{~zz~{|~}~|x~{||}|~t}}}{~y~|y~~{|~{{z~z~|}}w{z}}y||||w{y|~{||}|~}}|~~y~}~~}~|||~~{~{~}}}}~{}x||{y{}}}{~~z||}|{z}~}|~{}|z{~~~{~~~u~{~v~}|z||}~~}|}|z~|z~||}}~~~y||{}~}z~y}{z|~{~~||{|}}}~y~}|}}~x}{}|x{~}~z|{~|z{}||~}z~~}w|t~~~v|{}|{}{{}~}~}~|~}{{~~{}~{{~}}z~}{|x~~z~}{~~|{{~z{{~~}~yx~}{|{z{~}}~||}~|}x|z{}~~{~}}||{}|{{~~~~|}x~||}~z|{}~{{~~|~|{{~|}{}{~{~~}x{|{}|z~}~}~~|{}~{}}~~~x{}~|}|}||}}~}yy|~~}~}~z~~{{x~}{}|y||}|w}~}}~|z}yw~~}|~{{y~~{}w{~}z}{{~}||~|~~|}{}}}{}}~|{||}{~z}{y|~}~}~~}|{|}y}|||{~|~z~|{}}~}||}|}z~~{~}}z~t{zz|}~|z~~}~}wz}{~~~}|}}}{{y}{{{}}x|}|~|~~~}|}}}}~||~~}}||~|~|}|z{~{}~z{}z{|~{z~|}}}~}|{}~z{|}{{~}}}~xz}z|y}{|}{~~~|y|zz|{~~}|~|{~~}||~{{~|z|}xz~|~}~{|}~}~x|{z{{y~}{|||}~||z{}~}}|}{}~{}~{{~yz~~~~~~{}~{}{}~~{~}|}x|{{~~y}~z||}~~~}{~}}xy||~~~~yz~|{~}y~}|y|~z~~|x|{~~{y}}|~{x}|}~|t}z}{{{{}u~}z|{}{u~~~{||~|ytx~~~{||yz}}s}w~~{{}}|~~|z{~~}z~~|z~z}~|{w}{|~}}{~~}x}~z~}}~~}{|~||}~~~|~x|{~z~}~}~}{}|{}{~~{z|~yz{|xyz{{}|x}~~~~zz}}}~w|}}}~}|{}}~}x~zz~{w|~~||~{~{|~~{~~}{|}~|}}~yz~y}~{{{||}y}}y|~z|~|}z~}}}}}~|}}}x~|~x|{z}~~z|~z}{y~~y}|z}~~|}}}|x}}~~~w~~~}~}z}zzz}~{}~z{|}z{~}~~~~~{|}~~uz~~|xy~~{}{~~|z~w~~{~|y|}~}|||s}|z|~}{~}}{~}~{~x~|||{}~z}}||}|}}{}y~{~{|||}|z||{~{~}z~|~~}}||~|}~~w|zw}}}}{|}~~z}~}|}z}zy}|}|}{}{||~z}{~w}|{{z}|y~||~}~~}|~~}~|}}}~}|~||z~~}||z~{x{}{}}|}}~}z}~}~|{z|}~||{|uz}{|z}}~~{{|}{}~{}~}||y}~~}~~~~}}|}zx}}~|{~{||y{~|z}{|}y}~{|||y|}{}y~}}|z~~w||}{~~}||z||~}}|~{{~|~~~~~}~~}}y|z}~}~}}}~}}}{{|zy|~}}{}~}z{z|~z}z~~~y}~~~~|~}{~w||zwz{~u{y}{y~|}~}|}}|}}~~|~~~~~x~}z}|~||y~z{~|~}z}}}~}}~}~~|~}}|~~~}|{y|z~}~~~~~~}~}~~}y~{}}}||~}}{|}||x||~|~|}~~}y|~z{{v||~}|~}~~~|}}|~}}|~~|~~~{|~~z}}z}~}||}z{}~{~~z~~}y|~{|z{z{}~}}~z~||~~~|{||~}~|y|~}{z~~|yvz|}|}{||}}w}}~~~{~||}~~}~}~~|~}z~zx~xz|}~|~~}xy~{~}~}{~}}~}}|~~||zz~z~~}y|{~~}||}}~wz{|z~z~~}||}{x|~y|y~|~}zzz}y~}}|}}|~||~||{~|~z~{~}{{wx~~}}~{~}~~}}|~|y{{|}{}~}~~~}~~z|x~~x}|}||y~}~~z||xzxz{}{||wyz}}~~y}z}||~~}z{{}{||{z{{}}|y{}}{z|}|~~z{y}}{|~~|}}~{|~~}~z~~u}}}|w}}x{|}|}~{}uyy}}~}~|}{z|~~{|}||~{}~}}~}}{}}~y{~}~}~{}z~|{~|}{|~||{~~~{|~{z~}z~x~|}{|{}~~}}y|~z|~y||~|}{|{~x{~~|}y|~~}z|zz}~y~{{|}~}|z~~|{~~z}~~|~{~}{~}|~~||~~y}}x|~|z}}~z~}~|{~{{~~y}}}{~{~}w~|~~~zyyy||}~w}}}|{}{|yz}x{~{}{~|}~{|z}~}}~zu~~~{|~|}z~~|~}~{}}~~}}~}}}}|~~{x}z{|{}}x}|{~{}|z}{y~|~}}zw~~}|~~~~}~}~|y}||}x{~zx}|~}~}~{}}|~|z{}|}}v}|~~z}~}||y|}|z~}{}|~~~~|}~|y}~w~~{~y|~~{xy||~||{||}}|zx{~~}~~}z~|~|}~||x~~~|~{zz}~~}y}}~}||~v~}y}}}}~}}|}~~y{}~|}~~x}|}|{z{|zy~|~~~~~}{~xy{|||yz~}~|}|}}}|y}~{zx|~}~~~z}~x{}~zz}~|}}z}{|~}|~{~~{~|}~yy{|{||}}z~}~~|}}{zz{w|}yz|}~x}}~{|}|x}{}}}~{}z||~}~|}~}~||z~|~zx~||~{{~|}{|}~~}|{{}~w~||}xy~||~|{}{~~x~~~{{~}}~~}}}z~~~~}z{~}}}|}~z|}~|zy~}{|z||~yz~{{}y}~z|{}~~}}y~~|~{|}z{|~|{~~}}}~}{}||~wz||~}z{|~|~}}~z~{~~|~~|}~~~~~~~}~~~{}}~~}}}~}}}y|{|}y{}{~~|~~~||~|}|}}~~x~|~|}~~{x{{~~}~{~~~{|~v|~~w||v}|}}|~~~xyz~~w~x}tz|~|{~y}z~|ry||z{}}}~w|~~~{vy~|}|~~~~}}||z{}}yzy~w~zr~}}~~~zzx{}|~{y}}tutyz}{z|~{}zz~y~{w~{~}~~~}~|}}|}|}~|}~~{|{~~}||~}||{{}{|{z~|~~}z{}}}|~}~~}~|}|~w}~~{~yy~~}{{|{}~}x~}|}{}||~~|}z|~~}~{||}|z||~}~{y}~}z~}}x{y}~x|x~|z~~}}~}|}}~}~uy}x~}~x{}|{~~||z|~x|~}y~x|~~~{}|}t~~y~y~y~{{{y}{{~~~}|~~}}v~~}}~}|y}~}|}xy~{{}}{xy}|}}zy~}|z~|}}}z}}{}}}~~}}x~z~~~y~{~z|zyz|}{~}~{}}}|}||}~}~|z|vz~}}~}}~|}~}y}v}}~|}}|}z~|~}{|}~}~|{~{~z|w|}}|{~~{~|x||~|~}}{|{}||xz}|y~|w{|z~yz~~z}~~{|~~zzv{s{}v|}x~~}~v~~|{{~{vzx|q}zx}|{}}x{{}z~{~||}y||zy}~||~y|z|~|xv}|~}||wzxy|}}xu|wzy|~{}~z|~|w~|w}~~z}|}{w~z}|{}{~||y|~}y{||x|~||~y~ux{~~~~~zzzu{y{}~}~y}}}}{{u~y{}}}~}}~~}|~~zy|z{~{}}~{}~~|zz~|}}~~~y}~}{~{~~}|y|x~|~{~~{~~~~~}|}~{}v}~}~|}|}{|}}|y}~{x{}~{~{{~~~~{|{~~{~~~~z}~yy{{z{|~}{z}v|~}~~}~|}{}~z~~{|{{}|~~}}~y}||||~~x}||}~~~z}z~~}~|~|}{|}wy}zxy|{z~~y~||~x}~~~x{|w~|}z}}{~}{{~}zy}x|~~}}~{}yz{z}|}}|}|xz{~}|~}|~~|~~x{z}zzzy|z~}y|}z~yv~~}|}}z|~}}}~{|}~||{~u}~~~}z}~~~y{~{}~||z}w}}~y~||~~~~~}}~x}}~z~}}{~{}z}~x}}|}x}|{~~yyu~|{}~|}~{~{~z{|~~{|~~}z|~~~~~}}zzz~}}{{}~}~|~~~}{~}|~x|z{~|}{~{xz~}{|}|}}~y}~|z|}~x|x|y{{{~~{~z}y{|}||}~~|{~|y~z{~~~~||~}z~zx}zv~|x{z}}~}|}}|~}x}|~}~~~}{y~y{{~x}}{|~zywzy~~w{~~x~}z~~{}~~~}}~{}}y~z{|~|}|}~y{~~~}w~~{}w~|}}|}~{~z~||}y{{{{z{{|{|~x|~}{y}x~~{{~yx~y~~y~~z}|~~z}z~|z}~{z~{{|~xv|~|~{y~~{~~{{~||~|{x}y|~{~~{y~~zx~}~}~~|~}}|}z{~w|u~{~z}~~}~~~{{}{~~{yz~|{{}y~~|z}}||~~~|}{~tz~}~{~}|~}~y}~}}|~{|}{~|~}~|~{{~~}}z~~|}}{~~}|}}~|~}|{{{y|~{w{}y|~y}}~~{}}~{|}}~}~}{{y~y}z}|yz|}|~~~wz|}}|{{{~y{}||}}||~}~|||yw{}w{|u{}|}zwz}~}~}vzz~~z{x}}}}}|~~|z}{~~{~||z|}|}{w~}~x|}y~~}y}||~xz~~~|}|}|}~}~|w~~y~~}}y|||zz{~z|z|{{~|~}y}~{}}{}yz}|{|{}~~|~v}|}zv~y|~|z}~~}{y|{{~|~zy}~z{x~w}}~|zyx~}~}w|~}~z|y||}}|~}{|}|}zu}}~~}~|x~}|}~~~|~}|{w|~|}{~|}{~~}|{|~~|}}}||y}~y~}zzz~|~~~~}~~||z||yzz}z||}}}|{}}y|~~|}~z}|}~}}~}}}{}|zz}{{{~|~}z|~~z~}}~}{}~|}}}}z{{~}{{~zz~~|{~~~}{w{~~~}|{|~~~~~}|~~~z~}~}|~~|y~}}y{}~}{z|y|}xzz|||}~|}{{{{|yx{}{y}~~~|w|}y}|}~}}|z~|~}}|y{~}}}}~}y~~}v~~~~~{y~{{w~|}~~z~|~}~z}~}|~y~~{~~y}z~{~|{||z~~{}|{}z|}{|}|~}~{}|~z{~}}}}{}}}|{~~~}~}z{}}}}~~~}|~{||yy{~}|~|z|~~{}~|~~|~~~~~}{||~}}~|}||~~~~~~~|}}~{~{~|y|z~~}||}~}|}|}y||~{{{}}}z~}}~y|}z~w~~}~~~~~|}{~~zy~|~}{}~~|{|}{~z~~|~v~|~~|}}~~~~}}{~y~~~}~{{|~~}}~}|~}~}}{{|{~}~zz{v~x~{~w~z~}x}z}~{}|{~|{|~||~~}~}{z}|}{{~{|~~~~}|~|}|~}}y}y}}|}}~~}|}~z|~{}~}}~zz~|x~~|{{~}|}y|~~|z}x~}~}|{~}xxy|}~}}~}z}~~}x}|y{v}|z|{|}x}{|}~x}{x~w}~~{~z{}}yu|y~{|~~}{{}{{}~z}}~}|v~}z~}~}~}}~{|||{|~}~~}~~{{}|~|}~}x{{}~~}|~}{~}|z|~z{|z|~y}~|{}~~||z|}|}y|||}w~~z~z|x~z}{z}}~{{|}z~{y|~|z{|v|~~{x|||{~z}zy|~|||y~|z}|yw{|y}vz{~|~zx~}~~||{~~~{{}{}|{|z}}~{~{w||}}|{|x{y}|}~y~~v|}~y~{|w}~z~~|}~|}z}}}{}{{}{}|~~{}y}}}{x~~}|{|y{|}~z|z~}~|{z|}}x{|z~}~~|~~~~~||}||{|{~|yy|}}{||}~~~~y}v}}}x||{||~|}}{}~~|}z}|~~~~}}||~{}|~z~|~~z~}~~}z}~{}}~~}~~~z~}~}|z|}|}|}||||~~}}x{}}|{|}v|yy{}||||}~{y~{~}}}|{|~|zz{~~z{~{~|~u|~~|z}~{z~}x{|||~~}x}~||~~{~~z|~{~~~|z{||z}{x{|}z}}}{{|y|}}~zz|}||~~~{{~|{~{|}~|~{{~}y~y|~z}|}}}{x|~z~~{~~|}z}|}{}}{z~~}}|{~{}{zz}~|z~||}~}|}}~{||{z|~}~~|||{|z{}||}x}yy~y~~y~~|y~{w}~|x}|}~}}~|~~~|}~{}}}~w~y~}x~}~|{y}z}~}~z~~y~~~v~}{}|}}|{x~}zy}}~}}|}~}{~}}~}z||~}~z~yy{|}~z~~}v{z}~}}z}|~}|~~yz{x}|y}~y~z~{~||z|~}~|~|{}{}|~y||{|~xz}z~x~}{z}~~x}|}}~}||z~~{|{}wy}}{w|z}}}}|~z}}{}|{~}x~}z|w|}||~}|{{}{x}|~}y|y{|}|||||y~~{~~z~|zz~|}zz}{~|z|}}~|~}~{{~|zz|x~}}|x}~}|~}}~~xz~~||~{~~}{~}z}~}y~}|~{z~z~~x~~xw{|{~|}y}}|~}{z~{|{w{z}~}~~~~|~|}}|y{}}~zz~~~~|~}}~yx}~y~{}}z~{~z}x~}}}~~~z|~{}}|~~}||~~zz~yx~~y~zy~}}{|~|}{w~}~|}|~{}}|~}}{~{~yx}~~~~|}|~|y|{}yx{}~~~~}x}}|~~zz}{~~~~~~}~}}{{{}y}~zz~~{z~y|}}{}{}}{~{|}}||zzz~x}z}~~{y~z~|y|{y~z}~{||}|z}zw{~y|~zyy{{y}yz}~~vz~|~x|}}}}~~||~|{}~{}~~~{~z~z}~~{}~z}}}}{{{z}|{}~w}}z}}{z{~}~}~~}}~y{~~{}|yx{|{zz|}}z|}~{}}|}}~{{~}~{z|}~~z}~~{}~~z~z~{}|~~~y}}{~z~z~|~~~}~~|{}|x}}~||}}~z{~{{}{}~z{{~~~v~{|}~~}|{~}{~~z{zx~}u{}}||||y|}}|}}}{}~z{~}}z~y|~{}|z{{~~}}}~|v}~~}~}~|w|~~~~{~}|~z{yz|~~~~~z~}|}{~}z{}|}~}}yx{||y~|~~~|~}~|~}~~~}}~}~~|~z|{~}~}{~}y{z~z}x}}~~|{|}~~~~|~~}|~{y~}|z|w{~~~{~|}}~y}|z|y||~~~~~~y|z}x{{}zy}vzx}}{}{y~|{vy}}yw|}{~}}~u~~v~z~x|zzv}~|z}z|{~|{wxz{|}x~x}}{{z|x{~|}{oxz~{|{|}|{~}~v~~z{wy~y}~~~y~y{}~yz|~~w}}}{|{}{{{}|}u{}{|~~~{u~z~|x|z~~|{~{{}}}{|}||z~}|zyy|{~{|~~|zz~|~xz~~}}}|{|~yy}~~{yy}x{~~{}{|y|~}{v}w}}}~x||x}~~|}~||~}|~~y~}z~~~yz~z}~~x~{~{|{~}~{}~~w|}~}~|}~~~}|~|~x{}~z~z}~zzz~}u}{}~}}~||{}}~{}{~}~~~~{}|}~|yy~~}}{y}}}~}}~}{|}{y}~||{}~~w}yy|~z}}||{~|zxz~~}{u|}~||z~v~z{{~y|{}{zw|z~z}zxz~|x{~{{}}|}z{~}{|{zz}}|~|~|~y~~~y{~}}}~}~~}|~z}}~}{}}~|~z{{}~{~~|~~}}||~||x~}~}~|~x|~{~~{}z~}||~}|~}|wwz}{~}~}{z{{}zy~w}~{~}z}|y~w~|}z}~{|~y~~|}}~~~|~}~|}|}}}~~}y{~|~}z{~|~|{~z{~|~}~z}|w|y~x{|~y|z{|}~z}{xyz{~{~x~||}z|w||}|~{|}}x{{|}{~}~x{}}}x|~~~y|~{|{~{|z}}~{~}}x|}||||~~}z}~}}||yw}|~|{}|}}|~}|}|~}|{~}}{~}~z||xyw~}{~z{~}||~~~~~|}|y}~y}||x~}~{z~{{w~~~||u{|wz{}}x}{|~y{~}}z~}{~}z~~~v~||}~v{|~~}~}y}~~|zy~}~}}z~~}~~mw{}}y|}}z~~~}}y{{~|{w~}|{}}}|z}y~~}~z}}}}y}}}~|~}~}~}z}~z|~|y{~~}{~~}{}}w|{~}{~}}}|~}|u~~~y~~}}|x|||z~|}u}{}}{{z~z|~y}}w}~~{z}z~~~{}~{{}{}|~~~z{~}z}~}|}}zz~|~~z{~}{~}|~|~zx}}~y|{|}xw}||~~~}}}~z}~~{}{~|}}~{{~~}|~zz~{z{~{x}{|}|~||~y~{}{}~~~~}}|{}z|{~{~}~}{}~}|{}}~~|~|}|z|y~x|x|{~w~~|}|x{y|||}}z}}z~}{z}~}}|}~}~~}~~||~~~~|}~z}~~|y|~~}|~}~~|}{}~}}{}~}z}~|~|}{z~~|~|~}~}~{|}~||~~}yz{~}{~}||y}~{y{{{}{~}~z|~|}~||{}|~~}{z|~{|~{~{~~~}}}{}|{y}}z|~}}}{x}}|{}}z~y~}|}~}~}y~~{|}zz|~yz}}~{}~{|}y~|v}~|xzw{}~}|{~}~~z~~~}{y~y~|~|{|~|}~~|~}~}}~~~}|{|}|}|}{v|}~~|zz}}~z{{{|~{v~yw~{}{~}}~}~~|}}z~~}{~~}{|z|~}~~x}z~z}}zz}~|~~{||z|v}~}~{~~}}}~~}}}{}~~|}~|||||~}}}|~~}w}||yz|~~~y}~~|}~~zz}|~}~}{}~|x}~~~z|yt|{|z}|z|~}{~z~{||~u~}~{z~w~~}~~~}}w~y|~|~|~~|}y~~~y|~{w}x~}~|{}~|x~|}w~}~}s~z}~}z}~~}|{}~|}~~yz~~~|}~|{}|z{{~}|~~z}~y~~{~~||~|~}|~~}~|{|~||~|~}~~}~~||}}~|y~}yz}}~~|~x|~z~~z|}}~}{~}|y~|~}~~}x{~|~|z}~}}~~}|~|}~~~}{~{~~~|~||x}~|}~~{|~~w}~~{~z}}~z~|}}y}}||||~|{{|y||~}y~~|~~|zyx~yz}}|{|}}|~~|~{~}|~y}|~y|~~~}~x~|}}~~~~}{}||~|}~~|~~}|||~|~~z{{~}z}~}}}}}~~~}~~~|{}}}}|}}~{y~~~|~~~z{{~~|||~|{{}|zx{v~{~~|~~~~x~~}|x~~z~|~~}~}~{{~}|}|}~{|~|v||~~z{zz|~y~~|~|~z|~{~~u}}}~|{s}{uuly{j|~nyotmwor~}}|}pn|~{~{{{y|zy}~}~z}|~{}}~}|{{~~z}|}~{|~z|}~x|x~{|~||}{|}{}}}}|y{}|{~|~|{}}}}~}z~~{z{|}~|{}~}y|}{~~|}~z|~}~~~~y~|{}}}~~~z{}~z{||z}|}}~|~}z|~}~}|~~|}|x{z~w}y|~||z|}}{}}{{{}~v}|}|z|~{~~{}~|}}}~}yzy{|{yz{{|y{~}~y|w~y~~|{|~}y~zz~{{}|~|~v|~{{~~}~{~|{|~~~||}s|}}~~w}}|{z~~zy|yz{}x~}~|~|~}}}~|~v||~~~x}{{}y}z|z|}z}y{|y}{~xz~{y|}~}|~}}}~~|~z~}~|}|{}~|||}~z|x}}~~}{z~~}|~|{|~}~{~|z|}}|~}{||}y~|~~}}~}||{|}}z}~{~|vy}~~z|z|~x{}~z}~y{y{}~~~zz~}}}~}}|}~|}}z}{z~z~|{~~~~{}}~{~~{|~{|}}~}~|~~|x{}~|~|~|||v}}x}xzzx|z|{}{}}}}}}{~{|~y|w}{||}~z|}~}{|y}|y~}z}~}~}~}~y}|~z~|~}z~}~~{~zz~~}zy{~~|w|}}~~}}|}{}~}}~~|}}zw|~}}{|x}}z~z||{}~zy}}}}}{y}y}~}y~~~}}}~xyz}|~}~}~zw~}~|z|}||~{~|||y}~}|}}z~{}~~xzz~}|}~}}zx}~~}{~|w~{|~}{z||}|}~}}~}{~~z~}}~{}~||z|}}{|z|{x{|z~|~}~~z~}}|{~}z~~~~}|~y~{|~{}x}yz~~{~~y~|~~}}~~y{}~|zyy}|v{|{z|}}|x~|x{}|~|}}~|~}t~~}x~~{t}yw}}}|y}x|}~~{|~~|~{|x}}v|~~~~}~}{~}~{z~|zyy~|v}{~||{}|}~{yyvw~}yy|{~{~}}z~zy|~~~{|~}~|z|{zy{|{|x~~~~~||{}~~~}~~}}~~{~{}{}~{xy}}}|~~}~z~}|}}~|~y~~~}}~zx~}~~{|y|~~}~{|{}}||~x~~~~{~}}~}~~~~}~~}|y}~~}}}|}|}}}~|{~}}||~~|z}|}}|}}~~~~{~z||{}~{y}~}~~~~}{||~z~x}|v~z}}z{}y{|~}|}}x{|~|y|v|}}|~{y|~z~}~{y~}}|}~}x~}~~{yy~~}||}}{}x}~{|}}vy}}~|{~~}{~|y|z~x|}}{z~~}}|~|}|}{~|~~~~z~~|}||||}|}}~|y~||}}~~}|~~|}|~~||y|xx|~{~z~~}}z~z}v|||~}yy~~|~~|~|t}~zz}{~yz~~}}}~}|~yz~|}}|}{x}z}~~|~}|{{~~||}}}~~{~}z}z|z~{|y~}z}}z}~|~||~}~}z}|{}~~x{{x}}~~|||y}|y}zz~|}~}z|~{}~w|~z~v}}~{|y~~{{~~{~|{z}{|}{}y}|}}{}|~}||~}~}||~~}|}~~}|}zwz|~z~}~}~}}~~}|{{||{z}|yyzzz{}}~}|y}|{~zx{z~}~{{|~z{}|}}}|y}}x{}}y~|}}~~|{}y}~{~|~z}v~}|~xy}~}}}||}~{~~{~~x}|~~}~{~}}|w~~{|~|~}|{|~{{~x{}~{}~|}}~z}{{{|z}{~}w~{}}}}~z~{}z~~}}z}{~y}|~~~}}y|~|~~y~z|~{~~}~~~~}~~~~{y~}|~z}z~|{}}y{~~~z|}~}~|}|}~~~|}~~z~~}}}~}|~{|}}~~}~}}~~{~~z~}y{}|}~~zz~}}{|~{|~z~~{~~||}yz~}{{|~z{~y~~~{|~||}}}}~~~z~~}}{}zyx~~~~~}}x{|z}}x{}~z~}u~}~~{|~|}|x|~{|}||~y||z|t~zy~{}}zx~~yz~~{y~|~||}|yx{|||z{}|x|}zzy~z|w{}x}q}}~y~}y}}}y{wy}|{z}}|x~{}}||}w~~x}yz~~}y}{}{}z|~}}~}{}y~||~}{}}{|w~~}~~y~~}~~}~|~~y~z}~{}|z~{~||~y~~~}}y}~||~}{|}~~~|}~|~~||~|{}w|~w~z|}z|~~}}{~x|~}}~~|~}~~zy}~~}~|}~}z|zv||{||~|~|}~}}~~~zz{}}|uy~}}z~|~~y~~}{}{||y~}z}}|~||||~y~|~{~|~}~{}}z|{~|zxvz~~~y|}~}~|~~z~|}y}wy}z~|~||{z~z|~z}|y}}|~z}y~z|~~}{|}}~|~}x|}~}}}~|{zz~~}}~y||||}}zw|~~z{|z~~~~~}}|}~z{{}w~}t}~y}|}yy~{~~zy||~x~{~}z~}|y|{|~}y||~w~~z}}|zz{~}~|}~z||z}}~{~y}~~}~|}}{~~~~}}{~}yz~z~~|v}}}~~~}|~{}~}y~}}y~~|~}~z}}}~y|~~}w|{{x|z{|~}}}zy}{{{{{|~||wz|~yyw~}{|~{|~~|~}}|}}}{~}{|}|~~~~v}{~|z~y{~{~xz}{{~{~}~|~|}y}y|z|}yx}{||}~v{~|x}~~|x~~{}}}}~}}{w|}~||~}yx~~{~{}~~||{z{||y~{|~x~}}||}}}}|y|z~}~y|~~~}}~zz|}~|~~~y~}}~|||z}}~}}~~}zy}{}z~}~~|}}||~||z}~}ww~~y}~~|}||{|~~|~}~}}~|~{}u|~z~~}~~{}~z~|z}|}}}}~|~x{~}~~~~~~y}|w~x{~y|{}}|||~{~}z|{~}~|}~~zy~~~z~~}zy}|~|~~zzzz~|}}}|{|~z}~|{}|}w}~y|{||}{}|}~~}}|{~~{||{~~y}|}{{{~}z{~{|~}}~~|}~w}~~|}~~|~}{}~|{|}||}~~|}}~}~~~x{~{}|~}~}}y~y~}~}~~~}}~}z}~~~~~z~yz}}~z~}~~z}}~}z~~||z|{~~}}~z{~}|v~|~|}{~{}}|y~~y~~x{~}~~{~}~~|z~zz}~|}}{~}y|~~~||}z{}~{{}}}~z~{~|}{~~}}x|~~~y|~v~~}}~~}|~~z~}}}|}}{z|~}~}{{{~|{~zz|}}w}}}{{|zz}z{{}|}~|}}}}z~{~z~~|{~w}z~~~~}y|z|~z}}y{z~{}}|{|}|}{}}}}~||}}}{~x}}~w}|{~||}}~w}~~|{|~~~|}w~~|}|}}}{x~|||~|}yz|{{|y{~{|}~|{~z}~~|z~~|~{~~{yzy{~~{}}{{zz}~z~}|y}|~~||~~~~~|~x}}~|}|~}|y~~{~{~}||}|~~~{}~~}}~}|}~{~~{{|~|}~~|}~}z|~}~~~~~~}{~}|~}~~~{}~z|~}}}~~|~~|{}}{}}}~}~~}}{~~~~{zy~}}|~z}}~~y{{~z||~}}x}}}{|}}}zz}z|~x~~{}|{~~}|y{|~~|~~~w~~}x~~|~~~~~|}~}{~~}~~}~}~{v||~{~~~z}y|}|~{{~}|~}y{{}~}~z~||}}~}{~{~|}||~|}z~~~~}{{~~z{}~~y{~z~{~~}~}~{||~~}~||~|~{{|wz~}}}}~{|y~|{~{}}{|}|~}{}y{}~}~z}~y}~~}~{~{~x|~|{~|}~|{z|}|}~}{}x~}}}~y{|~~y|~{{~}zz~~{~xy{~~y}~}}{}|}|vy~~|~~|}z{~~{{}{~~y{y}}~|}~{}y}x|}|~|x{|yz~~|}~~}{w~}}~}~~}|}~~~{}|z{|~}|~}v{}~~~z~zz||}~~~~}|}~}~~z}~{}~{~}}|ww|z}}~|y{~~{x~}}~}|z{~z}~xw||u~|z}{}|x~z}~{~{}~|zy~y~z~{}}~}}{y{~}{||~{z~|~}}uz|}~~z~}}~z}~~}~{}}|z|~~~~|}}y~}||z~~}}||~~~z|}{y}~}}~~|}~|z}x}~~}~{}~z||}~~}{}|z}~|~~zz{zy~~~|~{{~|}~~{}}~}|~z}}~}}}}}}|~|}~~~|~|||{{}{|}}|u}{~}xzzzu}xwx|}|{|yy~xy~zzv{~u{z}z~~~}}s|}|}{zw|vwx{x~{y~~x{u~~w}x}}x|v|~x{z|yy||z}~~}|}z}|z~~{|{|}{~~}v~~~|{~|}||}{}|}~~}~}}}}|~~~}~}x}}|~~~}xw}}~w}zz}}}|~|x}}~~~z~{{~z~~}}~|~}{y|}}~}}}}~||}~}z{~~x}|y}z~|y~{~~}{{}}}y||w|z}y~}|z{}~|}|}~~{}}~~}x~|}{|z~~{|y~~{{|}}x~|z~}~z~{|}||~}y~|z~~~~{|~|u{~||}xz~~~y}}}}z}}z~~{|z}{~x|}~z||||}~{~~}||x||}|yzx|y}||~z{~}|y}~~x~|{~}{}~}}xz}~~y}}~|{~{~~~x{~{|~~}~||~{|yy~}|zx{}~y~~}}|~}|xzz}}}}~{zw~~}~~~~}|||z|}~{z{}yz}{~z~y~||}{|~yy|zyz||{}~x~y}}}y~}{~|zyx}wz}|}yt~|z}{yv||}z}wz|~}|zz|{z~}~z~~~|~{~{}|{~{~v}}~|{}{x~}|}z|}z|yzz~|}~}~~}}}}z|}}{|zy|}~~~|~|~|z~z~~{~~}v~~}|}~|x~~}|}}|~}}~|}|}}|{v}{}~{}~~}|z|}|z~~}~x~}{z{}}||}~}}~~~~}~~|{~~{{z~~~~{}}|{x~~|{z{{~{|}}z}y}~{}xz~}v}}~|zy|}}}}~w~v{}|{wr}{~z~vz~~}}~t|{|~~y}{}~}|~}}{}~{{~~}}~}{}~~~~~|z}~|}}|}~y~}|}|x|{~{~{{x}~~y|z~~~~~{}}~{}}}{{~}||~~~z~{|~~{z|~}}z|~|}~~|~~}|~~~~~~~~~|}}~{z}~{~~{~|~~y|||yy~z~~z{}}}yzz~z~~~z~}~|zz~|~~~{{~}|y~{z|~~~}~~{}{y~}|~||~}~w}{}|~|}}~|}|{z~~{~|{~~}~~}~|}}zy~~}~~wwu{~~~{~~~~}|{}{|zzz||}||w}||z{|u}|}|}~x~{}~}}y}{~|{}}~y{yyx|}z{wz|~||~||}~z{z~~{}|xz||~zz{{|xz{v{||}~~x~{y{~|}|~{~}~}|}|{~~~|}}~|x}~}{sv}}|z~}|~x~z~w}w}~z~x~~zy~z|}}y|z|||~{}}|}v||}~|~z}}}{}y}~}z|{~~~{|z}~{~}~z|~~{zv~}{||||{}}y}~~~z{}|}}~{~}~}{z~}{y~|~}|y~y~|~~~~z{{}|{y~~}}x}|z~||z||y~{}}z~}~||~~}}}~{}~z}~|}}~~}~}y}|~}{}||~y}{}|}}~|{~|~}|}y}{~|z}|~~|~~|~xx}}~z~|~}|~}xz}}~|}x~~}z~}}~|{}~{~}{}}|~|}~|~|~{~~z{~{}~~|~~y}~{}~}~|~|~}}|}}|}~}}yz|||~}{}{}|}~~x~||~~y~~}|}|{~{x|~~}y|~~z~~w{|~|zv~}|z~~{~||}|z{~~|~}z}|{}vz|}{z~~}z|}}z~{~x}~yxyx||uyzz|z{}~~|}}{}uz~}~|vx}||}w|x~yx{}}y{}~{r{~~yzx{|}|}v}p{}|t}y||}~x~|x{|~~r{w|~{z~w}}|y~wxy}}z}}zyv|wx{{ym}y{w~wu}zu|zz~y|~~||}}|{~~}||~tv|||~||~|{z|{|{{z}~}|~~|}{~}}x~~~y|x}{v|}w}~z||~|z|~~}z{~{|~|~~{|zz~}z{}zy}{y}xzv~~~|}zy}y~z|zz}||}zx{{|~z|}z}}xz}~z~|z~y~{~|}}|{}|x{~~yw~}}|{{yx~}||{~}|{}~}}}|}}{z{v{zz}x~~~{w{~y{|{}}~{~~{~}}{}~~wz}{}}~|}}|~{x~}}}yx}z~{|~}~{{~y|{|zvz|~}~~{y}~|{{{~y{|~}{t~~~~y|vyx~~~}~~~||x~}~~}|~}{~||||v~{x{z|{~{|~y}~z{zy~}~zyz|}}}~zy{|wx~x|~x{yy}w|}}|||}z{}s}zv}~y}~}}yyr{sy~zyyx}{vxz{}|}{}~xzu|}~}wwy|z}~~}yv|~x~~y~yy~||y}wvzr}}x}|}}z~~{{{||yy{yy}}~{~|{}~~w{}yvz{y{~}}}~z~{~~{~zu{{}|~y|z}xwz~~x~y{w}}{z~u}z{|xx|xu||wy|z{{ux{}uvs|~~~~}x{z|w||~|}z|~}w~||x~p{~zs||||{}~wwz}qxw|}}~}wy~~}|z~{xzz{|~~{||yxyo}w~{}}}x|}~}}{~z{}z{x{{~}~w{~|z~{{zz}y}|{~|~~z}~|~}{xw|{~}{~|}}}w{y}w{{x~|{s{s|{}~x|}|v}|x|y||~{|}~|}~z~|v}}v~{{}{z}{|~z}}w|zx{}}~zyywz{~y{~~~|{}|wyx|}~zzv}}~|z|~|w~~}{z~y|}z~}~y}}z}{||}~~z~|{|~z{|}}|~|}|}~}}}}~~y{}}z|~{~}}~||~{~{|}|yz{}z}~|~}}~~}{}{~}{{||}z|x}{~}~z~zy}|~|}~|~zz{|}y}}~~~w{x|}y|~~}}z{~z}zy|}~z}}wzv|||{xy}~{~~~xz}{||~~z{~}z{{{{zv~y|{x}{yx~|{tx{}{}~~}{}z}}|v}~|}}~}}}~}}z~}~xv~~~z}|w}z}}{}}y~~z}~|~yy}z|~~v}}~z|{~{}~y}~~~~}|{|v{z}{~~}z~xz~}{~}z~w~|r{~~|zv}}~x|w~~}x|yz}~|}{}|{{vy|z|z~{}~~~|~x}}~}y|~y~}{z~~}}|~~{~y~~~{zz|}{|{~|x~~|{}~~zy~~}}|z{~u~|~z{|y}z}|||}|{z{z}~}{|~~~~~z}{x}||}~~yzy~}{|}|w{{~yy|}{|{zy}}|~~yy}{z}|~z}yy}}~}{|s|||{}}}{z||{}w{{~yyy}{}|~}z}|yxw~x|z~w}}~}}x}u}u|~}}~|z{w~t}wuvy||~~|}|~}w{y|~~zz~}z|yzy|~}w}~{}~}~~y~sx|z~zx}w~}}xxv}v|~{|z|~~vz|z|x~y|~{}|{}}~xxw}z~|{}~}{{{{x|~z~~y~}}}z}}~~~||~~xy}~}|z|~~|z~}~}}~zy}{w~}~z~~}}}~{~yx|y}~~}~|}~~{vz|z~}z{y{yyzx~~~|}~~}xxry{}}}w~z~t|~}~zy}{}}~}s}|u|v|w~|~~yv||y|z{{~~v}zzy{{yzv{~||{w}}}~}{uy}z|y}zz{x}u}}|}{}{z}~w|{||zzy||}yz{}x~~x{xy}x{~z|v{}x|q~}rzyx~~{~~|yzy~|~r}|~~w}{x}v~~|~{|}||z|z||yyt~}xv}}}vy~uz|{|~z}}y|{}}z}~v{yx|v}{y}~{{{}w|||{x}{y{|y~w}~yx{|r|~}}|y}z~}z~vyww}|zz~}~|{}||~z~|}y}z|z|wt}u{z~zx{~~|{~{x~zy}u{}}|xz||}{~wz~~~x}x}}}~~}v{||||}t|x~{~y~z|~z{}~|y{{~x{|~~}y||}}}w~{{~|||}zyvyz{|vx}x~~y|}}y{|u{}uy{}q|~||}~~~}}u}{~x~yz~~{|y{}r~|{{z|{u{~~vx}~{~~{~{xwy}{|ws~w|}}y{|{x}}}}x|}}r{|z}x~~}{~~|w~yzz~{|w}~z{{{v{}|{{z||yz~{}yz~}~~~x{z}{}||zw~y|}}{~x{~w{x{z~~}}|}{vu}}~w|~uw|z||}{}x||}u{|z~v{}~~}{}~z|~vx{~}{||~x}xx{z~y~|}~~}w}|z|{u{vxx~~~u}y{|w||}}}zxz{vx|{{|x}{{~|zww~z~x{}swz{}}{}{|{|}{}|x}{~y{x{yw}}~|~vz~||}||}{}}}}{}{|~{y}}{{x|||{||~}x{{}}}|~}|}y}}}{{}y~|~{}|~|vz|zzz~t{~{wy~}{|}~{{~}|x|}{{{z||~|x~~}{{u~~~{z}|||yzw}|}x{zu|||z}w~~y~|zw~x{~y|wty}~}z{||{z~}|}{y}}|~{}}w|w}|{{{|}~wz{~x~x{~w}}~}~}w|z|~zx~}~z~z~}zs|~|{z~|}~||~}z{}{{|~|~~x~|}z}wy{yz{{zz~y~zw|~z{wz~}~~{wu}}|x~}zwz||z~x|v{|~|{}z}}~}wx{x~xwzwvx}x}{|zr}v}wwys|kx}{zzx|s}{x}z{y|zz}~x~~zx||{}~~||}{~{t~l|}{uty|~z{v{~y}|y|~{t||wxwx|z~y~w|y{x~y}v~z|}x}}{}}}ww}x|v|{~~{~}}~zz~~y|}zv~w{|}~y}v~|~~ux~|}{w}{z}}z||{~~}}|}~~|zy|||{t~}}}y{}}}}z~rx~y~v{~s~xz~zzx}|~|x}y||{~{z{yy~|y{w~~x|w~}}zx}uzxx{{|zvy}z|yu~~}~}~~{x}{~}y{~}|}|~|{~~|y}z}w~}w~~|~xz|z}|x{}{{|}{}}}}|z|u}}{v}z}}|{z~y}|~}}|}~v{y~|~|~}y}}~{|xv}~y~{z{|xx~~{}}~}|~z}~}{{|{|z{{~~~~}}y~x~~{v~v|y}u{~~}~}z|}{v~y}}~~{~}{|~{~~~{|{v{~|~zx}yy{zw}z~{y|{}}~||~~~zz|{~{z{~}|~}}}z}z|{t|{|ty~|y|yz}z{|z|}~~~w~}z~~~|w~|{xzz|{y{~x{xzw|}y~||{ywv~uz~{|||~|{w~~z}y{~z}{xz}|t{u~r{~|{zx~}zxzzz|~}y|~~zw}~x~}{y{~~|{}{~|zyz|x|z~~y}}|~{x|~~{v~||x|||||}~{|~||z{x}yxz~}~|{|~}~{~|{{~}t}}~}zz~z|}~}{v}}}~y|x|~{xz}v|x{~z||z}{{~}~zt~{x{~~|y||v}x~|{{~~~}x|~{}{{|}~}|z||~~~{}z{~v~z}}z|wz}~y}u}}}xyy~{~y~~~z~vy}x}y~y}|}z}y}}~wz|{{|x}|}~v}||||~~uy{|}}|w}xxx||}w|}{}y~{{|{{}{~||y|wzz|y|{}{~}y{{z{}}w}}~}}{~zv~yx}v{~}~}}xyy{|~{s|}|{|~}u~}}~z}w~{{y~||~}|}~|~|{}}~w~y|~~~~z}z}w~z}{{~~z~|{{z|~|}~~}{{x~}~{}}~z~}|~xy~~z}|zxz}~zz}~}}~vwxyz~|}{{~y||}|~|~}}~{zx~~}}}~z}|y|w~~{~~}}{z|z}}|~~}y}y|~}{{}}~}zz}~}|~~}|~}|~~{{~~}~}{|}~~{~~}}{~}y~zz~u|~z{yzz}z|{z~|y~{|y{y|x~}~yzwv}{~{}}~{}~|z}yx~~~}{}|}{~w~z{{~w~|~}~|~}~~}}wzz~yy|||~~}~}}y{z|}~~|~}{}}~}}}||}{~x}}}{{~~z|y}|z}|~y{}t~yz|~{~{}}~}{}~|~~zz|}}z~~~}yzt{~x{y|}{y}~y~~wu|~wx|}{~}v}~}|z~}x|~w{x~|}~}}{|z{~}u|z~~yw~~|~}z{~xzy~~|}|w|zx|~z{z|}{}z{{{{}z~}}}~zz||{}{~{~}~}~{~{|y}y|~{z{}}}y{z~|||||z}{~{p~vy~~y~~}y~{y{~}|}z}yy~}||~|z~~~w{{}z~~||w|t|uxzy~|x~|}wq}w}}|z|}t~q{z{{}zxv}}}uwq|{y||~{||}rz{|}t|}y~|}~z}wz~|}s{~uo}|}}y{||yzy}z}~snxyz~w||yzw~|{|zz~y}~}|~|ztxv{{y|y~{~z}{~{z|~~}zxxy|z|}z~~|{|w~y}xz{{|}x{z{xx~|}}~w{r|y~w{~y|~~~x~}~yyz}{|~s}}|z~{~}~~|w}{}}{~||~~z|y{~}~xvz|{}~~~~~}yvy|z|{||{{~vz}xz~~p}|~y~t~|~|u|~|~|x~~}}~}||}y|~~y~~vx~~yzy|}|~~yz}yy{}|}{vxx|}~~|u|}~}x~~{|}{w{z{y~{{z}{w|~}~||~||~}~~}|yz{||~~{}{z~~}~z{}y{|}}~{}|}|{}~z~|~~}z}x~}{|}}}{wx~}}}z{~z~z{{}z~~yy|~|}|y~~}~}}xz}{zx}}{~~}{|~}|~||}y}x|{x|{~y}~z||{}~~y}|z~}~|~w}xz~}~{~x}}}{}|yy~}|}{zw}{~~~}|||~{}}}{}}z|~~~||{{y~~~|}zx~|z}~~y{}}{|}~}wz|{z}z~z~{y~|}~|~{{{y{x|x{|{w||x}{}}|~y~{{wz{z|~{y~|yx|}{{~~y~}}w}{yz~~~{x||}{}{}~~{|}}|}~ztz~}}{}}wx{}y{x}}}u~~~{w~}v~z~~zyy}|w~}}{~zxz{}v}{x|u~w{{v~x~yv~|{w}}}|z{{xx{}v{uux~w~y|~{}~x}yzzy~{~|~~}z|wz{|{tx{|xvzzw{w|}{~vy}{|~xxz|||}xz}x}w}}|{xz{y}}r}||}y|{|y|}}{tu}z|z|yy}|w~~|z~~|wx|}{}{x{zvzz{z~|z}~xy}y||z}}}|~z~~|y{}~zywz|w}|}yy~}|~w|}{||v}xvv~x}zz~||w~vu~w}z|~}x|}s}{~{|y~||{{~|tr}~~{~zz|}|x|~vv}~|~~w|{~~~|zz~}}~z|~~~{}xz}~{}x~}{zuuz{}w~~{|}|~}|~}~zvx~|||~y}{~{|}~~}{||x~w~{|~~~yz~}}}|}~x~{~}v|~}}}z~~xzv}v{}y~}|}~}~~~|uz|~zx}{~}v~w~}~xu~|y}{u~u{v}vw{~t{zrz}}zr|}{vrw{|u{z~z~}v|x}~}|sx{xu~}}zzwv}~x{{}~x}~z}{|z}}t}}u~y{~{y|~{|{v~x{}||z|}z|zy|z|w~}|~z{}}~~~}}|}~~}}p{{tyyx{~~}x{~|{|~z~~{{}y}{zt}|x{{}{{|z}~{~}{}~~z}~z{|~|y|x~}|{~|}|z{}}py}~}{~}|~}~~~v{}}|{z{|xy{}|z}|zx|y~x~yzx{~{{}|}}~z|~|{{z|~s{~}zz}|~z}y~}~{~{vxxyz~}x}}}}~{sw}{{}|x|x~z}|{y|v}{|{|~t~zx{{z|wzuvxzz~|}z{~|u~y~z{}yu~}}|~xzvws||~||}~w}wwzv}~~~uwy}{{yzz~zv~z~yu{}t~|}~wx~{|zsxtyyz{|}z|vz{ztzsz}}}|z}~||~~}{~||wz|u}~~w{{{{z|~~zwtx}wz|}{}{|{}y{}{{~}z|v}}zy|}~~w~~y}~{yvy|w}v~|{}{}yz{|{{y{~}}}vv}zz{~~z}{x{~t}~|z}x}|~}{}yw|w{{t|vx|{yzxyz{|}|xzwz{~|}|{r}|x~x}~~|}}~}~~}~}z||~vz~~|{~~y}v}~}||z~}}s}}|~y{x~|x|}|}|{|{y}}~|{v~{}zz}{{x~z||{{~}}sv}x}|xt}zz~~}y~z}~|x|{yz}|~y||}~}|~zw|}w||{{}~wz~vzy||x}}y}~}{{{~||~y||y~{~{x~{~~|~{zx{}}|~{|~}|~~{~z{~||||~~z|y}}w|~y|y|{x~|z}u{~}}|zyzz~zz|}~{~v|~|~y{||~||||z}|}~}{~y~~x}y~|}~}z~{~}v}}||w|x}||x}{}~w|x|||~{~{~z~||}||~z~{~|u~wy|{{|~||}w{~z}z{zz|}v}z|{}|x||x{}|zu|z|}~|z{}}zz~s|{zxu|{|w|}~|x|{}y~~x|yw{}}{z~|wy{~}}w|}~}|{~||~{~{~{w|~xyy{}w|x|{}}~}}}{{~{|~{zz|}}}z~~~~{v{{{x|}{}|x{ys{~y}~|~}y}{}}}|}x~~~~}~}y{|{}}zzt{|y|~}}}x~~{~{v}~|}}}}{~x~y|z|||z{}~s|~{~z~}|}y~|~x~~y}y{{}{~~{z}|}x~zxyy~}z~|ou~{~y~w|~}|||}}|||}}}v~~v|}}|}z{v}yw~|}~}w}}z}z~z~y}}}}}u~y~~~{~x}w}v{~}z}w||~}}zy|}{}xz~v{y~w|w}z}}yxws~y{}wvw|}}y{~x|yzy{ww}{~~~z}y{~|~|~y}{|~}|tzx}~~y}~~}|{|{~~~~~}}xx|}}}yy~~}|~~{z|~~|v{{{~~|x|~~xz~{~~{xz{t|||{{wy~{}~}~}u~x~}~z~y}z}|}|}x{y{}}}}|xwv||y}|{~~~~}w}}~|zw~|~{zz}z~~z|}|}|~}{~y{~~||y}}}w}}yzy|yz|{y~}|~}z|x~v|~{}x}{|{w~~|~{w|}|z~v~||~|~||u|w~|~|}w|}|w|}|}yv{{~{}~}z|}y{y}wy|~}www|}}~yy|z{~}}}}~{y{zx~{}|yx|{|{y||{z|w||}~|x|}y{|x{xx|}~v~}~~||x}~~|{y~z}z{~{{t}x}|}zyr}xyx~u}v~ww~{{~~{y~w{{}~}|}~}wt|}y}~z}~|z~}zu||}|}}|~|wzx}~}y}~x~}x~z|{z{~~z{{v||}{|~{|}|z~{}x~zw{~z~~~{}y~z}~{{u~~|y}|{}~v}}||y|zyqwzz~sx~{{~zvpy}{x~q}q}{wx~~xw|{|}y~w|||xmt}u~~yzx~uzozw}|{sz|yy~}~x}{}}yyv|~|y}|s}|v~v}|}p{zy~z|{~~~p}z|znwx~~||z||}}{uz~~}z~ww||}}{|~yzyy~~}~}yv~~v}y}|}|{~vvyx}y{~~~z||w~x~||{{yz~z|v{zzy|{}y|{}y~}wyu{}|vx~vz}{|u~~}{~~w~y~wzuzx}x~tyx~yvzz||}z|u}v~y}{}{~yvy{z~xv{xzvy}zzzyzz|{}u|}}|w}~|}y~vx}z}y~~}}}~z}}|}{|zu{|~}}u{y}t}~}yx~}z~~|}|}|z~z{~y|}zy}}|{y~x{|}~w~||{}zy|y||~~~{x~|{}|}~{z}}{||y{~yyx|}~x{~~|{|~z}~|y}~{{~}}}}}yw|~||{{|~w~y~w}}|x{}|}y}||}{|~z~{}}}zwz{{~|z}tyz|{x}}y~zvwu}ux{w~||~wz{|}wz~yz|}}y~wsz}~yz}r|{~zxy}|~z}yy}x|~~u{v~~}yq{{xz|y~}~|z~wzzw|t{~}}zvz}{||yw{z}y~zz|z{yw{~wzuvw}{}}~}z|w|~~|z{ywwv{||~~z}z}~}{}uu~{~z{{~~~ww~yx||y~{~~}}|{}y|zuw}{{x}}{~yuz~|xz}{{}|}x~}~|{~v}x{z||~}|}wyvzx}z}z~{~|}z}z}~}}}~~}{|{~{}{t~}~~~|z}{}{|zzw~~~|~|~~~}{}}~}||{~{z|~|{~|}~||{y}~{|{}||{}{x~}v~~z}zv}|~}z}}~||w~}{}y||y}}|x}|w~||{}{~{~z{|}}}|}z}zz{|z}vz~}~zv|{v~~|u~w}x~~{}}t{|~{~z}v|}~~}{|x{}}x}~|}yvxz|{||xzw|y{z~|xz}{z}u~sv}wzv||{}}~|~{~~}|}z{~wz|}~~|}{~~~}}~|z}~}}us}y~z|q}}zw{y{}}|~~}~}|~{|zx}{vx|{z}}u||~~{zx|xy||~zw{y}~{{}}u~y{zyw}z}{|zx{|{~|||}{|}}~~}~~~|}x|yy}}{{~x}}~}|~~y{{z||~z~y~}~|~|}y}y|~{}u|y{{w~{|y~{{x}|{}}w~{~~}}~y{}vy~w~~xv|}yy}{~~z}~}{}|~z}||}{y{vw}x}v}}t~~y}}{}|~~xxy~|x|w{{|w|}}||y|}~|}{|z}~x~x~~{}~{|vu~||zw{y|y~}{z|~wvv~}~x}y~uy|{yw{yz|z{y}y{xz~}z{zy{z}{{|v{xyx|{{z{}y~~}{y|}}ue}yyvx}~}{zy}}~}x{{w{{}||~xy|{xz~x~}{{z{}||vxyd{|x}x{zu{yr}{~~t}wy~|y|x|}x~{wtvxzzwz~{z~{|zy||~{xyz~|~}|~w|w~}u}yx{wwz}}zr}zzzy|z}|z~}}y~z~|~}|z~yu~}x}|wx~xz}|t~zwtz}{~zx~}}}{}y~{}z||wxx|~~}{}|x|~|~{x|{x|z~y|u{y}y}~}{|{z}u|~v}w}~{{|z}~}z{{zu}~vq{yy{yy~ww|xz{~}wz~zz~}}}x{t{||{}|}}xwxx~}{~x~}xz}z|y{||u{ys{ww{~|{vxz{wy~|{y~||y|zz}~t~y~|y{zy|||~~y~{y|{~zyxw|wu}}{yy{xsuv}t{zz}z~z|zz~zzy{{|}y{~{xy|~~{~}z~~}~{z~yw~{yxxx~~v|}|{wy~|x~~||u~|x|y}|}~|~~}~}z}v~|~z}}~{|~y|z{}|{{}v}~}z}~}~{z}}~w}|xyw|z~}~}}}~{y|v~x|}}}}||{}|z}x~~~|{z~}y|x~||x}}{|{}}}}||~~}{~yz~q{~{y}}wv{~wzyy}|w|x|qx|}}w|}zw~u{~w~{|~z{y|}y}}}zz}y{w~}|||z~|z{~|}{}}x|z}~{wy~|||wzz~~|w{~x~||yzx{ys|{||~t|{|z|y~}}}}|xy{}~~{y||{{~~|}~||}y{}yz~z{yyz~|}~}}}{w~{}y{{|~}wx|{xy{~~|{y|}~~|}|~|{|~}~{~{||~v}|}y|}yz}{z|~}~wz}~|~{{x~|x{y{y}~z{z}uw|}z|xvy~zwy}zyw||~yzzwzxxw~wyx}y|wux}{~v}x|u}{v}|v{~||yur|~||wzu~}r~|x{wz~utz~txxw{{zx{|yxx~}uz}||xzz}atw~|zu|z|x~}}v}xu{}|zw{}|{}xvy}|zx}}ty}ufu|vwyw{w|~{~|t{zyz~}zx}~z|x{szy{zz{}y{{y|xz{}}~x}{{q|w~z~v~x~~zsz|y}wwzz~|{u|z}~wz||~{}yy}|~{|xx}~|{~{|x~}wz~swq~zy{v{~}~t|zz~x}~~~~|v|}yzt|~w|~|}}||{zw~}}{|x}~|~|}{|{{z~yv}||~w{||y}|~y~x}{x{}z|{}y|}~~}}~|sx}||z|}s~}z}wz}}~~v{{u~xz|z|}}|x}{qzz}~}~wv~~r{xz~y{z|t|z{|{~||u}}t~{~{h|s|z~y~y|}~|~||w{z~{||vz~yt|x~zy}q~||y{~}zz}~y~{w|r}|z|~~|u~quww|wx~||}}{~~|w~}~{~}z|}|}|~|z}||{|zz{~}}}z~{~|}||}}|z{}|y~}~~~}|~}~z|~z~zw|z}~{~xy|{}z~{z}}~u~}x|}~y}}~z~~~y~~y~|}x|}}~|y}~}}~|~}wz|~~~{wzuy}y|~z|}{|}|}}{|x~}}{}{~~}|}~~~}zz}}z~~}|~~|~}{|z{~~~zwx|z}}wyzr}~~~|yz}zyxxz{}}~~z}{z{{{x|y{{}|~{x{z~s}y{~~v}}|~w}}|v|sx}{}zzx~z{|{s~|~{z||~{|||~{}}~|~y}{||w}~{t{}wxwyyy|yw}xz{yzz{{}~w}}~~}}y}}{{{y{z}zz|}~{}yx|{~}|x~x|}z}y|}|wx{vx}|z{|~}}x~}~~z}{~~||~yw~||yzzz~~{{|~|~y{~~}}~~|zy}{~~uzz~~{v{x||}~~r|~y~~}y}x}|~y}~|{|z~v{|}{u}u}y}{}y}wx{~z}zt||{yy}~}}~}{~}uu}{~~v~|z}w|~~}~w|zuz|}~}~|yz{~~}v}}~v}~||{}{w|{z}x{|}t}~y|z}}}|~v{~~{yv~|{~}}~{}~|zz}v~~~|{s|{}zu~|~{y}}|~~{|~z~}y|~{{z|z~~|}{~}{x{z|zv|z~}}{z~z}~}y~}~~~~~|}{}}~||z|xy|~~~}|~v}{wz|}y~z~~{~~~|~|{x~}}~v}|}{~|~~~v}}}u~y}z{}|zz~~~{}x{{zw}||yz|x|x}{~w~}{t||sw|~y{~|~|{z~~}y|}~yy||v|z~u{~}y}~|{~~x}{x}|~y~{{}{}z~|}~~{vy}{|}z~{}~~}{~|wy}y{~|}{~zx{~zx~z||}~y|~z|{~|~|~zy{{}x}y~w|z{}~}}}~~||}x}||z~~s|}{x{~~~|}x|}v}|z{}|~|{{|w|yx|~{zy~}}~}u~z~~|~}}z}{v}{|}{}w~~|}{}yz{}}|x~~xzz}}~}|}~~~}z}y|y}||{~~~v~~|||y~~~y}~v{~~x~{~z~vs}}wt}trvuqwvxv|stzyqv|vu{||txrxsvtuvotlwvussjkzwtwzotnw~|svtzsu}}pp{atqep|yuwt}{vv~u}vptkvm~oyqt{qok|svoutmnuhtzx{{p{{xknyu\wpvvtsrotytqzkl~vx|{wtywuwlwzxtwygwpxxtxvztsnufvxtisqzux~rnuqtz]wyvwnwtmunt{wsyrqpxrpruty}zuxumqvxtwvusqxvx{xopmpyusuunjuz|iwuxrsmquxsouy}nr}iyyvos{zv{xtjxvXxvmszxyx{wwvsunxzrnsr|v}{qvtquw|qr|sjwww|vquwyvzhu}c}xnrxqt{u{|u~xstzxvkxnyvrwpwlxsvst~~|}{}|z}{~}{~~|~}s}}z{yz~}|{zz~z{~{{~{~|{{}}y{zz}}z~~~}~w~|~}~}|{~xz}|{x||wy{v|}xx}zy~~~w|~~y|{{~}ysz}~{}}|x||~{||x}~yw~{xy|{}z{}}z|yy}~{}~z~v||z|{|wx~x~{}y||y|}v~||}{zzu}~|}z{}}{{~z~~~x}}~{v{x}~~}}}~{z}}{{~||~|t|zzz}~{{z~v||zv}||{~ywvy|~~z|~|~zy{||y~|}y}~~~|~}z}~}|z|zx}|x~~v{||~~t||x{}|u}}~||}t}~~|~~}~{~}y||~|~~y}}|z{{{w|{||y}|{yt~}{y{|{x}x~}{z}|}|~z|yxu~}}z~z|zzw}xz}y}z|~}~}~{z}}}{{v~y}}}{}|~||}||}|~u}~}}{}t{w~||~~{w{|y~}||}z~{z|{yxv}}yzzxx}{|xzyz|yz|~{{{}z}~y|{}~xx~x{|{}}y|t}vy}~~wzzx~xz|}z|}z|xz}}z|||w~x~~{x~w~{|}xsw|}wzz~{~}}}{~{}|~{}{~~|yw~}{~~y}z|~{~z}~{}|~}||~}||}}|~|}}z}{~|zy|{~x|~|{}}|yy~~}z~{wzvz|z|z{|y|y~w~{z}}w|~}~~}}|t}z}|~wzy~}z{{}{~{~~}t{u|}~{~vy~|{{|{zz}z}|~wx}{y{}~z~|}}vz~~}}||}|x~}}zz}}}v~~~~zww{xu{{~~v|~z}y}z}~}ryv|}t|z{|x~~t{{t}~z~z|x|{}||{u}zuu}}{z|{y}zy|~{zz{z{}}wy{~zy~|{||y~|{zyu|}~}}~~}}yw|y~~~~{~{}~y||xyz~~~xu~~z||~{{{|}|xzz}{|{|v~{|{yw|~|}~}||sw}xo||~{y{y{}{}~~~~~x}|yy~|{{|uw}~~w{}x}w~t|~|~~~~|~}~z|{}{~}}}~~{}~{}v}}}~~~y~}t}y|zz~|{z~vw|~||z~x|yu~||{}}{zvx}}u|s~|y{~~z{~w{~{~ux{tz~zy~xvzu{|{|}~x|~~~|||t||ly{}~|t|y}~xwy}~}}}w|y{}|~wv~}~k~}{y{}v}||{~}~}}q~t}{~w~}}}z|z|~~~~~~t~}{y|~z|x|}y|}}}~{~xwz~~v{yzx}{~~z{~{ww~}~x~{}|}~{~~|}}z~vx}~{~{|}}{~{z|{}~z{x~w{w{zv}|x~|{}~z~wyxyt~~{}{{~|{x|y~y}~}x|||z|t|~}|}}|~~~||}wz~|{{xy~z~tz~}{}~~}y~~|~}}}|z|x|{~|y{}z}{~{zz|~~z}~z}~z~}|zy~}|}y~z||~~~}~|}y~u}||{||}z}|xy|}{}}{xy|~z||zs}~~y|}~~wz~{}}|~u{~|}~u||~}~z~{z}{zyz|w{|~{z}w}~|}v|s~|{{{~yx{||}|}w~w~}~yu~yyu{}~{||{|~w{{}|z}}|xu|yy{~~{}~x|{x{}~x~~|}~}}}}~}|~}su|{~{}yy~y}x~{~{x{x||u|~}~{|v}{{|{}}{z{|~z}|qy||w~x~}{|vx|w|||y|p|}y||~|z~v|~v|||y}|}~z~|}}y}}xz~yy~{zw~~~z~yvuw~z|v}{{v}yy{~}zw}}~}x~}}|{|}xv|}y}~}}|zxw}~}v|y}|~v}|}||~y}z~}{y}~}~}{v{{~y~z~zzv~|~}vs{~{~|{x}~}~x|xx}{{x~w}~~|w~zz~||u~|~{zyv|{|}|t~}z|{~yw~~{{}tw~xy}~~}~t~~~z}{|~}wz}~s|~x{z}zz{z}~{z|~}~|~xyy~~}w{}uv}y}~x|x|{v{w|z|}}}}{|{|~|y~~w{|||~|yy|{x}{~{|}}}}{||}{y}y~||}~}}~{}||~~||||~~~~z~z|z{|{~|{}}{}}}w}xy}}z{|zzy~y~w~}~}|y|}}~}~}~~x|~~y{x|}y}~z|}}y{{}z~w{{z|~w|z{z{}|}}{{}~|{}~||z{v~wwx||zy}~|~}~x|{z}{~z~~{vx}{~}zz|~q~vs}}z|lvzx|xs}{}z|uzz}|w~zvx~z}v{x~{|||w~{~|||}v~{w}{{{}{~zy~}||{w}}{~yzv~w|~~yvz{}z}}y{||}x~||}~zx{}}{{}~zz|y||{~}x|~z}~y}}}~~z}t~yz~x|~~{~z{~u~z{~qy~yz|~}y}zx||yvz~~z}~}{|~|~y|{z}~|wyxv|x{}}{}{|~uz}v{~y~~z~}}z||~}}{}{zy~y|~}z}z|}}}}{~~{{{yz{{xx}~~pvz~~y|~}~{~~||}}}}x~}{{{~|~t|}||yw{y}~}}z|~|z}}~}}~~}||~x{}|~}{}~|~{{~y|zy|y|}~x~}~~}t~|{}~}u||{~~~~~x~{yvrzz}|zz|~y}{z{zr~|~|y|{z|z}}|}zw|xv{}w}~||}||{|y|u~~}||z|}{}yz}uxz{}||~sx~}{~{}x|{y{~{}y}}~|r~x~x|~{|s}x~z~zs|wx|~|}xz{{v|{z||~y|}x{~}}{~||z|~}~~~~~y~zz~{|x}|~{|~}~y~~|}y|~z~}}~z~}}~~~~zz|yz|zv~~z{y}{~{~w|~{zwyu~}~{{}{|~|~~}~z~zz}{{~}{zwzyyxz~{yw|z~x|{||y}{}~u}~|w}~w}~vyx}~{~sv}{|x{~|}|~}|z}v|~{|}~}~~z}~y|{~~|~x}}}y{zs}w}|}|z{yu~~~|~x{}{|~~x~~~}~|~|z~{zx~v~s~~~~~zz|zy|z~~|{vv}|zw~|~|~z}{y~z~wz~y{{zz}~~~y~~{}xywrzxq}}~xz~~{|}}|~||x~~yv{~u}y|~|}~|}zz}~|yy~|y}z~yz{|z|~zzwwx|~}v~}|}~y~{{~z|{zv|}xy||z~zv}{|{x}}|zx}x{y~}|{}}|}|{xy}||}{v||~~}zwr|~{}{y|}vxv~s}}|z~~|~|{w~{}{}{zw{~|z|y}{w{wv~}}~wq}y}|}{}z}|~z{y~|~yuz~}~{x{|}~~|z}~}z|||}{|{{~~}{~~}~||w||||}|~}z{x{{|}{w|~|}y{|}}}z~~v~~vtw|||~}|}{~~y{x}}~}|~|wz{|w~z}vw~xw|y|||~~w{~~~~{wwzz{}|}z~}{~}{zx{|x|x}~~~~|}|zyxz{~|wuy|xz|}y{~}r}ww||x~~xzw~x{zyxz}}{y}||~|}}}~z~|||~~y{{}yx|{z|~|{{}~||{}tz}}}||~~{g}}|~}|}}w~~|{{zv~~|sz~b}{y~zz}z{~~|}rx|~|}y~z~=y|z{~{}v{y~~y{{|{~|y~l}{~y|}u|}z{z}}{x{|w|}{~{~{:}}{{~{wt~}}~~{|y}|~zuy{}y~}z~q~d~x||}~y~~|y~w~{~||}z{v}{{}|~|tsv{}}~}|z}{y}~~~{|xx|xz}~|}z}z||}y~|}|xz|{~~}~{|~~zz}|{xty||}{|~{|vyvwtyz~~x|vy~s||}~z{y}~~~v{y}{|~|z{|}|}~s||||{{y}wz~t{}}~|y~}{v||{}}~z}z}|z~zy~~z~y|~~{~}|x|x~}~~~x}~w|x~{~~z{}yyw}|zyyz|zy~~||yx||~z~|zyzz|{z|z}}~}||z}~s|}|{}}y}}w~z}|z}~}~}|t}}}~{|z|x|~}|zx~vs~xv|yz{}}~~|yx~|}~|~}x~}}~{|{}yy~wu}}}~y}}|y~{z}~v{x~~zzxt~}}zsxw|y{y}{|{}zw}y{|y~z}|t{}xu~z~z{zyvx~sy~zy{}~}~|{w{}|}u|~{yyu{}uz~|{{t}|}s||}{}z{}w~}|{x}|y}yy||vy|z|z}}xyy}{{yw}~y||z|x}zs|~xzt|v|}yxy|}|}}~yx{zu|s}~w}~}{t}|}~|{xw|~~}}x}x{x~~~~}y}z{}|{|z~~w}z~{z~|w~y{~v{|{}}wzw{~y~~t{{z{vx}{~}}|~~xyz~{}w|}y|x||{~zz~~}{wyy~~}xq~x~}z~}~x~wz}{yyw{{}|zxz~|y~{|}{z~v|~||zzxv}z{{{{|{~x}~~}~}{{{yz{y}~{|||~y}}{|{~xzx}y~~||y{~{x~}}zx~|~|}{~}||w}~}}}~w{zzy||}}|x}}x{~~~~}~z{{|z~~{{}{~x|{|~xzw~}|z|~|~}y~{}uz|~~tz{zx~|y}}{}}|{||xw|}}~}{zqzvy|x~~{~}xu|vzxzw}}}|{}~}{}}{~~~}{}{}w}}yzyx|}z~v}{~~|}}{}~|x}z||w}|||}yx}~z{yy|~}~~~yx~}zzzx~~|wz{{|yxx}z}z}{xy~~}{|}{~z|w}y}}~{z}z~||}~}}{~}|~{xz|y~|~~z~x}|~|{~yw}|}~|z~w}|{zzy}}|y|tw{~yy~|z}w~x}zwws~{tw~wz{~}|||}}~w{xx|wvy~{||x||}{~tt{{{zz}{}~~y|w{z{}~u~|~}~{}{~yy|{||}~}}y{}~~{vy}z|v}x~vy{zy~yvry~}y{~q~yz{z~~x~}|~|~yvx}zy~yyz|{}y~ywx|}z|}}vx{~y}xwwx{~{}}{zy||{~|~~|x}yv|||{~vy{~|v}~}y~z{}}{|v}~y~xzt}{u|~|z}}xz||{y}|z|~}~~}{~||}}~}}~~zy~z~{v{y~x}|}|z{y~w~z|x|t}~t}{}|wv~~v}r~{~~|}{y{w}{zv{}~{~z|~{||{v~xz~w~~{~~{|{{{|}}}}z}~{y{|{{~z}~|~~{{}{xy~y{}w}z}~}|}zzzs~w}|}}x{}z|{{|}}{}}}{||~|~~~|x{t}xy~~~|~y~y}z~{vyu~|~wz}{~}~{}||~xyw}~{}}~}xy}~zy}|}~w}{}|}z}{~~~z}{~y}w~~{}t~{||x{~{}}}~zy{|zy{~}}x~}z}}}z~~~x{~~}yx}{~}zz~|zz}ፆv䈏w{wz}}u}~~{w}zz~~w}}y|w|x}~~~~{|{yz~||v}{~|}~~x~||{x|}{{~}{}y}y{||zxyvy~z~}{y~y~v~~y|{}~u{}}{{u{}{}}z}y}{~{}}}}yx{~|z{||v|v}{|{~x|}x}yw{|{{||~}{~~}}{|||~{v{~~|{}}x~~w}v||y{~~z}|}}~|}}}~{{z{}}~}|~~|{yy~~}}|z~{u||txx~}zyx{~x}~}}x}|xy~xy}|{x|~ywy~~}}y{}|z}~}~~~x{{yz~{}}}}}~y|~~yy|~{|{}~{}z{|y||~}z~|}~~|}{}~|~}|}~~}|~|y~|{{~y}~}~~|z}w~|}~w~|~|~~{w|~{}y~}{~~|||~x~xyw{{|~xz|z{|||y|~}yzw}w}||zty}}~~~y||}}~||z{~w{|z}}}~z}~~w~}~}|}}}~~y}~~~|v|v||v{u}z~{~}{zz~~z{~|t}u|}z{}{~||}y}|~||x~~{}}|{}{~~||z}|}}|z~z~y|xu}|~~}~}}w|y~~x{}}~}~~~~zxxx~~|{{}}~}xz~~~|~{~}~~}|~}x{|}~|}}y|{z}||ww~y~|y~||xxy|w{|~}vxy|~y~}vz}~~z~|~x}{}}}}}{}~y}x{z|~{|}~~|}yz{~y~~y~~{|yu~x~~ty{}{~|~z|z~z{zy|~}~}{}~}|xx~{{~rv}~|xv{z~z||||||{}u}}{x~{|v~z}y~~{~x{}~}||~~}}y~{~}x||z~|~}|y~~~}}|{~~xzyxxx}~{|~~|}{x{~{x~||}~~~{|}|}~{}|~x}{w}vw}|~}{xzx~|y{~{~}|}y~x~|~uyz~~}}{|~~~z}~wz~|}z~w{t|~}{}~|{{}yz~}|www||{||w~{{y}|{}||v~|~y}}{z}|yy}u|}{{w}~}~y{xyy{~{}zwxyy{{{{~}yyx{|~~~~{{~{}|y}}|wvy|}}|y~~xz{~z{{x~wz}x~{w|~}w{y~y||{z}~}}~t||{xz~|x{z}y~~|}z}~{}|{|x|~||}~~z}~}y}{y|~|z{{}y}~|y}~z~~|}{{}~z}x~|}zx{|~z|z{|~xyx~z~z~~yt{~{y~y||{z{}}w{{wz~z~~~zx}x}u|{}x~||y}~}}{|~{}|{}~y|}z{{~~~~|zx|~|yy|y~x{|y|~}~~~~zu~|~wq{|~v~|{|{||w}z~{|~~z|z}{~yy}{{~{||||z~~yxz~yyz|z|}}}}~}z~y}zxz}u}sx~{y{{y|z{|z}}|zzy~wwx~s{|~{{~x|y~zy}z|{{{z~|~~yuy~|{|zxw|}z~||}|}{}{}|{{z{z}|||}{~~}{y}ys}zz}x}x~~}}{~~w|zy~}~}||}z}|zxv|}{}~|~||z|{~}~~zxw}}~|~z~yy{y{vyz}z}{x}xwx~{}yvz{y}w~~wvsxw}{y}{}yx~|~}~z{|}vyxv|~}~y|}}}x~|yw|~}zz~}|~}|{z{|}~}z|y{~z~wy}v~y}t{}}{xxyz{z|zz||{~zyzw{znx~|~~}|||||xv{vy~uzz|{|||z|}}~{z}~|{zw}{}~~}xz~xo}~~~y|{}}z}}zv|z|x||{|{}{{{|~}~~~}y|}yv}z{~zx~|~x{}~z{~|xs}v}~~}{||||z{y|}zv{|s{zz{xuv}{|y{|{|}~y||~|x}{}{}~|~xyx|{~zy~}|w|wz~}|~~z||~~xx~w}~|~~w|zr{}{~|{~v{|~|{yx{~v|~||}{}v}{}}yv{}z}}vw}~vvw~}{~}x~{y|z|~}}{}zz|{xz}}{|~||~~q{z{vy}y{t{xv}~{y}~{{}y}~}t~x|{}~|~{}|}xy{~|x|zy}y{~~{~}~~~z~x|w~{|{t~x{zz~z}}~z|y|t||~}{~{~}}{ys{yx{w~yx}}zx{}{}{x|u|z~z~z|wz|x}~zx|{|y{z|o|~{}{zu~zx~}~|w{}||vxt|yu~z|{}zz|~{{x}zuvyx{~z|yz{}z}uzypxx{{{y}}z|tz}|}|}zz~~zx~St|{}y~{~xxzs{|t{x|{}{vytz|w{|xxvv~z|~}r|~~|}zuy|~}zwv~Y||y}yu{~{n{||uy~y{z~}}|~~t~y{y{qtz}{{z~x~wz||{}~{}}{r~~|}xx|y|x~y~|v}~}~|}}xzy{|wyvyyy}~}}{~z{y~|~|{{xy~{||}|y}{~}z|y~|}|{|~|~}~y|~}{||~{vx|y|y{w|~}xw||}yzz~yyx}{{vz||ywzx~~~}|~~}}|}u{|~}~{}y|~|z~x|{tuw{y{~z{}~xy{|~{~~~y{{zx}s}|{~{||~{}{szw|yz~}~y~}|u~{|vux|}|{|}|}}x~x{y~{}|}tz~|~yz}|zyx}{{|~z~~~wxr~}~~}zy|}}~|{{}|}}~~|~v{~w{~~~v|w}|~|~~u~~}w~woz}{{z~}~}}y~~tzv~{x{|~{~}}~v}wx|~|r}z|~{||}{y|~xz~|~{~zx}~}zu|zt{}vy}~}~{|~z{||~~z{}v}||yw~}}|wy|}u|z{~{{}{|}~}~~~}{~{v||}yz~zs~{xy}~|}{|{}y|ww~yxt||~~}y{}}}~}}zxzw}z|~v~~~z|yu}w{{v|y{~|}z|~zw}|x~~|}x~z{|~|{~~vzxy}}~w~z}xy~y}{~~w}{z~|x~||zy{~}x}z}~|zz}}xz~}x~~||uz}~}|{~{y~~yyx~|||}}zy|{ztz~z~}~r|x{}|~~}w}yz|~|x}y}{w~z{}}{~}~|{u|{wz}uy~~}~v|{|~{}}yv}u~~}}t{z|z|}~}{}t{}~~|~~|}}|~{~~|x}~~{~{}}~{zz}xy~uyw|{z{|z}y~w}z|x|~~w|xz}v}}|xzv~{zwx}xzzy~}{{|wx{y{~{y~yz}z|u{||{z|z~v~}z{{x~tw~y~u~xzt{yzyy|ysz}u{x}vx}v~~~|||xw~xrzs{~wy|}}yx~}|~}{|y|xx~x~~~{|{~y{{~uw||}z||}xzt}yr{|yzz{}}~z}~}}~{~{u{~}~y{zxz~z}}x~z{{vz~x|~|y{x|yz~{|~{x}x{z~||u~~}~}~{~{u{{zy}|~r}{|~~z|y{~}}~|z|||{}~|~yyz}zz||z}||y}{~z|~~{~x}{|~|}|}{}z|z}zwz}}}~z}y|~~z{u}}y{}|}~}}}{{s}}}~}{|}z{~~z}|{y~{~~|}||}}~wz}~}|}y|{}vz{~}}{}}{w{z{~yy~~z}}}{z}{{yzyzz{}}|xy{{|{|~{~~~x~|~|~xz{x}~}{|{}|}~y~zz~~}|}~}z|w}||t}{~z{~z|xz|z~z|y}y|||~tz}~x}zv}~~~|}y}~{~||{~y}t~~|y}x~z{|~{}}y}{~}{~|}{z{|yw~~zzy}|xx}}~{w|{}{|w{}~yxx|{||{~|}~{|x~~z~}{}||zyz~}~|{}z~|||~}~~}{y{}vz}~}wx~{{|~}~}|~}z}x|}{x||}~}~}z|~}~||~|y|~||z~{~x~{{zzyyy~~}~}|~{}||}|z|tz}}|{~|}|{~|x|{~v~}~~}||~|~|y|}wzz||~v{y~{~{}~~~||x{~|x}|~|{~||}{yxw{z~~|z}|~{~~~xy~x{}|{}uz{{}~x{zx~}~}~|y~x|~vz}}~~~yz}}~y}x~}w|zys|}yy|~}yw~x~z}~|~~~x|{yx}quz}|uz{}~wu{z~|}}~|}z~}u|}{{}}||y|}wx~|~}~{~|||z}}}}x~|~x~yp|~vz}w{x|v}~z{||vxz~yzuwyzyu}v~{~|}|z}{z}u~|{{}{|~z|}~}}~w|~{|yr{|{~|zt|qz|x~zu~~~|z}{~~t}xx{~x}~|{|z||xz{v{yp|}|{|zx~v}~~~zqz~{z{y~~}{~~}{||zz|t}~~~x}|~~{|x{~v}|{{~~{|{|}}~zw~}}{{}x|t~|~l|us}~v}~z{xz~z|w~}y~y}|}~xz|y|yw~|~|~z}{|}}z|~|~{y|{z|~x{ywy{x{y~{z{{~~~y{w{z|z~|~{zz{}||~xz{}zyz{~|~|}|}{z}s~|~}z}~w~yz~~zy|~|s}~zy|}y}~~~}}{}w||~y~~{~|}~{|v~{}}}~~wy}xz}~y~~||~||{{~~x|{|w}|z}~y~|y}{~||}~|||}}~}{|y~zuz~|}|v|w{}~~{}zx}||y{w}~~}z{{}|}zzxy{u~~{}|uz~~yxy|~|xz|z}uwy}~~zzz~~wyz~~y{|~~}~~~|w|~yyzu~}~}}~|~z}s{{~{|}|~yy}z||~y|}y~|}xy}x|}|}vy~xwyw}y{}~zy|~~{~{zx|{}~|zzx}{|}z{~v~{~}}~}}}{{zzwyx|~{w{|||}|xsw{{zz|~|w{~xuz{zv~~~}~x{w}yu{|y~}~|{|}|t|vu~~{z~}}|z}x{{~xy~y}}~~yv~y}~z|}|}|z|}~{~~|~|}}{||y~z~~|y~~y|}|}|y~}xz}z|~~}|~|z{z{}z{zuz}}|~|{}{~}{}|}z}~~}{~~}{z{}~}y|~~z~}z}y}~~{{x|~~~}~{|~~}y|z}w~}}~}x||zy|||}{||}{|~}||}}{yu{{y{vyy}|}~}|{}}}{~|~|z|w|tx~~~y|}{y~uy~{{~wz|{|u~~v|z}~|~{{{w{|~|}}}v}x}}u}}|zz|z|y{y}{}}~~oz~zx|z{}{~{x}x{wxz{~|~{{|t|~{~vtv~{~|z}{~~}}|zs{zzyy~|xx~{|x}x~yz~z~}{|y~~{v}~{z}}z~~y}yx~|t}~w|~~~}|z~}y}{z|z{{~~{z}~}z~uy{{xyxy{}~{~}~x|{|~~~{~}{}~||y~|}}}~|~zv||vx}~v|~}~{yv{{~{~{}|~w}~{}~|~~z~x{~~}~~~{u}|z{}{xxu}}~~~}}~|}xuvu}}|}v|{~y{{x~{xzux|}v{zx}{z|}xz}~w{}}{z~~{u}|xzyyzwz|x{z}}}sx~|{z}}{~t|{wzzu{{~xz|}{zw}}|{yyv|y~v~}tzu~|}|~y{~||{~v}~|y~~|}z|v}~}~|}}z||{{~yz{|~y~{}|~}~~|}y~}y~}~y|y~{z~x}}~y~||~~}~}~|~|}~{}}z{||~z}{~{|z}~yyz|{~|}}|{|}}y|~x}}{}~}y}y{z~~}~|}{}~~z|}}|z{}|||}y|t}}|~|}|z~}}x}}|{wyzv{y~y}~~~~yz~z~~|}|~}|{y}}}~||zv~|{z~|{}}w~|{}|}{|{{v|}x{y{{x{~y{~{}vx}z~y{~z}ywzzx}{|~y~z||||~y~{{~}~{|||}yv~v~zz|~~z}nw~bt|}w~wn{y{|u}~yz~~}{|vxvjz~y~yuz{|ty}{{}~yz~|zyr}z}|t}}u|{wwz~|{||}x|~~o}{~~{u||}xzy}{~y}x{r~y|~~z|~z~{r~~y|wwswxz|{|y|{z{sv{z{|~||zzwzzxw}{}|}yw{|{{|zy|~zxxyrw~x|{~zyw~~vz~x||u~~~yx||{~|zyzs~{z}y}~~{}||xwyz|~{z|{~y~zxz{~x|}~||ywt}z}}w{~~z}|{x|{~x|~~~}xuu~{xz}y~{|}zx~|{v|t~~~z}|}{|~~|}|~|z}~}~yyz~~|zv~z|x~}{|u}zux}{~{x||z~y}|{xw~~}~}~~~}~{|}}||~z{w{{x|~||}}}ty}|xy|~v}x~w~{}~{{}}~~{}~u~|~|~y}~~||z|~|t|zvx{{~y~~~}x{y{vy}~|}z{s{|z|{ww}zzv{||y}}{}z|x}{|{|}{~~|w~|z~||~z}y|}y}||z}}||{x{}}xz~|}zz}xy|zz~|}{{{}~{}w}}v{u|~~~x}zyy~~u}z~}~}|~|z}~}z{~{~~zz||}}{~~}|{w~}|~|}~x}}{}|z}z}~~{|~~z{z}}|~}||vw~{~|}~||}~}|}}|{|||}~x}}~z~{~~~wyy}}}|||xy{{~zz{{v~|v{yzzx{}|~~|{{z{y~~wv{y|x~{}~}|w}~|}~yzzz~{yv~}|~y~{{{{~{||~x~y~{z~yyz~{z}}~|~}~y}|wyw|{yzzxx~z~u~y~}~}zx|~~{~}}w~}xv~}}z|ty}{y~x~}{{~}y}~}}tx{~|~yy{~~~u|{}~z~|}~z|{z|~zy}}|~z}y|z~{}rx}z||}z}z|zy{~z~|vzxyrs~v~~{~{uyy~usrv}y{}|yw{}}yz|v~||}}|{}xx|~w{}zv||}|y~zy}}~}{~}}|~|}y|~}}}~|x}|}z~~zw~}|vyx{r~}|}xvy~||{}~z~x}`|{x}x|}yvx}|}z|^zx{}{}vxz~y{~~z~y||x~|u}{~~x|z~vx~|wx{|z|~}zzy{}}x}}{{|{|~}~}j~{{z|yw}}~{q`{x|}}}~~~|}~~|~|~|w~sy~{|~u|x|zuzx~~{z}z}}}|~{{}yz{~{zy~}|}{x{}}}}y~~||v~z~z{v}~}}y{~v|{|~yzz|}{|~}~{~|~|}z~~z|}xyy{~~w~z{x~~{x}{yxz}x|}}}|}z{}~}zzz|yy||~~}}|w}{}~|{z~w{|}}}yv}~{}}}zz}~x|{~w}~~}}{}}~}|}}wyz~~~|{y|z}s}x||{|~~~|}~}~~zz~|{~z|~w~}~~}~~{}}}|}}w}~y|{}||~|}z}~y~zuy~{zzw{}~w{~{}yw}~{{qw|}|~}{z{{z|}y~vz~}w}zy||}{~~|z~zy~~z}w~{}~z~v{~}|~yzyz~vy~~w}z{w}v|~{sw|zvyz}{}w|v|~|z~~~}~z{}|}}z{|~yz}y|~}}|}z|~~ws~}|{zzx|~}z~}{x~{}xz}}}}~u~~|~~~~|{x~|~}{zyy~v|{~}|~|}v{z}{y|{|xz~s}~{}~x~w|zz}}t|{y~~{y~||w}~~z}~~~t~|}~{|~}~w|||{yxy}v|s|}uz}|{vs}yw|y}}|s|{~~{|}|~~~w}z}z||{}}~w~{{|}z}~w||}|{z~zyzyzyuxw}{{}{~x{x|}{y|}{|~{{{yz{}zvzx|~|}{}{}z{zx~~|zzy~{x{z{tx|||v~vx~wwu~w}y~|}xz~~~}}}{|~|}{}}x{zw~}}~xxx|z}}{{w}u~{{~~v}y}{yy~~~}}}~|}}}{zu|~~~}z{|{y}~|}}|||v}xv{{zy~}~|~}y|||||~yx}}~y||}z|{z}~}{|~~yr{z~wyzwx{~}~y~~z}}z|x{x{}}y~}z~|t~{up}z~~x{|}xv}{{xwyv}x{y||{}{y}|z~xt~yv{{}~~zy}~y}z{yy}z~y{{~~|~|zy~}|~{{zx}z~yy}~y}y~z~wx|}}|{z}x{{~||{z{|}z~~~{{}}zv~}~yyz~v{}|vzw}~}~{y}|}t|y~}}{{yx~}zy|{{w~~{~z~|}{|}|}uz|}|}y|}y~~{x~{{}~~tz{zy}}}{~~}}~z{}}{z|zu~w{~{~~xu~}u{~}~{|{~v~z{|}vzx~|y~~z~|z|y{w~~}~{v}w{}}|{}||w|{wxzzyw~~}~{}~xw{{w~y|~~|tuy{w{~}|x~|{uuv}|yyu|zy|}~x~zz|{|}{}|~y||v~w}y|x{|}v~{}yt~|{}}x~v}{zwy~|~}~~|uvvw|z{~|w|~~t{~}{|~~wy}}}v||y{zx|zw{w}zz}yw~~{w~y{~~|}||~~~v~u~|x|{~qz|}|~}||w|yy~w|}}~}{}wy{||~{~{y|{s~|}~{x}z|w~|}|~}~~~}t|{{|~~z|}}y}}~y}~{|x~~zx}{{y~|~|tz}zz{}x}|{w{|zr}{~}}~z~~xp~}~~z}{{~}|}zy}|{{y~zx~~~}xx|}w}zz~}v|{|w~~|~|{}}w{{z}~zyx~~|~z~{yxyy{|}}~z}z~y|}z|}z}~v|||~{{|{|}{|}~~|z~}rzzx{{}||z~u~~{}~~{xw}uzy~||{}}|~{z~~~~~{~wzz}|}x}x}}x{{w||z|yxy}{y|}y|{|xu|~~u}}z{|}zz{x~~~y}yy}~z~}zz}y}wy{~~|}~|~|}~}{~zy|{|}~}{{yy|~{|~y~|v~{~~~{{|}{~}yz~z}}}}z}~z}z~{|z|~~~z~{||}}x~|uy}~}|wx||}z~|~~~{~~{}wz~~v~|}~|~|yy}{}x}|}|q{x}}z|{}}~~}{~}~{{vy~|y}}}~x~{||~~{~|{{{z~}}}zyx~|y~}{}~z}}v|}{sz}{}~~|{}}u}{y}t~}|~~z~}{x}{~~}}}{~~y|~}~z{~}|}{}xrq~}}v}|vxzy}{~{~|}}y}{}x}~v~}z}w~||}xrx}zpz}~|v}x{}{{z}w~y{q~w|{}}~zz||}yyx}|~{x|}|}|~~v}||~wy{{}~}zyzx{z}yyz~||||~zyy{sv~z}{}t{}{t{|}}x~}{{~zz}~y{~|}}vtz}w~|}xzy|u~v{{~~z{z~y}yw~{}ux~t{}~~|{y}|}~zz~}}{y|{|}|zwr}{}}}}|~z|{}zyz~{}|~~}~w}}{~x{{{z{w~~{~}}zz~|~~vx~xz{}}~~s}x}}twy~{|{vxx~}x{|~z}{~wzy|~{u{|{|}yuz~}~y|~xy~z|xw~~}w~|x|||y~|yyuv~~||}y{{x~s}}~{w|~}{z}~|{zytvy|zy}|{}yywy{{}y||~~w|||w{z|~}w|w{|~y}x{|~{{xzu~zzx|~v}|y~|}{y|yxzr}~~~}{z~~|~{{xz}}~|||{{|{zv}v|~|~|}xz~~~|~}|~}v~w}|{z~{|~~}|}}}|~||zy|y~}z{~|y~~y||}~x~|}|}yv|}{{{|}~{y}{{~~|{x{yy}~zy}~~}~~~{|||v|}{{~{||~~|||}y|w|z|y~y|yz}~x~|}}}}v~}yz~~{{}rv}}{}||{z}}y~|v|z}xut||{{~xx~|y{{~zy}xxx|u{}|}}}}~{y}|yp{||x|}|{x{}{~|{zs|{zz}}}}{x}~|uuz}~}z~~zx{}|v|{}}zzux|{zz~|{||{~~|~}~xz|{}||}~}~|{vxsz|}wu~~}}|z}z|{z{yz~y~{}}{{~}}~v~zz~zzvs~}~v~ww}~{~}{}z~~~}uzz|{{~yzz{|z~~zw~x~z}~}~{}zz}|}{}zz{wxw{{|y|xy}{z|~yy{||}~w}yy}|~~~~y~zvyx~}|z|}|}zz|~}zs{|}w~}~}~{~|w}zw|{}~|}~}zyyxxyz||xy~v{}{}~zy}{wx~}y||y~|}|}}t}|z}|w}}|~~}zy|~~~u|}~{|~xwx}{}|z{}y~zvw~~{|y|{x|w{y|zxx~}zz||{}|rz~~}|~||yz}~~{~}~~~{z~~~~~}|}~|y}|~zz}~xy{zzx}~}zyz~}}~{x}~~{wuzv}z}x~y{zz}y|zw}~w}txy~}}wy|z~{}{x||||{xzt}z||{z}z{|~~v|{{}y}z}~||{z~x}~s}xy{x~~}z|~|y|~}|~}|~z}v}~||}}z}|~{u~}{~~z|{{w}|}}}}~~}|}x|}}|}|}|z|zyux|y}z{{y~~~||x||}}|~~}x~}~}}zy}}z~~x~}}~||z~|~t}x|}|}}zw~{z|w~~~~{~~{|}{~~~{|{~~|y}y~uyx~}}}{|~~}|w}{y~z|uy~|{~~|{|||vy{{w|||s|~}y|w||~{}{}{~||z}{{w{}|}z{zt}u}zx~|xz{|}{{x{~|{|ww~~}z|}||}|xw|x}~wz|}y~wz~wyzy~zz}xz{x|{|z~yxzxz~yx}}xz{z}}{{z{|y}~w|}|y}|xxx{z}{w}{{{}}~}~y}xy|}}~}}}}}~yy~}~z{|||{z~~{}w{|||}|v}{|{|zy~zzz}}z~wzz{~~~z~~|~~{x~|||z}y{}ztv|~z|||v}{zuzvy{~{zvu~}}}|~{~y~zyww}v{x{~}|~}~w|~~t~z{|t}|{s}|xv~}z{{wy~|t}||~}xy}{~}{~yx~}|z{r}|~x}v|{z{|}~}x|{|}~|~}vyxt||x}{~}~xxv}}~}{xxv||w~}xvu{zx~|w~z|~~v{{|}}{||zquy|~x~}}{~~{|}z|{|~~{}{|~|{~}}y~|~||~|}}~}|{~{y||y~||{}}~z||}yx{w|~}|}x||~~}|~|y{|~|z~x}||tz~{y{{}|}w~~|}{wz{~y|w{~}~}|{}u}~xz}||~|xxtsyx}~yzx~}}~y|}x~~~}|tzy}}~{~}~{y{}}y{~xz~|}}|yu~~}||~}}|{~~~~z~{~~}|}||{}~~z||z}~|}~}}w}zz}~~z|{~xzy|~|z~{{{{|y}}|z~zx{~x}}v|~}z|~{x{|~~~}~|}}~v~}{}~zyv}~}y~t{|}x~{{~y}{||}r{}~z{{{~~~|z}~{v|{}~{~z}~{{~v{}}z{~|}}}ywwz|~z}z}||x~|z}x{}|uvs}ty}}}{z{}{{|}||||}|{|{}}}}}y}||wzw}~}y~|}{{{z}~~~w~|z}uz~~zz||||~y{{y{~~v|~||u{}{zvw|{~{|~}}}zw}|v|~x~w}~x{~zu~{x|}z|||u}|~y|}{~z||}}y|}{z}~z{}}{~yy{~z}z~}~z|}}|w~~{}|~}z|z||uv}~{y~xvz~}}}}~y{}|~|v{|w|{{|}|{{~~s}z~||}{{y~}}{~yy|}~{}x{~{}~}w~|}x~{~}}{~}}z~~}~vw|~}{{~z}zy}z}y~}w{y}y{~}||||{|w}x~v{}|~yx{||}zx{vvyt{}}|~}{}{}~zz|}}{}yz~y||u}}}w}x|x||}{z~~{}|}wt}~zwyy~xzw|xx{|}}z~{~u|}y|xw||~|}x}|}z}z}|}{}zy{}ww}~||}~|z}~|}||y}}|~zvy~yy{xzz|zz~}{tvzu|~~{{}|xz}{{o~}x~}~~}}z|}{z{~{|{|z{~|w{~xyy~~z}~~}|{x}u{{{u{|z}|zt~{|y}~t~y~v~~{~~}w}}~|}x{}~y{}{wyux}{|~z{z||}wx}~|||~}x|x|y|{v~}~}|~{~|{}{zz|}~~{{~|y{}~}}}}||~{~}}||~|vz~~}|~}{|~{{|y}zz|{z~{}~~~yz}~}|y|}y}~|w~|z~{}vz}z~yy~y}}y~~w{}|~}{w}{sv}z}|zr}}~wx}}}~y{{|}~|}{~}uzz}~~zy|w|~w~~yyz|}{~}|wx~z~~}zz|{w{}{|~}}z}w|x{}wy~{~}|{{|x}vy~}~~x~}|~{~}s}z~y~{u~tz{{|~}}}|z{|}}|z}}~}~y}z~}}|x}~z|}{}}{}|}~~~|r}x{|z}}yx~~v~{}}{|x|~z~~}y||}yx|~|y~}}}~~vyy}|{x~~~|~}y{|z|z|~}~{{~x}y}~yv{~~}|{~{{}z}xztw}v~}~|xwx}}~}}y|~zx{}zzy~~~{||{||~x~}~yy{||x~}~~}z{~wz}~~|x|z~||||}|v}y|~}|}{|}{~}~|{|~xzyx|y}x}x~xv{yy|{~yt||xv||wu~~{w|{{~}y}{}}y{~x~y{{}{}~y~xu}}}}~|}}}{}}{}ws{{}x}~y|}y~z|~x}w{u~|qy~|{z|||z|~{}{}z|}}{w||}}|z}~|}t|vs{}y~xyz|}~~}|}~z}}}}}txx~v}w}~~}{yz~u|z~|xyy}uy~~}v}zyyzwzvz}y|z|y}{}}||~z|zxs{v|t~|{|uz}zz}v}|{~{}~{wzq}~z{{~|}}{{z~v{|~w}{{xxt}}}w|{~|}{{{|zx~|zy}z}}{zy{y~}|z~zy~}}{y}vz||yxu}|uzz}|xxz}||~||u~x~{{|}w{w}z}~v}|~qz~~u|||w}yys|~{y|w~v}zyzwy{z}}{{}~~xyzx|~|~z~z|~z{y|}w{{~{}z{|~~}~}}~|}y~}{|}}x{{|{~}~~}|}|{~~uw~~zzx|~~|}{|{}zw|}{~}xyx|y~~w|{zv~}~|~z|y|~}|~x|~x~~~}z}xv~{~|}}~p|}x|w}y~yz~|yw{z|y|}x~x{}z~}}}}|||~yz|~yw~}z|~y}x{y|~|vz|~z~}{~x{{~}}}~{~{}}z~~}w}v}xw{~|}||}||{x}|}{}xw}~{zyy~t|y~{x~~|w|tz{}|x|}y|z{wt~z~{z|}~~}x{~~~}y||x~zz{~zy}z~y}~{~}xx|x|wy}~z|}~|}x{szwzu~}z|}z{{~}~|}zy||{y~~}}wz~y}{{{y{zuz{{|}z{~}~~{{s{{}zy{x~}|~z|v~{~|{zv{{z}}v{z}~}{}y}{|~}~~wzo~|zw|}~~~~w}~~||z|}~{z||}{}{}|}s||}{|}ww}~y}x{{~}|~x{y~~z}|}zy|zz{u}|uz}y~xw||~y{xx{w{zx}~~vy{{}y~}}}wy~}|}}xu}z|}{||}y}{zz~~}~~~~|~}|~~}v~z|}|{{v|~y}{|{|z}~~}~}}~~|{}{w}~z{{zw~t{z}z}{~{|}}~}}z{}|||{{zv}}}}|~y~~~|{}|{|}|}~v{{~z||}{|zy{{~|}|}|y~z|{}|~~{w}~~~~{~}|{zzz||yy}}x{y~x}}|~}~}~y}yx|yx~z{|z}|~~}y{|~}}}~{~~~~}}|{y{|~w}}}{{}~z~||}}y|~}}|~{|{{}}w~~||}{x~{{x}|~|y~|}|}yz||wx{y{z~|}{}v|{{y}ysz{{|~z|x~}y~wq~v{|z}|v|v}{xzy~uy}{||~v~nzx||vx}~}~|v}z||u~uzy~v}y|ywz{}ysyzyz}}xz||z~x~wp~|{}{|~tn{~|}y|~~}}zww~z{zu|~y|}v{~yw{~||~y~}{}~|~w||x{~yy~|}}~zwyx~w}{z||}~}}qy|}}|~z~}y{|z}}}|}~z}yw|z~|}}z~|{}}y{y~~~{vy~s~}~{}yx{w}}}}xzxx}{tz|x|z||}~~z~|{~~~x~~~z}{}~~}|}{vz~z~}~{}}~|z|~w~vz}~~}z}z~~}{y~{|x{~~{}x||z~}yzzx}{}z~z~~~{zu|{xt~vy{~{{}{~|{|~}}z{|}yzy}~y|z|~|}~{~w{~|}}~~}}{z}xv~{{~~|x||}}z|y|xz|}|yzx|{{|}~|~~}}{|y}{}~|~|~z~x~||~~~~{}z}|~~}~yr~}~{~{tz{~}}|}||~}}x~x|~|~|xx{}{}{z|~{y|z|z}||~t~x{~v|~}~||~}{|w}{}zw~y}w~}{}zxzx~~y~wzz|u{||x~||y}zzwz{zx{~{|w{z~~{}}{}y}}{}~~~{~~{~ywz|||}y{~|}{zz~}{~~}}|u|y}{}~~}|}|y}{zzy~y~v{~~{x|z~|~}{zwy{}~}{{}|y~}y|zx~||{~s}{}z|y|wyy~y}}v~|||w~{u{~uzt~y|||}}wxxqz}{z||{|{zw}|xx}{}xx|{yy{{|{y{{}{zy~{y~}}u|}uzx|}|{x~{}{{u~}|x|}|~}z}~{~}}}}~}||us~}q}}{v~~v{}{z{|{wyy|{z{{z~}{}~~v}~}~y{}~|~z|x{zz}~~~x~}{}yx{|}}}}|y{xx{||~~~}|w~|w~~|}~{x|vz{}|~}yw~{v{z{w~y~t{}|wx{{w{|~yz|~y|v~{w}~wzz}xy~w{}xy~z|w}{}ts~~z|x~{~|~y|}{|z{z|~}}~{q{|y}~}x~}{}~~y|~}~u{z{{x~|{}yx|z{~}|yy}~{|vzz|y{~|}z~{{|zw}x||{~x|}{yyu~|~||}y~xvw|w}xu|v}{|x{z~~zzz|x}{~wxx{|}~z|z~xzy|t}yyw|}}~|~{~{z}yy|z}}}~~xy|z|z~u}|~~}~~xx}zw~}~~wvu{uzwy|y{|s|~|z|x}~{x{~w}~x|z~}~~w|w}{~}}|{~{~~zyx|~~zw}~}zw~~}}{~{|~z}~|~}|}{||~}{x|~~~~yu~|uy|{|}{~~|z{~}~z~~~{~|xz|xzz~|z|}yz|~z|z}y|~~~}|{x}w}|~v~|~~z}~{|{~xx~z{}~zx}{{|~zzv|~~}}}~{y~y|}w~~s|~}~{|}~{|~}}}~zz}|z}uy{}z{y|xz~~|y{xyv||~}zu~w}wv~w}}~}}~x{x}|z|zz||~|~}wz}y~{{|{}}}{~{{y{y{|z|~{v~}|x}yw}z~}~{y}~~|x|z|{z||{{|{}zy{{{y|{v~x}y~||~y}y~{|}||zzz{~|yx}{~~y~~{|x~~~~yyz}z~ws~y|~~z}|y~{}v|~}|wyw{szy~z||||x|}{z{r}~w~zz}}}u|{~}tzz{zx|||~{}|}s}w}~}~|{r~|~|y{|~~~~{~{z|{{|{}~x{~}~~|w~~||wu|}~{}~w}zvw~~~xxxz}}}}}u}}x{zy||yy~zyw~~~yy|y|{~~~}y||~z~v~yy~}|x{~z}z}~~yy~{x{z}|y}|~zz~}zu}w|~}}~||~{{~|{y{~}}~|~||~}{}|}}||zxx}vw|}z~}y~y{|v{~}tr|xz~~~~y|x}}}{|y}}~x|w~v~xy}v}y}}zz~~{}}y~{}|~~x}~|~|xzz{}~|}}}|~}{y}~y~w~~~z}}~||x~|~~}}}~}|y|z~|x|}z|{}~|~z|~{}~~z}z~z~||}}~y|}~~{{||zz|~~|x}~z~~~}}~w{~{z{u{y|||~y~z~vz|yvx||}yw{uv|||w~z{{z{q~|zzx}{}y{v{y|tz{z{}|z|z{u}~}y{yz||}~{{}~{z|~y{}|~wy{|w}~~}x~{yz|}{ww}zzy|w~uz{yvwz~|~{{x~~|~}~}~yxw|{}|}~xzvy}{wu}}y|zzw~||x|zy{~wy~~|w}}}|}|~y}}yxy|}|~z~{yz}{}z}~z{~}}}z{x~z~w|u||{|~~y|}{{zx{z}~{}|w|}|~z{xz|}}w}v|z~{{|{|}|zysv|yz{}~|||{{}z~w|{~|u}~zztz}x{{{}{x|}{~z|r{x~|y}}}u~xr}y|~zz{|z{|~|~x{}}w}~~{}~}}}}z{|yx~z}~~x{|}{{y~zx{y|yz~|zz}|{{~z|z}w|x~}y|{v~xux}wz}}|w~~z~~~tw~|~|z|{|{s~z}z~{{z}}~}~xzz|~}}y}||}yzz}}zx{}~~||z{|x|{}}s~|z}~}~}}||||~}}|y~z{z~y}}{}{|z}~~y|}||{x}zz{{|zwyxy|zx}~r{yzzy}~w~~~|zuzxyw}y}{{~{~{~zuz~{|~{|{|~y~~{x|~w|~|wx~{}{y|}~}vx{}}zy~{xxz{}}~zv}|x}y|}{~~}x~{{{}~~{vs}~{y|z|~{}y}{}{{}z}{}{v~zx|z{{yy~~|w}~{x}zxx~xy{yy|}{~{}yzzx}{~z~~}z{~vu{}{}z{y~|w|x}qyz}}tury{~{{yww|z~w|~~{y|||zzyy{~}z{{z}~|~|{}z}z}{|~|~~{}{x}z}~{z||x~z~y{||{zz~xy|}{~|x|~~xx~z}x{}~{|}}z~~|{xz|z|~|{{|~{||z~|||}xzz}x~}x|{|y|x~|vx{}~u}~~|{}}||}yz~{~z}~}|z}}}~|u~yu}}{|{{t~~zyyz}|{}yu|{xzz|w}v|}~}|~~s}|yx{|x~s~~||z{{}y~~|z~}u{~{}zx~~}}}}wyv{z~{|szw~~wzyt}{~~~~{}x{}}{~}~uvx{y}~{||}xyz|}xuzz}~~{|z~}}wx}{p{{}}|~{~y}xzx~z||z{{{{}~{{w~|{y~}~|y~}{}y~||z~~~u~{|{|{{}}s~{yw{|~|}~|xyz~}}y{sy|{z||~}~}{}y~wv{y}|x~zy{z}~}}~{~y}~}|}x~||wz}~{v}~{|~z~yxvzyuy||~rz}xyz~~z~||}|wy}vt~z|}xz|yyv}x|~}|y}z|~~}~}~y||y|z}{}yxyzy~z{}z~w}zux}{}~y|~}}y~zz~|}~vz}}||~}{}wxx|~|wt{zyyy~}y}oxw|~z{x}}~yx}wx{y~~~zzy~~~{{z}{z~|}{yyw}}}ywzz~}}|}~}{{yx}{w}{}y}{}~~~~~~y|~~}y~yyz~x}|x}}z{zyz{~}~{xw|{|}~}~{z{}z{|~y|{|}~}w}{}}zx|~|{w||y~|~}y}z{{|yyzt~~|{~x|~z}z~~|xzyt~y}{~x~|~y}||x}y|}|w||~{{~|{}|~}{w{~~~sv|sz}{y~yx|{{~z|~~~~y}{|~{}swy}y}}z~~zxv}y}|~|{|||}~{y{|vz}tw{}yzz{y|zxy}z~xvz~}{{z}xuyuzz}{}}~{{|}|{{|z}yz|||}~~~y{x|}~z}}{z~|~~~}|z|x{}}zz{w}}~}}|{~~|~{}~}~~y~~z}{||~|z~|yz{{~||~{|}~||}~u~|}{~~ww~}{~x}y{{}}|~z~{{~}~y}}{{z{z}}~{{~y|{~~zy{}~y|y||z~|~{~~{{}}~}}}z|x|}y}~z~}~w}{{~yy|}{~}}|}~~{~}}}|}~}}}}{|{{||}~w{{}{}{~y}~~~zy}y|}}}}~}|~}{|z{~||~}y|}y{{}|~z~|{{~~}{{yw}xy}~~|{zzx~{|y~}z|~x|~z|v}|{~w~~z{z|}~~~y~x}}{~|}zy{w~~}s~~}~{~}|z}u|}|}|{~~{~zy|{y{~~zx||{}{||~y|w~~}zy|~x{~{~}z~{}|w|{y{}yyz~|}wz}{u}{{|~{{{~|}~z}}{|zu{}u{y}~u|z|{~~x~xxzy~|u~w{u{|~zz|~w{|wy}w~}y{y}x{}}{~|z{z~||y{}|}~||~z}x|{|}{z}||zz|~~}x{}~~~z{|}~{~}z|wz~yz}|zzvywy{z{}}|z|}{|w}}~}~}|y|z~}~z}z|z||~{z~}~}xz~{yv}x}|}z||z~~|{}{zv|zv~z}~yz}}v{zzy{|~|zyy}zx~v~z}~z~w}vz|~}w}}zzwz{}}|}Y|ws}t~wt{{w{|}xxqz}{}{}y}w{}|v}~n}yzh~}|w}w{{y|~z}y||xx~{|~|~y|~}~}{z|x||z~|}}z{}}~~~y}}}{y{~{|{~}z~|x||}~z~~~~x{{y}~}v|~~}~~~~~zy~}x|w~~y~z{~~ytzw|~wx}z~y}|wtz|{{||~vz~~vyz|{|{yyu{|}|~{}||y}}zy~z}w~{{~}}~~|~z||x~{|}z|x|z{y~v~v}|zqz~x}z}}~|xzp{~~x~~}zxu{{}s~|{~|z}}z~{~w}||~{x~ywy{v{~||{wztxzxzy||y|x|~wx}~y}}y|x~{y}w~}|||y~}}~~~|w|}|}~~}ww~~y|{}~vtx{z|xyx}|||xz}|w|~~}}w|y|{{|sxtx}zyv}~y~}xy~}szz}}}{~{y}}y}}{zzy|z~~zwzzy}|}}}~|}}u}z~w{wy}~z{x|~y}~||x{w{{}z~{~|zz~{|{~{x}w}~z}{~|}lv~~y~|}y~{}~y}yyzvzw}~}{~}{|}y~~~~}{|xyx}~ztz~w~~{{z~}}{zz|{zz|v}}~||{y{{}~~}~s~x~}zzx}~u~|yx{}~{~{~zwy{v}}|}~zy}~{}}|y}}~{v~~|}~ux}}}}x~u{~~~}~x~~{|}|{~}yyyxz|{vz~~s~{w}|~}}~yvzs~~~~}|v}x}{}w{v~v~z{}~w}s{tzy}yz||}{}z{~{~yxr{~{~|~zx~|~}~|}||||w~}}z~|z~||w}zxzx{|~~~z}{}s}{~zx{}{~y~}|~~}}~~vz{}{~|{~||}}{|x{~z||w||}z~{{zz{~}}zz|wwz}||}|x|}~x}z{~|~{x}yy}~xyr~{x||vw~z|{y~~|}{{}y|}~}}~z~||}z~zxww{z{wv~|y{|z}}{w{}zw}zuxz~~{y}{~zzz}yy|{v}{|||xzz}|w{}}y}x}}{y{t|~{y~}~}|}x~~~}}z}~{~~y~z|{~}{|~}}|z~~}~v|~~||x}}y}~z~~{{}|{|}~~|}|z{~{z|{||{y|~~}{y}zv~{}{~~t|~~{{z}}y|zuw~wzs~|y~x{y}{z|||}z}}}||~z}|{}{w{}}yx~~{}~|||~x||~~}{{{~~z}}x}}~w~~xz}~|x||~y|~~}{}x|}w~~y|~uy{t~{}xz{u~|y~~||z}{|{}y{|}}wzz|tz{~v|}~~{|yw}{|}v{}|}~~z}{{~}{v~{}{|~}}}|{~}{}~{}~|~}y~w}|y~{~~|{{zt}|z{v}|~}}yx~||{|s~zs}z}y}}|z|}}{yz{|{~}}}}~{x~{~{|~z~~~|xx|yz|y}u{u}zz}|{~~|||~y}~w{{~z}~vzuyy|r|y~|zu|~z~xyy||{~z~z~~~{zzwz|~z}|{{|}}r{~|~}~vz{||zx|{zxt~~~{|wxt{|~yz|~x}y}{~{~~|{}||}}{~}yvv~~{}}yx~~w~~z~~{}{{zwywy{y{~{~{|}~~{{}{zy}}}x{{}|}~|y{~}|z}~||{~}{z{z}}|z|}{{|}~xz~x|z||{x|~z}|zw~~}xz{y|z{}z~~~{~|}|{y~{|}}{z~~y}~{v}zxz||zz}}y~{}{zy}}yzx~~~{~~|y}~vw~{~}zzxy~}}w~y~{}}|~y}t{|}~{}~w|}|~{}{}}~}}}~}x~{|}}z~~}}|z~~~}~z}{{|~}~}}zv}{}}|{y|{y|~zy}}y~~|}z|}w|~||{{}{}}{z{}~}}~~~||y|}|~~y}~~|~~z}y}{}xy~z}{x}zx|}{}z|{v{y}|~~}z|}{|}|{}x|w}}}{s~x}~y|zwx}~~yz|~y{}~yz~}z|{z|{|z}{{}xz~}w~w}~~|~~~~}~w~{~~|z~x{z|~z~{{}||~y~||}{x~z||z{z}|{}{z}{z}||}}}|~}{~z{~x|xy{~xz{z{|~zy~|y}~u~x}|{~|}}y}y}|z}{}}}~}}y~}{z}}y|~||ww{y{z}|z~|z{~|}}|}{}y}{|w{r~wz}~z}~}|~}{|w{{{{tz}|~x}{{|~y|}q{{~}~}}~~|}{w~|~{|}~~z~{{~}u{{{zz|{|{}yz{x~z}y|zt~~y~||~{||{|z~s|{~z}}z~}z}~~wz}~{z}{|z}y}}}|~x~x|x~~|}~~{{~~~|}~}}~{{~~~~}x~~}}||}~}}~|}}w}~}|s{|~~~yyy~y}~yz{z~z~}z~z}y|~}~zyz{{z|}~}|{~y~~z}}~}}~~~}~~~yy|z}zy|y}~}|||}||}}uy}|x|vzz}~}~}~{~~x}|~}z{w{}x|}|y|~|}z{}z~uzx{~|~y}|z{~||}x~|||{z{~wz}{{y~~y}|yw|~x}vxz{}y~x|~{~y~||yz~}y|~{q{~ty~z}x~~~|sz|y~}z}y~~{zz||y~z}~y~v{~||y~~}}z}x~~}|z~~}syz|}{z{ty}|}z~yz}}}}}{~~~~}zzy~~||||~}y~~wy~{}~|}~~}~|w{{y|~~~z~~~}|}{v~{||{}{~w{|}|xzy{{}~|~|~~||}}~w{~x}z}{}xw~{|zt{}}~{}t}}xzz}}{wx~}z}{{y}z{}vw}stx~w|{}w~}}~{|yw|}z{zz{|}}||{|y~{|yz{w~}~uz{zww}x~xyvsyv~}z}|~~~}}}|~x~wyx|~|}z~{~x|x}{}z}y{yz}}u~|~sy}zwy|}}{~{}|~|w{~|}yz{z|{|{s~y~z~}~z~uzwz}z}}}{{~x{}~w}~zvt{}~{}y~}yx|}{}~}~xx|}~|w~|~{s|w~z{wx|yyx|||z|w{}}|{zxw|y||{}w~{|{zu}}}}}~xx~|{~{}}xtyx}}}xyz}~{}}z}x|wv~z~{|}zw~~}xy{}t||zy||}{}~z~~{|{wu~}|~y}~~yw{|}z~s}{|v{{{}~{}}~z{|{x}~|x{y~u~{z|~~{|~|z{z~|{w~~u||t{}|{vyx{{~z}}|u~~~y}}|z}|~}z{}wzz}wz~{v{t|y}~{~{z}|zwt{zz{|{{|~{{tvy|}{||~{zy}y|~yu~{vw|}||}xy{}t}}}zx|}||z{vzz}zxvy{{~y|~x{~{uz~x}y{|||~||ytzy}w~|~|zx}~~yy}{~~w~}xw}y~}vyzy~z{~}~|~y{~}z|{x~|x{|~w~}yz|z~~uyv}{}~|xw}~|~}y|}~w~y}}|~}|ywy}~{~}u{x}~x}}|~vy~|}~{y|x~{w}rx~}u}}|w}{~|w}ym{{{u~|}|wo~z~~{}{{}|{y|yzy~}}{yywx{}y{}z}z|{~~~qz{}~ws}|x~yt}{|y{{{}{y~~zxvv~~}~~~}}}w}x{~~|z~y|~zwxz}~y{{z}tv}|z{y~~xz~~}x{}{}|z{||~}{~{xz}~~z}z}y~~|{zxvxsyz|~{{{vz|wy}~~wzzyy~xyv{z||y|z~~zux{w}yzx}~rxzy|y{z~~||vwvw|||y~}~zy{|{}yzyw~~v{z{wz{z|~~rwyv{|{}{v|yz}~}s~x~{~|~t}xz|{~||{z~|}||}{x~|zyx}yzxz|~tpzz~zzyyw{{~|w~|zx|wz|{~}}t}uu}y{}x{}}{|~ytz{~v}yv~||x{t~}}y{~{}x}|}~~}{z~x{~vz{wyx}}~z}w~x~{wzw}{y~x|~zzw{}|~|~~~x~~}~{~yx~|{|yo}}|z|z~xxyx{|w|z|}{z~~vz||z~|{|~zz{|~{}}z~|z{~~~z~vyx}z~|y~xw||u{~xw{||}|~}{x{z|xz|{x~y}{|}}}w|iz||{y{uyv|zyw}{{~~y}{||{x{wz{y}|~zz}|||uvz~uyxy~|{{}~xv|~y}~}w~|{~|}sy~~yp{z}~|~{~w}{~~}~z~z|yzyv|vzzyy{xyz}xw|~}}{{x}{{~~~xz|}}{{yzyv~z|{}|}}yy|}y{y|x~z}}~v{z|}z{z{y|z{}}}}|x{s{~~}z~{}|t|xw|~|~{z~w~}}~{|zy|{}~~~~y{}~~z{~}}xy~}y~y{~t}|~}|}xx{}{||}~{x{}~~~}~~|~y}{|{~~y~xz}{~|t|{{yy}}}||{~w{x}zy~~{~z{uw~}y}~~}}{~}~y{~{|t~~{{{x|}z}}{~}z{{{}}{x{|x~y}}||w}}}|z}syz|{}x{}|{~}w}~~y~|}syz{|~}~}yzz~x{}~~zz{vwv|x||}ww|~zz|||~yxz~wz}|~|~~zx}{v}~w|~{}z{{~x|z{{zx||x~}yx}{xz|{}~{}}{y}{z}~y}v~{|~{|~}y~}w}~|{~}~x{|{u~~{}x|y~}}|zxxz~}|x}y~}~}|{~wyyx~|~~~|}z~t~|~}~~~}~{z{}z{~~~z}~{}~|z|{|{~z{~~}{|~~~|}~}}}|}~{{{{}|y~~z||}~z{xyzy~||}z|}}}}|}|}}~z|}uw{|~~x~~|}y~{}|v{}{s~}||}z}{~~~zwxz}{{}z~~|~|~yy}{{}z~~}y~~}~{{|{~x~z{z}zv}q|zyz}}}vz~v|z~{}}z~}{~{|y|{~||||~}}y~y~{~z~~}{z~x}|y~|}{z}}}{}}|~{|~~y}~{zx~~||y|xyz~xzx{{|~w|y{{|~y|x{}|~}}|{|yzz~~}~{~~{yt{|zzz|tysy{{}~~{||zyxyz}~~~{puv~x}{vtxz{ywyx}}z~xyx|{x~|z~{|ww}xy|y{|}x{~{{{~{|w{|}~|{{~{{{}}}{~{~vvx{{|}~||}v~~y|z~|||~{z}|{}~{|~{~x{{}}}}|}x}~~~{}~x{|}||y}{|{~~y|yz}x{z|xx~z}w}zx~}|~x{~~|~{|{~z~}|}}yx}{zz{}~x}y~z|~y{{|{||}{y}|~{|{}z|}}~|}z~x{~|{z}~}}}{|uz}~}v~x}x|y}{{}||{x||~z}|wy~{~~~~|}v{v|vx~~wz}{|~{~}}{}{~~}|~zz{|~x~}|zw}~}~}zyy|z}{|~~}z}y{~wz{yx}{x}{|yz~}|{|{s|{w}{}{~~}}}zz{}{|~x~~~{s}zy|}{zz~xz|w{z}~}~{}s~~{xx}}|}}}~}v{~}{zy}|~zxw|}}}}|}s|~}~}y|{{|~}{|~~|{vz}x}{}y~}w|~x}x}{wyz||~|~}x~{|~}}~yzv~x}}|y{~|{z}{|xy|}}|tw~|{~z~z~z}||~w~{|z{~}}~}x{|z~}~}|{}|zx|||x~}~y}|~x~|}~~}~}||{|~~}z~~}~}{}ysy~{z}}~{}}y}|}y{v|}y~}v{u}z|zyzz~uyw|zuwsz|u~|}{}}|~}}~}|~u}|yz|{|}|su}y{}z|~{yyzy{}}z{|~{~|~|~}~{|z}|}{y}~||}{w~~}z{{x~~}t~x~|wy~~xyyw}{~~|{ztzt~~}zx{}x{{|~~|{|vyz~~||xw~}{|~~yzzyw}yw}u||pv~}zzz||~~~s}x{y|~|~}y}|w}{r~~z~}v{xy~u~y{|}z{vv{w}~|}y}}{}~~{u~~|~~y}z~}~~t~x{z}wx}}w|zu~y~~y|w{v}}}||}{{|yyxxt|}{r{x{uz|}|}|xx~z|{xy}~~~~z|}xyw}}~~}~{stx~~}x|x{~}}}}x}}zxx{~{~}}{|~|wx~{|{x~x~~}}{zw||~~}|~{~{}~{}~~}}{zyyzzz}x{~z{z|z~}~}}}|}~~{}{{~|~v~~|z~}w|y~~|{{|~~~~}}}}~z~}~|x~|~x~~{~{}}}}~x}~~~}~||y|{{{~|{~}~{}}~{|}z~~}y||~x|}~~~~~u~~{|x}}}|}{yx|s~{}~~zz{z{|~|~{y~w~zy{||~||||{zyzy~|}}{}{|z}}zz~{}v{}}{{z}{}|x{~|||||{}}~}{{y}ywyy~{yzzz}~~z}x|v|y{z}}}|t~yz~y~|v~{{z~~}y{x|}~~z~}~{||y~{x}x{xy|v~}|~~~}~y{|z}~~{~~}x}{ywy|}~{{y{}}w}}}{}~{}}}zw~y|{~~{{}}}|~v|~yw}~~}yy~x{~~}|~}}yz~{|syv~|xw|w}~{y|ywzxx}}tz~z}|}{|u}}sx|||{w|~x~q|xu|~}~~z|y|xx{z~}~~zx|{|wz}|}}~||~~|y~~yy}|{}wvx{yv|~}u~}~}~vv|||{~}x|{yyry}~}}~|xzy~wyzv}~y}yw|}~~{{w{x}y}vz{{}~~zy~yw}|~||~zqy{w{|zw|~}z~|~|y||zyx}x||{zu{z}{y{|~{y~y}~|~~|||}|~}|}z~}}|~z{~{|}|{|||}|{~}}~{}~~|||}{~z{~|}z{}v}||yz~{}|}~z~|}{{||}|}||{}y|}{~}z~y~|x~{~z{|~~~~}}z}|~|z|||yy{x{z~~}z}z|~{{~u~~~}zz}~zu~{w|~}x{z}~x~}x~}~|{|}{{}~|}}y|~~~~}~~~}z~v~~~~}|~~{|{{|~{}{~y~x~y{~uz}|}|x||z~{u~y~|{}uzyv{{{|{z}w~}y~{~z~y~ww|~~~{~~||ywy{{~~v}}|~}~{}|}~|~|zz{|{z}}~{{~v|y}~yzv{|xyz|uz}|}w~~}|}{yy}||z}~vv}}}|}{|~}{|}}v~~}~~}{}}|~|~{}}||yx~}~}{{~|}~u~y~z~z~}~}{{{{{~~||}}|~|}v|wy}}|~}|y}|~zv{z}}{|}}~|z|y|y|}xz||~~||~|~~~~~u|}uyxx{||{y|xxy{~{zw}wxy}}}}~}zy{yw{{{z~z}}yv{{y|{~{}}{y{~{}y~~}}x~~|u}z{zw~~{{~}w|}}}v}z|~}zz{{~}~}|~~~}y{x|wyz~}z{z~|yszx||y{|zu|y{z|}~y~}|}}~|||}|}y}yx}~}~|||y|{z{}}}}~|{z|}w~}{~~}~||}|}{}|zz~{x~|~{}}x|y~||~}}{|}~~y}~|w}|}~x~|y{y||z}{|}zyyzy{z{{z~|}}|}~|wwy{{z{}zz{x{||z}}{~|{wz|uys}x~}~}{|~{~}{v|x~}|vw~}xz|||yxt~~~{w}y~~|z|{~w}~~zz}z~v~xxuu}}~z~xu~x{x~u|}yx~~|zx}{y}|u{{~y~~~}{{~~}xv{|}}z{z|{zz{}}|{{|~{~wz~}}}y}}}vtzzw~z|~}~{}~~y{|}}wz}zq~|~|}|~yy~vu{x~y{y|u}~zt|~y{~~wz~{|yw}{|}{x~xv||}|ux}x{yzz}|z|ywx|}~}zyz~}~z|zyy~|}y}z}s{}}{~~~~z~|}}}z|~~~xy~y~~}}s}~w~}{}{|u~y~u|z{u{{{|w~~{|}~y}|~~yzz}}z}v|w|}~~|vzx~|~}{}}~zu||~yv}ytx~}w~~~}w}x}}qyy|{wy}zxw}z~ttxz|}w~|~}z|~~|z~||{yzxy{|}|}|{zxzz~wy|}}wsw|w|{}{t{wv~~{|wyyz~t}z~}q}v~{|}}z~w}vx}~z{}twv}~}xz}~{|{}~zw~~~{{{|x}|y}}}z~x{|zzyy}{~~{y|}z}{}~}}~|~}}~~|~~z}}z|z}|}~~|x|~|~{~}|~~x||z{}{z}{{{}yy}~~zvy}~~{|}|{}}|}}}z}}~{~{|yy|z{{}|y|~}~{y|||{}~~}|}~v}|~{z~|}~{}zyy{{|x~}}z~}~~}{x|{~y|x}}{}}v{~~z{||z{}~|{yyz|}~zu~{}~y}~{}}z}}x~|{~zw|~z{}~zx{x~w~}~z~w}z}z{~~{zy~x~~}x|yzz~vxo|~y{ty}~zzv~u~|{|x{z{|xs{}~}x}~w~|zx}{v}xw{{~{|}}w}y{{}~||{|zw~|}}|w~wx~|~x~w|}{~y{z~|zw||~y{xw}z~w}||{y|{vwx~~}}}y}~z{~|}w{~s}{{y~vz|{}xx}~}}u{|~y|~~{vuy~z||~~|~}}|~u~t~~|y|}~}y~z~z|ux~wy}~yxzvwzt~}~}t{}z}yvz{|}~}y}v}}t}s{{}}}{~}y|y}~|v|~u}z{}{||y||~}yyxy~u}x}}{~z{zww}xzz|{{|{~}z~yz{~y~{w}}}{~}z{~~z|y~y~}}|~~|}z~{w|zz}}{~|yx|~y}t|w}~{z}z~{xz{{~|~z||}~~{|z{|}y|u||~|zy}~~z|w|z~y{||y|}}~zzz~vu|~}~|}w{||~{y}}{z}|~|}{z}|y~{|z|}{}xu|~z}~|~}zzx~~x}}~|{~|zx{y{x{|{~|y~}}}zz||~y~|~u~{y~yu|{~z~}}~x~}z}~}~}z|}~~~|t|{v{~~{}yz|~zx~x~zxt~xxz~xyysz{~~x~zuzx~|z|{}~z|||{z}~}{~|~}xzy~t}yy}s~xzzzzuz~}zx|~}{|}}x|~|v~|{~~{tww~x~}w|~y~~~z}}~zv}~zz~}}~}x}~|}}z}{~~~~~{y|{w}~}~z~{y~~||{~|~z~{|||{~}}~~zy}||~x||~{z~~y~}{}}|{~~|}y|}sz~t~~wzzz|ww~}tv|vx{t~|y~~s~yuyt|}xz}z}qmwo|}uay}{}~{w{}{}{}~{ur|s{~~y}x|{~c~x}~||}~wz||~}||~vzt{|{z}}}z}}}yy{}|~|}y{{~}|{~}}{}x}~x~z~}{{~{{~~|z~{~~z}|}~z}}y{~y}~~|}v}}~~~~~zv}}|}|}z{y|{~}}}{}|}~z}}}|z}z}~}{}yz~~~~|{~{}{{|u|{zz~{{x}{||}}x|wv}y~}}tz~z}|zwy{~wp~~}v||vuzxy}y~y|}{}|z~zu~z~}~py{||{vf}u~t}zvzzxx{z{~{yw~{u{s~y}|yxyv{}{}|~{uw{|z~}}{|~u}~s|}~p~xy~~}z~xy}uu}xx|zy~{~ux~}x|~y}|~~rtz~|{||~zvv}}~~zqx{y}yv~ty}u{znz~||wzxyu}|{x}y}u{}p}zpy||yvz{xz~|{}yz~|}vvy|u~}}|z||v|{{~{zz}}~}{~x}|~{}}|~w{~~w|y}|}~zzz~u|{~}y|y{~y~}}~{~~~w~}~}|{~|~zzz~}{}zz~~{yz|{z|||}~~}}|yz~~z~~ww~~~}|{}{~}{~~x}|y{x|}yw}z|}txyw}{z}z|xx}x}}{z}zwv}~}}~~z|zszx}z~|~qzy}~yx}|}|}}rz{~~x~w{|{yvzyu~|{z}v{|~~}}~~y}z~}w{|z|}vz|~}~x}z|x~~z~z~~~||}~}zx}~{w|z||}~~~{zy}|{~}{z{z~~w}y{~n~}|{~y|~~~|y|w}syxzy}}|}{}}{ryz}|~~~~~z|}{~~}|z{}{~~z{~~zx|}}zy}|~tw~}}|}}y|~~|{}z}{}}xz}~|zy~{{z|z~}{vvz{}{y{~{}}z~~z{}}~~yy|}}}y~zz~{{~{~~z}}~~zw}y{v~{z}{~{zwz{z~}||z||y|~|~{~y~yyz||}|y}~{|z|xz|y}z~~~zx|~}{z}~}|}~~}~}}}}}|}y}z~|}z|v~{~}|zt{|{~y|v~~}}yz}}~}|{z|~}{~{x|y|z}~~~}~t{~~{~||~}}~{~}}z~~{~~}}|{xu|y}yz~~y|}zy~{~}}~}{}}{}}{{}y}z{~~}{{zw{|}|~}}x{~ux{~~}z~~y|{{{}|{~{~~{{y~~~z~~||~zzx~}xw|z~~~}~z|{y}}~{{}zz}|~|v{z|}}~}}~~zv}}||~~}}~|~|}}|}|}|z~y{y{{~|z|}~~{~}}|{}~||~yz||~zz~}ys|{{y{}y}zzy}|y}}y|{}~z~~z~}}{}}~||xz}z~yx~|{vx~{|~~}}zv|||||y|z~ykzy{vyu~u}}{}{{}}~wtwv}x~z~|xrxy{|y~vz{y}~|~y~{y~|~{x~}zy~}|x{|~}z}|~{y~{~s~{z{|z~|{~~~yxy}z|}{y~wu|{||x~}sx{~}{v{~|t|x~{x{{|~~}|~~}}|{}}~u}~}{{{{~v{|t{tyx~|||~u~x~~}{~~z~t}}tx~{~yu~|yz{}{}|}||}}{|y{yz|~zy|}}~}~y}zw|{|{~|}~}||~{~~w~{|{y|y{~~y~~|~~{{xzw|yyz~}}{~w|{|~~}~yz{}|{|~~~~{u|z~w}}}w}|{~|z{}z|}|||~}zy}~~zz|~|y}w||w~y~}z}~|{~{{|z|}{z|}~|{}{{~}|x{}|vyx}}}~z}{~}}{{|x|~~|xy|y~~t{y|w~zt|~|{}{~~}~}{x}}}}~{}}~}y{|||}w{}z~}}|~y|yz|~{~|{|z}|}~z}zx|~|||~{}z{}|~}x}u}}x}{|wv~yzz~}|{z||}}u|z|}z||{~|z{{~||z~|~|zyz~}~{~|~~w{{}}u}~}{||}yzz|}}{~|y{}z}~~x}||}~}}}{{w~wzz}|}~|~~}~~}{wz{}{}~yz}y~}~w}zw}~}}t~}}z}y}y~vz~||~x~|~t~x~{~y}}~z{~z}x{~x~}~{z|||{~{}{|uty|~xs~{~~}zzy}}vsz}~}{z}}~{y}xx~xy|}x}|zv}}}}}{}}}|{{||yz~zz~{{|~}wy}}}}z}}~{|{{z|x|yv~{~~~}|z}x|}}u|yy{~~}{}{{}{}|x{}|~~||y~{~}~}{y}p~|}|~z~{~yzx{}|~~x{vzyu}{~~~}}||{|}zyvz}z~y}~w{u{z}~{}~{z}|}}~~~~z}~y|}~|}{~ywvz|y{{x}~}~{y{{}}t|{{{}}y{|syx}zy|~w}{~}x||w}~zxy}z}}~|~|}z{yy~~x}}w}z}~y|z}||~{u~~zz|zz{~}{|~|}yz~|{{}z~|~w}zz~|x~~~{v|xz{xwx~yy}~x~}}{~}x{|z{~{~|||y{}~}y~~{}}|z|{~w~z~z{~~z}}~|}}z}||~~~||~~{~vx{z}~yyy~~{~~||y{z~y{}z{|y~}z~|~{}~{|z~xy{{~|~u{{~zv}}~~y{}~{wzzz}}}|||{{w~{}}y{~z|}zzz|}|xr~~~x~xz{}}~~x||~u~||}y~}y~{~{~}vqwzxy|{xz{w~{o{{~x{|~~y{~}}y}~y}|||zx|}~~|z{x}|~|~}}zt~y~~}z{}{~|}~}||}y|{{{z{~}y{y~x{~|{z~~{~x|zz}}z~}}~v{{z}y|z}y||}}{|}~~|~~v|w{w|{||~yz~~|{~xw{z}~|{~w~z|||w|~}yz~}}||~|z{yy}|zs{zwxz}}{}{}|~|{z{~~~}~~~|}x}}y{}x|}{z{z|x{|v}}ww~vz}|{|y{~~|xsz~}w{}}}z~|w~~}|zz{~|}yzx~~v~z|~y||}|s}xwz~yz||x|y{|{|}z~~||zz}}~{u~z|z|~}}~{~}}~}~z}}~}~x{xws~||y~yxu{~}xzx~w{|z~~|zy{z|xx~}~~w|~}|y}y{|~z||~|}|~w{zzz~~|{z~uy|{xtz|zl}|{}z}x{||~}x~}}}|z~}z}~w}yxz|z~|{~yxyyy}~~t}~}{~}x{|q|}z}}{|y~~|zy|~z~}}x}x~}~xy}||~~~~{y||~|{~{x~yz~{{~{}~{wy~|y{|~|y~~~~}|v{xw{~}{|{}~|{}wy~~~|}{w|~|z}}{z||zz~~~}~}||x~zzz}}~~}|~||y}}x{z~w}y|}}wy~|z~u~z~|}}{|~z{{}z}|{x~{~|~~~{x~uz|}||z|y}}|~y|~w}z~~~z}zywx}{{yw}}}w{}~x~y~|~~{~y{~{|}|}~{{z}zs{}y~|z}}z}}~~}}uy~||y{{y|~yy~|{{t}}~~|~}|{}}xy{}{yz}}yvs|||y~z~|~|y{}{}y{y{~~}|~}}|}~~{~}}z}xzz}}}}{~~~{z{{||x}u|y~|yz~~{|}{w~vz{uw}y|{~}~y{{y{|x~}y}|{z|~}~|{~}~|~z}}~|}|zz|zx~}~|x|yyy|{{}{y}{{}}|y~~~{x~u|}~|}~}~|}}}{y|}|~||}~}|}~}}{z}|xx}~|~}|~}|~z}~{|}}wzz}}~}y|~~{}x|yxyv~z}|}~~~~z}}}~~z}~|{{~~~{~|}}z~{}{}|~}{}}}}z{|~||~{|~~x~|}wxx}||yvzw}}}~z|~y|x|}}|~x~}}x}|||z}}{~{~z~z}uy}ytt|}~}w{z~y|}s}|~{|x}}{||~y}xy~|{}~~~w~~u}}y|}z{y{{y}|}~|~r~w|}~~~~{{{{|}~~y||zwxx|zw~}|}{t|{y}~{}|~{ww~|yz|{~z}~~xyz}v{|{w|}xvz~vz~u}~~}~~z~y}y|{~~}{~w|z|z~|~{{|~z~|~~{}x~}~|z}xz|z{}yyw}~|}~z}|wx}~~~}~z~~~}~|zz{||}yxz~~}w|{||~z~}}s~~zz~~||w~z|~x{||~{}~|{v||~y~}y{xz}{xz~}{y}yw~|}z~|z}w~v{~}}z~}}z}~}{y|~|~}}yz{~|}y{|{{~yx}z{y~{sy}}zyz|{~{~|}}}|}vz{}w}}x~{~z~{|~}}qy~}~{}x||~{}}~|~}x||~~~}~|~{xy~u}}|z|}y~|{}|~y|{v{z}~y~|{~|~~~}w}zz||y~~x|~|~}u~zy}~|{|~~yy}y~{~z}}z}|z}{~}}y}~~{zyzzz~}y}~||~~x}z~x}~~~~}{{y{}w|{y}{}|{~{}~y~z|v}}~|z}|x~y~~~{x|~yw~}~|}}|y}||||v{|}~|{x~}wx}|y{y~z~~{}}z|}}|wv{}{~y}~x~{xyv{z|y}|}~{{~x~x|}{z}zw~~{{{{{yyv}z}|x}z}zu|}{~~}}{{vyy}w{|{{~w|{~x||{{}~|}{~yx~u~~}z~}{x~~z{{z~}~~{y|~z~~yz|}|||~z|~}||{{y}}|zz~zx~y{z~{}uzzu~{zz|~}~}~|zww{|}}~~{}}}zu}~}~|~~x|{{}}}{w~s}y|~|~x|~}|~}~x}}~|||}}}{z~~}{}~{~|y~s~w}}{y}}}|}}~yzuz}|||y{z}|}z}yx~}zy~{}~~{z{yzz~}~}|z~}}zy~}|~{{{|~{}~{~~z~ww}v{}|{{{~{zz||~~|}}}s}}|}~zyv{~}~}zyvxv}|~}wv~}}}z{~{|zv~t~}y~y{}y}~|~zw{|||y{z|}}|~xx}x~{{{xx}u{}w}|wx{zx~v|{}|}{|}}|~}}|rxwxxz|w|zx|~v~{}z~{|y~wx}||~uv~~|~~~|w|nzy~~xww|{||~{w~~w}~~~y}z}yzw}{}~xsy}x}{~ys~{~~|{z|~~|~}ywx}|~{}z|v|||~{z~~zw~~|~|~{z|x~y{~{{w~z}}{}}~{{y{|y|{}}|}}}~||}|}{~||z|z{{z~}{|w}z{~z~|y}z{y~yz~z~y~uwwy|~~z}{|~}zwy}}~~~z}yx}}zxv}}z~z|xz~|}~|x|yw~}{}v|w~~}y{{||{{zyz~z~v~z}zx~zy~~~}~||~{}zz|~w|~z}w~{~z}}}|y{yz{|}|{~~y}z|zy|~xw}~~}|z~}~~|}{~{{~|z~}}|~}|z}~~}z{u~}}~|z~}|}y}|{y~}~{~~~~z~zy|xt|||x{~x~{z|}|~}{}}}|{u|{~~~~{{~~yx|{{~~~{|{t}~vyxq~z~x|~|x|}w~}~y|~xxs{zzw{v{}zwk}|~~u~}tu}|~}~{tr{{~}{z~}{y{~~||w{}{u||y{||}sz~w{{|}z~~}vxu~|}|u~{~||xouq~sz~xz{~{{wzwz{t}}|}w{{~~}w|z~}~{vvzyzxy}}z~~y{}|yy}}{}~{|}{zz}}{|{}vywyzy{{{|~{}z{~}}z~~~}y}u}}}}|||z}~vz}zz~zy|zzy~}}y|{yv{}{zw~||yw~}~|~|~{{{vz~zxx~}{~w~}y{}}|xz{z~z~~yz~|wzu~v||w~w}{}~{|}z}}~|vyw|}}{z{rz~v|yv|y||~~{zz|}z~yu{}||}|}~xv~{y|{w|z~~~yyyzzxx}}}}}w~{x}w|~}{~~xs~z{w}}v|~t|}}}zz~|}{~yz}ss~zxy~}|x|}y}~y{{x}}|{v~|{x~|}}{}}zz}||u|~yzy~}{xy~}}z~|~{~zy~{|xy{~~~~|||yv~|}|~|{|}|{~~w|}|w|~w{{}}{{{{z|~z~||~}z~|~}x{}x{~x~{qzoz~~}}w|{z~z||~~|z~z|}{yyx~}y|yrw|}{w}|z{xx{|~|z}{{}|}zzzt|yz~v~xu|sx~{{~sxsz}w~}|~}|j~qt}xwwwy{~y}j}|v|y}~zwuzvz|zw|zt}~{~u|}{p~~{~zuwyy|~v{zy||{x~}{}yuuxyt{xv|~v~~~uxyt}y~~y|}{y~}p}|{t~|uy{y}|{u|z{x}~zzwwu|y~zywzzyv~zrqx||~}y{yu|}s}{wyw{}yvuyz~zv}t|x}y}~}||}~{|u||}{}{x{~~}v~xv{||{z~}v}|y|~~||~~|x|s}}}w}{{y|}~z{|~~|~z}}|wx~x{w}{y}~z|~}}{|~{x{}y}}u~}z}x|}|}}y||u~~~z|w|x}|~z}z|v{}~{x|q}{}~~u|{}~|yyw{v~~{{~zx{wt}y~{{~x|||~~~x~y{{|}~}yz~}{}|z~z{~|}~y~{}|~}}z}w}}{{~~~}}}x{}~}y||}~yx}{zyw~x~~}~}y~~x|y~~v}|}{~}|w{{u~~{y||}z}z}yz~yw}}o{}}{z|~zv{~}}|xy|z|z{~~|{~y|{|}}|~~~}{~x|~~z~z{~~yy{wywryz~{}xz~}yu}u~|}y~y}~}z|{|x~yw|~{}xx}z~~v~v|}~~x||}uzzzy|yz}y|vz~{w}{}z|{|{~||~y|u}|~~z~y|~u~|~{}|~}~~{z~z{y}}|~~{xz|~t|~y|~~u{~zux{~}|~y{|w{~wy|~}vz~z}u~}}{~|{}~|{{y~w~yv|~}z{}|}~~{|}}}}|~|{w{||y|{x~~z~~yxz{}z~|}x||z~}|{{z~z}||}{w~~|{zxv|z}}zy~~}t||}{vv{w~{yy~}~z{~~}}|z|~y{{|}}}}}{ywy~z{~v~wz~{qx{}}}{|~}~}}z|~{x{zx}wzy~v}z}~~y{}zw}vty|}t~ys}{xz{xzp~|v}|}}zxw||~~}~}z{zv|y}|x{w}}|xz{}zz}y{~~~~{{~{xz{~wz~y}y||yzz~|}zvw|xwy~z~||~v|~|{}}z~w}yy}w}~zyw||~~y~~{}~v~|}{wy~}|xzx}|~yzz|}z~{z~wy{r|yyz~|xxy}|u{~zys~}~{t|{x|y}}~yxx|{{~|{~}~z|~~}}~w{~xx{zw~yxt~~|}y~}}|~}{xz{|~zx~{{z~w{|}~y~z~}~{~~{~{}~}{}y~{~~zx|z|{}qz}|{|{{|}~||~z}|z{~~{{y{}~}v~xz|{x}~}|}z~|yxyz~~}x|z|w{w}~||~z}~|}{|}x}yz~{|xz}s{}{~u|~||yz}|}}|y~}}xyyy{~vq~zyu~~{x~~y}zv~~}~~}wxs~|zw{xzy}qx}x{~|}|}}}||y~}~rt}{{yr{~|x}|{vy~~{|z}u|}{}t}zz|{{~z}}rx~}}}}~~{wv}|{z}}x{|z}}~s|z{ysx}|{y|~qz{y}|~wv~z}}~~||~{{z~z{}~z|}}|yxxxv}|}|{~x{w}~~|uy{}~~x}x{ysx}|~xxwx~y}w{{~w~xz|~}x~|v|uw|{~}~}y~~x{z|~w|{z||}~{zx~|~|{|~|z{x~{z{|}|v~{|z~{~|z}z}||vxv~}}~}}w||~{~z}{}{x~~x}}{}~tr~z}~~yzt}~||}{}}~~{}{y~tz||}~{x~~{}~y}z}|~~~{|{|}{{}|~~{|~{}}z}}~z|~}z~}z{w{z|}|~}{||~}|x{|}yx|}y}}{}~|}~|~}}z|y}|{x{}~y~yz~}|~z}t~|}z|{||{~~~|}|{zvy}z|x{{y{z|~|z~z~{|~~zysz~|~||{~{zzz}~~~}~~|}}{|~zu~z{y~}~~}x}~~~wx~w}z}|}~~||{zz~tz}z}}{~||}}|{~w{x}}|~z{yz}~~y{|}x~~yz|z{~~~v~|z~}}}w|y~~|~~x|w{y{wx}y~zw}~xvzy|{~|~}}{}yw}y}~~}{|~z~~y~~}x~y~|yz|}~|{~}~{|}z{|~{~}z{z|z{zz~||y~~}~z~~|y{{yy{~w~}zwx}}}yy}{|{}~}~}z|~~|~z~}~||~{}~~|~}{{~}{}||~~y|{~|}}}~}~~}~}|yz}}v}y|{~}wz||}z~}~}ww~|~{~~{|}~yy{{{{|}{~}|}~xzz|}~~~~~~yx|||}z}{~}~y{|}}~~y}y}~yz~{}~~{{z||z~||}~~}~}~}}}y~}|{~}x}{{z}x{~z|~}z~}}yy||{~y{~z|}~~~z~}~~y}vuz~u~y}~zz||~~}{{}}y}z{}xxzyz~zxx}{|v{~zu|~y~|yzz}z|{y}}yy{~yy|}{}}}|~z}~wxx|}~|zy~}z~z~}~zz{~~yz{v}||~~}z~~~t|}~z}vyy~y|}z~~~{|~}}~~|{~~z~z|~}~}|~~|~|uwu|~~{~z~z}zz}}ywz{}v~}{|v}|}~z~}~}||~y}~}|~w}}z~z}~{yy|{~{z}{|{{~~w||yz~z{}y|{}|~}|{~v~{}t|u|{|yy{|}{|~~vx|u|w}~w{}zv~sz~}y~~w{~}~}{w}}~~z}p}|w{}||~~}u~y{|y}~y}x{~|||u}~x||zx~wy}~~~~z{~{~~~yzy}||z~|~}~}~|~~{}~}}y{}{}zy}}~|}}}}y{|||{yw}~{y}~}u}~~z~}|s~~~x}y~~{|}|z}z~}x|~w~}v~z~~{~{x{y}}~z}{{ws{w}{|wxzyw~w{y~zz{~v}}xsy~|ztz~|y{|www{{}{u{|~}z{y}v|vvwv{rx{~x}}uz{~~}w||~~~~{y}~|y~{}~yx}z}x}}y|vzyu{~~}{z}{~yxvtw}||v|||}}~r~|}||~{|~}yx}uy{~~~~z~|~~z~}~x{|z|{}}y{~~y~|{w{~}z{xy{}|{w|zy{t{||{~y{ywz}|}|x}|~{~}x}y~|||~zz~|{{z|{~~}~~~y~{~}}{v|{}y|}{}xz~}~}v}~~{}z|z}|xy}|~z~v{}~~y~}||y~}~yz}~|~y{{z}{~}yv}z}{}}y~{~{{}}~}}~s||~y~~}z}z}}{{vz~~}~v~uyy{x|}|z}}~~|}q~~x}~w}yy{|u|}{{xz|~y~}xv|~x}y}{z}y~wxt}z~yx}{uw|}~x}z|{}{wz}|y|~}yzv|}}}~{{~~{z{{{z}~x}|vy{y|~~~||~}|~yz|z||}{x~|~y|||}~}~|}|}}~y}}z}y~w||wx~|{}{}y~x||y~v{{y~||~}zz}}~{{~{~}}{y}||x|y}z~~}~|~~||}{|~}}~|{|z{~z{|~|~{v}}z{}~|}|~zyz{~wvsw}y}{~~~y|}y}y}y{~~|~swzz|}~}|~~wy|y}||tw|}{y{|~y~|~}{|zy~yzy|}x|~x~}v~y{~w}~{{y}~zv}zv}{~}w}{}}~{~{u}~x}}xw}|}}zz|z~~}~z{|x~}~x{{}~}~}yu}|z~}~y~w}|~|{}|~z}~w~||{v~||}}y||y}zz{||||x}uz~}w|}~{}zww{{vx~xyu{vz|~}uy~|~tu|}x~}}}x}~~x{zxwzs~}qyyyvy~w~y|~yw|u~~~v|||~x~yu|~{}p{}~}zyz}r}y||y}~}|~}t}{w}zwysyy{}{x}~~}}{}~}{vw{yv}|vy}z~~s~}{zwyz~zozzr{yx{}|x|{wv}{v~}{x~{}~|~z|z~|y|w~~tzz~|zz~{y}~{z~~u|zx||}}~~~xz~z{{~|y}}yz|z}~y~|||||~}{z|~{}|~s}x}}{|{}||w}||~||{{|z|z~~y}||z|wy|}xyx||{{~||~z~wz|z~|||y||~~v~~{}wx|}|{{}|w~{}u|z~}~|y|z}~zz}}|}z}{|}z~}|~~y{~}z}{~v~zz}yw~|}{xxzyy~||~~{x}{z~|}~{{}y{x}yy~}zx}}~~|zw||~{{~|~{}~xzx~y~|~zwx|y~|}~{x{{v{{~}~|{z|{|v}}v|zwywz{{}y|}|~}~|}}|y|w~}~~|y|~~vx~y}|z||x|xt{{x~|~t}{{y~zz{~}|~}~z~|xxz~|~~}tx{}u|{|~|~zp{}|ywy}{|||z~zx~~}||~{{|}}vwy~}zuy}z}{{w~}}~}}w~|}z~z|zzy~~~u|zzv|}yxx}~z}~z||{~}{~}z|y}y}{x~{xty~yx{{}|~}{||~{yx~}x|~yz|}|z~|}}x}~z}~{}|zxy}~yzz}z~|}v~|}x|}}}{{}|}{|y~{{x}~}}y{~|}}{|{}xx|{||||z|y~w~||v~~}~zx|~~{u{}{~yzz~}u|w|}|z}y~~}~y~}||~z|}}~}{{~y}|z}{|{|~~z{||xz|}yz}}yu}y{}~{z~{su~|~~{{~wz{~~{u{~~{y|x{}{~yx{}{{~}z~|v~}}x|{y~w{|||zvy~{~||w~{~~}~vy{~y~|y{{}{}}zv{~~x}~~w||z~}~}|{y~x{y~}~z~y{zzxz|z~|v}~|~zw|{~y}~~z~|y}||zzz~~|yzy~yvyy~y}{wy|x~~{~|z~xz|{xzz|||}x}~yx{}~}rz}w~}}y|wz}{{z|uy}v{ysw|{~|~z|~~|z{|zz~m}yzzzzx|}x~w}|}z{}zz{|||z|v~utw|~~zzw{~u}xu{xyv|{~vzhxy|zxy}~y{}z~|}{v}}y|}}y{zv{{{zo}~tv~~{y|~yzx}y|zy~||}|{~t|~w{~~}||~u|y}y|sv~|~}~zo~~{zv}|ywxv||~z|~}x~y}w~}~~u}y|v}z{|~z{xuy}xwy}||x{yxxz{ty}y~z}~~{tu~y{uy~}}~tu{|vzz|yx|ywzz|u{{{}||v{w~|{{yz~}zv|~}||xz~zx{}}~|w}~ww}}~w}}~}xx{z|}|}}~|}o|}|}|z~z}zy|~~}|v|~{{{~}v|y}}}|wwy{|~{}x{v}zywxw~{}z|~v{xy}}|~}yy}y}}x~zw|}z}~{~y~}|w~w~{~|w}~{x|~~}z}{}}z{|{xz~|~}}z}{{yv{zw~{}{}yx{|xy}y}~|~z|s|}|{}}y{w{~u|yz~w~z~}~|{}}yx~|~x||u|z{z~z~xxy{w~y{yz|~||}}~y|~}{|w~v|~}|x~{z|}z}||~x|{|~u}~~|~|}||~}{~~}}|~~|{|~~{~}x{~~~}}~||y}}}v||y~~|||~{{|{{~z}~}~~x|~{x|~~~zx{|}~|{y||y|||~}z~{|~w|}~{x~~z~~|x{~{zxyx~z}w{|~~~{{|~|~~y{||~y}|v~w|{~~~y}x~|}z~ux{{w|~x{|}~z~y{~~|~}|z~zw}~w|}{{{~~}{||z~~|}y}~{~~{v{~}~{~}|z~~~~}}|~|y|w}|}||y|y~~|z{yz|{w{}{|yw~}~|~|y{~|~~{y~|z~{|~y{{z{~|~~{{~~v|yww{w}|y||r~z|}v}yz{~|~xzvxy{{uz~w}~zz{{{~xw|{y}wy~~}x}}}uz~~x|zz|w{y{y|{}|x~|~|y{~~~y}|~}z~~u}}~||{}}~wu~}v{{yz~wyzx~y|~yz}|yzzz~x~|||~zy|}u}}zs{}z{vz}{~z~|~|}}}{~|}z~~}w|xy{{|{}~t{u|z~{wxuo|xw~zw|u|z~zz~y|w|~~~z}zx}~}|~}x~z}t~{{}txw}z}}{|z|u}}{{{|~}~~w~|~~}{g|w~}x~~|v{w||~~{}}y{{}zwz|~xu~|}|{x~y~{}}~|~w~}x{w~|~~~zs|||}~|v{y{}}}~x~z~~}}~}~x|t}}yzsz{|~{}{~}x{|~{{z{ywz}}~|}}u||{v~}{||zw{}x|~}}~}||{|r}vvz}{{x~~}~|xyz{zz}zy}x{}~||z~yy|z~z}{x}}}{z~~||{~|}s~~{z~|x{}y{w|}}}|~y~y|}z~{z}{|}}~|yzy~|z{}{}}x~z~~~yzww~}~y~{|~v|}}x~{}|z}}~y}}{|x~}}y~}|zy~|w|~~|{}|tz}y~~y~~vw|zwwzx{||wy{}y}~y{zv}}~z}uz|~}x}xy~}z{|v|~}{~}y~r{{t{xv}~z|v~~zzws~~z}xww}||~w|~yzyx{||z|~~z~|}}{}~x}~}z~y|y}~z~{|~{{|~x~}}x~{}}{||}~|~~~u~|}{|~~}}~|w~}z|~xz{x~y|~|{~w~|{~}|}~y{|~{}~}y|~|{~~xz|{z|}z}|}~|xvyy}{z~}}|t|y{|}yzxz{{}zzwzw}v{x|y~|}{|z}~~~|}y|}y|zx~z~||y{yyy~~z{z}{~x|~y|}|~|}~y|{}z}{z{x|w~}{|}}x}z|z{}{~w}x|p}|}{~yv{z|z~{z~~{}x~~~|zu{|~}|||}z{}~z}}~{}|yx|{|}}z~|}y}~wy||{|{{ry|~~|u|y{wwx}~}zw{w~{{~z{|}~v{w~r|wz{z~xx~z{}~|z}y|w~x{w|||x}z~{x{x}~~||~{|x|zt{|{zx}u}}|~}x}{{{z|{y~~~v~z|}}z|z~~||~x}}}zy}zz}|}~vzy{}~y{z{|x|~|t~yz{yxz{{}|w{~|zzz|}zzw|{~{~wv|z{v|~z~vxs|y~~}~yx{xw}x||{{|~}y~~{|vyp{}{|~}|~zzw|qy{zz|||~xr~}xx}x{}~|yyuy{}|z~x{z~}z}{st}z}{xv~x~u||zwuxz~vwzx~|}}}~|}|}w}~xz|zz{~~}~{{w{~}}~}}w|}~}||~~~{}z}~|~x}|~~y|~{{{xzx||{~}~~~~||zyy~{~xz}~}{|z~~x}~}z|||~~zy||~z|{x}}{~}{{~}}~~}z~}}v~~y~y~}~x~~}z~~~~}~|}}}~~~}|}}{}{|}|{}}x~{}|}|}z~|}z~v|}{~~|z}}z~y~||r~}}|}{}|}wz~vx~|}|}~~}x{}{|}}|zx~|}y}|{y||yy{w~~|w}}~}}|{y{~{||~|~|tvzy{||z~z|~|~||~}~zzwzy|z~y~xy}tx}z||z}|zy}}}}}|zy|~zz}~zz~x|z}}}}|~}}{|{y~||~{~{{}~~x{}~}z~}~~~~~{}~~}}~}~}~z}~y}}}}|zz~{|~{}~}|}|v~~~yz|~}{}xz}~~{|~z{z{v|y}}~~v~z~~{}pxy{}}|~|x{}{|ww|{}~~y||y}}~{y{yx{~|}}wy}}{~x|}|{}zx}~z~~wz~}{{~|z}y~~~|}}}x~w|{|~|{}}}zxv~|}v~z{~}{~ws~||xk|v}}it}moqyv~~{p}}wi~v~~ooi~y}|}yzw}}{z~z||{{vz}}|zu~~}{xw{}~~{~x|~{y}}{{{|t~{x~{{z~{|x{u{{x~z{}||zv}v{}||y|}z|~|{u|||}}|w|{|}xxw~yzy}~{}~ty}y}|~}|{|z|||x|y|x~u|z||}{|y|uy|||~}x|}~|z~{~{y}}z||{~~{}}~}|}~}y~}||}w}yvv}}y|}}|{~{|~||w}~w~y~}}|~~z{}~}{|{wx{}z}y|z}{{~}}}|}z~~t}xy}x~{zxz~yvxw~{|}||u}{w{|}~zz{yyzyx~~}{|z}|y}r~{v~y||~|{|}y{~|~}}|{{~}wyo~y{|~y~|~wx}x}x~{{{~~}x}{y}{}v{{|y~z{{xzwzzy{}t}}|~~z~~}~{~}|}x|zy{y|}{~w{yw~zyv}|}wy~x}{}{~{}~{t~yywx}|}zz}z~|{~~||{xz~~wzvz}~}x|yv}y~}y~|}~{{|{|~~~~~{}~w|z|||{z{~y}{|}{y~|zz~~|{}{~~}}x}z{~~}}~{|}}y|{{xy}{|~{x{|wv}||y{~z~z~|x}~}{w{~z~{}}~|vz}zz|~~}y~z||~~|~|vy|{w~}|wyz~|~vx}w{~|v{~x{}|~||x}{|~}}y{||x|~~|~yx|y~|}~r{{u||}{}xys{~z~~~uy~}u{|yx~y{~{|z~~}~{~yxxuwvz{{~~|{}z{|~}y}wy|x~vzv~{|}u{y~z~}z{~~z{|y~z|yz}~~|}|}{ux{{{|x{z}yz~y~{y}~}~~|v{~zx~~}}~vx{|x}yy|{}|~|{w~x{}}|{z~vu}}}xy|x}||z|~~{}z{~}~{{rrx~yy}}|~~zx|||}||~z||}~{~|~~~z}|||~xzx{}|~}u|u~{{~~{}{yx~|}{|{|}|{|{uw||~yx|zy~z|x|yy|~||~|}~{}}zx|x~x}}~}u|zz|{z~|wz|{xwwyzx|yt}~||~u}{|{~||w}z|wx}|{y|zy~wzwwx}x|}~y~y~|~zy|}{y|~~wu~|w~~zyt|x~wy}y|{}wz}~|~|y~|xzxzz{w~||~y}~||}}~z}~wz{x}}}~}{vy}x~}}{|~}~|~t{y{y}|zzt}~~yz}~}szu|{x{z}~zo|{w{z|}|z~{~|~yxz~}|~|zx}{yy{}vv|vx|~|}~zz~{zy|~}{~|wvz~{{z}qyx}~~{}y{}{w{wx||{~~~|{yyz}{{}x~yrz|}~r}|{}|y}~z|{y}~}|zz}|}}{z}{~}yyz{x~~u|xy~w{}{yx{~zw|~w{x}|}zv}z~~z}~~|~x}~{|~}~|}z{~~vz{~}x~~}}x{~~~~{zwz~~~~{~~z~{x}}~~}z~yz}|z~~~~z~~}~|~~wy{|~~{z{}xw{y}~||w~~~~~~|}xv~wx|}w~z{zy~{~xyy~|zu{w}t~zz{{zx~yw{}wz~zy~~}z}||zxwv{{{xyzzw|{~wz|xz||{}xy{{zz~y}xu~~~}xz}~wz}|{w~}u~~v}x{~~~zz|y{w~~|}pw}}y}z}~~~~y}{~~}{{w|~|}|{yz~~{~~|~{}{|y}|{~{y~{}xx}}{{z||~~|~}{y}~~~~y~|~}}x~~~u}z{q|}~y~||~v~{}v~wx}~y~|wz|{zz}zx{|w{}w~~zx}|~x{yy}|z|{{x{~}|~|~~|x}~~|w|}|w|yx|||~{~~}yx~}~x}zzuw}|~~w|vy}|x~~}z~z{}}{}{}ww|y}x}zxw}s}{{{~~zz{wz|}|{yzy}zy|~{|}xxz~}}t~y~y|s}y}yy|~~|z~||x|v~~{x||z}}y~}x|~{|}z}}|~~|{~y}x{|~}}~}~~}~}}z|vuw}y{z|z}{}~|}w{|{~}|~|{zzw}ww}|}{{~x{y~{{|}|~~}xyx|}}}~}wz~|w|~~~z~~|}{zw{y~|{{{|}~xz{}~q{zzx}{x{y}zy~{~~{~}~~~~z~u|{~}y}z}~|}|}}}|{x~}{~~{z~}~xy{~~y||~y~~~}}~{z~~}v~}{}~~}{~{zz~y~||w{|~{{}z}x{x~v|}}y{v|z~~v|~}u|y|x}xx}}}w||~y~{~y~|y}~y|}w}{~}x~}}uy}|{~~}y}~~{~~w~{~}{~|}~}~~y{}}~yx|z}|~~}y{}ww}{~~}xz~{||z~|{}}{|yz}~x{~~~z}~|z|~|}~}z~y~}zy}z~~}}}|{}}|~~~z{}|||}z~}{~~~|}}}}{|}yy{|y|y}|yxx~y|~|z~xz~~~~{~}{{~~x~{|zz~|||z{{xyu~~{~|z}~x|}z{v|x|y}zwz{~~~}z}|{|x|v{y{{~}~|{{s~}}}y}~~~{}z~yzu{w~z}|s~~|~~{||}|z}w{v|v||y}{{{{~}~yy~}}y~}{~v}xwxy}{z~{}v}yzz|~}~}}||}{y{w~|{w}|v{|{|||r{w}|w}~{}zuy||u~k}|}{px~vz~v~~z}}zwy|~x~w~xzwyw~}~}~z~{wy}~|~~{||{z{|~~z{}|zz~z{~wz{|z||z~xyzy}u||{}~~}x~~{{z~x~{~z}w}{}}}~z~|}}{~x}{||}||{|{~~|~}y~~z|~~~}xyz{z~z~t|x|~{~|}z~~z~~|~x}~{{{~{~}v|xxyz}wz{|zz|v~|x}y{zx~|~z}~~~}|~}||w{x}~y}zw|~|}{|}~~}{~|z~{z~|ww||}}t|{||x|v}ww{|y}x}z{{}~}~|z|yyu~~v~t}{vu~|zy}~}}{t~~{|t{|{z}|~u~s|suy~u{w}{~wx~~w|}}{v}|x}}xw~zyz~~|x{~~}}uz{x}}~~~{|}}{}}}{w{}~|}~~~w}||{}}y}y|{~z|w}~|{}~x~{xy~|zw~x{y{{~zzy{~|}z||~y}~}}|xxx{u{{t}wz}v|y}w~~w~yy}|~yv|vx|x}|~zx{zx~{}~~{|}z|}t|{x~x}w~~}x|{x|{xxyw}z~|~zz}{~y}x~~xz}|{~}y{{v}z~z{z|}u|~{}||{}}{~{z||~|~}z|}{}}{w~z~|~w~|z}uxzw~|v~~||u~z{~~}|{||~||s|z}vv}~}z|}ywxx~~vy}~~u{yz}}xz~y{}{}u|x~}zx~}~~|w~x}~x{vv~|{|~tv~{|}~{z}~x{u{~|}u}z|~~}xw{{z}{~~}|~sz}|}uz}~|~|y~|s}z~{}{ww|}~|~|vz|}y}||rz|y|~~x}y~}~{{xyz|{yr~{w}|yz}{~x|~y|~yy~{|z{{~~~{}}}~}~}zv~~}}v~}~}y|x|y{}}}x}~~z||}w~}z}}{|~}z||~~}zyz~}{ttw||}{}y}~y~~}xy}|||z{~w~}{z}{y|{~wx~||~{~y|}|~}|{~|z~}|~}}z|x}z|{}z~~zz}t~z}yy~{y{~z|{yt|}}}zy}}~|x~~~}{~~}~|~z~z{|z}y~vz}~~~~ux~z|{{}w{|vu{~}z|~}}~{|}{}}}|xy~~}}y|~}}wx{|{z~}~}zzz}~}}~z|x{}{x|{~{}~vz|}yx{|z|}|y}{y~~|{y~|}~z}}|||z~~}}zz}z||v|}~x|}w{}{}|{}~|w~~||{zw~~}}}w|t||~x|{|}~}{~~~|}~yx}}}}}{vz}zy}z{|~}{w}{|{z}z~~~u{z}yz{{{}|{~}{}|z|}|~}x}}w{|y}z|x{z|{wx}y~||wyz{}|}}zy}~x~t}u}|{{}{w}|~~|{}~}|x~}x}}|{{|x|}|{z{xwy|}~{{w}~~{{y}{~y}|y}|z|}ww}}{~{u|}|x~{v|}~xzy~~~{~}xy{{|y|y||{x{~{}y~x|~x{}{{}{}z|zy|y}|~x{~||~~}w}~|}x}y|}~~u||}~~~y~z}{|~~~{}~}y~}{{|~||z{~}y}z}z}}{{}|{~~yzw~z{x~z{}uz~~~}z~{~}|~{|w}y~x|~}{~z}}~{{~y{{~}~yy{}~{}}}wzz~}yz}|~{zx{|~}y|}u}~}yyzz~x{{{~|y}w{zz~w{|{}}}|zy~}|~~yz|||~s~y}|oz}x}y|z{z}zzw}yv{|~{~}{|z~xyy~~|yt}{{}~xw}||s~||}{||{}~vwy{tzz}yyt}y}~{|~|{u}z{}}y{{zyz|{y||~xy~~~|yu}vy}}}}}|y~{}~|{~}~~}z|{w|v}~~~}}~~~~z{}{~}{v|{~~}{|}{{}~w~z|~|}{}}}~{|~~w~~}}z~z~}z{~}{y~}~{~}|z}yz||{~}}z~~}~}|}|}{~}}{}xy}|~{~~~y}}~}}{{}~}z~}z|{yzy}yy~{z{~{y}y~}}{}|y}z~w{{|}{w}}~}|xz~}{}z{~}y||}~|}{}zy~y|~yy|{~~z{~~}uy|y~|u{{x}~}|~~}||{}~z}||{|{~|y~~yxz|y~zry|~zzzx}}~{|{u~}xy~~}|z~}|~~y{~{||z{~y{}{|wz{~x|y}}|~zz{y~~}|z~}u{~}}~y|}z}}{}~}~|z~~}}~|}~z~}|{|y|~~uz|~x|y}~~}~|vz{y~{~{|}~}|x|z}}z~|}}~|{{|u|~zzz|}~|x}w|x}||zz~~}{{y{{y}~z~~z~}}~|ww|xx}~{~|y}}||~t~~}|~zq}y}~~|~}{{t}yz{~s}|~{y|{}y|~}|}}|y~~{v|yy~y}}x~~||{}z}{{~|wxz}}~{{z~zzz{|}}||~}}~}x~~z|{x{}~|{x||vz~}|y|}}sy~{y}yy{}~wv}~~~|}}y|{w}~{{y~~~|~}~~~~{~|}}~|~{{x~}{w|}sv|}~}|~vzzz{~}yzx|z{}xz{}{{|z|~}||||~zz~x}v}y~}yxx}~wzyz{|{r|}|{~}|~yxv||~|{~}tv}y}{t~zv||{|||~yzz~x}{}|~yzsw|tt|xzu~zu|}|~}{xw}v}|~y}|||zx~~|{}w~}}}}yuy}~z~z{~|}~~y}|{zz{y|~~wyz{z|zx}~~}~}~{~~z|}{~zzwv}zy|x}{uw}}|~x}w}t}~}~}}v}|~w|}~y||xt~v~}{{~|y|wwzxx~zz~t~~|}}xvt~}uyz|wz~}z{||||}z|y}}|~|w~}{~z}~{}{}~x~|}~~}u~{xwzu{}~}|y|y~x}xuz|v}v}||zzv}~~~}{|y|zyt{{|w|{{x}x~~xwwxzzwzw}{|yuv{zx{}w|}{{v~uwyy}x}xv}uzzwyzz|}}|x}~|~|~|z~{{}v~|z}~|}{|}yzy|~z|{{}|}x}}~{||~y}~y}~yy~~{|y{}xw~}|~|~~~~|||z{}~w~|||}|}}}||v}~{}~{|~}{}}y|}~w}wy~~{y~~}{{z{y|{|z~yw~y}}~~}}{~yu}u}~w}z~zzx|~z|{wz}ty|zzt|{}|t~~{{{|}|~xz}y}~|y~}r}||~{~||~}x{w||~w{~y~{x}z~w~|x||~~ywy{}~{~|}zx}~x{}~{|z}~}tz~|{|~v}z~{{}|}|||y~y~zzzzw{{}~z}~|x}~z~|{~}|x}~~~|~~}|t~yw}wxz~u|w~{w}wy{~}~|{~|{z~{~{{}~{~|xxwz{}y~~|}y}|yv~}{}~x|y|u}x~}w|}y}}~{}y~}|}xz|{v~|~zuz|{|~~|{}}~{|}~{z}{{~~wzq|yv~}~vvz~{~|z{}~}~~{|~x{~t|}{yzu}zyu~{}~{~|v}~}{yw}{vuz}u{uuw{y}{z~}xr~y|{{s~y{v~w}|ysy{xxzxy~}}{~~|wp}}s|x}}x~v{{|}}|~~||{u{x}x}}~~z~z}||}~~|}}{xw~uz{{}{y|{}~~|z}z}{{~}||x}y~{{~z~{~z}{z}|s}z|}~{z{|~y{~~||wz}x~zx{|xx~|}|}y{|w~{{z|}}}y}zw~{~}{yxy~|~x~~~|{|y|v}}{|}|~~~z~|~y}}|~{~|z~~z}~~}~||}z~}vz|x}|{|{}|}~}{{|}|~}}|w|yz}~x}~{|{z~{|}zz|{{~}{{~~}~|}{yyz{z}{|{~~~~}z}~~|~{{~}u}~~}{y}zzz~w~{}~}yx~yz~}{{zw{}~yzv~~{|zpv~|{t~}}~{y~y~xx}yz~x|z{w}o{}{~}{|}~y~~||x|~zy~~}~{~w{}{}~z{~}xz|{~~}z}~|~{}{|}~}}|z~{{~{}}{~~{}}{~{~}z}~wy|yz|{~z}{}yx}|y}}|~}|}|~|z|}|~}|~|{~|}~y~}yy}~~y|~~~}}}|y|}|~{z{||z~|z}}{}~}y{}~~}|{|~}|wxx}{|y|x{|}z}zw~~|v|y~vv~z}w|v|wwy}|{|{}z~}}|}|~x|vy|u|u}{}{wzzy|||}~z}y|w}v~}|y~y{x||{~v}~zy~}{}~~}}}}~t}~~||~yx}v|yz{z~~}~~{~~~{~}xw{|}{v|yy}w~vv|uz}{~z|xz~{|{{{xy}z}}z{|~}}}|tx}y}}{~ty|~{|~y{r~z}|v}~{y{|z}{{{}}|}{{xxwww~{}~~~||~x{ytv~~{~}z~x{~{~~z|}{wty|~y~y{x}||u|xz~vxz}|z{x~s~zv~{|||}~{{}{yt|wx~z~w{~~xz|}|wru}{~}{~{}}z}~x~}v~{yy}}{|z|y}|}~~}xv|{t|}{~}}v{}zx}|~z|y{{}}{y{}}||}zw~~{}zy}}~{{~{z||~z|~~y}v~{zs}x}~y{{~x|y{|}}zy~~{}z~}~|{|}{w}x}}w{~{~yxzt~|}|}{}{}x{y|y{yz~z~}z|{{~~z~{|}~x}ty~|~~}}|~||{~{}}z|y|{v{}z|}}y~{z}w{{z}}}~v{y{x}|zzz}}}~~y}w}}~}v~w}~{z}~{||~w~}~|~y}~}~yz~}}x|xy{|||}~~~z~|y}|{||y{|zzx~{~~~{u||z}y~zxwy|u{{ww|y|~|}|w~xx~~}~{|}~}~~}~{{{{~}w~~{w|}~w}zy{|}~{{z}|y~}z{|||~wy||{{{~x}~|}|~zz~|~~yx{}~{~~~||{|~{|y{~{z}}~z}}|u~|z}z}x~~|~{y~}xyw}x~|}y~{z|~z{y}||}}}~x}{~~{~{}||}~~}{z|}xxy|}wy||~{|~}}~~}u|~}wy|}||{~~yx}}y}~|tz~|zz|}~u{{x|z~}||{}}zz|zu|{|||x}}{{w~|~y~z~zy|}|yr~x}zywzw|}~{~z{~}~~z}|}}~v}~~|}}}~|||}}~~z}~~{~}~~|~~{z~|}z}|x{}y~||{{|y|{~|~~}~|~~~z|~}y{~y|}|~{|~w~{~|~y}|z{||z{yz}}|~|~~{}~}}}z~~~{|||}{~|}}{{{}~{~{|~}{{}|}{||~|}~z|~w|{}y}z}y{~~y{~|}~~~~y~}{}v{{}~}|~~~}z|xy~|z~|~|{|~{z~||~x|}x~y}{{{||~||}x}z}zxy~}z}x~|}}~}}|~}~}~}w||}|}{}}~x~~~}}z~{}~~|}}|w{z|ywvx~~}|~}|||w}w~~{}~zvu}{z|}{z~y}~}}}{{y~|z{|||}~~z{~{~zz|~}~yy}v}{|{w|}~~~|~~w{|z|{}~|{{}|~{||{v{z|||~~|{~{{}~}||~||}|~|~{z{~}{}}}}{y|{|z|zty{u}x|}~}~|~|{|}{|w|zv}|~v{~||y|~v{{}|~}~{~{|~{|~~{~|~~~|{~yz}|~|}y|}~{}~|{|~}}}~{|~}{}|z~||}}~||~~}}~}{{|}}~~}xy}z|~z}~|v{x~}y~yy~~~{|z|~~|}}||}y}y|{{}~}{~}~z}~{}{{}~||z}|}|}{~~~|wz}||~x}}~{~~y~}z{}|~|x~~}y{}~~~~~z~|z|}}z~}}~|~}~}~|}z|~||}{}}~zz~~}~~y}~||~~}~~~~y|~|z~}}|{|{|~}}~{x|~}}|}}|~~}~~~xzz||{~}}|~}z~z{{|~}{}||wz||y|~{}~x{||~~~|~~}~|}~~z}}y{u}{}}z}~~}z~~{wz||y{{~z||~~~|v|~~~}~y~{y}zu}v|x|~|}{z|~~{|}|x~~y}}x{~~x~y|}|}}~~|{~~}}}|x~}}}y|{~~z{~~}{xzyww}zzx~s|}x|}~~z~~s~z}}~}{zz{{~~|}~{~~|}}v||}yzz}{|{w}y}}{{~}{|}{~~|||{y~{z|y}~z~x|}{}z|~}}~~}u~}}{~~~~~~~~w}|}~t}}~~~~z{{zz~~~~u||}~~}}{~}|~{|z|{{v}z~~}}||~x}~{}}|{}yz}}}x~~|{~z|~|z|}}~{}{~{|~z{z{|~}}y~}||}~{x}}y~{|~||~{||yzu~z~|}}{}~|y~vz{}~{~}w~s}zvv{}z}~}|}~xzz~}|}|z{{|z~}}~|~|y~}zy}~y}x||xzy~~}~|~~~w}~~zz~~~{~{|~zxx~~~|~~}{}y~z~~y}|{}~~~|~||{~}~||{~~{}~~{}~{}~~~z{z|~~~~|~~|x|{z|~{wzs~}}~y}~~z}~v{~xs~{y~{~~w~|~}~~x~~{|{t|p~xy{x|v{|{~{{~yz{|{~yww{||syy~}w}}||||{z|}}~{~z}~|z{~y|z{y|~~{}}}u~~wxz~yz|ty~{~}u~}~u~~|~v|}~}~~zz}}x}{|}{|zx|{~}}|z|{|~~w~}xyu{xz}~xzw{~~y|}~~~~v|}z~y}{{{}}~{}~||{~~{{z||}~}z~}~}yz{x~|~~zz~}~}{yx{~}|}{}}}|{~{|}|~y~z~|{|~}z|~~{~{~z|}||}x|~}|~x|~~~||}}{y~}y||~}}~~z{|~{~~z~{{z~~{}|y|{z}~{{~y~{}|~xx~v{|y|{|x{z~~}~{}}yyv~{y|}t|~{vz}}}y|z}|}{~w{|~~}~~||x~~z{z{zz}z}}y~~w}|}|~}|}~~zyx|~|~z~|}~{~z}~~}{y~|||z{|||}~}|z{}}}{y~~~}z~|||z}{~~~|{zy}}y|z~~~{~x|z~~y~}~~~}}|}{~yzvzz~}~y~}x}~|~}}y}|x{y|y|}x{{{~~~~~|~zyy|}|}|~}}}z{|||}~wy}~z}}}~|}~~~{{~~~}}w~|z}~~x}|}~{{|~~~~~}~~{~y}}}~}y~}~}~}~}~{~}}{}~{}}z~~}||{}w~zwz~}|{}{~||~z}~}|{|~|~x~~||~}~{|x|}v{{x}|}|~|y}{~wy|{|xu}{||~~y~}}~y~~~}y{~~{~|~}~{|z}}{yz|~z~y|{~}y~|}|w}z~{}|}x}}~}|~|~~~{{z}|y|~{~{}~}~|y{}z~}z}}|{|~}z~}}|~~z}}~~{~}y}||}zzy|{z{}|~}}{}w~zv}{x|w}~z{}u}~||}||~~}{||}~}~|z~z~}{xvx}~}}~y{{~w|~y||}y}~~~}{~}}~y{|{}}~{}}}}{z~xy~}|}~~~||~||~{yy}}}|~y|{{~~zy~}|~{~}~}}||{}~{u~~{~~}~|vx}||}|x~z|~|}{}~{{{~~~}x}|y{|}}{}z~}z~{~{~z~~z}}{|}|||x|||}x~}}~}~{}{}~y|~~~|~{~~~|y~}~y}}}~z~|{~~~|~{{~|~y|{~}~|}}|~}~{~~z{zy|}|}y|z}}{~xz|z|}|~~~~~}{y~z~z}~zzy~|~~~{||}~zz|z~{~|~z~{~|z|}x|}~~|}z}|~~|||~w}~{|~}~{x~|}y||~}}~}yz|y|{~~~~|~}{~t~||z~{||~~~|y}z}|y~zz}}}w~|~yx|~}~|}~}}}yuz}~ew{~~~{~{|z}z|}wxx{u}|~~|z~}{yz{~y}|~{x~z{z~}~{}{~}}y}~|}~wz|}|||}}y}~~|}}{~~~{}~~t}}{}}{|z~}~~}}}y|zy{~~|}}||}|}|}~w|}}~~{yy~v~}}x}~~{x}|y{~xw{||{{}}~~}||x}|{~}~}||~v~{~}|~}|{{{|}~~||y~|}}||}z}}~|z|}z~}x~~}xyx~{z~~~|~}x||zz~~{}{~z~x}}}}{|}}{}w~~|}y{|~||~}x}zt{~||~~}|}{~~zz~}z}}~x{x|}y~~|||~x~|||w||~|~t~~{zx}}~}x{z}}~}~|~t{~|~~|~|~y~|{}~~}}~~x{}y~|{~~}|w}~~}}x}|~|~}~~~{|z}~~~~y|~|{{x}~y}}|y|~|y~|xw~|{{}}}~~~{{~}{|~~|y||}}~~}}y~~|~z||v}{}y}{z|~{}}~{}|~~~~~}{~~~vy~~}||}~~~}~}~~~}}}~~{y~}}}~~~|{||y{~~z}{~~w|~}|||}}~~|y{|~|y|{}}|~~~y}||~~}}{}~z~{||}}~||}}~}|}|z{|{}~~|vy}z}x{w}z|z|~~{~||}z~{}}|||}{v}{~}|}}y~~}~zv~~z{~~{~~~y~~}}y}~~|}~z~}~~}~}{~}|~|}|y~y}{{}{~~~}}}~z}{||~~}}~|y|~~~{{{~~}~}|~~}zz~}}}~|{{||}y||||}~|{~}|~{}}}||}}{{|~|u{z}~~|~}~~{~{}~}|~~zy}|z~~|}~~z}}~~~}x}~~z|||~~v~~yvz}~||}w~t}}|}y|y|~v}y{}}|z~s||}|xz~y}y{}}x~{vz}|{~}|{~z~wxw|}}|{{y{~~||~}|~}~~{}yyy~}y}}{~}~~}~~{||y|||~zz||}|~~}~~|||}|y}y{|}z|~x}||z~~}x}||~~u}|{~y{}|~{}y~}}|}}|~{}}}}zy~|}~}~|{y{}~}~|}}yyy|}x||u~~|z}x|}y~~~}|}~~~|}{~{|}{z~zy|}~z{{z|~|y{~w~}w||z}z{z~|{}~|{~}x~|||~}~}{{{|}~|{z~|~z}}~~}}|}}}|}~{~}~}~{~}{z~{}~~~~|~}}~~~|{~|~~}z~}}~}}z}~~}|{{|{|}|}}~{x{{||z}~{y~~}}|~}}}y~yw}}~}zy~}w~~}~}~|}}}~{z}x}~}|~z}|~}|||}~~w~||{z}|~}}|z~~~{|~}~{v|~|~~zx}~~~}{{~y}xyy}~~|}~}y}~{}}}z{{}}||}~}~~~~z|x~~{~x}~{zz{v}~yx~~|{|~x{~z{|}}|||{~}v~~{{w{x|~x}~||}y}|x~z|~}|{y{zwy~|z~}||~}}~~}||}x~|}~}x}{x|y~{x|z~}}w{||}}yz||{z}{{}~|~{x|z|{}y~z}}z}~{xy~}z}||}y|{{|y}|~yyz|~}~~|~{z{~|~z}~}|}||z}z|}{}||}~||z~yzy}y~}}|{y~z|y~~|{~v{|{{~~|xt~~~~~z|~yx~~|z}~~~~{}~~}~{||}~}w~|}v|~{~}w|{~w}~}||z{~~~}}~~|}}|}}x{}~z|z~~z~{{}}{~z~z~}~{~~}zx}}}|z~|t}}~~zz{|~zwzx||~yy{~yv~~}|zw|{~x~zz}z}||~wz|x~z|~|wx~~}~|~yy}z~}~x}||||~~~~~~yy||{||}zy{}|y}{~}~}{}|}z~z}x|~~y|~|~}|~~~}x~}|u~}z{}{~|z|~|}~~y~|~}~|{{|~z|||~|}|{}~tz~}}|{|~}~x{~~}{}y|{x}||}}}}}|z}||y~y}|~{|~~}|~{y}~~{y}}z|~|}~|~|||{y|}~}~}|vz|~~}z~y~z}}y~{}~{~q}{zy}{y{yyy}|}|t{}{|{{}x~~}{w{zz{~|}y|~~|~|~x~~y||{w~x}~{y}|~~zzu~}~{|~~}}{yv{z{z}}~z|}z{}{z}}{||~{~{~}y~u~~z{~~}~z{w{|~{}}|~}{~}|~~}}}||y}{{z}}z}}{}|||z|y~x~{||yx~}|}~zy~xx~|{~|~~~~y}{xxy~~}~~|y}z}wz{x~{~{}{}zz{z|z~z}}~~z~}v}yy~~~~}}}v}}~}}|z~|~zz~~u~}y~{|z~{|}~z{{}|}}x{~~~{~y~|}||~}v~vz~~|w~}x~{~y~yz~~~~x{~~~}}}{y}x|~}~~|zy}y~{~}}}{}||{{}~{}~~z|~~~}zzy{}{}~}~~}y|~~|~~z{{~|x}~~{~z}~z}{y{~~{z||~{||~{z}~}}~~}}}}z~}||{}{|y~~~y}z~y~|~zz~}~y|~}}{|}~}|{~~|}}}||~w~zz~}|}{x|||~z}}z~~y~||~y}|z}~}{}z~|||~}}||y}~{}~}yz~~~{}}}|}~~||}~~}~z{~}|z}}~}{~~}{{~x}|}{}}}}}}{~{~~~|}||}~}|}z}~|~z~~~u|~x~~|z}}wv||}||}}~w|{~}~||{}~|~{y|~||xw~~{w~}|~|~}}|~x}}~|~~}{~~{zx{~z}~~v~~|{{~~~~z~~z~z{}}yzy|{~~~z{|}}sy~|~{|~|||~y}~}~|~||~~xz~y}|v~~{z~||~}~~||z}y|}~}~xx~~zy~w~|{}z{~||{z{~zy~x{z~x~x|}~xz{||}}yx~~zy}{z{~y{~}~}{~~|y{||~wz{~~|~~{z{||~~~}}}~~||~||~|~z|{|x|}~|y}}y}|}~{|~z{}|}}~z{~|~~|~w}{~z|{~||}}z|z}}~}~~|w{u}}~{~|~~{~~}z|~{z{{{}z{~~~|}|~~~~|}}|~}}|}}{~|y}|{{}|}y}}}}}||}v|~|y~||{w{~~|v}{|x||~~w{x~z~}}{|~z}|zzt~z|~~~}z}}~{|}{~||x~}}y}~~zy~~{}}}y~}}}~{{~~|}|~~z|||yx|~{}}y|}{}~~}}{zxxy~z~~|z{}zz|}~|{|}}~y|~~||x~{{~~w~x~~~}z}{{~{{x~|wu~z~}|~{}}|z|}~~x{}~}{~y}|}~{}~}{~}~||~}~{{}}x{|~~}}z}}{}|~|x~{}|{z~~{~|}}}xwxyw{t}z~|~zs~~wr}rtw~~|||x}z}|w|ys{}}uzx~|y}z}~tzs|r~x{|}}z|~y|{y~}}|~{~z{}}}z}~}t~~~}~{|w|{{}~y~||}}|w{x~}|z~}|y{yz}z|z~~z}~wwz{}||y}|~~{z{z{}{~y}|}{|~zx}x~}{z}~z~~}{|x~}xz}yzw|y{y{{zz~}|}yz{|yx{z{}~yz~{{xz}|~~x~}{~~zy|z}{}|{~{|{||v~y|~|w~~}zz~}|}}}~~{~}|~{|{~|}~~~{~~y~}z~~|}~{~}}}{}{|~}~yz|~}}}||~|~{~}y~z~~~|~|z~}~|~}~~}z~|~{}v{|{~~|{}}~~}{~~}~x}z~~{{}wz||z~z}~}}z|xx}~vxz{~}|z|~~x~~{~xw~~|}z{~}~{}~z{zw}|yu}}~s}{}~y~~{y~www{|xxz~zz}~|x~}~y}z}{~wu}{}~{||v}~|~|~|~~w~{x~z~~yz~~yy~z}}~}|{x}|z|}~z||~{|~}~{{x|xz}|{~y}}||y{{~{~}~~|}{}|~z}z{}}~}}||w|}{z~~{~~{{~}~~~~~}{||}~v~}~}}{}{|z}z~~{||}{|~{~~~~{{}||~{~|||~{}z}{z~{}}y}~w~}}~|~~z~x|}|}xz~{~~|~}~x}}~}{{xwz~|y~xy}}zy|}~~~~}|~|}{z~}x}y}}{}}~~zzt}~|~}~x~}~y|{{}|~yv~x~zw}{}{}~~~{~{|~|{y~~{~|z~x~}~~~~|s~{|zs~~y{}zy|~w}}|~~~}z~~z~{xv~}z|}v}{|}{~~|z|~z~y|{}|{|z}~||~~w~{z|z{v}z|z}w{}|}{~{}~{~}}~|z~|~|}x}{||~~}y{|{}~|{|{|~}z|~}z}}~}~}{}{~~~|x~~z~}~{~w}}y~x~{}|z~|~}}}~{}~~~y}yz~}~{}w}z~|{~yz}|}|}~z}~|{z~}}{zz}x|v~w~{~~}~~}|}}y~}|~y|y~}x}|w}~}~z|~{{}|~{}~~|{x~{y~{~|~~}}yx{}}~}~}}}~}}|{{}~{}||~~}}~}|~~}z|~z|~~z|~~~~yr}|y}}}~||~}|}}}{}~|~{~~{}{~{z~y~~~|}|z|}y}{}|{|{}}}{}}~}x}{||{~}~~|{~y{{~|}~{yz~yx~tz|~~{x}|y~~y~~{{|z}}|{|w~~{~zy~}{}~z~z}~|v{~~y{z|}yx}|~|{~y~}{|z{x}~~}}~}z}}}}|{{|z~||t{y~~x~}~x|}|y}}zy~x~}~||}zy}}xqy{|{w~}{|~w~|~~y}x|x~y~}~z}|v}{~~{~z{z}~|~||~w}~wyv~}|}vy}~{{}||~}x{z~~|}w|z}{~yzz{|zyy~}~wx~~{~}{|}{~z|w{||xzz~~{|{~~z~||~}z~|~~|~{}~~~|zz~~zzzz|z|~}|~~~{}}x~~y~|}~~}~~{||~{}~~~z~~}}w}~~|~{~~z~}~zzz}|~~}xz}}~~~~~||zz{}|~|}}|~}~}}}~~~}{}~z|u~}zzw|z}{}yt}~w}|x~t{}zy}}}~|{~~|y~|~x~z|{~xz{}~z~~~|||z}~~}}~~}|{~}|~~u||}~}|~}z~~{u{z}z|u}}~}{}~|}|}|~}~||~~z~{||y}~}}~}|v~}}z}~}}{{}}}~~}|x~~{~{{{||}}||~}~|~}|~|}x~~}~{~}z}z{~{~z~~}~}||y}y|z{|}yy|z~~{~}{}xv}{~z{|}~v|{{vx~}y||w|}|z|zu|{~y~{zv~}y|z{z}x|zz~{w}v{}y||w}}|zz~|z{|~~}y{}~gx|~|}}~zxzx}~|zz~|~yw{~|{~w}{nxy~x|z{y}}~~y}}|}z{x|~~||x{y}{||~|{}{}|~z~~}w}xy|z~~~|uz|~zz||}{v||}}}{~~~{}|}}~}~|{~~}|~~|zy~y~~}t}wv~z{y~}}{}v~}y}w~||{~~}z{s|{x}~~}~~~~}|~}~~~{~|~|~~zy~z{{xv}~xy~v~}}~~|z|~~|}~|}~~zv~}|}~~x}||y~~~w{zx{}z}w~~z{}z|xx~}~z}y|||}|yyx|~nx}||}}||y}~~zw~t||~|{~t~~|}{{|z}v|~{{|{~v}{~wzw~xz~~}~||}y|~~{~~~~}~|~|y~}|}~{~~|}~}{}~~{{}~~|}z}|y||}~~~|{}}|{~z}}z~~y{~~|{yz||||}~~~x~}y||~z~}}~x}~}}x|}~~~~}y}~|z}{}}z~~~}|}~|{~~}}~}}}~~}z{{}{{~~~}|~{{~|y}}x}|~~wy|w~~~~z|z~|~z}|~}z~y~~}|}~|~||||{|{~}~{~w}s|yz}}|{z~~}yy}|{}~~}{{|||yy~}|yyyy{~}y{}z|z|}}}}z~~~}{{~z|||}z~}}~~}y}|z~z~{{~|~x~{{{}~~|x~{z}~}{~~~~}|y}~~{}|~~y|~||}z~z~~~}~|{~~{||~{zy{z|||}y|{~~u|{~}~zz~~}{~}}|{||y~{}z|}~{x}y}|~~z~}y}{}~{x}~}}~xy~x}~~y{~~~}|v~|~~~}|y~{}{}~~{}{}~~}x|}}u{|~}|}x|~~{{~z~z~~~}~x~}{~y|~||z}}|z}|}{~~~}~{~}}|{~}~~~~|||}~|y||~~}y}{~~{}|~~~}}}{~}~~}{}yz~|~~}x}{x||{}~~{}~}~~|~{{}|}z|~{~{~~v~~~~z~}~~~{~}|}~{~{{y~}||~y}}|{z~|}t~|x~v|}{~~|{~}|~~~~}z}x{~}}{}}~~}{~}{}z}yz~}|~|{~}~~~}z|}}}~}{~}||z~|}}|~}~}|}|zy~z{|~}{~~~{{}{}}|y}~zy|y~{~|z~||}v~~|~{}|{t}}|}{|{~~{|x~z||~|~~}~{}z~~~x~|{||||||{}}|||m|{zvx}{~~~y{}~{~~yzv}w~||{}}{zzz{~}{~y}{y}~{||~z~|}|z}|~~~zx~|y}||~vtyw}wtuuqxvxv|rvvxu~utxvyz~ttoxuvwtwmsmyvrssintuuyzpvow|zs{wv{{rx|~vsvurfq}y|xxsytusvwxpwpwjqyqtztrlwqwpvujqwnryu}yo|yzmnwxWuuwsvrqrszvvtnmxwv{zrztutlyxyuzxkvstvxwy~qpnstvvwkpszwwwq~osqpyu`{zxwmxtnspq~wvwsosvptqys{|~uyvosu{syuswqwvxzsmqrqyxrysrqyu}suuuow}ktv|vwsv|yqrkx}{yrpvvt}vsguQxvosvuv{{uvxttot{qpqs{zt|xounpwxzrr}vpyyz}vuqtw}vvmtiyhtwsqyv{yr}ztv{to}owmvxs{ntmxuutt{}|~~~z~{}zu{}z~{z{{z}|~{||~|{}~~{~~~{y{|~zz~}}z|~}|~}}x}|{}}|}|w~y~}{|}zy{||~}}~{~r~|{}{|~z}~{|~}z{|}|z~{~|z{{{~{}z|y|~{}yy~{}}|}}}{x|~yy{}{{w~}~|~|~~z|}y~~u}{~}~zz~~}~}{|~}t}{|}}||{||}z|~}~~zwz~}|y~~~|{}|~}z~~~|~||~~}|~z{|z|||}u~}|{z|x~~}~}~u~~|~~}}~~z~~~}~z{{y}|~{|y{x~|}}{}{|~{}}}}~z~~|~~{|z|z|}z~{|}v}z~{||{~z}~|{~~x~~~|}|~}~}~y}}v||}~~~~~|}~~~}~{~z}}{z|}|}z}|}z~|~z}{|{|z}~~|}~||~~}~}~|{~}|z}|}|w{w}~~w|}~y|{y~{~}~z||~}|~~~{~~{{{}~y~{~~{zy~z|||~~~}}{zz~{~|{||}{y~|~|z}|~{|}|~{|~}~|}}~~}|{}{}z{w~x{}|}}}|yy~z|}|v~~}zz{~yyu}{}{~~~}}|~{}v}y}~|y{~}}{~y~~~~v{{|~~y{~}z~}{}}|}y}}}|}}~|}~}|~z}{~|}z~}y~}zx||}~|}y|z|w{y}~w||{~|{{{|u}x~t}z~{}t~}y}}z|z|z~|}}~{~wz|wz|{{~~|~}|y{}~~y|z}{{|~{~|~~{{||}z}}xz|y~z~~~zy{~y{}}~}}yz~zz{}~}z|~|~}}|}~}}~zyw~x~~}v|~zq}~yzz}~}}{}y|{x}w{~~z||z~}x~~}~}z~{y~}||}{~~{~~y|||{~{{{y|}|~~~{}{z}{}~||zwu|x~}~|zz|xz|{zz}v{|~~||v~{x~yx|~}~{}{~~xx}z~~r}}~~{{x}wwy~~~~{x|~}wz~}qz{|~~~~||~}~|}u{~x{{~zz}~}~vtڞx~w}􇊎{|}v~}u}s|}~z~~||}z{~xx||~~~}y|xw|~}|~{}}}}{}y}z}~~~~|}}||}||yy~{z}|s}}w}{}~{{{~w{x|~|~{x|}{}{x~~~}y~~v{~{{|{}~~}}~~|~||{z{|y}{~}~|{|~}~}~{{~|}~~|y}~{z~}~~~~~}}z{vzz}~}x|{}~||~{~~~|s~}y~~v}}~~x}}~~u~}|{}}x{z{{~{}{y~}y}v~~|{zy~~|y~}{{x~~{s|z~w~|y}z}~z|~}|}~~}xwz~~~~}~}{~|{~z|~x|~~}}||}~vx{|~y{}|||z}zxyz|}}~||~}}~{}}||zys~|zz{}~~{{}|{}}~s~~|||}y}{|}y|}~}|{|{}z~}}}|~~}w~z|}|}w~}y~y~}y{||~~|y{}{}~x~{~~y~~~~|z||}}x}~z}|{{z{{}w|yw}|}||}||~vzyzz}}||~{x~|~~||~x~||}}y~}~|~{~|y~y}|}|t~~|zzyz{~x}~~|zzw~{||}~x}~}w~}~}~}{|~}~~~|~x{|~z|z}v{~}|~|~v~x|}|~|{~||~w{|~|||||{z|~}~{~~|~}z{~|}~}}|~~~|~}z~~y{|||}|}~|~y{}x{y|}~z}{z~}z}}~z~}~{}y|}z|}z{~}z~y{z~~|~{}z~~{z}x}z}z~~}~~}y}}~~|}~{z~|yy{|}}~}||{|}{z{~|~z{z~y~~|}{V~y}w~~yz}{~}~||{y}|y}z~{~~y~{~|}{y}}|~|}{z|}~}~}}~{|{x{x~z~zy{y}}~}}|{|~~}z|}~}~z}z}{|{}|}~~}~{||~}y{{~{|}~~z}|}z||{~v||~||}~}{~{yz~~y~~|~}|~|z{xs~{x||}y|~x}~{~~{}}}~~~}||}~|}{z~y~~{}}|}{}}}}~zx~r|z~}~~}|~}w~}}}||u~}}zx~~z}~}{~}|~}z~}||}}}|~~~y}~|~|}y~}~{{xw|}~~~~{{~}|{|{|xwz~~}~|{|}|v}||}{}}||{z|y}x}~}|}}{}x}}|~z||}{~x}|z}x{~z~}v{~|~y}u|~~}~~w~}~~yzz}~}yy~||~}~|{||||~|}~}~~||x}}}}~~z}}}|}}{}}{y|z}~~~}{~}~~||~}|~zw}}y}{|{x~{}zy{}~{}}}~~~~}|}|~{}y~z|w{x~|||}{|}~{{{t~}|y~z|z|u|}{}}{|{z}~x}~~{~}~~z~}~|~|v~{~}{}xx~|z{~z~|}~|~z~~|||}~y|~}y}}{}}}~{v~z~|z}}}}~z}|z~{~}~~{}||}|v~|x{{t{v}~}~}}}|~~{~}{}~y{~~z}{|{~}|}}~}{z}}x~~~z}}}zzxy|}}}w~}}v|}{}{y~|y~~{{~{z~z||}}|x|~|{~|~~{{~~}~~~}|}~}|v|}||r~|~{}|{~~{|yx{~~|z~|{}|z||~z}z|{~~t|y{}~~yx{}}|~~z~~~{x||}}yy}|{{~~|||}~|{~{~|}||~zz~~~~~~}}{|~~}}|~y}}y~}~~xy|}}{}~~|yw~|~vz|~z}}}{|~~{~{~wz|}xz~yy~y|~~}{~~x|}||{||z~~~|{~y|}~}z{~~|~{}||{|~{}~||}~~{}x}x~|~z{}~|{zy}~yx{vv|yyw~u~{zuz{~yw{w{wyx{|xwq~zuuyptww{yvuxp}u}y|{{~swxwvt{lry|~v}p{|wux|vptzev~vvwnj{xzpy|vpzn{{}q|x|lv~zZvzvxxs{yu{}vw{jo}w~}tyyznx{zz|v"ksu{zwwyuzmurvy|uytvywv{un~b{zzpvvs~qs|zxzpvt}vuzrq}}svqry||yrvw{uq)zpvvr|u|xznp}|zuvw~qs}q~~xxyy|wuk{~z{qvu|u{uiz|b|wpx}w}ytwy{p|xvmup{~yyrysxy{vuxpv{{|r~yzy{i~gjtzvwyww|}}~zpv~ryvxyvssxp~uxuxz{~}|~yz}}}z~|y~}~{}~|}|~x}~~}{vx}}{~|}|~~y||yy}|yx}zz}|~~|~}}}~~~x{~|}~}~}z~~}x{~{~~~}{|yxy|~~~}}~|}}{}{z~z}}~y~|y~}||w~~~z|}}z~~}||y~|~{z}}|~|~y{}~}~{~}}{|{{|}|x|z~~y}~|z}~|}z|||{~||~~|~|{}zw{{z|z~|~|{~~}||{{}}}~w}~|z~}|}}}x~y|{||{v~{r{~zw|}}}}z{w{|~{}}|y{}zy}|~|zzy{~~z}~~~~}|z~}|x~~|}|y}}}~~|}}}}|{|}~u}}}~y|z~{~}y~}z|~w|y{|~{|}}|{}|}}~y||qz|xx~}{|~~|}~~||}}x}z~|~~~{{~}{~}~{y~~||{|}~}y|}z{{yzy}~~~}}~zyz~x~x{{~}}}|||}}}z}~|}~}}~~}~x}zv~}z~z}zy}zwz~{|~||{~x}{}x|~x}z~|}~{|{zz~~~z|}~|~||}y~z{~{y}|~|~|}}~}z||}y~~~}|~|}|}}}z~}}~~z}|~|{zz}x}~}~~z}}}y~}}|{}}{~xy~|~}z}|~z|}~y{z~}~z}~|{~}{~~~|~~}|}~xw|~}~|||s}z{{y}{}zv}u{}|zv}}~~~x~~~|z}{~{}z|zw}z|}}z~}~}}~|}}}~{z}~|}{~z~~{|y|{}~~~{z}z}{y~}x|||||yy}}}z}yz}}}~~{}}x|}}~z}}~~~z}}}~{~~}~}~|y|~~{|y}~{zz~~{||~z~~|~{y{~|}vy}||z~x~z}||u|}~s{~vy}{|}|{{yz|}x{}|}~y~~|ww}~{|}|~|x|~|~~}{|z~}{}|||}}~}{~xzx|||{z{~zy~zx{yu{~~}y~y}|y}}~}~~~~|zw~z}{z}~{}{|u}}||z{|{~}{wzxz~~||}~|{~~}{zzy}}~~yy{~z~zyz~~w~|}~{{w}~|x~|~}z{~~y~~}~|y|}}~z|{x~|x~}|{{z~{|~{~y{}z|zu~|}~z{}}||~|y~}z~y}{~z~}}~w~~~y}{~~~}z~}~}~|{~{}~{{|~|~~}}~z|w}||{{|{|~zw~y}~z}}~{}}|~}}}}{~xx~zz|~~{z}}y|w~z{}~}~|{~{~zyz}|~}}}{~|{}~z}}~|z}~|~~~x}z|}~v|}}z}{~z|~~{y{~~}~{x{}}}}}{x||~~~|~~}}{}~~~z}}~{z~}}~}}{~m|ᛒ~z|y}w~}{}|}}~|}yw}~{~|~|}~}}y{}}~}}y~}|{{}~~}~x~}zz~{}}~~}{{v}{}~~}wz}}~z~}|~w|z~~||{z~yz}~z}~w{|{|z{{~v|~|~||}~}~|~}z{w{z~|{|y}yyz}}{|{}~~|~}~~~~||z}~~|~|}y{}~||~{|x~~uvw~|z}x{{~}~~~}u}}y|x|}~~|~{y|z~~{}~}y~|~||{}{}~}|~}~y|}{|{{~~~~}|{{|}{}~~~|}~}~~}~}~}}|}x|~~|}{|z|}||~{~||}{|z~{{~~~}}}}z{}|zyz{z{{y~x~{{~|{||zz}}~{}}z{~zyu{~}{|}~|}~~||y}{}}~~|}{|{~}||{y~|{}{y}|x}~y~{||~~{~|}}|zw}y|}||}{}~~}||z|||~~}{~|}{|~~|}}~}}z|zw~~|~u|||zy|~}}{|xzz}~}z}~{z}~~~|}~~~}w~}|~|~}z|||~~{ty}y}|z~~|y~~{{zy|}xyx}|z~{|z}}|~}}}}|{~~||{{~~|z}}~|}}}{~x}}y{vw{x~z}}~~{{}xz}}z|~}}}}~y}~{}wz~{}~y}{x{|zyy{|}{|y~{~}~}~{~~{}~~~y~}~~y}~}}}|y~}~~~y|{|zz~~{{~}~}|~zzz~}||~|}~z|~|}yw{~z~~~}}y}x~~x}}z~}~}z~}y~wyz}~}~~|~{z}~}~|||{|u~}~{}~}{||y|~}}zxz~|{~}x~~}|z}||}~w~}}}x~~}|{~u}zu|~{}}}z~}}|y}~{~xy}~y{}{|}yx{{}}||{~|}z{~~}yz~y}{z}z{}~}{||~|y~}w}y~x{~{}w~v}}|{~t{xz~x|}{}|}}~}}xz}~}~~z~x}~{}y~}{y}~~|~}x{|z|z|~~zy~{{z}z~~z}t}~~~~}}y}~{~|}~y}~y{}}|}zzzq}y}~{~|}}~}|}~||||{{}{}~~}}|{~x~{{~}~~~~|y~wvy~|}~}}{}z~}~|}~|}~z|~|}~~~}}zy~z{}z~}~}~{~}||{y|yy~}}}~}~}}z{~}~y|}{|v}z{~}~}}z~~|~zx|z~{~~~~|~xx~}}{x}}x}~~~~|~}~|~}~z}|zz~}||}~{y~{}|~~}~{|{~}{y|~|~|}}}}~~~y~{}}~~|}{~|~{z~~}~zz{|yyz{z~}y}~ww||xvyv{}|{~}}{zz}|{}~x}zy|}}{{~~x||z}~~}~w}|~~||~}}y|{y}}~w|zy~v~}|}{{{}{|}~{yy}|wyr|z}~~~|}~}}yxy|zw|~~|~|z}~~|{}x~~~}}}{}||q~}~~|~|~~~|~~~|}x|z}z|~|x~z~{~~|}{w~}}w|{|x{~z{}}~{~}}w}uy}~|}}}yy{~~x{w}}{|x~|||{~~{~~~{~}|~{}||{}z}|}|~||~}|~}z~z~w|{~~~y~|~w~~}||{~~~{~}~~|z~~z~~~zw{~~yy|~{{w~~~}{~||}|~~||||~y}y{~~}|~}|~v{~z|}|y~v~|~}~}{|{w~yvt~{}|}{{}z}{~w{|~t{~}~||~{~~}{}w||z~~}y~y}}|~|~~|z|zzx~y|}~{}~}uz{{}x~}~|v}|~||w{}{~|}}|~~~z~}y|~~~w}z|~~}~}v~|}}}|y}|z|}y}|{v{~~}}~~~{~}}t~v{||{|~~|y|||{y~|}|}z|}|}s|{~~~z~~v{~}}}~{~z~{zz}~yz{~~~|zy~|{}~{|||z}||~z|~~~~}~{}~}||}z~~~~}{z}|~|~|~~}~|}zy{~{|}}|{y~x{yz}z{w~|~}~x~|}{z}{~}~|}||x~~}~{~y{|}|}yx}|~{~~}w|~~z|{~~{~y}}}}}}v}~}~~}~}}|v|z}}~~z}~|}}x~{z~~|}}}}~|}}||{z|~~w|~{}{}}}}~{~y|}~~|}t}~}|}}y~~~~|{~}}~z}~z}{{z~||{~~y{~zr{|z~z}x{||}zzz|}}|yz~|~{~|~{~s|~|y~{|~{~{~}~{{}y|y|u}~}{{~y~}~{}{y~z{z~y|}~~~}~{z~w~}xz~}}x||}~z~~}{~}~|}|}|{}z}~}}~|||~|{|}zzx{zz|}|{}{{xxy~|{{~{~y}}w~zy~|}}~~}}x}|~}}w~y}|}~~{z{~~x}y|w{~|}xy|~~~|{y|y~~|{z}y~|{~y||y~}}~}{}|{}~}~z}~~~x{~|~vy~~{|}|~}|{~xz|~}}}}{~~|~~{|y~~~~}~}}~x~z~~x}~x||~~~{~~}{~~~~{}z|w{{~y}y|~{~~|{z~{z}}z~y}~y}y}~}|}{r}z}}|~z|yx~{}{z}}}{}z|~zv}~y~{~~x~{x|xx}}~y~~}~y}}|~}|zz}|}~{~{|}~y~||}zyz{{xzz|||}}~}~w~~|~x~}}yy}z}~~~|~~~}~~}w|y~}}~z}{|||}}~z|}~}||{zzz~|~||}}|w~~v}z{|z}z~}~~{~{|~{{|w}}y~}}}}{|~|{~~~z}~||~}~}}}{}zy~~{{y}~~x}y}z|{}}~{{|w}|~~y|~{~{|z}|}~|~~}~||}~}{z}}y{}z}}y}z|}z{~~z|}}|~~~|}{y{||}zx}}}|}x{~y}z{}z~~~~{~}xx}{~~~|}~}|~}}}~x{}|~y}}{z{{}{~}z{~|~z~~}~{}||~|{v~{|{{||~~z~|}|~|~}|x}y}{}}|{}~~}w|}|~~~||}x}|{~~~~{~|y}}}|}~}~{||{~z~}{}}{{z~~{~{~~zz}x}~~x|~|~y~~}z|~|}~~{~}y}}}|{{~{~~{}||}}~}{~}~|~|}}xy~~}~{||~~}}z~{{x~~w|z}~}x}{~}x~{~uz~{}}~~}z~w}}~|{~}|~~~w{{|{~|{~{~~~zy|}|}x{||z{y~~{|z}}~u}||||y}}~}z~w}|z|}{{yzz{t{zy|~~{|}}~|x}}xx|}~z|u~~~{}}~yy}{{~~~~{y~u}}}{{~z}~{}~{|~}}{~~~~{zw|~|{v~~|v~{}{t{~||{|z}y~||||z|{}z|x}~|xx~y~||}|}|y~~~~~}{~|~~}{~~}}~~yw}}{yvu}{y}~}z~~|}~~yx|||z~~}{~||}~wy}ywy~|{z}y~~}}vy~}z~}}~~~}|}|~z~}z|~}~~{~}~z|~~~|y~}}|}|~}x}t~w}~~~{zy~~~x||~z{}~{y{|~z~}}~z}~|~~~{{y{z}|~~}|~~~{|z~}}z||}||~}~|{~~{z|z}}~z~y|}~~|}z~|~yz|}w}||}}~~~~y}{|}|~}~~|~w}~|w}{z~~}z~~~|z}~uz{xx{~yzx~{~|~z~~{~{|{z}|u~~}~{{z}}{|zw|{}|~{|~{|~|~{}~yt}}~w~}|}}w}~~}}}z|}xz||v{|}~zzz~vx~|~}||x}~}~~}z~z{y~~~}~}y}u|z~|~|~|}|~~}{~||}|y~~~|y}~~~}z|~y}{{~~{yz{~}}~y|}~}~}}y}}}~{x{}}}}~}|~{z~{x~y~~z~~ztx}z~y{~{{{x~~yyz}w~~yx}}~~z~~~x~{uz|~z}~}}~yy~{|}||x~z~|~|~}|}|{~~~~}}}}z}z~}uy~~~}|~w||~{~||{~}~}|{~{}~x|}}~~{}~}}}||~y}~}~~z|z~}~||}z{x|{~~{{{~}w~{{}~}||{}|}{~~~{~||{|~y~}~~~~y||~~zww{}{w~}{{~}|~|}{{{~~|~x{y{~~~x~~~|}y}xy}{|~xy}~w~}z}}}}}~~|~~|}||x}v~}~x~}wy~zzw}}}|}~}}u||z|~{}~~z~y}}zz{y~{~}{~}~}~~v~~~xvx~|zz~}~~~}{}yz~y{~{z~{}y~{yz~}}{}{~~y|}~z~||z~xyv~~}}||~~~{{}y~{{~~~}}v|}~{|~{|~~~z~~zwz|~x~~{}~}|||}z~zx}z{{~{~y~~zzz}|~~wx{z~}|}~y|}~}||z~}~|~yyzw~}~|{x{|}~~x}z~w}}w}|{{}}z~~}|}w}}~}|~|{{}y|y}~wyzzz}v~}x}v~z}}{z~|}}{|~~{{~z{}}{~z~z}}~~}}|{~~~}||{|yz~~~}|}~|z~~}|{}~x}~~{~~~z~y~~}z|}}~}yy~||~|}~}|~z~~~~|~~}|~~zz~}~}|z}|}~{|~{{|}~|z~{~x~~~|~}}~}~~||{z}|~w~{}||}}|}z~~{|~x}{xz~~~~}~~|~~~|~{}~}~||z~~~{~~~y~{}~}}}~~~}{~y~|}}}}y~|{~|z||}{~|x~}|~||~~~z}{|~|~}{}~}}}}}zx{~{~~~{ox~gv|}|~|s|y|~t~x{z~~}zuy~xzx|}z{}|{|{~z|q~x}u~}z||~|}~|z~r~|~}v}z|{|{}}z|vz|x{~}}}~{~|t|~|x}w}}z}~{{|}vx}z||||~z|~||~~z~|x|||}x{|{|{yyxuy|}}{|y~x|~z}uz{|}z}|y}~y{}~~}|~zyx}~}}|v~{z{z}|~~~~zzy{~~}z|{}~{}|}z}vwz{|~|||{}~}|~x|~z}w~}|~~~}~|}~~}y}~|||z~z~y|}|zy{yz}||}}~||}~~|x|~{~z~~}~~~{~{||~}~|~||}}~~|v{{}~||y}z}||~~|~|{~}~}~~x|{~}y~zv||z~v}}~~z~yw|z|w~|}}yw~}|y}||~{~~}}~|~{{{~{~~|~~}{|z}~~}~}}z~}}z}}z~{}~|||}{~~~{~}zxy~y~}x~~{}||~|{~|}|}{~~}~~|~}~|}}|y}|{|{~}z{{}}}|{~{||}}}~~|}}xz~~|}|}||}~~}{{|}~|}x|z}||}~}{~~|~~|{y}y}|}}w}~~}||~~||zyz}z|}~zz~~~~{z|z{|}|z~{~zyz~z|}|}|}~{~}}{}~{}}{~}|}|}~z|y}||z|{}~}w{}~~~~zy~}|~}}{}}z{~{}v}}~{{~z||}z}{~{~~{|{~w~||{~}x|zz|~}~}{~{z{{~|zz~}}}~|~|~y}|yy}||x|ty|}~v{}~xy}x~~}~{z}|}}}{~y|}~|}~~|}z||}}}|~y}~zr||~}|x~|~~~x{~{~}~}x~~}~ys|~~{yxv~~||~}~utr}}|hu|tyw~t{{|~~~vr}w|Z{y{|~y}~}}yuyy|~|}x{x|w]xz}~~||hv}||}||xx}{yzz~|z~xu~v}|t|~zwz}~u|{~~xz}||}~uy}{qzx|}~}ykz{z}xy{|{wu{|w{~zd~|{~}}v~z~~}~||}}|{x||}}~s}}~y|q~ywxws~z|y|zz{z{{|y~z|}zz|}~}||{~~||~{||{}z~{w~}}w~{|~z~{}}{~~}}~~}}}}~|}z~|}|{~z}}z}z{z}~y{{y|~}~z}|}}}~~|~~}z~|}}|~|{~~}~z|~||~{{~}~{~{{z}}y~~~{~zzy|}~{~|z}{u|y}||~{~|}~}{{|}{}{|}~~~}}|}{}}|{|{~|~wz~}|x}x{{}y}||rx~~}|||y~|{~~~x|~|}z}}x{|}~}{~}{{~|}}{~z}~}{~yz}z|||}yx}{~z{}~x|zxz|~{t{~z}~{z{~}}}{~z~~~z|~|{{~}z~y}~~z~|~xx~~{{x}~|z~}~{~x~}|z|~~|{~zx~{~~}z{{y}}|~}{~{~x~}}z}~~|}w|}z}}~}x|~z~u~|~~~{~{}}}{}w}zxu|}{{}~|{yw{|}{x}x|z~}}{x~{{}~}{xz}~||{{}}~}y~y{}}|w~|z||z}~{z}{z}}~{}wz~|||x{}~}y}~||}||}|y{|w|{y~|u~~}zxw{~~~}~yz~|~}~|}}~}|w~zz~{}~}~}xt}}|}x~{{~y~}|~{~}}~z}}x{v}}}}}|z}||~~|{v~}w{}z~}y~~|}}~~}}~{~~|x~~z~{~}~|v|zzxxz|}}|}y}~|{}~}{~}|~zt}~w~w~{~|}~}~{w}~yv}wx~~|z}|}}{xxz|}}zx{~}x}{~{~~y{~{}}}{~|}}x{{|z{}z{}{~yz~~~|}~}~~}~}~||~~z~}~||z~}|~{~|z}~}zz{~}||}~z{}~z~y{~~|{}{z{}}}~}~~~z~{~w~}~}~z~yy}~|~t{z{~|}~{|}}}zyz}~{{xw|~}z~y|}~y~}}z{}{z~|y~|~~||~~x}~z||{||~|~y}|yy}~x|}~{~~}|~{zy{}~~z{z|}z|}{}z~}}~{~z}||}~{z{}~w}{}|x~|~~x~}~|zz}}~{{~~|{zz{{{}~}v|}~~{|~{}|{}x~}}}y|{zz}{~zz~}|~{~|y}y~w||v|~~|}}{~y}||}~~{}|}~~}}|}z~~~|~|}~|~~~}w~{|}y~}|}~~|~|~z~~y}}~|~{y{}~~~|}}y~{~xz|~yv~z|~}|~~|~~z~y{~|~}}y|}|~}~w}~z|~|zw~y{}|~}~}|}|{y}{}z|z{}|y~y}|~{~~w}|~{xz|||{}|{|~{|z~~tz}x}z|y}{~~v|~}|~}~}y~~z}|}z}}}~~}|{~}z{{|y}x~z~z{~x|}w~{z|z~{~|u|}|yzxz{|yyz~~|u}~x~z~|~{{~y}y|}}z~xz{}~~~}~~{|{{{~{|{~|}{z{~}~{}|}}}y}~|}}|}}}{}}||}{~}z~}xy|}{|}}|}}}}~|~}}~x|}z|{{z~~~}}}q|{}}~|}~~}}}||~z{}w{{~}~~~x}}}}~~}~~}||{y~}z{yy~{~{}~y~||{{|}}~}}|y||}{{~|z~|~x}}~}|}~~~~{{~}{}}zyu~{~wz~z~}~~~||{~|z}|{~}{uy~}xy~~}x|z}|}~~||{|}v~}z~z}~}|~~z|{~}|~~|z~~{}|}{}}~|}{x}}}z~}}z|~{z|xw}~||v}}|z}|y}{z{}|}}~~~zx}|{{|zy}~xx{|~|{|x|~}|~x|~}{z{|}x~~yz{}~{yy|||}|z~{~{~z}~~~~~|}w{{|~|{~z~~}}}~}~zzx}}|y|}v~|~|y|w~}~{~~}y|{t|{}{zv|~|}}{y~||||||~{}y}z}~}~y||}~y|~|}{yy{~}x|y}y~}y~~|}}xvz}|{}{|z{~|}{}}}}~~w~{||~~x~z|}{z}z|xx|zy~x}{~||{~~~~}|yv}z~~||z~~~}{z|~}~{{~~|~y{w~|}~~z|~z|||}x|||{}}{~~}y}}}~||{}}||~}~~zzz}}~||~|{~}}|y}{|{~}~~|~}}~~}}}|~v|}}||~}}|~}}{|}}~{|~u~}}}}~||~||t|~}~z|}~|}z}w}y}v~~|}y|~|}}}|}z|zz~x{}~}{||~{s~~}z}z|{|~||s~}yz|~|}}|~~~xv|~~{}}x}yz|~}{}{||z~~z~~~zy~|~~}~}~~xy{||~yzv||{z|||~~}}}~x~~|~y|z}|{t}{}yz~{|~|{||}y~~}}{}|{~~~}}~{y|{|~~~|}~~{z|v{y|~~|}|~}~{|~~|{}{}~|~|~y}|y}z{~|~|}~{{}~~x|}{~~~}~~{}}z}~~~z||}~}|y}|~}|{|w|{|~}}~}{z~~~wyz~w}~|}y}{~}|~y~~x|~}wz}~~~{z{|}|||~~~z~}zu~~}||{||x~y}~~{|z}|~~|z}{{}y|~~~zy{}|~{~}~~~~}}~~}{~}{~{|x~~|~|z~}{{~~|}}~~}~|{zzzy|~|{zy~y||yyuy|{x|~~{}{|z||}}}|y|{|z|~}}}yz|w}~~}z~z}}~~~~y}~y}x~~~}|y{}~~}|~z~~~}}~{|u}}z~~z~~{y~~}z|||{|~~~{~}}}wu~{}~~}}{{~||}~~|}~|~~}~}|}~}~z}|~}|~y~~}u}{}~{|~|x}~~z}}~z}~{}~{}|~z~vy}~}||~|{{~{{zx{~}~~{~}xz||{}}s|~|||y}}}~~}}}||}{|v~}~~{~z}t{z~|{|}~}|{~}~xux~|z{}}~~{}z~~}|z~y|~z}vz|}~zz}}{{{z~}y}~{~~}z~zz|~xw{x{y~~~}{{z}}w~~z|}}~w{{z~}}{}{|~~}~~v~}}x~y|}|}}}}{|~~|~|~{y}{~{{}~~}z~~~|}}z}zy|}~~~y|~{{~|~}|~~~~~y}~}zy}~{z|z~}|~z{~y|z|z~xz~w~|yyz~}{zy|y}|~z~y~|~|~w||}}u}}~{~{{|z~~z~zw}}|w}}~v~{}{}w}~z}zy~|x{|||w~{}z|~z|yz~~}{{y~y~{z{x}z}ww~}{{|{{~~{wy}~{~~~~~~{}~~}|~{}}}~~}}z{{}~}}~{}z}~}|{}|~~}x}~zz}}x}}{}}~~~~}{}|~x~~|}~x|{x}}}z~}}z}||~|zy~~~~v}~zz~|}~{}v|xz}~}wxy~|~z~z|x}}}~}~}}z}z}{|~~}zw}~}x~}~{}~~{~}{~}}~|~~|~~|x}z~yy{}z{|zx}~|~~z{z}~~|~~|}{~~~|z~x~|{{x~~}~}~|x~y~{|y|~zw~~}~~x~|}}|y}}~y~~{~{y}{y{}|{~}~w|~z|{y|}~{|z|}}||~z~x|}{}~x{||~}~|z}}y{wy{~~}~~}{}{}}}z~{}{~~~~{}~|w{|}~y{~{||z{~~~z{z~~z}|}||z}}{~x|~||}}v{}yz~~~}}~}|~{||}~|~~x{}~y|}}}{}~z~~}~}|{|~|}~~{{|~~x}}y|~x|y{~~}}||}~w~~{{z{~}~}}~{~zx||{{z|}}~~|~}|x|||{}~}|~t{|}~}|~~~|~z}}~{|}y|wz~}||~{|~~~}}x~}~~}w~|xz{~{}|~~}}|~|~~|}y~~|~~}~}vz~~y|{yz{~y{}{zzy~w{~}~~~xyz{~}{}{}~w~~|z||}z~yz~||~{|wv}~|{|}}{}zzxz}|~|x~|{{~|v~}~~~z~~~~~|}{~}}}x||y{|}~{z}|z~~}}}}}z~}}}|yz}~zz{z}{~~~rw~y{~|}|{~}vz|}~~}z~z}|{~}}|}~z|}{|~~{z~~|~~|~}}|{|~w}{}|~{}xy~{}|~|z}}x~~~~~x|}}{}~~{}}|w|yz|}{}z{}}}zz}~}}}z}y~~|~|t}{~{~}~~~{~}|z|~y~z}~{|z}~~~}}|}}}}~~~x}z}~|{{~~|~|z~|{}~||~{}~~}x~}~~{{{~~}~~~|~z}}}x{{y~~x~}|~y~|}~}~}{~|vw||~||s||}y}~}}|~|{}}~~{y{|}}}||yvy}{w|~}~}}}~y{}|}~|}z~}}~}}{y|z~|{~}~~~}|z{{}y~~}~w}}~z}xx}~~}~|}}|y~~|~~{}}||{{{}|||{}{}~~|yz~~~}y~x~}~z}|~~{|{~x|~~|~}~~zz{~}{{}~}|}|z{~}||}}y~~~{x||~}{|{y~{{yx~x~|~}y{}}~|z|~z{|{|~{|~{}~~~z}zx~}}}|~~}z~|~{||z~~~zz|}~~~|yz}}{}~{~{~z~~w}}}zz|~}}~~{y~~|z}x|ww}y}}||}|~||z|{|~~|zy~~|~|~~~~~~{v||~}|~|~~x~~||y~|x~{w|}|{z~~{~~|}~}v~{~~~vzu{~||~z}||~}}}{}~v{{z{~y{z~~}y|{~x|~}x~|{z}~|y~{}z|z}|~|{}~zv~y|x~~|zz~|{{~w|~{~~~yyv~|{|~~}|}{}}z~}~|yy{}||~{~{y~{z}}~}~~}}|~~}~{|{zy|w|x}|{~|{~{}~~}||zzy~{}u}~u~}|~}|z~~}}y{{~||{z~||}~~}{~}~~{}}~}||}xy~|~}~{}}}|~}~||y|{~}}z||}{~~~}~|{~y}y}{~}~}}}|}}~~z~~}{xx{y{~{y~~}z{~|~}~|{~~~~|w~|}~v~~x}y~zx||~~}{}y~z~z|}{}~~~~~~}|}~z{}{{~z||~|zz}}~}~|z{|~}}}~||~|~z{{}|~z}z~||}}}}|{~}~|~y}z{|}}x|z~}~|zyv|~}~z|z~{{w}|~~z|~{}~~z|{~||}||~}{~}{y}z|}~z~~z}}v{w{w||~~{|~~{z}z|{{}{~}|~}}{}w|}{~~~}~}~|s|~{|z}~}~x{}}|y|}~~y~z~}}z~|~~~{|p~}}}y}}{}}|~~||~|~|}||x{}|}{|~{~x}}~|~~}}}~{~~{y|x~}~vz}{xz}~~}||{x~||x}~|~}~}~}z}~}}~|zy~y~}{}}~|{~~||}~}~y}}~~|}|w~}~}|~|{~~|~{}~y~}zz{{yx|{}z||}~|~|}}}}~|w~~~}}{~}{~|}||}||~~~x|~}~}||||x{|~~||~}~~}{|~z~{~}}}}||}y}}~{z{~x||{~}~~~{~}{z{~{z}~v~~~|}~}~~}}~}}~~|}z|{||~|||}|}~}|z}~~y}~|~~}~}||||{}|~|z~~}~}z~~}z{z~{}}{~~}}~}~{~~|{wz|}}}~}~|yvy{}~~{{yy~v}{~z}zyy|w~|yw~|}~y~|~y|~||{y|}|}{{wty|~{~~zz|}{xt}}~xz}}~||~}yz}|{|}}~}x{||}}|~~~y~y}}}z}}yx{~}{~}|~x|}|}}z}~{{|~~}~yy{y|~~}~~}~}~}||yxv}|}}y~~~}~}z{}~x{}~~~~}|z~z}}z~~~{~~|z}z{}}y|}|~~|{{ywx}{z~~z}~~{~}}|}}~{|{|z~~}|~}~z|~w{}|~}~}}|}}|~z~y}}~z}}~}~}~||~{w|~~}|~|~~~y|{~~|~}}|{~|x~|~{y}}|{{z{}}~~{z}}}}~~~|}}}{~|~}|~|{}z}~}|}{{~~|x{~|{x{}~~~{zx}{|~}y~}{||z~{~{z~~}~~}{~z|~}|y~}z}|~{x~~}~x~}xzzx{~~z}}~}v|}~{~~~x|{w~|}|||}~y~z~}~z~||~{}}|yz{~~~}~}{{{z{|{~{~z|y|{z~~z~|~{|}|}|v|{x|x~x~}||~{w|~~}~y|{{{}tz~~z~{|zy{{}~|}~|}|~~y~z~~{|}}|zyyzz{|~}}}z}y~z|||{|||}{|}{|}|}~xz~}~~~w~z{~|}~~y|}}~~z~z~{}||~z~~|zw}s~}t}}}~~|~~x{{}|~~{zv~{||z~~}~|}~||~|{~~{~|~{z}~}z~~{}}}~~|}{}}~|{{{}}z~|y~z||~|}|~x~~}z~{}y}}~{{w|}{~v~{}}{{|z{{|}{|z}}zx~}{}}~x}}|~}||~{||{}|}~y}~}~~}~yz~z|}|~~|}v|}||{y}x|{z~}}|}|{~{~}|~~{{}}y}{xvz{xz|y{}}~|{|{|{|{{{|~~{{|z||{|~z|||||~}}~y~}|~}~}v}~}{~~x~y~y}w~z}}||}u~}~|~}{|}}~y~z{~{|y}z|~}||}z{}{z}~~}z{|~}z~~|~~|~|{{x}~}w}}~w{{~~|||}}z}}}{}~|~}z~}}z}x}~}{{{|~{{w}~{~}{}}|z}z~~{~z{}~zyz~}~~~|~z|~xy}~~~~}~|}~|z~y{{}}}}~}~z||{|y{}|}~zz~xy}~x~}|}}}{}|~y}{|~~}}|~w~~~~~~~~~{|{~|{{z~}{~~~}x~|z{|~}}}}~}~~~z~z{}~|}}}z~}~|}~|~}{|~|}~{}}}~|{~}~}~~||~zz~z~|~z~~}~y}~~w||}~{yt}z}~y||~{xzo~~|z~~~}z}~z{u|~}|x|~}v~xz~{~|u}}}~}~|r{y~{{x|y|{{~|y~z|~~}~{~}z}z~}x~~~|y{yx}y~{~}z~}u~z{z||y{~~z}|~}}}~}x~|~}~|}~zz~~|w{z~}{{|~}~zy~~{}~~~~|}~~x~~}}~}~}y|~{{~{}~}}{{z}}~~}|y|{{|z|~yw~x|yx~z|~}z}}}|z|}~{~{}z{~~{~|}|~~{}y~~}z}}}~|}~}}|{~}{{}~|}}z}|~{~zz~}{z}}z{|~}~||~|}~~}{}|y|}~x{}{{}u}||~~||y{z}|~|{~|z~~{w|~yzy||{~}~v~~}z}{}}xy}}~y{z}|}{y~{~|y}{~}}||~}{{~}~zy~w}zz~{||}~w~|~~~|z~}zz}}{zy|}v~~|~}zy}z}|}}wz}yy~~~u|}}}}yzyz}{{z}~}}~{~~~zxz{{|{wx~||}|||}}~||y~xw~r{|}|}~}~}|y{yz~}|}~w|~}~|{}y}z{yv}}~}|}z|~xv|y{|~~{||}z|{~|~~}v}y||~~z|{x|{}~z}|y~}|zzw{~}|{|~yx~xy~}}y~|}|~{|z{~{z~|}|{~~}{|{}}}}x{zy~x|{~}}y{~x|{vyz{~zxz~}}~~~}}{z~yx~~~{~~|~~y}{}}}|||~~}~|~z~|}|~z}|zyz~}{{{{~z{{}swz{~}~~}|~~{z~yz{y}}~z{x|}}}~{~{~~z~|z~{x{|z}y~~v~{z|wx~}v|~{x~}zyx||~z||y||u{~}|}~{z}|~|~~wy}}{y|}{}~~ww{~~z}}yyz~~}{x~~y{}{|||||{|yxt|y}}{|}z}{||~~}~}||~~~|~yzyy|}~y~|y}}{{z{{z}}x{}zz{~~}{~xxz{||{{y~xt}{y{~yz}~{~~~|w{v~||z|}}y~{{|{|}||{}z{|~|{{}|y|z{{|~z~~z}~|}}{z}}~y~~}{}~z}y|||}~~{}}|z~||~~~z~}}z~|y{{}z{}~|y}~~wuz}~{~}~z|~|~~}{y~{~{~}|{{xwu~}~}v{zy}~{zxy|zz||z}y~~~~}w}||||}v}~~~|z}x|wzw~~{|w}{|}w{{y}{u{~~}~~z}}}~}|ww}|~~|~y||yw~~~|~{{}}||v~~~}}~y~y~}~z{|~|~~~y||~~|z}|{{}z~~}~u|{y{}~|~z}y~~z~v~}{}~}~~}}{{|{~yz{z~}{}}~|~~}}}y~|{}y{x~~~~~}x}|}~yy{z~~z}|||{~}}{z}{}{~zu|{}}}||~}~~{~}}}~z~~}}z||x~~|~~{}xz~}}~|}{y~y|||}~}~~{|}wx~z~{}v||s|x}|}}|{|}z~z~{~||~|{{|~}|~||}|z}~{zz{~yx}}}|z~~y}zx|y|{|~}}}}{}{~y|{}y}z|y~|vz{{z|~~zx{~}|~~}}}~~|~y~{~~z{|}}z~|}|}{}y|{x~||||~|x~{~~{}y}~{|z}{~|zw|{}z~}z||zx|z~{zx}{}}~|{z|~{wt~~~xzy|y~~~}z|z|~zyz}}}{~{y}zv|x}~|~}|~~w}~z}vy~~y{||{~|y{}~x}}}ww|||yw{}~~~{{}}}z|~}}z{{y~}|~y}~}{}z|~|~~}~}||{x~|~}~}|y||}}~}{~~}|}~}~y}z}{}{|w~}z}~{}~y~|{~v~~|y||{~~yy|~~}~{y|}}{}~z|z{z|}~|}z|}{z{~~}{|}{{~|{z~}|}}}}~{y|zyz}x~z~|||z~|{~|{{|z|~|~~|~}}{{}}}z~u||{}~|~|{|z~~|~~~{~}~~}}||~}~~z|~}{||}~~~~~~~}{{y}}}|y}~xzz{~}||}y}z}}y~w{zz{{yx~|~|}~|{}~|||z~z}{x}}~~~u~~|~}zv~~z|~}|x|}}||{|}|}{z}~|x}~}{|{|~|zzy}||||z}~~x~}|{~}}~||~}~}~}}~|z{}w~~|}x|}~|}z}yy|}~|x{}y|}}z}|||z{{|~}{|y}{~}z}}}}x}|}}z}~~||{}}{zz|}~~||x{}|~~{{|}~z|}}yz|}z|||}{|xw}{{{~~z|y~y}~}~~|}x|z{~|}|~~~w}|y|z|z}}}|~z|}{|}~||}~|}|qtzx}||x}|||~{{~~z}~{xy~y|~|g{y~~~~xzv}{|{||}t|{~|z}~y|{zxzj}~x}}~}{x}z}y|}~~z|x~z}~z~~~|{z}z{||}|~}~{}~v}~||~~~~|{~~x~z~}|v~y|~~z}~}~|~}}{z~}}}}~||~w||}~}{x~{||{}|}{~{}{~~~~{|z}}|}}|{}x}z|yx}~xyu}xz~|~}x|~|~}{x|}}|v}~{z~~~}}z|z|{~~}}~{}x|~w{{~}{{{|z}u}z}~z|~z{~z~~y~~~~~~}x}{|zz|y}}{{xsz}}z|{~~x~|z}x|}~yyy}x|~zzx}}}yz|~xx~~}w}~}~}}|z{}{x~}{}z~|y{|}~{~}zy~}}|~{}}~~}}y~}}~}{z~}~}|~}~~w~}z~|}zw{~~~|}~}~}}w{y}}~|~}z|~|~|z|}{u|~}}{|~~|}{~{x~}}~|}}|~}zw}z|yz|y|wx~~{~|~z~~}{|v}~|~yz~~|{z|xv}|}}y{}~~~~}~x~~wz}~~}}~{}~|z|~}~~zzy|{{y|w}y~{{|~z}x}t~}~s}x~~}~z}zzz|z~{{v|{|z{{~~~}}{}|~|zw}|}}y{~~}}|~z{z}~y~}~~x|yz}|x{yz|{~~~y~~}~{y~}{~{}~|~~|~}{~{{}}}{{}yz{z~}}}|}~|~||y|||}{|xy~z}~{{~{z}z~{z}}xu}w~}~|xv~|{~w~}ux|}{|~~y~}~}~{}~}|~{x||{y||z}{}v|||}}~z|}{|{~~{|~|}yxw{{yzv}~{y~}~|{~|zwz}|vzxz~|}||xz}{~y}~{x~|}~z{~~||~~}}~}~~}|~|||||}~|}}}{}~y~}|}|~}~{}{~~}y~~|}|~~~~{|~~|}|}|z}~}x}|{{~~~y}z{~w~~|}zz~{|~z|}~|~{}~|~}}|~~z|}~~{}}}~~~}~~|~y|~zx~~y~}~~|}}{y|}~~}x{}w{xxz{~z}{zu|z~|~|~}{|}}z~~{x{x|x{{}}x~~}z{~w|{~w~{}z|{|zv{~}|~~}~}|~|}|}}|yy~{~~}{y}x{z}~z|{}}}y~}~~~~tzu}y~~|~}~~x{|~~}{~||z}~{|}~x~~w{u|{~{|{~{|{y}z|}|z|{}z}v|~z}yw{{y}}~|~|y~}}{~z}{~|{{}~s~}~}{}{yz}}|yx~}}|}x~~{zy}{|~}~|~|{|{~|}|~}}{|zw}~~{~|zz|{z~}y}~}~}~{zx~z}~~}~|}~~~}}~||~}|~x}~}}}{|}|~~{~zw~{|~z}}~~}}|}{~~|{}|~}|}|z}~w}{~}{z}}}~|{{}}}}{{}x|z~|~}}{y~~~y~~y|z|}~}{~}x}{~y}|{z~|z~}z~}~{|~|}~{}~y}|xw}}}~~|x|~x}}~~~|{{v~~~|yz{~~zyy~~}|~{~|{z}|{|{~|}~~~|{~|{}}}}}}}}~}||}}~{}~}u|~|z}|{}~{|}~~|~~}}~~{}|~|}{|~~|}~~{}{{~~~|}}}{z}y~}~~z{z{~|}}}z|}~}{|}}}~~~}}z~y~|t}~~}~{}{}|~|}|~~z~~}}{{~~~{|{z~z~~~z|}~~{}~}~~{~~}|~{~z~~}}}~|}~~x{~}}~}|}~}{}z~~z}|}{~}|{~{{|}}z}z{|}|||y}}~}}}}z|z~}zzz{~}|}~~}|{yyx~zz{}{~z|~{}z~}~}z||z|}{~~}{|}zw}}{}~{}}}{~zw|||~~||}y~~}{|{}}~|{x}|}{}|{y|~{z|yy~~y}~{z|}}|{|~}{|}}~{}v}}{{~}~z~}y~~{~}~~~|~z||z}~}~}|y~~}|}~y}{~}~~~~{~}~|~y~}~~~{~}|{}~~}vz}~z|z{~~||~{|~z~~~~|~z~}|~~~{}}z}|~{~{}{|~}~}}{~}~{z~y}~{{|{}~~~~~z~y{~x{x}}~|~~{||}}}}~||}y~}v|}z}||||z~~|}x~{{||}|}}}||}|~~~|~{~~~z|z}{y|x{~~}~zw}}|}{}}|z{{~{|xy~y}y{yy}|~r~zy~~x|}{}|~z}|~~~z~|x{~~|~x|zu~|~z{t{~~y}|~}}{|z}yx}{}}}|~}z|{{|{}}{|z~z~|y~}z~}}}~|}}z}{}~{uz~~|~~|}}}~~~|~~|}~yvz{~z}{}z}~}{~|{v}y}~}~|xxzx~~~z{}}~}xz~z}{}|~{~y~|x|~~~|~}}z{}~z~|~{~}{y}||zyz|}}z}zx}x}{|y|}}z}zw~v~{v~|{{|yw||~}}~z{{|u{z{}x~~|}y~{~~~{~~~yy{}|{|w~{|}xx}~~~w}wvzx~~~}~{}~|~}{~y~}|~}}}~{|z|}~w~xzzy~|}}z~~|w}||}||~{x~|~~}~~~||z|||z}~}|yy~}|y}zv~}~}||}~z~}|~~}{}z~x~|~{u~w~}}}}~z}}y}}}}{|z}~y{~{~}~zz{|y|~{~}~|y}zy~~xwz|x}}}}|{|}~}~~|zv}yy}~~y}~x|zx}r}{{}~~z~|}y{}}zy~~~{|~~{{|~|~xz|y||~}~~~}}}z{{|}y{yx|}}}~~}|zz}{zyz}zvz~|z{{}}|{{~}y~}|{~zy}z}}zw|{~~}~~z|x~|~~}|}|}|xy{~}}|}~|{|||}}x}yz||~u{{~x~}}|{}||yz~|zzz~{{|}}{}|}}|{y}~~~|wzz~{~|~}~|~~|}{yzx~yy|}y}~}|~y{{}{||}|z~||{}}x|{{~||}~}~{|}{}~~{{{~~}}~x~|z~}}|~x~xv|~}w~~z}zs|}w{~}|w}|z|z}}zy~y|}zyz|}~z{{y}}|x~y~zy~}}z~~}~|z~~|yz~~~~|{~|~{~}wz|zx{|uz{|y}}}~y}}}~z}~y}~~|{}~~|z}}z}}~|{{}~|x}|{}}{{||{z{~z}}y~||{|}x{~}|}|z|~w|}}~|}|}~~}}y{xz}z{}|}{|~}~}~y{xz}|z|~}|vxyy{|~y~}{x~~{~~w~{|}|y}{~}{x~|y~z|zy~xu}|{z}|z|~}~|}~{~|{z~}~}y}wxy}~y~|~z{z}{~~|z{{~z~x{y{}{~y~~}~~|~}x}}z|y}{~~~|~z}}z}|{~x~z~}|}|wy|~}{}|yz|z~r}|y~{zz}{~{~{~~~|~x}~~}|~~|}~}~}}|}}zx~{|~}|zx}{x|~y~z~}~}~~{||~~{}~~~x|~{}}m}~{~|{y|}y|~~~}}|}}||}}|~~~|~}wz}}|{|{}}|}|}~{z~vy~~{t~~}~}~}~||}~~|~~}{~z~x||~||v~}xy~}}~{~}~~w{{{}|}}{zzw~}z|}}|{||}}}|{{|z~{~~||z|~}}zz{|{}~}}}{~q|~~y~~~{x||z~~{|}{}z}~|}{|x|~}~{|~}}yx|}}}v~}~|~xz|~|{{~|}}~}~~~~}}~}~}}zz~}{w|||~~z}}}~~|}z~w}{|{{wy{~~~}}|}{~y|}}y~{}~~|z~}|~|~{|}zx~~x~}}~~~~||zzz}z|y~}}~y|}~}|~u}{|}}~~~}z|}~}~~{|z}y}|~}}}{~~~y|y|}z}xy{w}{|~}{}~}z~}~|~~{~zz|~|{||~zz|~}}~}{}||z}{}w}~~|~}z}{~~|}z}~~~~x|z{~z~}|~}}{zwz|~}|~~~{}{t}z}~~|~zz}}~}}~~~{}}{|z~}z|}z}~{{|~~~z|~}~~z~z~|{x{}y||{z}~{}}~|~}~|~zz}|}z~|~}}z}}v~~~}~~|~~z||z{}{{{{~}{}z}{{{~~z|~||}~||z~|~}wx{}|}~~~y{}{}z~|{}}}{||}|}~}x}~~|y~}~~~{{|y}}~|}}{~}|z~|zzx}~~~z{}t}z}}z~~w{{|z{~}|~y{}}}~|{~{w||~{|~u{uy}|}{~~{{z{}~tx~x}x}}}w{|{{|||{~}}{z}|{~~~z{~}w~~{}}|{{~}}|~}zz}}}~~~{}}|xwz~~}~}~~~w~}}~}~{}{|~}~||~z}y{||~~}}{~~y~}~}}~~|}|}|y|~|||zz{}y~zz~z}||z~|~}}}~|~|{}x}~{}}~z}~}|}|}z}|~}y}~|~}{}}{||~|}|~wz~x{~~{zz~{~~}{}{~|y~}~}~}|~x|u}|z~zz{}~}~}}}y}}~|~}||~~}~y~}}z~~~~|}}~{|||z}~~z~|{{}}|{~}{u{}~|~}|~y|z~|}}~y{}x||}||{|y~|zz|}~|{~~}w~}{{~~~|}|}~|}~|{}~{x}~~~~}~w~}}|x~z~~~~~|}}}~yy~{}|}}{{|~{|~z~~}~~|z}}~{}z~~||}~z}}}~~~|~|z|}|v{~~{~z}~w}~~y}}}~{{~}}|||||y~~||~{~~~~}|}~}}}|}~}{x}~~~}z{~~{}x~}z|y~x}~~yz{~|x~x{}~|}|~~|~}~{|z~||~z~w{~~|~~}||~}~|~}}~}||~{{~}|||}x}}{~}z~}}|~}{{}zw|}{{~{}y{y~~~z}x~z~z~~{}~}{yz}x}}{z~}}y|y}~|z~v}|v}x~}}}~~~wz~|y~~}z~~|}u~~~{|}xzzz|{~|}~~}~}}}}z~|~}y~}{}~y|{z{~}|~x~}~x{{|}}vy|y|~}|~~|{~}y~y~~~~~{y|uw{||~}|~{~~}y{}~||||x}|xz{~|~}{{~~}}}~~{|z~y}}{}zy}~z~z~y}~~~}}~~w|~}~|~z}y|}}|}~~}}~~~~~}|~~}}{~~~~}~~{{z|~}}~~}~~~}||y{~}}{~|~~|z}}~}~z~}||}|zv~x|{z{~||{~|~z~~yy{}|~wz}{|z|y}}||{}}{{}||}~}x~~~z}~{~~~w|~|~||~}~~zzx|~z|{yz|}{|~w~y||}}}~}|y~|~}y}x}{{}{}{~|{~}~~~}{~{x}}~y}zy~{~~~~x{{~|~}~|~|zy}}~{~|}{|zz}}~z}x|{|{}~|~|y~~}{|~z~~{}{z}y~t~|y}~~z}~}|}xy~~||y{~z~~~y|~r{~~|~{}yv~{}v}||z}|~}|}z{}~~~||}~{z~}~}}~{{}y|{~~yz}zz}||z|{y}~~~|{vv~}~z|}|||~zr{}||~}{~w~||~~y}~z{zzw|}~||~|||yx||{y}z~|{~}}y{~{~~}}}~}||zu{x~{}{z~~{}}|x}}y|{{|z{v}|{w~{|||}}z~~}}|~|~z|}~}{}||~|{{|~~}~|~{|}||zz|}}x~~|~~}~~~|~~}~~~zy{}}{}~~}~}}|}~{|{}{~{y}}~|}}}|}~~}|~}}z|z|~{z~|}~|~~~z~~}}~}~u{~|~z~}|}}{|~~}y{|||{|~|~~}|~~~x{|~}yx~z}}}|~}~|}}~|~~xz~z~w|~~||}~~~xy~|{z~}|zy|||~~y||~{~z}}z}|~{z}|{~}}}}~~z{|{}~~|}~~zz}~|~|~|{x~y|{}}~}{zz~z|~{~|}|~~}~~z}}~|}|~~||}~~{|}~y~}|}~~{{}{}}}|~}z~||w~zz}{{~{}yw{{~~}~~~{z}z}}|}y}~~~|||~~~{|}wzx~|}~~}~}}}wz}{{x}wz~~z|{|{{|}}z{}x{|~{||~~}|||{|}|}}|~{}}{}|}z{{}}~z|~~{~||{}}|}}~z|||}u{~~y|y}~~y||{z~z|~||{}z~~}z~~|{|~||~~~{{}}~~}x~~}~z}}~z~{}}~{w|}|}~~{}zy~}{}~}}y~z}~y~|}{|||}||}z{{}|{~~|}y{{~z{}y~}|~~||z}}y|~z~|}}{{|}|~}}~~~y|xw{x|~{~~~{y|y||~}z{{{||{}xx|}~{~~{}~~~}~{r||}w|~}{{~xz}}||~~y|}{|{}}~~~z~}~|{~~z~}~{~}}}{}}}}y~|{~{~}|}y~w{{~~}{~|z}yy~x||yx~~}}z{}}{y}}}}{|z{~v~}{u~}{}~z{~}~|y~~z}}zy||}}{|{|{|~|}{{zy~~zzy~}}~}}{|xx||{}z{w~z~~|}|~|}}{~|}~z~{w~|y{~|~zu|{y}|~v}}~}y}{}}{~~~|}|~|{~xx}}}x||}~~}~}}~z{xz~|xyw{}{~{~|s{{~{|ywy}~{|||~}}{}}{}~{||{{}{|}||z}~}zt|x}{~yzx{~|}{|{}y~|~|{~y|~~~}|~}w}x~x{{zx{|}{}{~}}|~|{x~~zz|}|y~{{}|~{}z~|}~~z}|}||||~}~}|z~}y}~|}~|z{{}}}|~}~y}}z}~{~{y~~~~|~xx~|~}{~|~~}~z|{|~y}}z}|{~~|~~x}|}~~}~z~~~~}}~|~~|~z~}~~~y|}|~~~~}z|~~~|}~u}|~}}}|{w}{{~|w~}{}}y~~|}z~{~}x|}~}~~w|{z|y~z}z|yz||~y|{|~~}~}zzwsz}}x~}}~{y}|x{zw{z~~}|}x|y}yzw||xz}|}{x}y|~x~{|}~}{~}wz~y{}x~{z}z~}}z~~}|y||{~~y|}}}~~}}}}{|}x}y~}~|}|}y|~~||{{x||}~x|yyz}v~|~w~~~y~~~}}~~s~r{{x}{z|~}|y|x}}}||~zz~w~}~wz{}~~w{|{}~z~||}y}y{|{~|}~{}zz~~w~{|~z}|~{~}|zz|~}~~}}~{~|~|}}y{|}|}~z|~||{|~z}}~~}|}}~{|~||~}|~~~x~z}||{~{z{|w}{}}~{}}}|{~~}}}}}~|}~~~{~{}||y|{}{|}{~}~}}}|yu~}~~|y}}~~{|}}~|||~zz}~~~{|||~y}vy{{{z}z{}{{x|xz~}}y|~~||~{|{y~{x|{~}~}}|{~}}~~}~~}w|}{~~|~{y~}|~||}}zz{zx~}~y{~y}~zzz|{}}~}}{~}z~~{{~{~|~w~|}}zz|z{}x}}~{~}|w~}}~z}|~w{x~|~{~~{~~|}zw|{~{~}x}}~~~}{~~~~{||~z}~~|}}|{|}~~~~~|}}|{|}|{zw|z~}zz|~~}~}~|}~}~}~~szy~wz}||{~}e|v|||{~tzxu~x|yy|~z~~yn~}y{y{}}xqy{~{w~{|{~uy{vz~~x}~|~{h~{~~~||~t~{~~t~z}}}|z}{}~~xz{~||}~~~z}z~||}~}}}}|}|x~z|{}}|}}~~}~y{~~~}z|~}z~}|z}||z}}~}}|~}~~}~~|{~~{}{|||~z~~{}}y{}~{w~~{{}}~|{z~~}v}{~~u{~|z~{|zz}~zs}}}|zz}z~|y}z}z~}z~|}xw|s~}y~}~|zlyxv}~}xv}~~yz|yx~}~~v|z{~}z}zy~y{~|~|w~}~}~~|~~~~}~v|zi}|}~~x|}{z{{|v~}~w}yz}|~~w}{x|}wu}z|}wz||~{z{}u}sy~uny}}x~{y~~}}~~z}wv||}}~~{y|z~z{}~|~z}{|~}x~~x|z}~~{~~{w}~~y~|~z}}~}~|~~~~}~|~{z~{~}~~~~}}{~||}~~~}}}|z}~}~zx~~~~|~~{~}~~}}}z~~~}{~}|}w|zz||}}|wy|x||xyz~|}~|~}~}{zz}{}t|z||~}{|yz{}{z~||~{yxxv}}}z{}{|}|~}}}}||z~~~w{}}}}y{}y~{{{}z{~~}|~}y{~}~~{||zz~{y~|y~{{|y{|p~}~||~}}}~}z}x}wzz~{{~}|||v~|}}{y~~|{~~~|y|~|}}}{~{~~}{x~}~|wv|{z}{|{}zz~~~}|y~}|{~~{t||~{}zyz{{~}{z{~~||}||~z}{~~~}~~~|~|~~~}z|y}{}y}w|}~||z}yx|~}~}|~~~}~~}~zz}{~}z~{x|~}}}||~~wz||~z}{||x~}}|}~{~~~{~{~~}~{~~~{|}z}z~x~|}|w{}{}~{}}}|~||~~}|z{~{}|~~~z{z{}{}}~}~}~y~y}}{}{{}{}|{}~}~|~{z|z~z~}|~~~z|~}~}|{|}yz}||y~|x|z}|~~}}~~y|}~~|x{xy|}{~}z~}}}~|~|~|~~||{~y~~~}|}{}~yz}~~~}~~z~}~~}{~|}z|w}~~}~~~{{~}~||z~{}|~~~{|y}|~~~|~|~}|~}}|~}}~}{}yu{}z|z{{~z{|{|}}|}}~~~}~{y~{zu|z{~}~~~y||~z~}|~z}~~x{{zzzrz}|wz|xy{|{zzyu{v{z}}}y~z{}}~||{}{|z~{~}|~{~~{~{{|}}~}||~~~{}~{~|~z||~}|~y{{}}~{}}~}zy~}|~}yx~{}z~vw{y~|{~{~}}~}y~~|}~{x}v|w|~{}~|x}~|}}|u}|}{}{z}}{||}}~{|}~}|{}~||~}{z}y}}~|||{{}z{}}~~{~||{}z~}~~{~{|{~z|}{z~~}~~~xz{|~~{{}~{||~~|w}~y~y~|w}~~|}|~~~}}}}}~|~~|z{|}~~z~}}z~y|{z}{~|}~}{z{~}}|}}~|~~}~}}}~y~x||{y~}|{}~~|~|{{~}~|~z{||v~x}}z|}~~}~}}~~~~~{z~~~~~}~}|x}~{y~~}~z{~~~~~x~{y|{~|}}~}}~}zx}}z|}~~z~x}}~|yv|~z}~}~{|~~|w}|~}~||}}|~{}}|~|zz~|{|~y~~y~~~|~~~}~{~{~|z|z}||~{{xzxy~~y}}~}y|~~~~|{~~z~}|w|y~~v|}~}~|}~{{{z}{}{~yy}~}~}z~|{||}z~}}y{~||x|}}~}{{}~ww~~~z{{x~z|y|||y{~~~}~~|}~|~|~y}~}~}|~|{|}|~{y}}~~}}w}||~z|~zy{{z}{}{{{}x~}}}{x~~}|}s}~|}zx{|y{}}wxy~z~~~~~{{{}{||zx}~{~z}xyv|z|}|}||~|~}~~|}{~~|}~~}~v||{x|x~}zy|||~y~|{~~z|}vzz{|y~~z|}z{}x{y|}|~}}~~|z|~w||}}{|z|}{~}y~~}~~~~|{xz}~{}z}{{~~z|{{{}~x{}{~||~xz}~~x~|}|~{~~y~{|{}{~}x}~y}y||~~}|~|~}}}~||x~~{z~|||{|z}z~~|~~~~z|zx~}~~|wy|y~~||x~z|~~y{~}z}}y~~~}}}~{x{}}~zjs|~y{}{||~}u{{{vz||}|w~wz{{~}~~uty}|}}|z{|w{}}r}}}{|}~}z{}{w|~|~~~|~{{~~}w|{~{}}}~yv~}|}|{~z~}z|~w}|~~{x|}{|||{}}y|}|}}}}z}x}}{}u~~~{}}{z{~~y~|}zy|z~zz|{~}z|~}~yz}~|}~}y}~{~{~~{{w|~{|~y~~{{y~w||zz~z~|}~~}||~|~~}}}~w~{}z}~x{xwz~w~}~{~~yy{~y{}~~z}}z~~{~}{~|y}z|~y~}|w{y~|{}{y{~{}||~}}~}}~~|y{~{~~~}}~y~{zz~|}||~|}z~{}|~~{}}|{}z~}|{~|}|~y}}~}~}|w{}{z{}|~p|~||~~{~|}~x~|{{~x|~{}}|~{y|~~y~|~{{}w~|}~}~{~|x}}|}z~{}~~}|}~}|}|~{}~}{|}}{}{}}~{{x}||z||}}~}vzy}y~{|{~z}||~~|{}~~{~|{~~~w~v~~~{}~{}~~|y}~|~}{z{~}}~}wy{|~|||{{~|~z}{~{{~z}z}{w~}~~z|y|z~}}|}{~}}{{}z~v~{}{}zzz{~~}~|}y||~~y}|~~}~||}}|}}~vy~y|||~y~}{}~|xy|~~~{}~~|}}~|}|z|~~{~~}}~y}zy}z}x}z~}y|~}{~}~yw|v~w{}w||z{}}~}|~{~}}}~~}~~|~~{|~|}{x}~~xzy|}|~}{|}}~}z~|~{|~|~}z|}}||~}~|zx}~|~~{}{~~~|~|~}x||y|{}y~|~|}}{~z~~{}}|{y{~~}~~||zzzx|~x~~}~~}y}|}z~~}z~~}}y~}}}|~}~|}}~~}}{}~}}z|}~z~~y|y}~~y~zz}~{|~~z~~{{|~|~~z~|}{{}}x{~{~v{}{xx|{zz||~}u~{}{}~}}y{z{~~y~zy{{v~|{}~}~vxz|~~~~}|}~}|}z{~|z~~{{|~}}}|vy{~x~{}{z|{|~~|~~z}}}x~|{}~{xzv{tz~|x|{~}{{y~}|~|y}}~}x~~}~{~|yx~|~~zww|||{{w~~~~}~~{~~~||y{z~|~~xy~{{~~{{w{x}~}w~{|x|}{{|~~|~}v~{|y|~{{}{~{y~}{y}y}x||~}~xz}z|~~{}{~}}{}}}||}~}}~~z|}~z}|z{}ywz}~~zz}~{|}{||~}x}|x~~{~}~~y~|}zs|~~|{~|}}~z}|~}~yzx}~~|~}z|~~y}~~}~~~y|~zz~~y~z{}~z}v~x}|y~{z}~}}~z~z~}z|z||~~z~~|}y|zz~~{}}~}}z~z|}{~x~z~|~}|}~{z~z|}|y}{{y~|~|{}~|z~}}}{y||~~~~{|{}|}}~}|}yy~{}z~}|}|z~~|~yy{}z{z|z}xyz|y}|~|wx~yy}y}{{~{zzy|~}~~~|v~|x|~}~}~{{~x~{|}y{|~}z|~zy~}~{yz{|~~v{}}}}{}}|}}~}~~}z~z}|}}}|}~~||~{{|}|~}y}zy|~}}}~w~zz|~~|w~}|}~{}~~~zx~{~~|yz~z~}}~~|{y~}~~ys||~|~|{{w||~||{z{{}{~z~~~}|{}|}y}}y~}~|~y~}}x||y|yx~y~}|~~}~}~~{}v~~{zz|w}|}|w}~}~|~|~y}w||z}|~}}|xz{}~~z||y~}~~zz~}~}}x}y}x~}yz~}zx~}~~{|~~|~|}t{w{||{{z|~y~|~~{{}}{|}zy{{~}~{~u{||zz}|{}x{}|y}wz{~z}~|}}yy||}|{{{}~|{{~|{yy|~|}{}z}}}{|~~|~~~}{z{~{}}}}z}|}{}{z}}|{~~}||}~~}z}z}}~|y||~|}}|z{{~}~{~}}~~|z{z~}~}~~|~z|~~~|zy}}}z}{~{}z|~||z}|{~~{||~z~{~~~{}}~}x}|~w~|{z~yz}~}~z~|~}|~~z{|}x|}~}{{||x{}z~{|~|~||}{x|||~}{}}{~}{}{~~~y}~w~|~~|{~~~~~}}u~}~{~{~x|}~}~~~}~{||~|u}|~}|~}|}}z|~yw{}|~~{~yzz|{~{z|rw{{u~||~z}v}wzxywt~~z{yzz}~{}{~xp}~{}{zu|}{{us~z}~{|~~}~z}}~z||v|w}{|ux|~yz}}}~rxu~~}|u}}~tys|vx~||z~{z~~{x}{w~|||y~~z~{y~{y{{|~{~~~|}}~|~~}}~~{~~~{~}{z{~y}z|}y~}~|~~||||~~|v{}~~}|xy}y|}~z}~y~z}}|~|{{zx~~~~|y}yz{|}{}~~~|~~|~y~}{t~wzww~z~}|{~~~yz~z|}t~{~v{{}z~~{||zwt~|||~xw~{|~||~y}~z~{~~|}}~~~z{u~}}wv~}}}}x~~}z}{}z~{~}z~vwx{z~}z~}}{}~{~z|||~|}~z|}~~}~~~}}~~~|~~~x}~{|{~}}z|~~~z~}~}~y}y{}zzz}|{v~|{|z{}|}~|{}|w~~z}~~}}}zz~~~|~}{{|{}~{~|||y|t{~z~w~uv{x~{~z|{~|y}z{~|~w|}}}z}~{}~x}|z||vzz}~v~}|z{}}|q~zy}{}{|{~y~m}|zy}~zw}z{}{||~|~}x}x}~y|{{y~~~{z~{{~|z~|yz||w|{utyz{w~y}}z||wzw||}{}|~y{yz}yz}x}|}y{z{~vu{~~|zx~~y||z|}}~}~z~}}x{v{y~~z}~~z|x~~~~{z~|}}~~{~{|{||}~}|{|}z~~|z}|x~~~~}zzx~y}y}}~~~}~||||{~}x}}y~}|x~~}|{{|~|~{|~x|~{w}|{|~~{~yxz~{~~~|{{|{y}}{~z{~}}||}}|}~{|}}x{z~}x|}|}}~z}{|}}y{}}}~~{~zz}|y}w~}|~z}{y}}{~~}z~{{u~{}z~|~~~}z{||y||}~~~x}||}}{}||}|~~~~~{}|{{{~{~~}~~~zyz{yy~w~v|z}~|z{~{y~x~}}~|{}~~~z}z{~~}||~}v~{||~{{|~}|||~~x~~}~~{}}|~zx}~||~~{~z|{~||~~|~~z~}~{|~~|}||yyx~~~|y}}w|x~y~}|z{}~y}~z{{~x}~{~~w~}}~}}~|y~}~}}~~~|~{z~zzx{~~~z}|}~|}~~}{~}}~{{~~z{|{}~|z~~{{~|}~}z{~{z|zw}~~~yx}}~|~|}~|{}~zx}}zz|{~|}}|~z}~~}{|y}~{~x~zz|v{~}}}~z}~~~{z{|v|}}|zy{z}|~}~}y}~u~yx~{}~{}v~{z~}zw}}}}w}y}}x~~{z{|zyx|~|{~~|~}}~~yz~xz}||z~{|~|zv}}y{z||}}x}|||||{}wz}~z}}}yy{|}z}|~z~}}|y}zy||~~||z~}{}~}|y|{vz|}|{||~~v}}z|}{}|{{z|zy}}{{x~}~}|{}~{{|yz}~z{zzx~u{~|{~~~~{|~~{z~}xxz~~|}|~~}~|~~|~w~}}s}w~~}}~~}~}{|{{|}~{}~|~~z}{|y~~~}z|{|{|~~~}{|z~~zz~~~y|}|x{~z|~|~~x}}~||y~}|{zy}{xw}|z~{}y~zzx}~y{w}||{{{|z}x~}}|z|~|}{}{}xq{|~|w{}z}zz{}}~|{|~x}}}|v{}~||~p}~x}|y~|y|}~y~{{~t}~x{~}{}tz|{~yw}~{|{~|~|zz}~|~~~~~{~{|~x|}}{{{xz~~}~w}|y{xu~}xz|z|z}~}~~y|z{{~{~|~z~}z}x~}w~~~}}~~~{}~~|}~}~{|~{~{r~|{}~y{|z|||x}z}{~w~~~|~{~|~z~~z}{}~ttz~}~z}}|~||~~}z{{x~z~}}{~}~y~z}}}~|}~}~|~|}{|}z~~}{}}}}{}~{}w}{||{~}|{||~z~{~}zz~x|}|~~~~~~~~{|}~|z|~}~x{}|}v~~{~x|~||}}}~~yz||}{|{z|{|}{}{|~y|v}~~}|}|{|{~~~|~}}~||x~{|z~{~}w~~~yz}z}~|}|{z~y~wy{{~}x{|yz~}{z~~~}}~~}z{~x{~~~{~}}}||~w~|}~}{{y~}~}~z~yz{|xw~~{~|~~xz||x~}|}|~}z}}~}{z{~~zz~}|~}}{||~~|~}~}y|||~{z}}}|}}~{}{}|}~}~y|}x|}}{~{}~~~~}~~~|{~|{|~|}z}~~}|~}{~{~~}~}~}}~~{z~z~|}~}y{|}|~~~{z~~|~}}~~z{z|}~{{z~|y~~}~~~}}|}~||~}~~}~|~y~}~y~||~~||~~~}}~~{|{z|}|}x||~~z}|}{}~}|~|{~{~~~~z~~|}{y~~~~~}}~y~{{{{||{~{{z|~}}w}{{|}z}|z{~~{|~}zy~{|~~{~y~~}|~xwzz{~|z{|}{}~~~~{}|~~{wzw|y}|~|}}w~~|w}|y~{~~z{||{||~~~}|{~~|}~|}~z{}~||y~|~~}}|~|~||wxt}y}}|x}}y~|z}~~|z~{}x~|s~~~~|{|~~|z}y|~~x~~~}{{}z{|||}~{~|~~~{~~{~~|}{~|}~{yz~}w~s{~}}zy{~~~~y~z~w~~xzx|u||y~u|~}|~~|}v~v}{x}{}{~~|}}}{x~z|}}~v~~z}|~~|~y~~}~}~~~z}}~}zy}}}{}}~~~}}~~y~~~}|z~{{|~v{}{~}w~|~{~{~~~}}~}{{yz~}~{~{~||||~~z~|x}{}}|z|~{~z|{}~}z~{~~|v{}w{~}}{|w}{~||{z|~}|~wwz{}|v}y||}|||~|~~~~||y~y{|}||zw{zx}{{||y~y}}w}z}u~|zy}|~|w}y~{}|z|~}~~{~}{~|||||~}~}}w}z||zz}}}z~{~|~|}z{y}z|{~{}{}~~}{|||~~}~y|~z{||}|}~~zx|}y}}x{}}~|~~|y}|~z|}}{{~~|{~}~{~w{~zyy|||~|||}}|x}}|}|{~~}~~}z|}}|}{~~{~}}~w}|yyz|}x~{|}s~u}z}w}{{{{~|{y~z~y~{}|~{w~~zyvy}~y~||~||x|~~~{~~zz{}~}|}}}|}z|||~}~|{{}z|}|~{~|~{x}|{}~{~~~~z~}}}{~~z|~{}}}}x}z~z||~z|y}z{{|}yz|~z~~|~}{~~|~|yy{}}}~~{}zz}~|~z|}}}}~~}~}z}~}~}~z{}{}{~~~{}}}z~}~}~{~}y|{{~zzxw}}y~{~|~}{~x|z~zsyyz{~~}|}}}{|}|~~xx{}yw}}yy~~~~{|}~|{{{{z|y}}z~{~x~x|~z|}}}}z~}|}}|z}~~~}~z~}~~~{}~x}~y~xy}~~|{}{|}~~}~~}|yw~~~zz~~~}z|z~|{yv~||}{}}{}x~}z|~y}}z~w{}|}{x||}z~~||~}}z~zy{xzvzy|~||y{}}y{}~~~~~~y~~~~z}}z~|svz||~x~~z}|{~|x|~|~{{~||xy|}y}~zu~~z}}zz}}{{x}~x}}~~~{~|z}v}z|}~y}y{~z|~s||u~~z~}zz{z}xz~|~||}x}|~y}zu{~{}z~||~|}{w{x}}}~}~w}|z}{}v|y{~~|~|{~z~|~}{}}|}u~z{{}z}~~~y||{}}y|~{}}}~|v~{~}w{y}{~}}w|~~~~~~~~x~~}}~yy|}y~~|z|}x||~~|~}}|z}|}|{|}w~}}x{~~|||x}|x~x}{~~}}}~~zv}{{w~z}~||}|{||{}|~|z~}}~~}~|~}}~|~~{~||{~~y}|{~~}|z~}}|~~{|{~~~}|w|y|{|}|}}|}zv~}|}}|y{|z~{{~~}z~}|}xx}}~~|x|}|y|~|~}}~~t|~{|t|{|}z|y{~|~}}~|y{z}~}~|}}~|y|}}|y~~|z|}y{~}~y}}}z{}z{{}}{}}}|~}|}}|w{}~y}~|z~}{x~}{~{}}}|}{|{|~}||}}~~~}}~}|~~z~~y{xz}y~~}y~{~{}~{{}{}|}}~}{}~z{|~}}|~~~~~}}{}}||||}}~t~~|||}~~|{~}y}{{{w}~}yz~~}~{{}|||~}}|~{z~{}~{{|{~{{x|~zz{}{~|~~z|}~{{~}x{}|u~}|v}}~~{|~~zxz|~y~|}~~|w~~x{z|y~|z~yw~y}|w}}{zzu}|{}y{{}}|}z~}y}~}|}}~~}{}~}x{|~}|}x||z{|}~z}}|yx~}||x~~{~|{~{~|}}z}}~{}~~~wy}}y~~~y{~|zz~}}}|wz}{{{}~{{{z}}zr{}{~~|wz~}zzsx|z|zz||}|~~{y}}}rw~{~|y~v}v~}|~~z~|~~~zwvu}{yzx|w|yxy~x||}{hx{}xy~|}}~}|~yz~y}}}y~xy~z}sxz|~~|~~}~}y{{~}}~~|zx~|}~zz|{~|{}~|}w~|~}|~s}}|zz~z||x|~{}}v{{y}}~~z~~{{||yzwz}{||}~{y~{zy~yy|~z~{~~~y}{|x|v|}ywzy||{{}~}|{|}w{~}yw|y|{}{}z||~{x|}|}z{||~{}x}~xy~~|~{~y|~}}|z~|r}}}|{{~z|}||~w|}{~~{||{}~}{|x}}~}||v|~wz{{~}}~~vyy{|}z{z}y~~~z}~x{}}}|~xw}|~}z}|{}~zz|}{}||zz~{~{~{}~v{yz~|zz~}z|~{}~}}{}s}~~||~{~}v||~{z~{~~{}~z~|{|y|y|}{}}||y}}~{|{{}~}|~{|}~{|x~{}}{~{|{}z}z~~w|~}}|~}}|}~|~~{~|~~||{~~}||~~}z~}~|y~{|~}~y~~{~x}}}w{|~y}}w}|}~}x~{|~x|~z{}~}z}~~w{yz|~}|{z~{|~}y}|z~}x~w~|~}~xw~||||yy{|~}~}w~~{}}}~~~~~}{~~}||{~{~{~~~yz~}}~~|u}~{~|}~~~}~}}~}}~}{|~|~~zx}~}{s~zz~~|z~|~~{{~~|~~z}{y~}~~|~w~~}w{w|~~~{~w~~~}y{}~|~|{{yx~|}z}w~|z{}}|zv{~|~~yx}|~~|yz}{}~}~z~z}|~{|{|}~z~~|~|~}}z}{|v}~}}}|{vx}zzz}x~z}}z||}||~}}}}}}y~}}|~{x~~x}}zw|~~}}}y~xz|z~|{{|z~}}x|{y}{}x}}}zu~z{t~y{z}w|vs~y{~}{}w{|}~w~~zxyw|z}y~|}{~}y~~}}~y|~}}}u}z|}~}y}{|}}}{}~}~{~~x|z}y}~|}}}w{{~j{||~~}|z}z{~~~~~|{~~~z|~v}|~}~|~w}z{~}~}~{{|z|~}zz||~{|{|x|}zz}v~}|w~~}x~~}}}}z|~}}x}xxz}||{y|~}z~~~{~{y~{~~~~|}v|zx{}|{x~~~}z~z{~}}z|~z}~z|~zzz|~|}|~}}y~~|{~|}|}v~~|}~}~|~xzyz}~~y~|}}}}~}}}y{y~|}|~~~w~~~z{xy|~{{}{y~}}{}{|xz|x~y~}~|{|~~zz{~u|~}x}~~||yx|z|~~y}x~}~y}~|{{z}y{}}{}wz~|z{|~~~~}x~~}{~~}~|~w{w||y~z~zyu~}~|w}|}|}}}|{y{~~|}~y~~}|w{z~|}~{{}|~}}}}}}~y}{||~}|}x~{y{~}~}x~}}|~{|~~|z~|z||~|}~{~~~||~v}~|~}y}~~{~~|~~~y~|}z{}}}{~}~~{{||wz{~z|}|~}|}|}{}|y{~zz~~z|vy{~z}{~{~y~}~|}~~{}z}|~z~y}~wz}y|x|z|~{~}~||{|{~{}|~|~z{|}~z|y~{~}{~~y}|}y}{~~{~{s~{|zy{{~~z}~z~~~~|y{|}z}~{~{}|}~~|}~~|{{}{|z{}}|}}}w|~w{|vz}~~||}{{~}~~y~{v|{y}}~z|~|z{~|}|}~|~z}|~{}~}y~|y{}~{|~{}~|~z|~~}}}|||z}~~~}{~|~z~}|~y{}z||}}~xw~{yyzzx|~~|}}~y}|}z}|~{y}}|~yy}|~w}}{~{yw{~}~yy|xy}|{|~||{{|t~|~|}y{~wy}~y~z}}}}|v{~}z||{~~~||~zw~~~{~{|xuz|~}z~~u~~~wxw}w{zy}}~~~~z|z~}|}{z}~}w~z|}{~~y~}}{|}~}}~}{~~~z~~|~}{|}}||}{~}~}}{z{}{}}}~~~z{}}~~||{{~||w}~~{}}~y~|}}~}{~~{~}}~}~}~|~z~|~~|}~~}{~t~}|{|}~~t~~|}~~}}~~y~z~~|}~~~{}~~}~yxx}~x}{y~|{y{wy}~}x}~}{~}~~|~~{|}}sx~}{~}}{{~}~~{~~}x{}|}z~z|z|}|}}}}x~}~{}}|}||}}|~~~}z|||}~}~}}~~}~}~~|~x|{|~}~}~|~~}~~}~}~~}z}|~~z|{|y}|}}}~~~|x~~{~z}{|{}|{~{~zyx}}~~{~|{}w|}~~{~xz|}}sq}~}~{{~}{~}~|{zw~~y{}~y||}}~~{{{|~|}}}{|}~}}}}{}~}~~|x|~~}~}~~y~}}w~~}}~zu}|{{r}}h~v{xsx~{~|}n}x~~}~tm~q}|~~{~{{|w|~~yy{~}~}x}|||~}~}z}}|~}~|y|}z}{|}~|}{}y~}~{~}}|~||z}}z|||~~||w~}~y~|yxz||z~z~z~~|}}|{~~z~}{{x}}}||}y|z|}z||~}|}~}|~~~~|~{}~|~{~yxx~{{|}x}|z}}~||||}z~{|}}||{~~}||y}~z{~{~||}{{x|{}|}}}x}zz{~}z{~~{}}~}}~{}~}}w}|~|~~{~z~z}}yyr~}~y~}~xz~{~~|}~~~w{}w~{~t|{~~{{~z{~}}}zv{{}}~~~}}}zy}~{}~{w}|}z|{}z}~xy{~~}~}~}w~}}v|{}~~||}~{{~{}~~{{w}~{zz|}{~}~|}}z|~}~~}}{}}}~z|~~}z~}}}{~|~}{}}}z{{{~~}}~z~~~}}z}~~z}|yx}}z}z~||y~}~}y|x~|}~}~w{y|}}|z~{||x~~{{}|{v~||{~~}s}~{{}{{|~~z~z~~|~}|{~|~~||z{~~}y{y~|}t{}~~xz~~{y|vz~x~{~|w~|zu{~}{~~|||~~}~~~~wwy~~}x~|z~x{|z~||y||y~x~y}~z}x~{~~z{}yz}|~z}|}|~~|wz}}~wx||~}}~~z|}}~~w||y}}~~zz|}~~y{}}~|~}}zy|}}}{xz}y|~{|}~~}|~|~z|txw~z{|}{|~}{|}~|~|}x~}}z|}}}~{}}{{|~~{|v}~z~|}~x~z~{~}}}}|~|v~yy|z|{x~x{~~|{{|~~}|}}||{}}}~}|w|{~|{~}z|~}{yzz}y{{w||}}}z|~{~}zzzy}||z~x|z|y}~{|}{~~{z}}}~z|}||}}}z~y~{|z}{{}}}~~|{~}{|xz~{|~~~~~z}}{~}x|{zx~~}w{w~{~|x{}y}~}|v|~yyu|~{}v|}~}z}~~~|}||}{~~|{}|{|}{}||~}{x~~}|~{{}}}}}{}~}vs|~~x}w{|y}~|}{{|{}~}{~~}{}||yv~~u{~~~|~~v|z|~zz}y~|{~~~~}}{z}|~z~w{~{z{|~~z{}w}}{}|z|~y~|}~|}y|~~{|{y||{{|~|y|}yyy{|}~{}wz~|~~||||~}{{|~}~~{x{~~y~}~z~~~}{}~|}~~~~~y|}~{z|{z~|}}x~~}~~~||{~yx{|{}}}{}|z|{~~}{~{t|y}z{}{~~~{~|z|{yw}xz~|y}}~~x|}~|~|}~~{{{{x|}|}t~}|}z||x~yz~|{~}~{{|y{|z~x}~}z}|}}|{z|{}}z~|~}{}~{}}y~w}{~~~~|z~{|y{~|w~~~zx~{}~z~}}{~}}y}~~~w~z~|s|~}~z~|}w~xzy|~~}~y{}{~|}{}{|z|x|z~}~yy}~}x~z|}~~{~zx|y|~~z}}~v}}|x|}~y}}||~}}|}|~}~}~y}zwyz~}z}|z~|}}v|~}||~~|zx|y{~~w|}z|w~|{~~{zz|||{||}}~|~z~~y{{|~t}|~||w|z|y~~{|}yy~|~~|{~z~|{}{~~}}{~{}{}}~|}~|~}~}}~zw|~{}}}{~|}y~~~~~~{~{{|{zy|}~{zz|}|{|}||{yz}}}{~z}|~{~~~}~{}}|{~||z|~|}z|~{||{{{|{}}}~}}~}|x~|{}}~}{}|}}}|x~{~~~z~~y|{~}~|}}}||y|{}|}~}{{{~z{~~}{}}|~~{|||~{|w{}|}~xzy~x}~z{{}}~||~y|~|~wy{}}~}y}~~}~v~{}z~{|~|w~~}~}z|{~~}}||y{~}~~y|z~{z}}}~}||{}|~{}}}|{}~}}|{|~}~{}}~~~}~~~{}}~~}~|~|y~}{~|~}z{|}~y~|{~~z~~|~~~z|wzv}~~~|}{}}|{~|{z|z~y{{~{}}{x{~{}}~~~|x||~||}{{y|~{}}z~}~~~~{z{w~yz~{{|~xz||zw~{y}u|}v|xz{|}~{~|~~~y~}{~}~{{zyx|{{{zx|wy|y}xyzw~p}u}{w||z~x{~yw{{z~~{~x|~vv~zz}~}v{}~~|w~{}~|||||}}|}}y{{{~}~z|y|{|}~{y~}z~|w~~|}z}yz~~~y~~~|{|z}|x|~|}}|}}||~|~}{~x}~z|{}y{|{x}}|~|~|~{z}{|}~|}xyy}|}||{yw}x|}y{|}{}}|~~~~~~{{}{zx{~~~|||~|zy||}w|{~z|}{z}~|y||{}x}x~{{|~~~}}}y~}|y~x~}y~xwz~|}|~y~z{~}~x||yz|}|{~{{xz{}~z~~~||x|~|~{~~v{~|}|~z}~}}}}y~}}vz{z}~x}y|z|}}v{}~~~}|~~}~x}}yy}z}|}|w}~~~}{}{|~}~y||z~~}{~{}~{~}~||}~~z~z}y{~q}~x}y|x{~}~{yv{~~zv|w||y~~~{y|z~z|}|~}{~~z|~{y~zy}}}|~~zy{x~{~}|~{~z~z{}|~}|||{y~z}~x}~||z{}~~{{{~~~}{{z~{~y~|{y|}{~x}}{{{~~|}~~}~w||}wx~}}xz~}{z~z~~{}}x}|~~z~~xy~~~{~~}~y~zw{zx{~~xw~~|~{{~||}}z|}w}{w}z|}{u}}{}~~~|~|t{~~y||}|~~~{~{~}y~}|z~{z{}|}~{{{x}wu}|{{y}|x{{|y~zx~}|}z|}|~||y{}{||~z~~|}}z}}z~~}{~y}|{~~}~~{}~y}~}}}~}~~}|{|~~xx{|~}~{}|~{}~~}{}||{~~}~|{~zzz~~}~~}~zz}}~||~|{~}||}~||~~v}~}|~|xz~~~~{z|}}v}|z}}}z~|}|}~~~}~|}zz{~~{y|~{}~|}||~~y~~~y}~~{}}}}~}|z}~}}{}~|{zz{y}~~~y}z~}~~~||{|}}y}||zv|~}||}{y|~|~}|~y||}{z}~}~}{}~zy|yyz~|{~}~||}}~}~|z}}~y~z|{|~}|~~}}|{}{~~}z|z{|{~|}|z~{}~z~~xz~~y}}~}~}|~~{}x}|}~|}{}}y~|~{~~{}~~|}~~~z~x|}||{z|~~~|~}{}|~}x|{y~~yy{|~|xz~z}~z~{}}~|}~~w~~{}z|}|~{}~~}xz~}{~~{~|~x~}|~z}|}}|}|}|z|z~~|~y~~~x}~|~~}|~|u{}~~|~{}z}~}~}|~~|}|}}~}|{y~~}|~~~~~z~~x~|}|y~|~v}~~|~}|{{{x|{|z}}~~|z~~}~}{{~~||yz||}{~~|xz||~z~}u}~|z{z{~y~}{~y~{{{|zz}{}}}{~|~~}z~~v}|}s|~{zz}y|~|y~}x{~~}||}z}}~|{{x~|}|y}|}w|}~|}|}xzz~u~z{}v}y~~~||y||z{||z~y}~}y}}~zzxz~||z~}z~~|~~{}z}x~~|~}~~}}~|~y~~~}~}||}~|}}{~|{|~{~}}}|~~}~~}~{~~~|~z||~~}~|}v||~~}}|}}z}~|}~~|~{|{{}~~}~}~~~~w|}}~}{~~|}~~z~~|}{}|~~z~{~}|z||}~z{}z}~|}}~~x}~z}{~~~~~}}|{}}~{~z}}|{}|~~}y~}}{uy~~{~~}z}zy~||}~}|{}}~}~}zzz}y}~z}}wxv~x~~|{yz~x}y|{~xw~}xy~z~}}~}}~{~}{~{x|y}~}uyz{{z}~}~}}~~|y|z|}~{{}~~y|}||}{~}~~}~{~}~~|~~~~y}~|~|{}{z}z}~y~y|w}}}}y}|{}|~w|x{~~|}~~z~zyz{}xyy|~||{~w|}~|~w|~~y~~}{~~{{~y{~|z}}}~}{xzz|}|~xz|}z}}yxx~~~~}|w{|}z}~}~|z{|}~}|~}~{w~z|}{y~{}~{|~y{~}~}}~z{|{~}}}~x}{x|~|~|~z|{{~vz|y~}}}{~z~y~|~{z}~}w|}z~{}~~~~~~}|{~{z~wy~~~~~{|{|{~~~|~{}{}w}~|}||{~|}{x~~y|{}}y||~~|~yx~~}}w{|{}~z~x~~z|yz}~||~~~~z|~z||~z}{}~~~~}~}~{}~z}}}}}|~|}~y~}{w}}}}|}|~|}}|}}z~}|~z}}{|~|}{z~}{~~~|}~{|}~}~{~wy~{}z|}w}~{}|{}zw{|z~{{z}}~|}|{~yyx|~x~~{~xz}|zz~|y}~|~~}}xv~~|z{}|w}{}}~{~{{{}yz{~}}}|}{}~{~~z}z}~}|zz}|{~}|yz}|{}rzvz}w|{w}w{{wyzz{{t}~x~z}x}|{~v}x{yz~}~zxy}}}z|y{}|xz}|z~z|~~xyy|y~}~s{x}x~x|{|~|z}v}zv}{|}~~{~~~|z~}||{~~}}}~||}{x|||z{}}{|~y}|~{}x~}}~yy|~~{}}yy}||x}z~z}|~}|z~z~~}w~z}z}z|~~~z|{~zv|}||||~{{{}{z}x~~{}s}}z~z|~~|zz}{z{}~}~~yy~{~}}~}|{vx~w||~~{|{}|z|yzz}}~uy||~~}z~||x|~}||{||y|{}|~}y~z~x}~z|~y{{y{y~~~~|~z}}||}}zy~{}|~}{|}~}v{{~{~}~|wz~~~{~}{~{{{{x{~|~{}}~y~~}}}}~}}}~}~|x|y}zz|~~x}z~x{}~~||~~z{}|~}}|}yzx{~~|~||}|~|y~{~~~|~|z~|y}~{}|~y}~}~{|~zx~}}|w{}{y}~}z|}|~{}~~y|u~{|z}~|~{~~|~~~}~|}xy}~{x{{zz|z}|{~{}~}|}|y}~y|wwx~{|}}z|o~z}}u~|x{{~|~tz~}z|}z~x}xt~y{~}zx}~{{y}{}~~~y}~}~}~yzx~|~z~|~}||~}~~~}}}~}~~|~||}~~v~}~||y}~~|}z}}z}}z|~z|}~x|{{z|{|}z{|{~~~|~}z}z{{~{~~}w~}}}~~|}~~|~z{~~|||x~}{~z}}}~}||}|}zz~|x~}~|z|z|}~|}||}~}}}{y~}~{z{|}|zy~~~~~~~{~~{y}yy~y}z|z}w~|~{{z}{~z}~|}w}~{h~xyyzy~~}z}}y}~}w~{~ws~y~||zzzy||}wyyxy}y~}{~~~~~~wz~}}||~}}||~{~}}}~z|}}~|}|{z}|~yx{|}}|~|}z{{~~}x}z~}~~}}~|~~|}~}|~~z}}~|~}{~}}|~|~}~{~{|~~~yz}}|}~~~~~}{~~~~w~~}{}}}}x|z|~{~y{|}}|}~}z||~z|}|{{~x{z|}x}}{{}}}zx~~}|}zz~|wz{||y~~~~}~|~~~{~}}{{|y{}~|~y~{~}|~{}w~|}}y{z}{}~~~}}~}|~{z}~~|w~}~~ux{v||~~}}~|}{~|{|zz|}~~}}~}}~}t|}x{}z}t}{|{}~u|~|}}||~{|{~~{{{zyx}~~}}{~wz~}~}}z{{~~{~{~|wy{|~~z}z~|}xz}~yy{~~}~~u}{z||~}}}}}{~~{~|y}}{}|~|~v{~~}~}}su|}~}~~}|{|zz~x~~~}~zw}|~|{~~{z~{||{~z~y~~~~{{}~}|~~|~}zz~~}z~{}|{~{z~x~|}}}|~}}~~}|x||v~x|{}}}}~||~||~{~|}{}~}z{}}|}|u~}}~z~z}}|}|~~}}|~~~}|~y}|~|}~~|}z~~{~~}y~||}~|~~}||~}|}}~~}y}}{{}}|~|~~{~x~w}{}}w{|}v}~}~|~~~{~x||{|y|}w~~~}z}z||~}|y~|w~~~{~|{{}~|~z~{~}z}~~~{y}{~~x~~|~z~wy{~z|}||}~{~}|~|~|}x{z~{}z{||}z|{}~~}{y||y}}y}|z~{{~~~|~|~x|z~{|}x~~{z~{~|{~~~{|z~|~~~}~}z~vz}~~|y||{}}}{}}|~x}~{~zzy}}tyyy}{|}||z{}{vz~}{~uw~}}}|w~z|~yx}|~|x{~|t{~~~zyz}{~|~uqz}|r|xz||y||y|{}{t|y|}~z~}x{zz}v~xz|z~yx~v~wy|zwoy}wwvzu|x~z~~{|{}}}~~|~~{~}~t~v{}{|{}}{|~|{|zy}}z~||{}}|{}}zy|}}{}v{{u|w~|y}{~{{z~|{{z{~{~|{}yx~}{z}}y{|z~zyv~~|}z}y|z~z|{y|~|{}{y||z~z||{}|z~z~}|~{~||y}|||~z~|{{xy~~|||xz~|}{|~{~}{z}~|{~}{z||w|{{y}y{xy~x~y}y|}||~}}z~~~~|}}vz}z~{}~~}~|||x~}|y}x}{{|}|y{}}yzz}}zwz~~|yx|}|{{{}~}{{}}~{zw|}}y|xyx}~z~~z|w}|~~}}||{{~z}}{uzy|}|{|{||zz|yz~y~||~yz}|~z|{}}xxx{}z~zw}y~|}z{z{{}~t}}w||x{|}~~x{q{tz}z{|{~{v|z}}}||}yyy|~}yxz{{}z}{y}x}~x~yzx|}z~|wzys|{y}wz{}~zz||~{{y~~zzx{~~{|}|z}~xz|zu{}{z|}|~}z}~|~{}x|{~z}z}xy||~}|z}~x}~{z~t~}y}zyx|wu~~wy~z||uwz~tvs~|}~~x|}{}}x~~}y}{|{|~|x|~xp~{~ysz{{~}z}~vy{~uyw|}~xy|~~yy~{xz{|{}{~}z}zy}n~x~{}z|w{~}~|}{~}zzz{z~~~v{||z~{|zz}{~|}|~~y||~z~xx|{~~{~z}}~~x{zv{}x~|{r|t~~z~~~x}~~v}|v~y~}}~}~}{|}~|{~~|v}~w|~}{|~{x|~{|}x}|v~y~w}|~}~yww{{y|}~|}}{}|v}xx}~||{v~}}|}~~~}|~y}||{~y}}|}}~y}~}z}{~{|}~|z~{}|}z{|}{{{~}~||}}|~~~z{}}y}|}}~|}{{~{~||}}}}z||z~~}~}~}~|{}~|{||~}~z|~x~z~~||y~~}}}{z|~}~~y~~~~~~}~wzu{~y{~~{}}}}|}|}y}|z}}zwzw{z|{z{}}{}}wz}||~~~}~|{}{|z~yzw{}}y}|~zy~}|~|qw}|z||}{~|~|v{|~}}~{~|~|y~}}x{v~|~z{x{~|~}{|}yzy~}|y~y}|{|w~}z|{~|~}}y|~}}}wz}|y}|~y~v~}z}|~}{}v~s|yxw}}~z~t~}~}~}zzxy}||{~}z|yyw}}{~~w}y}~|}v}~}~~z|~x}~z{~}}~{~{~{{~{{z|~y{|}|~}|{{}z{~{~~~|}x{~w~~~}~z~}w|y{|}{}}~~|~|y|||~{|~~~~}x~yy{|~}|zy}z|~|y~z|}zv|{||zx}|}{~x~~y}{w||{~zz|}}||u||y{~}|~}|~|{{v|}}y{y}|z|{~y}{xxx~w~{xw}||}~z|u}u{{~~}y|~w}t}ytux}}|z~|~v}x{}|zy}|{|zxx}||w}}~|~w~rw}||z~~|y}}zy~u~u}~{|}~~wz{~~y{y{~}~}~z~|~~~yxz|~~~|~}}{x{}wz~z}}x|~~~y~}|~{|~z{~{{~{~~~x}~~}~zz|}z~|}z~{|~|z~yw}|~z{~~~|}~~|}x{}x}{}{zyyu~zyx~{|}~y}x}rv~{|v~|~t{~|}~}x}|z|z|p{t~t~}}w~|}}xu|}}|}yzz~x}~{yz|x|t|~~|}~w|z}zwz~y{}z|}{{{vzu|z}~z}|{y{}w|{z|}|~zx|{~}xx}u~~}x{wxxx}|}|vz}y{p||}q}wxw~}}~~}yzx}}|s~|~|w{x}u}}}}z}}||}y~|x~{zut}}yw|~}tvwz|z|~z~}{~|}||z~|x{y|}u{{|{}|{|v||{x~}zx|}z}~z}~}ywy|}u~{~|}~|y|{~zyyw{}y{{}}~|~~|~}{~}||y|{zxr|x||vwzz~}|zw~zz{w{|y}z{||}|{w{~~}~x|y}}|}x{z~~{{}}t{x~}}zz}~{{}~|zy|~}w~{{~~~z~~~~xzw}}{{|{~{yw~yy{{ww|w{x}||y|}t}}w{|{q~|~}{{}~~zt~{}xzw~~||~x||t~zy|{zu{}~zw|~{~|z~wwy|}~||xx~~ry|zw|}~{w|~~{yz}zt|}{~x}{}{w~{yzz|~~w}|{{~{}z}~z{y~~~z{{{{z~~{|||~||~~{~y|y|}|{{x~||}z}|~wzw|v{z|||~zwu~}~~x}w~|z|}{z{x~}{zuxz}w{|{~||}{yy~wy}{{{}x}zy{|y|}~}x}~{z{yuztyy}t|zzzy~}|}}}}}zy{}wx||{|y|z|~}xvx}zx|}ux{|z||z{~{|~|{}x~|}}zv{zw~{~}~uy~}{}~}|{}{~|~~||}|y~}{|x}~}}}{}}|y~}~~}~{|z}}}}|}z~}}|}~vzy~|{{~t{{vy|}|z{}|z~{~|{zyy}|yz}|{zu}~z{}|~z{u~{}xxzt}{{{|z{z|x~w~z~y}xt~~{~y~{}|~~~{}|zz}~~}~{~y}~~x}v~}~|}{|{}x|~~}}xy|}x~|}~}x|z~{}w}{{}~{ys|~|}z{}}}~}|||zy~|{|}~|}~y}~}~~{}vz}yy|z{{|z{~yv}wzyx|}~|wu|||w{zx{{yz|z}v{y}~}{||~}~|wvzx~vwxuuy|y{yzy~s{v}t~wwt|jw~|ywx|u}{}x|{{x||{~zzx{{{|}|}}|yt{l|}}|wyy~~y{t|x}}x{{u|}xw}xv{zy~{x~|{{xy~}v~x}~y|}z{}yw}{{w|}}{~~~}}zz~~x}yv~v}{{z}w}~~sy}}{x}y|~w~{|~}|{{}|yy~{~{t~|}w||{}~{r~ywv~{rz{}{{w}z~~zx|~~z~{}{zz|}||x~}~y}v}}yyvx~zx|||zvx|z~{v}~~}~z|x~|y}}y|~~|}}|}}~~y|y}z|~z}~|w~|}~x{~{~}x|~{|}}z}~~}}z}~{~w~}zw~z}}|}zy|z}}||~vzy~}}{~~}z}~}}}x~~x~~yz{|~xxw~}|}|~}|}}}|z~{}{}{~}x}zyz~w{}z}t}}}{}}|x~y|~||}}|}}~~~}{zuz~~yw~yyzxw}}z~wz|}{}}y~{||~z{{~|||}}z{{{|t|}|xwx|xy|x~|}{~{~~zv}}z}~|{v~~yvyx|{zy{zxzx}x}}z{}xy~t}vw~~~z}{w~~{{{w~}~|y{~||w|t}py~~{|}xx~||yxwxz{{y|~~||yz}~|v~~}}|{v{~|~z|z~}~{xyz}|{||{w}{|zy}~}{s~}|v}{x|~~}~~{~|~}{}}{|z}{w{~}{|~|{}y~{{|z}u}|{~|}zyz~x}~|}{u}|~~xzy}~zy{}v{v{z|}||z|{}~zs{y|}~~}|{~v}z|{||}y|~{||~~z|{{}~~~{zz~|w|}}y{xzz~|~v}}}y{w}||x}|}y~vy}w~w~~~{~||{}x|{{w~}~|z|}}y}~}w{|~{}|}}uw{||~{y{yux{}{y~}}}|~}{}|~y|}{{|~~}y|w||{{|y{y~|w|{y|{|w|{}|y~}s~y{v{|~}|xzx|~z|{t|~|z}~~~}|w}||~y}w{}~y||||}~{}}{{|z{{~}{~}~zwz~|z~~}{~~{|{~~~~|~}}~|~w~}}~{||~y|~{y~}~x{}ywz}zw~z}~|uwx{z|~|||z{{|}}|~|yzy~|}~}|}~w~{y|w~~{~~}}{}{zz~z|~|}~~{{~~~~}}~~~~~}~}~y~}|{}}}}~~{{}~|{~}}{~}{~}{}y~u~|{z~{zz~}{x|||x~~{|zz{z~z~~~||}wx{}~z|~|~{}~z}zx{|}zu}|z~~w~|}|||{|~xy|x{}|~{||{{x|}~{}}|}}~}{~}}||z}{}{~{|~}{|}}}y||yy|t~}y}z~|~}~|~}~~~}z~}|~|~y~}|y~~}z{v~|}{|z{zy}~~y~}~xvzxw}|}}~v~}{{}~}~|w}}w~{y}~}}{}{zz}vz}{~zz|~|{z~y{x~|~~~~}z}xx~yz~zy~{}~{{{|z~z~~}{}y|{}|}{x|~z~{}|}{~}|||}~}}|}zz~}}|~{}|z}{z}y||~}x}q~xw}|z}~{}y~}~~{}y|x|}}~|{~~~~xz}{z}|}x}t{uzzz{|x}|~~vr}}x}|}|~y|s~~s~~~}{~}zxx}}uxpu}y}|{|{|qzz|{vz{y}}~{~wz}}{}t{~rp}}|{y{{|vzy}y~royyz}w|}zzyv|{~}y{x{~}}|z}uxv{{z}y}~~y|y~}{z{|~~~wzzx|y{}z~}z|y~{~wz|{z}|v|y~yy~{}|}wzq||y|~{{}~~z~|~xzx{{{}s|}{~~~y~{}}~x~{|||~{y~~~y|xz}}{xv~{}||~~~zyvz|}|}{}{}~{wz|x{|~q}}}yt{|u|~}|~x~~{~~}||~z}}~x}|ww~~xz|{{}yy}yz{{}vz~y|~{}uz~{~}x}}~z}}x{y{x~{z{}|wz|{z{|{}}~}||zz|~}z}{z~~{{{zy}}~}{}|~|{z{~}{~}y{w~|{|}|~~yx~~|}~}z|~}~|y{}}~}~{y}~}~~x~~{~|~y|{zy}{|~~|}}}}|{~y~w|{~z||~y~}z{}y{~}}~x~~~}z~}~~y|xz|~|z}~}z}}{y~}~{yx}{~~~}~|~~{~~~{}z}~~{~~|}z}~x~}~~||yx{{z|x{}|z}z}w{zyz}{{~|}y}{||~}y{|z{x}x}~|wz}z{||}{yz|y}y{|z~}zz|zx}{z~~~y}~w~~{|{}~~}~{~w~{{||{|~{~{ty~|z}zxy|~yzz~}}u~}~zv}~v~~~{|{xw||y}}~{~zyy{}v}zw}|u~~wy~zx~y|yw}{{x}{y|{zyz}v{uv}zx~}y}}{}~x}yz{z{|~|{~}}}{{vz}z~}|}}szz{zw}zwxx{|{~~~v{{{~~{yz|zz~y|}x}w~}~|z||z}ys|z{|x|}||x}~~~ztv~w|z|yw~}x{|}{wx|~{{y|yxzy{|{z{~zx}{w~{|z~~}y~|~~~x}}yzx||{}|xy|~~~w||z}v~}{uu}w}{~{}}{w|ww~v}|{~z|z}zs}y}z}x|~zx}tq}~}|~}{|}z|w~v}|}}|}x}{|{z{~|}||~~~z~yy~x~~|w~~z{wvz|~~u~}~~z~}~}|~||yyy~|||~|{~}~{~~|~~z}}x|y}w|x}~~zz}~}~~|~}z}x|~}w|~~~{~|zw}x||z}z{|}~|~~|v}}~|z||{t}v~}zw}{{~zt~~tzv|wxz~s|}sy~}r}~{zxryz~t}zz|x{y}~{~sxzv~u~~|yuw~|x{{|z||z|{~|t~~u~{z{y{~}}}zw}y{}~z||||z{uy|{{~u~~~}|{}}z~~|~~}||}~x~q|{u~wyw|}}}w{|~|{{~{|}x~{y~t}}~}w{y~|{{}~}}}z~y|}~|}~|~{z~y~}y|z}}}}|{|}qz}~||{~}~}u|}}|{|y~yy|~|z}{{y~}z}x}yz~zy}{z~}~~zz}}z{z{}tz~}z{|}}}{}y~|~{}|vzxw{}|w}~~~|}{tx~z}~}y}{~y~}{}x}v}zz}~}xyx|zz{wyvtx}|~||yz}|u}x}}|||z}t}~}{~z|wst~}~|z~xw~zx|x~~}sxz~y{vz{ywz}~xu~~w~~z{}vy}}~}|s~xt{~yx{|{~x|x||ysysz}|yzyz~|{~~~~zz|x{{t~~~xy{|{~||}~zxu~zy}x|}|z}{}|{z{|{}}|{{w~yy~|~~w~z|zywy|u{w~{wy|xz|}}y{z|~|}}uw|~zz~|~~~z|yv}z~u~{y~}w}~|}~yw~vz{u~}ww{zy{yzy~|{~}y{y~z~{}{x~{|p||y~v~}~}~}}}}~{~}tz}~||z|y}v}|z|{~}}}r|~zzx~}}~~x~z~}}|{|~{{w~~~~zz{}}x}~zzy}||}{{~u~v|z~~zu|z~}}zz}w}yz|}~y||~|||zy}}u|}{zz}~xz}vzw}{x~}z}}zy|~{}x~}z{}~z|}~z||~|{{|zz~{|}}|~}}}}}~{x{|~|{|{~~|}|z}}x|~x~y~}x|{y}u|~~~yzy{}|z||~v~}~}z}~{z}}}}|{{||}|}{~y}z}|}|~{~{~w}}|{zx}x}~~~~v|y~|}z~{y{|}|}}~z}}}~}~~|}z}{{u~w|~|zz}}}wz|z{~{zz{|~vy}z~~y}~z}|zv}{|~|y}~|y|~uzz{xx|}|~v}~{~{~~~z~x|~yz}~|z~|zz|~~yx}}}~|}{~|}~z|z~w{}y~yz}|~wzx~z}~~}~~{~y}|{}z{{|{|y~}~}|v{{zy~|{}y}zs}|y~}}{x}}|~z|}}y}~}}y{~~{~~~~y{u~{wx}{|}{y~}|}{~u~~|}~~{{|}{~x|y{z~z}|~u{}|y|}|~z|z~{{{z|{z|}z~{||}y}zxyz~}{}~nu~{}v~}}t}~|~||}}|~}w}w{z}~z|v~~}zv~|{w}|{~}x~w}z{}}yt}~y}~~z}u~|~u|{x~yy|}~zz}}|~~z~zy~xzz~y~w~{~{xwuy{|zvvy~}vzz~xyx|xw||}y~y|~~~{|yx~}}u|z~|~z|~~|}y||}|~}~|}}yy}|}{~y||~}||y|~|w}|yz}}y|~~zzz{yzzv|{|~{yy{}}{~vx|~{{v|y||z~}~xyz}~|{~~~|yzw|}~w}}|{~}~~wz}||z}~~{}~{|~~z}~{~{}|{~~z~{}x|||{}{}|}y|~y~{||z|z{z}}|~}|z~~x|v{}|{w}{~zu}|~}~}{z{z}{~w{|{|t{w}~{|~~|{xz{w|~z|zv{{{~}}z}|zz{|x{}~~~{y{v||~}y{~|}{~~{}~~}zzz{z||{}{yy}|zz}zz||~z{~x{|{~|y}~x~~||x~vx~{v~}}~{{{}|zy}{~~~y{|}|}uz~}}zxs~vzy~y~v}zw}|{}~{~z~wz~|}}{}}wu||y}y~~z~{t|}~}~}~{~|x|x~|y~~|w~}}}y}zz|x~|}~}{~z{x}|}}~~~~zw|}~}x|}||y}yx~z~{}~~zz|~{yu~~|y{{~~}w}}|{z|~}{usryz|py}}}|yvox~yz}p~s}}vuxv~}{{x|}x}zmu~w~y}xs{q}z~zxqz{|v}~|~|xywzzzwq|}}z~t~{{v~x|p~zv~|}}~}p|z}zmwp{}|y}|~|t}||~{~yw}{|~zz}xzzw~~|}~xv{xz~{}z|vwzw}w{~~}|~|wyy}|zzxy}}|u{z{~x{z}x~z~~}z~v}z~v|{||vyx}{~}}|u|~{~v~w~w{s{w|x}rww}yw{|{|z}v{w~x}||~~~zxz{z}xu{w|~wy~{{zwzz||~~t{|~~y|~}}z}vy|z}|y}{~}x~|{~{{yt{}~|t~|}t}|}yy|~~~~||~~~}x{|~y}{~~y~}{zy|||x}}{|yx{y|~}}~}{x~}y}}~}|x~|}{y{~~||yy|y{~{~}~}}~|~}|~z~{z}~}}~|yw|}~}z{~{}x|yyz{~t||{}y|z||yz~xy~}}}|~uy}x|~xztxz}}v}xzywuv~wyx|~|}yyz|wz~xxzy}wryy{zz~r|z|zyy~z{{w}xzx{w|u~}zs{{wz~z~}~zyv{{w|tz~yxy~|}|yw{x|}~~{y|w{xw|~x|~vvw~z}~}{}w}{|}y|~x}v{{{|~{}w|~vv~~}zz|}{ww|x~x|}}z~~~{~zy|x}yvxy}{y||}}~yvz}}u~y~|z~z|{x~~z~x{xyy{{}~|~yyy~u~yz}y~|~z}|z||~}}~~}}}{|~|{}{{}}v}~}}{{|y||~yzw}~}{~~|z~}|{}z{~{z}~~{z}{|~~||zz}~|~z|~|{~~|x~|v|}}|}yu~}||z~~~}}||x}|x|}{|~|x|u}~|x{{x{x~y~{{z~}z|z|{{{~z}w{~~{~x|{x|{~{w}t}x~~{|~}zv~}~}}}x~x|}}}~}}yz|y}}|}yxz~|||}}y~vx~w|zx{}y}{|t~vvuyx|}z{}}|}~y}|~z~}~w{}|~||y}||~v|~wsx~z|q~~yyz~{|~z{}~~}{~{w{uw~||}~u}{~}~y}~w|x~x|{{xyy~~{x||uz}{yvu|{~||{w}z{~{|}}}{~~y~z}}}~}y}x{}{}{~y}~|~~|~}~y|z{|}{y}~~}~~~~~z{w}~}t|z{|x}}y~z~~{z}~}z|~~y~z{|}{~zvx}w~~}yx|}zy{|zz}}z{z~||{~{~xzxw~}y~w|}t~|z}}~{{~}|v~z}zy|w{|}|wy||z~z|}~~z|||z|y}}{~{~~~y~|~ww~}y{uzxzy}~z{}zwv||}z}{wy|~|yw|z{}y}yyvyy~~yy{y|~y|{|}vzy{y}{}{z}y|}}{~}|~uf}ywwz}}zzz|~~~z|zx|z|z~~z{~{zz~x|}z{{y|||tzzgz|y}w|zvxxs~~z~u{yy{x}y|~x||xu{zz{v{~~y|yz{z~|z|~xzx}|~}}~y|v~|x|yx{vux}~|zr}{zzy}x}}{}{~y}y|~|~z{u~~v{{y~~z~}~|v|z~~xty{z|x}{|{{|x}y{y|vxx{~~~}}|~||y{}{~~|y|zx{|y}~rzz}u~}}~}z}{~v{~wx~~y{~~y|{x{}|w{}vq}yxx|~y~zw~w}v||}{zy~z~}~~~xyv}|xyz||~~{~vvxx|{~z~}w{z||}z}v|z~r}wwy|}{uwzzxz~~|z|~}||{x{{~|}|}r}y||x{~z{|}||~}|z}xx}|z|xv{ww}{yzw}wrsu}|}s}wz{{{{u~}~|{y|~}}z{}{xy||~~z~~~{xyu|}{xywz~u|~{{x{}zw~}{~u~~w|z~||}}~~~}~~y}~vzw~~~~~z||y|{z}~}}{v~~}}}|}|z|{~y|}~zxx|x~|~|{v~wx|}{{|{{|{y}~}}|x}|zzx}||x|~~}{}||~|||}~~||~yzq}~~zx~~}x~u{x{z|}|}w~~z~y~pzz||~wz{{}x}u}}x~}{{}}y}z|{z~{~yzy~w}~||||}|}|~}}|z}~|x~|{}wx~z{~x~x~{~}w{x|{vy{y{{s}}y|{v}|{z{y{}|}~x{{}~}{|{||y|}|}~~{x~||{{z|~xy}}~{~|~zw~}~{x}|~~wy||{{~~z{{}~~|~{~{|~||}}}z|z}x~~~|}}yy|w|~~}v~~{|~~|}||~}wzz{~y{y|~z}vwz}z|~ywx}|{u}y~yy~|~z||w{~{wwv~v~~y|z{xux}|~v|w|u}{~w|~~x{|}zws}~{|vyu}s}w{~ux|vt}}s~yzv|||wz}zyx|w{}~}|z{~z}`tx~}zxx}}|x~~}t}wx{zz{v|}{y}wv{|}x~}s}z|wfv|v}yy{zy|~}{~u~yzzy{{{w}{~|yzsyyzy{y~{{|z|w~{{}~~z}{{q~v~}v|x{ztw|y}xz{y|}u}z}}}xz{~}|zz|||{~zx~~~{y|z|y{y|~|uvo}yz{uy|}w}z~z~y{~}}{y}}xzt||y{{~~{~{~{{~v||}z|~v}|{~}~z{{}}w}~{}xyz~x|z~xx|}~xy}}z{}~z~{|}|}{pz~|{y~{|t~}z{w|~{|}vz|~t~x~}{~}||{xr~{z|~}vu~~s|zz{zyy}z||}z~z{}}wx|t~|{}g~s{{z{z}}{wxz~}{~x~z{s}{}x~}z|~t|z}w}z~}|{y~|u~zv}szzz}~t|ruwv{yy}~|}~|}~u~}}~~|{~{||~|y{}zz~y~}|}{|||}|{|}z|}|y~~}}|}~}{~{}~||y|~w|~y}~z}yx|}|z~~{}~~u}~x|{|~~z{|zzzy~}||{}|}~|~}x||}~wxvz{y|~~z|}~{}|||}~|{}~~}z}~~~{}}}~|}}~~}}|}yz~~}~}|~~}}~}}~{}yz~~}zy~w|z~|~xyzt~}}xz~|zzvu||~~~|x{z{|{|y}{x{z~|y}zzx{s}y|}~w|~}}x~~{tzq~y}}{|x}x}~yq}z{~yzz}{~}}x}}~}}y}~z|~x}~}{}vz}wwxy{y|xy~{z~{z{}z}v||}{}w~{{}{x{z~~|x~}y}zyz||}{z~wz{zy|}}|vx}~uw|y{y{}}}{~~|~|~~{~|~|~xx}~~~y{{yyz~|~x{~~|~|}yx~|~vzz||y{x}|}}s}~y}}z~x}}~w~}}zz~z~w|{{v}vy~{|z~u|z}~~}~yr{|{x{{}|~}}~}|vv{}|}~~v~{z|x}}~~}v{{v{}~}~}yy~{}w}}~|v|~z{~{~yx}}|~z}wy~}~~}~{}r}z}{}|}{~u|}~|xv}{{}}~||}zy~w}~|}t}{}{w|z}z|~|{~~{~}|{|||z{{~}~}~}~}z~z|{}~{w|{}~~zz}{~|~|{}~|~}{x{|~{}|{zy|~{w}{uy}|z}~~{}{~~}}~{{x~~~}x|}}}{v}}}v}y}z~|}{y}~~~z|zxw}{{yz}}~x~}zzx|r{}vx{}z|~|~|{~~zy~~~{z~zy~{{w}|~~v|}y~~|{y}{y|}|z~|y}y|~{~}||~~||zy|~}{~{~z|y~~~~|}}zyx}z|~z~}{z|}y||z{||}}y|~yz{|~~|}zz{~y~|{~x{y~~~~~||~z{~x~}}~}z|}u}}~~xy}~~}}}y{}x|}z~{|~}}}}}}w~}~{z~|{|{~|~{||t|}w~{||}~{x~z||||y}~{{|y}z|{{}{y}zzz|}{}y{z~}y~y~{|~~{~~w}~|y~}}~~~~x~~x}|~w}y~{~ws}xw~wruvrxwyt|stzyrvxuuw}zvvqxtwstwovnxuwutonzwtwzqwmx}~uwuzpv}}sqy]trfq{}tvq|yuvu|woultm|q{qvyqpk{rvowumpuhtyw}}q}vqqzw]vstvuvrnwxtq}jl}wx{{zt{vvxnv{zrwyhxoxvqyx}rspuftyujvowsxtqxpuz_vzuynsvjrlr{wvzsrtvqtqwtw~xtuvorwyvyuwuqywv}ypopo{svvtokwyzjuturtloswtowyzor|hy~{tpszww|yrhvwXzwluwxwz}vxwutn{{sorq{u|ysvtsux{pr|vntvvywptwzvxkw|d~xmrzqs{t||szury}vqjxmuxqxqxlwtsrr~|x~{~}}z}}}}~~~~}~}u|{}yy|~~~~{{yy{y|~|}{~}{}{|x|~{x~}}}~}~~}w{|}~}~~~w}ww~}{y}~|zv~wv~|yw{w|w||}xy|{~x~sy|~||}yz{|}~y|~xy}xx~z}{~{z}x{yyz~yz{z}uzz~{~uy~x~}zy~~}{y{|~w|z{~~~~zv|}}~|~}{}}z}~|}}y~}w{w~|~~{{~|~||}||}t|z}z{z~{}wz~|xu~z|}~xwwy}~}z~}{x|}|z}~}}x~~~|}}}{|||z|yw|zw|}|~~s~|y~z}~u}||{|~~v}{}~||{~{~~{{{||~|}{{y{~{~w~}}{|z}||yw~{z|{yz~y}~|~y}|~|y{{}yv}~{|}{~}}|~zv{z}{}~x}z{~|~||{z~}}}{w}~~x}|~x}~{~}|}|~}~v~}{}zr|y~|~|w|~}||~~{}y}zy{v~{x{xww{~{|xy{{}}{y|}{{}z|~{|{~wv~}xy~{~x|s~zu~z}}yz|z}v{~~|}y|vz}|||}{}~ww~~{xw~~~~~xux|{w~zy}y~}}}zy}|~{{}{}{}}yx}z~}z||z~~{}~}}|||~~}}|}|~}}}~||}~}~|{z|y|w|}{|~yyy~x|{v}zu}~~z~z}z|x|w}y{}z|~~}~~}~||v}}z{|~xyz}~z}|~z~z}~|tzx}}|}xy~}}z{zz|~~xy|{~zz~~{~|{}wy~~}~|}z~~|w~{z}{v~}}zw~x{|wvz{v}|y|y~xz{szu}{u~z||xs|zu}~w~x~~x||||~|{u}yvu}}{z||x|yz}{zzz|z{||xy{~~xz~|z~{y||~zyzu}{~}|}}}}xv{{~|z~{|y~~wz~~wt{z{}}{}~{}~|}|y{zz|y~~{{{zv~||~~|~sx~vpy|~{y{}z|x{~~~~}w~~{xz~zxz|ux|v{~y{z}u}~||~~}}}}~z{z~{~}~~|}{{v|}~~~y}|v~zy~|{}~~{{~ww|{{z~~zzyv|{||}{{{~wx~|tzv~{}|}}~~}y{y{~}~xxyt{yw}zv}uv{}|}}wy}{~{~}t|x{oz|~~yr}z{uvw}~||zy|~~}xv|~~~k~~{{|~y~|}}}~z{|~zr}|~s~{{y{w|q|}~~v}{|~w|{~{yy~{y}}|~~|}|x{|vzx}}z}|}|y|{wx~~~|w{|}}}yy~x|zx}~|{}~}~~{~|y~||}|z|zw{w}zu{{y{x|zxzw~x}vz}}{}}{y}y}w~w||~zzs|}}|||}~{}}y{{{yz~z{v{~}}y~{x~}}}~~}|y~|z|{}yz|}|}{|y||~}z|z{}~{y~{zzw{}}~}|~{}|~~x|~~}}}|{}w{{~{}|~y~y|y~|}}~yt~|~|wz}~v{~|{~~uy}~~}|u{|z~|~{}yzzw{z|~{w}~||tzq{|{zyy}}}z}{}w~w~}~yu~z{t|}}{}~|~z{~y{y~}z}~yt~{||}~}y~~x~}|v{}wz|~~~~}|}|}~}zrv{y~~~y{}y~|y~|{xzwy{v|~}~}}y}|||}~~|{{{~y}}szx{}yy~~~x{{w{|~x|r||y~}{{}vzwy}{z{|{y~|}zw{x{y{~wxx||{~~}vux}y}u~~}u}w~y~~yv{}~{~~|~{|xt}z|~yyy|~~}w~w}}}u~{~|||~z}{~|y~~|}yt~|{}y~}z~z|w~|~|yuzz}}zy~|}yywx|{z|}zw}~}~~~~~w~~y|}||u{}~}y~zzw~|}||u~zyy{zx~|~z~{|uw|~xy}t~|~}y}{|~|~v|~u|~x~|~x~}z{|{~|}z}~~}~~zxz}z}}yz|t|w~zy~|x|s|v{{|}}~~|{|{~|}|w~}yy}{~}y~~y}|x}{}}~|~~{~{{~|~}y}}~{}}~}}}}{~}}}{|{}|w}{~y{|y||}}~y~~{u~{wx~}y~zx|x~z|u~}|z|y}}|~~}~}x{~}{zw|zv{~z|}}x}}y}{v~~}x{|wyy~|||{}{~|}z|}{~}y}y{w~wxy|~~|zz|}~~xy|}~|{}~y}|wy}|}~}~zy|z~}s|ws~u~m|x{{|wvt{|||tzy}}yyww|}w{y~{||~w~~z|{|~|}v~zw}|{|{y|~{{|~yy~~y~~xywv|~zw|||z{wz||}w~~~}y|}{v}~}|y}~yyzyz||~z}}z}~{}~~{}u~zy}y|~{}{~u}||}nz}~z{{~{{yz}z|zvw~}{~|z|v}|{~z~~~~~{xv~xzxy|~|}|~vyzyzw~|v~{{~|~~}|~~|z{{{y~}x~z|}~~}~~~z|~{zzy{~}|w{ptx~|y|}z}{~~}}|~}z}}}}{z~{~s|||}|~~zv}|{}~~}}~}~{{}~}{~~}}~|yz}{}~{|~~{|z{y~{|~y||~~w~~|~t~{{||}v|~z~|~w~~yxs~yzz||~|z~|z{{zq~}{z}|}}{}|~zy~}zuy}v~~{|}~{|y}t|~{~~{}}w{~~uxzz{~~{uv|{~w||{|y{{y~~|q}{x}~{zuw~zzs{wzz||wxyxt|{z{~~x}~z{}|z~}}{z||~~xwy~{|y~}{{~y}}|}zxx}}~|~y~~~}{|~~z~{}}~}~yy{{{~{t{{|{}{~{x|~}zzzyv{}}y~{{z~}~}~|{~{y~{zyx~z{tx~z|zyw{}~x~|~z||}t|{z}x}}v{w}{}~~rv~{}z|}}}|~}}y~w|~z|~y}y~z}{~~z~x~}}{}zx~zs}x~z~{}||yu}{{|x{|{y}~x~~~|~}}|~~y}|zy}~~u}u}|~~yyzz~x}z}~}}v~x{{yw|{}|z}{w||~x|}~y~||{{}~~~x~{}w{ut}wq|~|yy}~{~||{~}}z~wu}{}v~y|{y|~{|{~~{|yy~}z}z~yz{|{|z|w~yx{}~w~|~}{v~z~|}~{x|{u|}zz}{z{v|||{y}|{xyz~z~~}}}~}|}{xz~}|~~}|u}z}~xwq{~z}{~z{~~vxu~~s~}|~~w||}}z~|}|}}x{~}w{|y{}y|{v{vv~}~wt{~~||{||~}y}|~z~x}v~x|{y{~|{}~~~z|}}xz}z~z}|x~~}{|~|}}z~}x{|~z}{||x}~}||xy~~z{{{}~z~xwux{|~~}{~~|~~~z|z~{~~}{~~x{~{~vz|~{wzz~{~|~{|~}w{~}|yw~{{z|{|z}}z~zwy~|v||x{}|{}z{~{ywz{zxvy~}{{~}~xz|s~zv|~y}z|{{~}{{{{ywz~~~{z||}~}{~~~~}~}~z|}|~xzy|vy}}y{z|z~|||~||ytz~~|}{{z{j{zv~~{}}yv||u}}g{{z||}|{{qx{~}~~~y|{Ax}w{z{zuyx}~z~y||{~~x~n~}x|x{u{{v|{{}zxz|x~y{}z|z={{{zz~uwz}{}|{y}~|~zvz|~w~{~r~}m~x~z|{~|y|y}vz~|zx}u{~y}{~|xrtz|{|}~~|{|~~x|z~xy~{{|||~y||x{~{|y~zy{}|z~~{}|}~z{}~y~yzsw|{}|z|}||vzxvuy{~}v{zyuz}~zzz}~}}|vz{||{}~~|~~~~s~z}{~{||zy}t{w|~||{{|~v~{}||}}}{y~~zx|zy~~z~~x~|~}|~}|x|z~}~~{}w}}xyy|}~z}}}{yx}~yyzzx{|y~|||{}wy}~~y~|zx{{}}{{z}}~}}~}~~~s~||~}y~}w~z}{z}}~}|{s}~{|}{~z{z|{zy~|vt|wxyyz|}}{||y}y~}}}}z{y}{|{y~u~w|{|y~~|~x~zy~~wzw{xxt~vo}zy|w{z}yz}}|v|w~|z~|z{v{zxx}z{|zyuyxy|x~~|~}{}~~~}vz}|~~}v}}yyxt{|~v|}{z|wz}}r|~|{{|{}z|~|y~~y{{{}~|~vyyz~y|}z|{x||||x}y~}{}y}zr}z{u|w~}~y}|z{~}~{~}{x|zv{q~~x}zz~u~{~|{y~w|}~|y}x|z||z||}||~}~{~|v}y}|||w}y}|}y|}|}~|w{x~{}z~~s{|z~uv}~z~{}|}~ywz}{}y~|z}y|}{~|{~w|y~~~~xr~~~x~~}z{|~{}w{z{yt|v|y{{{y|~}w~}z~|y{~w|}{{~yxy{{}|{zx~}~~}}y}}|v}}w}{}}{z~~~||}z~y{v~{}|z}{z}zz~~{{}{}{z|}~~z~~x|~}x|~z|z{~~~|~~}y{xy~~}~xzx|~z~|~{~{|y~||}yxx~}|~u|}{{|z~~uz||~~~{x}~x|xzz|}~}}}zxv}|~|~}zz~q|vw|y~{~}yt{yx~yy}w~}~{|||{{~~~zzx|~}zzyw|~}{~x||}|~z~|{{}|y~z{~{x~~||}}yy|y~w}x{~~}|~{zw}}y}{|yy}~~w~x|y}xw~zy~{x|}z|~|~|}{y}}}~~~zx~{~}~|{~~~~z}z|{~x~y~~}~w|x}}z{}xw}|}z{~|~u~{|}z{x|}|{|rw{~y{}x~x~y||wws~||~qw|vyz{}}{}}|}}wzxy{yvz}~{{~~yz||tv|{y|{}|~~|w~x|z{~{|v}|~{z}z{}yw|{|{}||y~|yww{x}}w{w~x{{zzzvqz}|~v~y~r~xzy{z|}y~|}}ywu}yy{zx|z}~}{zxs~|z~|}wx|z}xvwzz~|}~{{}yy}{~{~|z~|~yw{{}{u{{zv{~}y}{z}~~x|v~~}x~|yyt}}|v~~zzz~xz}x}|y~|~}~{~y~}~~~~}{x}}w{z~t|{}{y{y~w}z|x~zt}v~z|}wv~|v~r}{{||y~zv~{yw|}~}~|z|~|~|{~vzy~x~}|}~z}~|{{}}~~}}z~{y}y}}~{|x~}||}|}|x}~{~z{~~z}y}|~y{v}~x}~|~|x{~{|z|z|~}|}~}z|~|{|~}|w{s}xy}|||~z}yy||xzt~~}vz|~}~|{{{|{yyy}|~|}||xy{}~xz~|}w}{}|~}y}z}z~{~}y~~y}~x}wy~}~~y|z|~~}zz|}~~z{~|}y~}}}}z~|~w|}}yx}z}zz~}~{~{~ڑuߊ~}z{x{{}{v}|x|||yw|~x}w}w}~}{~{{z}}~w{|~}~~x~|{{x|zzz~}}y~z~~}ywz}u{|z|{z~z~v}z||~}~v|~~{}u}{z|}zx{{y}{~{~xy|{{|}|v{~z~{}{x}~z~yv|~{{}}||{}}}|}}|{~|~|x|~~}}}}{y}w~vz~}xx}z{|}~||}zz~{y{{~}|}~{z~yz~~~|}x~zv|~{uww}}zyx|~z~x}}~|}v}|z{w|}}{x{wxy~~}z|{y}~}}}}~yz{y||~}~|y}xy~}|{{|~~z|z|~z~~~||~}|~~}}}{|~}|~w~~~}{{}z}~}|z}w~}|~y~~{}{|y}z|z~||y~|}{}~zx~zyx{|{}w{{|{||{y}~|{yv~}y{|yztz~~~}~}z{}}{~|}}}{|w|}{}{}|~{~}w~|~|~~|~~}~y|}u~{u{{xyt}|}z}}}{~|{z|yw~v~y{y~~{}}z}}}~}v~|~{~||~~~y}~{~z~|}|{|}~|{~}z|zv~~|}~~xy{}wxz}|~{~~}~zyz|}~|z{}}}|~xz}~}~|}}~~~|~|uz|}}}{|z|yz}{~}uw|}|{}y}||x~{wywy}~~wyw{|z~~x{{{~z~|}x}{}||}|}~{{x{|{~}}}{}}~}wz{|z~||y}|~xt}yzty{~}}~|~{}|}}yy~|zy}~~~||}||yz}y{sx|~}yw~}z~~}|{|}}{~t||{x|}v|~y|}|}y~~|{~|}~~x|~x|}z}~}~}{~}~~}~}~}yzz{zw|~}|~}~}zx}~zzw~||}~z|~~|z}{w~|w}w~y{{|}}x{z~|x{~{|{~w~w{vxy}}|||}~{}zx{~~~{z~~z}{~|t{~}}~|y{~y}~{~vuy~~}||~~|{z~}{~y~}{}z~|v}}zz{~{z}~|xy|v{~zzy~|}}{xywzy~~|z|}z~~vxzy{}}zy~~~vyx{}}}}||{~{z|}zy{}|{}w~vw|~~{y}w{z~{|~zy~~y~x}v~|v~|||w{|}z}|zy}}~|u||{x{}z{y~x}}z~z}~{}|~}~xy}}|~~x~|~}x|}z}z}~}~{|}}}x}}}z~~|}{~zz}|{|}x|~{y{|~}~y||~{}}xyy}|}z~~zvz{{}v}|~|~}{}wx{|~zy|z|}zy}{rz~w~{}|}~|~}z||}|{|z|}z~|~z}}|{y}~z{|x}}xz|x~z~{~}~~}yx}}{qy{w|z~|{|}u|{z}{z{~}~{z~z{|}~{}}~{~y|yyz~~yz}~{|z||~|~y~}{yy|}w{rw|y{y}{|{|}}~|}}}}{xzxw|}t{~|}|~w~|w|~z}xz}{y~y|{}}yt{}}z|{v~w}{z{|||~~zz~}z|zz~y~zy|}}|z{~{zy~|~y~s~|y~|}y}w~~z|}w~yz~~|}}~~{|}}}xt}~}{|}}~z}z{~}|}{|w}~|~}~~{{~{z~y{uyy}~{~~yx|wyy|||xux{y~w~wxryv|zy||}xwz{}{|{~vyxw~|{zz|~~|y~}zz}|xy}}~~|}y{~~{}~}~~~|{y{}zvz~v~~y~r{}||{{y{}zzy~~z}{z~z||w~~}m~}x}}~~~|~|~{|zx|v}}u{{{{{||}}}|~zz~z{yw||{~||}zz~xm}{{z}~}~||}|}yw~y}w|}{|{}}z|~}}}|}x}|}|x}{~|~yz|{~w~{~{~z|wru|~}||{}~}{zz|}yu{{u|~||y~tu}}{z~~}z|z~}~x|~~x}z}}}{~~y{w~z|zy|}{w}yvy~}|}|~{}{y~x|w}{~}|}w}|t{~}y~{{}w{z{{zw||vz}|{|w~w}|~}{wy|z~}t}u~xxw~||~|y||}z~{~|~~~z}z{yy{}~z{}}~}}r{z{uzwx|wzxx{}z~{~{~{y|~|}s~|~~z~}y||}}xxz~~y~z{~~yz}}}~|}wv{z~z~~|~|yq~~x{xz~zy}~w}}|~u}||~~}|y}}}~{~r}|y~xyx~zz|~z}x|x|y{v|}}z}~z~x}{x~}yy}z{~x~x}s}}|~{~{{u~zz||}zxz{xzwyp||w~~}{{{~{z|v{~w~ztuxz{zz{|}z|}w{yuvx{}zy}~|}ux~}z~{y~yz~Xu|{~|y}}yxzr{~w{x~}~{w}wvzzv{ywzwuy}~zt~}|ytw~|}zvv[~{yzwv{}t|{}wxy}{}z~}s{w|~{{qu|{{yyz{}~y|}z||{t~}|||wv}}x}x~x~~zx|~}~{~xzx}|wyw}w}}}|~|}zy|~|~|}{wz}|{||}~~{|}}|~|z|x}~||z}~|~z}}~}}|~yu{~|x~z|w||~y{{{~y}z}zxw~||vyz{yvyx}|{~~}|}uz||~}~~||~xz|{v}|vvy|w{|}z}~~~zyy|~|~|~}~x{|{y|s}{|}{{}|}{tzv}yz|}~{|{w}|}|wv~}zx}|{{||}~|z|x~~y~z~}z~}v{z}|xy}~{~zxw~|z~zz~y~}yw~u~}~}~~~z{|}}~zz|~}~}~v~||x{~|~u{t}}~z}~u~~~|~wxoy|||y~||y~~~t{u~zzzz|}}yw~~~~~yx}{|~~v{z{}z~|~|x}{y}~}}}{{z|{wu|zv}{~tyz~~~|}x~zz{}~~x}}x{|{|y~|}y{|z~}t{~~z}z}{~}{~~~}}|y~}~~yz~}}|s|xz|}~z|z|w}}wx~yvx{|~~|~y{||~}|}xz~w~{~|}v~~~|z|yv~|v{{v{xz}{|~~|}}~zv~~v|~|~x{zz}}{~~}vxvw~}w~}x}wz~z|{~u{y~{y~|yyzz{w|}}{y}y~}xz~~w~}|ux|}|{{}{}|yw|}}}}~x{}|}zr{~}{~}s|z~z~~}~y}zx~y{v~x}}{|yz~}~~{}~zzv}yy|~~xy}|v{z|}{{~x}y~~v~~}|tz{zz|}~~{{|s{{~|x||~~{}~}y|~{{|}{|{z{u{v{w|~}y}~|y}x~u}~~}z}v}w|}y~t}}~{w}v|{w{~vy~|w}|}}{y{wy~{v~z{yysz|}y{}y~w~yx|wsy}~{}}t}{|s~zzz{wy~vszw~{}~vy|w~{~|~}|zz}zrz~v||w~y~|~{}z}||~}{|~y|yzz||~~z}|}|zx|}vxz{~|y{~}{~vzu~}~zs}}y{|z|{~|}|z}{z~v}~y{{v|w~{}|~~w}y{~w~w}|{}z|~zxyz}w{|~x~}z}z{~}x{~}|{|{y~|zyy}zq~}v{}}|z|{}~}|}~z~~~|}~}y}x{}z{z}{|~}}z}}|z}x|}zy{}}z~{{|~~~{xy~}~|~y|yy~y~|u|z~y~|}|}|z{t||}~{~}|}|}z~{~~y}z{z~|~}}|~||v{}}{~{y~z{{w|{|}~{}~|x|xz}{y~~}{~{~{z}~{|yzwxzz~}~{xyz|}}{}{}|y~z}z|x}zx}~}}}{~}y}x}z|}|}}z~yzw}|u}|}{}x~xz}yy|x~y~zzu{}~y~yv~~}||x~}~z|{{zz~~t|}zz}y}yz{}z|{{z~}{}|zz}|z~x~}xzz~|{yy}}~zt}~z~z{w{~~xxz|z{|z~}z~|{~v~}}{|{~zy{z~z~~~zz|z|~|}~}{~~{~yxz{~xz}~xu||{~~}}||~|~|~}x}}}zz{}~}~~z}~~~|y}~}|x~||w|~||{{z|~z|~}||}{}~}}{~{zvy|~|}~{}||~x|||w}}~y~~}~|x}~yzy{~x|zy~yy~~~||wz~~xz{~~}|{{|z~~z~xzy{}}~}z||z}~zzx|}z}}uy|{}zz}y{~~}}~z~z{v|}{}}wxy~z~~|y{zzu}|xy}~{}|}vv~z|~{|u}{yy~rt~w~x~u~{|{{wtz{~x}z||z|||vy~~y{~}{~||xy~yz~{|x|~~y~|v~xq{v{v{y~~}x~|z}|xyz{zwzxzy~v|}u~~|~}{xz|{z}w}~|||~xz~{}~~}}~~}}x}|}xs||{||xt}q|wxz|~zx~}}~~z~|}~w}zx}}~x~~~}||z{zyzzx{zpz}|z~{xv}x}~}~|~pz}{x||}~}~z~}{~}{z{|u|}x~z~||xzxz}|{~{~}|}}}{x|}z{zz{x{s~}~l|xr}v}}}z|yzx~{~w{{~~wyzz|{v~{|}y|z{{~{}|}z{}|{|{}w|zvy{z|z|}z~y|~{zxzz|y{~|z{}}{yzz}||{~}zx}|~}~|~|y~s~~||y}~xx{~~}~zz}{}u~}~}z|~z}}~~z}{}~~v~z~z}}|~}~x~~z}{~wy}zz~|x~~~|}z}~|w~{zw~~zy~y~}~~y~}|}|~~|}z~}}}~~|||x~z}~y~}|y~y}~~|{|x{~|~y{y}~{}z{}~}|x~yy~{~u~}~}}~vz~}}yxz}~yx||}vwz~}~yyz|wx{{|{|y|{~~}|~~w||~wy|t}|}}|}~|}y|s{{{~|}~y~~v~z}}~x}~}{y|}zz{x||}}{wy}x|~xw~y{~~yz||}}zyx{||~|zv~{~~{||y{zw~~|}|}|~x{zyv~yw~~}~v}|~{||zsv|y|z|zx{~yvx}xw~~}~x|vzyv}{z~|~~~|}~}|zs~vt~z~}~}~}x|~x|}~x{}y}{}~}~{z}~{{}}{}|~}z|~|{~}~zz|}||x|{{|v}y}}}~}}~y~w|{~~y}{}z}||zy|~~zzzuz}|~{|}~~|~}|~zz}~|~~y}{z~{~x}~w~~z|z}|}}~~|~~{}}~}|~}{z|~}yy{{w~~}~}}{zy}{x{y}{}~|zz~{}{~~y{w|}}x|u{~w{}}~|||}|}{{~z|~w{tv||z{~}{}~y}}vx~z|~y{}{|t}~~x~|zz}~~~z{yw~}{{}z}}t~{}u||{}}|y{{}|}|~py~{t}~{z|{|zy~|{|yw|x~|~{~}~t~~}xuv~z~|{|~}~~~ys~{{{yzz|x{x~~z|z~yzz|yzz~~}zv~~{~z~z~z~xy~}t~~u}~}}y~{|x|~z}~}|{{~}z~~~t{z~{x{~zy}x}{||{~x|zy~||||~|z~}~~|~{z~|~~{zw~~vx|~x~{}{~z~yw}}|~}~||z~w|}{~~}~}{x}{|}~~|}{~u~}|{z}zvu~}}}z~ywuvt~~~|}v{y}{zzx{wyww||vyyy|y~|}xz~}~xz|~~z|~yy~yzzzzzz{}yz|}~{sw~|w|}{}s}|zz{{wyz~zz{|}wu|{|~zz{y||x|txx}}{~{|z{y}u{~~}z~{|yzwz|~~~}|~}||~}|{z}~y{{z~x~z}|~}{||{z}}|z}}{y|x}z|~|~x~}~y|}}~|~~~~~|~~}~|~z{~|}}{|{{~~~z~zy}{~}}~{~}|x|x}~{~}yzy|y}~~}}~|~}z|}}~zy~~}}}x{u}~|{|{}|~{~~||xy}zt|{|~z|~{x|{}}~}}}|~|}y}}}~}~}}|}|x}|{}z}}|~{x~}|||~z~z}v|~{}|zz|v~}y}{{yy~|}xyyzt~{{{|{|xy||||~~z|z{~z~|~}xxxy{}~z~lw}as}|~xzm|{y|}u|}~zz}}|~|xwwz~}wvty~}~tz}~~{y|w}x~{}|yyq~~x~|}u}}u}|wy~zz||}y}|~n|{}|x{{y{ywy}|z|xzr}xz}z{z|p|{|wx~qyzy~|~x}{|{st}zz||}{|zwy{w~|w}~}|~zxz|u|{x|}{wx|ysy~z}}zw~zvy~x}}{twx~~z|{{yt}|}x|z||}||zytxz}}|zz{}y|ywy{y~}}{}xws|}~~}|x|~~y~}{w}|}w~|~~xuv~{x}~y|~|}~}z~w|{t~}w}z|~~{|~}{{}{}~}y{{}y{w{y{}u}{z{}t}}~zvy|~|{{w~~y|zz|~}sxz~|}~|{z|z~|{{~zzzxy}}~~z}wy}~~|ux{v||{v{~|z}|}{}~u}~~}z}~{~z|~~zt~~yvyv}}x}}x|x|tz~~{~{|u||z}~~yx|zywz}|{|yz~z~}y~{{||}|~|y}{{|y}x|}y~{|y{{|zy~}}yx|}|x|x{}{{~|~||~~|}y}w{t|~~}y|xywz~|v|z~~}{~||~}}}y}|}~}y}z~x{~{~}|x}~{~|x~~{}{z}y|~|~|zy~|yz}}~}{}~|~|t}w|~||~~}{}z|~}}}z}z~~x}~zz~~}yzx}}~}}x{{z~{z}||t~yw{yy}{x}}|}|{}zzzywx|y|w~|}~~}x|~{~xy{z}z}yv~{}y}zzzz}~|~}|}x~x|{}x|y|z}~}{}y}}w{x|{w{zxy}}t~y|}}}}zy}~|~{w{~}wx}z|tx}~~yx~y~~~~||~}~w}|}|~uz~}}{yz~t{}}|}}{~{zzx{|z}|z|z~z~|x|sx}zz}|yz|{zyz{z~{vxx~~|zs}s|v}z~~u{wy}tusw}x|}zw~{||{|}w~{{}}z{~~y{|~w|~yz{z{zy||y}z}}{~~y}~}{||{xz}}|~~y~}~~|y~}vzu{q}}xuy~~{~|~x~uf{{y~y}}~yxz~}|{~|]xx{|~u{{|}{~||x{zv|u~{~~v~~}w{~}yy}}z}|x{z~z~|x}{{z{~}~i|{z~zxx~{~~}qZ{x}}~}|~}}}|wsy|}}u{xzxs|z|||~~|~z}}~{~~||}{{z~}||w}}~|zx{|{~~{{|~{v|~|}|v}{}}y~}v|||y|z~}z{~~{~~~|{~}~}}~{{}|{}y{~}~v}{|y~zy||{xyz|{~|~|}|~z{~|{~|z~|{{|~}}}x}~}}z|}~}|zz|~|z}~}~xv~~}|}~}{|z{zz|}w}}~}}~|~}{|wy~{|~z{zz{u~}w~}z|~~}{|}~{y~z~{|~{|~w~~~~|~~}}~~~{~~{|yy}{}~{z~~}z|{z}ty~}zzx{x{}y~zv{x}pu}~{}}||z|{~zx|xy{{v}~}xz~}|z}yyz{}{}{|~{y}}~{v}~||yzz{|~uz~~y||zy~v}}r}{x{uyy|{}yz|~z|||}}}~z~|{}|||~zz~y~}}~}}{}~}|wu~||zxw|~|||}zw~}}x}~}|}w|}|~|{x}{z}~{zyw{w}|}}|~z}w{{zzz}}{}uz~u~|~~~y}}y~|z~}{t||y|~{y}~{w|~y}~~~t~}}}}{{}|~z}{~xzz~x|v}r}~xy{}{|uw{w|{|{{~s}{~z~}~~~y|||yz|{}}|~y~{y{||{z~y}{|zz~{z}z}y~wtyv}{}~{xxyz{{|{}{}}zz{y}z}~}}zv{z}~}{{zzy{y|{}z|z}|w{{}wy|}zw~v|~~yxvv|z}|~yy}~}}y}}~~}y}~~z}{x~~}}{zv~x~||}v}u}||{}v}{~|{x}yx}~}{~~|~~~{z}w}}}|~z}|yy{}~~~|}{~v}xyz~{yy~~}{}|z|||}{~~{x|{|}y}~|y}}y~~|z~xtz{}vwwv}~{~w|y{|~{z|zz}~~x}~y}zs~|vo{{|~yz~|~vv}z{zw~yw~w|~|{}y||z}~|}xs~xx|{~~zx|}y~{|yx~y~~z~~z{~|}}x{}}u~}~{}{x}{|u||y}y{}}vx}||zz~}wz~|~~}{|~{~|~~{|~{yw}~~}~{z~{~yz|~uyx{{|y}}{~|v~|y{}}zz}~z{|~|zw}}y~~z}}|{y~}}~~vz~|~|||w}{~v|}|wy~}{}x||{x{~|}~||||~|{}yvv|}|y~u~~v{}{|{y~z~|{vyy}}}y~z~{z~w}w~}|v~t}|}}{{|}u~{~|wy|{zw~}{|y}yy~|{x{~~~}vs{}|w{}{}~x|zvvx~zxz~~u{{{z~~z}}|y|zz~~~~|y~~{{vv}z|w}}t~~{{z}u|||~z~v||yyy}}}|}}|wuwz{zz|y}}}}uz}z|{{y}x{{zzxy~~yx{x~|y}{w|vz|~~}z|{}v}{v}wz|~}qx|~}}|z|w{x{y|~|{}}|~x|{{{}y~||y{v~~~~{~x~y|w~~z~|{~|t~{yz}{}{}}}{|}x|x{~x}}|y~}~}s{|z~}z}z}~|{uz{{vz||z}|yr||~~xx{}{}{w|{~}v|w|}~{yw}~x{{u|z|w{|~}}wy}{|}}{yz}~|~}y{}xzx}|~~{}}|~{|~~~z{~|y~{|}s~|}yz{~z}z~||~{}y~~}r{{v|z|~z|wzz~}{~~|yyzuyz~||~}}||z|~}}|v{y~|~|x}y}{w{{x|{}~|v~y~w~zz|}w|{wv}~v~|~|z}~{z{w~~~xxz{{y||z|y~yy~~|}}z~|}~}zy}}||~~}}zy{}{~yzv||~z}}~~y|~~y}|}~z}x}{z}{}~}~y||~}~x~~}ty||ww||~y~{~}}{~~{vz}u}~}~~}}}y{||{~z}{oz~x~~{~~}|{|}z}zxyy~~y}}{{y~{|~~{~}~}{yzz|~}~zyy~}u~~}|{~x{zzvy~~{~}|z|}v|}z{w~|{}{|}w}{~}|}~~x}~|y~{~|~}~}zts}}w{u~{zy}{z~|~}|{y}yu}~|{~y}}|}ysx|{pz}|~}ux|}{{{x|x~~{}s}v~z~~{y~y~|z|yyx|}~|~|y{~}{}~w|{zx|z}z|}z~z{zyy~{}x~{~|||~zz{ytv~|~~z}t~|~|t||~|w}~z|}|z}~zz~{}}~vt~}w}|}v~y{{v}v||~||zw{v||}w|zt}}~{~}w{}}~}zz|~|zz}z~|x{}t|}}~}}~{y}{~zyy~~}|{}}~|}w}z~}z{{{z{y}}}~}~|{}}}}xx~y{x}~r|{~~uyz{z{vwv|}y}|~z~~|~}wzx}|zu|~y|~|}xx|}~w~~~yz~~{|{z~}~{x}}y}{~}y~~}zyvv~{}~v||w}u~|}zy}~}|x{}{~{}xz~uuy|yw~|z~zzwyz|~y{}}~v}{|v}{}}}{~w{w|||{xz|~|z|v{uy~yv|v~y~~{|yy}}z~xzr~z}~~{zz~}z|x~y||~{{}~|{{zx~x|w~~}~{}~}yw~}~~|{~}~|xx|zy}|z~}|~}~|{wz|z}y|~z|~{{~|yz}}{yv|}|zy{}~{||{}}}~~yu~x}y{|~{w~|~y||}w||zz~~~|{}{~}~~{}w{y~}z~~y}y{x~z}}}~~}}t||x~{~~{{|sw}}{~}{zy{|}y}~w{y}xu}s}|z|~x}y}|yyyyx}zzy}u|}{|{~|z~|yp{}{x|}y{z|}{}||yt|{z{~}}yx|}{tuz}|z}z}~w||~x{{|yv|xy}zx~{zz|y{{|{}|xz|z}{|}}~~|~xyvr{|~v}s~~}|y|}zyz|yz~~x|z}{~zv~yxz|wu~u~ww{~z|||~y}~~s~}}|z{yz{}y}~}~yw~y}~~~y{z~~{|xz{vxvx||}y{yz}}|{xx|~||}yuy}|{~}~~~~yxvyw|y|}xyz|~zt{}}y}~}~x~{{w{~|~}}}|zyzx{~z}}|wzv{|{||}{}}|xw~}~}v~|~z{y~|{}s~|y|~w}}|}{{{{~~|}t||~}z~}~}xyw{~{~{{{yxvy~~~~|{yz{z}xz~~x{y~x{|z||~}~s|}{~}xzz{z|{{|~~~{~{z|~|{~~xx{zz~x}}{z{{|{}vz~|xvyv~}y|wy|{}z~y}{x~v}sxz{~vx{z}z}zy}~|{|y{u~zyz||}z{~~}w|~{~x}{|~|{w|y|~~s~vx{w|}|{z}{yz~{~{~~}~w~~~~|}}~x}{}|v|{}~{|}zu|~}{z{~|y~~{}{|~{~|z}~xzu~x}|x~{{{{|}{}|v{{}|~x~~}v~~|~{x~v~}{|}}y~}~~z}{t}zw~}{}z}v}{}zv||}|~}~{|~}|{}~~~{}xw}wy}{}~}|{w}|y{}t~y{{~z||{wy}{w|{s|}~|}zx|~|~}|{~z}~|x|}x|~}}{}yt}wzw}yz}}|y~vz}}z~tw~~z~~|{z~w}y{~{~zz{}|~vz}}y}|{y~{x|x|{|z}z{{{zyy{y~{x}y{y~|{}|y{|||yz|w}|z}y}}|wyyz|~}x~{{x{}yy|||}}}~}|}{{~|~}z|}~~|{z|~zw|{|z~}v|}|~|y{~{{zz~~}{}vzyz}~~}||}~~zz}|}zz}xz|vt~v~~}z|}|y}z~yt}wyz~|zwu}~|}}}|y~xwx~vyx}}~{~}|}x~}}tz}|s}}{{{~r}}yt~z||{xwzu~}}{yy~{|z~xy}}|{{q}}}y}x{{z~{}}y}z}~{~|}{wx{t}y{z~~}~wxv|}~|wvv~~u~}y~xuxyy{v}x|~|t~}|}~y|{wqx{}}y~~z{}|{z{z~}}{~z{}~{}~{x}}{}}||~|~||{x~|}z}||{~z}}z||~}xv~yw|||~}~w|{~~}~y|{z|}y~~x}}|u|}}y{||||z{}{xz|y~zzz{~|}}||}w~~~xy||~y~xsuxy~}xw}yz}~~~z|{y~~~|r{y~|~|~|y|~}|}{}vy}~~z}zt{~|}z~}~}~|}|}~y|~||~|{x{}}{zz~~|~||z~|x}}y{~{|{|yx|~|}~y~y}y|}|z~}||{|~{x|~w}~z|~~yz|||~}~|}zw}{y~{zv~x~sz}|z|{~w|||~r|~}|x~zz{~|}|{{y~~{w~|{~}z|~{|w~~}|z{~||}~zy~w{}}z~z|||yz{{}w}}|svs~t}{~~{{||yy{}~||||{|~}{}{~}}|{}y~{xyv{}y}|~yz|xz~}w|}}|~~sy}}|z{|z{~zyz{~x~~w{}}w{|~w{||}|{}~|zz~{v~~{|~u~~v||z~s~~zy|}{}zzzw}}~x}}~zz}{{{~|y~~zy{~}y}~|}~zzy~{}z~~{}{{z{||w~||{}~{zz}}uv||{z{x~v{~|~|}~yz~}}}v{|u~xz~~~}~~|~s}||~|{{}}~|~}yy~~}~y~w{{||{z|{zy}z|y}|}|~~~~wx|}}{{~w}~xy~{|z|~z}z~|y}|~}}}|~z|v~x|~z{~{~wz~z{~{{{}uvyr}}~||z~{{|~zz}|zzy|y}{v~}}{x~~~w|v}{z~yz|v~zwv|}~~|wzzxzx{xv}{~z~y~|t}~}z}vv}}}|v~|}{}||~||}yx}}vxy|{~{y}{~||~y~zzy~yyzyw~y|yy~~~}|tv|u|}{}{w{|{o|~x|~~|}z||{z}{~~}x{w{~~~yzy~{~}~|}x|x}v{}{u|}z~y}zr}|{y||t~~z~~w~}x}|v|{~}y{~}|}|{w{ww~~zy~z~z{{~{vx~~~~|~~|~zx{w}~z|}zx~~|}|}|~~}|~{zy{|~{~|}}~|z~{~}}}|||z{~}}|z~v{~~~z~}|}|}}y|y{{~~|{y~}~}~w||~}|zz{z|}{~w|{||}~wy}~yx~yy}x~}w|~}{~|~|uz{{us|z}{zt{{yz}~}|z}{}}~{|yw{}y}~|~{~{|y}y}}~w{{{}~{|z~|xy}}{~z{}~~uz||{~~||w}w{~~|~yy~y}~}{{{x|xx{~~|}x}~{~}|s}x~{{tx}{|~||~~}~}}x}|}}{y|~~~{{z~}~|y}|}{{|}z}}|}~~~}}q~y{|~~zx}|~w}~}~~~}||z}}}}}y}}}}{x~|~|y}~|wxy}{~|y~}~}~{y}{zzz~}|{z}z}~|wz}~~|z|}|{~}|x{wv}v}~~~{zw||~~z|~zx{}zyy{~~x|z|}}wx~zx}{y~}~|~yz~y{|}}~}~~vy|{|z|}xy}~|{~y|{{|y{y}ux{}u~~z}wwy{w|{}yv{|yx}}wv|x~{{}}yz~~y|y|{|y}}|~{~zv{~}~~}~~|}}wt~||{}}y}~y{|~x~}w|u~}}q~|y|z|}|xz}|}}z}}||{x~z}{{}~|}~{u}vt}z}z{xxz{~}~|~}{}~~}}vxz~w}w|~}{y{~v~{}}w{y}vz}~v||{zww{uz}x}}}z{z~|~{~{z}zw~u{u|v}}||uy|}{z{x}||{}}~wyr~}}zy|}||~z}|zx{zw|}{~}x{u~~~}x|}~|}z}{|~~yx}~|{~{|{{x{x~~||{~zz~~~|y|{vz||yzt}}u{x~~yyz{|}~}|{wy|}|{|~wzx~y{}w{{p{~~sz}~~y|{zq{~}{x{v}u}{x~{x|x{{||}|~~xy{y}~|~z~y{{{x{}wz{~z|z{z}}}}}~||y~}|}|}yzz|~~}}|}{{|{~~uw~z{x~}y}|}y~}z||x}{}}xwv~y~x~~{zv}|zy|}~~}}z|}~{}|}~}{~zt|}{~}~o|}}~y|y~~v|y{}}x}x|yw|x~z|}{}|~{||~y{}yw~|zy}w~{{{{x{}}{~~||~y{z||~}|}}{|~y~~}w}v}xv|z~}~}~z}|~yy~{~w~w|~||yz|}s}~x~{y|~|vztz{|~wz}x|z{wu}x~~y|}}}~z}}}x{|w~z{z~|w{{|{|}xy~~{xxx{}}||}}}}zzt|v{s~{||{z}~|{y}}}y}}y~x}x{z~z}zy{v{zz{|z|}~}~}|ty{zx|x~~y|{{v}~{~}}{{r|{y}w{z|}}w|}{~}}}w{o}|yy}}}~}x}~~z{z||~}|{}~{~{y}~s|z~~z{}x~v~|~x}x||~}|}y{y}}}y~~{{|y{z~w}vz}zyw{}|~y{zw{~x|yx|xw~{y{||~}w{~~{}}wu}z|~y|~{~y~{|~y}~~~~~}~{}}~{v~|{|~|{{w{}{{z||{|{}~}|~~}~{}|y~}||yxw~v|z}z}|}y~~}|z{}~}z~|{}zv}~|}~~{~y}~{~{||{~~~~}{vzz~x~{}~~{}zw|~|{yzy|{|z}~|yy~||}|{~~~{y}{{~|z|}wxy~w{~~|~}{|w}y{{x{y|z{~||~|}y{|~z|{~~~|}|~|{z|y|{~{|x}~z~{||z}~|~|~}{y{z}zz~{|}}}}w}}|{{wz{w~|~~~{yy}~}}w}z|x|xz}yyy}}~z~u{}|}z~xt~xy|}|||~y~~~|{w~r~v{}z~|v|v|wzy~tw~z}y}xmyz{zyw|~~}w}}yzuv{{~u~wywy{}ztxywz}w|}}z~xwq~|~|}z~}~rq|}}}}x~z~}~{twzzyv}|~zzw{~{vz~~{x{}|{v~|wz}zw||~}}|vxz~y}|{{}}||}r{{~}}~~y}|~~{z|y}~}{{z|{v}z|~~~z~~}~{{y{wz~wy{s~|}{~|||{w~~{~~y{xz||uy~y||}~|~~|z}|~}~y~|~y|~~|}|t||{}}||}zz}x}vz}~}}z}x|}|}x|}{~~v{~~z}x}|{{~}}z{x|z}|}~~~}zu}}}xtv{~~|{|}|}~z|{~~~{|}}xzx}}~zz}}}z~v|~|}{}||}z~~z}zu{~}~~x|{x~}z{{}|~~{|x~|y~~~||~~}|z{||}||~|~{x~}}~~~y~{~{|~ys|||zvz|~|~~z}|}xy~~|~z~xy}{{|{|}|y}{}~{{}|wxy~w~}}|~{w}|~yw~||x~}~{x{{ww~zzz|~|uz}}z~|~}z|zw}||zz}{v|z{|{}z|}||}}}wxvw{}|}|}z}|{{{zy}~~{z~~z|zu}{|~|z~}}}|w}~y|z||w|}~~|y~x~}}|z~{xz|}{~z{||x}|z~{y~z|{|s|z~x}x{yz{~y}{v{{{y}{wz~~ux|}x|}|{zvxxpy{z}}z}~|xy~~{xy}}x|wx}|yvz{~|xz||x{|{~w~|~uz{}~{~w}|~~{wv~}}x|}||~}|}~~}{~}{rs~~|r|}{v~}w|~z{|{}v{yz~{}{|||||{}}x~||~x||}}y~z|||}}z~|y}wx{}~{~{zy}xx|z}~~}zvzwz}}}||z|y|z}|}zx|}xz|}w}y}s|}|yzy|x{{y|z||w|x|wyz{zx}u{~wz}}}x~{|tt~zzyz}}}~y{{z|zz|}|}~|q{}{|~x}|{|}z{~}~u{zw{z{|yvz}{}|vx~|~{}v{{}y{{|x~~yz}~z~v}x}}{}x|~zwyv}~{s}y~xuw{zy}tw}|{y{{}~}z~zz{y||yvw{z||z}~|~wzz}s}zxx}|}yz}y}z{~yy|}{|~|u}x}zz{~}v|}~~|~~xxzx}||vvv|yzv{|{|}s}}|z|x|~y}}v||x}zw}}~x{u}{~}}{y{~}}xv{~zx}~}~zx}|~z{~z||{~~||~~{~{}zxx}~~~xx|}sw}x||~}{~~}~|~|~~|~|xz|x{y}}~{}{xzz~z{y~{{~|{x~~w}}}~v}|||~}{{{}z~z~~z|~{{z{{{~|{y|~}}|}z}x{~u}r|}}|{}|}}~}|~|{y~zx}v{z}{{y}z{~|zw{xxw||}|~{u~x}ww|w|~~}|y|||z~~}z{y|~}|~}~wy}z~}y}}}z~|~{~}{yz{y}z|z~zv|}xvz}{|}{{~~}y}{~{|z}|}z{|{}zz{{{z~x}|z}~}~~~~yz|y|z~}|xx~z|{{w~y~|}w~}{zy|~zv|~}|zys{~~~y{~}y{|z~~~wyv|q{z}x~~{|{y~}}{~|x~}yz}z}|wzy}~u||x}|v~x~}~}{|~s~x~~|}|t{{}y}}~|}{v{{{}~{{~~~xw~~}z~}xv}~z~~w~zww}}zzy}}y~|t|z{~{|~~}yz}zzx~~~z{}{~}z~y{}{}~~w}zx}}{x~x}z~~|z{y}zw{y|~x{}}y{}{v{y~~{}z~|{}~}|}x}~}~~~}}|||}|}|{~~{wy~wx~{{~|zzx}zwzuq}wz}}|y}x}}}z|x~|w}x}~y~xx||w|~y||y}~}~{~}}|z~}w~|~{x{{z}~}~{}{~z}}zv~}}{|z{}~~|~~~x|{~}}x|{{~}}~|zz|{z~~}~}~|{zz~{{}~z|~~{z|{{}{|}|z~|{~}{}y{}}{zw|xz||}~y}yw{~yw}{||}y~y|~vv{{x}|~~z|||r}~wzv|}yzw~z}|u|y|{~||yy|}s|~}x{yy{|}{{}~}}}wz~}x{{}xy}z~t||~w~|yy}~z}t~x}{}z|}yvx~{yvz{}{|x~~~{~}|~|z~}ww}xz{~vz}ux||vt}|~z}xzy{}x||wyvz}}|x|~{||x{xxx~}|z|xx~{}|~{z}}||}z{y~z~z~u~}{|}x{~}}{|y}y|~|{{|{w{~~{{~|x~}{}}}~wu}|~z{|~||~|xw|tu{zz{|}}|~~}{{t~z~}v||yzs}|yz~}|{x|}|~|{zry}||{y~|}zu}ws~|z}|yz}y~}~}~|w}{}y|~~{{}}~{~{~|{|||~|{~~{|}}}y||z}wzy~w{|z}{|{}}|~y~}w{y~x}z{xv|xrx}xy|~}}z~z~~{}~}uw||}{||~z{t}}}z~~zz{}||z}||z~x{zy~xw}|y}y~~}z{{|{x{}}~q{~tx|~}~~}~{~}}~}|{~~~{~x}y|~||{|}|}|y}~}~{~~|w{~|y{{z|vy{}x{z~~s~}zy|||z}~y~yw~~~{{yxy~{}{z}z}{ww}~|y}z~z}~}~x|}vz}zx~{}{~w||wyz~y{|~yxy{~z{u}|zw}||~~~}}y~{yy}}}zus~}{y~y}~z}y|z|{||{}y~}|v}}}y{{y|yy||~~w}}|x~}xyw~z{zz{z{z{xy}{~{~y{}vv{}{zzy~|x}x~r|}||~tvry|}|{{xv|zwz}~|x{{zy~|xz|~{||~~}}|{~yz}||~{~|}{y{z}{{}}y}{{{|}}y|~~xz{||}|x{~xy~}~{y{}~}~{{||y~~}~~xyz{z{~~}z}{z|{}{zyy}x~}|x}}}y{x~}~~~tuz|~u~~~~~{~}}~~~}|~~}yw~z}{|}|z~}{~{x~xu~|z{{u~yv{}|{{|yv||uz{}w|y|w}|{~s}vyy~x~t|z{~}x}}z~u||w~zx~}}|}zyw{~z{}t{wyzys|}||}}}~|wz}~{}}|wty{y~}~|}|}~y}{~|w}uz~}|~~z~}|~|}xz|oy|}|}|y~~x~zzx~~z|}zy}}~{|~}||y|~}xy~~{}x~~{~|{~zz}~}~w~{z||z|~zt{xv|}~||}|~x~{{~~~}}y{t{|z|}z~|~~}y}~y~wx{{|{|~{{{|}|~~|}~x}~~{||w}}|xz{~{w}||~y}zxwxvuz{}ry|~uzz~}z~}{{x~{|uv~z}~}yyywz{y~}}y~y|~}~}|~x~}w~{}y{yzyzz}z}~}y~y~}|uw}z|z}}x}yz~}|}w}~z}~|}zxw|~}xu||xzy|z|pzw}z~|{|}|wv|w~~w|{|~~{{x}~{z}{|{z}|}~{xxv~|}xw~||~|y|}}}{z|}{vzx{z}}|~y}}~~~}~~}~xz{x||z}}zz~zy~y}}~{wx}{}}|}{~z{~}zy~~y~~~}|~|v|{~~~~yw~~{~||z~|z}~|}w~yy|zy~{u}}}~xy|}y~z~}}zyyty|}{y}}{||yyy}y~z~|yy|z|}|~{}}~}w}|}tu}r{}}x}xy{y{}~z{}}|}y~z}z|syz~}y~{x~{}zv}x|}~~{}{{}{|}z{xz|ryy{zwzz{}ywx~{|wu||yxw}{uxt{z{}{|~z|{}|zz||{wy}{}~~}}w|y}~}||}~~}}||~~}~~|~}}}z{x}~|{~}{y}||}{{{~z{||~yx|{|z~~|~z}~z~|{y~y~~{~~~{{}}u~~~}~}~|u~w~|z}z~~z{{}{~|y|||~y|z||z}~}y}}{~|x}{~zz~~{}}z}y{{~{|{~~}z}~}zx{y|}y~{}|~w~}{{{z|||}~|}~z}|}{{~~{|}|zz}}}|~v}~}|z{{z~~{y}y|{}~}{~~}~}}z{}~y~{x|{yy|~~}{{|z{~||u}x}~|}|}}y~zz}{{x|{z~|}x{~~yzx~|{x}z}z}|z|yx}~~{}}~yz}}~{v|}}}~s~~~{{|{z}~t|zy|z}zyx|}y{}xz|y~z~|}|z~w}}~yy}~{|~{~y~{w~z{{}{y|}}~~}w~zw~|{|}zv~{}{||}z|{uz|u{}y~u|{~{~zx~zx|w~|}v}w|w||}{|~y|yzwy~y~w~~zw}yz~~z}~y|~~z|}}|~{{~}x~|~|~zw~|y{{}~}~yy}}|~}|{}~{}y~}||~y{wy}z~|}zz|yx}wx|x{||}}|~~v||~}}}|~|}xzy~}{{z}y|{|x}z|}|x|}zzxy}|z}~y|~}}yz{x|zz|z|~zzz~~v||{w~{|}yzy~|z|{|x|x}zx||z|{~|u|{~{zy}{|}}|Ytp~yt}xr{{ywz~~~wzs}{{}xz}y|{}uo~wyi~}sz~yxz{|v{~w~z}|~|}y}~|{~z{~{y~~|~}}z|~|~~~~~}~z~||zxy||y|{z~}~|~{z||~yx~|~{|}~y~w~}|x|~v}yy~|{tyy|~~~vx}zy}|wu|{|{|~{vz|}vx|{~{}xw|x{}|~|}}|{z|y~||y|~w||{}|}|{~yz~x|{}{x|}y}|{~xv{~~u||yq{~w|{}{~~~~z{qz|}}y}yxw~}y|r}}|~|y}~y~~w}~}|}ywyy|zv}~}|{{zzty|w|z}~x~}{~|vx~~s~~}{z~y~y}~yx~}y~{~y~}|yv|~z|}}ww||zzy|uvw}}~x|x{~{~{}x}y}zy~{zv{w|z{txsz~zzv{~z~|wx}t{z{z}{z}~|w{~|zzx{{}zu{z{{z}}}||v~}y{yw~~zzz|{||}y~~w}z|y}x~zz}z}z~{wy{~}{z~~z}mu}|~}|z}~|}~}y|wy|wxv}|z~}}y{z|{|~||}zzz{{ytx}~w~~|zz}}||x|{{y{w{~{}{}}y~{}{}{}~|t~w~{{xx|~u~~wz{|~|}zzvz}w|~~}|xy~w}~}}x~|{u}|||u|}~}~~}~t|sz~}}~y}{}|}z~}wzx~~vz{zyz~~s~}|~y}|~|}~yu{s~}}~|z{~q}y~}}~yyw~u}|y}}w}t{tyyzy{{|~{}zw~|~{xr}z~||}x|~}||~{}y}y|||zzz|{{v{{w{}wy}{{~{|z}t|}|x{|}~{}}}}||~w~{~|~||}}~~y|y{~x|~|~y|z~|{{zyz|}}}{{xvz~}{||x|}}w|{{}~yy}yv|~x|s}y~zxx~zz{z~~|~{||{~~|w}z~}||txyy|yyx~~}vz~z~z{~z~{|yt{}~{wz{wuz~z|y}wy}y~zv}}{u}{|{{z{z}z}yz{{yzy~|~{v}~|xy~~}}}}{z~}}~|~|~}~~{~}|{~~y|}}{}|~}w|~}~|{zx~|{~~}}y~~|{{~}~~}~}||z{z}}{}}|~zz~}}|xzv{~}}}r}~}~~{|x{~|x~|z|u}w{~yz{s}|}||}w{y}yx{}}}~z|~~}}|z|{{}|x{~|yx}}|}~{y~}z}}{}|~||}}|}~w|~|~w~~w{~}~}w|~{|x}}}|{|y~|vy{~uz{~wy|wyzv|~zyz}y{zz|{~y|{}|w|x~ztuzw}~|~y~|yu~}{{t~{z~zz{}}{v~z{{~|}|~}|}|}~||{{|~|~zw}x|{z~|}yx}w~{zy~{~|xx|v|}t~}r}|~{|~~{z~~zy~{{|}~{}}}zv}|{~z~~~|~y~}x}}x~v}v{~{y{}~|}{z~|}{|y||~{~uyvzx}q{y}~zw{{~x~x||}~z~z|~zzzv}{x}zzz{|}rz~{~}{|x{{}}yxz|yys}|{~xyuz|x{~|{}zyy~}~z~|}z|x|}}z~|ww~}~~}yy}w}~{}x|{{~xwyx~y||~||}|}|{{~zyw~|}z{|}|}~x|~|~|}}z{}}~{~~z{z~~~~{{}}|}||{~yyy|z~}{{v{}~{~|~~|{|x|}xzyx}yz}~~}|~~z~}~{{}x~{z}}z}~y~~{w}}~~|y{xz{{{|y~||y{xy~yz~}~z~{y|~|xx~{}~{zwy~}}v~{~{~{|}~}{{u{{|~|x}}v{{z}{|{y~|}}}{~|x|}||~~{{|~}~|x~~~|~x|{{~||}~~~{v{~}~~|y|zz{yy{|}|{}}}~y~z~|~}~z~{}}}z{z~~~|~}||{|{{{z~~~~}~|z}xz{y{~||}x{z}|}}~z{|y~z}}~}|~||~{|{}}}|z}x}~}zs~y}x}zv}~zz{~y{}|{x{}z~}y|~{~z}z|~y|~{s~z~}|}~}~}~~~u~|~~~|zy|{|||~|}~~w~}{}{ww{|z|x|{}|z~}~z}|}~z~~|~{zz|{~xz{}~y{|}||~~~zy}}z{t~y||{~{}y~~{}~{|~zz}~}y}}}||}{~|~||wvzy~}{}|y{z{~{}~y|x{~z~yyqy{}~~{||}}~~~||yz~|{v{~~{}~y|{|~z{t}{||}~}|~~w~|~~z|}|~|}||}v}{}}~~|~|z|{{}|~z{y~wy~|xy~v|}}|z}}|~~~{z~|~~r{{zz|~z}~}z}}v~y{~yy|x|{~y{|~~x}~}y|z{}{}{}|~~|~|~}~~~~{}~~~z{}w}~~~}}z|}~y~|~}~uzz~x~yz~w||zz{|~y}z}~~{}{|~}|{{}{~z||~}}{|z~~xw}|~~~~~{~zy{{~{y}{}}|}{}{|}{}}uy~wzyy}z~|~}}|{~|y|}~|y{x{}~}z~{~w|~|}z{~|~{}u|y{~|~x}}z{|}~w}}|}~|y|vz}}z}}~~{|}xx{}x{~ww{{~y~yz~~}~{}{|~}zyz~}xz|{}r}~~ty~z~y~~|s}z~|~{~y||~{{}~yz{|y}xz}}xw~}}||x|y~y|~|y~}~w{}~z~~z|tz{z~zxy}~~{~~|yzy}~|||y|~|}{zz~}|~~||~~|}~yx|~y~~z}}~{}~~x~}|}y|w}z}{}zz~|}}~|z{yxyz}~|{}{~}|~~~~~|}}wz|v{y~|~~yx~}{{r~~}~}{zy{t}{zx{z~~zvy}~|}w~{yw|w{}~~xx}r~t~zw}|}v}}~~}~|~{yxz}}{{}{{}{~~}x||x~{~z~|}u~|v{}zvx|x}~xw~utzxy~~|~}~}y~yzw{~z~{}|~x~x~}~|zx}~z|~{w~}u~~{|x~x{|||~{}z{x~}{yz|y||}{sz|}}~}|y~w}{y~z~z}|||}w{}|v{zvs{}|z}{|zx~}|z}~xx|z}}x~{s|zz|yy{}xy|y{|{~w{}{|zxxz|zz}z}x|{~|{w|~{|~ywzy}~}ywx~v~{}zy{}~{~}|xv{wv~{{}~{y}~}yx|{u~|yyz}~|z~z|z~xv|{{x~}}~yv{y~~|~s~~z|w}}z{|}}|~|v{yw|}|u|y~v|z|}}}||yzz~||||u|~|u}zt~{~}~~xywwyz{}{|t~~~~~~|y~z{y{|}z{zw{z~}wz}{y}|t{x~}}|}}||~{zwu{{~|}|~|~{{}y|twz}}z{~}zyx|z{yt{|sx|y~}~v{~~u}~~|}x~}|~yzwz|}ywvw{|y{~{y}|wz~x~z{}~{||}yt{z{x}~y~y~~{yw}z~y}{{v|x~uu{}z{~~|w{|~|}z|}~w~|}~y{~~y}~~{||y}w~zw~z{xv}~{}zz|~~~y~z|||||{yz{}||}u}~}~~v|~}}vz~}|{x|~x|x|s~y~u~|~|~u}{~}v~xmzz|tz{}{}xp}|}~y|z{||y{{z{~y~}{zxz}xy~{~z|}y~||z~~rx}}}xu~|u}x~u~}|{||{}y{}|ywv~~~~~~}}|~zw}y~x~~|~zy|~{xxy}zxzwy}st}}w{x~~|xy~|w}|}y||z{{|}~|zyw{z}zz~z~z~zyvzry{~~x|}|v~|wy}wzz|xzyv{y{|z|{~yu~y}v|}{{xz~rzzy~zzz~~}zvxxx}}}{}|yzz{{}z}yy~x{{{w||y}~st~yvy||}|~w}yz}|~s}{}|}u|x{~}}}zz}|}|{~}{x~|xxu}~{zx||t~~o{|ywzwxzz{y~z~|z}~yx{z}}t~~w}r}yz~yz}{{}|u{~}}w~zw~}z{}~}w|u~|~zz{}x}~}~}~~{yz}~wz|xyv~|}z|~~}v}~w|{{}zw{zqw}~|{~yu}z}xz~~x~~}|~{yv~z|z~q|~|~y{|~~yzyz{|w|{z~||z~|t{{z{~~|~|}|zzz|}}||{~}z|~~}{wx|~{}{~z}vu|yv{~x~}{z~||}|}|zzxyy~~vz~|y~~y{y|}z}x|g}z}}~x}t|~u{yyv}|z}~{{|{{y~|y}|y~|yy|~|}wxzryyw~{{|{uz|y}{y~zz~{}uw~~}~zr{z~~}}~~{~w|z}~}}x~{~}{zw{~uz|{y{uyz}w~w|z|~}{{zz~z|}}}xy{z}z{}zyzv}{{~{}}|xx}~~{z{z|y~x}~w{z|z{yzy|zz}|}|~{x|s|}||z~}{t}yw}|~{}zyw}}~~{||y}y}{{~z|~~}z{~~~|yz~|{~{{}s}}~z|xwz}y|{~~zyy~~}||}z}y|z~}y}x{}{zv}}{}w{{||}|}}}x{x~|y}~~|}~z{}xx||~~~~~}~}zy~z|w~w{xw~~}y|}z~z}}~z{|}{w}w~xzzw}}|{~tyy{xy|||~}t|x~~|r{x}~{{{~zz|}~z{}~~zz{uywzy{}}yy|}|}}}|}{~yxw||}}}~~~yw}{v~y||~|{{}~~}{{xzy|x|}~yyz|zw{}}}}|}~z}{{}y{rz|}z|}}~y~|z}||~|~}z{~||~u~~}w~x~~}zz~zx{}}yz|}{{~wyyyz~~{}~{~u}~~}|~~~|y||y~|~~~~~~}}}~z|x}{~{|~~~|}~|~~~}~}{|{{|~{|~{~z{vy{{{z}~z||~~}|}{||~|~{~~zxv{}y~z}z}|}~}x}}yr~~|||}{}~~z}}zw{y|{{}z}||}zy}~|{{~}y~||{|z}wz}{~zt~p~y}{z}~~v{yzy}y}~|v~||~}|z|{}|}z~||~|{}zx|~z}~zy}~}z}~}y|zy}~{~y|~}~yz}y}||x}|~{ywy}zuxw{}}~x~}}yz{|}zy{}}~{{~~zz{}|||}}zvz{y{z~|uzsw|{~~}{{~{xwwz}}}{|qv}ux|{ysxy|yuyx~~{}yyzw|}xzz|}x~y|v{|{z}~|xx|}|y{~{}y}}|~|z|z|{~~|zz~wu~w}~~~|~}{}w|zz|~~~}}|z}z}}|z}|~w|{|}~{w}~{|}yz~}|}{{|z~{|}|}~y{y{}u{zz}xx||xxx~||}xz|}zz|z}~~}~}|yz|{~z{}~w|w}{|~y}}||}{{|z}~z~~y|~y}|{~{{|{~~x}y~zz}|||}~z}uz}|v}y~}xx~}{}}|}zx{}}y~|xzz~}}~}}{|t{u|vz~vz|||}~~~|~x~}|~|~|z{|~w~}|xu|~}yzz~|y|~}z}~z{~w}x{yv~~x~}zxz~|~z||r{~{x{~{~}~~~~z}|~{}{y~zs|zz||}{z~{z}v}z}||~}~|t~~{ww~~}~}{}~|w~y||{z}y~w~~~||}}~|t|}{x|{}}|}~z{|{}~w~z}{|}|}y}|w}{~z~z{y{z{~~}~}z~y~{}|}~|~}zzy~|}~w{|{x{~|||~}}z}y~z{|}zux}~|~~y}|z}~}x|}{}}}{~~~~yy}z}|~}|{{}yw}~}{{|}}z~|~~w{|~||~~}{~~{|~}~}ztz|}|~|z~zy}~yzwz{||~}~wzt}x}}wz{vyw|}uwtx~u}~~z|z}|~}}}|u|{y{}|}{}rx}z{z}~|{y{zy}||{yz~}~}{|}~{|~~z}z|y}{y{~~}{}{x~|}}|{|w~|w~z|{wx|~zx~zv}z}{{uzu~~}z~~|~w~zz}}~}|ywy{~}{xv~{z|}yxzyw|xu}u~~p~x~~}{|||~~~sz~|zz{}}x|w||t~y~~u}xz~v~wzz}y|xy{}x~|~|}z~}~{}~zv~z~~z}z}}~}u~xzz~xyw~zv}~x~~z}xzt~~~{{||{|zywyt{}{s{yzu~{|{~|~~}|x~{~|}}xz~~}}yzzyvz~~||ssx|~}w}~x~}~~|~w{~}~}x||{~~~}|~|~|wx~}~}~vy|~{}~{u|}}~z~|~|}~~}}~~||{~xw|||z}~zx~|z}{}x~~}~{}~}~|~|}}||~}}}t}~}~z{}x|w|{y}}~}}}~}}y}}yz}z~||}~~~~~~~y~|}|z{zz{|}z}}}|{||}~|}||~}|{}~{}~}~~~}u}|{|w}}~}}~yww~~sz|~{y{||{}~~{{y{|w}~yxy{|~|x}{yyzy}||z|~}zy{~}{}~~xz~~y|{z}}|zz|}{~{~}z}}{||zvww~y~zx{|~z~~~x~z{xz{|z|}}t}{z}yyv~yxz~}}x|u~||~~|z~~~z|~~{z~{{~}x|xy}x}|}}~z}}{{}|~~}|z}~}yuz}}|{yz~~y||}}~z}~}yy~z|z}|{}~~}vy~x~u}|}~{xy~{~~~~|}~~wz~y~t~y~u~{yu|~w}~|{y}x}wxw{{{u||~}}~~|}|u~~|rx~~z~{w|~w}q~}wu||}z{x}yxyx|~|xxz{vz||{|~|}{~~|w}yx}{z}}~x}vv{|{v|{{v{}~}uw}}~}|~y~z{zrz|{~~{}x{~|~~yxzt{yz~v{z}}~|}~~vzy|zxyz|}{~{yyx}|y}}}~yrz~x~y}zu~}}}|z}~zy~}xz{y~}zztzy|{y}{yy~}}z|~|}{{~{~}|||~|}}|z~~||{{}{}|~~|}{~|{}~}~z~|~~|{~{~|~}{}~x}|||~y{{}{~y}~{z||}||z~~}|z|{}{{~z}y~x||~y~|}}~||~}{zz{}z}zyzzz}~~z{z}~{{{u{}y{~|s|zv{|}}zyz|}}~~}w{~~|~z~{~{~~|}}}}}xz{}}|}~{x}~~|}z{~|~{{~y~{{}||wy~zz~uy}~y{}y}|y~{u~~x~}}~z}w|yvz~|{z{}{w~z~|}{|x}xx||||~~}yw|~z}zu{||~}~{|{}{|}|y~xz~~{|~}}~{y~vyz~}}x{u}zyy{}v|~~|~~y}}}|zvy}|~|~yxu||~|}}{|~|~}~{v~~~}}}~~|}}{{~~{}|xx~~~~~z{}}}u}y|~zy|~~}{{{|||~{~~{{{}w~~wx~{}|x~~|xx{y|}{~{~}}|x}x}{~}|yz{}~}~{||~tz~vzwz~~~}}|}x~~|wzyz}~{zy}xxz{~|~z{y~z{vz|zz~}|xw{}yz|{||zz}zy~~}}}x}~|v~~{}{x}z}~~~}w}~|{uz||{xz}~{z~~~}}}y{{}xz{~}{||}ytzy||y{}zw|{{z{}~w~}~{|{|~~{}|z|y~~y|}}|~|z{{||{{~~{{}{z{}}x}}}}|{|{z{~|y~x}{y~{~}{~}~x|y||}}z}z~x~}x|}~y}~~}{{w}~}y|~zz|}|yzxxy|{{z~~}}}{}~}x~xy{}|{}{{}y}|{y}{~{{~zv~y~vyq}|~}v~~{{}{}zx|y|zww~}~wy{}}~yzs~||vx~~|z~|v{~~{{~{}xxxvv|}||zu~zzxu}}xu~~}~z}z|}|vy{}y}|~|}{~{|}|~vw~{y|}z|y{~z{{~{}}{z}z~{z{~|}y}}wt{zyy||}||~~wz~|~y~|yr}z~|}|}zy~x~t{w}{y~x{~u}}{zt~yz~}wy~{}|yy}{}~zx~yw}~}}vx~y{z{|}zy}{|vz~~}||zy}x{}~~{}}xx|{~{z|z}u}y{}}||~}|y{}|}}{}}~w~y~x~~{~uz}|v}|{~y~v|xw{yzv|{{{y~~{~|~~y~~}}~zz~{{||x~wz~{~w{w~|~}~}|}}|}|s}|wwxvv~~x~|{w|x~}ryx}yxzyxw}|uux}z~v|~}z~}}{~y|||yxwz||~~|~||{{{y~xy}}~xqv|v{}{zvzvu~||zvzx{~t~{}|~r|v|}{}}wy~x|xw||x|~uxv}zxy|}||}~{x|}y|z{x}zz||z}x{|{z~~zyz{}}|z|}|}z~{~}}~{|{~y~z}{}|}|x}~|~{}~~~x|{zz}|z|~y|y~x~~~zz~v|~}|}{|}|~{}}|z}}~||}{xx}{||~~{z|~}{y}{}{{|~|{}|x~}}|~~~{~}|xz}z~}{~|x~|}}~}wzz|z}z{}|~w{}||~}}||~}~z}~y}y}~yu}|~|}}y}~}x}w|z}yzz~{}{z~y~ux~y}w~~{{~zzyu~}x|}v|zt~xq}~{zt~z}y|~xu~z}}{xz||ysyz~|y{}|u}~|zyyt}{~vy|~{}}|~|uyzyx}zz|~{y}~~}y~v}y{{y~y~}}~{|z}}~yv|}}{~{ww~|}}~y~}{{~x~||~vxx}~|~z|y~{~z}~wzq|~{|y~ty|{}xx}}~|t{~{y~{~xvv{|}}}~}{}}~~u}v}~yv||}y{~{~|tx}x{|{zx{wxz~v|~~}s{{zzu}y{z|yx|}~tty{}~|~|x}x~~{v}t~y{|}{}z~z~}}yw~~zx~~wz~~~z|zwx}yzy~y}}|~}|w||~{}|y|{|}y{{{|zz|}}z{|~~|w}yz||{|}zx{y}u}u~|{}||{~yz|}~{|~~{||zz}~~x~t|z|{||||~v}|~zy|}{}~{~~{{|~~vw}|{x}}z{~~|y||yz}}~}y|~|y}}x~~}x{}z||~y{v{~z~~}{~|{{~y}~y~~|{w|}{u{y{yz}{|y~~~}}z||{}x}|{~~{yu~{{x~~~~z~|y~|z}|{|~|{s{{}u~}~y~z~{y~xxy|u~xvy|x{yt|}vzytz~z~z~y~{{{{{z~z~{}~zx}{w|v~{zy}s~z{~{yywy}yw}}|{}}~{|~}{w{}{svu~|v~}~x~|y~~}z~~~|~u~{{}~~}}w{~}{}}x|}}}}|~|~}y}~}|~}y~~{|}}}}~~~z|}}{z{{}~}}~xy|}~}|w~z}y|y~}|{|z|}{~}~~z{}~rsux|w~}v|u}wxxv|zs}||w{{u}{rzt{|t}|{}~oowq||~tcxy}}~~zxzx}|{x~|us|}v|~v~{}}dy{}}|}|u{}y{~}szs}{z}|{x~|~zzz}|~}}y}z~}~|y{||}|~v~}y}|{x~}|{~|z~~|~y~|~~{~}}}y||}}u~}~~}{w}|}|}z|y||{~|~~~~~|z||~}|{|{}}{}|{|~}z|~~}~||r|yw~z}y}{x~x{x}}x~~w|syx~|xwz~ywp~~x{}xvy}w|~y}z{}{~yw||u}z~oy|}}wtg~xv}r{}v~{~x{{~yzwv||z{s|y~|vxxvz}}|zwu{zu}~{~t~zu|r~w|~}~}|}yts~w{||~zy}v|z}}u|x~}{rv{y{~wxs}{{|q~{yvxt~ty~vzy}q}|zu|x|wy{|zy|tx~p{{o}x~}y}uwxzwzy}yywy|vy}}}z|{v{||~|{y|}}~zw~{|z~z~xz|~v}zz||~{yz~~x|{}z~{yz~x}|}~|~z|}{z||~zz{}}}z{}{wx{~z|}~{}}~}{~|{y~~}y}~yv|}}x}||z|~~y}~}{~{}~~vz|y|{vzyv|}|{}z|xz~y~~z|~{xw|{}}}~|{|syy~r~{~r}v|~zz}|~x}rz{w|~~x{~|{u{zu}}x{}}u|}~}|}|~z}z|w||z~~~u||~w}~zy~~|z{}|{{}}yx|{w{}|~}~}{zx||{~~~|xyz}~vzzn{{|~y{{y~~x|z~s{z~{x}|}|z~}{rzz~~}}z~~y~~{~~~{~}}y}~|z|~}yx|zz~~~~|tw~|}|}|y{~~}~z}{|}~xy}}{y}||{|}~{u{{||zy{|{~}~{~{z~|~~}~~z|{{~|{}x{~z~}{}|}z}}~wx}~y~wz}z{z~z~yyy~{|~{~{|{{z~xy~}~z}}y~~wxx}|{y|}|||x~||y}y}~y~~~{y}~}{{|}}z}}~~}{}~~|z}||~}z~{y}t|{yxq|~}{x}v~}~~}zz~~|}~}}y{|~}{}{x|y~x~z}}}~~w|~}||{|~}}}|}~}y}|~}{}|{|zvz{}z}}~y{~}yz}z~~|~z~|{{z||y{{{}|}z|xy{~{~}w{}wvz~}}{}z}{z}~{|~z|~~yz~~{~}~x}~~{~z{z~|}~yx{~|~y}|y||}{~z~~y|}|w{z{|}}}|z|zv~{}{~}~~~{}||~~~~~~~~{}{}y|}~|~z~}}~x|~}||~~}|~~z|}|}|~|xt~{|yyy~}zy||yv~|y|~}~z}{}~~{{}{~|xy~|z}~|xy{}xzw}~}|yu~}~|wz}~|z~nwy{~}u~yu}t}}||z}~zwtzv}w|{~}xt{y}~|xwzz{~|{~}|y}}}}x~{y|}~xzz}~}z{}}{y}|~rxz~~}~v|z}~~ywzz{||w|xt~}|}|w|sy~{}~{w{v|w~|zz|}}~}}}}}~}u|}|y|}z~tz~u|uyz|~}||~u}y|~|{{{r~}xy}y}{v~~~xy|}{~~{{}||{|{|xy}}xy~{~~}{}{|yy}z~}}~|}{~~}z}}|||~x~}{yx~{{~}z}}z~||x{xzzzz~~~~}}x}|{}~}~yz}~}{~~yz|zu}}xw|~|x|{|}}{|}}~z~}|z}|}~~{z}z{|}}zz~zx~}x~~z~~~~~~~~||}yz}~{}|{}~~}|{{}z{z~{www{~}||||}|z~x||~~|}}}x~z~|x~|t}{|v{t}|~{{{}||}|zx}}||~~{~|}}y{~{z~y|z~}}{yxx{||~}{}z|zz}zw~||~~~|~{}}}{|y~u|z~|{zut}zz|z~~{|~{||t|z|y{|{}|{{~~|{}{{yx~}}||}y|{{v~~}{|~zz~z{}{z}zx}~}{}x~{z~~}~~{~{vwzx~}~{||{zw{~|{}}~zz~|y|}|~v}zv~~t{}}||~~zxy{}{|}x~}|u~z~zx~}{~zx{|y}|~||~||~|~{~xwz||xs}|~|||x|stz{~~|}{z||z|zyww|y}{{u}}~~}}}~|}{y{{x||yy~~{}}~wz~{~{{}~z|{~{xz~y{zw|~~~~~~|vz||z}|y{|{~|{}~~y|||{}||w~~z|{z|~~}}{{~|}}}~~{y~p~}{{|y}xyx{~}}}v{u{z~vz}~~|}{~~|||z|vy~zz|x{w}y{{z||z{}}~{~~|z~{{~}~}~~|}vtx~|v||xz{x{{~{|}w|zz~}yz~t{z~~~{yz|x|||}y~{~w{vy|{{~~}|~}|{{y|~w{{w~{~}z}y~~|{||w|zz|z|{|~zz}}|xz~|{~{~{y}{z}}}z}~~||xzy}|wx{xy||v}~{~|w~z{{}}}~|{z}}{x~|}|~}}y~}v}wz|}~xy{|z|~}|{{uv{~z}zxy{~~~|~zxx|}y}{xv}}}~}}}y|yz{z|~|x~w~}w}}~}y||~|vy|}w~}{z{{x}}z{z{z{{w~y~y}zys~w~|}}y|y|{u~~{{s~}{|zx~~}y~y|~wsxz}~y}y}|v}wyz}~p{z{~|||x{~|y~|{}}|zvz~}~}}y{x}{}~||}}yu|}|{~~{{~{}|}}~~{~{y}|y{yz}~yz|yy{}{~z~}~{{~v{x~~}z}{w~|}~{{z~}}|w}y{||{~}||~u|v|w|z|}wy~}xvzz}|}y{v~{}~}{t|~~xz}~|{}{|{y~~x}t{~{xw~z~~}}}}||z|z~|~~~~}}z~|{|~x||}||~x{xzzx}~uw|s{|~||xz~~}wr{~v~}z~||~y}{|w}}|z{z~{~{yw~wy}{wz}}}t|xxx}y{{x}y~~z|}{}{zzz}{~|t{}{y|}|}~|}~~}}z{~}x|zxu}z{}{zuz~y|x}wz}y~~~{}z|z}w~y~}}~}v{~{|v~z{|}~y|~}|~zw~y||~}yy|ux|y{u{}xk|~}{}{}~y{||~}w}~}~}{}}y|v~zx{~|~}|~zzzzy{u}}{}yy{q||{}~|{y}{zz~~}z~|y{w~}xy}||~~|{}y|}}|{}|w~w{~||{}{wz|w{~~}~{~~}}}~~~yzzv||y}{~z|{{}wy~~t}v~~{{}|}|~|y~}}}{{yzy|}}}|}|{~|}y|}|}x}y~|~z|}{~u~|z~}|{{}{y}~}~|yxz||~}{wtz~~{{{~}z~}~{~~z|z|~~z{{wzx}{{}}y}}}y~||~y||}|z}x|~}}|}}}{}{u}~z}z}|{{~}}{uy}{~yy|z}~z{{|z}~u|~}{}z}}||~|}~y}zz~~yyz~zw}}yzy{y~}~~{z}{}{{y~~||{~~~|~}~{~}~z|xz{}~}}}y}||}|z|{{zx{}u{y~{wz}~}|~|zv}uy{v}x}|}~w|}zz|~w~{y|||}{||~zz~}}~|z|}~~{}}z~y|}y}xy|{~~z{zw}z}~}~z}||~x~|~w|~}~}}|{}~{~~zw~{~~|}zz|~}~}|}~w{{zz}~y~~~y||~x|}||||xzy}~~|}~~{yzzy{wz~~|~~|z{}z|}|~z|}}~}z~}}y}}~z~~}{}}}}|y|{~|z~}~~~w{{~wxw}~}}~yy}zw|~~||~{~y|xz}|}{}v~w|}}}{{|}}|~y|z}uyy|wu~|~}xz{~{||r~|~x~z~~|~|~w~~y{|}~}|x~w~|y}~y{|}{y~||}~st}|~}}~~~~~{}z~{{~{z~y}}~}~xyywyz|~w~~|||{v~|y{}{~{~zwt~xz~~|}~z}~x}}y|{~~u}|w|}xu{}uz~u{|~}wx{w|z}|{{z~|y}}{}||{~|}{zy}}|}w~v{||}|y}zzu~~~}{{z|{xxy}~|}~~z}{z~}{}~xzz{~}}ux}~~y|}{|u~zv~v}{{yz{}}~|~yzv}||z}|xzxy~y}z~~y~}{}x{yv{y{z~xxz}}~~z|}z}y~|~{}y|{}{{{zx{~yx~z|~||~{s~y~~{zxz|~z~|~}}||v||}|v}{w~yyz||yrz~{}{|{|||~~~{~zz~{}{}|yyx~|}|{~x|}~}}~y}|z{~y~{|{|~{~|~}y{~yy~}|y~}~w{|~~~x{{y|z~{|~}z|~y~|z~}y}|~y{w}}|zzzyyz}x}~||~y~}|}y}}~z{}zx{~x}|z}z~y{}{}zxy~~~w||}|y|zx||~zx}}|y}~|~}~yy~~{}}yz|}~~z~}w}yz}{~{}~{~~z~}}y|}||~wz}}z~{~w}~~z{~wzz~x~}|~}{~~x~x|~}z~zw}{}~}{zwyw~}~}x~x|y|v{~~{|wyy|~x|||yyv|~x|~|y}{~{~zw~t~zx~}zy~|~||y}|~}~}zx}~{x|~}{{z|~}}~}|~}~z{~~yz~y~x~yy{{}uzyv~{{{~}|~|}yww{z|~~}|~~{t~}}~}y|~{z||||~|ws~}w|z|w{~{~~~v~{}}}~z~~}|~~~|y~|z~y}{y~~~tw~}y{}|}~~}{|{z~uz}{|}w{x}|z~}~z~{{}z{wy|x|zwy||}}~z}~|}}}~z|z}~~{zy{~|}}~{vw~y||}{}z~|z|}{~{}}}}u{~~||zzw|}~|{ywv|}~|zu~}}~|{z}~{t}u{~~{}z}~y}{zw{}~~~x|z{~~~}}xx}x~y|{zw|u|}uzxw|{u}x{{||z~{~}~~|{{rzvzx|zv}yy{~w|}z|||yx~|z~vu~~~y~~|zw|q{y~~}xvy{{|~~|v{~y~}}~|x}}{}y|}x}~{}~xrz{x{zyv}{~|{|z||z}{yvv~z|z|x{||}|x~~~}z~}~}|}~zz|ux|}{{x~~x~~z|}}||y~{{y|{}}|}}}}|}~~z~|}~~{}z{{x{~}|~w}z|z~{|~yv{~~y}}yzz~x}t~yw{|}z}}}zv}y~~}}}}xw}|~ywy~{w}}z}x{}}~~wyzz}|y|~~y}~}x|y~~~}}{y|r}}z|v~w~||z~{x{}}}~}|{~z}xzyy{|{u~{~z|{{zzz{z~{}|x||{}{|~xx}}~y~|}{{||||~~y}~~||~{}~~|}}}|{|s}||}w~~~y{|{x~||~~z}}y|}~yt~}~z~y|~y}~~z|yzv||~}~}~}}}xy||{~{|{v}|wzwuy~y~~zy}}w~zzuwu{zzw|vz}}~}|vlz~||v}|twz||{tp}y~||}{{~~z||~{v}}|v}|x}z}y}tx|vz~~}}{{~uv~~{|w|||}zotrt~~yy{z{|{{vy}u}||~}w~~}~|wzz||wxzyy~zx~~}~z}}{|{~x|~}||y}~}|z~~vw{zyyy~z{{~z|~{}}|{||{z|s~|{}~}||y{~uy}{{~yy{yx{~|}~w}y{v{z{{{|||zz~|z|}|zzw{~}yyy{}w~zz}~}{{|z{z}}w~|~~v{uw~|ux|z~zz~|x|{}~~{vxv{}~}{~t|u~|x}x|yy}~}x|{~}z~zu}~}{~xt}||~~v}y}~z{x{{zv~~~~|~}|z{|x~x~~~~~{}wsx{u}w~}~|u~z~~~x{~|~|zww}tr|ywz}{{}v|~|y}}z}zzz~|~~z~|{v~{{x}|~}|{}{|z}}~|xz~~{z~y}||}t{~~y|}{yx||x~wwz~}|||{{v{~{|~}z~}}~}{~w|~yt~~v|}~|{~~}{|~z|~y}~}z{w~|~~~|z{~y{}|}tzp~}}~~y{{{}{{~{{|zz}}y~vx{~}~z{zru~|v~{|zyx{{|zzz{}{{y~}|v~{{}}x}yu{py{}z~|p|s}|x}{~|j}qw}|xvzw}x|y~~j~t~y||}{~w~u|w~|~{y}z}u~}{u{|}p||}x~vyyx}~v}ywz}{v~}}{~xuwxzs|zus}~u~vvyw~z}}w{}{z}~{o~{uu~|yyzx{{v}{zw}}wvxt}|z|yzz{x}u}~try}|~~{{ys~xty}|x}v{yvw~x{xx~t||w~w}}~}}~{||~x}{{|{y}y~~xv|~}{z}w}{z{~{z|y|r~|~z~y{y{~~{}|}~z~}}{z~}zx~y}u~|w~{{}|z~z}ywz~|x}|u||x}{|}z}|u~z~v~x}{}}~||vy}}~}w|p{~{y}{}yzzwx~x|~z~{xz~u}t~|z~z}}~y|{{~wz}y|{~{|~~z~}}{~}x~z{}}z|~|}}~}}~v}|z~~~~}}}|~w{~~}y}|~{~yv|{xvy~~|{{~w}~x{|v{|~~|~~wz|~s}~~|{{|~~x|~y}yy~{w}p|z~|{z|}}|w|{}wz|{}yz{~}x|y~}}}z~}{}y}~{~|{zy{yxwt|y}{x}{~~ys}v~|~{}|~z{{{y~zw}~{~zy~}zww}~~|xz}||u{~{zzzw}~z{w}~|x}{}{|y~}|z~w|w~~~}}{{}{~u}{{{~}}~~~}yzzzw|~|x{}}}u}~x{}~~|xz|vx~|~|||v}}~w{xzz{uy~y~v~}~}x}~~{z~}|}}}zx}uzvy}|{{{||~}~|z|~|~||~|}x{}{z{{z}z~}zw}{|||}y{|y~|}{{z{~|z~zy}zv}|z~~wvz{|}|w{{t}|{~zy{yy}xwx||z|~~~}~x{{{~}~}~||zzz}wy}|yx}wx|}py}|{}}{~}z||~~{y{zw{zx|z~}x~|}|y|{ywywuy{~s}{t|{yz{wxr}{u{~y~{zu|{~~~}{||x|wz|}xzt~}~x|{|~y{|x}~}zz|{yzz~wzwzy}|zx}}|{wwzxyz}|~{}~~t{{~|}}zz}u}xyx~}wwz~~}z~~z|~w}|~{y|~~|wzv~}{|{{{{}~{|vz{s|yzy{~xzy}|v|}yyu|~}{u{z|y{~~}|~yw~{z~}{}~{|{|~~yzyx|~xz}~wu}s}|}~y}~~}{}~~yzz{~~{y~|{{~~z{}|w~~~z~}~{|||~~{~|zz~~z{x}z~{}pz~x|~|z}~}|{z}|{~{|y||}~~}y{~}wy|{x|}|z~{x}|{x{}~}|v|y|v{x}}{|}~}{|{z}xy}~v{zzuztx~}|}~~|u|||{|y}|||~z{||xzxxzxryzw~|yzy}ww~}|~~xws~}{xvzxxv}s}{}uz~{~|}|}~|{y}y}rt{yz~yrz~{}x|}|ux~{|||}u|}|~z~t{zz~~~|z{{|s~x~}~|~zyvt}~{|}xz|z||t~{}zryyx|~syx{~|}~wx|z}~~{{~||~{~~{y}}w}~}~~yxwyw|~|z}~z|v|}ztz~x~xz{sw}|~yyww~|~~x{|~v}z~}w}}}x}u~wu{|{~~~z|w~{~{}}w~~}w}}}|zy{~|{{~}|}zzzz{}}vx{|zz|x|zzz}vxv}~~~}}x}~~~z|}}y}{x}y|}{}sp{~~|y{u||~|}}y}~~|}y{~u~~{|~|~{y~~z}~y~y~~~z}}{}}|z}{~~{~~|~z{}y}~}~}{~~|}~}{|}}y|v~~x{|{}||{~}x||}~{zw}~~y}}|~|}{{~{~~}zy|}{xy}}}zz~{|z~t~~|x~}{}}{~}}|}xy~{z||z{}z~}x}z}}}z{tz~|~|}|}yz~{~~|~~~}{}}}~x}v~{}z~|}|v}}~v~~x}~y}|~~}|||yy}sx}{|~|}~{|~zy|}x~}}|}|}yzx{}~x{|}v}xz~}||~}w|x}{{v|z}|||~x{vyzxw{~z~{x~~uwyz|}|~}|{~}{z}y}~~||}}}y|y~w}}y{}}~{}}}~z~}|~|z~}{{}}z|~zx}y}z}}}}y~~~y{zyyz}w|~{wx|{{{x~~{|}}~|}y}}~}~z~{}~z~}z~}}|z{~zy}}~{|~y|{}~}{~~~|~~{yz||v~x~}|x}yyz|~~y}|}|w~~y|{}|{|}~v|xz}||~~}||}~}~zz|~~}}zw}{{~}{~|~{~}~~~}~~z|}~yz{||~z{|~y~}~}}}~}|~}~}~||~{~}{{w}z{z}wzz|~~~{{~}~}z{~{~~||~zx}{y}~}}{y}~~~x}vy{~y}z{}~||}~z{~{|x{~wyxxx{wy||}zw~x{t~|}{~{~w~zy~}~y|~}y}|}zz{}zz|}z{}~~~~}~vvxz}~||z{}{~{~|~|{|~~~yvzv}{|~}~yt~}z~}}~wyz}}v|~{~}{x~~}}|}{{{y{~}}y|~~}{w~wu|~z~~|~z~|{{|wz{x}}|x~}~~z}z~||~y~}|}~y~~}z~||ywy|z}~|z~z~{}y}~{y}{{~z{}}{~}}{|u}|~t{s~|yz{{||}~u~xu{w~v~{~zu~q{}|y~}y|}}~}}z}~~~{~q{zu}y|{~~t|z~y}y~{}y}~~||~u}~~~y{{zzv}~|wz}}}~~~{~{~|~}~yz{}~{{{}}~|}}{||{~~y{~~|xx}}|}}{{z|~~}||yv{zz{~w~|{~|s}z|x~z|{{|~|}|~~z~zx~{|~}w|zz~z{~vt{x||xxzxv|~w}z}y~~|w||}zsy~{|tz|~~z{zvvz|{|u{~~}z{{}u{vvwv{sxz}x||vy|}~|y~|y}}}z~y}z~{~xy|{}y}~{|~|{zwz}}}z||zyuvv}~w|}}~|}o~||y|}{}~ywu~y{|v~||~}|~~yz}z}z||{|~{|}}|w||yzxz~x~~{y|~yy|~|}~|{{}}||v|~|}}x~z~}{~|x{y~z~{{}|}||~||~~~}~}x~w~~~}w}|}x|}~}{}yz~|{~|vz~|~|||~||zz}}||v~z~~~x~~||~x}~}xy~~z}|{zy}{~~|zv{|~{}~||}{|}z}{~}~|}}t|z}{~zy~|~}zvy~}v|wxy{w{~}|~~z|}}}|q}{~}~w{{{~|t|}|x{|x~~yx|w|y}{x~z~xys}}z~yx~|vw}~~x||||}|vx~~zx|y|vy{|~{{~|~|z}zyy{}w}{vz}z|~|~{{~|}|z}z|y}{~|x}}|}x|}|}|~}~{{||~y}~{~w}z~xy||~y{y~y~|{{{}w}y~y}~|~~{~x~||z~z}{||~|}z}{y~~{z}{~~~~{~}{}}{}~~|z}}zy~zz~{}~z|{w~~zz}~~~}~zzz|~yxvx}w~|z|~}z}y}x|x{}r~w|z|}|~{|{~~{yy}{}z{z{rv}~~{w}|{~|}|y{~yxy{v~~}y~z~w~u}{}y~~zzx{}y~v}{|v{|}x~|~~|~y~v~}y~}zy}~{y|{~|{{~~}~z{{v~~|x~{}}|~yt~}|x~~|~y~xy}~z||~yzw}~}|s||z}zz|{z}z{y{}~{{x|vz~~z|{~}y|xz}w|{vw{w{{r}vy~|~}u{~~|u}wy|z|~{w~}{{|ww|{t|sz{yzt~x|x}~yxyv~~~w{}~{|yyv|wr{}~|~|~}ysv~}zz||}u~{xx~zvztz}x}zzw{|{~~~|}z|xr}y~y|{vx~z}|t{yyyyz~{pzyq{|{~{|~w{}xx~{w~{~z}z{~}zz}|x{x~~|s{zz}~|{z|~|}z||uz|x}||}~~x}|~|z|~~|v|||{}z}~{~z}~{|||{~zz}{~||~tz~~}||{|u~{|}}|{}|~|y{}{~}~z}vx||uyy~||}z~||~{~~{z~y{~}|}y|~}~x~{|xw}|~||}||w|z}v{y||||z|||~~~|y|~|x~||{{~|{|xy~|~|w~~|y}xw~}}zxyyzw~{{|w|}z||z||z|{xzz~yy~|zw}{{xz|~}z~~}~~z~xyx~z~~zxyzy~|~}|w}|x{{}x{~{|~y}z|x|}w}~{x}yx|||~y}~}}|||{~}y}y{~~x|~}xz~}y}{|}{{{xv~{|x||~sy|y}zy}~{||z}{yx|xz~|wv{|v||}|~|~|oy}{xxvz}}{{{y{~{w||~|~z~|}~}uyx~||uy}|~|{{xy}}~~~|w~|~|||{zzyv~u~}{v{~|xz}~~z}~x{|~|{~~{|{~~~z}y|zzzwuz|}|~y~{zzz~~~{{{~~{zy~~x~|~{{~|~}~||~~}xz{|z~z~zyx{~{zx}z|~}|u~y~{|}z}~~}z{|}{~~|y}~|}w}||{|z}|||~y|wv}||}}}z{{z{~~}|s~|~zz|}~}|wx{~zy~{z~~|u{t~}yx}z~}~|~y||~|zx{|}~{|}y~|z}z}y~}}y{z}}|~zy}~~zz~xw~}v{}~{{|~vr{}~{{{v~z|{{u}~}}z{{w{}}~wyx|}~}~|x}w|yywz|{}{xwz~y~y}{}~z~w}x{~{}}|~{w|}{|{~y|z~~y~{x}~y}}}{}y|z}}|zy~z~zz~|}|~|~v~|~|zw|~x}|~|||x~||{{~z{|xzywv|z~z{zwz}x}~~{x~||}}w|{y{z{|z|w|~{w}~||q}}x||}y}wx}zz{vx|vzw~~u~v|z}{{}~~{~{|{~nxzzz{v||{{u{{~}{{}z{z|{z~~vtuu|}yzw{}s{yv|y{xz|}|x|gw{|xx~}x}~{|zz~|y}w}}|}{}{vy{|{xn~~sv~|{}~x~x}}x{xz~}{z}{~t{~}v|~~|~zyv}z}y~s~x~{~}~{r|~z{{v}~zwu{u|~||}}~vy~}z~|}t}z}~}u|{~z~zxwyz~y~xv{zxz{yw{}yzty~{|y~~}|}{~vu||y|v{~}}tsz}wz{}zw}yx~w|{wz}{}{|v|v~z|yxy~||wz}|}|x||~y}z~~}}w}~~~wv~~~w|~}~xy{|~}{}~}~}pz~|||~x~|w|{~~~~v~{y|v}z}{{xvz||~|y|v}|~~vvzy}~z|}vzv}z}{}~~|y|~~|~|~x|~w{}||~|}y~~{|vv~z{{|zy|}}z~{z~yy{|wy}z~{{z~{|{zv|{v}{}y}~xw{~}z|~x~~~z{r~~{{{x|w{}t|{{x}y{}|{|{}}x~z~~w|zw}{z|~{}zwz{{}z|xz|~|}}~x}{{|w}u||{x~{z|z|{~}y}~{|t}}~}z~|}}}|}~}z}||}z~~}}y}~}|~}~~}~}|~|z}}z}}|}|{y~}}}~}z|}}~{~~|z~}|{wz}}~|zz}~{y|}||~~{|v~{y~y|}zz~}}|wxv}{z}{~|y}~}z{||}~{~}z~{t~x}~}~x~}|}~y~|w~~zvx}}v}~~~z{}~~}{|{~|~~z~|~}~}~~{v|}~z~}~}{y~}|~}|x~}{|{x|~{v{|}w~}{v{||~||}v|r}}|{~~y}x|{x{wy~}t{y~{}~zw}}|}|{{~~{~y~}z|{z~x~}yy~|~~|~z~v|}zuxxw}~zy{~q}{|}vzz|~y~~~z||yxy|{uxu~{x|{|}}xv|}y~~ux}~{y~wz~y||{y~{w{z~|}}x}~{z|~|x|||{}|~u}}~~||}{yw}v|z}y}~x~{{y~x{~~{y{|zy{{~}x{~}yy~}|uz~ys{|{~|xz}x}}}}|}z~|{}~}{{~~}w~~wxzx|y}~u~xr~z~vuso{vw{z~}~}t|{{yz}yzxyy{y|}~~||~}z}{~xr}x}}~uy{}~y~~|~|v}|yz{zz|~w~}|z~~~zi{w~|~~|vyx}|}~~~~~zy~~y||v}}yz~x~v}|{}y{z~y}~~~~w|xzu|{{|q~z}}}}~y{z|~{~}}~y{}z~}~x|s}{z|tyz}yz}~~y~{}{}yzz{xv~z||~||tz~zw|~{||~|v}u|~|~}|}~{~z|q{wxy{z~{x|~|}yx{yzz~~y~z|w{}}|{z{~}{}||z||}y}|zz~{|{~~q~~~{}~z|}~yu~yyw|~~}}{|x~~y~~z|}|~}}z~zx~}~{||{x|~~~x|wy}|~y~{z~t}{z}x}x~}{~|~~y~|{~y|}~y~{z{{{|w~y~|z~zty~yz{|vx}}zyx|z{}{|z~~y{}yzy~v|~~~|~ux|w~ux}z{{vz~~}~|~z}rt{yvz{w}{yuq~w~|zwt|y{x|||z{{x}~||}||}z~~~}~~z|z}}x|~z~{}|z~x~|zzx~}w~|z}}|zy~~{~}}x~}{~{~}~{w~}~}x{}x|y}||v}~~~}~~{{{}z{z}x~~}}y|z||}}{~z|~|wt{x}zz}|}r}z|{{x|~z{~|}}{yw{w|x|||y{~~}}z~}~}}}}w~|x}y~w~}}~{y{{yx~~{{z~}}}{{{{~{{~}|w~}}~y~|{|yzx~~|}~~z}z{{{|}y}{y~|y}o||~}|{~yv{y}zzz||}|}w~}}~|yuz{~~xx~||}~z|}~{|zxw~}z|}~z~}|{}}w{{|{y|ysx~}~w~~yyyw{~|yx{x}|}zz}~~uxxr|wz||~x{y{~}{~y~y{w~y{x|}w{{}wy~x~|~}~|}y{{w{z~|~{x~~v~|~~~|{{xz{z~|{}x~}v~{}}y{z~}}|}~x}~}yz|{y|||x|z|zx}z||x~zq~yxzyy|z{|}{z}w{}}|~{zzv}{~}}z|ww~}{|}t~x}vur}}~~~~{x{zwz}wy}zyx~}|{|x|uyp|y}{|zzw{qzz{}{z|}yq~}xz}z|~|{xyvx|~{{x|y~y~|t~u}w~zyw|w{~ty|}}wutz}~u~vy~x~~~}}~}|~}||v}}zy}{z~~~}|}w|z{}~~x|}~~}|x}}}{}~~}x~}~||y}}|x}~}{{{~{z{|}~~~}~{~~|zzy{}yy}~~~z}{|y{~}y|{~~w~x|z~{}|~w~~z~|}|~~|}}}~{~~|xz}~|{~~~z|}|}~~}~{|~~}|~||}~|~z}v}~{~{||}|}|~{}v|}z~z~~|}z}~~{}q|}{}}~z}~x{~~w~u~~~~{|}~z}~}y{||{x}y{|{y}~yw|w~}{~}z}~w{~|{~zz~||}~}}~}||tvz||||z~~||~{~}}{}~z|wyz||~w~w|}ux~||z}~|}x}~~|yy}}z|y{|yy}y{~|~~|~~~~~{~}{{}~z|~~z~||{|w~}|~}}}}~}~{~~~}~~z}{~~{~~|zz}~z~~}~~w|}xy}}~z{}|{~z{~y{zzv||~}{u{z}|}{ryvy~}~~}{z||{w}u}}{|}~y|~|y~y|y}z~yz~{}{z{|}y}|~x}|~}~~zy~{}~||~~z~x{|~y}z~~}|}|yw~}}}}{}{|{x}w}{|u}{x}}|~x{}r~~~whyz|}lt~sm}q{v}~kuj~}}prhy}{~w~|w}{{yw{|{{vx{|{}~zv{}|xz{}|y~x|yz}~|~~}zv~{x~|zz}z~|z~x|w}~zw{|~|zv~wz|||x|{x|}||u}z}~}w}~~z{xxxz~z~y}{zv}}y{}}~}z{~{|~}|}y}~}y{x}u{z~{|y|xwz|x|{|~z~~~|}{~z||{~}~{}}~|~~~y}}}u~yvu~{{z~~|y~{|}w}}~y|z}}~}~y{~}{|uz}~yyz{}{z~~~|}x}}s{xyy~{xw~{yvyx}}{}}}}v~xx||}|zz{|y|y{w}|~~z}|~}z{s~|}v}w{}~|z|}x{{~z~|}zwnv|}}}~~{~ux}}y}z}{~|~{x|yx}{{t}||zzz~yzvxzy{~s}|{{z~|~~~x|~zw|~}~z|~z~w~|yxyyz}~}wzxy~}z{}~{}zu}zwvw~|}z{|{|||~|{|y|~w|~y{}~w~xx}}z}~y}{~~|~~}|{~}}~~{~~y|y~}~}z}|{}{|~}{x}|zy}~zz|{~~~~x}z~z|}~}~|}v}{{zwx|{z}~x|~wu}~{}|{{{{~|z}|{y|x~}{~}~{vx}yzz~~}z|}{~z}~{{|~zy~yx{|ys|~{}{~ywzzz}u~{y~z|{~{zw|z~~y{}~yz|~|yz}|~~y|||}qx{}u}|~y|yyty|~u~y|~tz}yv~wz}}z|~z~~z}}yzwtw|~wz{|{zyz{z~|y~xy}x~}vyy}{{|t|~wy~|~{x~{~}|z~z~{}~||~~zvx~}}z~x|{~||~z}z{}~z}~|}vz}xy|~|~~~~|}vw{|z~y{|y|{{y}y|}{|{xv}~~~yx~||~|{{~{}{{}~|}pry|yz{{~~|w|{{{~|}}}~}~|}}w}}~}{z|||}~yzyzyz}}~vzu}~||}|}}|{y}w}z~||z{|}~tx}~~yx|xxz}x|zz{z{~||}{}}zq}x~y~}|~{u~{|{}|z}v{~|xzyyzv{xvy~}{u}|~}z~}{~w}y~|yz|{{|yy~wyx|~x}wy||~z}}~~}|y}|{z}y|y|~~~|yx~}x~y|u}yx{}~y|}zx|||~}~y~|zzx{}{z{||}~{}~|}x}}w|zv}~~|{~xwyv}~~~}{~~|~sw}z{{}~~z{v{}y|||~uzu~|{~z{~{p{~}y}|z~|}}}|}zz|{|~|yzy~~yz{{}uy|wyy~~{|z{}{|y{}||{}|us~{|z}t{w~~~z~|||zxzxx~{{~~{~{zwzz{|z}y}ur}z{{|s}{z}|{}|zz~zy}z{}{|~zy}}|x{z}w}}u}zx}v|{}z{xxzx{v}x||}{w}y~|x}~|}}~}u||{{}~}|x{|wz}}~y}~|zy{~~~z|v{~|{}{u~z~}x|zwzz}{||~~{~}~~}~wz}}}}~~|}}ywy|}~zw}}{~~|~|x~x~xx|~{v}z{{{{~{xz|}}zwzx|t}{{}}~{y|yxz}x{yx||}z|}}zxyv|z~zx~}xx{y~~}vy|~|xz~{{}~w{{|x{z|zz~~}~}{xy}|{}~z|~{v|v}w~{x|}|x{{yzx~}~py}~x|y{~}}y}y~~{|~zx~|~}{{~x||}~{}|z~|{|{~y~|~ww{~|y~{~~~}}~|z}~}}z~y~}~z}~u{z}r}~~}x{~{|x~~{~}~wyu|~~vy}}~~zy~{x{}y|~u~ww{~w{{z|}z}~z{wz~}{}{~~{w}}~}~}x~|}x}z}y}}|}|{~}|v~}}}~yzxuu}~w~|v~y{}w~|~zzy~~|~y}}xz|xy{{xw~t~~~~z{{~zzxz||zxzz~{y|~y{~|wy||}}t}y{x}r}~y|}x~zw~~~{~||x|w~~{w~~||~{|x{}}y}||{}}zz|{~y|||~z~|}~|}z}ws~yz|z}~{~~}}~}~y{}||}}~zzzxxx}||{z~x}x~z}}|}}}}xyy||}~xz~{w}~|{~}~|}~~|w{z~{~{{}}~zx{}~}s{|yyy{|x{y}yz}{}~~~~|}z}t}}{~~{y}z}~|}|~{}{|||}|~|~}}yzz~y|}}y}}~~}x}{|v~{{}}~|~{||yy{y{zxy~}{|~z~y|x}}x~{}xu|z~|~u}}~}v}{}x|yw}~~w|{y|z}w~{zy~}~v}y~~x|vxz}~|}|zv|z|}}vx|||~|}{{~~}x||{}{y||}}~y||vx~~~|~wz|}}|vz}|z}}{}~{z~|{z~||}}||~}|~|z}}}{{{|||~yz~}|z}z{|~}{{{{}|}|}~}{}~}yz|~|yzz}{ww~{|yy}x~|x|{~y{|~~x}|{y}|}{}}wxxz|}}~}||wy{~}z|u|y~~y}~~yz||~z~{}y{y|v~}y}}{~}|z}zq~z~|y~}~|z}}z~zzv}x~~z|~s}}~}}}}}}|xyx}|x}w}~z~z{{{~~~y{|}|{|}||w~~ywyx~z{|u~{x~{}}~}{~x|yx}|yv}yx|yz}{yu~x|~w{|xxvz}x~jzu|r|zt~}~w}~{}}{ww{}{u~wzxzy|||}z{wy{{|}}{y|z||~~{{}|{}{~zz{w{yz{~{|{|w|xy~vz}|~|~y}~{~yz~x{|{z}}{}~~}y}~{{~w~|{|||z{||~~}~|}{}~{~}xzzz~z}s{~z{~|~~|{~z}~|~x|~}{z~|{~~|v{z~{|{{z{z{{}|v~w}|{|w~~||z}{}{}}|}w{|}~z|~{uz}}{}}}{y{|~{z|wv|}|}~v~{|}|wxyx{|}wzz}z|{|}{}~|y~}zzu}~~vv|vu~}~y{|}|s~~}|~~qz{|z}{~t}uzru}y~}t{}}v~z~xw~~y||}}r}~|~x|~yt~{{{}|x|~|}|vxzz}~~~~y}}|~}}~}{~w}}||||~}}y}~}{|}z||}|}z|v}~{}~xxwz~}~vy~{zzzxy|z~~|{|x|}}~}y}yx|u~z}q}}vwyzu}v{w~}x~x{w}}zw|vxzw}|}~zv|y~z~{}~{{y|w~u{zw}w~w|x}}}w|}xyzy|y~}}zz~{}x~z~~~y~~{}~z{{w~{}z{}}u{~~}~|z{|}}||{{|~~|yz}{}}~{x}}zv|{}uxzx|x}}|{u}z{}{{}~|}t|z}wx~~}z{|xxxz}~wy~}}}w|zy~|x{}y|{y~|v|y~~|~w~|~}}w~z}}{|xv}|{~uv~~|~}}~{~{y{uz~t}zz|}v~u}~{y|~~|}rz~}|v~z|}z}~|}z~|w}zx|zvyz~~}~zx{|}z~|{sy|z{|w~z}|~|xx|z|yrx~v||yz~}}~x~~w|yy~z{{{{}|y~{}}||}|w~~}~v}~~}~~xy|z|{}z|~~{~w}x~}|~{}~}{zx{}}|{vsv{}~|yy~y|}wy|~}yz|z~~|~~|yz~~}~{~~z}x~}|}}z}}}~|~|~{y|}~z|w}y~|{~|{}}{{s{~|yx~}y{~y{{|zt|~{y}yz}~|~w}|~{|}~}z~{~|{y{~{|v{}~~v~x~|zz~~~yyyv|}{|~~}~y}}z|~~{w{~|}x|~~{~~ww|z|{~{x{z}{|~{y{y{}|z{|z{~{~v||}yw{|{|~|{}|z|~~z}}~}~}x~~|z{{z~~}}z}{zy|zw~~~z{}v{~z~||z||x||}~{{y}}}x~{v{{|}y~z}||}}~~{}}|}|{y}}~}zxy{zx}|{~||~~{z{~}}zz{}vyz{xz{}~}{|~{||{{{||z~|y|~{|{|~yz{}{}xz}y|~}|vy{z{{~zx}z}u{w}{{{}|y|}~}}{}~}~y~x}~|||zx~~|}}z{}wwz{x{v|~z~w}}y}{~}{{|{~~vx|y||vz~~}w~|x|wz~z|}}}|uw|||x|z{{y}x~z{y}yy|y}|{~|~{}{zy}~y~z}z{~{z~}~~w}|}|~}v}~|{~~u}{}~}}w~}z{}{~}}|{~|{|||}~}y||z}z}z}||~~}|}{z}w}{}zwzz~~u{~~}{{~{|{{w}x}~x}}|z~{~|{}|{|{~~~zyy~}|{}|}uzz~}yz}|}{~{yz{}~{}v~||~zyyx}zzz{z~~}x{y}{z~zz~|{|||{|~}||||z{~uz}{qz{v}w{yyy~}xyzuz|{~~z{}~xzy~{zs}~{}yyzz{r}{|~z{x}|wvx{uz~yx|u}x|}|}~zx{y|~}w}~||~zx|}{w}~|vx~~~zu}y~w{~z|~w|{}|y|}x{w~v}~|||~}~~}xy}}|}}}v|z{}|{z~~{~v~z|}{}|~||~|}~{{~|~}x}~}~z||}{|~{}}}|z}}}}}|z|y}z}~{}~}~z}~}|~{z~}}}|y{}}{}y}~y}}|y{}~|{}}{}|yyy~}z~{x}zy~x|z||}{x|y}y~}}}}|{v~|~~}{}zz|}||~z{{}z||}}{{~~z~{{|~yy~z|}xx|ww~~~z~~~v{zw~~y}~~|{{{~{xz~{{y{{v}yx||v|{tx~~~y|yw|||{{w~}xy}~}{|~x~~||}}z~{}z}z|zz|{~~||}vz|~x|}~{}~{z~zz~~}{y~|~v}~|}z{}{}}y~~~{{{||~}~{x~}}~z|z|~uy|x{z~|~~}|}v{wz}~y||~{}~x~z~~~x~~~~~{~~~|||s~}y{y~~~z}}y{{{y|{xz|~~|{y}y{y}{~{}}~}|zxx}xy~{~|y|~~|{~w~|{ys|x|}~~|{s|yyyu|zz}y~x|x~~~|}}~~{}|~u~~zz~}{}w{|{}{z}{{~zsw}}~}|~{|z}{z|}{{~{|}~~v{|zy}z}~}{}y|}vz~}z}|t~y~{z~|z}{|~x~v}|}z~{{|{t}||z~}~~~~~~~|{}|}{~}{{xz~{yy}}sv|}}}}}~|wzx{|~~}~z{x~}y|x||~}{~y~~{}}}~}yxx|w}x{yyw|~}}w~yzz{|{r{||{}||zxt|z~~}}ur{}t~}|w{}{{}z~txz}y}|}|xzrw{sv}xwvyxz~}~}~zyxx~w}z}|yy}}|zv~~|}|xuz|y}|y}~}|~~x}|}~~yw}z}wz{{{}yw|}~|z|{}z}|{||yww|}zy}y{u~y~~}x{~xu}}}~}zy~~}~z||~}~|zwv|||{~~|x|ww|zyx}|}~yw~}z}{vt~{xz|{x{|{{||}~~}{zy~}|}}w~||~w{}~|~y{~{||~|y{zu{v|~~{w|x{{x|xsx{u}wxz}yzv}~{|~}u~zzzy}t{|~w|~z{wzy{}}xwu}z{xv{w}z}xxv|}yx~}q}|w|~v~~~w|w{y|u~yw}}w{zvz{{x{||z~|}{~~y||w}}z|{~~}~z|y|}~{{y}}~{~|~}|}}y~~{x}{}z}zw~~}|}z{~||{}}yz~~x|}~~{}}y|{v{|~{~{}|v~}{w|xy~}x|~}~}z{z{||{~}~}}xv~z~}|{y}xt}s|~t{z}}}zzz|~{|{ww~t{{~|xr~|{}t~~|}~{~}~|x~z|x}}~z}~t~}}}{}{}~w}w}{~w{~x~{w}yx}{x}~{yzzz{{~|~yv|~~x}~~z}y~|~r}z~||~|~~{}t{y~~{}{}~}}y{{zz{|xy~|}|x|}{y|{~{|~~x~}}~}~~||uwy}xx{~~~u~w~|yy|vz~~}~~{}}}}z~z~}{~|}}}~yxv|}~x}|}z||~zv~}|y|x|t|y~v}{{}||}}z}||y{|~{u~z{ty}z{{}|}{~{{~{}~|vyr}}~y~wuzz}z{~|~{}}}~~wzv||||yv|{ywx|~z{{v{{{}~yv}xuu{u|rvvxz}}zv~{yq}}y}y}u|||xw~}yrz}vu{w{~|{yzwp}~}s}y|xw||}}~}}}||w}y~w~|~}{}y~}~}{|}{xu~vz|~~y~~|z{~{}}{{{{{|||~|x{y~z}{~{}|~|{y~t}{yy{}y|~}~}~v{~w~zxz|wy{|}{}|wyz{}|~~y}yy|~~z}z~yw{|z~z}~~~~{}z|t||{~~|}{~|}z~~}{~~{{xy|~}|{~z~uzzzy|z{~}~||y{~~zz}{v}z{|~v~~}{zy}}vz~zz|{z}~}{z~}{~~}zzyx|z~|y}~}~~|||}zz~v}}||w{z||}w}}z}~{}zxzz}|}~|~z~zx~z{u~~{|p}w|}|~r{~~~~~~|}z}x~x|x{||w}oz{}~{{~zx~}}}~}y|zy~~~|{~w{{{z{}}xz~|}~{z}}~~}{}}}}~~|}|{~z||~{~|}{}{}~}{}~z~~yw|v{yz~z~|zx}}y~~|}}}{|}~}|z|~|{~|}|~{|~}|~|y~|{z~w{~|}|{x~}~~||y|~|}}~~z~~}}}|~|~~z{~~~~}}}z~}~~}|vxy~y|{}xz~}|{y~~w|~z}|vv~x~w}y}~{}|xvu|~|}~}{z}~~z|~{~}|~z|~~~}x{}u}|~u}{|~}|w|xw{|}~{z~y|~w{}zzyz|z|w|}{y}~{~~|{~x~~|{yy{u{yz~zz~~~~|~}{~~}zwz||zv|{z}x~vu}w{|~}~{~{{{}z|{{wy|y~~z||~{}~~vy}{{|}sy{}z}}yz~~r~z|}w~}z||~{|||y{}{~y{wyvvu|}~~~|}y|zrv}z~}}{x{}y||~}}xtz~||~x}y}{{u}v{~}ux{~{}|{|{u}wx|{|}{|~}|}{}|xs{wx{~y~}}xv}~}|{ru}{~~}}{}}z|~x}|s~~~zx|~y~z{~y~{~}{{w~v}{s~~}}~~z~~}vz}}z|}~{|~~yzzz}{}|{}{v|{|yw}~}}z|~zz|z{|~{}v~y{rz}x~{~~w{~z||~|}~}z~|~z}~|y{~}y~x{~~u}y{z|s~~~||||{}y~y~|{z{~||~{{yy}{}w|tz}~}~~y~|}{~~z}}z}{~|~v||}x}}}}y}{{~xz{{~~~~~y}{y|z}{||~z||{|v~}}ww|~||z~y~{}~~y{~|{~~z}~|~z{|}~w}z{}{{{~|~y{w}|z{|y|y|~{y|z}}u~|}y}{}}zzy}x}~w{zwy}z}~}}{u~~yw~~~}~y|}{|~~|||}}z{~y~}|~v~|~}w}zyz{~z~|~y|}y~z~|{~}}~vx{|~|}~y}y|}~|}y{{~~~zx{~|w}~{|~|z}{|y{{z}}~{~}}~v|x}~~}{}w~{~{x|}{yzx}x~{~y||}~|}~~xyz}}}bmZUmba^WT}eWaTXfdqgUPY^Wh\xNW[[\XZ]ZRHaXP[RM\^bmeF]Hd^_]Yl[[J_kaQKPW[kh`Hvb\Ra\VqZbWlXXP`f[`bddgo]qYk`minmQRQ^aUW@aOGWV\Ze^p`c\I\`adVb[WeT]GdPPOgXfWZZincYemaYsP_\VkHTX_\[aTh]dGWRWjgbeUdb]hTD]UgtMibY`gWrVTQbQa\ZbiNYYZaZZLfaWe_]TkT`^XaWRHWaV[Y^Q=\ef]NSWYYSsZdVf[W`]c[YSZ`ZXq[SLQ_mbTUf_^\wTS_hQUhUKg\cb`dS\KKiQOZ]WaeFdQgSTiNN_W^PiX_kb^[_rm`AVUNKQ\X]i_`hbexfbV_cXgQMfZZByXb\hVVpVeaXXZMSdefeEjoilie`gjddURYp_x[\fSVcVkcY^_Xcrla_]bcadcc^`SXWchfkmpZ][icjPafTcUfg_aih^_YZgb_`esaZVQTa]wdNrajt^RgL\jYaZ}gb\aadlgW[\vjtgb_f]OiWRfZq]_VoyWgPTaVd\Z^^]hSZk\Vw]mc]XZ]_kdcd\ii\^aXcjcY]UlbYPrNUfghmd^[ZfW[\pTlRj^a_ajW_saQcVkogf]Z^iUeh]XZTm^inXhl_nb^aa]^kmwQ`eu]Mdd^\bmpi^`gZpX^_b[[cbigrfjfqmSXYScW^\tVRV[\mXo[`cXifdnZW{ndpV\dnjThd^PfagmeZsekV`RcSld\Y_l_[zkgnpW[Wzsg^^`kbSc[sW\^TfVZTgtPXI_ifOn`f}qX]kgz`cVYZjVbsf_Q]WUCZk]PbbTX\^oJ[c^m\l]bSdapb[aeMehw}_YTVWVgikTXbr``o{caT[WicR]PSeR\]\pYWyVYoZ^\^drcu[gd_UeWcrmXcX_uaaVf[U]hk^^Xa_jnX]vb`UcfbX[x_a^\T_Q^WVpj]HlbTY`NX_S``br_ZWX`oZe[d_b^lhNVTLR\_}Z^XW^__axcbVk\Odn[WhiMP`MhVOUYUVgVVnmS]fZlNPSNY`og]ir^kbaJaYZYRhUgVZTXThe\kMVjxYifV`ZfbWbYwdNbRmh_XuV^il[Zb_]TRXLViQtbY[SO][VbkcdW^nzQRV\lfr\}QcG[Y\vVbaT^\dYYcQqEjmbXcVmZ^FpJTfh[O_PlergOnaLqUcZf]UVQTeATdmsPkVk[cI^TfawehkWaY\Li^edgc_Vf]uIu^Q\ikVmVtaWklRPV\pnVjYiGShrYP]e^Utipbq{RR^\XYGor[TRtt^n[`^ea^r\^MwYa[imLbvitZXRUP[V`lGhc_YyOfe^f\c^iv_^iQY]`\ptWI[[VnXcH]T\f^jZXf_rLhXZ`lisOYcdVctdivp\\ja_uipqbnje`H^RpZUYS\XX`eQ\bmpO]dafYPVc_LSNSjbaUQf\hS^lcS_c~PoRecidUbm\mpYz9icd[a^Re]]rgy]tVUg]@_SH_\`e\\EiiTlRLOXqu\e]]jdgenhKk]W\XpNmSOakVeSTIbcUv^UTktyoiOgW`XVVSSWfONZgdgofOk^[[f_[U][F\PyX_ZgTcQST[ZcSLdiU`ZXYndVRY`pHaRSQO\WY]`QE^Hi\`UYjTYdK]``O^VfoQagQTSSVYP\gVPiYYW_KcWT^c]fMd^dXv[mSWT^VcUW[ThPN]WdY]dkYlVS\faSM_GQh[cab_{`P[l^PlY_Tbb]jUbyWb_kgWJV^QT[YUf_UcMZi]vQ^Mb`Z`IRhdPO`Yga^TNVhSkk^]lYcSjeb_RKN\kFlhO]ZS\a^`gZ^ejU^_cZ`oUaXa~O[^V`X\o_TpZTQSsTV`e^\cYTd^}ST{ONWdRcY\WLcNZ_Za_pVSbbf__jOZ_`[UOQRsbdeT__[GXN_ebNO]]JFK\_W_caTIuV]gNYikXLcVkqi`TLab^^Il^iXkX|^^Xh]fVoVRX\\Qogdhpf[`Zl[}]daJhRilGTl\a\V|YdpQc`pKs_WezPcc]s_[_Nn`^h_Qyj\dc^LHNgZHgZZj[aZ\_eJa[qe\gq[ZXmjYhQRNZdhgmXeKXLOS^UZae^h[f`Yh\^lAWhJXQofYic\]`^|Xa`]SYrUeUeYS\`pi^Po]^aTzZbUo[x`aRTdUaahmwe`Yd_\\=McLYOcs^QlQaZ\^OQyo\[vTkS`[gxJX][inWRIZX]PVoS`cHkUj^ZeTVZfKYqk[Ze^bZS]Q_PshsgfYU`rfbUWZx\mZMZSu]l[giW]lb^\SVj\[HefixwrXi[lPk_PSehJcxUYca_eXY_rnmmYc`VXralWTjUL`ohlQca\_We`t]Sso`RQcVnkibe\OJhpiW\bZb`cNkhZUp[eZ_k]gk\YYhV][ae^dcr]arZ^^MU\YX[crp^_LYbUh\{phqk\qVSZYSS]U[S__wYWqTebXjU\``csTahUas`e|WZitmRMWZ[`g`a^lPahmhj\cf\w\UOnY`q]XTlaZf^aucf`R`\UWW]f[ba`XXiqvnkZbWYYfYY^sc_bY\YW`g^SsTfem|^c[c\rhV[ci^|[Yl`\BYdOhjVa`jHWj^WYkmkioU`s^eou^WRM[W]XYvKi`[bY{gtVbkpcc_Id_^^XlsWwNfGb_^WWmli^[cYi[\ndgbTW_]d_Sbg\XS\[xeb\UogUOhZXXeVJXXVW\WoXjV[aniUhaSaSeT^is]elPpnUStdgj\hYfW[liOfNbaia`Z_]YUJXgQ]p[[NZ]YfLpUq[_mg[VRTc[gaP^TF]I_`hy^i[kOXf\qVDt|J^]jU_^XMUMXWUOmV}bb^WJ\XO[^[VXaZ\PJdeZXS@aQQQUs^]Ji\McK[LfY]V`VXPTdZ`S_ll|`U][HXh_b^SMigl^Zb\N`]_cYk_kTR]Le]Z\{P`}SL\kVwTKXGUafN_L__WSObNLkWZKC_FMf_GWNlIMVNYZ_Ib\\kJgVhWkR[\jniY^b^VKFK\aTLd[RZb]iNhgSVSvaNHkLaZibYfem^bOUcCRhjOn|byWeD\lL_]kkil`tGai`UMd]VT[a^nTeNXdVSakIVL\dhVoSX[X[Z]XZ_a\PgU^D^hQRLOdaPQU`Sc`tUaLTfmf[]dO\SVYS[mdJaUhaJTk_dUGWPWT]`_\\VbfI[ge^Sc[ZRYY]eplp|\bmpZoRYsHOeVuZ]f`dg^kVZbcw`aheRmWhPhhgLkS\WJeSYR\Z[Q^kZal[_^ap`iNMRQ_[RK[]_W_kgYPdcSsm]^TaX`X[qq_r^bTnMcIh]][Ucge[c\JY]LWYWVV[dSYVKSsUSbXaV`SSUdanU`ToYcX\teQZTN`bi\=PTZmF[LPsN\VUEefY_GhlMQPPWahYjgXDhSZZptWtYaahlXdPU[Kh_T]XaTdUDbTO\\em`WqTVMWaaUg^VeZaM`VeLX\gaTr`meOecaiT`OX_HQnO]R\zROlvQNXYhS[edOaVkUYlTUfVnT]ekWkZc`Q[_d^SdeSVTW_W`WXUbQelXl^oYLefqMlS]OMZqZ][od^^QZSxeM_iQ[P\YT^QtdMcYVPkbSPZZP`bMjLWOm_O^biveS]\SYWf_`imb][rOTkWx]edd^m\_WUR`Z[\ZhQR\`def``fgM\Z`SgqX]U^meX\Zee`xmOXM_Nw[OmN[Z`bbc_iWR^Za[`chK^caM_OXSgh\\a\i`ZOP]NhJZQ^TiS^faNcRbfWkdYdiU_Pb`fXYca[hXKWng`rjZlhLZYX`[bcbda[RehUKj]Rl^YZg]qaeTqRo\`UaeT[o^ZYpXUTsWbV[VYeXfZUUaWi\dVR_YX[TdUacv_eT_djRc^c^dcpXZdIVs\Ylnh`vWv[hfW]Xgb_\]Yb_k^^V]^_Qn[cXsYeZZdYif_ogWaiJ\]QspIhd_Vbfa\fiZXec]_YfO\Tj[VZXPkQalmSXhM`bji[PWi`SQY\jU`[WkcO^MahaVhwj[TWO_\[m[hZdmrdhXickSYW]di][Zj`]jyojbcWW\[UQW[cgd[fOhOXYi^[sP\W`qRcV\ZU[fjWY^h^[dW^hfU^_Wv`pn[U[kgaU^hXcXb[mYT`rPngap[f_St_[\cacaWo_Lifj`Z]{UZc__Vdk}cdZ]]{[ftVUa^fc]][h_bXagVa``Wq_YbJe^]T\bY`VWa[msjZgPgjmmXYlkbwy\[MoV^on\iP[N^bL`Z]kpXcib\fSj\weo}R\\O]n]Raiei]PujmbOUSX]y][^p]^ejfZ\Z`WbZgd]Z\f\eVY[QFu__ZWWl_g\X_ffMI[`KbjYVbXaS]c\jW`W_dlWV[f[CZ]bmRVgb`e_qn]\jcPTXZm]fKbY_icQiXx`kcIdeaQSTX\agNZRScbd]o[\haUZ`\`^VYZ]]TSZZ]i\XvcPR^adXNVdcc_tXR^\ov`[L`[iZW[bVc]PSYe^ei`WXf`VVOc_^rmyfFf`WYi\\`WKjfbXUl^fY]YUW\Wl`bU?[ea_XTaQ_IWQhU[W[^^eT]apSeQenelgYdfN\Po]fY`\XZU_RkLJYRYfo`VWM[`kkobOeXhcbh]Phq^|\ei[SSYUWVVi[^N^^`Y`[]gLbhPUeYoyR\iMjmP]Gu`\b_ZhbocMVXY^zW\ZXthjTS]dWp\`QcDX[kd_iXfoVhw^xacSMf\[YWWdSTp`Zpjqh_`hVho^\ai_bZR_hjZf]`e^_^b^bjT{a|diWWaLno]ZZqBbqhjZ{M[jbWV]aei[Shp`iX_Xg}swos`fgPPcY_]dW\[]d\iosac\]cdkY^amVeXao\[_WiRgRtvw`imZZkRVTeb\^d]^nf`fekVghh`[nelSm\^`Snc]\c`f^jk\m^i\{Q[e[fklmqTbhWvaYbmk_^dIaKkYzXa^heYmsoUW|aQe[ZqU^Ubrhlw`]hX}WcdeaYakWbZSf\\`epppg^`X`SOUITWYdRbI`PvSebf`mHZd`X[aaLfYqTnxcvr^dfabbejzzfcQcjZXTcodb`bXhT[SQi]hSSXjfb^ch[b\cZgc^bPKegoT`V`{eJlw^UUc`Yhbo^f[Ubr[Sx]g{kz[WUeio^`cqfTVzJ]_ekUbRS[YUYegVrd_u^^Pb]g[x^g[`\aopebnMn[reVei]^aieobY^^]o`U`aVn]Yy^cb\ikSo^eeN`e`wW\\eMQoi[aUfZ]l[h_pX`a][k]Qi_`a[rd`]VasZxQvYXs`wZae^]Z[YX[_sW_[SXogZVjYaZ_`__v`Nn`Z`YddaZni\`qidbc]s]e]qemuOhdUe_ncY^```aRXVQ^RS}]^j_j_Sf[LbTbXlkxgkbn_Uqm_qfPZ\S\oa]Q`]_T[d^VyXLXYgOjTDSRHLaV`Pe^WeP]JY[ZNHLbCYRMRYdSEKSTVKLPIMGZTKBIRYbU`QGVlTjD\b_[IQ`FONSCXVU_[iNIO]FRV8?iGZVWPK\ORCGQ4QkQYQ`UVYWQYbK]]N\[MJN/PT\PJO_a[UV^[RRU\ace\_JZDDOf_UMK__PUWdZEGNV[I[DYTMPEd_CQNZ_LUiD>UHVUTJGORFP[[SLLJQTVaJVMMOe.WGiQWLDRk\V_LQbW\[OWqk^__jjZ]U]X>dO_KN\[iLcRRrl\\_?UBXUYWSBKN__PdZRWQWXF:Q\^CWM^g>OU^HZX\d_aTBPYVYNYVJXU`E`eY@RL>Q[SVQQP]V_VJH:[[W[URRM_]%BNaFdX]TQOBB^GRU@^>d;TEX^K`RWI_j[S_]bHabXwU^TPXgefaYRaf\ocQPhbVhZhc]R[Y\pcdYig_amL`y\`STjQhTmeU`ZNI]aVV^`gTbWY^Vk^`Sdb``Qe_^ZV\g\ZkjVQkU_jjUD[bTWVbjiiopYZ`XTM\fU_GmNYk_Y_rTxTLTgrTUihm]QWL\}[kdSf^sf`VW\w\Y[^kcZRspUbT|nJ_S\sTTcYl[SOdP`mdnh_YZP`amZfU\vVe^j`bama\]YZTbU]ZK]_d\lpisgVcZwTUVWUVba\bhWWWbdnn]cWKZsbccayX_hpUXfeblmhMU}aae[^adXr\bbkN\YSV`SOev_dQYW`RcxdnbN_uU`LjXVTljWf\_S\XiHcmlYSg]b[VQQXkrTQ[cX^ihR`dW[UbUcZcQSVe[U|]PSg^YMUiq^Oa_KSOT`diWaI_XXZv\MZbj^bSuakfSUb`^[Sh\Rgc]U^vW_ffY`Z]ZWo\WQTWoWdE[jTITRYFLoTNqnlaffYO_UVa_J_`mOlY[`U`sYMSOWMU^\nzWRLgi[cPUbmTieTg\_rTga^][kTcQckwQdP`aWY^]k`ng]Y[XRKT`OWSmbeIhNeI^^YSiBX]oa=SSXYXpjfVhMd]PTVa\]UZcUabRcU]e_^`GfIUpf]tZkqtbZVUSS`jrZXRj^cSEf|wdNtYpXqJdifYfde]exXSJdUSyV^[VQQ_OiiegbiR]`OYVlrr_hRZaTfOd`ZkkQi|OP[NV]pY\ToOUYg`\\]UQ_mLjXbiMQdWhoef]IaWXiea\RU\\`x^gOO[H{tbhXi\bby[Xyg\Xc`VU_OWfRnXGPlq]QZcaV`\fhF_PaMK]jkUYZaX^eS^e]WZS_`W`UWVYVcg_bQmyjKWIX`;vad_U\TWPaPbbDgaYfPc[qS`hmIJs^ya`\VIokjnw^MOPRYSeUQRW^bYdMZ[ZPazXV[nYJcZ`RIia`Ng^aaWcGc`|TX\bYYoT_TlQ`R_aWTSb]WK[`^NBXeMoLm]`UZZJgtBZdSN`\e]XNxJMnR\aVdyVVa~W]\WQeyeSv_eR]wdU^eTaOPbqggckraPhMU_[@cWR]XW\sfgVShbbMWjXd_Q\dbHn_bVa_iZYTYor_VLkVKVhYT]hZE[jWXXS^PeYxy_FdWHVUtjZdfex[Vgcesid^jgfkjdf_\Y]YfhaQ^e_]mkda\hnTfZb|iqdwXXYXch`UudO[RU_QeYVdX_aXaaaV_ON^emt^Xe[T`_ngcglUxd^jVTY_dy{MeQZW\dmba`^WXZooj_hv\l_}ZsT`Au\mWVZ``ciTlcPZioZXVL{VXWd\[]|eYfb~belgbfiofg^eiYkkfih_Y`cXhb}Tg\a^_^ibYoNei]ufc]fp]{XlYxbV\ZjV_d^[Sd]ZkKSV]W][bn\j_eq_\URgaa|fTMXf_lnjg[`Ypb[c]aV\dd`Wtja[]^qcb`\^YVeXYViUTkjt~rXY\qlagThYaj^pao`\joS\U_`k^amZ]_fea_saS]_h^jfhpzfWpdNFc`[a[XElbH]^tieb[^^]Y\nYjaWpaRbXL]o\RdeP^eUybiaUpFRVpcLNi`XF^wZ^ueIXbfNOYjW`XjfS]\SOpcLWV_a^c`ekcPahbSNcmeETeGgZWehWZKTT~Tu|X_bdfUSThK[fXMZ}OY`R^^HgX^vWcShj]_h^VU_ZRPWcSP^XW]cae_]^LXcpS_Ra`XeLOmcQMKSK`U[[PXLaTS^^YcVSVZnTeN]\`XJfLSV^WGXghpJRZj^]Y[X^McXcLWYaTYMhc`UMfYXKXcikfNjMh]ZY_OZeW`WNXIRS\Y\cSCcQRSaeTii_a_[S_b^U\OcXfUp]RNVj[ZQvTdk\JWQVPZN[]IHcYQcV[Q_[gBcwSPnSU`QpKaW[ki_^SUgVhUWL_jZb`NO[jRSPNY[Vnhgbb_PZN]PPqTWm`l]iYdpjqkPiUTVf_Waa_SOMS^^SW^ZVXV]mVRORVXOpVZGVajSM[`_\cm_Q_Yi[ifR[TeVXVZVfXQ_RLb\fZ`T[]`vU]O\`NUYfi~P\_Wp^UXg[bifYcewKb^\QfXPXVU_`uVbZN\OYHZQZlJiiePHTWKS\VU]\TS\LWbM]L_dYNSaMQXaXfU`_`aVRHeSZ\]TVRp_^TZ`PIYY^Y[af^a_VjW[Z^eXV[Yn\lSXTSJMeIXZdZM^QZY[luX^WjIMYKcNKTTSZWMMXSld^dReSOa`y[GZ[eU^VOULmVTstUgUXRfb^V]SZS]eb^\ZUUKl[NLS[]]_VKRmZRb{mKdQ[gX`SYXZ{\UnRgGp\Z][eeTZYd|tUnY\Q^T|h^q[b_]jdiLQm[MhkNU[^v\PnYU^W]fMT[\`cjo|fPUbSkingXWZdPUdgooe[]Y[[WgVN^h_ZpT\[[ykWpuYhZm^\hYcXg\ej^[LTmdeV]ZgWTd]QNb`UXUJohmS`aSb_UmkQPXVZikR^kbW`dpkblna^edjttKbkM[`aM^jpcbnUeZ[XaX_qX[]_`Wkf\_ldcqTYIlBVwZfZhXfT^fngaomzZM\vM`TUNbYYo`c[\ZXY[n_W^VWlYlo\hHQ^j[vSdtNbhfiWZpa`uWV_S\gdfj^nlufuk[WMal`WWQj^]Y]YVe[pqj[PipaeMY^iYgMUUpjael^sUgRQjVVgY_ZSfUy_w\__YsbYYe_XV^T\nZkhWt{gZ\Y]lhmYlXaQ]PniO`YhZcgWp\VWJn^xe_ZvHbZZXxUVUW`bdh_idgd[]YMdrpjpVd`m^]\lcU]^nPTaU^^ZfiaoSWfbc[fWSpP\t]TSguRchZla`hob\X_iNSlWsFT`hnUikWRTUajrbjjn[^addZbW^kh[qffLeji^rr]eXV]Y\|]_YxXc]WRUX^dhvpZmT\^ML_]^]S[t_]YPrnW^V[kjnXlkVeSed]q^l[bYYkf^i\aut[jOs]r`[aWkkfp\h[lgNajuWPU^LMhuSWZhff_DgLw_csQaYKVocXVe[`_i\V]YZo_YtaaeVLMw\[ojcMhdarfV`c`iXLRj^lYaZNWSfTUOj]YiUNwmO\Sbdf]\Md_PjKfp^TdLMgS_N_hMagnOXRKWNLRrSYkblMN^V]SdZXV_gOh`]c\oRgqJOT`nRg\NWm]maQcZlVYaP\`RcdZOcTp]Uf]U^ZZWO]vV[QiNPZ|Ys^eSZY`kHh`qWTXkbSKV^]YbeRckaOfvXal`M_XnWN\TV`[PRoXUe`hj]idZlWIa\^m{daZb_fO^Yam[\cKuYhMWoPsVcMMZjOKhaWdNwEMj[KP]oIcRVU^hWfdXfZWpWeOcLbot[[hYf_]RaX]]kge_[SaSX\[eZ]]`]c[W]YWR]KRVNX^Um{ciYUW`[^QkclTaUP^`lRdYW_`MNOdpVXmLSTH\cU_cg]sqP\]SX^JZe]^k_fjfjZpkUwd^gSRgM_w`Vexqfaz]dcfdwxb[o[YbkyZ_NOZRe[^anmtdZ\N`hhVoQgc^][atc^X\SiVYfbP^odIGYZYYuSbyYUfZ_aQTbm[]ixoH\clPW\Zro]Sg[QkD_~XhdaRl`dX`\hghedTN[hoVrIZT[b]Z\eYb`bX_fc_^_VjjoYr\hU[bW[Moe~W]l[rkqxT_LhVX`iUc^Z_U]]apKFUym_gZWZ]OhbhLduj[TLPZXIj^te]kYJcffloZLRv_HPaicuhtT^Z^tkSg[ZmVcQxTp[SdrjuQdM\\^\_G^sYQT^xugcjgVhdlnaT|_rcgQXb\g[ODfn_TSXFVTW[PhYVflnflcXXRbh\_[\_ikU\_K]oXgt`dUtfV`[YSVNamLdVd[WY`pjhq[_lcT`W^pfj[vg_T`|^_h_kTVX\cO\[kb`^[UQhY{WxWcTNbk{mrV\YZfRePXKehfaXOnlo|VWrSRQWUNe~HjToZSbu[O`luNR]Rd[]UP]`y_g_u]^_OPZW[RTm\atQhVWbq]bALbbTaXnZWY`aQYs`c\`cm\rfP^dU`S`Sme_daVN`]YTYYp\mh\cIKCe\eYj[Y\cXZm^\deeUXPZTRK]d]o\TU^f^rScTfO_[mweWX]egdQWcVlj\MZ]^sUbM[jR~O`{eiWkLZb`RBa\XMQISZ[PIfdSTdifea\McmlqZkhb\VOXs[ZXaRXu`@WTf[aqlqYz`feV`_`f_G[s^Q[nY`aYWdOEfnz^lOy\`fh\RceLbYWdaSuVcd]][ZVRR[XXNYaj[RxQeY\^OhFX^S[^`SP[Y{KlWx\jZjag\k_JWVoL\VrWVdJV\aeSCUx`\dkO\OXWb\U`dRmZZZDedIfT^ejecSrnUTaP[`VWhLamtXpeWDqk`ZTRaTkmYcPPSUYV\bFbPTaai[TWPgi^\[Re_Z`YZXdWqh[wXdfCRTW`pTGPbSLnQj^[LN`jd[cac_m^hcdajI^`mM[e[^UO}Y\RJSwnoH`Y[]bbuRT]kP_[jQ`QQWb[RMlQYPJ^UM\za[lXYcXlZWTg`V`N[vZNX^W]xod`lSC\_WUrZk`?nLXad_MRsX`M{WbLVW}xlk`bX|aJZmOW_\rSHnI[rSQ]adk__ZXUM_]VV[ONiiTIJZdaehIP`S`T\UZ^`p^a]Ref^[Uwe]_]d^\M^kaX^V`\l\hSe]]fR_[O^`eQVcFy\XXgQKz_fsMnjUP_iaYVfOT^QS[i_`fUAV_HbrXR^^kPRd^NRSZdXa\bUcYRVX`OZXWSQXeYQRYSZVU^P^Z\]YTXYb^SWQ[aRtf\b^}nTXhg_Ye\eD[XcW[fS[]Xb^VeoZe`ZVfcYRZPbZTR_W\^QQ]eOO\VbUUO`iO\aZ[UX]^Xt[\`\_gU__f[Tc_bYRk]IKK^Qm]MO\\XgmQUdVZgZ__WU_L]`OMZXT`P_SleegWX]Z`V[`gQd_qYPEUXYQYVXTeUeXQNRbmkedVTW`\_`k_TPP\M\bgWgYg_Qc]^ThiQWZw`^XbZ\bZ`d]\YRd]cbgq^^rRhITr_Tc_im]Up`mhn]ieMT[ZSygeSWLkqaRZdqbavv^YjjgLQWStkbWkddwaVULWnaWuV^deUOVremVoXcaOvNShbgdZ^|ThZd{tmfa}`CYX`k^WXpQqTe|c^Z\QbNfh[]iVYt\Q`WeiXZZYvL[nbdk``lY^a]WiiT|^^ufZVVUZSOh}Og[Xfi\T]hZWmtl]qdYYWoanZ]]^PrYkgugkUYV_tY^Z[Z_\LfcvcacZ\kd|XSWapegUeWO_ZunNyue_d]ZVXRWldkWp_Ys^]a^p`jtXXfRr[]\Zlr}Wh}aiUhfhMJfTkgXU[Z^qhSabXatdFnqfh^@fdWfe^bPo\`gsztneffhtUYV]eki\WhlgVlZ``zcgkd\Vi^ZcQ^fTpYh[yU`Uc\\g_`^r\P\frVZd^gM^hgV`acfc`kgiYSe`gOdXd[acffSd[\q\]aa^\\\_l_jXfrede]fVq^accW^^YqWQ]Kge^kg_e\d^Z`Y[XX]Xr[dXY\zald`Ye]pUkc\b`e_Pj^Xc_eyWdhivgh]ckQerWtab\MZT__`x_gd^av[nZ]_e_]`_I{u\kXt\sZnccpacY|okVjSmhUkW\Zhsh]]\[idmZ]^f`cRg\zwjZ]]Z_sV][bV^iska_ahbb\]]hUfX^oNan\rWh]c[XpSxkzlr`\dP^Qk`[T\P\Z_anSVlc[]`}`S[bnYVb_j`eg^_^ie`kfcZ\hcUV^e\ghhci[cd[c[Xg^emUpejh`kubbne_ca^kj_]^KXchq]]`^XRs\reghmbWifMb^jfhm`hylY`igbYT^jdWhbce]_Ql\jdTxjxaso`aUVV]pZXajW]\Y^]cskdPddllaSifa`YjeeZ]cVcXgR\p`nem\oW^_mYSarcYVbpV_hXUnicpfa[eYZ]eZec[dkd^bc][fP_d|bheU`ieYozYvdR`SafngP]Ti]md^g`j]j\l^i[P[Wh^S^cq`wx\Yj\^_dnUsudZka``iXYUhTuY_ksVgpsQ_`bNWhdh\\djZbWXYZTWx[b{c~]l^\ihWccl\]azVKVeqRTcUeUZXb_Z`{Ya`\fa]]bhUFW_c_TXi]g`e^u]`t^VlY[Sa^q|sgY\ggYZhLcSnVlrXkhrgfaUcoVdh_EaPcdpiijvO^]RiZu]_Wc[`Ytmm\MX\Ya\X]ds_MeZeUOpxbcYa^feiUfyQxZ`dvZocbgs^\`bVfU\\amXmaZX]eduiosszIaecXchQUabi`hzQbf\mX|X[Yl^F^p[^indbUi`}hgbnmaNefj_`xRL]Qalgf\^S]VMiiS[b[mh_jTfZrmHZX[idT^djafTQ_y[Z`djcqXnNu\kVYX^\zkm\TVbU]^XuaUXdaYZJw^ab_oQlQj\\__]Q]M`dpkVjdrdgQzRcOW^_iZhheUZmRmQgRcPpjb_a^pfTcU[_oVd`ekVToiGrjglYnjXOjcuh^d^wkTg[LRr]ll{iqOq^K`R_qSlFObhQ[eWTaUVj_ZiYSb[[IaVX_h]d`Wb^TKj^NXSaW[\Rv[fiZ]f_]i`Z]t_aUd[bK^UWKzg\PMabcR]G[Z]}Rmc_^l_TnPXpw}baYMX\\VhOZ`RLUa^aa^[Zd\]V]bRVuZm`LUd^QY\TWpZZier]j\TTZaeZYXTpPQ\b\YRfbg^RPrQ\V_\Soc\MbY]^hX`cfP_G`_`X\L|_Wp\b]k`SfS^YTcVgb[[EOM]jO__Kh]dPeefgap^p|I^VY``XYg_M`S_UNaR^h^drUQQ|YXd\Q\YPaTb[PdoSJnfd`_cRQhZTk^HZeH]]WgNMcWkQ]`Tg`nWkVZyqf\TYXhinc\bOYZMY]bSnp`Obli^bsbla[HeYqzXei_zg`QbcNSkX_YQd~oNwK{vXlV]otTm[fSi]vewq\rfhmqcTV\aeSapf`Tnol^{Vpin[ZuZ]gmhcZvar[eUvjbhnuZpc^jU|b_kk`ikwaWfsWuq_Q]qjnfh_{q_``v|njujorb_o\sz^]meeXlqldmsgolkyuYkUXkR|i^]X]g\uZmw\uwVuVbm^namLbVevZsgrOP[hMwjZ\_llbS}Zacghv~sbZae_immloceSpmK\i]elnYnY|kok]Zd[rfv{`\fgtqL`Mmkqj\XnYfQlft{zdbziS}nZ\[Zgdd]ao\s^b`W}izpRixXnVyXi_pnnImehfXOYimg[V]jjd_kk^\_mqd[_imbudrP[a[a\xnrO^eO^\fScdNk^nO\_f`Pd`E`ad[jhh[cQZCW]ZEYRV`raZpjZbfirRYWuVT_fq_W[dZcZ^L`fu^VXa\cX\Z[nTN]_^_cSqaeUdeUHWJPc`[aX]Imgm^TZv]dVRqWbxT\lNtNcmffddVg[gwLyXYgdfefZL\gU_fYMj[lF^fQhbsVbTXbc^UbY^PiXvHfgdidZVVLT[[_YXRej^kekdYKrse]Ria]nSPued^eoSka_XSz[YeKaGe]t[\XWmf_iri_bqQjghVz_YvVlbMYu]a``PS_i`ancdaXqPaYyfwLqnb\X[snbT]ferY`feeZStOXwghhfWP\dM\Xbq[ZjN|chqfe[gg`PMtVbO\VauqhQYk\dg]|bai`PPOZcOUXNWOVQX>decgSUbm`XXfDN_eLmNUXcSUOZ_P]l`_Sn^`P_cN]VdY`UNYJjmZPhZNQh]uhbWTK[VQoiOTba_HLDkChZHNZDQKX8KYGTYWczWi@Y`[yNTb[^NtKX]cX_WYWTPKacKoPLT_uaQ[IML_UhMtd`M^XaOW_mdUO~Ia\XhpFiUYjeU^NNQ[ilZlOfmckQZPmD_F[QiPfj_NRTf[SKXMUUV`d_gUtJVHIR]WXy\elk_]POYZUIfVcR[Jy[`twVP^cSThXMaZgVU\]_ShT^RYXcNvV\RSWkkqFKfXo^Ple^Uhymtf]I_Icb`W`YXHYXd``IXaMVn[QZ_\ITzMKV\`Zd^Z[\]_BYV`c_ZLgXdI\]kZfZPZrly[i\dp`^VfgXb_UVRjSSYebbf_SU_n`zawkhagYOe_WkiZsVTSX^QotSL^rWjjfUGss`eTxf`pkv\gPlagkZbZY\qdn_@_TbdwTih[]UObM\PLI\rgjjUhVbNWvnr_kDWsemuxaWk\mkd\UifeiRYnd]ajoWcQpckdf]X\badogVofRUYLnpTunncR^fYd\XTkr\vRRala[u[gXhMeYjji``YgZQkTZZ`vqSPSQY_XWR_Ue^[c[]]dXKUUyN\FlaUYV`dOO\b_WrR[smnaa`X\efaUZ[[YrWVfxWgN]ZVhxV~klOu_LbjeuSk[sghSZbfbKT[XicRfN_]b[w__N[aiftgJ^nydVt^Fbp^mL`mUilXtXfn^WDhM``kfYjQ`WSVav_EKbhXVTiVYbgW^uCSjUZpZeQYb}uetlYOjq^|Vek\`gZshR^SZ[Y[ZX}h[]qdJq^TqWeVUs]]=grechNHl]WcPXVPkbt_FihvXc^Nky^vXpTXh[OSKm`TKaYx[dSSQM^]h^EPfmTrUT\oYZ][LRaZ`V`P\TZVL`GP`bATWcW~LiOC]lifXb[S`QUHMbSbvXNpTfbkT`\O^XDNiE_ib_efdiM^TWbSoXOk]K`daJTo~xSeT_yQl^NVQZ_yhMeVR`hI\ce}eLnijui_rCo^byYbsVXafWF^MPYTbh^dbKhruyQYQJNSem_XM[T}^_\L_fVb[Q[aY\lY^NRTlQW]Pa[cgVIY`dZ]vTbN]|vDUOgbb^_MYakYMpUWb^mw[We``ocjb]Y\QcPz[XaYZ]XRd_os[taU^gn[VTa`v]_Z}ZbfT\_^sfbUS\SIbe^sTewYc`nXp^r_]wlcxlMhY\Rf_hPca[cXTs\Vnb^ONiQXtJ`lhXkpZ_g]^gPoYcSSl`~klWQt_rM`VwalX[isYB`]]^[ffd]`O_b__ZlQYh\[Ye^oGY[b{k\\cbTOcHcUlfhfo]jTkvaYf[P\kbejxj^UPVVVaXjfa`XsjZbMkTtd_RiZQVdRjQq^{U\Kfko^SNOrhvW]\V_hcOTIVqO[UaUoOZYhWPcaeXZSTZmKme_fLYGW^WM[XagVvuf}Nfj_|TWVfUufT[v^fVWV^^Q_hcRYdU@oUZbR[P\ahta]lv^n{bVahfsjqVRg{Xcjb[crYkjclzdcauugd~otmdf_boPc_]jXPwjccfalvv]jgpyZri~fhdKxvuWpaecatczrbgsliqTsbdn^`bTXm|gTenUWp]f|Y`WwZks_\dee_{goS^kajfct^j^gcm}gUips^ydWcZ`_[Uw`SXmzdrnpqksaWm`YadgahhX_rmuZntmfnaWYflkb[Tcs[mxaa_jmUgmuuP_^cepZeSnbct_fcbrydlVcoWktls\k`^w`hln[`_wTak_glaXpb^bQfvytesdp\wipqiYadgcnxwJkmdor^g\\hljbj~pbr^Peia[shWZrq]Uzxza_`Xhnksqolnjji]^p{b\ee`T[gzfXefUZWSWZNc^c_qakOlZccV_[nei[~J[TJbONLIUVb_bqScdTW]Z]GQ^Z]]mmVbekeSVt_WiMee~[\[r^q^cgZ^MRXcVRIcHb`^qbZbBTnbPSutf]YUj|a[bjTc]HYr[iZSSWTbaZhx_WZZeYmfTnQNOsNcdLfWbp[YbRN\hL_cVVs^eke\`a]_`IS_gWf_OZ\ceUaP\MZXfLOI]_]VaXeg\PfWTG_YU[WmVYqLT`OUN:bUU]LH]^S_bWY[xNnW_KcY[_JVRNVd_Ofb_g}LlhQO]li^{QYQWQV\J\rX^^\ssq\_mVOYXlaI\P]bk[xG_^lX\XXZ`X|bb\U\Yf_^ZZJK^G]h[ZQLbTV]lQakh^lNg^\hjTaUaPbQWJTenidiudJ]RHdZb\gi]lPd`TL[QDaxgi^ebj[`VPrfbRiX]pP`megTaje`QiZfaa\cTQySJqlOcN^dRO\d`Xbn]VFWNKSZRmzRI`ObBG~dbduaIc[SRaiTahQrvYaXiWrcoWZiiH]lHdV^eYXkfSxLKc^pV^Td^MV`atLMR\|n_ZJKYr[UH^nqUQT_VR`[lS[IIjT\]UjhekSfXQly\oYW`VSAkU|SmdUzkOhSepBPkPZ[viHU]RXf`R\gtfSlcRXcRJvsO^sF_Wta]^ZdQ`kogfjMQYWX^gVkb\bdL^umTOXePWiOXOV`LndSBXn[nX\kWWnNmRR\YpccXzXTa\YKqR`QNcZe[tN[TS_Rf`_YiZK`\Sli\U`hXr^FjSTPkb^XMayXbh^UfZ\UWbXnXZNdU]k\dbgVJXXge]jqjP\WiZhvi^]h_\XrjXTmap[h_gZY^URWZtXj^Skj[n`]aK[`DS`O``f`[Yxmnp[cCQZdSVXLXUcmWZYehS`_`fMue_m`\Xa[^prT]p^_NwKiaSL^Tdjoad[OtUgSWQ^ZUc`yNcaW]S^_L]h^ZdcVgsdgL]\tSXyYUePdXbSy\^`eVdYLYb[VWI[Kurkx^UZxXNcuS_ywS`]^VTOahNBUaTUbcTXnkkSUS_e_iUZYoX^]`hWoUj^e[dXS`[[jewwRdVlW^kfCaesRL]Yoaoq^_T_SLvmXap\Zll[V_O`Zfac[UVi^^WWcsRLTim\k_wulkZZ_pM]hY`c[n[\cUTgsXZi`dYWas[aXvl|^]YjEVaXRVYdR`bbT_OX`OXXT]\XjlZdcJddWVodkOSZmSebPWgXJVI`_ag`esa`_fm\``U__WVlBJWfVWUdkfJZW]UbTdc`\XX^[kW`N][\bRdacKhf|ai_ai]oiw_`XNqZSdn`Y_VV__Jbn\RkOQd\f|=ZoWYgO]PcyggsY_STiRli]WV`QQkhT`kVMZwge]eWjTaP|ecPNbkGyV^Sd\W]kcYQb^VjxYiedJ{VW]XOq{dRo^X^MSmdYcZpjVUIX]eeWWgT[WT_YLWWZ[eT_\`j_YV`[I]Z^U`SbPdZXR[g_VYVYYUngc^^=Y\XVdiZO[UYhfhbhUceZ[XFoRy|V\T^gaMaSd^\dIN]bldhlVTmkrpR[b\_NKRVYeO_\bbZTZLbWfbdSXZ_Qb\psOi`XfY]][YULQpb]Lfu\v]iVminieo\p_WN]\Zi\ngechY]hfFcpY[nfVtSCbaWh\}YIrpNk_WbWae`[qWSjXaYRiuhZh[Zqmp`HZWXTWgfLfo[n]hAI[\]]]ROrXqXR`S^acXQiWIVmO]R_R^Ql`x]UFWMjUyQ]uibOi[X\if_\PJ_WdRSdXZ__voce\VdTbbWWu_jmWYjXePyTprRTSOSNuqY[hXgsV]]jw]_GO`Ud_XO\]cntNPhxxWXiWV]OsN]`ZkQPc]]\frMcbhiocHK|cbYx\WT]Yn_[Z\Yhe`i`evgPWPb{kU[at`bXjo|NsYX^SZQWpauZJjfEK^[irTsHeqYVr_UXJoT]kHZ]P\iMbjYViIPUdjPsUVJ\_^^U\HUN[xMWmd^sViT[[bbf_qjZ_`^]Rd_l_Lb`lkR]fWOKUNxRaTuWL`NjUTo`]NcyX\Ge]T_JHTWmf\M^e^\UaNOcVUKPbaPi\^RqRL[fcOXMePVPXVl\lGb[Ic`WWg_]VTkUVXIOg[N[Xeil\adNaKQY[VK]WhMKS\eUVXPX_nmIccnbqWSjj[wK`aT^hmT`]QpZePelS_VXZU^g}T_VEnlZ[aX]XS^R_QhT|W_[Sf\[NF^PW[ddWZK`\eVUe]^Cm\XTbgD[iWXR`Wf^VN[cRWiLO[ZWQavjtX_rPUJsQP[iWsbWT]U`PUYa\OTdcfmVXIo`XheM]Jeylj]z]\mKl[gFR]bPR^]\TTpszebZa`mZ_ilNdRJf{bT[cheY[lUIRdcnt^UUbjjh]kXZEm\cy_mQWt\uk_lr`aulfZ^bYPsk]SrmT^l[Od_dWTackQaV`nrXZmm}pfcYXrTyGeLhoe`_Tk^o^dr\b{br`i_}r[gTfRjkYZNnUcdjwP~UWcbgraZohPngifsSNZg[}dTepxKga^LYoZuW[\X^e`WaM^LnIve^duqOZLk_wimugXERb`d`oooXbQkhin`Intj^[ZVmVnHsNPbY^p}pgvzycZQmnrO`fhaWWbvwYm{hVMbwbekuWUT``P`i_fWfGm__bTjbilN^ec][LRaxqKF]R[hUG\kYY_`dg]o`tlnUadai\^aSohl_Uimf^[f`bYZhf]^kZe_[`Vj\R]Wbc`ecb]cXv[n_U[mmieFtpjh`dp\xscZP|lbn^`d]men]Rlbla`w^bc`jfd^vm_poopelfOdjgrwq[arg\tjaamOZSjkSXaWZuUnac[jyVwrMr_YX[Ygdb][hW`dc_ZvTQZgWV_n_\]SaXSa]OnZjefvNh\foaVQag]gV_^o_oUc^S^bW\V_qUpdYTP]Ybl_R[q[bPRq`xOu_`fUYeooQsaX~S`acO\U[\w]]v[k]\q_ZMnTf]k^`ejfk`iv[XUdRa_ZdZXa`ca]cXhq[g]f`j^`mXXizPWig^^Zr~cTdkfkdbem\RZ`_fg{]ib_YlVk`Li]Z[fNcUaGUdaf{mX`wQ`bhaaTi]mc`vxMs]HkXHnWfFJQ_JQtBYT[mV`OYe\_iUQwnWMYXbOZdm`^ogWlXksWhn`gt^zU{[j\woqV\c\u`_VmeuUcbWKdSfb`mOMOOt[kWbr_~gfQUVbisTVuPTT_t\xeoV^ew^mgynO[RRxc]ZSbs\xrofbw^\Q^nshSqQ^i^VpiiyqV|Zha{\Z\_M[Tje_\M_c[Neb\aT[^{_OX`X^`_K^HXTUiOmjyNczfkq^^\JpVrWa[zX~uQ}{^cZWOvV`\hwjsl\IcrhkXjbhklWb`TbfLRtZac_\WtgxfNY[CeKgtoziz\tncRfIomUwTOsivhKnQsw`njdh^PVWUd\[iaRzugkf~mWW`tjIa_|gcX]KTgk\gPS]TM`IjPkebpbbYe]\X_UcJPc`abP\]YgldPaWanndh]Y^gmTZ`q]_]_k`VY_xXZR\dgXgX\WYae_Ygkc`dbfOW_blcednZcdqXhcWZVv^d[ve[Wea`\W_oSm^a_]_p`aT^qW`hQTaW[XXfhZhWV_ON~idcZYheO|NnaZ_]NbXd^WmcZW_[b[]ZWaVqYT[LaXW]\aWXrhe`OZ\S\ejWbeXWxVWt]V\___`ehPWd]Xi_^]__WeZY___S^]TPbY[piPah^[aup[`YTaghr`^We_^a{chhxSiXcnc\bmh]hj`ZdV`WY[RcTNZmMZfV]XVSYc^XTyk`PROakja\T[u`XSgPhR]YhmNZ[gY]Uh`Y\|Ye`hkkj[WmgO|`a\gfRe^`Pz^XXNmizkdOjX__sXcXbfedm_``[ab]vvb\_Xs_ig]pdaZkcQb[set\Tei]`beQgab_ofhgdb[|NQZNxXSZZdtVovYfOL_b[ep^gkjeiZcSTl`bUUe[cf[[khZQih^m~\Pso\gbjljjj^VXuecllYZj_RbYkkbbTmbkbcaoh_W^\xoi_fO`cfgNl|NXhak\fmWkceX[YizY]glZbY]mct^tnjfmXpik]YeUbwYY`hVNeqYcddchV[_]m\[^YQ^YWnYeuZniie^\\^\ld]]oY\}mgcnoWiebatZaiibk_Icw^ZQUXgdbZchZ_bv\^]ddsPan~`XYTj_YqgX|oba]e`wcqygj\lio\bYvOMT_ZwWSWeY\RfU[SKZVoeSRWY\kbbKTXgRQVTdRSeL\[`hnmuDSa_fUcZQXmWDZ\pZKd?eNDk\_YXrcofkUJZcZFn`cfccrdQ_^dWOTrMPIX`S_UaTETLTXSWWjSLQEUeWge\XTm[hg[sSRdc\]jSzq[[{Tj_TXYKcQQJeVV^WVOcPJ`[no^Qw^dRXMVVggvd_Y_LdfY``l^VZKQXRqL`YVRcUG`PYvPXsY^dsOZ]\bX]hWT`ffRM[OV\g^_TIUR[TflalW^zW]VRcXXZcUpm^_XLZaReWSijaAbpKZiVT^LY__fROZ`nP[OOh]SPUQWTZ_O~fWXV[^MVY]KL^Vn]RNPwk[V_Z[ejLcPaKssRUUMRhtPRJcS^UN_imOTaalmaf^eeboToc[`\VpEPb[qQRTUkPhnSKK[oL]f^bZVSXZY[T``ZYoejNGfXIgdEg^QLUWjsj\feRZUwceOncgRoQM~]H_g_emU^_h[d]_{_V]Tedukhmn^WUpaHRce]MddcCsaIUXaOVYoixKabbd]^IZOZbGen`QyPYYJbXSll_ZKBPddWYYkUPu^ZVnTZ_H]YYZ\QYXUSm[sbm\VaSL\ni^Ri`mP[NW\_`ZU``ZxMUVXcmQSYpzeO[V[iiWw`UdcVR]]Yz\X[TMQHfG_Q[^Y\Y[bgkQPaWia_OqWhi^iQcmSq\]Tn_QWXb\]RoecgWa`CT\uxa_hW[]nb^mR]iogWdqae{m[m}O\Me^]vfOdSVSolVVZ`G\keWSYCViP]L\]^iWKdGG[Ya]_nck_TgQ`cG^bXRh[gsaLYhQkLPUi\^W]]LNV]`fTLRaZ^VRo]LFUXIYS_\VKOLbiRUGXP[pUmd^cIWeXRTRGZUhg^coI`W_ea[O\RYxT]]Ke[\A^jbYqVWSK]c[d[i\aWbSgeS__O:__`Sc[NtMG^[\Y_pQS[]_Y[ObOhbfReQ`VbTV\S]d}]ObWNcUTUQ`dTE\z`PNaPMXPSUbcMPU]RK[ucRjX]NAQXeYNRPRxYXV_LkQ`K[R[RQMY\bM]c_NRf`ZVm`\UcVQR]oZe]cJW^[]VqQbCd@Tk>dbNWnPIVTjN^IgXaSRO]dVQ^TUPL]mHPTPVjVS]ISVN`SifHabh^T]mOeTQcdfEY^Gi^mec{Zl`eZg]W]yaXe^ejmabi^^]cxt_]Uf{l[`Ybj\nwVP[WZghXbjPW]^Wft[b`]jS`dlmZjb`\c`fnd_tsfdhkfdo\qZWd_[hzWTa``lb__|iSk`nZua[t]\Z[X`YO^yxjpY`n]atX{kwSwdbQtaQi\^]YuNv[bdTpug`We_X`jZQ}l^XcZX^O^]Xay`\]a`Ycj}tfmgXleik]]dZmhYoaV[W\`wnkVe|flfg]\f^lfyb]biPcfZk[Pbcf[\Zva^f_V|bTed_\`qTZ\g[`poi_WrnmVwl[}Whm[ZaYucd]dbW[^bz``nkX`ZXv]VQTbsYV\ojlVknhTWcc|pWi_Y`W]dXW^fii`xpY_jWoidZ\ZXofuaQ[ZPmc[XcS`jh\ivgOol^dSOS`bRVe][NfWNV_z[\bYmtzNfb\Vb^\Y_eexLcb\jO\Z\mOOiboYfTRtmXimgr_h_pjm\YUWfLTXt`XreRQ_UInaethtT\eqWL`ehUril_^acgxiPgVVX^fbZjNkmXif\GLZWmW]iZRazjUhcbQbWkgZexcaLXjKRcpQZSn|gVuGo`bVVSdX\Uf^^\N^ZNc\pZ`fcbpOYiSezuWd|rdibfzE[Ul{uqoZhysbSj`ZdvrWYlZK_[YeXgrtljr|wavnRI[^drfVO{dcc_Tvan]Uaq\sjpUYbduxyT`uulqsXiRzviyqlyj}a~\AtpiZmytY|xgSryxgxgKsu[{qlRX~rfg]iz~lfvdnVahi^]xrf^pY]xm`1g_OwY~pneZa]mi_]xjrznjXUd[]obI{kNmZoYbbn]g[`dbXR[`[kNXTWjifWYcuXeWHS]\pe[^Y_seTbmViL_^[|f_T_UQMbtcj{p_gTssGeilodSq`dCgROb_XUcf\dTPygJobvmpQN[ZhfZbrW^RYbkdSZWuux`amU\iZfc|g\_[nX^MZXe[_acPh]Xl\qjxIehqjO[X]UZo^\^`rC`WwXid|xbzT[QWZc\_V`^kSfri^g^MQeaisNlZ]bdogqYgT^b`jfUPUnhdnWbeZ`Z^{oWOllQceb^s|XdLfEYjZGd^ZrMhufKZezSWhedaahZk[_ilq_`dcbo\rtYWtmmtQjMkm]Tsl^qlja\[dyZb_Y~Q\ci_PX`joW]bmt^thd^`Vw[VRFm`j[jtaTZQZL`VZcfUbEXRZWTYdYE\aa]iTZMWu_hZGlegwRgiPQ_i_dQgU][ZYWgj[YO]fdPVX`OhK`FUK^YgdVUXb[VV_a^SS@RJjdjbR\[db\IHXW_oRV[^`IXSdeHjgY`NF]tOcYeNgaEmcVYSQSPn^UH_`QfOraaZjQ^Oab[_b_Z`d]\]b[XhQmOL\`}NAaiYYct\^]p[VYSIgb]ebP[bTRcOfadHbNWiWjNRSZs^_XRd[PXQX^jkh^VQycVshnMXedY[VhanUXbgb\ZNX]gaa_^uqfR]OPVNXZQk__bWPcWcfZUYRQ_mS_UZQXSmP]Y^]]ZiYtQ^FioaceVdWblJviQTXcDnYh[WenaaZV[Z\PcrU\e_k\NfYL_RIUZYPeWb`n[_SbYUYN_RZGPCe^YQP]\dZI_fPVb`MPTL__^aQRg]Z\Uy\^d_[p\THi_`WPcljJVUUzLUWiaR^__[PFNYWxIVWP]ip_^Ybp[_XfvXX^STUKc\_OMRNK\[OjYeSYeQHrYZE[xc^`T[aKb\TbcQqW[VXSVTutRc]QoOU_K`Tr[\VXQdW[WYTdWd`ZYTNDUeZeWgae`QYd_cnYFzbTOMYVY[tZOZXPbFZc`RZP[eV^]aobTNggJaba]YO][KhoG`ZNQCYb\^e}UMKaLhicbe`RvZjf{SWOEOdT]pXSzOXFoeY]ZP[QOZZJYu]W^W^VLWUDbMwOblkROgFLg_D\J]eQWWvlnY[BgTd\aKU^o[WmaTXcbK_`P\bg?QVZOOU\T\fhU\]UHSMXPVeuJXGSJcPWJSeHO^\^_E_U^]GKbcQWSZUeQbOaA\FTO`TYBO`bZ\_TbaSPfLVLSKZR`XHWvTf]SLU_U[HETZ[XnI^QUR^SWItZKObSMT^UViN^a]dPTWl`mRPZYkZWZQRPM\PPJ^Y^i^PUWVd^L\coPHXQLLnbVUf\KOUFOMUO_SNPhWXSPF^UVSVVKR]TYEP_ZSkgJRGbcPKYYnW\XQ\mJ\dIXM`ZXN`jWT^G\VZCWK^apdBNVoUUTUyPQ_Q[K^pd\DRSWa[LkWfWR_OhJ]\hPX[USjkULi]YjHNW]`dOG_DFDQ\lUbST[O\_IXOxYTZTXSTgcOST^cOQOk^WNPOQRHO^U]^ZTZ]bRWWUQTBO\TqUbfTzUUh^ROH]ZrhZNax]LUcXWer^jTVsR]`Kwke_Ugf[rhafVuQr`YvkgjP_k^ga`cO^f[UdwT^Ye~frfh`^`oWdY^hk]\w_LfV]bcgS_SeTYYg{hha^irl[Z~QE_R\va\bk`h_VVpOn_TgToU^`N_g[V]`VcakgZaYiX]e\TXVcngeVY^]``n[PbbZ\XboheU[\tlS`bR]_WQTZKdbfph[deX^YOel`MiXRmgdNiVaoNRuvmc^TkkgUVV^^[eRza`hu}VgTWcVSjhco_][Ke\gUi^mZkJYSLg\S\RiZVY[n\p^nZe[wuvX[Zfp_a_^uMY_iURpYeaaah`[a_qSdk_b^ahYxjf[g[uXqkaX~Tt`wXdWj`i_YSjYnZKt]ZZb_FJ`VW[ZZGabXM\WRVLQUKXRbWsObNmbU][[gZSViPdYGV\ecWcmVbabhOgZQRnVaZeYye_QZXRPV[TOZ_ZNQjWsUi`hQcm]TR]RbARliTTlofVfUb^IdYcVsWrmS[aUi^dRMS`NSTmMWcduYRVWPNQdQXdSbRLQ\]XaMQZ[PS`Q\RRTdIY`[XT}jVZP\LYXb;\SDRVXatv\ObWYaCYgL[_oTh^UVeKnRWPbfVUS\jiMjXYM{WUMQtiYfedJ_YW]ddU]SX`oaLdY]MSZbZT[mRRHacVQTUZOab_\THfW]cb_q`\\{]XTqZR]IZ_N\bNh^gVKQabd\gblhjNTfmS[eWdd[]ZVTToPaJRWQW]bRkaFYVRWPXqhZhT\TX^QaYxgz[]e\|hOcgc]{^sc~Rddfq^pYcwg[`Xb_AUeWWZ]]Bh\`^Zmal_]afiOZiObvkcqhhj\RcPtYojhj_ioZSVflWVWZjegZclUoTt]|czefd^jfg[hcT^l}QhShQ7obbvyLZQdNoi^Rmt`Zj^oOXmPvdgc]^mTi[LbnLuwZghiRKQMlXvlWj_pYScfbbXxUhh[iZg[foYqPOYUU~hW]Xi]g][_`tjWeT}hFox_NhKdrVfg_`UPUWM_UidxQQYSVZlwl_cQ\w]e}T^UxZY{mk\TYtynixYqdobcUUZUf`\Jvekh`b{s[g^pYisZmgmYhdavel\jVK\fV_lYaaeys^bOQo]hfYgaRZtUrN~Xu^]R]a^hOcZRTdbU^YlaLOZU][EaYRJ_R[Z]YHWWVOc^T_PTaTgWOWhLa\[XWgjngb`\WJg_W\^PUPd\WYT[aZU[ZWc^RVegnXViXDWZc^{OZVUPN^O[PR[Y]VUUYeRd_XL[`WVJ]eO\dXdtYD[YcZVRMISj_[XroW_HYTKjkN\NTXaURpOPT[i_LQYVc\qYR\_cZRa{XXkQU[aLX`q[hWVU\X[X\O`TQV]lXKYZPu_XL_RSRaoRSKeRYgaBQpT]V_L[Za\R^G_U[`xY_NZYYKSRZhhYRKTgXW^ab[]ROYVe^{X^cQ^^J]VYh`X]RRXVT_^bX^bQioaZTaObjSVIX^`J^[Yf[Q]a\TTWVSeVRS\SR_VYbcdYf`ZcsKbO^[hhU]WWZUYVfWYUgXYcWrNRSt_YP_\]_hPkLy_`a]R_[adVUzdVNSMa`Mob\prRZaRv\VWEfVWiDsdWSKl[vpWWT`oXMoWWeniT]Oag__\W]dS]_k`]WdP]Uia`dqNxudkelZUj\B`bV_b[Peb]S[YY`bZVZUW[[bOSSX^SZQcfUc^NNZPOVN\crptVXljaogUU_fzd`dOlYfcg\RqZUtZXfbmq\f\kbVSS_YHhIQmk\\KlVYaTchckiXR[rPURKIYffTcVNl_fplwQ`\bbSXVZR`bbUb]]TWT`cmajQk]h\AVlYToaefUYPUQ^hMUOdQ[PlorxbbX_ccOZfcUg}L\YWMU_ZkOcSpbXr]Wu]QuaLsidLZXW\b[Tca^gUaNQRa^[bWmPP`nRYQUdSWQeaga]\abm_aoYQ{Ua_TTj[XZ\SysiSaZ_Sg[ZQbYWQeiabpTYoo[ekYzWil^`MagPeHb_]U_UWNZYjV]ikYYb_gQo]l`GTm`fQMMb\k[U\K`r\Ylfu\TOUbgbuacVdZ^rM`tfX\fLcYSudYl_^wZWUWp]YaK\ql`XfbZIU\mXVKkVw`RU]iq^KbGMaUck\ZrUSXhXWu|hdR\V`d_wRi_oWUpN]YLRflg\[bp^Xl_\_fldaV\_VxbW]q[Ff|WOMhmbb`aSZhfUZ]aNg\WNTV[dNqN^[cbXyleekSX_jbeeaW_sP^V\`m_e\VY\O[mSU[SZ^_UfheZkdYRpZ`hwUWpkfKVYkmrVw_skKzXPUWxuVk^_ak^][VHWUZTJ`VbVEWfP]ZTZ\TftKhX_nXnUq`QgXhgaiR^TO{d_l]L\SYQgSoAmNTQqYj[gVOLl`[k^dqV^Ufcobh]_LYOhaJYT{UkTU]UE\k\XIje\[Oj\aKcXIXUL`TtQYaoX[QkVla]YlZXWVHC`^Z{Q`O`_k{\LV`Z]YPdVjpTMSdbUMYdWmc\[hVPTUbhhq]UfsaKTt^rWJPIQ]VWV]dXYXhm|bTV\^MRhq_mLTpNSHhGOcXezRPlljVS`ZSdYrWUdW\fX]o\LX\_`SX\ZWpPIVRLfNhVfGbRomXj_jKXMmfgeNV^paXUEO`gQa`ebdIdh[xfSSc\LVYRpyOeKaNym[PQ`X^jNPWp[Pn`VRRSYVWaf\bcZ^X]P^amj_Xpfkd_`_eWS_Wh^]YY\fb`T_^huh_[\Y``]uhXZf`pn]rdZ[]b`gUiu[k\detWd]ncb`gfeWfdn`[ZjiXXlYT_o`rh`[_Yfd^\\fao^mXSWoRfb]z{Q_ajoeK]jfncYgYlcc_Va`nY\a^^_dW`ef\oXm`WdaUR[l_ocZ\`X]a_e_]\o\bz]a^rv^Z[^map^e^_dd\]T^ebV`iUW_dX_V]bdX[f\coaZbc]ib\\_gVYYcZ_d\\h`idZsimee__ii_\Xoe`m`n]_}Z^l_r]\kadakdX]wZ]b|bZc]]]`^bpl\augZbg]ao{h{aci_]^dd[s[Zav[^ee^VaaYUakbichn`bic]PXIZYVYOFMUSMROTVLHTZLOOLMMS]VBOLZJb]IaPPREWQVO\\JTRS?QEJSZGWCLSXLOTRXRYSX=XUVUOJWPVGZ^MWRHKYVRHaP[XWHRQSTIbLVOfONLTRJL]LQ`SESNYSOHTTLTIWRFKFYQLRUSVNBJVTGXUQPHUPSMVUPGJNSZR[RRVVVTQQL\YQTLVMZY`LZWNSMT[YVWCMVSLISR__P[^SMJOZUNISLKUXQGPSUYRUYQOMcUdNWQVMVHRVGKKYKYMY]V\PMRO]G[NONMRR[K`L`QKJMRLZVRIURNhSUWP\WRSMPRIVNGPTTXfNSBLWZMHSOTUPSRPOGORTKOMJXPCQ[ORVZW`LuPTLOX]JQRQROPRHLSU^TXYXRLNGLE@JTKPUXBNFVYUGTDPV[QZMP[VYU[TaIJZLFNTHK\P^L[]ROQcNRF\ISTMPQASTUVL[\N^HV\T]UP?NEFPWGSZKNPcbSQWVVBWRXSLXQMMSSEYXPV[MPPHDPWDWU[VEXMUIIBAXXYXX]VIHTUORVKTXJOLEHaXSMHOJRcNbdQKJOLSVI]][X_TXSIIMVQdNUMdJHLKXURKC^JNWI]LOSLESVPZZ_KPOXh[SJHXF[MMEP=CL^Q@`[RYQTLSVSK>PUXVNPOW_PPP]\hTSKOcEUVUXRJSDH:MR[KQWGSN\SUWVIS^K^QO[`Q;LZR[]]ZJa>___YJ[J\QW[JX[b^IT:I_J^RbSPPC[WSRIWVMLHdXPNYPTXTGOX>N^QWXNLJRP\OXYd^Y^TVVUQRWiSRUdS_qcjO]jO^Zd^W\g\r][fb]vS]d^VSdXVXXXQ\b_QTK_XRRVnk^^\RZWdmZjdXRV[^MLmWNtTTTPbZ}^Ue`Z]]U\\aWZIgAY^MYkYYZR^_]VXRSSXZZdXY_VcsPTfgfYoTZ\_\_fU^^_hdfQabpVTQ[WL]^SbQRXu_P[cVhV^W]JPV]SfUNXVWXa_VlQnjw_Oi`_\R[\WZNR\a`YRRaXdZdiOQTTdfXY]Y_\XWTGeMb`YcVRoiYX[]_ZT`zP]f]KN`hJXbnS[YZd[ZdUq]uR`U]`X_\XO^[VU[^RYcfPL{XC^[\Te_Z^qS`shRxwf]XL]\MV[XYRzZeTlgt_U[Rsa^YN_\M\Q`Nm\Zc_ZTYdTXaeqdbmYajVet_[_`_[h`Xofhiabje\aae]W_lraYg^rrZ^lidaW^j\U]R]d\[^vhj[e[oe^fS]llhYgX^hd`X]cZ_^UWpcbdZVfO{c]acTXfeni\ofYS_V\ofbd]VW]_]\\goawZ[c^u^Z_Zj^bZbXaWYaeS`fcu[X\`Wdy`cc\V^c^lib^ghTh[`^c`_hTYZkqZ_bZ\a^lqUha]^kfafeNisibpchZ[cdbul}[lenehQO_r_oaSW^^XX^]kj^P_c]P^dm[gR]dik\eWWncfmgXhj]WUjn\h[^o\Z_^dhmodjao^`^\x\lX\jhZ]TSVX]U^djkx^]Y[fWfwh_RgrVjl]PYdiiUdZkcuQ`mj[Tcge_^Tfy^g`kb\fk_qcdQSiT\\ueVxRdcUT_SkXZTbHV[P`XIbXnUZ[QYRg\uOPOeqRR]kiZdaRlbwU[nvTpc^so^cYW[bbQi_`\YgT_LSfoZXlaVXuJc[[KQU`[VebxXYYk`TgtsbXe^_[rQ]UbdxjSne}Xm\VqNQYNRaMT@lcg__aNXWVP\^faT_ffVngUaZ[VPQ`rgajaSHZ^^_lSZ_cTWZdLSTUj\`\BTdZeUeReYZos`kXigNfXJOd_]fTT_hifdWj]\\a[_hQ\a`PVaUeoXUZRhYR`S\nRLa_VjPadJUUerRfuXYpC[EnRkCPZKUZtbSaOd^UYcdRTPvMdodbeQ[R^VNEt^a_YiQfr[luT[pPOsmOhkf\WTkdcMWaK}a{R`MXZJVwm\fkgimalelkse`xlqomf`feng|ccmb[ab]haqpdVjihjmfgill\d_qhuyf_h]oljfj_eYjthYii\uclj`ggnn_^^naevg^lkqqi^em^[jvfjft_ihvj[boe`jxcjYcavmmhysop`guko]ddnlnijckew}dp`nlymrpsytmprkqlongkgmloelki\ayjmkfij\ncmjc_Xhxcbmle^moem{flfjhpfg]rcog{rnmogrnnw]okutfhfqnbnelgudej[pnoxkdhokmevvi_gygjyZefpbRrwtag}klb`k`ocfyoni`{hkoozh~iijkvqkoily|gadme^lk|mszq\e^hdggcj_nkknmyhk~g{Xh^chlcxpatiierkGl]WoWb^X`]R[oUenRljd_WcaP^gZjWfRT]]QUpeb|Uf{_kPNYhRsfpzcW]DYv\jllN]\PT_kmUklhUSNgmfxLPUT\XUb{ZPmMrU}ngQtgMda^Pkh^`V]\jt_bmmh]iLe`W_lStRdfzJP\sdkj}tvZUj_X^L`PMOgUtR^S[Zfiq[[XhVzhm}MauWe^imOk_WVjiwV[H]_NqY\iuc[b]KxmMUW|cf]JhdYJhZz]aCQ]ucfpvYgVmSchW_zNpTuOi\|Vrg[nbeTnnZepUTg_R^xgbPIdVQVIPcxbfQc\jrc`]fZdX^hX]jaC\tSitUF[SKqdZb\frUTbikiP`h`_UQe]d[UXioQ]]WjPjahLXcadfhigKcRgjemjaqdNfQZ\WyloMMWd[RgSZPO\__Z[Z[^ViU\SW]\cNOYXbW^Ld_VU[WSO?OP]oXKdJOXU\hRiUPh_rj^pUmYoQ]TYPb^ToZzb[ccbYV\bXe\WVbWS^ml^VVPj[nb[cH]JpYVY[a\WYb_PZijYXZ`ZTUR{k[Oh^XhX]oIeOgQeZ`hNX][U[Ts]fT_fcRlZhg`doPp[a`{IoYP_d[P`O\X^[^^dQgQgX`dXbfVd]Ncog`pUwj]OUbabTdL]TdajBUeWk^eYCSQZRP\PjkU^TRW\gZdSOrahJ]Y[O_iYSlaPgR^cW\fO[ap^a}UPRRNPjgTWJJnQaileP]`\i[_XOSqPZZOee^OmWDZUbbgZUpbU^^^\VcZbwspzv~qvu~}tqsr{mmwqyxsyzt}zsvqo}|qqv{wrvwpqs{l|zstqvyvqwv||wyxv{v~~swu{murix}vqvw}~pt{yz}pdymtuvx|tlvxeveohpmpwqpnjvqljsjz{ozryxzz}o{qz|vy|r~nlxyzyomn}t|zjtro~wv|r|p{p}yrxn~}qvwnqttynxqni}pwpxzwupr}zwgvuxpuru~zlxyqoxtysw{sn{~xuzuzytrzusqynns~oo~zpuronpruz|s}zxylgixzmyu~wyy|ggyuutkyv|ik}zwvpuml~{p|ts}|}o~|ssvwtqd[`ih]\\_bs_]aL\iRslebT^o_lve\_`b]aZQnmdYd\_WbXrqd]eu_m[Y\ka\Wv^`Vef[e]bxf\rhX~ifj_QodWwkZ_eke^\^jVVffY^}f^euoigyPVXbYmfff[j]cXlXg[Wmn]ali]\Vi\f^r_cc_w_OWR\^}fWZwVUa]XU]y`i[Rf[e[WWWdyYj_WdqgnqWh_^Va]]blm_d[fZMdfaYW]c[`[Xo]d]}[[ga^^Zr]n_alX]YheeJWieRbb^q`a_eq[beM[m[Wf`\^\Z[`^]tZ_[\r_WZbYfbniv`d^f]Ybtc]dLnpa`[eXQb_^n\eQk]r^YgW[cbm]^a_Vhjfk]x]Xce[dd`W|SYfYjabq`UYW\Qcitc^WPZ^WVm[ZLg`KqMjmfr[NjY]be\d]TTPeambV^v^[xp[`\L[X^YNTb_bkp_\cpW]bebkIPJ\mbW\teqhWd]XnmndRZfW\h`PQeeYeb]OVlQdRgm`X\SecVQsZa^sj\_Z]iUOOZZQY[f\VS\d_ZxXXbQPWZf_UQQ^I{rXYpyk][hxZU@^bSU|rVJkSbmk[ZQ`Swsc_emvRqiOggbXdli]hX_OotSej^cJ[~Yas_dQQ_fel\_=kh\k_]iLgSldVx`^fP`Hczc|PWSIWq]vmHoae^ekXan_faeh_sp``bdY]Tirvl^X|Sb]ZaVR`QlqXSXmUL_\ZXWeMVnZLVMxS`xPSRVkVIjuhq\e_YV[Um\oYc\NS_aX\VZkNTwgf]\SXcO\PaNa|Ybt_k^V>Ta\TJgMVIZjW`TMjXZWbYYYVeSi^]jeXcjWbuYPNSKpPgQQ`WTTfW]cPPLXjaZKkeR`fcPXOUMSO\eU\eS\NSOpS]_\fQWlY[^FoeLYKdWaUSSLU\UUTT]QbzNhb[T^MUP`WTSZejP_iepN\VYgjbVMWbZNXfR]ZT^SUZNfKUTbSf_hbWmVgWJR@QY`TXSR_P]]enXIduW\ehaQd]UPe^XbjV@gS[{b\`_R_S\^kWn]gXg\QS[iU\VghguWizYThXo[m\XYYbXXgSq[iWVTsHebeg_\TddqOddaO]cMaVSYbqUfmcYzSRc@q`vaGXUZ]Tbg_g[dW\wXW^]YT[LYaP_NObi}OHTVafcXp^fNP]gTg^^eo^hfi^nTQUjdlhffNfo_\^L_TnikSZlxZj`P|S]Z[hhd|dlcOL[`]`mZT]lReb^hkgZq_Zd^cS^eX[keQ^^anmuprc[g]xRzXVokldkneaSbvtXhZf`fQ]uWZv\]]igNaYNPW}Z{bSQbdbg^ygQS`WfQ]W_]]ZSX]WXbs_S[zS_aRnV\fRqjkZ[]d]ff`mZXh[c[JoXPWf\f`Xa}`x^_c_dgmh\bcMQiaj\VXy\CXbgkf^i]X_Z`d\^grac\`hgfdVVeYnUsmqjajggSQewbk_ZskRYuU`eX_fs[Wa[YiOJq[PX[_dbRh__[fTTbP[bdmYhk\hfmKUkp[[XqYejWhpgQ`XSe`]hFcsVrWQWloYX[XbiZzJ]ecbu`^id\_XQStS|uecP\f_XMrldnO^qo`b[Ufb[V~WJgfV_VcSaQhOUd\}[fiSyRIfMi^`fUqVgWs\l[`szWiURdYaX}{ledKoTn~oIZcrqfUY\{fNo^q^UTVhxnc]Emvic_{OQckU_Zi_McMdd[kKqQVWzwcycUMw]mc\MWbaOiYiZ^oqbiXWajiAcdEYXdUqSqbYs_`]_acbTYaZ^]NjgOZMl[W_f]]EWa^][`h`RQX\vg\c]clWTQVW^odfeYVUrhOOP\h[iNKMwQW_`klL]cV\iKPgmgiP^OqzYPocdQbhmXWZBdPlk`]RU[ed]]_ww`QbZgcOk[c]W\wQ|_X[YcSvjYSYMcXcW]ZcUp]dlbTc`wcoY`gg]]LbpmbVn]d^^f_kdZe_`aZdeWbdkM]v^mZ]^ee\_Wva^_XS\_Wdeb`j\frlZ[cmhoax_ed]]^YfWihg[chb\e[iif[}VdZYUZ^d[oWce]_h]etbamh^Vf\co[LyqeXd\n]hdZdaq[WQrjdaqhejPf^mczNZof`Yc\Z\^lkYuYgVbWbaUieVbew\fZeXdjei_^Q_huh_^w``^dJZYkvTgbgdRU^an~[kW_a\bVadfdWSbUa[lkrSUV_Xf\WhWkccdYc^adc\Vy^cd]a]la`Xadh|kS`^aehaNdiWbbb\^^mlZrje]f\O`W]hcYdckvk_\}im_jgbeajZ]cT_ShldUj^^d\]XXdeu_\Sn}PZbxUW]]TiidZ{\ig]LeeS@\VOO~^=Fj`q`je[izX^[r^fK^[b~TS^eiegbSYaeXvaZsWRNZacZHmgqgH[`plqA]_Y]ofaq`jolOMcJhp]`IvmX_ORdI[_Zlue[hs^Mem^Z{mcPjabidg`WanqkM_YR^]cQqT}tmnb_MOUjXUPZ{S_[qKMWgXhZd[jalmrO[X\gc]nJe\Kklf`hhy\YXRoL\iiXl[br[i`Qkxajegyk_Wn_nPchZjdK\RqaeXN`s^PgWSTK{e[[dbmeent\[\XVRnRjewSRcNYcTh}TMwwSgkz^`ZhvZsjmg`\\Xwi]QR_cPLi_yWItsnd_UarodSZRkSYcucpXhevXMg[Zgo_fRQ^rXfrN[k_eijsialRf[msLaejWheab\RUc[wdbqjm\jx[sZoT]\_jVqhePMgW_gYfYmpYb_aC{wbfzdmY[rwhf]iUf^Wctm`wnriRe\XTfyufv\]jgk]eoVRcvcV`cnwSVjzkjY\OrQ?ajeltSmgXcinYf^q`jpTumdYmehefomJWMQcu{tHe]Xiae_mujabNmh_kgeUejdg]y^ambuU`mhhdPdY{fW]Zef__QW_e^p[ea``Pl^xd^jyftmwdyX[i^ney_pWBhoghd__vpjVtkSwbWa^ic[lu\xe~i[anb[j^\]kza`tbtmr[_jljVsbfO|pwLqXUNYkWoSv_^feTgZjgXVbagRd\|ZbkgjiTdwoVn^XkSOc\OZ{jPbfc[[WeW_ewYzkbXfcgYukzh{\ldTgoY[P{^Xxa_}vw_S}bYWxnobHfpM|hXXectukcyj^YyfSZb;s_ggPf_f]gnn[qXudTjoW\BZlXfm:BYMbohjr{XkfelolqhzdehiLkhS\zy}hedckJ]cKpek\f[fWcrTu`EcdurH`cp_[eZauy^ufQ[vbYdpoj\pgF|]\b_xPv`]XWdQUXm^epfavlg}iogOXcadMNWN}Z]ve_t^Z{~t[mxDYecmyPkXd]dS?Y}Iq\qpSi`tl[paztESqggOhdKRbRq}kjUO\ZikrVVIgV~{TgthcnyhhcoXZe*Wekajis^wW;fVRtcd?pCkeQyeZTete^ZNjXUcLP^emiZ\_aVg\djgw[VYaZUpVS`PZgQRU_\qMKgldSZoYWj^dfU|N\f[ZH^X`[Z_V\Ytka]orKsL]WjUhWZ_Vbo\YZceZVqUWLTYJahb\KLPUh\v\^Y\cLnKfI`Xk[LZ]bQci_Y`OoQPYQVXQR^ViaPUJXZNNfeb\tVfSUT}aN\Vl~sidXdOVcW|cqvdxobMWcuP\KiLUU`Z`[veUc{]LNjadR[TTkYTSfOdh\OL]OZkwUeThU]aKTZeRWYo[ghXW]UmPjO[wSlXLWTRXPhR[PSk\Te^sWW^_RYapP^VQ\c]]mnmKc^VPef`_QecgYYSYdZ^US[R\LjoQT}pmQLR]]Rk]dRmZiQb]\nJ^qTRJYm^cMpk^csqkinifUevXsc[TgkWplesc`fdW^adficcxl___]lkc`Zu^foaa__jdeqdtgmWu[aTd_ivi_cgp_Z`]Rfrgilg_Ziech~lic]^\\hkv_}c\WaiW^]^S\xa}`ZVbp`e[`i`Yiykag[^bt^PbqPm`kzk`NqrO`bZki]h]efVZwe|_]VetxhwLS^_YZ|]rTUnxW^ub|f^bRXZp}bXiTcsPbkYpeYa\_jec}LVM\wbfgfb]^hojh`ceVWziU[o[fm`]W[k]}}s^hUXv^[pptqUln_ochUqYXgxec^p_dwSbee\`\f[MXk`avtzogmsnlrsW^T[]ckZ__oOaXhhd`uXWg]h\\b]rzj[s_[WSbz^ec{`cZ]KZS^TVqZbG^[dh_SUOkXLY\T`XUudIXUWWOSQNvKgf^aftvc_@hfXsYQ^?RZsdQMB_ddYoUg\gPi]XRRFiGc`VWXSqv_X`YURYQRdURji[vM_VVOWt_TP[Ony\_fLTlc\NVZfaZ`FU\UfVf[X]\TdVb\j]VRJM]XjE[nqSfHaa?ac\[HEPWjMjkaaw^QhW_TqwoWXZSWROfUUmdbCVjU\uVjaf~fY[ZL]dzkYcYX^Pcng^aV`t^bLYesQcOQpU\sQbVelbfmLc[TSQ_Yc_^gNMeN[Pa[aV{W]k[SZQNNl\PLl^HrXZQXapEichQ[`OdZH_aO[^gTIR`MXgVPRlWmYHZN^^m[jeSiv`iYHs]\nc\[bQbN\ProPLf`VWacRo[p`ycVjOX`mayaa_Wjck\[q_c[Umz^;eeEXfuYITWs]\ui|RNx]^z^Jb`kcb\ph`P[hdWXdbr]bWhXRYsxVKTNMY\]_tOfYfZwVqkv]aUiiXLSqzSOgR_gUyZNbhia^jgotpmMiT^v_UYgZfmsigfdp~[IU[ZfntTnm\dsacdcZgWdU{_jQarv[ebf]xIXkdnp]jecRf`Xt[u]vVZb]OscdWe[daijZGR^oW|\Zhqnff_ePnW[`iVVyJcXaSq`fMbtaL{nWgh]Sh`SmgSea[_neM^gU`iViddWPX]plUdgObpiamfuZRX`gto][lhcLdmXl^Znz_^hnfwqkiXy\a\^[TUkcYrUccHqWq]aZWdnTgenWarVSdX^TWOb`z\d]YhZ\R[b\`[_^oQj{]^`gd[jN`c[XYip\^RfgdUqoQYQTWT]T]gybXVXsSnb\^|YiiY_abMxjr^c[\f\m_VlqbeeYVQ_yTd\i[fpe`M`ZZ`c[WgZwUiZgzcLw[^^acPjT^YcbX``HEWlYVGWWjR_dmtS[vlYddJZmhZUZMir}jjeR_^lWOSeLjVeblVSUi\WPxSbe^TSn[]a^]bi[i_hb__d\hWwevf^iXaTdo[U[W[]We]cMQYYbVXa_OeU[W\iq`OhlbT^\`ULRVdafc\ItXtb[e}[YchRfZWdloajXTPOTGgW_][\hV^TRPVn\ceobS\p\YoSX]UgXeXnbikbqcb`qTgtYZig_MeeVVjc_n_\RW[i^deyfi_y[]\]ZYdVYabXcWmc_WYYtg]_dsmkd][V_]P]ZjX]aad_UxX]`k_Yalct{`d`hd[^bWe^\c\mV^_T[^\lWibVZQhc^STYfueYkcl]_TcRU_UeZ[\yjsibcc]M^]varXo}jWwrcb]tN_o_iZV[`iblVkYR]e_b[dj[X`jSS[aWO^VZ_^Us_TTmdfa]edYXb]Sg^SXTZYhaTg^_]Q`hSbRe[U_i|U\Zm\fqsVxlrZfh^dmXeTYecLgiTzlH\_dxSMUVnoolQd_mabakkpc\tm```ha[WbYcRt\Y[uOejeif[TgoUfj[[W^eibUaWa[]\T``k]^p]u^fg`klQ^Z]S^pb]YcexePVZb[ZbWXW~iiwcV[kJW]^^pqU~plqQeq\QNVhcuhPqcg}kodZ^dPk]beljejTX\`{pj^O_rTY_jx_w^UWfavLqvbRi\}s`cuTkX[jrRW_ZYYg~WeU[tmiXKZcnPXEanVPwoviQuOq}r_UgjVmm\XhiwtdY\Ulhdk]e^_tj[boQRwle_bf_epKaa_jshit\Sa[\dZdd\Zhw[gky`b^MnlSU\_c\dXf^omduf[IpI_UPoe\ym[WSQqkncds]f[kSmteZidWbe`dIrdbbqdpfcS\jrW^YgjKjeOl^gbpQkc\khZcd`cjMgs[ZqZcbYl_Z`vWcfEZc`]l``qiNXa}`bkdLorcsUHQXXXW[SOe[^Y[kmni]]iUaZ|h`}fpjsPkKctYbWLXoLSJxO[QfVXSVLQNJva_qva^^nQg`bjV`_NgO_XUUdFO]WnQYlcXf_[_JNWg`a^[PTjpbVSJkb^Udj[hvYpQxfVZZO_V~Me\_bhy^[qU]Tg\rsSadPWj\fcYTHM]wFN[\RuejUSeP]b\bJQ[q[rkO_dV]^TO]bZYW^YkM~aWTLb^ha\[beJL]iob\[bxl^NgqQ`TbM_KZv`aTez]o`TmsSO[knGcahQw^hh^Vg^j}l[sd_TNM_^rTjER`|_T_kDNL[Ti[VVnZitV]_pmIcf_GSageI\jbqfkTbTUjj^cU[}kRlpdkj^ojx]_EWqEe^{g`xNjEAX^\NXb]\mYXWKYqrqkyd^j`^iRihI]][[LlwVc[]RnVKmRYitR^qfM`XaxbjoT\kMV^[Ik_N][UcP_tdXVt\Ud^^If[{SeVXXTcUf[s\_djUcaIiPcWSaiaTLUanfRfNk_kVIJGcYXY\\X^^cqa^[gJggNT[bdRUKmQ]WdN\SP`bCf^RTj\hP_h\e`_UVahij`X_MZZaRIZ]hXVSh]XciWdTo]_Ued?_dgQU`zaYWVgRaYVKh^]XdVTI[SXy{]e\e[_teR[UVPhORZ]QRiYaJW^W]uute[UV^tzM[LVbiUU^U^W^VGj[RtYdPbq^Z[RVe`WnWZdYSYaj[hX`sPN^bboaPUWUOhXn`UhZ^`^`U_RaIZ[M`T^UaVp^[Iei^OZbQ\_bSsYWbeNuV][WapVemmWVZ[]d^qdz[n\NpK{VVmEiJyc}gj^^^UWVrax\n}VlfG]kkAw_}cicoLzmRcm>lfocxefarehoMjuTmU\on`Oxiof]^ldfk``N_Q^\QXfZibhM_WJiL^Y\`^oQd[F]oe_Z^gzzKNbiwJE=[[ubdPdfgfrbtTXORWikMjrWLHYak`U^[e[mZbjmrf|[jp`kiqgxZjheeW{_[ITq\bxUJzKe^YbOr~c]k]~kTZYFg[d{YTdvmllarshatTf{i`JVPO`\[b`cnjosfojTg`w}fopx__xRaiG\[_pXcZvia\fcv\VQgOagch^[QejW^hamBcslqAtnFf^ZWzbco`LhujZk]SloxPyrGx_~giO8]Y_]nZYc^X\WY]jbgZ]Rpk\o]^^[UeVkcVtZ`WZOrbXfZWLfj[RifmThj^cT]fVQdL\6fKrT][\abQ{hrmZXUSXm_TfPZHdTRfIkgKfV`JTa`}ZRWetVt`Yjp\mWfyzSZX[ToWO}h`OlaHbP\QplLpe_UNjX[pPeYMhyfxI^fJSZWY`WVfjOYOSZ_ZxoQUiYb[Y_gkTYHFeGBbVhqu^mbRSleYWZ^V]TT\qdyjX\]zHcu_li[mrXVdjZv_a\yhRYd{\e]LZ]thA`Y[WX[XU[f`i_vPPdXMi_sX_ptY?mZWl_hmKXXS_y^TQc`bXgT\dka\cccN]SjkYngjuq`TuvQbV`_Gga^DVYGPbcaYdNDbglaUMQZWgaSCa\foq^XN]cQQQaV]^UuaOhY_ZIMW\gvZ^Z[]oMLfSh[ZPkPp\KaU`jUrSS`F]][KWLTV_NQ[bc_^veOg|TeTS^jSa|ggzSc^QubV\hfbUgcUZXYUYQWM]h_GYXiOYS_\[`QbXTRWWWQ_SVTcLiWJPPUYTMR\mcUW\^a\[\YZVoPER[lQV^YXdT`Y[WYgZXaRzUUXRVe\\b^rO^UKScXliQ\hvVEObMbcKLS\NWt\SNj`_LZOnUZYcUfLZyqPYSJQ`^XWbIYT]VUboMTgZQ]TQU^de_bV]Q]^_qQQ]i~[VeWd[XX^SdSYSnSNXL^ciO_HRYPSK@aVM^[bYX\][Rq\Ud^WvO__[YKRg`hG]bQUv^QTYYuX`cWh_|XO`smZ[S[G]RPfWZ]CejXQgN]sa]lTUFT\X\KjRa_ZhUPfL\cXSq^lUXc^sd^OOYMRVtfkV_XX]KLeTQ]QXNV|^Qhe`D[e\RhOb]UoRhX\]OQiYX\cU_\[aWUZYZ]WW`UYWWNQfldMXUUZ\LKYYjbnaagf[Sa`ZaUXEdaV_VKg^\eTXh[]bQkR[Y^^YRMeSK_VJx_hWLR]VwRO[aYAbzZSQ^\jTQRws\[\WT^bc\d_^]dRDVee`^\IJ]bYQMFVkP[]TfiRVRXV\VWZ\Nio^TPCS^UVQhNZkQ`wQ\oarYXai_NulhjedR`X_hf\VfgSSeVET[UETaf^P`fF^TWtaYXN`dYMpWSfzk\eX[Ld]HQTOHteoJXX]WaY_pXKSRgXg^S_XYemXi]QVWW\PZb}]iscpS`rqeWkMdQSTXaXkn`UapYcfm^YVglh{\`ewfX^|_HnXfbQV`^ckbdr_e`n[qYbe[TehS`eZmb\zUSYbVc[dbwPbf\ch\kddglXRjpalXRUg]^fhV_[gh_VX[_cYodnjeh^XcaacZ`\]_VXsas\hhbnhwc`\Q\_Vm`UJ^\_fUgmU]Zd\fpsanididV^PXneKWczt\MW^\v[gteZfWh^`gciiazZdbc_co_b[W\\i]rYih]`W`zWZpfZXa`c]d{K`_g`_Q}U[_mgSZ^l`pfsXnYi|cb`wtZnX__ckvoX`hclt_pgp\[WWeVjTkbpNXbdgZX_yaR\]YQ]fgXa_ohaZv_l[ji\Pia\j]\Qneae[MYXJ[OGYcVPONRQIMXTSWJNRHZUQTTLR]`LUOSV_Q[LPTSZUUZUDSRIVNR_HWaQ\OTTVPNXJXQ[LZXUUSUUOKNTW_DWMPZXLGQ[MMXXPNS[NOUTOYVTOQT[T[IZTVQNQcdPHNXUZHNNZFMaIFPRTNMZ\FY[ZWULZGMVYVYWMNLUURQVa]UXJXSW^MZXUYY[IQXUWZZTMTTX\RFRJSHPYWWRUXHQXWO^VUTTMLPTU[RUaSTOTOPeTVtmYr^V]Zk]hNcb`r]`OteqcTFWi[fJ]Mg[klYa|ZZrWemfkiWaaW^\`udiKSiRgSbNc^fLyRhggajglZgjmzGW_YVzPjgciGWeiMb]lc]U]kO{cIV~TY]IdQsaSpSZrVfr_NWVrZ`Yd^[XFl`dnnkQ\zfPo_]hUOOmPO]\ZSMWZicO\l{e{S\rbpdjruSm]gQVihe`vXUW`nOYYidYqYa`asN_L[[^~Z]nMVfSqLT^TtQ~Wh\^__nV^[^RbdUvWOveP`aWZ^\TX`SaUT\bVXP`hbX`ccdNOYRcZ`bXZ]eieiX`kXON^j]kfXS[RTT^V`QSb]_YTem[_[YuVfZZibj[v_gmg`ZbYXWbzi]qXWaM^hgU]a{\\fU]_MXlYXHliWRYYRQWa]QJ\`TgRuUhU_Zr_W]hk\_^SCojU_WzWSbL`[jXXvKaq^`df\Sv\R[]V]fg]b\Yc`^djo`o]`onTeUFS\aWc^^i^UKyMcS`hl]UZYZ]d\_bTggUtHX\[W\ec]a`V`bp\T\|`_SRhX^aicWUZ`KYj^UVePbXW`cZQkPVMZTi]SY_^L`O`iadXaoaVjWS`RWS\Qad[abL]ae\[U_^VbVQ_k_XWbU\^cTxaU\aOZ[`X][eRf]`SV{h___j\iXoSY_`H[TQR`fmtdna_VTRSZUffUaI[[KWjJNX[]iQO[MXy\`RbkUTWZY^OfiqdKPRUCURbL_QVS_YP{GPdVV]yO][[hTSLqW[JHTf_RWTX[_hblKM[bmR`_\sfM\XR_USQWXXOT[cTSjcLn_^LXl[S_YSO[YiU^PIZY[bZ\gT_VXM^`XWlPa\ldmlaVPQ]O_eiOY_FWXh_XZXfdYQ[`QOO`cOb`SPOPTCW\k`Z`zH\XW^f_cYaSM[hWOi\\YFRa]bdT^WtfgMTR`YMmY\iUURX_OgbXaW[KQXR[SJOZ_`mOXX[aWZZMQMPeV]g\BMfO^SQ`^Uc_^IRTPTR]eZEO[^ZMl[NZ_W`ZZOS`mZbeQW\_VaRSQJYEEh{o`Yd_bjjWgb^V@\`kTfZo`mse\TwXk[^WO]fbJTItlUfokw_fSmuh\tijZl^shvItVf__\Y|X^xXYlb`T[itS|gibXfWd^ghajn@qZSdg^eheiXGfGYbRajXa\U`Ud]YaQbO[YdZfRUVdRQaPTZ[SeYh\_bWh]PmM`VPTRifeehIg[XFoZ]Wu`aZra\Tj[`aeegRXaUV^bPWLzsZcVh]Xhe^XZhuN[M[ooV]VuZpSbZ_tZb_MSkT^J\YU_rLubb_RPRcksNRcZYl^racnS_^aXgY_U_sRVb`jQ]SV\pimYiTTXmxUTPmWYc^YbeZ``iORMUo`VoxkWCK]}\MiatXeY[j[icXsYl^dQXrpjWVX[]\SoWn\OUebjX^s]db\b\nSgXW\]mNbi]zeSbcm]Sdfso_eb^nWZqky[Pp^OR`inYYZjZuU_mkbn|WL_|jUYaZmkjU[b`pXeKrgYa\b^ldhktedVQVmdmjr]pvVrQnV[WjO]auge_gXmr[knm]TcWkfc`ZajoRVnZ\pKox[[_]cm\ZykmqbOV]YkTh]KeUc\ieYl\^lfTVVr_cogtjm_ec}RYV^Yhdnfb\Un_LVawgYShXjY[nXlh`eajqXTZhU]l]vo\cfNYeZjmibUYRcjbvwlY_d_ob}s`mdldYy]dUX_Zsb\SUTWTkbkacVMVl]Xf[h`WKWnmZg^XaOT^b_tbzUsSYim]j^hSobnhOidlVjdf\acddsnuXkZmbRfnkZWf\YU\gUON]X\atUp`fiknxU_M^_]V`YRqXeTtLPLK_OZNkdpdn]`MaNKhH][ISUTNaXZmlTfUdXYp][DQgfO`eVubiXYqZcRX_dYY[\XRWGP^Pz[PGXYW\^UJRSCIU_MAa[XdU^]fdWbmcFRuSKe^_YYIcQwh]TZWZeWTLNpRV^S[UXSM[alLVhQPyMvQTKcQO^mXUaLdk^PaFNV^`S^fPkMSWLMR\hO_CQkRjQ[RtKQW[\wSj>I[NIHPS]TnJGQZTEjUdiqSZMVLPpjTR[YMZ`gXkOXcR__dfkC^Tu^_OeKahUdhfMP\^QYThT^J^NX\{^`abihZhURNPqVJ^Uf`gQu_dPYYH[alTU[DbMLSsR[abGr_WRvklb\WfakloUggxrxk|lgJjbVPUXsu|hygVsczs__dVfOp}StijYwyU[__eDOrvRylonxkajacehh]ixSf|t[jweYgqscbb[_pmaV{vk^Xf[}lbu^plrQjys_lVd`[Y_gY`enezaYcZ}}|hXy^l`Xpgt|szadsUk^\vblTli{h[esHrn{}]yrdeblz[hqoVVmgeO]t~bj|}\aNj\YbFuestPuoxUk^fhky`_YogiLgIfzttZYdbcfpcrHfepuSYamVpgd\abhwYMvdG{wluNhsfRyWnwku[gomhnVn|hyrudfiRubhl~WVUoVgdaESfpr~ycba~elpslrf\SlohUl_tp{ptvRW]\ghZQ^lNwjgRirhys[i^[PuJcmjffVgmqUuj_ZTdiZinbpi\FbNWnvf}ceUa`RbmlxkbgOpXtiXt_e}aalhgsZZhhjYVVYj^r|bj}`flYjScj\`chemVVXgioeobob_ztpghp_cebU^Rac{f^fablo\kzobc]VvV`iooeXV\Z\liWyqT`kdfkpk\^y_r]ZmXdMcWe?uhox_qlm|X`tb|`^^dQfpuglciOc^t{nd~Td|}UcXkdncYalNa]}bnk\`Yj[gujaToZ`osZiT]f`d``Uyjl`nvnTenbvTTqtQWbVqdhofL`fnb_hnvigqi]Ym_cqgKwf`faanu`q_Ya[o^\\qqSMMV_T^dXXT^U^fURA\mLJNJcYWT[LRSSQXXCYYYU[Z[W_UTZUxWS\eeLUZQJ\UWORhSZSOOHd^hOV__X_iVchSEPZWGK[b@m\oFUSXSm^ETNXVWW^RWUaROFIQZ`bTO]PEN^VajgMacYWTMwXVqX[]e^[r^_]_ZLU_MXNTb\QdPbKiOLXUf\USNXTcU`UecSLPZLVY]bXY[\cXSnMT\]Pa\WHe_\Y\T]PMTbsaNV\TZbbXWSdeWKXY]UEQa`ccNZFS]WfbXWSc`]U]eYQWZPbU\U^PPTVfSceaVNZV]__aYSVSlUH^YJbPXTYW^zbgVcYSdmKPSdSZbTMaI[^MbLGgRQ`^KW\`Wab[LOWReMQKbeUaTT`aaBS_Zj[^ZRSf`Zy_V]Ud_aW^W_^U`Y\X\fbfeZMhedi\_^_SOubn^\V`bT`ZV[PQ]Wm`dN_^_Q`Zg[WlQSUX_fr]ljr[n_d_j^Z`iZb[cdZ`XVXakexa[rfSSfz[SVqmVR]ZcekfUdb]\SSf^ZNZta\ceOWZcjn`Zx_sbbW[xio]XrSqcdUah]ggc[a`k\`oYYh[miW\T|kYcmV\[\ZPT_iaom]^cO\nWceda\\p\\PedeUgxY_h[cU|Zc_cu\niTUkl]acZMd[ed\`]bf_y\^XlofgL_XYltb|RjVaYclbRTb\l\Y_o`iWdWdP`cYi[Z[MkfX_`eaQUkXP[_YWVi\YTbcZ`Wf}^kamcXc_^jldV`VWkk``Wtw_cW`\bcimrh]a^tYezu^gdKK]i[VfYidm\W]uWuO]sZyQQcYXPbuT`jafUnM]QdYOV]_a^kePzyVSSbykMPSqOrSYfVeX\iXp^Uh]uWV^YMQDbcRgjcMOIVZfUa[[alrMXNsfhVkdfrX`]]nNUXk`aS_[ovag`QKXdJ^ZXPUhcO^gbsKM^e`_[lUQfkOgtsSU]aaZYoX[K_Qnmheh]dR^Z`KM^[HkUdOZMcdLccU\eZhjWHE]gQ^amSMR\`IW]O\[RUN]hYQ^gkF``MaQ`PaTM^hqefZs_SkXc[h]gvHbLk[RTZeQXObVMnd`ddXfv_[FN\XXqtmlVXYXH[fbbS[|xXO]bVefsUZLRkklIk_t]ehmhUkdrXaVdMh_HPcrHRdRXb^_\Aadj^^XcvXiiaVahhfdTkS`k^dSgY\\`[[UVZnYXzdk]g[hsoc_h_jZr^_ebUb[_dol^x\e[ecZZ^bebXkjZsn[`OZfUv[^_c`Xlh]^b[o_hoYd{k_eXV_^WbrwqhsjWbRVoa`ci_ec_`aavdVU|jg`[dd`_[cse\]s_hZ`Y`_y`X`Va`]jvileZOg\ih_tbn^`]fa^palgc_Hb{i^^_fYco\fogj]\k|kVadsbSbfafa_ehdccb_kaah[X\ag][^c^`WYO[e^a^[h__g_bUc\`Vosh_Uu\\`^Wo[gphgdpo^`fhTZ[vs\oama[ebdda[QUdlft`j\i_]lp]c`MZYlqrbjV]gnPZba\cb_TUgkljtehojd_lofZ>habfZLT]YggiVTbZQ]d`bmhy\Z\cWOZ[oee}R\[YdWdt\V[\bhVXhf_[jTY^VUYKlSdfYXd]i_ghtPZWeZlnPeO^[VT\UnLZg]dad`YdVeWflSZk\[]TdTsbOl\YhKgjrha[etZZX_XP]beUaVaSdhas[ia\vR]]YXfQc\gKeX[W]YOI`Td[cZabWUX_ZXc\phr^~[`btWa\XUiTddkbeqSfMe]ceRZY\iV[XZbZ\uxfV`e]Lmfm_g]zdf_g\WfM_Yo[fcRdY]_]T|zS[_SZ\jX]poQ]dImYqMVoSklHP`M[SR]YXT~[^Vag[m^LZ]sksVci]Om`aT`Wr[P_XQNebne[\WWdOZVXdKaZ]dQZY\b[]cPZd_hfRYcd|fQTj]Kikb]da_ggsp`WeaT\ezhT_Q^bZwUdYsTVxTWhdlkcR^UYXX{WieLf_ZWce_PPbPS[hk\QaV[^a[\UdRfRhUa_g_zhY_XiR^XfdceUUJb_c^WYd_]XSaRVV]YM^Y_MbUQjOiaV\cdZeVH]YiQejBj{xUeY]YeR_X\e]lllIly^\`TsMeiXLhVhqe_^S_bb]Z]VzzcZGSiYc{WZncbga{RVKl^`KiQSaOTYfSZYa\aU^p]YnV^Q^e[Ph]HY\`]c[_]`^]cUiZhSLZey]vyjYg^[\GZ\_h^mWlbj_`HZViYWgXbTicYe`RRJOoU]hWk_fLYepr[XoR^LhsUS_ed`{]^^ZneRlZRn`QXpmw_RbH_\kkeg\rQX\Y]Yi\ZWRUa\Ui\j[_ZV[]ccG]v\d@VSRiKlVGTR][vT^ZTo\gSa_io[[ikZ\GXL]b[^]bnZEY`X\PPqU\at?pG]MfLi\Ocnhua_hlPaoptt_[abchRXUO`W[PpeQffv_Y^VQcgVbXq[YhQWVdsVff\Mih_LfTRYgiZYRjafYhkgO{]YaX]IgQ_[\gdKY]LTkLhZgjYYzR]k[c[nifqUWfhMn]J`[Ufke[_TYiSXsa`EbUfZXZZYz`mQn\OPVvj{WdPaYgq^rWVaQhjRfZab^nfn\\pjmR]TUKh[TRV]\UsRbU[U>_xhGOMRKafWZLJGQhdIOfTn^bSKSe]WcraefXb__acG`SVhfP^ahTSVR^HdtPgTUon]dLkVYbXfMg`J\maNVGRXsm[MlLpcKeMdhZx_oKXUb\`bgGLbhUjbU`QXTX[TcQJoYaKrVZLGYIPbSs[cON{QmdcRZc_]ecTJLPW]XJ\YdQuY_XrSU\ZU`PQhiahQS`|\[K\jPTaXWY9U^oZT`P\YQbMWfDYkLWF_C`cMV[cpBZ[aVNGSPRyNl^YWSPZocQocRWkIQYSjoK[`FgN[s^bwRhgilfc_RcVaZdRHGaX_J\_\N[YZ]iYWLU\QnOfjwd\XS_``SrXMZmXUaPy[l`PJMrOMHHc\]tRmof[\^b_X[dV\J\dKZV]uU^oQT_XR^[L[P]QgPWcOHaTUg@kPLKVVUJ^^DUX]dcURNbgPPWg`]Vdhb[[]Y^RuZpi]\YLVZaWY_akjNX~MPVTTQQQ[^ecZ^Y}MWJ[L[R]\_DLXI[TTMUGdOX`YjHKLnOXCLQF\fO^Uh`I`eSL\\\bONgsY\oc\\NQbW\kSTuE^YP\YT^RNYkLW]]]ZMPVhnZX]ZcgbFiJfYPZc]`U]{]I`SKQKqaT][I\^COXLTcaSP_XV]IKfV[RNamXbonc_eQj\aV[PcbaPKfYMTPVWO_J]h`BONnhQb`[\Wc\aNthl]Q_YYR{_SMON~\bGSJQQjb[^ZpYdWidbYDStUHSn`QRMUVLnlmSXNQS]PF\uS^\dSMbOcPWiQ]]aWlZ^PJmb]ZY\WfggWY[^[gd]RbORf]`NT^So^WjcokVcqDgS`c]I`cUX`a^VPOaWznc`wf_NXZaVZ^P^dXVXwNV_pTieUYN`gZYNv\[`XR[ZZaWfoufTRSPtPSaTRZXb_YaJpVa[YrWEX^R_^ZUbXZ@aj\go\W[fWX^R^NT``W_\YV\_NU\lYNaOa[_[]PX\eRh`jgRhOfPFe`NV^^aeVhnY_qT]aYRgP[U^rfegKpCZgeM{`YKYL\[egXdVRWUQeW^TSTyef]jDb]WX\cWZ^Sub`s`PJUIUgfRT]ZYVdMFbRQlXdfo_V]lMZL`jk`OaLwbb\\fraQWo`]QRdtT`ReWb_N`]LdU\JEciik_`akriYduWXR^c^XWYdl\_fRT]daXWZ`gbO[`XGM[^tQYUpbamke^WtkSlPwDSQRLXUiUQ[lZ_d^\Q_N\jYkNRbiYbZ\l\\]ROQXWSRVPRYQQVOSRSOSVUSUPTRTNROWPQPKNWQUTQUNQORTTXPSOPUQRLRORQZOSVSLURWTPPMRRSRVXTSTTSOSRRRPSURSVPRTWSTNWSNLSVSOUSRSLZWSROQQMQPSUQSRPSRWSUVQOTRRTRRPTOVWULSPUTRTQQTSRSLRUURMURSSTTRPRPQRLVMTUOLWWUMSUTPTPSVNUW[QTQTXSTUWRUMSQSUUSTWVTOLWOSTQLSWPQWUSMTPMNSULVVSUXRSRUUSPOURPPRWUMTQRSUTVOSOTTSROPQNQUXUQUQWOOSUQOPMNMOSPNNOMUTXRXWLSMPPTQPTNROPOVKUTQSRPWPWRSPSRRjSRQRQTPRKKNPSPTOTRPQOSRRRUPWPQdaXoaakSXjYjTU[g`fYeV[dHb[_T]ZSrTMU^zWZdp`ZcW\dlhSZX_gJdX_ocyTZela\UQgh[ga|Z[bZKccYeQWQ\RIl_F_nUZs\VKTT[cXZYXO_`YcYTRYGZgXlkIUNWYedQc[SJISs~Vv^F[ckUUHYUWKh\dTae[lYh}LQkW[S_gVm`Q_HSgTTX{WgkkifvPJZqof|fDm\\jdSQ\mRmVSdcXXg]hLilKT[ZVP^RWhQMZa[_ZQUTITQ[r@PbPFj]rQ`SbqKSliPTcHXjMfkOW^_XTTWVZWZ_dSUVOZ\N\tbH`dGPUZ\{LcdMEODckX]^tNK^mLFPk[UU]fPN`kd_k^X][djXgeRUbTiVqwgiVXQ_XFQKdbuXLmXcoVkj`cdnr\lfj`oiT\dpb{Y[oYk``^e_g_b`kj~cfoZckcqhMqdaTxa\yrfmtqVenGpaaoe_grdtZsagbaiUj|\jTmnntcTjmlfrddq]eYq_TsVg^YbbhqTpKpqWp|gbh[evfXqu_dadiqhc^bhkhwb\higliffndfchr_K_[mpco\rtglgfl_ha_ap_k_UouSkURlhZknpeg]bqbchXb{svPqxyq[iue{iPaya^rkzWiojZcil^vbujymefamxWualnkkuiy_bRi{herdcPf[z`\olaudX_rbcyw`\juYzvVtc[cowQqb^]slgrU{k}hawmmWvyj]uZoQ_^_{eakgPtuR}{`emhYe]asx]VtkYf~Ylr`lPZY[lhYyjfe_hTLXpVXqp_]R\J`q\ZhUSZYRSaY\UgWU[nbeVlUrWd]yZbk^\h`o_\Y^XaNRSkdpI_OH|g`Rbk_SXpVWdd_b^ian_Qge``U^\WaTMekaSSbqaUNLZ]NT^E^bxXabeafbca_eRXKe[__`ld^n^VkYW[ficRvnU__ug[[nkQI\HhlgqgceSXbjcrPT_YZU[o[Y]^a\bTmmd]nddZSdvjgUZpoSM\]bNS]UOeXdb_[ZhVM_[WQeWTVdQXWhYWZfHZ_X}jPp{U^S\^dlRQeaTZlQckZrQZ[QXg[g`S]\^rYYcoyifYaablBTWik]YY^Ljid\cb\RUZcwch\q_~kWqe`_mTaJ[ZEEjTe]_jbU[ZqW[OX`e`fUceZm^WT^[UaaVYjdjWdJlR`hWWWSAPmj_TY[I_WXSXcQPUb[Fjg\_xdYSYPPlupiMpc[EXVvS[\aRKSa_TRWXG^TLPQRVSL^LNqe]lR[R[Peb\HRgSVOWNPs`\UbeRaXcReWSK`P_TXUWTH^OdWX\[afZDOU^`SZbRRS^lJ^NaguQV\Z`m_eLKZPi]hXfQWX_n]hoeeZ][XYfkW[QPb`bXYXM\`TNNb_]d]bUZ]R`Ohg_N_l[PO[M]Yfed]MT`OZUVfvmecj_urnb`\XUZiTSrV^ahzXyWKV\[flQS_VZU`hSeVTh{a]NHjPQZPgG`PsmJYULQrMQLLlFQfVfcXZh`Ql^bU^VWd^|MWYV_Wi\oTR^W_WLOOWZT]LRYW`ZXSrTWWPbbYY]W\TR[Weg^VUqJcm\Q__MSXq^[HOSI_``WK]^Z\VSYMMRL`QSQqqOMWV[ZfU\]^cQqfedTKRdERbN[`kg^Hj[SoV^^GFL[kKWGJaQO`xmVRhbZDVMc^dr`\JV`UcQXMh]T^TNX]YZd`ZM\ORTrYZOZXb_wjZUamTUJW_YfPkW`_`]aW^dU>TiMH`NMXhXVhlYW]\Mn`XYTjf[ccfQ\ViPheU_jrFRQeaaORM^lRmaRXKeW`^KF`]IGWV`dR\SY^6Vf]WhPYU^dWbT_Va_LY]Z][FTgeOXZnUZnK_Q`YO^bfTPiXeiRddVH]SsZH`S^SRVUUVl_R^cN]Re[\efVPTgoe_ONSpb[gWSWYLXNkeaZVU^Vadi[crffeGO^`F`XJSXTaoq[Q_ohZRXYXlLj[VUP]Udcyf`V]_gzcraSaVWcZd\yUDYY^XqeQTTYOWb^dMd`VadYrK_R^aRl^TU_HfaZpZPi`YLVYNbjj[qblgT]\aTY^]`\af]Rldlncid]ba`UM\Zg\\eZgdZV][h^d^KyS_cj][Y]dVYWuZ]`lhbcTVZauq^VZ_J>o^d\bebd`_aj}aUiKeO]]g[WXkabT_[lgPmTc[RiSWf_gX_eo^ia\Q|Y^VYR[adWej_de\V^W]`Q_PfT`Rp^rZPN`\M_oW`qTSq\Qpb]\uWWpv[XbY]Y^VT_cc^aMg`Rd]e`fblbObb[X\a\V]foXaYbUgaTUJk^NfdjWTr^QSJU\STKEUFVZcd`LLYYXVLNRM_Y[Z^[ZGC^]QQGJLQRYYGPZQXc_W[WXWVXWN_RYMNMHUXfLSNMYOVOUYMWPZWTZT_JQXKTIWQHOMW_FTRPQZWPd__oPYSUTOTURTPT[]VP\WX\Z[QYg\LaUZdV^`JYNiTU^UUcRV[[PYHHW^HY]QQVD]^QSE_`EHeWAYJZWYM`ZNRc_gWIOOVVXLCLaUOVQJGYiY]WYYfH]XS[^YVGU`^T^W^P\TX_INUTTWOYT^J]`RaJN\OW\d\CR^RXXXWP\UB^PNSMJEXSEOKZUJcXYRR\NOUaHU]]SQNTTLP`RX^IcNYYVWUS]SRJVaaZVRZcVLXUJZV]PGG[WMUS_[LNRfSSKbFLOVC^L^\OVTVQqqekYSTnSwLbS\Y`dZQUymbMVyW^uO_[_N]c[rR[]edckYRAdYQc\kiI\RwO__hYkl{aSccRT\_YZISabPW^beZ\rWpNk\dT]aopYacPb\WUl^ntmXUgXT_apkWe\`pS[WmO]`JYWV[dVlj>kp[qVZuLij[v`WUX[OJZOfp_XVe_PehXLMabSc^ciLLtR_eMS_LeTSUen^L]bs[]Zeiecj`ZLP_OrEb_nVnNgc^dK{[_beRk\VZ]S]UCT``vR}eTQUaMjbYSZVBWkhifhfRmX\S`qou`ZW[hSSr]Gm][Sf`hUW\kt_zOh\_W_qbQkeFPsPnf^[SWT`rcVKZXZYpiWzsWdMWY_c{STqxf[Q^ZmRrait^lJ][RU[_WJR|k}}|~y|{yy~yx~w}~x}t}|~|}pzyzy|w}{z{x~zv{}~~zz}}x}~~~}~~}zk~{q|q{qz}~iRhrkl_I~bfRtkDedcr`w_ru]kziXYi^rr\K`f^gGpib]peg^pvo}qflUbislp^kimahjs\~`juWackkrkXTKUgfDabRk_SgbxESU{{`W~Yih\bM]hjnf^g[pumzj_gs_ixbhtjeijdsnd~x^jzhdcldbrlqrjYX^tuvX`fd\cUokcQifkvtKuxt[a[G[ys{Nzopl`Ni^yblj_UYYsE~wgqdJqf|chVflw{l_~nl\mnIpTlr`jko\VHbf{biWdSjKKxejsk`uUltbq_Zr|cjfy{jauanl`clvh_Rc[|sQ\i{h\`_\\TckoiYJVf}ij^uix^`pcnYT_]pK\`ylegozNb\]WVT]YTM\\cfc^VO]TYXT\[ZUZYTc\ZV@\c^Y[POUOOG^WkXSn[ji]aamcSJV^MRWIaaUbUSS_im\OJR[CuvJ`ficJ]ZKOQ]b_YrWWaT[Rd[NVm`seJJSino^S^W_h``rSSRg_^efQPjne]RWg\UR[VSiemVJMPrQdmnUtPLmVYgY[ZlkqahUN\UbMKa]OTJhV^T]^QTUUdgulP[uWfa[J_cOHNlfSctXWcpVXl_cc[Z|hVLJHG~O[nSaFU[a]nYRcZ\WX`k^aZImUFdZfOfVXJVcoW^_RNHQU[dk_YZjXoX`N`YOUbN[EJ\eTcRX\]]YY`hMcjOPMQkK]d^PS[j_S^a^agTqXPdmQ]qh_Yeg[\U^TWfL]KREia`Rbne\clUk|fbIsgMKQSgtmttjbZa\TxRy\KhdfwIaegpkZmQb`\XJfPWaiTVWpc_lWnaTNUXkdc^hc^plRdjeYW`UXgjbPU_agabUR|hZ^N`X^HVf_SsR^kuXM`ol_]Ya\SgX_nYW_]ixfV`lkliohvjXnQqZjW[BdZsZfl`jYBU]vWnW_mmTnd[dW_M[ggfd_ecY]bdm\Y^e[PUp]ch_rWtTYlZZTeaa\^\R[xI_Id{Ya`ONMYcT\Ye^ei<^hMXpePsshV]_Nbjl\ce_`ghlU[YWVkZLWYY`SbZWf[\fbqbc[XiaXcOINFLpmU[^tYeWgR^N]e^Ylk^\QYSW}{T\N_d_ltOV^MMiXJ[h]h[g`^RjdtgVokRWUs[^j_jZV^Vv`jg^hZfYV\k^KW_q`bakk`YUdnO_zXd_mWV[R`QYkc_[Q]QX\i][WRVfYpsecy]y_XbKmZ^mM^h\dKVf[n_[a]fNn_XcWqTS`sharMb^]V]Yc\aeVXWnVd[N_w\IdLumUg[]`U]fZXWU]_Zq^dZ^cSWP\cjcZYbMWXcQxXbe^ZiPi^]eaUmr^dTtZhMUQRhW__ORWa_OpeNokURUke]UZbzYYeWUVdVZQT[]Zb^^Jdh[aWUUgcgdjf_h_ViWcVzYhZT`Xx^^bV]_{][mT[TYpPVSdon_tXaR]VS_l]dqlOiW\ec`kYgpJQ_j``k`kFUeYY`VU[al_Xd\YwkpcZUQW]Y]OW_FR`mb\^\^Zg]\bTKjf`jLWYaHatEeTW_OunSt]qTRjfYKZafVU\WgPSe\{\ORgHI^UgdMdWdl][Vdv\R\ZV\Y[eROW^QYoiTIdXG|Wt\hSigWjhXYe{U|osp\hQQUHZ_S\P]]]M\bgNPOSQalWb`OlqYjMQQVhprQNVWqg[[emebfF[bZMMXk[iiIiOfNYZKybZUcXKiOqoVKiOGXaYhXf{Kb`ZHOuJSj[WjjbMxb[CVTIqWPqX_Vd_Ryv^KcfqNidnvS[ngQtkRZakiWjfTZWXSf_xalYIRqMUpcFPcx__PdZYgPWXLqxvuRha^NiqTZYiRJlcUZZ_a^qSrfTWeWW\ULU_NlVX\lXpdqhdSUUkZ`dRQbeYsS`XVmWKKac\hZU`UKQ`SW\caYhZkv[ikqgomf`r]WWdZlZl`ey_g_ilzaYnuclTeuehzaby_jpskkqm`Wnkm`^cbU`pdiclhsbogof^w\c[zzltopzU\zd_Ztvaee]ZcdU`jngjfi{ndlhlhf\`dvaw`ZZc^qgbb}gaqgQVifhuf]qgradned_i|[bbvza]bZkk`mow|m\kTYhj`loqc]rnp^`k_bdYQfa\kul_fo^hOlVfTcbkmga^h_weXgwcXfjwzibobwrmh]mduu^xhL\nheeTm_Vi^Xw`puceas[ukbj\rrZptg[gasmelnbz^jnbep\gmkgalde`[vmb[meXjukteg]fffkbgtdnkiMfdpl~jlcuakeqglf\mjb]_|YoaaavfYQYoQUdgRR_OHNW`a`kIdLWY[btWIk[Xjhhccobp^gXTazc\pab[nPXUOfXTXz[HZh^cfiLVO^hgjYWWLQXY\fOiYeTRdTO_]VVIWk\iHQ`OMYUVXSpQ\iT^?cbeVWe~K\YeQbWGZvQYIlhLXW\haHV`WcTYUY`ffMX^_MVUZVSaREVWU]`QWhXrv]c[^}QXUNWRSjbIiZfCidNPeWMWR]e^GMS]_^ZocKsTf_QNOagSF_OpOd`kltWYkLanS[UpkSQdbSZP[aqhVd^_^n\s]]R\RmhRXUklZd^RcIUSWU][W[iaNUfbao[heSReLbTMflcZOVW`i{QERc_RUMVlguTbRVh\b\e`URPLVP^^I^LW`OeHOXf[Z_`|[^paW_jV^O^e^^[^YWV]Wg_Zdc[\[o]\sFUmhjaSQ_`\Oq\YNhmTcueXmk\sjYaa^^[bYe_f_gaWedbWbeiWfSdSR`[O[U|Tf\P^cmYL^RXtfrdIa]dqY_bb`Wbd{Ts]XUbmg[^eXdhLp`mRWqvzdZkmccfsY_tWjUgdaTTUNc`S\TRcRXxGklbzLobQXUTYrP_UTq_Mvn_nQTkdkVkWxRkZXd\`rY`RXdgcbMcTZ^lrfhNMg\ePumYZ`va`Xh]\R``YYbPrahUhkYVVQm[cO\fgr\bdgZcRZyYhedgj^]^u[]XVYhU]U^aYWg^hR[Ve^getd[Wopaj]Vesi[iVWXg^`b^^kikSSIrmdS\^XfpT\a\N_dmPTjaeYqYZTXW[QNeF_JDQHQP[KNE[SRJ_TPM8AVIPY^KSYeYXLZT>GJNROKK_XQDBYaI_YulpR^~qdhU[o__j``[ytdkoRuVq]ur[mXicR]YFceZmJwdRkT\qe{zrkYIUqs`imlc`jrYLgl]lrscVTxSkoZRWUwbL\I\tMqKXVg`XgbTvXWZoJnYzaXgP^V_i\}^Ft`gVdYnZ[Sbq\e[j^WbObskkyT`_itUgbVotdWg^faSXYegO[UenEeWXR~\_@xPVWeWu`srN`Yb\]oYkkNigTxcUudTcGh^WeTZ|dXnZ\}`prRYTnNXfzbmoa][_NerXb_ejg{TQ`Slyb[Rqd^xUX_QkIxxkf^Q]Oi`]`Y`oqPBPcaJ`d[VZ_l_SondhrPjhnlgduW]ck\QiTv`k[X_Q|afK[dT{@[STTGcZezdj[X]mi\`TcuecuX_aoQTP\^[ghx\iNPcXXjcp]pZbw^`gtFWQ[[Q]TJzgXx`_M`N_Z\cfDgjgSvfbZ~~uheYaxZS|H]][XTo\PU^WobWwrjKbnfZhaaORXiDUi^d_^S_URQWRLT^vp\un^VS\YmjULooabMepcjOmr]Xbp]Mibohje[wxwrqoziw~hstvkagdgufj|qdmo|fsp]rnjkppryptiug~khgxlvvvngl|l`rounqsjotrjmnoyiZ|kcoohdjj~lg__uhnkoptmvlwriremdpp|rtvobm_uvimul{lkesw{sjpooskuukopjcojotnqrqyfkoufqkstvktqmhuxxqkqmuronnin`yfhdmqkhlqvuerpkgnwqwgrmjtiv~uegifrd{{qlijrlcdnctktmzflsx}qlsnkoovoui[nsseomojvvkpulj|spwjgoi_muhimn~n^axpj^u|_rxmomkjnjv{gggyujqmrtgqxsbptfvtlhq^yilzek_sXmfojq|yninnjuq`nolt]nnqu[hqla_k[XFQSQURTTYKSW_O_`WZXMKOTZUMWlVYXWUN[UR[YYRMLFXMI]TGJOKWjP^ZacXBc]^b\Vg_[]Yd_MfZNd\_O\X[OSa\Y[Re]Q^QcO\\`Q\fTUWR]VWQbkQ]WTUT__h]facPUVUU]Q_fRN^KeU_RPaS`V^YZ`XRdNTcPSRORQWfWSPa[^NPUbTNccX_]flaS^MIVYV^]TM\[WYWWZaQX^^TW_XT_g[WUdlNNOc\ccQYN[\cpML\`X\URM^sRLQUqVlPacTlSX`P[jal^XV]dN\Z]RYf[YST`]\[U^Y`[SgWWVTUT^\fLT]N_WSSjUaWVZ^RdRM_`ZdXdO^aYa^][QX_hh^T_PcRjYlY[PMH\\d`ZcXP`LaOS^YfhTSta]P\mZ_iQp[j]^ZT{ZQYjiRfT\b]j^l\EYcfe^NS]Xe^MgV[]cq]V[[yarytLJeXRDKLLO`a_X^i]ZsiZTj_[meVfbYZ_sO]MNhPc^wN\RWluQdWzVg_ZjXRV]Ot]Tyyh_qa`eQRPdYrYafnIRViOYSSYdSaa][Zjy]h{Lc^XlQkfTR_cTcloRgebUYjSduYXNY^Ut[LXe]k{e]N\lrdX[T[TconWbuYZmXrUeM`^WXSrqfh`Rbirb__]nSIXh`T_ShWgLjRSbrC~jH[fisUVXs^NN^a_[PcoUx\zUhhYwgenwM[W^cR[iMgUsPR_Zk_V\gP_gXltUceMY\cQW[Y`nOWecloej]eQR]UTZWcaOe^SxR_kX^W]Y[w}RR{Sdj`e|U[lUOiTZOTW`ZZ`VehmghPfXYZpkIVSO`PZf_`Id]d}QNbbZW`OMWLPuavtn_XWaRflxRMKop^ZoaPK[U`gZvQVg\jS]fvYaWvYlIZYT`hjRPbN[N{S[^[bsPVjPsWZabt^QXeTTUbUX^S[jQTs_`Le`bSr]^aN`PPULWO}ZU\KqKv_\UVd[dY[\bg_TRfg^x^TX[iXatbaT`Sddc^i`Va_Ub]hYj\R[cYZsQSPaVTq`l[iOer[guU]]JWYR_QPzRTrVVbajZtXoHi`PvPYW{eeS^lpYhlkPhmZSVKRJzPyYf@Waa\]]`QpwU\^YiXcWqQVbMZgThKVRJQi[kfl`_]TJdMYHT^p\`op`mjYXbf[gkRdfuqrdOgmjrqlnttak^qk_`\ukieiiroWhYe`dZqYmkl[z`vRrpfVcai__a~nfgdefZQ]Yhcc[ZWhfTzrlXrx[[bm]\cifjgfrj}je`rerlhyfJewcZebt^mxwiiU]tba]tastn`acbXR]g\ctqejW^qYVy~\pjlnbwqginoaeoll}ejhfpegbaSzmwYpfcUj_]j]j^]MpddtksKeu][NXeVfkbwb_z]rdnrjVuegNpY\l[dhklg^~dayWo`mn`uorSkdZiMc~i`^odtkn[dpfuZORdoTi`bm\ma_h]l^pcXm^ob]k[]TZxWYePVsoggfe^jnigbuoS\M\Vbbcgai^ZaVNXbgaWrpkgQiklctnW\RcWLliO\mWf\n_`nZWqWU\fmTzahOTetLSUXo\V[iXk]TgNYU`^b^pda^RRTLhLeYhmN_Z^afgm[b[YRl\zVUV]fquTcnXgYZeiVW]eS`sZRTkmj]ZeQhUhTQpTj[gXP^iXRldZSleZaNeX^YibhTrFXPQ^jfKLVkubbZZ{Vpl\Z`cR[aeZ]X]Z`SR\[^Xd]gOpl^c^hfYpSWo]eWWQ]P]YmabWWYa^`ijjVfZZOfVkKXXVWRpwJ\i[amYQXdbaYW]O]iTVagMg]`QQYVNofg`]Om[_`RSca\YacSYa]_NT\U[LjQNSbcZfZY[YQhKZnsVVdIIbO`dw`_gVZThecbxgjZjp{eWUThdWjNh][GTl\ZYt^VMPSck[le[Xhd^Zg\MjG]hsnhwZh_f`re\q\]__WgPyedh]SLb^JZ\SQp\[VtPdn_sM^^maTgf\`e\js`[UlMlmZYvzX[\gf]RO^kaPcSOU]Pl_nPajZfrlWjgmI^qPnRpbUSKYVeUY_mg``e^`d\ODM_g[Z|S[gl\elte^\VYhU][m_Uf_ljZpNXWXXJyp]_`^`URSTQzOw]_Wh~YhYSYMbJWcFWdSR][[hbYPqcm]dmSQ\]dg[\SY^WMw_bI`hQVU^USUIiYnpemrV]]YVY{R^ZfOnTXU_p[ZTZbeHNU^_v]Y^I`Ie[ScVT`[X{xSSSH`KmWi^kbujanU{X^|^cccfY``VTiTY_]Udl_KX`\aZjNa\dRexies_Uq]V]dgmsa]^cVv\foW]rVXhXtaaeuXZPgZ[jfdlS^^mquPbSlg]b_hRK`ag^S`_a^i]aOW]\^T_Z]eXfmSdN^algZUWUj_Vjsj_ZtYUSQak]uWiZT`MySc`^~UZacSbUifkOWbnYWaUZZfZkXyeadaihq[eoi[VjhaWvQ~n\fQY^XVSNgVnlMUe]Wyg]nXd[_gXdVf]WS^drju^TXgi\]]u[^YkKfrUUqeqeNhVnaolfWx^TjX^]ZZZ`nSuXaOZegZacWWdW]db\DaXU``ncjOKkne^akXn[J^fpY\k]vaKfuRo[RDTursY^beT_Tc]e|]\[tTTaT[dd\_SPPY]^YRrab~\ol\YU_rm^mhY`\nVcQTfZi_RnkYzYZawgvuX`^u\c^\gTh]^[g`Sg\Hl_ia_[T^NcoRcq`QmP`Zrgn[ZgPV\wfKWZfdHUoQcKr]j^Q\S[}ap~v`abd\mmg^N^_lYQWlWe~_bc[anQauoi`dbURXXOnq\_oToX^{a[q^bJYrT]h]kZhajafqwTZ[QVmbWb[OcQcQmJa[T_ZSd`Y]Ki`eiYbbRe\[aQ\oXVeopTTpTf\xc[d^tOrWiYZ]\\mV^QXhlh^[NhZb^dQNVeeRkGtQq^[[[ZZoX^k_njXaYV|_[hwf[iNgZNNTalc]`@lTV_aLT`h^cXjZWY\qQfUUQpO}cdqcRfRUcbZVXReSOp\ZU`aTca_XhlqkhmWYZr`\Xof~MMYTu{VcOpRU\p[Cn`VmTTwy`S^bX`K]\\\[ecQX`fPc]c;W[^I^iUcU]o^YPQ_\bh^YaV`iQ`UUR`S\UUj[e^\ONj[aKgXZjRQ]bxM`U`\ecSM[MWYcNH[b[\VX^qK^RTe^`_h]YXTXbRPTVdW^lRRXPae[eaV\ZU_K`Uahbm_X\[ZjZYcOkz\Uc\_ash][S[]^tq\V\XeQi[ObYq[boHVSROZgtVbf]ROwiaHfZVEp\fTq`be_XZ`O]aqhdhqziRNbYhXTaS`lZ\\d^Z]W\YXW[bXCUkI]^dnXagW\M[rqWZR\VQ^T[\VVQncU^YscXVZ_Xa`f[[PmXVZW[\^eJ[hd^AYcdZU^j\dW[HRYYZTZ]bY\[Pqog^dQYab^^cdWnL`]ToRLaS[aaj\LSnV\]U[leUQO\MgOYSVeVmGJ\T=\JQUh\TK:dO^IQKUMIVPGJQbFPPSRCMWWPUNRHVXOL@JK\XCIHOW\R_TI_RT]M\OEjcWQX]RQJJYNI\_PSKJVJSeLGX_N\TUCJJLI_NFCU[UPQRLG\bOKRQXVSYPGZaROZ`PUXVfNQ_mZFcYQVIjhJMTdPoUMIRLPf[ZcLHSMLbTVHAU]Y?PU`TXaN[UQbQ\fNdViYgNU`^kWTSeOs^MUiMwDYK][gcB_OQUdNUdTVLR`LRGRLhHWHTgYRVMSUSSUSFKRQUBZT_[JPO]StRRY`E\CUT\CRZ\LgNMaSNP_LV_UNPLRULCJOcJRdJSSLMUbV`QSJNVNaPYLTQZNbTX\VFJPPSREZM>KCOQOf\JYQXPV^b_kPNW^dZ_gFmV]L_ehckRQQ~vW]p]hHRbnXTUpkw\me^dXdbdczluma\glca\NQn{aMOZUf_X~rbcW\dTUTZ\[it^bVTy^`dVcZt`c\WQ_[fPfepXkZeY`FmdpZ`ibm^mvZse_aZpfIePZQvd~\bgi`^oUaXdSKcT_^cOrgrWlXogkb_f^dZb\a]eI`Wea`fcWuj\SbX_YbagX^[\jdSv~jVZKlZhc]_RUerfK]_ZZ_Xwj[fYG_pa[eT_W^Ue`]]bh^fziZad_Vc\w`XW[KTa[eN`d\Ms_dZbpmNM]TJ`\ZaUermaR{W{mkmu[VgYdUnd\rq]UXdrSpd[b]^V\\`TRbrQfQkQUicNopseWXl]XdRMgev`uV^eBNDJMUCPZ@PUJQB]NIOGNJFUJSTQSTWYSBQNQQOQLRVUSILOMWSGLTI_^fTOVYUVHBLHRJLSHPSIAHNMJQRRK[ODJPMOWLOUFZLSPaTXYLJCKGFQ[_TLPKY`CHAZOSOYZYALUQPCAQONQTLPCKESYCQLVShZQPMP\N_RTZMSMFTKKHJPTP]AIROJRNARHNOTFKGJZJGNPN[QHNSXTPLJTKW\BNVSMOZQ\WVPNWRIQU[IO`OG`U]_\QbNQXLIPGVORPRRI?NJBHVMOVHJLK[FNPJHGUCZRUYGGOMQNPSQ?OUJH[GGQcWI?PPP^UGLLKEPMLOHPCA\LJPMRRHKYOINRUTLUXSaRKJKLYXGTEYQIKJEMPPOZUYHT7EMLeOM^PWScuNkfXJRZYsDROAZ`hnYQXlo]smT]_Xk``NYT`OWCGjje\euQj^\\`q\SF\NePWKOdXz_JK`ei`pcogndZugOUaQVh[C_YXG\bdbh[R^vaR_oelH`_pmu{]I]Zfz[MoWqPhvzhTQtjQPPSaNc|[z\iRb_Ve\bgfcXkS^daggWfLbVLLo^YVSiekecXifcWVmfclfhS@_HTeaWlioOZ]sgroQZw_bqIG`aVgc\q[va^a]Po`uZhxkVIlVZ`TJUVe\Xdk_}L~cYN^IYdUeOUcY_[VhUl`|QJjasRhq^enWfh\VbQWlWfYPi]L]Pc^hjG_i`_Yn\m]^me_yijldRce_gX_Dnk\TQXxo[_bss[JY\TGRcPK__fVljP?gbfsZ_S^lR_hPiMS\XUTQW_P_PbTUiWWQRVc\SqTWMwPbh\aR_OW_XPVVpXT]dRIT`TS[LbaUve^kbHO`|ZaeOTZ_YZUXL_bOOaLYhTZdUW[WUT^ZZWO__Tf_^_\SXlzW]VcWOWXLhZVWhWK`WqX]XW[\\[`uWZ^eP^SSeQeeUg`VWfScZTWXwcU_UOQ]OgNRZgNd`i[ZVjXaIZZ_fYXQXWVO``Ybe^]Xc[RWgUKdOcUL\mh`^[^b_^^^NW\W]VSOO]JXg^^bJQY\tXacH_ba`fZb]cWYQa\hl[UIeRTXXvUI\JW^]Y^Y^MOMPes\IZXOPHakXJTe\lOTQWTRV_U[f\W[TPQbY_O\a^a`[_pYTR_U][hXE_\L`YYM`d``tZgsiaWtsb]cXy\^TjaZa[s_pi[^bof`bv|chb[m^mg_bvmZab_tqealcqq\sqthhpfYda]xkf`fjex_ldLcwVbfejG\f^n_fbvzzVc|ttkYvmbpivih`UkhfceX}\hpeYSXrbUGoraj]V^V^`Xx`l`q^YeaXifsdhel`fzeph[KihmVmndqJScaTuYY`Ye^UnnubdmcxrTZcnd^\_`\poYs[h`t`fheoZa[ZpTi\wkkh]QiXYxnqTe^kXimVUU``mu\i[fUmdipkW]\Q_^wg\lK]iaeUmQdc_w\naykhkdc[Ol[[f]dfuSTRjOiUc[__kbfXfunkk]k~dmhvezjZe[UwNXsWqpXUw]`U_hgfXS\e_en^\mYZ`U_YcT[kcZJU[fZQ]ai\[VunGVrs{hFYa`\wWqgkn^Yd`pOSURbTq\XRaacm`L^kOM^ldycUT`WVYOsn]eYda]UciefeJYMhT]bintO`U^PgeRYVTY{bHd~rYb\txWWcjN[\eURmTV]Xb`^`cMS]uTXkS[`Vg^WSuyTcTiWScma_c^g[^Ya`VbJl_`SYMYsbce^dmd[Wb_U[\t[e^^g_cIJVhrGZNTef\OW_^hp`iYg^dnlPPSvWG[[^_sGUNJbN]WczS]yXvdjVggdZTbXdfXg]\aeK^]jdVOVf]`iZZPPXaiYWXPM[d[R\V_RX_emaZwT\TPfhWOVYNkfcaTdhV]d_NW\o`[\n[n^fqZVTuxdmVc^`Pn]W`dal[VdcTOZVVI`I[U[Uc`[qQOYKZQY_MKNXVRT]cT\XSWCNXP`WQ`]sTMaWTbIgRVRS\`RQUXO[Z\LLRWWMR][_pfZ_P^Wb_`WTTW\ZZGCXTZ`M`YadahM\Q\Ji^Z`fKRgc]PTU[OdSebZJPOXgX_R\RYXh]^SoZPpJf[fZNOQWc^]P[OXTWieHfRNa\Q[SSNYkcNP]eOSZT?__XU[^X^aaTb^\YVPN]OSUsL>i^PM[AGDZmi\OV\dQ_V\RZHNQ]`X<\TcU`sdZXuZ\[`SmaRYIIhdYeZYZTa]dJZ^MXWWZZZLbA^gUQKR[[XTPfFWiXc]MLi^OP^VcTQYfXOZn[STSDRJWeWMdbRNWXVjQLpUnLU_EWMXaQ\H[Z]WTbQa`Y]Kd]uR`RcYbxcXIQ_SP[S`^O[YfUW[RX_X^YemX^VS`]CdjXT\ZXriY{cW[Q`XVU__LaR]aOkkWvVXX`TUcH^Q]RZV[L^SPaaW]X`^b^KUXQgXq[]p[ZJ_GVN\j`bXOlhYZKXeiQLjp^RO_RMagbWQ[_Q[PYcvYcNYpU\YPmY^ZZUff_NYGOUVUV_oWeo[tihJdVlX]lpXq_bXS^jRhc^^RYC]jL`_a[Obk]SVfcXh]J_YuG^QeYVcqjlW\XvdPxVa\PZhKtYaYU]TTUfk_TcRbZUZ[ZPU_[hZgZf_`SYZ`wZVU]Uj\YSfORZY]Wm`_MoZmXxaOaWc]mYWj]YKO^ZkeKRc_fgad]m\\arZuYOX_qnUMwgP\M\aaic[cUKSMnL^dkiSttldSud\duz>gzs}rkXrrpoJjYcKo`dU`ydehq_skP~kBafEoh_R\ygLHbdkkK~hr:pXirNab[gMeN{\spepcb`pfdl]^[y1tneWlogn]]PUb`so\ktbGoSaJcyotwsn=^OLTQOX`^__`KWcSQ]TU`_cQR^XUR]XeUdLPfYPo`wU[WUYSdZYToUQcWb[gO\c]hTSz[egV]WRbS\jQOm[Xo`WOXUc^OMd`_\ZLK_OSVVXNrY\RNPcPc`NRUZe^aeeKt]d[^N]_UWPNYMb\VFWcaXWYX[V[\]fOZiYX[RWw^\\Z\aWZ^pYSTlbYdjdger_X\OViZxpOZYZffcbmY`Sqx^LhZ[bj^XU_WM`T_c_]bjhe`T]a_`gXn[Y[Wi`[ZYRZ[\_id[M^taadd[kVaablT\iX`YhZTc[^jNgti[iYkhh\]Z]gVmWZ`]\sd^[i[[}kaYN[YZeZwb`XSU_[[SVYPhLfnr`]fWfa]bcVcmpcTSX]Ok]^TN]lYnoaXQra[P\a[din[VXYYiVj^^]]X\ft[hqmYb\R^PYZgsT^\[`]hYX~e[eVXOPc]kXUgegIaUbt[Y\^YabZRbR]TLdYSgoa__hKYsUdW`YbSYq_OUlJT\[c^ZbhU_ZqSbhf_PpLmbS[b_U[`]Y[dV[WZ^T\Y]ZiPskdjN^RRjWbhVd[VewT^gc[oKpVTKMc]PPjTKWULpkZo[IZJgRgHTXebqHHVyZWR`YSQ`sp]PmX]JP=WaYUOsmoy`\^fQNSQcc`tb]xag8QSVV\gYxf^LYhrU]Uk\n`ZiQggmjcSc]fnWTHWVMwXeWyY^^WY`}^e\nQ`Z_\ebdRd`VTdLpSTKc]]Josn^\XRT[qgSCiaaNZUcgX^YiUuZQ^TL]]jeseU\T]MQ\Wh^dZRJPeRVXa[elHePWaZfVuC^^j_QcK_c`mebf\ZQ_a[`hPewWkjedLiVWjlXmacU^UTTWUUkMfnRc}UVGEfBc]n]WVFbR^MoTekecE]zUk]mQyMdqY`TRjQp`YQp[fpOUSXFZRXTZR^aZrW[U[URhbJXdW^\_UdRXYf^eZghfacWceQZU_ogaQ_c[l[sM`HsTzylhUt`[ecYY[[Za[[ZQPh\dme_miZ[]\I{eqdcVsWZX_RuRTdfG]UYhf[G{\Yt^TlVhbW_P|\e`YcSlb]oeaP]rh`[eeXdPb\aXwzxf`\dah^cRdUfXc^hR`[iSdVNge^ZTdMlXpc\K_gajZShabbgZ_m_^fcXt`f`o[clY[eqmtl\ZllofhmYaWa[Qa`dS]ziWSwg[bVdu^pZdpff`[b_Y`[YbbtUUv}a[]V]YmVqRV]iQYnbZ]b[_\dRlhi\e[\cTL_]dYYKwMrcePT`VotK]aleaLVeYQnX^[h[ObneMmoIhPXXoqW[_W\dj_^[fdpbcW^\aT\R|fl`^Zd_mamaxj^]gMnWn\UNzpt`uXh_adZTgyv_afw[SS[tiYFerbKcfloXkfvmfi~ZTSZsi}XkWk|[Q[^o[diUOvxRTWrcX`duchQyaQ[hWUj[]ZN|mv\fpxvusmdkOQRgYim[qZTboSzp\kgdgde}^`dtga\^XHdTuewZpd`rp]XuffCf_rlk[H_R^]Yi`XU]ogb`q|xd{mb[QUwOekqG`p[vPKjf]ZdcY|_^a{qcybegTlflj^etfh[b^[[Zth^cU^~[]Zyam\XxjgubSetpZwuRYistkunmNbkg_t^n}bjnVTpePTNjqVS_i[dMU_uuah]hhmbedqml{\YmkfdPThbg^eTSy]dp[pba`^cq\e`nprpi[medsaLijXhddjeh}RdQ{UpWbhaV{O[ISXVhYWiaXk^cn]S}XfaXITUXqWR^KTkPHoL^mjehYGvUbqrp^QaP^RJ^jcmiLSmDdFoZqQKl{XWdZueSNPak\PaWj_YvF\X`ogrm]Vlf[YLw\\vfGTYyll\s]Ypi`D_NTm_XtbQ`~cXaaMuu[e]ggmQipaagzagqYXZfXiY^mQUf^gg^q\mm`SJhjg~i^ibaYZ^^sWOc`Zyfad`lNRengVfcW^o`eavd]NZnQsZpaWerd`QkN^hh~`se}XW~`GZkoLvhUs\kSGTWZz\he`L^ZW_CQ`]kSxbps\rZs^_p]lnhZem[ully]UIYc`QRE_XZQseXQeYYbQecKg\Q_mz^^c\a`UbMMVmdRJb\U[RZhtTO`h\WFK_j[_fJg{XbOXeSgbrISVXmmO[J[`[SSP\]>aW_XQrSXYZ^Y]^Qifjb|i]^haVchf\g`dT[Zmfb`ajhYdkggWvjfT]wRcRPKV]iT|d~eXNiKR`dm^TdVX`X^t[TlHd[^Z}Ya`tYQaYgfx\[ic^ubKijfRP]p^[]ySd{h]XN\afPQgaUfYhPgbXT]Qes]Xy[O^nRvS_m~u\]VauXWw_eUWa^yf^QhrbaZeeRaHYodVWdSfd{gfmj^SzlmOjZd]`Y\lo\Yoig\aLRnUaR`Ynn_Uf\mTniYir`cfWmYY[L^k^]jWiUQN`aJciZmOtdaoYq`ZXUboXjfbg~]y[\YvWZcbeRuh{iLZftnpabXlU^hfWog^hcWugTdhPtQk\cfQhr`Gigd`dde]wWkfZQZdnc\fm\Q^RlR]plZJ\od`\\]QXPKTQ]a_sovdf^hVgJo[[gZ]xNclZYRuTgNKicih`l_j{TW`cTjLexhdfvOPb|\uh\xVhbIlbif`XSUNNmtE`UJb|ribn^`aw^M[RRzvX]YSNaijXQF\_\SjbTU_luNbaQg~Yi[_TrAOtgqHT`ap]dWY`Swo[^[eh_UU_zicw^JzbeoV^UUcQS}diRkjkk^YkGglXb^e`XYNpcSuU^i[rJ^p_Vf]XZ^]zVeShbKv^Tf\e_wPjzkZfVQ`dYNN}V[\[TZW]mcWi_WgbdT~UUPRjdobbabcT]djxiV^\cjZYia`rV{ZdY_^^Yef]gf\^|j]cckXfd\qsrgnh[XbeaeY\b[m[^ic^r_bZn]HXcedUi^cbN^^\Z^`[V_`ZV^rYT\^h[lZ[a[V\a`dk_`[e`ztdhbecRo_QdXeoYddjhd_hU]W^g[`\`]^hVzce]^_ieo\b_ddWYkY_gZ]]me\Wjmt^yco]XgcY`c^mY\nnzhnrZ^l^SdZ[bXb]han\Seobd_[_r^qbgyUg`Qem_ed[^ckldWkbw\^qZ_ehV``]kemhcbfPh]\[[_miie^aicm`Z`rYWelbb`gwZxlZ\fO`[\n\^\ipXai^_xq^gVfkdiiX^ZneiMf[lYmn]odR]dyc^Yc`dfrl_se_\bb\^`qP_xuV}e]}RJisSOQjbwwTOg^^VZUcaas_WbvLH_WfDdr]mxaRsvWc^[`pnadi`XOr{Taf^BuuheWVcnilWT|qTQ\gJ[VdSBhhDbmjydwfc\wRhTzZ{_WcchV]YTZ`OXkcdZ^{njgQjZtS\Hy[NnpqnzjqD;[V[plpSLetceOezmmZfurYoUsk\RlfZeenrLexK[jTkWdmw{imRb\PyhZi[gmmmm]o_YunzpRYivQpxQq[e9_^mSk{}dblbM{tmWjjgp`yWVrod`gp]un~kcRtztccv~WsNgeeyQo[oXU^FOaMFIai|XWIjq~{araTi|i`^bScsoOhoV{mnoSsWQIdiv^_epxSbulgUd|Sp^[UajrWWfr{P]dsFsmlWadblqZ`tUx[b^ojOWgPScWpkfL[dIH_MBfLm]gfV\`\Mbssd\idSWMRclERkxgS^qY]vtW`fY`bZvlcXZcgLfkS_]gjR`MTwKaWji]ScZoJPM]^r[kUOThWXNppkMribWLeo^ahYrTOhdSchXXS]eaR|[WfTRY^tdWjkZh_[_mweW\miYmcdJbiXwhainLrdvL{bp\OS~_SNcjVQU]Kr}^[mOcrXgan_XR\VsiWjQt]\|dWetUpuKX_o\iaj[_NVO_e~fO]HuTj`qeKtiv[ZQoWMGSWict_`GSeQ]NuZa[]WojcQWj~nS[uUqezh`TbK|SiRdlelm^VeYpeWho[Vl^gdandYb^QYitfkcmdZb|Ya\n]h[j[kV\ha^iTlo[fxqb[dZj]^]UiTcfRfn\{Y`VjaYopdadahcjyf\m\eecPljW]_hPYglbcgdz\_Ob^Y_abilXbehouc\RSm\`cbf^ZhbbRU`Wge_k[\ZuaVchjcOednXef^mth^lthY]i\fa\beZ^Zcgb[`]gatJadYXkdvdcoka^rg]ocObU`fkronl`W~yUXeZ`agXbh~Yn_jm`Zk]Ygihm\zWajckaf`qX~T`chWOVTjhd_e]`]Zo_p`\dp[Ygb\qod^cpnp}hSxZaal_oXc_n_YbSarkly`Zl`a\yTWVZjdgP[d^\\Z`jcmklbhWdcZdckpcuWjeQZ}^MQQZXPH[XIf_WX\uVtOKV^Tad]UUZ_pyV_h^TTWda`J_HK^\DRPOQ\nqkNe]rQWaR=]g^L`QgUTTeeSCDV_[d[]lVbhr^]jcG]S\^hYPfePWL}UU^pX\SYaPZTXZUpe^hZ`\^[lVwYk\QUKZ[PYXMKEQOWX`T{OReX[vX[`VI`XVhWf[ZnX\^QWf]iWWj^oMc>cNb]MXT]RSGoZUb`]OaxQ`Uk>ysXcWUMaLbugaYSMIjU_YePoL`X`oTokdadp[jX|\RWH]\Xeb`PJQiXtUdgS`_Ohfd[dYL^jU]^T\jMfUInn^hH[W]X[WO`g]GUWX^r_sh]RPel`YeOVdUq_n^VlWgjLigwgUTnvmjOMYRLaD[`OjjRJvi{RNgg^l[vfwkj[gVTfhUzZYl\mlgVfccda_ujlQ|fbT]sh_]^nfqx|[m`yYia]f]oTnxrWyai\eor]Z`Zch]ii`RgWa\iW_xZ`\[l^oXVqcf^zV_kjerbnzav\rj`]Un[XXwTYRveo^diYYf_^Zegnd^ViZp[_Zr\UbVr\]rahY]_ddgdyt\oTgpnkZvh^c[gYihasppjSrOcjb]saX^bb`gl{viX`kWbTna\_eq\sY]taivbfUx^jh}_UOhZd`XPMSdb`wchki`lwqenmnlxtc{e]hh^dcadZ^k]inb]kiZgTnx[\kNdgi]jb_g_]xcYRX`j\_}fai]m_[^\]kdhYbohh_gaedVpchwaYUfhfh^e\Oeoped_ZmhcNO[X[_nocnYoPf^VQW_lMa[`VcvUyVT\Y_a[Sf`Va`PhZ}WWVVcqha}W^FZ[[QTbWjaiYPdsgYYZSae\`[^fX^XQhc]e^jwgHbYU\mxMfdpPpXJcO|i]olQVT\RZG\Y\Y{QKMHRV{^WQR[adS\Oc^eQgY^IVknQbT_b_S[dWcghQg_Qjdb^Q`sckRaydScIWK``\WynaXpf\d[`aUeC]Zi[TbZ\][UgYsZlYygWWUJVjSdQV]OkKGUk`ofW]`OMear[ni^U^iLa^[_frXf[jdaXAdYTQxSaYOgpEYcXSxNKu_^QY^X_kWd^Y[Zc]hRXb\c\X_gshZZPaRdp[KbUYR]mpcuRTp_liVTbZS`mLZ]^RZdOgZqZZ_gZ_lkye`UbM]m_ZpcgWkqnlsxeX^na`j[fkoM\V`PimkhW^wfnkWj`f_LrETkSgRj`hfb]]SXQY_Vxotcd_dcycZVqj^bMS\qQc]oZi`\_J\Wu[SS_Wsuf`uc]q[\m[jg]cg_hwW{\jLP]]ReP\_V[}iW_aQX^Y]dOSjz\`\hYT\[gRek]TPzRN\Q`_pmLZlWSUQM`d}aRcho_tYgXnr_\afT]zngx_kYdhWF\a]xW[^kiNXzrihg^_prQacbRtb[vQtYQ[hoeUR[Vz[la`b]gvxebTZqeX[PSbeZqh~Ogg\g`Rsd^]etlZbkhtmdnw}kvP\`Y[[bf]^ZQPLeljOc^ce``Qhw:ZqcblgcnZsjykYpngXyQOU^Y~]}ejrqea^fcYwfX[_\pbco[ke_cja\gZ}tbar`r^mb\mu_k]Ydr^s`cX]d[gjjgyai`jkehiczbebdfbcYblabgnsjieo]niaef^ZXckdeblchrgr}^rt}cnev|h\n^re`mhm]Xbllm_dS`Wx^sik[x\UscjeijidXf]prhqcovn{fS`j^btk]c__^ede^bYv}b_mj|ghmg^Uicbmb^xjedX]e^unY{dhk]\NvjrjZY`eexkq`fzdb^Uvq|Si`o[cc]jW^yta_hljzf`kijiYoegbZsmUql`ijObhl[fh{dshftwbgd^p}b^Yp]ad||i_jd`ksZc_csqlRTfnYeweZqmjd\^ca`dg_mlmi{bbolamm\hmZjfYa[hO]bhgtXeQVL\_]cnqXg[\{[\fKbd]POel_QhpoSizUPWdQNSWpXNpNXajnPX`o]bpfvsPef[`njofYkfXQ`QSSuhfogjwVYh^_ebjq`OXR^`d_MRKwUPwq6TlRKX|Lcq`aWuaW_MXZ[C\Hgdn_aQ~lTrbWdIdeYHqvn^SYcYkPcaWauTkG`c_IyXptM[l`]a]eyXZbTtTLyf@ZUW[fV]UXnJ|aao_VNmNve]gwC_N^o|iqQueTMa[]bO\cdJooX`IhsYTcZ[aZ\IXWeequO`LqlYgVKSb[qTm\U]]\WRgRvTmQnyclncaQZjuHUoUodua`dqeaTiZ]`SSYhL[imZXYkNPgfPGV8hVUd\k[ibUoh`^nf^[f_WF`g]O^SmNkfc]lYUdaQQY`kaYNkKRWLOWQcLbZ]\PM``XZPPTTVwaScg`UehlckPWXO\VVeU`KLo[]XS_S^sPlsK\rP\zW^ihRZSN\EtLfZ_mghk^]Oa[YOa]ZpQUUU[d_Q`cSWkQfY]E\MdSXXPNMd_hS]U^QVYnPb_^_T_pFj\LYJUlWedNVUSYrXcQ^^MeahiV]QdjfgoaSZU^RQIZZRPU\YLP][IU[JTdgGno^WKXZeSgYq[U^hV][NUQnRcibU\N`ldX``ZbS]G^_oXiPW]M_Xl]\V\UWZ\L^MU\d^Rz[X\[XUq[Y[\ccgPWUYXKdV[f_uXU^IVbW]]fjX`YUqn[eWdMZW]UqeUXkeldYo`ObY\PZ^]Nnpn[ygXXNaXWd_cVnH]Ia_MUceoNPn]Xpl{bbjQ]XQYiXLYYVg]s[evRd[upMQ[eWX^TF\\qAoo``UYZS`be\ZqQYPYcUa_l`nXXZSeYezKTiUYUQOM^Zb[ge]kcgsfdqp]lhM\\yc`mZSvXV^NUfp`cdZ\UeqWojjLQa^Xc\ph][aH\T_[bhPSZ\__dUYJbE[Xfp\e`aS]X^ddx[i~jTTevWdeUd]epQV\hlY]ObN_GTVj\]o`[Qb|UJfUes|QjF]iJR`ZN\mtb~SY\^gMoua\u`OCRGrba[SW^\VeNcm`YbcXTSYne\`UMkYqhZu\RdtammjNK`]M[MiVKVVbjmjJPciYSXS^YXV^\Wob^QRfcakd`kxa`caRoZhoh_]__eg`__d^gmkfeci_[h`gkp]edYZweQrXc`g`bbudm^]hg`c_Wmqhkhd_oUh]e^f_k_i\gzk`j`oe_Vc\gjkemWhf]b^]b]g]_Yc]_milqXfgdsmaeuXVffZc_Wbjodeljmqp]]ch[bhjbeaWLU[l^rl\ecUhVbej^kVYife\ifg\gdejY_`pZgclaYkX\Zo_dhjdv[dg``_e_lf\ebbcd]iihbeai]^necogc^i]ddreh|[kiYhjc_RjfZj]kbfejb\jd^_icnXi]c]gh[nMcfyja[g][jaWtY^XcYg]cjcag[c`R[YdfO`ce^ghcbca^ffv^_xj^iijbzlalg[eddcc[edor[n^bScfjf^]hi\Y`be]^hXg\i`YRPVR]Wdg[cdUiS\Zel_pfVY[dY^q]YYTI[VQjW_Z_RVdRZf^j[cWKpiVJ}eONXbdlUSVab_\k^bpVcjefRYOnXYQdZ\Ua]WjfYRo^^ZdQVZ^Tp_JdYhU]WmmyZYgNlT[^cNeQadakpZY\^e\oIQ|canWe[vNW^n]H_aewi^]cchV|QpFZkPYej\QLCcP]^UsYf{bab]d~hYQeIVYdqeW^`edshf`YZZbP[KivRxe`QU^y|b_uTTjjWv[HRV`TTVpT\Xs_flhXPokK`[k]ra`iYX\V`qh_QRb`U^VSMge[OVQ]ucccf]ZIYsSR]aeb`O`YecKfieYU_JOPYiuN{ZlQebabZN\id|]`TdR]budn]mQgVvn[`Y\SYJ_MJW_vT~X`W\vhWvX\[PN[X`hc\[TRigePf`]qJ[L_P]f\GX[_dx[YyWQV`Td?VQSUcd]g]ddrX[kuTh^ckae`gbkTchs_TZKWStONt_VXVeEgkd`SX^bUU^kHeT[]j_qiaZKO@iSZdPXr_RgBZPNZ_]c`yh[WfRMdVbwuZXUIRlvQqobIQZdec\]mx]@^gVbaXdmXhZUVh\I\c_n[o\UqbI{VbK[igQX^{][dfdh|rUXWkR[e]j_]s\g[o\\Wr[XejZe`b`sNiXd`_]YWQVY_e[S]kaY[lc^jgyY]ZSrW_bTx]NqibnMkfacc`Ye_cfZeQn]\sbfWfrkVNEZZl_PgZVR_`csS^Y\Wr[qgQdd_QnPOfcgXbuWVuTo{PTUdZ]aqeQV^tTcVipjWx^]ekOj`yuv[juT[XM{bdVmhXX[WkQ[Veehrhto[gaY^`^TdY^f_cgscVk[pUsTzcg_QZ`_ZSiimdkZa_aZ^toVYid]l`vdZYnbuhi^\rqYkUwcooX\UXbmch\WYXf]`\QyN[XDJRli|]mfdPXeYXNiTfmY}OfoYWRabl\dsPle^_o_YbZO^QY]Y\xSMp`XYf^{ip\[V`cegVu`_r~cbhKg`j\ZcmK^pUORW_d^pw_\ahg[iY[}Ve\iiMabWNa_Y[d\TcYc_r]nn`w_UjjT`aRydm`\Zhlc_dO}_iq^Nkw[XaSU\monf^YZfbXs`b_}\L\]qi{dY][aSfeQXk\^Z\wa\V]`nThyfe\^Tg_`iTZf`gbcebbha}cwZefc\^laabRdsZ][eWb`^hbf`k`hRhfbXZ[QksfeRnmiWjZ`_}ean]iadZeb_Y^s]fqeb`Sic[Xv]bY^gYdb]^YTvmd^cXcd`c_[\Ti^iVd\p`XcZe[h{ZWm\walaX]`djc_[m`_knd\cya\bjUaap]Yels]}eXee]qdj^e^kp{[n\`g\cv^Xaer_nV_lX`gdjb^]U_h`Z[]lTm^j_ZUnf_^cabhejhdb]`bYlm_t_lbXaebgWU\a]fxmYYX[YcdR_\ibUhg`dec^l^ZjgajcX^Xx]a[gUYh]b\e^\ZYdYchud]^_o_okWgkkOlY^aT^b[TbWas]`x][ei]b^kUfepj\drZl`e\IU_QST[R^PaPaPfPfUefaY]ceUM]P\obFUMoNdae^K_WYk\VQX\_cTRUpGTcRRXR]oYih^didQXQ`YjapVZSLKMabk_TMRXgKd]eUWVb^NqE^n]j[ZePvWXN^Kn[WyNsbWZSX[bcXYNU^eVM}TQY\RMVSGOd^VQjSdXOjUx]e]g\TeZ[_]QOZUfggbMjYaRSkclRPbUN]U\i]ZaTEXQUUSiJjTjYYfOhUd[]`ZWQVeReYR\[`nm]eYPf`VNgc[jY\[V_K_TUK^kfYayw]dQhYdVSUgWh`NaqVcfY`XSc_ZoSNcTkVU\UmYbX^[Gaa\aR\XRRX`RUW^MVFe]S[hZMJlC[V\QNJJnhVZQnRa`h`bb`Yzjc\WOT]_F`gj`ke^dSX\RSMcbQTZXb[lcLVTcaaZhmURS[hWe`XVR^YhZLg_cWWSXVj`UUYbZ^Xawa\PbW\Z\Zpa\dbnc^jVOai_cg\[^v_X`TVn]`T[ZS^^_Yn_YZ`V]]RZMsZT_Xi`NmoYgRX]ZZWc`ZUceYMVLOFSZYZ\`H[]UkVVRa[OaR]UVYbWbj]ncX__]cjLi\`VV_RQWQY_X^aQZadSgS{_nlv`ZZXNU^ZZlbTZWccW^[Zc^W\VXrstob\`cj`U\^`oVRfjWk^SPM[]_YSZgdfRVma\u]]Y{cWeXbRdZY`jSVVilmgYab`T`lSai^]Z\{fZSb\VWZ\[dYTa_m]bZm\cQ[`kZROWwSa\lK_XUd_UZjTkPRgaYuTmaVz\f\LZGV[bS[[`WcYfR_IV\YVTdn_YX\f{fUdRQWZLbm\]iW^TX\PZ^RVUWdfSPWTX^LrV[XLRPR\XLNT]UV`hrCKcanfKaYs[McUdULZcTYXbTGUVoVLSXi`Ugdr_K[^QjYR^O\Uf`OLbaaVXMOGX]E[X[GGRTX[XQTg\RUXHFP\]PQJh`RSbjS^Sn^^\tW\V_UUR\XbXgZ[mT^INiiAVchJRoPZkeqYKd`]gMWYemQRRJcNWPLKWqkJEiQm`XL\ecR[JUeVqPbQA]Q`YZJeh`XTSSWTOamaXGeS\o]gQbCZH\Y]HSke[KRTa\VbXTgLc]jZ^MNX`^cpua_aqP`]ce\WSNUWKTc\JSY`\SYUXdTrjbiRXR\X`ZWdDUXAXOTiCUai[erYe`fdskYaadedV\cVldnog``|btVs]lZL[lcbckezb_bijszabT\kgebgQ[_Yf]gsQPdiy^WfUTnyXqaU`gU[tW^g][k`Ybhkejfl]gbZUeYjgl\hULsXTgUeoUa`e`W\`YgqOk\alUYib]oeq_^Zj`gUi}^^s^Vdznu\`^NJX]S^VhneZdg[fWdZlRa_`poYarSvgcV[Vw`ub^j\fa}tXogVdg\chP[X^Y]wS]bgalkeX\[R[Vp`f]frX~pgg\YpWwpgkrn\ajjh^bUi_givZjQ\gr\ugY\dspblea\ce^Si\y[``\XfuX\Y[oUiQV_h]pWY^dhm^j`ixeYfk\gd^oe`n]OWhb^dscYl^anXhgbJhihSdXZLn^fOMFLUbWuOTogR[j]jtcWVmY_JflOXnsJ_dqf`X]ZNeLJV\P[jmcaxZsbXacreaLe>R{lXaUaXdka\jWTnhs^c^hWed]S^Rk`uLb^v_aLaOZ]RlN]ZgbeYcJaVf`f^k\kLa\_a\ZNQk]vc^hVMsnwIf]RTWaLR]WSbDv^D_VcZ`cM[aNf\jqvR_iQsQPidHelK]^S]Ldd~[VnVL}VR]ZehK^zSXaT_akrPbnDViOdUamSns_[FgwW_oOusbBX]cXSdZkva_YPf[MRdmXLgdSeQV`{\T[bS[\`ihmqochbNUjcadXTK`wqpS\DQS_YhKkng`zT[^wv{QcLdNiaehg_|QYiKdSXgW\ei`_OERNhVL^\]aUa}WZgwYYhZOysyZivke\\bjctSkgb[StphoLufg`\vde[fb}kWosaw\gtfft[ZWiVnxleY[bXji_aVZh_zhP`\oNU_N]hfpUSmox`YZKhSfROaUU]hUroedY_eU|Rc~_Ye]ojoZgts]b`_mdflXsNZ^_fr_bfdwhYiiqkfk_\poggm^]cgp\jyOx~Ln`kbugV`|y[Yskccrhb_^jTefpqs[jrla\[}Tf`hZko^hkhjengsY|\feekedY__`kUai^[cu_detYcwtqemmtd[`\ejdUPpYjLhpc}zogjfTnik{_Q^asX_YQYW~i]dbsWuZk^rDc\Ypxhij]Z]Pnr[aU]uKiqi_aee[Wcnd[ti}bwfvppz`YbPU^bQbap`FvcEujbNQWuaoixWV`Rhlb[Xj^U^Sgl\]ZZ`\[y[TPfYbVlVXWbZzrJQ]XxvwjUIbesKrtuvQiVgY`keo_uPa^aQEZ^D`^ZqmldbWNKochauthnhnJiWkS}wp^^O|]XRhleij@YNjpyWS`YSJg7TwnouPOpahfwaDc_icTZSn_mdy}cLWtVaoR^cssvzef_E^oLrV_R`\]Eh{dYUafOWWocAXup[M[YKF`YT`k`YXVcSPysdpnYTl]VfaIxJ]dTQtmi_bdhmgneePo_mogQ=~i[]Fng_pjlfdijpftVm]Rn`gehbmzYPbauxq``Udm|_i^sTaCo\a[{Ia?VdYaZSZdSjWatVZSbS[[[[nTb\rfXa`^jRY`e[gv]]WWfhd`eme_ZKkZG`ZRhS`T]rd\gJU[VYadLLjSKMhZq\Vlkm[mNWjxT]`lhhVnVVMNd_[Pa\W^YadnY`Vk\XcXpMa]X~[fjm\Z\a`[V_n\c__ZPeoK\[[i]^cM\UsV`Ph[TQ]Lbo[f[sUa`Xdr`MdTcUVc^nhPSggTTdchy^_ZNgVVVYeWZcgQ]j\TinWWn`hTZwaGgUXXHZQPc_^RV[`JjXNqGUk_fjdQP]W]df\SZKgeSlbOn\SXfY`PPsa\adRXTeRe__aWWYYZcgZVdf]MlNWrdUfabVhu\`j[ZadZr`WUsaIgUd_^SOST`S\U\Me^^cfbZ_ceWl\LNU\X\^PhZV[`ZlzpQTYuPPSVyjUhoyoZZelszjkPORT[VXq[qUM[f]\XXaVkwsc]afmdP`XjRPghUe`YwmflbchiYm`\aShjVeZ]lfsSn|l[XVWaky]Y[pXdojgXdie_\jd]Wj^^kVkVnRW\L_da[_S\OnmL^bRRsn`puU]avia`^q]dS\YnV^vefYVk\i{LZiR__WlkZidR\jo[naa]`l`]debQhLQ\Zj``XmlM`Zeod]eDoWaM\UWr`gn[sm_[fd]qhP\_mLc`cZhRn[Yjaim[\kaU_gY]ihyKV\b\feahfigUcR_s\Zhplb]WbLNwcfqhc__rsos_\VTqfdijW_dVcck`fkSfgfyse]fbvb^n]\skmjrZtkaTOR^eaY__m[giUSn\fb]gY`jrcXK^cTgN]\HdYTWdJd`_GWULQQhWgVW_[\VdH\e\wYY\Gy_cyU`SndRXVWdgYJWS`XkYT]SYYCTLcMW`WOYeyW_k`Vj^[S^ZggxchQZ\\NPPkkReR]W\Qc^[M[Vp^aiGdQ`RmnZulfW_ngLXZQfWX_ieRe\XkXx_`sWYcG`ZWTWeKU`SgV[NRWQehNc[kqUgTWOKkdPUhcZs]_OF^MXRWUOO^dNQj]cRbmcHgfTtoeefu`QZWfU^WQ\UKWl_VU~Z@Qnn}pEjq]bHgir^XV^kSZU_^ZMcMbdWoyqth_V`LLh|lbf^rQEOW\QVMIY\[mRYfIRWYRaQub][zV\^XaZe`nbkGm`ZKcfw[WbHUTnOklM]irpbdQUXUNWLNRTSUdyVjNMQ[Pfv`^pW]\JOTQ_WbcJ[IMnQSUofoS^\\bWiN_WVZL^m\cVTfUi\E[XRU_]ZSX|kSkEgaU]OlUYhL^l^geWnX[\jeMXLbZh\V^eLS[S_bPQQQWYbik^^GXexbTe]TiVTXRbSVvHR]VJZeRWmr`SU\R^hinYhKa]d\lhPV`QRLh_RIcA__hUSW^_d_KPNNLUMXQnLgSMVY_\GoV>;gwKcJYloJJZ[woA}VUaDY`}iWZ]_rnmUbZ|cju\hSZe_nPciWsOSU\WDL~cnn_vJYXHk]P[bVnipVkel[YXVeVMNaYfoVZ[JRpqWSdQT`IpYeVVUCW_Zv]d^]Rge_SPRi>jjV]cwhPOQOXenXJcJ^J[\eSSdWlUWTlx___fHnUTKRptf^Yq[Z\tf\^YT[\]]_n`jTQ[VRVeZmJO[W`^OmbW^K_\VYe_d]]b[OSZihi_TyPiRJ\PdckSLdwQSLTXe_Y^lbZRs]QivVP\UgipZPe\]PjZRWTRnNUYbZN`oLHPa_g``rOWk[aS_YdXVe_]_MYmaT]^NdMbb`WTwYRZgaPzA]_I]P_ltTSeSgyauO_\[e]]lTVVpySOWj[ZUX[og^blfe\TYVkg]b\`XXnUWpf^YRlQSUQd^XabiSZ`ScUdgr^mY`i[mWWk^\kU\J^ThkOT`|a[WUnPdYeFQUlfXxqY[`PUSa[YXUP_ehZzqc_RyWa^^Rmh_^^\eVYtc]KPXW^VTkOHZnRTQf`Y]T\VZlajk^VaW^ahTVPSZt[Wejc`d_loOVO]UtZbbUof\aNdr_cakX[\cgcYVU\MpkwdfvskqWgic_SXvXUUaZISdPWgZSpl[YWFW`d^NhR`STbicwWTe^\nrTdeSmd[JY]`f\\VMLfWVWU_UWcjYPdW_OmfiV\adN}XkIU^JXQ]gYWX_kgYUW}[d{Wfb_^ZUR[gSYYli\a`kP\XVSPZScd`VcwggSUUT\iV_WXneY_gceengaq~cNqYcxOSglWV[\nagYT^sO]W\ZdXd`YYUUh_^hdgVs_YuTRXPU_ihYhg__kc`XocTfU[SkX_ciXYgRjkvZ^S^SvR_cejIpo~UIiv^`\q`rPSk^Wk]ifjflk{dXyeLm^mXkYYR]^mdhRQihg[]UNGcTTSahh\pb[Ojeh]iMlbW^^SYgiNRp_]\UhNteY\_\]UlV][da\SSe[f\mcrePZ]c[SlwUTTp`nNib`leKSiZ[ZbObe`bSW^mkbf_``a^_U[bVYObb^p]P]VOSX]b[W\PoiRd[`maOah__e_kippgVWgd[SUXQ^d__\UcTmf`U_[[^]PediR`fYhgb_\Lomgdf_Vih]Wnq[gUaTgTZXn]aoiTg[[^uc\Oh_fPqj\hl]hpc_an\ggdUWchWuVngYcdgZ^?`jxPpaUc^Snt_PaPdRaOUY^e`[_hZWZ_z]iN^PZbbfbgR^Thd`f]hYN^_WfAxVResnl`dafXMtcWWkSbej`Z^Th^Z\VcgrdizsRYRZ`Wmflplgjbf`sd`gvoes\cke}Xrdjdgdej}^fZbfknMOmoVg[fkntebjjedXiZYh^kcmp^Lh~cbYrP\ntqdlrb[ftl_pmfXrWsspmpexpo]mdl|mcdTmnstfeRvbwprefe]m[dwdduWl_]beQiffnY^ehmVmzg\xZk[[Vw_m\hjyMcw[vlzx^]beiodp[lnc_rfZYh\^Ul`gRgb_e^bTt\t`]Tmlmi^x^\yu^Vhnmel`v`b`io`h_ikehmiaQboa]kcc]acWUXieerO[ea^W_l_lf^dadrV[iemUb`dldko\q~aj\bgaaia_iT]ykia__`mrsjnba_d`rtZ]_k`afhae\jZlj^asb`X[]myvoscaXdZ`kjX`b_^_h[^at]g_Z`aeUZ[`oU\`x`ZbU\lQ]_W^YM^]R_]bgoPkW~fejcja]Mt[_\d\^[WfYQameaf]fejRRw]O\qYYS[jU]iXcpZYcc`mgbThi[eg^VwrZgjbitXrveZaXh\]YUrmqXjYrckepWSZj]YdW_yXfacXZcocaWggW`cRZ`hc`ceX]_Yfdjb^_WxYeVe]hod\]bc^f^bxUiiaPbilZedUXbd_rteeogr{]auefZ\Z_ZgWmzjXhXcb]ak\^br\`Ynbb^H]Xa^[lQY`__kmX]wfe^ojgg_\UYSRcddbekiudjV[cQVa_k\Sc^^g\Zw]vbmZSPn[`fd^]Mamd}]aR_j^pZYSY`be]XydaJ[b\b\e_l][T\agen`Yj`SGNO`iSZvctexxlJg]Z^SUOmd_gKXSohTbmxdmtZkVX[Vg]`cZR_N[cgo__at^kenXRja`fQ^[bm_eKo_bq]SbeaP`ZKWRnT\M[bRgSSnTpnSezWgSTQRqTgIb__XTaZbcX[\Xn]^oZjV_ZSQV]mZ]icca\p_TNfNSmabdUXhbiVN]tKOlz]VX`VhWi[QnT`\kh]SdeSk`\OVfeaY^GVN{juSPT^\\rakOd]UR]XvURR[LTWXjTZXZVcUhcchRW`EIc`M\LMTZ\YX`ge\\VPbNhThenWWWFcaD^QTNXdqT`oq\^s]daPAeWU[illP\HdgeiNb^`ufbTcb^SkvpTkjlnas]Zdo^ZW^YW\ZfxUmevVbL\[\gl]rY\xeRZQ^^WcStTmXebYVUOXbgWWVVdqSJJHS_RRnW\OOYQcae`b]Np]gpObVcjgNPbgk_P[_`na[YfW`bYN_XnVuZj^cVe]]e]WLgG_YaRfoRRh`XUdmddlgdaOk[OEOnZXT^_UxfVed[dr]QZ`WgNhea[ZBciSaXafomrkpZT_WaUZ_Q`jbWMtFkae_p_]XXxpWU\bjwf\vp^R^gcWfS]zj^crU[~jmdWZM^hb`TcYyZPPTYVnjlU`U_VZ\h`awptkJa_VK_QPgaF_^oQWFlPtjLnXba`qnU^\PQWgpvrfR|\LkbRuM\llU^U[YgfhU]VW\nIOVfmegUgYxr\]}_X]hn\R_\SaXjgqVif]qX_X`\\]_n^NhcnedVj`_WWULeZd\cQbzdgeV`jXSc`^T^]a^fThbcQTmUcUx]kbP`km_]^`[^PlX]fq\oa]pakR^WW]d^tTmp^U\[abXW^Y]]_zlU\sVU_``v]nf[S^|hXiZb~UZVnNk`U]hVbeD_onm}EcbZanbYW\UihbgdGR[idj]ihhquR]aeb_XdfetP`iSbQ_S\qwE[eeSb^_aUadgV[tgWSX_m[_qi|ff_eX_\SZrSgYUVR[SbY^T_QgRVObibpgPXuebgeXbe_say^buUaO]R]UZYW_jlYkie`VdjhSY`[daxdgaXiXk]QXO]Rvi_Xi]xp`ontfmdempqe]bZhbZdPvhuT[UYi^ofhT}]MZ^i]^f\Z|v{|}~{x||w{{v|~zxuz}~|~~}zz|x}}}}|~}~~|}}|Nt~QW[_QM`YMRJeBgl\UXjSaOd`rN[F^FeeU\JvZnZg_}^[WV\^Vep[WiuMRgQWc]X^W\OaXKWASQ_fZ_e^dhVwO^`UZdTcUiUdicWTiadnTTja^Nh\zhJS\IeZb_YhZ_pNVXaeeRh[\_WaLtdIgY`_DsmiYqg[|Y^Qn`W^tUFN\EUZa`X\el`[\jcLffL\`rcbRZSS[K[Jem[__eVNjuOK[a^Y^]VaRadjT\XHfzLseYa`VfergW^h]gTmbeSS[K^TSKU[PQd`dYYSjV\dgSjQRiaS{YNW\^_cnbajX^XZ^TDQX[_[daL_cRo^QaK\]tUcjbSmVONdacP``\XP^Fv\`cK]YpaI`fibPuU\`Z\^erKaRRYaXamq[ildSNc~URYKQ?Uf`OVhe[JQX[RlOqjg\OwlVVeo_i\fY]_^j_]cHhVc[tQh`qdejfhObhbmlaE[Zm_^[?SoUbM\`cfePTSFQMl`rZbaa_JaSWwX[UYRcajiiX^USgDbirtA^VgWS\haPQRVfZ`bfLTfiiUk\On^[mKeUl_pobb\Yo\_NVhWYaiWtod_Vo^[bYHSI[O\NtKoUNoPlajNQWSEZRnaRasYWORX{_po[TyyXWXPWX[e[Ve[ZfYrLSkVU^plcXchLsOjOTjenaceqVV_aw_YUe_vTtOOm^\iT_X]_^hfS}U_phBU_RVbj`]qGWk]ecYGOia`UOH_`L`>\Mu[YlqjT_naogaNfZ^dMRKdVp\NqZMYzhZSONhQ`ObfioSnc^X`V\[Ypq_]PYwhI[n]URIeXTdabHohRzEifYhkf]qMn\mQa]cdP`[]iajdGfWq[[xhcUnRSC]qrQYbfZz`VZPjmzTjYCNuYbvTkf][]cvWcdeQDTY^Tea^_\^_OZfVXpjW[grSPiZEU\s]rUaeTnXjWbdbcn[ckihefZob^]klZb_\uLepT]_Xgny]dopZ`ftWVfs`rv_]YmpaD\ZbV]O{Kaukob[b^\gb_lU]V{_PXuYh]~XS_oeok[zodioiXPnfMmpQUbeUaRmc`hbWIDUId_]\bURW]\yY\\gdeuZzLeVb^dibeM`grYa\S`TcQ][TUrPi[W\i`YjhSV`Mejyw]\fWeGH`wO_L[YdncrRhfZcWjRTKq_``zic^tbsao_zptZhDXIYlnXiOlw]VjWdUUtZ_tlIReXVZm]]`t^hzs\W]y`gbWV_kYVcYkg}[XPo[plLwXOK|XT]fe\bbmX_V]Zqd`dZmiKodWhhUksp{`~]roNndwuk[voqojjS][npaNTuslgmpnZyiP[llnZjTc\vui^zwWh]momOXONXSe~uHRY{Vp_QWoW_cMoOxQ`sK\w{Sk]o`oknmmah]lGdJo_Ufqk_[ifY]KaUtYmlhWP]tZ`defjZ}rapcnZaeOtWtq^cninsKr}gXUl]hVv`hSkuj`Q_[kkxlPhnk\tl\{Ipn]fbZt`t~SgeUokUVTrSgjD^sdfTrhljctuvj^\iiugicuVb^\YhNeXpUanawgg]YY_Xnca\SLLSp[\l^nRXabZnLRyinijSknOi[ZedUKXb`cubbblg[cyPfb\aofTj[Xgen[ytegcf^lN`llOe`ie`S][SW`Sf[ii]lN__wdSk_gnv`pj`\akuwUidZv\vWm^^VscW`Tndt`xQRfsjVv[Vp~ZSMRl_MlimWUcPcKw`hrbYd}ksicU_YktQkfy`bSdWM[bY}xQ]IT[b{iM`ajoRxYvldl[cSZr{^]``fpj`HrnetkdVVndXkYbgunH\N\a`zKPlo]Q[@erj_|X\zwnuy[rl[c\nk`x[wfhlZaZb]hKajtVkgmvfqmY_oZaVadrR]jjdXtJlUcXbyxinkqiSPNbogbZNWTW\\[]bV]T[_LcsYYhnOid\hUr]WZl[MPX]]ZccbUXj\M_XaqdY\U]oc^^OQa_hR^biV^OWjYqabWVfhQalWiYWXTRbXzdYOan]_Zh[Xe`^Zf`[pxMqXaUj[oRMbH_V]X]bic`Y|jYbdtQpKQdeu]U\b\_bz[\_VzpZV`MeN[ZY]aStYcWmXawU_oeUY]g\sfajglcu[gU^\_W^fm]LPW]ZdbXqkcq[b^e_T_]`dpYXp_WaYUjnriYjbbIcnnXdVU\acM_`]YZdsqeeW\ku[~wi]\PU_c[X`Xfpwx_tbTja_YSScpXR\\hnX~_\enVpOVSZcY[i~paZxO|aTacdjqccu[XQW^\Q`UbW^V\bRddZZPUe\`h_aNUdRN\PETXZUSXP^KUbcVN\GHrMlMVbGddPKF_\UUFdfFWanR_PP^^iQL{dOZuaZGj9RtL\UkdUW[?gRKMcvWdYO\RqcWQSR[RPTPLMZXhU`[^hOQ[cRmZdetT^e``WQEhPfoXSZdQLITr\WTGp_KdMoTIt\Y^RQPSTVYVU`]RKPSbEbRbLmaael`^_Zb\i\UOZck\u]N]eTbCbjN^XWY_j[^W`l`aOcIbWnYT]pV\fepYgbfYhWYfwp\cZnqc]P_\]NBe\Q^^QLZfMepcsWO_QH_hJamWM_hPnOld[c[POcjWWel]aZlU]NbdcZNX^VZxdY__enQV[XPk_T_bVifa[ceX\cTgheO]\aZh]vY`uWfsLRTV^\S^kv^p_]mV_f[hooZPeUY]b`QQoZZbYrUmZLCPgn_leZiMQYtWmmmTIya_ZkgUi}Wd[_OphUvdHd[MZdol]pYZx]HNv\nsd~RRTY\chp`YbXhs`a_Fc^fsklZ~aacSo`]en_Xgzg[Zdkr[OZWXaXYiloc[`igU[Tf\bfWZah\iNZZlkcR]X`d\iVYggdn^dmiackVl_Zc[WUKWhXYcsRVcJgVX^gO]P[Y`VojZN_RbkadbXafV^ZTb]\Y^TWj^YZ^WLeT\jZ`W_lTSS`oU^ddbXgah[Hb[KDVahpXZ[]IbXWf[X`cbQWZUXtdKTHl__rZaRj[QqQkabe_lckrcyZ_T]UsiTQb]X\Kuv]eaRVTpbW\YZ`SWQdXV^\YXXI\X_K^JQ`Wc`[g`WiVYWQl^{xH]ic[bZ\]Z]RZbieTfNi[QcUG]UO[Wgage[[a^`Tk`f\Z\_^ZpW]]VPm|ZYea\W^Ue]]SebXLkTcWh[[cg_ealckZY[l{Teh_XPeRjK]ZWQ`WfeVQX]`jcawYonWiVfgR[Wis_[hUbYon^il[``\QSeRS^ddhaRSYO\_Qe\ZY[[c\Zaa_ZZ_`RV`Ff\rjdJT]]`W\]ZPVjl_\QcfdainXPWc[UQJbubXeYJby\bTae\RXm^n]SQbU]ZXPt^tO]XZNUVo\]Yfbp`ccOYb^bfb\daVMgbRblWPYsF_]erUNUa]X`Xae[aQSLU\XUSlZ\e]bVQl^a]iQQOWQa]b^[Y`URILFTHO]VZbkVVW[mUTF`R]TcaSPZPjlbpoR`tik`aYVXi^eJW^]bOcNYw[aQbmUdZXkc]T`WWXcbT^IHmUYTd^TmSRfldw[ZYKRW^\^SA]TZRRZQnYbhVmV\fZ]WZb`d\dRWjNZf]WJLKW[Xftd]Opia]URxdYQ\oViP^YT]RVS]_^gUOXMkST_hO\^]^jV]pdpe`RrdVwsds_TZ`ppihacs_lT|]gmdkYpwdqt]`oqZeLWgSnj|qfZ]yYjloWhYaTtQcfh]vjVpYzh`ciqhoXcUduYYSZ\OcVxpTp\hTakbcf[kTq``[ghwuwvx]qhPumbLleaiTVLofz]db|\wLa_~fq`Tf`nns`fg|_il]bqWgZvb[Slb{UvU{Eq^}t``j_RX]o}g_zS[oTAb^WUel`a_^q_OxUxrIo`P\i^^PW`^RDeqgmUYFT|m\_ptW^yjeKz^SM^Qb[}kPk_Zvplvbo]pcfs]r_TMsuVVbgk[]kidfncceNf_vV`omIsOke^n[hnl\hhTfWgWbdUJVhmjNnraZ[zecvs_teU]`d^[wcTdfObrl{ekzc{VZXQuRzqfjj]N|ksm_`hoLyrf^Pb`_]i_z]]kgxs{kg]qhScAyt|vmsTDZOp\`Rty{`taLJ]ZlYig\hhPxyV`Kuh|vrvmsRY^mobehrTWXqlYse{nqt`hY6bdMftbaYUhztsLq|`lk~psXP^VqlU^ZjfjipRIlYex[]\jhtgjOdNcfS_ZchmuiVV~on]Qai{x_Tdpo\W^vSyeIcrepYslQa}x^dn]f_lVu]v\piLRMjIsYx_SgYmdswo{delhLQ`[cccePZjUuVLgaKQVafeVZXcVd{RVyWZI{ZVnTN]`i`Rloe_iKcbiXT_ZUS]OX^Y_KPSs^v`bcTr_a\S|eTvRT[kyUdhYYzU`lY]`a_i`XU`ZT_ZaQeYXc_WUo_acd]gOPY[`\``Qocrn[Qb[U_^P`_ffY|Z`mrSTTq[naPacbORYZW\YZef_cnnXRTbXO``f[icX[erZt_]ceTrWb\fxdh\z[][XebWdiVXfa]gl|\[bkfWPgbsdS^tVkXRnZ_YKi`XQZ\bhcRfXrZfcp_WYa_p[TtV\ricakg^ieW[gaZqiZ]R[ms]TlW\eiU\VZ\\ZgQ`cY`PU\QZ`Yab_\Tv_[YhUakVwV_`a_`^^eWW_XTdr\gQi`GTfj^WOYWXTiRVZ\iRaf^UUcSl_jcX]ZgU]d`W`^fsji_UVU\W^aY[j_gW[bgYYoRpSFY\fPSoRRLQoVuY^OdR_RgfkUXPg[psbZbchV]bX[cYN[LYQVUZimCf\`VbTB^^bgT_ZR_c_NXyJcasXkfcVaqK\VW_^TXWg[h^O]dI[[P]fKQ^bWz^_bV`_if[[petTgWT\\kcwd`\PX[c\SdTJ[SP[pbgiSWi\gJRXaq[[[\WcXQOghiTk^]dXb\RSM_NVxSZY]^[kTfST`\VMYe]\`Xd^riceR`t[Z}jUqaXIWlXw\YdV_X\SNmXlfZfZaOfJRLQkKTcXiXaRWQRznWiSShV\ELmehO_PXV\[sfjgXmPVXcQ^cNMjl]N\ZgU\rQp[`SbSdbkhQadW\j_`Z\WmcLJf^xVYaneNXTq[JeiVSiXZUdjZN[apXjgl`eUZUon_HUr]YmZgmZdgTvdpU[\daIWi[\WU`SZkYd]Na_[ecwUF6hhSZcfVSgoPfmkP~`]VrminqP^ffVfhL[_YcfW[R\wu`[bS\^UX{X``YkOaMfRNYjkeUUn\YkVOP\T^rcxdVY[hl[|lK\mZ_Td^e[_`q[Yr_[zr]GWaWU\YpejibT[WULVZnKRiYisLeXQO[XcUf[lik_R^bxtFW]S`UWRccYrMIaYejjkdSp]pdR^o`u]_pg\ckXZXGSVchneongmPQZV^otPZyW_ca]d_uNe\rik\OmgQ`[VUrcQab_]ZZiVUekh}qxz{uqy~lsvjz}p}vxo{|q~zrx{wtrn}{k|sr|xje{{l|x{vm{vqkpttrp}k{x{qx}lwvhjsltrwjzu}{|zxqmpr|mt~vx|un{n}wrgzt~}tlyypv{tzo|xlouxu~v|lwqvupzt~mv}vpr~wr~twq|xtw{~wv|xvtsotxsvj~tzf|ntxuus}uxpvnkom}{ptfrpxs|juxrovtprm|g{tx{t}xpr~vzzmq~stwy~oqjowmvt|ywoxuplxz{|ur{ssos{w{qgtu}lrs}uzsts}x{uz~lwuyirwv{pnxuqs~xc|x~|ohyu{v|ozop|yv||qxwyrsS`MdU[T]Z]bW^_ZgyYV`RYUiU`[dyLc[ZZWgdidYV``ocWvQ^XddTK^ciceX_PjW]gSi_]XPXOaR_iil[^b[FWZh_VNb\X_a[]rhgWqob]V[R`OU]V\XZj^KU`_[s`Uahd\_ZOjfy_YZJlnl\^]Qj[SY[WuTZeUuWViSVyWR`hcgYdi[dliWc_XZeUXkiN[kOleZb[`aW\\xp\gZVZ[Y^NZhq\WSWU}e\abnuRX_jZ\QSlZbWUZ]]NgV_VOdmduP]eWNTcysa\iShcReccTzaaUUV^aPUVXM\VSVo^`OVtbS\d[`kWU^[{UJWhx]dbXbdQXhiZy_\kITw`ic\[fo^N]jkelc^dfGeN\seQ[l[~QrYdhZMPXs]RgM]djemZaZh_fmr`abcpbQl]gdiaded[opc^\jlhdt^kr`ag]k~naifkm[r\poX}cvceb[XYtkleiScXub`^^enacf^_wWej^cNg`cce`\fufVjR[ca[[aylbffZ`k^oj}Xt[^eflSw[}iWp[ZYh^jdde`ehmkf[\hehb_`f\yc[gfx^i]Yn^^_o`jne[bl_kaieRc^nmb|daZe`Nceaebhb^dnWe]r`hk^xc]jh_dwv~rZYkpbcwa[U\fb[fug^sSm\saSa[bpngdk^Zdt]UkmWWgqhbfe^Zyhwlih[_qoaUxhc]n_ukjUihbc]cv}``hgaSZsXr`Tnk`s_cuznno\^VnadYUgr^idnWYdt\lekadw}]`f]ie]ggb]X_`p_YhaJj[`_MJfUTUda\W_JOQkUXVipcn`b_]NSlpbhYWbWT]nmjwWliUZlgmZ[h\Ni_iY^_a]YipQd__tcc^dTxxQeaZ^qXy`lZSY[Kbk^^~f``dTeL]RibY]a[s^{c\LYLSidQ`J_dbp]RbXcemZTV_cneY^hgTbTgbf[ZTXTXYXVOcSa`NPUjoh[RbWhhbsWWRiVje]^M]]f[dXl]wca`YY^h\`ecNYoQyefO`]fg__FVkYQc]jWWVXZL[ZhnUPbcjYQ~pfVXWZZnr^P\h[VXeRRn_ldYXQ[jlciY_\erRTcXkduMqTSYR^[_Oe[Q[dbadTaUakebi]Z`glYjS_?WeWVTZ\`weN[RjX{Wdkue]hsVWmZks^mZOUcd[gyfYRUP_]OfifjiVcbo{`STh`m[RTXiriodWcM{cYkvccjYHzkmn\~oj`[SnWfVjq\pKiljaZVbrh\oYTo]]hSYV]`kafmphJUbdr]R\YY[abc^bh^XQNb{agYuyPVx\YggfcRdgieV^TXonh|RONdgp^`RRhlc_VSqgiq_^V^b`gzlWfzbehbie\QihNO_icyTvr~binUm[[lR_nVY[[YPP_lokf^elaXkb][pngaj_f]qUhlpZwZdp~bqcrd\VUT`eZU]`o}R^c\lr]`dfm\Y~X{d[fsjqS[jcgaxRdfRoiH]_kscYqaaPv`f|hnj|hVXlRO^agjK[[Rnp]ja^klbf^cilb_NnT\\[Ubs~\N\uaziUskrWGkP\cNb_yqfes]rhX_Z[g^gZfeOV^T^pQkqVmW\kOwq]cVc\mfP_o{P]JclgbYPWqsd`~g^gZiSfXvhfZw\echaQ`^ww_l^KoLmy}pRYL\\]nPwhDUafad]^NiiThjdumPZVn]i[Jj{W`ndbW|qjO]P_xyaoj\a\\nWd]g\J]dlhTdnpiaZbUQ\p^[yjjii^\aWR[^WZRgZ]aeWljmhfwrW^\XEoe]XVVURaLefnKm]cob]u_bgQK_Li^O]pchq[TZIOWjKdUah]VNiiqqWTkid]uTZRqXT__Sb]b]RXutnX\VV[XS]_ecI[emW\[e\JVmzdngnd\qWja[QPkslMi^_sb\RQ``?WylVRc[Y^]Yd^mAZVSKbcvqX]c`YsXYR\Ui^OTaT`ZUnMQhNTu_WXO^[fS`YSQ[b{IWakYehTbfV^UaZYUWXSgbcfbt\w^diR^PcNW[\\[cXF`XLfeWM]gV`k^[aO_PjaPO_s]]TbiJYkTE^]VSt_Pd`WNT[jZXX\UXwaynnUbd_bb[[pJ\gU`YX^gkNYTUVP_NoTbeOQ\kYXWkNgt[^^ZTjaZV[Pj^]_QRPcVR]QNY[NQiPbVPHTLaKT_d\aa[4QmU`qTX[Yg[nRRZ{Wn_[XOsWZVUgcaN^YiN`ZOh`UmSM^KVbedadP[e]]h`P^cbWS`JRY]^dceZ[lZ[X[]^b]_g\RpWWQ]ghYbXWIbT\ZvN[Z^WVPSaIYV\PLb`WGZU=RbFpiul]O\UaCMH_awix^VPfdwQNp^OkkeDdjYbzci[SRlhXdkVtti`|}Saedr^ffI[fzbsbTKiUnhJN~c^dSS[pdrXtb_bvbq{RiXSWXN[aaa\UIaU\cJmROceWiVkPWjRJcD`Y9QMa^VFNrYPrrcmQj`^WrgR[UQiogmS|\^UglplaxpVf[[[SkjOe^\uSPgTX`qO\pXbRp`mygpscyjRL{SQhEzilc_niWmi^~jQTXW^sY\YYZ[baTdE~fbk[[SaVj_aORkG`YS\e|_bbu^\^cebdZf[\\q|fWimc^VO\\aZvjegZura_PZhZ`^SR[jqOTicmkjej]mhTU}U[bwMW^igXg`bOVPX]b]Us_Y\ss\TV_i^Zc_\o\g_gajt_ZY]vVnTd_baVnXZd\XndnZqXYW[mc^tlS[o\YYR]va[\x`ak^iY_TWX|c_S`beTmak}epdViYhOWYTdlWwa`ka]`S`\SXd[~XsSXpnb~asWY]lgR`JYReUmU`g`e_[qbw^`aQeR\]S_k_T]YaPbbhVnxkdgtSS[cmfXpf_aeUmec[\a^knSkq[eWV`s^qv`gfi]c_[jk_cZfj\\TTQT]Z[za_r\TVMUfmlpfiRc`Y_R^Qi^YUi[p]r_fTbXX[|V_Ra~Redbog^bS[]yzh|pk\cVtzinnUQa]]UMVlWh[\oefbYbaYR\gV^p_QZeYa\vW\agoh]g]dX]dkdJeSqg`hzW_f_]Tyu\urm_e[W_`]\_m[hoEiILuhzuWWes\kqHNU{]v}qSZdWarbfNyRKXza[]}_\zedYj\Uv^o_^`Iw\q}Y^latqcOnpK[ohxSepigdw_e{cZQZn[cZXfIpead]YpsKaUeS}k][]\tdvumpjveHJ~gv]TSxT]zj^c]ceuTQguhyeNfTmdWay`ajXRrpVj\rni\fihMb]eYc{Yq`V]bchVUrVpMvylIlsbaysqr^nlofYY]daakQ`klg]mInb`Htfil[SPjtTgfqdRe^wtiqcd^jYUvnlflffrqZU\|tvN~gRttd]VfpSb`hrdR{dUioWoeyWrXaamrXq{WGcxc}tLJPMbdpYrnnUnFLyl]7UeaV\]^NR\W]jZWWemXMoXQf[cCSUMfO_p_NX^PTdgdcXS\j@[RZ_aWXdcdZncSbUXn`[l^a[]cRUkWH_IUsY]Qbfh\QcWco\UQ^RXdWf\VgPUU[dYMYIYhTX\[[]_TX\ZW_}BcZYQ^cYRUVfJSldj^cfqMe_RcQpFrc_]VjhZ_d[X[hBWYVUY[bmmxdWIR_\ZYUMWZX\\_gQXYWPM[ZSY^`jUZ[UYZ_`LXl`c[YdbWed{\VJXg[^iSR_^QJkZ[\ZfqPMYmhjioZVX^ga_TTIRseQQORda_bu[^ifVOWTZegRV_TbYVaVLMfUXPNOUNclOgoUcG`JcqtP_XU\kNbPbYdVMVelnaWXOmy\[bXgRl]RRVggfY[R^PZY_`^S]VOMdU_]jXOLmVRdUZ@QY`icP`Y^PdTSLeCTO^_M`SNMMJV[\BQZcTOKWIWONJbgcVaQYJYbXQJ`XOLMQabeYKXV^\bbgTF_RQM\[cSYZRK[THQN_TRGZPW\GPia_[^DYKRoDP`b`QN@YDZaKLX`V^SQP`[Ju]jRRkTQRfjG\UMVQPdGaTXyUL[YR[^gNETaBVcR\OOV\a`iM[G]WOcTH\^R\TdYRVdjKVR]]NL[\]X\RhLLQ^JVhVE\QRV\`TaMQFfaQR^Xa^`YPMS\MYbTZQ_YZkUXLgNRNREXkdLY^iTCsPV\SWMijOOS`_bWcLU_ISbJdKYTKa\WSiaXLRQMJbR]jOXY[TPjZZVXVRJVSLSjkjXVU_aPpKXYVnO`]__S_e^d}^sjeqabZZ_h_`vX[Zagh`lca]e_ke`doohg]fRc\`{hnlpk]wi\acWhd\fm~_\l`VU``gXbajba[pfVae_casb]jrjqfib`^b`jdkiT}TaXa^`^h[iaatrpa^bZg|`b^u[^l_g`ohkidl|`amffepnZzd`g\jgtS`UaZ^eem_ij^n_ffp`WaouhcZ[\e`d{ej\nckcZbfa}bqf_e[gt`][lyxb\dqZacUeXm`Y|cjcZrm]aobgeaqmvl\^{lcr_]^c]fg^cjjZXdgphfZqbUrl_blthXdspgcr`fead\X[]oXcnj]_b[`mWhshlfZxpd_dzbi\fybmh^btzgbqe_hWee[jng`ac^aoka_iSYbYZYUWPPcNXeaYeeYM^]cLZZPSaT``aRd_PhP]]XJ?sfPKZfXNHVGUPVoN^kWY\^LkTfU^OV[WZwmLQNb`NZvblOdy]rTceXiUJhCOi]mZU\QQkUYpqVKdbRQXY[jLXg\WTZYceZYUUXRcVYHaUB]RQTWORK]OoiV[\L^Z[\WSRiWM^jSeaPYxWRXTaV]OX[n`Uc[gVcfebWYVV]bjXWVz^cPQlFOSZTeNqvWRT`IPaT_fXVZ]XaqYnbbSs^apYXIeYRV]hQYUPJQsYUuV\g`V[YNcgZjPfkheXQLWbVOTR[YfEtLLb[X`M]VR`OOOlWdEU\Npk]^mITYcS]wHVHa^WZeU}g_YlirUbRnWMZhURJXecgkKHWW]sc]J[WjPSWSXNZRT_QJIOJ]VGOPQQQVTNTOKGSVW\WOP[WQWNLMQPSLVaUSMNYZVOPYMPNM\XXYYSOTJYRTXVUQNTNYVUXNVIQYPWZ^LRdZYUSVS^QMTOVKSHJTP\XTTLMWSNSVYURRLSMUTLHMTXEQWIXKJQXZPNXVOOR[RPMUK`ZSXXRNTUVZKKQ[UQNYOHSbMYLOT]HRVTOVRSSXZQRP_\VQV[WWWWPPPWMRNLUPUNQTYNXQTQTTTS]PYLKOQR\UVWSQIYRNRCITSQPRVIUZYP[QMW\XWWVJUML^UUNVZXV^Q`IAQ\WQSTOIPVSGLNVRV]UQO[LWRQXTTZTRMPS`W@KL^TXIXTOQQVPVYyXXPVTOPPVUOMZUZP\XRNZLPPOWUPMWe]gk\e\tbuyfk\{rk{gr{kZpkh_^e^ciohipwaYVlfbbbqv[h[iols[gjTi~hgl^ejp_ae`[Y^TZinP\i\Tyj{uQ]`f`jXMiZlpmZxQ\hR\\engtvgWc\s\gjhVewYRkPqyXnY[efm`]pbbi\cqbskuUhbY]hf{xjlcVlQw^Pd~]phbq{exaxQ`kiJcekriqfU^uZiisxtbwmYXa~k_p_Z^nsqimdk`xUeebdafxjjjj_`ViOOtdw`]norh^bf`XePm\jcyragYZ][\i]c\Qsk`^SnvneSmwjlb`d|ubdbm]{q^\{ihwZidkxhblx@r\V_c``VjfXkoo^iSVd`f\pLkXfo_mkjbZt^hp`XuaVuefrcdr`}Z^WZQdgwzRXckbP^W^tSggxj~XS\bYUB`[UaZNkTanb~Tev]gMjNrfU]koc[]P_UW[]\gaQYY]YW[RneU[YnYT}`mRi`xc]]OSbUhc_c[[FY{hoIR[qMhf_YZu>Z^_MW[USo^jlSoNcto\TbGYVsl`_[^R[eYQuPVOWPkP]iZOKTbWYNasdULfVhDNYWsY]Na^n`_[\T]ln^So\K_UVeb`S[l]hX]K]X_wTSVnr[oRNPRdbl^G{[NPX]KRq^Ymf\geqYfZthYZ\KGYLQ^ZclWZ^VcVS\Y__Dk`kX`HjcxcP\hIoeVfTQV\DeWaOObWNZq]S]dNVV[{c_l[Rk^Hoad^WUNUSXWTO_]fo]U\XpOYWb^nagYgXaMnJURVSVRYQPSZFNPSTK\TWXQGDUXFQGNL6SMMXTPLQONOQ^UMPVMOW\LPVRJTJCU@TYV_JQOWYMUPVR_NIURHJQPXGVNS_LQQYZTQP\HREVNQRWQPRVUTQZWWUVTO[TcISMPOIMWNZGJRXPWNNIIJIPMTUZUJSTSRXD=LSFLXQ^LTEbM]NM^]HT=CSGWVJ`MDINOHQYTJNHPHL]SaRSOUWUUQTORPN@F\MTLXXZMJORKRMDKYUSSMYNFIRST\FQPNXPXVSHgGXVVWJPNGTIRKJYPKGWRQMUUVNTMXMXZSMWTRWQRMQRGQEWVXR\UOKTNPSQOKMLROJVZJTOLTWLGURMJSSWOVVPOFQT{NMIISXVWDK^SYUMSUSKPUTTJ>IJJNQ_eSaSe]N_Pgk|SUa[PONP\v_^k[kkeiXOqqRbhl]v`TUdVkNSrk~bxj\f\wpSTfTc{GqrbebV[hc_^]gbf{ubfYo\f\hgTYWVS^Vb^nrhqZXXpcRfVkWX_gdvc\S_mk\eMLfS[keSscldW[\f_ku[V\alfXvcTbbSobQdW|^bvbpvXQioeVa`Sa[US]ygoY`WZgZ_WspsVcX^Y]\GZfPWeWjOfSsp[\^_LWTb^`^g]ZVlZWX]iQ`_QRZ^ST]fzPcgQW`b|M`eVaY_W]_Lb}^]ia}XOmsVebIalTc[K^dV_XfOgjNcci`ljQ[\bo`T^X`\^ZYLFThYU\YetV_cWhTpgl]ifnuSpbfiYUicQlcPOxyOsn^ff]oZ\il|_]`bVoSV_da\WtY\KYLWYMKLVfdWmjgbaYfgZcZfWSXWWZufSg_^S_ibSCYLhSzZe`aO\YbVjVaibSdTybT\pR[UYMoKkTdaryZmKbqgdU`SglsuO\WbhvTqRyeaadX]jOXfjRPZ[WR_{[]Pq~ST\JX]pWXZj]NhYdd^U\}\RZWxbYjRZZ`JzXVVSVrNNP\Wbgsj_]WZS_l\a_ZRVWigQatdaYSbOVQcaK[sdmZtGTuHwaSpOa]V[TTSWU]QcbW]G]gjtgTcPe]]iQY[iZpXY_jMOnNQalcRS\QXaY\Hg\feXYOy_`V_XWYYwSe_nZhchUNrI]YP[^}sm^aOUmTG`kh`__]bXwiokUPZc]]h]ha`dX^U]dj^M`Xvc^bZNWXegoBabiri[YUTb^]_b``PbFZPY[\`ZPwR_Z\SjZwy_VR]\W]XTTaLc`[Scl`eL^nYf[KYcSVQaR^Y`[VGWXPPU\Y\XfXcRVVXaMKKeeQYMJYRE^bTl]RST]^dZ^cLi`WbX`=[gU]h_MeY`CU^qhP^SRRYLzsYCTU^eYhVubtsd^kXNdh^Q]Z\TDUSiwZZiP[]WQWfZjTm^vUVP[jgoT\jm[SQ]SX`Zd|VTNVZCY]_MJP[][dPXKbVaSb^J^UeQ[YZ\RcTbSndOdYRaWSRRqfQQcnbMZlg``NN]lT^VTYtYVgnKZbZ^Se__Hve~^BU\TIUMX}_MhOgeSfnXNSUZXvhlRThIalM\Q]A[WEU]eZ`\mcSZdcaJe[goXY[_[WdilwzNgSTDS_}e]GRKPWfig_nPPWpYmSmTNaZ[LHXuT[^YOQnKSocSZbjeY_[M\QMdQWTWpLr_gai\WYcdcZOWLV_LwbNi]qSXLJ_^TF[iZw_Pf\XR\^bJeWZRt^c]UQSZIMK_hYa{f]YP^YZjflXeXdeWUWfaZmgRXiauuaa]bOKSXd[`RQgVIMPdVmUUbUg[UqNebZQdGYajX[W]FUORJU]~ML_UXV[V[xR_jLVXWS\STP[d[MQKg_dZTmpWc[Z\nMaa\XaYS^^hj^`RKT\ci\mYpNDYVUIZ[z[LRYmYSV`_\YXU_QPYSp_fiSLAQb__T_WnDeOk[VaU`owh^P}tZ_wklWXTVUXgUNSciXS[uTSmTdkgZU[ebT~[QFgKTb^[qflbQVOOVU_PfodcUjSRMn]VOWhS\cVfO]\}UZjV^XXZZRF\v[_`rlS^cS\jV]Q^TWN`pXNWRbP`TZQRU]mmeOT`KcSmb`bbY_UP_q`afkV|YU\ONXeZe`[UMR\VPWawXWTuH_Nfbp_bT{YTRaUccON\@KZ_lbaj]UWkT]SOawX`aUR_XMQgXbNlZoGc`bRQmaVYv]QaT[_P`SJ{tnl^_t^Uu[j[ahITYP^_Rag\_hkjbrrS^^^ue_iXWRY]UQ[t]R\kOZbVMKp`[S\WlYZc\Q_J^W_WVNgZNUYj_X@xrLb\^|pXUSaaWp^^[kYYPGn|Q\pO\kdcbX\XUawpPbXllhbdKX`mOYUWRoXjZeKjSOTLexrWSOdtaY}X_Dfdsfss`Blhjf:Ma`IaRoffgdDb_pvVmddqTjhlQ`bm_wB`~tPhufoNdidRcvPVhNahX`ZoO]^i?mDQuheb{|_gbpw[yybQaLllg|IHs}ertk_y{jwVhvz[~yTzgvTj]rie``qisZjijlsPuytoTaqncb`lpvlhjgipdnP_Id`kf`WZq^Oh\^U`SnQf~Sya~n]g_xk]qwIh|iji_siegZ\UhddXiUaorMeXu}Rj[bt\SYwjS[NvmTTaudfe^v{3Y\hL|d`zIxewdx^t_VpYIz^slCbi[gTWmBaQ\oV}qYXWtMVlM]fyZowDWYn]eflpfrfWXlTRJjWJ]\f^S_PWpcR\]XRUVSYkYYfd[eflZRXaTo]cjZhmfZK[c]~hh^djmT_P^Mhfcbw[Xe]hJUUPX\wuWSVWcYTVh^S^\[cnhioRRk]^HrTe`QPVZ_\XcXTcUdbQZqJhN`INFagjfcfh]kKJa[_`SoVkMTjPiQb[\emqpfEcNSr\aTYKZjXMXv\jdQ[aRI[c{bR^V[WFWUXY`hnm_O[Oo_iM[Rs_cdj]clYWfsTiNh_Rkj^O[Z[ViYVXpbgVjoKfScQ^V[Lm]ZnyZu^YQlVS`Q[UK`HaV]sfQ`cXSkqS[bc]ia[ccYh^TL\bfRh\SZXchzdL`l^TY]WfiZfgPZd\iV`Jf\]PVm^`bowR`iOkiZ]\YrPbTlwRWMZFTISbXg][mQReTOPNeR[bI[Vq]YYRZhJkebjhFZVNWV]OaIuhaZcRoZ`VVS_fXW]VeieVeYReQMHaUlRYe^TkSYs^VX^yieVORY_Sc[hShreRlZQ]cPiQhdSWaI_OfWa`dakUcUYjWQ]WVbZ_dPimXEYMgNxhP^T[b[Yj[R_a_VZYWXuT`U[W^fda_qk[`PaY`behTWe^f_iUX]XHkh_hgo[V^DSZflaLUbn[Xk\VivJaekgsOZZ]Y[daVj\X_caNj[_`bbafYS\rhcZaZqfyLPUW_k]\y]Kl^_RdRiR^h\DU`RsW]`mWbRw[]WiZDWJiaHJekVaiSXUBTmyfQ`ZdlnSQP\YT|VgcP][LHee`K\gto`]P`w[kV\]ZOKeg{g`^]ZXV]P_XUntbfSbM\h@[UeGb`XS]oeqg_WNQgdvV`OVQTTcoZ_]`OWb\`g^h^K\[`l`q_dUNkZZXX]adXeIORoOcNYcEcTZj]orQ`N[_VimoYb_QW^WMUP\oPNmedWfXIWqLHUJrR\h_ZsVHnHTJhQOKRvisSSuVZSIJVbOMtQWEb`Yk[]ai[Y`q\mQhXM_ePm]iVU{QePYXf^VKl]Q]][c[W_i`kT\NObWdrsLdPagjr]^YlFH]Mm\[p]ecU_^YQcZShP]adi`qN]XmbHEfTssnaFc~T_Z]Nqg`lrKLLbZTZXVF_NL]UWrNeWY`UZR^_OQYRWkphcWIRQOiXSP]YRiVHWI`pKseVVoS\Tjfhc^c_c\hf\VwH\M^cP]RQa_^PQubPNgZ_^gWXBNl]VZjgYgUYcQ\Y]NVR]Gqp[riYKPMXk^[g_[T]UYZQmhNLUg^WVdR^UchYfQ\hPYjoRm_YWh_Y\XMT\RRyVihX]i]QMUV^TxXXgmZ\ZUgcJWo]KXWSUnUGf]aVDTehINUBYaQFN__X_JXLTYtbRKYYsWw`Wb_le]ViViZjZ[qI[LUUf_UVVPITbPI[_[r\WYJZYmSRTyaZd_RPUayPWhO`SHXP[XURZsKV\OvyP_WOheP]YPtZdgbkZ\jXtPaGlaW\Y`daOkEZ__ZswajZ_YbubTbZulW^ya`gX_di^pSZe[`q]]g^WbaZ^`_`yuqqca_chdpZyVTdZW\[gZ[O^mUribcS]Ycc^W]Zu^kX[\hafb_V`qZZbvOi_d[Sd`RkWchcfTpUdZep[gW[chU^r]ffobR_k[dtq[eXUP[j`][_enO`Yleif_gTYkdlV`mlUvQZk\inaelfUxhn^kYfa\_hhlrcYmVZ}jbhi\obxS\ez\a^nbWMp_dXexhsi]Yj`aaq]Rdz^V[davsu\of_`^Vf^bYh[tgm]yOvhZ`mSOXgllveS[lbrcTb\QadRrosca][ihbbW\U[zX]a`fabonnVU]k\gnU__l`ffW`v[dWkc\}_gh]Vd\ae_kjogYgWYavnm_`\o[_^fe[fj_YsfwhOdffugatgmil[brzihT`di_Umb^Z`^YKd_Scd`[bfl`yno^ajabh]YiffpT_T`eei^e`[gl`q`Zmkl`r\fawReneqicd_lZ][b^ZWief`bcakYojydn]g`[ag{_^^ccVVVoi^gbneb^m_Xcdiuda`dXahg`k`YnYd`q|`zXfZh\fZvZUiU\]bIrl[jYfPb_Ug^me[X|dZhjinc{naecdd`YYNe|`[U]W]of\`lU]Zi\`mLghf_e_ff`wQ[b_gi[b]zdzY`sa[bdmUibWfYYf^g`X^Vnqea^e|\rkatc[VVc\eV^l^lhceQU_b]_S_dpt_c_qVmYo\erUggen|Uy\ie[U^n[h\`rbcV]ermcyoRcjzLUblN[]r[[WYxbg_pc\hgfLZdWKc_\aemRY_^ndfeYU[TYQ`UdeWPV[p\YpgT\W\acTGTsodVb]^mj}oWXdXZaaVcYxkaHQejXY[]jNu[Za[rbielcqH_o`VUmfmVf]O[c[hZXMAfZfd_fjdDL]`dlu`VPba\bKiaaadSpZ|\gj_]_jWzg`Vncqsej[semzM]]h_LXSP[`MS_fjGYgeLfdY]cl~st]^WhgmpbVWpVl]wbppQkYbWycZ[rXnrndXSlPS\b^dum]UMdjqb`efWQwrFf[]aQgR_uXb[`PXfZ]j^\gR\\X~g[\{RsWVjH[f[VrHl]Sag^TeWbg]pabzdxc[dggU_UTXSVTeqVaaa__wX\hhl_eX]fehVc]hXsb^ecfXe[VfSXWju^`^apWYzmaS^e\m[XjaX}Y[qQR}xZwZgWgPXWYV\XpbZSRad_\hafYflWR}QcP^b]b`sQ}JQXalnNd\f_g]hhXhktNtyVhiroSVW[w^Sg_ihjeQ]eiegYhUnc\dWh]QT]fg\]a_XkPRxRmlo}\TOQbeYr]^dSaZc_NoX`fgQSm]UMY[ehTeRc_V\KfcierU[fpegdd`^kieke\gZbNrXn^b]_VbehgSpXprTY^lpQTcwbIgi`scQY^iXih^Vln`]S\iiZb^XUXLZ]d`WhWie[RVQQ]osXU]^aaOlvYWT^[f[mg^e__bLoW\bh^dXmpfQQaXevX]XOYaog\Re_jgTa\XSYh`[qX^VWoiceT][Sd`em[TQVT_RfX`n[cRodr[\Zi_[gTl``xWtiNJ{WdkS\_RqiaxS[aKa_g^`QW\]`Wep`z]^S]ZXU_OTZVMUNY{^VMfZ^klRofSXTk[cSthdj`Q^]Ua[sYb`^]fgWqafPqYaSYOWdeUlqQi\TdNFUeV^hUS[mt]ivZVYghcTlp]]ZUPi[fVxuP^mTRjpT^\UMkVSofO`nPj^_^cZmPTbZhR`SuVoO|_\md\WV^TQIZ\WFmfi^ad`UiizR[lZmec[^HU_^[hYSQR`\ZWHS_[GQbZPN`_W_OTY^a`[kVjUhgLTR[ZhorV\na^\VO_T[^W[l[jSbbPTeX_WhiZZuyn^iifdPSZXfZ^`O]VOTRWUVY``b^UOvd^gWb\Y_XjZZejP^XSXXPY|VWVMFHefsNR]PY_\]^XqXfRT\b`OaZWYu_]VfS`SPLhqmZp`x_S`iaZhXYndZta`a_\kI^YU^cXXjU]eXZkXpkffUQ]Umca\[]aq\d^fhXgQ\`Ka\e^a\`UfUybn]hR_XXfV[aqqSYQMXWK^gWMZ[iX`cOZ_Z\fH`j^aNmc^SbZYlbUd[gXs^UNTMYT\K^HRe|XO\e[vdg]UXZLvYLea[bKclwol`gVhWVbUai^dZW[`jnan\_ZQNdgYPaaUZ[_lPS_Y`X`^ldQ[O`fbVc][]gfd[UcPqgcZRfq\eZjz[dnlZUdtbvdmZjWXlgS`PXW]dcZhNV][ZKaf\FX\PI`IczMYmNLt`Pc^h]hhHR[VgNT[eFRYYRSSNai`wUVS^XZbqPPR\WWQTbS`]NgygcapW[kXT\FQP\\OYg\g`V\Wl[\[b\\`kQUfH^Rs`YSUbVXRgRQUM][LePl[`ddJkijU\Q\XMQ[\XcdQTfhdSOeSxbUK\]kAX^NNdeRMN[s^f[XWWa^RW\_hkRVw^bSQn`^ffhSYYPVNTVMi]U^mWi]UT\hQRVWpHIXjSWT\YaX[U[dh_OXOV]`g]RV]XRZ`Wh_dOUOUmv[SE]YK_`Rc`UWRHe`N^YgSgUdNR[NP\oYPKS\ZmYWZmY_LmdXcvZ\SeLqfmMiiiYSbT_lSUcSe\gYb_OH]YrlNXGZMUUYWSauU[TT\lb]r]Yt`UpNjfPgaTROp}w`ycYw^aYZKS@YJXOOuu}loZ_h]_ryXNGlbfcleaGWifBhXwY[ahncGaSqaW\rgaNEhpQf`_rk]UjE_zGjVFmoqzWWQM[aXdcfefSlP]\^oo\\jhq_P^ofXRaVZ\EDb^MZT_W_\maPX\^eyX]~fr_[ROYX[S_FPuU[_XFWb[gX^XZU`chKfXncmdWRpcQj^NZ_[sGc^VPkTjBm{R}[[UUe\TlcZhAdYNYgY~fmiLb[kdriXpwMsS^lul_xoa|q\g[T[fSbxbYNWCVLrQm`diqlpciPl^s_^g^VKd^elpjlmcHMgZOdHOe\LhpulP]V`cmRZH~^QwcD]^T^[Q]{SMWfRleb^hs|PWTf^b\f_jem^Te_YNXfZi\Uca\oog_XcehT[o\YVmVQQ_giVe^jjo\rdZa[^][RqZ\b^dW[ViUr\iaPT_VXZ^SWY[kbka[m^dcYcn]^c]_\U\gek]e^`^[Vl[\femQVVSkVY[V\_jZ`Ufi]c[eZWe`cjn_aRVP[m[c{rl\hh[^hacdd\fg\UZpZd`jhVdfZSiQZfalaVcZcc^VchW`yc^caab[_]]`TSdYdUiM_XT_Y`^e^SmVU`ZkoedX_nciS_kh`][_fWck[VoOOQZ^cPwfX`fte[Wny`_aIdYWw[^QZZjdSPzh[`lcsR_E[TUeY\l_c^_bd_Z_U^[UPe]gczYOkW[cd\t_a`f^ZZT^bZRZdZSYoecZo\pn_YHyVQQRbZROdIq\_VY\[RHOKI\NQRFOS[c[dfDs[hk`KikeTaeVY{SaSagKWdP]q[UuR`UbZs_W[l]]T\L[^WZQaYNXbSQ]ggBeEpT`XL[RThRIbY_SZ[X\VNxJhYCSbaTa{URXP^jSYlanuT\ckfQXn^L[XcpGVZtmRX_[PUPWRYhVacZtUh`^xbTXU\oJH`WhgXQkdeWtTeHR\O^Wb]OQ^XYslXP}X`PR]QVbOQ]Z^W_`[\dbKjdgOlYhdob[XU\XXd\f_RTl\T_]IYc\\pcV^fy[khVXTX\WSRObb^]P`TXYkRW]p_EZ`]WFK`m]Wiw[x[WSYW]dxYeZMbR\_RdUZOQeocdbS]hZVVOVTOqZicZ_Z^WbkoUsVPb_cQRaS\oxd^b]iI[kShrYKpvTXXWdfciMacanrjdQJ|WUS[ljc[MWtfPcemtSJle\ddjlYPb^csOibfiWZ[nUgii^_l_kU^MPm]cX`RHPOaawWTWdplsYXXvShh\nQcRNn|aj\eQnNdhMJSkXQP\Ts}ey}PQ{aQwj_R\X`eMjKR`]SdlkR^|Yf\Xvd\U]YcNp^ac_sp_`}s[LWqfXFag[NFtRZOtb]hK]my_b[ebZ}Q^sYbfagb\YiVcYokfwVpqvLfZOz\bbZQgRUYP?rcVFehcI^oftpbz[ZwV}|j^_Z[YUPqfph~YmXc^hX[EXgaNZeVVP`^Xp{zXlWq\{\\p`UTaT{\\cxyuPdJ][QS[f_Ss_XVWNMt]_whlieUi^oTh_Uqrw:atxuci\^[XzJ]hv{[hzu[MdhlU_nisdkq|SUjebh`YM~RkjlZ^T`fP\EsetuIbQYh~hpfTdS]Yh_SbcognisY_uavbxpaFqesf]_uYQ[fa`mhZ`u`]d\l[{lxhPf~|do`Of^ZQeNSe`\KqQ~paTVUzLcxEhl_VdVvYWg]wlpZg\j]bZcw|fazak]drMmefRYRqaw^Z|d^l[lgpQOk{lheNfM_rnPjXZQ[Pncml`gJVogPTovP[VZYXVk\nbN[XPe`qYX[q}omjgtUorLqLXNZtk`_heGZp[gSLzw^Rd[WN`Xbt}hdP|VV\dY[ARm|UZUb[cDdp|jRemW]ygOrb^R\uOUagcmRuUgTMYi^dfdkutnlJ[eYTaRMYU^[~ed^d[MWPhrt`U]URe|R\UUYTYSlOllYHgZsh\gPeUXg^YbwjjaUfEWVX_PwQ`ZtqZUZSczVnmef_mTbdZYv[tgYVVoUJbNwMgVXje|Xdg^^gXTW_S``eLRPRZYh[RZ[`bXZnUbbfb]M[XTdX^[^Z^[un\f`UWZI_vZUfi`YeibUyTZeonW\XvXieVXdaVLueR{hVC_RMMb[_^RP\N|]XkaNrKzogdc\bCbZcddSY^Of_j[[NMVW_j^gado`j[c\`HZ\b^qX\Y_b^geRgaa]lf\i`bWiSec^kWkc[^bWbf`\aOgR^ZcYP_nS`Ka\R[U\\TX_]Qwp_V]oNXRdabrdka[ewUbh]lphZVkuNZ_hZbTZ[bM]\TZiQH[ZbkZWoL^^bQ[DX]QVSFU`\_a^bIUVXuQh\[_dVPXNh_YKbZ_lJkhNidfP^X]Uc_eLYV\QTXW`S_fcY_[IfWVWZiXWWcdPQ]WhgdbTn_edVbVR_eSePbXiU[Va[NVZOcYAM`_WYgSWXtYW\aQhphq[S]fTg\TnNdQJlaM\_Zd_K\USYU]]dVW^^SSGfZKigXUTg[ZK]P^MGQZ[iOPXbKTTYabM[UZ]PZJ\dOP[VMG[_N[`gROP\HcS[ZySVh_[Xc\pMhQiSQeZgSSVW[WKQcXRLseXdQWTmMCQy]ZRSq]GidWXaQVP`T[\fW`NT_K_RNT[U\TOcRQL_SghMdn`V\Zd^TcP^YLQTSaZ[bhQsdMTKRb]Z_LZ\Jc\Wt\eGlVYvcp~m^][bSY`wL]hoYePMOc?mO]Q]QK\WiXwV[J`_UeZfXnZTinTXpSaYeRRe\`UoD`YVZYXU\ag[DaHVTJP\gbd[QibU`dRYk[^hk`R`RVMLDXbeUTedPXWReVHmHyTcfM`NY^[UW_ROrX[[cXU`h`d_QZifcZUiWRlVf\cQb\\`ZwjZVb^ZQeWlZEdoleciVWg]UlWOQ^pRUX`L\b[drjUud]r\wVSicd_csfL]Zte`KfPfKZQm^iZUVSneuNpdiH_\VVTougIi]WV^iMUO^\m\\JYgSm[fnZTN]xWfQOX_dU\ocbQTUVHI[joWQjSusm`\^b\^Zg^]W[yHNjcOON`cXTi`WesXMYH`YlM\ORWnhQcVWTPXT]T]iVdgjLQ^`ehJUMPAdaG[ia\UdV`TPULPZW`\bbXXXOTYNY^[sFWNXMF^RSGJXbVS]CQ\Y^QXNWSbRf]JKMK]UIaXCYVPgMR]uUPKeqKHI_ReXMeUYVYPVff`hgPK|SIgk\VjlWW`ZuZQ`XaWPGXKYVbYN_`R{QQYcVKOga_YRH`sGbQdYOT]CT^s`cVpc\GTSYOIWbbRS^FQU[aeXLLPXMNP]_VKRXZYTCGNbhg]cUZPXX^]SIPQSYa`d[a]ReXbEQi_^bVSQbvUT^\\PM[PG^AUPdoUc^tX`gYUrgUZ^]^Ng[W_`W_RBZbR`SIAVIaLjhYNWP_aguXaVlYRURi\YQfeSQBVT^`kYQVO\W_`TMQO^SZV]bQ`Qzk__nijbZ`[Le\Ugg`VKVl\VU`SaUchuUZ[PS^_cZX[Y`TO\V`\l|[VUk[XRa[PWWZaXh[W]Sn_dci[^~^nZ]hPfTUbOQSzge\`^a[bYP_Z|`bX\gRRYXhaW\ha|_bs`S{[_jXc]gaPTgZjlI\ZklUSh^gHYxg`YecUf^y]QX^M\iPX_UXXTUU[q[QKWVRlfNbeYYTP\Z^[^PYsRYT^O_eW`c^aXbRWVa_ndgWVl\PQLnMfTZb^L\i[]g]X}ZXL_\LWTLoUZ\S[\^KTR[Kf\YWObzQ^^gZ_\lUU\UQ_UbaTX\TcbXXYyodk]_g^Se`lkeg`Rgg\xvWx^rq]UnYWFlNiX]hMbYkXTV[_dXPeLtr}VMWTRhMZiPcicaLY^ebpWMpjnOV]LVaTYV[V]\MRbS\YakPPYJYQDS\UXORW]NYXCLNSXYRIZWDJPROY[W]UYNfWTEJTWZVROTMV]NT[IXKWTJZ_NXPNR_J[S<^XH_PMTOOZX_JMXWLMVSOLS]XT\HHXZV_dbUARRNUGPJ[TYVPIR\Z[QUWQTIWQLQ`ZIGNjZUSUP[MYTP[_BXKYGWOISRJRN^JaQPO^W[UXM`STNZLUWXJ`SJWRYUeR]SWZFRUUQTNU_bXRYQG[QLSKGKKLNcJV_LVPRK_MPN]JZRBHM_MUQTMP`PVW?T[KX`XTZNPJQbMMXMU[GX]T_IUiWPKeZmNa[TUh\ZahTpTuTimYb]M\avJb{hT]ZPZS_~xQuYMQ_Il]h]`U^[`_d]YldraW`^_UeodWmkXiWP`^L^M`h{R^[Y[_miYKabtUlnfdFPiSKi[Q[ur[Zj^fqgnc\wG\W[w[fgv[b^^ZRM[qkRYt]dcLW^]nXH`[]zdS]]cThkU]\_dhecg}WanR]}ijYZVudgnjHf[TvUswTXsfhb^ULVeaVOkWdN\mURjr]]XpgflVQgfX[[sZwi`LS`eZiMj\h__YXYYBS_WX^p^cW[pR{nhaMY]d`ahcZ]c_k_NTJ^]\fQ`kymffVi`VtuWgbal[a^^VPInp[hagdQcTRZhf^]Qf`Rcf]YQTjcS_UX\e\GjXbVZ]hZVeLYW_]]bcSeUeaVVgc\bTZJ[ZaaVHbXVW_\RUjM]Uba]S]a^VWWZgScUYWaO\VNUTZUPYT[dUJ_THZcVfSU]Mf`_Mh^PK`ZZXZOJV]dF^VXSXRhe[YcQSa]_[dRaJX^^\fjWZR\N]WRgLTSUWfRYUR}Z[YaVMkWQTT`RW``WZ`QTSRQco\PPOW\V_`Rfk_\`VYVR\ZW[VWXW`c]_PYPgc_b]TWU^\W]maY]YLVVYOdISVZj[KbaJbTCQXaaOaLV`rQWVO_eKY\Rcio\RT[TFgTkY_VOYWf^ZQaWZ_f[e]W`XcWZYDQWZRM[[Ra\cOWe_]TXkWXGs]ZM^`LOUYIcXfZ`Z{UVLU\`XgUFYcPg^\^aNdZbTj^VGWKONbaORQM\hHY\gOe_onciZ]Za\Son]Sv_i}Qo^ZaXgkXX^cgi\Pa\r__spXZ`YYg\VXhbqehjW\fbiaWS\bt[ZjZ^uU`t\j`V`iae`V[_UVgPi[U[\V[g_hheVVuVeR`aech_Vg[cYZZakoRoXY]_`Zofh\`yZe^[xoh`ObnYOfdb^_ctYfZiX`[me`cf_hYZm`cie\]ce^__dgm`h][[ZeNS]b^jo]Ycl]d\Qq[icoThdacwRetYdaeQ`W\\h]\^Y[q[oaX\W[ibcW]b|ortfma]Xf\[_dbZLsSbXQmojer^c\dUjlk_[uZe^R\_kjslhehbZXaoZfw`axhr^PWvaaeZZUd__oagcm]jWVX]`a\_VcYl\`TWuabbWZaUjfeMTFQ\\RQWT[QREUOO]YOCLQZ>MLOBWUSKFSNJSX^TNJLEJQFV[QILJ=FOCUeV[OV[GLZUOdaUbIUbIVS]R]WU]V\NLUUSVQUWYSXXR\DMN[REE\R=MDSTTQ\OVIOSRNUDLPZNWQNQQVTQFMW`UVRHZ]QPYKYF[c^_bXane\d_T]_tTaP]kTdjoZ`zcWT]Qpqd`ZW[^T\gYvY\TtZnhfZTc^SSpbRbQ[mfbjXZG_pbceT|LeWR`IHPkdba`oZyQQKP\^PNMb[H^PWVYQT[^L]j^RgYUssn[Q\qra]_RkcOV}PcvJbbZet]xaTO`XdKqbR_hMUjSc[TWSjiXfWP^L^T\Fd`eMY\vNfUpYH>VahZWhTKVOQg]M`XCdt?]bVadRsIn;YtX[ola_X`\jZUZ[LiiSRmZnVyhR|IjZcYtW]Y`XWSJX`FU`PXVcfkhRQb]QTql_LgVcxMbVW^i_VAC]c\YQGPLQRFQUTYnZXKF_X_O\W>f^LDIXRPaY@G[QKJeJLPRLB`M^Z?QITS=KIJOIV6^cSF^HQMOW@TXl\^HITRaWKNVfP`QT`e_XOQHH]ZbX`cc\W`?TU\hcHNOW`UaVBVUDZSONGSaX@LFEVTQZIH^a3cGWWQNNIHFfXVZGTLXBeEJUN>MaLEEeV?XLX_\YJOUZWO]LGkbJrJZLQPQFP;PU_@a`f^PPZJzc[CL?FH^OK\YQLXRSOk\JGO`SPOCNQGJLLB@V_gHSTMPGZYNw^UFA[PMYQaS[MoQQUNSMX\_aOGdpecERYbFUAHV^[R=MR[ThWfZUSULKSZb[DGGOSLQYQbHWEmGav]pMdlNWwp_vk[iv]\C}_aV_rdqae^Q]tJV]Xu`rjdahn`InnbiT}dcdcmjLajNds]gWl[dfpZ`Gk^cp]]kevYbTpzfh\adXuxfgdS@mYl]eOKmbkvxiRiYp`aJ[biuJesb`umcb\\aXmSpgnagzfyhkznrRIJOhOx[uc`V[[rLWoR\`kQdlVgewucerSe`apJRr|yeUKEDcj_anZneNoUpbwoWaqrxd[X^gvo^iK[`tJx~PYg{oUpeqgVwgxhKY]jQ[lpb}mmPydfpbit`YnUMdsMnb|lxRwswfg\^mMo_`f|XrZkVlpQ`hi{7omhbX\jVqwHR_UehrwxsPog\g^iSFV}ektZdk^gSX\XQMVQgkdlc\WbhclVQ[\`]]AOm[zh[X]QWfbNpO]UU|fe]`r]eNhbiZgR\JbcdTapZb[oSZifXYerigWrme]NYYA]_W[gY`RIU\]YZnViUM`QOhqQVcNT`]ac`G\^dTJMPWBJU]eNNhj_WwpY]Uk``YX^n`f_mhh[NdPVfVlcmTqkD^gJ]Pjs]_`NTX^IPRZROSdcQAWdYlmGiZS_GhhbqbTI^c`VKci]WjOVlUER]]R]Hlg]^[]bT[T[QqTl[qfQOcYSmS]qfdGM]ZjdpJFUWfx\h_]OXK^\yeVSKlUQFQLic]^arfM^YagVt_cUdPe_Rh[}ect^N]djTR_Qe_`XehhkXSai[RMmnJeVy\WkeWWb\VkTIUTRPs]YidSejWctgeotcgddm}^t]XP\blbl_gl_oVX]`baaVZ[`gaVl^xgfZdbiW`_`mWr]\gqY^Y_acxg]Yeaffjza]lwi[emmWWa`aa__^Vixd\Y]\`WaZgUv]ocgbUo_\Rphf_Zj\_\YRWYmc^^}i[eci]jkZg`W\]XSk_]^]ddYaf`kU^ptgpbsd\Zcm{UI_p_cT[X`nbne_f[cZ^dcewhrkaXa]]aoZ[cnu\_r`ind^k]SZahX]hgXUf]be`V`_fdhZu_io]d`sbKc`jXbaoaYd\jht^]X^p\z^zhwhf{dO]QjlkkgYa]Zg_afjrmUafgplfNWUYi\gbyng\cgThkUskkf_XZbhnjncVjglge`kZ\`fZmuVHl_`p[KwEngc]t^{A[.xfy]Xs{[{S{ihbsrWqndq^No^vtkdidLNSamqS][kzitx_qii{ktpkp~~zs}]m|bQ_ejSiZo`UckWnhv~tQLvaU]c]^n`opH[pDsPkX{t^jnhURcv[vmsQYoo\hYkZNZNyjsiEYd`~jc\kecof{ohTsy]d`iijuZaShioo``eVaVk\J]Wjqlo^wNjW~y\g`{ecKEbjLdimC\hXqd}Yafe}ol\lmne}prFfw{Dce\ohCjNSceThjofz9dUich{g[ifi8ONUm{qdn`|Wa_nbmcOMsn^qqjl~osbn|ahgxWbMZIfRb^cpcetaTg]oWhbhNehamflBgogopJX]djW_LfZ`vupVg\ccUma_rc^>gfIogWAT`^bOr[R`XdbcODZAlYaX^e[T`A]SQk]?ZmT]qVV_m^`g[fVHQV,`m_[xMpxY_[l\[icun^[dgfkaUl`USYktbUudPYKLO~jfW\NZ^(eVZXDaeSZgX/cWdsYpX`PGV]fRMPvV[m\Oc^]Dh<[2kc_RQgdh[dVZjtcsOoqbenS\cnd[hYD\KneQ[Qh]U\mwPUZDWK`^cXx[Eug`Qlx^Oaf`^?SXb@SfjqGfhk[qci_c~FIfbT^?`;XfQ[dri[TQEKd_bHHTX[}c_dS`nTg_F_]k]0j[fXea9WVPpZn_XZALHeRmWYqhNIab\amLk`[jt{fhlhaUapdaYd\e_bdX_f_Wai^iRv_fapejj`iltw^Z_X][p_ojScpf`[jpcaYb]b~\_ejyUr]kb]nbYjt_pwL`YpdbcbVY@`bmj`e\T[l`bk__OaibXl\\WObYb[eYTn|^jftay]\_\cka\^b^[udNj[c`iZfYY__^kfWX\rajV]gghc~jb_[Wihao\kl]`c[Ylb^Oq[gg[Rp_d[_fZqfcbd[f^_c]a\^_Wi_TY`_Yek{Uj{]dehhdmiy[Ui[f`plVgUm`gUTieWVYeWqc\j^cgqT`ZoWfS]g\\\m_}]^egSqpf]ZWzY_a_]\dVt]YkXmv]agqzhQh\j^blzc]u{bofqia^_cft|jtcgsnntpfdmq{u|qysyhghdrcnhci\yjthh|krkkqclxqq\qgayvh_}rssvk}_he{Wlpbgmcakeetatgqvc]tssvjfrwl`srl{iymnqjiZnhbt}rnYozil`q[noqwjxxfqitkdgdzcnZWvcgrm^_ehgdbewhrd[dszd|pp^pehsefsdbmjafply\hoqspubuzmljqg\aiq`jlgd_mbjtljgWsxwxj\igmnc\dvvSnjh]jxbnp]bj`lmdugrf~dvqb]mSinnfcVect`pslc]Yri^huoueel]pjpb[Xiyfbuu\tqzukmoffpiiwrknayf_kullvjf^c{t|lk\kllhwzwdzggeo^_i^\Ye_fjT]uS{yWWesThpZf[^ucRmjZfaex_dpmsh]ue\`XVS[]\hWq`Uh`n`fhzWgUg`azYe[dbtUl`hb[lhiwxea`\_Z`od`XZfsjr[ZYYrgP_Lavn`hSwbn_iq_Z\n\[rhydbuwt\W\hfZksaWm^m`ZvtYp^rgyTa\q^hkb~\uVm[ivmhg_qncztWn`kb]\jhsc\rg{mm[[c\Vsbeaft]`xas`ZlfT\SgQS[Xnifabo[_|Wpqfmt_to^pb_dggl`X`N`__jg}tm`]WjeSaPapkbecd]lXq[p\_^_lcg{wrcktPhuQLVrb`_rqfWf_dkeakcf{jddM[la]\rdow`albn\Jnapmj^b]mrjJtTia[bq\F[TjYOfTaRYXOP\a]Z_w`eW\NXdjLfd\``UTqa_MLQ`adtj]{Wbec`lxeWQGhdnlSueSRiXmWV]VcUl\X_NVj\]aN|\`mbZlNhlqUZCWIZ]ZO_qWmSkV__XSg]]oyH_ZU^^XfnNNbRojhZDH`LtPEnTR]~Z\eNYg{kRHduPaUW`WoXWbRNe]e;pQWNV]_Oa[ynYKlxf[_RXTRKdHYYbV]TzhdP[QQMVPrX\^lQ`ZaScZrsbOZdn^{\XWIRU_NSMaQU_omXJsjX]X]lU_SZ_bmV[l]XZbgudiSvZkqXY`Z_RNXr[VHMUS`Wb[hd[WWZfOU\Wga\h^P^[UEneYW_Rw}YMc`]d`gSVRpeQYfcPZ\ecZMxYZR^^[RZnc[bghma^_lqSeOo[Oeb]k\^mi_foj`gR^\fgOdXicQ`jKa|myt^b]glqhmic[Ya_RbSrmS^UpcO_oWihexbdgaPV[Yd`YlXfVn_cZezQidXWnZ\XT{PcP^iS`a`ddrS\cZc_jGiQo[hb_uVh]lZYbVYwuYcYg\gV^V_XY]GTn{]_lhrhnNXWTqlUfU_fjTP\cZ\qcrV_QNlcZVZ]PW^sY\i_]nbhb{]XatUd\\di[ahgfndVaXUoRWNSd`^TfbUZ\[Q\vd^_dlYeZRUjdiX`dZW`j^mgYmuU^vX`n^lHrYpU[skkcf_gY]moM]fecXb]V\Uk_cpXf~T_blVh~Sk`cU^eY`Xfdd[u`c__eZj_]tbN^b]xlYpUigdagjamevd_ophb_h]B^aXjaSYYbur_bya_`[]`bljdri[koedbYqigck]jbdSgs_U`F\^dl]hg]oawel^j[va_ugempztaZ[[`f]LXb`g>i[gbcihLnV^bSYlXaJS[XVfvrm[]X\k_sm^rn_^d`bRyagZtrhl`fuaalYdoUYerce\jeNU~Py^_Wgngdntdp^e`^agZyfRraX`fpdyhg`nmg~`]\eW{ybWexuqZUbTIQYdwpjhaUt^[ac^q]v~\Q\~f[\fVs\gtv[lujcg[htUbUeRbQ}^_a{bEbYvjTcUnbjX^OdeTfkShsjnabS^eUVcYUHVViUxi[XXZkafUZ`X^XTaYpeoOr|^`Nvbbbdeoo]ncYtqg]\ideWKnV_^URSQVbrQhZYWmRNd\TKRMWUY]`SZYRQVOTPZObd^cW]?\gcY[PXcgvdYk`YaYVcIUOiWZ^_UW\LY_Ehii^zOhbU^gLWOeVaST^P\aPc^adsbYCXi^goSWZ~@^bh~g[rXiVXa[h`fTf^\YLiRXWuoSaak[bdZvm[Y[iW\\_h^miS[fR]RyOIcbNgPcMkXsf`xX^[nahlxb[{Mfa`Y_ZH`NpmQkNTYimXkeaiXxfa}mX~WisSSY^XV\\X^_[[ObXbgIZlNMP^[MV`]YWw]OXQfUcN\Y]S=HVhcXiHjJgMUb_\XRRQ[Rk]SlQ]x\XQUOSPVTcYZZ[\aNVmSeTSVHafF[MWcU[|Q^VVIZYn__]T\_TNYLkliVSTW\[NKcPzpgKmHZ]LNWeRSJn\OXXZSqZjTWHijffa_XRbfXSZ]pymO^\LYO\grVdZOT`kgPTcQ`UX^WZb]VLRHSF[^VTPI_RDZ\YR[^MRPZuSHTE_bYxTZUXOUE@]^U`cacMTeaSQOI[\MlVMR\WZY]_U^RPQQnU\fOPVYoY`ZeZ_[^V_hQd`T`_VSR9TZbUOXce_[\c_ZU[afdi`dO]KOUlc^TPccSY\k^IQT_]N^L_\TYSfaIY]_cS[jMIWO\X[PMT]KV_aXTTPXY]fR_QSWf=\VkR]TJYn_[dPVe\a]V\sncabpnbcY^^HhWcPV`ckTdXZtnd`dIZI\Z^`ZHSUacYh^Y^U[[HFW`_M[RakJUXaO_^`hfeYKR^Z]V__V`[dNcj]JVQFU_X\YYUcYb]ORD]^\_Z\YWfd3PWeJh]aY]VJKaNWXIbKiIZQ\bUbV_RcncWaahPdgavXbWW]jkog]Wbibsh]WhaZm`ieaY^_epff^midfmScz`h]XnWkXljYa^NScc^Xcfk\e^dh^mcb\ggfeYg`b^_df_dmk]\k]doi]Oei]^Xf}kkjps^`d[]XbjYaTlY^pc]gsXw\TZgqZYmklaZ]We^ihXkaqhg\\bza]^dmf`[rp]c[|mRdU^rV\f\n_\XiTcthohfaaXbdk]i[bwbhfmdfcofaaa^[fYc^Rabjcmmpvl[k]v]a[]Y^efcei^^aegmpai]U^thhhb{\djoW[ghjonkW\wafk]`acZxecdpZcb[\cXRgyccZa]f]gyircVbu`dTh^\]mmZed_Z^ZnRholaYkcf`]WY^nt[Z^g[fieVaa\[ZXVdXdWWXa_Wu^UUc\ZQ\hm^VfbTUTYade\_Q`Z[Yn^N[ae`_TzmameYXceb_]d^Vffa]bqY`deX^X\ZWo\[OW\m\hN_fVPYW[NNmUTpek_fe\PaWXc_Pa]jSf`c`}TdsYUUVYR[aYmx{XWPegYcWX`iUefYh]^iUdeb]^hZhUbktTbSa^Y_^`b`khb[^XUN[cVYZjbkSdO_Ma\\WgEZ_mbHZUUX^kjdYgTa\SWXb]`V\bX^aQb]^fc_eNgMNnd_o_kko^^Z\XRakrZ_Vh^dWMcxrhOpZm[rPdje]yc_~dagp[VObYWrYe_ZRTcQjffidbVadR^XhmkdeX[dZePgd_lmTfvUX]SY]lZ_TnTYZfe^_]WZajRf^bhQSh\vksmg_Pg]]jfb_X]_fbubqSUaNwqdgZ{f^gcz`Zyi_[ib][^U[eYk^MWon`Uaac]b`feM_TdPQfifXa^^^_e[cfc^`[bcZcXY[\YfhchUmrkR[PZbFscbcXbW]TbVcbOgkZcVg_nUbfnROs`teca[OlinnrdRUSWZVd_V]^be`eT`\`UdsYU_n]Ld_cQModaTlbefUcObcxZ_]eb`p^dWpXbXad^TXe][Sa[dYF\gPlQmbd[^[NirH_cUU_^ie^UwLQrU\a[ezX^_yY_b]XfufYufhX_xi\bgWaRS_pjgdgrcVg|UZd_JdZZfZ\\ril\VhedSZj^fcT[b`Njab`aan_a]^nrc[Pk\RXkb[biaO^m\_aWeXe_sogLg\PY]vl^dddz][gdiukf^ngbjmfdc_a^]didUee_`oledayfmVg_knmesW\][`hcWvhTcWXbUi[^d]_a\dabZaVSdhnt`]c_Xh`qjdkm[tfam\WZdcxxRhZ\Z^llf`d`X]`tmnchv]k\z[oUfFr^qXX\adci]leT_ko]][RyT^Wh`^b|h]id~dyehihglrhiagk\lmihgb[_d\hdzZhaa^bglk_sOfjbvgcehq^{^o\ybY`ak[ae]_Wc^ZlVUWaY`[fp\k^gsb\XZedb|hWT]cbkjjh`dZqj]d_eZadhf\vme_aaqeh`]a][h[[[l[Yjhq{m_\aomelVg^em]rer`^hlZ_[`alb^m[^`hea^vbYabk^idep{e_phUPcc`b]aLk`Qbcuhhi^bbd`_s`ib^qdYa_Rar\Xe|cTceZydmdZoR\\mdSUmf[Pewb`miPYajUU\o[d_lgYb`XXodWZXaf^ebfkcTekdWShkhI[hTj_[ch\_TZ^}Zpya`hfeZYVhQ`d|`V]zV[_[c`Rl[ycr\hXijbbjb\ZcYVV\cXVb[`beddc_bP[en[aXhc_eQSohXRTVR`[_[W^Sc^]cd^f\]\`pYaXaae[QkRZ[e]MZlpqTX^k\b[b]dV{b[eV_^aW`Vihg\UiX]T[hokhWfYk`aYaU`h`a]U`NX[``^gWMbVXWagZlmbfb\Xfdb]^Xf\j\oc]U\j_\YsXek]PZTWU\Ta`TRe^UfYc[baiNhu[VoW]cTpSe_\phc^Y\lZlZXSeobbgTVbn\YYS``YtphbgdU[TaW[qZ[mgsdoafvlvoXm^X]gc\fggZXS\g`X]bb]\[dn][ZT[`TpYaT^en[Pecd\hkc[c\r_jiY`Xl][[bYo^YeZTf^lcgXbbbwZeR_dV``gmWcdarbX]l^fml_sh{VfbcZm]ZZ`[eis[gaTfT`Q^XalSjijXPZ[RX^cXbbYVdS`gUcUbjbTZlTY\baj_bcbf[XOlWa^d\[ZqbdX\dXR^]d`bchbegbn[`[ee`]]ZjarZ]Z\VYkR_`efTdVa_]rv```nQZ^RgVUa[Z_cTR`[siciYj]Udd|`O`afYg]X\Uo\[vuYr[bZhhgZ^W_\_id`d_X\SncQT][fbi\SVp`Xf|pTf\_iZ`Z`V`z`\oXiPh`cf^heYZ_g{r^k[aW\W~lar^fb]pejPWp_TjpRZadw`Rp\^_]djQ\bb`fgn~gWZgWkgmj[ZYgR^fkpsl`aZ^_[e^T_k_\rZZZ^zo\pu[h`ndah[dXmaghe`T\khi\`Zf[^deUPc`XZ]UiflXhcXgd[lkXT[Y_kjX^me^ahsiinmg]icfxnUagU~chdWcoq~del]g``^d[dp[a_ad]mj`bkdcr\^LjN\r\f_g^gUefjiatmt^TauQdX]Tga_sfd_`\[`anbZ`XZn^lo]eRU]l_tUfuTanjm]\s_fuW[dUcligl^ljtfvm^[Ualc\\Vpd^aa]\j\nriaWrlcaV`dj\gQX\sfekhdt[hXUn_\n]_XZgZucs\a^Zm^Z\e`]Yb[amZqdXnwk_b\]jhkZk~YdX_RsiS`^e`ccZmaXZQm^tgb^tOd^\`tVY[Xdcfgajeic[aZResom}k]d\pd}`Zhc\]ejYZ`Vb^Z^fcnVYygad_bWZrQak^[YfpTaa\nbcdlb^ccfRTl_mLZcgjWgkZWYX]elbhgn_cgeg`c[_fhYtdfTclk]kjce^\`Yb{b]Ww[a]_SY]bydfok]jX_^VSa]]`Y`ta^]Tok[aW[fih_lj\cTgcZlee[f_\kc`k`bpj\dNrepdb^Zhmdp_j_ecV_mtXTX^QTcnX[\gic_MhSr_zbmVc]QZmcZWg\b[g^X`_\o^]pi`eY|QQv^]lfcQff^ngY]e_dYVVm`p^g^XYWg][Nhd^gZTtoR^[ghb_^RhfUeWhn^ZjRS`VcUffQbhkT^VRXTWVn\\iauUQ\[]Wa^[[ciWhd_easZdoLU[ak\f`YVmajb{UaYj[_bVba\eeZWdZoc[c^V`\\YS_qX_WkSQX{]o`gVc`fhNnbpWW]bcUVY]__eiXejcUlxXamdSd[nZQ]UZfbWYl[Xbbdh^me\hYR`b_nwhc`e]kW__em_deRqcmSXmVmZeQR`gTVcc[eVwrQUi`RT^mOdXY[dpZgkaf\ZlWgVeOcms\`eYfc`Va_c`lef^]VeZZ__l\^`]_dcYf^^XbUU\V\`Yi{ekZY^_]bThe~fXbZXb\zzjYi]ZdbUWRep[ZeSV[N^`Z_cg\ql\_]Z]`O_f^aeafmfkZjk\teci\YjU`n_]col{ffn]gde`pvb^o_`dkp`cQU]Xcb\fnhrc[bXajfZmVge_a[_se`Y][gZ]bcU^n_POZY`]pWap^\f[afTZjn[bhpqObeeVY__rk]UgdYiLcw]ff_Uide\_cldkjgXUZhl^pQ[Z}^h`_\hZb^^Z`gacae]lhqasafW\dW`QiirX`j[mfruYeSg_U_gXbd]cZd\ftkOO]vnaf\V\\RhagOhsg_\OS^ZKkduh^lbJahchj]NXqYJVckbkilYX]aulUe]bhYeYvXk_ZbnlqXiL^]aZduRapZWZ^ttheilUiamp[Vw^pdiX_e\dbSKhj_YU^OYZ^_Tp[\hihekaY[Xeh^a|[`bgjYa_R_m]fqafWpeYf_^XZTanSf\hc]adklikdcmh`a]`tfj]ud_[}cyb^kemW\^aeXb[ofa^`]Wfb{^u\iUySglylr[\\_fTdY\Qheic]SooqzY^q[XZ__UiPlZs\]gv`XciwUWbVd^d\[`bufeawaagRZa[a[\oa{`sZhY]ch_fLSdeWb^l^^``^YZq`ebdgudrhT_eW_\bXjjdeh[WfaZX[]ramicgOSLicg\kd]egZ^o]_hdh\]X]a[Rde_ka[Y_j^r[e\fVa^kveZYbgfdU\c^mm_UZ_csWeQajW{Zdxfi]nR`dcXKddVRQNU_]TQhhZ\iklea\Qklkp[mjh_ZT^s[Z^fW`vcN\Yi`bwlu^|bjdTbccjdPcvfWYo^ec]ZfUOiks`nXw`bdc^WhgVb]\dbVxZid[`[`^[\__[N]dl]YsS}c]^bXhOZaTb_c[V_bxU}|mWw^jdjdgcn`QW[nO_YqW\dO]^hfTMWza]dgU]VZZb]ZbcWn\_ZQbdNaY_gjfdWqn][bY^aW\fWgkpWlc]Gqle`[UfZhh[fUX[YXW_bOeTUgdl\Y\Ujjca_X_e\`Y[^eanbyZu_iiQUWY_lXMVcWSjVic_QWbec]acf^m\gcd`iQ`biU^j\d[SxXzZXQXtlkT`Xb]cgrUZ`kY]_gTcUW^h_YTkX][R]YR]u`ayjZ[fZj]XXg_\fQ`u]S[bY]xmdblTKYc\Ynag_LqP]]dbUXnZaRtY]SV\vuji_`]vaR_rY[d[rZPlT]oXY`hdl`a][YQ\b\Z^ZVinYUR_ifmhPVeZe^\X`a_vab_]gg`a\ue_e^iecSanf_c\dakah[e_aiWd]X`_cW\kLwba]iXSxbgpSnjYQ_ib]XiX\_[T`jfch^K[`Pdp^UdbkVWa^VXYbf^a^f^h`WZ^eV][[XXYf[XY\Y^]Y_Tc]_ca^_\egX\[_d[tiafc{m[Zjic]h_jLaZe]\oY``[d_Ykl_e`^Zed[ZbV``\Xd[a]\YbdTS^[fW\UgkU\eZ_XXba\o\a_]`i]baje_ice_Zk_SQQ^Zl`SY`a_hmXYeZ]m]ae]\eRaaNU[[[_TcVnjff^^_\dY[ajVh^t^WP^_[W\]\Wl\`ZUT[okpgiZZ]cbajl_YWT_U\ek\icgbXc^aZgkVY[rc_^d[]f\dg_`WRecghmmb_mZgUWp`Yhbkh^\p_jhobefVXaYUthiV[PozcU]glfeoqaYkebSX^VqkgYibhxaYYT\m`YtUadgXTYrigYo]gdVqSYmcfl\a{RiXezunec~aK]Z\m_`[lYuSdwb`^_UfVll^`jX_ueT``egY_]\vQ^oegjeeja}^ebWnfYy`ar``\X]]URfwXg`\b~obYak^[kvo]ke^\Zrcn`b_cRkZjfralYaViv\]`[^aaOkeub\b^^hey[W^`ohe[f[Sb[poRxodaea\\ZTYddkZoe_s_ceaj`ip~_ZhVt\ba]jpyZhz^jXjjgPNfVij[X\^]ngUcfZcsgLknfi^Hhg]gb_eTo`\ittsndjggp]^adfjhaZlmf[l^ceggkh_^ldbeXcjYo^l\x\e[g]_miabp]Z^dq[]gbeUdij\chgjefiik`YiffXiXf`df{fgZfabr^^gfe]dcfl`nWhugkg^h_ug_ch]aa\s[U_Ukeanibebec]g]_Z[b^t`eZ\c|cngf_cdsXnc^`fb`Vk`[iek{YcjgyjmafiVgq[tdd_S^Wbbevfjfb_v^rbdfi_cfdRp`m[s]o]megthb[znj_mXojZn[Z_htjbabdgdm^b_mcbXgcyup\]bb_q\_Zg^flvlebemhf`d_gXh]hqPao`sWk_i^]rXzkyjxa_fYfUkb_X_U^]`dqY\nc`]bye\cdoaYejpcgg]a_jfcpdf]bjcWZ_a^okkekchdakeYk`bnWsknmbmqffoffbb`lkf`_T[gilac`b^Wraveggie[mgOg`kemodfvo_aijd^X`j`\mfhh`b[j_hgZuklcplhe\\``l`^`mXa_abdaqndVfmnjeYkhZf\o}lf`_dZf_k[\iaogodr[_cj]Ygrf^]cr]boZZqogtcf``^^\h`ik`bkc\cha`fYej~fhl[apg`uwavh[eZgkqaXbZi_pi^fahaj_i_h]Z][l`Xdbncttb_haaaimYpua^pegcl]`Xi^s_^mr\inpWacdSYiilXcepdaZ]\bWZu_fs]~en`_li[ede_ciy^TZirX[h\jV`]`b]a~bdd`k`achoUN[cgcV^h_jcxg_wcbqcWp`^Z`_mtoiZ^bi]ZfPeYqWlq^idojf_XbmW_gdRdYe`mlhirU`^Uj\ugaYj`dZqlh[S]Y[ba\bgnbRe\d]Tkwdd]_|cgcgWesUq]]fs_h`ihs`\]aXeZ_^_g\md[X_acsggqnyPaff^cfX\]cicjvU`f_j]t[_^kaN|[o]`hkeg[icxficgmdV`eo]atWW[Tdkef^]Z^^{SllXYfYmg_mTe[rfMZZ]ffV`fidc[WfyuX[dfjfp^oNs^jVV\caofoc\YeT\`YxtcZ]e_\_SsbbfekWqZd^_c`aVbUaemiWigpfiUtS^Y\a]h[lehZ]jRjUfTdVlec|dg_rhUfW__n]bcgi[vV|nzgwNoielZlj]Qkepi\d_pl\i[SZoajlzklSq_TfYfp{ZgQYahW]e`[cY[h`_kaUf^_Qd[_`kbb`^cbVUl`T]Ya\[_Rq^ff`_fafmc`do`_\i_eU^X[Rxh`TZ_ek\aT[[`xUl^e_ma[pV^nqu_c]SYdd^eT`dYPV`a]ab`ad`aY`gS]p]kaS]c_Y[^Y_na]nhr`n][Y]dc][\ZjTUaea^\ffg]VXqW^[ebVmedR`^`^hZbgd[cVdbybX]Qu]`j]c^g`Zf_bY[`[g`cYKUU`gScbZjagTdbhf]q_k~Ua]_b_``k`Tb[fZVdUcl`elW_YwY`e^XbdXe\e_YeoWQkgi__eRVh^WgaN`fLbbYfVSh[hZZb\hcp\hY_nnb`[`[gmme^eV\\Va_bZmo_Ualfc]q_lf[OfbkrZ\a\udYT{daSQkZ_URawmPnQvrZhXbrlpSd[aYg^m`qjWpccewfhSS\[}bVZlf\Wmij]rTjfd\Ylv\ZglfaXp]nYhTmf`ejnboc`gQtb\jg_dis]RdmXphXR[ognegw^sm^`\qxihrejn]Ye[fs^\hdaVkkk`dmdekiuroZhXT|iRqc[\X_e\lZhnZpqYqT^h_f^jPaScr]nflQO\ubJqf[^]ie`TsY^^bdoxp\W_`Zehihh\{aTjjNZgZhfm[jYuehg_Z_~`ldqnX[dgmlP`OjhqcXWh[aRibnwqc`rgVwjZ]^\e__Z^l[ul`^`XyfrhSjsYlSqUd`lhhIleefYQXhhdYY_wic\_hj\V^ildZadg_o^mVY`]]`rhrPY`U\Vk{Sa`Oi_kPZ_^ZQb_M[a`ZfbdY^YVHY[_EXQU[m]ThkW^bdlQZ[oWW]dg^X[d]fRXV\ep[T[v`^aY_Z^k_KX]]WbVh`cXddVSWTMa_YaWUHidg]V^n\aURlV_nY[cUnP]gdecfXh]fpPrYZfac_a\L^aS]aUTj\kFb_Sg_kYdT\aa_rTaZaRm]mKg`bk`bUTVR]Z[^]Tfg`c_e]ZMlka^Te^_gWTlaaY_jSf][\[y[Y_JbIhaq^^V]ic^gkj_`gRief^q]ZqWmcOVt\_XcST[gc\j_a_ZiT^WwbnOolb[[Zlj_T]d]l[[c^e^VpwSWvhjybgYQZ_RbW_lW\fPobkiaZ^cbaPVwoYdT^^]xlfZWfa[b\tbbhcVVX\lWV]O^U[S\BfdbjYVaif^\hDSchOmSVadSZWaaV^ka`ZpcdXcc[^YhVdXS\Rmm`Wl\TXlbsi`XQS_WUglSVdg^QRNoGj\QSZIYS_@Q^MW_^`wYjI^^ZySZbbZUsO]_k\`W^Z\YSfcRmTTZbw`XbQOWbYkRrecS_^dTZbkfXRxQha~_hqQkV{[kg\_PR[afiai\jnehU[ShK^L]UjSdk`USXm`]OXT\X\cf^eSvQZLNVb\]tcglmdcVX^_[Mi[hY]Lx`cpvVS^gWXf\Ub[k[\\\cXjW_U^_cUuZ_SY]hkoPUlWnaVlcd]mwkridQaRd`a\]`[S^]ddcRWaU\r^Xa_^NYyVRZZa]e_[\a`bL[X{ggceRj[hP__h`^]zRYkep[bZed\[Xcf]__\TQbWWWbe`e^TUXd_r_mkab_\PcaSidWkrZXTx\[VgoWR\nVckcWNkl^bZybbnkk[cVe\if\a^^`hacaG^_dbt[acT[YT[UVROOalfgatZcX_SYtgdeaJYk`dkp]yWiYhgY[]hfdfWZi_^^glVaSka_^ec\^ba]ieXn[VQ]RljYgjiaP\fVdYUVglXiQX]eaZkYcYbS`[ic^]aYe[SiZ^^[jiRSPSZ]YVZ[Xf]YY^ZXfVQUZnSbMdbXcY_]OV^`]WkTVmif_b`P]^b^U^[[Ym^UesYePX]\brYtheSn]RbcdlWkZja_YZ^baSWZ\cdTiR\_`Ynd[Q]bb_ldR\in`[k]I]lbfT_hXagZl^df^XHcS_aff[nTa_XV_rZJObg|ZWYlZedj_[pJVhU\p^bR]avr`oh]Ugp|`sZce]cj]ofX[VYxb^]\[sh]WneMoXTrZbX\m\_DdrdchOPh_Z`RYZVfbq]~HchoZb[Ujp_qZhRZg[SVNp`[TdXoZfUWTR]\jaKOiiUl[WajU\^aLWcY^W^S[T_[OaPWbbCXYh[vMjRNbgleZd}\YaTXJP_WbnZRnXd_dUb^SeYGOdMbh`affhjPcUYtcVnVySf]M`dgPOcuoXfZetShYSVW^_pfReZQ|aeL\ddzfSjlhse`nIj^bmZ_nWYaeZKaRX[^_cac_PjlouUWVRPYgjbXQ\]{[]ZPadZ`YS`c^\lZZTQXeRYbSc^`fXL[ca[\nWbR]xsMuXTcgb\^RYdi_SgXVcYlr\Zb^`kgha`[]V[Wt[Zb]\c\Rdain]q^V]fj`[Yb^qab\wZ^hX]`coebZY[yUSbe^nXan[bbk[pam_aqid{prOa^^Wb^eWce^dY\m^]n`^OObW[kQZmc`dnZbgcaeSlY`Y[j]rig^TpbqXd[ral\]lp]M^b[b`edd[bXcb`_`eX`f`bVcajQ`\aqk]aa_[YcQdZhdcijbfXipfYb_Y`gegmtm^ZTZZ`f]hfb`Zli\gTjXkg_Th^VXeXiTpatZ`Udlo`\QTnkmXc][eiaSZNXmUZTa\qT]ZjYUca`XYU\[gTkb]dQ^K\eY|R]]af\qnevSgcduZY]g\nhW^o_f_XW_aX]b_|R^c[InS[aX_Q_bvioc]lo_ivdTbbdkmqXSewYdj]\eh^gh_hpb`dosgcvkpkbd]{bhWc]]eZVuheddakrp_kfnu\scyad`QtsnWn[abcibun\gs|cfkZs~fa~h^]b\\l|saTehYUl[hvZ`Ypx\hl`\dcj_ybjW\j_jgan]hchbkyeUgxqrZthZ_]_bX\n]TZkvblbnnjn`WjaZabi`ccZ_nkpYlsjdifZYhjec_Ydo^ht_``ehQgfkpT^Xael``Umabm^e_bksalZblZeqjq\g`bq^dhj[`csZ_k^dlzaWid]aXzbuyvpasdpYsfikmZddddhwsJlo_nq_g\afmgcgwe`l[Q^j]`ocYYnl[Wsspa_^[hkfpoqkijee_^iuta^ed^TZeuf_giY^Z][ZY__egmanTl_e_Z`_ngm^yY\\SaRPTzNYUc_\pZekTX][bNZ_^ahijWgdje_Vqa_oPbjvZb\nao`dd[cWV[f\XMcLfcdqbZdF\maZUwse_WYkua^eiTdYN]o_j^YTYTde]gr_\]_kZiaYnZTOqYafQe_`f`YgZY]gQ_d]Wocci_`fd___PXeg\e_P^]dkZbV_Q]^dTUJfcaZd\ed]WiUWI\bY^[kY[mPXbQUQCeXUaVM``U_fXX`tWlZ^S^[b\Pa\OXj`Uecaf{MlgUU\mj]yW_YXYY_P]s\f__rso`\jZT^ZjzhP]Xaal\rOdbl_Z{_YZ`^ylcXZZ\hg_^[OPWN^h^_VUaY[cnRbgf^oOg^bgl]f_eUaY[T[ejhfkofM_QOe^a\ie]jNf^YPcVLapjc\ebh\`TRocaRdZ^pT`pedZ`iieRi\gcd]dWUqUNkiRbQ]`UR_fcZak`ZJYPLR^TqyQJaTaGOvfcfn`IeZWUbfWdhXqlY`]gVnajZZhjR`kJcT]h\]ofVrNRgekSaTcdPV``qROZ\xmc\KPXu]VP]ilWWU\WV_]fUaJLjX^`UfeekSfURmtam^X_XVGdXtTjbVwlSfWbkIUkW^YveKX]XYg[Q_cngYecR\`VOoqR]tNcVr`^c\gP^ilegpOUUZV^gVhaX]bS_loTQ]cUVjRWQ\_SkeYKYmdbY]jZWlToTR]XofcW|Z~ZaZ_NpTbWQb\d\oT^SW_UbfdZg[Oa]UllXU`gZm`MfTYVe`_[VbtZagc]c[`V^h\jW`TfX]gagbgXPX[hi`ggkR`^j^drhb`ggb[plY[ibh]a^i_]a[YZaq[kaWljYlbafWabP]bTa_ge_Yqmir[`KT^eWY\Q^]boZ]]fdYaaddWrlcjdc`de`noYam]aRqRogYQc\diodcbYr^h\`Ya`ZdeyS`a_`ZecV]c_]`e^hmgiO[^oY\v[[dSh_fYs`e^eXd`S[a]a[N]QoypktaV^x}q\TapVetyXb]`XWXbhPKVbZWagW\jnhUXZfcbh\X`lZxb^`h]i\oae^g[Tf`_keurYg]jXcjdHffpYQb]mdjr^_Y`[Rrk\`n]^jg\]`UdYc_a]Z^ggg[\elVRTik`gdnphf__blS^g\bfcmb`fXZct`Yiba\Wh}o]_\rm}a_XhK}[[_TY[cTae`[bQZeU]WYa\Wjq\eeLedXWtglV\_jYgbW[i[UZLcefedaqb^]hm``b[b_^VnLQYh[ZXcldP`WbWaXbgcaY[^\nYcP_][`UegaPggybh[^d[hisa_YRtXWelfZZYY^bQcr\TnQUe\ctH`jZ^jV_Reueev]_XYiPfi\[[_XVieW`nVU`sehabWiYcZ|ahRShjMw]aQd_X`h_XZ`XYhw\hfeQx[S]aUjv`\k\^YRVoa]camjYUQ[aef]YcWY]V_YPZZ_]eUd_}agb_\\_J`\^ZaUeTe`V\\hdX\V]W[mf`e`F_Z[Zhp[UaYWgjfcdWaf\_cOmTvrW\V`_dPcOceabMQ^aibjg[UqillZ]`]`QTWZ\kQ_f`m_W`RbVchdXX\_Q_[opRi]^i[_\[a\QVnibScsbo\eZmkkdfn_p`YQ^\\i\lec_dY^gbNdo^`qhYuVHjc]fZy^QknUleWfZdebar[Wj[dZVhhbk[Yqor`OWZZ[^idNgo^jalIM_a]`cVQs[t[U`\a_c^WfXLYkX[[`RbUm^wcYN\Rf\mW\kfbSjZY`hfa^TP]ZgWVdZ``btlbg[YgVhdXZogllV[l\dXqXkoUVXTWTto^af]gp[^^ks\aNOa[c^\S[[flnPVlrx_^iWZ\QqSb_^pTSfawabdlMl_dijaLNzfwd[q\Z]}_]hc\^_\fdakbfpmMXPczfXaingc[dm~Sl\ZaZYZWh`p]PmcMRa[ho^vuOfkWXre[YOkZ_pP_eVaeQ^k\\nMWYfhUpW\OY_`_\`TXS]vTZff_pZfU_``ceapl`b`b[Vcen^QecjlU]aYTSWXyVeRr\Q`SdV]kc`Te{[_LbaPaQPXYll`R^laaZgXUf[]ORcaSj`\ZqVU^gjT`ThU[T[`g`lK`\SbgU\b^`ZWiYz]\QYh]TYZgfmb^hPaMVY]XS`YhRQV^k^X\V\bkgObeldp^WkfXvMa`\aiiZd^Vo^_RinV_YX_X]gwYcZOkn[\_``\YZYaUeY|W^\QfaZMJcS]^hbZ^RaejZWb^`Ll^]YalI^jV[Ub[ebVY^bT\iVU^_XYetetZ_uW\PqXS^h]taXYaZ\YY[_]TXccdlZ[Qqa]ihR^P`shi_p\bjKhXfDT[^UQ^_`WPlqxa`^b`lY]ccR^SPcv`QYdcgZZeXNY``hq_WS_dcd_hQWHiYbu]mSWm[rj^ln_^pe`Y]]YQxpg`QpgR_mXQ[_`VX_bhScZ^jkUUkmqobaZWmWuJ}eOfnedYUnYlZ^rY\xdk`mYtzlZcRhZgjVYNgRe`gtMx\Ubadoz^XjcOpagakSM]iZ|bS`kvNd`]O]k_mXvX]ZYg_T`K[OhJt`XepjS[Mh\naeodXCZfg`[jknY[NfgejaOiiga^YRgRjIiMS`VYnsgcovxeZQfgnSbakdWZbsnWjyeZO`sbffvTVXc\O}[g[dVhQj`]`MjclfP_ca[]xOS`plNHZRb`SK]fSZ_^dh]oeqmqXdefjd^aYljn]Xhlhd\daaZ[gg``k]ea[f\keZ\`cc`efa^a^l^j\Y^ijiiMwpjgfgi`wpe^T|wsdpadh`mglaXk`nc`w`agcehka|i`njpshkjVfkgsvm`fmg^tldfsX]^lfY]h^~[t]mac]iyXwqUpc\_`]lfc]ag[agf`_sV[_iaYel^`a]bZYf`TkZg_hn[f`ejc_Wch_fWd`oao^e^Z[`\^[dl^siZ\[]Xik_Xbp^bYWkdlTndegXZctlTva\u]febNa[_auc^sap\cr`[RnVebd^d_geleim_eXdXdd[e_]_hfhab_eo^gag`eeanXZpvXclfba^n}^Yamfdchfm]Ubbfdjwaf_b]iYkbQf`\^hUc]_LXh\brkWbqZ_aed\UdbidcomPl]MiWJe]cNSRcTTpLZX[gVaR[g]ahWXnlXL[W`R]aukcapeYoZlpWgmdhq\sXt^f]tin[\fZo]bWierUaaXM^XfaaiR~TTOp\kWXlcwwf}cSXS_hnZYlQWX]s[u`i[^bn]kjskP]XWob_UU`l^onjh`ra[YamleVjR[f\[rfkskWx\dcs]^Y^M[Uj_^w^M^caNe_[gWY`vaU_cYc]aQXNXQ[dSijtManahp`b^EmZmWdYr[vmTzy^gYXQuU_WdrfsjcPcndl\cdjhjV\`U`dORsXdc\]Xq_vbN_^MdRdoitiq_vkcU_MkmXpVSqhogNjOpq]gddgZRVUSb_Zf`Supfm_yhZY\mdNh`zhj[aSZjibjWY`[UgOmZmfesagah^_]cWhPUfdjhYa_acneVb[csmjoa\ajlZabuacd`hcW\d|\]Z]ij_kYbZ^dg]_hjh]jegV^bckfijnaecq_jfZ]\vae_xf`^jcb^]ujqYp]d_efp`e\dpZ`hY]g`_b`gk^iZY_WShgh\becT}Tnb`e^Vg]f`]nd_Vc\bbc]`gXqa\`Yc[b`bd]apim`W[cZagm[fiY[x\Zs`[bcaadglU]cc\hacacd\m]_cdcVbb[Zh`\okTfkd[eur`g^[eggub^^gc`d}egivTm\dobghnj^gif[g\b`^aYh]W\qRcg^a^V[\fc^Y{maXUWcmld^Zct`[XhTiZc\jrX^`h]`[ma`ay^eckkkiaZmgUu]eafiUh^`Uz^Z[TqiwjfTi[cbnZc[eehflb_`\cd^xwb]^\r^oj_odeZjfUi\qct\UimacjfSibb_tegggd\yTS[St_\^]ezYmx_iSOfj]hn^ijlcg\`VYpbdYZg]hh\^liZVgf_n|`Utm_ghkmmml`Z]rgfin^[neXe]ikdfZngmd}bcojaZb]{lh`cUbbgjTl{RXjbh]eo_ladX`]lxZakj_cZ_s`q^pplfoZyiha^g]fx]__h[Tht_ggddiZZa\n^]_]W^]VlXer[rknfa]_f`hf`dn[]~mgfpo^ljeat]akk`lbRbx^^W[Zfddabl_bbyab]cfuU`lb[]Ys_[lgZylh`]c`{fq|giapil_fcuSQZ_btZXZg`^Uf\cURYXof\W\]ai`bRY]iXUWZfWVdP`^bnnoxK[]`i_d[WZqZJb`paQeDhTMk`cZ^tbodmUTae]OidafbfsiUc`g]V[sOVP[_ZdXaVKWQW[WZYjQUWIVf[me\\Xp]kg^pZWea_^iW{r\`vWkcX]dOfWVQfX[\Z]RfTT_^rvaSvagV\U\Wggqdc^cRehWcaj^X\PY^\tPd][UiWHfTWlT\o]beqV___g^]jZV`jfTN[SU`d]]VOYT^VfiekZaw\b\We^\^aWlrbaWSXbSjZQihaGemO_mY[`S_b_fWS\doX_USh^WNXX\Z]aSzhX^Y\bNXYaPR^\o_ZRUwo]Wd^^enQbVcMqrUYYOYkoQVReUcVRbkoTTchflZaac_`lUlca`\XmMT_`lVWYXgVizgUSR\kQ^f_a]_VZY^[Xba]_penPMi^NfcLb^QQ\^lpmabgX^WyikSifeXhUPt`R_ibfqY`cj^h]_ucTaYgdqidjo\YXoaOZfaaR`iiLsaNT[bOY[gkvxO^adc^\}S]TZbLdjhVuQY]Re[Uoia\REUci[X^f^Pnd\]rZ]hL`VW]aR\ZWYmbr`j_\dYN_rj_TjbgT\SRY`eVVa\[tT[WXfgRXYpn_OZX\glZw]Uch^PabZwa`][SWMdQ^O\\[]X|^cgqVV`Vm]`Th[eg_iW_oUq^Z^jaW[^```UsacgXc[JR`rs]fhYW^gaapU_nhh]emabzl^muUaRfc^oaWcTSTqhX]\bL^fgWY[IYiT^P__di\LaNQ`_``aldmcXiWacJaj\Si`es^P_lTlRT\i[\ZbcSN[aaiXRSe\_\Vm_UK[]M\V_`[ORNbgTUI\S]qXmbb`O\jZVZVL_\mgybenS_Vaac\T]V[uZ]`Rf^bN`md]oZW~VR`a_d\j^bZeVgcX^aXAafdVfcLsPI^[cYcrWT^^aY]OcShdcZgTbWhVZb\ZcwdV`ZPcZVXTbdWNZx_RTeTS]RVV`dSUZ\VR]qbVf[^NFU[d]RZSWvZ]W^NmR`O^T^SSSZbaNacfQVhcaZlc^YfVPY_l^g\cLZ^\aZmZeKhGVhGeeR\sVOWWkS]Pj]bWWV`g[R`[\TSalJZWS\jWW_RXXS`VjfP\gg`W_lRgYWgjdL\`Lmakgcdh`h`g`_e{d`hcclnecffabdw|e^^hzn^d`ei`hwZZab_hf[aj[[e`]jr_cb`pZdhiq[igbejbgmfbspigguihp_s^X_acjw{[Zgfbkgca~iXidk`tf\xb^\`^b_Waxvkt\an_ev[mtZveb]qe\k[^a_vV~abe\pvfb^gaZen_U{lc_abZ^Ub^]`yb]`b_^`q~tlmi]mehjd`g]jg^ma\a[^btqk]dekhfb^gcifyh_beSag\idSfaka_dxadheVzk]hdc_brV_di`aqqkc^ozniZwhby]gk^_e\|dm^he\aebzddpg[d^]ta]V[dt`\clpnZhrf[`gcxs^naw[d^bh]`ag{jhexsa^j_mfgWdb]meqdR[]Xnc`WcX`hgansfSheaaSOVa_Y[caYWh\P[gpW\d\hmq{Qa`\[db^Z^dbqK\b`gP]\[oTPiejYfWUlfXbdcjba[iihb[XXbST[m_\gcQ{N^UNfaekghT\dr]LYcgYkffbbcbdqeSeVZZ_cf[dNhkWfdZLQUYlX[dYWaoeWbc\Xb[i_TcpaaQWfNQfkV]TjygWnMhbeZ[SdZ]Ve]^\M[XTa]j[YgcbiAPQ`p[VY^`PbUX_eW\Z`[Vb^}mZ`c[`Kffm^W[Uzii_Y][XcS^R[q]TSbb[aSydTb[Y[]_V^iR\[aRcYKSy\Y`tQaSXoWdRYM`dVMU]e^`]hb]\Ratkk^xmX`_OscZ[cjoJdaqRZeW\Sab_c^pQy]R_V[aQfgW[Xf\\X\S]PPd`RZMfViqRdSpb[`^kRXjhQS_cVZ`\WU`_jh^W[SY^Q_PQbgYT_WdS`fMYkP`btRn]Y_kX^csfP\akVVZ\YMdUWdlR\YrXM\]]Sg[f]OURmRSO[]\d\lfcXYaZhXZZY``]\bPVNlYZ[[YWaV`vbW]cX^fQySYQP`YbQbrSz^eNSeNO^\_a\SPU[[V]UZuW[RWQR^b[MPRXYV]n^\fZW_[Q[OIXXNYWbaSUYeZZUj[W^`[bQWZaQP]ZZ`Ke`NZXQO__lndZ[W]RbTJfQY[YuUaZiRL\ak[UZRPTc_S\{fX`Wi]eY\\R`fK_c]^QP_bHS\UXpRYYZJkfd[Tb[[tT]XbOXYfca]bykN`VWbuR[TdgSjfLhVbjXbercYdZ`a`V\dpZKhyZZZ_mokgjZZfbW^ZdXX]XbUWWwaoiefUPaVep\`nkP]jW`\[midn]]mj\mY_raeaeehhSm[h]^\Vp`chlNg[[jed\iYbp\`q|QVkeo\`_b\zadij`^\cc[gU`gaa`Toggfgdbjma[V]a]x_ZZi^dWvgdgh_xa[inW]e^]Z_jq_QY`|VbYeaj`^_VcmlU[d]VmVdw]a\p[bZY_emP`ktYbcj[j^ZWi[h_UhZnubTZkcm[Wed[_Zfcii_mbhN[nZyX^d|nwTdZRf\`Umkh`_di\[X]g\idc_fYfcfm]a\[_ns\kjge^`}iVhT[YZdvg_`g_j[[\pof`og_[XbtS_ia]\lwOjhkU`W^p[WZq]_b__sWe`S`]gmmnpXg\mese`k_\f_aYk\cZ]rekjrdfJxedj[[\Q`w`xj^^Zk]gVbRnVhW]Noaya`gYZeRj_e^gZYYhcncVoe_c|gci^Vsh``pbcU_nRhXmpaU]dk`UoZi]sa]Nf^jdighheZfSRm_Uf]^YkbfdshXigajZ[^^N\ZW\`lcf^gWdfbobm\XUgdeSda_g\fgrefie[au^Z\ic_^k`Yqm^^]c[YtVX\nZdTg][\WzXXj^i[Wb^[[PaWXdk^gmP_f[hefdZllcc^gTecpj]VZ]_lRNibXouZjk``l``ee\S_bYeaZ^`gdxfmffYm]V]pYZahXka~ganY_i]Y\kc_O`^YS[d`XWeihU^V^aU\^eWYesj^z]fZSNVYWvskkf`cpfXmV^_Ia]eoVVPX_fTcRXiZn[e[ci^_VZdcUX[Xr^ncm]Zib_b_hXaS_M_blik]i[P]T^ZRkUObi`wh_YPx`VjZ^iVp[d_`[ZW^VX~ieqam]UnRlbgRmT`J^ag\c{`xeXj\Xdc\V]dySYdOZcczrrhY\Vq^b_we]^ZvWTleTredghoggwq^Zae[irltYf^\_X]\\^cWU\[]cemgYhbPg`ZdnbaluXn\`{Z~\fQgrW`YZ{iY_v[]qX`^lda[ZrWVbYsJV_ju]ReY^cWt`vxdfqciXxc`[`rZceSnc[]emvk^jfjtZcai[Y^shpijau`V_a\c[VVWakePgaYa\[ZXRwRQj]gVaVaYTWlhdjfR\g[tafZ_\ags_aeXoXq`aiaaXfjylorkbc_fle`iudzk^gepdripimemfmlaimbafelldwmfh]eclbhibic_gek]`iijcll]il_bgnlb^e[dubwnhefjjbgbbfieq]hfTe`z[macfcvkbbei`^ifepqbbVg`amiklbl\lg[bmdxpcgjce`c^j^pj`gjes_dfzifeub^l]k~iVd\b`_Z`n__]}]\sgibfmbeSaXbdgcbwamdhgsal_nlhjvhdlik`buh[e_aikkfr{`hg[n^[i][wcoof~cf]fhifx{gffw]ociff\`c`[jgf_^dgc_fhp]hbql`kecjSi^zlh]npcaldz^uah`vfng^qdlacy]bb`aX^jg^kajl]umaakcid]l]^rf\Zknu]blj\Vj\evfmpnajkeb[t}jh[cc`ghugonoe_pgk~r^igX\ecZ_fifcrn]d[}]eaksek`qqc`mv`[YR^a_e_jcmnsnhbl]bzof[ggreZhrrf__tdlk[pzkd_bV\h]ebqkjd}t]XifegtfV_}fZ\[qmlcteg`idmz`___iekkfddhweggngaiilc]}eht}sZdhi_b_bie`q_wZmdlb_\llwgsjkW^d^idj^k_Zng^]{k_lpZ^U`cme\cm[^\Zu]bcbnnihg__]`gb|bfigeg]`gibybegmjufeiakdd^gh^aV`ghe`hzccnde`hak`oecbedquyffidpdZ~ieuZ_itwffdeezfqepfggom_YTvaZYgXtn``mXgXxS[`gYW^^eighg]bdfelh_^w]ujY[]aWkbkiggqihnaWhlVaweg^ne`lsYh[dlhVZcacda_glQVd`XWbhVscdcWUnYjcybj^Vjf`fYlae`hXrqaZgn][Zh\v\^ulZlmkYftj^dadrrSqahf]u_[ikgdfbb_lfTfqW^\dqbp^Yvbii^Vptdaaeacefq\ZlVmUiVd`l^dl`csr[`eX`c`ZfN\doRgd_hh\dZhT{jQZVhf|V_oZojtw_gbe^dTag_fiYbi_]cWoV\iVdrhpSge^`b[\vdYlc^oVdc\Zac^VXk]eY[^{hn_ndrfdZl_gZ\_\Y_\c[]_Xg`d_fuksVnw_QZb_jba^^d][jrchRX^h]jdcokcmrk^[lh`qn]b^\f\ji[wlt]caxladgke[ip\]c`[\[am_hf\lfelseZYod\Vblia`fhagag`iei`erXyj_c^nyk|\~eb^cqgbtgZjmj]]bYmZlkWl^bgbfmSXl]gXo`fbkrbaj_Whhb\leWc_fkgda_k`|o[Zlrfh^_i`\g`f]g\Wmmm]^`dhgZn\`bagxfcsmYki]s\[aqjhZYngkg_b`kfWapRi[^kY`opWTZ_eXdfhfYagrVf`ZcaM_bf]iiphnc_g[i`kSahZmfbUlovn_\a`a[xaYn]We}gXacnn[}^cWwmniwe`ol[Zblz`j[`fi\Ufde_ku`gclc\gdg]j_l]ej^ReaXtaWafXieVpaceh`f^galT^jcZWZTinVROjZYlZj[`]ba`WX~[c[ialSR[gMedpbfhdL[VzPT_WghWkci_][VlYiXdbgWi[MPXY`]YaS`icY[yVV\[Wf`[]dz`fki_kSYfdYbiRZcV]YZvVU\\[Tm^`pjgRi[ZV[pVTaadQZ^]bWbdiXjbZnf]V]XddcLS`jPVgS^lYR]gXq[k]Okb`efUanSQpV_[eScL]QYQUS]cQIWbc\WUU`V^OpRoWp]\ggZ]aPXZRYHSX_nhyXZWc]Ua{a\eXaleVh_\XSmt\N_h\pXmqQYbhZrTail[Z\_k`k>w]YW\`VaSdjemZ][WZ[\cjgXgdtcnbU[hZacPZfcZZ]nd`Sig\ajjZU\k\hQXgf`Vb`V\U[[Xdi^\eypytyssqqyptqusuutloovtorttwsruzstumqwttxvqlsoyuuqysuvuvwxvuquyupstwwrrsotrtnxvtpptqypwsvhstyuuqmwwqwrxtuvntvurrqvvuquqrvxortvox|vvqsstsszqwrxswxrtsrwsrrtxywuursryrqwwtuwst{{kuuspuwxspoxqwpttrvpsvqxwrrtwursrvtyrqowoqrzpuwpxqsunutrxtvnxqyovytxr|oxownyxqowsozutwwrwowo{quvtzyqsquxxuxvkqpsuszsppuuwwvtmvtvrpvvxryxpurtqwxmrrttwvvuxruyorutsxnu{trsxqpvrpuxxt\w{vvpruupxlurtruusoruptxwqqnutmf`]oY`ea`zYZcZP`^agUbWbfa`nSrZ]ckWQZY}chbiT\WokbSYY\X^_T]f_afTdXWc^iQffni[[[Oa]hep]eWmgo]`Sa[bgr_ZWifVtgX`Z^`_Wkd`^c\UZhU`\Vn\_Y^abb]\QfkX\e[cS~Yf`b\e[_XY]^bTVnbXeZ[\QjhbZ_^aYdkhqZdVsXnXea^dcTdl_qQecenR^aV[XY\YaabcW]`gjY]`_Xb`c]ea__ZVpUP\_]gbUx\`VY^cYYaflu^_cdbKV^ZT^akba^Xbf[e_Yd^^RefgfYZcp_p[a_pec[hjaZdX^iZefS_dV`bXd]^YgbkeeaXgkXd`\Xjcdli\a]`T^`^ec]b[ahZZajVad\_aT^[[dfhX]f^VejhZVN^WkQzccg^sYWY\[^^fl^sevbuPr`PuW[b^lWT`Tp[^`ddckHfha^YVmgbh\dt]ff]YtbUjsiPilc^X\YRbpadNb_oFcfh^Z[ta`]UX]dLn^gWO|\^S_gVRbaUbajjrUVtfegOXVV^eihWrxtc^kunXU`haQh]VvZfZd{bcefRPaaNV^e_Z}WrgWmpcqkanic[nRNTu_lbg]SdfldftfmvT\h\eY^^t]gexulb\a]ko]`_clZ\\]Y_axqm\QQ]jaKen^UfLtfLi[`piXRZgketq\[t{ead]hjvkij`WakmjnY]^fkbXsnThMZucdbq^plTTrgda`Omm`XcMlrcdmStdgWmUtS^Sbdaifbi~fcl{cshhgghxZK[SF{aW[^SjXlUKcXca[spYaU[[]XbUTNWbUTPRaKfO]]^hYYXa]^W]_cZeKYWbTZ_\WXgIHW^^Q_RSXcVZc\R]UV_X_Zb[iY\a_TjJ\X_\Q[PfVU\Pt`d_bUXf`]fV\ZaZgZTVOW_^^MYSem[U]NQT\OkO]e]iZVkuSMhWQbu_fl\N[Wi_r\`XcWOboTRRblUSP[ShTo[T[kaPzepaa^WhSde\k\meTWr\SdcZ_`MeRUV`dhr\PTTo`[SgVS\c\]Y]F]cTbbTdeX\R^dS_dU`g`XUaTUfVfOeWccVQ[WQbdRbY_bSenUjZR[l\cV`lw[YkZ`^_]ZOZZZOS]YeU]jaZOcXZ[gS\Tc|PUP]`IU`Qc[bSc]SRc]Z^]\XX_`SgwaJRmZcd[^XNn~rUNhkVufl\j[etfp_k]rgnNScujYw`L[RWLijox_U]Ki_euWs}MgJ^tp{[kxagbzrq|gcscVggVYnpyQT~pymJ]^N[trx[k~QQI`qwW]ndVdXqjtfGjDHXhRbqiXeqpeh[cpEYSgppxmjWftq|cPe][v_sl|T[lZH\zVY`]cnnhgmwo{`qhRy|G[[dneTOvcbd]Pm^m]TYkXobnWY\dpwyV^lmgilXiTvub~ungyet]~XEnljYbrqZyuqeQkurscucKm~kZskgTVwradVouufeztboSbcd\Yu}mbYj|^\qf^5eaPp{\vmhc[u[z\ocZ^xh|jsl{fWU`}[[p_JunSl\m\awer_i]egbZX_`biVYW]mik[\`o`gbOT_ale`a[blcZin]kWeg_veaY]YTXetblumbfXtoPhllqjWrbeJeYS`bUVcg[gXSsiSriukgTPaXda[frZ_OZfhcY^Zoqqbaj]_kWfc~ied\k]bV^\b`_faXg]Xm^pjzPgjuiT\[`Z]k_`__sM`Us^hc}s}cxX`W^dca`Wa}aeViljazc`TXg\fm}Uoa\ecqik^hY_ieigZT\kk_mVcb]][cyjXQmkZdidfsy\cNdKao^Jh`]pSkreT]duSWkgfefk`j^y_iikcaejfzq`lpa[nkinYiQhn_Ypjbpfid\Yit_fc[{Z`~tejbPZ`kn\caiqbthcb_\w`[TJl^h^mpaX[Z\Q`XYcdUeOVWbYY[d^N\a``i\ZRYqef]PhegqVgiSS[laaUgXb`[`\gh^\QaehZX^bQdP`I[R^Xec\T\a\ZW`__UTCVPkgkaWa]ce`MN^_cp\Xa^_R[]dePfg[^OO_qQc_eQdhKkfZYXYQTp^TM\bTeTpbdZfW_TbhZad___e^__fc[jTkWQWaqVIed^\br]b`n]ZcUOi`]acU\eYVeQj`bMcSYjYfSTVZn]c\Ta[W[U]]ike\WRsh\rjlS]bbX^Vj`n[]dfb\]SVae\e^_qlhT`WUXR\\Wiadc\Tc\bdZXZXUbnYfY\Q`VgT_\b^^^g^vVaOmlebbYbV`nLseS[]gMk`h^[eladW\ZZbUap[]dahdMc^ShYM\[[Ua[a`i^[Z`^X[ThW`OXId^_VV_]a\LaoTYc`TWYPa_ceUZf[Z\]u\\j`\n[XQd_b[ScflRV[XwTX[hcV^`b]VMR[\wRX[SagnbcZcnbb[fr^cbS]YRb^aTRXVSd`VmXcY^hVNs^aO^zeddW]_TcXZdhRm^_^YVY[qv[d[SlTXdQc\radYXWgZe]]VbWc__[XTMXb\f^jddcQ]f^cmaLvg\XQ]Y^Zs]T]]QbL]eeT]Xab\bablaYQgbUccc_\U_cKghNg`SWL^f`bd~[RReNhgcajb\q]kjzYVTLPeWbrZVwQ\Lnf[_YW^TU\^R\p`a^]aZSZXGdPvU`hfVYgMQj_K\Q`fTX^tpnX]NjVf_`PWdp\\hcWZgiOebX`ieGY\\WXY]X_fgZc^UPXSZP_esR`OZQeU\R[gOX]_^bId[`cIQccU[Z\]jXdRbH`OXU_X]ISaba]dYfcYThQZUVQ`[e]OZq\a`YVZ_\bMLX\_`pOfV[Z^ZVRs]RUgZRZ`X_jVb_deXZYockXY^[kaY_VXQR`WSPb]ckaVZ[VgaO`eoUQZXQVnf[Zi]QVYKZUZX`XRWf[^XUP^\]Y`\UWfVaJUb^ZkhNWKc`RT]]n[^]XajQ_cT_Uca[T[pZZ_N^\\IWOccogMU\mYY[]yWUaV`Tarh^MYV`deRj^iYScVfO_^hV\_[[llZQj_\hRW[dafUPdMNJW^i[dXY]W^cO^Xu\X[ZWVZmeXVWaiRVThbYUZTYXOUeVc_^Z\`aVZYYVXIW]VlXhdZy]]h`ZWR`^oi[TcvZQXc][gpclTWpXa`Nskc_Uib_ojeaXsVmc^qljmS^|jbhc^dR`b`XfsUe`aylqdgcb^o\e[^kfZ^w\MfYafdhW_zTdUX]kyfbf`gtl][QJeY[wcdbh_kdX[mPk`WeWkZdaRcgZ[_cZfdmg^e\hY_i]X[Zcpjf]`b_bgn`Rd`]][dlefZ^aniYeeX\d\WZ]Qidglk`fd^c\Th~jfPiXWnddUj[ckP\prma_VoifT\[a]\dUvadkt}]dX\g]Ukieqc`aQb`eWi\lZgO\UThdWaTg\}X[]lcnbn^f\qys[^]gn]bb^tQZakZV}q]dfccj^`aaoYbh_fcfi[rgi`k]v\phd^yWr|`z]i[ieie\[kZo_Srb`ge^VUd]_b_cMfc~^Vb^Y]STZU^Zf`sYeXlg\`\blaX_fZg_SXbif_ipYhccfWhZV\p\d^l`}hcU\`\V]a\T`d_VZi]v]qdlVfnb[WeZfF]omVZmrh\i\haUj\e[p^rVeg^mcf^W`dVV_rT]chv^Z]]WU]j[^e[cYVTda^fTYb`YWbU^ZUXlS]f^Z[xl[`VdXb\gH`YM\]\dtsaSf\\bP[kU[crZjc\]fSn^]XflZZX^kgWqa]Sy[]S]ul_hghNc_aegk]`\_bpfXe\_SY^e\ZalZ[Nff^U^[bTfdd_\Oj^cgearca`zb^]rdZ\SacQffTjbk_PZhfiakglrhR[hr\eeYhg]_^]`ZpYbPX`Y\adYndJ_]Xu\VTmd^dU`Z]]T_^miw]\g\zmeTfhc[qbm^wuTfhfj[pXfqda^Xc]LYdZ[\b_McZab^k_h]^akePWdP^oiendij\Y`VmThkhk]mjaYYegXZZZech\dfYjTo_sfrbgb`hce[iaXchyUaWdR=iactrP[RaWhj]Ujr][f_nXYqQj^f`]_lx[d]L`kTts[efaVNWOnZleUe]lWU`fbe\w[el_e[``biZpUV[\WugTbYc\d_\]bqgUeVu~kMkn`TdPfmXbdb\VUX[R}`Ug`pTXVQXUdvh]bW`n\dzVZ\sYYticWSXjwkeq]liifcXUZXf[^Poffg_asr^g^lXji[iij\ccclkg_iWQXcW_mb`]fpt^cRSn]hhZdcTWqZiQr_t]^V_cajTe_ZYfeY_YjiSU\Y[^QbfVPdT]]a^Q__ZXe]V`VUd\fWR\fSg`[WZjgojbc[^Rgb``_W\Ue\Zb[Zb^X`aYbdY\kis\Yk]JZ[hc{U^\XWTeU`UV`ZaZY]aiXec[T_fX\WefS_f`gsYN]Za]\UUPXfc\]rpZ^O^]TniS^S[\a[UoS\X_i_RWZ[e_saV`ec_Ucz^\kSZ]aUXan`kZZY_Y[\aWd[SX^g\Q\\Sn`_T^TVWcmTXSdW]jeKXqYb]bS\]d]VbNaZa^x[]S^]_RWS_nk[VV\d^W^_d_dVX\\c_|[_bT`aR]Z^jd`cVVZZZb`c]_dTpnc^XfUcmXVQ[`_N_]_h^U_h^VX[ZQc\X\^[TdY^fcb]eeZcrXhSe\idX[Z]^Z]]mY`Wja_f\nWU]sc^Wba_ekViSxbfa_VW^cc[^sgXSXUffSme_nrX]dXs[_aQf]ZiNtc]XRj^zq\ZWalZWm[_bje]aVdl_b_\eeZcchfb]gUeZfhffoQpsilima]e_KccYfc\Tea`U[X\bbWXY[Yb`bWWY`]W_Tdi^haVV`YW^W^ikprX_ljcqf][dfshejRm]ffk`Yp^^p_\bbhqai\gaYYUb^RmPUjm\^Ql][cXelepi_V^tXZWSR[ifVf^TrdhqjuWg`ge\Z\^X_deZf\a[X]geoefToaibL]j[Ypcid[_Z_YbiR\WbVZTlprtdd`]dbUafd[hzVa^_RUackRiYneao`]paWseQrgdS_[\^e^[da`gYdSYUa\]a\nVVbmY]YXg[ZXeekdba`ck_bt]UvS]eYZhc[`^U|qgX_W_YjU`Uf^]Vdj~cciTYio_fkYt[io]dQbcVeLba`X`YZQ\\e[aei~XZbbhXlaibM[d_dSNOd]j]ZaP_sbblaw^ZV[gfcs`aZiaclQdnfX[kR`_Umc[vl`_q^^YZo]^cP\jndYgd_QVZjZ[Ricp_UZ^kpaRaIRdYcl_]qYV]lZZmvkgX^Wed]sVhfp[ZlS_XKYhhh_\arc[ne_aijfdXb_Xrf^\maHjxYTQenfdafUZeeX\b^Rj^\TV\\iRnXb_edXuh^ehY^`obdbb[cpU][a`neea\\`U^gUYeXa\a\gid[kc^Xl\aesX\mhcNZamnp\xcoeRr\TYYwoYhY_cm^\[^N\VZWNc`\\I\fUY]U^ZVeoTgX[pXnSo^RdYcf\hN^[SvcahbQ^V[RgYkJgPVTmZf[dVWSic\m^dpY_Uc`nfl^]S^QdeK\UwWhTU]\K[h[WPgbW_Wj\cSf_YZUJ^TmX[`iY[TgZaaa\g_[\XLM^_XtVaR^]jnbSX`\\ZQdUfhVRYedVQ[dXhd_\dYVTS\ibl`Wgo]MUoamYLVPUaX]X_c\YZiexcXW__TXdt]jQUoRVMgNNeZfoYXgdeXR^YTh[jW\e[\fZ`n[O]a^]XX_[WkPJZQScSeYiObXol\jcfN]UghfbSY_ifZTMT\_RbdddbTgf]oeUXb[T\^\ioTdQ]MrjXWR`ZehMRZk]ZkaYWVYY^Vbcajd^a^bVadpj`\skldb]`eYY_[f^b[\bdddYeaiujb]b\c_^~h^\d`qn_yg^_`dbi[my^n]fer\dcmcfaifi]hhu`^\qj_]o`Ubpdslfad\jga^^lao^j]X[nXif_~TbgmneRcedng\g^ode^[dbs]cc^`ff\emf_o[neZc`ZWYkdnd^^bXaaacb`^s_c|``awua`a_ugseebchbbc[bhfZblX\`cZ_XcieZae^dna\fc`gca]ahXZYh]af_bkdmf\xjoff`agja\]kebkap_`_`m_w]`maeardYa|]`fxd]bc]abbeok`dxf\`h\cqe|cgj___dc`w_^cw^`hg`[fb^VbpdleimbekdcV^S`]acUMY`]W[Z_^WT[aXVXUVY\fbJZWbTmgRkZX\O_[aVdeR[[^JYQW^cPaNTZ^XV_\`Z^^`Ic\]]YS]Y^P]eU_]PSa^YRhTc_[UY[X^UkV`ZpYVW\\TXdTXiYQYU`\YS]^UZT^ZNVPb\WZ_^_UMU^\Re^ZZN\Z_T]`YSUW[a[_\X\]\\YZWda[`T]Wa`hTb`WXU[da^aNU_ZVU\ZejZac^TSVc^ZU[TT^]YR[[\a\YbZXXi]lY_X^T`T]_SWUfVbV`iaeZVZVbRcUYXXY\dUgWgZSRWZW`\[QZZXn]]a[d^\`WW]O^VQ[^`cmV^LSaeUS\W]`ZZYXWRWY^SYYUaXO\fY\\^_eUvYZYX`fQY[ZYWX[PU]_f^baa`YYPTQGR[SY_`LVQ^]^M\NV^`W]TVbb]]a[fQU`VNQ[PV_[fXbdZVXe\VQ_S\]ZWZMZ\Z^Sa_WeP^d[d[SLUMPV^SZaSVWifZX]]\L]W^\S\ZSY[ZN_`V^_TXVRPT\J][`]L^UWRSKK_Z```a]PP[]VX\QZ\VVVNQi^]WOVSYiUfgXRPXS[_Qbcb^c]]YOSW[YhU[WhSPTV]\XTNbTW[VcTZXTMX\X_ceUVXaja[TR\OaTQNXFMScVGbdY`X\UZ^]RGZ[^]WWT\aSZY^^m[ZTWiR\[Z]XS]NTDVZcTT^R[Wa[][[RYcR`WT\dXJT\X`ab`QgLgdb\S`QcW`aO_cgbT[GVeSeZgYUVOb]X]P]`RTNhaVV_X\\[TU]KWbX_^[WR_Yb[^]gc^aX\XXYT[fZ]\d\hqdhUbgQabhd^amXn^_gfbtZchcZYe^\^]`TeceT\Qe^[Yaio^c^V^[el\ic^\^_`QTl_VlZWWUcWyb]gh^hd^a_c\ZQiI]aVYl]][Ycd`]`[WX[_beYag_elZYejf_r\c`b[bm[bcamehWbboZTY_[S`]\cXU]pcW^c\f____UVb^WdXP`Z_]g`\lVmhvcPkaaaV^b\]UXcbd`Z[g[d^fhQX[[ei^[]zZfb`^ZRiWedZd]Xpi`_`ga`YbwWagaRTdgO\ghXa_^f^_eXoauX`X^e]e[]Wb]_\_dW^lgWQsZMaf_]ib_arYholWwpk``Wa_S\`\a\vYhUkikd``Vpab`Sb^XaTfUky]`fea[]eTYggpjchZbk\klcYd^a\fa\znedjbdij]_cc`\dkn`af^o~p]`oigd\af\[`V\c\_]skh~af_nb`dX^hll]g\`hvcd\dfadbYZmgce\ZiWsda^_V]afkj\neaZ_X]jgfi^Y[`_]\]gi`vZ^g^n\]a]ga^\a^c]]cctYafdl_\ad[eldec[Wbaajdhahg\b]f]fc_{mW]_km]fcaeachmWgba`hhekgPgnhcodg[[cfdqhqeido`gUV]m`h_[]]bZ]a_nf`Uu_`^T]dl`iW`eje``WWibfgd[jfa[Zkm\d`]o[_b^afmkagdjb_^]p_hYaecZ]XVZ\]Zdbdkr^a`^hZhsebXgl[ln_VZckkZd\nboWcplaYchkbd[bv^hahfaej[j_`OVkWX`ob[pWbeVU`UiZ`SbNWcP_ZMc^iZWZWWRf[rSVSflPT\ge]a_Wi_zXZlpTm`^km^`\ZZ_`Uf\|_^^dYbLTdi]YdaX`kMb\YQXW__XaapZX]d^UgplaZcb]ZmW^Y_bsgUrew[f\UnOR\PRbRZEkcfZ\_O\ZWV]ag]X\}cdXigX]ZZXXUbn`bf_TI[_\dgUZ]bXW[cNUUTfY_aITg\bXizWdX^nrad[hdOe[PP_^ZeQRZdgffYl`]^`X`hV[acSZ]Wbk[WVVdYW_WZiVN\aWiU^cMXWdoRct\ZmIZPjRhHN^P_]n`SaRf\TZbcQVTsQanb_gV]V]YUsKq`b[YiVfn]koW[jRRmiPfhaaYXkddOX^RybyRcTZZMS|nj]figejbjdlkrfbzjrnmb_gfog|fdjd]ba]gdsqcXlejkmffmlnZdbpgxzgai^ojihh^h[ktfXjg]rchhamfno]`^lacwe^lmqph^dk_[hrfmdp`givi\aqebix`iZbasmmhvono]lrio]cbnkokjajct}enbmkvjntu{unoolnlpofjipmsjmlh\awlmhgii_jdjic\[kwcemme`lqglzdlehjpdg^palg{smnohtnmzarhwtifdqmbkdjftafoZrllyhfkkjmcuvg]fwdiv^dcqbSruv`eloa`o`nbc|omga~igooylkihjrrkmjmv|ebgkh^mi{ms|p\d^jdjgaj\ljkom|il|gzWfbbhka{obsmifokNl]XkWccUc`[^nWcixVkeeaZ`^}S^h[i~YdWSZYTWkcezTew{afTVWbVnelzaY_H^lZdijN][U[cgkzVdkaX[UdjdsQTQW_xX[Ys\PfRlWsigOmfPc^`Tjg]cV[~Zhn\_gieblS_^X^jUuYbeuRT_sdjk|ln]RiaZ_T_PTTfZsS]Z]^ggoYYXhQwghywL^sYc]iiPp`V[kjvZ\Jc]NnX]fneXe]QniNXUtbb_PmaZRgZu\bLR^uedhqYcXkTdeZ`sLnxTtSf\uXrg[ladVkgXdoXSeavSbyecUKcY|QYPTet_`VgWg{o`eZb\f[bhYaj`I`oSgl[JZQLlcYeYeh\WcfohR_j_\VRaed\^YijS]\SiUibiKVecbeflbOxhVjehpjargQfU^^]wmnUSVe^VnX`TUae_abaa`XgY^Y^_^gVTZXcZeWg`^]fVVVEXUbkXNgQU[XcoZh]Vicon_qYl\pW]\`Sc]Yq[vd`cbc^^ZcXc]^[fYW^iia^WXm^ra]hSjQjY\b^b^[[b`X^lm`\]^]]XUwj^Xka[k[bmNgTfVebcaS\a[_`[m\gZbdfXh[ilefmXm}ad_wNp^Rcg[UdW_^\\d_dSgVh^\b[dhXe`Uapjcl[wlaV[c`b\eT]UfdiHVc\n_h^OXVy_WVaThj]`_Y^bh^hXVicfNdYZU_iZ[jbUgU`a_^eU]aoedzXRWXVWkjVVSRlReijhVab_g^e^TZkU\[UcccWe\K_[dfh_[nbXe`a_Xf`fqjirqvzvkokywohlnogyjovjsoisqnqojojiurgklstokjpglkti{qx~n|fqnnoxjelnvuwpqm{konrtlurqniolcoo|ooirpukkpoutebthjjlnqnhqt_nv`gahhhn{hfkwinobafdqoj{qkqptrrfok{|mvmsthtwielrpjx{bxcgusjsryhlokpoqvplp|gsjsuorng{qvxrthjsigimlpwgmlmctzetmufmprnhjrokaplqhohrwqwgwqsdwhvmwpnlpxmeluqomnun}uyvtmkqlutnipiyhtoyxjhprgolgiimmsrmoqunruvfcfrqepnvqxrtnob`rnpmfrpwrh_utsrg|mfsfttgxllpvmkrxmnzonlm}d]dhj`\Z_aoaacP]gUvk^c\\i_iua_^cbb`\Uonh]h]^[eZsqh`dyck^[^je^[t_c^dg]dcaxe^mk_hek_Wma]qk]`gkf[jciZXcgYaze[f~tjhh|TZ[a]kfce\g]_ZnWq\\mm_fmj\ZUibl\obdabweS[V^bxf[[uWX`_[VZ{_g_Wf[d^[XZeyXk`Zhyijn\cb_Wdb`bom^g^c\Tfjf^]^d\d_Zla`^\[h`a_]t_la`laa_fefRYigVhb_na`cfp^abRak`Xdca[`X^e]ar_aW_t][VcZgaofr`i`h_^duiaeUoocb]e_Xb_]mahSk`q]WhYabcl[`c_Zghcm`|``ekZfadZ{X[e]jc`n_ZZWeU^aud[\S]a[\j]^QcePpThjck`Un[]bfae[VZUbbih]\r`^}tk`_cQ\Z^[RWb\ank^aes]`acdiRTP`h`X^pflh[`_[ijpcW_dZ`igYWhc[ba^UZoYfSdh\[]Tcb]Soabcpi^a^`f\TW]\R[`c~[XV^db[s\]eRV][abXWV^Mum\Ylrf\[gu]WK`_[Wvm\NiX`jkZ_VcRrqc\ejqVriScf`[did`e[^YjnWej^_T`w``r^fVXahfj\\Boh\lc^jSfVgb`sy`[bT^RcueuU\VMXk]qiOlb`b}clYchagaef^lpZdddZ`Tcmqg_^rRha``YXaSkmWX\gSUf`^Z\aTWj_W]WtYcrSXV_fVRhshl\ec[]_Yh^r^d`SVbcZ]YZmPRxlba_Z\dTcSaVdt[fpbnaXC]b`]NkUVU_fXcYQi^[[d\[`ZhVjcbjf[gmWew]TRSPqThXQdYVWeY^cPWT]keZOld\hmcW_TZQW[^h\aiV[TYSpVc_ZfW[l]\`OqiT\PdZcWVWSX`X^ZX`VdxSjfYV|aS]UcZYY`jkTcffrS]Z\kka]P\c]T\iRa_Y`UZ\RfPYWe\d_je^oZq[PTLU^bY]Z\aW]agm^MhuWbglfXdaZUebZeiYJjWazbch_WdXaaoZibkYec[Z]hX`[iljsYk|aXhZq[r^]\[ca_iXp^jZYYtNhdcj`^WehnTjfaU\gPeYU]dqWiqg]{XYhIobv`K[X[^Uekcg_c\]w[]``\WbSZaTaRWde|QNY[bggYlydgPUbaUe]^ejcggkai[\UiekheeTcka`_UaUjfjT`kw]j^VoXbZ]fffv^mgVSab]bkYV`fWeg^jif_kbYf[aR`eY]heW_v_a}khosma`l_rYrVWlmjdioh^Xgrm^f`gafX`s[]s[ackhUbZUX[x^rgWXbaed_rdTXd^cW`Yc[a^UXbZ`\pb[avVa`Vn[_dXmig[_ae[gm`l`]n]e\OnYT]^_j`]fxataab^ejjf`dcQYe_c^XZu_L_aijebg\[_^ee^^lq_kyadkchgXUiZk\qgjickki\Xbxbf`_ojyV^xYfhZdgt[^a^]lZOm^V^`__`Vhc`]_TXdX\agl[ml_kliNXgn_\^qZhh^jqj[b]WgedbLflYl`X]kl`Z_\dd[tP_cg`vbbf`]]`WYrPyxdbSaf`ZVthhhQ`kp``^Yhg_YxYKckV``dWcShS]g\yZbg[rPOeQf\^eWqXg[o\fXasn\gVWdZd^tykihQjWltlP]almbX[y`wcTp\jeWZZhoqb\DjphgeyRTgl[_ag\RhNce]kMwQVWrt\w_YQsZkc`Q\aaQhZfY\jr^d^YdfdCf^H_|ZdYlUldYn^d]a_c`U[[]^bWkjU_Wl_W^da]LV]Z_\ad_UWY\r`W]bhmWVSWY^nebb[Y[piRWW_f_jVSM{VY\ainTabYcjPRhiiiT_Rpr]Wm`eRdfi\W^}HcRkkaXT\`fea\~axs`Vd[mhQf\b_\\rVta[[\eTvg^U\V``a\^\dZn`fmfZfaf|]ghg_aWgnnc_o`mgbgakh]j_edahd]fdkU\xbm`aahiac[ye`b\W^dZjgfdk`fxn_[djhwcuced[``\j_kij^ciade_ioh]Zb^[Z]`d\wZfh`]gbjtdcojdXk_en_T~pf\h`kdjh]fcq][XooidrldrUkgoczU_pj`_da\^_lm^|^h\dZggZkk[\jr_jai`ehhi`dV`j{jbeub_^jQa^k|YfdlcVZ`go{`m^dcb`Wckfe_[f\f_kiwYX\aZf_\j[mfce[fbfkh^[^fdbbbjeb[dfk~mYfdbcnfUhlZeccaaaqn^rfd`g]Vd^blb[ejlvg``kjchhbgbmdbeZbWincYk`ah]e_]ci{b`WmqWU_iTT[cU_d`YwUafZNbcPCY\QPw[=Ibdp]fbYk{Y[Uk[fOaZarTS^`kab~dSZb^]p_YhWNQVa]VDj`iaMVYeiiGX_WZfeZl^fh`ROWxNegWaOnkW^OR^L\]\klgWdn[Sff]Xtj^Xea^gfa\W\eghL[WQ^]`RmUv{kdn\\MSVgYRNUrS]x\jSPXb]f\cWddgnnSYZ\bxcVjI^bFfbd\cajW_STcN{[bbYj\^n^h]Ugq_edfokZXl[gT``Zj_MZvPgYbSR`m`UbXTTNsbYZ]biYedlY^[VTTiPhasQRcPZ`ScuUOmsUejr[[UbuSnfgc\[[Xq_WQWY_QUeZtYOpmm_]Wdlzi`TXRgMXbp`sYc\sXSc^Z^m`bKMZmWeqPYi^`fkodcgSiYfsN]dgYgf]_`XWc^t`dpdmZaoVr\oZ\XdmZpggQTb\^iWc[mlT^]aHvwbduknZZloh`]eTe\Xbqo^tlncRh\ZVerofs]\cil^feXQan{eZ``kmWUgphgX^QnOC`gegkVhe^ebkUd^n]hkSvmeWhdka`leNXSUfstpKc`Th_wgdlqh_aRge]iif[ajde\t_dibuX_nfe_VaZye[XWdi]]TV`__j[bxca_Tm]sa]lleoivpep]Yg\dco_lXFgkiec`apldXrfXpx_T`]fb]pr^sczl\aha~Yg{Y]^kwaaqzbfgr[Xb~giYnbeTxktOpZXR]gXiVnb\ihTe\mi[Xdb`T``s]bhflf[fwnWk]TkRP\[RZvjNa`z_[XUfZWasTqhbVcZa[vbraqVieVelVURq^Vuza`unr_St]XZpl{kx`IcmNtd[Ybamul`qa^UocWWa>mZbgN^aiWdlfXoVndVehXWwGWdVbi}_yYRl_cFhFi`PsaXZfr`__Vf[^_SWfhrkabfhZfdeiitc\]`_[p[YbT`eXWZ]aqRTjocW^rZZlcakZuU^i^_Lb\`b_`U^]xre_nrQtSZ]q\g]a]Yal^\]fia\q[^TY]Pbha`SRT[k^pb`__eRmRgP^[qgS^`bWejbY`Rp\QdV]XVUa_fbT[Q\^TUhhdaoWiX\\}dQ^Yoyqod_dVZfZvbqwfxndZ[as[aNiV\[c]a_teZd{`VUnffVaX]kZVTkQfgbSTeS[kuZeWlVdcO\acX^ar\gjZ^\YnWizU\tZlZRY[V_VjV\TVl`WabmZYb`\^boZ`^}Uagb^plhPe_]WibabVihg``]]i_b\\fYeUjwT]onZSZ^bVoafUk]kWcb^pU_tVTS^lbdUrgbhqqimrehZeu\pi`Vhl`qmetgcid\bfeikfaynde^cmmgf`o`hqcceekgcxcrgm[t_gYgglsk_fht^_ccWfsmmnfd]l{fcj~mme\b[]hn{b}h}_]dk\ca}^X`xdcYYircfafkecizk_iacfx`UavSm_mzpeSqoRei]kl_j`ll]^ui|ccXcqzjvVX^c\]{\uV^mx\avgxi_eW|]_mziXlWguUbmaoi[ccdllg~UZS_zclkfb`ekrlgcej\[xj\]qagkd`]fj_~}ybhZ\wa^upzqYmqbqil[t[\fzeffpih|[djhccc~f]S[l\atx|qipuhpou[`ZadgqafblQi\jdgaq\\gck``d`r{m\r`_[Wdw^ef~ce^_R^W^\XpYcS__di^XXVhZR\_Y_\]teM\VY]YWTWqVig``eotb`Kef[s`V`AU_nfPPO\gd_jXe[fRk]]RPMgN^dYZYXlo`]^Z[VYNUbXYgfXvUaZ^VZk\VT^Umr]ciOYid\R\^d`b`MWaYgXe^]`^[d]c\l_WZTPb[iJ_mlYeMdcE]dX_ONRWkTggbcp`\d\dUmrmXZbU\TRfVUgd\J[g^[oVlbgzh\\[Q`fri\cY`]Rdld_bXdp]aS]cqUcUxVgS`rThXdiedpPe[SUV_XbbbePRbJ^Ug\eVy\_j\W[YVShaVRibQkYYS^^kLjbeQ_`UgZHa^U\\cYSYcS\l\RWlXoXNaS]ce]ehWfu`f\Nm``o_Y^`TaQ_UngXTfaUXrcaQo]pdwbUgS[arav^aaUqhk_[j_b\[lw^A__HYapZKYWp^]tf}VOs^_w^P_^ecd_ni`P]i^YYc]mYcWl`T[quURUNRX[]brRj[d]tVmlv`^WeeWLSosXSfX_hUs\OfhifbmhipnkQjVbpZV\e^flkjhgioyaIX][`nqVii`asb_ee\fY_[qddYbkq]`_e\vOXpdll`facRgbUp^o_qW\`]OrfdTay^a[dk[IzW]jTuy\^klphf^fRkZ\_e\YvPcxV`To]dN_r`SwmTch_Tb]ZkfUbc_^ldRdcRucfZgb_[T^[ohYaeQ^lzganjuZV[fdwr]]ncbKhkUla[rrahinfonif\p_\c_[QTib[jXaudImSo[^eUgmYdcmXfp[Xi[b_YTc^za`^\g\aZ_f[^[^apVgyc\^de^fTcc]^[hl__VhecWqrU]VXZY`W^ftc]]\oVnb^\q\jf[[da|Snfr]e^`d`o`^gqffa\YXauTf^d^eqceSgX_bbb^i_qZj\gsdRx]abbdSkZ`ahgZbcNN\k_]N[_iXcdhrZ\sj^_bP`hh`XYPkjwicgVa_i\XVfPm[gek\VWi\]SsXcg^WZkc]]f_gg[l_gcd[iXlZrhni`j]cY]m]W\W^`\fbdQX_`gW]``UaW]_bfj`VgieWeaaTMWXcacgaPpVn^bdw[[hdUgZZclgel^[SSXO`[^`_ae[`VYRXj^fenbY_j^_o[]`[lYfZmbjf_qf_crTin^\megQhlb^qgej_cZ`fjdfe|ilew``de`^g\_cg^g^nd`[\ath`ajvssebe\geZ^_kagegfe[u_`eme`hmht|fihecgffZg`aies_^^_b_et\nf[_Wmgb\]`iuh^jhnbcX`Z\d`j_``oslhhddYmc~hw_qib}pgkbrU`veo`\dejeq[l_[dibfbjkbZciY[_^^Ve^^ceYq`__njhiehjcad`\hcZ_`^]ki[ldcaVgi`f]gbZai~]__n_hss]{lt`ohdhoam[_ceYjj^|oX`aj{]Y][qlopShcncfgqlngayqfbdgcc_d^fXw_``vQjmikm^`ppXfn^c]bgkfZd\fbea^ihnbcp^sakhdkt]ac`^boec\fiiX_ad_aga]Vvijrd_ZjL\``bn~qUzjlmUdlaVSYgdmveQnfj|gnf\^eYf`beoheiWZdbzmm]U^oW\[gx_u`Z]l`tSnzfWj\xsb`uXja^fpVXa]`^i|YfX_pniXNZdlW[IckYUxnrgStVts^[jhWmq]^dgoqe[^Znec{l`k[^pi[fqVTwki_`l`fnOabalogxfp]Yc[]hZefdYkq\dop_c^TjpWX^_eac^d`kkdtgaPoN_ZWoh]qp__[Sriqdfp`e^jWkqh]ie[aebcJmibdk~eqbdXakmYbZgkOfhPi_hcn[|jdYmj[cda`gRhseYmZ`a[ma]dp^dhL]c`_lg`njN\ewadieVhpclXNXYY]Y]TTe_]\\gmjk`^fZb[|iey|fpgrTiJcrXaUNXrNPRsQ[Uf[\V\UUTKsa`pth]]lUjaalXb`TgQ^[YYdNR^[jV\leYe`\_MPYeeh_[SWeocZWKmb_Udm^jrYnQvfW|`\N_]zMd]b`gr_[kTYSg_pqUeb{TXj_hh_VLU_nIQ^\Vu_k\VcW_`]]KSZm\rjQ_gX\_XR`a`[z[][fLzaUTOb^d`^ZceOS]ik_[]asj\PepObX_O`OXq`cViw^kaYppVRcfmLbaiVw`hd_Thah}iXmax^SUO`]pTkKXat_Z}cgGNPYTg_UVm]jlZ[\loP{cb^KRbffN]f_ldjTfVRfhdbX^{jPerege_kfq``KYpJedxfx^ySpJDWc[SYa_Wo_\ZN_qqrkub\gd]fWdfN\a}d]Qor\e`b\l\SlVZcmVcndS_[`uaknUZfV]aaTjdYb]WgZesf_]u^]k`bUfbvYe]]Z_d[h]u_bdg\j_TjXe_WcjaVSYeidXaOl\f]NQReZ]X`]Wc_anb`^dPgdVV_eaYZRfuT_XgP^YzWdcJh_XXf`hZej_jdaZu[cfjlbW_W]\dZN^_lYZ^e`\hh\hXo`_ZehJabkW[`xe[_[kUa[\Whc_\dXVLcZ_qwbcbabdseZ`Y_XgWU\`[Zn\bQ^`_`lsrd_[X^pqRZSZah[ZgVa[a[Kh^Vxo_dShie^bUZga\l_`f\[^gm[j`emTWabejcU^\]We^m^Xea`_b^Z`TeU]ZT`ZbrZgZi_^Qbh_V[c]ccfXnaZdaVtZ`aZcm^apj^Z^`abaohn^n[RnQwWWlJjOw_xbh^g[YVZ~ryatZhuUfeJ[djGv`ucfbjMzfTcjGhhjduhddmbcpTjsXl[]snbOvmqfY`hage__RaQa[SYdYc_fSY\OiO^[\a\mTe\H`miZc_dxuNxQ`|crLJA^wZo_`RbagdldpU[WSYhlRhoZLPZdcbZ^]a^k]aekneuYklahdnhv[iecf\ya`NTl_bqRNyLb^VcRqyb\h_{nW^\Ed\fs\UeqhkialqedsQcukbL[RRd^X``bljosbilVfcsvbhny``wObhI^Y[rZ\[sec`ffqaXSgOgi`i__UgjUag]kKcrfoFqiFe`XWu~dbkbQfufal[yTgmoSvmIq_}flPA_[\]m\`a`Z][Zbk]c`]Vog]jb`_^\jYmfYo_e\]Sob[db\SdkYVlfm[ih^eW_fXSgQXAkRnU_b^fbVuiom[[[V_i]YcXVLeXVbLkdLgZeKVccvYW[fyUmc[hk^m\huy\WZWYj\RtfcTkdQfUaSmgUmh`UTh\bnTgVPiqevM`jRV]Y]_ZZiiU[VX]^avnYWg[g__egg`_PIc}ML`Yirr]lbVVjc^W^d]`[Ybjgsk^_axPgubrg[ip\Wdj`t`cbthXXjv^e]QZ^teEaYaV[[^]\fajbnTNeXXf_s[^rq\Gm][gahkQ\^X^v\UWfabYkX\ieeZdhbT`Ugi]qijtp`[otUa\e`HabdJ\]UUcce\eUPbgma\QYZYgcUNdajqka[R]iWYVe\_dZqgTiahaPS]_isa_Z__rUSl\ia_YlUq^RaZ`lVsYZbQ^b[Q^SZ^cVVafg__viTl{Zi\WdmWdxhjwYccWuc\akfe\ieZY\^[]X`TcibM\YkX^Y`aacWf[ZV\Z]TeX[\dMrZTVX]_VWY_qb\^[ba^_d^aXpVLSapW[^`_cZf`b\]i_\c\xZ]]Z]idai_mYbYSYe^liT[lu^LRcVihTSZ_W_qcUUka^N]Wm_]Yj[iR^xsV\WNQea^[cM]X`Z_cnT]k^XbXW[afgacZcVabbqWV`j{_[f^g\Za\Uc[^RoXS]P`gjYeUU\T\PIc]Qd\e]Xc]\]o\_j]\vYdc__RYjeiNcfWXtdRY^bu\bi_kaxYRdrn\_X^Jc[Zj]^bPel^XmXeub_l\WQVaYZUfRc`Zk[UjS]f[UodjY^c^ne]TV`PV[ofoYc\YdSTeXQaU^SZv^ThfdL]g]XlTe^[qYj_aZUWhZY`iZb^af`X^a^aZY`Y`W[PYeigTYWX[\PR]WnfmcdfceZ`f]bY\Ndd]cWLe^ZgV[j]agVkT`\ac^XPlXOa]Pucg`OUcXtTU^c^F`wv]SU\`pXWUqna^b`V]c__fca^fUG]cda^aQI\c\PQMWgS_aXbhVYU^Y\V^]^QfnfUUISdY\ZfQaeTdt\]pewZZcl`VvjdfgcR_Z]i`^ZfiYYj]LV`[KWdk^TbfN]W[qeWXT`cZPlYScsld_^]QhdPXZQMqimR]ZbZc^_m[TVUf\e`XaY^epWigTX[Y_W^`z`jnenZcrohZjXfYZ[]e]kle^bk`cdka[\ijgz`fhvg_`xbXn_egV~\aaekacqdgel\t]ch^Xfk[_balcbpZXaeYf`gfxSbe_midogcjm^WgmcjX[Zkb_hiZ`]iia[`_be^ncopdde`bbedZdc]]Y[pew]dhblfv`d^VaeYnd[M^_ai_ip\b`c\equcnlehfZbU[mgPZbtwcYbc[u]gs}e_ibg^bhfkiez]fbdeakegbX`\i`qakla`_c{X^ni^[_`cbhuScaj^cXz\aalcWacharos_k\kwdd_wt[l]`eiktm[chbhtdnhpd^Y\e_iYmcoUbcdc[_cvbVbc]V_gcWcdsja\qdm[kk_Sne_ja]Zmgaf[W`]S_XR]h\WWVZ[RT`[Z\RTYSa]ZZZT\bdV]UYZcZ_U\\Za`[d\KXZP\XYdR]hXbX[[]WT`O`VaR`^Y\\]\WUX[]dP\SU`^URW`TW^^VX^_WV_YZ^Y^U[YcYbP_[]XTYhjZRW_\]OXWbMTfSNS]ZWRbaO_baZ\UaQV\bZ__UVT[]WW[bb]]N_[\bUa_Z``]SY]Z\`c\U\[^bVN[RWRW_`_[Y]SW]\We]\^[XRV\[c[]gY\U[SVF_VZVb[Y^WYLYV[\cPUW\YPVYYWb^Z[Z`YWg]ZXUUW\ZM[Ydd]][`^_Z`[WOYX\_]WWXaIW^PiY`YgQX]MY[^U^`e\WZ^TU[RN^XaUdSl[PQ^_VEo^R]\fS^\ZV]SUNXbbU`bVS`T`^X][`]mL`T\c`ef^Y`]w`b\hcYf^egYgedpZhiab[bbg\qjg_pbZXiSwz^d[eikf\o`kavgaW`cbk]ngm[e[qfc\[Xqil_`i_WRYmscUkgzbcWm_d~n^kUfcbos`andbhc^U_m__WkVhfbeeha[oiWtki_XXcfYl^bcYihad^Za_SX_]`ZfakrrVg[nZacW^wgbaXp``U[k^X^l]jW\Od[sja_\]jd]g`oiXc\g`Zbbzf^dl^haat`ggf`mderbda]chedgb[m^V[__gbj^bodl\[[k^iZZedR`nY]_vfdbcbc``_ac~b`did^rb`qc[p`UMh[XjROggevaYkXWcfal]W|gjpee]j^Y`m\bcdXQ`Q``e}e]_Sibc`sXga^WeclSSn`bYXhbTqk]\\vacepc`aUqbV[VZjefeTUZYei_g`cdbYYf[`UP`^a^^XlefqeY]jZi_QUf]TT`eNcXv[lWbk_bdu^cb^Tb\pa_cU`YYUXqWemXccSZeh]o]ZTcXUu]Whg{ojOjlj_W^^XlW_`kVneevb]Ma[[Zube__odX_RigPhvgd[fejg_^[]Y[bgoVYgY`[_ofL_baW^Tbain`Z^b_cP]YO\sV^[X`bZaVV_jXYj\^sb]jZ\c]pft\le\e]c\[]g[dUZaWZabOd]f_haYUcc_n^b\bhea^d]^bb_UqScSla`inZgc\a[r_v\eiXjf]`g|]kdTl[fbcU\aX^j_^dXlon[gj^hgUkd`XNU_dcW[MVZ`^NTUlfX_Wn^aWegXX{P\[UaTdZaYingYeY]`}tZRaY[TT]qQTVkkgOR^TdUU^S\\jRXqn\]g[[kan[`Uad`\T~_T[`UcPxaPil^d]ZJS\uVLg^]VTwh^Z_PPZ]anpiT`agS_TiggaYeYSaTTg{]bX^WWRZF]c\_WU[VUlXOdnb]SacfVmY_eqbVom^`nY[_gXjbUacZfbd`VkU\QVhU\f\^wW[\\hqd[hRV\\ZV[RX\yZYYk`o`WfXVdU`SOT^Q[qUOj_Um\df]bZ]^hkX^Ofc]OskwbaJ|a[cmdx`j`\al[RT]ddaZYVVbg`Qd_YlUCh]RWd_aeOSWhhePUykMOggg`OIqSvSW^^g[kfZ^puR`\UZW^iZoSyTgi`\}aXk\^]KSXgd_l\a^WPZ[Y[qehx__jc`Zf]Obdijm[hu`ie^]_Ue`lfhiahUla]^jUb^mddai[[bl`Z`da_kabwQd\\]gZa`kcqXjlkeimXj^mfcScW[q_ndTZYYni\fa^bbY_c^^\\dbcah`cj^Xvm_^akdd_nN[XmacZ`mjkZ`b_d\dh[kjianafd[ZggYhe^kjYsfk^V\_bfcccVg\YZaabbXubgxXe`bge[uYYwjWa[\`egY]alZLYnb_ecfe{]]`feP\qtaj_^hbW_cZp]^[Ug_acdhUbZa\`hiisR\ma^^ce\]Y]~cva_^_sdtd]odgb_f^ifZ`ibmcgidYizWearfbftjSa[\^kjg`hVe]he_dRZ`l^u]cfdei]mqZW]yYSbrcZoT|ek_iay]uejnpxf[~[hsgypt\aontgaUbTdeooq[q^vbXfl\nbqk^^YPWaulnh]tjabaVRZh^|eXxbxpo`]QRl\VdXlljj@o{njJn^cjbjcm`e]csN`iWsWYVokfdOwckrb^gbgf^byp`_kklaidT`zfZfalXua`epYlyZ_l\iU\[zPV_YhiYxg}dkcuZUY{P^jRi^rSwepySbi_[didbpps_X^dmb\cjb\hi\\[v]^fSWePcU^^j|to[Wi}OxijWlg[LdjykMiY\mywij{pRt^mdivjUdhfWoW\dxjljVWV[ieWxPaeRVZjFmYP^PWfZ[gvyVNca`l\ddfx[vsUO`cvimuZd\nleoSgoakcjhtybf_XjV^c\mTl_aYdVW]ikbh\eY_j^S^Wk]laZfwfdhZbWZ[_km_]sfyjcashWt__jfl{VbS`}cGYUbYY[h]Vy]\]^cYYgx_Q[xb`auco[k]_aYebfrbYeY^[geiQZXbj_Z_euY_djlNbkqZgTiLb\a]dOi`R[\u]irci`[PdijVXW^^][mTkmc[giXr]dYp[]rbbXd^lgbTbPmTl^`W_snWXVoxc^\~h[j^Uu[WkcgXbndSO\[e`IY_ixU_Y^v^[PVZ^eS\[apLdirfY_~O{t^tYbUY^`{W]deYkm|Xbr_f^iae\bqZ`pUkaojvhX\WZV\l]mrZXfN\oRQUfgdlab_Z`aT[WUpqf^_a_eWeM_Wf^ZbUYhjj\kUugbelYSZaBn[abZZbbiVc`_jpn\_gRfOWq^`^S[RbfacVfe`\jZ[b\XVe`gQib^]_Sd]dfaX]pYY[\`gMgVr]W\cWW_SZ`K]ceiYia[fqdcWVf[`TPWZZXX[\dcyj]h^Wvaid\aceeXe^Vrn[ZoZ\WbpcY]ZZgdR\Y`bSV\\[[b[ejfklfd\cj~n^Z^U\_VV]X[T\a_Nc^]WbZ\cWYWnSc]p^\cO_^bsiccOmadLfaVU]Wf[Z\r\r_arZn[`bjTcYuQcnaWi[Tc[aaYnjVd^]khkf]``Nm]V`qs_cbdYiLa\`[Z`gbm^N]b`jc^mVWWgYcxZWd_d]b`b_kaXd\Zm[aeic[eYcd[dYnM_i\^fZXfdZY^_dg\l\U^[Vaa^SQhV]ecXPZUZhzSWt_TVXYc[Seona]TfRh\bdkM`X\V\Vpel`d`gQYbbaXhde]]VicftycyijvWpz]]eXj\\`pkaX_G\ea]bY[WZek]]aXWhcKZna^Z`dohbgu^n\]XM\TKUmUWZ_gdvagXiVo}ZZknlQqV[cMggabQc\mknf\~ck\PxfWdcld[e\\U]iQ]adbp_]XaeaRVZcYa]aZYa^^cX|U]Y[WVf[WW_[bhYV_j]tVV^a_af]Yga^UXPQsj`Ph`sdpgRVagghSk`YdbmPVb]th][\g\abT\`GdbbYtj]`_U^aoV[\\fuZ[YvdufprUkUWxMk[Ueoe\Y_\TvW^Jojk^\WbVmhTrF^fTUlYX^a[_\ifl|\jyUWaap\zT~bqszdp|tuzvm^vqmhpcxwfwo{jf{{r}ntp}gortuskcgyiampriprlnhsasrrmdlunlmltkozwmfnwhnlgyvq{yirlr`lxbikjqil|keukiuuuqol{yvi|ailt|np^e}htlq|yw|ztanmrsdomnthmeysgvmgaokmjvjxxo[tsoxrj{lonshpte\ujhwsmvrptfemjpy_snldlsvnlrwj{tntyzdsn\oi{pxjgwyolgqrywtzptigrrkjwsziseel_sajqvfyeujqicwuipws`p_nb{owmmomhriopdsyhnemn`|ygz~_suwwspkqsjvplxrkvkyojn`xkzhdntiqvutmzlnovpntder|Uykgq^`]]mkg^nzSZYrjj[_gsUZqiihXagek[ai\`Zg\faZf[n\YjTg\ahrg[OYinZ_gjbdbf_aVdlhf\`^W]Vb]iN^^gj^^[\eTelfURoVi_h]bp`thXgajfOefo_geZt[c^Vo[_lbbrqla`vaghfbfdoaZ\elcXdRRj]h]lVbZjmdef[b`eZd`iSeRn_Xc\bWlPXioelXe_jigdggmfZmObm]iucO`a^_TZjjaV\`YchXbh}dxX`nZYb[jg^r\^pSk\cSdc]ZZXbZnZdUpdmac]g[]OYde\n_cgS`_\ej]boh[hmZb`bcYofnmhUbdgmSvekh`gcsid`kvZcRc_jf^_bvqyn`kQa]ibW\^gh_lgcf^lg]WgZX^^XYd`[V~aYIcgV_^Td]eUfPp]V\]ke}p]OV`YfcNf_]`h\]jsZ_aaVgP^if[[akWrhbd{rhekPw[`oamhgTkq_kfaaWVZ_gR\a_ozRTTcgYWQ^YsP`qYXgVp^XrWhl_hiOk\f_dYdWkWibjY_tafbUcNZhaTj^^aPY]\Qi_`XXjug]UdhaXfUs\cNVdb`_U|_qeb~fIeZZW[TTTf^`iihXZUYO[]_ieXpdkdh[ZnpSa]_XUyTuNd^aYWWckgn\Y_[glV^b\j_]ig`X[f}^[]XZj`]RcbMWU\dTYPif[kmf[YtdTbpccTU_aaS`g_bZPk_b^^Zh[eVUmakZdZqXhjZdYZZj`]VecW_fdh[ohXfrUY_]eW^ckiJlVMXe]dYgigPmkYRNtkeVS_cgU[RUe`T_\b~VbT{W_kmbonXVZknbe\UKM|Vc{|]Zmsy_l_p\jNSjrhgYMfcgatrk]qugRWjf[]qT`YfS_l}]V`fnXff|icbdKVbd_tgmo]XcSgPgheRfNadd]X\ZSiXYgfacq__e\n^gb^b[OZ^poLVek~RenvhmrRdhaYk`]QcQ^[VjiZ{[]pebTs\wreZZ`VS[W{`^^ccRX_c]ka`RYHn^gS_`bXZ_\j_Qm[cUOhPWGUY\[hNRS]cZjPt_vMRYW\`mdO]`qow[khXgRqbk\Qi[nkm\d]krnrpbgax\l\PZlXSijXca\qbojhgktfogaX_efTqrko\tN\bgmZh`fbt[u_bYaca^bVU]mRhUgbbXibW\]gcQ\ufeQPXUaaMY[dV_Xelkaa\aYjbb_qchrO]dR]ZqaXg`_[XpcUV`hac`fbmncS]`k\__aZ]cZicXfQU\U`WPN_`[_e\gi\U[^SgdXaakP]`_`_hnjXWf`eXd_`dVeeTWYB\`f[_[kVYTZU[pb_aTcSde_V[Z[cjei_[]\Zae_vhZZ]d_cpeobncbR]kQdaZ^`d\`boffW_hWmVfXXdeb\SdYSe_`fXgfPO`^YS^ZWSd_jUwfYtQ\`[de]^tXUfn]tNQVeaifZ_^p^ZHsXUd\\fVTfWrbg[[]`[i[PmY^c[_amaR]`Tc[Ybci^o[`g_^Ub^]\S^RaXiW_UR]tQZOb[\Xdt`Ye`^`Tm[do^YZbrRW\epNih[]NncZYdh]b_dgXb_UXU_bVZ`al`Xd]a[TYXa^`Ub_][adhsYa`eibfw_^h^n`k[_wWX]]gg_`iZX]g{RQdW_XTo__|c|cZWRg_dh^q][h^Z`qZ]ZhY^ZYYsfluh[ih]m[ed[d`tkfY]ieWQec^ado_Xeb`]\gc_]ld_jid[nuT^ankjecd_l]r[mW`dj_\[q\^gb`bmYehV]i^q^olib]_l]^Zi^Y^h]es_tTbhOaWcfd`ScOY_elS\mVeXV`[WblW`ge[pg]RdZamSYcx[a[akZhYQUfXaiiYbRZ[fc\a\]`b\dljZchk`bgf`g\^^e`_\S]^`i[bV`]vg]\vx`pm_f]Xmh]Y^_rTc]^cl^yXaYmR`Y[oRkcbrQ`gklfU^edh_aU[YQXV\YU]qZ`bVg]je[YVVU[SfqNmp^lneURUZYZ_iYmik]mbm]a]`]aW\_]i`aT^_Ykb\aX]bXp_T^]po~T]_`mhfUXekRWaib`[dbYu`gor_fNejU^PrW_^rgddikgPhWi__[Yhe]]hToioXWiLZ\WdYSiXd]k`M]fe[\lkh_^Y]^pZf^b^Uagiea\Wi[qbaY`Ubxif`j^ejUb_Wbgbk`XSf`c\Yi]fYo[^[gZVihfm\c`emkV^]lwdd}\fh[c^_j`fcXWcY]ee`gj[YR`ieUe[bhSOie`cejnfcY^r\o[sQjchX`nkcig_TefoXo_Vga`aab{YtvfczjdibZ]]eTTc`Y\Webic{cfiU`\XfYZbzdheY^cb^gmig_Xd^mjtQcb`OTbW\UP]UXWZOTZXa_T[Q[W_aiSVVTSa]`VbXb_UUU\WURWTTTNYUWWVYWYOOX[VYTaW\UXXQWYSVLWUSWOZMcRSPPUV^cVO^\XW][UZRYX_ZUOSTYRQYRV_XZVZZYWNO`__ZRMS\`V[RW]XPTRdZVOTPZQ_[\PW[VXN\]TSQQQXYVPMU`XRWU^R[LUWMWaQWOQG[JIRVLROVXVUQNXY\R^\R^XURT]RUU\US`WYPL[]\XRcVUXVZVRQ]L_RPN^bTXY_\UYTRNSY]NYRQXSZYY[\RXYRcPUVUSYT^ZfYX][TISZXUUYZNdUUQZX]OaY`\SYVWS^WY[XNY\WXdV[^XZO[ViYTadQQY[UUXSW[X_TYTTZZPUXRU\UXTY[S`^ocfZTQYe_cWiSP\\oUbTifUSZadu_f`^]Mn_bfhsgkxXNWR\eSpg^_^Vau^]j]`_MVmk_ccNmaPh_Wbp]XaeedV__fdf`XR]_Te^g]a]UZcVxZWOfUYfTW]SfXiZk]kkljj[nh\[`X^^nYibds^Vk]gl^hY]_dxcoWpk^WS_dlp_XeQ_YQagbeZoolVj`gXiY[afoWcTc]]ced^\g_bXR``T\vd[p`_fhd^VPZ^bddTj_lXYXkSYeVcri\sYNocc[h]qgm^Vb^of[`kXm_n^kZtUgf}TY]h^S_S|ejoVf\gqpZtb_rl[m]Wh`_tiaayV]\bU^hZ`jfl\hkhZvl_jlcaVUkbb]Zcj`]a`oPja[`Oqeoibhq^a]n^gaqYSOYdZasUicX[fhQNh]geC`HskdsfgSjrOaV~`ZURddcSkZtZc\[q`WbnixlR_adu][wUbfekZli^kWTW`CWPd_iex_`{p[ViMvLYZ`DdZYuh\k`SaZi_hPdd_n\ePwcnc\NUk^jH_Ri[ii\d|[[nXbndnj[_f[`[`qciM]hTeScLe_gOwUmef`hfk]emkuM]a\^sSlediM[bhTd`nbcWbiTzcL\vW^\LeUo`XoUYnWfncN[UrYc\c^\XLlbclmnS_weTob_i\OUiSR`_[VzO[[ibVbjwdwUancmempqViagNUhh{f_r\YVglS\]h^YmZ]a~_vSaR\Z]z\^qPXjYuOYaYvPyVfZ``apV_Y\Wgc]qZPpdQc`Z\^]Z_aZeXX]fZ\VcncZdabeQX\Wfcce^_b_idh]]jZVS_mcoe]WaUXYaXbUV_ba[Xgj`f]^r[cZ\iam_scfoc^[aZ]Zatg^v]ZbS`gk^ccwa[fX`bU]m`XPhl]Z]YVV``_TTc]WmZ}qZfYc\n]\^gkZb_XImgZcZyVYaOd]h_]rP`o`dcg\Zr_S`^\[ei^dd[beafmsdma`nn[cXP\`dYibbia\RxUeYbfjaW]\Xdg`af\ffYsM\_`[\jebadZccla[_v_`\yUhX^_icYZ]bOZgaZYdTdb}Xbg]SlT[R]Zl`Y``bScSbiad[fmc[iZWbW\\^Tcd[bdQbcd]\Wa`[d_V_u^^]e]^_dYpdY[eS\]aW__jXge_]^vjc`ck`jYj\[_fO_WUXbjo{kndcYZU`a]mgZiSd\TZpQX]`ajU\`RZ{beVhj^X`^ZcYepveTW[ZN[]iWhT\Vc`V|MQlXZf||Yc`ch^ZXtbaQRYhdVaYcaehekPVcdoY`f_slS__YeYVZa_`SX]fXZneQo^fQ[n]Wc^WU^]i]eUM_[aj\^e\cX^SacZ\kSjdofpmd^]WiZekrYdiP^^pcb]_jgZVdbUXUcgZdcUXNXWH]]mb\c{LdX^_kceac\X\nVXla^`MZg^ie[aZsgnUWVa_Uq]ao[VR]eZoe]oc`PW`\\YQ[\bhsW``_e]]^RYUUe\bkbHUiYe[VbcZje`NXTWZ[bm^LVcdbXteT]e\b\]]W`m^deT^^eYhZ[VUZOKfvg`Z|e^ejjYjd_YI\bgYeZm_kmh\Vt[|j\_ZP]fdPYOrgVdrht`eUhqd\phh\i^sjsMv]cac]VyS^uZYnd`X\hmTvhhbUfYf[chbfnGuYZ`f`hhimXwPhR^_UafYa\XdWdc_cUfX[Yd[hWX[`TWbRV\[Wf[h_a`WiaQfSf\YSUeedeeQgY\Ll[]^l]`[m_]Zf`e}`dafVZbTWbbR^Qzn\_Xi\[ncaU[d~sT`TZnl[`\r^nXc_as\^]RYhY^M`][`sPrcbcWQShjmQWd[]k]od^lW^]bWeZaX`oRZ__kVb]\^l}kmZgXU[kq[VWl]Zee\gc\_\cPTPVsk[[htlUJT]x^Sfem\cZ[ebjeXo\f^]TZookWZ[[X`wWlWlaWZgel]]q_geadazoWi]Zc`oYfkazjZhen]Xfhpjbhh_s^^skugUlbRVeip`]^l]sXalohrw[TazjYZf_pqlY^fanZfTmdZ|`^fzcpkjpqgkZW]ocjmocst{\qWr__ZmQdbrgichanrahinaYg[mgeg[`goT^m[^tNmv\^cbhs`\xmnpfT\`]n\hcRj\c_oh[j_amh\WZphhoetkndley\\]eaihkeh\Xo`U^fwh_Uh`j\aqajechfgr]W]fZ[h`tr^dkU[hYnqlc]`[apcwwh]cf_mg{nbmcmh_ubf][f_ujbVY\XYlfldc[RXkdZg`fb]P_so]l^^`ZW\ecqfwXsX\kl|_mdfZsfqkUidq\keg]bcjftqsZn\idZdmj[Zg`[[\j[UT^Y\^wYlbcijnqX]Sc`_Y_\Tj{\eYoQTPO`S^Uhdnji^]OfUPfI^^N|ZZYUe]\kh[}eWg[^qb^FWe`VaiVqel\\mdcUZgb^\^\WVZHQ^WtXSLXaZ`cUOZYILVaRHd[[cS\^kaTcneITsVSd_cY\KcXqh_\[X]d[TNRrY[^Wd[ZTSYalNWcXTvUrTYQdUXfk`W^Xgm^U`LQ[b`U`kWgTVXTSV]gTaLTfWiT\QoRWYYasUkGL`QPRWW_YfRLWZZNhUcfpUaT]TTnfWXa^QYcgZfUXf[_aehhE`Wp\`ReUcjWd_gLWbaSZ{RfXZN^S\_r``]gid\mWWRVq^NbZmadXx`eXY^N`_o[U^L^POXsV^gbMmdZUwliaVWh_ikiSdgvlwmtgeIiYUVR\rr|a}scYqdxwp__bW_OirTq}gyiZvoTT^edGPsqSukiir~j]h^_dgb]ipScyp\ftaWxfql]h]\[pk^Yxsj[YcWvfauZjjnMhvmc{hUae\]]cWY~bmataX`YsxxhYt_i|z_Uncqvnv_e|sUo[\r_jShhwe[anHpk}y\tlecdhw[fon[Xld`PZr|bhyx`aPiZXaJpaqnPonwQfZeejr^b\nfeJeLbpskWYbb}i_p_jH`bprQU_fXxkdfZZcdpXQpdG}rvhrPgrhSqZjugnV~fkkgiVhshutkqbad|Uufyb}myTS[nWfd{]IUfmmztea|a~bkr~~memdsZVklgWb^qeufswSY\_dhZUcmRwahTglgtn]i[]PqJdijdhZehmXpe_`Wef^eh`md\F]VYmsdx[dX]_TakgwiacRpXreXp^xhw`ahgik\ZcjfWZW^e[q|r`ex`biZdW`gY]ceehXTYdkkcj_haXtpjtfcq^_ccV`Saboc]cabgj[lsm_b[Un\bdpjfWX\VXjj[qiXajadjon__u_e]XkYbRaXeEleiu\khmwZ^mcre|^Z_UenpgfceJd]sdbwW_vt\\WodmdY_dT`cxvdmj[]]g[blhdVlZ^ltYbX}Yidfa^Snjf^{ltjU`e_rzRQmnQ~Uy`\gafieJbeh]`hiqedkfb[g`_i`Mt__c]avlpcl_WcXj_a]kjURRWcU]i\X\cWak\XEarOOSMe[X]cQZXUU\ZI^\YX`\ZZeWW^]zYS[jiWY_SS^\ZRTkW^UQUKbahUXa_YamXfiZKT[WLN_gHm^pM^Y_ZsaI[RZXYW^TXT`TRFHV^beXV`VIPcXcjsP`d^XWTyXZn[\[gc\q``\dZQX^R^PVf[VeVaPjSQ[Wh^XTV[XfWbVifQQS]OX[djX_[`eZSoS\]^Ud_XKba]Z[W^RL[gr^RX^[[dg^]VagZMWX]WJWe_fgQ\JS\Zkd][RafcZag[W[`RdVaVaTTVYi\gib\S]\_fadYVTZpUJbaOdS\[ZWazajXe[VdlJTTeV]bVQcN]bSbSNiTU]aQ_ecZeh\KO\UiRSNfi\bRXabeCX`]j\\[SVgc_ve]_]{ibb_c[_d\e^\Z]hfhg`Wdfejda_a\Xohmfa]cdZ``_`XUa]meeVcaXXc^gf[nW[Z_edrbmkp`l_|d`mcbeoafagd_ebY\blixhbsh]Xgv]Y]rnZW__egme\ih`aZWd^]X`oc]efYY]dkod`sesfh[[vgpb^p`sef\cjckkf`feh^bm^`f^lja`]xo`fl]|cba^UUekiopfhfX]n[fgefbbo^`[hfj\hu^ci\i]z|aeces`pmY]llaahZXg`fjbc^ghetbb[rrehSc^^lxgvYn^c^f}lbX{Yi]q`]`xm`m\e[iXhe_j^\bVmgZbdkdXZm_Zab^]]g`[^ec[f^j}engoh^ca`noh[e`_kjfc^o|dj\b`egenre_aap\evqccbvUW\f_Zf[hai_[Zu[nT\u]mWTgZ]UgpYajbfZlQ_Tg]SZ\a^YlgUrtZ[VbscURXiOnVadZb_cbZo]Vh\qZY]]SUKcdVek_QSOW^c\e\ZdglV\xSldg[kcclW\`^kXY\j`dWc]ks^feWSUeRZ^[WXf_S]c^pSS^db`]lPXdfSgmnU[]gY][jX]NaQqjccyh\cVcYbOTd_MhX_QYO\eOgfVWaabeZTJUiV\elVR]Z[N`_Q]XV^R[d`ZahhMbbR`XZWaYS[fn`d[qd\kVh]ecimUaTh]SW^bX]UhYTmc[ce^dsd]KO]\_kpijYY^WT]bdbR]qt[T\`\idk\_QSnfiNkdn\emgi^gbnZcScUa^NX]kTT_Y^gb__Ichic`]frbdoa^chgjfWoX]l_dYh_^bba][__pZ\ughcgcmrmidg`f_s`eibZg``dnmat^ddggd_`chcYlibrm_bT^i_u]d^f`^mhbcd_n`jl^cxodfZ^aa]drwlp}ko]eTYndegobgi^a`_vf]\xlgeahha`Zivk__tbh]g_dbxb_h\baepygje_Zealfcxdn`gagcalfkibbOezfbbahbbnbfr}ghdbkzg]bdxfWfieidbhjkffcdldcg\]cak`bccbf\]T`jcd`]jaceedXc`c]mwf^Zs_ac^\o_ktlpenjcdijZ]`wpcphlf_fghgf\WYfnitgj_nabko_e_T\\nlobkWefhZ`eebebb\\jknhqgqmgiahnj[Imdee\UYe`gkh]_wc`T^gbbijyb\[]\Wa\lhltV__\ibfs_\a]ffZ\hge]mX^\\W_QlXgi[\i[gbgkwW`]h[ilRdU]`[[`YlV_gakbcd_c[l_ghZ`i\``YjYpaVjd[lRjfuef]ct``Ya\R`^aWcXdXehfl]h`]vW`\Y\hUh`kUn[\\cUPMdZhag\^bWX]e`\d`uivaubcev]i]W]jXhegcfq\gUe^fiW[]]f]Z[\aa_q~whY^i_Tnkn_g]vfece]]fQbZm_kdVeYdbaWxuX[bY]^g[]mqVcdPn`rTVlTmnLScQ^YXb^^[y\bYgh`hzbPZ\top[di[YhfdyY`]q[X_[WWfgkj`_VZfR^]^hScb]cW_cacaccV_b[leV\cfwd\ZgbRdp`_dacjgsp^[df[_fthV]V^c[u[`_nTWqZ^nbngdXdZ`X[xahfVfc[Zea\WX`UXbejaSbZ[a_XaZiUbRkXcdhevj^bbhXb[fidjXXR~ec`]Z_gb`\^bY[^dYV^_cWdXVlUhc]`_`^h]Ma_hWelNhvyXi``]f[bX_b^gkgSiua`_XkVfe\Rk[fph]^V_cea]a\|ti_OWjZew\[kd^mgv[[Qj|`fSeRXcUY_dS]_\_dV]p]\n[cTeg]ZfbQa]b`h\cc`a^bUe\kTQaf{`txi_g^^dLZa^e^kWobn`cM^YlYXb\hYib]ddXWUUmXbk`iadVYgll`YsZaQirZV_fd`r_^c]igYh_UjaU^pjoaUeRc]ljeg_kXW[YZZe\Z[VWaz^Tf_n_`^XXbaaM]r\`EVVSiPjYLVQb[lWb`TjZgW^efeY\jd]^O_O`c]\[cj\N]_y\WSUmXX]qClH]NdNjaTdjdsh^hhTaiklq\`cbagQWWPa^aRliSaeq^\ZwZRfiW^ZkY\jRZW`nU}dg]Qdf_TcX|Q_eg]^Mb\bYdkiZr`_cYaLgRcY]bePX_RTlRcXihYWyT^j][\heblT\bfPmYJ`[Vfhf[_V\gVYm]]IaVb[]\[\s^kWo^LPYofy[eT^WdnamUW_TddT`^bcbfak_]lfjN`SZUk\URW\bXoXgS^TA`ugKVOSKagX\OOIQbdPNdXk^cYRVdYX_oad^aba_jaK_UUebP^adWTXSYLdpUrVZhi[fOjY]d[fPdcK]mdXWM]Ynl\QiRhbUf}Yem\udmP\[d_aejNRfiZiaYaSYT\b\cUNoYbMjU\ONXMV`Po_cQUvSmdcT[fa]fcVNQRZ[ZO\\iRs\aYsSZ^[[bWPgpbfUV^x`\TalUXc^W^BZcm_Y^Y\[UeS]gK]pNYI^JbgR[``rG^]dWQISQStRm`WWUW]maWjd[]lNQZWjmR]fNeS\o\arVhghmbe_VbYe]gWMKgXbKbb^MY`^\h^[N^[UnQgite_WW^`eUpYO^o^V\SxUp\SRSoQOMLb`]tWili`]aaaX_e[_R`eOZW[pY`nTXy_\VbZR]Q[RjRXcTKaUYhEiWNMb]ZP`^KY[_hb]XRffRSZfc]Yhja^aa_\VqYoiYa[T\^`WZ`bmfR^wSNZXZWUY`]ec\_^xT[Q`WbWd_dNV]PbUVT_KcRZcbkNRTmSZLUXO\hQb_hcRahVT_`_dSVirX]ie^bOSf\]i[WuJi[VZ_Y`WQZjP\f__\OY`jn\\][ffcOmUe]Vcba`Z^w`NbVQXPseY[]Mb_NUXUY`aUP^[ZaTTd[aTQafYbpmeaeVi}a^YaQeceUTiaUWW[YRaQ`eiKUWjcXec]]Yh^`Uogj]Rd][[q`XVWQyaiMVSVXlfac_nZeZfedXKZp^NWpeXWSY\QojhY_U[V^TO^x\`_gXVdUkQZgYbccZf^aYRnbabY_]igj]^ac_hc_X`WVd`eVZ`YnfZjenc[aoOlYdbaPdhZ[___ZUUf^xpfcrjbU^`b[ZbYge\[\sW[\nXgaX\Uch_[Us^\b^T\Z]dZhpsj\WSUtWZ^YYZY___`Qm]f`\r]MXbYac[\gZ[K^k\dkbZcd\XcX`SY`d[aa[\`bXW]o`T_Tc_a[dwV__dRhbjiZeScUP~gcU\`^bgUgqZcqY^bZWgUcZeqfdfToI]ieU|`[R[Ua_hg[hUX[ZUiYcYY]rhhbiLc`[`\iZ^cUpacmbSQ[QXhgVX_\]\gQOgWVm_fin`[anX_NdijaTfPtdd__eqxbUZp`][ZcqVaYjZgcTa_NgXcOQfjgmbcfepj^bq[[Ua`bXZ\elbbjZ\^heY\UakcU^e_OS[\rVYXpfdkl|c`WphYlYwJUXWTZZkYWZi\_gaaX_Wap[iRWcm^caclY`aVWT`h]^_[Y`SYbK\`WY^Z_ZYYZUZSS`_Sc[QNcYcUN]VZY[Q_e]]UWVP_]]YVZ^Z_Z[S]_aO[MO][W__^`_`Z^YYeRh\c_ZXZ\X`ZX\[^VSNX_]S`[YZ_WcabWYWPQ^YYTg^OR]]ST]_XZ]]e\\XVWa_aR_XWcZYdTYZUZ[ZTbNNi[ZYX\Vb`M[dW[VZZ^Y_eQP]WZPZSW__acgZbZaXYU_\\^OVOU^S\biZbOMSX[d^R`W\Wh[YTQYQZe]XXhS\iZZ\[`]SMX][UW_ZZgSb[fYa\YPaZYbWL]PNVT\QXU\PcU^b[UNb]P_TQOWT[c]_eXQ_URZVWV`OVU_[lTa]][O[\TdZZX\bTq^^[VZ]XVNRVXV`ZQc^P]VXWTX\Z\V[^`]naegWXhYlZ[^hagZfZecN`^b\c`Zq\SS_xW[frb\d\agohV_`^iWi`crb{[_npae][fi`h`r_^c]Ua^ZhV\WbUJo`KdiY\r]]PXX[g[\\[S`_^c_U\^R`hZkmOXWX^biTa^WSUWoz\tdN\cj\WKZ^bTibc[dfYiYlxRWkZZ[ahWmfYbMVgWW_r]gjmngtVQaoqf{fIma\kcZUbfZj^XccY^gakNhkPXZ_XU_TZeWVZa\a[SU^PX\_qLVeVO{lco[eYdnRVlgVZeSX{jTheSX`edZXW\]Y\_fZ[XWZ_VcqhN_hOYWZ_yPdfTNQPdibc`tNN\kULSl`W]ccVSdfedmaW`cim]geUXaWh[ssijW\[cYJUSeesWRl\bnagi`bdnj\jcfaigZacn_u]`pZe``aecdb`^glzcdkYgncmjOl`aVr_^tpgiooUfoLlbaoyh_fietwYrydg~``gWas[jTlonteWiolbo^dn[jYn_Vr[d`__]doVnRkrZjyg_g]gqk\mudg\filfe^_chcq^X`ffmfgcheadbl]P]Zekak^ptflcde_fb_bl_k]WmnUiyUQjfZjhkag_bkc`f\azorTosys\jt^yfS_pa^rmpYkmg_bgf[p`qhsjff|[ipWs`mmglrcz[bTfubcnd_Ve[q}]^lk_qe\an^dus^Zhq[ttX~o`ZblqSn^\YsizhnXuexd]rmlZsyg\oYkP`Zava`igP}krQsw\ihfYf`clv^XnjY`w\ik_gR_[^mr[tkfe_iWR_oTSojbaW_Ocf]^m\T\ZUV`[[Yg[YWqcdYlYmYc_v]_nc^feqc`Y_XaUXTl^qO`OMsjeRbh`X^lY]cd_b\jbibSde^bX_[Y_WOdgbXZ_q^UTMZ]WX]L][wZ_afccbebdiW^Jc[_aalcalcUh[Y\cj`VtjX`_qfYZojUM]Qcjdnk_cXZaleqRVc]\V_h_[a`d\d[qpf_mc``ThvhdU^nj[Mba]XY[VSdZ_^]a]gVS_^ZScYVZ\W`ZhY]_dRZgYyfSm[^V]`foZWebV]iPbk`rV[bY]h^hbVZ`_tY[dlugcYcfeiH\Ydo][[]Tkgf_b]\XYZgqchZudvnYkh_]qUaJZ^JLpUe^aoeX][pY]U[cdadUch\m^YX^_]aeX]gjifgTiX^fVZYZHVdlaZ_]QcZ\W_aUYYh]Ngf\^seZY]QXjnniTpc]LYZqZ\ae[RTd_XTX\N_zURVRX_UUYQPnf`kV][aUd`aPUdUXSYWVp_\SdjZ^bdVgZVVbUdRXY][Q_QeVX\`_gYOTXeaX__YUVcnM_VdfvU[a[^l]dUP^Vj_g]hV[^bo_ikafa`\]Z|adZ_UWceh\`YR``XQYhd`i]aW_^YbTiebRaj^WU^S`\iijcQWcQ^\Wdrmfeg_psrf]`^U[jWXrY_cmnZvZTX`ZmmS[\X[Y`eZdYZhg_SPeZW]UdM^RkkU\VUUnNXVOiMSlWfdx\[l_VjbgZ`X[f`zT[\U`Yi_sYZ_YfZRVVZ`X`PW^]fY_Wq`YYTcg^^b[\^Z_[flbY]oPhl^[daOY\pd]OVXPaedWP`d\Y[ZXRQTObWVVqsVUX]^aiWab`iYoehjWPVdM\dW`ehobIk`XnZ`dKPS_jR\NQbWSa|oZXjg]KXTiaenecOYcVfQZOjaW^YT[a[Zc`YT_SSZt^ZV^[caxi]ZeoVZNY]ZfYo_``]_g[bi[H\fPLgPU]hZ]jo\\\dWl`[`Zhe_hciXd[gYkf^bksOWRhc`RVQcnYk`ZXRjZbaTGb^OH_YcdU[T\a<[fc\fYZXcf[i[`[e`S`_agbIZigTYZk\`nSfVb]Q]ihVRjaif[ffYM\Zm\ScT`QV\Z[[ocZ`hW_Ta~]_ff[W\ile_RV]pcaiZXW_O_ViheZ\[^Zgfm`bpdgcQXaeN`]Q[`ZfqiaYdnjaZ[]ZkNm^_\WdZff{cd\bdmvfreYa_`h_]_yZPaXc^oeU[Y_U^facWe`\be_oNcRa_XgaUZfRcaZn_Zhf]T[aWdlk]u`leU^ZbYYbbfdfiaYl]jjgk`]`c_XM^]f[fdahh_\``fafbTu\`hhcb]]cY[\tb`]kideRW`ctqzaY__RFh`haagbaccaitc]eVkM`aj]\_jbaWa^kgSk^k_QoY^i_b\^bt_gf_Vybc_[U]ag\cnagdbaaW`eU]SgY_XpetaYU`cQan[crYXpbZnaa`pX\tp\Zf[]__XXagc_bWhd[f_e`gbhhSce^[Ye\W_gt^e`b^fe[[Rk`Veck^Zr_UYQXh_bRF^RRakngQU[[Y^LX[T]^icbfcTLY`TULN]\Xj]NY`YWj]\f_^Y^fZQeZbOLPSXdpPYYN\Q\\\YSYQbe`W[dURdQ^M\ZMVR`\ThVWWbXTgkd|S\T\ZT[V]^Vd`cZ]j`Vh]kY\kbSkUbmZjdS^UtW]ja_lX`]cPaMNV_Q`bb]ZObcU\KffORjcJZQgZaOeXVVnnt\NWJgZZMIRaYZa[TPbn`i`]dlNaZ[^`_[M_jeY^[hV__bkSaa_ZcV_Z^P]iYjTPcUbhkcK_eX`[[\Yg]HiTVULVV`ULUU]XP`ZaTR`Q`[mN]faNV[\^SQgXYlMlV\_[XS_g`[Ublg\\\_e]Sb[S\_dT4TbcMV^igYS`jZ\UeJVX\Rf\ka]][aZima^\WXjXrS`W`]_a^RRug]MYuXbnVb_\QZ`]qU[a`]`hWTB`]Sa[dnSXWtS_]fZfgsbZecUVY_Y]OOb]U[bba\ak[zlOgY_W_cjo]bdV`Z[Qi]kkk\Xe]Ta]ge[g_^kW]_kQ^eTZVZ`_[igEloUnZ[nRejUqaZT[WNRZUjj_ZX`cQ`f[OP_h[fX\bNPj\_cNXaNf[Q\gmaSZboXaYdecddaYLR_RjNa`mYlSeda^Kr[edgUk]STXV\TMQ]_qSteSRvZ\Ql`VU[XFYsefbdiZh_]Y`pkoa]X[gVSncOhZY[gfeSYaik\zOd_\[Yl_VlcNRnUngY[X^Y_oeWQYX\\nbZnsYbVTY`fsTWlpf`T\\iWpgjpWfKZ_TV_aXSTvew}{u{vwsv~z}vt}r|yvq~m~ozysz~xqu}tz~r|tu||vt}{z}ww|q|{vt{ux|jnzftw}~w|~xrvxux}z{}slrsztuqzuvv{w{}u{|zv|~~zz~|{{qz}xwtsxxuoy~zy}~h{|ss~wssrvxvn|yus|w|}w|d{||txs~}ruz|s|vz}t}v~xurvw~xq~bups~iw{}}~t|x~w}~}sx}w{~~z}tipu|{xq{yxbPvem_cVGr\v]PieDc^]xc_lZxejY^pcQ\qbYgitYJ^`X`Ce\[\h`\Z_tmfy{ugafP^`l^g[ucfca`dkxUo[hiS_[d~djbTQMRibEZbQjYMcZmDROos|r\~vOsZg_Z[MZdbg\\bQgwmsbkuvaU[iXbn\`olgZcb[vyph]qnjW_me[ag[]jalkbWSVpjqVr[]_ZYPh]vZrOvb]fpkrIomhO]WLYsfjMlifcYOux`Zm\`xc]WUUcCutrej]Gj_l`cS{_ghtp\]rffSubiMgRgk_icsh\XG_[o[dY\NdHIkaehc[pTeqZg`\iu`ferjdYpWca[]bm`ZRaYqhNVcm^u]uXtZaSR^bj`XQScmd^Xjtaq\]m^fWPX\lLU_kh^^fykU`]\ZYUZYYS]befb[[U]X[[[b[aV^ZXb^`ZH__][YRO]TRMcZl\Rm[jf^]aicTNV_OWYP^`TdZXUdghZRMR[MpuPafdeJ^\MWP`a^Ui^WcU`We[TYedngQKXcrm`U_]bc^^nSWYh^bchWUinc_WYebUXaSX~ggiWRO}VrUflhWsQSmXZeX[`nhn_cXO\W^SK_[XVPiZeVZ]WXVXfgtizU~\sXg^]U^eSNPkdX`s[UeiZYhcge^Z|hXUOMMxPapWeLX[d]i_S_\[TX`j`[[RiZEeYeThVXNX^lY_bTRPR\Yfmb[[gYg__Oa\WX`R\IJ_`yXbR^_]]\Z]iOcfUSKUfU[g]UWdmaVa`\aiUm^P^lU[hg]aggY\\\TUhM_PXKjceY^rf\_mWpxedLtfQOQWmqmtyki^`X[vVuZJfhhyKfe{hqk\kR`db\QmR^ekSXWofeo[reWVZ_jfhcli^mnUancZY\XWfhaQWd`ghcWVzi\aRd]dJZe`WpV^ktZL]skaa^`ZXi[_o\^g_iwjWdihqfkmsd[qVuYpY\I|d[uZhibpaFVa{]uWckiXnd_d\cWYidg}ieae_^fejY]`iZUYp]bhanZpT[oYa[dee`abW^{LbOgxZeeRROXcXb]b\enFbjvV\rkWqym_f`Tbkq\gfc^kclV_\YZl\T[[XfWd]Zi`_ifkh`_[lbXeRNRJOllZ\ar]dZhUcQ_i`^on`[V_RYwwT^O]d_lrTX`PPh[O^i`m\ebaZjepdYmlT[[r]cobn]_]]t`lg_hZgbYajeOXbs`dgjea\[emU_u[eal]Y|]Ua[`ldcaWeV^`ja\]S^b[qqhat\ub\eNl]eoV_i]eQWh_kf_cbiVn`[f^uYYdshetUcbaX_\k_djX]]h\h^Vcp^NeQmj[ia]`Yci]YYYfa]lbf_abW]X\goh^[dQ\]f[s^ag_bnWhb^fbXmq_hZlahV]ZVg]`fV\]daXnhRnlXS\le^[^ey^XcZ[zYh]YVZ^b]gdbTdh^fZ\Ylcgcme^jdYhYe]v\g\Xb^ta`f[aa|a^lXaW\oS[YgkieracWZ^X`odfqoSiX^gcaj`hmRWficcn_fNWha]f[[_ema^e_\sisd]ZX^`\`VVaOZdkb`c_a`i]]dXPhfagLYZhHelL^Z\^UsrZx^kYUmh[P]`eTW_\eWVa`y]STePNaYeeUeZbk^^Vis[ZZ^X\Z_fSP__W^mgRPeXHp_n`hZgk[leY\bw\{orh[hUVXO]aW^T\[`R]ciPRQTWaqTyecRpn[jRTWVfjlVPXUrfZ[jkhdfIXf]UWZjYhjShTaU[\RvbXUg\PgWnl[PfTMZcWiabsP_a`QWrOXe_Zkg_Ouvc`HZWMn\Sm\[Xg`RsocQdfkRmmipT\nfZ|qgV_ggcZhdW^XXZ`^y`jz\QVkTWm`LWdv__Xd[\dUXZQoqrsWgc_Ngq\\ZiUMnaW^``^anVmgW_aT[_SVY_Vj\[^l\ncnifVUViYcgUTbg]l\c\Xh\RQcc`gZW[ZOQcW[\_`^lZiz\hlmjmofes_VVfZl^fcxgw^jeghs[ZnrejUeofnwabv\iprkioleUnlq]_c`Y_qflckmtbn`jg`|[aV{rlnjsyU_xi`Zlx`de^]edZ^mjkkgkvkfphlhl^[fwbuc_Xe]qfa`~bfljO\geipf\per]bjjccfyY`hxwdZh[fgbilq~m}`nXZef`fumgXjile`n]^fYTff_qpo`cm`gShXd[dblph`eh_pc[gsfWeiutf_m_ullg`jfsrathO]llieXh`Ym_[talwcd^oWmkci^onYmwk\havljnmdt`mkhaqZemlh]nfcdaqja]leXgwnlnxab]egefbdpcjklQjgqo{fjgpafemhlf}}Zskg\_x]kcebje_X[jWZdfWYfQNQ]bd\eKgQ^][axZUh[\fekcap_mdbYWcwc_ncc`nU\XSf\Y[w^O_kaeejOZU\cglZ[VSVY[\fRaXdWTfVSa_Yt[T^i`fPT`|VTYYTZSkTbiYcEebgT[fpP`Y_Xe]L]rUXMmcT]`Zj`MVcXaX]Y\bdaP]]`PVWXUQ`VK[\U_gUYhZnq]d^_sXWZTXUXjcRk_cHidXXfWQXV^fUPQX_b\YkbSmVfd[XTdlXKaUoUfakiuY^hwS}_gWXQnmTUdaV\R[akeab_^]i[u_bX[ZmfYX\ir`hdWdLYW[T\\\[g`RUhc`lahgQVgSeSOdeg\PTXdktWJTg[VZUXfcp\aYYc^bYc`UUSR\TaeN_LYcPbKSYf^]z]`q_am_Ubj[`Tad`]\d\\[]Yha\fc_cao`VnPYoej`WT`_ZTq^[QjoYe|pg\mh\qj[ag`]__]d^c_jbXbgaZ`dk\cT|dWW`ZY_]vWiaUc`o[NcX\udpbO`_biVafb]VaevXo^\Wakh]_d^dlQo_h[\stwh^eeb``s\]tViZcjdYYXQbbVaVZdZ`wPbn_pSmbVZYU\tV_W\p`RqibiUZjghYhYwZp^]_\ao]`WXgicbUcV`]kseiPScZdUmi[^]q`]\hb`WddZ\_VnahYgh]ZXVn`cU]igq_gdh]`U_y[hhemm^d]v[`][ZiScXb`V_k_iX`^f`ceoe~`Xqobh^Xdpgam\Y\e^ae_]mgkUSQmifY]d^hjX__`UYgjV[gdb\nZc[^ba]UfQdRQ]RZZdTWRb\ZWg\XWIP]T[bbR^aga`Xd]KTVYYYVUce\QNN]kbVYbkkXq_Z^nURaZk]\[_e`W]^a_eVpael_XbZgSVU`]`P`\QXdXPR`\X_Rav^YdbY_U`Y[U][YU\fWYYST`UW]_\eXbKZ[\RZX`Y]TkZWfY\dY`YQ[dVWXdbRW\^S`o]fVZ^`ce`g`RR_Tka_eai[^X`^Pj\nR[dKP_QZgUZc`WZZe[PadX[\[Y]_]`_^X]Yibe][V\^KZfXWcaTTU^g_YcX]_WLfh^ahXR_bX^deZT]edWVgT]XY_Rec[ZYWjd]^dedaUbNahabXaVfbdbbRHcQT_WXaRe_W^]bg_ZhXaWZfc\]\ggUaYclc^]TiaX]fd`hhg\c`ekZTmdd]cfcbft[cx\p^\_Uda[c^Xa`geell``hfbcaY\bnd_`|cefRbzec``o}phypdklhahdiY]`ljqlR_b~goabofeS]ufq^grpogzp^tY`egqna^anYoVXdZifmWsrcgei_da_hh\Nlo]d^fl[\Z`nxnwcaapda`aotmdl`bo_dhiiY_\^X\ncbdaakWsc^iJem\\kk^gepkUenf_YiWdejar`bfzm[gd_wednd`llSYjfd\g]\`bkbUx\hbn_[ndq`]bU|ac]]_eYtapp]cc]rmsqnP[Vb`nfblbeV\hpiohZhX^qfatyWd[kisefaU`aq[hUi__gbvahamuZdolf`ooi]pUh^vdWgjgZcn`bW`V]c^}[fg^g^Gi[VkYgX`b[\\X_^Zceehb^`mlfsohfiba]lTfbUhU]aZ]hbNf`_\X^___cUZ\i[iMUKXUaoYb\_YW_^RR^pa\`vKoeO^ZbfY_gS^[QiYfN[ie^SgNWaw^][qf_nl^gTTb_SRW`pbYSZXGbfllpn\`QcU`^vr\l[[UYhgh^WX^iY_|^YbcMVyZQm`ct[apZdc_g^VZWciadkbgidpZahua^Z_cd^_fadqceo`e``Xh\lrlPedcbdabo\XmUS\lVSeW`VibYdtb^U]Ybe^aL[qUxcihY[Q]f`n]VXQVnr^_fgsoSkZXRh^^`cXObhetUopkN`cm]WgYf_}ie_\_]URRd]rTe_gVUW`oYogrYQYR_}ad~shT]ZQk`qf_[[QXs\g[gr_]bfi_SE[WeoYaelj``deWcji]\vbvq|Zap]nq[i\RmWOtT\]YehkidyVjkWdn[Wv\apej\[}ZqflrLXnRe^QqXQVvv[aZnuN{yZlNse`\waU}Sde\fb]`_maHzUQl_{_vf_fM^RdVq`g_g`a]dTqQ]MqhOb]ildNbbRpha{ludKScf]YcCYcK`\rimS]zmagYXl\c}e^^[sp_lhPq~\p\toalalcX_[M]f[hTobTkX]gdyyqjWLXmp_glif^doWSdm]lroaWYuXhoYW^[oaN]M\oQnO[Wh]VzfdWk[Y\qKj^xb~ZhU]V]a^y[Iv_h^cW|l]_Tcn[fZkXXdQbofirW^^fn[ebVqmdWga_YP\ZchT]WblLb[WY~\_HvUVVdTq\ndQ\[]VZj\edQcwbUp_XmeR_If`XaS\sfYn[VuagiVVSgS{YjrackcaX_NemY]]cckrUT_Wit^[VncdqZZbOh~Oqpc]aR]Qea^a]dhgRERe[Q]b]VtZYa^VgndinTebifaglX]ba]UjWnbgZV^Sk`lR[bTqwB\XUSL`\ktcjXVZxle^_X_mc_m^^_iT[Q[`[gep_kNUdXYicg^n[arZ^bkNVSYZTdXQqf]q]aObWtZY\evcHbkeStdb]ovpceYax[TrN]\[XXlYU[^XkaWpqeN_lj\dcbUXYdJWfZa]aP~_WUPYUPVcop]pjWZV\YmdUSwkn__RckbgTmp[YaebTe]khkbXqtptqhwygrejoqh\cehqbfxmconwbil\mkikuknvkofsexhfdtkqrunhnzk`mmsisqihsvdlnkpgYzeall`dmk{nh`^whihrmskogrmiock_lnyroxk^h]ltdhkhsnjipzqwrnnnlkjsugkkkapij}pgomor`lowdrhpupgvrlepsvlhpjrnkloemaxegbgpjgfvtohllifl~m}frjemdq|qbeiapdvyvgeenj^eodrlqltdio~svnhrolpvpuntgYkppbpmjgrsjopmjxrmmliod\mtefmhui_aupk]sxbiuighjgleu{iccurhkmnqemqpaqpbrsihnYvdl{cj]mapgoelyxmhmmdtn~aemlu]kmqpXdkfabk^ZLTVSYUWW]KTXcU`aXZ^VRR\\WQYlXYZYWO]ZQY_XYRNM[SN]XLQSP[kV\[fk\Gd^ca^\ga_c]caSh]ObdcW`\aTXb_X\SfaR`TeY[^cT^lVXZY`XXSfgZ`]SYV_bh\g_cT^\W[_UahXQaPdXaSVeYeY]__f[UfQYbUVTSTW\f\WTa_cNS[dVScb[^_imdV^SPYaYa^TMe^X^XYZ`W]^bRZcWXcd_[XfkQTVc`bdRZR[dboQP_b]_ZQQ]tTRWVs[dSdcUkXW^W_mep^]Y^eR^`aY[f[]XW]_\\Z_\d^YjW[WUVVa^hSWbSdYZUkX`VZ^`WeTNec]c^gW_a\b^^^V`_gjgX`RkXk]jV`XOI^^_``cXUaObWZ`[ifWUqd[T[n]^jTj_l\]aY{ZYWjhZhW\gYick_M\a_c[OX][`[TdV_aaiaYb`udkutOPe^UHPPOR``^ZbcUZki^Xj`bja]c`]]_qvScRQhThbuOZU[hrSdYtXfdZf[VZaPm`Xqqg_t^_bWTNd]m^bjhIWWiTYU]\bSf]^U[it~\irNb_[hYjeXVabYgenUf_bZZiTgqWYX_^Zk\R\k]juh]{N]oog[^^VWdooXfn\ZkYp\eQ_\YWXrkhdaYakke___m[L^gdZcXhXiQgUQiqE|iI^ezipYYZpbSP__a\SfkZs^vYfhdybglmRYY`iSWhUiXrTWh_kcY_gS``ZfmTdeOYZhYV\\dkMZ{gdkigh]eSScZWZ[dcSebTu\agW_[\^btxZ[vWglafx\asVUhY`XY\d^_`^klnfkVh[^]klK\XRcY[ebdSi_dyTSdf`YfUQ^TVufrmse\[cZjqvYSQon_]mdVQ]\dk^tX]h\kZbfu]g\{crOc_VdjoWVfR]XvYad_gpWWlTy\^fdocXVi\Y[|c[]`X[nVWnbdQlhi\teffU_SX\U^T{bZ]OqOpd_XZjag_eadibZYjmavbX_ai[bsccWc[af`ehdV`eZg_fckcT\e`_vXWSd[WpbmbkUfkcit\_bT[^T`YXwXUrY[\ch`o\sMmbWr]^YxekW`op^lojShlaYYOZTvTw\hG[bfa}bahSnxW`b`j\d[sVZdQ^h]rO[YS[gbkhiabcZQfQZRT`l_enncok]Zhl`fhUbaoljdPcelmjgmmpYc]jj`\\llbdegvijZgV__`WkYk}eg|Wv^mUpkgTfbzf_\dyhda`eb\Q\Yf^bZWVecQrkg[loZzZbhZ]bkcgebphugb^o_kfeqcNcndZeap^lsqidU]te`_rZrom^`cdVR]b]anj^iXYsXXlu]hfllbtkbgkdY_ljgsbhfdka_`]Qnjt]yjcdRf^]d_h_^wReackmoObk_XPYaT{dgcn`du\nfhmfUp^dQiS_j]^ahkwbas^ao]h\gj^mnnTfcXcNwarc]^p_mhmZ`pajYRTdgRe[eo_g[bg\j]fcYi_ka`hZZXZtVTeSZlmjdedZeheh]slQZR\Vcb]haeZ[aXP[_jaWinjfSffjvaphYaUcYSilO`g\cco_al][n\V]dlXadZXgsOZ[YkaY_n[l]SdS\Xd^`aqdc^PSZVePe[kkY`^[fecl[^]YUl_uV[V`dklWbk^l\\hj]]_j~Xfj^XVjmo\]hRmUi]T}sZgai^[de]Zrd\Xjj]bXa`_\jakYoPXXZ\liRT[kpfc^XwZmj]\a]WZdi^]][_a\Y`__XecfZpiaf]hb^nY]la`_\WbU^^lda_[[`bblji\e_`Uj^fQZ]]\[qsP^l]^l\VZeba`]eU`hXYbfSh``WWZZShkeg^Qh\_^UZcc\_fcZ[cb^RX_U]TjXW\ac[fZ`^]YjS^lp\[aVSaV\asdaeY\Yhkcevyll`joue_ZVddZhyQi__PXj]^[s_ZXPYcl[kdcWgkgZhbTiH]iukit\jaf\ke\s^_d^Xd\pgheb\UdaTW`X\l\][vXdr\oXbaig[gjbciagqa^\k|Tnp]\ttX\`bhcUV\maQiXxSVdVh_mS`m]coi\eilNaqUhVngXUL\ZfX[^nkdfh_`fXSMPagY\xWYij_hmpf\^^Zg\^]c`Vf\mj`nR^Y[\Nxja^hfa]UVVUxQtebYiw^eWY\SbN]aKRaUUcb^h`^PkbnahmVT^`ac]_WZ`YTqcbRaeXV]dZX[ThXpmdlpYa]Z[[vQ^[dWjXYWet\^WcdbOVV\]u]a_OdTfZV_VW_\^}xuUTYNcQiVj]fcoectWuZ_y`ibfg_cb[WgX\`a[`g_RUd^b^jNa_dTf{ggmaYpX[abgmpbacb]u]dmY_mX[f\}oaags][Uj^ZgcdkRabltvRbYkh]c_fVRbce`Wagb^d`aUYb^_Ya_`d_ghUdR\dnb[ZZ[lbXipi]^oY[YUb{h^q[g]WbRyVfb_zW\edTdXjdoR\dn]^{e\^[f\j[uhcaaiim\emf_Yjgc`uSsj]iVY][XVUmYhlSWf`Ytj]l^h\`jXiWg_Y\ahmmr]X^ek[_]w]]_kPfsW\lhlfThZk`jihTt]Z~i\`_^^XanWq]cX`eg|Zca{]Yb[ZcbaI`_\bdhdiVSlge^cm[s^R\dm\_laraOmtZl[UI\upt]_cgW`Ye^h|^]^s\WdX[ch^^[VU_e`ZXq^]z^njYYU_okamm[d_m\bTXe]keUonXu]^bqgnoWcbn[f]_eYg[^`e]Yh]Ok_gag[WaTckR_kbVjTd`jcj_]eXV[rhK\[hdJZhXaQo^d^S^Uavan~qceee_nmhbSb\f\S\oZexb`c_gmRbxld_zeaZTZ[Vil[ZlZf[_ub^s`cQ\zYafZxjYbcf^hlqWY]RVlaXb^VcWeVlN^\]_Y}Rdd_^Nf_hm\abTh`bbS]oV[^okXTnVdcsa]c\uUjVlZ`^^YmTaSYcjla]Uj[e``VSSjgTjPmVkaZ_]`^h^_j_jh[c_Yxa^nvj\iQfZ[PW`jb[`HkUV`_OY`j`e`k\\_ckSeV]UlRvacr`ReYTc`]\UVaSUpX`W[bYdbdWjjpheg[Z]pdY\kfzSSZWruXeWiYYar\IkdZnUYtt`[dfXdLcda][gbY\cgWf]dH]`aS_gXd[bl^\YW__fh^_c[^iUbYYXbW]_\kcma[WRj[eQh\_fWW]gsSbWc[baXTaV\\bQP_e``Y[\nQ`[[haadh_\[[[`VUY^b]\jXW[Xch]hb]][YdTdYcidmc]`^bi]\cOita[facbvk^\W]`bqp^W[[hVh]Rh\o[fjN]XYP`frZce`TUsgbNg_ZMpajWne_l`Z\fS]dmkggmuiXR`\hZZhUah`ccb_\_Y^Z]Va_ZJxZpN\`dk\bg\]U_ol^^U`WS`Y^`UXRkeWc[sb][`b`cei\_Xk[W`^]abaQ_jcdHYciaZaj]e[[M[^`cVb]g[__Tnkj^gZ[zdae`ce_mPe^SlXSeUYfae^R\oZ`^^\he^VTaTkY_Y[g]nPRe]CdOV_jaYRCkU`STQXUR^VLRYgLUVZ[GU][V]VUN\_XOENR`_JQSU\_[cYQeV[_R`YNlg[V^cYYQS\UQdfTZUP\S\nTN^eUbZ]LRSQMaUQK]dZUWZUL`eTQV\a\\_YM`fXY`cYW]YoYVan^KjbW[SknPTZjZsZVRXVTkebiQOYVRd[\PIZ`]HWWc_]kQ][UdWajVk\qakU^fco]\XfTxcS]jU{L_ScakhHeTX[jTZg\[QXgVZNVSpN]NWi^Y]SZY[VX^MQYY\J^Xd`QVZaZvZZZfJeL]ZaHYaaQjTRaXUWfR]g\RVSW]SONYhPYfT[YUTZg\fZYRQ^VdXcVXW`Wg[^a[LUXWYXK`RKTKU[SjeQaWYY]\`\fUS^`d`[dLhZaRfd`dg[RTvnVbm]kTW^kYXTjfq_kd]`\c`^apnnf_`ih``YVRkqdSTVYc^[vlaaV^bUV]Z``em_e[Vq]dfZg[mdg^_Y_]fWbdky[cWg^`Oham]_`t`jbbp]pga]ZfdPcVVYrbt[\dzgc_jUd\dXTb\]aaSntfkWe[fcjd\d`g\`ad\aM_Veca_^YpnaZcZdZb]eY]Z_h`Tuth[`RkZkb]bYYgoaQ_d\]b\td_eVQ^md\jTbY`Zb``acf_dsd^ed^U`Zp`\YZPSc`aVYcXPl\bWawmlTL^XT`\]eXbpebXqatihlt`TfXaYhcZnmYVYbrTkd\e_]y]^]aVS`lTbVjTVdbUkhl`W[h]]aWOdenbtY\gLWNRR\MW_KW_RYKfWPWMTRK]T][X[\^a\J[UZXWVT[]][RTXX`ZPU\Qggm^T\a\_RKVRXQRZRVZSFRUUSZZWScWKTXTUaTW`ObW[Wg[a`USLRONXbe`VYR_eLPK`UWV_baKW\ZUKJZWWZZVVLUNY`LZS^\oaVYSXbVhY\`X\WL]RSOST_VeHSZWR[WK\QVX]OQMR`RMTWUbZQX\`^WSP[S`dJV_WVVb]b]]ZT`[SY]bRZhUPe[cfdZjXW]USYO]WYYYYRJWTIO^TU_ORUUaQXUSSO[LaZ^`OOVVXRX\ZGX\RPbOPXh`QIVWUe^QRWTOYSRXOWLJdSVVVZYPQaUPX[]\V_aZgWSSTTY_Q\NaUOSSNSWWXb\cR[BOTUnWVeXb\anNhbVQQ\]pKSSD\[c}h^VXkiZjlVW]Yk`_S^V`WVGDkb\WdpSd_^[aqdZUKUPePVVXcVt[KJbd__h]oeja\ojMVaQZdZH`\UG_\hbdXLel_W\n[aLX[wnmxos[K[]ap[KgYiVkro`UPkfNNSTaO^vYr^cUd_XeVec`_^]Q\^_aaWaK`TPTf}d^MUc`lY]YefbQXfcglecPA]GZc_~VgfkQW]mbntNVl]_qLH\`ZgaUoYj_^\\Si]t\htjTOfW[`UKWLb_X]g\rJq^]S_MT^[bUWaX`ZXaVj_qPKj\uWai`bgS_`^[\RTeTaXVi[LXM[chfH\d`_Ug\g[^ceaue_fcTag_oXbDli\UWXol[X^fo^Q[[UIN^ZLa]gWdgWHhbara_][l^ZgRnVU^YSWXYeTaQf_Xh]]VRTg_VrYbUvVab`dTbRUaWZZZi]X]b[OT]U\]Sc_XydahbRQ`}V`fW^Yc]^]^Q_bSSdNYoRca^[\WVTdZjWV`_]h`[c`TcmxZhceSX\aSh]RadWNe^rY`bX`babhwW\\hR_VWbYegXocXZkWf\WZXta\_[WY^UmRTbfUddkYaRqZ^L\^^g_^VZ_[Pea_dj`bYe[W\dVTlPcPPalfchgdhga`bTW_\aVUT`aWSkchdMV^bmY]\KcfeejYk]^Y_W`\pr[YLcXWSXqVP`TVb`\[ZaUVQWns]T_[VQNahWR_ibmZ\Y_VWX^U`h^][XURV[dX]]`ec^ct[XUgX_[i`N`dUe`ZUcecdsafljcZpqd^a_u]\Yidb`]jbjl_\hnd]cuwadb_j^m{d]comY`ddlrb^jcnn]qmqddjg]dc^vnlbggdu^maV\pW`ddfK`hap_ddn|zv\cyqtk[tmfkgucd]Wgfdbd]t^cod`WYncVJkodj\T^X\`Zpahcyna|Ycc\iepdg_k_hwajfXP|eilUmhbsQX_cUt[[a___WkiqccjctqUZeic__^_ZmjXt^g`p_feel[^]]iTf]omkd\SdZZtjlVb`hXckZXUb_kp]i[eTnfgseX]\Rabsf~`hM`f_cZjVd`]u[ncy{gjcfe_Ti^[dccfvZXTiTbUa^`amdeXfshjhYgvciivgumXg[ZvRYqUno\VtacW_ehhUY_`^fl]^n\^^U`_eX]n^]PY^gXU``j__UpoN]nppjO\ba[vWkhnh`\daoUVXVeZj_YSa]`lcT`gSP`jesgYTcYW[Vqm[f]e__ZegddiO\ShY_cilsRcYbXgcQa_XYvdJgzo^b`txW]ffR[afXSlZW^Zb^b\aPU]sX]fV^bXh^ZUrtWfUl]Wakd\e`i_c^b\[dNk_bV[RYrcdj\gmfaZ^^Yb]q^b]de`dMTXfmN[RWif]TZa_yapcjYecgkgPYTp[M[]`_pPZNQbU^XevS_x[q_lWde`[X`Wah]h^]gbR__jdXQYd`ch[]WX]`eWYZTTZb_Y`Y\QY`bka\qW]ZW_f]RZ]VhcbaVdcV_c|aS]_p`XZi^mcelZXVtugjYcaeUl\Wfb`iaVdcXS]ZWOaP`V]Vee]r[UXP\YY^OUWY^UY\e^aZZ]HZYZb[TaeuYSgYRgTjUXYX_bZS]^R`]aOSUY[SZb^anf`_PeYfb_[ZUZ__aMK[[adU`\agbhWWS_Qhf_ggTXec`RU[eTc[cl\SUX[lZaX_UY^iaf\l^WsPhcibSWTZg^`VbS]T[lhLgYRd_V`XTW_jaTT]cTV]XLbb\V`b\ccdVe]]Z[WSbZW`mWHn`UN]LNKdqiaY[ahWaYYV]RQUcc[F_[cYbp`a]tZbZaWjfY`PPji^g`aY\`]jO^bU]]Z\XZVeKdgW[TV___YPgM]g[cbNUi]USeYeXT^f^S_o`[]WJYTXhYWi^XU]\VkUOoYmOYcIZQZdU`M``aZ]`Xbd^aQe_o]aYc\bva]SY_UU^Y`eU\^fY]^W_\W^bgj[_Y[]bJhhZZc\Zll]ueZbS\XXU`bRgTedUem\t\]]aVTbJ`TZW`YdS^UZa__\]d]g`OYcWh^n`ak^[NcQYU[j_eZYif_[R_^gTUftbVW`VXdo]`S^cX_Z]at]cUZjW]]Zq_c\]YjcfR\TT[]_WajXdm]nkiNf[k]`npYoa`\[_hUhh``W[J^iPbcb[Yah]X[ge]i_U_]sKbW`]YcsmkZ_]seZv[aa\^kRk`d_[eXYXcle\gVaZYZZ\VZaZn^hXgacX]\dq^XXd^g``YaSY_\\^qbcOu[j\ueWbZc]r^[b]YOY_`iiP[__fjccaj`a`p\q`R]cqpZStiT^Ucddge^jYO[SwhGw[zacePjmf[Lk_Q[on?cqnpjdPngfkGbVZxIkZ\RxUyva_bd{YjoIutg<``Fm_[S{UobH|DYdcfH`i;gXfkIWZ^`H^PsSslzYiZ]alw^afUYWr5ej_Thg|[lZWLO_ZylgXcrnbFkP}\I\nwhijj|g|;|WcLmgtk}aWXT_HPOecsmra[SmaoWSl_RjlfNdi|[dx`c[YTieXdygZqtgavyUcdboagdHakvcsbWMdXliRTz`]dZW[kit[qdeax`tvRhZUX_OZcfc`XJ^W^eTjZSdd\hYjRYsTLfJZX:RNeYXJRqZ}SnoaiSj[IWriencvRbH`[eeLMdJkVhgh``cTVtSeddRtxRrR`idhXl]``sdolTy^^U_^c_aRp^od`QNXrTg]zt_Uie`\rviQT\Zi\nX\hQKfe]QlaV`ZN_Ufke`lm[[Zb`dmgdVZfkToZP`[f__\VXO\\_\d[ItoazYXa^sefp`^f^S]UDXNZc[\XVcad]\wckUbQ\d[t`jeXPkfY`jSscYhSjTWU[{e_hQk[_cjaZ`WUT]hK`[XTm]epXhPbc`^bbi`YqYf^WNOh_\i|VUothPes\VZp\i]Zp[c[TcqQX_^pPb`gf_mTYf\_p^af_Xi_e_ZindUagVTdVZSSZNPzb\eOf}eicaadcP]`YZqhvjobYma[Kcg[RdL[iU\Rha]gQf\Sc}oqgP`POUUPeWqghSj_m_m`riYNp_hsSn\Ubsbz__ZaUe\lYf[ZQUfMgcYucWWaQtNpnQYZnfFbfdNXdRnblcg^[p^`WV\R`P[pQU[fNzaSX]\vHRcUyRaRkSg]PScag`F\ba\\cg_gscZi\eT]XOxxZNfrYlPcm[\ZeXVM]IjUjjgTadgg~b_f`\Tf\_QpUX^aYkZMPOdP^V_\M\OJqzXRY]\jLgXVkfsi[^e_dYWv\aUZX[Wcecbdd[hVgpUVVdUjdhZqeSLTZ]gMLk`USaumjce_ScYdVNclW\mZ\SWiQPe_hUYcea\efeeek_Wl_Yedbjg`accoSZjf[T^wZfcdwIPfazd|d^R^aSjjLb]SOS\j_]Zcc_\Z[c[\chf`dW]\fehhV[idda\\R``[^Z\}ZSWF]fexNZXa]Hh^YS\OOc[\gt[nIjd_l]VSk|cnW^udZ`MUTalcaeRaIaZWidYfd_X^ayhVS`a^chWb_MSbiVgTOOYWXZOWU`[UY`tSUXPmdmbel]ti{HnTX\Ug\_U^ff`YlXTetfZba\R\Q`io]PakNlXZZwHeZtTlUWY]k[]`___jsZl[bpp]aQ_PcagY_WO_OeUW]i\]ckXvP^Qi}PoTWTQcchZgbaPPdXYYVUlVOW`YSdSd\\IUUcLKT`d^nehXQQdczqW_TqfSO_g_kZX`cUbjdjXrcB\dlSZYdZV^]XbWa]Tc`ZWV^QqaYg^d\a\W]Z|bga_hYT^dXWO_d[]Z`\fYhb_r]VhVObbI[SRVQfMae}TYjWdNPYd^_[]Tgcdd_SWYW[RQdeh_\_\`TXn_ZcQTiaRcVdq^P^aSV\j`SbXYsdT_rW]rZXaEaaNRZ\`MSOnX}P]cWSUch\SYnVZchGVdf^_{X[yU\T`l\Zk]rXU[U\pat]SX\]_dN_US\dddUkWTXNb[VXfV[^YRZeWib^bj_rajO\eKb[cTaYS[fY]Tqhc[^]SQZaelY^hy^dif`cSi_Yacb]^ZemeW\Tgg_jci_gcdal\m[b_^e^woZhT[r^d_k\Y]`a^a`UZ]^]d\WU^jk]bcbbWe\YtR^i]]TXaYhWqcf]W`m_fTWTYX`bbmc^X]UbfYXhWg^`n^eagfae_lS`XbNcT`m_d\gfVbVdj]fk]_iXW``S^i`eRZa`[cQ\``XhZmnUUceZ^aecj`g_\fb]YXYTZe\[]XbYi`\ZeciacUcchkWfV[Vihbc\lff[gpm[bafQ_W]hfOSW\dNbbhi\hbh[ZXe]\\mmhadc`a]ba__\]ck^Z\[Zj^]]Y\XSa\kYaffanVcYibh]VhdX\]uf^]g`m^f^a\gX^cXb\cYb[VX[k][Sn\d`jZscZY^e[`oWcg_ZVWceVle\k]kY^gaj]argcdbdaXjfPa]adpXeb]ib_tb`ll^e[chcce[`b^]ceq[ic`\h^mZd]agh]\an]YYQ]\bXjbcbd\cei^TZeafSiVfclTVf_YagaRUd^VpvS`_]TVVfcrm[pafma]f]cr[]dQYja]_e]QazMZ_Vj__fl\mcba_\ffjceMnS]f\UdinYhb`g\[mZnnfZurTeWbV`hc\NZdk[]fXa]bq^dZYceoiTaccYWfpsZ]j^Y\K`ZmddfnVkRme^\hlcUcue[dWdcP\XqY[mZd\_chbdfcfXlgbT`chdSf][\jcdc[icn_]W\][mWY^bTe_i_YUbgWaaiqeenZ[]p]wiTXlXm\i_dZWma]Ulm\e]eYcfwdWWh___TuT_ciudyTW]rZhf`n^]m[n]c\_RhSZV[WaaWramZlfo]egbTvgZjTjdbfcea__]r[]e\``bdsufkwpad_j^wXqncgxkjkmzaae\jdX_zbpgb]wWakre_QfXrbheY_bVY]^kbf`]_c^bhW``aia[hgrRkiX^tieaf]dYcUbdc~^YYkSdXeKkgs\plcnsgek_qjae`hhelqmVkhQWia_ccrxd^aUc\be^Z^X]Wc]solkYg`crV`kbVv]xjvQ\tjjhiWpaalP^``dfpdrimQO\Y]Upzr]gaydqdZeiQp[^cehd`pb\k~bU]t|]W_rdUteg\]m]\_d~YYttTb_l`ch`ihice[f^nbvn]Tlkdk`^\crgeTcUb[ZyXWYbZVV_Ra^]WV`W\W]aW\Rb_TZQSTSZYSTP`[U^WOY[[VUTX^ZWZ[^UWSYdZ[_bk_\]]QQ`Q[]\]UQYXQPYUdMXYTb\UYaVZVVW\UXUZP\Q^f]XYYWXV_]_S]ZaWZUNW[ZO\ZY`X]VUWT_UWQURX_[U\Q\U`P^`UXZcVUaZU\UbV[_]VTX^[QQY\WQd[_Q[`]Y_SV^cVV[e_YWUbRZV`\N[Z_RVU\\Z`S[[Z`]]SX\VRX\QSQ\XWb[VSb][V`ZdX]VXVZYZVa\VT`TZVcRSaX`[RSWUYZ\\TR[U]`YXVeTZN^SWXWTSY[SV[Q^\f\S[[\VYYS\S_YXPg[XWTW`^VYU`^YZUWV^YZ\V[SO]XUWWVUT[ePUVYaTYZQ_cPU\eb\bhi^`c]v^\jhi]brbp_z^sd`aNbglX\o[ph\`gj]T[aSo`gknodY\d[bc^iikZU[g`ZdfjiYPc^YmuibiVji^YaomdoaURiu_iXb_kb^aWYfX_X[o_l^aUg_daqfdalenzV]aWfW^fg^\cedcWZaZYXa^ylidSgabm__X^]_lif\S\c\cc_qebTok^X_`aqh^c]chZh[XgVk\^mX]`gmdWcdhYqYXeas^X_fZ`^Z_jfXliab~tbq__Mfebce]_j^[sR^OfdkgX\ja`hhYc^aj]v_ThYVc`c[aktgmcee^o[`iosblaWcZWewO]l^cp[Z`r]ncceU_ee]ti\Zai\nLfe`aYbf_[ocZuxgdda^Y^c]cbj\_ucevf\deasonhqqfa`\j]\hN`^ldtejbia^ZXij{_abbddrfw__\vlSdeal`s\jYYY_lkclv\biY`m`xh_]eaki]yidbhaZibg`ba_`Xd`^ce]^gjfcvcabcZ]i_^c_cm^\jj`_d\vo^]ae^dabge[bh^yx`zcjpzl[cbfX{dh_cf_cegd_b`mYyWWc]b_}c^}bahip[Yche\b\][h[\T[cYiehie_^gz`b{Nxed]hdidlmg^ewec]uhZ_fy`\wd]Yd]Xg]vehjYdwbe[bZU```hcb\\Y_WZbd\VXo_Y]ZY{wmc]dZd]edmpXe]`^]v`kPevSfwsZVk|zlmens]rnd^]cZa_xd]b_e\gu[ifjZhfenaZa]hbfXqfg]ga_efl`\bgubckfava`x_gbu^c\dZe_bj[fb`k^]mmf_[bb_^^ea]hem^aggmj^a]^dei\_d|]T`^^ayiXWc[^eac_V^j^f\fct]heaa[zcVas^ghhwcucqej]hb]aZcZgdif^bdmcaa][{^a`bbi_`[ac\]]ch_\]bZa\ija[ia]Y]fcp`T`^bafegf[h[dbaeevdl^ama_\__aggcffnVcv_^o\VdZc\j^a]bd_cxbd`ddfbjed^afjZq]bxjahidWd`[`[_^j_`^Zd]a_mkjedb`_a`Z[_tc_nZgcaarfc]aii]p{[]_]`f[Z_[ngxdZ[\elpe^c`aeVcc^Z^]egqdb]g_rbq_WWd\`__b\udRdXa\]nYWwR]daYd[ce[nbcVvq^V_cUhUUpgQLU^igYng`SfUlvubXjVbi`N\`ZdaS[[ZO\lked[sdbWiZYgTeThW^gXUc[Zmg_SqWdZb[SfZY`RYXTerZQPS_^_PZRZhkQnaPN[_XYUZ[[[g\^ie\U\^cSYmT^hbrb^ScsjgiUm]fRW_AXS`ZRZRYOj[QYiMfzPX[VpeT[_WUXWM`__abf^^^Uj_pZYeVc_nZFeQgkWSZcSlmKdfg_I^_UmRZfoORWf[jVjcgSUXiXcddZ]UW^aTTbXdWVdXkksTZydoXn]aaSgVS`bjDQfT^aS^Y]d^J]vb\Z`dgXWPv^RYg`kno`[_PiVbgYrjZRiZ\M[Hcmbb_[lfW_bdXcXiaiWbiXjYh]E\[dh\cZ]U^\mi^_absV`aPTgiuKcbj\cldgbafgcaUV`WZbabZokSfna_^XZd]kRU]_W[`k^rYXkd`X[i^ofmveVx\do_nNf[Y_eb[`Wcfgcice_dVXOZq^iXh^V_lj_ZwkaMa`bl^Q\Y\ah\Kg_efW^PpJ^VjiW_YTiihgSy^aXekmj^smXg[\`[mlVd]\pSOd}YWcrTYkZcVnahtk|mqcngUP{\XfNqzmogeof^lg_uiRSX\Yr[\Y[[_dbWdNuh[g_[Y_Uk_cOUjPcZU]ewbfdq_^_``bd\ga]]k{jYhlb]ZU^^e]zhde]orf`T^f]f\YX[ipTWheidldfZlcUQzYahsRUckeWgbeXUQ_^d_]n[]aqt_[\aja`ec`n^hbfcitb_`auZjXicedXo\]db[pcn^q]][_kc`tnY`i`\\X^qc_]vaejag[`Y_[xebXcdg^n`g|fmd]jZhU[]YdlXtganb_cXebT\}f]{\mV^mjf|dwZ[cliXdP[VeX|mYafbha\qfwacdVhU_dX`mcWaz[fTb`i\jxjgerZW_dsg\lhbbg\qfea]danpZiobe[Ydscot\iihadd_kidc]gj^`YZX\^_]vabn_X[WXhkknehWebZa^bVkc^Ze`o`qahX_]X^w[eWc{UdfdqfacYbavwkvpm_a^vufqoWWda`[TXk\g``leehbfc\Xbg\ajaW`g`f`wZbbdkg_kcg^`fkbPi[phbhw[ficaYvp]rwpahaXb_a]^gWdiDkGRnhu{nZYdmZhsKRXvZn|jT\^\bm^eRsRJUt_{__xd\qchZc\Zs[q`adOw_hw\dkbrmaPjjOXkis\jobgaw]dtdYV^k^c[VfLlef^[XosMaSjVxk[^]^m_urgjjn`O{M|em_RZq[_vg^eZ_coXWcwesaQdTfcS\s]]k[WkmWl\phiWdheQ_^hWav[lbYZbaiYQr\kOpueMmlabulooZiln`UXZed]nQ^cmeYfOzpa_Hzm`hiYSRkmUkdnbPhYqqjpebZj^Wrmiemcdom[Q\xqxWwiVpsa_TjsTa\inbSweUffVkev~UrY_xgh~n]oxUF`rd~ynOLQJ__gZsrjTjKOuk\tU{SUPxgtZztkd^wkyxFViSvenS_]|sZzVjIEYjcP^vdlkYYRejSqTsedc^nqgw`PZMiFhtl_k_jg]UUL_Wulu^fYcYdYZc_V_befk^LZ^baXLZYTaS^]c]iZguc[zW`gibUp\_iYlUU^OV}fs_GejkmgqiX]eWZNl[Pa^c^Y^QYrcT^Z]TWX[Uk^^fb]ahj_W\gXo`cd]fnf^O^icvhe_filYaW]Shjacu]ZfchR]XU^^qqVX_[_YU]h^[^\^emfdpYVgc_PnVdcWSWX``]__YaXb_YYmV_UaVRPekeeagfckQOd__aXnXzoR\hXh\c^acoqmfKdPYm|baW]Q\yhYQXmclbW[cUPadtgV`Z`XLZZ[w[cfqj`RaVpbnV^Vqbddh`df]XhtUjUh^Vkf]S]Z^Yh_X[iag\jjMgZeW^Z\Vi\_ju_mc[Uk[ZbVZ]P[QaX\qfZefaZgrTafd`hd^`d[b[ZT_ji\c[Y\]cjvfVbkc\]_[hhbflZaf`h]{bTe_d[Zj`jfjoWafXli_da^pZcYgpY[T\TWPXf[ha~`nV[f]WWReXZbPb^nb^\Z`hRjeddbM_^V[Y_XeQqif_fVn^a[UZak][aZehd\i_UeZPTe\k[ag`\k[^l`ZZwdsjgWTW\^Xf[g[xkkdYi_Y]fWiSgeXYaNeWd\caeelXfX^i]Y_`Yf]afWel\Q`WeXrjX_V[fd\i\Wbac]``]^n[`_c\`ekb_mg^iZ`v^fbfkX[g^fck\]\\Qogajehd]_MyY^glgT\dlZ\p`]hxV`cfjlXa_a]aecZk^Ybf`Vl^cbdfbf]X`pjh``boenTZ\[_mcZtdUnbbUhQfV\e_HTcUnY``n[bVm`[\k[NZThdIKcoX]nRVXFTgtdS|^`hnoVRZ_]UtQbdS_[SKdadNZ`il^_TdnZhV\^_VNdfrfZZ_^U[]Q`x[UkofgYeN`cKYVjJ`c\Y\o\ogaWUSedp]dS^VZ\eo]`^eRX`\be]f^NZ]ah^l]cXUh[]ZZ]ac`gLW[oQ_PX]Ib[^i\okV`T^dWlihV_buR[^YUVS\fUSlafYe_M[oONVOlT\ja\oVOnKYRcSSOUofqVTrWZWNOV^SUiUZR`aZg][af`_aiagRi_T^`VkWiTVtSgSYZfaVMk\W]b^ibY]hZgV_UQf[blpQ~hQceenf^ZfMN^Qg]Zmb_aUZ]YTc]YfW^chgbqUXWjcKIbZmpnaO`z\`\cSnfajsOWPb\ZZ`^K]SQ`VXuQf[^_X_WbaUV_UXgnidZNXXVeXVUa[VgYN[N_kSmcZ[oRZVmhkeadbd_bf_ZwJ]T|^hQ`YX`a`VUubTSl`_egZ\KWh]WYfhZhV__Tb\`XUV]Vop`leYRSzO[j]\j]]XbZ^^TgcPSZka[[bY`TdbWfV^dTalqTk`\\fbY[ZVZ^SXz^bl]ah_QTXZeXv\Ygk\Y[V`gNZj_QX[[YkZKbd`YJRidMRYHZ_TNQ_^[cP_OX[p_UT^[sZu`^eakd][l]yh^k`\oQ^S\XgcXZ\RPWdRO_[\l_\YK\WjXVXud\geXUUbwTVnN_YL[RY[[U[uUV\TusZcZUhdT]YQp_hchm^^iVuUaNk`V`[^`bPiN\_`~{_mxamb_bbxdZk_rl[[{c_h^bfhcsX\c]bq]`he[f`]c`dbyvpnfhbblel_u\]ea]a_i^[U`mZrhbfYd_fdaZZ[rciZ\_gahdc[`l\^dwVkbg`VfdZmYfggkXnYgbir]l[^fiX`r_ifkdTakbinp^bYWT\k`_]afjU`[nedi^j\^idh\dnk]tUYjblnggth\yfneg]jc^agilrc]k__zgakj`lhyS`hr_c^pb^Um_e^fuhtga^kebcr^Zgu_[]ecwuu`qgb_c`e_b\f[ugnbwT|h\~bnXT\jklufVeoeofXh_WacVvqmd`baikde[^_`z\]_bfgavnm[Zak\fmZcdldje^~gxae^jd`ubjlb\i^dgbo}kig_g[[bvljca\s]_bfhZfka]vgwfTjimvgcqiqmm\btuhfWceicZrd^]c\ZOf]Vfcg\dlpcpr`bqbdh^VjkfnWcT_ffg^eaYgo`vb[rjhaq`gbvTfodqfeebo\a^b`_Wihhbcdde]lewdo`jb^ch_[`geYXVrjaecqe`am_Vegetfcef]bgiehb_m\l_s`xVf]kbg^wZWmVY^gNpl[iYiSj`Xj\kd\Z|`\gkhmipcgbdhaY\Rh_]X`\]ng]dmX_]lahmNhhg_g`hgczX]d]gi`cag|]`x_\bflXigZgY\ebmc\]Wuvec`e\sjeub\UVb`i[dj]nffdU[`e`aYahtsfd`sWnYn]ewXfienX}gjj]Zbr^k_cnaaYbfjicrkS``mNXfhQb]pV\^]zae^o`]jgeRZcVR`^\`[eP]]^gadcWVZS[R\X}dfVRWZm]]giSaVXcaVJWpnbSe_^ggwnYZ^\YZ`Vaw[ub`GWffWXafcTnXYd[q`kcgdoI\uf[[mbmZdbQZeYeVVLIf^c_`cbeKP`eekrbYU^`WeSfac^bPnY{Zfi^`YlXnd_\l]oiae[hdhuP[YuhZL[TS[^RX_fhzJ[e_Oce^_bhxnn`_Xldkl]ZXgUg^ofkiPk[bYqe[]pXfmn^YRePS[`dbrcZTObjo^cdjWTtpMedb^SdY]qZfYeQafYai_\aQ\ZWtfY]wVu[XfO[b^XrHg^Ybe]S`Zch_l_eoa{ta[fcaY_VX[XU[dpZedcc`rW_ehiaf\bfg|k^hdn^re_ajg[f^Yh\^^jpcecbq[\skdXcibo_]jd_[boWX{x_xZi^nX][]Z_[lg_YSged\jce\jk^UyUkQbf`ecqYzQ]\emqXf_jdjakf]glqX{rw^kjvoZ_]^s]VlchenfU^cggc`k^qfad\j`WX_gjcba_]jUXsRnjsz]ZWUfi^ra`b^b^cdTk]cbgTYlb\U\]cj]eXcgW^WccjgrZ]jqcchfb`ljgrdegbgUo]jddahXdjklXv_up[\fjpZYfufPinbpcWYbgZijd\no]b[_ji`fd[X[R^aedYjZmj`Z^TXann_]_`^iWlt`][ebg]ij[hb^iSqV_cffl[jsiWSb^fvZ`_W\gme^YgbjjZdb]Zanfcm\\\WmodfY`_Yc}fdg\\ZYU`Vh\bm_gZlcpb_]l``jYda`s^qlVMyackVacTjfauZ[aRf_c\c\Y^bdYcgbtceT`\^XbUT_WUZT[v`YQi\afjXoeU\Xgad[tf`heX]`]cau[cgb^cj_lebTq^dW\U[di\jmYkbZcRK\dZef^Z_ku`ks`]_hjeYkhbc^ZVg`wfZuvY_iYUfmV]`[Tj\[kh{WbhYjhdba_kWZa^cX`XpbmXr]`ke``\a[XUe\]Nieg``fc[hgtU]m`ndc_`QX_b\h^YYZaca[RWaaRYhaPV_``_WY]dd^]m\iYfePZU`^mlo^^mc{fa\WaY^b\\e`kWfdWXf]b\eg[^qtvqbhfgcWW^]e``a\_\VYU]X]``_bd\Vuiid^fZag^m^adkXd[Y[`W^z`]XWOPhipZXbWdbcbd[uYfY\`gdUi^[]rbb`hVcVVQiqh]pdtaYbgcajZ\kh`pc_e__lPf]Xbd`^l[Yf[^lZonjk]V^`ki_`[djs]h\fh`kU^gPg^n\~_dc`h[sandm[c]\jZcblkX]XV\\PbjZS`Yk^dhUaac`ePdkcgSld_[c_`ke]i]hZl`]SWW`[y`UaSYey[V\ebqgg][a`Qt\Xie^_Rbqumicg^c`ZeZbg^fZX\djjckZf^WThjZRcg^_]dmWXb]dZbbjdW_UfjbUha^`f^h]\gVolg]XeoYi}`jw_eop_\foesck`fY_jiWcXZ[`adaiU^ac]Pbj[P]`RP_QiuT\oVRnbVa_kbhhPZ_[gXY`fOZ\]X[[UbhbuZ\ZcaabpVTSbYZUYdYbbWfuicfrYbl[[_LVXaaS]e\dhW[Xnc|^]b[a`kWXiS_VtcYZZcZ]UkYX\~RbbUfSj_agbTnklYeT_^VX]`YdeX^fkhZXdSwbZRb`kL^cTVcfXSR[r^j_[X[d]\[^eiq\Zv`f[[iaddmgV^^R_RY[Ti`[aj]gaZXbhuXZ[^pPQZiX\Va\c\|`YacldU\S\]`ib\]cZT[aZgbfTZWYkna]Ob_Q`^\d_[Y}\Ra^Va^dZm[zkTW\UW_ndYRZ`al]\Zj^eQkg]iq[]^dQkhjThfj\\g\bqY]bVdhhXbaVQb`pnSWS_UY[^[Xbs[^SY\lfbna\shZmUke}Th__YXkrtftc]q_dZZQTK[SZRQrstklW`f_coy^VLkfjcif`PYh~cLgYrX^afmeLjXrd[]pbbPKhoVfa`qo_WdO^uHiUNpprrUVSS_dYigkgfXeP_\ejgb]ijlaO^ig[UcZ[_I~IaaR|\VaZaYm_Q]`Zdw[cufla[WQ\][VbKTsXa_YRZb`hVaV\Rb`jPg[kijd_TndVhaQXcYnMi_WSkYlKktX~`_Z^g^Wka_iIzdWRYfy_xbifPgcogslTmwS}oYbookcusavp`iZS_dW_p`ZQUK^OuSkbfhokmiiWk`m`[l]XQfaflkimkcLReaRcJZe[Sekrl|U__bahV\Qv^QxcIa`Z`^R\wY{~QXeVmcd\iotUX\daa_gbljp`^hhbY]i^qc[hccrnjb`cfk\atd_]l_Y[blj\h_grn`nd_gd^_bYl`acbg]c^o\ubidX[ea\`aa^__ldhe_nbef\fsaaecec\bigu_d_da^Zrb_ggnU\ZYmZ]__ddk^d\dlgf_la\cecqnd`WXW]j]jzrmahkbblbgkhcih][bu]ecjn^lgbXjZ_gdnfYg]eh_]fe[d{gfe`fbbb~]`eX[dbg]nSa`Z`^dafaXrZZb]indecdokj\elkaa`_e^go_ZqVXX\adYxg]ifpi_^s|dcdMfb]r`gZ^^mcWX|i`gmgvXcPcZ^hf_ndf_eadf^c_a`XYnaibx\Ul`bglbkaaeddb^\ef_Zah[X^qke_nctse_R~_SWV``TYkModb^_bZTTXTNdSWWOZ^`g_cgGsagjdSenhWce^\wVbZbaO\eW]k]VoYcYd^u_}Y^h^`X_M_c[_V_WR^cWX_ggHhOsZc\QZY`jZOaafY\[[b[WsLk\KYdbZetYWZXbhW`odnwY\ckgYXn]Q]\bpIYanoWZ]_SXYYU\lZgf]s_icbzfW][[iOO_\fi\XofeYwVjNU[Vc[d^YSe]\plXWxYaXU_TXdWW`^eW]a\^gdQkidTh\bep`[ZZY^[ibf_\Wk_Tc`Q`c`[mcW]cy_ijY[Z]bVURTge_aV`Y]_jVXaobL^ea]MRbh`_it^v\_Y[Y^fw[d^RgX_`TcY]RViqaifU`i_\[YZYVmYke^]^`[gjjXsXUgddWWaV^pq`]^^jM]~eTciYInoUWZV_gchX`_cjmgbzYOv[YP]lh_[NZsfP_vemnVLkab`dhfZQ^`fmUgccjWW]mTgid`^h_hSZMTlbc]]RKRRh[rWUXbzlkoZVZqSja[jTdWTiu\m`cQjPagNNUfVQWWwVnqbwxvxRRneSvf_T^Y`^MfRU`^UajfX^rYe\Wwb]Z]U_Tld^eZpqb`nnYQWkbXMzfbZSOmU_Rnd[dK^ktbdYc__tV\nXaedh^_]gUcXjiep[kopRbZPw~^`bYUkWV[T@obWOg`aL^henl_s\[nOtug^_Q[_WRjgngyXhWc\h\WN\abS\`VTRa[WgtqZeYkZqZ~]p_WUfYx^d]sop~VcK_]XV[e]VkbSZWPPm\[ogi`[T``eYhZVkhj>\qki^cZYYXnJ^fliV`ql^N\^fT^hahX\irUMfa`^]WOmTdebPXP}[aOWEf_ijI^QTbtee^P_SXXa^R[_h_d^iXuZlZs\mio\HkZfYX_hVQ\\]^dcW_iYU_YgRnmncK\qm[f_La\uQSm_OU_]XHdOrdr\[VQruJ_kEbl\P_WkRUaSihcV^TcY]\`pq\^sdaVajTe]eNQNjbkU[oq][dx]c`hLL`kf^aKbJXghOaTROZHi[hrb\^HIg`PRbkPXTUVYT_Yc]OVVL\\jUYRiqhcf`nuRijLgJWLTmbY_]ZEVfZ_PNum^O]YRPZZ^indWQoUWZ^RUCOjhPyUS_\]F`qpeUaiTUoaKh^YUTlPSx]bx[fTkMdUP\j`feekqogjQfd^VgYR`V^[pcbaa]SZSgnma]bVVgxXb[[\Z[VkTgl\Tb]og[iSkV{Re^`cqim_`hK]T]aTosZ^YrmYZZWdt]ji`f]eUib[Zr\phXZYnYP`QqTg]Wncv]gha^cZXc]W`feUYTTX_d[WZ^^aY_iXcafafR`^WeZ]c_[aaloYad[\XPgsU\ggd[cgdatY[jgp^`WwXchZVcc]Oh`T}eYI\XST`]^aUQdPua[hbTnQshc`^Z`I`[cccU`_WcYj]`SUZWbeYgdeochYh]`kQ\ZdaoYaYbaZkiYgeb_fhZdZb\k\bd]rYfcZ]gYeg_^^TkWa\a\V_iZbO^`RaYb_T]f_Wvsi`YaiVb[c`]obhdabkXae]jmdUZknS]ah^cXa]eX[bV`hSL\Wcl`]mW__i[[L[_YTTL]c_eb^fOZY[pSi_[ek^W]Znb[Qd[`oQiaXgedV`X``bblR\X\U[[Y_W`ih[_^Pd]]Z[oZ\Zc`WU^Yif``Uncea\b\[^fXfXbUk[g[gZN]]Tc\IY^a\_aY\_pZ[_aSfkmk[W`dUhe^mX`\LhbW\g_cdTc\W]Z_bg]]`a^ZPcZUjh[ZXj]aT[WfRKU^`hWV[dQZZV`cQaVacS]NdcRUa^XPacU_adWUQcMfW]ZwW\g\Z`fakSgXkZVk^eZ[XZ]ZRTd^_RsdZeTYUiUMWm]bVVn`Sjc[bbV^WcU_Zi_bU\bRc\TU_]\\RcUXVbXfoRek`Y^^e_Zh[caNZ\\e\]dhTqiT_VTb]ZbP``Re]^s^gLmX]xfo|naa\cW[_zQ]hn]hVPWfHqSbS[RO\Wl[x[`MbaVcal^k^[joZXoYc^gU[g[a\tKc[W^\_[_df`GbM]YQW`feegUidY`dVXg[^jlaXgWYWUJWegWYgfSYZYgWKoPrWefQcQ^[\Z[cTOnZ^]dZ[ggbb^U\kdd[[k[Vo\h_eUccb`Yxh\Wc`]ViXs_Hjmleek\XkbYk_OX_qTX]fQ_cagniVsh`n]tXVi`d^aqdT_\qf_RhVfQ[Tq\h]\UWkeuRpghNc]TYYnuhNm`WUbjNXUabj]aMZh]i_fi]WXau]iYTYegW]nfaUYZZOQYlq^VmYrqo`abb]d^fbh^azYTeaSQQ_g][jaUfqYU^Mh^pS]TU[njWcW^WV]Z`VbgZhjkRXdgffPYTXHhdQ^jcbUb[aYU^QXZ`fbci_[^RY^T[c[oL[P[ROaZ[PP]d\ZbGV_^eW\VVUhTe^NPQP_TO_YMY[XhTZ^xXXQeuONP\Vh[Tc\b_ZSYig`jeTS}VShl]Yhn\_c^yZU`]b\UQZR[Ye[RcfXvXR`cZRVjgc^ZMcsLfWh\V\aKWfohcYtf`NZVbSM^ecWZcLY[]di_UTV]RPS\cYP[]b]WNMTaff]eZ^SZ]b_ZSWXX^bef``cXg`hKVi_^eWVWdsZV`_dUS]RPbI\VgoV|h`w[cj\_tgY]dabTh]Yid[bXI]cVfTNHZOdQid[V[Sdclq]g`k^Z\Zj\aVdjQUKWYdcm^UVUaZeeWTWVeU_^bfUaVzl``kkic]f]Wg`]f`b^SZma[[`\c]ghrY[aX\b`ec]b^`WV^V_]i|^\_i^\YeaP]Z`^[g^\aYh^cdl__zcn[bj[hYYcSTXtfe]cddag]SbZy`a\dkY\`blb]`kcscdlfXwabm\g`faW[gZhmQ_\jjYYk_jO]oid_ic\fbz`W__R]jX\^W`[XZY]p_XU]\RkfYgf[]YS\^_[aW]sT]Z`Qci^db^f[eW\\b`nfdYXm`VWMoUg\Xg_QbkZ]habvc\Ud^U_ZSlY^aWa``PXV_Vea]ZRbwW^ck`^_lXZ_XVdYf][]_[fg^``wlhmaaf^|Vfankelb[fi]wrYqcrqb_p^\OkTg[]jVf]j^YX`cdXVjUqr|XV\[UiS\jVgjcf|Y^agbs[VjjoRZcSWbZ[ac[^`UVdXb_hmEubV`YW_]bYkSaZT`Zf]Y^eVhcYRl[``Zkuqb`V^ScVdg`R_`\S^T\a[\_einTXhua]dleXMYSmg\ZRWZai^u_R\_PTsYOPdYb]Vo_khZLUOWSYWbXd\P[hX[R`ueNpPWaWSVWicZamUYUYgTTnib]RcX[]fe`RVZZaibd[ScZhhVcW]i\Vaj[h`qa\VZj\Xl\eT^U^]^Z\R]VbQWST_Vm]bl_b\Sd^oYV[aWWMJq]_`]W`_SYY[^LUOSd_U\eZVa`PX]Q]O\cnaY[cVR]UM_]_d[R^\PQKkdVfjilga`Webh\Nm\rY_X[abY_Z\dfZSv\^fXbbcpdPuWScYogVb[\^[YsWJ\\k[\\adkeWb[WZYdVacMUTYam`cgW[d[YikV^Mq`WXuatw]aYWW`aye]e]adjV]T`Uc]^ba_ZaYkWac^WbUgWhdog_ibqgdhbkl_a\caf[]l\]c`_[pNluj\RNc]ZbXdWk`jY_W^TYmVjSRZYa_cbWtWhb[\l]chhPYw`]a\^^mbXbY]WXabdZ\p[cTXbYT[tVd]c\^`gZ`ZigV_b`wdRcP[me_abgukSgXY[cmd^Vp]\Pcc\\c`W\aahWXaYd[XWcYh[d\SXXjUVZXr]^XVXrO_]lXY`\][]d\][Wcee[UukbQ[sc^VpZZXYW^o]bc^f^^YYqgakgJdX_\gZSfgUTjcY^^kfcabiitkc]k_mh[soVd[dVchedY^[q]TT_dovRjmY]bacY\g`c]a_`dbd|J[[bgbXqNd[p\VW`_c_]jJVddxcdS\X[^^iK[Yi`cOQv__T`NfijII\fYcXOYXZP`kQ\eY_XYXteSfh\_YciU\aRc^rhXh[Re^bUayVgbq]dhgSX_^aV`ti^V[Qb_bcU`[a^`pZb]fT]Veg^abl~Ufj]Z\`W[sex[m[gcaw[f[iY[nqYivRmXSQ]\\]`dU]T\dwieR\bdckdhgc[fcKbsR`f[_[Zb^fTokUVcldQfWYd`hfh\ad\tcXl`X\n`S\cTZPuZ`^qcXX{q\iTZek]\W]f`nV}ZXgXK]VhccZ`ZZrXg[X\\ZhV_bolgiaQ]XbSR]aVVX`Y\jbdjd[f^Wlh`VqlcXSSiUl[^icwg\{WZ\_ZUaZ\^hu`bYWa`X^d\mYRib\di`fPGWfRa]fX{SSj_bb`cc[[Xb`Z\FV\lgVM\WVU^YRaSYu_jne__c`T]q[e`RPX_dXZYfTY^]aUTe[_`taWah`YrSXt\]LbllU_g\]l`cjb_UY^cPba_S]Qp`_X`PYbW^[ZT^P[^[We^^[N_\qdY_Xic\_VPYZd`cWXZ\flS[Xpi^VY`abZ\[p_dY]Wdfe]\nb^][KXbT[WZb^b_^bZgh^fbZuaTfjXfeb`dgoilYXXVjXfUhVXc]XiY[WTm\[clTagV^\]Wk^VVQmXff[ge]SwXZ\_Z[PZ]UYVXWaQ^bZI[_YXY[da_eTU\h[ZXgQZgaWh__\bq^^{MW_\^fRdU`TaQSSa`Qp`Zb\UV]a_I]ccVbYbZ\gaqZiKgaM[e[Vem[S[Y]@aW``e^Y]hMTdUnlj]\_]\ORi^dX]YX]ehiQhz^cPePcRgm^_abkY^^zWa^daRY]\f^_R^ejaqn]je]PUaH\fh^|fpdiVpe[^Qd[\\S\\V\k^d`_l_a^YaNMcfUk\j__dTVXVSchUTn`bf^RZNgZ`ZUg[\YXqe^V^`gY[[`V[b^`\ddcd]XY__\[]kjc^\Xb`YzUct]Z`c\_fUYag^Yu[lgVYcTkpZaiX\Zqr`f^bSd\[`]U]akuK]\gYi[__]d\YN`c^g[iVg~dXb^jpQc\e}Rd\dXYQeNQ^YNjWa_UWlYY^Y^S\X^Qa[ggn`bM^dRdZe_q]ea`cVk]`XKcZdt]e`r_Y`icWeaadXcrXX~hh\tb_bedcamiccn`[d[`iYYWUacfeSYbr`_jemW[^]d`nkilngZje`lda\\at\q\^kfa^|]aZS^XXa^f]aZ`\o^kaikaih`nfgub[uVZcdZdg\f`uqe^j`_`iWj`hZm_XcZcXRf`Yda^e\Uv]gid]`cbf\ageY`og]cZakffvheX][`gdedcZX\[bgbTp^cja\d]a`^gr_WZ\tU`bc[sakWU`h`ti^mSWZcVekdpibidZdlja\f^ejeZafa]bgaagp]\qa_ncV[Y^bZcWk`i\mfid\_`cj[cen_b`fj_eep_^r_XYja]f[]XW`ghr^\kUqdR]`c]bb\`e_lgcZbibb[Xe]bm[_d_aab\ak[c]\RZ_V_r\_cVi]lXa_bn`a^qdXW^UWo[YofeW]]h|jpcl_^Yq_eXUefdYZcbThf_j[ld[h_RjdVZZd]_a`YjaYgUZY``ZcU_WsZ[ZkYjb_\OSehg\e]YTUVroVjaVWg]p[Trb^lQlmb]ncRf`uQX[mZ\cY]syn\c[fmeT\TYddgwm^SeZ_XfWwea]Z\cbZPqcY_`WjmccfW_bkiOU`UYZ_f^_\Ul\abX[^_f[SQ}kcmS`]e]iVjXi]aba\\WX_pch_hcq]bab^c]_a[ubelNaitcdXdkbi`PY[YYee_p][rdz]k_fbkdj`aZ[jTs\[]_ercWg\zXPZ\]k^[Taibc`Yaoid\^]pm^afSQYPRbg_[cbg_de_eUgalaciYWo`n_a[Q_[S`e^[ggiQ`XU^g]d``[]bdf^Xh\Z`RZn^g\c]`X_hT[fdZd`ihY[_U_eL]iWk_^UpX[S\`csklWX]aV_Vp\[Tkle^UZiig\hS\^^XcY]^V`ma]eWbpcfZZmcVZoak`oesX`rZWlagYc`eg^S_ccg_W`UWVchXc^YdSgblg]U]SdQbjodrV`aNXeptu^bfhaibXV[n`XWcXYV_[ZivY_aaYfcjdS`Vg\YdbngYRccc^XWbvZd\[Mape\[a\\XXi]Xa_m`U\diTbedaja]cY^pZT]^Y]\UYd[[Tzblfh[mg[wbf^^[Z\sYgVenajpUc^]kb_mZUja_bl`Tbra_ZkZj`[dtoe[^k^^co]cbfiRW\W[V]cYffebZVf[ZTWfdYUR_e`[ccidodOYeUk_`^Y\_at[SbO^YdWeaf]T`_U_kPRWVcUY`RPX]UY[VWWwak[^]NYg_hh[P_d`_\[R`Y_[R[X]j\`WZ]c`a]Xed]Y\`\smip`dfY_hc]`ZX]aUgzS[ZSZd_fYT]Y\V\YSY\TNUahZjZ^UQjiXWabei`]S^\YfjfZUe]hYhUeec`b^`X^adTe`UYd\qRcXbbd[R]`_Z\b]_^^RUe^s\c_dYa]cmUW][ZacYb^k[Y`Zcf\^[cc`T[_a_ZbwUd^XNcTe]YKbP`Yc\]aZh`ajgejV_cR_X[]V``o`\ZSYffaaZbfbo]]VPYd[]XZU_^WfKQ_^Wg^]UZwaH_UhbTm`YU^[bJa__jm]R`QkX]V]l]YYiPi]Rkdabc`T~j]LeffOO^i]tg{mjV^R`jrgJJrfhh`_UekgTaR`ume[UQ^tja_k`^a]P`haS\PbZYYXgaMcLZbteIZ_luoUTL{_[XWbjacijv[cQf{`aJem`\bWNjnweQW^Y[^s]\\U{UggPKWY^hYLlVx`QYbc][\X`hJXR_cR~_NUoUmdVeS\[N^kM{ujdpZyV\]hU_bbb^\bjbdq_idagup_aTX`dvZnZ^\]nS`edTQToMnoWS`RpP]`ZiiRW`gO_beGdYQh\bVVJdvUm[aUeYzcu_lZUUln^]_ilY[dOUkWbo`WeZXhVWNpjvfbhaofcbner\nRYe[pigTKPu\\eeylTWSWQTVm^Uw]ha{_SgnTH[Yd[XWaNfOYUbVYT^Oh[ehWTRaTZQ^]\JQdZ][eSGUVjXUvgWafaJm`r^\W[USYf^ckbYQ_d^PW_TZT]R\Qm_[O]QYiS\Q\cWkg]YYZaNWc\Ud]iUh\[Z]WY^U]TZmXaOa[iIbYFBRYTRbQRiWRZ]}Z{lT`\iMZoeqh][YkX_\kWWSWkqfkf[^RV@U]MU\\iZWYKpgV\SXhg]\VlL_W`WW[ln[SVUPk[XlgViLbY^Uc`^W^icX^Nea\Z\TUb\dfdV_bmdXXfS_NVX`^fWfZWT]cUca]e\\YfQWpue^dr]vj^\tRklPWrTMd]~NiZ`OLVVd]TjUL]^YVTLWUlTRUjO]Z[N[YkeVTOHjPUT]R^UYVVZYi_`\dUP_cZafZ`eosea_]\nxmhvnbj\Yvlced_sWh`ce\ed`iqg^g\k]\_bcg[a_kmc^\Y^ifZmd^_m^z_Zc^bP_]UcqbZfkab`lld`ZdW]`p_aea[lt_f]_icma\]Ze\fegodZ\bdadUegkm`\X[[c`sYpqqfYppksiZ`ecaZbidbd^^iyVh}h[[Wskgdh~gZd{fdkcud_[bukYz_v^b]shokjo[jyobkbTne_jayboZ\b\_d`[afj[mjYYa^`][\\dYk^dl^]Zkgdgjh\kfj[gt[cip\muZi_pbvXt^^iacbUbbZd^lfXl]ooacaYhgck`mewhak]miqsb`_ggc_^tom[^`fbca_^repee]Zb`je\b\mj[acire_ZbpWWaRfT[ey`qjWddWSZY_naeQliV][geden]ea\_gUWZbi~^TTkZglb\fWdU]XYP[UVY}dUrj_XXc^]M\W_da`][[lZP^dc\NV\aSdkeVqQ_xod_P]Y]`]lgaX[]Uf[ZbXbUWZk}icXZyiL[^iYX\kPke\^O`][]Zi\bgxjbWgV[^ZY[dZ[]doQTQSb``hXe_ag^NLmMUVU]dh]b^[_b`c\[iXacTa`_[WbX^YdjYkTbhfcYd`U[aTLLZSpsP`LcTfZV]f[mue`TS]]e\L]hmZgROZVMcdeV[ZVgU`kdWxb\ffOGY_Ub[Wely^poSVZiVUaSe\\ZiaOY_W_``hYXV]VP\cggUh^y`^d]kZ[`sXggLe`gWj\Z[`ZUz^e_v^cgPo_pmWTicQbfRpW_bQUfefcKV^Zd`eZ_TgadTjUb]mKfn\RP`e[gSh|Yw[[bkcRk``QXZ`^qa_PhZMd[\aRdj]`Zit[Resevj`KWbg``[OLd^ThQf[q`gUgXpTb[`]iZndbdW`a[VNshda]dS]IeSd\XjV[`gcpWSeTia^WaSkc[XJ{iplf\hWjpbl[SXZamgI^La]b]qPpdlfhoSUeeSY`k]bQOkGjWhWLbiebbFmXSa\g]VnehYjSUFw]jsdgionaVh\]XUpbbb[^\RqeZhlhJabn\PbZvNa^}_kE]mX]`r_eRbm`T~e{bopa[tWehpUesSse^yOkP]M\a[pbe[cdQVeZcYYUqVY~[`xcuYYk`aYcQbUSgyOm_hfMWSTMW[RPSRY[XXQT_aMZMJaLY[W`WR^QZXXXTNWEVLZOXZ[aR\O\NW_]X\VASVVVNTMVT_SZRTUOS[WaTaWY_JgW^TMWV\Q^SLU^UYUUb]QTYKSQQ_YUP]]JQSVT[[\[WZWbVTGL\WZZ\UXQ\^NU^M[QXYPY]S[RVU_PZVHdWQ\STVUO\[]TTVZUSVYSQZ^VYZLQV]V`hcUJXVU\PUP]WXXTKVY^`STXW[PWULS_\OLRh]XWYT]R]VP_^I[PXPZUSXZOQK`K_VUQ`X]V^Vc[]V^MY[ZPdVQZUZYeT]WZ[JXU[UUXV^a`[ZVI^OOVNRPTRObRX_QXUXT_RSU^S_VHOP\VUTZQTgUZYMX_M[c[Y^OVKU_UOWTWZK[^X_LTmYUOhbqPc\[]i`cei]oYqZmmZf`UZasSbxhUb^VbZdtqUtYTVcRkef_cZ`\cbccYobmb^^caUipd\oi]d^Vb^TdPadu[b^\\`nieRdbvXnogfNTmQPj]S[qn^[jcgqiqbZzLa]`z^hhsba^``ZU\njVXpaidS\a`o]Pc]]qeT_`e]ljX`[egb{fhdyWcmT_yjf[^XrcioiTicYm\rv`[xdeh\US[bfYTlYhW_nYYiq]b`nfgl[Qdi\ZanZqkeRVdh\nSi^k^b\\`[FW\Z_^p`_Z^lVzohaQYce`bfd\bebjeOVKe_]dW`munfl]ibWqqYldcjZ_a`XUNltaykbiiWd^Vbce_dTf`zTaj_[VVkfU^\]bg`Mj^ec^_m^[dLWX__\_]UaXdaXUdbZ`UYP[U^_VN]XVVaZVVjL]Wce]U^`_]UVVbPdVXX_L[UMWUXSOWU\c[N_WMW`ZbWU[SbbZSiZSPZ\YX^MMY^[N`X_U]Qjb^]cSUa[[Z^S`QU_[`ceXZQ^R_\N`NVVTUeS[RTsX^YbVVfTUZTbR[`ZVZbRUUTTalZMQQY\[\`Pbe_ZcYVTR\ZTZ\T\V\a]^UVRddcaYWXW[[Y|^d`V]\LXQZS^OWUZc]N__OaQIV[b_O^MW`pTVWXaeQ\YSbgnXSV_SNeUcW^XQ[UdZVS^[Z`h[bZ[]YdU\YJWXYRNW[TeZbOYac[V[gZWRma]T^aNOW\J]Sc[`ZwVUNZ\]\cXIWbOd]__aNaV`Qe\YHYQPT`aTSUQ^gJ^afUg_nocf__a`_XmqeWw`fyVsd^e^hl][_dei`Tb^pf`spZ[h_^j][[kdsegfZ`feheZV_br``j[^q[bqZg`UcmadaY^\~VXeViaX[d\\gammeZ]}YdUdaheh`Vbcb_ZY`mqUo^^^aa\jdh`b{^fc]srkcV`k`Tieef_hw^e_f]d`jg_gidjY\mbffebacg^]^eknbf`^^]eR[^``jq`^cj\b_Vp\dfsSgjbgyZaq`fihUbX_]la_gZ`qZoaZ\a\eahZ^d~qnufkbbZgb]agc^OqXf_Vmqjeq^cbh[ilj`^u]ebW_^mjsjhhle\]bo^hwcdulqdZ]scbg\]Vg_ckbiei_mXZY__bacYh\k^bX[vbc`]^a\jffU[OY`b[V]]aVZN]URe_VISW_GTQWH_]\RNYSQ[^e\URUMRVL^aWOSSFMUN\m^dW]aJRb\Wjf[hP[iQ^Yc[d]Zc[_WUZ\YYX[]_[_`ZcLSVcZMOdWFTN[Z[XbT]OS[WUZLQY`T\WWV[_[YFbNLnXY\SF[PKOa`[]``XZ_MWSWKE[aRROWT[^QYPZQVgIUVYda]b_MV<_`QRXSOQ]UcU`QQTY^[\ZcVRKW[TRR]^bJbWGNT`h[^VN_eYZ_PC[W]PTgW]RQaHe_NUORX\Y^S^XZYYUSS^_=UT\\]IUUVh_XXVdV\Rm]SWTRIVXRY[TZSWXSfWW`]YQcV[`TaLZXacO`XVVe\F^NUe_dTeVVX^[g\bgY^g^P^P`JeUUMPaY^e[^OmWaYaPZf`S`WTqYSP_gO[hWaffTZgcaPTZhZ^Wb\PTjYZn]_aUccZY^V]nJcclZaP\dYdWXQXWYVf]`u]oZSUSznjb\`XbWaeaaU[VVbSXa_^ccYWaRc^Sd[^`bN]y]\ee[^aV`rX[iYala\lb`VWiSs^ZWcja\[[OXU\Xj]`\jR^bd]\]aIVV]YfPVPb_WTcY[\`aj]TXNl`QbQ]bXXUlh[QgXg]Vp]YPZMYUNTSN_aYWY`TZU]TpYsMhO[fYlbX\[lc`M^^WVX]f^dae[We^Yu]bX\jZ]blTb_\LSa`bPDdPVZ[[SUefWcQTX``bigaSagbUbjZU]S^{TVdimY]\PXUXgi^UYgac[NZnWfSW^la]reRYf\`\c\`vMc`[Wheg]jaKd\[YO`j\ca`mWT]ZZnfUb_Idv\W\]V]SUU]gc^t][Y_kcb^aet`g^c_jVkclTTm^Vmc^qM_^OV]`gXchYe^\ejbajY`atUbjecYbZd\caY_af]akYimgomZWeXWqZaKamYmTZi\dZWdL[[a[ZXSVZ^qiXX]N_abeWiwmePh\_d\UbarYaoeTXVhfdq`X]`_cLYd^]]\]\`he\ddfb^SafpRc_[`_Xdfg]i\aYaZZykQi{_aeaVZbObThbfjUZWp`Va_oi\[^^^c]eb_n\V]dbe\h`_V\^iYYh^Z\ZZZ]T\h__U_YbaTW_[nqNq]O^]k]aw[\`bTXXnhXV[m^XbWUjkb}\_bQjf\r`cYchXqghg`jbR`i_]_VffWjY^^d^aYV[[[XlXV\bg^Z__f\^`[``Ufkpc`dXf[k_Tkii`dhd\bYYXja\prb\_`_WahfcjV_dSa]dbZhg]V`bPTmlY`af]Ym[bgXT[Ocjr\Wk[emh^ajhm`bXcp_]iJfYT\mmaas]]RiPp]Ugb]TS`daTUiQgmqR[a\k]hXf_WZcIUTZp_arc]Yj\`k_kd_addccY`UZd\ifpm`[`YfdheXfVnaQaakccP^nSXX[]axb[Xo[Wbe\W]lbaVVlbkbcmad`aad\co[QX^Wvd^deLenaeLnU\d_ajjhhd`^kpT^{f_csQgflah_TYVdf_d[W|_WdjTghib`XOcitfWSyRTegbWh]al\Xf]Zbm\qhneadW^dmV`ZobTc`jSZggMTgdo_`kXb|]PTcbTS\fcoN\h`P^]}{WaV_b|beWS`X\c?XM`ea\fZenk`fdY`bsWaVcbYgfp]ez`\Sz`SnkhaYV[YV]g\tZ]Vn[ndf`YgeY[ncZgW]ghfj\_Ifpd`gZzKgZQcQPVjebbcq\uYRQX[dUTSc\NbY_\_WV^]V^h`YfW_tsncUaoubZeZkeQUyUdxPb_bhp_z_[R_\`PsaS_hS[lYc]W[Udi]b[VdR]YaK`^bU\\tNdXj\OG^eg[]gSNZTQcaNh\CbuD^bYcfTnPnA\v\`lqcdT`cj]U]\MmpTUm\n]vhUyNj]gYvV[Z`YXSS_cNVaV[VcdkjYUb`V]nj_OjYfsRE\Yo`TJbHfSTH[slzdhQ\krYVX\ggdlfb^dsdf]eaZdY^WZ[bbf[fX^ZbX[hkfifYXZ\f\]\e]`\V\ge^g`dr\V\Zk^gqfhfkyZ\gYWb]^megb^cec[XZx^sjiZSci`e`ejmff_kbfilh\dY^ehZlgib[kfmocehqWy_onqffa_e]bYjgifsabdcllU]`chgyXi\beoa`_Obk`Ybe\jbZYQPce\aWbXeah`Z`ddbdynhaipaofei^a[^cdh_fa^kY_dTYYbmciOfXf`c`Ube`bg`T_]edkV]di_Vb[fqb[k\^|bYc[]ielbeoj[cdr[]c`kf\bhmfV`dbichnYZeh\Veg`a_ZcblOcezSmeno[Xwi_pig]dhifaUzi[[X^dhZmnhaYz\m_`\[e]jUde[jY_i]^f]fxem]ks_etrf]_gngo]Pvicqdte__kYe_ijmWeagkai``ugY_baqjYgT_k`u]j]Zaewcr][[{jbgeyoq|ljmZkxlxhah[Ugd_dee\[ejffpafb\_caf]kgojhgepfcYgrgf^i_jdXdXeoYa]j^ma[^S^_ae`ijWetYtehsVadkv]\XZbfb~h_`_g`hpg]faeamedX_x^hpjd]ofdbZplc_[nhiYplWpyk\sbphenceqa^_}hjacefdl^g^Zfxf`kniaj{jZfca^x]j}j^Zmegd\\__^[bYbl\e]i_{`ycYd^i`cxk]c^`jfg^\rg]\vn_fflVklch{_b]XZalkoe]ickc\^htbqdg`\neeimjlVcqgoZcv_uffe_aegZhUYrkb^bd\cxs^ffgaa]km]mfWX}^i`xhon[[`]eZX\iynjrcd_]g^f]lZZ_v_U{e_fm^kwnO_ogZX]^`Talm`Xvv`cgYobs_[^gRakb|[uUY\\iW[r_gfqccmghcrl`\ZZaa\`^zWdoak[ueqebybtk[bVbZ^lbf^Zq_na_te`_di]mZjcac]bbYhU_vzYe]oaPTghXghO^d[geSw`bho[Vdihfmjjfpj~fi`cfr\baVhcceljx^pdj}cfqYkVXe[g`aj_ehbk[dhibwthgRk`eXZXZoen\v^]`kY`oiey_]dWm[fl[ko`_ue]Qi\abXhbhowrelqZ]pb_fkZtbgf`\^kad_egmvnnY\]_jWt_^bv\WW\nhj]bmad_iVQ}^Zdf]P_[\xdWIFn[W[f`XZcTLQZVVOhWbikd^WYdYQmeTkkbq_b\ZZMYsicXdmQ]j^ff`VeetkcYn\VpZPnedW`]cimMZWq_`K\fV\XmrQh\iWdZQm]RK[YZvtcUbVaS_e[wmYfbYPkclk^c[\kig`TTc\_\bUg\Yg{ZcaZ^Rn\gddTvgUX_XdgWZ]``X_\cb|^U_aq^NehYO[ic[n_\ef\b``^jWk_cZ_b^u^SRl^TW`bfWW^_caXX[gb^bWWacif\`[c^WZcjMegg\Pl[UcgQWZsfdb_ah[Zxi\a[f][HTgqPT^^keX`YY[cX\rcMVQkcb_W^XpQNlf]]dY\VPqXX`]_aPLaz^UU_LQYPT\Yl]i[QU\XWUaY^Jf[\amdYKLcga][NUSZVMZ\X^q]\QMf_dWa[FkcTOO^ZVe]JMbYOQjQTWZRJeSe`GYP[WHRRQVR\AehYNdQWTT_GZYqdbNN]\h\XV]kVe^Zchc]UXPK`^i[ggic\cJZ\bohORS[fZdZH[YN_ZTVLYh]MRNN\[YaQQah@gO]\[SVQMRj[\`O]R^FiMQ^UFVgZPSj[K[T]b`_QUZ]\UcWNpeQuR]PVXXOYEX[eHhdhcVU`QibJSJLRbXOd_XV[V[UpdQNTfXVXITTQNTTGI[dlOXZRVN^^XzbXLNaVR_Xf__TrYY\Q]UabjgWOfrffL_\fN^HOZe_\FVX^Xm[i``[\VQY^ebMQOYVUU]WeL\LiI\l\hNdiPVujcngYhsZ[Cv^f\^ocj^e`T_pJS[Xr_qje^emeHpha}fTv_^f\qmjN]cPap_bZm\cdiXcFe]`q_\fdnY`XhsbfX^aVhzdc]SGjXh`cMKihlsofQbVj_]MX^dsIan_`jiaaX__YmQigjeezesddunxoSHOS_QpXl|cb{R]ZiQXgU\]i{Rbf]fisr]eoRba]kORptnbSPKHbhd\lYmeSfYiavhV`mnpey[W^aro\iJZ_qMptS\gtpTiejfXrbuh{QW[xkT\jl_xvjeNtbbp`koaXj^N`tPi_u{j~uMsoteeY^jMk`aex]tYf|yWilN]gfv?lga_S_jPmrWXaYbdnmpoNj}h\a[hQGZvcdjZ]h^fTY_]UR^\egdod`ZecdjXW^]`_]ESkZri^[]W\haMrVbS[ufh`hl[dWjdj]}hT^Kgec[gr`b_lW`kd[]ciji\sje\RZ]C^_[]g^^RKY]bY^qYi^L[TRwcqUYlTYb_bb`N__a[NNW\GOT^hUUbga[tm[bVka^[Y`k`c`nhf`UeWZeTebjUmhKcfP_Tgn^^bTW]`RTXZTQXdfXJZd]jlQi^W_J`jdlfTQa``\Nck_YfY[j\JR[[SbMkf_`a`aX`V_YkVn]mcSSd\UiT[ob_QT_]genQO[Zgsbzl^_TYOb^xg[VSlZQJSTih]]\lgU`Ycf\tg`XeXcwdVg[yccqZV`geXT_Sf]e[gehjXXdh]XRhkPdXv_ZifW[f^]kXOXVTTwb[idWfi\gspilufljfnbs_]V`|gnfnagmcw[Ybdfhb[_[`ha[n^|fc[jgi^ccbt\tb]fs`a_abgxfbZkcefj{i`pvg_hsp^[fcddbb`Wmycd_^_c\h]i[vanbgdXr`_]mff`eeae_\V\_oda]}k_gambiifhh\``]Xlcabafd]ejboW_quhndned^bl|ZR^q_f[_\^kiklcg^g\cgdgwirid\`^^{co[^ar{]`q`hqi_obYZal]`jgWYo^eif\_bffj_sbqqdcb{dRffm]caqc]c_hgt`a]`p`}`xi{jfz`Vb\hfloe]c^\ibhkkliZbjhqmfT\\^n[jd~rh\bfZkj^rjkgbZ^`ijkifVjginifk_^ceYsk}oVFlY[kWtIsJxmd^Vo~ZtDZ.rdv}]UmxVwPyb`]moVkk`o`LhZpnf\fz}~aIPO~agjS[Sdsamrz\oadzuenlimuyumr\jtZN[~dcNbZi]O`a[gghwpPLoYSWcW^hdilEZjFnOiZwj[ddfSQapV{qipMVnpW{`UbUM|TLvvfpezIU_Zsg`\ec^{i`qkb{xUprX_^hidgU\Sc_ik]`cV^We[FXYglkhZpIgQzqYcYr^\NCbgIceiCXfX}p`uU[[cxjjWkij\{njG_vy@\dZneDfKL_^S`dhaw<_Oa`es_We|fdAHLQgsi\~jfqZZ[k^j]LN~}kj[lkafznl[gw\ebsXcQ`Lj~NbbbqdjtaWd\pXgbiQfjbk~elIhldmmLa`gk]aOgYcrtpXk^ceWj`^td^DedSkkXCWb\bPr^SaYeacTLWGl\^\]c]XbC_WUhaFXmV^oW[_o^bg\hVMWZ6cjc[tKtxY_]f[Zcduk]_edikeWobVZZlwcYv_U^NOVxiiW\V]`0hX[\NcdWWi[:`Wdr]nW`RIZbcTPUpX^j]Qa]^HjD_=k``RUfek_eX[gtboQomeelX^_jdalXM`NkbV[Ti]U[gwUV]J[Qabc\xZJtd^PowaU^i`ZHVXcFXehlKdhpWqbf^bKPfcU^GbCZeV^crkZ[SLO_Z^PNWX^}c]cWazqTj]H]_g]=|jZdZgd>XZRn]j[\]HQNcWnY[oi[NcdajqSpb`lux{hnlkd]cyoge^h_geje^ddi]jjekZvafeph}ljehntud]ea]bqekgYhnnc`kqec^gaia^igr[sbje_lf_kr`nwUaYthafi^bOgeoocjaY`kdgmdbXgjharaadXg_fbf`Zqz_kgrevafe`fni_cfc`ufUo\h`lcm\^beeggb_dscp^cknk~gzmhg`]lhilbio^dd``qc`}Zsaoi\[q`f\ffbrgicgdicddhcdbd[jg\_hc`gizYl{`fefkfpjtb]h_fbtn^jXn{ahZ\ghYY_hXqfanblhr]i\u`m[ch`^bod}`bjkWqmhba]zbbkc^ek`qe]k`dtffkmzfZhdjegkrgau{cperlccgfhnuklecpmmmkceinvrxixlycdicraji`i\~rcnffudkhfj_kshoZmc^uq^^wlojqk~^gaqWjnac}m^_jfdp\mjpmb^pqo}pielpj`qouhwbrgilf}gYjgfkxki[fuii]lWojmphvnpvekhm{idbbrbhUXraaog__fgggbdpfo^acqs]ymg_izceobbma_nh_gohzt^doiqmq^muhkc{kfY`dxiWdhfc]h]gngheYnsvrgZeaekaYdtkVhftb\jrbik\^e`libyp{ficx_qlb\jSglhbb[c^obllhd[\zkbZeqkqdak^jgoc\Wjqc]oyq\nnrljkk|daj`fqldjcyh^fnmiypea]axkwci\khharvqzcqhgdi^be]\\d_^i\`tVuuXVeoZgm^c]^ke[jh[fafq_cnnli]ph]b\XVYb]gYje\h^l]eht[jWh`_t^e_hbpYgYcd]rhlyvia|b[bZ]ic_`ZglfrZ]YXmjSdNcsmcfUu_helnaZZk]Yoeqgepsn[]`de\np_[h]le^qoZl\mhq]bYk_bfbxaqYj~^lmjig`ofbrqVjaff]^ifkedolslg]^caVsb_beladqbp`[kkZ]YgSVbZjjeaao]gyXrohjrcokaiba_ehh][`Ud~w_`cewqpb\YfgU`S`xi|gcfa``k\nZjb`f_kbfztj~giuXetWS[ie]^jjf]i^didanggsjb^L_kc^]kclo^agcj^Nnaolg_e\lljWp[{jb[^j]P\\h^TeVeU_bVTad^`dwdf[_R\ejThc^dbYYnacQPXcahwj\v\cfc_xlsh]WLfgnkXqiYWk\iZYa[dWq``_T\j]`cVz``qd\iQiflX_I\L`c]TdoZhVh\e`YYh{_YosQb]YacbenWTbWmhf^QSgQsWOp\Zby\aiW_cymWLeqRdX[bZo\]aZVjeeBsS^R[edWe[wh_Ugwg^cY\ZRReO^`bZ_[vhhV_WWT\SrZ\`oZ\ZaZeZnohUYjja}z[[XRW\aRYRbTZbnj\Pqh]bZamX_V[_dk\Zn`\\cfnehWs^op^]hY^VP]pW]MS^Td\haic_`W[jT^a_hcWkeW_]\Epe\\`Tw^Sev`^geg[ZVrgU^f`WY`cc]Tq[_Y`b_^]jbcbhfmac[mfXeQo\Rgd_g`^lk]gii`eWaZldUer]f`SYfP`sivraaakejfkh\^^``R]WilWbWjcW^l[ee`v^`cgUW\XddYi]fZm^_^dxWbcVYnx_[\YtSaQ`eWb`ajbnZ`dZ_bfOgZjYif\pZ^\gU^dY_rjj]_b]XiX]Y^bW_O[kyo^[jcmijU\ZSkgSeY]iiZU_a_`negz\cSSl_XWT]{SZ`m]]fu`Ye`ccr`]`lTb]^cj]ccd`geWg[QmT]NTb]]Vd_^_[[U]pf^ceg^d[ZYldhYbb\\blamf]kt[brVcmdmKf_o\]pgmc`ahZ^ojPacgccc]Y`Yh[jlWgu[_ceTfuTl_bX`ja]ag^]Zkacc`eXl^^ofRdjyariXlYebgedddjdtaedmic`h_MYc\f_[[[col^^qa_a^`dbredlj]klc`_Vpggae^f_cYdmeWdL_]dl]ah_narekak\ndbqzfemhsp|a]_^aa_T]da`Df_caciiQmVdhU^d]bOYY]Wjpne[__`j`sm]lna_e`bzXtaf]nqgh`fif`k`cj{U^hmgc^laSZxSp`]]gkdhlpci]ea_afZph[oeY`djdubc_jecz`b\fYvte\gsqh]Yb[wTU]bxkhh`\oaX_dap^ox_[[tc]`g[l]hoyqbgofea\ikVd]dW`Wq^]_yaIe\yiWaYhae[eYybgWihYepkpdd[bdU]bYWO\Zf[rf_X[[icfZaa[`W\e\nbjWowa^Ro`adddfl]lb[ppha`kbe^QlZ`eZPYYYfnTi^\\o[Vg_\RXT_[\`dWa`U\?hSYhM[Q\WZl`U^noO[rRh_aY]ZbNZdWnWiTf[]Q\`oYXtWWr_\\W\Y\XglYeTX[i^mdofebfccgJSS[]Wji]WYgR[WbWZWU`_qVcai`ba\gdhXXheU^ZWc_Z\fmcgVYQ`pqUgbT^]ZZNSiXgSW_ibnMQcZs^SZ`_k^da_VY^dcUr^eYYY]]~^`[bXi]hsSXXi^`eZ^[\ke_^fbYMZ`o`VXWMlegO]^]\f_XVS[ba[KieN]Vp^^FU`O\gcTR\odX_Z`j`Ta]w`]\VW[b_[b_X[d^a]_UQi``Wf`kak\WZfUXi[]pX_[YabfXUoeX^kZcV]]\Xeb[^fRZdWWUVm]^VcZY`qa`p[bf_e_h_g[aehe`WlVg]^fmWc[\hc[_Qhh^gs^Y^deYnf^c_eXl`vR^iaQWide_q^kigf``]`Rcfai`\mdmV]_YcUlU`Sb_giiVd^_eb}[d_fmeb[z^Zf\rhZf\]fgvVZ_mjk[eciTUU`a^afdae\U^\^^k`fd]_\bbj`b`em^Qa\fdZ_ajb_[`hmZf^\__Zbd_Zha^Xg\odilaajxh_bYdneYlo]gjn^efZT}h`VpgZhh`ZTavV^R^n^neVbp\VYmYjhc\ac`eYYibcWm[lWq_f]Zf[ia\fWahWSc[badhg`b`aWi^`ghgZLa]\kRc_Z`\fc^ZnhkVmeR_e[rcVRioV_mbdf^dm\a\X[nYgqpX]cZoftnZa]v\kXZd]Xb[\dTa^fg^_ekgiY_xfUq]\\_ibjkqYigaT_hTZb_dsdd\b\_Yr_Xxefj]|fX^e_]crkezkYha[]Xnc\_Zi}UaNgSch_`[fp]YYlilhca_cc`oeb\ZWfTa]^`\be\]c~lhq\\^Xprc_uj`c]caYcahdne[n\hfagZ`cX`cj_]d\kf^g_\`_e_dde`lh]b_iff`Wabeg_fbPgbxjXj^uddi[_Z^_tf]O_x_cfbmuYlba^em^ap_\f[`Shmb_p_ui]b^bozs``ecc___^P\[Ycckdni`gdYz_~`ZU`gck_k\_hk^^iV^V[areiovaZemceZgWbdfeWWdc^_bwW^XZh^beefhm[fccf^aWficcZdkkX]\idi{S^d\dYa]h`^bsZ[ebdbfZ^`\\``adYZ\pWah^b{UeZ_\_^U[\_e\`UacxWYZcY`bY[[ce^`YbfY_Z]dUacZbZ]_\R]V[VX]]T^``Xdh`cd]]bZ`\cWZgY]gbZcg[aXX]Xk~yYa_Tkj\haq^`]e]WTUgb`ba]icag_`en^Z]d\c]bYUho__YihyZZfdZ^ana[l_lZdY|vTb`Yelk^bSc\^VdvWZ]`]]WSliTmcq\Y_~XYj\cYr]]W]R\_`e\f_[]Zj`nZYe^^rdmecZ`XhZgY~_V`_\W[vc^ar\dgcj`_a`dfa`keYXV]aic[k[^^`Z|U^[dhsgY^adi[`V_`b__cf`e~Y[]Zepf}Yko_Z\]i\gaW]dae_WUXi`_TbsiRcdeX[]lbbVeZ^[\aS^[decTbXfsVnXjaq]fYYfTdbjjW[_fbYMWdj`XUWbkhY}go\ZYlWa\_nSVgPYR^Xen_[Xg`UXg]gbQY^[[[`ah^X`kaT_dYj\Ye[~`mbYVeC\UVT_Xag^fX^G]cd_]T\eisdYh]]^_XhS\Rj[[cbZZ_S^bNnghbxVdbZ_dU_Zc]kUXaT\dZfa`avd_L_kcllYW`{F`hfti[o_iZ\c^xbbfRha^ZTjYZ\sjVbck`^daul]Y^hV^c]gcfmWVhV_WqVQc_QfVhTiXkhcp]a_leektbatThdbY`^McVpgVhTY\en[laceXsfcrj\xXiuXT^a]^`_X[c\y[Qb_bdH`mUQUb`V\dc`bocWcXj[gRb]^[GVZfeYnPnRjSXed_`ZWX_Vh^XrWbuc[XYTWW[YiZ_`_`fU[qVfYV[ObfP^T\fY_y[a]YO^YjabbWcbYV]Rllj]X][a]TUeWyqiOqQ]`SN^hWVQpdXX_^Wv[p]YTgl|ilb^]Vek\W^_oxnUb_Q]W`jp[g[V]_jjU[c]_WXc]`j_[SUQZP_bZ\TQcWL`[]\]dUZV^tZL^NbbbzW\W]QYLH^`YccdfQ\gcY[UP[]OnXQUb[^acg]a[TXVi_^gTQWGp[f]\_T_OV_c\[IZZYXgcQN_dMYe^j]Z[f\Zhc_TPNR\adcg]TShY__\`RVrn]fTiv`Ua^cW[MXQloVg\c[jXZjiuT^ZfNKc_YVsl^]TW[cjYXmcX\h[X\abci^^jeekfpbosgb`Yhi^Yb}[ni_c`kdgddp^sjfo]najgbpp[ia|_^`Yedl]octkko_Zmge\y_bxr]bivgexe`eeTi\ZuqiqbZf[ed]b\mabXqZhh]b~ayfdjdkeby`ljwcinyZs`gi\bnZVeamisaebia_fkep^Y`akf[tt_Zr[]whkri\_a`]`]jhc_fscah^ehroe^]fe`]cfln[Wdajq`epkhbZqlvfeciaienZin_clfq|l\u{k\dlp[W_fYcfde`cWobVr_fcqckYf`Zi_g\]b\[f]gqk]gj[mdc]pbdpx\bppVgrgahmw\jgfsvlllvdj{cslemhfehpfUicfgvkdn[cije^gdikbdfwjcYdq[bjcognl^]_adebkgd__OXcXZnlg`e_coda_ieb_\ba[Xd[X`a`adh]\e_[ThX^n`Sq`Y[_ile`n{bcchekb`Zscf]bZgVfNbYd]i_c]k_clbe`l\aXpZatf__O]fb[\_iWnaa[^XZj[m\^_ke`f\`Xd[c`YiScfc_c[`vZgUu{Z[hZa]``fi]]YaiVaj^`ge^_upc_}SnRc`\uWgl`^zagWtbQcb__Yfdgc^[fj]]W^YVZecar\YgRVfdVlcg^oj][^U^ia^yg[b_R]nZdk^ga]ah_V[\i_YhYjOk_cSmea]e\^cbb_^a_ah^o]vgYj\VafQa\^\ge^aaq`_mrXp\\ig_Qba]w\a`\[rb[WZda`Z]Zg`X^j`WgkUTkc_qlff]Vlpkajsch|b^SXl]nc_^dkdccXd_daX[\bbTViT_^g`V[`ajfl_`O\ljl_`iUW\[SeUXk[ng]pXWa^SkXb`]YYWexbecd]i[zbYYgheacXaicmQX\OUV[VdfUjPcUaTW]V_ikZ\`TYXj`VURcXRe^TeY]Vn]aaf`fTZSYYWZ~dj_U\bg`yYe`]Xub]eYa]_]\f\Uf`ghaZL^adWWleZVVY^W]fSWhTPd\fYZjP_QZf\\_ReSkQ`Z^`SWbaetVThqcmhkM{_X\Y`cdrdjhcXG]rSaVrYdahbv][Xjic\ZeK[WTfe_j^U]iTht\mcdTnaNbTZR_Zb_hcgebffbZnZsnbdXfopS\xmf]emViV`kYe\c__a_u^ac[bll[`ibgi\\xj`afdg`Zgid[kee[_`hccdffw^njdd`yf_ig`Y`Z^aa]d^che^bqehaiY`chcX`_`YaZhbbZqf\}f_fecfheddnfaae]cg\e_^gnhd`_`kw`hdgqwj^^[d__kbdcc_en{jZ\mcae`icagZg]aaXcd]clffdy_Z^j_de]ced\e`_ca]a^]cbk`ayij]deecawfk]eh\mi]d`i[fbj[iz_`fh]_h]bagbVfaehqYfYja]cebcec`a]ladmgi`e`diaj`e^bgggez^f]Xf[h^[Ydmhaa]l_hjczl\^eadZbk]`ebcaW^bia[ak]bV^hc]e_pr`afca`e\adkhgd\db]bca\abubg]diYYZXs`qfRXeiad[dfg|`g^va`X\idlZZqhegxdjh\Y[bis`UpxZaj[bcXUd^]^ebaak`bjXp_\hkSbvbU^hVbhea[te^]`bc[`deV[`YkZoadobmaaUU]hjafg__fddap`oein{b^\ice^_`gd`]bef[Wm`d]wkcWd_sqY{\fcbd]aj^XVga^ekcpcd`Zca]\fdgPcUbdg^``_jy_ehnyV_c``YX_]j^jhYaedgaWmokfvbVek^\cgk_\^Xd]m\b]][`sd\bhtoc^`_j\jp_rWdTW\e]X[cjeebs]d[WXccZ]b|\_XVij^z`ftRlZa^ZwWUsgcWfgk|c_[}oahibSyfb`gqyi\ceaub\eW[kUYb_b_kpdZ`mQ^o_Yb_ocq\^[c_n]`ZUacV__\m^]jpuTag~]Yhhg]YYafhbeZ\Z_Wc^ofc_]`Yy]cbg]sSefcVbcljch]Ydbb`gif`bZ[rjgji_WiniuY[[f^mZfdW`aj`^\}iwc`Y][yg[X[X\b[bds^VS_g]s_S[UYpY`Z]a`yZmdg\ohhu^j^dwVhVk\^aV]]aj[baeWeca\zXT^_u`eZ`[_`[]\U]gnbUan]hgaa[c_ffbi^[wzmkbbcpfrdhcYaXd^[mpWaio^eZgaf]iva^_U^U_VXjo^Y\eVe^cgiiceZzb_kii__\_k^lh[^xR[\DU\[m[T]_SYahecfcZYhi[YcZd`af]_V^`aeafgckid]Z`Y``g]Zdfk^jha]a_afiNajeZmaZ^hi`Wd[YX]Z_^j]fRkkQcd]Z`R{UNoeaybcYaT]]eZ]def`fbcoLZ^yTlc`kck_dRbkebZf_kXa^^[`fsZ^n]Y_]XO_oa^Xv]_^ahZ_d\i\kljUK[djtb`ZaRijS__fb`Xa\``ZagUlhW[[]fY]bgT[hajZoebY\`_P_bQo_yS^z\YdQhXgZ^S\YgYTfh_jkb^akjb[gf`ZoeWa]Q[oiWaehYU\`o]l]ccgRj]li[bk]are^hf`_YYUtdQrazadm`nunZRPaoVVY^Va^^lbaRa^az]_b\Y[ijURY[Xbfeio_decVhc[m^\bZUVaTZ\jQg^lnOfkmbwqM[VZhlfZ_S\WS^cWUZZWU[bb\Nb`^SRMW^\YFZ[[Va`T\g[fSOUddVXUi_^TJ^`ZTVYThXHhXf^ecNR]Zf{]VfWV^[UeTgaFd`Z_WSWYTWCic]XediXZbFXVaaatOV`^_]jn\pY\S^YTeaS_]UpUcYeaTbTMbV[hQg^S[bZaSQ^WMi][QR\X^qYX[^ac_kQdmbWWU9]U^ZfXfe\g[`ebE`Z\PV^]jZ[y]mmOaea]SH[]\X[aR]QQYYaR]D[[R]ZjbaPY^S[\UNQ|adWT\aZQc]ngMhR`SOe[p^h^K`WTbU`RV`V_]TiWWb]Z^_]UT`VKV[U]kZMRdi\ZWEgTXcY@Sh\]^fT[_]mZOIxORcj][c`_mgTcc]eZaUXdVyTOt]b`^_VVjrVpYkW[gfepj]bvceWwlj[cQYicwZvETtHh`aUX\]U}tYf^hMkd`JWnydtZpbQKP\FmcWr}mWlVnrczqsmcdRcHcG_PGVpZ[_jsOahh_kh@clkredm[\Mtt^xs__ds^fvtfns_w^soZWZZZegM[Xef`6QRzcuq{R^ecgiRW_hlsnqaWyhpm?IYVrtY\qbkpPBqfscWtwoEndswf`_imgXqgk{rVqQ|kkBuoQr`aZgOWicqRcOsfS\scYjsaa\ZQb\Tky`|gW\ySimWLdwZohVMegV_OZalcsfeQkhb}R^b\Tk\cUUTZX^asvftNfdk^cR^LfUqaZ^[dgbswa|P\PWUZafk]rSmtxOqDqtOWgWcIt_aS]Pgjeb`lb\Y`mmbe[\aaiphchgcr\h\kV`fjjenofn`\}Wdaml\uVnUfmjk]e^^Zmkmojfrdajba`l]m\fjYoXpdbofXdx`ekb\^oqlnkfc[pcqipbVZfrVddlhjme`U]hrkleYr_nhh\eidqfbjZNd_a^ij_\hqqficci`hesdr[``\hc`_afcjh_ffl^`^tsfhhcndladbw`aqhogjmYh^fbile{emb\{Xa_Zor|bj\baq\]ox``rk`]jf]^c_[daccbWTjoakodr`h_bgftnpha`a``\k`[cZfp`rmjeli_{hbdqbd{wVj[~gd]Zbn_`[cezg_wY\ebZ]ccY^hlx_hX_[\bYcgTf]Kcn`afe_[amh[bxo`vVclzpn`fPGX__Z[U`WbYi^XZU^Y_ciZUbZ_NoeleY_UuZc\SNZ`Z`RhhhRjOn[{UV[_lc[kYVSUgVkOqRVX^baYMd]dUwcU]n^gTiXVGYcS]q\ZbZn\ZcZiiYV_QkLo_lbQmdZkliPYNiMf[YTRehdOYLaa^]]TdZ[\Xdc[Zlh^[[qlTSS^f\ZYbbiiWQebcc`n_[^g^[][^pc_p[`ac\Q\aUgZqY_Vk[adWVtaX[SdVaRd^Xnqa\`bjZN\\Xbm_uNPbT]hUmcssmf]YSZ]kcWS`cTW\cYdRac\Yq_fkckdZRW_Xb`foc`jmr^NTbYYXmTdW_W`c_yXbg`T`]hOM[Wn^YV_YWgetkpWUcg`S^[kPcX_h^ShQn^UN]o_U`oUeX^bbWZWc`]g__dV_UY\`T]h`^PZab]d\VjXiVNj_^b]^[Zc`_oYhL]QiTY]XVXj[c[T_XTbb^d\TJ\\^UYoVcwbQOW_UR``\`b^ZaZ[`acdX\c\[ZvfV\RTf^j\bf[]`UOOVWU]^_g]XbKob|kYfu}Vw[Uc]b`VY{\a]TUgY\OeU^bhUkah\b\doYZlVkVXRUY]gZ]bKa^eZf\bjMYKJZURb\fdTV^WTegUN^_daggWVZjf^cePYgV[elWTR`SkrR_cWbRc_`]faoTlRUdhtYdoh_[[]wV^b_Xc[[ejY`Ka[YnVOV[Vhe]\WXVfyb^qhVXlXb_hL_eNaXOpVTQVUY[a_iqhihTX^lmb][kQNa^QZTWTeVJgd`k]WZY^ne\WhjZ`Xj[dn\bXc[[dajj`Od]fh^bRh]^kndcg[pidS]qU_^Ypkv[_Ykg[chd[bRlcb[jUpW^hca`^gaiiwaXh^|mtT\[dch]ijfXej]l[ghWyl_hh^qaihbQnZnga^dgl^ahUcdcal^Zf`j^`\cgom]absoUbcZdakge\_\fXa]Zs^gd^miWgjkdob\_of[l\aXca[][^WjXgOkZ`ZWan`]Z_]SdYVZ]bPYZPTfc^hf`\Va`ZnWiMY]`Vmd`fbXcQPZY[ln]a]Vif\]T_]VdnoduZ_Z[hcgg[Val`xiobj]TffZdcY`scVgyYw\[Y`XacVcXRnde\U_`iej_R]`_ekgc_n\\c[|`WUn^hVvbfm`dfTZ`cZka`c[b\WU[bakcVRbTif`\Xab_Q__oWcTVb]_RR_PNTcr^joeNjja[`wgYZT[^_WZgcL^YKsSdmkXe^hKbP[zkUcU[Z]Zfe`XYcg`afeaW`^fVkY]VSaea`X]`dUsZTcNUkZ_eWrb^frnSO_vZebZji_rV[K[[kV^r^eaieafScdPV_U\mkq__X\RWUTX]UnYXlqgaVeYi\WTgW^dlqVabNYcg`laNSi\laoks[joeY\kj_YgPdYOjZqkkoZbM\a\]ej^h^[jvYjad\jbe^VgWZXqtXi_W`^nv\Xmca_cXPnT_bYgh[amYO\NPamUe\lnWaPLV`Y_lUu^qj^e`WX`TTYk_kZeidl]b__kYfj^b^a^_ZXXnZ^a\]Z[\`em^]UgZhhZYbrlZaluYie^m[bekdS]qd_mcpbZcegonwZs{ba``^^Z^te\pd]o__^]ni_w`nsxl\jia]Y]i\]Whec_cehjoddjkeddcka[ydac``c[d]gUbnlmYd`wY^ahcWz_ft]g[emq_`h``^beZck^nldOhn]W[mhibn`hshbXd]iaegdbmcYzfeic``^g]id``bk_kd^gmg`\b\Vccbkjg^bebb[c`}Yj\lef`\d_bbkitkW]cZw\`e\kjdkY_a\_g]^^Yicic\`^[aofVnf\^l]\^h^flcaj`gagni[ofia`ehj\\Xnhhc\cb`e]mb`Wlf]sVchqgos`j\X_loiazcjal``lkb_mbdorjia`Zbh\aahhjbed^kx\]|fdqcdde_X^^Zk^aY`WXZZb]`W_c`l^PZge\VRgTdfhOV`fRmb`UjUfZ]Y^m[ZelzVJaW^R^VlvRhjZZWYZf[qjVV`]^_d[\aPn^PZ\S[dqa]`gYZhxVie]PhlTcIYoY[YV`Y^bVb^e\Q_^j_d_`i]jO_W^SjsYbY\NM[^WgRfbhj[gUicZ_nanU^j]i^TYTBTY[dqYbk^\]cZc_VXY]SrTreyb[YdZg[^`YVf[^uVcYfUfm\dWPQmvsgjY[pptK^decUYaphU__`W_jbjdhrU\Rhb_aYK]YLl`VV[]]nUQhb`d`\^YdOQ^Xd_S_^\SZn^_h]hce]\b__dP[bbU\`_^Z\Yb]gX]f]oPdPjaSTiVgnSV]fba]Ui]bpZmVihR]MgV_^\dV]}ZWL`c_jXTgQWXig]_fXhYkaTTXcqk__XSb\Z_[V}X][RSMc`ef`k]WejXihX[UVbbf[]TNW]bfWYTW\g`Z^phUV`WXX`VhO`VagU\NdV_P]a\Sjj_]hU\gbaW`YTb][ea__UN[NhPXMWRUef]WZhf]WkWUVnNbl]`YT`]XnfXaYPW^[[`]Y\gTVU_eSYV_abZrW\RtPXeP`T]UmWYSZTh`Van^]dQX^h^]ZSVY`S`\cVX^bYcaSa^k[QS^ehWZ\P]TTafh`dcf]iaKd\diZi[[f[WaSJXW__Og_Wehh^gXXWYcebYUYj\XYMYiXX]_a^TXmgcaZd[]oUmW_`YbYcYZaYS^iam`MYZdRlha^dZVWd\d]YRM]a\OV]aMjidjk[Q\cZ_]mWpdxP]ciYlsi\WlZUhmZm[Z]QlgYVbdlMI`b^tdaxploau\VoK\`cVjpc\a]Y\_iSXzbYjc^xdYZM[cd^aX`sNm\izgaQMWb\dJZYVb^Qd_ms]SQeeU[RVn\qu_bibu]c_rlsS_eka\_`l\i`Z`Nj_lniYTYcgn|[Xo``o]|Xg[ukSeafc[[jkPOZ^gYoTfJjZdcmXmf\d]Vc]Q`jmNZhQ\d_j`af]paJ|e^`hU]f\cfbWvd]ag^uioR]bMbZeZ\bmdOhmcLf}a]mUZV\UV`gbZhWrgk]iikamR_`fZ\^_gHrXipnT^\_qVhlwjkXRjbnobfjePf]Xelnkc]q^W\\gslsZk\Na|de`T^hXdqLe[g\`pWfVbdh_YevT[p^hfbeg[[mgcx^ib_HeXf]dU^gfW^]d[_]`kgQhjp^WhYhd]dabefVXWrhR_bcXcS`gfXJcUUiY^SwdaWd[nfq][`lj]V`eSa]XvZ`S^aYUeb]VPgjhPdaVd_\mc_`RkgLYb]jpbYmYZcca`_dc]}X\e^]mtkgZdakhm\effa`h^Ya\TnTakdXP~eUSPZ_gjReViZ`]ZpdXd]l_pb^cbgZoan`i`jdflZb_Y^`_[XZacU][```g[z]dMivVTjZ[^f[lWSaZZagUXXWUje^]YXh{b_y\YeneRffa^\k[X{Qdj`iOQpU_hYbVmcazQR\g`Mfd_frb`pc\fReua_fY`\]Zc][r`\cmZcZaipYSUtwdfSYafRgibQZtbqkPaaeOP^OjaZToZTet`^LQZ]]Qb\OQa^gZP]O[dN^ca`XYpbTVSH\]qiVaZXVU`]v`kMTah^fXdIp\le^nSlb_]Sc[Ta]PXor[VW``\ZVcQZW\\UVY]]am[XV^cXXk_Ma^TkYXjTWJ[WT\V}ObZWViWd\aWUWeXoZeifbbS^gQn\N[ZZlSW`qc_fhH`c]_fU[cUgi^_^hJOkTQVPn`bOKP\ZglhdZX]b[Wch\^__\aSiGWbf]UTceXcXS`URnR^fVm[q]\TSUJTkZ_SjUVicca^ZR_k[bV[k[Vk]nTRQY^`dUntpc`_a[^UVUXU\TVkTea\UNWbja\[[e\f^iU^UfU]Y\Qqn\RZ^Xp]eZXcRVgYWZycmk[Zi_rc[aiefelvpe__Zbbgdb[dX^VbMb]jithc\STkhooxi][weSpmpWyuln`sda`hfYhslVRgrWggahYkf]idY|`j^nshiv_iUs`aZwQe_e_egaVthd_OWliYQpv]]fwXePc]ccoa\ilciNdmiu^c{ZeYeblw]WkTih_Zjc`fuzj\cceXXypcX_j\j{Z]jUN^k^f[qnUbdcjxThbkgdbt]b[sdbLurU[ycbUQglSvUdhboRb^^bRlqlTzJsfj]ar[pl__ic``\a\]\k`fNn_p`\cz^a^zbfqpprili]\WUVYZh\^^^WUjfa_eU]Pkadrkbq^uaZaoYecvff_fbfinRdfd\\[iW^iOVgkbmee\dhnjggP`sXjpZaf]Zs[ioUalom\fp^RbXhVdceY^YjeRPfTxjl^a`f_YjpbajWWkiek_hnR_j`{j`jiagV[mT]af\\jaZZ_UeZPZt\bebWb`lPQ`aPd`[b\oh]bVZNeRib^b`]jqT]l]dW\g^]jge]^caak^nmpRa}ac_`eVp[s_vSjaXWjkYbO\X[njqXWac]^Zr``[XY`U\eel\_V[az[ci`e\ac]\Xda\]]aRi_YXgiWT]_gzQ`WWTjeoaocWci^hiWv\gq]VlUhgjdiqXSgkT[^l[YP[fSQZZ[SYpb^ZagY^_f[_fYYW_fV]fU]baddfhl_]\`Y]jY{go_f]On^jvQ^RrjW[k`iTakXe`iev{ma\R]lY\cgPZXdY[jgg]Md]bbWycT_eoY]GQgi`[UZc_jcV^fv_k]atbi_]jTY[cfVtOaKZR\OoTS[RWh^O`jh^hun_Tbhtkh]gYdcjiUwqYYayZ``ZY\_SU_Z\aYgz_Y\d_dWir][UcfYZdkY\`KVQW]sYiJ_^YWi_[T]dYff\[\l_NrjZ]dch\_af`rhef_qgqZbz^_bqNk`ukmcYXTaZqZXz[P`fcX^fYo\h_jaS^rnKffQ{[]O`padKaiy]j]l]`l\[X[cOcfZ]RmZVUdsXOXYab\TfmOTbaJW_VV]lZ]Ya]\Y]Sld[Z`bY[phUPgZ]UN^^`lRjQTijRbaSW\]pXVp[So`edZbcuinN\KWsXNmZxbi_Z]c}ahdp\\[`W\cTShebYVcWhgp[r_mYSkba^UT{hVbTXefrfUPZ^WgZOZ\[[XW^YTLbVQWQL^_cmiF_Ff`][Wm^[JbjbRMRX[iiaJvbYR_]Vp^^WlTZPcf_^c`cgo^mXi]mpmlTUM^^RZ@aPGYZ\Yg^qe_]LY`a`T`Y[eT^IcRQRiYeXWYgp`Yej^VoQ\^UhLU]_\a`Ug]cGZOUkfdaU^`_gTG_XhrOiaY`gZsWUN_SbZWdhLZZ[_VYKf^Yg`^SkT`_X`VRG[aUVW_M@[ec]KVX[]SvXbWd^Xaab[VQZc]YkYSPR`jcXTe_[[yPT]gQVfUIf]fdadR_LLhTPX\XadEcPiUVgOM`V^QjWXid^\]oq_DWWLMP_U\f]ei`d|icV__WhSLeW\CwZd_fWUnUcaVYZKWeef`Gjnijie_igdbVRZo_w\^eVXiUkd\_aZdxhc`Zecccdc]_PYVbhekmn[aZkfiQcgUbWig^^jh]_XYidZ^gqdWVRVa]xaNsems_RmKYnY_YzidY`acliX\]xhvedac_RkSOgao]_Vn|YhPV\Vd\[]]\hUZf]Xv`mf_XZ[\hebc]il\`aXbkcW^UncZQnRSchgo`^]VgX]\oWkRl_d^cjU^rbOfUlkec\Z^jTej_YWTp_gmXhfXmd^c^[[kltT]eu^Jec^]aknh]_j\rY_c`[^dajfsfjfpnTYYT`Y__rVPV]]jYn\fcRgceqZVzqclX]^jfVge]Ue\cmf[sglR\ShUjc_[\j`\ykgouX\Tysea^ckaTa\rV]^RdYYSgtSWKajcNn`gnUYkew]gUZ[kSduhaS[XUBYh^Oa_TX^[pKXb]l[g_cRa_oaW`cOdgv}^\USWUefiRTem]_o|abW\WhbQ\QNhP[]]oYXwTXqZY]^cpbqWge]SgU^qnWfY^rc_Vf\UYji^[Xc_hiZ]sabSdb`\\w^e[ZR_P]XWniYHodRXaNX]R__br_ZVWfo]d]b_b_lfKXUKR^a}Y_VT^^^`vb^XhZPcoYWinMR_KhTMR[USeTTklP[fYiNOTOX\og\bo]ja_J_WVUQgVeV\TTThd[mNTguZhdR^Xe`V`WxbNbQli^VvU^ekZWa_[TVWKTfQubXTSQ_^Vcid`S[m|QRX]mdqZzReFZW|\uWd_S]ZbWXbQsFhogXaWn]]DqHShgWM\OnasjOpcNuUe\d\VXQRbBUdmsMm[k]cI]VgcuceiWaW]Ok\adkd`Yf[wEs_O_ikXlUv^YijQSV_qqShZgHOkqXQ\i_WtireoxPVcZWWJpuXYSntcj\`aea`q]_MuZ`Yi~mKevixZZRWOYTalDdb]ZxPgf[~h\f^gt\ajPY[`ZpvZIZ[UrTbI`U^d_k[XgapJfWZbliqP\egUbuemvr^\l^\sjsrarjcaI_RmZVYO^UU]aN[clmQ]c`fUQTecLUOPkb_TPe^gT_ibS]b{PmOagkcT`l\mn[y;hac]`]Sc^]mix]tZTj]?_SH__`d]\DhhZnSIKWru]e_^kehdlhIk^U^ZqMlSLakQdWTKbdXv`TQks{poQjV`VWWSUTkOTYfikleOhbZ`h\XV^[H_Ox[d^fYcQVQ\XfSKfkTeWZ\rhZSZ\oJ_QSON]X[Z`PEaKl\aRYjQ\eM^``UZWcpMacRVTRUYP[gVNgZZW_KcUVdd_hMg^gZt\mSYU\VdTTZThQM`VcY]enZpXU[ccSP_HOj\c`ba|`MZj^RkZcQbc]jTez[aajgXMUaTX\TSeaYbL[k]wT_NcbY`LRjcMPbVea^QLUiQkk^_mZdVkdb\RLN]oGlgP`XS]`bei[_enT^_dZ`rVbV_~M[^WaVZp\UrVRQRrT[^a^\aXUe^}TTzNQXbVdX\WKeMY`X`aqWTcbf``iP\_`_SQQSuddeUa`]J\O_hbOM]\IHJYaX]ddTLsU[fOYhiYJ`Xoos^TL^b^]GnbkUjWzZ_Vh_cWmTQX\^OkfchobZbZi]z_b`HfRjhISm^_ZT}YckQcdsMr`WdvRee`zZX_Mnc_dbNwi[dd^NHSfXGfUXh\_\ZcbO`Zoe[dqZXYnl~YgQSNXchfmXaNWKLU`TX]a_fZd]WgW\o?ViLVPlfYjb\[\azX`_[R[rUfXfZV]aoe[PpX^_U{Y^Tm\wabRUfRaajmud_\e`W[=ObNYQfp\RmS`YY]OTxo\VtUkS`_ewKV^[hjYSG\W]QYoW`cIkUjbZcQVYgNZmlZZe]bZQ^R`OrkqejXR^rgeRS^u\kZOVQu\lZfjU^h`]^QUh]XHdhivypUi]kQj]OQahKcxRZc_^dYY_qpmjXdaVXpbmWRkTR`ojkTc`Y]Xcbu_Qnn^QUeVqghae`MJgsgU[dVd_aOjjZSp[fZ`h`em[T\eY_Zac\abr^`q[\^NT][YX`sq^]LY_Xf]~rfsk]rXSYUTS^U\Ucew]VoTcdVfUZ`beqS}_dWctbaxYXjtlRKX[[bda^^lP`hihk]dfZ}]QPkYam_XTh`Zg\bxcg]Sc[WXU[j__^_Y\hosllX`R\WgYY`rc_gW[\Y`h^TqTibkyabYb[tgV[ah_{[[n`[D[dOgjX]\gHZlaU\ljkjmSct_hpw[WQHXW]XXtKh`YbZ|gsUbioc`_IbY_]XkqYvPgF`_^ZXohj^[aZj\]nfhcT[^]d]Tae^WT\^ufe[SoeSPhX[YfSIXYWT\YuXlU_bnkVi`\bSjS_hs^ekOrnWTuceg[i[eX\lfOfNc`gc_\`^[TKWhSYp[[P\_WeInUsYamd[XPSd[fcP_UFcKg^g{bh^oOYb[sSCv{K^]jU`ZYMSKWV[PtWbb]YK^UOW_\X[^Y[NOebYWTE^RSRWr]^Jj_HdO\NgZ^U_ZUSUdYaU_lk}bV^]KZi_a]SOiig]]b\Ma]_dZl^lVR]KcYZ[zO`|TJ`hYwULYKV`bP`O^_WUMaOMmZ[GHdHOe^HUNiKLSJZZ]K^\XmIgTf[jS\]mqi\`b_TIEK[bOLfZUZd^iNggVUTvaLFiKc\jb[gen]bPUfDQjjQqb{XfB]gL^blpjj_uH`m`UKd]VW\ablVgNZcTU`jFVL\bdYnPU]W\]]\Z]`^WiS^G]hMSMN`dMSSdWcbsT`JWbid\ZcOZRT[VWnbJ\VleIVgZeWFWO[PYa\[]U`bFZed]Sf\]RX\_dqhn|YdjqXnSWuHPeZtZ_hccfYkVX^cudckdRnWgMgggNfQ[RLdMXTXWXO]gWej\]_fralKMTT[WRHY_^YZih[PefVrn]]TaXb[[pk^o_cRnLdGf\]_Pbgd\aZH[ZMYXWVW\cSWWPSsQScVeUaSSUecoV\SoYcY]sgP[UM]beZ=MSZjG[LPtL^XUEfhZaFgmNSOOXahZmiWClQXZssUsV\]fl[cOWXLh\V_Z_TbXCbTM][cm`XtRUOVa`Ug^UdW`P`XfMZ[dcSr]idNedafW_NTaFQmP]R\wSNnxQNYYgS]ffNeUhU_kTTiVpR\fjVk\d`Q_^f]UadRYTV_X_TYVcSjkYkam^LehpOmT]SMYsVZ]rc]]RXQueQ^jNYP]ZX`PteK_ZXPl`QL[[P``KjMXMj]L^bkveSgZSXXd_bjnd^[rNWjT|^gd^_j\`XVQa[[`WhRS^^dbe_\dhNZZ_XfpV\U_keX^\ee^woQXN`Ox_PkM[Zcdcc`gVQ\\aY_ehL\e`NaQ\TgeZ[^\i`XPP^PiI]T`WgS\ebPaPaeMibWclU^Qc^eYZea[lXJXnbasj]nhJZVX^\fa`e^YOifRJi`Sm^YZh^raaVsRm]aU`dRXp\XYmXTUuYdS\WZdYdZUWeUg^eVR\X[YVcV`duacT``iVc^`\edrV\dMWt^Zlog_tWwWmdY^Xfa\Z[Za]k]\V\]`Qp[eYuWe\WbWjd]lfW`hJ\]PrnKggcTceb\cg[]db^^]hU\Tk^R\YPkQckoVWfKbalh[QWj~`URZ\gTc\WkcN\NcfcWhxk\VZRa[\q\jZbqqcgYichSVW\fi\Z`k`_iwolafVY\ZUQW[dedZfPjL[Zg^\qR[X^qQaV^[W]ckWW]j_[gT\fgU^cYv_op[T\ki_T^fVbXb]lYT`qPog`o[f`Pu^[[_ca_Vo}\Nkdi`\]zVYa_`Xei}cdX_\~ZfvXTgaeb[\[g_aU_iZ_a_Wr_Z_Kd^]UZaYcUUdZorhYeQgikkWWmjavy]]MoW]lp]lR[M`aP_\]hrUai`]hQlXueo~S[]L\j\Sbkfe\QvgkiQVXZ\v\`]r]^elh\][`Yc\ib[Y\c]fTWXPGv__[WVl]m[V^edJM[aQchYW_VcU_d^kXaY_fk[X]g_EY`boSXlbce]rr]ZlcNQZZj]gK`WbifSg\w`p`IabaOUSY^biOYRRdhb_r[\leW[a^aaV]X[]SR`Xak\ZvaTS\cfYQWefc_tWN]\svc\Lb\h\Z[cWf]OUYfbgj_W]e]VVPca`tmugFidUZj^\b[KgdaZWl_f[]VUT\ZmX`V^AdU^IbpXQ`\jPPb^PNS[cXe[dZc]RTX`P[YUVRUgVOQXR\WN^O`X[`YSZ\`aSTN[aTtg^b_{nSXgg_Zg]fD[XcVYfQ][Wa`WgnYcaZSebXP[S`]SU`V[[RU\eNN\ZdTUN`kMXaW]ST^^YvX[^[afW_^eZXca`TTjZLJL_Pl^PP`[YhjSSdUZeY_bWS]J\]LMXWTbQ`TnghgW[]Z`WX]gPf^tXNGU[WRWVVSfUdWMOUfknfgUU[`_acn_TSM]NXbhTg\f\Rb^]UihNXXwe_YfZ_eY`d`]YSe]deio``mUkJRr_Vg`lh]Wp`lip]hdOW^[UxdhT\JmvaR[bqabtuaZmghKRYTqieYlbcvaTWMYpcWtRaedUMTrenTmZcbTtJQiaefZ^|PiVdzwnea{`G]Zcmb]XsTsRe{^^Z^OdNjk]\kVXx`U_WdlVYZX|NVpacjcakY_c_VjiQ~__vfZZWX[VPi}Pe\Xgh]TYgZWlvk[pbWWXpcp[__^TrWlfxdmTYW_tX]\[Z`]Kgbwb_eY\ldxZQ[btdeUhZL`ZtoLxvcZa\YXWUXjdkZqdWz\a`^r_mtV\iStY^]Zin}Xf~cgUfggMIgXkeYSZX^rfTb`YcsfFnpdf^?hcWhe^cPn\_csyvndggipX^Z`gmi[XjmgYmYbf|cgjeZWk[ZcP\fVpZg]yU^Ud]^i``\p\Q_gqX[g_gP[kiY`edfc_ifjZSe]ePeXe[bdgdWeZ]s[]`caZ]YbjdjY|grfgh]gTu^abcY\\[qXN^Ldf]lgcf]dbZaY[YY`Xt[cYYZ{bnca[d]qUmd\abb_Pi^YfagxVehhwgi[egShpZuba^OXU`_`{chc`bt[q]`ag]_^_Jyv[kVt]pZlbbpbdZ{n|kXmUmgTlZ]Ygri\_^_delZ\^eb`Sf\yvmY\_\_sW[ZcX^ftle^bjdd]\^iWfY_qNamYsVg]a[WmPxi{kq`\bT\Pk`\R\O\Z_anRUld[^c~dU\dmYUdanchh_]_hecjfd\\icWW`dYhhhfi]ea[d]Vh`fmXqflkamtbcoddfa_lkc^_JWgfqZ\\`XStZtcghn`WleMd_kekobezk]djgaWT^jbWjfbc\`RnZicTxkr`psbbUWVam[U`jT\\Xa_cslbPbgmpbSgf_aZkeeZ\bVeZhS\p`phnYoV]alXRcpfXV`sW`iZTpgcnfd[eXZ]fYgd]hlc\`b]YgOaf{aheXaieYpy\tcSaWehqcQ_Rk\me[g`jYh^k^hZQ\Yh]R\bqauw\Xh`__eiVuwaYjb_bhV^UcVtZ_ivYgouS_baMWieg[_ciZcUV[YTTyZcz[~_n[\jg[cbl\\bzWKVgpTSbUgTYV^`ZcyY``\fb\]ciUGY^aaQWh[e^c]x^^o_RnZ]Sa\o{rgXZffXViNcUnWptWlitffbZcoVbfaE`VccqhgjuN\^VhXva`WgZaUtmm]O[YX``X^eu`LfXcYNsw^dWbcjghSfvPw\`cxZo_eht`[^dVgU\Z`mXobYW^eaujirqzJ`fbX_kQU_`lafyQ`f[lYyX[Wn\F`o[]fldbVlaifdmpaNffk^`yUP^Sakig^\V\ZMmjSZd\mf]kRf[sjIZV\efT]ekbgVS`w^Y_fkdtZnOtZmTYY\^zjm]TVeT^`Xw`TXbaU\Kubbc`oRnPk[^^]`N`N`bolRhdubgR|QdPY]^lWigiUYmQiNdQbNnie^c^siPdX`\mVb`hkYRoh~KsifmWpm\Rmcuk_d`ujSf[NTs\mo}ktOt]MdSbsRgIQbkP^gZRbXWi_Yj[Qc_YL`VW^g_a_ZdaUMm^MXU_[Z\QvZeeY]j__lcZ^rcbSd\cK\RWGzj\QQdahSaKZY^~Pjcb_nbVqPWuw{b_[MY]^UiMZ^QLUd]dbZ]aca\W^eQSr\n_KTd[RX\VXoW[lir]l\TU]_eWXXSqON[cZZSedh]TRsS\Ya`Tmc]LcW^\hX^geT]Lb^~aYWJ|_Yp]c\h`SfU^YVaWg_^[FSPZkN_`Nh]dOedeg_v\p|J`W[ba[Xe`M_S^TP`P`h]gtVRQ[Xg\TYYObTb^RfqRIojd^^bPQg[Qk_L\jF]_YiOJcYiR[`SiaqZnSZzpg[RXYjkme\cLXYO\]aTnq_Oahi\^xcm`[IgXm}Y`f^yiaTedPQjV`XP_}oPwR{vXkT`|npVhXgQl\tduoYqfhnoeQVZbgQ_ng^Urmi`{SqfnZZu|]Yjlea[u_sZgWtfbiot[ob\jRvcakkahkubSguXuo_R`qfmeh_}q`]_w~njwirr`]n\ow^]nhcViomcluhppkxvYiWTkQ{h^\U]hZvYkwYutWuV^i_j_kQaSft\rjqQS]|jMvk[^`mpdQ[`aeku}ubW_d^kjpnlbeRnpNZf[fgoWoZxlpj]YcZrcuy][geqqN^LnfqfYVl[iNmhrxxfcxhQjW\[]fac_\oXo]caUzi{pPlvWpR{Ug`poiLsdheZNZhohVVZlgb]hk]Y^npb]cgkbvcoSY]Y_Z{jpN]eN`ZhSffMi`mN[_f_Ne_F]aeWmeeYcPVBW[[EWQX^qaYmiXadgsQ]XvXU]gp^Y^bYbY_K_fw[T]~^]_W^Y\qUO[^Y^bTm_gZcdWJVKPb_XaY\Jmdm\UUo]eSTnZczV[iPrKbmgfagSh]euPwUVechdf[G\gX\gYPk[oF^hMfcrVcSZdd]SbX[Oj[vHffdkcWUWIT[[^[VPei^jdhdYJqte_Shc[iSPseb`elTi`\WT|ZXfJdEe`rZ[XYmeclrh\asQlhhXxaXvTjaMXu]cZ`NR`h`^p`beZoT^U{esKslc\XYpmbSag`tX`fdf]Rx|OXugheiWO[aL[Xdm\\hO|cioebZgfaLKsX_RZX`vofQVj[cc__bhbSQQZcQQWLXKXQT=bd`iUR`ibXVfDL`dNnMWZbUWR\]R`ka]TpacP_dPZWfXbVLXIil]Qh\QPf[whbWULWTSljOVab_HNFjChZNKVFOLZ7LYGTWXa}Xj>Z]YxNU]^[OsLZ[bZ]WXVSRObbKpRKU^s^P\JJK]SgLtc]J]\aNW]icWQ|I`]XemJjP~YkeW`NMS]inZmQfodhSYSiC]FZPkNelXNOPc\XJXORST_h]fRuIYGJS]XX|\dlka`RQY\VKfTgQ[HyY^tySM[eRSfWL_YjVU^\bSjT\V\WbRuRZQVXhmpIKeVp_Qmb`Vkwiqh]G^Kb^^V]WTJ[Zfc^KW^OVi\P\^^GQ{MKS\`Yb][\^_aBYR_d`[LiVfH^\jZeXM]rjv^j]en_[SihYd_WUUdQYWgb_e]QVbl`yauhjaeVNeaWki[qVUUX[QorVM\tXjlgUItt`dXxcanlv\dNk`ikWaY[]qenaC^Ycg|Tgk[_VMcO_QLK`qgliTgTcOYtlqbkHZtgluy`XlZmmbZUff`hT[pc^`jqX_UqcjciZW\baflhVpbRUXLkqTqlocPafVeZYOms]sVSbjb]q[gXdOcZhjh_^TfYPiSYZ]vrOQTLX_ZVQ^Vd`YaZ_\aWLXSzM[DkbU_UWfPM]_[WsSXtnqbc_V\bd_T[YXYqXYfyUfIZZUfwXymjMuaKdhhtRkZshbQX_ebNX]Uf`SfK^[d]t^_R\chbuiK^pydYs_FbrakM[oVlm[tZclaTBeNcajiXlO]WSTbz]GMfjXTRgXd`hW]vEPjUZpX^QZc}s^sl[Php\~Xfi\bfVngS]SVaZ[WT~dZ[rdKsVPpXgXRp]`>hqfbhNJl\\bPXXMiev^HhfvW_]Oiv_rUpRWiZNVKs`XJ_XwYfPRRL_\h]DMfjRpWT]oV\Z[IR`Z`U_P]S]YL]IP`b@WTcX}GjOE_hlfWa[S[PWEK`UduXMpShchTa\N^WENcDbib^fedmM_STeSmX~Le]Kb]eJRq|vUeW_zRj[OWQXW{kLeVS^gJZef}gMnkhsg^oEpZfwX]tUUaeWI\MQWUch^baJgnr{QYOKLUel]WIXT}^]\O`kTcZPXaZ\mZ^OPTkPXaP`_bhXLX_cZZtTbN]xvC~VPfbb^]KW`j]NpVXd[owYTd_bqgo`^\[S`Rz[ZbW^_ZVebquZt^T]fo[VTbauZ]YY_iU^a]sdcVR^}PLbaaoSgrVa`m[oaq_^{ldyqLf\^Re]jS_a[bVTs^Yn__PLiQZvN^nh^jo[_ha_gSnXaRSl_{giVSs^pP^UvakY\ixZ@_Y\a]cde\bR\c\ZYpRYib\Ve`lJZ\avj\[`_XRdJdUmehgn^gTkucYg^R]ochlxn^WQYZY`\jfa`Vpk\fLlTqi`Rg]TTbTgQq\{UZLdjn_VMPtevW^\T`gaNVJUoRXTcWrSYZiXPb_dV[RVYkLpg^bMXFV`VL]ZajWxuf{Nfh^|VVTgUqeU[t\hWTW]`Q^hbQXeXAqS\aS[O[_}ft`\lt]ozcO_ecpkrVSh~TegbVdp^kial|cdervgc}ptlbd`eoO`]]gYQzgcedamww]khu{[si{ehbMxvrSraccbraxq`euhkpUscek]caWYm{eTilWSq\g|\bWwZlu`^fee]}hoR\majfcv[l[hbm{gSj~pr\veU`[`^[Zx_S]nycunpnjqaXka[bffaihU_tluXmukflcWYgngb\Sbs\nw_bagmShprwN`cadpYhSmabs^f`ar{`iWblZirnq\jb]w`hlnYb_zV`j]kk`Voa\_Qgwyscudn\xenpjWfcedoyxMoqeqr^d[^hlhahp_q]Rcf`\rgSVoq^Uyy}a_^Wfofqsplmiig\`ryfVab^UXgwiXeeSUVSX\Q_\f_obkSk\__P_Zoen[~LYQLbOLNFUTbaapSdaUU_[ZFR^[\cmjXdfhgTTq^YlLeg|[\^s]s[cf__PRUdVQGbIb_^s_\bETicSRtwi^WSj~b_bjPd\H[pXgZRTWQce\fy]ZW[eZkbSnUMLrOadLdSbnZYcTO[iNacYVq^gkg[`e[]\JT`kUe[N^]bdT^N_PYXgLPH]]`V`XggYUfVTG]ZW]WlW\nNUaQVL=`VS`NE]^SceWVZxMlW_MfY_^GURLWf\Pf`^g}JigPO\jh]{RWSWQXYJ[sY^_Ysrn[]jVN\VjcKZN^`lZvI_]h]\VURbYzd`]V[Xg^]ZWKKXJZi]\LJ]VU_mP^hf_kKh]_fiVaVcQ^STGRbpgbmodL`SIfYaYfgZlPf`TM\QKdxhg[hbh[`RQpf_Rf[\oP^mfgU]giaUhZdb_ZbSO{SOrkMdNabOM]c[W`n^YCXMIRZRmxRHaQc?K|bdds^FcZWOdhU_jQtwUc[hStaoWZjoNclGaU_hUWodTvJKc_pU]Qd_OU]_sNLX[{p_YJIXv^UH`npVNR\UUbZmU]HHkS]\ViielUfTMmv\mYX_WXBkUzQlfUxlNfT`oCSoV\YuiISZXXg^Q_cwfUhfQWdQGssMaxH`Rqa]`YgR^gnefkNP[XW\gShb]acMbwmRQ[dQXjRYTW_MqbTFWlanY\lVVoMoRS]Xsda[}XX_^[LrT]QMeYf\uO[UQ_TeccYkXI]\Qng[SdkXrcDjUURk`]YO_zWci]SiZ]TYbToU[MgV\h[ebjUIZWif`kqhP]WkZguk]Zi_\XolVTm^r^i^iXY`VQY]qYk^SmlXm`[eM]^DR_M__e_ZXwmnt[_DQXcS[YJYValVZ[dgU\]`fLte`n_^\d`^qqRan^`NuIhcTK]Vdhl_a_MqVjTWQ\ZVfdzNbb]_S\cN[f]V``YbpegL\]uSWwZWcOfVdQ{\_bdWeZMXcZZXH\Otthw_UXvZPbuP_wwR^Y\UTPcjMDV`SSbbRXkjlSTS]galWX\mX`\ajWnVk_f[cWR`Z\hevwPdTjVakiCcgxQH`Znflp]^S\SMslWenZYmjYW\RaZbabYUTh]aWVdoQLRin]kavsjmZX_sN[i[^c[n\[cTQ|fpYZk_e[WcqZcWwn}]]XjAVaYRVXeS_`bUbQV_OWVS\ZVjiXbaGedTSmbhPTYiUi`PWfXHXH``_b]asb`ZckZ^bU_^YSl?LVgRUWfldK[U^TcRbb_ZUVZXiYaM[ZZ_Qfh`Kefz_g]`f\kgu_[WNrYQaieZ]SV^^H_o\PhLNeYeuQFLT[GTDLRUNOUUWTUSY>XTWSOKUOWHW]LXQJLZWRGbMXXUJRTRVIbNUQhPMLVQMM\KQ`SHQNYSNJVUMSKYOELEWQJVUTUPEKSSHXXQNGUPTKTUSIIMSYR[VPWWWSRPO\XTUJUQYY^K\XOPPT[WXYELYQMKSQ[_PV_SLIPZUQHSLIXWRJRRR[PVZRONcUcPWOWNWHSUHOKZJZLY_U\QMSN\H[OOOORR[L^N`QMGPRMYVUHTTOhUTWN\WRSOOSFVOHRVUWfOTBKXYNITMSXTSOPOHORWMQOJ[QBQ\PTWWW^KsRRKNX]LRRSPPQSIKRV^WZXZTLOIMB?KULPXWBPEVXUGTCOW[PXMO[UYVZRbGKZMFOUINYQaO\]TPNaPPG[HTXNPRBSRSVL\[M^JU^U`UK@NDHOVJR[KMPd_RNXTVCUOYVJWPLLTVBYXPV\KPOIEKVCYU\WEYJTKIABXWXXW]TIHTVPTTITXMNKFHdWULGOHQcN_ePLJPLTXJ]^ZZ_UXRFGMSNdMVMbIJMMXWRLC\KOVN]NMRJFSTO\\`JNPXeXUKGWG[MLERK[P[]\[KbA_a^VKZG[PW[KX[^^KU:G`KaSbQNOC[VSRHVVJKGeXOLYRRXUGOW?N_PWVPLJRQ[PXVc]X\TZWTRUXhVUQeSan`gP^gK__e_V[h]r\Zdc\tT`e_WVeWUVWYQ]`\PUN`XRUXnl\^ZMZXco\lbVRW[]HMnXOqRUXPfXy_TaaZ`]W`_aXYKh@X[MXkZWWR]_\YYRRPX\[dZ^\_aqTRbjgYpT\Z^Z_gU]_^heeO_aoVRQ]WM_^QbRSXyaNY`WgWXW\NNU]QeVOWXYX`^WnQofx_Jhc`]Q[[VZSS^a_YPRaVcZdhQRUVciUX^Z]\YZVIcMcbXaYTnh[YY^^[T`{P^gWJN`eIV`mRX]Xe[[aTo]tS^W^_V^\XP[XUV[^PZffQMxVE_\\Sf^Z\sR`rfRxyi]YJZZJY\U[SzYcUmfraXZQq_^ZP_YO\PaPnZXd_[SXcSUddqfblWajVdr`Y^^`]f`WmdeiabffZb`e^VZkp`Zh^rs[^lhfdX\k[U_RZa[\_ylj[d[mb]hT^mng[e\^h|d`Zcc\`]SXoc`cZSdOyb]^aRXbgokZodZP]TZnfeh^WX^]]]ZgobwW\`]t\ZaYl_aYaXaYXddS^ees\X]bUevaddZR^_cjgb`gfVbZa^c^^gUYXjoY`dZ]`]inSfa]^idbidLirienaeZ^ad`sky\kenefSQ`p]meVX^]WX^[jj]M`d^Q\am[hQ\fii[dVVoaeicXfj^VWim\i\]nZ[`]chomeh`n^`]]u]lW[gfU\TRXX\V^_igy^\Y\eXgxf`QgrUlo`OXcikTeYl`rP_lj^Segg_^Sew^h_ma`ej\qdbQQiUZ]wgTvUgdUWdPjX[RbKWcP`YHcXkVW\STRl^uOPMeqNO^lgX_`Qj`xVVksTnb`pl]e[WZ_]Mk^`WVdSbKRdlXWja\YrJc^\KTXc]Vc_xYTVk_TftoaXb^_XqR\RaeuiTug}ZmZUrMP[PO`JVBmbf^]aIVWUP[^eaW^fbWjeU\WXVURapbbi_TEZ]^_eQY]bTTZgLSVRiZ`^CQcZbSh~QaS[ou`hYjeNhXMMc^[dPT]ihebWj`\[aZ`iTZabSX`UfpVUXTjSR^SZlMKa^UlP_aGVUbrRgtUYqB[FkQhCNYHWZp^P^Rd\SYbdRPOvKcoa`eOZT[XPBv\`^WhOfs[kuWXqOPpjLjjf]VRjd_GUcN~b{NaOW[GStfU_ac`kZe^fgtc^tpqngaX\cpdv\`hd\b]Zd[sh]Se^agh`bkimZ^Ziatqb`{cZldbda]lSmrbWeb[ybbc`kilpY]]scev`UlijmgZdj[Xjl`ndp\fiuiYYo]ahz\gW`\pmjdxmhj_gqhn_\^kgkma___v{]k^iktqdqquohvnrjitp`gfflmmdlkUdyjnfgfi^hejgcYSjxabgsaZhmdfybg_f`kbfVm[ldyqkboatjnz_newxdfbqhWkbhbq\doPritxabdhik^qxfYi{dhsZZZhbNlsqY_}hnZ\h^m\`jj`\}hclqxmfdehluimlkrzd\bj`ZjgjlwiYe]cckbaf[hkipkreh{bzT`badfZyodmig^qmEl`ToXd_YaaT[sWfqPkie]XcfO_jZkTfRP\^USpi`Tg}^iQN\gStfsyfV`B[t]kmnL\\RVbllUljgVUMhmevKTSV[\YczZPlNqU|ngQsaOea^Ohh^bT_^gr`elmicmOgbX_lSsXcjyLQbo`hk|vs[Vj\V^P`POPhYwS]WX\ggt]\VjT}ilN`yWe]imPp_WXgg{X\H^^Op\`hweYb\LvmPWZzbg]Jhd]MgZ|]aEQ^ybfpt[fWpTckXa{Nm}UwPi^|TriXneeSnlXepUTf]}SbeaPGfU~SWJOewcePe\jqed]d[cZakX^k_C\qSitWG[RModWb]dnWUdgilQ`lc_XTcadZYZipWZ]WiNmcfKYhadhjkhLcQgiimlcudLdUX_WynoNMVc]RmU^QP]`[\^Za^RjW_U[_YePO[WcU`MhaXUYVXO?OQ_lXJdHOZT^jRjUNgctk^qYnZoS\WVQd_VrW}`]dc`]U[cXg\WWeWR]nl]XVRj\nc^fJgHqYUYY`WYWcbQ[olXWY[[VVS{mXOl[ZhX^oHeOfOeY`gNW^[V\Tq\eW]gcSlXij]foSq]c_|Nt^Pdf]QbQ]X]Y^^fMeOgX^`UdcSj_Mapdbp[xi]RU\`aTgL_Wc^mCVcWi^eSCVS[PPYOkiZ_RTVYgWcVPkahKaXZQafXRmaSbQ[bZ^fP[`o^d|UMVNNOhhTVLJlRbhjgR\]Yi^]\QWtP]ZPbd]QlYD`V^ch]Um`Sa[]]SdYavo~w~yuxxpsq}nq{o{{v~xxyt{ur|}qws~}xn}mpu}p{wpxvrzvnvu~zwzvzz{~svx}nuxlvzy|ty{~twxs}tm{k{x}wprz|hyiljoqp|lozuyvplvnvysxn{x}}hzxzv}}vsmu{|uokn~t|~psvq|{y{wvm~u}uvm~}wtqqspuwvs{myko{q|zvwrsw{{f|zxpws|||q}~sv|uxuvouwyvx|wvvww|vp{vst|wr{|vtspsuwu~|tr{~}ekm{}nzx{~|yjfx{pzy|q[}z}xnwpo|nuusp}zzxz{rye[_fi]Z]`cqac_M^kSujcbV^n_myf\]cc[`XSpoeWd]^VaYq~td]cx`jZW]j`\Wr]bZgi]f^avcXrhWjek`Tm`VtjX^glc]c_kVTefW^|g_fumggzQWYaYlfgdZi[bXnSm_Vmm[amj[ZTlYh^qae``v`PXS\]xfY[wUT_[XW^{_i\Qd[c]UXWfvWj^WerhmqVf^_Vc]^`noac^dZMdfeZX\b\a\Vk\a^y[^ec]_YpZma_lW`[gggMWjgQfa^paa_en[^a}LZg[Wd\Y__[]aa]t[^[ZraUYaZcaphu_fbgZWcse\cMmpbb\gUSd\an[fPo\p_YfU]bcn]]c^Ufldn]v^Zbg\debY{UXg[l`_p_VYV]RchucZYQZ]ZWkWYMe_LtPjnbn\PpU[`c\g[SWMcaneU]u]\xm][_NY[[WLUb^dkr`\aoX\bh`gLOJ\laZ\qgqjXd`VmhqdQXcV\ibNQjgVca_PXkThOfk]X\QdcWOsZbctl_^W\kUMQ[\QX[eX[V\e^\w][cSTY\e^QUS^Gzo[Ys{l\YgxZVD\cUT|rVKoTamlZ\MbTumf_hotRphQfgaYdjf_iW]QntPei`aMXYay_dQR^eck[_;if]i^^lLgQjdUy`_fP_G`}d|RXQGVp\tlFo_c`}emY_mbgbbe^sp^bdbX_Sgmuo\_{Sa]\aUT`SmpSUWoSL`][U[cNTgYPXOzV^{OSSVnSLgugoZd^ZUZWn_pYe[NQaeY]TXmMSxec[\UYaO\QaP_}W`s[k`W?Xd\WJeNVI_jU_SNhVXWcYWXUhVk_\jeWdmVbrYQMQMoPfUO_UTTfX]bPQMYj_YJkcTbfbSYOYJSP[gWYhU[MSOoQ^^[fRWlYX]EohMXKcYaVTTGTZSVVWcQa}PibXT|[NVRbWVUWekQ`jgkM[RXjkaXNVaXLVcR_ZW`TVXMcJTTbUb\h`UnXjRJSCPX]SYVS`R\[dn[IetU`dkeTa_UOd_X`gYEjR^|aXb]R^S\\nXn_dXdZRTXgWZWecjuViwWVgWo\oYWXXd[[kUp[gXVRrFdadfaYUcdoRebZM\bM_WUX`tUfnb[yTQd@s`u^GYXZ\Rae_h^dXYvUY][XTXMYaQ`MNai}NHTSdeeWp]jMM]eVh__fn]gbj^nSTTieogfeOgobY`K\UphmQ\lxZmaP}TbYYgjd{biePO[__^o[X]jPeeXgnk\n]\f^dT^eWXieR]]`ontqoaYi\vTyUXmomckoi`QevsWg]gaiO^uU]w[\`jhOdUOQX|Z{cUQcfai_{hRR`XgR_Vf\]\RX^VXataTX|W^`VnT[fQofn\^`e^gk]p[YlZb]KqWNYe\j_[`~bw]_b]chjf^adOQi^l_WV{^E[bhmh_h`Z^^aeX^fraa__effcWVgZmTrlrlbigdSPh{ck^[tiQ[wSdfX^hv]Tb]WiOJn\NXZ`a`Qhb\^eRS_Q[`cmXjn\kilJUlp\[WmXei\gqiS`[Th`_gEesWoWQUnmXWZWalXxM]ebaz^chaZ]aRTwQ~wdbP[ebXOuiimN[pn__\TgcXV~XHehZ_\bSaQgRYhZ~ZfiVwRHbKi`_eQmVjZr]iYbsyUlUXbVdY~|lgdJnTo{tIZanucV[V|hPn]keSTVgvlc]Dnvhca{OOfkU\[h[MfMdf]jKpOYTxtbydWMw\jc\OSaaLiUgY]oqciUUbjl?a`F[XbZsTob[v]_]^bccQY]V`_PiiRXOj[X\hV^DV^X\Y_c^SPW]wg]d^glVROSW]n`ehUVYumLOQZg\fOOKzRT^alkO^aU]kMOdlhkO]Mq{XRm_cTbgmTWZBeRhn^]SWXfc_\_xp`ObZjeQlZf[TZwS}aXZ]cPzj[VUO`\dUX]aVq^dldScayeo[^eg\^M|aolbWo^g_^ebleYg^c`ZhbXdbfM]v\lY[_ce_cXw`^`WS\_Zefcak^etmYZaigoaw^ch[^^\hVhefX`fbYf\hkh^Wa\ZTX[`[rWedZbi_grbblkcUh]cp\MzneXd]m`gfYe`u[XQqkdbqgelNe^ma{Q[qf^Yd]Z\^lh[vYgW`UbaThgW]kt[f]f\dmfh^^Qcdvi_ax_]]fJZZkzTc_haQU]aoyZkYa`^cX`efeVVbV`^jiuUSU^Xd[WiYl`acTb^ced\S|_db_a_mf`Xbdj|hUa^beh`NbgW``c^_akkXqhb_g^QcV]i`Ybemvj\]}gn_jhae_j\[_TaVgmaXg`^c]_YZdit]ZUkNY`zRW\^Vgjd[}Yif[MfgRD_YQPZ;Gj`n^ldZi~W^[p`jI_\`UT_dhchcL]bd\uc[oVROX`cXKldqhHY`rfrBY_X\lf^r_jlnNOhIkq\dItj[aQSfH[^Zltg\fr`Ofm`Y}nbQicehcd^V`oniN`WT_ZbSrV}~smocaMOVjWTP[xT^\pQLUgZhZfYidnnsQ]XZj_]nHd`Ifmh_hgxYWVSnL\ifZo\dq[ldUk|_lgg{jaVsbpNcdZmcI^TqadWQav^OfWYVK|e][bdkcgoo^^[XTQlQgeuPPcNYeUj~TMuvShlx_`Xh{Vsmoe_[]Uvl^RTadPLia{WJuuoe]TcrmaRXRlPZcwcuWhcyYNk[[hqbiTSapXeoMYk]ckjuhdmTg[htN`elXhd]a_SUf\xabnjp[ks[v\qTa\`jYtifQNjY`hXhYopXcbbF|zafzipZZrugcZnXe^WftmbxmtlQdXWVj{sdw[\ghm\hnUUbtgX`fmvUVgypnY^PrO?dkfjsSkfYblnXj]u_jrUwoeXkdifeslKWNQdsytHf_Ueaf_jvh]`Sne\mdgSdkbi\w_bnaxU`njgcQeYze\ZZefc`O[bg^k^ff]^Skayd_jxhwqwgyYYk[rewdnWChrfge`^volWvhWwbSa]ib]ou\wej[alc\j^__iyaaqculw[[iljYu_jO}pxMuWTL[mZpSta^giSf\liUVa_gVb\zZ_lhliUeyqVm]YkUP``PW|kOcba_\SjW_ewWyjbZ`aeZzmyi{Zm`Ueq[\Nz^Yv`dvuaR{`ZXwm|nbKkpJi\\derzncxk]YxiYWc:n]hhTe]g[jpnYmYrhXgnY[?[j[fo;?YKblkjpx[jdgmnms{hzfgejIneS]wyffefiK]cMphl[f\cVgqUt]GedvtG`do`]fWaxx`ydP^tbXhoohareG}^]b]wTw`[WYaQX^o`fphcunf}hmeOVdbbKNXM|VZqe]q][ytZow?ZbfnwOjYb_dT>X}Kq]sqUlctm~\l^}sHTpihMlbIQaSq}kjRO[[jkqRUMe^|xRdsjapwdgakXYa-Wckagft_uY`YO][^UV\[]Vp\Rf]WvO`^\]KTgahC^`STr`QVX]sW_aXg`|TO]rkY\T[E_UTdVZ[DdiYSgP\rd_iUVHTZYYOgRb_\gUTmP\bUTu]kW\a[sc\OMXKTVxdkR`XU]JKcVM`QXPUzaUhgaEZfYQgPcZWiTi\\YORkTY\eU_YZc]WYXY]\U^T]SWLRfifQVSV[YKK]VgalacfbcWa^VaUWEbbWcVIe[ZfSWhZ]cQkQ[[\_VSLeRJcUJzYfYMP^WwQP]c[@a|zZPO\ZjURPuq[[[WU`dbZf]^]dPBWgd``XHK\cZQODUhP\[VeiQVPYUZX[W[Ojl]SQFS_VXSfJYiQ[uSYr`q[T]f_MukfjfcS]Y_fb[TihRReUHSZVFSbi[O_bG^RWu_XUQ[dXJoWRexf_dY\Jd[INRNJudqI[V]WaY^pWJQOgUd^S]WXdoVf^QVVW\RYbz^dqapV~brrhYjN`SRTY`Xon_ValYfel_\Wiih{\`dzgZ`x^MpXg`QZ__blcatbbanYtZbe]UeiU_b\nb]tVS^gUcZfdyObf_fj`jedgl[ThsamUQUk\^glU_^if]Y[\_b[mcphefbY`addW_[[`WYudsXhf`ohxd_]PabUm_UJ]\`fWgnWaY`_dqr`nlfhdTbPZldJYbxu[NY_\r\jrh]fWjZagbihd}Xccf`dmed]U]\i`p[ih]aYa|V[pf\Z_aa\eyK``f^{dR~U^_lfTY`j`pnuYk[ixed`wv]nW`bhlwmYbgbju_kjp[\YWgViVl`rPXffgYZ]waQ][XR[giYa_mk_Yv]kZjj`Oj`_h]^Qld^fZNZWMZMEXaVNPLSPHNWVVXIOSGZTRTULR\\NWOQX^SYLOPRZTW^XDTQHSNR[FXaPYNSUVQLZHYM\L[XTSSWUOKPTV^DWKP[VKHPYOKWXRNQZPPWTN[VVLRS^TZIZVVSMNceQGKXTWHON[GJ`GGNPRMNXYFWZ[URJYFJT[TXXMNNUWPOSaXUVIXSS[LWXU[YZGRVU[][TMPSX\RHTLSHQWXZSVTFPWWP]TTSRNMPST^SVbPSOSMP>UMQN[SQVPPASRVT[HONULFRQQO\SPRRXRP_USLMMMSQCSS_ZYWUYVYSZTOEPOVZTMJQ[CS\GeQYQcIQYBRQUL[\aVOQVJPQDEXPYL[KdSHHXUM=ySIVUdIZUPOVMLAQ^\KYYNJYJZWRWPYYqL`Q\baik\[a_caVidVjZdeZmidxVkmbc]dfjZyml`raWZkN~_g`fhoh[w\mb{gbW`_eq]upmYeXxigbVXsjfablYRNWmxcVqhfcTu[j}^oR_`btw`bsdcc[]U]kc]NsSiihbomc]yoT~vi`TZadSm^bcYpmfaZX`^SZ^\[Yh[suwRdUpR^gT[{ig]Vua_O^v]VYo[jYZNbX~nd]X[mb]jZrm[e^j`Vcbg_dl`gcb^eec^oecwahcYajhhp`Yq^XV]YldoXbybmY]Ul]iW]hhOdoZ__x^eacbbag^f`dbhi^`aaydVxeSLl^XjPPeh^xe\pRTeggs_Ufpri_[h[W^pZcfbSMfOc`fe]aPjbeavTjf^UbgsNMi__[_fbYlk`Z]x[ber]`^Os_PYRWncccPLVXcm_bbbdaSWe[_RL[Y^W`Tn_foeRYhWd]JReWPO_bFeZwToO]kY`^s_c[XNb]mY]\T^\XSRsSfjRg`L\bfYiXVPb[Qr`SfeuhGqji`NaZYiNa]iOngh{_VMa\YU{cfW[laR^OodJfzg`Vb\ge[`R^OYaeoUScTYX[oiG\`\UUOdZcl^NY\[[L[XKZsV\TW`[WdOVchYYhY[scZmVY`Yrgv]ohY`W\YTVh[dPT\UY^cHYXf_h_TN`b]g_aZ^ad[XfZ\\`[RrRdIg_aikTcc[YTqXuV\eTgiX_lx^i_Nk]iaeQX_VYq`[hPjqq\ch[igPfa`QIQZgaQYCST^ZIPTjeZ_Rk^\RacRSL\YOdP`V^WglgPbQa_wwTL]UZONXqLURklbKPXK_PS]MYYoIOom_VbVRk_o^\Q[`]WN\OV_QdHq]Gdn\bZSGOWuSIb`\RNudXYZLMUXcljnQ^]eKaUpbbaYgUMZORi{XbV]PNNZC\^ZWUPYTPjUH`q[YSY^_TnY\an^Qpo[_mX[[gSh_TbfRa\gbUlMZKR_MXmY[vSZX`lo`XgKSWXVSVLRWTTSgWg]RbRS_R\QILWHWpSNj[Rn`fdY^[WUahS`Ka`[Jmmv]]A~ZQandw\f^Zae[LO]b_[UYPU]gZQa[ShSAaXMUe`ZbKMPbdeMS|oGJfig^EGrMyHP[YbWn_Y]nNaYRSQ\jXqRzMgc\Z]VkVYUCSSeaXhXbUSJZ\Y[ubh}^\kbXW_ZHaaglnYbzbhd`W[V_[mdhebgMg\[_jOf]lea`fYRaq`R\c]^g\X|L_R[ZhZ]_r`vRnll`fmNfZm__O^QTq]keYPWXt`[d]``YWZa][USe__Zi[]a[Xtq_\[hcg`uMZSs^_YfjljY]a_b^^fXnhibkbccWXgbUj`[jhSwdkXP[\aaa`a^g]^W^^\gQ{ah|Sg\^eb[yVUucScVZZadPYYnVEYmc[d^^dzXXWfbGUxvWgbZl^Sa`SuW_VQ`T_YaaOY[aV]imjwPVlcY]_dVWSYfw`ZXZsgseSoaehUcVdaS\g^lahmfSnPl[re]bugQ^VV[cjc[cUbZj`]gLTckWvZ_ha^f]hrUPZXP\rbToYer\lf]{gpwx}l[Xj{b{}aczr|mjUiSfkqstXv\fYmq^tfvu^_]P[dtvnbzlfgdSQ]n^gTgvpc\TQu[ZaWssvu?u~trIx`gshlizag`iyN^jXwXaQsmhlReqwcbkikf`b|vmdmrwehfV_{n^hcwYzffl~\z^gs_pU`]UWcXnk]nkuj{bUYRbrUi`TkzThleYfoegswueW^ash`fmd`nt^a^}fhdWZiQfU_am{p^YqN~hlWqn[MillOo^[v|gptR|atfo}p_geeYqVcl}mspYYX_of[}N^lR\_g@q[R_QTkZ\jUO_ehvbjdv~ZrURegls~Ym^vvj|Yfzbslqn{giZXiTXgWmOn]\[aYSZkl^j[fW_lTQ_RjWpaXcagh[`QVU[os_Z{fzpe^u`Vw\`lhh~T^RahBVU]VZ]iYPUe]\^\Xe~aMVcc^{]oWl_c[]cfjweUfY`[jfgPWRaibZ[fS`kimMgkv]eQpJbYaWdNl]PWVxYnvelb]PgelSTP[a]arNooaZjhTt\cUmZ]zecWg[ri`L[KqSmXaT]vsUTPy{d\ZiYiZP}XRmefVdjfHLXce`B][m|P_U]{[_JWU[gN[V]vBiovdV^Ku]wVfNS\d~S]gjXln}Uiu[eXhh^W_vVcqPmftgyi[URZS\n]my`VeNdrKMRiafpa`\Z^aXTWQvtg[e\\kVhLZXgaZ_NUmkiXjP{h`bsPOR^?iW^^[Ub]dVbZTlsnWW^NaGSwVYXHULadZ_O`a[VkYT\WSLh\`Gi`VU\PgVbd`UYoWVVUZhFhQrUQW^NS\PPXFZfdjWg_Yfv`cSOhY^NINU\XSXZ\]}jZb_S|^ac__]\`XeSNopTXoRWQ_rdVXUQccN^S]\RRVVUY^SehgihigUXb|pYU[SY[OOTTXK^^\J\]XSXZU_QSNkL_^pYWcH]W]|gdeHiX`H`[SQWQh^RZm]qX[uWoW]_jQ_PsI_m]MkWL[U][SkcSbUUigkmV`^Hn\P[pq[[[^SdEcZY^R^abnYH]_[k_VlNRReP\vVQ^]^V`YaWleWbTRkUYdbfQeR^fV[SnH\iW^dWUbbSW\[\eTmTQVYS^\WNMdKW^ePNXWTh{P[pWUNSYgRQeruaYSbSbY`ilL`PYS]SsdkVh\eNYh`]VgabYWOmf]xzg~ltzWw{a^gWgXS]qn_T_BYda`gVWRUgm\Y]ZTk_FZk_[[`]lj_pvXn_\YP[NGUlTUW[dexZkUcRl}UXhnmLpRW_Ilj]dM_[rhqe[bnVRlQd`fkbgV\QVjM[dfYm^VYef\RTYiW`]\]Vf__fYU]ZWSRc]UWZVckWQYl\uUPW_b^j]Wk^\YVLRvodFk^|fv`KY_nbiKlcTcalNR`]xoYYTe\]^M\dDfcd[ukWa`TYdmKW]\`wU[Yfxb}vQlQT~HmXTaneZZ]\P{O\CidsYXQ`TosTu=_hPVkWU\fYZ]ihhz\mzRO__r[Pi|vnw}vguvn}irxus{w}xsw~~zqoqwjqz{qx~tuol{|vjuv{wqqwxs}~puro{t~o|w|hxmott}ltsloosn}~nnqw~uilstz|iuwyygzvwupm~qxnn|rvtsx_~xqvvvpuztc{qqyt~|}mnvs|i|uopv~xx|~u|}~~kudysuo}xroz||x{ou}xr|w~rlqg|jswmn|pzplyvwa{ctmz{yy|m|qvwlotlypind}~{znzn{~spznvstfrs_vzxw|~xptuxu}mmyYsonh^Ykng^m{QTRtniU`dwQRygel\adeg__hY^ThXccYeUpYVjIfX\crkUM[gnW`fq`bbe^\Temjf_c_R\Va[eG]ZmhX_ZS`OcneRPlQk[i]_n]teUgZmfLbir_hfXtY`_Np[Ymcdswk_az^ggjZebmcWXhn`TbNSg_nThQ_Vkmfih[dacWb[fPdPk[Y^]`TgQQmm^pXd\ligahgncVjM]o`kx`Kb_X\PTnodPV]WddWdiaU_kT[aVjcZpX[wNk]\Q`_ZXYU`TnXbSqcmZ^`f[ZJTaeXl]_cN_][eia^meVlpR\Zb]VrbfpiSfiimPrbhd]haqfg]q|WdRbahka]bp|i_fK`\i_U\[ik[pfab\mhZSgWV[VTUcZVV^XDheWY`Zh_gSeKp^[]dmlx`PYcXobLi`][i^aqwaeeeSuOgndXY_nSxiaf|oglNz]brdnmjZw~_iqd_VUX[iZ[d`oLVWolTSRb_zM_xZUkPp[Y|ZmhYhjOqbgabZfSmRo_l[_wfd`R_JYqcOnc\_NWY\Tm^g\Vpui[TdqeZjQz_gISfc[ZSk|egjJfV]WWRRRi^`lhmb[RYN]]`mcVvhhfrW\usPfbYSVzVNe[^XVV]unuXUdYhoY]das`VqheU[m^[X\Yk`^SlkPWRXgPTMojYvrjYRwdPayedOR\dhTZne`[Rndg\^ZpWfSVpctYiXyZhlWhZTZrc\WggTcfbjbsgXivJWa_kT\emlFnLGWladTmdoLnkYMJwoeRN\bbUZORi`O^Zd{RjSQ[ooaorSSYko_kaRKLVi\Xkr|[kbvXhJPkrel\Kedeayyo^u~qSQoaX^qP`ZgQ_s}[T]hrWdie`_dFW`e_uhjp^XbLhPtjeMdM_be]QWZRgVWqhdc|abmUu]c_bb]OXZusITdnQhr|ensRfi_Vp^XNdH^YQgqWX^ydaRyYw_VRgOQWRZ^\chQR``Wj]^PW@j_kQ_`_SY]Um[Nl[bRKiIUDQX]^lLVOZdXkLv^{MIXT][laF[bps]ooRjMucl[KnUtonXdZltmsq`j_|_t[OUoVOkj[daXy_mlkmlwcsh^WadgTwssvZ}NabhuUg]lfz[w]_Ua^d^fNQYrKgYk^^[h]VZ`h`R^zkhHIWQYaLWW_Q^P_ki`^]bSgda_sdgvJXgNSUs\Rf_VTXqeVQ_ead_dams_SYchY_[cUV`Yj\U_MQYP_UKEY`X\gYjfYNWYLgbP`cjLVb^]XlkeSSe[bT[\[cM`fTMS?Y^fSZViLSLYSWo[``R`KgaXNVSWZh^lXZ]RQbbW{kWYZ_\_t^scp`[IblKe^WVb`[]apdfS^fQnT`XUa__]NhWRf^cdTdfHJ_ZWM^XRJ`YnMsaUpJW]Tef\ZvWNekZJDR_YqgS_Zr\RCvWL[VZcOSaStbfVZ[]XrXJoQYcSY[i]J[]K`VTa\hVqT]fWYLcV]XLWJbVhQYHKYvIUHcXRM`vZS\`X^Mj[bq]UU[oVRXhtImdWXFr^YXah^`[fdR_[OOJ[^OV]Zm[S]\YPNWQ[W^RcZYW__dqQYW]j_gyXZfUk^cS[vWSWXg_[_cQWZf{MI^L\RKl^Y[|^UMLg^adWo]WgZVUoXYTjTVVXSqhirfPijUi[\ZO]\sheT[j`MIa_W]_nZVccU[X^\X]l]Tgf\XiwOWZlcib[eWiVqUoSYeh\TUs[Ua[V\lSccOUhXjYpri_T]nUXShWRZi[io[wQcaL\Pca\XH_HNX`hHSkLZXN]RRZkTZdaRjd_H[T[nLPcrS^S\hTeVDR]RaccW_PTTbZWWVYX`TZfjR_dgaacf_aS\_[YUUOSXYgVZQZXubXSww^pjZdZRihTRWVoN_SR^mVqLXQpNZXYpLh\YmFZifleLS^_c^XPZQLQNWTS^{S`cUd\neXYUVM\OhtLnz^qk_MQPYSVaiTmjk\n]t]`Z_W_QZacj_cN[`SoadZTZeYv]LaXypMX^`uj`QXefLTcjaa[fdV~^grvZbLkiQ[N|W^]ygd`cohMhPmddVVfe[YhNkgw_QgJ[WXfWRkVgZo]HadmV_nmd^\Y]Yy\n[`YVbihnaWSh[v^_Z\Pbgk_gYbkQZ_Vdg_l]UOg`aXXj]jTrX]XmYTijft]c`dkoN\Vn~kdZghdc^]jfoaVU[X^he\dwXXMejgNgTbdVJlob]hhpjcYaxYuX{GlgeTjmmbjgZPdkvUz_Zb`[]ceYhb}t]sc\YXdSS`]X[Pf^i]hciQ]XY`Y]j^kgR[lhZihmg^TdXretN``^KP\RURKZPUWXETVRc\N\IUS^_gNTUNNbX[T]Zd\TPOSVOMVNTRKUQLUVURUJGSUOUO_T[USWJTTMSJRQPTMUEbKKJJSP[\SIY\SS\VQ`OXR_VNONNTMLVLQZTYS[XTQJRb__`SNOU]QVIQZWQULaUQKQLWNZWWMRWVRKYWQPMMPUVSPGN^VJTTWMXERVFX[LWINCXEEINJOLPUQQMNVUYL\ZN]SVLTTQQQYSN]PUMIYXWVNbOWTTUQMLZGZMLI[bS[W^YTVPNLSZTIWJKUOXVSZVLYUM^ORSMRUQ]VbWQXXPERVRKRW[JdQRPRXWN_V^XPQTPO\RVXRKWVTX`SZVUTNYT\UL\aINVUPTVRVTWZTRRTSUNOTNS\USLUYNdbs_hYRO\bbiTfQN_\wR`RlaUTRbh~\la`\Mq\bgf|gkRJUR]gRol][\S_u]Xnc\^KQsnaffIv\Lj^T`t^Rb_dbT[^ddkaVM`aSi^h^^^R^hQW\O`PSiRT]PmVfVg`pnnkh[sl\UcZ[Zp\ndjx^RqTmq[jU\]ibvStb]VR_dnr\VcNZVJ\hZh\svySg^gUfZX_fmXiPf^_`hl`]f\`XKa_RVfUra`jidZVNVcdbdOm`mO`UgSWjVeti[[Lo`dYeZrjq\Xf\nfX_lUp_oVk\{KjcS[`j]Q_PkkrRh^^xyO{d`zr\jVVib^tf`^{S\ZaX[kYZmfqZhrf[pZivfbZPkacZYcj[[[_tJi[T`Mxilkdhyad]r_m`sQLOU`X`yYp_Z^beMLf\hdA[Fqg`vgjPguL_U_UXQbecQl\tZ`ZZw^RelioL]cay^ZyS\`bnUnn]nWNR`>TFc`ge[azxXXmJ{HUX_@dVPsjZnaUb\j\gRdb`q\_NvhraVIVm\kI_Ki[gnVa}]XqWdmeoi[^aY`YavcfLQlRgRbMg^dJyOjfd`gghWflmyGZbYWxPmfblHVckNc_la\S]kOeHYUZ]LcQsbToSZqVgs^LXQqY^[f^YYGmbcoknM]|fMr]_hRSPiUQ[^ZSMTYi`R[j{d}U`raoflrtSp`hPUjk}e_x[XU^lOYXkbWp\Z_buN_NZYa~X]pKYdTwKXaUvO}Si[a^boU]YZRbeWsWOtfOc^YXYZTX\ScST^dVYR`eaU]cacNPZRdd^aWYZdlbhV`kVOQ\m_jbZQZQRS^T_SSa\`ZTej\]^WuVeXZhbj^v_fl_]TbYYXauiYrXWbN]hnW_ax^YeT\^LYlTULlgTTYUQOYa]NMY\SlQuWeS_Yo\V]em\][PDplU^WxUSbI_ZjXYuJbq_afiYQxZP]_V]ei[a^X`_`ckoao[_okVaWHR^aWaa]h^WK{NbQ`hm^UXZWZc]]eRcdVuGW\XW[dd]aaV`bo^ZYzb`W~SgW[\hcUS[_NWibSTgUfWV^d]OkSUQYZk\OY^]M_O_hcdVco`UjURbRTS\P_c[bdJ[bd[YSa]R`XL`m]YX`T[\`Ux_Q[cOUX_X\\gQfa^WW{cc[al[jVnST]aI\RQP]cmvdrb_TWQU[TnfTcJ]XKVkKPXZ]kPS[LYx\`QakYQW\Z_MfhndKRRWDVTdMcSVR]XPzIIdUV]yP^X]hSTMoW]JIQk`PZR\ZbhaoIL[cnU\b[reL[XQ^WVSaXWNVYaUXlcGm^]NXkZS`WUL[XfU^RJWW]fYZeXcUZN[_WVlPd_lbljbVPQ^O_diPY_GUVj\YXVgaZN]`PSN`aQb^SPNPVCV\jbY^|F\SY_h^`[aWNYjRNlY`YCQ_]ddQ^VqabKRR`[Ln[YgYTSTaPecZbY[JPYRYVKP\^bmP[Z[dYWYKQPLbY[g^CMaOaVQ`^Sc`_GQUSVU\gXGS]^]PoZL[`V^[[QS`l[aeRXZbUcSVQLVEGi{q_Xg\ckjVgc`VB\_jXbYj`nqg[QzZk\^ZT_gbNVKpjRgpiybdRoud\uik[j]rhwFuVec`\WU^w\Wn_\U^htQxflcWiTd\flalm=sWTcj_ffgkUGgG\cUaiX[_[cXc^ZeT_R\Zb[fQWVfSRePVWXSeWf]`_Td^OjOb[VTSjhcegKhVZEm[`Wu_`Znc\Uj`_baheSZaVZ_eOZM~pYbUh\Zkd_UWkvR[NYppY_UwZsU`[_uZc`MTnW_K\\SazIudcdTNUdkqGTaZYl]sadmR^`_UjY_YcvVRdchR^TW[nkm^hTSWmxWTPnWXf_Xde[a`eKUNTm_Ul{lV@L_{]Rf_xXd[YgZl`XoZm^bRWqkhYXX\[[VlVkZQUfbiX^q^df[a[kSiZW\\mPck]xiRdbo]Uagrm\ed^k[\onz^On^MV^ho[XYj\uU^omdm}WO^hWXc\pljU[a_qZdMocX`[`^oejktdeYQTndoks`nxVtPnV[WmP^`uhfahXltXknn_VcTlfd`ZcipPYnY]qHpw\a_acm\[wkoqcNV[YiSf^OfUc\od[mY_jhTTSpdepdskmadc~U\U^[jbmie]Vn`LVawgXRgZk\\mYlh`eainWRYhT[m]uk^dgOZfXjnm_WWSdhbyyjZ_ebnbyq]malfZz[eVW]Ztb^RTWUSlfj`cUNUkaUe\h`XI[qmXf]Z`QS\cbua{UvUYgny_j]gUmemhSlcmVmbfZaedcsltUn\naSdpkV\e]ZUYhVOQ^W^cxUpbekkqxY^Nfa_X`[TnZdSsMRKN_O\Noasdl\aN`MMfE[]KUTTMb^\klVeTd\YrX\BVdaRcdVybf]ZrYaUUca]X[YZTUFM]O|YPDW[TZ`WMWTALX_PA^ZTgR^]hfWcqeDTuSKf^_YVKdSuf_RZ[ZeXTPPqQX^UXYXWMWbjKUjSQ{OxSRLePPcmXV`Ndp]U_HMV^]OagPkOUYMKR_eP]DQlUjQYRwNSVY\tQo@F[OHHNU]SoKGSZTCiQanmU[KVKOpmPP`WLZ]jXgQYbT\ccgo@^VuZ^QhM_hVeheOL]`PZ}SiS[FaOTZy__afgi[eWRNQoTH_WhdhTuacSVZE^bmXSZD_INUvT]aeIsaTTwjk`\Wf_kjpTgjyr{llhNi^UQUawwfvdVsc}u``cVfLo}QrjkZwxU^__eGRqrWxknlwi_iadaggXjvTc~r[huhZguqcfc]aql_Wzuk`Ve]|lew^pksLhvs`oZaa[Y_e\^cndycXcZ}z|iVv_ma[rdr|pzadtTj`[xbpSkn|h\dsHro~avsaedk}ZfrmYVlidR]rbj{}`aNi[\bHvdvsPupzTl[glly^cZmgiKgHevutW[dg~ccqcqKgcurNV`oWohg]a`iu\NudFyvhsOesbRv\pvluZgnneiWpyhxovffjRxd~il~VW\nUee~cGScrrz{acc{gnujjre[TkolYm`wpquuW[^^if\ScnRwmjQlue|s^k_[QvIdoojhUhpoYul^_Uch]knfsh[FbRYpxi{afX^^Tepp~nchOvZviYt_e~^doeft\]jjm[WXZm]rxdk{cij[lSdh\`jkimUWYjmphkhpg]{unehr`bfaUcRbb{faghcio]nznad\VxXdjpmfYW[[XkoWwnSalchkvjZb|_q_ZlVhPaZhCukoz]rmoYbte|a^[eSeorhkckLdav|neUd}|Y`Wmgkd]ajNb_~clj]a[n^etidUpZast]lT]g^dacRxjlbnvpSdmbtTVpuRWaZpbnnhMacm^cnkvpgog]]k_dpiMwabjabpubpaYc]p^]YrpOONU`S]gXZV^U]hWP?[mLILIdYT\]KSQSRYWBYVSV`YYW]SVYXvVP[hgLRZQKYVXMRhR[ROPHc]jOUa]UaiNahTDPYUHI\d@lZnHWUZUr_EUNUSUW[STS^RNBEOZ`cUQ[PDMbT_ktL`cXSOIxUUuXY]f_Yp_]Y_ZJV_NWOS`WSbQaKhPKWRd[UTRWTcW]VfbQJNYNTX]fXY\ZaVPpOUYZPb^VGc_[X\U\NMR`u_PW[UYcdXVPbdVIVW\XEQ}d\bcLYFU\XfbWURbe_V\bWQVYO^U]U_PQTXhUbfcWO[W^`a`XVTTnWG[ZKcNYTWX_y`mW`ZT`kIRT`SX^ROaKZ`NeNIeTQ`]LQ]aTa`ZOMYRcLPJbdZ`TT_^aAT^]j[\XRQh_Wv`V^Uc__U\V]^U[WZVXdcce]Lgeci\]]]ROqck_]X_cQ^^V\QP^Xk`aP]_]Q_Xe]YkRVRV^er^jhnZo[c]k\Z^h\cXbeW^XUX_kexa\qcSQc{YQSpoTTZ\bfheVc`ZYTUfaZP\rcZaePXV`im_[v_t`aYZwgp^VsTmcgUbg]gk`X^_k]`mZXf[nhXZV{m[dkW]\]\OQ_ieon]^cOZkYefb`\ZsZZQfefWevX`m]bS~Zbbau\njSUkj\`dWPdZbdZ_^db]xZ]YmshjO`WWjxb{RkVbYclbPTe[kYY[p]hXcVgQaaVi^XYMkeZ^_gbPYiWP\_WUTgYZV_aYcSh}`kbneYa_[koeScUXjk`_Xpw_eT`\`cgknec_\rVf{t`eeML_g[We[l`mYV^yWwN\wZvRRdWWQcxUbiadTpL[QbZQXZ^^]kcPwyVSP]ziLORrMpRYhXhQ_jYo\Sf_tWVd[OODbcUdk`LPHWZfU_YZ`mrMY~MsegVmefpX``^oVTWk`aQ_[muah`RJWbL\VYQQhaN]daqJN_ea_ZnVOegKhrqSW]_]ZWlV]OaPooegj_dQ^Y_KN`[JlVbLYN_bIdeU\dXhiTFE\gQ\cjRMU^]JY[O\VQUN]hYR]jhI_aLaO^Q_WO\cqgd]s^SlW`\f^dxIeKiXQT\gQXSbWMmb^ceUdw`[EL[XWnrkkVUYVI\g`aO[{yWQ[_U_foUYLRkjoKk\r[cemfZnfsXdVbLgbKQcoGReSZ`_`[A_hla[YbtZgkaYagjhdVhT^k]bTfZZ\]YYUUYlX[zho]h\ivoc`g^f[r]_b^VbY]fnn_vZcYfd\Y[ahaVjk[rl]^MWfVuY`]e_Wjg]`c\o\gnYcxm^eWUa\VatxqgomYcUUra^bh^fc^`_`wgSUvjfa[cd]_Zcte]]q_e\cYc_t`XaX__^kshkdZPeZik`udl^`\e]^n`jfb`Ib{f]``iZbn[hozfk\\h|hSaeqbTbg]fb\eheaca^facjZV^bf^[^d]aTZNYf\_\[g]ce]cUb^\WmridTu\[`YXnYiqig`nr``egRYZur\ncm`]fcfc_YQSclgr_jZj\_lr^b_NXXlqqalT]eoT\cc\cc`TSejkgqfjmhd_ileZ@h^ceZNU\YdhlWWa^Q]ga`kg~Z[]cXPYXoig}Q^[VfVfr^U^[_jUXigabkS\^SSXMoWcfYYe[g_jktP[XfVnlNeN^]UV\ToIXh\fbcbXaTdWekU\lY][UgPqeMi\\fMhlweb[cqZ]V]YOZadW`UaSfiapYeaZyQ^[XXfPa\gOdZ]U]\OIaVf[cWacTXZ`[Xd\qfr[|]_cvVaZWSiSfci`foRhOb_cfU[[[iW[UYa\]sygT]e]Olgl_h\yfd_h_YgK_ZpXgcR`[^__UxT]`R[[jZ\qlQ]fJn[oMRmRkmIRbL\QT_WXVX`WbfXn`LX[tksTbf_Pn`aRaXq\Q\XQPfcoe]YXTaLZVWdIb\[aRY\_c_[eR\d_jcQZbcydOUi\KgiaYd`_lhwn^VdaT[dwdQ_M^^ZuUbXpUSwRUifne_T`UXUZ}ZhfLda[Vca_NSaOT\hmZUaU\]^X[UhQcPgR_^h^tj[aWmQ_Xff`gYXIc[b`U\da]TUdTTX[[J]\bNaUQkOibZZacXgVH]XiPejCi||Vf\\UgU]V]b[kipJmu][]QuOehXLhVfre\^U\bb[Y^WyxdXGQkYbzUXlbbh`~SWLk]bOgSUcPS]dRXV^[cUZp\ZrV]S\f[Oi`HX]`Zf\`[]][bTi\kQMYdx_vzkWf^Z]E\]]j^kVncl_bGYXiWYeXcShbZfaSTHRlU^kUk_gQYfou]VmT^NjuSV`cf`|Y[`VpfTjYTo`QWokv_QaKa\mkeiZpPY_V[Zk\YXSVd`Wi`k]c\WX_bcL^x_d@VNSgLjYHSS_YtS`[Tn]gSd`hp[Zjg[[GXM^eZ[_ckVI\a}YZNQjV[`t@pD]JgNg`Pdnfyf]jmObmprs^\abceTZTQ_Z[RniOehv`[\~^RdfVbYo^\jQZYbsWgfZNgg^J`UT[hi\ZQhdeXhkgO|`[^Z^IhP_\[feL[_MTmIe[eiYZyU_j\`\mhdsS[diOn]HcYSfgeZ]SZhUZp]_GaQf\WYYUx]lQp\QRVzh{WdUa\do^mTV\RhgOb[ab_hdn]]pjmQ^RWNf[VSVZ]TrTaSZT;a}iEQKUNbhXZLOGPcdIPdUn^cUMTd^Tcq_cgWcb\adG`PTjgO`afURVS_KgtPlUXmlYhKlTWcVfLf`H_o_NUERVui]NjLq`NeTbg\zanKXUaZ`clJMdiXj`X^RXPY]UdSLlTbJrS\NJYFSaRq]bOL~Qmb]QZe`^beRFPQV]UIZZeQr^\UrPX]WSaOMgmaiTS[z\XN^fMTbZUZ8[`oYS^RZXLaMWhF[lIXH[EcaKR\bsCY_bWOHSMUyOm_WVPOZoaOneTViIQUSjnK]cEeMXq[_uQlgknbf`ScT`ZgNHFcX_J]a\LWX[^gYVHWYMoLdjtd[SR\ddPqYNYlXW`N{Xl\LMLsOKIHa^\sRmnh]Z\`_Z[bRZH_fKZT\pV_nOU}^XP^XJ^P[PfLUaMI[SVb?jPJKWVYK_\DRW^ccTQOagPPWf^]Ueh`Y[[[]UsVri[]ZKRZ`TZ^bliNV}LOVTUSRT[_ecY]Y|OUJZU]S`^`HOVH]RQNWIbPWa[iDJKkOYBKQE]hPaVg^JZfPM]^ZbQJgsXXka^[LPfX^hUQuFa[QYZT_UOXnMW`c[ZLTXjm]X]Zbc`GhKfVQ^b]a][{`F_VLPFrcRZ^G[[DPYNUb`RP^YUaKPfV^RK^lWfpob]`Rj\aW\Obd_MJhXMWTVXO\G^kaFNNmhP`a[\WcYaOsck]Ma[XPy^QSOM}YdFNKRTicZ`[oWcTidbVHTuXIRp_ROMUUMrnkW[ORR\QF^vT^YeTLdQeOXhQ[^bTmW\TNnb`ZWZYffiV[]][gf]R`RQe[`OT]Un_WhcohUamDhSde\JadXW^c]TRPbW|qf^wf^QZZ`Z[]RbcXVXuTW_rVkhUXOad_XOt]ZcUQZZYaZemseUPTQtOV]TRYW``Y_KqVcYWsWEX]Pa_\VbXWCcnYgp[U[fWW]T]PS`cW_]YT[\NQ_mZNaNcYaZ_PTZeNi`lkQiQcQHc^OV_]agTjrYaoU^aYSiQ^S]qffeNqCZhgL{aZJZNZ[biWhUSYXQiTaTUVydh]hEb_VW\aVX^Tv`aqaQKVJUjeSR_Y[VgNIdSRo\dfq^V^kO[H`jjbPaLwcb[ZgvbOYo^]QPfpS]UeVg_La^HdU]KFekjl^\cjph[awYVR[aZUV^bm\\iVX_baZYZbh_NZ^WIL[\sOZVpdboid^VtiVlOyCRPRPWSkWQ[j\\f\\S`N]gZiNR_i[a][pY]^RNOXURPWPSXRRUNUQRMTXUSVNSTSORNVOQPJNVQVTMVOPPQURXPSNPTNSLSQQR]OQUUKVQTRMPLPSSRXXRSTRSPQSPSPRTQRUQTTXTQNVTMNTSRQTRSTLYVQQOSPOQRSSRSTPTVWRVUSORQTTPSSUSUUULUQTTSRRPTQQQORTUQNTSQRTRUOQOSPOSMPTPLYUVLPTTNSQSSOWUXRTQSWTRTXRVLRQUTTUTVTTPKUPQSRLSXOQVTTNRPOQTSLXURUWRSRUVSPOTRNQRVUOSORTUTXQSPURVTNOPMRSWVPVRWQOSURQPNNNNRONOPNUTURVZKQNONRQQSMRRNOUKXTPRRPXNUQSRSRRhRQORRVQRKMORPQSNTRQOPSRRSUPWOR`aWn_^gTYh\jRU\c]dXeS[eE`Z^[^XTsTKQ^yVYbr_[cX^ckfP[Z_fKcY]nazVYfl`\VSfl_f_yYZb\L^eV^QXS_RFl_HblPWrWWHWTXgWZYVK`]ZfXRQZH\fXjkISPTWecOa[QIMPr|Su^FX`lWPGVWXJh^dX[e[kYg~KRmWXW[hSkbR`EQfUQX{WglkicxNKYpob{e@kZWjeTS]lQnURbaWZd`iLemIU[YSQ]NXfPMZaX_VQQWJTR[p>PbPDk]uP`UaqJPnhPT`HWgNeiNU[aYRQTWXTZ]dTUVRZ[P]tbJ`cENUX^xLebMENDdiV]_uLK]gLENk^VX^bRM^jb]j^U^[fmZhgPUdQhUowfiTWQ`WFLJc`pVJoVaoWilaeemr\neiclhV_hpbzWZsXlb^de`gcb`il|egmZemepgOqfcUxb[usiowmVdqLoa^ki_fpcs[rci_`jXgz]kVnoougVmmmfsaco\eXq`UrWc_[aagqVoLotXpyf`hZeumWru_dadiohc]efhdu[\dgfkffbngbdgs]JaXpndo^rreqgbn\j^`ao^n`VouTpQQkjZnsmbjactabfXb{vuRsxxtYjvd|fQ`yf[sizVipe[cgj\sbufwm`f^lyYv`lmiktix_bSfyhbmdbQf\x`]oi]vcZ]qcaxy`\kvZzuVo`YdnuPkb\[vifmWyi}mavknXu|iZwYkR]_]zgamePsuQz]godXg_`v}ZVuiYd|Zjo`iM[YYlj]xjfc_kSOXrVWos`]R[Q_n\ZjTPYVQT_[[XgVR[mbcViUtXd[w\dl\[ibta^Z]Y`LQSkarG^MGwg_R_g]SWoWXbf``]fen`Rfd^`U_]T`PLcgaTUbo\SOLW^MU`Fbb~V]aeaede``fPYJc[]]^mfan\TjXUXgi_SvkUZ\ueY[ogMIYIklhoiadSVdkcrQV`\XSZp^W[c`\bTmnc^lae[UevigVZroSL]\bPQ\WOfWe]\ZZkWP^[WPgVWZcR\ZfUVYdJ[a\}kSr|S[U\``jRQhaTYlOdi[rQW]Q[gZi_QY\^sWZdoxjeZbcfk@RTil]WX]Mnhd[b`\QUZcvbi]tZ{jWneb_oU_GZ\BCnSf\akbT[WpW^RWbbagVbdZm`VW_]Xa`UZjgibdOnR`hVYYQBRmkbTZZK`WXTWeSMTc[Ilk]`{dZSXQQntpgOtd]EXTuSV`_SNOd_TPUWF_TMSRUXTO[MNsf\kQ`P^Qfa]JPhSWQUQSwc[QehQfXeRdXTM`P]TVVXTF_NeUX][aeZFNV^aS]cUQYamKaRdfwRX]^bn]gMJ\Sj_jYdRYVam_ipdh[][XZefV]OSdce\[VL[`XPNaaad`^W[_S`Oji^OakZSO^N[Zibi_OQ_MXTVdsmjbg`vrpbaYXY[jUToY`^jxZ{WKW^YfiNR^T^T`fWfSRidZQJjPMYShIbRtlNYRIPvLPMLnHQcZdfZZgaRk^cR]Y[f`{NVYX_Vi`rST^S`ZLRNVWV]JRZWbYZSpUUYLbaZY\V[[S\Uff^UUpJel^Oa`PRWo_YHQSK\^aWJbcX[WTYLKQMaSRTnnPNWV\ZhP\^^gQmcgeVJPaESbM\alk^FfZPqV_]FEM]gJWFMbPP_wlVPheYBXTf_dub\KV^UbMXMf_U\VMY\YXd\[J\NQRtX[O\Xd`{iXTanTTHV^XiRkW_]c\fY^dW@VjNEaQKYhYYhnYWW]Om`WZRgf[daeSZXkOgfT`hwHSPd_aOQM^lRnaSZHiUa]MC_^JFWV\bR[SX_:Uh]WhTVU^dWaT_Va^N][Z_\DUgdNWXlV[oN_R^YM\edTPeXdgUecVFZUt[J^PYSRSUVXn_RacP^UeX\hfVSVhqe_NQTqa\gYRVZLWQie]YUWYVbehXdofefHO[_HaYIT[Tall]PaogZQUXYkJkZWWRaW`d{f_U[_fzdtbTdXYd[bXyUGYUZVpeQTUWPW`^gPc\U`fYnK^R_]Rj_RW`HfbVlXQebXNSWO`ik\qaodUZ[_RZ]a^]adaTkakmbkg]bbaTHZYfW^gZhh]V^Zg^f\MyQ_fi`WU^gVXWt[[^hfadPV[ayt|]W]`K;n]e\ceda^_`i~cYlNcM^^g[X\idbU^ZjePkTeYPmRVeaiX]dp]f_\Ox[_WUQY_cWel[gcZW`U\_R\NeUbPo\pXON_\L`mW_tTRt_Tpa_^vVYquYZcZ\U]TQ\cc]_KdcRf[g`e`i`Qcc\[ZbZZ_eqZcYbUgcSUJl\PdclVWp`PTJW]TWLEVEV\ee^MJYWVTKRQO_Xd[]]XHE^]QREHJSTZYGRZRZb]V\XXWWWXL_SZNOMFUYgMQOK[OXMTXMVKYWTXT^MQZNVJXQFOMX_H\QNR[VPfa]oMYTTQNTUQVPUZ\VQ]YV[XcRZg^KaV[bU_]KXNjUV`VWdRWY[N\FIY\JZ^RRVD_`QSGa`GJfU@VJYWYK`WMUdahXKONUTXKENbRNUOIGYi[]XX\fG\VTZ]XWFX``V]Y^S^UW^JOTVSXN[U^H_aTaINZOU]e\EM_TUXWXM^UA^QORLJGUVENL[UIbZXRP\NPV`JR]\PPQTULP_QX_HbMYVSTSQ\SQITbaYROXcWLYUJ\V^OJH\YLVUaZMNSfSTJdFKNWC_M_[OVSYRopcfZUSmTxLaU][cb`RTzldKXzVcwO^]aM\cXvP\]d_bmYQCbYQc[jkJ[QvP_^f[lm|aSbdRWU`W[JRc_OU\_g\_qWoOi]eT]borY`iSb\YSlZlsn[Xh[P`bpkXg[`nQYUmO\aN[UW^cVki=kpYqWVtNhj[taVT[YMIYOelaYVabNbeYMOccSe\]iMLuT`gKT`LfURYfl_N[_sY]Xdhegi`ZJM`MpGc]oXnPfe_bG{\abdPk\V[[S\TESa_uQ|dTQYbOjc[SWUHVliidfhSlY[P^opt^]W]fRQo_Lm\ZSgahTUZlt_{Mg[aW]r_SkgESqRoe[YUWU_seVOYV\XmhVxrWdRYWadzRTrye_R]]nSs_iv_jG[\PX\^WKN~m}}~w|uzy{yy~}y|~syt||{}ruty~x~y|{{zwzsy|wwz|uz}|x|k}y{ow~wzqz~}iV~duio^M{bgTtlCfdbrcvbpy`ozjX]~i^nsZM`g]hGqgc^sfi`pwp|rglUdgukp\imnbjhsZ|^kuXdfintkXSOUggDacQk_TgevFUS}}b[}[lg\bO_fjmeai]rzlz~i_hr\gx`iujgigdrpfy^lxiddiddtjqskZX\tsvYafeZeWlgcRiekxu~Juzr\d[HZyt|QzsqlbOj^wdilbYYXrF}{lscKqezckYgkw{g_}pm[omJpUlp_lml_YHbe~diVaSkKMwfkuo`xTiubr_]p{bkh|ykbx_mk_cnvj_Ld]zsU]izk\`d\^VaiokZIVj|kk_wlz`cpeo[R`_oH\a{ndgowQb\^XVT]WULZ\cfc^ZQ_QXYV_^dWZ[Qb^YX@ac]W]QOYOKIbXmYQp[lk]acmaTJUaJRXHcdQcUQS`kn[LLOZIxxH`gndL][LRRbbaWp[XcU]SdYRYlbrdMJVkmn\R`X`gabtTSWla_ddPQllc\TVhaTSZRXlbpWMMQqPhnlSrONlXXkWY[njr_iTLZWbOH]\PTMjY_S\_LTZWcc{kNZvWd_[I_cNFLmaS`u[UbpX[k^feZXhZQKGHOZoVdCQXcYp[Oa\[WY_g\^UMlWCeVdRgZWHV`mUa_UNKTXYjnaYYkZmVeMaXRV`OZDK[dTeNX^\ZYUZiNdjQNKNnM]b^QUZmcS`^^bfUqXMenQ]nh_[elX\VYUYhL_LRDhe^S_pe[bpUkhbIrjRKOQivpuvlfZ_YUzSw^JfbkwG_egrlZjO`a[YIgQUbkTVUqeam[rbRQUYjec_gd_olR_pd\WbSUfl_PUb]babRR}f\]N`Y^HXf^SvR^juYM\ml`]XcXUgV_oYTb]iwgUaojpjmhxfUkSwXlVW?~fZuZej`kZCU`xVrW\miXmf[eU_KXhhhfcgeV]bcl\Y[eZRTq^ci`oSsPZkYZUdac``_R[{G]Ff|XabLNPWaR^Yb_dh>_i~KYriTqziZ]\Oblp^ab_]kejT_[VVk[NUYY_UcZYe\^g`pecXVi`VfJLLBOpkV][r[e[iQ]M`g]]nhY[OYPX~|R]K]d^nvMU]OLjZK\j^i]g`^VlaudUmiQWTt[]j`h[V^Vu_ie^h\g[Y\k_NWaqcc`mhaXValQ\zWd_oTV\TaSZke`YR]SY]f]^TQXfWopfaxXv\XbMj\bmQ]f[eKWc[kb]c\gMp^YbWnWT^sibuN_^^V_Ve[ahWWUkXdZP^w\LaLrlUfZ\cT^fZUWS]^Xp`c\^dSXQYdndWUePTYfQvY`d`ZjTk^[e^Vjs^fToZiNUSQeV_`MUYb\LkfPsjWPRmc^T]dyVVfRTTdWZSU]][aa]Neg[`XVTgbfdie]h^WgXcV|XhXO^Xxa_aX_^~ZZkSYTXrQUTemm^tU`R[VR_j^dpkPgV\e_^g\enJS^hb_i_iFUf[YaUTYal`Zc\YxhqbYVQX\Y`PTbFS^j_Z]^\^g_\cSIie`hGV[dFduEfUW^RwuUw^sVQsg[LZ^eTV_XfSSdY{_POfHK\VgfMeWdn\YXcu\VZXY[\_fSMW]RYogQK_WH|ZsVhTmlTjkXXf}Tq{oZkUOTM[]T]OZ^`O[diNROSOanYdbMstZjNORUhqvSLVSri\`fndcjCZ_\PMZiZhiIjOhQY]LybYXaWIiRrrYMiSJUbXh[b|L^]\LQwLWn]XlieK}{d^CVWHpZNoY\VecOzqcL^fpMhfowU]rhS~shP[bpgYogU[VXPf\v`kYMRnPUodIOaz`]QcYYfPY\MvwxuQje^JjtUX[jWImdV__b_]pUogUVeWY[POX_QiXZ`iYofpfcTXVm\bfSPbfXsVe[VkXKKab[iYV_TIQbVV]cb]nXkv[ijpdpkecp]UWe\kZkaky^g_glx^ZluelVbsdk|a`z]fnshhql_Vpik_^_`U_rekclit`kbqh`w]aZzznrpq|W^}daXtqbcbZYidT]jnmlgjylbjklhgZ^bwav_]Zg_si_bzhcqgMZjdesh`rgsaeogd_fz[c_zya]gZgkbimsq`lUYjj]jrmeXosqa_m`bc]Rgb`iqn]hn^iQmVhW`bolfb\j^rdYfucWfju{hanauoni`odut]ziN[jjdeTh^Uh[Uubqvdf`r\rm^l`rqYqrjZjbvmfkja{`lpdbqZikkjange`\umb^jdWnslugd]ehfh`cqckgoMcbtkgleucldqelh~_ji`[_|\qdbcwhYOWpRWedTRdPJJVa^_lLdMWY^c~VJl[Zjhfdbm`nbeWWbz_^raa]pOYSPgUQVy^I\k^cejNTQ]kgiVVUNNVYYfOiThVSeYM][T}YIYkahIP`RLWRTVRtQ`jR_@cdeXUe}LYZaXd[HYuPWHhfNVZ[g`GUcXcTWUY^dfMV``MVVXSQaRGUXS]_TUcYov\b\^yOXUPZTSjbKhZgDicMRgUKYO\h\FNTY_`ZlaKoRd`QQMdlREaSoOa_oktXZlMcnU[TpkRTdaQ\P\_ng\eYa_mZs\`UXSnfTXXmlYe^RgFUVUS[XYYhaNQfd`o\ghQTdM^TKcj_YMUUbi|PFSf`TTPTkcrWcUWi`bXa_TURMVPa]J_IW^MfENZdYX]by\\q_UaiX`N^eY_X_YXY]Wh\]ebb]Zp^[sJUmim]RT_\\NsZYNiqWbseXmm[ugWab_^]a\f]fbj`YdeaW[giWgTcRU]ZNYSzTf^M`cmWM`RXrfpdGa_cnW^`b^U_d|Rt^ZXcmj]cfXajMs`jUUqs{bXhkdbcrZ\tTeWgcdUUVMa_Q_UT`PVtMlmazPq_QYTSXsQ]UWt_Lvn]nRSgbiVmWzTkZ]b[_vY`SUggbgNeW\_nsdhKLe[cOskWW_ya_Yf^ZTd^[\`PpchUjg\WUPmZcO[eeo]ach\_S\zYfhfjl^^Z{X][UYfR_Tc^XVj^iR[Ug]ddreZXopam]Ugpj]kTSWe^ad]_khhTQGokeO[aVcoR\c]Q]eiQUk`eUrZ[TWWZRLeE`JDPGRR[LOE\TRM`RPL7?VIOY[KTZcYYMXT^dUYcNIWWOVa_NLTa`NF`MUMMWG\aSROQa[YW\a`\@]BVcZ[Q]Fa\^[\@:[GJYKKUB_]RTT]]VObP[KO`_OXQc]LZR_h[STHd[IQ`a]ghkYh^jnZRsfe`_ed_gsXa{Xv]\ZUg\WbdV`\ohgpk[]gcd`_Z^btiaceebPdff^^mom|obmki[deiVX_nktiKac~jqa_nfgPY{etXgzuthy^}Xacjxnc_\sWqVTfYifoRwyelgp\jj`igYNi|_kagkX[S_m|nw`]cpa_fcoxq]j]br]figo\\[[[[tc^f`]pTrbZgDasYXli\geslOgrlZSjYiei`ycajsYmf_yhehh^knLUldbYj\Wb_mdV|Zk]r_\shqbXhVab[ZZfXv]rr[iiWyqyxsF]Rd^ocip`eR]eukkkXfX_webuTcYpiwdibR]csWlRj_Vhcwcdev}Yesk``ptlYtPgatbUfngRep_]R`R\`_^hgYi[Dq[OdQdQ[bZVXU^aUckce[\[romrqekjY\\nTeaSdPXaW]d`M`U^ZPZXb[\SP[fZjEWMVSblR^UYTT]YIT[paZfxFmeL]R[dR]iSXVHgXbLVfe\O]MU]yW]Yxd_ml^gRR^bQGV]mcWPVVBZlqlmgSaJ`O]YzwXjVXSWhhiWRPXbTXYY]`LQwZPpfgsV^mR__^e]SSU^icdq^djfsX[kuc^VWde]]gactcck[ba_RiZmviKab^dhaXoYPqRK[pSKfVdQibY_y_[SST\b[_LZjTu^lcVVOZdcrYPTNQksWXcipjQmYUQi^Z\_W~I_f_vWvqfI`dj^VdTd]jiZ[\YJMMgZsObXeUSVXiVocx\MYIY~agsgRaVOpb{g[XYKVtWg\ftb_dghaP?Y[erX^enla_ekRalo]Wydzs~YboZnx\nYOqWFtL]YUikjfb{XfgPakWWx\dtdfZ[[ugltKMlPiYJsYSZz~\b[pzK||ZqNtef]~\VXeh_faa^fq`GTLhb~\wg``J[PdWsbj[g_e_eUrF`MshKcZbnjJ_ZLlicivjPLee]Yb?[bL]\tkmP[}qbiWXpb]i_`YytconTtYqZ|rYlZmaR^ZK`d[iGxcQgVYobxqlREUos`ilkh`hp[Pej\jsqaUVxUnmYPZRwbM_H]pMrG[RfaW}kdTtZPZoGnY{cYiS^T^i[{_CudfVeV}m[^SeqXiXk^VaObohmyT^_hqVgaXiofVfbd`PYYfgR`TehE_VTUZ]?wMYRbXx^tpM^[`Z[mZliNghRvdRtcQeGh`RgT]{cZnZZxalqRWRgOYixajp^^[^KesW_`eik|RS`Ti|a^UsdauTV`OkIwvlb^O\Mja`bXaloKCPe_L[`YTX_m_TkobjpPidmiefuU^`i]RiVwcl[X_Q|ciK[dT}|AYSPSEaYf{bm[UZmg`_T`pebt\_aqPWO[_Zidv\jOPbXXncp]rX`v]^frEXQ[XS]VKwjXy^]M`Qx]WZehDimeTvfaX~|vecVbz\PwKZZWURnURW^XnbVusjNcng\faaRSXjGVi\f]\P\RSPVTLR]uq\qm]TPW\lkVNpp``MendkPpo]VaoZMlankmfYu}vupmz}hx~dpxwj^gdhrki}rdkpyeon\rmmmtoqwowkvi{ighzjxwwlilzl`osxnrrjlvwnnmrvi]~i^kqjfko~oh`avjmlrrtksluqhrembmn}pwwp_l_swjnsmzlmcsu|umttnslwtjnqjdqipvnosrzdmpthqkuvtjvukjxzurjnnstoomelbzgkcmsmhkuxsfsrogpvszgtllthv}tffhfpd}{uljhsl`eqdtmumzjnst~rjtqlomuntjYnrrbrrmkvtmrvmjwnwkipf]mtgiko}n`bvmj^u|`owlnlkjoiwhgezshqmpsitutgtvhtvljq_vhp}ej`qWmjrko|zplnmjtq^oplu_nmqv]dmka_jYXEQQOVRSS\JSU`R]bUZXLMNZXVMYiUXVTUM[QSXXXSMJBWNIZTFKPNVlQ^YafXCa][__Ve\X[Zc^OdYFb\^RZYXPS_[W^Pc\PaRbS\[cS[dUVVR^VSPajS\XTWU]af\d_bO]WSU]P^fPLZHaU\SPaV_T\UYbWRbMV_QTPNROXbWTQbZ_NQUbVO_`Y][hoaS\OJS_W^[PI]XUZTTZ`RX]_SS`WU_g[YT_lMNPa]cgPWLZ\dnSM\\WZURL\tSNRRqZhNacPkRT]SWdck_XU[cO][_UUbYVRU^[WYU_X[\TfVVVSSR]\dMT\MdVSVhUdXT\\NbQJ`aUcZaP_aW^\]\QYadgaS`PfQhYjX]RKE\[acZaYO\O_NR^VgiRQra\QZk\`kOoZk[_]TzYTZkkQhUZe_j^i[FYadbaORZWg]MgT_``p_XZZ{^q{rLKdTRDMILQa^`VbfYXsjZVi`[odUfb[\_wL`LKgPd_uK^PWkwQhVzTg]\lXTY]Ot]Qxxi]tb`eNPOgZoV\fkHQTkOYTTYbWab^VXjx\i}La`VjTjhRQ_dSfmsRgcdTZkThtYXO[_UpYNYh^m|d[S`psdU]VZWcppWbvWXqWuXfK^_YXSqshdbQefrc`^_nVGXh_S_RgVhIhSOds@}oK\diuTTZubKN\_[WPdpTx]yWhhXvdelsMZS_dR[kNfUuNR`Yi_S\fO\eWmsXdfKZ[cPYWVamOVeclogfZcSQbZVZWg_Ne`SyR]jT]X]X\{zPU|Sel]j{U]kVQgS[PTV_Z[`UffndiPfUZ[lmIRWObQ]d^bLe\dPMdbYSaQMUJTx`wosbXUaQfmuPMIlmaYnbPI[SckYvQXl\gW]hzXbZwXlH\YS]hjSPbN[L{S_^YcqSThOsYWbbu^P[cUTWbUY]UYkTSp]`MgcfUs`daQ^OP\MXP|]UYKtItb]VUdZbW^]cg_QUfibw^RXZhZ`wcbS^Pddb]i_Tc`Sa`fZi_O\bVZvNUQbUTr]lZgOdqZhsV[\LUZQ[QOxQUsTT]_jZsWoFgaRwRWUybgS]kpUiolOgj\PUHRJxNzXhCXc`Z`\bQotS_\ZiV`UrOV`PZeVjHWRIRg[gfl_\]WIaLZFT]m[_kq\pgXUee\fmRaesqqdTgkirslmqqan_ql]]]tohgjjqnXcWeaaYoXlkkX~btSrpeTccj^`_}mdcefgZM\Yf`c][ThdQ{mk[pv[\dm^\dhejhdtk{kc`qdskhtfLcudXhau]lwujeV\xba^t`uwn_cc_UUWcXevpejV`qYV{{\njnk^wrhgll]dolldkgfmecc`Twlx[~necSja]kZn_`~OmfcrlqNip\\NXcRdncua`zYsdlqgVvchMlW]m]bflkf\}cbyWn`ijatpoUjdZeP~dhb`ncwlrUdpevXPTelRhabm\nd]i^l^ocVmapb\iY^TXzYXfRUtofjgcYjmfgaurQ]R\Vdccgcj^ZbTL[bj_WqsjfThil~brlW[RbWNjkO[lZd_o_`l[YqYT]bnTcgRVdwIUUZpZU_jVj^UhNYTa`a]pce_QRTLgNeZhmPa[]ccjmZ_\[QmZwYUV\gpxSdm[i]YdiWZ]fQ_t[TUillZYkQgRiXRqUkZhZS`eXUtd]QkcYbPaY\[icjUrFWRP^jfKOVmycb[Y}Tnk]\a_SX^eZ[Y]Y_US\^_Wd^cPsj_daieYmVWq]eZXR\NZYnc`[XX_b`jkiUiYZQhXjJZYZYSrwKXi\boZRZdab[\]Q^jTT`fNb^`OSZVPohia[OnZ\`RU^a^ZecSZa^^NSZTYMjPSWbdYjWYZYOgM]nrXYaLHaR`exb_fTYTkecavhoWjnycXXReeYiOj][GUl[[Yr`VNMW`kZldZUge]Xc]MjF_itnew[h`h`tf]u]\b\WgTwhej^VK`^HX\TUq^YTuPbn\sN`_k`Thg]`g`etb[UlOnk[[wyY^_fdaTS]k_OfTNTdNl`mL]l\iolVjimJaqQkPr`VVH_VgVWapgc`f]bb[QDJ^g\XzRYgm^insf_[VWfV]\j_Th[liZoKWUXYH{pa\``\VRSWQ{Ow`aWj|ZhUU[M`G[cCUeRR^][l`XOobl\eoSR]\dg]\S\_VLxadJ`hSUW^XQWLgVmsdjpR^YWTYzO]XfMoVWVdp[ZU^dbHPU__t_[[J`OgZS_UT]Z[zyTQUH_LjRh]icqhboTyY[|]ee_eZa\WThR[_]Sbi_KY_Wc[hM`\dQc{gftaXt_U[efmsa^]cWv\eoT[sVWgZt_bduV[PdYZhdfkS__msxP]Qjg\b[gOM_`d\Q^c``d`_PT^^[Ua_`bXglQbO[`je[UWVi^Xhni`ZrVWQS_h]tWjXS_OyRb_^VZ^aPaRhfkNParUT|cV[Zc[kYyh]b]ehrVeojZViga\tP{o\gRWZUVTMeVklLSdaYve\lXeZ]dXdWe^VTadtkv]SXhh[_\qZZZhKdrTVoeqhNiWmaoieTy]R~iZ]]]YU`mQuVaO\hg}X``~UVbU[c][DbXWa`oahMJima\bjVm[K^eo[[i]t\KduOo\TFTqmuY]bdV[Ua^d{_Y\qQPbT\cc\_RQPX^`YPs]`v_pm[ZR]vo]jjYaZoUcORcYi^SmlVx[X_thtwXa_w[b][fTlY^YeaUgZHi`hedZT`RbmO`rbPnUb[qel[[gPV]yiJTWfgITkSeKr]j]S]QY|bt~waccc[inf]P][j[RVqWb`db[dlObtlg^gbROUWRkq[`pUl[_zbZt_bLZuW]iZiYi^gdlnvTZYPWleVb^Q`QhRlId\Y][Tf`W^Kg_ej[aeQh^^aRZlVUamrTQoSh_wb[d]tPrVhYZ^Z[nW^TVemh]\OiXa_dQNTfeTmIrQqa\[Z[[qX]m_piXcXW}^\itg]aNdXPOU_ld]bCoXTaaNU]i`bYk\UZ[pNfRWPoQ|`aqcMhRVc`]UWScPRsV]V_`TecbWjlphgnUYYr]_Xpf|MOVVx{YaQoOU^r^Dm^UpTVzx_R`cZ_J]\]]ZccQXbgSb\d>X]_J_gVdW^o]XPS\^aj]ZdT\iT_WVR]T]UYk]h\[QMkYcJiT\gRR_axM`U_Zc`RO^NWZ`LK\a][VY_pJ\STf^]bi[[VTXaQQTWcU`kQTTPbf[caV]XT`M_W`gbn`Z^YYlYXbLky\Zc^]bwi_XR[\_vp[U\ZdSh[ObZtY`mHURTN[cwWae]QPyfcFgYTFn\cSp_bga[ZbO]brgcfp|gRPbWiWUdSajZ``d^[]V[YZV[dZCVlG_`emX`hV[N\npW\S]SP^XZ[S[QlcW_YvbXS\[Y^cg^^VoXV[W\]acH\hb^DWcd\Vah_dUZHR[\ZT\ZbX\[Rpri]dQYbb^abbVlIc]RnTNbS^dbj`NUkV\^U[keXRO[JfPZUSbWmFI\U=_GPUh\TJ;jN]LNMULJTNFJO`CPROSDOWYQTNQIVWTK?JM]UCIGOVZV`UJbRWZK\PGcaUPZ]UNNIVMK]`MTLJYLUfKGY_N[VUCJJNI[OGCX]WORULH\cMIRWZZU[QEZaRO[^QUWSgLO`kYEb[SUJhgLOSeRpUNGSOQe\[cKHXNLcUYJAU\Z?OS^TWbK[UNaRYgNdUgYeJS^[kUSTfQw`JWkNwFYM^\jeB`ONVcMUdTXOR`PRFQMiGWFTeYSTOTSOQRSDMUQVCWT`XLON]OsSTWaF\EWT]CP\\KhMK_PLNaJW\VMRLTVLCJMdHQaLRWLNVeU_URJOVP_OXOSP]LdUW^VDIPQSSEYP@LDRROg^JYSVPU``bjUMZcc\^hHmV^IbgfdgSNPv^^s_iIPesXXUoivZng]d[gcadylsncZgic]]OQozbIM\Xf_U}peaU]fUSXZ[[hq^fZTv^bgSfYsagZXT_^fPidn\iWfZ_Ipcr\`jbm`jzYuhc]\qjGhR]Swc|_^hlaalWaYeVPeT`_cQrksXkXoeii`d^e]c]a]cJaWeb_i`[un]S_Wa[d_eZ`\ZkeVvlY\KnVke]aSTfudK]^Z\eXyn[eVH^oa[fSbW^Uc`]]ai]izfZdc^Td\va\XXLT`[dS`f_NuagWcsnOL_TKc^ZcTepgbT{W}nipu[UgYeWjc_tsZSUeuQod]b^][[[aVPdqSiPlUUjdMqoubZVl[[cPPeix_wVXgCMGGMUBPZ>OVJPC_PIPGOJFVKRSQSVX\TAQMSOOQKRUVUJLOPYSILTH_afUNSXWVKDNIQJJQIOTKAJMNLQROK]QCIQLOZOPWG[MSP`SZYNJCKGDQ\_UMQKX_DIC[OOOWY[AMUPOCBSPNQSNNELFS[BQLXUiXQRKRZL_SSZPSOETMKIIPTP^>KQPKTNETIOOUHKGKZKDKPN]RIQU[UOLKVLY^@NUSPOZS]WWSMWSKRU[IR`OF`T\__RcPPWMLPHWORRRPJBOICGXJOWFKNM[HPPMHGUBYSVZJFNPRMRTRAPTII\GIPaUH>NNN^WHKMLFRLIQJNBA]JLNMTPKJZOJMQUUMVXR`RJLKKYXFTE\PJKKFLOPQYV[JS7GOLfOK^QXUeuKifVIP^]tBSQB\\eoYOYnp]rvU__\l_[MXTaM]EFjgc\cvRi^\\cr]QD[RbNWJQcYx`JG`eg]pbpklf\sjNR_QZiXC`[WE[dfcgYNeu_Q`ociHa^snw}[E^^czZLpVuRux{cVQuiNOOO^MdWx]hTeaXe[cdfcYiR_aahfUgIdYKLn]_TShdjce[gccVTkddmhjPA^GUf^VljpNX^nepqOYx`cpKIaaWgd[rZvb\_^Omet\iykUIjUZaSJXVf]Ydl]~K`TO\FVdYfOSaY_ZZiSkczRJn_vRjq^dqUdf[XdRUkVhVSg_N\Pc`niE_j^bTk^p_^lfb{hjlfNcc_hYcBkm]USXto\^_qq]MX^PFQcQH^]gSjlRAicfrZ\U`pT`fQkMSZYTTQWbL^Nc]VhV\PQUe]VrTWOyRfh_aR`O[_UOSVlWX\eSIT_VSZJa`Tvc^jdGOa{Y]bNU[\X[XUL^bRNaIVjWZcXY\YVU]Z[VLb_Wh]_aYRYlvV`YcUQX_Ke[WWhVH_XsW_ZU__Y\bvVZ`dO[QThTfeWgdWWeWcZXYZxcR]XQT^RjPS[hOc`hZ[VhY_J[\_gZZRYYXO`b\df`^WaYRWdTIdQbTN[mebb]]`b\`]NW][`XUOS[LWia]cHSU]tWa`J^c`agWe`cWXR_^ln[WMfRUWYvWGYLW^]\]YaMMNOgr^KYXOQJ`kWJWd^kQUVYVSY`T]e_X\XSTbZ\O\`^c_^cqWVP]V\Zh[D\_OcWZNbc_au[ishdXwvg^cZy\_Xkc^b\rbrm\_bqibgwybia_n_mfacun[bd^uti`lbst\qrtfjrg\db\vmh`gjfw`jdObvUbfejK\g]o^gbtyuXb~qsmZvqbpgxkj^VjieefZzZgqh[TXtaYHqoem^U_W__Yxbl^qcZgcYgiudjgm_fzcmgYLjikTmpbsLTddSzZ\a[cbXmorafmftrU[fqc]\_\ZqnYv]jcv`fiipWc\\qUk[ummj[RiX]{lpSd`lXimVVXcbmtYiYgVogiqjX[]Tb]vh_nK\gadTkTea^v]p`ylljfd\Pn\[f^fiuUSRhQjVcX`bmbeXewmjj^hbkhygxkZg\WyMYvWuo[Ty\aU_hhiWT`c]fo_\l[]`T^XcU[kcZLV\gWS^cla\TssIZstziIZcaY{Xsgmm^Yb`pRQVUbSn\YMa_bocL_mMNbpgyfVSaZS[Umn\g\b_ZVegbfeH[JeV]ejkrQbS^UgfOZUTW}`Jg}qW_`sxVVfgL\fdWQoUV^Xca^]eMT\qSXlV\^Ue`VSu{ScTkZS`jb_b_gZ]Za`YaLk_aUZMWucfe\god\Zb\XX]rYg`ae^eIPVhsHZNVdgZQY_^gsaiXdaclkOPStVJ]Z`^uIUML_O]UexS^wXtcdWhceXT_TcfXg_ZcdI`ZicXNWi^afZYPTY`jZWWPQZb^R\V\SY_ekbYtUXTQcfVOWXPife^TcfSbc_PX^o`W\mZmbfqYTStuelSb\bOoZWdd^m\SdbSP[ZWIaHYUYSb]^pTMYLXRX`SLMYUUV\dV]XUXCPTR_WS^`qUNaWRaGhTUSV[`RQXVO^[[KJSYZIS]_]ldZ\TaX^b_XUSU\[[GCZS\_LbX`e`eLXN]Jg_YaeORed_RRTZLbUajZORPZfU`U\PYYi^[Pm\RpIeZeZLPNXb^ZN]OXTVkgFdOKbYRXRSO[jcPM[fORXRA__YPY][`^bU`][YSQN]QTTtLAk]KKZBGDZoh[SX[eQ`W[RWILS]`X`OMQQMTb\]^`JU`QR]SX^^aPQ`WTR_YeUeOPeWNpcwUYXWWRdZZSkTQcY`ZgQ\c\fSRyWcgU^XT`Q]fPMi]Vo_VNXVc_LKf^_\ZLK^LWXVYKoZ[PNNbNd_LPUYeZcgdIr^bW_O`]VXLKXL_^VFXc_ZXZV^V^]`hQYiZ\]QWx_Z^[[\W[\qYTUld[ek`pet^W]MVm\xrNYWYgedbmWbPn{^Ji[Z`i^[T`XNdV_daaajic_R]_]a`]sZZ[Wh]ZXWQZ][ajdYSatc``b[jUbcbiRZgX`Uh\RbY]jLhvibhYhfg^]Z\eUlVX`_Zrg_Zj]_zj_ZQ]XZfYue`ZTT_][RW[OhKhlq_^gYfa^beVaqqaSRX^Nl`\UNajYrpcXRpb[RZ`[dgoZUXYYiWl]\^^W[gsZgqnVa]S^RWXdqS^]Y`^hZWfYfVXOQbYiXRgfeOaU_rZX]_[`bYP`T\TKdYUfmb_`iM\tWcWaZaTWq_OVkJS[\f][bgV`]rRcihbOnMnaQ[acT[`a\[cVYUZ]T]]^YiOsjekL[POjUadWbYVfwS`cbZoNnUSINccPLkSJWSNpkZnZG[IgSeFSWdcoFHUxZTR\ZOQasp\NoU^JO;XbXVNpnqtcX[f~RLQRad`r_Y|`g:QWSS\fYxg[MZerTYWg[j\YfLedii_Pb_cuSRGXVLrYbZyW\^UY\]f\oMbW_ZfcaPb_PTfHpRQHb\[Hnvq]YXSU\qdTEj_aOZUbiWZViXuYQ^SJ\\jdsdT[T\LM]Tg^eXRIOeQSY^ZcmFeNW^ZeSuB\]g\RcKab^qbcd]YP__\]gQeuWijdbLgTUjnXma]V]VSSVSViKekTd}RTEEfCcZnXVVEcQ^JpWbi}edD]xSm\mRxObpW_URjQncYSnZfqOTQXC[QWU[S_b[rUZU]QSgcJWeW^\_VeQWYf]eZghecc\deO[S]neeTbe[j^uK`GwUzxlgTu`[fdX][YYc]^YPOk]dld^qj[[^[IzgoceSsZYW]PtPRccH`RXhg\Gy][t^WmXi`Z^Q^d]YfRme\ohcO]ri`WfeWdPe[dXv}zga]d`h\dUfXhZe_fU`^kSfXOiebVUfNqXnc`N_h_l\Uibd_f[\m^_hbYu^fbrZenX[drisk\[mjsfhl[c[_`Rc^dU\|jVUzgY`Wfsaq\fpdc_[bcYbYZbeqRRu}`__V_[lTpTU^iPWmcV]b__^dUmii\eZ`cVM^]dY[KzOtfbOU`WqxL\`ofcMVfYSnY`\kZKckfSmlHkRYYppWYbX\fi``YheobcW\\cS]R}ak][[a`l`k`xj_ZhLqYj\SMysv^tZ|h{^\gWQfztaajwZOTYsf^IdqeIcgnqYnhulem~\TUZpg|XiUkx]R~[]k[cgVQw}RQXocYactecPtaPZdYXjYaZN|ox^hrxstu~jhlRRQe[fi]sWR`qVzrZleekef}]_`rj_Z`YGfTuexYm`^tp[WtfdEb^rjjZIaR^YZi]XT`ni``r{ud{ja^SVwReipH_p^uNLgb\Y`eZ}]\axudzbhfSpfkk_cree\h_\Z[uh`fU`}__\z_lZZujdodRcwnZxvQWlpunwnlRdfi]r]m}ampWWp^QVMjrWU]l[dLTbwvce\jbj^ebrliy]ZnoeeQVecj^eSTw\coZq_c^`co]a\qrrpjXnccpbNelThdbgfk}RfU{UrVcl_SzNYJQVUeZVkbWja`k\SZc`XHXTWqXQ^IR}lSInM^mgehWGuY_srn^Q`Q_NK_kaniLSmFdEpXqRLm}[]b\reSMObk]M`YkaXvF_X\oesm[YkfZ\Ku[\udESVwnk^r^WqebEaQVk]Xu_P`~bVb_KtwZd^gglNlt_agy]hq\Y\eVkZ]mRWf^hhZr\mlaQJhgmmbeb_Z\\_tVMg_ZzgabanJRclfWedZ]s^gaxe_PUmPpYr`TdreaNlNZfh{`sd}ZT~_JVloOxjVs`~lSHQT\}`ed^M_YYcBO\]pUxdpt\u\s\`p[logWgn]vnmz]ULVb`RUFbW[OsfYSdZWbRedIg[Qam{a[a]^^VaLN_odQHa[X[R[dqVPbd[WGK_f[\iGf{X`QWePibtJSTSplNZI[_YROO]\A_V^VRsPWY\[V^[Plifbzk_^j_U\ed_b_bU[[lfd]]jh[bkhgYxifW\xQdROKS_hRz_|dXMgIPa`n^SbTYaX_uZTlGeYaY}Wc[uVRaYicyY[ib_scLgefRS]m][_vUdzd\[OZ`gNPh^WcZfLi`XQ_Shx]Wu[R`mRvQ^j{rX^S^uVVuccWVa[uc_Tntb`[gfQ`GYmbWSdTccwceli[RxljMiYbX`Z[m~l\Yqee[_PPoWaO_YqkdVh]nTqiYgsbffUlX[\M]h]]hYjRRK_cJ`i^oNrf`o[l^\UTeoWfgbf{_yY^[uS[eccRvh|hJYcsmoa_YlVZgfVmhbfaTueUehRyPi]egQfqbIhfa_dfe]uXhfZS\eod[bm]OYPoQ^ok[L^re]]\ZRUNKROZ__rlude[fRmLo[\i[avPcj[ZRsVjPJlcgg]lbhzUTc]UhHdveefwMOb|^siYvUfcJibig^YXVNQmuF`RGd|sg`q\b`t^O[VQyuV]YQNbkiUOE]_\QmcVT`ltObbOg~Wj\]Tp?QuhnGUaap]dXXaTxn]\\bf]QT]yhdw_MxbenW_SVcSRzeiSlgjkaWhFhnX_^c_WWMmcQtU]h]pM]p`Vg_X[^\yUhRgcMx_Sb`f`uRkzjYeYQabXLM|XY^ZU]Z]kdVk`Wi`hP{UVOQicoaba`aV]fhviU]]aj]ZicerV|YhZ`_]Vef\fd]_|k\``hWff\qrogkfZ[cedd[]eZm]_hd_r``Vm\IWcedVjaebO_^]X\`ZU^cZXaqZSZ^g[kYZaXYY_acmb^\ca}tciaeeRm^OcVdnZcbljc`fV\Z\dYa[`]_gWycf`_agep[a^fcWXmZ_b\]]kdZYkmu^wdo]Vl`Z]b\n[Zpnygpt^`o^TeZ[_Xd\hgl\Qbndd_Z_p[rbg|Wf_Scn]fcX`cmmdWnbwX_o[]fkTc`^jdmhcceNh\Z\[_lkff`ahck^Y`pYVcnccajv\ukW[hM^][nZ`\fqVae`^vq^eWgkdjiW^ZlggQh\lXlo]oeQ]cwa^Xcaghuj_sdc]a`[_`nP_ttR}g`{OKlqUQQk`wvSLia\[WSc`_q_VgsKH`ReDep]nx_RpvWc\_^mn_clcWQtyTdfa@sxjiVUcmjlRW{oSRYfI\VcQBhkDbkfzexgg]wShUz[ycXbafW^\UZbQWjbbZ_|qj~hSkWuU[Iv[TpoqmyjqG?bW]rjpOKfsccNfvkm[hsqXrTqj\Ung[igksLeyJ\jTiUfmv}knN^^Oyh[h[einqn]odZxo{rOVjvQqwPpVj<]alRh}ze_m^R}tmXiigqbwWZspd^dmZuq~hbQxyuecxYsMibdvKm\nVV^FN`PIKbh{ZUIjr{at_Uiyke]^TdsoNfnWzglmSrVQGdf{^^cpzSbunfXhyTpdXW_mqUXfy|P[fsItjnU^b`lsU_uT|Wc\niNWeQRaUrjfL[fK~IcNGdJjYjgXYaYMesud\ihUYKNdkERkzkV^rY^vrX`cX^`[wndZXffLinSa]dhUbLYxMaWhf[Qc\qMSNZ\p]lVQUkSVLlqlPukcXKfl_cjZsUPefOalZWRadbR|[YgXRW_rfSji[jaZ`nxfW_lgZoeeFdgVvh_iqOubuMzblZPT}^XMbl}UUU[Ktw`^jN_rXbdr\ZP[YvkWjSs[YcSctWryIYbp`lffY_QVR_h~hQ^JwRj_sdMsiz]UQpYKJXZkcs^aKUfP\Ou^`^]Ykf`OVetT\vSrfyl`ScJ}UjSbjflp]Xe[thYfo^Up]ic`kbWf`TZizehame\c~ZcYr]g\i]jYZfc_hRin\ixr`Zc]j]^`VjRdeSfl]z[`VkbYspdfdbe`mxeZj^hgdQkjY^^gOWdmc`ecx`^S^_V^caklXcghmvd^WUk\^cde][ibdRV_Ufd`nZ[ZuaUdefePgdmZef\onh\kvjV\i]eb[_e]^]dh`\_ZgbmKbcYWmeubflkc]te\laObW`ekqplmaXzYVbZb]gWcg~Zk^lmdZk\[fjgk^zTckbicg]sZ}UbefWQWRjffad[a]Yp_ob^cpX[eb[rqe`bpnngXw[ddn]mXc\oaWaUapknxaVn`]]zRXX\kcfU\iX^X_andnjmegYbgZcflrbwXjbO_{_MTQYXOJ[WKf_YX[tXrNJT\Sab^TTX`twUag[TSTg__K`EJbZDQTQQ^mmiNf[rQV`T;]g_JaQgQSTbePEFV]Zc[\jWahq_\ibE\T[_jXRgbOZM|UV^qU[SU^O[TZZSod_mZ^\_[mUwZn\OUM[ZNXXJHFSPXYaXzLPgV^wXYaXG`XYeUb[YnZ\_TWhZhXVj]mOczsYdVUNcMbuhb\TOHiVaXgNmL_W^mSojg_gr\kX{^OWI_XXfc_QHPjXsRcdSa`MfacX`XN_gR``V]fNeVHnk[iG]X]YZUP`f]IWYU^t]rfYOMfma[fNXgTp_n[TjXilMngvgQTmuikPLZQLcF\aOgkSHsl{SKhg\j_xfslh\gVRfgUwZXkYnjeUicdfd_thmT|feV^qh]^]ofnzZn_}xXh_]f^oUm{tUz_j_gnq`V_Zbg[hj`RgWb[hV_x\`[^pboXXoai\yT_jgesenzet^ok`^Sn\XVxVWRtcp\ajZ[e\_Yfgnb^Ui[pX^[r^X^Us_]tagY``efhbtu^oVfmllYyf^c[eZki^xiniRsPajc]q_Z\adagntl[`hTcSkbW_gp\wY]tdiv`dXz^kg~]WPgZe`XSMVfc\vcilfdktpgklojxrb}c^ei]dc`c\_k[grc\kk\iTouX]jOfej[ja`ha]|`ZRXch]_~dcj`m^Z\_[idfVamif^fbebXmcgv_^Xcfhi^d^Seqoae_\mfbQQ[Y[blpfpZpPf[XNX\lK^eaYetYxTV\Yd`[Rb`VaaRg\{VXVYgsgf~YcH[YYSUbThboYRgsgX[XSbc^`YbdV]XUgfah`iwdJa^V^lxNefoQoWMcN{h^qnRXX[S\JYX]YSOLJS[|aWWM]afU\Qb_eRgXaHV~joOcT``]S[eZeggQg`Pjb__QarfiSaxdZcHXNae\VxogVrd[eY`aYcD\^f^UcXY_[UgVs]kXygZWSKXkUdSW[MmKHTk`niW^dONc_p[mh]T[aOa_[]fsYd\le_YDh\TTuReZOjqI[aWSyQKw`_QX^YckUgaY\Ze_hSUaYbZY]iti\XOaReq\M`T^S_nqbvQUt^mkVVa[W_oOZ[\S[fPi[t\[ahZ^nkzebVbN[k]ZnbeZgrsnrvcT_nebj_ejmMZV^QkomgX\weqmRnbf`LrIShSgUmbjf_\^TXNY`Twmrdf_cdydYVqp`aLRZsOd_p]j]\^K]Xu[RS`Wsrgctc`pY]o[jd]ci^kvY]lJN_\TfQ]_UY{jVadNZ\Y_`SRj|]^[jXS[YeRdl^TNzRN[S`_qlP]lXTRNLbe~_S_hmbs]hYmqb[`iT[wngwblVegXE\b\xSZbklNW|rifd\_otTbcdUwjYvTq]O]iofXQ[T[m[da`fxuebUXqbXXNVdf`qhQge_faRqd`]hqoYcihsobow}isQ]cWY\bc`_[RTMgngOdbai`aPgv7XqdemgenZuiylYkngXwR{PT^[}\zehrrbb_jf]ycZY_^ocepYld`dja^fY|sacsap^md\lt\l]Wdn`sae[_h\ikigwbi^iidhifychbdfccVen`~bhnsjffr\ohbcg_XYfjacajbhpir}cuv{ekftfYmasc`mip^Zcilo`cUcUx]tkk]wYTraidkiicYd\sshmepxm}dSbka_pk^a_`]ffh^bZvy_emj|hkkfbXkbaib_xifdXag_woZ}fji\\Runoi\[aefykrcg|ea^Xtr}Shbn]dc[mY[zr``imj|dblfji[oegaXtlWqk_jiQcfh\fiycrhdtwbge\od`Zp`a`y~j`jeajuZb`bsrmSTdoWc{f]ophf][ga`efblkolccph_ln]il\nh}Y]UfNZdgfuZfOXNZa_eomWh^[|d[dKacaNPdjaRioqTh{VSWdPLSWoXMpPYajlO\_p]^pjxuKdcZ`mijdXheVN^TVRtghqfgvW[k[]hcgo_NUS]^c_OROuWPwq7SlQI`}Laq^cXt`X`MU[ZC[Fddo\bP}kQteYgHdeYGpxr\SXcZoNfbV`sXmF\f^HyZnvL]k`]c^cvXZ]UtVNviAYVVYeX\SZlJ{`bp\TLmNsd]jvF]Q^nzjpNvgWL`YZaJ]bfIpoY\HhmXSdZX_]\HUXcgpsNcLtjUgTJUa[rTl[Q[^ZVUhPyWmOly_nndbRWjvKSmRncxaceqf[VfZ\[RQXhM_hpZVXjO~QggTDW7hUVe\jZlbVsg_^lh^\c`ZDbf_P]WmNmed]jYVeaPP\aodWOhKRSNQXRbN`[`]PM\]X\RLQVStaRdhbUdgjckOXYL\WWgUaGIo[ZSR_V_pMluJ[qOZzU]hjY\SPZJtMeZ\kcfk^^Q^YZO^[YpOUTV^k^QacUWiQe[ZDZPeQWVONMa`gSZV`NYVnOd][_S^tFg[N\GWmYcePTUQXtX`Q\^NccikXWSbihkmaTYW]RPHXYSOR\XIQ][ISYIRfeHmlaTIU^dSgZs\T\hU`\MTQoQae^U[O^hcXaaZbQ]G]_oUdUT\M[Wl]^W[TYZ\M]MS[b`Oy[[Z[ZTq]VY^_ecQYYZWJcY]h[wYV]DVaX]^ejZ`WTooYdVdMZX\SrfRUk`lfYlbO\Y[PZ\ZOnok]ygUVJaZXc]`ToL]FbaJUaewMPn\Xon~c\kL\XMTeVJZXYd]r\duSc[wnNP\cWY_RG]Wq@ol`]UXXTZbg^^nQYLYgS\]j_oX\\TeWhzMTjXYSRJL]\dZfe\zkcgqecotYleQ[\}d]nZSxXV]LTfm\ccW[WfnVnfkMSdaYdXpf]X_JZQ]YahMR\Z_^dQ[L_H\Veo`c^bRZW]eau]iiOQdsT`eW__epPVZip[[NaO]FTZgX\n^]Rf{UJeQer|KjH\hIP^ZNYkp_SV]YgNrqa\s^QDWFq`f^US`]VgObr\[c`WUTVlc]\TMhXnjZt[RbqainjMG\]M[NiSLZUahjgHMcjYSWS\TVV`^Yne[TPg`^ie^iz`bd^QjYjld_]_]gha_ac_ijkfebh^^i_gms^gb][yfSnZc`g`datek\]gh_`\Tmpefec^oSj^f^f]n^j]h{k_i\peaUf[giigmVdi]c^]a\g_^Yb]_lhjqXcfcrp`duYTegZb]Xajlccnlkpn_\bhXckecdbXMWZk_tl_gcVgUbdf]iVXged_mgf\hadlV_^mZfcic[iV[Xq]giidvWcia^]d`kf]ecbeb\hfcbfci[^mfenhc_f[dcqdh}YjkZehaaQheYi[k_dgkc]ke`bk_lYh[c\ef]mJfc{jcYd]]k`Xs[\ZcXf\chcbh]c_PYYffO^cc\fjbabc]ffu__xk_ggj`yl`li\fee_b\dcnt^n\dTcdjf^^hl]Z_be\]hXgZka[RSUT^Veh^bfYiUX^fm`pgTYXeX[p[XXSJ[UPjZa[ZSVaTWh^k\cYKpfUL|dNOUcdlSQUbd\Xl[foWbhedTZPsWZScY]Ua_UlhZRo_^YdQXZbRo\Lb[hV_Vmmz[ZeNiUZ^cOfRcddkr[[\_f]oIQy_]mVb`tOVZq`G_daxh^\ddfWyTqFZkNXbh^RKGdR`^TsZd|c_aZb~g[ReHVZdqcW]cacvlga[[[bOZKhwUwe`PT_y|ba{TTikXvZGOWaTTUoR[Vr_gmhXNnlN\Wj]raal[Y\Z_qf_N}Pa_Y\URJfeWNWR_pcdce\]P[tSP[`e`aMaYhdLeheZS`KQPYguK{\gSfc[a\N]jey\`SbQZbwdq\nQhWwnX_YZR[H^PIT_uTU^T\uhXrWZYUO]V^gcf]TOgecQg`apJ\P^P]i^FS[[_wYZ{URU`RdBVPRVacZg`bbsXXluRj\di\fZdbgVejt^SYIVPvSMseUUX`Bfkb_TT^eSQZhGdTZ^lbnb_ZKMAkW\cOWq_PhCYOOZ^]c^vgXUeOOdSawu]WTJMjuLvpaHPXcabZ|[nzaD_dVa`YelXb\TRh^H]c^pZsZToeJ}X\K^igUWZ|[]ec`j{qTXViQ[e[l_]t]kYnX\TsWYcjXb]baqOhZeZ__XVNWYXgZO\k`VXje]hh}W\XRo[^]St^OqhakLjg__ba[c]bd[dSlXZuceVdsjVMFYZh^OhYUQa^avT]WWTp[ukLce]OlROc_eZbuYXtSqxPUVe\^dphQW^rQgTgqmXw]\cmOt`yxy^isRZ]PybeYkhWT^YfV[Vggesgtq]f`Z_b`Td]\d_cesaTkXnUlS~dh]SYa^\Rhjlam[a\b]^uqVZlf\l^vd[[obshh^_qqWlWyemqVeT[dmci\T\ZcZ_YPzM\YDJSkj}[mhcS[cY[NlTgn\|QeoYZQ_bj_brPmcc_n]ZfXMbQX_X\wUOs`\Vi\zgr`[X`efeTv^`r{edgKh_g]]bnKbmTMQU_c^qy`\agg[fZ\~Vd]heObbYNaa[Z`_SbXbaqZmmat^UhjT_^Pyen_\Yije_eQ}`jr_Olv[[_TS[mrjg`X\g`Xwa``y_H]]vi}dZ][_VfgS[l_\\Yx_[W\_lSg{e`\ZXfb]fW[fagcafbag`cvZdda\\ob`gQgvX`ZfYc^\iae]maeSfgbWY]OmsdfTqolXi]bahan\icf\fe]Y`p\erddaTkf[Wx^eZ^gZd`\]UVqoc^bYbd_c`\^ShZhVe[p_Ze]d\cWXo[u^jaX]^ckc_[qabnrdZa{^[alT`]qZ]flr[gXgd]udhZg_jp|[r]bg\bw\Y^euaoWanX]edjb_^V_ecV\]oUn\k^XUmf]~\a^bfemge`^baYjmas`nbWda`eXY[b\fwm\YWY\`fU`[k`Vfi`cge`m^ZjhdiaXcWy\`\iTXgZc]d[ZZ|[cZdeua`a^q_omU`ikQl[`_X^c]RbXcv]`x^\ej^``gYfbnk]dqXo^c[HVaRTT^U^S_QbRiQdVefbY^adVN]M^rcEUQoOecg_M_YWl_YVUZ`dTSUnHVdSQYS]mYgi]bjdRYSb]jasVZSKJM]cp_VLRWjMd_`WUT`\KrGZq_j[\ePxVXN]Kj]WyOu`W[S\\bfYYOW`fRN}RS\\RNTTJPf[UPjTdVTgT{^e`kYRj[Za[PO[VeifeKkZaSPj`iRNeUM^U[i`XbSCWRSWRiKnTjVZeSjWb[^\]ZQVdRbVR_\_qn^eXNi`WPg`ZkY^YX]N`TTK^jcZ`{v]bQjZdXTSgYj^ObsVffXaXTea^pRObVmUV^TkYeV`YG^e]bRYYRWX^UXW]MXGf\U[h]KNkDZWXRNGKniU[PqQbbl_cc_[}ig^SPR_bDcdj`lh^bWYZUSKbdPU\[bYibMXYdbdZhlSST\jTdaSVR[WfYKi]`WZUZXl^RUYa[\Zdvb[QcWYY\\pb\e^fb]iVOag_ce]\]x`X_UYla`W[XR_^_[mb[\aX\^RYNq[T]Xh]QmoXmS[`Z]Uc^XXcdXMVINEUWWZZaHY[UmUVTaZQ_T\TUXcVbj[ncY^_]_jMgY_XU\QQZPX]W_`SY^dOhUzaplu`[[ZNX\[ZibU]XbbZ^ZYe]U^WUqvsldZ^de]T\adpURcnUj[TQN[Z^VPZhbhQTld]w]]ZydUcXcUfY[`kRWXijlgYb__T_oUdh]^Z\zeXQ]ZTZ]]]bXVaan\aZk[eN[_mXRSZxSa`jJ\WVc_XXjWlQRk^ZwQlcWw[f\M]HXWdR^_aWcWdT_KX]ZVT`o]XX[l|fYfQRX\KdqX\lX^QW]QZbUSWSbgUSWVW[JmT\YKSOR_XLKU^TTairDFe_mjL`Ys[LeT`XK[cT[YcVITXnWOSYfbUbbq_L\\OjZS]L\Vh_OKib`UXPNGX]E\Z[GIQUR[WRRf]NRTEGO\\SRJf_PP_lSaSp]^Yu[YV_SVS\W`Wi\\lV]IOjjCWcjOSnS^laqXId`^fMWVemTSRGfPYOMOWsiKCmRn\YM`dbRZHTaVtP`Q>YPbXXK_h`XTURWSPbl_WEiS^n[kN`D[IYV\JTjfYLQUa\V`XThLcYjZ[MMX\abnsb[`pPc^agZTSOVUKXbXKRZb]RWUXbUohbfRTVY[a\WeDSZAXNSdBRblZfrZb_fcrpXb`addX^eSlflqc``|crVn\l\N\mdcclb{d^ahkv~daS\mefbhTX`Zg_juQPgjyaYgXXkzVn`S_fW[xT\c][k]YbhkdifjYh}cVXbXiej\hSNtZSfThnSc`dcX]aZdqRj]_jV\h\Zner^^Yk^dSe^^t]Vezju]`[PJ[_T`WhmcYbfZiVdXkT___omY\rUtibX[Uudu_Zh^ebsYnhYagXchQ\Z]W]{R]bhakkgZ\[TYWu_i\eyW~tgg\XoYwqglqm\`hji_cXg_fivYiMXko_xiZ\euoclbbZebZSi\wZ_`\[cwZ[Y]lTkQX[h]rVX_dil]iafvgYhl]he]mdap_PYe`[evgZkZapYjg`KiimPdT]Mi_bMMFHVaUuOSoeT[lZktiXSo\_IejM[ntG_fpecVZYOeMFU[P[koaayZtbY`bqeaMfAQyhWaU`WbecYmWQkhv_b\dXfe]RaRkbwP_\x^]M]KX]NkL]XedcWbL_Sb_cel[hI]\_eY[NNh_td]eVPpmzGf]RTWaLT]VS^@u^EcZc]abKZ^Kf_gmwRahOrNNigGdmK^_N\Kdd[VlUKxTQ]YdmH]xRZaT_`jsNcqBTeOdU]mPns]YDhtXbpRspaCY\cXPdXiw_^XNf[LTflZKfgTcOT_y\T`aTZ^]ihkrmbebOVkfcbSRK`sqpR]EPQ_WfIlne^yQY_xw{OdLeQfcega`zNXhKdRWgV]di]bPDRPkYM][[cU^~VZfy]\h[P{uyXhwleZ^cicsPph`ZQtohoKvggb^xed[e`}kZnscx\auaft[[ZjSntoeZ^`~Vik]_XZfaxfP_]oLVfR^gfmYUnp}^Y]KcSeRL`SX[hVpoee[`fSzQa}b[g^ngnXgsr`g``mefnWrL[]afq`aggxh_fkokfp]\olfim`]_hq_gyMy~MoagfsjYb{x]Zokacuhc]_lUfeqssZhtma\Z|TfbfZfp[fkcldlfrXZgfhgefYa`\mUch\Zas\cftYbyuqaolpfZ]\cgcVRmZjQgpb|pdjfVmilz`Q[csWbXQZ[i]fasVu[n]o@b\\syhihXX^Sno\bT]tKhtj\`dbZXboeYsi}buewonx`ReMU_hSa^l_HxaGvncJPUv_vjxZVdTkpe]Xg\X\Qfm[]XY_Y\x[ONeW_QjZ[UdZ{sKQ]WxrskTGderKqrxsRkWiW^jglavRb^cREZ`Be`Wpokc`\LLn`ifvqfrgnIiVkV}p``N{_XPgmdjmVe^OWij\KRW[UlPqgeZP~kWXfs[j\gYZc[ha[cHiY]\tQhcrgflghNekdlkcD`[j``\>PmUaH^beh_SRPFNKj`rZbcbaLdSXvW[XYSb_jhiT^VTjGdiswB_WlYT\heOQRXiY^ecMTggkWj\Pq[]pNbSjaoqbb\Wq]_PWiXXakXymd]To^YaZGUI]Q_MtHlSOmMm^mPQZUFYToaUapZYOTYu]pn\TzyXXXTXYYc_XiZZgYuLSlUX`qnbYfjLpLiLWjco^cgnVW\b{_XTg_vVtPNmaZhW\V[^`ldV{W]qiBU]OYdl_^rHViZfbYHNga\VQK_cL_@]OvYXiqjSanaqjfRjX`gNRKeWo]Oq[N[vj]UOOgQ`N_dimQidaX^W^^Zsp^`QVxgI]p]_RIeYVf`dIlmQzGle\gmc_qMp[jP`^geOb[\g_jeFfZt[^yieVlRRH]jqTWcdW|_VZOkl{Uh[AMv[_uWiiZX]cs\chdRCUZ`|Sk`]]_]_UYlVXriU_eoSPfWGWYw\pV`eSkYkXaccdm]fgjicgZoc^\gn_bc[tJdoT^`Xfpx\dqtYaepXXavbqy^_^nn`B]ZeTaRLasmmc\`d]h^]qS]Wv`Q]uWi]~XS^oeoiWxnefpfXNngSkhMTcgU`QlbaiaZIFXFc`]\`USX]]{Y_Zffdv\wMgVe`dheeKbgpWa_T_PeQ^ZRVqSgZZ[g^YjhQVcLijyw^\gXgHF^uO_KWWfodqVkhWeSiQQPp`_^yjb\r`r`o_yspZhBVL[mkYgOkr^Uh\`TTr]\slHReWTWj]^\r\hzrZV`x^e_VW`k[RbYki}YWRpZomKyWNH~XQ\`g]dbjY_YZ\ofbdZleJnfVghThtqy`[opRlcvtmZtoqokkR]ZqpcMSwsleoom[xlQZjil[lVa_ttk]ztWe\molMWPMZRd~vETWuUpaOWnS]cMpOxR]vOXxzTk[q`nmlmn^f[nJdIm^Tesj]XldY]NaUqXllcYM\rW]ecfjX}q_ndmY`aQ~sXss`bollsKr~fVSk]dUu`eRlxfaSa[hhvkOhmhZqk^~Jpm\caXqat~Sfg~UmnXVUmNgkE_sbeTsikhervtf`[jhuhicqV``_[fLgYsZaqcvff[ZYb[kba`VLIVq_\n^nQZaf\mOV|kmijSklOj[\geWHYc_dtbddlh[hzPheZapeTm[Wfek]vtehaf]nNbphQibhecT`WUZaTg\gj_nMe_wcUm]lq}bpg^ZcltvVib[|\rWl^[WscZaYndx_uRRhtkXw]Yp|\RM~Un^Oojl^VdPaKtahsaZb~kujeY^ZluOmhwadSeVO^fVvU^GT\b|jReejpOz\sihn[cQ]u\^a^erj`Ltndwn`YZpdYl]`fvlJ^S[a^zONms]Q\Bdtlb|Y[zznty\mn\e\ln~avZuggn[dYeahJahwUjelwfsr\`n[aYagsR`klhXtKoTbY`}tilltjUSOaldf[NXSY[][[cXaT[cLbvV\goUlc]eSp[U[k^OSX\]ZdabVWj^N`W`paY]T\pe^]OT`^hS_bfT^OWj]p_]XUfjQcnYhZZZURbU{e\S_m~[^\hZVc]][h`YtwMqV_TkZpRQ`IgW_X\bgb_V}kW`dsNpNQdfsZS]a[`f}[Z^X{q\VcNeQ[XZ]`QtXbWm^^uY`nhUX\f[re`ihjds^iT][^X[dm]OOV[YfaYqibp]_^e_R^_acqZYraYcYWglqgXib^KcomTeUU^`eK_^\W\cstdhX\lvY{vk]\PU^f]XbYdntz\qaTkc_[STdoWR^]ikWzaYfkWnNUS\]]YhobZzNzaWccbjradu\YST\`SaWeV^V\aSff_[PTf^^hbcLSfUN_OHUYYTVZP]IWcdXNdJFsOlMXeFghNID][SVFdeGWdlV]OP_^j=TNDU]TQXY=dWRuX[RVRV{r^XXKbboSbYLaD^RXUUvPOaYqVZV]`^^WTQ[NWXWOqOcVFax[KXaTR]\TuDQcfYMIOoL[ZROVPZIZV\QVgI\]jFTSnQAW]Q_]^N\lSYPWSQM`TJOlf_UWYXLYXY^ZMeTTrcm_g^XaXUYKEp`UY^gOUVSU\ePUKX^eM^dVeRfWXU_]WYiQRZ=VM}bM[t`[De:PuJ]VneTS]BcQINcvXd\OZPpfVMRTXSLVNOL^WgRc\_jNSWfQl[dbtS\e^[URFgPeqXT\`TMIXtZZWJp_IfOmSLt`X^TQRRRWWTV^^TKOT`FcRcKod`cjb_a[c_jZSPZcl_v[M^eVcEamL^VZ[cj\_Wcn_bMbE`ToYV^pU]cdnXfdgZjWYeyq]dZmn_`Ra]\MFe[Q]bOM[cObresTP]TK]fH^lWP\kPnMjd[`\QKdiWXdi]cXpW`Ncdf\OW`WZya[`^eoRW\[Pl]P\eYhf][bcX\dTghdO\Xb[f]wVatVfvMQWW`^U^lw]o_\pS^f^gnn\McVZa^cNSpYZ_ZsUl]IEOek_jdYgKOYtXjnoVJy`^XkdXe}Ud[aMriUzeHaWLYfno^oZ[w[INw[nqdSQS[\dds`VaZit``bEb^html[{abaRo_[em\YjybYWbnq[OZVXb[XdinaZ`hgV\Td]eeVWbk]gQ[\pibS`Xc^YeVTegen]cje_djSk\Xb]VURViZTcpNUcHcSY^gN]P[WcVoiXQ`Rci_d]Wbg[aYR`]^W_TYk_XZ\QJdS[iX^W`gUTT`iS_ed_^e_j[I[YKBWagnVWZ\JbYVgYX]a`SS[Z`vcHSIl`atW]Ti]QlSk`ab]oclqcw[^V\TsjTQa]XYIsr]daRTUp_V^ZZ^VVQdXW_[[YWG\U\J_LPbU`^\d_VfUXURm]yuE]eb[c]]][[PWagcWbRjZU`TH]SOY\e`hdZZd[_Tgag_\Y][[pT\\UOl|ZYd_\T]WdZ_SabWMmTeWg[\_h_c`i`i[[[~m{WdhcZUgRgL_[VPaVddUO[\dfdavYolSgUgiQ[Vln_YfQ`XmkchjZcc[POfQT^ddiaSRXR_aSe]Y\\Xe]Y]a`XZ_^QV`Fg]qgbIR]]_U__ZMXno_YRaebainVPWc^UTIbt`Xd\Kez]cT`f`RXp[q]VS`X^WWQs]rO`WXPUVk^_Webo_eeL\b`cgb[cdVJebTemVTYpE\]dqUNTa\\bXaeZ`LXMV]YVTi[^d]`WOk_bZiQOOWSa]c^Y[`USGMGVHQ^WVcjWVY]lVSH_O[Ub`UN]Pih_omT]tjn_aXXYi^dIU^]cNgM[v\_Q`oTa[Zjc_SbV\ZbdX]LJnUUUd\TmQOdmfu[\VKUV[__TB\PZORZQlX`iQjX\fZ\T\]ce_gP[iPZf]XKJMV[Vgqe\Qoja_XPzeWPWoTlS]YQ^RXS_`[fVRTJnSU\fN^\]`fTYmdnd\QraVxucs\XYaokmg_hq[pU~^hkdi]qucpu\dnoZbLWfSnf~ng[^zZiioWi[_RtPbekaxkRn[zgZ`jojkTdRdv[[VX`NeWvoTqZgU`h_ge]hUs\]Zcgwuwx{enjOslbJlf_gRTLlay_cc~\vJ_^~fp`Sddmkq_fg^hmZapWcYva[Qmb}UvT}Dr`{tb`j_RZ\q}j]vPZqT?d[WShm_a_]s\KzV{pFo_LZh^ZOX_^REgrhpU[EU{qW`npV\xja}Mv]VOZO`Z|hRi^Zvslwdq^raev^r^QNrzUU_jiY]jhbdp`_eNfbuV]nnGtRke]jZjrk\joQgWeUaeZLTgljKqqbY]yfcttbsbQ]\e_^waVbcMaro|fixb}yW[XStR|sfgh]O{jun`_lmKysg]Sb_^\i^z]^liuu}njaqeUg@xr~wnuXEYMoZaQtvv`s^IP]YjXhh_jiSyp:p\Wke^dPd_WzUdhShPfWhbqkyYQoxjakUp_}ubWpenanUkT=fCMRwdgo@ITgrEhl[qiogty]=YbJvi{wornsTWbqobfjpSWXnk\qeynprbjY7dcNducbXWf{soIt{`jg|rt[O\ZqjV`[ffjipRHl\es\_^hhveiPcRbcRb\^hlrjVV|kj]Pbixv^SdnoZWbsUvgM_qdo[pnNa~u]dpZh]kZw}^tZmjMSNhJtYuaRfYoaqwnzbelhKO`\acbeRYkUvWOgaJPWbfgWZXiWd}SVwVVJwZSnSO^ch_Plqf`mIdeiXT]\RT^Q[^\`OOVv\x_bcUt_^[U{cRwSV]luXdhVX{Tbj[\``_i`VV`YT^YbPdYXhbXVo^abc`gNQ]^a\]`Podso\P^[[__Kc^cfZ|^_msUSVqZp_Na^`NPX[X[Y]fc\alqWRTaWO^bhYjeWYdtZoc]agVqVc]fudl[{[\YZddWefWWeb_gk{\[amhXTfaqbS^uXnZWo[bXNjbXRY[aieRiYpYhcp]WWbco]QtU^nia]nl`mdVWic[pjY\RZlx^SlV[dfY]YX\]XkPaeX`OT]R\_Xca`_Vuc\ZiW`gTzWb`b_``]fY[\ZUfsYiQfaJRgm^XO\XZTlPX[_fQ_gbSScRm]jcWh]iZZba[`[fsii_SVU[W^aVWj^hX\`fY[mRpRGX[ePSmQRJUmTsY_M`T_SjhnR\ShZotc[degVcfWZaZMXN[NZXZgkCe]`UbUE\^agT_\UjcaPWyIbbrTke`X_rH_WW`]QXYe^h]Q]aJ]^O]fMQ]cWw\Z`Xb]idX[odtUfZW[^lbqf`[PY]c\~ScRK\RKWoaihTVj`hJRZ^pZ]\YVaWONhflTm\\bWb\UUL`OWvSV^\_\iWgMQc\TLWe]]^[b\pjdcS^v_Y~hSr`WJXnWv\YcW]WXUOnYmf[eXbPeHUKOmLTbXhXbRYPStjVgSSjV\EOqciN`PXU^[rekfVlQYZbU^aRKglaP^\hT^sQu\_TbScajhT_eW^h^aZ\WlaLMe_XValfMZQp[JgfWTkZ\Vcl[NZboYhikaeWZWpm`HXr^XjYfm\ahTwbtV]^dbJUkY[VY_U\kWd^P``[bcwVF:fiTYdgZVdnQcnkP}^^VsmjpnR\dfTcjMY^ZdjS\R\uw\[aS`^S]zV`\ZlR_NeSK]klgURmY[gTOS_Xbrd|bWXZhj\oP[oZ^Rd^gZ`ap][u_^yq]HV_YVYYngij`R^VWLWWqJTjWhsKcZMLZVeVd^mil]S_cttHW\TcUWQcdZrQJdXifjmdTo[o`P_tas\`qg_`mX[ZGRUchpdmnhmRQZT`pvR\zV]ab]f^tNdYogk]OohQc\STsfRa__]UYmWWfliqu|ytq|jnvhwypwynr||sw{uuqs~~nwt{swykhyzjww|tm}uoloturqh{yxnxnxydjuntrxmzvw}vywsnmp{}k{~u|s|yvr|n}yrivr|qpvvqvyu{mwxmptxw{r{kupwutywlt||nq{qp|uvp|vsqx~pv{yxwvnv{stkryf|lpzrvwtxmznklk~yqtfqqvs}gwtunwsntq|d}tx}uv{vqqq|{mo}qqvz{zqqlqwlvtxywmvspmxwztr{sslyxv}mlstgws|tysqvrzq}|k{zsxisus|nnsrprwg|z|ncxu|u~mvop{zv|{qxxxqtS^LcR\U]V_bR[^[eyZX`Q[UiUe_cyLe]]\WgbicY[bcndYwR][bdRK^fladWaPnY\hTj_^ZRZS_T^kjh^^dZDWYh^UN_^V_`[\uhj}YpobZV[R]PX_WZ[Vk_NU`_[r^Vajf]c\Njlz`VXImim]`^OhUTYXVuQ\fQyYXiTTzYR[deeYdfZekhYb[V^fUXlgPYjQldYbY^bX[\ur\g[TZ\[^P^ipYVSXU|e[_akvPXcjZ^SQkYbXU\Z^MgV]UOdhevQ^dSKTgytb\cRfePfcfUx^bUSU_aTVWWNZUSXq`bRWsfTXcYbhUR_[zVJUfw]abTacQUmk\{^[kIUvckaZ\dn\P\kmdme]agHdO[rhS[oZ|SrYeiZMRXt^SfN^fidlZ_Ziadhs_ccfoaOm\gcgcbbb[qod]^kmgct[mr_cg]j{p]iempYu^pmYydvdgdYWVvnlfjSaYtc_^`fkade^`vVel]dOiccbd\XhtcXkS]b`[[`xmadfZ`k]oh|SsZ]eghRz]|lWs][Uf_kdbf^cimjeW\fgib_bh^ze[ffw]k^[n___n`llhYak^lajbSa\mnb|faXebQdhce`ib^anYdar_ijawd^ig]ewv{s]Xkra`y`XW[hbZdshaqRn^paOd\`pjien[Ydu]TkjWVishbgd^Yyiunji]_qlaTxfe^m\tjmXk~ecc^ev}_dhdc~R_rYp`Sokeo_av{nksZ_XmbcYTfqafclVXdr^nhibeu^bf]hd^eda\Zb_l^YhaKl]_`IJcYQVac^XbNORjRWTgrcp^eb]PTjmbjZUbVV`ojjvWkhXVlemVZiZLj\h[]`a\XhfNi\]tab]dSytRd`Y^qYyek[TUZIcl^^cc`cUfH_RhcY^a\p\|bfJXJUjdR^J]bcr^TcYahk[TS]albW]jfUaTheh[]VURUYUTRaQdbPPQktdWSbTfhcrYVPhVoe[aM\\hY`UmYzd^_ZY`lYaeaKZqSwedP`Xff_\FWmYPd\jRYSYXNXZjlUPabg]NlgWWTX[poaO]iYWWcRPq^lfXXR[hi`gX`[cnPWbSjdvLoSPUQ_]\PdZQ^dbbeR_X`lcag]^^fmUnS`@TbUVWZ]\vcP]QgX{Wfhub[gwYXn\lr\lWNSed^hwdYRTNa_NfjjjjZd_r~\RRf^i[SSTjtfnbW`N}fX}lvcckXFhns_|oda]RjVgTmo[oKkkjdYSaoi\oZRm\ZgSWT^amajlniKRbcq[SXX[\ecbbbi_WORd|aiYtvNTyZ[|~efedTefegVaT[pkgySOMffn`aSTfmc^WSmfnr``V\b\gwkXgy`dhaffZPgiMQ_k`xUto~dkkRiZ\nRamVZ\^YPP]lnkfbcnaZjb\[qnhbg^fZmVdkoYvZdpapdub\TTSbd}YT^_oP^d^nq`^eflZ[{YydZipjrU\kcg_wQebSmhIZ\hsc[pdeOt_e{iol~gVWjRP\adjJ^\Rmo_ia_jkbi]dela_OjX_Z\Uau}^N~Vuc|lQtjqSEnP[_Oa_~ojfs^qhZbXYc`g\ebOV]W^pRiqXoU]lNvs\aWe^kfPaq~PZLelfdZOXttcb~f]hXmSfUumaXw\eegbNc_u{\i]LnJmynTZL^[ZmPwgDU_g^b[]OkiThgesmQ^Un^m]Ily[_q_aU}qhP]PaxvamjZ_]]kWg\f\F^ehiScopj`YaTO]p^]zjkjg\Z`UT`\W\Sf\\_bXkjnhjssX]]YDob^WWYVQbOeemIoZesc[u]`hRL]Ki^L]pbhnZU\FMViMbT_i\SMkjpqWVkjf\uVZSoVP`aUf_`^QUtsmV\VS\VTZ^geHYdgSZWg[LWl|flhka\qVidYOQiwlOj_^seXRWa`?UxjTQeYZa\Yc\mAYTVNaavqW\c_ZqX_P[Vh\LSbT^\UmLSgNPv_WUO_[bU\ZSS__yJWbjYehScgV^Td[[TSXSd^bddt]vZchT^QeQY[\Z]`\I_UIcdXK[kV_f^Z_L_LiaOO^v_^UakG\iTD^^SRsbRcaYPTZk][Z]SXwawijVfd^e_Z\pJ_gS_YXaeoMWRVUR`RoRbfNN]kWUXmPdt\]_WSg^ZS[Qi^Z_RONbVR^OKV[KRiN_RUHUM`JQ_b^^cY3TnR_rRU\ZeYmQOZ{Qm]V\PsXYTWea`P]YhS`ZNdcSlSP_IWbfdccQZc]]h`O^c_VV\HSY[ab]bYYn[ZVZ]Yc_^f[QnTVRZeiWb\WH_W^ZvM[V]ZVPT]IZV^RJ]\WG\RUslhrawMfK_]`aIJcKkRlkg\^cURuR\b_SwuStL]mcjYk_dey`orP|X^Td^d_`NsZrhcPJXuQb]vaQldZ[utcKSYThZqV]nOKej^OoaXVYP^Uikh_lsWYYc_hpibUUgjUnWR_Zk\^[SRL\XaYe\Ewq\|VUZ]oico^\i^R[VAUMXbZWTM`\d[ZsfnObMXc[}dnkPJmfXalTxfUeOhQTYX}h^cOlTbcj^]]XRR_eI]\SOnX_wPaKgc___]l[XoYi]WGMf[XjTQsxfQayYQ[r\h[SrWf[TfnLUY|_qLgahebkUXf\Yt^ab[Pi[hZUkkeSafROdPUQPPMSe]bOe}eqh^[\eN[YX`rjxio`TocVDcfZJ^I\gVZPd]ZcOd[Pd}krnL]LJQTNhTxkiMoUh[g`tiWLo_isLoUQ`z_~`aYbS_]mU_Y^JUfLfiXwd]V[SvImpPUXlg?_ddKWdOibo_gaXt]]OXYPXLVoKTVbI|]NUSY|GPcO~QaRgLi[JPdZc]CZ]_\[`lZewbRg[dSWPLXLgs]pN\pYZVeURHUKiRopgX_dja~`X`a[Of[^RrSV\`[mRGOIcM_P^ZLVKGrWOT`VgJaSRpczhU]fZ`YQr\cSTTULcd`\b`XbRblRSUdPfcfRqcRCSX[cBEg\MM^rne]d]O_W_QI_gTZqRVMUeOQb_ePU_dbYaddb`j\Tf[Vef`df\^`[uJWi_ZOZx[bZatAJd[wb~b`PYcIngC^YOINUjWUQ_\WVYY`TXafgZ^QZXd^ieNWha_[YTO[UR]WXyUNRCVd\tHTT_^BgaQMXLI_X]cr\iEmeXlTKNj|_jQWw^TaFNNZnb[cJ[F]USd^Med]UWZziPNYZYa`R^_JK^hPfPKFVNRQJPR\ZTUZrOQSIl^l_`lVrk{CgKMYPhTZI]df\SkTUeyb\Z[ZPUL]fpWDdhLiTTRxBcUsOkPPTXmTYZZY]eqTiVbmkY_G_H^_cVZRI[FcPYWfUU`hUtJYMd}InLVOMa^aVe]ZII]PRQLMlLFM_WN^QbYVFOR[JCNX^Tk\bRJKacrkMWOi`OHYeYgST\[Q]g^dWo_>S`hLPUbUSY[R_R`ZI][WTQYJq]Te[c]\RQYWxaaZ]dTOZbSRHXbV]TWWbS_[ZkYOgRH^]?VMKTJcIYb|MRhQZMGSbX[YXN`_`[XPQWP[MG]]bWT[U[OSfWUaJMf`J^R_lWGWZMO^dXM^STr`L]kPZoRS_BYYGJXVYDPJmQzHRZWJM]bUSRiPY`c=V\`YWwU[uQXL`kVSiZkPPVMYiYt[QTWWW_H_ROU`c`UiNNPK[XRTbQV]PJR`Qd[\`iVnbjGTbH]V`Q_VMSbOSOig^YWYLOSYaoW]hYae]]]MfYQ]_\[XRdlfT\Taa`i`fch``^d^fVcW\c[~kTaO[xYa]kXS[Z]_a[RXZW^cVUM^hkUhb[aQ^VUwN]g\]RS_VeTuf`XSbkY^JRPRO^\]jc[TZN]iRNdR`\]kT`]nbZ\\qQWP`D\LaeVZTfbPYN_g^bnU]eRN\]KYfY]LRYZV`MYZbMgWtjPRdcSZb_YpYgZW`]WWPPPUcU[WRbTg`\Td`j_]LYafiMaOUOjnaYUjcb[erjTacfG`RZ`bHLSTcG]`ib\d_fWTR`WYYssfX_f]]]]_WYWXYcVV[VUcZVWSXYK\UgR]ec_jS]Ri]dTNgfT[Z}c\Yb^pZeXb]bM]^QZXiMeSSOXiSXLpT_ckUs`VXa`TXmSam[XORfaOkhWl\oU^g_gZ_seae]`bUj`M[WYfvTdbZf_]v]Zii[d\]f\hdXZd\X]gsUfZXXfToXeZYab]]bkXSUMUR]Ui^ccaVaek[NRb]dLjQ^\mPSe^U]h]IUcYRsxLc`[SUQg`ml[o^gq_Y_\dqW^dKVh`Z`f\Q^CVWOfZ^`k[n]a]ZZgbla_JlKZjWPfjpY`aYa[WfXjjfXsrMfV\Q`faWIW`mPZjT[V[vZdWQcilgO_e`PM_suSYj[VXBbYsechnQlPoc_XlnaP_yhZaYdbGXYwUUiU_Xaad]b`ehOmbeO`efgQmYXUmda^\h_m\[SZWWnSS^`Ue\e[TOZ_TbbktgakWXTs[|lOUpSmTb`gWKn^VQnmXdZiW^ay_RNlYV^O{P^bjra|QSQxUdf\o\WnZsYeZ\LnMVSYN]_MsapXpcp[ci^O{cUgOlb^e`h^`^ZvYWgQ^`_auwfk|p`aYoU}Wwpef~mnkpc^gYjcR]|`ni^]xQ_kt^ZMeXu\haYebPVXYna`[ZX_X_eTX]fg\[iawLjfYZvcc[e\aU\Qa`_[WTqQcZ^CigvTohaqyhag[mq^f^hfinupRnmLXj^d[\re[ePbYcjW\YR[Od_puoeYkZfxTeibR|Yzl~H^qeihdSn`^iM`[]\bpcvjjKG`UTRl}pYf]_t_TigKt[Y_aid_q^UfcO_wVTax]Lw^f[YlS[a`TVsxNaXk`bd]hgo\hRdYq]zq[Mpm`nb_Zase_TeV`UWUSQ[RQLZOZZXPLWRVNXVRRN_ZLUIJKJXSFNB[RSUTKOXUMMSSTRRUUYOJMQaSUX\gZXWVHIZK[YSZNHQRKGRQaFQNOZUPP]NWSRMXOMOTKUJ\YUTRPNQJYU[KZR]VZMFPVNFXTTYUWRKPPUNNKQMV]SMSLWRZHWYMRR[ORZPQVS_QXX[OMTWSLHRWQJbUXGPZVU[NSZ^RTW`WRQOXLSQ\YHZR]KORWTTXKRUR_VVKPSPMQSGNJTNQ]WUO]USP\V^NWMQTQJXS\VLPYJSNXOFYRYXIMPPQWUSNLWR]^UQN`LUCZJPSTLFMWLPSIZUaVRSY\LPOKSO[TMLaWRSLMWVOQSWWTQNWMWQRXKVMJWOQUUROPQ`KKPWXLTVKX]FOU`[W`]hSX[^v][edj[^nan^yUq`b]I]`lUShVqdZYhi]MV\Ks]gkop`QS^RZ^YfdgVO]c_W``iePJZ[Sjzh^dTcfVU[pkcs`ZJft\iPd`i^]^OXdQZMVn[nW[Mgad\rb_[mgp{R`cLfW\djX[eab]SYYVVRXQ~lhbLdY[t\YXV[ZnheTLXd]c_YobVOrlYUZ[apeW`WbhQkZViMnYbkSW^dk\RbbjVrSSdbn\S^`WYVP^aaXmeX]u_t]bEcbbba[^eZVuIYJechjUYka_diS`VedYuXLiUQea_R^hphjZ_aXkWWevr]e]Ud]Vb|M[jZarYWXsXmca]N`bbXvfXW]dXjIdc^cSX_WTn_Vx``b[ZW_]Y\afV[tbcve\af^smjdnmfb^ZjXYdI]Ykbp`fZk[[USbkzb`__b_qbvYZzWskSbcag^kYlZ[T`giahkX^cVbmbtfYZ]]da[rf^bf`Wi]f]d`[`Ve^\ag\[fefbp^`_bWZdZ^^^^i][gf\]hZph^Z\cVa_]dc\`hZrwcz]hqwlZdbd[xaf]e_\]aeb]]]kWvRXc[^\~^]v_`edmRVbgbYbY[Xc][SX^Yeefkd_\fv[^{Oufd^ech^jfe^eubb]ocV^auaYu_[TaZRhWxdhkXat^_Xa\T`]^h\b[TT^RXdcWQUo[WVVTytl^ZdVc\afhlSgV^\Zr_jLdqObqpUTkt}hl`lrWomd__z]X\^pc]YXa[guVgdjWefgpXR]ZhYfTqchZd[W\bm\]^iq]bla[xb^}Xa_s[bWaVb[bdVc_Zj]`inYZX__TVWaZZfglVYbgli]ZWVdegXZczVM\\__}oTO^V[ha\WP[jXcT^^sTfa_]WgN^rZjefzYs_pegZf]TZWiTa_lb[a`g`]`XT~X\XY`hX`T]d[ZV_dWT]_W]TfhbWl]ZYSe`nYSVX`Ye_dgSjW`\a`c_h[Zk]^T`Z`g`\b`mRbx\XsWP`T`Zi^^Vaa^`t\]]\abahe\SbdgRtY_zfYgcbRd]Y_SZYgY\]W`U]\nlhdb_\\^^X]]v^[kXi`V[vb_Y[efTkWZX[ZbRVXYm_ufVSWappdXcZ__M_b[V[\afsa[X`Yr^qUVT_WYZ]^[yeMgTb\]zVTyIafaUbYjbYmb\V|uhUacVkQSriRIZXfh[okZRhMo|eZlX\j`NW]\j`L__]N^qihd[neeZnYYgUhTmUZeUNeW[se\NyZfUc`MeUVeRQ[N\tYPNU_]gTYPUihQocRE\fZVRU^``kXeq`[V]_fSXvT^pcvc^UgwpjjVm[bOSdQZgmXfWYP^Tlm]\[dtQ]`IRdk|Jdfk^andi^`bb_aUR^RW]_cQpfOgna__ZS[]fJU\aMWbnXpXXm`_V\e\tihtdQy\go`nKgY][d`V^R`_`fe]j^dQPU[tZhPkZTbjgZU{qeDcdgn`M[TZakXEg\hcR_Nl=_XrhS^USikflQ{[^Ufhqm_tlTgX\]RgjLd]\uPOfYX_rN^pVbPoam|frsdxfPL}SRhEy|glaakfWkk\|iRUXV[rW[UYY[^`T]DeajZ\T`Ui_dQQlI_XP[c~\_cv]Z]`dbaYf[Z]n|gUfka[YQ\[bWzhbg[ptd`Q\iX^\RU[jsKWj`mijck]ogRSV[avNT_jhXh_hQSRX[a^Xr]X]pr[TW`i^Zc_]pXf_hakrc\Z^wVmTd^baUnW[c^WpamYrYZWZhc_slSYp]XYS[ubX\x`cl]gX]UXX}d_SaadVo^j|dqeWhXfPZYTdmWtc]l`^`Rb\PVc[|YsSYomc~euVX\mfU_HVRgV~oS_f^h^Zpcx_`aRdSZ\R\m_U\VaNeajUlyhcerSSZdqeWoc^cfWmhc`^b_moThoZbYU`s`nv]ghl\d`\ki`_Zfj[]VVRT]Y[x^_q]SYMUdnnoekPa]XaR_Ri\\SeZq^s_fVbYU\zS_S]Pbfamh[`TZ]zzf{niYbWtxgnnQQb^[XMVnVeZZpbec]`bYP^cV_p^TYc\c\uV\]dnk_d^bXZdi_GcSod`gyXah`[SxvXtvnag\W``_\_k\hp@jGPsvyuXZds]lrFNWyZtpRYaXboaeKxSLUu_\^{][wdgYk\Vt[o`^_Nt_q[]hbzufMlqJ\olzUhneg`y_h|a\P\k]`ZXfHkhca[YptKaVkW~jZ\X]pavsgnnw]D~JgtYRUyT^zi\e_ceuSRdyiydMfQleR]x^_mWUqqShZqnlYdiiL`^gXd~]paV`bdmWRrZrMrxjIjtc_yrqv_lmpdWVZgaajQaepiWmJr_^F~tfgpXRQftVifpcSgVvtgodc`kZTwskgldispYUZ}t|MgQstb^UgqRcZhqcP|fWfkXogwXpZ`}als\p|UB^ve~rKKMG`dlYqnlVoCKzlZ8Sc`X[][PT_XZlYZWblZOnWSfZcCXUMgQ`o]QY]OVeedfTT^lA\OY^aXZd`c_lbRcUYm]\l]a[]bQSmYHbKWq[]Qdhh\SdVcmZYN_RXb]g]UgNSRZe[NWHXfTU\[V[`NV\\Yb~BedYQ]dXQUXfISmfi`ceqNdeTdQmHtc`^Vlh[^d^VYhBUYVUY[bnnxdTIT]\ZZTQX[YZ\_gQYVXQN[WTW^`jVY[WZ\]`GWk`bXXccXge{ZXKVf[^iQS[\RIk\[]ZfqPMTojkim[VVbga^PTKSteSROTca^`w[`hbXRVUZdePU^UcWXfULMeQUQOMUQcnOelVeE_JaovO^YU[mLbNaYdUNVdjpaXYLmzX]e[gRk\QRUdegX[P`N[Y`^^O\XPJaW^\jYONjYPcWZ@QU`iaQ_^`QcTULdBTM\]JbTKQOIY[[?Q[`QQLXMWQPH`d`VaOTMXdVQL`XRMPQbYdXMZV][a`fTEbRQN^ZbS]\TM\SJSRaSRDWMU\EOia]Y]EVJSlFNbj`PK?YC\cHLUbT]ROQ^XHw\kSRkTPRdkJYVLXSPfH^QXxSNZYT^^iLCScBWcQ[OOV\`[iL\D]\QfUI\]QZPc\PZclIVS^]KI[]\W\RfIHOaGWhUG[RQT\`WcNRCgcOP]Vc_^YQKSWN[bSXRaV]jTXMgORNPBXmdL]_iWDoOVXUWPhlJMQb`bWdHT_JU^KbKZRJb_WSkeWJTPLIaQ^kQWY[SQiZYVVTRJWSMRjjfXSW__MpMXXVoOa_^^S]e]d]skfodg\X`g\_uX[[ahi]laa]g_me]flnjf]fQc__~iollk\uj\cbWje^hix^[j_XT``hWcakcbZneV_f_ecqe\lslogia__caialiV|UdYcZ^_gZk_cutra^d]e^e^u\_n^e`rekfal}`angedpkXwc`e]igrT^T_[^cdk]ge_nceembV`ovhc[^\d_`}fkYpbkaXcfaz_pfbiYeu`_^izw`_fqYafZfYoaY}blb[sl^ambfgasqpjZ`}jeq_`^c\cg^ffiZYgfnheWq`UspabnpeWbrtf^pbedag[YZ^lVblh^aa\`mWhrgme[woe\dzch`hzdnh_auxjboh`hWde[hkfa_b`cql``iSZeW\XSVRNbMYibXedUN]^bNZZQUgTba_Qb]NhR\\XI=peOJZiWNHVETPToO^nU\_\NiSgQ`QUXXZwkNOPa[K[tckKc{^sT`eWhTJiEQl^i[Y[UTiUUqrUKgaRQVWZhMUgYVT[Xdg[ZUUUQeUYM^V@ZSRUUQQKZPpgW\]O_[]ZVPRiVL]mTdbP[wUQWU`U^OY\n]Uf[jWfgdgX[XYa_kZYWu`bPOlEPSXThNnwWNR]LPdT`fZVW[X^uXoe_Op_`r]WKfVRVZdOVYPJQnWUvUZg]XZTN`g[jReigcXOLXbXPTS\YdCoPLb]X_L^URaNNUiTeDQYLpk`^nJSXeU\wIVI`]UZdT~ebUpkpWaSm\OXjWUIXeedgNJXY_uc[H]XcSRXTUNYRQaPIIPJ\VGOPRRRVSMTPKHSWY[WNO\WRYLKMRQSNUaURMMWYWNQZKPON\VZYYRNTJWQSXVVQOTNYWVWNVIPYPV[]MSbZYVRUR^QNVLUKTHKTQ[[SRLNXVPTSWUSSLSLRTLHNTWESWJVLJRXWPMXTOPSYRPMVH`ZSVXQPRTTYMNR]UPPYQHSaM\KPV^IOVQPVTSRXZQPPa^WQVYXWWWNRPUNROMVPUNQT[MXRUQSSSU[PXLKQUS]SUWSQHXOOSBITROQTYHUZZQ]PMVZXUVWKUNN^TTOVZXV]RbI@Q[YOSTPJQVRGKNTSW]TOP_LYRR[UVYTQONU^YAIK^RVIWRNPQZOVWyWWPWUQPRVVNMWVZN]YQMZLSPMWVPLVc^fh]g\tbu|el[}ql{irlZole]ac[dkngiqsbYUlgccdpz[h]gmkqYhkVe}ihk_hlo^ah`]\_RWjkQZfZXxjzqU]`h[kVJh[jqk[zT]fP[ZejctufXb\r^fhiSduXSjNq{Un[Yedob]pdch[erbsjwYg`]]le{{jneWlPy[Ncapgdr{hw^wSamiIcgkslmfUat]hhrvvdsm[X`h`obZ\mttkmek`vTggbbegxmhlgabVhPNsew^}[losf[_g`[dQkZgdzr_fV[][[k]f^Qsmb`PjwqdUlzij`^bysddck_zs^]ygitZhbjxe`l{@q\W^c^[UieYemo]mSZgae\rLmXdn`okicXtbgnaWvfWvgepdds^|W[X[QffxvTYclbPbX`sTgexg\T_aYVE_^TaYNkUaob~XctZiLiQqeQZfmb\]P`TY]]\hcRYVaZXYPfgUYVlXU|_kQjbtb^_ROgTed_cZ^G[vjmJR[oMfc[YYyDRFVVJ_KEIOOESXUMNHOHM_U`QQRSWSXSVOSPLBEYMRLYX[KIRSKSNDK\RUSLUOHJSSU\FPRN[RXUTGiHZUVXLQNIUHTMKWOKFXQROVTXNWNVPW[RLZSSWPRMRUJNFYWYS\UPLULNVROKJJQQKWZIUKMWWLESQLKST[QVWOMGRQzPMIJRXVWDK]SXWKSVTNMVTTK?KLKPR_eSdUg`O_Rek}TYaZSSLQ\xa`jZqjekYLrpPdkn\v`TVeZkPSri|dwl^d\wqXVfRdzKmqafd[\he]^\f^e}tbfWl[d\khSXWWS]Y`]nshtZVXpaShWmXY_fesa\U_im[eLMfS]peUtejeV^^f^kuZX]]ke\vaTeaWk`SfX{]ewaoxYQhnjU}_aObZWS^yhl\aXZi\bYsruXbU^Y_[HZfQVfYlMiVst^`\`KXVe`a_d\ZYhXWXYlP^^SRX]WP^k|NceRX^h|KbeU_W_X]`O`z_]md|VMksUgaKakVd\M]eY_WhLfkM`ek[qjOY\bp`V]Y_^]\ZLGRhWU_]dqW_dWfSqfn_jfpvSl_hiZ\gbSocOMxzOsg_fg^kZ]ki{_]`_UnTZ^d`][sX^K[MW\KKNUoeXlkiae\fh[eYfQSVWWXuiSf`ZR^gdSAYMhPx[dbdR\[`VlV`i_SeMwdU[oSXWXNrJkVgbp{ZlO`rhdU^ShisuNZX_ftRoRxeabdU[jQYfqQQUZUR\zW]Pr|TUYIX\rVX^f[Ni\ba^W\|[PZWubWlV[[aK|XVTRVqOQQ]Wagoq\[WZR_k^b`[SVXegPbrc`WSbRUQ`aJ\qbk\oFTsKx_RpM`ZWZSSRXW]Ob`YbI\iksgT_Pc\XfQXYf[nXY_jKOgQRajcSP\OYcW^Kf^ebVWNxb~_V^YWWXvQf`nXhaiQQnG^\Q]\{um_`JViVI_jf^^^_cYshrjTQ\a^^i\ha`dV^S\cl_L_Wuf]bYOUYhirD_bhplUZVUc]`^d`cM]GZPX]\aZQwPbZ[Vh[uy_WTZ[Y][UScL`b\Sbk_fK`kVe]IX`TVQ`S_\]ZWEYYPPT_X\UfUbOVVUbMOJcgOYOI\QF]aTk`SQXa^cZ_dNi`ZcZb?[eV^l^PfZbAT_nhTaQTPYHypXCTS_fWkYsdtrb`iTNdf^Q]ZZUGUPix\YiP\^[RWjYiUp]uXVPYlgnS_hi\WO]V\b]a|WROS[E]_cPIN[]_ePZIaWaTd]N]QdR[WZZQbRaTnfTbYS^YQOQpgPSbnbQ[je_`PN`iT\UWXs[SipI[_^]Sfa^Iwc}^DZ\THWKZ~cKgNecQfmXORVXXxinPRhFdoNZQ\BZYDT\dY]^l_QZce`Me^fnY]^][Yfjkw}ShTXCRb{f[GRVSTfhednQOXpWmVkVObZYPNXtT_b\RQqKWpbU]emeZa^P]SLdQXRWsNxYechYXYfcc[PWMU`LxfSj`qTYKI_^SFZk]v\Qf]^OZ_bIaT^Xu`bdSSP]IMIaiYb~g[]S^Y\lhlZcVfcUVVic^mhSUgbtwa__cMJTXg]aTPgUJLOcVmZUfUe\TnOfb\QeGWbjZ[X]EXROMV^~MNcXWUZT_}S_jLVXXU[WSS]f]PUMdfeZTnpZdZV^qPb__W^YW`^il_cPLV\fhZn]oOFUWWHZ_zZLTZo]SX_^\YWV`PQYTp_fjTGCNba^T`WoCeOo_ZaVamuj]Ou^^ykr[ZSUUUhUNScfZS[vRVqTejjZS[daV|[QGeMTb_ZrembRWOOVUcNmsfeYkROKp]WPWiR]dWdNYZUXjT^[Z]ZRL]u]casoS_cRYlW\P_RXKcoYOVRbR`RUOPUZphhPRaLdUmc^afZ`WP]pb^gjWzYU\OMXf[e_[WQSZXNU_rXXVuI[Obbp_bSy[WSdTddPO^BLZ`la`j`WYlT\UMcyVbbTUdWMSeZdJm[nJ`cbQQnbWZs_QaT]^PaRJ~tng]br^Vw[jZcjMSYNdaSai`_khidqsV[^cxdcgYZTY^YQVs]O]lMZ`VNMqa_U^Xi`Vd\Q`H_X`ZXNj]OWUmaV@{rN`\]|pZQS_`XrZ^ZhZYRHpO\pN\mdf`YYXT`umOaYkmjccMU`lNZV[SqWg\iLlTPXIa{nSSLcwbY~W`@gjvdoraDlmld7QabJaVqbficDe]|nxXhdaqTlikQ^em^xCb~tSisiqLbjgTcwRXhLahXeXpK\bfAmEPuhh^|`gaox^x{eUdLkie~GKs}gurnax}iyWjy{]yPyjuSi_rke]]oisZhjhkrUv|upV`voeedkoxkikilsfqO`KdbigbZVn`Ph\_WgQnShzVx`q^hcsjYqxEkzhil]rkcjY_UibhYhScupPeYwQlZ`r[TYxjT[OsjUWercdc]zz6V[hJ}dayIxgvdx]p]Ur[Jy_rjGcjWgVWk?`T]pW}sVZVuPWjL]ixYnuHVUl]>KYsh|htUa|]jUzkXPRofNXp_^rXLqKgZT[b[IaIhpQpVM`kbU`gaQwZh}kYZcIggdkgcMbdAiaSoXhkQVQSj_[f[}aY]bSi`mbK^oaRMi`Roh_OMWWpWpuwW[[zTVRiyQel_\f\TKV\eSQoWdhlbgYsFSs^lYeUKIZhO^^^Veh[pk__UkhbX_YgVVWsXoLOOVYQP][`dXeTToUb[Y^fi`_QRQXvUdUZSeZfwg`d^F}Nc\fRy``d[ljW_o[pXL[\yytWaSi^T^ts`]eVQLLKrImioVRgiQyQiGW[PbueGokIuPOSn[^PdTkjZstJlfkOJ`edW\P?XoMjYk`MC]uaM|^OaORnbZsaposciNIa`[Md]aZdodoeMo\S\NRp[ruC|xR[Jk]XTaoVaVbZVWWSY\UVgSPRSb`OY`fZVU[aYQ\NPf\VU[[`_T[iNaVgdWXa`dZR_VX_WZT\gRZY[_dSk\XJZNVZb[S`jTRU^UXPTUakY[WXYRVXXaQ\UO\gm^Q]UJ[XbW\]TUZ[TYTTQ]R]R[^\XhX^U[e\HjZTWQSSWQ\QW[UbTSYK_]\SWMYVVNjYYTWWTWeXP\]XaSZVXZyTn^]SXU^afVYn`aVSfNbW\]Xi\UWb\V_X\^_RQkaRY]WSieV]]WoNaRZYZVK\QfQZ`JSLWS\S[QZ\bWc^VYUTVRcFNT\^^dSRLVcX\]\Q]ZPmcVRZWX\ZhY[W\e^OZTc`\b]NQYcW\VjW]SSRVdYYZ_WWYYkOpZRPUUOXT^ZYTVMa]N[Q_b^b]UT_UUUnz}jz~kwowssspyvqmz|~{yzoi}|rowwrzvt~wvsx{zx{zzyg}nv|p{~}szywtxvpvwcv{s|{uzyntps~x|sqfs{qn~nqp~vqt~w~~ln{vzuwwnzpy|puxzv}|xy~ythupuyozzx}szzwx{{|zn|n|{{j|v|}mt{ukswnysztqr|x||xnszvqtymvz|mwxvvvz~~zyownrxsyxz~|y{{xwylrx~mvxvkw|rnwux|zvunz}hxqkrvsti}r}w}ow~zmxte_x|~l~urvxvyvtrxqxy~scwcSXb`UoWhP\bYgJ]lT^QSU]c[DajTURjergbLe`QTkR]c\WSf`\\^^\\\XQenNFTUxLSROl[IktShSb_erlXg[eJaYaYVUR]TSVXTXd`TweYWX]LXYT[by\\kgWWK]LYZZS_GfNnVeUcZTk_ZTwlVWTRgS^`U`W|{WWUY]nZUmSR]OWVlkuQfbX;LUMKg`I`lmSXZPgpc|`_NZ[WVMx}f_Qb[M{uX_OVeuOkXNYc_g[qf^RNShsbRw_]Ug_TaRE`RSLUk\PmROgUX`|[gXOb_JXhbnNxuTRcPOGjgCVUKXXsV_YZ^LaSRqCRaQ`Ohn_^e_a\sZlNCYabS[`OVLPUYY]cu`NYY^S_VRdedbPd[TTf^Ne[Vc^bV\XWYp_XUW[\UV_ev|e_[Sd\l\__YSMLiNeUY]vYao[XxkfZSbNqR^Z]\QqRKZHSei_hGk]WSTW[]WV^q\enN^_^HQTk\aW\bg_m^[]qLqd_RS[`YZggU`U`|bV{SS^QNR]YBXWJSLeZaXmamVPYQJ_Wa][_RVKaUUaH[LV[e[PgT\j_f]TR_hXYWVP_enRcboUZWdW_`RNR_fTUuSXjVXQcWf_jTloLeRkcXOTt]c_S_ZbifSZZWZUXhbWh_YXXGSb`^^QWh^N[ambU\]ST_gOccYc]eWZKa`LVRW[WZRY\\SSRO\T^iR\n{YM\iU`[QI^^K^UV]b\[YcFaV^JnTWkIf^fawYb[bbcR\SZQf[T_RdWY[>pLXJOQPQcU]ZeMP_{hkTm|cVnHggWd]COoffrh^yWgDUgO^~LRWqLRo`yTx\gKw||Xw]iWbJlu[\\rgkyQ]XqpQ_mZR_clc`_fbprc\qiXja^}dtjS_{aml_@m]|eZ~c\]~aSXxWled|j}R_nXMZk_i`\sGhmq_ux]MVNb_kjee[y@vgwcxxLuHDVWcXNVg[k[au`^TYRZySPhc}A}ZTRWiMrKNayGvSh`?fbLjNdodRtToR]gsjgtde|ESYpugBbOyNNjMQ\Jfl\ogcilM>lGhmUN][qWNZn]PW[Z8uW{QQT{lw[}tqeb|k{{DOhT{dnV^^s^UpC?br_O_}fis]XRfjRoQueibaqijz`R`OkGi|q[nWgdWQQHZZtr{YgX`XcVU_`O\deboZDYYe_TCUSN^NY_eZhXdzeU|U]ii_Rv[_g\mQTcLRhxa?dgkpfthXZjVSHiWM`Xf\TcQZrhP^[YSRVU[kY\hgXddo]P\fSp]chZhnd]M^e\}ih]flkS`S_Lifbdy]Ye_iLWRRX_xqWUWWaZU[k[T^\ZdofklSOh]_JtTcaONZY`\Z`XScUaaP[qNgQ_KMGbghicgg]lMJa[``TpTmMUkTjR_\\bkpqiEeOTo]`U]KZlXMWwZngO\bTJ\bydR^SZVDVUYYceqm_PZPp_jQYTtafcj_amXWfrViOi^Qki]R\YZWjYVUrafXhlHfTdS[YZQj`[l{Zv\YTmTTaS[WJ_KbU`rjS^eYTnqS\`c^i`ZedXhaVO[_iPiYU[Zah{fL`k^UX\Xfi[ehRZe_hWaLc]\NYp^abowUbkQlj[`[XsRbWjvSUNZFVLSf\g^[oUVgVOQOfU\aK\Xr]WXUZhLmdehiE]YPUUZQdItjd\bTp]_WTSahZY\VdjiWi\ScQLJ`UkT[e\UoUZr]XU`|heRQRZaTcZhSkveVmZUZdOhXifTUaJ`ThWbai`jXfU\kWR^UScX^dOjnYG\NjMtgQ^V[a]Zf\U`caY\[W[uUdW\W[heb]si[aQ_YccgiUYd]h]kW\]YKnkahgkZW\HUZgncOWco\Zn_Yi|MbelisO\][V\ebVi\W_c_LlY`adadfYS_rka\b\qgyMSXY_q_Zx]Km`\QbQfQ\g`BT]PpT^_nZdSv]\[kXMWLkdIKciXakQWUBSkyfO^[fglUOQ\YV{SgeQ_[KGdcaHZgtq_[Sav[hY^[\LMdj}e\\^\VT\NaZPkwdbSbK[fBXUgFaaVS\lfrg\TMRcct[aNVQPScoZ_]_MVb[_c^g^LZ\`j`p_cRPkZ^TXYacWeHLRmPbMZ`EdV\iZprP_MZ`RkkoU_b}OW^ZNRO^lOOkddWgYGXoMFSIrS\g]XrVKqGUKjPNLQsgvVTrS[SHMTcNKqQUE^^[hZ]`h[Zam\lOiVO\bQj[dQV|QfOXWe`WHl]O\\\e\VZj_kUZMNaXdotIdPbikp]]XmGI[NkY[n`eiX\]XMa]VhS^agjboO\WobJDeXoqm^Gd~V]Y`NolbltJNJ`XRYZUE\OM_VXwOfW\_U]R^]QQ]RTgthbZISTTiTWP^XThUHYJajJqiZWpQZTmghcab_bZhd]UuC[Q^aN]QQb^]QPtbPQh]__eWUBNj]VYjf^gT]bQ^Y`NTU[Ppq\qdXHLMVp\ZkXZT_VZYPkhOIXh]ZWdT^UbfYeQ]fSXirQn`YYibX_XNT[QPyWeeV^h]POUYbT{VZfnYYXVf`JVp^KX[VUnXEbabWEUfgINXDZ`QHM^\Y`MYKYXvaQQZWpSy`Ve`kf^VmTj\i_^qI\NVUh^UVURFUeOJ]\\s\YYK[XkURQx^YedRQQb{STkL]QKWP\XWRYsMVZSu}S]WOicR`XTsYhffh]]jUwTbIobQ^W_b`OmHZ_]~[swbk^a[cv`Uc[xkY_ya_g[`bf_oRXf[_pZ[faXcaZ`c__zxosb_]fhepZuVWcYV[\g\[O_lVtibbP^Ycb^V\\v`kXX\g_dfaZ_nZZaxRj_c]Pc_SlZddfhRpTc[ep]hV]diS^q[eckbSaj^fssYaXUQXkb\\]gkMaYjffbbhV]idjYbmkXvQ[j_jm`cofUwfk_kYfa[_cgoub[lZZ{h`jh^rewQZfx\c_maYMqbeUgxjqj[Zjd`ct]Tcy]YWbawst_pe^]^We`aZf^vho`zRxiV_lRNWhmmvgT\kfpaWc_OcdSwopa`_\jkb`WZT[yXY\`gdaqooVS_j]hiUa_lcgf[az\dWid]{_gg]Zb\`fak|img[gYWbrnkba\o\_`edZdlbXuhudNdfjugbsgmllZdryhhU_cg`Xqd_\]\[Le`TbbaY`hodzql^`mcai^WkgcnSbUacee_a`Zdnar`Xmkl`o^e`~uQeobqh`c`k[`[`\ZVjbgaba`i[mfwgm\f`\bgy^\`faUWSoi`gdke``m]Ycehtcbaf[`ehcka\kYd^q{_xXd[h]h\sXTjVZ^dLtjXj[fQe^Vg\lcZYxdXhlfpg}nadaeh`YZNecZT^Z[ngZ_nQ[Zi`anNegd_f^he`yQ[a_fg_`\|czX_q_\balTkfSfYYg_hbW^Trsfbae{[qlbrbWUSe[gY_m]mfdcQW_c_`U`dpv\cbpUk^n[fuVfieoyT}^ieYU^q]h]aobdW`htmd|oS`kxQTamM^_rY\WZ}ehaoa`ikeK[eVLa]]``mO\`]nddeWT]TZR_VdeYPYWn^ZqgT[W_b`PHUspdVe\akjypUX`ZZacWdXzk`HQchWYZbkOsWXb]rfgdk`tI_q`[WogoXh\QYdZhZVKDcZcaaegdDM^`fnx`XR_`]dIk``]bPpWzZeg`a_kVwfdYm`rrdlZses|J][}l^KYSQYaNS`jhF\bcLdg[_`k~rr]^YfcmmcUYpVk]wcqpPiWcSxa[YlXkooc\PkQQ\aadxkYTMckt`fdjWUuqHc^_aPhT`vZcYcTZfY[j`\cS[_Y}k]ZyQrUZkJ\f_TqGo\T^g[ReWbi]qaczeyd[eifT`UTZRUUfoSc`a`^wW^jjk^cV]jgiTc[i[sa_e`gXe[UfV[Xjs_b]dlYY|jbT_g[lZXlaV~[[rTTz^xYeWeR[V\TZZma]UUcf][jbiYglWS}SaP_d\cbrRLTZ`joRb\f^g[keXgluOuwZlhrnWWV[w_Qi^jjmdS\hhfd\kWnd\dVd`RR[hi^^`_XkPRwTlkn~_QOTdg[t_\gXcZd_OjZ`hjOTm_VLY]cgSfSaaT[NccidrW\gsdcchb]jf_lh^f]cLsUn^ab_VbdfkRuYqpUY]lqSQcxbKhgat_RW_iWjj^Xnm`[W_hh]c^UVXJ[^dbWjZle[TZOO`puZY\^b`MlqYUX]\h[mhad`\cOoY^_e^cWpthORaVewY]YNWdlc_PcbjhRe[WS[g`Xq[]USnjeeU_YTa^cjYRNTS[NcXbm[dRlcp\ZZib\gTla\wXqgKJ|YciOZ`Sqg`wT[dK`_f^_PXY[_Ubo`y_^R\XXS^OPXVIQNY|]SKiV]kgRodOYSj\aStg_i_S][UaZpWc^_\deWrddRpVdRYPVbfVmoQj^UeMIVdVcgTUYnxYhvZUXhicTkm^]YTOh[iWwvQ^lTRjpS[]TLjWWpdS_mQi_^]bZnRRbZjS_PuWmS|^\mbZWV]SPHZZVFkcg]_ddSjizQZl[mdc\]GS]]XlYSSQ_]YWGR]ZGRcZMN_`[[OOW_^^[jTiSiiHWNZZfppU]m`}_\TM]TYaV`j\hS`bQTf[_UffX[pwl]ijhdPR\VeY[aR]ULUSVQRW`_d_YO{ebdVc]a\Wl\[djR_[SVXNZ}XXROEHfdtPP^PY]]^[UuXeRU[d^Nd[WYq\`WfQaQQKfqkYo^w\RbhbZjXYldZq_a]]`jI_XS^dXZkT\bXYkWnkieUS\Znec^V]eqYd[ffYiO\^L`[e]^\cSkTybl]hQ]XWgU[bpoUXPLYVLYhTN\ZhX_cR]_[\fIajabMmb^U`YYk_We[gUr[WPTLYU~ZM^JSc{WL[cYteh[UW\LvYLe_YbIblznl_eUiWUcU`h]eWW\ahn_mZ^WPNedUNacUXX_kMR^X`X]_hhQZRacaWd][[hecZVcQohdZOcrZdXj{Zcnj[XfsbwdmUiUYmfRbPWY[db\eOT[Z[Jaf[DZ\QJ_LgzQYkNLs`Nb^l`giGUYUjXPYgISZYQSVPaj`zUYOa[]brRNS^VZSTgV_[RfyhbfrW^oWV^IPR_^RYaZhdVYWn^Z[b^]]kRXeKdMwaYVV`UXOhQTVJ^\NhNk\`bdMmhlUaQZXPQ]^WcfTUfhfVQbTwdYO__mCY`OMdgSNMYt^hZ[WUa]WX]_flSVyacTUm`_ghhTYZOYIVXPk\U_lYh]WU^cPSXZnGKWgSVT][`W]S^cj^NVQX^ah[SV^ZQXbYi^fPVQUpo\VHa\J^_SbbWXTKebN_YeTiV}gOS[OS^nZRLV]Yn]XZpVcLigXfwZ[YaKqgmQjki\TdTcmRVcQg^hYd_SJ\XrlOXHZNUVZYScvV\QR^k`^sY\s^TnNicRh]VVPq~uaxbZx\aXXMPCWKZQOswwlnXaj__ryXQGnbeakd^GXheEgWrY^agpbKfWn`ZZqf`LFdpTe]`ql\ViH]zCgREkspsTVRN\cYeejgeVhP^[]knaZgem`O\mdXR`YY]HCd`MYU^R_Zm^PZ_Ziy[_~dscWUOYZ]X_INuVZbWIS_ZhW\YWQ_egKgWnfhdWSm`Qk_MZ`ZsGf\SQiRkDk{Q}]ZVXc]Qib[dB~dTNVhYxckiMb]kfolXkuLtV_mombtn^}pYfXT]fSfy`ZNTDVLrOjfckogpdjPk\r]^jZSKb]dlmfklaKOg[NcHNdZKfpupL[R`ckOYI`PudD[]Q_ZN^zTMWcTieb^jr{RWWe^c\h_mdm`Qd`YPXe[j\Te`]qnddXcgiT[n]]WlWRQ`ieVf]qkp\sfWc]\][SoXY_^dVYYgVq[i_OVaYW]_TUWZmdjbZp^`eZdl]^a^^[V`gfnYg_`]]Vl]\gdmQVUTjSZZV_ag\aRejZ`]bZWgbcmkb`QXNYk]d|riZig[`hbcbd^fj\UZuXaajkWffZPiS\e]p`Wd\cb^UbgVd{a````a[\[^`USeYdUmJ_\T]X_aeaTrUVbYioe`X]ndiV_hf`]Z^dWdjVVmOPO[acRrcWafqf[Xpwa]_Kb\Ut[_PZZlcRN|f\bjcrR_GXTVe[Yk_e^^`dbW_W_\UQf]gc|YPn[]dh\q__]hb]\W^bWSZgYRYmecYl]po]WIwXOPPbZSPbGq]_UY\YOJNIH\NPSEN[[d[biAqZghbKhmfSedYY~M]R`eLUbOYn\TtTaTbZt]UZl\\T\M[]T[O_UOX_QR\dhAeCqU`VLWSYeSJ[X]SZ]X[UOtHhXBR^bTa}TRWR\hYYk]ltWYajeWVk^LZUdmGXYqlQX[ZOTNWRZjXbcZsVe^[v]SZWZnIH]YhdYQjecWvRfHSZPbWa[OPc]XqiVMzY^MR\QR`PRYZ\Ta\YYacImbgPlZgep_ZYTYXWb^j\QRkZTa[HZbYZjeV\g{YjeXYVV]TRPPbb^\S`SZWiWU^o^C[`\VBK`jZXiwZvZUTVX[bvUdYMbRZ`SdWYLPgkafbO[i[RVMUSPoWkaWaZ]XcmoTwTQd_aPQaU[ny^`a\jN]kQinZIqvS[UYbebiS]cbqqfcQIYWSXjg_YLTvfPaamqRHmaZbfjk[N`_brPidbjTY[oTdkg[]k]lT[JQl^gX]OGONd^vXRUdlinYYXsTmg]nOaRQm{ak\dQoRcdPHQiWMN[Sp{bxzTTybOxj[Q]Y\dLjMS_^TdnmQ^zUd[Yyd\UZXeOm^cc`srbazmXKWpeSJ~bgXNDpSZMvgZhH]ny\aYb_^zR]qZbici`\VdTfZmidvUnotNcZKz]b^]NdTT\Ul[U^PP[ZaUaO^WN_UbTTWePfdRLl\]VVgtq^^MVP\Qcc`N[Z]KVMX\Y[XeeiRVbs_Y^lbWD[LhfTTOSYYgY{WMZaNNrQKK`SbWQl\efWIOINNUU_TaRH]gUTO[saKiLM\QKOWk^VahOUPSjQPgdbTK`TVYjd`HSTT]g[aWQZWegLdSXlXP]bYc]sZWQVe[Oj]aQZN\ZXSVLRQ`LSOS`TkY`i^\VN_ZmSOS]POIGl_^Z[S_XLURZUFNIU]ZRUbTP_[ISZOWI\^b_XW]NLWLFXVY[TM][KLGh^Pcggf_ZYSb`bYLlVqV_UU]aNZX\^aTS}UYbU\^apfJtSNcSlbP_W\VVRsTEUXjXZX`_f]O_WSTQ]T]bFPOT]jT_fXU\USahO[Gm[NPp_pwU[PQQ^[ubW^W[amQTP[S^XXb]ZS]RmO[aXR\LaRi^efY__rbadbgmX[W^aiWPhYXdY_TnJfskYPIdYWaS`On\ePYPXRVeSlPIUW[]acPtP__SYcUaieGSyYZXUW\g_U[UYTSa[YWWqW\OPbTNUrNcY[SXX`V]Uc`P_^\tbK]IXmcV][brmKcTWQapbWPmWVOd^VR\ZR_Z`gLOZR][RPePeN_XPRPiNMWRnX\QQSsKYZlTXYUXQW^YWWQa_aUMneZNXvc[MrVRQRRXoRW[ZgVWTPrdakgCdQ[^eRQecNLdcXWZj`[`]ejxf`Wh^h_TrkPaV^K]efbT^[rXKRX[||PqsbY^`aW^n_`][a_hacF\^`hdU{Ld[zbVTa_a`\oHSejadX^Z[\aoJYWl`lMLV_XaNfisECdeX^SIWYXRdjL`gW^VZT}eUfb`aYhkQ[aNe^xqTn_Qf_cZbUmb}WejdSX\]`Rae_W[M_]d_Td[e_^wVgWcT[XehY]gmUgj^T^cWZxf|`sTn_`ZgVoXWuuVoyJrSMMZ]\[\fN\SXc}pkO_`^gholbmZbcDevP\eX\WXd]gUtuQTfplNhWRlfrfj[daVzcTmaX`v[PXdNZP}^^[vfUYtZkUXfk``WbkbuT_Uh[K\Pjib][X\xWiZX\WUnV]_rtfn\MdThSO``SQUZURp_dmfXd_Uqi]YppbQOPpSpb_lblYRVZ]WM_Y]\k|_eYY^`V\e_vTObg]lmdeKAVgPc^lQQQn__b_cc^[Y_][XBTXsoPH\QTNWZO\MUy^hwj[^efO\wWadTPT[aV\QgOW_YYOQeZY[\WbfZT|SRyXVHeslK]f]]gZajc]MS^cO`j^P_Ktb]S]PT_\[XVQYMXYWTfRcYN^Xud^bRjf]_UIYXhabTXX]flMYUwmYXV]a^VWRt_`Y[Xe_hZXq`^[YETbP]VVf]i_Yb[qg`kcTxZOdlVd_eZdjunrWXQOkXeQgYSbZRm\WOQmWZgpQfhV`^]Sl]QSRqUdc[jg^P|UV\dWUK[YV[VUU\KZ_X?W\SVUWc^_jLUXdUWXbLVlZRg^_Zbp``IS^YXiNeQ_NaJVPZ`Nr^Zf^PVW[WCUb`R\NcY[g`qSjJheKYcRPdm\K[QY=\U]`^XUZfJSdQmoqVX^V[IOh\cWZM\VegdOm{YcLcOeI\oa\a[lXXYS\Zc_JX\[h_ZKXbh]up_hj]JN`DUgk_cueiRofT^JbX[UIWZN`fY`^`g]^XT\FH__SaYj[[bLTWUO^hSPs_ce[KSGeV]UNiU[YSoi[W[^gZZXcONc[^\edYc\YX][W\[ngbYZRaYQTcx]T_c[ffRU\bYT}TodRRcNjm]dnWWXwv[d]_R`TX[]RYgpA\Re[nTX]bb\SCbdYdZiSmeYcbfxRcVcO^YdNVNjHIYTKoR]\KMjWSXLZN[RWK`XdjjYbHZeObXd]z[igb_Mj\^W?aYfYi]uWT^idRbhbdQftVYhhPw^^^ce^]ql^`r\Y[aYeSTRQa`feUTawc`j`oUTRYa_rijlqfVoa[pb[ZZaw[{^`rcd[W^SL^PXWXe]`Vaaq^pdfmanm[v`dw`RzQZbh[ciVb`xvfXo][_mQidfVlYPeY`WIfaTc`Zb^Mu]ihiX`^geZ^mcZ_wgYb^Zobf}i]R_YWkcad^RY[V_g`Kr[cdb\`]ZZ\em^SUUsPZ^bYs`gRN`m^so\hPN\eM]odnj]ffTafj_Sb_bidVhkbR]hY`ewVds_[y_R\TXeXdOg^mXohmgZ[_hgWa`mab_dnYean^ZuZRQfaZf[\UV_`ovWTiWz_H[]a\\]^\`[oe_RblahTN`abnT\db_`^ZWmYdZWRR]T[s[^bNbZlVa[bo]]UsaTRYOWoTUod`S[[ffnaf]\UpX\RNc`]VV`aSebVh]jbSc[KhbSTU`\[^]Vk`TfQPS[_VaQWWqWXVfXm[\aJP_eeSeWWPSQomRh_SWb\lVSpb[nOlj`ZpcL_[tRVYhVX`TYs{nV_Uap^LXMPe`ezl\QbV^TdRv_^V^Zb_PJs^VX[Rfj\`aR\ZhiGNYOUW_]XYVMdW__Q^\_dWLM|k^kKZ`aYiTgWfX\]][URVXtbi\hap\__`V\XXZUv[emI}Zgq_cQ`l_f]NTZUSca\pWSqbzXk^aanae\[[WdNpUUVXcqaL_\vROSXSj_XM\ca_`VeooeT\[rj`^dKKTLN\j[X_]aVbc\bVe]f_cjTMs\q]dQH^YRbb^SdhoM\PQZbVg[]ZW_ad\WdXVZJTnYcZcY^UZgLTecVa[hiWYXOZdDVhSfaWOrQTRZZcveiQR]\QZPqZULkpbZS\mlgZiO[]XQ_TUVL^i`]eVgwagVTp`QVk`e_oesQ[uWSobiV_]`fTK]a]i_R[NXLZjPc\ScVfgneVPaN`L`bqcwN\^JR`qw}\`[icl`UPSi]SQaNQRY_SlxTbY\RhfkcMdNhYUd[lfUMZZ_XRTe}Td[WL_qhXRcXZUViWX^YmZHZfkRccc^kXd]ZYpUPT[XY[PVfZXO}ehbhUnd[~]`[S]Y\~PdPgpXmrLaZTh\\pSOe^[^jYO`x_`ZcVc[XfxlcX]iY]`j\a\glIU[UUVU`\gc]^XQdWWMNedTRN\]cX`_hbn]GUmPibbYRY__vXMZQWVcRcbhWQ\]P[hNKTQfRZ[KKQ^LTURSS}ZhSYWITg^keSK^d\XVXO`SZVQWRYmXZS[X]b`WTbfUR^U[rhltafkX]h][[SUY[OfNUZPW_]fTOZTWNXREVULFNbcTjX]OIedUV]dcnZVNZVTgicVReZiUgQcegZi[`O\a_MeZQSfXmPaPa^lRM\[]RV_\ZU\PSe[rX^cdScYaiMSWcZ_`VbYlYT[R[dQVXc[YP[\][McvPaZUHdLc]YH_LdTZY\][fXadd_iI]^K[TY_P\\ocVSLV`ba^T]c]q]WQNZbYVWYO[YPcGKXXTjW^LW\B\Pc\QqjYP]T^DZ\Xln[PYPdOXTUjfXYkLjZWh_]]d`OhYGeddKF[k]h~mjS\LahqeIGwdfh_ZPgjgR\NaxpeWWKYxjbckcZcZT\efLVNeWUWTeeMbKU[sgHX[o~nQYMz_VRQahaipgxXcNgx]dHapa[bSJktqfKY\WW]xZ^^OzQheFEUW_cWElU}`OTba`[\W[cGVN[aR`QSpSlgUhM[YLZsJxxhdxZxT[YpR_ag][^^fdcwWnfhhvp[bOX]^zXs]_Z]nS_acQSNlGspUSaOxQW__kkUOejE^chEe\Ql_]QTFd|TmXaRcX}fu^pUSNnt\[`knVYgMVpQ`t]ZeUTgZYOnmscgk^ojdemir]lOYeWshiTMNx^]fh~jRSPUIPXp[Rv[k^yYOfoK?Z[n]YW`KlMXQeQ[PWPe\emZRN^WYL_]\@LfZ\ZcTGRXoVPxkTbdbFq`|[XYZTSYh\eoeSKadePQ\T[V\RXQs_ZI_OVhSXMXgVpmZ^UVjJWd_Nh^jZd]YWbSU_UcV`sWeJbZoG_[E>KXWOaNOj[QY[]nTa[mPRx`rjX_XsSbarSWQZo~dpa]VNS^YK`QKUQMZZbNKXXOMWTPLR]XS\HFWYT^gbUARWNWHQKZW[WSJS]\\QRWTUHUQLQaXKFOiZVQVO]M[SOY]BYJXFXNIUUKRQ]K`OQOaV[VTOaUTN[MTWYN`SLXSZUgR]VY[ISTVTRNU`aVTVRG[PMRKGKLNMdIT`MXPUJbKRN[HYQBIN\KVUUMQ_OVWDUZJY^VWYMRHO`NMYNT\HY_T`JSkUPLeZhMbZSVk]]biVpQsSfmXa`O\brQd|iU_YO\SayQuXQT`Jp_g``U`\a_e]XicpbW\_\SeraVmjYhUTaZPaK_k{WbXV\^nh]LcatVjmgdEQiOLg[O\tuYYk^esdnc[uDZW[z\eg{\_]]\TNZpjTYr_ecMV^_mZJaV^t`S[\dTihT_`]cgcch}U_mP]{gi\[VwahplMe^SuTrvWYudjc[RQYadUQhUdQ[oTShr][UqaenUNec[Z^tYug_IQ~ah\jPh[i\^[ZXWBR^XX\q]_V\rR|mhaNXab`cea[^b_k`ORG__\bS^kupciYi`VpvZlf`lYb^]WPInn\h`fiNcSR\cg^^Og_}Pah^YTPhcR[XZ]e[HhZdXYZi[VfJWX^\\beUeVeaVTca[bVZKZXb_]HcXWXb\SSkM^Uba[U\`[WWVZhRcQYX_QZUJVSVSQYSZcVI\TIZdVgQRXNgd^Pf[NK]YXWZLKWadF`UYSZOhf`\dPTa[`[bT`LS_Z\djU]R]Rd[PeKUTUXgPWVPzW^[cUOlWQWTbOX``UZbOURSTbqZLMSX^Y]bLek]YaVVSQX[VYUX[V]b\_OWOjb_aZSVX_^W[kbY^ZKVSYOcLTT\jZH_aKdUERZacMaLXawQWZS_fIZ[Sbgq[OTZUJiQiT`YRVUh^YQ`[W_hYa]V_WcUZYHUX[SN[XQaY`PUb_[TXjYWLs_[L[^LQXZM`WfZaZ{TVNU[`XhXHYeKe^^]`McYcSh^WDWNORaaNRTN\iFY\cPe]mkafY[^`_Ton_Qu_k|Qn^XdZfkZX^deg`R^\t`_woWYaWZi\UTh_qaegV[e`jaTP]^r]WhZ\uU`pYjaUag^c`WZ\RWgOi\VZ]U\h]iieWVuSeP`bgbd_Rd]b[XXakpRoYXYabYpgf\_z[b^Yrnf`O_mXOfeb_]dxZf^gX`[jc]dg`fVXj^dge]\aj]a^dfo^gZYW[eMS\_\kn]Zbm]b\Qp\canOifacxTetYddhR`W^[e]_^Z\qYqaU^\Zd`dU\b{pqtdm]^[e[X^gb`LrPcWUnnmco[c]dVimi^^wXf`P\^mjskfdfdZWbnWgxcawes]OVt``fX[Te_^kagej_kUTT\``^aUb[k\^UXy^a`UZ_UhcgOUGPY[PRUTZPRDSOL]WPALQ[=NIP?ZXUKGQLLRX^UKLLCJQFVZRIJM=ENFVeW]PV]DI\UNa_VaITbIXU_T_WU`UZOOTUSTPTWYVW[SZENMZTDF\S;JDSRSQYMUHOSPNVBJQXLWPMQRXRP=YDEjQPVO>TGDF[ZTVXTOO[HNHQC=T]IHITJVXJPHRGP_BNNT^XU\XES4XZKLSJHHWP[PZIKLRYTUS^KH@MTLKIVXZAZP?FJX]VYPFX\RQZL:TPUFMbMVLI]=]XEOJJOUOXLYSRPTOMKVX4LKYVUENOPaXQPO^QUKiVLQMJ@OPJSSISKNQM`QQZZQGZNUWMXGUOZYIWRNMZU=TFN]X_MeQQOXTaTX_TV`THYIZC`OMFFZPU_TUGlV^VcEWgZM`QUsZNL\jKYdV_eaVRee_PNTgW]S^RLOgUTn]]_OccVXVPYqDh\iS^LU_YaTPNQQTQe`]n\kRLQM}oh\\YU^R^f]^QWSR[NS\[Y^bRQZHb]KcW_baB[[Tf`V]_WZoTZcR\l_Yn`]NQlOxXWSal`UYWKVOYQfdcUqLXabY]XYDVQTSgMVOc]QP_R]Y[fiYTUKi`O^GXaUVRjeWJbTdZRvVXQVEVRIMIGZ_VRWYR[STTnQvJiLXiSmaN^Vj`aE`]SVR\eWcZeXSd]Rx[fPUhWUesQjYYCObYeP>kKOV\PKQfeOeINX`[_dh\Mae^K_hSVYTWNQ_lfV[YINTQfaaPVc^aUDVoSmLRaj[ZsgMWf[Y[gY]wCd]\XjdeTf^I`X[VJ[eT\b\pLT^YWplN^a@`xWWWXOXMROYcc]vTSU^j`Z\Yft]e]d`kOc_hONr^Xpa[tHZ\JM]\`Y_jRd[Uck^`iU\_oO`jcdTaWf^edSY]fX^qUhngmrSP\SUuR\F_oYgNWdVeXSdDUV[UVZMYQ[rkPS^GU\`cPi~jcJm\^bVN^]mU`vgMVOdceo]Q\X]gAP`XZSQYY^ffTa`b`WN`erMe[X^^RYjd\iQ`XaXVkNk~`ZdbQV^NZOeZldNRTp]S_bthWV[Z\_Va]]mZPWea_VgZ^KX^kSWeYRUOUYZJUf[]O]\[YJS^SkoGy\K]\fW_{W\\_RQXmeOMTo[S^UPle_U]hMjcWoddU`cRtceaYk`K`j^Z[She_pW]]f`_RX^ZYYhVV__ld[bba\^`[^bOdbtf_`VeXl]ThjnahmicdXWVmdWr~_^\d[W^jecqW]eNcXh^Vh`bSdbKPmrU^Zi_Xq`d^OPVIaqy]Ve`jok]gljqb]Tbuf[oFh\QYotaapW^MgMo`NpcVUS`dcQOeJnpvSV`bl^tUhbU\dGQNUmYcwd]YoV\tcsbZ`jdcgYbVVb^lgzu\WaWjdfdSfZp_N]`lfgN^tP\Z\_acYTvZRbjVU]mabSQmcv`]m]eg`d`^frPMU]V}b^f_KeuggIqQXh`eigoed^]qqXX~jah|Nhkrem\QUTf`]dZWfRgmVlvibdTOioueRONSblcUl]iodWmYXbl[|omc_iUYiqU^TqbY`djJT`fMTlaq]`bRb[PN[[PMTb]lJ\dYM_XV`V[]ceRLWQYdVbg[WfRLSQLf_L]ZBas=`bUeeSqIo;XqY]mma`U[`kYWYXKmiRSk[oWvhR{IlYdWxT\XaWXOHZ_LS]PSVfbihOQ`\QVpo]LgVeuM;ZVh]OB_@dVR?Zsp}ciRXptTSUVn`]qf]ZZoaiXh\TaQ^SX`[__ZdNXQfQSglgk_OSSX`QWWfV^TPYfd^d`cuXRUVe`bpae`lwZZ`PQ`S^iba`Yca_YRRzVrigXL`jYb[_chfd]`]dhleXeNX`lVnldXUjhpl]`nxMx\por`[[\^ZfXldgg~aYb_jgYYZ^f]}VkV`bm_[]O^j`Td`Vp[TTLI^fYZS`Rd\i]S[_c^_xeZcqZmbfh]YWT]^l`_c\gOTbMTU`nbnDePdc^\O\b_]e`OZUaagPW\g\NePnh^RnSV^[_U\fblahmgWaXrYUd_gjZbddaP\^bfgirVY_eWPceX\\T]_iM^g}Qo`bpTKyj[kdcYaea`eQhYVPabiXrsi_XSi[\SWcYgKagUfVZk]]f{Te{dm_it[bqlbXXhocsWGvfbmdrcZVnP^ZijoPb\enbl^_tfOZbbrhUgNZgZw]eVT^dx]tYSYf`dayopuilqVjxkyiZeVQcYVcdeYWdkcen\e]W\a\bXieligebradTcqhc\j\fe\aO`lTZWeXkZY[QWZ]dYbkWcwVuedqKb`js[ZTS^a_~j\]ad\cme^f]d`ma`WZp_isog[o`_`Tqi_ZSrdgPjlNj~h]oZmk\iebz^[Wji^c_gbkZbSXdy_Vmhf^f{iR``X^zZivjTXjfcc\V]Y\Y_X_gVeYeYxdw[Q_Y~d\`uhY_XXeeeY\rf\WxpZffhNck]b~]^YQP`gkqbUhaiaR^in^q`d_WobbjmkhR]mgpWj}Yugca[\hgXhUUtja\^eWby{^jbe^]Ykn]m_TS^lZ~jpq[]^[hVXYhfkv^cY\dacYhY\]ucQ}g`\n`kyiI_tjRVX^]Q`qmcWvs`]fSt`z\[^jL_kbZzQUY[aZWq^depadqdfaqg^]WUY_TV_{RcsclS|fzgbz_|mXbVhY_n\f\Xu_naWy`\_dgZmSgc^b_ddYjQ`wwVgWl^JNlcVgeL__XjcQsa_jwZQ_id`lmi_thgk`bctT`aRbb\dmd\x_d}ddt[hUUkUcccj^dd]dW\ihbwueeKn_cP]TYraq_w\[aiWaqfh{Z`bVeYfrWnof]ub\NhX^`Qd`fkrsbmpX\rgYimZ{^if\Z[d`f]gknzolSWY]kRw\[dxXUUaldjddm^k[_RF[WdiZMXZ_`UFAoYT[bUVVdQGM]RRIkY_gkbXTQeSLl`Tli_o]^XXTIRwg^S`kLWh\bcZV`dunbZrYQqTMnf`P`T^hpDSVyX\DVeVURgvLgZkTeVLlXPBXMY}uhP\O]N^dXk^`bRJg^lh]bWVeff_RXdXaX^Q`[TjW^^QWTlTi^bMsiMSWV`gYQWY^P^\ac]Q`]pUGceSIXceUmWZca[]XYYjTk^_X]cZ|\MNn\ON`^cQRSY_bNR^jb\_QL^bhf\_W\SRVchC_ff]MeVSbdFTXud_`Z]f]Uye[^X_\T>PhqLO`VmiOeVWW`VUsXLQK`[e^STSpNAmc[^]UXTEtRXc]W]MC_XRO[CJSJPTWhXdVMJWTSL\VW>aTX[k^UAB_c^ZQIPNQPEOWTWmXXIG_X_NYX?f[MGFVPO`Y?G\QJIdKNQPLA_Ma[?PIWT>LILNGV:abSF]JPMNTBSWm\^JIWSbUNOWdQaSU`d^YOQGI\Y`Wbae]W^BWV^gbJNNW`T^WBTTDXSOPDVbYCMEFUURZHI]b4cHWVSQPIHJgUXXHUJVAfCJVOALbNGHfWCXMY_\XHOVYXO\MHjcHpI[KQQRGQ;QT`@__daPQZG{d[BM@FE[RK\YRKXQUMk\IHMbSQNAPNHJML@>W_iGUTLRFZXOx]SIB\NL[RaU[OnRPUMTNZ]aaNGdsdaEWYbEW@GU`\UhfHohX@U`]bMq\RaWdafQCY@lY^Y^e[TaB\UTk[AZnV[tTWan\ci_fWGST.^l_[vMqy\ZXk[\fbvm\\cfekbUl_VT\krbTwcR_KLQ{ihU\NX`)fWZXBcgQWkW0eUfsYpXaMGX_gRNPvW\l\Od^]Fh>[4ja^QOgfhZcU[kubqPrmbgoU^cmd[jXF^ModOZQg^R[nwPTYFYLa^dWyZBvdaMlw\P`ha]@TYd>SelsFhioZnbg_fELecU^Ab;XdP[eujZURENc\`HKVW\~b^dS`}nSf\G_\m[2jYeUfc9XUOl\n_XX?NFeSnWVqfLH^d[aoLl]\kvzhhkg`Wb|rdaYf^f`ebU^e_Zdi`kNv_ecmdmg_hmsu_X[YZYm`lhTfqhaYhpa^[b]`^`givWs^kb\lcYit^lwI_Rnb`daUW?^ank^c\TZn_bl]^Nbjb[p\\VSbZb[eXRj]jgr]v\\`Z`naZ\f`_tdNj[e^gXfZZ_``keZYZqajX_gjgc}jb`]Wjgaq]kn\]bXZo_^Ps\jh[Qn]fZ^`WqgecgZd]^cb^Y^^Vi_TZ`\[gi|Vh{]cehjalhx[Ue[carjYeTp_gWRgcUTYeVrf^m^bcmVcZrYfSXe^YYl\~\\egSrng_XWwZ_d^]ZcZu\XmZjvZbepfRg\j_`ixb]tx`nesg]]_dfxxltfgtnnpqffnnzurznzgiigudllaiavftkf{hqkksemzqsYqeb}vk_zrspxk`hg|Wkseikb_meftbtiqtg]xprxifptqaptjykznqnij\nier}rn\p{in`rYqnvtjvv|epgpocdbycoY[xfhrk_bdjkiaiwjre`frzczsr_rfhsdjq`fombitmz^hnosqtdu{olisi]bkq]ilhd^mdhsloiWuyzzm`hipne_ixvVoie]mwbnq\_k`lpcw|hqgbwna^qRfolebUdeqdprke^[sfYgwqubbk`qjsb[Ukxectu_rrztlqphfnhkvuknd{i_huojvgga`|rjh]ohlj{yud|ifhr\]k]\Ye\chT\tV{{WWctUfrZg[_saWji[gbdx^brqriZwcXbVVTW_\jYn^Wgam_ffxWfUec`y[g]c`tVl]hcYnjizyda^[a\`md^YWdpep\ZXYtgS`KcwmahQw`o_jnaV\k\ZpfxeesxxYX\fgZiqbYk]j_ZwqWr^ojzZ`Yn]gnb{]qUiZltmge_rka{sUm^ld^Zmhrg\mf|llXXd]Rt]d`fo]awataYkgV[RhRU_Vojg^aoYa}Vomelu`up]mbacdhk^X\La^]hc}sqb[XgfQdR]q~o`dbc]sWp\p\b\]ocfysqdkqTcxSMVrb_]qoeXe\fkb`kae{ldaMZib][qapt`am^m]Jo`pjf^d]kohMuVjaZcoYGXSg[McS_PZ[QN^bZ]aw_eY^KXdhOfdZ_\VTob^INP`_eti[yUcfbamveVQHhcqlSudWTiYmWV_UdSr]V[NUlY[`Q~^^pb[fLhmoWY@XJ^]\NcqXmSoW]dXSg\YpuI_ZXb]\fmOQ]SoijZIH`MrMFnVR[{Y\dOXd}iUFfrQcUUcWnZU`SPg]f]PRQ[PceZbRZA^gdX\OYcisdXi_XaXWeLTJgU^^`UU[LW]Dilh^{QecU]gMZPdVeRT_O^aPf`_cwdXBXl\inSV[A_chzh[pXjVWa\fahVi`]XPhSYZsqT]aj`ad\vl]V\g\\V^d_ljVXgT]TzQG^eNgPdNiZqg^uV_[ncfkwc^ySe^dX^[J^RqiOkMSYkl\je]dWugdykX{XisRQZ_]W^_X^aX[NbYbfIZgMLQ\\NWb^YWw^P[RiSdN^[^V@HVgcYjGmGgJXf_[WWNR\Uj_VmMau[XRRQSOXTdY\[[`dPXnPfUQUGadH\OXcVZzR]WUH\Yo_[^RYbTNXKimkXUUU\YONdUypfMoKV\KMVbWQIoaQTX[TpYhUXKhjkh`]WRadUOVYq}lQ[]KYQ^fqVdXNS_jePUdTaRW]V]`]WNPHSJZ^WTOKbPD[]YUX^NWR^uUFVD_cYyRYQ[MSCC_]W_cecOTecSROJ[[MiVNR_WY]^_U^TRTQlW\hNMT=qVa[UYUYKNZ_VWCZRXR_eMJYaER`]iYYVcQVcb[LOGHY_e`_RMKcT[]XXNQsn[ePkz\SZZ]PWFVLilNhV`ZlLTgeqQXVeKG^]RPrm^WNUU^eW[h[QXjUSXX`c}f}V_n`dker[kmbc_Wih[U`|Vmf_a\lcg`bl\tgcmWn`gg`moXi^zWW[S_]jYkcjdkq]TggdYv[]ro\_lu`bx`YfdNjUY{qjel\WbY]`XcXcZ`OqVebT`yfzebfbib^uXlkp_dfx`l[ekVbkYTbapko`_]iZ]gk`jZW]^ibWpt]TrRWteaqeU_[Z]aZlf`\fr`^i\ehwpf_Xdb^[]bgmVQ_\_r[clca^Twfshb`gcgaqYhm^^letxkVwsiXahpXT\`Wdfb\a_Nl_Wn\dbpcrW``\c]_X\ZZVd]gkdV`hVke\Wn`crvYaphWemh]hezXjdfw{ngcmaiy^on`ggedjzbMibeewhboQYehg^edikcbdwc`V^tY\hekhhnX[^a`b]jca\[EKaRYhik\_W_n^]]j^\UV_[VT_XXX\[^`a\WcYVQhSZkZQw\RRZjldYk{]b_h`kZ[Ska^YaSiOhM]VaYf[bYjY^gXf\pPZRnRZqeXXJ\]`UXZgPmYYWYNVgVlZ\_j^\eZ]RbY]^WeMc]`Y\^^wTeMw|VYeY^U\\fnWSS^eQ]d[_d`^Y{o_XyNbO[\VyV~af[Yx^dPt\Ja_UVSfaga\V^hVZP\RSU`_ZoXXeHS`\Ph`fTli^TUOYh]Wtb\aVPTmTdjZd]W]fYP^ViWUfPfLl[_Mu__UeSU^]]Zb_]Zj[jZtmRhTN^bHbXTWf]V_XmU]ftTsW[ld]I_[YwVe`VRqZTQV_]^U[ZcZS^gXLfiMMmb^mmm_]RotoZgveb^`PVr[id]]bkcbdVccc]VYYZbRUkR^_e^TV`]gdh`VNZljgY\iOR[YQjWTnVsn`wWW]^PlVb]^UQUawbdcdToY}cPOfhh]cVcj`nKY]GQT]V`fWoMbQ^NP\U[jeW[fSVXk]WWIdVLjYPiY`UhZc_cafRSQTRUWgibRZ_h]U__[Wp`\hXa[`ZVf]Vjcbf_WL_\aWUmeWOPW_RVdOUkNMfWfWYtJZMVd[Z`LhOoMYXXXRX`aavSQopgkklG|ZWZX^bakbig_S?ZtN`NzW`al]x[YVgm]ZZcJTWOeh[e^R[lOh{]p^bUq`DdQXO^[c^e_eiajbaVoYujfcV`pyRX{rcWksRkS^fY_]iYWdZr_abYannUYf`ehZYskX]bcf_Swgl_Xkbc[]afd^bcdr\od^ze]s`\hd\X]WZ[YZ[]beg\_t}bb^gU^^fbV\W[T]Xga^UofZ|h]c`\fked]k^zb^aXcdYdY[cnzic]X\jsUfhdmuix^ZU_Y[i_a`a\cnsfSUnc\c`i`^cYdZXaR^_W_o|`bds]S[j]^c~Ude^Xd`_b]Z_[S][m_ZuhiTcac`^yhi`heVqf`zdXvdW`^i[d}Y\_eV\hZ]]h_PcXdfqQdUh`Xec]]aa\\Uj_`md`]cYt~bi\k\dYeedfaw[dTU`VhYQY_nd]ZYh\gc`uhX\d^`Qaq]^c[d`S]XcdXbi[aNVfbZaZjt\]eacWaY[`nfbcW^aXacYY][tdgVahRTYVmZt_KRahZeU^be{UaWr^bYVg`iWSpe^bzalfXTW`gqZQsxTXdT``TM_W[Wc_]]gZ\ePmXZfiG\t`R\cO\ef]St^V[]__X[a`SXYQaVn]\mad`cSP[ff_dfY]e^^_oVpfgmw\^[ic`ZXVh]]Vb\dSRj]^[sg^Oc[mlM|\e`__U]lVZSg[Zakaxa`ZQ__WXdciO[OaceY[\[fxYafpzR_^W[UR_[g]kiQ[]af_Qlngax]O\l]VbehZXZSaWmT`T[X\n^U\gqqaX\[aYhm[pRbQSZbXQY^bed[rW_WSU^^QV]yV_TNajZ[avJlU`YTrQRvjbNbanzbZXkafgbM}d]acnylYba[ta\dUYlTPc]a[jpdWajO]j\R^^oaoYZ\cYp]YYQ[aT]_VoVWgsoK`j{VSciiUTTYai]gWVWVTfXmcaZ]aPt~Za]eYqNe`]S_elhad[Sba_Zdib[aUXngegh]RgqexXXYe[l[haU]]i`]^}jxbbVZVzeZSXUXZU]br\QR[i\q]HYPVmVZVX\TyXmaaZqjgu`i_`vHiSjU\]P]X^gWaZ_Tac_VxST_Xy\gY^YYZXRVT[ijZTboZef\[W^X`f[eYUw~kg^_bramck`V`Vb\XliU\go]eRjafZetbU\S`Q]QSimYTXbRf\_blg^`Uyc]oej]]\Yq[hb[W{O[Y:PXYlTQZYLV_dbaa`W[egWVd\bZ`fU[Tabdk_jhdmpd_ZfZa`q]`ebp\qk_\[fcfvMaqiZkdX^hndSdcXa[]^Zl[cQpjLYg[Y]POIqjb}fcX`Ra`bZihj`fmffvKY^SucagckedI_yoe[fcsS]^[ZehxZ`w_\^cWTXp[ZT{Ye[gpVem]k_otnXHYgl~jbWcNloM`_fc_U]`_`WjiPuoQZWaiXZ_jNZk[qX|jfX^d`NbpNw\S`dVhRgUfVYM_WnZSgrammc\]mlaZgh\Tx`Tb\KZrlUiq`]V\ey_rYbbfJr[tp[aj[c{h`pf[^Q]UwdNw\cnw^slVNNcsVW][R_]`qbfRaZeWacaX[jpUKYVV[igkv_fefSlh^og]i[XR]MWZmQm]wnKqsmkxxK_QVfmnWZO[SM[]RTZ[SPX_bUK^^\YNHN[XV@ZZYQ_`OYiXhPMPc]RSLhZ\RG_^XLQ^KgRDfUdXe`IR[Tg]QcSQ]SN`Rh]>b]XZPOUYOR>d`ZWadjUUcEUNZcfzHO]\ZZgl[sZYQ[XG`_NYXOsW^Xa]NcMH[TXaMh]QY^Q]PI\RIlVWMJZW]uTUW[^b^hIen[TXR/\O^RiS`dSbV\e`=\W[FOX]eTZz[pkMad_YQDWXXRS`RVNNTXcKXAUZQ\Te__KV\NVYNJLcaSPY_XI^ZhdG`L]MRhUpZh^H]RS^T\KO^R\XSfTUeYX^]ZRN`RJRXR[hZOOcgZYVCfNTbR6Mi\XZdPT[WhTL?rHL`e^[bZ^mbP\dZ_U^NVdRPIxY_[\^QNjtRvVnR[jcjsn`bufcXyhoUfNUlbrZz@T{Df^aTXb\RxWm]eHkl`EQnavZxdRJQ_?iaVspZlUrte}rwhadShG^HdQDRr__]lrObkq`ljE]Uu{XXs_otMAnewaUyyq@kcxtia[lrlYuljtTyQpm<}wNz^^YnRUmgoRnNwfS]saYuxad]YGc_Uguc}bUbPemTIbuWrlSJ`kV^T\ahcoecPihg}ObbaSm\dXTUZU_au|fxOfdh[cR^JdPpaY_YdkdwgzP\SXU]ecr_tQrwxKt9F)8L;PB28.NBL.189Ej80HNT=EFC?AK81jADI2A#6]7C@S:N-:T6>K7F55NBNG:YAWHLB=I1JIN6,:338,O9C3LS6F8KK]L;=KPDKE4C>=Y.HCBGCGT*Y=KEVL=GN2^8Je/ADF63G;AM6/3GF=G2;XXg.>G@CASL:KND*C5=>>A=II9L'G:82GI98JH08HK291B93=:7C$>F7,A;FBNDJ@SCSHX`HPKTJYEZY>^_SL[tW\MK.NHlV9G5BGRF9AQOJQQFjAT`SDLW@DM8NGGq=HP\NI?HWVQPH?LZPO>GbWHO=LO>VPIb[HePHTiJPVPAU@MIQEDxUKDPFoUJBNPC;D;KP=VGD\I8Es9UFTv[XC9dONOJ[GTHET4cUTAqjN:8\8>+jM[O3FP\FF9HM4HKnD6ML^W3QChKH:YJSK:VYb@FQ2UL=IdHo=>?`PHQIIF_L9iIM9Ci7CMgVCPhXWdSFUKLeQ6OBC4NJYXAYE~IpX95WLDZjAU&ZI`:Gh0HSJJH0eECNGMpHWD5nGPGHQ4>i=ED2>QFUsFAFg:JGFLBKDD]Z9AMC7IC<@b1?QFI)I\TF;SZU<]DZ]H4K8D7EGP9W+F6cCEKSCFQJ1K9_SQ@Z4UVXXIRHP`SS6NH@:97HHW<2eMG>dRJV<@f;<;MTLE=U2ZY;=WF_A:>b.,FM@:S&`;4CYFX=>FF>HHF5NENTO/I=IG7OmGB1EMVYQBMDP2L+QA;E1(9/>5;0QI7HN/V]W?L=@7QEH;B8C6B>ANHQ;XSD3B@Y7Gd?A7=EPAE-QLD,>ZLg7kBUKJH\I/6A;Q:HM3d?6cKL>^cVLDS\Qc?HRJTqK7QDTa>>KH\CI9PS9ZCSd9d>cIWaRFEB`a\/0OG[]EQkFDGK?=KJu3dD[@x@6>M?FZ\YHXRC>CV5*Xr^>67A=KLLLG.6DUB-IAL-UG=5G8G:4[fORsRA8NDPE8KGI>ECQC.BNJKBW9ZkDV\EK9K<\XC?BvG81AZKUFLYAL9K@K:X9;4<6@/CPPK7fCDBWM4>X[OI?BN=A8CBPXPtLCH2L(9{9GE<:`X7>eUF1J;B3IK2Pg5?DTAM8UmEA/PWJC8?JY4IhFKC+sVGN1I.NEEDSFVDNK)RH1;mAJU6QI,C[A8DWBL5N:@Cd5MAB>0DE@(W*0`cB;?KBVIF@EFJE@7G70@VscHR.u_3:9Qi6P\BGIc;>9DZ7O>90DXM@6BK_IKD?jWAAMV5>([p?6P2V\N6,>^;Bo>BV[8[RHM7A=`Z7&PKo':FiT>`4Z:8K>@PQDJ:WBG.?g7C/ch@2;L?IN\O@DiF7AJK8TETK;MA::BC>a>GT3I@ACQGm;Lr>B:I:K2ZDVDIG5AXQQ]C8?J:7:JJ AHY,>B:cIA=1C_VC2YCJWAD]:K2:?D3mj&54X1E4D=VL+?=UC(BP;C07?`]MHEv3=FKVNVRAJP>4>JWVOCNIUQCWXHLG[DBQEQHf6JF_6mXWKPha~ZMMNG6DI,OFcFSNZW^J..Tj?<[XR@T[JZSR=Dm`U\CZDEPKMFYMKOQNLSQ[HMl>=PRMzEF=OJM0GbDFOXX[`VRM8M-5Z@PBSK;MCj;LJKITAFEmibJD^QPMSfGF;FMN^I;CO=>LJSKkK^oKY]\FK8RaHLGKRNDY2MBYKAMfoL?GgO?ZC]MXJWN5OCD@+:SEM7EZJOh:aLEAUAGAGNIHLPnH6`lIB_OSJ@OORZK=@LIKIMWLESK^QH;>QFCHVXCTSzF=4,T592i.=@F3CF@2WECBBTNI6Ga8DJIA7G5FG?3BFBD5,G7`C9k7D=[_L6JH6=L;7H>KPG)QIG4E4?8Q@i0U;]<2HH@5GC:Ln^E3A@CPY#e>ImBV<7NOLA*PG[;8+V7C7M?<@FCAYH9ML9DfH9AKHSW50=NSL4SI=?U7R9,@U@i;?CK?YRQ{5J~4?B:aB;NC6O@D3S9;CbCDX7M@@:AIX[N*`%5JQDDNLIKI7L%A:=JT>=WF:b==GB`6GMK+OHTIV:B0CB;SHf?:InZ`LF:@5x<\+6>K<135W*JPDC8\?89&bI;=A?HO\4O9QJM?L>\PU5`S7M73;^T?:AM%DZQRNTC>=6-NP=;LJQHGM4YI@=5+@M=JO3;-12NLCe8W;=SP6`RCM@>IBebV7gxPA-F-QJWGC:3NHIR?8O@[t?M@FK[XN<:ADCLQG=P?*M,9;=GFUJ7E0N]YRB2>I5DMV5JE>NDL;7OJYINOJcMrQTD3gCP>R;FJYGGB>PI0IWB>F;0=U==_XNLM-]C\3LEF2B$>9=EEVEQB9U`902dHZS7K-?=6.5713B9M;G7XJ8|:6B>S>hR\GJJ9M)PpDA>^:eI_C6T>;U9IJ6kU@QD5KcQNN><6@?>IBUH2LSQYHDrDURLIDZNtFa38KBkD6PNTNPAW=CJ1>6=<:R>=/f+@=/WA(AOR>HGS@9]EAJN>k5dRPI5R>K3Vg-QYwY;6LBS>_%FXndMEI-SIIa/OEBZRVP==8JQ:IS8;^MuaV5WFID`E];LE5N,RvEJZTTFW53Y:I4MJdHFd;\]C8IG\A578`>D<^G7EDEZRlGHT_AFV[J=fBIXAGMS?UMZ;3CFI~MBQB^gHNE?ESC?RVAYI6LeS]KBZ.HPQG5V5?;N>CHEF?R2<|ATPGMs>5H@O7;:@<<8C/]INfLJQ*BFa?CBe4T]6;ELBBP\HJGX>DIa7;>>j*:8XEGICEIJMBGQJJ>C[HMF<>ZGFS]U>=<9BKGE99}LI>1=IHOGKDC@@YhL9eZNN?NQg9RedAG3KZZW?Q@TCA^e>;IFWJE/=GB:OPJG@OOAbLIFC69QCEU;JFL0BGCZG:OABOr66h_e>OH89PMAHR:M`w>TO;J4@MW=NEYA]COf:N>nBHYE>AIGWONHOGqXO\8`QNV\YCK4>G?q6L[I@;ISKXTXMRF\L6AX6C`BIT?]Bq:QEjPJPJWVM77QVNPcHTLfH@bF631D>CD=X=I4G6EgEQ5I::JFT>R?F3;QQ:T9@@i;L81Bf7J37=KDNE@KBE445I:17I:HF&HTL?3FY1DF/1A?DHCE \ No newline at end of file diff --git a/packages/backend/nsfw-model/group1-shard6of6 b/packages/backend/nsfw-model/group1-shard6of6 deleted file mode 100644 index 0d4556f10..000000000 --- a/packages/backend/nsfw-model/group1-shard6of6 +++ /dev/null @@ -1,3 +0,0 @@ -:BSLMBa7e;.BO?JFKV;F?QG^D6BF/NKW:@O@@GJ0A5FJ5BIk2B?@6(KK*4@8ShT=.Q7DP<@GGCK849NW[D=U,DPEQAIF/VWO<8VS1<9NBe?DD;BB0:IUKLTC>:T`Y=HI>II^=G;V\DY4A@L]EKG:MHJICSeV4M;[bYVMRVK8KQ1MpLPNHA7:TGFkWOSN?EHH>aE\PflTY\F7j0JZ6<^KVBJUN?O8ahTRhKFL@YAPV[T`FSYW8QC\[@6U]D7{RKYhJGZMbCSPJYIR>LVLR9BmGy_QBDKIQ?K:NI?>qG]O1Gfnq62@._``MWI7]PL^cLAfLOKI;m{BGlceZ_HZ_@>6+@CJhIKK|CS7QE@^EM:GU\HPBMo?EQHPIL?I>QaNQK3RMVNP+:_H`]jF3N]^VGNBKJFg@KOP:>JGI;AR[XEYXPLch?OPFBSALRYQ]R]WINdOTOHLaQ\KWUHLHXWKQLB=n_RITV`BFGDN;69BDS4;->CLAB1T>?-*LP1AC81A9C)J$Y;;@AOAEQ)1FG^NO)6BOSC<@RB<0M:H?Z1OONL2@C=DWE<6&;6>5WA?;,=3=;FGG7E$FD2E3AEM51OI,\DXB7P9;G'QK7=90G8591EFBI2SK;:8:R462SEC*D;P0[=LKS2E?-=U>?/J DM%?AFOOI4K?KNQ9??VI8:#A8M<6E.:39;J@PM8?0>AE>D-85G-JG;'3+9(S@Q=QG2V6I,DB",1>0VC?99?=,8JVE<,J05@K@,?R;>9RlACUU]]jYHT>9_@O^\S@?=E9:E7Ti4H_CWR=7_JMP?TMA@;CL1BJ2API8tKN0>B7Ef@PJ5TEY;LHE<:X7IHQR^ElEJG;MAcH?AGBMQ_BCA)?;\IaKBaQOJUH6NHXPZH>gMSAM?eNO_U8RINB\>GQADLAJLd?>HGLNYAF[YeJ@^]N;F[FEIBCEH*P3c<>a:AFWFEYM::b9A`G8L>@XEAD4VFDGOM4KO>`Q:A@=KQeHiA9LU52DA;MF9EFETG<7L>EIOY92PRJGPL8=BBLQ]>qIZI[NFIA;GJfkK6K?qfE?D6KFSIJjCe?4AE0@i.Ke:UIJaQ5G79GZYHNKOKOLDDIkBGR]K3>CJQfTHP_`D?WAX\c0FSX=aP8HMLQNZ91[]a=#@%VNJSGsAKH<`iLBR7DJQ3OK_7R?ACR5*6WJ9MWH?>63=BS?M>AUaEC:E\7Mf/V^-?NASPJFfh+U>94APD]5Ac$?_B4=9W0FYA[geD:jH>;U=R>E=efHY@AEA..L`E>:USIO/nMM.VJH7nTMI6M4>mOO<;6Uf;DQ77CPeRMDO]YRB"zEbiD@CLH^4x3t_;VXW9<1J]G<7PIH=D67W=/BHRYHJW[mAM02`BF[I]XC9H9:3Of_S;hS;4GT88DC>:K9M]HO7PUMDBSER9];/,D=;EHXB_9EMDO:-,;4h_V%WJSiI=A;BTT2^I6SGL@4I3A=AL8:8L=NA9LLUFBE?<2DVJY=D;>i=HA9KR^tAQ>:?uo6FG[F?EG8GSH@EcNBT`MOdJIGOGB`TOS;D9RFKX>VuBIRJO7GY9DPP8dHH`X9r6URZ\JOGJL2QDJ=EkFYHCFEXAMKVMJQ3?RIVUD@IEcNMMBEJKYRPGRIfJ?B@9LdPRD_?QKiD7LvMjIDAJQ9FD*G>BN8;D?XNPO0AVMALGRP;NYN]BFgMOAFFGM_\@SN;EHU@DAF@NSM>kJDFAQTFQFZ\ABBKO.@?l5Q^O`;Mc7TO>VN@?/h:f8WB5@*:>DU6IIG<>GH2c;H\I4O80/G;AW=:\EDYRO@[$0^UP^KsUG\RR:FMQKPrED^mBDMHR=]DSVFZJnBJSL7@BGS5H-3:\48dDZRHF@BNCKS2NM3D;V=[:3@N;?EY3FNV@jEiFHFED"@MFGOC`CJB%D5K_>7V6cJ8CWACWIUILN=hFNEF9H0UUZ>DL@DfGW:NIS8FOA3:7VAXD]JP?;46?EQXZB>MT@D4:I@EYM0E=F6^H_=B9PNF1]/5:EDDPQGXUPB682IAM0@_^8>>ICUo7877@=!msK6HTALL>>=NV810EmWC>?:M7TBYX6>[OlOSLaaG;?4AE>CMRECET=Iq9:?;7GF<:K8JACKEr6GNI?_GH=C5D:E,EY6MH.]G>A6/`J@>CKB;'MKFD9@U4X11~DXL4P3dPeHI?9e74C.]l]:AAQ/F4g>[ECYZ<;NISI7@9>JA1QV]A5CZhN4C:<>HFJU0?hJHKIJA0eBbZ@R8RGJUJI?@C\=7KB.L9QB9DO@B>Q^PCTWASFA^@Hb5BWKBZh??D[COJZKa;DYNPF7<+[77OWDZH`=Vk=nB;>D/@DT[F:YA;>K=;`NR_V8ZL@2@>\JVgD>VNGPBE.XCZG=PI-\?AOW5G?]3PXI?1]X[b2Q9MkT^nO8P;CF??B?LSINOFVDE;FNJ3mB<3CF=X@GSdICZZ0JF?RRaQJtFS>O8FMNEII9TD7Lt<;VCP7V9K@IHGG8[<>8IN5=^E4bO0KEHL@JK@B;@GP9WP7?lQBdGQHmeQNBD\8OI,Ub46XCAAIFGHN=LbXCfY1AF/A:>;CBLGHN=;V[7P?h6I/LB@336=CU9BA&W4`:ZA)FKB=LLZVbk>;@NFbV3LQ4ZG>9MPYuBJ5.!<$2??FKF`Q,Q8AQS@>]85GNUK EP?N?C5*UR8GE_RKCCWC=E+B>,b7W.+MPN@[BE8MKKNC>?[A`5G=?=[Y7L:E7?XWEKC@8OKD4JH:K-M44=LTOZ>3>S_GNKlQ>MLD-3.D6L:AJ,6C8RJHA9`K7DVN3S==7PS^LGB@HaKq@A?MB;WB:fb8SDe]IHpaF?M3@qcdMc6RRG8=UK`t@^GV`C?N7;4SS9mNEC[='HD9V0IUKEA9KaTB4VCMQAXcV8:dVIARTL6_:6]H29}ANTXG;M7EO;I\;PBd?+;GDJK??ENT:I<@[=rOMR!BDEGFX@CFE=NN=D1^C;>`E=ICRQGGGA;,BN<:=mJN`,CF4HkR?LfMMWZ'PbPC17;2ib=G7RPFZJZ[NT\Ok>+tQQV^LSC2MGFTKSTWM5[VH/AD9GjIgBCKT;)E(1HeHQN8Af@Ifu?E5XLgAYGeHNY>SPV]QVJI4K>[L`{Mdh<9I_kRQ\X@K[@MUwEZISQ69;UVJMaSQ=4:S&B:+EQKP)a;8hA\5,HB4WDT_k@>N>;FGIBq3hED;DO;?^7LKIN G?L1;ET=L:HHIn4H3L5eOFIO0?P*R>G?SpXTGQ>LmJ[4G$XLLRpKEBGO=TcVBF>:[1G7P]EOT>B;PQC=FBaGM*|4@=UCLf;GMA>HPH5>C:N?G\Z 7/J=ME(>@5u<1IWXACS5>H><^.Hb`5-=FGP@FX>F=2>O=M$CTL@<@I3NT@Q@M2;EQFM9O=.I4DAR:FZMS44:I4GFUF:9K47i7YDE6BGgF_4I?VaILGY6W2K<7\JYTIKP56?FH5<35MD0C4?b2JJKHI5XUU=1VSi5G5D7I81TKEPVSX=N?nVIK@OFC?YAB@=;JEFCJKBKJ=6YNVB]Pd1AHB~BB(NW27Q:JIL<8@iVE6e1@m2U8g@?ZU>`LCNJTTh\B^;?]R:MLU/S/5L6M2MW-R*SKKPDMJ;jUNBPZ=E7P4IF+TM6E4I5IR@4Y1Z3AH6m;LKTQYSl5L:M55?/[CG=[N^PJNGPKO5HSLP8H)486OOJRTC+=Nd\L8<8K>NJ&A?F8T7@H<.=97=UIPJBABLIGAKSJ>?7GO:29MZ?Y?B86=&D-L>OJ5H=N8HeV=9?1>Y="5EDMXR-AJ|L6YJAFHTc9R5S26DF=SVF?E'GC?88Q6@*5M:6]H@W8H?@LHIK:.PH[<_+T3KSEG2A5<;9JAP7W\;;E7Q?MKUM=ET8O>XU=FP\6=O6F:IP)@=+>C8LGT)BLR8ALTMMFNCTS:==8`ZT2%`D@U7IZ;6RF/@LDDJNP+R:4(9A?B5JVLDY>=MGE5Y[]T?FS8QD=bY9@;[NPCCHM]DNYV7_B30Ec[umPGYQDMDeMODQCr0RTz]K9C8H>N>H@O6OKHLJ66@H:WIACKHeT?RiK@SW\1HJHBC`TSE`T6VzGCGpM@K@7HZ2OcSUX5]8dH=ki{M[VEDY`XLSJ7\PH9?R~\>2>K@W5NS6tFLLJBJOH7IQV<<B9DOC.O"@E9)!A<.\LE@WEdGMB7DKUSj=>aG6Nzv7EaD?L]Y_4Q7V_9GB\OF?>J?;EPO>7AXI=F&H<{@;R@C\cUEGOFZ=GDFZAUbMKQ=EFJ?=YpMNCd5JvSRDOMgKDIMAQRV@D/T_Y=SOm=WE@UPYP]EVILoD;JBHR}YT=a`OOMTBC<_KMF=[B|BT@?WOpAgZR:>HAFRVLv^7GGK@Kna>3]DKVU?SDZ?N?>GPPE>Df=MY?G>IALM^PFGS=QENHFd{N?GLTD>8K@QRK>DKHuBZEbDiFhX9[>XW@D>HM95BI[ZbJLQA;^SDHOlWNKbaU[\;?MFlKZ>RIRj4LFP?IEd[KLdGMOJP`BKPHWZ/UZS^bRHSVmWGNY?C9:@X@B1HfZR>:LD=8qSZzGh2nI9Q>TK:>VEEBTpGQdEPJTK]KM\[H\LEE=X\V;AGBD?[<[>LCMBTDNCBBKFP}QM6Fvv;E\VIDgD7EH0JRPaOa_YRIPNaEBXANWNB]QVbMFKNLF:BWUKHU:RY]SE9KC^MQ9;MWSWWYfFFMFAG\eaML@CMU_KQFOPMFHN^JAFBD;L\bY9bOJMeBEN[GSSH==PGPwWD<3AAJMFTBNCUiNK;?+PJ>q=`VEXLeO\R]ABQ:N[HFKUS9x=DiNLILC;IHKND[GJJLGJYEVZV\EVR9bH[DOW8mSMGTRI??OGN=6nPVCDWLGWMGcTUCG=O_HiJbJNH3JN?M@2DCNIIdCCSdIAKdGTc6ENe\HrDB\fhLE-9N[:fTb=KbV:L[JV0bG^\AE>RXNEUZFdICKSpSPGEEWpORHRIV~86]JHBeCaV9]U`NYUABUAf;VAG[S`RPi[MC^WV>HF]@L~YDN'GgF5TCZsMA3@WMH;Z?6[RIN][CPAG6GsTO@nN?OE]G?IGX*TOZRMFSXLWXOAIXRYQ@7gX+DXY?p?5V6OUb8KJOBLR>YQa:N]48KWGEWJ\PUSHGTmJTT6UDHKTIQFY?V9pS3S@KN[ZGW[B:]pkLFNNIUFU:DJS7BCL6O>UP[FYcAFJ\`:0HGXSCH>N\[GDJW*GaF<)L>5W8@KBLDu1O3J8A2`\OSN+;N7>NFC[a5\^OO:@]MmH5ePADIPWYLHJiL?M6}E=BK_\O9L;FHR\B>FKBQ&L[K>3WXZ[wVJQ;4BG;=RDJMP[m3/R=5OFNDNNVRL;IU@CNJ;>QK\2]ANFLc=J]>H9_DF7BQ:MGM)JR`S;3[?PM]k__sle@bXOdRO]`GAQ~^QXScjBe9@LtLQ[]NKpIiYZAESHZJ^fCDeXtUdM\\mW\FIUV[JS:[U)ZO_]cQfym`:E_BIt]\oOl]y?jjM]@bQ-L^_cY-@T:vHfH]\_QXMA>INhsGZVU;FQZ]`BahLbQ^q>`W5aad[>c]VlYDH[fGIaY>YI_Z[inxA\rdEfM8[Tg=M[DRKJYWN[a_fMBiWLN^76XC7@gTo5TOPRAj5%RB`>MMRNPN`6AK+6UU<8NS/GhZG1YP3K\742J>v@)R=ZALTNv@5:3NZLT3E<\gDSb0?NB3QH9Q?.E8SJQ*9jEXG27M?FGUUCRERF-/;4-74LJK:8=9dIOIRa1JK43EP4F5F5C0CVS4_QaO8:6^aU<1dE08D&_PH5]TP@`FSL2=k5?!QN)NJ4.?A3@I5KA0AoL?ICRR/VH@L4OdMjL8Fg>WFK1-P>?4Kg=6'DB"5=3ED^>B?@>AE3PNB<>P@GF=AR==bM9`:8I7-@LE416*LGRKBkUE:RIUU/]MIMMFA6F0+R[8AFR9^FWw@C68+D7DVEAm6AZ6=WIB@Q/D1A/?F NGC+=;V=GYRCCXEG.LPX8J\GTT_OXQaXDN:D}:?Z[O`8VI_U[dPWNWW|MfDmCinD?]WEHI[K+5H=hU>QB+3DLT>>`VBB>JN;V\=C9LgYNnNN6BAHwTEFLfDN;O<:KhKEA@LWCkAB5?AE@7NzF;CRN,PYTP^>JIY6UB7V2C=>NO5WLIM=A:0D@6@IHi?#3R\B:Q>\YM(VTQI876aLA>?6IYKFE6^FccWRC`UGQNUAKkGGS]_mUDYLV2iGPADNI^B>EP[>>?cC>?FFPT4e5tK;O[XOm59I_;S@;4U1I(=P3XSyhMG>SdVDcY0\QTM=?A=H?=CQQEL3K::ED7SX;N2L4N7%8>KcJH2HbJL@*N5GJ9>S2Q??@M>.CJROJ3QQAG9IAR2YEKDcFH-KNG'?1bJA[;+S7FE3NCA=2U`6h7Q4;WFcWOJCj\FkPU3@34L9D`D;FhYuTR5VGA]84SAGFRD>^BAZDN=YJIY8JQG.0)XGK;U@GBHQFTQ;I)<>P?@B:C6Q>iL4q;JKJY3IH_X,SiDKVXPADKCQH`XYWB>VSAc=UQ>V]YFV?J4IHc-0E@EBNIb=PL)PWTWaCLOcRL^HGkOcVCYKon=jX&QUK7PqL<;/jIYN9oP74a\`CZ98-MMAVRFHR8C:WWCJDHJDNU`n*GZPK27SGKANL=TP6H4M>U@)TFBR}4D5DOIKJK\S?lHRDWKQk6ZENLvOYPDJ:G>GE@B@MeJMI8BHNc[IY9KY7=8JCB\J^UU)MCD@MV@QVCJH:HQBRLBG;G?N4KIWR@BZQD\,E`DeLMLZTVVNHRi1Z5JU_EEYFGXadJS<@V@FZ^O|fHXOR:EF6OpiMR\^YKQQ]T`9h^DLXS;]JYM][OB1JQ|MASJbt@^XPXIUfcV^1Y>?6;AZi,E9MPTO>1ED:O`LTp:cG=@^EPRrQV/>a\VUSCkWOIBR{3P\q=E5fKojHO=Sqt4]@ABLaMG;[@P\d9F_Z]S}_8SZ8bQKiJ7=)IL>IeR\YL`ZMANVG7_}PVb`CP^E^A/GmIDYJm@T^UD[NSEVKI;bO;0IXLM]NO\FN0JC1KA;BS9CCAH5PJ8BZ;WP7T>hE;=GD^6;JG)PO>H=;BTQ?Q<@::\6@\Gm34TRBFB[1TFJED%C3p3D\UETW[XPCDLEV,(9K0YB:Q6@J2bKFU`MEHNQBO=H:9B-P^T[EWLIQTJ7A$<7;S7A;DALJ9J72-S]MD3M@IUXqa>RaDY;OHM^SILPBFII[NIM]2?E8@vGJBW_OHKNENBAfWL9AWF77\>N5RGIB5PBCI_I,YmQDFOYSUHJ-aR24L@;Y;?;V@NrEF|]IDV2D;2JZfD6YAP[WQVO8vOINRBS[a=@BAeF@ChYFKH_HE1@TZJiG:JQ8K@YVHHAF;-P>KFFSdQKF@ICeCU>@hV[B8P>HATDMAULhIJJ@6Y[0MqCDG_5BBBUXUhdRNBYGnL8CCKRkRD:>TVE<9E6KLD/@CPB9>;R\RL3Vg2i;S3*ZGH.\.9(>b1HMHPUMBIGXG@NABSH1F?J6QBLP6;BY94>8VC=7V=A8ICPLGdB?7IXM\H8?a,97S@8jI:eNVo/3H8FST-=SC?kc-,>DB6@KAYhQDcETCkY:FJcdBWYODBE=KVKQ8\Gz_VUXB>G[S;LB(1DaWHJ>]0O8J/SXY?F_Y<;KZ?C4EcD[OD<7FK>\CFIT-`HSTC>PBc<4SFCC8TKM7FV8FF17QJVR;3?R9=AOHY@OFYI4<4S5S;NNJ=61D=:EVi=bX?IRU:U4FGC7M4>?R(CG9MGGX_ALI;BKI`^A;@^3>^U6?Fe[gce,GPSE\\TBQ\^ZY5Ga+3G-]FaFRS@@[JAGX:ECM<6lC@8ILNKO/@m=9N=;BET]X,*XG`CJeDZF4-H89M/7\B$RHNIV6DL=/ZGTVHDF.65QV0S5H='N);GN.XKaOEXOBDkT;4RHFV5rL7:bJAAKVNM@[LHI]*+D;D7i2>CFQ`XD.TL4KlNFWODuX+=@>>TJ8LH8pA:EX9Pl`=McBG=AJR>LW0>>E4I0C?Z.YOPMBEZ\5F9FQ/0S[)IY3_9+AFQ8AgVKo9OJSJNU?L:@MBMJAT;R:A/=*]?S?4)AD=PARNQd?I^8I>iL5NBEJKX?JE>BKEJG;A?35KCKDS?TP<>X;BG=KILZ=TBaDKIiQD=Z@FB3=8N>FPBA=A<<\QO4G5;9E:AL+Vb?9,R?:5QRKP;FSY9M7BIB`_3GOF3JTe?O6oFGIR?0K1I(Q4I:3FFK<=8H8=BJC3UWDFHJn=6a==AnnAQ=API7TBABeL>f9UK7EFB`/I8H@8NVC7YHY]:Q.KFEJF:A&P3]YI58;7LK?IKXj8?KB=FFQ?4A?I;BV8=EMR>1R9B7:<+NVRY\Y6gbzHBgQf=LE[3ISCBlNFNPQKAFHTja7KbYU;\KLPF][-@EG_UH[`.MIQ<4uIX^@OEmIg=E5U>IGWX=VhK E>G`xzAbL~9WHg.E>I8Y?IYLR3b;54J68acegBTB5^HM<[\GML#fTmZUpUZTXQFsDLW7>NOCFYNEB@2cED\cS?:YIPDK\URCWJU539iV)M*ZSFgP'P@b];;NPEKBc^Wr>Enf-SN>JX_Pgm;9CDF/9FVNDL4YCXGQQSImKJUzEPO>:9a=:UK8JT3?bTmTmNDYeKWGdOj4?odEDPX:Q5X]NYDBGLMP+HIC?sO+QPOeMiH;E@IFZEDRBDVIAPcGWWBI@JZKFXBmTIOU=JNO4CKEVUHNVIJ7?P7D47RKG<|]CDEJ9cfAYVI9QcdLOYRi>XdZ8EMDEI:D>6GFI=E:LHV^yACOUT;XJFAF9HHMDHFZR=RYUQDEHFMN6JS;DfJUGWDRPCURQ]HTGGK>=R?c=4JU8L*/P==]WMP9ZNWRO@JEM[NNICCRQn^UASTSU=S-C1XQMg;E8[I8NVGDBv@QMJFX\-:38hQ=[T:5ZZODRZ~cv;g`rG@W;E[:N9d;BTWFZA5Tn3KGFA):@Ptr]8CBVNQKH?iwRasN=T?E8JW_b?>4qsBQe@RGELJ[CO@CLdE]MeZp:=YW=m`\L]FJD<^n;aFLSL?`yUGEX2JDi]E`G@QL?YOBnS49.DPV_\wEGeSd4\FX2}\ZICT5_3JV?AIOOdRTPW.J8,?ZYZVOXL9@59[Ba[PE[`D3cnUz87*O;OopE4dR;^H^?D=NGOFi]G@KK=6[0jIXa>\=36BFIJYP5odNb@?M[;P@vK?S8QFEwa;IKJ>AXMMo5;FIQ_JJN3GJM7G7LLLHVEMDRTPNEZIAf_CRNRT;=IAO^?XUPWM:MWA:OOA=7QQ8d;QRb?^@N8[N>d=P[_KPuIPGXHJGFLFlO?VMDEbHK>8fEr@IG;MXAHYI3X:Ct=QSE>`OJBM@SVKT9OHIP76\>bLBMUqHgWf^F=i\\GBRHLF?fE\UDMiDWLVL{[UB4CUGRfN8KJ>RTLeAPiTEFCWG@CEFFHF;>ESFY@]IQKLQO9WNTPNJS8FFcWqEEOBDDYGdK2VF=?LP>]>;GHHXaXGTb9HBQ^F:MYYOIXXH^QEIU6:cFQX=Tb<@FMF?TO9Y;/MUH;Y:L[BAAPCc>]OLUrd>OTPHTb>[YL]Nq]]UOO:kVa[3=LFJISE9Ya]=ENR=JDIM`Rn^HCSNVTVRXDbRGDGH[U:;Vi)EKPOOGfQXD>Y?;TATJWXCRg:]QCWi;WLKMGChHQH7ELCQ6?A(>L6ZH?RRxNE4MK2)G<5ITDY>U><4@Kc75L@M495Ba3I`DCQMBO6=KRIAGP@5JMP6IF7CMJDE1=4BU`4]=4ER>BH]U:HCGAZJ_?B7BF'NHI;K:OG.DNN?4?:@E[:2@aRO<@;E?-@7JI>L+O;JS-/+6.N6@J@2:;>@RjMJFVFIS,LQPX>@A7U>S+GU?7>QYKLAT)MJJGg[;Z>:=*^CZ7V@FD6DFM;XN=cGAUM.=QS@>SMWY\>AzNB:J:?Dz\AGF/OG=QE:NJg55;S4=XJ^,^KQT@95aI85=IE/]A@`SM<9h5QAIMbKC2<>@4/B[<7aM7L:W:8=[8R-THM:STPIe?LIMj=@EALML0C?V*X5N&MFNI5HCHY9F>CQIL2/pFIK:D5GBJ+BUH8D;mR=9GGB?B=*?=L5.R6S>SBG>9;Q,ME36CKHO@TQCLPIBM[HFGWGRNrY]EY@XFF;PGLQ@LJYeCD[MPYRRuFNX@HHNUN?MVVdRLCbL`PPMIRFVWO;ANM=RBUUCFLCK\JEMENKDJkBIKZJEEW5NtIAa_eJFUW?KlAGDCxIQ;7G]GcKFHHX^AKv`LUgK\EENWUZO7:=7[`G]?9;FcO;>]K>O;@YCO7U@OD27:9IDC9DX5Bl>L=]=20Z[9[SMKLLA[@_JlE(4UWiU;7RE``~hSA9\?XKVx@CPMQ5MMKHHG=;YKLMHXMH;S2H4`?iK?RGG\THOG|Q128Q@j@_BKPEM\9bYhN1]>?DV>?lg/S`]POWMS88FFAPD;AjOB[MHBWcS?=[DFAUK8RNFYb8KYNTWI[4KRDE4RHZ;T_4XGO1TpFi1N>/HIJGV8;[@1JM26NI6=H(B=P:1<@t;BLJ7S-H9>7W\@L58=J:;@2DQA03].O>P:@Z7;A0?HF?;7";=ONE;D,MS?6JbC>;G:,>BA2-CDH8I<_<=I60<0SK==9FN7L=E3G1/\49>Z>CEI;7?D7Y3N;;BTK=GI<37HBW#G689<3-KF.\@AJD9F4D=QW=;=(PHdL1:IC@I7E:e?QDJ/2K.U5OG>GAB>IE;C0GD-@@LC],ZEI8a>LX3HW,9LACJKCI3KOCHNTDJQOC=FEP&RA4QNN_TUfSBV1Y;go7J:?>UjdFJDk16G)@I\BK<77WWE8DJI9IEJOSn/>AMFy?FLd]XI3uO7Cg?:fFEP>/B\I=FGBJBR_bfT3EC(NNVFB4@8RCZO9GF?NG[:>;B2IO3?1/X(EaE=6@NBDEGYHUP;b=WQF;QB8L1Q`JG\DXo?VR>f@1]AyD[=KW?[?[[IR;8KF]`8=D9X3aC=[HZGe1L6-^K@ZB86ABOP:0N>HFa>FR12&WBO@GBWHLJOMI5@BFM6RUGMK7@L/LVVY@NCOE@JA[CJLT=52(SBTGAeGoDCAJdFEH;8@C7P;PFPQZK8;TD5cBR]F2EQK:CTYDJTPIcFMUUa>b]BF9TEFJL?J_j7JCRVW`P;H~_g=^QI?CLNT76C;lYBrHpbDAAg(GQ7SVJF-C[K=]VS9aUDI?JP7PPDj6LMDM}Xd3ENCxaK]dGC6QIIH=??BVt>P_MBq1CKl/HghWAL\Z4^VYLZHC]Y=F>GG]I>K?Vb]LJ9AnK3;g;0OuICR;4b[AM_Mc:?SEQ@M?UvF99SKkTLSa>?C=ScKTIFDK68Mb%;F|RiDB08RSFH5WSDIE8UH87H8\D|YB8-QYbpNEEUJSOC?k`S<8:AMVBb4GHG9ZHDm1_@WJP?MV/RNGZL2:Hf>EVOB\XG]oJ^>KAO8Qb]F]L[cVM:HNPSAPGO^V@NZLGUYPc``4VQFOX^HPGgHqF4DH=MKIeFOEJCCDI]FDDPRF\PPLJUDUKJ9Z\IN[H@ZYbWYZQCRDO[ONhNDMT\B[DQ?bCWMQDQO>JhIPNn[L_NEfOWNMHBKOMEXbPTONKNRBPYH`;aVTi9ZGUFGIHDVACLFaJeO>KHRfPL[jSMSUBAQ_ROQLZVeTEKBBKwOFXNAMLLXXCMFgNKU>KOL^HCgTO[NS8CLK[NCEO=~?Wd[SKcXoLM]aQQPGPCiC=R?Q]E[baGNSQtFdFCWLUUKrFVHEKH4FX>OO`VPTVL\SfmDPUML\@G?_DTVPEYJPJfLPJ\IKCNIUkDQ6I_OjRWN^dGM^LX@UNaXYGURq[NmNOKZ{PJJPDAX8LGoYG[:hCUF=JBu=Jl@t3H[8WPJsHhfB@KLBPCPFDYG?7*RJCUP@CYCG1b=;]rV[T?YQ1=OPPUO]6]I99QSU?DDdCNB;EZW2=6Q4S?FJNbPaO[;XHLMdJD]8yQ\WA\^TqEAQqMU:D:V[bKLa=kEhS[bNfVTBESHoMHTDR@FQ[MNiKbMU:H?NdRVBOOzEiVNUkL\>ZRTXPGOAOBTCU[NCDA_[VO@ZC]V_UAD?sj]FIKN`RZPbIuYLN@8;I_SBU@F>GV^B=cLiOijXEEM^.MLYS8bkgVkO/O=K<6FMG+1G>'MT@Y;:PWBFW>CHDTQB3>'a>4`BR2'HBTK5_M3SH|^)O5J,@>=:WH//IS10M6P0CY>*LMbMHD5cRN173<:X.CDTN23DW@O6O?6=OS0~ZHV@L:h*X9@@@MLH>1?<66FI@6O6C?>EOC4I:a*DA:4J@?SZa?92GZH@_3$>0Q1GT?KF:+B8ALBPXC@K9DR+<;EJ@;4H1HP[RMO=IQF^S9?zN+9@6]AGC7GMta;V9C:8Olnldji^g_lq_^geieinafab`kreoaeejqoelm`gleihifhboedfdmcjbaichslnb^lkk]fiqjqoZlkhVkbcoqepiadkiemod^chfcickn[homYga[ghaeccgmleogik[cpof]lejh_ijbflnlfaYdd]mohVdbs]ggsmgdfgdqnmgfpbbpfkbwiofk[kcifkojfelfehc_ldaaf]idecnifcoZc`fmdscoh]jrirgmbgchf`kZrfpnjjaenqnh\q\lccphbaieqcbfj^klpi`lhj`jg\chcgi`gejccgc^f`eg``hiflkhb_nhge_lhkgn]_hokifijm]meakseh_ie_`j_dcjfmpfrnX_f[dimpdhd`h^eknlcfmjfjdmbvj]DQ[FOC<5IMA8]QC6D^C:TGJ;/=]]9RGHMEG:X6zFZQ+G9S68DOTDGEZAKBG^M?.0;Kb.MNMDC?B>H4C@aKBEJMT^D2G<1QI7B::CIAS?;L=BFP7YP3C@\:8YY96R?JBBMjjU+GSJ@OS@@SJG@3A8LJ2`lI>FS.GEb(FMEZ@@9ABAIREWQJ?@:A.GHME1IH]7B-HEKPJZ:2L;J(SLRGJLM87OP7WeNH92tHOFW9OfIl4VE8(=@T5,FX9^II:GO^TF46Nm]HMDED;r`F4PEGOY=N\OlkBYcAMR5;[MVBJM^P?q9EJLm_6dT@EfKXPE;XEJ>#DBE=0/0VqL[KC?BGI%OGYOQhGWWAOT;V7QdDS[N::vCW9E<]ULLDO=YXElPiGM,[_2DlC.HdDUd8\OL@.KT4dA8KHDFG785F6OVLDqAR_MD[TeYJ^rV;MLSHOWaRI`B2];QEI8]ZT>AAgLb'7Sv>;HR@,;BT?66:4?=-EU-98<0PGN?D2E>BKGD(/P2'UFS93/EN>PAF/?J.7AZ&d1:=K/0*;F>DA-A5:@;D.8FE,)Q;@8EL>LC9<715I2;8.8;BFHB:=(ISR@<*LG?&-8CE8>jP;1)=74H>8YB+DWKB=F3[4Q@@F?WHFcRnG,s97[EFkMDaC:0?k8PI4DEI;XV375C/5I+8?D9K7cF13AG>[08:7KA&2?NZPGC814F6B8H3SF2>4:1F?G:0D4E5L.B@QS[:739L=>BZC4>6FVRMFR=1FU7^I7D;E?6NJ209!EFXJ<<>>HDPHC)JSM)C>2,2cYTUo >AbXw;J;hlXmdHVkcHOEFX{PRB2cUY[@8JTqGlJMsalVOQ]NoP~bLSj:`P>^O\[Ca[TecfG^k8F_h]\z{bwFAr\>PUDPVO5iQEVsrfbD]mOHDCUf=TU9-VOLZDGTBcG[>7T\@MIK`G+[9p=@IGoKNjGIFOgMU^GfJVLLcY^HXOYF8S>5VKQ.BKUAQV;K?H`RLVF?^KOPF7`XESEBBK=NLxG<]>:IQX_CbYBW9:VTWR*J[Z@VK]6G8ba3LZHNTQBi<1]>xOHoOA_ID=BI:B?7eHM=43FLM=A@K>?LL;7C;N2@:E)>X=VNEK"AD>>IECEEOD[@CTTPF<8@7OLG6=TJQ@ZbUEREK:DXMGSDYJ5jL92)BD>P9JAcB?5FC@C<>IBFAAJ.I83OKLKW18IWXNB9C`632><@O>@CEUHB%LN8EJ8H4=;F94COCFTaB9(;:G?D@:OLWN939DAA;R:CO@&.N6=JVLJjK?EMQBDA_AP2;HTE@M6P7DC9C;:8LHGG[EE?Q4:>D?-KUG3OKI?CC:BB;ARSGG4VUGCe:JGDGIP.`;JrA8pPfFD8BVYH@?oN2Y>-YE_HKMCAP@CL=F=>@LMD;NM5GOTCV?ERZd_8SJUE0MF!5UG4m:1=^>iGD5$HD6G2CAJA?nI)0B?EL:L;cC`:926?HLBC<*CP5lSQ*G*LjIG\BGBFGH>G47RD+=(8AJ9GM\4e:P.@59BDY f@?.;KBLU8z46@>7>9;96]BR!3N;::GL;H34.6\i=_@e:<0L:4==AD:Bf;7EAB296A/;74:;>+IQ@>;8OG;bV?/CGG72SD26.-JBoE4D-O?G8LDO(?7;1BI=DB8B9\A,?6F.DED:::>89:RJ,DY:FG;E?N>GEAR?:7G6L?809DJ6RF?\G4?K87YRY;]DW5/E1T>?H9M4.>9?XX6C9D4;;1O=49E..RTS2;@D?ALBL8J?I`X]A?N,A>BGBA@<7NbH?/PV]@B:1?=D;>B/DD=DQIc[Q@3-Ob3LDQ>?@KQEM[BB@C:R:=HBS5BWI]BPPL@AVVVO|)P4Pu>^Gk?7C_@W3?b_MnTF1CSTFUZ?QP>\RgBZHBC5X7G>2DX;PQ@KL1d\FPMXCb7?;(iKWhhMF6M-R`B>I?Ua=M9_P=M8CJ68Q:5P>8PN]XwIO?Hy+VK8-RL/N99:Ibr@V@IOH9A\uI4?J4B9J2FOVGUfQBBS=>MEN1EN1;O:MXAI9CNNSAILBUBBM1U9@a8CH?EN8GIb:?M5AF?=;EG_/cO/)H@<=9OJ=RRGG8K3QGDNYW]L3BPW4T_?=KJl:ED:@2.9>>e:R@D[G_B1>@V.WZFd48DA?VJw/I4LCJ3:I;JHAe>K?D;TV:LNJ?I;gRGP`_;W/;WFIAWA?>h@/fJvPcN_TD3TXMS^MZQXJ<]U9G7)QO/Q5l:Y3w0jFIJefPZ#DA9V>@OAWGD@C@I5F:XUQINY[,6WWX+S?BMLlDlKE8RS4fM@LGfYF:WQDLH6D3C71;MI8aF/M&"E@DF??eESJ3@66NEO$B:=2Ag?LSXGO\=TDA:`AA5C09E=IHC;:1C;5EJG6D4CR@AP4R3?5]RdG9FC=PK>*>?>G?Kb:7@LF@=[$969H7Q6J;?8C@YLpD76=HIV8NFSI>>6@G92A8L<2KRLGGRJ90P?AT|3-EC=/3EFSJa3AV8UA^NHPJxN2F7gvHPK2;:B/6IJ_PM_BRIAI?PC?xPD5K:J8^*AO;?9MRBY<5E:XN,IT@KMAEUS_G?RR7LQ/@Fb=IMcA@CCC,mFC`FG6[B7O5?EP>=EOD9NQE?HX5E4H_WF1WK2B2QFAEDC:26@LO;DUY9JM=RH;C3P2KJHFO6FCEH:LMu9.Mc;O6\EKL19VaF8BS?@?LBESERJDl2@ER9SAGQBJ5AMCIMA.HH@GFILHLMUES:AF_SGDH\CbhH,OBF=FKQAVG;H4=tEMVF6FFXS9?D>IL2U=881W=V]DUBHLS8D]C:U3PNJJG?:E'/<=e_M99FIMEG@AXLW8=Q^C=cZgC0BF;FD?GPF`S`CECSOBKUK=AHE@KV>5\M7]=K:>JRPDLUI=JQOJKU?EAn7X[QA@QcD@BkOHTA-NKPEVV;MdX9O\K04-CTg2RcX@aJ>DBJ@(BKKH84IcFA[1.;-::Ea_4I`=;g;.J]6;6Ub\;_D@FAFFB`YT;Oe@7HD>UCF^jWYSKnSECFSV@QX7L-PMI1GV\.\QB147PO7*KLTK8LGKFSKT*4U8C7nUJA@BADEJbXCJf9V4OIhQ?lLK<1R0^WV<1H=WXFLQXIF=P.fKReH>IDFCA]KXILC6Y?SAI>M@&XUC@Y4X>LDMW;FOPO6XOMOJJQ65>\=[J4DIV[YYDwiEMLMLI>XL9MNWEcBN`]JXJF@?QA@F?D9i@V?E>A^bMRGYQDINDGJ?ISHVIFGCRzCR1CIG=haK>ENLJKV:SDBWC;>_KLG6RCLZItgOESUVLWXCG:=75.6:.5399057.<.2'=!60786;64+9:.4.<)58C<:.;5)636<0900;1;>$@I?)-;46+09-.B738<$1:,&;>C)C>044D3D8,;5/==;<+2F6430L6826379,A/24/%;>A;:=(>/+';6,>3A:A2>/-2781E0;-/<4I=3,.46,671B61D657)8><*"=U-43'C*D185JG+=C*/2%23.,25+<;>5./C;*,@:4F+33<04@:L4=<<53'635-$B,4@V7-*B2.&(B74=036==&>/;/8@+*G5,4@+41&@->3189E(G5D10,:;M35170F7(F,1F74022H=/,-8;7L8,-80485/9=.2$>?C62-3C4<3$;1L55=;404246@/;2;/9:CFJ;6??989,9FB<7QI":?@4-*/-=9..:J1DG2I=A3**EA!4@6J7016,*BB?-"5C2=E0<)677=&:3>0.2?:B<=<-89#>*.C#?:BD58D6:.3?F27+'D-1B=5=NS58;>G73B@0:<(=@F.A8=929(5KA?;=++2A44C<-B9/1:3<39*?/9LkF8;N;C?3.8E3?,7$?<;,=0F:A51AG?6"<47<197I:;:A;.:1H%761$4=]9RCBK;ET8?[CEI@9HQh6C3ACAAX8?@TF@cPF>CD=D6R874BZHL\/JJIIK6X]DLFP:_Wa;/LR`D@;<:POD6Q=JZDI:S@=ObRTK@FZACpI8.T:0O?AB?_LD?8_HlQCGCH8KKHV3PQ,BXU]Je@Dc4=TTTOQ5EL\@FL:J@=H@:APO>OJOFJTKC:BMT\ED8LRRX>DI>:e=AU@PRE@9Q:599[A??CC9;I=5@HDJKF[KC._GD-GDHQBaXF09DDN\:XTANN7MV]cPZNE>EWOQNC_MVP9;Ll>KPT9KM<_YS1FCb=YQmDCFdK?KI^RiH:9GBKMN`N.VOZS0NBKCNAQUjOIDFRUM[rGrMeEKPFA[hAZ?>]:?=@M=B;AcI9CVJMYRZX|A\4NvU>HQDI>ZIN1GJDT9XA]>H>~LTR:CWI8HRRV`?clBNYLITlaLDABOKQRVFJS1BPAeCdG2\[]Z=BJ[FISCRLX:JFMc_H=NGeGf>QGF947@?IKO:D9C#8^BTNAf2Gd@23CgNe[I;Dc;5`NP@WI?@O<-PE?>e97B76?W@XPDPD;:?MmJPe3KH>69JC\hU5;R)?RfC'8BP8G5(6CBK4A6?EHI`TCaJ@TA9>09,hBkJAVSF%:86@Q?J^;j@B7V>3GPFM4UDJBFIMS>HD\B1JN}??: >FMI9NF<3C5MA=RQS-EREH7D2;O4OP;O=HV47JJ-5GU9]^:<:@Wi^5;XFj1UQ[*\NNOR[?4RK8YRPaPWSgP\MQQBIKS]bDSXZMRCNQWUN^NLWA;KLSbNLLUOCPL\WYWPOUHaS^TfSKkY>\ROUqYYEKUR_J]SAb\XWIZKVSJQ^QYQKDZSOLMMXMTJKHTNFPjSP[^[hWRgINUYWYaJHQWSRdZiWJXYQNYQY^Q\oXRhZISVWQ_WQL\KPNXOOLWDHTW]W]MThVSTDStSWetNjH^MUScZNM[MaJTRN]SqRKXTV]XV\]NTT\MPPZPO@KRQ^QQJNUMM_gOV\Ta`PG_MQVOTOTIcOgVcFKJaQVPPVPYqUBRiI]ZQNXVXX[RSNWUW\^LjVHTd_QFRZygNNQiH]J]XdXX:QgNPNG_RKUMCjHbQeKiTHUMZOSPORW\OSZb\]V`PHP^LP^WU@YM7?JXH[fIN@NEFGB_SK6PkLC0VVJ^RMZ8AYL4WGQ%4.OLQ|gCCXMODW=BQEG(BqER6\>NSWXKbAfH=KXWr\_0R@em[`/HmJ;=X;k<=AZ(UU@bAJ18hcMWJ:WVeCFZYU9Oab>NQLei=>NCCNZ3/GXVBM=pnSB737=OdEQKDCJ86_G`DPfIT]KB>)JU-PVS4t3LKJS>PL_JmICD-Le*XcjLAMJfHP>aZXHRT:SOAD:F^I?4Vb^YMUIx_L4J4WOWCA\GRZDJhHIBBl&KGMH>FH>?5rTNEUECd>A":_j:0`U]3C=T9E;Gm-M:e0AD:CIX9;HMbW.[H)WA\O@FK:FO?^10>H[F?I=X=d93]FC9OJ*VX-,K5XQ:6127:HL9M3B_WpQCQN:AIMBRB5QVLW|D34?:BFFHQdGM5nLLK>,KSF7D]tA16Ch2C1?ncUJQI\C?GIErFUTE4V@YMf2Sv@t1,NfDAGC-^qT:aO;9I1X]5KHV?(1?I5M;6S?3D9)ICMNH?d2DVjLULzZ\PLCCBT?t=;JhWc?ON&G1>L[$l-\GGbLDIFK5^GUNd]2_QHaY29bRQGG?_P&K78>bC;XD,RIXEQJ66G@OA]F_ACAP<(@LJ>@K?30UedIUC[50>gC8QK<=M@97pUJzEXpqVlgi{nnpclgc[_mbytr_rwa^qcVwbk^btcbrajencrolnilpkdo[]hXls^k_p~[h[pofohnjrav[ktcsU_mktqoZ~Z^dbk{fobvY`za[\wrkktn\aasnXqdT}ipmwgafljw`jfrhdujaeqg\qgli{dg[\kmfybfYyr\lcam`wkgfijedhUqeqllkkjgnlhml{_`bpnkclkvdp`hm^_ujmrifmlkme\ebdjmcadjcsykfgkfnm^`ix^a{rcZpnqnxomaIrs|nhk`i`idyc^uhqoijoofg\Tuvpjtnhbfikruprivchg]tjkrg\uiuplffhjboVdevjbhx}mjqchsvibYxpvfguo]jk\wbvxhifpqcd]qglbcsidV>KWLFRBXWTA<9EC\HYJJK?g`@IZMbB95iJf>>tICBV\EBL;gLBKO]UoASPFL>EHEFOLY>QEFGDJ?VRG?EMRIPQc]zBLJMKkgCKEFV:G:QBDQs|J>ISPHg>ZJ^ZKDAX?kWr\pGFN=S|[4F7I>KZeGPY=?IQCPX;FO8:?cMDLZufPJGL9QKc;s@:JWK7JPZGOBOAH7LLtVHV8VBZYB97>@CK7K=:E@T9?MM?B@CC0XXRG>E=KSOSRX8PK;IJACaP9I1RWB3YOKPVJ;VGh;Z`J<T/JRI8?b?/4NCEUrWdLB^^mHUJpH:GYH28H4TCXGAEC5I=hN9[>S*zW7OOUQM[Y4;=/N?LEALKF,;L:JDAUaQRRDfQ=,?OJ@MTbDe`Jc6ZD95AHBA_E1ii>R3Q::LFT7A^E<[7;0LWY9`_EXNle2FECCIKZP4BDG0MF1;MJ=KKhST=A>6DPK5[>a9HGJTRPHY\K8I9LZHP[8Pp\ERS@MJ?PCPNC45=PWP@;jF<@L\LCDNQ=NHPJB9J583[HG?LFL;P_EB8K8^YK?:>_C@PX7NEESVHXS;QDESGYdQXTIXjHG;IULZULYfR::8HAGWILSLHl:eDMEQOKG=?OdC:OUR=@jKQt8=G3=KC4;^LWWU8_]HS^OTBEDO[T`UJKK{BPBJC=%9KL2CQH\fFD?hj\D=:G7GLZ;[0R@ETEGFP<[4QTIE#,@PS4A3V6?DV?FWWI;6KEFaiQAW>eIYDAZL1A:C\;T?=Q2N__uGp-:3S\*CL-L:Zcq[8>ESXXARCD21V5{kC*X;]US=0A@[a=8h67M.L>H;w5>Q$6D)QXI:OThl3q6W3H81ONdM/H2a[XNY6QS/P]OhAPGJ?KQR9NFI?w^A^PH&XE^86ZN9j/VAEHV6\UZXV]CT?RIfcAKCW>FY07Y@[&ROOAIj+;NUx^K_c6FH@P[L_;J1i}=3TUH=XQNePl@^Pj6J:QGC5#/=I$6IRS@/o,U_=AjQ8FldGU]IGXRGML@ERz;JE7N_I_XMpTrHY;Kdt`,NOK[_8ZAETH\>^?K~RAUIBAf;hLV3LGHYHP0CRTIW:MAiHK]_EP7DGk;\U:@KU<>WGILQLT_POL>^FKBHTU=T]MGKjrR@DPI;UVFG=cJkPQuHd;FCTT[ZBACEJQN2FK:9T_WDOSAjJH>S1BIQ:OWV6WUGOVFzSBOUOJLE8R?Hf>I>CHPH`CAL>DJ_CeLLGB?LGLmF4;CNCJKE)\(G_$F\v3J2e9<.47DAHbc@eb8}AA5DgbLTO7_YCbNIGbDq?S?4IVy7gXCg:A?J4^GgEDP_HC\;-:O_KQqN\\P=V^Y;Eh_C8JN2.)i^@~V35s8[|^MfJ|I7UX]@-U9>;=HU\rkTEDfNqUFObM]DH@IRDTS]cO@]>@Q/F4FYAkAklXBLNVJ[T^j8GHEZeaH>ZUm`J0FJFD7JQJf@@L\MF[eBI#YGWWLHRWuXHTOW7GN@>@L_JZSLTgK?RgGN^BCbYKHaFF]P=CtL>Z4Aid=ITDTkGWBM`bIBD9KUV(_j_D:UEUXkR\MOVgQSvKAAZZRDKN_`T=F]J_>U_=fE>HaP`Z^r>e>A]LBCK8UYEPGH_HSptkyR=abOJM_d|g9NI"k7G=P\N9.ecQO]FfMA`VY0AA,.HF>iXd4DQ=H-KKfiLHMWO4``w:DWq2Q`RbB,ZLL\ScK7_]gQiexfGHi6\AZ=X{B0cb>_{QheOFG|RXr1VuBDaI\<\6V_L>_4SAYe\SWA[ZTWPR19E;JDRNJ:GJ=JT:BJTkC2e>^=@=>74SA@JT??/?7DBS1G@IWA4n>CD7-AP>`4L9RA>;/@UJ@@Z9EEAYVFN8HCB58G?=FGPFPT>6L@[U;XVE0@MJHASM_NAR@QUa8?pi/AEBBL+>CQH?\5A1eG:RJ-8PHQ=H58F.?bUA5>92F@J,@LLZNvEAC?EJ_5JOCaYJl?KY9P:FVX^81X>77tX\N?PRCb~@keG=[]AaOqGnZTg`?AVL;`WZMfeXW[?CJNb@IQQ?tI>cDgMVDLc]l7UVrDSa[NfZcGFh`@KBkMZ>Ybd^DFWCHH@LH5@RWRF;nf8C>L=ED\>FlOXcMbdXPI`<[@4NGXBR=UKI^=QK_N_rD`?fO]]LQ_XWYDEiN6D@J=MDeMPYYnXjqmxQbI~JhaXLVWISLJ]TRlBLfE@9LANJKS=x;m9XARQJ`=:ZCNFJ;A/NCNM,J64O8BDBD9E#QQN-VGCO=Z7NX6[K-L8I:EJOs/XHM@IM9@AN6GB3T=@[RSJH]AAUlWW;5+0PH=ZB<@MPFNIy|]PS8L7QA4ZA9KHFIJ9JA5L8JNQU6Q^D@C"437QDTW\HI.GDC`U30NgQI^cSO7XG^;rKQKQ?Z;e=V7BAINk/J<_bMCsb,*\9B7kJT/[bC'1NFZKSFG?_G@fShFDcOsN9YKI;@XMSFEMD:!@C6RPbv:>O;=C8NHQQ]]@KUEX/SZVVIZ59LUGFI3Q5CQ9RYZ_H\P[Ci`4HH6VO00W/HNORO>C,qVJ5[G2[gC:C]@J=K$9YFY;P5S>FGd9THH1IF\ohN>\F@B`F7Ta,DP>[`jKGkwKSL=H`CW?K]eJz[KVRAJn*KGfLaSFG4Uo;KXCL9a93PTD>YGVKJKNlJTecW\ANUUKOH]JMIPLJ@;@@Y5>L>Y60Ld@jbALT_4\NKHMdwZOI:a?S=DE\B6?S8:U3H=;J>T@K@nC2F7ISIf6:cJYFYB?D5LGDPT=d3WQQG=]giK?LS8JLc=sMxI0TQ@`U?QLJQYWATE[lG>MECTHW8YKFLIS?NJzGKBYI>LiG\DJ8_J:VIOH@GVGXAK8IdJ:VUE5\GMS:fcQT=6d68S=W]]1JCbtK?pYFi5^DR0N8X;EDJCdkOYJIXANdLK_F?P]UF5TRYs^UB=Q=^HXEaQQZfUYjVglL,HLNNRGSYJhC-RSLTL@ON:pF]CR8IEX_5NH)Li\0;;i:>~MqGHRj9I[2A$MSYlsR>G-T@YEAWB7A)T>QZbLQ3A;j\/+V0PQ\7@;6@c/,dNK@[) :MrC1CD;QM3K;M[CABKAEK@7C:CB@B=#5Z9IJ^G]EOFDA}=BRR94q3CL;EVNOM96DN8U5AZ;f4:CAGBPMOT@6P>948>->;G3Q>f-@H]N7C9H=SC@;I>>:FBYX3=8@GP8J5RMO<]GEGA,9KEH@B0>:CF=JD>4X:D[:?3I2KPI3?=Q;L7DKMWG;-^>II>9mEJJLEQL\ION>5S@5WVFA;@F3R.t^CXG??6KdJN1C(_L\JSO:HItWQ7o@8lDJOEZtSG_6VOKeH?FDKFkaU^KM<.Kvm;=CFc9RKc0#O=OIGeR`QX2\A.f;DJ[2@Ck4ANN\[@A^E?b4JI9R|U"5/^o`B@[ZRF2E0ZdQ8fPKJ=RRmVAINC}TZ5;Xb[i^74XSd=rVMT[dY`aVFEGKFFjCALZ^@`?n9DG\12IHZQHADLb&GB4EGQ0QVAJeX\YGzIoW9Li:NJ4WZD&D`VQ2Y>X/\RaC,ow8i?-6C+GNHVKOgJ=]T5VqOGM4a>N\[kXaHVVJcRBHTB0:IDyvNAR9L><7M-K8V51ZI\&=B6ADK`BW<61IDP:&)9>?@_VnJH4\rA]>7A1CR=GXSDCB3BCJG=@9VMnW@BB1:Y9eFC1S>8K2R?-G]R51L9:=AUSJGUH7CCRcTH-:I]N%NPbOYN4C8ODU`NDCdP?>?=@F2>C=^N:IAX>cK7ER>LNIYIL90FbIL]<@B)@VILR0I>.TT506LM:MGCCZRJTGDS=;XJI90;UK28ebU[T^6OT=BNFSBIE8K/>L,1QB<7QD8?IV)DHCBTmI5D4DJDJEH)67UUT\DRNK?5;NBWFM4:8FBLF[;K8SYD7A2>FWaM1T:L?;.?=LN]K?evGBI/OBNANNK;E@1UB-IW6C968:3b=;=TL,C8J4Q5-,2F669@4#9JN>ED;EG5>H:FD8GQ[QKW-OWf.I"4:VIPFD7F/8>IG>KQPGF]6g;@B/>.7[PDU3@GGM399?XL@5T1B@DKGAENR2GGD8@MNQIJ<;2=.6aKJX4LVNU=UO2HEPGj1BU^NQKKJ>I3?DG::^9VQE=T4VJH\NDBDI2UJG8Gd@:AdM9C1b4eIE\ZEH*A?Q(@FsiRW:@B7cNJ?B0KQIQ;@4z?6TA=D6EFD4HPD48>B+K4UhsP>6F9ND@A8//J-dS`UFT>MLU=6CEBFSFHIWNUI:*=8RFA>W@>7MJ1F<@MWJ3NO/IYDYGg=P+M#8DLH9BHD+L87T.KR>@LPABE?6IH@=MNHK6EFGrE;vA>?QQFJT8]1qvI^gb=PGFRKFEWrAD@JAeS>I}BKdj[RJ[OPXF>M`]cKGU@DIhSA;LA>WVVCY2F;0SAiRKOG`PT;@P=;KIKpFNJWEHN5bJP=RQfMI^DE?RDDC^9NQ]U6XBZA^dBOJFJ8CWCOLeAbQ@@NN/DHOf69II>?0SDHTN=VbSTKK[`SL\9H^_=LO]<4[XNAI9FK;VYOH\XK@JHLblsK@AHTZM]ZWR>EUC@^EEEEBKNGEMI_JC7Q`oFYR;NWC?=AC_8VEIaOENBDIy^<[DWKCLJWNpjBFWZTbIODGxOH:TYEXiL@=:7L=JDAYKXTPPJM\SKfV3SD:DIHV@@dKKEAODP6SYYTD<3HAB?758:AK:BI=LF>7A=8P;>@I5<90>922&4IA:,?6J<;-=EK=0<273C<8J5;3B6<6(C0>=D>45B=?A?25220?6'?.G=2?D6?BAK4B67H7I3:E.@5D;;;BN12/FFJC08E+C8E;,78BE=+C?C5S8J0;B070HD6AG?E;CF?161?=?4@0A63?I@;@<34D3=2J(01N<665M#02AEACFCR??7>-46DAE?07A5?>>6BC>CA4ME1B1KJD4,?5?79=D@B7@A:9>B<59;3;@=.#8=N>I6A82AE9@=9,D8:9J7<3.=07859KG/AV93KZ;c87OOSDOBm`SGSPRIpP3bL0W9LY@JJGxSJP@JSQ}IC?YRVPw_=ajYPZ@mX]WK7CA>[=Z@K_:jQ9n)NDB1u.:[]!=JHBe9DM-:Qb6LaF;hEAeWAiRc=i=?=C\C8qONNaL^`TNZkeXOiBIGZdREHSBKHI=aOWZIi3QGEM:=@ZK@gFBIvWFzSDU1KJJL?]TCu>Mt?]JG>]B@4-c`EJOTO-4C]gU7>H_D9KU{LHFEEnTSP`BTGB5V=IOXBFKJM08RJOUP75COHU_D2M5JB:HLNUTE6g_0jeEH6;Ie;Ic8[;NQTJ>9K98W@G4aSKODGT>A^:HDSFdRS4@N`9@K=?LFU=V:]|KQ6H9NEDAA5N@\@GV>LNLVLHP[IfnI=2?AOYLC]I0RF6OQFGR>?JKE9k^/PB:H>LFL.ND]C:_+LQ.^?QSKEA3HHRDB;1glL:KC5\@=3UCO_6=C4F;YME?JP9497HA3@PHOJKLE\)BRJHQVYPQ;@=Y;;*?=9Ha8>eQIIUVEXHAAB+=-!493=J\G_?JR;6X8*A6Q#RNFE=EG(:I?$T<><Rb+97<.I]&(>_WB?K>9N8@6>LBE3L]:F:A>C;?W0KC]E4VR53::W+BPCwNbLGBCUV5E^PTHt=& uUU(O^K6;:;:C<@TA:k/WgT8TS4V15L:H>A46dHCUTGO/13X9K[GT@THDGd3>5BJE;cJMQ?9N3W.a=,NDBOC3e>17O9MBJOEBJ/Q8RD6IO+Kpc98TZF\Xa6TT*ATBJRCW%EJ>O_EIBSLFC8DMSRe@_@@I_7d:>DU3:@Z7@RHG^BKHRTTMBTmr:=X5vA[CLMbGIcR<5XV]74PS@XCW55eWH2YlAFLOHKhUbX^^[Np`aIM\c_CYXW@kQwkO[Fk`_`LO`FtI@=w]S|I-IJmB3fM]KSWGWe=rQ&7iOa`^gAckil>FWLcw=_UN_jOoSU8|_lgLMB7)hLaZSY8jQSKTBQ4`MTA3ETjX]UMWGGRBWTW@B^CUNL;/M?JPHCSAl\GXP8oSMAFWYRUVKKAxAKjLHO.KDh7-IEMEJ3TdZOP\^?>NVCE=GHQAJ>94I-JBAAFRA6LXmGIKcVPGCdTd3TU?8YDGCAUIOIA9QDHVLJYbGVP\?Y'IiENQAWfE=SKPr\HIGFEINUMj.T]HaTcvMBsN?CGW:XBORQbLSOAURJe^_VZBynQW=LMAYNPMI;@W>T6_]WId8Eq9TFA@b1B\[]Qa^;^GL7dh@I>6=MSuUOADC7D=K;/15G*KE@M>D,P;IAHM>DeEB9MRDD/EG//NU;DCLR-E1IL_9:RIG65?C51@4=9BK46^JW:e.7`KDU9QN=OOq"ECPK924?9J@H;ECL>:/1>4CK?@ZI/8AE8ASEIE+V\NM2;>6@FF9?R]2,EZJGKM{?C;6hLCCXN?::5M0PfI_ERHV5-I9IDGGXI5D?@IZX97HVLD5]RDLAoCXP/1QNT=iV=L?@1y5NQQ>>RIO^VSY;FB;H7X?y:DO3;M>T5D_DafR:VbFH@^*T?qPaGY0*GX%LE^EIP<RE:P2.CD<5W7IUDHQWR]W1]AWJAB61eO6A1K?<=\35'F]U>P7Z:MJ>3AvAAYHL8]D\=9AV7g]G:7S4NPGK6J*I@Q@HQH<@\8A5T8Tm9RBDNJHYEAEK]FHM-O>EC=HJ9B2>SXKW;Z?MP[UKYK:C<.UVNVK@Q9F@6@_@aj=OrgcuRhy_h`Ocr{U[^ho`jejrpZjn[gcqW~c`lOPf}xhkhfO`pftew`iV|iafc`g~ok{fY_vfsrxhcyx_xnwYik\l_mZTzXbnSqmg\jcgFkqaiaVbfjn[qj`msffgodwZedlsdkTOzefL``swMh_pXug`WswmgvvrT`uzqXfnqyVRbsgr^hqjqcX|oegYUk_]vab]}mhfxk]f[~tv{ZYjiWRkf]ZagWbpvdYYo}yd]fWTNRaV~yvck_]jzfpTjUl`cbNVlRp{cfws{sqiprUlsm[[z\Zn_Q|lVlrwYmt`hgjta_bnisgj]{xgbb[|piHvlkqmPchcs_T`tjghhdY]_cVTcXKctjWcJak[ZF%HK=CXM5Q+KRjhJP3g=L]^B:EMJC7KO]INXAH4G\SEPPIJM=THB[A^{JL_MZGNC@B7W?Y>D>JA@?DaI^HJ^4r4^HZ\VNY>KU.?PR2;Qo[lWHO1Z0O^O2HcYT/??<]WIURF?DAV@TQHR;OblIR6FGKZNFJC_K]Q.KO2[S`TP?7VTZ6AiTTH-R5\hLExU4Y8_PCA]NIXOA?P;NG5PD?ZJDPAYZN>9PI4UqVFtJMZk@\NA@5[DFVzM;DlQUT:UJR\jA]+BEUO^^FJU3`.Y73jaBUQ>KERQMJ=9NAdjAhL;NeZ^&kJVYGEPSLHSSFBTP1^<[w=`=TGNOA>MF=0_fJGAM=EJFB?I@EaJK>`P`ITYa.8JYguG*RWKKdGqmF]@QN95hBQ]HRQIKN>J-YOBeeaH;EV1JF^fvd4JDDFPjMOF9Q<5IOQH`P*KS]cJNKLjlDKIBPHM99TBL,9W+APJ@R]A_K3NNwY]PE,ZXD3eGFFH`Mk2_Ka;8-IG7Q\dQKKP=02EMFCS}Y[a@HHf]PnjUTXbOe?@0ae?29fBWIHAAE??E*D=k=IE?AK@6?>RL\?@G>NKL?3oAOJSHWQEOI?\``5PEAKTn5NTD9IESRD@DJGJL$a^D.c6AXD6c9WOR&<8AOOcSpME5.A=>Z4@AH@\bg`K9ZKNB?R?RE@RN\=SGP;SIsD]InE5L\FIBA7NM5KF<=D\N`P?J_ISE|KRJ89gN-=HNPEHAJ:M7J>?dR6G7JI?bNALHWKH;4YVQSA8PCdHHH3:MSl:RS?IC317@1g.;LrM\FC[J;BBZX5C4ME9RgQBGNCBI2D@MD8T@LULT,5MrK/OCBED=^;LRKHMCFY832N*4,ZCRBR_8^3@NJmN=BO37G^KGN>-LOSBLA8ALD?84:FHMBDIHaHD>_TI7q?bH58QDB_EC[;6J71AI3OB[-Q]7GBCS:E79hIDyfICgO:BOGO4R,A @KDUX(TH9BER56=Sp9@GI766-.Mej1ZUL/FP\R0\EPH>L2LQ<>?=A9G]D?QK@=5HOCV@c8HBM4.KC=@hLECCWB4=;:PF\DAFK=AZNMOG6=L28IN\]ULZfL6AhK?;AICNDNT:EXF3:Oa={60_7L@@ACR6BD=Z5WGKOB1B@PB=O6XV0IBWYZK9SUOORePzH[AEELaZV;RAQ9G<]P^A9C>aV`AY8CPFPNg<>?NR4OcH`CAG{ATS\NGxBVFEOBPhP<]NHB:H@EB@UBNFc@CKZRrBCIANJ8SWFc{7JNKL6jjNAE]G;JQ:kWA92+N6dHVDXFnKBGk?:vbfB>2;0RCX[@YKFPK`IPM[:PFJ=X\d8JB;2SMaT8JUBVE\=9D7>,@?/94?6;D.0:=?CD8D86<2;:H<853?@>F;96<832:5@8D;>;/8EA5A781E783@;:B@C9?D>9DABE=;B4C:=7F;5H95<78F76E>>;5>A6>99;8AAI=:?6?D>9B>8?-=;12;G1?8@2D@97>G6RA5?39@5;,?A/86;2>/2+@J868<7A68?:?8@0@DK826GE6A837C8.6;5<>F4:24G<7D54*>@A0<6=A=55?D896D7H-A:97A3.4CDB9:>C@?A4?=5@><;D::7;9=/663057<6I8:;DADB77130/@>=>7A8B=<614F:=;<02.cO?L6D@BQnZOWFVZE60LY\MKRB9@G2BYE@NN:SU]U`B^LQ;Q\FdAM?]Dag6Y@4VFFUI?PU{[>GUb>P4C=.\7F_M\2K.EeFFKX[;CU->?];JJ\o]g;IAOFLH8DEG8PI-LJyNL/U';G:EHL(GC/R.IN7@AA@SEFJD6TLe`@I,`C4ZmBRWS-Pn>MKDEdSJ+XF=1sWQ`LLSMB<>Xk9PFJ07UYiEdNC@M;LHA,sMYm:Q3KODHeV?[NL^H;7.C68,I3M.@DUi5gUT`fJ4:F@@aCeOF^W-BKS9@X1F>;=-HLAWHS|L6MQFDKR>O?DVH;gCDFDI158Fc;4G_?^HGCJ7O??IM/QOHHKNAHDn]+\AF6LD9EWHLuI2IH9>NEF7PSJC>6>Z@QE\iAfUTIG,/PUfRYDGJKMBqo@UM44[/I7I6g37@FMJW\7ECPIHGJ6GXWB?HK`FO<\GSV@`H:A?19RYFOP4?C:VAFM5UW-E@;eBEKHRDD5QXJ<=DU.J`_HGBSEKuD5e=C|H67]6D=VAEXEB5GMcEWO4WN[6NC\&R6CD63O;HCI9W:DI@0AOB>8B\N?G=MD;>GIDb]8eHLOARM[5CHpCBJ=EL^QG6G<;3>5$fIZ3R;FAJ4FCX>O7HE=:28CNMG=B2H>IKINV=LGC1.=TV]DOOVPK>.-E@OF89KbDJ?0cU808;LQVUe:98A75ZFHI@JCU869C/50B=C5D\83BTI%E848N2;A8PGE;O>RIXG=M/TMCRH4pKH@X;GND0AOODDIII?VQ%X@UOKP0RP`;Fh9;3FZ7V622R`J8H:CCM4Y@.OCVM7@<9.LK6CB5NXJH8;5HN,JB?UZAB-L>=>fLHh.D7DPMN\;W1WA>a:>P:P>HHK/CAKJ+A9H9+aIF:YRaH5HNZ0P)-DF73?M<@CKIN\JJA;DFRgR>=b5HE8M2QAYPF9Wd&VE5e1E_7Z8STcWUOA8/NPp^RD1n;AIQPFLCoT>D2 ?LR_*qYF>MI=GCLBL@6=Dh=HFLSEQH^D:k5FRG=RNKROF3I;ON?^p>F=N3E4tU8RJ_d;THWG/)?H@=XL+0ICGUL@S@EO;Lr[9@]\EGiI@OVEPQAB^:DlDN`N>YGSCB?EQCHV?WBTBE<@J_AKGN=Ql]VI[[PT@>I>O6LOLHfIF4jWEP[DQPCM[InL+:@q[JmJ::AYRVK?LGvHiXW7LM]i^>3W^VHVCRC%fQC_BGMnKoMTWKh?I=\FQ;TKw=A6]9&ZSO/nGG_W;LPLGFK:pEJJ5.ETL`U@XSCg^P;0b6[gArtNDJeWJH7R;JPABCU9IgDWIgL>T5`[FHYS\Q;:<)OTUYLTM?g9K?>HMTID'B^Z8<;H@FCF3g68f1=.;SCJAPT@Z`Z;@D_=SE2O9aN24@F8$NMKG:=lH?9_XAM;CA'@cLCC>F+4XUOKF/9F[FbG97A?:B3F3jE-9>F?R/AaAX8@Y8K4.QUjD6I?ZS9fEL9:J=8n),:=/t/H18%@FEG:V;)4GBDIBUQ}F^iKWeU_VVOOOW:fPYold8JOWUSJ\AO3xLYajZ7E|FfaZ_mlGc^@C]`gioSrc(3M]`TK>Y;ODPoUrPWEAK;VU^MM]MeWG^xFxAi|Lh\B^dtTd^ehgBWsRhUCpJAPJIKehF]IUKpXBR6I>J@KPc_SZ.ue>DFRPFr<[RL\6oLsXePXVe\Ky:_M\<}arMfOVwO`HtXeZL]PG`DJ[b8IHHNTVg:USbH>iPrdk^GVP@f8W_GPdeWPYL`eSGM`C;CPhd6RWIJT|gj4pMcI?>=_.Ak@SOEQc^DTEE;GSf@efZoZHNI^aY=\JwBRgcYTP[hS<[B@OS3LG`HL:Z9G\dJugSKLtQOhdeKIYie3WWcISrUq6cJM~baV^^cG`Q;FKZIdYY:DNU`M\hNQNRqo[`ZvEecOF=^YYKDBIDZbM8c+BX\:@=H=WQKh\GL\RLVMWBPRoeAE:IA>zYe@K]W^X4OVSZB/K[WId\LAoJfLjSHNJEQ\VQPQXYXfxYA[^3_LUa^iEc=UsASpTdCTGHP`-Z@d\ZROYcCVE2T@hQ=TA>z^\is?:4CUR`qR]OLNA^YmneIHJYq8UKN7Zg^viIFDh>.NM@I`7hV4YOO:VL?5F*w2=9QD9_FF=9=E/3AUR5:@5L569>EN7;>39VMFP=vI7U(44@3C=Q?e>?CA9 6Y,1F8;2B>A>8:<96?J9BXSTL@@8:D;>AI@4.A46@=7HAMN;>UIB@9D=ONS!DVEEFG1JUD98KMRFBTGHNC)tINDL]HKPeSgBVM5EJ@W6VQE?UU>AI@:HMPVa<:.*;?G78KTFM@`6KFW_K|OSJAIHG6Q=7JMaB>@KMGNaWAWP?RAIRaADH@bGMVDCOGD3?0kPC2_DS<5LOGC\J_@K;9KNMO|BDRAHvS?JDE5;pd6ISYEC>K:KHXgL7;RgB;KDBMO-~EH1oW4RPDEBGBJEc>U8EWHW78K@:lDBV:?BBa@KOE9K9QQF@KwIJKP?DRJB@M7IDhG7LTI@:oBC?HlTTrh5G0HJANFaMOA^A=]P4K(MQWABB5N8g@MF>GFsKmNY6OJA7Jr7F?:b*DON:Mg,O2GX|^DANO?HdP482]TCP6DdZD=YThH.AL=s>=VE@Nd<:WOIJJ=J2>^oUOHNeI;VYBbc6Y+;`W-OJ\FY^C5WUQd:QC.OG:UHhe6FTA=^FXO9K1>V[KOgIEE<29[5yD=]y_D=W\:5>BUVRY@K9[9DPMP8YK0VPGI*,GeRSdEFQS)9UQDU4PMG@KJNURFFA6TX6CCMMyAQOGSL:4DNbPDIMNEPYRHXK?LHP;QFJL=W^>JPIYDGTN;NI\]>=OIIEBA>?WHHYLK=RBx[JT4JZI@FRaAeCNSIHDC^3E^@WXDlLQiDCRUHFLISIOQZLTTDlGXUUEJ^C9TMGRLGFEWV[I^GNEHD8KP=KFF_h[E_jIOJLGDl:G>KAD@=5K=P[]EYOSAK?JY:/[dJODLO-DLEMPEUTH@TECV\BJ7VR8?VS6k=Ba7W=H0;iGGE@E)BXDM@XKC>=Z?=XZkCD>@>iD]=V)XCh>?NA<:Q9AMOcn:DKNS_@EUqRMDMGP3B7JLSb7FL>]IB9LBA`@AOARg<>COIGRJTfGQH88`I4JJJGMEP:9HRNSDLJ3cH9H5KOAK:ZXUe^F@IKOJPJKFC@H[D8O5]N?PX;2@Z8AIaL4PKEL3[<@WHI03T]Pf`-R::>L:3BHDLKN7R=tG>8C7T3EIG72:NdFBA<6=:;GSDK-;VW>;;VO.=HI['BTLSJKDXSEKP6lA>4G6eno<-cP[:L.FE?Q8BRMGAD[NDH^E]AE[,I?HD>NC=DLL0A,W9?<1W<7POzIH@GMZ:74@:OPX):V'y!>A7OJH0C.GTUOVM@ABE::U8V5^KS^A:JBMT3E^N;KR>P;Q6cM2BPTY::OJJGn@ZD55IhC-CJ7MR@BC^XUVb\TZ?H[k?;KIWQ@Y`Y<205A=DNL4sUMa99S9GST9@MQNM9J6GAM.aS@K,`PW]O6G]hL@=NRI.PVBPE>7=9]QC0^:A1P9Ja:CP;G7`3>PSC=PU1(OMIMMRKLDVJT=FICTHTL[ZKQ9V7=@;QL\PQe=Fa/SIYMNvAE.?A=AJ@=U[Z=,F,?P=OG@PUNEE+JCIDWMT6LH43Y=PF>?cJT45J/PC?WDE5)BUFhRyWgCWHVKV<_'nNGPAD>JFI/K1S]a>`_A<@JJA@NE8KGV1<@LEZ_AA_>A`9JLL6Q6AGNQ@8;\RrK@>VSD1G.ISbG>RTH>?IRK@MC[7;530S]b?hJ=3FeB:7AMGecWBHEBE5>RXg@:KT5DML9GHLwYNNL-Q\@MRKJO?=3a>a.9Pp6+O18Oe;Q-??B8@%U>YK>7F/;tGV1NP?NA[LC>OWD90C?IkFgK?7:JIE:2WMJ??E[IHSoZUJIZ@go\^rS@EZ\3 2=*N>E7@;)>A5a$]MMQAZIN5]D[WMD7@PE=LFF98`GGFWL2]^HA6:CcK4\H>g_Y3T983Y0^@<7SK9CQNa@8=_CFb2?EGUBe4E)OD>6=n@Q;>eK9I/8OF]:C6DR\aS%B[VD>`R+0Z&AIcg@Ic8N07X4QH)9HDSI8vt]G:YA0GC?N6QK4SR2KQNG7=P;8@`=)L6'_TIGU?@?TFP@@L=>L8;1CZ4WIF.8>CUFCWNE+O=:QJ.B1MLF<E8g2I?E5=QpFM,Q2KJ>LM@[6\FJI@L9YQr>4?J2K6]P.S2qK9M:E;@P>8Y:JD;7.<)[EL?K<9J)\LIDtMmH@FGJA;=>=GBcDVKVMqJB15>67>WN9y[NA1K=L0.Q>O7YYUXGVjkTGHOPH68KQ*`hxC@`9S7ILo99@TTG5OCFAR8ZASJKV7@WDDLXQ[_UUSAaPK99:oa]QG1@^oK0?HJ?OO`;>=9YPFAILP|,6>RG:QD:Ol;K\=E6#CTQR_;HWH@mDV[SEhECH:Z4X655T@DGODH^XKh/?\\9<0?`W&;@QVR2/Q;=Co+0CHcM6:EZWJ[S:;QW>KKD4BWZFfPLMS]L?@PN:00=HN;>]TeL?*??;5A;AQ`DL=A=9B@9:;89<8<;A7?E@9@5>G<5?:<<=68::A@>;<>599>:;==@8;:?8=<8?5:?<7=;=7>>?9:;9>8A8<=@<9=7:;758;8@A<:=8797<5:@<;AB::=C=;6>;;7=:;=8=:66<>>=97>9<<::;8;996@29I5>797=@<:8;<:<9=7=?A>6;6<89=;69>;>777>>8:3:>3;8;=;8>;;786=><>5C9:A9<8=<:>:=>=39=:=8;;64>B8;E@9<:<>7=69<=19:9?;6;?9<>9?:9>7=@88:9;:;9;;<88;??C>>>==B@::=;>=;79<<::8>@=?7>=?=:=<<8:996==>5<>:@?7;558:=;<3;;A>:;7<==6:?@<<7B=HM?O9W;hLKbS7C7M7V,Z\E8Aa5HNM2H@E?aI@?=6GOQGNFOLHP3ySFUWqLT?S84DG2NB2@]M4RAS6YK8W7MW[7JS3L*J8G+<5;K8[KL5W/QFH8i?0>OE5E[7ZQ2jnW[MTWIWN<4CL+E;QSM\4[EMFFA2NCJPOZU}K/LvKCdYMU_0KUZ>T_.7QeX@XN[CvOKPDZECARKigCdASZgZWRV=NOOC\\e|PP_TFU?GRk9MX^fgXO_\icQTBWISaT\RS[SOHVVY[[T\YWilaNNIVhPTSSXdbl\GEIITeH=^\NRVK[Q]KULePBNeHiZOWHOs\sGJN\{IOG1PQj9JMZBL]z\Zm>ADuTaTE6NTH]Ztth\vnpXSPgYGPdcJ@2NVH@hEDXYAJdQJBx_[[NI[eLFLYHSdiZZ`_HP|DF-:GR\YPFABUJJQ-:h@5J\:/ZJ<:A\HNEH5WN8HQPAH@I15uNM:NoP`:NDVN8VINWf]9NNH:aHMID]L;EGA=H<PEL;CIROQ>p1[C`TJ,4_3SQ=OK87Sb5Qg]\1@JbAN6QIOE8YSGIYJ:_B_8f^ZBPd`qDKHY5Ud67R@G@;cYFD?F@F]KM;X^UVSbLJP.kC{AaFWIAZr@AV{BHDBI2eKB/7DLj?WM4FjUBoSK\u5DTWXQ;:X6WWn98O1aW[@\9B'T]_9EaPLX18=YNPUOY:F6EWBG@:1F7,+N`HVU\(@T2E5>EH[,c1X5GXX>9@5LRI3XH+B-Z1CB::2N8GG<3rSJMW5/JR:7@A8^WQ7UF.JN>1VID>OJ@:--I'HN+BA?J']CA?6(G]F/BE=G4JBU.D96HA9-E?FAAZ?@@U3G0DG]ILCPOb4;6ILAEe7GWK7Q_5E6J.G=MRA=8L?8<(E@A2B=;A@_*659Z3I:8=S?QAJ6KHDV_JMJ!BDE-';9SR2D{63DT?OE6?5WBKE97_=\KLO1VQ5>P7F95HENFK@FA_GF4C3F>F;0@.O:0PAQL79:C?M;1be04K=nX?EI?K@5J4W:?A7C\S=JP28bJ<<:-hge/BGOGBa^UM8IGC<;CBRZJ@@>NI@4KZe\BNL8]_b=Y,F.9LKJ5BGJ1UA6LY)F&:<@^REL;Ib;>---PB:2:(*><]IU6)>E6FG8EEX`?8B@?DW=QJ>8IF=VV:EN1C.3^=R3APVh?M56?U=H;(3KlFK@5H/QIBHoK8MB3=N9GC5aSCONHU6\;3D<=*.oA?='L.;vd1@4B%]K6AW36GJK9bDMJ5,O6LF8E:SCDx78>E;WNW[FOWZ80AYO2F>?'JL9S0?FPH:=hbDPS2X4AGBAPLP7?ME/IJT-KA5FVA;@>1TE=^YCBSTQC^S@7?7_B9a9@(CWI7`Di_fJU;9G>Q>bB65IGJx<2RFPKF5TFJ/<;APjCW*?IKBPTH6OMIZ]jGURC>@\SMDFB\CD>]ERYBWU7`-DM.EO9<=BN7AEB@?G4;3AA79Y@B7B@6BHM@7.;779/:^N@:3-Y<>@9AN\)BDM2<3L>7=PQ-=AN74M>2?6CAA8@;AK=92U-\?6FD?B8BF>FG6>3;J799LS:3RF5NHR*4CGA7OS8@j-@0I9E:GQAR5K>6D15FJ/8O8LDFCDHAC9FC>4D;FK;F=AOG,.8e.:?>3(>NKB:88.055507@.D?AA>;I087F5PB:$0:7QM=KALY5MK6?9D:IIA%=\NF3P*VJ>TS:T9LTCIGQNX7;>A97(I.NF;6GxxVkl?PN]Y>MJ3FCNA[AP@ScERCN=_B[=E_?R*g=MU)\YW`X3?EJ@8HF.4nlkNLX3M\HdVIDIE387H]<5>+9I7IO/XB;SQbA{JXR5=>&Y}>RDNUWFM?WSF?DC@IlQH:BYPSK^B?gK4i`_]E:E6qp:`b?D8mA;g+GjQMX@RW8nGn5Ji^0?O>ZpGC^6KTgIJokC[?@TX>I`>eL;QDFDtGbH>DiE@F>;I:kG^?]HO76F5B;W4?WP|ONDKbMCG^Y;LQ@GpK3>GD4T1*CAK2PDPcUcDLD]Fz^a_B7TCIHJ?5@>HDh:GoHK=AI_C=V48@;iIOT>JN=9tx}q}sgsx{W\lx{sv{nn~t}jyzftgwvwzqmyn}snpy{ixvtsps{vril{w~}{}z~opzu_k~x\|pvngytmx}v}xtyqnvd}uwkr}zr~}xvx{x}|~qidvlv{ye}xwp}dtcyy}vstsk~r}y}xrq~}wmm~|rlyxuwo~oyhtfz~|y{ptpuvy{|vlo}qtuwqvmmussmzqexy|qft~nz~thrvuxwqri|zxf|yxw}q|~bovvqpwvfrl}nsH4f0lFQ_rWVKHjCQXJTBmC8Pa+?^L-LlW^m\HgZDDxXMb>\@x_Brkfb^fDZJSvq0hSY^cUs4QLL?@^QG-AVZ[XbaKMcU,^wJ`Y^"OMcUQdhI8\jZ^lbKhqXSgOT^RQiEgEHL`dxW][bTNXmK5M_rLdV[a]=[QBAL]XOF~gV\M[lCYT=8hgdNPQ|pW\h_SkpcXMU*TDL_WYZ;numB>bDLAJ;QMAH8=+LCK?2DAHDD@8:IADBO7ER;PNNF9;b\BIa0@@KUI02>AKBW>Qk,(D0ADDX:JqTJ:KBPDX>KMP6dFDF@3PF;ELJHUD@4i@OI6(L9d]=9UK@OT;k_EUIKDJ5;KVIC?kMKAKXh=FL/^MB;5B<4TEUkTag|R_*WV@.L=D6LpK@9U5T0H?$MSK?TJE3H\KN@QIHCGRZwPJHf8+kJVGIET3AQ]MEHYR;L@AUO"d1;=@VPJMP2XlYB7-PDNcQHAUGRL>M?>EEM,JGXR77/oE);GUJHT{NI>APWM<5ImMb:RHW'M>hJM7Q7<(GYKf5N<;68n[I:H;]UF8`0RPeFQPICEO5DUB&BIL[Z;/5FFXLL7<9B;PS3C\O6YF>EQESJFNCABL\7N`POE^XH^g;B;P7LE9COd]ADJ36>K7>UGKZ,:;=M8A?4LGG?HBBH@4?iCKK?[5J9JRHOD>]I@CL\AI]NlJLGG>C9F;KQ@UGLUT:?FJR;L9jT7JMNS:X)MVZFMGaAHF;BLG=K5IWQ9LaP>fEB5>I6@;;M6IFNNLHBFTVB7GJPKLUJnHA>KfLEA9YIW?4?h4/3B@;VURBAgS}^SB[GIK8?@8BEFyNQ?6C2FN87dCJ2NF>>8}70jRO6G>(C@=KW86E07EME2KjB@`EKF;0W69eR\<=VJvG5YD:a:=FF@O@C>Qc7QLM>>(_l@DXWT;V_<+cA7UQZ%8CSeHNZ[:9@>HBSICBD:QQ;CQD8PLR0aP?@FHOX\LJ2XlEB?A:;R=UKI06/YFWQ;{B\%gLFr'gu`QO36$+\FkTHA:LX?]DLbWXlMISHUN2G5[D=?ObVP)B@9RWC%4?G4O2JJE=IU@5C@J;HTA<^fSVDKE`N_SR_[IG6KZ@EJE`BZPqRMCPpRNJQ=VaRgaC^N=VWH8P`^bLQQ[NWHgCW];MFA8O\UX`NVkMNTQ[;HSMV7XHVPaWGIdkXGQPBKKDSYPZ_V.IPPKXRdQC1MX=[+6fR;G9EIQ7A3IJ;J9t@*E5V]BFE/+/:GHk+>GG_8Q=`\EH60MBP>V71GP;HA=B<88>FIJe8WK:H\CP@b8MF41TYN=381IS]M32LPsG1Nb>LNS63VrQC5DFD\@aK@7k@4XSLF]'?NMq5\E6QB85>VN5D;=>=:YJ-LPR@Z?Kl3;NQW:V=X;EB,EYBX9CD?2R]^UN*8DUTGYUKAA66^NZIBHOPJYWSTBKWYD:Q??XJ5?AQVQQ9KQD:7?4LOI1CVL2M?WP3NPV=H<]6QMJ@=<\C;AOEWiENA)RCIHD3PDUNDC:AAWCLNGH7eX7B7NA3BI4LLjMC3:J0>*71:S@96DB0;6M?CK4+?9"A:>..=B;KO,HFCA65EE>BX;$.;3?MM29>BF3G>N<.<0@793T@7F<;B)NH=:(S-A79@E=DB9.U612@:NB!H-N*MMF<+=&9O<>+A2 <=I:5'5JEOC?3>@GII::A34Z9;@:7A:I=83<:H;0M6:WA(E9:A/9A%2;;6>4G(70APB38*B*>2:FE$55AT8A)09CM8:X^@CA7751J5+MH.8(31FIED#D(:N>D)LS*?E8:LA.;O=0BFA37I=SEE6IMSO`YuLpTPZPZZ"pFpHC?JR|]K`@BO=bKhpDLbMS??eiJ[TkLhOMaN]WWG[C9Nfw9f>GOJXRNNZAB@DmGF?hPL^Qc=T_NjOl5[W=AFIN[JfF5DOJ+NSQM7@Df>]V8KTeM=QDrF[JcGE`TIKX,I8P\ITyVR{WPivJYGSB\@`N[sLVb?T^uaWCDWC99U09>UY77<08EL`ZEBP%MM.HF677GKMX7jK7FA]lM9)UHV3JVUBzz;1KE>e8KWSDHTGMSIK<6O1sW6TK3E'5?FP]8TGM^BMILX6APL=6J9M1B;20eY@8Z/M6YBW(JY?)8O78/HE'Q76>M>Q8wND=>=,TXL@582LSS61J\?ZN=GH6GBGL>D_)4UONDDW7DEGi2>FGLZ;3JP\J?VH9I?9GNJU;r7IIH7ISSC4).>IA:;6JHRNOB:.,=@HQE\aigAaF2j6[j4Zo6h1R:NC5WNaHE?dcTS_9NN4K^?DdJ^:iKLNDDqLnPZ[P^a>]GVEoKR5hOA>5UyG\6]<>BF^ObNLBYctkIVK[MY]Y=VZ`Y[BdfYj>`BEGZYI=KPBDLIAKJRhG*2|=`L^7;#\]<2JUW3]^SK;.4dVUbRY8JNBjP^Ac:DJJ<0vHZE&XREN<Ke*EI/H@tGVMUFtY9H]HE-M]k8lbYOnpMHZb@PcH ]PQtUG>V:YP=Ce@Cy|cZ`\N\RaUIM4[U+L=aS^6FPVeF1NXYOCSB8OL@G><5CTLT\L6k;\*IAb9<@T7>?SE>>=b8CF7j;E?HQ.SI^A0IL~<6QUAH7A49S\LB;QE9M~GOW>(l:G\JA8a@K[66@UUNFlRRCNN?NLD:DX[;[9g;jA0M5E(VGHDL1GM5]AX?IE6F-1;PL?AZ]NH{OsILcdS@L'C5NBPF}fXORR^OLKOA6EZd)ZRD34\UYASQDcC\FTJQABMXdGPlVKBHCim0B>RNBF9TIPF8T.:A<7GEKGC>KDD=\MULEH@DB5IDI:`C\J?HBL?3ILCA6B,7RB?MB_C83>J+CJA@F@MWBMJF$;ISL>>v=ACJ6D6G4PNG8:?DK,6EM>HG<5)4AK;Q>CIIV1JQ1L>=2=B[@-OZ.M8OACAD<7>78;:I2G-BECO:D?OI[NH>N3@2Q5BM=RIK7EX:K5N97A'65ACCREB-M>QE8:77Qb6R8C:P9HOL@SMAC:GUIBL?CFFJMJI;dI:T68B5J=NPKDGA4G[0P;M<;/==)8S>9d6C71F;H=M>OQ??26EK<@YEFGD4SVq?F:>ID?QFC=9M76M/ZE8G+JK:84=\3L\K6T69DIIRL-0I6HY@@DC1:BCGK_;O=ZZ=DoV>R7OC3:k[KVLDXTU'0PGp]@OSJLDAIu`_`EeQPGR]\@3-+CJ3=IQPmh[L?F5A2A.ZT@kCF:_WPP4QACH;?OfM>SF8Sm9>]8=QF3+0<`'BXQ82TOE1BEFBDGH_+?>[)PFJ>TBHC^c^)I5=V;+dM"Ej??;GE>NADFO'79AC;fNDS;&Z^L7H[LAG\jV"3VLBTA[]N2:)@RD=R;aJF\0Q@7Js|@7UICEFNKOBQ3K*F4NPBK:8K}KDMMHJ>Y:;/9WNKOf8O7AEYj;JON;A^+IZ4^K4OgNGEUQG\2Rs=HD9HTA6E=IUZKXRI@I>S\A;FICNHHnJ@8.O9T/>I*a^_B/T.6FWYAE40FG]MCI7I;2KFNSj;O\SP[>A10h:ETUP9?I=JJF;=Ca$N\JL<42<\FDW_:W]LQDLARsXWYoFLPATZHNFNEkLW\YYa{NTkNUIVQZ\TL[SGe5DKEETaxPQt_dc]UARLOhhkSX\@)WCOZ6tDTlVOsdGQ5aCa@OoYWNVRDTH;bQP`IGBhXvUYLiF_F^_Gx^Q_KA]O\bCdHM`VP=?aAhFefldTK]FbeSbCS]GJbFeKUYZaf>`\^ZcDKVT@FQFJY9GL>WZ7hKHFM]]MSR^ZZXrBLFUJ`PAK\h>JVVauMQlDECD^\yFIw/O3c42nAHnMYLKI^U^]PYNX<8UOc6MBIFW_KTN`YX6cWTL-^TS^LPH>FM@?b5YCMH9VFG2HGDf@:LPJ;>NB^QY>N>aEc?K226UsQADL@/SIjI?A@_[W>;KiUGIiQ9K?GZU]1bUW\@@_MT?GCBWHB9PaHG:jJ@YNQRS7Q4MIPhcTRHdXHYN=u`aGDhcLJPV99LAoP]9U5AY]o'[EF@LL@=V>>l4\D8UPQMEKIXNfGgDLGZHK>IbeGNAOF+DbEaYA:G>?H.K37LNI[`LWYH:\1Z^@=\;GGDHb/=>H3[INKDD_O@H,kAOOEpS/aMR^\C7[F3?GE@AI\FADHKTXJbAQ(G^:C4]3XV7JXHSUI<9LD`9OD}G4=XYFQLCQh0LRJXR?FBy5F\1=UFPi5Wi3hGd7?H=XR`SUQSXKA^M>?>EM:=@T=JJFi7JM9UJ?OGEI`?9VTGPl:M8I\?QMWEK;>TL\DiWM9cDf77I9O6EHQQS8=ILSJK5eMY.>BUCfTKQ?:KV@FM@vUbNF7E5@QL\@EQIMALG_@TF<>AHECCMah?KZQNXO9>XL_NFK@YBA?KGDTU9\N]ZPbRTQ*CRUHBAhDWDdRdLN[XHUNCKLP68/9;J>G>B96f7VOB]:L+@GALFEHA^JY@ZT@H0Y4:]>QBV<8PdG"el?ER;@c?KD2=odHT>CAHbD7Q5lHOF\]A4LEGB@KFG31Kl?S/XSN,@GUJ;L_>9JB9QK7YsU@9M]AbSG;BV6NMJ>JI7ASJQ;HEANuC/O5LP@QJ=Y/GbW5IJ?=:0BJ9>KAU>=;5KR[CoAGD[FUAHG>YKEPM@=M36NXSOKO/=bfD?G\^DN>_]-TM2<;0b[[F0QD0K2848jH]@RKhB?H+K7>]OK5UoFLF5MMJ\:@HHIXWX54HLED8E9CTQ4^3ZI@:8T9C99F@-[,)Y%927&[0a2815@0F"M82B<1<=0E>4{+N+%>CRC/3A72@E506W?8<:0A4FA3LK0;/F8L:B11U1M67DLSF;M;>=*!E=51>H;'84B2C48)E#>=)KDC3.92Z(>36EHW663=/H>+8OJE/;I6>AA.?7F4:C=41Y3>O,=@9AF079<6i@'L@I?5?H>00Q0M44D32^27I9O1IJ/F3?-+-3D69]4J:=FCZ;<20D/QAI58O2+F:,>0'E$/8JJ&5$U,928SBA"QG-90?BG4;F5Tx=8YWGiGP=Ye5@K3fTKFTWcQaL>]IoZ+`620BX?K;vIIU'NWd^?OQgIB2e88DQ5Q_]EL]\>aQP@DDG^OEJ[LTXLCd"QQ[VPV^@RGL*^MV9XL]]NQ6_XI`IX3N[V/]ML1S:CRjY7XGJ1?PT.'6BKQ@RExHo5B=IGa[LCD>WQVXUM=RMJfR?=YO8MP_.NIbO;LLN0MPKECGtQZSCU9WPDcLWgGRGe[YFU[:FOgt\RkKV9ZdOOLgT`\ABNRqhQ&PPKCLJSiIT9OzWU5mHRGIQQhObCPQ\O\E?+EPK^XbFA>V8WcVTVCMYGRSCS\H?9_LFGZM`QDP5iFY"(XFHAf8E77':==6521<-2<3?7:%?C40IB81?'=*F-#178;099C@64)B09>62;2H*8A;-.-921@916-)F'-33:=BB-1:,G8<36&404031-B70C>3>94.46@+<2:-E1;-C1@9C95E)9*>67):;1@77:@7;64A;*.=@C9>*D?E7*$7@+25..@@(68B71C8>5*/@7?1%#74:6.4:1E6<'-9,8)&;E)11?//6A2@;A4B;4(@2$DI/0789+=,20439A54=999;5@5'9,;2;.'+50A*9A)8;>%?51??/3>?'A145:@J;7D66;7:,A9?,=?44/:1955=8G;,)2;--'?-2885..7%:E3@.08AM31A04018<#>C.>4-1693=63JfdVR=Ae<55@:<=k+G]\E4MUzZ?8D?gHmRDT99CIO::;Xo7M[?VLF]GH61>M3Z';V47OLLWDE:>^Hc82O(6X<^q7/>F@BO+PFP3KJKjYCf9GVU8D_NX@j3O`>GP]9ZhqwOXKFU3.lWWe?ECTIiCM1Y^a:c_Da=bO=H1>K<.;^\]_QR>CH6>?e1ny9Zg4hR6TI6EvMUQ)96N:w\JJiMPC4RN;9U\:PTID-/ECJJT=?C9@PB=?En>FMCH@9G:HHFIF76AIM'G;3J8EH4->KA;Ng8I<5?Q+IPi;x:@B/kHPG1HFW@KQII;;M@\?UOCABb<==U>Y/P=]/5jOH`9F14PR;;fOVLK@5DI40U=EDU?6NY=D/NZ3>ZJV=IS'MNOSMQXE77JAAWB[AD?FMX6NJN?8JDAFCHDTJ7fM?-E=TNY@>D@l7=VSFSF>`NCADG-/6ILEOH9F3LF@AF>PHA|IAw?EQEOZEEBAOnH\L:JemRF\XGOPSYIPiT7'>jTeTZRHaSg>AJcPrYPTYOVXVH\R`[JQ\OqFNZ{FTOZOHJY_AXML=?56L_XmS^KXH_NwOEqG9MaL?Rf?VMDnCNQRrfHRzPcOPAOY\cA\RRdYKeH8N>\EIYX_EMSFYZHQOTVB`QVOH>ODQD^2RG_KAdd;FLNLXONXLQ_XTURiTH]?XiRBHJPLFm@HGUDpTFADISWI]EEMK][fSMRDHJJP`=AEZY=YJERVFMTYAASBWWR;/C5d@)B9TEL[8GOHDTQ:EM?D9C6>UgAB@B9^c`NJNKK>W9=GVCRLBGAN\7SewK:?B:CB9MOF8CDEHSYe9>9nPP.cC_Ja\5EEQD^XGLD+oD>FCCBCS6OO]ND_;4H@?QI;YG:KC2TH@KEXJ`M/<?8DSA_44D7OAE=6[G:KUT?VQ\A2TL?@'u::E83;AG;NGXiK<@-VHGFDE1<0>9FBCNMJ`4C_RI5N+?DNG=AH7@AB;KHx>NY>E5EG8N1;K2UU;LEYPC81PN7I<3OjNDF@>*3EM79BIGHHZC?0J/;LM4/1?,)2/gFBIh:GEHQ>EBDJGJO>8CHL`FXZL>D\X6O6H?\VEIF6H6:NB]D{CXPaBBcEE?IHKGFONOyGHCA>5>J5IDA98H>:@GD?a2F:KFK(Z>TTKNH6@BF]?DFFPJFFbDINWO56O6RZPFL4RI?_W;5>J=91K>nYAGB;W=Gd]MVKs3PRNZ[bAcO*bNNTbQ4U1YoNKMpzmD8vcnZOVnpv`Dxib^Eoe_hlR;dUG*D`ZyRWZJTZUcd\K;4_XFqsO[GaJsNP:O@`~oFSgI%A@\R`e`B;[dAO0V`IoriXlwmUfk@\{HaDgL\nB{cF[Zf^Q&aB"=vdb\An}cdh/j\t#c?.WU^EgdNUbMv.Hn5\{5+TO;OVZ=u}XXp`W\SONZPtIDO:@HHCFIC=MF78=6]J?>7NI<[9:70CUGK?O6CRHC-<<^6LAFHERM3JACHI33=[CAG\?5AF48DDI=C:7EM/XAHBHU;==@AC:>MRG=_IRf=[;[EF{?AQ=CRCJI7La@DG==NODBFPN8SK2M^;>P;LDaDCkF?DNJTdSH>;A@MyRIM8EAGBHNKZM@ZP<{Q>WO5KI9G8;7HPCABEDK5B?U;UCEB9JAe;?4?D9>COi1AFSJII^FPSUNVD;UCCnUFTF>HXHT7I\]N:VHBD8QFA23LD6>@Hq>P@PWOY;M)==>+@5=CymRDFbUL?WGV{cP9SIfS[@S^RLHEJc\\AHX/LOTCQIE/F1WO]89@6-LW>pI=0_C4=iIN+F=S679cFC-GcEL?LGPf:ZW@QEC\SAb-B.@E;M[VBUPJCHPGB942KpOP5FUYG??4E5VGYP4=MKwSTaYGD@EU=JWHd;@KNWIIUERIBcmJ/WOGF>XD@\A:LbO9^7`cPH\D=NIh`SL9:Za5K?0JHFIQG3OKO}>AGPF?^FDAWH6_DFQIK?c[M;DFH;@?T\n;:[o7TLpB9L]59VrEIn=YX}39H@\E`OIOAZB4AJ[NPntQEcZ@ALGUEI7B@;JML@LVBP2IZV/<`CQHKcBJELAcCP\KF8unIJkOHSQ3I2XB?HgLIDVnTEf@@XC^DCLjABk4edW@^aKcK7Q[PK3oV@hg^.AL[UDHRZMRpJ9RRNgW9=I;_L@IHFjJRy>VSSIYmi2gPF>OWnQQA9HMoOeHAS2DNlBU`;OE]FD@g\l`NBL1OKL}WlbKY=mAJ5K\VPbPdSx\KHh8GARdPM_CZ*Z9d\JSJ\EwNlHoEsDCUFP_KawXC\MYNe=WBYXCuhfIgSR5275]X1XJ}Y>LD]hR>>L7LSTDY4?NNI6@*8NO@9\bFIP9[<^[B[H)V@GFKOZZG>[RUGMH42C>V?:WUMDSGMQP^o=>@]SUJ<@QTC586]YcPJSCdFJWJBg@N:L1_OAHeUDW3OOJkJ>R15_PMl>PC>5]IWSANUUaNFD:G5LK\AaLXH7E7CJHJ=@m7R78eaLL$R8EBJFUXCGCF;4TnfJ9h\iN\Z>HDD%I=M_DUc[Z^^nJOSNQRM/RPSL[_PoTNLOs9gWmGJ:0D@ONP@[UFD/OLV>HS0NRTY\XGAhEW>.VJ/\CTR6JQnV;;NQhE?;BN9Hc`DDFY6JPHOY:OELXB@DY7LGGfAM0FYLNDFYXSNN]=D6oay/UFRe^H_R@RY8TTALBPP]J>KJGD@BS]KFMW[LUEFMYGGWPDLiMBYFTKLQIL8@WNISLCS==D?\BfSJOO[QNWFAK]TzKF\LGFO\_LYGRVJTLaN[S^QVP:XDEMB_dPj:HbGIQxXFSF_ZGHMCPL_WdAPDI_fSFHO[IXVOMP8RRdcHCw]IAUEHBOTL_eT@dNO8I^BWNAM?^ANK\[NQEACJK`F=Z;G3]X]V]\8O@VU?SaLKW^;cRGu62WVTKF]-KZ5tUTaY1a;?_=aYrCCH]a;]H;__fCNd?fc39@V7Q_RG0bd_?9L@snRfa,US=fUI5^QfSgDbbdjJIJZRC]?<`S.Pwdq_M][cV^qnOkMDQ[]fcU[78>M]oJ8VV;LtE8;TU_OOKO8hH6LydUAMeK^4VI_reCRRJVNV?THj73cQ9gcDFFrPQRY>3EX~9"bZLgXCK/HMQ^jPPG@UJMZE7CSYmO>XTSET_HP{Mp[_[MMVJMZBOL+Y9iQ;b;DJDEMPuFZEFOIMNR@JCDBHMNF9U]9Icno7ILJY`bOT4GD;/4;:6:\H2S]CBZ4roPMMhFHNZWI3RRU@[lUYKVa;P_LFDQmQIISQQO?FIGTOQAIS:VAbR3RAO=T\TIQDWHL@N=VQOBGGGa]GZeNHRNFM^Z4JD;NQRJJZMQU^MJE=tOO\UHVODEWNN^;EQR?>PAJZL=?E^GQV^DZ7JY\QVTKBQPv>TCLPDI]BNKePDPMBNINBS[AVRYQGgJYPa]JWPILJJYNK`BMP[IUTHTq\T?VSIAUhNMMKMQHwV>TN=IUIEPNXIM4@VNbO7B.QFVYG>K?A5L?AK6JX??Q=\JI`6KVJIFFEDED/JVFYC1Gl:]7]6;UT3?18H?:FB)E[KCT6C?4R['EC;B@AF8-32@5APcMe4E3R?.6hVYPH=l9BYGJNWd<3OS/J?_JB@JR?]2ELP9\ASi_bS\f55;_-0VCHOJJLHD@H6@KO7AMYEFFJG?P:/ESN\TO?=6XJDXH@AAA>L3I=KHbHQtQHG[_XQLQ[QNGgNmPMyNIZ]CAB^tgYBcB[oWT\>`Q\SInWSCmGRvRL]\XS[TNX[QW\_BTTEUIP\OBkV{[YkJi_FSlOFc@D_aVUYBT[VSYSDIZN\M?EEcdE[3UFIFBB]FKOl_QRlWe5[O_YVdIORPCVTGGFUMBqnTAgWXRzRgnGBRENAc[GF[EMGYW>JTBB>J:>BbOQ`WH`h>EMGSI>DPKTJOMX6UQYL@Z=;ROQHkIURUJVtFJcIIOV*PJNQeR8jLRh^]qCKL6W;RO]QKKI[5UDSB>PSMM8D?$388PNLD=5@VO@=<@56LI1UK\:68UAJA3M=GH@RFBc,R86QJKFPB:lWQALFJ6VN-AFX`GN6.(?:69+BKCAGP@NIOJ,>0KBDW8GP[5LB8CC,HIGaS=HUC:GKD4GP?MHEEeP[4q8SYD5JI_HZ9EDDNGD7X0?=TT;2jH=D]=P[,L-52N\KQ\9RN`E0@0\AP:iQ=@AO_A?BN)?H\CbIH6HsM9fL*^A0V_JIL]<7HG9A_@Be?J99l6JaEY^b>GIHLO]e[ShKTSIGNLXUWQZQE_[NL[ZjWW;IFV5\EKd=HCIdOSQShIXR2QIRpbkPFGjMlOEUs_HkT@\9dN+OLKV4fYTV=PqXEFRHaS;B^:E=MTOF\lE2TBY<5W=@]`FQ_W]B+St4d@>BX8LI.MjH?;FRY]Ga8@3UaW?OSJ?ZPEYBD=_?NY;Gz^;eJHNThC=H?J=M=>C8Z-afNT>KABA[N7LQFEK>PZYG[-`GAYKgfSjJ2n9FUm/MbXP390?UM7@1T[HY2LLGJQ6E;;4RFJ6F8;C(hJ5g[yRE4paj+ATS<.`7B^_:ENqFAsU]MX3`?[G_Z>cN3D*IdWeLG>?W5,3KYsJEUL,YE`rALH6NT_^Hcg=LW[N\8s7>iRRS@]N5O<7EgC^5\AIK;WJ=NQIV1r;]CN<2DYKAS7ARJNNQQ`8QYL9C31?13DE1HD5FHECDH9Q]D59ME4\XG5<36O6LT5461;G84NlG577tB97JD>:cGM4=X;O=V?G=8SUHSPGA;0CK\H7@JJdLJZ=@:l6%8=@fCF:;P/AWGKBZ5="YmJT6HQ24?(8M1HXG@^0?F,7IIdN7;(*B$8F7)=PLF>/qD?uGQ8>YZ;:RE_UI5W1G;6RHEO3:BG2S9?<<]vTTL=.fBAF8B:C@::[=(>DV;E#)IAA\6H[E<8VQ7:B=EST;J?E;CQ9=*MSP]B:6TIPPF.Z=L0\KGB_L3>?J6G4\J?DW@:Y?HZUW`R[MC`DEcbIiT\UWC@IA]C,O;778^U7Q,OBL\R>KW><@5;F8/UOAG??`YL0TJG3RGTxdKICqO?]hRP=MBNQHJVXVOSW\?QIPCRTZLbNRRSQMUVXQKLPEa:]_NIMEOHJKVGDO[RL=eSFIOUK]EUH9NVdhRRLBOXTIPRBOLPX`RIOMd[LGJJOU_TTXWMWTKWPWH\GCaUNPJHQTMPcMPKINXKK?:)DH1WV=9/8b3CXQH:?AEG+QL]7@kN32ACKB2K=SIHL=KhJ>"OGnWTA-N4L4E9;RJaB!P@gGbL8?^LOt3WK@DDPHJV>>TR8G8DPY7INLK>A=VHDM)j5;F/G/4Oa18=QPXHS6QBP\^My\T:Q=86OaWBJFFOA4:hRNA@\L>?OZ?85LQ88@SC=AILeTJN7;?I4KETH2nFLFbJDS5RA^LGUI[1XfCM8:L

A.?IOBE-KXI9X7B5HD\KI;4M?@CPNC_GMX7FKN?\:1a?Q)N6Ir8HO@V0G=V@@B:9LY`OKXQ?ga=LpG@IMWH-DAI>DchZ758K4GBV>ELHS>W;jBH_=JTRG6LNTP1,ABL>Db.N=D:9=M5g]PAN`:55G:8bEXQB@]K>L]=Q;:ESjA5BB6>.`QE/1cb%N;=abFtCWD:`b6H5<32ucN]O>>TCAI)POBO8TN497;@R3B^QXL36WC3WG6.gE7T@-M9IESERCT;OJ8;Y\Lh>S)ODk^?Jb\HBgTn:6EO4_KGN0EZ>G7LXOXWNOsLVT_Nac=FDNG-NFI?=GBGBS@MPWRFAC36=_Ink`^gM^UR1CgRIJV@JHQp8YOA[HVGYANRINSTWM1KJ?=vWDu];`AHLZCOF>EMBFbOGQZ`OFXBLIKMJ=Q:SRCLTXOUSN3JB\:fF8D'=-:6@KAUOJ@>W\YfMgLJRoBVVEKV-GEYS[]7LKCWoN_J6[\d\F>GGLZYHM?9BGHJ@e1KA4JLLKdMN;UT<\TRHBYV5AGXHTPTG:AQMKMMopD@@TMDQvFO@FXgCPMYVJREYLIDVAkjK?Mx_MXX[IVKLN[KqGEMw@A?ISDSEOQNv>>RcBMRMR:OPZB?ME;NsQ?]ECGK@H@U^MOS]^DdbKSOV~C:\H\K\IVL_@O7JF@H^NXKCBGLlKHkQ>}IBREVNPJFKKTUJUEB?UB@bQAQJQKNKOOdROKLLePPAhJbFoPFEJKuCJdgNLA..CU2HN{`8G8/@BA=Te8JP8ESRLJ:L-0CFJ(;f$IMcO6=O?HY*TBF=WJV:IHJ?_J?B5LR58GOF<)]2=C@BJ=U;GX@5;MK_N5^AENC4L4A1=1aCCH6B]\"MiYCR:G/H<;TxEE_J38C,@EHMa:96OM\SRT@JBX6\LMSLCBOB>KAH8QQMANVCCGWCD?8G97A?&Q7M:QFFV]BCGOL2>I8E/Ae6=C=Bn3UD=]D_;=CCEEFI>NC9?48FLHH8Qe8FWFHgVZBJHS@KDX:7=B>,_]3-QEV:-4FDlJ.inK7N=?Z>8Q?eP5O?KBJ6=IGNX;M>A6GB?GC:6>5b7D8=?>TGD6@5:YFi99MDAC=/N?:49>8:ADFH:I7QQA9H8E8:;>^FX89%LDC]<:9;DDKG,;:@I>NUB46]L7F2:=FAlL=;AH_]2H7A6J.H=9L>KL@1A8<4?FME2.:DL6N?9>@A:8MDFA152J3W?=FGGH;>@2=CC5HBTF8FBTJAJNQI<5=.79ED>;;AH93G8NTP?IEOCJR>GJE^HV:BH8,@INTN@:0NB?DHE5@.;M;@:2NI@>_6YXI)HPYMFEE8>P@;"FB0kq2*0@@F==FK0907Z2R2]FC?;<_H,1VBCC:J?JLY'7@EFNMAO+E5D%0]IE4:MCI5Q5CGCLLA?67P<6TI[?J61(C@U@4C67V]MG>=D3IJLL_FXH*DT[=1EC=:J>D:25DYGG?O=:/?3K=XIGI0<88?FO966FH:I;CFd(F%4S05TEWFD=8M1CBE4OAD5C=>7Ld>WI8R-R=;M5iL?nP?QMUWYbuJ9XW7MgRJR@F>BND[DBpICBD:6?bTRJONKSC`INQRL[@QFIBgWEoHSQUdb;1JWCm_cM6]TWIIYPOQQV>dDCPlMNMF>HEA<6nLC1,@9Q\4PN-@8SC2x.>(f>|7>E1:OM[V[?E^IG*L#-9:VHYFC>U[FmZOH:ktNDZ.^&WHTYB@TUUT@SW+["J:?/8W-MSGS_iOaB/fj=FOA.CXE8G2D3EgZE1M99GS,:F;J-g5>E=>DVYYaX\2MUPJT[FM9Y0K`(QB[6<=7C:Vi\lO;L99OGD4ShWAVSWLJY7[FLCUFOGk}I\TNITZ`HlJPm?FDWIiTFwwZ`z_kYFB_j8@m`_[B?B[JSJY[ChDNS53zHTMeRid;ATSEQ_kbJeS;cfSL\NudxjN8=_Ki^NeMTK>ZVT]Me`JaF[Sg`UR^FJrSHCMRIYYdG_G`ZGiRR?lW)AU@FaLUF;MO4VFM]u\QFkSdNd\WB3?IAz>D?=UhEOk;aI>JrFI+CLb:NM=XZTFMZ.L=RJ]0HJ6H;>CRUSARmnH=C&UAbbc-3LV'_GvCBBPTQ/{5=UKd,VB`-V1VT^iGZ'TJFC>R1A~1KEFAN5TE_F-TJ9OU?^uIY0fEVW\KkWS6F1X_]&`DB2yH0.gX_TDk3B3JK=NONJddl@iG>DJRZbFOQx,3nD:bdC`ZJDFGC0JR#&vXL1Ji80>n/P9E.B:6RKaB/*LLPF8;?l>BEOJ627`HH>IQHDA*Ri2HjKQ>K3D/R[V5&7Q4M@I-89rACKGgN;YC;C>DEA;XCH5ERE2?8K>>?B:AHMV]OJUKV0QLCLPS+V]N>E\NORDlEDMOCANLE3CI7M;;Y]=J5AI@W[QB16MGK>FKFD9UY?K?R46CNECKVGU\N:FDB=g.DHL;MeQ@\RAaK5@VNTDXOAG<>KP5SOK5O5FF6IU6LD4>MR9./SO5WJ3EO9<@MO,NAX?:G:CBJEL@Q5KVN9L[;?QFBVV7JMHJCAa7FLU?BZKG?9VI8QNZ,cFOCVLE^<@K=FH,D>M\SHAO=FCQ9CQJNGX88T>IDOIq8\KLMFEbC>8N?2LU@IGTIH5U?QDHC7%J2A1H\NOEV=WEGLKB;PS@IH>=BNY4NB<@Bl8TRCET3E3L?eN_KNQ[KjG>:FTBNAETXIQZOOZ.DgTaIBS;JtjOAY:>G=;AAFfbTOJWQeQOCBF>3T\4GL]IOVObA`CFI]TW<>B-BMNVZ2>[R4B8R>O?>I/@C[MQBJXX:GMg:SS_Q5[ApP=2V[VSWMEA]F?AKLHa8EYNLP_[YFDZ?A:8@XXUQLJSHFKZ1MERe@S@WK@8Q\=EPBV>-9JJO&RD8>7:5E5FV3N8X>QW.C:I6B0ANdDQImHHFD;;76IX6:`DjRe5S^96:D:KYM;M@:hP[IH-9T)KDHKQ=Q<00PA3dX\IF]NHKPTWOEmi[M[Y!5@E@CM=UG&MG[HC^BCI8?,?YhB>W[5DvrHd;;JPe90dWHOOF2?SlWmRDg9H:C:2PFO]^XL9LL[XO,WFPH@XVLKCNEHCQ@:4:HBAeE2_WAJMIZ7G9OM?UONSCbQL6X2IDDc5XCNDK@KUXoSJ<7n$EO`_/=4J9R8JG;\DI@>J_^K>Y<DdJSTSH[UTT7;7A=';U9@+ImWRjJVBCP5;Nb8_P3P^:IH83PMQLAB3QH@:G;]=KC;8LVTB69F<5?QGTM;;:?>=T9@B7=DL>88C=C8<@*M6Pa:VOd9T8LZ?Z@0hUK>HNo4F<@HQM=@54yZL^C?T@O>UYbAJYWB;YC:VECNIXOFVRRCe=d5(^BG7YRCDE>L/MUBGDOIA?;5?[MDSOD,6E;MLxXI43WJ;EV1?FMFKR?JKf-EMAf_A?ZHFHDH,PNDR;6+?iIEU:LGDH6DSKSVJJ2{O5ENI@XPHLSdAB;V?-DC9f]g>B@BkWEKJY%lRDCCTbYA]?<>RBn[Vy5:R`A[3OEWFPR&KI>68S2f=`AAF3JN@AWAJ:8E:N*>\\88;W$5N\KOo7gBJU8DQ>-IJ<HFS=Q2QH>b3XG8a8;=tFNX5LUP]gTIZ^`K>;H/cAJ3AFROQSH@NQWG>OJJBZP7H9LCB:r<V2EELNdDb?XR8>ULAW92yaWk7D^TNVC`WdS\9EHaQPOXe:;N^N_VXU=J;eZ'f@A>pMNGAPNNS\V/G\B`2bT.NQ\GJeV_9GGR9EX6WWZ@SCI@HSpE?=D>_tL\DBLK^\@F\DFEnXVE@@HZFU?;EGfX9CH>QLN1TZNHCU[FDeUfExLM6GJ`M0>LDbAaG]?6Q6?SOQZZKHDCB89DJDBFD9eCWBBBNKFC>C@:QUJXMN@qICBeGK-C:7:?9SQ4QM25FJh5EI,K>c8FcNP_;1NO@3SZLLFb@HBGC@G:A?DRMGW;NOZV8@P6KaK2PUUH;7.A^2WMKJFTK=WP?;FI9;O@;7AN]SlX/VB@1CiT3g4=0XFOJ8??PEiJp;LBB?^U7FAPHcOq\H?TFJ]ME\Lb.U{CZ3lQMF5S\LilgGL_RLjH`=bMUgRO`MMIP=O]dlHliElS3b`CYPYTMB]4DN;ED]q)oADHNGQ`_s[W@fCNKVKAITJRWPMERnfVNV^ULKKQ7UL[DR@DEHHDT:FJCWl[_OS@R>mg\g@LNT]MM:`JTe;OeUCFL^Q[EPQNZ^HVKZESdMTr9ONOTHNKlJTSJccCZVmCk8CTA_ZO=lVAfBXDDNDCCNFAGeiEBTII;,NXZNcO]tIOc`;NQQI`aCTN]OW\JDSNV>Z?EFSHQ?TGbEK^;CJSNT?E8MNI7@K`\74B[=DJIKIrEU?XAlM2@McXR]5AE=MBP6E;QTHEBL;IAmRdHRAGJ`WVXW><;EWW:D?SGo=I[I?N7EEJ6SiB@W5J?NJ@Ic=H@EuBUiQFTG^[TdIWVBg?A/:@7=.HY=@IK<4:N9JEYwGLY7[L?HCFTANB8JHeDAUUHH$^PB5\OJR*`>CRTFXKDWFJ.AUJUI=^?QEK1e5.C>RL^Q:`==9N_HMT=<<:KNZW?E@FBGYHaXB^OBTHDC>UE[?WETUPSDFPAQ@>:LQ][Rm2l=DFFL]G7>X\BITOJ/JaRF?B7R=:4QG6IQT5ZIK]]X<=@A`DIK8CwDGWDbHk1HUA0KUQECA:D/B.TG\MBU7E=XF6hJ\BTCX8YNAM[JT?LREE[9?6L1N78?fR\:dE6^HJR8_@bnVE@H01+9FAO7RELH>DC3Me=E?PUG1[^HPO/JH[B/Hl?>?DP3=_J=J43EmOFW=g8?F[/Z=8/BHbHGFCH:T/@@2Q^BdXDKT]Q.I;HP@6CWT?e:2WgGX8ITOP[M4SI<>PIH9CFC5;N3[E7jI:G-E2IK45RC`H^^5UC.?T@;JCD?XRF2o[\0DfDA.aK4R->M:BUtlHN#@B:8PBVPY?5JUUEPGEFRLQQBeHJF/YPQH:HUbRl9INDUX8C:MBV=G8Z=PFU@;m]aMGMBMTT96TBE7?QM87TFC9oC4LZ4JWOJRS@QS:AQn\s}C@B<0K@a@X;NUOJHP0]DaBI9UB8=S32:N\9DK0[ePUIuLKGHVH3lCf_,6W/lZW`FFcJARX5ZTDMvDW>U`;S=VV=SPMFDJQEVT<9WJ1:^BD?ARR1oBjKP;LbJO=Z^QMRJIGsEQ@>WGJ<=CVO3&[B>@MU8Y3_P^T9RPK@CC,X@?MF*lA@~&RTsHA4/?ONFNQM>)E`Q:K;_^TEc?S?T?A[XB7LEL7?7=BRR^TM`UBM8D=NSRA;Jk/MiVUB6CAD]SKDNA1WdSAm{urq}vqvws~qwiwpntnxlnxn}swqxyjrsmrw}v{yw{yvt~zun~wlmxwmsxqywrlrwr~tw}pyrrw{y|umxqq}posvs}wvxwwzss{op{npuvz{ymluv~s~ut|~oovyuv}zvorunlixqyprkrwv}ttokvoupoywtqtsruq|pvhhuywtwwugkkmtltylx|vq}zvjhrmtmus~o~vrxvpsrqpntwoxrzu}qokhuwpVm{v{yuzy}}quu{qy}ruwzxtsngo}xvxxvtorurrpt{psninxoxxqqylxtuuzwhxk{~nutuwtkvqsswpj~ovuu|lqrxmsrhtymw|vrnkxxyiltwtvztzvvn|{y>TH=U;Nn4GA:Z5V7:;TH.JL7O]UL9_WOO`UGEnN6IB_DOCKI:K@?=T5DA4cO[AJC:;IY3O@UKNS7@:AO788A/6eF/kA@;*`JPV^IK>VB9P3a9BGG`]HW;BC>1+HH>:DO:^Ia3U0?=25MFgyJLLaGFLGC>L:;VQSL7I7AHRJ5=?GHJ1QH;D:WH>?^VgJDDD@/]KOI>LIZ@L=BeIVZO^F.H[OD@sQ^S5UXMI=_FHPNzFAIsO@2E:K8OXL;9ZCP5=;3AbTP0J;MP4XqZ^VDI.G^W8HJ6@LIKO954TB092I>]tI{KBSPiPHAIQVP8MIH]HPDFS2ZP:VR2L'=`A;R@O-EsC2ICTcMRl(QCQ@EHWE@2aVN664C6QEIS^D458RR7E^F3LS_ADb|YhJSIC=C$FHH12A6=x_>=AT<_&UGHN4/P@WQDAGJDL\XC<9:MEFE;E[1bEUcXDH@E7hYHUVERHFVVAK@0JJK@NM]\3OC8?D@EI;A`B2BRDPJI]i`C]L7?WCLXAD>LJKC>9\Ea]_86S\IzEIT^<9LW::M4b%PFDB[R=.HBH?eNHESZiH@XVKG6]DOJI;MW83S:\@sXKp<,u>>RIAN^SIA0JW=8bS\BK=C^dH\PSTKQ\LKGg9MoX7N0GDHVHDEg-CcZ5Ac3Cw::]=WASMX?aKmKL@MgL>^JZ^FS4@UNAtv[W]HWHQ4TA_qA5bIaA=nOMPRGK-AQ@V^aB=GFoC\_VuFlRfKQJ4EVND9FHcQl8G}[GY[;C]`hs>;FVDiMV@ECi^a]c7lLLJR?LvOG6P4MfKVPO;LKDYN7JMZ@EMKa8Bf2LiZ_XLSFM=2wOE9ZFEbY\N@GMDCJKYA6ITbHQ\CYZCdWA^St\B^NGZKxJO|FFKY2j7\BFhvC\rTo]P]OTN=h>VZKBCH`>^eCE7ULXF=7NJ@GjQI]\K]G_L@YUQRk;CNV6^GiKTFUxK4POVw`T]9EG:GiHZHM]OM`J3RC\=7,IVkFL'UUZDwkuWK6FB>OIHM^lRQuTJLCfNAnk@GAiA@H6\GLXAJY{IEW@2Y4RFLUMIKJ;VEME6KX3ZGG3O~Mf@ETELVBHLJ0GTN\7BOzGl>JGRP\KXDEK0C9H6HXQ;S0;LCSHfIRb@twTCDFcKCTNIRKQRJZD@FSG\PD;`R<@HYCJ8^_SZ;[D;>LUBIVBMJJ?:D7@FNJIGR9>RCOfBD>TDJDJJX@?FAH`P\LG?MK@IDW9DEAL;TJLvBF=5XC>O[__T9Pk>[F?7A>KNGd>:MC[?EF=I?uTWD>[F<@EHN>=@E*3RGE1<`?QCJQKL)@)V4G5?G8;KB:=<59WCTH.A:3JB@?FK2&BB+\-8N.E84JIS;;O%4@0?^Q7@=PFWABD*:V2K@0]+D'ICI:=BB(F9);^3Bb3:??9+GKAMc&0V0C8AaA=5T0DJ5H/F0J9=QN6AM8P+;4AY8FCI;1S:03D;0C2S*I0GB=GII?:;Q0NW0K@7PLZDGHIGSAC9\GCB?&4"<7<7+I=7>B>9:QB.EfLTULQYDcR7R?@E@CG=XHDU=>ERR@3EXo/LpQ\I:>\N;YYCCPcDSKLYYI$>MAD-zCM!2fDHJBAMC@>hHXHI?,WE,RXRB{aMBI38R7J<3CABUBZMKE>0:4CP8;PLFAC"@=dVSO>NJGZCJ:Ig6`>5SFHFLj96UQ5J@k8I]RJ98IBHR>:9?IJIP=ANMMd7FXAM2A>NUF1LDMFOPFCAURt79OQDI;@ICDAS5L/Y[5DMJGV3?D=P1Npx7'aOE:MNB<9I9@]YHm3CH=MLDT??IADR[<29Fg3@LPICVI7BPEGFDGPD\HBF23?8:5R6IOT@DaHHMPNFJ0=@FJJKHGa:G;@H/C^@?5I0[:AR=^T5DGI@PHiG]VRK5~?I4:GN98LGC?G48SG@GK-F?XHNPWHGfS]QE6fPF/D=WK6_MSb_TPFFPLVL?RE]T63FE=O[8BHEHW]C?VIJUSMD?WADBa;65RFEcGRYE:PQWYWMTGVSJ9C]V]5`)T=INPN_DRocHCVO=HS5j#;EBTXL>4E=\L/R?K6)BKK19JH8=XQOL;Z9:KO-/H&0d8;7^IW;4eRGL^NG9LcA<9@RSH=V8BASCHH7a7;L7HNFKBN@`OS2]JA5T:.3JNO4IF0(IXEPE4eJ5RWRIC\R/7FNQN;M=6D?1JB5LRIK<<2O?22JJhRK4>;I8??mb[_e=;FVBMMc:b=UxIQEh;/\?DVp7Uw`MHQMdGAP^DSrVNLBbYRQDA04L[Eh:5\MSxDTnmMvdTrEEtPJ:JP9rQF@SU]VDSCAiG+XS\UCZVI,^E`:O[wZDSD}6a8DDPDcXH\[PMNTPDPIF5[VVPX]C-IIJVWB^@QR3N;CRUAH_OP4^gUZVh>UYEnkQjGW>RSRW]?4VQHHQO-ZBRgJ>Pjh;fo:eqbP:SfB7QBG9dP`=@NTP8AaFLLGJEHFSI?GIFE_le`Sf)LCD\FIdIzSPEFG[NN6:=Xd^M{WTjZDY7;?X8p/SrVM=UhO3]GV\GRGCCZDLIPK8g[RK8MX@FWaAV:kFC7UFMjQ3f\IX`bTj@Bc[iMGKiRGJ^Nk[@T$LNL]U`MzHJ5oLZYR;\=e>O;=M?m_U<]`fIHHO]TJdRoWCRhVOtDQWVeDTUof<.5XUcdIi@*GTH4S[cZC[@0^ISU3QoPXqS;Pa29tG>r|EcOhGt?KA_JATCWDT:Lz>>QSxC@SSpnPTAISK<@AYJIDNJJEBCNI/J?)4PE?MN8Z8MLXG^SR5SA_;A;7FBDSHIR>8BVR3LB]A=I;KX?DXIZK@CCM3?YcwJE:YTQb;D@TJGJDJ91_EL_IJ@RXR48APB9CGMZhw[`DVH`S[WSQ4OKPJYKAPJ`8->R:QJFQBEG;>QkUfEZA>ZJJ4OFHFT9MAKWCP8QI18CHYCS>Hd2NH9IEG5R3HK[SFq1EFN7WIA@LIE9R6@5?KTNZ8M:?>GK9v`PJ\VGGc4NHN)I2G0@HLM?THQT4H-JDPIAB?@7LbV2cJBKAN>lP6I>9V@?8DU?AB@BBP*HF9PgPBE_RQI7MaQH@KUMU7[A?CO<9Y3MD;bH=3\8OIcPS8MOXZ,CHC=H`:cfnC5I?MDLUhT;F]jHxc/FLQSP>=ATP\ZPEDJ=B@RK5LHqD>J5GK=R:FQB6U=PB9JIFIa;BA:MWHP?EE?W5@W;X>AGGF7]TE]PB>ZJF>J[0B;?EL6E447D`0GA@9FMK<+26Y>WFHL7D6EO]=<8PG96FQIe{3QOf9n[ZNMPH1CII/?=:9KFO@-;=9I2=-CZDAgCYFN/ALQCGBQEL7\ee\eT_IrihU^hc`i?gm^[]hhosbUZefYcc^f^i_aldj_kk]bpokmnxtmwZ`isckfXh^ek]RNba^qhNfjetedb^[VXjQmVYQc^igE]{abbjYbld`ihelQqqjjlrefgfZe_fg\ibwfb`fPhd_gei]cyYnqT|R[[i]gofR_iebJSspWOSneWUak]pjn`d^Vs_k^oaeYRd]S``^gnusholnm^V]fjS\pjeguo~jlufcui]Kw\]YfsVrQ]WkjiiRwjk]hf`nbk]btlbe[WvmQ_X_imUvacogbZfp_h\qbRl\gebiizuY]a_ecfegk`nk]lcu_now`M^_haSU[esbhtafrlmj^iwdj[aj[hmct^`ifae`Zzwjdhfdhicu]jgafac:MJI0mGRT:O=K=XiA6GOezIC9;BFpS>PEGPtJG9L@X-YRU>;;GWnESBBFF;B8VNPHQ[bTGALF>]IAhF=K@c0UfAGBNA[HK@ML>=RmME34RDJP:gJIcON*^Sb^YW;D[H52`\=CLTHAgl?;bB^:PS]_PuKSKce?KMTDUAC2SK9ATATEEE4jB;@NHzOJdV,FREE91/*8f0CGK3dfHP8GG`1K>818^eR_>RO_\FXaHwEXIgXkMNK>NJBM=KkPXLDr_JUkB:bY:C[jmPP>JVef>6ZU<[9QFLEIOWTA3EEcIOWHAYPHPoPQJG?MFK`GGARHUSA_\@k>kWOTXMI[JTKKJPDKRSLFZM7J>LsP6fILZHMLH\]6KFUIZP>c]JJrIL:DXOKMDQOY>Rc[M:KSieI5LS`JWY?OtNz=[ZS:W}_JH=@LOPTTEPK=`9R@NLcMP;VL>S5:8?b.UI4Fx@6CJWE;I?IP2EG:U}IY0L:GDHDR2AdGK]=GZERHMO.Sc\PT<{15>0PDELE788?@pTJ=_22BH<.UCm@`=4NLgVOBWV?\5G?GHFIG>B@FI>Q[I3?RD>@`Z:?TiPS1SM?u3O&QSBN*T9BI<7V<=KWK=%SBTBcVHE=U=4QD7aAAL8sY<@@@IE4@BPOJ<3C:IuFChbIONW\SYB`Y[VQGVS|YALJZMiUFNOzWI`=;vd6`fBb3gP:^b*eQ8WmMR_w6f7L_JD_\NNZP1DTXLA6W=,PTSGyI`[8qOGQ\Lk\DP<4UfU=XNYLHSX>KG`RM7U|BFDN\IP,J?AEiEONUiM=GGa[I"ce>HKP=E9T;B9EUI@FiVBG_6JCLLgHxCMLhQQMMXZPVV<=33^VhMvKVM|`Dq]TQFWQdPMQKFU\XjEEC5?ToKMJXN3]DHSb>:O:]CC\HySIMDR9EHTe^Yr.jgTuW\[RQPY`Gm[;S_ZBUXK9GTmY*WbL;P6NlDc@77RF6WBAJUY>6'^NeGLIHGPdFSABNBK>:tCQN>Q@KP2SpBh7EaBV=HHSDW8H=KbDKEH@JMF/QfUBNg7MKEQJAB>\Ua;a:QLXGDIF<4jBhDQAN;KZiSF1K4?GUdD]-S6V?W?Y2`.PL:@UWGrJE`YSHo7LGFZ3Y+=LOc?QH4NE^@J3C9]Ha8gEL`];a\P<^N6HaEJ9V6Z2K9JZ2@KT0DQ5MVUE8ER27Ge/U=FU@n?SGs4QP2IK8HDmGC@9;O&W=[ESHGK>Nud>c?1VBJ5N8j6ZPFM[lZQ<[;NV.QO]@CC_UM7QXPD?HfKMOLMB5/OILKLA=\R=478JL8L0GO2>Z-0J57F,GJOD9ZL@1IG.6BC;NHZX30Z;?M3M4GE:H^AOKN;PDK/J[K@DEw,H1SF6>N`GZMGIKQ?GN;NZ5@In_@7?D\a@PTUC/I6dH=D9BL?kSRED4fUD%@U*@AXaD]OHf<\ebjYMMNLLM1FS[Q(:Z6^A14QFI86c,U8AU3aH]7IpAQS>Q:TU!TGM9?8EnAQ>6UFB?E8CA=?TCIDFbMD4q85[VQVHI0;s,[Q-C^WQ3@S.=:A6E[>&EIYX6dLjXQNPI=ORQ5MUIDAN:`:y^EB2L<>;;RLK4BO[NUBV-OG5IN?]`ZqQfS*PoSQ1<36N4D1@t698H3>x7O?q:=;]E>lGFh9UFXC]_WC@+TbN@:N]BIEXMU;E:TN,FKXWEBu97NWKKB8B[jW/?B030LWLEB1HA*4RP[Kd5j;0;g2JQ[?QFx>EvMF^\OD%B[ :@NGS@=OE.?9@DP?3>UOQ3=;1NA0UO2IC=DFX0BDB<7NJh.YOEZ)<5W,>L\U>I6FG>2VF?D3PVo*:WY3L[82UAKWU_HR^>T;XHCiF?@1TZXAUO458\EOOU-O5BAJNO91HM=6B:XDM43BIN>9L5EF^C=PN;SCA=?@4<=U@G6WP*FV9HQg)D<.HF\%rKU?1%SC>5;6A_=VA0IMBJO?1[W?GCL6T<^AEI>M<\OGVI>S7OaPVAYD2DX0AG_MS45B#XF9Q>0-5N-MI8VFJN@JSE-xL4JHH!M?Q'ZEF6b?8Gr`V?,[8WUNND9WHQH9O@VL:IDP,S8CYEGIN_50FDb:H0]O>NDAY[U\\Z,;H>D9@@A7?TFAF>H0Q5YFD`$=5.>OC?6SVhSR:UBTJ55J@?OP/??T=/L]ZDPX.HMUIK01X8JMQe=FDLJBMPIIZ`YVNlB-Q;Ec=<:=?\0EMTHM?-Y1DI]M9S9\FDQR@:<>MJCi@2t9F8H?A`NE4BYEB4NTL8CBIC=;JC:d?7t*DPI7B<>>>+`?F047PEE6=RP;EP:Q65

?DKB9:2G8<8,2JGHJg]>8H}@A=o@B<:H6AAU4B;@7Xd2I,5L=6A:;L)8[>?SLRDC-0A@2t*c+]_F8=^>4]N7?3m3T1270J4?>E758;>B\;-l8$`19:e?`O,Do+EBD;I9=MB4A8D5OBAOAH.R>:42G7.KE;O+PP*F@/4CD.D8cA?I?C@BLJ.?Z,<]S:DL92DT;>2[_NIXJW+MBZAQ>brP@=_EET6PTKaC53FBSJ/7G=CZK5-:G8P7]A5U=FVAGE=G@@EREIDD,JV:HBN?ifHOJDESRW[?TjN>?LSAIYQF2G+V]@?ZVO:DOZ6RDY:AW]A\W9?>)E3GBS^RD8P0JS<@SC>8HD_ADILP>?D]SFVHPCP1DJ6H*H4TBIBQRAK@N/-DNHALD/H^[H4/>H;63LGD7V1`;XVGO9R7Z;CLFENES5@AEVICT5O=OGF=<`=;X8JMAF;`OQ9]`2=[<61@L9=>I^ZGGLDRD`9FJ8KFNPF:]K^,HJ;18IT08@4R:?3e7CwlXBGUGI4F]H`P=G\WCR8Q;V[6H0FDMaXr8?PZFf32<]j8?J>ZE:>9YVABFFD;KCHKQPD:O:C9JK$EMPOgK_@HDFEM:W:C?8PB:@BK97;1FDAHB5zoF>~3EMFqTJZOISNFN;VHIHV:QCPToGQCU-QD6CPV\HCGIWVF[@RM]71H>a_`eTCY]U2E(jX>c?[@L?P9GI~)RDEHVVJJASH2YPaJN;G;FUET88Yh<^HQQ9FAFQO743PvM:SVEDJ=N`CG,hM[367B9Z.;6]DFHZFMDLCx;XTE6@?\K)s@fV@gW1??[O9NVTH[PJJYC[AH@6A?>bROZ~CRMK>3FZUi@CMWSTWVLT5YLB@=L6ITUE=V>;XE]QN67f\AALRD8k6qD=I8YKN@2VK>XMON/5HHa[I<76>CXMJITNQKNBG|`ogIO[]Tl2HSU@Nw?IL?CGCnQN6RJU[qKWN@bhX2Gj;<;4:A@>:AC1?<>FI?86:76.FC6H=NDB5<@?>86EB66A?@CG39AE=>C:A64??2?B7=G6;<:A>LK35I3<;K4A)98A@78?B3836;6?>79?4@IM:C?B53A8@U>;5E,AEBGE=0C7;6?@;>=5D5BFJ>AE90B>NJ?6;6D;EG79aEBAAC5=33G7AA@@CH1>>EA:7;9?>>AAC@CBD>:>8;CR4;=D?BH@:B@@7D+>N;28=B7G76==A2=0;65MB?KXA=bc@,5MbDJqcA3:GOt7dPL[YDO?RQBKL1TWfHCTWVbE>]U?UX:0P:RLOz0gT>PBFR2Rc^KD7:CNHL;LD6GD7C:x9OJHGRU8F0W6FKLAO7B\;CLEUxGB1KGIVCX^LqK^?\yQ6=K=MHO6@BFkNH\JHENT9?92PLLH:L:FMD;OUNbNSJ\Vc9PMNEATRD^EY;GL@WOJXE>UADRNHMFT;DJIOQ]HDEFXLNC8B=FKQ_A`J@WP7H`@FMTHFB=G_YH?E9I7FsIUQO5=Ve@JAeEMF@D}E:;VDGAZ?VJKT>NAGKRJ~7:KQY;H8JILAUEHFB/DZhEYBO|7>ACnG9HMH?wRJLCm]Gc;@HQIEEOEYNMfNPF_^JQJ3CQ<}pZMW_PCLSy@TCBLK:KA]BPWP]>kAM=JSYFFBY8EG^iOJ?PSfOPENFEL?LJN?SN_DUGKPBAJLGEaGMUO;J_;Pn=N>FI3AHfIL;]?FgKRp]8?E89KD_SDGIRPKDMYDMa@UEM>NWJT7O@xEfxEC7BI8iw;SMOJT8GJU^T6UOEJ>HG^nEbIGMAW7BR`KTW8MJ9WYUWMMG5E\@Ea;HFA5BLU9bR>>R?W?8OJO@P>DUYTHLX`@?CLCUSMQeE/TJPZIRL@;eLEEX<>DHS8LjBMLWU[`XHJoA]DKKgBJFELN6K@DAI8N@NI8EFI5?M[AM5NM<@PTNfUADP8CU[bICMP8AGMB0/KB^@dVDNfQQPW3aj(9jMLFV`0W4X7SK0LOQjS?O96aUH=EAHGFN4GUd;BI6ZI4A4]SFW[4?SyQIYS3OdNNMHOqZ\J1F6e]-=x7.MR?L>E?9,FZ\O^J#MRYKSL8MCOWH-ORBk\rFRRM^Om`_RbD[F3RVCHCJ:FSGD0>YYJlKcBYEU@O>7@3rOIm8D[IA3UAKXP0L@h+^N>B@<[QPJRWIQ>MFf@@KJ.DW7HT]RDQ8eR:BL2TDiL;^P1GKK>;TN[5:P~;HBVX/J6J1PHBCR?7YL>AB*KGZ2SK>ACoM2@>K3>_GVg_ISDbUXY^=7A=HH<N>CjR/,JCD72Uj>d]273H>J`hD9=GJBL5PEJ<=HlG<_3@TKZ6MYZXg^@ATcW7]G\C2QYTF?GUm`gIC>U@ZTB-e^E1ZG7[[HKbf=L^3\gnJ8U;:LWKyB+X*BA^dJLM4>ZoCGH=:NG=V9].>nHPZ=XHUJ>/5RPSA:G_KI@GAUH>LIRIY2V|[Fg4>WF<]M]GK:HK85:FJD1E1WNL>>GM7I4oEDWBk5=m:8xB>5HABF?EF4Q_]IIKQ=@2gVCLHWIIR@Z^H@GTEI0GRUcXH7_G;9Q;FTF\9=5CaKeKDQAA7RVg=LFFN?K?TON3SDMQAG@?V_RAHJk_AIGY=YvP=G?GKIBZLKMCCGk=?GA=R9aD>FH>}6>VHG>UEV2Y[DGQ@M5FRKFOUMVJDDRQDqLCDGL:IMDC>cLH>:KZ\=86A'?NPRREUqiDSjylWdJ7Q-vAEsn]aZ+NjFOS29FEKDRQn_bAaDD6fYPE:dSE_agVH.v5YclTC9AAU[WkUNGM]7IWf`dQ^@>4G7mQJ/zJ?APKKVTSXAN_8bFK$Ci89YJJo\HJ:a9EZ@I>#U{CDSmKOmMAJFp_>KUg[/RWM(J0}PCMVS:JHCddXEBF/MJWQEv=n>ImZO[I8VStQJ_B]URdXBVcjC50^Aeh`/TB_4b+IU`[>bgi]DC3ilM`SYHDBH[s3MZD?nmG/tGWYZJ>m:sX?BRUJ:C_hqVX]Dv;gG^oL\]SDN(cIiy]pG >K]E=a@`Z?D=bPfe;hKqIJ=pTK3\g@UEG?FW:NI6HHVP-O8SYTRIHB>8G>L3CSMRgA;JJGQ1QHFcM?=N>b>4V@R9|I=.X?:IPBT:8QDO>EKHNHCUCP:HVD]=LBd9FPGD@RH3DGbDETGh_[BW5=`.KJG7RF3{0-J@B9NUmBGE]P?1IIMJ[SI@mH:D=P62$AFL#bR;A81+3RBADOE;2(3:CKOO324%FRCK6?<2NCA31;B9>HM4<82A@9:?CD7256E5DA-LD&':>7>G09>U([CMMK5IB8M277'FY@/HN98U0A\LWU8BM5/90?;I([MCC(8FEE7EII\2MG#GOIN89+0.=R$?/GQ>BMBFH=3C06401b9B8.CX?J<2B?CB0_HKJBOXSS\R\THBQGDJDPbMLHz~U]IJBtIWK2JFU=A]]V>SZNTPQDPH}OTNQAGLZ>FPIEWLPA\Q`OBRRNNO]6:HQaISRVc7FegNlFnXQRQVAT[K@Zk[TLTVGJ^VfPPQ_Q_C|:JqQNLXMahHYFf;D|VOHDMAKZMFhSTNF8DMjXNJLPEJGQEJWV@AmeKFTbGNxPCABUJUgT:Y0R^OFTIHxNMRYRcUBHBOT:|yNcUhcGHKELIUQTVGLOIWFRMLYKGJIH=NKO@GR[KnNUODCSGZJEvO8NECILDWdR@jO:ONsOoLLMDcUDdXRD]7MWRKGFIIODKCIG;J=J1[HYDKLQeA:fB5;,:0H>D:JVAiFDnQ[?48>S3MCFfG^//UIF>Y9bGM3H6F;T2#A(\`NB=TL918PEHFFOU-@CCKB+[8@AG49GBk_^>W.XAE]NM@LYWF@K;6XPX`LCSC:BGB8=BU3R56^:.HA?0=YS^<8@;H<@H92aLSd7BE9{FDQGDQEOAPrF.0@$uNMON>EH188H5@:>\3EBF`LIBFKNC:`Y.MO?B?VIXX46<=/EDD5E/GYINGX?2HIJ@?2NHM#HoD-E9R.FOO:EW6G>MGA742D/?KQ@95M9N]9JX62J9*I7G999CGLD;N>:AM16:?N>A=1B:6A3?C+K>/9CC366+4OF797A>C>0).?9;@/?@?C8CCCC>916>&C9G;=ID21EB9@C5??6C74,G;GI52*:=8$?;>;,:@:5,7-6A48D3O56/&7028K62:H39Z><*A7:<>A?5BG;:GA>L;=757IC2-7B97G1D21CD8;467445816:87?/67@78-&:F:C5=;>3--+@88B55=79*C#.A?1=4K92C79D2;44C5FHE8;5;/B3'87.@1;<2@398:;L6JF<0B/(:=H!C8DPlXDIhF@YETXt;O5R\PBbn??=P`pNWd?k<>[TZVlYFTf?ETB.R9eQ>a\lOLRFGGC7^EFSH:@O`dENBE]AXVRG7]GhUGjV\aK]pJEWzSLBHUER=DV^KKCaFI+s;MeREDU@f?CBAbTDISRBBSBFfdxR?EjQN`=HML1MJMI3GFbSbJbIPKc\ApFnTOcZLNpI8b:RbWcF?OQLLDAUVAFr^QY1RW@ZK]uA=SQHDL_TpI]^IU?CYYjR?eTZSmL>ZJUQF_TFC;zKECAT=Y:HA8;ra`\;pAC\=DG[t7DAKP6S@G=JOZ>H?IBGNCI?>NB5UQ=8MJGA;fO5CC??8CU;HH2?JO?bij?HJFNCA6MT0QDN7I+@DQ>FVEL[BDa,JYIHAOSJ?8Fp\TDd1D-RL6NGGXEDL_]ULVKAZ5@9WE;GV*3=))5.20O;9?%14H38E3E=<8(4=Q9;H8>@5B.2G43HI7G9B8-B411G)?I@I3G:)802.>4.A;8*/@82D3>5>7;<:?55;1).855+5/IA31;C::4/9IFL2;.21;9-//7829*2==8#C/167$6?88$@872*;01+/V>&"0A972;,7(,!9''D8>7>*<#@1;A,E?I<3-6;.744&1=M?<*+7<2;=54=+BW>/@8E9>09*CC.F2=5684<6AC5; 9KE57G:19I.?;I<$:6&G7892F21=\rCNC}bJ>mRV`c]P9By]YR\F>NMy\GY5;CW\V2WYNEEUMC@=]}Q^UWKTp]^NRMO_PG[FTN3HU6DHAV>PG=eRF0nSRFBgZSPWITs6RKb1=HT9W=OPNGDN~TU>HDlF5W8B8O;BQ[dN[?7`H34OEG?ULABJVHFJ;K9OHPKYKaD?OIKO;bAkGOKH9cP3DnG?[FPmLAUNKFP@?==iTbNK^HW7K9HDCLq>3CO?F;:PA\TB5ZGESXUA28DA9fMH1CLLvO?B>2UWGW=@QP1iR7`>=QH;CUOJ5E=K49GY3dmCALhEIVWF/C5HJM;Z`?DcKM5GJ>K889@A;jtG8AK?HG1WJ?=>6<8OENCTI?>S6O\PB8UBF.8PG+I8<`HACK@2BLDUT>RFCKJ2C;>*QJ-=M2oSK^L5I:I=X9*R.6J9U8LT;Q.E`.8FW339CcJFJP82JE(D;INDG,3ITNSH7IHk=?7U2>URAEE\=:LC46DT\C0?P@X05Z@`G=CC6l>BLBM/C:MNC9?^3@V??F4HT/;S0.573C>C[SBRFRI'BA6H]KB8F`ELK7<4:J;RO;DbEFg8(.9-C3HP`WTTC8HC:CVO<=BKAJd=fOO4FU7_YA}9?=F;O44Im(=>L:TQ7QO>PGBFSFA[1@:LL4HG3K)Y9WUjML9KdEGCO@^'GBYSSLY6PFE=4C?RdNNZNF87TOKE@KHLPDLQOL2=jMhd.R6B8>dL7>Qt<5qP97BD@6>FSCZJRXBdR^ELEB:V>]?/=VKuSOWCFFHFdPL7GZ/DG8P;Nba;Q2>E4@_Md_S?ID;xX,/?WH8I2BLDE{S9MCKJP44OF.TC8>5?@X4/9;GSD;WQHIK?m^D=*jT=I?bW.24KB>?V0K9^PRG*CSYPIZiONhT{NSNGY\ep/^nlhBpmgaFW=;DdWJhMeBd?YX_J9Ez:=vq@bcNSXReU\k]G[\x3Xbbj7eJS^OZS!e`eI?gCv8ma\njN>=h@r;OUrvKjIc?t7N^B(>QhW]2UYOG;gHdHi[GTi;]uH*>sI|VrfFuJ[a`6jCZ?ol.E5^O[h`Zu[uB-RYc]`?qY87_Hxb.:Y/MczMF;4QOOVZYXCdNLM7DI=ELPMQJAL`VQAFA1DIGmFQQ8j,A\B2O"-DCJNST/l;^d64Y@\:H7aNAg39eOj>MQ8bOBXMgQh9>@TZVCB.R?RBP1KA\\Z_ABJLRLZKbL>AF8K/918JZRD-^)JXYgSOGF;kCW\iXQ@SOG]:jOB>+>@L:DB]L2UVXHT[Lcdz@Dp6We8K9EmFA[-EAO`"RFJI;`Se[m:jL|2F:HJIWZH"AQ^16A@7GKB!?TX?As1:>K@W>H.jGKAEFN?F8HCHDJ@>=S>8S9CKJIAH@LZ@LA:CDAC@AD8@>HJL8A??A=CF,:D@?=BIXI;LD0I7>LPE8?S8,=F3AAEF5@MC<5>N=iM:C@L4UC296?=@KK;K:PAPIM:=H8?GFET;H@R9DIH66ILCF8JC8UJADNCFBJHAK7EFK:C2K1A[C6NERD=QH>F>9<6PN@@E@JC@'VGbL@A?A2>K]Ja-BD3t;EJ=aD2/PZC@>S:AJGG?M7KN;ACJ4QELGELGZ_55<<87,P+J9=;Jq`Q>YQ27WYV87YD3aRaVLA:NNIMUS=P:?VsBOK3:@TPJ\:@XSQnW7f>-L91ICCB?agT]0=2PJWJ'EFE;B>>Z33?dTEHG.KA<_LY#@TTVl`@_>4_JX7KE-U;[L:g>]JUF^HBOPZuG;U3EBjG_NNVD49A0I.EEQ47;S8GIP>P?Jb;wCGICC?>C@Jh:WAw+-RD976G7@8EHDJ]IFk5]G;>=PAADY:OK\AN4h7E6IH??O8RS;YK8DRDB=lKUC87:G98;8X5O1IC8G9B=ZQ=+0K=;KP73;=:AJ];GO5TOHQ>D<;4BDPc;HO.;=L6N>ZAYDKH>_CJFEB=LPI5P?.<~5CM<\PLI8A?B@4:AbMB4A'AJOR6SO:@C.?:H;KLXFBLG:C9@0G;L/J215267<.+PHW%-8B4BW>=]Q0\DO2?T@mKRJ;>@ZE5?DVT;Z<>4A8]JV7PDSHCB@.:GNeH2HJ_39FIF]9O;7N7KA2GSM4KL??;X#OQ6R>G.H5OD[O789E;SXPTO<=HHCKSUS-GL;=gPt`.\WIF6_qEue=37gNiWUXNX\`TKYSnh_[bk`;YdJJb<)]\TXBYJLSGd|BP7J6?O\BiKSYoFQE\h_PNGLCW7K=ZHr:FCGOU?n_d27NKN83X9C^V.WJ@1mFXcNa4I>AR=c@5B<[gO^HCbU<<37GKIL>OIJA6XXl4CFE46GB]D`QHM^J0c98JjT>>HC?[LL?1EOb=<0CDVE]NKF@<[3>1S`Q2E@R@WTC>QFME:V^?@hDF@>FOG@OMK447OIM>VSO7K_X=:SX/3@nCEUCP:O?M0P8ednO[V\C-=:MUA^;`IDDAFFQ[842JW9HL4qTHCHI_5RGDX>3QWL].DGCV?V@IAHNLL^NC_RIRFZHHGBE]?WXDR3BD4;=KDF?_R=7P@LV2Hh=0N]BWLB7UK5OQYTFIEfDNE>B^YKRC>I.FJeJU5?KEQAL9c6JE9hYUG=JN=GIKYbVP3FBdW_3>`FNMBtFNF[@?N=IK:GDFm;IIBFJy5WKIKXUWW?P`/BX9UGAt-[>N6>_[82@@9RC:SdA?c@DWP85YA[FCGFRD:RaK?<^aT6q0dCB]DGH9=7N[@7\8\H:QMWNJYCSD6EFSNKCM@FED=AN@@=2JS5E0XXQOh@]KaO>?S7s5;HA[/?2^N2=hF3aYEI6CiYVT@?PB*XNTH][I1NJ6OQEGH)U$DLF67AC3PbAR7HEAQh=5?:1SUIa>x9HfX49|6^)mU;;QZfGlQ6P@SE;c@:[SDRK}PICTAl3f5lCW[C]CILICS@D?H=aVWH;CA^5X]RH9H8RGUn6@cL^No6YJQdS8VJK80W:4[GF;KRMP?JQ]@^S'_HF>FZUCFUD\DFS>EX;GY7aC_HT07K8cR?n>7UENBS8WESR?[Q]:I2LA0S;ITES:%>I?H8>A\A9a3:9FYY^=IEX LFA>3A*6HIYBFGK}S78R?LBIE>BW_NE@U0;TXE;&7aH-D1QTFVMCZKX9YFFbSABQB;]G8-9U]$GPS5FQJY0E2@CAHONMLI4OYAEMf??CWBZ;XKOL>GvFt*FKZ\8FM=,U3G=NOIFK5IWGtZC[M;-=N9I0C5ZT&6X<^YHNP0TaHTL78G>MM7E.PNFdD7dNA6V'X7)1988T6VQSB>KO.4X5R<9:>>MFW,::sFP=0JK:F]PX6ND4979CO&B[AT:D5AX8KOI/Kk7B1Sf@K??`ACa1>D8MIQDP^[?l_BJZ==ZpZL=z::G_K5CQ=RLiB??TSIn?GWgTFNSKG?OCDDQCBXACI@T@FVLHAQNH@HWANOKCjJO8^[QQdRRRL[6:CQCP@GPKUR8U|EJP@A9A;LJJC@MPGv@PXJ3lK3RADH?IL?Q:]DTXabL?DPL@U;M<|@WOSY=?SAeKXERj_PKOOIVMCJH@UTDoV7hQAE^BDOSAIR7AL?DCCDRQ7S;_VJQCJKDJHTpGTBF?Q^aEQ=AA`L@85LaKK]VthB:HRIF]AWFK=@EH[9D`f<@Bd:G^>O8FTF9[4JMQYLR\RpeF\TJTGdKf~KUKPUU?SMLO]9_k>NBDK\FHEWODgAHBNSNfLOO@H?8MRo^@GHDN@LEULc?OVNMUq4JKUoG=;TVPICWXQAHH`K[jMH:AV{TVY>K^:OWEdfIEZWJNQIGINEQSKCH6TBRNOILR`=TDMIK>^_L`QWG2U@aR@MSDPMMIpOEOVBKO]M;SLW]WmHSZ[U=?^YQVrXZCXNNUIURu6cHN[TUKYSiJ[CDW?NPAZKBVn8W9V77<@PFMC*D)C@BUhFPV;?N*-#SRZ:"9kZ@MBDVEV1IALXV;J4(ef>C?KgbVg(H:DSL`D96Wz3F^_^BZ]MNnHiM%VVLFQO//=GD9;VfXNcJSNJGZG-[cRPPV@BdXQMNGhFGMP]QU:-`QfC;HFYM;@]t9Q3Pa?STH^SH8^JVhgGVQGW8bKMcH12IeBfpUXGE&g7<]eJ\CO;M\+EMQDR=HQ0T>gE5Y7:B;WRjDBmi7W=QLDUdrTPV66v=A?0XX_]Z`3FOPFB4SO\;N$_DHW[;HAVFWb@P>oC<[8a]NOY5CFS?6>S[YI@P;FVJPgB9VP/ZH1DX;@?F-dDDoZTN:FFjN5OQROE=OaLMDHjK<:8@d@Z;GLW?DMYCJLNCFI5e\IWI=O8\=2DF7>?PWgbXI@@I*Cc[;_8HHZCJJU^<\Ev>UFI:PIFN^VK>FMLDA8GCYYU[4QP69EB\\bA7HCY5_jPT=ROFX:U@QB@9B;I]KXS\8@MCKsSPUgLEINGN6d?YE:BHD91:I"9WO? mOEEAXu;RA=E;AS2cP?^DCSOO@?B9LQY]S)JFA89=UAHCT],;GLF?GPA1G;KAI>04@R[WD(KaN.DO=ZCJ?4.C6FZAToJ0FVHK65[@G7L;C=Q/WZM_OMT_WTG@C]^HKB~i8_bF[AEAUD2ceBL={WaNG>C8GXGKGIW=H@DTIOOG^VhAYSR\S;8?,Z3b@,aN[B3_)DUIQQ@pF99J:6aDNG?GC?9Qw8R\AN1=?A^WREBpOGE3?8RLV[L[9E/5`NVfLVMKRUB;D+HPF2UWTNU,H:<0PlO8B7STRRLR04AGBFQS8DELH8=d7^7J;CLJfOIJX=C9=>D]>fpUHF8C1=A9CGS9;+B';O0LDjIVQDK;DTGA:<:]PCWNG8TG4MVD;.56C1G;_ABGZG?GHOE>U:@B[_VGIhUT5MBE;Dr5S;<@OMH<>A=B2CB7DO:8KMQ>VD:;7CB[M2C8LQJagS6]2WMS>Ir9GWCR7G4[>@H99RRE?[J9?3L86AOQ-K2@@M4?E9E8M,FLI9JIK@KEH=IBETAK;A-@3WjP+2@FDP=I6D9TYZ:bPK;AF*C_C8E+]FCQ=L4BG5J_)K:@_VZbO]L)L:5\(_3ABYM(D64ZW;EI/?N=MRJ\MAFO4MK\?TBY?MH=4WIL[F:Og91:R3K33GL@`SXOVR];@6/B5RCQ/GM2RS:eA`HO:JN?CLc`;QJ6I]BU2Y]g=E]MZ1T[G`9]gIKD;Ob]PAe?IZQRHC3=LULM@LD>S=X:hIA^fLQ9[>9YAaMLM1S8RK74P@mU>mJRMS$`FXAWH_4GWEQKaPE8H`I+S9V[C>7<=GnYD>C]X^\QEAX\IF3A%O\D]>DF<8?ZX>fGOSS^CBIbEdJQ=OSFcCTWPIACmASX>LYAEN8b??KA?CF>;D9]Q1\IFnOPNyFLGn:MNJBBDCB@U;c8@UH\bNQFNZVIOp]MUg=J]Tt;:F@NAHO>HLG:CSUHJPaCGP|]PzIORA;PBn5sAIPPQo6SMMq>L>XDUIQ=gRKHINDJQCXEYTA:5APNFC>D?IMH?H>O^CU>QKA?YANARMZ2[]HPUGIAJHbDMRGMN_Y29AGPHXP>SEJH6JIERIEpZ7;KXLtI5GLJkD:@GWDAMCPSTGLrD;:GPK=61`=UiEVObPPH[PJ5@;FTJ7<[@GBF3IJ@IKBUFIXUZIXF7T@PJi>QXENEGGMQ`B?]ZBHQuDB;CVC[vCokRC\F>ALL\RH;GOPN\BEBOIDRMJ3E9O]Zg{YM@S6H8FCW]R3ELLE1LL=IBV9PNLLfECAMNRC6:GasP[Q?EU>F[CC*:D/9P;=[>IF.CTOH8mDDB,CP2KCB>>DSdNO=X?FZITE`;.Q@VQ>f(5QIeNB9=pL=4:_BY&GO&N4[?E\SUEd:W7MEYI@OENJIb:;<:mRSBVK>`<>`+SNHRS9OUK]K7WKQD?WH8F4CKFB4B8_;7Z>E9FI7A:WNMOS>OV0?:eWN>3Hd8HCO$1KJRb>=BG2gYRG7Vv?bWrUQ2I\KFB9S3,SA@6VOk4OHV@MBC>LQiACT,>Ek/%MGBHY;^>RD@CT`bbUWAY>A^_ESH\\AI?P5OHEMKBTYSDD]tQ*YVOhXEQI2E`R7`Qq][J7dF,W>bkUM3NKSmIMYVFPOMX!FDTI+{EMEB>dFJKV1V@<DF5D9ZA;UB30jC<=N;SIT7H8XIIHC=MFFsQ=RXJXM9tCVa/IXZ?aWPcZ:VqO=ZP1CVE~LZPMDE]RB\c:dA=q*O\1]mcXWuNKRdOLP9OgAI\_aMFMo[ECQgGc=+tMfJX4OIkeYAIPR=8]FV5Z\XP`;6XNDbnY2a>G*H?OFB]?c`:U^P:aOY^NVTFH]Bj@_fYoRZSTS\xcUiIeNFA;WW;WbIW?RYK^@ltSa;;G:d[t_9GCQeaVQMDfYWD=c?bSOsSAWED;KJQiR^ab3b=EGHI9B=PBFbV8ISELi`RWUSK7WV;CR3T6mKMLHFUM:SXHaQIMHMI/1WIOJI`8;ZPL:[H7IMBYjT@OsHIaY&9`G9D39Y^dH=,sMoH?]McIMQGCX;=ASZXcM?t5;PVAHEBZ@Oe>QSG6@IC?ANANVX6LwSKIh<`Al+2[RHTI9WFFBHX:m#U12JdP@EUEJ7:N?^PKKDW;[XHKM<[chDRDeZQ\IYa`Ok1?f55_;;CMQU<0CD@@FG;5=H;?ALZD9WK?RM)@DN;LP4E./.AS/HGCMB4XD<=FGI4N[>H@9L=|6?A96AB:-AXT=M<1.MCQJBK=9P;AUZ886@9J2JPT1]-<_GF?aI>DFMEBL79@?NAXN9OG/BY=50R;9I>5_*VN:/3?J-1*1*L4>HF?=6a.EFAM)RHc3J'=BX8L97;V49PNsKEWC;>YIPAQDAB6IJ=;;:PJGK;?7F88S:HU*1BU90HGEMJ9E:FLB5E=^MO9/5*JSO?;F5$BNCKE8JEA@454=>>N@):JGL9L,BQCMH0AO8D4Q9?7GKLO,WfD?]CGDD95U3BM@dQuWDCP/SMIN?iRnLE-+BcNUL?F2B>KHO/$0P$A=F689J4BYI7-A7AHT@O4OUd;=ACB>GRI7<7i5L:HV3=Zc=BEQAIKB9GBRi4d7AIh8?R\?z:4;wK@XEY))0,UU3L<:=BAKK?FH@>/K?XL71AIE6>BXT8.6G[YLC,1PD:TLH)BOG1=?/GKA5HN]f3K=Hi,4F(EM;@N@fEEL?SF[G:6B/81H:JF0HIHD77+78O_+1816X7N7C7PhN2DO(CKP1<4>6;M[=4JSK:A*BC2S>Q-E,@BH@FIH.VOE6HC><=-Kh</;DD;DCP9HJ7-97.Or*]CD@DI.TJn:R%*+G=IO7L6N;K*NZWPCAA]1:X7D89G9?MW`9FM?I1CR7HseA?S27`>E31X<@N7tA(/GLrB6C@AGQEB;8>\H;QYU:@.F.]\FO_/=K??5:T:8KD46F?KICE;7DL7>Y=:J@nFX8pH:>8AI;F`TKM>DAO?HUof;=?ZB:*'iV9]EcLVdP-8kE5QQ9Ta8,hM8F4LRDEkK?1=74UIFI=5I=^NN@@@@>UPZMI4:8;=DTR@9&EkG_JoM`I-!QBDQOKO,RAIZD8NQX>>LBQ);UJ:KP352D;DL6AxgK//6U=RE5<7G]R?GY>MG<4VF?D7HST-M@@A=a;:H<>7BGL?:RKKx]@gdPNJL[CFO:FG7B:AKF=BWS@5[CW[L7EFL,6X=e@G:ODTCJ2LQ6AFmQE,Y[B?T;NO;9EZ?K8UH[_7M;JBM,J<>5AOHGWBKGxfBR?5I@f3:I9ZRQNJAGV8L@C@\?>Eg34;T26EKK;,QV;@N5?J19CI);b.?>DJDFP?L;AE4[EP2A-8<5C7zSEGFLk7DCE?8@EE3@P6E=NG(JM@5288>CU|?38;M>EEI3;LJG2+GAA26D:G?PRmG@3F6N33H?2/yKP2NL8X3O522?U-VH57A\>:BAGC[6B?L*JFF73:DO14E>6>WIH9K97,=:F7@MX5<&PDU-F=:Hh2<<=98U<7EC<0G8QY]?qV?B@&L;9=F:3B=>AVFBdH@DB3>QGfJ>N4mE,I88@K@>QIMBL?D\:G1F2CKEOGIAP6DGTBE=MKEJB;@JW;rI8=DgOP5Ca?:Q@N=>K/:]L41HV:7KvV6L=LMP->A@4FGPZR85DX7BG:9[]N\LMPG`?HKQ=>7=*G?;@YGO74F-6FQWXO0Ei>FaKNFNB:JGJEF@F:9GxL>H2L3?MQ/2J2A*S5JM`:L9R<38BU4@EEC;?D:2DS;XEF=P99nS7GD4J`RCU\T=R?K_|F8NRVFa?;L6?KX[ADLZGPD%;HH@4]gIHbQLNPIGiwNHGPWXLT8dc@DCX=A:I+C?;@iAZQUO>@T7R8P<>gAO6Ic=GAVtb;AIS9ZjXFF_OZEWH?LFAYWUNE:cENM?HRCOE)ED<\Y`NKa)KRHG]Y4DP;8=qKEJdKQOZ>B:MLfIIY2QL[Rk5q@58AQ4L\CJ@42bOXbhTK/1dBLOE\;K?RDM[:X]_C8J8A`C3KD]HE:Xi9MZLTRYNQGiqILLCcIE2\CDHDBCM>Cl9J7WG>)[DM`LLjS@L=M=>IPIOSXAy;[D8aDTOK3XZ5w;I@g=Wo7Oq7RFGHBaBF@J_I7`7AQ?R7=1MRGDQ8=Be]B\Tg-LYFhXGC:IM?CNA@3OCGNGOESjMFINX@gUPJ?2R>iIQ)VF?Y\X64HaHTPL@FTA(GEC;+EVo7KO=OHEGCV@TwH;QDW1RAHMDiICCEAdF;QFaEQGARr=G>N9aGA7KRUM4G@68SG:O>Q@@6FJ@?BCAKN9N:;HSN49D.OXY:H[=DMANZY3YE>@l;G5XSBHMT>:@HTLCGWANiGU_?V^=ICBIHf9CJ5Q_@8=O>T6[I=9i^E`'\B5RPBT@ieLTT19KOYB};cCh5_pKV)OGBBI:ZBQK++@DhcNQ@FEHIM=IUUUZM+8FGRnJ&PW1(GDB@NXG=3CMHg=T+YG9FPD\A>UVJM?V8[L9viLMVSBJWE\N:RBE;GBFD<_DVM\FF&Jk;LUFON>KO\*@UMMLA28@[YfJ@N_-2bE@g9B:JYE7A"@UGLB7HP@EYUaD^TNHKBDc0CRSSDFrFSPu>HF=FS33`IG9EV;DDFP8X5[Zpb<'A?MC;\?ABSG_c/DKoJ[R`=,CHdBJYIE?NJ;8fWI>DPSCA=j;W@eR@OZqV+C[EJZEDL_E/RNZ?LV:EGI7WDE=LRQGz@_UEDEOM@GKHLBXu^4GRT`YT_C?:BNKV0Mf5YF[V_Rj@I80JNZL7@CZJ:EM]HOIIAdfWGv>U6|=RTH=EEQArV^\HTEFJANmT=U`K[NE:NcpTMc;A=e@8XDK?J9\(He>QoMMUGigMKaH?KE]W;DdCSMC4PUMVfSH@Ah\AP[T3?BFKFB4;EKHZbg;?K=@96;@7OI?UEVMXBB@@HJW5L7QY9VAo7=_J\?dSFObMQUHWA7M>SYc9JRGHc?bOMXXQNMAD=KLNUA@;9UR5mTOJ2;Y\lJ8Se5/Efe>JG6E5<`B=E?JC5@@7E=SvVA4OOL~E-?:@FBJK:BVd9S?HRDBD9%?H2TiJS>R@BG>n2n:1O?AOC68J<4>2QF*96=8=dPRDQF75:O?IZ)h?zQG@P@;5As=z8wL;?5HKMO=Y.EEJNTHx%@L9;C8=A[4L>4VBCDHG@:2LMCJ@5?WPJFF1K=[HW@M.DF?8E5%9TGABCaAISDOEaF;fE;KPCgV[A5aW9NKE\=HMDBF<\Y:5;3BIE:=4RMG7L@>GC\>C@JF@[K:;??NCF9=GU:^VM::CC@9<@?K_8;H%0V?C[S^_A>SeOOMGN>aODL>0;_C18=@6HAY=P=55N;BACX{D;?V@TCQNFKGTaILCQP9P;LE99G>;_N=8F;?O;/V;AS>JH?J- M;D:>F7K?0R7R:=7FJAE@L8BVHSB4K/5@.37<97>@=A<9AP6LGD98Cc7B2SAED/?E>FE]SPiG.P*MH[I35?64O>A41J[^(9=F7H<>OJNEY@M@<=D][YZ.,EAF)L=>@YVmZMXa]OPAK5fB=mC^'BoF,MB;>>f:KO?,NUN3DaLY"DDW8FHV2q^=8=L7XVc5O;?QTG8tHB>\@J0Yp3U:MrX9IP::af+N\>NKG8X2IL/>S0*OVWIVi4;\9'GCA']0F[#>S)@J(@_<3E*KiJI88C;9KYNJN[Ua6Y9--DO^TwIdhV/E@ZLEXpn6EM>VF,CI>9R(KDFuF2@EKDeH47F>LEQWCRWh7B;4?HJX=XiM>U6KUXPAJ?JQlqp:bR9+FV6U@`Y:a4WE;CQ=KFB99HgZ?C7MdR=^S`MSMhH4JI4XGW=DB+=S;AR>,DOIVHQWFNLb%;RMRs<2@9V?2WZ,IEFf4D:160e62PK8?8h2D<8HNK==9EJBC56ECOYU>EIOJ=:H_XSLS[Y?BTJa;4PDbG]BQ>QBEcLGTEPOZT@DSMkNBWUJK;ClLaFF95=LZJhV\GOHB:=TD{BIDOWS\HGOCJNTI5MrKC;jN@qWQ\Vc5FJSsCQAMULHQL6SDjFN\V?CNeQP9Gg[HVRyfJaDIBHSYi?I@E-:oJOPw_AeaP=YMF\`O?FNQA>FUJLBH;`EEQO?jmMRUK?HBOXI=HV?K@DAF\CkkBdLE?P[ZFOIDKO\7CK_EFA9Hp[EISK[Z>PFF>JC9PLDC1T^I^B\ROHI:LROkJsNA]]qPK@CVF>K9`FJLQA?TNNZK;C]=YhMUMB4OAx@;bI[MM:N>D;;@GXn;ULV?O[C.@;8AI7_=ILC?KPP7I_I;5C0EIJJUPTE8bG@VMC?S@>HB8B<:UR8CRQ:8qOGM?ZE\]PXTT8ECfo5E89@;o@%7AR7HF+L8;JY1JFBNIAAOHMTBB[U/5:dG@HIK;AM9{9D,^WEMLU{O;GB[T0uI'NG7S[@W;E=QJL?1C>*>H@^?_HE8`V@6?9G:VAEBXC@DZGGGCSHE*E@D3(CB]A5<5BBERGWIQJ?MRkPYM:FJ>?JT7AZ8P?;OWX;DOHMLX7UID=V:bU2CFLAQS/RR^N[:?JEBG:RIMM|XMLK6DNbFFUJIM?E@JFd:P]LOk0FKgf`OIcT=S>-BII>Vkc7h`NH+I>VK[It qYSAMCLUg:Cj%TL4PQ=EPpCEXDV]]akd>KD`dlF_Gmrh@gP^MbIN?`NYugFDMS9X[L;WUMMGb\0:N[TSSDdAI~ROMZKS3gDSvdK9VGDXe<@Q^_hGa=<3JJSeRVlmU@W^WNmFfFWJkOPLU7ZDY5C;>;::?CBH?>EG@CQ6D?<2HBG5A<<97>IC(9:@3A@>>D/1E:5632A<;'8:68D@G<::@9B>686B<<7F=)NC-HDD9?GHE;=0?,G>5D@67,<>?5BF;<=;A/F<7GDB45H>1200G2BD:B<8<1:=G0OJD6<7;?C>E9=@:P=B@6?;8<8A>.C68K;996>JCH5>>?2=6A3@:8G99B<4=78FBA7HHB;F?/F:?<><9I;2F9872819LGMD@FH7NA3$CB5;5BJD8+;,.AB>5-=>3HB;6C;R/GEB=?99C@CEI?YC:TrJFM.KAXFSXg:0X?BnUCEOL?:K9YB`@9WM\>49U4X39^OGX85CNPcAGAGE7BDCOMX8OFECG>1yP%ODPDBNURPpP_ZA7kKJl3cS39jLUIBVkLO:>GUN9K<@MpOP`0GSU9F;KOV;KDnR9XHHPI>@BSMBVCN^,SQ6mWtcQKS}TYNF8EMKAFKN9DN5gGJE@7C=LG:DHNJ:KC8=D<7?GLKC1JTt7N>?C49H0>?;FE?NG=:>@=JE1C_CJ8<>767K?JBJAC>EBJ3J5N-XDb7FNFKO7G`EKDD@L9HI@)D>TPL@DSJL=J4KGLKJ:8@>gM;KP>4?HS*6GBW>>0MHOT86VD@;EG:AR6:KFEEC?=QBH>K9T8GK:F.<>MVGDOBCLBNOLKVHD:@>FC9UKUTJIKL;AGXPLAIA7CR:SC:I9:5OUWQHACL_RWGM86JU68I@F>=:LEKCK@]B@SGDJGRBMGGUF9V7JWB\A?RMGM>OD:-BP@V;?EP9;JjMZE9IBJ8DV@gP=UJMFUC]EK8Q@FNMC>:?[GKAeMKSSFmEHGKBRK9MWQDF]Q@G6FV=NORDL_9UMREIT_:,FI@9MCA;LIMOg@{T72N]vJ?JdlhKD6cQ@QLAp=HTDI7K`_2H\KWH3F;NbGTiFKCXVJ<}6e??8;?6@67551.9.=LF+7;LE@?=H;72/8;IK,D9>J9>MA16@B489>499>5*7D;)9L:=>)'F:BAC2AM6>B7F1?M20=;O,M6300A(%=6@>),CDDA;;1BH4C9>1? 5;D7>M2@2+.A799P>-;?7#@K@F=/3.J,:7><#4<.89C#L(1(<4=2DL->(*@1M3.>99,?@;/P>&2?D&<&4I%1@@L<1(=4:A-69+6/<+5-'N16B80&91E:-,55GE@8=+F92A:2>#<-;C:4:546;3A)8:CQ09:E6;B/>EA>),@<2?#$D(C3.D,E06=:;4JH,:K=FA:+8!.=94B77;?;:3T)7--<8>'=85@F2E.<,=N?D?;36-2;/C>[ARG;9=%TB@@P@ZXLE5ZCR@R@VLHL7BPFAEa(S;:g,BX3>89N4O?9;CEBC?HBYQ53tG*CIK?3P2[6:=\G84WCGQ34M6T7;9EUS7W9Ch><1BfDB?U4N:-SIKWDM6:mHUCGQH.>,S;U?AC>D8Z2;RH-<\6DM?@I9DeOJW-=,FT7[LV*59:-f3=0KjV9DMh0?)M.0aLHEE3/?2_9R?9DQ0L4S.;,8=}GASX7LO>I3JBQO45MHV-W>uMUE;7AS?RY<'L=I80OG]GnG]NLI@>QIA:;O4?K;\PGPVL?bKAJ;EsQLU.<[0JQP)Vj;^DW]?\?L?TD3XSA.WG=}MM3>_5ahP>yUIVYGCN9C;e6E=HI/@U>?uWFD:04UNI91C>6W>GQJT`YMGNLA?DFK1Z?QOKD>HQNQEY6APPEU@QVGFFEALGUM5SK9@YV3/F6J:;>L:AW85;3:KACJL9IJMJ9b;A_QF\9R^JAXZM-Y@2DUGFBX9D[M8S~5JSSF,[A1?=Ye?E8KY[K@GOZ?9;VS?ehINQFIF<<=Y<6U%FD>N<;O=BP_bkZ[RBLPWm7VO9CkD8S:JPKIFed1OC@:]@aD=|MSHZ?KgOM?V>UFwC4`pGA]\GX=;nR\?FM?eXGIZJ@N^[KAPB[GVBBLrI@o?;C35`GL?8F@BDTN;4O\WUEUN/CFFQAbT`R^MOS8LYKr>S@@POI>_>OKVc);?@1OVEXRFN475D1M:NBFG3A>[Ro7R3SE#F7I?u#QHH'/?;D>4e?L-N6ew6B-M5JDW:WvOG?E2MK<<2JL=6G^=K6<8E6UU33Jc*:?H-E73HW,ZMI84>8(ACC;8?MLZA7cbmaHA`?AFVEJOZ=N8B$OWUO?J>'>@QQFe@[DQ:;BBK[VlGE7?BWZ?TFBFRBD1p^=k>LHDGb=^BbI2FWS>MJPE4d?OBCeSRMTaWd@^ARJ[AFU-=aSd_AN^OZ\MK<`mYUKQ^@PgNNOKPDZQKH7LAQ9}FGV8VuWrPD9O6JPUd[eH@GITGIGOUF9wXMV=>]4T\h=K=\@SsCB;nJDLGRHIIIAKOS_TAs:aIBaBG6RLRYVMKFGMKUTVX?YUED?=Kb\aFGQA@ZMFL;ER@Lc?XkO:`KdYMWLHFYQJN@@E?@TP@6JAE5DdOR?x@BHD[CM<]\KLWEGZ>ER?SA]>BJUSU]EJ5HNB:NTIQGJTHHZgE;WNKAN7HZNCSAME3U>7S`UApXsDPP@LCfHXWQ>5XB3NCH6BEB>?A@MWHHaZDP;4MHQSm=KlX^LJ_GQMj@H=CKHGr@FQFk[9ONXiXWj2IDJ[MD[iMdE5QFbAH9LKENJ@LH]:h]J;O@dP@PbMJ;uBV^DNXDLX_SQjJ6g?FGMOORHD[JI9rbP<N=?CmDjhEKC?ZHLMDAGrTefNROiT6?1Q#RFMrIN8;]DTpLQB5[DMVXMJKePVU\Wtd>XoqIeYDFNHKg=@E>Kc8WV;UKREIPOJ?C;W8g>\WdV989>=QUNkREoLDMETF-FSDGYbO:@zBJ=SzH7>K0+V-,?HDPXHPP3.-H>FBS7EF+e[/IZEQCpA->^K^cNI=D8AMOU>@OCMU0SFV9C<@O3m,D;/[1\CI^K>PV9G?L7NX.hhE:WBQ<;4n=P;C@2G.NUMb28L8-d;C@=>d?6D;.b6F46>1AR7GSKR`NSpdPAL?A@*Y1GaG]?QG0BEBUP568:B--'(C2$28I40G30:RN@J.EZRF58DC-G?;@4<99JF9>B1XCJ=A1U/IHG8P,I@E9@LC>DNA2<1J(.+?=S;3<4MiJ>8@QO.HKW9:;?[>D:D*>8*=+P:0/;BI1N7G7C+21#G&%>F@"AJD:/@35-C1F=SE5V8AG-O;6$%.L242+?;U5><0-6O1K?;+?C:;=W0?'2$1=7?DO5U?/?>:>4P3E:G3'4A458:?/6>OD6450)5@5<>>,D2E;+1;=5AF7=8I-3@8B%,(4?,MJ*7D6NV6HMY\DKZUFE?:KVbimZsUS;;H3?c^J58EK>9PSZ9>QCFO1=]XuM8=FQ|InZCCx9U;b:F?E^FeYB>`NB`j^)ieYX.XSD>4L9nDe,dM\ZKtkj0<0Qm^USf>L,vem`kY^?+4F`+hiNUIu7J:%FAh^6I]WJYPXoo<4cj];G_?td5ns@5TNs(BL:=M>>G:?L?J>WE8W@>=3@LVWhESkL=2hDWU<2=e=m6U:6P^X@X1T0M;Pe;s4K?@.N>BDPB;{EPHN1=SKY[HMLKA1M5A5/oBw8.4>G;KE:j8K3P:SG:A(RFeZ<:4AX97925d_i?IOQ;;STo5/H9S<6PT8X=,=\EKWIMfC[7EODO52:=6@/7/V7IBDD|D/@R?TAH>;DTHI&d7&M.f\BQR;2JJJBRVRFPh7EICN@75^=TbIDUFNjC_WHSPI[[7JF;YBQ@=`_N]EXMCGHnSKHg1I>;=PK=^GMbmTJFODXFZVgaGUMK9X]T@B@FFHfPcRSrU`VD|iTSEA>YOMtEPr5MOSSUFg<%fRCsEX'U~DI:Nk.=R9Ka\EDJZ0YYN1MlUmFd9xhcGeWpKRti5a#hLXGvbeXl=?ex:OYhi[Qy^.t`82[ZZrz3[Ff]qYx8iZl66dx\&95|MjigGMRFJ.ni-_J_G!bGcP>q@IWgUXO>C^SPX`]Zj&]SjT4LOFifTp3?WozE\9DK[)(p@LG[Ye4G5F LE6W?GD:lCP.HKH2^[9.Q`M=T)H?gAY?@AYK?USP>Z1HLVWFMFBLA1^B[3E&;RPMAKaCc(]kC3<7E]=EUCH?T8rQH6LDh?2GDWMI\09@BV+H\9V-JNFMA_N;7!HJHVZ)I7UBTPAI96TFR@'JDS6GTP_GGM,5HTL=5K@/CSR>YIJNW_MA7LGSY\G;\BOJHHR1TBR?qJ=P?OWE@CbPHR;HGVF7OtLU:]^I]mQ^TNEK^I`GGQ^MK@E@fYMI{AKD^VHGT`uZdM7WJ?BR<^OH]W>BSRJAlUTKD}FCSMMSAHXHE_L:[LLUOx4S?SFIh`^GHYPGPJSDFu@SJT=EFREK@_GDLr?=jMDgMOIUNRP[=QdR`OIHYH`U`kLLICo>;RKT^XUJSYRSV[gFHU\VLN:zTEc\BM_Fac[ZNM`NT^\f]a`k=Wmj^BeubdYTMkf[TvmirJmWV\RY_jVhvEhaNZZ[cA`RWImPkvXXTETQDiYaPt_Cf`HVMUi~GSOKLq_Ya]ZYXPceZeW`aN`tPSh\zsLgcjK]g`cJIRiC\_[DYwiHo]y`bk^xuAxoetT_QYdbWW`aZ\r`\Pc`^LP\WDir[kM^\l\\Lqr\Y]OrJIbTM{]gIH\WSKRx^n\aagInuoY]}gG_mY]e[n]WrQameV^_amlmTWVatVTv[QWxOlmXe]\dIG^[Ty``rnp`]`i^U_oJ\P_SkOUomXH^L_a{Q^aM:`YoWXNSMaaXn{_U[IxL_[=k\MNU]mYkNKR\Z`YJ\p\VaQflahpl^nn[]Z<=Cz9/Y@]r4C=SeSLN>^i?bT;_>RKSV9NK_cSbT:wYBCfWK0N?NN@[T:xORiXDHUUgNPf:@OPB86TM_9KFG>R\2JOdGKgGFQU]7N?KZ>OGDa=PXCQF:VSQ5J3=D89SdINU=t@FblXQXQUVN]@0_F_XKL?MTH]BXK9D=EMeAFgFN;-N[_94BOMD\H?8D^DPLOHZBZCbpMJ^QSj>JDB7WCN_D6=[Hw=U>^I9^C@Y;MT=H4NM=MT;G8PFA83LWKAIlSR84PDDWR:6XG3T@F=C&.VVELH98BF3LI[M.[J:GJFI9HaJBR;R:JPq>I7cPD1GJ>XSTH`40?h?-M\NQ_APSID>MROx@KFPkDVa\^ERFGF[PI_;XTc7AFEFN>Y[K?S:H7DT[BGE=UT=:ON@GF\JVG9ETOGJJ,8KADAJGKJ5GB?E=C8JF]CZMKJBQIOBO2VGVMg7\;XK\U?\8AH@TOUcQZS@:LFiLaP=MS][KEPb;b;;<:DJO=NFOHCU;oQGH8CL?:4TRON;A=iL9;^NLTNMT\PMa6EWL-IW<_TuGOJC4JBAMQAWGKKPgAUdP]O9dCR@N_BID@eWBfK=@86GLpD^6e:AHO8iXNS9yPIMKH@EGaZ@Z?Z>\DSD9<\KQG:CA=>A\`QQED@S]HVQS;[9K@Q]K8W7FAOJBX>m~?WeTK/HC=PMIGD:JQNpHGHB]TQdK=CIN>dkjIAdDP[FOKXT>J_FBS>malEKRCSR@KLPPDK^JKAc_KL^V]]?OndMI^dHFm;FMISOTWJMOdKg>EI_R8L:IZ7Je_4WNBCEF=]0YSo{QzUHGKG@JgY>[:kVHSaEGKTTKUEkEUNMGAL-AVfD@TtJoPB@=:FKHGCbI`JU]bEF[GXXCSEGDKJ@`faEFbkSUFPdJY`NFBV_nHTZER:EKWCJDDHVLa,SToW>_EN=?]APKNXxgSQyd>PKNXeoNB6L=D>LCZTHOaO0;XT5`P?;NZgEV\HJ`H=6EH`S@2ET2-RQ;A>FDOPEeIJCCLB;P:RIPE8ML8?[h9DF4P@SO;58C`>O;NB,5HC8DG?5E@:H;?C`I3JL,U:RG<;>[88LEM:>VG@;5g5=&7R=QBE3h4FR79D:=?EKEHPa<[;?P:CCY0W=OMSEC9K@\KB5H3KR?AF;4EYM6SQ7AU:.WWgC>HJP>\6CZ;VP2QQZ@3T@DFO\RVGDH7LM:IPMK`O^I=MUS>R2ib>;b@8LMHfMUD=1PIRQHcFNGE=GZBQQF?LQLJGUF6S1=FWD?]APMKG@4CBH=Y3WdB`EL?HWB:YDUKKAQOG9NGFC=MHAoOQE48EFE@A4GcOGN2AK7NW9B]JR:WCBC^FBVSFXVFGY`@?6OQ9N>SECNVY;QOHTD,[SLaCC=TWHWId>LaI:RCXTIUKRAIWP:H9:OLV3YPEL>L>i@EKDJ;E^_X>I@?bL8JHE]RPDC]7:XE4HJxRj_OGlGFOIMJ[FOO=Ik]TIgj;rBSHP;sCW4N6QBCONIQRVKs:K4Y>YDLZAISJA]YpMNy[G==NZHLNJ6>LVZJH@6SMW@v`6OEOCFmJaGE=F`[_9F_Y=;STCSNJ=DJDQ:FLSH8F>HF=LSD;D>P?K0X?dLH:MgHPJ:?9VHR@N@BQl4AHQ\=Fo:5^G@hM22[JKM;=BVE?RQ68V@@GMDQW[7lMMTXMKHLD@:9\EtODCATMM^AvGBYQG8J=CH>[LSFSCL>IJ6Q:JSZs?iM=GQTEJ3<:?G7N7JCeRIHG;K:TH37M:@OGCKYJO!F7B:]D@Nlc@G8KURl;;E:*OFUI4lGBjPFL3BC6YBFWkD252VJaVAbL;YDQQA=XGB,FPKEAI@LP+YKWWD/j1JA@M5#=M@76;E:M;DfeEFQF9[?aSHNDBcPIPT=]GD^8RW@6[EONY,K;K=G:5]MCO[??R=6J>G3FHQAEM3XklTY+VE@;#>P/@+_G-CZVVHPGBW;1HH4\B^YVSTFRDMT;ECZB3)6OR?WLJE;8]KFKSt=QZ:ZZYF=6L^HNrG9[8?DPSAKea^J7=@-233A,X-TO::\%CJU5C[=j9*V@.53:aB=29,+_LbE??U.G=I6LUAG8?HV:A^B<_J?5VFG]P5dEVEN95F+ROFXRPBC@9,*UB3;3<@><1=;U5ERFE37Aq71ICL*W64S34;08FH=274>L:CE7I9)O?X8)IF>6`IB\MM]T?BQAZKODQAKRPATIRBOPzIA[QNVscTH?EEK]PRUQeKITaP^JX[FjwIHKEKMIWZ>bUaIXHN?MMUSPDZLLI]?MFjUeSWSM]VGFUJ@RBZTSPW8_VKYSh]UH]QeQC<=JlXG\J\JEKPl7KHBB:F:CRIZM@EvDI@s]YMXjeMOd4GFS]BKcEBhSZ{GD;~iRf^VBKFG;@CGSTaVDORC_bDNMTGLBULFGKDMAZYOO>LQPP[GBF`E@Fhbj?_>\RJO[S?qKNO@ZTSCH9tBTIDJa^Z[OLSZ>UETU]ZJTNK[MXL`VMN[DEGRN_RFP=`@VJB_HPcKUp_>ICW;dTEI=CEPR=TVPJf8EDD90MtT=J>E6CY95[CWTnGIU'=ES>H>CB@P]>LnLN-;CWIX;DEH?7JF3qO9&HmHI;LANMDHRBGV`RCVKAfBNJM@SUZLOE?UT83AuYLGN4?EXIQ<=cN=IOMQEhC>:SWPENIOVCWPSRS>TLUL{`3HQ8a/AzRFQJ;R]ML[\MFZ?TXBK?W=3NLF=:UP>>UC;SCHP@/HAHQ=WLIY`MDO^Oba>JOa=GN]GXPNC=C2\:GG>V`_-S:T5d9U5Y\FDWnTXhNM[C@O[=28UyDP`4IQK:8CI+_\LU@IG^c<:MD:NZ6QM@MFS9JU0KRBIAS?d\R?JHAGJ.E6K;DG[L9LT^];MHOXFrMlTHNWCE63:A52V7F?dEo?Q1N=5=CP=VG?Be4iBABL=1@^@0kNUJAE>@~?HQAS6ig_HOIQA^pKmYRPSWTIPSFPDFAJVGHLMPnO_ONIDEUYFUIUOUMXWNCKGnFEHRLHNMZVDnRtPz_R^FLNe[FKPRfQSGHJ[?IKNN^YJRS6RqB@U8ThJNFMO@eGiRRFFK]QHDG\J9IQJBOBOUQ[D]`LERzVEQIAGNNULIKTIJJNP>OMG8NFLF~GJ>H`VOAKjJOBA?I]MEaHLIVLNAQFDFBD?NKALGEN9M@KIIMP7H}MIBH?KJCgKnOUMB}QOcJF?J;JIK:=VXQkEhNKBSY=]Rl?jTH8mPb:;TOC`8?JaIAR;MC_NGMKbEHF>:O=GWK@LFJ9^@=HKCEJKaEBM:U0KSGC\IY_QcR_GcR<@=HC=jHOGB4KVBEFAXIQKWBJW<<9=5KGPG[fLSQOO=M?DVLiF\BS8GqD;KLEIK>UedTMG[@>YETXGOFAS9JL\GP7jTCQnUfaJ4G?EIDDjLGPX%:zC9AaLEOqB:GJYMLR14CKITTgFCPSVSMFaHDK?:MRInDRG=G@=S4A?IHDZQlM=KKMERUY`:Df:SMUBEB]:EYUwUIjUzE]XMFEGQ>JG=CUPvQTN`V5PJNX4;8`DL@NI4QK`KKNEEC\HMVLUBNV0DVE<;aCZTmITKJBLGGLEHD\cDECNfSP==CDTHrLCbETZNMPXAPRzB]R=FBcO>V@?H9=??P;ZCDWOEiBHMYVpM8RF@0|q2A@`I;7K}5@PbK_]GHD0C<1LsZ[D=@R7IMAE[BQT9>SQB~eKII3G9N\7@NLFB?ltIIT]=KAaG=3^>^P?gCIORkHEO[O42E<ODcM@U@ELbE/q?BHNHRNYHHFV:GFUBJHCHE?JZ:TOENV?kgHsoEIKA:NC0TXUY6j1R@HLCVB7OPZfC`E]McWOATQ?BOK?OV[0]9J>LSUo7|SKwVCFVDXGJNRgdGJSGRHf:\T*C[SM;JPwZYMGINWS?QLC2BOD?F+`=LVT`NhFsNENVY?HG8FMAgSSmMY@QMKhLVIN@p,EHo@OR7XXP@LDFILQ]FHU?KZE:OCZaFoEEWkCSW?[Q(E^>RSD?IZBOG?=C]KP>[GO_7K\@Q`VNSIgW{JJKYfG0[MU_P;1edOEM>Q:ELID-60W4ODYGXGJ1;FTgQ5NE9B5QNPi1ZG3<T=6C&F>YR569O?E*GO65TOLE9LPW98GH.?:Kk\JEoOA.E77OB/P/9;>==N8D:LJBAgI]>;6:;QF1CWOF74[,E=6/7V\J\8Ic27FCUM6<.-,D26V=J)iX?9SO2/I?6L-0:GEI;;JPY6J3@0\497ETe6&p\:FaM3ID9>:Q/?Nj+QB0;:>A>+LiSQQ7VQ32M\?::-=306B#:B0BQDN.7bKF>9OC=#4QAF=RMFA4K3-02:CH<2BApEBKW<1H=[?>R00@H>1M,9G7)ARE?Y8KLBS?_DL8STktTEKT]^ORLhQDKKd<DG:M?`RZXG7FJ_eYxi{/:w~@Z^SPgICbNlIhjHRHet+.[O7hn`4C`GQPP"e?WJ3@=\1OUGD\ep,]S+UO|BR?ElUXUvzn@7I[47OiF;@fkPNPKnhc=KDCP=FXEhS9DTvC\fgGiGaAR8Q{48b?FW2|RYaNcPP^Vd+L.'^;J71MEPqlA9`b2MSKgHXYm<;7cIG?IPO?LP>HH8E:;lYpQF@I2QQMIRGVVmV0Y\EEEkU:HR;DdB?kNJcZNL6=ZKIT8QLeJWSbmSSGLCKSNWlSHcIUX\kh5CCKC8hf`KKPE_b[eTRH^MUOIGOK_TMZDYC\f_hhL]K5\J|HOTNeRGR\SG_qVX]R3^_hI\OJCSKAVOUTdVCZ:V9@`@S:NG\LcCPW]:ApH>p[EU;]SOe@IJMZdGLh;72HU@_bUBA@V?VKfA?NE`oEgR?\\c\BIXOYPTGJT>GZJgHT?Mg[NQ>[:VLWfIXHcPN<_K!DA:Jd8X9IJDKd':F3CUL\M`45_e8B9\ICV:9<\v0RiUE=F>6!Ci.A8I4mF37T?RQa4;O34G@MM7IY>$.S;YA4KYY3I<;RN>9.GM]KTM7?;IKAHA2KJ9C^9D[SUL9YSQIBH9-^NUB?BD37ISSH`HQo;IDC!6SI:WC2KB=0==K4@NE=6P,ZD0CG8O;jOMNH3?7I3IYK0YB3H\c=.>2:AQFS[;9>KL0=CS.(JMQE0>BLA7W\f_=@>pRD-IES^@;WLGWQX:LTXHX)dBA`G-gJ:2D_S;>I5R;61CF6A>NSEj.>LJN9MQ;IP\A735;NG\?-5P:/K;:W>9U^]P@=@8HH9LACFHQ4JIB>CH=cYE/:7@8_4U2=;(:MHC*:YGFK:>K0<3=M[D>KCG4D?M7I?kMA:L<9TO48F@B?AvH>DBER?7?N];^ZGC?eXYROK89DJKI48?B48X@VFM-Z>M=W>-;4RSJLL;FL77^@VODGR6@TSMRY`IF@,N5K0;7XT^XDD6QRN2FCN59XE@WQ:@[0D]P;F7J?[=WM>5T=>0D4CJ{>>FDVnDLO[ZSS|MK9F:F^ARRN3G7N?P>AM@E?PC?>>Q49Fh>RHCN?7?A<5KGJ?CG@@KJF^ES;QAA=;>@FNP9NO5DRMOZ\;RSETLJ[Qv*:BN.vJ>JF]PRJQEH@ReDIE9^6O5K@eTT:^QG{DEDZ;Ac3HdHK>N1Z@6WZF8DF];78npRH@=J5TAEdSQ[CCG*FG75C[LIFKGN\HHKEP>ENSV@?GYIZAOH7PNc8TE7N1:I+B]?YHJW>L`G8Yw=Z=LLru^S271FE[;DVZ4MP;@[.(UD6M3\^<0KFJBS5/-XD^SKM9C2CJK^7GP8VpJsO0Q6M^G@nBEPHN>AII[PR7/VCROnJe^nA6*8?U1S5ZBR7RFcNc1@IR^NUK8JQLHUkJ=OYDlH99D@MHJU2>Rn=PgQVJ[KECD&dHuBDiRD^@NT[74:o[bTITgE^GMK_81BXXeFqVw=MWUENH@AHQG6[AHaUPgBLFQL]>QF8m6VBs[TLGHG6m7/F>7)KSS\RIQ\B;K`hdQF=YOD0XHDJY4?G_GIVZUE88Q^GENGC^JQwSA@IZa@VS_CUZPaTaFBXN^GHDMONJee/YI[=]Rd`IoT2EGM?MNTn8MAWB>-ZLS4@Z88Z6>NDN8N,OHKO/KU@ZjGQECE?L?BN?NbJWT0ESKHY;DSfgPBR2?lNYLJFm@64_K)`TQHr8P_KJODUKE`=+A[26^MU4WZ?Geb.ERQ,aJ`Q>YsGovS]K^T4BOO;Mh4IdO:OE;F/>SOEeOJSIBDF`D/G[G>I8Uw[PIDErFIU;:>EbAMa;*IPjLE1NQXL@FjKAP0;=CUE>YR@G5gYMYT?SDH1JqPQ<5ED4_OMWoG;EZUOCR=DQDHONP;?7SGQ58>E=9IKEB$FCMARI[O>TJ[6-T1Plx?G:bA;(E,(7S/QR:O);63P]A?JIS4AD_VB0N*@=U9RSP9@O<>8DPN'eFJG>IIHJ>M;;?EIC?\?(#;Ld;?=VQK/KK:%JJ9J5A?=O>EKDT1H:=>HU8BOAm1804Wa9"9MF=ANXL?9JVe7,0I7QH7FK'7>ACMC=L4M@:GR8Q3G:B2{K\`CEL;:Q@vt6SE>b/3YKPe?T=\IXUUB@YY38bO\:OoS^EJ_STO>W222>SiGBBCc$H^Mq(JBiOaPXIbKQe_]CZzKJQGu32dZAM=PCHUI>?ObaV1:SgOTRBDcLLD~DrIFGlB\]=Kf6LZQ;SCLLZH^KL&]bKd@B^Z]RBDA>GHhFW JGJFBWiyJd@NJ@XAK@TN8hSqP7L8HPMQX3{LQMy6XDNg.],H8D%VFCP?>Z^ASI=d`M?B<<[^6`kC>*OBEDYNMT=~BgSqBKN`GALAF7?_4bDaDMPaPdY\NmG|6enb]b1XMp+9R/PK-c58DO`7k-L3L,VAN%QZH`MLE^@L[`HL@8?=6JGQ>L=E*1CMDC6V*T8S;SYCf@OB)BR=L5p74?1;R>5B5;AI8@;GGaKK)BJH486cGI?MA3bVhL.::+/?@Bx7y@^Q8A:8acFG@L8d44PHbPJF4S<dFTB:38FJ1KI8=;@I=7.>@BN@3?(8d=1$LD5.>;@GPCKU:SPBQQJ2tCFX6;4H>D7E3BFY4M$C?F/MBDBITGCcD?.QL;hH]=9J[==><9D94Z+=D3;NCHR7QG?IMG5FD8/ZGTG+>EBP17FGF9CVUI9FO,2?ZAQWmKPLsTH)@\=JDcgIP?CTVjMSJCj:T\C@n\GJ^SS;>NI[DNR9JRVUH>VH|XFKCCYT;O@:=d`[I@CoMMQ_?>ILWZTUAVQX`?@BP?A@?TLNReSM?1TSEBIZ\EVbb]EX^[iNEaLgIUQM6T?aMJDEIJQDHDMF=I>MIu@S\VcBXJOEET]]GR7BV_[ZBDW8;>sOFSL3??T?T=7>AQLBNTXSpM_Jh@UGb9he9\abO^HKDGd\B@j=@\AICGeVTJAU6DG2]YLLXFCS,TB/FHU^`K>JPTBC,YJE>)^BBfS4SHHEJXbR^(LJ9>[hDFJGT>.V7\'4Uuf@<:G?*H=d=BAZ2CK]X3>iFTPTCXA@1PG*D@GTnMm@WCE[[u02L1C:LuWFMSiDP68H>SBKTPM/^JX@2KNKB!BRa)0YIf:KI[<;>jCGJQ>L@+PPcFO>?X]GWDRhk9K2=d9Ra]8F4CKD:DOFdTpNAN?7?BHQdI?DDCCTARJDLS8DBG[La7A23@KmG@A<>JPX2Z6AZO<5KG\?C;=B_G9GDi8E>GQ8HYYXBL,F9aA@808n'3Q7AhT6N#4_?J7>0>KO8?E-SWLHjHPMF>;T7?2WP6&6U&Dq??@6+(aPE@VAU@SDB4~GM,9>M;N>F@J>ZLB4O0==D7EIhf?qZ$QNFJ=4DRedB`?N;C1HKFL`;LT@I81EM=6d:;R4F5RVW@DJ9@=L;Q:CF`8ULEmK]83N=HI2Z;De5.4MJJCP@44:4HHI<\>>JHC,B8HNDAG?2FbGC9A9MD479RQbIV@ENOC=_86/UA?R1@\=tSb+S:Q-LF:BYa3*:I[ASMGV5YjTXIN54B>HPYDeDFTa;>ATHKS.OKQSSPCD;N=S3@AJ4BR9QA6;2LCFDJQAAMNB9PLAUAKKKMSSBR75LNEGKGIVK@D@JSVNPV^AG<;U=EEE=FN@6b;DJ:E0AX=CIP:M5EQ<D<9MHTG:\GVJM@HO;GJT@3=9:?6M:JB8C?@4>,MF,AGXUB@N@7BBCHDL>M.H?IMUEHBOJ>HMVL?JMPPZOG^LQbUDIPCRN@PFBXNB\qGMdLOGtZOOHMWSNXNGHZQSEO\QMMFPRDWUI\]L`UMO_KOQKEYEOOHNJgUNIRL_RQKPQHAHAKMGOCZSBVDKGFJULLScWNROJLRNKSDMRPX=LTnpVGGRPCGIYL;Mb;XGRiZStGBVNJQLXGMFEGAIU?aOOCk`UB?[DH5^GXQ6POZNGFNP;IMhB>NI_S@PG`QHCUPNMAUT[CLO>STFP]OdGID]MNNKKNYO>`JPBMY=GO^VEMcG^FWIBQ\CIRMWGP`?LMN7NAT]`OKWLI_PCQI?LGONK;_OEKJJjOWD>gLOJLR9IbDLC<>SJScKHDYDILNJDHJKMRA;KF=NLCD]:CRRH0D[TF=]USBLDVTK;TCJGPHN:Rs4O?_KFPIHJOOGSEC?AKJSFC`RKN>G\_ILBTcX^DKOLHNOGL?L]YLQID\BDFLQMK@U>RQDASHRHCMXC5LSJDQ=QC=KUITACIDFKEH9SFNYRIFPQRANMJo;O5NE@I<8E?G8>5SHRHNGF:I=PAGNE.PCYKI=CDHYJC\N[JOLRNA_GDEHEW?D\CKCDERCP8NEG4|BVO\?aNOKSMZO5;C>P]HOB\`WE@L]K]BOUMNbJBQFPbFBHC=RYEQPVI2KDR\UI1PQBWTHBHQCJ@[HbU\XOEO?RSPCWNB_DE?ABJM@4@RFDC<;R`XO[HB[JXSXIIICT@KUJY>FG=GCQ5;`P?J^8KLJ6UGJ4HBH:=Z_N@NYZ]LM2BP2OEEF1CVFGIG<=JbGUV1OOV]ZU/FLAO9LQW;SICOEkJRYX7ULX4GI;MmDHJ@[\HKEPaNI=KJLNBKNE@EGPG:KPDREW=RdNWSGQFRDTPFKJeG=8KUNTILS@HAD@RQJGKOMOWDD`PDQJGACBOD8PB9PHD^KNQZDJJ8HLW@EKRHE>BUDS?MC@PCPEQAY:@;BDG9HQJMD]IIGVPJIP>TMXGK?QMM?xGLPLHZN>FLVQIca]WLTFSHQFJO@YaFI5IYFF@IRT9K`LUQ5pMJR5S;PJPOVLYHRN:QK9>aDPP;QM:LUJAEUJRCRAFG\AIB>F7HK@8V4>^^DEHQFUEKCX:@LBFQJAOPRKELHRAR[Da^YLMKiMIBQLEIKLJD9CF9CGNCR<;FJKRNOVKXSJHKDZD=EDnk`CGHSiVLM9hW@>AVa?U=TTYQ>CKH;^CMEU@`OLcgRB:HSLSPEHGSFL=Ka=H2Z^E:@MBNMTM@Es_GRZQG?>;BHL?SJMH=SC?BKIA[FJH:NECGXHaCIiK:WGTHMGBCRPMVB@COD=CKD+ENS5<@C_N:<9CSWE@UHNUDEY?6AA]WPIMm4DDK@*\I@N=NTK`C``aghEP=FVaIMN\OSNhBFLQPXOENMEAKF_8V?_B?MLMCGEBSl]KBHCESRATT?IE2aHKeFYCDORUL8QJU@?0T;K@OFDFNMIVMDJT>L_JBIN[M[>DBPQM>OPIHU@S;9GYFhCIMHZ4FIRIHMLKMP=N2FCELU=B_I@]?EF?W?SPO5RESHW@E3KLFQHaKFNg\WPGED;hDW6BAOC?<=\;IOMG>TJF?3[E?GLHLRT=P?MPT@LBQPW;_T=Q6>D\[LIBP/IWJKMQDD:?7OTH;RPOKFK8PHE@:4DM@HQ3G386MPH]AXBITJ@ZPDQF@GB_aV;ahKE6J2NMQIGAAONNSAEILYdEKEJMZXOA@HCGKQD?NA.R:=;96E:LA@5WS@mA9@>SCZP]AJyQ9P0UgFB?^CZHXE;NFCSDJD9bOGKB;>TH]NKE\R@G;9DK>6A?^@A8E@BF?DT>CSZOAFO6DJSMGEB>EGY?KU8@GVIDIOHb:?1MF;LL6HNCPMUKMGKJKfPBRQPQLI[EDN:F?G>BQE<7\9DD5UG5FSRHKHTDAXHIMP@cC^PRK?T?O:R]7QWkTFDL?TC`6QRg^LEL9VKO\7PNCWLTRFA?PH>NMBAYQh[VX;PiHRVSUIR<7S:N>NLZJDrU?OIBXXCu\Kb:HHDNRH;EOHHKGOPRW3FK]VAGQTTULKKR\H?FPYGAGDYAE_^JDH>JFT=LA@J_DYTK>LNSD6;<^EIHZIAHJKYOhHMRXEKWUNIdHLV@KQOAXIU=\E\AXFXUCLPNCeQQKZRG]SMjJVk\HQYVJQN:TVclFC_E@JEI>CHEEHCP7^HQaLKO5AE\JHF[CTVCAFLDLVUTMJV?DS_BKHJA\HaBKDBMPNMHMJI[QMICBELJLZCMJK;JLFSJML@>RYLKEaAP\NDBITLZOSLZF^KCMY78G5GhAS==LPFKJGHBJ=7;GF8@MMX5HJ3>KGIJDI>HNQNK[E[D;EQBKQSV?GFLLZI=KM:NJVAHTFGMP8C:JI7EPbADL@JU=LLK>MED[F8pCFB;lGXITZ:KmAXFIeQLO>^`OBGpIZIHNP>PLe@LXRKEEGBGKFB8QL89BDL.eRH?FHR[I>[8IMCVLMHUR<@S^PHIGDSFXFXCZ]F]8BBVWKNHDQILJIU^R=QA[]YUMVTLDPVe8FUI^RWfWH=^atCR:HER]7=QAK[JM^P`XKVRRL^KNPoRDLYU`V=YdQMBG]Q`>HSM0gA8J]FQV?A]NUBKPSCS7_eUQ_K@PBSIVMaS[IUYU:VA`XHWdURR9SSWMK4F\J]WiM9LZXIUUJHPSL_K]HJQNCDbKFOJXKQHDWRaRPJXIPLJPIPNGNL@SWQrHQJVHNI`?=@JVGb]VJPPQV?KQlYD`TXHpMESXR>UHLWxIINSIDSJN@OILcILRR=AIANCNRAK:=FV9QMJN2>IE8N;]PY/9G;>@XONB]QX;GI=^QWKA9FSGEP6JJ>ATMA_:PVSP9EGDI]I;;6E@I;YGE=6D:B@HIJ:H2IF>M5IKR==QL6^KWJ?TBBJ:RL?D=>M.A==4LCIK7UM=E?EY=A@W)OK1HIT8CQWFF6DL;Z8@?ARA=BCE@FTL=_SHK\DPNX>GC9AWAG8N&GO0DEHSRM;QA.IRV?NDYM>>0K:PD?I9CAA?MCWSAG:$GKMDH8>?G2OHD153?1XC2VAUR7Y@N4IJ28<>FF4@JZOE6M9>GQB4EUHGFMjFLCLE:IQT\_lSOU?DaHP`\ULHFLBEFM[BZOHBXRMQG[OLHFIF=IN;GXTDVMcDCERQEOUmO=`PJmIZJDvKJE^CTKAQK\BTKNGG[DRNTR^OoGIL@QDeEAIOJSRbFLH7G@cJDfBEEOIURbG]c[MHAPLEfUVMQNE>EKKLYaDL_DRNKGGtQLXQL5VSSKWGBCmGBbOBQFEYKIL9ZMQIOR@TSE[TEHHEMObLeDDRY=?MFEQJABRKZN@AODLMR^@;TRNKTM>HGF@PQC]QUN;=GUIPKD=QL?AOVCIEE=LPQDeHSLTKHEDFKI_^O@HE[dIBG:HKLHG\EZG?BM=Cd>O^?UJJ\K4I8D@QSPOMRTMIACIaEGEE_?Z3BPTCMGBFPNL@>LMGB:oPTBNE?DOAQG?6WC@H??M>JHgWTH8I8Q@N;HN6GFSV>BYqXY>P>HF?BSWVKK\VMVMV@2>,UMPRIi;LLBU^MGJ=FINFb0MDBeM`aJGC6MJWBLC:QLY=ID?CH=4:WN>HVMC?<>JGENLFN?@IGIQSG>OV9@D`@KP`DWIc.bVaMTaP>fbI?KE^DJ6R\DC3MI73WPO>JFHP`TX?cI8DGBRZIJ@GS;O^?UY4BIBTBFFILAQQNcZ7W?@;LNC\?EER?]-DWMB@=M;NTGT]ZF6YJDDRBUDIFbcESFHH?5:I^FI@eOV>;>Sf?KOEAMWaRKHQYWNB/kH^gEBCPGW>d7dSA]Y^?I:zFZM?ATQSAD;E>PYKAXFJ8JYYVL;RSKLGCFPO;XJ9SOTA8O;HGGO;C?MARC:SJRIHECG:FQMVBG??`BLDEMPRUIGJI\RMNIJOOWNQJRLj~LFIDAO]rWSE^HQLbGAPqOgMECKUAKN5LCEM=DKHZPOP6O]TIK@NBJLEIJ_RBOHOXV[YkdLUQN^MH^LNOcCIYUCR[N^FFfLQENIFNZZLQRAOLXKFLJDOVLrCcMGKIO[RQFUZHJGDhAHTMQgGB@@GMEXLVKUJSK_JHOAAPK5JDGYMDNCRTDQIQVWQ\XeRB;cR\DQS4JD`BQXRZDS^CNOHpVLGN?_B`9QI=H7CBBR:LKGACJM:`BJWMAVC=>QBFRH?YEEU\PHY-:[UPYTp]M_VUDJPMLQnII[bJLPJWGYKPAEV9FRORMCO=EGASOUE=;fUNYHCD4D8CHTDGPS=]ZITD@QBMG?L?HG:G9JBELGB]@TSQPJ8KKWNGNFCdO@TGUGUNZFfENTRADHONAND8DV=HXJSYNHEJNMLS:WN?FCRIX-E@HLFJRNAsCHLNDHGKY=AHmeSSOMEKOSGbIgOLLIH,JXFKPOYIKG3J8HaB@XB]KD1MRGNXLRMTTBdSTGFEO?rUX[?OKBJYNYDLHWCFMI?E?\HVEXQTKD;>FMSW\H@RTCO@DGJMTPBIFMD\M[AHBVOC9`;@DDGJSQ@K9AOP;FE^SREX;9wJYSaHZKDX_AFOJHCA[FkS8R?F6ZF:JG;LOPNIHKD8PBMYGASXG?F=?OD>RWWG;FYhKDLFEJTFPL7JaJFLJCG7YK_REOFWKQ[VJEHGUH:MM@M>RAI3GB@HMFFCVVMMOQGKBIVDH[=AWMH^`FELXINPUO\>KUORE7A4W>:WPHXG[>WhE`K?EK6BHFCfLcKF@^fg5UECAd9GP\?X@DeM[OYC?CPYERGEXWM>UFCGND=ZNWUWDWMC:DHDUHI>A-N?_IUZK9TSXJKTHJALQlHSMVU8ALVVOLIAION_F`^STCT`ZOHdFr;IYEVTHVOBFdQ_UHLEUEWN7T@_\GXG?BBWJOHCEXJU_LCTPBUBK>WBVGKeRakS?TCItLEDIDMHJMRNUBCDIGN@^IDBEA@YCETaIECFP1VLK6KLJPBLM@LPMLDaH?VGYUDYJWKVb`J@GT`M>dTkJNET:AMHMAN[HJLO9`JA;DHhMG@BN\GOFSEUNHOLIGLYYHOPGLKSELR^QWCVI;USS@Kb^GKJBSGXQS?=aL5OISBHQFQZUJKBEJTPNNI@P?MJD?A?KS@VO?HhRD`KVI_YMULGaAPH>N\BATDGGFELJT=KXXF[Y:IJ9E?I@GHHMHOH>ZSARF^AJ8LDECBEEHS?F?4UA`@WF3FIBJNV[U`]FBFRFZWCMN:VJF8QNWfDM7;5D46ICHEF[T7I9@TTEK\F=HOVK3IREJP??PJG:EYC>?MUAF[QNUQBHBQDL=9RKETN`WNFGXEEBIUW]ER\JYDGKHHJ8MH6^@jJPKFAF?V68NON@UJI>NMQUH=GUUIJHjMANRM68=GBS>HF9DGBHPKL@[T?JSP>YUL=CjDIVSKDO\MMYdGA7XL[FQA_EITAQPPVSSLN=MFTN]eKDHZTGDLXWARLR@3DFEOS?];BZ\D=EV^SQURPMVCJXjHOFOO<@T4FB0HNNS6_BB`FW:7OGGWAP\kGBRIADRMGl;cLH@IVADIEYDX5JIOS3K@U*8CIUDM;RBOa9Q@J>KDONW8?IOVNFPGJC=L7:UD9A>BeCDJNJH8XPW@HSQi;GAFT>QRK8JDM8bSHE[3LTH`F_WLNBPJDFL?CBBBLLA?ERFLM<5nPGTJVV^9ODGmGD0JvU:8PEMIB=A@]ZD?]8Ad=O@TAFUQAWDHQKNPbRBPRHEGXVZEKCpI@ZPRDMTBC?JADKLb?OOTW]R^AOBM?:E;]IDAVLAWAD@IPP9MFG\>W?DUW[PHMRQOQEDQPmPPL`EQAISDC9>NEA8XAU9H[TAXJ7GCO>XC6G_8@MGIBEGHE;SNEJ@GK?>IC=K9K]IMRG>MABMF:B=JJAMGLGLDHDIH:OMCRXBLGAO?MIBS7QQF?CHEQISLUVFI7HJFL6C>?9;IDFENBNQMRCL4CGCPPMQVD=FRgVOACEM>NJ:MJKCSB6;PNLQI?DNnL?VLKIMR^ET=O@AMGGXUOHI6KHID=T@J8CLGJR?KAH8MTOJ[AFIIA=STVTDEVCQHF\ZBHAZMSCFFKTJSZZ>[E;5LTUcbTJR[IGEfNLDLE]6NZhVL7F?MBSHLFQ;NRLOR?:HPDSPFHID]YIN_MHQQ\?FLAKEXU]M[Q;NpPGFmLENABN\8E\SSQ:NCbFJ^amTTXEDRZQKNI@PLJ>DTpTK;?IFQ:RV6hGQJEFJPO?OPN?E@FN[FV

Z=QRLEEX_?YNLd]XZFEPAQLCRGBTWAVGRW=BdTKMBTU:AKVbP\OUCJYBIIK;KJZCF@@TF6H.AG702HD;EWSAG;7P`EOZU@JVM?HXC4?[PJGMIYGVGAJHSP]>C`CDUmiH_7BdHC@@OLOKHPPZ[CKdOMVABPP>E[bVaY^BRPKRhLITRINM;IEKNJNLVIqOKMRDOGHDU^SIMQHXEOLIYCW]NNTKHKOGBWiStRN\AMqPRIORbRLOJBVP[JI:R]XBTUgE\KDXOXYZJQMOeHENIOOsXTD_ZRLQZGGMXQSKD\LnHREETNcKe\NCDINORURl[AKJKAOhWB=]OLVUCRH[FOJHMOWCDG[ENXFJ?QDIwNXONF\FQNRKLcnN?MNPGD@MCN\NCDELhP]LEq_RQQTVDOXQZbWMDMFhHWI`LfM`SFUH\U@LDMG??GQ^Z[PPVG>XSKJSrdSPOb]R[XGETLkP_?MSW_ALPOHLJ`ZMTbONSMT`GJONTS?^SJdgQORZfOFNYHMBEF\NM>MeVSGBNLIAoN]sPhBcO:PGNPDEYPJLUcNXdGMKORVNWSWLWWPN@|XTU>CLLLHZDWBMPPHTLDSkJGIQLG@NOJJGHRIBMOWUPDHNJN_NRGOljEMXWOH_M@KJ=SPK]Ma]RSKQIWLGZFRXUHVUUbQBUOIM@ESQOKRBTU\SGGNIOJO@KMYSOSYaKHRDFHUQWOUJDNQ[MMTTNNOES\MLKJJ?RZ^Q9\QOIdGJNZJPWJJBTJKgTGC@>LLUDRIPHSaNKFF;RTKg@UWKSO]SZMVEMNCP\PNPTT>qKHfIMLNK?MGPSEVIVMOLrJTFTWQTTVTC\LWHRQEcMIIQSHJCKQNE=gNSGCSGVZUEbVSBLFNRL_uN]LNHDHVM``GE[RJYC>\RMGPVJWAKCKaQKAaHFXHVOBHAO;NGWUPNPTPTTR=KUQ_PA8]O4D]QAjFFT:MS]:IQJILR@RM^=TX=@NSMHVKYQYRIMDIMKKAH;G;dLTJNLMV\VIDMaQTP\Z^RDIWMNIRBHMNAHIFFVJaIEZP>DHHNVIDPWLJM@jCIEJ[YQ@G>KFGWIC=`2NPQDMLMEOGMY]FQR@MAAKGJ:HMRE>?bJ_9=EaVMOLJQKLFPISHeOEBCYI?ENJDP5LYOIWCIC@9MUH6N[DYPh[IDTODSXRGFE[YKO?GLFSFPOB[PMEVXLNAVMJ9CCHLJMN29MBM^@NFEG:]RJ\PWOUHMLGR@R^IB?GdGdNFbZ[R=@9HW2QGZ`9>UQPKPG@XEISI@Q^9`A:@LDNAIFDGDAPBIHM9JMVQ@@UFMKU]ZUhhh[=[WP[KNXUNCKjVKPNaa@XF=EgvKPmYMPGkIbUUDCPERFXUNF]OgM^KTR_SvR@HUOTCN>MN.VK\Q[DSEcLD_REFVK>iRKQGR_PNSFQIGSg_T[YZVYCaVIC?EaMPRVHVH`TFJTbIKRVMLJNPUFb\X=BeBPK>T[EYHPSJMJTCEQC]HL?KXI@LZm`]9@[EEi]SbPhTp?[XQS=[P3OXY^N2CN8hK_@ZSXLRKCEDrL\kCZXgX7GGUR[J_`EXT^iBXR?_aaW@UUY\KDGX^FH[V@WI]ZUZciy@VgZDZEz6QPYTDBhH?gHJaOh2RUMRBa>.PDdEKQWOSW]@>L5=RQ<;UL8HcQF7ZN1LY4;4I=nA4NG@KSIELNLJV?0GEMe@GJ6PG>CSVDR6IECA=[3KZ'5XVL`SEF3D\BE5M>.LI1Ba6QGN@F=P8DR?3D@QNJVT^@[MJWQ2Yh?M,W1b>;ULE>OQ?)ZaIOANS2EgJVN:?NCQOZSOOIQH77@?9B=RJSBBI=[IULUd:MN<@HU9H@KCG;DWR>]UaO@BKZaXB9dJ@=E8_WK=ZZSF]MNR=Df>I0QR8NNA:HE>HJ7NF@DmSIRHUW9ROIC4FAP8C6GI=SSKE=EFP^BGGHEGLASULF>RELSDIJHBaEA_AAQA4OIL@><4UQRNAiPNGVORR7ZNOUSIEAK<;RY8@IPIN.WFE>FA^EJKU=[EOLSFDYBO@B[YBcPGCK7:IF?XSWNFBKOLAH^VHDMF9]YO3KAIQGCFMGWA;KLJFcPKO7ANCHGAF5FMO;HQDSMXLQN[QDNBHj?DOUJSATERNKUJTMMNeJYFU=b_H>TJDIGLL55J?[RDQ>9@DGeJLEEVIL@GLDHTHGEFJO=`BGAa>HLA=H]D=@A?NMH?RMXOQEC?L;_INN8GG@EIbNNNGG@?P=FHNJVNKJCGMM8ISNLNFH?QJGJ@CC>DiD9BBI_G/4ISACI9UMP4JMNC@C8OLCBDBBUHIE9SObWSN=YHKKJSAGkEHSTJaLGQDP:XFQCBHIS@ACGN@>>SCDHJGOT;`4mH@NYWPc4BN]=SC=CO4L,9S:MPm]FD?A9LS>K6S>K@;G?MY?J8NWGDC9P9CF>CR1S]FCJg;\H<:^N]HEL=AGRFFPFRGSKGS>EI@RSIC/TDSDOMNE6HT^WZiGXP>cL@XPDJJNFLQRZf8LUWOGERFCBHRXLNHCBJI\XJT>QkR?AATJ?VUTSM4FIG>IRHQZEJMCIOIWFOLDLXIC@SJKjSVOZTx^EYJVMS@LORfXSVBHDMNS8[i@?4KFDReAJ_FTBjRVMAJEFBKAQBJR[V?H^OG[:|H_GaIKPZULTRTN]9X?HKZHIWBCSbXMSE@TDIVWOndC\NOJGF?Qa`UNWYC^_VZ^H^=F7JKJC@dJk]CTTKXYMQLIHDETmUZEbYIaS``CGSHNtR`RZ@^ZJOVQB\EmXPYUMK7TKkRENH]aCYT@Y;OIS|JKZUhNZJbJPHMIQSXMpDG[EDB@OJU\R;\`TPXU\BPA[VXCVISc^JDa[SE[[QT_XTWPUTGI]fMKJeOCPN[BCKYRRdaVYAED_b>D=DVQV?:GJFQUKUhI_KAKYFWTkQN:DU]TvYTB]PJJEPl:RTi?O=\Lc`GQFNdi;YIPFP`IM?SEH[[9LSRVOo\w;RX?\PMhQDE7JKKMbSQYOYZPBMSN@VlUUW\MHSE`D9HfEM^KfETSZGZJQKYIJAePC>MPOMWFS\HN>M?G/<GDF>HPDSC88Z[QIBPHRVTh_JRbLCI?;PF@REQDEKGZ]Bf?C6bMXDVCMTr;R@POIfMHIMY9-I9WZKOR;DC398nLM\EU@ESN?HeI6ISU@?C>MBSQQL2IJEYJUEGcYJMHMHMMCQ7JWJOP[BCHG@lCQ>kDJUePQNKH@PC`FDOEP81FlKZ_6HBHbJ;FHPNI6AJ>=;IU?@[DICPWLCRUH>]JIJGD=P<[MM_:?`MPM<>O;FIICOE7EEF;`9E@8ECWK=SIK?WZTKJVLOFG]URA>WG;=WBO?QIIFGZO@E:HJG@QQAIMH=DDlMW=RPQA8D>NHAG\O5VjRAHM[QUNH:]V:AQKMP]8?B>cE;C5<@]YTDF&G8=JBFS:WP??OG>=S^M6JL=AwZDECDT>EU;=;EgCCGA^@@CKBBNATILMFSUO1I:@1U6KD4JMT<=S?GFNAOGZFFFTHZeNFkYSCN;JA7RSaH?ZBJRZxRNG;oPIJTDMWQB@LM]FBG_[LRIUME??PUKZM=IM>HEYNMGCEE7L@RLEMYNNMFGG\JN;GVNOM@GAKIQGMNMT\GPIB?T[;JaKDK`BJMJPZRcdQQGWMhIBPVMIALEJOH8IAQD?CDT=OJ-:L4C@8DJHKgE?@QPR?R^6]>R>8YJdJ6]:A9@Y8EOGHRZDMGRHBNBGNICKGMJWIOQCEKY@CH:QBD>S@JFIFSPJ@Z?NFF0GMPZNd?R]:FHB?FVKQ_O@dDQGZQEKLZ^BNSOIGJ>RSIRAaJj[SSTEGJUUANM47H_VMMEZ:>fM?AFG`ESUS4LMG>ALM?KEFMIKHESYHJHKEKPVQKYBS?;XVvOAYLJ:EG:_9IAMDOUH?HAIQU9TXJaE?TBRHTb=BNRH;TZIUNXN3WC4UU1_QM>JMBDAQX;S7DQHY?WDLL:E6M5QDGUSDpGMHMH;K3:EO4FJ=UOGSWJLMCGLEVYI?BSB=NS@DI[SVYZ5GKYEYXVDX]`ST9HZ=5L4SG`GSNLHSGHRQAIILD<]FKAHHJOK5AhC>HML9R8JA4Nw2ACP6WNUFAYUADhRDCYPEFOQGIBSNMKZ0.GDE:\5:LJV]YG8KG7MaPMPLFcX5;@D>SI@PE@bCDFVCLXW8OZAJCLHP:IP5D=I8L9F@[4YC>QTJ@[IUMN=3F.JBAMR&GG87AnNGSD0BBJ>LPHPD@KKYH\FC?AIBEKJLMHX?NB6GGLKBAQ`]SEQIGID=NATNNd;KV?D?^O7QEEEV[DCJ>ELBPD=GB:4EGLFLSTAKNOCSEUT>@VAFO>IKQ]AI=_VKND9A??QF]FKHYPG@T?ELF@?EMG@I=3==LFROFG=E@>`VG=H9?=K:EP7XZ=>;OC=>`NLPDNW[EH>BII[`>KKG:NY^AL;dCHJR@8H:K2P>KABJGL;>:I>GCGB6STCNDKgED^D?A^bJKEKNBCMGEE^M?^QNDGIKJEBCEMPL^HF;ZbIX:A?OAJLOL>WcI1FAFZmqH]Dl=OJc2M=H>SBIMLO8U@65N=AV[R_@XC9_HIE[PCEQ'US`SOgRKRXJ?a@LU9k8OJMFOTKNC[FQ;9@_S'M6VNB\S2M>TS@;QL?ID]PO^BIh_6JMCJTUtLecF=BCG.9NRMGF8NEYLWDSmL_FARvniBKEHD<]A:XH?h`EHRZ>T6PYKXG@MIDHEUEREJCSFPHP>;OCSKEPLDECJLWFDF@SMCIFD@?JHEBI@OIQYmNFSQT;VIKHPFKNQJNPVPCNSTAPTIOPLAP@;\M<]HBXBJQPhLOKII?FBMSSQkWF@CASBBNWEWKQQMVSRQLRJFRF?NHcE?PRFXXNGKZPGEdJVNEDVZ9@4D_PAOOK1]3YShGDQ=HVM^`DTYfFK9mREIH\BRQVTT@DBXB2^?DGIAJo\UI>MGI>CK>F]?DW@ZMZNZN^MX?>LTGYYTGYANIEDOOYQVMM=NA5CWTSFKYRBA6EXH^NLMRSD;[[Rj@=5Ip?GafA:Y[BUJY=E>KENJYTDDIACGEPN`KP=JC_\KWMOTBCSHV]ETUQZOGSSI>PLGF:PRGbDTPSDWHTEHPxZRGgIP\Ah>MLDI?\HSXLGIP?MDYAWTHASJ@SJBIGPQMLMIRUTJPUN?DL[HKePAMMNFLH]WLgHBLFFDbDL`PYCF@SVIjWES@HLKNMBGTSSYb?aPbm?DWCJkLiWcG?^LBGbYLIBAzOOSnMHUGfc=U[AMEBPCOoPJMKBQXSWKRi[JaW8TNAIUKBaUYEETPKMDhGVRESiE_DYQpYVFBEULLcP?MN>RSPcGLjVIE@WFCGGHSSN=KKKERDYLQGEWMARJQPMMLACM_PlICNJIDSK\I;WH@FJT@a??HILR[WKTW?JERaI?LYbUIUWLYRGKSCBhKUSEM`CDBKM@UNUAPYADDSLc@YQGNq`ARRLLR[FYUN|XSo^bQONDcQcV8APKJFLH>Z[Y@JQQBLHLKVOh\FFTNTMTNZK]PHGRJURBEU`6DGSNQK`YUFG\ESAQ->J7@OAT]@4:UDDFD:PC*AO@L?CMW9QLXM5@@=YNKE[TE[;SB>NHDQHF@HMF6EH0LZG=>;SE=DRQDAGDAFZ@>E`RNCFHF:NM2D?GJ:G:MOHK;SBMX9;3A;OBCGC5BHCBSgMKLSHJK5JTMWIJ?DSDO4MXD=GPVKSDR1MGLGh^C[C?A6XLa8TMIB9KHOHUOCJGPCETL:TFDH@FDDG6MHADHKD8UFV:EHK?ORKJDET>HG`AUP@1RLSFHGCGtI/,?]<_MBUHXMAI[NAaCHMP;FUEE0CGPY[@MePXS:DFM<@NLUKVD=OK8Q;M1?ENXD?FIBKJMMNNUX0O;U27KNEGPJBFBYNLKF^BKOOM?CMOAC4B-OUV/JCbW8f:8CEQRKV=Y7NFLE5EGJTVLA?OKMPGKZA6LL@VGHECUQ==GJ@=PNJKGuGI9LHNW;:SZHRO=HEHPcQPBTFTCDBIHa<;IQ=7F?H65CZ??\N>H=YB@L;I:O7RHO]A;QBCJN@EF?@H@VDG?L>`PJGFcBIJL[F@C=FSM9FBS5W9U.HGNG6DFM_;DBKHJK5@`HFPLGG4CNC>DG_4N:IDNE]FU9;ADQMN7IYSCK:(OXR:JJVLHCE@:?P@@G>JF8YLPGGULBBBaPDAHIE?BB8CBO;5N=LBLBI@?BN5R?3@GLJPCSSJQMF?J968P9U_IWC?V8I@FJAXUUc=@?CWM=?ZJBO?>?GBSHJALBQG4?AXQGGHPAU@\KfG78RNdT>6O@R\fcWL?UEZLMi@CKOP>PKIBBKC@RGILNSOLRBaBQEJPGJ]>WSdM;T>CAIHBW_2DZYMSNEN??G>FXC>DaOI[GGJUbSDBSCICSM8QOFTSGMWLMVKW6IIACFGNMHYVDTFWAL9OiP_:PC5LNLGR8AVB9PM9@JK9CE1IAN;6DGgBIHL=U9HB@6^ZCH7@CCK1A;A7KV@AAHE9KTH94V/LDRADV7CABF>6DE@M:M?GATD<>G63F2.F`=MEKAGRQE`FA=G7QAB:3I@K8J=[7CQ9;C3QB?B:GQ>MGK7@86]CDNTFGEM<2GF;V7HDKGVCJALAHO@:=LES(J??>>?4PM5YJ@MG=K?HCVSC=A2SO\M8BKDFM=J?]CPEH:7I2T5O@DDDHIHNBB5D@5@EKE]5XEL@a@SQ;LR7AIBK3DN@N;KCTf[QMGb=BI8=H]FKD>B`[J?GPOJKKONR_3GJJHgELEaQZO:ePBIfE>hLQVM9E\ICKQBPHPYZ_QCOG9RQXJFAPGODXQBNGARKXK@@G4NP?I@8YDFNQAYWKQN?EG=JTPWEIEMRLOQTHROWA:A:QEYPL^CfHKAO_GLHE?IG;PGMMYSYRBBQE*;fGUYM:MUPDHVPDMLPMdFNXT_GZWEJCQRQLRIM]_URLFHMNT?>MDjXEiIh[GCJ_4LLDYVGH4N\PHZTXB^PMI=ORASOI`8PJELkXd?IRBrmFc_HD@RTKO@D@BVMDQEOL=GPSGP@KSKJCTCBH?IH>QLPWPUMQM[D2OUYK?ZGs_GA7SX[`NJHNKSPIGeSTEEAFLSCYLM=OMAUCdKERHF7MJ_X=HK:CO\;T[RRfMKCJDXMBdQdIUN0EHS^bJTS5-OCHLGIQKAe;,HAiOlLDCIVH=JPX`QAELRQ\JSFGJCJKXMLJLOHWQyMMMYDRPLB\VKM^LIUW`VUAIM[RKLQPE]GIU_[WQXCYaQgUGYNIVHNUQNsR@MnYOWIlTMTQJQTfMNSFJV_MfSOC>G\FXi^[TV\GMYPLZT^OCKe`_YQ`LFLSjj\GYIMWHJPoFLRQ`WPQT\MSHVV\RRGYQGPFNYONiNHLT^CVHLE_GUQUIMVBQfLINn_VYNJhWV}UJOHNMQIT^RZRQIMTJ[cL]=_LXeETKUEONOKXHBSLcRbSKKOPlZHZgTOTSGLL[TOWJXY_QMKLCPpOIQYILKRZXIIHeWOWGLNM]LI\MN^TTQ_TlWYMX^LM^HQIYMZ[\HPWjZPgBOFHLKfMT^TS_YiaDuN{AaRK[QPEIN[YILM_TJRMRLHFTYhGNjNIMZ=MGXbKCX_MTJTSEMEXJGX]_[`ROQMGTWOdDLPJQSJCOIPKTNIN\WBZ_ORNVUxWdGOKSN^WaJLLMPqYV[\OGHNI\N^JER[KSMS[k?FQW?>IHH]TIeFDA;QIT;M@;HIJ[NTOFT7F?CC9XvLVIRObOQUSI\T]P4A9GPQIW?T=QJJHYM]GPS9bVTA^O;MBI_fMFBNOVJ`^`YLA6>MJJ>T@QLeQHSFQ?aVJ?XiYbQ:HPTTJT-V=7J^9S=k`GQIWGPaRDPASIJI?SDEFHUEWQ>ABBIGf=IeG`4ET:SMP_GY^I}FKIAL>NEHX=NQG^4JK_\HBIM4CH?<1SMDGOBE\KH7XC?TgLVIDTP7QLPBDAgGMB;@XTsO[ZPU]RiFPQcOWDG?]]\OFVSPZYKMQPHJYJ\C^[gOGRSA}`BN[=\FiM\\NbRODFUIhGFOMNIKLVPSdJXLSDJCPaXVIINhE`RQRbOWAVSUVLLTCTFN^HTNMNHFHSLbc>N\ITG`SJIQ_Z]IH;D^Yc\`OGHEKUKEGJSNDXDXSzL_NJGQMLcLFSM[MOWHKMHSFPRGdXWUMKjSASbM^MKZFL]TGKWJK\QGWNLPJ[NNkaQNSJXZM^RhOPCTOVO[JYYZ=HRIUZTEIB\SLII[EUSWVIK@dZQIEHRvST\IWOb[MRK?@AN@MTYVQGYl?EHGEeWPFTMNFQXSIRGE^QH[EGCJOXHC_NbM_\OIKL[7NP]U:\_`OeI;RBPB?KQR9;TJ3NTFVEESUJL\FESI\LHBG9cEA_GV@6QEOLHDGLSN;XS>WOk[5M:R5IGGDUL49QU;?SAX;F]D>MKaVJF=\XW5;KD?H\gWHL?=CFGJYL2TbDe^;BbDCEUGDKCKNr:LOGIIS_JJJUJIkDJJKZHOPTMKJKU>OALJHHJLV=oWKWDJC_4VCHGDNSJEBK_K?]:5B8O;LTEPMF;OEJQFRZEBSBHR=@ANMI?BM6EWXXNTGNSJXUE?jM;EI<_BNH?LSqaGUFNFSNIB[TJ>CXMGVOV?:EMR>B[JBSINBKYO?MEK\`CREOOPKFX7nK`R8PDTBJHPTKPG\EKOG^IC?:BN\7KTLNLJLCIAGC\OIJKSX]KSSCCCAHOGPEHQFEQTB]J4KC^B@XUA>WFNAKQccP>FTJLOWLESIODCCEMN<^hO>DS4JQa:MNT\BDCDKKOROUWO@HGH:KKHFB\S6^G@FOBOdIIGOHF@@LYL=DSUKdPCE?MI7@N7DQSPJOKJYQDKOKJ@WTW9GEP_GJUVDIR?H9JQaAD9IJLXQY?>SDN6YQSIPLMFDFINDIMJW=LHKCLSRCUhKJC[FjETTSLSLK:FSX>ZJMDK7cH\F3KYGI@LIdt9CUFYAJc_WEXY^BS[mBLEZFDHX@[PNCsJOTO;Te^U@ADSQ_]=7WOCCJD:*?8YINPMJ@5MFQ=9HZ;[S?\kIC\\WA>M`HAQk^SEG6IN8\CT[CQFMLITq-TJyGEKSi[EPGVJ:fcL>@acgKGGMAMOGKXDQVUiaOV]EKWE?ZLUCHL#`O=g?JIJk];`X@HaOONHFZJKE0JLL@<67UoM[RGF@RN1RRTKIjFZRHRVDR;Q\FVYS>@oEQ>OAWWHQMPGXVCgGiGT:*^];EhI.KZBSc9ZORD3NQ;cG>QHLKKAD;G:PQKHdLKWRHXP^ZI]jY@NUXMPSZRI`E>WIRIK=VWXBME^OX0BQqE@CHSFGGAC;7=P7:F6>>GIIDDD4HUQG?5OJF56:HK>GhNG8.FB=QDAAQFSBHFNFcG77GMG[=>CEO>9>AP]NOGB9=H=OCL=ON5C9E?HEG@7HDJ>S;MJOP\@B;EN@BAJVKKAEDGCUDQHZ9eJpNkJKYs+\7QvTT`lDRB]VbYuPN>sQ`=AjbcDdL-8Q8ZSPO`*{VnPP<9UMXVA8L6fSo@a^R_fULU[RLF`A2BJCzFX:k[,VPeQVe,[GHR:kSbH@\nP0MIFmA>Z;LkHa>KmYrdQQGwXNeLuWKN`LL~BKRN8`ICWib]vXF`BHPH\TLBGRLNjSEE]S]RLAUGiLPG7T7KQXTUJWNSIGW_QDJFPZFQGIZ[RJMDQ`GTQ=:XSEXLHLJ]NVJ>SYCJCU_N@WB\IHHF`DOWGKII[PSZMWQWOO\RWGVPRGAXE:UKW4ILWCRK=MlFG\OMHMA?C?RJEPLh>MMKIMXMY9PlVaLFAaOMHT]P[?NER>XNdL?;B@CP>WCPHYO>TGu`M`IWWN9]ZNSPEIMQNGaOOdVD\GJ8OGMTeNKIJ2AJEUAEN[GaaNIGBeTHK;7RGHIC^W7CSiLLTHBFHWQEWM\>?>YY:KWQIRUF`><\GeMOePDWIDGFICBE@cOOF2>DML?b[J?DIHCNAFHRBFI>S;EGIA@TGKDAQKV?RZQGUEJFEVOISHTJEbK>65IF@P=LC]GI;SICGE?JKJGEL=KC=MIPNP8@KMVOK@FT>;>=HGNKEOFPFL1LQALQCM8I?FBGXD4>L@E:AZPMNmMJ@IQ6IKE@6OAFISLHkMDEMOAHCZEQ=EORLCNEE>C=DKWC8LNPLJB@AB=AOLLG8USCKT9JLEKJU=V?NfHD`L_PD;DUUJABeT;S=5UH[NOTKGKFLPCKxAGBUQCDPS9ISKCPHINPaT;QJAQEiLQ@J8\dHL7=HbAF?@Y?RC=QG8KK+DV@LN6?KG>?O=`;TJA>FKNHQA\>;H]DeIBHH9JGLDTHQJHaPHUCL8HQ?ADQ@LEEU`WN5b<^7?=+FGAN<>Z7\UKAN8IvP;BIF@DA;JHA,NU>_?>FFBIJFAkI1B9GHJ7ICDLAIDcI[EHAI9>@XOKLDAJLA2ILB_ILUGHCIHNEI@BUL3B6:CHCHM]C^DK7I>>K8FWK;Q7GLTMK3E;UKL7DH5DJJLDBAKP:F6PEF7TWCGQ.\AF88KDMO:f7:BCA<>??>Y@Q(ANCBu?FLAI:2:>Z_AWCd@@7H;@DEDA?@aI=W7EFP^I3[ZAKDJGK1>7IIC65NA:?:JKJL=BU3:D1@>LGE>?>L=?>AA?D9NSFG=:TLC@J>WHVD=K[BKJBFFJAMNFSD>=G>IH?5ABN@SOD[A?MCKBJS?K`WH>DR@<=N@H6CFKHA>??ROD?QBAIGDXEHQFAOAH4E=I:Z=5HGLAADT]=LaHEJ;7EDHN?GAO=;\JG?FHCCEAL>G:CBIKD?UWY>XI[AVG>F@K6:F@GTVAMBLZ=BH>Zq>@EAHFLLQCIFEYW_EBR:EGKMHDCEEQbIB;QV]MIC;IBEFDE8KDCORMeXNE?8R]:OGPMUMXFWQNHBXWTMp>W9PjEXFeH?FVCU7Eb^MfTF:LVTEVXFYEWSUHHIIIJJCURREPL?TFYO`KXKNGEV?LD2IYFNTIIM8bVKURNF\AHCAH4=9TWMIIOiH\bGYUKFN8YJIMAEXKJ8?DH=IRT@EOXD]UJWGRV7PILNIU8VDJfQIb>T]=LG\]VEKURC;`KY`sjRH>Y7R_DAKCT]AIC^XCQ?DJ6BJ?CMIqHa==DFGIEMFYhKaDSHQRULMMI[POT:SEC_FNIHKVFQUb?MP=NKLMFOLU>`X?9KGJ@AOQJUVOIBN:ZSMOZWbLBISZ:P`FEIRk@LL=HA7CQGWCSMM[L]LJJNIVTS?`HLTD_JYIQa[\EADDZTE]H_NF_`GFFGVK>U^JQQE\DERQZcUj^_YBdOEL=[LPL`DIIdE;SKqL[PTJA9KSGL[ONHSHAYObOO;XHTRNLB9GDSJPTB@RNR`^BTd[LTFIAM5KA??UDAM?VOKC>KA@K@VKMHWT\2UK8[=ODO7:JI?SS;MPU?C@8\F9PEO_\eRP5M>KLPJQASANHEGCMUJjXIS;HKB9TBAPIeEiRI@QP6]OAPPVXG=XNCHHMHLNRUI^HD>MAJ<7ENJJ`@OJEKTTDHTGGEJL?p5LDN?@KEJFJ@ADJEPICYH>]G>7@@2AG@BCP>EHRIPdWEACM\:QNLE[FHEH=@HERFHIQAEKBHPJXCA=EEJD@J@;FMFDJCCPHEQ>QCIJUKXIMJJAQME6JDGOQO]?EDSIFFY5EBHJ>LERCFAJH[LiMBL?GDT@?RN?1FSBJAE9E@PFSj@FG?@q`D?ERNMLFLL@QG:[89CCMG?RTMMNUS??QIEVm<9FHI3DMEMJX5JUBWDXBIMS>KKUK?IBN7PPef>@@XGHQ`ERGOOdM:M=cgJOM:CCD>>KG{bTL[HMICMPLEFmONAH?OHYXQCJPILJENPS^BFVP;MUEHFZCPOYILFGE9cIE[LLA\P@P@HMPIKFRFKBSR>G[lOMFF?NIKDQZ@QAGTWICPOCDIHDmMGAIQY?NNKNJH@=P8KNM>PF^MAIVC?KIFVOAEG1ID[1CJL>HFQDBKLi80P]GN@aLPFV^[BNHHIHO_D9IEIU^QGPUSQJURPTJ?MDhJFDUO@EGPFJQGEEJ@KOIIVOi[QcOOGIROKSOFDLp?`UKKE4`WMNJS@EV]DBIJB`PG@K?GJIyLXFVLHc9KJP@QGNOFN=CRGMO?=HOJRMIMLOPSHQCBB[:EcCWOLKPPTGH;FAY:S?CCS?HXOQEGRXTIISZEYbD4OGLHGKsOJVKHL:CfGN[KBFCZVHEIEPR:SDBGBT>Y\HZBNRVCDVAE[@LSKNKGDF6@:FdSP=HORKGLGEWKOCGVaEHcU`H8DNBJJAOWK\UZNBGURKJQSBJPJESNID]NB\BGGCRRJGPSJ@RUPKQWGDGcDV_OGGO[LAGdRGPF7PSOLYREJ_Z>Q\O5:/EV[5G^OFRL@JHJB3HEFCBFL:?>JTFDLBOCIGV=OENHL\@H?=W5?B@OLC:DKNS=]KQ<@_Q>DHKMCBJFGV\RPPIaNG>IQKGJ\AF5SOJ=FR]ONLGNET3:SAI9b-MLIGFGCIJ^VANZ=S8RG[NG_ONFAP?]UR==OARIKLTFZO@BFuLK@DjSH:NEKPAFJRAEVLFMD?I=IHM6:IP@VK8FNKYVRNdkJPPBVRT\Ltp]QnPRQLOOXGG^[BFMNXnREQJL@ULAOTVL`FUf]K]JJJJWEDIEN@qCWCKM~G_dNSS^TLJPFNVFQYQTIMHNRrG[4KNMDmdPCLVINAOFOOQUF>RSOzHKVaDNKKEMMKhfCHlTUUfKDJQIDBRNNKOPD\\XV`FNIzSSIH]ODNTDMQM|KH[TVNGLKZM[KDNDJJMMMLEVXxQ>X@XHY_XXIILQD[AURN;MFXWVLLNWTJFFZkN@EJKSWS]CRV@ULN^HGLdQOJFTEI^H|hTMQZWYXVKP\E>I>SBMIDHGFLQO[CFFFQdTNXJNUuGEMNMHNRKGK>ONVEQOQSLUROFTYWUM`VGiKgWgZSBMKKKWBFA`VHhTN\QTEvM?JSCHLRGG<=DFQHC>F>7FDDCCF;:M=>K6INI;BL>ND:E@=KEFK>7GJPCFI9F=17ED:F:HBNCC;FEJ62MW;B;:P8N?FEWO:BO7:@6>@99>EOL7>KKBO7A>H=EJHS=JHHF?52E@>NVD8MNE4N8@PG@<EGFXC>=B=BC@3DCUG=ID?=EADGL@?DK>IJJEE6AFGLCCL@FA=FA??@F=JJD1;E8>:3CJC:2;P8IK:@KDFD8@?3>866J7>EI@CPX:IE<>@/HEFMIAFF59=G<8@6?CEB5GB;<@7AG?E8@-EGB6C5MDE6:GKE@1A;EFDMCE3@6C:@ENACEJD7C;L2@<:2:DCMB?GU@KHAMG??.;AQK8E6=J@KB5E=H@HO>OQA>T;C=LA=KHH;GF4HK@I>EYMILD=HUe=H=EIL?VELFOMLaNKHBPEM:QDE8D[SQYQQcNCFIDdGM^4NDHX@KGZMGTQOdC??PAOGVb@BHMHVF]}BCRRI@SARZNFAJ=_EI]?AYOYRP@FPZILMATHKHFALPSIOOIEMRTMCHJUXMKBPTRUIHGAG\EBXHUUKKIOA=@?XKADHBGKCODNQ]BKPMK>>YGQTOKP@MLONUM<7LGMJJK@GMAHNKHPOE_OJFPOLM=LELEB5=N>f?NPD=DKOI__SXEZQUMNY3QA@PUJF@D>GIOQMIYUJ=AIKRWCUTOQNBLQZ`RZPGELUVPOPYQUTH@ShJNPRCWUD]VVCGQUCYSeHDGGT[XFHBQQCYT_TSKRJ?WH:IGBJKPRPS^M8EY[HO`>ZGMDQNRbCJ>QHM`P^HDME?F?SRl\NJiOCVAB_FGMP\ZbF@BDOPNVYK:UUXR=RKJFLLPNlTPGJJ[M_bKjM_HNNKNWCFJLJRUDDl[[DJPOVJ^DaEYEFVLIGFKCICG\IEJPQOYR\ZlHV;XpTDTPIDGUMP=LRETEXI\KGDqPXSEKTNCHTOXaE[[FRXTLXjeUVNIIRURSXGMR=HUIXK_D:TUV]IFS\OKUJNN]CJLTWUNBRLVO^CNKIF7?>CGILEE@E0:YEOPF_5EZB99CfN`YK?I[:;\L=F9@EK:THX=6S:CU:KLPGF]GII9`[_CPXN9XRDM@VKDIM?8OEE?]<;E7>BUGRSHLIACAM^LKZ6JDF<6H>HD6@EK=JBGT[QCAR>gNIRPiGQGNLABNPSF]BGMP74@VYQ>J:IccIATM$O\N;[NC2AP'A==_1B6ODLB[E18ET@L529EBL9BBCKuGGVUAwaGISD@A2A/]AcKCNJH-;AJ@?=?K;NZ9_IDBS@7HQ@M8PEMALOTNDIFYI>IQqB>B)FGBLOD@GOG<>Z46RFOI[46G:@HJ=QK<3Eg=IG?LPR1BQHF=K8CT9JIEU9BKM7>IPDbV9D>CP\\;BOF]IRR:UHP-<;RPQqbMDVHOH]?DQPB2CfJN>\=HMPWQYDaIALaPeYW7P/BcfUa>IdG:AOBZBHDV5VRF]EH8D_aPTDBUX\BIQRPChG]eL:DPS[QLN[H]FGfNFHFM;D2TCO=HFGGi?AB8?EYA;KHBNG.D>IMH;eVHbOS@7OY\HTXLcdDFMFFGT<5IXXDN?keNKB8FCJZnLMEJCI>=TCZwCTYAQUHGD-GV3QRS;j=NJEODPHWKaMAIFCDg,JBY8AE@EDS<=GM_U3SU5UGZOKHP@DQAY8<@GYKGLERB_B@XNGFTI>PX:w:G@XN8D44?CNG;N=G\W]UHMO<>KNHLD9SVLOlC<>C=G@FJMZEO;cMINE9HHEAK\gI<;ClEJEbKQNG9MCVG]:<\?GO@Fju@b<5KiMEGI8ZgQHYNEAI8SW;PGPD99>L>IG6QD<<@4HDRIJ@bAGP\FPMd[YUIHJHK@\BANbQaBMR8L7?MS.g5KLFSRMECG?ULUK_Y;WGHVW=?TMNGKCXG2O?:A`:BWB8JEPLSP<=U`UmPUFZ<7BCRJCLPJ^JJDFWH>ICCA@B9?iRMm@YlcOeb^vna{cU`W[U^]WmjfV\p`Rd`Vi_]YWcY\gV^Vj`^idsf_[ed\b[VVWjgp^b\]wW``idZabiafZbX\f`jKUf]ebeWmWYZUjl`]ScRRmZYVg``bhgX]aifVcdPg[hcqcVXbcgZ_^oaZh_^[h\]^^bfh]]WReXajh^YVraUb_V^]m]Z`\bX[hTh`a\gib_adb_dfl[^ae``_c^j_h]\cZZk_dia`cg_d[S_ib\]_nZ\T]Xfka[_^]`b]]aeOTjlYUba^gjfj[Dahib`fWh_Z[mWUd`le\^daV\VPqfdZ\f_WZe^alag_i[^c`k_g^awZgbjcd`a\dZ^N[^k`X]nh`ee^cdfbaPjad_[fdX^_Yjl[_qa`_`ka]VgZ]^r\qb\QDSSPNSL]DPJVJSII^LAFJNNARPAGVPN_PTQOSO_RTEmg}TO\KLNSiEE`VAQ\WOdExLSFCIOTGCXLH@DMIXKUMKSK_CYIVLQMe]PBNKS\PCLKvJDERLcTW\H[FHUL[HFAbLb?DlPCEQ\KKAXZDJ@cQDPS\QiGXTFPDAOJHXLWCQFMOJIGOPHEOGOOPT\[qJLLKId_HIOJW@JANHMPjvP?LXWNhAXNV\SHGUDlSkZiNMQATvU=FFLKJ_cMKWtFEIP@MU?KJBGF_PDQPJDLDZHwG?IPNjBY@L=OBD@JIFMCZm^QKJGSJHEDNeQH>KNAWPcJjEzGLSRBMCLKHK]^L@>LKrbGK}VR@GLSgzGVJLKeKHWXKDOOHRABlPFG>CsKBVMb>LZOCHFLL]PSU:D=ZK8MQCVU3OUXL0OfLJHQEIINWH>?N7dh=SMU:DW:SDQIILTOWODHOFcOTZYI`CAIIDCTNDFFP@IX]CXBFJ^QUFPCOAQNgRKT>XHUZC@@|IDJP=FH@`GI;Vd3WGHOF7U17XJ:SCVQHFFL;UGQUKJMCLTOPMKMLEXQFK>SWFOFKSPbFg]Kc=YC@>GHGE`G3^_FP@QEAMM\FH?YNfUEr;VK]HQDMHCAG^GPI8DUNELOBFn]B\KBFSWCNL_;GF?M7GPIGTRCRLVNCAK8C@[MHGRKWFW`BF;Q;a[JF=CWIEKOViW>>Q^<KSHXfJNJab^JJGJ@KIWBW>KOO]FLGRELZLVRCKWQUFJQ[CWHNV^KSFQTPJLEQBPYGnKKUU>ILCFIY?WC:K;OaZaD@VJA];:CTT.EL6K9RZiY7EFUXWDSBVUFWBBB^AXSVSFVH@ZEUQYACLW?RMFNIN@QBV5D`HbgHI>DM?LAO4TCKM]K9H?MjSZ3F/[BK@/9U7jb<7OEVYR=E9QRG?RRX[<`;M>MB:NJ`O7K3bPTNPiXISQ@-XFX:?PN;Y:NqHAIV;[PTQPUEO=RJ^ZGQGS=MR5?VCT.OTQHEc.AISiZK_X4GLGPXL=L_CHGICWEI=9<:SR;J>KPTGEmE+E]TfHSQ@6\EVPPKNOV`QPNBXGMJPUSBRXNJQihTHGLMD^HETfJF@LPAVC?ICLPDPGYKH@USMJ>[MhWQoO_CHINY[_HFEEPSW>ILHDV]RGOTF]OI@VXCHpJ\\aQP^VIHJGgTPNFRAHQNQICGERWEBKFx~U{W^TUDXPOSWPQ\IMDENPpW`X^HLLGQ@JDMG[F_G]EJXbTN_XMB^GBPJVLcBMiHKJSKZJDIMFORPJ@8NDLSRSUIdQ9PRWgCQ.O49EC\IJUP:VITPL;K=FEK=:UKKZLUpN>Q?UO?8N@D+BQ;QH,M-1L[`5GAP*?^+FT_8J1]:u:498C=BXGXROSO4YT>ZBDMYEb9O64AGh4]QBX5E8I8UDUAP7D8BJ@Z@cdFEPETKTNYZ:?]LJ^_R4OIR\YLD>[Z;SP^4iDQWIRJ>DOUNHUJLL^JRNgGs?VYX?FM_PtUK]ZRIO^]=MbJTNEX9dB[PF[ESO]CNMQEP/LELDTHG_Ia9Y@LCJIMLOJQMDVi?NFAUMZMVKUKG_GH:\d1S6[TFNGL[K\UCTOLVWEOBCGLIHUjBBSc@;ZCEWOJDfLDP6B``^OEFUM^\[cBb=F\KEAM=P[DNHKWF9SW=]lBAH9aWY_XTb^9OfffoN>c_KKIY{]qb9JF"[=I:KVH61b_JEXD_H7cPQ4=@32HG:eU]:HSBF-OL\\PEvMTK4XYn:@Ll;RPOW@3YJRYK\F>_T^K_cpZE?h3UCS=Tl&C4dVG]#qIaSRDIrTWm3Pk>AVFP;V:MYO?_2N@SY]YTFaXTS=bWU_II@LASPPlE[XQMHXU[AWY@]BL-Iaa,ZZShmCLW(^NqGKPMN*OOh;L&GlS?P/L`:ULfcA?jWXG@KTFH9>=EBR7FBJUG@jHH:EULCOOORIUDVCaMULC^UD:HTCW=SBR?C@:IVGFJY?MQFVLGJ>KCH8CF@EHFPMOXH@LEVT>TXF8EQZJKOLXOGKJYV^>Ahc>DDHGL8?IMEHXaKGQQ>AILDK?HH_AOL>=EHCDRPJAHC=NJFMXZFIDfIO~KUTCBTfUNSNe;LWXENL[baXdRYM^TPWQJU>bG_ZcR`i\AFZ_TQMKS5X>WDTMU[BOQAW5QSx7aR\RNT[JBKRVH\sH__zJ>bTAeSbHk]U^^FFYL@_V]ThZ\Y\MJJS`GFVSIiKE_JdLVxFJ_^b=TVkDYaUMjX`MPgdGOJkO^CWbe`FLYKDOKQK@KQUUR>ed>LKJBNA[=JnLX_MZgW\M`C[H>LCH[AULKUDGHcIPXZGH^iM][_Y>HFdPDV]YKO[G[Jj\UAEYMQFVRN`ARGGT[A:LSH]\JQJaN^?QTOkI[bPecUPRWPPWCGY?>EISHPaWTVA_P_nLYGcR]^MUbV[^OHgOAI=NFUJ]MSXWhXgpctM`LKh\\MV\PXNM_YMjLK^HIA@L5MIOHKMSMGVBDFFPOGLaQ?=JJQWCOTZaNXCGZIGADXGSG;TU_YEP:_6RY`IKSYJERJnFVIE@`FNE3MG?PHF=ZAJ5ALPTAFOGDBPUBk>EFcq@^8CBJEM]b=ULVSDWBC>lJ@Q^CU[MHG^RO0BBGATDIMJDE6QHMR3G<;P?>IGG?I*NSP.WNJFAX89ODWWD9QPVKY?PL?9]KHSPK9O99DE?@:UNMGESRV@ET8SJ\DMqMPGLODlA[Y?QS?YN4L9EOFCLI@ICEO>NF<;fAKO^JceSSJKdPPQEUXZMK5=F>\S8SMB1CE=EQ\gB=X@CE:QF+RNTZCHUJT7PVQMGU<7PNMEF:Nx;BOBRVTULSL]JZS;MF;\S76S1OKLQPAI3fsSGDYG7[^HjAKWAMH7QCHG];ROC:BsFWkcH>ZG?CNKHO@NBIKLPR@JITGFAS]]QEJU>\I^OS<8DH?=]RI?FLJPeN>>LbEIe>FCQNEKXKL@G[`Uo[GUUDE^3QL^K[RJG>UaEJRKKBYAQJ;IR8CSNH=J;UPPQOPWFJTB:ScD[[IHY\I:JPL_>CYKTGWFDH@RPKQOH]BSn[QFA]`]NGQNAJMf?gO\M:SPAUP?KVEDNOEUHCfNLCEQN^IHTROU`RIRMTnPJUII\JQHYMOTHXMVRzPSIRPJUhF[KLBcQ=SIQDQhQNP:DQKAKEMKNGVC]UNPOEJOY[]@TlQKWQO@fWLR^ONNUIOdRSDMHYS\LPLGPQJCGLI]JJOZVKRZPZ@\@LKTPOLWAOSUQZDaF[TQKJcKMS]YhP^JHOU=UIYHLJLOFPtyZHFOTUgcIFQeI^OOQLYGQ^NKGeUHLIHZPFUKPO@KJWMOOTHKI[PpaIHaQbESRBOFPGHZMHMGBRZIPLLERGHGRFUTIPmQZTUDRLQSQJC\NGEQ@PTGKMXELVLSRSL`QPSnLNVMHRQUIJQKYKQFKGrNL^VJXJJOVQOVYQRKQGeS_PAlQKVRTQZ`IOOOKMMUGBIMI[@_J?VVG>_OPWA`[TVE8Y=?QCR`U;LFcjMEfZLdA\HQ:L>SBBTUM:U`YTHEOUWLfEMCGFKUG;[LL6^J\BRv_NOVGPPQaTaLB?QRLQ3HD<]Z`N_IZDOCWhWYJSkF2cMLDXWKR;PNWRVL1PfRK]BP:Xc=QE@FWV_LIQMBG:BeWXQEO7QFGyMMCTFCSTEUUG.AKVXJcDYb:@PAJ5UJ]qGLJGf[X]HD_TW@?HX3j`C?uQV\RQJBOLGdBNH`LLYHTFnS[NLWLQU7JRELfG3FOcPIjSrOPC@Hb>XP{VPMDMQ7NO]H@M4YRF^ZD5AHJGJF[eVTIJUCOWOP[@?YcSK8QVVj]TCELuAXFX@\NVX_XOgPdbR=LKRTQJO]LYB3JUIUIDTL7cIUFO;OGR[:NI0IX]5ADOABCC9SO%_XW;jO=:K@1QMY\O99[HFFI@ONIQYDT7THOCaYf`HS8dIFWSG[MJFUC]Y,:iEF=W?UG>DpAW4O@_HWOMTPOG>6DQX\:EN.52l07WfN=B1YMgF:ArOhGAP_@O^:D-NVVimOFF2YGSG:UAPUYOV78ChS84X:BGFBNC^YQMU^JTQG?Y:\/9MSV\OP6HOPZ:G<8>^6=^KOC\4*9PkA;AE5OM7HDRVfKIF?:NFILOH@ICJHMIL2:UFKQ]LWCOKKEm?ISKI=`?BJEEDBQ^E;mUB=NGEIEPEHABTJTEBT[IAHUOPDNO@HFN?NJKT>GSEFERROB=ULCYQHJSKKIYJVLGL9KR`OVIDEMFPHF;UF?C>KFBL;ASERC<[ZPRUc1P_N=]ATTW8oa6JEAU6p\B[IFA9MfHO7G0]JZPQN8MLn^M?a>6eDPSJ[qKJX5WOO_JFGIOJi]RPIRB5Mhl@AFT]=VIe1/Q>QLJbO`QQ5aB8^I@Q?Y:POkT`@-G^SN3X?R8SU`C5is9a=3=A1FJ)O\MP`MA>CHJYKPE=7OGND+3??=CAMQOJKE=BCV]TO6HIVL-NH[MRU?F3RCZePBH]ND@GCBO9FC:XIOMOYIM<:F]FMY@ED3BUJNO/JB4OS?19LOCJ?JCWOTONDV@GSQFA8DOG4;]\TUEK=@\GfTEVBXD?KCOR9KbTRT^WGQOF?A>UGTKRC@AKHPGWORH=C9?PT\L9Y9FDNHYLG[aKGK:SAMIKQODMF:GN8IUBD=?>C=YC@HFOLQG@BG8PBAC?cK_:PMGvZFfYKIFBOb[HHCKAWt2EC]?PIMXE3FBJ=E;-@CI?FD@HLAFLCIOBCPULCU1RQW7O/;>SJTGH>Q9@DJO@G@9LADH\BB>K=Y=>9H:GRHXEQDRR?9H(HUME9BA<4@=AI?DCGMORGLW?Y?@H5C68\OGW>JJSO7BA?WS??M.DBNQICHKN7EKM>GRSRNJHF=@=D[MM^=RGTE>9>>MS?jKNNGKHLM?TCOQJ3G=KFOIP?<=>FE8i9_QA6DPV9TDQAWPHGCGeE.6WBPWENORG;ECBSRQASP7KKRM[7HR]FNIJOKL;EMKDA]AYOK>QIa@@DXNAI6\A]PFZYBN4CFV5BF_dMOGGA<\MNLE:JELS9E?l@>TF?E:IJHU_gNACGBG@A@;38K6XSW?NA;FJNMTCAMDUAKOKB>DDJFREMKKSSLB3J:ICHFTIJ:IK>E<@OZJ7JR5MSKWG]BP1M1=COH6@JC7H=AV4=\NNA@E2IB`2:QU7PIRWUCNQDBQOEFHC@;h?ENI8HDHFDCASZ;4PGKOSZA44DCJE<>VGFDK@X:53=>LM@TM8MPL;[6RS?NBCRBMQIJBJQIqM?mGGJNPSPSC^COHWEWZSBIR`F:flLZheHKSQVFHMYmHCxHMLeTHKrHM_d]SO^OTXPJM[ZeJLWIEIiPHETFHVQXES@GD:WDaSMSJ`TSBFQ?BRRPpJTLZNMP>gONCMT[SK]JHAQNLIWBTQXW?WGTH]ugCLIFODM\IROeG[TFMTR?GHRaCFNMIG=SKNRRAVcWSTNT\TSaDO\XHMV\EAXYJHI?MLDQUQKc]KGHTM[nkGJJPSXW[XXXCKVJGZGMKJGQXDFRI[LICOeqMSTGO[JFKNL]CTGK]ORHJIHk[AXIYJFTOQQhrHN^ZVaOQBJrUIBU\LUaPFFD?OGLHFZORSVOSKW[OaTAOHGHQI[CE]LRSISMR>RaUQPC?MEHCA???ILFGOEJID@F?>UEEDP>B>;E?A>5=OIE7C@IAG8DMHELK?8FGBAN?@?L?E@7E;F@OBR?DJ>;G=A@JGE:;GGCCC>=?9:B;6D=J@I9G=JHQ=4FBIJ>DCB:N6<7P>>@>L1<8GGHMMHOLF?D9=AL7A6G@IMHF:>JBCEG?JJDJC?OG9F;QKF>=FAD@AALIFAGECCFFEA?D@?DBQD8?7K8>?F@BRBH@NGMHLCD:1AFO@M@H@>IKACF@8F=D?N@@<6C7>@B?DI2GMz=FCdaGL\[RLFCEETV@NFCHRaR@;UabH]DBWYB>SUD\=EQSVOTHf[YNTPURoQ@\I;Z^DGQOKR:GBAVEVZXONOQQ??LDKIVDP?NYHcUGd=MHFBj5>`X3KPJAV;IP8@UWKM@]IPWM]FUKBSTE=PDJPAKIJIEZTGeINiENSIFXG@;>bYFLLUM7@FU`PIIL]CNNHYFFEOQpKNKGJ\VRJCMKOHKQHQSHNdC[;PDTNYFE=UJXIZJS@YQTaFRYPBDP6APDHLTFGXFJqHQ^CWHRLK;UFIL[FGOMP:@VOVRQECIVNPYI9L7PAGQPRSPI:h\:^]LH=FJdIHa;QFLPYJ?=LCDSEK:_QOQOJMFGYDMI>R5F9B\LMXRDM\J?PKNG]UWOKM4II[BC[/QO7\?NWLLG@HEUGE>9YePCRHB^GB5UMMTIKBCLXV@HDA.=P_3@;C9NY05GU@RMM?UINEVHEJ>T9C@?ODAWI4FRLJlFM;IdUA>E:@MHD=I]KG?GAH>ATYT@;D=T5EUGwJ[JMFCPQ=GEERMU@7DQB8VGQ>e>AT9mcNSKNAeLQHmBgJA6GU?VEPJGEkINMGG2EN3IDBIQEGVSEGjaOLi2JPQB@5GPtCGCP=MENGV5PBA*,hSR-NRR;>?DBGCCXCFi8TcVAPJ8^TIJHRSMJR;RDNKDQP9Se^D>TSI_Uc:VY:FSDMNBR2MRHNaRJESTKGCEVTNUHaJIJ]G`JGHY;CT>UJHaVDUVUFDUPTPECCUDGRNmJZJRCQYSNDRddFISDHMU;YR?QZD_OOUXRTUNHHKOHKWcANXIJOGBKAI\NKHH6HKPFTSSPOJNPMiWK[N:.\I]A\N]PhAeAw8+J>HQRZfQDc;t6XC^YNfNWb=X]cQn?c/\jLW]bfAam`?QUG_ZWWUO?qV[i^Zip^ULPV~dUHT/?C8ObFaEH;VNf`;qNWFQXT?`?Q`=IYgRD_L^8vao8}_TJZaMfQy[>{]icR}NJ?*dN^YUY@]OujOLVGN>UTM@@EP`L\NMPOGSDUXTDGWFKQM>7NCFMOELDhUNTO@`MPGGQVLLPMJ=[Y98bcG\FHFC@>`GK\OGO:PJ]:GKRGW=KRT?IInDUSPd?[HAE7JLMFO=NZYIKZQHGxLSGMCGJOEM?>?IpsAYK@EETKJDFAOJFWOPQ\DTN]ERFJIMLMOGAFVAL?QUVJ]DI`@FZ7iZ`CDKL:MQZE?JJBEY;GUVSNTY@WLP;[SGRC9BONhPSGEE?MHM?=;BM:LDASII7PCMG9FLA=YSWD[:?[NIIUHP;QPFOKd-OJLOGB;E?IDH@ILKB=8;C=SIGELR>DJIAHSIKH:Q_QUAAJBMIDBDOa<6IRJL>DBHBMJGOgOL?AOS\JT@InKFJNKE;DH=Jc9?UDWEFON2;NE7I0?HHXNRWDHR6L@ZPEBMECT@>P<8LDI]I>>NaOUKOMV=:LDNGHKOJ9CEG;`GLHPDFMIF:T:H@AIVWGVSB?1=\LEGCSR@9POQJIBUN=RDkDEMT?KGEN76HEA>T@JVLKSWRYV<\CUDIE<7[H5C9F@G>V:72MTWCO9XF=U`RTOHAFT56LT9L`Q@ROQDPTXDW:;DW;dVDE:P>MHKP>J1LDOFJWOCFV;A;N=V[BUHHSMFPBDES[GOG8OBJBAEM>D8CWUKTAUAOMWRAOQYYBLXYG=EdG?MCLDTFJWJ8N;=QSWMNGNBLB>IZIa^ARc[SaM^`UY]J^_ioMKS[YRR]Yg`PV_T_W`OkgLZ[DCZneX]]WL\io]bdhYWKegZZWXX^i]`l[RXkfZcd`YTpffRkXcKq`aLcVbPRnfOVqWCaZZXZU_DTd^[RTTVc[Q\[RkcfT_Y\VePXV^{hS`CElWWIYYdcD_MfH`n\UP`e[XbadKWZe\R[hkcljFGQc[]X\dXYYR^VW`OSUTVccTdNgZ^am]YYOnskgejQU]kWNLa[NUtYYkMRbaVKKkdhWO\RKAIOUibdZZP]\b^`K]rLYPY^LhMWEieSUejhgcj_[^\Ra`gUBjUO]QOlVK^dfKYgLSY]b\lYS[X\^VWgi[TX^g[^Dhecg\L\ZUdQJXiWXS[SNQU]NNUK?WdTHYkJUZxMY@-OMA`LWHOY:j9WIWUURXCIS>FNH=CVdX`QF;NMDAHESQEWOP^MYMILNKLH:WcNRecINI`]KC=@KKE>[L=HSWO[N=MWO>FTLTGNgJTIBW`_I=ZFQ>@L@PNCNKNaiD>GTNOMMWg@1?KY]6VVNNVYD49Q;OYNLUTWE\9CIQM\`FLQ:U4TA:V_IPSIIJSQJGAAYR_JNFW;JRGbJ`;`L\CBDJhXx:;Ffl=O=BKEUVAYRBGOL]/WJNSJFSNNFIOB=PP5\?Tt:\>I>RH=CEFC9]XICCLBMKLCABLGWHK?[MTLNQU29JRZbE:QSMR^J__IYBIGF=X@T\PINKLGGQ1WNAU^^BDAV3GEN`g[EJ@JQ@D<ADPSWZY,S]BeNNH`PE^OfEYEQUH8kNIG9QJRNQKQ4>7FDF@G`NIIND7Dap]X[\NBBWU`D<:b6U\>@T>HRM>^aEX4OM>I4FLEKHCP6FNG@VVB^Js:UHjMdLM2SLE:^GGKIYJc4YSY@;8HLNJP_TFBQNJ?3F@M>CNTH1mQPTAAZbCH=FHLMGB7I>f@JHBEME?AH[CDDCNW7OFJfRKNG=iEB;RLI@ATBTNDP>XHAIGLW90RRCJKSP\8BECXk:KQ?QOCIFQHXBGHEIJME>iEGNQKVOAILG[W\:KNHKJh:IQG=NKQVIFCMKGP5T+[I6[E?WJ;]BQRS2?4J=I[O[TlFK\IOHpKRH@?[R8AJQEHLJO;PI>EVCQ8NBNHONSIRFEDNYGF_S>BIQBFXPELOUKI?w8WPRRD:NCZHDG6FNQbHPTFRK>fEILdHLQHIFOTE;>^QMGS\LHUKHHHYZBI>RKBVe?DJLLGJQS`?aLWNRKHQNNROMMAFHQM>\HRVTU>?QuK=JQIHKOZDCEEAZ[WZSNP?JBQKGx>:RPQIOREGAPJUROVXCGQEMWTIMII^B]@HPMnP@PPF@N[LMVF?RY[HLD?MTFHF_ZE^@8N[_<[PTNNBIbQJFHVE?B?CVNVEFJL?AUKPIQDELREVAGC[PWH=;DCOkX]AEDH-KBZUHTMIJC]IPMYAVDI?VVaGJKFMPDMXA=7NP4BDHDDJ;?LCPOODCE6H=BGSCAD5GCKPN?86ODABFA@IGH?BQGKR?[@F>FJGF=IGFDDMDQOL@K;Q@EBQCERB:HA;Y61TBEFDBH;LIDH=FEPFDPHEJG:KAG?GBJEJQ>E@Q>B;@?:BJF<@NH9EL?E=P7\KFE7ON@E9DKBC;CFQ448EHDHBK9B9GKD9MCD8IKIEJ=@G:3>R?N>FIH>F9GFR:BK@DD@8@QFJAE@OBKAMGEIBNFMP?;CBEK8A@88HR::O?@KGJT7HDKLM?KMMMA@;==EO?EOD?CGKDI8EG;9G:EEA>EZQNFDGGDUDBNHF<>P@?C@9@:_SDG?FCBKaTLUFN]A:?KOyVQELA<@F6AXDEYGL]J7ZF7;AJD@OIXCYHZ>`PHHCJRNXHRFQNQRdZPI\q_UOEFHJFMR7RLBBe\S9MIKIOJIPKERDAOAUW>C=QHN`TN=CLCGFS7:E?ON@NWV@^LdYBBMNXMI9UFQUAMXHQKG@cCLHXASMDJCB:TMBA:IKPiXHGT\FL=F@:Y=IYDV9K4D?oILDOLIFOVLNRPEPHG\NICbJGE8<]W`:MGPH4N]SLTGpYH8DGOVLEYS7LWDHdCOgbALHEMBZR7KFFJBU<MN7NSqMI6U1=D8HJN.FD8QGSHHOAETT\bKK5aE5XeGSXU4TdDLLJMaXM7VB?:pWN_MEOHFHG]eLQEK;@P[_M]PFGF@LGA3iSWeAS;QOIIbUEUPLZO@B4E?C5L>M=KGR^9`UT]aLC:MFH`I[OFbT1GPZ;AZ8I@AB3KK@TLQkQ?OKLHRSCOIHNHBeFEHJM0??IZKLFEHOTV7LMD^ILOKRIAEDTJNfG?aCW8CND^>QJSUIb:QS]DJB:DGFEO6_JJBML`KQH?BHJuV@?\?PDSHPUHI=IJ]BWSBTAM8JLHULEK[O::?@E9NA]NAV4R@HJ@;N?JGKCZD@NJ=GRAD@GXJGJEQN>GOQTOWDXIPPBMSS@EFiNEK6BTZBP>[MDNRHGMBJI]VL@R:=;G;1dLVAS>MCS6JK^GQ@GFHC;FIUFN@I:ETYZIMJXYLA;DX?7MOQCG@QIIJSGTLXIER>ROEVM:gOGKTAIRJ9ARTFLKPMK_X2ZDUSPO=STYAK]FHBL[EXA?>O\JEIIJHV=YH6WAMTCLBB=RF:IH6MWIMC>@LRM=JUWQXEU:YA@XDIX>THPIU=KKVF6IDP;6[LJCRVaPDMKX>T0POD;RY,RM9]@HQ>DTD;;N7@:C[>ZCSICHF.8;ARcX3NYKT`X?PM@JC>L?PIKNaR:C8SUBF@=AUCPEHTR7BKBU0?@LV\QU[W1IONAOENXDk[gS9S)8`F3>M:ETDLNGUBGJQKcPID\SJ2K>/NSCB:D:O/Y@]@OJBO?FNJS>KW[?HK@BXD?bIH=FPRAIRWaD^J?CKBPOJNIHFHnOVW9D[JNBJ6JEU6JhDGDQZQKT7T0KEIDVHI@;H]TQN:=3OM[SJH3bF@ISOJTAcNDL7l,>MO^0fREpFRHADFJFH@9>KY>JFHMCOJZB@X9JOHETM@IQJ;J@PN@Xb?IBL6E9dP8OH\T7UISF6.@MC>WF66LGOWRIWHISELm]@Ia_JL^ILPUMQVHG]FCiMP`PI[KRFNEIMLP[ETK[GJGPNHP>d`tXBf[ZEPRSPNaNAVICNBcrLKIJNMGFIZOCLNUHLKPF^KbaOSRJILP\A^ILNHUNBPMQQB]lC>RLT?LMULTYAJGJBSIP_dgVIPA[EEOHMg`RLZ\MYDHKFD`E0PNgDCO[TpPHDAQSIb;LC\OiOGMGSFTOOUeMJl]NkPCBIZUROERIk|P^^T>ISY`YJCYXWNWOSJ3_PPUHPSgQdVZYSeCPF`KXHUQmGA@WI5YOO:]RJ^Y?PQQIRP>qKJM;:OVQaZD[VK`ZTD?_@ZeGlhOHJa^PJCVFHUJHHU@S`MWShKDS=dZJDFINPGB.FYQ{>A=LNHFE5Y>MBG:OUYM;JR>?API=36DH?ED?B@OK>'>K^f66W7GE;4;2+UXEUNLC>H9>DS@@MKAMGNETTHG@L^6B9JFKB=DoPC=A9K_6P=cIYH3NDGS2?BIGHJX?FD?YU>BEA<'IUBF@DJ8>PPOLK:9GXPVG??BF@@9P?[E17FGEM3C[H_C>NBF<;KNcE:F@ZTE_IG?FJBFh.1B=JEYHYNbbKSM^>]WIZDZvDYBEaL?o{R8RaEXTCW][SfC_HjjHMaR]VRCKLmL]eIW^SUWZLMNR@zaP[el_VV\MT^M^]HZoI|DdsvK]WA[elV`ZfeaGUiRdQIjIERHMI]`tEYJPMlXDQ6J>KEJOe^UQy5kd>GLKJGiAYMPX:lIoR`PQV]ZGq<\I\@l`kL_RUqJbJrV`UOZ'MP`GLZ]>LHFuORTdAVTz\K>dOpb^\GWQEb8T\FPe]VOTQ``QFK[MFISc\@RXNKUpef:gU]GGA?Wq2GbBMMBQ[VCGF?=?R`?XZRaOJNFUTS>OGh@OZTQTNW[M@X>?JkN7lCFZNG:R>GOZGcZRLO_FM`VYIHRU]:QTX@L`Ph:\GOm\_UQWYBUJ?DIMAZJP=ATUWIQcEKIQ__ZZScDW\SE?UVOGBDJ?OTJ:[/CHuV=ABF@QNN[RKKVJOPEV?IR_Y@D@kHG=fSW>L7IHPFeDNRU]ASMZO8IMNPC8S[QDRTJMdLZG]KpLIL?EWSVHLOJSVeQGVV:ZIK\WbDZ?NfIA>hYRcbBB;@KMVbMVuJJJA[Y]bZCFKOa0SLDKWC^Q;NII>OHD@H0s:>AJRB^JIADEN67GVRC@D:Q;AMOR\A8PDM::ITOA8OJFBF6?LHCG99MIFGCHG=@:KDXQ854LD\=C?FM@?D;O>CKl=WCH8UEHNDQ<9P:BIFFA@RQ4<>ID;ITLRRI=NOAQITIN?WMEY=QI==DCK8>4CCC\BKG96L=XEYE?R:YDJ?GC^FQH5P;IGJANM=>AE7N8ROM_BJFEVMM*HURIJP;P\IE@OIWMLRJLOJ;mRQJM]OPPfZgL\JCHNJR@]UHDX]EIPDHNOQTeAI;:DIFBITXRZH\BNKW\OlPWOFNOPBQEEQU[LKLROMYe]M\XGKLRGO;NMOWBQMLGPAH\KKRKPU]MLQKaOPYNOOFQBH7cPHB\MVIAOOOH^M`IQGBMSRSpLKTLNqQJFNNAKec@TRYNIHQDMFRZMGB[^L@MFGVS?rPN:bUDQVENILHPE]GWDQRK[@>LHMgMI^JEHH[AVUU@PFQLHEQoOSPRKIWPIGUDJAHMOoIVEHPlKPMNANLGOTEQUULTKBFLK9PEDLLKEUdG?EJSI@TMOOmJIWE;LLMLSVQMPUDLH{MXMVUMiPOIOUKHlKOM[TMNDLLLAJ_LDUVM@9Z=>?G`KOaYCK3BG=TG]NMDVDIXP8I@SKQ@GD7J=]GO>=D=cIdKT;KMH=Gb@AD=Y3CKR;K[7G5HPkSCDJV?N[W<==MO=\ySEOJFRQI;9J2YOCK9H=HM;@YW?APRlXB9GB;_FB[DDC`C?RQHDF@fGa:DB>EVZJQLL[H9RXH]ZCX3BYV6RDWIRZI9MSL[BJbIBTH6T`GKOL[GGKXJEAKIC:PH?<>LQ:6@HL?W.8E-[=FHQI?MJCDeQ7U@DC3ID=TITY;DXDFX@UJ;C7AKSEK`BBKC8?U>lF=RbXG=MT>5HMjRIKSGM=SFFRHF=XN4NGLI68P[NTWEHON2@LO~LGJYYHNKKLWDSZJIZIYUaEOMlaWSJKJCUH`O[PETai^Oa[sPaPK_PNWq6@IJVAPQPHNDNTIL`FIOaNNUJFKNWJORUPU\JbJWTVGO[G>VOKQLGJK[[WE`LNGJIALTJJFFR_HLBdKt@cI_QVHK_MDKG@LD[FFMH`Z9GDVLX\ibQRLH[H7M:XPTE<3;@IOS>JJuJaMMaNNRMMI`GJGJHJFB?JCI]ZFQDLIPJKTC8XbOPHQQ9LPNQLGSPJHTJGVRFL@PSAJWW8dDLZEWCM9F`LKFDE:GTJMGWIB=C]IGUUgCDFGC_IZHP7TI_LJTHIAPAKLO]FQ7EILfIH^FL_EH>LKV?C1AKJGXUUDHPgMQLTMQ?HCWO=INUGQIGEBOLRXHMI=WK@G9MJLQITVO`[EEKHLLMNMFFCHVBBP>URCPTF9AVAKH\XDPKPOCSF=PNK8DR>RKpQE>CNKQHbNF[V^]:TDHGP:AKEKKNP@QDoNA@}PCV@MKHE?EKfKJKJBFLBPPIB8DYZHCBTV.6CHMZ8NRLQRKLWUJKTCaHHAMG_^g>>[NX@HPYER:NNHN=EO9OOQQeMJURJFMNDJG_NQ\H?JMIn\LLLONDC^MNOR\VgLNJL\MJ:@KfUAXMk8SeEHNP@8NPEGCGQTQTIFGDQABTIVGeOZWKGsOLHN=MRSFNRETDSB_MAHPXTD?LPGLmISDAEN?RUJBOYQJXUVVTDDVa?;LEXM@R]U@524DRDEC`IS?=D1PD@WHD<:CQDZRgX\GTEXJPC],aKEMGGCIFD4O3SZVAY\AABJRACPG8MFT6>?NESXIKa@DX>KNG;O6CDKND==THfJF@TTG;D7HO\L=KQGDAHRJ;RCV??585NU[CcFA8D[F<6?NG\YRCKBCF=BMVeHGI9D?MFFG8S^QVeC14Q;HNQXMQ46\V>JmJP`WE[Q4FJORWRA:@<\CHLmWMFN6OWBIOINIBDNZCN1@>E=F1SGWHA?M5>eKV2LMDLE[KDAPQGE=CGJ]HbLECARJH>>LLIAFKXIHQ^WSJDTBbcWUeQAMUU90;I7SCI7E;1@A7[0VHFQ>TIL7VFTQMA8BQN>KEE>;_DKJWL9Z\HC7GJVH<[FF_[OAQE>9U5ZE<:VL?>OLYD6EWDF\7DBEYE]?:HTZZS1JUVNL7CP@YH4CMGVOChaSJDT>;OGDP;NO;TQ:POOL:>T>@G]H0KA2YVLJTMFCLHPFNRBFL;D;KT;=VAC=@Y?CGVFKOBaFG>>IL;NHXRVJFA9OH>OY2JOP:Z@WLKE[GMJITBG;_@MLL9EWfJJ6K[GNHFPHLVIH9D5mWHMCO;EI5`>L7GC[I:IJJJC@FGQDbJaLDJIHF=BEH_=B>SQGHGJVQMK>Q@S\AA@@MI]GQNUPfKH;AUK@oXOFODGKZ>8BNSR?OBJ>N_PL;=@eT[PN;H^gF?JKLEPJ[@AFAWJNDOOSl8ACVK@WGAN`EGU?EB3HWTU]GJXKDgHRXTC_IISBPAQ<:@TFMFQAM]QPa<@VNAC8EcU4@DMTP8APURISCIQNUGRGaNML>KFPLD5J@IKTKBBM1LMPGFP=@VQCOJFGABICDFVRTPP6SX_DUO>HG?OG1?KMXIFDG9B@EIA@5JEBGDHHPND>KDIWI@G>OKNKD@HAQN6KK18/;D@EOBFODPE@9HJBGEF8@LGGPMDQI>HGH@=;KM?HF<HC=<H>EIGKGA?@JTI?E;I:A@9AEBM:8H8FGISL8A8FJ>C9G@I0CF=CDHK>CGHE9OCDAEG8=@AC?EIJBLFEG@J??ACGG7AEHCCITLDC>;8N@=LHJII=FDC0MGF?IGKKB9ICKAGHDSLJ;;SPMFCG>GJ?EDKC;CG:TKB@A/NDRB>I8I@OKFKDCEG@9>CEJDI>JCDAECMHBCLHFB>B?MQ>MAU>bTIUM>>II9b9JU@9MGHD]IWIDBD:QH_K,DU>;]DOLEDPMIPDGCJJN=SHTQ<]W@JZDGL@CRM>LFPKVl4TRBZA?U8:BTY1EBPBb<RD[N:Q9ALEQH\A=EPE:cQGRReNV?@NIPRZaBFIYHJLb@HL:=GFPFRDXGDS8QUW9FPDH1NAH/>8@M>]HK9X7ODD;aD7?PI?HY>TM>`gSWMYNIQKBP]SB@G@RV6RuZR[SMIS\PX[[afTKMJTN[OKUFUPUHePOHIRF@GNJkU\CTAQV\WGKRCPMFBX^]mNPVQBOADTb;KRRUZKIWW_ZMV=DAM\VSQRJQQDPPPPYE_TU\_THJJR]JLOSY\_aUMGILRWLNRXZHXDLZFXMgFL\SBZXMUUEIZKLOIA@QLY_O]GfGNaVaJo^YUPVNDYHJRY@SF_ESWLWBKWFEONTYJW\FLLcF]=oYRVEH\aGTNVYKQOGRQVAGTI@DqiXZVELU^uLHFVEyK]ZTWNOKKdAIDOaVPLC<;F[YTLJH>MLLBLK]VBU?FDP8?]K=PYA5TL@BFVMOMI>]OJMM?]LIND[H@KFG@HE=OWLOLA=EDSHk4EYHYUD2j]?FSdCPGF9E1VEJa=E8XRGLQHTHZCOHN;CESOOAt?ZMWNN5;]=PLCOI=?U^>OcZ_8DKdCKCKKLE=NIFQWLAYI]@WZYHK`cdCPLN>Q\>@RHFB:`]MGFKFKZNO@S[[PP\LQR8dKsH]KOJJYlFHPp>EIEP:\NI;?GNdBXL;HdPHkNN^g7BZPXXFA^4XQg8=P6WQ[BV??/UUZ@M]LJS7>AZMNWOY=OAJWILF?7G::5M_MRO=TVV8J4NBEV5CQ;HA>HQU5c;Z;GTSKBFBLQF;]H6A4U:EHJCEE:SU&D=BFG]WTBYG7PR>=XJJIOKGB5CMM>BAFM3mFIL95I8NO7HFDL5TDCB=0MWCVKPKKFN=9`JPN?:CLMKGGJAODMHHI=>S5NSV@I@GMKrB?(JGJ=8H>NJNEACVEIAJ;IAI>8F6O==SEKNB;PD_RCMKGKI=E7TG@H:I[NCPN=@\JFCA9\X\[Xc:J9H8=OQJ=JDL7WFDLU1H0BD@_WLMFJ[CH766NF;;@02;BXEQ;5CG>MHAMEQ_GBGDECHRAMGHPSR>R@HCGD.5I]NGC8M>MIGM[CCEK=98[HFH4H6Bi\9H@I.WHGEQ=CLOMBbJLKA;SAPIALDWHIi?CBMB[SUVKPT\>:LXUAJBF2TQBM9GNOKCE]^NRwW>U>HKIIMRTAFQL>KRXHA>NMGWVQBVUOLWUGAB;bEE^AK7FLQPcHNXRTZH=C5K9R7IcWQFPEH?GGXDOZLBTSR2Z8q?YED?Z@RI=;TE>`J_dSOPJDB=TFbK8?LJJkBATGUHQCU@Hc>BL?=MML@RBJNHVTeJLFXQNbBJQL?EXLMZGFBRGGJFK8SFTJHEDM<@?FO]LU7GJNAIOKFKJNW^`LRUMEIWULLEIZCHFT@a>\GXHK@MBHDPEOBWKEFQONFTAFTKMQaERI?>KIPEFITEUcXJFMELKZJDSNZMNMEFH[JRVSNR9T9DR2AL;>F6DD?IQDRU?9=/PE858@LMH6CGD@D?A?D<@DJ;ED@BFOBEACAEFBFPGG?D?:KJHH<@JB:>>BA>C:8VM@D=6NE?I=BSW8FHJ?CK;@:D>EMCF@GJC6_?CACJI?:P3WB7IABD?HCHLF;B99MB?;RO=;UF5OHR0=IH@COP?E\-8H7J>F:CKEP>LG@L8@FM>=VCJFJEGCECAAFD@ACFLCIDCPK8>;]8?DA=4?FJA:?;@<@;<9?D4GH?CNKK?1E4C@[JE28?H`lQe^?GPVU?PIDH62`^dCJT;FOI_LFDGHD==JMCD@;>vG=@a7LZRQQFGP:]M^9IVZ5@HFN`IFX7IJZNH\XKWD>PWANPGZBBRA>JdEUJDO\FCHbHIFGIWHJP;@@>\@JLEJK?BgdhxpiaheWob_ufvGN{\jofgn`jiXriXhak{jk[vnnpvmqyZbs^ffqjjmeUfnev]if\`jf]b}h^`avarqgk^kd_pffmsdivslojiihl\mu`jeaXajopmVot[]fyczsmdclmpge_`g_Yu}y`ksVpkh__holsg`iqbgdghovoi_{[pl{kkuWoYgksdrSilpgYu}[[Rqdfv}hqpacj`ijWkfhjbiqz_nlkdu^oxgl`dpiqdji\_jdcUhbjxkoX~_le]f^wdm\nka_emoobdbb|sbuaaa^bcnUmowf\juh`\h`bfU^zecah}fbnd\vcvvvnsaajmtbzfbshpjpfbiudkethu`ljP__hh`gb}eSt_qo`pnfiq\{pvtqkwhdF/[1a@KTdGICBX9FHCL>_?5IQ,;IJ1AeHY]PCQQ=;`JHH=M;hWCg^mYMGT@KCEkY3\PLPUM\8G@=;9SIA0``TH_HPRDNW?ZADINT]ISOTCFP^D6sFXYESIPUU:QEB8EOQHCim\ITFHZ>SLE5bPSHLDu^RRTUF\bZHEI6KBJWMFR0\g\:TEB-45VFA?IMI0C;TVOZAJZG]F=QG?X[H<<;II[I7d=S.T\SNBSIVb55[R0JNZEF_R2YZ/IUE?EM>>VS]ZCICISFRRBl<\=KMKUNTTTMGN:6667PIUFLISCC\_+FN@3QNj?WK96RNc:ISQ)SGED@AHPHH@JBQ?FCFEENRIlNE=JF?IM<5HXNDJGJB;GD?CQ@FU>LWAOb82I8COIQ>IfYI>N@OGR>LOO8\FKKB?TAAEIILVG?:e@OI<2K;aCI5PRFRE\UU9LWRP9NVSbHIS@HC@0:4JVE;LRKJJQMDNN@K@POPNI@X??NFLg[\euWb9[\J8OJCCPmLCBR;_:LF5LXMFUNN8NC^IbQ75I=F`?IbIIBL?>V8LHVHDaON^X7UFJDLE\WUEVRNHIUZlQQMi98aFUMNIPx:HV[QJPWVDSBNTS,`>FBG^SIVO;Yh\C>7WIRaMNESHOTEVBHKNN8JO^T7<8jJ/@MXNMRqSMGxCXYN@EKrSaBWLX.NC`OU>UAF6LTOaNP4T=4:Z[UH<>eV@RL4NNeFNJ:HNWS[?gW0^OLL?Ka1IG`KOPJGSJ>GTTRTXJUFN?^JcVIQRKMGTHF[WGFHlPGUHDNzR?U2aNLFQ=]IAVI?KXC,GRYZWF3J]S9WGFFQIRLLMLHFMXBQXNPFWXJXaFFAX>OJCGTaWGBP:C?QCIUKJZ8HFBPCBFBRMKALLDKCDDDP9OLLOJPJGQUJ=OKQRM_R^MCILKDLNLIBKSfIJRBJH@IKBEQO8DKKKFZ_>6RD?ROoEMCDRAMQ\DOSCQ\ZCOQJGEALdPIL@RLOB7;GI>WTQHDaQrYVCUNPPDGIBFMHkMPK@DFQJJ@\NADIFGH@PZCOdNHRXLYQEV_LJ]C;>O6VQZIG>JO?A^BN=OHFF@YTB[?PIIJGD`CQSAK/?>i?8bMG:K=/F>CCCAN?L?NBLOGMU?Tb?(LKLGA=;ge68V9KMFHZFM=T9IVEW>dfF9EBAO=;zI9AOEfF:OGEZ=DGBBNBEJFaGOGF@hA,]fBDSRLDM[E7[;=PQW*?CVaKMu[R?=GBACYDLIJ8FP@>N?=OOT1UL:=JJOUONP9QdIHFB??RBJIK26:TBPM@jGW0\GDb.>TROJGL?LGZBRV7<=N>D3I8S9JJ;cE3>4M@=TA[,DJ?INElQ6R8?C^TMGS_PFKKf?UMgQJCKrXQFKANWRf^E_S:UWGhjTlDRMg_iFQDVbS@_wULcQYFWO]UJEn<\GKO;JMQKrnLTKFIe\LItVYTVJeTWUW?ENKEQFSMoTUQIQXRRIgHJxVPNJNR[KGaXPZBJZFHBHV^ZFKoXBO[EDEUSW\?]SY[NKKJFQMLPUBRSZMHHZNMJOSYVRWGlIW]LLKN;WYUTbQ\kKPVO[AMSQQAZMTRZ]KNZoVPRICUIMR`[^XV?KOPGVJaRDaP>L@JHM@BI@eF>LOAB\I4PCBXI:FIFFR6@N3C2OVPBDJB@LQUBFK@SQCNHSD8FITP>Gv]?MAT?RN=:XXGB:=UgTJ@NQKXC[S>6fC:XLMHY2AQNe?QEWXMBBOZZFXX>Q8\HJ[C\IMC>D:WMAPALFS^OBAG@L=9@RO9OCFCAXOPKQRBPEQ>TIP@Y89PKZaA<9ASYPFE3DMN=NNEAC?MI^HRFS>THMQXDOQG=IRHEJ)2Z?C]cJII]BRHPH9??R=ZFLD7KVCSDIK;EQYYPP:BDVPLVTMFG<@UMTHJJvSMPZ]PXGQRXHDP>NTK4@GCWUQRBMKLABK;MMO7EZP?RFUJYMGPYNSVOPG^7N>FD:CH@VCBK44EDJLCWAGTG=H8AFCSGDENIBBKOHGQDADK:>FKC7?PBBK@FHEEQRPA<>DMH==R>PAEICBFD:H>M}BECSLFJCDK=NPCH7V>H@FJQLMKI;W?==AGRK=M@U?TSQH9BEMEB:DPKRGHCFPXMPGBLCBZBBE;EBKCOBBAJENC?TBB\P8sMDBI@GI:DB6IFFAEMK>JI7D:HVLA>:N>JDHIM6G@QV@I>>HHN>LVX:LGGBDC?SD>JK?CLUeVNFEVIBS^OOKTmA]H^_[dbQHJKFIS@JOKDNXZKBKH_SVEbXM<@]NMgWKGDKW`LAZ?NWXUBNCRJOsIEDhO=XBO[ON`BHR@B8F}YURGLRAJXLYQN_ST[K]TC^IGSOP\mTPG_QFROMpQO^ZKY\HU[TXBWZTMKLOP@MKbHB3CF@3BLN\WJBL;LR5IM@w?@RNOQ=cM8LU:`@MIUGI]OSQOMABU>qS=VN:G5>HGPWIYONFLSUUCEJCBBFEGYFTHLX9MRQAM1V=PJRLINX;HHGMCP5GE4DbT.GDV:J8Q?T:LWH;?LHE5KI1UE>FTFO>sNFKJC;UXLH?B8RQVC:Pay@XQHIF@JEOQIG_5GKPORFPG@GCNNJTMNJ37CGKS?U_ed>\M?eBT^6Wf=a4Y?LB8TL^J@Cc^LOV?OR=;Id\DAKLXK[NSDV`jiISKWJRTV=MYVYXA]]UiBWFCFVZSGJT@HTKBJMN>ON:UAlGbbB^F36s@bM_BGL_/FN9I*?tHKIOJm[8JZKA7QWye?]^UTeiINV^CN\KROOlPB=RBXREJc:ArlZ]ZYKZPWyS@P?XT4QD]RW`@TOZ[Q^KiCDA@ONC=FSNNGJXZG=PZRJ=LQ:B8BI;l.\EFWF@AVJOU<<@LNR=]PSHHNFJLG=EVX@_>e>d?4H=L3NQIDO9JQ>SHqX9JEO:?IB;BEPEE=JDIEZLTIHHGIDAGAM@YCLM?GUMGEQSnO^mXZJZpdQjWVSQPZZ``beQ?au}e[_VikYwacTSNXZWOT_~LRNSUlRZdZmjUQ\a^[lNan\`|traRsT\]C]dWRGCSJ\plkOLUZb`SxlTjXNaSIo[UCdI`XhGn`_oXj_WMVbJeJT[V]JQegi[`_iViWW[XW]QKSY]YGNDhT^icE^`UZ]IxUsWQg`g`0eOYUTWP^^SJ[rg]iT_Va\qfYdOKPuQj`U_RfPRQUWRjUaZ}pONguwX@?KAKF6KHD?7D6:RDCOI\HB9CH9EKH@FCJYDQB@DLIFMGN]F9:>8U:C@DNJ-?KRMC7:CH

BIKP9PS@6CC\A3MW2MCHDF>C<<:@T7G5BEJN=L@UG[LL=O;E8UCZQiT=DTLEQMEN@ILCBTDFFJMLIEAZG@Y;>A;LBKMREE?8JX6L>NB>6FEK;TKG??M=;L7XI@I:HM=LDKN7RGS?@C?SNEHGFCBNMI_MIBJL7A@DCBUQ6Q8AGNIVI57H=KWGGEH:<@DIP`CRETU=GaV?OBNF>AeUNWKF(NOR-7PKhZDOUITPELcW^]G_PPFLU]B><8DKFCDOSeY^M=G:G9D2YQIcJJA\WOL?XKDPUCbCRQS?CLOKVKIXAPMLPHC_?D:FRY>EDRESU4PATKEZX4LUP;MHBPIOS_I@JI@Se?DSBESFA;UHL@?LNFHTO]6HFR1PESDT?J;d@?9O>iMXBNH]IRF;QO9NVFNNS]K@KE>^MGIB2TZH@JTPBHWaS2@RIHSC[YN`E@YfN;AGQNA5W>TBQP9UIMPAAVVFF\V;<7GQGHV@cIIY?OHFOlmEDNMKGMxNOVEV@S=O8NTDX?FAPYaP[OOJKEZ_NFHMFJLNmJJ?4SAP=DI0__ZF6U5;M]QEF96IK\SGQBRB5LLzPTfBSXURCVMaM`CMG\@HIG;N?SEMOVT9^BH:1jALNYW>JKCIMNBDHa4K`JL?>:E`D?PY=QMNSDQ0W@CQ;h@NcQQeYIQ3VE[>N]RNLGSCUOEWJPUIEG\XfKPuK`DWAoZ]JbXTWDHUTX\A[FJ]UKAAU@cC`\`wVSNUJUWSVDITGI_GqZJRUTY]>`^YXWHNMNDCOFMO=IM>OX9\GB:N]WPHRZTYNfBKDRLWPAKzTeAETG^`PNfHDFAVSpEEd3I;V;5\HPcISDjJPRPSXLUKVC>VLWALAJBR\PVN[ZS8UUUIEHXPjSHRYGIQNCOEe?FjNAQGFRLHW9DEE@LM2S[ODC4*IFFNRT>JVFXCWP]\PPXLUPqIFLTOQMFFEHJOKKYOILOScFGBSII;GObEMoAEAGUc\4EI_XCRK-LJRADJBGZ:NFNM5IIH:>MD^ABMLGDAOEYUV=HA@ONLD7?JLFN[O:_D=KSRHB?9?=ZiO@BN@5NEbJ@?AXZRE=dKDCH`UKK\R@MDCbGSWOVVHKOA7ZO`5NFEQdKK_MBGS:AKRASLiIvNFDKGdFKUQ\6[RQZFAULPEJFBMGDGLaNC>fODSQNPT?M=JPQ][NJK\SHTO{JfW]DGZXIMMVFCPCbSUAWHKF?S[f6VILEIJGCS@I@P>9SB>GAO@DGE@K@HK;TZbJa6RFb4]PFYJFAYDO_MFF^N4NDNFDN^XIC?g4XIEnNRPJLIGXR[KYIKKZIRDI^bIQAOJ3I]A^XFBKGHLFHQTGXIJ>FW_IHjZHrhPX<7A5N=>PLBS^KUOP=V:ZYFHY:EHHJ^=>?LEhAK9FNTJLNIeF@RUX;HPET_FECOGWALHjI@KZ[LOLLJJDXKTLPJHGMQ@TGKHOQ@QOLEF@_W0WU]qDms`K<]bNKIDI@]JUL]OGHLa@IRB_YWAOO?WCQAR@OXTYDVDZL)AI7GsAL?ERPATYFQ7@FilGUWfHLGQKRRR_GJE>RBINTKW>aXOXONFMIBXCO9N=HBLQQFAYfQJaGQGR_=H]TOXGEIk6JU0DUBMd:S[;ZIBEPAAAMWWTF\CPE8O`RSLOJCZ>COFTTYOLM[PGFaMGCALKAC?W@OIBVIIJAUGORHQULiILJk?RXAEPGOGJPKFePOFA`jNGOE?8BcTXANKJS?S=HAEBWM@MJFMMQSONEBUHeQCF]NKAYPAX[J]NCMDARJRTRPLG\GQOKNg=ODNVFSMVHIBEsXN]G^SLBXK\CMKRR5XZCmd@KNJQXKPNB==>J@I?GFXUTAALLQNNE[JQ:EKZE`TPTEFLTFJOCtR]PKOQEAGMRTVGME7KMUB?Q@JNL:@7Ab7YQ@\CQ2@NGOGINI[GPE\SCL9U8=WGRHY>>O]H-^CNHaBKPEAfJF9ATCKSP=HURVESHNZ?AK7N<_GBPBKK8Al`LQDGFN_B@SD^LNKZZIBUJIHEJLO<8MgHP;UQINIDK8@MMCACRSQZR;KHE:Q>RtPRXLMAhRFZI7IQDNER:EI`JEP\H?EDARKBOiQA?M[CYUJEGL=ROP?JJ:KSJXAGNSPKK9DXZIBORYIP<[Y;PAPOPZDBQIKAN9@MKQHGOKKTJZ@IHAFGGN>?D;]DFXOJMQ;LJCE@EKBZYN;PDCEPLDYJTCEOCFI?OR?@FW^jKDJFCJ;DWF@AAaZJJJH:B=AYKM=TeJPIINU;\9TME8@WND9Y02U0;:?/`;W8@6'=E:J3R@6E?AK@A;SOPJ6@H8KABt7N4$HBRM5;H=AFF5<:WD9G:J?:TM9:8B>QCC=7Q7N;=HRQKBQDD@30H<8:HKC2=;>T1JQG9:=>5P/=J4*HNeAEE:D>A:A@F1ICH?8?W\=[=B,;F\A@M4CA=MI:=;ABI7;C-:J/)>89??D%AA/G@cE2MHIC=JRG:9S4L;:J<<[<GR76C?4D:6D.8=LM0;.Y2D5=YE=*SD8?>IJJ>BO)DSYCATQL_JO@RW9BK?TKLKPJ\S]IJTF\Y8]=44GTBLCfIIS-UQ_RALOSGC7\=CBP=OMTGKK\=WNQD?LHUTPDLYUPY?[ORYEaT3KPwTIECGLLFKDU;TSGYJR?JSGTCeH^9CBHJUWMCF@LQRTMOEQOEaP>=DIA1CCEC@<=.G;>FEE@E1HHD9MKB:G3D6M71:?C?<@EPJA=1G8D,EA>??Q8@KB=95B?=M?;A23M:;=;ADNL96D6J=@9?5=;<9<>?JB?OF@BJB>;BL8F;'H=M>D=I9KBMDDR5>4N;>4@D@NCCAJA-I>ALH68BKJCG7NBL>80CF8@A89GC3DAJC?FEN=58M?DA.+@?BF??H:N>I28=8B54BK99?E>9EDB6)J?F=CF?<>B:A<?;;A8CNEJ6IP5AAD?9@ES>R=?USSY_R?EH8eNAKDIQ>FCO79RDG;:AHG<5;]d4NN:QLNQB@24<@H2,MEJ>JCIYORKPDU!/ON;HLP?T`ddHJHCG>3^NO^ADBMFVCI1HUV:PQCZ@OM?C67NB:?XUM[KJC?H9DEX4YaH@`WAMaLBCHLMNU:D:B@HC>NB<7VY;FOGJ9=GHRLQD@A>CMHIDLdAKNHGA>G?KHLLM<6DIU/BMI?XDK8WG2VF@`QFR>=^e:KC4ZRNKKLMB>bHZY;J\BPQLY:H=NHQDIDDP?KM8:>MEESd:=JW@DJHK?WjL@RIPDMBJGM=>GQ:HP_?lAGE9jBERCH@KEdDU\4PI\6CjONV4G8:NNG?fSRQHC@HH?2^CEMUAHLEMDPIUM:aNA4DBURTEEMLfDEUVHRO>\XFFJH-<>MODRP@JL\dUFWUGPNPXCI]Y92EeUYU]RpF]NbCFO[Qg]TTVIXZRL[N[[kFLVKdJKTdLXOULIMUBWPK>[hSWUM^lRgSbT@_V>SnTFVGXLdYMDKUHfFEIaEVT^FLH[UGVgU^LlH>NWJI_bKHKL_MVKEYCSJQ8G8BLTRcSXLTJaOdPJgK;NXRBT[BRIFaHMQTedKXiS_MIGQWQdG\SR_WKcP?QJ\MPN[XKNVMVXGKNTRG_WSPKDPDOK]:VF^LI[W@IPLMRKN`UQ\TWOV`ULVIXaMHSBKQLbAFPULiOJFDNMTKELI^SW?B`JXH@H[a_GJDLaFFKRWHWMLNSZZr`RMSHMNJR`LBGVSCREPO\JJgOFNgU[NKZFDZBXwVLWZbMiJQCSG=FILLCC\SYOIEG[K?QVFNKAEWD^L<7TGD[ELUQKVSVMFNIPUQC:F?XI7L@QINTJGRROPIAILJD9D8AZdCIIBE]=LPJMLIYLQ;OA>TPI8S=RHNCHJ:JGEAMILA>KJKWUd;B?jNS:^KXK_`8HGQHXVGSF6miGAFCGIFBHSSIK;CWUJNJ?NFE=]LK>b;DSiAM?BCHGTYBKZf@VC@RK:DLEZGOC\DOLMP;ZA7PTZQN7WQE[`CQMGHHN?SOM@EV?^MF[^QQKl;EM@U]OAO`:RQHJKMR\M@]A>GFBTKFVO5RI;RJFKKTK\M6CFKF>TGSF<=EFEF=:QQ7L@5+XF:B;9FRHX<8@;MCKE?UAWVK[?7R?HDNUTBTT\D:RNBC3i@>E:=@BD?PJXaN=H5uSGLOIF9B7GWPZ:LBDESH989?W:QDJGKE7GINP>=QP<@BV9RLIKSCDTK7N8JHQBE@J:DCFFILhELR>H;IECJ>;I>MTHUIYMDA=GQ?MD9KcHHL@DDJ>IF@O@F5QF8;DAIHMAKTN@dEGQ3GGH68KR=DIINHDZJB9I3ADR:78?42=4\KFJ]DQOKM=GCGMyCINF=JKOVGS\HGOVTJE>EHOCSINQNPEJB_NWCJFPHOQQ>IK8WHRX[CBX8LCLNL1BKM?PA~QeL=AAGN:CNO=LILJ;dTUWFQ9RE8KTKcdkD=B>OQ[VMQV@BCG[TJYF@HXH`@STIJJG=OH[BHAPSKGE_IQNVT@?K7TVQJK=QOJZVEAEPA?9KGc\DJB@E?Q_^GEJLUNC\I@\F9HEJF{CCMUKJ>_FXPgSKB9EJG;?DEDBEK?UDg/KR?SR{W:SJ/[HGwQTK2M1XdH"CHgp[D2lWaPKuMebkU?SPVcYA>SX4D1R^@`f_L]eVNeZ:IuAT>`DT`l>oQ>VP!^WC%T:3aZZW6dnW^c2bXiZB+MOU@aRJU\Hj-uDj2Tq-(}RN7EOM:cfLLcWM^FKDLHe3_XH]V9E?Sf4>mTc>zPYZGDFOWM:_TX]+TC+SYTV\6=XoUlamZNI"I[9gc9JRCTWoaGARKTkUa[Ch[R[h$5^-c]AX>YLG_HSTA`KVCX02CUSaVMF;J?0J=OGNS>?QJ@KC?NBC2V9TA@KW7ECJ@89FL,GFL:H33?RA;Q@=ECDDJ@CGG21@9HGSLYYA3NGEJG3A8D8?O>K3ULINAN17C;U?:D7THARENDM5DQIF0?CeG?JC5MEHV:A]DBO@?=:=WSC>LM8Gf9C=@?B0@:PJ>KKNN1@HBFB:C@A>AJ6?NDA#IFF4?BARMHK;gE6;O]CEE4GO@6>SGI?OMFHMMhQKYPJE8FANM_CV6LtJCCGBAJV7rPOX\QRQJVhN?Aj=XLHKf@LFJXDb;JB>OFB^INOIII=ALVuBNXDVC=Ha;FVFDjZLZLKMTNU=P\bOC[OBIESHvI9;QG>>HJeC=TMMFKQGNeBHCjDdEnIICM;ISSLAF6OD[BDBA?XWCP6HSTA>79RMSDT@I?GQAG5J9T8GFtTXGXBKC}JBJJQHE??NSSJE>XF6GJIFM=SD>;C?JFRHM?SNJS;M3DEB2M9HKgcSJGXNMCXKUoZJ:SObTQDJa:FHMD>FC>DCLWVDMK^V_KISC=5LQ?cKE2_F=C^QN2G@O=A:]DJ5NAJ-TZFRQJPIG@L=:D_=MNe?N7D=LQENYJYSCDQKlPT\XKIIPPEIRIaEAEQOPNNJWKJ_hI:UQNJHUN@YIBL_MF[@W^NKSKEHP^^WL?@RY?TC>JIIPNIVPKSHDYQ>GRILcRQNZPKMSKGEQ3FADXB`YaHAURIQAAS9EI?FMEP\k^GSCZk_WGPVABTPJPYLQMH\SIAGF@SA-VLGKYJ]BDEIOoIGHQPI]JDE[MB]DJPKJE^_J=JHIFGERYi@BVd=QHcJzCOUA8YfJGkBVUo9ALGZK_NOPAUI7EMSINgfRRXZDFLISGLFHEDIWwNDNWER9PXQ:E\EQTIcDOJSJ^FKIKM?M;DkFKVEEnHIPHV[JZYF:EESzIRPKYC=QSKD<_aGK[N>RS2E0OCA?]JF=N\L;a:@YHYCDPc??b3\UX@UROYD:QQLK5dX>q_ZR3gDCUTEFHKJMbA?KLvC\NAHE?YIAG\LJN;DQ=4GJC:JBEZGOiAKNRHQ]`5\PCASKXPM?=GE\O`H??MWSIEPYINFEM3BFcBOW8HBiYM@:]ZdXP?J.LNLmWbXCU:cEI?FSUJ[GUJePJ>Y;EGN]DHV@M,ODWVKPKZCjGdHcC]K?JHNUA`iNAVMSK[?OAHSFoY_JXVP2AIM=JZZACJG;HRC=GMSW;J:0YJP`GEZKIN@KSF:[bYGXI@PINLHT9W=S[PBiVCVF[?8==@RU4TDmP@MHX`MZ6QHIPEJLXFOL8:*MEQQ\CFAMkBL:C'dF9>:VBOB?BRYL;aVD0<][/5C@6=rIZS6XK7E\WL@ZJFDdQW.?M89,MUJ8D7ULK7QNP=ZX>C?SIJS;^QSDB6<;HP=OTR4ONN7b\@MNIHWIF@GF`;/MJK;=TI@2B^WJKO8ZF\UGVL2PDLFFOVUHDTUTMRG;:IDSCBQTQGPHNVN^[CCI[PRHB:UOC7=;^[aNNQL^IJOXLbDKEN:`R?L`TFU=SSJdNHS:HAV@LEBPPNBKAD@1ReXEC]XaJSrUCF>@2I5FHKEPETR@CH6F\]IAGQ=DKNPKAJBDVBGIU;ICTZKO5HYLMJMQUQPJV?@>bak6MEL_UGSOgBLO7OMDH@POZ>H>QRLO=OJ\HCQiQKCS[OLK6L`GQRPH\JMVSN9;@2;NGCMA;MJXQ9aFQ)Z_Tk]L:]HJELPePCHOl\PA:MYHJXr^SNGuFHQXNOTJVKEN[UuMKVMGJOW`MVR[SPQWbVWT`PWSEWLOKOa_N]?KZPQYlZEXM]ZQOSHQPWOeGRJS\`XHNRYNV]LQRAOXwWcKFgWEHOMOMMVK[cQG`LOBOYQ]LB\BdHONX[RTHKFKM\MIIUUIGS]R_V=oYAU:K:]XRKMZ7FZ4oWOw]X4^y;G`>bYrDGLY]BZE9Z`hBNbB`^v:=HV=QcXD8^dv\>>MEolSWY3\T>cSM?^ySgQ]GedanMIKZTF^A>^"V5Nt[g\NXY_U[ooPjEET[X`{`V_=<=O[nI:[BhObUE^3Dq;i0_T/vkX161SEjD_q\PWkPe[Bah}EZJO[tRbOT9L6M?>YsPCIjlKN[=SUT^ZmVhl=KtVbLjR]U\|?Q`sHGTS[P3HKeJ]jGC;CMP=?@J)OARLI@MXsJSq?`W_TENMPOX?MN0K@XPB]:GHmC>[EJSEWD:L\]:0P[KYNU^OkXiP`G]WNO;XEIHl[EMEaFD>1CFWDTY;LO:dNDA;:RL6PYFBRISZ@A>TK]m9GPdYWZVTM[ROHMRNPY`CAJWKJLQTWUq[GUQLSXU>]JPW_TEbK_XWSKZABTTNfSGQRSQmW[SS>DRpQSOOTGQMRF[NKGPREVbDPb^NTEIVVLKPRWCHR_GlGC?TNIJJPX[SUXUZYMOOQOUWmeOB^QQ@@U`IRTTZNG[VNSV;N]QKGWjRNPSUSMGHSMVYRIFWAXH_Q=VEU?Z[UKZNSPRJTDRTWNIQOWZJ]`ONUQJQ]S>QPKSTSKM_TMRZZUOLpRQ\RHVSGGYTMbCHSUHGSFPZUDFRZLOZ`KQHOcaWYZNIWTvIYJGOKNZFzLP]RKROGRIRIV`FZVYXSiQXOe[PUTMORM`UM[JJRYJTSLShZSI]ZPEUfRJROQUPsYFTPJPUPNPTXHQ7DP\>TFECFfIY=[D_REH@ICC];UA=HXS`NOKSGM^@KTHMOHDJdG;?CNIIMAFI:PMYH;2E>EGLET8H>F?WJ?BNJXIOBEJ3GPMTC;ImAX=]@@YK<>:BOEAGC0Q[PBS9KB=SYq3JBB?YLR;IK@IVETBMIEYe[KZ>FIOXFD3RHNIJLIAJTR?9RBhiEFG>RVJ@8Q>FF9JD6=gRUPKI\?BSFHPQ^?>PO;JD[IE8KTAR8ELM>VFODVMVVZP@P=4VDEfV[NZ[@=FZ45QEJKGPNHHDE@=PwM?GQRHGNLICTA9GJQ_LQB?=WFFUKCHEGBN?KFJO^NOnNMJV]VYQT]RSFgRePKmPLXXKEJXuaYG^HWfRPYD_U^XLj^UFjFRjVP_\TRRRWSYVS^YISXH^QOWOyHdQs\VhIdYLSbHH^GJ^cVTXHQXUUXRFQ\VRLEOF^^D^>VQOMJI\MLYfZUUfYdAZQ_TR_LTQQHYWKICUNKidUK^VTTuSerLMVLPEd[HKYMND[UFNUJEILEGC]QUaZG\aCSBPGSUS\FSXIUG>PGMPa\QQPQaWPZCXUOPWXVB[RFOKWIDJQITPMPVCQYXQFUACVTSNcH[XXKXoPM[OISY4LRQRdS=bTPau^_fFPN<]AYN^WOQMVDVGQAQTeMYIGMUfNXS_RJf`RG>QXKKZ]L^_TXRRHSN_TOIeT\iRSKSOUCJFDCFMLM\\=B<<[LLI@=?AJFBLVDXJ<=:CFT?O@&X8J@LIHN@WNCJ??=DVLCON[=A?NHMA6R>JHJMGC[0T:9MQDFJIGdUVELR9=MBBEUH;ON;40EA;74EHDAJQ?OJ?Q@<@DSCG1H9MC>>BJNSFO?EHOPJI;iDBQI5A;MBHM?LL]:HNEGF8LIE_S?HTF>NOD>GQGSHBGbPZ?c@ULM>LNRKWAGIEkSIP=S7DCWR?;\N?>\ANR4M4<9OWCKMBRKWK9L>U@NCjOBCCMZ;?CJ/@AUFZCN7OkI@[J8VJAW\IELR_79=A>0D:=NCKBDZ;@O\LDLF]A?KD?E^FE`IR?@a>NWFK]XAKF=LI[YPOWNQJK>HHYNTPQEFbRFJUQ]QMAXNLSNWKRBLRNKFjHCXHZGWCHbJ\DFDR=U9OB;Y9MP=F`gGMFMJJE@@TVN=M{YOF@RMg=J5UNTbaarHKJ_DWO>RaTF[X=S>XJ0JJGQ4_SIOBJ[QALILUL=@S7D:GIMIRdA:J?KH7BEGPQOUO4`BP=9TWUPFIJFMWM6RQPc\RKOXNEGrLRNa@NbJH>@EOANJRPSKPOY]8Bb;FD\BK=WOd:LeNL>R>OOEtFAOELFU@NECNUiQW`L>=I=;VIP\W;WJGS9KBJ`MHVE:>@VQVKDiMJHWQSO9GEPk6ZDOCN]QZYDUE97bFPNNHNpG[[XXURzCFHFcDZ[JaNEIVfHRSTXE=bP_BWNS[LO`VILXLO[KP_TGY\MTNPNHPZLQQHWMQBXFXORPjRPKKLQKgSWZVQNFMWUQBILWYFMHUeMKNQa_KKSQYFcU=V^WIPKPLAQd\DNNWFPJCRXFLLCLASNJH;GJERQKDMTHKa[JBNWUOLhIJPSOLGPO\UVLEUlaNDDcIVBVRBOVdJ[_X\NW\YL9dGEM=D[UG[I\WXC]ePRCTYQMSVSNNNJRQcTFN\UZSMaTRF]KR>QJFL@CPPMIK]SXYXUOTIVI^X[[KdVIWS;GPNM=LP]\>[NVKYYa:DVNRZIEUY]HI]ITRSaVOHUTGXOMTMEKRLVT[RVsSbFFGMQ@ASRN\\QS[YVJHMI_?NX&R98RK>RVHFWiAC>Q>@?cVBGO\TYG4Rl;bHAHW=RK4JhKEFERWXGaBF=VXUAMTOBTQNVLM;\FZSEDv^GbHLRMc|LDK=LIQGFIBT4b]HRBJAGC[U9PyUFFHERVXGY9ZL@SP[_SdS@i@KMf6P^XR>>2BQM?E9PVOW;SSIINIJBF>OILCC?@E=[O:d_kTHBiTi5MPV<7U>?b\>IPhHP<[]BPfNeGKKWJPEYe\FEVJFc`R;ULTWD^N6K0xNb`]JKGEVE3:OVlOHVM:]AbkIPH>QK]ZLX\ILW`QbDiAHfOSSEVM7_BAKeF\=QDPLF[LDNPDX7hCXPM@CSCNuJMTH\_]FONJA^?L@L:QCY>DYGPG9>-GH8?CU@ECQFMSMSLRUc=XPT>K=?M@>KGCLWMGV_DFP4=GSMSGE[BWQdAYK>NK=MLCEMPBV[J:GMK@XRJ>E>AS?IV<@D=CM=@MfP<=ApIDCOMBAZNTAAO:UFRJNAGYRLWSHNC:EN[S>BPG`LHYFGGbC8@AE`NE?CO;LWMHCU@K.SaPYBRQ=AB6EP9JQNBZ;GL9EPO^QR^S<=>GDRCKETLOAHOGUJ@POEGRZDEPHUXM<[9F=CBCOSRCO@ACNQDD:MWKWA>@SSUQL5UBH>XNFD=JKEMSj^S?KrNIXQFC=DMUMADEKCG6ALJJP7KL>IKFPSCOSgHBaE:L9BJQY:DHPJKLRI^BFXJ:CSMAUVBP;MHRNL?NWBCKE?I:9RQJDEIWSS:ZMM?UAEEMLAKH7CAQ7]lVLUDJOdJEW[HKUBTO>\IUPGHHXKKX>LFICODJELJIS^?BUSST=@KGRLKHLVLRGRENPOCd>MMCA:CGKRAADWLS`NOXJ]DHK?I]OVPNE?WTOAIFBb8JB\@CDOKRHOPSP:G>VKKNNNIJCTRETDN^IPVLKHJTY`LI`OSWGYXJQGVeRZNKOS{QSJGKNUXJUcGDGYRJOGYQUkNQFgU]@OUO[QKCiQRXMMYIMS[YS\SRSQDVNPJHQIMRKGE[ZMkVZQQaRNYMMXHGXXPWOYPQ[N\RP^O[R[Jb\MQGZVJYVVJTSKMTUNPKbXROPJGQO_LYNSQaJRQQNNSX]BfKKHiQJ^eRUFPCGPIJ^UWVTY[DPNQDUTXMaS[ULSQZWUQKPTI`F\ZUPQMRMKSUMJO`PNE\TIQUZHaKXOGTZ__QOHEOUXIQRIPLXUiWMUOeXRDMSRUbWS^`TZTKTO\LbLL[^ZTNIQTNS`NTRNPXGQE=6IM>HW]CK9EPLGUHSPW?GgO@>HIGLAJFSNNJ@N]IA.ONgTVK>N>LDEFFXH_L+IM`O^PDD]LNg@SGGFJMIVV@AUL@D>JPX=DNPKCBEKHJP9i=GE@Q9@Xb9?EPSPQO;OFM\\KcYXEWH==JZVEMHHVRPURXU^@LGGSB9;^UMDEYPINKRB>;HJxABEQKJEMI\QJP=HAR>IPNMCbMRK\OHU7RCUMEYRS>W_DNCDODV?G=GORDF6OUKCRCDBKIUQND>NCFEUHHUIMUBGOVEVD;]IU3KCKeFKOM`=HBCW1KDC@FCHF_L(?TNFK3A:AFN7YSKJP\<<;C>=\GXT>>SMEKVBPA=FNhA;GC?[=IL;PPLFGCAFFGGoHMH=;O_?A=>>?X<2@FFI=KuSYEfNDNMaUBWGdGQG:UW=E:@48>KfFQ>@JCYO;>LFHG:IGKR97EMKFCRYMP9N4[[Em=6R8>C\MNYPLNUZJMC@IKQSN6`NMEOfNGM:OPB@eNVNUKPC`LSHHhaFLSEOP>HWCI=RQM\SDK`LXMYSX^DGHNE9ZHLBCsELGCQMOROMEDG@<KLUAKKEGNHG[NILYaPOLHLJHLLBO@LMLMPWKQXR=PE^B`GDQSHLIpoHCDSLHQ}HQEHWmFOPYYJMIQQOEVBsrLDNthL\Z]IZOKRZIqNGOIE?NXGXFPQP@AWfDAP{F[PRO?IMuKGWGL`^KMb]I@SMDPGFYCPLUMLFAA\XW=W?OXCEO_`GJIJxHDzF>NPPWENIUBCUD>NyL<[IGGHDOBS`PIY\aG\bIUOg>>`E]L[I[NaEJ:JF=IZL\MEIHOsOEmSIJFTGXNSLEMJO9HIJKPsU\CZQPGIAV@B?TKY^\^J@ZDNFTAGELgOBIDCRC~G>mGOGICMHJEMMIB]GfHI`UNH~NOaSJ>JXIGOKsJQHELEgDHM7NO@HeMHBfOHRLPLSROR]MNHMOjRQAlKeEoUJFJIqCIdhLLE;6GU>JSm^UkcEMTAETXNJFL5:ELN-F\1ONcPCEKLI`3YFHHXKZHLEIG\MDE1W:CKHMODXAGT??BON[LSMY>;O=GNQ1DFCS>=ABOK]>QiGU9-FE@YdVHAUJREJBE]JAaM=;B7@DMOZ;??LL[QZVCLEX<_KQROC@PIDMJL9SRRGGOGIPUC@LQF<8JLD@GJ9[[?3NET81=DI_L5hlLCMFBWEAQE\N>NGDFG>EEHMYFQBI>IJBMF>>F=_8JBFGBYOI:B>DYIiC@SKFEBOK1G:AA:LMBA9P=>@:B@ALGRT>U?XREIIMgGTGTBSCBGBBGKKGM^=HCTH9`?S=M>PQN>?P?DQH;7?BJKL\FNAK\V8J;B8RHRN7CE;NFY8AU@FCFJDLITKN;B=E@CJMG;;DHMAI*G>EBC>?MFCM==@ODVJEDILOAHB4EDGFIFVU@KFRMIONQFHAJ8>NODF\:SYH.NPWLGLF>?RDD+II;km;9:COK=DKO7?3>W:TBG;COHQNQIKSBD=BTB:TMVFP=91KFWC=G:PZIKFIK=@L7GK:BT^HM4PXI>G2?JBRKKC':A;AJ>QDADISAMNK?8G>JBGL?BKh.O0=S:AVGRIDFEM4FFK;NBAM\BTLAN8N>BM@FC>QP?gKHO_GoNMZ\[_QKFHHO9J@B_Q?mSJWM\Ra[pLH]WBN_NIMDHADFUIHg\@]LOCeX^WQIO\KZK{iMFZnPHPHOUMRUGN@HCm[afZUPSGNRElHOSFFOIQZ=>IRIJ^LHLWYX<`SX=R_PCHLVRLFD[PGKPIXNMiEHJHF?DeUUIKHUTG`MQPNP\FTIEH^TGmOROR]_CBTYJaW[N?WRQOOWPQRVZH_OGQpKM>W>QSIJSI[OTOPSKLRY\NOO\GKCF>4EEIXOY?G\HI1H/4BD9AF:WCN@G?TX?]SOF3:S6OM?LT\NLB8Ya@KK?3EQC>I5K6IaUE7L;>JO.A;DM9PAET?MBKX4I8UJU4F[Z1=MKl@?>:FDAS>=D2_6AIOOVPVV6KWVPWQHHmAJ8GX.IHY;G97LAQ_NbT@EA>9SMM]IFNNUGOL86IDqJFGMWF$7@MSGVMD<@c>IEM\;XLCX+JNG3E2:S<[HM?F=J<,Z:NGPBE/C2?Ta5:BJCGTUuJM9=LFELH@N@LRWF`EHKCQTVDJHPPQ]bMSEBFQT^I@=PGVEJihaL_MPBcFKNKIVPNUN]XITJWM_YRRTJF`NDHLTGTSWwGSE^UOfTTF\S.GSEDXLWMJ=kIAEBtUWKT\@XGAG^AK3ITY@MQGSGSKKU4GAS:OlTc\KI\CE^.VnVWXhWQN`AFLFL=5WEQMY8JL5JDAIOWPKPigHCF3S@]]\5:GQ3\LkD@DNLV.m=XGTI:=CHA@H@]aTk3LV48m/MVf[^HIj\vK\>LC>N4U8\gA;O;EtINAIRPI`aeH]ICFGT[aEQMx24dH>V_G`QI?KGA3PO).fQQ9Nb:8Fg2PBC:CA?UHb@11KCOF"A;@hBHHMI84<[FBFFLGF@0ReTFV>D=cGDJG_TBYE?AFJL@HYJC5KXG=F@RHBBCHAMSYbQNKJS=SKORUP5SVV=LYQROB^KJPNGKpRJL>EJCL@JOF@JMR1NHWFHO?FDIKNNTNWFPMF[;GHVHLWTLECWMDRKY;^LOGRPL[FCSDKM1HFQXQLHFIHDPGLUKJNS<@VIJJTJaCYOKOHI[ED>NI4UWFGK`KO@SETILCJ4NNbJMQCHEBG@GXEHZNPHdV?[BUWCEKTGXM\cbNLLSRFVHCe_V_CVHQTLHFHBEZMqKfC>]JVANWLL;TQ`MgOOALRQR^RJODLF;Sa=ISWKRUK^HaIG@YSzU=AG=CFRW];=XPW@PEBI3AI_INJRWTDJHd>TNXV@ZHeZG>\WUMVNJF]HHEGLK\BHYIHRXSRJIWCG=BBUOTQRIWNHT[=L]PYFVUTBQ;FMWMYDbC>WOo_JHXWLK?SbJSCI=KNJ[MJjNLAZUIZ7]L3SC7OJVaFWIZQK=Z]FHLCZC4APMP-NF@D;?>K@?RVYY@EBQLJCVBV`6Lk2V^MLCLCGO@@4ADBCE=O@DG?K:8QOGC)QAQ[:E@N=A9CKZ@UOaMOLH@?D8GWC@XGaU^;Q]??CF5HYQDVC9cRVIzK9=Q6NFHKMBTC??MH_ABADD9RQCVPJ7ER\PfSIaALFD<5NDRZBGRUH>|Y:6DGDTAIUEG>FE;ON5HGEW3C=I>OSEVOJXN]UHD\@GGH\9MIQHPFQTUkVMC?i5GP^];H@N>U@IN>WIHKITXXLFYBFL?JEIUUIi^fGKhKUSULYQSYC>@HB7ENBD/HaVPgIZGJP@DLeDXR5U_CKM>DNSTLON@UFCBGB^?QJD;LSKB=ALB6CULTXG=CFK@THH?VQHCICQ9RYJILSLII?BDTIGONH8AF>SRm\M@9TMBNT3@eLLPFSKMIFJOLYZROEL=_ZjBFCCfYQMOW/bVAJGQ[TB_C?AQG^XVi=BQGKMJcNSLG5RC^KDJ]I\ICJBJLBYIV>PGM3HXV7@GT-=L[MTeEvaBGX=FRD=GGDCGDM?GLeD7OHJ6WDP>GVdMNOXZaE>AQLHLGUBY7MPA`8UQ@Y=EAoMOV=JSTW`TN`QWRN>F>bII7ENPNQGIXLCRDTDlA=MFOjd?EGAMLGR:>A[IQ^OQPSNjUGTNYADN9HQY8JWWS=GWDENMRQ>LLICTR?LAMMF?7jF?MO@F9YDBHD?GJVRC>6O>S1DOI[NQJ^HPN@D6MFTaU>LG3IRZ/GHALE5MHIfKOUKE_VyGA>ZAQLBJWEOU?K>K<@B=TEEUD@ebK>S?3AVV8GLQHHMb:K=O_G6AjSLNWNH-CKLJVD@KYI\H>OFK?:W3@HXPB3iS9C[AQL:U@N^[[7AEOUPJYGDMNANCFBMN]E]?TV<=QDES=8a\Rh8GVVNGEZUbSXDE@`RSLUZ@8DFID^aH@RL`J5JHA[C\HZ>NNGI[U:EDsKJhWf[REYIKYRJ_L^9UsNR=cRMJ>P[RYc^IMZRLcCIJFWSVBUMO?FAMHOSLOeRMLX@O`^RWJ\QJMMHF_7]LYaOQ^GMDMANWVdOfbKhZ@U]MSQSRLDXAKRFGJYc7dHLKPIZ]Yf[ZF]FPRVLNLSETRMSLSd`]OUWXPKQTTXF>F>YBCTWHDXCMLLKYARIKGSLIVEISEZgWVQOCVGdd\_INMYXNN>WsDTdIT]SGSI[JXHIVQ\^OTRVKOZQUcDMOOSFSM_PQPR[ZDWSeMeAHSJ\QKDdYGYHYNGLQGINEIJ^`LJQENC9QRZJ\TXdLJ^UCQQPK]WBULWIWQIHRIQMWFFNNGNOLXKQDWID@LPHFaLJMi>PEB@FTAKBRXYWG@DN[Eo[JJdLRcIKZJOYRF@ZJHPMaUC>TELNPHMCPI]LE_HJMOUODK@TPL@GHZW:?K[DHNNOMeERK[IaNCJP^^TY>FHEPBXDOAUZMMKSCMChW^JSEKI^VQUQFFGNXV@JDXIeGTVQAL;JMNBQbIGU;OGQL?O]GOIDtDN\PDSNXYXbMNVFgHDA9G>J4NYAFDQHFQSSHXIOSH]ZWX@OIELN?>HNCNAWkLLZ?WNFGKNYDIGCHM[HF}QSOH.XQJ6WRMQ3`IJQLKPNGYJM@HUKQHJXGMJO5^B=KGTM\PAYF@DG[MSWAC8FRMSVPFKEJFSISSBRSFUNHLCSBVHWNUTNVFNGDOJHAOW^XNc4e@FINOXK<=ZVDIQUQ5M\POFH8S?H@UI6KRR6WGM_XXA?FB\DIMDIhIFOE[Mk;EUC9JOOIK?FN1;MCaMF<^=?ER<8OM6Q]MNJM:GMUI`DHQFMEK9c2==PO5TCR_TSW:7D2`[,rF]VG5PJXMKO:AETJr@]Q]@NQU=VS?A7NLT@NXMRD;Fd4KFcU\G:N9TACFgKCESEFe[?OJRHIFOAF@U]K8[D;BO=KI6NN@Ixd?DSGDTBTEHID>D:L_CBEPTM5PWKPS9PI*ZH4Hd?EGHV:C\JCJA:D`NIW;Z@APY2\C98EH[DDAGI?\7FF8NVC_V@KZXO6PCGKJ;L[LB]@:Z^FVCBXTR[I>LM@BMKGDEMCAGQ;[M=bKBC7N>KNA@WG\BW_8ML=DMBCNKLGMQM=mTQ?J\CI4^U@Q8@NBDVidEL1BGBLX?Q]QHOQJ@BVSOGH;RQGJXOGKC;VGcI@NGDBKGTHA6GScMJB=DTSBINPUB@GT@APDO:JfJKMIANBMg;H=>P>TB??XJ7FKIK=A:G;5VJ<`KDB7POTNQGI?KF>K>X;FGFWQKO@FHE68GJC>oBOCTJY4R9A?9TJF=YM]N;O;CIA@@G`O>LRJcIC>JHDK8VMMGCLLSAH?CXJSOLYK6JTQCBcNPP>PYMIIZKEJMgBAKbL?1BAH7ORC>UGQW@JIHQGLdAMJCKW5KSH@RO>\@GCLFZ[CTC>aTXOED2JZU3MB@TVDZOBG9MFUPDuJI:J>HEV@B:AGMJtK>=2LI5CUPLDCH?Q[ZWknGB]JZBIHIAJGVBNRHE[GLJU93OTH=KHOHnDNS8L?B?9>KdJ1IP+S;AK]QPM\EJI?ULM7B98GRF-?FWsSMBM7J7D8GG07D+VVG7@MNQKDBWNEAQ=Y.LCHO94LESOI?CG@R_M@A<COBFIA=VG29QGMJFYZV?OMFDSAPUx@DFMLJCD=QB\PU;:RQIhJHVYB:Q[=9M8VB>E>JUD;N\:TC:LMLGWJe=OSPXTOFC^PMEQM`EBVJHD7WCMII>LL:DPANJJ\GT@QGIDITFDXIMSHGLDeG=JO9?[MU?CFCYWCSOJWMOZIIJa8IbVAQ8LCEYMHHCHYC9IQgVHW[=BE?H@>T?MDEJ=Ua@UXNGHJZOPXDi;?JMORKKOSCK;LHSAJ>4AFHDJ?BD]F@HU^VQJGCBBMChGU`?PK@[0RP=4]?bDA`GOGFCG9RCH7_6H]PQ>GI6_MGY;_XA@RANHU:QIfJG?JZN@WBYWBI:?NHBddZNRKQGH9KIWcD:VIXG:_OPOJLI.BP>XRYB>EF[AYVNbR^TRQKM2DQIC:AFXL`;BiSBYX=BR\^hB@GNB]NOFF@`R[SR;^DKFL9JkLF9K8O]QMGO@GE?NK4IMZ=EJLQ8DW5L]KSHFEFKC2gkN?9QEIWNYEA=H=EIFKBXpLePHRHBOLfEMm=F@S4b>UBB[iCYcM`[@YDRCNOOKID_9MFGG]KH;Q.HOJDBEbRLO<\^EKSYeRP.ZYU>M?;GfcRIHWTDDE?M:UOGDDJ]=OOVNYGUGEQOLM^9?TL>VEWGJ>HqM;SFMgPRT@@DBH]IIKIUZMRK5JDW=7/CaTLW7iG7EOC/3NGUDJkFN^SsOLSYYOR^KEIRSXfFR;KcYaEFG6kIMF=URUMMU8F^EFAINf=eOKM_VU>GNAC^MB\^>BK]O^`ZHMPi[=I@c@C?EEBLIbGGEDZOPWFJXoSMVJ[MJ8QnO_JLSGRPGKPK9HTVb?FSiInJKKQSVNXGFOTOAPGFCCRKMYVUNHSG^UC>FVLJRBIKoORFHBSNGYRLJLORhOG[RBPqLLA@]JGSV]bS@QcE[FFBSJFL>UaKSDFHENMNdEDRG[CIL>KGiYXKGTJDIFGQGBEYI@`MRPDVmUZVK;J?@NGEV9R>M>GL>?G>8LJA(9JIRU@=APIIAK?AENJCUHUD5IC=FINECS;3KE3[3BM7G<@E6IOGN^2CeEB?P4IL?I0K:L@BRT?GKBE5>@FT>LJG<>TC<J;V4L8LE?GNQCC>N5MX8LE8OG^EINQKZ>KDZMJMF291?=FAY@LB@@D0N?=GAA:?UG7CWDPTMRVKZLBOEEIDILFSJATuDKJOMKjHP/;^HNHCEPI=NR:EV>VHJg9SEKIO@@DhNVJHC9VH=QXPEp^IGJ8FRCHF=?LKXEXMLEG7BCKRB?PNFHB1@FUPNJCONH\HM;NYAZ@=UEZsrF=GAA;=E@P]D@QBQJ^;B?FPGJCNJ;M@KLMTWIXSJ9C=EAVLEGFI;?NU9DAGJUQ@HUFKB@QASE>SDIEKDOb?>RR:LH\;RULC@EEEKWFADHURJLF>LMLa;NUDF6?EQQJ9EKLKNTNBFKQb@ENJEJ;BV:HBTC;Jk;IKXTETQ?HUHREHPQGWQIN@CK?K;VCMP[OMeLGQQSFR=ENOLVQNN[BO@IF7IGQGFcGO^B@[CGACNC\M]U7XA@H>Qb@`]HDQGO8XEHWK\YFLOKCRRbFaUWPGuBLCCPQB:KNIGK=CWNHQS9HGcRWTHD;EDILOOLHaMIKRHKSDLVHGPHK>MUMPKRVOHHG;RIDR]CJPJP[\SJZMTXXPOJRGDI[@Dw:YPI_MZ_LDTQ[UPLRGSPF@HUPO>_2R;NNMJSHRcXJGPODIQA_/AGFPYNB9H?SAAMG@GAK=8?2P[P=FJAI=>4XKKDIHBFKF@;DCWN6MEH:3FLM=AJI9AUTKMF?ROIIQPO3EJRKGK:CQNDFP3@J?TEM]CIBWBPV>B@>??YNTD9_QMMYIH@K[J@CCSRNAP7FBTFOD@XALAIXE9DF?OjBEJJGMC=7M8NPNJ7QR;R?PCCNG\KQ?VIDBPCE=HWLB>J`;P5F?R=OTG4JI_TXK0>A9=HOO9IJ@-KOMKC4bF>TNPJJZJ6BHION>H@;C?7LF@OQLMCD8K@9@MLYSMCBAK=JA`U`\bC>FRGTO`EYBXBP;>lJTInC4LJMQ];ZslXMJvRT\MFU[H)PjQQUG^OLPFG7>LWH`@>CXXTO=Wn_QNJnHZROdILgdHl^UqEKksMI?JPOW:xS9YB^\CaLE\FQuJDLOPG\[|IX]RPQWWKRHE:ZVZVQSC5LLHUVNaFSO?Z@ESW>MWGR5UeRWYX>W[HebUcDVBWRLQQB>OQJDYO5[BT]E?Uc^Ae^Cac[Q>HXHDTHK;\N[EDHUS@GZHPMJOMBFWNBKMKDa_[UPW1PIK[NK_PjSOOEJYRJ;58Nc]PoSUgYEV?GBVA]:KgTM@Z]E6`JW^oOWH?D\HR{FNG@a^LL;KXFLQ_HY>hCB:XKJiW?^]HT`_Rk>@^XiJMJfOJP]RhYFV1KHIVTXKqDO:pQWXM?YC[IQ;sg^4MY_MICP[\JUaX;aUOPFOKVQAesJMtZZ.^?NoJDD^SV`8)VLlTrA9QESfO8`2HjE8\@8rhkNqG]\HYM!VVpSLR^8?Z?[^aMJJQY\GYTi_ECRKWU6uA`Yr0SYgtZBF=2Z&[ZXXR\eUcZMVDJDc[MX4=^dliBU`QyRmKXPR\GYSfaA16JNO7UTu`U}FY<6\FTR4Q#ePWmT?N`9:jKAjxLdLkGo?HBy]OARFTCMAMlA:VKnB;PUojROIITKA]GXTBBZIjX[7YMKkqTdOTH5UGQ?:W2O2PH\ZGU=hO}3>?NO,KMTVAe@\RIGMDDNgF\NIGDGMMNjAHDJUODGD[RI>L_[AVfKMIQLOIGJMK9JD7CTKAQQBY?ONXP^RR9OJ^CEC?RIEXLMSJ?DYP?IG_KGLAJYBHWK\QGDKP7DW[tPEDXTFDEe]HAM`OQWQACJ^@@OOIMG[BQFNPFP>QL:GGKWFT>Kc6SHAMCKF=BIOTVBMDIIMLEkXQLUWRH^@TIS8G9H8BHRMEYIQW=O8IITLDHDH=O\U@_OJOIQBfQCMBCUGE?IUEE@EGM`5PR@LePEFVUUJGL^VHAUXOY;XBIBKA;T;KJ?[PB8V>P{Q^PL7PQW^>KSJFM\J/KTK^DO.FJMDJL?LMTGEHB4`GDMN;HFE7Sd_iE=IINGDIMHTMDHOV]UF`[MRRba:SRN=TKSIL9fCLYdE\EQHEFHMCWBWMTW:KG37DJ?FCH4OKXFb?;3OAH`EIKJKQOV@iFMAEPUWLf=N@NG;I=CN6XHNAI]O[4HQHSMDMBGIXLBKMk?GNENRBQ?OSI:OELD@IHIJ[DMC;QTKH:JJEU=FU:OIFKGEE?AP`EC;MF>>JQO_l@RJKbNDKGDBMHGCOHNEJXEQjILAR^Af]NLGTM;JKFZFPW@D\JGB=GCEOADCG^?:MC?OQ{5>H>D;@XI@_CYGM3CIRHP>OKK;Ti_hkYZFg\dPT_b]g:dg^YZgdij_O]\]V\W``Mdcbe\^S`lWegikaotijr]g`mdea_`[]c\LC_]UaVKb]e|c_d]TZ]nGhZ]KcWkZBZ\bemYch^Yf^_fGefapclZTedP\UXX^g`waVf]Xgb^_^kZdmUjgWtM[Ue\\c^Sdab`9OhlSRLh_WZZbcme^`__HhZ^ZdbdZS_XRWb^^dq`aibogWNTbpPZt\`ekgtlbrb[m^PBb_VWabRoMOUm~gbZYq^`dk_Zh[_XZflX^^YycPXV\d\NvYcjh_Y`c]\Yl[SiWaYXb`zrUVibrba`alXfdWl\jcqev[R[bcdSK__acjn[vdjerd[dvbfUVgXgyhhY]^ai`X]ubeiedek^hWhjdf]SITLND^7U>NWGRFM^haKMGBK<>GHKiHNNXHDS[VE>YQaR=NKM`LFGTOSRG]]HdJZUFOFPDPUYSIUTXUUFLGMWTMCWN=LCPqnDUZTLWFTYFMOIK]RnNENP^P^fINOYXXKYYJNJGeP[RHaZZMMONRIYbQ_NHNYRYjKFfKOf^\ZHUu;cpNMWQPSPX\@ONWSVQA_VIPhMEHJWPPLGNMZLP]\QDRSf_K>NRVM[]IUuMkFYWO@QpYSKHFMQORVNCHV7<=LCNhZQ?OHCH`V`DSJcHF=MJ9ENDMKC]@TFNRdKO>RJFEWYEH?DUFZDAKCTLJQEXVUHD>EJSWHQDCR=F@?b:PO7HkE8LKQ@?IHMO=DMBThNT;UAEDLHM4B]GL[CPVJOMOL4P\TQSEnCT92VBdH\C?LO^SM=T^A_BK@PNIID>JFLJ@PUF:FTK?C\X?AScMTAFMEFOQ[IZQ:GHBB^QF>SJMFMPHHDZ`XMHLUPJXDSVCBDPOMMQM_LDGAHZLON@WfMKK9ZHfKVR@BHFF@WKBbTCFGYMA2RJTE^MJCIR==SD:bHFSPc?X<\LGMIARNKHQI/BSNFE>WB6PRFFiJvP^FeNHSSIbQ?Qh@9V^S@ODWNFQR=HKPOIAPnGIEKYGM8FKCDcFNFR_JBUHOWD1XZAGMOCKFM=A>HOG@KZKCGR>AJJP\DcCKPcMMJMOSQQNC@4:R[dIeEPlJh[G_UOADQP[HKLF?ONT_JE<>L?\FDIFlJJHDR@GDPSYUbAnbYKeN]SLRNU[EaP;ZSP=IRQ=QMaW/NYMCH?MR@RtKRLOMHPOI6R[S@Qa9PRKZO@IJ[MXDaDWHQJEDFG@\E\GNEQ>QUbRD=M?KMW\JX4T8[EZBS>Y=IIEMZ?N5Y?^IOMJGBZeZAWE8VEN:L>`=SPJPYeSI>UHMN:QKTBDBYXNBM\JEDLYSNMKLITfVH5RFFEUQ6@IR>K:FQC;W2=NA;L6JHQE=WNHAQBKMaIKBZNIP9=EQPPVP?PMANcMT>]UQNN]L\L<>FS:OOLGIA=M6K;RGK@\FDY>D8>CRu>2IYLOK:9IEOBKJ=EdWPLK7gYF/FX5EJ^XHZNGc<]b^dVZTJIMO9FU[U8>YA\D<9RLKD>`3V:GP:XJYBShBSP<~RCUS'WFP8F?KeJP:?ZvRGDR=HAEDXLHHGdNE7g@>SWPQFO1=e4UL4DY\Q=DT2HAI=G^F/FJ[U=dIbOMPNNESQS9QPNGCMDe;l[H=8J@E=?VNQ6FRVP&RIQ5RS>MQ?Y^]jL]P8YnNS8E6>XAD;|?k@@@M;?p:TAj=HOP3:v99fHKDDA6ND:TM=IDAFH[?FHO@@NJa8XRBS7A?Q8EJYZGK?GFEDUQDK@MZd6DSU>MZ?6UEIYW]KVYCWHZJLcKBK7RV[KPP<;ESO>BP3QI]NEPNLWBIEGG?BCTAO6YO1ITDPUg5FD@Z8@LZMTA?C1WFDLA>I7X6YL[FNJF>7SIHSKFF/@E?JQ4AGML?9?MWBBMcO=?@NN;X9Of@CRSc>89QHZEQFI?[JT;[GYXAF4JJQD@CMWMBN\8bZUM:VL=P2D.HBP2RNB_MMPFOXB1kM>MKF*UEX2ZNH8_E@PkbX@8^DTRNJE@VKOR>UDXMAMEM5RDITLEKQ\@8IGaFJB\ZHRHJXT^[`X6FNDKDFNHADTJMKEJ;=JDMDQ@[MJ^/JA7HREBCNPcSN?^IRJ?BIIGPS7GHYB7J\[ERW6MSYMS<6Y=RQTa@KILMIPRNJVbX[OdM+7OFK`CF:DF[:KZTNKF8\9KKFM]9;KL=RM@F^6PWJ_NQL>@_LCRE]LLQO~HBD>PNI`DLXMAJBRY=D;DI=GHZOIL\2RTHE=FI4IMD198V@DF>D@GXKC;LXI?CHJM@CLHA]G?q3KSJ?KAACA9YIG8:EPIK=FMRFFN?Q>=>LIFNSH;?=N;B@<9UHDS^XG==EFCHIJ1@TEB9AaGHBCOA@HP:H?H?Ze3F8?LD@?;@K48ZCDVNUOB:@F?@s7[2``GBDa@A]M?=8l6R<:>:BHW<4mA0`>@BfF^O7Fg6LHEDN>?RG:IBE?PJEKBI3O?D:7G;4TKEQ7MQ5N+C7;ND5H@[FFKGDJFPH;E_79GQDH>QNK;2=LMPAhEC@E?DB;CWD?=>DEIT:KF;E494G:G\U:7:I@BGGEEH?>QFRNQ>0]GIAY\NL[JX9MGUITGYcRKG`GJLLXVQL;QE:TOFQLXBPTK[P>=NCUJ=BHHNYK>;HI8O?^H8UAFYIFIHLE^L\DMEOGIBACCPNLHGF:TRFPFNGabKLPIKNONQAV`MGJKRKHYTK>I7TVFARUS=PJZ@PMTGGXTkITSBCE:HAIEQXRKCN6SOFBJKJBJH]FCLQV=EOYQMRMUFLAJQ>L9O=VGKEN:ECPNMV@OHDIICHHQM>MOtCHHCTEQGNBEXSIJMNZI?DEU@BCQ8R;XEANFHF=HFO_GK7H>?ART`IAI@OIZR]QRHDhL@ITMCPOIFK>CCNFSC9]FB>JSMINH9OaZN|>BBM@?ANBLBYAZC[TKOBQEYEAIOKPJT?B@KXGFR=VCMHLGJUFBYAIIEKD\PR=ZX>?XGE;IKBAHR`TILKLRHY@NM@MNKOLF^PY;MPAM:ILR]Pl?JRWF^<ACOA9ESQO\U]JLGKKNFVFDK>LHELLRC@H;JGJPJCohLIq8PNPmVSWTIVKGQ@VRMOWC-NLOR`LSKW;JNBCOX\OJRO]MK\CRSVC=PKcYa[QHX[W:LKFSFJWHWJCGKGXb?_RMCQNbU[<>HODUEMW\SUDJKEE\Y>H[EEJ@QVFJ6ZROB9;>FW6FB`KHHTLHHJJiERWN>IGVVDfAOBdLYL^HGK[8TAIRKKPTRV[FRL\WR>OLRJWKG;[PC6WCA=rbMAAGCmTJKNTAfF>KFQP_OCQO`;QSEMNMBENLvTSGRRFNLb;TH\_O?L8KJF@BO@>?LWZR>LDHPBL?F:;DJ;NDK>EHM9DIC=<>REWS>9P@D92A?FKKHN@LQRFEHO4@9LCEBLIFFK6HUO@FHQ-P;>FNDSGAXIP>@XSOGNMFC66K:IPJL9LJ?FAIK>DBVI;D=FAM?LNCPKRI;=HAEPO9L@HQPJ@DH?LAN9>SI;EG@?M??CBK:F;=;?>END7DC:BAIETGIHJEAHAAIGCKR?IDM>IJUHMIHE\EJLOTYZKZyKRK/IRLXDIMUWAGPQaUJJ\?MSFM=QJAA[[KDOYOJe_H>DvPQoA]LQ]JNKP_HV^\VGGNWUbLISHVPMIOVILR?W[aOJWUDMzOPYHaBMhUQV`LNXJEJHDVYDHPHDSMJLLVNL?_tZKD]XCWZE?VHSRRGPGAcPZS>BWNK^SKbrBCR?ISBZXJwHTMQrIOMFTK?DCmJSMPMSKWQBUKGYP@HTQCB^HNMP>QRAZBI?YBQUHTMxRETCH=Q?JKP@P?C_FGTFYlOG;QJNvZKZXKkOUGYkTBG@DLVHB?RJOEBROFZLXOJGOEPEFMSJx?>KNY:K?JFQKSJDIE6IVjIRCNw=B?BkE=IPK@{TJLGlhH\DELPGGNNNTUOcL>QMUKRIKGY\RHLVYRMJQEJOHNJLIUObgINtkRQR]OCKVxANIALLGG@XDWYL\FjDK@LJXHHG[EAI`eQLHNTeLLILIEEBBMoHF@TGADQHYSXLJ?C=MMNHROcEPPLNHEKPKGVKQSSGIWFLSR=FPZUHJpF[PIMSbNGGNETIIQGOaGUeCKKLNBLNeSTH^IMfRVg[GFGFDQHaQJMNYPMIQaJPZHWIOCRUNZBSDrOepJIHYEJ\@ROOFGLSEaSHGSESJGQHUHIELmHZOKSF?GYUKQ~QOYaxMHyOQMYOMMUOPHG@\PKMVEDJNYDVgOSWPS\^VKOhJ]MQNhHMKHSQ@RJGGDINWJKJGONdCGCXPGUO<>ViNMUPDLUKJRHFcQ]J5F5eV4;`?4PIFM=@AC5;QRKVK*NNWITI@KEMTG6HIDaY_GKKJ[SeT\KQC[H?MME7EHN]LElHE=CS`5[S+CP;QCKDLNK6:KE@OgJ:OT8LLGTJJNJ:;V>OJHMbS/LHO:LGPM;FGDC?FPIF8AVT>]LZ?SHU;J@6?8]JM^=KYK@8UHOUN8QC`4`FCF?FXNMBVVEI?MLWCFJH1HTAFTYOIU>XMDAK@VNdQ>TO8JKN<@ROW<>Qr=LFUS;MAP:JDNGPBAWHCAD4EBYEPO=F@`I3BESAGY:[Q;QPGML]aNQOS9=YgoF2?IRCITcWGOGXGWZVD?ABFPC=LdxC[Wc\CKOB6?EOEI`M96MFv@A9W]JZW==QAEMNSf@5V:@A[^IGK@HVbGCNC>KOAXCQ:E\GMO?SLSPD35ROMI@GWJKJICPF@PHQLU;SkUHa:DNGBZ>C=IGQLLcRTW=5KBP>SVO_IN>TYER@WE:sG:M94QF>LK]JPBBN?LMHJZN:DDD@nUITHLM8QPIACHM>N6bIKPDIFZVSQLRGKOWDROKKSIALSIBh?Ekn;;uGI?PDFIEFO?N_\KILQFC:YWGSL[LKU}GYZNJDQHH8JPQ\YK>XEQ@UQ`GBPIOMLCeggASD\`=QEMPLJLNCTO>JRIYNMIgaFDNYZPU9Q^F@ODGOLVARN[UIMMLSFEwTVQVMKPRBNBxRXJNUBPAFOPEQWKTNSDSLJi}MCHJM>M|PLGE^OJE>BFLIQBQTBB`cc]GXTC9hDEVKISO3JnAPUR?>8D+GOIUVHOf]INdmhQ^P=P:kKEllp[[U2HaFLT7?AIMGQPhaWCWGD;YVMG9\UJRWcVI3n>Z[\VC9A@SULdORFR[;LWhZgSbAC=K?jWJ5nFD9NHFTNVSAM]CaIN0=cDDYMKeYOS=*]I:3SvHNRiNQjPDKCiaGKR^V5V[M1L8sKAJQO9IHKb`YJEH5JNTQKmHAK6fJ[eMTTTFF9cHanVbC(AM[J?^@UWHED`NafDbJdGNBiOI@V_HTGMDNVJNK?HOXW;VFUYTSMQHG>LDLA@QOPbBY]HJQM?LIKLG?DEQ:ABrI^PSMDIMWQB=JQ8_ASJLS>RSC:SCEPCNQi`KPGFG>BGWSLIcDQ9EK]TZJ>dHLK@TMJS?QTJbOKCQC^@ERAU>mNH>TFCPSBSAFOPV5RL:IJIBRPJGNTIS9JJIHRL@KM^PNSMj\XGT>F_=ULO>RK>m@:O>CFQTeDCXDJIKF]JC7SQF:\aMF=hFzLIWVE:PKPPWPUOdNCGPQSh@KIGOUEV=CN0E=G>JSEOGPEHXmQT<\HBEAILCO?IXDKO9K]]JYE8LKQ67IK;E?M9EM:OJ6/>9ZJT?DE5Q@[?EF5ADMLMJJK9-/FBOIH\CE9TP+J5:XO;FCAGU5UOOOH=QIDP?:D4FUI=NRM:Y=D>XK238L?iUJ[J@PVT8LFM\JCEQKDD=HGGNEIO=EGLWUYWDF+Q<;8;I>P1XJON2AKQEBKLI]:QN,NRNQAC<9;FW>RPOR[6@F38C9E=D9RB:HLZ6:9G87@5EPK=IJFIBLT7>YO>@9N9FC?=EACNEN79OJUGNMHG?TBI?@F3D9NVDFNAQNC>E:;9@:_DH>8JWDQC>HCOH?_MFLGPUSYZP^VGBXHFGHPbMRH}s{S\LQFsLOK9JKUEB]YT@VURVNXGRHxQWQNBHNVGKTKNVNOFdXZMGSNOSKX?BIOkLRWU]@R`iPhJgXQNYRBR^LFPoURRSQKMY]`RSP]OXL|?PqVNLZIXdPUIkHF\LIOOAL[MHlPSKQ?CSfQNLMRILNSLMUWJHfeLGV_JUtMGHGVHQmY?[8P[NGVPR|STSOMbVAKENR;dDEMPsMDJDQNGmRYJAXGFSdIiYFVhKNMMHMZuNNH\Q]YH^_DW@AznW\SffIJKGUNVRWVEJSHYHRNP\SIRHFCKLSGLUZMpGPSHFQHYGJsQCVFEJNLW]VEbQ9MNpQhNPQDdNGa\QI^APUSNNGKQPINJMGAD@I7ZIMGENQ]B?]G=:3B6EBFCOUG^DBaVZA;AIR5+OGI^HX95RJFFDHOCBD8QOLDZCOR\\8:LMLHeFETRAR>ZFO8G:G@U70B5[^SAHKI>9@QKLFGKV6ICAHH6R@BEL<PPVCCPB=VQSRMFSB>EJCAF@YBO<>XB7LIB5CVNZCA?=ECAJ>6\QJ[=@H>lLCMCIOHIBLaG99G5nJNOSB@D78BI4C>AS5GFDZIBFFFLD>\V@LQJBBOE`O=@?F4IEE;A:KWNKFPA4GNL@C7LIL-EaD:K;R6ENNDCLBCBGLC>>9B7BLLA;@N@RUDGU;=K?3M;K@9AAKMJBLD:EK;7?IL;ACGQKDICGEG5OHSR^HAQ>C9EG6HD7CFNAIFG=FLBHDCQ@;DCGF>@@GDG=<;H>DFA:FEEB=?EG=;=9CGE;D?;;@A:?CBEC=;AC@=<6EG=A@AEC<9:@FDCA?;CBA9B6:ED?@>E;B8BJ@E;=5hD?F979@2=?=K6D@JBP@H93<>@3;CBD?:<>9QFK>C>CCXMHE?BLKACGI@JJI@C?A?IB7;;:G:I>5;D=G7GC?I@AEGC?IK8H@@BHABAODJJ=7H<9BDJ3H?NL_RFH`MCVQRVe?L6R^GE^`KBFTYdP\XEadNOYJINQ1KMHDCIMKJM]WhPX]CWDHTLaNBz[MWReIHULUQHZTCEAs@IZQTKDIP\=DSKOO[DLcH\Q?MV;kK^MT@_5Q>II`YeMGm?EFyYHHLNRYmMOOCICgNOgPWJGE\TRMGTIYNZNZWWNXOVaZ\WU[HHTYHK`NPI@HU\HZH8[MOCMm;7>cVXYC[BDRCHJRh>B:BGDVSNDLHAd>=QTHNR?I^S:GEQBOGL@IQUFE>BVDGP<@PKBR\bDEHKEPKGJDP2:OSRP8>QJSQCR?J9MJgLBDCHFI?NP?F>=BBNED@OSC8DCTFCVHQWGC\/HRJS'IJRIB>EaLQHX8J=OH?LDLLLJLRPOEUOD[8FDXF>KY@MMSuQQCL>L:3BD?>F77:9D>NADE99=K=EJAMGE@6?GVBFJ;J9@:A=IEEDFEHCDB?J=M1PMFS>OBEI8@>?7=C;D?@8NK@=FLDE=7@LMN>E=<=DI==@C@B@;?LGH4G;?@D9DG1ED3GBA=?E>@A;\E64:KDD>E:?492D75KBGEE7D4KENHF:?AJ>EJDBG4DKE8I?NCG@A:GJ9J;D?FBBFGFL?C6CKEP4?>R4A647@E@GHE;BDO?KC?FIBBAHCFRC?>CECE>>@BAAF;GMB;@FIEhVTQXGEKPnS@T>@lIPV[@DN>AKPf?YF8;[>@JGL];MZRV?WKFWP5F?D6VDREUBTSROIQTL@QXAQGzE[RSGRDQ_LP;KGNUJIPWNPJKMJB;YtFWJSHNeWUQNHXYNHSMQNUCQHOOHMo?BBPSCGBdD>CPHEQNDRLaLUTHlF=DFNiRNB4KRKRJ}VOD]EFD=YAT7NSKQG7iMMDUN_NJNKJNO_QKdP@FL>D=JL>AMPKaMeIDRWJPUERPGLGBGJBUEJ@OT@JSGAGIQNJNIB?Q8>NPGA9ESQGGWF7Z=QAP8JGm1PQBPIDG0KMP@WGV;M^7OAEKLKGk=FOBFBJAMLJ=;MTEJFIBD[BNNICB9L>CF@QODPY?YWBDHHNM?VPEGCCiIILF=[N@AeKA\KPfLDOIMEX9?^UNJO:IJEAA?[M[PK]NP7H:D>HJ`A:IN@L?@GBZSB;SJBKTPC4>F@@[OA8JJMfQ=EF>NMDKBDOP5ZPIPQL8B?L;>LP=Z^JEL`KFQSF=C;HLJCXYCCHMK[CLITVLOEKFCH4WCWLGGHGTHDHIB5G39CLIPE>TEFCF;B@OLRJXK@DV7U^OG9SHBZI6BgO2AEBA@HRQ6FBD4TH3FR.Q9?L?SBMEYFQmDOBM:P[8@NR?=?H`NDPY?7ML0BDQPGK5:LMPXO>PO=\CfGJMRHLC9KkaKPK\?BMDDI6eLFJIQLPN9EIYKHDW@jRZFW;L?OKZDGNPTAEPSFLK6A?HM@RN;WTRNGBPL`m9K@XT:L]YYTS;\K4cHCHENNC\?UJT67HIQF@LdAm>D@IMaKQFN@QKUCSC@PDTSDVFU2>TWAS\a<;HXIMWA=NWD>PDIIDVFCNF9?EX^E;@QBY7BTAYE@AD>hFBU?H8B5MJI>;\6BOD@A;EN9J8;EJ8FJ@GNP>JBOF1BBCFXLE<>ZDGLEK[TG@/DFX5NPB`VQoFAJHCJIF:p@;?A-ULGWW-AJAMMBDW>GU=06C6M:EHZjMOSFbO:@JIJTHGP@FZA\EUVD;AHKMqHD=MQGQJFJILFQ7IRB6@BC@IPBMN;?;ITHpo3NS?=LTFBZ>:O7JcIMN3G@MMPGAB<=RIA>=HCKX:[MK:DW;QOCl@8w@L>N55Ee6u@>NERR>TT:KHDGNAGQ:IEDXL7JCA6SR4PQB6=CMM@JJ?D2Q;VThOP>KaLHDKGV/KBVsMNOT;OFB?9CHR`JNTOF<>SLOEDJMOVHMWSN;CiP]^;K;ADCCNJDIOG@?INF@ENqMP@FgPLQKJAGI_MO;KQ=DK=OO;j<_AS;@G9EZP]^WEIK@iS3:DQFAK?FRFII@0=2W^IUH:N8IHLRHMJQFREKTP\MJIHLObCE@BE^LIE?PDDGA/TI8B4MACMJLOLT8UR=PGNB@HNjN@MEIML=:PF9IDAC?CCW>6?AHMCATOLJEAj]F@7YZBNA\P@:[BRSRJ=@72SlAkFO/:J`:HQAH\SR?]|GrSCTJoiV^ESQ>PJ^_I/haMkViZWe^KK\Kv\SB[0;V\ZO`@9j<8cg?[ZGKUK[STeRCQTj6Rb\a8_FOTGJGXXbD>`@h9__U;XN,Q]6XSl_NbSOC^4BQJ7Njk^FKXa?N=A5VY[PW\JND\C_p:_]L<4W9b7KOaeI_I]?j9EN@*=L^yQQ8KMDB:]L^?_W=Kc9OgN.AjJlJa_BcJTTW5bBL>b]4A2YJY`WNiZl90QyW_U\BpS75xYDkX/lI7NFQK4,IT7H?:KD;IDVG?Q2IZbG>@/PHBOWZO<\QJIv=>S<=HLKDKGNRP?LC@?D>JOT8>C.:8C6Q+:QL>=:CFJ`IOT7=[Z@7JEFUAgCOO9LM+4C>j10ND??THODHHRC>O;Y2EVB0V$7BOIHPO5\;\X6=P@[DF?ZM@Z4KE;TH7RGI?NAN=SQQVCGDGJKTKWJ>BK=K3@/:HEP=6V3HRNaSGBO8ZCXW`UQCNHEPN9F^HGW;IMA;EB9/I@ES-HCD;FPHM9WHZP^GXFe8DWS]YLGNLF/HLKB?GW64D;8BJI+>ESBDbC?A@;NEBIIOH>B:@HBBGPHF@ACDZCB@=IE:FAACA>9LIF@I<@?@4H7DT>7:K3A?AE=CIC::FL<`L>AFK;R>K@ALBCB799B=9F>BJAMA3>@?<8FKIAJCP=VGJ:?L=@JDMZ9LGP;DJAA6GOFD9LA?O5@:@46@F6:SABH@AOM@AG9<5OF@BLBGCFFBO3BHF?C98N=C9HGPE;ID@@8FA7B5D8SNDD:E8F>DMMI<:KCJ?@K6DF=9KJBB9GAD3C;FC:LD>F@G?AdeamheNicipr^M[n_SgW\kUZ_\etZW`XehY^ggV^tb\NYcTa`UdQVTpYf^ZhZVUr^mY[dWSeyh]l][YdfkZZcdlZOo\MS]c_g[cMbfpWWe_gVNVof_aZclYbmd\aiZ^XZac\Qm]cbusdPQZed\\ZY\[^v]X^^^]jUWaeb[fZll]a`ja[ebPneWVjjgnO\ZaekcVa[h]^]`laNnnshQYK[]gYRcdYj[_jkRN^T]elgibhUWmQWcldc[Zk_ic\cbUgZfXUfdgj`gdXXdwQdYaanb`[iJfZa^c]eRtT[Zegl__ag[g_^abh\^fimca]]W^b}^dgQ^KgL^W]bbYe_foQjhjXad`ijh\[da]i]a\OjIYkkia^zYaXX\psj\_fKqS?LLA3PFWNABAB9>KYI[4II?g?HHBYC;@OTLFEP?GKLOGG:LG@wFGN:QLHKNPLX\AAFAB=3P7MBG>JeUTFUT=ATPUC=YH<\>EIGKQNQVIH;9NPRKQPESGMZTPG=MPJNPS@NNJCABiAGQPXMMGBDBI\aHOOAAAVRK\>CXLQaTCaC9F>6KLCG?VVG\:ABOIVH7MMHBGCKWD?FYRHKI9PEFTNR1HPUU]aF[GASJQ=HI6VCQM@ZEVPXGSKKQJ[kGJQrBTQCYUNG@JGDD@BD]MK=C7QLORE?DOH=YQ>]HY=DTEi>H,H7NI>U<:JPF.ISNRYJHKHMIA;OFUSHN:@>WDFJCE]SLFKGAMS[.J^MFN@9WLMS8KQTZg;bi\ZO3QSoZHW5i6XS^WL@KN^Z4jqKRR4e2TH[CPSfGMEPfXQ8?-fE9[SRLO=gVTT?RBX`k;&Lx;S>?EZD_zNSXeHNCZbZRKFKIP=C=YGg=BAGLS?iV`07QPPDAWCIZY4VKECcJQ^P_>JDIRBVF=G?_fPANlRQJC4bHBZMH\PDHeTV::LJBKHFEKQXT;RWVKR>S>XUHJGNWSQJgSRLGEFIPFUTBVeWK_JC9AMPIOIRNHJ>OXdDIFH;@LKXFYWITXK9f>=LaXDGJGIYHME>QQcDG:FGOMXNIEH:\ADCSVR;@@NGSUFFQIWMCW`GG]FEDCKLLKPFMA>9RPJF\ROE.LU[KRQDFWVKJPELSIIF<;=CWUcX8UQFKB>MaHEaLEJ[`kDRDda?W;HK>[IP;TI@MSJV7ILETHTFFFNNMNYPDVPTVJXJHKEHU@WWHU_M?RNWUIMF_GLFCFWULNEAK9IJ\IU>CTCUFMBTEMMAZPSIBMTMMJPZYST9M>PNHG>QNOK=iRnIMLD9K>FO]FB_[S=@XILQGZ=OFT?GKKMKALHQ^GIPH@Ok=SQKLOMQUGQY7HN?RFDFKFIP[NGE?a:TBL@{C[Y@:AHAOIAL[JAYEITQJ?RF^IPDIQGBIWIK?T`T8f9[FAYBIO?F>NUIDQE[H>QRVMLXAIHCELRPM?OFCDHGJNFA>>KM=J8RTKNZFRKXOCHR?i@CG?\6GH`YEVH=O1AMMYKKFW@i8]GHEKD:@=)BHAWON<K[U;6HSK[\>DDM:?;FD3V;@BSJ`>FYLUT??L7CK9WHBk8V3fJH>TYYF`QSaAsUA@TU_LB=JGHHLCFDK=^SLF?@BQDPRRJ>K=MIVf5DUJZJa9YEK\U>TMH;;S:ATNACMPSREJK[EYU5PGG>IqOWDHQGSCHNCDSVRYGDW[KBN@P@AHG9GBZ=SI>WCN?L?P@OTA]U\@S=LC8UFLPBV@0BKCOACEVGAV=@>FOSXAPJT2NJLAD@7:FKSKFNMlNC@TFWDRKBLR\QFAQ69OTKC4?gI7D7SJKUHKWDW@WJQ`HGIRKEVC@8BQZ.JSQ=FCKS6JDFE>@L?=BKFIMNB6KTNS?_FRH`<;T^EFOdFCIXMYH]NNHFPk>bLfLVC:MMEJVORQW>IEKX?Pa2GJCIJPNX[ZHj`JMaD@^mWNYMUX\]PCKTSDVIQAsGVSXVFNVC_QVLVaD`DHSGF_GGLMGRdLYQW[GzJbHe]MgOOOLMNHcWLVQJ]OKSLITRLmTAlVIJ\IIV[HNS~=FLFCIHPRL[[MQFSQLMQVvMU@OENUaPRENBaQEI9M]JWcQsc@BKSNHZJYNPAHLSWBE_fDEM`=LaDR?LZOFb>TRK`OP]Vl]H\yXKWFmLhLVDTUR?SLKO^=\k=T@HLWBFESMHfGK>SQ?XsKmTJHBBW\N`DKZijFZ@IVM`KNDZSHHS`MBEPLMWJEYMPiUTiL>T_TeGUCOdIPRDM?=PSk\DNLCRBJGVL^CMWORVq=PL]qBBAVTPIHV[NCHO[K`mYK@DUxWVX?LSDRY?`oLJXSKNPJFJMJRWLGNJKBTM=L7)XZ=CDEa^WX0G;D?9>KPQ@?=Uf?ETPWDU[LI`F[L3TRLBLJ37KIEBCSUU@WFOKAESF4QTUMHD?CXQREMEaDMOMOJO>4XIaA=INPECAWk@P?KWIQU@UMFsBUHZ^[DLJHMDWFLSL65HUCZdQySIC0d6>[[KR?N:JU7IEOET>EM8XC]K>QAE>B4;E>QNSE?ddDQAQLFKZ]MKT7=mCEE0MSZJWJX<=IZZ5XSCSCVKIKSBG=7=H[_IV=?SCIFTRJDIB\=OElC\HMd\_VWENVeY7OG[dJFNJJIEDJWUP9QPYTIDISLTMNT@T]7HNLOHASRXEM4YJJS`;FF\KSdJTGfIB^CEVJ`JaZCTfG9h[OOFLfTCTBE?YZMSNAJGNI?EQTTCDWEL^JSgI>FM>UPU6OOCIXR;XM;KWBHJN7_LtEfSQK>QKAKL;dP8VSMSHKEDY:Hc^BISBYH;KTOTHCOZoNRFMdNEA-?AWEPFHNYAGXSHLJTKQK@e[MZNGRFXD>IHBBBUV][cHKGI9GU]D\BFKDEIh\LJTBAJdR;SQLSFWLNKX^DZIiDTNT?TPOEZTLAJTSKKDHFXWST@LR?@LJWaWGCPA@UKQHG[=X`K[KQREXIVGMGDBDBM`NTXU?GPKM]SKU]EIJRNN?aKVJ;?L,@USE1aLMEDYgDTHEJF@R>SOEaMJUOMGCDANORW]AQJE>BGQBLEGDEKJL@HYN9EBRIJIX@9DBJ>HD9@EMOSI8L`Q:FLBTHOG@>I8NQ@@JTIP@ZOSIFJMJ>??SHR?F[D?AHYdL8HNERPK@SILJVL[^FMBQaEFEHDFK@BRMR;HA@IM?SUISHLYZTRIOJZ\SOGeaCa`D\DGMML@W[NRDi3VVMQCJBIUKQQEQILKLTMPCHWWfIUOPWX>@>;Z8ZG9XNSE?_7KQMMNDeJ?GFEF\FNOCMGG@JbCSWKN=CLKWNSIJhRIH?EBTJNSFYIM68STM_MWPLQ[ECO=NQI;QV\NMJCPI^JL]MGJJ5VFQMM9HjXRQzG?HRPcPPOTCJDGK\GDIYRQO^Q>Pb`Eb\IUEMK\OLBX-ORGJCJLI\Hdh\QOGK<@NCKKNHB8H9FSHREwdJXXMQCMUNMEK@dLFaWOERN@NZH@;@=F@KF\DDMVLELQOFO_EKC[cUSQ]URETHCHDhFTCEKRPSGLKAH8MLGOTGHNXUMVBACCJQWR=N>QVLakQ@Y>VVXHQmGVRDSHNB`AOPGFV[NE_P@HCHCCEOTSHPE9P=K9PG5DGVINBNRCOUABKt@VYD@6E@VJHBXAIb8>CB9W?LLYNA?P]E9IC>UUPAUMK@KH/ESEBE5BKFLIJSMHGW;GK]DNFTAMGF9XAOHEQ8GM>WJ;JB=UHQ2JG2NIM2FL92NaN5>JKPE@Gb9=DQ9J?7LLDVPYNSLXABOV5BOK:WW>N9[TGC:SBMGNGCCHH@H:>AU`E;YGD68?EBHG;6HCLBT7DFJBA>UFLFUbM?-AKFDT8==ONNLB^3ZHA5YKQotVS\@pOZO4V28Q]=_>DV:TNNYaRE`]YNVVLk[QTEuDO6JX@YMFLZ7GF931]e]7VKRkTLTP8C^GSp^E?YSPBfH5;=3PTfMBDUN6K>Q9Y+YO^LS5YM?[EcMQ;KT@IQcY?IE]JL[O:WfILM9cOHZPC[MIisSQSkLOQjDRROHLFEHHRA`=FVLZ[RQOTWZPXh_OScKL_ZeGCPHOFMPGMPMGEPYFRQXNLQw\SqFTWFCULdFpFNVSPnCWRPiMLFTF\MxRGgOOIOOIPNGWFWUG>@EORJLDLC~OUMGKCJWIVBRPHHXITGRMYCVYKVUPHGOMaLPRMTJ^X>DFQUTZQKQJMHBNUJQPIgYBCQYOiKDMMHeLDKJTLENKXRQRMgFB@NKPGA>ZEZhBSPaOUOXROAIEMQM?GWCIHI=QIGJJDVGLUWTLYK?QFTLcEVSKPKRLUOWED]\GOQkAECL[KVpFigWH|WH@JRR[OOEOQPP^ILLRRGWQM=L@S^Q_jXPIW?G@EFTVO>HGOPPBD[C]`8\G;T>IOSM;H4CChGGS:S[[YOJfJ^^XRFHYKPLaE2PHVOCb1:PMWRG@DiJB@A[CY3IP5P7TDIYRPKbCSFOFWMKMESFDb;AEFbXUJYKE]7D_2UKKQSCTSOXJ:OONIGRJAF?BLIF;GBWE=Q"CEDEL?FAVJQMIMSS7EDaVUB9P[8HJS8:QLV\C>FJBJGB=d\OKEWmGXP]WM?JXSE@>P;9WJF?TKa?JIVEMF@GOUaEFN9CCg81OH>KXJZ@SG:MO}_abQSDZC>ZEL>DTH:2OLf<`QI`OR^S8HL?BIH>]ETIXYCJHLCOIEONGMUNMJ\tjM4QnTO_T@MD8JZOBZQjS[O?ZG1P>^^QNEIs=L@SG?ZD<7aC?DSCMLPFL;NLIUH=LMJiTEKVPVR9D`RyFMD^OQIUU:SaJBJNUZ9GQNfMEYr=`BQFZWULETIN9<6`tG5>uSIHXZ|FDOFHPRUCNGIVREPHLCfMW;MAITQNFNOKL@:RJZMXF]V5_STAmTI\JXI=YKECEIF=;GJq+UKUJD;BS;:ATfH[MGON2FGM?BWB_JC1l=?=<:AMG?EE6?M3;AYC:9=\lCX:e#=GW1>JP9SLFWK/L\J?KE7OGZE9MBYGIK=UBSBTJANBLBG<;L?hBLDEh:>T>T5+WCYBS-ICTYI:BDC8;Q@G?NWHJR91MJ?PQP5\:C)B>?;:Kp8SW/BNC6XJKXHNF?CK8UWG:WDDE>D:=FKX1F_M?EHDAQI?Pl:UH@HXGA0ULX;QEMK6CCDRDGHE?YGQONR[F8SO@FWI9JOEH]cLUWLEAUN>KI?S?hRMKGKSS=PSIu_MHPIPM5URU_L@?]NQJZ\6=M>H@DCMLLVM?HgNOM_BZGh9:USFMICIDL@OT>b1Q6@GTLIHNJHHHODSNALAS]CMCMCSGJE?99ERUG=IHGFPBC@BO@FFLWN:[ICNO8KFWCPT:D;65@W2RJGLG>UFBDMMK8NZAKD>MJs?BFA:CE>5I[S?ME9=OJRNCQH=R@ITQ@><@BRDT7[9D`LHF`PILMMIEN=BBEUESQ?ChA?A\CFKLMVKE7MJ[:;AMF6IV>=8XDEUMBe3ZOB8=FS9764/OMBBDDULKKBD@I@?XCRR08KZ@3MLEHL>HCJQFDFR@IqQ:FFEEX;8=ENN;CBGCaLM=:=8GPWN@??MMMO7Yb"I=XDK>G?;W6EOF^UhSAFW6VRLM?^RhIA73FbR\MEI5>:NHL9-:M)G?J8:A?DKNWkEVMRQKMNEV4MFZ>XQ@O9KILKD\F:I`@CJGBF[C+KGBIZ9dLPFEV=dhFQ_BHH=CYN<2EF@h@P>IW;>UYDHAVFNKD;HGNEKE6nA2FNYIN:CJ:_MVCD=RNJTXL\ISGE_8?.BLLW\I?1]R=DcOPH3CT`GQNbERfXL^BG;>A@i;f?JIbE>X\BGNSZ_RFHFQ5X+CKaLPQAGJ4ZB_I?@LNXHGu@;LFIL1HHQH?:0BYAR>GAS`Y>GM8HUM5AFA5ACI:D8HBXXQHAOCWDNMOQKMPOhNPZAGIDFBRDKJTaTU.T>G:_CN+:67EUWGRAPVUMQWFG=B>I:SG2K?;V;DMLU6@9CMQ7MOO=86QC^LL9NK=RE8?HHDFGT@EJ?7=<3Pm3VHELMFQ6O/HM.LUUNDIGW>?X9H>6M=KP_]?FPFH@MO\CG:7`AIUBhI0=ILlI>BCDLQDGC>FWJDQ]M;I=FDQJIfHL?F@ARGIR@?P>YNPDHGEDXRWQNCDBDFGRRK83FbP]JbW^Q<6TFIOQPV9MIGaH?LQSJAGLQ9DXPASP9@CKJMPCEj^MAEQS:OIGKEdH>KBDFKOQICORNe]IecJIRPVHJTALEDDBJKJM?LRB8YLXZH>AGI7G[MdGICOHVGN8SSDIKbRK3V[FBTAULFCNWDJ?OQ\aANDLEPYQUNJJJPINEMITHGK_<:BO6:PMVC3OSCLV=HO;AGF2=c7ICGOJFJRFXS:8NKIYEP@DH;XFY2EQVA5OV5ECAH3=F5D>zQNJNNiBPFFGEBJI>DQAEJI3LP8F;@GKGVE,JPM>7>@DLZtI;:DUAJKP>KOSSA1N?H>7NDIDONdUF>K=L9]@[<;AIU;YL=;ILIHGXJFeDDIH?B[FcN?O?qOP=D~KHE85:Q?GHJ;YI5SQWEM^1O;JM=T7KEQPCDIE:IE0LTD=cE][FY:YOAPAMPM=SGMG?EQFWIRBRIBAF\@FQMU8bP:IFJHI`AC:U7WbQ?QBHQLBBIV]?xEURND_FDIZ?IL??ZYW]QPRL]>HKZGECCET;uYJUFIQUGK;IZC@\EVE7LEELYFO>@JNBG6U=QRZELCSD=?J[AGSKO=GLFfVANJ3PTLDNTK?KBFUfH=IRZE[@?LCAB=D^?SHPMDBM9GBT@=]DJ9G[@BFPl]@>GF9VXNFOYOWEQGEKA?QSNLKBXFEH@>MLLF6BC@USQOIV2HMGDXN:CK@bHIVHTBGCEJ:>=>aJGEYHMOS<OZXE@E9>YA7CBTBB?Pa>QMGOPTOHE]dJHOI^ED5UDHMAFFFEBa?CANDC2QGLTUE\TFG@K?BHOFRENGh>PJ7WDPRB9O[9j?K@^?PgCOlAJDFGETBEL?YM;^;IODRAD9HOJMO;J@_YFSQZ8URH_RIK=EO@PIGHMCcQ?N:[>NaDJZ@SLENKUHK8YKGVNRGPPKBcK^KHH6SHH>D?QDBdJO4SIDZS]>BQ]HTQUCFNHD7JTF@QVE>CRCe8RPCDRF>D@MHOEFZ@GCSRCQ<@=;_\QIKV6E/?PIJA2KIGB8GR\CNMBKJFJMUAXfJDMIWF?HI@EGDKQN9NCFLRE;9H;PTZ@I]?DLGNJZ9[FCJeFD=VXHOPPF?FG@JI9A`Q=QIEDXRKLQFSXGNUAXWBLDJKK\EBI?PUHECQET:XFFFbXH*X2YKEK?M;NKI`LBFa`OQ=FSDKLANJAT@CO<@@P@OC__FNL7DMJTCoFYF[=_bLV9NIEDMDVIMP98ID=VG_XJRPFHPNN>OXRPWH8?@COaP6RQ9;KKDBRVKA@INO[CS8UIBQJRIOkCOlOiEDECKV9:ZFH:KQ?LKCLBV@URh[B:KDLIFTCJDVISZ9KKeKYOZ?;HJ[CGTIIHCLBAfMJBFOPHN>_B[@aOIRVk\QOWERQFIOKCRKEENPJNlJ\RJuyJSLODnPKQLEViYDPQT\WPXLJCJPMS3OZHRWHEHIPLDIQ]GQLMJaWMIhGO:vIQTKCJMUI_BI[Ac`OdXQVMUYMJQTRKGBWBDO@T;GLTDTGWFN_GWS_@BbMURBEOIBZSHSDO4KKK;S[BWQlUVDIFIW]VNQCJPBSaKBLZNVFuGDQY_RK_EGFXHKJKTM=?>TUAiVPP:FVUgMDWbB>FbcFIK;HKDZODVCNUNMeER^>7VEMXTCEVIRXkQDNEO;nOUiKN;wBEF?OJSU?DQ8FHFR8EUIKEMPJB]JF4CbcDDFOMTFBHRDELCg;c<=ODEHM>DVE;D;OP:A?ECI\MQDPGE?ERCLZ7_DsRIDWKHABmEo@wQAM:LQQUG[;LLKNYPj2DR@@OyKJJ[ID>RNPFJICBTTHEL;P?[IXD:F7JTUhDQ>?]KE:GQJ5KIJMY@O\IQRMNEP@WTuTHJIXOWHFCFQ5RGG?M0:E[ICDIeBK[J[GfKAgDFOUHaYXD:XW?KEQ\BLNJI?QKXFGBG\AWAJA[\EAE@FMMI>@[QD=PDFLNIMKHLXDJAaFBNNKNQIDTPNOO8JFWBD>FRFFRGHUJJEHMLYO@?CCMFL=FKT<\SKG>@IB>BE>JXBFQ2:REO\T[[JD[[JONMJGXRNPF8FXK7ACC?II\@PB:?RGDG?VsN=BOIN?OENOMY_LNJWOAVAOGFUECNLJ^8CFJWRXLC^KD=RULRCFJW]<@XTEVJKKS6FG?JAARL?=I>ARH;LAFLFMIIF54F?D>@HAOEDAGJDCLWLF5VAKA=>IJCMCT@APKPJ=P<7B3??AECEE=FJ?EFFF9E_AE7DKPNMDMHKAFBAPJAKLL)XM=H?OCRHS=MAY[OSF3@N6FAETLM@PEPWTJNSF6;3B9B@J]DVCEOBGGQA?HOIJHOR;?9ONQGOHEYPfUP=`TXL_KNE>W]_QTDP;cAIfN[3CjF2NHAB@^>VNl]A8DLD[V^;LB?R]MFtLGGYHO=d.l7XFRq]:JQB=^a0GZ&EUNL?W:GV7DU<5OV[MTd=CW@+JGI(Y5H]0AV/HL0H]B7B0MjOP<>PH9TPSQR]V`7Z?79EN^TjLci[9GDZXGXls?OKG[R9GNA@W3FNDnI;GAOFfG7:IHEJRWFPYiBGE8AMRU;YkQGX>KTUR@PCMNdfbAYYB3?R]>R`SUJT3^I>GCTRMG>@H:X^;M1AUYdKR^QIXeEKZ?WH_VC[:\GEKR=LIG<>LhVNJ=EIL]BJ@K:Zb@ZbCTDNNQHBMJ?EL7G@@:OBVVPFFX[PQQQ;EGO_AOOMRJLPQLFCBoKZQ@VNPJNIcG8VM@`KU@EI7?S>APK4ESGPKROKMHW.>YOQa;>>AKNN;D@GIFF/5LCTXQG;CMIS@QFM>c7R>Z<]QM=Ag@R=5SJJ,HLJXDE@@9w>S=FH@?DL.@FJK?HDVTTN:7TEGA?BC>?2DRXSI;AAMJ6RSQ@6a?TDFAAXP:CSCPH>GH:H;UJ7DFRBT9NSEJ>=MY:HKE?J>ILPP[@AV\OfS\HQID?DQFxBMGPZL\IHPEJTVK?RpMLLHFIP\KiiF^LDAQbYMRQFLNt]ABKdMMGCFk_EOSPT^FQGLEKEDTMLF=U`P^IXNSKOAMTSgPtP@WVoOQFFYHGN=eLPSRCLVKOEOMpADWOGF`IYZOTKF;GEpJLeLXMQ?TGJFFCPOhDXN\ESAJZLOLFSJBBF@?QO=GRR@DhMNTGVPX]T\YPEAE`_CJ=:@CfC,8JS=NN/vPC@IVG7EOA@HVSAePZ7`MKRGOX]HK:W=Q5IFZS9B6AHMDQcV7\SHL1HCSHTJf'[VI:L=FMa7EX-NL;MLEGOY8EO?NYZWY^PPI;QOIJJWP;8QTOSOE`<>kPMHQHJ9YHNjXE7MFEOX8ALUX`FWC8;FDRYUJecUGUYJN`C^BUD\MFGU9TIOA]CAKWIVEZQNOUG9ZMFTeO=PZBPJBXZ>ROPG?ALA]{A;IDQS@hLUn\FFZGWRTLDRSL5M[]2VKA@Hv=P:ONSGI?;IPGE]\xLJN\JHAHPI>5J;oO0PWl=SWXZb]FMZLZjIMI?LD@IEHAGE>LTN@KA=A;@DAD9GC@EFHD>GQLKW=N<8<9LSGFBA;M8J?F(J>4GPAJEE7KAL>==AA;F@NH4UGAKFPFHCE6LCEPKUGBC=M3MI7GL>P7;WHKGY6CUELBJICHVG6GI:DNCG7H>8LF=PKPD?-G>IIJFF@=ODHF3C9EQJV7EJG5BIKI)G13JMK41RG>RJEAMGX0WMLGD=CEFFJSCGRMN^<]MVWTSL?DEYmMLVK=R3OEXE299PGJK>FK@YQKQ:\MHL2=FDICBFEHHID@F@MGBEFKEAOE7BJI;H[H[E@@>?>L:KBCA?=ZH=CBFXHXF@BQIGFEAKM7>?FQ:H0RDHHJFOCHFEP9H`JHDF@N;CIA3FCLJM;FNCL@I;@GNQT=@AA`N9HUF8MSA=NAGE?6KGLJNAYHETFJHIUGTGGREDTBKXGs]BDNHGM?OGA:ARFN?EGU>ANfMWH;JAOOFLSOFBAAFVBH7MwFKOOCQLOFNU3DaeIJLFePNU?QTQKIJfLPGSHNWNJ9NbRLLKESJcZGEM>N@>VJBT;GQOKCBDobNX@HSX>B_NOIcKJURC\DGJGDVKFUWSAMWZBG?KUCLKKEH[?UOSOFWYE4IMA>QMICMKQP_EjV;=T[lIEMbaaMFC]UDTOEvHKQFM>I]W7IOMUF=MCTYLENKMOCLJAPCNLPBMNDZMMbHNAYR8=<6>;EPJ5:COK?EDMC8<:=BLK6ICDLFDPA7=GC@:AB%:<@G>4?FA0?SBD?77A?EFL9FU=DFDG5CS:S8I:>96F3,GCQ>EX@K956I8;>RF6@F>+HR@!GB396Q/>@?>):G4=9K?@A.D8DH?>C<7?C3G3>BKY4=AH:>@9GMJD43GA?MLCISC1HP<>`@ROMHBL???E;IF[GNH=DB/VAGGQB]QIE?WCTNNGQMKFFFOMEGZ6N=Ab2EV=FT:W=NRN=RBKdDG?I]HCNX:M?8QHPVFPAA_LUBV;ABBLJZPJP]T=JOFKE,LGFN;@MH7=`LA8JVK=HRCBGH?RK?K@PT;JQ<;MOVM=O@JEGF1?D>ULCODNSRbHFeDILH@2JNc=F7CU@KWF:IIVEEaW>>EIgM8L?SWQ;APHJLUJDLD>9MYO/BA6X]F7GG=aQ;EYL9UPIaBK=F3AEkNKXV@JMEM;LJUL:>RORCXAE4PHJPHSZWMEOOIFJCMWRKWVIGGJUG=HTRAVVMIMKKB6DGLHBO5>LEKCEL?FMYXYSTGHJOM`>RIBJMJGWa>NDXGF@FK2KMFCTtMDAZX9L?HBRBVDIkKMMQ;J^IE=P@UIfC<_aEBYYDL>C`MU@LMDFRsVBa@ULGWTk5MJHBEGLHI@ZHLCJO;QKV`SB;QIAZWHJSMIM[\FEDGWJUGHNdC@];9?<:VJFEDGFGDLK<@QORXCPIIG7IUSM?E6:OIACPY?6BW@I?a`@iRBIGGOP[GWUKSE@SITVICC/?WZML[W=NC?SHH?EUQPRAFb9>;?2?JCQD^STMXLMP:HSI_DJF@PON=SBRFMa@LXJIT>\HQBJ?KEHL9CD6GJD:>EHF=KYCN:?ALATV;?UI1`JUUK>9DR\Ri\QA5/SR>L9<@TTC;XPI1IIDC/QTQIhAC>ZF?>G)58kBN]IQT9L86[Xd^FG\BD@AH81PYKkEOORK\TLSLXG8O;JJKSHMP_FEMDGPWEL?B2K[RICO=2EGOQFQvHTJRGAEFMXHeMG=DIZUEXJBKM@GGJHMIXKHTSCEZPYHBJ^OMQEI\RWKGF=VCNOWJPCWJM`RVQKRUjTTCNNJLKG_KILNTXJKBIKYDOSSPTHlNLR?UIXMQ_]IZDX^NDMFFH@cEMDCEAPHKPRFK\PDO?LKgYMqEDFC:KIFGG`RYMPUEE`RUFLNLQLU^RPLHQJD@OeELPMGA7KUE>LQFNTVTH^TTPUPSUPHL=SBJJK8gXGcB|QDJN[EZJaJ?OXS?NMQE@^EdHMFHJKE4K\YUKNDS[UiESX>CGRS_SJQPSLJFMSQ;JEBMOXPTE[BHDGDAIY=DJCJB@[TR4]F^@@NHCgUUKRe[bBY@XLYIJY5H^ScXJW\QXXNOFbi[XSX^JWkMRWKNK^VQSFUIRDNIOEX]IOTATNS@HXELeDWiUJ_Pc\QVQKG[RMSJGHEJVRGHSGLCM_SQJsOHSGSFWF[\OOYIO\HJTG]F[AgMS[\LjH\FWTSjVU@EZ\TPTEbJJKeRMX[RP`QfpHfFZ^[?bJsPEV>JR^QKJKJDIYXU[HKILKECUUP\NMSNN^gDO_TGHXMMYY@N[BFCZRJFOFMWQKXKJL=VDAQZUHgRaFTMAHIdO\TJA3VK:ICK@HBIFBHIPGSPHKJ\A`ZJ=OHcTAR_QPEnCUQGPYILVVROaPAfFLLTOUULGZJE@g[NAJGsSN77HLZ\K@L>JHEBbAGYIPSU8FJV_Pe?hRhQXHiNFJG>VWU@BYUDNCBJcFh`>RLDFFL@GTNITJEIhQaaNQK^T:F:Z1YHNlRS;CXKOgPXC;XAOVOPMN\ODQJJD<IW@[M=AAJDFTUJBBRGMYBQAQGE@@J9b6CE7M>TEMTO=OP@GBO;TS7d{[DATDPDC;dBMBJCE4P>NJBBCJ?CBWFX=TJ9GKMUKDJRJQ@B:iQ?TF8FFG`A=C1L=`LI6JFBG;G<@NM@HH9[INFFAW7MNH>O5NJNHGNJFLLG@AMOU>ABI>ELC[BRDE>JNW@N=BEaGJ?I1EC7G3OC28?DK7T=G?H9581O01BJE-FSH?8D9=ABD=>=@J9AMF7L:NGUK>Y'=FM8TD7IG];CD<7@S:SAH5DNABFT3E4:35G>IKW>AS:Q:;B@Q3y<=5TUMC@88RRGY?5@?CAANE2:GBD<=@7?EPM9:;>7@G;NUT>>RFFS7CWTcKBCLKnFjWN=oBR:a6J>GT?bR?A[U?]`X1c_[?aPVOD7=\?b=TCB~FAANMC?ENLIN`47EIM^gU2BCFTLZUBT:P8M=LlBnHP7G>?>7hB_=9CDJ:SGIaEJ:STT;YB;?VGNOLPbHY8IMHO@;FC7E868XBHGDHkF0NL?TFLG>ENLO1B[AA@ECH]GOdk[KPMG]Q[Sj_MYMOyFQYyZKJIDHIDMEQ=PA=XFPKLLKI[HSZPNNPeIGNGFTaYQWPJTecRUNRKLCHIiH`BCQFWGWPC`JR;a;NN]UURTJILLUYQBYCKHENBSWcqKJUM^=L\ZWJSWHUWEEPMHYLKHPK]OYBPSVKGP]HgScTRsR[R:p^OM=?R+GsDG8Be/8O;@TS>?BX/QRH1LaNfF[8m\U?[Q_LSb]5W#cD_BfYZPm=:Zk9JRdXVUpT(oqU52SUYcf3WFVXmTm>XTa9;]l[%25tCdZ`EJ5a``FXD^\NIH[mS@KaSbs]:QJ@PFa?L?EAIAL-[^-Y?V<&\>\QBm>JPcUTK~7DUTKWXO[j'UNcK1BHGYSKb2CpNqpq>R=AHV0+lA;Je?c[hTSRHs.hFMSeMlMCa][h(Z5f\/`lC?g;OG9IBl?GjJE,UEc,W?Je>g><^LYY_leZLMfN[NCS9AnjM4+[A:rIWDQB>LhDOEWHPaH\TG|8;:akbtic_Y+QAe)edbDJO[?VZLsQ=6Wa2JG`3DC=QNKMRVEhZ7TlR]aVV_@8SVC@cAVTUFDW.aC@>6RR?C@FQEF`Xb=L@K,KD;UFIHAcEU:MQG6ZY?7VXWDR3HDaEX@H@[N?[\PB\8NRUZLRKENG:^IY;B2AOOO?LZB]5\eL;A>#CYJJSGHAV@gLM;NGeF7HAVQP]7AEKZDfIV@>ZJ,rFKDST8ST@T;-)LJ_7OSagKYMTThS[3S@PS:RACRATTG%OPhD2SLS\@'CGR/JV?R-LPFND[O:>(KPGT\2I8UGSODG;TFTGoLCuKGWUJLL`SKXDMIUPAUkQDMJTPNbbHe[fQELaLRG\SWRHSUF][PYQ@WNKE?OPOLNZNQIPUSZNUTWIPSO@^OhAILTUTL_GVCYYO[iPXOUFK]JhPPS`QTIDFb[JIsILM^YOI[amU]KBVLHKUBcRL`TIKTQHAdPYRKzJMMWCPUVT_TT[bOBaDU_SOI@NHCMOKKS?rWO[ABXaQ[^MVkTSTOLEKPVCOFOUILZPNYTIWRRVLnAUDVOKc^aMNVRKRNXMJmFWPZEFHTCKHFFMJCOA]JKOeEBiONdNNKUQYSZEW_U_TKLSNa[cmUOHIm=DNQZ_VVTTXVRHdbIUXUuVOEIUQGTR@OAM\OBO[^FQVZZMPIwVPWY?JRG_VMSNFSNPT^kYVU]?P^YYCWfYRRPMi]TLkdn^iD`RN\QUVcKac?YNGRT_S?UPOEgL^fQJTCWIB[TXIhT>[UEMIOZcNRLoIFd[UwTTXOKWU[[]U[QRXhKJ`TdeJ^XbO^bXPGCRT?XWqSARk]E\VjUZeTfm:ig^eNZBR]XWI[WMPbWRP]YSKJLLEdrdX^CTPdWVKjgKQSHnnGEbSMm^]KFlpUOHJThZeYZW[J^e^MSv^HUbUVVT`SNv]JT``PWZ[`_[LTSYpLOcVLTcG[ZJ]O]\LHOXOl[Zc`bTTXbSGY_EZPNLbHMYdWHXJWamPOUKA[Yb\PKMK\`Y`iWPLJcFZP@_XHERW_R\QCKTWUUKNgTTYH^]]dfeVbgNZLBGHrKYDPLF^RM@J8FD:BQ]DSTIaM@afPOSNTPP`B7YFRTHKHIRKUDYL@EAKLbB@[LML;TRW;=DTSHUFF7HVJQPGOSEYJagLNSKMYUCMMHCDsYHnGUFOMKWDRZAF@RNF;OCK[PE@\BnL^I=8>H/FCMJKTTDYICILGUCR\IKZDQCFMhHLCfNO;HKDXE_>AAEKPGITSFFt=WAWUNKUNUdFQTiOJL@@KKJ>KDPHQFDtV_Q]B\@XHXSKMNKHNLBFLIC?5KFKrKTLTSH]CPMC\>JSOUT=PLRNQ=QNFZJVKaL]OT[MOKT5CIQICdFOFPMQU:NXVKFTZMTeSIT>?IUEFWIdKI=CNR]MQBTHD6FfA;JXRQVJQPOGFPLQtINGRcOZYV\JPHNLYQKYHXR\AD>IHN?UBOCYJGMLFN:]?CNWEFO=H=JSXEJHBUPD:OOKL@YKRI=KTPENJ9NAJIEJ>F>HJ\DUHvN?AQJKLJ6RMLGYAT@SKORC\@GRFUKIMCPBcOCFE=MB?ARRVGE@>[FA@VMQKWLPPFPY9FQV7MR@RP`ITHH6IIHONCOJMLN\CNVO[G:VH;=GJaCV@]>>FP>``QPHiNKJFLCHNXQKUEW@VFWK8CWMOGBJ@C?CSSUQEEFOYJOMK?Q:PBQVGAEIXQCV9MBPDGTE_jHObPN=EMBHOGFH=ETHcKBHB\OP`IDEEIATc_LFUEHUMMM]TIMWCFOD\]\JKNIRQFIIQMLHQDKGTXRITZ^SBM`YIJW[MNd>IKhFQNQEMKAZ]NNA>CPSLbT=RB=;VEOPX_h^RLGCUXO_>QC@FCKOOYGSMKKdP`cRLIWdHOWAQMJPTLYIKCXYCNHPSAmF]X=SEGDDD@M=OObjOgPHEGMMH`tQLDIENMHGZG9>JAOUJ]GKEJGHFSABB@NG1=EWJHIGQ@AcRLR5N=KA8C;<45MDY5MG8DhMHFHI=?bBBEN9M]X8BP>L=EADQHNLGEN>ALV?EHEHZ_ADG7K?OLEAACcCQ=PC4:NC@HKA>EIIN;B@KMQI@H3?=8BPHQZFDPLCULLA?LLCHBB\K9RL7[GSECDDYA9MKK9EUKF>>]9G-AT@JIH9c?GS>@ICE?JLJNN_F]ICLIELRC;>DONH8JJ=JDFBCA6?=F>I==G;^YBNPAENLVLBALBZIF5G:HNGU;QIIhIMVZWWZi:FQIT\OKd_SNM@T8LPNTS@LFKID??WNMSNHALFUCDHYNSTJBRYYHFR@CMRHB@ILWgRFI=ISEJCJCOMGPLD7EMAaG>OB@OS>YR@HIX_YAS]\IFGWQB\AK`BXL@PPWH?UKKNNZQWIFLKSOCRQPP\S]L>Q]PCN?k_ID`GIOQJ`2K]OG?MQVTJaONISHI]FMLHCNRKKOUNEFKKKmMVJNUE]NDIJkMHCHJG1YVFW\DNKSGXASEBBBAXWNIKZSVTXDQQI@UIKMPBMNJQ?DJF[_@RHQPN7JU5IOMRF\B]RMHWMHTFKNQHML?KpB@OORIQHPSU;ZSKOIKLaGINHNDI^\XDIFDaM@SGG`KQIGZDFVI?PMdRdYTLjELRMMUXIHvQGPiWZN]fEmKQRTFnL^BKCRHKRQOTTZPiAL@SHSD@MsR[QNGBBJZJ[RWSkUI[N>IMzJT^MMDPLKIMABQaJKPNIJVVRLi>YDCLXCJTNEZ]bVQo[NBCRZIMM~OADSUZNMEDTPWE|Z?MPTJLfL]MIDMYV\?N_V@DQVFRKN@RKR@[SLHL@TSEDJQPCLH@DeJIJPHG;HOGQwWCHIHFGGKEL?POFMEL[IDJN;GMMQL?>=|EPDUONZ9QRG@KHUIMQAA^uFJPDOBGIYDDCLEXCLPNI>FBNGDMVCBEIJCP8VH`OGCOkJQN?D?NNUDLDJMt:FGUYAHjEAhEEoM9:XLFK>EGZACVNADVyFIMOBQYTAiONWRSMNLH|F?|CZIsOIJKTVN\CyLDUOF@PDCLH`JQKUDOCHzL>N@K]sUxBgMGIVTCDVY9;JdQUAVkEGIMDUC[D;NPFXFHKQkDTOcPDhPU@JPRVCTD9?sQNIFD^9;ZHDYXMK=h[DVCFKWEISNMPNPHNDFTDNXXKrlB?N8FAAM@MBG@h\NNIBM>ME<=LBDOIMLXLX.H@LEXGLSf^GT>QLNbFFJ<2GEPP;gLEfHDR:HF=XGJRdN>=AVG`XF[P@ZNPQ@@THG5MKQHCJAOL6SPW\H7^;QFGI72?LB?\MDTASU@>WBQSV1IDIBI@>]RFTPCHID>MDE4JNOCFI@WabTU3W>BD.CP>=;RP.M[SQKMOPPB7IIBWYDuU8YNO=KS>DELJP;FHFGVBO7MpJ7dE:BEG:OKZVjARLHIDdN]H\QLRFcA9YG==?@\FF2?:.]L_JEKT7JCI;PSGAS8S@N:_?HLBMJTFIJQ8L9CS5BNC\=L>MGI@>=SKV;IaIDO1H<:nEMEKLWEGbD@aOFCK?E^SHQUP<[O6JZeYEKR[CGDED4@FGJ=FAW>LTGH=K:JPOcGSdIJnU`pQFFmTf`MESJQ?DIMUSaWKKWL]VF[QRHOGVJKLQKVI_NOQEKWRNYHEH`DGMa]iA]HXVKN[UGdLLOFYWODL@fFWMFPZZZ[WRV[CVJUX][ISKI@JRKbUIHUBWRZIUVjdaRJs?\RNODoX\^HKQYHPOSOO_[DUMUPh_JQYFIMYOZTMVDcGYPIbRRbRWhbAOFd9cXLJJJCSSIQTPPYADMHA?OpRDNFJRI_FS@IJ?NEVOoGEE;IJUPSHBeLQU?DGWPELA_ZAUOXJ\JK>QUNMMOUPDwPSQOXHPUUJpYTJ=[]AGLPNLBQ\L:HOIPKXtlRNPKJ_OIG:M@Ir`LOOZVVN^IKPSB@MQ??RG=NKKNEOUIEReTS]JK^F=PQ?:BJPJ>P^GBIWD>vN/?@EI7PMDCBHaSCV>B@Tl>N[BOLMCBKN4cZNMHCL]U>CPD@IZ>LS>=IoQSK;KDPAKZ5FXJIGQB`]M?FFFFF5F?L?JMUJERKcOFKGYScYQKSMWFCGVFSMCK;Q:UDPOQHGALSIH>NOMRJEO=XI;YTBc7XAF@]FaGL9ND79ILBQDAHY6aAEE?A?POF?\-P>9NQHHJTIPD3EHHPF[ZKH4FKP?W>L;GE6DJTPKb>HSTYaK6R7D:OC;l@A^QAhBAPGjSURLQNRGDFPdFF>NOPINPMSKOINSDDDC]VWPXOiDQOKN^^JCGN\LJN?KJ]RMNKaGMLHDL;JYOEOOQDXGCIPHNKN`ILSCT>PTBLASHEJMLoC`;PRzOKBWICMLPIQNLPCCQBaN[^O`SjL^QAKGIIFlOMLH:LYGJLC^ROJ[JLWG?CI?OLSEWfR\UPLEPJLWRcP[FZBLpB>JSIKNFVliVKG\HBVIXTHOHEZGJObHP@sQLXiTilOEOVMuLQK@MAJQ>GEKLFTUfLELHKFUURbBL^=QPRKGBV=H]WyXK_NsLV[ChWLOMJMNLR_UQFZER[vBPEGNXAMPKETTfL[R[U8TJMX@G:ZDTBOF;NM]NMOJKFSJUUIRHPU9IPLBH\LUQmJSKNJPHGIKGLYdMFHMdXR@DECQIhQ>ZMTXKIOUIWWsCSO>IHaK@WDEGAEE@L@XKFTTL]?HNYWiUCSJI?rh:GLSBDEO};>SaMSSLJI:JJ=LnWYDC?REOQENXJSW=GNTHm`NPKCIBL[??PNJJKerLFQVBBE\JD<[AWRMw\CEQVgGHLWL?RRHKUE_iKqdFKNH=IH?XWTTAsRDGC?hHCPH?KEXUPGHXSEI@\eCFHIWFcQ;@IHG]SKHMULDgTeGBD_RON\:YX>JWUGRGQH]SMJPO@@HG?MTMARFGDKRNeB[K@gRKDNBQGEHB[ZGHHAKEW>RI.FRGL=KMYRSJIGSWOBIGK;CGJGF2Q@OROVO`M^J@PNQD@L=CT>ZEVfNSBIIHYHPDMCc1IN`FIS@SYJAPEHPRNZEKKFIPC7L?ZWBhDCTXMNLITL4KYDIMD@BBBIQP|@KPVPGLNOFRQ/I6MUOH?DOXHNLaPJ>Tf8LTQCOMDDSUUH4[?DLQ^FS;OG;CWX`ZRHJaF^MF;CLLM1:6S8KE[IYIG8CIK[R7QI;D7OPIb;ZE9HCf8HPJEY8MN4?BPdVNMfO>1L6CKG7L2=@BA;E9HAHKJE`KPE;;I32:ICG@>IRW:G>E6\<>:DU`<7b_EB]N9MI>>;U3DMg1U@8276DGG::LEeIELR>6HBUBHM:5FJE5L59I=/CTMGS=NPJK>XCO=QLhjRDFRWZOSDfTIGM^@IKW/BQ>VDVEWGYMKV2!h.FfKIjFnVH/hLL.O)=FYd\NJOTAKOGNE:g7]]L?Ed_KkU>AG[bKWRSeGFBV?<00XUVO&7WfI_oBHG]\AG\DJIUAP:bNCHD@n7FJDPM)aFRaXTNSKV5OWD?XZl3TRo1LLuCT@@^OSQqodA5KU9ARiA>>ZYQIMHcba@MJBK@DTFhT9BNm#D[cbFdBXCQ1No;>]CH^-xtPR[P~ZOM\P]/M-+^AH=3MLNee?<]S-KQH`BTOdB;BUKDHISPIRTyEKPBIACeStWPKIBQWGOTMWSgW<[[IHIcT?JRGGhFFaUMa]SMAIXOHTASU`N[X\kWVKIJOIMDUTWdRLbLV`\hh?GJLHCcedMKPIa_XdUUJ_Q\VOOLN_RRXORLZ^VedQaLA\NxNS=pRCQBVTbNLP\YOdfV]`ZAYZdRYQQJXNJZUXQbTI[DVbh9C>[NJYCCD[m6WiYKGIC?/Hg@@JF:fJ>?WGTP[AAU<=LINU>MXB9:XFWK=PBHKAT_IPMFBNBD[[@KAFMWFA=MS\QOPAGERLKMA@OJBI]CHWUQU:SUVCHLEI67FdY:A7aHPAFAQ9HBEYUN6ACSD8QUJ@^O?U_Q>JBIYEaIYNLETDDRAB@ABMGQPXG]DD?ELBOJ9@IUCMBIFdTH8BYKSM6X?SIZG6LUTAJPMGLI]JWBPIE@=1GgZ`JK3OP?CLL>@LNTL9G?OBG[LMYaA=A:AGMLW]FFLOI@?DUJQCKYVK)KO^KfD5@C@NHOT`B^=MCB]Z?=MTXAA@=FHTBKRQ`M9@NJ4PKHHNII>NKGIBHCa\K?C?BDa9X5EB?BOOM:=[DJQBFOAB8ESXNGLLJ:GHRDNHdTFCOBAENTJ:@IJDE[Ta\JK>USO9OGL=A[HERS;DU6HWEbGG5VSDMS[MQF@MDQ]^GISLHLTGBHGL^RDHo=[JLLBV@ICLFbCULFAWAA9F8GGiIJMIUhGGOHMiLJSSW<=AI>=ZPKOFfAPB_EL?^VRSrNO>ODJYHTOO>FB[FSLJRILHUIGNBR<>L_KTLGWJ>DDAGMHRFJJGHOPJXLUALCDF@FCNSTDRU=JSOXYVBXLIQPK[Nh3?HE8eOFLGVMLPZKSDT^?PGAZ=JQFEKC:R?JF\WRAVOGnGFIZ>DZ@RfPMAI8WI=XRL;F@ZFMKD<:MEWI6>MXAMBMHTCVLNDFYQPVKDH6GG8=JZLDGPLNZNMGPP=FKOK@HDRPOEMJCSN^?QH8G:AL1L^F]QLZBM[JEFYLP=>KGKReG`SiFD4AHT>WD]OV?LI\KZ;DGOROTNLMKV:BPgAN^OTKSOMD=:_IfCF\OHUDPSNN8OWYSUQT[EJW[tg^SNGZQNAYPMKZOJPIKQThAPKXLE@ROW?JXHB\>IPMJuDSINVQPSZLNKWVVHJIE\X]LOOHRSQI}XIKPDXlPPREQCOGGSJMLPTILP[CKNRUDRXSUK?TWE?=^FZMPSVLZK[]UZOf9NSKFZ9UQGEXIAQ[KRQQCR<>ZFSPEHd<7:`M2SRMHiFRXGCJCUILWB5GS;DVMK;SODIYX6NLP5XBVE?[fLhfSWISOESCEN9RdRL@ELjCPP@@DJ[LL]A2MK[I>BJQPFAP_KDM6C>JLK=CINKKC@:ET@aLHERMJ]SB?0OCd>ABB@AI3JJAY:CGIOGYRW;;FQHLM`6IHB@@OEXFDLGHO=,JKONWON>QU?JBaZHSTCHFK;KgQQBAEI;WLAS^EFHNVK=?OMMUFID>NB[AF51Q_CNKGML:IE=RZ?F;BFMLJBC?KFQ95BDD@JMAE)EGP?RHTN;OH=CBH?XGHCIOM]NGhSMJICS?2G3;L=GAK5]K?FCHGC7BJeM7IXJD0Q;H7IAY<H27=N7KRDM3BLA=OC2+=H^AD?TEO7GI?>JGDODL>G=EAMX;JQE_2>29WY:*:J>@BQXG>GPYW815G;MG9CI-BBEFHA>EVKA\7ZKHMS`[U6]K`LTNSDFRCNA{GWX=OE9M\OG7RMQ\IUZYXL[pQIQLq9:bSEN?MELRGF?SW_U?@DnGp]3HHDFWOYGQU]ZQ]o_RJ\KNGtO]TV_QKIXo[MUUBO]LPSHHcONJqHjFIBfxG_WFI_CS\SELASH[LVIS|0W\H_JEWQ]VBLGEJMdGR)MQGMDU_jIcIKLIW{ELESSD]YjO=O?HLNKX`gCG9LAFCYLMRDrJdQfBNPZFEJ@M:Ba;YL[NLJ^N`[RNeHmE_d]^[ESMg=BTbPKDYVEEEKQXUD9UGMb]GAR5MNFLALMBQYAEDFO;NPRFGM`A?LLLVF^YC@DNKKBHEEqPDMLFJWW^JQNDW9D>KEF@cE9M??J>KLEZ[Q>A=UXPZS?nOJP_GJ@UIPMX@Sm@PClQZL?BgI93NX=BFKW9VH;=bLJ?LB:]V`Q7G'?34KHImCp=[U=C>QDEGBQT@A9I^JEAEDbODOMFBVRGKD=@EAH`^HFLN?b?=QIbSIG=REDJ;C8OgPIBRLR5S50EAR?7FBII=>PXdJLN9J8VEF>G@JIJEJKZBG@?]FDS;EH]BJFK@D=IM@;4AH?O?;A4:]D7-PK?3E?BHYINVBVRNUPN;gEJV?F8M@I=G:>HQ8M1DBJ4NHEDJWEGZQE5TKEEB[7JL5JUKLQ=RKKENL=JI@6ZLWM5HIEW7GINP>GYQL>KR6@@[FR[fSVTbWN3HRJEI\aYREG^`bLQTKfGR`NGp[HPWSQCFOJ]JTSDIV^UHNUMuULLLISV=QBOMOKOXZFWcaZFU`TdUHYNeLQROAZG[XOHLNT\MLJTQDQ>MDdGOYVhH\NTMESW]GRAFZ\\YCAsX>EEeKIVN>HH[BYEBDCMSGMYWV]LgJjCWL[;b_ILOND=\`XVZNOJKfcHA^BI^IPLSfWVOCT@JR>_NONQPIS4VIALLWZ]PCSJOAE9UK=Y]RIL]JX^AZ@_]LFDXYhMYDT]=RUHELCBGTST[ZYWWJC[GIKMEZBaW@TX`QFVbTDL=MRKbJnNB;aJEgP@URJNKZeNa8NH7FUbHMKJXI8XCZ59Mh^EADNL6LD_>FGM7GJZW8EgENNUIRGH=SG=PPNLbW`@SLGP\m;?L=FAPfVMPScEQADFBRJIMRSSXSNTJFIGRY@=EAUKTE@eWG[PHHAaW]REMG=ICGHLUZFPJAUB^CAAGAN_JLKT7X[QGGCEKQ\QBDQOLLFOMKKM@DKIYPAFJWLFMHGFEYAJBK=NCJXCFaCD??ISbPEBAELOX@V9GUTEBNK^H.K?CA\JBNFZGLFEWBFWQPGP:GFUMDE?}?c=9P>GfV;J2?`CO@D:=QQ?CL6UWMFbHSMK*DET:I7TN:4=X9HdFCC;<5^OI?SJVJQEB@vOQ7@JLEMIJIOEZNA>N:>E;C9OBK:CQE77jK:HTG5=kcGB=JM6:KK@DRO_GQ92UiK:IHFLZFGPEI==AOD?`<@O?G>NRTLHL7GPD*ASOFAF:VP^LSELRQGBW=C=UFl=P;KXDgRd7VEO8JKDJR[;4CM[FPFMPF]bL[HRA>AEEMCDHWQ=PKG=?=E;KHLIB8NWA=?[JKDMQG_HJW\BEGTII\6PERTMNJIHK@P+8:Pl@2FHK;DD?MNLBDQ?;PLAX>LIKOIN5P.4UOAGNH?_MEC:CSbB4OMWd9I<>?H2FO33g?EK6O)=c=@HSF/@L`3H6>EL]TE1FL5R[D1O->aE50DC9K[+>NXU`FRBp,DAFC@]KILTK,C6@@BAABAWG0k;3[;BR>MCA2FCX89@;FDEP@L&IBIXOMN8K=5C>6C-;B=/6=M6KMC?PGNBScFNORHcKTTBdfYMZwQ[IP5MGf_8D9=LYJ1COPNV]Ih=VfWCLQAONRG>_MBvCGRVPQGC[^TXQBBdQPYBKOMNCkVMKOIeWIBQR?BD@LS?LBhU>[ADDAJ\QKTh_KWGHJRJFUAKRVW7QOqvY?OaMCGLYJ3Ko7_KQqc[E=`MEMIZKWG>?=EP;ZRMCpiW>+]BF;SI6JRkA7OEY]gOMTZL[V6E@[CVLTl>AM_82Dg<=/0-PXVJ85LW?cQPF??@@Bc46TJCifFa+^CV>In2HMOGK4bKBQICqPfD4yCLIHP2=aAHB24ZG_rDE5bDBDKM7EHGVZ8`kKVATh\]CTQ@IITFgQNR@?d8<OCC1AJT_N6NEHF7DqL@44MI8JT9_TY6F?7.UEE6D0B9N6FIJSAZOG64;RhO5`MbIKKTQ:m=A?G>_8B`CA;FMPER2ND@';^Od;cIOMIFbN,4G6I4PO3kH/cMQ=[eWJBM^I]>HXINoJAU-OI;YXH5HTAE9\MaRabZ=S:OQR=XG8^BD2>BKI2*CWJD8<2W^WM^B?1MD@haTaO"[HLUNe\BZ=B>GK5YDVY1j8dBRdWHLC:T:MSJe9?G0=BR0>dK;F\7IGOIBFL[4FR\FKK?S4S+`?G:7Ff^f*1MEYYESsBEPG>8KEk/UPV;vI7:N?DZTS@PM=IER6&biY?;3:3KMP5XA:.H9H75[cO7WZe^LJ"5N,N:EC+?TG:F=:5JdHU^(RQO\]U,>I9I4HN_2WHGSLzEUYV4ZM\$?F7NxDBD9m[CQKMsR@5F:QE8GME<8C:U?0J;8K>?cM@JX;CF1>M[34CO>>55R9P8F>9K7RAQ6d6;5E9G2CTLF:mINB\K7G\\NP>?Q>D5B>>?=@VFKsP6H4I1@~>KG?9dO3@dU@1J?M4LM3Pg4ECQ@L>WBR9RDV:INFV<_P:9ELPE`l`XQVHWCN>=W9UgOB4PTIC?@Q[7HkMWK'{SKZ2F5T=GOPJ_GQE/UG6ELPHITPXQFGEEc;mUHi~JA9O8LTGD:Z@G>V8?If369?Q3R8<5MW2II.2GVFE6GJXFU>Ub=WbKJ-ED]WB!UHq-2I]V=Ey47>[KNYZn2I>MQGBsA2P`F1U>\8-5LCZ?AL;@:PBk4FOI\I;EfIJ_OB>C4DKD6TQ]S:RE86B>:b>JS1LC@@ZJr3Oy;@;J7X/VGTEPK7?`LRT=>CJ=:>MG#IMT.:;CaM:64A]SA7YHLX:J^;J8:5D1ot27U5=29#?UK)=:UB+DP@#VG>F8ZRQg?q`lmk@J:B^mRSHcRLJk87OJFTU;HJ,7?LUMNABAPO>VZEDNU9?I8T?i8KDY+fSRGG]bRMMBC6?O5NGc?[N]XLD(3Hm=CSTQCbTE^KU5Jr[R_:\E>QHE?]JFMELIVG[EJ`;7IKQxEidhD?^LPHRhIGBGDMXC=1Q;3HFOJdHUoKUW[D<6Ib@ADEOL;Q4G=TKAGerL7OmJ9M@]MTKVL1O@<5&CKBD+@QKNj<[M7ES@HCFKI@HGl=3PgC>[PQM5PLXYF:6KFJLJ^I>JB\HAA.N?=CSZ?URtA6DI]GbZmE7HQCKBKMkHd5@PK]IEiDoKNK[aHR1XoJ4C97@SITAf`F*Q\AO\CAM/GC0PH.n9FEU=e5?F/G;iLW4:G3=:15U>;5n/G?C4@H>;XFBD1WSH>N_35NI<cG6mAIA_^J-M>4DFD6NFLNM.NON8K0?OC6OuYG;CA@NT=YWW\0?:I@;:>e-@NK<3[CD;/iA5EKGFKX9K;MPN8RETTQ2^L3S5<4aUAF9T%GVSCPO>@99-KU91WFRD?E3QHA?9.@G<=V.A032OPDi8W>ELF;XG>R?7L@geZ;guEA-H,DLUIC;@PFIL=CADWpAL;MPS[Q9AF=?NM=<.7751A8GEB5TR>~88=CVCbE^1c=:-SYR;IP/;CWQF@@@@:W;K^03MV;:BK?h1;.LF0EX6EN0?R^HCCM?;^AGMFe%JOmkDBL>VJMc3YLH]NZ[F==VP@PP>:[MyjT/XGKMmBc>JI4W*YwK[ZVVKP<(V3G:NL_I9U=OK9[V?[I`9BDFKYJ9:WKARJSVV[1GVfaDESOYRIHDKgEAAQYIHDLS>:khHEC4A?W7QA@R\:bWH6GHUD79;a:G?aGM[WQCe`G@ZU;K@S`EN8QlUhJAR3EPHG1V4C?\8AP;NHY/>~BVOHKzGY@XTGCYI?iSRFQJ?]OFpAed[>J]TJJP0Zbgg?7c=9H@I;@C@@87T.Z=SmNDQ'AC_?D<_3XW/9>K>>Q[YTAX6DGY5<;B^)3:WD?KFI?FF@KMDV9CYLIE@EeKBK^\?9;;ONCL57{NT>;HJGNGM>8CGWnP3`]LQ;TUd9Nc]A?1C[[Y;O>SDFce6ZB5IADPh85g\k

=>YM>BP~=P_z>XK@R2FLV@KJXC^GOh:I;j=EXL>KC?\GHDPDtTNO9]NMXTWHL1GD@9T^QOCb3AeMH8JWK[MXHVAfD9AQ8E]CGR@`Dn5QBePGLRUPLA4MKMJlKWKcLCgP80:C?CA=O8P3?DGjOU7?VLPDBF?A974OB/6K@HE.FEX95Ia*GA-;FCHI9H8AL[MFfCfD8JN6NMV[?PLQLaI:GJ6TNT9ESFHLV5>4JH+?Qt:IL9PZ5NMT@N@AVG.~>@84IWO_]5H}>T?EzIRS9alHT/V/G6CI7I2>MGTPDPKE+Z@HL3;MCGB9MCEh>OQDDCbRHE5PNCB66A?[`J>^2GM>UEKH?Y`WA:YS3@=O;k>>F5@G77W^LISJF8MfW?K5CU@]?]<\[@\3>;JWAKJ:TGILGYiW5L<`cdSSRTIBEP7MvCQVQA0E\POwYKRP>FJDGbKW[enV]]I?j2BQG^FWjNH6_az;O;JH_,FbF5V=_VsS8OEEx091I;YGSSV3M0eBJfOE]>=dQS1DfdK>50OFkoA0<^[TILH+N;FGBUIDRqU>*?d;>P>JmNH_Q^VNQRPOcLPTzN@NUQdU5UfQD;=YQ`9INN1qA0E]YZ@8Q_KEzYM^gV>qUbJEBSSA@R`G=WHGGG@MKIUN]HPMfCvKf+C8MHY<`PSe>>OB[2MAXFaALTOSKQ:I]MV?LsOzYKAJO@IGS6JR:@jIMU7Jbm~446-XjbMOOB[EE\UOBtKNGP?g1OLK]FQREFjWHA?EXMJBCDHQ?6>H?lh_PWLPWBAC)?DJ\Q_;ZDLt5HPHIn+NFASXA9n`>GBQJ@8ERcImGSMICJBEDQo?V=UM<`CFbYICPJAGBMR4GBU[\JUQ;ZZPRV2ML=G=MP@U?A_[OHCSn>HUEXJU;NPG;NYKBOG]BOE[;94AWIi^OIKQRT;PLI:WN,H7;9?R?H7W/EAN0CG8>Q7@>X-<1A-0JL2@@95?<=+LS/S5I:Z.IRMK1?>?BWB25':5<2V??:+@7:8AEA0F$C@8F)DCO:7K@-YBODC1OF9;:4H!<13(G8EF0IJ1@9;T24;TND'C?R5@JO?@19I,S)99AO74;:5B;IG3[NGK^BOIP:AB*FCNPF3K;DJS9G?PL6;$G6O;5A0>87;I>OL;90/67A*MA;&.,8)N<#S:RN1Z>H-@E&'28/QIE7;E@'RC>PLfdtRKLA>fAQaZVG=7F>AE7Zm7M^;YQ=;WNKPFWODF=BI4>G1FROAVF[:?@LK;MNmQ7]HJuBW@8wGG2=F2Ag>MH;PEX7SGND@U7LEMN\JqDFJ5O4k?=FF?SN[?BF&@8b==h9>@HDTQd>ZaTGCjOYNXXA5>MIDRd9IdEVBIGCzUITMH/PRLC]D8+QA@AG9EeJnFWKQ=iJRbS8JODFc@HYFLLBHQj@BQGKP^Cc@BH`GDYP88c>AeE;LBAYH>D8VDN=WO3UN=aU@BG>NRfOgB>P[7-DJ@MHADMIQV;CK7HGT^@:SRJCOL3;DH=MQA`WRM28FXEPA>;LG;?OO8C?WSIPKNSUMCGFiADKEg5\*9VU?GKA99JU8KI:UFB6\C?F2:[;GGoZ\F.>/N@G6HF2C>^V9C\|YaDLAHC9=OcXEM^YM6GI^Xd1KLX;WW5OOHOSR4/TZ[8(?'ZMMXAo3MK6RgM>H:B>Z?n/KHBsMghI=;5LLZDFD6NST+N>F=D=/2YJ2M^N5:.3DICWQ?R91Q?Fg1>[.F:ONTjPPER=;CEFC[XI=LQB6Ai4JHMFFMx;8M|K;GJUXCCQHTDJ9>BOLTHDKBLCFB@6=KUh?TLq,gPpM\hDiJ3?@BZZKL-BS,P\1a]1=N;U?9?GN?ZKOce/U7<7ENAY;B?M7g)F]I3?YBX?EDej@QIA@5:2K`;F>TLIH3mSP-RAH=scHE>R:=`STB=6Vg8FK>:F]lXKDP\WI?w@dkH<>LCX=s3o];Zb`;F4G[J=>SR=>L17U>4GRO\>BXak9L53\:Q`HWS<=G=@6EVKW7F4;d8F@7KPYyJXD9Euh6EG;]C-SKT08ZEH;XD.B@BaJ;ID>EWNFBcLERZJPeMFFLM:TH[@SGMUjOK=bJDPWHMZBVC9NQBM\a;DVQLX<;9MDGVBRlHHYKK;IX:DNR;cGG_\;o>OKUbKPGLK9TCJ;AkHbGBGKYDDETE`UGH`W^HFEECH>[9@EGOq@Y]MXAHP?K@TNCLKL8?KTNSEAKJ_LKMFCKFXGOCINg~LCD@6K\tUP?]@PIcG4OqMiNGBNUGKF+JA=E0@EA[NQQ(E[PBEGWT6M\O`@BbLSEOEGIT_KKK9LL[BFJLGVTH}BhPGGKKUPPEU\=JC;h>DQHQgGA::IF?[PPJZAPJ]FFP8@OS.J>I\JDK7QTFJ>PYXIYXbY=5aL[DOKMHoDF`fABKI\GXGM=EU+9RMOG=L+;79TJZ<71rQMcFK7>iK7OKQ>TITBmN?T&:.FH:AIB0v;OLN8@8DV/3@tiRRHECCC2G]<6_:^P;(HP?NVDIQOI:fFHDFAG2QUY7IG9CaH]:EGU4FI94B5`BS>[FJ>=82JZB1A9FA\<[6@9XBC(a2=@??JRR5L&:HT6;>cOGD221JAF,E`a:<6(@.;O9M?>HU8dDRWFk:ED68PBH@`pURELaUQ=:>FPHOf;:87B9,nsD1DU=KSC>6PW>-1ApQA?8FPJU;C11IECmA@BA8DMF8A>JGGOBw:@WLDZ8F&MPI<=HO,S-4wGZS1N1YQhMA??h57C6Xj`3CDR3J9`DXIFO[9?NCJ=2\@nQ+Y:>-Y?9CE5P@2SJFc=H8PJXFESOXJDCI;N37FFOI=AD=-LQTI6H68MF2SS[A2DKkLP@G=K_DHLYAM@EW?H`0APKK]jA=B]BISVPa;@WLM:0>&W:4POL[>d:Rr9qH;C?0GCK8_HhCI=>[4>[lX[?G:O3O=9^jj*SEA8f-CIZ8f::eY\TX@6=EXGQ@DW^J6TBCCMA<[QOV\:]DA28F>e>?;6$R2W@][N-VS[K>NKC;BL{KOMVQ97C[]IME[FOgJ@VDCSBD1YK]D3HC&TB@8Fe`([K[dB?>[?GAS_:4T;NX4PF9\6IP=]1a;XBVY6G?Y>PZI<EIKFP`GY?>>FNL4gGC;E>>UEGVbDAGAS/XCM%EKOP6lONMG^<^RT>M`G45@JBANIRJ5c?7X;ZS=Y9^LZsbND@SjD:qUzMWDO9?CHO@L`GCIU5fG=-=@qJH98TbBP?^6L9YD8C9KW1CEQIHTCOKCPBe;2L5BTN>TFaupQCQ9?PH=MJ=HN\[FJXEESX;GJfLV?^K,W]YEJ4OCR\QV]Y>mFTF@8DJJPnNJQeW[mJMSX@_QJQ;QZX`P[_PHE<`E;ReTI\8a[Q@5@AX^5FD>LU\UC{JNIMO[HBENA=KS4O]AFyIBCNLU[DR[d8KB=Y7RDHFPI@E?[A78JI7FYL?\Q.L>NQG,NN>:3>>DYAF5)N@a;ZF)BE9DJN^TmeA9>OB_S>IL1ZF94PNSn?I49/>*0E?BJ>fW$O5=TUCDc;:>MSE"IN=DN9:KBG-HMB76IR6BmCOPR:E?R;H*(RJ4NO\VNBAZ9H5JSV\JXaQ]?B>:WSCFD5=FL?)MEDF1S=<8CJLYBHNDIM@O:@ubeJ`7UPB:CMO_xIYSZeI7N1:4XR9qFA7RF%L@;U0M[FK@;G_ZA3[BFOFT\[45[SQYAN;^;2>GBMI?=XAnQGR#>@J.SUGWHV\ZQ_Pv?+hQGYdJUA)FDAVKPPQ>1R[F2AI0IlIeE@KO8.?#0J`Jq4T7O1kKJFU.ER.O?A@OmRQPPFJqF^8C'YPONuVGCJT@Vaa=?<8Z3QFHYAO_;FANWFCM=_HM-6?G4MCHQW.23QI8z34FNWEDP4>HK9k,SiU74=NKW;:@I4R"HULI>F@=V[=FCD8>IXSK9NA,V+K@Q9NYMS5:BKCMB_D16C0.j?_A@/AM^F_1A<\`OLEO.V4E96]F\QQ>K<7DIC1G-4TI2C2P?2EMLVP>=^`<:DT9TMP,F-O+`WGC\0FS8\=nXMLBWIFFK>A<GHQ8GHD-YL\E_Wg3RBGFB/KZ.9M?QBB;9?l\F@f0;j:[7b@AZU7fKMUKPRl[9TRLGCcUdID@KB5?=JrYBBDLS^1S88O;T8Z^*V$POOPFTQ7eMSDS\@E6E6FS3QHCH7R6NN>:\.Y18N.qO=6D0hJIDVR=X>C=IRR5GC@]CY=?X^dTACH\OTBKYL}QNK`9W=M^CG6;OB93W=ZAM19NI+IG3L@I>IAA=>95EM9VS:CH5J;HG=P,MPD@;<:MCQHOT=9"F@>E4=.743GVF,FDG7\8GN64D678SUOADD>HG==:UFB@<8>)P%MFTO1G>O7E_U;1A5=P8+2GKFYI0>KwL4WF@BINc?[2M;?FCFQTMBF%HCAA0K7B!;H?2YD=L9NEIIOIT7/UDa;T+R/EXAN8C:D>=@GN4]Z8=H2P;MDNH>AS9I?UO9QQe4AL?H8MR-?C*:LMNAFQKFR>HA6gQ\2+_EJR;F[:@QC7@CS;=KB:=Ye/GM1D??3FRLDSB6GA<YJU=CBAUGMUZ/Z=2%I_XmfPFRV@IFfOICO>b0NRsRI.>7KDS6O3NG>bVBScMANRZ2?IDA9ZIQC[Y1IxECBtIAO26F^0I`[OT/A)7E($*D:<@SP3E/*JhBL^N4?TG9Pd@-5VRF?M@\AW@7E@PNc=A]5M5=d(1gKH4>KLLDBPO]TDGkDDMD8RD/@^cR]Ub9RQ>IeCBPPGJD1IEwLHKQ;GA?AQ`VMDLHTBNJEW6WaMGS<==LG6XlJMH]7IvQREMJ_TFJHWCDUJ^L`AUGLfDcVIOQ_?CB\JOC;YEt=Q=`^J;7FHBQPKlV8HGJ_@N^;C=I>I7LRG;@>JkMUE@reSKJKS@ISQYqTDBAAmDXDfG^IhRBWBVS9I>CI52>M\\UGEQC7ZNEHSiWNMe[Q_XC:UL>CvJc~Ge=fD@S@LQGBWFGBYhEQfBKDTY]DTUTAXRLI-\[Q7MALHSC=I~N@AUCE5MMKFC;NP:LQVNF@MNAJ{UZAQyv>OV]J?eA=BD9PRR]I\`VTLSO_OF\FLWLASSSXNBKWNKH:WTMQM:U]^WJJMBYNM:BRUNUU_fHOLBG>Vc`QSGEIPVQULLEHFAO\NJLB<3MM^U0dIMFf=KN[ITTH@-PHIvYKCA=RDVGYFFJ>ISD_JTJJMJT?TbNVPRZ6^FhDIQ4sNKB?WKSSOA`VT?FBG\Hf}HWBD>3KK>MH8GAOJNb>AG_IJJaJR\@GNc]KqFB^mgJH17PP5cWf=QcV;NYPW1dG\YDH;U[NBXVKeLJJQoLQNDEOsPSNXFT~@6\IABeF]Y>aYfTZQDFPJ`>U=EXPhXOecL>eUWDDGd>Kuc;K(B`L=`IYwRI5CVJF>CEKlMBKB[`ilQRBRDW=XKRWHGG_ISOAPYAS@OK_3>L[SebIAgXESH0^SMMX[G]>P@CnXL@tL=ZB]L;@CY6TGTVYLTYL[\Q:QTScM?6hV,C]X@rB:U2KW`2KTDGRODRN]8Sb55LVM@RKaN]QLJ@RSNJ:G>?AWPAK=EcV>HSU/D^G>~(N>9T6BM>K@p3K6F=>/]YJQE-FM4BR@;Va/TXOY38ZJc@6cLAEFKT\N@HbGAH;x@DEOZSM6F:MFMV>;:s/EUN>\JJJQKHYU=XK8P=7P@B+GFU636_=`$6FoXGNMQPCABRGg?qSE@DbI7AEFCP3H\Q>6ZSY_xDOJ>7A>7=HCEPO^l44U98LNOG#QFUPK>KR@DIM8AIKT1ZEEFMPBFcSAQBTj`dwo~d:aXX^OObcF9UxLQVLTFuNrV_@ISM]ITbNCZZlVaNS]oV\BK\S]H[^JhXbb`f:Z<23MUSG^_uVj-c8WIwAHTWXlIIqiRbNElEAMBwWEIR@pQLlZ>DZK=qWOUKUiOVQAOKLOruY`^]WXFe_BAs?SU:Wa@`FOWVTFT?@\DeQS>[bGDKcvj^0DbGH{_WhQq`8jbO[6bW1Oe_hO-JZ5uN_EaX]RVM@BCLcrC[V\3FI]]\HbdJZMbtA`W7`jbbC_Y_iUDGedKM`X9dHb\`fpv7[r_FiJ4^Sg;@Y;OGJXYI[i^hGCkXGRZ<;TA8g?4iOM5DBQABRI9P8AQ2O53F/;09eOo&RTM\:h3&KAeDINTHOYc@?H.99_+EV/WPGWII<18^n7^DNW;E[Afq@0C_M9;u090K^]FLMT3E^VKI?5Z=Z>LOGt:*82WUHM)?H_nP??KC^7BSfSH=;K@/OP8V;'D>O6YHGERHN?AL6@XN11.Gkj*K8GSYILFSYNQF]@3)94+/3CCKB@D9XC]BOa8NR98;Q2=5F9A/>SQ>XXcN.=:__X=4eF85E(_QG>e[PBg?OG5@e:=%SJ)MC8:1?J28ECKE<3;>P1=D"6$JIV81;xH?QR9IHB?G)8@23?WI6b?=DJOdC,B:H1I_DmP9Mj6YHS64U=G5Qa97*E9'?2/J@S^&G?Y3EFH`;@FC?CL4NWA@6J9OR?KWB:bG:_56O8)EC><2/(ONRB=`MGBQHTR/_IIUI@F8H/.XX34HO3]A[s@B59%K:@WJJe/?U2X\`ZJDRKP?Eg[FDTI:oWN6P6H[N:AKHg;7R\RHvWFX49T6:KVA=OCHS@B0EPR5KRKSX_QZIT]@P`R?CLEO6bX;G6OrZMfMR6B8GoFEFJ^ITAJ@8D_BNCKSV>o=F2z:CB<;N{B88>8FQK:SMhL^B1=L.d=YL9EJCGKmKUWIG?6Y8CPUBhIE>^_B@>EUS*Q]MKV:HIV9OE>95A?5AHKe?.*PY?CN5UTP&QMPD4>0dKG;>9BUKNC2[Kr_TOG^WKILW:OqQ?Q^[nTFVKP3cGKFABGF7AAJR9A=YDCEKGSP?l.wJE:EGRVA!E1O6?;A8RT:I9K8KD/:;O^?@6K\P?=4K5BCCAY,U.69M54CIWPH;LS:G>IAW4XFD@hBL1QMH496lT@N@0P?FH*TB;;2Vc5b6[@:[LcWPRFiOD^NV2>:9F7F\?BKfUABG{LInJX=t_\1VGI[<,PRA7;+OM1<_6NF*-]C=SDDXC:Ez.U<:XDIAW5:)RJ=;OFGDOYOLUDN)AAO;HG>B=HO@=OVY%>KFX^O8O7LS?8O;jO.m?QMJO:AGWb/Nk=QSXPBHF:OA^U[Z9?TRAhFWO?S[VN[EV5KKb);K@DELIg>LN+KXTR]FUOZQJWKIfIgW=\HmhAiZ+TPD7OnS:?/rB\V:gP73YW`Ca9;0VK?MKSHFB?zFE^>h8)[T/YhUCWK7;\LHf@DRPIMD?H=^\>HLKICUP^p1JXWM6AHIfXAP4IyN776RFKD7:FEP[EQ\fUpDh\RFLD=WlnWOY]?lh[beSd=P3KURBE}Prh:`eHX]TYRJIJM^{]fDl_LgSnqELOUaVa_iCl[IQbY;mI\YT_MT3^VnR>NMhp>`ZDb=SNZTPc[wXaQlL\IRPZ[gTKETCMB;YMY[V5di^UcY`IYCfbeG_JQm\M@l]W?_cX\`aRTZ\N@HhlPIOnPCaQcDGWXSWggSc9cBA9=Ebh2?>GQSVF=@LGRWG]sNjV?F\E\Qu\W7Ga]XWZHiOHMGLy6Yb{@S7hNlgFNFPty;`IRLLjSKG[\X\I[OJI[LH;bU;2IQHM[SQ`=T8L;0BJ.A\DK7<7FFFA=PPCQ52CDK5:FHVUWALG_GIEM@FR=EBFE2UL8E]IaE4U?cE7DEG[;FQI.PJ;DDECRRCQ;??8]9IXDr4BXIRQUNYCIHF{W7OYD\B7MW=ACc4XDRIH)D7h9HTQ<\\VTU@CRJQ06I5W<CB^T>p;=,\Ma;\EQNz3O;QNGjOGOM\4!@4Y]FUU3BF(/4LBcDQ97LT=GgD4HVW=<;8@;XOX<.NG;]ISGFXUCJMEAOFFQ2EZMIZZ:?LM={@Q8pCLRoUHKAH9FB^F9NEH5,O{H^[7ICE`J3;FSNG.BF:D=DNA?b?M@HWG:^cE8`IHME@>P=Y;O_06hMIP<9L4KK;9FA7>=@>X3>58C?TK8RGAJcaQAHVIMG>fSJ:>dK5:W@Ne_RAIH.6DHFP=TK=7GF6U9GT848?q=>A5b773=iWMD2=wYPW@A&>'M]T\aSZJr2VJFAG.:G?I;C7PSh@aV@BFNBNM?@lO..?IPHXGL9MK;7Q3D:]WX^B:A>dED9lXJLM^MG7:SZFfI=@U0G4^OKC@C?4P?JKGHcPKJ>D?jKP9@[URB3MENARENHRZpHOJ:8Mb-OsFACh>EDDT^QhkRVBRKjE.GGGOrRK9?QYM@CGXC@U9DVOBEEI?UIOT;:EU:AB9Z7@2T9D7GEOHG;U6IAH$>JS`Mm6Rh9XCUl:'Ae*3@F:3dKA]MY{)7O6JKV.=W>MF-4AhUPL:Y2;nK7/B>kASXR)MPF?6IJ9K@BIHSO?R;AV^aE1MANT?)(@[N^8XUG:VKFR-R[>DRO6cIP?2HXRK^?O7ZNfA/9ZGI1vG:H9?bBQWH@<@DJJT3bIQXHDGEa@/QBKE9VNF:DV8CL<>NQ[X3.=J:;9PDWEAR@DGh;AKAN9YDMI2@*P/I9PQR=uBK4?745AE5IZ^@cV7DOP9Z3GLB?aRD?J\KF@LQKMZ,(H;=6f.8OBV^\<+TE8QqOP[EHoV57D@;\J:LM8hB;B`=HfT1LlFHCEORH>JRJRB9GOe=`D99?4O?Q'X96GMD-FeBT&N@91@?gJA:C208-L,/dWC8A.G7K4:Q,Y^/7,P>1=[LJL>PZW>EA3OYADFLi85^A@5etBPACN@9TA??cJ4h0MC2FMAAABIVTjIHTXM>4N?YTR\V:s_}BDhRhCPH]@CORIv\PHaJJ@GM^jc=RaZ`@cOVQJT[0>GF\VEYi(WDP?4vNXiNIO^RKE`IV31=eY&K;TZHnO0O?Xa;:OT@KDn[[r@?tf6QP>NZdRhi?DI=G@jCM?L1JQ@=J[J?=B;8[[JGS@Le6DQML>P>>EY)AAD?mK3ARVfGPFoU?QM@CDO&>F=UZMNJGG=?O9;08RJM>vT9/Q;NCDSH;I8MDY@A;7SQ9C87A3GF<@H6O@QcrCFQZ;UIIKDE=Q79`P5Z;>XAHLErPH?HVA@b:JAC:B=LTQLX@;:=R@HTYFV@FZc:DJBH/>;Wfj@WizOH7?d.HRF]2IV=2yVDL?XA\Q[^`?D9[C#l=;PIDJ}`\I@LbHA[E^4PH\=S4DDVMLKCGdvM[vJDQJC5NZZeF@9vs@UcELKANJfMNDFFbGbU_]g;WWTYNUO:;0:\Dn[TMYeF5flUx<>0Hz=NllB2f\B`L^DA9MGOHl[G=JD;H=<=6a8^L]eBYG88HLHSXY8e[V=Cep?MS>?n:XDAG[:PHuKDP>JAHue7LGD@HTMOg;8HORYLMN2=?H:E>JLMMVGLFPVPQH]D@O;YJ5GESRiHHAQJ9WHJJJHLHMWOH:O?YPm>{CPJ@@JUc@U9EH``>ROMR5ARFV\ATSOTL@SQD4LPB@7VT<`;QQ^?[DW>HJaUAhJKX7l8MJJH;\>USHKBM=E@Y=WS>=TB=YB>IBRSKGCGMVb?JWI8[]MgD?KEC>5aAQY^FJsJQG[IDINLKkH9ZLEJcCL<>iBrECF?GS}HAVH0P:HuHOJDT88MEGI8;V\STf:cMgt>@_?FiHlYb?LT8cgJ@7?dX:D5dE_LXHAWVKEB`?OUFV^B`;OMzXWI?F_EG^M8UM=QQOb?KpTAG>TCFJAHRPK8AHLEYCTIN@@AJN;VJ5\8(MYG6V9L^CA@MKc>]UMPqacUZR39ILJ?HF;`XY9BTUCFCLAVRkb@ETQUOXT\PdREBMJaSbC4PDWHUbGM]<^N=QbCZHHJLJfEPK@EQGM@:<1GJ/V6RTER*NCL267Ad0?XIFI2K:83`VU/Od9A2>RMENDE?><(L@8=6J9=NQ0LGTE*4?0VF@?ZQB`2O?2EBCU;E8CRF1=:'IX9/8,?MX:_<:DZAC>E#MIC?IA>?VM>E?-B4.;C3K<1=IT?4D:A=S54NZDI?S,GGBB[YAY@4@-ZO]0QHC:.FHIARFAE@L4@MP/Y?9?6?H=C2K?:;FEC-`FZ59GD6LQHC;;Z4FBg8UL6+QCOCGCHDE-*5W.SN/N5H5i)VINckHO0\#F3(3JJd@;?B8FKQIKJ`T(L=Z1.LPACMLBD>WQLKBj:RWGF??[K=>19$S`_*R>fY6q7/C;RQQV@b1GRA@65HF\WQPUY:AwYN;E.DH_BAC5EIBUGL`aEEUROOSB/7>EPm[JiCU@MQ-eQR;IJM:jKEEkBVO?DLaK[0?[XRD035EKK0RF@KB[M2;:N@GNLGLOE=3CESW:8M^IQN>G=DLnSQ=XNT<=:JGh99HO=<\G[6`@RRC;;XG786D:+_C@^QN5>9BL06=SaF7?4S\U',1AG?1Fj\?NLPaN=WMF;\X5BC@H-6aKQI2@HGD,BVQ=H."KXM4EBQG>A>;26Z9>E9>?.\BOHA`GA@9bE:5?HB2593=;Q,1K2E2APRFKIC9E.*1L;AWQPTgV@GBLD[?DWCpRK@;9LOJH?NRTG[FHXPv8QDqPG7BR@FZna;`TN2CKJLYPc=JONTlEPGP:CSOT9=Khj@N8EE@GPAOA:K6GLDTM[\hIIMVGEEQPDA=?G7=M>RvVDOWHX[AB?CFXIH\?GML_B@iI[KGFfLMJHBK?HS`@R\dd>`FQEN?B`>MQRidKQ@[DE47QXIKCTHJTz^`HM;QQDCUAKYAJQR`EDYMV\VLHAUN?JNRN9KHSoMMDaLaSKQMJL_NU2>KO@W;\PC=DDO_JDV=PEHOiCAG]FA>WELOFSejFG`Y>SiCPCH|KV>@HXIfKEGCW[BI|PEV_IcKNOWWUK9P?F9D=cBL?PBP?0;@8OHD=GQ5?oFGC_@)0[[:XSHGSN?Z>cAnD-8QTjN@0NDZ`lZ@>ZE^LU{=DHIS7OJSFAI?:YDMJLWQJ:W0O<^H=ZBRf\R:a;QH01@IAB<7[i-W3WoDGIaObkVQOL=D5=HP@R=^]IFE-X?EbMD\FC\[EUFpV.:>U?eFXFOSFIa1_arG7[>?FJEBdc.Ub[RPYESE3<S_>JXMOXCa3NH;=;RLRCY\19VG56-94K8S?96Y;@.34@4+H.#Eo1JCNCGRLGl>8?A4M>>HA?3R87]\QIB55Z>M1?MT8R@A4<51\GCMXB>KM8*A@9Y0I=7>[:L9I;CL81.AFZD4<;=91LG2dF4JC?J>EI\]K763WMbJ39NE=G2I=cj5=H/dD=BK=UFGe_cP:IE1PWUF<:I;RCWT>KJ=NIY>9=@.NJ7E94Y,GYK@0CT?FJEPC_N?h?QQ=<]G0P0T`L?`>XvERLIER>PFEd0KJMS5H>@=hF8aBIY3N_@^CUaLUA?GHU`EORBFC^W@CN=^jM;2dB@[FB7B=WU<1T=GFb?J[=:#W=LCKDRJVHWNxI9>:@T=^_KJH=DC8FZP_@N@TIFOOVDOL]<52)Y>UVFeEnE=TQC;FKIN4>H:m]@tGL6BMQEK=BGFEIQ=FI2LA;O?KcWNJGI[A.DTW;N?@B];=Vaq[ZT77fB@:WQ?CDZv?XfACn.9Iz/@ekTH>@MT0M>TKNx[LXCGRXD8LMIW>D,XH=HQKL]V@LRBNLO?aX@4]CPnMiNKWJBTR]7bTTA`@@]gDAOAJfP;DHXX\SMCCiO.=r90DgGAU7>a]ELUOc<9KCIAWE[s@>;WErLJ\\;J?8K\EKDEHK;=M_,DBNCuT7;JCfOE2M\JDV?Js[hCC<1QSAG7YR=KL>\8*>DAC;NH56L5YGYE46V[YtLCBNFWRGBg\M>?;DLTIX:DCI<^C@g;q5BU_M=8VTREOf@R>OoDL#Z/TJ:I[I=?ROAMJaBXaYK:RJ\0R8=K6PI@]AlIER0WA[JP@?M3S=SOjI6_C=\ZYRqSGBF@WP>lRtHWR$L:U`jGMU/!GBHHIHNI?e8'63hIsUAERPRvM@HnYKUAvTEQRINPjLALJQP^IfVM;8;c@Rd`UKZ\=PWHKVLZN@?bbcRK^KBCVkh`ASDEN?ELv@KLK]YJTRVETDWTSPI=\KEK=OEkI_RCGHJsVGUe\RONACLQPORGZUbRFEA>PxMHRQFGIIZ[>EDgPGR?FPD_JEXOKbUT6LKI^R?E|KA=[c[RNdVpUN_^QPNGNEf?E]>ScI\bi@~TQVwpJaCGUL\RKmHTHKTJ8ER@MGhOVW\R]Vel=OXJDc>EFjHURZMRAID[SVK[KOCYHUsIL.N^RlXXKW`NNZHUCVM[]XBSPlUSi5d<_EOfGNXedBCchBKLIIN>HKP?[@THOCT_eX;\TfUHJYA=k@A>Ya\NRLPafFQ:KGJ^UdNQ;LJFlL=Wa=]HP;APCBCDeKS_PYcQdYB}M{8fKDVPP@FM\THIDdUCLJTKF?VPpDKiNGIZ6EG\bE;OFZLdA>PYGRQ\`q@NRaC?QOI`]RwBED1[6BFDh]>+bJ7KS5P>.FPA_OOT=[*H@FA2`M[GPMnPXQYOoZjY&53R^OPZ@T8XNXF_RoKUPDSk{TFBNSdNfddgI<3>JLBDc9TLo_O]E\:i_?7^hlN4HRXSRbW=*JqoM7KEchR@JT:OUNHII_9GM3I^XOG[cORUKThaV@YPQ\|OLD`@E[>OGmO@Y6cFZFFZ;HBKR;RX5>H>EJt;Bs:m1J[8[JMrH]lDIKF8E@NFKa?FTHq/GJ^dBBC[4@K?2"TQ?MQBAdFC3a?8Y{UUPE[R/=ZOZNPZ?VE7>UKOF;:dGKH:=\U9<;O3\[cKA]LQ^YMNQR>=_Rd>h_sLLOS=X?Je3[GnNh`RkRJ?FPPuMBLKPBKRZKPmL\LQ;BBOlX]AHEt?hXKIoEa?YQUVQIN=R:JUE[FLSEFASOfl4LdGQAjNKKHcbfGK;EQNKnN?TJjDJ^AHMJUEUUNn`ZZPRqS:LrJ`SCZ?LVREN[LF_J;]I?QH\QRdLKRFRaRbaoSZDLPVDgLYY^;BR@KYT=E?f]SELVA^RdPB@6rjQDFKT^WaUVCl^KPG9?:IFaU@VCA7ELPG>gJnQfiTFEFa1NJNV:dhdRlM.R>K64LMN0,GF(PV?\?AFAAKM;\P4WN}_0J1N.K6DIOH1.IS43E_>1KHeW@A5fW`2;B@8F`fYEE168H@CPG(U6=AEOEQEAVB6=;G>PMF5L)EJIG?vmD9k=u`==j>;A]H8OEJMIJJ-X^>:?GD^0@FTK4.Ca:R9ZA@Ye2KLNW@<@6EnBREPVDRTMIG?LO7J9LEIEAEY9YLRFG;k-Z;A@j/FH99MIBObbC6.K>INHR^?>V>;<.G;TMAZRIpDZNH>0VMF:\LJ0?[RFWKM:4PDEM=DXN5]D2L<`7=_S::XCM=EMcoR2DPBNNPFI\@L@9<>DM6dpG9@S+MTd3DFK]7:Od6:/FILYGd=7NDVKAWvCM?Z>qEUMNITEI-=I^6iLHV8Fi]cIbdd=M\k9F>WR>XRS>MNVC5Pm`PB<C872YCLQ6Y_NJ>2nKMMN9PdVk6I;=+DBW62AQ4VO@WqD8d[S8>H]J>QpYV?C1AL4Y9V`?LJOKHX~"NDHA<7ES_WF76SiZDPDVH1kkD=;harGCDGMN=SY]fkEZ^_OOBHG\O8s4?KEo`7\Q>C^MPNCCZEK4]@KGH4MUV@G@NOj'BVxA4AND/E?W:46A0?30?X69::.IEBB?9F@DGHA/-N3*TGP4:,JE9V=B8DM&=BK(n5?EJ41-=IBLI3?66>:@,4?J(#P7<-96AB>@A5*DNR>=*FJ?)40AE3LYCH_ReM3v:1XIEeB@^?@28i3IJ-FCF:ON??:>1;I246BBF9`?01GGFP3:7?G3-77P^LCA874G6HAB5LI0;18;E=>9,?6A?JSR@D//M*,:E@>DX94EDIKUOJKB7FN5]G8BBI;D2/>=G@\=29H?=CVO8[efdqIjOXFS{LHx5@[M_ULwnM?\N5BEOUbSP\cPRPHNnWyJxs2KNqYF^N|wk>Xg]V\hRWQeDW_pVfJ;W_?JL9eXfF[DQH_3pVzMqMM`}'e=QBaZt>hQVA]XJf5Cc*aK\OOpC]FL\utZWakrO\MZEX@`_fZO^psYkBY^jxMRJb_fbWM=sfeD^L-6]:]TSRp%CF^Wn6@@ci\kiMbk\DXOM]UVC4bSY[C>P8pXzEidYggYQcWXKHo?3HMCET;r]&bNjOfu)^HK[8{UmC@^w\+MILyDf0AWCXTH;@XKFn[D;YL_VL2LHqBJE,W4@LYTRMULU@DRYE3=ASX;RA@ZfPD<=Pe>TT/3PU?Q>BM:bFW@7W^;Bf9GUDCEJ\RSVC\PRLH[N^DTNPD=Q=6ONN*>GYDMK.Iz@B]KO>K?>:LP:QWIT*KmOeG?;fMFASSIb6MCO=\AjB@/48/T9RBGC\M4QD~_BhKPSK#^WWMN9:OQGEXPDiX5]@>5MBBPhWJCK-7L@O8=QYGagJ>@K3*K=FG8eK'9SoBIUB46?ULmQBVK8?GH?A?7[ML8.39FN9obF4GM?CH@>AMFBC;R9CBE5APBVUDG2Q>EELPIGBKG^=KTVOF:0>9[FK@9EHZA[A93:9@PCFFAUCJ%HL9OW3F%7Q?@:7\RHKL;:LY'OJ;96R7DHVLJzRB?IM:H;c>S8CTPH:U4>;BC5F3?.JHV>]FLF[209C<9JUE3TMNIGBD=A<9RNK@0_MHN^7KBENM\9[ENyI>oKpL@4?M\D<8jR.V8)U?fNIYK>O?MT8J:C;RP:>QL5NVV=[ACRJp`7^;9LFsUMCF&^nDO1EHs;J98j:^D9W:3UD>c:RN0:FC:=J6k:XDD;GUS>Q?=J?<5B%9\@U@g13F@CBO=?:3KD8%KU7d82FDEERF:kM-I4>AA2@=BI9JS6r`Y)I9Q=B6=:WNSK>9IM9,>O=cJCV@IDCJH=D>5VF2:2/BFAIM`?l?L/F>7B7FIQ.X0FRMEF,@:gMJ3DI*>GFQCC7LQ:G8S>=/NU5IS%iDE1;MAES1x0=FA7:?G9.,M8EQM+..HKH6.N=6A)LGAE08R,.=0=5GD:753C1:>=?9>4MP?D84RJ:_YD4HDB9-VE=:51F?aA1I+S:N:JKK+A655CL@?A;E<\B4D,=/J>=cJU*89DF??:@>;9V=6?a7>C9AC@9EDDS@60>;I:8373K7QHC]75LDO5DlTG5F@<1J29G<@V@AFA?A;S`2D]@FC3-BCJQ1B4R85UHD;C@:;<8L1G286?E:?UHQ@X@U;3@1W?7=:E*77=DMW>QBB5<9/FF-5>1/KP;8140=?/7V38G4Yp2=<6ACJ>I8FCGXWW@=M,@AGND?===KaCA6LU^FI9+CAD=?:-F99LUDaTMB5UMFBAYUYGq1O6L`=R@iI7EZBT1XQB\^?O9VMV@=CK>@E5TON>Q@9Q>^S^DW?GA:\8G>(DW@NJHEK-\U@[GN@^6F8=I$:-KOHIDHl3MZXB:JN5SBQ4IRgCiXE;N,WCL4>H=6QPcYL=K=G8K25OPWY+^IFMzSBc<;J58MCB3-DF6FTH5BG`L^VEV9OJ2EDHR=L.[DAcHMd7]a9D>`WM>EKO>7bFN`uoTC>P1O`D:@:^[HF8ZU==LB?F7as97DB.FK69GIKP]=MF@BSBH:G3M7ASQAPdQOGO6LQ2BU>NWE:7AGKW@GEBZKDP5VD<`>G@>DN5ORf3?V5=D@K5GG^7iY2)C;F72ONX@NBEUDh>4<=M$XXFa1B=H@LAq5P5G==E9U;I9;CF=D5W_;DP@J=CKYB5GUH5ABPZN;KC?EKA587DDFYI078I8?EJJR=XFU?H^U`E<5BVI=^5[H:Yb;8H9T=8NaAPE=]?@SPX_[pW^T4gI0@/EJJDM@K@jKJUfcBW(7X=K:W>BBd:*aLN[XVQ>9QUONeRRERE;]P>L<'KQ6K2f:b4r1jANQdhXUX`^5XvaXTMI>M5UA9=Z?CL@YPGBFPF6K9YUMCS]U24AtV4XT`@PEMIS?aE(X:MEO;3OH?TY8TM`@<>.kN^C[PVOJOj[C_Pgd=LlI4GE=NNPGEVcJhK8?NOFDfOfET\;JQLd_hB;Z>CT?iWCQC:A@;p5R[/]N3QH4FBW=\<QRvFlTJ;TY4eODSUi^AAXW;DI>JTE_SMlJH>PGR@5CSKKi6PQCI[WAQ`CIDOND1K?EA@7@E=RF;YC-J60GFEN8EaGTL1G8>IBU+>CFAH]8X76HI@L]Q:7AKS6JIGE\@B8?37F>G?@AF;G;N9LE<.=C1;[YIDG4JA:KQPOQJ=4JGKJ3j;8JD_I87@6J:>Mh6D?8@sYA?8SQODBIC9H@,Z&9;-CB:AB6D*Q53ESAOP8>A|>;GE@9867AGAIV98KFX:L98:?@87GDXHCcCGCCEFP>?xW=1K9K;c5>N@76HQ@Q;8;5\F1BP:KNCBSJc9;YK0LS4@C[@GG]:@FB?-iDD]CJ6^B4P9DGSG==N8D?FR4I^nNL@EC{]E5=EGT43K8CO@GJ1QAARNM7L;:@FTM@1-Q9R@:@KKEBW?@IAt>;V>FI`KLMXB3F%CXH^hF/B5W>GF>_G??5GU[IXOuL=6bjF7:H;I)k>@:FGE@D93;@LT6GK:]W5>E+E8^%iFR@WcZ@SBFEQQm?;?;FRkOKLMYWQPTI\E?OFuKEATS??NDBQQ?EGG2EXBB^Qm_LnLJHH@LKSIIDLz8mVHKD.d_VL>K:>\^BADJ9aII=E8E8W2Q:6CP:EWRY@AOXZBIQ]@cc=-TLK=?GNISLCI8@kHQUK8EC]S?@B=JG2T?:AEFCHVJgScDADYJHHPK?HGRCQXB8^O8dBF9>LSLDMYBBVWQFMRAAFd;^cW>BQfJ<E=8_.>G9ZQ>5CZIW9fJK>f=8gD/Kg;@6V[W8XBI>FC=GbNU>N^?9KA?IEEV`XSQNoNM>CNPCKY$KJNB9L@HBLI[+,[?I8o UECBBEGQJb]DQX3N6TCqW=dKL@5K2TUV;;I4R^JIUQLB?P6jKQV>HKBH@DWGUEFA2cCSM9[ZIQ?]k`I6J?JCQ>/LY?`D;=QJX^ZHu`CVU=PLQXGui\NjLXVCOPOBM\U?CDIV[R>LGKKPJML[NRG=EI\DYFAG@CEONOKBWKgR7S@S>VcRSCBMP?V;TOJ6H?X\UIINLOL>;[iL4>DIN^PVALP>QIIZICKbMNFDQAF`H~fRKNSZUYQHGX>5A;T;EFBBGFISO_AAAFI_OMKHONxEILFJHHMIIL7GJT>UTTRLTRMBQTYQI[S?eGcX_XKFLIRFJ@B9_NJ`XHTNOAuE5BK7?GPCE988:8<7><5+>/:75@>=6=:6.C64J,@GF3/@>B36:63N:7;A4<<80H@M1NB=::B8H=1<>8H>@E2AM==9:P:>?8:<>0E1?980DFR8B;->90+=>3B2?9K6?<.;F;6M;?/2?1EF219D?;/?;J<0J<92=>BH/2DO2?*2O.I5@BOM4;H1-:,2:+52;=@JGA25IA44HH=E.94>9;EAL7=BFA211?76*@83JT=14F;/+1I6;I?=E?E/>;E:EG-/I=53H381-C/@F9;7A:6=AK.A?E;1-=CW7928:I?,H-8JB843@MD669ADBR;3781:A;8>H37#.:54C=D<.<65B7;=D5>5B+5:FCH@.7;78<.:D?;;QI2*??B%:>A-,#-,;825:B2>?2I:G.*(J<6N088>O>=8,*'%<6?5D639@7;E>65D59D9@,:A;H?9A6=48=5598B3>C<%499E8244/$AH:-.K,EA04&;;08*9,<1,3=6D.9+8DC7?<%.1=2/9%7<>:-C5)3:1D8@)A3.FuH1>E9ED5&9?2915,87K8?;D?&;0H#83.#):@C46=O:GC;A?28 47OC)A*0C7@9(D2?8?I/EM21T-9,H66A?>3B:$FH>A+4?=Q'3j3a2P9AO9CY2:VLEI@8KNi>=8?HE8X=B;LEChNFDAPDG2K:?/VJoN@UNF9JDTO1LO:EXYaK1WR1D>RDSER=0WDQ-PD6lLEGA:KU@VO-C;?NBjQM21KFd.5WXVVO18T\>DH9LBADC3@RPBN=E?OSRK=ACUZID3MOML?@@H3]?9TBMLQEENA2:4aB<>;;DE;Q?FIXIGFF/@=I;;+;I/r5DL@/G1NE_`RV>YXYH7A4oANZZSJO;^JF0HHRMK^\I8;DGS`@UZPRLCOS^aI\LFGPXVQT>\S]OA>Un>IUZ9UW<^W[:EQ[AcXoH8U=ZZ^?>8UT@^YdSSLNB5_>/BJ:BEQQWUeK2?^\GFi2\GMAMSXgAF=Q>UjEgR@IBAB8cPr`DG}O@Y6RKE<22F=OHIB?>F$;d=QQJo/Dc;38?mM^[J8D]66iJCK69AG5[D\9#V4BX9AAOEEbEPC5dabCN]H5ZUEM7dR>BT=7LH?9d/3?69BZGLWMNJBDALeILk/IDB<.<0J@29KJ9C=GWcW;9P/nXGYGvBFHTJ;CKKZJlEG=N0+:Z\S7G;HrnH=XLUaM3`Z>+HTWAjDDX@>@-:"_AnJBJKB%3:H3499O9M_2mFE>O73KR@L3PLD7AOPSMH75CS?d`:;9JJ_^9GZBd1TNV.YQMSHWD7T@2R[YYVVJoW[UORCSLZ_eDSS^MQKORN\VbWJPF>LJU^GKJTPDMZ]TSVSTQC\Q[S^XMnPI[\HUwW]DPUX[YTWS]ZcXNaFPLJMaRfPLGgNUCFL_G\FSKTKEDeSZQZUmUIgQTWYWY]PIRWY]\R^WR]]FJQLTYTTaVPdXMTVRT`_PG^QVTSTUM]AIeVRObRQiULTJWmQZcpSiUcJTJZVZN[@^J]UUTDbMTYO]aWP_]ZVOcLIUNLQDUNK]SRLORNN[dYU[WabME`QR]KYNRPc\[R_DLNWK\RXQSWrJFTfAVVTVZYZZeUTKUWWT\ViNTXaeQIWOzbQTQiGTLTfb^W;OmQRMMSII^RJtJaU^OiQHMJVOUTMWX\PJT[dUN]RJX[KFXXX;XO;JKSHYkPN=KMMG@`RP3UdLD0TOQ[SIN;BVO3\?Y!96SKOu_FAXIRHY?AQJB,AnKQ;Y=LNVXI`FhACL_Jm^V3N'Admag5BkG67\9k6F8Z.\REZHG19b[MQCD[Z[?DTUXdhN:?QW^WQTj@bDKqSB09B_7-DHAQICDR*1OaV=J(qiQB4/9=MczEPGB=E;;\?a@ViDTcO?A(M['LTM0s:IHHM\6;MO8T[N=WZQVN\@zbC2O1VJS6>Y@R]LJc>G=Al*IEID> JJ>;*sNUEVFDW@@(>Za65_Ub2CCK;>5?lMVG3TZ00H5UP0:1-57LAAQ*C^YdXPVR>3MJCV;.OUKZ{H:0=8I;E;YnZDUR::H1RV4SPJ>/;6J1>KLQSY=KE.I;AK_/o,MI=YVGEDH6XKMH[[/WHB`W-:VOU>GE[M'R688b:=ND*ND[NSQ94GCKEUKaFJBO>-;LXA@NA@.Z`d{LWBf3+;:[M>QNKmEQ3?`M[pgOxidzb~dRcd\\dW\vmf\axcRa`\p`WbYfV`yPeU{fYsoj]`htjjg_\[hmyakah]\grfWdko]iTmYgncnK[dk]fa[u]WdXtmmeU\^LuVR\pc_cugRZejsW[`Ns]q{s`]ShktWl[ke_qbaXh[gejflaVbXKl\]srh\Kz[Ylc\Xdxc\edc[f{Rohn\rwnehebffmm_`cjgnYlcsfohapRVqc\siohpgec`npqbhju^fPc[rp]_d]^kg^fkoLXlgVY^celuvjb>i{cnlo]zbfbmZYpcmiXllgb_XVpll^fqi[Wdi_kvkhq_]linWoapb{bxbadg`hYcI`bmsY`ykbflWwriieRj]g_Vak]ickmvcey_dj`rgbUt_Z^yem`]S@P[TOPIW?LRRM^KP]NE@LMI=YN@EYSNePUVLLMaPNBkcsZSYDDZReDBY_;[GD=EBNY?RXOQD]=ZDZXLIYaQBMFR_QCCPrGCAXGaR]\E`RNY\NECZ=jLr[lQBUMKC^fBQW~8FDL7NUURcFgEq>PSV=N?GMLMX^J>>LNrjJAx_V;EQNftBTIULzdI@Z_JDIGLS?BsX|@I?5{PBTGpAEZQ;DFDQeVVL6<9a=.HN?T\'PSZR*LhMJGSC:CRTH:9M5rw2XJ]6BZ9ODY?ARX[SO>CK?jQQUbHf>4CHA?XJ@D?LCHY^;^>IKcKR>U:N7QFuXFZ6WB\aA84HJDR;J<5K?BFCT:BRC@EDY[JXEZ7RJK>B=QBE<;?_C79^aBPJBf=J1fm-WKMN<7[(/QE7X=\U@DDI:T@RVEHSAMUKOK2Zg=3VL6C1faBYNF:HBUNKVY]<]E8GUGIaU@C1U[D9XSNG]FA\QdVP}?EHQR<9D8VD\BDIA:CImG5U@M0vV8NUXXQ`h;=?4O@EHDFMF$8QDAACX^_RNJ]BhE^eHEQCJ:?GEKT>4O@S8C>;HA]L>Ud;;8FGaLPSDE727FLE)HGBNS]P/>?E1@?tQ@MN?6?0FB;OE]WAu.WHZKVEMG<>?_BHE5@QIFCM:Ar_2S?]3=hYR=E>;DTJ2S@a7FFRSMI?_eD=F:GYTI]8EtP@OJ9OJDSJWQ@43DSYM=@bJ;AMX9I37AZLD@PET>Uf=?7L9ZWEE.@\D>LDQsX45Pa486DHBT;R>?7FM>BABK0FMAKRLB_KGLC\JJG9@15\?K;MHHFAK<-+N/F73YY->K=;TIa=:KOTU_RTOVg@AmL\>rFXb=XTX=iZB@KF^?M]KNDTUF9QIQ>HY14EbBcG1E85TLHg;QQ1M[V^<4VnNIK9V.QIMFVN4HdmDi>@Rf6SF?IOLVW9S>JRFX[T[NKZ`?J:ReCWUX*F[C`NTKpp>/gSWJHWAd>?E<3HNBR=GF>FVS>MkGRu>EE&HHF?<`K[QV8]^@I\LS@J;MXL^OKILw>THT;=#T8P7RTHG+0DRU5C6X51BL<|C@PM6L7=FGZ?YM?IYQZBBM_=T;L[^IUED\MFJ:I7Q_BoLGYT0FBD>Ak9[78O2Ji[wK<\JAg29:PX*=M0Q5]^p]7BA]Q_AV>YQHbH7DlBYb`[E^N5[@X\UGDKZ?YLDTOO;N;V2GlOkkGT?CQ9OCN+_>ESoW8K=Jed.M*`@IE52Y4zj;+[B`Y[>:HCXd?>b8=R2MFL@x[EZqWlEaMs9H2REJ5),HM32MWV@.i&V[FFiOCGafJVTDSVTDSN@GLzCLI9LUQ`^Kn\gIyZ;PggV2GSUVXP>CDj;ZMAHJKD;YLPKNCU`MJH?S@GFQLN?NTMEO_iTGGIL>[HGSiK@?HN?W<7F?FPDQAVHH4RPCN8]OnYOuK`>GHCLKS9HE>=V`VALXE]QG=N5>JxIDP\UCRLKKUIOHMODKIS9P@L]BOFG@VIaNHJ=KIhNbBGBFBCUCaI5=JM=OO>CYK]MW>D\^OQ\XGBZ?Q,TL~ARQX?XDKT[aWF;p53mFZCP7WMVq<[0Z4IeRG5-N]I1^SGKENzFScZA?MLgBN^M:^LUUJ>N9ME>6GZOQbXaS@;JH6SOGKa;NIFRT3.G^@3VRQq"=YPaTB3WBE)HU2P[&I1.Khq8P?L$@d#F_q1N-`C9*<VY?#HG0N<>FRLQN>7T2V:jo0B\@d^>}>E:DgaLUO*fV@gAHP_Gm?O6;BMw8eTNb9I5G8^HaF?NdHK\?61NWERlQZTUCVYS.?bXIECH9)*k[Br]+5x2]]RnHwB8SZY;0SPdWZ>KBDQ@NQ^_T@f6D[2H?GU@l?nhJ=WIVF]P\e2:lJFZhO)]J\YbP@8ej4ZFe,xFY=CG7Rm`DEfZqWI1C@FE?BNC_;DHSNCZgEL)YDWGK?`PhQGMLL0CK9;5K]HRUWVdF@JbCHh7LcM@B7@/o:PJOb\`WQ_?4i;J5KOL4]DXP8=P\Y>`GSRiEZI{K4WVX;DM:]jFQ^B[FbZ@lEaG`ST?@g]3JeHQQ=_4l@ZSNXILIjBKMQGN'KIQ=]FBjOf9e@OCLBDLRLOJHXv?OM>UP]MVE[FEZGK?il+\/bNETDMgHc_B[JNYPHVE?AWEJSxDBYk>Td?TAQ^eB>BDPXR%cb[=>VGYSrXXHAQlUNwK8D`WTGJFSSM7=YIa;B\BdUJGcQ`][jCeAEZR?BJ g;C=B_H90piOB_DeG1dJU4EA4+GE8gZeXedYUJ_[RV=s\[dNJCSEYVYuLcbQVI]]^6[bG[HL$Ruj&[cYx{BKV)eK|MITTT)NNz@P EvV2[)U_?XIniPNmAG{iWdNoVchQdHW:=`BTPB\EXf?@XI7U/UD5F e1K\[Hlue[dtvd3_SZJCJI.:?/b;X?;>?@5O@9DS>@/;8DCO/:2C]C5l6?A18J8_M>GQVDRJ=;3DSM=MVUD`qCZ=/4VEKI\d\U=E[=*MPIBCIG\T=KETRd;=m_,A=K>J38BP=FY6E7`F6RM09PIM@@66J*@`PK7:=3K7I09MEOJtK;CADQ[5IL?[YEn?H]9K;L>fFyQGTBL?RZ@U@P@EE>F?M=Hco7dTG;lW\Y9,M?O+?:CX[d1,W<79nYcJ@J;eVC57>DH=J:FC_AAfCGJUPC;ZaTOOPl4HVRIPLU`cXgRYHaONXOIY8fJ`TaOijW:@VYNODMT3_.\;ZNY[;MPYEdOK@I^\g4WRtF^aTOmVbKNgi?KJjQ`@ZgfaEIRHAKEUL=HHXYM:dk@KFB=K?h7DkMZjP[hT[IX?X@:E>CSD[MGPEFNmFM]ZK=`GF[`XKI`DSCkaUCASIK;\VLb9SE.DXD`YGPHhO_7PXGmIYdWhaNUOSPOQ8MZ<9>BMGOgUNW>`N_vGT=lRi[IQbZYfGHoL?E9F>R?TORX[uYg|gMaK|Np^_IUVJXLK\[ThJLZ@C1@A0DLHFAHSW7BGFZ[V\];F@r.O[`?B^XP=KAoFXB?2Y?PD&P@1RJ@5^@C/;FST5@PCBAQPB};CAj2b*@:EBFd.EE@A?Q;x:j7Z=XU:P<@4zJ7Qg>U]PIDZZQ*:>@?W;EKJ<8.JCDM(=:4I8V>a]44OMRI\=NBD2aUCUHG3\<*BA6B/aOCIQT9dH'?1N8AFMh2bJI?FL8CKF4J=+KC@YIUYD]:EKkWNC851PA;WL4BLR=HFw\PP=L6JC7^@4LF9FH5H>7R3H<73o:EVe9Ll{FVNNnQM=s`ZTcVESMJ)OqV,O[OZS@s>;Li;IH?WF=UIPED:;MPIwYhMaIU71e}BT<]OL\CKY@TTob[THkQ_Mu4z^0GKMSIMQiQNFPAgT@ELBd@OKHR_.`@9C9KWSU6YnHC?*8<7W=ZW`PC1;FAg[-;KmMGcgVQ4_W`C|MNJQ@[>j8\:EJMOf,D;adQEwa+-bBH+>AAMP[xB5W=;?5eiH@IbB]>F/0ZIdAY;SFROdkPOIGiSXRXZBIB=_MLE?UL@JYPYBNZiQ{ZL\TFR]-SI_S\XHA3X{BO_ED?b>9JVLBbDUGKKPhTNb`VaEJS^JGI[HGMO=nKWND@f[8EGWd:aIFYFNIVFLOMaAEQKFH=K@G3UJJ=MK2GQ38QLL<@H_6>R=?W^J<`=KSmIC;;I:V>WA\CGCi/\D8K;C4_MRWKPVJDWC7UiF_ZBP``:^NQGQ_v[IP9a?\AMQ[F69N@=XFNA=H@Y;TLnET=LhNDS/4BKAIEEIF@P;[RAYMGEIYW^8MkDEYHC8_^JPaKQLSKKiPRDQBaD_JKA=JIF@KT9S@YHKIAAFL}{ZBAJSVj\E3HcFMJGCE]HLaHA@kKFMCDS?;RIBL9HES?JFVHK@YOqfKGcIa;TS9M>DDAXFEJ=6JZFGQEA[FEFG?KUDJkKNMH7HNRJJF9_F?=O7KQ;BM_CDPJRRSFdOHFfKRJLBHNPCIYJXBL@HBiJ@^P=QSELRJGSTGOBHC`N_F/mIBXKUFRUFDQGCGANG6PODb>_K9SWM4dNOW:eiRS?*i1/HIYF3bNG,^EP;W\1K\ZLK@jvd9GN]ALJQ^KcH72UQGP4DC7dShN_J[AG@`qWTEPvA&aAA?]OMP;QJOXZP)QwNK^>P0]h7MB9B`ZgHMQS;A5CsVRP>L1WFAKI3T2@OS=]Q?%GGY]Gj@Pe,5QFH1[Ia@KMDpWRfHAkVH3:HO0vf>;}O^^RYH;QN>lGKBbQI`HUFyMdGFYGUP0NU9Pl@1DMhHGuMuPW?:>[5[QYRF;KM*OMeF;J-ZU>\c;*A?N>HDcgMSEFWAMbQSaA>NkNC0QRWtaQ9=O8aAY@bQ[YiYSc[msL0IGTWVJG[O^E/TTLVQIKJ;jJYMX4LBYa:LH$LZd0;GJ9HHK6ZQ"fWQ:vP95KF'YOTbN>:\RJCIB]QHS_AY7UGJCiYZbK[5mCEZNIR;G`8PI?SBqZ%:qDL9Z>ZJADv5\,L@hQTSGXRKJ?2=T]IBs?b7S^HSQ9<5CZ04?)E>9>BCV^h7HP(0+z-8aqQ;B,CZF6HdcEA^KmD6?QvJFNn>Ja.B-P[ZrtRCH:WBWNEX=:I'N;TZWUR19Cn`2$_7Yr2W9OAAuHQM4=OVUDFyEaBL8qhmc6;JJJHIIKC7CK;=1R4?RS02?GTFDXPOCeJFII);KPG?N8B?FD9F6\mF5K<5OEGECPAF6A8_WWX7PWfM5ECJ5MBJS3GOAK?WKTF3YO:T_I8XEKOdLcQFK4HRmSYK==KMOCB4]?@J9L@FG1>R9\=>f8>7TdOJgLOeJR<_OKCE&(USe:`SUPo)OhM7fK\Y]7tj3PJA]9|a<]AA<1KhPU3C&_QYNNN3HPuWV>hC0pFJSBfnPC]1\VTkXPBETKsdTcPP=-NvubF;f9TLD6eUM@aQCNR<.:C3B^]lFH9[m;b>;<6AK8GRWBFD6C@GJ=I=5wH=^NpSSF;:C_>nO9,S;:T:W8,IaV5-O>=C=Q_JNDD9FK]aYM-:LbP%IHkG`W3J/RBYtOAEbIH>@?DO5>>4bN8I=[B\F3D[;EMM\KO=2BaERS5BD3GWMMJ,CA)[X:-2KV6FUO2P\WHMrkEB\d72ID3MOPCOPPU@`75HbP;X4T9KNOBTN-JY@IWN[IGE7L2@J"0]E@>]>5;PX0EJIOTpM7G-CPDRG>38?]UXbCMSL<<@U@RLXA8=BAO>[7PCPVL8C.8P\bP0JE9C5iDi5RLEV=iTCHB>Ih_?HED8Z9B=b5LDRZ@(A.NKOO\CD6>55DF\IHF65@3&@BM>@<>FB7CMJ3.;@K6?C4I49@\7>6G2];,4<@BIGT7L)8711566M:;B=DLQGHS5W;;@*=00^N;U1DHON,7=;UO@1X(D>BND8HFN.=KJ:BHLPGLCE291ARDI]9K8Z@61;CFQ,sGMMEDK?IANBJTG-M7D@AVSM_8\QA0L:\MJVSGGIJ7VIO@SpD=@fM:A6h4bJL_[AL,@GS1>GkiXUBF9/aKQBC2C>GT0D==1I@FHPCOJKRWP=2C5R;EF\DG1FJ5F;?XGHBK5a1/*C3NRCZN3KPJ5].TT;KB=S;OIHI6AI?yR;sA=>LKKRPAe4qjM[ml9UMPPGFB\oA>}BHDgRDFz;Gcj[RJYLNWSFJ]\cBHXJCMkMF>PD?ZK[DK;D=0\GhPMRGlQSCCL=9SMA{CJDYFEJ1ePF:IS\JH_IB9MEL?V=QISX:YIUB^i@IB@N?EZFOOkD\P=FKQ0EJTc;AJGG@3TKINN:UiTVX?X_RNc;R[OCFR^=:UTJCC8KGFAGRVV^_TL>IQDCS:DHBHPUDBQAYJG8OgrNVS>MWAA:EI`7YAKZKNGECE|a9a@VJ=JJKOms>GY[ThIM7GyZ@3S\HUfQ@C=4I7248=H<@N9B7AN=<8N6:11A:94(6J8<'==I:4':L@>@N3,@.:1<45K841<8A>-<.E=I9O8CG51C4;7F;=11K@8996252,<0,?4F=>.E0CEO8+?9C7P0663'>;87--F==7>B26;CI0A;N56.BIB?6:G)C2E7(4-B==)<>@6E2P*5B*61DB=BAA>9EKE-<09AA0=0;18GJ@9;<46C6@>@JCWA?49/53<<@;479,1C?M<3/2D+47C96M:H8I?2=7;ID-K@M:<-;:O7C4?34@J58E:+=552I867%5'4945NF*?T:J:jg8I`hONMCA?YT5N=MGV_O?8[hzFcAG]^P/T]?_3>UOQQY>mjZP[XQJxX3gL1YEOcqD::?YU?vWPL[U[^SYklYQNjLHXcy^@WWIL?PF]HPBHN<`IX_Vb9OQ?[X<5NGMN=AE\RBkYGD~UQyZGQ3PMJLI[OIIOxB[P>BaKG62leEFRUE/2Gjf\@JLc;QWD\CF:FQKNGFIaSZSDHJOE;FJN\N+[fQIUXJ?EKHPTbKHKFPHWTIIm@e;QC_O[G@2TJUJ[@U?fTPeALSD:CM1AJ@ANZ@FSKL6HK8:86[KZ]SU;OK@MXS[F<;DCT4N>JO>Kl6H;BF`,O:DOa5c@UBL7]>IL\ABGPK1?WJOZI=/EMGN^F/R.I;?ERVQWA4ga0iaHC6;Gh@Ej8W@JT[A<4N=?PGK4eTTNCGNFEa?MH:M.>56YRQZRAG\EBNYMKhD/UI?UVDFQI?REL5i^.UG?L=NDF.KDX5<_)NH3b?QPILC1DHRF>9/gtU6NK6eIB8TNNB`7`7?:0TDJ.c7M78WN=697~FD07TFEGIBH]+3NKMOT]RR5F8S5A*A78D\6>_IFOXPARLAE@1:+!;>24EXFXDHM;5T7+H/O QLE>:GG*BNB$V@7@5F$HG/(.F3EA5+a+G;5$7Qe*.1A2TX +H]6GIF6aISCYK:JeC/TX76:5X*@OAzF^ECHAON:F8FQHT/,9H?*P?K;f59H4ncOHES:ZJQMxCh?6)FP:S@QF>DiBPLD?.>M,QC>MGFBPM>=oaPMg'HNM<1-@M>N;M6CBNBU7M8?!'nQS#KTQ.3586DA?Y@@r(T_H6KC3U4z3Q8JGF4@mJAQYEO623M=H]F\CIDELf7A7INF=iRSOD?R2P,c55UA;KA0s74>OB>IItA6GOp5DC^^G?W8:he3XQK7J3@NhIR_6bK,8E9?7LAH;OTC=C2Q@QF9QK0Jtf?0_SBaYf6UY0CT?KM@X(JG>NkOP;QRCA>FU`FbEbC@G^7i?ABM5=Y6YCDmT=TUUAEZNQN>=5V??VDBYHZGR^TI9RkfBHKD9Mb7YL?N`CpMHWSOUQOECMMCNQh;H^OKNG@D=EZ8rCWOLLcFQeSH2Y[Y7;VRI\FV89^gC.S8GR@RQT;NVSYURrTQdO1'XLbHkJhJ~ClA6+?AKQZgsVAd86dKfbMjPVl9_akLq9q6_vP[fpoFmod6PWMpcY_\TCw^]j_`yy\UMW^a^EV-==6ZhBmAAeKkNza~)eVG^H_^aR>VMnOWWQvl8PX_rSWk\Mq^?pWdQiGTVk;|LME@uajCZARL]eha7qbByGHURhAXbn[GUP;jXNH?TYPS`JJ8l^9/gcA[GH?D7:r;GgGEG/NEa0?VRIL=7RGDRSFV]HUIbCX5GaBLPB]a@=KFKgVEH@>GOXRPl7V\EZY^yFHt>BDEV5_>GRObMUNBXROhUhU\7}nVUGILVRTHl:Mc9Ob8herJD:AU4EU]\V]d8\GL5f]GR?>DMVsTMEHD:KDP:2.9I/JD;XBD/SPJ9HhJA/VNBH.AO2/HZ@BCPY4F9HQa7@RDE72?B3:E2A5CO;3ZP\DX&<[EC@XAN/LL@VHk$LNRN=89:8GCBAJHL<=-5<5JJ=GQQ+@PA7AYJKH2U]KR;C=AHKBF;Sa;/GRHI<;3F9EDFLzOK79fSIHWR;<7M4MHRIRPPHdHG4B@FR:KJCInO%B8C?#QWKG08-?Q,:4?-;;YM,TVDG*^tGHIEW7A0W^C^8Gy9VJVX?AJ2J?ZP?=J<@[;BR73GAI[JA7NfDdHNNU75K=GLHJUS/BAA9_FHEO;?ME<8X4C;BGTSERY83t8OMR>4DM[YLPR<HA8Q0Q7uCBL5DF4E/9_>`bS6PdE8L`RYGBBF[-2NS.GbY7SRL;KL5F9QPL)CP@GKBB7<>VLL:C0SQ1NGOeX78B/SS^7TZieSWB_THED[E^04>_3eb@;7O6PMDQ2D(L?U>B\M?>\9;5O5Xl9UAFSFFSA:=M[FLG-O@E;;@N;848WWMT4PDJbRDUX]J2BsHHGGE>T>KSF0E6:Z\QSSARBFC7=ZG_q;Qmi^iWkjcirSnq||\ZdfkW]uhqbhjdg^tVwvXlgLRpyglxbQpyrl~pmcTywhmf`em|aoc^f{tpywmp[|`~ftXxuXpinadr]]hTlqshahlOawpgg^Zhvibbhi~zv^kcgfy[i`qxiwISripPneshXtVnRw{paZnqognqXemsq\ptso{}KT]ojim^r`_cZq]ep[`dahvv`tV{ipjw_ek_~|qm}\mkrj_Uoiad~deZdnk\ZXx_^k_VGO^_zsxiiWjklko_nZj^fc\wVcS}aetww{ueddlautuoO{_]m[UgXxsxPiw]`^tfo{d_kckt\gxweccq{kkQztxlhYreYvWUbufkajce_foVfaSLdw[RdqYdgagH&ONJ9PJ?[0MNfdMJ5f6JIZC0FJLG3IKZROUBJ5H[YEHNMHROeVkVM=BQ@;BGMPETNIkJdLA@IJFG4WtNMsqHRI\\LA7?GLE8]C;MTTLeO5OYV6EWITDPuOWCdPDFOYGYcFJJLPWQ>pO3pHNXOe@ICJgHJH5>SuFGhNCF2;XMUPCLcBL8\GQXOKnKB7D^X6=:PYEMGJ@hJBrJ0mO4FHZ;Q^H3EEI5T6O]U2IZ_S2666RSKUM?>DBU<[SAP?I]_JP2QUW+>o\XIDY@Xa:kQOUAXU66O:WgZO:fGI7@LBMSAJIRcxARL9:G9MA5ED?OI8IdQ9sLJ\jCgPB;0RIAVKABqWNS:ROS\jAZ0?IaK]W?JO3e/Y:0egGQVFFIRSJCB5d`fKTEg7RTHmMk;cYZA@WM8\;IQD5d?UbEJQQMH;W/ZM?g`^J;AU3DGfiuc@E?PP:G82G^Bl>=DW\^`f QYB_ZTBjIIe^kDc5SUB3rQPD3XNUVSUW*>0M:DDLbQQJ=U;+DTEC[O+DQ]dJBGXio:JOJQCNWV:CBDHGaFY@/I?<5JO)D9UBXqKlDo>WBIcW@V2:\B9B'S;FPKBS@G2>Y:T.@BUhW1CX3:_N>H?9C^~hXreL5PICbf<^ JN'B&>BEDB=U'HK;:U\B`KbJt2^U^@41DI7WgnQLLPE7/GEC;QxaNZAIKjWSpmVVG]Nf;@(_jG94cEZNKAAN;7I*W]@i1^ZM<+.IZO_GLD^c:A9XIXd2HVYIR2cE/X:TH^JYdBZD1X|EZ$T`@VBsGKCK=Of;b?PU2lPZJ>OX:cQWZU!~8G@>Vu=AuLK6S?=:Ab38>2>DAD95.C1j8CC=JL?24CW:GC6BZ)U>?_KJGH5}C@*QB?1=I:[M=M6QA;EDEU7"HR:D@OMa,9@K:1i?BLOJQPEKG@IQ"Q&Q>/f>>Y9(d>U.@@7JWMtbC7UFHEBK8RA>6Il8@Y?N@ONV?FGA1G>eAaIm=5JS9@8C6KC/K<@5?;I-0@5>TKcM|HeCARFYAA>@9^ZSgNLL4C:IIB~21WMV8AH?;4GF]OPX`:?X@PPUJGHC]821Q4;5]FU?Uf7Z8DLHzL?PO=:F]ICSA5LU_IF?2@JBH>U[4]64_A@JLC>>;=NOBLFJiNPAbXI8r?`K28WCBdC;WF;K76EU2LB`3W[6Q:GUCJ8?:/1Bhk0USQ2A[aW8]MIUAJ5GTCBA@H>KWM?PEBB2GOD]Jf5OFJ59<;?DhPK>DZD>;18TF\CDNM:>_LDEU9?C41LY^ZTRWeN1GkM?::B?KAITGOTO9BSa8{./e4HAD;9U:=DD\=KRSPJ7B>LFAP9UG6JI^YXE;ZYWOR`Ey>]=H9N[YM:UBS?E:\O]?2>6a<>LEWOg@90y^fG>@F*M?\SC\GEMLX?OI`AZEC5O[h6KNB3VIaU7GM?T:CzSKK>ceEhFECGg`>GH^2HYTPGXz[RB\CGJD:E;9D2?;II?;6:6B679>7F:?ABG5>>A;><<5E@<7G@8I>@7AHF@M>C<9?AP8@A??E;=CDEH=@G9F>D>:BI?A=6>8?8=>F68@45AF7UB:7J-/3>PF>9>896=B=>7DF9>=D>H6E?9@C<48?FE7BGJ@AB>A>9C=CGK=:==<>6;856;??:J7:A?EI:>;BBI>G?HF<:7:84C59@7@CEJ?5=A<:G;BA8926D68;;7:1hWGK:J=BKlXHWCUdE3:GJZKEOH8;C'4[GA_TNkP1hI.8FMB?QP`8]L\DcPGLHKRU^HP?QRTOkbWEmVTJA@P>?OY5YLC@jpX/RLMJROEHQ>PFFK8XaMI@QaW5gIgaAAJZSPU)\CUYBNWNUKFBpGJEa3RMLG=E4VS?58C5GR3=QQH\=Mh=]jKPFFS@]BEBVa?aXC@Gd]GI4YGB=H@Bq8aSLCORA91W3fYE>\^>XPP@F\BkAODc?di0U@5HHMHEDHSndCG[_GQ4B>.\0B[N\4R2GANVCXCQDTSKUUXAWOCmUF>nHFB37ME@9@IBGYI[WQFVTA]8Zf+_C3.\VXFC@;\HEAWY?@Q=V^MK/VTAcuKGKT'(j7vXB%v8R>1DG?M1>GE,4@S6KF)Hb*MieSgW;X7OC6@RHQQl(vPNQ;;5aYf4HFJD+X_YMTE|V@+B=LXCEbR1NYKAR\SO4_3e#s}SAW;+YP5\W)IY^8X^fge:;UNEVD94JG?JP5ME~J;6S-=B4BII&<<5X8KOF5;=?PFKO@CYN]bI@2a;0YfDQSW+CjDNSIKc]I1[>99qXNdTCNOHD@]gKMAL<:M^mJ`M8E@WUOXM=>,?3=*L7M[RBgR.GL^9=X8J056*KUA\KHO8MG@GMXDRN0FaE2?cEUMEDE5C>TM[f:fKRHA&0TTmK`:IAKUQC`:HJSRIm+TT`8F<)B8@=U'^IKEGNjHN@:3EB~Q48^4M=SANWDB3COa8RU6Y9E*>IHYG?KaX/-C8:S*U=HC93E9FADNPP.=DoM8I-7_Y8K>QB=PN?EE?EH]WC@O@>4?4+gNQ5[BB>R4EC`9TACG>?7?>PGB=HA6K?KQA>GC45}=PLTK10XBBIBHFBFTPQ@F@5V\;9XU?FPS?UnC9@;U628C334>F>9?Z6.HTX48?83S,=E:MCJ2O:;C`REhOALhW<:e6CD7E6LJWP<5XZ(YI.f8IN4=YB7=P386Ff4YAWO:FF+-99T0M]K)KPC;R<;MJW5:X`HBNAA^C;gHC5;SY>ON^jD\Q7>E>VAGTKEGCtEXS?@`FU>L1HGY/PwAMIMaQHV5S'F3Fe3MOQ>QPKNJG4P=PQXG0,DBROHIYAHRDCl\8?ad?LcABPVMTSFC]DCpIMgQGZHQ=OD@KHF\=ODQEJFIIB[,ifP=hT_DNKIKX\M>W=II=DMT@?G`H?KBTIBQGCaHe\KSIRLDDV:\CESIAD8K;R^[nV@H4\D;KBOufOLR]ORFCJB@d;$CVn@6JbZ{PB;1TREc3CCe?7Q?2cBJ2cPM[P7JUKGHM3pJKA:0GOG_W@WOAb^RB;A)JUKVESL=d8KE@KXTCE)EZY=B3NKMIA8f3:d=BA;PEKAMQA``R9LEL>@E]AWO1M?cU59EM9)PVPC:K3?E;;DF:;Rin2/[0R?.1=+&V]EZMPA=L76KY?JXP7NPME\RM?:Pe.KdIZE-SOI6OBGH0LGGMNGC9F7M>q?-2DI@V+BaF`<;\=OA5JPhG5I;[XDp@A@@J:Ep+5H?UH^PtbIRMc>cVOWIaCg?AiI@~P/QmNfVD[`dPiC_7{xONiQaUVCPMxQbmC]gXZYZLMSY>hSTnz^>EQaZTE]GR3{GYdmZAPtBkbeZjeIhaCJTlhiq\~a-4Md`RGET2MGIqUbTWFHL7XZ^MSaTfZE^yGJa}}Rj]D\jvY\^nlf@[gIhQItL=SGKLbo>_IPBr`FV7GHKEGNmdST6xi:LRJKHl?YOQ^;yNzRdNUTk^Kx@bMh?sguH[V_pFpM}\j\JdNMeKN]dBOGG}TURl8WM]T;nLshb^LZOIm6[aFQecYNWUckSJQjMEDTjd9TVJJU{jb5kKaEF>?EH\h7dhYq\OML`aY9UL|EYcabQJafJ>`GETV4xEIbQJB[?BVhFykXJRsRVl`fOLY`g=PQfCQr\~9dWVxhdT`gaEbR6ENYDeR_:KOUkQWcPSRWomXbdnPh_Y>=]VYIBGOCScM4d0DVf89FL?ZSKeXFO[OPPP[>TTmgHI5~LC5w`aDT>DVUAoGY?RCRTc?bOfU2QZV\@=KVXPV\KCpL`JfOJEGAQYWKIQXTZan\Bdc7gLWiamBd@\q7VmU\EZ?NFe0[AkYYRK\dKQC9eC^ALEf>UKIM8?N[UQkP>^FPJI3C'z30APJ:WCA?@=H*-B]Q7:?:O7:3;JC59@9APPKT@wOOASM7(-F5S48C=549:5BH:8@2J81JN7AD8Fo;H<:CFK;N;Sb:8LF8<:;:@AG]5OKGBIO;C9C9,.C5a@V:5K5[=H6B?_AOC.M8FC@@GE2:;G1Q7ROM_FG:EK5(,7F?`JXL=<8>N7@AC7>.D17=B&B9IO97L>@:4I6GKX)IXHGLL3H^?58UMXLDOBFEB4mXPES`IKQfWsQZM:@IET>ZLF=]\>AQ;;ASTMUG[;IK_`OWZJAEKI1SB7MWaBEBQPKYa[ERXANLJ@JLSPCCZBGRCGKI7Fsk5MQWP?HOCSF[hK?8[fL=GCFVL1}IM3qP;JWAHCGLR?h=RMDKRK;OwGFHKCGWHE:QAJ@>KMG]8GKGPDK=COFMPDJRRHM@5=ER/UEYA;OJCF|F>]B-KDAEPaTMNP@MLKZ=R\KpOLCMO@?BI@]\AH8FRB4DcE?IVEB/k@@?FkQSqd;A'DNBLdV;:9^Q2pU=QSA@P:s>z>=I7B]eSVHLo?1WcHoc>c*>YV,VB^>[^A8PZNd@LMBVK*Pg@SWNiBGKbKC;KP<0ZEG>=LN?->SM7\!1@-b9>HUP;A@C8pe,V>;LtNJ=NM0EBDEIF=(CF$:F>+DL3THef7EWEC^FYS9>/8MOIOgLDQC/8d9wE@Zp\I>NW5/AL{PZQTCJ8Y@EVCV:aO$NNMM.0RbOV]FCLK$3QNDT8KKG8GGIORALE{3OR8ANONxINKHTLA3DNaOEHMEKPZPHdK@JM_8WNEK;Q]BHICWDJUN>VG[d?:NEJFEF>UkJeHQUJE>@d4F3EC\L[>VRS[4lVEfcJN:KVhOCFFVBFJJZASd]XFDKNnLA0D?cbOGL9VL&OA^PBQ2[?D<JKMF6:GJL>E`VGKECLVBRaDDX?TP`NPMGYM<[W;M8TV?BUP/lH5FNUZ2AJ7SVH_EDMSGC>S\IEF?VEJAJOMHQHUiLL=fpz24cQ\@M6YQNMsUHfSECHQ:CClMSdJ:BH9zbH[FLOC1eNTCV\TjONGFfNC3:SfO7UNs(Ui>@KG?8J4:Je]/R`TQ0NRo@][AmD<1`8UAS?mJG?US?9G]WP[e\_S>Can?6SDZZI[gU;1+2@;AOJ3oMJc.6V3H]\;?JVSP2N:KF@0j_?N6eS`fU6FeaM:5R\H+LPATAI09>XXE3k?A'M@Nm6BQBG6g1@RYEBOX2+VLDPROKR@ZJPCJPBQCVN]eCZCa9:>=INXKTb@H`/\MZJMyBN=BBT@G34ASA`TyZhO^IQOT>j%nTDSGDELEA-O&R_aD\_3<=CO=>RL:IHV,AB\HQcJNl?C^@HKK:W;CGPW>9>[RwIA;URC,F3HLaJ=X]K@CGZNBMF^><394X]l@kE4;Hf@:)BCF]XQQJ.E>AI/7FN=J=1U^UWi6**W0EDFVHQ4-_L9E7FGGBK[7GRN]I@>T@ITMEG5ARP8I]H-DG2Q@=RjR4pAO[UEXP':ANQUPB093g@DJqXOBO/Q[?KIJOM8;7^:Y&8Nf3"R88NUCK,>;I6D,S?WD45:22tF[/PL7GG^GEBOTA=3@DBhBgGA?7NOF@CPJC9>FTHKO\^VAFX5AWJ2PAA1;_;KFZA2[]A;3;K[K7W7Cd[R2S;;8\1XB15ZM96LOV@.?P@B`,=CJRB^.B.ML=18eHJ>@^G2I57UGY687GTTfQEUVE8XS,6T.8F^[6FW7D*9H8OP%9HCTM;kjWB;]=4M>FU3KM3LO5BPND1=R5A@X:#G8(VQJMQ8E3LDPCDK>5G1=0NS,BP5256Q0;CWDKP=i8L66CH19=;G+5:D>@_NP=-BmJ>QK9/1H3Q=@]N?'M?5CM;VHE9R@R;FT::2a4L@C/=QcGJ5P6GC=4?;9LaDEQJ:8::KAT-'a?K`DUG46?2?/HO:DDLB?UKj>3J?7N@\>0K4mH5I:N;7WE8Y5EC>3-9&vRCN?Q;5B+c@Z5>?L.C,8ANF:H5EEKG<8FKMCoHZFGNJHI3FA8]=42TP?DBJ[RNK.J:Sa?8;;GE`G\MT[oJH26@<<FQI9[>D7L2W@]MML<;^JALWT\^PWP3eSL=6;e`aPE6CimL1AIM?QHc<8@;aKL9JTY{-:=OJ=^G5GkADPERM+1R1AEl/3MG^W=;IUOC[:HKJQDNBoMFH7IDTFC/C;MEZEBEB+EAL>?R5/XUBMFC:CWOHouTFJO[K8BDM;41FPJB8XS`D@.8A@8:<9;B<>:A9:EC;<==6;6:@?@:?<478;8<=B=96=@9<:;B59A?;;9?9>;?:>BA?9=7;:;59===D?:<67:5=6:@A;CD?>:?9>;:=<:;<=@A;9?;9=<9<:<<;;C79I8A696?=;=9<=>@7?<=BD<<=9B;;<<7:;CE=?A?;:6?:3<:=?<=@9:5<3=A;<8D89:A:9<>=A6<<;6B@8=IB>@?:>::87??3<<9<;68@7=>8A:<<899=;8:@:@;9=<;:;@=>8A@=>9>?@<;@=69::>5B::>@:;865::;;9987=8A9:BA:?9;;NH?H5X?@F@GZW)N7H8l-7F0J09}MK.=.IQ9K@E@SA.K]1=40)Zc;KJ?g@DxO)O3K@]/XX@BB`0LIO4M@@?D5Bc3fJ-A:MIPCNRE@<[K;<8:ABTGSILDCSCi-G8T6ZJ8O:@B?QA^=9?PC/|NIVUsKb:6N=PO_e:>8aPQGmCCC74=HAUP7beRkWIL\eT`gceqWNOLYK\TKT=MOVDpJT?LXF_aPHUMWNSHUJbJBMbIfMgTKbVtqfUmcn`SRe\LO\^I97MVJ;g=:JNHTV\YUT:;MMX@MS]ZKcH\jRfIqFMaU@XNKTXEHTETOKKFUVebKaLnFS_U]Gyj_[QXYC^LCQr;VQoM]WFeBGUE?QIcfQb`CSWwKg8uZU[?KqhOWPZNJWYMOQ]8MbP=XKhU?(o_;=Ue=VFH-@,\FN[5@+[[bWP(1`5OMCMP:9Yi8H`h_3CN[ADDRKPN8UIFO_E8aIb8iTWEMa`cATFS=Qf;DNEB8-dXOEHJDJaHR;Zf]UKVSJ[*eEuCdIQKC_r7HS};GG_,QMn4?T1ZQ]EY:<0V[_7GfNLS98@YKSZEZ6*<131QlKOW3VXS3P1G6FS;89Z>O@0\Y[FS>=9>@T,GN1@8ACT]-i/h5LWSACB:JLAFB?H@6>9N7IC=5rMEPV<2RV!77HB@aWP6NH1KLE8YLCDPKF=1>LJ49E;I'6=E:5L.OP2D:=O,_?B>:&NcD1;NCM6FD[,?D7G=24CAHA<[I>AX7Q7HK\IPMWAPAIAQ^35BFCG>h/S_L:Mc4A7J8C=GMA<8F;8?+IBK3H?6EC`$45@[5Q8<=OCJAGC9DR6TC;uAaL^MIC?>Z<WA9STLDO?:S@I>KNA6V.PY\?H;MN5QO8Es/)IRFU;199PB?I7@YDbHOM5WK4FQ4F;.>6MNO9>@]@K7G4N>G;2=2O?5PARH?:4IAK>1`d46M=qR=DNBF?8J-VEDC9MZO:NQ27YIG>?2hge(=KYM@k`UP:NF9B:L@\aKE@9PFI/LXjZAJT=a^f:R2G.5PPJ4CGL5_=9E[)G.=G:eWIKHF\?E2/1N<71C++<<]CO90BQ2FB=FDQcH=@:ADCM@IA@QSM6P>F@LJXLPA8HK>SR:DU:C49cKWgFY49FVFT<'2RbQFB3G7NABIj>=IF69\[J_UJ[8WG/C2>31jM?A'P.2q_0D4D!YI;CT7=NE7`>C5CDTOaFLVFOaH3>+J6J)CfRL9I=F7F=YLEjB8JWW"^09^F>1Y9LB2BI>8cKee^IU@A;;PEaF/7HLJs9LAIO>[NjMC7KWMl6CFD=DcLI^B>>NF9K?H6NDNI?@D=7=4ERbN[07PQ?LEM8NNMXVjFVK@FBPSLLEF^H;DG@h8`Eb@KAG<;AJ:L;WO@CNHMBN-GKEHRWBSG82C@8HRAWX8.9%PF0/:4IIJ-B>;?C488C5<::8F.ALAYLJM7?L:265J=D@96AF;;=??B=/>5;D;>S=>=I?9AEIH2=M:693C87<*;ZK@68/TA1I>;4ZS.>>MC;I>6D9F??8>=;LA62O1\@,J?>D+HABI>-95d->3GC@AA@B>8FD>K5F:?NP1/:d/4=95+?LQ>99=7098378E%BBB7LO3<;?G:>F:82E=9HH=:4.71861MI1ER6O.A?:(?.@:NA>+376SF8VAGU8QK1>8?8PF9(6cGI@T/YDBML1Q6QSGOIQS_6>D?781E5VC98:sqSdhBIJZW9JK@FFH=YNRBQa8MDMH6]GQW'Y[N\V5;AJ?@@F31/4L9C6rn:X\BC6c@*m1MbSMRFL^AqMr8Ic]16G@QfDG`3NQlKGfjHW;?RX>H]AePCM@9DsD_F>Lk@A88>G7pJ\?ZLKC)@;?>S8AULxMEJM^UIEYPFLRGLsQ7EIG0^*,CIM9OGN]^[?EAT@x[\^8UM-LhTefYF`Y;@yYK\3Y>}b?po_TNb@[GPwm4lW[TcNj3LK=:?cPI.C[T^Sc^HJ`S5]tAbf^*TN^NS^WD=Tk^YgeKsi]KdRUZNSeBfEFJ`WnR\[`POSoD0KfqSeTX_g:RLC:M\UQExjR[LZgB[OC;pXhQUJmYU\aHlg]RGO5J:R]ZOY7hyo;]IL080aFDKSYY/DDalPk`XjhMLFUfKVY>|8o>LSOfJeR^bIV@5.2;[G`KXOVDEgt(IVC1Z`xCdM<7aYu7Zc]";VY[_?Na/BBIU\P#-@fW[e35CsFGML;CA6e6E2>'D5{U9P>GeOM8cIFEFS79Dc2>?D>D?K:C7F>EYOHwH*@AAcCH?O5IPHG2:/H9H3.>@B8AB.=KMI-JQBDEO3T32LQ0_Y3OE:<=@IPN?>J7O4J@@C:IRAtOC/BFAMN35G[M@O@GF6QC:AP47X2K;EZKI>]_LGQD2N'\b6TT]W9QLK:dG>ESB=;dFFX0B6A0PC=Q|28VFH@QJCCTY\JUGH\DFZ6?6JUA,*:=E3Y@Ow4$H3DGAN>3LA>>GIFUH3@l9EN7%J:lFG-XPAMB_RU,WdPV/H[WqG@UAEDC(2.LWC,RLMEH@J=MKb4:ZIFOM;tU>V4ABL6DLWG=Bk?E>Ec;?lM@XEV)FCbEZ?X8D7EZQh>O<==h[H;^:UTfGBC25[qb9?c\WBXjTOYU|R\NA,IWm?EO2HIRRY4dX+dOKP9Ld*FJ_KUNEAXF?KMQRZZIV=S:eKnUFOLMPFPEB]\?DEsH?UJ5FR>O'dKL:S8\FAXE5FTE.LPUbaD+6HCQKO19A@?L[>@dS1WDCDOHTJKEKB?PX7VdMJ=_YJ^e;H?L=QD:HWfXBCN4:FN9ARMJc6B:AQCCE:@J5JT5TDFZ\:@EEX8H3gW>NNLTBZ0KVVANKX6GD:DLA;<@MXQMPm@IODGH7.M;MNS?HK4Qa[@ILLC=6RITA1Fe7.2E=;W\O?BlLx\TBRHNK>AD6KDK|LGC>JAN@C7TH>:@CB>8T_09U,\Q\K9OI8MaDI,`0KSC]3pn:3C;AR56@=4IRH+VjB;cFCH:0U18oQZ6;ZNrA6YFDi;@D?>O;@:@lAKF:?>%`mAGYQI?P`A)_<>LSU&;JUeDM~aV<6CAA:[BPJH4LJ9=PG:SNO,cG::JGR^MGM7WcGC>?;@UAPMK,.2RBTP9{EX)TJIp*8XWNKEP:TL^B\U3+:U;?*E+P0RL0_L02*O74UFk(DC4FK@N,R2@?m`JC=O]D@JKOMFZMHD9OILAoXQS,2'([CaQB?;D`>YJGgWQcSENJVQ:N3YG;6HgMR);9?QWH$.=A4F.KR;?G]>L`hx`RUSxNB[QGZ[Y>HKIXLcUZfS;8EY@KZPFVcV\ER\kUba_O5Ra[JIQX>O?]jTN@?KEleYiXRPbPKMRG9PbJKZUHQ1IFc\XQPP?c:NqK=gYVLj[PO4LiShTVVXJT;RcOKLLk9]QnTHAOz[TBPKLWOwIXUJHfYEF\]UWPdOW_SJWFNBY]\a:_R^[RFJGFPKMIYERO]RBE_OQGR]VTT[FoF^kGFPQ@WbUTfObvMNOT[SBOWZ]eY]jK8K2Y@*GA;YB6CK@6QT:R&DM_KJG9667?3S`HI>PF1T5+X<1GP@fEM@OXNB<.a@3HYFDW?&23P;GE*<:RY@6B..);B]1-6EqM>5OY;?8OTCIKj8GIEY5N;\VCH4>DZ.4M-?'EUK?@F?=JLU9?QEPTDJ?N=0HD;LA>J<2.2D@Kh9SH=O~T;P9b6LF/.MYM@*53HKWO/)OMmC2O_ACIZ33UmSJ8KJIU=eJ52r;)`JGH^)9IJn9T>[UG?>G_]AZW8Q/[FHe4OBC=896VM6H7MDRdM9599H549JF/D>:A<5DL*A?T>8^PPGKI>M@L4O2VLZAHM4\,.OK[j3;17\]KF7*EKM:IME2=>K?bCH>Z.[7NZ4C_M?HR:?X6UNTB_IIj6?MMW7SOA8NSX3DBUTD9;A4=>?A05FTG;D$+e11oaFHG`96?;OKPA+>1W8\:AC,HW>SE>C:=TbZPE/;C]NLaPVBH9;ZL\GBGWMR]dI[@JS]>ALGGPK&:B=PVQQ>HJM87G9TPI(?WQ7H<\I3TWR9H1[4JOJB=@`D=F[EahHIB+U;[?hgF`AH1YLANeM1Ll+_$`@P;SIG@XlP;CC4GqNB`j):NP2B>]XU9x:DcJQLB[8:FKA=PFNNBC:JFXEKIIG5o]7@4MK.CD4RQ6MNTU@S]99HDLt=iK:1BIAD+GeN8=6SWOH4\0G096'5A6U72E"52@@5Y45P>2;/01>P>54CC276JC?Q0*?:#?3;62;9@864D=?DT9!*>>DEL<@R229:?'24C<&+G73C1=>7=HML961/H=5/G0N7683;A7$';7?1:KK!65=AE7F?O=77:;424T@>J9>A.GE:BR)=4:BHE?@63Q1/,99R>%@.Q*LPA<18,:H>A4B/!08K7:!3J@K8:70A55Z:37!:<;5B703=;D8-M56UH&C79?019DK2>G$:.6L=04-E(D+6AH%3-DU5B,.:AG4=UU$:CA5263O5.EC77+43?D:F#A#8M8<+IW+>C@IJ?3*IN[_CW:AE;;OB-:KE0DE?49E?MJC9:PFHVW{InQO[MUT!wBpBD>AJz_LgHBMA^LppIQcWTF?ZgJbR[V]NF`@e[T>W?:DnsAg9IOR^OQO^A9A;`H>FiJH]Xh5S[JmSx9\Q7BKQRWFb<9?XP)QPVM5CE_9]T=JMeAUGKAO8OEs:_D_@N]YHFR#F5PZALUKQOfyS[IJCbA`T[pNRX;K^iYKJ5T?.OfDJC_;cD[eShiMBFGHH^fbwI9BSEO54J@R=fSP9cUM6>bEIsY?LCRVhE>\4LbXQ@R:TARH<>rN7ZDM[NKf@HM4:'=WQQEKRZFTc|ONHfQDDJKWHe[EZ_GW_W;PIMqR:4PXY8dK3c3_K:RA5YATdSMG>IWBFGgF71DW]<:=.;HK]]G=S/TQ5IL-~2@GKTV4gS8MDYeU>0QIg6LXYAs{?5IP;i@NOQGI`HSOQN>7O=qV3VPF[@OEFa4JU[N5I9/Hb\"B:XYOE:7.RYS;8LcEYL>JF:D9JLECe04SYPCCKC?CBb;FDJPYG:TU`L;^F:NF8KOPN>a6VGN@7fAM:-U:Fe2UTVjJ^GCF6wGOBX7SHf.5QXJI7W\?UXUG9+94LGBJSAZbj^2YOhHAD`gVRdGKW2WX@NfJ`8oLUSMEDH3?FB'x_Yei3m6HW?oSsUgdVaV7A>3=Dj:=/@OR>YL\b[GDBda1:cXTG=BbJ8?LVYCE`WRU^PhJY7FZ@XBcKR>hJJ>2PuLZ9^A;DP_RkDU?YcyeMQQ_HWV]?ZY]_]@ia]w@XCACQ^LGUVAENLFHSX9UT0V;}Ljg;jB03>iMfMe5=Q=G Dmdc^[N]R]TBX2YY+VG`][6HN``?;TPPL@U^5LDd@?CX8?:VFA=0f?RV^hUoL|>CACU??2NWKOPKZkM:X[ZN,Ga7A6GK?jO/LWNDM5JT;^C{_=B=2F25=QD?G[`MIsLn;HS_RMKM4:i`U@A#LX[;<[3<7-DcgLL EDdKn;R:/9JIrWYSK>A8LGIEIR]aNFMG2JESFl]PML_MTNHH8CXf1ZWF94`ZXA\QF^DVEPDSG:T^lENlZ?DNGhj4H?OUDL?TIPM:W59O@;GCTGD>BBGBbLRMFJGJ=8KCQ;_CULD>OQGHSU=?K7PMRODXnTFYsxYdUUcitSRJUsbjh\pZHIcQj]]Vh]dSiaoQ|`[ZfXXoXl[fu{psZMNjW\Tbu^^{f^jVnkRfaGGKYjz[T]bVProYnMXnyYe_kUgctUohaT`V_TkbcYqJhe`mStKA{Xh_pIdsS}]c[T[fhpge^V?dlcf[{qdfa`a[f\_HSkOdS\^t`]khyk]Xhg_\zSsujf{fazUqdPfaURH@WUjwwuaLadnhR\y_Yt]Ni^KeOpUlUvhoqeriYUXmEmCTiNbNXohhbieqTwi^Y`fhZY`ZknOSEo^euhMagZ_iM]{aTk\nq3iTWUVUYmcWUazsgx]jT`iqYiDM]|Yxf_kRhT\NLVUo]cdTPyz_2:M?IG3PI><3>*6S>;PBZF>3FC4BEA2BFK=KAC^D:475U0=5AMH&8COM@8x?CCH4@2D3QP95>@EW&2GF8EK?>3>:3Re3I1D3S9FQCCQM@H9IF=:S8G>CI>JD8`C8Y4:B5KDELGAG8/FQ3M9L;7/@9!/T<<\3=<0B7CDJ@MKD@26==7AUFFBI2HToEB4=FA5SHI??M<5E-PFCE0KN>K?IQ/SD6::<`5O88I7Q:D=EJL>BGEA@KM@ZLD9>O-=G@C;_I3K;=FICUI+2E5GV?:BG0:5@DHcGA@\W5Dm^;J=HE9ArZRcICQMO(,WGoZ?DRBKNDGr\Xc@bQKCJX_4<.6LB=;AQNhkYS>>3D,?*ZTAgAJ:cT]REc6M7@SYWA@RET_A`LE>hUQ:W@CnA/IO^N[JOLKGyN@D>Q]=SW0Lm-BDfPDWGA75\JC>=JCFGMGUjM>GC:Xo=>N9@WMA25AY&GXF47RUN@CJSDNIRj6H=Q*DLOKHJH:6b7O[4ANH}APXNJ8_>=;EL>H>LogR7K<6RL5<6?G:Y%0I\O=WEiNJCLG=W2WI;?BFECZ;H=YPH@8MC7:8WS2bEGY2NG;NrvA;TNJFGEMO@P8M3<)KX@V6@K{PETJHN@X8:;8TQQGm9Q=?I]l:AMBAAf0LX1YJ:RjLCHYZA_6It:HKDNQ;7>CJ]^O\KRBKD\eJ>LJ@KOItK;03J;N9:C%\`Z:)N*3F_W<:-.IHbQET9M8/RMQWq>H_XRDTMdH`=GKd;JID1L9PAJMPU=_=A<.iEHTYX4DD?JFFEccgddGWTQHLMIRX7NUAX\:hIICUdeSP[bU_YxAKIUM\Q?G]kJDVQjoWQvP?C@Y_JIr5R?\62jBPjI\FVRVU[\SYO[F=SZ`@RDLGZhVXPb\b<[VLK>\OSYbWNCACGaO{WJWaLSUQIPHkBH{PF_REURS`3FJD>WO*OcTPJ6+XTKRW\MYNB;85:>VtJ=DDG,UAfG;:BZ_XBAvGE?=jZOOpK?Q<J[SZ.dN[XNCYJQGHILQKFDM`N@S8KMQidJHHlZD[F@uaf?Ch`LOUZ>COEhROHV9:>I@.6?Q>;T]p)SNJE>PCCU?K?J;4TCBR:P7AJC9L8BHBMhiDo1SBl4YT?`L@:f?JaN=>aJ1NCNKAQh[>3?s.\D>VQXJKKAZNiLiEMIfAPEJcpIS5WP&AdHda;GM=DH@FOQDcGG8I\]FCt]EoTW40B1N88QOC[iJLTH:`6ggw;H:CNOJRREoJBWGDE.<&@R?9Q~dCNOW1Vd:MW?1FFQNbO:^B=DSMFHBaDDEENQ\PaNT6C^;N;e4TZ0JWGQeJD?L@b;JJvE;M_aFNH@NGCaOYKLBBELT;R>H>6KM_YEa?MA4RcNYIDPF\3BOATUXVOJaWJEbKF>AGQ@?AS:MGJg9KI@W?>NKBCP=\Q;A:BB\HVAX9W3ShGR9JLKYATSDcS:CJUeSU^DMZGDSFGV2DZGK6SBHOMoGLHs?IQ?HMFSBFRE@f]JH:kJAIA<1:v]g0JJFL9XBAIPC_>TDPO:[KVJSEJBCSK[NoIDC^JcDSHVS-ZUA|d9GOKY`MYN@A29F9F;BMUPS9?NGIPSBhLT6CDWHfYHS<@PZCFO?sMaPM6R7GWPhEAVLSJHDKWegGP]WP[N=4NN`IKKCZJECSJLXW9\F\XRdMTY-IWXLDLh8SK>;HLRTXFTE/FIW@=S>EJS3D2:CK:Q=G8?c5VU@[@K->PAKAIHM\JQAYX9N5Y;2UBSH\9bGAQ8_QjbAlL78PxeKNAF@GfD3T8ePHKd`LBQCFHCKHS02KqFS0YNDIHFH2=RE?>:]M=CTC/@A`PO9AG^/HCQOd8:TH8B5VFB:Q8WSTbJBFpTLTA8N];BDN2CJ_C:J^E8KF8;^4BD1`5HDN<.?VENTDFhF0WP=N;HO97BDCIEDT=TG7\4MhU>BHDD<9CD>E:;FY\EkCDEVKV>TJ?XGOQN@;P58F_ZRFN/@fm>ILUbJQ:g^6O?HKYn<6KCG?G*8CFKGAQGFfHdAQ?ZXI2MD6ENN>]M_DEPDBE:ZX5CCZatV;J=D@;>YPnFVE8LMA_;>HEI\XT26TJDH=C4@Pb9e4ZIF2;U9KA7C/6D7H;B|/M,EAOM/4F97GH092K<6>5,>4L<=>2?:D7?<>0ADD/F?M;551:CE90:7Z0E6?CJ\6>>;1GD-:RMC3=J3=>I9>7G5:@9533C-?6@9-&S=#>?>>15?ITfrdJmM[5YhMTLdRddA=NYmjX*WKSJLOXhTRCMs\[9lOQLMQXhNn>TM`RZBI-JUK_[n@ID\8b_SV]=PZFWW@X\LEB:):9A@807#A34??=<>!A?>1J@86F+9)D2%.5;664=GD61*A01F1628+8-41057G<:IB4;?;968G2A0@3C292@.E4?<@O-6,D07+;:=F569G8#<56G?1.H5(&9?08433:<,;9?=5?:G2'0D4@: %38:987?9G3<&+11@.,>?-.4C0-6A5>2;<@<:*88"FE92C<;3?1820<5?65:9G=>=D?,A$;*5.$.?=@#2A,8.A$F=0?;-:CB*I69:99U@8J=6;A;.$C3:89@965:1:.7H:A?4-4 53*'D-7:2;346';D(?I*@;0/392879Efn[I=Dp:;=@8@C>G6FB96=iBi14W@PMM7OOELHc,\NfJTZ1L7=Q5E^/|VF>\1S4>3TO78L(ZPL7ldP);EWECHH6nLFLI?Q4IOT+7ZIX>8>OM:79[m/UU=XLP[ED6,7V/T%5T.1UOPX3N;6_Eg72I(B]4bn<+>A:GM.RSR\]AeDVR?D5G9D@K?@IA@5Vb;QPG?3/KHMDTD6?6:MID2]NI<>GI?;dH\N6AW9LEF^3HNk72CQ9C>DI7W}M1j9=Q=AEK@i<[7QF53J9KM1L2MU+AW:I+X7?8AIR3DP;JVPH%PLJMKM[;75Q?AV?aDB;AAS*NGIH8CE>H7LJTE2^K:/<@JSV??FMmCI[PCNF;^Q>FA=&31HJ?RK4A7LDH>M=KB?uGEx:D?IOPFKB?PbBUB>IUjW>RYG@JT`G?bV2)@eZ`WiLD]Rd:@FcTq`UVXJ\TOD^KY[tHPRElCOUpORJTJGN`?TKM<[oWSUMdnUkObH@bW5GzUGZJ_DfXVFQCWXDEIPZDcQOMIBQAID_=RI^LGcZ9MJHEONM_MOiSXLYcPFXM\ZTBLBFHCg\O_ID?=\H9IT=LA9F\?cO6-P>AYCSOZHJQVC@IHOQW?4F2[A-G;LHMKBFVRMVC9HEA@2=5BYj<PG5KEVF]J8BR=bdPKJQRA[C=FWAWR=B7OU-sl@?A:DDE;ELOAL5>XM@PC:On.>Yn9H789GEXd>IX^8^CSAMfF:OaB^cR3GE?SGDWO1JJ-TDBDFYEUI,=G8I8W?MB25?AA=7/QQ0I4,*U?5083BO?X48<4K=EGZR;VPW;7NMD=+n70836;O=F:>KW8HS8R;0HE@659.1N~S5kQ9[J=/D)FK?68C<>DGl?NO8<2DD7L82L/QWBI;_J>1-IF1J@.GfFGH9>9E6B@1M8A-N=)1=9ADKDLG>BYG;4E0>=C=E:7O3YLyDTTdH9YG?7ANME6<94JBERP8M1Z:2O@-NMXADIU_?4L7I,LX9VDKyKENAB@=8A86=D:gIH?9U@C>;[N;A;GGX6;G3;F:CNI@6S=/=AG:PCQUEN>>@QJCEB:CJVSE@CrHC]D`^UDE=<><`H]7EBS@KKQ6FD0YJIU`=J/6F[6U>GF/oGWV>I2O31S]K_opG4:ubY^d>OC^t=F}`tDY^eNPSYj[?g__b4^J)Yad\r3Jb_xq|hZV)Sc9vo>WfO_bnLGZRbxckkE}j^on":c2uhEZAlZWlTa_&GtOVFc35O_WobRVFRbTi'[zXmQZ4V1TKB} nh`HoiDUBqfB8EwM=TseALnaAF@>?5MLK>5QH?6;4JA@C?@FCE=CCJCH04[;6CR6IK3AP;T49@lCAO?@@AA=B(59HM6NM=@C3RE/=HAK@?J;E+8B3Z>KB6FHRS2IG=B=;;8UFGM];3J?=1GFMBG;>HG1\AM>L[;@NXEB6FCJLEl[FQLIC5A:HHf47\CJ9BBUD:bEQa;[5SCF;IP9=[LP?GL>FJZFI\JD;FOZE@>HB=UiOEUSCT;CWTBLB@GIU1FFCEf<`Y@;=?FTrUFX>CJFIKIH\LD^TAQC_N=IF;I;A;QMEDJDIH5@=X@Y@I?BO9UCJ<6QGOMR?F\HNQMa2GJXfCFE=LKB^L>_E%MC6=7U1HuE>;C:9FP/MF]\JPHHWoI8;h1WKBHi;NABXDd7E?8J<=bCOKB>F9=GW}AZW:Z<8?g892>F6<B5;^V@P0EMT8855UHU?XA@9GX4L%O0W5?FZ_KU7F;N9A(B.@EvgTD=\PN;[KNrXQ0IGgNMR\Z[EJX/SNR?OGF2A28BFn4>>QD4@51B6?NT8L.;U@9SCMA828aYPN?TLGMNW;A>;EjM?5BK0ULIFEDO5T%@8=RJ[96=8'EW=cO<)\=8B^IH!A=J8;9[E@'O8H WZ9gG8CT@aCE=LJIf?~Wc8l3B^LHVHE0M@3Fk?MMn;K/E7KO?O290B3<7PmHN6BX\L@D8I>]DYR69PHsMP]RHKAJTBFQEb@:FTSNGWK[KJ^k@3[KGK=XJ=\A;LbO@c:XeQNXH*`G0PSFRJ8Y:.`64WHLRI>^T2IRBKk^FL^[JKMEKBR-A7HYDhUcE>ISKO<8V/C@>AGBI\h=_@^saXHVV6AQNDLWIUOF`PM;AC;M2"_MHLXCY>C?JN{EAHOMH`G@F_N=`ECQGN@V^N5AIF?@BQ]p=?Vm6PIhDP4OVR4>[DPNIbBFHXB\?CFHI>L6:vFJV>>JHH@WbJ^YD8@::eU?V%REd_CUQ^InHmGiJgK?OGQX>fwRE\PZK]>NDQZD{_kM^QP4IJLCP^\B?S=fVSmfRXfVZ1Ixa?(XLT?cSD]BeXRVZAuKFVGXUXQJL;PIMHY^{OGGN2e]Z[=]I=C8MVC5FRR^7H8-aMUfECZGMNCH[H0_|aCWO;YNQQGU0_9TiTC_CTDc843;8`a8SA~U2FJYi=X8VDB>ObQGuN4xUWUmABW9C]@IgH@MR/PPEYGNJhFPG;=,[KaZdEBHL8eCO867QN1JMM->KBA;DeJ?W[3.TMK3JCM@eKK\3Tb^*=?OqED?Bc^EKKOP9I:TQG7dSI"5_`-6?9.>CeU)^O,NdSQO56-JYH.F1TSE1PN];Z_=:GSPN]:dKZ?=55T9bCRZdTVFajPD3KFULSSLR2`AVLD8=HICJQPhPXf_POALOB7W?\T^PRRJJaQLF\@=JQPZ.X?b8H4JHBDHBEbAgOUWKgN/IA`FOO9TJFAWXHO=ZMC)GvTMGMEp@^P>YYLDQ:N3\b2MOCAXI>;?Bb1'LKH36WHC'8NU<@[UEXM:[>\]=\K3T@EDMMYWJFPSQNPQ70H@Y@>Q_OAQDTLH]n@CI[V[F=0LS:4=6\dkMNPJ_DJUTGa=I7N0aTAEgYET6UUKiM?Y=1_MHpCRFB=_LSWCTPW^PIA?LORKFICJLUPCPBW\G9CVBTKJdEN4A_NJON[YYRPZ@B6kd{3TBEgiJYRDTQ:WRBL=JT]>JARULO:NLaLM]{NM?U[LRL5PpFTUT@eHK\VP.7908SB:[=8IHmX7eOW#ih^zdT5eEAGPSqM7IM|iY>0.RFNF@QDPaIelTkIB:FSQ[I>_>JhDDMBOFZ?OWTGJ>J_K^\W_G?BVHLPIJAdBX\`EMZF`hYHPDKIE??MT^O?WUXWRFBQND=SOHEeMKTJWKRPDB7D\UHROBO3HGJIQzK9oG\QEWa;CUSTKUD=LSGVGMKR=cQXU`6FXDHRy_SE>B?N^HLP=UG>@\]zHDW@A?JUaERG\SLQXeTSNdO[U@ZFNG?^]Lh8IXIHTpWBZIb[IKKDUITSdDOBHafS;GV[JSTHJU>ZZ^dF6u_?ESIMJIRN[jLAbLI9JYHXE9VB_@KONSJOHBGMI]M=?OVIdK\lU<]d.^3_Wn=EFLjGCNgCXGRZ8XVUOF\-@]0h\Q|YS3[2<\;`[xE;B]Y5TDar>\BM]zT_UP0I,E96WtO>HmlNFX3FIS=>;M!:Kv>97WT\LWQT1eI2wRz\\CEcBW6YK]qiA(ZOPPzESGZ?c51cR>hf=GFyQJWWG3EL2(Y[JnXKI/FIS^gTMEINKR[H9MX\n9hvR.^HBIJEL@W*^GM`HjNN8P8QRI;OaFUyAockWKNULZZETR,U;jWVTCa-^qPfChbLM7\3JQKq2YOJVM@;`HH@PEFHK6R[?K[mv2QLPe`hKU1I?7*3=9EOYGGB\CCLB]2N_:>GEGqbMPD\=?;,I?]>WY9MT;sU@??>VG,SSC8_7u%mSHHdHKLXYJ9P:MZg7L7]7H4;4TIZP^dX+P9Hgu;IGe[aSSND[CR8MRPKT`A;CUEHBORWOiZBVGIPSR9]CMT[MEgB]PWIGV;7TQMgV>PNIQi]XZI9>QuIGNGP@REYFQEFBRSBRa>Ld[GOBFSVBKEPR@2KM@BCNRZPVSXUUELKOLPZucJ8_NO86TcBMSUUI;NXJVV2KbPD@RjIJGNKNO>>RMS\NCIR]9P5aXSFUGLSJ@XbW?BCa;S=<=WR_S9D'PJRRQ=>I>2}P>AR5XU;8UB_AK[7EcKLJF>FqI6UIU.7f9SgMJO?U86=;WALN@BC;M?_E00G1,Kr<]<\4?[M288:LB:IC,OWJ@U8D<=Pbt/@JBI?AH4,91=3DHaQ<@>\5=B9a@S7AA4)EJKAHPHCE89TH8BLPILNLI@Y>5DLR_SH:@dUXVJn\TApANrZNUWSUYRVS]VPYYEUVB^LPUP}HcUv[YiJa^JOcLEd>LadWTXFPWWNYQ=O]JTT??Ea`7Y2[NKMBJ`EQSi^RMmVd@WJ_[O]CVOODVTELDPGFxlVFfYPYtPgtXHNKT>e]B@ZIP=\VAJUKGHGEACXRMdZIXh:G9N>KHPa@SVJUA9M>IPh]ORRJhURR@]PJJXTT6]P;GGRI?MMFXISJQ:OVUUC]??VUWFcIXVRJOyF>[MFOb,NKRRiQ7cQNdxb^e;JM8c:YLcVJFFT>\HL;RVoI\B>IVbNVVePIjdWD;QZPG^TJ_cOXNQFUNnTJDjSZtRUIKMSEDCBDGIGLdc9<6HBLXIN.AB(-:5[PND>8:8DCSR9\Pb7@3LJDG/G8P@ARK=a0R84RS=EQJ?u[[?PT2:U?EERE,QH;5B1A88>9:`CKOLP7ON->FRjGT1-89<16'5;HUA>(>4RA0@>JPXCV=CKFHEK1y@BOD*87OD77I;@hU9BUB6KIF8OPDRKaV>8bN4Ba;R[0X/62Q^>PM8PV]H-E1N>>RX8DFF&E7]Ei@G7KK=iJ4\E6Z[J@I\i75;A9!=/6K:MBD[5;TdEP;:t;M\NOfg:LGCQJf]IYeKNKIAMUWQXLSMIeXPPRZiU[OQRJkjA,[9MG0=JGQLPZV3yOT70Ud]WPGNSPaT:TMLqZWIPZQFGKWNm>LhEDG6EZ@NSVXYQ`Uhp>?t7B@d@Y8`Z}0JxVMdLZAT_NFJCRKG@V=TTDP^t``|O93MA9XV_Xg8\NF\:QBMdJKeJ8<7PWdKK{LHH^WaZ7SI\y,hI_DW>\ZP=@eNGB15nNabL\J92sKX]SQSSfkUYN\8<>Cl>SXEfL:CTlANPTR;.gLh,VMO\JM_YELUFQbGB_O8]]HXSKOJN^ESM<[NQ5[D]BVMrRTIJPPMlW[b]KCHPRPOiO?LY,HNLK9HJY`:aDWDW`p2?VGUSC@Y^^E?^DROTlTN@WY@ZJDKJCDW@_Q\YKCn>@AIW;>MSR^_JSa]YHBJDg;B[ P/1ND8K\I8Yn9<2S:06sO:FM_UY6(Tm4fG5BL1JB0ErL?E@OM^C_6D.VdOEKWF:USAUAI3\:[V;AzOB^FCTRgI>P3L?P:@D;X%f`HV>F5BG`S5HWAAH?O[[@W1]ICdJbgSgN:t6GUg)M_WL5=)>NL7A9SVHb1PKJFQIE8;9QOK:H>9B6cC5j`vV?8s]n.@KY8+W;Dc_4EOrBH2PP\81\b4QpE;saUNW8`;UHPZB_N2N#~OaaeMNA=U8,*LSpHGVE/]:_rCHG6LN[]DUdKDVfMaBn>EmMJZAXL*Z9NVEV*l?XEI3=TM>7HB;LVO;ZcBCO28CaPJ@@Z;WKk7VE7LQ=EM@@DW:Z[O2COB0XYD1>58Q>Pb2694CI:?MoM4?CJ?@GC69EeSF?8S3@VBJ!BL60:TTFB3qB9BAL,2ZaD8;1CBQ:IAYLO@BMEQC5OP>?Ub>@PGeVG6b1>99SDGP3:BK4Y9F?8cqUYKC-hF=I8D7IB?@QJ:CKM8>>9MWSWM\[4LPDaRHE;H5DFNNX4GM7GJCTJILWuD?cD+L5JITY8@BPKIASMmAIbM9E?ON@EH/@BQ(]ubTU:6:M`jK`=iQJYME=EBMUOHYQZ`K`RNG7GUzOD\oFTVHXO9\I`QGJB_EHY4H>@IS@JDDNBZp72URXZ75GBSWMEOYS_ATFHMX=|8EGGI/BAFLB??ZDUnKMdAcDLJ9EZ`]SI=>b_M7EM7k7JFa:F=SATITOXT6K7^QKH\QLJBWcD\=VM@LV7IUH`KVf:D0KIRGEHQH/PP_]F:Lig9Nb?K`DkJaZXRFKI\\KA^JHSCTS@HDOfNY:GMMLT?@I;eOBb]QT;P7OFaKkSEKImMK6IQFKcSK[]LUUEQHOCcG=`YMVIAPQHSTJHNDSXBME2'GM3=]a6@.>2DOI4]MANM:V@MGJ?OK97BYPMUU[JanABZ=F@\;VHVXCN>LFH67U@QJWWD12;b@>OW@6=@BN8YO_7>uS71@AHK:G>WGID=PdH9 GImaU=3Q8ED?3@RY4?JENB9>JD>Q/p::E7T/5]j23;DS=,1bPH=B[UAKL]97-KH59DWDE=OC`ZHN2O?K;NRNC\;CF;>EXUKJQQ:ca;LrC?DENU1M4ADCPkY286R.AFL;EJMPBR:hEC[6HNOC9JKPK/-:=DA@]1RAC8GBBCcE;SHHL*65A?F0^YJBKe1:-A<9`ARR<>VL?M[;O=0AQfA5B<3F,XQC0)d`%X7?V8AO7HYPEG?6=IMY7(=9M8JGRK?;BGN9NyQb@jOCLPcU>cBjBYJ>Vo<@7E47raSDQAc.D,F4?eOlV594QeEU6?G?QH5:JGGA0GFLQ5WIQ)A569`52+DDAD:VVST8TFFBBTJX93K-WX;y92L15<:D(5d?,JLOQFX^=8RT373@CL2CZTUG/9J:7W>::i?:OG)A>JJXBPGZFFF7CZ[BdDQ8NFrUBCWZH?`Pk;6CP5YGkRMB`MN:^KOLCn`BHY8FJ6:`CCE\JMCqpFsIa`SUBKDMURGfPECAQVMF@;JO+QHDIW9U?PJEH1KAFY3MPSUMtRb0_6OHUd,XVC]BVN[AGXFTPZKH*KGDApVDz\5e=AEVAKBB.B,===WSH@@Ua[kOdELKv?WNKHU&@FYSYU4NL@SkNbI5ZVf]D;NIJS]IM>CMKKJHesJF>PHKPEQACTmBEMWTBQBUOMEWFsnG@MrbI\W`G]DDS[EkKFL{FG=JREUOONM}>H}C\MUH8IH{EHW=Nf^INc[EAOG>NC@WERKPOLCB?aVU6V9EP=KqQ6_CDBF@L>XVJGW]_BacFTHk@8d?`GWD_L[CJ>HB9JYLYF@CBNoDGqOAJJSDWJSGAGKP8DGEKNs^YEMMNAF8W?=>VIY][]J;]=SCE=V?~A;mFNFB@SCE@OHE?SAI6OL?H`ED@jQ?QIMLSNLMcKVENQbMO;pEhIrKI?CNr@B_jH?A:+BK2EHq\8F7*>A@;Vxb7BS6DPLJGI:?=X34;6MAZ9Js9O6%C@2ZiS@3MBX9GA@CDI1MMJAPJLJ=CTL@F47P3<9B*P3G:SFEV\>>EQH,G@6F.@i04DB;o6X99`Ba::9@EDFF=P=;C11:HKB1P_-KLFFaU[8GFEOFB6BCCD=:9A>a;E:AD6TJ@2GB:[Dt9>R?CFCGK.82:E6F?D?1P:?4AEESL=Q5VLC8B4JAd@[7<'EICe?>6e=T=XJGF@Lc4@@VC,`4P6I=OGN17I7ALB4.<;J=K_HU;CW[1;:A.J0D7;7KF?BdG@HBI3/<:M]2C>BLQZG78B;?>:JD?89A?L@OC;KA6E1AHKBP=]Q9KIQNEMNSEB@=527LEAC?CK<HN?-CLOVHI22V;AENFAD8@Ha6VPF*@QXM?AB9FE28':DP8-WQ[HP>2%IJ_@3O67Wf[KK7L7AHE6'5@D9K@;P2H2RU,8JI-HPCPM\;MV>hWBFKOA:GEU7C7CU\@G0MKJHD)1N>[FM<7A>AP7XCAAFT@IJGI3H8PBDKAPf;a?;;;DT@CoXBQJR9nVc[HGEeN\IjO8RvF@OFTQOPNAI8@D`fmQ_LLBJKCoCNPC3<`T`SHKR[DmJ@OKOYFT?D>fJ;tJWOP]c;2NUCaXfJ2\OVILWMSPRU;`KHQuJL?T:NVGLQJWGNLLPKJKUhGZJf0R9>RJ\@_MDQCETA|wZED:E@LFWCRLfpPbDGQG]IcQ=D?c{IcM__[UROh>7\DJQVFeIcFdH[J?YOKCQ_POU9JR4HObZKQbHhDEM?UMKCQIMRVFPGmQP[RIFfM@B1Qc\FgMBHGHM^GKH@WON8EGQDJLB::kXF54C?N\0PT4I>V?6x.A!mC~5CK7DKG]TZ@H_HJ'U/-JACAF?`KTG<8[^Ml^SI7tmQHS4d.TIQY@DYQS[7LW3Y3KE82;W'JSIW^mYd@8ggFQWF&D]J>S7N7ReUF2T3K?\f]tT;D?;K;/OPEP3I@^8W=RECV7+]7:MD?S;>FaVIkKOOV]SWR81MHySLET_;0F[_NQNK:E}>GNPn=iPPjIUJ8L-3^;`KMDEYMR=\HRKnvM][IRT^aNtLNsABK]ViWN}uc`k`XUM[l:Gx\^_DH>S9LLeQPWJPWLe[oM;E5bQe\WFYC<@OW?B]^OJ4>JAuI\>FQUGrCQ2LNd?QRF[d]JO`0MBW;Z_bcDV^7>j,^V9VZfFKU]4Q=IXD=?ckuS_Sn@FDIXB:^JQ;]n8hpFzDLbJa:cFF?WVi?7;WR2D2M_\<lY2tT2Pbm^P*B5kZ3,N9^jF54XPc,TCFDTbYCO9`7RB^BVGmPSCRELB/Rm9AhKWNL=K5X^^:;H8SCS7;9rB@NGmX?[BG;7ND;>]BA-HUF5@:N@:B;BJ?Ai4MFVBMrYAdSFgJ7GXMKH^YEK=ILLWIILV8BXCDF[Lm=]NMPGE];69WE'O\?BMcKH8OCXKEID,Q6A.NS_W@P=PELP?KE\WBNND@ESU6RJ;EGh@]V?AHAWHD7I@GU3G6J;tF]HOCRLmZC>>>>A?aBQ4G\@N+TV_JkRF=GEXRaRGG>J>0Q_0GPRNVRE\F_EAE[MP69?5HGGO`/6^N8I9R;F??F(CSKX7;[IMKZSP?DS<<95?`NNNJIYN@K[5NdO[ENXN>S2;ITIY:a:>\P|^IAcZRM=RbJ\7F;KRC^GJrDG>^SHW*[B&PB/HFWd7YGZK=1]aFJIAa?7=MGL+RG@8574E5E^2Q0X88Q<>NZX]8EBQWKAW;W]0My,U`CDCH=DOC;29G59B>H=ADBF48KKKB%O=PZ0?:D:F0CJdBVSqEMIC4:92BX@7aIe^f5McA:_j>C^Y/KxiP_15@CeB?4\[:OOF3BMiNpSDdAECA5)PGMc9ERR4>8Q5h;1>C=W:FV9/KaUP`CZ?ER49Lf8ZT,Q^=EH/:JWNKEK>UF<5@:Z;NG?/JPP?468>AF@=6DA9:?A J8Xa;SJc6DBGSCS52lSK?L@l8B2>INJ:<89uaLdD6YCM;V_gGOXRD8[A=QJGLHWNDILQHf:X1-]AH+SO@?AHO,KQDCHVHBE6:>WGAMDD.;;6SNvWK:1UD;KT/@HHHJMAFLj0KTBc_QBfV[u5OKHQRKE29C9FU9XTIIH[hPTDHDLTJ@XELN%KBDAAY+fFV;?A9PO?DQBA?8A3K2=[[85AH!5M[SVx?d6CSAJRC0CDB8B6I>=Kd;5WJL3HAQ7C^cIQKhXiD=8TE>DCO;[-SSCb/UA5X:A=lNLQ7ONOZe`MaOXLD7G5gFI-=RVOQL6u>0N@Njr:@A>OP>Y-2=bETlULROHoSKWK]=LHRH7PHJBS\6@8THB9-l?=DP4H0UB><;=HMTQE?3V8:YQF?>XF9IDRHcMLPdSHNAIxQ4=U2GVLjV_NjKNO@F8KJTi_5PB.@S^/MDACM2VGHoHLY5KPHwEC[NOgbHai@WO9F@KOF=UHCGaD2EO\X7J7=so]HRXT=E|[\^jFHE8QCgTGF;_CKX7KVEKX:PCM3@@?^FK\:;chLCOH*BXZ9EFSGPGk5HJVrG+COQRVKO$IXRFaIAX`KbBJ5W_WJNsO?QU7OJ61EDe0@E(YFJ[VJaL`1X~HV3rRSG6VcSilhDD^UKi?@M@_UOATOR:F>KOVXNHvPGGPGPl`R`OhOPRSJJa@eMSjTFgON@JIJLLSa`xX]CiDSSXOPP\JRVFSHTjg^H^WXYQVR;TAOQY@YQYYcSaBB\_Nk[fK?CT\b_;S6bdiCUhB^VmSKHBhM\GISQ_`LXSZJO__Qp:QUNWCSJdKSRR``CVWkHg>DcLcfTAnUClD[MHQQEHLDAFjiRJZGM=(QY[JXOcqLQ_]BWUQM^_@^QVIXRME^OQG\DDSFAXTFhKN@]>?4LNHHlLMTw8UI<=FO4D>S^_XFBGE^I[DEfMSeCF\ENZZG?hKANMkTA:SGIKY@NAVHfEIj=GPVSPAMCMKJ>6NV^/5J_?DKGRKxCSGVDrS?BQfaR\5HH>M@V@G3_YMIGH>Q;r[hBHLDEc[WYXDA?JZ\9=BXDi@URPCN6FFH7WoIDb7MDRI>Nb@HHLC\hPGZIbZVmDYXAl4K'YW:?NQHDPYXPS@OY8iYZc8IB?NP;3HWAIFXBRc5ZJAKLLVERDABMkHERPLN'^PD4_UIR/cFEULIVWJZAH7H[KVIFZ>RCO7^95FATGiO?^EA;MWLTc<@/AMM[[PMCBEJXJ`V=eSBVRHCETBY9TJPXXU@IUFQLBEQWbYOi*f?BCMJ`F79ZWMBTRM.OTWS>I0O5JST7Y@J^WS??@8\AHA@ArKBMI^Ki;?Z:;LQOHFBDK+4D6nM>8j83CD8+SI5F\EKGC4CJO?`3FWDF@M6k110BJ-aCGX[WS--?/Z]@\U6FbFh;@AH6@1ZCUMIM0D?UOz:cYY>GI[;RK=<.IKR8LUKQ;6Aq(GChTaG=^a:PD\>>IH:CBP_I;]=28E4SJ0HX>F|r@DS;g?_G-PGe.N>8?LEOG>>>6Ra;>>JI<[0C?3K[I_`:CTVL-S;JJB6MSI=b@3TnIU8AWRGZJ=QF>=UGG6DGC9BL5XG0lO>L0O8ER7;SB`GTd.PH5?TC=VziIG#AC@@O>?EjOHFIK>MJ/0\E9LMD7xbe<9;^;RAkL/X]2=YUC@EVEEGTBE@?:SWSEU\CKGN@?GXDjdV^42HP?RB>J[[HLB@JPIJPJiFJI2TSKBAH[ZKg3RFARW8EDYLZBA']=PQW;Ak]lL?E9OMZ6>Y@?4F,ai6DgDAXBYDkG>KF@DDNWH;+DZiGE81HPP<@KS6@Nj7F{=LWYEd/KS_@WAM\ICEV@NH8CHmgszEE>>(S;[N{XYD7[JB?F=USQHFBPWHK`,`XgB[W,~AYJ8H-IJQZ/WV@gFR@=SI*$WC59SU;\@D;P^PZC_;ON]N6FhJ?3>F8Y3Z6NrBE\[PdEA5YJXP@KMNBAO6]AFL=)gD=)JNu=4=4:VO=CQLA0EVH9C2f[YDh@N@NCD`V>1IAI>@;>G]P_LQ]OEH8GARSO=DOo/A:}KBKCg^PC5ECBYWJ>F@2U[R5mttxsvu{yus{trvsqimyns{{qyvuwx}vpppp|~w{}|zsuw}qyyoox}p{yvzr|uorm|xutztszl|z{oowuotpoyxu||}r{uqwrg}zrt~}zunnu|zr{sr{nswxo}{yyv{|uvnsrmv|ovpxzyppo~nzoxnvxrunyuzqztplgzxxz|uutokqs|smsuyx~j{u}wywmwez{zw|p}rx|{txyztmpx~tz{ttxaspNjrvnxivv}~uqzy|vprxt|wzzkrp}{{pvnwtyqwsnuzpykeivq}}jrlq|urzsi{u}{qtxtvsitx|tlmuruvz{|{ru{jsxpmukr~urooxehrvvtv~uxxq~~uz=NS9X9Hk1C<9OYFKCFC4F9A5W0?97]L[HHM6ADW5IL`M07E;GK.JI=@:XB;5aOhG=L1HWO>8`BO39<4=_OM9T%TRQ=-UET:77JcEI=MPRI/KDKOU7^WKGD_5CNB2]38FUUI><;MU8[CJ>^>P^3HIJS=DwCLKGP^1M[N=`K/i8HBO?ad;QC:wYaNB@*E\\0ID>]^JbFMI?ECXUBOH;B@M@\:<6=DDKEA94IA1:7>6cuN}G>FUdOHFIW]C:^JQ<^<[A=S-@UHUCGL8LaZXp~YL`Ga@RAI9NCU6QTLCjGQJW2.KVL>GUL=@A^4X878<=QeR6JQ*Y3?UfORLeAMP:bVR:>0*HME9Cd~XIFL5C2E5ND+3@![QC7?IHRJB5TN8XU8N->^B?EGQ,AgF1JH}IaI[u KHU@L@XIE/Z[I9328:PLU^[A/?:RT:I\52FN]9I]zYhEIK@>;.DK=&5D6:uZ;BBJA`%Y@JR82IC[VBAGJ?V`R@<6:OIIB9DZ.gBVa\HDI>8b^ASV:fAK%bTf\HRGCHP=MQY=KA1HPX?M@[Z1=P@@IL_ME3bZbc?UKDNuI@fZZLE.=Sb`4MF8DA@>R=;eD3;PJTMI]k]@VJ=HR[MbQw;YVO\WKLDfOQ@VSlIDVPPE1^IUCL=KS2FOE3S=\;yTToF*qG>VIGLVOGK9=FpNC7@8QBkIFI6OJUXFc5XJJIKYGEXHQNMSPEsB:IVD@f[_F?=Z?WI;N5VeSh^TY[8E=INSgJR^NP;TCI<^/@gQQ}LQ4N1WcQUHQ?IEH^E5OS`>HQIU2Fd-Jg[\UNPHPE3zzPFQA;HJ`FQaBS\G_N?_Xz]IZW@WIrKP~7IM[7];f>@eqO\vSdaAYK[;K\TRP?k=X_N@?HV9WhI>8aR_J<;]EALnRO?T#IUNF?8yQML>[gMLYXqXV)[nb?XA8OpraGNS\F:H9L5\KLJK@l8U=ID=]X,f@M7XSMDPi[BV\N]EcG@_NTKf6GPR8_BeLJ?JrI4KJKqXWj:BI.CeEVISYZOUQ3OEc70(>AJ5ZIDfDUZFArUO^7F@9UD35XE`BIv;CQ\\8]9MPZYNcrjNz8ECKYv@L(QSNDvgjMG8L4<\HIT`n]XsNSU7@=W:NRTKQ@IVbQ9SUgWOTUV`YT_NELPT_qFN:DmfvGDD;yLYD7Y\WIGT7Ge:pC^@CzRRIkVWe9IQQ?HG:FOugLSL8oDYU4_gDIH=aM@nk3>PaXek[AIY`\?IIJMPdHPc>lsTC?FgPEWQLQMMyQNUC?G]KQJC<\Q>FMY:AAGtA9b;3`9URM]]J=Y@TJ8NHG>G>b[TT9ZD9=SRMIQDLKO?;G;=KK@Y>JNDO;C9BFdObDC>NH:OMT=PE@L=PN:NADD=UIRWTOSMT<`Y94IQKCQ>HFIQ=@9KE@RROLNJMcF@[W:E|C?:4U@2D6JGTbB8=XI8kXZM?ZXUUA3G4AHD:R-L1D87K09KIAAU41CQK-FK;.<.CPEBAQNDEGDL5=S]B9B;89R0[8@6C?0E>P@'OH2DC::IA@7?IB_<2CUFI@CB=DIM6C;TD1G3?B3S5GJ.DMd*OE.:U73?3UQ@*6BB<::TAY?2J:5B@B@;T<4>I%W*>K/C?5BMO;>I/3610aO@H6HDYH?D/>Z2IE1^7>#KDE7EBL'A<(Fe21\6C7@=/IKYGGMC,4&C2C@[BF=4>30U<<;>?15YC0@^CSRJJRIbK9I=>I>IK;YL=Q=HHYGE8BRe;JlNfD;>XJ5VY>DU`?TLHN^L%FG>?6sAQ.7fHLFD8GLJ\A]FFLG3?ECQD#>?]TGO8NSJaBP9Of:c=?Z>bK:F8?0687E_EAR;GMg=96MSEM6PD,N;QQVP^PTPF5BGDEQKIFCM65VV(>CKCWI4A\?L:BJ3XD0S=3SNBWPL3yZL^:/P;0NELKKm98TX8KCc:OZLE9>ICGN?5=FUVFH<6KJNj3H[FC,C=R\G3HKTMRQGFJJMq=:GIGL/@SBO@N4I7Wa/GRFHY77OO-CREJ=>PLC]M@I86C7>4W>ELPMMaD>JNPCO6HCF=QQHI\?D9A< =CRC@e5O`:7^B89:G<\FZR/\8;@8P^2gUI;N:8G::8HAAW?[M8<P3GSFLDpV9AFCIWBLCMhKhNG2oND0;>hH8]UThWWDAANLX@@KFb_A/E>AGNQ@=;?VJWW@QdDCM@K`?>8BN2EKEC]EBLQ>ER=EU<@M=F6NRGJFIXQ@;6=J:6KR:AMRJVZK?WHNYOQKCO;f-V6IPJHGFSi\LFUSCEG5o'?J:SUH91?;O>:GA;I=G=4:"P[W:<82XIA8fOFJXHEBMeG=>9RXBAQ3ADOBOJ:[j2HnWL;WeC6dHVcFTOBDZGPDIK>^ZLE5OYFGXcLY8lF@:\DEkS<[WBWdaQmAE]\sRMHwOEL`OlY?N)FLHYQ`OuHJ/vTU^UGa@eBU9:H@uk?{qf8NVaRLDTZ^GT_\jF\[GI`Jn^S2\NFmUjUXL6^?OB=Y2J-]H[[FW>mW5:7KT"NGONEl=YQE<;EUPFo:C>LUM>B6^NC5;`Z7XhDKDOMH@AAMC.D?/8RD8GQ:T^IEL7BU9@]L_PB;EP2?TazIA?WWA?AhYDDUaMJTL62GY98H>=G6;BGB<9SDOQS]WRLGDNL@FROBMH;HQ>YY8C>YPNFEK:3WKPYL:QK>P;`LO:ATGP]kVM?B^KHMYYO8m@GCTWT34@?P=BKW?9=H>NPGo9j3DV:LIJNEH?S?2F]?A7P=IIB>:L3EXdYdCc<6[JM3I?JBX8SFSY?M0MN2;BIR@R;Ae.IE9R>C7R7GO]XDt:@DH5\DD>PG>6U1C+=GNRW0M;DDBL;{^NKWZQJh2GFU)D/D3AXWQEAFcQH@\SRS*Z6C@Q@4V3KC:aH<+Y_heK/LBHCNS_O:JNtL|c%5SWNI>>=RV\V6GBG\=8AE9J:CE@?N?MLAcATPfH-j>>NO/EB>2JhRqE4HCCD7JNAQC=>UacPGi]KZOe`/QWU3W?LPK,oKK[e:],NT<9B:EJD@I?F:Y=/o?>5QFG.^KN`9KB.(?OECG@cBJ?@VU@I:CJ?[=K]DFH7aTDcYEGXEI8KV1A:BJ\5<260H>A3HIPk{:SQEjV??FE?PEGMR4EIC4AH;`E*NRBF>MDS8Dc7M3;c<7I9=JP-9>ti^_vm[rVc\wqlciif|kbcrRVr|[mqo`eZY_teY`hj__rkkb_xfWu[vq[pmplbrkzgnpyWllRvk{wgRdqwi\Ngislynrv|gr`mef\cjhxpaoemvsbnnoyno|vhq\r{trnLGQRP6jR_SDM4NEYmB7WIbvA@89DD|XBJ9@D?>HV>2]LRLE:Q_]KLN9>:TCHVzLA?SKX)VPZ@9;NWuAPAKKPMA=OOUN@]XVHESN=_OMoG;XE].]jc>MXH`T;CXI6=^a<3YL6C[IRLNR8k59@NRJG\:RAVBoI1ePPcaK\:2NR-X:786:Y3Y=SUIL56BFU;R1Ldl\MNG?O8=CKGu=PL^FAW^V;6WNgW5.6bBBC\X_JMC>6K=95@LIEQfSHFKKSEk[aL]MOLRKUbWOVQU?P{NIMcMWKv@FaXAZMJ@lPQWF@;AQYYiBTbKvHWOkPjPOM@[N?V?MdTYLFsZKYiB?^TARWZ]9VGM>NMOW^LGD_NYI.AR]T:LGO[PB?N[n`|[MEJ[jmJGbTF]ATJPOQOPPC6GC\HT_NESOGRpKZOFARGQbKGFURTT>^bAm?`V>K?UCNRXTH`QVWXJFEPYVKFYO4IAJwr>[[^MVKS\INMFK\PsHDJVeMYcBGP^O]LY`LNJBK;^9RBMKfDL?OA>IT`=J8:Y>]H7@:LMIK=JR[<;5@HI[CR;8M6B79o1JO6@|A2GAZ:9KBNJ6EU7PvQ^5O>C:GB@&S2u;e@3IHeSL?P[:`FK:PQGAB;GENH5FTE2?NC>@`P5=TfKZ=BMACSO_M`N6D@E?bR@1OBLINWG8N^^[Q4RW\ER?J\@6=TEIFKJlJAJ:=WEMO@VqLGE7[<}G]X9=Dw5R(RQ:90J4JL94\9>>ZH;'SIRDeTD;=MI-UC2mF9I3s[=-<@GB81HBNJ35B3BM=sX6VTPOGgUJ_TZ21@MW[HI6w`X>VilQaAO>ab:U]XFhZL_dLa8L={cHLr@J@YMXg4B>IFM>]LQC`\eRUDSPxV6CMcJhLMRGvUE\?=b]8Re>dBaM6_b5^U9[eLHai2g8DWU@XSDCPH1J]NGA8ZB2OROLr>YeAcL;UTHu[EW=0W\T5XL\WMUY;NGYVL9LqBECQcDQ6HH8Ee:QBVgOBUB\SE*a`AKHKAJ>M5B6@TJ>MeQFGY:=IFNbKkGKSnMRKKRSRTNAA(3W\kQuCZEsiAn_NA@ZSdQNUEF_OZaAF@;y=NjJM@[P2_HER`;5L9]F:WKvPJJFP@HMR^^Yw7gjMO`\MUTU_Kg^:ZbYJH`DALTfW(\jMAL7QY4V~NTEYSE=@C6yR?XTRQWY:Jb<:5ND6WDHRKXD5*]\^ERLNBShCHH;PCU>>uAYK=QAMG+VwBm>C^>}X?PMR>\=UTQNq1KPK`8Z.=WT_CP=:HE^FE4D;SLb9n?JeT?_[Q?\I4?d?F@Z;^'O?RW,8KQ0F^u@3Te>;ZO[XOCEA76XecE*J=I:aJ;1Z_?B9?/7,/Fb7UH`eCE?=W66CRH9:XG-N:BAI-?68JIHGK=;XL:4?:@JRV/;IH8J1DJ4A^%-H94F%DGN@5XJD3DH'OCUQ.(U8@K,L*FA8>fALHM0QAK+K[KR<<=LP?CK3LP8DBidH76B]dHTUY9,L1_C<@6?QA?OjBK5YGBP/9FXPFOL79QNSWU>CG+=XCB9N7W6>N37CM:ImDO;Z\QIMXL_Q,4HP4FMOI><1H2P6VEC?_J?_:A-6BL;&CVDE8?E0+PT)L[DR?HQDCJJI)1Y= /F*2;LmGP3?[SI@K.I8?@aGLBJiK@9c9[QR08ZXQ'UGT2WI;MOGf[evHc[0UoKQ:=8?VA<=;o9C9P6@ru>K/`E>qEG\87EO5*11n8GCG?beNDYSa76AQ@EWO=OHS=+C9<>TDaLbWWIB.QfQG:P]J?KWQM>I9\\(JSPV>O^@MXeTCGG=n9:RUNYG9KasX1=R28)HROL@4FC*0SW]I`9n?!0Ag>KK]BSHj=DsWG\\JG0?X+D=UHTD:U>+B=KEI=/=RYR.8Vc8JGF&EP{@d6C<=@A.H?1TR9JH9NCb8ALC6:PJc2ZP@Y*A4Y:>O_bCLD=C;=TJFI6P^m,@Z[7]?Z?;NbG24;E5HH01?8NBa6:[M[BaE:X6A9@U:_C]WBB*=AN;01PYG6BP4bULN.JD4J,>$I?P*MJ:ZOHI=GU>(k@/PHE#NDU!]C=-c?/Iy]M@0]6QXID;6XKEL8T9VF;M>M2L:6VMBLMX42LDiDL>bT8VCHWT[_dV0@N?L;;GG63QJGDDC/5L@R8T1VNB`@A.EP;;=HM`MO4TFRC8@Q=+E_aCMU/KGWIL/$^5NNOfANFLHFKJGEWeXRGhJ5QBDb5B8>B`6ARTAIB%P3CEECY8/LD8PK>AZ(UXDYNOK10\J;[=dKCREH9C5JNEe<3x7I=C>D\L@/>LPLO3VS58F\@:B3L`2B1@A?CD]LDLa&LP?;8F?1FLF.05V;98AWF?-NQA8CCKI;ABE9bC5r(EJF5I>6D?.UA=5.;LCB=ANOCIM5T9,5B@7CPH2:1H69591UEDKeS=19>D5?FE)?LF?16QCBMF77>@,J6?006=14@?OD;HtA8=h??;8HA8@S5?;E7Vj(C57E=4ULV@@1;?;7v,_+^]D=8XC=[G6:2n9O7695L68@<32:1=HY0*p)&b75=rAaN/Di-OF?>G<5NC5B?@:KD?H=K(P79.2?/2QE=I6IN/I&=/.B@/K9\>5=Z@8:89E?O-C?@;:9B94MBKMM9,W?F:3>LAU>AZD2W]IJ[HR0H?aIT;`oUB@XF>@HYOTI6L@.OKBMH[5QVHWP15CASG59ECFWP75=B.G3hF9K8HTHJ>=E=eKYCL9PE>A<5=KA9?B?3PWBJ?U>fYMPICGROQUAPhG=CJTEE_SF2E0NP>ATTM5LLP1PDO?BQTz;RLA>@1?3HBV[SK;O/QQCCJEG3GB[GDFMX3?KZIGXENCL5EE:B-L>R>K>J1?=FGPW>H>AFD8E?NI5FNy4@C9O?NCF5?Y[AGKWPM7CD[88>F/S1b4=F?LE9O8NqJL1B4:>UTeA=3C@D=c?QP1<;CTGkV@BFKdDMZAYGK;6>OHHJ>+GeZJ/4?H396I=G8\9a2ZNHU>^A[A=MLSJGO7<=GWB?O4X>OGHGO^?;[=INBIC]RR4\`6@^?9:AR@>BXaWI>RDI@^=HG9OMMSGAhM^3OG93;H^/7I7P5GEDCFC?C6e6LpfUAFVJI>EdNcO?QbJ?SAS5WM1K1LFVcMm@GWWGb739ik=AQ7Z?<@3_V=LuJDF7KJGOTTC?Q@B9NB*AIQTaOgBKX@IRT77LH:OUG\A=]lCjLMUFK;DOL7;8HuN?PPFCKc??5=UBIOGE ]lKEI=MU:-SOB@<%aTIPbL;@NfQ8OPLkZCRVeWe:JN?L`U9DaA@HASY?H2iQR=;69B]*:>gOIG`OBJPFxHZbK6DJZU4v?dWEl^7A;]X;I^^O[QHGbH_9MI:FC@fSXX|ERPK<=PaVhAAR[PWRZOS<\J@D=N@KKVGBZ?CWG`RM>:abLGIPJ7r:rC>O8_KYE0XLI`JVR4PMK5BOQTQITNDUKf7D706@IK;8:6BA:B20?;<6<351?;=<@>(<=:;B:53<3,)D659>E6;A?66A4=6-426441,6:2G3;D;E@<3C):D58@3A1.91>4B:/AAHD>.9:<:DE05bG?@C@57+.=5A@=878?@/>6F;3429=:5@=9B:=;:8=;6CL2==?>66>;5D1579?.72>626G<:5I*8=E=C<7<8;2?LDE]VD=ad>%4A:h;FIMJ]_OY}IIE%BSPT@BO[N>>LJ_VAJ[/IOAG6NF5=RIo;^KJbEIAL[F\acXF@FTTgEBTCYJJFSSDNI5QZfM?YWCCJPUCf1ItPXTfES[C?FDCV^7AIF=LICFJcKA?dz`CCUR2_a<7Q>GETIMM3RR4`5F+e8MWARMV?Y>D1U6IGN;K8=^BENFWyID4R?K[CY`PmLT9]kP:GP3SNT8B?EdHGVKGOTR??=5PJQM>NPNF^L\=ELE^OSYL?SDHRWQVAL:JFQMP\H>NETHEH?HBMIPWI\L;RN8@a:BNKKGHHGeZG@EWHLD\[LCJWVMPCSGDXDQDTAXHclOP;EK9ED_TBKE3HR@~pRNU^PDBXn`C]TH\DqCO@HJQFJCSCBIccNIFNMeNHHECCG@FAqIATLGHVODB^IKPQ@>aGNMN2FLYSGIAUOAQOdHA9FBVFEOBIc;Pn>MBLJ9HIlMT>f9FoNSq\?AD>VNMKS:JG_]V:RI=NFEJYmB_PKQ@Y3SL;QXXWQMG7D]DJ[=MMHAEKQ@dMD?MGTB7OHLHNEBZYQH?DBSBZSzvCLKDDPdEM]JVIG_aI@i]CWrCECKIyTUEeLzDCHVSNNfFU`HRIDVi9B<^K@5AOCTD;ALr?[KDM<:=OQHUNO]`TLtULNZSKMHGUEDAcJGFYB?EN\>SkKQRSVV\XGNjH\GLLlBFEFPH8J=CABNOPD@EEELeK2TD_qDSVKeMC>R6@VTgNAKL<;KU=&.TBaHnQ;HeUTJV7Th-?kXIBG]2T2P=UE4QN8M1,dIA[KbK5UUbVWJ1L9>KG9S@L=XF:E;Z4M)3VgRKIHJ3LU^89I>VP9A9\UJYW6=TwZQPT:M[FMOCKwZcC-J/q`66z5&US?P=CC96A[XOfH(TN]IRK8PBQTD0IKAw[{HQIDcVla^PSDcL>SMB7BDAgGEzILBI\Y1aW(GW1ZBLDOTI-5N@:U~E0PT6@LN[NKJN.<\9NMK[sP)SIO9SAWK5FI?D3BLHN24SXGpSe>SCZ?N957;lHMj@JWC@6XAMXO1RBh/gE8G:EWXLGWXINFKDa<>KE3Ab5GLUMFY4bN=;G6PMnN1YK>PCOE7TTg82X1OEXU2KBL0NOH?Q@D[KM=Ea:cH3DODPM`j\RK_36^y~U?NB\O76b\G:WS1\^BQ[lDJa4ZcrJ?O@6PZPw6+`8>=TdMQQ8I[yCHM88IO9WCY1AgCQ\BYL\L@05TQMD^FCAYC92A=S=QYVeFN7_T@LBXF+@.C).N@=@IZKNE8PLM:/:ALHOaYHIFJ?B0^ODIB[HGRAZaLCFMEJ4DSLZVG7X=N9\Cc?:LAJNJEngd;TCYg;T?GOMJIGCPF4FQDYFM>ynD?JZ[VP5Q6?U8G?;F<@PFV@?=BcLmJDPDA3NTf=IFEQ?EXLCJ@FMoCSURTLBJR>J>2T[GBhllmJZU=6p>A\KCSR.Pt5RU^?;4D+?PLZUIQqpIThui^hM5R7~H<}v^bb+FdFIS3FFLQ@SVec[A\LD@`TRF6`XEX\gXI)u9YZgUA5C:Z^StZQFOf2Uam`cVd8;9N;lTW4vM@9QLEUQ`Y=\EEk]OR=)]7I]C>4"NzKKRgKQuRAG@jaIEYc^/W_R+J5LDQSS7GFJghSPMG%OMPYHrE?H->UBCtFzLiWIKI8WZY>[MjWSdP4[ak736`Dkk]%SJZ.h)IX^O?\`dlDD.bkMnO^KBG9[w2F]F@qgM4qIX_hC;t5o[B@XVyH7@_hXNZP~4mDee?X\WBL2dMey\kB$;L[F8f>UXEF[dJQDB@LY>JF3AIVL)P7OXONPNE>5H;J?CA7CILW=YGJcQEELE[<@S@S3~C=7^D6MN=S/QRRDORBE:AG?EC[>XCQCQ>\D:BUA6XBHPAIJNE=WKQ9DUH];KA`=HS5YM98=GFb+LE.IB?:OTG?KKGK6HKIBR>7QF^FBLDmiXBE5=]2K?G6LD7{30P:=;RPdA7P:IHB=`DB'VI=+[_=.K@8A:iB{HFVMA6LHOC\KVDhB=?JQRzA@GB>T2S8?F$:3D5@H;L>K>FazSW1\H@@>CL;K9FO@GI+@UWD`G/CIL>)GF7%JLV)bS=D>19/=UGN36OdCD,A0AIAKA@P5?BBcY[Y;=!P703.=CE*YGJE-=NEL6GKLc,DH"HPDG>>026CRAUMZNT'7D-,;3E/?4O@/AEZ&;2@2+;4<,B9I=77;;;F:T,+SHMAGGK?6Q:CA@D(C.JQ=CS?ER77C45475eAB<.IPD>94G@IA9[IFVFQVO[\L[VJBWKU@GLdTPHykmOaLMCiJUK3NFMJCYWKASLUcOWISCwRPJMDNNyWAEUJMXMN@XOZQ=SSNPPT^FGNNvOFHKIPIkPYD;UDNJfDkTHX`IQMFKLYpLIFaO[VHa]CS:Dh\UVTh^DHQHUOTuTXXILRS[NNLM\NEMQMANPKELSaKkJROKDSRVHEiXGWJFIOHT_TCfM7MQiQaLURGcKG^VVG\:XRXIKJNPPGPILJ@E:C4YJO@EKNc8;dC2;$>2@>H:LQBh?3iIZF3/BN-"JCEdBN1'ZKODFCH:CC.RTE7eCHPjc3/OFIIh=@KO@Q4`JU+>9>=T6$@-_[D=CLK5.>P@LC@IO&E::?G1b68EK@:RXF[CDR<3BD>1B:Y6P28P>*?D?):SM]A8<7C:D>81bLK[5KAHO=A>DkA/.D.kLFDQ@=H376H/C5;],ACC[FBCG;H:7]U3DNA87YIOR.0<=$;B>1H4JYEE>R54CEI2F/ICI#Bn@3B-O0?HO8;J7A?LI>:11@27<@CPGAG=?@>)R=ONcE2>?-HA5;BD965/5NA=84AAC=521B:?A0CB@@6?M=G?CO6/;9C;2?>.A4E?7IH86DK:8@H?9C8<8@079:52=,5D46L2IB330>/1AC@:7DH7:0'C:5,.0B=;G;4<4:(A%4C<4<8;6999F>E76(r>=?1-4;..6+@*A9F=K:0E94A1606:L1:-.(8;*189C;(*+4RCJ;@77C[KA>6>Q@@6=B6HDD;C6<9D21<70@/A;$:<.C1CB4>8;:CC9=E->C>8B>4%8?N(G:QOfSAFhN=QOUVs:I/N\GGdhA:ATXtMYeFg;>]U]]nZG_iCDTG8R@fXG[VmLKNGKNG1XFHOLDAOVjAKEGYEa^UJ3XBjWKfO[^O\mNHYyNGG=TFX0DR\GIDWCN/o2GnNJ>RD]=BH<_KFJ]PGHTMGl[uNE>lPS\CNRS4LMLR>@HhWi=`ETS]b>iDdVUdYPMdI<`BIW[jE8ONXKG@;]CQN@TJU]@jI9RWEGoaR`9RTEZQfw@=OGTIKcZpHdZG`AB[NfR8bRYVhLEUQVOHdLHI8};LcL]IBGSS4CIZ6W;G@5W573ngR_9hC=Pg57VS0g8(Q^ELDRPSFCQ]BOKIU_^`IeW3MMW;>]S3CBR6UDK6DQZ:E6AILM=C>(A5,b%.XCDE>DmR>iZBH>PQOIP>AT<8XN:;VAGH:\N0=C4297P7CI.;ORD_dg@DG>9MJGC;P*/HOXM,FX@`VFP=K3LCKC8AMKF6PP3=/3K@I@F0Ub3RHC6E->=NBFXIX\A:c'IVEW!JL\R@99xYOBg3K0QD7K@DLO=H^\PMSN:^2AAW=NGPDR>?9P)=:02>++2-23M6:<.32;29G5I?>4,6@P71/C+;093@;89:E>4=60C1BIE5C.5E66LH6E5>8-A:51I$CIAM9G619.2/C44B?205A3.?;E6<6:4;<'560$3A32/5'IB20?A7;4-1E?H22/36/;39"67I@?/.7>3@?57;$?Y@+C8G7D79)B>0:288>83==?A1>$7;DM$2*K)5,!*,:;@A<374J4IC2?I6:8A/AA/2=335:/>=75:?E<519:9<20755:82@K511?M@):=1GA886L:2@\jIO;vZGJ82JTo9]>58V8:LEI[3HfPZ/RO@UW+=0@4NaTOGR;Rq7UEZ/8?T4U3UDNICN~:99HS?>9n=8=NF?OICQHmMYS?sB/;ABoMHC-DZG[F[K?U=H3@Q1PvIFI=EAVE3kk8*EJAM=HbGCPD<25JQhoM:WX>C`6\A^^>;KK^V:E5\1O:0OBGLLB9\TMN;?1^9Y2PMESB%rKN>TPfRHKH=QJgG>xQ6EJ9=.CL5?NJNiPiJKOKJRN;MRJ>8:B?WU4H^@*KPY>SLd4E`4RF=JALB~8@U:@>R1LOA4?QXCJIH;Eg8O3DF4MR?Ed;]6O8@8MDDQ^\WY84dL35TEM?WGZH@TGSL8a>DJ>TA9XR=>@DgNNJL7^L8AsB=_FIkHCSOEF\:Ff]KMO1DI<=BBiO^PJeJW:<4PO\PF/6K?:cOB/JJIqJ?A:9OTCN@DUQ4_T2V@:RFHFXON.@;J39FO=mnKHMiEOYYD9C4KHGDXc?GCVJt=E@QWUOBSB:K/aCaLJHHFSEAFT93C(13dBR.EMGH44>>?=etI/BQETF4OFB:;7;9EDID]L8BQ1O\QG8U@@/6JJ%J9>bOB?VH1BNKOX@9FQI4@>A/ML1GT6qUGgE;GKPH82L2F>T0#P11O;U;O?cDOAM?D+R_+7NU35=FeI:ARC2XM(G:KJBJ-/ISRZK7IJ=^=oCCIREK:2Iv\DKM]29L=:G+vJHDCPDQS0CDbEITOL:@NM5PL->4GJ3TP*XQOLF@MCox2F5VN2Fea[PS=ZO1fBIJ;_@dLJ,+CDR=7Ui;q@;>AOhIU@O6WKNAL78LDUMCO@Y0;TU>O[i60L]CES>>>R::L?FH@YFAKA:>H[];5:EHT/:b;bG6;;8s;@P:J693KNM>@^?;KD4B1BR58K5>4=?J97DE4GKACSP;LFPC-AB9C[QEB:^GCI>KaR>:^K-K3G.``L7@>=+D>Q8aLS5=1CLZCBWA/7;9F.Ef4cBPD;CF@0/?\?:9-92>A;=:,WER57B>8JMV,?CTIAI>E3+XLBhUX~4AGG>KJD7z?6>;XKD\f!=D;RP;E[;F`7/<8-J2AG\VXJ?7@@8TYS2R>9lR5>K3F[JHRGB_?nDYdA5;IVKA?=MYFII8IZF|-J\E8PNF8_64L4HhQON+E:HGUB8D:DTM<@AG:Pb7_HS0GV1[R;t<9CI6R22Kh,9BP;YL4ZR:PNnL^_0G5B68UQ3?Ol87jN<5<><6;M?6TJS[BZU]C:L:>P?:J=4=`>;Y\+F_=Q>;V<:WLE39/KF33>6f-<:^;6AKBAFG97?DKB;@LHJ:HHb;J:>;_BLA6S:;A9D=X21:6BI@8UJIHA;rcI:)^_8I>bV76/KA45V0E;_PTM,>UWTJZ8C['NMBAJ3N:PPVCVdacdwtj7HY3ayVaR`G.`?`aS?>k3RTZY=OvJWVQCX6`~fh>aOT^zZzHXTVQZfw1VeroChjk]@Z@2<`X@tJcFkHa_WO@F1/_xIoNU/>QiaK^I_V~]gM[`=WHgiL/=HR[JEopPy^tf^{pWSdGb^=\2Ac^fOd?4tB9tlEjcOZXJXXaiZ@`]o9Zljh7kGX\IPHbX_FAjBy=liZ=\M-Xm:^Y{iPmVQv7JZH%:Kg^\;VT@B4cLfAn]DRk9UoP1AoPtUnhGqOY[_6hCUApb0>,aH\i]Pv_l?/W\e``J^99fG}^27JE8ECZ>BV/K_nQGB9NXMVY_T@dMZGBIF:?PKLNIMXbQBS?FKKDFL[38K4?=>?Z5?Q?AA8HODrLUY6=f_95GLGZ;wAUO=WS$6J=x7/QPAH]NUHHNS@EJ?i&A`D,] 3@IMJVSgBN>gPGc2?hImCUQ5^P>N]jOe@E;VVY@>8PJQ@M9Q7\Z^VHIKKRGXIdC4.IEM5:?YF6USbIRYEgkuE=l;X]2SAHhFQWBI[25ED:AMF);QN=My6;HECW8D8p;O?F??7JC;L=LHOK2A;M]CCK<@@??8DI8=HFSI9H4>@9@G1;JL?RJEJHE<9A>3@>;K6>CBTCG8@R=<;E4@8?EA2LFAcM=KCDC==;A:7F?OS8HDP;@O>79HWKG;DCAT+B9870?G50V?9F?=UP21GCLS>G2FY@33KGDCM8H@MI@O1BBG7@<1I@H4ECI.@YC6HQ[F>CFE>8C508F:C6O:CKNC?3ACEC;M.;>>;8QD8>R?O:IN?D8GF?3C8H@9@F;G>htrpipRtlp~~m^i|p_sli}]inkpjflevqggvv]lug[mq`kl`ohb_{oqjipa^c|`pm\Ykxwxkdimrxgbpo{hYm^`plooaoVlwuhi|cw`Wdxrwdzx^oyhq}pgatnklZzitp~}Y^ezorl_enimpdiljjrejsnqamrxmfkropmfwi]hypsvcrdqkr`qkzlhej|i_z{x\f\kewc[mqe{co|}`Wobfwtol`fwagv{uvjeyk|r`tk^{esb[upqrtofdn_sgnuxoqmuZ{cmnxes_{daitzxnnsrerkpnmsogtvzmkhfelsfqw[mUqTg`guvcsfk_tiogiz|uheuqmuifhfNlxlvmmdkc]jhotX~aEMN=#QN[OA@8H/@GbIe*HH0u8@F@eB47QWO@@O:>LpWG=[Q4=UMV:2VD4[6G96H:XIuMRWZD:IFNKKO@E86THXHMEGRS2P>8>O8KaSNA9LSDPVU9JVI?:7vA>RO_TGB7G8>aqFVK87=C7TaP]9<;UPOA1KMD_SEJE/Q;9[FY0GUPScf?[9CbES2IL/W?bF1h?ZLZE`GBJNXtEFO,?BdMZRRUH87>3K5FFP85@T9OiIHl?`K9L9HED:Y@JGY6M1j=J<;E;=M8QQAVB>HTAA;iDSB?6AJ1=>86@NPTKMO3TG15PRV8@FYK2AKJF>\BC:F:hF_6P@TKF>A6:HWaE6MCb7?KH>b6N::I;MB9BSW;BJ9<;X-ZR;O;H3>H?>8H,rH\KC>L?AN7NCaM66=FAU_YfLLc:WLY5UZH|EaFZ:aRr?R}HKK9HI`^Rp(^OF1jV3g~D[OWVOBG[\[MJO]LgIt`y:]e'NdOGLA2XHJO,IOU]o0jn[[T4TXsWIY0m8_W_^L>>Kga:n}9Q9A\vSJVQ}ub]c6C9R~J+CO`gaF?g&7;CIKLJO7IWH6.q8LH5DHIMV@ZkGl`MSacG4@OArMcuLSWKH`"cA~#eOHg>Ad>Jj7lW3KRWC\8D8GoOB0PzNO:-9ISX-e.SJ]J8?6\Ho0>>=M[;iW_++MPQ<JALNPJNgLOBIGC?FERT?WmUJfB<;CBSDF>PNGC3USl>N?H60E>[=aTCJWI-l73DaRA?ME=]INB1QOkDE3=FNH]WTCE?Y2>4[]P0A4MFVVGE\HRD9c\EEqDAD=VOEBLCK>10OPO9\QL8TXc:ATZ70CjGJT=S>M8G3TBgdcD\SX?-9@EP6eDcIDQB@KP>Q7hDFG@FB_>>B>KE;FHHF:aHA8^aBcb0HLDFR1:]MTA39HEF:a/43OX9JX;D]=^_4<%I]YJUGA>\QCCI;MPGB?/36:XXkX)VLBFBFV_DFXUGJI\FG*9D^H@5vTNHMCe4PF9R=>KYKU-ICDW>XFJANLQE`ND]JQSFWKHADF\<]YDR+OE6BBLI>=]K?;VEMV*Mk?MFE@e^JR7XFQ7a=JM@iULH;MJFKOGZW[S.I9XRAE0VLTN2ZHGY:,I7JPX<:^[e9?aMUJHn?FGP7ER:AG:FIGg:IRD>?|0PVLOUOQO?Qa5AT;ZL1GFCCO_K?=:3Z3I99bQ:3D`JLFDQC8R_H?9ScS3z-eBEa8HQ775La@AV=eM2SQYKU`>O:=IGVRK9T=CBC==SB;<5IJ2F%VZLJb;UG[V?>S8s66=<^$9Bh[@VI6Z+7IM[HNIWD|*\HD?H33;9&AE4_MV80YH4;lD,TIJN4>`]XS.X@LJYSK,DB/KTDLO1X+GBN969N5OX@T<@CFYf>6?6(R]@^>tB6]M>-SO`C=RZJ7Z:NBCEG?9=MJ<^689=WYZ7RJL.I=K98@88DKREFIRRA7Y=MCYG9J[^P;5Q/3HVJ<+DeK'C*PJDZDGQMb>SLKtN?EMID]H@'9IY$EUQ6CDFP1KDAEA=N>68UXHLX;UL;G@L7F6\`FIHGUXN7eKQ=j4:R^ADFbB:MVO[?cSVABG{<{KL;J93?QG8SQ7@'MPIWB2k9F2[:S9*;G89Q5XPT@>NQ(3S2XF61I8??P.>7gFJ;;GKGC^QX?R=37;6E^48\GP5?2>N?SLN,Yg7K7PY;N;L_=J[+FR7@AONQV]DkeHIbC<`iXF>q@6NUG0AJCALHFCW;o}WJVVMFJQGCHMFGZAF?QB7LRMCBFRSNTEIIVDGACLOsL<>BJGUHRZMLEQIIAPQFVOJExRSJLBVIDWKRNxAWLNLAE6;?BSMGDKUBo>VYO5qQ9S;FF@JNDU4WKR\Z_R@GWO@TCR>{@_PWX@INCcPXIUa<\EJEPePUU^UB}EeHeYQhDSMKMJ=jRKWRCUK=PKCXQIkU6l[CCZGCUW=LU3EBG?IJNMS5P1`THNDJSCFMUsNQ:M9IZdLRED;\O=E3M`DWhQphB7CRH?_I_HK9@HM];GQGTPD\LPhVSgL3QgUeHRHG_MSJBH8=POnSBWJBPAIF^E^FKSLJ[z5OJ^s@=7USRNCMXKFFLTHZoXE@FV~\TN8FR?R`CdnKDUTGNNJBEIBMaGFJ8OFPPLOONgARDV>MJa\K[PLG&U:gXHJU>RVR@xUMNMMLFXT<[MaZY{E[Q^W48aRWWuYcAVEMOEPMv9fJQdTQE8V@3StCMA=UPgNbKPJXKBYc4VGO63BDZJXZQJMjHU9B0BcLPINHKLZH[WIBMJcHYXI>KUCWmFaD>Nd?CZTDUQ/B9?d9N?[FH^[>;;OGABDe:W\BKI4HV[]8/C)FJEQm@RV>AO',*SWS91l]E?=G\IP4OC>TM6L/'Xd=>>FkbWl(D8Pe_LiPVS=>TG4WWSROD5I`VRLTGrHLZKOTQ>.fOfF4BGMH;>_p:X:N_NMXE]XD7ZLZcbKXLMNEcFUZP:-FbF^nLUE@,j3>YbOW;R:?^5L>QHW?FP.Q?_J8VBG@;06A;SL_A4dmIZDXKHOelTKV:2{:;9*SXSFZOY:>HXV2^VFU:YKgTBP;V7;Q;]NAHK3I:18Fok?X;>]AGK^RE=FBj:SCx9\CL_b`PL@LOjU0CAbrHJCGF@:@A[UV1GKXKNA?LKVKJK;Z^0CDPFF5IM^>N&[FCVb6B=bOPdEO>qF?]A?W9G[MOr?7FI>XRV$VP@CUN;XF6M[4MJK)nM@qUEK8LC?@H8dJ2LPC[G=GUCTB7IKBBCOT]b^CG?F?A=rcI=U58@lG.UGV99Krc;.z>XOARLG\_DDBL@>MjkS4O\NSBI}B[FCL]`;TC|:SMM/TRKG_PE5ELOHP4CKTXRQ6MO<7GLYc_C5C?Z0YjNN>UM>P9T>S<>9<8>^HRX]:BJCLcHKWhD@ELGI8WFYB:A>M50Ux5V0cFM5A?28(G]S+CF;W=D:61G+=R7:GWJL6eIHP=E@D5;;Z?E<=CO6:\DN0F8@8K2RVAVMS^`VOAMKbWNLEq`5cgGWCA?QC:]`IQ?v%TRLC9M:F[EWL?BFZLLDCbQe@IRQ]T:1=;T0a@3]KQ53Y4GPBOLFnC39I92^?LM9JFD5Dq2L]DR88I=ZGWHFnQDF5E8MGQY@Z?@-.[PLfAUMEShIE^eF:fW9K`T;RA^VjIiR@P)L?=0HmR>I-UPNRNT95HE@GWP3APKE5=_7C^@EEBKO<8.D*?R9N@lGX]HN=HKGI>G6eNH^VJ>TO5O]?:615E8><\;S<HD:?.KF;MQ=;QRODX8<:6MJUL5D0JNGZmL5V7YTYBLx9RSPUSC]H=E>H81BNO0I8C9L7@HBL2T2MPH=TMP?MPM>KHH^A@AFDP5GMZTgQBIEmU7'DGPJ36GV1PD3YZDCe-86ENQCIGHWKEFV1MS_ARBSCJ>@.U>Um=5_J@283@ABB50I?FB^/:AD:9@MFS>WjK:*;NV@[POB_.>F:**bk^2TRQqWO\K/9G~DN74Tp@1LKHH9>fDTc?5WQMCmG,8..FWkR8=RP&J9M1W$[PdFS0[T?_AjNQ9LT>DXo_;EEcMD_L0VnGHL7gKC8V\XL\6fMfO@?BD4G_@X.YWlBE^Jc/QVD`6ZkAQB6OgSKJoBKUTWFJ7:OYSO=IJGW;Y8[AEZeOU:]E8ZE_RZU1M9LR1-T;tW;8==pUNFA`aYZSGCTZOD9?!QbE_FDH?7?XU>gKLLWb?EBgAZGWCJUMeGUTRK?EpFMX=P_C?ODk<9OKCIG>D@6XN:\FHpOOK|AJIqBS[REJJBC6R7g5?VGSTOVHPZSMRiYOZf7DZWq?:J>JBBMDUKEDFPU;FMUMKU}WPuBNRG?O>j=yEITKJ{:PMOsBTAWBYKTBiVUHKLANOKW@[IC9<:JDCC:B:ITIDB@ITAQ:MH=LVDS?QM[;[XF\QJH>OK^HUGBSN_Z8:@IPNYLHP?D98OJCSREj\;;PXJq@9IPJjEDFKSULHsC9:HLOD<2Y8Vl@YSkKYLXRK78=GTK9?\=EHD6KKCFFFUDJXVYMQD4QCKHf=T\JMGNCLQ[;AZYDJYp@EBEUDTnApqWC{SE>@MRiPK>KILM]DCFLOCSTC6D9T[ac{SK=O5J6E@LaT;@:EPP@EXB`[*bD3TBE\uDP127>W74I?:]^9MA;5Z39W8XRF1MUL:9IIXlKGN4B1AE@E5=4%2OM?1MJ>D?V:MJKPZJ=@W?@cBG/:E7>O86[G?B/EVXK;h<=C3GF3JA>B@JQbMT/TAN^DUL_7/Y@SX6k"7PGVNE=;vB7C;_D]#DK)L2XCDUKWK`;]?FI\CGSDJ>Bg2>F8iUV@^J>\,AZ!NMCKQ9OIUXE2GJJ>CSF7K)?KLB2>=Z>3G`7D@X-4QGTg;?;F9FB=2j[LH@R|JXSkSK5KTMB1:F35NA;2SKpGQ]kkSTF\8D[DJ;ETJ;+XHl;lRL\QJkM9EK59@G:dDTJMWBMJJBMQCNIIOWJG?\qT-QzTWlULQG8>^I<_HuY[M=XA,Q5[kTS4IK\fHD[]TVDQ\'KNYP1|LXKG=cAFCb5X=B8wA9IKZT1CWQ?QPQOT`@JU;](A[TIiX@?fDYNdVRDUHuih4DG7K;H;>bF;9iI>BU@NETAJfVTLZY6PgJELPXa4FRRtMBXu4eBVAcTWIGPPP3<.hzC7CUGG]UL?REFQ][;EHK\W@]CF@sQY4GJE\NMDHUDH>4XQZP`CfU-b[X6nVK]@dIG]oXhXTcW5KR\E=dInRF1rHD?=>NOJEN<>=[0AJlC;4AvEc?s>Ja+@XW6[TG]O(OrA:TT3>>WfWgEXLWLbVF7RHm>?q_JLO>PMlE5TCeDLZC@;IZ`7]$-G@N45M`J_IXDB8AP7PVMM@EYG<[_7^D9x(JW+Ybd[UqZHH^VLQ4NqONVf]JAIoS>JMj>\<0sHjB]&GKbeXDPIG=5^BK/SbYJ]5+LJB[eU4m:J#B9D;D]8f_9IZGpKPO4[W@ECEH=Id9iZd5x1`F-DS=A)RQ\6Q;JG3<@IUD@IJ=bCNOPVZI6ZOADWA76AbZAJcdc=]8JHLH=6CLHCfR=EXII^hQSUQH7SL9CR1U:zTPJJIHN7NUJ^KEKGJJ,+XIQIC]8=ZSH<`E0E@DKcL9PuJCYQ"1_=;G3:a[bE90mLiH@VN`7@GUA_`d9@GILAV;7:WUUcN@=cIXHY_4QN_HtS'?]EJFWg?ijo6AAG+-NH/dPE]CFF2:`A:EdE>,;N;@CHBNNN4CyQLJi8a>o*1WNBMO;LAP?EZKLUS?OEZ=ZO@MNE]^eDSJmKNXHOV`Uc/8b06aFBBQ>XBJE627BXMA3HD?>Q;;6>K9@AMNG4VK?PH5K?O>NR0<7237.VCOJ@O@3Q;BRS52E7kRUGF):BR4_0CaHACeJ'?TB74K/AVH9m"OK:-4BZ0+//(P74C3DPE;5a'L@AS,GFc8F&<@Z>Q88DY;?DLoW<^=4=[PRERDG?4LH;4;.LEBAJAFBDRDAGY3F{M3.A6L.@R:NF8=O/G=T7?@GGPM+_lH:XEB4I;;W3GSEcSv\AAb0ZPRL@cTpDC.+EhM]QDL5;=ODR1//R!B7F/5;=IJT_mJUHURIGP;W,H=^@_N7K6JKNAC`H9Lg7=DN@@_C%PO?Ic6iKM?MYW9E\89Z\>KFVGJI@9OCTGHL+w@/GK]OP3;O2`HYF?7WPJUXNc@O@H`+;BBGYUR9/cW@9;F?gI[E5LRIGtCr\S>@_QL@-=Uj;NKiHNkZJ];G>8;JaLJQDKD3]aLY&*.)\W>PB:KCFHKBDGH@4C=bY5=@IF9F:ZTA06IQSVE20Q>ATSF/GNL.E>6APA1LOdm:O>Gh$5L)FL8FR5nG@N?SHWF75?(9,B=CJ%DEPE17-=0I`#69/6Z=O9I;XhO0DP,BNO(90K::Q^93DRG7?(EI&[CY,A1CA ;.4@WTJJ;IFZFOWBJ7>2D2[E$C75Y.8CBW460?HJ3ONG10'G8dGJ/LI7P856FHC:;M5KP63-3#Tr([KBGGB6]Sp:Y +>9HS9Y2O*CF-LSUM@BA`.6S8F45?3GL`b5JJL@CO@CP=:OHcJQ>qQA>=;OB8aVJC7>KNBHNk[?<9a8?1(_R8eD`WR`U99^H;OP7Q`D&`K7F0FNFCfAB8=<;GDHM?KLQCS4PLEOA7FLVC@?@K49]J8TJ58CEAFNABq^I=2=XE\H0A:B]NAM\;H@D1WD8>7AOL3MFEI@[E;LB<:LLN5>HSFm\@hkDJLIT>ER:INXCj>A;LAR=F4QR9FBgOJ*dTD?IP;I>NL_g;OBK4?J7;HA(?g'E3@98R[)?/XC]7F@7Qq.F;88;W76?E:-GJJ:UNJLPNPEA>GUW;tO7;F@@F:^F@6eS@Zc5MoBN1;Q(AMAF.,:J?DKA7TH6QUSF;>CK9K?GKIBUO/]PC9D[(8Na>J;I?MF;=W8COkDS@H`P:@9K;@l9:/7K[cCX?9GEM5K4GB;L*DGPI:=E<4CG+DW83k@XS?Y3RL;M5EHB4PDND1;D7SBV3NGC?EY7;MJT-fL4G=;EE`73/Z+NdE5N?BKB87O9A@TNQYH:=FCN>WT4H]D;K>S6@KBADIO6/:[R60@R=-KxI8M8AUN-95M5D?LTR;4O_6GC83\YM^QNNMa:;DS::;?F3G@F=N/7D4F)U:OL[LOI4DH?9BQAUK;DF:4fS;KA/JZPCRYP;SCDXDHGP[:\JRYCIF\IJ@"2MO<:`_LCgQJ?JNBhrLHFHOXHN7`]6A:J@C:D-8oRZ,6QTF\C6IaWNfRRI>?9B8=l6VQVO;=Q7M6KB6gBGE<@UML?.D?GX`ZIP`%HI=C\]0FL6k=JYB\;?EMS;70:mGGCgIOR`==~LCO@HS:][\=3>=?Z?8<@\?B@Ub7NVFVRSQCJ`k@DP=[CD2V<@Rb?>i-BK:T485GVFRR.@?ec@aNf,KZI_[BG8KK?OH>ENCgL;F7cANi@H`>TEBPMZFK/UA?aOLDEJ;7iIYGGO)W?G9C?T>C0F>CF=JJSdM9INY>oRMSA2R;jOI'RGBaW\67OYLUVY8DKA?1VTH=V[?@CNCk:NQ@BXGB@BIBZBCe;D:SR=X;>83rePGVZ2F&6KIIF)GEDB.9Qw=OT>RJ>FFOCVrSEL9d5V;IOFgP:O?FgD?OG[JHEALVL01E/KYa>Ee;BGDQQd6cB<9nI?:\WHOQU@>EN?DE/DmM=ZKBSf@Ng:]_BK9>NNc@AOAQ^C66T@X6ZGB>W@CT?KL=W;=F:>9S=]>kdBOY1>HJXEy?`Cf;kdMU)FPFEOCUEHP4-AF;ZBj^NKDBIPIKDTNUWXH48CDTgK-NP92FCB7MZH?9LLL`@Z-_J;]>G8EQYk0JRUO6>J]KTB(E_YjE@T]-0[?Cb8O6RZP=A/ERLPGCYCY\1QMvL_Rb:1NEeGEfGN?MM<:qTI=GNSB?9n9[?fMGSU|T7TS@D_EJN]P4RR\AHV:ALGAZME8JLMEz?`WGFXJP7NHNFBOzS:KKT__QbFKAFOLX!P_3bAUL[Qe?M*3IOQL@7@JI>>W`RIGGDfgMJCO/{AUUE:K3J*@I[:PDbEJnDRR^<SK;\W?YCH,HFM9Y[3VKHR=BMBSl`A[BCK:NhUWGUBK4R0=i8O`JKMMloNJeEAW>QW?>XFWIE=MQQY[IKGAq\DQZY:HIFEBB->OQE[\d:AHAG;;9A=MK?XNaTRHF=DETY7I2R[=UBm6JZB`>lKFE\OETMRI;T:Y`_>QVKFY6bJU^RPOG@C/EJLHB;58TTI[K9GAQ/G=O;A<]OE>oTD56W?<;K?IB@FE1>@Km\80YDIz@/D8BF@JFBS:AME,AF=LLD>T<2PI*:JEQE1UA>FA[C``@<>@>LL?@B?FLR:?Q@B8,LD[D_6P>LSB@9+:>?BL]7R6WeE>;EG,GG1VnJG:A3GNHaJA>9hW>`IC^9D?7GHGE:ZED$CdbB7?LET<<=JBC@=b*_24BE?G@C8NA264GO/@078B[RCpQD7MD@9:rAlR3=>HMSGj,BK63DEDTdE>4U3>`BPCKKRFpE;BA8H^1OE.VHBFEC>E3MT=K9A>UUEDI(S0\BX>,G4CW\q7N79`G@0CPK2E-@JOE;G(.7VO=E8q8K`H[AiM?t?3d[8HFK_:JOHA8OJaCADKe=\6D;X`<5;>8NIA4?^LI1L>=MM?PO=RVBH8nG8HGMCXA9UTJEP&J9P=8;=EF>OJDPBA?AKFZP24E>GFL2ICS1aN@@5EC7;@;7Ae??M$-W7C`L\^F8KTD<.^=O9?>IGIJBQ:>UEN>9J/7=(3:B37<@>;B6=E7CDG82L_5<6P7EE,,B>GH^XLjI.MBG@CsJC:CFDP>B6-CBRJMCOBH;BB7UL==FG"gG;E>N9OIVE`3:_FL1CIC=Z1Me8HEHL/V=OO1HC7CHAjF];F76?7B]0U;@G4H@JB7GJNIGSN4;7KMP7NI9QIL@AF9NSaB5C=D,H?M@;@:GC@WIXY12?@C6Q@SG?_UpWQ8eN\K]IOB?`bdOI;V9j@AjEV*?qM0N<:<:c;VP9PQ8=%NOM8BVQ\):K^@RCX9u_=88F;^Vc6L@7WgPImI;9WFN?b#q)^EIxY6HIB:bg#CUEOKG6X9DO2EW;0IRYJS`:8[<%FFCY*9_ 9V,KJ%AYB0;+ElPK:>D@9LRYPPcX`:^:*'=H`[lBgo^2D?O`M`p|9EP>ZQ1BF:>U%@OB}F0C?G=iB24OFHECS@PYo8A?/?IPU8VrF?X4L]SM7I@RLesc?[Q<,8P^9S[SVJU,aK4FFIJ:@7DNBF%+I>U[YB3:L@UK@DB:[R3=R;MC1BA1L6VD0<:C7T7XD;7J_M_C?KEN8;LB6LS6CGB6A5HNP3GWF5J>C-@V38CX~=T`i;=N?=C-L0(MEFCX9d)+y29I&>LW:II(C]=O?P9E]{DFO?US]K==QTqNE`SKK;AiPpHH94:N^MnQ`CRIC88S={8R>HYQ]ADECLTT=6OxEM:lB;oKEVWh9GCSmFO;HNMHRP4QB{BMXX;>TgOE1Ce[GQKodMdF?DIWUw4@@B93i:VHshCifNBXQDTZF>OKJ<>nK4QG@rbKPQCBH9MOF@DS4K@C;JVHljC\C>AMXXRUN@EMu\8:JdCG:6Al]EKUIT`=O=ACDB;JFKC8SeJ[ETODGN=LIUiJvJ<[TnLN>FQFDN.bEJWS=QBB=cAWbLTI<*KBW>CED3]?MOC;NAK5@YG9@9:E?ACM\OB4VJAKHH;N>BI=C@52IM:IPMACcJEX9ZGS`\`UUBEEhhPLO>9C@0@I8^AY@@?WOF~><6FLQ@G:IH2I]KFPAXCD$DR:^L;;V?[Q9DCJDIX2GPaEPCI9PELHt^ICA0>Lb?@YEHI@N_QPp>KG`^aOJiVFNE9AIFIVrj:j^^C-JBSD]Nr%mcRDF8QZfAIo/VV:QY?NVk@Db>Z^i_jj7PGcUq=[SrxoDjUeL_HQD`OUthJDW^C]YO5TTIUHj\<7UTW_MHqBGVSKXSQ9dG`zgJ9^KEZh>HTc_gQc?:0RLZgVMqrQI]c\TnGqF_GuXJLS;YU^Ff@FMdE_Ea\UYYD7aRLgvW?[NrQRSfMUBKR[8IDGU[d\S6lRnHo?YnX~64G]1n@]LYx,9ce|^]dFDaJbVaSD[l^8a99aUTUH0BDJ@n@CEQ;6S95]ki1aIPBK7Z6IR_IY=8Ha^IjcfS^lID>^TO?=U6K-S\z>\Y`fuoF_kNaz?>BAH=4J?<;=?-FAABB8:8=9G;>7?<8B?F=ABI?HR6?<;1@CD18B=6661==?'<89?A;E=8:?8A@5;6B:=4K?)NF8HBC8D>OC?H<@B>HABBG3F?:;FE=:@3B.GA:AC87-<><2?H;=?==3OA@ECC3CM<9823C:9;2;=A8CKF==99>L@D@C?5M1>62:=AA->42I;=I>>?/7@A;?A2E5267?;<88@FCI3@>:28=@3?<8I>9>>669;DA>7NBC0H8@?>@7H93B;;6555:MKK@EGG1KE8(?F9A8FJH83=)2>HC8/@<5JE83COPHK1hCL5EL@VFf@?4HKI?V39SUE7X5Q.8?hLCTLN]@kG;\A=DW.C><%]2DeCCLH]>aO@HB1L?>C]>8WkJDI2H>SFUbk:5M=?nRC;LM<>N@C>NNZNRPBWJL<:6CW7aJF?@KOaUGP?E:7J9@YYP9@@U9YOb>FNSDUQDPdGCOUX5JOICA8/lGQ>JCINT[JuHZZ;;kFLp6cN30cL[C?QlGG<@FTF8L9COoEMc)JLL>DRTDO3F`3LJ>rSobN@OyT\NC<@OG<8EI2FH8b=eOm07B?9U2Q=X\9IYOJGd9RC0;AK/5@9IG*EPh2L:6C46=,64;EG=BD6>C93GI*N[BH>;4>52A7J7AE74W<:>6DYGU<3ALEBDHBFG"52EJ/A%OEBD5?@A:3D?K5@/K-K<[8?H9?N2DW@GD=?J2>D52@;MNJ6J99FGKFC925\N;@P:3=GY!-FCU>5/L=PL:7P;36K=29K:64=BB7=BRA_1?A./FI@I8;9EC8Y=86F@@?F0V3?G9?b50:@KJDRF@DH7@P156@>7?ED:D@DMD<1B+?GEXCIK=:I:PGFFQ@A493KB:GB[PKNB<7@KTJG9J7/P=;C;<2JUUDJ@9LYUNBI8+NT63I9;HA7I@B;E@XL7W?HCIL:KMATC:V:DZ@z[UD6.@T?X5=BW6=IqLZC2A=L9FJ:]I4TCIEPD_DM/O@GPKD88=E]?K5OEORN:OFYFHO1@bpIIBM;:VP6@^FNCbFEWU:dFQBM5J_]9SVKUE5C>P^F8DNJI9KK=F=KGO=LSC^EMg>K8WR3TIRLC1qVULQSHO^6VR:TdDJCQRL9x0g;RFGUBOWXUAHdaI<_LHTQe99Y>?KNSGPSNpSYZ\HRq`IfKVMElN[M&,B>);:8*;,6B5:67.7;6?22,66,3.:D@+26A?/95D74G5/5?:2.9:-84A6%4<4)1Q7A52-645=C/>H7;<:A+:L409-D,>22.)8+=1;8*2:/=,?A.6#&::H0)836+=H;+IC.4C'8%/@&+;AD4)%40;<-66-*':!7#$J*5@/55.=4$%56I??0:'=/1?558*?15;6251//9,?!33AN'.5@2>94BBB5-+@848.&G.?0"B/;/+<>83?D+7E>@=7+;)?6/E/;6@77/I#11*;3;2?/A>-8+3 ;RFB=>6?PJAFRB'KN;6j@ZJJC4F:26>2E;^@EA3>:"Q<9@UE_QIA2[;SCL?TSJEt)BS2G6CL1N@/: NBAW2=ML12jIA)EEB5CM<@HI;PL2J:RX6LI24FT]G5?;H?;?(cFC@F?(KIh29*AY5;XD*@@Y?:oT>5E=cB5P=T[V09OGKGTDEDE;-H^I*8@+YgA4HI5hL0@WT0VOAX:6R8:KKBBERF+85P?S?E>FK>JBgO@HIe4C&F#(ZON?F43I0`?K;CIR5T3K1A25@}IIX[1KJDJ1I?JM0;MGX0\7vRW@@:GQDNSB*M;NF5SKm@n;AG4>b-v@I;=DRBCN%Wk:^FS]:I;=:@A=d;I2eWCN-GJF8QB>9^;L;KuM5=L5RS>zD/CR9S:=?PhPHE?8S*PS;@8TQ6EWkBE>QZ_FHMOY6;G[U>\lPLLEJI8A?\DCS:ZPMJD?=?YKY;?H\@9jrEAdXGO:FhV[CKU;?TZFl:aOAfV0ULGR_\LDGKXKWHHIuFEiA7859\FD:;KEKIRE99M`YWASLEK`QbR^MNN7FRIi8VDEOTM=^DR?Ob8RVMIQO(D6_p/F,J5AE\7]xPP=9/DE:2=EFC:CUAR;B:AHVInbL<)&PS9B547WM55aNK)J@B;%RRWGkD@4T?8=G,68JdDLM8K+-;HEY@HND*95LfS_AT+LMM3>E91Lh)<@L+K47;a)[OLA15@.DFC807IEY@;]Yl_DF]=GA?I4(P^EmFUGRAa[KQL]?-A4KCH[AUTk<6NAGMUAH4<'TTRP@F@'AHKWOmIL86ET[;S?>AR:E?EEIJVLHRZ4Z=HNQJ[V_RZLQMkSR;OL?GMGjHCIK]\>7:FFZCNSNPN@xLIQ>\?\FSabAf4XiI:FCHK0j?OA`E;R9JIh^GBCD4.HL=9?iUMBT[B@\NYBHNFRJY\UTKCMD5DIg;JJJB8'LN;?=MBONQUEiUYGTPMVPAI5N>LDH&bY=d7GCGM_9^?_G3DPY@LKW@6hApDLEAB@>2Pg_[BM@KgJy:P]0B>QSiUEOTSK?FMIJ(FH5UOdOQ=_2A5?2?M`3>N3F>HO,>gPa]IOYP]]LO=bqZTJU`BMiQWMKR>`VRM=NDTBHAW5RrUxJK:G6OLRbV_B8IGPLH@KNEW4R`lgODbBI=TK\UXFDKIKKTOVW=SRHFGA?RNB;I=E?KgQT>}J?LHWAQ9`WKHX@Hb@EWAS;ZAiNRQZBeG_:YTYmOT6AT`NKVAdELHjPJQZMH`ViqEgA\[X:jF|N>R9ANXJJHDH=GYRO`CI>FG?:MPKZDIZLKYm4NWF;F[PETV7GVB==ZKA:N:AQOCSGLG.Q@7P]PCnXoEUI9EFiI\YJVVf;QFOMFC@IWHi_;JPZdT]j)NGC\K>[lFgB5NCaEP6FPDZQCIHX;cWE=Q=kS8Z_JM9o@WRDWYMIVbVJdQ:mRVeWx:kSrOTDiQBE<9NYQ29^U:K:U)TLLsMQ:B\IS}OT@?`;MROLJJbU;SCJ?28U[T:J@GL>d88r:IUTWvbDL||Bj^HEXEDd;EI9Kc7OT@NMSHKUNMOH5U/eC^Oa^=;73@OYKeOE{JJMD\?'EOFK]ZNB>w?H4TkD24S2+M+7;FBCUNLR92*F8KCM2AF0aT0KVAS@u@[OM7EFNEj_RZKC9CFA=AF%@TFVSMI)`lO7@\H9=U4HQ:/^?0;+QSQ\8`<8?V9jKB==DTCI[;ODWBB>=Q3n5C<.]3^@QVG8LOBG9N=JG6ghA=Y>T<@5qEPI?@3I1NTP\05K42j6DGF=P?3=5.W5D30>069_CF>VJ;RDJL;JYCRYJRf_EDI;?A'P5H@5B;E7E=]H]9ND3?DIXK=UPHN5@4rX@TK1D<;m:9?JAe@:D1a9JFBD=F>CI3>8>FY?B:4@9DK46?5=B,4/(D027M29H:+@VJ=K1HVNG36GB0D?=B1?67IC;?I:_CG<@:Q2GFC:L*FFIDINF;ICA5@6K+0+EATF2=;CbH(K=*0;BL.P4A;E200-H'$9B?!AJD4/:32<9C249=C1;P@/@-MCSH:V3@F3K95/+1N5.40@>]4@>705O-M9F(>F=<=O*@)50.A;DKT:@L7I09>8J+y79&RQB=<20NOCR8295587I93K5C4E-'2LA=05707AHK.361.6=36:A&E9KBK):%;F!(BT,C=4I9<7,24<2BI@;+@L)6K6PV4IITa@WVWQC>FOO_ejPtUUA>QT}DyYU?@R:f5S9Db@gUB](pO[ZSvpa3?0Ym]VRbAW4rbtXnd]B'7=\*gmRVCs=J8 H@fd4AdROUQQmp?;ffhICaocJ[\bOSi]`:\OduMMJ=nWbHXlOjCm9SLMM_SROb_3iv.TIFEMu]b>Hl[YJVB]JJpX\7eQgsjVS\\~T@LQLT]T]`Qn9FF90LW6[Vi\LIEDb?te:qj?1_Qx'6D`UFWDXbFtS>^k,@5.N4\NEHH\GaT@LV"`.P[CEO7X]PGhAb7=GT[=?3>U9AKD:ID:H@R>RI:XCB=-BF[XdHMgU7:bOUS<2Q=7<;=RSD7AFMCL\=;=DFfvW(7>GT.Q*GE>;RR_=PYE[Y<[/M/Q;Sq?{1E5H1Q?GBPJ>xLKJN2LRCKbAU@IB5JANB..G>09S?:zTG(=>E;/>9=63q6|54G;B5[BHd>K=P9VH>A-IDkO=:6?]D527;g\e=HRW6;N`j=3JAK<9LV;[>4--3aFONT(@YA;@F<>4aHk@kR7pK]=KHRCOPBU`KWQJISXJN[KcdLC_LSROS_ZVIHELHWOCLQQd=QCR^DFOASRWdJPMFTBD:COC@LKNQQFGfJKKGQYQXJL@KSIAFuC]L@EDKFFHNIKffJFOIN^LJURJRFHSGFY@XPW`DH@ABBEI?R;T<@[DFCFHNN\CT[PJHNjO@J>APeYRUHIVibUSNNBMEGFnHZFGLDYDWD@\HK5h>LI_SSUSI>EFTaSDV:F>>E:MYfxQFPO_8H^XZINVAXRCDDNF`CHDPJbI^?LSRIEATFk^pTQoO`Y=^`SGK?TVR~KPl1NUST_OkB'aN;qK['PzEO7XZ`vo7^Qa\xWyBi[g<@_wg+>;~Il\fMP=hic=cPgfVNNatiASs]n}j6TQmW6Us4JFQXDIN=B><_HfAUcX8Z_aWV]53TSN.CAaCXZ7JRUYBQBAS?5aEP3@06>7>aEIXGN8NBrLJSX8dJ,mKMJMK>VDSUBYFhA#UCWY4%LER+FX;R'JPKQC[K<7IGFV],H2VHVQ>E78QBPA)J8R5NRJ[DHR43FSP?8PE.EXS8Q DCL_\KA6GGZY]M@]>RL=DK5W;Q6uECO@TUFAE`LER:FBRK6MqO=G?RRH`^B`ZfMCK^AJA\SROHOKEc\NUH3RLH=7MJRHJZLKJSQOVHXEVDRKO:_Jk;F>OUSK\9M3T\KclK[PTCJ^KeODP[JOAD?hXE>{BGC_RL?YcW\F;PF=BQ7hPI\WHEPFEAdSZNEsBGJR;TYGYfMC[eDBb9SXDP9:<=7NLEIH6VMZ72UYW^hKSkOOIHD=?FQAFCTR?HWHHaRANbO]NDFXI`ZbqEM=?n<=KPY]RVRRJTV;eeCSVYuKL?LOQFUJ5I;D[H>Ma^@DWXWOO7{NPPZ9DT;d]QPSCRHQMbeWdS]2GbVW7]jRQXIF]cYMsnz^kE^OQVINShL]k;RKFUSfZBRWPB`NcrOMLAVC7bNNHqT:XP@RHG^nFKG~BD[`Y|PWZLHJWYaaN\WLXeEHfRfgGb[bHZe`Y;>OOAMx93[Ffy?ACSaOUP~=gqDdYHgCOUT\@ODdfXeXm=XSB`cwO=\SHaVLNVGF?>M[7GLG;DTOgMeXWKSC5MIRvQXY@;QQ3M[G^VG]0\A>H^iVV[NSTWbE.YGYYFEHJWLUITU8G>GLmA>fLID:K^[==GSG?[AG8GbLPLITRC]IeuWMXRViDOKH>aDQa@9BWKxH\EYK9cJBT7OUIH3FUCJU7E5PUH34MYUFOjOQ5/QGNXQ;<^BwLbO8%7C!DBCEIYPG3M_KQQSRL;=DWPIM-TB>E`Q:PZBNF>VLTF?E-YAB?D*6SPGS>A=QH7SGWI/YI>IICM?JZBQ[=U?GLtEQ5mRB7AR@^Cg5@4BGEOA[V=^]DZ@c0Z;\OCCUNIHF=JN@;:/EBDMMA\\@cBQP;[-FZLSN1KQSUM7TK@^DUEbKaNTcRMPV/=IYHCpA@0IuE]>>ONMS5O^VMFViQ\^YG[3:B\A>VCoGG7@GMaOV9S=6-9q?2KVJR]ENMFA9LDV@H?RmJZb[hTN=AG_SHaD[Yj<=^KGKVCM3aB>YXG;L7D@EZYDGJDOPE0IQKI;YSZI6L[OJNF:=ICCAJDG=RH@NOOGLM>cWABEIZ=JACIDSHG`?ZPHJ=8=ES?YDHP@O@|XBF<;E>7=_YYR;<f\EcI7F29DHp=`c@VG0I[OS@HJ8?3HWcVSC??Q[@UPO7Q8O:\WJ<=MUT;Y/EHLFCPFoz>TrWM6AN>HWFEC7BVIpHDKHbZPbD?AGL=6IOMTY9WNNQlLkicAD\wGSa;YQFQXMfEBBTY=J=QW2G][5TK=FKD9W6[TmzUzPDMH@MAnS=Z2lMVV[DNRRSJSCiDVPS9AF1CHSOB;dTr<|_\^FSLR<=ROMh>OaP9WoChMA8?;DJGDEV=YIUUb?CVGTVEMHNGMD<[n]DHPdJWHQeFTWPHGW^eIONIO?AM[J]Z@YZBCWI>3FEcO60JT00BTD:@AAGSQX?NCCFD=O??4@O?188L6*FB36?]I\1BVIFH?FFE3?aE:;O7H_V/9L7I588CHFTP8EM;g]3>&7=5@OJJ\I?IK8PHK>?HH;C=?BF1f4=P94C6=;BKLJGa:[K=M8Q;R,ZIHPBAB8FI?3:BMPI.BL2?>B:?=6:6=1M49<4\U@PI=>UG[@;6J?ZIB0A8MXC7C*2L4M:)APAC>5T+>@7G?1?ML5BO4C30ST[s.HSBSYNCj]VHI5P,GOOVU5E7HI=;2TGHVH?=E;P<;FZNJXJ?TZ]CARB:RNB>>GH[pOHD4?O<=9G9GA=LB;4?A4i<6G=>JH:[L6=EYaa6QZjC@APL:d9D[/]S?IHY@2SDFBQWTZG@ECRK7KRROdW^E5S`E7L0me<5_?=KQAf!KZJ@9MHSWGaNODF8?\BJHGHLQCN9T>61?1VRDAD`TOUa9RN>:QLIFP5GLEI47DESc6UDUMK.BV14HWC:^;KWGGF4@AM?N:Z^C\JEEJT6@YIRRMAPMKGQHJJAHKBvNR@88=GC>H0DdTEODEA@HY:TJGQ9QZ?A^MW;W:?=^EFUR9TUDFGXJ=3NS:G;N>8L`W=KGGSH4aNMZ@C9RZDVId9OgD9X?LJ@WGM>HPQ:J@<:VOS:RMNaGct;8YB]VQ?BID?3CLOHS>uMGBLIZHTHCIJ;Ay86SMJGG@MQb8]L?I5H{T^LMB;=JVE\TXStMH\I2BO~JS]MI6LA@DK69M`FESBL?SUHHc.T8>J]:=RA>XUjVJvPS;CQUHLLI3@QWXJC?:PFMCzW:IMPDFrJ]HC:M\S^4@]U7:NM?KNK;TEK@a~DEDP@I8ARDSwV?MDG?IBL>KARI?E@L_HAFR6GHGPF994DC?QMF[3JM>7QDUEIF8=iq;HQ>M@=FZAC?KFRDDGPF7E>GEBMZE6;EL>M9S>_QEBMcGRL9AhK1/ZODX2uBGUQEfJDEEQIM_:gI:\N==FBCK?[BNHU7JAI{J9P>FUsPsRAHT>JYUDrf78K9==?I9N8I8nVMND=D=CA(HCVH3qG=rO?T3@J:[BJXjL/5=XOfVC[I3ZFQNA9Q?K.NFPJ=FAJI/XERXE3a;M=>J'):CE99A>DP@I``BKQ?<\<\VHIFI\JKTS7_HAVCC2XQBLV;FHA8N@E.CET>9F8YhlST(Y=?H$?S>@3WK+H`SQKDDEV?3LD6II]p9\JPWMCPBPLFM9LBSL72;KN>JG?L88^KFP[tBMY;R_\E5/GcIQp=5U?5H)HEWUTJBm5BHj-O+H?EMVBKF1\IETQ:Z6VPY6FM<JPVf6PHICCF@UMo`7Z>885F830IX*d<,GK4BD9;96UXAOH=U>2>W[gEMNjHC=?Q?U?A?CFNEMf_1FPJHHGS2`PDM]VI4MO;+62HK,,F@Y:A;EG\>9d?9mPD7J8B]LAJUF3`F0=ZmY=IUX8DC?;RK?_R5lAW?L@1M7TJJ]QP:F==1+WB4>.6@DI9?>U7GQ=D=78w>.IEQ+W?=X94H/@I??G>B632@M=C@0P<*AKAG4PE@ZMJ6]MQD?>E0DAPJB=SB:CGAXE*I<<:\H@aFGXH9DQ8bNUJL:ISQ@VGZDSAvK:YOLWq^NF>HEObSYYJaLIQ`QZL\WKduIGECFKENV7eKWMNGT?JNUVOHVKHJ\GSDjP`WT[E^`CCTF>VDUQMST<]UJXNa]VGVViVDCCEjTHRD]KBOLe:HE?D:E=AJIRM@DjFHCtVVHZda?KRFHQ9JN\9LQLfW1\QBICFBSH>OUOMfI1CW87OFLFvJBR'=HV;L=HE>Pi?;A=UD<:IGH1H>LjA4LJ*ECQFMJWLATFd91HDIpPR.@>UMZ6=DM:7AK2eQ7(HjAI:GFKHAJSEEQ\S@VI@r@NJJAPKYOFEAMM26I{TOEV4:MUJM1?hJ:F?HA5S:QF-4:NAEX9Vw*JEKf?RJ_DL8CI=HATLiFJA2AFPEHFcS>ROR?]H?xLEGK;OfNI[[O<]?NQ=F7M?ZzsOGJGBdJ>J3@2G}]MGG]PVMWGAHR3=YM<9NC8OJIQA0LDIZ4X8OE:Xcc5P8Q6`8Y9NVB@RfPVfQRb<4K\@:ECQK7S6<;A.TM>?ABfPD[=:5Xz?RZ5NOL6>EN,d[FPC?H`_6;P?5G]6QRB7H|R[C7JCR6KW1C[DBAR:^aU?F=BIF.A:M9KDYEANOaY8HHGR~IkQiAM1BQD[H`UMHTKV7CFZHQMAO1N;T6PGTBL8JOCF3NPMPK:TB]ME[ITEKVC=HbHl>O-J?38?JIUNYJ+:HDWJb[NG)CJI7^:F2HO0@IaYFo9BMScjN4R/C9JA,<]@2mARV>E>CM[_JOPHVlCICMSBoGKGUJPIHPLUrMLDFMDMMOJaLI\PLH]G[ZOR9[AI@??KS\?\?ADuFLLKLMG?CM?dWF?FCxzQCb6EHjKBGKCEOCN>mmVY>>FEGGAQ3aiaMMPT>^rKj]WOOVQCQRJQ>DGKUJGJHLsJ[UOC?ENVMRFSS\EMVMEDA{J@ITJGKGVPL9K`JN@HK7aGoTK>EM`NH?JXD>DXKDa=NOLEEDPCC?;CCLG>>AJAbHtLPJ=RKfM=?D7H>J:AQWOiFnQPBRSDVNvGpNB=pODJ0SDiGYH:?IPG?GRKW>l=9`R;e:XQPGLJd?GPDEe_DK6BTL>OFM>^@FG@>lLL?A5GTEFJ@PMGLUDDN?94?7KGOCT_HX[LNFEDB\GEFP+?B9I_JGGm?7LIM4F:CXA?RLN3@GPIHb_EsCPDAF==M1>BDEDUOfIEHELFKRZf@Me:QKSFFGW:DZV|`JfG~NVY8rXJJFJIMMP[SND^BW`s;NF>DYBHKDBKJkKTQYVFIQKrN:]JLVPKMQCVSv;]J=N>aHDN>C;@E?@LEYGAVLFi;HEQVjU6UOD6}g/AGWC>>Ky9CShELUCEA7OJ8OvUZAD;M;RNGKT@J^8?FTDy]PGH=I;DZ8@KOGLEaoOLOW@DAXI<:VPJ::J`CS?\SAS@HHSE:}E=COFRRZFKKRAMFV=KJLKGDDX9SUFKYFkfVpfDJEA:JB:[\UW=j>UEEGFW<8UCD>AoF:SG=GGj]QGGaWBK5_mi\MBPWFF{_wCA7`PTHa9_h=V]RBdNWN`NMDYSAANHTQU=LIkRXNHL[XO;JLF/EFB:A(U8IRP]OkAfJ;PQ^AGH4HL7eGRlOR>EECiLVGLNYQ:OGKFOP[CFI:I]@3I9Z[=wDDY\KMRC[M'D[@MP@8NYBO>ADAX9L:]E=JU?H[7KS7KbTMTLcaNGQbVE,THQ]X66gfHEKAU6C?K8E96?@>BMUOB>XQV;FHJJS6=@PhX5TE0@1@MIn8_P7>;s-BLGFc8<8Py3=N?7C&F@RU080U8F)HP43IQN98J7DA*BNG6K+B9009UUY^5IW.:JB[MCAK0>B@IgQH=),;F16IJG0cTE-_578GFb<2hc?AnH0IJ4<6T)=Js'X5+<8BRM:9IVC5A/=+>65;D9?MAV0?fMFI8RI@36KG=>ID?G(L4+0*B@L<6?HpBEPN?.D;[;EQ8,EMA1U4:G9&BGIGW9UTLF<]GP;SHqmVDKR`_LTEkZJPIg;GN\+BT=SGV@ZJdMQT/n-LoKQrHxSO)hPL'R"5IfiYTPNY@IRGUF:e0]kRFIl`Mj_=BP^kJSMTkEE>ZA7/'[QYR ;biCcu>JNgb>EcCNOV>Q2hJFLLA~/FQJVO'kGag]YPKI;L1;GR]XPA=@KANB^Q[R=8HL_^Rnis-;n>PPPMgI=iBlKkiHSO`i(2bN7l0\PV/sJgRo`GpXOPEtd2JTEYUV*h>]G0=DT9ERIBZir4YU|2GF~?SDHgRXLv|nC3HV6AShF6?lbPKNLoec:PLHRBDUHoT1?W~>bh];rDgIO.Qv16^AJ[+X^]U[KQ`OZ0F/(\@E90OKRihC8aU'NOGcHYJsI5@`LA>MLIANV{=IN>F?AiSzRIEINeBDxCLKGbFQJO>EQC~MFFRJM}eXBCVSBd>:AZIfZZOPF_LNITSuWA2c]QJQWaHYH]AXLRkEEOI]^>dRQOQJWSSD^MYKFQ_D:7GVFa^WC:?S;PMiD?Z[w-ThSIBFA6"Fj-6>E4sK38SBOGb79D*7IFTPBH[@1*P6UG0KHBI;QdAOM<7G?>WV0B8@JUA<3CRZNPP;D@RLGK:7MF@H^>GgOJK0VXNEDFDG(1?_`7A*jFW9A8R->9;ZOG*:?-VO8LA)3bM8YiS7A@?X;d=QOK=XF4P697??JHNMW?\@:9AB>JD0=?U>FRCZ@.EUW3=U0>9Vk?O8HC7:-L>_CGX982SUVB;AJ7-ERYL_HRz7DGL#6VMAbB3KH>9CEI58BBXJ&0M6G[a`M>HTD8V(]E:TD8PAnGFVrJ]OR9B?KL1>G]GS=SB;<5.?hZZLL)=H69RD>?TEDBEkX?H@jFp:/-MUEC6FCI74VZaUK0DjID0:NaA4BN2B4IL9IZPJ>UD=]H<:JG>HBJ4Z8XCU[;FSJJ3=9DP2HJHJbLBABA3C2>PM>J2BJTH@HG^A7TI?WP@AFhfNMG>D;D=YlMITlc3LBA246NRHIUGJ54AR8C3?;UEWW^7c1A>B^g9:HS[B544ABP6@@i?U1;@2/PEF-:]CIM/?E5<8@LVB;N@C7JII?LCp[?AF=4SR86L?BABsJCW\CbYJ?>_[YQMP4B?NPL:8?=5>X?PGD/]>E8PB06:NAE;ONIU=?L9<>DG6M7VGN]B^ISVIF>8N;L`_FBWMFHK@;IEJiO??w6XBJ@DL8@6JD`=KJ@;W9D0@7J@vFEL>Xs?JSDFrSEMUV4/GB49gQ@@9e:D5o=E8][NXEL;I9CYGWLI5?8_=HAO@GC?BUJC`HV;G>IB7?BNOM:OX8CTMRZ[=YLGWRLaOw-5GK+rRIJC`OLTa@IARk@UF8c;EJCBFA5O-NCkWN=`VG<;@_8?f5L`GKDE5dI8YT@5GIbE@MA22HC_C,;Ea6:9/6j~KJI6T2TEJ`PS[JCJ)KD67HcEECNOPeNHCOO8AMLN7BDVGZATLAOKc6VE+M->I$G^8aFKa6ZgP:Wx=b;FVl{_M67&NGNAPU_@UY9Bc10R@7H2[_9;FF5LGTH[711UDaLVSJG+HMRe9MRHJJJY6DQu>NeSYL]KM<>2lCpcVD9dSNLi=AQdUS\^bKJ<^^HN[GNYC^u_DFL`jGjYkDU\U_`gE>aPjLMMJ]QMjl>hQUE^`g`Bpd8KOIIHK[vBWI_IE6ZLX6G`=Af;JRNRGN5PMRV1NOaRPV\LNCV`^QOJKX_^OSUBSNOG^DQWEYqZXPNO;QHLO>YTOXHLQa8JVS]OLiZKH=LVF<5hHePVRWTZY\gaZLt8QSLLf+NN1UMDZe8oAg/bMLeJSoSQMIPSSsOJPfM`\NM`SYa`[nL4GU[N^SdVWRT@EakRX_OJL^jOcT=LQSL^EKL7FC;5dZKG]IASaE[dT@R9@iBSTFDk449^O+XOQHx8NZK>OAWCEY8,=Z4@YRN2YRBGca5ILQ3`FcO>blL{qQ\I\M7GQN:R^>L^P>VC=G4?VR@XJHMLABCcN/DYK8K/T~[M=>MmBLY8?FJ`BGi?0KKgH<8US[RBLoP=3Ee9a27IXCm@G07XQEDQRCALKV3M[xID=CKLNg>KJ1K>;DPCEXHLi[C9(G?hA>F4QNKHPo.DAH4F1FGH@6HH?8ILX4CNMBW7&HMWPZPO?]V7OCeUWSZFT@I0PpTT:8FD0hOBLgC>MXQV@ANJP[5M?>VVK8Qi?J8??GKE;=:[IP/06FG8MOE@;BVBLH^V?SK4>6L?^DFCLJR]NGyZOZN?PA(F38K/<3M/4@'??A<>5O-GO\j@6DR,RBS1?4QDhD?DB=GC4GQcQ,H`@B#R8G.L@T?4Y7J6CAg;B;AM:UA,HDE@GS;uw;Q9jA43G+.2O/CI8P%=;0Lh?>EEP/@B_W?)N(6BS:UNA1;J0>EKNN'd>O9CBIOCGB;;8EUG>V;&$:Gd8;;T>M1FF@@T<^J.GCNSEDP,ScRK<7/B6;A;@5\U?/G8ICQdCG?#GQ6R8@<8JF5T;I>ME<I,7GBIC;IQaGI-NGB"QUQ:>C-F?E:L9SP=IV>U6G?=3A]Z5D=;W>WKTQOICZV0:`J]AVkOXLE_UMF?]490?PiEG6?\(AWOo,HMjNZOR8MKCX<7RB@NXXa]5gE_LNNNCBQCG;}GYb8GC'J^GD5LJ4CRiDTb\^BRnPJKFz31rZ=I=CCFMC:KRYaV7;;|AvW1CF@;aMXENSX`NgyaTFZNJKR^T_bLJF[xYOGU7OfNCRIBoRO?AkAB8ly=YL9Kf;\[RBS@TJYHW?R*\hDfGAZ[[U9KBf9WDDBH?Ng}EhCMNB`~>L9WV:bRqN7S9HLOJR2jENJl2SAF\)R.IaNEF^W@AHN8EK^A:/QZW73aKHc^?2@N;6RJ?*K7[FR)SUB`LG3G1BL>TYO?;5Z]TTS9vHFHfEA8WFIBX:Fw8P5yMWL7E:JH6QIV?J:G42I5[0N;Q?T:JMBM<UF7I=CI9w=>;;FMTGW<>^I>EDR`>45O[GEJ]EB<;LeC1/$K;NM;i=K77BHHA/36=C@iMRF#9JCG@M?G>F@\GO4DPJ03,mPA6N96eYbW)=4$*>IG:z=XW9?@U@>>?JP89/=\C;UK;H56;;cBA1HJ3NEU[+AgJJB<@:LB1MA@=;2H>B8B149V8I)BjaWD?BrEP\c@>K@TRQR>MPcgJNQNmMB>,NDH?NU`CW^a\FYdVlKCPPrJUXP4XD_NTBNEQ^KBFNPBH5K>qQ)ME,FJZWdP@SILL?1L@4_]T>JVFZ`:^8\iI7JXGa?I<.kA;dI:SHEHJdqKh0G?48ZkBHIH]C4X2Y(;Zzf:>ACE)LC?L/HGaY0DjJQNSDUE66QG2LJNTlXn?]DIZ]{,8J7D?IrPIUSkFP6>N?RCGOJL;PLU<6MPPD.FPb&2YMh?KESHFcY;S'EQ_fCU>?JBMa]?L?4CC`EWPX[*QLpD4@SN1<:D[B@;pDOGO>EA.ZTkCV?@U`Qa?KiZ?M6Dh9\aV4A4FIL6L\CCPNM`40A@NLY?9eZFcGG?ArbuP9SH3G:IFQUf=OE@`:b5?9==ObMSH^']aSCF8=CGeI=FDKDMCOIHIT8CGA]GIBCWVIXDC86XAK9@CJ@@_9Fe=:85AUvH@=8>IP[0S7@UV71CNb; B:B?`@?SFj@F?5HN5:ER9TLDEK@\R<2H5>E+D6HCL77YA7/tM8CUB+?wnE;4EI*:IG8BZYgIW+.cr2RIVTE@I@@A6TQe]4jR'SIGIA:NShmIh=K;H1EKBFeQFTFF8:CK=Bd?2Z8F7K[RJDM49@IBT<@G[>SKIjE[3,KJDH:^LL[A38MPGBDA48;.KRH=X@7MJ?/4GaN7A84KK=?7ZOgFP?KNQJAU:;5[>s@MPIfHQRg=BITEJ]2R>GHPKKH;N=Mxzo|}|ouw}{upu}zy}x{xg{cw}{qhg|{cx{}{o~~ukxkxqzo}|bz}~}}{{~r|yyvn|hzlwt|xxV}mzywyhnu~|zt~qv~z|{pw{^~etyvwy{~|tswr~y|r~|s~|}pyf}sg|mzy~wv|}v~~э}yr{shtqocyyz~vw}{~oxxr}uxzz~utp}|vy{r{}v|y}~{g{w{~~}xz|yy}vz{|~}{{~}{}}}wn|hz~w|qvtv|vyzz}zrqz{s}ystwzxquhmvv~w{xyo|sxo|oj|i~wyuzx|~sxs{z}zyr|{ow~|vf{yzn~tts}u|}ot{|}xz}~w~zyvttzwy{utryrtxx_~vngp|pz|T}`ru}}{|zs{fbu~wk|~}q~n~|`zt|znz|w|t{}oyu|r|~t~q~svz{ls~|p~|uq||q|~|wyl}~x{uuz||ww}jn|~v|{wtt|y{z~~~}{~~}~}{t}~~{~}~xywyz}x~wztgu{z|z~rz|~~y}vu~wt{syjuzt|vs|zf~q~}sw{zrhxyumut|w{ot|w{vt{w{ynuv~svxz|vwwu~vpzuzw~{{~g|y}}~|wt~xm{o|xwqzpu~||vvtxulzxuv}~p|t{tqt~zmx}~{|}{rwpz|tzzqxzj}~yw~}xr}}w~{n}~xuyw|~s~yozt{yts|qpt|sw~x{yap}{do{f}~y{}|r|ztwzwwyuzltvxess~~s~w~vz{y|qsxty}~z{r}z}yy{wq{|u|wvz{}x}~y|w~~n}z{{||}}{{xrmx}{x{}|}vty|{xxm|~~~w{x~suv~x}~~{i}}y{uxv{tyz|}xxq}r~}l{zrhz{r|v~|zxt~uz{}|~}tw~}wq|~~r|x{zw{wqnsyt}gw~z}~{v|zvw}}||}z}|}|ws}~p|{~||x~upur}xg~z{{{~}t}xx{ojw|lx}|{r{|~vnd{yxz|yxyty~yw{~{u}~~}|s{zv{x}}{z}|po~p}w|~z|yz}xzyx{z|u~uyyvwy~wyyy~s|}z{|v{vux~wxx~vv~~qy{~|xpkxs~z{}}zz}z}ws{uuzy}}xy{x}|}{|ovw~}m{}{v~oy||u{~~os~yx~p~vz}~xvp}~ltxpyr|vnp~}}y}p~~q~}~l}y|{y|pz~xl}xuvgt~|{~~w}{{~xzx{}{}}{|{}xwzsxx|}z}s|~}}t{~|{||y|x||{yz{y~rz}zzys}xrz~v~ov}}~wxzw~{}~}}|yw~|rtrwy~~~}{~x}}{{}{~{y{~w~xyy|~y~{|}~y}}yvzy|}yw}{y|s~~~{|uz{~{x~y}jy~z}y{~|x~}|s{|}wvv}uxz{xt}cxp}z~~~|p}r}xq~zyv}z{}~vv|x~wrxvpz}}{yt|w{xw}ww|}r|ttxnsyv{y`gi|tyyy||p|}x}unw{yntx{~uv~t|}z|uvwu~z{~~}n}zxz}zy}w}|}~s|y|p{{~}w~{|~x~}{}|~}x}~yv~}~n|v{}w~}~}{{uylz|y|}~z{~}}|wp{z{||}zxl|us|~vw}szvt}}z}{qy|}lu~}z|ryusxyz}r||s}y|u|u~sh}}{~z|s}ww{{{|}~ut~{yvnwyy||tv{x|w|xpw}tx~~{zvuvy~{vxqn|w}zr~}{~}{{x|w}}z}}qzuxv}|~zx||~qx~}{~{u|y}yt|~z{~}sxj~{uwx~}|w~}z{|l|{}uz}~~nvxuy}}t}}|~zp}su{~}{s{svpyru}rs{y~nu|~q{~px{~yw~~z{}{|nx{~qzy{qx}~t}z}|}}z~wtx~}q}tw{|zxryu|m}y{y}}{|~w~vx~mnw~s~~qo{}z}y{w}s~~|x~vk~tw~jt{w|s}~z|}}~}~~sz}~{szz~s~~|p}y~{{~~|r~{sm}n|~w~|vqyy~{o}v}}{{q~n~ttpz|uzxyjnuvq{uzhptq{~{towtƔ~}rw}{rw~}w}v|vrlw~~wvtur{yx}{xsx}rz}uĐ~qwzzti~w~t|t~wtx|~upx~pw~ys|||y|rxyxwzuz~zwvz~yun}|vznx{{Vpw{{|tJzt{c{vgpjigainsskg~VWiWgvqmphXdl{p~M|{~jwyd^uuspw~nzv{lquu{__iwtsuhqg~l|tgz~vvpzu:qv~qoltlxokgyqx{|i{~{|yxxvwvvsoxz~}|nw}yrxwyzrrv{{wpxmw||~yo~vtsw|~}|wsz}xvtv|uxy|tsvvxxvy`r}poxv~`|{{wy{rzzxo}v~~|x~}}tr~zp~jx~tuwk|tx|{e}qovt\uyyzutqzuy~~jun|kyvvzop||x{ep~xq~~|}{vn~}|ory}zyov|rus~t~~~x|v|{ty|t}x}yzyv}rzv~ux|~|su{xrvq|zt{sx~||{}rqyk}{upu|stssty~rzp{pxyt|lzyw\n{xz}x}uy{~~n|{t{|}n}y||w|~}xqyzu~m}vww|x|{ktxtttmiqsvszw}wzx|}xzy^}z{yy{zvoutixni}tbmfww{}}syppyvrr{}~jzg|~y|mm~~vxx}yrv}w{m{~}zye|xi~jsnwzi}u|w{yov~~p~uyzv~rzm}u{{{x~z}q}~{}~v~~xkzy~~s}ku|u~wzpv~w~{~~y{}|}z~{y|pw{v|x}|wuio{t}n~z|{u}z}u{~lu~}}y|zz~rrp~y~v|t~|}j|z}u{{|i|~p{tusu||~||wx}zlznx}zv|i~~tr~z~{i|{pt{zxm~|wtzz}uqtr{~zv}|r|{sr}}zxzxxxsx~o{y}vxp|l{z{~|ztxz}~|vwz{v~ozm~rs}yyqz|p~zuz|wuyxtx}rqu{x}~~y{o~yqs{{~{}wxsu|zz~}y~{x|~|}|~}t}vuyzxr|}~wty~}wrs|}~~~w}~w}||z||t}{wx{tg|~~y}|rps}{yphvu~zx{w}Ŏywswvwzvumzjnwq}zynq~phuvrfl}}p|xw{}sy|xy|w}|x{||xxywvyw~ngzu~}yxou}ysq}tur}}}~zrzoy{|t|rtxzvuxqkz{xpr{ts{hbzs~urr}~q|vq{u]n~z|sy{u|ow~wh{jp~yu}w{ks{{}lhy|twpxVn}dyzxvwt~n}~ww}s~vzz~vz|~owrq~ryz~}|wntrz{xrzt|{y{t|}x{~vyt}{kzryyq}|zx|tu{ws~{}~zw{|~f{yz{om~ywrq}{|xqks{snq}|v~zvl||wuhyr}{yqk~v}{ttr~s|}{v}zys~}{w}xrz~~{}|{yusysvyxrxy~qxsx{y|{z}|~|myz}}}||~x}wxzztyx{}u|}}|s{}zv}}{|z~}t{y{r||x~v{z{psaw}jj}|az~ph~~`_z}ut{unv|~}tcz^zZuu~r|tt}~vx}vvq~|uu|st}uv|x|~zz}w|zpzzq|xtyy~uz{~zzwu~ryz~{}~|x}~}~~~mwrz~wq~w~vx~~wvp||}}z}u{vo~zru}txyyz{|xxxy|y~u|||z~u||xuv{s}}t{ry~{zuy|vvnyu~{wv}|s}{|t|j~xuzwuz}mm~xwz~{~wzoznytz}}~ox}qxvcyyzq~n|}|~~v}vz}rzzytyy}s{{}zxsu~{~xw~}{y}zr}wzk|u~quh|syv{~xuzynw{{prztlt|{xt~ryzqymxz||wywc}urylxy}zz}p~rzs{{x}uwu~~zxqp~{w{{{ys~~~ju~t|y|{}ux{z~t~{|x}n|t{}}~qt|}~{zy|~|{}}~~}|}x|~}~z~{}~}yz}p}~||v~~~}||}t|wz~u|vo}yy{~o~{sr|ny|{x}z~~{wr}{wu~{w}~~|k~u]}ysz}rt||ltzx~{r{yu~zvyn}}}v~{x~x}|}~tyntwvy|vwzv}w~~lxxuy||m}{~xt|s|ky}ju|dv|w|{|zwqyiz|_{}˗npp~qwxu}rnzw|{}}m}~~~^{szz{~Ѹz~r|tzmopxxvz||uo|~up~st{{d|hxv~˒mn~~~~wuz}~}y|s|~wz|uxqw}|xw~zx~}yz~~zvy{~xy|n~dy}~n}uqxuyxwgiw~kz|hlmzr|mevxj~s||}~jncwyu}ztzs||w{ul}x{w|~}~|}yuuzz}}xz~x{wu}}zuuw{}yx|uz~ti~~z{u|tsubzul}}||sz~zw~x||vyppxwrx~jxvw{zp|znx||xv}xuvps~svgi|~~}{|zv|~{|m{y{~s~|sytusyrqvo{q{p~up{xx|{u}{|~}}tl}|~y|{u|}{ru}zz~}}nz}x~w}x|{~{ot|oz|r~vw}vzx{ww~w{s|~~ox~s~|wytz|~to|ww|{~}wzz{|{zhuxzw~}w~u|zwurx|x}|~v|{~r~ht{{}zy~|}gooxzl}x{tx}xhqi~nrxxxt{xqt~{py|r}jw~yx~{rw|}|x|~|{}}~}xzx{{z{yx~~xw|}y~}}}}v}w{~yzw~uv|y~wr{|yyr~rqy{~~~~pzv}sst{{~{zz}r|yyzyuzq~u}}y~yy|vyvtuw~~r{}t}xszyvy}zzv{{}{v|swx~v|{{p{|~|v~uuyuyxy}ovu|{}n{zyv{}}}|t}}t|uysp|}{|q~wtz~}ztvt}}~uq{zxqtwt{c|~wvx~ziqx{nz{r{xy|c|}~{~zfu}ux{}{zp}vzzxo}qu|~zq|~qj}uwwrt||~xv{zzi|~x~}~pw~yyyy|vqr|{uy{s{}rzq~{{yx{yj|vzx}iyywm}~zwg~x}qnvuqyvozv~k{|ts}xzdwgx|y~jxnw{~|~|wy|~x|}~t}wvxz~y~|n{itxy~xuuwy~p~~}lz}swzx}votqzr~m{ws|}x||{j|y~~sxy{u{|wz{qsw~uyk{zy}wrvju{zx|{vzz|yp~~sz|y}t}z|myg{}vu}t}{~y|z|yuzpwqyvo|||oysuk{}sn~n{yZtzw}}||{{q{xm}twnc|syzya{mys}xi{~~~yx}q~v{rz{~yv{y}sxy~n|{}z~vqt{tzu}~w}x{}vtwy{~{yv|{w{vwmo|}txrv{~u{o{}}r}zq}v~w~hum{~zy_xvrpnz{xzw~yɇfhxzozx~]k~{n}|mb~skyizxmex~wo~zzv|rl`{zzozzpk{vpfi}rxzmzpyv}l{x{}vw}|~|tu~xw||v||}qw~ot}r}wxspzu~~y|~xy}~~}x~{iygp~wzxzsm~kkcysxmzw}}}z~}|pszytq{~n{nxx~xu|c`|}~zfrk~|sq{d}z}z~{sUtrx}o}|jz[~y}jfj{zs]sh{yzq{{dus~w{rsw~x|rauq~}v}~u{qvvu|}}`ur|~y{x}}wy~~x~wsyc|{y~~a|yyq~{zqokx~z{xsiwxz~{ztu~~~~xyr}yxzxvv~~yx~~ytyy~ywz}~w|{}yz}~w}~}w|vxxtu|ow}t[zwu|o~|xu~voqckoyvkirz~}~{z}dszouvbk|szzx}~y]q{z{~twtk|}{|x|~~uz~yx{{r}eyi~mxpyzuluzxp{opyztpyxs|lsw~{jtxyntyrjzzx|{xvtmhy~qst~m~w|p{{vwoxg~}|}rytu|xytv{yyzw{ox{rv|mvyx~{~vz{zzo{~|{q{{}x|{ypqy{u~||nx}~}~nv|}|r|y~|}{v{yotmw{z}yp}~yxzwu}}z{ww~~zjy{}y|~vyvt}{{wsyxv}{|{{wvz}rxw|s~zzw|s}}y~{|{gzlz|tagx{{ntv^uqozsy~je||x{}|w|y~tyw~ukyswjo~zuxm|yv{wr~||uz}|~{sz}{~x{}}{}|x|x~kxv|~vx{|{uwz|wpl{xxy}kt{lgh}ztt|}|~tzx{s|zu}||h{}~pzt~}y{r}}}~x|{{{w~~{y{zv{~qsyt{rytm{x~xy~y{~zxp}l|t|~w}myy|ovzxyv{xapzxwr~xQtu|mkvzykoq}rzux{|vy{xs|~{vprwwm{—wz~y~y{y{{xv|{u~|qukzyx|{ys~|~q||tr{{|}|utl}m}w~{x~q|o|pmq~{}y|{~}qwxizx{z~yy\yox}v}yv|iy~ru~qs}wqydy{~~odw~~}x~zy~n~~p}k~~~s}y{}~{}qrvo~tz{uzpy~uuzoz}z}{}ht||zxzu~z|xrz~w|zttyw}y|~yw~t|wv{yz}}yuxzu{|ww}~w~xyww~l{t{z|s}zw}~w~~~~{}||q~zzzz{jzu}|r~~yp}x{yp|{xt|~|wu}{o|~zqzxz}pvy~zv~zhvr~zv{|ew~|||zwz}wou}{{qzz|z|x{{}~yznuyq}ywv|w}vyntu~{uxz}y}v||wy~pwxl|}x|yzdv|~j~zwy{xtvy{|twxq|zz{yy~|z|~w~zx~~tys|v|{||vs}~y{wtw{}w}{yw}v~txrwtxn{xv}}}}xsw{{~xpx~l~u|x{{vwixot|m~ipzxvyjmvr~}usytz{}|zzxmpwxddeovsyvnvq{v|}|l{e|dw|~~~t~vuv{`ktt~xxywgntq|v}zpm~w{v~|v~vk||rwt{{{~uynw~uixz~sm}{o~v}~yv}sux|zx{t{|zsfzy|~xz|{{romxvtc~~u~~{q~odxpz{|~]{i}f|q]|}}‹r~o|~~~z^p}wytvnz}qwxz~xyw{}|z~{}y{ut|ny|y|{}zyux|||u}u|qywxv}}ixw}~zv~v~~uu|}~~t{|x|~u}wy}vzpx{}~u~x}~}vzv~}|~y~yxxv{{zwty|}{yzqu{~|u~vyzi}w~r~|~zyz|z}d|}w|t|wq|{|tnt|{|~{{wkzyy{x~w~|{u~~~|{suiwzz~w|zyrzy|~qypkq|u{xtyu~{yyurty}}}mw|}vx~}w`v||z|r}|}vqtnuo~x}xi|xsypz{xzt}qwr|}w}}w{|wy~wzwx{wy|{}|tzvp|{w|~{xy~~x|z}{{|~|y{z{xz|z~}y|~yzy~vx|v|{s~u}|y}v~~z|yz~|}|zqq~w~~xy{}}}~}qs|x{{}ps}zy~~~}{v{~~}vyo~}~|xqv{{wz{{p{}|xoysqx|zu|y~|yry~zkvt|x|wzqz~v}v~~{{~|z~{zz}x~zz}{}z||qwyu|q}}z~~y|~~{w{w{z~~|~n|x}}s~}~zzvi~{y}u}|t{zyt~}w~|~~hy|{w~pr}z}v~rz}n~zpynx}~|{slvu|}~x~v~~t|wny`}ytwtjg}yrjrxzzr|vw|wsp~}zx~u}|r{tsr{txzvkvzu~mzy}v~}sf|w}juxuj~~|~}}w}{n|zv{~{w~ylozz{zr}~~}t}{ux}vtf|g~}k~or}e|xyyzyy}{~yyy~z|{~}r{yurx|zyt~p|~~xoyyzt}~~yqw}z}x|{w}y|}}ptz}kvuw{p~mtzxiytp~~sj}k}~{|ss~dglu{|}~v|}w{~dlzqp}thx}~x{|~}un|qx~|{ywyxtfm{|{wty~|{}wwzz}ysptqeub~fq|wzyd_|y{}~}~~zuw}mrz{}~wy~xy~}{v}r{~~s~|}y}||}v|n{uyyuxi~txr|yvyg}}ym|pzjvuutw{kzi|f}|~ixv~zk~mi~xox}y}w{{wu~wgv}X{{z{~os~sv~|szmu~x}}xoxiz}zws{v~~~z|xsvm~vyxzpww~ozsrzqx}~|~t~~s~||||uvwx|}{|~~r~|xtv}{~rz}}~u|rjz|}}{zxyx~{vxy{~z|}vhz}{}|x{x|zv}}xp|v|}ysz|wru{vww{txz~x~~yytyyrvp{|xwlv{{wsqyj}}wyky||oxyys}}{yt{rqy}tq{x{qy~~vvzy~z}t|lz{us{y}w~}xty{vzz{{z{}jy|zy}||uz{~vo~{wt|x~~suy|wy{|y{|yx{w}{us~~y{zy}w{n{~u}}}zrr~{{z}v}z{y~tzw}zu}{x~{x}py{x{ttowu~os||v]~yyprt|l~wslyxun~oz}zm}pv{y{yv{ksvw}vy}rtzzlr{o~mzzz}xs}z|~w~|}t~yt~luw}y~w|x~l~}}|{s~ty}}uwzz~s|pv~xy~p~}yz~|}}zsvspr{z|}~xe~y~{{~{z}{{zwruzzvzsxwux|ns|}|||v{}}~~z{z{vtwy~w{twy~}~t{~uy|p|uyv|zn{y|~}u|y|~vtus}v{zw|{yxrm|}j{|~v{u{}|w{{x|{w~nte~y}~~{|y~~|sva{{wbyw{|~vouz}tmo~|j{x~rt~uzy{{yz}{V^zucv~~}zlxq{oq}qVzgytqhxodvr\}vk}u}{qz|r}wxzyy~zmnrkzvt~}|uvoub~q|~}znss~sxrxw~oy}~xywwwz~~}||p}|vxsmxthovvj{z~s~vvz}u}~w{|s{~}s{u}suzxwv~zyx|}}{}|w}{zz||x~{zwyy}}~~rz|~|ywz|}z~}ox{pzyz}u~y~|q|xysxywz~yvyyys}}vy{}n{yzuw|y}}tzz|svz{wt}xx{z~u|y{}~m}m{u}yxvzu}ypyuxxu|yw~}ov|wyt}w{z}}}wuyypsxl{w|myf~~|{vz||yxs{~xd~{{zwy}ws{o~~~|}ux{~}vx||{~~~vv{~xzz}ztlxvv|vzzzwz|s~~yz}~~xowvwxt|pzl}}zy}z}u{|}{|r~tyos|yz|rxypw~q||r~z|~u{{~mwtqzl~vu{xsy|{|{vuzuyp{~vyt}udzwwe~zxxzv~}tx}q~}jow}xvvu{n|y{zt~yv~}lx{rt|z~vzvv~mtu}gw{{oqo~tvmw|~}y}wz{yo{~f}kym}}~svp}zp}xx|w{yzr~wu|{~znn}xtzu{}t}rwvkw}{}{{criwxvvyxsoyq~vw~xr{vqa{stzty~}rz{{uz{{hp}gr}zmyw{fr~|{r|}v}yo|xxrzxyrmz}xyv{yqxpwz|tz~r{u}ytr|{s|uxs~|{{yz|||{yso}t|{}|wvwx{|{uvyw}}}{~r{y}x{~~}x|wy|{zt~wy|yyy~y{z|u}}~}|mr~k~^m|i~}z}{zs~yl}mt|{}rr~}ɞ~}pr~{zwvx{~{|}x{w}x~twy}{|zv}{v|}xsw|w~}~|}v}xtzy||~{u|}x}s{{}y~j~{z{}}|n~yxv{{~{|~t}~o|z}z{y~x~~}z~wzw{}~f~~jkb|}svxqnp|yqq|slwYtf~k~|ztxi[~mm_|aMy~sym}t|}v}y~`}|~|UNu{xqv{ly|{nwyzxzzx||}~yxz~q~}~yw{{t|z|vn{voyxy}v{}x||}~{uwx}}{}}wyyyztx~ysvsxv{zygzww|yvq}v{uwz|~xys|ix~~vv|{{xov~p|wn{{sx{{~~w{~q}z{ztwvz|wu{~z~~}wo|w}r{sqxuz|mxvs}{}|~wu~tw~rvkm~|}}|uz~twvwq|stp|xwu{z{q|xvp{z|vo}vg|ytz|{{|vl}|u~ypyz||u~~|zwtx|{pv~~}w}|xpy~wxzrk}qwtzpwqzsu~qzy}w~{p}{zp~ulz{~uv~slr|z{wvxy|xy}|pzcprx~|xu~~{yzq~y|}x|urx|y}{xwzwy{w~~}mvyxl|yxwrx~pw|}{~||}uuk}~{yxnxy}{xstu|~|ayx{}zni{r}vi}n}xovzy}}|sbj{xtviy|us~}}zpxm~xzyyz}tt}}yw~x~|qx{}tuk~|xdvutx|{vxvzv|~}{vux|~~rz||wtmwqzyxy~{qs}~o|z{}s{zy}x}~pyo{{~y{u~|czx}rvtxo~zxz{u}~}{qp}z{~xw}s~|r{}~uwr}xxz~zq~x|x|{}wz|tl}vtu{|zyyrs}{oxr}}yuu|~{~~~x}{rf}w{{z~~v~~|p|~|z~{uw~|qs~|}{}|~xn~u}q~|{}~|yyw}u|z{~v~n}~}ryy~wwyu~z~{}t|}zqoyuz~~xn{~}}xuy{yw|vtp}{zvh{}~|x|pyuvz~}vzxt~}w|{br}svvq{uyzxjgxkpnst|r{nzo||suxtx{t~yx~~~w{w}~}||r||r~|{~{~v|r{y{}zl}v|}{w~y}~s{u~}}~|yvx}y}|~~wy}~yzyu|{}vw{{z}zux{yy~w{w}}zx|w~yz~z}wx}u{z~~{|w~}uwxxywvzzzxu}x|}~~s||vus~z}{|}nxys|}vlpm~pz{p{{uz|vvtuwuu~{qt~xzwk~u~~vty~nuy~{zruyzywu|vlw~{yxxu~~}p|vptsxt~zz{|ux}|}yyyv}w{nwuz~vw|gz|~j|v}oty~yty}xyq}t{{{~~n||~|s}}}w{}~pv~{y~wyw|}~{~wx|~r|{t}xzyzz|y|~w~|yv{}|tyt}|oxyzbz}p~|tr{{}swwy~p~vys~mb|yx{}~{xt}~qkxy~z~xo|w~|l}~|~{~wvw|z}~|x|}yzztzwzzz}~zv{}upr|{}qp|~{y||tw|}~tt}}}{xtx||wz}z|u}sn{y}|~nl{}ssw{l|~{oqp~pq~yxpx}{p}|rxy|{}t}yswwr{~z{q~w~u{zyv}~~qr}tuyt}q{~{|tx~z|x}z~{w}u}w{|zusr}{w{tt~sp||svzrwz~~y}{tpts|yx~z{y~jzyt||}vsk~{s}y~{|kzty|xxq}wpy~}~zvp}zvwxmsx}wsu}xv~tzxxt~{}s}~}~x|w~tvotztw~{x|c{gy}qqp|~}~{u}~y|w}|uwqsu{xx|}tvu~w{}o{tcuowq{|yywvo~nr~pu~}{|~|vq}wx}}v{}~~}{{xyxzx~m|t{w~}y~uy~z|wnt~vxyr}lu~}z~~{}~~s}}{py~v~|~}|z~~yxwqy}{~y}}|u~z}{yv|}z|yxx}xy|~~xw|}}u|xy}zzz}ly{nnw||tww{{vh~}yrtw}|w||x|o|v||{pihxtxyyu|tjoj~yx~y~zh|{w}zst|t{yiymeoszc|tw~n}yv}~t~}hpx~}{|w|zo}xtz|{~}}||{yzrm~yuxwwx}~}y~v{{{}~{pzx{xy~pvxw|}xv|||}||xxs}z~wzfuolsqwy|rv}rr|us~xysxsq~xvpsu~}puzvh~|~}nt{wyozvglg{{wzq}vwy|vhvnsuw}pwtpkn}o|zo~}~zwxjz|y{yo~{~{z}sww{{|i}p|o|}||}~|zu||wv|w~w{|~vys~y}~~~|~|}xuz}}z{wvs}zy~kryx~w}|wx~|pxyzyzyqz~|ht|y~}~{~~~vz}y~u}yvxwzwk{xnpixitw~x{u~blpyuxix{w|ns|rk{{|kjuv}x~te|Nu}pfyw{wmy{sy~q{zrvuw}|nz||{x}u~wr|yjvtyzyouz{zx}~}t~y{{{y~{~~}~{zv~||vxwvuz~}t~n}~q{x}{q{v~{{{mw~}{~~}t~ys~~xws~z{z}w|}vzpw~~}z|xxt}~{u}k|{{ux~{wyv~w~|{ysx~r|r~~wpzsxv~qs}kzzx{~y}mruustu~x}~lswzmz|z|ys{zx{omjpm~qy{}qv{~u{v}q{q{{sx~~}utr}|zy}~~|}|szv|~{z~z|u{v~{mxxuy{|}m|{rs}{mzq}y{wy~~y}s{}yzy~|}y|~|}|~~yqq{~}x{~~w{~wn{pvy~}^xs|ns|v|~~u{|}}u{}|}zjx}fz~qvvyzlr~f}|yuvz~zuvn|ww{~}hsz{~~w{~~{}}{}tsq}~z}{jjqk|oh{{~zgx~up|y{ygfgnm|ny}}wftohtzj~{m~}~{tnypo|yx{yjwt}|zxt|~~wvo||}qyxuw}tz~}h~{u~}}yq{u|}}x{}}yz}}v}wz}z|txu~{|||~yxy~{zvtv}pw{w|~x|{{y}~xzw~{zhy~~z{v|wrz}t{q}vxxxz|uy}~||zt}~yzw|p~wzw{uy|z~~xtmyyyyv|ztz{vx}f~}a~zw{|xyx}zrzx~y{|}{~}ztly{|xu|yzw}qyyt|{~~{}z{~zymy~{uy}nz}{~x~}~|~q{}q}~u~vux~zurrx}v}n_qv~x~zzsvyyu}t~xmmxdy|s{txxyq}k{}zyvqzx}~x|~wzyrwwn|ty|}vx}|x~iqwwxy~}unq}tdzfwzlz|s|x~ttqnp}x~qz~yrzk}ztzluqoumsmrn|rvy~~|}q~v}w}}~||}|~~}x~|yzz}vyv}~wt|xxx{uxzvq~sw}pxt}~{{ns}xwzsioy{rx|p}joy|r}k{{u{~tzzj{|qy}~|~|jt}y~u{rx|rz~wyiszz|}xrxv~txolt~{}zwxp}z~yw{|{zy|hwxzyx}~yp|z{u|{rz~~|s~~tr~rwywy}~w|{|||~tzsvwy~oww|wz{szw|~{{{~wy|y|~kpxt|~}oxy}xewwon{}vz}xw{~rxv{y{}z{p|v~sgwttuy{~w|u{t|~x~{vupr~}}a~yzyl}wmq{|wyyyzp{~v|zxx~ttp|tz}|vwwt|~|~u}vyzu}||}zxf~~z~}xz~{v~~vm|vwy{u||}o}vyxz{v|~qz{v{w{j}{wu~}y}i}pz{|i}y}xtwsy~~qyvwttXvjy_lzw~{|d~qxkk}zqyo|s~jp}dzx{u_y|z]sz~|zwv|}uw{vx}}ttrzvw}{u|wv}~|~x|qw~wzy{x}tyy~wppvruy~vyy{rqks|~|~{p|rxgxz~~~y|ywk|zx|p|muzu{{~lv}zq~{{}zuxzyywtr~yv{|xxmz~te{jxzu~zdmw}n}o~tzzy|q|yry}zq|xwy{|rxovtx|~}pw}s|||xz{p~yyzqn}}~{}yxpwzx{{~uqsww}zwrymz}fy{tuqn}~vuz~vv}r}yxz}ss{yovxzz{m{}y{~{rwyy|srrx~~p~~\t|{wy|zmsrutpvtvy`|||}q~}[he~zr|wz~|yu~x~|{~z~u}|z{|s~}~l{xt{|}|qz~~}}|qtu~px{|~zzuzr{rz}{x~|}{{uy~y~{wz{|z~~~r{{xr{~zx~z{}x~{y{~|zxotvq?|~g{frwveuyef{~q|~p{|`NP5zntBw~f{|k}}|}s~zvjonlxxiwh|~vtz~|{wv{z~~s~~|~~{{s}wyy|~~yjxzirov|y|}}|g}if~f|lr{ikzgf|p{k|cwt|wv|lyz{uzx~gst|~{}~zv|~ovxxt|}||w{vvtygxuyvxvstsxyp~m}}t}vwx|~lz}owzs||f~|wtj{smqq{zkmow|urz{|zthw}|}psqvo|~~{xur~yq}~z}|z~~zr|s}yx}~{yxn~ww~{tx}yzlw|~u~vv}x{|}|~q{lxx}t{{xp{}wozo}xyt|v}qv{~sy{}{w~{t}}v}w{y~{rxq~xy|~~~~}zz{zyz}wz|u{zwxsu}yz}~s~~|}wpwt}~s{~zxy|~|~vwu~~}~|{{|}wxvoj~}|~yzy{z~z|ˊ~z|z}tyyzvr{u~u|lri{~xwtx~|}y{{v}ixh}xyy|zyuomyb}~o{vyx{{u|oy||~}|}mwz}|~vru}q~~n{vx|yym{yzr~znzzpq}zx~wj|zqpqj~zx~x{m}x{qy}}~|ow{~t|}yt~uz~t}zxwzs|v{zt{{}rrdyy|uR}yxyl~zxs~jys~{h}z|v}|uvuzqzquvrn~x|v{u}|}}y|zypx{y~w|qsrxzusxu]o}ymxrvkjxtbry|w}|q~~}swz||tixxvrto{|rws{v{}}p}~t~zxx~v|sy{|s~msp~|xu}zv~yz}z|{{u~~z{y{}~tz{uux~~xzuy{~yvnnvxypwvqw|u{|~z{|x{yxvv~~~ssu~{ttyxl{i{|~z~{~tx~ywz}{ex}wwg{~|v{yu{|qx{qsp}ym|~{r{|r|~zgr~r{tu{synu||qunz|}{w{fl{kz}oqv{r}y{mnxzy}rqz~qzy|}|}|yzxk~|s~}}}{q|{|~y~~z}||n~}zqw}xu{w{pts|o}}|yvvw{ebhyu{xsvpx}~sus}wyy}}~ztqt}wtyw}tul}v_qx{u{}z{{oz{{}zzvn}s}~v{z|uzy{c~ymY}ld|~zzz~}suxo|~~lqmy{q}{{rsx|sxymww}}~s}w{z|x~w{}n}yyy~~yxs{r{y~q}x|pw}}wnsvmy{smztxvy~}t|uu~x|txoyy{xnt{yvpkg{u~zzx}uzz}ytwgnx~qg^zxv~z~|u||{y~y}wzhusr|t~s|xqj}y{}t|{yvw~yzy~{wv~~vy~}v~sx}xy{u|{w{}zvps}~y|vyyrwwz}zyxzyzt~o}~|ytt}u{~}vtq|nz|x}wz{px|}~~yyx~m~r{~{mmy}vzz}ztyry~l}svzw}r|{}y|}v{xuy~zx~}z||x}~zqq{y{rwzv||{z|r}n{|zq|{wv}~k~~x|wm|s~xwzzx~qvwp~}}wu}v{sys|s}vvu|mwtypyxyrruuy~{zrzvolnz|yv}w}~~vs{othtv{ms}~i|z~|t~{|{r|{qwp|yu{y|yi}|yy}}vyz{y~~~pz}{{|u}}w|s||s~uvy~{}{}~p~w}~{z~yzu|~z~{xx{yowy}sy~~|z}~t}s|y~{t{yu~{szw~~y~~ylzv~x~xz{|su{v|xv{~}}xzz~{fw}{u{}{y|~yzxwz~y~{xr|||}|x~z}t~}{~{{~qz~||{x~rzux{z}xyx}|z{u{~}~|wy|zy}||}m~n~z}nx{~~}vs{hivt~zg}}|w{uvt~~hh|o~y{nz~mstw~wy{u}}|yztywxzz}z{lz{|~{w{s~p~y{{yvw|{{}n{|l~r~}|tqzrxxrz|~{w|w}zo|z~o|ttvx~~yzz~|{yqx~{s~~uz~~wz}}{txuv|}~w~xi~|~yzw|{xzxuy~~vx~zzv|~~s~y~{}{nlsz}}~wqy}~cdoyzyvn}y}yq}~z}exh}xvm|gpzxunv{gzv}yypj|zzzz}{rs}|v~zkznzxre{y}kzxy}tkw_|pkynztlbxox|v{|{ofkxt`|Z{{iwg||ww{tsw{~~z~mw|vwuz~yvx~z{vkruz~sq~xo~oq~}{~|{s||xxvxoz|~qy}z~sy}zti~}~gw|jvoss{vtv~}|p|y~nu}}{i|wu|y}w}wr|xwtpxz||~~sr{u}}m~{}zwxvz{|xuo{|}x~a{}xq}vpvxv~y~rz|p|zzuw{v||y{wy|~|t|u{}xzx{}}q~yr~uyuz||x{kyr~tox~{}xi|}vyurtvtq}lq}}qx{~}tz}q{p|~~~Zvq{qyrag}o}yumv|ljwgakfza}y{tbov{ivryzVxfXvpyimyZ{bYfLfxfxu~cvr{k|oprpfw{tcgqkvy|j|Vuf^}hex}wlO~niz:uYslSyvn[tXnj}stIv_wovfokBz]~hkz{gjYZj{t~w~}`rvyw{vuz{n}f~r{vuz~z{x{t}~wzyxv}`twuys|ryy}m~}o}ouuuvvy}wmzx{}vs{{{uzm}zzyqzr{jns|wyyn~x|{v|o}tw|uvxlm}y~wz}wx|{~sty~uhxt}v~u|{|~zsvwx{{vrs}t|~t}|ms|vu|r~x{u|xqz{vyyzt}u~ozyx~~zt}yy}utw{}|{z|yr{p||~|xzppov~|po~|}|||wsyjzglxz^|}xt~wrmo{qwjqrtx{pjy~~~l{|ygskiv}{f~txux{|vxti}{ys~t}xxr~nz}vm{mruwzb||kyvy}|~u{{~p~xut}{wvl}}y|kwo|ysxrw||}p{}uz{~~z{~zxs~}~~{~z~}~|vs~x~~xvy||wxt|v}y|{z|hyv}}yt{|~uu{|}x|vv}z~zyro|v|}uqtts{}wt||{y{~m{{y~y~}}s~{v}x|xu~z}|yw}wu~{o{tvuzz}zdz|jr{~yzqw~m~|y{y|uzw{ywxit|~mdgy|w}~spvq|qv{xq|qvyyzjw}|muxfxg~nw}{l}[yvxyzyy{ybu|vyTktl~~c~ytxyzp}}y~h{zwty~~ywlo}x~z}u|zwz}}~|~z}|}{}xx{~tvz~}xz{z}y}~|}~sytiy|w}}ni{{~yxs|szv|tusgxvwz}|~}xu||~z|r}}rz~{|zs~~ws|y~|y|z}|v|{vw|xttotw|y~{{{zy|~}ux}w{wwyy{|}}uxyy~z}x|y|p|q~t}{yqyxzx}w~k~}x|}p~tyrtq|{z{~~{|z}{u}y{zp{u{}stxu{~s~}~}~x}xxzrz~}}x~~uy}lmy~~n{tv}v}|}{y}uruys}h}ju{uxyswor}x|~}y~zo~~{~|q{tzzz{yy|rz}|tzv}}sy}y{|wwzz}wqqz~zpz}{|wazs~~~|m{k~}xy~z||w}zv}~vsy}z~qz|q}~}wz|y{v|zw}wvj|~v|z~xoyxzz{~s~q{|i~ov~|szw~ft~wzz~m|~v`wwtx}}{~u{vngqp~|~yz|z|{y||zpz~swvv~z|zr|}}ysuy}}{wz~{}{y|yy}{t|}sy~}xz~|}}{uz}~wv~y{y}{}wu}v~u{z{{}|~yw{owzp~yxtxr~v|~~x~zxrvwystx{}s~tru|yr{zq|{vtwvwwqy|}z|rvrw}yr{v}}xvyvx~t}|lyzz}|zyyvy~~}}}kx{wzx~w|wz{n|zx}~t{r|zz{zu{v~y~|{r|x||}~{}z~}~ug{vzswyo|c{wlx~}~r{~nzyw}}~z~zxv{|{|{~rq}puy~|~p~v{|}yyu{{}zn|{x}{ty{{v{}|~tzu}w{{|tu}zz~zt{{}~z~wzzyx~z~x{y|~|{~}|zuwysptw}~r}{v~}|~|z}uxxxyzy|z|~}zzow{~{t}|}|w~zzx{z|{z~x~zs~w~uw~|xz{z|~nzt|y|{y}~}}q|u}{vn}~zzxtupxyqu|~q{tgx|}}|||zuh|{Z|oy~{}zx~wzyzv|yyzzrt}~~x}yyuy}}w~{x~v{t~|xw|~yxy~{z}}s~z~w||~|}z}|}{x}z|{~}}szq~tuyrxwx|{vw}xz|wz|~~uyu{m{{|{}sx~}}h{}x|~s~}xsxzty~wr}z}|~}tz{}}p{i|zzp~~zy^w|cuzumdy~v}zskx}ryyvu~rzru|}xrrvrxvmywzy{yz~}z|}v~|xw|||~{|}uv{ww~|p~ts|yv}vvy{}{}x|pyq}}xxy|z{}}r|u}{{w{}}wv}{zxux{uxxutyw~~}{}|{y}~u}y}~~vzw|uzxu{zv~zs~s~~xz{|pwo}tvs}~u~wuwrv{}tvymt}t|wy~zut}}~wluz}}{tywtxyp}y{~p~l|~pxy~oquw|wtwzp~|x|zv~qspuo}zrziz{}yuw{}zzx~}~z|yw~q}~wyuxy}}w|{|{rqzxuvq~|v~}vww}{~y|~}z|x|zrxvvr}qvq{x{z|uvzx}~y~|{~|~{z~w{~||z|y~zr}}}}kv{w~{~}~{~zw~{}{|}{z{v}}v|tvv}u~}~|~y~}syus~s~~}v~xy}mj}{yxw~}{{}}xx{xuz||{~{}t{}||~{}~}~xzs~{}|||}xy{~~xz}~x~~y|{}uz~}{~v|}y~}q}wz~z|{u|}{}~}v}~~z|~{yurzyv~~y~}r|~vztt|w|qxyy|y|{|yvxy|yz~~vy~u~mtzytovr||x{x|}nz~{}y}z~|}}}zt{~y~uxwy{uz|~}zyx|~}|yy~yv}}|}yu~y}{|uu|~}|}w}{~x~}~}~z}}|~{u}z{~~xql{t}~}~y|~y~|yowwz~}~|y}~~{|uvsqt}~x}u~iq}u|qy}vxo~rmz}uzvy~y~vtvoy~~ypu|x|}x}yz{}l{uuvv~svtz~x~lt||~|~{|~x~z|}y~vv|~yx~~y|yn}}o~}}}{||yy{}t~t~{|~xxo}z{{utvv}|~z{}yrz}}xk~wxzuw|}~pwy}}~||ys{tx~|wsr}x~zttyw|sqy{zrx~wy|~z~~w{||v~t~vnzzwwk~xk{v}t~}zz|y~wfxyz~qw~y}t~b{wlt|~o}{}tw}tjk~}~xuwuu}p~}xxzvsywutup~v~~wzx~k~ytyr^{vx~s~}y|xtszwwy~puxs{}m}zutz}|u}dux{zr|wzsz|}w{x||z~x~}|z}|}{y}~uu~{|y}~txq~zuzyyz}w}{~ru~|{{y~sy}yu~}r~}y~{yv}}}px{y{{~{{}wx|}}xr{{xxyz~zz}}}}|~yxy}y~yx~}yzz}z~{{{~|{bzxzy~~y}~v}zz}z~q~|~{}xo|z~y{|~r~sz{wzn|~uzpz~}~{}{}|{xqu|{wzl~uz{~zx~y~s||~|~vu|}uz~~w|tr}{{oyy{x|v}{~~~|}|zu}zov{{~~{}}}w|sqvv}xw}|y}y}|n~vu~|z|~u~|{wy{zv|owzx~ty~{~~u~~s~}~|xuk~z{|h~qwy~}wxu|w|w}z{}}}~rpp{yty{~tu}yz~}}{}{ywps|}{~y}y}z{}~}y}z}}|szz}{{~}{}z||w~}v{tw}sm~vy}{~{xy~|{y|wvx~}|~z|xz{~yw|}~y}~qw}tv{py~~}~xxz|y{{~||}vy|z}z}|{v~|{{z~t~~|z}}|v{~xxpw|wy}||~usxpu~{{wu}}s|{{v~~u~}y|~xps{~w}~|~|puws~p|~uzw{z|xu{xz~uy~szmzxx{vn}}xxy}{x~|w~~z}y{syvp{{y~wy}}{r~~xx{~yr}txz{wyz|||tz}~|wx|~{~p{y}}uq~w|z||x|}wu{~xt{m}y~}~{xsk{|zw}w|}q}~ttzozvv}yx{{zuw}|}wxxx{yy~~vw~zp~v{|}||~q}zyw~tw|}~y}}~u}r}|x~~zu|~xz|zv|vy~w|}yzy}z|v{~{zyx|~~v|}}|vtz~~}}t||xs~|~~z|r|zv{}}y~z{~~x{~}|v|t{oy|}xxtyy}~{yw{}wu}}~}s~tz~{|~{{q{|}}~~{~w~{zw{~|~}y{nz|y|}|z{y}~r{{u~}yzt~|{wmuwxzx||}o}{xyy}~u~zu|x|zu}z}yww{pzpr}~xur|s~tsyy~}yv}z}{}z}~}y}|zxvzwxsy|y}|z|}|{~|x~xmx|||}y}}}|{z}u~s}}y|x{~w|{}{|x~y|}|~sz|v|x}v{s~yw{~u~}~|vozm|~}ww~s~wrryy|ztw|gww{~z~{~zz}|~vwyzw|r{m~|xwt{}{~~w}}|zus|{w~uu~yxl}~vyzyuzx|~~~{w{~~{~~|~~v~w|z~~|{|zvtz~}uv{|t|{r~zy{zwz|y}w~{~x|w|p{|}|yx~x}zw~}yxs}}yy}pxy~}zyxzy}{x|~z|r{~wyx{}}~zy||w}{~}y}}}|}y|~~{{|{~~}y}}{z}}z|~}xyy|z}|}|znz~|}xx~|y||vy}~wuywlz~wtwrwnhpg{u}uxe|~{rwr}yz{wl|t}|~pv~|}|}pyt{|~x|lwz~y|zouY}nog}}rz|}xtpw}~z}y{|}yyz~l}z|}~|}||~}xrzv~{}{w~{~~}z}}y|}||z}y~|z}zh~|xu{yx~w{zx|}{|q{z|~}|}su|{yyw|}lsxy~|y}tt{pzz~o|pu{w~q{xu|{{}}{qyyx|gx{~|wzv~tvzxz{}zyu{y}{z~zy{{~~yzwx{z}z|u~}ww}{|}t}w~yztz}}~t}~zzy~iz~~ozu}t~~vrsz|~|}us}{y{twyw}|yuv{}qr{wz~n~xyr{y~~x}~}w|x~~x{}{x~}~~}}wxy~|yry~yvz{{}~~~}xuu}xs}k|{{|zw|ws~t{s{{x{x}z}yv~wyuz}|v{~|}~||~|zw}{|{w{v}~|~yr}wq~~{yyyy|y{x}{{u~~ytn~v}||~|{~x~}{~v~~~u}tu}yz{|{|zl~~w}vr|z{||xyow~|{zuw~~z|x|}|y|vwvv{{{bsu~ov}|{}}~{|~z~l~~}vvzy{~u{s}|}y~~|{jxz~|}w}sy|w~u|zto}z}~}t|y|{|w{x|y{}zyzux|y}syu~vzz~~syxww{{{uns~uz}y~x}z~ywq{}tw}xzxo|{yz}{{{x}vw|zxtv~xn}yu|~{~yt|zx}~y~}}~{~{|x|~}x}}}xz}||zw~z~{{y~yw|zsozw~x|gzrz{z}~vs|{yp~{iv{|wxz~~|yzu|y~zxnxpp{u{~}|w~~tyx~z}{~ztr~~~sq|{tv}z|xi|}{~t~{}{o~{x~~}zy|{yz{~{w}|{}v||~~ytv~zy~q|v~|yr~{z|uz{}u{z~|vy}zy{}w|t}~yux|{{}|rtzl}~}{}{|x}||{}z|~t~zl||y|~w||{~~||~yxs~|}z~~}x}}}y|~z|{v~~|}}{w~}~r~x~vx~y|~yi}~zv~{{yxx{xt~{z}zrzyy{tt~{s|w{~{xrvw{{{|y{~s|vwx~~|~tn||}}zy~|xy~wy{x{uzt}z}z{}~}uzvlxxm|{{t|vtw{~~z}|t|{}~xs}k|r{zqz|}nvz}q~~|zq|yy}w}xxyz}x|{||tsxyv}ty~z{qxzxrp~x|zyz{u~y~|x~}q}y~z|}x}{~~x~}y~wuxwuu~uuyuws}~{~vzztr}|yx}{y}w|x~}x|z~xpux~|yz}vs~{~t|wv}y}{t~s|}uv||voxt|||{}~|{}~z~|t||}qu}}z~u|}syxzz~~}~{x~s{wxz~~v~|wy{{~|xt~x|}zyuy~u~|uut|~w{xryzyrt~zx|wmux{ysz{{}}{~}ux}}}}|}}{{|{yy}x|x~{}r|||}yx|zy~|wv{{}~}~{{zzz}~x~|~{y||~z|vuvm}}z|}x{~|~yx}uv~}}~sy|}wzyu|zzy}|yywzz~}|}p}{w|~}{xru|~y~~~y}wr~}~wx~~~}~}y{~z~}~|xx}~zz}w}{|~{~}m|t~rnz{{yuvwy{}}vzzdlu{rn{wvr|}x~rajv|xz|}}|o|s~pt~zqw|zuyyx~}{|~x}~~}xs}u}s{}{}r~|t|~z|vzyzz~}}qy|}|t|r~}z}x}{sw|}{|{{zxsy}~v|~vw}rr~||y{{{|~}w|||||~w~|}{zz{|{|~|wwy~}|{{}zxuwvy~||u||~}~}}zz||u~{~|{z~tzvz}z~|~~}{zyq}vt}yz|}u}}~|}z~}}~}{y|}y~~~s{}z|~z}|vyy}w}{~~~z|zzz~}~}~w~}{{vz|xz||~|wzww|zw}w{{y{}x}py{~|x{xzy}{}wz|||~xv}~vy~{uw|wx|{{xy|~{w~y}|z~{{|vwvz}zyxz~r~{~ux{{xvw~z{|~}~vy~|{{|~{yv{xw~~}p~}~||wy~|w}w}z|vsu|svy|~w{xu||~{~|~qzt}y~{{sw|q~|{p~y{sz{{|zskwo~zz{}~z|~z{g|v~zx}~vzs}y~w|}z~{|{w{|v}}y}zr~{{~~{{u}tytu~w{{||t||~|{xyuovwv~}{|~x{}}~y~mvzjz}x}}w{uzz}{|~~|sv|v}vv~zzv}z|uzw}{{{xsyva~wps|q||w}}r}{ys{~||~tzzz~x}w}|ww|}u~w~{wr}{{u~yyy{yyx}v~yw~|v~~x}z{}z|}}~y{yy}|ty|z}~}|{~|~y~wyy~|zw~{x{y{~w|y~|zuv}{ztxz~sy}w{tys~~~yz{zp}xyv{y~u~||x||z~~v}~v}u~yw|zzl~v}~z}ou}u}~~{{v~}y{{~v{hyv~zt}~szuz|zy~z~}~}~y}}}u~z}zvpxx}xu~||yp|{~x}}yx~{|z~yu~zx~x}~sz{zxv{y}q{{{xwy}}y{~~v{{|z{tx{u{}wzx}zx||~~{{n~|u{{z}zw~s{|}}~txx~x{|~}~~wx||p{vs|txzw{~y{u||z}{~~qyy}yv}}~kzx}wty~~{|w~z}}~z~yx||zz~~qzw||~}}y{}}|z{{z~q~x}|z~}|~~z~yzqy~}nywrx{yw~~{z~r~wz~z}w{w|q~~q|~vo}{{|u|}|y}xuz}r|~||zz|w}}}~~u|z}sx~x|x}xvx{x~wzx~~y}xxy{~wu{}}w}wx~w}}y}w}|x~|s{vv{xzw}~}tw|xxqi}xutyxzz~~r|x|y~w|~{y{{wvv||}}{|ytot{~j}|zzz~yxx||~}ywq}x||mvoyy~|s|oo|~y|}wz~x~y~z{wv|w{{y}{zw|}~~z}y|~}w|}}|{|}y}xw{xz|wy|z~}}{z|~~y|~pz}zyx}y~|z}|~~yyz~|}}{~x}}}u~~wv~v~yz{|v|xq}|{wz~xu~{yqwt{~x~~r}~|z|vhp}txs|||}{s}}xqsuqtt~p|ypix~{wx{suzw}w|yxzy|yyyypy{x}~{{{y|uv}|{}|v{|}o~y{zz~yw}|wvzv}{~~{~qy}{~}|tyxwuz~|~xz~~v~||~}|~~v{x~{}~u{{z}zz|w}zsuxx{y|x|{~xy}w~}~||~u{|~}w|vz~z{}}{zx|wzy}x~t}zzy~z|~}}|yz~z}zw~}~x}}w|z{{}~xz}~}xyy}zywv~|x}w}w|{wv}szz|}}}{rvzx~~tx|}|~~q}}y{r{|v|wy}y||xx|xz~sz~{}|~w~y{|~~~zvvg}}~m}u}}wjxz|utxynxz~{~zzl~}~zyw}y|k}x~zx{|fy{{y|}z{|{xsz{|{}~wpo~~}v~|x|}ux~~t|x{~~{zw~|~|p{~us~~|r}y~ns|t}j}yusz{~qus{}{zu}}px|w~rxm{|zv{vs|x{}{svp}~zy}x}t~}ty}{z{tt{s||}{}{}zwy~}~~u~}zz{~zl~|~m~|yz{{y{zz~~v~~|{|vx~vzty|ww|||}|o~|~|{|}{~~~ys||||}t{}u}t}}}wyyxy~{{|~|{|~{}}{~y|x||}z~{yz~{}}~xz~}{|~zv~}~|{~u~~{~~zxx~{|u~|~zy~{}z~wuy{rw~~x}}~~yx~z~~uvp~xuwzxuvv}tst~~x~zvx~~~~{vt~{{~z{zw|y}}~{|t~qu{x|wzu~y}zux~y}~zp~~r}~z|vy|y{v}zvy}n|~x~|zkypzz{~yvquz}yq|~sh|{}xnz~s{{}|zz{u{}{}{z|{ywz{{||zutxwu~~ww{p}vz|}u}~xv}xzzzxtt}||v{tzx}x~|{wwy}{~~zyzy{v|vuw~~||{v{{zxtx{uv}s}{x}x~~}xzst}yb{}nz|s{~|y{~}~|{ru{z}~vrv}}em|v{s}mpsyw~w}nwps~rzwwwsrYw{v}yx~tqz~v|{}xvz|xu{}vy{|x}|yy|~yu~}qv{}{r|q{|v|~z~}nyy{y|uzu}zwu~{|t~}z}xy~||z}v}w}y|wy{s}|~vzvv~{{w|}{x{~}qzs~{rywqxzy~}}}{qw}~zxgvxwrxt|so|zttvv~|oy~z{|~x}stw}{{|}~}x~{~|}ys|qt}~~t{~x~z~zs{{|~{v|z|~{|yy}}{u|y}w|~vx}zux~ow{o}yqup{~}y~v{~t}z~ulj~vzxv}{w}{}|{z}z|fx~{~~|qm}wxytptwlzzzzpyp|ut}~xsz~||}uotpu~z~sxtl||}}\{xxk~}sqopxyx}wr}tq~}{x~}~yz~|{~v{||}}||~{~}q}wywux~{}x~tpo|}wr~~|}v}z{}~}}s|~}}{~{yzwu|~|~~r|y|zqvq}~ow}~~}|uys}xwy~}w{p|v~{{{vzs}|zy~~|}|zx~zo}~{u|{~}xx}{st{|r{z|{~u|uz{|z{zvy}y~ty|q}xv}v~~y~{~o}|{w}z|y|y~{u~{~~lx{y|vzy{{y{zwy}q~{y}ww{~~}y}{|{|tnzvx{y{p||~{{}wz~{u~|tz{v~owr{z~x|xw|xxvz}vt{{~~t{}~~tw}yo~|{~~n|z~wz~yw}{{|{~z~zz{z}zztxzu}{{zuyv|}w~|x}s~zv|zzvyp~{u|}~~w}tuz}z{x{twx{w|vwt|zn{xs{y~y}t|s~zfz~~v{ww|{z|vz}vq|~}}~xv}n{u}x{yz|~~zq}|{}|}{zz||z~||||{}|||vz~s~zwz|}yz{|w~{yr}{zu~uv}zw|}{vvuy}}qx~uz{z~w~syu|~~v|||h|{{{~~{s{m~h~yyq|zz{|uz~}yzzptrr~x~uzyos}~{ru}x||ny}tm~~p{}ww{~xx}{|zzwp{zv}{yx~v~}}l}|u~mxy{{}}y~w~~|}~t{rt~r|}vv~~zyx|z~|~q~qy|}~}|~y{|}|}o|yx{|ww{}wx~tzvt{pru{zt}}s{|z}i|wsv{|owrz|}zv~||}~x}p{{|tx|w|{}}}}{p~zyw|}xx{zys}lt~}~xy}|~{v~}~wvzwzwvu}~vvqzyysl|y|||wzy}xzj{{}~{tz||y}u}w|~~vy~~z|v~~~}~~|~}}z{z}{zutiq~{{}{~|}{yyzp{{|{|rvpw|~}~sw~|t{|}|ppvsz~{}vyg~|}z}~xwzy~}{y~~|z}w}vyz~}{~y}y~w{uz}~u~~~ux~}zow|zy}}y|}x{k~|{sl}{w{t~xswkxzw|}x[xtuzv{w{y}{pzw~{wslzu{ry|~yv{rx|w~~|}z{{}}}wz{}}{~r}x{~v}tvz~wv~w}y~|z|}|w{~|||~vz|~~{y}x|}|u~z}~{~{}u{zx{~rv~y~{x|~r~z~~~qilt}|u|zxtr|p~wz{zqs~~|{fu}wy{~xzo~wwyr}yqqwy|}~yt}x~{{~wyy}w}yy~r||~z}x}}}x{~~x|z|{~x|{}oyu}}~}{}}t}~~x}{mvsz{w{}xz}xy~~z}{}{pq}z|x}y{z|zvt{}x}w~y}|zw}zzzsx~|y}{{vsz{zvjvtyvwx}yw|yy||~}x~}zyxxv|~|}~n||s~||x~x~y{z|}~s{|uxx}~|zw{w{ww}{~}{w~~xu|w~sgqz~mtqqqyz~t~owws|~y~z}{pqs~~tu|{ux|q|~y{~~~zyv~{vx~~r|~{x{v|swz}|~v}z}}|yy}zyyy{~tx|z}}yz|{~{||~~|wu{yxz~{owy}~~yu|uw~}yyy|~z~}u}w~x|}|}|~|~}v}zzuttt{xz{~~~z}v{}}zz}}n|zy~|{{v}|{}{}~||~|||g~w}qx~vx~u|~z|r{yx{yz~rs~u{zzo~|~yww|t{~{|s|}w}~~{z}~x||~z{v{~t}v{~zvn}rqxs~|y}tzz~nyrqzz~sxz{su{tx~nqy|xws}}yqlsryzj|wz}~}~xw|v}z~}|}~uwzzs{}}|{~zw~l|x|sr}{{}|~~~y~z~~~|}|y}w|yuu}~q|y~~{|~||z~~x}zw~t~znvvu}t}j{~~v{tuxx~|zqv~wnv|z{|z}yl|xtrqy}~}r}zx|ty}{~ui}|xw|yz~z~vvw~}}x}||xx~|y}|{z{w{x|{~}~}{v|~yu}y}|~~~uy~|o|rzt}{x{z}zt{~p~~x~}}zw|}{~{v}o{}~}~}v||t|~|s}|~~{||wrxzt{{{z~zws~~p{vzyvw{|~{}s|vw}zzzxx{yy}~szrv~x}rvz}{yv~}vt}xr~}~x}vyy}ylzs~zuz}}x~yvu{t~{}zu|{sxu}zxtuqysw|~ywmy~y}rsxxz}}vr}uxn{{vsv}t{xz|{w~txr||jnxz}yu}x|o{r~{z}rx~rx|v|||{s|w~{{~zw{z~{{q|w{z{~w||}v}||x~x}|w}{x~~yrxy~}z~|{}~~}~y}{~}oz~~t{~~}rz}|rw}||o~y|zv|}}~v|t~~~{yz{|}y~~qvy}|}~uvyz~tz{|xxzy}pv~z~t~|~}~zxs|{u|tw|~v}yv}{}y~|z|{yuy~{{w~yy~~zx}~z|xv}}|{x{p~|}z}~x~zy}~y~~~r|~{~{xhvy|x}sw}{~owyw~{xv}|}~xu~x|y|~zz~{}~zwuu{yz}nsuwq||zvw|ryrxr}~y}u|z|o}ozz|}ywu~|~~qzljy~zy|~ly{v|{{|\zw~}m{xw|~xv|}{t}x}ix{~}qvy{xz{{~{|z~|wu}quv{uzwwfynxcvxrzoyv}rym||j{w{px|}}ywy||yu{~t{||wxl~{}x}~{|}yz}{}|u}pzx{{~|zxz|~v{y}tyt|lxx~yw{t{izw}y{{vv~sp{p{{{w{~}zz}{{y~~}zy}|}yw~xw{tz}wu{||u|}lyv{y|}zly~t{z}zyso}t}~znx|{x~~{{}~{}{z|v}~~{{z~|}}zvh{ysuxyy{qhtq~w{yetqo~~|~ooy}zn~e{vqsqty}r|xpwvw~rztkrvxzs{{|x{~z}|x~y~z|x|}}~{~wx|~~}}}}~z}wss}{{z{~~o~}}{u~}mw}v|u|ypx}xzttryy{q~~xzwz{{vifvutntor{az}zs|y}uy~~t~}y{rz~x}r}y|vzvvx||}{y}|y~s}rut|~{}~}t|~yxysr~w|r~x}ty|~~}~v{}|uwwyy{{~}zu~usw|}|u}~xrz{|vxw{~}}{|t{z~|~{wvz~~x|xywxm}~z~w~t}xy}}lxy`}|t}}y}u{}p|uwp~xv{m|}}}uxvxz~ozx{kw~|uzpxzovw{|qz|z}|rn~{~||~{}~}z~xzx|z{}{z}{{w|wxtz~zy}~|{zy~su{t}{w}xx}}s}z|}{}y{~~}y}yyv|~xuzw}||n~|~~vuvtvvzw~}|yyw~}||{w}zz}}o~w~}syyur~yzxzx~v|y~~umw}{ttvyoy|z}srvz~ziv{}{vv|~{q}zqy}~{~x~|~q~{||}tz{yxz|}yyzz~~}{~|yz~}}~}~y}xy{~wxu||~~v~|{k}~}z~|s~w}}zz{z{t|{{srv{z}|x{{po~wxxz|k}xz~|y~isv{}|}w||}~|~~~uzzz~zw{}}x~}{{}~~}uzw~xz}|mt}}w|~w}g}|~zr}syxw~|p{{{xu}|x}x~utyp}zv}{wzyyvzx}tyuvv~~{~rw~z~xo|v|~}~u}zvyv~{x|l~u~z|zs~y~z~|~{{||py|u~x}}{x{{}~|z|vr|y~y}v|x|~yy}}~|xy|x~|y{|~}~}~|{|z~~}ux|}}a|r{zkzzv|oyoywz{y{oyw~sz||zt|vo|~xn}jo|sx{}}}{~{xy~z}|~x}|}zx}z|~{}{z{|u|}|~xv}y~~}~{|ttz{yvw~zx{~x~mvu|rzn|}ozv{{q|tvv|ly{}yqzh}~|}|t~|p~y{uurt{rpss}rz}wywwx~w{{x~|n~o~w|xy||~~{s}~p}|s~~~{{}s}u}~|qz|{zy{|~~|s{|x{}zy{{~yyv|x||v~w}yz~y~|so~szw|x}y{w}v|}vy|m}|z~v{v|myt{~|t|qz|t~w{}zzqz{xtvzzr}vz}wxsv~uxt~~s{qx{z~}{tpzwuysw|}~{|{~wyu}{q~~~s|}y}zy{}~{}}z}z|{}|{}|{x~so~z||x~prx|n||zquwv|}}~}sw{~t|z}|{r|w|~|tvxjyyt}}|~}}o}~q{ws}~y~{u{w~|~r|~yy{~}w~x}}u|y}}y|z||~v|{oth~{}{yyrz|{iyqsywzi}}~k{}yu}ryui|w{zq|x}}~|x|wz{y~~zp~nwmsvzzy|y}}uxvwzooyezyy~{~~kxq|y~~{~yv|zx}|tztrolyy{}uw}}u}{xzrx|tpn}u}{~{}~xrwvymomwy{}yqnz|uu{x|}~}|rwvuy~yw~{zxx|u~v||}yy}xz~zt~|z~|zzz{{{}z}z}}||}{{sx}xq}}x}|{}~}s~||jw}{z}xxy}uv~}w{w|}{~~zzs}}{||{t|{~uv~}~~~{w}{{wz~{~{}~}~~~}zu}yy}w~zw}zv{s|wy{~|~|{~yz}{|z|~{|}us}u}}z~v}{zzy~|y~yz}q}y{rq}yslu||y{z|~u{mqw|~nuv~{xyvyyzxy~u}~}||}w~v~}z~|y}z~{wy|}}|y}{}||~}|suxz{{z~{vvz~y}vv~x||~~~}~y~~z{~~{|}y}}}u~prn{~{z}yyx~}zvvw}w~}uwqv}u}wxz~}yuyu~qzd||uw~|~}~zt}z|z~||wz}~|uuu~||~~~|}~~~yzy~s{u{{~qy|x|~yv~s}q|yv~||}x|}y~z{sz~ux{y~r~|y|~~}{os~yz|{|}~~{wwu}}sz{kz~x|sy}~s|y|}~x}|{u~{{syr{zz|s||~ur}x|}{|}{vw~ywq|szvzvz|x{x~wy|yxsz~v|{|z}{x|pixy}v{w{zxzz{x}r}~y}||x{vztxp}yyrzunn||y}xy|~{~|ye|{zxvlv{x~zzzwz~}sz{}wv}~~~k~r{uzyxz{zzuxlw}vz~r}z}vz}y|xz}ygs}}x~}y|rt~~wvyzpvx|y~x|xx}|z{vwxwxr{vqw~z|yz{~~vxwsy}~|z|y{z}y}{}~v}s{{{~~}v}~}xx|sz~{~|z}xr}{yy|~|~~u}}~|~|~t}~|||zz{t}{zys|{wyq{|vy~zzu~{s}x|{wvx}{~u|l||~{kuzxuqmz|v}zto~ruyv~|o}{}xuys~xxy{~zxx}n|xyopzqytts}u~{yv{u|z}{~~vzwv{uz~wyzyt}~}ywu~}w~u}|}|z}~v~z|{||}qy|xp|{ux~wz~tz|||u}y||~zyq}}ovzy|{}~x}uy~}~z{swyxv~~~}|zxzy{|tx{{xw~u~}{}|~|{y}vzvzys~}{zx~y~|~w{{~xz}}{}vv|}v{~uz|{xz}||~{}}~z}x{x}x|{{wwx~~yq}}{z}|{}~y~}}x~z|~}~~z~}{zx~|}{{nf|zw{s|}~~xw|~z{r{yr~swyuzytt~muvx}{xy|y~~w~||||~z{dyw}vs|vu{qvxxxvq|ttyyw|~|~pz}ulwe|smwurxvkqnstvspu{s{rtxv~q{l|~wi|us{~v}xw|y~|sz{~~~|~xvzsu}|q{~wpy~stvu{vy{wwnyz|dvv}{z}v}{}{oul|}y}|}}z|y|{{}y~|{~~|~|z|z|}{|~}qw|tojmq{zxw|{yp|{no{nli~ytzm|{{{|zin{~{{|wzy~swv{x{~y~~~t|xy~{o{|w|vrw~xzv~mxxq{yr~~t}u}||y|y~y{wz~x}z~}z{zzz{m|x~zywvw~}~}r}~|{~z|rwxy|}}}~|}~~~}}{wu~f~s{z~~~}~z|{z{{y|yv}{t~z}vzz}|u{oxsmu}u}zx{}}vv~~x{ut~}|}{zzv~y}y}}~v~~~y~x|y||~{~y~vws~qv{i{yx|psv}r|w~u~ry|}{w{~~|}w|z{ux}vt~}}}~xsy||s|y|}k|qt~~~}|v~z{v~|}{}vzx|}|yw}y{}ry{}{~z{}~xu{|}~u~v|}ouyxk|u~Q{Zyskpz}xvy~cn}wxaw~{|x{}{q}|z}qzr~~q{r_|tw}z}zvu}}~~zy}{x~{|u}~{w}~{yxuxwyu}}y~~}yu~y|t{}|}t}~qyu||{~wty|}x}z{|w{wvzsvy|qz|}vuwrwi|}{|w|z{}u~z{z}}~}{}z~|}{|~}}|ut|{{~||~~}z~v|wov~{}|w~x~{|~~ww|v{uxz||x||~z}}vz{}xtv}~z~}zy~~~x{|wvqm|{}o|wv}y|}}|{t~x}yvwyvp|}zo~x~~vzt~}}{w{|}z}uy{{~w|y~}zy}~yy{}{~yzy}r~x{|{|t|y{y~}{yz}~y{{}{|~y}xz|~zxz{y{~}}{}}ww}}v{xu|zr}y|{xzzqykzywvv|rx|xzwz~y||y{v~}yr{x|}ky{~}y~z~~ysz~}|{u|y}x}}|v|z|}zr|~z|z{|y||{yy}xzwz~zz~|}vw|~tv{u}~}yz~}{}}{zx~w|{|~rz|}x~x|s{~|vqs{x~yzr}{{}{~{}}t~z|t~y|yr}{qw~~}|ty{||{yy|~{{xx~x}~w|}}{~}{~zw~{~}}|yyv{|z|z|z|xu}~xwn{y}wuvqxuyt|}tszztvy~{sn|~~t~{~~xvwvl|u~}j~}w{w{z|x}x|x~|xwy~zz|}|~w}}{|}rzwv|x|xt|}m{~s}oz|zv~ymumvvl~vx~uwszyvyq~pwtpukr}zwx{g{mnu~}~ytt}}xwx|}~zn}{ou|~wq~}u|{}|||}~~|{vu{zuy}|{}tzz~vy~x~|z|z~z~{y~xx~vz}z}}vy~q}tw~y|~ty|~~~~y|~|~}}}r|~}{|~{otq~vr~qu~qp}s}}wxo~v|}y}zm|av}zsx|~xy|~ex~yxoz}zzxu}{vrxu|x|{~~|tkuwyq|rv{|xt{|{zt}zxx|w}|~~ulvzxw{vwyzyu|z|{z~y}v{|~|~q~ut{}{~~{m}~yu~}~y~{vx}wtux~t|{uwxw{|{}}{}m|r~txpx~}~|wpy|u|x{lryppo}{x||yw|w{yusm{vy|uw{~~{}|yr~r|~w{~~}~vrzyszv~}{{y|{|~wyv~}zx~{y||ux}|~x{}z|~vzt{}|u{yz|vzv~vv~~wt}}|~yr~y~~wvxmxzxzww{}sy|}{v}xp}|u|vv|~w~}{ywyq~|yy}z~~}|y}~{}|w|{{~|{zz{}}}~{|}~x{yu|~z~|{z|~wyy{~y}{}~vu{r}w}x~~zy~{wux}uziww}|w|tyx~~}}{pxyux}}}~}x}zxx~}~~ttzy}p|~uyx}z|{w|v~uvs}{zzr}|~|{|}~vzz{~~~|~}|}|xy|v}vy|z{v~wx}|uqt~y~yzt{~~|{}}h{v~{{}}}zz~~}|~~}}yzw}x{}~||z|}m}y{~~zqzz}wy}{{|zy|z|z~||y{{zw}wv}y|{s}z~w|~x}~~x~x||yw{y{{||~zv}{v}{y~}}{x|w{{|~tq|u|s~y|~{y~{w|}~{~z}yvr}yukwzz}~|{{~w~p~r{}|{|wsz~}quyu~r|~x~{ry~v|u~v}u{wr|~}~}zw|}}{{}xo~r}}y~|z}w|tzxqx~|x~{uwy}x~w}s|}y~rz~t~{z}yuy|~}}sozt~}v}xxz~wz}~~}}u~}v{|~|~wy}}}z}}|rwys{~w|u}|ty|t~{{xy{x~}zx}ws|zxu~~uyqw~}v}~}|}|s~x|{z~{y|||}~x{yyvy~~}~|zvxz~n||uxxz~}zz~qwvyz|w}~uozzv|t}ttzx{|}|xou{}z~{z~s{zh}|s}~q|q~|}|w}~~{~{wy|yj{u|tt}z}squt|w~o}|{}}tbu|u||ps{ryo~lxy|}~xyxw|ttws~ly|w~ny}~xz}wivwwkuttqsv~q{{|u}{p||{y|w|}{~~u~|{ww|~}y}|}w}{~xy~|~uxtsxzukv|}tzrzv~xu~vzz}wtyxt|t}x~u{x~yj||yu|wy}y}pxm{}pp|u{|~s{}~|}}vz{x}}~s{~yy|}{m|{~~}||zs|}wz~|~~|yyy}~~z~y}{|zxx}|}~x{yzx}}~~y{y{~xwo}s}vystyqu}w|~}}yywxu|~}t}y|x|z|ov}|vwsvv}uv|~zw}z~tt}yx~x|}m|t{yyw{xot~}{|s~~~~|iy}~}z~y~|w|t||xxxtu}{x{{}vzx~~w{rz|xy|yzy|tz|~yy}~tyrxn|t~{}{z{}zzyyyrwx~tyvzy{}{zz{|nuz|~zx|w|w|z|x|~t~z{ozqs~|~~z~wx~}~~yry~~|}v{}}w}}~}y}v~}w~||~x~z{zz~xx}yrzx~{{x}y}~{}}w~zz~w~{x|z|{zyz}w}y~w}~zys|}y{}|yl~|u~|u{}{z|s~vxu~}~}y}|{yys}}zz{w{|oy|ww~|wp|}zyy{|n{|xz}xz|{y|zt~z~w}||~y}}|{|yw~}|{t}{}x|zz{~|~{{~mjx||~{}vtrozy{~p~pkxyyw~}~w|sy|x}{]s}~|}}{y~x|n|~z{~}}zzzr~y||~~wz~x}voy}y}u~zxwwttz}}}z}z{q~xz}{x|{s{~zz~tz|s~x}w~w|zwr}y{t{~{~{u{xt}yyy{|u~}r{||ww~t}|}|unzy{{|q{v}wy|uz~v{|~y||v|sy|}~||z~~yy||{}}|{z{~z||{}y}{xz~}{|{w{}{~}u}xvz}xv{yuuetizu|khtuy}yn~whow~tujzw|{vytvx~wwvyx{zw}wks|{xxyv~vrsr}xsd}~zyw~}xwo{{t~}}y{zx{||rtu{{|{q}xqwx~~|syxz{{q~|yz~~}}~z~}x}qy|~~~w}|}{xy}~|~|{||{{|z}yuz~kw}~y{xx~vwwwt{|vwv|z~~zxrkuv|~s|ryxzy~xs{zx|m}u{y{x}~{}z~~{}x~~z{|z~u}~{y}x{{u~}~u~|w~xxy|{}{}~~zw}yxszmwq}u|~t}|zx}x}~|}wz}|z{iw~v|kwz~|r~o~xuwww}{uhzx{u}vyl{zt|q{rs{~}~{zwx~{~w}zq~{yxz|wu}||~ywtt{~}p}y~||y~}m}u~z}{{{xus|vz~t~vy}r}{zt~~||~xyz|vsw~}|y~y~y}yw}yyt~{|{|{zyq|}vv|qyy}{tvr~w{vsyuz|~|}~~nsp~}~{~z}~x}y~y~~}x{~yly~z|zxsz{zwvvz~y|zwv}}~tx}{~w|q~zz~{uz}wpyxx}~yxu~~zy~rzrvz{{z}w~zs||~zv||y}xo{zh|~}{}||y|uryuw~q{t~}wx}|l~zr~|t|~xsu~w}usyz|yzw}|~~y{|~}~|y}u{ytxqzwy}}ttvz}{}v|{v||~w}|q|}yz~toyv|}y{z}y{y}~|z~yxy||{v}~~{|z}wz~~x}ww~zwyxz}}nv}uv|gq}g|y|{o~~suzvy|x~}}vr}xysx{}~{|}|v~yu}{~o{xqp}}}}}s}}}v~|w}~uiq~w{{ywy}z}}~yvzmuy}|srvyqzly{~|uz{|{ql{~vriix}x{zx}|r}|w~}}~tzy{~}~{yy~||{z||~zzy||x|{~~|}}~u~zvy~|~{z~}xy}x{yvyz~}{~~zx~}}{{w~}vsy{uw}{x~p}xvy~{{}u}}{u}~x~x|{z~{es|uyxzzzt}yxz{{~z~swy}~tt{{rxz~|}}yz}|~|~|yo}|vxszt~s~yvsx{~|{}yz}pyux{|y~zwmupx|~rywy{r{z~u|tr~}xv{zvq~y{mytu~w|~~{}vzl~w~~~}}w~|{y~x|yyz}xuyzusqt}y|qs|~z}}{wzu|y{z}{~~{zupz{}z}u}~xo{y}|s~z}~|~xi|~v~}wt~}}zx~p{}sxu}{~~lwyyk~~wyyx~o}{nz}z|z{|t{p~|~ysv|~{x~y~t~z|wuzyz~|}sx|y||~}wx}{~~{zz|{u~v}}|z||}tv~t~~~uxw~w|}|y~}skyxux|~}||~~{|r~x{~r}}~uzzxtt}{w|~}}}|}}w~sty|~{~z{~w~tv{wwz|{xxxw~r|vy}zz~~zzw~~z~~vu{{}~~{}~}}wsuwz|}uy~||w{uzvz~~}z}|z{|{}r~q{x~xz~~}}}{{|zx~}wzz}|~yt}}y|xvxw}zx{|||y~{z|yw}~v{{}~zv|yovz{|zt}}z~wsx~mx}|yv}y{v{pq}r}}~pvwv}xzul~}vwzv|~}~{|~{{|xxvvy}v|{|s~~{u|t~{zz|zxtyx|}}up}~~s|z}v{|w}~|}|r~z~rz}~l}y|llowzzsvxzy}|y~xx{ww~ut~v}~{}|}zzoz|~{~|~|tvu}}~sx~s}{|t|uyz|jv~|r~{~vovsx~v~w}}~~x|zy~ztw|}qy}{zw~z}zun|~|}n}|~zxyy{{~~{}wzu~|two}s}v{t}tx}}yy}|yv||z}{|zn{}ryu~ztuyy|~yztu~x|}}zxy}|~x~z|x~{}v{wi}xvrnm|hw}{wxru~~~}|y}~zptx{z}y}}s|~zxt~ty}ywp|zqnwsrz~s~zy|{uywyzuw|~w}q|~os}}~}~}vmo|p|vq~zx}~}~~zu}y|~~yy{zs||~~jzq|}y|z}w}~}{|~tzyr{{||}}utzs~rzrt|wxw|~u|zqys~~}syxw}zv|xz~~{~xx|rvo~}m|}pwusoy~}u||x}|tzxwygv}rwjyowzyx|z}{q|}|xrzx}y~|ttqy~|}zs~~z{~|w~~s|y~~{~~{~}v}~~}|}~{}z~}~}y{}~|z~}}~{xnzx|~~{x~|x|{|y{{z~y|s{~{wu|zs{s}|yu~|}|gyxvxnwvyzx{|zzzqv|y|~k{r{i}qzvryz~y}xyyxzzxqzzvo}p|}~|zmp{wz~vu}{vu{}{|zy|wz~}{~}~m}|~}|{z{z~w{u~wz|}~~}ysy{v{z~z}yww|}u~{y~yvy{wxy|||{y|zsyl|z}v~w}}~~y|}w}yws}ys~x}zzsw~}~|y{wzxwxo}y|{y{v|}{y|~|xwyx~}wx|{~qz~~y{}}~u|w}{z}{zv~~}yq{}zx|zy|}~vwzwzz|~xvv}xt||}}{{~~x}~}|y{wy|z}y|y}{|||~vu{}wx~x|}v~wz{z|}~yw{z}{~xuv{w|yy}||ovyyw}wxyzt}turtu{}{qjturjur}q}z}wumoxw}vvw|lwrpy|qv~~}~~y{z}lv~uk{xs}ns}tm}u{~s}}}zp~{{{zz}}wpv}}}w|~{v}|~}~u{~{}||}yy{zx|x~{y|k{skzuwys|ps}}|}xz}zxw~}v{{}yy{}{x~n{vzyusgy}~w{~}zq}tz|u|svzv{v}z~y}{y~yxzzxx{z~~ws{{}~yx}}|wwzts}xx~~{~~~{}~y}vzv{wq}|}|~zq{yz{x||}}{{||u{||v}x|{xsy}w|}~}}x}{z|z}z~y~ur|}s}z~{w~~y}}p~}zvzx|qz|wugxx{~|}}rztkqjyzrwvx{yuz}x~z}y{{}}v{{e}zz~{{\z{f}svXtuy}w~qxb[|oaVw}z~~zxqp{w~gxjgx~{vi}yxsw|w|zxx{|zw}vzv}z|z~v{z|}|n~{w}yyt}uzz}}z{|sw~|zx~}{zy{y||k||y}}w|{w~}wuvtpszz~xwws{zyxx{xwx~tuw|xw{~u|z|s}u||qz{w{uww~||y}|v~}}z}~|}~|}~|u}{~z~}wy|{}}{|wz{{y~~z{~}}}}}}~v|zy~{}~v|}t}}y{xy{|y|~yt~|{zux}~t}qxn~~wzz|~qxxxzwlw~|f{{}wx|sytuy}xwv}zo{wz}xxxyzsxw~xuy}t~|~k}|dy~y|y~tysx{}z|}k|w|~~j|}{{~pw{}~y{t}nsm~v~|~y{|r}u{s||m~uxzt~{urzxz|wz{i{tx}{|}n~|||{z{ywi}wgt~~nr{s{vvoy}hyxz}x}u~bx~ryr}ru}r}x\U}]~~{z}sxxlmy{l}}v}|}{yzv~~|~xz||~{uz{x{|pxwz~|{xu}|}}}}{x}u{y}~~zs|ky{|z~x|z}{tvx}p}u{xxyrwypr{~q|}zxvyo{uz}|uuxwv{y{{{ny|xx{{n~}un|zt|yuqv~uz||z|vxy|zx|ufy}}vu~~~x{x}sy{}|~t|{{}syv~{{zzz|}}u~~{~z}}y||s{vu~ss{tz~z|}y}~}pw~yxzn}zqr{pz~}}xww{s}w{||fs{{uxsyyx{y~}u}yoop~~i~o~s|uxoizwxysm|r{qox{tkvqv}y~}|z|}x{zvy{}|xx}uyu{z|z}}xyy}r~w{{|znl|vy~~~~~|}y|~||~{zrs{s~}ws|z{~|}vo}}yz~yx|v{}z}~n|}}~zy|}u}sz~|y}vy~rzqz{w~t|yxr}x~y|}t~{z|y{vqz~~uyu~v~~}usv{vzz}z{}z}{|vzyxoz}}y~~w{}yxn~~}wtw{~|x~y~u~~z~z~{}w~wn~z}|{s{zz}vnxq~y}{|z~|u||}|}~torgsjzuw~xrzs~x}ytu~}}uzzy}tmtx{z{t{}~{~{zrw{~x|{}|t~~{}zux|~rrzzx}wxwy|{x{|~zpuv|{|}xt~su~y}|}{}{w}tyqz|{{|~}|ux}{zr~|rz}||||xtt{zz{u~{{~xr~~{|w|xu|u|xr|}tzt|~x|u~xxtwvz}x}x~r|y~lyzow|juyw||~hvttw}jt{s{y}s|z~rqrvytz}u}z~zy~t~xo}}x}y~|yz{w|tyw|||t~z~yvyy{~y~~|y{z|v}y}u|szzw~t{}~|yuxzz{zzxv|}~~{z~~y~y|||}~{yz~}y|}t{~w}v~zx}||||xxyz}{|y{|w}|~}r{~|s}|wu~w~wx{{|z{{w~qz}x~zv}~x|q|p{|zw{~yvw~y|w{~}|}zx|qvo{|z~|o~}}t~qmx{}zw|zx|v{u}sp{xwy~rsts~{xy{{~}z}{|xz}}z~~ty{vr}z{}x}oup|{x{}|u}tzv|}}yt~}~~}}~}~y~~||y{|y|~s}|~~~|z~~u}|y{~~v|||u}rx~w}j|~zzz~tv~vv{j}{~x~wy}~yy}x}xzqu}yt}zywx|zv}z||~yzz}~q{w}zozzz}ypt|x{zz}}|v~}z{y{|}{}yy{xzx|}wx}|}~z|~}}{t}z{zyy~uy|y{|tt}|yvp~}v|}|}}~y{}~y|xx~~~zt~}xx||~y~|u~|~~|}wo|wt|{{}~{}{z|y~m|v}yz}|z||}}s}}yz~|y}|}yz~~w|}x|}v|p~|z}~y~|z{~}z}x~}|}~y|~}}}~zw~{{~}}z}~zv|g~~yux~~jkx|mu}~ys|v|pnqv~uuwgwr~}zqp}z{{zg{}cxys{~}~rs}x{yw~yw~~||}~w~|ywuy}|{yrzuy{y}v{|v|sx}uuzj{{|}{{u{zy|~w||~w~}|{}~{z~~}~p{{w|t}swnxy~~{zv~z~|yy|}pzz|y{~~}yz~x|}t|{u|v|{y}~z}qxy|~y{nszr}~}y{{x{}~}w}{xy{{~}~uz~|u{|t|}~{y}{~ryz||xq|xz~ywxxv~~yvy}}{z|u{}{}wy}n|~y~uzwwyzv{||y{}zm}z~u}uzx~zptr{zztu{r|uyww{y~}wr{ymz|~{s|{~|sy}{}}||otq~v|vypv~{owq|~yuoq~~|}gt}y~tr~|z~zm{tt}jzvtpzzuv||u{|mmr~~{~ir~|}~u~uwyyxu~~|vyv}s{|{yo|v{y}x{gzzx{tz{u|~nt}|||}|y|y~syywyw{}{}rr~}u{x{{q}{y{~}{~~}~~}z|}w~x~~y}}}{}y{xy~}ux~{uz~{v{w}~zzqu~y~xvnruu{}~w~~}x~}n}{}vzyz|~{}}x{n|ywy{|t~|~~~~z~s|||x~~x||yu{yvyx~y{z}wy~zyvy~u|}}~|yqtyyysusvv}~w|wwzpuy}zu~{}stx~{zs{~sv|v~z|}|xzz|~y|rr{vxx|z{}{xx{{pz~}|~xz|{{wz}o~~wt}zxy|uu~s}~yy}y|qzv~zry}z{y||~~x|{wx{w~zu{}~|{|v{}~|}{{|x|~yx}{~}ww{}|}~{}www~|y~}|y~zx{y~|~y}zvtx}y}}}~{~~{{}{~yuswz}}|~~|yxpbmn}xosu}wy}p|syv}zuwvy~urz~{xp~r~w|ys{|tryrx|y{r|zpkz||~m}u}}~ywvq{x{~j|qizzuqqt}hyu{|mzq}q|kzq}}guzurxv|}|fqxu~}y~|wyyxtyv{w||ozstv{w~uyzxz||s~vrz{{}}{z}s}~zy~}uw|~~p{|q{yr}}{zy~vy{~~}~vzz{}uxz}}x|yzv|}|r}vyx{}{{y{}{z{|y~zuwt~y~~}y~~s}~x~w~yu{}~~yuyz|y}~~{~{v{xx{}wz|z{{unzwpzt~vrv|}{xxxuwzy{zuxyyyz}y}~|~x~tzv~tx|w|~|~|w~|{w}x|hvyrxnuhrvp~t{{w}u}~yqru{z}}}qsxpoaz|{}ovz~k|yzyqx|vu~z|yvp~z}}~v}{xzu{x|sy{yy}y}zz~~}}}}uzqypz~yxvxr~||oz~n~zz}{zv~nsze~zv{||z{{~}q~}~wu{ynx~s{i~|o{qm~|~|t~x{|~~yy~~sz~z|x{tstz{z{~z|~x}|muxvz}s{z~{vxy}yz|~yv|yw}lz}vz|zxyu}l}z{{}~zzt{r~||}rz}~y}~x}}yu~w~p}q{y}x}yyz~~}}|~zu}|~||{~wwy|}}{o{z|~z||~xy|yz{s}wy}wvxz{~~}qz}lk|y}v|vxt~}rv|zwnrz{}p~xwlg|{g~xk|~gyssuv}r}po|tt}qtqp~yxvyqum~tuzv}z||zvtx}|y||~z{{~y~~{zx}|~y}s|w}~}z~v|z~v{v~|z~}}~~xvx~y{|x|x~}vxx{{q~{{|xv{mz{|z~||sy{|w~|{~x~|u|{v~~}~~vq{vxw~q{}}}x}w|z~yy|}~~x|~wyz}}}z{y}z|~y|}}y}|~}{~}y~}x|}z}zw~}rtwzutszzxwytls~~ww^}k}t}{wu~~~{xm|~a|r{wt~{rxo|z}|lqvjs}}wyz~or|ze~~{g{nt|{~x{vw}|ww{yw}}w}}|z}s~y~~z~w}|~w|syw}~|yzyu|xpwyxzz|}{{|zzwt|~t}x|~}|s}|}~~}{}wwvot|ukuy{~rxz|zz~y|~y{||}|zy}{}{yyzw}|x}{~y~|~z~yys~wwtuzt|vm{~|}z}t}~y~zyt~ytv|xz}}|uz|}z}vts~y}~}zyw}{zp|v}syyn~}~x|xw|~~x~z{{~wzwy}xxy|w~|~t{zys}zrl~ztw~ww~w|yw}||wu|w}{}|~{{|z~~z{r~z|zx~}|}{{~t{}{|nu~t}x{t}}x~{~{vw}wy|{ptw|}~}y}~|yn~z}x{z|~ytr|~x}yyy|zwwx{~}sxp|~{|sz{{}~~}}~rz}y{x~w{~yz~vvvzxwyw~ut~~~{z}~y~w}zq|x}vz}f}zzrv~}|p||ukq|us~lzx}w}yvttq|r|zw}otz}tx{z|~}xlm|u~txzxzx~t}~ouqixyxyrxpzy{|zv}vvj|}xzuw~xtvrxuzzxzuvvvqs|xt~vtywm{uyqxw|xvzs~{y~}q{~}y~~~sp~wx|s|}vy{}x|}~~wrxwz|{sv{zxoz{}xx}}z{u{u{{{~{{w{}utx~{}z}x~z{~}}y~t}t}~x~x|~}{||y{{w{~y~zw}~yr}~z{z~}}u{w}|{vqz{sv~t}zx}ux{yu}z|~z|}{|z{}{|~{|y{~yzw|y~w}}~r{|{|x|y|u}~z}yz{}j~xv}s}|~ytyr{|{{{}xyyy{q|v{yzx|~s~|}||~yyy}woyhrz{}nrx~~x~~~|w~qvh|}w|{x~|ww|tmxxwyv|{v}n{xw~}y}}}{}|w|w}|}wu|y~~s}{vx|zu|||{|~y{x|x~y~xvx~~uwy}z|~|}xwu}zxz|xr{yv}uw||z}~uyy|||z~}{ytz{zz}}|~z~{}yy{y~xzxs}y~}}u}wzyv|}s}o}|~yz{{ut}y|{x|{~~}}zvrrw|{}w}y}{|w|{}~x|zu~|zy|}zu~~wzyz}ytxxys|{u}~o|}}unxwp}zvwx|zx|kqxzqywrwyvutw|wzw|vv}w|w|nt~ypvysvz~u{wxxvuzxx}~}}t{rr~}|{y}q}}tv|~zy|v{|zy~}x|yztu~z~x|||ssz{sot}ry|uvv{~yxy~l}{~{{{|tz~u}|zt|jvs|xszyv{ugz|ryw}px}uttiwvry}|wugspos|~~yu}x~~|}x|}}{uttur|}~z{v~}}ys~~~uv~{n}|~}w{z|uzx{yo{||q{~u|y|~~xw|}|z~~}zs~|t}tuyu||~yru{y~s||ww~zwzyux}xs|zytxyt{zp|}vxwx~uu|~zts|y|}}ovs{ynyzxlq~{zv~zt|vz}~vx~cwqx|vmxusxuwrvz{w|x||}xypvunwi~~{yu{|}~{|}p}p~~~|w}~~}x{|~tt{|}{y~~~{zr{}{~ywzw|~}{}||{}yv|v~~u|t~w{z~xixoj~oztw}w{~w{xzw{~~ywv}vs}{t{}oq{s~yt~~|w{ztxt}z~r{ypz}szq{}|}}~yywx|v~~{~p~{q|xvy}{{|r|ysu{y~~uzzyztw~}||q{v~u{x|}}tss~w}x|z}}~ztvvu|wxx{k{r~zt~{~s~zy|zsnxy{}{v|~}|zz~tv~zv{~|x~zxzy}}{|~u{v}{vwq}wyx{z|s~w~w{}n~nu}y{iy~{|wpw|ysywz|yvtn~{yqzs~~xvy}wz~}k}~|}~p{}}}tiz}u}z~}zxv~}yzwt}y}yx{x}{zr~x}~x|y}|{y}v{xw}w|ztvl{}~z}y}~|}vtv|}~zr}{~xxwxx}}x~vy|~zz~zzy|ztx|rs}yx~x}}~y{x~~|yw~ugy~v~xzqyx~vw~|qru}{suyz}uh~uyz}}zv{z|~|{uyst}ww}svy{{vwyt~zzq{{x}}{~|z}~|zyt}~yzz~{{}}{y{wx}yy|x{~wqy|}~y|x|}zv|r|y~|z~w}u~}zws}zsvkv{||~rx{}{|ux{k}w~ytxzyxol~r~y~w{~w}~zwv}||~v|{y{|{}|zxu|w{y{~wv~w}n{{{~}xz}yxur~uwx~~~z}{}{~{|||y|{|~vcuv~}~~}}~zz~}z~}zvy{s}~t|qttyz{y~yv{x|w~~~{~~|r~~vu|px|z~~|u}|~{q~v}y~}r|~wj{|xonzx||x~~zu|t~{wwt{~}z}yyuvs~}{y}}~w{{|z~}}}}wz}zw}{qzw}~}}sw}|||x~}q}z}~~~}{|z|p}~zu}|}xyy}}j}zryu{~}}~uzxqw|w}~}{|tq~{sxvv}{z{~|v|{}~r|}r{~z|{{|u{vq||qxz}~{vr~{wqv|zw{y}||wqx~~quzxww||~p|xt}|zq}v{~wyt}}~|{}v~zzvv}q}~y~{u|}}~}w}}wr||z|}~z{r~x}~w}~~|}|v~y|yrvzo}{|}{esxvsw^{ystw}rytw}rytw{~~o~~}{|x~n|}zsz{wt}zxyxx~xx}yx}~tvwx{qry{v~~zzpt~ys{u~|~}s}z{}xux}|{|{w{}}zz~rv|zy~z~p}{~~|}~|z}uxt{z|v|tzr|uos~~uxyx}~{|p~y~~u~v~{lx}u~t{{}yxvxrwyy~vwu~x~s{~}|{~w}m|{|yz{|}~xv}u|xr{{~{y~q~|wswz}xzz|}~y{~y||zutz|{|svxv|~}v}{{}u|v|vuzy~w{~w~~~|ws{zl|s~~{w}~vuszv{|w}}tozswu~s~~nsxy|w{rxiz~l{svw|t{t|v~qum|k|xszpu|wt~tszt~{~|}|u~{}~su}y}}z}|vt~}o|tr}{ywu}|}{{zzz}~}}~q{{}z~z{mvo}}zp{}~zx}z{}x|sy~vyrxyxv|~~xt}}ut}y}gt~{~~v~u|zxpz|{xv}lsy{y{n~z}x}~{}~{xq}}zu{zzwrzxvw|ozyj}xls|xiupw}stx|oz|ww|{z||ttzz{}zx|~{~}x{u|}z~}|yz|~}~|w|{o}|}}~ztw{}}{~z~~~ny}i{|oy~{}|z}{htz{~~||{|yu~x|}x{{x{m~{y}~m{w}y{~qrz{r~rwyw~}}usot{{~ywz~r}zv{{|{~wx{lw}sx~}~|~vx{x~|yzexwvvqi|xx~t}x~q~{~|{{w~y~sx|s|sy~xupvyuo~wz{w|xxp}{}{~|v~pzq{ztx~m}~u{|rzwz{}|vzuvt^w~yyq}w~qtr~mtwypqv~|ruv}wrux}|y|o|q{}|{xxz}~{}u`yxw|yxu}{zxb}vzpq}wucrsp{~~tz{yjxy|{{{{}|{||z{~wy}}}|{|yv|~zuzrxtt~z|yqy~}{zvymzwz}v{{}wu}r|x|~uy~|y}q~}zw}}z||vwrl~{}y}~|~{~|z~{z{z{~y~mu{~|}{vy{w~z}{{~{{u~}}{}{z}s|t~yzxs{{x{y|||~~w{}u|y{|~~}||~}{}xtv}w~||s~y}z}~~~}wzz|p~y|ty|zyw{|}{y{}zx~}w|z|v{||}}z~{}~~y}~m}~|}|u~~|}}~u~}{~~|{}}{x}~z~{||}zy|}}}~zrupur}}~~~}xyvzq~xxk~~|uu}p|~w{{}z}wxy{|u|}~}~{f}y|vx}}~||t{pzzz}}|sx~{wvpx}v}{}{uxxz~x{t~{wt~{yz~{xy||yyo}|||~w~y~y}wwuz{s~}{}~wz}y{zs{}zo~|{~zz{ny{yzx|{|~r~yyr|yzzw~}{~~}|{~{}}{y~y~~t~w{{v{|hwv~stybn|~y~~}xwvryzxoqo}v{vd~yewxuzt}sy}}{zvywv{~ptqpt|xxnyzz~{p}t~|xz{}zsz}~}~}{z||wzz}m{n}~y}z|zyhqx}~swx|zvyq{s}wyxx~y}yz~{}pvwx||uy}w|oy~}}}v~~zv{|~|~zr~y||~v}}|mqzz}{~x}~|xz|~}{q}xz}~}xw{rz}xv~z|~~}x||}}|{{v|{|~q|zv{}zz~t{os{z~~~wxu|{{{}{{y}w~y{}z}}u|zrq}zy{v}y}womt}|qp~{~yz|w{ysxzu{}u~uz|}wzjy{|xo|z|||vs~kut|{tx}|v}~y|xuwxuwtg~p{xwsvzxut||y~h}{z|w}p|lxs~tt~|z}ym}{}{zt{~z~rstx}~s|q}z{pw|u{v~u{vz}}wzy|z~zu|x|~qq{}{|xz}|}{w|wz}~~v}x}{y}}~{z}}ztvz~}{{~{~~|~{y}y}xzt~yt~~{uz{~ru{x|{y~~{xxu{}~~~y}}yy}|{~|xw|}y{{wy}{|~y|{yw|z~~uzy~w~}{z}|~q~wvyzyvz{x~|{}{}{{xyz{~{zt|x{~~s~~|z|rzxz{z}~ux|{w}zzqz|~v|zvzr~s}ww{~{}~~|yzy~|y~x~v}|{r{v|zt~qzwyuu~|y~y|{~x~{u}z~x|~yz{{p|{ruzpt|~~{woy~zp|{zx}pzyz|{xy|xsux|vqr{u~{zxqhz{w|y~tz}|upzywz}jp~wwv{}jxr}n~zrx|tz{|~|}s}vz~~~r{gy~~nt|~c|xs}}{u||{zx~|z|}{~{}vy~w}}z}x}|w{}{}{t}}}x~}zz~y|y~}}|y}{xwyyr~w}}|{yxyy}~{zvvw{}~}{yr{mz~zwr}||~~}|~vy{{tz{zpw~~{nys{mzw|x~sz}}xx~{zv}|}v}s|ikz~~q|~ux}|{y}~}|{yz}|u~{hvssyw~}z|~myr~wx~~{s}~{yt~|{wsy|w}vuzyz~|su{w{}zt|v|wzxw|z}wvq}zx}||~{y`}px{hzwyjzrw~}~xqryxkrsu|}z{vx}z~v}}}y|y}~xt}}{~|uyyy~s~{w|y~ux~{||~~~{z{u|}|v|vxtwq{|yr{~x}z~|{yu~w~x~w{z~sy{sz}{~|}}v~yu{~~~}~wz~{~~|w~|~{w||}|zv{vlzy~z{r}y|yw|xsw{~{yywq}{z}||vy}y}}~x}||v|xmszu}x}zzz|}|}tn~|w}}{~w|uw|s~wvy{yz~{~zx~wt~z}{u~z{v|~s~u{uizy}tv{o~um|wj}qs{n}wy}n~|{fko~}v{{~{w{|{y}y~xvxx~|{}}y}y{~||{l|z{zv~vv{z}z~y~~{}|w{{u}{}{{|{~|u}zwv}|wy~xp}}{}xw|{w~yzspyr}{~r{}}~~||x}zx}}}|vv~}|{{~t{|wz}{{~yyy}y}z|z}xy~xu||v{utz|omvuzzx{}vxztto}zy|xosx{v}v}p}syso|~pvn{t|x}zyz}z~t~unx}~~}{}}nq~xv~ryyx}|zz~xz|~{w~{~n~tw~q{w~{hzqx~xqsx{zq{~~}a||}{gf}tsjn}T}{h~qiiq{~qu}mqg]o~uzutjor}~{phhvswqu|zty~z}~z{z}}|~{|z~w{u~~zzq}rxyvm~szv~lr}|ruw~|~}}y~}vwy~~}~{~yus{|yry}rzu{~}y{rmr}v{ts|{x}~{y~yzy}vzky~~z|~v|xx{s~syr}}l|}uzpr~xo~xvw|}xu|xwv~~wq|yx}~uvx{{|vrh{tz{{{~~~{r~{}}|zx}|~twwzy{y~{}z|{y~{~|yzt|xs~|~|yzz}~|z{~u}}}}{z{s|}|~}|zx}z}v}~~y{|z}zy}~xvxy{~||~~y~s}x}|~zx}|~{wxyx}z}x}}yv|~~}z{}||vy{|v}zrzyq|{{{zy{yy|v|~zy}v}y|{{wu{{z|s~qzzq{~v{z|~xwyx~}{wyt{~zywv~w~zq|z~}u~~|w~{|~wx}zvv}szw~xx{~~uv~|~k}~v~wp|yz}qr~xuvqzy{zxz{yw~xssvjl{u|~{zu{w|mxt~{z{yqtx|p{vy~|v~||~~~|v{||xpxvy~~vzn~zrzxy~|{}xxr~y}ty{z{z{~}z~z{}~{p{}twz}r}pxwy||vws{}{ytrwxz}~wv|xy|~~yxu{z|{}}|zvi~}~}}y}y{wzz{vw|w~wuz}~u{uzxs}|y|~~~wz}xzuz~|wyx}}}xn}~|quzkzyuz{s}vvyw{~}|yunx~{~w{{vw}zy|y}x|z~y|nuxzyrszwzuxz}m|~|lpppr}}{|v~|{{}}t~{vy~x|v}uzz~zwz}s~r{~|{~yw~wqt{|wwvvmxxxs{p~xx|bzprpuy}~w~{{y~z||}||vx~{{~~|~|}zyx{~wz|x|~|~|yx}wu{xq~sxnwi~}zqp}{z}z{rpstt}rwwy~qdw}mms|y|xu}x{z~n}~zvzrvs}{zv|{{yzz}x{~~x~~}}~|xz}z|z|y~~|x~zm~vy{xz|yz{{vzw|zw~y~|{~u}x||}|z}|z~}~}u|wz{|}}zz~x|xz{~~y|t~~||}z}y~u|t{vyxwzsy~||yy}~y|x||w{~|}w}x{~{~}yvv{{}vy}}ryz~{~{||}wwa}xz}tx~qyx|t~lvu}jvoyq~xz||wwzus}zzznvzl~{pxx}}~zvo{qvh~s}{yz}|wy~xu}}vz{v|}st{yu~|{|evq~sy{pw~}~uz|}}|yq|~|vwu~u|pxw{y~rx{{yx~}{}~}}y|y|n~zl|~y|~}}~|x~n~~}||~}pw~u{~v{zt~}r||~u}z|o}{~x~{|}}rwz~z~y}x|z~x|}}xxxz}uvny{|xx~z~{}~|}zm{}}}~zy}r~~}{x{~yytu~z||}|l{|z~{y{|r|us~~zqywyq{{~w}}yz~z{vz~wx|x|z||~~|~~x~{x}~xs{}|}}zmz{w}|v~zzq{x|zx~~~}~t}t|xl{|pw}www}unxz||{wzt}ww~}{x|{yz{ze~zzvz}p{sx{wyysz|uzyy}}uzpwwz|u}}}srz}pw|y~l}xyz~ox|y~}xxw||}q~|{{y~y|~{yxxw~y||xz~wuxztyxyy|~w{~|s{}{|yx~yx|~yyvw~~~xwy}}~{vtox{x}zl~vy~u~~v|w}vu~m|t{}z~zzyvu}qr}|u}}xys{~}|||zqyts{}qy}yu~{ss~~~w|z}}}w{}z|yn}|sxs~}}z~yl|~}{q{z|~k~yun~|q}z~zfs[~y}|mt~x|{syfmqb~|p|y~~~d~~razwox{k{|~xz}x}|~qz|{}{qwxx~s{z~~|zz{}s{wr{~y~yxs}t{ws}z~y|}|w{~~{~~~~z~vvzv~~~|||~}yz|{w}}vu}}}w|z~}~yz|{~{x}~~xz{vxv{|vwu|}~~{{}|~~}}}|}z~}{uv|u}}u~~vqsyn{{j}Mlpp~snzy{~ul}lk{s{}~tyx~||xly{|nz~xzwyx{z{|plt}xyzzxsxz~~y}|x~~x|}wx|yz|xwxv}|u{}y|yurszz~z{~{x{{{}}x}{xpz}~x}t{{szc~wy~pbz|~zx}|{~xz}w}{{t~pvzz~|u}}{xxxpkpwwyxtz|~y}~{}|w}x|{q}t~~|}|}yz|}~{rz|x~t|xz~qw|uwypwy}|w{ux||v|y|~~z}x~}}yzz}{wy}}||txu}|}xz|x}wz|~{{{}r{p}~|z~vwz|}w|y||t}}yr|~rsxup}{}s|{y|s~r}u|jwyzu}z~{w~}}}sww|y~~~zxz|}t~~{}~}~v}|yx~w{{r~}~q|w|{}q~y{zr|w}yuqywt}yu|qwu~t|vz}|uxt~z||z~zy~t{}||zyx}{}||~~zy{x|~z}y~y}|~~}|}rwy}zlt~vw~}~|szy{t~|}r{t{z{z~z|u~{~st{{y}{{{ut{w~x{w}|x~|x}vr~x~|||w|q~v{xy~u~}~}vs}|p{~u|{yz}{~uty~~w~zrrywy|x{{z~|~s~t~{}z{~wtw|zhw}ww{s}|x{zyz||z~z}}}tz}}vvv{}|yu{|~txt{|p~w}n|tz}{{v}_vqx~s{w~}vx}{x}u{|jxz}vq|w~||~q{zx}~su|{dxywmnyt|qzm}}wv~}|~vxi~zxzyyz|{~xzwyzjvv~ivu{~}r~k||zz{vz~mwssy~|}}}}}z|~~v~}{uwzw}~~|z~~z~zz|w|x~w|z|~}~|z||}|}x}~~}zzv|{vv}tk~t|ty|z~s|{|cvvy~vztwjxhq~p~l||rl~yr}~|zqv|~z}vxv~uvp}}z}twtys{}vq~r{|lr}}|w|z|zr~s|vwv{vwzw}{vud{}|{wuz{z||~u|}y~{i|zr~~sy~~suvqyl}vm~styzrzxwuwv{zsuwv{~~z~}~p`}|}~wtdx~s|}x~}pr||zpox~}}||v{{|||}wxzz{yxyv|xp~yw{szqux|xvy~}}|~~~}zht}q~~{tv}xx~m~{o}ztryp}wx|z}}v~wzyzz~v|uw}t{uz}y{~||w|~~{{|zysyyxz~~~}}xq~{{{|pxu~nn|z}~x|x~zvx{{sv||}q~{{}zzwrx|~}{{yyyy{~~z|{|s~~~wr|{xty|w|wp|y}yvym}{~}zx{{rx{mzxxz|}{~xy~w}u|}~{}z|{~y~y{~}w{u||~~{|yx}~zz{tvq|~{usy|}x|tw|u~v~{suq}y|w~p~y}|~ytx{uwnt|tw}uzu|twryx|u|zx~~|rr|}}r|}zxs}~~w{|}}{{|~|||}}{{~|{|p|z~xz}gq}{zlmz~yyx{~pv{l~izw|~uzw}r~zz~|||x{w}ux|r~y~vv}}w}|z|~z|}{}xuww|qwf~x~}yu|uyu{~}~vywz|}~|}z}{~{yu~xp{}x}s}s{|z~z~wx~zw|}~xy{z|}s~w{~u{}~z{~uv}y{x{w}}xzu~v}x~{xz|{|y}|o{~~v~}|}~}z}xw|z}~u}z~z|y{yz}}}~xxuxz}wpv~~yyvxz|{}ytx~}o|s|xtwvzq~txxvzz~{|}~t{wyvxz{w{~z}||r~}|x|uy{}~vltn}qz|v~~}vt{|y||}{y}x|z~}{}}}wy{}y~}vzyv{~yrz~{z|zt{q{wo{v}x}yy~{~|uvyu~xwyx|y~|vy|w||xwz}~{}{||}~tz~||~v||xu|mwunu{{{y~~{zwzx~zxx|}vy{vv|~~{uy~|wvszxttv~mx|~vzy~}x~{{~{xx~t|~ou}w{~||~y{w||||x}z||zz}{~~yxox}{{un~~x|vtw~~}y|uw|{}{}x}px~{~~~ywwi|}}~}~}xxy{v}}{|~}y}{~~yur{{|{~x}||}u{z~~|uzvy}|wr{kz|sysvw{~zzxx{~|{~}z{~~||pxx}z~|xzyv|m}~}{}pxt}~{|ry~~q{vz~yv}~wt~uzxu}~y}uv{{x{}}tr|{uxx|zyx}ywr}t{wyut|~vq|x~{u}~~kzu}~uzzvo|zq}xy||wy~~ry{xwlqry}~ywyz|~{~t{x}zs}n~s{~~wz~|u|}v||vz|}x~{~||yvsw{z{{pv|}~y~}tzr|~{~{|~uysy|}~z}|{}~}x~{|p|{z~xqsv~x{~~~~|{tz~~}xtss~{yx~z}{|o~~~z~~~{}}~}|xyyz}~{xs{wz{}uw||{{rzv}|}v}~|zty}w{~}||wzszz|yuy|}~~~wwrwvyp~qxs|}y|w~|sp}zy|{~~|}zz~u~r}ytqw~~~yx~|}o~|os}~~oy|m|w}{vwvt~~}wtu}}k}ss}{|vqyu~}v~|yy|u}xtyxm}x{~{}}~z|}vy|uuxl}{yszwtjzmz}vy{~w~uv|tz~rz}utzt~~x{sv{r}{{~x||~q~|zvzx~v{~wz{}x|y~tyuv~~~s}~}xj~uz}}~|}x||x{qx{r~xqy|yyvszv~{}}~|t~|{u~}{|}|}wyw~~~~~zp}~|tuz||x}w{|}yzy~}}p}xyvw}p}}r{{|y{}sy~{}xw}ztwx~z{}v||}vwzw~{lxs{gw{v~~zs{y{r~sylzt{yx}~zzyszez{wzywq{|{pyzyz{wzws|y|~~{z||}~jwz}yz{z}xxv~{x~~v{~}z}rw|}~x~tp~~yp}|{~{}}vu{~|~}|~{zw}|wyz{|}x|~~~xzt{~vv||{~~~zuz}~|{|{{}zxz~||~vz}~{t~|wzw~{u}xqw~||yyz~y{|yx}y}yy{~{~~~}|~~{z}zw}zzzx}mtx~|zxy~{|}~z~}~}{~{{}}mx|||t~yy|{}~{~s}{y~~qtzzxv}~}|vvxx}|}~x|z}~s}}z|{|~|yz||~|v|}t|~~{wvwrp{y~}}|{v{}v~szbyu{sywztur}y~xvz|z{|yjwv}ipw}}|}}xuy~{~{gyv}~y~stzw{v~t}|wyu}x}zyz}}{lz~y|w{v}}rzp}z{|ytsy~~~|w|v~yy}yxyw{{~s~u|z}}zzw~xwuv~o}}~|~z|yv~wu~yo~q|}yxy{zf~zy|{y}y{t}vxj~{xz~v~}uxpz|q~}v|tyz|{z{}z|{r~tszxs}}yww|~vs}x}{|~rw{}v{zp~~wvz}{~z{yk{~vt}~~qwyp|wt~zwu|tyv|}sy}}w{~{xux|}~}|xy~v~}}y}|}xlw~~~}}z{~|q{z|}}{yz}wyzy{~||qszz~s~{|mxxzuwxz~{lv~z~}p{}}y}s|}wx~szy~v}|}y{~vwu}x~{vz~u{z|}}|z}u}yyxwzz~uw{}t~~|}}xy{rx}}||xwwy~u~~}y}}||~}sw{}~xz}z~x{t{~tv|{nmp}v{t|~sikx{xx||wyt}}|u{xt|zt~~z{}z||}{x}y~}}{y}tr}|~vzy}{{{wvsxx{ru|{}v~vv|y~}xvwz|~zz|u}ovoyzwpwqwprxxzz}{{yzz{~}twv|m}xmu{xvxty~pv}w|}wt}{~v|zy{}zxz~wsyx{~~}y|zz|{rx}vy}x~n}}{{}~}~w{|x~tsn{~y~~q}wxz~zyu|~|~wzz~~s}}yw~~vyxzxwz|t~~{wq~}|vxzs{}~~w~|yq|~yx|zzzx||~rzyp{{~o|i{{}||mzz~q}l~x~|u{uy}}ttpzol|xpk~tzs~~t~yw{{x{|xw}|zuvt|wyztnzzvvw{{{yu|qw{~rw~|~q|}{u}{y}{s}~||~}~|~{z}{x}{{{zx}}|z{{~}wzyyyt~uzz~x}zzv|zw~zxyz}|~|pq{~}|}z}~|z}hvwovp{{~{y}zyz{~u{n|{wu{w}pq{{|}}}}}q}}z}t}t{~wszqr|w{y}~wzywx|~{x~zs|s~|}{{{||z{w|~{~~z|{s{~s}tq|~}}u|}~{{y~w}~z{y}}r{}}~|v~w||}}|{}v~{xyuex~yx|{p}tx{{w}}i~y{m~w~~|xu}vx~}s~~r{~vvotw~{xw~v}|wxz}~w~vuyutm||q}yvu}ruxx}yaxzysvpu~kwsvz|nvyv}{{txtsj|n~~yss|zxztz}|lusz}~|tp|w}yzz{zykx{z~usx|{vzuyu}l}|~|~{|y~n{~~w}r|zz}y|zqz|{un~ju|zjt}|{~xsv{zr~qdynp~ph~x}wwxmy}p}{}svWyl}uz{za{ky~~|szx|{yy}~|}v{~}y}~~uvzzq~~yuw}|}{yux}~|zzvzq|r}~xo|{}wyuvv~w}{{wz}v|tr}{~z}y}wj|zz|stuyz~x|sy|~wtzqyyw~zrsw{wuyvyq}z{v~z|{}ztv~~w}vzty{|{x{z}x~xv{}{y~}}y}ux|y~{|{|zqu}sz~w{}}zuz{y~~r{yt{}{v~s~v}vv~{~}y}oz~x}|w~z}{}}~{zz~~~~wxwy~}~z}~yz{xx}l}vx{}~|x{{}v~u}|{~}~~}}xy}}~z~~}zz{v|zqwyz~ts{lrz{v~|{~~|}{{xts{nr}rw}~r}|zv{~v~yr~zyx{{|}||}|}yyzww{}~y||z{tx~y~{xz}z}|~|}~v~|~{{}}}}su|}~~|}{}|{|v~y}~dx}z~{w{wy{|yww{xxxzp{k}vzxh}uxx|}|~{y{~z{{}|}uz~|v~zz}|~~{zx}tu}z{v}y{x|wxx{w|x~w|~{uzv~}~}yy||}y~~xw{ywy}|z{~|v|w|yo{~}qx{{{uvtr}t~|zzq}{~}zyo}|~s}}z}w~vxzvtwxis|}}zz}~~quwtw~zy}v|x{zx|zz~v{sw~tm|wsy{z~~v~w~}gm}yu}tz|}~~n~w{~z{jv{{~{~}}}{|ty{|xv~v||y}x|zv}{~|}x~~zq~vu{zry}|v}wy~|w~{z{}{wv}z|sw|yovrzxu|}yvj}rox~{rupw{~|y|}ww}s~rzuyvw}v|v|{~znyp}~~u|}|{xy{d~~|vwi|y{~}~yvr~zy}{z~}p~~y}s||~zf|{z}{~~~r}{ys}~yns{~|dyxyx~{y~yv}{~tzx|qx}|}y~uyw}{|}xytrvww~|}wsryt|~tyt~y~wx|}yzy{~~w|x}uwzw|x~q||m~{xrxx}}{yx~{mz{}|zwxw|z}||s~}{xt|vsx{y~zvsu{z~}}tvw{zwzw~y~u}||||}~~xuywv}|~t|~x{rxzxutzo~yyptvu}~wuvths|~u|~|yt}n|wxv{|ruvut~}|s~vv~x{uzt|x~}x}{wxuq~}~s|x~{~z~{wsu}}~x{{~vo}uuy}z}{}}{z~~{p}|z{}{uwyzy{|~||}{|~x}xz{~{y}~}~}}}|{}{}{~||~tx{~|}{uxwy~~}yy|x|{{}}}|}}~wxw|{|v}}}|u{utzz}xy~~}~y|~{~}{pp}}|t}}{{}{t|y}{}zzxwv{zwz}w{x~w}wwvz}}|{u{y~}wmtqxv|}zx}{v{~su}~|xv{|zw~}xuyzzxwyv}zz|~~tsotl~{}|r}wj~|zvtw}zk~z~vawt~{s|zwy}}{}ywxwqvx|y|x{x~rry}s||zrjk||u}|y}xzywzy~o~m{}t|{{}~t}{~wzz~~wzz~~zp~x}sv~}}v~xyys|~yz|zs~u|y}wy}xz~yuy||~wty{{t~{s~zy~vz~}u~{twiu{z{hvwutv{uvnwprrw|v{vuz~kvcjus~nsnu~|p~j|~w|ss||v{zx{xqo|x{r|}||zr~|{|wz}}z}s~x~q{{{}vz}y{~~~x{vy{ysq}rzv{{zz~{{||z~|zvu}wsqz~y{~}w~z{p}y~uv}u|||}}uz|~|~|~}{z~~z~}}z}}ytzt~}xyuwq}}}to|xo|}zuusy}x}~ru~xv|}~{~}yztpzlz{wzyu`~zyx{zx~ywzxx}rz~|w|}{|vyx|t~wu|~{v~|s|}rz~~w{x|zu|xwvp~}~~s{x~zv}zz~{{}x~|~x{|}|{w~}~y~z{x{y{u}xx{r|vx|xxw|~{~}~w{}yvq}zy~~|s{zs~|m~y{w{|~rw~}{~|{v|~}x~||}}|z}{~wx~~|zq~~{~v{}|yx}~z~{xr}{t~x~twww~y|}ww~z~{izyyn}rj{{}iqtun|w}}j{{{j{zys|jzosX~]y~c|wsuok~^jdqwpuy_j|zovv|m~}ug||ljzaso`s{|w~{yx|xww}{~l}zwzv{xtu~n|swu~{{nuzx~|~|ys{|z{w~y~|||~{wuwwqzyxt~|~tt{w~xyk~r{qt}tz{~z}vr~yw}}{|y~tz|zs~}{~|w~w{|{z|z}xyv}}yy{{x|~{z~~z}||{z}k{~~}|~~u~}o~|fu{yy~x}|u~|yym{}|vz}}|}u~~||{}{x{~xy}}v{zs{~z~zwqzqz{x|}ttz||y}nu{{|~x|}x}{{uzu}z|s||{wwx||k{pzyxt}r|tx~}{~|wy~w~}|iryyt~{x{{zn}}~qp|~~~xz~{{~|twp~~~}~x}~~~~|~u|z~yt{yz|}|~xs}}v~r~n~{z|~xz|yr~}s~ryun~znyww}u}}}|tw||wys}xfxz~{bszx~{wy}|zizt|y~u|rx~{}q|uz{{}{xmx}yzvz}vxn}~yhtusx~~x}|qsy|xqq}wyy~w}~}s~y~x|yx|wu||qx~~wj}~st}y~ywwwo|}}~x}{}~~~~w}~}y|s}~|w~~||x~~~wv|wwy}{y~m~zv|x~x{zmxwy{z|~~}{xy{{{qymz{{zzwz|m~zs|ynzzxxxhzs}q}yi~tyusvu|u|yx{vyt|ys}y}y~}}}y|~pvw}vytyy}xyx~}{zz~x~|wxuxtyw~iq{yu{}~x|y}w{s{~}~w{yzu~~{w|}w{|q{t{|oztz{~}{|}yxx}y}|}z}w}{y~|{{}}{y~x{}~|||zv~vy~}yx}|x~{{|z~}pv}{rx}yx}|}z{}x{|z~|w||w|vry|~{u}y}}v|{{y~}{}v|v|}~z}t{zu{vwx~~yxpsxq|{|q|u~lw|~zz{}yq}z{|v}xzv{y}|u}~s|zxs}~|v~|qs~y{w~k|t{zv}w~}}}}{~}~{{r{n}{{s~|uyv}|z}uv|{yy}}~}~xxyvzv{po|{xz|zy|yuy|y~y~rq}ymquzzcw{xz}x~yet}}~r}y~}zwxz}}zxbv}~~u|{t{|y{~}~~}~{w{u}{z{}wy|~x}r}~~~rw~w~l~}{~|{v|zwz~xo{}{tt|{zpv{{{~{osnp{{tuz}{zl~z{q{wiwppw|x}~~z{yzxzv|y|x~{v}~x~|~~z{x{zxsz}|||}y~z}|~uvzz|~|~xw~~}s}x|z{|w{~{y~}y~z|~}z}|}xu~|||zox}zp~}~y{ky}~p|xw|yq|{}|~wy}w|~~wzz}~~{tz~~xy~}}zw~~w|{{z~yrzu}~}}{|~{~~v}~|yw{zn{x{y|{ruuy}|~zu~~y{{}}ty|z~tzyxzyxxv{x~}{|~t~vys~}x|yz{r}~|yyzyzzy~xx}~vwz}{}yt~~~y~}r{|zx{}}s||}{}{z~zyvt~x~~vzvwyz~x}{|z~yz}}~|zz~|}}{||||{~{~|z{}yrx}|zv|vtzp~v~v}~}x||}{||{~w}||qx{vrzuzz|}}~z{{|oz|{ry}~z{}~~}}|~xq}~~~~{x}}}|rxz~~y{~y}yswt~v~wrvvty}~}v~p~{{}}w|t~~{}{{r}x}wu{yyyxru~~xyzy{swv~z{}|}}}~n}~{|yz|w~}{{}|{~z{~}~w{~zt~x}}}q|}stw~oxyy~y{zuyw~s{{}yzzx~u}z}~z}{z{~xy~}|}|~xw|}x{|x~~xv{~|~{z~{zy}w~w~~zxx|{||vzx|}|z}|y|t~~wsw}pu{zvv{y{w{|}vw|}wpx}x|{|xy~z~~|}~|z{}}xz||{{}{z~}w{s~||}}{~|vxzz~}~}{v}zx~z~u}w~{~y||}ww}||z~z~}~y~{||v}xz}{~yr~}z{r{{{zy}}xv~}u{|vq||y~yu}{|{{~|}xp|}zz~|z}}xvzz}unzgx{xovw{w|w|jo{~wxqz{y}{t|}s~|hy~|}|yz{~}{|}~~{}~~~}~{~~~}}}~{~|~{wz~v|}x}~}|x~~~{szvs{{~{|v}z~y}|u||{x{t{~z|x~{y~{|sv|||z~|zoz|x~|}v}}z~~y{{|y}{|~{~wy|z~}~~~~s~|x}}vu~~}|~~yu{z|}}|~x|su|x}}uz|}|~{z|}}}u~~s~}y~}}v}}x~~|wu|~|}{t{x~~z~|uy{~v{v~z{~ww}u~|x|s|w}u{|zwc{}yhnyyi}~o}{|tsyu}kzn{wwoqu||~~morsx{t\hyrbmmoy|~m{jtg{|zx{lx{~{v~y~~v|}{~|xr{z~|}{|w|~{{ur{}~{xy|}|}v~x{}~{}}xy}t{y~zyv}|z~|v}y}~{|wvy|~|zlp~z}t}}zzzt{v||p|}y}{{z}}yyy}}}~zxws~|q{|~}~x~}~v{zrw~~|{uz{~}|}t~||~zu|{yz}y||}}}~~{x~x}~w}z{z}}~~~x~{y|xu||{~qtx}xuy{zx||}y}x~}w}~y~z{~yzx|yv~}|y}~~~|smzz|s{}zy}u~xy}}~y~y|x}{|yyy{{~z}|t}{z|x}vz}||x~xyswzmu|{|~ysy}|zw}yx}|x~}zvx~xowzywv~~}x~zv~rzs~x{u}z~yywxztvst}~tz{yyxsy{}}|}w~|yxxtzr}||vxxu}}v{|x|~x{{x{|y{{||}}~|{x}x}~s~v}~~|~{s{~~x{{zv~~x{xuz~{|{~~sw~z~zy}~~}|}~||}y}{~}~y{zy}~}u}u~z~yz|~}~}|u{rz|~}w|~v{pmmwt~~yw~xt}{qw{~}z~{xn~{|zxvz{xpzw}|xj}||||~|z}~}ywyyz~~us{~}yv{}{{}{w}|{|~{|z}{xz}~yz|}n{wzz{~x|ux}|~x|r~}z~}z}~~~y{|||}w|t}}~||z{|~}}{|~|}x|{{~}~~}|y}w~~}}}~z~}x|xzy{|~|~~{~}zt~}y}suy}~~~z~}||z{v~|z~~|susz~{|z{{v~swmltnz}x|~z~xtzxt{p{zu||~}x~wqxq{wv~wwtryx{{}z||{xxy~}xzwrzu{}pyut~|}|us{w|x|v~tszxtv~|}v|k|~w~y|x{zv~~vwmw{~}y~u{{~|{}~~|zxs~t|}yuvv{z~{vsw|yz}y}w}~{~zr~{~~qx|x|yy~x}}zy|yx|}q~vxzyz}~{|v{x~|ww|{}}yw}~}ytw{~{zv~uxtyw|~qz{y|v~}}{x~|~xxvxvww|wuy|||z}}{|rx|xq|uzw~}vtq}|{~xuoz|z}sws}{y|~wm}uz}|~{r~|~w|t}w|}~{|y}{z}{u|{}~z}}}|xwvz}~z}}y}~~~~z~z}}{}|u}w|~y}zw~s|xx}{}}~y~}~~v~zyu}s~}|}~yzzv{x}|u{~{{zz}rz{~}}p~mg}{wwv{s|w|z{yumtwy~v~v|uv|u~ztyvy}}zypvok}v~wyyq{t}{uvs|y{{wz{{~{zzuy|~||yvtmu|z|zw~y}}}z~y}{~~~{wv}~~w~~~z|t|~~~||y}~rvwxvxv{u~}y}}~z|{}~}{vzy~x}{}zz|~}}}}y}|~~w~~|zp}~x{|v}|{}}{|{v}x~zz||}~w|~}~}uz}|{w{|u}~~{uy{~|~z|}|z{z||t}}~|{w~zxwz|vy~~vz~}v{xzzluz}{~nxu|zz~kv}~z~t}v{vx~zzz{|s|}}qwws~zxx~~{r~{ytz|xxzys}zz|zx|}}zw~}|~txy~vy~wr}t}~t{y}|~xq{x}zxvuv~m~}{}u~v}v{x|kxlv}|}t~jmy~}|tv~iju{{v~{x|yz{~w{vwu|{~|~zw}z}z{~y}twmyx}||y{z|v|vxz~}||zm||zvxy{x|jx}~vz}~||w}zsx~}|oy{~}zys{w}n|qtxz~}wzww~y}{y~~||}w}|{~xy}~u~{||}~yw}v~~xy}|{wuzyyw~v{z{~|uy}z|y||~{{}~y{{zxw}|~{~{|z|wy~~y{{||~}{z{w{||{~|~}z|v}tw|~~y~yw{yz~u~~z}~}~x}|~|}{|{~y~{|~}u~~yy{|t}s}}~}{|{|z|}zyz~|wz~yyz~|z~|}~}x|}||zx{~}vz|wvp~wry~wo{u}u{is}|~~u}~ku}|v{xr}xi}r{vy~zunsz{y~|y}|{z~v{~}~sy}}z{~v}{v|~{uvw}|xy{zzw}{|~x~wuzy{xxy}~~y}y~~x{|~}w}~zuzx}zwv~~~w|z|pv~}zpw|wxw|~~yw}{}|{}zyw{{nu}~~|zzqxywy}zx}}u}~p~}z{zr}|zvy}}~|vvtsqvx|~}~}|x|~|z{}wz~{~|v{y}vyy|rz}||{|{~|}tqts{uw{yr|~zwyr}vz~u|y~{|zx}{f{~yx|~|y~{~zw}z}|w{y}x}}~|}{z{||y|xw|zyyz{yxutz|yy{y}|{{|{zw}~~{}v}|~|xx~~z{}|~{}}}~y|vwzx|zw|x{{su~rz}{~|}}{|zu~rl}vxt|o{~|{}y}zv~ut|m~zzytv~qsv}{{z|sys}vz||sw~{~o}spuz~xzwtr{{s|u}m|y|~|}|}~}||{~|~}{x|~y||x|x~~~w~}~xvyxt{w}y|~szy{~|}uswwz|vy~zs~}~~{zzv|v~y~~|~zu~w{|}{{}z}~|ouz}w}x}ys~{uo}{{|s{|~|yzz|yznz~xyu{t|ulw{yso{}|~yzrusuy{zw}{pvz~}zyyvy{xv|y||{x}l}{~s}|~~}ux}{xuu{qzy}or{w||vy{|x}~}~~}~|}~|u}~|~{}z~}z{tw}}}u|}{}|}}y~|~}zzyz|~ytwu~y|y~}~{u}~|zw~{zw|xzzw|x|}|~zv{~|w}~z{wz~}|wx}~}}~{y{}qxu}~|{{y{~vyrtzj}y~}y||z{}}{{{z}{qxz|y|~{yrv~x{{~~z}~~t~y{}wq}vzuu{s~||{v{v|ww~~wz{wy|~xxy{}z{~}}x~}{~|}{}{}y~}{x~z~|vz~}x~|}~xq~s{{z}}w~{~}~u|~~{~r~y~w{~{{pryb{s~}wy{yy|f}ltw}zy|vum}zxvm}vx~{w}t}~z~ymvrtzv|u}vy}tquyt~|s{|szsm}pvxvq~~u~z|}w}|{s{iqww~{|}}|zzx{sx{suq{yy}~~yz}}y{zpz|r{ywx{zyz{q}}w~kuzzfyy{|}o{|ov{z~}v~yzu||{~|y}x{^~{y}jexstuxxx}uudm|}ypzy|naq{x}xm{x}{~x}}y}{}}}}|wz|xs~||~y}}yq}z~~vzx{}s~z|i{~z~zuu}}|{mrzv~xy|rtwzz|wzs|{z}s~ztvvws~z~w{~}~{t~yy~y~{yyy{~|vvx{{}~x{|~~{{|~u|}y}|~z}zz{xy~z~}~~{}xy}~~~zw}|{v~{}{u}t{p{yy|u}~z{x{y|}|y~myws~vzxv}~mx|~}tuuut|w{~t{w~~uw~}}t}xtx|}v|zzzp{|zxx{}{wq|{||~wsvlzrzgw|}}ty{xtxpsz~q~t}zwxq~|y|}{{{|yt{}yy}w}}v{{yszy~}~}zuzzsyvw|}y~|}~|u|}r~ky~}yz|~~|{|~y{{qy}q|}v~}||||~~~y}t}~{yz|||{|y}zy}xz~yvxuz{x}xz}}||}x|w}~~wx{sv~~~}{|||{~|x{v~z{rw}wx~~u~vx||{}}yz~z|{|{~y|~{~~{~}}}z|}~~~|}|xzz|~}}|}y|}x}|~zqzszr|{w|ln~x|suhwt~v|~}z|xt|}~t}ypt~~wg|ouv{{vy~xy{x|u|||}}~w|t}x{sz~v{xzzz}x}y~zu}ws||yz{~u}}xz||y~~~~xyxx}z}z~q}x{{~wx{y~|}|~~}zw~~}}}~ww}~}u}z|}wn}wwwuz{xxx|wz{|~{}}~|z}ry{{tz~{}z~{{{r~~}u}zyz~{y}}|~{}w}zz~}}}z~||~xx{}~}z|x{z}}z~xt~~~zx{||~~}}{~|~}}zw}u}x|{y~~|~vx}{|t{~~yyy{{||}~y}~~z~w}|~x|~z}}{~}|~}{z{}|}{w{{zz~z{~~|}w|t}~zyx~wzy}~|z|w|y}~}~}x~z}~~~x~|y{}~y{|pzw}yz~oyv_}i~|x{~~gvyxwwvszc`wvuwt}|yv~zqst~s|oy|{y~ytzxxp|~}}|}xwy{~~uxzwx~|w~|}~}|ywy{}|~~}w~w}|~{}wqq}}}~x{~|{z~}}|}zx~{~{{y|{||y}~~x{~x~{~~{~~y~|z}vz|~wp~x~yy~}~ypzy||~{yz~o}{uvtuuv{yv{{}~~yyy~{}xwzy}yw{y}ytz{zw{v~~}v}}~zv{zyyr}sywvzyzxnzwuz|zy}x}~qw~~xvk|zz~{vu}~|~}}z{vsxz}z~z|||~}wwyy~y|{||~}x{~}w|||wvyv|~wz~{s}yyvzw~zy~tСl|vƚs띩ܗ~ڮ”o㡔ݨ~֙ǎqzΗzǚk|~|y{u}xz~u~~{|~{~~}}~u~u~{}s|{x||z~~}z}v{yz~}~zv|v~}|}~|z}y~~}x~vzv|~~}~zv}}}x{~}~}z|sy{z}}~x{{}{~yy|z~}|{z~{{wzz~}|||{p}t~p~~~~{}zz{z~~ux}y}~|x}~|~wt}x}x~yx}{~~~u}zx|{~y}||~w|{~}}{|}z|y|wuzzw~z{t{{{w~|u}zw}y}|}~}|y~z{}x{~u~~v|v~|}x{|{zx}~~|z}y{~z{zz|{~{x|u{|~~|~~~y|~~}z~xy{z|}w{}x~zz}~}vy||z}~}{z}x|}{z~~yz|}y||zy~z~~yzu{zxyt|}t}||vxy~x~}x}|v}}{~~~z{{v}~xu}xy}sx~~t{|}|v|vv}|~~{{~zr}{~{|~{{y}u}|ztw||t}}}x~}{|||||~|w}}{}}|tzzy~{{||w|}z~~{}{{z}~}|}y{z}z~{w}|}~qztzz~tzywyx{z|zw~z{{~lxvpzy~{~xxu{puzz~}w~ry|{p||x~|}~~{}{~{|wx|v}x~x|~|z~y||~||{z|}}{~}~~vz}}~~~|}|z|w{~}~{~~x~~y~~~y{|}}~||}~x}zx|zww}|}}w}}|}y}{y~zx|wy}{y~{|~|s{y~{|v}z~||}z}}{~~{z|~}{}}{~~~u}|}||px~z|}t{zy{yxzt~w}|~~~{}}{}{|xx~yyy}{~|~}y~vxzzuz}x}~||zx||~~z{|w}{z|{~{z}{|{|z~{}y~{}}vv|x}~}x}{z~}~~yw||}~~zzxzy~}y|v{y{}~|~y}~v~}zzy~{xzw|{|u}}v}|z~ul|z|}xs}zx||{}o||}v~r|}tz||{}x|z{~zu~~|zx|}x}}x}~y~|~~}~w|ztyzzx~}}{v~~~wy}y~{{~u}x~}vzy~{q~~}}z|}|}}|}{~yt~z}|||v{y|z~}{y|}w~|||~|u~x~{y~~~wy~}z}w}z|}v}{zx|v||~u|{{y|z~s|||wyvx}{~~|v~|z}~z{}~~||||~x~~{v|}~z~{|~z}w~{~y~~y{}}w~{zx}w~z~{|x}}~w|v|~{}|{|}zx{}|}uzxv~q|}{z~~~u~y}~}yyy~w|~r~|ww~x~||~~{|||zw}}w~|~|}|~}ux{x{w~z|usvzx~zy||x|~v|w{~yy{||zu}vxs}~~|wn{~|}sy|r~}}uw{~}y~}}xx}~zz~}~}}~{z~}{t~~y{}|h~z{}|{|xoyo}|~|~|vv~rr|zywt||y~t~{zqu}}w~q~vvo||uy~}|x~|yu{{w~}|~xun~w||y}wytw}w}|{~{|~xq||}~|}}}~x{~|}~}|zy|yxu{~tz|~y}wu{~x|}yvx~}~{yuwn|}|w||{~|~{|{wy}||~}}}~|yz}zz|~~{}~}}~{w{~{|{wxy}~}~z{{xxzz~{~~x}|z{}{~~xwv{~}~v}}y{|~|}}w|}|}}yw}}|w|}~~|~~}|{|~~y~}r}v~xzy~z~w~|y}~}zys~w|{}~{v}y{~|t~y~vxwz{}xu~~|ywy}~xx|z{y~~z}~{xxtzu~|zv}r{zyzxzw}}|~~wwx~|~|z|zx~u~y{{v~{|{s~~|||xxzu|z~~|~}qyzyw~}vx~u}}}z}zzyz~~|~x~{~}w}}}}|ysz|}}~|y~~xuz~z|~}v}~w~~t~|}~}z~|}|}}w|y|}s|{wy~|y}~{{j|uy~||vxmlv}{nz}~|nt~uju|}w~zw{l}~~uw}v{~}}wzt~u{z~|x}}}{{}~~~}|z|wt}}y~|zx~~~|~tz~~{q{zy{}{z{{y~|y{{}{}}{}}w}|zuyxp|}~x{ywx{u{vso}m}|x|wyoy}~n{z|uz~}z|~|yzwv}|}{zz~~|}~x{~m~|zjq}}t|u|{}x||~v|t}h~|jyx~zjo}~r|}ux}{ut~}|u~sw}~yyv}~wy||wvzyutt{~hvnvyvy~xx{{~wzwqzxvzxrtxxw|~~v~~~z|x}}{x{|z~{|}}z}~zzx|~vz}}|~z}xw|{}q~zy{~{}~|~|t{}z~y{yxyywz||~xzzx{xt}~xyx{{w|xuz{z~{}~yw|y|vzz~p|}z||}|zw|u|wyw{|y{|s|~|}t|r}}z{zwvxxzwru~xvy|~yzzz}~{}xz}|}}y~}~|n{}sv~~x|~~yzy{}y{~yx{xw}|x~|~uwt}|y}|{yx}{~z}v}|~~|y{|{{vz}~~s~||{}|~}}}~zy~y{z~}z}z{u~zx||z|z~yx}vy}x~_{y|||}l|w}~uv~pzvy~u|zt{}}|ut~~}}}}nupk~~vy|w~z}z}qsu~x||y{|~}vz~wy}~{~~yvo|~|v~r~|~~ux}s}~uzzw|~v|~{}}zy}y}ut|}{}||}v}|y~tv}t~uw~||r}~y|u~|v~{}xy|{~|}}}}~~vyxx~|z~|~}xu|}~~zilr{|~uv||y~}vzzx~|}x~|~u}}|z|vz}w{{wzt|~|z|x}~}}zzu}|w}|{|zz~~}yz~}y{~{}}~|y}{|~}|{~y{xym~~}x{y|pyyq|}~yqs|~{~wyziyq|}|}}|u{z}}{z}}{~~~|zq||~x|zy~u~k|}}{||~x{|w{~~|}~}}}}{}yt~{umy}w~s~p}v{{~r}}ux}m{v~|w|voywr{uryy}~s{~}v{~t~q|z}w{}z}x}zz}}{z|~~~v{}}~~u{tz|~yysuz|~z{w~}}~x{yyw{vyu|~zy}|{~w}~{}ytt{{z{s~}}{tqu|{}}}{~v{|~r~~|uz~zyx}y|y}|x|y}|}yx~zzz}w}|}z|}}~||}~{t|{~|vzyz{{v}||{{}}|}{z}|x~pvvvxyuw~yzz~}ztyquy{|{~sw|s|}}u~yus}{zx{}~r|~uz}zy~{w|{|ry{q~w{~wut~}}}zwyx{||{u{xw{zqvyxw}~|}l}|{vzxz|}~x{x{~|~{{~z}x~z~|{~t}wz{zzy}u}zyy{x}w}||{x}yyw~x}oy{}y|z|g}~sw}|v~|sr|~zw~~{}z|}xtz}u|zxr}y{v|z{{}|||||y~|{xx||vw}~~zv{|v~{w}zyxyy{}{m~xwxz|ymtv|rv}{|uwq|}p}|o~z{r~}|}t}s~{vwzw{~x|{}}~{|z|}|~~z}y}zy|~xz~|~{}w~{vzw}|z{{}|~{yx{~{}{~ywyxxy~{~}v}uy~yz~zzrp}yxtv}~yx~z{{{jzxu{}xyyw|}~}}zu}{}{u~~{|{~}~y}y~|yx{{{z~x}w~|}}zzy~x}uz}|{}z{}v{z|{||~{~zy~}y~uzp}}|zz}txtx|v~~|z}}{zz~v~{{uwzyr}~{y{}r||||xp}zv{}}|~}|y|~{vz~}v}~r{}{}y}zxyy~|{~~z|{}{~x|xz{xv||{z|{}z|~y{~|}|szyywuz~{}|x~|~~y|~{vz~}}zuzt{|}y~pwy{|~yz~z}|{x}|ww}w}z{}|s|{}{~qx~zmop}~w~qyoy{xoux~|n|~}w~w}yxzry{uz|wy|{z{|~v|r~w}vr~s{tw~c|yy{ryozxzptxvxqxvit{~j}{{w|x|zy{sh|zt}znx}ur|p|zU|xy~|y~}vu~z}~y}{|~sqq|{}y~}}}{}~ty~u{}|wv~}|~x~v}zzxv{}rl}z{x}~||v}~z||z~~~z|}|~~~}{|x|z|zzz{|wzxw}~|}{{}~s~t~xyw~{~zxwyrnr|{{}}y~~{{z}{~{~xx|~}yy{|{{}||p|s}~y|uu}{v~}vv|sx{uzx}s|yswyyy{}vswtpkzsz{s~zy{ru{zxyez{vz}z~~sg~v~~y}xy~}x{~w|}~~}||z~y~~|zxyy|vvz|x}}~z{~~|{z|}{{|~|}}~}z|zzz~}}yw|{~~y~|~{ov}{z{~xx}zy~w~}w|p}z}ts~w|~yt{{|{~}yy}ttxv{|~~xy~xv|y}{r}z~|zzv}xxyytwxxru}~z~u}y|}|wt}rz|u}~{xtwxvwu|x~|x}~tjvw}~|sxpx|v|}}vy|}y~z}{z~r~~~~||~wy{z}vv}t{|v}}{xu{}~{z|{zz~~sy|||s{r}|y{{y~{}w||{|}r{xw|}|ss}~~x|||}}v}s~|}y~{~y}z~~~~y|~xzu~~zwy}}~|}zw{~uxuus~}}|zx{|wy}~}~u~}t}}|x~s}v~~}}}{{~yz}|~x}~~|x{}|n}~{y~~{{r}}~{~}{~~|~~x|}~y}~{wx{}}~||}~uyy|}xwx~{{xs}y|~{ty~}{}{{{~~~w|}z|~}t|z{w}{~{xu}~~|{|}}y|y|z}~}}zyt~}}yx|y{w~y~|y|{z~||{y}yq~x|{~z|~||xp~{~|~w|}zy|w}t~u}{zz|~y|y~|u}y|{zz{}|uw}v~|~y{s~|}~}x~y~~z~{~{|x{|z}zy~x~{vxy|zw||ur}}~rwzwt~v{}{||z~y~sr{z~z{~w|~|xw{}|~~z|yvz~~}yw}xn}|t{~r|~~zvxzzx~{y}}wyz{}{~z}{n|}o}}~yy{wz}y}~~~x}z{z}y~xz{}~}}v{{~u}~xy}~}}vz|~||zw~x~|}}qvv~~~}x}y~{}rwz~y}~y|y~}wu{y}}}~}|z|w~|~~|~y}}}zywyz{|~}|~u|}~}wwt}~{~~usz~|}s~~zy~}zy}y}}r|zr~}z~zv~{}s~}z~~x}~ls|~|zz|z}}~|{zw}z}~}}}zz~~~x{||~|z{|{{t{u}~x~}wz~{|zq}y~vx|}v~||zz~u|}zyp~wyu}zw~|}{x}~|wt}}}~{|x}}|y~~~~~{||zyw~~~~}t{zy~}z}~}}y~v~~|}}~u~|~w{}x~yp{w|~w~}u{kz~zztrg{xw}{{{~u}|~{wztsxfw~zxux{p~sru|us~|xzz}yv|z}~}q}w~txw~zzy}r|~~~v{{|~{u}}yu||~z}}|x}{v{~zxx~~x{~~z}~xz}z~}{}~x|~|}~r{~{x{~|{xy|}|~}|z|z||~~z}{~~}~|{{x~}{~~}~~}wp}vvxu}tn{}w}{o~rhg|rzwrx}~v}p{fxuv}i}pvx{z~zuzlz|y|w}w~rfoqr{w_yt}y{zz|~zz~|~y}{zvx~w~}yw{v}}y}}}z{~x{v~vww{}~|}||zw{}~|yxs}{{}}z{w|~~~z|{wrr{vyx~|||t}}|z}z|yy|{||w|w|}ut{z~~wty~y~}~xxz{|~|yq{}y~|}z{~}}y~x~|}||}y|xxy~{{||~yv|z~~w}}z{{~xv~zv~~~~w|~~{zy}x{vz~~}x}|~y||}{}~zyt|{z{y}z~tt~z|}|yz~}{~||x~}|zwy~~|y~|~|}~{||zz}{||zx}z{}~~~~z|x}~~~}|x{x~|~z{}w}~}z~{y}~{|}|zzzx}}w|~{{{yx|{}}}|}}v~wyxyzy|}w~}||}||{xv|~zu}~z|x{wzy}{}}|z}{|~}{~{y|}|~}y{{{~~}|}|~yu}}||}|z~y|~}}z~}}~~~{y}oz~~}~|u~~xwx{~z~{{v~qz~|wzxgpu|xmclO}p~x|z{zt}}nm}pcOqxzwxx~w||q{{u{|gx{}rbz{xwccxlz||}zxy|u~yyl{uz~xr|xuuz}~}|y}xx~|}v~~}y|xxz|ty|}x~zq{|}}{~w~z~y{{}wy}z~}xry{{{y~~~vy{|||xwx~}|w|{~|{zq{w}~ywsp{xzv|o~{s~|vu}o}v~y}}}pwv}~w{uy~~||}|~~|y|y}w~z~v{x|}uy~~|}{|y~y~|~{t}|y{zyx|tvp{}yx||~z|}{tzw|~}s|}|wy{|xy|}u~r~xxz{z}{}{~y}|{u~y{}}yx{}t}}}}|yy~}z~z|{y~yz|}vz{~}xx~z~~}z~y{{|x|{u~{~}|{{||{{}~xu~{v}z~zy~w}y~}ty||~}ttyxw|x{|xwu~y|xzuswxzxos~n}{~}oz}|v{}~{wy|u{x{~}~{yz~z{yx~z{{x~v{|{y~v|~r}{q|{x~{{}u}}~y~|}{}~x~yy{wy{~y||z~{~{z~zu}z{}}www||{{}}}x~~}}{{zu~|~~us{v{}{~y{r~yz~xqz{{~|~{xv{|zzxz}}|zxz}||{yww}~{s{r|u~|z~~wz~szz~|{}~xy~t|j~x~gmrwsuy{|s|w}}vyuv~|~zw|xw{~|}x{w{~~}vywxw~{u~}|{wyz|y}y~~t{yz~y{|{z~~{z{{|~x}z{{x~y~{|z{|z{{{|}{}}}uu~|~~{~~}~~y}t}{}{wxw|wyz{{uy~x{|~zz{wt}{~}}}r}{{z}~}|wx}{yz|{{~~sz~}v{{u}~~~}w~~p|z}~y{{x{wv|w~}z}sxwy{~~|{{|z|t~{{s~yyu|y|~~|{yz{|}|~z~|v}}x~~|x~~~~~y}|yxzxqx|r~{yly}}y~wl~}|wk{o|xuzt||ot}~xvmh{yt}tq||}tzus{{{s}l~t|r{|}|xx}e|}tw||t~y~w}~{~}zx}zw}}~|~}}~y}~y~z|t|~z|w}}wxv{|{ru{zxvm}ux{pp|~|~|t}y}tz~|~q||{{|}|y}wuvy~wwx||}{z~~||~zzs}~~~~xz~~~u~~xsx}y~|x}wv}zrw}~w|z||}~}y|xq}xxz{}}|s}{z~~~{}~~q{}}w{}zs|y~}vsyyy{~~uwwy|~~}}~|wz|~}xx}}}|w~}|z~}~z~w~w{|{~}|||wxx~}ys{|xv~|}km~{rx}~|}r~|{vqyv|uo~z~uo~{}uslw|{pz~|}{vz~{}ws}~yww}{}~}~|}}|y}~}x~~|~wz|y{||{wzxu~~z~wy}}{t}}||{z}~{{~y}zxwz|t|q|~~zz~j|suz}v|zoo|t~z}r|y|tw~~sxvy}{ozzm}~~|x~z~~xx{t}}}v{|w}~utvltzzmruv|y}{xy{x~~~tt~vuv~~|{|~w||{y~{{yxzz~}yy}x}}uy}yz~}v~}|w~yz{|sxx|~twsy{u{w|y~s~{~||}}|}~|}}v{p~~{}}yv|yw}~wy}yn~~|yx}~|~u{~uq~|xwx|y|}uz{{~zs}|xzsr{|~|}zy{{~~}}y}||w|~}|y{}yy{~~xZ|j|ny{y{{{{rz|~|{|u~z~x}_rw~zvu~sz~my|xzw}|y~u~{{|ylyts|{{z~n~s{zow||{~p|~~wqx~yu}}wxvoys||yxyvz}~qwn|q~uz~wxwyt}}x}uz~}ywx~xz}yv}~}{l}vu}wtx}zv{z}{~~zy{{~tt|zzxz~}|{|}~~y~y|}}}x~y}{~x|ox{|y~nqsw}t}zpq}x}yy|tw}sw|a|{iypf}s~}v{tr~sy}v|z~~zq~uui{{{m}~x{{~|~|{~y~~~~zt}~}{}~zs{wvwzyy}k|{xy|mu{wzv}}{}{}yxn~|vypopw|zw~y}{~~zu}{yywv{u~v|z~p}z}{wx|rwxu|}{w|~w}xv}s~y||ux}yuzsv|s~|}~~|{y~xy{{{z~wzv{t~xv{y}vx|zv~~~|xzy{~z{}v}v|w{{{xz{{y~}|w}{y~x~|~}zx{zsv~|}{~~|xs{yy|~}o{{x~u}pyx~zw~|zz|t|}v|wxxxwy}|}~{z{x|st{|qxx|}|vut|m{y|w{~}x}rv{}{~~y|~{z~}|}~}}z}|z|~~|}}{|}uz}wv|q}z|z|}~wwq~|}q||w~y~}~~}|~~t~z{wt~y~~||}{~|~~~~}{~|~zy{}~~~|~~|}y}~|zzz}{}x|u|y{{z~x~~}}{z~}y~x|x}||~{~x}~|~z}w{|yz~}xyv~z||{wy~|z}~z~|{{~yyx}zuxz|~{~w~~~y}}|~}~~{~}xz|wu|~z{sx}{~}z{w}}w~|}}}{}~}}|}~u~}}}z~|~~y~~|~}{z{|yyy~yu~|y~~{}xu{zz~}}z~}~~~}{{x~{||{~}{z~~~xpy~}|}|zwz~x}{{~y|xxyz~|~y}}}s}y|yz~{z~|{~wz~v||w}x|w|w{|w{z{|ow}rtx|~}szv~x|~|nypvz{y~q}v~|zvwwy}||xxt}|~xzw}vt}}twy~p~xz~{|~y}}nyxzsv}uuz|y|jqux}y~z~z~y~}|{}|~{~~{wz~|{v~}}~xzx~z}cxpt{~t|~yz~z~}y{w~|rxv|szyt~yuq{r|y|||izv}~yw~zyvqrv{~~u}s~{~~}|}py{}z~zx}}x}{{~r~vzx}~~~|v|yy{|y}z~|~zw||}zou{}|w{y}~~~tx|}|}t{~t|u~~}~|}z}{s~}|{~z}|zxu~}u~}ut|~}{|}{{~{~z{|~z{w{zz~~z}z{}}zw|}{{~~}~yyu~{xz}~~zm~vy{yv~}{}xx~yxz|~zzuz~~{|}z~|~|}~|~|w}~v|}|z~v}}||zzv{t}~|~|}y~vq~v~uqszyxx{wzz~x}{zzxx~{v}{{~||{|xvzuyyy~u~|xx~}w~wvqvvs~x}zyz||xw~|~~|rw~~~~y|}~x~~{|z|||zpqywwmx{xux~ziuvu|~|~}tzz|{u{r|ww~{|n|yw~|y|zxyyr|x~wv~x~}y}{zu|}z|l~{y|u}tz}ylxo|x]|vyy~lpypt{yvt~pw|oyuzpw{}|z~||zqz~}{~|x}|v~z}x~{}xxzx~q}s{||w|s~~z~}~z|~yz{}~~}}}r}~~yw}~~z{}~~s{x}}{{x~}z|~}{zz{~v}~x{{x{}z~|{rzzhy}|~|x{~}~~v~z|~~{~w{~}y~||v~}o~|n}}z}{y{yy}{xz{vwxxzpp{z~{vxv~zz~w}{}}{~}~u~zwxqzu~~|~||~|||}x~{}}}w|}}{~|yu{z}~}xv}v{zu~yzwvqy{zw~{~|~x}u||yys}x}~{wy}x~|~v|{x}~z~xy~u}~z{{z}}~~}w|~z~u{{w~~y}v~}}~~~{v~y{}~yv~v{{~v~x{~{vx}~~~z~~{y}}v}~y~zz|x~z~yz~~xw|{{~{y}{}wzw~{x|}{|{y|}|{x{zu||}|{}~yz~}}|~|zy~y|{|{wz|z~y}}zz~~z~w{}|{z}z{~{}{~~sw|~~x{~xs{||{}z|z~{xv~}xz|{|~~v|vy|~|{y}t{{u{z}~t~wzy}h||}}q}u}{{xq}y||vyy~{x~}~|{||~vtp{z{v{}w{tz}}~xpxk{yy|x}}vszyu}}x~~t{}~~r|v~t~yr}{|}|q}~x~~~zw~}~~|}~{y~|rw{|||ux}s|{xy|}tsvu|{qxv}wqwxywy{tsj~tzrwzr|vvwv|zwt|}yytzz{|}zs~}|y{t{w|v{~|{{|~{}zws|~zz|iw}vvs{~|z~~rwl{{vwx}y|w{zzw{~vz}~{z~}|~{}z}|~x}~|{v|}}}}~~yzzy|~{w}v~y~w~~zyzyp|s~zzv}{w}z}}~~{zq}ry|xtww~~}|wwy~w|{|{x|}y}}vy}~{{xwzz||x~|~tz~ryy|~zxx~s{~{{z}}y}u~~{~~}yy|z}{q~}~}zw||~~v}}}||}v~}y}n}z}ut~{{|||yx|~~~|}}~{yw|}z~|t|{||~{{xx~w~~x}x}}z{||z~w~tzr{x|vwz|vz|q{|~~yx~}}~}|w}}~tz{z|{y~{||{~~|w|u{}{~xzrx|{yzy{}~|~~{t~}}||~~u|yxzy}~~~~x}}zzyx{z{s~x~{yx~~yuz~{|~~}st~}~|vr}yw{~{m}}y|r{xzm|~|~{v}|uz|uz~~s|ypyzy~~|~~{|z}{~|wz~z~yw||}zyyz|y|{{}z{}~yz{txn}ztt|~ytul~ety}|vwuxx}|~wpm|}}vwxzo}z|~z~x}xxzxz~tpwt|t{x{||sy~v{{}zxz{}}|{~}y~v~~~}~|~z{~zz|}{|}}sxs}{~}z{~}{{zz{~{{yw~}zv{{~}zy~}~~}~{}yxz}u{~|}}~~~}ywz~yy{t~|z}~}w|~v~ztoty}z~vts~vq~zs}~mu|}{{|~{}{|x~s~|nw}xd~}~~~supw{yz~{z}|~~z}y{~{z~~~~||~||z~|}}~|~~~u}~{r{{~{}v|o|~tx~~}zvs|vy|yqz}zu~|~~xlvs~twypyn|}uytzyyt}z|~xzzx|wz||}wr{z~||yx{~{w~}t~{~}xusu~z~|r~|vv|{~{|{~v|~}~z}}z~}x~y{wz~~{|z{|w~ss{x{z}w~}}}}|{w~{~xz{zy~||}~}|~szv}~s{v~}{ts}ywh|~w{yq{~{}w~t|{|z}pu}x{~~s}}}vz~~z}~v}{|z~y~}|~y~||p}~y~~~|{z~wx|~}pw~~||s~|vrzzzx}x~}r}xy{t}{{yt{t~~~y|xy{gz{~~|z}~xrz~|r~|~{~~|vzy|~}{y~~{xt|}w~x}ys{y}{}}{~t~{|xz~}~|xy~w}{}{w}}{}|{{~~{xz~u~z|||~}wxx~~w{ux}w}y{~~w{z|{v}uzvx|}xz}v{z~~wz}u~}z}w|}}|||y}{z~||wz||~~|z|z|{u|uy{|~z{y||~x~y}u~z}zw}qy}{~z{|zyy}~}~~|}{|~xz{xxyw}||u~z|~x}y}~{|x|~t~}x~w}}y}w~q|}}{|}t|y~|~wyzuu|||zy|rto~}}~}}~~uxy{yu||~zvy~~x{}x|xx||}|{x||xxs|}}|~z||~vsss|ux}{zy{y}vy|}zwozr~t~y~pz{yy{|w}}xpzx~~zvxt}}uy}t|y}uy|{{|~w{~~z}}~{{{~s~v~~|}~{}~}zx|}|~w|}}w}~zy~z{y|z}}zyy{x{yy{x}{}s~}}~||yxzyw~s|~z~}|}w~}~ry}{zv}~}y{yp}|nuxzz{t|u}xrx{rz}{|}srrywvq~uup}vu{w~wkxwxr{m~}~q}z}~}yq}o}~w~q}~|y~z{~{~z{{~ss}{xy{}|}z{w|y|~~~{|z|}~yy|w}{yvs}|}}}|su~{zz~|y}s}t}~vz}zz||w~yyv~~~{xzxj}{}~zzk~|xkt}}ux}x||tp}z}zj|uwxz~s}r|}{~}x}|~}z~y~|{{{{y{|{|zxvy{~~xz~{{v~t{z}~|sz~~y{v|zw}}y}z~tyqs}||~|tt~}z}y|{{y~z||~zz|}|x}~{~{}}}~y}|}v~{~z~~x~{}}}}z}~}{{y|y|}|zz~||zx|{~}{|~}{}y~{}}~vy}y|x{{|~}}z}{|~|~}xy~yzyvzwxw}y~yuxx}}~x~~zz|{}y{s~{|rs{v||~s~~}z|wywz{u||z}yrp~y}z|h~yy}z}||yz|~|~{~}w~}|xz}y}}t}~wzuwy|~vyz||}z}t~|}y|wx}|{~~}z~~{|z}zw~{vr{xzysrw}~zl{ypw}yzu}wowzux|zu~uprz~~{||{uvzo{|yfxvkyyt}{x}tpsvm{y|zq}vxx}~{|}z~~wvv{}{z~||zx}{zxslw}o{{oyk~{w}ztkzvw|tvu~zy}|x~rnw}y{{mv~}~wxzv|}}vu~p_x}|yyty~tvptuty}q|{s|npnvukytpyz|zw|}}~}zux{{yy|yw{~zxz}|zrz~}~~~zzyxy|~y|yyzzz{}t{xzvwy~{{{x{{y|srz|}zry{}}{{z~xstxuynnr~|r|y||{y|zx~}s~~ry~v{|~u|pwxxr}x{y||uwyzz~~u{ys~}~|~vzy~}v|~z|{}{~zyw|w||~{}v~{~|~zz{}{|~|z|~~wz{||~|zz}{}{~}|x|{{x~z}~myx~n}y{xzvlv}{}{x|~{z~~zzzzv}ozzxxwt{y~~|{yyz|}|}u~z}xx}r~zy|~x|y}}~{{|~~|oy}}yz{wzz}~|~{w||w{{|}}zszzow~y{z|}~}z{}|yz}|{}~|{|~~zy~~|zx{y~}{~v~~}z{x|~}v{~{}~||x~|{{~z|}}w~v}|s~{~|z}z}~~~~|~xx}{~||wz~ytv{{~r{u}{vyw|vpuvqt~twx}|w~zspktqvw}s~o`||{~~|~tq{k|{t}q~z|||vy{zuzyx~}|uzy}|}z|~z|~~~{~v}}}}}~~{}~zx|yr{~t~y~~{{~{|~w~x{{zy}z|~|{x}y~w{y}|}~y~xv|~u{}{v|zy~~~{x}{}~~yx{{v|~{{y~|z~}~~~}}|s~u|~y|z{r{}wz{~z{}}t~}|z}{w}}~~z{~z{}~}t~~~}x}}{~y}~z}|~pz||~}x~}~{x}~|}~~{u~q~|z}|{~|~~}|}~~|}~m}v{|r{zx\s{z~wkv~}z|e}|kltm`{|s|{~x{u^~ujl{~Qbxp}s}a}qh{y~|psuz{znm|v|yr}utrs}oph}|~~~{{z~~}}}{~{{|{{}~z{~}z}|~|yyzz|~z~w||r|~|}uvu}~}}{x~~o}z|~}y~~vxy||y{{z~{zz~}{|x~|~}{~}}}~wt|x|}j|~~z~}y}{~~}x|~y~vz~y}y~htx}wq{s|yym~x~}wzxz}|r}xou}vzk}lf|xr|y{z|j{yw|}{y|s~}y~e}x}xz}x{~w}zzq{wz|zxyr~{{|~}~|w~~{~}q~{wxzy|z}xyt}{w|x~zy{~{yz{~}~xz}zz~{}{{{~{}z~}|}z}}}~yzz~}s~y|xw}y{~t{}~~z|z~u~}{u|~~u|}~~}}}zw|v~~xzq}|}x~~z}|}yz{x~qwv~w||}}z}~~|{~~zqwtw}|{{|~v~x{y||xw~z~~zu~~|xz|}}~~~w{|y~~tzrtxz~~~~}~|}~~|{}{}z}~}o{{zz}wziozt~{tyw~x|y|~{x}~phf}xytty{lx{v~do{|tkxpywv~{~z~{yxrr{{ovsxvxq~}px{xuz{yxxz~sz}}|}|}|vnvxrpwscyx{lrou|hyrzu|s{qwtv~tl~}usuydw`~_qq~nuz]vwuycuSopu|{fmdntyvktyzz{mr`X~syrvrW~e{rzqpyl~cf|y`t{{rs{twt~wyvnk~qvyqz~z~rny~{~vyv}vxt||yh||wzr~|}sm|}{tq}yv}z|or{~~~}|y{~~v}}y{~{}}~}y}{{z}w~~y{~z~~||x~}|}~|}{~}{|z|ysw}}{{r~x~}v~qy}{~zrxxyu~zjx{zy|{~|~v|zz}z}|}~w|}zw}~~w{z|x|wv{~{}~~r~~ty}|z|}uw~~y~x{yy|zn}||ws~|x|zuu|{zuxm{~{}ot{~{v||~q~~|~|{}||y}{~|~{{}|zk~~||{o|}}{y{||~~~~|xy}}{~|~~}z~~{z|z||~~y}}xu}w~yyz}~}~{x|}zwy~z||z~{~~}q~|t|}qxx|q{}{zp~{wyvwkzx}wv{xzzv~}|zsw{znuquuvvvsz|wu{vry{}prw|z|}w{|v{}|y}wo{~vvyxy|z}uvz|yyyy~{~|}~~{~}z}|{}x}~pnv|{|}vy{{{{~yz~|xw{~}z~yz{x~}{}z}~}|~{{}|wwy|~yvx}v{yznyw}~z~}{}y{rxv}|~m}yyu~~s|x{}|~xx~xywv~~zzzv{z}z|z{|z~|z{z{x}sz~}{~z}~uz}~z}z|vz{v~{~}{~~~wt}~y|~vp~|y~{u}x{}~{|xwzwwvt|x~v{w|sz{z|{y{}~~zw}w{xr|zi~}y~pv}zppn}|y}uz|{j|z|~uuv|~{~~{yt{uv~yv~~|{y}|}yqy{}yy{yxxxtu}w~yw|u~~tzx~xxuv||mw|}{ywrrvn{{|{}{d|}|Wjxn|ywxq|o{vyfvggwrz~pz~~lx~wx|vxf~nz{ott~~qugwqs}yymvivr}y||xy~ytxzft}|w|u~w{xv~|x~uwy{{}wvzzzo}yzyy|xs}~u}|qg{y}{x{x{wz|z|xq|wzxyrxop~~}}}~yzt|v{}u~{|~x~z}}w}~~zs~~yz~||zyx|z|xzu{~x|u}}}~|}zx~r~yt{~}~z|x||~|zs}{|z|x{{{z{}~~{{{z~}y}~zz~yv~}~{z~q`w~t}wwo{yt}klztrj~~up~wzkinw~hzkhx{okzrtuxy|ywedtg{pas~x{|}}z~y~p~y}l||~lz~~|yw~y{m}w~wzs~{~}}xx{~z~twz{y|~v|zyzpxy|z{|{l~zxryx~rzwYpywvxw|}xe}}~sy}{~w}x~|~|{{}~}|vx{}{||{o~z~{|vyz{}}z~yz{~z}|}x}s|x~{~~}~{}z}wztw{pz~}~z{{|z{~{xq|u||{vzyqqz}zzty|v{{{~zy~{{w~|x|}{}t~~{~w{v~pxsw}~l|ztxyzx~}w~z~y{{}}|~{zw}{}|||}}~zz{~|x|~~y}{||w}{|zztwt{|{v}}}{z{y}|}x~|}ty~~u{|}yxp~~}}~vyt|~}zx|~}xxt|~}z~v|z~uu~x~~z|~|vx{w|~z}txrxy~{w~|}{}z}~wx{x~~z~|{yt}v~||~y|{}{~|xo}}y{u{rm~w~~y}~|{fnmxy|zkw}yytp}|{k|}n|y}|~|ty|~{wx{}w{}z}z~|~~|}xz|{{{}x~~~v}{~w{r|{x||x|}r{y}~zy{x~|~{}u}v~}}|r{y~~y||}~~{|{}vyy}x}~{|v}v}~~{|~}|}|{|v}{}|z{s~~{{v}zv{y||}}v}y}~~|~}w{q~{{~{~y}z~~vx}u|w~z|u{~}}x~|wxx{}s|x}~zz}~wn}~s}}~}|yr~}{zvv|}t~x~|}x~s|}w~}z}{vy}{{v~w{{|~xuxzyz||zx~|v||{||z~}xy}y}|xx~|}}x{z~f|ny}}~xs|{x{||{rntpo}zz}zxwy{|z}{~}}}|~|~~x{w}z~|ws{}y{{}~xw|rz}{}~x|xxz{}~~vryz}}{z}w~z~}zz{}~||{uq~z~{~{{tx~|}||t{~y~}}~zy}|~}}~yw}||p|}w}~{uw}u~u|x~{}x}ywq~v{~{|yu{}}w}~yz|{|zz|zzzwy}z{zz|zz||{w|}u}}~zv}xv||}yx~~{}wzzx}~~}y}}~t~x{z|w~|~tj{{{~}~z~~s}~x{u{y}zxnx~w{~}u}s{{myy||{z||y~|~~~y{{~~~px~||y~xzuy}~w}xwyt}}|p|{ys|w~~}}y||z{wyy|z}y|x{|}~|yuw~}w|r{{~vt~y}tus}w|}u{u~wv{|z~~|}}p{zy~z~y~}vs|wxs{{z~~{r~}~w~}~}y{q~jyn~z~s{yuzru|or{{z{}ty{yp|yz}}vz}}pz{}xuw}zx{}t|~w{~{}}zz}~~~|~ys|vss{~}v~zz|xztyz|~~|v|}||}zy|z}{{zz{yv~yv}~{z{|}~{v}}~wy~v|}~v|}||mzx}{y~{w}{{{|zw~|~||~{{w~{{|rwz{w~}|~|{|~}|}~~}~z~|~|{}~y{}y~yz{yy{x|xz}}~~}|xz}~~y|}{}~z{yz~~w}sx|v}~~t||yz||~|~z|~}~~y}}vytxy~l{|~}}v|}y~~u{}zyr|u|x}vjwvz{vtxz}}q}~oxttzy||xwqxy{x|s{v|~}qhqm|j{r}pnzls}~puz{zvj{|z{z|y~~~~{y~|~z|vv~yys{r||~w|}z{x|w|y~}}w|~~t~}{|vzx{y~~~~y~z{|}||~|~}|xzwz~|~{x}~~~~}~vw{}|~|xxxzjyk|}zs{m}~y~~sm{w~sw|{}qpt}x~~yo|~~}{x~xvuxyuj}~zuv|{}n}z~zu{qpsxuv}z|~{z|ywsyt{r||zus~}~~y|}y}|zywzv|}|y|}~|x}~z~~{~zy}~w|~}z}{~wzu{~}yq~z}~~~yw}{~~~y~~z}}|xy~|zy{z}o~z|z{zz|x~~o~}{vwzy}y~y}{svt|}~|}}w{y~~~~{y|}}zz}}~{{|{}z{{}}}z~|zx}}|u{u|}|}w{wyz~||~~}~|vyz~||z}wyyy}~s~u~}~y}|{y{y~z|}~xzw}wxwu~w{us}|{~|yux|{|~q{{vsp~yty~}t~uv}{{|xqnz}}wz}z}|sz|yp||v}sw{|z{t~z{{~|}tyx|z~}z~z~xz~}v}}|~|sp}{{~z{z~z{w}~u|z|xx}|{t~~lvvrn{~yr}Zzplnmu||y|~|xzz{~}yutz}ozqv{pvsd~vvvyt}z~}|}|}}w~{}vtvw}||p|||z{z}~y~|~|}{x|~z~yu}y}|wy|{q}}y{}{y}~yy}}y|yx|xz}~v{{o~~x|~|}y~|~{}|y}y~|z{{~y{{w|}w}tz}yyz|}|~~w}ry|||}}z}~z}{~|w|v}{}{||~{z{~|zz|~}}x|~y~u|~y~~||{x|y}xy}}xxzx{x|~|{{}z~xs~|{x~{tv|~{|x~x~wxy}~v~xzzryu}s|o|}}x~|~}|~|}~~}~z|~||}|~|xxz|{|y}|v}{~{tz~yxr|wq}yy~~}xx{~~|}z~}vu}~~w{}}{}}~|}zv|yz{}{qwr{}s}z}rw{~}}||~xyr~}|}u~r}~zyzs{y}uwzz{~|~z{~x}|xz~}{y{|~}{{{x{~~~~~{z{}~~||~}}~{ty~}||{~~}|}~~}~}}s~w}z|}}y}||~~zr|z~r{uv~w}wy|w}zy}l}m{wzsvuxvku|iyp}y}z|xy{xw~ouq}wx~su|zwuztz~{n{xzzr}y{uw|{}~y}yxy}~}tzzzx{|y}}}|}}}{{~|yx|}~~|}{}q}zz{w~v|}x{zy}uv|~x}~{}~z}~}{|z}|~{xz{{v|qx|yzx~~nr|tzttlzzr~qo{zytu|{}{~~wi~~yk|ztpxk}p~jzzq}z{|}tzv}v}}x}xytw~z{~~~~yx|~~zz}{w}}u|}~{|}{z|p~~~|pz{xz{t||}wz|x}|~~~x}{}~v|~z}{}t}|}y~~~~{z}tuz}tv~srt}}~uunzxvspyytpu{|~rts|}t}~xv}|w{}us~xs{{utvv{~|~nt{{uq}|sys|~u~|y}urwys|t|z}w{s~s|}iyly|yyxux}z{}e|y|xr~ql|||xzqt|l}m|myw|{sz}x|{|{}xy~v{}~|ww{}}}~||}{w}}u{~yy|~}wvyrv~}vu|zztww~|}s{{vz~}}~~}|y{{sw~~yz~{z~~~|}wwx}x{|{zz||xyz~{|}~|v}|{|w}~~~{}~}y{w|x}|~uz{{z~~{}v~|||pxz}{|}tv}}vw{y}u|{}}tw|osxwx}xt}vz}~{{~|v|}}~y}~u~t|x|{}v~z~|}y~||y~}|zyyz{vzyr|x~}w~n}}{nyl}~}{z~|z|tw|p~w{}{u~us~y||{|{y|{p}xzxy}{|z}y}y{v}~}|~|}~}~|zv}{~s{~w{{zz{}|}q|~yz{~}yz~|||}|~|}s~|~y}v}~}~~~z~~~v}|}z|~||{z~}zxq{|o~{wwq}~~xz|ytvzh~su}v}}}~|vwzygusjps~zjn~scyz~vw~nq}|f|sxyenwj~p~}y{usu}r{}ou~qwr{suzr~p}yzjq|csg{|w|tpz}uxzho{x~zmzr{_vz|q~ywz}st~t~{yszxlu~{zs|}zxru~}s}~|}}}x{{z}|~y}}xzu}x|zzz|}|}~~}|xw}~{{}~y~zx}x~~~}z}}u~{}z{~~~|u{tvxtuvyugzurrqqcNap{i`qh}kdePyirlxsqkpblxpydaljuwfqjhizeorv{whmesozpvutozgxyqrfo{otpg||jrufrvz{pqgcuZ{vs~ctltx{afPtrmp_xz|mbsfUoj~{afkYxaou}yqruTztsu{zzz~s||{{{vs|~{{s~}xwtuzxu}x}{~wy{~v{|~}{z|~~uz~}}{}v~~xs{}~yzx|~}|}xzwz~|}uso}{|~}xw~{r~|xv~z~}|~|~y|}{y}z}~{}z{vxz}}{yy{yyt~}z}}~{~~ux~~|~{|~~{n|~}~ytw{~yw~z~~z|~~~zu}~~vw}}v|yzz~~~uz}~{|}z~}~r~~}~~y||z~|{}~|~~~}~y~{o|~{~~yzr~hy{ywty{|k||w}zz|}}z|~o~|{y~wi~||~t|yxrsvyy}z{{y|}rz{v~xu}y{s~v{~|{u|xy~}|{|tt~yt{{z~wx~|s~xyy|}vzz{vv{|wzxyv}uxutqwyy|m}o}zh{yvzxw|y|xty~v}{w{zuvt|~uz|t{~oxy}xzuy~}~u}qz{vwvxtnowxt{}qz~l}zy~|tzxra}wow~}{ry|zzzi\{}}{}ww}|}qz|xqzuw{ywx~vsrunw}r~{s~wpq}oy}|t{u{vu}}|y}z}xttx|tq|xyy{syx~w}ytz|ytw}zs{|w|t}z~jzos~|z~~mop{y{x{~y}|}ww~z|{}||z{x~|~z|}z}|~wxz}z~t{v}ws{{y|~vzy~yw}zyx{z{zzv|}y}{u|x}}||~}~yz{{zx{||~}~zt~{}w}{x}z}~qyx~x~}|}|~|}z|{w~}~yy~~wrx|y}~}}~}z{~}~{}}}|||zxy|}}{y||yuz|{~yy|~vxu~~|uz{{y}t}}~}~y{~{}|{yz}~|}z~|~~{{ty}|z}zyyz~}z~~}~|~~x{|{x{xyvuyzxzrwx~~~tv~|z}}|~}u{|}y{oo}mt{u{~o~ryzp|~{uyx|~z{w~}y{}~{}y{{|}}t|}vz~|{}uxz|}|ow|y}}z}}s}h}w{y|~g}{yxyx||xo|xy{{~~{|~n|{}v{sfmzytu~~z~y~~x}~{~{xw{pz{w~v}|z|}{{|{xy}z|}~~{~z}}vz}~{{zu}s||}v|z}y|}v}|wv~}~}|zx}~~xy}|ouz{~|zz~z{zy~}w{|}zx~~z}}}yzvyr{~wyv}{~v}vx~|~~}y~ztx|}}x}q{{}pp}yr~x|x{i}}z~u|yzx~~z{}}}}z||{v}x~v~~~{z}~~~|{{yy}y{ymuw|}|}x||~}}~vu{~w{zz}wz~~v~t~}|zx{}}vz{zx~|xu|~}zs~}~}~}st~}y{~y~~~w}z{~~}zy|}x~{{x|~}|{|{w|w~y}~}}|wy{}~}{{zyt}|ttw~}}xx{z~||v~y}}|z~|z~}q~}~wr~|}x{wmvvt\zv}{we}mlyk|w|khzyx}yxoxrnxmznkws~|v~tVmlgW~~rxxosqur}tyrzpyt~~}vyysy}}||~|x~~yz|}~}w|{v{z{~{qsz|pyy}zw}p|ywu}y{{{}}|}~|{}v{y|w}{~}~|x~y~}q}s{ou~x~~x|{z{zx}}x}{}|wq~u}{y{t}w}|zz|wyy{wezsy}{v|y}|}yqv~||zz~||}uv~ys~sqnty|nr}_}otmj}UkPZwz{zo^vZc{}Uwym[|hl~g}ivbr]evlcsf}qjcreuozrthmysPrssT|gcympt~lwpqmidygocnwg}qic~xqvlpj}|~ijqzy~}}xy{}~{xz~|y}~y|||zx}uszyv{{}}~|y{|~||~u~}|~|{u~~x}y}|z|~}{stt}~|y{|{z{u~~y|}|q~{|z~w||}~|}v{{}}~|{~~~|}}~|zw{{||~}~yu}yzv~y|{x~x~y~~|~}|~~yxys~yrzyy{|~}w~t{{zwy{~v{uz~w}~{yx~}x}}w}u}}uxz~z}{~|ox}|suz|~|zyy|~{{|~|~|}|y||{wt~|}~{}}{{~w}}|z~|{yz{~~vnxzxxv|zvz|x~{qy~|z~|}~~~zy|k~|xw~}x~}~|}zz~{u}{u}zzyo{{{v|~v}}|}z~~zyz}}yz{{{~}}|{y~}z~{~}~}{~~}{|s}w{{~}|~~|~z~}|yy|yv||z|~|~xo||yz}|~}~~z{q|~t~{||~~~yw|x~}|}xk~~sp~lr~u|rtyoyt}y}xqtyy}u{|vy~y|~xrr|}|~z}kr}{|~{t{|ws~}~y}r{}}~z}~~||uu||~}z|}~~{~|rx|~r}v}~x}z|zyvv}x{~{~~}}xz~{|~~|~~wz|}~~z~}~~y~xz}|{vz}y}~|v~x}tu}|xzzu{xt{rwx|xq{{yys}~~py|}~zt~o~|z{z}~r~}|z~y|~}z|yz}vuv{|~zv{|{qwq||~v|q~~|}k{yuy~}{}y~zx~~{|}}|v}~|}y|~}uxz|xx}}~v|u}|}~|uu{z}|~z}~~{~|~zzx|yzw~}~y|v~v~}~}|xyo~p{x|yot|}|vw|t}|q{vv{z{|{z~|}}}~{y}~~x~}ws~rrt}ntu|yszx}}rzxt}~rqpu}~y}|||}m~}y~~~uxv|~{v~oy~r~~y{|w{~{|}}xzzz|~xz}}vw{{~w~zoxy}~|z{~{tz}}|}ywxvvszz~pyww|~w{{}x}m}ru~{{pzyxo|px|z}}{}~{{|yuy|w{|uxq~y}zz}y}|v~~y||}yy}s|{~}|u{n~}ywz{{y{~~}~{y|{z~~}}~}}|{}{}tz~|~w|x~|xv~}~}|wux~tyjzw{{{~r}vxuwq|{r~}urox{{x{{zqyoysv}}|zyw~vw~z{vw~}|q~zuoypu|{liwxy}yntqs{yyr|||y|v~x}yx{zz}ow}{~v{yxmx|lR|~utwzw{}u{vwl{z|z}mxm~{xt~rmv}~|r}ym{z}qxte~szvp}vop{|}ts{~}|w}}y~v}~{~}~{w}{x|~zvx|~|}}{z}|u~{z{|x|~}xwzx|}xx}y}z}q|{|~z}x}{|ww|~|y{{v~}~~yz~{{~}~~~|mp~~{{zw{u~z~}|u|y|{~v{{}}zy|z|{{y|~|x}u}~y{|{z~xzw}}{q}{}|~~}}}|{|q|}z}{vp{szw{xux}{z~xz}z~}~}{}~~u}yy~}|~{z}|~y{}}~{|~xy}z}~{}x{~x{~}xtz{{{y|xq|{}z}rw~~z{t}txw~yyww{z~x~v~w|v{}~yy|~j~|r{|vx{z}|}w||{xz}y}z}ywvsrz~}|x}vt{y~}y|x|x}z|~|{~}{z~}}~{}yzw}||z~~~}||{~}~~~|}~~sz}~z}y~|x|v}w}yy}|~y{z||z{r}}|}{x|||tzx{xpm}t{uy}{|{vz{wuxu~wzx{wx~}usyw~{}}{{|w~}|}}|~}{v~w~o~t}yz}~~}}yv}~v|y~w||~~{{x|w|}wx~|~y|tw{w|||y~{w}tvzz~v}y{||{~y~y}~~{|}{|~||z{|}~}|w{|||}zy}y~~{~|~wy}v}~z|~y}y~~}{|~{{}zz{~|{{z~~y~z}wxzt{~~|}~~y{|zw|}|z{}{}~|{|{}||}{|{ztry}z||z~xy~}~|~{u}yxxy~}qyu~}sx~~v}}xx}|{|y}|wsz}w~{qxyw}w}vkzwvrv~l}uwmzy~~z}su|{~}w{xqqrvt|l|jq~~uxvytyti{y~}q{|pvx}txszxxvzm~tzk{xsuyv{~x|yy~snkqwm}}rtt|wrqky|wq~t}y|v|yyz~tr|}px~yzswus|hyyxz|u~y}}{{}z{}vzx}gtzz|~vzyyzzx}}p~tyzmzzx}}sz|zn{z}opyw{mr}rgvy}}}{zwuprr|vu|y}tt|`zpt|z{qz{x{}~{ur~zy~s~}|~|upyp|zz}zw{}yz|}~~}yz~t}|vm}~n~{~}w{uvlmy|~j}srxtvx|{wqwtmh|jswvvn~}r|~iuw|{opw{}g{{rryzluzt}p|om}y}stqwus||uytvozxluyxzt{yzt~mz{mou~vy{{y~v{tyoyz}qvx{qzyv{xvqlswip|||qws|q{ww~y{~|}}w~}q}||vsx}|z|y{~yx~|}tx|ywyy}|}ywwx~x|u{z}}{{|||vzx~zry|zzzz{xv~}|x~{~y~|~{|zu||x}{z|~}~~x||xx~t|~z|w}{~t~zw~~~x{v}{vm~|w}yv|~~yzz}z}~}~}}{|~{|{~|{y~|xv~}~}q}|}{~~wy~{ywqz}}z~~}vvx}zzu{~~xw|z}~{}|{z{}}~}w~}||{{s~~x~yy~y|||x~z{{{y|y~x{{|zwz}}xy}}s||}}{|{z}w}|}{|}~}~}|~z~x{t~zz~}}}{|}~q~z}|q{{~}}}wur}}~zx}s{w}szzu{zx|r}wz~pw{n|z}yymqu{{}}y||zv||x|r~}}~{~|~|~|w|z{~~{{~~z}y~|z{y}~{~}z|~x|~{}t}|sxu||vyy{|}ns||}~|}s|q|~{xxtz|}}}x}xv|}}}u}~~}}zw}y|yzyu}||}{}t{w}x|xyzvq}x{~~{~}y}~}wy{||}|x{{|{y{{tv~zz}~~}{zw}w{y}o}s|{~|y|vz~~}||s|~~wz}}vv}}~}yuxz~}z|{||y}x}wvzyt|zuwz||u|}o}|}wxyq}~~xyk~{}qf{y{}}}{st|uyyu}v}x^~x}}u}xxsx{}~v}}|}x|}pw}y}xs~~z}yy}r{wz~xz{}|}w~~x}~|y|}z~yvv}xw{}~~~~{~|~}y~{y{uz~|}sz{~zv}{{x~z|x|~xy}}|z{{}y{}~}~|yv{r}}{{z{{|xzu{yz}~|x|xz~~w{~|~xx|{w{}|y||~}}~{~z~}|}{}}|{}yz}y{wzxs|}|{{}~|vz}}}z|~{||}xwst|xvs~x}}nwtrx{{v|rsyy}z~u}}}zxy{oyyxf|zxxzzxwx|tqywyy~{~~xpv~{o}}}{{suxxtut~vx{syw|zntx{y{|}{~~z{x||xx|{}}}||~z~}{xx|vyz|x~y}z~x|~}y~}~yvz||w{}}u}zxxx~~{m}~|sy~~~~~|~zt~x|||z{|zr~s~w{}~}{~y}{|{w}|}|x~w{|~x~{xy~~y|y|zyw{|{x~}}ry{}uyw{pyywy~~|vv}xw{{v~~~sw~|~xz{y}~}}}~||yy{{x~z}~z{}u~w{z|xy}}yw{}k}~u}pyrupw~||~{sfr}vuv{lz|zu~kptovsm~~kyxw`~~wy{zs}qbxqm~~z|~~||yzlsx{}zz~{}}w~}qu}}~wzz}{}z{{|y}qnxxzqu{ws|hxsuzz}v~}|}vur~gqo}v~v|{wturswyvl||yx{}~u}tz~xz|~~|yx|v|}~x|}w|{}y{}{~y~|{~~~|~|y|}|}y{|z~~{|~~z~vr}w||}~~y{v~z~}v~x}v{{~}||z|v|{|}}z||}}t{z{||x~}~{yyzyz~zy{wzx}}}}z|~{~w~}~}}}}}~|~}z}xt||z}}w~y|}}|z|{~~}vzu}~~{~yzzz}|y{~zzvw}z~y{~}}||}u{yv~}}wxt}~w~~zzyuy{~{||~~~w{z|~~y~wv~z}~|y}}qvy|~{t}|zw~{~~}~zzwxzp{|t~y||{yw|~|}}{~{|~}|{~z{}{r}||{}~{~z}y}{}gxuvvq}w~{zpo~}r}rqmq}wuunz~y}trv}}zz{}{t}|}w~}~|~o|xq}|x~|pzz~}}|u{{z|}wr}~}q}qy|xvzyzy|}zxxw}zz|xv|{z}zyx}{y}~ur~~{}z{|y}{|~}{t~~}{{~}z}|~|}|||z}~}~y~~~t{}}|~x~wyzzxvt|p}|z|{}{|}y|~w~wxq|~y|{}tq~y{|~uz|z}y~}|{|}||~u}vv~}|~~|{~~v}}|y}sy{}z}~}}~x|zt{z~}}xtx|{||x~uu|}~x|}z}{~~}{|us|~~uz~{}u|x}~~twv||~z||~|}u~}|w~{}{|{{~~~||{}~|s~t{|yr}||~v}}|}~}|{||}{{~zz|~|}}z~}}z{~~|{yz~|~}|||~y|}||~{|r}t{s{||}~|zx~}u{y}vy|{~~}wyzz{~v|zxm~wwpx~}{}s~un{~w|~|t||y~rqv{z}}|vx~{mvzyrjx{~}{{|||}{|}}ys|tv~}~~u~~z~}}w~{}v|yw}{{{|{tuyw{~}x|~mxy~||sr|w{{t||xyqy}yu~|}z~}~~{}~qz~}~}|}}||z~z{~~{{z}x}~||~|xz~{|y}}z||{|v|tz~z|{|{yyyz}~{|x}|x~t|zs|{x~ym{u~hv{vwly~x}t~|v}}|~y~~|s~z{ozt|yyxz{z{{n{{~}y{usy~{{xy||~}u~|~yx}}w~y~yz|yw}zy~~|~|~z{|~|{{vz{~y}{|vwz{zy{vq|{||zzz|~|y~~w~z|}zw}x}}~x}tyzz{tyw{|{|xuq}|}{|to|}~w}~|w|~}y{~}z{y~{xy{v~{z{~{}|zz}|||}z{~|{yy{w}|yy}|w{~x}z}~~|{v}ysz~~}~~{|zy~}qz{}|{~|}{z{}{z}~z~y|{u~~|~|y||z{}}~}}}t|}q{x|{|}d}|}|uuv}}q~~}zywzzz}u~{zx~z~~}~}~}|z{~~}{w|y}{||y~tytsrp}{{|jqw~zx{~nnurx{qxz|rj|z~~rxywy|~z}|{u{~}}v}z||zx}z~~}~}{{utx}z{{xzy{yrytzwyszw}xz}yw|yux~u{uxw|rj}}z{{{y~uwy{{|uu}|x{rxvzz{|r~zww~y~y~y|~}yq~z}~~y{~~zv}~~y~z{~{z~zyux{~{xu||~y|z{ts}vxmt~}nz~v~~yoe~usw~~{~}hx}z~{|}{y{{}{}}yxz~{t~x{}}}z}z~u|y~my}rzxw~|~~k}t{{|oulyzyxvxpow{~xru~~|zxsxxxx|{yusw~}}}w{x}~~}|y}t~z{y|||{~r||}~{x|uzv{{wz~xz~w~ryvzwu}u|v{~r{zozy~|uvuyx~wvrw|z}{|zvmv|z{|wr{}}~~zz}||}z~yy~l}~~}~}}w|{yz~|}{}}}|}|}}u|x}~x}{~{vy~~{{|~z~}|~||u}~|{~}~~|y{z{}|}}~{~{zy}}~}{p~z~w}~}~}}v|zqz~wy|}{}}|}}~~zx}z~{||}w}x~|~~~{}}}x|x~p~~z{~zw~z{~}}}~wrqp|}{kzq{y}~zy{}{yt{{~x~}}{yx~|v~~~x~}~~{y~}{~x}vv{xx~}~{}zw}{xqx~|w{~z}}{}{|}}}yqy}|wv{{~u~|xzxw|v|{}}zv}}~}~|}{y~y~~}v||{r|}zz}x}w}{~~{o}x~p}}wxw{~xyxz~}z~~}z~y}s|w|~zz~}~}|{{{~~~z~~zy~~{~{}z}}x|xz~~{||}|~|}{s}|{|}~~|}~{|}{y||{~}~~~x||x}vz~zu~w~{xzy|~~|~z}~v{~s|~}||w|{|zvw{t}v}~xu~v|txz~zvx}{x~y}~{v|{r{w|yotz{v{s{|v}|v}zw{~}}~v}unw{}t}zvv|{mvyt~~tz~z~|{|qu|~~x}~z}x{~{~|r|}z{zv~zw{}y|}{z}}~z~~||}}~z~{|~~~~u~wz}}}w}}}|o{~}z~~zyz}~|}{~~w}~}~yz{ox~n}z|itwz~y|}m}}~|~v||xtyoz|z~}~|x{~wwy|w{z~uy~tv~{s}{}~yvz|}~{|||~|o}~||}}}}}yy}}~xvz{zz{~~y|{z~||zyyzpoyxm~w}{~w|wwxuxy}||wz}}oyux|yw|{q{}xxxz|}xyw{~syo~yssvw{ysvtzy}w~o~zszluwy}y{x|}k|r|y|wvy|~~yzw~{{|{y{{oy|}v|wx}}z~w~~}||{}v~~}|~~}~~s{w|{~}zv{sx{zuqt}{~}v|~}yz~{{|z{y{yy~|v|~{{x{{z}~}}t||wq~xy~u~y~w||u~|}x}z{~|x~~xs~w|~~x|y{}}ys}||w}wtz}~py{z}~~v{~yxy|||{u}v|x{w}{z||yw}~v~}||~vy|}~}{x}}wxy~wxzz~~p}~x{{~|zzz|wxzvu~tz|yw|l|s|k~~ptrzj~w~dlz}|w{x{}~~}xs^x{w{~~~yyw}~{~t|w|}u}w~~~x~}z~wxw|||{}|{}}}{{wuzy{{z}{vx}y~r}|wy~y}}~~v{}yp~}{rtx~wvu}t{y}u}|{}yw}}~xwy~}z~x|y~r|{~{{x}~z||~}{}~}zzx{~}v{zwx}~}}zx~~}zq~uw|yv~{wvz~~||m~ysz{~{~}}wvozq_{ux}z{{xvw~l{u|~sxl~|}x|~}||~~}{}w}w{~~~~u~z~~~||~zz{~}|}y~~}}|}~~z~y~x|t~w~|u|~y~{xvyz|rz{~y~w|y}zx~w|}}y}|}}~y~w||zx}xpz~~~~{~}~}}{v}}s~y}|uvyz~x~y~|~~|~~uz~z~v}r~}z{|}|~yvy~|y~x}p~~r{|~}y{yvy|~|{|ut|xv|~~}vw|}w{~{|ztw~~y~~~us}~~}~}|wxzuzz{y{x~w{{~~x{{z~~x}zrpx~}||{}vy|y|{~zy||}~w~vwwyv}~w}wwx{wx}~~{zz{}wz~~u}~yy}|~xuv}}~|}{x{~|{{}y}{uy{t{|~yzry~n}up{{|}r{|z}}y|{w~zt|}~}~~~~xu}|~}wx|y{|xr~y||x~{~~||~~{}~}}~yyys{|vwx}z}~}~~{}x~s|zz~x~~vyy~~p|w|w~v}{{}y}{s~~|s~{~}rz}|w|~y}~vr|}~v}{~~{|t|||v{z~}~}s}{zxzz~{{}{}}~}|~{o~w}x{z~x~uzzz~yz~}zyxp}x~q~u~|}~{x}~~yy}}}ty~~zruxzy|~~}u}~{zz{z}}yz|~|{~}~|~~ty~~}rzz{yu||~~z}~y|z~r|{z|~~{tvy~y}}}~}}}}~~~zww~zy}|zz{~|~z~u{{}zt{|~y~|zw{~|zu~~~{{}{yv~~~}}zozmn|utnu|h{}~~sxuj|y~wsollyp{p{wnqgz{uxy}~x{ur~|rsuzp~y||v~ymv{xz}smw}}zu}~~{y~{|}||~~zu|z~~|x}~}}}~|{}}{|~v}v}}r|v~yu~x{}x||zw{zv~qtw}pw~{|~|y}~{~}}|zxv{w~y}w~zu}}}z}xyx{vyy{|y}~~}zzvw~~|~}ywz~}~||~uyw{~rz}~}}y}~w|x}~z{}w|y{z}|qw}|w|p|yw}|xv|~~{z|x}~y|~~|wz}y~|y|{z|~|qw}zzx}~{w{yx|v|~|t}}}v|}~}{{z{vy{{|}~zxw}y{|{}{~~{}}}vz}z{|yxw|y~}|{z|{pszuytzzmgz|~}upoqwksovhv~mr}xtnotj}mwv~zgoz|xzxwwnuzr}twop{zzhwusz~plvuquwqv|{uok}z~t|x}}~xxuwqiz~v}|rx}vjxs{~vq}~wwuux~vu|zs~|vmx{}y~~vqnz~wz|{wq{}~~|zz~yry}|dp}}{lu|ywss~zs}u|yyrpw{xzv}syvzzwty~{~qfk|wa~jn||roxr|xvw}npv~{y~zyxquv|t}v{||}ponx~wuymvusvqg|uvv~{szz|t}}~Sljm~y~txp}|vooqylvw{ywr~{|wsv}n{uzx~u~ypzmz|{xuox|v_~x{yw||r{{wyrz{yrz~vkurufss}w||{n|yu}vuxnt{|xkxo~zquzwkvtpn~zqrt~mkup~utshrhro~p~ry{{iqqqo|uypniw||}}|{~|{qx{e|s}f~|ztxw~pvgu~wrw|u}zvys{z||yo|y~zfnsttfw}iopZ~xxsrolyl~}}k}wyy|tu`ha}|tz]ni}y}vh~jezhjt\u`lhrl|~~{uxms}|n|{my^h}kx{iww~{oy|mymrukvz~ez{t~d|rw}ms|{~czs~uxspr}n{op}|zm|g~uz{}bt|wuhxk}m{zwscvk_ksf}azubzfu~}wayyyypry~kotq|}x~~~tvy}|{s~yu~|w{zz}s||r{sv}}~}ssuxv}z~z|ut|v{{~u{|~{}s|s|smxxupj{zvluztlpw|sz~u{|~~zhxrcw{ynx}~{}yv{zyy~yxzs}~z}~wy{|pl~u|zsyxnq{}lo}u}~zz{bsxbu|z}|lor~z~u}ly{r}kyz~{x{yy~zuwynv}|||||vyzk~~w}t}cg~~}yssz|tzz}trloz~yzyxwnw}p}z{fwuuzx~xvz||qyottwzzy~vzyxav{{y||q{vlu~o}zw}~wtxzu~tt}{whx}uoxk}nxyzlssx}xn~zn{|~xux~twxu|d|vzt~{zw|t~{}~}{jy}zw{k~|~||y}{t~}{tm~~w|}}}}x}||w}{t}~~uw~zdwg}owy~u~v~s~yq{o|wzt}|{r|{~tmzp^}xlyx~}}~vo|p{}~w|h~y~~vjwx}u{{nyzp{onskhquu{{zw~oxxvpx}|~xwonyxvt~}rz~hwz|qyu|~{~y{wmrng~z{zz~wwkypxy|~y|{s}ww{}euqu{epxwjq~{tso}kzr~vwwsyr|{|xxy}Tsu|{}s}yulw|szryhvtsozzm{dzxy{|~v{}mrwqzsw{|uzyyt~}f~~j{|{vsdh{~zzzxu}z~|{|{y~s~}{~zz}~|zx|}zmynyyyw|s~x|ryyt~{xzmwy}w{}v}|ouq{wzmrnuyx}vzvr{v~pryt~~so{v{mqz||w|~{w~uzts{uw|{|r}}tvyw||rq}}pz~sww}yywuvz|n~k{~D}wzk}~zou~p}]q~m~wxpzpylUwWW\Fyyiuz{x~y~y}S~wys{g}wuznpmgsvvnq{}|pviqwsw|s{zyz}txyxz|qȃ~~tw{yvx{xx}r~ty}y`{xzzQxu}}}m{y|{wuu|~rx|yrlw~v~|zysyoZwr|~a{}vy}oyqe|ktzu~{~~wu|d|||{x}{}xx~~u}~ugw~|~[\xzjw|q|`wg~~{ns`}~ibuw|{zzu{|fs~~ylzryj{yz{t{yzx~lx~dvx|ymqwxlyymskzr{{{iusq{wqqq~ynosu}xxqfx~y{wpnyjxt||}z|vxvcjuj|noexxv|s~~~}}{ny{nz{mw{mh|vw{wz}}yr|y~tmwyxwov~s{z]~tuprz|jzw{{x~uwony||}z{tmdy|xkzv~s}qr~~~xh|~}qwj~x{~tvz}}uqmb|jmsw~}y~w{jyl~}o}||~~{o|z{wys{t|iurz~||vpqq}}u~}wm}~ypvry|~s~w{zwzz}zxipyrzwyw{y{}y|}xy|}|~j~r{~x~~x}v~wwz|vy{wmu}|t|{}~}|ry|u}vyze5~^|{u|n|}}{yPuvmp\e~NTNeTt}~qWg~|s}~{~zyNyyH`p~|psy{~|w}t|n|y{yuyww|u}yhwvwn|y|}mktszv{wt~za}}}x{xy}}wwu~{rrx}husvu||my~wy}|yxxx~tx~{x{~{}z}wyuwxsu~|w{y|qz{trmz}rvz{x}|~t~~v}zzxzyvyx|y}r}t}}pt{uy}{xtx~{xxt|ymsu~wv}u}wys}z}tzz}_y|yy~{|~|y}zq|}~ymsxwukyyzoyz}vz|w}ylyur{wzz{y~{~q|p|ybxyyPsz~{x{{~{n}}~{lszv}^|zw|y~|y|yiu{j{idp|w~s}t}ytvw~u}{z|u~h}~sqxsrz~rv~~jwqkwkbu~xt^yz}wr}ruyvzuv||~otsmnn{tsvmh}{le|x|ezryx`|wet|rqn~uu|p{|yvuzxi{~snr^s~xru}iz~vw{vy|p{ry}vu{~||wl~s{qz|w~}{w}~{y~||yx}~y}|w{~{q~utjz}}}uw~pq~w}zvs~n~}|z}v{||vu}|~~w~~{zp}zy}op}}s~ws}vr{}vyyki~|y~fzuv|wgw|mtz||}|t||l{n}{d}|yw}a~~tyzyq}~pwj|vyzvw~|l}~z{|kymxlww{zrzs}t|}zn}~xw{~|}z{z|w}z~yyywzzu{x~zknyy~z|wurp{vyqwyz{{zvm{{~z}z{|uvsuqw{{~~u}|x~wx|v}~}|yw{x~{~u~w{{}z|to{zx|qv~sk|||}}xu|xuuWu|tizms~hn}rsg{gzr}w{s{yx|n{wlvywuk|mworo|yo{w|xv~v~~rxysZ|}i|{}~g~}}y|tyy{p~}{|}uy~}uuxpzxzru~|ox|qsyyysnbz{ztwm~{nvsxxr{x|ox{zxwabzz||x|{yw|vtcx}gm~nxx_w|v^s~}er~|{mtsu|px|sxsszou|{ly`y{vsxuw~}ln}tvq~~azdwkxglytev}}yxay|hf|zfop}{vy{hvpwsecumvrez{nzu~|{v~}z{dsy|xy~}Twnqxu{lx~gv{t}c~wr~x}|wzx}u|{xs~qqt}zpuutywx|t~|x}w{p~yiu~|zxu~}}ra|y}v|r~{w|{qp|||rz}wpws}}t~}zn}qs|u~yvzusqrt~|bx}ufmj~v^zz}p|x}vxr~gozzk~w}Ʉ|~{z~wter{{uwhmxuv|xnyw~{us}t}rr|q^_zuwonx|~\kfw\z|qp}zuzqpwxtv|lz~qse}}i|oyywtuzmwysz~dqqbf^xf{t~rzwv{wy}fz{{}}|yzz|v}}~}yyuo~ruvyz{|z~|~uwyrzwxtn~|u|szzz{y~xzytw~zx~|ozqx|{{qgjb{zzvvwy|}h~yzy}{}{ry||spvh}yvwf}|~rusg|x{yw}~w}}{uz}u|wz|d{~wurmv~|kks|}yp|y}|zsjq{p}wlvqww}r}c~l~szv}}{||~t{wzgw|n{w}vzz{jtt|em|~|}vvqnu~v~ug|wx|n}g~|syv}|t}zznvu}z}vw}s{~u|wolw~u|v{~}m~|f{|x{vpz{t{~vwu~{p~i}qo~u|pux}~z|h||xt{q~fyqtzwr}yt~|{mvd|vwo~xt{}yu|||{jxxwtcyzz}}}r{v~zty||}yzx~tzvxs~ywqx|v}|~s\r}pozb{pochtqyrygtq}rwg{pwzyv~dxśpvvurwzyku}~~g~zxy{}dquzwti~Qml}rpyq|{x~r{|{znx{cy}w}||}meu~y~|pt}s~{vtzkiu~}}or}av}|{}~j|pvmqyxz}wy}ossg{rq}lxz|{xxjgv}u|yy`r{~{ru{py|ztnyk}~|wryyvq||xm~m}fx|y{xy~zv|jx{{ruuxk{|q|qgzy}izopt~~p~}uwzq}~yv{s~wrws~}||v~y{xy}y|voyztx||z{z|z}vs}{}}|p|x{|yzzr{{t{{tyk|~{izzŒw_{]x{ulg|svt~|yvz{xzn~y~y{tmuer~xzrsqsjbzwzdmng}p~oxu||~zq|}~|y|{|~o~|~t|}y||yp~i~uv~yq{~vqx}y{{~xx~{~xx{|n}|zyv|~|{xy|{yxxlqn{|sd`|U~zuss~z{{cjo|ztxjkine|rxoihu}tk|luuxh{us|~tss~hiuwr|ttwwv}l|x~yt{n~ynhq}psyqqt||}}o{jy~oyxiq}ls~ox~p|~yqpz}}~uozqwwrg||vzs|hmxvq||pquoztvuw|tomu{n|vrp}nf~unts|k{|a|y}h|w~~q{~~vtkytx{~|v~vxwst{{xuvmwz}{xtoz}r~}zyuw~rurqxv{vu|syl~wv~~yvvuz}wmwr~{xwyuww{rqxqu{|frojx}|ry{|xzxyy~rm}qtq||tf|brpr}gox{isqpfxxz{|xtttp}|{j{~y}n}r|s~~j[|rvwuhqv{}rzso{{wuwzn{o|{pkustul|jo}|{oos}~vz|t]wmqx{qyz{jthzyyd{Pyw|wq~uvpxw~spyp{~s|j~w}\}uyq|{zyn|qq|i~y}}~ss{~zmx}zsgcl~s{nzq}~kqf|twl}~}{wUepvuwtxiexyu~zr{x||zzq{|y||ry}~{v}uy}wvw}wjq{avveurzylx{}pq|ywuz}uzvx{zyxw~y{uwx}q~t}}nvp|sy{xzz{|}yz}z~{{x}|{srusy}qh|t{}t~z{{qyt}z{os|||qqy~w|w{n{xu|jpt~nyw~yq~rf{{ymsmosunumymt}ukqyqf|x~vuy}qvx{usqq{{x}ul}{nc~|||}|tx~{hzt{mgz{{{zj{xxpk{okg~~}|y}~|zo||zrs{~}}pfzz|l_v{xWzroopshcwtuszzyutru`l~wt|{vxpvmrezuuiyytx}uuyrvu|}~ux|}p{|w{~}w}{wxxo|{zw}~}v|s{zu|sy|}ey}y~_}y~~v{sjtvx\{tyu\jov|{nhsʨunjo{u|q}nuztz}|w{{r~ppz}nso~{zixwgtzot}wvs|nr}j|qzx{mpjnnyrwp|msu|||qtwtpxvz}lrw|c|{w}nnzw}}~e{}z~[u}}vs}nvx|}mvyyv}tn{p|wyu{}vz}x~~m|t{~v~|p~|wvtz{ys}}zdnyizywW{~uzsy~zs{|{uyz|tztxxq}}{}w}s}sfvx}ezsv{}pg}~s~{|}~zylq{}vxm|~yh}r}|~o}xw|z|fy{|vlyx||zo}zu|ncq}]}wxj|u|ru}}~wx|mi{l|x~r\cxjy}`kzy}|v|o^xlyfl}v~||o~}p~lrq~{mkrhmszyxyz{znnswwht~s}zt{ntp~{ryjfzwz{ynfuky}|sury{z~k{ma}p~{}we~}mvvvsy}~~}z}}}qys|z|}}q|~z|vv}|ytxn{tynrosr~xzp||n}w|wwyuwwzx}vsz~x}nq~u||t{~z{xxru}xvx~ru}rsm}}xzuqzv~w}olyxzrlgxvsqyop|uzsxsuzqxzyeyvyrrmyyvat|iwt~ulxj}|~~}x{ypk~wp{{h`{jzvr{wi}sru~|m|}}x~ru{{s{ld~}tewsq||zzyzqx{Rt{{v{z~x|zk|lx|z|~so|lzy~u}~hp||sq~z~x|x}v}y}z}s{hzy}k||g{z{{ku}zk~nu|~||n|w~wsk~{~}m{~t~wzz{|~kfxim}|}{yzrstu|tywzu{{{|s{{}~}~}zoz||{~z|{{{s{u|w~{lw|~}y|qp~~~z}v}}u~{|{wv{y{{zyb|~{}~{~|{yyzrdz~hz|z}~|s}}w|}f~xx|xwt|werz~f~|~pyzxmykwpwzt{olerxzestwwv{~u|}xt}zxyyq|q|w}~m}p{}~}|}Z~{~uvsg~rz}ww}{}ptka{tw|u}wd}nzvw~xo~}v}j~{wvnnu{xw~jy|zwxfv}pl}hv|v~wvqx}{pzuquxnwy}}xzs}nw|}dpy}{ullwu~zo|h|x~hyyr{}}}ptvwwvwx|z}z|vwsww~ysyv~twzyexzl}|pwo~yzuf^o~}upzvxv|qj{t{~|y~|uvs~}{|ss{vrvq|~kg{joyt~||{xuvwpxs|]yw}rzz|{sb~{vv{t}{m~yuz}h||xw{zulvx|zzz~t}}nz~xy}{{u|pt}~{wxxpqzy~~}~||wozozykspo|xs|s}y|}xn|||wupuruy{zl{|uvz}jtn{s{vvosxx|{|mz~|}l{vufow}x|szr}yssq|my}u}~oyx~~w{yzz|l~w{}{}o~j|uy}px~x{t{otu~~~z}x~zth}y}~q}fq~zqwmp{sy}~t{yrs~d{|rw{vwnzwvp}|q~yt{|q~lz{m~~nfnroyi|tvz{|fyrz{u|{{www~z|wr|w~~}oy}vw{}~tymzrxi|zf{uxsw{}ry}~|tpvyy~q|~~q{xwq{qyyz{xq{}xu~rtls}u~tnrs|t}u}y{tyu{|zv}|o||}{{v|r|s~||kwm}xs{w~{x~~zq{ztqcp|}zth}kot|tmwturw~zv{r}|wz|wx|z{txtt{{xx{xz|xpx~l}su~t~~|v~}r{z{}}{z~sq{zw~|wu}|~|}y{}}}zs||}zztzx|{{u|~z~}s~||p|{{rlozyyy}qzvyl{gz|rjuytntzwrkr~ry|pjv|}w{_nwz~jv~}kM}tzywrms~z}yz|y}vt}q~~~o|pvw{~}szk|z|s}n}}vdv~p~r||s~}uz|v||zuz{ws|~}l}q}}tx}z{~brytzp|~}wuwuiv~v|z|q}{zv~~~prxxxznyyz}owq}}yt}ewrvvitjjwszumasa|yytw{|{kykkz{li~{|wxzw|ysrVqdq~{f|zvklsyh}suoj|rmwsx{~|yzoz{y~wysq}zw|rex~pz{~xy}uxy~|{z~xv~xn~|v}xtxz|ts}z{|~txdp~p{syqxszmy{~~~{fvz}}yrw~{ygx~z}vryr~wi{s{wws}dt{{~q||x{|zsiuq~}sxrw}x~~~x|x}f}w~f|zjsw||{s}t|zz}|p{a}{ta~iyu~o}kiTd}qzuq|{x}ywvhu|uoygh~}}}ttxrs|v}|ss}}~{}yyw}{vrs~z~yt|kto|w~v}zr|u}ws|{y|}z~t{}yy{p|}}wuv||ktyu}ppmzuwz~|zxolz}zwy~v{~x}~}s~y}z|zz|y|v~zvv{}}{{{uu~{w}ln|{{}z~yrT{x|}~zrz~fm|}Zth|{pwvyvz{v~}zryvjg}y~y|t{|o|lvyqvxq~ozttv~oxzz}|}zrxqt||}vzwrzzpyrnzxz}k|x~~zwwxz{wwsx@y}sqk}}xex~}wt||xrw~uvPpwoq~hzwkxx||{u|ius{}}k}rg|s~lthyktyi|jl{g||~q}q}}~x|~tw|jv}itn{ypwwzp}g}x|ly|xz}oyoumz}|xp~}}xzyrux|{mw~{xyso{{zom~|~xf|{rpu~zr{mzmqvy~|{{puxqqvxvx{xw|lxmw}mq~xzs}|~q{x|{u~ow}vtb}vwtzjo}rn|~~ym{lu~ysyzizz}zz}|a|v|w}}|y~x{|}||x~nqxzszv~w|~twrszrzxzosz|}}awr}tzmbfz_q}rXgp}xws~~wyzv}ap|u_ya|lt~xsy|~v}yxk~|zw{Qitwo|rv}~z~zzxvytvxotqy~tr}zykxwqmwywpxwntvny||zz|q~t~~t}stqs{wsm~xo~jvv|o|t}t||oimi~u{swwxzx{{lpu|||wv}{}~uyyyw~|syyz{vju~jv|owws|}|~~r{x~wvxxzq}t}wtn~j{xy|{mv|n~z|{uwxyq}}{}~w{svuvyxv~qw{~z}o{~{o}wuuw}zx{vx{wvuyswpz}~}}qy~rzw{|}z~zz||{}o}}{{{wz}{xt||q{tx}sxyx~y}vzz|{}}~ry~~x~zvw}{xxvv~~{zr{~~jz}syYxby}wmaxypu~izvr|{byz}if~x|}jvxpxup{ycyq~{iscuwtjus~yy{pxq|pumurh\vox||e|ui}mzt~zz|{nw~qj}|{xtuu}i~v}{|w}xzn~zx|s{|xy~~~qx{rn}~wy{|~n|nw|{x~qs~|ivxp|~|f~xuvyvz}|ukwvzx{|{{tz}{z{{|{v}yu{{y{zqntgz|tzvyzzt{rz|wiy}}rqwwzisj|~~yz~sy|}u}t~xtumS~z~{{{z~{s~|e}|xtq{vn{}zuiyij{oq}w}{|uwxjv~u~rz||~zzhyyyu{w||w~}~~~vz|m||{}~{u~v||||{z|wuz}yxx~xxq|~|v}vtvnt}~j|o}{~|kq~y~{zsu}|xxx~uw}v|{uz|~{r}tuu{w{i~w{|hzzyt~o~s~{yz{krxu}{z|xjw~xnu}zxnwx~}{Xsq~eks{x{|xoZ}nsf{tt{xuczl|l|}p\y|n|tvy|st|{wn~wvrvyxlw{y~zx~ox}xy}nn~vy|~ty~|{ztuu}}q_ypz~wy|yum{|nwtzx|~~vy{{{p|}tqs~~pyxt|w~{p~p{zs~w}wsv~{~|sx~~~}{rpzyvxj~zh}xvzz}zsxzq|~|tzywxf~qpxq~{m~~l||zds{giyj~v~pw~|xuvovtu~di|zf}wy~|n|qgvz~_zy}sZ~uKzsypu}vsv~t{mhxvwwz~ky=}|ntyzl}~qxz~{{w|uyxwy|yw~u~w~pt|k}zmt_}uty|~l{r|qmkzwqx}t{u|x{~u~ukrx~{}xyz}rsxq‰hxw}~}uz}ne{|pptxrq{yrrzvqo~wr}wujtvs|n}}qxjymul}sk{~{qnvp|r~tuutu~xrv|wu~n~ys}av{ptvq}tvuz|py{fmqubows`~rtxdyrx~{bw~~||{wwzvzx|k~w{x|ux|yvn~~|yt~|}ptszt}}}wzyxy{||xvw~z~t|s{|syw}leuybt|o}qxz}mww|yjsmq{}{uqU}}nz{azrfzf}ynb}~xgk{{wxzv`DŽk||ym}zevpux{{ytjjvuomzsm||oxy}gv~ypx|{yuzw~wzyokpzxux|g|xxz~|zzq~nrxur{t|v|yzk{vzt}sw~tqvyzu~}wurwv||vu|za{|sv~y~s~wz}cyuiqpn{yx|yyw{owtrt~s}vzv_|{s}~|~txr}zyvy}ypxw^}~}v{}{rlz||}h{mvd{v~~|{wpoozt|}vj~~|us|suuz}yz{k{qru}nYl{~yn~}uwwut{sowm}z|}{}zzk{v{~~gz~ou}wzypvvxss~vszk{kruw~ut||qnw~v{}uytq}xxrz\}zs~yvp{z{q~y|t}~~rxj{~~zrvsw}v{tv~}qzv}ox{\m~k|}~xyl~z{kq{|z}|yv|tx}y{zy{unnzv|uv|n~yo~}{x~hjp}{yw}u|~{t{~|ys|zz{}|sw~zys{}{puyjwxy|i|zkZxyRu||vlwtyY`~xt||zz{|n|ddi|~Stpzuyv~}r{yn|}qyzpsz\w|rt~wvq{vprzkg~Ykaw~q]y}a~ryi~{~~n}||x}umgyzz}|btg}v~eto|hp~x~xuux{}}~|xx~|soyTt{sv|s~{vrvw{xpzvxmws{q}}xrrvtzk{{yzs}ixxxz~|x}|stu~us}xvxzrwxr~yy}~{yy|wpr}w}{trfzTz{Gyzq{r}z}{m~a{xxt|zRpyiz~Z}ynyZeUXy}{q{o`x~g}zqzZ}{vt~wwtw|o{wy}~t}~wu{}~{w}|rzu}wwvax|tk~ttuu{{rqsvln}rs|{~|zzvxu{~|mzru|v{|}vyv{uy}zpm}m~trx|wx|zx~f{ypq|yzez}y|w|~{t|{vvu|x|y}ovmswvrrtr]y}p{{s|{|}xk|uc}}qv~~~pmswpqy|zuw}z~~ks|vv{vkbzc}uu~rzsx|opp}x~um}}st~r}t~|t_~tyzp}y}z|vtuzwzSz}}pnpywh|hoto~oczhs~us~y~uougzv}yz~{owrz~vzh~{}~rwdzs}~|zuvu~zi~{w~~rttxtt}vzyblyw}vv|tqqw`y~{||vtit|v|zyrqzn}yw}~zistxy~zrzup|zxxyh}yq{e|}vucjxup{~vuvtb~{v~{yz~u|vojkyqwq{~txZqrn{px~gwvQ{rv~jvx{{z^|^liv|~]{ws}t{luupy|nwwzs~}s{um}{Lkt{u}oxy}r~gyownjwswondvqwtzn}mkioqzt}uu~Ui|www]quzryx}kunnp}mom}jpo{nxx}l{w|ut|||zs}|s|zv~wzzx|{}{ufxg|}{~}vy|y}~qtz~}zyyst{{w|}pny|}yq{|yrzto~xxxe}~gyzaw{|cpgr}orvurwtw{fly|~}u}zuwclgky{w{tsr||xt{}~w|xz~wy~{w}||zny|t|~{vxxs}~|zryr{vx}w{{f{{{wsvxmvxow|~|{y|~s}m_zyz}xlws}{zu}}wbxx}~y~zz{~nyyzyxkkyu~g|xkj{jwhr}j||v}{{w{vsuq{|yyp{~tu~{yz{}{vt}ho|~uw|j~dx}o}vxqrwu}}x}z||fzrp}}wvsxr{wbuzl~z{~~xc}tq{mvthyv~|~i{o|syzptpuzp~}}wlw~my}xv}~mvp{t{|xw|z{zpwx|vxuxjw}s~uzuywzyhtvz~w~~|w{rwssp|qz~rqt~u~}}ru{}wy~mpsytzsq|yoyozx||y{{ttrw}}}zx{~y}~zyr{zwzliszqu}y}|untu|~{we~iptrx}{}jvvk~q~gw~lqutpxw|kur~x|sp{{ns{mhgsozsl|}zvm{}nyx{}{xvzrjvm}~~yk{yy{x`t{q\y~tmyp~m||mup~l~ro}y}spxmzvr|sytt}y}}z{}[|m~t}oszy~~vw{ouwiyjz}p~yttyruy|w~}fkw~~|_p|}m|txpe~pl|vext{smu|uuwwz{jmusqzpqqpz|ytv|q~|ztq~zx|xxyx{{yxq}z|ww|}{|uyylsw~|~tm|ly_yr|uzrt~}x|xlprzzoash{yj}usqysrywp^ttttxpy}~}qsvky|ozpzuq}urqzzxxupux|w}xl|{vnp~|c[~xfbwsmx{rywfu{q}}~pwuz~x|u|rr}gyszjy|xs}{s||j~|u|~n{a{ou||tuyszy}u{y|wz~|svzx~x}y|pstyzzu}wtzzvw}~txty|ys{o{q}wt|~y}}t{y}}~dvrzcox_wt_zsd}nq{csv~zyvY}}zx||yc~|qzz|q|~q|{x~Zxl{bxvn~xxx~xvwu}ksf~z}{rrxv{}xz|wrqo}trlt{z}v}w}~{|yz~|t{|ruv|{~utpp~uo~}}t{vty}{tv{}w}kwwyzsy}{zyryx~zx}z~sv~rwp}x|}ms}{x{~`vzp~~w~vtw{ystwu|w}r{|}q|{|zsy}m|~{n{twhyozsx|~u|yr|dn{{pz}xjxwxt{}|{y|qrvrymv{vykwru|}|rpenyuj|ozy|x{{}p~s|||~}zu{~xo}ew}zzolv}gwrhyyj}~~wuj|xcl~{|{s{xus{}lumye|xs{tu|}{y{mxv}vtwtfv}t}tnznq~mu{g}zs~zoz{wkxn}}hu}yw{szr|~poaky`z}w~|{rv|wy[oz{q~h~{t~~vuqrh|\rsrytvw~vzr}xy|~wf~vxv}y{~nsuvhvy{]y~qws|~w|tzynzy~|~z{c||wzr~zyz~{x~v~uz}|z~}{}|u}~~xxuztnyuyspwtonlux}k}y~yn{~xqkwizi|rw~sx}w{}xx{t~op|n|yqpl{yxzt{ux}~uvopvtuo|yuw~vwpsww|v~|z}zyzoy|wxlxu~rnxz|ly}{z|}u~v{ww|uu}u|xv~rqvy{wnrt||~udn|xrymoy}yvvrh~vl~y}~ty{x|z{}ylawymh|~w~}si|qzp||s~pt|}|n}{zy~u|}}znyxtd|nulYUYYbMYYYZdmdYWgYYLYYkYtdYKYYYYYNYYc^YYYYiYYYfYYYYYNYYYYPLXYYIYYeYYYXVYSYYYYYYYYYYYYPYYiXYYGYgYccNQ`YYYYYWYRYhdYh`YYYYaYYYYYYYYYmYYfYYYPYYe\YPYYUYYYYQYeYaTYYYUYGY[MYYOgYYUSYYY`lYmYYMJYRfYYJPYYKWYpYYtTVYYYYYYnOYYrYYY\YWYYYSYYYiYYYYYYYYXYYOYFYYYfKYYYWkeYYLYYYGYYXRYYYnELkYNBYYQYYJY7dYrYYYYY\YYDLYYYYOXYYcYYYYYTYYYY^rXYYtYYUYYYWdYPYYYYYYYYYYYYxYYEcYYsYIYHETOHYYYYYVYMYRGYS]YYYY[YYYYYYYYYHYYEYYYKYYFZYQYYGYYYY[YKYLTYYYUYtY>mYYtIYYPfYYYdbYQYYMpYk>YYkSYY|BYKYYJSWYYYYYYF^YZQYYY]YnYYYTYYYFYHYYYYYYRYYfYAYYYFvYYYZ?EYYNYYYSYYbIYYYZpeeYNlYYMYYjYpcYPYYYYYLYYfbYYYYjYYYbYYYYYIYYXYQKXYYLYYeYYYWTYNYYYYYYYYYYYYRYYe[YYHYgYehLQbYYYYYWYRYkdYmcYYYYdYYYYYYYYYiYYeYYYQYYh]YMYYSYYYYMY^YePYYYSYKY]KYYPhYYQRYYY^tYhY\SLYKfYYJQYYOSYmYYkTVYYYYYXnLYTsYYYQYTYYYPYYYfYUYYYYYYPYYIYDYYYeGYYYVicYYMYYY=YYaIYYYXE\^Y0VYYvYYOYK@YDYYYYYdYY@RYYYY`YYYYYYYYYGYYZYV7YYYdYYZYYY[LY;YYYYYYYYYYYYhYYTDYYHY^Y5MK^CYYYYYYYAYDZYZRYYYY-YYYYYYYYY8YYNYYYVYYA*Y@YY\YYYYIYfYK0YYYSYhYCEYYOcYYG?YYY@IYVY/IZYHWYYQIYYV>YaYYlPXYYYYYYIKYZUYYYIYPYYYOYYYdYKYYYYYYHYYRYAYYYJTYYYSZLYYEYYYSYYHFYYYGVBRYRYYY_YYQYGCXFYYYYY`YYYmTYYP\YYUYYYYfpYcY_OMYVwYYLTYY:\YoYY|TVYYYYYXfLYPbYYY[YZYYYQYYYeY`YYYYYYQYYLYLYYYjEYYYYlrYYTYYY:YYX4YYYT4:eY=5YYUYYDY*OXaYYYYYUYY7YYYYYUYCYA=YNAYYYYKYYYYYYYYY7YY8YYY:YYAKYIYY?YYYYSY>YGHYYYOYyY=bYY`9YYI^YYYUSYAYF=dY\2YYXEYY/YFYY9AWYYYYYXBTYHSYYYUYcYYYFYYYEY8YYYYYYDYYKY*YYY6xYYYY3/YY9YYYUYYWUYYY`W]cYQ\YYXYY[Y`]YWYYYYYPYYc]YYYY_YYYaYYYYYXYYYYRYYYY[YY_YYYYPYSYYYYYYYYYYYYZYYZZYYRYTY]^OSXYYYYYYYXY^\Yd\YYYY[YYYYYYYYY\YYcYYYOYY[^YXYYTYYYYOY]YbUYYYQYWY_VYYXcYYTVYYYb\YbY[PSYU]YYTUYY]\Y]YY`RYYYYYYY]NYUcYYYRY]YYYMYYY`YPYYYYYYVYYLYOYYY[VYYYNY\YYTYYYnYYGrYYYMX?>Yt?YYQYYRYYRYmYYYYYYYYdHYYYYEYYYIYYYYYjYYXY]_XYYTYYLYYYX`YpYYYYYYYYYYYYUYYZTYYiY]Y``r\qYYYYYXYuYGIYHDYYYYXYYYYYYYYYcYYRYYYiYYkTYpYYGYYYYqY@YVcYYYjYQYHMYYQGYYvgYYYHKYDYXiYYTMYYbgYYZ]YFYYApWYYYYYYM_YwFYYYwYQYYYdYYYMYxYYYYYYbYYeYuYYY[NYYY]ULYYuYYYbYYDLYYYHSQ_YZNYYeYYPYd@XTYYYYYNYYYPYYYYCZYYLYYYYYoYYYYNfYYYPYYHYYYZHYbYYYYYYYYYYYYIYY][YYSYOYuaX@OYYYYYYYTYMQY[GYYYYdYYYYYYYYYaYYYYYYMYYf]YeYY|YYYYbYTYgeYYYOYGYkpYYMOYYQ_YYYI>YNY\KJYUYYYZjYYQfYRYY`C[YYYYYYUHYMFYYYUYaYYYJYYYQY[YYYYYYjYYNYUYYYiMYYYMg\YYVYYYYYYNmYYYRWBJYpLYYSYYUYP_YVYYYYYhYYNPYYYYJYYYIYYYYYSYYXYkHYYYIYYNYYYWxY[YYYYYYYYYYYYTYYg=YYJYcY@LiqjYYYYYWYrYOMYNOYYYYLYYYYYYYYYYYYYYgYYbfYYYYfYYY\YYYYYCYYYYlDYYYBYYgYYYYmYYYYYYYYYYYYYYJYYUYYCYsYjaXsoYYYYYYYbYofYeZYYYYjYYYYYYYYYQYYoYYY_YYdaYHYYXYYYYBYXYfRYYYtYCYpFYYJ`YYXKYYYZkYdYTrQYHfYYDVYY?SY^YYi_XYYYYYYlRYJeYYY[YNYYYdYYYYY^YYYYYYHYY[YWYYY_9YYYbi^YYPYYYvYYY`YYY_dcWYc\YYLYYeYnhYVYYYYYIYYuOYYYY`YYYWYYYYY\YYXYTgYYYLYYRYYYWSYfYYYYYYYYYYYYTYYbtYYPYNYxiVRjYYYYYXYiYbPYjXYYYYkYYYYYYYYYkYYgYYYQYYu{YaYYSYYYYcY]YprYYYTYRYsdYYZRYYagYYY\XYcYw[QYeoYYkcYYSkYXYYXYWYYYYYX\SY^cYYY^YlYYYSYYY[Y[YYYYYYbYYSYYYYYzVYYYPhrYYfYYYPYY^UYYYYvb[YSeYYZYYsYnqYKYYYYY_YYckYYYYqYYY`YYYYYLYYXY^JXYYMYYcYYYY_YNYYYYYYYYYYYYRYYrTYYLYuYffSeZYYYYYWYXYfkYYjYYYYmYYYYYYYYYcYYbYYYZYYfdYEYYOYYYYAYZYfHYYYbYQYePYYQcYYQKYYY]pYZYV_VYEfYYLQYYLMYeYYl]WYYYYYYi]YDaYYYRYRYYYaYYY`YVYYYYYYQYYXYSYYY_FYYY_`^YYFYYYeYYXFYYYOVKYY\VYY^YYTYfOY]YYYYYCYYaOYYYYNYYYTYYYYYtYYYYKhXYYWYYFYYYX:YdYYYYYYYYYYYYUYYLpYY\YNYrbVAFYYYYYXYLYXTYSSYYYYqYYYYYYYYYmYY_YYYMYYqnYpYYoYYYYbY_YljYYYTYTYsuYYURYYYeYYY\SYWYdFGYW[YYbkYYWrYTYYb;WYYYYYYWHYOJYYYZYoYYYCYYYFYUYYYYYYfYYLYKYYYsWYYYAjbYYOYYYbYYMXYYYQGL@YfCYYWYYQYXCYhYYYYYUYYbRYYYYOYYYHYYYYY]YYXYGcYYYTYYOYYYWPYhYYYYYYYYYYYYHYYPRYYjYKYY]\S^YYYYYXY[YBNYAHYYYYTYYYYYYYYYXYYGYYY]YY\WY]YYSYYYYcYKYR[YYYOYVYWPYYOHYYidYYYBLYIY\]GYGRYYcNYYPUYLYYEVYYYYYYYTJYeHYYYhYJYYYOYYYMYmYYYYYYdYYXYXYYYUNYYYFUMYYaYYY@YYD\YYYNjSDY_[YYjYYLYG[YCYYYYYjYYOKYYYYFYYYJYYYYYJYYYY\KYYYMYYXYYYYkYLYYYYYYYYYYYYKYYgCYYFYYYEHYmXYYYYYZY]YKJYRAYYYYHYYYYYYYYYRYYNYYYcYY@KYLYYbYYYYNYYYCHYYY`YNYHEYYCSYYULYYYIEY\YLa_YEKYYG`YYIUYPYYRd^YYYYYYUmYHVYYYMYEYYYeYYYPY`YYYYYYKYY_Y]YYYWKYYYfJDYY\YYYqYYOhYYYXMKNYkMYYPYYYYdOYkYYYYYAYYdNYYYYQYYYQYYYYY|YYXYMlYYY[YYRYYYYEYhYYYYYYYYYYYYYYYJmYYjYUYpi^FQYYYYYYYdYNSYKOYYYYcYYYYYYYYYlYYQYYYOYYieYnYYZYYYYpYHYjsYYYRYUY[aYYVUYYfgYYYOOYPYkKKYZRYYljYY^mYOYYEQXYYYYYYJPYjNYYYnYhYYYHYYYTYjYYYYYYcYYQYcYYYo\YYYHmVYYlYYYhYYC}YYYQY9AYCYYYqYEY?BYYSNYY_EYYYKEYYYFhtYLEYYCbYYPEYOYYGi\YYYYYXGnYNQYYYKYAYYYoYYYMYcYYYYYYCYYVY\YYYEUYYYr>DYYNYYYSYYgJYYYKcjyYArYYSYYoYnPYPYYYYYQYYcvYYYYhYYYSYYYYYEYYXYGDXYY[YYpYYY[OYIYYYYYYYYYYYYJYYaOYYKYjYeh=F^YYYYYWYCY`pYYlYYYYVYYYYYYYYYZYYaYYYKYYbOYTYYZYYYY7YgYkKYYYQYLY[RYYQdYYOCYYYVxYeYYIBY>\YYAHYYdLYuYYoGTYYYYYYhIYN_YYYKYJYYYHYYYbYJYYYYYYLYYCYEYYYiOYYYDdVYY8YYYGYYlCYYY^CMkY@IYYUYYBY8UYaYYYYYNYY:FYYYYIXYYfYYYYYKYYYYW\XYYqYYOYYYVYYKYYYYYYYYYYYYpYYAYYYtYQY;@QN@YYYYYWYIYW@YU[YYYYYYYYYYYYYY;YY\YYtEYYJXYYYc[YTYTFhYm7YY_JYYvBYQYYEHVYYYYYYBVYHVYYYRYcYYYMYYYDYAYYYYYYEYYXY:YYY;{YYYUG?YY=YYYWYYOIYYYPWPQYUXYY^YYUYMQYTYYYYYXYYKQYYYYOYYYJYYYYYTYYYYQPYYYPYYRYYYVNYWYYYYYYYYYYYYBYY\EYYRYWY\ORSTYYYYYXYSYNPYTLYYYYOYYYYYYYYYQYYQYYYSYYYOYXYY]YYYYQYQYRQYYYSYKYXRYYOPYYVNYYYOHYTYLTNYPNYYLPYYLPYVYYTRXYYYYYYVOYUPYYYUYOYYYTYYYRYXYYYYYYZYYQYTYYYUMYYYSJQYYLYYY@YY|AYYYlZvY@jYYMYYlYj^YQYYYYYHYYTqYYYYqYYYzYYYYYYYQYYYYAYiYSCYYYIYCYXHYYRgYYJPYYYrYjY]ESYPnYYEDYYR^Y{YYzLUYYYYYY_BYDsYYYIYYYYYIYYYjYJYYYYYYEYYEY;YYYWXYYYKd\YY=YYYMYYKNYYYFEViYBRYYeYYLYKGYKYYYYYPYYNSYYYYRYYYUYYYYYTYYYYLIYYYPYY\YYYZQYMYYYYYYYYYYYY^YYENYYNYRYCWNRJYYYYYZYHYGSYXVYYYYBYYYYYYYYYKYYPYYYLYYN@YOYYgYYYYVYfYGMYYYNYaYIIYYOOYYKMYYYGGYSYEEVYNMYYUQYYXXYUYYYKZYYYYYYLNYPWYYYQYVYYYIYYYVYOYYYYYYPYYKYLYYYS[YYYGYJYYLYYYeYYTXYYYVYYWY_VYYRYY\YlPY_YYYYYPYYhRYYYYZYYYWYYYYYgYYXYOcYYYPYYYYYYYSYaYYYYYYYYYYYYSYYcbYY\YWYoeVS^YYYYYYYZYUWY^UYYYY^YYYYYYYYYhYYZYYYQYYdfYeYY[YYYY`YVYhmYYYUYTYhbYYT[YY\_YYYXVYZYfVKYY`YY\^YYZfY]YYYTXYYYYYY\RYa[YYYUY\YYYQYYY^Y]YYYYYYdYYPYVYYYhYYYYKnbYY\YYYTYYRHYYYMVHMYVVYYbYYTYPMYQYYYYYTYYFLYYYYFYYYJYYYYYSYYYYJPYYYPYYRYYYWHYUYYYYYYYYYYYYGYYVCYYPYNYZNQNUYYYYYYYTYINYRAYYYYOYYYYYYYYYPYYPYYYRYYZQYRYY_YYYYQYNYSRYYYMYJYVQYYJLYYXOYYYOCYPYKSGYQJYYILYYJNYNYYNRXYYYYYYXJYULYYYUYSYYYSYYYJYWYYYYYYYYYRYUYYYUKYYYOELYYMYYYIYY_JYYYnBLmYF=YYXYYEY5aYoYYYYY\YY@KYYYYMXYYgYYYYYSYYXYYkXYYtYYLYYYV^YRYYYYYYYYYYYY{YY?aYYwYGYGBSMFYYYYYVYOYTFYH^YYYY]YYYYYYYXYAYYAYYYIYYB_YNYYKYYYYYYIYOOYYYRYvY?nYY~LYYRgYYYg_YMYVPqYv9YYnOYYq@YMYYGTVYYYYYXBNYSKYYY\YsYYYSYYYAYIYYYYYYOYYlY=YYY@YYY[@FYYIYYYVYYXEYYYSN`XYN[YYZYYPYTWYKYYYYYQYYTVYYYYUYYYVYYYYYXYYYYTOYYYYYY[YYYWXYRYYYYYYYYYYYYWYYRUYYQYYYJTTQPYYYYYXYOYWPYZRYYYYJYYYYYYYYYUYYOYYYOYYPBY_YYaYYYYWYXYJ[YYYSYPYLLYY]\YYTKYYYRPY]YTPQYTPYYQPYYSZY[YYNQXYYYYYYWYYTYYYYUYQYYYPYYY\YQYYYYYYRYYIYPYYY[XYYYQXSYYMYYYYYY_GYYYZ?VSYH_YYeYYIYKPYYYYYYYNYYBFYYYYOXYYZYYYYYXYYYYZPYYY^YYYYYYYXYJYYYYYYYYYYYY\YYDVYY\YVY=@bYJYYYYYYYRYQDY[YYYYYCYYYYYYYYYCYY?YYYNYYF?YbYYoYYYY]YYYCTYYY^Y[Y=QYYjZYYNUYYYSMYeYUK_YcBYYYVYYeSYYYYMNYYYYYYYNZYR_YYYQYRYYYOYYYQYOYYYYYYQYYXYKYYYTgYYYWRHYYRYYYkYYLqYYYR]IHYuLYYLYYUY^\YYYYYYYgYYYTYYYYOYYYOYYYYYWYYXYgNYYYEYYQYYYXxYbYYYYYYYYYYYYNYYlAYYPYeYIMlnzYYYYYXYuYRMYTSYYYYTYYYYYYYYYCYYYYYY|YYWIYTYYKYYYY\YGYFNYYYnYMY5=YYUSYYyhYYYKXYMYIcYPOYYPXYYLKYTYYJXYYYYYYXnYcJYYYlYYYYaJKYYnYYYTYYbCYYYXSWdYPWYYZYYKYMLYUYYYYYPYYJQYYYYVYYYVYYYYYTYYYYVSYYY[YYNYYYXTYQYYYYYYYYYYYYdYYL`YY^YWYMOXTIYYYYYWYNYYPYUZYYYYRYYYYYYYYYHYYKYYYLYYIDY]YYZYYYYXYWYKZYYYXY]YHQYYiXYYPQYYY_OYZYSP`YbJYYUTYYeQYVYYSMWYYYYYYNVYQUYYYRYbYYYPYYYPYMYYYYYYPYYMYHYYYNeYYYPXPYYMYYYNYY|EYYYeKZhYG_YYcYYQYKNXcYYYYYYkYYMGYYVaYYYMZYXYqNGYLvYYc]YYEbYcYYiCVYYYYYXuAYWWYYYaY^YYYKYYY[YkYYYYYYjYYJYPYYYy?YYYBzkYYVYYYOYYvFYYYl_OwYVPYYUYYPYIFYbYYYYYGYYN^YYYYMYYYjYYYYYOYYYYHfYYYoYYQYYYWFYXYYYYYYYYYYYYcYY\^YYgYYYROPOMYYYYYXYSY[]YJkYYYYiYYYYYYYYYKYYUYYYSYYIYYOYYDYYYYNYVYUSYYYOYlYZ\YYlPYYMhYYYmhYPY`KeY`SYYiIYYt[YVYYWNWYYYYYYUDYMKYYYNYhYYYYYYYKYIYYYYYYGYYOYIYYY>mYYYNYRYYJYYYGYYa>YYYgRphYK\YYPYY^YZRYJYYYYYNYYNoYYYYlXYYjYYYYYOYYZYQGYYYBYYzYYYWXYSYYYYYYYYYYYYIYYg[YYKYYYXbKMNYYYYYWYMYjeYndYYYY\YYYYYYYYY^YY\YYYNYYKcYCYY_YYYYEYjYROYYYQYCYjJYYTdYYUOYYYkdYhYUMSYTfYYFNYY6eYrYYjVWYYYYYY]TYL^YYYSY\YYYNYYYoYRYYYYYYJYYJYFYYYYNYYYO]gYYPYYYRYYMDYYYIQBMYTRYYhYYQYHAYIYYYYY[YYAHYYYYHYYYEYYYYYPYYYYPIYYYSYYMYYYYNYRYYYYYYYYYYYYKYYTBYYPYLY[OUNNYYYYYYYTYFHYOAYYYYFYYYYYYYYYJYYPYYYTYY^LYQYY_YYYYTYCYOQYYYOYOYSRYYFHYYXGYYYICYEYAOHYUEYYCNYYYKYKYYOOXYYYYYYVSY]EYYYQYLYYYWYYYCYUYYYYYYZYYPYWYYYMPYYYU@FYYQYYYVYYSCYYYPLNIYNSYYXYYNYSSYPYYYYYWYYMQYYYYIYYYMYYYYYYYYYYQZYYY]YYTYYYWVYQYYYYYYYYYYYYUYYZFYYOYQYLKUYPYYYYYXYRYRMYZIYYYYLYYYYYYYYYQYYHYYYOYYQOYXYYVYYYYPYTYQMYYYVYYYLMYYLRYYVNYYYNHYTYLOSYPQYYJQYYRRYOYYRSYYYYYYYWWYXQYYYRYNYYYSYYYRYSYYYYYYTYYEYLYYYQPYYYUOMYYQYYYVYYZLYYYX`f_YVbYYWYY]Y][YPYYYYYQYY]iYYYY`YYY_YYYYYOYYYYSOYYYLYYfYYYXUYYYYYYYYYYYYYYLYYe^YYLY`YdgTQWYYYYYWYXYabYebYYYYdYYYYYYYYY^YYbYYYRYY\\YQYYaYYYYPYaY[WYYYYYHY_UYYTdYYUSYYYadYaYYUNYO^YYQVYYLZY_YYdTWYYYYYY_RYRgYYY\YSYYYTYYYdY[YYYYYYVYYSYKYYY[IYYYWb]YYUYYYJYYJdYYYRbENYeOYYbYYNY>hYFYYYYYYYAFYYYYEXYYFYYYYYBYYYYpFYYYZYYMYYYXYLYYYYYYYYYYYYVYYg3YY?YcY2?]`YYYYYWYjYGEYGCYYYYBYYYYYYYYY7YYJYYYyYYAAYKYYHYYYYJYLY8>YYYtYOY7;YYRPYYf@YYYIHYPYYNYYCx[YYYYYXJ~YQIYYYUY?YYYxYYYJY`YYYYYY>YY]Y`YYYBSYYYx:CYYYYYYOYYOBYYYKHGNYNPYY[YYIYG?YMYYYYYVYYEGYYYY>XYYJYYYYYTYYYYQYYYYaYYVYYYWRYQYYYYYYYYYYYYRYYM?YYZYHYIFQQJYYYYYXYQYHFY[@YYYYAYYYYYYYYYCYYFYYYJYYSCYPYYUYYYYPYIYLNYYYOY^YLSYYEIYYUJYYYDAYIY@JOYMFYYGJYY\GYOYYKLXYYYYYYMVY\QYYYRYLYYYNYYYNYPYYYYYYRYYGYHYYYIUYYYSIAYYIYYYUYYSIYYYNWIMYUUYYaYYOYPHYNYYYYY[YYIMYYYYIYYYFYYYYYUYYYYUYYYYMYYRYYYYRYTYYYYYYYYYYYYJYYTFYYNYTYVOSSRYYYYYYYUYIOYTGYYYYJYYYYYYYYYQYYQYYYUYYZMYMYY^YYYYQYMYRPYYYPYTYPPYYFKYYXRYYYMGYQYKQMYRKYYLOYYXMYNYYLVYYYYYYYWSYUOYYYUYSYYYSYYYFYUYYYYYYVYYOYQYYYRPYYYRFIYYQYYYVYY[FYYYUhjaYVnYYSYYgYucYNYYYYYMYYh`YYYY_YYY^YYYYYMYYYYQMYYYFYYfYYYZVYQYYYYYYYYYYYYMYYgYYYIYgYb_PR_YYYYYXYRYj`Yf`YYYY_YYYYYYYYYjYYeYYYSYYe]YSYY]YYYYMYhYbQYYYWYIYWTYYNhYYQTYYYUlYmY]SJYKgYYNTYYKXYlYYnQWYYYYYYhLYVlYYYVYUYYYSYYYiYVYYYYYYXYYOYEYYYmJYYYVocYYIYYYAYYULYYY]hCaY=\YYoYYHY4jYTYYYYY|YYHIYYYYHXYY[YYYYYGYYZYOXYYwYYJYYYXY@YYYYYYYYYYYY\YYJ?YYSYXY48Q|HYYYYYXYOYHEYCNYYYYTYYYYYYYYYHYY=YYYuYYELYRYYQYYYYMYaYATYYYYWYAKYYdQYYEKYYY\TYSYSWYeEYYScYY|QYIYYJZ[YYYYYXIY:RYYYGYUYYYmYYY@YJYYYYYYIYYjY`YYYGeYYY9DYYGYYY+YYk7YYY_9^aY"eYYYYYjYIHYKYYYYYLYYQoYYYY[YYYWYYYYY=YYWYDBXYYmYYgYYYZ,Y/YYYYYYYYYYYYRYY^CYYSY@YC[/=NYYYYYXY:YNlYiKYYYY+YYYYYYYYYEYYcYYYKYYR=Y9YYMYYYYYmYq!YYYGY`YBCYY[lYYE4YYYbXY]YE7LYH[YYJ2YYbGYnYYc6VYYYYYYk.YCYYYYYY0Y0YYYXPYYYYWhXYQNYYmpYYXQYBYY=gYYYYYYYPaYrpD;@YYYYYYY=YFhYrYYYYY@YYYYYYYYYSYYVYYYBYYF8YNYYbYYYYHYkY>GYYYKYQY:XGYYYYYGYYdTYYYYGYYYKYYYYYgYYYYPRYYY3YYTYYYZDYmYYYYYYYYYYYY7YYgeYYCYJYfQ>_YYYYY[YPY]XYsPYYYY}YYYYYYYYYjYYpYYY;YYrwYfYYYYYY]YhYvfYYYOY2YsYY5QYYKZYYYHDYeYaH=YViYYWqYY8Y_YYt@XYYYYYYXJYQcYYYNYgYYYHYYYeYTYYYYYYhYY;YNYYY{7YYYD~iYYNYYYSYYLDYYYOLXOYO\YY^YYKYSEYOYYYYYKYYVPYYYYNYYYFYYYYYVYYYYLSYYY^YYWYYYXTYSYYYYYYYYYYYYXYYKWYYUYTYLNXVKYYYYYYYOYVQY[RYYYYHYYYYYYYYYNYYLYYYFYYPAYcYY^YYYYUYRYISYYYTYXYJOYYZVYYQKYYYRDY`YQNWYQMYYNTYYOMYUYYILWYYYYYYNRYTXYYYSYJYYYEYYYRYLYYYYYYTYYMYKYYYTYYYYRSOYYOYYYWYY]_YYYZjf[YZ^YYUYYbY`bYPYYYYY^YY_\YYYYbYYY]YYYYYPYYYY^RYYYRYY\YYYY_YWYYYYYYYYYYYYUYYdZYYOYeYacVaaYYYYYXY[Y`aY[aYYYYbYYYYYYYYY]YYgYYY\YY\]YRYYSYYYYOY[Y^UYYY^YQYdWYYR]YYYSYYY]bY_YVWWYQ`YYQXYYNTY\YYd]YYYYYYYa]YW\YYYYYZYYY\YYY\YZYYYYYYQYYXYWYYY]MYYY\\`YYWYYYNYYlBYYYl_vmYLjYYNYYjYn^YHYYYYYMYY\mYYYYqYYYnYYYYYGYYYYIJXYYLYYtYYYXQYTYYYYYYYYYYYYKYYf\YYGYkYaiCMNYYYYYVYTYeuYjlYYYY]YYYYYYYYYiYYgYYYNYYX]YCYYUYYYYFYgYWEYYYOY>Y_KYYJkYYOLYYYnvYlY]LOYPiYY?RYYETYtYYoSUYYYYYY[HYKlYYYSYXYYYKYYYlYRYYYYYYPYYJYDYYY`HYYYQd]YYFYYYkYY!yYYY1S$1Ys*YYYY:YK.XWYYYYY[YY8&YYYYXYY+YYYYY{YYXY]RYYYTYYCYYYWkYoYYYYYYYYYYYYYYYR>YYZYIYXNhTYYYYYWY~Y%)YCYYYYOYYYYYYYYYMYY2YYY^YYRCYzYYvYYYYY2YHgYYYYSYE`YYR>YYlPYYY5Y;YF^jYo5YYOYYwSY9YY)fYYYYYYY9YrCYYYcYMYYYlYYY6YYYYYYYvYYsYYYYa`YYYwP3YYYYYTYYSDYYYROIJYQVYY[YYMYRGYRYYYYYRYYJMYYYYGYYYPYYYYYWYYYYNUYYYVYYTYYYVMYTYYYYYYYYYYYYIYYQIYYQYGYMKQQRYYYYYZYQYVLYTJYYYYJYYYYYYYYYJYYOYYYQYYXMYPYYZYYYYMYPYQLYYYLYSYQSYYJMYYVMYYYQMYMYOMJYOLYYNKYYOPYQYYRLXYYYYYYVIYXSYYYTYMYYYJYYYRYOYYYYYYTYYMYLYYYQNYYYRMNYYMYYYSYYYSYYYVL_dYQ^YY\YYVY]YYVYYYYYOYYPSYYYYZYYYVYYYYY[YYYYUQYYYXYY^YYYYQYOYYYYYYYYYYYYcYYNSYYVYTYFWVQIYYYYYYYPYPVY_VYYYYPYYYYYYYYYQYYLYYYQYYKJYUYYbYYYY[Y_YJQYYYOYbYEQYY^\YYQOYYYZVY[YON[YYQYYWQYYS]YQYYXMZYYYYYYTVYOdYYYRY\YYYQYYYZYTYYYYYYOYYIYOYYY[VYYYM^NYYYYYYSYYUFYYYQPQJYRPYY]YYOYQPYTYYYYYOYYLPYYYYMYYYNYYYYYZYYYYJWYYYQYYTYYYVMYVYYYYYYYYYYYYHYY[NYYLYFYNNRSTYYYYYYYPYOOYSOYYYYOYYYYYYYYYNYYTYYYRYYUTYPYYVYYYYPYMYWNYYYJY[YNSYYLPYYTPYYYMMYNYUYMYOOYYRPYYLRYKYYQRYYYYYYYWLYQOYYYRYLYYYJYYYOYTYYYYYYUYYLYJYYYSQYYYOMNYYNYYYXYYVPYYYTScdYOdYYXYYXYaTYPYYYYYJYYbWYYYYZZYYZYYYYYTYYYYRMYYYMYYfYYY[PYTYYYYYYYYYYYYUYYV[YYLYVYUcQKVYYYYYZYQY_ZYe\YYYYSYYYYYYYYY_YYaYYYHYYVVYaYYaYYYYTYdYY^YYYSYMYYPYYPbYYSQYYYWWYjY^GMYPWYYSYYYTfYaYYZLZYYYYYYXNYYfYYYOYSYYYLYYYcYLYYYYYYWYYJYRYYYbYYYYJeYYYNYYYZYY^JYYYXihZYZeYYPYY^YiXYOYYYYYOYYdbYYYYcYYY]YYYYYPYYYYQTXYYJYYYYYYWSY\YYYYYYYYYYYYMYYj^YYLY]YndRPaYYYYYWYVYe`Yg`YYYYdYYYYYYYYYeYYgYYYQYYadYRYYYYYYYRYdYnXYYYUYIYbXYYU^YYQWYYY`bYbY]TPYUkYYPYYYI]YeYYmRVYYYYYXgOYXeYYYUY\YYYQYYY`YZYYYYYY\YYOYHYYYhNYYYUelYYRYYY_YYJWYYYLYJRY^RYYbYYKYTCYSYYYYYUYYIJYYYYLYYYLYYYYYdYYZYUTYYYCYYXYYYZIY^YYYYYYYYYYYYHYYXEYYSY\YdTWLOYYYYY[YPYJKYXYvYYYYYXYYfOYYYYHYYYEYYYYYfYYXYIfYYYHYYJYYYXSYpYYYYYYYYYYYYYs7YY\YYIYXDYgYYYYYiYYiLYYYYCXYYDYYYYY[YYXYY[YYYVYYIYYYWkYtYYYYYYYYYYYYKYYX^YYmYKYZ\nVmYYYYYVYmYAIY4@YYYY[YYYYYYYYYnYYGYYYjYYZUYhYYNYYYYgYDYXeYYYbYXYdTYYQAYYw\YYY?HYAYVlYYLPYYhkYYRRYIYY;cYYYYYYYP^Ys>YYYnYPYYYXYYYEYyYYYYYY`YYmY|YYY^FYYY_LJYYsYYYDYYBbYYYKF\YKYYYrYYRYGNYBYYYYYzYY?IYYYYEXYY?YYYYYKYYZYiEYYYCYYWYYYZlYGYYYYYYYYYYYYJYYU9YYIY`YbGV[MYYYYY[Y^Y:MYF4YYYYKYYYYYYYYYUYY]YYYnYYKMY5YY\YYYYKYRYKLYYYTYDYNHYYGIYYNPYYYI7YSY7hhYMFYYCaYYD;YTYYT`[YYYYYYWdY?HYYYGYSYYYcYYY=YMYYYYYYSYYQYkYYYOAYYYh>GYY@YYYaYYHtYYYSYCCYz?YYTYYKYXXYmYYYYYhYYaJYYYYGXYYKYYYYY^YYYYa]XYYWYYPYYYWoYlYYYYYYYYYYYYRYY[OYYfYWYW[r^pYYYYYWYyYFEYDGYYYYXYYYYYYYYY[YYPYYYsYYbRYnYYBYYYYhYEYJ]YYYlYZYKKYY\KYY|cYYYMLYFYXqdYWKYYdaYY_^YMYY?pXYYYYYYNcYpFYYYtYMYYYkYYYMY}YYYYYY^YYpYxYYY\PYYYZLJYY{YYYVYYVBYYYRNOHYQ\YYbYYPYUQYPYYYYYRYYPPYYYYKYYYSYYYYYZYYYYYSYYYQYYZYYY[SYQYYYYYYYYYYYYMYY\MYYMYUYNKZQPYYYYYYYRYWPYXMYYYYMYYYYYYYYYNYYTYYYUYYRRYUYYaYYYYXY]YQSYYYQYTYOQYYRYYYSSYYYMPY\YTPNYSPYYQWYYXVYWYYVTZYYYYYYZWYTZYYYSYKYYYUYYYUYRYYYYYYUYYSYRYYYZNYYYQUMYYTYYYQYY\RYYYUNUfYSNYYKYYMYOQY\YYYYYYYYOMYYYYNXYYQYYYYYVYYXYZ[XYYhYYXYYYWaYRYYYYYYYYYYYYeYYLSYY`YVYJPXVTYYYYYWYUYROY[NYYYYHYYYYYYYYYUYYKYYYSYYPEY]YYPYYYY]YZYKZYYYYYmYAQYY[QYYVWYYY[HYYYRQcY\KYYWVYYdWYXYYUSWYYYYYYZaYX_YYY^YVYYYYYYYYYYYYYYYYQYYLYRYYYTbYYYVSIYYXYYY>YYKYYYPyYG[YYHYYWYYeYlYYYYYKYY4sYYYYXYYYYYYYBYYXYD`XYYUYYyYYYUMYNYYYYYYYYYYYY\YYtxYYgY^YEZ;M:YYYYYVYFYnYcYYYYyYYYYYYYXY^YYZYYYQYYFeY4YYCYYYY9YrYO@YYYDYXY`aYYpYYYGrYYYYjY~LmYzdYYa?YYKoYzYYjOTYYYYYXNIY@ZYYYOYYYYMYYY]YMYYYYYY:YYhYCYYYNiYYYPekYYAYYYQYYJRYYY@`LKYITYYrYYGYU:Y=YYYYYvYYGEYYYYTYYY=YYYYYNYYYY\YYrYYYXQYRYYYYYYYYYYYYEYYiXYYYJkYY?QYYBhYtYYxNUYYYYYXaUY[YYYKYOYYYFYYYzYHYYYYYYTYYBY>YYYeEYYYNgaYYHYYYSYYbOYYYVliaYUjYYQYYmYojYPYYYYYPYYjbYYYYiYYYeYYYYYOYYYYQPYYYLYY^YYYXSYYYYYYYYYYYYYYRYYlYYYJYiYijRUeYYYYYWYSYphYicYYYYfYYYYYYYYYiYYlYYYOYYjcYPYYTYYYYPY^YfUYYYXYHYdRYYRfYYPUYYY_qYhY`XNYRjYYRNYYLPYmYYlTWYYYYYYoKYXlYYY\YVYYYUYYYfYZYYYYYYXYYPYFYYYeIYYYYigYYOYYYNYYWYYYYWsbZYPdYYfYYjYbjYHYYYYYgYY\cYYYYfYYY_YYYYYGYYYYa?XYYIYYbYYYYfYLYYYYYYYYYYYYIYYkOYYHYmY_[UcTYYYYYYYVY^fYQ`YYYYfYYYYYYYYY^YY[YYY\YY\]YAYYVYYYYBY`YYKYYYcYEY`PYYM^YYQKYYYUhY\YRY\Y?`YYJYYYHGYbYYk[YYYYYYY`cYEcYYYNYOYYYbYYY\YWYYYYYYIYYZY\YYYZGYYYa]RYYCYYYBYYK]YYYVqK_YUYYYoYYPYFXYAYYYYYxYYYYJYcYWFZZJYYYYYYY^YCNYH>YYYYPYYYYYYYYYQYYQYYYiYYLKY?YYZYYYYCYUYHLYYYaYGYPMYYSQYYOMYYYN>YQY<_dYOHYYF]YYE>YTYYRY[YYYYYYSkY=KYYYIYZYYYhYYYDYMYYYYYYPYYVYbYYYGJYYYg=OYY=YYYSYYNGYYYKNKLYUWYY^YYKYGLYLYYYYYUYYILYYYYGYYYIYYYYYUYYYYKPYYYPYYYYYYWIYSYYYYYYYYYYYYLYYSDYYOYLYOMOPPYYYYYYYNYNJYVEYYYYIYYYYYYYYYHYYLYYYMYYUJYSYY]YYYYNYNYOPYYYMYRYPOYYENYYVMYYYFCYSYMRHYQHYYJLYYJPYRYYBOYYYYYYYSPYXNYYYTYLYYYPYYYOYTYYYYYYTYYLYNYYYPLYYYQKEYYNYYYcYYVsYYYPiSUYhYYYVYY`YTnYUYYYYYmYYTWYYYYUYYYUYYYYYWYYXYvNXYYJYYZYYYXvY_YYYYYYYYYYYYRYYpFYYLYjYNRbrpYYYYYWYhYZSYWUYYYYWYYYYYYYYYIYYeYYYqYYZPYQYYCYYYYUYQYNOYYYmYHYLFYYRVYYkXYYYP[YUYJzaYRYYYOaYYPIY\YYSuWYYYYYYalY]QYYYaYHYYYhYYYTYcYYYYYYHYYbYcYYYLCYYYfPXYYaYYYbYYFrYYYLT@FYp;YY^YYEYWBYiYYYYY^YY_GYYYYdXYYYYYYImYn?YYYjY`YYY^YYY@YrYYYYYYdYYhY~YYY][YYYeLCYYoYYYMYYXDYYYEPZYYQZYY_YYOYONYFYYYYY?YYSTYYYYKYYYKYYYYYRYYYY:NYYYWYYQYYYWDYRYYYYYYYYYYYYVYYRXYYRYMYIVIKMYYYYYYYJYTWYVSYYYYRYYYYYYYYYHYYOYYYCYYJGYVYY[YYYYSYJYJSYYYAYVYOLYY`UYYRJYYYLLY]Y]QMYRJYYVNYYTOYNYYJGYYYYYYYNJYJTYYYQYNYYYBYYYPYJYYYYYYMYYAYHYYYRXYYYCQKYYMYYYPYYPAYYYGEFNYLQYY`YYKYL@YOYYYYYTYYFHYYYYDYYYRYYYYYUYYYYPUYYYYYYSYYYWRYNYYYYYYYYYYYYKYYQBYYUYEYGIORKYYYYYYYOYNGYWCYYYYCYYYYYYYYYIYYGYYYJYYUHYTYYXYYYYNYQYNIYYYOYUYLRYYCJYYQLYYYEHYPYKGIYKEYYMKYYUJYPYYPIYYYYYYYUZYYYYYYQYJYYYIYYYSYKYYYYYYMYYKYFYYYPNYYYQMEYYIYYYNYYaFYYYD9\gY?kYY]YYYYYYQYYYZYYYYYOYYYYYIYYYZYYjYYYZWYBYYYYYYYYYYYY]YY?HYYQYVY.HWWBYYYYYYYDYK6YsNYYYY4YYYYYYYYYEYYAYYYAYY@1YbYYjYYYYQYbY4VYYYXY]Y0JYY]`YYEEYYYONYmYOHWY[>YYMUYYkYY^YYQEXYYYYYYNnYOsYYYJYDYYYCYYY`YGYYYYYYGYYJYHYYYUmYYYPYAYYCYYYXYYZJYYYYYVZYWVYYUYYWYU[YZYYYYYVYYYYYYYYXYYYZYYYYYVYYYY[YYYYUYYWYYYXXYWYYYYYYYYYYYYXYY[UYYYYXYUVTVYYYYYYWYXY\[Y]XYYYYUYYYYYYYYYSYYXYYYUYYUUYXYY]YYYYSYUYZWYYYYYVYWWYYX[YYWWYYYVXYVYVZZYVVYYXVYYXUY[YYWZYYYYYYY[WYWXYYYXYZYYYWYYYYYSYYYYYYUYYVYOYYYWUYYYWXWYYSYYYWYYHHYYYO`GTYOSYYgYYVYOMYOYYYYY^YYFJYYYYFYYYMYYYYYQYYYYXLYYYEYYTYYYZPYTYYYYYYYYYYYYDYYWAYYRYYY^OSTMYYYYY[YRYKOYPDYYYYMYYYYYYYYYRYYYYYYYYY\RYPYYgYYYYSYUYQQYYYSYGYXQYYJKYYXQYYYLEYTYGSLYRJYYLVYYLMYSYYVTZYYYYYY\TYQLYYYVYTYYYXYYYHYXYYYYYYYYYUY[YYYSJYYYWIKYYLYYYJYY^LYYY]SlsYCbYYTYYaY`XYSYYYYYSYYaaYYYYcYYY_YYYYYJYYXYVOYYYXYYpYYY[TYMYYYYYYYYYYYYXYYSRYYOY_YObKRRYYYYYXYKYXbYbaYYYYLYYYYYYYYY_YY[YYYPYYREYNYYWYYYYFYjYUNYYYTYNYKOYYWjYYNHYYYW_YfYVGUYMWYYIMYYYYYkYY^LXYYYYYYZOYPkYYYKYUYYYKYYYiYOYYYYYYLYYKYPYYY^SYYYM\RYYCYYY]YYGLYYYElHGYQdYY{YY;YGFYHYYYYYwYY6)YYYYCYYY3YYYYYXYYYYY?ZYY7YYWYYYYaYVYYYYYYYYYYYYMYYV7YYIY`Y]@eiDYYYYY[YPY;8Yu%YYYY4YYYYYYYYYKYYIYYYSYYYCYpYYxYYYYeYSYBUYYYzYCYEXYY6FYYRCYYY,"YdY=SbYo;YY=jYYJcYdYYFN]YYYYYYKrYV]YYYUYJYYYpYYYLYUYYYYYYjYYZYjYYYXRYYYcWPYY`YYYJYYVYYYU[pYSRYYCYYRYQfYpYYYYYTYYDbYYYYeXYYxYYYYYWYYXYPxXYYkYY^YYYUWYXYYYYYYYYYYYYpYY_iYY~YUYJJORJYYYYYWYMYpWYVqYYYYjYYYYYYYYYPYYOYYYYYYHhYOYYAYYYYRYaYRSYYYPYnYQcYY|RYYRrYYYuYUYkTrYuXYYtHYYofYYYYSRSYYYYYXQJYQQYYYXYxYYY^YYYQYPYYYYYYHYYjYWYYYNtYYYSV\YYNYYYWYYWCYYYQMQFYPRYYdYYNYHJYNYYYYYZYYQOYYYYPYYYJYYYYYXYYYYWQYYYUYYQYYYYYYTYYYYYYYYYYYYPYYSNYYNYQYKN^\RYYYYYXYRYQKY[OYYYYHYYYYYYYYYKYYMYYYMYYSOYaYY^YYYYXYQYPWYYYXY_YLQYYMUYYUMYYY>MYXYJOOYUKYYQRYY[PYSYYITYYYYYYYOVYYSYYYWYHYYYTYYYTYTYYYYYYTYYOYLYYYTVYYYYOOYYQYYYWYYTIYYYWVTVYTXYYXYYXYUVYXYYYYYTYYVVYYYYUXYYSYYYYYYYYYYXYYYYVYYUYYYXUYYYYYYYYYYYYYYUYYTQYYXYXY\XVUUYYYYYXYWYVUY]RYYYYZYYYYYYYYYXYYZYYYVYY]XYYYYaYYYYWYTYUZYYYWYVYYXYYWVYYXWYYYVSYXYRWXYWVYYUXYYVXYXYYVXXYYYYYYYUYXTYYYZYZYYYXYYYVYVYYYYYY\YYUYQYYYVUYYYVZYYYQYYYTYYm_YYYzg[bY^XYYLYY_YNjYpYYYYYHYYUfYYYYdYYYtYYYYY^YYXYDrXYYQYYdYYYWMYaYYYYYYYYYYYYfYYbuYYvY[Y^UOKTYYYYYWYOYx_YTpYYYYzYYYYYYYYY[YY^YYYSYYZxYLYYCYYYYRYVYj]YYYEYdYVeYYt`YYWoYYYx|Y^YnV^YrTYYoIYYaVY[YY[WWYYYYYY\GYSLYYYcYvYYYXYYYLYZYYYYYYNYYuYTYYY^qYYYTdmYYQYYY;YYd>YYYW0CrY0MYY^YY=Y*NXqYYYYYIYY84YYYYAYYYhYYYYY@YYYYYdXYYyYYaYYYYZY9YYYYYYYYYYYYoYY4MYYyY9Y*8DK4YYYYYXY;YJ3YgRYYYY@YYYYYYYXY4YY8YYY8YY9?YOYYRYYYYOY]Y9LYYYRYwY=dYYjQYY@jYYY\PY^YRjYEjYYYMY_YYYYMYYjYYYYFYvYGEYYYKYQYGAYYJuYYD:YYYULYkYN;LYCNYYGDYYX[YmYYjAYYYYYYYY=YLlYYYBYUYYY>YYYnYGYYYYYYCYYBY9YYYYEYYY?bLYY:YYYeYY;sYYYETB6Ys6YYcYYHY^:YoYYYYY]YYlJYYYYAXYY;YYYYY_YYXYLdYYYEYYKYYYX^YzYYYYYYYYYYYY7YYU\YYmYEY`cmToYYYYYYYjY5AY->YYYY^YYYYYYYYYtYYAYYY`YYZ]YlYY\YYYYjYBYVgYYYVYMYdSYYH7YY|iYYY8DYBYXfJYDMYYoaYYLXYBYY6c\YYYYYYIUYsBYYYuYNYYYSYYYCYYYYYYYiYYrYwYYY^YYYYYJYYZYl?YYY?YYYYYY[nYIYYYYYYYYYYYYEYY_3YYEYaY^YYY:YYYYYXYYJYYYYYYYYYYYY=YYZYYYPZY]GYYMZYYTMYTYY]T]YYYYYYS`Y_]YYYRYXYYYRYYYVYXYYYYYYVYYWYTYYYTXYYYYVGYYVYYYSYYOHYYYMHYNYQZYYaYYPYSLYPYYYYYJYYURYYYYNYYYPYYYYYWYYYYHPYYYMYY[YYYYKYSYYYYYYYYYYYYNYYVSYYNYNYNPOPSYYYYYYYMYUPYTPYYYYMYYYYYYYYYPYYQYYYJYYSLY[YYcYYYYRYXYMTYYYGYNYRQYYMVYYTMYYYLKY^YYPHYKOYYOOYYHRYSYYKNZYYYYYYUKYSTYYYTYJYYYGYYYOYSYYYYYYRYYKYOYYY\LYYYKXLYYQYYYYYY[YYYYVdg]YY^YYPYYgYdeYTYYYYYUYYiaYYYYdYYY^YYYYYQYYXYTRYYYNYY]YYYYWY\YYYYYYYYYYYYUYYf^YYQY^YedTXfYYYYYXY^YdbYc_YYYYdYYYYYYYYYeYYgYYYUYYcbYSYYUYYYYRY\YkXYYY]YRYeYYYT\YYUVYYY[gY`Yd\PYTmYYWVYYSZYdYYiYWYYYYYYeVYWeYYYYY\YYYVYYY_YZYYYYYYWYYUYWYYYeQYYYUbdYYTYYYrYYMdYYYYKMKYhNYYNYY^YhOYdYYYYYCYYkPYYYYQYYYSYYYYYlYYXYIpYYYYYYFYYYYEYnYYYYYYYYYYYYUYYOtYY_YIYsiZMXYYYYYYYkYLSYOQYYYYgYYYYYYYYYqYYUYYYRYYjlYkYY[YYYYkYKYgsYYYOYVYhkYYRLYYfhYYYMLYKYpLMY[[YYpvYYUlYHYYKPXYYYYYYJKYeOYYYmYjYYYJYYYPYiYYYYYYgYYVYiYYYnRYYYMj]YYlYYY=YYiGYYYIVmxY)lYYTYYiY\QYQYYYYYMYYfwYYYYoYYYRYYYYYAYYYYN;XYYfYYzYYYYYWmnYx>YY}WYYiHY>YYCaVYYYYYX>MY{,YYYYcYYYUYYY2YqYYYYYY]YYY_YYYF}YYYNADYY{YYY@YYaeYYYqQLiY^BYYXYYJY:{ZeYYYYYvYY@MYYYYGXYYaYYYYYNYYYYolYYYyYYJYYYWYRYYYYYYYYYYYYyYYNYYYkY[YA:WbYYYYYYUYcYYGYBZYYYY^YYYYYYYYY{YYYq1PYYVYYY_YYXQYYY[_e^YV]YYTYY]Yl_YQYYYYYOYYfZYYYYcYYYYYYYYYVYYXYU[YYYLYY_YYYYWY\YYYYYYYYYYYYUYY_dYYOYSYfbTQaYYYYYZYZYa[YgXYYYYaYYYYYYYYYcYYdYYYRYYbiYcYY[YYYYRY`YfaYYYVYNYh[YYQ^YYYWYYYa[YdYgQRY]kYYZdYYQkYaYYcUYYYYYYY[QY\gYYYNY_YYYQYYY`YTYYYYYY\YYMYRYYYkQYYYSbiYYTYYYfYYMXYYYPNEPYgKYYUYYMY[FYoYYYYYNYYZQYYYYIXYYLYYYYYlYYYYJqYYY[YYGYYYXAYjYYYYYYYYYYYYTYYJ`YYuYNY]^\KTYYYYYWY^YKLYDLYYYY]YYYYYYYYYZYYQYYYSYY`YYbYYeYYYYhYPY\`YYYOYSY^iYYXNYY[uYYYHLYCY\NIYKXYYmeYYT_YGYYOGXYYYYYYQCY\?YYYhYWYYYJYYYKYiYYYYYYmYYSYYYYY\OYYYDhQYY^YYY$YY)YYYf[xYsYY?YYiYVXXRYYYYY?YYFYYYYqXYYYYYYY$YYXY@YYYY YzY[*YYY8YFYI>YYNbYY5CYYYqYrYX&MY5cYY?/YY[YYYYw7TYYYYYYb1Y&YYY+YLYYY5YYYfY/YYYYYY#YY+Y)YYYSUYYY@9JYYYYYWYYgXYYYcmi[Y_bYYOYYmYpkYPYYYYYRYYf]YYYYdYYYcYYYYYMYYXYVXYYYOYY]YYYXSY]YYYYYYYYYYYYQYYifYYTY`YdeTWeYYYYYXYVYnaYgfYYYYmYYYYYYYYYjYYkYYYVYYilYNYYRYYYYUYeYaXYYYWYSYk]YYUXYYUZYYYdjYiYkURYXpYYVTYYR^YdYYiUXYYYYYYlRYZfYYYZYfYYYVYYY^Y[YYYYYYZYY[YTYYYgNYYYXeoYYSYYYOYYRbYYYZaOYYfRYY_YYVYJjYKYYYYYrYYPOYYYYSXYYRYYYYYMYYYYlNYYYXYYQYYYYxYLYYYYYYYYYYYYWYY`DYYIYcYEFYk^YYYYYWYaYTRYNQYYYYOYYYYYYYYYHYYOYYYoYYIMYEYYOYYYYKYOYFKYYYmYOYEKYY[VYY^MYYYQRYPYKqoYQOYYH]YYRGYTYYPn[YYYYYYQlYVNYYYRYNYYYjYYYQY[YYYYYYEYYYY]YYYKRYYYlGRYYOYYYZYYFTYYYCGo_YIlYYhYYJYZGYJYYYYYJYYWTYYYYXZYYQYYYYY_YYYYVAZYY>YYeYYY]WYNYYYYYYYYYYYYRYY@SYYYhAYYmYYEYPAYbYYYYYsYY^CYYYYYYYY9XYYUYYYYYNYYYYRkWYYYYLYYYU]YKYYYYYYYYYYYYxYYAKYYyYNY9DADEYYYYYVYEYDCYO:YYYYEYYYYYYYYY9YY6YYY=YYB@YHYYFUYYYYYYJTYLNYYYWYWYYYIYYY@Y>YYYYYYDYYDY6YYY6sYYYP26YY8YYY?YYRYYYXn~YQ]YYIYYfY^rYlYYYYYKYYFsYYYYxXYYYYYYYFYYXYAbXYYYYYtYYYVLYQYYYYYYYYYYYYaYYpkYYgY]YNZBLKYYYYYVYJY|nYc{YYYYsYYYYYYYYYaYY`YYYRYYLkY5YYBYYYY>YiY_EYYYEYSY^`YYpYYYJoYYYYiYxPeYtbYYc=YYNYYwYYnRTYYYYYX`AYDXYYYVYvYYYRYYYUYTYYYYYYBYYnYKYYYQiYYYRciYYDYYYiYYGVYYYIHD>Y^BYY[YYKYN=YyYYYYYSYY[LYYYYEXYY@YYYYYnYYXYEaYYYOYYMYYYXPYkYYYYYYYYYYYYNYYEXYYlYMYValOQYYYYYWYcYAFY=AYYYYQYYYYYYYYYTYYJYYYZYYfJYyYYiYYYYpYQYUZYYYRYPYITYYTHYYdlYYY;BYGY[HKYFNYYfbYYWaYDYYEHZYYYYYYLCYkCYYYnYKYYYRYYYFYjYYYYYYlYYRY^YYYWOYYY@aFYYhYYY`YYJ>YYYKeOSYSgYYpYY;YIAYEYYYYYbYYA0YYYYEYYY9YYYYY\YYYYgFYYYBYYWYYYZeYXYYYYYYYYYYYYJYYT6YYEY`YO@WP@YYYYYZYNYICYi:YYYY?YYYYYYYYYLYYIYYYUYYQDYcYYqYYYYWY_YFTYYYpYBYPVYYJSYYMBYYY9,YdY@NQYg?YY?XYYQXYfYYSQZYYYYYYLmYIUYYYNYLYYY[YYYOYHYYYYYYeYYZY^YYYMQYYYVWQYYJYYYRYYbDYYY_febYLkYYOYYlYg_YSYYYYYSYY^dYYYYkYYYgYYYYYJYYXYPLXYYVYYdYYYWNYNYYYYYYYYYYYYSYYbXYYOYaY`eIP\YYYYYVYQYgdYbfYYYYcYYYYYYYYYcYY_YYYOYYc_YKYYQYYYYFYdYhKYYYOYPY[VYYWmYYRJYYYajYdYXRLYJbYYMRYYPPYmYYkQUYYYYYYoOYJlYYYQYTYYYMYYYfYRYYYYYYQYYIYHYYYcHYYYU[bYYKYYYYYYTGYYYVWRNYQUYY^YYVYOQYVYYYYYYYYWWYYYYSYYYPYYYYYXYYYYSXYYYWYYRYYYWSYVYYYYYYYYYYYYJYYUPYYNYQYUSTZUYYYYYXYSYWTYWRYYYYRYYYYYYYYYSYYUYYYPYYXSYVYY[YYYYPYTYVTYYYTYQYWTYYOTYYVRYYYOPYSYRQSYPUYYRVYYPQYTYYQOWYYYYYYU\YURYYYUYNYYYOYYYRYSYYYYYYWYYRYOYYYTVYYYVQTYYRYYYPYYMRYYYYUV\YIYYY_YYUYVSYTYYYYY\YYTYYYYY[YYYYYYYYYTYYYYWQYYY`YYXYYYYQYRYYYYYYYYYYYYXYYVPYYQY[YSXTZPYYYYYYYUYR^YZSYYYYPYYYYYYYYYPYYRYYYXYYSOYVYYVYYYYPY`YVOYYYXYZYVQYYQXYYVQYYYRMYUYJRZYSTYYTRYYVWYYYY^VYYYYYYYWSYV[YYYWYYYYYRYYY\YRYYYYYYRYYRYRYYYVRYYYQXOYYRYYYiYYKJYYYLIPHY[HYY]YYRYaDYbYYYYYOYY[QYYYYJYYYLYYYYYgYYYYJhZYYJYYLYYYYFYdYYYYYYYYYYYYBYYU[YYcYJYb_UTUYYYYYYYUYLNYLLYYYY^YYYYYYYYY\YYNYYYRYYa]YdYYoYYYYhYXYcaYYYOYHYhaYYNNYY[gYYYEIYLY_[HYK^YYc_YYLcYKYYMK\YYYYYYZJYYJYYY[YSYYYOYYYOYfYYYYYYmYYTYSYYYaFYYYLfUYYZYYYMYY[JYYYKDklYF\YYSYYKYYNYFYYYYYJYYJLYYYYXYYYMYYYYY[YYXYNAXYYXYYcYYYWXYFYYYYYYYYYYYYhYY@XYYVYVY8O[Q@YYYYYWYFYIKYjPYYYY4YYYYYYYYYHYYGYYYFYY@.YhYY]YYYY_Y`Y6WYYYXYfY.DYYZeYYI=YYYYEYeYTHUY]CYYLVYY^aYfYYVJVYYYYYYWcYUrYYYMYYYYYHYYYiYNYYYYYYHYYAYKYYYW`YYYGZDYYHYYYIYYMhYYYZXDMYuEYYUYYMYGbYSYYYYYwYYFEYYYYCXYYFYYYYYLYYYYlIXYYaYYHYYYWYRYYYYYYYYYYYY_YY^0YYIYcY2Bf{^YYYYYVYlYDAYJDYYYY@YYYYYYYYY8YYHYYYYYE:YQYY~rYWDYYF^YY]>YNYYG|XYYYYYYLqYZMYYY`YCYYYyYYYIYfYYYYYY@YY]YaYYYB\YYYpYYYQYYZFYYYRKSUYNSYY]YYMYOPYQYYYYYLYYOOYYYYMXYYPYYYYYTYYYYL[YYYdYYVYYYWVYOYYYYYYYYYYYY]YYOVYYWYUYINPOOYYYYYXYQYSOYWKYYYYMYYYYYYYYYCYYIYYYLYYONYWYYTYYYYXYKYNRYYYOYbYMQYYcRYYOMYYYSHYXYSRTYUJYYPQYYUJYNYYGNWYYYYYYQNYNQYYYSYUYYYIYYYLYMYYYYYYMYY@YIYYYJZYYYMLEYYGYYYxYYKjYYYS`EFYoTYYFYYlYuQYdYYYYY>YYyXYYYYZYYYIYYYYYaYYXYGgYYYOYYGYYYYHYvYYYYYYYYYYYYSYYWqYYaYSYwsgVeYYYYYYYnYPcYWQYYYYgYYYYYYYXYvYYjYYYXYYvlYrYYTYYYYqYCYolYYYOYLYedYYJNYYtdYYYKVYLYmLJYSZYYspYYJpYMYYPRXYYYYYYRIYqNYYYYbYYYJYYYKYkYYYYYY`YYXYuYYYwKYYYFljYYkYYYZYYRDYYYYTW[YTeYYaYYYYUJYMYYYYYVYYUWYYYYPYYYWYYYYYSYYZYYLYYYGYY`YYYZTYRYYYYYYYYYYYYKYY\SYYIYYY\UTMQYYYYYYYWY\WYeTYYYYUYYYYYYYYYZYYZYYYXYYZRYTYYhYYYYVYeYRYYYYVYIYTTYYQ_YYSOYYYWQY]YKQPYWWYYOXYYPZY]YYYUYYYYYYY^TY[WYYYUYUYYYUYYY]YTYYYYYYWYYSYQYYY[RYYYUZZYYUYYYWYYMGYYYMQKEYUWYY^YYNYRJYPYYYYYRYYTPYYYYMXYYKYYYYYXYYYYNNYYYIYYWYYYXPYTYYYYYYYYYYYYCYYZHYYDYPYPPNXUYYYYYYYSYOOYSKYYYYJYYYYYYYYYUYYNYYYNYYSPYSYY\YYYYTYVYTQYYYIYXYNOYYCUYYUNYYYDLYWYQSEYJOYYKPYYGUYMYYVRZYYYYYYYQYWNYYYUYCYYYJYYYNYSYYYYYYSYYKYNYYYXIYYYPRKYYTYYYRYYcCYYYYde_YRlYYVYYmYm]YQYYYYYPYYaiYYYYnYYY^YYYYYMYYXYMIXYYRYYdYYYZPYTYYYYYYYYYYYYLYYcZYYLYhYaaKL[YYYYYWYSYjhY`mYYYYeYYYYYYYYYeYYfYYYQYYj_YQYY]YYYYFYeYgNYYYSYMYZUYYSfYYONYYY^vY^Y\QKYJbYYLSYYTPYjYYpLUYYYYYYoKYNgYYYTYSYYYLYYYiYVYYYYYYUYYJYEYYYjIYYYSgaYYHYYY4YY=YYYg%[Y*eYYWYYE$YYYYYXY-YV=YsoYYYYMYYYYYYYYYAYY3YYY8YY.@YNYYXYYYY>YgY,DYYYGYpY1VYYqZYY8aYYYinYnYt:YYdUYWUYYhYYPYKAYGYYYYYgYY>CYYYYEYYYDYYYYYQYYYYYHYYYJYYSYYYYUYSYYYYYYYYYYYYFYYQ5YYJYSYhNMUNYYYYYZYTYY[YYYYYY`YYRY^YYYNQYYYZGIYYPYYYRYYaPYYYXle]YVeYYPYYlYpmYSYYYYYRYYjiYYYYgYYYeYYYYYMYYYYNOYYYNYY]YYYYUYYYYYYYYYYYYYYSYYo[YYMYfYmjOVjYYYYYWYUYpiYc`YYYYfYYYYYYYYYkYYoYYYQYYnbYPYYSYYYYNY^YqUYYYZYHYiSYYU^YYTTYYY_sYdY_WNYRqYYSMYYORYiYYlUWYYYYYYvMYVcYYY^YYYYYUYYY^Y\YYYYYYXYYSYKYYYeOYYYZgkYYOYYYQYYdTYYYlIPhYR@YYOYYOYEjYlYYYYYVYYMVYYYYPXYYkYYYYYXYYXYTpXYYgYYOYYYV[YYYYYYYYYYYYYYoYYKdYYxYOYPKMMPYYYYYWYUY]MYIdYYYYoYYYYYYYYYJYYKYYYOYYMqYOYYLYYYYVYGYURYYYOYeYKnYYxLYYTfYYYprYIYcSmYrIYYlTYYlJYOYYOWUYYYYYXMJYVJYYY]YpYYYWYYYCYKYYYYYYVYYnYGYYYKzYYY[HWYYRYYY]YY]ZYYYZf`YY^`YYOYYfYlbYTYYYYYQYYmZYYYY^YYYZYYYYYTYYXYR[YYYOYYQYYYYSY`YYYYYYYYYYYYSYYbfYYPYWYofVThYYYYYYY_Yd]YfZYYYYfYYYYYYYYYjYYjYYYUYYjhY\YYUYYYYXY`Yk^YYYTYTYiaYYTUYYR[YYYa^YcYlUSYZjYY`[YYR`YcYYdVYYYYYYYdSY[bYYYZYfYYYUYYYYY]YYYYYYaYYUYZYYYlPYYYTemYYWYYYXYYOKYYYP\QUYSZYYdYYQYPLYOYYYYYXYYRLYYYYQYYYMYYYYYUYYYYQSYYYKYYVYYYYQYUYYYYYYYYYYYYHYYVJYYOYTY^PPTTYYYYYZYRYOPYXIYYYYRYYYYYYYYYRYYUYYYWYYYTYWYYjYYYYYYQYSWYYYRYJY\TYYPSYYVTYYYMGY]YNVMYTPYYNVYYGSYUYYLSYYYYYYYYTYPMYYYWYVYYYTYYYLYUYYYYYY^YYTYSYYYUNYYYSQQYYSYYYUYYFLYYYNeCRYOaYYmYYMYMBYIYYYYY^YY?FYYYYBYYYEYYYYYRYYZYUFYYYDYYZYYYZPYRYYYYYYYYYYYY>YYO;YYKYRY^MRKMYYYYY[YUYIIYU>YYYYIYYYYYYYYYJYYSYYY\YY[OYMYYjYYYYTY\YNOYYYNYAYXMYYGMYYYJYYYJ@YYY@TNYSGYYDUYYHMYWYYSOYYYYYYY\RYPJYYYSYRYYYWYYYFYUYYYYYY[YYRYaYYYRFYYYTIHYYNYYYWYYLkYYYT]IJYjOYY\YYTYKgYNYYYYYsYYLNYYYYKXYYHYYYYYNYYXYdLYYYKYYQYYYX~YUYYYYYYYYYYYYKYYj@YYEY^YYYYoYYYRYhYYYYYYEYYbY`YYYHIYYYiCKYY]YYY,YYAYYYOYYYYYYY5YYSYAYYYbjYYYEcgYYMYYYYYYLDYYYLVMOYTYYYcYYFYKHXLYYYYYXYYFYYMYYYWGPKOYYYYYXYOYEKY`?YYYYFYYYYYYYYYOYYIYYYUYYUKYYYY]YYYYVYKYISYYYZYSYSTYYKOYYQFYYYA3YSYGQPY[EYY@NYYOWYSYYMSXYYYYYYRVYQMYYYSYQYYYTYYYIYSYYYYYY^YYTYXYYYNOYYYOONYYLYYYUYYaYYYYVnokYSnYYNYYjYtjYLYYYYYOYYocYYYYjYYYbYYYYYIYYXYUKYYYOYYsYYYZXYSYYYYYYYYYYYYPYYfZYYFYjYddQXcYYYYYXYVYjgYhmYYYYeYYYYYYYYYqYYmYYYPYYbYYPYYUYYYYQYeY]TYYY[YGY`RYYLlYYSRYYY_nYrYaTJYJjYYHPYYPYYnYYmTWYYYYYYlSYZvYYYUYUYYYQYYYmYUYYYYYYUYYOYOYYYkFYYYTkcYYFYYY[YY]iYYYjIH]Y^AYYRYYEYCYYYYYYYLYYKNYYYYHXYYfYYYYYqYYYYOXYYjYYIYYYVTYfYYYYYYYYYYYYnYYCsYY{YQYVM_DIYYYYYWYYYXCYDdYYYYeYYYYYYYYYSYYIYYYNYYUfYaYYXYYYYkYPYZZYYYMYlYR{YYqNYYYYYYb^YGYeLdYnFYYweYYsYYIYYSHVYYYYYYDLY_?YYYkYnYYYOYYY?Y]YYYYYYeYYpYZYYYPsYYYPTKYY`YYYSYYM@YYYFHLQYMQYY\YYIYKCYRYYYYYQYYFFYYYYAYYYQYYYYYXYYYYL^YYYZYYSYYYWTYOYYYYYYYYYYYYMYYL=YYSYDYEHJKKYYYYYYYOYKGYXAYYYYBYYYYYYYYYGYYCYYYJYYRDYOYYVYYYYPYMYLJYYYKY_YLLYYCMYYQHYYYJEYRYGJNYPEYYIKYYXPYMYYUIXYYYYYYRRYVTYYYQYMYYYLYYYNYLYYYYYYPYYDYJYYYLUYYYOHFYYOYYYRYY\IYYYVpm`YPnYYVYYeYkfYIYYYYYPYYe\YYYYcYYY`YYYYYFYYYYWKYYYBYYfYYYYVYUYYYYYYYYYYYYLYYq^YYEYgYicUUeYYYYYXYRYqXYl`YYYYjYYYYYYYYY_YYjYYYRYYkfYSYYZYYYYMYiYiSYYYXYIYiPYYKdYYPSYYY\mYmYZUGYRhYYNPYYB]YkYYrNWYYYYYYpJYYpYYYSYVYYYSYYYfYRYYYYYYQYYJYDYYYhBYYYWoiYYRYYYTYYKGYYYPYDOYQZYYcYYQYMMYOYYYYYTYYGKYYYYCYYYHYYYYYUYYYYLQYYYSYYTYYYYLYTYYYYYYYYYYYYJYYQCYYPYSYXMOKUYYYYYZYVYLNYVCYYYYMYYYYYYYYYNYYTYYYRYYUSYRYYcYYYYRYSYQOYYYJYOYUQYYNLYYTMYYYSCYVYLTOYTJYYJRYYNNYOYYNPYYYYYYYYKYSPYYYVYOYYYQYYYJYTYYYYYYVYYRYSYYYRMYYYPGNYYOYYYYYYHMYYYMdJYYUZYYoYYQYKLYIYYYYYhYYFEYYYYJYYYCYYYYYRYYZYTNYYYBYYWYYY[SYSYYYYYYYYYYYYFYY^9YYLY_YdSTXTYYYYY\Y[YCLY[>YYYYKYYYYYYYYYOYYYYYYYYY[NYTYYnYYYYZYFYPTYYYVY=YYSYYGLYY]LYYYG8YTYAXPYXEYYA[YYBQYRYYLU[YYYYYYQTYOHYYYYY[YYY`YYYDY\YYYYYYcYYQYaYYYQLYYYWHKYYRYYYVYYTFYYYPRMIYSUYY`YYOYMOYTYYYYYMYYOPYYYYHYYYPYYYYYWYYYYKTYYYMYYSYYYXLYTYYYYYYYYYYYYCYYYIYYNYHYROOPSYYYYYZYOYTQYSMYYYYPYYYYYYYYYNYYQYYYQYYWPYOYY`YYYYOYSYUPYYYMYKYRRYYJPYYUSYYYNMYOYQMOYJOYYRKYYLQYOYYPMZYYYYYYXMYWTYYYUYQYYYJYYYQYQYYYYYYSYYQYOYYYTIYYYPPNYYRYYYTYYSHYYYMXHJYWQYY]YYMYIAYMYYYYYYYYNJYYYYGYYYFYYYYYXYYYYP]YYYZYYPYYYXQYUYYYYYYYYYYYYMYYSBYYRYMYXKKSRYYYYYXYRYKKYQBYYYYFYYYYYYYYYOYYPYYYPYY[OYTYYZYYYYSYEYSRYYYOYSYRPYYDGYYXKYYYL?YOYHLPYLKYYGNYYRLYNYYIOYYYYYYYURYXLYYYUY[YYYPYYYJYWYYYYYYZYYFYPYYYRRYYYNFHYYNYYYYYY]EYYYVORSYQWYY]YYQYNUYWYYYYY\YYRSYYYYVYYYWYYYYYUYYYYcUYYY[YYUYYYY`YUYYYYYYYYYYYYQYYTQYYSY\YPT`ZRYYYYYXYUYVQY[XYYYYSYYYYYYYYYRYYMYYYWYYTRYUYY]YYYYXYZYQUYYY^YVYOUYYUVYYTRYYYTXYVYTVbYXNYYW[YYYWYWYYQTZYYYYYYUbYVTYYYUYTYYY\YYYTYSYYYYYYWYYVYRYYYVWYYY\TSYYTYYY;YYI_YYYLO?OY\IYYjYYDY3^YMYYYYYYY;;YYYY@XYYBYYYYY5YYZYaHYYYsYYLYYYXY@YYYYYYYYYYYYdYYP,YYFY_Y+6JWYYYYYWYdY=9Y<;YYYY:YYYYYYYYY5YY5YYYmYY=8YJYYEYYYYNYEY34YYYlYXY/@YYO=YYg=YYYCBYIY7`YU6YY?[YY_2YKYYAfZYYYYYXYYYEYYJZYRYYSYYYYSY>YPQYYYTYcYCeYYkBYYN[YYY]^YKYTHcYd;YYZSYYt;YKYYYYYYYYYYYYYY^YYglYY_YeY8Y3M/YYYYYVY:YtiYfYYYYjYYYYYYYYYcYYQYYYQYY8YYYFYZYOPYYk]YYDdYYYYnYoDkYqaYYP3YYToYzYYpKTYYYYYYMMYYYWYYYY@YhY@:YYYUYQYCCYY:^YYV:YYYICY]Y;VdYAFYYY2OYYYYeYYYYYYYXYKYY@YYYbYY_eYdYYAYYYYY8YKUYYYMYlYI^YY|;YY~YYYVXY;YWckYo@YYt\YYoNY;YYC^VYYYYYXGJYv0YYYY\YYYYYYY.YuYYYYYYYYYtYaYYYPsYYYJAGYYyYYYYYYUQYYYPj_UY^cYYRYY`Yl^YVYYYYYOYYpfYYYY`YYYUYYYYYSYYXYOSYYYGYYSYYYYQY`YYYYYYYYYYYYRYYh_YYKY[YtiTSrYYYYYWYWYebYf[YYYYbYYYYYYYYYgYYrYYYQYYoeYXYY]YYYYPY^YyYYYYRYGYlYYYSRYYSTYYYW^Y`YeSMYTnYYYUYYI[YaYYkSXYYYYYYrQYX_YYY^YYYYYVYYYXYaYYYYYY^YYQYQYYYlIYYYWhmYYTYYYgYYEPYYYG=V[YcYYYfYYFYp9XKYYYYY@YYSaYYYYRYYYSYYYYYxYYXY@iYYYIYYWYYYY:YmYYYYYYYYYYYYUYYBfYYUY8YzfU(=YYYYYYYVYhVYd]YYYYYYYYYYYXYdYYhYYY3YYgqYqYYYYYY\YqYnZYYYFYGYyYYTTYYRpYYYV@YXYe*?YY^YY^YY;|YNYY{1YYYYYYYO:YFOYYYTYnYYY;YYY^YbYYYYYYeYYHYRYYY>YYY8hYYVYYYOYYLIYYYIYYYYUYYYYYYYYYiYYAYYYkYY^TYeYYCYYYYqYDYXbYYYTY\YfSYYOYQKYYYLYVYTMYYCHYYbCYYYBYOYWGYY?TYYTIYPYYMYXYYYYYYSOYVGYYYSY\YYYcYYYBY[YYYYYY]YYGYWYYYERYYYZ@JYYSYYYiYYELYYYKOLGY_PYYcYYMY`BY`YYYYYLYY\MYYYYFYYYHYYYYYkYYYYGdYYYEYYKYYYZJYmYYYYYYYYYYYY@YYXYYY\YKYe[WLXYYYYYZYWYLNYQNYYYY`YYYYYYYYY]YYRYYYOYY`_YdYYuYYYYfYXYbaYYYOYCYieYYJKYYWeYYY?EYUY`PGYKYYYbeYYHeYLYYTFZYYYYYYYBYXIYYY[YVYYYJYYYOY_YYYYYYhYYRYYYYYhEYYYGiSYYWYYYaYYJjYYYTVDGYmBYYWYYQYYPYiYYYYY]YYYMYYYYIXYYJYYYYYgYYXYXcYYYZYYPYYYWaYgYYYYYYYYYYYYVYYSWYYhYWY\\jWaYYYYYWYnYGJYJIYYYYUYYYYYYYYY^YYPYYYdYYcRYjYYPYYYYkYHYS`YYYeYYYOTYYXNYYmaYYYNGYGYY]^YWMYYdfYY_`YJYYDeXYYYYYYM\YjJYYYkYXYYYdYYYLYoYYYYYYhYYaYoYYYYQYYYXVHYYmYYY[YYUMYYYXYi`YXdYYMYYbY`]YOYYYYYLYYcUYYYYVYYY]YYYYYZYYYYXNYYY@YYiYYYYVY_YYYYYYYYYYYYGYY_YYYNY`YYZYOaYYYYYYYVYeZYrRYYYYZYYYYYYYYYfYYaYYYOYY\]Y^YYeYYYYUYcYUaYYYVYAYVQYYKeYY[XYYYZ[YsYaQHYR_YYVQYYIbYfYY`XXYYYYYYaPYhwYYY\YXYYYPYYYhYWYYYYYY\YYRYSYYYeJYYYRhYYYWYYYQYY_NYYYjGUdYVDYYUYYLYFdYdYYYYYWYYLVYYYYSXYYgYYYYYZYYYYUhXYYeYYNYYYWYYZYYYYYYYYYYYYqYYKhYYqYLYOKSLPYYYYYVYTYbLYLdYYYYiYYYYYYYYYKYYKYYYPYYNfYRYYTYYYY\YJYSTYYYNYnYEmYYySYYYmYYYjfYOY]VjYsGYYkRYYeIYJYYPWUYYYYYXLKYZHYYYcYsYYYVYYYGYRYYYYYYTYYjYLYYYPtYYYTKYYYTYYYgYYYgYYY[aV[YbZYYOYY_YZWYmYYYYYJYYnSYYYYXYYYYYYYYYnYYYYZbYYYRYY_YYYYQYgYYYYYYYYYYYYZYYTeYYeYeYjm^QYYYYYYXYVYYVYO[YYYY`YYYYYYYYYlYY^YYYHYYkiYhYYIYYYYgYIYjuYYYYYWYVQYYW`YYjdYYYXcY_YbUHYUPYYbPYY`bYZYYLZWYYYYYYR[YgXYYYgY[YYYPYYY[YYYYYYYYOYYWYYYYYkcYYYIdXYYcYYYTYYNDYYYLMNJYS[YY_YYIYOEXOYYYYYSYYJLYYYYIYYYPYYYYYWYYYYNTYYYOYYYYYYXKYRYYYYYYYYYYYYFYYPEYYKYJYHMRVLYYYYYYYNYRHY\FYYYYDYYYYYYYYYMYYJYYYLYYTJYUYY\YYYYNYUYNQYYYNYQYNOYYAPYYVNYYYDIYUYPJIYKGYYLLYYSQYRYYWMZYYYYYYTRYXZYYYQYMYYYMYYYTYQYYYYYYQYYKYNYYYWKYYYRPFYYOYYYUYYQIYYYTXRSYM^YYbYYVYQOYOYYYYYSYYHLYYYYMYYYOYYYYYSYYZYXSYYYLYYXYYYZQYMYYYYYYYYYYYYSYYTIYYUYWYPEZLNYYYYYYYXYJPYZIYYYYKYYYYYYYYYMYYOYYYXYYQOYRYYoYYYYZY\YNSYYYTYSYOUYYVTYYNQYYYSJY^YLUVY[OYYTVYYROYZYYUZYYYYYYYZTYQSYYYVYPYYYWYYYUYWYYYYYYWYYVYRYYYXPYYYVVNYYUYYYlYYGeYYYIGBIYmIYYXYYLYeDXsYYYYYMYYeSYYYYIYYYEYYYYY~YYXYGqYYYVYYIYYYXHYpYYYYYYYYYYYYMYYEaYYuYLYhjg=KYYYYYWYiYIMYmOYYmYYYKYYtLYYY}PRxYLBYYPYYJY7]YwYYYYYMYYBZYYYYTXYYxYYYYYLYYXYKtXYYjYYTYYYVMYWYYYYYYYYYYYYsYYRrYY|YOYJDPQHYYYYYWYMYfMYG|YYYYyYYYYYYYYYDYYGYYYRYY@qYJYY@YYYYMYXYPRYYYJYrYLqYYOYYNvYYYx{YQYiNkYuHYYvOYYtQYXYYTRUYYYYYXHEYOEYYYSYyYYY[YYYEYGYYYYYYJYYpYBYYY@YYYSQRYYEYYYWYYQKYYYTSNQYVYYYcYYTYRNYSYYYYYQYYRTYYYYSYYYLYYYYYXYYYYJXYYYTYYSYYYXQYWYYYYYYYYYYYYOYYVQYYRYPYXTSRUYYYYYYYSYSSYQOYYYYPYYYYYYYYYUYYVYYYSYYWRYYYY`YYYYTYNYVXYYYMYNYYTYYTTYYVQYYYMKYXYVTQYRQYYRTYYKTYOYYITXYYYYYYRQYTOYYYXYQYYYQYYYOYYYYYYYYZYYMYQYYYXSYYYONUYYTYYYWYYTDYYYMLMLYQRYYZYYJYJLYRYYYYYQYYPLYYYYLYYYJYYYYYZYYYYK_YYY_YYSYYYWOYRYYYYYYYYYYYYMYYUGYYHYJYLNKWTYYYYYYYPYKLYYJYYYYFYYYYYYYYYPYYLYYYJYYRLYXYYQYYYYSYRYONYYYMY`YONYYHRYYSOYYYFFYTYOOPYKMYYMPYYPSYOYYNLYYYYYYYQXYXOYYYTYNYYYJYYYNYSYYYYYYTYYCYKYYYROYYYOJHYYNYYYVYYSEYYYWSXTYTWYY^YYYYUVYUYYYYYSYYYZYYYYTYYYQYYYYYXYYYYLVYYYNYYVYYYYOYSYYYYYYYYYYYYIYYYSYYQYLYXURVWYYYYYYYUY\XYXUYYYYXYYYYYYYYYUYYXYYYQYYVYYYYYdYYYYTYSYYVYYYNYLY[UYYSVYYRWYYYQRYXYYTNYLYYYUVYYITYPYYOTYYYYYYYXPYQQYYYTYRYYYOYYYVYWYYYYYYUYYSYLYYY\SYYYTVXYYUYYYSYYfsYXYvWYcYoCYYFYYMY?zYsYYYYYmYYIYYYYYIWYYjYYYYYYYXYYeWYYfYYUYYYTpYdYYYYYYYYYYYYiYY_\YYxY`YG@\\jYYYYYUYfYeIYHbYYYYqYYYYYYYXYIYYJYYYqYYInYMYY>YYYY^YTYQ^YYYkYkYIpYY{VYYjvYYY{mYFYenY~SYYv\YYoOYRYYKcSYYYYYXOdYlYbYYYYYYMYY~YnYYYMkYYYm?[YYeYYYlYYEdYYYIFAHYjDYYUYYKY^CYkYYYYYSYYeMYYYYFXYYHYYYYYuYYXYHjYYYUYYJYYYXTYoYYYYYYYYYYYYOYYM]YYmYNYbcfJ\YYYYYWYkYGHYAHYYYY]YYYYYYYYYbYYLYYY]YYbWYgYY]YYYYmYLYVdYYYQYNYYZYYUGYYlrYYYCEY@Y\TMYPRYYkoYYS`YBYYNVYYYYYYYMLYp@YYYnYVYYYTYYYJYxYYYYYYpYY^YeYYY^GYYYLcTYYmYYYeYYIlYYYQMILYeJYYTYYRY]KYlYYYYYTYY^TYYYYMYYYNYYYYYpYYXYHeYYYYYYNYYYXKYjYYYYYYYYYYYYUYYJbYYmYPY``fOUYYYYYXYeYLOYDOYYYY^YYYYYYYYY]YYTYYY_YYhSYiYYXYYYYjYWYW^YYYQYTYY\YYUKYYepYYYKLYFY^QPYQTYYhmYYU`YDYYRRYYYYYYYILYgCYYYkY]YYYOYYYKYqYYYYYYgYYYYgYYYZNYYYKaRYYjYYY]YYagYYYVng_Y^aYYTYYdYelYPYYYYYTYYh\YYYYaYYY`YYYYYQYYXYbVYYYIYYeYYYYbY\YYYYYYYYYYYYRYYjYYYLYgYgbX]qYYYYYXYaYi_Yi^YYYYgYYYYYYYYY_YYsYYYWYYg]YUYYQYYYYWY^Yb\YYYeYKYfOYYR`YYaZYYY_eYjY_cTYWfYYPSYYJVYkYYf^XYYYYYYjUY]aYYY]YYYYYZYYY[YZYYYYYYTYY\Y[YYYgHYYYZciYYZYYYEYYE]YYYT\BJY^QYYfYYGY7aYQYYYYYYYA@YYYYBXYY>YYYYY?YYYYcLXYYkYYHYYYWYGYYYYYYYYYYYY[YYT2YYDYbY39QcYYYYYWYhYAYY?hYY[BYOYYFe[YYYYYXAxYWIYYYSY@YYYvYYY@YcYYYYYY=YYRY`YYY;]YYY3@YYTYYY_YYXtYYYRtYYYe_YYXYYfYXrYJYYYYYjYYV\YYYY]XYY\YYYYYGYYXYqIYYYIYY`YYYXnY[YYYYYYYYYYYYSYYvJYYEYsYUY[usYYYYYXYbYeYYf]YYYY^YYYYYYYYYFYYtYYYmYYaXYSYYBYYYYMYVYPNYYYoYLYZ?YYT]YYiQYYYZeY`YP|]YT`YYJXYYKJYaYY^qWYYYYYYfbYTYYYY^YJYYYhYYYXY\YYYYYY@YYYY[YYYUBYYYcVbYYbYYYcYYTgYYYS[ORYeTYYWYYYYXcY[YYYYYgYYQTYYYYTYYYTYYYYY[YYYYgRYYYQYYVYYYYlYZYYYYYYYYYYYYUYYfKYYQYdYKRfmfYYYYYXYkYWQYSXYYYYSYYYYYYYYYKYY[YYYnYYZNYZYYKYYYYXYTYLSYYYfYTYHJYYVWYYk^YYYQVYWYRq_YXTYYRZYYUPYTYYOmXYYYYYYZdY`SYYYaYJYYYkYYYVYdYYYYYYRYY`YdYYYPLYYYaTRYYbYYYTYYNHYYYEPVIYWUYYYYYQYSLYMYYYYYKYYPSYYYYKYYYLYYYYYWYYYYIQYYYNYYRYYYXKYTYYYYYYYYYYYYRYYWKYYHYMYNPNKQYYYYYYYPYSSYRLYYYYLYYYYYYYYYRYYLYYYIYYRMYRYYWYYYYUYUYPRYYYFYYYPMYYITYYWLYYYNLYVY\NFYJOYYIMYYJSYNYYPQYYYYYYYWIYRWYYYUYTYYYHYYYSYRYYYYYYRYYFYJYYYYKYYYHRLYYRYYYYYYJfYYYR[EIYlNYYYYYRYOcYQYYYYYlYYLPYYYYLYYYHYYYYYRYYXYgHYYYHYYPYYYXzYWYYYYYYYYYYYYTYYjBYYHYbYYYRYYY}YYKIYQYYSYYYYTYIYBLYYYqYJY9@YYWRYYjWYYYEQYQYGcYQMYYO_YYPIYOYYF|ZYYYYYYQhYYLYYYYY>YYYvYYYPYeYYYYYYKYYhYeYYYLIYYYhJIYYdYYY#YYPZYYYTG0sY]8YYZYYbYYYYYYYQSY|AYYYyYWYYYUYYYNY~YYYYYYwYYkYtYYY]CYYYF_KYYvYYYWYY[WYYY[Y]\YW\YYWYY\Y^VYWYYYYYXYYV[YYYYaYYY\YYYYYXYYYYWVYYYXYY\YYYZWYVYYYYYYYYYYYYXYY[[YYWY\YW[TZSYYYYYYYZYY^Y^cYYYY]YYYYYYYYY[YY[YYYYYYWWYUYYVYYYYWY[YPTYYYYYYYTWYYX_YYVTYYY]]YZYYW[YWWYYTXYYTXY[YY`[YYYYYYYWYYW^YYYYYXYYYVYYY_YXYYYYYYVYYWYWYYYXVYYYY\\YYYYYYVYYOKYYYMUWJYV^YYdYYQYTPYSYYYYYRYYRQYYYYNYYYMYYYYYZYYZYNVYYYLYYUYYYYJYYYYYYYYYYYYYYGYYUMYYPYQYTNVSUYYYYYZYVYXRY]NYYYYTYYYYYYYYYSYYWYYYPYYUQY]YYiYYYYTYQYUYYYYPYNYUUYYOUYYWOYYYRKY[YVSJYSPYYOZYYLTYQYYNQWYYYYYYSNYWXYYYUYQYYYOYYYRYVYYYYYY\YYRYUYYYZRYYYQUPYYVYYYSYYPIYYY[RSUYUSYYUYYWYPTYTYYYYYWYYVZYYYYZXYYQYYYYYYYYYYOXYYY]YYQYYYWVYXYYYYYYYYYYYYXYYS[YYUYWYUUPVUYYYYYWYWYXYYSXYYYYTYYYYYYYYYVYYXYYYSYYUPYVYYXYYYYQYUYVXYYYSYXYYYYYWWYYVQYYYRPYQYSXWYKWYYUVYYMNYQYYNUWYYYYYYTRYWPYYYVYSYYYPYYYVYVYYYYYYSYYPYNYYYSQYYYTUUYYOYYYUYYRLYYYRcQYYLYYYeYYSYNQYPYYYYY`YYSRYYYYUYYYNYYYYYTYYYY`UYYYOYYUYYYZdYRYYYYYYYYYYYYQYYYLYYUYaYZQa\PYYYYYYYSYMWYQOYYYYQYYYYYYYYYSYYXYYY[YYSSYNYYcYYYYYYTYRTYYY]YOYTSYYTUYYWTYYYTJYUYP\ZYWPYYO^YYTNYXYYR[[YYYYYYW]YRPYYYUYWYYY]YYYRYSYYYYYYWYYYYZYYYPSYYYZPUYYNYYYTYYXWYYYbY`[YTYYYNYYXYR^YXYYYYYQYY\YYYYY\XYY\YYYYYYYYXYT[XYYaYYYYYYUWYTYYYYYYYYYYYYbYYZYYYXYVYT]R[ZYYYYYVYXYXZY^YYYYYWYYYYYYYYYSYY[YYYWYYTNYVYYPYYYYPYVY[WYYYXYZY[PYY[XYYXXYYY_WYXYXZ[YUXYYZTYY\XY^YYUXTYYYYYX\UYO]YYYUYZYYYTYYYXYSYYYYYYSYYTYVYYY[RYYYTXTYYYYYYCYYnHYYYX?JhY2_YYfYY8Y-CYkYYYYYGYY;@YYYYGXYYbYYYYYAYYYY[[YYYpYYUYYYYSYBYYYYYYYYYYYY`YY7XYYmYJY29GP8YYYYYZY>YT;YXfYYYY[YYYYYYYYYWYYYYYX;gYAaYYYJYXYYY=YYYEY9YYYYYY>YYaY2YYY>vYYYSD:YYkNYYbYYYUYY[WYYY]W\]YXXYYXYYWYUYYYYYYYY[YYTTYYYYXYYYYYYYYYVYYYY[\YYY]YYWYYYY[YUYYYYYYYYYYYY^YYY\YYZYWYSUUVTYYYYYXYVYXVY[YYYYYWYYYYYYYYYTYYXYYYWYYRWYWYYUYYYYWYZYUUYYYVY_YTWYY]YYYWWYYY[VYZYUVZYZUYYWWYY]VYXYY[YXYYYYYYX[YU^YYYVY\YYYWYYYZYUYYYYYYTYYVYXYYYYXYYYUXWYYXYYYSYY:`YYYJ]G?Yq?YY[YYJYSOY\YYYYYnYYaNYYYYEXYYFYYYYY[YYXYjPYYYWYYLYYYWrYgYYYYYYYYYYYYQYY_ZYYdYWYXXrYhYYYYYVYlYIKY?DYYYYVYYYYYYYYYeYYKYYYiYYUSYbYYMYYYY_YHYS`YYYhYSY_SYYRKYYmQYYYDHYGYTh_YOPYY[nYYROYJYYBeYYYYYYYSjYo?YYYjYPYYY^YYYIYpYYYYYYYYYjYxYYY\JYYYgFLYYjYYYHYYwGYYYqipYChYYEYYqYmgYSYYYYYJYYYrYYYYpXYYuYYYYY=YYXYJKXYYVYYwYYYYRYEYYYYYYYYYYYYTYYbcYYIYaYcr>TWYYYYYVYOYivYcvYYYYlYYYYYYYYYoYYhYYYQYY]cY9YYDYYYYYYnYYYYYTYY@JYYYYQXYYfYYYYYNYYXY]qXYYpYYWYYYW[YPYYYYYYYYYYYY{YYM\YYxYKY@ILPCYYYYYWYHYTGYW]YYYYVYYYYYYYYYFYYEYYYKYYDRYLYYAYYYYSYRYMTYYYPYYHcYYpLYYMbYYYibYQYTKcYeCYYlSYYFYOYYLMWYYYYYYI]YPUYYYYYiYYYXYYYMYIYYYYYYIYY[Y@YYYEyYYYSEAYYJYYYSYYOEYYYFM`KYQXYYdYYOYUMYKYYYYYLYYZUYYYYSYYYGYYYYYXYYYYNOYYYLYYUYYYXJYSYYYYYYYYYYYYQYYQTYYJYYYLTSNMYYYYYXYLYVSYURYYYYMYYYYYYYYYRYYOYYYHYYOJY\YYcYYYYPYSYGWYYYHYSYILYYSTYYTJYYYPNY\YUNJYHPYYMNYYEPYMYYIJYYYYYYYPSYOUYYYSYKYYYEYYYQYOYYYYYYTYYEYGYYYZOYYYHULYYOYYYQYYaNYYYYm``YTeYYRYYkYokYWYYYYYTYYekYYYYhYYYbYYYYYQYYXYQMYYYQYYaYYYYWYRYYYYYYYYYYYYTYYiYYYNYkYgePTfYYYYYWYRYhjY]eYYYYaYYYYYYYYYiYYhYYYRYYf_YPYYSYYYYMY[YhRYYYXYMYbTYYV`YYOSYYYYnYbY`TSYOgYYSRYYWLYkYYhVWYYYYYYrRYMbYYY\YTYYYYYYY`YXYYYYYYRYYRYNYYYeQYYYZb`YYMYYYxYYMbYYY\HWMYjNYYQYY[YjXYWYYYYYKYYjOYYYYTYYYQYYYYYeYYXYQiXYYSYYNYYYXYYqYYYYYYYYYYYYXYYTjYYSYKYjb_SaYYYYYYYoYSQYXSYYYY`YYYYYYYYYhYYQYYYYYYgiYlYYZYYYYsYSY]tYYYWYRYagYYSJYYjbYYYSKYWYrUWYe[YYqzYYRqYLYYI[XYYYYYYMXYp[YYYmYfYYYWYYYVYgYYYYYYgYYXYiYYYrOYYYUebYYqYYYPYYU{YYYVo_Y\nYYdYYlY`uY3YYYYYcYYbcYYYYlXYY^YYYYY7YYXYo>XYY>YYqYYYWpYWYYYYYYYYYYYYLYYWYY>YY_gRzrYYYYYYYmYjeYmZYYYYtYYYYYYYYYNYYpYYYfYYWcYHYYQYYYY>YZY^DYYYuY?Y|>YYFkYYaGYYYaqYmYUyUYCbYYAWYY9XYgYYrjYYYYYYYj[YEgYYY[YKYYYcYYYYYgYYYYYYYYJYdY=AZpeYYYYYVYeYQOYLNYYYYKYYYYYYYYYAYYKYYYwYYJGYDYYGYYYYNYKY?GYYYrYRY9CYY_SYYdQYYYSRYKYJzuYUKYYH[YYVDYTYYLwYYYYYYYOsYYLYYY]YKYYYoYYYMY_YYYYYY>YY_Y]YYYBSYYYt@OYYRYYYsYYJ]YYYC\FFYygYYUYYTYOX\YYYYY9YYkYYYYVYYYIYYYYYhYYWY2lYYYJYY9YYYX'YyYYYYYYYYYYYYFYYOYYXY;YyT%]YYYYYXYeYZdYTVYYYYYYYYYYYXY~YY~YYY,YYYoYY}YYYYbYbY`YYY*Y@YYY>5YYOvYYYPDYJYEYKzYYxYY7YFYYoVYYYYYY_-YP:YYYbY}YYY:YYYEYfYYYYYYpYYYYYY]YYYYYYYXYaYYKYYY]YY_SYuYYmYYYYwYGYWcYYYPYNYVYYYTGYYlxYYYG9Y9YbFJYPLYYlYYTmY7YYKKZYYYYYY?=Yu@YYYpYZYYYNYYYGYYYYYYYsYYSYmYYYb@YYYFqKYY{YYYSYY^VYYYX`hdYPbYYPYYgYkcYRYYYYYVYYe_YYYYdYYY]YYYYYOYYXYUQYYYXYYgYYYZVYUYYYYYYYYYYYYXYY]WYYMYcY]dSY]YYYYYWYTY_cYbdYYYY[YYYYYYYYYjYYcYYYUYY]RYOYYQYYYYQY^YXSYYYXYQYVQYYXhYYSSYYY\eYeY\VSYM`YYITYYTUYkYYfUWYYYYYYeUYTiYYYVYWYYYRYYYfYVYYYYYYSYYTYQYYYcPYYYUb\YYLYYYVYYWEYYYWUSXYSZYYYYYUYZVYTYYYYYRYYTUYYYYTYYYWYYYYYXYYYYSUYYYUYYXYYYXSYSYYYYYYYYYYYYQYY[SYYSYSYTUVSUYYYYYXYUY]UY]VYYYYSYYYYYYYYYTYYYYYYTYYWWYWYY[YYYYUY\YZVYYYVYVYVWYYX]YYUTYYYUUYVYVVRYVUYYUVYYQZYZYYWUXYYYYYY]QYXRYYYVYUYYYUYYY[YTYYYYYYXYYRYOYYYWSYYYVZWYYRYYYcYYFgYYYMKFKYkEYYWYYKY\FYqYYYYYXYYaOYYYYJYYYKYYYYYpYYYYHmYYYcYYMYYYXQYgYYYYYYYYYYYY[YYD]YYsYPYcbdNTYYYYYXYgYEJYBIYYYYYYYYYYYYYY`YYPYYYYYYhPYoYYVYYYYqYNYX_YYYRYZYY[YYSIYYckYYYFDYBY\HWYPPYYghYY`^YHYYOLYYYYYYYJKYnBYYYjY^YYYQYYYIYmYYYYYYdYYTYeYYY[RYYYI_LYYgYYYNYYpQYYYuKUoYHBYYSYYJY:aYyYYYYYPYYAWYYYYSXYYzYYYYYSYYXYPwXYYaYYRYYYVPYTYYYYYYYYYYYYuYYNpYYzYKYJCQOFYYYYYWYOYeGYJzYYYYvYYYYYYYYYGYYFYYYKYYBqYLYYHYYYYNYVYQTYYYLYqYItYYQYYOwYYYpyYSYgOiYuGYYvMYYrQYUYYNRUYYYYYXGLYQOYYYVYrYYYRYYYJYHYYYYYYOYYrY?YYY@YYYWMQYYLYYYkYYJYYYYNHHKYjDYYQYYNYd@YpYYYYYRYYfNYYYYGYYYIYYYYYkYYXYHtYYYTYYHYYYWNYnYYYYYYYYYYYYLYYR`YYsYMYfe[MaYYYYYWY`YFMYCIYYYY`YYYYYYYYYdYYPYYYVYYbaYeYY^YYYYnYOY\fYYYPYRYldYYVJYYfqYYYFFYDYaZJYMYYYk^YYV]YLYYLPXYYYYYYUHYeEYYYgYYYYYMYYYMYlYYYYYYuYYWYYYYY_MYYYChWYY_YYYMYYpRYYYiO\yYM]YYTYYMYQZY`YYYYYRYYKTYYYY^YYYfYYYYYRYYYYXZYYYjYY_YYYXZYLYYYYYYYYYYYYkYYN^YYdYXYEPOZFYYYYYXYMYVPY[eYYYYXYYYYYYYYYQYYKYYYOYYDLYUYYOYYYYTY`YHXYYYWYgYLUYYjYYYN[YYYf`YZYdKgYeOYYZKYYnaY]YYQNXYYYYYYPZYPZYYYOYgYYYUYYYVYMYYYYYYGYYSYMYYYLlYYYQTLYYMYYYJYYMuYYQYYVYaTY>YYYYYFYYLeYYYYpYYYiYYYYYEYYZYT3YYYBYYYYYXTYFYYYYYYYYYYYYAYY^^YY=YoYDjGGDYYYYYXY?YgbYrhYYYYWYYYYYYYYYdYYcYYYFYYFMYJYYcYYYY?YtY.OYYYHY=YV9YY>nYYFEYYYicY{YVBMYLcYY0@YYEfYyYYiOUYYYYYYSXYRzYYYGYVYYY>YYYzY@YYYYYY?YYFY@YYYVSYYYHbXYYJYYNYYQf[YYYYYYQmYJMYYYIYJYYYbYYYPYVYYYYYY>YYWY]YYYHHYYYfBNYYMYYY\YYbuYYYm=FWYh;YYXYY9YBIYYYYYYNYYLMYYYY@WYYoYYYYYYYXYGXYYfYYFYYYUFY{YYYYYYYYYYYYpYYY[`OYOQYYmjYYW[YCYYB`YYYYYYYOQYr@YYYnYXYYYRYYYFYyYYYYYYsYYaYgYYY_HYYYNaLYYmYYYFYYsDYYYzRfsY?cYYPYYcYYdYVYYYYYHYYWiYYYYlYYYlYYYYYCYYXYMVYYY\YYuYYYYNYAYYYYYYYYYYYY]YYZ`YYPYOYXl?MQYYYYYWYPYbdYefYYYY_YYYYYYYYY\YYcYYYQYYV_YGYYOYYYY:YjYaFYYYFYRY`RYYZdYYMWYYYpgYoYgERYVfYYMLYY\eYqYYfHVYYYYYY^EYFdYYYGYcYYYFYYYdYGYYYYYYKYYIYEYYYbZYYYKX[YYFYYY?YYFZYYYGkRXYQ]YY\YYDYGQY=YYYYYzYYAGYYYYCYYYRYYYYYKYYZYqFYYYFYYbYYYYqYDYYYYYYYYYYYYMYYR.YYFY[YEANcAYYYYY[YXYJMYJ;YYYYEYYYYYYYZYUYYGYYYjYY:HY8YYMYYYY>YdY@@YYY]YVYOEYY3YYYLAYYYMCYVY4WnYAMYY@eYYGHYUYYlT\YYYYYYYYC_YYYEYKYYYeYYYRYKYYYYYYBYYPYaYYYQFYYYcOCYYKYYYlYY?YYYLX>8Y|AYYTYYOYZRY_YYYYYXYY[EYYYYAXYYEYYYYYnYYXY\YXYYOYYFYYYWiYsYYYYYYYYYYYYSYY_OYYbYYY[WvepYYYYYWY{YHBYMDYYYYVYYYYYYYYYXYYTYYYqYY_QYeYYKYYYYhY?YWbYYYlYLYISYYWEYYsjYYYBEY@YTxaYXPYY`oYYRYYDYY:qWYYYYYYIgYsBYYYqYPYYYeYYYHYwYYYYYYdYYgYxYYYYEYYYdWLYYzYYYYYYOBYYYPWGOYP^YYmYYPYQDYMYYYYYTYYDIYYYYCYYYQYYYYYPYYYYYKYYYKYY\YYYZWYPYYYYYYYYYYYYKYYTGYYQYOYSIYLMYYYYYZYYYQMY\GYYYYDYYYYYYYYYNYYXYYYZYYVKYRYYnYYYY\YbYNRYYYUYNYQVYYMWYYUKYYYOIY_YDSQYXIYYMYYYZRY[YYTSZYYYYYYYXY[ZYYYXYLYYYYYYYOYTYYYYYYZYYXYXYYYWQYYYXUMYYPYYYGYY\OYYYdIOmYOGYYQYYOY>_YoYYYYY[YYEMYYYYNXYY`YYYYYPYYYY[lXYYnYYTYYYWaYRYYYYYYYYYYYYvYYJ^YYmYPYKGQVKYYYYYWYNYQLYP^YYYYWYYYYYYYYYKYYIYYYNYYJWYMYYIYYYYXYOYOQYYYWYvYJdYYqIYYPaYYYacYSYXQnYeEYYhXYYsFYSYYKUWYYYYYYK`YSPYYY\YhYYYVYYYIYIYYYYYYLYY]YFYYYFpYYY[BCYYQYYYXYYQSYYYOOXaYQXYY[YYUYWUYSYYYYYUYYXQYYYYQYYYVYYYYY^YYYYUTYYYXYY`YYYYVYUYYYYYYYYYYYYZYYPTYYVYUYORVXVYYYYYYYPYORYcSYYYYMYYYYYYYYYSYYWYYYRYYRMY[YY`YYYY^Y_YNXYYYTY^YLOYYX\YYTPYYYVMY\YTNYYVQYYUSYYW_YVYYXQZYYYYYYW\YV_YYYWYUYYYUYYY[YXYYYYYYWYYPYVYYY[YYYYP\PYYWYYY@YYS7YYYR:D_YBBYYWYYAY9JXTYYYYYRYY8=YYYY9XYYYYYYYYLYYYYT\XYYpYYRYYYWUYHYYYYYYYYYYYYiYY?AYYnYCY:YWDYYYYEYYYYYYYYY9YY9YYY@YYEBYRYYKYYYYSYGYGIYYYSYvY>XYY\AYYMRYYYUJYMYIBaY^4YYTIYYtnYYYV=3YY?YYYYYY[NYYY\WUXYWWYY[YY[YYXYWYYYYYVYYYXYYYYVYYYXYYYYYXYYYY[WYYYZYYYYYYZWYVYYYYYYYYYYYY]YYXWYYVYXYZUTVVYYYYYXYXY\YYVYYYYYXYYYYYYYYYWYYXYYYVYYXYYWYY]YYYYVYUYYZYYYYYZYWYYYZWYYVVYYY[\YVYVVVYWXYYWXYY[WYWYYYXYYYYYYYYYYVXYYYYYXYYYVYYYWYUYYYYYYXYYXYQYYYWZYYYYZZYYXYYYYYYUJYYYYVUVYWVYYYYYXYWYYXYYYYYTYYXYYYYYXXYYWYYYYYXYYYYWYYYYVYYWYYYXVYWYYYYYYYYYYYYUYYYVYYYYXYYVXUWYYYYYXYWY\YYYXYYYYXYYYYYYYYYWYYVYYYUYYYYYYYY^YYYYUYVYXWYYYVYUYXXYYXYYYWXYYYVXYVYWXUYTWYYXWYYTVYXYYUWXYYYYYYYTYXWYYYXYXYYYVYYYXYVYYYYYYXYYVYOYYYVVYYYWZYYYUYYYZYYWWYYYVXWVYXZYY[YYWYWWYXYYYYYXYYXXYYYYVYYYWYYYYYYYYYYYXYYYXYYZYYYYXYZYYYYYYYYYYYYYYYXVYYXYVY[WXXXYYYYYYYYYYWYZWYYYYYYYYYYYYYYYYYYYYYXYYZWYZYYZYYYYXYZYXYYYYXYXYXXYYXWYYWYYYYVUYYYXXXYWXYYWZYYXYYZYYXYYYYYYYYZWYZWYYYYYXYYYYYYYXYXYYYYYYYYYYYWYYYZWYYYXYXYYXYYYZYYUUYYYVZQWYVYYY[YYYYYTYXYYYYYZYYWWYYYYUYYYWYYYYYVYYYY[WYYYXYYWYYYY\YWYYYYYYYYYYYYZYYVWYYZYYY[WYVWYYYYYXYYYXWYYVYYYYVYYYYYYYYYVYYZYYYXYYZYYVYY[YYYYWYXYYZYYYZYVYYVYYXYYYYXYYYWUYUYUZZY[UYYV[YYYZYTYYXZXYYYYYYX[Y]TYYYXYWYYY[YYYTYXYYYYYY^YYZYTYYY[WYYY[YWYYVYYYUYYTTYYYSU[TYS[YY^YYSYQQYVYYYYYVYYRSYYYYPZYYVYYYYYVYYYYZTYYYYYYWYYYZZYUYYYYYYYYYYYYYYYTSYYXYVYTSXZTYYYYYYYSYUSYUUYYYYSYYYYYYYYYQYYRYYYSYYTQY\YY^YYYYTY]YTXYYYYYSYNVYYUXYYUUYYYRTY`YUUYYXSYYVWYYXUYUYYVRZYYYYYYX[YSYYYYVYSYYYUYYYSYTYYYYYYTYYSYXYYYVZYYYWWOYYTYYYYYYQHYYYTUUNYUTYYcYYTYZOYVYYYYYSYYRVYYYYTYYYSYYYYYWYYYYVQYYYPYYVYYYZTYUYYYYYYYYYYYYMYYYVYYTYRYUPQQSYYYYYZYSYWUYUVYYYYSYYYYYYYYYPYYUYYYWYYSPYWYYoYYYYWYYYWYYYYSYOYQVYYUQYYVVYYYSQYWYVVQYRTYYTVYYVVYMYYUUYYYYYYYWNYSRYYYVYPYYYUYYYRYTYYYYYYUYYSYLYYYZTYYYXUSYYVYYYWYY]OYYY]VRXYWYYYWYYVYTVYYYYYYYUYYUXYYYYXYYYWYYYYYYYYYYV]YYY^YYXYYYYYYVYYYYYYYYYYYY]YYYTYYYYVYYTU[UYYYYYXYVY]UYXUYYYYVYYYYYYYYYVYYWYYYUYYXZYXYYYYYYYVYXYYUYYYZYVYWXYYYUYYVUYYYYWYYYUWZYYVYYZZYYWWYYYYUYXYYYYYYYXYWXYYYYY[YYYWYYYVYVYYYYYYXYYSYRYYYWYYYYWZWYYUYYYZYYXWYYYYYWTYW[YY\YYTYYUYXYYYYYYYYXUYYYYXYYYWYYYYYXYYYYZTYYYXYYXYYYZ]YXYYYYYYYYYYYYZYYXUYYVYYYYVWYUYYYYYYYYY[UYVWYYYYUYYYYYYYYYWYYYYYYVYYXTY\YY]YYYYWY]YWYYYYXYWYXWYYUXYYWTYYYXVYZYWXYYSWYYW[YYUWYXYYYUYYYYYYYY]YWXYYYWYSYYYUYYYXYZYYYYYYXYYXYZYYYXVYYYVWXYYWYYYXYYUXYYYUVWUYW[YYcYYTYXSYWYYYYYYYY\UYYYYWYYYTYYYYYZYYYYVTYYYZYYZYYYZXYVYYYYYYYYYYYYZYYTXYYSYXYWUZ\WYYYYYYYXYZSYZSYYYYRYYYYYYYYYUYYUYYYTYYYSYdYY^YYYYYYVYV[YYYZYVYUUYYZWYYWOYYYQSY]Y\VVYYTYYU[YYYTYXYYQWYYYYYYYUWYXWYYYUYQYYYSYYYWYTYYYYYYVYYTYVYYYX_YYYY\VYYSYYYXYYYVYYYWVYVYXYYY[YYXYYWYXYYYYYXYYXXYYYYXYYYWYYYYYZYYYYYWYYYXYYZYYYYXYXYYYYYYYYYYYYXYYYXYYXYVYYXYXXYYYYYYYXYWWYYXYYYYWYYYYYYYYYXYYXYYYXYYXWY[YY[YYYYYYZYXZYYYXYYYVXYYYXYYXXYYYWWYZYXYXYXXYYW[YYXYYYYYVYYYYYYYYYYYYWYYYXYXYYYYYYYYYXYYYYYYXYYXYZYYYYYYYYYYWYYYYYYYYYXWYYYWUVWYW\YY\YYUYZSYXYYYYYWYYXUYYYYWYYYWYYYYYYYYYYXVYYY^YYYYYYZXYXYYYYYYYYYYYY\YYUVYYXYWYVUXYUYYYYYYYXYWSYYSYYYYUYYYYYYYYYTYYTYYYUYYVTY^YY[YYYYXYWYUYYYYXYXYTWYYYWYYWTYYYSSY\YWVYYYTYYVZYY\VYUYYSVYYYYYYYUZYXZYYYWYVYYYVYYYUYWYYYYYYWYYWYXYYYW[YYYXYUYYVYYYWYYTVYYYYX[YYVZYYXYYUYWUYVYYYYYXYYUWYYYYXYYYVYYYYYYYYYYYXYYYXYYYYYYZYYXYYYYYYYYYYYYZYYUZYYWYZYTWVWVYYYYYYYTYWXYVXYYYYUYYYYYYYYYSYYVYYYYYYSRYXYY[YYYYWYYYTXYYYXYVYVWYYWVYYVXYYYUWYZYYVWYTXYYXVYYXUYXYYVVZYYYYYYWZYYWYYYWYVYYYXYYYVYUYYYYYYXYYWYXYYYV]YYYVXVYYXYYYYYYWYYYYWYXVYYXYY[YYXYXWYXYYYYYZYYZXYYYYYYYYXYYYYYZYYYYZVYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYWYYYYYXZYYYYYYYYWYYXYXWYYYYXYYYYYYYYYYYYWYYYYYYYWYZYYYYYYYXYXYYYYYYXYVYUXYYWXYYXXYYYWXYYYYXYYWYYYWWYYXWYWYYXXZYYYYYYXYYZWYYYYYVYYYYYYYXYXYYYYYYVYYYY[YYYXXYYYXZXYYYYYYWYYVUYYYWYZPYT^YYcYYVYRQYSYYYYYVYYURYYYYRZYYYYYYYYWYYYY\TZYYRYY[YYY[\YUYYYYYYYYYYYYXYY[QYYTYZYURY_RYYYYY[YUYUTYWRYYYYOYYYYYYYYYUYYUYYY[YYVSY[YYdYYYY\YbYQYYYY[YVYPWYYWWYYTVYYYNSY`Y[ZWYYVYYW`YYXYYVYYUY[YYYYYYYZYSTYYYVYQYYYVYYYTYWYYYYYYXYYXYVYYY]WYYYZXOYYUYYYXYYVXYYYWWUYYXYYYYYYWYWWYXYYYYYYYYVWYYYYVYYYYYYYYYXYYYY[XYYYXYYXYYYYZYXYYYYYYYYYYYYYYYWXYYXYWYWXWXVYYYYYYYXYXWYVWYYYYXYYYYYYYYYVYYWYYYYYYXWYYYYZYYYYVYZYWZYYYYYXYVWYYXVYYWXYYY[YYVYWVXYXWYYXXYYYZYTYYXWZYYYYYYYZYXXYYYYYYYYYXYYYUYWYYYYYYXYYZYXYYYXXYYYXWVYYXYYYXYYVUYYYWYWXYXWYY[YYWYSTYWYYYYYUYYWXYYYYVYYYWYYYYYWYYYYUUYYYYYYVYYYYYYXYYYYYYYYYYYY\YYYVYYYYZYVWWYXYYYYYYYYYXVYUZYYYYWYYYYYYYYYWYYWYYYXYYZUY[YY[YYYYXYYYVXYYY[YVYUXYYZVYYWUYYYTWYVYXXXYYWYYY[YY\WYVYYZYYYYYYYYYZYWUYYYXYWYYYWYYYVYVYYYYYYXYYYYYYYYXZYYYXWWYYWYYYVYYS]YYYYWXYYYTYY_YYSYSWYSYYYYYWYYYWYYYYYYYYTYYYYYXYYYYSUYYY_YYWYYYYaYXYYYYYYYYYYYY`YYSYYY[YZYXYSXVYYYYYYYZYXVYTTYYYYXYYYYYYYYYWYYVYYYUYYTTY\YYSYYYYXYTYVZYYYWY[YTXYYXWYYXQYYYXWYXYYV\Y[TYYTZYYSTYWYYXVYYYYYYYWWYTWYYYZYWYYYVYYYVYXYYYYYYUYYOYWYYYSSYYYVVSYYVYYYXYYTUYYYVVZSYZ]YY]YYWYUUYWYYYYYUYYVXYYYYSYYYVYYYYYVYYYYUVYYYVYYXYYYYSYWYYYYYYYYYYYYTYYXVYYUYVYVWWTWYYYYYZYWYWWYVWYYYYUYYYYYYYYYWYYUYYYVYYVUYZYY_YYYYWY\YXYYYYUYTYUVYYVUYYXWYYYTVY^YXUSYUVYYWXYYWXYWYYVVYYYYYYYXRYVWYYYXYWYYYTYYYTYWYYYYYYTYYUYVYYYZVYYYWVUYYXYYYYYYWXYYYVVXVYXYYY[YYWYWXYYYYYYYYYYXWYYYYWYYYVYYYYYYYYYY[WYYYYYYYYYYYYYXYYYYYYYYYYYYXYYWXYYWYWYWWZZYYYYYYYYWYXWYXWYYYYXYYYYYYYYYXYYVYYYXYYXVYZYYXYYYYXYYYVYYYYWYXYUWYYWWYYXXYYYVWYZYWXZYWWYYVXYYZXYWYYVXYYYYYYYXZYZ[YYYYYXYYYWYYYXYYYYYYYYVYYXYZYYYXVYYYYYVYYYYYYXYYWGYYYYVVWYWUYYWYYXYVXYXYYYYYUYYXYYYYYYYYYWYYYYYYYYYYXWYYYWYYVYYYYWYVYYYYYYYYYYYYVYYXXYYWYWYXWXUWYYYYYXYWY\XYXYYYYYXYYYYYYYYYVYYVYYYUYYWXYXYY]YYYYUYWYXXYYYVYUYXXYYZYYYVXYYYVXYWYVWVYTVYYXWYYTVYWYYWXXYYYYYYYUYWUYYYXYXYYYVYYYXYUYYYYYYXYYUYMYYYWVYYYXXYYYTYYYZYY[NYYY]VWVYWUYYWYYXYV^Y^YYYYYRYYWZYYYYYXYY[YYYYY[YYYYV_XYYWYYYYYYYTY[YYYYYYYYYYYYXYYY`YY]YXYXVXSWYYYYYXYWY_XYY\YYYY\YYYYYYYYYVYYWYYYVYYZaYYYYZYYYYUYTY[ZYYYUYXYY_YY^XYYW^YYY[^YUY\WVYZVYY^UYYUVYVYYWVWYYYYYYXSYYTYYY\Y[YYYTYYYUYYYYYYYYZYYYYSYYY[ZYYYWW[YYUYYYYYYYXYYYYYXYYYYYYZYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYXYYXYXYYYYYYYYYYYYYXYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYZXYZYYZYYYYYYYYYYYYYZYYYXXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYYXYYYYYYYXYYYYYZYYYYYYYYYYYYYYYYYZYYYYZYYYZZYYYXYYYYYYWWYYYXYYVYXXYY[YYYYYWYXYYYYYXYYXXYYYYWYYYXYYYYYYYYYYYYYYYXYYXYYYYZYXYYYYYYYYYYYYWYYYXYYXYXYYXYYXYYYYYYYXYXXYYXYYYYXYYYYYYYYYXYYXYYYYYYXXYZYY\YYYYYYZYYXYYYXYXYWYYYXXYYXYYYYXXYYYXXXYXXYYXZYYXYYXYYXXYYYYYYYZXYXWYYYXYWYYYXYYYWYYYYYYYYYYYXYYYYYZXYYYXXWYYYYYYWYYYTYYY[XU[YVXYYXYYVYVUYXYYYYYXYYVYYYYYZYYYWYYYYYYYYYYYWXYY[YYXYYYYVYXYYYYYYYYYYYY[YYWYYY[YVYWYYYVYYYYYXYVY[VYU\YYYY[YYYYYYYYYUYYYYYY[YYYXYWYYZYYYYUYXYUXYYYVYYYWXYYXXYYVXYYYZYYWYSXXYWXYYVVYY[WYXYY[XXYYYYYYWVYWVYYYWYWYYYXYYYVYVYYYYYYVYYWYVYYYX[YYYXYWYYVYYYZYYXZYYYYXUXYVZYYZYYVYVWYXYYYYYZYYWVYYYYWYYYXYYYYYXYYYY\WYYYXYYXYYYY\YYYYYYYYYYYYYYYYYVXYYZYXYYW\ZWYYYYYYYZYZUYWYYYYYXYYYYYYYYYWYYYYYYYYYYWYZYYZYYYYYY\YXZYYYZYXYVXYYYYYYYYYYY[XYYYWXZYYWYYX[YYZYYXYYZYYYYYYYYX[YWYYYYXYVYYYZYYYWYYYYYYYYYYYWYYYYYZ\YYY[WVYYXYYYVYYQTYYYUX]\YZZYY\YYQYTUYSYYYYYVYYWXYYYYWYYYUYYYYYYYYYYURYYYXYYUYYYXZYXYYYYYYYYYYYYbYYS_YYYYYYV\UTSYYYYYYYTYVWYU[YYYYWYYYYYYYYYTYYUYYYTYYRLY\YYUYYYYXYXYR^YYYWYZYVUYYZUYYWQYYYXUYVYYTZYWVYYXXYYYTYYYYZUYYYYYYYUYYYUYYYUYWYYYUYYYUYSYYYYYYTYYPYYYYYVYYYYSXUYYVYYYTYYVJYYYXV^PYUYYYbYYUYSUYUYYYYYYYYOVYYYYTZYYSYYYYYOYYZY\RXYYSYYWYYYYQYSYYYYYYYYYYYYNYYVVYYPYQYSORSXYYYYYYYXYXUYZVYYYYSYYYYYYYYYOYYYYYYPYYSQYVYYfYYYYTYXYUVYYYQYVYSVYYRSYYSUYYYRSYYYVUOYUVYYS[YYSPY[YYWYYYYYYYYZOYRVYYYVYRYYYPYYYWYRYYYYYYTYYRYQYYY[WYYYTQTYY^YYYXYYZWYYYUWTTYS[YY`YYUYVTYWYYYYYYYYXSYYYYTYYYUYYYYYYYYYY^QYYY\YYZYYY[[YTYYYYYYYYYYYYYYYUTYY[YWYUQ[]TYYYYYZYXYXRYXVYYYYTYYYYYYYYYRYYUYYYSYYVUY_YY^YYYYXYWYWWYYYYYXYQXYYZUYYUSYYYRWYYYTVYYZTYYW]YY\TYYYYUVZYYYYYYW]YVXYYYVYNYYYXYYYVYVYYYYYYXYYTYXYYYXZYYY[XSYYVYYYZYYVVYYYYV\SYXVYY]YYVYVTYWYYYYYWYYWTYYYYXYYYTYYYYYWYYYYXUYYYZYYYYYYYWYWYYYYYYYYYYYYVYYVTYYWYUYVS\XUYYYYYYY[YWTY\TYYYYTYYYYYYYYYZYYSYYYVYYWUY[YYZYYYYVY[YXUYYYUYWYTVYYTZYYXTYYYTTYZYUWXYWUYYTZYYYVYZYYXVYYYYYYYXUYX[YYYVYSYYYTYYYXYWYYYYYYXYYTYWYYYXYYYYZVUYYXYYYVYYQFYYYVWZZYXWYY[YYSYSXYRYYYYYSYYWYYYYYYYYYUYYYYYWYYYYTPYYYUYYRYYYXYYXYYYYYYYYYYYY`YYV\YYXY[YWYTRTYYYYYWYTY[XYRZYYYYXYYYYYYYYYTYYUYYYSYYTPYZYYUYYYYTYVYU\YYYVYXYVUYYXWYYWPYYYVWYUYVTWYUSYYWVYYVQYXYYXTXYYYYYYWXYVSYYYVYTYYYSYYYUYRYYYYYYTYYMYPYYYRWYYYSXTYYQYYYVYYUVYYYWWVQYU[YY^YYUYTSYWYYYYYTYYTTYYYYRYYYSYYYYYWYYYYWWYYYYYYWYYYZ[YVYYYYYYYYYYYYUYY\RYYVYVYUSUZTYYYYYZYVYUVYURYYYYQYYYYYYYYYTYYVYYYXYYWRYVYY`YYYYYY^YTVYYYWYVYSWYYRUYYVSYYYMSY]YXYXYVWYYQ\YYVYYRYYTX[YYYYYYYTYTSYYYVYQYYYTYYYPYYYYYYYYVYYRYTYYY[SYYYVRQYYXYYYXYYUFYYYWWTSYUVYY\YYWYVSYWYYYYYSYYVXYYYYVYYYVYYYYYWYYYYUVXYYUYYUYYYYVYVYYYYYYYYYYYYRYYYTYYVYVYWTUSVYYYYYXYVY\XYTWYYYYWYYYYYYYYYTYYVYYYVYYWVYVYYhYYYYTYWYXUYYYTYRYUWYYXVYYVXYYYUWYVYWWTYTUYYXWYYUTYSYYWVXYYYYYY[NYUUYYYWYXYYYTYYYTYVYYYYYYWYYSYLYYYXVYYYWVWYYSYYYUYYYSYYYWYXXYQ[YY[YYTYTVYVYYYYY\YYUSYYYYUYYYXYYYYYUYYYY`RYYYZYY]YYYZ[YSYYYYYYYYYYYYZYYZPYYVYWYRRX_SYYYYYYYTYXTY[RYYYYRYYYYYYYYYWYYSYYYYYYVRYZYYZYYYYUY^YSWYYYYYXYQVYYUYYYRSYYYUVY\YSVUYYUYYU]YY\VYYYYVWYYYYYYYZ^YS`YYYVYQYYYZYYYYYSYYYYYYSYYUY[YYYXXYYYZXSYYUYYY[YYWSYYYVQTPYV[YYdYYMYRRYVYYYYYWYYVRYYYYZYYYPYYYYYZYYYYZMYYYWYY\YYYZXYVYYYYYYYYYYYYQYYOUYYTYPYQL^bPYYYYYYYXYXKY[RYYYYPYYYYYYYYYSYYNYYYSYYSQY_YYcYYYYUYWYW[YYYWYSYTUYYT^YYRPYYYPNY[YQSUYWQYYQ[YYZXYVYYQWYYYYYYYR`YVWYYYQYKYYYWYYYWYTYYYYYYYYYPYSYYYY_YYY\[OYYTYYYXYYVGYYYZWUWYVWYYYYYXYVXYYYYYYYUYYYYYYYYXYYYWYYYYYXYYYYWXXYYWYYWYYYYUYWYYYYYYYYYYYYWYYXWYYXYXYYVVSWYYYYYXYVY\YYYYYYYYXYYYYYYYYYVYYWYYYVYYYYYWYY_YYYYUYVYXXYYYVYTYXWYYZYYYWXYYYWXYWYVWVYUVYYXVYYUUYWYYUWXYYYYYYYTYWVYYYYYWYYYWYYYXYVYYYYYYXYYVYNYYYWVYYYWXYYYTYYYRYYUUYYYURTRYQVYYbYYWYRSYSYYYYYSYYQVYYYYTYYYSYYYYYTYYYYTLZYY[YYXYYYZYYSYYYYYYYYYYYYYYY^QYYQYVYQQV_LYYYYYZYXYVSYSUYYYYSYYYYYYYYYLYYSYYYVYYWUYUYYYYYYYVYVYSLYYYVY`YISYYTWYYWNYYYTYYZYY[TYYTYYQZYYXXYSYYZW[YYYYYZRYYWVYYYVYPYYY\YYYVYTYYYYYYTYYTYTYYYPZYYYXXSYYYYYYYYYVUYYYWYZSYWZYY[YYVY[VYWYYYYYZYYVVYYYY[ZYYWYYYYYXYYYYWWYYYVYYWYYYYWYVYYYYYYYYYYYYVYYVXYYWYUYYW[Y[YYYYYYYXYYVY]XYYYYWYYYYYYYYYWYYWYYYVYY[TYWYY[YYYY[Y^YYXYYYZYXYWZYYW[YYXWYYYYVYXYVWXYXZYYV\YYZZY\YYYYZYYYYYYY\YVYYYYXYXYYYYYYYZYWYYYYYYZYYYY[YYYX[YYY[XXYYYYYYXYYUYYYYVY[UYYXYYYYYWYZWYVYYYYYZYYZXYYYYZYYYTYYYYY[YYYYZWXYY[YYYYYYZZYYYYYYYYYYYYYY^YYWWYYWY\YYYUZZYYYYYYYZYYWYWWYYYYWYYYYYYYYYYYYXYYYYYYYVYYYYXYYYYVYXYX[YYYZY[YWVYYVXYYZVYYYUWYXYXVXYWXYYTWYYVZYZYYVWZYYYYYYX[YYYYYYZYYYYYVYYYXYXYYYYYYXYYWY[YYYY[YYYW[WYYXYYYXYY[YYYYYYYUYZ\YY\YYXYYXYZYYYYYXYYZXYYYYWYYYZYYYYYWYYYYYXYYY]YYXYYYYXYYYYYYYYYYYYYYZYYWYYYZYZYWWZXXYYYYYYYYY[WYZVYYYYWYYYYYYYYYXYYXYYYWYYYXY[YY\YYYYWYXYWVYYYWYWYWZYYZYYYYVYYYWWY[YYYWY[XYYZYYYZSYWYYVVYYYYYYYXZYWXYYYYYVYYYVYYYWYWYYYYYYWYYXYZYYYZ[YYYXXYYYXYYYXYYVWYYYWUYTYWYYY\YYWYXUYYYYYYYUYYWWYYYYZYYYWYYYYYXYYYYYSYYYZYYYYYYYYYYYYYYYYYYYYYY[YYXVYYXYUYYWXYWYYYYYYYZYXWYXVYYYYUYYYYYYYYYWYYVYYYUYYWUY\YY^YYYYZYWYXZYYYXYZYWXYYVYYYXTYYYUYYYYYZVYWVYYWZYYYYYXYYVXYYYYYYYWYYXVYYYZYWYYYTYYYYYXYYYYYYVYYTYVYYYXVYYYWYWYY[YYYZYYWXYYYXXYXYYYYYZYYYYXXYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYXYYYXYYYYXYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYXYYXYYYYYYYXYZYY[YYYYYYYYYYYYYYYWYXYYYYXYYYYYYYXXYZYXYXYXYYYXYYYYYYYYYXYYYYYYYYYZYYWYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYZXYYYYYYYYYYYYXYYVWYYYXUWUYWYYY[YYVYWUYVYYYYYXYYVWYYYYWYYYVYYYYYXYYYYVVYYY\YYWYYYYXYWYYYYYYYYYYYY[YYYWYYXYUYXVWXVYYYYYYYXYVWYUUYYYYWYYYYYYYYYWYYVYYYVYYVVYZYYZYYYYYY[YXYYYYVYZYVXYYUUYYWVYYYXVYZYXWYYWVYYWYYYXYYUYYVVZYYYYYYXWYWVYYYWYXYYYWYYYVYXYYYYYYWYYTYWYYYWXYYYWVVYYXYYYWYYVYYYYYWVYYYZYY[YYXYUWYZYYYYYXYYYXYYYYWYYYWYYYYYYYYYYXWYYYXYYYYYYYXYZYYYYYYYYYYYYYYYVUYYYYVYWWXY[YYYYYYYXYXXYXXYYYYWYYYYYYYYYVYYZYYYZYY]XY[YYWYYYYYY[YSXYYYXYWYWTYYXXYYYYYYYYWYYYVZXYXYYYYWYYXXYXYYXXYYYYYYYXZYZWYYYZYWYYYYYYYZY[YYYYYYXYYXYYYYYUWYYYYTXYYXYYYXYY[VYYYYSWVYSZYY\YYTYTVYWYYYYYWYYWUYYYYWYYYXYYYYYWYYYYYUYYYZYYZYYYY]YXYYYYYYYYYYYYYYYVUYYVYUYYTUZVYYYYYYYYYXUYVWYYYYUYYYYYYYYYVYYXYYYTYYXWY[YY[YYYYXYWYYYYYYWYYYWWYYUVYYVVYYYWWYYYWXWYWUYYV[YYWVYYYYXUZYYYYYYWXYVYYYYZYVYYYUYYYYYXYYYYYYVYYVYUYYYVUYYYWVXYYXYYYXYYWUYYYYWXXYXXYY[YYXYXWYXYYYYYYYYXXYYYYXYYYVYYYYYXYYYYXYYYYXYYWYYYYYYYYYYYYYYYYYYYVYYXXYYWYWYYYWZYYYYYYZYXYXYYXWYYYYXYYYYYYYYYXYYXYYYXYYXXYXYY^YYYYXYXYXYYYYWYYYYYYYWVYYYYYYYWXYYYYXWYWXYYXXYYWXYWYYXWYYYYYYYXUYXXYYYYYXYYYUYYYXYXYYYYYYXYYXYYYYYYVYYYWVXYYWYYYYYY[YYYYYXXXYXXYYZYYXYVXYZYYYYYYYYWWYYYYVYYYXYYYYYYYYYYYYYYY[YYXYYYYYYXYYYYYYYYYYYYZYYXXYY[YWYYXZZXYYYYYYYZYYWYVXYYYYXYYYYYYYYYWYYXYYYXYYYXYYYYYYYYYYYXYYYYYYYYYYWZYYYXYYYYYYYXXYXYWY[YXWYYYZYYYVYXYYYYYYYYYYYWYYYWYYYYYWYYYXYYYWYZYYYYYYYYYXYYYYYY[YYYZWXYYYYYYYYYWYYYYYWXVYXVYYZYYWYWXY[YYYYYYYYXXYYYYYYYYXYYYYYYYYYYYXYYYYYYXYYYYZYXYYYYYYYYYYYYZYYXZYYZYXYYWXZXYYYYYYYYYWWYW\YYYYZYYYYYYYYYWYYWYYYYYYWZYXYYZYYYYXYXYWXYYYYYZYT[YYYWYYXZYYYY\YXYZXYYVVYYXYYYYVYWYYWXYYYYYYYWZYZYYYYYYXYYYYYYYZYYYYYYYYXYYYYXYYYVZYYYXXXYYYYYYXYYZWYYYXYWXYVZYYZYYYYWWYXYYYYYYYYYWYYYYXYYYYYYYYYYYYYYZXYYY[YYYYYYYYYXYYYYYYYYYYYY\YY[WYYXYXYWXZYWYYYYYYYXYZXYXWYYYYXYYYYYYYYYYYYWYYYYYYYWY[YYWYYYYWYYYWXYYYXYZYXVYYXYYYWVYYYXVYYYYWYYYWYYWZYY[YYYYYXWYYYYYYYY\YZ\YYYXYXYYYWYYYYYXYYYYYYWYYXYYYYYZYYYYX[XYYVYYYYYYXXYYYZXYZYXYYYYYYXYWXYXYYYYYYYYXXYYYYXYYYXYYYYYZYYYYYZYYY[YYYYYYY\YYYYYYYYYYYYYYZYYXYYYYYYYYYXXXYYYYYYYXYYXYYYYYYYXYYYYYYYYYXYYXYYYWYYYXYZYYZYYYYYYYYYYYYYZYZYXYYYXXYYYXYYYZWYZYXW[YYYYYXZYYZXYXYYXXYYYYYYYX\YYZYYYYYYYYYXYYYXYXYYYYYYYYYYYXYYYYZYYYYWXYYXYYYVYYTDYYYYW[^YUVYYYYYRYOVYTYYYYYQYYTYYYYY[YYYUYYYYYUYYYYRPXYYWYYQYYYXUYXYYYYYYYYYYYYcYYW\YY[YZYVYSSSYYYYYWYTYZVYR]YYYYYYYYYYYYYYSYYVYYYRYYSPYZYYTYYYYTYTYT]YYYWY\YVWYYZWYYTPYYYXXYVYUUVYVRYYYSYY\NYWYY[TWYYYYYYXWYTRYYYUYUYYYSYYYVYPYYYYYYSYYOYOYYYNZYYYSWTYYNYYYWYYROYYYT^\IYNZYY\YYTYKIYSYYYYYTYYMOYYYYMYYYTYYYYY[YYYYaZYYYWYY^YYYZeYUYYYYYYYYYYYYWYY_IYYWY_Y[MYbRYYYYYZYRYKQY]LYYYYMYYYYYYYYYPYYOYYYZYYTQYZYYbYYYY_YmYPOYYY[YVYJTYYYYYYS\YYYMPYgYY[WY_VYYX`YY^^Y\YYY\ZYYYYYYYVYNXYYYQYOYYY[YYYRYVYYYYYYXYYTYSYYY^SYYY^SLYYRYYYVYYTNYYYYZVTYWUYY\YYXYVVY[YYYYYWYYXYYYYYWYYYUYYYYYWYYYYXYYYYUYYUYYYYYYXYYYYYYYYYYYYTYYYVYYUYYYXUWXWYYYYYXYVY\YYVYYYYYXYYYYYYYYYWYYWYYY[YYYYYXYY_YYYYTYVYXWYYYWYSYWWYYWWYYVYYYYYXYTYUYWYRUYYXXYYSVYUYYXWXYYYYYYZXYWUYYYWYVYYYTYYYVYUYYYYYYXYYXYNYYYWSYYYYUXYYTYYYXYYYUYYYUVWXYV[YY[YYVYVUYTYYYYYWYYXVYYYYYYYYWYYYYYXYYYYYTYYY]YYWYYYZ\YWYYYYYYYYYYYY\YYVZYYYYWYXWZZVYYYYYYYWY[UYYWYYYYUYYYYYYYYYXYYVYYYUYYXTY_YYYYYYYYYWYW[YYYYYZYUWYYZYYYWRYYYYVY[YWVZY\VYYU[YY[XYXYYVVYYYYYYYW]YW\YYYWYUYYYXYYYXYUYYYYYYWYYUYVYYYX]YYYXYWYYUYYYXYYVUYYYVVUTYWXYY^YYVYXRYVYYYYYYYYTVYYYYUYYYXYYYYYXYYYYXUZYYWYYWYYYYTYVYYYYYYYYYYYYYYYVUYYXYUYTWWVSYYYYYYYVYYWYYUYYYYVYYYYYYYYYWYYVYYYUYYVVYYYYXYYYYVYZYUVYYYTYTYUXYYTVYYWUYYYVTY[YVXUYUVYYVXYYTWYUYY[SZYYYYYYWYYWXYYYXYRYYYWYYYUYUYYYYYYWYYUYVYYYVVYYYUXUYYXYYYXYYWIYYY[WWUYVXYYVYYXYWXYXYYYYYUYYXXYYYYXYYYWYYYYYYYYYYWYYYYYYYWYYYYXYWYYYYYYYYYYYYXYYXWYYXYYYXVXWWYYYYYXYVY]XY[XYYYYWYYYYYYYYYVYYWYYYUYYXYYXYY^YYYYUYWYXXYYYWYTYXYYYYXYYVWYYYWXYWYWVVYVXYYXXYYUUYWYYUWWYYYYYYYUYVWYYYXYWYYYVYYYWYVYYYYYYXYYWYOYYYYXYYYWYXYYTYYYXYYVQYYYXVYXYXXYYXYYXYXXYYYYYYYYYYWWYYYYVYYYVYYYYYYYYXYVZYYYZYYVYYYXZYXYYYYYYYYYYYYXYYXWYYWYVYWX[WYYYYYYXYXYVWYYWYYYYXYYYYYYYYYWYYUYYYTYYWWYXYYWYYYYVYVYWWYYYUY^YVXYYUVYYYWYYYVWYUYWUYYXVYYVZYYZWYWYYUXWYYYYYYYZYYXYYYXYXYYYUYYYXYVYYYYYYWYYVYUYYYWYYYYWWVYYXYYYXYYWVYYYZWXYYW[YYXYYYYZXYXYYYYYWYYZWYYYYYYYYXYYYYYXYYYYYWXYY[YYXYYYXZYWYYYYYYYYYYYY[YYVZYYXYZYYXXXXYYYYYXYYY[WYXWYYYYXYYYYYYYYYXYYXYYYUYYXWYZYYVYYYYXYYYWXYYYWYYYXXYYXZYYXWYYYVWYYYZWYYYWYYWYYYZYYWYYWWXYYYYYYXYYXXYYYYYYYYYUYYYXYXYYYYYYYYYWYYYYY[XYYYWXXYYXYYYYYYWTYYYWWZUYOXYY`YYWYRUYUYYYYYWYYVWYYYYRYYYWYYYYYXYYYY\XYYYSYY\YYYZZYXYYYYYYYYYYYYXYYWVYYVYSYWRZ^TYYYYYYYRYUWY[SYYYYVYYYYYYYYYUYYUYYY]YYUXYZYY[YYYY]Y\YX\YYYYYVYRVYYVXYYSXYYYQVY^YY]YYYWYYV_YYVUYWYYPZZYYYYYYWWYSTYYYTYTYYYXYYYVYWYYYYYYWYYXYYYYYXUYYY[YRYY[YYYYYYZXYYYYXYXYYXYYZYYZYYYYXYYYYYYYYXYYYYYYYYYXYYYYYYYYYYXXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYXYYYZYXYYYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYZYYYYYYYYZYXZYYYXYYXXYYYY[YYYZXYYZZYYYYYYYYYZYYZXYYYYYYYXYYXXYYYYYXYYYZYYYYYXYYYYYYXYYYYXYYYYYYYYYZZYYZYYYXYYXXYYYXXYXYZXYYYYYYYYXYYYYYYYXYYZYYYYYYYYYXYYYYYYYYYYXZYYYZYYYYYYYYYYYYYYYYYYYYYYYYYXYYYZYXYZZYXYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYXYYYYYZYYYYYYYYYXYZYYYYXYYYYYYYYXYYXYYYYXYYXYYXXYYYYYZYYYYYYYYYYXYYYYYYYYXYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYYYYYYWYYVMYYYZ]WUYTXYYXYYVYUSYXYYYYYWYYVWYYYYUYYYUYYYYYYYYYYYXYYYWYYVYYYYYYXYYYYYYYYYYYYYYYXUYYXYYYXUWVWYYYYYXYVY]YYVWYYYYVYYYYYYYYYUYYYYYYYYYXXYWYYXYYYYUYZYXYYYYYYVYVXYYYUYYUXYYYTYYXYYXYYTWYYYXYYUSYXYYVWXYYYYYYZVYVVYYYWYWYYYVYYYSYUYYYYYYWYYXYOYYYWUYYYYXWYYVYYYYYY\WYYYXYVWYYXYYZYYXYXWYZYYYYYWYYWXYYYYWYYYWYYYYYZYYYYWXYYY\YYZYYYXYYWYYYYYYYYYYYYYYYXXYYYYZYXXWZVYYYYYXYYYWVYWYYYYYVYYYYYYYYYVYYXYYYXYYXXYZYY\YYYYYYXYYXYYYZYXYUZYYXWYYYXYYYUVYYYWY[YZXYYX\YYXXYWYYXZXYYYYYYXXYYWYYYZYXYYYWYYYWYYYYYYYYYYYXYWYYYZYYYYZXWYYYYYYXYYXVYYYXWYWYYYYY[YYWYXUYVYYYYYVYYYXYYYYYYYYWYYYYYYYYYYVWYYY[YYWYYYYZYXYYYYYYYYYYYYZYYWYYYXYWYXYVWXYYYYYYYXYYWYWVYYYYXYYYYYYYYYVYYVYYYVYYVVY\YYZYYYYWYVYXZYYYXYYYWXYYWVYYXVYYYUVYYYYWXYXWYYWYYYXWYWYYWWYYYYYYYWWYXYYYYYYXYYYUYYYWYXYYYYYYXYYVYWYYYWXYYYWXXYYVYYYZYYUWYYYWRYSYU]YY\YYVYVUYYYYYYYYYYWTYYYYWYYYSYYYYYYYYYYZUYYYYYYZYYYZXYWYYYYYYYYYYYYWYYWUYYWYSYUT[]UYYYYYYYXYXRYZVYYYYSYYYYYYYYYUYYRYYYTYYVRY^YY\YYYYZY[YWYYYYYYWYSYYYWZYYVWYYYVTY]YVVXYYTYYV[YY\TYXYYSVXYYYYYYV[YW\YYYWYRYYYVYYYYYWYYYYYYYYYVYWYYYY`YYYZYTYYXYYY[YYTVYYYWXUWYYXYYYYYYYWUYXYYYYY^YYWWYYYYUYYYVYYYYYZYYYYZSYYY[YYXYYYY\YWYYYYYYYYYYYYXYYSUYYXYUYWWZXXYYYYYXYVYWXYWUYYYYWYYYYYYYYYXYYYYYYYYYZVYXYYXYYYYXYZYVYYYYWYWYVWYYVVYYZVYYYWTYVYUV[YUXYYUZYYYWYWYYYXXYYYYYYYWYYYYYYZYTYYYWYYYWYYYYYYYY\YYWY\YYYURYYYWWVYYXYYYZYYYYYYYYYYYYXYYYYYYZYYXYYYYYYYXYYZZYYYYYYYYZYYYYYYYYYYXXYYYXYYYYYYYYYYYYYYYYYYYYYYZYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYZYYYYYYXYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYXYYYYYZYYYYXYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYXYYYXZYYYYYYYXYYUWYYYXWZTYUXYY\YYTYYWYYYYYYYWYYUTYYYYZYYYWYYYYYYYYYYUVYYYWYYZYYYYWYXYYYYYYYYYYYYXYYVYYYZYUYYUZYWYYYYYYYWYWVY[YYYYYXYYYYYYYYYVYYWYYYZYYYVYXYY[YYYY]Y^YXXYYYYYYYVZYY[ZYYW[YYYZXYWYZVZYYXYYX[YYYWY[YYXXYYYYYYYW[YTZYYYXYXYYYXYYYXYWYYYYYYZYY\Y[YYYWZYYY[XXYYVYYY[YYVJYYYVYUWYUUYYVYYXYVSYVYYYYYYYYWXYYYYZYYYUYYYYYYYYYY[UXYYWYYXYYYYZYWYYYYYYYYYYYYSYYWTYYUYWYXWXVYYYYYYWYSYZXYXYYYYYWYYYYYYYYYUYYYYYYXYYYXYUYYYYYYYWYUYXVYYYVYXYVYYYXWYYWZYYYWXYVYUUXYXWYYVWYYUSYUYYVXXYYYYYYWTYYUYYYYYVYYYYYYYWYUYYYYYYZYYVYTYYYUWYYY\XXYYUYYYWYYUIYYYYVXVYVUYY\YYUYTUYWYYYYYVYYVXYYYYVXYYQYYYYYWYYYYUUYYYQYYPYYYZWYWYYYYYYYYYYYYUYYVVYYXYWYVTVUUYYYYYXYUY[VYPXYYYYUYYYYYYYYYTYYXYYYUYYUTYXYYcYYYYUYSYWZYYYTYQYUXYYXSYYWXYYYSWYTYYUUYRSYYXWYYUTYQYYTUXYYYYYYYPYVQYYYXYWYYYTYYYTYVYYYYYYWYYSYNYYYUWYYYWTXYYVYYYYYYXYYYYYXXXYYYYYZYYYYXYYXYYYYYYYYYYYYYYXYYYXYYYYYXYYYYYXYYYYYYXYYYYZYYYYYYYYYYYYYYXYYYYYYYYXYYXXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYXXYYYXYXYYYYYYYYYYXYYYXYYYYYYYYXYYYXXYYWYYXYYXXYYYYYYYYYYXXYYYYYXYYYXYYYXYXYYYYYYXYYXYWYYYXXYYYYXYYYYYYYXYYXXYYYWXXVYWYYY[YYWYWTYXYYYYYYYYYVYYYYWYYYWYYYYYXYYYYZVYYYZYYYYYYYYYVYYYYYYYYYYYY\YYWVYYWYWYWWXYWYYYYYYYXYXVYVUYYYYVYYYYYYYYYVYYYYYYUYYWVYZYYXYYYYXYWYVZYYYXYYYVVYYXXYYWUYYYVWYZYVVXYYXYYWYYYZUYWYYWWYYYYYYYY[YXWYYYYYYYYYWYYYWYVYYYYYYXYYUYXYYYVYYYYXXVYYWYYYYYYYWYYYXXZVYYZYY[YYWYYVYZYYYYYWYYYWYYYYXYYYYYYYYYXYYYYWXYYY[YYXYYYYUYXYYYYYYYYYYYY[YYWXYYZYXYXVYWWYYYYYYYXYZWY[VYYYYWYYYYYYYYYYYYWYYYVYYXXYZYYZYYYYWYZYWVYYYVYVYYYYYX[YYXVYYYWVYZYXXXYXWYYXXYYXUYXYYVUYYYYYYYYYYXYYYYWYUYYYVYYYWYWYYYYYYXYYYYYYYYYZYYYWYYYYVYYYXYYWWYYYXWWXYWZYY[YYVYTTYVYYYYYWYYXVYYYYWYYYWYYYYYWYYYYXVYYY]YYWYYYY[YWYYYYYYYYYYYYZYYTTYYXYWYWWYXWYYYYYYYXYWTYVVYYYYXYYYYYYYYYVYYWYYYUYYWVY\YYZYYYYXYVYVZYYYXYXYUXYY[VYYXUYYYVVYYYWUYYYUYYXZYYZWYWYYXVYYYYYYYXXYVXYYYXYVYYYVYYYVYWYYYYYYXYYUYVYYYX[YYYXVVYYUYYYXYYUNYYYX[TWYX^YYXYYUYVVYVYYYYYWYYUWYYYYUYYYUYYYYYWYYYYWWYYYVYYYYYYYVYZYYYYYYYYYYYYZYYVUYY[YXY^VVTWYYYYYXYYYYWY^SYYYYVYYYYYYYYYUYYXYYYXYYZZYTYY\YYYYZYUYXYYYYWYUYZXYYYWYYXWYYYWUYYYRZWYYXYYV\YYVTYYYYSVXYYYYYYXXYZZYYYYYVYYYYYYYWYWYYYYYY\YYUYTYYYXVYYYWWXYYVYYYXYYTVYYYVYZYYYXYY[YYUYWWYUYYYYYWYYXXYYYYXYYYVYYYYYZYYYYWTYYYWYYVYYYYZYYYYYYYYYYYYYY\YYV\YYYYYYYZWVUYYYYYYYVYXXYWYYYYYWYYYYYYYYYWYYWYYYVYYVRY[YYVYYYYXYYYV\YYYXY[YVWYYXWYYXTYYYWVYVYXVYYWWYYXZYYWWYYYYYWYYYYYYYYYYYXYYYWYXYYYWYYYWYWYYYYYYWYYTYYYYYXYYYYVXVYYXYYYWYYWVYYYUUVVY[XYY[YY]YUTYUYYYYYXYYUWYYYYVYYYSYYYYYWYYYYXVYYY\YYXYYYZXYWYYYYYYYYYYYY[YYZXYYUYWYYWUZVYYYYYYYVYXZYWYYYYYWYYYYYYYYYYYYWYYYXYYZVYYYYYYYYYXYXYWZYYYXY\YW^YY\UYYVSYYYX_Y\YYXVY^XYYUZYY_VYWYYXVZYYYYYYX]YUSYYYXYUYYYVYYYVYWYYYYYYVYYXYTYYYY`YYY\XZYY\YYYYYYXWYYYWWVWYX]YY^YYVYZUYWYYYYYWYYZXYYYYYYYYWYYYYYYYYYYWUYYYXYYYYYYYYYZYYYYYYYYYYYYWYYVYYYYYVYXV\XVYYYYYYYWYYVYZYYYYYXYYYYYYYYYXYYWYYYZYY[XY^YY_YYYYXYWYYWYYYXYUYWYYYZYYYUVYYYVWYZYYYXYYVYYW[YYYZYXYYVXYYYYYYYWXYYUYYYVYUYYYXYYYYYTYYYYYYYYYZY[YYYZ\YYYZ\XYYVYYYXYYWIYYYZVUVYVTYYYYYXYXVYYYYYYYVYYXYYYYYXYYYVYYYYYYYYYYWXXYYWYYVYYYYWYWYYYYYYYYYYYYUYYXXYYXYVYXWWUVYYYYYXYVY\YYWYYYYYYYYYYYYYYYWYYWYYYVYYYXYYYYcYYYYUYUYYXYYYVYVYXXYYZWYYVXYYYVYYVYXWVYTWYYXVYYTVYWYYVUXYYYYYYXQYWVYYYYYXYYYUYYYXYVYYYYYYXYYUYMYYYXVYYYWXYYYTYYYWYYYWYYYXXYWYWWYY\YYVYSVYWYYYYYWYYWVYYYYXYYYVYYYYYXYYYYWWYYYYYYZYYYZZYWYYYYYYYYYYYYZYYVUYYXYYYXVXZWYYYYYYYYYVUYWVYYYYVYYYYYYYYYVYYVYYYWYYWVY\YYYYYYYXYWYXXYYYZYZYUXYYZVYYXXYYYVWYXYVWZYXUYYYZYYXTYYYYVXYYYYYYYVXYVXYYYYYYYYYWYYYXYXYYYYYYXYYVYVYYYVYYYYZVVYYVYYYXYYUUYYYXWZYYWWYYXYYVYVVYVYYYYYXYYXXYYYYZYYYVYYYYYYYYYYWWYYYXYYXYYYYWYXYYYYYYYYYYYY\YYWYYYXYXYWXWZXYYYYYYYXYWWYWXYYYYWYYYYYYYYYVYYWYYYVYYWUYZYYZYYYYVYVYV[YYYWYZYVXYYWWYYWXYYYVXYYYXVYYVWYYUWYYZVYWYYWWYYYYYYYVYYYXYYYYYXYYYVYYYYYWYYYYYYWYYWYXYYYVZYYYVXVYYVYYYYYYYWYYYVXUXYV]YY[YYWY[XYWYYYYYXYYXUYYYYYYYYVYYYYYVYYYYWUYYYWYY[YYYYUYVYYYYYYYYYYYYVYY[XYYVYYYVTUUXYYYYYYYWYZUY[XYYYYTYYYYYYYYYWYYXYYYTYYYUYYYY[YYYYUYYYXVYYYVYUYWVYYW[YYXSYYYTXY]YWYUYWVYYUWYYYXYXYYXXZYYYYYYY[YZWYYYXYUYYYUYYYYYUYYYYYYXYYTYVYYYYXYYYWYYYYYYYYYYY[YYYYVW[VYXXYY]YYXYWUYZYYYYYXYYTWYYYYUYYYYYYYYYYYYYYZZYYYZYYWYYYYXYXYYYYYYYYYYYYZYYVUYY[YVYXY[WVYYYYYYYXYXWYUVYYYYUYYYYYYYYYUYYWYYYWYYWVYYYYYYYYYXY[YYXYYYXYWYWXYYUZYYYWYYYVTYYYTZZYVVYYZWYYUVYXYY[UZYYYYYYZ[YYUYYYXYVYYYXYYYVYWYYYYYYYYYVYZYYYXWYYYWXUYYXYYYYYYXLYYYYWWUYYXYYVYYXYYWYWYYYYYTYYYXYYYYXYYYXYYYYYXYYYYVUYYYXYYVYYYYYYWYYYYYYYYYYYYZYYXUYYXYWYWVXVXYYYYYWYVY]XYZXYYYYWYYYYYYYYYVYYWYYYTYYWYY\YY\YYYYVYVYXXYYYUYRYXXYYYWYYXWYYYXWYXYWYUYXXYYXZYYXUYUYYUXXYYYYYYWSYVTYYYXYWYYYWYYYVYUYYYYYYXYYTYSYYYXXYYYZZXYYWYYYTYYTQYYYWUWSYScYYZYYQYUQYTYYYYYUYYPSYYYYSYYYVYYYYYUYYYY\QYYYXYY\YYYYWYXYYYYYYYYYYYYZYYTPYYRYRYRPWTQYYYYYYYWYZSY\SYYYYNYYYYYYYYYUYYQYYYUYYUNY^YY]YYYYYYXYSYYYY\Y]YQUYYU[YYSQYYYVUY]YUYQYTRYYT\YYbWYUYYSTYYYYYYYUZYW_YYYXYVYYYRYYYVYSYYYYYYUYYVYNYYYVXYYYYYUYYXYYYYYYUGYYYZXUVYTUYYYYYXYWVYXYYYYYVYYXYYYYYYYYYVYYYYYWYYYYXXYYYWYYUYYYZXYWYYYYYYYYYYYYTYYYVYYWYVYXVYWWYYYYYXYTY[YYVXYYYYXYYYYYYYYYWYYWYYYVYYXYYWYY]YYYYUYVYXXYYYVYYYXXYYYXYYVYYYYVYYUYVWWYUWYYWXYYVTYVYYVWXYYYYYYYRYWUYYYXYWYYYVYYYWYUYYYYYYXYYUYOYYYWTYYYXUYYYSYYYXYYWWYYYXWXVYXYYY[YYXYXXYXYYYYYXYYYXYYYYWYYYWYYYYYXYYYYVWYYYXYYXYYYZWYXYYYYYYYYYYYYXYYXXYYXYWYYXWYYYYYYYYYWYYXYXWYYYYYYYYYYYYYYXYYXYYYVYYXXYZYYZYYYYXYWYXYYYYVYXYXXYYXWYYXWYYYVXYZYYWWYWXYYWXYYWXYWYYVWYYYYYYYXWYXVYYYXYXYYYWYYYVYWYYYYYYWYYXYWYYYXXYYYXWYYYYYYYYYYYYYYYXXZXYYYYYZYYXYYXYYYYYYYYYYXXYYYYXYYYZYYYYYYYYYYXYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYXWYYYYWYYYZXXYYYYYYYYYYYYXYYYYYXYYYYYYYYYXYYYYYYYYYYYYXYYZYYYYXYZYYYYYYYYWYYXYYWYYYYXYYYXXYYYXYYYWXYYXXYYWYYXYYZWYYYYYYYYZYYXYYYXYWYYYXYYYYYYYYYYYYYYYWYZYYYXXYYYXYXYYYYYYYYYWHYYYYVUVYWWYYXYYXYWXYYYYYYYTYYYYYYYYXXYYWYYYYYYYYYYVXXYYWYYWYYYXVYXYYYYYYYYYYYYTYYXWYYXYVYZWWUWYYYYYWYWY[XYXYYYYYXYYYYYYYYYWYYWYYYVYYYYYXYY_YYYYVYVYZXYYYWYVYZXYYYXYYWYYYYWXYVYWWWYUWYYXXYYVVYVYYVWXYYYYYYYTYXWYYYXYXYYYVYYYXYVYYYYYYXYYVYMYYYXWYYYWWYYYUYYYZYYXYYYYXYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYXYYXXYYYYXYXXYYYYYYYYYYWYYYYYYYYYYYYYYYYYYYYXYYYYYY[YYZXYYYYXYYYYYYYYXXYYYXYYYXXYYXYYYWZYYYYXYYYYZYYXYYYYYYYYXYYYYYYYYYYYYYXZYYYYYYXYXYYYYYYYYYYYYYYYYXYYYYZYYYXWYYYZYYYYYYYYXYYVVYYYXXYTYWZYY]YYVYWUYYYYYYYXYYVVYYYYUYYYXYYYYYXYYYYXVYYYYYYVYYYY[YXYYYYYYYYYYYYWYYXUYYXYUYWTVXVYYYYYZYXYWVYWWYYYYVYYYYYYYYYWYYWYYYXYYYUYYYYaYYYYXY^YWXYYYWYWYTXYYWXYYXXYYYUVYYYYWVYVVYYWZYYYZYTYYXWZYYYYYYXXYVYYYYXYVYYYVYYYXYXYYYYYYXYYWYWYYYYVYYYWWUYYXYYYYYYXYYYYYZXXYYZYYYYYXYZXYYYYYYYZYYYXYYYYYYYYXYYYYYYYYYYYYYYYWYYXYYYYYYYYYYYYYYYYYYYXYYYXYYXYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYZYYYXYYYXYYYYZYYYYYYYYYYYYYYYXYYXYYXYYYYYYYYYXYZYYXXYXYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYYYXZYYYYYYYYYYUYYYYVV]TYVZYY]YYVYXUYXYYYYYXYYVWYYYYUYYYZYYYYYWYYYYYWYYYXYYYYYYYXYXYYYYYYYYYYYYWYYXUYYYYUYWVYYUYYYYYYYWYWWYWWYYYYVYYYYYYYYYVYYVYYYXYYWWYYYY[YYYYWY^YWXYYYXYVYUWYYUZYYWXYYYWVY^YXWYYWVYYWXYYXWYXYYYVZYYYYYYYYYXYYYYXYUYYYWYYYXYXYYYYYYVYYWYZYYYYXYYYWYUYYXYYYXYYWXYYYXTYZYVWYYYYYWYVWYZYYYYYYYYWWYYYYWYYYZYYYYYZYYYYYWYYY]YYXYYYYWYWYYYYYYYYYYYY\YYWYYY[YUYVXXXWYYYYYYYYYYWYT[YYYYXYYYYYYYYYWYYVYYYVYYWWYZYY[YYYYWYWYWXYYYWYYYWWYYXXYYYWYYYXYYZYXW[YXVYYWYYYZWYXYYYVZYYYYYYXZYX[YYYXYXYYYWYYYWYXYYYYYYVYYUYWYYYX\YYYVXWYYXYYYVYYSVYYYVW[TYUXYY^YYVYTUYUYYYYYZYYXXYYYYVYYYTYYYYYVYYYYXRYYYXYYYYYYYWYUYYYYYYYYYYYYWYY\VYYUYXYVTSXUYYYYYYYXYWWYWVYYYYUYYYYYYYYYTYYWYYYSYYSVY[YY\YYYYUYWYZXYYYRYUYUUYYUVYYVTYYYRWY[YYUWYXWYYTZYYVSYWYYTTYYYYYYYWVYWVYYYYYTYYYTYYYYYVYYYYYYTYYSYVYYYWUYYYTUWYYWYYYYYYVZYYYWUXTYYYYY]YYWYWUYXYYYYYUYYWVYYYYVYYYVYYYYYXYYYYWVYYYZYYYYYYZUYYYYYYYYYYYYYYXYYXTYYYYTYWW[WVYYYYYYYYYXVYWUYYYYUYYYYYYYYYUYYVYYYVYYWWYXYY[YYYYXYXYXWYYYUYTYXWYYTYYYYTYYYUUY\YVXYYVVYYUYYYTWYXYYWVZYYYYYYVXYZXYYYWYUYYYWYYYWYXYYYYYYXYYTYXYYYWUYYYV[UYYYYYYXYYV\YYY[RXTYTPYYZYYPYM^YhYYYYYWYYZYYYYYYYYYYYYYYYVYYYYQ`YYY[YYYYYYYUYWYYYYYYYYYYYY_YYW\YY`YVYYSUXVYYYYYYY[YURYWcYYYY]YYYYYYYYYQYYRYYYWYYTbYTYY`YYYYXYSYVVYYYUY_YNfYYaXYYVdYYYYgYYYh[ZY[LYYZVYY]LYUYY[XYYYYYYYSUYY\YYYYY]YYYYYYY\Y\YYYYYYXYY`YWYYYJ[YYYWUYYY\YYYWYYYXYYYYXXXYWYYYZYYYYYXYXYYYYYXYYYYYYYYXYYYYYYYYYXYYYYXXYYYZYYXYYYYYYXYYYYYYYYYYYYZYYXYYYXYZYXXXYXYYYYYYYYYZXYZXYYYYXYYYYYYYYYXYYYYYYXYYYXYYYYZYYYYXYXYXVYYYXYYYWYYYYYYYXWYYYYXYYYYYXYZYYYYXYYYYYXYYXXYYYYYYYXZYWXYYYXYXYYYYYYYYYXYYYYYYXYYXYXYYYX[YYYYYYYYYYYYXYYWWYYYVVZVYV\YY\YYVYTUYWYYYYYYYYVVYYYYWYYYVYYYYYYYYYYZTYYYXYYZYYYZYYVYYYYYYYYYYYYYYYVXYYVYYYVUZ[WYYYYYYYXYWTYYWYYYYUYYYYYYYYYTYYUYYYWYYWSY\YY[YYYYZYZYVYYYYZYYYRXYYXWYYWVYYYTVY[YVWYY[UYYW[YYYXY[YYVXYYYYYYYU\YWXYYYWYUYYYXYYYWYXYYYYYYYYYVYVYYYX]YYY\WTYYXYYYXYYYWYYYXZXYYW[YYZYYXYXVYXYYYYYXYYZWYYYYZYYYXYYYYYYYYYYYWYYYYYYZYYYYXYXYYYYYYYYYYYYYYYYWYYXYZYYVWXXYYYYYYYYYYVY\WYYYYVYYYYYYYYYXYYWYYYWYY[WYYYYXYYYYWYZYWWYYYXYWYYWYYVZYYYVYYYWXY\YXXYYYXYYUYYYZYYZYYXWYYYYYYYYZYZZYYYXYWYYYWYYYYYWYYYYYY[YYWYYYYYXYYYYWXXYYWYYYYYYUKYYYYXTSYWWYY\YYYYUWYZYYYYYUYYXXYYYYXYYYWYYYYYXYYYYYVYYYVYYVYYYYXYXYYYYYYYYYYYYUYYYXYYWYWYVXWTXYYYYYXYWY]XYWZYYYYWYYYYYYYYYUYYVYYYWYY[YYYYYZYYYYXYVYXVYYYYYVYUWYYXXYYWWYYYTXYVYV[VYUUYYXXYYUVYWYYXWXYYYYYYXTYZXYYYXYVYYYXYYYVYWYYYYYYYYYVYRYYYYSYYYYWXYYUYYYXYYWZYYYYYWYYWZYY\YYWYVXYWYYYYY[YYXXYYYYVYYYXYYYYYZYYYYYWYYYYYYYYYYYYYXYYYYYYYYYYYYXYYWVYYYYWYYWYYUYYYYYYYYYXWYZUYYYYWYYYYYYYYYWYYWYYYWYYZWYXYYZYYYYXYZYXYYYYVYVYXXYYWXYYXWYYYXWY[YWWZYXWYYVYYYYXYWYYWWYYYYYYYXYYY[YYYXYWYYYXYYYWYWYYYYYYWYYXYYYYYWWYYYXZXYYXYYYWYYVDYYYWXUTYUVYY\YYWYUUYWYYYYYUYYWYYYYYYYYYVYYYYYWYYYYWUYYYVYYVYYYYWYVYYYYYYYYYYYYRYYXVYYUYVYXUVSVYYYYYXYWY[XYXYYYYYWYYYYYYYYYUYYVYYYUYYWVYWYYbYYYYUYUYXWYYYWYXYWXYYXXYYVXYYYTYYUYWWUYSTYYWVYYTTYXYYXVXYYYYYYXSYVVYYYXYWYYYUYYYXYUYYYYYYXYYTYKYYYXVYYYWVXYYSYYYZYYXYYYYXYYWYZYYY[YYYYYXYXYYYYYZYYYYYYYYYYYYXYYYYYYYYYYXWYYYYYYYYYYYZYYYYYYYYYYYYYYXYYXXYYXYXYYXXZZYYYYYYYXYYXYXXYYYYYYYYYYYYYYXYYYYYYYYYYWYYYYZYYYYYYYYXYYYYZYXYXYYYXWYYZYYYYXYYYYZVXYXXYYXZYYXYYXYYZYYYYYYYYYXYZYYYYYYWYYYXYYYXYYYYYYYYXYYXYYYYYYWYYYXXYYYYYYYZYYSLYYYYSVSYSSYYZYYYYRXYUYYYYYYYYUXYYYYWYYYUYYYYYUYYYY^VYYYUYYUYYYYXYWYYYYYYYYYYYYPYYYVYYTYUYWT][XYYYYYXYVYWXYVVYYYYXYYYYYYYYYSYYUYYY[YYWWYTYYbYYYYPYUYXTYYYTYSYTXYYTTYYUYYYYSVYUYT[YYTVYYUZYYQQYSYYTXYYYYYYYWQYWQYYYUYTYYYWYYYVYWYYYYYYTYYUYSYYYTOYYY_VWYYSYYYWYYXUYYYUTZSYVYYY]YYVYXVYUYYYYYVYYXVYYYYVYYYUYYYYYZYYYYXVYYYUYYWYYYZXYWYYYYYYYYYYYYXYYV[YYUYXYXTXZWYYYYYYYWYTUYZXYYYYUYYYYYYYYYTYYTYYYXYYUWY\YY]YYYYXYVYUZYYYZYXYSWYYVTYYWVYYYTTYZYWWYYXVYYVZYYXXYWYYQYZYYYYYYTWYXZYYYXYVYYYWYYYVYWYYYYYYWYYUYXYYYXYYYYZXTYYWYYYYYYXZYYYXYYYYYYYYZYYYYXXYXYYYYYZYYXYYYYYYYYYXYYYYYXYYYYZWYYYYYYXYYYYZYYYYYYYYYYYYYYYYYYXYYWYXYYYYZXYYYYYYYYYYXYXYYYYYYYYYYYYYYYYYYYYYY[YYYXYXYYYYYYYWYYYXYYYYXYXYXYYYYXYYXYYYYYYYYYYZZYXYYYXYYYYYYXYYXYYYYYYYYX[YXXYYYXYYYYYZYYYXYYYYYYYYXYYYYXYYYYYYYY[XYYYYYYYWYYTFYYYXUYUYWUYYXYYUYUXYUYYYYYRYYXXYYYYYYYYTYYYYYWYYXYSVXYYQYYTYYYXUYWYYYYYYYYYYYYZYYVYYYSYXYXWTVVYYYYYWYUY\WYTYYYYYXYYYYYYYYYVYYVYYYRYYVVYXYYYYYYYTYTYWZYYYSYYYXWYYXVYYVSYYYUVYVYWVVYSSYYUUYYRSYYYYUUWYYYYYYXRYUTYYYWYUYYYSYYYXYSYYYYYYUYYNYMYYYT\YYYSXVYYRYYYWYYSDYYYZPYUYQZYYUYYVYUYYWYYYYYTYYTWYYYYVYYYXYYYYYVYYYY\VYYYVYYYYYYYVY[YYYYYYYYYYYYXYYXVYYWYSYWSRTWYYYYYWYWY_YYYXYYYYRYYYYYYYYYRYYUYYYQYYTSY[YYeYYYYUYUYUXYYYVYVYYSYYWXYYVSYYYSWY^YVXPYRXYYYWYYWUYTYYJVZYYYYYYXUYYVYYY]YVYYYQYYYWYSYYYYYYUYYPYKYYYRUYYYQWYYYVYYYXYYUVYYYVX[YYVXYY\YYVYTUYUYYYYYXYYXWYYYYXYYYUYYYYYXYYYYWUYYYXYYWYYYY[YXYYYYYYYYYYYYZYYXYYYYYWYXXYZWYYYYYYYWYXVYVVYYYYWYYYYYYYYYVYYWYYYUYYWSY[YYXYYYYWYWYV\YYYWYXYUVYYWVYYXTYYYWUYXYWTYYWVYYUZYYZTYWYYXVYYYYYYYWYYWYYYYXYXYYYUYYYVYWYYYYYYWYYUYXYYYWXYYYVYUYYVYYYWYYUEYYYWWW\YVXYYYYYTYTVYTYYYYYRYYUXYYYYYXYYUYYYYYUYYYYUTYYYUYYOYYYXWYWYYYYYYYYYYYY_YYWZYYXYZYVXTTUYYYYYWYUY\VYQZYYYYXYYYYYYYYYSYYWYYYSYYVRYXYYWYYYYTYSYVZYYYWYZYUWYYYVYYUQYYYWXYTYTUWYVSYYXTYY[NYUYYXTWYYYYYYXXYURYYYVYVYYYTYYYTYQYYYYYYUYYQYPYYYQ[YYYUXVYYPYYYYYYXHYYYYWVUYWZYYWYYXYWVYXYYYYYVYYXXYYYYWYYYVYYYYYXYYYYYXXYYWYYWYYYYWYVYYYYYYYYYYYYXYYXWYYWYXYWWWVWYYYYYWYXY^XYWYYYYYXYYYYYYYYYVYYWYYYVYYYYYXYY_YYYYVYWYYWYYYWYVYWYYYYXYYXXYYYUXYWYVWVYTVYYXVYYUUYWYYXWXYYYYYYYVYWXYYYYYXYYYVYYYWYWYYYYYYXYYTYPYYYWWYYYX[YYYUYYYXYYXXYYYWXXWYWYYY\YYXYXWYYYYYYY[YYXXYYYYYYYYXYYYYYYYYYYXWYYYYYYZYYYYYYXYYYYYYYYYYYYYYYXWYYVYWYYXX]XYYYYYYYWYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYWY[YY[YYYYXYYYXYYYYZYXYWYYYYXYYXXYYYWYYYYYXZYXWYYWZYYYWYXYYXXYYYYYYYXZYXWYYYXYWYYYXYYYXYXYYYYYYXYYXYXYYYXZYYYZZXYYXYYYXYYYWYYYZYXXYYYYYZYYXY[YYXYYYYYZYYWWYYYYZYYYXYYYYYXYYYYYYYYYYYYWYYYYYYXYYYYYYYYYYYYXYYWZYYXYXYYYYXZYYYYYYYYYXWYXYYYYYXYYYYYYYYYYYYXYYYVYYYWYYYYXYYYYYYYYYXYYYXYYYWZYYXXYYYYYYYXXYXYXWWYYYYYXZYYY[YZYYYZYYYYYYYYYYYWYYYXYYYYYYYYYXYXYYYYYYYYYYYXYYYYYYYYXXYYY[YYY]YYTWYYYWXVVYWYYYYYY[YRZY]YYYYY\YYYYYYYYXYYYWYYYYY[YYYY_VYYYWYYXYYYYVYXYYYYYYYYYYYYUYYVVYYWYUYXVV\YYYYYYYYTYZXYXXYYYYXYYYYYYYYY[YYXYYY[YY\YYXYYXYYYYZYZYYYYYYWYWYW\YYVXYYX\YYYVXYUYW[ZYUXYYYXYYXWYXYYX[YYYYYYYVXYXYYYYZYWYYY]YYYVYXYYYYYYXYY[Y]YYYRSYYYY[XYYVYYYWYYXVYYYU\YRYUZYYbYYUYVSYUYYYYYXYYVUYYYYUYYYSYYYYYWYYYYXVYYYVYYWYYYZWYZYYYYYYYYYYYYQYYXTYYVYUY\UXXUYYYYYZYWYTTYYRYYYYWYYYYYYYYYTYYTYYYXYYYXYWYY`YYYYWYVYXZYYYRYRYVVYYRTYYYVYYYRSY_YTWUYXWYYUZYYXRYUYYUVZYYYYYYWTYXVYYYXYRYYYVYYYTYXYYYYYYXYYWYWYYYUVYYYXUUYY[YYYZYYXWYYYWYWWYXZYYXYYXYWUYXYYYYYYYYVWYYYYYYYYYYYYYYYYYYYXXYYYWYYZYYYYVYZYYYYYYYYYYYYXYYZVYYXYWYZWXZWYYYYYYYXYXWYYWYYYYWYYYYYYYYYXYYXYYYZYYXYYYYYYYYYY[Y\YXYYYYXYXYYXYYWWYYXZYYYYUY[YYYYYYXYYX[YYYWYXYYUXYYYYYYYZXYY[YYYXYYYYYXYYYXYYYYYYYYZYYWYYYYY\YYYYVWVYYYYYYWYYWUYYYWVYVYWWYY[YYXYXUYVYYYYYUYYVXYYYYWYYYVYYYYYXYYYYYVYYY\YYWYYYXXYXYYYYYYYYYYYYZYYWWYYYYVYWX[WWYYYYYXYXYYXYWXYYYYVYYYYYYYYYWYYVYYYVYYWVYYYYYYYYYVYYYWXYYYXYXYWWYYXXYYXWYYYYVYVYXX[YWVYYUWYYZWYXYYXWXYYYYYYWYYZYYYYYYXYYYWYYYZYWYYYYYYXYYVYXYYYX[YYYYWWYYXYYYYYYVWYYYWWXUYV^YY^YYTYYXYZYYYYYYYYUTYYYYSYYYUYYYYYYYYZYZUXYYWYYWYYYYVY\YYYYYYYYYYYYYYYVTYYWYSYYUQWWYYYYYXYWYXWYWSYYYYQYYYYYYYYYVYYUYYYTYYWVY[YYbYYYY[YPYT[YYYWYWYUTYYYWYYZSYYYUUY`YR[TYUVYYY^YY[ZYNYYLWYYYYYYYYXY\UYYY]YWYYYUYYYXYWYYYYYYVYYSYRYYYSTYYYSTYYY^YYYYYYYYYYYXYYYYXYYYYYYYYYXYXYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYZYYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYXYYYYXYYXYYYYYZYZYYYYYXYYYXZYYYYYYYYXYYYYYYYYYXYYYYYYXYZYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYZYYYYYYYXYYWTYYYWVXUYWWYYXYYWYYXYWYYYYYWYYWWYYYYVYYYUYYYYYXYYYYWVXYYWYYVYYYXWYXYYYYYYYYYYYYWYYXYYYWYWYXXVZXYYYYYXYXYWWYXXYYYYWYYYYYYYYYXYYVYYYWYYWXYYYYVYYYYUYVYXXYYYVYWYVXYYUVYYXWYYYUWYYYWWVYVWYYVVYYXZYWYYVWYYYYYYYWWYXWYYYYYWYYYVYYYXYWYYYYYYXYYUYUYYYXYYYYWWWYYXYYYYYYWXYYYWWZVYVYYY[YYXYWWYXYYYYYXYYYXYYYYXYYYWYYYYYYYYYYZYYYYWYYXYYYZYYXYYYYYYYYYYYYYYYZWYYXYYYYX[ZWYYYYYZYYYXXYYWYYYYWYYYYYYYYYYYYXYYYZYYXXYZYY[YYYYZY[YWXYYYWYWYXXYYXWYYWXYYYXXYZYXZXYZYYYW[YYYYYXYYYXZYYYYYYYYYVWYYYWYWYYYXYYYXYXYYYYYYYYYXYYYYYYWYYYYYWYYZYYYWYYXVYYYWX[XYWYYYZYYXYWXYVYYYYYWYYXYYYYYZYYYXYYYYYXYYYYWUYYYYYYWYYYYXYXYYYYYYYYYYYY[YYX[YYXYYYYYXYXYYYYYYYXYYXYXZYYYYWYYYYYYYYYXYYYYYYWYYXVYYYYYYYYYWYWYXYYYYXYXYXWYYVYYYXWYYYXXYZYWXWYWXYYVWYYYWYXYYXWYYYYYYYWWYXYYYYWYWYYYXYYYXYXYYYYYYXYYVYWYYYWXYYYXYXYYWYYYXYYTXYYYTVUTYV[YY\YYTY\RYVYYYYYYYYWUYYYYUYYYTYYYYY[YYYYYXYYYYYYXYYYZWYYYYYYYYYYYYYYWYYVVYYYYTYZUWZWYYYYYZY[YVSYWQYYYYVYYYYYYYYYTYYTYYYUYYYVYXYY[YYYY[YYYXXYYYUYYYVZYYRUYYXXYYYRQYZYTVVYWUYYV[YYUVYVYYUXYYYYYYYWYY[WYYYXYSYYYWYYYSYXYYYYYYYYYVYVYYYUYYYYWXSYYWYYYZYYZVYYYXV^WYXYYYYYYWYZVYVYYYYYXYYYXYYYYXYYYXYYYYYZYYYYYVYYYYYYZYYYZWYWYYYYYYYYYYYY[YYWXYYYYYYXXZYXYYYYYYYWYYXYZXYYYYVYYYYYYYYYZYYWYYYYYYYUY[YYXYYYYXYZYWYYYYXYZYWWYYVZYYWUYYYXWY[YWWXYWXYYVXYYWWYZYYWWYYYYYYYX\YZ_YYYWYWYYYXYYYZYXYYYYYYVYYWYYYYYWYYYYWZVYYXYYYYYYSRYYYXQWSYWXYYaYYUYZRYVYYYYYVYYSTYYYYRYYYUYYYYYYYYYYXUYYYWYYWYYYZYYUYYYYYYYYYYYYVYYVUYYVYSYTS^ZXYYYYYZY[YQSYYUYYYYTYYYYYYYYYRYYSYYYVYYWRYXYY^YYYYZY[YVSYYYVYVYOVYYUTYYTQYYYQTYZYWWWYYTYYSXYYV\YXYYVZZYYYYYYWZYYQYYYTYTYYYWYYYVYVYYYYYYWYYUYYYYYUUYYYXXQYYZYYYVYYTXYYYWWZUYZWYY\YYVYXTYTYYYYYZYYYWYYYYXYYYUYYYYYXYYYYVVYYYXYYWYYYYZYYYYYYYYYYYYYY\YYUWYYUYXYYYVXXYYYYYYYZYYWYUUYYYYVYYYYYYYYYYYYXYYYUYYWUYZYYSYYYYWYVYWYYYYWY[YVVYYTVYYXTYYYVUYXYXWYYXWYYTYYYSVYYYYUVYYYYYYYXXYXXYYYYYXYYYVYYYWYWYYYYYYVYYPYZYYYXWYYYUWUYYWYYYYYYYXYYYYXYXYYYYYYYYXYZYYYYYYYYXYYXYYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYXXXYYYYYYYYYXYYZYYYYYXYYYYYYYYYXYYXYYYYYYXWYYYYYYYYYXYYYYXYYYXYXYXYYYXYYYXXYYYXXYXYYYYYXXYYYZYYZXYXYYXYYYYYYYYXXYXYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXWYYYXYYYYYYYYWYYUWYYYXW]ZYYXYYZYYTYXWYUYYYYYWYYWXYYYYYYYYVYYYYYYYYYYWVYYYWYYXYYYYZYYYYYYYYYYYYYY\YYU]YYWYZYXZVWVYYYYYYYVYYXYWZYYYYXYYYYYYYYYVYYWYYYXYYTSYZYYYYYYYXYYYU[YYYYYXYWWYYXYYYWWYYYZXYXYXVZYVWYYXXYYWXYZYYZWZYYYYYYXZYYXYYYWYYYYYWYYYYYWYYYYYYWYYUYXYYYW[YYYVZXYYYYYYYYY[UYYYU[UWYWZYYXYYSYYSYVYYYYYXYYVUYYYYUYYYVYYYYYXYYYYXUXYYZYYVYYYXYYXYYYYYYYYYYYYXYYXVYYZYVYVWUTWYYYYYXYXYWTYUZYYYYUYYYYYYYYYTYYWYYYUYYZVYXYYZYYYYWY[YWWYYYXYZYSXYYUXYYXTYYYWUY\YSUWYXVYYWYYYZWYZYYYTYYYYYYY]UYZRYYYVYZYYYZYYYWYXYYYYYYYYYTYXYYY[YYYYWWXYYVYYYWYY\VYYYTWWOYTTYYeYYSYRSYRYYYYYWYYXSYYYYXYYYUYYYYYYYYYYTPYYYUYY[YYYZRYWYYYYYYYYYYYY[YYVRYYRYTYUVY\SYYYYYYYUYXTYUTYYYYUYYYYYYYYYUYYRYYYUYYVUYZYYYYYYYSYYYWXYYYSYUYSUYYQPYYUQYYYMSY[YXXPYRTYYTWYYTWYYYYSUZYYYYYYVRYZVYYYUYIYYY\YYYVYTYYYYYYTYYVYWYYYVSYYYX[SYYWYYYZYYWHYYYYVTTYVYYYXYYWYWYYXYYYYYUYYXYYYYYWYYYWYYYYYXYYYYYXXYYYYYWYYYYVYYYYYYYYYYYYYYVYYZWYYWYWYZUVVXYYYYYXYYY^XY[YYYYYYYYYYYYYYYXYYXYYYUYYZZYZYY\YYYYVYVYZYYYYWYWYZXYYZWYYVYYYYWXYWYVZUYUWYYYZYYVVYXYYUXXYYYYYYZTYWXYYYZYXYYYTYYYXYUYYYYYYXYYVYPYYYYUYYYVYZYYUYYYYYYWYYYYYXY\YYZYYZYYXYVWYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYWVYYYXYYYYYYXXYYYYYYYYYYYYYYZYYVYYYZYWYXYYXZYYYYYYYWYXXYXYYYYYWYYYYYYYYYVYYZYYYZYYZUY[YYUYYYYXYYYTZYYYXYYYWVYYWYYYXXYYYYVYXYVYZYXXYY[WYYYVYYYYYXYYYYYYYXYYZWYYYYYZYYYYYYYYYZYYYYYYXYYWYYYYYUXYYYYWXYYXYYYXYYTHYYYVZSTYWYYYYYYYYUSYTYYYYYTYYQYYYYYXYYYVYYYYYVYYYYVVYYYTYYZYYYXVYUYYYYYYYYYYYYPYYaXYYVYYYWUVWUYYYYYYYVY_YYWWYYYYSYYYYYYYYYUYYUYYYVYYZUYXYYfYYYYTY\YYTYYYXYPYUXYYVYYYTVYYYOSYVYU[RYTVYYW[YYRUYSYYVY[YYYYYY[QYTUYYYVYOYYYUYYYUYQYYYYYYWYYTYOYYY\OYYYWRXYYUYYYYYYXWYYYYYYXYXYYYZYYYYXXYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYWYYYYYYYYXYYYXYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYY\YYYYXYYYYYYYYXYYYYYYYXXYYYYYYYYYYYYYXXYXYYYYYYYXXYYYYXXYYYYYYYYXYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYWYYXUYYYVTXVYXZYY`YYTYXSYWYYYYYXYYWUYYYYUYYYWYYYYYZYYYYXSYYYVYYXYYYZXYVYYYYYYYYYYYYWYYXVYYWYTYUWXWWYYYYYYYXYXTYZWYYYYUYYYYYYYYYVYYUYYYWYYTSY\YYaYYYYWY[YVXYYYXYUYTVYYWXYYVUYYYSVY\YYXUYVUYYTZYYZYYVYYTVYYYYYYYX[YYZYYYVYUYYYWYYYYYVYYYYYYWYYVYZYYYWWYYYV[UYYUYYYYYYWLYYYYWUWYWXYYVYYXYXXYXYYYYYUYYYXYYYYWYYYWYYYYYYYYYYYXXYYYYYWYYYYXYXYYYYYYYYYYYYZYYXXYYYYXYZWVVVYYYYYXYWY\XYXXYYYYWYYYYYYYYYWYYXYYYVYYZYYZYYZYYYYVYYYYYYYYXYXYZXYY[YYYWWYYYZYYXYWXWYWXYYXWYYVWYWYYVWXYYYYYYYXYWTYYYXYWYYYWYYYWYUYYYYYYZYYVYPYYYXXYYYWZYYYUYYYYYYVVYYYUVVYYX[YY`YYUY[UYWYYYYYXYY\UYYYYYYYYVYYYYY[YYYYUSYYY\YYYYYYYYYVYYYYYYYYYYYY^YYRZYYVYXYXW[[WYYYYYYYYYZTYXUYYYYTYYYYYYYYYUYYUYYYUYYYUYgYYZYYYYZYUYW]YYYZYZYUSYY^XYYWNYYYSVYZY[VWYZTYYU\YY[WYYYYTWXYYYYYYVXYZXYYYUYUYYYUYYYZYTYYYYYYXYYUYXYYYXaYYYX]UYYRYYYXYYXIYYYZUVVYWUYYXYYXYWWYZYYYYYTYYXYYYYYXYYYWYYYYYXYYYYWXYYYXYYVYYYYWYXYYYYYYYYYYYYVYYXWYYXYWYWVWUXYYYYYWYVY]XYWZYYYYXYYYYYYYYYUYYWYYYWYYYYYYYY[YYYYUYWYWXYYYXYVYWXYYZWYYXYYYYWYYWYXWWYUVYYYWYYVVYWYYWXXYYYYYYYTYXVYYYYYXYYYUYYYXYVYYYYYYXYYVYNYYYWWYYYXXYYYUYYYWYYUUYYYYUXVYYWYYYYYWYVUYVYYYYYSYYYWYYYYVYYYUYYYYYYYYYYTXYYY^YYWYYYXZYWYYYYYYYYYYYY]YYUVYYWYYYVXVUWYYYYYYYZYWVYWTYYYYVYYYYYYYYYVYYVYYYUYYVUY[YYWYYYYVYWYVYYYYVYYYUUYYYYYYWRYYYTSYXYWVYYYVYYTYYYUXYXYYUUXYYYYYYXWYYXYYYXYXYYYUYYYXYWYYYYYYXYYTYXYYYXWYYYUXTYYTYYYYYYXXYYYYXZ[YYYYYYYYXYXXYWYYYYYXYYXXYYYYZYYYXYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXZYYYYYYXYXXXYYYYYYYXYYXYYYYYYYXYYYYYYYYYXYYYYYYXYYYWYYYYYYYYYXYYYXYYYYXYXYYXYYXYYYYXYYYYXYYYWXYYXXYYXYYYZXYYYYYXYYYYYYYYYYYXYYYXYXYYYXYYYYYYYYYYYYYYYWYYYYYXYYYYXXYYYXYYYXYYWGYYYYUVTYWYYY[YYVYYUYWYYYYYTYYVXYYYYWYYYVYYYYYXYYYYXVYYYUYYVYYYYUYXYYYYYYYYYYYYUYYWYYYWYWYYVYWUYYYYYXYXYZWYYXYYYYWYYYYYYYYYTYYUYYYVYYWXYWYY^YYYYXYTYXVYYYXYWYXVYYXVYYWWYYYVWYXYXYTYWVYYVWYYVSYVYYUWXYYYYYYUTYYSYYYWYVYYYVYYYWYTYYYYYYZYYUYNYYYVUYYYWWXYYTYYYXYYRVYYYVVUSYV\YYZYYUY[VYVYYYYYXYYXVYYYYXYYYXYYYYYWYYYYWVYYYYYYWYYYYVYWYYYYYYYYYYYYXYYUYYYVYZYWVVWXYYYYYXYYYWVYUYYYYYXYYYYYYYYYUYYUYYYVYYYVYWYYXYYYYWYYYSWYYYVYYYSVYYUWYYWUYYYSUYYYXXWYUVYYUYYYVYYSYYSXYYYYYYYT[YZVYYYXYWYYYVYYYWYWYYYYYYWYYTYXYYYYWYYYVWWYYYYYYZYYUUYYYTZXRYU\YY]YYXYVTYVYYYYYZYYUUYYYYOZYYUYYYYYVYYYY^UZYYWYYWYYY[^YVYYYYYYYYYYYYWYYWTYYYYXYTV\[SYYYYYZYYYTXYVUYYYYSYYYYYYYYYSYYVYYYZYYWSYYYYZYYYYWY`YUYYYY[YVYRVYYVUYYWTYYYTUYXYTZ[YXWYYV]YYYYYWYYXVZYYYYYZ\^YZTYYYXYQYYYVYYYRYZYYYYYYYYYXY`YYYXSYYYZWQYYZYYYYYYWGYYY[TTVYYVYYZYYUYUVYYYYYYYWYYVWYYYYXXYYSYYYYYYYYZYXVYYYVYYUYYYZXYWYYYYYYYYYYYYUYYWWYYWYWYVPVWUYYYYYXYWY[UYXXYYYYSYYYYYYYYYVYYSYYYUYYUVYYYYbYYYYXYUYXWYYYWYTYVYYYYZYYWZYYYTVYUYVWVYTUYYYYYYUVYVYYVWWYYYYYYUXYYUYYYXYXYYYUYYYXYVYYYYYYZYYUYMYYYTYYYYZXYYYTYYYUYYUDYYYXWZ^YWTYY[YYSYOVYSYYYYYRYYSXYYYYZXYYTYYYYYTYYXYTQYYYVYYQYYYXWYWYYYYYYYYYYYY]YYW[YYYY[YUWUUTYYYYYWYUYYVYQ[YYYYWYYYYYYYYYSYYVYYYUYYTOYYYYXYYYYTYUYTZYYYWYXYVVYYYWYYUOYYYXWYUYRTWYVRYYWVYY]OYWYYYUXYYYYYYVYYTQYYYVYUYYYUYYYTYQYYYYYYSYYQYOYYYOZYYYUVTYYOYYYZYYYXYYYXZYWYYYYYZYYYYXXYXYYYYYYYYYXYYYYWYYYXYYYYYYYYYYZXYYYYYYYYYYYZYXYYYYYYYYYYYYYYYXWYYZYYYXXYYYYYYYYYYXYXYYXXYYYYYYYYYYYYYYXYYYYYYZYYYWYYYYXYYYYYYYYXYYYY[YYYXYYYXXYYYXYYYWXYYYXXYYYXYYYYYYYZYYYYXYYYYYYYYY[Y[YYYYYYWYYYYYYYYYZYYYYYYYYYXYZYYYYWYYYYYXYYYYYYYYYYYYYYXYYXYYYYYYYYYYXXYYYYYYYZYYYXYYYYYYYYXYYYYYYYYYYYZYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYXYXYYXYXYYYYYYYYZYYXYZYYYYYXYYYYYYYYYYYYYYYYXYYXXYYYYZYYYYYYYYXYYYYXYYYXYYYXXYYYYYYYYZYZYXYYYXYYYYZYYYXYZYYYYYYYYYYYYWYXXYYYYYYYYYXYYYXYXYYYYYYYYYWYYYYYYYYYYXXYYYZYYYXYYWHYYYZWVWYWVYYYYYXYWXYYYYYYYUYYXYYYYYXYYYWYYYYYYYYYYXYYYYWYYWYYYYWYWYYYYYYYYYYYYUYYXWYYXYWYZWWVWYYYYYXYWY[YYXYYYYYXYYYYYYYYYVYYWYYYVYYYYYWYY_YYYYVYVYYYYYYWYVYZXYYYXYYWXYYYXXYWYVWWYUWYYXWYYUVYWYYUWWYYYYYYYSYXUYYYYYXYYYWYYYXYVYYYYYYXYYUYNYYYXVYYYWWYYYSYYYYYYWVYYYWXWUYXZYY[YYXYXVYWYYYYYYYYVVYYYYWYYYVYYYYYXYYYYXXYYYWYYXYYYYYYWYYYYYYYYYYYYXYYZVYYWYYYXWXYXYYYYYYYYYUWYXVYYYYVYYYYYYYYYWYYWYYYXYYZWYYYYYYYYYYYYYWWYYYYYZYVXYYXXYYWYYYYUWYYYUYXYXXYYWYYYXZYYYYWZZYYYYYYZYYWVYYYXYWYYYYYYYWYWYYYYYYXYYWYWYYYZYYYYXWUYYYYYY[YYXXYYYYXZYYYYYYZYYYY[XYXYYYYYXYYZYYYYYZYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYZYYYZYYYZYXXYYYYYYYYXY[XYZZYYYYZYYYYYYYYYZYY[YYYYYYYXYZYYZYYYYYYZYZYYYYXYXYYXYYYYYYXXYYYXYYZYZXXYYZYYYZYYXXYZYYZYYYYYYYYYYYZYYYYYYYYYYXYYYZYXYYYYYYZYYYYZYYYZXYYYX[[YYYYYYWYYTLYYYUZSRYPXYY\YYWYWQYUYYYYYXYYSTYYYYOYYYVYYYYYTYYXY[TZYYVYYVYYYXZYTYYYYYYYYYYYYTYYVRYYVYRYXSYRTYYYYYYYVYUXYSRYYYYSYYYYYYYYYQYYWYYYWYYYSYSYY^YYYYSYbYWSYYYSYUYQSYYSUYYWTYYYWUYUYUXXYQVYYUWYYTVYUYY[SZYYYYYY^PYSUYYYVYOYYYUYYYQYVYYYYYYUYYSYVYYYZQYYYWTRYYTYYYVYYWSYYYWYWQYZ[YY[YYUYZWYWYYYYYZYYRTYYYYWYYYSYYYYYUYYYYYYYYY[YYUYYYYWYWYYYYYYYYYYYYTYYTWYYTYYYXUZY]YYYYYYYYYRSYXXYYYYSYYYYYYYYYUYYUYYYSYYYUYVYYZYYYYWYYYWVYYYWY[YOZYYRVYYZTYYYPUYXYRWWYXUYYSZYYX]YYYYU\ZYYYYYYY\YYSYYYVYUYYYYYYYUYVYYYYYYXYYUYVYYYY\YYYZSRYY]YYYVYYXUYYYYWTXYUZYYZYYVYUTYWYYYYYXYYSTYYYYSYYYVYYYYYXYYYYZWXYYZYYZYYYXWYXYYYYYYYYYYYY[YYVSYYWYUYVVXXUYYYYYXYXYVUYYUYYYYUYYYYYYYYYUYYWYYYXYYWWYXYYXYYYYYYWYSWYYYYY\YTTYYXUYYWUYYYZWYWYQZXYXWYYUXYYZZYVYYVYUYYYYYYWXYZZYYYWYUYYYWYYYWYVYYYYYYWYYVYWYYYVXYYYXWTYYZYYYZYYTXYYYUWZTYV\YY^YYWYXUYWYYYYYVYYYVYYYYVYYYUYYYYYYYYZY[VYYYYYY[YYYZYYWYYYYYYYYYYYYXYYZUYYXYWYXUZZWYYYYYZYXYVWY[UYYYYTYYYYYYYYYUYYVYYYWYYWVY]YY\YYYYZY^YVXYYYVYUYUWYYXXYYVVYYYTUY`YYYXY\WYYVZYY[YYXYYWYZYYYYYYYWYWXYYYVYTYYYVYYYXYWYYYYYYWYYUY[YYYZWYYYX[UYYXYYYYYYWDYYYYVVTYVTYYYYYXYVVYVYYYYYSYYXYYYYYYXYYUYYYYYXYYYYUXYYYXYYVYYYXWYWYYYYYYYYYYYYVYYXUYYVYVYXUWRVYYYYYWYWY\YYVXYYYYVYYYYYYYYYWYYVYYYTYYWWYXYY^YYYYTYUYXWYYYVYWYXXYYZXYYVUYYYWWYWYWVVYUVYYWUYYUUYYYYVVVYYYYYYYTYUVYYYWYWYYYUYYYXYTYYYYYYXYYUYLYYYWWYYYWVYYYRYYYYYYWWYYYXWYWYX\YY[YYWYWWYWYYYYYXYYWWYYYYWYYYWYYYYYXYYYYWWYYYXYYYYYYYWYYYYYYYYYYYYYY[YYWXYYYYXYZWYXYYYYYYYYZYXVYXWYYYYVYYYYYYYYYWYYXYYYWYYYXYYYYZYYYY[YXYWYYYYXYXYWUYYWXYYYUYYYUVY\YVYZYYWYYUZYYZWYVYYTWYYYYYYYXZYZYYYYXYXYYYYYYYWYYYYYYYYXYYUYYYYYWZYYYVXWYYYYYYYYYXXYYYXWXXYYZYYYYYXYXYYYYYYYYZYYXXYYYYWYYYXYYYYYYYYYYYYYYYZYYXYYYYYYYYYYYYYYYYYYYXYYXXYYYYXYYXXWZYYYYYYYYYYWYYYYYYYXYYYYYYYYYXYYYYYYWYYYXYZYYYYYYYXYYYXYYYYXYXYXWYYXXYYYXYYYWXYYYWYYYWXYYXZYYZZYYYYXYYYYYYYYY[YZYYYYZYXYYYWYYYXYYYYYYYYXYYXYYYYYYZYYYWXXYYZYYYXYYTXYYYVXYXYYXYYZYYVYUTYWYYYYYYYYWXYYYYXYYYUYYYYYWYYYYXVYYYYYYVYYYYZYXYYYYYYYYYYYY[YYWZYYWYXYWZYZXYYYYYXYVYXWYUWYYYYXYYYYYYYYYWYYXYYYVYYWTYZYYWYYYYYYWYW[YYYXYXYVVYYWVYYXVYYYWWYWYWVYYWWYYVYYY[VYUYYXXYYYYYYYWXYYWYYYXYYYYYWYYYUYXYYYYYYVYYVY[YYYUUYYYXWVYYXYYY^YYRZYYYRTTVYS[YYiYYRY\MYRYYYYY\YY^RYYYYVZYYUYYYYY\YYZYcKZYYbYY^YYY[\YSYYYYYYYYYYYY]YYUVYYTYUYSQ\fPYYYYYZYTYWSY_OYYYYKYYYYYYYYYQYYOYYYPYYXMYdYY[YYYYWY]YZZYYY]YXYVVYY\\YYRNYYYSLY\YUQZY_WYYSZYY_QYTYYPRZYYYYYYRhYXRYYYRYFYYYZYYYUYNYYYYYYWYYQYYYYYWgYYY^`VYYXYYYZYYVVYYYXRXRYWXYY^YYTYVUYXYYYYYWYYVUYYYYWZYYVYYYYYZYYYYZRYYYYYYXYYYZXYXYYYYYYYYYYYYYYYUWYYYYUYUV\XVYYYYYYY[YVSYWXYYYYVYYYYYYYYYSYYRYYYWYYTTY[YY^YYYYZYXYUVYYYUYVYQWYYVUYYVSYYYQWY[YXYUYUTYYV\YYXXYVYYRYZYYYYYYSZYZWYYYWYSYYYWYYYVYXYYYYYYWYYTYYYYYYYYYYUYRYYYYYYWYYVJYYYZSTRYXTYYQYYVYTTYTYYYYYQYYWWYYYYUYYYSYYYYYXYYYYRYYYYZYYRYYYWXYWYYYYYYYYYYYYZYYVWYYWYUYVUQPVYYYYYXYWYXVYSTYYYYXYYYYYYYYYVYYTYYYVYYXXYXYYRYYYYSYRYXWYYYTY[YVVYYYVYYVUYYYUTYRYXVUYUVYYXZYYVTYUYYRVVYYYYYYXQYVVYYYYYVYYYQYYYUYVYYYYYYWYYUYOYYYUUYYYWSWYYSYYYXYYZXYYYYXVXYWYYYYYYVYZUYYYYYYYXYYWUYYYYXYYYYYYYYYXYYYYZWYYYZYYYYYYZXYYYYYYYYYYYYYYXYYWUYYYYUYYVWYUYYYYYYYXYXVYWUYYYYVYYYYYYYYYXYYWYYYWYYZWYXYYXYYYYWYZYXXYYYXYZYWXYYTYYYYWYYY[WYZYVWWYXYYYVYYYY\YXYYYWYYYYYYYZYYXZYYYXYWYYYXYYYWYWYYYYYYXYYWYYYYYXWYYYWZUYYXYYYZYYYUYYYZWWWYZWYYWYYWYUXYXYYYYYVYYXWYYYYWXYYWYYYYYXYYYYWXYYY]YYWYYYXZYXYYYYYYYYYYYYZYYWXYYZYUYXWZYYYYYYYXYZYWVYUXYYYYYYYYYYYYYYUYYXYYYXYYWXYZYY[YYYYXYWYXYYYYXYYYWYYY[XYYYWYYYWVYVYWXYYYVYYXZYYYYYXYYWWXYYYYYYWVYWVYYYWYWYYYWYYYYYYYYYYYYZYYVYVYYYY]YYYXUWYYVYYYYYYWXYYYXXYXYXXYYZYYXYXWYYYYYYYXYYWWYYYYWYYYYYYYYYXYYYYZYYYYZYYXYYYYXYXYYYYYYYYYYYYZYYXWYYZYVYXYZWXYYYYYYYXYXXYWWYYYYXYYYYYYYYYWYYWYYYXYYWWYYYYXYYYYVYXYXYYYYXYXYXXYYXZYYXXYYYXWYXYVXZYXXYYYYYYYWYWYYXWYYYYYYYYZYYXYYYYYWYYYWYYYXYXYYYYYYXYYXYZYYYXXYYYWXWYYXYYYUYYVWYYYVWWYYV[YY[YYTYURYUYYYYYXYYVWYYYYUYYYUYYYYYXYYZYZRYYYVYYVYYYZ[YWYYYYYYYYYYYY[YYWVYYWYYYTUZ[VYYYYYYYXYXUYUXYYYYTYYYYYYYYYUYYUYYYUYYUSYZYY]YYYYYYYYVZYYY\YXYQVYYWUYYWVYYYSYYZYZXXYWUYYWYYY[VYVYYXWYYYYYYYVXYVVYYYXYVYYYVYYYSYVYYYYYYWYYUYVYYYXZYYYZUTYYWYYYWYYSZYYYWXWVYZWYY]YYVYUVYSYYYYYWYYXWYYYYYYYYTYYYYYXYYYYVSYYY[YYUYYYY_YYYYYYYYYYYYYY]YYWXYYWYYYXXTXWYYYYYYYYYXXYUTYYYYVYYYYYYYYYWYYXYYYWYYVRY[YYUYYYYXYWYWZYYYXYYYVVYYWVYYYQYYYVVYYYWWYYZWYYU[YYTVYWYYVWYYYYYYYXZYVTYYYYYUYYYVYYYUYXYYYYYYVYYQYWYYYVWYYYVVUYYXYYYWYYVWYYYXY[XYXWYYYYYVYTWYUYYYYYYYYWXYYYYZYYYWYYYYYXYYYYWUYYYYYYWYYYYXYXYYYYYYYYYYYY\YYWYYYWYZYWXVZXYYYYYYYYYWWYWYYYYYXYYYYYYYYYXYYXYYYWYYWUYZYYTYYYYVYWYWYYYYXY[YUXYYVWYYXVYYYVXYXYWWZYWVYYVYYYYUYYYYYXXYYYYYYXZYXXYYYXYXYYYXYYYWYXYYYYYYUYYTYXYYYUXYYYXWVYYVYYYXYYVHYYYYVVXYVVYY[YYVYTXYWYYYYYTYYXYYYYYYYYYVYYYYYWYYYYWUXYYWYYRYYYYWYWYYYYYYYYYYYYYYYXYYYZYXYWWVVVYYYYYXYVY]XYS\YYYYXYYYYYYYYYUYYXYYYUYYWWYYYYYYYYYSYSYWZYYYWYXYWYYYZVYYWUYYYVXYWYXUVYUUYYZUYYUSYVYYVUXYYYYYYXVYVUYYYWYWYYYUYYYUYTYYYYYYWYYSYOYYYTYYYYUYXYYSYYYYYYWGYYYZWUVYVVYYYYYWYVXYYYYYYYTYYWXYYYYXYYYWYYYYYXYYYYWXYYYWYYUYYYXVYXYYYYYYYYYYYYWYYXWYYYYVYZWWSWYYYYYWYWY\XYUXYYYYYYYYYYYYYYVYYWYYYVYYYZYWYY[YYYYUYUYXYYYYVYVYYXYYYWYYWXYYYXXYVYVVWYTVYYWVYYVTYVYYUVXYYYYYYYUYXUYYYXYXYYYVYYYWYUYYYYYYXYYTYNYYYVXYYYVYXYYTYYYUYYWJYYYYVY[YTVYYWYYRYPSYTYYYYYRYYTVYYYYXXYYSYYYYYTYYXYRUYYY[YYTYYYXTYVYYYYYYYYYYYYdYYVWYY\YVYTWTXTYYYYYWYWYXVYRZYYYYVYYYYYYYYYTYYWYYYUYYSPYVYYVYYYYRYUYR[YYYVY\YUVYYYXYYSOYYY[VYWYUUZYZRYYTSYY_NYYYYZSVYYYYYYWZYSWYYYUYZYYYVYYYWYQYYYYYYSYYQYSYYYP[YYYTTTYYRYYYYYYXVYYYVWWVYW[YYZYYXYXUYVYYYYYWYYXWYYYYYYYYVYYYYYXYYYYXVYYYYYYXYYYYXYXYYYYYYYYYYYY[YYYWYYWYWYYWZZWYYYYYYYXYXWYXWYYYYWYYYYYYYYYVYYWYYYXYYWVY\YY[YYYYXYWYXZYYYZYXYVWYYYWYYWUYYYVWYZYWYWYXWYYVZYYZXYXYYTXYYYYYYYWYYWYYYYWYWYYYYYYYXYWYYYYYYYYYWYZYYYY\YYYYXWYYVYYYYYYWPYYYYUURYVUYYXYYVYSVYYYYYYYSYYWWYYYYTYYYSYYYYYZYYYYWVYYYWYYXYYYXRYXYYYYYYYYYYYYTYYWTYYYYTYUUYWUYYYYYXYWYZWYXUYYYYVYYYYYYYYYUYYRYYYSYYXUYYYY\YYYYSYUYUVYYYUYUYWYYYWXYYXVYYYSTYXYUXSYSVYYVTYYTTYWYYUUXYYYYYYVTYYXYYYWYTYYYVYYYVYVYYYYYYYYYUYQYYYVWYYYUWUYYVYYYTYYQQYYYSX^aYZYYY]YYOYRTYPYYYYYSYYTXYYYYVYYYTYYYYYXYYYYRNYYYXYYRYYYXYYYYYYYYYYYYYYYfYYQbYY[YYYU[TSPYYYYYYYSYVWYP]YYYYVYYYYYYYYYRYYUYYYRYYOGY\YYTYYYYXYVYP_YYYVY[YSTYYZTYYVMYYYXUYTYWSYYXSYYXWYY]QYVYY[SYYYYYYYTXYVSYYYTYXYYYTYYYRYQYYYYYYRYYLYYYYYSZYYYQWSYYTYYYXYYW[YYYXYXXYYXYY\YYXYVWYYYYYYYYYYWWYYYYVYYYXYYYYYYYYYYYWYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYVYYZYXYVV[\XYYYYYYYZYWWYYWYYYYXYYYYYYYYYWYYVYYYZYYVWYYYYYYYYYWYXYXXYYYWYYYUYYYYWYYZYYYYWXYXYXY[YWWYYYZYYXYYXYYVXYYYYYYYWZYYZYYYZYWYYYWYYYXYZYYYYYYWYY[YZYYYWXYYYYYWYYYYYYYYYXXYYYXYVVYYZYYZYYYYXWYYYYYYYYYYXXYYYYWYYYWYYYYYYYYYYYYYYYVYYWYYYYWYYYYYYYYYYYYYYUYYWVYYWYXYYXWYXYYYYYYYXYXXYXXYYYYWYYYYYYYYYXYYYYYYXYYZXYYYY[YYYYYYZYZXYYYYYVYXXYYXXYYXWYYYXXYWYXYXYWYYYWXYYWXYWYYXXZYYYYYYYXYXVYYYXYWYYYXYYYVYXYYYYYYWYYYYYYYYWWYYYYZXYYXYYYXYYYUYYYYWWXYYVYYVYYXYWWYXYYYYYWYYXXYYYYVYYYWYYYYYYYYYYWYYYY\YYVYYYXYYYYYYYYYYYYYYY[YYXXYYYYWYXXVVXYYYYYYYYYWXYWXYYYYYYYYYYYYYYWYYWYYYWYYXXYZYYYYYYYXYWYWXYYYWYZYWWYYZWYYXWYYYXWYVYXXYYYWYYYYYYYYYWYYWXXYYYYYYXYYXWYYYYYYYYYWYYYXYXYYYYYYYYYXYXYYYY[YYYXWXYYYYYYYYYRKYYYVZTPYWUYY\YYVYYXYZYYYYYUYYWXYYYYVYYYVYYYYYWYYYYWUYYYUYYUYYYYTYVYYYYYYYYYYYYSYYWUYYXYYYVTZRVYYYYYXYWY\WYV[YYYYYYYYYYYYYYUYYUYYYWYYVYYYYY_YYYYTYVYWVYYYWYRYUYYYYXYYWXYYYTYYRYYXUYSUYYWXYYRUYVYYZVXYYYYYY[RYXSYYYYYUYYYUYYYUYWYYYYYYYYYXYRYYYVRYYYWVWYYTYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYYXYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYXYYYYYYYYYYYXXYYYYYYYYYXYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYZYYYYYYYYYYYYYYZXYXYYYYYYYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZZXYZYYYYYYYXYYYYYYYYYYZYYYYYYYYYYYYZYYYYYYYYYYYYZYYYYYYYYYYYYYXYYYYZYYYXYYYYYYYYYYYYZXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYXYYYYYYYYWYYVPYYYWSSWYVYYY]YYWYSSYYYYYYYSYYRVYYYYTYYYZYYYYYVYYYYSWYYYZYYYYYYWUYWYYYYYYYYYYYYWYYVSYYUYRYUUUSTYYYYYYYVYWUYTTYYYYVYYYYYYYYYTYYUYYYTYYXVYWYY\YYYYVYZYVSYYYTYZYUVYYXVYYWTYYYWWYUYWVSYVUYYTXYYZ[YTYYZUWYYYYYYXTYWWYYYXYUYYYUYYYVYUYYYYYYUYYVYWYYYVWYYYUXTYYVYYYXYYWGYYYZVVVYWWYYWYYXYWXYYYYYYYTYYXYYYYYXYYYWYYYYYYYYYYWYYYYXYYWYYYYWYWYYYYYYYYYYYYXYYYXYYXYWYXWVUWYYYYYXYWY]YYWYYYYYXYYYYYYYYYVYYWYYYVYYXYYXYY_YYYYVYVYYXYYYVYVYXXYYZYYYWXYYYWXYWYWWVYTWYYXWYYVUYWYYVWXYYYYYYXUYWUYYYYYXYYYUYYYXYVYYYYYYXYYUYNYYYWVYYYWYYYYTYYYXYYXHYYYZVVVYVUYYYYYYYWWYXYYYYYUYYXYYYYYYYYYWYYYYYYYYXYXXYYYXYYWYYYYWYWYYYYYYYYYYYYWYYYXYYWYWYXVXVWYYYYYWYVY[YYWYYYYYXYYYYYYYYYWYYWYYYVYYXYYXYY\YYYYUYVYYXYYYVYWYYYYYZXYYVYYYYWXYVYWWXYUWYYXVYYTVYXYYVWXYYYYYYYTYWUYYYYYXYYYVYYYXYVYYYYYYXYYUYNYYYWVYYYXWYYYSYYYXYYSXYYYYTQQYU\YY]YYVY^UYYYYYYYWYYWUYYYY[YYYXYYYYYZYYYYWVYYYVYYYYYYYRYWYYYYYYYYYYYYZYYQZYYUYWYWPVUUYYYYYYYWYUSYUVYYYYTYYYYYYYYYWYYSYYYXYYXXYXYY]YYYYYYZYVUYYYTYXYQUYYWYYYWTYYYRXY[YXVXYVWYYW[YYXVYQYYSVYYYYYYYT[YZVYYYVYVYYYXYYYUYVYYYYYYXYYTY[YYY\YYYYU[VYYWYYYVYYVSYYYUWYPYTXYYdYYUYPRYTYYYYYVYYRTYYYYUYYYSYYYYYWYYYYUQYYYSYY\YYYZSYVYYYYYYYYYYYYVYYTPYYTYSYVWVYTYYYYYYYTYUTYTSYYYYTYYYYYYYYYTYYTYYYXYYTUYVYY`YYYYSY]YXYYYYQYSYUUYYQOYYUUYYYOPY\YYVQYTUYYTWYYWUYWYYWUYYYYYYYWMYTXYYYVYJYYYXYYYSYTYYYYYYSYYVYVYYY\QYYYXXRYYXYYYWYYYXYYYZ[UYYTYYY[YYXYUSYZYYYYY[YYUVYYYYWYYYWYYYYYXYYYY]YYYY[YYWYYYY]YWYYYYYYYYYYYYYYYWXYYYYTYVU\[QYYYYYYYTYVWYVVYYYYVYYYYYYYYYTYYVYYY\YYUUYYYYXYYYYTYWYVYYYYVY[YTUYYYWYYQVYYY[WYWYU]^YYUYYWZYY\UYUYYVXZYYYYYYV_YTVYYYTYUYYYUYYYUYRYYYYYYWYYZYYYYYU[YYYZWUYYTYYYRYY\MYYY[XT\YOYYY^YYUYWXYXYYYYY_YYSVYYYYNYYY[YYYYYRYYYYdVYYY[YYYYYYY[YRYYYYYYYYYYYY\YYaSYYUYUYORU]SYYYYYYY[YYVYZUYYYYQYYYYYYYYYMYYWYYYUYYLSYWYY[YYYYSYUYTSYYYZYXYTRYYVSYYQVYYYX[YXYTXVYYWYYXaYY^TYVYYSSYYYYYYYY^YVSYYYXYTYYYWYYYZYRYYYYYYOYYTY\YYYQYYYYUPUYYSYYYYYYWZYYYXWYXYZWYYYYYXYYVY[YYYYYXYYZYYYYYYYYYWYYYYYZYYYYYYYYYXYYXYYYYYYZYYYYYYYYYYYYYYYWZYYZYXYY[ZWZYYYYYYYZYYXYV[YYYYYYYYYYYYYYZYYXYYYXYYXXY[YYYYYYYYYYYX[YYYXYYYXXYYXWYY[YYYYWYYWYXWYYVXYYYZYYWYYXYYXXYYYYYYYXZY[XYYY[YYYYYXYYYYY[YYYYYYZYYXYZYYYZXYYYWYXYYZYYYYYYVIYYYYVVUYUWYYZYYXYWWYXYYYYYUYYWYYYYYXYYYWYYYYYXYYYYXYYYYXYYWYYYYWYXYYYYYYYYYYYYTYYXXYYWYVYXWVUWYYYYYWYWY]XYWYYYYYXYYYYYYYYYVYYWYYYUYYYYYXYY`YYYYUYXYYXYYYVYUYXXYYYXYYWZYYYUXYWYWXUYUVYYXWYYUUYWYYVWXYYYYYYYSYWVYYYZYXYYYUYYYXYVYYYYYYXYYTYNYYYXVYYYWXZYYTYYYZYYWVYYYXXXVYZ[YY]YYWYXXYUYYYYYVYYZXYYYY[XYYWYYYYYWYYYYRVYYY\YYYYYYXYYZYYYYYYYYYYYYXYYWWYYYYTYXXYWYYYYYYXYZYZVYZUYYYYXYYYYYYYYYWYYVYYYSYYVTY_YYZYYYYXYVYX]YYYVYVYXXYY\WYYWQYYYVUY\YZXSYZXYYTWYYY[YWYYVTXYYYYYYWWYWUYYYVYWYYYSYYYZYYYYYYYYWYYUYXYYYX\YYYT\WYYUYYYYYYXXYYYYXZXYYXYYYYYYYZXYYYYYYYXYYYXYYYYYYYYYYYYYYZYYYYYXYYYZYYXYYYYYYYYYYYYYYYYYYY[YYYZYYYYYYZYYXXYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYZYY[YYYYYYYYYYYXYYYYXYZYXYYYXXYYYXYYYXZYYYYXYYXYYYYYYYYXYYYYXXYYYYYYYYYYZXYYYYYYYYYXYYYXYXYYYYYYZYYYYXYYYYYYYYYZYYYYYYYWYYUUYYYTUYVYUXYY]YYSYVRYTYYYYYTYYVSYYYYWYYYTYYYYYXYYYYWRYYYYYYXYYYZ]YWYYYYYYYYYYYYZYYUTYYVYWYWUVYSYYYYYYYUYWSYWSYYYYRYYYYYYYYYTYYTYYYTYYUPY]YYWYYYYXYZYU[YYYYYZYSTYYVXYYVQYYYUSY\YWUVYWTYYRYYYYWYWYYUUYYYYYYYW[YUZYYYWYUYYYVYYYVYUYYYYYYUYYPYVYYYVXYYYWWQYYSYYYYYYVIYYY[VTVYVXYYYYYWYXXYZYYYYYUYYVVYYYYTYYYXYYYYYXYYYYZXYYYVYYWYYYYVYXYYYYYYYYYYYYXYYTVYYWYUYXVXRVYYYYYXYVY\XYVXYYYYWYYYYYYYYYTYYWYYYWYYXYYXYY\YYYYTYZYWXYYYVYSYXVYYYYYYWXYYY]XYXYTXUYTVYYYVYYSYYUYYXVXYYYYYYZUYWUYYYYYWYYYVYYYUYUYYYYYYXYYVYQYYYVTYYYUZWYYUYYYYYYTXYYYUUVSYUYYY`YYYYWTYTYYYYYYYYUYYYYYTYYYUYYYYYXYYZYWTZYYUYYWYYYYWYXYYYYYYYYYYYYWYYWVYYSYTYWVYSWYYYYYYYWY\WYVUYYYYWYYYYYYYYYWYYWYYYVYYXUY\YY]YYYYXYZYXWYYYUYSYWVYYVTYYWSYYYXSYWYXSVYTWYYRXYYXYYXYY\TZYYYYYY\PYWTYYYWYTYYYSYYYTYWYYYYYYVYYTYTYYYWRYYYW]XYYXYYYYYYWHYYYZUUVYUVYYXYYXYWWYYYYYYYTYYXXYYYYXYYYVYYYYYWYYYYWXXYYVYYVYYYYVYWYYYYYYYYYYYYTYYXXYYYYVYXWWUWYYYYYXYVY\XYWYYYYYYYYYYYYYYYUYYWYYYWYYWYYXYYfYYYYUYUYXWYYYWYSYXXYYYWYYWYYYYWXYWYVWVYTWYYYVYYVVYVYYUXXYYYYYYXSYWVYYYYYWYYYVYYYWYVYYYYYYXYYUYNYYYWVYYYWYYYYTYYYXYYXUYYYVTYUYY]YY]YYUYWQYVYYYYYXYYSTYYYY[YYYSYYYYYVYYYYWUYYYVYYWYYYYVYWYYYYYYYYYYYYVYYUVYYVYTYWU]XWYYYYYYYZYVSY[XYYYYTYYYYYYYYYWYYUYYYXYYXPYXYY^YYYY[YZYUZYYYXYYYRYYYUXYYVTYYYTVYYYUYXYXSYYRYYY\\Y[YYWYZYYYYYYW\YVXYYYWYUYYYWYYYYYUYYYYYYWYYXY[YYYX\YYYZXTYY[YYYZYYYYYYYXYYYYZZYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYZYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYZYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYZYYYYYYZYYYYYYYYYYYYYYYZYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYZYYXYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYYYYYYYYYY[YYXXYYYUXTTYT[YYdYYQYPQYVYYYYYYYYURYYYYSYYYPYYYYY[YYYY\QYYYTYYZYYYZXYYYYYYYYYYYYYYVYYSTYYYYVYZL\]TYYYYYZYXYSPYXUYYYYRYYYYYYYYYSYYSYYYUYYXWY[YY_YYYYXYYYXYYYYYYRYSVYYRXYYXXYYYSOY\YPUYYZTYYT^YY_QYXYYVWZYYYYYYSZYZYYYYWYPYYYYYYYTYWYYYYYY^YYUYVYYYW_YYY_XSYYWYYYXYYSXYYYUXUVYYZYY]YYUY[QYXYYYYY[YYVTYYYYTYYYWYYYYYYYYYYYUYYYYYYYYYYYXYYYYYYYYYYYYYYYYYUSYYVYXYXUVWVYYYYYYYWYXUYVSYYYYUYYYYYYYYYUYYWYYYXYYZTYYYYYYYYYXY\YUYYYYYYVYVVYYWXYYXVYYYWUYYYVVWYUUYYWXYYWXYTYYZVZYYYYYYZYYXUYYYXYVYYYWYYYTYVYYYYYYWYYXY[YYYWWYYYX\VYYWYYYWYYWSYYYUYWUYYWYYZYYXYVVYXYYYYYXYYXXYYYYWYYYVYYYYYXYYYYXXXYYVYYWYYYYXYXYYYYYYYYYYYYRYYZWYYVYYYXXWYWYYYYYYYXYXVYXVYYYYXYYYYYYYYYXYYWYYYYYYXWYYYYbYYYYWYVYWXYYYWYUYXWYYVWYYWXYYYUVYXYWXWYUWYYXXYYXZYVYYYYZYYYYYYUWYY[YYYXYWYYYVYYYXYVYYYYYYXYYXYVYYYYWYYYXUXYYWYYYZYYRXYYYWXTRYT[YYZYYUYWPYWYYYYYYYYOQYYYYNYYYXYYYYYYYYYY`XXYYXYY[YYYY^YWYYYYYYYYYYYYVYYVQYYXYZYZRXZQYYYYYXYWYTUY]SYYYYRYYYYYYYYYSYYTYYYYYY[WYVYY\YYYYXYdYTUYYYWYVYRUYYVZYYVVYYYZUY[YQXYYZWYYV_YYY^YVYY^[YYYYYYY]YYSWYYYVYTYYYYYYYTYYYYYYYYWYYWYYYYYZVYYY\ZOYYZYYYXYYVJYYYXTSUYWUYY[YYXYUTY[YYYYYUYYYXYYYYWYYYVYYYYYYYYYYVYXYYVYYTYYYYVYXYYYYYYYYYYYYRYYWVYYYYUYWYVUWYYYYYXYVYYXYRYYYYYXYYYYYYYYYVYYVYYYVYYYYYXYYeYYYYVYUYYYYYYWYVYYYYYXUYYYYYYYTWYSYVWWYRVYYYWYYUVYRYYUVXYYYYYYXRYYTYYY[YXYYYUYYYVYYYYYYYYYYYVYNYYYXVYYYVZXYYUYYYYYYXXYYYXXYYYYXYYYYYXYYXYYYYYYYYYYYXYYYYZYYYXYYYYYYYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYZYZYYYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYXYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYXXYYYYYYXYYYYYYYYYXYYYYYYYYYZYYXYYYYYYYYYYYYYXYYYYYYYYZYYYYYYYYYXYYYYYYYYYYYYXYY[YYYY\XT\YUXYY[YYVYUVY[YYYYY]YYVWYYYYUYYYYYYYYYZYYYY\XYYY[YYYYYYY_YVYYYYYYYYYYYY^YYXVYYYYZYWUW^VYYYYYYYZYYUYUXYYYYWYYYYYYYYYTYYWYYYVYYVWY[YYXYYYYXYXYXXYYY\YXYUXYYZXYYWYYYYXYYXYVW\YXVYYZ]YY[UYWYYWWYYYYYYYW_YXVYYYYYWYYYXYYYWYXYYYYYYYYYWYYYYYV]YYY[UWYYXYYYSYYSVYYY[\SVYaWYYaYYWYMdYLYYYYYfYYQXYYYYSXYYUYYYYYQYYXYbPYYYRYYVYYYYcYSYYYYYYYYYYYYSYY^VYYQYZYUQ_cWYYYYYWYcYVXYSVYYYYXYYYYYYYYYSYYTYYYeYYUSYRYY`YYYYHYVYVTYYY]YQYUXYYWWYYTVYYYVVYWYRb\YRVYYQ]YYLRYUYYVXYYYYYYYVUYXWYYYQYTYYY`YYYTYWYYYYYYPYYZY[YYYPNYYYePVYYSYYYYYYYYYYYYYXYYXZYYXYYZYYYYYYYYYYXYYYZYYYYZYYYYYYYYYXYYYYXYYYYYYYYYYYZYYXYYYYYYYYYYYYYYYYYYYYYYYZZYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYXYXYYZYYYYXYYYZYYYYXYYYXXYYZYYYXXYYYYZYZYYXYYYZYYYYYYYYYYYYZXYYYYYYYXYYXYYYYYYYYYYYYYYZYXYYYYYYYYYXYXYYYYYYYYYYZYYYYYYXYYTWYYYVXUXYVWYY^YYVYXTYWYYYYYZYYUUYYYYUYYYWYYYYYXYYYYZTYYYYYYYYYYYXYXYYYYYYYYYYYYXYYWTYYWYYYWUWXVYYYYYYYXYWUYVXYYYYXYYYYYYYYYVYYUYYYXYY[VYZYYZYYYYXYZYUXYYYYYZYSWYYZVYYWWYYYUZYUYWXYYVVYYXZYYYWYSYYWVYYYYYYYXYYXSYYYWYUYYYXYYYUYTYYYYYYXYYXYXYYYVZYYYYVUYYYYYYWYYUJYYYY]ZSYTVYYYYYXYUTYWYYYYYUYYWYYYYYTYYYUYYYYYWYYYYWWXYYVYYUYYYYZYWYYYYYYYYYYYYTYYXVYYVYXYXUTSVYYYYYXYVYYYYXWYYYYUYYYYYYYYYSYYYYYYWYYWVYWYY]YYYYUY^YYYYYYTYVYTWYYWUYYVYYYYSXYZY]WVYUVYYYWYYSWYWYYXUXYYYYYY\PYSSYYYWYUYYYTYYYQYUYYYYYYVYYVYJYYY[RYYYXRWYYUYYYZYYXTYYYXUWSYXVYY[YYWYVUYXYYYYYTYYXVYYYYVYYYWYYYYYYYYYYVWYYYZYYVYYYYTYXYYYYYYYYYYYYVYYWUYYYYTYWUVVWYYYYYYYWYVWYUUYYYYWYYYYYYYYYVYYTYYYVYYWUYYYY\YYYYWYWYWXYYYWYVYVXYYVWYYYWYYYTUYXYYUXYUVYYWYYYVWYVYYSUYYYYYYYWVYYXYYYYYVYYYVYYYWYXYYYYYYXYYVYXYYYXVYYYVWWYYWYYYYYYYWYYYXZUWYWZYY[YYXYVYYWYYYYY[YYXWYYYYXYYYWYYYYYXYYYY\UYYYYYYYYYYY[YWYYYYYYYYYYYYYYYZVYYXYYYXWY[YYYYYYYYWYYXYYVYYYYXYYYYYYYYYYYYXYYY[YYZWYYYYXYYYYVYZYXXYYYZYZYWXYYWYYYWWYYYVXYWYWXZYVXYYVXYYYYYYYYXXYYYYYYYX\YZZYYYXYUYYY[YYYXYXYYYYYYWYYXYZYYYWVYYYZZXYYWYYYXYYVIYYY\WUXYUWYYWYYWYWWYWYYYYYUYYXXYYYYWYYYWYYYYYXYYYYYXYYYXYYWYYYYZYYYYYYYYYYYYYYXYYYVYYVYWYZVVTWYYYYYWYVY]XYXXYYYYXYYYYYYYYYWYYXYYYVYYZXYWYYYYYYYWYUYYYYYYWYXYZYYY[WYYVYYYYXXYXYVXWYXVYYWXYYUUYWYYVXXYYYYYYYUYXWYYYYYYYYYWYYYWYVYYYYYYXYYVYNYYYWVYYYWTZYYSYYYYYYXXYYYYYYYYZYYYZYYYY[WYYYYYYYYYYZXYYYYZYYYYYYYYYZYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYZYYYYYYYZYXXYYYYYYYYXYZXYYZYYYYXYYYYYYYYYYYYZYYYYYY[XYZYYYYYYYYY[YYZYYYXYWYXYYYYYYYYYYYYXYYZYYWYYXYYYYZYYYZYWYYZXYYYYYYYZYYYXYYYYYYYYYXYYYXYXYYYYYYYYYYYZYYY[XYYYW[ZYYYYYYVYYUEYYYWWVVYVVYYZYYUYVXYTYYYYYSYYVXYYYYZYYYTYYYYYXYYYYWQYYYTYYSYYYYWYWYYYYYYYYYYYY^YYWZYY[YZYWYTUVYYYYYXYWYZWYRYYYYYYYYYYYYYYYSYYWYYYUYYURYXYYYYYYYTYVYU[YYYWYZYWVYYWVYYUPYYYUYYWYSUTYQSYYVTYYWQYUYYWUXYYYYYYWXYVUYYYVYTYYYUYYYWYRYYYYYYTYYRYPYYYS\YYYTXUYYQYYYYYYYYYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXXYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZYYYYYYZYYSJYYYXVWVYWWYYWYYXYUUYVYYYYYUYYWXYYYYWYYYUYYYYYZYYYYWWXYYUYYWYYYYZYWYYYYYYYYYYYYVYYYUYYWYVYXXXTWYYYYYWYWY[XY\WYYYYWYYYYYYYYYSYYWYYYVYYYWYXYY]YYYYWYWYYXYYYXYWYY[YY\VYYWWYYYUWYXYUVXYVVYYWZYYVTYYYYTVXYYYYYYZSYWTYYYYYZYYYWYYYWYWYYYYYY[YYVYPYYY[VYYYWZYYYTYYYYYYXWYYYXWWUYXWYY[YYXYWVY[YYYYYVYYYXYYYYWYYYXYYYYYYYYYYZXYYYWYYWYYYYZYWYYYYYYYYYYYYYYYXYYYXYYYXWXWXYYYYYYYXYYWYUXYYYYWYYYYYYYYYXYYWYYYXYYWXYZYY[YYYYWYXYVWYYYWYXYTXYYXVYYXXYYYVYYUYZVYYVXYYWZYYXUYVYYUWYYYYYYYYZYZWYYYYYYYYYWYYYWYXYYYYYYXYYXYXYYYZWYYYV[XYYWYYYYYYXYYYYYWYWYXWYYYYYYYXXYZYYYYYXYYXXYYYYYYYYXYYYYYYYYYYXZYYYYYYYYYYXXYYYYYYYYYYYYYY[YYXZYYYYXYXXXWYYYYYYYYXYYXYXYYYYYZYYYYYYYYYXYYWYYYXYYXYYZYYXYYYYWYXYXYYYYWYYYWZYYWWYYXXYYYX[YWYXWYYWYYYXYYYWWYWYYWXYYYYYYYYYYZXYYYYYYYYYXYYYWYXYYYYYYXYYXYYYYYZZYYYXYXYYXYYYWYYTVYYYWYXRYT^YYdYYQYWNYWYYYYYWYYTSYYYYOYYYRYYYYYVYYYYVNYYYXYYVYYYZYYWYYYYYYYYYYYYWYYRPYYRYUYZPSZTYYYYYYYVYXQYURYYYYOYYYYYYYYYTYYUYYYSYYWQY^YYdYYYYTY_YXVYYYXYQYPUYYVYYYYTYYYPSY^YWUTYWSYYPXYYZSYRYYUPZYYYYYYVWYPTYYYUYMYYYTYYYSYUYYYYYYVYYTYRYYYXZYYY[TVYYSYYYZYYUVYYYUXXTYVZYY_YYWYYUYXYYYYYWYYWVYYYYUYYYWYYYYYXYYYYXVYYYXYYXYYYZWYWYYYYYYYYYYYYUYYWTYYXYTYVTXWTYYYYYZYWYVVYVTYYYYWYYYYYYYYYTYYWYYYWYYWUYYYYaYYYYXYZYVWYYYUYUYSWYYWUYYWXYYYUWYYYVVVYUVYYWYYYXYYVYYXUZYYYYYY\WYXXYYYXYUYYYWYYYTYXYYYYYYWYYXYYYYY[WYYYV[SYYXYYYYYYWVYYYXZWVYXYYY\YYYYVXYXYYYYYYYYXYYYYYWYYYXYYYYYXYYYYZXYYYXYYXYYYYYYXYYYYYYYYYYYYVYYYWYYXYXYXVXXYYYYYYYYXYYXYXXYYYYXYYYYYYYYYYYYXYYYYYYZXYXYY]YYYYXYXYYXYYYXYXYVXYYXXYYXYYYYWXYWYYYXYWXYYXYYYWYYXYYXYYYYYYYYYYYXZYYYXYWYYYXYYYXYYYYYYYYXYYXYXYYYYWYYYYXYYYWYYYZYYX[YYYYUXWYWVYYYYYUYWZY^YYYYYXYYXXYYYYZYYYZYYYYYXYYYYVZYYYZYYYYYYYXYYYYYYYYYYYYYY[YYW\YY[YWYYVXXXYYYYYYYZYWVYX\YYYY[YYYYYYYYYUYYUYYYZYYWYYXYYZYYYYYYYYVYYYYWY[YT^YY[XYYY]YYYY\YWY]Z\YYUYYZYYY^UYVYYWYYYYYYYYUYYYZYYYZY[YYYXYYYXY[YYYYYYXYY\YXYYYSZYYYYXXYYZYYYYYYXYYYYXXZXYZYYYYYYXYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYXYYYYXYXYYYYYYYYYYYYYYYYYYYYYXYXYXWZYYYYYYYZYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZYY[YYYYXYZYYYYYYXYWYXYYYYYYYYXYYYXXYYYYYXYYYYYYYYYXZYXYYXXYYYYYYYXYYXXYYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYYZYYVZYYYWXVVYSZYYYYYXYUVYYYYYYYYYYVXYYYYVYYYVYYYYYXYYYY[XYYYXYYYYYYYWYYYYYYYYYYYYYYXYYUUYYYYRYZX[VUYYYYYYYUYXVYWUYYYYWYYYYYYYYYVYYWYYY[YYWWYUYYYYYYYVYXYYXYYYSYUYZVYYTWYYUXYYYWUYXYT\ZYVVYYWVYYWSYVYYXVZYYYYYYYYYXWYYYVYUYYYWYYYUYUYYYYYYXYYWYZYYYTUYYYVWVYYVYYYWYYZKYYYYXWVYVVYYWYYWYXVYXYYYYYWYYWYYYYYXYYYVYYYYYYYYXYYVYYYYYYXYYYXYYWYYYYYYYYYYYYWYYXYYYXYXYZXXSVYYYYYWYXYZYYXYYYYYWYYYYYYYYYUYYWYYYXYYWZYVYY\YYYYWYWYWYYYYXYUYZXYYYXYYXXYYYUWYXYWYYYWXYYUYYYTWYWYYVYYYYYYYYYUYYVYYYYYVYYYWYYYXYWYYYYYYYYYUYOYYYYTYYYWYZYYWYYYWYYRXYYYSYZSYVWYY\YYUYYQYXYYYYY[YYXTYYYYSYYYRYYYYY[YYYYYVYYYYYYYYYYYYYZYYYYYYYYYYYY\YYUTYYTYYYZUUYYYYYYYYYVYXVYVUYYYYSYYYYYYYYYWYYUYYYVYYYSYYYYYYYYYYY]YTXYYYVYVYTUYYWVYYXWYYYRVYXYZUYYVWYYVXYYVTYWYYWWZYYYYYY[[YWSYYYWYUYYYUYYYTYUYYYYYYWYYWY[YYYYYYYYX[TYYZYYYZYYXXYYYYXYYYYXYYYYYYYXXYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYZYYYYYYY[YYYYYYYYYYYYYYZYYXXYYXYYYYYXYYYYYYYYYYYXXYYXYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYWYYYYYYYYYYYYYXYYYYXYYYYYYYXYYYYXYXYYYZYXYYYXZYYXXYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYWYYYYYYYYXYYYXYYVHYYYYUWVYUUYYZYYXYVWYYYYYYYUYYXYYYYYYYYYWYYYYYXYYYYWXYYYWYYVYYYYVYVYYYYYYYYYYYYWYYYXYYXYVYXVWUVYYYYYXYWY[YYWXYYYYXYYYYYYYYYWYYWYYYVYYXYYXYYaYYYYVYWYYXYYYWYVYXYYYYXYYWYYYYWXYWYXWWYUVYYXWYYVVYWYYVWXYYYYYYYSYVUYYYXYXYYYWYYYXYWYYYYYYWYYUYMYYYWVYYYWXYYYTYYYYYYYUYYYXZXXYUWYY]YYXYVVYWYYYYYXYYWYYYYYVYYYYYYYYYXYYYYYXYYYYYYZYYYYZYXYYYYYYYYYYYYYYYZVYYYYVYXVY[XYYYYYYYVYWWYZXYYYYXYYYYYYYYYXYYWYYYZYYVXYZYYWYYYYYYZYXYYYYYYZYUWYYXXYYVWYYYXXYZYXXYYXXYYW[YYXWYZYYWXYYYYYYYYYYXWYYYWYXYYYYYYYYYYYYYYYYXYYVYXYYYYWYYYWZXYYYYYYYYYXVYYYZVZZYWXYYWYYWYYWYXYYYYYWYYXWYYYYVYYYXYYYYYYYYYYXXYYYZYYYYYYXYYXYYYYYYYYYYYY[YYXXYYYYVYVVWYWYYYYYYYYYXWYWWYYYYXYYYYYYYYYVYYWYYYWYYWVYZYYWYYYYWYYYVYYYYXYZYWWYYYXYYWXYYYYXYXYWVXYWWYYXYYY[YYXYYWWXYYYYYYXYYYYYYYYYZYYYWYYYXYXYYYYYYXYYWYXYYYVXYYYWXVYYXYYYXYYVYYYYXVZVYZYYY[YYWYVWYVYYYYYWYYYXYYYYYYYYWYYYYYXYYYYXUYYYXYYXYYYYXYXYYYYYYYYYYYY[YYXXYYVYYYXXYXXYYYYYYYXYYXYWWYYYYUYYYYYYYYYYYYWYYYWYYWUY[YYYYYYYYYYYXXYYYVYVYXUYYWXYYYUYYYWVY\YWXVYXVYYVXYYVXYXYYVXYYYYYYYXZYWYYYYXYVYYYWYYYWYWYYYYYYVYYSYXYYYXVYYYWYVYYXYYYYYYXGYYYVUROYT\YYZYYTYWXYWYYYYYWYYVXYYYYTYYYUYYYYYXYYYYYZYYYTYYYYYYYVY\YYYYYYYYYYYYRYYVVYYSYRY[TTVWYYYYYXYWY\UYYWYYYYYYYYYYYYYYZYYVYYYTYY^YYXYYaYYYYVYVYYWYYYTYSY\VYYWTYYUXYYYUVYZYUZSYTUYYVXYYRUYXYYRWXYYYYYYYNYX[YYYYYWYYYVYYYVYTYYYYYYVYYQYNYYYW[YYYVUYYYSYYYXYYXXYYYXZYXYYXYYYYYXYYXYWYYYYYYYYXXYYYYYYYYXYYYYYYYYYYZWYYYYYYXYYYYZYYYYYYYYYYYYYY[YYXZYYXYZYYYXZYYYYYYYYYYXXYYYYYYYXYYYYYYYYYYYYXYYYYYYXXYYYYWYYYYXYZYXZYYYYYZYYXYYVXYYYWYYYXYYYYWXXYXXYYXXYYZXYYYYYYYYYYYYYY[YXYYYYXYXYYYYYYYYYXYYYYYYXYYXYZYYYY[YYYYYXYYXYYYXYYUMYYYXWUUYWYYYXYYVYUWYXYYYYYWYYVXYYYYVYYYWYYYYYXYYYYXVXYYVYYWYYYXVYVYYYYYYYYYYYYUYYYUYYWYVYWSXSVYYYYYXYVY\WYXXYYYYXYYYYYYYYYUYYVYYYVYYWVYZYY^YYYYVYVYXXYYYWYUYWWYYWWYYWXYYYVWYYYWXRYTUYYZXYYUUYWYYVVYYYYYYYYSYWXYYYYYUYYYVYYYUYVYYYYYYXYYVYRYYYWVYYYVVXYYVYYYYYYWXYYYSVSPYQWYYbYY[YQUYWYYYYYZYYTSYYYYRYYYWYYYYYWYYYY]TYYYUYYXYYYZXYUYYYYYYYYYYYYVYY^SYYWYUYXRWWSYYYYYZYUYXXYTSYYYYSYYYYYYYYYSYYWYYYTYYTUYZYY\YYYYXY]YSVYYYVYWYTWYYUWYYWWYYYRTY[YWUXYYYYYY^YYWOYYYYVVYYYYYYY[ZYWUYYYWYUYYYTYYYQYWYYYYYYWYYVYWYYYWXYYYWXUYYUYYYXYYXXYYYYZYWYYYYYZYYYYXYYYYYYYYYYYYXYYYYYYYYXYYYYYZYYYYZYYYYWYYXYYYYZYYYYYYYYYYYYYYXYYZYYYXYYYYXZZYYYYYYYYXYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYY[YYYYXYXYYXYYYXYXYYXYYXYYYXYYYYYXYZYYYYYXXYYYYYYXWYXYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYXYYYYYYYYYZYZYYYYXYYYXYXYYYYYYYYYXYYYYYXZWYYWYYYYYYYXXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYXYYYXYYXYYYYXYYYYYYYYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYYYXYYZYYYYYYYYYYYYYYZYYYYYYYYYYYYXYYYYYYYXYXYYXYYYWYYYXZYYYXYYYYYYYY[YXYYXXYXXYYXYYYZXYXYYYYYYYYYYYYXYYXYYYYYXYYYXYYYXYYYYYYYYYYYXYXYYYXYYYYYYYYYYYYYXYYYZYYYYYXXYZXYYZYYYYWXYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYXYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYY[ZYYYYYYYYYXYYXYYYYYXYYYYYYYYYYYYXYYYZYYYXYZYYYYYYYXYXYYXYYYYYXYWYYYXXYYYYYYYXYYXYYYXYYYYYXZYYXYYXYYXYYYYYYYYXZYYWYYYZYXYYYYYYYXYZYYYYYYXYYYYYYYYXXYYYZXYYYYYYYYYYYZYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTHYYYXUVTYVTYY`YYXYWUYZYYYYYUYYXXYYYYWYYYTYYYYYXYYZYUWZYYUYYVYYYYVYWYYYYYYYYYYYYQYYVVYYWYUYXVTSWYYYYYYYWYYXYWYYYYYXYYYYYYYYYUYYWYYYSYYXWYZYYdYYYYVYSYXWYYYSYRYXXYYZTYYWYYYYVXYUYXWSYTUYYWWYYWUYWYYXUXYYYYYYYPYXSYYYXYVYYYUYYYVYUYYYYYYXYYUYLYYYXTYYYWVYYYVYYYXYYUWYYYSVTUYWZYYbYYWYVPYWYYYYYXYYUUYYYYVYYYTYYYYYWYYYYUTYYYXYYYYYYZUYVYYYYYYYYYYYYUYYWPYYVYUYWUYUUYYYYYYYWYYSYSSYYYYSYYYYYYYYYTYYTYYYVYYVUYYYYcYYYYUYYYUUYYYVYRYQTYYWVYYWVYYYSSYXYTTVYTTYYSXYYYUYVYYYRZYYYYYY\SYWUYYYVYTYYYSYYYVYWYYYYYYVYYVYYYYYXWYYYV[UYYVYYYYYYYYYYYXYYYYYYYYYYYYYZXYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYZYYYYYYYYYZYYYYYYYYZYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYZYYYYXYYYZYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYZYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYZXYYYYZZYYYYYYXYYWTYYYTYVQYR\YY^YYUYURYUYYYYYYYYVVYYYYUZYYTYYYYYWYYYY[SYYYXYYZYYYY[YUYYYYYYYYYYYYWYYXTYYTYUYWSW^UYYYYYZYUYYUYWVYYYYSYYYYYYYYYTYYUYYYUYYVQY]YY^YYYYXY\YWYYYYXYUYRWYYSXYYVVYYYTTY\YVVVYXUYYT[YYZTYWYYVVYYYYYYYX\YUYYYYVYQYYYWYYYXYWYYYYYYWYYSYVYYYY[YYYZZVYYYYYYYYYYYYYYYWVYYZXYY\YYXYWWY[YYYYYXYYWXYYYYWYYYYYYYYYYYYYYZXYYY[YYVYYYZYYXYYYYYYYYYYYYYYYWXYYZYXYXXWXXYYYYYYYYYYVYVXYYYYXYYYYYYYYYWYYWYYYYYYXXYZYY\YYYYYYYYXXYYYYYXYUYYY[WYYYYYYYXYYYYXXYYZWYYXYYY[WYVYYWXYYYYYYYWYYXVYYYYYXYYYYYYYWYYYYYYYYXYYXYXYYYWZYYYYYWYYXYYYYYYVXYYYXWYXYW[YYZYYXYYWYXYYYYYYYYYWYYYYYYYYZYYYYYYYYYYZWYYYXYYXYYYYXYXYYYYYYYYYYYYYYYYYYYXYYYXXYZWYYYYYYYXYYXYWXYYYYWYYYYYYYYYXYYXYYYYYYZWYZYYZYYYYXYZYUYYYYZYXYUXYYWYYYXXYYYXXYYYXXXYYXYYZYYYYZYWYYWXYYYYYYYWZYYZYYYYYZYYYXYYYYYXYYYYYYXYYWYZYYYWYYYYXZXYYXYYYXYYVFYYYYUTUYTVYYZYYXYVWYXYYYYYVYYXXYYYYXYYYWYYYYYWYYYYXXYYYWYYVYYYYVYVYYYYYYYYYYYYUYYXWYYVYVYYVXUWYYYYYXYVY\YYWXYYYYXYYYYYYYYYVYYXYYYUYYYYYWYY^YYYYTYUYYWYYYUYWYYXYYXWYYVXYYYWXYVYWWWYUVYYXWYYUTYVYYUVXYYYYYYYSYWTYYYYYWYYYVYYYWYUYYYYYYWYYUYMYYYWVYYYVUYYYSYYYVYYUEYYY\XW^YVUYY\YYSYRXYVYYYYYSYYTXYYYYYYYYUYYYYYUYYXYTSYYYUYYQYYYXVYVYYYYYYYYYYYY]YYW\YYZY[YUWWVUYYYYYWYUY[VYP\YYYYWYYYYYYYYYTYYWYYYSYYTQYYYY\YYYYTYVYU[YYYWYVYVWYYWXYYUOYYYXXYXYUTWYXSYYYUYY[OYVYYZTXYYYYYYXVYTRYYYVYVYYYUYYYTYRYYYYYYTYYPYPYYYPZYYYTZUYYOYYY[YYVYYYYVUWUYTZYYXYYWYWTYXYYYYYXYYXWYYYYYYYYVYYYYYYYYYYZVYYYWYYWYYYZYYZYYYYYYYYYYYYVYYXWYYWYXYXWZZWYYYYYYYZYXVYVWYYYYWYYYYYYYYYVYYUYYYZYYWWYYYYYYYYYWYXYVYYYYVYWYUVYYUVYYWXYYYTVYYYV\XYWVYYXZYYYVYUYYRYYYYYYYYWZYYXYYYXYVYYYTYYYVYXYYYYYYYYYWYZYYYWTYYYYYWYYYYYYXYYXWYYYYWWWYX\YY]YYVY[UYYYYYYYUYYYVYYYYZYYYXYYYYYXYYYYTWYYY\YY[YYYYZYYYYYYYYYYYYYYZYYVXYYZYVYYUVUVYYYYYYYXYXUYZTYYYYVYYYYYYYYYUYYTYYYWYYWTY\YYYYYYYZYVYUYYYYVYWYVXYYWYYYZTYYYVUY\YXVXYWWYYWYYYYVYWYYUXYYYYYYYUYYZ[YYYWYXYYYVYYYUYXYYYYYYWYYUYVYYYVVYYYV[WYYWYYYVYYURYYYVVYXYWXYY]YYQYVQYRYYYYYTYYWVYYYYRYYYRYYYYYXYYYYWSYYY[YYTYYYYYYXYYYYYYYYYYYYbYYQXYYWYWYUYSUUYYYYYXYSYUUYSWYYYYSYYYYYYYYYRYYTYYYQYYSMY\YYVYYYYTYWYSZYYYVY\YOUYY[SYYVPYYYSTYUYYSWYVTYYUUYY[SYTYYRSYYYYYYYUXYVQYYYUYSYYYTYYYPYPYYYYYYSYYPYXYYYT[YYYTYSYYTYYYZYYWXYYYXZVTYVYYY[YYWYUXYVYYYYY\YYTVYYYYVYYYTYYYYYVYYYY_VYYYXYYWYYYY[YYYYYYYYYYYYYYUYYVUYYUYXYXV\[XYYYYYYYXYTUYVWYYYYVYYYYYYYYYVYYVYYY\YYXUYUYYWYYYYUYYYVYYYYVYZYRYYYSVYYUWYYYTTYWYS]\YYWYYUYYYWVYWYYU\ZYYYYYYX^YXUYYYVYUYYYYYYYVYWYYYYYYWYYYY[YYYUWYYY^VTYYZYYYWYYVYYYYVXTWYWXYY\YYYYZUYXYYYYYYYYWXYYYYWYYYWYYYYYYYYYYZXYYYXYYYYYYYZYXYYYYYYYYYYYYVYYXXYYWYXYXXYXVYYYYYYYYYXWYWWYYYYWYYYYYYYYYXYYWYYYZYYZWYXYY[YYYYXY[YUYYYYWYWYVXYYWWYYXWYYYWWYVYWXXYXYYYXYYYW[YUYYXXYYYYYYYY[YYVYYYXYXYYYXYYYUYYYYYYYYYYYZYYYYYYXYYYYWWYYYYYYYYYYWYYYXXXXYZZYYYYYYY[VYYYYYYYXYYVXYYYYXYYYXYYYYYXYYYYWXYYY[YYWYYYYWYXYYYYYYYYYYYYXYYWXYYXYVYYWXWZYYYYYYYYYXWYYYYYYYXYYYYYYYYYXYYXYYYXYYZVYXYYYYYYYXYYYYXYYYYYYYUZYYXVYYZXYYYXYYXYWVXYYXYYXYYYZ[YZYYYYYYYYYYYZ[YYVYYYXYXYYYYYYYXYXYYYYYYXYYXYXYYYY[YYYYWXYYZYYYXYYWSYYYX\Y[YYYYYYYYTYVWYVYYYYYYYYWXYYYYYYYYWYYYYYWYYXYVVXYYYYYTYYYXZYXYYYYYYYYYYYY^YYX\YYYY[YWYVXVYYYYYXYXYXWYUZYYYYXYYYYYYYYYVYYZYYYUYYVSYZYYWYYYYWYWYV\YYYYY[YWXYYWVYYWSYYYZXYWYWVWYWVYYYXYYYWYXYY\UXYYYYYYXYYYVYYYWYXYYYWYYYWYVYYYYYYVYYSYZYYYUZYYYTZWYYUYYYWYYXWYYYXWXWYXYYY\YYXYWYYXYYYYYYYYXXYYYYXYYYXYYYYYYYYYYYXYYYXYYXYYYYYYXYYYYYYYYYYYYWYYYYYYWYWYXWZ[YYYYYYYYXYXXYYWYYYYWYYYYYYYYYWYYVYYYXYYXWYYYY]YYYYWYVYXXYYYXYVYXXYYXWYYXYYYYWXYZYXYWYXXYYXXYYXUYWYYUXZYYYYYYXXYXXYYYXYYYYYVYYYXYVYYYYYYXYYYYYYYYWYYYYXXXYYYYYYWYYROYYYT[WTYTZYYbYYUYTRYTYYYYYWYYUTYYYYRXYYSYYYYYVYYYYWWYYYSYYVYYYZXYXYYYYYYYYYYYYOYYYRYYVYUY[VTXVYYYYY[YWYUUYZSYYYYTYYYYYYYYYTYYXYYYXYYZUYYYYkYYYYYYXYVWYYYUYSYYVYYWTYYXWYYYQRY\YVWTYXWYYV[YYWTYSYYVTZYYYYYYWRYWUYYYXYSYYYUYYYTYXYYYYYYZYYUYRYYYZTYYYWOTYYVYYYWYYTGYYYXWXXYVWYYZYYUYUXYVYYYYYTYYWYYYYYZYYYVYYYYYYYYYYXUYYYUYYTYYYYXYXYYYYYYYYYYYY\YYV\YYXYYYXZVVUYYYYYWYUY[YYUZYYYYYYYYYYYYYYTYYWYYYUYYVUYYYY[YYYYTYWYWZYYYXYVYXXYYYWYYWVYYYVYYUYWUWYSUYYXVYYTUYXYYVUXYYYYYYXXYXUYYYXYVYYYUYYYWYTYYYYYYWYYTYPYYYUZYYYVWWYYSYYYXYYYYYYYXWXZYYZYYYYYZYYXYYYYYYYXYYXYYYYYYYYYXYYYYYYYYYYXYYYYYYYWYYYYYYYYYYYYYYYYYYYXYYWYYYXYWYZZYXXYYYYYYYYY[YYWZYYYYZYYYYYYYYYXYYZYYYYYYXWYXYY\YYYYXYYYYYYYYWYXYXZYYYVYYXYYYYY[YVYYXXYYYYYXYYYY[YVYYYXYYYYYYYZXYXTYYYYYYYYYXYYYWYYYYYYYYXYYXYXYYYZZYYYXWYYYYYYYWYYUOYYYWYTTYUXYY^YYWYTWYYYYYYYYYYUVYYYYTYYYSYYYYYWYYYYWXXYYXYYUYYYYYYVYYYYYYYYYYYYTYYYUYYWYVYWSVVVYYYYYXYVYXXYUWYYYYVYYYYYYYYYVYYWYYYVYYVWYWYY^YYYYUYVYXUYYYXYUYUXYYWWYYVWYYYTXYTYWWVYVVYYWWYYXVYSYYTUXYYYYYYZSYWRYYYYYVYYYUYYYVYXYYYYYYWYYUYOYYYWTYYYWWWYYWYYYYYYWUYYYWXWWYYWYY^YYYY[UYXYYYYYXYYVXYYYYVYYYWYYYYYXYYYYXVYYYWYYWYYYYYYXYYYYYYYYYYYYUYYZWYYWYWYXVVVVYYYYYYYXYXXYUVYYYYWYYYYYYYYYUYYXYYYZYYWUYWYYaYYYYWYWYXXYYYVYWYUZYYYUYYXWYYYWXYYYXYUYXWYYWYYYYXYUYYXVZYYYYYYXUYVTYYYXYXYYYWYYYVYWYYYYYYXYYZYWYYYYYYYYYUYYYYYYYYYYQSYYYVWUTYWZYYZYYVYWPYVYYYYYXYYVTYYYYUYYYUYYYYYXYYYYYRYYYWYYWYYYY[YXYYYYYYYYYYYYVYYWVYYWYTYXSYVUYYYYYXYWYZVYYWYYYYSYYYYYYYYYWYYXYYYVYY[TYZYY\YYYYYY^YXYYYYYYVYVXYYYYYYYUYYYYVYXYXSVYXWYYVXYY\[YUYY]UYYYYYYYZVYUUYYYWYTYYYVYYYUYWYYYYYYXYYWYTYYYZ[YYYZ\WYYXYYYVYYTXYYYUW[RYV[YY\YYVYTSYUYYYYYYYYWWYYYYTYYYSYYYYYWYYYYYTYYYYYYVYYYZYYXYYYYYYYYYYYYZYYYWYYVYYYWV[[VYYYYYYYZYWUYYTYYYYSYYYYYYYYYWYYVYYYUYYVUY\YY\YYYYZYZYXXYYYWYZYVYYYQWYYXVYYYUTY[YYVZYXVYYS[YYXTYYYYVVZYYYYYYVXYVWYYYXYSYYYTYYYSYWYYYYYYWYYTYWYYY[\YYYYVSYYZYYYWYYWVYYYWV[XYV[YYZYYVYYTYUYYYYYXYYWUYYYYXYYYXYYYYYXYYZYXUXYY\YYYYYYYZYXYYYYYYYYYYYY[YYWVYYVYXYXWXYVYYYYYYYXYXVYZTYYYYTYYYYYYYYYXYYXYYYVYYYUY]YYYYYYYYY\YWYYYYWYYYUUYYVYYYWTYYYXVY\YVVXYZVYYTXYYX]YYYYWVYYYYYYYZYYYXYYYXYXYYYVYYYVYVYYYYYYWYYUYWYYYYYYYYXXSYYXYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYZYYYYYYYXYYZYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYXYYYXYZYYYYYYVYYVVYYYVY[TYVXYYZYYVYVXYTYYYYYTYYWWYYYYZYYYSYYYYYYYYYYZRYYYXYYXYYYY]YXYYYYYYYYYYYYaYYXWYYZYZYYXWZVYYYYYYYYYWXYVUYYYYUYYYYYYYYYVYYVYYYWYYTRY\YYWYYYYYYZYV\YYYXY]YWTYYWYYYWOYYYUVY\YXXWYXVYYTZYYZVYYYYTXXYYYYYYX]YWYYYYXYXYYYWYYYYYWYYYYYYTYYSYYYYYW[YYYVXVYYWYYYXYYVHYYYXXUTYVWYYZYYWYVUYXYYYYYUYYWXYYYYWYYYUYYYYYWYYYYWWYYYTYYSYYYYUYVYYYYYYYYYYYYVYYXUYYWYWYXUWUWYYYYYXYVY]XYTXYYYYXYYYYYYYYYVYYWYYYSYYWXYXYY`YYYYUYUYXXYYYTYVYWWYYXVYYVXYYYXXYVYVUTYRUYYWVYYUTYUYYWUXYYYYYYYRYVWYYYWYWYYYTYYYVYVYYYYYYWYYUYPYYYWTYYYUYWYYUYYYWYYYUYYYU[UQYTYYYbYYUYPUYUYYYYY]YYXWYYYYWYYYTYYYYYVYYYYZSYYYWYYWYYYY\YWYYYYYYYYYYYYTYYYRYYSYWYVSV]WYYYYYZYVYXUYUUYYYYUYYYYYYYYYVYYVYYYUYYVUY]YYbYYYYVYXYYUYYYVYSYTWYYUVYYWVYYYSUYXYYVWYWTYYV\YYXSYUYYTVZYYYYYYWUYVYYYYWYTYYYUYYYUYWYYYYYYVYYVYWYYYWWYYYXVWYYVYYYWYYWUYYYWTTZYWZYYYYYVYUTYWYYYYYWYYWTYYYYTYYYVYYYYYXYYXYYXYYY\YYZYYYY[YXYYYYYYYYYYYY\YYTTYYVYVYVVUWVYYYYYYYWYUUYXRYYYYTYYYYYYYYYVYYVYYYTYYYUY\YYWYYYYVYYYVXYYYXY[YUUYYYWYYWTYYYWTYYYUTXYXUYYWXYYZZYUYYUVXYYYYYYYYYXWYYYXYWYYYVYYYVYVYYYYYYWYYUYWYYYWXYYYVXTYYUYYYZYYTXYYYVYYVYXYYY\YYXYYUYWYYYYYZYYWWYYYYXYYYVYYYYYYYYYYXWYYYWYYYYYYY[YYYYYYYYYYYYYYXYYXXYYWYWYZXYYXYYYYYYYWYXXYYWYYYYWYYYYYYYYYWYYYYYYXYYYUYYYY\YYYY[Y]YYZYYYXYYYXYYYWVYYXYYYYYVYZYYVXYWYYYW[YYYXYXYYYWYYYYYYYXVYWWYYYXYVYYYWYYYVYXYYYYYYYYYZY[YYY[WYYYYYWYYYYYYYYYXYYYYXYZWYYYYYYYYXYXWYXYYYYYZYYYXYYYYXYYYXYYYYYYYYYYZYYYYZYYXYYYYYYYYYYYYYYYYYYYXYYXXYYXYXYYYYZXYYYYYYYXYYXYXXYYYYXYYYYYYYYYXYYXYYYWYYYWYZYYYYYYYXYYYYYYYYXYWYYXYYWXYYYXYYYXXYYYXXXYXXYYXYYYXXYXYYXXYYYYYYYYYYYXYYYYYXYYYXYYYWYXYYYYYYYYYXYYYYYXXYYYXXWYYXYYYXYYVXYYYVVSTYUXYY^YYUYZRYXYYYYYXYYXTYYYYSYYYUYYYYY\YYYY\YYYY_YYXYYYZ[YVYYYYYYYYYYYYZYY[VYY[YTYWUX\TYYYYYZY[YVUYVRYYYYTYYYYYYYYYTYYQYYYUYYWTY[YY[YYYY\Y^YXWYYYVY[YSZYYVXYYWXYYYSTY[YUWWYYVYYY]YYZUYUYYVYYYYYYYYX^YXVYYYXYRYYYVYYYSYYYYYYYYXYYVYVYYYV]YYYYYRYYWYYYXYYTOYYYU]WSYVYYYbYYWYTTYVYYYYY]YYXXYYYYVYYYWYYYYYVYYYYWTYYYYYYTYYYY]YXYYYYYYYYYYYYPYYZVYYUYXYXTSZWYYYYYYYYY\WYUUYYYYVYYYYYYYYYXYYZYYYUYYXVYZYYkYYYYUYVYYVYYYVYUYWWYYVVYYXVYYYTVYYYWWSYSVYYX]YYWSYSYYYTZYYYYYY[TYWWYYYYYTYYYUYYYUYVYYYYYYWYYUYSYYY[XYYYUQZYYUYYYXYYXZYYYZWYWYUVYYZYYUYRXY]YYYYYZYYXXYYYYXYYYYYYYYYXYYYYYZYYYZYYYYYYYZYWYYYYYYYYYYYY^YYWZYY\YZYWUY\UYYYYYYYZYVTYX\YYYYZYYYYYYYYYUYYVYYYYYYUZYYYYYYYYYXYWYVYYYYZY^YQ]YY]WYYW\YYYY^YYY[Y]Y[RYYYZYY\SYXYYVXYYYYYYYV]YY[YYYYYZYYYVYYYWYZYYYYYYXYY]YYYYYS\YYYZVVYYXYYYSYYQOYYYUX^eYYZYY\YYMYNSYNYYYYYSYYQWYYYYXYYYUYYYYYUYYYYQLYYYZYYQYYYX[YXYYYYYYYYYYYYkYYRcYY\Y\YS[TTOYYYYYXYRYUUYO_YYYYUYYYYYYYYYPYYTYYYRYYMCY]YYPYYYYWYWYN_YYYXY]YRQYYYVYYUIYYYZUYVYTS[Y[SYYYWYYbMYWYY]RYYYYYYYS[YVQYYYRYWYYYTYYYRYOYYYYYYOYYIYXYYYO]YYYPYRYYQYYYXYYVWYYYYWZYYXYYYYYYYYWWYWYYYYYXYYXXYYYYYYYYWYYYYYYYYYYWVYYYZYYXYYYYXYXYYYYYYYYYYYYZYYXYYYXYYYXXWYXYYYYYYYXYYXYWYYYYYXYYYYYYYYYYYYXYYYWYYXVYZYYZYYYYWYXYWZYYYYY[YXXYYXWYYXWYYYXYYYYXWXYXXYYWXYY[WYWYYXWYYYYYYYXZYXWYYYXYXYYYWYYYWYWYYYYYYWYYWYXYYYW\YYYWXXYYXYYYYYYYZYYYYYYWYZXYY[YYXYXWYXYYYYYZYYYWYYYYXYYYVYYYYYYYYYYYXYYYZYYYYYYYZYYYYYYYYYYYYYYXYYYWYYYYWYXY[ZZYYYYYYYZYYVYXXYYYYWYYYYYYYYYYYYXYYYYYYXWY[YY[YYYYYYXYZZYYYZYYYWZYYZXYYYWYYYXYYYYVXYYXXYYW\YYZYYYYYXYYYYYYYYWZYYWYYYYYWYYYYYYYXYYYYYYYYZYYXYYYYYZ\YYY[YWYYZYYYXYYWTYYYWWYWYW[YYWYYWYZWYYYYYYYXYYVVYYYYWYYYXYYYYYXYYYYYWXYYZYYXYYYXYYWYYYYYYYYYYYYXYYXVYYYYYYVYZXYYYYYYXYYYYVYXZYYYYVYYYYYYYYYWYYWYYYVYYVWYXYYYYYYYXY[YWYYYYXYWYVXYYUXYYYWYYYWVYZYTXWYWWYYWWYYXZYYYYZXYYYYYYY\[YZXYYYYYXYYYVYYYYYXYYYYYYXYYWYYYYYY\YYYWYYYYYYYYXYYYGYYY[VWYYVWYYVYYWYVWYYYYYYYUYYWYYYYYZYYYYYYYYYXYYYYVWXYYYYYVYYYYVYWYYYYYYYYYYYYYYYXYYY[YWYWXWVVYYYYYXYVY\XYW\YYYYZYYYYYYYYYUYYWYYYUYYXYYXYY_YYYYUYWYXYYYYWYXYXYYYYXYYVXYYYYZYXYWVWYUVYYZVYYWWYYYYYWXYYYYYYYUYWVYYYXYZYYYVYYYXYVYYYYYYXYYTYNYYYWYYYYW[XYYTYYYXYYWUYYYWYVUYY[YY_YYWYXVYXYYYYYYYYZXYYYYXYYYWYYYYYXYYYYUVZYYZYYXYYYYYYXYYYYYYYYYYYYWYYYXYYVYWYWVYYWYYYYYZYYYZWYXVYYYYVYYYYYYYYYVYYWYYYVYYYVY^YYaYYYYWYUYXYYYYWYWYXXYYZWYYWUYYYUVYZYYXVYYVYYW[YYWVYVYYUVYYYYYYYWUYXWYYYWYUYYYUYYYWYVYYYYYYXYYWYVYYYY\YYYWYXYYVYYYXYYRJYYYXXRYYXVYYXYYXYUUYWYYYYYVYYWWYYYYUYYYVYYYYYXYYYYXVYYYWYYWYYYYWYXYYYYYYYYYYYYQYYVWYYXYVY^VXSUYYYYYXYXYVWYXUYYYYXYYYYYYYYYUYYXYYY[YY\ZYUYYWYYYYUYTYW[YYYXYWY[WYY[WYYWWYYY\VYTYRZ[YWTYYVXYYVZYVYYSYWYYYYYYXVYYVYYYXYUYYYYYYYVYVYYYYYYYYYWYOYYYYTYYYYQWYYUYYYUYYW_YYYURWTY]VYYXYYXYUSY_YYYYYVYYXVYYYYVYYYUYYYYYWYYYY[VYYYVYYWYYYYWY]YYYYYYYYYYYYTYYTVYYZYUYUV][cYYYYYXYZYUUYTVYYYYWYYYYYYYYYUYYXYYY]YY\WYXYYTYYYYXYWYQZYYYYYXYPWYYUSYYb\YYYUVYUYS[UYVWYY\XYYXXYXYYU[YYYYYYYYZY^SYYY^YWYYYVYYYVYbYYYYYYWYYYY\YYYSVYYY[PWYY_YYYYYYYXYYYXZWXYXYYYZYYWYWWYXYYYYYZYYXXYYYYYYYYWYYYYYYYYYYZWYYYXYYYYYYYZYWYYYYYYYYYYYYYYYXVYYXYYYYXY[YYYYYYYYXYYWYWXYYYYXYYYYYYYYYXYYXYYYZYYYVY[YYZYYYYXYYYXYYYYYYXYWXYYYXYYWXYYYXWYYYXXZYWXYYXZYYYXYXYYXXYYYYYYYW[YXYYYYXYXYYYYYYYXYXYYYYYYYYYWYYYYYXXYYYZYYYYWYYYYYYWXYYYP]XOYXXYYeYYUYURYYYYYYY]YYTVYYYYPYYYWYYYYYUYYYYXSYYYVYYRYYYYVYWYYYYYYYYYYYYQYYWPYYXYSYVU[WVYYYYYYYXYXVYPTYYYYTYYYYYYYYYTYYYYYYUYYUUYVYYdYYYYSYWYXVYYYUYPYUTYYOXYYWVYYYQSYVYQXUYNTYYVXYYQSYRYY[PZYYYYYY]VYXUYYYYYPYYYVYYYTYVYYYYYYUYYRY^YYYUSYYYRUUYYWYYYYYYYYYYYYXYYYYYYYYYYYYXXYXYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYZYXYYYYXYZYXYYYYYYYXYYYYYYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYZYYYXZYYYYYYYXYYXWYYYVTTVYU[YY]YYTYQSYYYYYYY[YYQSYYYYQZYYVYYYYYYYYXY`YZYY]YYXYYY[ZYUYYYYYYYYYYYY[YYTRYY\YUYVT[]TYYYYYZYXYTQYRUYYYYTYYYYYYYYYMYYTYYYZYYVWYYYYYYYYYYY\YUWYYY[YYYTYYYVVYYWVYYYTUYZYRY\YYSYYU[YYZVYVYYWW[YYYYYYW_Y[UYYYWYRYYYZYYYQYYYYYYYYYYYWY[YYYV\YYY[VOYYVYYYYYYXYYYYXYYYYYZYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYZYYYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYZYXYYYYYYYYYYYYYYYYYYYYYYYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYXYYYYYYYYYYYYYZYYYYXZYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYYYYYYYXYYWWYYYVV[VYWYYY[YYWYXUYWYYYYYXYYXXYYYYXYYYXYYYYYXYYYYXWYYYYYYZYYYYWYYYYYYYYYYYYYYXYYYVYYWYVYWWZZVYYYYYYYYYYVYZVYYYYVYYYYYYYYYWYYVYYYVYYWVY]YYYYYYYXY\YWYYYYWYWYVWYYWYYYWWYYYVVY]YXXZYYXYYVYYYZXYZYYXVZYYYYYYXYYW[YYYWYWYYYUYYYYYXYYYYYYWYYVYYYYYYZYYYW\WYYWYYYWYYWJYYYYWWVYVVYYXYYXYVWYYYYYYYUYYXYYYYYXYYYXYYYYYXYYYYWVXYYXYYWYYYYXYWYYYYYYYYYYYYVYYYWYYWYXYXWUUWYYYYYXYVY\XYX[YYYYYYYYYYYYYYUYYWYYYVYYYXYWYY^YYYYVYYYYXYYYWYTYXYYYYYYYWXYYYUXYXYXXWYTWYYXXYYUVYYYYWXXYYYYYYZUYWWYYYXYWYYYVYYYZYVYYYYYYXYYUYOYYYWVYYYX[YYYTYYYXYYVJYYYYVUVYWUYYZYYYYVWYYYYYYYUYYXYYYYYXYYYWYYYYYYYYYYXXYYYXYYVYYYYWYWYYYYYYYYYYYYVYYYXYYXYXYXWVVWYYYYYXYWY[YYXYYYYYXYYYYYYYYYUYYWYYYVYYXYYVYY`YYYYVYVYXWYYYWYVYYXYYYWYYXYYYYWXYUYVWVYUWYYXWYYUUYWYYVXXYYYYYYYSYWUYYYYYXYYYWYYYWYWYYYYYYXYYVYNYYYWWYYYXXXYYUYYYWYYYYYYYZXXXYYWYYZYYXYWYYWYYYYY[YYWXYYYYXXYYWYYYYYWYYXYZXYYYZYYXYYYXYYWYYYYYYYYYYYYXYYXXYYXYXYUY[YXYYYYYXYZYWWYWXYYYYXYYYYYYYYYVYYUYYY[YYWWYWYYYYYYYUYXYWWYYYZYZYWYYYYWYYWXYYYZXYXYXYYYWXYYXZYYYVYWYYXZYYYYYYXWYYXWYYYXYXYYYZYYYWYXYYYYYYXYY\Y[YYYWYYYY[XWYYWYYYYYYWXYYYVVYUYXWYYZYYWYWUYUYYYYYYYYYXYYYYXYYYUYYYYYYYYYYWYYYYUYYVYYYYXYYYYYYYYYYYYYYYYYXWYYUYXYXXTXXYYYYYYYYYXWYVVYYYYWYYYYYYYYYWYYYYYYWYYVWYZYYZYYYYWYVYXYYYYUY[YVVYYUUYYXVYYYXVYWYYYXYVWYYWXYYUVYXYYSXYYYYYYYXWYXYYYYYYYYYYVYYYXYYYYYYYYWYYSYXYYYXXYYYUVWYYWYYYYYYYVYYYXXYWYXYYYYYYYYXXYXYYYYYXYYYYYYYYYYYYXYYYYYXYYYYXXYYY[YYYYYYYYYYYYYYYYYYYYYYZYYYWYYYYXYXXZYYYYYYYYYYYXXYXXYYYYYYYYYYYYYYYYYXYYYWYYXXYZYYYYYYYWYYYYYYYYWYWYXXYYYYYYXWYYYYXYZYYWXYYXYYWZYYZYYYYYXXYYYYYYYYYYYWYYYXYXYYYWYYYYYXYYYYYYYYYXYYYYYY[YYYXYXYYWYYYWYYTZYYYYXWXYZWYY^YYUYUVYSYYYYYWYYYXYYYYXYYYTYYYYYXYYYYUUYYY_YYVYYYYaYXYYYYYYYYYYYY^YYTWYYYYYYYYSUWYYYYYYYZYYXYURYYYYWYYYYYYYYYXYYXYYYVYYUSY[YYTYYYYWYVYXYYYYWYZYVVYYVXYYXPYYYVUYXYWW[YYVYYT[YYQVYXYYVWYYYYYYYYXYVWYYYYYVYYYUYYYVYXYYYYYYVYYPYXYYYWSYYYVVTYYVYYYYYYVZYYYXVSZYVZYYZYYWYYWYYYYYYYZYYTUYYYYSYYYZYYYYYWYYYYZXYYYWYYZYYYYXYZYYYYYYYYYYYYWYYTXYYZYUYWVWWTYYYYYYYWYXWYWTYYYYWYYYYYYYYYTYYWYYYXYYZWYXYY[YYYYWY\YXYYYYXYXYVXYYXWYYXXYYY]XY[YTVXYWWYYXXYYY[YSYYWWYYYYYYYZWYWVYYYYYWYYYXYYYRYXYYYYYYXYYYY[YYYWYYYYWYTYYWYYYXYYPOYYYWXSSYS[YYYYYWYXUYWYYYYYZYYSUYYYYSYYYUYYYYYYYYYYZTYYYTYYUYYYYZYWYYYYYYYYYYYYSYYXTYYUYUYVRUXTYYYYYWYVY\WYSUYYYYVYYYYYYYYYSYYYYYYXYYWWYVYY\YYYYXYXYXXYYYXYXYQZYYWUYYXXYYYTWYWYWVXYWUYYW[YYZVYRYYVVXYYYYYYUVYVXYYY\YVYYYWYYYRYVYYYYYYXYYUYSYYYRUYYYYVXYYVYYYWYYZVYYYZUX^YTZYY[YYQYOUYWYYYYYXYYTVYYYYZYYYZYYYYYUYYYYXRYYY]YYUYYYYZYUYYYYYYYYYYYY_YYTXYY^YXYSV]ZSYYYYYXYWYXPYRaYYYYZYYYYYYYYYRYYVYYYTYYRTY^YYWYYYYVYTYSZYYY[Y\YRXYY\YYYVTYYYYZY\YUUZY[SYYYYYY`TYZYYZUYYYYYYYS]YTZYYYTYTYYYYYYYUYVYYYYYYVYYPYTYYYVcYYYXVTYYTYYYXYYUUYYYTZYVYW[YYaYYSYZRYVYYYYYZYYWVYYYYVYYYUYYYYYXYYYYUPYYYZYYTYYYYYYYYYYYYYYYYYYY[YYTUYYTYYYYVWYVYYYYYYYVYZUYTWYYYYTYYYYYYYYYWYYXYYYTYYWQYZYYXYYYYTY[YWYYYYXYWYUTYYWYYYYSYYYSTYZYVUWYUUYYRWYYXSYTYYZRYYYYYYYXZYTWYYYWYSYYYUYYYTYTYYYYYYUYYSYZYYYWZYYYWWWYYSYYYXYYXHYYYZVVWYWXYYXYYYYWXYXYYYYYUYYXXYYYYXYYYWYYYYYXYYYYXWYYYXYYWYYYYWYWYYYYYYYYYYYYXYYYWYYWYXYXWUTVYYYYYXYWY]XYXYYYYYXYYYYYYYYYVYYUYYYVYYXXYWYY[YYYYVYUYYXYYYVYXYWYYYZXYYVXYYYWYYWYWWVYVVYYYWYYVUYXYYVXXYYYYYYXUYVVYYYYYXYYYVYYYXYVYYYYYYXYYVYMYYYWYYYYYZXYYUYYYYYYYVYYYWXWQYVVYY]YYVYUXYWYYYYY]YYYWYYYYYYYYUYYYYYZYYYY[TYYYWYYXYYYYWYVYYYYYYYYYYYYSYYXVYYTYYYWTX_YYYYYYYYVYYUYWVYYYYTYYYYYYYYYXYYVYYYVYYYVY\YYVYYYYXYWYYWYYYWYWYUYYYTWYYWWYYYVWYXYWYXYUWYYWWYYXSYWYYSXYYYYYYYUWYWVYYYXYUYYYYYYYVYYYYYYYYVYYSYXYYYRVYYYZYXYYVYYYWYYXWYYYWVWXYXYYYZYYYYTTYVYYYYYYYYWWYYYYVYYYVYYYYYXYYYYZWYYYYYYYYYYZYYXYYYYYYYYYYYY\YYYWYYVYWYXXXZWYYYYYYYXYWWYVVYYYYVYYYYYYYYYXYYWYYYYYYWUY[YYYYYYYXYXYWZYYYZY[YUYYYYWYYVVYYYVZYZYXYXYZWYYWZYY\WYWYYUXYYYYYYYWZYWVYYYXYYYYYWYYYWYVYYYYYYXYYXYXYYYY[YYYZXWYYZYYYYYYWGYYYZVVVYVVYYWYYYYWXYYYYYYYTYYYYYYYYYYYYWYYYYYYYYYYXXYYYWYYVYYYYVYWYYYYYYYYYYYYVYYYXYYXYWYXWWUWYYYYYXYWY\YYXYYYYYXYYYYYYYYYVYYWYYYVYYXYYXYY]YYYYUYVYYXYYYVYVYYXYYZXYYWXYYYWYYWYWWVYTVYYXVYYUVYXYYVXXYYYYYYYTYWVYYYYYXYYYVYYYYYVYYYYYYYYYVYMYYYWWYYYWYYYYTYYYWYYVXYYYWU[TYZWYY\YYWYXXYWYYYYYZYYXVYYYYWYYYVYYYYYYYYYYYVYYYVYYXYYYZYYXYYYYYYYYYYYYXYYYXYYVYYYXVX[XYYYYYYYYYVWYWXYYYYUYYYYYYYYYXYYUYYYYYYWWYZYYZYYYYWYXYVXYYYXYXYUWYYVVYYWWYYYVXYZYXWXYWWYYUXYYXXYWYYUWZYYYYYYWWYZXYYYXYVYYYXYYYWYXYYYYYYWYYVYXYYYWXYYYYXVYYZYYYWYYTXYYYTX[XYXXYY\YYTY[PYVYYYYYZYYVUYYYYSYYYTYYYYYZYYYYYVYYYWYYWYYYYYYZYYYYYYYYYYYY\YYTWYYUYWYWXWTVYYYYYYYVYWVYTXYYYYUYYYYYYYYYVYYVYYYUYYVRY[YYWYYYYYY]YT[YYYVYWYTUYYYTYYXVYYYVVYUYYUXYTVYYUYYYYXYXYY[UYYYYYYYYXYXVYYYWYWYYYTYYYUYUYYYYYYVYYWYXYYYYXYYYU\TYYYYYYYYYZXYYYYX\WYWZYYZYYWYZXYXYYYYYXYYYXYYYY[YYYYYYYYYYYYYYXWYYYXYYZYYYYXYXYYYYYYYYYYYYYYYZYYYXYYYZWXZXYYYYYYYYY[YYX[YYYYWYYYYYYYYYYYYZYYYXYYXWYZYY[YYYYXYZYXYYYYXYXYYYYYWYYYXYYYYYYYZYYZYYVXYYZYYYWXYZYYYXYYYYYYYXXYXZYYYXYWYYYXYYYZYYYYYYYYYYYXYYYYYXXYYYYYZYYYYYYUYYYUYYYZZY^YVYYYZYYUYSTYWYYYYYWYYTYYYYYYYYYXYYYYYVYYXYVWYYY]YYUYYYYYYWYYYYYYYYYYYY[YYXXYY]YYYVZXYTYYYYYXYWYWWYU[YYYYWYYYYYYYYYTYYWYYYYYYTRYZYYVYYYYUYXYSZYYYYY]YUYYYWXYYUWYYY\YYWYXV[YXWYYZTYY_VYYYY\UYYYYYYYU[YWTYYYVY[YYYXYYYWYTYYYYYYUYYVYWYYYS[YYYVXVYYSYYYYYYYWYYYXXZWYXYYYYYYXYXWYXYYYYYWYYYYYYYYXYYYYYYYYYYYYYYWXYYYZYYXYYYXWYYYYYYYYYYYYYYYYYYWYYXYXYYXZXXYYYYYXYYYXXYXXYYYYYYYYYYYYYYXYYXYYYVYYXYYZYYYYYYYXYXYYZYYYWYXYXYYYYYYYXXYYYXXYYYYXYYYXYYXYYYYXYYYYXXXYYYYYYXWYXYYYYYYXYYYXYYYYYYYYYYYYYYYWYYYYYZYYYYW[XYYWYYYYYYUIYYYXYWUYTVYY\YYXYVTYWYYYYYWYYWYYYYYWYYYWYYYYYXYYYYYWYYYUYYTYYYYYYWYYYYYYYYYYYYSYYWWYYWYWYXVWUWYYYYYXYVY\XYTYYYYYXYYYYYYYYYUYYXYYYWYYXXYVYY^YYYYTYVYXYYYYWYUYVWYYWVYYVXYYYWZYSYXWVYSWYYXXYYUUYUYYTVXYYYYYYZRYWUYYYYYXYYYVYYYUYUYYYYYYXYYUYOYYYXTYYYXYYYYUYYYWYY[WYYYVUVVYVZYY\YYVYTUYXYYYYYZYYVVYYYYUZYYVYYYYYXYYYY[VYYYZYY[YYY[YYVYYYYYYYYYYYYYYYWTYYVYUYTUZ\TYYYYYYYVYWUYUWYYYYUYYYYYYYYYVYYUYYYYYYVTYYYYWYYYYTYZYWWYYYWYYYUVYYWXYYSUYYYUXY\YUXYYWTYYTYYYZXYWYYVWZYYYYYZV\YYZYYYVYVYYYXYYYXYVYYYYYYVYYVYZYYYVZYYYZ[UYYWYYYXYYWWYYYXXYWYXYYYZYYYYYXYXYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYWYYYXYYYYYYZYYXYYYYYYYYYYYYXYYXXYYXYYYYYYZYYYYYYYYXYYXYYXYYYYYYYYYYYYYYXYYXYYYWYYYWYZYYYYYYYYYZYYYYYYYYYYXXYYXXYYXXYYYWXYZYXXYYXXYYYYYYWXYXYYYXZYYYYYYXYYYYYYYYYXYYYXYYYYYXYYYYYYXYYXYYYYYYXYYYYXYYYYYYYXYYTUYYYWWUVYT\YY\YYUYTUYWYYYYY[YYUVYYYYTYYYVYYYYYXYYYYZVYYYVYYYYYYZ[YYYYYYYYYYYYYYWYYTUYYXYTYYVXZWYYYYYZYWYVTYXXYYYYWYYYYYYYYYUYYYYYYXYYYWY\YY\YYYYXYYYWZYYYYYUYZVYYVUYYXWYYYWUY[YUVXYXTYYU[YYXXYWYYWUZYYYYYYUYYYYYYYZYTYYYXYYYVYWYYYYYYZYYVYXYYYWWYYYXWVYYZYYYXYYXSYYYWUXUYWWYY\YYVYUTYWYYYYYUYYUTYYYYTYYYWYYYYYXYYYYYVYYYZYYXYYYYWYWYYYYYYYYYYYY]YYUTYYWYXYVTXWVYYYYYYYXYXSYXVYYYYUYYYYYYYYYTYYTYYYVYYTUYZYY[YYYYUYZYVZYYYWYYYRWYYXXYYVUYYYSUYYYWXSYUSYYUWYYZWYXYYUTWYYYYYYYWYX[YYYWYVYYYUYYYYYVYYYYYYVYYUYXYYYXXYYYWYVYYTYYYXYYTGYYYXXXYYVVYYXYYVYUWYVYYYYYSYYXYYYYYYYYYVYYYYYWYYXYWVYYYVYYUYYYXXYWYYYYYYYYYYYYYYYXYYYXYZYWWVTVYYYYYWYTY[XYVZYYYYXYYYYYYYYYUYYWYYYTYYWUYXYYZYYYYTYVYWYYYYVYVYXXYYZXYYVVYYYWXYWYVUWYUUYYXVYYVTYXYYWVXYYYYYYXTYVTYYYXYVYYYUYYYXYSYYYYYYWYYRYOYYYUYYYYVXXYYRYYYYYYWZYYYYXXYYWWYYYYYVYVWY]YYYYYZYYYXYYYYXYYYYYYYYYYYYYYXZYYY\YYYYYYYZYXYYYYYYYYYYYY[YYWWYY[YXYXWYZWYYYYYYYYYXVYX[YYYYYYYYYYYYYYWYYWYYYZYYWZYXYYYYYYYXYXYVYYYYYYYYVZYYZXYYYZYYYW[YWY[X[YXVYYXYYY[XYXYYYXYYYYYYYX\YZYYYYYYXYYYYYYYYYZYYYYYYYYYZYXYYYWZYYYYXXYYYYYYYYYYWYYYWWYXYXXYYZYYXYWVYYYYYYYYYYXWYYYYYYYYYYYYYYYYYYYZXYYYXYYYYYYZYYXYYYYYYYYYYYYYYYYWYYXYXYXWYZXYYYYYYYYYXWYXYYYYYXYYYYYYYYYXYYWYYYXYYXWY[YYYYYYYYYXYXYYYYYYYYVXYYXVYYXYYYYVYYYYXWYYYWYYZYYYZXYYYYXYYYYYYYYYZYYYYYYYYXYYYXYYYXYXYYYYYYYYYXYYYYYXYYYYYXXYYXYYYXYY\VYYYZX[UYSYYYWYYVYTWYZYYYYYUYYRYYYYYOYYYXYYYYYWYYYYXYYYYWYY\YYYXWYWYYYYYYYYYYYY\YYVUYY\YXYWVUWTYYYYYXYVYZTYVXYYYYYYYYYYYYYYTYYRYYYZYYWZYWYYXYYYYYYaYXXYYYXYVYSZYYZZYYV\YYYZWYaY\ZYYWUYYZZYY\YYZYYXYWYYYYYYYWYT\YYYXYXYYYWYYYYYTYYYYYYVYYZYUYYYZZYYYZWTYYXYYYZYYYZYYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYYXYYYYYYYZYYYYYYYYYYYYYYXYYYZYYYYYYYXYZYYYYYYYYYYYXYYZYYYYYYYYYYYYYYYYYYYYYZYYXXYYYYYYYYYYYYYXYYYYXYXYXYYYXXYYYYYYYYYYYYYYYYXYYYYXYYXYYYYYYZYYYYYYYYZYYZYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXXYYYYYYYYZYYYVYYWYYYYWTWXYYYYYXYYWYWTYYYYYYY[YYVXYYYYVYYYYYYYYYWYYYYYYYYYUYYZYYYYUYYYYYYYYYYYYYYYYYUVYYVYWYWXYZWYYYYYYYYYYVYZWYYYYXYYYYYYYYYXYYXYYYXYYYXYXYYYYYYYWY[YXYYYYYY[YXWYYVXYYXYYYY[XYYYVYYYXWYYXXYYWYYZYYXYYYYYYYYXXYXXYYYYYYYYYYYYYWYWYYYYYYWYYVYYYYYY[YYYVYVYYZYYYXYYXVYYYWVXXYXWYYWYYXYWUYUYYYYYYYYWYYYYYWYYYWYYYYYXYYYYWVYYYWYYWYYYYYYXYYYYYYYYYYYYWYYXXYYVYWYWWX[XYYYYYYYXYWWYXWYYYYXYYYYYYYYYXYYVYYYZYYWWYYYYZYYYYVYWYXYYYYYYXYWWYYUWYYWXYYYWWYYYWXXYWXYYVZYYXXYWYYVXYYYYYYYWUYXYYYYXYXYYYXYYYYYWYYYYYYXYYVYWYYYYYYYYXVXYYWYYYXYYWXYYYYWZXYYZYY[YYXYYWYYYYYYYXYYXXYYYYZYYYYYYYYYYYYYYXWYYYYYYXYYYYYYYYYYYYYYYYYYYZYYX[YYYYXYXXXWXYYYYYYYYYYWYXZYYYYXYYYYYYYYYWYYWYYYYYYWWY[YY[YYYYYYYYWYYYYYYXYVXYYXXYYYXYYYWYYYYXYXYXXYYYYYY[XYVYYWXYYYYYYYWYYZYYYYYYZYYYWYYYXYYYYYYYYXYYYYXYYYVYYYYXZXYYXYYYXYY[IYYY[WUVYUWYYXYYVYT\Y[YYYYYTYYWXYYYYXXYYYYYYYYYYYYYWYXYYYYYWYYYYUYXYYYYYYYYYYYYWYYXZYY]YXYWWXTVYYYYYXYWY_VYV\YYYYZYYYYYYYYYTYYWYYYUYYW\YYYY`YYYYUYTYYZYYYXYUYV]YY\XYYVZYYYZ[YWYZWVYYUYY[VYYYUYWYYXVWYYYYYYXUYVXYYYXYZYYYUYYYVYWYYYYYYYYYUYOYYYX]YYYXZXYYTYYYYYYULYYY[WWXYWVYY[YYXYVXYXYYYYYUYYWXYYYYWYYYVYYYYYXYYYYVYXYYUYYTYYYYXYWYYYYYYYYYYYYXYYVWYYVYVYXVVWWYYYYYWYVY]YYVYYYYYXYYYYYYYYYXYYXYYYUYYYYYXYY\YYYYUYWYXWYYYVYTYWYYYXVYYWVYYYYXYUYYWWYUWYYXYYYVVYWYYXWXYYYYYYZSYVUYYYZYZYYYUYYYWYVYYYYYYXYYTYOYYYXWYYYWXXYYVYYYWYYUIYYYWZUVYWTYYbYYWYYSYWYYYYYYYYVXYYYYWYYYVYYYYYXYYYYVVXYYUYYTYYYXZYXYYYYYYYYYYYYPYYYVYYVYYYVVUOUYYYYYYYWY[YYRYYYYYVYYYYYYYYYUYYWYYYXYYXVYVYYeYYYYUYZYXWYYYVYRYTXYYVUYYWXYYYXWYUYWVSYQVYYXUYYUWYUYY^TYYYYYYY[OYVTYYYXYYYYYTYYYUYUYYYYYYWYYUYLYYYXVYYYXYXYYWYYYYYYYUYYYWWUYYWYYY[YYWYXVYYYYYYYYYYXXYYYYWYYYXYYYYYYYYYYZWYYYZYYXYYYYXYXYYYYYYYYYYYYYYYWVYYXYWYXYWWXYYYYYYYXYYWYWWYYYYYYYYYYYYYYVYYXYYYWYYXWY[YY\YYYYWYXYXYYYYWYXYVXYYYXYYXVYYYWXYVYXWXYYWYYXWYYZYYUYYVVYYYYYYYXYYYVYYYXYXYYYWYYYWYVYYYYYYXYYWYXYYYXZYYYWYXYYWYYYWYYYVYYYXWXVYYYYYZYYYYXXYYYYYYYYYYXWYYYYWYYYVYYYYYXYYYYYWYYY[YYXYYYYZYYYYYYYYYYYYYY]YYWYYYXYWYYYYYWYYYYYYYXYYWYYYYYYYXYYYYYYYYYXYYUYYYXYYXUY[YYWYYYYXYYYWYYYYXY]YT[YYZXYYXXYYYY[YXYYWXY[XYYXYYY\XYXYYWXYYYYYYYXZYZWYYYXYWYYYXYYYXYXYYYYYYYYYZYVYYYY\YYY[YXYYYYYYXYYXSYYYXXYTYVXYY^YYXYWVYWYYYYY[YYTVYYYYVYYYUYYYYYWYYYYZWYYYXYYYYYYYVYWYYYYYYYYYYYYSYYZVYYWYUYVVWXXYYYYYYYWYXXYZVYYYYWYYYYYYYYYWYYVYYYZYYVTY]YYaYYYYVYYYTYYYYWYWYTXYYVWYYXVYYYUWYYYVYYYVVYYUVYYYZYWYYYWXYYYYYYXWYVYYYYVYYYYYWYYYVYZYYYYYYWYYWYSYYYVVYYYZXVYY[YYY]YYSLYYYWRVQYOVYYYYYXYQTYYYYYYYWYYUWYYYYUYYYSYYYYYUYYYY\WYYYTYYUYYYY[YZYYYYYYYYYYYYPYYVVYYUYRY[V\WVYYYYYXYWYXXYVVYYYYVYYYYYYYYYSYYVYYY[YYXXYRYYcYYYYSYXYXWYYYRYSYWXYYUTYYTZYYYRVYXYV\[YUWYYXZYYSPYUYYRZYYYYYYYYPYUQYYYXYSYYYTYYYSYVYYYYYYWYYWYRYYYVOYYY\UTYYVYYYYYYYGYYYZVTUYVVYYWYYWYUWYXYYYYYRYYXXYYYYXYYYVYYYYYXYYYYVWYYYWYYTYYYYWYWYYYYYYYYYYYYXYYYWYYYYWYXUVTVYYYYYXYVY]XYVXYYYYWYYYYYYYYYTYYVYYYTYYWWYXYY_YYYYUYSYXXYYYWYVYWXYY[VYYVYYYYXWYWYVWVYTVYYXVYYWTYWYYUWWYYYYYYWSYUTYYYXYYYYYUYYYVYVYYYYYYXYYTYLYYYVXYYYWXXYYSYYYXYYYZYYYX^ZSYTZYY[YYYYVRYVYYYYYZYYVWYYYYUYYYUYYYYYXYYYY]VYYYUYYVYYYZ\YXYYYYYYYYYYYYVYYYTYYVYYYYXY[YYYYYYZYUYWXYUUYYYYWYYYYYYYYYUYYYYYY[YYZVYUYYYYYYYWY^YXYYYYWYYYWYYYWTYYWYYYYWXYZYXWZYXXYYW]YYVSYWYYXXYYYYYYYZRYXYYYYWYVYYYVYYYRYWYYYYYYVYYYYZYYYYTYYYYTVYYYYYYYYYYZYYYYZYXYZZYYZYYXYYXYXYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYZYYYYYYYYYYZYXXYYYYYYYYYYYXYYWYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYXYXYYYYYYXYYYYYXYYYYYYYYWXYYYXYYYYYYYXZYYXXYXYYYXYYYYYYYYZYZXYYYYYXYYYYYYYXYYYYYYYYYYYXYYYYYYXYYYXXYYYYYYYZYYTTYYYXYZUYVZYY[YYUYWVYVYYYYY\YYWUYYYYXYYYUYYYYY[YYYYTZYYYXYYVYYYX`YXYYYYYYYYYYYYYYYUVYYVYVYXUZZWYYYYYXYXYXUY^TYYYYTYYYYYYYYYVYYUYYYUYYYTY]YY\YYYY]Y[YXYYYY]YZYVXYYXYYYXSYYYYRYXYVU^YZXYYT_YY\WY\YYVXYYYYYYYW`YV[YYYYYXYYYXYYYXYWYYYYYYXYYYYYYYYY^YYY]VWYYXYYYOYY\OYYYTTU\YLWYYbYYKYAKYUYYYYYUYYPNYYYYUXYYRYYYYYSYYZYXPXYYZYYWYYYZ^YOYYYYYYYYYYYYbYYKOYYWYXYMNXaNYYYYYYYQYQIYQVYYYYQYYYYYYYYYKYYLYYYMYYMJYeYY[YYYYWYOYN^YYY`Y]YFWYY`KYYQSYYYOUYZYSMYY\GYY[WYYeHYWYYORWYYYYYXK\YPZYYYTYUYYYRYYYSYOYYYYYYSYYNYOYYYJcYYY\OKYYLYYYYYYWXYYYVXXSYXZYY_YYVYTUYWYYYYYVYYYWYYYYVYYYVYYYYYXYYYYWTYYYZYY[YYYZTYWYYYYYYYYYYYYVYYXSYYWYVYVUXXWYYYYYZYWYXUYXUYYYYUYYYYYYYYYUYYVYYYUYYWVY\YY^YYYYWYYYXVYYYTYQYVWYYUUYYWWYYYSVY[YWUUYVUYYWYYYVVYWYYVVZYYYYYYWUYVXYYYXYTYYYTYYYTYXYYYYYYVYYTYWYYYYVYYYVYUYYVYYYYYYXWYYYXXXVYWYYY\YYXYUWYXYYYYYYYYXXYYYYWYYYWYYYYYYYYYYYWYYYWYYXYYYZYYXYYYYYYYYYYYYWYYZVYYXYXYYXW[WYYYYYYYXYXXYXXYYYYWYYYYYYYYYYYYWYYYXYYXWYZYY^YYYYXYYYXXYYYXYVYWXYYVXYYXXYYYUWYXYYXWYWXYYWYYYXYYWYYWYYYYYYYYXYYXWYYYXYVYYYWYYYWYYYYYYYYYYYXYWYYYZXYYYWVWYYXYYYXYYVVYYYVX]TYVYYY[YYVYWSYWYYYYYXYYVVYYYYSYYYVYYYYYXYYYYZXYYYWYY[YYYZ\YWYYYYYYYYYYYYYYYWUYYWYXYXUWZVYYYYYYYUYVUYXVYYYYSYYYYYYYYYTYYVYYYYYYWVYYYYZYYYYYYaYVXYYYXYXYRVYYWYYYWYYYYTVY_YZWYYYWYYW[YYZWYYYYXXZYYYYYYZZYWXYYYWYUYYYXYYYVYXYYYYYYWYYYYYYYYZWYYYYYSYYXYYYWYYXXYYYVWWSYYZYY^YYVYRUY[YYYYYYYYWVYYYYWYYYWYYYYYWYYYYYSYYYYYY[YYYZXYVYYYYYYYYYYYYZYYYVYYWYYYTSZ]XYYYYYYYXYXSYZWYYYYUYYYYYYYYYTYYTYYYVYYVUY]YY]YYYYWYXYVWYYYYYUYSZYYYXYYWUYYYSXY\YYWYYYRYYVYYYYSYYYYVXYYYYYYYTZYYYYYYWYRYYYVYYYVYWYYYYYYWYYWYVYYYVYYYYZWUYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYZYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYXYYYYYYYXXZYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYXYXXYYYZYYYYYYYXYYZYYXYYYYYYYZYYYYYZYYYYYYYYYYYYZYYYYYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYY[YYUYYYYT[XSYWXYY^YYZYZRYXYYYYY]YYWUYYYYVYYYRYYYYYYYYYY[VYYYZYYWYYYZZYXYYYYYYYYYYYYYYYVVYYVYZYWWVYVYYYYYZYTYZXYUUYYYYTYYYYYYYYYWYYVYYY[YY[SY[YY]YYYYXYXYV\YYYWYWYSZYYYUYYVVYYYWYYUYX[YYYXYYVXYYZWYUYY[VZYYYYYYZ\YUSYYYWYTYYYWYYYTYVYYYYYYYYYZY[YYYYZYYY]ZXYYZYYYZYYVWYYYWXXWYW[YY\YYYYYXYXYYYYYXYYXXYYYYYYYYXYYYYYYYYYYZYYYYYYYXYYYYXYWYYYYYYYYYYYYXYYZXYYXYVYYYXWWYYYYYZYYYYYYYYYYYYXYYYYYYYYYXYYYYYYWYYXYYYYY[YYYYWYYYXYYYYVYXYXXYYYXYYWXYYYYYYYYXXWYXYYYWYYY[YYXYYXWZYYYYYYYWYXWYYYXYXYYYWYYYXYWYYYYYYWYYWYXYYYZXYYYWXZYYYYYYWYYWWYYYVUUYYW[YYZYYVYUWYYYYYYYXYYUUYYYYTYYYWYYYYYYYYYY[WZYY[YYZYYYZ\YXYYYYYYYYYYYY\YYTVYYYYXYVVWWSYYYYYYYXYXUYVVYYYYUYYYYYYYYYWYYWYYYXYYXVYYYYZYYYYVY[YVXYYYZYYYUWYYXXYYVVYYYWXYXYVVXYXTYYUXYYZ\YVYYYVZYYYYYYXZYWWYYYYYUYYYYYYYVYWYYYYYYYYYUYXYYYYZYYYXYUYYYYYYXYYYIYYY\TVTYVUYYXYYVYVYY]YYYYYTYYXYYYYYYYYYWYYYYYYYYYYVYYYYYYYWYYYYVYVYYYYYYYYYYYYWYYXXYYZYVYXVXWVYYYYYWYVY\WYV[YYYYYYYYYYYYYYVYYVYYYTYYW\YYYY^YYYYUYUYXWYYYUYUYW[YY[XYYWZYYYV[YVY[WWYVTYYYWYYVTYVYYVWXYYYYYYXTYWWYYYXYXYYYUYYYXYWYYYYYYXYYUYNYYYUWYYYWXYYYTYYYSYY\QYYY[V[eYWYYYZYYPYPQYVYYYYYTYYRYYYYYWYYYXYYYYYTYYYYSVYYYdYYSYYYXVYTYYYYYYYYYYYYeYYUYYY`Y[YRZWWQYYYYYXYVYUSYR]YYYYWYYYYYYYYYPYYRYYYSYYOLY\YYRYYYYTYVYP\YYYYY`YQXYYZUYYSQYYY^YYXYUS\Y[UYYZTYYeTYXYY]SYYYYYYYQ]YWQYYYTY[YYYVYYYSYPYYYYYYQYYPYWYYYPaYYYRYQYYOYYYYYYXYYYYXYXXYXXYYZYYYYWZYWYYYYYYYYYYYYYYZYYYYYYYYYXYYYYZWYYYYYYXYYYYYYXYYYYYYYYYYYYXYYYXYYXYYYXWYZZYYYYYYYXYZXYYYYYYYYYYYYYYYYYXYYWYYYYYYZWYYYYYYYYYXYXYXYYYYYYXYWXYYYYYYXWYYYXYYYYXZZYXXYYXYYYYYYZYYYZYYYYYYYYZYYYYYYXYXYYYXYYYYYYYYYYYYXYYXYYYYYXYYYYYZYYYXYYYXYYXWYYYYWZWYXYYYYYYXYYWYYYYYYYXYYXVYYYYXYYYXYYYYYYYYYYZXYYY[YYXYYYZXYXYYYYYYYYYYYYZYY[WYYXYYYXVZYXYYYYYYYYYXXYWXYYYYVYYYYYYYYYWYYWYYYWYYXWYYYYZYYYYYYZYWYYYYWYXYUWYYWXYYXXYYYVXYZYWWZYXWYYVZYYZYYYYYXWZYYYYYY[ZYWXYYYYYXYYYVYYYWYXYYYYYYXYYWYXYYYZ[YYYWYVYYXYYYXYYYYYYYXTRUYVYYY^YYUY[VY\YYYYYWYYWVYYYYUYYYWYYYYYZYYYYYXYYY]YYYYYYZXYXYYYYYYYYYYYYZYYXYYYZYWYUSUXTYYYYYYYYYVUYVTYYYYTYYYYYYYYYRYYTYYYVYYSTYYYYYYYYYYYVYSUYYYXYYYRWYYUVYYXVYYYTVYYYVZZYWVYYXZYYZUYQYYQXZYYYYYYTYYYXYYYZYWYYYUYYYTYWYYYYYYVYYUYXYYYRVYYYVXVYYYYYYYYYWTYYYVTURYS_YY[YYRYUXYVYYYYYXYYXVYYYYUYYYSYYYYYWYYYYZSYYYYYYZYYYZXY\YYYYYYYYYYYYUYYVWYYUYUY[TUUXYYYYYYYZYYSY[WYYYYUYYYYYYYYYWYY[YYYRYY\WY\YYaYYYYXYXYYWYYYUYUY[VYYUUYYVTYYYUTY\YUZUYUVYYT\YYVZYVYYSWYYYYYYYZWYXXYYYZYTYYYVYYYWYUYYYYYYVYYSYVYYYZTYYYUVYYYXYYYXYYTXYYYVWXXYWZYY^YYVYVUYXYYYYYYYYWWYYYYVYYYWYYYYYXYYYY[UYYYZYYYYYYYZYWYYYYYYYYYYYY]YYXWYYWYWYWVUXWYYYYYYYXYYWYVWYYYYWYYYYYYYYYVYYWYYYVYYWWYXYYYYYYYWYYYVYYYYVYZYVWYYVWYYWVYYYWXYXYYXYYVWYYV\YYXVYVYYYWYYYYYYYYZYWVYYYZYVYYYXYYYWYVYYYYYYVYYVYYYYYVVYYYUYVYYWYYY[YYWZYYYXWXXYYWYYYYYYYWZY[YYYYYYYYYYYYYYXYYYYYYYYYZYYYYXZYYYZYYYYYYYWYYYYYYYYYYYYYYYYYXZYYZYWYZXXYYYYYYYYYXYYXYXZYYYYZYYYYYYYYYXYYYYYYYYYZZYXYYZYYYYYYXYYYYYYWYZYW]YY[XYYY\YYYY[YWY[YYYZXYYYYYY[XYXYYYXYYYYYYYXYYYWYYYZYYYYYYYYYXYZYYYYYYYYYZYYYYYWZYYYYZYYYZYYYWYYXXYYYWWVUYVVYY]YYVYUXYYYYYYY[YYWVYYYYUYYYVYYYYYXYYYY[UYYYXYYXYYYY[YVYYYYYYYYYYYYVYYWUYYYYWYUSX]WYYYYYYYYYWTYVTYYYYTYYYYYYYYYSYYUYYYTYYVVY]YYXYYYYWYVYVXYYYYYWYTYYYYWYYXVYYYWUYXYWVZYXWYYZYYYZRYWYYUXYYYYYYYV\YXVYYYYYVYYYXYYYWYXYYYYYYWYYVYXYYYT]YYYZUUYYXYYYTYYVSYYY[VY]YYYYYZYYSYUVYWYYYYYUYYUXYYYYXYYYVYYYYYVYYYYUUYYY\YYWYYYYUYXYYYYYYYYYYYY`YYU\YY]YYYUXSWWYYYYYYYWYWVYS^YYYYXYYYYYYYYYTYYUYYYUYYSSYXYYWYYYYSYWYSZYYYVYZYTYYYZUYYVVYYYZZYVYWR[YXUYYXRYYYUYWYYYTYYYYYYYVXYWUYYYUY[YYYVYYYVYSYYYYYYTYYSYYYYYQ]YYYSXUYYUYYYWYYTRYYYUXZYYVZYYTYYUYYPYXYYYYY\YYUVYYYYWYYYVYYYYYXYYYYT_XYYSYYYYYYWNYXYYYYYYYYYYYYXYYXPYYTYWYWVX[WYYYYYXYYYXUY]SYYYYUYYYYYYYYYYYYVYYYUYYWWYVYYVYYYYZYVYTXYYYVY]YVVYYQXYYXXYYYWTYZYS^^YWUYYUXYYTXY]YYVUWYYYYYXWUYY\YYYXY[YYYWYYYYYTYYYYYYYYYNYVYYYZ_YYYPVTYY[YYYTYY[QYYYYW\cYUZYYXYYRYRSYVYYYYYUYYRXYYYYZYYYZYYYYYUYYYYUTYYY^YYVYYYXWYVYYYYYYYYYYYYdYYY\YYZYYYTYWYTYYYYYXYUYZUYU^YYYYVYYYYYYYYYRYYWYYYVYYRNY[YYRYYYYUYVYT[YYYYY^YSSYYXXYYTRYYY]ZY[YTUZYYUYYXTYYcUY[YY\UYYYYYYYV[YWWYYYTYZYYYWYYYUYRYYYYYYRYYTYWYYYO]YYYSZTYYTYYYUYYVTYYYUZ[SYSYYY^YYVYTUYVYYYYYWYYTWYYYYTYYYUYYYYYWYYYYXWZYYXYYWYYYY[YWYYYYYYYYYYYYWYYZSYYWYWYWUXXVYYYYYZYVYWWYVUYYYYTYYYYYYYYYTYYXYYYXYYWUYXYY^YYYYXY^YWUYYYWYUYTVYYUWYYWWYYYTUY]YYWXYYXYYVYYYZUYXYYZWYYYYYYYYTYTVYYYXYUYYYVYYYRYWYYYYYYUYYXYWYYYYVYYYZVVYYXYYYYYYVTYYYYYXVYWWYY`YYXYVVYVYYYYYXYYUXYYYYWYYYVYYYYYWYYYYWUYYYUYYUYYYYZYXYYYYYYYYYYYYTYYXXYYWYVYWUWYWYYYYYYYWYXXYWWYYYYWYYYYYYYYYVYYXYYYYYYWTYWYY_YYYYVYXYXXYYYWYWYTWYYVUYYWXYYYUWYVYYYXYUWYYXXYYVUYWYYVWYYYYYYYZVYWWYYYYYXYYYXYYYWYXYYYYYYWYYXYWYYYWTYYYXUWYYYYYYVYYTVYYYUVZSYWWYY[YYVYVTYWYYYYYXYYYUYYYYVYYYTYYYYYZYYYYWVZYYYYYXYYYY[YXYYYYYYYYYYYY]YYWWYYWYXYXVXZVYYYYYYYYYVVYVTYYYYUYYYYYYYYYVYYTYYYVYYUSY\YYYYYYYXYXYU[YYYWY[YSWYYUUYYWTYYYRWYZYXUWYWUYYUWYYYUYVYYRVYYYYYYYWYYZXYYYXYUYYYTYYYUYVYYYYYYUYYUYWYYYVXYYYVXSYYXYYYWYYOGYYYSPYFYOZYYdYYPYTSYRYYYYYSYYQTYYYYOYYYQYYYYYWYYYYYTXYYNYYZYYYZVYZYYYYYYYYYYYYLYYXTYYRYWYYNQSTYYYYYXYWYUSYZRYYYYQYYYYYYYYYNYYSYYYWYY^UYVYYmYYYYYY]YQVYYYSYPYRPYYQRYYTXYYYJQY^YU\QYWUYYT^YYSYYNYYOXZYYYYYYSIYTPYYYVYLYYYRYYYOYUYYYYYYTYYQYSYYYYNYYYSRTYYWYYYXYYPXYYYV[WXYV_YYcYYSYXPYSYYYYY[YYPSYYYYOYYYRYYYYYWYYZYXTZYYRYYYYYYZXYZYYYYYYYYYYYYVYYURYYXYTY[TYUUYYYYY[YZYNSY\NYYYYUYYYYYYYYYRYYVYYYYYYXVYVYYcYYYY^YYYVUYYYUYRYUUYYTPYYVTYYYROY^YSXWYYUYYS[YYVVYTYYUWZYYYYYYVYYYRYYYVYUYYYZYYYSYVYYYYYY]YYVYXYYYVRYYYWRRYYXYYYYYYYYYYYYXWYYYWYYYYYXYXXYYYYYYYXYYYXYYYYXYYYXYYYYYYYYYYYYYYY[YYYYYYYYYZYYYYYYYYYYYYYYYYXYYXYXYYXYYWYYYYYYYXYZWYYXYYYYXYYYYYYYYYXYYWYYYYYYYXYZYYYYYYYXYXYWYYYYYYYYXXYYXYYYXYYYYXXYZYXXXYXXYYXYYYYZYXYYXYYYYYYYYYYYZYYYYXYYYYYYYYYZYYYYYYYYYYYXYXYYYYYYYYXZXYYXYYYXYYXZYYYVYQUYXXYYbYYVYWTYWYYYYY]YYTWYYYYUYYYVYYYYYWYYYYVVYYYTYYUYYYYZYYYYYYYYYYYYYYWYYWVYYWYWYWUVWUYYYYYYYWYYWYTWYYYYYYYYYYYYYYTYYYYYYWYYVWYWYY_YYYYUYYYXWYYYWYUYSXYYVRYYXXYYYXXYVYWWWYUVYYVXYYWWYSYY[UZYYYYYYXTYVSYYYYYYYYYWYYYSYXYYYYYYWYYZYYYYYSTYYYWWXYYYYYYYYYWUYYYYXWYYWXYY]YYXYYXYYYYYYYVYYXXYYYYXYYYWYYYYYXYYYYVYYYYYYYVYYYYYYYYYYYYYYYYYYYUYYYYYYXYVYYXVWXYYYYYYYYYYXYVXYYYYXYYYYYYYYYXYYXYYYXYYXXYYYYbYYYYWYXYXYYYYWYXYXZYYXWYYYYYYYXXYXYZYWYWXYYYZYYXYYVYYWWYYYYYYYXVYXWYYYYYYYYYVYYYWYXYYYYYYYYYXYXYYYZWYYYWVYYYWYYYXYYXWYYYYWW[YW[YY[YYVYYVYYYYYYYWYYVXYYYYZYYYZYYYYYYYYYYWWYYYZYYYYYYY[YXYYYYYYYYYYYY\YYW[YYYYXYWVWUUYYYYYYYXYYWYYWYYYYWYYYYYYYYYSYYVYYYYYYVRYYYYXYYYYYYZYUXYYYYYZYVXYYWXYYXVYYYZVYYYWWZYWVYYZZYY\WYWYYXXYYYYYYYUXYW[YYYYYZYYYVYYYVYXYYYYYYWYYXYXYYYTVYYYXZXYYWYYYZYYXZYYYXXWWYZYYYZYYYYZWYYYYYYYWYYZYYYYYXYYYXYYYYYXYYYYWZYYYYYYYYYYYYYZYYYYYYYYYYYYYYYZZYYXYWY[YXYZYYYYYYYYYYZYXZYYYYZYYYYYYYYYZYYYYYYYYY[YYYYYZYYYYXYXYZYYYY[YWYZZYYYWYYYYYYYXXYZYYYXYZXYYXXYYZZYYYYYYYYYYYYYXXYYWYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYZXYYYYY[YYYYYYXYYWWYYYVWZVYXYYYZYYYYXXYWYYYYYWYYXYYYYYXYYYWYYYYYYYYYYXVYYYWYYXYYYYXYXYYYYYYYYYYYYYYYXYYYWYXYYYYYXYYYYYYYXYWXYZYYYYYWYYYYYYYYYYYYWYYYXYYXWYYYY[YYYYZYXYYZYYYZYZYWZYYWWYYXYYYYWYYXYYYWYYXYYWXYYYYYXYYWYYYYYYYYWWYXXYYYXYXYYYXYYYXYXYYYYYYXYYVYWYYYZZYYYZXXYYZYYYXYYWYYYYXWWVY\WYYXYYXYYWYZYYYYYXYY[XYYYYXYYYWYYYYY[YYYYX[YYYXYYWYYYYXY\YYYYYYYYYYYYYYYXXYY[YWY[[YXYYYYYYYYZYXWYWXYYYYYYYYYYYYYY[YYWYYYXYYZZY\YYXYYYYXYXY[XYYYYYYYZXYYVWYY[YYYYWWYWYYXXYVXYY[YYYWZYWYYWWYYYYYYYXYY\XYYYZYYYYYWYYYXY\YYYYYYYYYXYZYYY[YYYYVYWYY\YYYYYYYUYYYWXT\YV]YY]YYWYXSYWYYYYYXYYYUYYYY\YYYWYYYYYVYYYYXTYYYRYY[YYYZUYUYYYYYYYYYYYYQYYZYYYWYXYXSVUWYYYYYYYWYXTY^WYYYYUYYYYYYYYYVYYWYYYXYY[SYTYYeYYYYUYZYXVYYYVYTYZUYYV[YYYTYYYVXY\YY[VYUUYYUTYYVXYYYYWUZYYYYYYXVYXZYYYVYTYYYUYYYYYUYYYYYYYYYWYVYYYYVYYYTXXYYVYYYXYYXWYYYVWXVYZXYY[YYWYVUYWYYYYYXYYXXYYYYYYYYVYYYYYXYYYYWWYYYXYYZYYYYVYVYYYYYYYYYYYYXYYXUYYVYWYXWXYXYYYYYYYWYWUYVWYYYYWYYYYYYYYYXYYWYYYYYYWUYZYY[YYYYXYZYWXYYYXYVYVXYYXWYYXXYYYUWYYYWXXYXVYYXZYYWVYXYYWXYYYYYYYVVYWYYYYXYYYYYXYYYXYXYYYYYYXYYUYXYYYWZYYYZXWYYWYYYYYYVFYYYYUVVYTTYYZYYYYUWYYYYYYYXYYYYYYYYXYYYWYYYYYYYYYYXXYYYXYYVYYYYYYVYYYYYYYYYYYYUYYWWYYWYUYXVZYVYYYYYWYUY[YYWXYYYYXYYYYYYYYYUYYXYYYVYYXYYWYY_YYYYVYVYYXYYYWYVYXYYYYVYYVYYYYVXYUYWWYYUWYYXXYYUVYVYYUWWYYYYYYXRYVTYYYXYXYYYWYYYVYVYYYYYYXYYVYOYYYVUYYYXYYYYSYYYXYYUWYYYYWVYYVZYY[YYXYXXYWYYYYYYYYXXYYYYVYYYXYYYYYXYYYYYWYYYWYYYYYYY[YYYYYYYYYYYYYYXYYWVYYXYUYZWXZWYYYYYYYXYXWYXXYYYYXYYYYYYYYYWYYXYYYXYYZXYYYY[YYYYXY[YXYYYYXYXYXXYYWWYYXXYYYXYYYYXWXYWWYYVXYYZZYWYYXWZYYYYYYYXYXXYYYYYVYYYWYYYXYXYYYYYYXYYYYYYYYYWYYYXXWYYWYYYXYYYVYYYXYZVYVYYYZYYWYXVYXYYYYYXYYXXYYYYWYYYXYYYYYXYYYYXYYYYZYYYYYYYZYWYYYYYYYYYYYYZYYXWYYXYXYVVXZXYYYYYYYVYXWYZWYYYYXYYYYYYYYYVYYVYYYZYYXWYZYYXYYYYXY[YVXYYYXYXYVVYYYZYYWWYYYVXY\YZXYYYXYYX[YYYWYYYYVYYYYYYYYYZYVXYYYWYYYYYWYYYVYXYYYYYYWYYZYYYYYWWYYYYYXYYXYYYVYYXTYYYYUXWYVXYYXYYXYUUYXYYYYYVYYXWYYYYYYYYUYYYYYYYYYYVXYYY^YYXYYYXYYXYYYYYYYYYYYY\YYXWYYXYUYVXXXVYYYYYYYWYWVYWUYYYYWYYYYYYYYYVYYVYYYVYYXVY\YYXYYYYWYWYWXYYYUY[YWVYYXXYYVSYYYWWYXYXYYYXWYYTYYYZYYWYYTVYYYYYYYWVYWWYYYWYXYYYUYYYWYUYYYYYYWYYSYUYYYWZYYYVWWYYUYYYYYYYXYYY[XYYYYYYYZYYXYZYYYYYYYYYYYXXYYYYYYYYXYYYYYYYYYYYYYYYYYYWYYYYYYYYYYYYYYYYYYYYYYXZYYYYYYXWXYYYYYYYYYYYXXYYYYYYYWYYYYYYYYYYYYXYYYXYYXXYYYYZYYYYZYXYYXYYYXYYYWYYYYXYYXYYYYXXYXYYXYYYXYYYZYYXZYXYYYYYYYYYYYXZYYXYYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYXZYYYYXYYYZYYYZYYRYYYYSWSWYU^YY_YYTYRRYWYYYYYYYYUTYYYYQYYYWYYYYYVYYYYZRYYYVYYXYYYYYYYYYYYYYYYYYYYSYYSSYYXYUYWT[YTYYYYYYYXYVSYWTYYYYUYYYYYYYYYVYY[YYYYYY]TYYYY`YYYYVY^YV[YYYXYSYTUYYUWYYWXYYY\UYUYRWYYTUYYV[YYX\YUYY[UZYYYYYYYXYVZYYYYYQYYYVYYYTYVYYYYYYXYYXY[YYY[VYYYYXSYYVYYYYYYWXYYYXWTXYWZYYYYYUYWVYYYYYYY\YYWWYYYYXYYYXYYYYYWYYYY[XYYYYYYYYYYY]YXYYYYYYYYYYYYYYYWVYYWYYYUVYZUYYYYYYYXYXUYVVYYYYWYYYYYYYYYVYYXYYY\YYVVYXYYZYYYYVY[YVXYYYZYXYUWYYXXYYWYYYYYXYYYUW[YYUYYWXYY]ZYUYYWYZYYYYYYY[YYYYYYXYXYYYWYYYVYYYYYYYYXYYZYYYYYYYYYYWXVYYVYYYYYYVFYYYZTURYTVYY`YYWYVWYYYYYYYQYYWXYYYYUYYYWYYYYYWYYYYTYYYYXYYUYYYYRYXYYYYYYYYYYYYLYYVVYYWYRYXTVOWYYYYYXYWYXWYWWYYYYXYYYYYYYYYTYYUYYYSYYYXYXYYdYYYYTYTYYXYYYSYRYXWYY[TYYXXYYYSWYWYYVSYSTYYXRYYTUYUYYTSXYYYYYYZOYVTYYYXYUYYYSYYYWYVYYYYYYVYYVYMYYYXTYYYTSXYYSYYYWYYUWYYYV[YXYZYYYZYYVYXYYTYYYYYXYYXXYYYYZYYYVYYYYYZYYYY[SYYYVYYYYYYY\YYYYYYYYYYYYYY_YYW[YYYY\YYZWZYYYYYYYYZYXXYWXYYYYYYYYYYYYYYWYYYYYYZYYUSYZYYXYYYYXY[YV[YYYZY[YXVYYWXYYXSYYYWXYYYVWWYVWYYUXYYYVYYYYYXYYYYYYYX]YYXYYYWYWYYYXYYYYYVYYYYYYVYYWY\YYYW\YYYWYWYYWYYYXYYSWYYYVVYUYXXYY`YYVYURYXYYYYYVYYWVYYYYSYYYSYYYYYWYYYYYWYYYWYYUYYYZ[YWYYYYYYYYYYYYVYYYTYYWYUYXWWWWYYYYYYYXYTWYTSYYYYTYYYYYYYYYVYYWYYYXYYWUYWYYaYYYYWY\YWXYYYVYVYTWYYVTYYWWYYYSTYXYYXXYVWYYWZYYWVYVYYVVZYYYYYYZWYWRYYYYYUYYYVYYYTYZYYYYYYXYYWYYYYYYSYYYXWTYYXYYYZYYPWYYYNTPRYR`YYeYYSYVMYSYYYYYXYYPRYYYYMZYYVYYYYYWYYZY_MYYYSYY^YYYZYYTYYYYYYYYYYYYVYYYNYYRYRYSM\YMYYYYYZYUYYQYWLYYYYMYYYYYYYYYPYYSYYYWYYXRY\YYcYYYYYYfYSTYYYUYPYNRYYSXYYSQYYYUQY`YLUSYXUYYQ_YY[\YTYY[V[YYYYYY`WYUQYYYTYLYYYXYYYPYSYYYYYYTYYSY\YYYZWYYYXbOYYVYYYYYYZYYYYYZZYYXYYYZYYYYXYYYYYYYYYYYXYYYYYYYYYZYYYYYYYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYZYYZYYYYYYYZXYYYYYYYYYYYYYXYYZYYYYZYYYYYYYYYXYYXYYYZYYYYYYYYYYYYYXYZYXYYYYYYYYXZYYZYYYXZYYYYZYZYZYZYYXYYZYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYZYYYYYYXYYYYYYYYXYYYYYYWYYYYZWYXYWXYYZYYXYXWYYYYYYYWYYZYYYYYYYYYWYYYYYYYYYYXWYYYZYYZYYYYXYYYYYYYYYYYYYYYYYXWYYXYWYXXYYYYYYYYYYXYWWYYXYYYYXYYYYYYYYYYYYYYYYYYYXXYXYYXYYYYWYXYXXYYYVYXYXXYYXXYYXYYYYWYYXYXZXYYWYYXYYYWYYXYYWXYYYYYYYYXYYWYYYXYXYYYWYYYYYXYYYYYYYYYXYYYYYXXYYYYZXYYYYYYYYYVXYYYWYWUYVXYY[YYUY\RYWYYYYYWYYSUYYYYWYYYVYYYYYXYYYYYVYYYXYYVYYYZXYXYYYYYYYYYYYYTYYYVYYXYVYWSVWTYYYYYZYWYYUYTUYYYYYYYYYYYYYYSYYVYYYZYYUTYWYY_YYYYWYZYVYYYYVYWYSXYYWVYYWXYYYXTY[YWXVYXUYYWXYYZXYPYY[WZYYYYYYYWYVVYYYWYWYYYVYYYUYWYYYYYYYYYXYVYYYWYYYYXUXYYVYYYXYYSUYYYTRTRYVVYYiYYTYQRYRYYYYYTYYRXYYYYSYYYSYYYYYRYYYYSPYYYRYYZYYYZUYZYYYYYYYYYYYYPYY\TYYRYQYONS\UYYYYYZYVYSUYYRYYYYWYYYYYYYYYOYYUYYY]YYQSYVYYkYYYYRYWYSRYYYTYLYQUYYTPYYVWYYYNTY_YS_TYRSYYSUYYQOYTYYOX\YYYYYYPQYPTYYYUYPYYYVYYYRYRYYYYYYSYY]YYYYYRRYYYZQYYYcYYYWYYVWYYYWYXVYWWYY\YYYYUWYWYYYYYZYYXXYYYYXYYYXYYYYYWYYYYXWYYYXYYXYYYYYYWYYYYYYYYYYYYVYYZUYYVYXYXVXYXYYYYYYYWYXXYWVYYYYXYYYYYYYYYWYYYYYYZYYYWYXYY\YYYYWYZYWVYYYXYVYWWYYWXYYYXYYYWWYYYXXXYWXYYWYYYUXYWYYYYZYYYYYYYXYVVYYYWYWYYYXYYYVYYYYYYYYWYYXYXYYYVVYYYYXXYYWYYYYYYXVYYYY[VYYWYYYZYYYYXVYXYYYYYYYYWXYYYYWYYYXYYYYYXYYYYZYYYYYYYWYYYYYYYYYYYYYYYYYYYVYYWWYYZYXY[WXXWYYYYYYYXYXXYWVYYYYYYYYYYYYYYXYYXYYYZYYZXYXYY\YYYYXYYYYYYYYXYYYWXYYXWYYXYYYYZXYWYXZYYWXYYXYYYWXYVYYXWYYYYYYYZZYXXYYYXYXYYYZYYYWYYYYYYYYYYYZYYYYYZXYYYYWXYYXYYYUYYTOYYYS[UKY\PYYlYYTYUMY\YYYYYUYYXTYYYYOZYYRYYYYYXYYYYWTYYYQYYPYYYYVY[YYYYYYYYYYYYFYYTPYYZYTYVVUYZYYYYYZYWYTWYORYYYYTYYYYYYYYYQYYUYYY]YYZUYWYYgYYYYTYQYXYYYYTYNYVVYYTRYY[SYYYKRYTYSYPYLTYYYZYYPYYOYYQRZYYYYYY\SYYSYYYYYOYYYQYYYOY\YYYYYYVYYYYYYYYZPYYYXRSYYTYYYXYYVHYYYXVXUYWTYYZYYUYWVYWYYYYYRYYVXYYYYVYYYVYYYYYYYYYYVUYYYYYYTYYYXSYXYYYYYYYYYYYYXYYUWYYXYWYWWVRVYYYYYWYUY[WYT[YYYYZYYYYYYYYYTYYVYYYRYYWVYZYYVYYYYTYXYVZYYYTYXYXXYY[VYYVWYYYUXYWYXTUYSUYYWRYYSSYUYYXTXYYYYYYYUYWTYYYWYUYYYRYYYUYQYYYYYYUYYSYQYYYVZYYYSYVYYPYYYWYYVZYYYWUYTYXWYYZYYXYTTY[YYYYYWYYVWYYYYVYYYVYYYYYWYYYYXYYYYZYYWYYYYUYWYYYYYYYYYYYY[YYYWYYWYUYXVWYVYYYYYYYXYUWYWYYYYYXYYYYYYYYYWYYVYYYYYYUWYXYYZYYYYXYWYVYYYYVY\YS[YYWUYYXZYYYV\YXY[[YYYTYYUYYY[SYWYYTWYYYYYYYWXYWVYYYXYWYYYUYYYWYWYYYYYYTYYVYTYYYU[YYYXUVYYZYYYWYY\XYYYYUSZYWZYY\YYSYVUYZYYYYYXYYVVYYYYWYYY[YYYYYWYYYYWVYYY_YYXYYYZXYWYYYYYYYYYYYYYYYUTYY_YUYTUZ[VYYYYYYYXYYSYV[YYYYXYYYYYYYYYTYYUYYYUYYVVY]YY[YYYYVYYYVZYYYZYZYSXYYYWYYXWYYYXYYZYWUVYWTYYZVYYY[YZYYYVYYYYYYYVYYX[YYYWYUYYYWYYYXYXYYYYYYXYYSYWYYYW^YYYV\UYYVYYY[YYZWYYYOR]TYW\YY`YYQY]QYTYYYYYUYYXUYYYYUYYYTYYYYY[YYYYWQYYYUYY\YYYZSYWYYYYYYYYYYYYXYYXWYYWYSYST^XTYYYYYYYTYUTYTSYYYYRYYYYYYYYYRYYPYYYUYYSRY^YY[YYYYXY]YSYYYYTYVYNTYYTYYYVSYYYQQY^YWWTYTRYYTYYYZZYVYYRUZYYYYYYWTYYYYYYTYTYYYVYYYZYUYYYYYYUYYOYYYYYUZYYYV_QYYXYYYXYY\VYYY[WZXYVXYYWYYVYU\YZYYYYYUYYVXYYYYXXYYZYYYYYZYYYYU]YYY\YYWYYYXWYZYYYYYYYYYYYYZYYW]YY\YXYWWXTWYYYYYXYVYYVYWYYYYY\YYYYYYYYYWYYVYYYTYYX[YZYYXYYYYVYUYXZYYYUY\YU\YY[VYYWYYYYZZYVYXUXYYUYYYXYY[XYWYYVUXYYYYYYXXYZWYYYZY[YYYUYYYTYWYYYYYYXYYYYYYYYY\YYYUVYYYWYYYZYYXTYYYVYXXYXYYYXYYYYZVYXYYYYYWYYXYYYYYXYYYWYYYYYYYYYYXXYYYYYYXYYYXZYXYYYYYYYYYYYYWYYYVYYVYWYXXWVXYYYYYXYVYXXYVXYYYYWYYYYYYYYYYYYYYYYXYYXXYXYYWYYYYXYYYXWYYYXYXYXXYYYYYYXYYYYYWYWYXXVYWXYYV[YYWZYXYYYWXYYYYYYZUYWYYYYYYYYYYXYYYZYWYYYYYYYYYVY[YYYXWYYYYYYYYWYYYYYYR[YYYTXTUYZZYY_YYXYURYXYYYYYWYYTUYYYYRYYYWYYYYYXYYYYVVYYYXYYXYYYYZYYYYYYYYYYYYYYXYYZVYY[YYYVVXXVYYYYYZYYYUWYSTYYYYVYYYYYYYYYWYYVYYY[YY[TYZYY^YYYYYYZYUYYYY[YTYTZYYVVYYYVYYYUTYVYSZWYWWYYV\YYX[YSYYVYZYYYYYY[WYYRYYYYYTYYYYYYYUYZYYYYYYZYYWYZYYYXTYYYXUTYYYYYYTYYVVYYYZTUVYSWYY_YYWYSVYVYYYYYVYYTVYYYYUYYYWYYYYYUYYYYWSYYY[YYWYYYYZYTYYYYYYYYYYYYZYY\RYYTYYYRRY^QYYYYYYYYYSTYTWYYYYUYYYYYYYYYMYYUYYYYYYVVYWYYYYYYYVYVYSOYYYXY]YOUYYWVYYXUYYYVUYYYY\WYYUYYVYYYYVYSYYXWZYYYYYYRVYXUYYYWYSYYY[YYYWYUYYYYYYVYYVYWYYYQZYYYXTUYYYYYYVYYZZYYYYWWXYZUYYZYYXYVVY\YYYYYVYYYXYYYYUYYYWYYYYYZYYYYYYYYYZYYWYYYYYYYYYYYYYYYYYYYZYYYWYY[YXYWYXYZYYYYYYYYYWXYUWYYYYYYYYYYYYYYXYYXYYYZYYXXY[YYWYYYYXYWYXYYYYZYYYWXYYXUYYZXYYYXXYVYWZXYWWYYYYYYYWYWYYVYYYYYYYYYZY[XYYYZYZYYYXYYYXY[YYYYYYXYYYYZYYYWXYYYYVWYYYYYYXYYXVYYYXX\WYWYYYXYYXYYWYXYYYYYWYYYXYYYYXYYYVYYYYYYYYYYXWYYYXYYXYYYXXYYYYYYYYYYYYYYYYYYXYYWYXYYYZWWYYYYYXYWYYXYXYYYYYXYYYYYYYYYYYYWYYYWYYWWYYYYXYYYYWYXYXYYYYWYWYXYYYWXYYWXYYYWWYXYYXXYWWYYVXYYXZYXYYXVYYYYYYYYXYXZYYYXYWYYYWYYYYYWYYYYYYWYYVYYYYY[VYYYXZXYYWYYYUYYWSYYYUVX\YT[YY^YYQYSTYTYYYYYUYYTVYYYYRYYYVYYYYYVYYZY\SYYY\YYWYYYZ\YUYYYYYYYYYYYYaYYUXYY[YXYUWVXQYYYYYYYRYWUYRZYYYYVYYYYYYYYYSYYSYYYTYYPMY\YYWYYYYWYZYQ[YYYWY_YQTYYWVYYTRYYYUUYYYUUVYUTYYUWYY`TYVYYUTZYYYYYYU^YWVYYYSYPYYYSYYYTYRYYYYYYQYYOYWYYYU_YYYSZSYYUYYYYYYVXYYYWXZXYYZYYZYYXYXXYXYYYYYXYYYXYYYYYYYYXYYYYYYYYYYYWYYYXYYYYYYYWYXYYYYYYYYYYYYYYYZYYYYYWYXXXXXYYYYYYYXYYXYYYYYYYXYYYYYYYYYXYYXYYYXYYWWY[YYYYYYYWYYYXZYYYWYWYWWYYXXYYWWYYYXXYYYYXWYWXYYWXYYXYYYYYWWZYYYYYYYYYYYYYYXYXYYYVYYYYYXYYYYYYWYYWYYYYYXYYYYVYXYYWYYYYYYVVYYYVVXXYUZYYZYYXYWTYWYYYYYWYYXWYYYYXXYYWYYYYYZYYYYXVYYYYYYXYYYYXYXYYYYYYYYYYYYUYYZVYYWYUYWUZYUYYYYYYYUYYWYWWYYYYWYYYYYYYYYVYYUYYYYYYXUY\YY]YYYYXYYYUYYYYUYUYWXYYWXYYUYYYYWUYYYWXYYYWYYVZYYYWYWYYUWYYYYYYYVTYVXYYYVYVYYYXYYYWYVYYYYYYXYYWYYYYYZ\YYYYZVYYVYYYYYYW`YYYVTSTY_TYYWYYYYXSY`YYYYYWYY[XYYYYUYYYVYYYYY[YYYYW]YYYXYYWYYYXWY^YYYYYYYYYYYYVYYVWYY^YVYZ]ZW^YYYYYYYYYSXYOYYYYY\YYYYYYYYY]YYVYYYXYY\YY\YYYYYYY[YXYY[YYYXYYY\ZYYXTYY_\YYYUVYSYXXYYUZYY[\YYXXYTYYUYYYYYYYYUZY_UYYY^Y[YYYXYYYTY`YYYYYY\YYZY]YYYXXYYYVYVYYXYYYWYYZKYYYZXSTYSUYYXYYWYRXY[YYYYYWYYVXYYYYUYYYVYYYYYYYYYYZWYYYZYYVYYYYXYUYYYYYYYYYYYYXYYWVYYYYXYWVWWTYYYYYXYWYXVYT[YYYYWYYYYYYYYYTYYTYYYVYYVYYVYYYYYYYVYTYYWYYYZYXYSZYYXVYYVZYYYQYYUYWWXYTSYYYWYYYTYVYYVVXYYYYYYVVYXXYYYXYUYYYVYYYWYWYYYYYYYYYUYRYYYUWYYYZXXYYTYYYXYYUVYYYXUZUYXZYY\YYXYZUYXYYYYYWYYVUYYYYXYYYWYYYYYXYYYYXUYYYXYYXYYYZUYWYYYYYYYYYYYYTYYYXYYWYVYXWWXWYYYYYZYVYXWYYXYYYYVYYYYYYYYYXYYVYYYUYYXVYXYY]YYYYWY[YWXYYYUYVYWXYYVXYYYXYYYWWYZYVVVYUXYYVVYYYVYWYYUVYYYYYYYYTYWZYYYWYTYYYWYYYWYVYYYYYYWYYVYWYYYYXYYYVZVYYWYYYXYYVQYYYVVSPYWUYYYYYVYYSYZYYYYYQYYWWYYYYTYYYTYYYYYZYYYYWUYYYUYYVYYYXWYYYYYYYYYYYYYYUYYXSYYYYUYWX\SXYYYYYXYXYZVYXXYYYYVYYYYYYYYYWYYUYYYXYYXUYWYYVYYYYXYWYYXYYYYYXYYXYYVWYYYTYYYRUYTYTZTYPVYYVYYYWZYZYYWVXYYYYYY\VYYZYYYXYTYYYUYYYXYXYYYYYYWYYXYVYYYWTYYYXWWYYXYYYYYYWYYYYWXYWYYYYYYYYXYYVYYYYYYYXYYWWYYYYWYYYWYYYYYYYYYYYXYYYXYYXYYYYZYYYYYYYYYYYYYYXYYXXYYYYXYXWZYYYYYYYYYXYXWYYWYYYYWYYYYYYYYYVYYWYYYXYYYUYYYYZYYYYZY[YWZYYYZYXYVXYYXXYYYYYYYWWYYYXYXYYXYYY[YYZWYYYYXYYYYYYYYYYYXYYYYYYWYYYYYYYXYYYYYYYYYYYZYYYYYXYYYYYWWYYYYYYXYYYKYYYVXUUYSUYY[YYVYTUYWYYYYYXYYWVYYYYVXYYVYYYYYYYYYYZTYYYXYYWYYYY\YVYYYYYYYYYYYYXYYWRYYWYZYTTXVWYYYYYWYWYYWYWUYYYYVYYYYYYYYYTYYUYYYUYYWUYYYYUYYYYWYUYXXYYY]YWYVWYYYWYYVUYYYSVYXYTVWYTVYYYXYYVUYWYYWWWYYYYYYX[YWVYYYXYUYYYVYYYYYUYYYYYYYYYVYRYYYVXYYYZWXYYTYYYWYYVXYYYXWXUYXXYY^YYVYXTYXYYYYYWYYYWYYYYVYYYVYYYYYYYYYYXUYYY[YYWYYYZ[YXYYYYYYYYYYYYYYYVWYYXYXYXWWWYYYYYYZYXYYWYVWYYYYWYYYYYYYYYXYYWYYYVYYWVY\YY[YYYYWYWYWYYYYVYXYVWYYXVYYXWYYYUWYYYYVVYVWYYUYYYXUYXYYVWZYYYYYYXWYYVYYYXYTYYYSYYYWYWYYYYYYXYYVYWYYYWXYYYWXVYYYYYYXYYVVYYYVUYZYVYYY\YYUYSTYTYYYYYVYYWWYYYYWYYYVYYYYYXYYYYWSYYY\YYVYYYYZYWYYYYYYYYYYYY\YYUYYYZYWYVWWXVYYYYYXYUYXUYTXYYYYWYYYYYYYYYWYYUYYYSYYUQY]YYVYYYYWYVYVYYYYVYXYSUYYXWYYVSYYYVUYZYVUXYVUYYUXYYYSYWYYUUYYYYYYYWWYWXYYYWYUYYYUYYYVYUYYYYYYVYYOYWYYYTYYYYUWTYYVYYYZYYVKYYYVTSSYVQYYYYYWYTVYWYYYYYWYYYWYYYYTXYYQYYYYYYYYYYU[YYYWYYVYYYWWYWYYYYYYYYYYYYVYYWSYYWYUYVVZSYYYYYYWYWYTXYSSYYYYUYYYYYYYYYUYYSYYYVYYUXYYYYPYYYYTYUYYUYYYWYYYYUYYWUYYVUYYYPUYTYUVVYRXYYT]YYSTYTYYWTWYYYYYYXYYYSYYYWYPYYYUYYYZYWYYYYYYVYYSYWYYYTUYYYVRUYYUYYYYYYWVYYYZTZUYXYYY[YYWYZVYWYYYYYTYYZWYYYYWYYYWYYYYYZYYYYTXYYY[YYWYYYYWYXYYYYYYYYYYYYYYYVXYYWYVYXWUWXYYYYYXYYYXWYWUYYYYXYYYYYYYYYWYYUYYYTYYWVY[YYZYYYYWYVYWZYYYUYXYVXYYXWYYXUYYYSVYWYZVTYXXYYTVYYWXYWYYUTXYYYYYYXVYXWYYYXYWYYYTYYYXYXYYYYYYXYYVYUYYYXXYYYTZXYYXYYYXYYYRYYYWYUUYXSYYZYYWYTTY\YYYYYUYYWYYYYYUYYYVYYYYYXYYYYXVYYYZYYTYYYYVYXYYYYYYYYYYYYYYYXXYYYYYYWYUUVYYYYYWYXYVWYUXYYYYXYYYYYYYYYYYYVYYYXYYVZYVYY[YYYYSYXYZWYYYWYXYWXYYTWYYXYYYYTZYUYXZVYWWYYVYYY]WYTYYVVYYYYYYYWUYZZYYYXYUYYYTYYYXYYYYYYYYWYYVYTYYYTXYYYWXWYYWYYYUYYUIYYYWWUXYWTYYjYYVYUTYXYYYYYUYYWVYYYYRYYYWYYYYYUYYYYYWYYYPYYRYYYYUYXYYYYYYYYYYYYIYYYUYYZYUYWTQYVYYYYYZYWYUXYVUYYYYVYYYYYYYYYRYYTYYY\YYZXYWYYlYYYYRYNYUWYYYWYSYUWYYVQYYYUYYYUVYWYSZSYSSYYYWYYVZYPYYMUYYYYYYYVNYXSYYYXYSYYYXYYYTYWYYYYYYWYYYYQYYYUWYYYYUVYYSYYYWYYRIYYYVVTXYXUYYZYYVYRWYTYYYYYRYYWXYYYYWXYYUYYYYYVYYXYUSYYYTYYQYYYW[YXYYYYYYYYYYYY]YYVZYYXYXYYXSQUYYYYYXYVYXWYRYYYYYWYYYYYYYYYUYYWYYYSYYVTYWYYQYYYYUYSYW[YYYUYYYWWYYXVYYWRYYYWWYTYVUVYTTYYVWYYTUYVYYVTWYYYYYYXWYVQYYYXYRYYYTYYYUYTYYYYYYVYYPYOYYYRWYYYUVUYYRYYYZYYXXYYYYWYZYX]YYXYYXY[VYXYYYYYXYYWXYYYYYYYYYYYYYYYYYYYXXYYYZYY[YYYYYYXYYYYYYYYYYYYYYYYXYYZYYYWXZYXYYYYYYYXY[XYZWYYYYXYYYYYYYYYYYYXYYYWYYYUY[YYXYYYYYY\YWYYYYZYUYXXYYY[YYXYYYYZWYZYYXWYYZYYXXYYXZYYYYWXYYYYYYYYYYYZYYYYYYYYYXYYYZYXYYYYYYZYYYYZYYYX\YYYX\XYYWYYYYYYVVYYY[WXUY[WYYZYYWYVXYXYYYYYUYYWYYYYYXYYYWYYYYYYYYYYTXXYY]YYWYYYYWYXYYYYYYYYYYYY[YYVXYYZYWYXXSWXYYYYYXYYYXWYUYYYYY[YYYYYYYYYWYYWYYYVYYXXYXYYXYYYYXYXYX[YYYUYZYVYYYYYYYXYYYYUYYXYYXWYVWYYVXYYZWYVYYVVYYYYYYYWXYYWYYYXYUYYYUYYYXYXYYYYYYWYYXYYYYYTZYYYUXWYYVYYYYYYTUYYYWSXRYU[YYcYYSYVOYUYYYYYWYYUSYYYYSYYYPYYYYYXYYYYUOYYYVYYWYYYZXYWYYYYYYYYYYYYPYYUTYYUYQYUS[WTYYYYYZYVYUSYXTYYYYUYYYYYYYYYSYYUYYYUYYTQY\YYdYYYYYYXYXYYYYTYTYQWYYTSYYVSYYYNSYXYWTQYRSYYPYYY[XYUYYVSYYYYYYYWSYVYYYYUYQYYYRYYYXYVYYYYYYWYYTYUYYYUWYYYXYUYYYYYYZYYWTYYYUTYVYTZYY\YYTYTUYXYYYYYVYYVTYYYYWYYYUYYYYYZYYYY[PYYYVYYZYYYZVYVYYYYYYYYYYYYWYYUVYYVYTYUQY\UYYYYYYYTYXSYWVYYYYUYYYYYYYYYUYYRYYYTYYVRY^YY]YYYYZYWYU[YYYYYWYRXYYYWYYVTYYYRVY[YVVWYWTYYWZYY\VYUYYRVYYYYYYYTZYW[YYYWYUYYYXYYYXYVYYYYYYXYYSYVYYYT\YYYXXUYYWYYYWYYTBYYYP]QNYQQYY_YYWYSLYQYYYYY\YYQWYYYYVYYYRYYYYYQYYYY[NYYYRYYQYYYX]YQYYYYYYYYYYYYEYYZOYYPYQYTRQWXYYYYYYYQYWWYSSYYYYSYYYYYYYYYRYYTYYYYYYWRYQYY`YYYYRYVYYPYYYRYQYPVYYLMYYWWYYYSSYNYVXRYSTYYRbYYUOYRYYUSXYYYYYYYCYTOYYYWYRYYYXYYYQYRYYYYYYTYYQY[YYYXNYYY^OUYYUYYYZYYXZYYYZZXYYY[YYYYYYYZXYZYYYYYXYYYXYYYYYYYYXYYYYYXYYYYXYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYXYYZYXYYXXYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYXYYZYYYZYYYYYYYYZYYYYZYYYYYYYYYYYY[YYYYXYYYYYYYYXYYYXXYYXYYYXYYYYYYYYYYYYYYYYYYXYYYXYYYXYXYYYZYYYXYYYYYYYYZYYYYZYYYYXYYYXXYYYZYYYWYYVXYYYYWZVYWYYYZYYWYYUYWYYYYYVYYXXYYYYXYYYWYYYYYZYYYYXVYYYXYYYYYYYYYYYYYYYYYYYYYYYYYWYYYXYWYYWYXUYYYYYYYVYXXYWXYYYYWYYYYYYYYYXYYVYYYXYYVXYYYYYYYYYWYXYWYYYYWYWYVXYYWXYYWXYYYVXYXYXXXYWXYYWXYYWXYXYYUXZYYYYYYWXYYYYYYWYWYYYWYYYWYWYYYYYYYYYVYXYYYYXYYYVXWYY[YYYWYYUPYYYWZYXYUWYYVYYWYYTYXYYYYYXYYWWYYYYUYYYTYYYYYYYYYYXXYYYWYYXYYYXXYWYYYYYYYYYYYYWYYXUYYVYXYXVXVWYYYYYXYVYZVYZXYYYYXYYYYYYYYYVYYYYYYXYYXXYUYYXYYYYXYZYVZYYYWYYYYVYYWYYYVXYYYTVYVYVY[YTWYYUYYYUVYYYY\XXYYYYYYYYYZZYYYYYWYYYWYYYXYWYYYYYYXYYTYUYYY[YYYYYWYYYWYYYYYYXYYYYYXYWYYXYY[YYYYXXYYYYYYYXYYXXYYYYYYYYYYYYYYYYYYYYXYYY[YYXYYYYXYXYYYYYYYYYYYYYYYXXYYYYWYXXZYYYYYYYYYYYXXYXYYYYYYYYYYYYYYYWYYXYYYXYYYWYZYY[YYYYYYYYYXYYYYYZYWXYYWXYYXXYYYYYYWYXYYYWXYYWZYYZYYXYYWXYYYYYYYXXYYZYYYYYWYYYXYYYYYXYYYYYYYYYXYXYYYXXYYYYXXYYYYYYYYYXYYYYXYXXYXZYY[YYWYVXYYYYYYYZYYXXYYYYYYYYVYYYYYYYYYYYUYYYWYYZYYYYYYXYYYYYYYYYYYYXYYWWYYXYXYXW[[XYYYYYYYYYXWYWZYYYYXYYYYYYYYYXYYXYYYXYYYXY[YY[YYYYXYXYYYYYYZYXYXXYYXZYYXXYYYVXYYYXYYYWWYYYZYYYXYZYYWYYYYYYYYWZYXYYYYXYVYYYXYYYYYYYYYYYYZYYXYXYYYWYYYY[XXYYXYYYVYYWWYYYVXWUYXVYY^YYVYRWYTYYYYYZYYVVYYYYUYYYTYYYYYYYYYYZVYYY\YYVYYYY]YVYYYYYYYYYYYY]YYUUYYXYZYWWTYWYYYYYYYXYUWYTRYYYYUYYYYYYYYYUYYUYYYUYYUSY[YYWYYYYVYVYVYYYYZYYYUWYYUUYYWSYYYUSYYYRV[YVVYYTZYYURYWYYSVYYYYYYYV^YYUYYYZYUYYYVYYYWYVYYYYYYUYYTYZYYYVXYYYXSSYYVYYYXYYXTYYYWVZTYUYYY]YYVYXTYXYYYYYTYYWUYYYYXYYYUYYYYYXYYYYWTYYYWYYYYYYZVYXYYYYYYYYYYYYVYYXUYYWYUYVUYWVYYYYYZYXYVVYZVYYYYUYYYYYYYYYTYYSYYYXYYWTYZYY^YYYYWYZYXXYYYXYXYTXYYWXYYWWYYYSUYYYYWWYVVYYV[YYYWYXYYTWYYYYYYYWVYX\YYYWYTYYYVYYYYYWYYYYYYXYYXYVYYYWUYYYZYVYYXYYYXYYWXYYYYXWXYXXYYZYYYYXXYXYYYYYZYYXYYYYYXYYYXYYYYYYYYYYXXYYYYYYXYYYYZYYYYYYYYYYYYYYXYYYYYYXYWYYXYZXYYYYYXYXYXYYXXYYYYYYYYYYYYYYXYYXYYYZYYWXYXYYYYYYYYYYYXXYYYYYXYXXYYXWYYXXYYYXXYXYXY\YWYYYXZYYZWYWYYVVYYYYYYYXXYXXYYYXYXYYYYYYYXYXYYYYYYXYYYYYYYYYXYYYXXXYYXYYYYYYXXYYYYYXYYXZYYYYYXYZWYYYYYYYXYYXYYYYYZYYYYYYYYYYYYYYXXYYYXYYYYYYYXYXYYYYYYYYYYYYXYYXZYYXYYYYXWYXYYYYYYYYYZXYYZYYYYXYYYYYYYYYXYYXYYYYYYYWYWYY[YYYYYYYYXXYYYYYWYVYYYXYYYXYYYYXXYYYXZXYXWYYXZYYXYYWYYXYYYYYYYYWXYYZYYYXYYYYYXYYYZYXYYYYYYZYYXYYYYYYWYYYXYZYYYYYYXYYUXYYYWZXTYXZYYXYYXYWXYWYYYYYYYYYYYYYYWYYYVYYYYYYYYYYYWYYYUYYWYYYYYYXYYYYYYYYYYYYYYYYZYYWYZYYWXYYYYYYYYYXYWXYXYYYYYWYYYYYYYYYXYYXYYYYYYXXYZYYZYYYYYYWYWXYYYXYXYYXYYTVYYXXYYYUXYWYWWVYXYYYUYYYWYYYYYUXZYYYYYYXZYYWYYYYYWYYYYYYYVYXYYYYYYWYYUYYYYYZZYYYWVXYYZYYYXYYVKYYYYUUTYUXYYZYYXYVXYYYYYYYTYYWXYYYYXYYYUYYYYYVYYYYZXYYYZYYWYYYXZYXYYYYYYYYYYYYVYYXWYYWYXYXWWSWYYYYYXYZYZXYWWYYYYWYYYYYYYYYVYYXYYYSYYWXYVYYUYYYYVYTYYWYYYTYXYXWYYWYYYWVYYYSWYWYVWWYUVYYV[YYSUYXYYWVXYYYYYY[TYWSYYYZYUYYYUYYYWYUYYYYYYWYYSYRYYYVUYYYWWXYYXYYYYYYYXYYYYVWXYXZYY[YYUYUWYYYYYYYXYYVWYYYYVYYYYYYYYYXYYYYZVYYYZYYWYYYYZYWYYYYYYYYYYYYYYYWXYYYYVYVVYYWYYYYYYYXYXUYTYYYYYXYYYYYYYYYWYYVYYYWYYWWY[YY[YYYYYYXYWYYYYXYYYUXYYYYYYXYYYYWWYZYXX[YYUYYXZYY^WYWYYWWYYYYYYYVXYWXYYYXYXYYYWYYYXYYYYYYYYXYYVYYYYYV\YYYXYVYYWYYYUYYWFYYYXWU^YVWYYXYYTYRWYWYYYYYQYYTYYYYYYYYYTYYYYYVYYYYSUXYYYYYRYYYXWYWYYYYYYYYYYYYaYYXYYY\YZYWVVTTYYYYYWYTY\VYS[YYYYXYYYYYYYYYSYYUYYYSYYUPYYYYPYYYYTYRYUZYYYWY]YVWYY[VYYTRYYYYVYWYSVWYTSYY[RYY\OYXYYWVWYYYYYYWWYTQYYYWYYYYYUYYYTYRYYYYYYSYYQYOYYYNXYYYTXVYYPYYYYYYXYYYYXYXWYZXYYYYYYYYWYZYYYYYWYYXYYYYYXYYYYYYYYYYYYYYWZYYYXYYXYYYYXYZYYYYYYYYYYYYWYYYXYYZYYYYZXYZYYYYYYYYYXYYVYYYYYYYYYYYYYYYZYYXYYYXYYZXYYYY\YYYYYYXYYYYYYYYWYXZYYXWYYYZYYYWWYWYXYYYXYYYYZYYXYYWYYXYYYYYYYYYWYYWYYYYYXYYYXYYYWYZYYYYYYYYYYYZYYYYXYYYXYYYYYYYYVYYYWYYYVYYWYXXYY\YYWYZTYWYYYYYZYYZXYYYYTYYYVYYYYYYYYYYYVYYY]YYZYYYXZYWYYYYYYYYYYYY[YYYWYYWYUYXUWYXYYYYYXYWYYXYVTYYYYWYYYYYYYYYXYYVYYYWYYVWY]YYYYYYYWYYYX[YYYWYYYYUYYYWYYYTYYYTUYWYYXYYXXYYV]YYYVYVYYSUXYYYYYYY[YZUYYYYYVYYYUYYYYYVYYYYYYTYYYYZYYYZYYYYWYYYYWYYYWYYVWYYYTUZVYVZYY]YYTYVRYUYYYYYUYYWTYYYYUYYYVYYYYYYYYYYXRYYYXYYWYYYZ[YWYYYYYYYYYYYY\YYVUYYWYWYVVWWTYYYYYZYWYVTYTTYYYYSYYYYYYYYYVYYSYYYTYYTQY\YY[YYYYXYZYTXYYYUYWYRUYYVUYYWTYYYQSYYYWUVYVTYYSWYYXWYUYYVTZYYYYYYXYYVWYYYXYRYYYUYYYVYWYYYYYYWYYRYVYYYVWYYYVXTYYYYYYUYYYZYYYWYWSYZWYY^YYWYVXYVYYYYYXYYVWYYYYYYYYVYYYYYWYYYYYTYYYZYYWYYYY[YWYYYYYYYYYYYYYYYYWYYWYWYXWZYUYYYYYYY[YWWYVVYYYYVYYYYYYYYYVYYUYYYXYYUTYXYYYYYYYVYVYWWYYYYYZYUZYYSWYYWUYYYTWYUYW[VYUWYYTYYYSWYWYYWXZYYYYYYUWYYVYYYWYUYYYXYYYVYXYYYYYYVYYSYVYYYVUYYY[WVYY[YYYXYYXYYYYXSWXYXWYYXYYWYTVYZYYYYYXYYWWYYYYVYYYXYYYYYYYYYY[WYYYZYYWYYYYYYXYYYYYYYYYYYYZYYWWYYZYVYUWZZZYYYYYYYXYVVYVXYYYYWYYYYYYYYYVYYVYYYYYYXUYZYYWYYYYXYXYUXYYYXYZYTXYYWVYYZYYYYWWYWYVXYYUVYYXXYY\WYVYYVXYYYYYYYWZY[YYYYZYWYYYWYYYWYZYYYYYYXYYWYWYYYVZYYYYVWYYXYYYWYYYVYYYXWTYYV\YY^YYUYPUYXYYYYY\YYTTYYYYTYYYVYYYYYUYYYYYRYYY\YYXYYYZ]YVYYYYYYYYYYYYXYYUSYYZYUYTTY\VYYYYYYYWYXSYRYYYYYWYYYYYYYYYSYYUYYYUYYXUY]YYZYYYYYYTYTYYYYZYZYSZYY]UYYWWYYYVYY[YTUXY]UYYXZYYbSYXYYTUYYYYYYYT[YWVYYYWYSYYYXYYYVYXYYYYYYYYYVYUYYYVcYYY[TUYYWYYYXYYWVYYYYVSWYXZYYXYYWYZTYXYYYYYVYYTUYYYYWYYYXYYYYYXYYYYWVYYY[YYZYYYXVYWYYYYYYYYYYYYYYYVVYYVYUYWVVWVYYYYYXYYYVWYVWYYYYWYYYYYYYYYVYYUYYYXYYYVYWYYVYYYYXYZYVUYYYWY[YSXYYVVYYWUYYYXVYWYUZXYUUYYUYYYXZYSYYWXXYYYYYYVSYXWYYYXYWYYYUYYYUYWYYYYYYXYYVYWYYYYUYYYYYXYYWYYYSYYVQYYYUY\KYTZYYbYYUYTRYSYYYYYXYYSTYYYYVZYYSYYYYYVYYYYXRZYYSYYWYYYZVYSYYYYYYYYYYYYRYY[QYYSYYYUSVYVYYYYY[YTYUUYXOYYYYPYYYYYYYYYTYYRYYYTYYUQYYYY]YYYYWY_YUTYYYWYVYTTYYPTYYVUYYYMQYaYWURYTTYYRWYYVVYWYYTU[YYYYYZVUYRWYYYUYNYYYRYYYTYVYYYYYYUYYOYTYYYZWYYYVSQYYWYYYXYYRVYYYVZZUYYYYY_YYXYTUYVYYYYYXYYWWYYYYWYYYUYYYYYVYYYYYTYYYUYYXYYYYWYWYYYYYYYYYYYYWYY[XYYVYXYXWXVWYYYYYYYVYWXYWVYYYYVYYYYYYYYYXYYXYYYYYYVVYXYY]YYYYXY[YYYYYYVYSYVWYYUVYYWVYYYTXYWYWWUYUVYYVYYYUTYWYYYXYYYYYYYZXYVVYYYWYTYYYWYYYVYWYYYYYYVYYTYXYYYWSYYYWYVYYXYYYYYY[WYYYXXVWYUYYY[YYTYQVYWYYYYYYYYWVYYYYWYYYWYYYYYXYYYYZUYYYZYYXYYYZ\YXYYYYYYYYYYYYZYYTTYYYYVYWU\[WYYYYYYYYYVTYVYYYYYWYYYYYYYYYUYYVYYYUYYWVY]YY[YYYYXYUYWZYYY[YXYUYYY[VYYXXYYYVVYYYVWYYXUYY[ZYY^UYZYYUXXYYYYYYVYYV[YYYXYUYYYXYYYXYYYYYYYYZYYVYUYYYW\YYY[UWYYWYYYYYYXYYYYYXYXYYXYYXYYYY[XYYYYYYYXYYYXYYYYXYYYXYYYYYZYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYZYYXZYYYYYYYXXXXYYYYYYYYYXXYWYYYYYYYYYYYYYYYXYYXYYYYYYXXYYYYYYYYYXYYYXYYYYYYYYWYYYXXYYYYYYYYYYXYYXXYWYYYXZYYW[YXYYXXYYYYYYYYXYYXYYYYYXYYYXYYYXYYYYYYYYZYYXYYYYYYXYYYXZYYYYYYYXYYUOYYYRSXOYOZYYdYYQYPNYSYYYYYUYYQPYYYYOYYYQYYYYYWYYYYYMZYYUYYXYYY[XYTYYYYYYYYYYYYPYYUQYYPYPYRNZ_OYYYYYYYUYSPYVQYYYYOYYYYYYYYYQYYMYYYVYYWMYZYYiYYYYYYYYTYYYYXYRYKYYYVSYYURYYYJOYXYVWSY[PYYTZYY`RYSYYQPZYYYYYYTSYTTYYYUYJYYYTYYYRYTYYYYYYYYYSYRYYYW_YYY_UQYYYYYYYYYYXYYYXSTXYV[YY^YYSYVVYWYYYYYXYYWSYYYYYXYYXYYYYYWYYYYXRYYY]YYXYYYYZYWYYYYYYYYYYYYYYYPVYY[YTYUTaXXYYYYYXYWYXRYVZYYYYUYYYYYYYXYTYYUYYYSYYVUY`YY[YYYYXYWYWXYYYZYXYSXYYZ\YYXTYYYTUYZYVUZYZTYYWXYY\WYYYYTVYYYYYYYUXYWZYYYVYPYYYWYYYXYWYYYYYYYYYSYTYYYXaYYYZZSYYWYYYYYYSXYYYTXWSYWZYY]YYUY[SYXYYYYYXYYVSYYYYTYYYUYYYYYXYYYY[SYYYZYYUYYYY]YYYYYYYYYYYYYY[YYYTYYUYWYWSYZVYYYYYYYZYUUYVQYYYYUYYYYYYYYYTYYTYYYYYYYSY[YY\YYYYWY\YSZYYY\YWYSXYYWYYYVTYYYUQYXYTYXY[UYYV\YY\WYUYYYWYYYYYYYXZYWVYYYXYTYYY[YYYWYYYYYYYYYYYWY[YYY[ZYYY\YUYYYYYYYYYUWYYYXWZXYXYYY[YYWYYWYXYYYYYVYYZYYYYYXYYYWYYYYYYYYYYWWYYYWYYWYYYYXYYYYYYYYYYYYYYVYYXZYYXYWYXYVWXYYYYYYYWYZYYWYYYYYXYYYYYYYYYWYYXYYYWYYWVYYYY\YYYYVYVYWYYYYWYVYWXYYXVYYXYYYYVXYVYZWVYVXYYXWYYWXYVYYVWZYYYYYYYVYYWYYYYYXYYYVYYYWYXYYYYYYWYYWYWYYYXXYYYVXYYYXYYYXYYXYYYYXWXUYXZYY\YYXYWVYXYYYYYXYYXWYYYYWYYYWYYYYYZYYYYXVYYYYYYYYYYYXYXYYYYYYYYYYYYXYYWXYYXYWYXVYYXYYYYYYYXYYWYWWYYYYVYYYYYYYYYWYYWYYYWYYYWY\YYYYYYYXYYYXXYYYWYVYWWYYWYYYYVYYYVVYZYWVXYWWYYVYYYWWYWYYWWZYYYYYYXWYYWYYYXYUYYYUYYYWYYYYYYYYYYYWYXYYYXYYYYW[VYYXYYYWYYWYYYYVUWUYXYYY\YYXYSVYWYYYYYYYYWWYYYYUYYYYYYYYYYYYYY[UYYYXYY[YYYZYYWYYYYYYYYYYYYZYYYXYYVYYYUTYZWYYYYYYYXYWWYXWYYYYVYYYYYYYYYWYYUYYYYYYTWYYYY[YYYYVYYYVWYYYVYYYUVYYVXYYWVYYYRWYZYVXYYWVYYWYYYXXYXYYUXZYYYYYYY[YZZYYYXYTYYYWYYYYYWYYYYYYWYYXYXYYYXXYYYWXUYYXYYYWYYRHYYYVWVYYXUYYZYYUYSWYUYYYYYSYYXYYYYYWYYYTYYYYYWYYYYVTZYYQYYPYYYYXYXYYYYYYYYYYYYYYYX\YYVYYYXXRSUYYYYYXYTY\XYP[YYYYVYYYYYYYYYSYYVYYYTYYUQYZYYZYYYYSYUYVZYYYUYUYWWYYXSYYWTYYYUWYRYZVVYRSYY[WYYSUYSYYUWYYYYYYYXUYVRYYYXYSYYYTYYYTYSYYYYYYVYYOYQYYYQVYYYUYWYYRYYYXYYUXYYYUXZUYXZYY]YYWYUTYTYYYYYUYYXWYYYYXYYYVYYYYYZYYYYYTYYYWYYYYYYZ\YXYYYYYYYYYYYY[YYZWYYWYZYWWWYWYYYYYYYYYXWYWUYYYYTYYYYYYYYYYYYVYYYXYYWTYZYY\YYYYYYYYVYYYYYYWYTWYYUZYYWTYYYTVYYYXYXYWWYYT\YYVXYXYYWYZYYYYYYYYYWUYYYXYTYYYXYYYWYYYYYYYYXYYTYWYYY[VYYYXXTYYYYYYXYYXXYYYYVWWYWWYY[YYWYUVYYYYYYYWYYXVYYYYWZYYWYYYYYYYYYYZWYYYYYYXYYYZZYWYYYYYYYYYYYYYYYXUYYZYWYVVZYWYYYYYYYYYUUYVVYYYYVYYYYYYYYYXYYTYYYWYYVVYZYYZYYYYXYWYWWYYYWYYYUWYYVXYYXWYYYSVYXYVVYYVVYYVYYYYWYYYYWXZYYYYYYX[YYYYYYXYUYYYXYYYXYYYYYYYYXYYUYYYYYXYYYYWXUYYYYYYYYYYWYYYVZ[VYY[YY\YYXYYXYYYYYYYYYYXWYYYYVYYYZYYYYYXYYYYWXYYY\YYWYYYYVYYYYYYYYYYYYYYWYYXVYY\YWYWX[WWYYYYYYYXYZXYYVYYYYVYYYYYYYYYWYYVYYYUYYXXY[YY\YYYYVYYYWWYYYWYUYXWYYV[YYXVYYYUUYZYVY[YVVYYXVYYXTYYYYUUYYYYYYYZZYWZYYYXYSYYYWYYYYYVYYYYYYWYYVYYYYYYZYYYWYWYYWYYYXYYWFYYYYVVVYVVYYYYYYYWXYXYYYYYUYYXYYYYYXYYYWYYYYYYYYYYXXYYYWYYWYYYYVYVYYYYYYYYYYYYUYYXWYYWYWYXVWVWYYYYYXYVY\YYYYYYYYXYYYYYYYYYVYYVYYYUYYXXYXYY^YYYYUYWYXWYYYWYVYYXYYYYYYWXYYYWXYWYWXVYUWYYXWYYTVYXYYWXXYYYYYYYSYVUYYYXYXYYYUYYYXYUYYYYYYXYYTYMYYYWWYYYXXXYYTYYYXYYZKYYYYWSSYSTYYYYYWYTXYYYYYYYUYYVXYYYYVYYYVYYYYYYYYYYYZYYYYYYTYYYXXYVYYYYYYYYYYYYUYYYVYYZYVYXU[VUYYYYYWYWYYWYVXYYYYXYYYYYYYYYUYYWYYYUYYYYYWYYXYYYYUYUYYXYYYWYVYYYYYZXYYTXYYYUWYUYVWYYUWYYYXYYVTYUYYTWXYYYYYYYVYTTYYYWYUYYYVYYYVYTYYYYYYYYYWYTYYYVVYYYXSWYYTYYYXYYWHYYYYUUVYUUYYXYYXYXWYXYYYYYSYYWYYYYYWYYYVYYYYYXYYYYUYYYYVYYUYYYYUYWYYYYYYYYYYYYSYYWVYYWYVYXVUTWYYYYYXYUY]XYXYYYYYXYYYYYYYYYVYYVYYYTYYXYYXYYdYYYYSYWYXXYYYUYUYWWYYYWYYVWYYYXWYWYWVTYTWYYXUYYTVYWYYWVXYYYYYYYQYVUYYYYYXYYYUYYYWYTYYYYYYWYYTYNYYYXWYYYVYXYYRYYYWYYTJYYYYVVYYVXYYWYYXYWXYZYYYYYSYYXZYYYYXYYYXYYYYYXYYYYVWXYYVYYTYYYXWYWYYYYYYYYYYYYXYYXXYYZYWYX[WSWYYYYYWYVY[YYT^YYYYZYYYYYYYYYVYYXYYYTYYWXYXYY[YYYYVYWYYZYYYWYYYXYYYVWYYWYYYYW[YWYWVUYSVYYYVYYUVYTYYXVXYYYYYYWTYWTYYYYYXYYYUYYYWYVYYYYYYXYYUYQYYYXWYYYUYYYYTYYYYYYXWYYYXWZVYYZYYZYYXYXWYWYYYYYVYYYXYYYYWYYYXYYYYYXYYYYVXYYYYYYXYYYYWYYYYYYYYYYYYYYXYYXXYYXYXYYXXXYYYYYYYYXYWXYYXYYYYXYYYYYYYYYWYYVYYYVYYXWY[YYZYYYYXYYYXZYYYWYWYVWYYXWYYXWYYYVWYZYZXWYXXYYWYYYYXYZYYVXYYYYYYYYVYXXYYYXYXYYYWYYYYYYYYYYYYYYYWYXYYYYYYYYWYWYYXYYYXYYWWYYYWXXUYWZYY[YYXYYXYXYYYYYWYYXWYYYYWYYYXYYYYYYYYYYYXYYYYYYXYYYYXYXYYYYYYYYYYYYWYYYWYYYYXYYWXXXYYYYYYYWYXXYYWYYYYWYYYYYYYYYXYYWYYYVYYXXYYYYYYYYYYY[YXXYYYWYXYWXYYXXYYXWYYYVXYZYWWXYXYYYXYYYYWYXYYXXYYYYYYYZWYWXYYYXYVYYYWYYYXYXYYYYYYXYYWYXYYYXXYYYWZWYYXYYYXYYTVYYYTUYYYU]YY]YYUYUSYUYYYYY[YYUTYYYYRYYYWYYYYYXYYYY]SYYYUYY[YYYZ^YUYYYYYYYYYYYYWYYWUYYXYTYUU[[TYYYYYZYWYWUYXTYYYYTYYYYYYYYYSYYUYYYVYYVRY]YY_YYYY\Y^YV\YYY[YYYQVYYXWYYWVYYYZUY]YTTYYXUYYV]YY^\YWYYZUYYYYYYYYYYW[YYYWYUYYYWYYYXYWYYYYYYYYYYY[YYYXZYYYXZQYYXYYYXYYVSYYYYZVWYVWYY\YYXYXXYWYYYYYWYYYYYYYYXYYYVYYYYYZYYYYYXYYYXYYWYYYX]YWYYYYYYYYYYYYXYYVVYYWYYYYWYYXYYYYYWYWYZXYXVYYYYWYYYYYYYYYWYYYYYYVYYZZY[YY[YYYYWYXYYYYYY[YXYWXYYYXYYWWYYYVXYXYYVZYWWYYYZYYWUYWYYXXXYYYYYYXWYWYYYYYYYYYYVYYYUYVYYYYYYWYYXYWYYYYXYYYYXWYYVYYYYYYVTYYYXUYVYZ[YY^YYUYWVYSYYYYYRYYYXYYYYXXYYUYYYYYVYYYYOUXYY_YYXYYYXXYXYYYYYYYYYYYY[YYUUYYYYTYVWVUXYYYYYWYXYZTYWTYYYYYYYYYYYYYYWYYSYYYOYYSSYaYYWYYYYUYVYV\YYYTYVYVWYY\WYYVNYYYSRY]YYVSYYUYYSWYY[UYWYYTRWYYYYYYVUYWTYYYUYTYYYOYYYYYWYYYYYYTYYPYUYYYU]YYYP[TYYRYYY\YY`WYYYRRYUYY[YY]YYTYVTYWYYYYYSYYYWYYYYYYYYTYYYYYZYYYYWSYYYXYY_YYYZTYVYYYYYYYYYYYYXYYZRYYZYQYSU`ZWYYYYYYYVYVSYTTYYYYSYYYYYYYYYUYYSYYYVYYRVY^YY\YYYY[Y[YVVYYYVYYYSVYYY]YYWUYYYRTYaYWZYYVTYYU\YY^YYYYYRWZYYYYYYUVYY\YYYTYXYYYYYYY[YWYYYYYYYYYOYWYYYV\YYYX]SYYVYYYXYYVIYYYYVUVYWUYYXYYXYVXYYYYYYYUYYXYYYYYXYYYWYYYYYYYYYYXXYYYVYYUYYYXYYWYYYYYYYYYYYYWYYYWYYXYWYXVWRWYYYYYXYWY\YYVZYYYYYYYYYYYYYYVYYWYYYUYYWYYWYY[YYYYUYUYYXYYYWYTYXXYYYWYYWXYYYXXYWYWWVYTVYYYVYYTUYWYYWWXYYYYYYZTYWVYYYYYXYYYVYYYXYUYYYYYYXYYWYOYYYWUYYYWXYYYTYYYYYYWXYYYXY[WYVYYY\YYWYVVYXYYYYYZYYYWYYYYXYYYXYYYYYYYYYYZWYYYYYYZYYYZZYXYYYYYYYYYYYYWYYXVYYXYWYXWY[XYYYYYYYXYWWYVYYYYYXYYYYYYYYYWYYVYYYXYYXVYZYYZYYYYYYYYW[YYYXYXYVYYYYVYYWZYYYVXYXYXWYYWWYYY[YYYUYYYYVXZYYYYYYWXYXXYYYXYXYYYWYYYYYXYYYYYYYYYYYYYYYXWYYYYYXYYXYYYZYYVZYYYXWXZYYZYYYYYYY[WYXYYYYYYYYYVYYYYXYYYYYYYYYYYYYYYWYYYXYYXYYYYZYXYYYYYYYYYYYYYYYYYYYZYVYY[XXXYYYYYYYXYYXYYZYYYYYYYYYYYYYYWYY[YYYYYYZXYZYYYYYYYYYZYWYYYYYYXYZXYYXXYYXWYYY[[YYYXXWYVZYYWZYYZYYVYYYXYYYYYYYYXYXYYYYXYWYYYXYYYWYXYYYYYYXYYYYYYYYXWYYYXZXYYYYYY[YYWZYYYXUUUYW[YY\YYYYWTYZYYYYYWYYWWYYYYWYYYVYYYYYYYYYY[XYYY[YYWYYYZZYYYYYYYYYYYYYYWYYXXYYYYTYXW[XUYYYYYZYWYWWYWWYYYYVYYYYYYYYYTYYVYYY[YYVUYXYYZYYYYWYYYWZYYYXYXYUXYYXUYYVXYYYYWYXYV[XYYWYYWYYY]UYUYYSYZYYYYYYX[YXVYYYXYUYYYUYYYWYXYYYYYYYYY[YZYYYXZYYYXWWYYZYYYXYYWVYYYVW\RYZZYY^YYWYYUYWYYYYYWYYZWYYYYWYYYWYYYYYVYYYYUTZYYWYYWYYYYRYXYYYYYYYYYYYYUYYYWYYWYTYWWXVWYYYYYZYWYYXYYUYYYYUYYYYYYYYYXYYVYYYSYYWVY\YY_YYYYWYYYWXYYYRYQYWWYYVVYYWUYYYTVY[YYVUYVVYYTUYYTVYWYYUUZYYYYYYXPYVVYYYWYRYYYSYYYVYUYYYYYYVYYUYWYYYXVYYYU\UYYZYYYYYYXZYYYXYXWYZXYY[YYXYXVYXYYYYYZYYYXYYYYYYYYXYYYYYZYYYYYXYYYYYYXYYYYXYXYYYYYYYYYYYYYYYXYYYYYXYYYYYXYYYYYYYYYYXYXYYYYYYYYYYYYYYYXYYXYYYXYYYXYYYYYYYYYXYXYWZYYYXYXYWYYYWXYYYYYYYWXYXYWXXYXYYYYYYYYXYYYYYYYYYYYYYYZYZXYYYYYYYYYXYYYXYYYYYYYYYYYXYYYYYXYYYYYYYYYZYYYWYYXRYYYWRWKYXSYYYYYSYWTYWYYYYYVYYWTYYYYWYYYPYYYYYWYYYYSSYYYVYYWYYYYTYVYYYYYYYYYYYYNYYWTYYRYTYVUYWUYYYYYYYVYUTYWTYYYYRYYYYYYYYYWYYSYYYQYYVVYYYYVYYYYVYUYYUYYYRYVYUXYYQWYYWSYYYQUYZYXVUYRSYYRUYYRVYUYYRUYYYYYYYVRYYTYYYUYQYYYTYYYWYYYYYYYYSYYNYRYYYUUYYYWWSYYYYYYVYYUTYYYXSVSYVWYY[YYUYSRYWYYYYYTYYUTYYYYSYYYVYYYYYYYYYYVUZYYZYYVYYYYVYVYYYYYYYYYYYYYYYXTYYUYTYSSWWTYYYYYYYXYUTYUSYYYYTYYYYYYYYYTYYTYYYUYYWUY[YY[YYYYXYWYUTYYYWYYYRUYYVUYYWTYYYSSYYYWUWYWTYYTXYYYYYTYYVUYYYYYYYVTYYWYYYXYUYYYUYYYUYVYYYYYYXYYTYUYYYTWYYYVVSYYWYYYWYY]JYYY\UUUYUUYYWYYVYWXYZYYYYYQYYVYYYYYZYYYVYYYYYWYYYYVVYYYXYYWYYYYTYWYYYYYYYYYYYYSYYWWYYYYVYYWUSVYYYYYXYVY[WYVZYYYYXYYYYYYYYYTYYVYYYTYYWYYWYY^YYYYUYUYYWYYYTYVYVYYYVUYYWWYYYVXYUYTTUYRVYYWVYYUXYXYYWXXYYYYYYXTYWVYYYWYWYYYVYYYVYUYYYYYYVYYTYOYYYVXYYYUYVYYVYYYYYYYXYYYYYYXYYYYYYYYYYYXYYYYYYYWYYZZYYYYZYYYYYYYYYZYYYYXXYYYYYYYYYYYXYYYYYYYYYYYYYYZYYYYYYYYYYZYXXYYYYYYYYYYZYYXYYYYYYYYYYYYYYYYYYZYYYXYYZXYYYYYYYYYYYYYYZYYYYYYYYYYYXYYYXXYYYYYYYYXYXYXZYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYZYYYYYYYYZYYXYZYYYYZYYYXYZYYYYYYWYYRHYYYV]RYYW]YY\YYUYWSYUYYYYYVYYSUYYYYSYYYRYYYYYWYYYYXWYYYUYYXYYYYYYXYYYYYYYYYYYYTYYWSYY\YYY`VUPVYYYYYXYWYTUYYRYYYYWYYYYYYYYYTYYYYYYXYY[[YRYY^YYYYYYPYWYYYYXYTY_WYYWUYYYUYYYRQYYYOXWYXTYYTWYYSPYVYYSVXYYYYYYXUYYSYYYXYVYYY[YYYTYYYYYYYY`YYQYRYYYWUYYYWSXYYUYYYYYYYZYYYWXWRYYXYY\YYWYWSYWYYYYYXYYUWYYYYUYYYVYYYYYYYYYYYVYYYSYYZYYYYXYYYYYYYYYYYYYYVYYYUYYVYVYXXWZWYYYYYYYVYXWYUWYYYYXYYYYYYYYYVYYXYYYYYYVWYYYY\YYYYYYZYXVYYYWYWYVVYYTUYYXWYYYSUY[YWZWYWUYYVZYYTYYTYYWXZYYYYYYVUYXVYYYXYUYYYYYYYUYXYYYYYYXYYWYWYYYYZYYYXVVYYZYYYZYYSVYYYVWWRYXWYY]YYVYXSYWYYYYYVYYYXYYYYUYYYVYYYYYXYYYYWUYYYVYYUYYYZWYYYYYYYYYYYYYYUYYXXYYVYUYXWVYVYYYYYYYWYXXYTVYYYYWYYYYYYYYYTYYWYYYWYYVTYYYY_YYYYVYVYVYYYYVYVYUWYYWQYYXWYYYRUYWYYXUYVWYYWXYYUUYPYYSUZYYYYYYVUYVSYYYYYSYYYTYYYTYVYYYYYYWYYVYVYYYVZYYYUUXYYWYYYXYYVJYYY[UUYYUWYYYYYXYWXYYYYYYYTYYXYYYYYXYYYXYYYYYXYYYYWYYYYWYYVYYYYUYVYYYYYYYYYYYYYYYYXYYZYXYXVWSWYYYYYXYUY\YYX[YYYYZYYYYYYYYYVYYWYYYUYYXYYXYYYYYYYUYUYXWYYYVYVYWYYYZWYYVYYYYWYYWYWWWYVVYYYUYYVUYXYYWVXYYYYYYYSYVTYYYXYYYYYVYYYXYUYYYYYYWYYUYPYYYWWYYYWYYYYTYYYXYYVWYYYWYZVYYYYYZYYXYWWYXYYYYYXYYXYYYYYXYYYXYYYYYYYYYYYWYYYXYYXYYYYXYWYYYYYYYYYYYYWYYYXYYXYWYXYZXXYYYYYYYXYYXYYZYYYYYYYYYYYYYYWYYWYYYYYYXWYXYY\YYYYXYXYXXYYYYYWYXXYYXWYYWXYYYWYYXYWXXYVXYYVXYYZXYXYYXWYYYYYYYYXYZWYYYYYVYYYWYYYXYXYYYYYYXYYYYZYYYXYYYYXXYYYXYYYZYYUYYYYWWZUYV[YY]YYVYTUYVYYYYYWYYXUYYYYVYYYXYYYYYYYYYYXTYYYYYYXYYYZZYXYYYYYYYYYYYYWYYWVYYZYWYWU[ZWYYYYYZYXYWUYVYYYYYWYYYYYYYYYVYYVYYYTYYXUY]YY]YYYYYY\YVZYYYXYVYUXYYXYYYXWYYYTUY[YWUXYXWYYW\YY[VYZYYWWYYYYYYYVWYWXYYYWYTYYYVYYYVYZYYYYYYZYYUYTYYY\]YYYXYUYYXYYYYYYWXYYYYYYYYXYYYZYYXYXXYXYYYYYYYYXYYYYYXYYYXYYYYYYYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYXYYZXYYYYYYXXYYXYYYYYYYXYXYYXYYYYYYYYYYYYYYYXYYYYYYYYYXXYYYYZYYYYYYZYXYYYYXYXYXYYYXXYYXYYYYYXYYYXYYYYXYYXYYYZXYXYYYXYYYYYYYXWYXWYYYXYYYYYXYYYXYZYYYYYYYYYYYYYYYXYYYYYYXYYYYYYXYYUYYYYXWUWYXZYYYYYWYXWYYYYYYYXYYWWYYYYTYYYYYYYYYXYYYYZWYYYZYYYYYYYXYYYYYYYYYYYYYYXYYWXYYZYUYXXVVWYYYYYYYYYWXYWWYYYYXYYYYYYYYYVYYWYYYWYYZWYXYYYYYYYWYZYWXYYYWYXYXXYYUWYYXVYYYYXYYYTXXYVXYYVXYYVZYUYYVWZYYYYYYYVYZXYYYYYUYYYXYYYWYXYYYYYYXYYXYZYYYXVYYYVXWYYXYYYZYYWWYYYWXWYYXZYYZYYYYVUYXYYYYYYYYVXYYYYXYYYWYYYYYXYYYYZWYYYZYYXYYYY[YXYYYYYYYYYYYYYYYYYYYXYWYXXXYXYYYYYYYVYXXYWXYYYYXYYYYYYYYYWYYXYYYZYYZVYXYYYYYYYWYYYWXYYYWYXYWYYYWWYYXWYYY[ZYXYVXYYZXYYUZYY\WYWYYVXYYYYYYYXZYYXYYYWYWYYYYYYYXYXYYYYYYXYYWYYYYYXZYYYYXXYYWYYYVYYVUYYYUTYQYYXYY]YY[YRSYVYYYYYXYYRUYYYYTYYYUYYYYYWYYYYZVYYY\YYXYYYZVYVYYYYYYYYYYYYZYYYUYYVYVYXVWXUYYYYYYYVYVYYWVYYYYUYYYYYYYYYXYYUYYYUYYWVYXYYZYYYYWYZYVWYYYVYZYU[YYVVYYUTYYYT\Y[YVXVYYWYYUXYY\SYXYYWUZYYYYYYZ\YURYYYWYTYYYVYYYVYVYYYYYYUYYUYTYYYW^YYYZWUYYZYYYYYYWZYYYVVZUYW]YY`YYVY\VYXYYYYYWYYXWYYYYXXYYXYYYYYXYYYY[UYYYYYYZYYYYWYXYYYYYYYYYYYYYYYVUYYSYWYWT^ZUYYYYYYYUYXVYYYYYYYTYYYYYYYYYVYYUYYY[YYWUY]YY\YYYYWY[YWXYYY[YTYUUYYV]YYUVYYYWVY]YUZYYXUYYXTYYYYYXYYWXZYYYYYYWYY^[YYYVYRYYYZYYY[YWYYYYYYWYY[Y]YYY[XYYY[]VYYYYYYXYYZMYYY[WOYYWZYYXYYVYVYYZYYYYYSYYVWYYYYUYYYXYYYYYXYYYYWYXYY\YYVYYYXXYWYYYYYYYYYYYYWYYUVYYZYVYYUUQTYYYYYXYXYWWYVWYYYYXYYYYYYYYYTYYVYYYVYYZXYWYYUYYYYVYUYWXYYYWYZYXXYYXXYYWWYYYYVYUYTZYYTUYYXWYYUVYTYYTVXYYYYYYWUYWVYYYYYXYYYUYYYUYWYYYYYYWYYVYSYYYVUYYYWUWYYTYYYWYYSWYYYTZYWYX[YY_YYUY[TYVYYYYYYYYUWYYYYWYYYUYYYYYXYYZYXTYYYUYYWYYYY[YYYYYYYYYYYYYYZYYXXYYVYYYWWXUWYYYYYYYXYWWYUVYYYYUYYYYYYYYYUYYWYYYYYYVQY[YY[YYYYXY\YUZYYYXYUYTVYYVUYYXTYYYWTYVYWUVYTVYYWVYYZVYUYYZVYYYYYYYYXYWVYYYWYVYYYTYYYUYVYYYYYYUYYVYYYYYUWYYYV]VYYWYYYYYYVXYYYXXXWYXZYY[YYXYWWYYYYYYYXYYWWYYYYWYYYYYYYYYYYYYYYWYYYXYYXYYYYYYYYYYYYYYYYYYYXYYXWYYYYXYXXYYXYYYYYYYXYYWYXXYYYYXYYYYYYYYYVYYXYYYXYYYXYYYY[YYYYXYZYXYYYYYYXYWXYYXXYYYXYYYXXYZYWXYYWWYYYZYYYYYYYYXXYYYYYYYZXYYZYYYXYWYYYXYYYXYXYYYYYYYYYYYYYYYYXYYYYXWYYXYYYXYYSLYYYWYSWYWZYYXYYWYWVYWYYYYYVYYWWYYYYVYYYTYYYYYWYYYYXWYYYUYYWYYYYYYXYYYYYYYYYYYYWYYXUYYZYYY\UWTVYYYYYXYWYXWYXVYYYYWYYYYYYYYYVYYXYYYUYY[ZYWYY\YYYYWYTYXZYYYXYUYZWYYWXYYXWYYYUUYXYTXWYWVYYWXYYURYXYYUVXYYYYYYYVYXWYYYXYVYYYYYYYWYYYYYYYY\YYUYQYYYWVYYYXVXYYUYYYYYYW[YYYWVXXYYYYYWYYYYUUY\YYYYYXYYYXYYYYWYYYWYYYYYZYYYYYWYYYYYYXYYYYYYZYYYYYYYYYYYYXYYWWYYYYWYXYYZZYYYYYYYWYWYYWXYYYYXYYYYYYYYYVYYXYYY\YYZWYZYYWYYYYXYXYVYYYYXYWYUXYYVWYYZZYYYYXYWYW[YYXYYYYXYYYWYXYYWZYYYYYYYY\Y[XYYYZYXYYYXYYYXY[YYYYYYYYYYY[YYYWWYYYZXXYYZYYY\YYWYYYYXWWVYYXYYYYYYYVYY\YYYYYYYYYXYYYYYYYYYYYYYYZYYYY[XYYYXYYYYYYYWYXYYYYYYYYYYYYYYYXZYYYYWYXWYZYYYYYYYYWYYWYWZYYYYYYYYYYYYYYYYYXYYYYYY[ZYYYYYYYYYYYYYXZYYYYYXYW[YYXXYYYYYYYWYYWYYZYYWXYYZYYYYXYXYYYZYYYYYYYWYYZXYYYYYWYYY[YYYXYYYYYYYYYYYZY[YYYVWYYYZYYYYXYYYYYYYTYYYYXXVYVVYYYYYYYXWYXYYYYYXYYWYYYYYWYYYWYYYYYYYYYYYWYYYWYYXYYYYWYXYYYYYYYYYYYYXYYXXYYXYXYXWYZWYYYYYXYWY[XYVXYYYYYYYYYYYYYYWYYXYYYYYYXZYXYYZYYYYVYXYXXYYYYYVYWYYYWXYYWYYYYXYYYYXZWYWXYYXVYYVYYVYY[WXYYYYYYZXYXVYYYXYYYYYVYYYXYXYYYYYYYYYXYUYYYWXYYYW[ZYYXYYYYYYWZYYYZWXUYVWYYZYYVYTZY_YYYYYYYYXYYYYYXYYYYYYYYYXYYYYXZYYYYYYZYYYYXYXYYYYYYYYYYYY[YYXZYY\YXYXUXZWYYYYYYYYYWVYU^YYYY[YYYYYYYYYUYYVYYYYYYU\YUYY[YYYYYYXYWXYYYWY[YS^YY\WYYX_YYYW_YVY^ZZYXTYYYXYYZRYXYYYYYYYYYYYWYYYYYYYYYWYYYXYYYYYZYYYYYYXYY]YYYYYSXYYYZXXYYZYYYYYYXXYYYWWXUYXVYYYYYYYUVYWYYYYYZYYXWYYYYWYYYVYYYYYXYYYYZUYYYYYYWYYYYZYXYYYYYYYYYYYYXYYZWYYWYXYYWVYWYYYYYZYWYWYYWVYYYYVYYYYYYYYYYYYWYYYWYYXVYYYYWYYYYXYYYYXYYYWYYYWZYYVWYYXVYYYWYYZYXXXYZWYYVXYY[UYVYYSWZYYYYYYYYYYWYYYXYVYYYVYYYWYYYYYYYYVYYVYTYYYXZYYYYXWYYZYYYXYYYXYYYZXWYYXYYYZYYXYZWYZYYYYYXYYWXYYYYZYYYZYYYYYYYYYYWZYYY[YYXYYYY\YXYYYYYYYYYYYYZYYYYYYYYWYXWWXXYYYYYYYXYXXYXVYYYYXYYYYYYYYYWYYWYYYZYYXUYZYYWYYYYYYWYVXYYYZYZYWYYYXYYYYXYYYYVYXYXX[YXXYYY[YYZXYXYYWYYYYYYYYVYYYZYYYYYZYYYWYYYVYXYYYYYYXYYZYYYYYXXYYYXYXYYXYYYVYYPYYYYQV^XYXZYY`YYSYYRYUYYYYYVYYUUYYYYSYYYSYYYYYZYYZYWQYYYWYYXYYYZXYXYYYYYYYYYYYY[YYTWYYTYTYVUVSTYYYYYYYTYXVYTUYYYYSYYYYYYYYYUYYSYYYVYYVQY\YY^YYYYXY[YT[YYYQYSYQSYYYTYYXSYYYSWYVYZTUYTUYYTUYYXVYTYYZSZYYYYYYZUYTSYYYWYTYYYQYYYUYSYYYYYYSYYSYWYYYVXYYYU\TYYZYYYXYYYYYYYYYYZYYYYYZYYXYWXYXYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYYZYXYYYYYYYYYYYYXYYYXYYYYYYXYYYYYYYYYYYYYYXYWZYYYYYYYYYYYYYYXYYXYYYYYYYWYYYYYYYYYXYXYXYYYYYYXYXXYYXYYYXYYYYYYYYYYYYYXYYYYYYYZXYYYYYXYYYYYYYXZYXYYYYXYXYYYYYYYYYYYYYYYYYYYXYYYYYX[YYYYYYYYYYYYWYYUFYYYYTVYYVUYYZYYUYSWYXYYYYYRYYVYYYYYVYYYVYYYYYVYYYYSWXYYVYYSYYYXWYVYYYYYYYYYYYYYYYWXYY\YWYVUUSVYYYYYWYUY[VYS\YYYYZYYYYYYYYYSYYUYYYSYYUUYYYY]YYYYSYSYWZYYYWYWYUYYYYVYYVVYYYYYYWYWUUYUTYYZUYYXRYWYYWUXYYYYYYWRYURYYYWYUYYYTYYYUYSYYYYYYUYYRYLYYYTXYYYVWWYYQYYYUYYXUYYYTYVTYR\YY^YYVYQRYVYYYYYZYYSUYYYYRZYYUYYYYYYYYYYZVYYYWYYYYYY[^YTYYYYYYYYYYYYVYYYQYYVYXYSTX\TYYYYYZYRYSTYTUYYYYTYYYYYYYYYSYYTYYY[YYSUYZYY[YYYYXY[YVWYYYZYVYQXYYWTYYVZYYYOVYYYXXWYZSYYW\YY[XYTYYXW[YYYYYYUYYUVYYYXYTYYYYYYYUYYYYYYYYYYYYYWYYYVXYYY\WRYYXYYYXYYXTYYYWYWZYW[YYWYYUYXVYWYYYYYWYYWVYYYYSYYYUYYYYYXYYYYYVYYY[YYYYYYYZYXYYYYYYYYYYYYWYYYTYY[YUYXVSUXYYYYYYYXYVUYWYYYYYVYYYYYYYYYVYYWYYYTYY[VYXYY\YYYYWYZYWXYYYWY[YWXYYVWYYWVYYYWWYYYTTXYXWYYVYYY]WYYYYUUZYYYYYY_VYZUYYYXYXYYYXYYYXYWYYYYYYXYYTYVYYY[WYYYUUYYYWYYYYYYUVYYYV[WUYYZYY\YYWYXSYWYYYYYYYYWWYYYYXYYYVYYYYYYYYYYYVYYYWYYYYYYYXYXYYYYYYYYYYYYTYYZVYYWYXYXWWXXYYYYYZYWYXWYVXYYYYVYYYYYYYYYUYYXYYYYYYXWYXYY^YYYYYY[YXXYYYXYUYWWYYUVYYYXYYYWUYYYYVUYUWYYXZYYWVYTYYVWYYYYYYYXUYXZYYYXYVYYYUYYYWYXYYYYYYYYYXYZYYY[UYYYVVWYYXYYYZYYW]YYYYTXWY[VYYXYYXYUTY\YYYYYVYYYXYYYYWYYYWYYYYYYYYYYXYYYYZYYYYYYXZY[YYYYYYYYYYYYWYYWWYY[YVYWXYYZYYYYYXYXYWXYVWYYYYXYYYYYYYYYWYYWYYY\YYYXYZYYVYYYYYYXYUXYYYXYWYVWYYWVYY]YYYYXVYVYX[XYVWYYZYYYXZYVYYWYYYYYYYYXXYZWYYY\YVYYYWYYYXY]YYYYYYYYYXYZYYYXVYYYYVWYY[YYYYYYXZYYYYYXXYZXYYYYYXYYXYZYYYYYWYYZYYYYYYYYYYYYYYY[YYYYYZYYYXYYXYYYYZY[YYYYYYYYYYYYXYYYZYYZYXYZ[XXYYYYYYYYYYXXYXYYYYYZYYYYYYYYYZYYXYYYYYYZYYZYYZYYYYYYYYZYYYYYYYYYYYYXXYYZZYYYXXYXYZXYYXYYYZZYYYZYWYYXXYYYYYYYXYYZYYYYYYYYYYXYYYXYZYYYYYYYYYZYYYYYYXYYYXYYYY[YYYUYYQEYYYUVX\YVVYY[YYQYQWYSYYYYYQYYUZYYYYUXYYUYYYYYVYYYYTTYYYUYYQYYYXWYWYYYYYYYYYYYY^YYU]YY[YYYWYUQRYYYYYXYPYZWYQ_YYYYYYYYYYYYYYRYYVYYYQYYSOYXYYZYYYYTYTYT\YYYUYYYVVYYYTYYTTYYYUXYTYWSVYSRYYYUYYXPYWYYXTYYYYYYYUTYWRYYYVYRYYYTYYYTYPYYYYYYSYYLYOYYYRZYYYSYVYYPYYYXYYUVYYYXTUTYVXYYZYYVYYTYXYYYYYVYYWTYYYYUYYYUYYYYYYYYYYYXYYYYYYXYYYXXYXYYYYYYYYYYYY[YYVTYYXYTYWUZWXYYYYYWYYYYVYXVYYYYXYYYYYYYYYVYYVYYYWYYWWYWYY]YYYYWYYYWWYYYWYVYXVYYVXYYXWYYYVTYWYUWXYTVYYUXYYWWYZYYYXXYYYYYYXYYZYYYYYYUYYYZYYYXYWYYYYYYYYYVYWYYYXWYYYXWWYYWYYYXYYWUYYYVXZWYX\YYYYYXYZVYXYYYYYVYYXYYYYYWYYYXYYYYYYYYYYXXYYYUYYXYYYYVYXYYYYYYYYYYYYWYYXYYYWYWYYYVVXYYYYYYYXYYXYXXYYYYWYYYYYYYYYXYYXYYYVYYXXYYYY\YYYYWYYYXZYYYVYWYWWYYWWYYXWYYYVWYWYYWVYUXYYVWYYYXYXYYVWYYYYYYYZWYYYYYYXYWYYYVYYYXYWYYYYYYXYYVYWYYYYXYYYVYXYYXYYYXYYWRYYYYVWUYUWYYWYYXYSTYWYYYYYUYYWWYYYYWXYYSYYYYYYYYXYWZYYY_YYWYYYYZYXYYYYYYYYYYYY]YYVRYYYYWYVWWWWYYYYYXYYYVWYWUYYYYVYYYYYYYYYWYYVYYYVYYWUY\YYYYYYYVYWYWXYYYXYZYVWYY[VYYVVYYYWTYVYVVYYVVYYUYYY\SYZYYVXVYYYYYYYZYWYYYYYYWYYYVYYYWYWYYYYYYYYYVYVYYYYWYYYXUXYYUYYYUYYQKYYYXUZWYVVYY[YYTYQTYUYYYYYTYYWXYYYYTYYYSYYYYYWYYYYVVYYYVYYTYYYX[YVYYYYYYYYYYYY]YYUXYYUY[YVXTSVYYYYYXYTYZYYVWYYYYUYYYYYYYYYSYYWYYYUYYTSYWYYVYYYYUYVYWYYYYWYVYUVYYXUYYWUYYYRVYYYZVWYUUYYXWYYRQYXYYVVXYYYYYYYWYUTYYYYYTYYYUYYYTYTYYYYYYTYYQYPYYYTXYYYVUUYYUYYYYYY\YYYYXWY[YZ[YY\YYVYYUYXYYYYYXYYZYYYYY[YYYYYYYYYWYYYYUWYYY_YY[YYYYYYYYYYYYYYYYYYYZYYWUYYZYUYVW[ZYYYYYYYYWYZUY\XYYYYWYYYYYYYYYVYYXYYYVYYWWY_YYUYYYYWYYYUZYYYXYYYWVYY\YYYVVYYYYVY\YYXVYZXYYVVYY_YYZYYYWXYYYYYYWXYZVYYYWYWYYYWYYYZYYYYYYYYYYYVYXYYYX^YYYV]XYYWYYYYYYQVYYYUXXUYU[YY\YYVYYTYWYYYYYYYYUUYYYYVYYYXYYYYYZYYYYXUYYYXYY[YYYYZYWYYYYYYYYYYYYWYYYUYYWYSYVV[XVYYYYYYYVYWWY[UYYYYUYYYYYYYYYVYYVYYYYYYYTYWYY\YYYY\YbYWYYYYXYXYWVYYVYYYVWYYYXUY[YWWZYWXYYV[YY\YYZYY]WZYYYYYYZYYVZYYYWYUYYYXYYYWYUYYYYYYWYYZYZYYYXWYYYZ\VYYWYYYYYYOZYYYVV[TYV[YY^YYWYYTYWYYYYYXYYUVYYYYXYYYSYYYYYWYYYYYUYYYWYYYYYYY\YWYYYYYYYYYYYYUYY^WYYWYWYUW^ZSYYYYYZYYYVXYWWYYYYXYYYYYYYYYWYYTYYYYYYVWYXYY_YYYYXYVYZ[YYY\YXYRWYYVUYYYZYYYWXYYYTWTYRXYYVaYYTWYUYYUWZYYYYYYX]YZZYYYYYTYYYXYYY\YYYYYYYYYYY\Y\YYYXQYYYXSTYYZYYYWYYWFYYYXVVVYSTYY[YYXYTUYYYYYYYVYYWXYYYYWYYYUYYYYYXYYYYYXYYYUYYUYYYYVYVYYYYYYYYYYYYRYYVVYYVYVYXUVYWYYYYYXYSY\YYWYYYYYXYYYYYYYYYUYYVYYYWYYXXYVYYeYYYYTYVYXWYYYUYVYWYYYXUYYTYYYYUXYUYWWVYVWYYXVYYTTYUYYWWYYYYYYYYRYTRYYYXYVYYYUYYYUYTYYYYYYVYYTYNYYYVVYYYXWXYYSYYYXYYXVYYYVX[\YVYYYYYYVYWVYUYYYYYXYYWXYYYYYYYYYYYYYYWYYYYWVYYYYYYXYYYYYYXYYYYYYYYYYYY]YYX\YYYYZYWXYYVYYYYYYYWYXXYV[YYYYXYYYYYYYYYXYYWYYYXYYWTYYYYVYYYYXYYYVXYYYXYYYUVYYVXYYWVYYYYVYZYUWXYXWYYWXYY_UYXYYWWYYYYYYYVYYYXYYYWYWYYYWYYYWYWYYYYYYWYYTYYYYYUZYYYVYWYYWYYYXYYTVYYYVXWZYZ[YYZYYUYWVYUYYYYYWYYVVYYYYTXYYTYYYYYXYYYYWSYYYZYYUYYYY[YXYYYYYYYYYYYY]YYUXYYXYZYVXVWVYYYYYYYVYXVYUWYYYYVYYYYYYYYYVYYVYYYUYYXRY[YYYYYYYWYYYU\YYYYYXYUWYYXVYYXRYYYVVYXYWWYYZVYYUXYY[XYUYYVVXYYYYYYVZYZTYYYXYTYYYXYYYUYVYYYYYYWYYTYZYYYW[YYYUXUYYUYYYZYYVVYYYWYWVYYYYYYYYYYUYYYYYYYYXYYXXYYYYXYYYVYYYYYYYYYYYWYYYXYYWYYYYXYYYYYYYYYYYYYYUYYYWYYVYYYYXXZYYYYYYYYXYWXYWXYYYYXYYYYYYYYYYYYXYYYYYYYXYWYYYYYYYWYXYYYYYYXYXYXYYYVUYYYYYYYTYYVYWYWYVXYYWYYYXXYXYYWXYYYYYYYYXYYXYYYYYVYYYYYYYXYYYYYYYYXYYXYZYYYWVYYYYXXYYYYYYTYYcHYYY^VThYUZYYTYYRYSSY\YYYYYRYYS\YYYYYYYYZYYYYYUYYZYR\XYY`YYWYYYYRYVYYYYYYYYYYYY_YY[SYYZYTYVXTUUYYYYYWYSY`TYUbYYYY]YYYYYYYYYUYYYYYYUYYUYYXYYUYYYYRYXYWYYYYVYaYVUYYYUYYSWYYY_]YYYRSUYWVYY]QYYdUY\YY`VWYYYYYYXPYUSYYYUYYYYYVYYYUYSYYYYYYTYYSYPYYYU`YYYSbXYYRYYYYYYXWYYYWWUVYTZYY\YYUYUVYXYYYYYZYYWSYYYYUYYYWYYYYYZYYYY]TYYYWYYXYYYZ]YVYYYYYYYYYYYYUYYVSYYXYUYVSY\UYYYYYYYWYTRYXUYYYYTYYYYYYYYYVYYSYYYUYYWSY[YY\YYYYYYZYUZYYY[YXYRYYYXWYYXXYYYTVYYYUUYYWUYYX]YY]YYWYYTXYYYYYYYU_YWYYYYWYUYYYWYYYWYYYYYYYYZYYWYVYYYV\YYY]VTYYVYYYZYYZWYYYWTVTY[ZYY\YYWYVWYYYYYYYUYYUTYYYYXYYYUYYYYYWYYYYZSYYY]YYXYYYYYYYYYYYYYYYYYYYWYYVVYYYYTYXWZVYYYYYYYYYYWUYWUYYYYTYYYYYYYYYUYYTYYYSYYYUY\YYWYYYYZYWYVWYYYTY[YRZYYVWYYYRYYYUWYZYTWVYYUYYSZYYYZYWYYTVZYYYYYYXXYYUYYYWYQYYYTYYYVYXYYYYYYVYYPYUYYYX[YYYUYSYY]YYYWYYZUYYYXZZVYUXYY\YYVYPUYWYYYYYZYYVUYYYYYYYYWYYYYYYYYYY[TYYYYYYZYYYZYYVYYYYYYYYYYYYXYYUTYYWYWYVTZ^VYYYYYYYXYTSYXWYYYYUYYYYYYYYYUYYTYYYVYYWTY\YYXYYYYXYWYWZYYY\YZYRZYYXTYYXYYYYSWYXYUUXYXUYYZYYY^TY\YYVYXYYYYYYUZYX[YYYXYUYYYVYYYYYXYYYYYYZYYVYRYYYV\YYY]TVYYUYYYVYYURYYYUWXSYUTYYZYYUYURYVYYYYYXYYTVYYYYUYYYVYYYYYXYYYYXUYYYVYYWYYYYXYWYYYYYYYYYYYYUYYZUYYVYTYTUWSQYYYYYYYVYWVYUWYYYYWYYYYYYYYYUYYVYYYYYYTWYUYY]YYYYTYXYWXYYYVYVYVXYYUTYYTWYYYSWYZYWYVYRUYYVUYYYVYSYYZTZYYYYYYXWYSXYYYWYSYYYUYYYVYVYYYYYYUYYVYSYYYUYYYYXTUYYXYYYYYYVRYYYWYPSYUWYYYYYVYXRYZYYYYYWYYSTYYYYOYYYVYYYYYXYYYY^VYYYYYYWYYYY[YWYYYYYYYYYYYYVYYWSYYXYWYXRVTTYYYYYXYVYUUYRTYYYYPYYYYYYYYYTYYUYYYXYYXWYRYYXYYYYWYaYXVYYYVYZYQWYYWWYYWXYYYUXYUYSWXYSUYYW[YYXXYQYY]VYYYYYYY_UYVNYYYXYRYYYWYYYQYVYYYYYYVYYUYVYYYVUYYYY[TYYUYYYXYYSKYYY[VWQYUUYY]YYXYUVYWYYYYYTYYYWYYYYVYYYVYYYYYXYYYYXWYYYXYYVYYYY[YUYYYYYYYYYYYYWYYWUYYWYYYXUTSVYYYYYXYYYZWYWSYYYYUYYYYYYYYYVYYVYYYSYYWXYXYYVYYYYTYUYWXYYYTYXYVWYYXYYYWVYYYQWYUYZWWYWVYYVYYYSRYVYYUTXYYYYYYZUYWUYYYYYWYYYTYYYXYWYYYYYYWYYSYQYYYYUYYYWWVYYTYYYXYYTWYYYTTXTYVZYY]YYTYUSYVYYYYYVYYTTYYYYQYYYVYYYYYVYYYYZSYYYYYYWYYYZXYXYYYYYYYYYYYYYYYVTYYYYUYVUZYVYYYYYZYVYVUYVVYYYYTYYYYYYYYYRYYTYYYUYYVTYZYY^YYYYVY[YVYYYYWYVYSVYYVUYYWVYYYTTYZYUVWYVTYYUWYYZTYVYYUTZYYYYYYXWYWWYYYWYQYYYUYYYUYVYYYYYYVYYUYZYYYUZYYYVYSYYWYYYYYYXUYYYWYWWYW[YY\YYWYWVYXYYYYYWYYWVYYYYWYYYXYYYYYYYYYYYXYYYZYYXYYYYXYXYYYYYYYYYYYYVYYUUYYYYVYXWZUWYYYYYYYXYXVYXVYYYYXYYYYYYYYYVYYUYYYVYYXVY[YYZYYYYVYWYXXYYYYYXYVYYYZWYYWWYYYUUYXYVTWYVVYYXYYYZVYXYYWWXYYYYYYXZYZWYYYXYUYYYXYYYXYXYYYYYYYYYZYYYYYYZYYYXXWYYWYYYXYYXOYYY\XUUYUWYY[YYWYRXY]YYYYYTYYWXYYYYWYYYVYYYYYYYYYYVXYYY[YYVYYYZSYVYYYYYYYYYYYY_YYXVYYXYWYXSWYUYYYYYXYVYYVYZ[YYYYVYYYYYYYYYTYYUYYYTYYUZYXYY\YYYYWYWYVXYYYXYZYTZYYZVYYW[YYYQ\YVYXVVYTUYYVYYY[RYWYYWYYYYYYYZWTYYWYYYZYVYYYWYYYXYVYYYYYYYYYXYOYYYVUYYYWXWYYZYYYXYYXXYYYVWYQYWYYY\YYVYUSYXYYYYYTYYXUYYYYTYYYVYYYYYZYYYYZVYYYYYYYYYYZZYXYYYYYYYYYYYYWYYXUYYXYVYYU[YVYYYYYYYVYVWYYSYYYYSYYYYYYYYYVYYTYYYWYYXTYZYYYYYYY[Y]YVXYYYVYWYTWYYUWYYWVYYYSUYZYXXXYWXYYU[YYVXYXYYUYZYYYYYYYXYXXYYYWYQYYYWYYYUYYYYYYYYXYYWYWYYYZWYYYXZSYYZYYYXYYXXYYYYYXWYWXYY]YYWYTRYZYYYYYXYYTUYYYYYYYYXYYYYYXYYYYZVYYY[YYYYYYYZYUYYYYYYYYYYYYXYYVSYYWYVYWVXZUYYYYYYYXYVUYUVYYYYUYYYYYYYYYUYYUYYYWYYXUYWYYYYYYYVYWYUUYYYYYXYPVYYSXYYXUYYYUVYYYUX[YUVYYVVYYZVYYYYXWYYYYYYYZXYYZYYYVYTYYYUYYYWYXYYYYYYTYYTYWYYYUXYYYXYVYYZYYYXYY[ZYYYYUWUYWYYY]YYVYTVYYYYYYYTYYWTYYYYXYYYWYYYYYXYYYYXTYYYZYYYYYYYXYWYYYYYYYYYYYYVYYWUYY[YTYXVZYUYYYYYZYXYVUYWUYYYYTYYYYYYYYYUYYTYYYVYYYVYYYYZYYYYWYVYWWYYYUYVYUWYYTXYYWSYYYUVYXYTXXYVVYYUYYYUWYXYYTWZYYYYYYXWYYZYYYWYRYYYWYYYVYYYYYYYYXYYSYWYYYVTYYYWWTYYYYYYWYYVXYYYWYYWYWZYY[YYWYWWY\YYYYYYYYYVYYYYWYYYWYYYYYWYYYYZUYYYYYYZYYYYYYWYYYYYYYYYYYYZYYXWYYZYXYYWYZXYYYYYYYYYVVYXYYYYYXYYYYYYYYYVYYXYYYYYY[WYYYY[YYYYWYYYUZYYYZYYYVYYYXYYYWXYYYXXYXYWZYYYUYYXYYYZUYXYYWXYYYYYYYWYYZZYYYXYWYYY\YYYZYZYYYYYYZYYYYYYYYXWYYYZXWYYXYYYYYYYXYYYYXYXYYYYYYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYXYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYXYYYYXYYYYYYYYZYYYXYYYYYYYYYYYYYYYXYYYYYXYYYYXYYYYYYYYYYYYYYYYYXZYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYVYY\UYYYXWW\YUXYY\YYTYPTYXYYYYYXYYSUYYYYYYYYUYYYYYVYYYYYTYYY[YYWYYYZZYUYYYYYYYYYYYY^YYUWYY]YWYUV\[UYYYYYYYVYVTYS[YYYYXYYYYYYYYYTYYVYYYUYYURY]YYYYYYYYYSYV[YYY\Y]YRZYY\TYYWWYYYY[YZYUUZYYSYYZZYYbSYYYYWWYYYYYYYT[YVWYYYVYWYYYXYYYVYXYYYYYYYYYVYUYYYT^YYY[VUYYVYYYYYYYZYYYZXYWYZWYYZYYWYVZY]YYYYYWYYYYYYYYXYYYZYYYYYXYYYYVZYYYYYYYYYYYVYYYYYYYYYYYYYYZYYXZYYZYXYYXXYYYYYYYYYYYXXYX\YYYYZYYYYYYYYYXYYXYYYYYYX[YWYYZYYYYYYXYXXYYYWYZYV]YY[WYYY\YYYX\YXY\YYYYVYYYXYYYVYXYYXXYYYYYYYWWYYXYYYYYYYYYXYYYYYYYYYYYYXYY[YXYYYUXYYYXYXYYYYYY]YYUUYYYSSSSYU]YYfYYPYYKYSYYYYYUYYYSYYYYSYYYSYYYYY[YYYY\QYYY_YY\YYYZ]YXYYYYYYYYYYYYSYYWSYYSYMYRNVaNYYYYYZYSYUSY]OYYYYNYYYYYYYYYQYYMYYYSYYSMY`YYdYYYYVYWYU[YYYWYTYVVYY[VYYSRYYYNMYZYZVXY^UYYSYYYaSYOYYKRYYYYYYYP\YWOYYYSYKYYYRYYYRYSYYYYYYXYYTYUYYYXbYYYZ[VYYZYYYYYYTXYYYTUW[YY]YYcYYTY\UYWYYYYYWYYZUYYYYYYYYVYYYYY[YYYYVPYYY\YYYYYYY[YVYYYYYYYYYYYY_YYR[YYXYWYWW[[WYYYYYYYVY[UYWZYYYYTYYYYYYYYYUYYUYYYTYYZUYgYY]YYYY[YWYV\YYYZYXYTTYY^ZYYXOYYYTVY[Y\VWYZUYYVZYY[XYXYYUXYYYYYYYUZY[XYYYUYSYYYVYYYYYUYYYYYYXYYTYYYYYWcYYYX_UYYSYYYYYYWZYYYXXXYYYXYY[YYXYXXYYYYYYYYYYWYYYYYWYYYXYYYYYYYYYYYYYYYYYYYYYYY[YYYYYYYYYYYYYYYYYYWYYXYWYXXYYXYYYYYYYXYYYYYXYYYYXYYYYYYYYYWYYXYYYZYYXWYYYYZYYYYXYYYXXYYYYYXYWYYYXWYYXYYYYWXYYYXYZYWXYYXYYY[XYZYYXXYYYYYYYYZYYXYYYYYXYYYXYYYXYXYYYYYYYYYYYYYYYXXYYYYYYYYXYYYWYY[WYYYVVXYYXYYY[YYYYVTYWYYYYYWYYVWYYYYVYYYWYYYYYYYYYYYVYYYZYYZYYYZ[YWYYYYYYYYYYYYYYYYVYYYYVYXVVZWYYYYYYYWYWWYXUYYYYVYYYYYYYYYVYYUYYYXYYWVY[YYZYYYYXYYYWXYYYYYYYUXYYXVYYXWYYYZWYZYVWWYZVYYVZYY]UYXYYTVZYYYYYYZXYWWYYYYYXYYYUYYYVYXYYYYYYWYYXYXYYYXYYYYZYWYYXYYYWYYZVYYYTWXVYVXYY_YYYYRQYWYYYYYVYYTVYYYYVZYYVYYYYYXYYZYXUZYYVYYVYYYZYYWYYYYYYYYYYYYUYYWVYYWYWYWWWVVYYYYYZYVY[VYTYYYYYUYYYYYYYYYSYYVYYYVYYXSYYYYbYYYYVYWYWWYYYWYVYRXYYWRYYWXYYYRYYTYXWUYUTYYXXYYZTYUYYVVYYYYYYY[WYXVYYYXYUYYYUYYYUYXYYYYYYXYYUYUYYYWWYYYWTWYYWYYYWYYVYYYYY[ZXYYZYYYYYWYXUYVYYYYYVYYVXYYYYZYYYVYYYYYYYYYYYWYYYZYYWYYYYXYXYYYYYYYYYYYYZYYW[YYZYXYXXXXUYYYYYYYVYXXYXWYYYYXYYYYYYYYYVYYXYYYYYYVUYZYYWYYYYWYXYW[YYYWYXYVWYYXXYYTVYYYXWYWYX[XYXWYYVXYYYVYWYYVVYYYYYYYW[YWVYYYVYVYYYVYYYXYUYYYYYYWYYVYYYYYVZYYYWYWYYUYYYXYYUXYYYUWZSYYZYY_YYSYWSYTYYYYYWYYWVYYYYYYYYUYYYYYWYYYYYRYYYYYYXYYYZ`YXYYYYYYYYYYYY\YYUXYYUYYYUWZ[UYYYYYYYXYVSYUVYYYYUYYYYYYYYYUYYTYYYYYYSQY]YYWYYYYXY[YTYYYYYYWYRTYYVXYYVRYYYUSY[YVT\YWTYYTYYYXVYYYYVYZYYYYYYV]Y\XYYYUYSYYYVYYYWYXYYYYYYVYYUY[YYYXVYYYX[RYYWYYYXYYUWYYYUWZWYYZYY\YYVYYTYVYYYYYWYYWWYYYYUYYYVYYYYYYYYYYXUYYYXYYXYYYYYYXYYYYYYYYYYYYZYYYWYYXYVYUXXWYYYYYYYYWYXVYWUYYYYUYYYYYYYYYVYYTYYYWYYUSY^YY[YYYYZYYYVZYYYVYWYUTYYXWYYXSYYYSVY\YZWWYWVYYUWYY[WYUYYRVYYYYYYYWXYXVYYYWYUYYYSYYYWYWYYYYYYTYYUYWYYYUYYYYTYVYYXYYYWYYYMYYY[VVUYTRYY[YYTYR[YaYYYYYTYYXYYYYYXYYY[YYYYYVYYYYUWXYYWYYXYYYXVYVYYYYYYYYYYYY[YYWYYY_YWYXUVUUYYYYYXYWYZUYUaYYYY\YYYYYYYYYTYYVYYYVYYU_YVYYYYYYYVYTYXYYYYWYXYT_YY]YYYW^YYYUbYVY`XWYVQYYYWYYYOYYYYXWXYYYYYYVUYWZYYYXYVYYYVYYY[YWYYYYYYXYY[YPYYYPXYYYXVYYYUYYYWYYYHYYYYWRWYRWYY^YYUYWVYTYYYYYSYYSXYYYYTYYYSYYYYYWYYYYTTXYYYYYZYYYYWYWYYYYYYYYYYYYNYY^OYYXYQYUSUTSYYYYYXYTYZXYWVYYYYUYYYYYYYYYRYYQYYYYYYUUYTYY`YYYYTYXYWQYYYUYVYTVYYTTYYUUYYYMVYTYXWSYRTYYSUYYZYYTYYRUYYYYYYYVPYUTYYYUYQYYYTYYYYYUYYYYYYSYYRYOYYYWVYYYVWUYYRYYYUYYPIYYYTUWTYWTYYaYYTYOSYOYYYYYPYYSVYYYYRYYYKYYYYYVYYYYRQYYYSYYQYYYY[YWYYYYYYYYYYYYXYYVUYYVYWYWWMTUYYYYYYYUYWVYNUYYYYTYYYYYYYYYSYYUYYYUYYWPYYYYdYYYYRYRYUZYYYTYVYTWYYZQYYWNYYYPUYVYWTTYXSYYTYYYVOYPYYRUXYYYYYYWTYSLYYYWYOYYYRYYYQYSYYYYYYSYYOYOYYYUZYYYVPQYYSYYYYYYZVYYYWXWXYWZYYZYYWYVVYYYYYYY[YYWWYYYYVYYYYYYYYYZYYYYYVYYYYYYXYYYYXYWYYYYYYYYYYYYXYYYWYYXYYYWVXZXYYYYYYYXYYVYVXYYYYWYYYYYYYYYVYYWYYYXYYYUY\YYXYYYYWYYYWZYYYZYWYTXYYYVYYYYYYYWWYXYYWWYWVYYXWYY[XYVYYYWYYYYYYYW[YYYYYYYYYYYYVYYYXYYYYYYYYXYYWYXYYYWXYYYXWWYYWYYYXYYVYYYYVXUWYW\YY^YYWYWVYWYYYYYYYYUWYYYYTYYYXYYYYYXYYYYYWYYYVYYWYYYZZYXYYYYYYYYYYYYVYYWVYYYYUYYWXWXYYYYYYYXYYWYWWYYYYXYYYYYYYYYVYYXYYYZYYYXYXYY_YYYYWY[YYYYYYXYWYVWYYVTYYXVYYYXWYVYVWWYVVYYWYYYWYYTYYYWZYYYYYY[UYXWYYYXYVYYYXYYYUYXYYYYYYXYYXYZYYYWWYYYVZVYYXYYYYYYTDYYYUVRPYUWYY[YYWYVUYVYYYYYTYYVVYYYYRYYYUYYYYYWYYYYUVYYYXYYTYYYYWYVYYYYYYYYYYYYOYYYTYYXYVYVTWSUYYYYYYYXYZWYYXYYYYUYYYYYYYYYRYYUYYYSYYYUYXYYlYYYYUYWYWVYYYXYQYUWYYZTYYWVYYYRTYUYUWTYSVYYWWYYWVYSYYTUYYYYYYY\OYVTYYYYYSYYYUYYYWYVYYYYYYXYYVYPYYYZTYYYWVVYYTYYY_YYVZYYYVTVXYU[YYYYYYYUVYZYYYYYYYYTWYYYYVYYYXYYYYYYYYYY^VYYYXYYYYYYZ[YZYYYYYYYYYYYYXYYUVYYXYTYYY\ZUYYYYYYYWYUVYWVYYYYXYYYYYYYYYVYYVYYY\YYYWYWYYVYYYYWY_YVZYYYUYZYUXYYWWYYV[YYYZYYYYT][YWWYYYZYY[WYUYYWYZYYYYYYZZYXUYYYZYWYYYWYYYSYXYYYYYYWYYYY_YYYUVYYY\\TYYXYYYVYYTHYYYZUU^YTVYY[YYTYVUYXYYYYYQYYWYYYYYWYYYWYYYYYWYYYYUWXYYWYYRYYYYRYVYYYYYYYYYYYYUYYYXYY_YVYUYUSUYYYYYXYUY[WYT\YYYY\YYYYYYYYYRYYXYYYVYYVWYYYY_YYYYRYVYVYYYYTYSYYXYYYTYYTVYYYWZYXYWTSYRVYYXSYYYUYTYYXUYYYYYYYVPYUQYYYWYXYYYQYYYTYTYYYYYYUYYUYNYYYSWYYYU^WYYRYYYXYYUTYYYWYWLYWXYYdYYWYOVYVYYYYYWYYSUYYYYRYYYTYYYYYTYYYY\RYYYZYYXYYYYXYTYYYYYYYYYYYYMYY_QYYTYWYVPWXUYYYYYYYWYVWYWRYYYYSYYYYYYYYYUYYTYYYYYYWSYVYYgYYYYSYZYUSYYYTYPYQWYYUVYYVUYYYOUYWYWYUYUUYYV]YYTSYYYYSXZYYYYYYZVYRVYYYTYPYYYTYYYSYVYYYYYYUYYQYUYYYXWYYY[VRYYVYYYWYYTUYYYWX[UYV[YYZYYVYUVYWYYYYYWYYWVYYYYWYYYWYYYYYXYYYYXVYYYWYYVYYYY\YXYYYYYYYYYYYYTYYYUYYWYVYYUZZXYYYYYYYXYWXY[VYYYYTYYYYYYYYYXYYVYYYXYYYTYWYY_YYYYZY\YYXYYYYYXYWWYYWZYYWWYYYUVYZYVWWYYXYYV]YY[XY[YYWWZYYYYYY[YYVZYYYXYVYYYVYYYXYWYYYYYYYYYZYXYYYYZYYYXWXYYWYYYWYYXTYYYWUYWYXZYY[YYTYVUYWYYYYYTYYVWYYYYUYYYVYYYYYVYYYYVWYYYZYYWYYYZUYWYYYYYYYYYYYYXYYVWYYZYWYVWWWVYYYYYYYUYYWYWWYYYYTYYYYYYYYYTYYUYYYTYYVQYYYY\YYYYTYWYUXYYYWYUYUWYYWWYYWWYYYSUYYYVVVYTWYYVUYYXUYXYYUUZYYYYYYVXYXWYYYWYSYYYUYYYVYUYYYYYYVYYTYXYYYU[YYYSXUYYUYYYWYYUXYYYVVXTYW[YY\YYWYWVYWYYYYYYYYUWYYYYWYYYXYYYYYXYYYYXTYYYWYYXYYYYXYWYYYYYYYYYYYYZYYXVYYVYVYVWZXXYYYYYYYYYXXYWWYYYYUYYYYYYYYYXYYVYYYXYYYTYYYY[YYYYYY]YWXYYYYYYYTVYYWWYYYVYYYVVYZYWWWYUVYYUYYY[YYXYYYWYYYYYYYZWYYYYYYYYVYYYWYYYXYWYYYYYYVYYWYVYYYWVYYYXYWYYZYYYYYYXSYYYZXVUYWYYYYYYXYVYYYYYYYYWYYXXYYYYYYYYXYYYYYXYYYY[YYYYXYYWYYYY\YXYYYYYYYYYYYY[YYWWYYVYXYXVZXUYYYYYXYXYZWYXYYYYYXYYYYYYYYYVYYXYYYWYYWYYXYYTYYYYWYVYWZYYY[YYYYXYYZXYYYYYYYXXYYYVW\YYVYYWWYYXWYZYYY\WYYYYYYXXY^WYYYXYZYYYWYYYXYXYYYYYY[YYYYSYYYXYYYYYVYYYVYYYXYYWXYYYXVVWYV\YY]YYTYVUYWYYYYYWYYVUYYYYXYYYZYYYYYWYYYYXRYYYYYYUYYYZXYXYYYYYYYYYYYYYYYSXYY\YVYXT]YVYYYYYYYXYWRYT[YYYYWYYYYYYYYYVYYVYYYTYYVXY[YY_YYYYWYVYVXYYYXY[YTXYYZZYYXVYYYVYYYYUWWYYVYYWZYY^TYVYYUVYYYYYYYVWYWYYYYVYSYYYWYYYTYWYYYYYYZYYRYUYYYZaYYYXWVYYXYYYVYYUWYYYVXYVYVXYY]YYVYVTYVYYYYYWYYXVYYYYXYYYUYYYYYYYYYYXTYYYZYYXYYYY\YXYYYYYYYYYYYY[YYVWYYXYYYWWWZWYYYYYYYXYWVYXWYYYYWYYYYYYYYYWYYUYYYWYYWSY]YYYYYYYXYYYW[YYYYYYYUWYYXVYYVUYYYUVYYYXVYYVVYYTYYYXUYYYYVWYYYYYYYX[YXXYYYXYUYYYVYYYYYWYYYYYYXYYVYXYYYXWYYYWXVYYWYYYVYYXHYYY\VT\YWVYYVYYVYVXYXYYYYYTYYVYYYYYWYYYWYYYYYWYYYYYXXYY[YYVYYYYVYVYYYYYYYYYYYYZYYYWYY[YZYWVTUWYYYYYWYWY]WYV]YYYYZYYYYYYYYYTYYVYYYWYYWWYXYY\YYYYRYUYWWYYYXYXYVXYYZWYYVZYYYYYYWYWVVYVWYYXTYYXVYXYYXWXYYYYYYWWYWUYYYWYXYYYXYYYWYTYYYYYYVYYVYOYYYTZYYYX]XYYTYYYUYYUNYYYWZXOYSVYYYYYTYRRYTYYYYYXYYVVYYYYSXYYUYYYYYVYYYY[QYYYUYYWYYYYZYVYYYYYYYYYYYYVYYWRYYUYYYWSUWUYYYYYXYWYVTYVXYYYYUYYYYYYYYYTYYVYYYTYYVVYXYYYYYYYWYXYWYYYYYYVYVYYYVTYYUVYYYOUYYY[XVYTTYYV[YYTQYXYYYUXYYYYYYXPYUXYYYWYRYYYUYYYWYUYYYYYYTYYVYRYYYWUYYYYSVYYTYYYVYYVLYYY\VV[YWWYYWYYQYKVY]YYYYYOYYSZYYYYYYYYUYYYYYSYYYYPVXYYXYYUYYYXPYUYYYYYYYYYYYY`YYYXYY_YYYUSSTTYYYYYWYVY]SYRaYYYYXYYYYYYYYYSYYUYYYVYYSXYWYYWYYYYVYXYUWYYYWY[YS\YY\VYYTVYYYY\YXYVUZYVOYY^TYY_JYXYYZXWYYYYYYVSYTTYYYUYXYYYVYYYVYRYYYYYYTYYUYTYYYJYYYYU[UYYRYYYXYYW\YYYXTXWY[WYYXYYYYWVY\YYYYYWYYXYYYYYXYYYXYYYYYYYYYYZWYYYWYYWYYYYYY\YYYYYYYYYYYYVYYXXYYZYWYVXZZ\YYYYYYYYYXXYUXYYYYXYYYYYYYYYXYYWYYY\YYYXYYYYXYYYYXYXYVYYYYYYXYVYYYXVYY\ZYYYWYYWYWZVYWXYY[XYYYXYXYYWYYYYYYYYXYY[WYYY[YXYYYXYYYXY]YYYYYYXYYYYZYYYWWYYYZUYYY[YYYXYYXXYYYZYZYYY[YYZYYXYXZYYYYYYYXYYXXYYYYYYYYYYYYYYXYYZYXXXYYZYYXYYYXXYYYYYYYYYYYYYYXYYXXYYXYXYYXYWXYYYYYXYXYWXYXYYYYYXYYYYYYYYYZYYXYYYWYYYYYYYYWYYYYXYYYXXYYYXYZYWYYYYYYYYYYYYWYYXYYXWYXXYYYXYYXYYZYYZXXYYYYYYYYYXXYYYYYXYYYXYYYZYXYYYYYYXYYXYXYYYXYYYYXXYYYZYYYZYYWXYYYYXWXYYZYYZYYYYZXYZYYYYYYYYZYYYYYZYYYYYYYYYZYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYWYZYWYYYYYYYYYYYYXYYZYYYYXYYYYYYYYYXYYYYYYXYYZXYYYYZYYYYYYYYYZYYYXYXYXYYYWYYYYYYYYWXYYYYXYYXYYYYYYYYXYYYYXXYYYYYYYXXYZYYYYZYYYYYYYYYXYYYYYYYYZYYYYZYYYXWYYYWZZYYYYYYWYYXIYYYWUUWYVWYY[YYVYVXYWYYYYYUYYWXYYYYUYYYWYYYYYWYYYYVUYYYVYYTYYYXYYWYYYYYYYYYYYYWYYXVYYYYXYVTVSWYYYYYWYUY^VYT\YYYYXYYYYYYYYYTYYWYYYUYYWWYXYY\YYYYUYUYYXYYYXYWYUXYYYXYYWWYYYTYYXYYWVYTSYYYWYYWTYWYYUWXYYYYYYYTYUWYYYWYUYYYVYYYXYVYYYYYYXYYTYNYYYVZYYYYXXYYTYYYYYYW[YYYV[VUYYXYY\YYXYSYYXYYYYY^YYVWYYYYVYYYVYYYYYZYYYY^WYYYXYYYYYYY\YWYYYYYYYYYYYYVYYZUYYVYZYXVZ][YYYYYYYXYVWYWWYYYYWYYYYYYYYYWYYWYYY]YYZVYWYYXYYYYWYZYWWYYYZYVYUYYYWVYYXZYYYUWYXYT\ZYWXYYW[YYXVYXYYXZYYYYYYYX[YYUYYYXYVYYY]YYYVYYYYYYYYWYY[Y]YYYVUYYY_WVYYWYYYYYYWWYYYWX[ZYW]YYYYYVYZTYWYYYYYVYYVWYYYYVYYYXYYYYYXYYYYXWXYYXYYXYYYZVYWYYYYYYYYYYYYXYYXXYY[YWYVWWUVYYYYYYYVYZVYVXYYYYYYYYYYYYYYVYYXYYYVYYXTYYYY[YYYYVY\YW[YYYWYYYVWYYVXYYXZYYYYVY\YYWUYVWYYWWYY[ZYVYYYUYYYYYYYYWYW[YYYWYVYYYUYYYXYWYYYYYYXYYVYYYYYWZYYYUYWYYWYYYXYYWXYYYXXYVYYXYY[YYYYVYY[YYYYYXYYWWYYYYWYYYXYYYYYXYYYYYWYYYYYYYYYYYXYYYYYYYYYYYYYYYYYWVYYXYWYWWXWXYYYYYYYXYXXYWYYYYYXYYYYYYYYYVYYVYYYXYYXVY[YYZYYYYYYWYWYYYYXYZYUYYY\WYYXYYYYW\YYYXXVYYVYY[ZYY[WYWYYWXYYYYYYYXYYXXYYYZYZYYYVYYYWYYYYYYYYWYYYYWYYYVYYYYXWWYYZYYY[YYOVYYYTVXUYU[YY[YYUYYQYWYYYYYXYYVUYYYYQYYYVYYYYYXYYZY[TYYYSYYZYYYY[YXYYYYYYYYYYYYVYYUVYYUYSYVV[VVYYYYYYYUYWVYUTYYYYSYYYYYYYYYUYYUYYYWYYXSYWYY]YYYYXY^YU[YYYUYUYRVYYVSYYXVYYYXWYXYVTVYSVYYV[YYWWYSYYYUZYYYYYY[VYXVYYYXYSYYYUYYYTYSYYYYYYVYYXY`YYYYWYYYW_UYYXYYYYYYQVYYYUYTPYW[YY`YYTYZSYWYYYYYYYYTQYYYYRYYYSYYYYYZYYYYYXYYY]YYVYYYY\YUYYYYYYYYYYYYZYYVTYYZYWYTSYZWYYYYYYY[YSTYUQYYYYSYYYYYYYYYQYYQYYYYYYYRYZYYYYYYY[Y^YUWYYY\YXYRXYYSVYYXSYYYQLYXYSW[YWUYYS\YY\XYUYYSYZYYYYYYV]Y[TYYYYYQYYYXYYYSY\YYYYYY[YYWY[YYYVXYYY[URYYWYYYXYYXWYYYXXWZYXXYYZYYWYWUYWYYYYYWYYXXYYYYWYYYVYYYYYYYYYYWXYYYXYYWYYYYYYXYYYYYYYYYYYYYYYWYYYYYXYWXWWXYYYYYYYWYXXYUYYYYYXYYYYYYYYYVYYXYYYWYYVUYYYYXYYYYWYVYWYYYYVYXYUVYYXVYYWXYYYVVYUYXWXYUWYYWXYYVXYXYYVWYYYYYYYWVYYXYYYYYYYYYVYYYXYWYYYYYYXYYWYWYYYVWYYYVWWYYWYYYWYYTVYYYVTZYYYZYY[YYVYYUYYYYYYYVYYYWYYYYXYYYWYYYYYYYYYYUWYYYYYYWYYYXVYXYYYYYYYYYYYYZYYWXYYWYTYW[VUWYYYYYYYVYXVYWZYYYYYYYYYYYYYYVYYWYYYTYYVWY]YYUYYYYXYUYUYYYYTYXYWWYYWVYYVUYYYVXYXYYWUYSWYYTXYYZVYVYYUUYYYYYYYWVYZWYYYWYUYYYTYYYVYUYYYYYYUYYSYUYYYUYYYYSZWYYWYYYYYYTUYYYSUZUYWZYYaYYTYVSYRYYYYYUYYWTYYYYRYYYSYYYYYYYYYYWSYYYUYYXYYYZ[YUYYYYYYYYYYYYYYYVVYYTYWYVVVXUYYYYYYYSYVUYXSYYYYRYYYYYYYYYTYYSYYYUYYSQY`YY_YYYYYYXYUYYYYYYUYQSYYYRYYVTYYYQRYZYZVUYWTYYT[YYXWYUYYPVYYYYYYYUVYVXYYYWYPYYYTYYYWYTYYYYYYTYYSYXYYYYTYYYXWRYYXYYYZYYTQYYYWYRWYU[YYeYYUYUTYUYYYYY\YYRTYYYYSYYYUYYYYYSYYYYZRYYYWYYWYYYXWYYYYYYYYYYYYYYMYYTQYYXYUYXWTSYYYYYYYY[YRVYTTYYYYYYYYYYYYYYTYYZYYY\YY]UYVYYgYYYYUYUYVYYYYVYOYXTYYVRYYYWYYYTSYTYRXVYSUYYSUYYXSYWYYZTYYYYYYYZOYVVYYYYYUYYYWYYYRYWYYYYYYUYYYYUYYYTTYYY[SYYYWYYYWYYYLYYYZWWYYYSYY]YYWYS[YWYYYYYTYYVXYYYYWXYYUYYYYYZYYYYYYXYYXYYSYYYYVYWYYYYYYYYYYYYXYYUUYYZYYYVTWSWYYYYYWYYY[VYWYYYYYYYYYYYYYYYWYYUYYYVYYUXYZYYXYYYYUYWYXYYYY[YVYWXYY\WYYYTYYYXUYWYUXWYWUYYXZYYYSYXYYVZXYYYYYYXZYYTYYYZYWYYYXYYYWYRYYYYYYVYYYYSYYYUZYYYWSUYYRYYYYYYUZYYYVXYXYYWYY\YYWYZVYXYYYYYZYYZWYYYYWYYYVYYYYY[YYYYYWYYYYYYZYYYYZYZYYYYYYYYYYYY[YYWXYYWYWYYXWYYYYYYYYYWYZWYXVYYYYWYYYYYYYYYXYYWYYYXYYYVYZYYYYYYYZYYYWZYYYXYWYVXYYYWYYYYYYYVXYWYYVYYWXYYXXYYVVYXYYWXYYYYYYYXZYYVYYYYYWYYYWYYYXYWYYYYYYWYYXY\YYYYXYYYX\XYYZYYYZYYYYYYYYYYXYYYYYZYYYYZXYYYYYYYYYYZYYYYYZYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYZZYYYYXYYYXYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYZYY[YYYYYYXYYYYYYYYXYXXYYXXYYYZYYYYXYYYXXXYXYYYYYYYYYYXYYYXYYYYYYYXXYZYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYWYYYYYYYYVYYUKYYYWZXOYUUYYYYYWYUTYVYYYYYSYYXWYYYYTYYYVYYYYYVYYYYYWYYYUYYVYYYYXYVYYYYYYYYYYYYVYY[TYYVYYYWVYTUYYYYYXYUYZXYZWYYYYUYYYYYYYYYTYYWYYYWYYVWYYYYXYYYYWYYYWWYYYUYRYVVYYZWYYUWYYYSVYZYYXTYWVYYWXYYTTYYYYXVYYYYYYYZQYSRYYYVYSYYYRYYYXYWYYYYYYVYYTYQYYYVWYYYXXVYYSYYYXYYSYYYYVYTUYU]YY^YYUYWTYWYYYYYWYYRPYYYYSYYYUYYYYYVYYYY[RYYYXYY[YYYZXYXYYYYYYYYYYYYTYYTPYY]YTYYSZZTYYYYYZY[YQSYWQYYYYRYYYYYYYYYRYYSYYYXYY\UYWYY_YYYYZYZYWVYYYXYUYUWYYTWYYXTYYYVRYXYNVXYVUYYS]YYXUYYYYWVZYYYYYYYWYZZYYYYYRYYY[YYYRYZYYYYYY\YYVY[YYYXVYYYXXSYYWYYYYYYYUYYYZWXWYYWYYVYYYYXWYYYYYYYUYYXXYYYYWYYYWYYYYYYYYYYXYYYY\YYWYYYXXYYYYYYYYYYYYYYYYYXXYYYYXYXXWWYYYYYYYYYYWXYWXYYYYYYYYYYYYYYWYYWYYYYYYYXYYYYYYYYYXYWYXXYYYXYYYYXYYZWYYYYYYYYXYVYYYXYXWYYXYYYXXYXYYVXXYYYYYYYUYYXYYYYYYYYYXYYYYYYYYYYYYZYYYYXYYYYWYYYXWXYYXYYYVYYXXYYYYXXYYWYYY[YYWYVYYZYYYYYZYYWVYYYYXYYYZYYYYYXYYYYZWYYYZYYXYYYY[YWYYYYYYYYYYYYYYYZXYYZYVYVVYZVYYYYYYYXYVVYXXYYYYWYYYYYYYYYWYYUYYYXYYUVYXYYXYYYYUYYYWXYYYWY\YUXYYWZYYWYYYYYYYYYVWZYVVYYXWYY]VYVYYWWYYYYYYYW\YZ[YYYXYUYYYWYYYYYVYYYYYYWYYZYXYYYVXYYYVXVYYWYYYXYYXHYYY\UTYYWVYYWYYWYVWYYYYYYYSYYWYYYYYYYYYWYYYYYXYYYYVXXYYYYYVYYYYUYVYYYYYYYYYYYYXYYYWYYXYWYXWVUWYYYYYXYVY^WYWYYYYYYYYYYYYYYYUYYWYYYUYYWZYWYY^YYYYTYVYXXYYYWYWYXXYYXWYYVXYYYYYYWYVVTYUVYYYUYYVVYWYYWWXYYYYYYXRYVUYYYXYXYYYUYYYWYUYYYYYYWYYTYNYYYWVYYYW[XYYSYYYVYYSHYYYZYRVYSXYY`YYXYUVYWYYYYYVYYVVYYYYSYYYTYYYYYUYYYYWXZYYSYYSYYYXWYXYYYYYYYYYYYYOYYWTYYXYVY[TVSXYYYYYXYUYYXYRVYYYYYYYYYYYYYYSYYZYYYZYY]YYVYYdYYYYTYTYWXYYYTYRYYVYYWRYYWXYYYVTYXYUWVYTVYYWUYYSSYSYYSVYYYYYYYZNYVPYYYXYVYYYXYYYRYSYYYYYYWYYWYMYYYWSYYYWQXYYQYYYYYYVUYYYVX\WYV[YYYYYUYRTYWYYYYYWYYUWYYYYWYYYWYYYYYYYYYYXUYYYYYYYYYYY[YWYYYYYYYYYYYYXYYXTYYYYXYVTZZWYYYYYYYVYWVYWXYYYYTYYYYYYYYYUYYTYYYVYYVTY\YY]YYYYZY\YVYYYYYYVYSWYYXYYYWVYYYUSY\YVVYYWUYYX[YY]UY[YYUWYYYYYYYXZYW]YYYWYVYYYWYYYWYWYYYYYYXYYUYUYYYZ\YYYYTTYYXYYYYYYXWYYYXVZYYXZYYZYYXYZVYYYYYYYXYYZWYYYYYYYYZYYYYYZYYYYZWYYYXYYXYYYZXYXYYYYYYYYYYYYYYYYXYYYYXYXWYYWYYYYYYYXYYWYXZYYYYVYYYYYYYYYYYYVYYYWYYYWYZYYXYYYYXYZYWYYYYWYXYWXYYV[YYWYYYYWWYZYXWWYVXYYWYYY[YYYYYZWYYYYYYYXYYZZYYYXYXYYYWYYYZYXYYYYYYYYYXYYYYYXYYYYW\YYYXYYY[YYSZYYYVUWVYV[YY]YYWYWRYXYYYYYWYYTVYYYYUYYYVYYYYYZYYYYYUYYYVYYXYYYYYYZYYYYYYYYYYYYRYYXVYYWYSYYW\WWYYYYYYYXYTVYZTYYYYYYYYYYYYYYVYYWYYY[YYWWYXYY\YYYYXYYYVYYYYTYSYWWYYWVYYVWYYYVTY[YS[VYWVYYVWYYXXYWYYUXYYYYYYYXYYYVYYYWYVYYYVYYYVYZYYYYYYZYYYY[YYYVSYYYYYWYYXYYY[YYWXYYYXYXWYZ[YY]YYWYYVYXYYYYYVYYYXYYYYXYYYYYYYYYWYYYYUXYYY^YYZYYYYWYYYYYYYYYYYYYYUYYXVYYZYSYWVXWYYYYYYYYZYZWYZVYYYYXYYYYYYYYYWYYXYYYSYYVVY^YY[YYYYYYXYXZYYYUYTYXYYYZVYYWUYYYVUY]YYXTYZWYYVVYY[XYWYYVVYYYYYYYVUYYTYYYXYVYYYTYYYZYZYYYYYYXYYWYWYYYY[YYYS[YYYWYYYUYYVLYYYUWWZYVVYYXYYUYQXYWYYYYYSYYVYYYYYWYYYUYYYYYWYYYYWTXYYUYYTYYYYXYXYYYYYYYYYYYY`YYWZYYYYZYWXWUTYYYYYXYVYWWYVYYYYYWYYYYYYYYYTYYWYYYVYYUTYWYYUYYYYVYWYWZYYYXY[YVYYYYXYYVVYYYWXYUYVVWYWSYYYWYY[RYYYYYWWYYYYYYXVYXVYYYWYSYYYVYYYWYUYYYYYYUYYSYQYYYSXYYYWWUYYVYYYZYYXYYYYSWUZYW]YY]YYWYYRYXYYYYYYYYUUYYYYSYYYXYYYYYXYYYY\TYYYYYY]YYYZYYXYYYYYYYYYYYYXYYWUYYWYTYUU[ZUYYYYYZYVYVVYZSYYYYSYYYYYYYYYTYYVYYYXYYYTY[YY[YYYYXY^YWYYYYYYXYUWYYYYYYXVYYYZUY[YTWYYZUYYVZYY[ZYVYYWWYYYYYYYYYYWWYYYVYSYYYWYYYUYVYYYYYYYYYVY[YYYW\YYYY\TYYXYYYVYYYGYYYZUUWYWSYYZYYWYUWY[YYYYYSYYWYYYYYVYYYVYYYYYWYYYYUXYYYYYYUYYYYVYVYYYYYYYYYYYYWYYWVYYXYUYWWVTUYYYYYXYXYYXYVWYYYYWYYYYYYYYYTYYUYYYTYYVWYVYYaYYYYSYTYXVYYYTYSYYYYYXVYYUXYYYVVYWYVVUYUVYYXVYYTTYUYYVXXYYYYYYXPYUQYYYYYVYYYSYYYWYUYYYYYYVYYTYMYYYVUYYYWXYYYTYYYRYYSUYYYT[ZRYQZYY`YYWYTLYRYYYYYYYYQVYYYYTYYYUYYYYYYYYYY\QYYYYYYVYYYY]YWYYYYYYYYYYYYXYYXTYYTYVYUT[\OYYYYYYYVYUWYWTYYYYTYYYYYYYYYTYYTYYY[YYVRYXYY^YYYYYY\YVZYYY]Y\YQXYYRSYYRTYYYWYYTYWZWYVUYYU[YYXWYWYY[WZYYYYYYYWYTQYYYXYUYYYVYYYSYVYYYYYYVYYXYRYYYXXYYY^XTYYYYYYYYYW[YYYXYWWYZWYYZYYXYUXYZYYYYYZYYYXYYYYWYYYXYYYYYZYYYYZYYYYXYYXYYYYZYYYYYYYYYYYYYYWYYYWYYZYXYXY[[ZYYYYYYYYYWWYVXYYYYYYYYYYYYYYXYYVYYYYYYZXY\YYYYYYYYYYYWZYYYZYXYWYYYXWYYZXYYYWWYWYXZYYVXYYY[YYZXYYYYXYYYYYYYYW[Y\YYYYZYWYYYZYYYXY[YYYYYYZYYYY[YYYXYYYYZXWYYYYYYYYYXWYYYXYXWYYZYYYYYXYWWYXYYYYYYYYWXYYYYXYYYXYYYYYXYYYYXXYYYZYYXYYYYYYWYYYYYYYYYYYYXYYYVYYWYXYWWWYYYYYYYYYWYXXYWXYYYYYYYYYYYYYYWYYWYYYZYYYVYWYYYYYYYXYZYWXYYYYYYYUXYYXVYYXYYYYYXYWYVYXYXWYYWZYYXXYXYYWZYYYYYYYXWYXXYYYXYWYYY[YYYXYXYYYYYYXYYXYZYYYWWYYYYWYYYXYYYVYY\SYYYWT^SYZYYY^YYSYYSYVYYYYYVYYRTYYYYXZYYVYYYYYUYYYYZWZYYUYYZYYYYXYWYYYYYYYYYYYYSYYWTYYTYVYSU[[RYYYYYZYXYZRYYUYYYYTYYYYYYYYYVYYSYYYXYYSPYZYY`YYYYWY[YQYYYYZYVYQWYYR\YYTUYYYVSY\YQ[VYVUYYQZYYU]Y]YYZYZYYYYYYZYYTYYYYUYSYYYWYYY\YXYYYYYYWYYPYUYYY\ZYYYY^TYY[YYYSYYRUYYYUWVMYSZYYcYYSYTLYSYYYYYXYYUVYYYYPYYYQYYYYYZYYYYYRYYYXYYWYYYZYYVYYYYYYYYYYYYUYYXUYYQYQYTPQWNYYYYYYYUYTVYUQYYYYTYYYYYYYYYRYYUYYYXYYTSYZYYaYYYYWYVYUXYYYPYSYSTYYTOYYQQYYYNRYVYY[TYWUYYS[YYTVYOYYMSZYYYYYYUQYQNYYYVYPYYYNYYYSYTYYYYYYRYYVYUYYYVXYYYVWTYYVYYYYYYTTYYYUXUTYWYYYaYYVYWMYVYYYYYXYYPUYYYYMYYYWYYYYYVYYYY[SYYYVYYVYYYYYYWYYYYYYYYYYYYSYYVSYYVYSYUUSSSYYYYYYYWYSUYRSYYYYSYYYYYYYYYSYYWYYYZYYXUYYYYeYYYYUYcYWXYYYUYUYQWYYUSYYWXYYYXUYZYWVUYVTYYV\YYYYYPYY\TYYYYYYY\RYTQYYYXYTYYYUYYYPYYYYYYYYVYYWYXYYYWUYYYZWRYYXYYYVYYTHYYYVXWWYUSYY[YYTYVVYWYYYYYVYYUWYYYYTYYYRYYYYYXYYYYWVYYYVYYTYYYYYYXYYYYYYYYYYYYZYYWUYYXYZYXUTSVYYYYYXYSY\VYQ[YYYYUYYYYYYYYYTYYVYYYTYYWRYXYY\YYYYUYYYVYYYYVYXYTVYY[TYYVUYYYSXYVYVTUYSUYYYRYYWPYUYY[UYYYYYYYZUYWRYYYVYUYYYSYYYVYRYYYYYYTYYQYQYYYU[YYYU\VYYSYYYWYYVPYYYXVUZYXWYYZYYUYTWYTYYYYYTYYUWYYYYWXYYSYYYYYVYYYYSRXYYWYYQYYYXXYWYYYYYYYYYYYY\YYWZYYYYWYWXSSUYYYYYXYVYWVYRWYYYYWYYYYYYYYYWYYVYYYSYYURYZYYWYYYYUYSYV]YYYWYZYUXYYZVYYVSYYYVVYVYXVWYWVYYUVYY\WYSYYUTWYYYYYYVXYUUYYYWYVYYYUYYYWYTYYYYYYTYYQYXYYYSZYYYTXTYYSYYYXYYXHYYYYVUWYWUYYXYYYYWXYXYYYYYTYYXYYYYYYYYYWYYYYYXYYYYXXYYYWYYVYYYXXYWYYYYYYYYYYYYXYYYWYYWYWYXVWSVYYYYYWYWY\YYXXYYYYXYYYYYYYYYVYYVYYYVYYXXYXYYXYYYYUYUYYWYYYWYWYYXYYZXYYWXYYYXXYWYWWWYTVYYXWYYUVYXYYVXWYYYYYYYTYWUYYYYYXYYYUYYYXYUYYYYYYXYYVYMYYYWUYYYXWYYYSYYY[YYUXYYYUVRSYVXYY^YYYYRUYZYYYYY[YYWUYYYYSYYYVYYYYYZYYYY]TYYYUYYVYYYZXYVYYYYYYYYYYYYTYYVUYYVYTYUTW\WYYYYYZYQYUVYTTYYYYVYYYYYYYYYWYYTYYYYYYZUYYYY\YYYYXYYYUZYYYZYXYQYYYVSYYXXYYYSUYUYUWXYVWYYYYYYYVYUYYVXZYYYYYYXXYVVYYYXYTYYYZYYYRYWYYYYYYXYYWY\YYYTSYYYZWUYYUYYYTYYTSYYY\OUQYWUYY]YYYYZSY[YYYYYVYYSVYYYY[YYYWYYYYYWYYYY\UYYYWYY[YYYYVYSYYYYYYYYYYYYZYYKYYYRYYYTMSPUYYYYYYYTYRQYPUYYYYQYYYYYYYYYSYYOYYYWYYO[YTYY]YYYYSYZYYTYYYQY[YOTYY[XYYWUYYYN^YUYVP\YPXYYZXYYWLYQYYXUYYYYYYY\XYXRYYYVYRYYYXYYYRYTYYYYYYRYYSYXYYY_]YYYW_RYYVYYYXYYVJYYYYXUUYWSYY^YYXYUXYWYYYYYXYYXYYYYYWYYYVYYYYYXYYYYXWYYYTYYUYYYYVYXYYYYYYYYYYYYOYYYVYYWYWYXUWYXYYYYYXYXYZYYWXYYYYXYYYYYYYYYVYYVYYYXYYXXYWYYcYYYYSYTYYVYYYWYSYXXYYXWYYVXYYYWXYWYVWUYSVYYWWYYSUYUYYVVYYYYYYYYPYVUYYYXYWYYYVYYYWYVYYYYYYXYYVYQYYYVUYYYXVYYYSYYYWYYTWYYYU^VSYUZYY\YYTYXSYTYYYYYWYYUUYYYYVYYYTYYYYY[YYYY`UYYYVYYXYYYZ`YWYYYYYYYYYYYY`YYXVYYYY\YYW[\RYYYYYYYVYSVYUVYYYYUYYYYYYYYYTYYUYYY^YYQSY[YYWYYYYXY_YS[YYYXY[YSSYYWYYYPSYYYSTYYYT\YYXUYYTZYY[WYXYYSXYYYYYYYW`YTYYYYSYSYYYXYYYVYSYYYYYYUYYXY\YYYY\YYYZZSYYSYYYYYYXYYYYXYYYYYYYYYYYXYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYZYYYZYYYYYYYYXXYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYXYYYWYYYYYYYYYYYYYYZYYYYYXYYYYYXXYYYYYYYXYYXYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYXZYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYXYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYY\NYYYZXUSYVYYYYYYVYWUYWYYYYYVYYSTYYYYYYYYUYYYYYWYYYYZWYYYZYYWYYYXWYVYYYYYYYYYYYYWYYXUYYWYVYZUYVXYYYYYXYYYWTYZWYYYYSYYYYYYYYYVYYTYYYSYYYVYTYYVYYYYWYWYXWYYYXY\YS[YYUYYYZTYYYQSYWYRWXYUVYYTZYYTZY[YYXZXYYYYYYY\Y\WYYYWYSYYYYYYYWYYYYYYYYZYYUYTYYYXXYYYWWTYYZYYYUYYW[YYYXU[WY\XYYYYYXYTXYZYYYYYYYYXXYYYYYYYYYYYYYYXYYYY[UYYYWYY[YYYYYYYYYYYYYYYYYYYVYYWXYYYYYYUX[\ZYYYYYYYZYXWYX[YYYYYYYYYYYYYYWYYWYYY\YYXWYZYYYYYYYVYYYVZYYY[YWYUXYYXYYYYYYYYVYYXYWZXYVVYYZYYYWWYZYYYZYYYYYYYWYYZYYYYYYWYYYXYYYZY[YYYYYYWYYYYZYYYWVYYY[WXYYYYYYYYYYXYYYWYXVYXYYY[YYXYXWYXYYYYYYYYXXYYYYYYYYXYYYYYYYYYYYWYYYWYYWYYYYZYWYYYYYYYYYYYYVYYYXYYYYXYXXXYXYYYYYYYWYXXYUYYYYYXYYYYYYYYYWYYYYYYVYYXXYXYY[YYYYXYVYWYYYYXYWYWXYYVWYYXXYYYXYYYYWVVYWXYYWXYYYXYVYYYVYYYYYYYXYYXWYYYYYXYYYWYYYWYXYYYYYYYYYVYVYYYWXYYYWYXYYXYYYVYYWRYYYXUVYYWWYY_YYRYUVYVYYYYYUYYWYYYYYVYYYUYYYYYVYYYYVTYYYXYYUYYYYXYXYYYYYYYYYYYYYYYTXYYYYWYVXTWVYYYYYXYTYYUYR\YYYYZYYYYYYYYYXYYUYYYVYYUUYYYYZYYYYUYVYVXYYYSYZYVVYYVTYYVXYYYUWYVYXVVYUUYYWVYYZUYTYYWUYYYYYYYTWYWSYYYWYSYYYWYYYTYTYYYYYYTYYTYVYYYUYYYYUZVYYVYYYWYYVVYYYZSVVY\XYY]YYZYXXYZYYYYYWYYWXYYYYZYYYWYYYYYXYYYYWWYYYYYYXYYYYSYVYYYYYYYYYYYYWYYSYYYWYXYWVXVZYYYYYYYWYVVYTVYYYYUYYYYYYYYYXYYUYYYYYYXZYWYY_YYYYVYXYYWYYYUYWYWXYYYYYYZWYYYT\YWYUUXYWXYYYXYYXTYUYYWWYYYYYYYXXYXVYYYWYTYYYXYYYVYWYYYYYYWYYTY[YYYZZYYYYZVYYXYYYYYYXZYYYXWWWYZYYY\YYXYYWYXYYYYYWYYXXYYYYWYYYWYYYYYYYYYYWXYYYXYYXYYYYXYYYYYYYYYYYYYYXYYYXYYYYUYWXXWXYYYYYYYYYWXYXXYYYYYYYYYYYYYYXYYXYYYZYYXXYZYY]YYYYYYZYYXYYYXYWYXYYYYWYYYYYYYXXYZYYZYYXXYYXZYYYXYXYYUYZYYYYYYWXYXWYYYYYXYYYYYYYXYZYYYYYYZYYZYYYYYXYYYYYXXYY[YYYWYYWWYYYVYYVYW[YY]YYVYWVYXYYYYYXYYYVYYYYVYYYWYYYYYYYYYYYUYYY[YYXYYYYYYXYYYYYYYYYYYYWYYVVYYWYYYXWXXXYYYYYYYWYYUYXWYYYYVYYYYYYYYYWYYUYYYTYYYVYZYY\YYYYWYYYVWYYYVYVYUWYYXWYYWWYYYSVYXYXVXYVVYYWXYYYSYWYYVVZYYYYYYXXYWXYYYWYSYYYUYYYWYUYYYYYYXYYWYWYYYYYYYYX[WYYYYYYWYYVVYYYW]TWYY^YY[YYVYXTYUYYYYYZYYUUYYYYTYYYTYYYYYWYYYYYXYYYYYYYYYYYZYYYYYYYYYYYYYYVYYXUYYYYWY^VWVXYYYYYYYYYQVY[RYYYYWYYYYYYYYYVYYXYYYYYYZYYUYY\YYYYZYUYWYYYYXYVYZWYYUWYYYVYYYSQYZYQXYYZVYYTZYYWWYWYYUWYYYYYYYYZYZVYYYXYXYYYZYYYUYZYYYYYY_YYVYZYYYWWYYYWTWYYXYYYVYYXWYYYUQYRYXWYY^YYWYXWYUYYYYYWYYUUYYYYQYYYSYYYYYXYYYYXUYYYUYYWYYYZWYVYYYYYYYYYYYYTYYWXYYTYTYWUVYTYYYYYYYUYSWYXUYYYYTYYYYYYYYYVYYSYYYWYYTVYXYY^YYYYVYWYUXYYYXYXYRXYYTSYYVTYYYUVYZYUXXYWVYYRWYYUYYTYYPUZYYYYYYWXYXWYYYVYSYYYVYYYWYWYYYYYYTYYSYWYYYWYYYYYXSYYZYYYYYYXYYYYXXYWYXZYY[YYYYYXYXYYYYYXYYXXYYYYXYYYYYYYYYYYYYYYXYYYXYYXYYYYYYXYYYYYYYYYYYYYYYXXYYYYXYYYZXXYYYYYYYXYYXYYXYYYYXYYYYYYYYYXYYXYYYYYYYXYYYYYYYYYYYYYXYYYYYYXYXXYYWYYYYXYYYXWYYYWYYYWXYYYYYYXYYYYYXXYYYYYYYYZYYYYYYYYXYYYXYYYYYYYYYYYYYYYXYYYYYYXYYYXYYYYXYYYVYYYKYYYYVZRYUWYY[YYXYVVYUYYYYYUYYVXYYYYWYYYTYYYYYVYYYYXUYYYWYYVYYYYUYWYYYYYYYYYYYYRYYUVYYUYXYWWX[XYYYYYXYWYYWYXXYYYYXYYYYYYYYYVYYVYYYUYYWXYWYYbYYYYVYTYYXYYYZYYYWZYYWVYYXWYYYWXYVYVWTYWVYYSZYYVSYWYYXXXYYYYYYVNYXTYYYXYVYYYVYYYVYTYYYYYYWYYVYRYYYXTYYYYVWYYWYYYWYY[TYYYWTY]YVZYYZYYVYVRYXYYYYYXYYTWYYYYYYYYXYYYYYWYYYYWTYYY[YYYYYYYYYVYYYYYYYYYYYY[YYWWYYZYUYVVX\UYYYYYYYUYXVYV[YYYYWYYYYYYYYYVYYUYYYXYYWTY\YYYYYYYWYZYWWYYYZY[YTXYYYWYYVVYYYZ[Y[YUWXYXTYYVWYY_VYYYYYVZYYYYYYVZYXYYYYWYVYYYXYYYXYWYYYYYYXYYVYVYYYV[YYY[\WYYWYYYXYYWHYYYZWUWYUVYYWYYYYWVYXYYYYYUYYXYYYYYYYYYWYYYYYYYYYYYXYYYXYYVYYYYXYVYYYYYYYYYYYYZYYZWYYWYXYXVXVVYYYYYWYTY\YYWYYYYYXYYYYYYYYYVYYWYYYVYYWYYWYYYYYYYVYVYYXYYYVYWYXYYYZXYYTXYYYWXYVYWXWYTVYYXVYYUUYXYYVXXYYYYYYYVYVTYYYWYWYYYXYYYXYTYYYYYYXYYUYOYYYVUYYYYYYYYRYYYVYYVRYYYWUUWYUXYYZYYXYUYYXYYYYYXYYUWYYYYSXYYUYYYYYUYYYYXUYYY\YYWYYYYWYUYYYYYYYYYYYYXYY[TYYUYUYVSTUVYYYYYXYVYWYYWXYYYYTYYYYYYYYYTYYWYYYSYYTXYZYY_YYYYSYVYXUYYYSYZYVVYYWVYYVSYYYT[Y[YWXVYYVYYVZYY\VYWYYUWYYYYYYYYXYXVYYYZYVYYYTYYYYYTYYYYYYSYYSYRYYYVWYYYWUYYYYYYYWYYVVYYYYUWUYWXYY^YYXYSTYYYYYYYWYYUXYYYYYYYYXYYYYYWYYYYWUYYYYYY[YYYZUYVYYYYYYYYYYYYVYYTVYYVYUYWWXXTYYYYYZYWYXVYXYYYYYVYYYYYYYYYUYYSYYYVYYVSYZYYZYYYYWYWYXXYYYXY[YT[YYZVYYVVYYYT\YYYXWWYTSYYVXYY]TYWYYVXYYYYYYZUWYWWYYYXYXYYYVYYYVYVYYYYYYYYYYYTYYYV[YYYZXWYYXYYYYYYZGYYY[VSTYUVYY[YYXYTXYYYYYYYUYYXXYYYYVYYYWYYYYYXYYYYYYYYYWYYVYYYXXYWYYYYYYYYYYYYRYYYXYYVYWYXVVUXYYYYYWYWYZXYYXYYYYXYYYYYYYYYUYYWYYYUYYZYYXYY_YYYYUYRYYVYYYXYWYYXYYZUYYVYYYYUXYTYWYWYWUYYYYYYXTYUYYSVXYYYYYYXTYXUYYYZYVYYYWYYYWYTYYYYYYXYYVYPYYYXVYYYWTZYYTYYYZYYWWYYYWUVVYUWYYZYYWYSUYYYYYYYXYYXVYYYYWYYYUYYYYY[YYYY]UYYYXYYXYYYZYYVYYYYYYYYYYYYVYYWUYYXYUYVWZZVYYYYYYYUYUUYVWYYYYWYYYYYYYYYWYYUYYYXYYWUYZYYYYYYYYYYYXXYYYXY[YSXYYVVYYWXYYYUVYWYVYZYVVYYWYYYZVYYYYUYYYYYYYYWZYW\YYYXYTYYYXYYYXYXYYYYYYXYYUYXYYYUVYYYZXVYYVYYYWYYRTYYYSUYUYWYYY`YYTYUVYTYYYYYRYYYWYYYYSYYYSYYYYYWYYYYUTYYYSYYUYYYYZYWYYYYYYYYYYYYXYYW[YYVYVYVUTWUYYYYYYYTYVVYUVYYYYTYYYYYYYYYSYYSYYYTYYSSY\YY^YYYYVYTYT[YYYUYUYSVYYVSYYUSYYYNTYZYYVTYXVYYTYYYUUYTYYNUZYYYYYYTVYWTYYYWYSYYYTYYYUYUYYYYYYVYYRYWYYYWVYYYTVSYYYYYYWYYXLYYYXTR\YVUYYYYYWYVUYXYYYYYTYYWXYYYYWYYYWYYYYYWYYYYWVXYYZYYUYYYXVYUYYYYYYYYYYYY]YYZXYYYYXYXWWUUYYYYYXYUY\WYUZYYYYXYYYYYYYYYVYYVYYYTYYXWY\YYTYYYYUYUYVXYYYWY[YVWYY[WYYVTYYYWYYWYXUVYYVYYZUYY\RYYYYXVWYYYYYYYXYWTYYYVYYYYYUYYYWYTYYYYYYVYYUYQYYYU]YYYV[XYYRYYYWYY^WYYY[WX`YUYYYWYYTYSYYZYYYYYXYYTXYYYYXYYY]YYYYYWYYYYWYYYY]YYYYYYXVYWYYYYYYYYYYYY]YYWYYY_YWYTVZZWYYYYYYYVYZTYUaYYYY[YYYYYYYYYUYYWYYYXYYUYYZYYWYYYYUYWYW[YYYZY]YRYYY[XYYWZYYY]]Y[YWVXYZTYY\VYY`WYZYY\VXYYYYYYVWYYYYYYWYWYYYXYYYVYWYYYYYYWYYVYXYYYX^YYYWZWYYWYYYXYYXYYYYYXXXYYYYY[YYYYWXYZYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYZYXYXYYYYYYYYYYYXYYXYXZYYYYXYYYYYYYYYWYYYYYYYYYYXYZYYXYYYYYYZYWXYYYYYXYVXYYXXYYXYYYYYYYXYYYYYXYYYYXYYZXYXYYYXYYYYYYYXYYZYYYYYYXYYYXYYYYYYYYYYYYYYYZYYYYYXXYYYXYXYYYYYYXYYXWYYYYYXXYYXYYYYYYYVWYYYYYYYZYYXYYYYYXYYYXYYYYYXYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYWYYYXYYXYXYYYWZXYYYYYYYXYXYYWYYYYYYYYYYYYYYYYYYYYYYXYYYXYXYY\YYYYXYXYYYYYYXYYYXZYYYWYYXYYYYXZYXYYXYYYYYYXYYYZXYYYYXWYYYYYYYYXYYXYYYYYXYYYWYYYXYXYYYYYYXYYXYWYYYYZYYYXWXYYXYYYYYYYXYYYYYYXYYZYYYYYYYYYYYYYYYYZYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYXYYYYYYYYYYYYYZZYYYYYYYYYYYYZYYYYYXYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYXYYYXYYYYYYYYXYYYYYXYYYYYYYZYYYYYZYYYZYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYTVYYYUWYWYWYYY]YYWYVTYUYYYYYTYYWUYYYYUYYYSYYYYYYYYYYVSYYYWYYSYYYYWYVYYYYYYYYYYYYWYYXVYYXYTYVYVTVYYYYYYYTYWWYWXYYYYWYYYYYYYYYUYYVYYYWYYVTY[YYYYYYYXYUYVYYYYTYWYUWYYXTYYVTYYYWWYXYXVUYTXYYTZYYZUYVYYXUYYYYYYYYSYVUYYYVYQYYYTYYYTYVYYYYYYUYYQYUYYYUSYYYWXVYYWYYYXYYWHYYYYVUVYVUYYXYYYYWXYYYYYYYUYYXYYYYYXYYYWYYYYYYYYYYXXYYYWYYVYYYXXYWYYYYYYYYYYYYUYYYWYYWYVYXVWSWYYYYYWYVY\YYXYYYYYXYYYYYYYYYVYYWYYYVYYXYYWYY\YYYYVYVYXXYYYVYVYXXYYYXYYWXYYYWXYWYWWWYTVYYXVYYUVYWYYVWXYYYYYYYTYWVYYYYYXYYYVYYYXYVYYYYYYXYYUYOYYYWVYYYXYYYYTYYYYYYVIYYYYTUWYVVYYXYYXYWXYXYYYYYUYYXYYYYYXXYYWYYYYYYYYYYXXYYYVYYVYYYXWYWYYYYYYYYYYYYUYYYWYYYYVYXWYTWYYYYYXYWY\YYXYYYYYXYYYYYYYYYVYYWYYYUYYXYYYYY_YYYYUYUYXWYYYVYUYXXYYYXYYWXYYYUXYWYWWVYTWYYXVYYUUYWYYVVYYYYYYYYSYXVYYYYYXYYYVYYYYYUYYYYYYXYYUYOYYYUVYYYW[ZYYTYYYWYYVWYYYXWZVYWZYY[YYWYVUYYYYYYYYYYWWYYYYWYYYXYYYYYXYYYYZWYYYZYYXYYYYZYWYYYYYYYYYYYYZYYXVYYVYYYVWXZWYYYYYYYYYWVYXWYYYYWYYYYYYYYYWYYUYYYVYYWVY[YYYYYYYXYZYVZYYYYY[YTYYYXWYYXXYYYVXYZYXVZYWVYYWZYYZVYYYYUXYYYYYYYXZYZYYYYYYVYYYVYYYWYYYYYYYYXYYVYWYYYYZYYYWWVYYXYYY\YYRMYYYUURXYQUYYYYYYYH]Y_YYYYYXYYUXYYYYTYYYSYYYYYYYYYYaNXYYTYYTYYYXQYTYYYYYYYYYYYYWYYUUYYUYQYWTS\SYYYYYXYKY]UYSZYYYYYYYYYYYYYYYYYVYYYZYYZUYTYYWYYYYWYVYW]YYYWYWYT]YYTSYYSWYYYRVYNYTW[YRUYY[WYYYMYWYYYZWYYYYYYTSYTUYYYWYVYYY]YYYPYPYYYYYYUYYTY]YYYIOYYY[[TYYPYYYVYYW\YYY\_VVYQUYYTYYWYSSYZYYYYY[YYTWYYYYWYYYSYYYYYYYYXYa\YYYZYYVYYYYaYYYYYYYYYYYYYYVYYXUYYVYUYXV_VOYYYYYWYSYSWYVWYYYYXYYYYYYYYYRYYWYYYbYYUVYRYYLYYYYSYRYVYYYYUY[YUTYYYTYYL[YYYYUYRYSdaYSVYYYZYYURYTYYUYYYYYYYYWdYTPYYYSYVYYYYYYYUYPYYYYYYVYY[YWYYYRUYYY_SWYYTYYYXYYUXYYYWWWVYZYYY\YYXYWWYVYYYYYXYYWVYYYYUYYYXYYYYYZYYYYZUYYYZYYWYYYY\YWYYYYYYYYYYYY[YYXWYYYYXYVVXZVYYYYYYY[YUVYXUYYYYXYYYYYYYYYVYYUYYYWYYXVY\YYYYYYYWYZYWXYYYXYYYUWYYWXYYXTYYYXUYXYUXXYVVYYT[YYXZYVYYVVYYYYYYYXWYXZYYYXYTYYYWYYYXYYYYYYYYWYYWYZYYYYXYYYWWUYYXYYYZYY[YYYYXWZWY[ZYY\YYXYXWYYYYYYYVYYYXYYYYWYYYYYYYYYYYYYYVXYYY]YYYYYYYVYZYYYYYYYYYYYYWYYXWYYZYSYWWXWYYYYYYYYXY[WYZWYYYYXYYYYYYYYYYYYWYYYVYYXVY]YY]YYYYXY[YXZYYYXYTYXZYY[YYYYYYYYXVY[YZWWYYXYYWXYY\XYXYYWWXYYYYYYXXYYXYYYXYWYYYVYYYZYZYYYYYYYYYXYVYYYY\YYYV[XYYYYYYXYYVWYYYWWYWYV[YY\YYVYSTYYYYYYYVYYTVYYYYVYYYYYYYYYXYYYYXTYYYWYYYYYYYYYWYYYYYYYYYYYYZYYXUYYYYWYUT\[TYYYYYYYWYVTYWWYYYYTYYYYYYYYYVYYUYYYVYYVTYZYY]YYYYXYYYUYYYYXYZYRXYYVXYYVWYYYRVYZYWYXYVTYYW[YY[VYWYYUWYYYYYYYWYYWZYYYWYSYYYWYYYWYWYYYYYYXYYUYUYYYX\YYYYWSYYYYYYXYYYYYYYYXWYYXYYYZYYYYXWYZYYYYYZYYXYYYYYXYYYXYYYYYXYYYYYYYYYZYYYYYYYYYXYYYYYYYYYYYYZYYZXYYZYYYZXWXXYYYYYYYXYYYYXXYYYYXYYYYYYYYYWYYYYYYXYYXYYYYYXYYYYXYZYXYYYYXYYYXYYYXXYYXXYYYXYYYYXYYYZYYYYZYY[WYXYYWXYYYYYYYXYYYVYYYYYXYYYYYYYXYXYYYYYYXYYXYXYYYYYYYYYXYYYXYYYVYYUUYYYWWVOYSYYY`YYVYNSYXYYYYYYYYSTYYYYSZYYVYYYYYWYYYY[TZYYUYY[YYYZ^YTYYYYYYYYYYYYVYY[UYYUYXYVSW\SYYYYYZYVYUVYUWYYYYTYYYYYYYYYWYYWYYYXYYVVYZYY_YYYYYYXYW[YYY]YVYSYYYVSYYUYYYYPXYXYWYUYTUYYW`YYTTYSYYVW\YYYYYYXYYVTYYYXYRYYYVYYYVYYYYYYYYXYYVYUYYYVSYYYZVTYYXYYYVYYWVYYYWRXRYUZYY_YYTYVSYWYYYYYSYYWUYYYYTZYYUYYYYYYYYYYUQZYYZYYYYYYZVYVYYYYYYYYYYYYVYYVSYYXYTYSSXWVYYYYYZYVYTTYVRYYYYRYYYYYYYYYTYYRYYYSYYURY\YY]YYYYXYXYVTYYYRYWYQTYYRTYYWSYYYMUY\YWVVYTSYYSVYYXVYRYYNT[YYYYYYTTYVXYYYXYQYYYSYYYVYVYYYYYYTYYSYWYYYTUYYYVVUYY[YYYXYYWGYYYYTVVYVUYYWYYXYVXYXYYYYYTYYXYYYYYXYYYWYYYYYXYYYYWWYYYUYYVYYYXVYVYYYYYYYYYYYYUYYXWYYWYVYXVWVVYYYYYXYVY\YYXYYYYYXYYYYYYYYYVYYVYYYTYYWYYWYYaYYYYTYUYYXYYYUYUYXXYYZXYYUXYYYWXYVYWWUYTVYYXWYYTUYXYYUWXYYYYYYYRYVTYYYXYWYYYUYYYXYUYYYYYYXYYTYMYYYWVYYYWXXYYSYYYVYYWJYYYYUXQYWUYYXYYWYYTYWYYYYYXYYTVYYYYWYYYRYYYYYWYYYYWWXYYZYYTYYYYVYXYYYYYYYYYYYYTYYVWYYVYUYWVY[ZYYYYYWYXYXVYYZYYYYWYYYYYYYYYWYYVYYYSYYYYYXYY^YYYYTYTYYUYYYVYYYU[YYSUYYZXYYYSXYWYTWUYVWYYTXYYWVY[YYVYXYYYYYYWUYYUYYYXYVYYYUYYYWYUYYYYYYWYYTYOYYYWZYYY[WXYYYYYY[YYVUYYYXXYVYT\YYYYYXYXXYYYYYYYZYYYXYYYYWYYYXYYYYYZYYYYZUZYYVYYWYYYYZYWYYYYYYYYYYYYXYYZVYYWYVYYUVYVYYYYYYYTYYZYXWYYYYVYYYYYYYYYZYYWYYYWYYWWYYYYXYYYYYY]YUZYYYWYVYXXYYVZYYWWYYYWXYZYYWXYYYYYX\YYX[YZYYVWYYYYYYYYYYUXYYYWYWYYYYYYYZYWYYYYYYXYYXYZYYYZVYYYXXZYYWYYYVYYURYYYWV[\YX[YYYYYSYTVYUYYYYYWYYUVYYYYTYYYVYYYYYWYYYYVSYYYZYYWYYYYXYWYYYYYYYYYYYY^YYV[YYXYWYUWWWVYYYYYYYTYXVYV\YYYYWYYYYYYYYYUYYTYYYUYYUPY\YYVYYYYWYXYSZYYYYYYYSVYYYVYYVRYYYVWY[YWTXYYUYYWYYY^TYYYYWUYYYYYYYWZYWWYYYWYVYYYWYYYTYSYYYYYYTYYUYXYYYV]YYYUXUYYUYYYWYYXXYYYXYXXYXZYY[YYXYWXYYYYYYYXYYWVYYYYWYYYXYYYYYXYYYYZWYYY[YYXYYYYZYWYYYYYYYYYYYYXYYYWYYWYYYWV\ZXYYYYYYYYYVVYXXYYYYVYYYYYYYYYWYYWYYYVYYXVY\YYZYYYYWYWYWYYYYZYZYUYYYYWYYXXYYYUXYYYWVXY[VYYYZYY]YYXYYWYYYYYYYYY[YYVYYYXYWYYYWYYYXYXYYYYYYXYYYYVYYYZ\YYYZVWYYZYYYXYYSXYYYRT\VYWYYY`YYTYWQYTYYYYYUYYUVYYYYNYYYQYYYYYVYYYYUSYYYWYYWYYYZYYWYYYYYYYYYYYYWYYVUYYZYVYWVTSVYYYYYYYXYTTYSQYYYYTYYYYYYYYYRYYSYYYXYYSRYYYYbYYYYVY^YVZYYYUYUYOUYYWSYYYUYYYURY\YZVSYWUYYU[YYYRYVYYRSZYYYYYY[SYRRYYYWYUYYYPYYYTYXYYYYYYUYYUYXYYYZZYYYUVRYYZYYYVYYSVYYYTY[ZYYYYY]YYSYUUYUYYYYYUYYUXYYYYVYYYVYYYYYXYYYYURYYYXYYTYYYXZYXYYYYYYYYYYYY^YYV\YYZYXYXYVVTYYYYYYYUYXWYSZYYYYUYYYYYYYYYVYYVYYYUYYSNYYYYVYYYYXYYYT\YYYWY[YTVYYUWYYWSYYYUUYVYWVXYUUYYYWYYYSYVYYXTYYYYYYYYYYXUYYYWYUYYYVYYYUYUYYYYYYTYYOYYYYYRXYYYSXTYYWYYYXYYWUYYYUVYVYXZYY\YYWYYTYVYYYYYTYYYXYYYYWYYYUYYYYYXYYYYVUYYYXYYWYYYYXYXYYYYYYYYYYYYUYYWVYYVYUYWWXVWYYYYYYYVYWWYWUYYYYVYYYYYYYYYVYYVYYYUYYUTY[YYaYYYYVYVYWZYYYUYUYUWYYWTYYXWYYYTUYYYYXUYUWYYTVYYWWYVYYTVYYYYYYYWSYWVYYYWYVYYYSYYYWYUYYYYYYWYYUYYYYYXXYYYVZWYYXYYYWYYWQYYYTYYWYU]YY]YYRYVQYSYYYYYWYYSTYYYYVYYYTYYYYYXYYYYUPYYYVYYUYYYYYYWYYYYYYYYYYYYZYYVUYYWYVYTVWUSYYYYYXYSYXUYSTYYYYSYYYYYYYYYWYYUYYYRYYSPY[YYVYYYYUY\YT[YYYTYYYRTYYP[YYUQYYYVQY[YURSYRSYYSSYY]WYUYY[PXYYYYYYYVYYZYYYVYXYYYSYYYXYTYYYYYYTYYPYXYYYSWYYYQ`SYYUYYYWYYXVYYYWVZVYXYYY[YYVYXWYYYYYYYXYYVVYYYYWYYYWYYYYYXYYYYYWYYY[YYXYYYYWYWYYYYYYYYYYYYXYYVXYYVYXYWVZZXYYYYYYYYYXUYYYYYYYXYYYYYYYYYVYYVYYYVYYWUYXYYWYYYYUYZYVYYYYWYZYUXYYVWYYXYYYYVWYYYTVYYVUYYTXYYYWYYYYUYYYYYYYYXZYZZYYYYYUYYYWYYYYYXYYYYYYWYYUYWYYYY[YYYXWWYYYYYYYYYTTYYYVVXWYW\YY\YYWYXWYWYYYYYZYYVVYYYYWYYYWYYYYYXYYYYYVYYYYYYXYYYYYYWYYYYYYYYYYYYTYYUUYYVYUYVW[YWYYYYYYYZYWUYXWYYYYWYYYYYYYYYWYYWYYYVYYZVYYYY]YYYYYYZYWXYYYXYXYSXYYVVYYYVYYYWVYWYTUWYWUYYVXYYZZYWYYYVXYYYYYYYXYXWYYYXYTYYYVYYYWYXYYYYYYXYYVYXYYYZZYYYXYVYYYYYYZYYSJYYYVRWRYRUYYYYYVYUSYWYYYYYQYYYXYYYYUYYYTYYYYYWYYYYWVYYYQYYTYYYYVYWYYYYYYYYYYYYOYYWWYYVYUYWVUUVYYYYYXYTY[YYWWYYYYUYYYYYYYYYSYYUYYYWYYXWYVYYaYYYYSYQYVWYYYQYRYUWYYWRYYVXYYYSWYXYXXQYSWYYWXYYRPYSYYOUYYYYYYYWMYUSYYYWYUYYYSYYYVYVYYYYYYWYYRYQYYYTUYYYWVWYYTYYYYYYWTYYYXXVWYYXYYYYYXYYVYYYYYYYWYYYWYYYYWYYYXYYYYYXYYYYWWYYYYYYWYYYYXYYYYYYYYYYYYYYUYYXXYYXYVYXWXVXYYYYYYYYYWWYVXYYYYYYYYYYYYYYWYYWYYYUYYYXYYYY\YYYYWYXYWYYYYWYUYVYYYXVYYYWYYYVWYVYXVWYVXYYWXYYY[YVYYWWXYYYYYYYUYYTYYYXYWYYYVYYYWYXYYYYYYXYYXYXYYYYXYYYXYXYYXYYYUYY_UYYYXZWYYSWYY`YYSYLSYYYYYYYYYYUSYYYYXYYYWYYYYYVYYYYYTYYYXYY[YYYZ\YRYYYYYYYYYYYY[YYQPYYYYXYTRY`UYYYYYYYVYSPYTXYYYYUYYYYYYYYYRYYSYYYUYYUSY^YYYYYYYYYTYVZYYYaY\YP[YY`RYYV\YYYTWYYYVTYYYPYY_YYY^OY[YYRYXYYYYYYRYYTYYYYXYYYYYVYYYXYWYYYYYYZYYUYPYYYQ\YYY_RRYYRYYYXYYVTYYYXW[WYWZYY\YYUYWWYTYYYYYWYYVWYYYYYYYYTYYYYYXYYYYTTYYY[YYWYYYYWYWYYYYYYYYYYYY]YYVXYY\YXYWWXYWYYYYYXYYYZUYVWYYYYXYYYYYYYYYWYYVYYYVYYXSY\YYVYYYYXY[YV]YYYZY\YWVYYW[YYWVYYYWWYZYUWZYXXYYSYYY_UYWYYVUXYYYYYYV[YXXYYYWYTYYYXYYYYYWYYYYYYXYYWY[YYYU\YYYVZUYYUYYYZYYVUYYYVWVVYXXYY]YYXYXUYYYYYYYVYYVXYYYYVYYYVYYYYYZYYYYUYYYYWYYVYYYYYYYYYYYYYYYYYYYTYY[XYYWYUYXXWWXYYYYYZYXYWXYUWYYYYXYYYYYYYYYXYYWYYYXYYZWYWYYbYYYYXYWYXZYYYXYTYWZYYXVYYYYYYYVWYVYXYUYVWYYYZYYXZYUYYVWZYYYYYYZUYXUYYYYYWYYYVYYYWYXYYYYYYYYYYYXYYYZUYYYXXXYYZYYYWYYSVYYYTTWYYSYYY^YYSYSTYXYYYYYUYYWVYYYYWYYYWYYYYYWYYYYXRYYYZYYXYYYZ[YWYYYYYYYYYYYY]YYUXYYYYXYTTXYUYYYYYYYWYWTYTXYYYYVYYYYYYYYYRYYSYYYRYYSSY]YY[YYYYXYUYTYYYYVY[YRUYYYWYYVSYYYSVYYYXVWYVSYYWZYY]PYVYYRUYYYYYYYUXYXXYYYWYSYYYTYYYVYUYYYYYYUYYRYTYYYSYYYYTYVYYVYYYYYYWWYYYWXWWYXZYY[YYYYSWYZYYYYYYYYVWYYYYVYYYVYYYYYZYYYYZVYYYYYYYYYYZWYWYYYYYYYYYYYYWYYWUYYYYVYWWY[YYYYYYYYWYVVYWVYYYYVYYYYYYYYYWYYWYYYZYYZUYZYY[YYYYYYZYWZYYYYYXYVYYYXUYYXYYYYUVYYYWZXYWWYYXXYY[XYWYYWZYYYYYYYVXYXVYYYYYVYYYYYYYVYWYYYYYYXYYXYZYYYUWYYY[XWYYWYYYXYYWXYYYXYXVYVYYY[YYWYZUYZYYYYYYYYVVYYYYUYYYZYYYYYYYYYYZUYYYXYYYYYYZYYWYYYYYYYYYYYYYYYWYYYYYXYWTWYVYYYYYYYWYXXYWWYYYYVYYYYYYYYYWYYTYYYWYYXVYXYYYYYYYXY\YXXYYYXY]YTXYYVXYYWXYYYUXY\YYWXYVVYYV[YY[XYVYYWWZYYYYYYYZYY\YYYXYXYYYWYYYVYUYYYYYYXYYXYYYYYXXYYYVZUYYXYYYYYYYYYYYYYYXYYYYYYYYYYYXYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYZYYYYYYYYZYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYVYYYYWZVVYZ[YY]YYXYXVYXYYYYYXYYXWYYYYUYYYWYYYYYXYYYYYXYYYYYYXYYYZYYXYYYYYYYYYYYYXYYZWYYXYXYXWXYYYYYYYZYYYWYYVXYYYYWYYYYYYYYYXYYXYYYYYY[WYZYY[YYYYXYYYXYYYY[YUYXXYYXWYYYWYYYWVYZYWYYYZXYYVYYYZWYWYYVXZYYYYYYXYYYUYYYYYWYYYYYYYVYYYYYYYYYYYYYZYYYXWYYYYWXYYYYYYVYYTSYYYUVY]YVYYY_YYPYOSYRYYYYYVYYTVYYYYUYYYUYYYYYUYYYYUOYYY]YYTYYYY\YVYYYYYYYYYYYYcYYQXYY^YZYQWXXSYYYYYXYTYWSYN]YYYYWYYYYYYYYYRYYRYYYRYYQKY^YYSYYYYUYUYQ\YYYZY]YPTYYYUYYVQYYYTVYWYSTYYXSYYWUYYaOYWYYVSYYYYYYYR_YWTYYYUYPYYYUYYYSYSYYYYYYTYYNYXYYYQ^YYYTWQYYSYYYZYYSWYYY[VWXYXYYYZYYWYVQYWYYYYYVYYUUYYYYTYYYYYYYYYXYYYYUUYYY[YYYYYYX[YXYYYYYYYYYYYY[YYWRYYXYYYVXXSUYYYYYYYXYXVYWSYYYYTYYYYYYYYYWYYXYYYUYYZSYYYYYYYYYYY\YYYYYYWYYYVYYYYYYYWUYYYWUYXYVWXYXWYYU\YYXYYUYY\WXYYYYYY[VYXXYYYYYVYYYVYYYVYWYYYYYYXYYWYXYYY[WYYYVVTYYVYYYVYYYRYYYYVZ\YWXYYVYYTYSVYWYYYYYTYYTYYYYYXYYYVYYYYYVYYYYWVYYYYYYTYYYXXYWYYYYYYYYYYYYaYYWZYY\YYYWZWVVYYYYYXYUYWVYU\YYYYVYYYYYYYYYUYYWYYYTYYUTYYYYRYYYYWYWYWYYYYWY\YUXYYWUYYUTYYYYXYYYVUYYXVYYXVYY`SYXYY[VYYYYYYYWYYVTYYYWYXYYYXYYYTYTYYYYYYTYYSYWYYYTZYYYVWUYYVYYYZYYXYYYYXXYYYYXYYYYYXYYXYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYZYYYYYYZYYZYYYYYXYXXYYYXYYYYYYYXYYYYXXYYYYYYYZYYYZYXYYZYYYYYYYYXXYYYYYYYYXYYYYYYYYYZYYYYYYYYYYYZYYYYXYYYYYYYYZYYYXYYWVYYYWWYUYYZYY[YYXYWWYVYYYYYXYYUWYYYYVYYYXYYYYYYYYYYYVYYYXYYXYYYZXYWYYYYYYYYYYYYXYYYXYYWYXYWXYXWYYYYYYYXYVVYXXYYYYWYYYYYYYYYWYYUYYYYYYWVYYYY\YYYYXY[YVWYYYXYWYUXYYWWYYWVYYYUWYZYWWXYXXYYUZYYZYYVYYVXZYYYYYYXZYXXYYYWYVYYYXYYYWYXYYYYYYXYYXYXYYYYYYYYXYUYYZYYY\YYPXYYYQUYTYXYYYcYYRYYQYRYYYYYVYY\UYYYYTYYYPYYYYYZYYYYYPYYY[YYVYYYZ_YWYYYYYYYYYYYY\YYSYYYUYUYXVW[SYYYYYZYTYUVY[RYYYYRYYYYYYYYYTYYRYYYTYYTOY`YY]YYYYWYXYW]YYYXYXYUUYY\TYYUPYYYQQYXY[SWY\VYYTYYY[SYTYYOTYYYYYYYU]YXSYYYVYMYYYVYYYTYRYYYYYYUYYOYZYYYZ_YYYX[VYY[YYYVYYWFYYYYVXQYWQYYWYYVYWTYZYYYYYYYYVXYYYYWYYYVYYYYYWYYYYV`YYYOYYTYYYXRYWYYYYYYYYYYYYVYYXRYYPYWYXTZ[XYYYYYWYVY]VYZZYYYYXYYYYYYYYYZYYWYYYSYYXZYVYYUYYYYVYUYXVYYYTY^YXZYYUWYYX[YYYVUYYYV[]YTUYYXWYYQSY^YYUWWYYYYYYYPYUWYYYXY\YYYVYYYYYSYYYYYYVYYLYMYYYWaYYYSSWYYVYYYVYYSSYYYQU\YYUZYY`YYRYVRYSYYYYYUYYVVYYYYTYYYTYYYYYUYYYYTPYYYUYYTYYYZXYVYYYYYYYYYYYYXYYU[YYVYXYVUUWUYYYYYYYRYXUYSWYYYYTYYYYYYYYYRYYTYYYUYYSQY\YYaYYYYVYTYSZYYYXYWYOTYYXRYYWRYYYTUYXYYSUYWTYYUYYYYRYTYYSTYYYYYYYUTYTVYYYWYSYYYUYYYTYRYYYYYYSYYPYWYYYV[YYYUWSYYVYYYVYYVYYYYW\[UYUYYY]YYVYVSYWYYYYYYYYYUYYYYUYYYUYYYYYZYYYYYWYYYZYYXYYYZ[YXYYYYYYYYYYYYWYYWVYYWYYYWTUZUYYYYYYYUYWWYUUYYYYSYYYYYYYYYWYYUYYYXYYYUYZYYYYYYYVY\YUVYYYXYWYSVYYUXYYTWYYYUTYZYWVZYVVYYUWYYWUYUYYVUZYYYYYYYYYVUYYYTYTYYYTYYYVYUYYYYYYXYYUYWYYYXUYYYVYVYYXYYYYYYTEYYYWYUWYUSYYhYYWYWWYWYYYYYUYYVXYYYYUYYYWYYYYYVYYYYZSYYYTYYTYYYYVYWYYYYYYYYYYYYRYYZVYYVYYYWWSQWYYYYYXYYY\YYUXYYYYZYYYYYYYYYPYYVYYYUYYVWYYYY`YYYYSYTYXZYYYTYTYVVYYZWYYWUYYYTWYTYTWSYSVYYVVYYUSYUYY]UXYYYYYYZQYWRYYYYYRYYYSYYYVYTYYYYYYUYYSYMYYYSTYYYU[YYYTYYYVYYXPYYYYWWTYYYYYYYYWYWPYVYYYYYTYYTWYYYYYYYYTYYYYYZYYYYWVYYY[YYWYYYYYYXYYYYYYYYYYYY[YYYTYYVYZYYYYRWYYYYYYYXYSXY[UYYYYSYYYYYYYYYTYYUYYYWYYUTYZYYYYYYY[YVYXWYYY[Y]YVYYYSWYYWUYYYTTYYYY[WYWVYYU\YY\TYVYYYXXYYYYYYTWYW[YYYYYXYYYVYYYUYYYYYYYYWYYUYTYYYYWYYYZVYYYXYYYXYYWHYYYYVVWYWUYYYYYYYXXYYYYYYYUYYYYYYYYXYYYWYYYYYYYYYYXXYYYWYYVYYYXXYWYYYYYYYYYYYYWYYXWYYWYWYXVVRVYYYYYXYWYZYYXYYYYYXYYYYYYYYYVYYWYYYVYYXXYWYYZYYYYVYVYYXYYYWYWYYXYYZYYYWYYYYXXYWYWWXYUVYYYWYYUWYXYYWXWYYYYYYYUYWUYYYXYXYYYVYYYXYVYYYYYYXYYVYOYYYWWYYYXWYYYTYYYVYYTWYYYVYXWYXXYY_YYTYRRYTYYYYYYYYUVYYYYVYYYVYYYYYWYYYYYRYYYZYYUYYYY]YWYYYYYYYYYYYY\YYUWYYYYZYVYVYWYYYYYYYUYUVYTWYYYYVYYYYYYYYYTYYVYYYXYYUPY\YYYYYYYVYXYVYYYYYYXYQUYYXTYYXRYYYUWYXYYVXYWTYYTYYYYUYVYYVXYYYYYYYX\YWTYYYXYRYYYWYYYTYWYYYYYYTYYSYVYYYTXYYYVUTYYVYYYUYYYRYYYTSZUYWZYY]YYQYVSYTYYYYYRYYSTYYYYXYYYTYYYYYUYYYYUQYYY_YYUYYYYYYVYYYYYYYYYYYY^YYSWYYYYVYUVYVVYYYYYZYVYTSYTXYYYYTYYYYYYYYYRYYRYYYPYYSPY\YYTYYYYWYVYSWYYYTYZYOUYYSUYYVOYYYORYZYRSUYVSYYQWYY\UYVYYSTYYYYYYYTYYXUYYYTYOYYYSYYYSYUYYYYYYTYYOYUYYYS[YYYRXOYYWYYYYYYWJYYYVQYPYV\YY`YYUYTRYUYYYYYQYYSVYYYYTYYYTYYYYYUYYZYVPYYYVYYYYYYXOYXYYYYYYYYYYYYTYY]RYYWYRYTUZYSYYYYYYYYYXWYWVYYYYSYYYYYYYYYTYYTYYYTYYYWYXYYeYYYYRYYYUTYYYUYUYUXYYTTYYVUYYYQUY[YZ[SYVRYYRTYYWWYVYYWTYYYYYYYSPYWTYYYVYSYYYRYYYWYTYYYYYYVYYRYSYYYZYYYYX\TYYXYYYZYYUOYYYYYSTYYYYY\YYWYXVYYYYYYYYYYYWYYYYUYYYTYYYYYYYYZY\XYYYYYYTYYYY[YTYYYYYYYYYYYYTYYWTYY\YWYUV[ZSYYYYYXYXYYXYWYYYYYWYYYYYYYYYTYYTYYYTYYZWYZYYeYYYYUYWYVXYYY\YXYWXYYYVYYVSYYYWTYTYTYVYUWYYX[YYYWYUYYXWYYYYYYYY\Y\RYYY[YZYYYWYYYUYXYYYYYYZYYZYWYYYXXYYYVYWYYVYYYVYYWVYYYSVXRYWXYY]YYTYTRYVYYYYYTYYVUYYYYPXYYRYYYYYYYYYYXVYYYXYYUYYYZZYXYYYYYYYYYYYY]YYUUYYVYVYXWTWWYYYYYYYVYTUYSVYYYYTYYYYYYYYYTYYSYYYXYYVRYZYY]YYYYXYYYU[YYYWYYYTWYYZRYYVUYYYPUYVYZVUYXUYYU[YYYTYTYYRVYYYYYYYVXYTRYYYWYQYYYTYYYTYVYYYYYYWYYSYWYYYWYYYYWUTYYWYYYWYYXXYYYXYZWYVZYY[YYXYWVYWYYYYYYYYXXYYYYWYYYWYYYYYYYYYYZWYYYYYYYYYYZZYXYYYYYYYYYYYYXYYZWYYWYYYXXZZWYYYYYYYYYXXYYVYYYYWYYYYYYYYYXYYVYYYYYYYWYZYYZYYYYXY[YXXYYYWYXYWXYYWWYYXWYYYVVYZYXXYYXXYYWXYY[XYZYYXWYYYYYYYZYYYXYYYXYVYYYWYYYYYYYYYYYYWYYXYWYYYXXYYYZYXYYYYYYYYYTVYYYVUWVYT\YYZYYTYXPYVYYYYYWYYSSYYYYPYYYXYYYYYXYYYYZTYYYYYYZYYYZVYWYYYYYYYYYYYYZYYVSYYWYVYTSWXSYYYYYYYUYUTYVSYYYYSYYYYYYYYYRYYSYYYWYYWTYYYY[YYYYYYbYTYYYYWYYYQUYYTUYYVVYYYUSY^YWTWYWTYYTZYY[\YRYYVUZYYYYYYZXYUWYYYXYRYYYTYYYTYWYYYYYYWYYVYXYYY[YYYYUXQYYWYYYWYYWWYYYX[XYYWXYYYYYYYYVYYYYYYYXYYWXYYYYXYYYYYYYYYYYYYYZXYYYZYYXYYYYYYXYYYYYYYYYYYYXYYZXYYYYXYXXWXUYYYYYYYVYYYYXXYYYYYYYYYYYYYYWYYXYYYYYYXVYXYYYYYYYWYXYWZYYYXYYYWXYYXXYYVWYYYXXYWYXXXYWXYYXYYYZXYWYYVVYYYYYYYYZYXYYYYWYXYYYWYYYYYVYYYYYYWYYXYWYYYXXYYYWYXYYXYYYSYYWTYYYWYaQYSVYYdYYUYWRYTYYYYYTYYSWYYYYOYYYTYYYYYRYYYYVSYYYSYYUYYYYYYVYYYYYYYYYYYYNYYXUYYUYTYYSTRVYYYYYZYSYQXYSRYYYYTYYYYYYYYYPYYWYYY^YYUTYVYYeYYYYXY]YYWYYYQYUYOWYYSQYYVXYYYQTY[YZSUYVVYYS[YYRTYZYYUSZYYYYYY]JYNSYYYWYRYYYTYYYRYYYYYYYYSYYUYRYYY\SYYYWVQYY]YYYWYYZWYYYWXXUYZZYY]YYXYVWYVYYYYYZYYTWYYYYVYYYVYYYYYXYYYYZUYYYYYYXYYYZZYUYYYYYYYYYYYYWYYXWYYVYYYVVZZXYYYYYYYZYUVYYXYYYYUYYYYYYYYYVYYVYYYWYYXTYZYYYYYYYXYXYWXYYYYYZYSXYYWVYYXVYYYUWYYYTWYYXVYYUXYYZXYXYYVYYYYYYYYY[Y[WYYYXYUYYYYYYYXYXYYYYYYWYYXYWYYYUYYYY[VVYY[YYYXYYXYYYYXYZXYYXYYZYYXYWXYWYYYYYXYYXXYYYYXYYYWYYYYYYYYYYXWYYYXYYWYYYYZYXYYYYYYYYYYYYZYYXZYYXYZYYXWYXYYYYYYYWYXXYXXYYYYXYYYYYYYYYWYYWYYYXYYXWYZYYYYYYYXYWYXYYYYYYYYWYYYXWYYXWYYYWXYXYXXZYXXYYWYYYXXYXYYWXYYYYYYYXZYYWYYYYYXYYYXYYYXYXYYYYYYXYYWYXYYYXXYYYYXWYYXYYYXYYWRYYY[VYTYQXYYZYYXYSWYXYYYYYXYYTWYYYYUYYYTYYYYYYYYYY^XYYYVYYXYYYY]YWYYYYYYYYYYYYYYYWVYYXYXYXU\[VYYYYYXYVYYYYWUYYYYWYYYYYYYYYTYYVYYYZYYVXYVYYZYYYYVYWYVYYYYWYZYVVYYVWYYVWYYYXVYYYV\]YYVYYV\YYZTYXYYW[YYYYYYYYUYWXYYYYYUYYYUYYYUYUYYYYYYWYYUYSYYYSVYYY[WVYYYYYYWYYWXYYYXVXUYXVYY[YYWYQVYXYYYYYZYYTWYYYYVYYYYYYYYYXYYYYXWYYYZYYYYYYYXYWYYYYYYYYYYYYZYYYUYYYYXYUVXZYYYYYYYYWYUWYWXYYYYXYYYYYYYYYUYYUYYYZYYWTYZYYYYYYYWYYYWVYYYXYXYTXYYYVYYWWYYYWXY[YYYZYXUYYWXYYYWYWYYXZZYYYYYYWZYXWYYYYYYYYYYYYYWYZYYYYYYVYYYYWYYYTXYYYZVUYYXYYYXYYXWYYYYWYVYYZYYXYYXYWWYZYYYYYYYYVXYYYYYYYYWYYYYYWYYYYXXYYYZYYZYYYXXYXYYYYYYYYYYYYYYYVXYYYYXYXXZYYYYYYYXYXYYXYWYYYYYWYYYYYYYYYWYYWYYYWYYZWYZYYYYYYYXYYYVWYYYXYXYTXYYXXYYYXYYYWXYXYWXZYXYYYWXYYZYYYYYXZXYYYYYYYXYYXYYYXYXYYYXYYYYYXYYYYYYWYYYYYYYYWYYYYWYXYYYYYYXYYVXYYYVWVUYYWYY\YYWYUUYYYYYYYWYYUVYYYYUYYYWYYYYYYYYYYZXYYYXYYWYYYYZYXYYYYYYYYYYYYWYYVUYYZYWYXXXWVYYYYYYYXYVWYUVYYYYWYYYYYYYYYUYYTYYYYYYYWYXYYYYYYYXYZYWWYYYYYXYVXYYWVYYYWYYYVVYYYSWWYVWYYXZYYYXYWYYZWZYYYYYYYYYYVYYYXYUYYYZYYYUYXYYYYYYYYYXYYYYYXVYYYYYTYYYYYYYYYWMYYYYVVXYWYYY[YYYYUXYWYYYYYWYYYYYYYYZYYYXYYYYYYYYYYXXYYYYYYWYYYZXYUYYYYYYYYYYYY\YYYWYYYYZYXVXVWYYYYYXYUY^XYXZYYYYYYYYYYYYYYVYYUYYYTYYXWY\YYZYYYYWYVYXZYYYXYUYWZYY^ZYYUWYYYWZYWYWWXYXUYYYXYYZUY[YYXXYYYYYYYWVYVVYYYXYZYYYXYYYYYUYYYYYYZYYWYPYYYV\YYYY[XYYUYYYXYYYKYYYYWVUYVXYYWYYXYVYYZYYYYYVYYWXYYYYWXYYWYYYYYXYYYYYWXYYXYYWYYYXWYVYYYYYYYYYYYYYYYYWYYYYXYXVWVWYYYYYXYWY]WYX[YYYYXYYYYYYYYYVYYVYYYUYYWYYYYYYYYYYVYUYYXYYYXYUYWYYY[YYYWXYYYVZYXYYYWYTUYYYXYYVUYXYYUYXYYYYYYXVYXXYYYXYWYYYVYYYXYVYYYYYYYYYWYNYYYVXYYYY[XYYTYYYVYYZJYYY\UU\YUWYYWYYTYTUY\YYYYYTYYUZYYYYXYYYYYYYYYVYYZYUZXYY\YYVYYYYUYVYYYYYYYYYYYY]YYYWYY\YXYVWVWVYYYYYXYTY]VYU^YYYYZYYYYYYYYYTYYXYYYVYYVZYYYYWYYYYTYUYWXYYYXY[YUXYYZWYYUYYYY[^YXYYWWYVTYYYSYY[UYXYY[WXYYYYYYWVYWUYYYWYWYYYWYYYWYTYYYYYYVYYWYPYYYTYYYYW\XYYSYYYZYYVUYYYWVYTYWVYYYYYXYWUYYYYYYYVYYWWYYYYWYYYWYYYYYYYYYYWXYYYZYYXYYYYTYXYYYYYYYYYYYYZYYWVYYYYVYXYZXXYYYYYWYXYYWYZYYYYYXYYYYYYYYYYYYWYYYWYYY[YZYYWYYYYXYXYWXYYYWYWYWWYYWYYYXVYYYVWYZYXWXYYXYYT\YYYXYZYYZXXYYYYYYWWY[]YYYZYUYYYWYYYZYYYYYYYYYYYXYUYYYYXYYYYXWYYXYYYXYYVIYYYWYVSYWTYYYYYXYUWYXYYYYYVYYXXYYYYWYYYVYYYYYXYYYYYWYYYVYYSYYYYYYXYYYYYYYYYYYYUYYZUYYVYYYXVXTVYYYYYXYVY[XYUXYYYYVYYYYYYYYYVYYXYYYUYYXXYWYY^YYYYUYWYYVYYYVYTYXWYYXXYYWXYYYVWYVYVVVYRUYYWWYYTTYVYYZUYYYYYYY[TYXWYYYXYVYYYUYYYYYUYYYYYYXYYUYQYYYXTYYYVWXYYTYYYYYYZWYYYXXWYYWXYY[YYWYWVYYYYYYYXYYVWYYYYWYYYWYYYYYYYYYYVXYYYYYYWYYYYXYXYYYYYYYYYYYYXYYXWYYXYVYXWWXWYYYYYYYWYYWYVYYYYYWYYYYYYYYYWYYVYYYXYYYVYXYYZYYYYVYYYXYYYYWYXYUXYYVUYYXZYYYVWYXYXVWYVWYYWXYY[WYVYYVWZYYYYYYYUYYXYYYXYWYYYXYYYXYWYYYYYYXYYWYWYYYWYYYYXXWYYXYYYYYYVMYYYUXVTYTXYYWYYVYTUYWYYYYYVYYWUYYYYVYYYUYYYYYXYYYYZSYYYVYYZYYYY[YVYYYYYYYYYYYYTYYVSYYUYWYVT[YUYYYYYXYUYWUYVWYYYYUYYYYYYYYYTYYVYYYWYYVUY]YYZYYYYXYYYXYYYY[YVYUXYY[WYYVXYYYSVYXYWUWYUTYYZ[YYYTYYYYVXYYYYYYYVXYWWYYYXYSYYYXYYYVYVYYYYYYYYYWYSYYYWXYYY]VVYYVYYYZYYWZYYYWXYWYYXYY[YYXYWUYWYYYYYXYYYWYYYYXYYYXYYYYYZYYYYXUYYY[YYXYYYYYYXYYYYYYYYYYYY[YYVWYYXYWYYXXYXYYYYYYYVYXXYVXYYYYXYYYYYYYYYWYYXYYYYYYXUY[YYVYYYYYYXYX[YYY[YYYUXYYYVYYZXYYYXYYXYZWYYXWYYXYYYYWYXYYWXYYYYYYYX\Y\XYYYXYWYYYWYYYXYXYYYYYYXYYVYXYYYWYYYYZXYYYYYYYYYYYXYYYYXXWYXWYYYYYXYXYY[YYYYYXYYXXYYYYXYYYZYYYYYYYYYYYZYYYZYYYYYYYZYXYYYYYYYYYYYYYYYZZYY[YXYXWYXXYYYYYXYYYXXYYYYYYYYYYYYYYYYYWYYVYYYYYYXWYYYYYYYYYWYXYWYYYYYYYYVZYYXXYYXYYYYYZYWYXXYYXXYYYYYYZYYWYYVYYYYYYYYYXYYZYYYXYXYYYWYYYYYYYYYYYYXYYYYXYYYXVYYYXYXYYXYYYWYYWQYYYSXWQYRWYYZYYXYUTYWYYYYY_YYTWYYYYRYYYTYYYYYSYYYY\VYYYUYYWYYYXVYTYYYYYYYYYYYYWYY\OYYVYXYWTWVVYYYYYXYXYXYYUUYYYYTYYYYYYYYYVYYZYYYRYYTWYYYYZYYYYTYZYZTYYYTYUYWTYYTYYYVVYYYTTYXYXWYYTXYYUZYYVPYZYYZTXYYYYYY\XYZQYYYXYUYYYVYYYYYRYYYYYYSYYRYWYYYWVYYYUUXYYVYYYYYYUYYYYYSWVYXYYY]YYYY\VYZYYYYYXYYVVYYYYYYYYXYYYYYYYYYYZVYYYYYYZYYYYWYVYYYYYYYYYYYYYYYRYYYWYVYVTXWVYYYYYYYVYWUYTVYYYYUYYYYYYYYYVYYSYYYWYYWYYYYY[YYYYWY[YXWYYYTYYYSXYYZWYYXXYYYU\YVYUUXYWWYYXYYYYVYTYYYXYYYYYYY\XYYUYYYWYUYYYXYYYVYXYYYYYYWYYWYZYYYZ]YYYW_UYYXYYY[YYUPYYYYUUTYWTYY]YYYYV[Y]YYYYYXYYWXYYYYVYYYVYYYYYXYYYY[XYYYYYYWYYYXTYVYYYYYYYYYYYYXYYXWYYXYVYXUXWVYYYYYXYYYYWYVWYYYYXYYYYYYYYYVYYXYYYUYYYZY[YYYYYYYWYVYXYYYYUYWYW[YYYWYYWYYYYTYYVYYZVYVWYYZ[YYXTYWYYTZWYYYYYYWVYZVYYY[YVYYYVYYYWYVYYYYYYYYYUYVYYYVTYYYUWWYYXYYYVYYVEYYYXTTRYWWYY]YYUYVVY[YYYYYTYYVYYYYYWYYYWYYYYYVYYYYUUXYYSYYSYYYYVYVYYYYYYYYYYYYOYYUWYYWYXYUUSSWYYYYYXYVYZVYW[YYYYXYYYYYYYYYRYYSYYYVYYVYYVYYiYYYYVYUYVVYYYVYUYT[YYYUYYWYYYYSYYTYZVUYSSYYWVYYTSYTYYRWXYYYYYYUPYVTYYYXYVYYYTYYYXYVYYYYYYVYYVYNYYYTXYYYWXYYYTYYYWYYUWYYYSY\XYUYYY^YYTYTQYUYYYYYWYYUTYYYYUYYYTYYYYYYYYYY\TYYYZYYYYYYZ[YVYYYYYYYYYYYY_YYUVYYYYWYVWYYSYYYYYZYUYWUYTWYYYYTYYYYYYYYYSYYTYYYVYYTOY]YYWYYYYWYYYTZYYYWYXYRUYYWUYYTSYYYSTYXYVVYYTTYYTXYYYRYWYYXUZYYYYYYV\YXXYYYUYQYYYSYYYVYRYYYYYYUYYRYXYYYWYYYYUYRYYWYYYWYYSXYYYV\TWYX[YY]YYXYSUYWYYYYYXYYUWYYYYWYYYXYYYYYXYYYYXYYYYXYYYYYYZXYYYYYYYYYYYYYYTYYZSYYYYVYXYVWUYYYYYYYWYWXYVUYYYYWYYYYYYYYYXYYXYYYYYYZVYUYYaYYYYXYYYZWYYYWYTYZYYYUWYYWYYYYRWYVYXWVYVVYYXXYYZTYXYYWVZYYYYYYYUYWYYYYWYUYYYVYYYVYVYYYYYYVYYUYUYYYXWYYYVVTYYXYYYYYYUSYYYVUYVYXYYY^YYWYVSYUYYYYYRYYVXYYYYTYYYSYYYYYXYYYYTSYYYZYYZYYYXUYXYYYYYYYYYYYYXYYVTYYUYVYVXVWXYYYYYXYVYVXYYQYYYYUYYYYYYYYYVYYUYYYWYYWUY\YY[YYYYWYYYXWYYYYYXYVVYYSWYYWVYYYQTYZYXVVYWYYYTZYY\TYVYYVWYYYYYYYWPYXUYYYXYTYYYTYYYWYVYYYYYYVYYRYTYYYXUYYYXVXYYYYYYXYYUXYYYWW\TYVXYY]YYWYYSYXYYYYYWYYWWYYYYUYYYWYYYYYZYYYYWUZYYWYYXYYYZXYWYYYYYYYYYYYYUYYYVYYXYVYVV[ZWYYYYYZYXYUWYYWYYYYVYYYYYYYYYUYYUYYYXYYXUYYYY]YYYYZY\YXVYYYUYTYTXYYWVYYVWYYYUXY[YXVWYXWYYVYYYYVYXYYYWZYYYYYYXUYXWYYYXYUYYYVYYYVYWYYYYYYXYYXYXYYYWWYYYXZVYYYYYYXYYVHYYYYWVSYUSYYXYYXYXXYXYYYYYTYYWXYYYYWYYYWYYYYYXYYYYYXYYYVYYUYYYYVYVYYYYYYYYYYYYUYYWVYYXYXYXV[VWYYYYYWYVY\YYWXYYYYWYYYYYYYYYVYYWYYYUYYXYYXYY\YYYYUYYYXWYYYVYSYYWYYXYYYWXYYYVWYWYVWWYTWYYXVYYQTYXYYWWXYYYYYYZSYWTYYYXYVYYYUYYYWYTYYYYYYXYYVYPYYYWTYYYXWXYYSYYYWYYYVYYYZYWVY[YYYZYYWY[YYYYYYYY\YYUVYYYYXYYYWYYYYYXYYYYXYYYY\YYWYYYY[YYYYYYYYYYYYYYXYYXXYYVYYYYWYX[YYYYYXYZYVVYXWYYYYVYYYYYYYYYWYYWYYYWYYXVYXYYVYYYYXYXYXXYYYYY\YUZYYUVYYZWYYYWVYVYTWYYVWYYU[YYYZYZYYVZYYYYYYYYZYZWYYYXYWYYYYYYYWYYYYYYYYXYYXYXYYYWYYYYZWVYY\YYYVYYVIYYYZWTYYXWYY\YYVYUXYWYYYYYTYYUZYYYYXYYYWYYYYYWYYYYVUXYYWYYTYYYYUYWYYYYYYYYYYYY[YYYWYY[YZYVWTTVYYYYYWYVY\WYQ\YYYYYYYYYYYYYYUYYXYYYUYYVVYWYYZYYYYVYUYXWYYYWYVYWVYYVXYYUUYYYVYYYYVUSYSTYYXTYYYRYVYYXVXYYYYYYWSYUVYYYWYWYYYVYYYVYSYYYYYYVYYSYPYYYTXYYYUZWYYTYYYZYYXZYYYVUVYYW\YY_YYWYYUYYYYYYYXYYZUYYYYYYYYWYYYYY[YYYYXTYYY^YY[YYYZWYVYYYYYYYYYYYY[YYUWYYYYUYVU^]WYYYYYYYYYXTYXWYYYYTYYYYYYYYYTYYUYYYUYYYWYeYY\YYYY[YXYW\YYYZYYYUVYY\YYYWSYYYTVY[YZWZYZTYYW\YY]XYYYYUZYYYYYYYVWYZYYYYWYTYYYVYYYZYWYYYYYYYYYXYYYYYYaYYYZ^UYYUYYYYYYUJYYY[UUTYYVYY[YYXYVWYXYYYYYSYYWYYYYYXYYYVYYYYYZYYYYUYXYYWYYUYYYXWYVYYYYYYYYYYYYXYYWWYYWYUYXUUPWYYYYYWYVYZYYWWYYYYXYYYYYYYYYWYYVYYYRYYXXYXYYXYYYYUYVYXZYYYVYYYYWYYXYYYXXYYYUWYVYWXVYTVYYVXYYTWYWYYVXWYYYYYYXUYVUYYYXYUYYYSYYYXYUYYYYYYXYYSYOYYYVXYYYVUWYYSYYYXYYWWYYYWVWVYV[YYZYYUYUUYWYYYYYWYYVWYYYYTYYYYYYYYYXYYYYYUYYYZYYXYYYYZYXYYYYYYYYYYYYXYYVUYYYYVYWWWWWYYYYYZYWYVVYUYYYYYXYYYYYYYYYVYYXYYYWYYYWYXYY\YYYYYYZYWXYYYVYYYVXYYVUYYWXYYYVVYWYVUWYUVYYVZYY\XYUYYWVZYYYYYYYVYVWYYYWYTYYYVYYYUYVYYYYYYWYYVYXYYYYWYYYUYVYYXYYYVYYXWYYYTV\TYUWYY\YYUYYUYYYYYYYVYYWVYYYYTZYYXYYYYYZYYYYZTYYYWYY[YYYZYYWYYYYYYYYYYYYYYYWWYYXYUYUUXXUYYYYYZYVYWVYWXYYYYUYYYYYYYYYUYYRYYYWYYUUYWYY\YYYYVY[YWXYYYXYYYRXYYVXYYVWYYYSYYXYUUWYUVYYVXYYZWYXYYUVZYYYYYYZ[Y[XYYYWYTYYYWYYYZYVYYYYYYWYYXYWYYYZWYYYX[TYYWYYYWYYYGYYYXVWVYVZYYVYYWYWXYWYYYYYVYYVXYYYYWYYYTYYYYYXYYYYYVYYYYYYUYYYXWYVYYYYYYYYYYYYVYYXWYYWYZYXVYUYYYYYYXYVY[WYUYYYYYWYYYYYYYYYSYYUYYYTYYYWYXYY[YYYYWYTYXVYYYWYWYVXYYVXYYYWYYYTWYTYUWWYWTYYUWYYVWYWYYWYYYYYYYYYWYYUYYYXYXYYYWYYYXYUYYYYYYYYYTYRYYYVXYYYXVXYYVYYYXYYYXYYYZUXVYVTYYZYYUYSYY_YYYYYUYYXXYYYYYXYYWYYYYYWYYYYSZYYY\YYXYYYXUYXYYYYYYYYYYYY]YYW[YY^YVYWUVXXYYYYYXYZYVVYV\YYYY\YYYYYYYYYTYYTYYYWYYTZYXYYYYYYYXYSYWWYYYVY]YR_YY]VYYV^YYYY^YWY[WYYWSYYZXYY]QYWYYXXWYYYYYYUUYYXYYYXY[YYYWYYYXYYYYYYYYWYY]YVYYYQWYYYXVVYYXYYYXYYPYYYYTXWVYYXYY_YYTYUTYPYYYYYTYYVWYYYYYYYYSYYYYYXYYYYVPYYYWYYUYYYY`YXYYYYYYYYYYYY\YYWYYYWYZYVXUXVYYYYYZYWYXWYTTYYYYTYYYYYYYYYWYYUYYYWYYTOYZYYZYYYYXYVYUXYYYXYVYSTYYUVYYWPYYYSQYXYUXXYVTYYS[YYRUYUYYTVYYYYYYYWYYUWYYYYYPYYYUYYYUYTYYYYYYUYYNYZYYYXSYYYUTRYYWYYYXYYVHYYYYWTUYVVYYZYYXYVWYYYYYYYUYYXYYYYYWYYYVYYYYYXYYYYYXYYYWYYTYYYYXYVYYYYYYYYYYYYVYYXWYYWYWYXVWUVYYYYYXYWY[XYVYYYYYXYYYYYYYYYUYYVYYYVYYWYYXYY]YYYYVYUYXWYYYWYWYWXYYZWYYWXYYYVYYTYWXVYTUYYXWYYVVYVYYVWXYYYYYYZUYWSYYYYYWYYYWYYYXYVYYYYYYXYYUYNYYYWVYYYXXXYYTYYYXYYLFYYYUXVTYSYYYdYYVYVOYVYYYYYWYYRVYYYYPYYYOYYYYYUYYYYYSYYYOYYRYYYYXYVYYYYYYYYYYYYHYYXTYYWYQYYVVSVYYYYYZYUYQVYWSYYYYYYYYYYYYYYOYYXYYYXYYXVYQYYjYYYYYYWYXZYYYRYTYVUYYTNYYVWYYYWTY[YWSTYSRYYSYYYVZYQYYYRYYYYYYYVIYTUYYYWYSYYYUYYYTYVYYYYYYXYYVYVYYYXMYYYSQSYYWYYYYYYZVYYYZUTUYV\YY_YYRYRWYZYYYYYZYYVSYYYYSYYYXYYYYYWYYYYWXYYYbYYUYYYY^YVYYYYYYYYYYYYYYYOSYY]YWYTSZWTYYYYYXYXYXOYXTYYYYTYYYYYYYYYTYYRYYYNYYVVY`YYZYYYYVYXYVUYYYXYZYS[YY[ZYYWRYYYSRYXYTU]Y[SYYXYYY^QYYYYSSXYYYYYYV^YVWYYYVYMYYYVYYYVYUYYYYYYXYYRYWYYYXdYYYZUSYYWYYYUYYZUYYYWVSVYU\YY]YYTYUVYVYYYYY\YYTUYYYYTYYYUYYYYYVYYYY[UYYY_YYZYYYYYYVYYYYYYYYYYYYYYYUTYYWYVYVRUWWYYYYYYYZYTTYYSYYYYUYYYYYYYYYUYYVYYYSYYXVY[YYYYYYYXYXYVWYYYXYXYWVYYTUYYVRYYYTSY[YSVXYYUYYRZYY\VYVYYRVZYYYYYYWZY[VYYYYYVYYYVYYYVYVYYYYYYUYYVYXYYYWXYYYWTVYYVYYYXYYWVYYYXSWVY[XYYXYYXYVVYYYYYYYTYYYWYYYYVXYYUYYYYYYYYYYVXYYY[YYVYYYXWYZYYYYYYYYYYYYWYYWWYYYYSYZXXXYYYYYYXYYYWWYUVYYYYXYYYYYYYYYXYYUYYYWYYWVY\YY[YYYYXYVYYXYYYWYWYWVYYZXYYYWYYYVUYXYXYXYVVYYXYYYYZYVYYTWYYYYYYYWTYZVYYYYYXYYYTYYYWYYYYYYYYWYYTYUYYYWXYYYWWVYYYYYYWYYRNYYYRVY^YSVYYaYYTYRQYPYYYYYUYYRVYYYYPYYYSYYYYYTYYYYWSYYYTYYOYYYYZYWYYYYYYYYYYYY\YYWYYY[YVYUUYUSYYYYYXYUYWXYQUYYYYSYYYYYYYYYRYYVYYYWYYUPYXYY^YYYYTYXYVXYYYTYTYQPYYZVYYVTYYYXRY[YRTXYYTYYXWYY_LYVYYYQZYYYYYY\OYSSYYYWYRYYYTYYYPYPYYYYYYSYYNYRYYYQTYYYUVQYYVYYYVYYVZYYYXVWUY\UYY\YYXYVUY\YYYYYVYYZXYYYYVYYYWYYYYYZYYYYXWYYYZYYWYYYYXYYYYYYYYYYYYYYYYYXXYYZYVYWYYWYYYYYYYYYYVWYTVYYYYXYYYYYYYYYXYYVYYYYYYZXYYYYWYYYYVYXYXXYYYVYXYWXYYTUYYZUYYYWWYVYWYWYUWYYXYYYWYYUYYUXYYYYYYYYWY[WYYYYYVYYYWYYYVY[YYYYYYXYYWY[YYYWWYYYXVWYYZYYY[YYRVYYYXVWQYW]YY_YYVYWVYZYYYYYYYYVWYYYY[YYY[YYYYYXYYYY\VYYYYYYYYYYYaYYYYYYYYYYYYYY[YYUWYYTYZYTT]^TYYYYYYYVYXTYW[YYYYVYYYYYYYYYTYYVYYY[YYVUYZYYXYYYYXYZYTWYYY_YXYRXYYV]YYWWYYYWWYYYTW^YYUYYWXYY^YY\YYZ\YYYYYYYV_Yb[YYYWYUYYYZYYYVYYYYYYYYZYY]Y\YYYXWYYY\ZTYYWYYYXYYWGYYYYUVWYVVYYXYYYYVXYXYYYYYVYYXYYYYYYXYYWYYYYYYYYXYXXYYYVYYVYYYYZYVYYYYYYYYYYYYVYYYWYYVYXYXVXUWYYYYYWYWY[YYXXYYYYXYYYYYYYYYVYYVYYYUYYXYYXYY[YYYYUYVYYXYYYWYWYYXYYZWYYVXYYYVXYUYWVXYUVYYXXYYTVYXYYVXXYYYYYYYVYWTYYYYYWYYYVYYYXYVYYYYYYXYYVYNYYYXVYYYXWXYYTYYYXYYXWYYYWYXYYWZYYZYYWYYVYWYYYYYYYYXWYYYYYYYYWYYYYYYYYYYZVYYYYYYYYYYZ[YXYYYYYYYYYYYYXYYXYYYXYZYYWZZXYYYYYYYXYYWYWYYYYYVYYYYYYYYYWYYXYYYWYYXVYYYYYYYYYYYXYWYYYYYYYYVWYYWXYYXXYYYVVYXYUXYYWWYYXZYYWXYXYYWXYYYYYYYY[YYWYYYXYXYYYWYYYXYYYYYYYYYYYXYYYYYXYYYYYXXYYYYYYVYYW[YYYWVWUY]UYYYYYXYYSY\YYYYYUYYYXYYYYUYYYVYYYYYZYYYYXYYYYYYYVYYYYWY]YYYYYYYYYYYYVYYXYYY]YUYY[ZY]YYYYYYY[YWXYTVYYYYZYYYYYYYYYZYYVYYYZYYYZYZYYXYYYYZYVYY\YYYZYZY]ZYYXTYY]WYYYVVYVYY[VYVWYY[\YYWYYVYYTXYYYYYYYXVY\VYYY\YZYYYWYYYVY]YYYYYYYYY[Y^YYYZXYYYYTXYY[YYYXYYWWYYYVXXUYXYYY]YYWYTTYYYYYYYZYYVWYYYYSYYYVYYYYYZYYYY[VYYYVYYYYYYZYYVYYYYYYYYYYYYWYYVVYYXYWYUVZ[YYYYYYYYXYVVYWVYYYYVYYYYYYYYYUYYVYYYZYYXTY]YY\YYYYXY[YVZYYY\YWYRWYYXUYYYWYYYTVYYYYZYYVVYYXZYYYVYWYYTYZYYYYYYX[YYWYYYYYTYYYXYYYVYZYYYYYYWYYXYYYYYWXYYY[WUYYXYYY[YYWXYYYW[ZVYYYYYZYYXYWWYWYYYYYZYYYXYYYYXYYYWYYYYYZYYYYZWYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXWYYXYXYYYYYYYYYYYYYWYYXYZXYYYYWYYYYYYYYYXYYXYYYYYYYVYYYYYYYYYYY[YWYYYYWYWYVYYYXXYYXYYYYWWYZYYYZYWYYYYZYYXXYZYYXYYYYYYYYXXYXYYYYXYWYYYYYYYXYXYYYYYYXYYXY[YYYYVYYYZZXYYYYYYXYYVYYYYXWYUYXYYYaYYWYUVYXYYYYYVYYYVYYYYXYYYXYYYYYYYYYYWTYYYXYY[YYYZTYXYYYYYYYYYYYYVYYVUYYYYWYVV\YUYYYYYYYXYXUYWTYYYYUYYYYYYYYYVYYTYYYTYYWVY[YY\YYYYVYZYXVYYYTYTYWWYYUZYYXWYYYUVYYYUWWYVUYYXXYYWUYZYYWVZYYYYYYVVYW]YYYXYRYYYWYYYVYWYYYYYYWYYUYXYYYXYYYYXZUYYVYYYYYYWSYYYWTUTYYZYYXYYXYUTYYYYYYYUYYSUYYYYTYYYVYYYYYWYYXYYXYYYUYYXYYYXTYWYYYYYYYYYYYYYYYWSYYUYSYXUZUTYYYYYXYWYUUYWVYYYYUYYYYYYYYYXYYVYYYWYYYYYWYYXYYYYWYWYXXYYYWYVYZXYYVXYYUSYYYUVYYYV[WYWVYYSZYYXVYVYYXWYYYYYYYWXYZXYYYVYSYYYXYYYVYVYYYYYYWYYTYXYYYXXYYYWYUYYWYYYYYY[ZYYYYTVVYYXYY[YYWYXUY[YYYYYUYY[VYYYYXYYYWYYYYYYYYYYXWZYYZYYZYYYZXYYYYYYYYYYYYYYWYYYWYY[YTYYXZXWYYYYYYYYYVVYVVYYYYVYYYYYYYYYZYYTYYYVYYXWYZYYZYYYYYYXYYXYYYUYXYWYYYUXYYXUYYYTWYZYWXWYVXYYV[YYXXYXYYUXZYYYYYYWZYZZYYYXYTYYYVYYYWYZYYYYYYXYYUYXYYYXXYYYV[UYYYYYYXYYXWYYYXWXYYYYYY[YYYYXXYYYYYYYXYYYXYYYYYYYYYYYYYYXYYYYYXYYYWYYXYYYYXYYYYYYYYYYYYYYWYYYXYYYYWYXYXYXYYYYYYYYYXXYYXYYYYXYYYYYYYYYXYYXYYYYYYYXYYYY\YYYYXYXYXYYYYYYWYYXYYXXYYXYYYYXXYYYXYYYXXYYYYYYYYYYYYXXYYYYYYYXZYXXYYYXYXYYYYYYYYYXYYYYYYYYYXYYYYYXYYYYXXXYYXYYYVYYRIYYYVZZUYVQYYaYYXYTRYVYYYYYYYYWXYYYYVYYYTYYYYYWYYYYWUYYYRYYTYYYZ]YXYYYYYYYYYYYYPYYWVYYUYXYWYUTVYYYYYXYVY[ZYSWYYYYUYYYYYYYYYRYYXYYYYYYXTYVYYjYYYYTYXYYXYYYTYTYTXYYVRYYXXYYYTXYUYZUWYVUYYWXYYTRYTYYZWYYYYYYY\OYUPYYYYYTYYYSYYYSYUYYYYYYWYYUYKYYY[SYYYZQWYYXYYYXYYXVYYYWXXXYXYYYZYYWYXXYYYYYYYVYYXXYYYYXYYYWYYYYYZYYYYZWYYYZYYWYYYYYYXYYYYYYYYYYYY_YYVZYYZYYYYXVWVYYYYYYYXYYWYVYYYYYXYYYYYYYYYVYYWYYYXYYVUYYYYWYYYYYYXYV[YYYYY[YWWYYXWYYXXYYYVYYWYXVXYVWYYWYYYYWYWYYVWYYYYYYYWZYXXYYYYYVYYYWYYYXYWYYYYYYWYYUYYYYYX[YYYVYWYYXYYYYYYXYYYYXWYWYXXYYZYYXYVXYZYYYYYXYYWXYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYXYYXYYYXYWYXXZZYYYYYYYYYYWXYWYYYYYXYYYYYYYYYWYYWYYYYYYXXYXYYYYYYYWYXYWYYYYWYYYVYYYYWYYYZYYYXYYXYWYYYWWYYXYYY[VYWYYWXYYYYYYYYXYYXYYYYYYYYYVYYYYYYYYYYYYXYYYYZYYYWXYYYXWWYYYYYYXYYYUYYYZVWWYWYYYWYYYYYZYXYYYYYWYYYXYYYYVYYYYYYYYYYYYYYXYXYY[YYVYYYXXYXYYYYYYYYYYYYZYYXWYYYYXYVVXWWYYYYYXYYYZXYZWYYYYXYYYYYYYYYYYYWYYYVYYWYYYYYUYYYYXYXYXXYYYVYXYXXYY\XYYXXYYYVYYZYZXYYXWYYYXYYWXYXYYYWWYYYYYYZXYXWYYYYYZYYYVYYYYYWYYYYYYWYYXYXYYYXYYYYVYXYYWYYYYYYXWYYYYUXVYYYYY[YYXYWWYXYYYYYXYYWXYYYYYYYYWYYYYYYYYYYYXYYYZYYYYYYZYYXYYYYYYYYYYYYXYYXZYYXYVYXWYXWYYYYYZYYYYWYXYYYYYWYYYYYYYYYWYYXYYYXYYXWYXYYYYYYYXY[YXXYYYWYYYVZYYYXYYXXYYYYYYWYXWYYXWYYWYYYZWYXYYVXYYYYYYYXYYWXYYYYYXYYYXYYYWYZYYYYYYYYYYYXYYYX\YYYYVWYYXYYYWYYRXYYYVYZUYZWYY\YYWYWWYRYYYYYXYYWWYYYYWYYYQYYYYYYYYYYYSYYYWYYTYYYZ]YXYYYYYYYYYYYY\YYW[YYXY[YYYTXXYYYYYYYZYVYYTWYYYYVYYYYYYYYYVYYVYYYWYYVQYYYYWYYYYXYZYW[YYYYY\YUXYYVUYYXSYYYSYYWYWVUYXVYYTYYYWVYWYYVWYYYYYYYY]YWVYYYXYRYYYWYYYVYWYYYYYYVYYTYYYYYW[YYYXUUYYYYYYVYYSFYYYWVWYYWWYY[YYSYTVYUYYYYYQYYVYYYYYWYYYTYYYYYVYYYYSSXYYTYYRYYYXVYWYYYYYYYYYYYY\YYVZYYZYZYVWSTWYYYYYWYUY[WYR[YYYYYYYYYYYYYYTYYUYYYSYYURY[YYZYYYYSYTYUZYYYUYXYVVYYZUYYVRYYYUWYVYWTTYSTYYXSYYVQYWYYVUXYYYYYYWTYWRYYYWYRYYYTYYYVYRYYYYYYUYYPYOYYYRZYYYSYVYYPYYYVYYWVYYYXUXSYTWYYaYYRYRTYUYYYYYYYYRSYYYYUYYYUYYYYYWYYYY[RYYYWYYYYYYZZYUYYYYYYYYYYYYYYYURYYUYVYTR[^PYYYYYZYWYSRYUUYYYYTYYYYYYYYYRYYPYYYYYYSTYZYYXYYYYTY[YTWYYYWYYYQVYYTUYYSTYYYPSYYYRYYYSQYYTZYYYVYXYYUVZYYYYYYV^YYXYYYTYMYYYYYYYYYVYYYYYYVYYVYVYYYUYYYY\VSYYWYYYYYYXJYYYZUTVYUUYYXYYUYUYYYYYYYYTYYWWYYYYVXYYWYYYYYXYYYYWWYYYWYYVYYYYYYVYYYYYYYYYYYYXYYWWYY[YUYVUZWVYYYYYWYVY[UYTZYYYYZYYYYYYYYYUYYVYYYTYYVYY[YYZYYYYVYUYXZYYYXYXYWYYYYZYYWYYYYYWYXYVWWYVUYYYWYYYUYYYYVXWYYYYYYWTYWVYYYWYWYYYWYYYYYVYYYYYYYYYSYNYYYX[YYYYXWYYSYYYYYYVFYYYYUUWYVRYY^YYYYUXYXYYYYYVYYYYYYYYXYYYVYYYYYYYYXYWYYYYUYYUYYYX\YWYYYYYYYYYYYYRYYXWYYVYWYXVYSWYYYYYWYVYZYYWXYYYYXYYYYYYYYYUYYVYYYSYYXYYXYY`YYYYUYUYYXYYYWYVYXYYYXWYYWXYYYUXYUYWUZYVUYYXVYYVUYWYYVVXYYYYYYYSYWTYYYYYXYYYVYYYXYUYYYYYYXYYUYLYYYWXYYYXVYYYSYYYWYYTUYYYXU\[YVZYYZYYTYWUYVYYYYYWYYVWYYYYUYYYWYYYYYXYYYYXWYYYZYYXYYYYXYWYYYYYYYYYYYY[YYU\YYZYYYUVUWVYYYYYYYTYZYYVZYYYYVYYYYYYYYYTYYWYYYUYYUOYYYYZYYYYVYVYSYYYYXYVYUWYYYUYYWYYYYUXYXY[UWYUXYYYSYYYTYVYYUVZYYYYYYUZYXWYYYWYWYYYVYYYWYTYYYYYYVYYVYWYYYU]YYYTWVYYWYYYVYY[QYYYXWXWYVYYYWYYYY[VYWYYYYYWYYWWYYYYWYYYVYYYYYXYYYYXWYYYXYYWYYYXZYVYYYYYYYYYYYYWYYWUYYYYWYWXXQVYYYYYWYWY\WYWZYYYYXYYYYYYYYYWYYXYYYXYYXWYVYYWYYYYWYYY\VYYYYY[YSXYYYZYYXXYYYVZYXYWWVYUTYYV[YYWYYYYY[WWYYYYYY^WYV]YYYYYYYYYTYYYZYWYYYYYYWYYVYVYYYXVYYYXZYYYUYYYYYYYYYYYYZXXYYYYYYYYYYYXYZYYYYYXYYYYYYYYXYYYXYYYYYYYYYYYZYYYZYYXYYYYZYYYYYYYYYYYYYYYYYYXYYZYYYYZYXYYYYYYYYXYXYYYXYYYYYYYYYYYYYYYYYXYYYZYYYXYZYYYYYYYYYXYYYYYYYYXYXYYYYXYYYZYYYXYYXYYYZYXYYYY[YYXZYXYYYYZYYYYYYYYYYXYYYYYYYYYYYYYXYXYYYYYYYYYZYYYYYYXYYYYYXYYYYYYZYYUXYYYXYWSYW\YY_YYVYUZYYYYYYY[YYVWYYYYXYYYWYYYYYYYYYY_WYYYXYYXYYYYeYYYYYYYYYYYYYYVYYWWYYTYYYVT]_UYYYYYYYWYWUYXXYYYYXYYYYYYYYYWYYVYYY[YYVVYZYY\YYYYWYXYVXYYY]YVYUXYYXZYYWXYYYYWYZYTX_Y[UYYXZYY]UYZYYT]ZYYYYYYV`Y\ZYYYWYUYYYYYYYWYXYYYYYYYYY^Y[YYYY\YYY^XVYYWYYY]YYVXYYYRVVMYU[YYbYYQYVOYVYYYYYWYYXSYYYYVYYYSYYYYYYYYZY[PZYY^YYZYYYZ`YWYYYYYYYYYYYYTYYVQYYVYRYUQXaRYYYYYZYRYTSY\NYYYYOYYYYYYYYYRYYPYYYUYYVNYaYY\YYYYYY[YUVYYYYYSYTWYYUYYYWTYYYQLY^YUTZY]UYYTZYY]QYSYYRUZYYYYYYSYYWUYYYUYJYYYUYYYSYVYYYYYYYYYPYUYYYV\YYY][SYYZYYYYYYYYYYYX[XXYXYYYWYYYYXVYWYYYYYYYYXYYYYYYYYYWYYYYYXYYYYYXYYYXYYXYYYYZYYYYYYYYYYYYYYWYYYXYYWYYYYXXYXYYYYYYYXYYXYXYYYYYYYYYYYYYYYXYYXYYYZYYYWYXYYYYYYYWYXYYYYYYXYYYWXYYWWYYXXYYYXXYYYXZXYXXYYXYYYXYYXYYYXYYYYYYYYYYXYYYYXYWYYYXYYYXYXYYYYYYYYYYYXYYYYYYYYYXYYYXYYYXYYTPYYYWWXSYSVYY^YYXYUVYWYYYYYUYYWWYYYYTYYYVYYYYYVYYYYXUYYYWYYUYYYYVYWYYYYYYYYYYYYQYYYTYYWYVYWSYXUYYYYYXYVYXXYVUYYYYUYYYYYYYYYTYYTYYYWYYXWYWYYfYYYYSY[YVVYYYUYSYWWYYWUYYUXYYYSVYYYWTVYWWYYVXYYUSYUYYUWYYYYYYYYQYTSYYYWYTYYYUYYYSYWYYYYYYUYYWYTYYYXVYYYXXVYYUYYYXYYTTYYYXS\WYTaYY]YYSYWSYWYYYYYTYYUVYYYYSXYYWYYYYYWYYYYXTYYYVYY\YYYYWYWYYYYYYYYYYYYPYYXXYYYYWYRPWXUYYYYYYYTYZWY\TYYYYSYYYYYYYYYUYYTYYYSYYWOY]YYgYYYYVYWYSXYYYWYNYTVYYWXYYWUYYYLSYbYZWRYUVYYVVYYZWYXYYMVZYYYYYYUTYV\YYYWYRYYYSYYYWYVYYYYYYWYYVYQYYYW_YYYTWTYYVYYYWYYVCYYYWXUMYOTYYeYYUYTTYWYYYYYWYYUWYYYYOXYYTYYYYYSYYYY\QYYYVYYSYYYYYYYYYYYYYYYYYYYFYYVPYYVYQYWSRSYYYYYYXYZYVXYTTYYYYUYYYYYYYYYOYYVYYYVYYYSYUYYkYYYYSYQYXVYYYRYUYWVYYRNYYUWYYYPTYSYXWRYQSYYW\YYTQYOYYRTYYYYYYY\JYUWYYYYYPYYYRYYYSYTYYYYYYSYYUYOYYY[MYYYUQVYYWYYYWYYWPYYYVUTRYRYYY]YYVYVRYUYYYYY\YYVXYYYYPYYYSYYYYYSYYYY\OYYYWYYZYYYYWYSYYYYYYYYYYYYTYY\RYYWYWYUQQVSYYYYYXYUYZZYTTYYYYTYYYYYYYYYSYY\YYYQYYUVY^YY]YYYYUY^YXSYYYPYQYYRYYTXYYUTYYYSTYZYZVUYYYYYU^YYXQYTYYTSYYYYYYY[TYXKYYYYYPYYYUYYYWYRYYYYYYRYYRYUYYY\SYYYUUXYYUYYYYYYXXYYYXWVWYX[YY[YYVYWVYYYYYYYZYYWVYYYYVYYYUYYYYYXYYYYYWYYYWYYYYYYYYYZYYYYYYYYYYYYXYYUTYYXYWYWXYZYYYYYYXYWYYUYWXYYYYWYYYYYYYYYWYYWYYYXYYZVY[YY\YYYYYYZYRXYYY\YVYVVYYVYYYXWYYYYUY[YSZWYXYYYUZYYYYYXYYW[YYYYYYYW[YZ\YYYZYXYYYYYYYZYZYYYYYYYYYUYWYYYXWYYYYYZYYYYYYVYYUZYYYXXZSYXVYY\YYYYXSYXYYYYYWYYUVYYYYUYYYSYYYYYXYYYYZVYYYXYYVYYYZWYWYYYYYYYYYYYYSYYYWYYWYVYWWXYUYYYYYYYVYUXYXYYYYYXYYYYYYYYYXYYUYYYYYYWVYWYY_YYYYVYXYW[YYYZYXYSZYYXSYYUXYYYVYYYYV[XYUYYYSZYY[YYVYYTYYYYYYYYWZYXUYYYWYUYYYWYYYWYVYYYYYYUYYYYWYYYXZYYY\VWYYYYYYXYYWYYYYXSWVYWXYY^YYVYUVYXYYYYYVYYVWYYYYXYYYXYYYYYXYYYYZTYYYWYYXYYYZXYWYYYYYYYYYYYYYYYPXYYYYVYVVYVWYYYYYZYVYUTYQXYYYYWYYYYYYYYYUYYSYYYUYYSXYZYY]YYYYXYWYXYYYYSYYYSXYYYVYYXVYYYSYYVYWUXYVVYYXZYYZRYUYYUUYYYYYYYVVYWVYYYWYRYYYXYYYTYWYYYYYYVYYRYYYYYX[YYYVZUYYZYYYXYYVWYYYWXYXYYZYYXYYYYZYYXYYYYYZYYYXYYYYWYYYXYYYYYZYYYYZXYYYXYYXYYYYYYXYYYYYYYYYYYYWYYYYYYXYWYWXZZXYYYYYYYXYYYYYXYYYYXYYYYYYYYYXYYWYYYXYYXWYZYY[YYYYXYZYXYYYYYYXYXXYYWYYYWXYYYYXYYYXXXYXXYYWYYYYXYWYYXYYYYYYYYYZYYYYYYXYXYYYWYYYXYWYYYYYYXYYXYXYYYYXYYYWXXYYYYYYWYYXYYYYYXXXYWXYY[YYXYWWY\YYYYYYYYWWYYYYWYYY[YYYYYXYYYYZWYYYYYYZYYYYZYXYYYYYYYYYYYYZYYYZYY[YXYVVYXWYYYYYXYYYXWYYYYYYYZYYYYYYYYYVYYVYYYYYYVWYZYYXYYYYWYYYWYYYYYYYYWZYYXXYYWYYYYX[YXYXXYYXXYYYZYYZWYVYYVYYYYYYYYXXYYZYYYXYXYYYXYYYXYXYYYYYYXYYYYXYYYVVYYYYXWYYWYYYWYYYSYYYXVZYYW\YY[YYWYYYYYYYYYYVYYXXYYYYVYYYWYYYYYYYYYYXXYYYZYYXYYYZXYWYYYYYYYYYYYYWYYZYYYWYWYVUXXWYYYYYYYWYZXYXWYYYYVYYYYYYYYYWYYUYYYUYYVUYZYY_YYYYWYVYVZYYYWYTYVXYYWWYYXXYYYUWY[YXWVYVXYYVXYY\XYWYYSXZYYYYYYXZYZWYYYWYXYYYUYYYXYUYYYYYYWYYXYYYYYX[YYYUYXYYWYYYSYYXOYYYVV[hYUZYY]YYOYLTYPYYYYYUYYPVYYYYYYYYWYYYYYRYYYYQQYYY`YYRYYYX\YWYYYYYYYYYYYYlYYT_YY`Y[YSXWXQYYYYYXYRYVUYQ`YYYYTYYYYYYYYYQYYUYYYTYYNEY[YYPYYYYWYTYPZYYYXY_YQQYYYXYYUNYYY[SY[YOTZY]RYYXTYYjKYXYYXRYYYYYYYRZYUSYYYSYTYYYUYYYOYOYYYYYYPYYIYYYYYK^YYYPWQYYQYYYTYY[QYYYX[WZYSXYY^YYVYVXYZYYYYY^YYUWYYYYSYYY\YYYYYTYYYY_TYYY]YY[YYYY\YSYYYYYYYYYYYY_YY^SYYWY[YRSV]WYYYYYYYZYWXYZXYYYYTYYYYYYYYYQYYWYYYUYYPUYYYYXYYYYTYVYVVYYYZYZYTWYYZUYYSXYYYU\YWYWVWYYVYYX^YY]PYWYYTTXYYYYYYZ`YVTYYYVYVYYYXYYY[YRYYYYYYRYYVYXYYYQYYYYXSUYYSYYYXYYYZYYYYXWWYXWYYZYYYYWVYZYYYYYYYYVWYYYYYYYYXYYYYYXYYYY[XYYYYYYXYYYYYYXYYYYYYYYYYYYWYYYXYYYYWYYXYZUYYYYYYYWYXYYWYYYYYYYYYYYYYYYWYYXYYY[YYXXYWYYXYYYYWYZYXXYYYWYZYWZYYXWYYVXYYY[[YXYXZZYXWYYXZYYYXYVYYXXZYYYYYYX[YWWYYYWYVYYYXYYYWYXYYYYYYWYYYYXYYYXYYYYZYWYYYYYYWYYWWYYYW\XUYV]YY[YYUYVWYUYYYYYZYYWVYYYYTYYYVYYYYYXYYYY[VYYYXYYYYYYZZYXYYYYYYYYYYYYWYYWVYYXYYY[VX[WYYYYYYYYYTVYXUYYYYVYYYYYYYYYWYYWYYYXYY\YYYYY[YYYYZYXYVXYYYZYWYVWYYVUYYXXYYYSUY[YSYYYYWYYXZYYYWYWYYSYZYYYYYYWYYXXYYYYYXYYYZYYYUYYYYYYYYZYYXYXYYYXWYYYYTVYYXYYYWYYSGYYYVVYXYUTYY]YYVYUUYVYYYYYTYYXXYYYYTYYYSYYYYYWYYYYUUYYYUYYTYYYYWYXYYYYYYYYYYYYTYYUWYYUYWYXWUSWYYYYYXYUY[XYTXYYYYVYYYYYYYYYTYYVYYYTYYWUYXYYaYYYYSYTYWZYYYSYTYWVYYYSYYVUYYYSWYXY[TUYSUYYXTYYTPYVYYUTYYYYYYYYNYUTYYYXYTYYYRYYYUYQYYYYYYUYYSYNYYYVWYYYTWVYYQYYYXYYXIYYYZSUUYVTYYYYYXYUXYYYYYYYTYYXXYYYYXYYYWYYYYYXYYXYUZYYYYYYUYYYXYYWYYYYYYYYYYYYTYYWVYYXYUYXVXSWYYYYYWYVYZYYXVYYYYWYYYYYYYYYVYYWYYYSYYWYYXYYYYYYYUYUYXWYYYVYUYXYYYXXYYWVYYYVVYVYWVXYVVYYVXYYSVYWYYUTXYYYYYYYTYWTYYYYYVYYYTYYYWYVYYYYYYWYYTYPYYYWWYYYVVXYYTYYYTYYV`YYYVXWSY`RYY\YYXYYQY^YYYYYUYYZXYYYYSYYYUYYYYY[YYYYYXYYYXYYVYYYYXY^YYYYYYYYYYYYVYYWZYY^YUYY]\X_YYYYYYY\YWWYRUYYYY[YYYYYYYYY]YYVYYY[YY[ZY[YYWYYYY[YUY[^YYY[YZY^ZYYVRYY^VYYYUWYTYZ\TYUWYY\^YYWYYUYYSYYYYYYYYYXY]UYYY]Y[YYYWYYYUY`YYYYYYYYY^Y`YYY[VYYY[UXYY\YYYXYYYWYYYWWY[YVXYY[YYVYXRYUYYYYYWYYVUYYYYVYYYVYYYYY[YYYYZUYYY[YYYYYYZZYWYYYYYYYYYYYY\YYXVYYYYVYVUYYUYYYYYZYUYVUYVVYYYYVYYYYYYYYYUYYTYYY\YYUQYZYYYYYYYZY[YVYYYYYYWYSVYYWVYYWWYYYWTYZYXVZYWVYYVZYYZWYVYYUXZYYYYYYX[YWXYYYWYVYYYVYYYWYWYYYYYYXYYWYWYYYYXYYYYWTYYXYYYXYYVFYYYWWUTYSUYYZYYXYUUYWYYYYYVYYXXYYYYWYYYUYYYYYWYYYYWVXYYUYYUYYYYYYWYYYYYYYYYYYYPYYWVYYWYUYWVW\WYYYYYXYTY[YYWXYYYYWYYYYYYYYYUYYUYYYWYYYXYVYYfYYYYUYVYYWYYYVYUYWXYYXWYYVYYYYTWYUYWVWYUVYYXYYYVSYVYYUWXYYYYYYWRYWTYYYXYWYYYVYYYVYVYYYYYYXYYUYOYYYWVYYYYZXYYTYYYYYYXXYYYWWYWYWYYYZYYWYYWYYYYYYYWYYWWYYYYWYYYXYYYYYZYYYYXWYYYYYYXYYYZXYXYYYYYYYYYYYYXYYXWYYYYXYXWZYXYYYYYYYYYXVYVXYYYYXYYYYYYYYYVYYVYYYWYYXVYZYYYYYYYYY[YWYYYYXYXYVXYYVWYYXWYYYVUY[YVWXYVWYYWYYYYXYWYYWWYYYYYYYWYYYYYYYXYVYYYWYYYXYYYYYYYYYYYWYXYYYXYYYYXXXYYXYYYXYYVXYYYXXYWYYYYY\YYXYVVYZYYYYYWYYVXYYYYWYYYWYYYYYXYYYYXXYYYYYYXYYYYXYWYYYYYYYYYYYYWYYYWYYXYWYWWWXXYYYYYYYYYVYYUWYYYYWYYYYYYYYYXYYWYYYYYYWWYXYY\YYYYXYZYWXYYYXYYYTXYYWVYYYYYYYXWYXYXXXYVXYYWWYYYVYWYYYWYYYYYYYZVYXVYYYXYXYYYXYYYWYYYYYYYYWYYXYXYYYWVYYYXWWYYYYYYUYYVQYYYYZRUYV[YYYYYUYXUYVYYYYY[YYTTYYYYSYYYSYYYYYUYYYY[ZYYYYYYWYYYXVY[YYYYYYYYYYYYWYYSTYYYYYY[VYZ\YYYYYWYXYWTYXVYYYYUYYYYYYYYYUYYWYYYUYY\[YUYY\YYYYXYTYWWYYYWYXYXVYYTSYY[TYYYTRYYYOXUYYWYYVXYYXUYVYYUZXYYYYYYYYY[UYYY[YTYYY\YYYUYWYYYYYYZYYVYXYYYUXYYYXTVYYWYYY[YYWWYYYVWSUYWZYY]YYWYPYYZYYYYY[YYUVYYYYSYYYXYYYYY[YYYY^UYYYZYYWYYYZXYWYYYYYYYYYYYYTYYWUYYXYTYUV[]UYYYYYZYSYVUYUVYYYYVYYYYYYYYYUYYTYYYZYYYWYYYYYYYYYVY\YUWYYYYYWYUZYYWVYYWXYYYTUYWYUYZYWWYYXVYY\VYVYYWXZYYYYYYVXYWWYYYXYRYYYYYYYTYXYYYYYYYYYVYYYYYTVYYYYWUYYXYYYZYYVTYYYXVUVYWWYYZYYYYVWYYYYYYYVYYWXYYYYXYYYVYYYYYYYYYY[WYYYWYYZYYYYVYXYYYYYYYYYYYYYYYYVYYVYVYXVYWUYYYYYXYTYXXYWWYYYYVYYYYYYYYYVYYWYYYYYYXWYXYYVYYYYUYXYXXYYYVYWYYWYYXXYYTWYYYWXYYYW[XYVVYYWWYYYUYXYYXWYYYYYYYWXYVXYYYXYTYYY[YYYYYUYYYYYYXYYZYXYYYVUYYYZ\WYYXYYYXYYWYYYYXWXWYXXYY\YYWYWWYWYYYYYWYYZWYYYYXYYYWYYYYYZYYYYVWYYY]YYXYYYY[YXYYYYYYYYYYYY]YYVWYYYYXYXXWYXYYYYYYYXYYXYWUYYYYVYYYYYYYYYXYYWYYYVYYWWY]YYXYYYYXYWYXYYYYVYXYWWYYWYYYXSYYYXUYZYWX[YXWYYUYYYUWYWYYVVYYYYYYYXWYXXYYYYYVYYYUYYYXYXYYYYYYWYYTYWYYYXWYYYVYVYYXYYYUYYWTYYYVW[ZYVZYYZYYTYTSYSYYYYYVYYUWYYYYXYYYVYYYYYVYYYYWSYYY[YYWYYYYZYWYYYYYYYYYYYY_YYUWYYXYYYUWYXUYYYYYYYWYVUYWYYYYYVYYYYYYYYYUYYUYYYTYYSPY\YYUYYYYWYWYT[YYYZY^YSVYYWWYYUSYYYVVYZYVWXYWTYYUXYY^SYZYYXVXYYYYYYTZYXXYYYVYUYYYUYYYWYUYYYYYYUYYQYVYYYT\YYYVXUYYUYYYWYYXXYYYYVXXYXXYYYYYXYVVY[YYYYYXYYXXYYYYWYYYXYYYYYZYYYYZXYYYZYYWYYYYYYXYYYYYYYYYYYYYYYXWYYXYXYVWY[YYYYYYYYXYXWYWXYYYYWYYYYYYYYYWYYWYYYYYYXWYYYYXYYYYXYXYWXYYYXYYYVXYYWVYYYYYYYVWYXYVXYYWWYYXYYY[VYXYYVXYYYYYYYWXYYYYYYYYVYYYWYYYWYYYYYYYYXYYVYXYYYVZYYYYVVYYYYYYXYYYXYYYVXXUYYYYY[YYWYXUYXYYYYYXYYWWYYYYWYYYYYYYYYXYYYYYWYYYZYYXYYYYVYYYYYYYYYYYYYYZYYWWYYXYVYWXZXXYYYYYYYXYXWYWWYYYYWYYYYYYYYYWYYVYYYWYYWWYYYYYYYYYWYYYXXYYYXYWYWWYYVWYYXWYYYWVYYYVVXYVWYYVXYYWWYWYYWVZYYYYYYYYY[XYYYXYUYYYVYYYXYWYYYYYYXYYWYYYYYWXYYYVZVYYWYYYSYYX?YYYWTVgYRVYY]YYOYMRYQYYYYYRYYOWYYYYWYYYUYYYYYQYYYYQQXYY\YYMYYYX[YVYYYYYYYYYYYYfYYWZYY^YZYRUUVSYYYYYWYPY]UYO`YYYYUYYYYYYYYYPYYVYYYRYYPHYXYYVYYYYSYRYRYYYYWYZYRPYYZXYYSLYYY[TYYYMSXYYQYYZRYYfGYWYY\RXYYYYYYUWYSNYYYTYQYYYTYYYOYMYYYYYYQYYHYNYYYL]YYYQ[SYYLYYYVYYWVYYYVOPYYQ]YYbYYPYUTYXYYYYYWYYSRYYYYTYYYWYYYYYYYYYYYSYYYXYYWYYYZXYUYYYYYYYYYYYY_YYRSYYVYWYQUTZTYYYYYYYWYSPYYUYYYYPYYYYYYYYYRYYPYYYSYYTQYYYY\YYYYYYYYVVYYYXY^YNUYYUVYYWUYYYPYYYYTRXYYRYYVZYY]VYSYYXUZYYYYYYR^YZ\YYYVYRYYYSYYYUYUYYYYYYWYYRYVYYYR\YYYWUPYYSYYYYYYXXYYYXXYXYWYYYZYYXYYWYYYYYYYYYYYXYYYYZYYYZYYYYYYYYYYXXYYYZYYYYYYYYYXYYYYYYYYYYYY[YYXYYYYYXYYXXXXYYYYYYYYYYXYYZYYYYXYYYYYYYYYXYYXYYYXYYXWYZYYZYYYYXYYYXYYYYXYZYXWYYYXYYXYYYYXYYXYXWZYXYYYXZYYYYYXYYXXYYYYYYYXXYZYYYYXYYYYYXYYYYYXYYYYYYYYYXYXYYYYXYYYWYYYYXYYYZYYWWYYYXUWXYY[YY^YYWYYXYXYYYYYWYYYVYYYYYYYYZYYYYYZYYYYYWYYYVYYYYYYZ[YXYYYYYYYYYYYYZYYZXYYWYYYWXXYXYYYYYZYXYWWYWXYYYYWYYYYYYYYYWYYUYYYYYYVWY[YY^YYYYZYZYUWYYYXYXYVWYYX[YYXXYYYVYY[YXZYYXVYYX[YYYXYVYYXYZYYYYYYW[YZYYYYWYWYYYYYYYXYZYYYYYYYYYYY\YYYZXYYYXXWYYWYYY[YYWWYYYXUVXYXZYY\YYXYWXYYYYYYYXYYZXYYYYZYYYWYYYYYYYYYYYWYYYVYYXYYYYZYXYYYYYYYYYYYYYYYYWYYXYYYYW[ZWYYYYYYYYYXWYWYYYYYXYYYYYYYYYYYYWYYYXYYXWY\YY[YYYYZYXYXYYYYYYXYVXYYYYYYWXYYYVXYWYXXZYXWYYX[YYWWYWYYYYZYYYYYYVZYZXYYYXYUYYYXYYYVYYYYYYYYYYYYYZYYYYYYYYYWXYYXYYYZYYTXYYYVVUVYW^YY_YYVYVXYXYYYYYVYYZWYYYYZZYYVYYYYYZYYYYYTYYYSYYXYYYZWYXYYYYYYYYYYYYXYY[VYYWYZYWWWZWYYYYYZYWYVVYYWYYYYVYYYYYYYYYYYYVYYYXYYXWYYYYaYYYYYY[YXUYYYXYVYTWYYVYYYXVYYYTZYZYWWWYVVYYW\YYUVYTYYUXZYYYYYYW[YXXYYYXYSYYYXYYYUYWYYYYYYYYYWY[YYYWWYYYXWVYYXYYYXYYXXYYYYVWWYVYYY^YYXYXVYWYYYYYWYYZWYYYYWYYYXYYYYYXYYYYXWYYYXYYXYYYZXYXYYYYYYYYYYYYYYYXVYYXYXYXWXZWYYYYYYYXYWWYWVYYYYWYYYYYYYYYWYYWYYYVYYXXY[YY\YYYYXYYYXYYYYWYXYVXYYXXYYXXYYYWXYYYXVXYXWYYXYYYYWYWYYUWZYYYYYYXXYYXYYYXYWYYYVYYYWYXYYYYYYWYYXYWYYYXWYYYXYXYYXYYY`YYVXYYYVWSTY[_YYbYYVYYTYWYYYYYWYYXUYYYYXZYYVYYYYY[YYYYXTYYYSYYZYYYZ[YXYYYYYYYYYYYYWYY_XYYVYWYTR^]XYYYYY[YYYVTYWWYYYYSYYYYYYYYYUYYVYYY^YYWTY]YYcYYYYaY_YTTYYYZYUYPWYYY\YYXSYYYUVYZYY[ZYZSYYW_YYXYYTYYR[ZYYYYYYV\YZTYYYVYRYYY\YYYWY]YYYYYY[YY_YdYYYZYYYY\UUYY\YYYYYYYYYYYYYYYYYYYYYYYYYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYXXYYYYYYYYYXYXYYYYYYXYXYYYYYYYYYYYYYYXYYXYYXYYXXYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYXYYYXYYYYXYYY[YYYWYYYXVVWYYZYY\YYXYXXYYYYYYYXYYYXYYYYZYYYWYYYYYYYYYYXWYYYXYYXYYYZXYXYYYYYYYYYYYYYYYYYYYXYWYYWZZXYYYYYYY[YXWYXYYYYYXYYYYYYYYYYYYXYYYXYYXWY\YYZYYYY[YYYXYYYYYYXYWYYYZXYYYXYYYWXYXYZXZYYWYYYZYYYYYXYYYWZYYYYYYWZYZXYYYXYVYYYXYYYWYZYYYYYYYYYYY\YYYZZYYYYXYYYXYYYYYYXXYYYXXXXYYZYY[YYXYYXYXYYYYYXYYYXYYYYYYYYXYYYYYYYYYYXXYYYXYYYYYYZYYZYYYYYYYYYYYYXYY[YYYYYXYXXYZYYYYYYZYYYYXYWYYYYYXYYYYYYYYYYYYXYYYYYYYXY[YY\YYYYZYYYXXYYYYYWYWXYYXXYYYXYYYWYYZYYZXYXYYYYYYYXXYXYYVYYYYYYYYYYYYWYYYXYXYYYYYYYXYZYYYYYYYYYZYZYYYYXYYYYXYYYZYYYUYY[WYYYZPV[YSSYY\YYSYTVY[YYYYY[YYTSYYYYWYYY[YYYYYXYYYY\XYYYbYYUYYYYZYUYYYYYYYYYYYYgYYRZYY\YSYWTZXTYYYYYXYZYUTYVXYYYYTYYYYYYYYYVYYRYYYTYYSPY\YYXYYYYXYUYT[YYYYYeYTYYY[SYYXXYYYVWYTYVT`Y]QYYYXYYcVYWYYXWYYYYYYYSYY[ZYYYXY[YYYWYYYTYVYYYYYYVYYYYVYYYUbYYYWUSYYWYYYXYYXXYYYYYXXYXYYY[YYYYYYYXYYYYYZYYYXYYYYYYYYXYYYYYYYYYYZXYYYXYYYYYYY[YXYYYYYYYYYYYYWYY[XYYYYYYXWY[YYYYYYYYYYXYYXXYYYYXYYYYYYYYYXYYXYYYZYYXXYZYY[YYYYXYXYXWYYYXYXYXXYYYYYYYXYYYZYYYYYZZYYXYYYYYYXZYXYYXZYYYYYYYXZYXXYYYXYXYYYZYYYYYYYYYYYYXYYZYZYYYYXYYYYWYYYXYYYYYYWXYYYXWXVYXYYY\YYXYZVYXYYYYYWYYYXYYYYZYYYVYYYYYZYYYYXWYYYWYYXYYYZYYXYYYYYYYYYYYYYYYYXYYXYXYYWY[YYYYYYYYYYYWYXYYYYYYYYYYYYYYYXYYXYYYXYYXWY[YY[YYYYXYZYWXYYYXYXYXXYYXYYYYXYYYVXYYYYXZYXWYYXZYYVXYXYYZYZYYYYYYXZY[XYYYXYXYYYWYYYXYXYYYYYYYYYYY\YYYYVYYYXYYYYYYYY\YYWXYYYXWWWYY\YY^YYXYZWYXYYYYYWYYZXYYYY\YYYWYYYYYZYYYYXVYYYUYYYYYYZZYYYYYYYYYYYYYYXYY[YYYWYXYYWZZYYYYYYZYYYYXYWZYYYYXYYYYYYYYYXYYWYYYYYYYXY[YY_YYYY[YZYWWYYYYYVYUYYYXZYYXWYYYWYYXYYYXYYWYYX[YYXWYVYYXYZYYYYYYWZYZYYYYXYUYYYYYYYXYZYYYYYY[YYYY\YYYZYYYYXXZYYWYYYXYYYXYYYYXXXYYYYY[YYYYYXYXYYYYYXYYYYYYYYYYYYYYYYYYZYYYYYXYYYXYYYYYYYYYXYYYYYYYYYYYYYYYZXYYYYYYXXYYXYYYYYYYZYYXYXYYYYYXYYYYYYYYYYYYXYYYYYYYXYYYYZYYYYYYYYXXYYYYYXYWXYYYYYYXYYYYXYYYYYYYYYYYYYZYYYXYXYYWYYYYYYYYYYYYXYYYXYYYYYYYYYXYZYYYYYYXYYYYYYYYYYYYYXYYYYXYYYYYYXXYYYZXWXYYZYY[YYXYYZYXYYYYYYYYZXYYYYYYYYYYYYYYYYYYYYWYYYXYYYYYYZZYYYYYYYYYYYYYYYYYYXYYXYYYYXXYXYYYYYZYXYXYYYYYYYYXYYYYYYYYYYYYXYYYYYYXYY[YY\YYYYYYYYYYYYYYYXYXXYYYXYYXYYYYXYYYYYYYYYXYYYYYYYYYXYYXYZYYYYYYYYYYXYYYXYYYYYYYYYWYXYYYYYYXYYYYZYYYYYYYYXXXYYXYYYXYYWWYYYWWWVYX[YY_YYWYWWYXYYYYYVYYYYYYYYYYYYXYYYYYYYYYYVXYYYVYYWYYYZXYYYYYYYYYYYYYYWYYYWYYXYXYXXWXWYYYYYYYWYYWYWXYYYYWYYYYYYYYYWYYWYYYUYYXXYZYY_YYYYWYWYXXYYYVYWYWXYYWWYYXXYYYVYYXYYVWYXXYYXXYYVVYVYYUVZYYYYYYXWYYWYYYXYXYYYVYYYWYWYYYYYYXYYWYXYYYXXYYYVXYYYWYYYYYYVXYYYWWVUYY\YY^YYWYYUYWYYYYYWYYZVYYYYXYYYWYYYYYYYYYYXUYYYVYYYYYYZYYYYYYYYYYYYYYYXYY]UYYVYYYVWY\WYYYYYZYZYYVYVUYYYYUYYYYYYYYYWYYVYYYWYYXUY]YY^YYYYZYYYUVYYYXYVYUVYYWXYYYVYYYUXY[YWYVYWVYYWYYYXXYUYYVXZYYYYYYWXYZYYYYXYUYYYXYYYXYYYYYYYYWYYYY[YYYXVYYYXZVYYZYYYVYYWXYYYYNTXYSSYY`YYTYVSYZYYYYYZYYURYYYYTYYY\YYYYY[YYYY[UYYY^YYVYYYZ[YUYYYYYYYYYYYYdYYRWYYZYVYTUX[UYYYYYYYZYSSYXTYYYYPYYYYYYYYYQYYOYYYSYYSMY]YYYYYYYZYVYUYYYYXYfYRUYYZTYYXXYYYQTYVYRS]Y[RYYXYYY_UYSYYWUYYYYYYYS]Y\YYYYYYUYYYUYYYWYXYYYYYYWYYVYXYYYT`YYYWUPYYVYYYVYYWYYYYXYYWYXYYY\YYYYXXYWYYYYYYYYYYYYYYYYYYXYYYYYWYYYYZWYYYWYYXYYYYYYXYYYYYYYYYYYYVYYYWYYXYXYXXY[YYYYYYYYYYXYYXXYYYYXYYYYYYYYYWYYXYYYYYYXXYYYYZYYYYVYXYWXYYYXYXYXXYYXXYYXYYYYXXYXYXYYYWXYYXXYYWXYXYYXZYYYYYYYXXYXXYYYXYXYYYYYYYWYYYYYYYYWYYZYYYYYWWYYYZXYYYXYYYXYYWXYYYXWZWYYYYY[YYXYXXYXYYYYYWYYZXYYYYYYYYXYYYYYYYYYYWWYYYXYYYYYYYXYXYYYYYYYYYYYYXYYWXYYXYWYXYXYYYYYYYYYXYXYYYYYYYYXYYYYYYYYYXYYXYYYYYYYWYYYYYYYYYXYXYWXYYYWYWYWWYYXXYYYYYYYWXYYYXXXYWYYYYWYYVWYWYYWYYYYYYYYYYYZXYYYYYXYYYXYYYWYYYYYYYYWYYYYXYYYXWYYYYXYYYXYYYYYYVWYYYXXWVYX[YY]YYXYXXYXYYYYYXYYYXYYYYYYYYWYYYYYZYYYYYWYYYVYYXYYYYZYYYYYYYYYYYYYYWYYZXYYWYWYXXYZXYYYYYZYXYXXYVWYYYYWYYYYYYYYYXYYWYYYXYYWXYYYY^YYYYZYYYWWYYYXYVYVXYYXXYYYXYYYVYYZYYYXYWXYYYZYYVWYUYYUXZYYYYYYWXYXVYYYXYXYYYXYYYVYZYYYYYYXYYZYZYYYYVYYYXWXYYYYYYYYYXVYYYXVXVYWZYY]YYWYXWYXYYYYYWYYXXYYYYXYYYWYYYYYYYYYYVXYYYXYYWYYYYWYXYYYYYYYYYYYYXYYXWYYXYWYXXWXXYYYYYYYXYYWYWWYYYYXYYYYYYYYYWYYWYYYWYYXWYZYY[YYYYXYXYXYYYYWYWYWYYYXXYYXYYYYWXYWYXWWYXWYYXXYYXVYVYYVWYYYYYYYXVYXWYYYXYYYYYVYYYWYYYYYYYYXYYXYXYYYXXYYYWYXYYXYYYZYYVYYYYYTWYYX[YY]YYWYYVYYYYYYYXYYYWYYYYYYYYYYYYYYZYYYYYWYYYXYYYYYYZZYYYYYYYYYYYYYY\YYYWYYXYYYXXXZXYYYYYYYZYXVYXWYYYYVYYYYYYYYYWYYUYYYXYYXVY\YY[YYYY[YZYVWYYYYYYYVXYYZZYYXXYYYVYYYYYXYYYWYYX[YYYXYWYYYXZYYYYYYUZYZXYYYXYVYYYXYYYYYYYYYYYYYYYYY\YYYYYYYYXXWYYWYYYYYYYYYYYYXYZYXYYYZYYYYZYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYYZYYYYYYYYYYYYYY[YYXYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYXYYYYYYXXYZYYYYYYYYYYYXYYYYYYYYXYYYYZYYYYYYYYYYYYYYZYYYYYYYYYZYYYYYZYYYYYYYYXZYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYZYYYYYYYYXYYY[YYUXYYYXSUVYW[YY_YYWYZWYXYYYYYYYYXVYYYYYYYYWYYYYYZYYYYZUYYYUYYYYYYZZYWYYYYYYYYYYYY\YYWZYYXYYYYVZ[VYYYYYYYZYWVYWYYYYYUYYYYYYYYYVYYUYYYWYYWUY]YY\YYYY\Y[YWXYYY[Y[YTWYYZXYYXWYYYVWYYYYVZYYVYYY\YYZXYWYYYWZYYYYYYU^Y\YYYYXYTYYYWYYYXYYYYYYYYZYYXY\YYYY[YYYZXXYYVYYY^YYVXYYYXTVWYW\YY_YYVYXVYYYYYYYWYYYVYYYYZYYYWYYYYY[YYYYYUYYYUYYYYYYZ[YXYYYYYYYYYYYY[YYWVYYWYZYYU[\WYYYYYZYZYXVYYYYYYYVYYYYYYYYYVYYUYYYXYYWUY]YY]YYYY]Y[YWWYYY\YYYSXYYZ\YYWVYYYVVYXYYVYYZVYYX]YY[WYWYYYXZYYYYYYW^Y\YYYYWYTYYYXYYYYYYYYYYYYZYYYY\YYYY[YYYZWWYYVYYY^YYUHYYYWQMHYXbYYeYYQYXXYVYYYYYUYYYPYYYY^YYYMYYYYY\YYYYdNYYYSYY[YYYZ^YRYYYYYYYYYYYYYYYbUYYVYUYRMlnPYYYYYXYcYSRY^TYYYYLYYYYYYYYYMYYQYYY]YYUQYaYY]YYYYdYaYQQYYYgYVYJWYY_dYY\LYYYQPYUY[[aYZLYYZVYY`XYSYY[aZYYYYYYQbYWUYYYPYOYYY\YYYYYYYYYYYY]YYcYjYYYU_YYYkUPYYZYYYZYYXYYYYYWWXYXZYY[YYXYYWYYYYYYYXYYZXYYYYYYYYXYYYYYZYYYYZXYYYXYYYYYYZYYYYYYYYYYYYYYYYYYZXYYYYYYXXYYYYYYYYYYYYYXYXXYYYYXYYYYYYYYYYYYXYYYYYYXXY[YYZYYYYZYZYXYYYYYYXYWXYYYYYYXXYYYZYYYYYYYYYXYYYZYYZZYXYYXXYYYYYYYXZYZYYYYXYXYYYXYYYYYYYYYYYYZYYXYZYYYYYYYYYYYYYYYYYZYYYXYYYZVWXYYZYY[YYXYZXYXYYYYYYYYYWYYYYZYYYXYYYYY[YYYYYWYYYWYYYYYYZ[YYYYYYYYYYYYYYZYYXYYYXYYYYXZZYYYYYYYYZYYWYYXYYYYWYYYYYYYYYXYYWYYYYYYYXY^YY[YYYY\Y[YXYYYY[YYYVYYYZZYYXXYYYZYYYYYYZYZWYYYZYYZZYXYYZYZYYYYYYX\YZZYYYXYXYYYYYYYYYZYYYYYYZYYYY]YYYZZYYYZYYYYXYYYYYYVWYYYWWWUYV[YY^YYXYVWYXYYYYYVYYXXYYYYXYYYWYYYYYYYYYYXVYYYUYYWYYYZWYXYYYYYYYYYYYYWYYXVYYWYWYXWWZWYYYYYZYUYWXYWWYYYYWYYYYYYYYYXYYWYYYWYYWWYZYY_YYYYYY[YXWYYYWYVYWWYYWWYYXXYYYUXYZYXWWYXXYYXYYYVVYVYYTWZYYYYYYYYYXVYYYWYVYYYVYYYVYWYYYYYYXYYXYYYYYWWYYYWXVYYXYYYYYYXYYYYYVWXYXZYY[YYXYYXYYYYYYYYYYYXYYYYZYYYXYYYYYYYYYYYWYYYXYYXYYYZZYXYYYYYYYYYYYY[YYXXYYYYYYYXZZXYYYYYYYYYXWYXXYYYYWYYYYYYYYYWYYWYYYXYYXWY[YY[YYYYYYXYXXYYYZYZYVXYYYYYYXXYYYWYYXYXXYYYWYYYZYYYXYWYYXXYYYYYYYWZYZXYYYYYWYYYYYYYXYYYYYYYYYYYXYYYYYXZYYYYWYYYXYYYYYYVWYYYXPSYYR[YY`YYTYWVYYYYYYY[YYVSYYYY[YYYYYYYYYYYYYY\SYYYWYYWYYYZ\YVYYYYYYYYYYYY_YYTUYYXYZYVT\_UYYYYYYYYYURYWYYYYYPYYYYYYYYYVYYSYYYVYYUQY`YY]YYYY\YYYVYYYY`Y]YRUYYYXYYXVYYYTXYYYWT]Y[TYYYXYY]VYYYY[XZYYYYYYRaY[\YYYVYQYYYVYYYYYXYYYYYYYYYWY\YYYV^YYY]VSYYSYYYXYYVYYYYVWXWYXZYY\YYXYXVYXYYYYYWYYYXYYYYXYYYXYYYYYXYYYYWXYYYYYYXYYYZYYYYYYYYYYYYYYYZYYXXYYXYXYYXXXXYYYYYYYXYXXYWWYYYYXYYYYYYYYYXYYWYYYWYYXVYZYY\YYYYWYXYWYYYYWYYYXWYYXWYYXYYYYVXYYYYWXYWWYYWYYYXWYVYYWXYYYYYYYXVYYWYYYYYXYYYVYYYWYYYYYYYYXYYXYXYYYXXYYYVXXYYXYYYWYYYXYYYXZXXYXYYY[YYYYYWYXYYYYYXYYXXYYYYYYYYXYYYYYWYYYYZXYYYYYYXYYYYYYXYYYYYYYYYYYYYYYZYYYYYYYXWZYXYYYYYYYXYYXYXXYYYYXYYYYYYYYYXYYXYYYZYYXXYYYYZYYYYXYYYWXYYYYYXYWXYYXXYYWYYYYYYYYYXYXYXXYYXYYYYZYXYYXYYYYYYYYZYYXWYYYWYYYYYXYYYXYXYYYYYYWYYYYXYYYXXYYYYYYYYXYYYWYYXXYYYWUXYYVYYY^YYUYVVYXYYYYYWYYXUYYYYWYYYZYYYYYYYYYYZVYYYZYYXYYYZYYWYYYYYYYYYYYY]YYWUYYXYVYVUWXWYYYYYYYWYUUYWVYYYYTYYYYYYYYYWYYTYYYVYYTTYZYYZYYYYXYYYWXYYYVY]YTWYYWWYYWXYYYTYY[YTUYYXTYYWYYY[VYVYYWWZYYYYYYWZYYZYYYXYVYYYUYYYWYWYYYYYYWYYWYVYYYWZYYYVWUYYVYYYYYYXYYYYXXXXYXYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXYYYYZYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYXXYYYYYYYXYYXYXYYYYYYYYYYYYYYYXYYYYYYXYYYXYZYYZYYYYXYXYYYYYYWYYYYYYYYXYYXYYYYYYYXYYXXYYYYYYYYYXYYXYYXXYYYYYYYYWYYYYYYXYYYYYWYYYXYYYYYYYYYYYXYXYYYYXYYYXZYYYXYYY\YYVWYYYXSTUYX]YY_YYUYWWYYYYYYYWYYXUYYYYXYYYUYYYYYZYYYYYVYYYVYYXYYYZXYWYYYYYYYYYYYYZYYXWYYWYWYVUZ[WYYYYYZYZYWTYWWYYYYUYYYYYYYYYVYYTYYYWYYWTY[YY^YYYY]Y[YWXYYYZYYYTYYYYXYYXXYYYRXYYYWWYYYTYYX]YYXVYTYYUXZYYYYYYSZY[WYYYXYRYYYWYYYUYZYYYYYYZYYYY\YYYXZYYYZVTYYWYYYYYYWXYYYXXYYYXWYYZYYXYYWYYYYYYYXYYXXYYYYYYYYZYYYYYYYYYYXXYYY[YYXYYYYYYXYYYYYYYYYYYY[YYXYYYXYXYYYYXYYYYYYYYYYXYYXZYYYYYYYYYYYYYYXYYXYYYXYYXWYZYYYYYYYXYXYXYYYYXY[YXXYYXXYYXYYYYWYYXYXWZYXXYYXZYYXXYWYYWXYYYYYYYXYYZYYYYYYYYYYXYYYXYYYYYYYYYYYXYXYYYYYYYYXYYYYYYYYYYYWWYYYYXXXYYYYYZYYYYYXYXYYYYYXYYZXYYYYYYYYXYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYWXYZYYYYYYYYYYXXYXXYYYYXYYYYYYYYYYYYXYYYYYYZXY[YY[YYYYZYYYXXYYYYYXYWXYYYXYYXXYYYXXYYYYZYYXXYYYYYYXYYXYYWZYYYYYYYYYYYXYYYXYYYYYYYYYYY[YYYYYYYYYZYZYYYYXYYYYXYYYYYYYYYYXXYYYXZWWYY[YY\YYXYZWYXYYYYYYYYYXYYYY[YYYXYYYYYYYYYYYXYYYWYYXYYYZ[YYYYYYYYYYYYYYWYY[XYYXYYYXYY[YYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYYYYXXYZYY]YYYYYYYYXXYYYYYWYXXYYXXYYYXYYYWYYZYYZYYXXYYXZYYWXYWYYWZZYYYYYYXZYYWYYYXYXYYYXYYYXYYYYYYYYXYYYY[YYYXXYYYYXYYYYYYYZYYXYYYYYWXXYX[YY^YYXY[WYXYYYYYXYYZXYYYYZYYYXYYYYYZYYYYXVYYYWYYYYYYZZYYYYYYYYYYYYYYZYYYXYYXYYYYXZYXYYYYYYYYYYWYXYYYYYXYYYYYYYYYXYYWYYYXYYXWY]YY]YYYYZYYYXXYYYYYXYVXYYYYYYXXYYYWYYXYYWYYYXYYX[YYYWYXYYXWZYYYYYYXZYZYYYYXYWYYYXYYYXYYYYYYYYYYYYY[YYYZYYYYYYZYYXYYYYYYXWYYYXXXXYXZYY[YYYYXXYXYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXXYYYWYYXYYYYXYYYYYYYYYYYYYYWYYYXYYXYXYYXXYXYYYYYYYXYYXYXXYYYYYYYYYYYYYYXYYXYYYXYYXYYZYY\YYYYXYXYYXYYYXYXYXYYYXXYYXYYYYXYYYYYYXYXXYYXYYYWXYWYYWXYYYYYYYXXYYXYYYXYXYYYXYYYWYXYYYYYYYYYYYYYYYXXYYYXWYYYXYYYXYYXXYYYYWYWYXYYY[YYXYXXYXYYYYYXYYYYYYYYXYYYYYYYYYYYYYYXYYYYYYYXYYYYXYYYYYYYYYYYYYYXYYXXYYXYXYYXXXXYYYYYYYXYXXYXXYYYYXYYYYYYYYYXYYYYYYWYYYWYXYY[YYYYWYXYYYYYYWYXYXXYYXXYYXYYYYWXYXYXWYYXYYYXYYYXXYWYYVXYYYYYYYXWYYXYYYYYYYYYWYYYXYXYYYYYYXYYXYXYYYYXYYYWXYYYXYYYYYYXYYYYYYWWYYZYY[YYXYYXYXYYYYYXYYYXYYYYXYYYYYYYYYYYYYYZYYYYXYYWYYYZZYYYYYYYYYYYYYYYYYZWYYYYYYXXZXYYYYYYYYYYXXYVXYYYYXYYYYYYYYYYYYYYYYXYYZXYZYY[YYYYXYXYXYYYYXYXYXXYYXXYYYXYYYXXYXYXYXYXXYYYYYYXYYWYYVYYYYYYYYYXYYXYYYXYZYYYXYYYYYYYYYYYYYYYZYYYYYXWYYYXXXYYYYYYYYYXYYYYYXYYYXYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYXYYYXYYYXYYYYYYYYYXYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXXYXYYYYYYYXYYXYYXYYYYYYYYXXYZYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYXXYYYXYYYYXYYYYYYXYYYYYXXXYXZYY[YYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYZYYZYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYXYYXYYXYYYXYYXYYYXYYXYYYYYYYYYYYYZYZYYYYYYXYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYY[YYXXYYYZVYZYY[YY[YYYY[WYXYYYYYXYYZWYYYY[YYYZYYYYYZYYYY[UYYYWYY[YYYZ]YWYYYYYYYYYYYY]YYZWYYYY\YWWZ\XYYYYYYY[YZWY\ZYYYYVYYYYYYYYYXYYUYYYZYYXUY_YYYYYYY[Y^YVYYYY]Y[YUVYYZ^YYXXYYY[YY[YYY[YYWYYX[YY[ZY[YY]ZZYYYYYYY^Y\]YYYXYWYYYXYYY]YZYYYYYYYYYZY[YYY[\YYY[YXYYWYYYYYYWXYYYXWWWYVXYY\YYWYXWYWYYYYYYYYXWYYYYWYYYYYYYYYYYYYYZXYYYWYYYYYYYZYXYYYYYYYYYYYYZYYXUYYXYYYVUY[WYYYYYYYYYVWYXVYYYYVYYYYYYYYYXYYVYYYYYYWVYZYYZYYYYWYWYWWYYYYYXYVVYYXWYYVXYYYVVYXYVYYYXWYYXZYYZWYXYYWZZYYYYYYX[YZYYYYWYVYYYWYYYXYXYYYYYYWYYYYYYYYXXYYYYWWYYVYYYYYYXYYYYXXYXYXYYYZYYYYYWYYYYYYYXYYYYYYYYZYYYZYYYYYZYYYYXYYYY[YYXYYYYXYXYYYYYYYYYYYY[YYXZYYYYXYYYYXYYYYYYYYYYYXYYZYYYYYYYYYYYYYYXYYXYYYXYYXWYZYYYYYYYYYXYXZYYYWYZYXYYYYXYYXZYYYWYYYYXXYYYYYYYYYYYXYWYYWXYYYYYYYXXYZXYYYYYZYYYWYYYXYYYYYYYYYYYYYXYYYXYYYYWZYYYYYYY[YYWWYYYXWUUYYZYY^YYXYXXYYYYYYYWYYXXYYYYXYYYXYYYYYYYYYYXWYYYVYYWYYYZZYXYYYYYYYYYYYYYYYXXYYXYYYYWYXXYYYYYZYZYWXYVXYYYYWYYYYYYYYYXYYWYYYXYYXWYZYY\YYYY[YYYYXYYYYYYYVXYYYVYYXXYYYVXYWYXWYYYXYYX[YYYWYTYYXXZYYYYYYXYYZUYYYYYVYYYXYYYSYYYYYYYYZYYZY[YYYXYYYYXWXYYXYYY[YYYYYYYYYXYYYZYYZYYYYYYYXYYYYYYYYZXYYYYZYYYXYYYYYZYYYYYXYYYXYYYYYYYYYZYYYYYYYYYYYYYYYZXYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYZYYZYYYYZYYYXXYYYYYXYXYYYYYYYYXYYYYYYYYYZYYYXYYYZYYXYYYYYXYYYYYYYYYZYZXYYYYYXYYYZYYYXYZYYYYYYZYYYY[YYYYYYYYYXYYYYYYYZYYWWYYYYWWVYY[YY]YYWYZUYXYYYYYYYYYWYYYYZYYYWYYYYYZYYYY\XYYYVYYYYYYYZYZYYYYYYYYYYYYVYYZWYYYYXYVW[]XYYYYYYYYYYWYVYYYYYWYYYYYYYYYXYYXYYY\YYYVY[YY\YYYYZY[YUWYYY[YTYSWYYYZYYYXYYYXXYXYYZ[YYVYYY[YYWWYWYYWZYYYYYYYW]YZWYYYXYVYYYXYYYXY[YYYYYYXYY\Y]YYYYXYYY[UXYYXYYY`YYWZYYYYVQVY\_YYaYYVY\WYVYYYYYWYY]TYYYY_YYYVYYYYY[YYYYZUYYYTYYZYYY[\YYYYYYYYYYYYYYXYY`XYYUYZYTU^`YYYYYYZY[YXTYXYYYYYUYYYYYYYYYWYYUYYY]YYVTY^YYaYYYYbY`YSUYYY]YUYQXYYZaYYYRYYYVWY[Y[\ZYZSYYV]YYZ[YUYYX\[YYYYYYW_Y[ZYYYVYSYYY]YYY[Y\YYYYYY\YY\YgYYYZZYYY]VYYYXYYYZYYXXYYYYWYXYYZYY[YYYYYWYYYYYYYWYYZXYYYY]YYYXYYYYYYYYYYXXYYYWYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYXYYYYYXYYYYYYYYYYXYXZYYYYZYYYYYYYYYYYYXYYYYYYXXY[YY[YYYYYYYYWXYYYXYWYXXYYWZYYXYYYYXYYXYYYYYWXYYWZYYWXYXYYZYYYYYYYYXYYZZYYYXYWYYYXYYYYYYYYYYYYYYYYYZYYYYWYYYXYZYYXYYYZYYYYYYYYWWXYY[YY[YYXYYXYXYYYYYYYYZXYYYY\YYYWYYYYYZYYYY[VYYYXYYYYYYZ[YXYYYYYYYYYYYYZYYXXYYYYYYYX[]ZYYYYYYYZYXWYZZYYYYXYYYYYYYYYYYYWYYYZYYYWY[YYZYYYY[Y[YWYYYY]YYYUYYYZ[YYYWYYYYXYXY[Y[Y[WYYZZYY[YYZYYZZYYYYYYYX]YZZYYYXYWYYYZYYYYYZYYYYYY[YYZY]YYYX\YYY\WZYYWYYYYYYXXYYYYXWYYX[YY[YYXYYXYXYYYYYYYYZXYYYYZYYYYYYYYYYYYYYYVYYYXYYYYYYZZYYYYYYYYYYYYYYZYYYXYYXYYYYXXZXYYYYYYYXYXXYYXYYYYXYYYYYYYYYXYYWYYYYYYWYY[YY\YYYYZYYYXXYYYZYXYWXYYYYYYXXYYYXYYZYYYXYYXYYXYYYYYYWYYXXZYYYYYYXZYXXYYYXYXYYYXYYYXYXYYYYYYXYYXYYYYYYYYYYXXXYYXYYYYYYYXYYYYWXXYXXYY[YYXYXXYXYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYYYZYYXYYYZYYXYYYYYYYYYYYY[YYXWYYYYYYXXXYXYYYYYYYXYXXYWWYYYYXYYYYYYYYYXYYWYYYXYYXWYZYYZYYYYXYXYWYYYYYY[YWXYYYXYYXXYYYVXYXYWXYYXXYYYYYYZYYXYYWXZYYYYYYXYYYYYYYYYYYYYXYYYWYXYYYYYYXYYXYWYYYYYYYYWXXYYWYYYXYYVWYYYXWYVYWZYY^YYXYVVYXYYYYYVYYXXYYYYXYYYWYYYYYWYYYYXVYYYWYYXYYYZXYWYYYYYYYYYYYYYYYXWYYWYWYWXXXXYYYYYYYWYWWYXWYYYYWYYYYYYYYYXYYWYYYWYYWVYYYY\YYYYWYYYXXYYYUYXYWWYYXWYYXYYYYTXYZYWWXYWWYYWYYYWWYVYYVWZYYYYYYYVYWWYYYYYWYYYVYYYUYXYYYYYYWYYYYXYYYXVYYYWXWYYXYYY_YYTZYYYWZNQY[]YYcYYWY[YYTYYYYY]YY]RYYYYZYYYWYYYYYYYXYY\TZYYRYY[YYYZdYXYYYYYYYYYYYYTYYfVYYVYYYOPag\YYYYYZY^YWSYXUYYYYRYYYYYYYYYUYYVYYYeYYWSYaYYcYYYY^Y^YLSYYYbYSYOUYYY`YYZPYYYWTY^YYc]YWQYYU]YYY_YUYYUe[YYYYYYW_YYVYYYSYSYYYdYYY[YcYYYYYY`YYcYkYYYXVYYYdRWYY\YYYYYYXXYYYYXYYYYYYYZYYYYYXYYYYYYYXYYZYYYYYYYYYZYYYYYYYYYYXXYYYYYYYYYYYYYXYYYYYYYYYYYY[YYXYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYXYYYYYYYYYXYYWYYYXYYXXYZYYZYYYYYYYYXYYYYXYZYXXYYYYYYXYYYYXYYYYXXYYXYYYYYYYZYYXYYYYYYYYYYYYXYYYYYYYYZYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYWZYYYXYYYXYYXXYYYYYYXYYYYY[YYYYXYYYYYYYYYYYZYYYYYYYYYYYYYYYWYYYYYXYYYXYYYYYYYZYYYYYYYYYYYYYYXYY[XYYYYYYXWXZZYYYYYYYYYYYYWXYYYYXYYYYYYYYYXYYYYYYZYYXYYZYY[YYYYXYYYWWYYYYYXYWWYYYYYYYYYYYYYYYYYZYYXXYYYYYYXXYWYYYYZYYYYYYYYYXXYYYXYYYYYYYYYXYZYYYYYYWYYZYZYYYXXYYYYWYYYYYYYYYYXWYYYYXYYYX[YY[YYXYYXYXYYYYYXYYZYYYYYZYYYYYYYYYYYYYYYXYYYXYYZYYYZYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYWYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXXYZYY[YYYYZYZYXXYYYXYXYWXYYXYYYXYYYYYXYZYZXYYXXYYXZYYXYYXYYXXYYYYYYYXXYXYYYYWYZYYYXYYYZYYYYYYYYXYYXYYYYYZXYYYXZZYYXYYYYYYYXYYYYXXXYYYYY\YYXYXWYYYYYYYXYYXXYYYYZYYYXYYYYYZYYYYYXYYYWYYYYYYYXYYYYYYYYYYYYYYWYYZXYYYYYYWWZXYYYYYYYYZYYXYXXYYYYYYYYYYYYYYWYYXYYYZYYXXYYYY\YYYYYYYYXWYYYYYWYVXYYYXYYYYYYYYYYWYYZXYXWYYYYYYXYYWYYWXYYYYYYYXYYYYYYYYYWYYYZYYYYYZYYYYYYXYYZYZYYYXYYYYYWYYYYYYYZYYWYYYYYUWYYXXYY[YYXYZYYYYYYYYXYYZWYYYYWYYY[YYYYYZYYYYYXYYYZYYWYYYZZYXYYYYYYYYYYYY^YYWZYYZYYYZXZXXYYYYYYYYYXWYWYYYYYXYYYYYYYYYXYYVYYYXYYXWY[YYZYYYYXYXYXZYYYYY\YWYYYYZYYXZYYYXYYXYYWZYYXYYY[YYZYYWYYXXYYYYYYYX[Y[YYYYYYXYYYXYYYWYYYYYYYYZYYYYYYYYYZYYYWXWYYXYYYYYYWXYYYYXWWYXYYY\YYYYXXYXYYYYYXYYYYYYYYXYYYXYYYYYZYYYYXWYYYXYYXYYYZYYYYYYYYYYYYYYYYYYYXYYXYXYYXXYXYYYYYYYXYYXYWYYYYYXYYYYYYYYYXYYXYYYXYYXWYZYY\YYYYYYXYYXYYYYYXYWXYYYWYYYXYYYWXYXYXXYYYXYYXZYYWWYWYYWXYYYYYYYXWYYWYYYXYXYYYXYYYXYYYYYYYYXYYXYYYYYXYYYYXWXYYYYYYYYYXXYYYXXXXYXYYYZYYYYXXYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYZYYWYYYYYYXYYYYYYYYYYYYZYYXYYYYYXYYYXXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYXYYYXYYYXYZYYYYYYYXYXYYYYYYXYZYXYYYYXYYXYYYYXYYXYXXYYYXYYXZYYYXYWYYWXYYYYYYYXXYZYYYYYYYYYYWYYYXYYYYYYYYYYYYYXYYYXXYYYXYXYYXYYYZYYYXYYYYYXYY[ZYYZYYYY[XYXYYYYYYYYYXYYYY[YYYYYYYYYYYYYYYXYYYXYYXYYYYYYZYYYYYYYYYYYYYYYZYYYXYZYYYYZZYYYYYYYZYZXYXZYYYYXYYYYYYYYYYYYYYYYZYYZXY[YYZYYYYZYYYXYYYY[YXYVYYYYZYYYWYYYYXYYYZZXYZXYYXZYYYXYXYYXYYYYYYYYYYYYYYYYXYYYYYYYYYYYZYYYYYYZYYYY[YYYYZYYYYY[YYXYYYWYYXZYYYXZWXY[WYYYYYYYYYYYYYYYYZYYYXYYYYXYYYXYYYYYXYYYYZYYYYWYYXYYYYYYZYYYYYYYYYYYYXYYZXYYZYYYWW[[ZYYYYYYY[YXXYVXYYYYXYYYYYYYYYXYYYYYY[YYYXYYYYXYYYYWYXYVXYYY[YWYVWYYXXYYZYYYYYWYWYX[ZYWXYYYZYYWXYXYYW[YYYYYYYXYYZXYYYYYZYYY[YYYXYZYYYYYYXYY[YZYYYWXYYY[WYYYXYYYZYYYXYYYYYWXYYYYY[YYXY[XYYYYYYYZYYZXYYYYZYYYYYYYYYZYYYYYXYYYXYYYYYYYZYXYYYYYYYYYYYYYYYZYYYYYYYYYZ[YYYYYYYYYYYXYYYYYYYXYYYYYYYYYXYYXYYYZYYZWY[YYZYYYYYYYYXXYYYYYYYXXYYYZYYXXYYYYYYYYZZZYYXYYXZYYZZYYYYYZYYYYYYYYZYXYYYYWYXYYYYYYYYYYYYYYYYYYYZY\YYYYXYYYZXZYYXYYYYYYYXYYYYUWXYWYYY\YYXYZXYXYYYYYYYYYWYYYYZYYYXYYYYYYYYYYYVYYYXYYWYYYZZYWYYYYYYYYYYYY\YYWZYYXYZYYXYZXYYYYYYYYYXWYXYYYYYWYYYYYYYYYWYYVYYYXYYWWY]YYZYYYYZYZYWYYYYZY]YWXYYZYYYXXYYYWXYZYXWYYYWYYYZYY[ZYXYYYXZYYYYYYW[YZXYYYXYWYYYXYYYXYYYYYYYYYYYWYZYYYX[YYYYYXYYWYYYXYYWWYYYWXYVYWYYY]YYXYVWYXYYYYYWYYXXYYYYXYYYYYYYYYYYYYYWXYYYXYYWYYYYYYXYYYYYYYYYYYYXYYXWYYXYWYXXXXXYYYYYYYWYXXYWWYYYYXYYYYYYYYYYYYXYYYWYYYWYYYY\YYYYWYWYXYYYYWYXYXXYYXVYYXYYYYVXYXYWWXYXXYYXYYYXXYWYYVWZYYYYYYYXYXWYYYXYYYYYWYYYWYXYYYYYYXYYXYWYYYYWYYYWWXYYXYYYUYYUaYYYW]TTY]QYYXYYYYUZYVYYYYY_YYYUYYYYVYYYWYYYYYZYYYY^XYYYUYYWYYYY]Y^YYYYYYYYYYYYTYY^TYYZYZYRT`b^YYYYYYYaYUVYSUYYYYWYYYYYYYYYVYYXYYYcYYVVYYYYTYYYYSYVYOTYYYcYVYQSYYWUYY[[YYYXUYTYVg[YTUYY\ZYYWWYWYYTdYYYYYYYW[Y[UYYY[YXYYYaYYYXYbYYYYYYYYYaY_YYYRUYYYaSXYY[YYYYYYWXYYYYYYXYYYYY[YYXYYXYXYYYYYWYYXYYYYYYYYYXYYYYYYYYYYXXYYYXYYXYYYYYYYYYYYYYYYYYYYXYYXYYYXYWYYXYYXYYYYYYYYYYXYWYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYZYYYYXYXYXYYYYVYXYYXYYXYYYYYYYYWYYYYXXYYXXYYYYYYWXYWYYXXYYYYYYYXXYYXYYYYYYYYYWYYYXYYYYYYYYYYYYYXYYYYXYYYWXYYYXYYYUYYXUYYYXSYZYSUYY^YYVYUQYXYYYYYVYYUUYYYYVYYYYYYYYYWYYYYXXYYY_YYVYYYZXYVYYYYYYYYYYYYaYYTWYYZYTYVVUVUYYYYYYYVYVVYVUYYYYVYYYYYYYYYUYYSYYYTYYTRYZYY[YYYYVYUYVYYYYTY_YTVYYXTYYWXYYYUWYXYUR[YYTYYWXYY]VYTYYTTYYYYYYYWWYXWYYYXY[YYYTYYYWYTYYYYYYUYYUYTYYYT\YYYSWTYYTYYYZYYYVYYY[RSZYW\YY_YYTYYYYYYYYYYZYYYTYYYY\YYYYYYYYYZYYYY[TYYYWYYYYYYZ]YVYYYYYYYYYYYY_YYVXYYWYZYXU\^WYYYYYYYYYWTYZ[YYYYSYYYYYYYYYUYYTYYYYYYUSY^YYZYYYY^Y]YVZYYY^Y\YQVYY][YYWUYYYYWYZYYX\Y\SYYY]YY^XYZYY[YZYYYYYYU_Y[[YYYWYUYYYXYYY[YYYYYYYYYYY[Y`YYYX^YYY]WWYYVYYY^YYWVYYYYQTVYY[YY_YYTYYXYXYYYYYYYYVSYYYY[YYYVYYYYY[YYYYYRYYYXYYUYYYZ[YUYYYYYYYYYYYY^YYTYYYXYWYYT_^XYYYYYZY\YWRYWZYYYYSYYYYYYYYYTYYTYYYXYYVRYbYY\YYYY`Y\YSYYYYbY]YQXYY[ZYYYUYYYTVYXYWV]Y]SYYW^YY]VYXYYYWZYYYYYYT_Y\YYYYYYRYYYYYYYVY[YYYYYY[YYZY`YYYX`YYY\YVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYVWYYYXXWWYX[YY^YYXYWWYWYYYYYWYYYXYYYYYYYYXYYYYYXYYYYZWYYYVYYXYYYZZYXYYYYYYYYYYYYXYY[XYYXYXYVWXZWYYYYYZYXYXXYXXYYYYWYYYYYYYYYXYYXYYYZYYWWYYYY]YYYYYY[YVWYYYYYWYVWYYWXYYXXYYYVYY[YY[YYXWYYXYYYWWYUYYVZZYYYYYYXZYWVYYYWYXYYYWYYYVYXYYYYYYXYYZYZYYYXVYYYXWXYYYYYYZYYXXYYYYXYXYXYYY[YYYYXXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYXYYYYYYYYYYYYYYYYYYYZYYXXYYYYXYYYXYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYXYYYXYYXXYZYYZYYYYYYXYYYYYYXYYYXYYYYXYYXYYYYXYYYYYXYYYYYYYYYYYYYXYYXXYYYYYYYXYYYXYYYYYYYYYXYYYXYYYYYYYYYYYYYXYYYYYYYYXYYYYXYYYWYYYXYYYYYYXYXYYYZYYYYYXYXYYYYYYYYYXYYYYZYYYYYYYYYXYYYYZXYYYYYYYYYYYZYYYYYYYYYYYYYYXYYYYYYXYYYXXYZXYYYYYYYYYYXYXXYYYYXYYYYYYYYYXYYXYYYYYYXYYYYYYYYYYWYYYWXYYYZYXYWXYYXYYYXYYYYYYYYYXYYYXYYYYYYYYYYYYYXYYYYYYYYYYYWXYYYXYYYYYZYYYYYYYYYYYYXYYYYXYYYXYYYYZXYYYXYYYUYYYZYYYYYXXYWVYYZYYXYXXYVYYYYY\YYWWYYYYYYYYYYYYYYWYYYY\XYYYYYYYYYYY[YXYYYYYYYYYYYYYYYYUYYXYYYSV[^[YYYYYXYZYVVYXWYYYYUYYYYYYYYYVYYXYYY\YYWVYYYYVYYYYTYXYRVYYY\YYYSUYYXWYYXYYYYWWYXYW\ZYVWYYYXYYYXYYYYX]ZYYYYYYW[YYYYYYWYXYYY[YYYZY[YYYYYYVYYZYZYYYUWYYY[UYYYVYYYYYYXWYYYZUWYYX[YY[YYXYYXYYYYYYYXYYYWYYYYYYYYYYYYYYYYYYYYWYYYXYYZYYYY[YXYYYYYYYYYYYY\YYXXYYXYZYXXXYXYYYYYYYXYXWYYYYYYYWYYYYYYYYYWYYVYYYZYYYWY[YYZYYYY[Y[YVWYYYYYZYVXYYZZYYWYYYYXXYZYYYYYYXYYY[YYYYYYYYZYYYYYYYYXZYYYYYYXYYYYYZYYYYYYYYYYYYYYYYY[YYYZYYYYXXXYYWYYYbYYVYYYYXQOWYXgYYiYYPYZTYUYYYYYWYY\QYYYY`ZYYVYYYYY]YYYYZOZYYPYY\YYY[]YVYYYYYYYYYYYYZYY\VYYSY[YTS]bXYYYYY[YWYUQY[XYYYYOYYYYYYYYYUYYOYYY]YYTQY^YYhYYYYcYdYQTYYY_YWYHUYYYbYYXOYYYRWY`Y\Y\Y\QYYU^YY[UYSYYY\\YYYYYYRcYZYYYYUYMYYY\YYYXYZYYYYYY\YY[YgYYYY`YYY^URYYUYYYYYYXXYYYYYYXYYYYYZYYYYZXYYYYYYYWYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYXYXYXXXXYYYYYYYYYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYXYXXYYYXYXYXXYYYXYYYYYYYXYYXYYYXYXXYYYYYYXXYWYYXYYYYYYYYXXYYXYYYYYXYYYXYYYXYYYYYYYYYYYYYYYYYXXYYYXXYYYYYYYYYYXXYYYYYYXYYXYYYYYYYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYXYYYYZYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYXYXYYYYYYXYYYYYYYYYYYXYYYYXYYYYYXYYXXYYZZYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYXYYYYYYYYXYYYYYYYYYXYYYYYYYYXYYY_YYVWYYYWOQVYWaYYdYYSYWTYWYYYYYWYYYSYYYY]YYYVYYYYY]YYYYYRYYYRYY[YYY[[YVYYYYYYYYYYYY\YYXWYYWYYYVT]^WYYYYYZYYYVSYYYYYYYRYYYYYYYYYUYYRYYYYYYVSYaYYbYYYY`Y`YRVYYY_YZYOVYY[^YYVSYYYSXY[YZW[Y[RYYV]YY[XYUYYZY[YYYYYYTaY]XYYYVYPYYYXYYYXYYYYYYYY[YYYYbYYYZ^YYY[UVYYTYYY`YYXVYYY\HLXYTeYYfYYOYXWYZYYYYY[YYTMYYYY^YYYWYYYYYZYYYY_OYYYXYYXYYY[_YQYYYYYYYYYYYYeYYPZYYVYWYROacRYYYYYYY[YQJYY\YYYYMYYYYYYYYYRYYJYYYUYYQKYbYY]YYYYcY`YOYYYYcYcYHVYY^ZYYWQYYYOTYZYXR`Y`MYYW_YYcUYVYYZW[YYYYYYJhYaZYYYVYIYYYXYYYXYYYYYYYY[YYYYdYYYXhYYY^SOYYQYYYYYYZWYYYZYYYYYYYYZYYYYZYYYYYYYYZYYYYYYYY[YYY[YYYYYYYYYYZXYYYYYYYYYYYZYXYYYYYYYYYYYYZYYYZYYZY[YYYYYYYYYYYYYYYZXYZZYYYYXYYYYYYYYYYYYYYYYYYYYWYZYYYYYYYZYZYXXYYY[YYYXXYYYZYYXYYYYZYYYYZYZYYXYYYZYYYYYYYYZZYYYYYYYY[YZZYYYXYYYYYZYYYZYXYYYYYYYYYYY[YYYY[YYYYY[YYXYYYYYYWWYYYWWWVYWZYY^YYXYYWYXYYYYYWYYYWYYYYXYYYXYYYYYYYYYYXWYYYWYYXYYYZYYXYYYYYYYYYYYYXYYXXYYXYXYYWXYWYYYYYZYXYXXYWXYYYYWYYYYYYYYYWYYWYYYWYYWWYZYY]YYYYXYYYXXYYYVYYYWWYYXWYYXYYYYVXYYYXVYYXWYYXXYYXVYWYYWWZYYYYYYWXYZWYYYXYWYYYVYYYVYXYYYYYYXYYXYYYYYYXYYYWXXYYWYYYYYYWXYYYYYYWYYZYY[YYXYWYYYYYYYYXYYYYYYYYXYYYXYYYYYYYYYYYXYYYWYYXYYYYXYYYYYYYYYYYYYYYYYZXYYXYYYXWYXYYYYYYZYXYXXYWXYYYYXYYYYYYYYYYYYXYYYXYYXYYXYY[YYYYYYYYYXYYYXYXYXXYYYWYYYYYYYWYYYYXYXYYXYYYYYYXXYWYYVYZYYYYYYYXYYWYYYYYXYYYXYYYWYYYYYYYYXYYYYYYYYYXYYYYXXYYYYYYXYYWWYYYYUYYYWYYY[YYXYWVYYYYYYYWYYXXYYYYYYYYYYYYYYYYYYYXWYYY[YYWYYYZYYXYYYYYYYYYYYY[YYWYYYYYWYXXYYXYYYYYYYXYYWYXYYYYYXYYYYYYYYYWYYWYYYVYYWVY[YYZYYYYXYXYX[YYYXYZYWXYYXWYYXYYYYWXYYYXVZYXWYYYZYYYXYWYYWWYYYYYYYWYYYXYYYYYYYYYVYYYWYXYYYYYYXYYWYXYYYXZYYYWZWYYWYYYYYYXXYYYXWWYYWXYY\YYWYXXYYYYYYYWYYYXYYYYXYYYYYYYYYYYYYYXYYYYZYYWYYYYYYXYYYYYYYYYYYY\YYXWYYYYXYYXXWXYYYYYYYXYXWYXXYYYYYYYYYYYYYYWYYWYYYWYYWWYZYYYYYYYXYXYYZYYYWY[YWXYYYWYYXZYYYXYYWYXVXYYXYYXYYYZXYWYYVWYYYYYYYWWYZXYYYXYYYYYWYYYWYXYYYYYYXYYWYWYYYXZYYYWZXYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYXWYYYYVXZYWWYY[YYXYXVYYYYYYYXYYWWYYYYYYYYYYYYYYYYYYYXXYYY\YYWYYYYYYXYYYYYYYYYYYY\YYVXYYXYWYXXXXXYYYYYYYXYXXYXZYYYYXYYYYYYYYYWYYWYYYWYYWVYZYYXYYYYXYWYX[YYYVY[YWXYYYVYYXYYYYWYYXYXVZYWWYYYYYYYXYWYYVWYYYYYYYWXYYYYYYYYYYYYWYYYXYXYYYYYYWYYVYVYYYXYYYYWXXYYXYYYYYYXXYYYXWXWYXZYY[YYXYYWYXYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXXYYYXYYXYYYZYYYYYYYYYYYYYYYXYYXXYYXYXYYXXYXYYYYYYYXYYXYXYYYYYXYYYYYYYYYXYYXYYYWYYXXYZYY\YYYYXYXYXXYYYXYXYXXYYXXYYYYYYYWYYYYYXYYXXYYXYYYXXYXYYWXZYYYYYYXXYZXYYYXYXYYYWYYYXYYYYYYYYXYYXYXYYYYYYYYWXYYYXYYY]YYVXYYYZTUVYX]YY_YYWYYWYXYYYYYYYYYVYYYY\YYYWYYYYYZYYYYYUYYYWYYWYYYZZYWYYYYYYYYYYYY\YYVYYYWYYYXV[]VYYYYYYYZYWUYX[YYYYVYYYYYYYYYWYYUYYYXYYVUY\YY\YYYY]Y[YVWYYY]YZYSXYYZZYYXWYYYVWYWYZV[YZUYYW[YYZVYWYYYXYYYYYYYU]Y\ZYYYXYTYYYYYYYXYZYYYYYY[YYXY]YYYX]YYYZXXYYVYYY[YYUXYYYVXWTYY]YYaYYXYXVYXYYYYYVYYXWYYYYWYYYVYYYYYZYYYYWUYYYUYYWYYYZXYXYYYYYYYYYYYYWYYZXYYWYXYWVYYWYYYYYZYYYWWYVVYYYYUYYYYYYYYYVYYXYYYXYYWUY\YY`YYYY\YZYXWYYYVYWYUWYYXWYYXXYYYUWYXYXVXYYVYYX\YYXWYUYYUWZYYYYYYYVYYUYYYXYTYYYVYYYTYYYYYYYYWYYZY[YYYZYYYYXWVYYYYYYYYYYXYYYZYYZYXZYYZYYYYZYYYYYYYYYYYZXYYYYZYYYZYYYYYYYYYYZXYYYYYYYYYYY[YXYYYYYYYYYYYYZYYYYYYYYZYYZY[YYYYYYYYYYZXYYZYYYYXYYYYYYYYYXYYYYYYZYYYWY[YYYYYYYZYZYWXYYY[YYYWXYYZZYYXXYYYZZYZYYYZYZXYYYZYYZYYZYYYZYYYYYYYY[YYZYYYXYYYYYYYYYZYYYYYYYYYYYYYZYYYYYYYYYY[YYWYYYYYYWYYYYXXXWYYYYY[YYYYYXYYYYYYYXYYYYYYYYXYYYXYYYYYZYYYYYXYYYXYYXYYYYYYXYYYYYYYYYYYYYYYYXYYXYXYYXXYYYYYYYYYXYXYYXXYYYYXYYYYYYYYYXYYXYYYXYYXXYZYYZYYYYYYYYYXYYYXYXYXYYYYXYYYYYYYXXYYYXXYYYYYYYZYYXXYWYYWXYYYYYYYXYYZXYYYYYXYYYXYYYWYYYYYYYYYYYYYYYYYYXYYYXXXYYXYYYZYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYZYYYXYYYYYYYYYYZYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYZYYYYYYZY[ZYYYYYYYYZYYYYYZYYYYZYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYZYYYYZYYY[YYYYYYYZYYYYYYYYYYYYYYYZYYYYYYZYYYYYYYYZYYYYYYYYX[YZYYYYYYXYYYZYYYYYZYYYYYYZYYZY[YYYYZYYYZXZYYYYYY[YYXWYYYZTUXYW\YY^YYVYZUYXYYYYYYYYXVYYYYZYYYYYYYYYYYYYY[TYYYZYYXYYYZ[YWYYYYYYYYYYYY^YYXWYYVYYYWVZ\UYYYYYYYYYYSYYWYYYYVYYYYYYYYYWYYUYYYXYYWTY^YYYYYYY]Y\YVXYYY\Y[YTXYY[[YYWWYYYVWYZYYWZY[UYYW[YY\WYWYYYWZYYYYYYU\YZZYYYWYVYYYWYYYYYXYYYYYYXYYXY]YYYW\YYYXZWYYUYYY[YYXVYYYXTTVYW_YYbYYUYWUYXYYYYYWYYWVYYYYYYYYVYYYYYYYYYYXTYYYUYYXYYYZYYVYYYYYYYYYYYYZYYYVYYVYWYVUZ]VYYYYYZYYYXUYXXYYYYTYYYYYYYYYVYYVYYYWYYVRY^YY_YYYY]Y]YVWYYYXYYYSWYYZYYYXVYYYUVYYYXVZYZTYYV[YYZVYVYYVWZYYYYYYV[YYWYYYWYSYYYWYYYUYXYYYYYYXYYZY_YYYYZYYYYXWYYXYYYZYYXXYYYYXXYYYYYY[YYYYYXYYYYYYYYYYZXYYYYZYYYYYYYYYYYYYYYXYYYYYYXYYYZYYYYYYYYYYYYYYY[YYYZYYYYXYYYYYYYYYYYYYYYYYYYZYYYYXYYYYYYYYYYYYXYYYYYYXXY[YYZYYYYYYYYXYYYYYYZYXYYYZYYYXYYYYXYYXYYYYYYXYYYZYYYYYXYYXXYYYYYYYXZYZYYYYYYXYYYYYYYXYZYYYYYYYYYYYZYYYYYYYYXYYYYYYYY_YYQGYYYWPNLYS`YYpYYPYWYYTYYYYYWYY]RYYYY_YYYNYYYYY[YYYYZPYYYNYY\YYYZaYWYYYYYYYYYYYYOYYfRYYRYTYNS^kXYYYYYZYZYURYXRYYYYNYYYYYYYYYSYYQYYY_YYTSY_YYpYYYYdY]YNOYYYXYMYNUYYY_YY[KYYYLYY^YZ^\YWOYYWVYYUYYKYYRc[YYYYYYPcYVRYYYRYKYYY[YYYWY]YYYYYYZYYcYmYYYYTYYYgRRYY^YYYWYYTWYYYXUVWYVZYY_YYVYWVYXYYYYYVYYXWYYYYXYYYWYYYYYYYYYYXVYYYXYYYYYYZZYWYYYYYYYYYYYY[YYXUYYWYXYVUYZWYYYYYYYXYVVYXVYYYYUYYYYYYYYYWYYUYYYWYYVVY[YY[YYYYXYZYVXYYYVYYYTVYYWWYYXXYYYTYY[YVWYYWVYYXZYYXVYVYYUXZYYYYYYVYYYXYYYWYVYYYVYYYVYXYYYYYYXYYWYWYYYWWYYYWWVYYXYYY\YYXVYYYXTTUYW[YY_YYWYYWYXYYYYYVYYXWYYYYXYYYWYYYYY[YYYYWUYYYUYYXYYYZYYXYYYYYYYYYYYYZYYVVYYVYXYXVXYXYYYYYZYXYWVYXVYYYYVYYYYYYYYYVYYVYYYXYYXVY\YY]YYYY\YZYWVYYYZYYYUWYYYYYYWVYYYVWYXYXVXYZVYYW\YYYWYVYYVVZYYYYYYW\Y[XYYYWYUYYYWYYYWYYYYYYYYYYYXY[YYYWZYYYXWVYYWYYYWYYVUYYYWWXTYWZYY`YYXYUWYWYYYYYWYYXXYYYYWYYYWYYYYYXYYYYVWYYYTYYWYYYZYYXYYYYYYYYYYYYVYYXWYYVYVYXWWZXYYYYYZYWYWXYTVYYYYWYYYYYYYYYVYYWYYYXYYWWYXYY_YYYYWYYYXWYYYVYWYVWYYWUYYYXYYYTXYZYXWXYVXYYXYYYWVYTYYSWZYYYYYYXVYWTYYYXYXYYYWYYYTYYYYYYYYVYYZYWYYYWUYYYWVWYYXYYYXYYXXYYYXYXXYYYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXYYYYXYYXYYYYXYYYYYYYYYYYYYYWYYXYYYXYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYYXYYZYYYYXYXYYYYYYWYXYYYYYXYYYYYYYYXYYXYYXXYXYYYXYYYWXYXYYXXYYYYYYYYXYXYYYYXYYYYYXYYYXYXYYYYYYYYYYYXYYYYXYYYXYYYYXYYYYYYWXYYYXXXVYY[YY\YYXYYWYYYYYYYWYYXXYYYYYYYYXYYYYYYYYYYXXYYYWYYXYYYYXYYYYYYYYYYYYYYWYYYXYYXYXYXWYYXYYYYYYYXYXXYVXYYYYXYYYYYYYYYXYYWYYYXYYXXYZYY\YYYYYYYYXXYYYVYWYXXYYXWYYYYYYYVYYYYXXXYWXYYXZYYWXYVYYVXZYYYYYYYWYYWYYYYYWYYYWYYYWYYYYYYYYXYYYYYYYYYVYYYXYXYYYYYYYYYUXYYYVWVUYXZYY_YYWYVVYXYYYYYVYYWXYYYYUYYYYYYYYYYYYYYVVYYYUYYVYYYZXYXYYYYYYYYYYYYXYYYXYYVYWYVVXXXYYYYYZYXYWWYVWYYYYVYYYYYYYYYVYYXYYYXYYXWYXYY_YYYYXYXYXVYYYWYWYUWYYWUYYYXYYYTYYWYWWWYWWYYW[YYXWYSYYSXZYYYYYYXVYYSYYYYYUYYYWYYYSYXYYYYYYXYYYYZYYYVXYYYWUVYYXYYYYYYXXYYYYVVWYXYYY[YYXYZWYZYYYYYZYYYWYYYYZYYYYYYYYYYYYYYZXYYYZYYWYYYYZYWYYYYYYYYYYYY\YYWZYYZYWYYWYYXYYYYYYYZYXWYWYYYYYYYYYYYYYYYWYYWYYYXYYXVY[YYXYYYYYYYYXYYYYYY^YWYYYXXYYXYYYYWYYWYXW\YXVYYX[YY[XYVYYYWYYYYYYYV[YZYYYYXYYYYYXYYYXYXYYYYYYYYYZY[YYYY[YYYWWWYYXYYYYYYZVYYYXXXXYVWYYZYYXYYXYXYYYYYYYYXXYYYYXYYYYYYYYYYYYYYZXYYY[YYXYYYYYYWYYYYYYYYYYYY[YYXXYYXYXYXXXXXYYYYYYYYYWXYWXYYYYWYYYYYYYYYWYYWYYYXYYWVYZYYXYYYYWYWYXYYYYYY\YXVYYXWYYWXYYYWXYWYWXYYWWYYWYYYZWYWYYWYYYYYYYYWYYYYYYYWYYYYYXYYYXYXYYYYYYWYYWYWYYYVXYYYXWXYYWYYYYYYYXYYYYXXXYXXYYZYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYXYYXYYYYYYYYYYXYXYYXZYYYYYYYYYYYYYYYYYXYYYWYYYXYYYYYYYYYXYXYYYYYYWYYYXXYYYYYYXZYYYXYYXYXWYYXXYYYYYYXXYXYYXXYYYYYYYXXYYXYYYYYXYYYWYYYXYYYYYYYYXYYXYWYYYXYYYYWYYYYXYYYWYYWYYYYXYWXYZYYY[YYWYYXYXYYYYYYYYZVYYYYXYYYXYYYYYXYYYY[WYYYXYYZYYYY\YZYYYYYYYYYYYYYYY\VYYYYYYTW[\ZYYYYYYYYYVWYVVYYYYUYYYYYYYYYWYYWYYY]YYXVYZYYWYYYYXYZYSUYYY[YXYSUYYYYYYYYYYYYXYZYV^YYWVYYYXYYZ[YXYYX]YYYYYYYY\YZYYYYWYWYYY\YYYZY\YYYYYYXYY[Y\YYYXXYYY[VYYYYYYYWYYWWYYYXWXVYVYYY\YYWYXVYXYYYYYXYYXWYYYYXYYYWYYYYYYYYYYXXYYYZYYWYYYYXYWYYYYYYYYYYYYZYYWXYYXYWYXWXZXYYYYYYYXYWWYYXYYYYXYYYYYYYYYWYYWYYYVYYWVY[YYYYYYYWYXYXZYYYVYZYXXYYXWYYXXYYYVWYYYWVYYXWYYXYYYXWYWYYWWYYYYYYYWYYZYYYYXYXYYYUYYYWYWYYYYYYXYYWYWYYYYYYYYWWXYYWYYYYYYXXYYYYXXXYYZYY[YYXYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYWYYYYYYXYYYYYYYYYYYYYYYYYYYZYYYYYYXYYYYYYXYYYYYYYYXYYXYXYYYYYXYYYYYYYYYXYYXYYYYYYYXY[YYZYYYYYYZYXXYYYXYYYXXYYYXYYXYYYYXYYXYYYYYYXYYYYYYYYYXYYXYYYYYYYYYYYYXYYYYYXYYYXYYYXYYYYYYYYYYYYYZYYYZYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYZYYYYYYYYXYYZZYYYYZYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZZYYYYYYYYYYYYYXYYZYYYYYYYYYYYYYYYYYZYYYYYYYXYYYYYYYYYYYYYZZYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYZYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYXYYYZYYYYYYYYYYYYYZYYYZXYYYXZZYYYYYYZYYXXYYYXWXXYYZYYZYYXYXYYYYYYYYXYYYXYYYYXYYYZYYYYYZYYYYYWYYYXYYXYYYYZYXYYYYYYYYYYYY[YYYWYYYYYYYXYYYYYYYYYYYYXXYXXYYYYXYYYYYYYYYYYYWYYYYYYXXY[YYZYYYYZYYYXXYYYYYZYXXYYYXYYXYYYYWYYYYWXYYYXYYYZYYZYYXYYXXZYYYYYYZ[YZXYYYYYXYYYXYYYWYYYYYYYYXYYYYZYYYZYYYYXYXYYXYYYYYYXXYYYXWXXYYZYY[YYYYYYYXYYYYYXYYZXYYYYZYYYYYYYYYYYYYYXXYYYXYYYYYYYYYXYYYYYYYYYYYYZYYYXYYXYYYYXXYXYYYYYYYYYWXYYYYYYYXYYYYYYYYYXYYWYYYYYYXXYZYYYYYYYYYXYXXYYYXYYYXXYYXZYYXYYYYWYYYYXXYYXXYYYZYYXXYXYYXXZYYYYYYXYYZYYYYYYXYYYXYYYXYYYYYYYYYYYXYYYYYXWYYYXXYYYXYYY\YYWWYYYXUVUYX\YY^YYWYXVYXYYYYYWYYYWYYYY[YYYVYYYYYZYYYYXUYYYVYYXYYYZZYXYYYYYYYYYYYYYYYXXYYWYYYXW[ZWYYYYYZYYYXWYVXYYYYWYYYYYYYYYWYYXYYYWYYXVY\YY^YYYY[YYYXWYYYZYWYVXYYYYYYXVYYYUYYWYXVYYYVYYWZYYZWYVYYXWZYYYYYYWZYZXYYYXYTYYYXYYYVYYYYYYYYZYYYY\YYYY[YYYYXYYYWYYYYYYWWYYYWVWYYXXYY[YYXYXXYYYYYYYXYYXXYYYYWYYYZYYYYYYYYYYYWYYYYYYYYYYYYYXYYYYYYYYYYYY[YYXXYYXYYYXXXXYYYYYYYYYYXXYXXYYYYWYYYYYYYYYXYYVYYYXYYXXYYYYZYYYYXYXYYYYYYYY[YWXYYYXYYXYYYYWYYYYVWYYYXYYY[YYZYYVYYXXYYYYYYYY[YZXYYYYYWYYYXYYYXYXYYYYYYXYYWYXYYYWYYYYXYWYYXYYYYYYXXYYYXVXYYWXYY[YYXYYWYZYYYYYYYYXXYYYYYYYYXYYYYYYYYYYYWYYYZYYXYYYYYYXYYYYYYYYYYYY[YYXYYYYYXYXXYYXYYYYYYYYYXXYXZYYYYXYYYYYYYYYWYYWYYYXYYWVY[YYYYYYYXYXYXYYYYXY[YWWYYYWYYXYYYYWXYWYWWYYXWYYXZYYYYYXYYXXYYYYYYYWXYZZYYYXYWYYYXYYYXYYYYYYYYYYYWYXYYYXYYYYXYXYYXYYY]YYUVYYYZOQVYW`YYaYYSYXXYWYYYYYZYYWRYYYY`ZYYWYYYYY\YYYY]RYYYTYYZYYYZ\YTYYYYYYYYYYYY_YYTWYYVYZYWS]bVYYYYYZY[YVPY[[YYYYQYYYYYYYYYVYYRYYYYYYVRY\YY^YYYY`Y_YSWYYYdYYYPWYY\^YYXSYYYPYYZYZV^Y[QYYW^YY\WYXYY]XZYYYYYYQdY^\YYYUYNYYYZYYYZYYYYYYYY[YYWYeYYYXcYYY_VSYYRYYYYYYXYYYYYYYYYYYYYZYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYZYYYYYYYYYYYXYYYYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYY[YYUWYYYXTUWYV\YY`YYVYWWYYYYYYYVYYXUYYYY[YYYVYYYYYZYYYYXUYYYSYYXYYYZXYXYYYYYYYYYYYYXYYXWYYXYXYWUYZWYYYYYZYXYWUYVXYYYYVYYYYYYYYYVYYUYYYWYYVVY]YY`YYYY\Y[YWXYYYXYVYTXYYXWYYXXYYYTYYYYXWXYXUYYX]YYXVYVYYVWZYYYYYYUZYZXYYYXYSYYYVYYYWYYYYYYYYZYYXYZYYYYYYYYYXVYYWYYYYYYWYYYYXYXWYYZYY[YYXYXXYYYYYYYXYYYXYYYYXYYYYYYYYYYYYYYYXYYYWYYXYYYZYYYYYYYYYYYYYYYXYYYXYYXYYYXWYYXYYYYYYYXYYXYWXYYYYXYYYYYYYYYXYYXYYYXYYXXYYYY\YYYYYYYYYXYYYYYXYWYYYYWYYYYYYYWYYYYYYYYYXYYYYYYXXYVYYVYYYYYYYYXXYYVYYYYYXYYYYYYYWYYYYYYYYYYYYYYYYYXXYYYXXXYYYYYYYYYYXYYYYYYXYYYYYZYYXYZXYYYYYYYYYYZYYYYYZYYYYYYYYYYYYYYZYYYYYYYYYYYYZYXYYYYYYYYYYYYYYYYXYYYYXYYYYZYYYYYYYYYYXXYYYYYYYXYYYYYYYYYYYYXYYYZYYYXYZYYYYYYYYYYYXYYYYYYXYXYYYYYYYXXYYYYYYYYYZYYYXYYYYYYYZYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYYYYYZYZYYYYYYYYYYZYYYYYYYYYXWYYYYUXYYVXYY[YYWYXWYZYYYYYYYYXVYYYYZYYYYYYYYYZYYYY[YYYYZYYWYYYY[YWYYYYYYYYYYYY^YYVZYYZYYYXWYZVYYYYYYYYYWWYYZYYYYWYYYYYYYYYXYYUYYYXYYWTY[YYYYYYYXYXYVZYYYZY^YWWYYZWYYXYYYYVWYXYXW\YYWYYW[YYZXYXYYYXYYYYYYYV\YZ[YYYYYWYYYWYYYXYXYYYYYYXYYXYYYYYW[YYYXWWYYVYYYYYYUWYYYWRUYYVZYY`YYTYUVYWYYYYYXYYVTYYYYWYYYZYYYYYZYYYY\UYYYWYY[YYYZZYVYYYYYYYYYYYY^YYWTYYWYXYSUXZVYYYYYZYWYTTYXUYYYYSYYYYYYYYYWYYSYYYYYYUTYZYY]YYYYXY\YTVYYYYY[YRUYYWXYYWWYYYSXY\YUXYYXVYYWZYY[XYUYYXXZYYYYYYU\YYYYYYVYUYYYVYYYXYWYYYYYYVYYVY[YYYVVYYYXVSYYUYYY\YYUXYYYWUSVYY^YY`YYVYXVYXYYYYYXYYXUYYYYYYYYWYYYYYZYYYYYUYYYTYYZYYYZ[YYYYYYYYYYYYYYXYY]VYYVYXYUUY[XYYYYYZYYYVTYWXYYYYUYYYYYYYYYWYYTYYY[YYWUY^YY_YYYY]Y^YVVYYYZYVYSVYYYXYYXUYYYUYYZYW[YYYTYYW[YYXZYVYYVZZYYYYYYU\Y\VYYYWYSYYYZYYYXYZYYYYYYYYY[Y`YYYYWYYY[WVYYZYYYXYYXZYYYXZWVYZYYY[YYYYXXYXYYYYYZYYYXYYYYXYYYXYYYYYZYYYYZXYYYWYYYYYYZ\YZYYYYYYYYYYYYWYY\WYYYYYYUV[][YYYYYYYZYWXYWXYYYYWYYYYYYYYYWYYXYYY]YYXWYYYYYYYYYXYZYTUYYY\YWYUWYYXXYYZXYYYXXYXYY^ZYXXYYYYYYXXYWYYW]YYYYYYYXZYYVYYYXYXYYY\YYYXY[YYYYYYXYY]Y]YYYVXYYY[TYYY[YYYWYYXWYYYXUXYYVWYY[YYWYXUYYYYYYYXYYWVYYYYWYYYYYYYYYYYYYYXXYYY]YYWYYYYYYWYYYYYYYYYYYY\YYVXYYYYVYWWXXVYYYYYYYXYWWYWXYYYYVYYYYYYYYYVYYUYYYWYYWUYZYYYYYYYWYWYWZYYYVY]YVWYYXVYYXZYYYVWYWYVVZYXVYYXXYY[YYVYYWWYYYYYYYWYYZZYYYXYYYYYVYYYXYXYYYYYYWYYVYVYYYWYYYYVWVYYWYYYYYYXXYYYYYYYYYYYYZYYYYZXYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYZYYYYYYYYYYYYYYYYYZYYYXY[YWYXYYYYYYYYYZYYXYXXYYYYXYYYYYYYYYXYYYYYYZYYZYYYYYYYYYYYY[YWXYYYZYXYWXYYXYYYYWYYYYYYYYYYYYXXYYYZYYXZYXYYYYYYYYYYYXYYYXYYYXYYYYYZYYYZYZYYYYYYZYYZYZYYYYXYYYYYYYYYYYYVYYYUYYYXQX[YSXYY`YYSYWUYXYYYYYVYYVTYYYYYYYYYYYYYYYYYYYVVYYY^YYWYYYZXYUYYYYYYYYYYYYaYYUWYYYYWYRVTXTYYYYYYYUYYTYZVYYYYVYYYYYYYYYSYYQYYYTYYPQY[YYXYYYYXYZYRYYYYUYaYTVYYYZYYVYYYYWXY]YWSYYYRYYWWYY^UYUYYXTYYYYYYYU[YWZYYYWYZYYYTYYYWYTYYYYYYUYYSYWYYYT^YYYRYRYYSYYYYYYXXYYYXXYXYYXYYZYYYYYYYYYYYYYYYYZXYYYYXYYYXYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYZYY[YYYYYYXYXYYYYYYXYXXYYXXYYYYYYYXYYXYYXYYXYYYYZYYXYYYYYXXYYYYYYYYXYZXYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYXYYYXYYYYYYYY[YYYEYYYWPNSYXcYYaYYQYSVYUYYYYYTYYTSYYYY^YYYTYYYYYYYYYYYQYYYSYYYYYYYYYTYYYYYYYYYYYYWYY^VYYTYVYRS[]SYYYYYYYWYYRY[XYYYYPYYYYYYYYYQYYQYYYXYYRTY]YYbYYYYaY^YRUYYY]YSYPXYY[^YYWQYYYNXY\YYY[YVNYYWYYYWSYUYYVVZYYYYYYP]YVWYYYTYPYYYXYYYXYWYYYYYYYYYYY`YYYXZYYY^YPYYSYYYZYYXXYYYZWXZYZ[YY[YYXYZYYXYYYYYXYY[XYYYY[YYYYYYYYYZYYYYYWYYYXYYZYYYZZYYYYYYYYYYYYYYZYYZYYYXYZYXYXYXYYYYYYYYYZXYZYYYYYXYYYYYYYYYXYYWYYYYYYXXYZYY[YYYYZY[YWXYYYYYXYWXYYY\YYXXYYYYYY[YYYYYYXYYX[YYYYYYYYYXYYYYYYYXYYZZYYYXYYYYYZYYYZYYYYYYYYYYYYY[YYYZXYYYXYYYYXYYYXYYYWYYYZUXZYWYYY[YYXYZXYXYYYYYYYYYXYYYYZYYYYYYYYYYYYYYZWYYYYYYYYYYYZYXYYYYYYYYYYYY[YYWYYYYYZYYXXZWYYYYYYYZYYWYYYYYYYWYYYYYYYYYWYYVYYYYYYXVY[YYYYYYYZY[YXYYYYZY[YWWYY[YYYWYYYYXXYZYXW[YZWYYXYYYZYYYYYZYZYYYYYYWZYYZYYYXYXYYYXYYYZYXYYYYYYXYYXYYYYYY\YYYYYYYYVYYYZYYWWYYYYWVXYX\YY^YYYY\XYWYYYYYYYYZWYYYYYYYYZYYYYYYYYYYYVYYYVYYZYYYZ[YXYYYYYYYYYYYYZYY[XYYXYYYYXX[YYYYYYZYYYYWYZXYYYYWYYYYYYYYYWYYVYYY[YYXWY^YY\YYYYZY]YWXYYYYYYYVWYYY[YYXXYYYYYY[YYZYYYWYYXZYYYYYYYYZYZYYYYYYY[YYZYYYWYXYYYYYYYZYYYYYYYYXYYYY\YYYZYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYW[YYYXZXWYZWYYYYYYYVYYWYYYYY[YYXXYYYYXYYYXYYYYYXYYYY[WYYYWYYXYYYYZYZYYYYYYYYYYYYVYYZVYYYYWYVW[][YYYYYYY[YWXYWXYYYYXYYYYYYYYYWYYYYYY^YYYXYYYYWYYYYTYYYTVYYY\YVYUWYYXXYYY[YYYXWYWYX^ZYVXYY[ZYYWVYXYYX\YYYYYYYXYYXWYYYYYYYYY[YYYXY\YYYYYYWYY]Y\YYYVVYYY\UYYYXYYYWYYXYYYYZZXXYYYYYZYYYYXYYXYYYYYZYYYXYYYYYYYYYYYYYYYYYYY[XYYYXYYZYYYY[YYYYYYYYYYYYYYXYY[XYYYYYYWWYZYYYYYYYYZYXXYXXYYYYXYYYYYYYYYYYYXYYYZYYYYYYYYYYYYYXYYYWXYYY[YXYWXYYYYYYYYYYYYYYYYX[YYYXYYXYYYYZYYYYYZYYYYYYYY[YXXYYYXYYYYYZYYYYYZYYYYYYXYYZYZYYYXYYYYZWYYYXYYYXYYWXYYYXWYXYXYYY[YYXYYWYXYYYYYWYYYXYYYYXYYYYYYYYYYYYYYXXYYYYYYWYYYYXYXYYYYYYYYYYYYYYYWXYYXYXYXXXYXYYYYYYYXYXXYWXYYYYYYYYYYYYYYWYYWYYYWYYXWYZYYZYYYYXYXYXYYYYVYYYXXYYXXYYXYYYYVXYXYXVYYXXYYXZYYWXYVYYVWYYYYYYYXXYZWYYYXYXYYYVYYYWYXYYYYYYXYYXYXYYYXWYYYVXXYYXYYYZYYXYYYYYYWWYZYYY\YYXYZXYXYYYYYYYYYXYYYYXYYYXYYYYYZYYYYYXYYYXYYYYYYY[YYYYYYYYYYYYYYWYY\WYYYYXYVWZ[ZYYYYYYYYYWXYWXYYYYXYYYYYYYYYXYYXYYY[YYYXY[YYZYYYYZYYYVWYYYXYXYWWYYYYYYYXYYYYYYYYX\YYXXYYZXYYXZYWYYX[ZYYYYYYXZYYXYYYXYXYYYZYYYXY[YYYYYYYYY\Y]YYYYWYYYZWYYY[YYYYYYXYYYYYVYYYXZYY\YYXYZWYXYYYYYWYYZXYYYYZYYYYYYYYYYYYYYWXYYYYYYYYYYZXYXYYYYYYYYYYYY\YYXYYYXYYYYYXYWYYYYYYYZYZWYXYYYYYXYYYYYYYYYXYYVYYYVYYWXY\YYZYYYYXYXYWYYYYXYYYWXYYYZYYXYYYYXYYYYZWXYYXYYYZYYYYYYYYYWYYYYYYYXYYZYYYYXYYYYYWYYYYYXYYYYYYXYYWYYYYYYYYYYW[YYYXYYYYYYXXYYYYYYYYYYYYZYYYYZXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYZYYXYXYYYXZYYYYYYYYZYZYYYYYYYYYYYYYYYYYYYYYYYYYXYYXXY[YYZYYYYYYYYYYYYYXYXYXXYYYYYYXYYYYYYYYYYXYYYYYYYZYYXYYYYYXXYYYYYYYYXYZYYYYXYYYYYXYYYYYYYYYYYYYYYYYZYYYYXYYYWYZYYXYYYYYYYWYYYXZXVYXYYY[YYYYZXYXYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYWYYXYYYYZYXYYYYYYYYYYYYXYY[XYYXYYYWWYZYYYYYYYYYYZXYWXYYYYXYYYYYYYYYXYYYYYYYYYXXYZYY\YYYYXYYYWYYYYZYWYXXYYXXYYXWYYYYYYYYY[ZYYXYYXZYYXYYXYYYZYYYYYYYYYYZXYYYWYYYYYYYYYYYZYYYYYYYYYZYZYYYYVYYYYXYYYYYYYZYYXWYYYXXWXYX[YY\YYWYZWYXYYYYYVYYXWYYYYYYYYYYYYYYZYYYYXWYYYVYYYYYYZZYXYYYYYYYYYYYYYYYZVYYWY[YVXWYXYYYYYZYXYYWYYWYYYYVYYYYYYYYYXYYVYYYYYYWXYZYY\YYYYYY[YVWYYYXYXYVWYYXYYYXYYYYXYY[YXZWYXXYYXYYYXXYWYYXXZYYYYYYYYYYZYYYXYWYYYXYYYXYYYYYYYYYYYWYZYYYYXYYYXXWYYWYYYYYYXXYYYYXXYYYYYYZYYYYZYYYYYYYYYYYZYYYYYZYYYYYYYYYYYYYYXYYYYXYYYYYYZZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYXYYYYYXYYYYYYYYYYYYXYYYZYYZXY[YYZYYYYZYYYXYYYYZYXYWXYYYYYYYYYYYYYYXYYYZYYYYYYZYYYYYXYYXYYYYYYYYXYYZYYYYYYYYYYZYYYYYZYYYYYYYYYYYZYYYYZYYYYYZYYYYYYYYYWXYYYXWXWYXYYY[YYXYXXYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYZYYWXYYXYXYYXXXXYYYYYYYXYXXYWXYYYYXYYYYYYYYYXYYWYYYXYYXWYZYY[YYYYXYWYXYYYYWYZYXXYYXWYYXYYYYWXYXYWWYYXXYYXYYYYXYWYYWXZYYYYYYXYYZYYYYXYXYYYWYYYWYXYYYYYYXYYXYYYYYXXYYYWXYYYXYYYYYYXYYYYXWZYYXZYY[YYXYZXYXYYYYYXYYZXYYYYYYYYYYYYYYYYYYYYWYYYXYYYYYYZYYXYYYYYYYYYYYYZYYXXYYYYZYYXYYXYYYYYYYXYYXYXYYYYYXYYYYYYYYYWYYWYYYXYYWXY[YY[YYYYXYZYXYYYYYYYYWXYYXZYYXYYYYWYYYYYWYYYXYYYYYYYXYXYYXXYYYYYYYXYYZYYYYXYYYYYXYYYYYYYYYYYYXYYXYYYYYYYYYYXZYYYXYYYYYYYWYYYYXXXYXXYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYYYYYYXYYYYYYYYYYYYYYYXYYYYYXYYYYYXYYYYYYYYYXYYXXYYYYXYYYYYYYYYYYYYYYYXYYYXYZYYYYYYYXYXYYYYYYWYYYYYYYYXYYYYYYYXXYWYXXYYYXYYXXYYYYYXYYXXYYYYYYYYYYYYYYYYYZYYYXYYYXYXYYYYYYXYYYYYYYYXXYYYXXYYYXYYY^YYXWYYYYRTWYX_YYaYYUYZTYXYYYYYYYYYTYYYY_YYYXYYYYY\YYYY[RYYYVYY\YYY[\YUYYYYYYYYYYYY^YYXWYYUY[YVV\`WYYYYYZYYYWRY[[YYYYSYYYYYYYYYVYYTYYYYYYVRY`YY`YYYY_Y^YSWYYY`YYYQXYYZaYYVSYYYVXYZYZZ[Y[TYYU\YY]WYXYYZZ[YYYYYYUbY[^YYYUYSYYYZYYY\YWYYYYYY\YYYYbYYYV]YYY]XWYYSYYYYYYXXYYYYWWXYY[YY\YYXYXWYXYYYYYWYYZWYYYY[YYYYYYYYYYYYYYZWYYYXYYXYYYZZYYYYYYYYYYYYYYZYYZXYYXYYYXXYYXYYYYYZYXYZWYXYYYYYXYYYYYYYYYYYYWYYYYYYWXY[YY]YYYYZYZYWXYYYYYXYVYYYXZYYXWYYYWYYZYXYXYYWYYXZYYYXYWYYWXZYYYYYYYZYYXYYYXYXYYYXYYYXYYYYYYYYXYYXYZYYYYYYYYXYYYYXYYYWYYXZYYYYYXYYXXYYZYYYYXYYXYYYYYZYYXYYYYYYYYYXYYYYYXYYYY[XYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYWYYYYXYWX[[YYYYYYYYYYXYYXXYYYYXYYYYYYYYYXYYYYYY[YYXWYYYYXYYYYUYYYVWYYYZYXYWXYYXXYYXYYYYYXYXYX\ZYXXYYZYYYXXYXYYXZYYYYYYYXZYYXYYYXYYYYYZYYYYYZYYYYYYWYYZYZYYYWXYYY[WXYYXYYYYYYXXYYYYXVWYX[YY]YYWYZWYXYYYYYXYYZXYYYYXYYYYYYYYYYYYYYXXYYYXYYXYYYZZYYYYYYYYYYYYYYWYY[XYYXYYYWWXYXYYYYYYYYYYXYWWYYYYXYYYYYYYYYWYYWYYYYYYXXYZYY^YYYYYYXYXXYYYXYWYVXYYXWYYYYYYYYXYXYXYXYXXYYXYYYYYYVYYVXZYYYYYYXXYYXYYYXYXYYYXYYYWYYYYYYYYXYYYYZYYYXXYYYYXYYYYYYY[YYWXYYYWVVUYV\YY`YYXYYVYXYYYYYVYYXWYYYYYYYYXYYYYYYYYYYWUYYYVYYXYYYZYYXYYYYYYYYYYYYXYYWXYYVYXYXVYXXYYYYYZYWYXWYXYYYYYWYYYYYYYYYVYYVYYYXYYXVY\YY^YYYYZYZYYWYYYXYWYUWYYYWYYWXYYYVXYYYXWYYYWYYWZYYXXYVYYVWZYYYYYYXZYYWYYYXYUYYYWYYYVYXYYYYYYXYYXY[YYYWXYYYXYXYYWYYYXYYVWYYYUSUVYTWYY`YYTYUVYXYYYYYVYYUUYYYYTYYYYYYYYYYYYYYXTYYYZYYUYYYZYYWYYYYYYYYYYYY^YYTSYYWYYYVVUWVYYYYYZYVYVVYVUYYYYTYYYYYYYYYUYYSYYYVYYUTY[YY]YYYYXYVYWXYYYWY]YTVYYVUYYWXYYYRVYWYVSYYZTYYVXYY[UYQYYVUZYYYYYYWZYYXYYYXYUYYYTYYYTYXYYYYYYVYYTYWYYYS\YYYTWSYYUYYY[YYXYYYYXYTVYX[YY]YYWY[WYWYYYYY[YYYVYYYYZYYYYYYYYYZYYYYZWYYYVYY[YYYZ\YYYYYYYYYYYYYYXYY\VYYWYZYTV[_[YYYYYYY[YXVYZXYYYYUYYYYYYYYYWYYWYYY^YYXWY]YY[YYYYZY]YTWYYY^YWYRVYYZ]YYWVYYYYWYZYY]YYYUYYW[YYZZYXYYY^ZYYYYYYW\YYYYYYVYUYYY]YYY\Y]YYYYYY\YY\Y`YYYXYYYY\WZYYWYYYXYYWXYYYXWWWYXZYY]YYYYXXYXYYYYYXYYYXYYYYXYYYWYYYYYZYYYYXWYYYWYYYYYYZYYYYYYYYYYYYYYYWYYYXYYWYXYXWWYXYYYYYYYWYXXYWXYYYYWYYYYYYYYYXYYWYYYWYYXXYZYY^YYYYYYYYXXYYYXYWYWXYYXWYYXXYYYWYYYYXWXYXXYYXYYYWWYWYYVWZYYYYYYXXYYUYYYXYWYYYXYYYVYXYYYYYYXYYXYYYYYYXYYYWWWYYXYYYXYYXXYYYXWYXYWXYY[YYYYXWYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYWXYYYZYYXYYYYXYXYYYYYYYYYYYYZYYXXYYXYWYYYXYYYYYYYYYXYXYYXYYYYYXYYYYYYYYYWYYXYYYWYYXWYYYYYYYYYXYWYYXYYYVYZYXXYYXWYYXYYYYWXYXYWWYYXXYYXXYYWXYWYYWXYYYYYYYYWYYXYYYYYYYYYWYYYWYXYYYYYYXYYXYXYYYWXYYYWYYYYXYYYVYYT]YYYV^SRY[UYY^YYXYY[YUYYYYY^YYZVYYYYXYYYUYYYYYYYYYY^YYYYVYYYYYYYaYZYYYYYYYYYYYYSYYbUYYXY[YQT_b]YYYYYYYbYVVYTUYYYYWYYYYYYYYYWYYXYYYdYYTVYYYYYYYYYWYWYPUYYY`YTYUTYYWXYY\WYYYVVYXYVg]YTUYYXXYYVYYSYYUdZYYYYYYV\YXVYYYXYWYYY`YYYYY`YYYYYYYYYcYaYYYTRYYY_TXYY^YYYXYYXXYYYYWWXYXZYY[YYXYXXYXYYYYYXYYYXYYYYXYYYXYYYYYYYYYYXXYYYXYYXYYYZYYXYYYYYYYYYYYYYYYYXYYYYXYXXXYXYYYYYYYZYXYYXXYYYYXYYYYYYYYYXYYXYYYXYYYWY[YY[YYYYYYYYXYYYYXYYYWXYYYYYYXXYYYXXYYYYYYYXWYYXYYYXYYXYYXYZYYYYYYXXYYYYYYYYXYYYXYYYWYZYYYYYYXYYYYXYYYZYYYYXXXYYYYYYUYYV]YYYX]WVYZVYY[YYZYV[YTYYYYY^YYXXYYYYYYYYXYYYYYVYYYY]WYYYWYYXYYYY^YXYYYYYYYYYYYYVYY[WYYXYZYVV[_ZYYYYYYY^YVXYWXYYYYXYYYYYYYYYVYYYYYY_YYVXYVYYXYYYYTYWYVVYYY]YWYVWYYXWYYZXYYYXXYVYW^\YUWYYYZYYWXYXYYV_YYYYYYYW[YWWYYYXYXYYY^YYYXY\YYYYYYWYY\Y^YYYUVYYY\UYYYYYYYYYYXXYYYXWXXYXYYY[YYXYZWYXYYYYYWYYZXYYYYXYYYXYYYYYYYYYYXXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYWYYXXYXYYYYYYYYYXWYWWYYYYXYYYYYYYYYXYYWYYYWYYXWYZYY[YYYYYYWYXYYYYXYXYXYYYXXYYXYYYYWYYYYXWXYYXYYYZYYWXYXYYVXYYYYYYYWXYZXYYYXYXYYYWYYYWYYYYYYYYXYYXYXYYYYYYYYWYYYYXYYYYYYXXYYYYXXXYYYYYZYYYYYXYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYZYYYYYXYYXYYYYYYYYYYYYXXYXYYYYYXYYYYYYYYYYYYXYYYYYYYXYYYY[YYYYYYYYXXYYYYYXYXYYYYXYYYXYYYXYYXYYZYYXXYYYYYYYXYXYYWYYYYYYYYYYYYWYYYXYXYYYYYYYXYZYYYYYYYYYZYZYYYYYYYYYWYYYYYYYZYYXXYYYYWYYYXZYYZYYXYZXYYYYYYYXYYZXYYYYZYYYYYYYYYZYYYYXXYYYXYYYYYYYZYYYYYYYYYYYYYY[YYXYYYZYZYZXYYXYYYYYYYXYYYYYZYYYYXYYYYYYYYYXYYWYYYYYYYXY\YYZYYYYYYZYXYYYYZYYYXWYYYYYYXYYYYYYYZYYXYYYXYYYZYYYZYYYYZXYYYYYYYXZYZZYYYXYYYYYXYYYZYYYYYYYYZYYWYYYYYZZYYYYYYYYWYYYZYYXXYYYYWWXYY[YY\YYYYZWYXYYYYYXYYYXYYYYZYYYWYYYYYYYYYYXXYYYWYYYYYYYYYYYYYYYYYYYYYYZYYZYYYXYXYXXYYXYYYYYYYXYYXYXXYYYYXYYYYYYYYYXYYXYYYXYYYXYYYY[YYYYZYZYWWYYYXYXYWXYYXZYYXXYYYXYYXYYYXYXWYYXZYYXWYWYYWYYYYYYYYXYYZXYYYXYXYYYXYYYXYYYYYYYYYYYYYZYYYYWYYYXYYYYXYYYZYYWXYYYYWWXYYZYY\YYXYXXYXYYYYYXYYYXYYYYZYYYXYYYYYYYYYYYWYYYXYYXYYYZYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYXYYYYYYYXYYXYWXYYYYXYYYYYYYYYXYYXYYYYYYXXYZYY[YYYYZYXYYYYYYYYXYWYYYYYYYXYYYYWYYXYYYYYYXYYXZYYXWYWYYXXZYYYYYYXYYYXYYYXYYYYYXYYYWYYYYYYYYYYYYYYYYYYYYYYXXYYYXYYY]YYUVYYY\QSXYW`YY`YYTYYUYWYYYYY[YYVRYYYYaYYYWYYYYYYYYYY]RYYYYYYXYYYZ_YRYYYYYYYYYYYYaYYQZYYVYYYXQ_cVYYYYYYYYYTQY[`YYYYRYYYYYYYYYTYYSYYYXYYTOY^YY]YYYYbY[YSYYYYeY\YNXYY_]YYWRYYYRWYXYZUaY\QYYW[YY_VY[YY]W[YYYYYYOcYY[YYYWYSYYYZYYYYYXYYYYYY[YYXY^YYYVbYYY_UVYYOYYYYYYVXYYYYRVXYVYYY]YYWYYWYZYYYYYZYYXUYYYYYYYYXYYYYYZYYYYZVYYYYYYXYYYZ[YWYYYYYYYYYYYY^YYUZYYYYYYXVZ]WYYYYYYY\YWUYY[YYYYVYYYYYYYYYVYYTYYYVYYVTY_YYYYYYY[YZYW[YYY[Y^YVXYY[VYYXXYYYVWYYYWU]YZUYYY[YY\YYYYYYWZYYYYYYU\Y]YYYYYYUYYYWYYYYYZYYYYYYZYYXYZYYYY\YYYZWWYYWYYYYYYWWYYYYVXXYX[YY\YYWYZWYXYYYYYXYYYXYYYY[YYYYYYYYYYYYYYYWYYYWYYYYYYZYYXYYYYYYYYYYYYYYYYYYYXYYYYXXZXYYYYYZYXYZWYYZYYYYXYYYYYYYYYXYYXYYYYYYXWY[YY\YYYYXYZYXXYYYZYWYWXYYYYYYXXYYYWYYYYYXYYXXYYXYYYYXYXYYXXZYYYYYYXZYYYYYYXYXYYYXYYYXYXYYYYYYXYYWYYYYYXYYYYXXXYYWYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYYYXWXYY[YY\YYXY[XYWYYYYYXYYYXYYYY]YYYWYYYYYYYYYYYWYYYWYYZYYYZZYXYYYYYYYYYYYYYYYZXYYXYZYWXZ[YYYYYYYYZYYWYYYYYYYXYYYYYYYYYYYYVYYYYYYWXY[YYZYYYYZY[YVXYYY\YXYVXYYY[YYXWYYYYYYYYZ[YYYVYYXZYYYYYXYYY[ZYYYYYYY[YXZYYYWYWYYYZYYYZYZYYYYYYZYYZY\YYYYYYYY[YZYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYXXXYYXYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYXYYYYYYYXYYYYXYYYYYXYYYYYYYYYXYYXYYYYYYYXYZYY[YYYYYYYYYXYYYXYXYYYYYYXYYYYYYYXYYXYYXYYYYYYYYYYXXYXYYWXYYYYYYYXYYYXYYYYYYYYYXYYYXYXYYYYYYXYYYYYYYYYYYYYXXYYYXYYY[YYXXYYYXSSXYX^YY]YYUYYXYYYYYYYYYYYVYYYY[YYYXYYYYY[YYYY[TYYYVYYXYYYZ[YWYYYYYYYYYYYYZYYXXYYVYZYWV[\WYYYYYZYZYWTYYZYYYYUYYYYYYYYYXYYTYYYYYYXVY]YY^YYYY]YZYVWYYY\YZYUXYYZXYYXUYYYTZYZYWXZY[UYYX\YYZXYVYYXXZYYYYYYU^Y[YYYYXYRYYYYYYYWYXYYYYYYZYYYY_YYYY]YYY[WWYYVYYYZYYYXYYYYYYZYYYYYYYYYYZYYYYYYYYXYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYYYYYYYYYYYYZYYYYYXYYYYYYYYYZYYZYYYZYYYXYZYYYYYYYZYYYYZYYYYYYYXXYYYYYYXYYYYYYYYYZXYYYYYYYZYYYZYYYYYYYYYYYYYYXYZZYYYYYZYYYYYYYZYZYYYYYYYYYYYZYYYYYYYYXZZYYYYYYYYYVWYYYXVXXYXZYY\YYXYXWYXYYYYYWYYXXYYYYXYYYYYYYYYZYYYYXXYYYXYYXYYYYYYXYYYYYYYYYYYYZYYWYYYXYXYXXXYXYYYYYYYXYYXYXYYYYYWYYYYYYYYYVYYWYYYWYYYWYZYYZYYYYYYYYXXYYYXYYYWXYYYVYYXYYYYVXYYYYWYYYXYYXZYYXXYVYYVXYYYYYYYWXYYWYYYYYWYYYWYYYVYYYYYYYYXYYXYXYYYXYYYYWXWYYWYYY[YYYWYYYYYWWYZZYY[YYXY[WYXYYYYYYYYYXYYYY\YYYYYYYYYZYYYYYWYYYWYYZYYYZ[YYYYYYYYYYYYYYWYY]XYYYYYYWXZ\ZYYYYYYY[YYWYYYYYYYVYYYYYYYYYXYYXYYY\YYYWY\YYZYYYYZY[YVWYYY[YWYWWYYZ[YYXWYYYZXYYYY\ZYYVYYXZYYXYYYYYX[ZYYYYYYX[Y[ZYYYVYWYYY[YYY[Y[YYYYYY[YY[Y^YYYZYYYYZW[YYYYYYWYYYXYYYYZXXYXYYYZYYYYYXYXYYYYYYYYZYYYYYZYYYYYYYYYZYYYY\WYYYXYYYYYYY\YWYYYYYYYYYYYYZYYZXYYYYZYWXZ[YYYYYYYYZYXYYYXYYYYWYYYYYYYYYYYYYYYY\YYXXY[YYXYYYYYYZYVXYYY\YYYXWYYYZYYXXYYYYYYYYY\ZYYXYYYZYYZYYXYYY\YYYYYYYY\YYYYYYWYYYYYZYYYYYZYYYYYYXYY[YZYYYXYYYYZWZYYZYYYZYYYXYYYYYYYYZYYYZYYYYZYYYYYYYYXYYZYYYYYZYYYZYYYYYZYYYYYXYYYXYYZYYYYZYXYYYYYYYYYYYYZYY[XYYYYZYXYYYYYYYYYYYYYXXYYYYYYYWYYYYYYYYYYYYXYYY[YYYXY[YYYYYYYYY[YWXYYYZYXYXWYYYZYYXYYYYZYYZYY[YYYXYYYZYYYYYYYYZZYYYYYYYZZYZZYYYXYZYYYYYYYZYYYYYYYYYYYZY[YYYYXYYYYXYYYYYYYXYYVVYYYXVXUYUYYY`YYWYUWYXYYYYYVYYYXYYYYWYYYWYYYYYZYYYYVWYYYXYYVYYYZVYXYYYYYYYYYYYYWYYWWYYVYTYXXWXWYYYYYZYWYWXYVWYYYYWYYYYYYYYYWYYWYYYUYYWWYZYY^YYYYWYWYXXYYYRYVYXXYYWUYYYYYYYTWYZYXUXYWWYYXWYYTVYUYYTWZYYYYYYWWYWWYYYXYUYYYTYYYUYWYYYYYYWYYXYXYYYWUYYYVVXYYYYYYYYYWWYYYXVYVYWXYY\YYWYWVYXYYYYYWYYXXYYYYWYYYXYYYYYYYYYYXXYYYXYYWYYYYXYXYYYYYYYYYYYYYYYWWYYXYXYXXXXXYYYYYYYXYXXYVWYYYYXYYYYYYYYYXYYWYYYWYYXWYYYYZYYYYWYVYXYYYYWYXYWXYYWXYYXYYYYVXYXYXWXYWXYYXYYYWWYWYYVWZYYYYYYXWYYYYYYXYXYYYVYYYVYXYYYYYYXYYXYWYYYXUYYYWXWYYWYYYYYYYYYYYYVYYYWXYY[YYXYZWYYYYYYYXYYYWYYYYYYYYYYYYYYZYYYYYWYYYXYYYYYYYWYYYYYYYYYYYYYY[YYWYYYZYXYXWZZWYYYYYYYYYXWYXZYYYYVYYYYYYYYYWYYWYYYXYYWWY\YYZYYYYXYYYW[YYYYYZYWWYYZXYYWZYYYWXYYYYWYYXWYYYYYYXZYZYYZXYYYYYYYWXYZYYYYXYXYYYXYYYYYZYYYYYYYYYXYWYYYZZYYYYZXYYVYYYYYYVXYYYVVUUYV\YY_YYVYYUYWYYYYYVYYXWYYYYXYYYVYYYYYYYYYYWWYYYWYYWYYYZXYYYYYYYYYYYYYYWYYWUYYVYWYWWWZVYYYYYYYWYWVYXVYYYYVYYYYYYYYYVYYWYYYUYYWVY[YY^YYYYYYZYXWYYYVYXYVWYYWXYYXXYYYUWYYYWUWYXVYYWYYYYWYUYYVWZYYYYYYWYYXYYYYWYUYYYTYYYVYXYYYYYYXYYVYXYYYVYYYYWXXYYWYYYYYYYXYYYYYYXYYYYYZYYYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYZYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYXXYYYYYXYXYYYYZYYYXYYYXYYYYYZZYYYYYYYYYYYYYYYXZYYYYYYYYZYXXYYYXYYYYYYYYYYYYYYYYYYXYYZYYYYYYYYYYYXYYYYYYYXYYWVYYYWSWWYT\YYbYYVYWVYYYYYYYUYYWUYYYYYYYYWYYYYYYYYYYVTYYYXYYXYYY[WYVYYYYYYYYYYYY\YYWVYYVYWYUUXYUYYYYYZYWYWSYWVYYYYTYYYYYYYYYUYYRYYYTYYTRY]YY_YYYYYYYYVYYYYUYZYUVYYWUYYWXYYYTYY[YVTXYXTYYWYYYZUYVYYUU[YYYYYYW[YYXYYYWYUYYYTYYYVYVYYYYYYVYYVYXYYYVYYYYVYTYYVYYYYYYWVYYYXXXVYWYYY^YYXYXWYXYYYYYWYYXYYYYYXYYYXYYYYYYYYYYVXYYYVYYXYYYYXYXYYYYYYYYYYYYUYYXXYYXYWYXXXXXYYYYYZYWYXYYWXYYYYXYYYYYYYYYWYYXYYYXYYXXYZYY_YYYYXYXYXXYYYVYWYXXYYXWYYXYYYYWXYYYXWWYWXYYXXYYVYYVYYVWZYYYYYYYVYWWYYYXYXYYYVYYYVYXYYYYYYXYYXYXYYYYVYYYWYYYYXYYYYYYXXYYYYXXXYXZYYZYYYYYYYXYYYYYXYYZYYYYYYYYYZYYYYYYYYYYYXYYYXYYYYYYYZYXYYYYYYYYYYYYYYYYWYYYYZYYYXYYYYYYYYYYYXYYYXYYYYXYYYYYYYYYYYYXYYYYYYYXYZYYYYYYYYYZYXXYYYYYYYXXYYYZYYYYYYYYYYZYXXYYYYYYYYYYYXYXYYYYYYYYYYYXYYYXYYYXYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYXXYYYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYYYXYYZYYYYYZYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXXYXYXXYYZYYYYYWYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYXYYYY[YYXYYYYYYYYYYYYYYYYYYYZYYXYYYXYXYYYYXXYYYYYYYXYXYYYYYYYYYYYYYYYYYYXYYYYYYXYYXXYZYYYYYYYXYXYYZYYYWYYYXXYYYXYYXYYYYXYYXYYWXYYYYYXYYYYYYXYYXXYYYYYYYXXYZYYYYXYXYYYWYYYXYYYYYYYYXYYXYXYYYYYYYYXZYYYXYYY[YYXWYYYXUVXYY]YY]YYWY[WYXYYYYYXYYXWYYYYZYYYYYYYYYYYYYYYVYYYXYYXYYYZZYXYYYYYYYYYYYY\YYXYYYYYXYXWZ[XYYYYYYYYYXWYYYYYYYWYYYYYYYYYXYYVYYYYYYYUY]YY[YYYY[Y\YVXYYY[Y[YUWYYZZYYWWYYYWXYZYYXZY[VYYXZYY[ZYXYYZYZYYYYYYX[YXXYYYXYWYYYXYYYWYYYYYYYYYYYYY]YYYY\YYYXYYYYWYYYXYYXXYYYXXYXYXXYY[YYXYYVYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYY[YYXYYYYYYXYYYYYYYYYYYYZYYXYYYYYWYYXXYYYYYYYYYYYXYYXXYYYYXYYYYYYYYYXYYXYYYXYYXWYYYYXYYYYWYXYXYYYYWYZYXWYYXYYYXYYYYXXYXYXWYYWXYYXYYYXXYXYYWXYYYYYYYXXYYXYYYXYYYYYWYYYXYXYYYYYYXYYXYXYYYXYYYYWYXYYXYYY\YYWVYYYWVWVYX]YY^YYVYYVYXYYYYYWYYYVYYYYZYYYVYYYYY\YYYYXUYYYUYYYYYYYYYXYYYYYYYYYYYYXYYXXYYWYWYWWZ\WYYYYYZYWYWVYXXYYYYVYYYYYYYYYWYYVYYYYYYXVY]YY^YYYY\YZYWWYYYZYWYTWYYYZYYXVYYYVWYYYYXYYYVYYX[YYXXYVYYUYZYYYYYYV\YYZYYYWYUYYYXYYYXYYYYYYYYZYYXY]YYYZZYYYZWXYYWYYYZYYWYYYYXXXXYX[YY[YYWYYWYXYYYYYXYYYXYYYYZYYYYYYYYYZYYYYYVYYYVYYYYYYZZYYYYYYYYYYYYYYYYYZWYYXY[YYWYZXYYYYYZYWYYXYYYYYYYXYYYYYYYYYXYYXYYYYYYYXYYYY\YYYYZY[YXWYYY\YVYVXYYXZYYXWYYYXYYXYZYYYYWYYW[YYXVYWYYXYZYYYYYYX[YYYYYYXYXYYYYYYYYYYYYYYYYYYYXY[YYYWZYYYZWYYYWYYYXYYWXYYYY[YWYYYYY[YYYYZYYXYYYYYZYYYXYYYYZYYYYYYYYYXYYYYZXYYYWYYYYYYZ]YXYYYYYYYYYYYYYYY]XYYYYZYWXZ\ZYYYYYYYZYXXYXXYYYYWYYYYYYYYYXYYXYYY]YYZXY[YYYYYYYYY[YWWYYY[YWYWWYYZZYYYWYYYYXYZYY\ZYXXYYYZYYXYYYYYY\ZYYYYYYY[YYYYYYVYYYYY[YYYZY[YYYYYYYYY]Y[YYYZXYYYZVYYYXYYYZYYXXYYYYUWYYYYYY[YYXYYYYYYYYYYYYYZWYYYYZYYYYYYYYYZYYYYZVYYYYYYXYYYZ[YXYYYYYYYYYYYY]YYXZYYYY[YYXYYYYYYYYYY[YXWYZ[YYYYXYYYYYYYYYXYYWYYYYYYWWY\YYYYYYY[YZYXYYYY[Y]YXXYYZYYYYYYYYWYYZYYY[Y[XYYY[YY[ZYXYY[YYYYYYYYW]Y[ZYYYYYWYYYYYYYYYZYYYYYYZYYYY[YYYZ[YYYYXYYYYYYYZYYXXYYYYXWYYYZYYZYYXYXYYYYYYYYYYYYXYYYYZYYYYYYYYYZYYYYYXYYYXYYXYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYXYXYYYYYYYYYXYXYYYYYYYYXYYYYYYYYYYYYXYYYZYYXXYZYYZYYYYZYZYXXYYYYYYYXYYYYYYYXYYYYXYYYYZZZYYXYYYZYYZYYYYYYYYYYYYYYXZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYWYYYYYYY[YYYCYYYWPOPYTZYYeYYRYRTYVYYYYYUYYQSYYYYWYYYPYYYYYYYYYY\QYYYUYYVYYYZYYTYYYYYYYYYYYYSYYYTYYVYWYSSZaQYYYYYXYUY[RYVUYYYYPYYYYYYYYYPYYSYYYRYYTTYZYYhYYYY\YSYVUYYY_YSYOXYYZYYYWRYYYNUYTYYT\YYPYYXUYYZQYSYYPUZYYYYYYQ\YWTYYYTYPYYYSYYYUYSYYYYYYVYYSYSYYYSZYYY_YRYYPYYYXYYXYYYYXYYXYYXYYYYYYYYWYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYYYYXYYYYYYYYYYYYYYYYYXYYYYYXYXXZYYYYYYYYYYYXYYXYYYYYYYYYYYYYYYXYYYYYYYYYXXYYYYXYYYYWYXYXXYYYXYXYXXYYXYYYYZYYYXYYXYXYXYXYYYYYYYXXYXYYXYYYYYYYYYYYZYYYYYYYYYYXYYYXYZYYYYYYXYYYYXYYYWXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYXYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYXXYYXYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYXYYXWYYYYXXXYX[YY[YYXYYXYWYYYYYXYYZWYYYYZYYYXYYYYYXYYYYZWYYYVYYZYYYZYYYYYYYYYYYYYYYXYY[WYYXYXYVWYZZYYYYYZYXYXWYYXYYYYWYYYYYYYYYXYYVYYY[YYXWYZYY]YYYY[Y\YUWYYYYYWYVWYYXZYYXWYYYXYY[YY]XYXWYYYXYYXZYXYYV[ZYYYYYYXZYXYYYYWYXYYYYYYYYYZYYYYYYWYYZY[YYYZWYYYZWXYYZYYYZYYWYYYYXVXWYX[YY^YYXYYWYXYYYYYXYYXXYYYYYYYYXYYYYYZYYYYXWYYYWYYYYYYZYYXYYYYYYYYYYYYYYYYXYYXYYYYWZYYYYYYYZYYYYXYXXYYYYWYYYYYYYYYWYYWYYYYYYWVY\YY^YYYYZY[YVXYYYYYWYWWYYXZYYXXYYYWYYZYYYYYYWYYWZYYXYYVYYYXZYYYYYYXYYZXYYYXYWYYYWYYYYYYYYYYYYYYYYY\YYYYXYYYXYXYYYYYYWYYWZYYYXWXWYYWYYYYYYYYXYXYYYYYZYYXYYYYYYYYYWYYYYYXYYYYZXYYYVYYXYYYYWY[YYYYYYYYYYYYVYYXVYYYYXYVX[[ZYYYYYYYXYXXYWXYYYYXYYYYYYYYYWYYYYYYZYYWWYYYYYYYYYUYXYUWYYYZYVYWVYYWVYYWYYYYXXYXYX]XYVXYYZYYYVUYXYYVZYYYYYYYWXYXWYYYXYYYYYYYYYXY[YYYYYYVYYZYYYYYWVYYY[WXYYWYYYYYYXXYYYYYXXYXZYYZYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYYXYYYYYYYYYYYYXYYYYYXYYYYYYYYYXYYYYYYXYYYXYZYYZYYYYYYZYYXYYYXYXYXYYYYXYYYYYYYYYYYYYYXYYXYYYYYYXXYYYYXYYYYYYYYYXYYXYYYYYYYYYXYYYXYYYYYYYYXYYYYYYYYYXYYYXYYYYYYYYXYYWXYYYXXYWYXZYY[YYYYZXYXYYYYYXYYZYYYYYZYYYXYYYYYYYYYYXXYYYWYYZYYYYZYYYYYYYYYYYYYYXYYZXYYYYWYXXYZXYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYXY[YY[YYYYXYZYWYYYYXYWYVWYYXYYYXYYYYXYYZYYZYYWXYYXYYYWYYXYYYYYYYYYYYXYYZXYYYXYXYYYYYYYXYZYYYYYYXYYYYZYYYZWYYYYXZYYXYYYZYYUVYYYWUWTYW[YY`YYVYUWYXYYYYYVYYVWYYYYVZYYXYYYYYZYYYYVVYYYUYYWYYYZWYWYYYYYYYYYYYYWYYWWYYVYUYWVXXWYYYYYZYWYVWYVWYYYYVYYYYYYYYYWYYUYYYWYYXVYYYY`YYYYZYXYXWYYYVYVYUXYYXVYYWWYYYSYYYYWWWYXVYYXZYYVWYTYYSVZYYYYYYWXYWUYYYXYTYYYUYYYTYXYYYYYYWYYYYZYYYYVYYYVVVYYWYYYWYYXXYYYXXYXYXXYY[YYXYXWYWYYYYYYYYXXYYYYXYYYXYYYYYXYYYYXXYYYZYYWYYYYZYXYYYYYYYYYYYYZYYXXYYXYWYXXZZXYYYYYYYYYXXYWXYYYYXYYYYYYYYYXYYXYYYWYYXWYYYYYYYYYWYWYXYYYYWYYYXXYYXXYYXXYYYXXYXYXXYYWXYYXYYYWYYWYYWYYYYYYYYXXYYYYYYXYYYYYWYYYXYXYYYYYYWYYXYXYYYWXYYYWYXYYXYYYXYYWXYYYXWYXYWYYY[YYXYYWYYYYYYYXYYXXYYYYXYYYZYYYYYZYYYYXYYYY[YYXYYYYYYXYYYYYYYYYYYY\YYWZYYYYXYXXXXXYYYYYYYYYYXYYZYYYYYYYYYYYYYYWYYWYYYWYYXVYZYYYYYYYWYXYXYYYYWY[YWXYYYWYYXZYYYWYYYYXWZYWXYYXZYYYWYWYYWXYYYYYYYXXYZYYYYYYYYYYWYYYXYXYYYYYYYYYXYXYYYXYYYYWYWYYXYYYaYYYPYYY`IN\YTgYYeYYOY[YYXYYYYY[YYWNYYYYbYYYYYYYYYWYYYYaLYYY[YYXYYY[aYKYYYYYYYYYYYYjYYQ[YYTYYYRPbdQYYYYYYYYYRKY]dYYYYMYYYYYYYYYRYYJYYY[YYMJYaYY\YYYYcYbYJZYYYjYdYGVYYbbYYTMYYYPVY_Y[VdY_PYYTbYYdVYYYYaY[YYYYYYIlYX^YYYSYKYYY\YYYZYTYYYYYYWYYZYdYYYViYYY`SSYYKYYYXYYXZYYYYYWYYYWYYZYYXYZXYXYYYYYXYYZXYYYYYYYYYYYYYYZYYYYZXYYYYYYYYYYY\YYYYYYYYYYYYYY[YYZWYYZYYYWXZ[YYYYYYYYZYWXYWXYYYYVYYYYYYYYYXYYWYYY[YYXVY[YYWYYYYYYYYVXYYYXYZYVVYYXYYYYXYYYXXYXYW[ZYYXYYYXYYZZYXYYX\YYYYYYYYZYZYYYYXYXYYYYYYYYY[YYYYYYXYYZYZYYYXYYYYYWYYYYYYYXYYYVYYYXRY]YV]YY\YYSYYVYWYYYYYXYYXTYYYYZYYY[YYYYYYYYYY[VYYYXYYYYYYY[YVYYYYYYYYYYYY_YYVWYYXYZYUWWZUYYYYYZYVYXTYZYYYYYTYYYYYYYYYWYYSYYYWYYTSY\YYZYYYYWY\YSXYYYZY]YTTYYY\YYWWYYYWYY_YVVZYWSYYVZYY\XYWYYYWZYYYYYYU^YY]YYYVYVYYYVYYYZYWYYYYYYWYYVYXYYYW^YYYVWVYYSYYYXYYWXYYYXUVXYVZYY]YYWYYVYYYYYYYXYYWWYYYYXYYYXYYYYYYYYYYYWYYYYYYWYYYZYYXYYYYYYYYYYYY\YYWYYYYYWYWWXXWYYYYYYYXYXVYWYYYYYWYYYYYYYYYWYYVYYYWYYVVY\YY\YYYYYYZYXYYYYXY\YWWYYYVYYXYYYYWXYYYXVZYYVYYXXYY[YYWYYXWZYYYYYYWYYYXYYYXYVYYYWYYYWYXYYYYYYXYYXYYYYYXZYYYXWVYYWYYYZYYXYYYYYXXXYYYYYZYYYYZYYYYYYYYYYYYYYYYYZYYYXYYYYYYYYYYYXYYYXYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYZYZZYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYZYYYYYYYYYYYYYZYXYYYYYYYYYYYYYYXYYXYZYZYYYYYYZYYYYYYYYYYYYYYYYYXZYZYYYYYYXYYYYYYYYYYYYYYYYZYYYYZYYYYYYYYZXYYYYYYYaYYPXYYYUSTQYZcYYdYYTYYSYXYYYYYUYYYTYYYY[YYYTYYYYY]YYYYWQYYYNYYYYYYZZYUYYYYYYYYYYYYZYYXXYYTYXYVQ^^UYYYYYZYZYSPYXXYYYYSYYYYYYYYYTYYRYYYYYYVQY^YYcYYYYaY_YRSYYY]YVYNVYYX[YYXTYYYOWY\YYWXYXRYYVbYYVSYRYYVWZYYYYYYS^Y]WYYYXYNYYYYYYYUY[YYYYYY\YY[YdYYYZ[YYY[VRYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYWYYXXYYYXXVWYWYYY^YYXYXWYXYYYYYXYYXXYYYYWYYYXYYYYYXYYYYXWYYYYYYVYYYZYYXYYYYYYYYYYYYXYYZWYYXYXYWWXZXYYYYYYYXYXXYVWYYYYXYYYYYYYYYXYYYYYYXYYXXYZYY]YYYYXYXYXXYYYXYYYXXYYXWYYXXYYYXXYXYXXYYXXYYXYYYXWYVYYVXYYYYYYYXYYYWYYYXYYYYYXYYYVYYYYYYYYWYYZYYYYYXXYYYXXXYYXYYYUYYXVYYYYU\ZYTUYYZYYVYVRYXYYYYYWYYVWYYYYXXYYXYYYYYXYYYYWZXYY`YYWYYYXXYWYYYYYYYYYYYY`YYTYYYZYUYVVXWVYYYYYXYWYXWYYYYYYYZYYYYYYYYYTYYUYYYTYYTTYZYYSYYYYUYUYV[YYYTY^YUWYY[VYYXZYYYZYYXYYS[YXSYYYYYYXTYXYYWVXYYYYYYVUYY[YYYYY[YYYUYYYVYVYYYYYYWYYWYSYYYWZYYYUWVYYVYYY[YYXXYYYYWWYYYZYYZYYXYZXYYYYYYYYYYZXYYYYZYYYYYYYYYZYYYYYXYYYXYYXYYYZZYXYYYYYYYYYYYY[YYYXYYYYXYYXYZYYYYYYYYYYXXYYYYYYYXYYYYYYYYYYYYXYYYYYYYXY[YYZYYYY[YZYXYYYYZYXYXYYYYZYYYYYYYXYYYYZXZYZXYYYZYYYXYYYYYYYYYYYYYWZYZXYYYXYXYYYYYYYXYZYYYYYYZYYYY[YYYYYYYYYXYYYYYYYXYYWWYYYXWZYYWWYYZYYXYXTYXYYYYYWYYXXYYYYYYYYXYYYYYYYYYYXYYYY]YYWYYYYYYXYYYYYYYYYYYY]YYWYYYZYVYXXXXXYYYYYXYXYYXYXXYYYYXYYYYYYYYYWYYWYYYWYYWVYYYYWYYYYWYWYXZYYYUY\YWWYYYWYYXYYYYXXYWYXVZYXWYYXZYYYXYXYYWXYYYYYYYWXY[YYYYXYZYYYWYYYXYXYYYYYYWYYWYWYYYWXYYYVXXYYXYYY\YYUYYYYYRUWYY`YYaYYVY\VYWYYYYYWYY[TYYYYbYYYWYYYYYZYYYYZSYYYQYY\YYY[ZYWYYYYYYYYYYYYYYY[ZYYTY\YUUZ\UYYYYYZYYYZPYZ\YYYYXYYYYYYYYYXYYTYYY[YYVUY^YY`YYYY]YaYSVYYY[YXYRWYYY`YYWUYYYTZY^YYZYYVSYYU\YYYWYTYYZZZYYYYYYU_Y\\YYYVYRYYYZYYY]YWYYYYYYYYYZYcYYY[YYYYZXUYYTYYYYYYVXYYYXWYWYX[YY]YYXYZWYXYYYYYXYYZXYYYYZYYYXYYYYYZYYYYXVYYYWYYYYYYZYYYYYYYYYYYYYYYZYYYYYYWYYYYXYZXYYYYYZYXYYXYXXYYYYXYYYYYYYYYXYYWYYYXYYXWY\YY]YYYYZYZYWWYYYXYXYUWYYXZYYXXYYYVXYZYXXXYYXYYWZYYWXYWYYXXYYYYYYYXYYYWYYYXYXYYYXYYYXYYYYYYYYXYYXYZYYYZXYYYWZYYYXYYYXYYXWYYYWWYXYVWYY\YYWYXUYXYYYYYWYYXXYYYYXYYYXYYYYYYYYYYWXYYY\YYXYYYYXYWYYYYYYYYYYYY[YYVXYYXYVYXXWXWYYYYYYYWYWXYXXYYYYWYYYYYYYYYWYYVYYYVYYWUYZYYXYYYYWYWYXZYYYTY[YWWYYXWYYXYYYYWXYYYVUYYWWYYXXYYXWYVYYWWYYYYYYYXXYYXYYYYYYYYYUYYYWYXYYYYYYWYYWYWYYYXXYYYVYXYYXYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYXXYYYYYYYYXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYZYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYZYYXXYYYYXYYYYYYYZYYYYZXYXYYYYYXYYZYYYYYZYYYZYYYYYYYYYYXXYYYYYYYYYYYXYYYYYYYYYYYYYYZYYYYYYYYXYZYXXXYYYYYYYYYZYYYZYYYYYYYYYYYYYYXYYXYYYYYYXXY[YYZYYYYYYZYYYYYYYYXYXYYYYYYYXYYYYYYYYYZXXYYYYYYZYYXYYYYYXXYYYYYYYYXYYZYYYXYZYYYXYYYYYYYYYYYYYYYXYYYYYZXYYYXZZYYXYYYXYYXXYYYYXYYYXYYY[YYXYYWYXYYYYYXYYYXYYYYZYYYYYYYYYYYYYYXXYYYZYYYYYYZZYXYYYYYYYYYYYYZYYXYYYXYXYXXZYXYYYYYYYZYYXYXYYYYYYYYYYYYYYYXYYWYYYYYYXXYZYYZYYYYXYXYWYYYYXYYYXXYYXYYYXYYYYXYYXYXXYYWYYYXYYYYYYXYYXYZYYYYYYXYYZYYYYXYYYYYWYYYXYYYYYYYYWYYXYYYYYYXYYYXYYYYYYYYYYYUVYYYVRTVYU\YYbYYUYXTYXYYYYYVYYWUYYYYYYYYWYYYYYYYYYYWUYYYVYYVYYYZVYXYYYYYYYYYYYYXYYXXYYUYXYUVXXUYYYYYZYXYXTYWVYYYYUYYYYYYYYYTYYSYYYVYYWTYZYYcYYYYYYXYUWYYYVYWYTWYYWTYYXWYYYRYYYYWXVYWTYYVYYYYWYSYYVVZYYYYYYSWYXXYYYXYSYYYVYYYVYWYYYYYYWYYWY[YYYXVYYYXXUYYWYYYXYYVVYYYVXXUYWYYY]YYXYWWYXYYYYYVYYXWYYYYVYYYXYYYYYYYYYYXWYYYXYYXYYYZWYXYYYYYYYYYYYYYYYWWYYVYVYXXWXXYYYYYZYWYVXYXVYYYYXYYYYYYYYYWYYXYYYVYYWWYWYY\YYYYWYXYXXYYYVYYYVWYYVVYYXXYYYTYYYYVWWYXXYYWYYYWWYUYYUWYYYYYYYYXYXWYYYXYWYYYVYYYUYWYYYYYYWYYWYWYYYVXYYYVXWYYWYYYVYYYZYYYYZYYYZYYYYYYYYXXYXYYYYYZYYXXYYYYYYYYYYYYYYYYYYY[XYYYYYYYYYYYZYXYYYYYYYYYYYYYYYZXYYYYZYWWZ\ZYYYYYYYZYXXYYYYYYYXYYYYYYYYYXYYYYYY[YYXXYYYYWYYYYWYZYUWYYY[YYYVWYYXYYYYYYYYZYYYYX[ZYXXYYYYYYYXYYYYY[YYYYYYYXZYYYYYYYYYYYY[YYYYY[YYYYYYWYY[YZYYYWYYYY[XYYYYYYYYYYYXYYYYXXYYX[YYZYYYYZYYXYYYYYYYY[YYYYY[YYYYYYYYYYYYYYYXYYYXYYZYYYYZYYYYYYYYYYYYYYZYYZXYYYYYYXYYZYYYYYYYYXYYYYZYYYYYXYYYYYYYYYYYYYYYYZYYZXY[YYZYYYYZYZYWXYYYZYYYWXYYYZYYXXYYYZYYYYZZYYYXYYXYYYYYYYYYZZYYYYYYYYZYYYYYYXYYYYYZYYYYYYYYYYYYYYYYYZYYYYYYYYYWZYYXYYYYYYYXYYYYXYXYYYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYXYYYZYYYYYYYYYXYYYYYYYYYYYY[YYYYYYYYXYYXYXYYYYYYYYYYYXYYZYYYYXYYYYYYYYYWYYXYYYXYYYWYZYYYYYYYYYYYXYYYYXYZYXXYYYYYYXZYYYXXYYYXWYYYXYYYYYYZYYXYYYXYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYXYYXYYYYYXZYYYXYYYYXYYYXYYXXYYYXYYWYXYYYZYYYYXXYXYYYYYXYYYYYYYYXYYYXYYYYYXYYYYXXYYYYYYXYYYYYYXYYYYYYYYYYYYWYYYXYYXYXYYXXYYYYYYYYYYYXYYXXYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYZYYYYXYXYYYYYYXYXYXXYYXXYYXYYYYXXYXYXXXYXYYYYZYYYYYXYYXYYYYYYYYYXYZYYYYYYYYYYXYYYXYYYYYYYYXYYYYXYYYXXYYYXXYYYXYYY\YYVVYYYYQUYYW]YY_YYVYYWYYYYYYYYYYXUYYYYZYYYYYYYYY[YYYYZUYYYVYYWYYYZ[YVYYYYYYYYYYYY_YYXYYYXYYYWVZ\VYYYYYZYYYVTYWYYYYYUYYYYYYYYYWYYSYYYXYYVSY^YY\YYYY^Y\YUYYYY[Y\YTWYYZZYYWWYYYTWY[YYW\Y[VYYW]YY[XYVYYYYZYYYYYYT^Y[ZYYYWYUYYYYYYYWYXYYYYYYZYYXY]YYYY[YYYYWVYYUYYYZYYWWYYYXWWVYWZYY^YYXYWWYXYYYYYWYYXXYYYYXYYYXYYYYYYYYYYXWYYYWYYXYYYZYYXYYYYYYYYYYYYXYYYWYYXYWYXWYXXYYYYYYYXYWXYVWYYYYWYYYYYYYYYXYYWYYYXYYXWYZYY\YYYYZYYYYWYYYXYWYVXYYYWYYXXYYYWXYXYXXXYXXYYYZYYXWYVYYVXZYYYYYYXYYXVYYYXYWYYYXYYYWYYYYYYYYXYYYYXYYYXXYYYXWWYYYYYYXYYWXYYYXVWYYWXYY[YYWYXWYXYYYYYXYYXWYYYYYYYYZYYYYYYYYYYZWYYY[YYWYYYZZYXYYYYYYYYYYYY]YYXXYYYYYYXWXZWYYYYYYYXYXWYWWYYYYXYYYYYYYYYWYYVYYYXYYVWY[YYYYYYYYYXYWYYYYYY]YVWYYXXYYXYYYYWYYYYWXZYZWYYWYYY\WYVYYYXZYYYYYYV\YYYYYYXYXYYYWYYYXYXYYYYYYWYYWYYYYYXZYYYWXWYYWYYY[YYWXYYYZTUZYX\YY\YYVYXXYYYYYYYXYYZVYYYY]YYYYYYYYYYYYYYZVYYYWYYYYYYZ[YVYYYYYYYYYYYY^YYWWYYYYZYXW[ZWYYYYYYYZYWVYY[YYYYWYYYYYYYYYXYYVYYYXYYVVY[YYZYYYY[YYYUYYYY\YZYTXYY[[YYWXYYYVZYYYWW[YYVYYXZYY[WYYYYZYYYYYYYYV^Y[[YYYXYUYYYXYYYXYYYYYYYYZYYYY\YYYY[YYYYWYYYWYYY[YYUXYYYXVWXYYZYY]YYXYXWYYYYYYYWYYXXYYYYYYYYZYYYYYYYYYYYWYYYVYYXYYYZYYXYYYYYYYYYYYY[YYXYYYWYYYWVYXWYYYYYYYYYYWYWXYYYYWYYYYYYYYYXYYVYYYYYYWWYYYY[YYYYZYYYXXYYYXYYYVYYYYXYYXXYYYUYYZYWXYYXWYYX\YYZWYUYYWXYYYYYYYXYYZWYYYYYWYYYXYYYVYYYYYYYYYYYYYZYYYXZYYYXXVYYXYYYZYYYWYYYYUWZYY]YY]YYWY[WYYYYYYYYYYZXYYYY[YYYZYYYYYZYYYYXVYYYWYY[YYYZ[YXYYYYYYYYYYYYZYY[YYYXY[YWXXYYYYYYYYYYYXWYZZYYYYVYYYYYYYYYXYYVYYY[YYWUY]YY\YYYY[Y\YVXYYYYYYYWUYYY[YYXXYYYYZY\YY[YYYWYYWZYYZZYXYY\ZZYYYYYYX\Y[\YYYXYWYYYYYYY[YXYYYYYYYYYZY^YYYYXYYYZYYYYXYYYYYYVXYYYWUWXYW\YYaYYVYYVYWYYYYYVYYZVYYYY\YYYWYYYYYZYYYYXVYYYWYYYYYY[XYWYYYYYYYYYYYY]YYZYYYWYXYVWWXWYYYYYYYWYXVYYXYYYYVYYYYYYYYYVYYUYYYVYYTUY[YY_YYYYYY\YVYYYYVYYYUWYYWZYYWWYYYUYY\YYVXYXVYYVZYYXVYTYYVVZYYYYYYVZYYVYYYWYVYYYVYYYVYXYYYYYYXYYWYZYYYXYYYYUYVYYVYYYZYYVXYYYWUWUYW\YY_YYWYXVYWYYYYYVYYZXYYYYXYYYXYYYYYXYYYYWUYYYUYYXYYYZZYWYYYYYYYYYYYY[YYWVYYWYYYXVXXVYYYYYZYVYWWYWVYYYYVYYYYYYYYYWYYVYYYVYYVVYZYY^YYYYWYZYWWYYYWYXYTVYYWXYYWXYYYUYYYYWUWYWWYYWYYYXVYUYYVWZYYYYYYWXYXVYYYXYVYYYVYYYTYXYYYYYYXYYWYYYYYXXYYYVXVYYVYYY^YYYSYYYYQSWYVcYY`YYTYYXYXYYYYYZYYXTYYYY[YYYWYYYYYZYYYY\SYYYVYYYYYYZ]YUYYYYYYYYYYYY]YYUWYYVYXYVU\_VYYYYYZYXYVRYY[YYYYSYYYYYYYYYUYYQYYYXYYURYbYY^YYYY_Y\YSYYYY_Y\YPVYY[ZYYWTYYYSWY\YYV]Y^TYYV^YY^XYXYY\WZYYYYYYSdY\[YYYWYQYYYYYYYVYWYYYYYYZYYZY]YYYY`YYYZWVYYSYYY[YYWWYYYXRSUYW]YY`YYUYYSYXYYYYYWYYXUYYYYYYYYUYYYYYXYYYY[TYYYUYYXYYYYXYWYYYYYYYYYYYYYYYWWYYVYWYUT\\WYYYYYZYYYUSYYWYYYYTYYYYYYYYYUYYUYYYXYYWSY\YY]YYYY]YZYVYYYYZYXYQWYYYXYYYVYYYSXYXYVVYYXTYYW[YYYWYVYYVXZYYYYYYS[Y[XYYYYYRYYYWYYYUYYYYYYYYYYYZY[YYYYZYYY[VUYYXYYYYYYXXYYYYXYXYXYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYZYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYXYYYXYYXXYYYYZYYYYYYXYYYYYYXYYYXYYYXYYYXYYYYXYYYYXXYYYYYYYYYYXXYXYYXYYYYYYYYXXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYXYYXXYYYYZYYYYXYYZYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYXYYYXYYYYYYXXYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXXYYYYYYYXYYYYXYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXZYYXYYY_YYUVYYYXQQVYXaYYbYYSYZWYWYYYYYYYYYTYYYY]YYYUYYYYY[YYYY[QYYYSYYYYYYZ\YVYYYYYYYYYYYY\YYWVYYVYZYWT]`WYYYYYZYXYVQYZZYYYYSYYYYYYYYYUYYRYYYYYYVSY_YY_YYYY`Y^YTVYYYbYYYOVYY[]YYWSYYYRWYZYYW[Y]RYYW^YY\VYWYYZYZYYYYYYSbY[XYYYVYOYYYZYYYWYYYYYYYYZYYXYbYYYX`YYY]VUYYUYYYWYYVXYYYXWXWYWZYY[YYXYWWYXYYYYYWYYYXYYYYWYYYXYYYYYYYYYYYXYYYYYYXYYYY[YXYYYYYYYYYYYY\YYYWYYZYXYXWXYXYYYYYYYXYVXYXXYYYYVYYYYYYYYYWYYVYYYYYYWVYZYYYYYYYWYYYWXYYYWYZYWWYYZXYYXYYYYWXYYYXXZYYXYYYZYYYXYXYYWYYYYYYYYXZYYXYYYXYWYYYWYYYWYYYYYYYYXYYYYYYYYYYYYYXVWYYXYYY\YYXUYYYWTTWYZ^YYaYYVYYVYWYYYYYUYYXVYYYYYZYYXYYYYY[YYYYYTYYYTYYYYYYZXYXYYYYYYYYYYYYYYYYVYYWYXYWV[ZVYYYYYZYYYXVYXWYYYYTYYYYYYYYYVYYUYYYYYYWVY\YY_YYYY]Y\YVVYYYZYVYSXYYY\YYXVYYYUXYYYYYXYZTYYW]YYYWYUYYUWZYYYYYYV[YYYYYYVYUYYYXYYYXYYYYYYYYXYYWY^YYYZ\YYYZWVYYVYYYYYYWXYYYXYZVYXZYY]YYXYVWYXYYYYYWYYXXYYYYXYYYXYYYYYXYYYYXWYYYWYYWYYYZXYXYYYYYYYYYYYYXYYYXYYXYWYYWYXXYYYYYYYXYXXYWWYYYYXYYYYYYYYYXYYYYYYXYYXWYYYY]YYYYYYYYXXYYYWYWYXXYYXWYYXXYYYUYYYYXXXYXWYYXZYYWVYUYYTXYYYYYYYYWYYVYYYYYWYYYWYYYUYYYYYYYYXYYZYYYYYXWYYYXXWYYYYYYYYYXXYYYWVYXYWXYY\YYWYYWYXYYYYYWYYXXYYYYWYYYYYYYYYYYYYYXWYYYZYYWYYYYYYXYYYYYYYYYYYY[YYWWYYYYXYWWXWXYYYYYYYXYXWYWWYYYYWYYYYYYYYYVYYWYYYWYYXVYZYYZYYYYXYWYXYYYYWY[YWXYYXWYYXYYYYVXYXYWWXYXWYYYYYYYYYVYYUWYYYYYYYXXYYXYYYXYYYYYWYYYXYXYYYYYYXYYWYWYYYWYYYYWZVYYWYYYXYYWWYYYVVWXYW\YY_YYVYWVYXYYYYYUYYWWYYYYXYYYXYYYYYXYYYYXVYYYVYYXYYYZWYXYYYYYYYYYYYYYYYXXYYVYYYVWVWWYYYYYZYWYXVYXWYYYYVYYYYYYYYYWYYUYYYWYYVVYYYY^YYYYYYYYWXYYYWYYYVWYYXVYYXXYYYTZY\YWWWYWVYYWZYYXXYTYYUWZYYYYYYWYYXWYYYXYVYYYWYYYUYWYYYYYYWYYWYXYYYWWYYYWXVYYXYYYYYYXXYYYXXYXYXYYYZYYYYYWYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYXYYYYXYYYYYYYYYYYYYYYYYXYYYXYWYYYXXXYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYXYYYXYYYXYZYYYYYYYXYWYYYYYYWYXYYXYYXXYYXYYYYXYYXYXWXYXYYYYYYYXYYXYYXXYYYYYYYYWYZYYYYXYYYYYWYYYXYYYYYYYYYYYXYXYYYYXYYYWZYYYXYYYXYYWXYYYXYZWYYYYY\YYWYWXYXYYYYYWYYYWYYYYYYYYXYYYYYXYYYYYWYYYWYYXYYYYYYYYYYYYYYYYYYYXYYZXYYXYWYXWZYYYYYYYZYXYWXYWWYYYYXYYYYYYYYYYYYXYYYYYYYXYYYY\YYYYYYZYWXYYYYYWYWXYYWWYYXXYYYVYYZYXYXYXXYYYYYYYXYWYYUYYYYYYYYYXYYVYYYXYXYYYYYYYWYYYYYYYYWYYZYYYYYZWYYYYYXYYYYYYYYYXWYYYYRTZYV]YY]YYUYXVYYYYYYYYYYWSYYYYZYYYYYYYYYYYYYY\VYYYYYYWYYYZ[YVYYYYYYYYYYYY^YYVWYYWYWYVVZZVYYYYYYYZYVRYYXYYYYUYYYYYYYYYVYYSYYYXYYVSY\YY[YYYY[YZYVYYYY[Y\YSWYYZWYYWXYYYUXYYYUU[YZUYYXZYY\WYUYYXWZYYYYYYT]Y[ZYYYXYVYYYWYYYYYWYYYYYYWYYXY[YYYW]YYYXWUYYVYYYWYYYWYYYWWZXYWWYY[YYXYXVYWYYYYYXYYXXYYYYXYYYYYYYYYXYYYYWWYYY\YYWYYYYXYXYYYYYYYYYYYY\YYWXYYYYVYXXXXXYYYYYYYXYXXYXXYYYYXYYYYYYYYYWYYWYYYVYYWVYZYYZYYYYWYXYXZYYYVY\YWWYYWWYYXYYYYWWYWYWVYYXWYYWYYYZXYXYYWXYYYYYYYXWYZYYYYXYZYYYVYYYXYWYYYYYYWYYWYWYYYXYYYYVYXYYXYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYXYYXYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYXYYYYYYYYYXYYYYXYYXYYXXYXYYYYYYYXXYYYYXXYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXZYYYYYYYXYYWYYYYXXXWYXZYY\YYXYXXYXYYYYYWYYXXYYYYYYYYXYYYYYYYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYZYY[XYYXYYYXWYYXYYYYYYYXYYXYWXYYYYXYYYYYYYYYXYYWYYYYYYWWYZYY[YYYYXYZYWXYYYXYXYXXYYXYYYXYYYYWXYZYXZYYXXYYXYYYXYYWYYXYZYYYYYYXZYZXYYYXYXYYYWYYYWYYYYYYYYXYYYYZYYYYWYYYWXYYYYYYYYYYYYYYYYYXXYYZYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYZYYYYYYYYYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYXYYYYXYYXYYYYYYYYYYXYYXYYYYYZYYXYYYYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYZXYYYYYYXXYZYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYXYYYWXYYY[YXYXYYYXXYYXYYYYYXYXYYZYYXYYYYZYYYXYYYYYYYYYYYYYYYYYYYYYXYYYYYZYYYYYYYYYYYYXYYYYYYYYXYYYYZXYYYXYYYUYYRVYYYUYXUYU]YYcYYVYTVYWYYYYYTYYVVYYYYVYYYVYYYYYXYYYYYTYYYUYYTYYYZWYWYYYYYYYYYYYY\YYZXYYWYWYVUVWUYYYYYZYUYWVYVVYYYYUYYYYYYYYYVYYVYYYWYYUTYYYY_YYYYWY[YXVYYYUYXYVUYYWVYYWXYYYSXYZYXTXYXUYYW[YYVSYRYYVUZYYYYYYXZYVUYYYWYTYYYTYYYRYUYYYYYYUYYYYYYYYWXYYYTWUYYXYYYXYYX\YYYYZWVY[XYYZYYXYYYYWYYYYYZYYZVYYYYXYYYYYYYYYXYYYYZXYYYVYYYYYYYZYZYYYYYYYYYYYYWYY]VYYYYZYTU]^[YYYYYYYZYWVYVVYYYYVYYYYYYYYYXYYXYYY]YYXXY[YYWYYYYXYZYQUYYY^YVYUWYYXXYYYYYYYYXYYYX`YYVWYYYYYYXZYXYYW]YYYYYYYZZY[WYYYYYYYYY\YYYYY^YYYYYYXYY]Y\YYYVVYYY\WYYYZYYYXYYXXYYYYXZWYXYYY[YYXYWXYYYYYYYWYYXXYYYYWYYYZYYYYYXYYYYXWYYYXYYYYYYZXYXYYYYYYYYYYYYZYYXWYYXYXYXXXXXYYYYYYYXYWXYXXYYYYXYYYYYYYYYXYYWYYYXYYWXYZYYZYYYYXYZYXXYYYXYYYWXYYXXYYXZYYYWYYZYWXXYYXYYYYYYYXYWYYXXYYYYYYYYXYYXYYYYYYYYYXYYYWYXYYYYYYWYYXYXYYYXXYYYXYXYYXYYY]YYWXYYYYUVWYZ\YY^YYWYYVYXYYYYYWYYYVYYYY\YYYXYYYYY[YYYYYVYYYVYYYYYYZYYYYYYYYYYYYYYYYYYZYYYXYYYWX[ZXYYYYYZYYYYVYWYYYYYWYYYYYYYYYXYYWYYYYYYXVY]YY_YYYY^Y\YUVYYYYYWYTXYYY[YYWWYYYWYYYY[[XYYVYYX\YYXYYVYYWYZYYYYYYW[YZYYYYWYVYYYZYYYYYZYYYYYYYYYZY_YYYZXYYYYXXYYYYYYYYYWXYYYWXWVYXZYY\YYXYXWYXYYYYYWYYYXYYYYXYYYXYYYYYXYYYYWYYYYYYYWYYYZYYXYYYYYYYYYYYYXYYYXYYXYVYYXYYYYYYYYYYYYXXYXWYYYYXYYYYYYYYYXYYXYYYXYYXWYZYY\YYYYYYXYXXYYYVYXYWXYYWWYYXYYYYWXYXYXYXYWXYYWYYYXWYVYYXYYYYYYYYXWYYWYYYXYXYYYWYYYWYYYYYYYYXYYYYYYYYYVYYYWYXYYYYYYYYYWYYYYXWXXYXYYY[YYWYWXYXYYYYYWYYXXYYYYZYYYYYYYYYYYYYYXVYYYYYYXYYYZYYYYYYYYYYYYYYY[YYYWYYXYYYXWXYXYYYYYYYXYXXYXWYYYYXYYYYYYYYYXYYVYYYXYYWXYZYY\YYYYYYWYXXYYYZYYYWXYYXXYYXXYYYVYYXYXXXYXXYYWYYYYWYVYYWXYYYYYYYXYYYXYYYXYXYYYXYYYWYXYYYYYYXYYWYXYYYXXYYYWYXYYXYYY\YYXWYYYZVWXYZ[YY\YYXYZXYYYYYYYYYYYWYYYY\YYYXYYYYYZYYYYZVYYYWYYYYYYZ[YXYYYYYYYYYYYY\YYXZYYYYYYYX[[XYYYYYYYZYYWYY[YYYYWYYYYYYYYYXYYWYYYZYYXVY]YY[YYYY[YZYVYYYY]YZYVYYY[\YYXWYYYXXYXY[Y[Y[WYYX[YY[YYZYYZYYYYYYYYW]Y[ZYYYXYWYYYZYYYYYZYYYYYY[YYYY]YYYY\YYY[YZYYWYYYXYYYXYYYYYYXYYYYYZYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYXYYYXYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYXYYYYYYYXYYYXXYYYYYXYXXYYYYYYYYYYYYYYYYYZYYXYYYYYYYXXYYYYXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYXYYYXYYYYYYVXYYYVVWXYXZYY\YYWYYWYXYYYYYYYYXWYYYYXYYYZYYYYYZYYYY[VYYYWYYYYYYYYYXYYYYYYYYYYYY\YYXVYYXYZYWXXXWYYYYYYYYYVUYXWYYYYUYYYYYYYYYYYYUYYYXYYXVYXYY\YYYYYYXYXWYYYZYZYTWYYWWYYXWYYYSYYYYUXYYXWYYW[YYZWYUYYXXZYYYYYYY[Y[ZYYYXYVYYYXYYYXYXYYYYYYXYYVYYYYYWYYYYXXUYYWYYYYYYXYYYYYXXXYXZYY\YYXYYXYXYYYYYXYYZXYYYYYYYYYYYYYYYYYYYYXYYYXYYZYYYZYYYYYYYYYYYYYYYXYY[XYYYYXYWWZYYYYYYYYYYYXXYXXYYYYXYYYYYYYYYXYYWYYYZYYXXY[YY\YYYYXYZYWXYYYYYXYVXYYXXYYXXYYYYXYZYYZXYYXYYYYYYY[YYYYXYZYYYYYYYYYYYYYYXYXYYYYYYYYYZYYYYYYYYYYYZYYYYXYYYZXYYYXYYYZYYWXYYYYWWWYZ[YY]YYXYZXYXYYYYYXYYZXYYYYZYYYYYYYYY[YYYYZVYYYWYYZYYYZ[YYYYYYYYYYYYYY[YY[XYYXYYYXWZ[XYYYYYZYYYXWYXXYYYYWYYYYYYYYYXYYWYYYZYYXXY\YY[YYYYZY\YXWYYYYYYYWXYYYZYYYXYYYXYYZYYYYYYXYYXZYYYYYWYYYYZYYYYYYY[YYWYYYWYWYYYYYYYXYXYYYYYYXYYYY^YYYYYYYYYXXYYXYYYYYYXWYYYYXXXYYZYY[YYXYZXYXYYYYYXYYZXYYYYZYYYXYYYYYYYYYYYXYYYXYYYYYYZYYXYYYYYYYYYYYYXYYZXYYXYYYXXYYYYYYYYZYYYYXYYXYYYYXYYYYYYYYYXYYXYYYXYYXXYZYY\YYYYZYZYWXYYYYYWYXXYYXZYYXXYYYWXYZYYYYYYXYYXZYYWXYXYYWYZYYYYYYWXYYXYYYXYYYYYXYYYYYZYYYYYYXYYYYYYYYXXYYYXYYYYYYYY_YYUHYYYUQOPYVaYYdYYQYURYTYYYYYTYYUTYYYYXYYYRYYYYY]YYYYVRYYYRYYWYYYZVYWYYYYYYYYYYYYQYY_TYYTYVYQRZ\SYYYYYYYTYYTYXWYYYYQYYYYYYYYYOYYTYYYWYYUSYYYYnYYYY\Y[YSSYYYXYNYOWYYX\YYXTYYYOVYUYXWYYTQYYVWYYTVYNYYLWYYYYYYYPXYTTYYYVYPYYYXYYYWYWYYYYYY[YYVY]YYYUXYYY]YTYYXYYYXYYXZYYYYXWYYYYYYZYYXYYXYXYYYYYYYYYXYYYYZYYYXYYYYYYYYYYZXYYYXYYYYYYYYYYYYYYYYYYYYYYXYYZXYYYYZYVWZZXYYYYYYYZYYWYXXYYYYXYYYYYYYYYXYYXYYYZYYXXY[YYYYYYYYYZYUWYYY[YXYVXYYXXYYYZYYYYXYXYY[XYXWYYZZYYYYYXYYXZYYYYYYYYYYZXYYYYYXYYYYYYYYY[YYYYYYXYYZYZYYYXXYYY[XYYYXYYYYYYXXYYYYXXXYXYYYZYYXYYWYYYYYYYXYYZYYYYYYYYYYYYYYYZYYYYXXYYYYYYYYYYYYYXYYYYYYYYYYYYZYYYXYYXYXYYYYYXYYYYYYYXYYXYXYYYYYYYYYYYYYYYXYYWYYYXYYXXYZYYYYYYYYYYYXXYYYWYYYXXYYXYYYXYYYYXYYYYXXYYXYYYYYYYXYYXYYXYYYYYYYYXXYYXYYYYYYYYYXYYYXYYYYYYYYXYYYYYYYYYXYYYXXYYYYYYYYYYXXYYYXYZYYYZYY[YYYYZXYYYYYYYXYYYYYYYYZYYYZYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYZYYYYYYYYXYYYYYYYYYXYZYYYZYYYYXYYYYYYYYYYYYYYYYYYYXWYZYYZYYYYXYZYYYYYYYYYYXWYYYZYYXYYYYXYYYYXXZYXXYYXYYYYYYXYYYYYYYYYYYXYYYYYYYXYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYXYZYYXYYYVYYW[YYYXYXWYYWYYZYYYYWYYWYYYYYZYYYXYYYYYYYYXYYYYYXYYYY[WYYYWYYXYYYYZYZYYYYYYYYYYYYWYYZWYYYYXYVVZ\ZYYYYYYYZYWXYWXYYYYXYYYYYYYYYXYYXYYY\YYXWYXYYWYYYYVYXYTVYYY\YWYUWYYXWYYYZYYYXXYXYX]YYWXYYZYYYXXYXYYW\YYYYYYYXZYYXYYYYYXYYY[YYYXY\YYYYYYVYY[YYYYYVWYYY\VXYYXYYYYYYWWYYYXVYXYV[YY]YYXYYWYWYYYYYWYYYXYYYYYYYYYYYYYYYYYYYVWYYYYYYWYYYZXYWYYYYYYYYYYYYZYYWXYYXYWYYXVXXYYYYYYYXYXXYXYYYYYXYYYYYYYYYWYYXYYYVYYXWY\YY\YYYYWYYYXYYYYUYYYXXYYXYYYWYYYYWYYYYYVXYWWYYWYYYWXYWYYXVZYYYYYYXXYYXYYYXYXYYYVYYYXYXYYYYYYYYYVYWYYYYXYYYUZYYYWYYYYYYVXYYYXXYXYXYYY[YYXYXXYXYYYYYXYYYXYYYYYYYYXYYYYYYYYYYYXYYYYYYYYYYYXYXYYYYYYYYYYYYZYYXZYYYYXYXYXXXYYYYYYYXYXXYXXYYYYXYYYYYYYYYYYYXYYYYYYXWYYYYYYYYYYYYYWYYYYXYYYWXYYXXYYYZYYYVXYYYYYYYXXYYYYYYYYYXYYWYYYYYYYYXXYXWYYYYYYYYYXYYYWYZYYYYYYXYYYYYYYYXXYYYXXXYYYYYYYYYXYYYYXXYYYYYYYYYYYYXWYXYYYYYWYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYXYYYYYYYYYYYYYYYYYXYYYYYXYXXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYXXYYYYYYYYYXYXYXXYYYWYXYXXYYXXYYYZYYYXXYYYYYXYXYYYZYYYXXYYYYXXYYYYYYYYXYYXYYYYYYYYYXYYYXYZYYYYYYXYYYYXYYYXXYYYYYYYYXYYY[YYWXYYYYUVXYY\YY\YYWYZXYXYYYYYXYYZWYYYYZYYYXYYYYYZYYYYZUYYYVYYZYYYZZYXYYYYYYYYYYYY\YYYWYYXYZYXWYZYYYYYYYYYYVWYZYYYYYVYYYYYYYYYXYYVYYYZYYXWY\YY\YYYY\Y[YWXYYY[YZYVXYYZ[YYXWYYYWYYZYYXYYZWYYYZYYZZYXYYZYZYYYYYYX\Y[YYYYXYVYYYYYYYXYZYYYYYYZYYXY\YYYYZYYYZWWYYWYYY[YYYXYYYYWTWYY[YY]YYXY[XYXYYYYYZYYYWYYYY\YYYXYYYYY[YYYYZWYYYVYYZYYYZ]YWYYYYYYYYYYYYZYYZXYYXYZYWV[]ZYYYYYYY\YYVYYZYYYYVYYYYYYYYYWYYWYYY\YYXUY]YYZYYYY[Y[YTWYYY]YXYSWYY[\YYXVYYYZXYXYY[[YZVYYW\YYZZYZYYZ\ZYYYYYYY]YZZYYYVYVYYY[YYY[Y[YYYYYY[YY\Y_YYYY[YYY\W[YYXYYYYYYVXYYYXXWWYXZYY]YYWYWXYXYYYYYWYYXYYYYYWYYYZYYYYYYYYYYWXYYYWYYWYYYZXYYYYYYYYYYYYYYYYYYWYYXYXYXWXXXYYYYYZYXYYXYWXYYYYXYYYYYYYYYXYYXYYYXYYXXYXYY\YYYYXYYYYWYYYXYWYWXYYXWYYXYYYYWYYXYYWWYXXYYXYYYXWYUYYUXYYYYYYYXVYYUYYYYYXYYYWYYYVYYYYYYYYXYYYYYYYYWXYYYWWXYYXYYYYYYXXYYYYXXYYYYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYZYYYYYZYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYZYYYXYYXYYYYYXYYYYYYYYYYYXXYXXYYYYXYYYYYYYYYXYYYYYYYYYZXYYYYZYYYYYYXYYXYYYYYYYXYYYYYYYXYYYYXYYXYXXYYXYYYYZYYYYYWYYXYYYYYYYYYZYZZYYYYYYYYYXYYYYYYYYYYYYYYYYYZYYYXXYYYXXYYYXYYYYYYXXYYYYXYXYXYYY[YYXYYXYXYYYYYXYYYYYYYYYYYYYYYYYYZYYYYWXYYYYYYXYYYYXYYYYYYYYYYYYYYYYYXXYYYYWYYYXXXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYWYYXXYZYYZYYYYXYYYXYYYYWYXYYYYYXYYYYYYYYXYYYYXWXYXYYYYYYYXXYXYYXXYYYYYYYXWYZXYYYYYYYYYWYYYYYYYYYYYYYYYXYYYYYYXYYYWYYYYYYYYYYYXWYYYXX[XYXZYY[YYYYZWYXYYYYYWYYZYYYYYYYYYYYYYYYYYYYYWXYYYYYYYYYYZXYYYYYYYYYYYYYYZYYXYYYXYXYYZXXXYYYYYYYXYZYYXZYYYYYYYYYYYYYYYYYXYYYXYYXXYZYY[YYYYXYYYXZYYYWYXYXYYYXYYYXZYYYXYYYYZWXYWYYYXYYYXXYXYYXXYYYYYYYYXYZYYYYYYZYYYWYYYYYYYYYYYYXYYXYYYYYZWYYYWZYYYXYYYYYYUZYYYXYUUYXXYY\YYXYYWYUYYYYY[YYXVYYYYVYYYWYYYYYZYYYY[XYYYTYYYYYYZ[Y[YYYYYYYYYYYYVYY]VYYYYXYSU\_XYYYYYZY[YWWYUVYYYYWYYYYYYYYYUYYXYYY\YYUWY]YY[YYYYWYYYQTYYY]YUYRVYYXZYYWZYYYWUYYYZ_XYWUYYY\YYWXYVYYW^ZYYYYYYWZYZXYYYVYXYYY[YYYZY\YYYYYYWYY^Y^YYYWVYYY\UXYYXYYYXYYYXYYYYWZYYXXYYZYYXYZWYYYYYYYYYYYXYYYYZYYYYYYYYYZYYYYXYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYZXYXYYYYYYYYYYYYYYYXYYXYYYXYYXWYZYYZYYYYXYXYXYYYYXYYYXYYYYZYYYYYYYXZYXYXXYYXXYYYYYYXYYXYYZYYYYYYYYXXYZZYYYXYZYYYXYYYZYYYYYYYYYYYYYZYYYYXYYYXYYYYXYYYZYYYYYYYYWXXYYZYYZYYYYZXYYYYYYYYYYYXYYYY[YYYYYYYYYYYYYYYXYYYYYYXYYYZZYYYYYYYYYYYYYYZYYYYYYYYYYYXZYYYYYYYYYZYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYXY[YYYYYYYZYYYXYYYYZYYYXYYYYZYYYYYYYXYYYYYYYYZXYYYZYYZYYXYYYYYYYYYYYX[YZYYYYYYXYYYYYYYXYYYYYYYYYYYXYZYYYYZYYYYYYYYXYYYXYYWXYYYXWWWYWXYY[YYWYXXYXYYYYYWYYXXYYYYXYYYXYYYYYYYYYYXXYYYZYYWYYYZYYXYYYYYYYYYYYY\YYWXYYYYXYXXXXXYYYYYYYXYWXYWXYYYYXYYYYYYYYYVYYVYYYXYYWWYYYYZYYYYXYXYXYYYYWY[YWXYYXXYYXYYYYVXYWYWWYYXXYYXYYYZWYVYYVXYYYYYYYXYYYXYYYXYYYYYWYYYWYXYYYYYYXYYXYXYYYWZYYYWXWYYXYYYXYYXXYYYWUVYYWZYY\YYWYYVYXYYYYYYYYWWYYYYYYYYWYYYYYYYYYYYWYYYZYYWYYYYXYXYYYYYYYYYYYY[YYVXYYYYWYWWYYVYYYYYYYXYXUYWXYYYYWYYYYYYYYYWYYVYYYVYYWUY[YY[YYYYXYXYXYYYYYY[YWXYYXWYYXWYYYUYYXYVVYYWVYYWYYYXWYVYYXWZYYYYYYVZYZYYYYXYVYYYVYYYWYXYYYYYYYYYWYXYYYXYYYYWXWYYWYYYYYYXXYYYXXYXYXZYY[YYXYXXYXYYYYYXYYYYYYYYXYYYZYYYYYYYYYYYXYYYYYYXYYYZYYYYYYYYYYYYYYYZYYXXYYYYYYXYYXXYYYYYYYXYXXYXXYYYYXYYYYYYYYYXYYXYYYXYYXXYZYYZYYYYYYZYXXYYYYYYYWXYYYYYYYYYYYXYYYYYXYYYXYYYYYYYYYWYYXXYYYYYYYYYYYWYYYYYYYYYXYYYXYYYYYYYYXYYYYYYYYYYYYYXXXYYYYYYZYYXYYYYXWXYYXYYYZYYXYXXYYYYYYYYYYXXYYYYZYYYXYYYYYYYYYYYWYYYWYYYYYYYZYYYYYYYYYYYYYYZYYXXYYXYYYXX[ZXYYYYYYYZYYXYYXYYYYWYYYYYYYYYXYYXYYYXYYXWYYYYZYYYYYYWYYYYYY[YXYXYYYYYYYYWYYYXYYXYYXZYYWYYYZYYYXYXYYXYYYYYYYYX[YYYYYYYYWYYYXYYYXYYYYYYYYYYYXYYYYYX\YYYZYXYYXYYY_YYVUYYYYRSVYX`YY`YYTYYXYZYYYYYWYYVUYYYYZYYYXYYYYYZYYYYZTYYYWYYWYYYZZYUYYYYYYYYYYYY\YYUXYYUYWYWT\[WYYYYYZYYYWSYXZYYYYUYYYYYYYYYVYYSYYYYYYWUY^YY]YYYY`YZYUWYYY]YZYQXYY[YYYWWYYYSWYZYZW[Y]UYYW]YY\VYVYYXVZYYYYYYT_YZYYYYXYTYYYYYYYVYXYYYYYYYYYYY_YYYW`YYYYWVYYVYYYYYYYXYYYYXXYYXYYYZYYXYYXYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYXYYYYZYYXYYYYYYXYYYYYYYYYYYY[YYXYYYYYXYYYYYYYYYYYYYYYYXYYZYYYYYYYYYYYYYYYYYXYYYXYYXWYZYYYYYYYXYYYXYYYYXYZYXYYYYYYYXZYYYXYYYYYXYYYXYYYZYYYYYXYYYXYYYYYYYXYYZXYYYYYYYYYXYYYXYYYYYYYYYYYXYYYYYYYYYYXYYYYXYYYYYYYYYYYYXXYYYZYYZYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYZYYZYYYYZYYYXXYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYZYYZYYXYYXYYYYYYYYXYYYXYYYYYYYYYYYYYXYZYYYYYYYYYYYZYYYYYYYYYXYYYYYYYUYYV_YYYW^URY]UYY\YYYYUZYVYYYYY^YYXVYYYYWYYYWYYYYYZYYYY_XYYYUYYXYYYY_YZYYYYYYYYYYYYTYYaUYYYYYYRTac^YYYYYYYaYUWYTVYYYYWYYYYYYYYYWYYXYYYeYYVVYYYYWYYYYUYWYPTYYY`YUYSTYYWWYY[ZYYYWVYVYUf[YUVYYZYYYWWYWYYVdYYYYYYYX[YYVYYYYYWYYY`YYYXY`YYYYYYYYYcYbYYYTTYYY`SXYY]YYYXYYWWYYYXUVYYXXYY[YYWYXWYWYYYYYXYYXWYYYYYYYYYYYYYYXYYYYYXYYYYYYWYYYYYYXYYYYYYYYYYYY\YYWWYYXYWYWXXXWYYYYYYYXYWWYXVYYYYWYYYYYYYYYXYYWYYYXYYWVYYYY[YYYYYYWYXXYYYXYZYWXYYXYYYXXYYYVYYXYVXZYXWYYXXYYXYYVYYXWYYYYYYYVZYYXYYYXYYYYYVYYYWYXYYYYYYXYYWYXYYYWYYYYWWXYYWYYYXYYYYYYYXZWTYZXYY^YYXYYWYWYYYYY\YYYWYYYYWYYYXYYYYY[YYYY_XYYYVYY[YYYZ_YYYYYYYYYYYYYYWYY\VYYYYYYTT[^YYYYYYYY\YVVYUUYYYYUYYYYYYYYYWYYWYYY^YYXVYZYYZYYYYWYYYTUYYY^YWYSVYYX[YYYWYYYXVYYYV\\YWUYYX[YY[ZYVYYV^ZYYYYYYX]YYWYYYVYWYYY[YYYZY\YYYYYYZYY]Y_YYYWXYYY]TXYYWYYYVYYW]YYYY\VUYYWYY\YYXYXZYUYYYYY^YYYVYYYYXYYYWYYYYYYYYYY\VYYYWYYYYYYY^YYYYYYYYYYYYYYUYY^WYYWYXYSU[`YYYYYYYY]YXVYVVYYYYWYYYYYYYYYVYYWYYY^YYXWYZYY\YYYYVYWYSUYYY\YUYSVYYXXYYZWYYYYVYXYW_[YVUYYXXYYXZYWYYV_ZYYYYYYW[YWXYYYXYWYYY^YYYYY^YYYYYYXYY^Y^YYYWUYYY^VYYYXYYYZYYWXYYYXXWWYY[YY[YYXYXXYYYYYYYXYYYYYYYYYYYYWYYYYYYYYYYXWYYYVYYXYYYZYYYYYYYYYYYYYYYXYYYXYYXYXYYXYYYYYYYYZYYYWXYXYYYYYXYYYYYYYYYYYYXYYYYYYXXYZYY\YYYYZYZYYXYYYXYXYXXYYYXYYYYYYYWYYYYYYYYYXYYYZYYXWYWYYXXZYYYYYYXYYZXYYYYYWYYYXYYYVYYYYYYYYZYYYY\YYYYXYYYYWYYYYYYYYYYXYYYYYYYXYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYXYYXYYXYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYWYYYYXXXWYYYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYWYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYY[YYYYYYYYYXYYYYYWYXXYYXYYYYYYYYXYYYYYYYYXYYYYZYYXXYWYYXXYYYYYYYXXYZXYYYYYXYYYXYYYXYYYYYYYYYYYYYZYYYYXYYYXXYYYYYYYZYYXYYYYYUTWYY\YY^YYVYZWYWYYYYYYYYZVYYYY\YYYWYYYYYYYYYYZUYYYVYYZYYYZ]YYYYYYYYYYYYYYVYY]VYYXYWYSU\_ZYYYYYYYYYWUYXWYYYYUYYYYYYYYYWYYTYYY\YYXUY\YY]YYYY[Y]YRUYYY\YVYRWYYX\YYZWYYYVYY\YY]ZYXTYYYXYYYZYVYYU]ZYYYYYYV]YYXYYYXYTYYY\YYYZY^YYYYYYYYY]Y_YYYWXYYY^TVYYZYYY[YYUVYYYWSTUYW_YYcYYUYWVYWYYYYYWYYWTYYYYWZYYUYYYYYZYYYY[SYYYTYYYYYYZYYWYYYYYYYYYYYYXYY[TYYVYWYTU[\VYYYYY[YYYUSYXVYYYYRYYYYYYYYYVYYTYYYYYYWTY\YYaYYYY]YZYVXYYYZYVYRVYYWXYYWVYYYRXYZYVXXYXUYYWZYYXWYUYYUW[YYYYYYU`YZYYYYVYQYYYVYYYWYWYYYYYYYYYWY_YYYVTYYY[XSYYXYYYXYYXXYYYYYYWYXZYY]YYXYXXYXYYYYYXYYZXYYYYXYYYXYYYYYXYYYYXWYYYWYYWYYYZYYXYYYYYYYYYYYYXYYZXYYXYXYYYYXYYYYYYYYYYXXYWXYYYYYYYYYYYYYYYYYYYYYYYYXXYZYY\YYYYYYYYXYYYYWYWYXXYYXXYYYYYYYWYYYYXYXYXXYYYYYYXYYVYYXYZYYYYYYYXYXWYYYXYYYYYXYYYWYYYYYYYYXYYYYYYYYYWYYYXXYYYZYYYVYYXZYYYX[XVYXVYYZYYYYWYYWYYYYY]YYWXYYYYZYYYXYYYYYXYYYY\XYYYWYYXYYYYZYYYYYYYYYYYYYYWYY[UYYXYYYTU\_ZYYYYYYY[YWWYVWYYYYXYYYYYYYYYWYYYYYY]YYVXYXYYXYYYYTYYYSVYYY^YWYUVYYXWYYWXYYYYWYXYX`YYVWYYYYYYWVYXYYW]YYYYYYYXZYXVYYYWYZYYY[YYYXY[YYYYYYWYY\YYYYYUWYYY\UYYYWYYYYYYWXYYYYTVYYXZYY]YYWYYXYYYYYYYXYYYVYYYYYYYYYYYYYYYYYYYZVYYYXYYXYYYZZYWYYYYYYYYYYYY\YYXXYYYYZYXVXXWYYYYYYYXYWVYWYYYYYVYYYYYYYYYWYYTYYYYYYVVY\YY[YYYYZY[YWXYYYYY[YUWYYYYYYXYYYYWYYZYWXYYZWYYXYYYZYYWYYYXZYYYYYYV\YZYYYYYYWYYYXYYYXYXYYYYYYYYYXY[YYYY[YYYXXWYYXYYYYYYYXYYYXYYYYXXYYZYYYYZXYYYYYYYXYYYYYYYYZYYYYYYYYYYYYYYYYYYYZYYXYYYYYYXYYYYYYYYYYYYZYYXZYYYYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYXYYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYXYYYYXYYYXYYYYXYYYYYYYYXYYYYYYYYYYXYYXYYYYYYYXYYXYYYYYZYYXXYYYYZYYYYYYYYYXYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYXXYZYYYYYYYYYYXYYYXYYYYXYYYYYYYYYXYYYYYYZYYXXYYYYXYYYYWYYYWWYYY[YYYWXYYYYYYXYYYYZXYXYYZYYXXYYZYYYYXYYYYYZYYYYYYYYZYYYYYYXYYYYYZYYYYYZYYYYYYXYYZYYYYYWYYYYZXYYYXYYYXYYXXYYYXUYXYXXYY[YYWYYWYXYYYYYWYYXWYYYY\YYYWYYYYYYYYYYYWYYYZYYXYYYZYYXYYYYYYYYYYYY\YYVYYYXYYYXWXXWYYYYYYYXYXVYXYYYYYXYYYYYYYYYWYYUYYYXYYVVY[YYYYYYYXYYYVYYYYXY[YWWYYXXYYXYYYYUYYXYVWYYXVYYXYYYYYYWYYYXYYYYYYYVZYYYYYYXYWYYYWYYYYYYYYYYYYYYYWYZYYYXXYYYWYXYYWYYYYYYYYYYYYYYYYYYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYYYYYYYXYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYYXXYYYYYYYZYYXYYYYXZVWYY]YY]YYWYYXYWYYYYYZYYZVYYYYYYYYXYYYYYZYYYY[WYYYUYYZYYYZ]YXYYYYYYYYYYYYVYY_VYYWYZYSVZ^ZYYYYYZY\YXUYXVYYYYUYYYYYYYYYWYYVYYY^YYXVY\YY\YYYY\Y]YSVYYY[YWYTWYYY[YYYVYYYYWY[YX]ZYXUYYX[YYY[YWYYV]ZYYYYYYX\YZYYYYWYVYYY[YYYZY\YYYYYYZYY]Y`YYYYWYYY\VWYYZYYYWYYXWYYYWWXXYVXYY]YYXYYVYWYYYYYXYYYXYYYYYYYYXYYYYYXYYYYWXYYYZYYXYYYYYYXYYYYYYYYYYYYXYYXYYYWYWYXXX[XYYYYYYYYYXXYWWYYYYXYYYYYYYYYXYYXYYYWYYXXYYYY[YYYYWYWYXXYYYVYYYXWYYWXYYXWYYYWYYXYXVYYWXYYWYYYYXYWYYWWYYYYYYYXVYXXYYYXYYYYYWYYYXYXYYYYYYWYYXYYYYYXXYYYWYYYYWYYY\YYWWYYYWVWXYX^YYaYYWYZWYWYYYYYUYYZWYYYY[ZYYXYYYYYZYYYYVUZYYTYYYYYY[YYXYYYYYYYYYYYYWYY[XYYWYZYXWZYXYYYYY[YXYZWYXXYYYYWYYYYYYYYYWYYVYYYXYYVVY^YYdYYYY\Y\YUXYYYXYVYVXYYXYYYXVYYYTYY]YYXVYYVYYW]YYXWYWYYYX[YYYYYYZZYZXYYYWYUYYYXYYYWYZYYYYYYYYYYY]YYY[YYYYXYXYYWYYYWYYYZYYYYYYYYZYYYYYYYYXXYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYZXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYXXZZYYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYXYYYZYYXYYYYYXYYYYXYYYWWYYYZYYYWXYYYYYYYZYYYYYYYYYZXYYYYYZYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYZYYYYYZYYYYYYXYYZYZYYYWYYYYZXYYYYYYYYYYXYYYYYYYXYYYYYZYYYYYXYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYXYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYXYYYXXYYYYYXYXXYYYYYYXYYYYYYYYYYYYYXYYYYYYYYYYXYYXYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYYXYYYXYYYYYYXXYYYYXXXYXYYY[YYYYYXYXYYYYYXYYYXYYYYZYYYYYYYYYZYYYYXXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYXYYYXY\YY[YYYYYYXYYZYYYYYXYXXYYYYYYXYYYYXYYYYXXXYYXYYYYYYYZYYYYXXZYYYYYYXZYZZYYYYYXYYYXYYYYYYYYYYYYYYYXYYYYYZXYYYXYYYYXYYYYYYWYYYYXXXXYXZYY[YYYYZXYXYYYYYZYYZXYYYYYYYYXYYYYYZYYYYYWYYYWYYYYYYZZYYYYYYYYYYYYYYXYYZXYYXYXYXXYZYYYYYYYYXYXWYWXYYYYXYYYYYYYYYXYYXYYYXYYYWYZYYZYYYYYYYYYXYYYYYWYXXYYXYYYYXYYYXYYYYYXZYXXYYYZYYXXYYYYWYZYYYYYYYZY[XYYYXYXYYYYYYYYYYYYYYYYZYYYYZYYYXXYYYYWYYYXYYYWYYWYYYYX[VVYZWYY[YYXYXXYWYYYYY[YYXXYYYYXYYYXYYYYYYYYYY[YYYYWYYYYYYY]YZYYYYYYYYYYYYVYY\WYYYYYYTV]^[YYYYYYY\YWWYUWYYYYWYYYYYYYYYWYYXYYY_YYWWYYYYYYYYYWYXYRUYYY\YWYUWYYXYYYYXYYYYWYXYXa\YWVYYYZYYXZYWYYV^YYYYYYYXZYYWYYYWYWYYY\YYYYY]YYYYYYYYY^Y^YYYVWYYY]UYYY[YYYZYYXXYYYXXWXYY[YY\YYXY[WYXYYYYYXYYZXYYYYYYYYYYYYYYZYYYYXXYYYWYYXYYYZXYZYYYYYYYYYYYYWYYZXYYXYXYXXXYYYYYYYYYXYYXYYXYYYYXYYYYYYYYYXYYXYYYXYYYXY[YY]YYYYYYYYWXYYYXYWYWXYYXXYYXWYYYXYYXYYYWYXWYYXZYYXYYXYYWYZYYYYYYXXYZXYYYWYWYYYYYYYYYZYYYYYYZYYYY\YYYYWYYYYXZYYYYYYZYYWXYYYYXYXYZZYY[YYXYXXYXYYYYYXYYYYYYYYZYYYYYYYYYYYYYYYYYYYWYYYYYYZYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYXYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYXYYYYYYYXYYYY[YYYYZYZYXXYYYYYXYWYYYX[YYXYYYYXXYZYYXYYXYYYYZYYXYYXYYYYYYYYYYYXXYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYZXYYYXYYYYXYYY^YYX[YYYWXSUYZ_YY_YYVY\UYWYYYYYYYY]TYYYY\YYYWYYYYY^YYYYZTYYYTYY[YYYZ_YYYYYYYYYYYYYYYYYaVYYWYZYTU]`YYYYYYZY\YXSYZWYYYYTYYYYYYYYYVYYUYYY^YYVUY`YY_YYYYaY_YQTYYY_YTYRVYYY`YYYRYYYXWY\YZ^YYYTYYV^YYY\YVYYY^ZYYYYYYV_Y]ZYYYVYUYYY]YYY]Y_YYYYYY]YY]YfYYYZXYYY]VXYYZYYYYYYXYYYYXWXYYXZYYZYYXYYXYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYZWYYYXYYWYYYYZYXYYYYYYYYYYYY[YYYZYYYYZYYYZYWYYYYYYYXYYXYXZYYYYXYYYYYYYYYXYYXYYYXYYXWY[YY[YYYYXYYYYYYYYZYXYWWYYXYYYXYYYYWZYWYXXYYXXYYXZYYXXYXYYYXYYYYYYYX[YZZYYYXYWYYYXYYYXYXYYYYYYYYYYYYYYYYZYYYXYYYYXYYY^YYVVYYYXOOVYVbYYdYYSYYVYXYYYYYWYYWSYYYYZYYYXYYYYY[YYYYXRYYYRYYYYYY[[YUYYYYYYYYYYYY\YYVWYYUYWYUS[^VYYYYYZYYYVPYXXYYYYQYYYYYYYYYTYYQYYYXYYVSYaYYaYYYY_Y_YTVYYY]YZYPWYYZYYYWUYYYRWY]YXV[Y\SYYV_YY\VYTYYXWZYYYYYYS^Y\XYYYXYOYYYXYYYUYYYYYYYYZYYYYaYYYX_YYY[WSYYUYYYYYYWXYYYXXWYYX\YY\YYXYZWYWYYYYYXYYYWYYYY[YYYXYYYYYYYYYYZUYYYVYYYYYYZZYYYYYYYYYYYYYYZYYZXYYWY[YYXY[XYYYYYYYXYYXYYZYYYYXYYYYYYYYYXYYWYYYYYYWXYZYY\YYYYZY[YXWYYY\YXYVWYYX[YYXWYYYXYYZYYYYYYWYYWZYYZWYWYYXYYYYYYYYX]YYZYYYXYVYYYXYYYYYWYYYYYYXYYVY[YYYX[YYYYYYYYVYYY[YYUVYYYWUWVYVZYY^YYWYZVYXYYYYYXYYYWYYYYYYYYVYYYYYZYYYYXVYYYXYYXYYYYYYXYYYYYYYYYYYYZYYVXYYXYXYYWX[YYYYYYYYZYXVYXXYYYYXYYYYYYYYYWYYVYYYWYYWVY^YY[YYYYZYYYXZYYYZYWYWWYYYYYYXXYYYVWYXYWU[YYVYYX[YYXWYWYYWWZYYYYYYV[Y[YYYYYYVYYYVYYYXYYYYYYYYZYYYYZYYYYZYYYYYXYYWYYYZYYXWYYYZVWZYXYYY\YYWYXXYXYYYYYZYYXWYYYYYYYYYYYYYYXYYYY[WYYY\YYVYYYYZYWYYYYYYYYYYYY_YYWXYYXYXYYW[[WYYYYYYYZYWVYYYYYYYXYYYYYYYYYXYYWYYYXYYVUY[YYXYYYYYYXYV[YYY[Y]YWYYYZYYYWWYYYVXYXYYW\YZWYYWZYY[XYWYYYWYYYYYYYV[YZYYYYXYXYYYXYYYWYXYYYYYYXYYWY[YYYX\YYYXYXYYWYYYZYYUXYYYXSWXYVZYY^YYVYXWYXYYYYYXYYYUYYYYZYYYWYYYYYZYYYYYUYYYWYYXYYYZYYWYYYYYYYYYYYY\YYVXYYXYZYWWXZVYYYYYYYYYWTYWXYYYYVYYYYYYYYYWYYUYYYWYYVUY]YY\YYYYZYZYWYYYYYY\YUXYYYWYYXXYYYUYYZYWVYYXUYYXZYYXXYVYYXWZYYYYYYU[YZXYYYXYTYYYWYYYXYXYYYYYYYYYWYZYYYXYYYYWXVYYVYYYXYYWWYYYXYXVYXYYY\YYWY[XYWYYYYYYYYZWYYYYYYYYXYYYYYYYYYYYXYYYWYYXYYYZ\YXYYYYYYYYYYYYVYY\VYYWYXYUWZ\ZYYYYYZY[YXWYVWYYYYWYYYYYYYYYVYYWYYYZYYXWY[YY[YYYYXYYYTVYYYZYVYVVYYWYYYYWYYYXXYZYX\YYUVYYXXYYWYYXYYW\ZYYYYYYXXYYZYYYWYXYYYYYYYYY[YYYYYYXYY\Y\YYYXUYYY[WXYYZYYYXYYXWYYYWXZWYWXYY\YYXYXVYXYYYYYVYYXXYYYYXYYYXYYYYYXYYYYWXYYYZYYWYYYYXYXYYYYYYYYYYYYYYYWWYYWYWYXXXWXYYYYYYYXYXXYXWYYYYXYYYYYYYYYVYYWYYYWYYXVYYYY[YYYYVYWYXXYYYUYXYWWYYWVYYXYYYYWXYXYWVWYVWYYWYYYWXYVYYWXYYYYYYYYUYYWYYYXYYYYYVYYYWYXYYYYYYWYYXYXYYYWWYYYVYXYYXYYYXYY[TYYYZLVZYQ[YYcYYRYXSYXYYYYYYYYSPYYYY\YYYYYYYYYYYYZYYSYYY\YYUYYYZ[YRYYYYYYYYYYYYcYYOWYYWYUYRSX^RYYYYYYYXYWMY[ZYYYYQYYYYYYYYYQYYNYYYRYYONYcYYYYYYY[YYYOYYYY[YbYNVYY\WYYUUYYYTVYZYYP\Y]PYYVXYY`SYWYY[SZYYYYYYN_YZ]YYYVYUYYYSYYYXYUYYYYYYVYYTYXYYYTdYYYVXRYYPYYYYYYXYYYYYXYYYYYYYYYYYYXXYYYYYYYXYYXYYYYYXYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYXYYXXYYYYYYYYYYYXXYXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYXYYYYYYYYXYXYYXYYYYYYYYYXYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYXXYYYWWYWYWXYY[YYXYXWYXYYYYYWYYXXYYYYYYYYWYYYYYYYYYYXXYYYZYYVYYYYXYYYYYYYYYYYYYYYYYWXYYYYWYYXXYXYYYYYYYXYXXYWYYYYYXYYYYYYYYYWYYWYYYVYYXWY[YY[YYYYVYVYXYYYYVYZYXXYYXXYYXYYYYWXYXYXWYYXWYYXYYYXWYWYYVWYYYYYYYWWYZXYYYXYYYYYVYYYXYWYYYYYYXYYWYWYYYXYYYYWYYYYWYYYYYYYWYYYXVWWYVXYY\YYXYXVYXYYYYYXYYYXYYYYYYYYWYYYYYYYYYYYWYYYZYYXYYYYYYYYYYYYYYYYYYYZYYVWYYXYXYYXYZXYYYYYYYXYWWYXXYYYYWYYYYYYYYYWYYWYYYWYYWVY[YYZYYYYYYXYXZYYYYYZYVWYYXXYYXXYYYVXYWYWWYYYWYYXXYYZXYXYYXXYYYYYYYXYYZZYYYXYWYYYWYYYXYXYYYYYYXYYWYXYYYWYYYYXYXYYXYYYXYYXWYYYXXXXYXYYY\YYYYYXYXYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYWYYYYYYXYYYXXXYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYXYYYYYYYXYYYY]YYYYWYWYYXYYYXYXYXYYYXXYYXXYYYXYYYYYYYYXYYYYYYYXYYXYYXYZYYYYYYYXYXYYYYXYYYYYXYYYXYYYYYYYYXYYXYYYYYYYYYYYXYYYXYYYYYYVVYYYXUUUYW\YY`YYWYYUYWYYYYYVYYYWYYYYYYYYVYYYYYZYYYYXTYYYVYYXYYYZYYXYYYYYYYYYYYYYYYXUYYWYVYXVX[WYYYYYZYXYWWYWWYYYYVYYYYYYYYYUYYUYYYVYYWUY]YY_YYYYZYZYXWYYYWYVYUWYYXXYYWVYYYUWYZYWVXYYVYYWZYYXVYWYYUWZYYYYYYVYYXXYYYWYTYYYUYYYWYXYYYYYYXYYXYZYYYWZYYYXXWYYWYYYYYYYXYYYYWXYYXYYY[YYYYYXYXYYYYYXYYZYYYYYZYYYYYYYYYZYYYYXWYYYYYYYYYYZYYYYYYYYYYYYYYYZYYXXYYXYYYYXXZXYYYYYYYYYYXYZXYYYYXYYYYYYYYYYYYXYYYXYYXXYZYYZYYYYYYYYXYYYYYYYYXYYYYYYYXYYYYYYYZYYWYYYXYYXYYYYYYXYYYXYYYYYYYYYYYYYYYXYYYYYXYYYYYXYYYYYYYYYXYZYYYYYYYYXXYYYWYYYYYYXXYYYYXYXYXYYY[YYYYZXYYYYYYYXYYYXYYYYYYYYYYYYYYZYYYYXXYYYZYYYYYYYYYXYYYYYYYYYYYYYYYXYYYXYYYYYXYXYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYXYYYWYZYYYYYYYYYYYYYYYYWYZYXXYYXYYYXZYYYXYYYYXWXYXXYYYYYYXYYWYYYXYYYYYYYXXYZYYYYYYXYYYWYYYYYZYYYYYYYYYYYYYYYYXYYYXZYYYXYYYYYYVVYYYXUUYYVZYY]YYWYWVYXYYYYYXYYWWYYYYXYYYXYYYYYYYYYYZUYYYYYYXYYYYYYWYYYYYYYYYYYY^YYWWYYWYXYWWY[WYYYYYYYXYWVYXXYYYYVYYYYYYYYYWYYVYYYWYYXUY[YYYYYYYYYYYXXYYYZY\YVWYYXWYYXVYYYVXYXYVUZYXVYYW[YYZWYVYYXWZYYYYYYW[YZZYYYXYVYYYWYYYVYXYYYYYYYYYWYYYYYWZYYYXWVYYWYYYYYYYWYYYXXYXYXZYY[YYYYZXYXYYYYYXYYZXYYYYXYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXXYYYYXYYYXYXYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYXYYYXYZYYYYYYYXYYYXYYYYWYYYXXYYXYYYXYYYYXXYYYYWYYXXYYXYYYYXYXYYWXYYYYYYYXXYYYYYYXYZYYYWYYYXYYYYYYYYXYYYYXYYYYYYYYWYYYYXYYYXYYWXYYYWVXXYVWYY\YYXYXWYYYYYYYWYYXWYYYYWYYYYYYYYYZYYYYXWYYY[YYWYYYYYYXYYYYYYYYYYYY]YYXXYYXYWYXXXXWYYYYYYYWYXWYWWYYYYWYYYYYYYYYWYYWYYYWYYWVYZYYZYYYYXYWYXYYYYWY\YWXYYXVYYWYYYYVXYXYVVXYXWYYXYYYYWYUYYVWYYYYYYYXXYZXYYYXYXYYYVYYYXYXYYYYYYXYYWYWYYYWYYYYVXXYYWYYYYYYYXYYYYYYYYYYYYZYYYYZXYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYZZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYXYYYYYYYYYYYYXYYYZYYYXYZYYZYYYYYYYYXYYYYZYYYWYYYYYYYXYYYYYXYYYYYYYYYYYYZYYYZYYYYXYYYYYYYYYYYYZYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYZYYYYYYYYXYYYWYYWXYYYWTVYYUXYY]YYUYVVYXYYYYYXYYWUYYYYWYYYYYYYYYYYYYY[WYYYZYYXYYYYYYWYYYYYYYYYYYY\YYVTYYXYWYVVWWVYYYYYYYWYUUYWUYYYYTYYYYYYYYYWYYSYYYWYYUUYZYY[YYYYXYXYWWYYYXY]YTVYYWWYYWXYYYTXYYYTVYYXUYYWWYY\XYVYYXWZYYYYYYV[YZ[YYYXYVYYYVYYYXYVYYYYYYVYYUYVYYYVYYYYWWTYYVYYYYYYXXYYYYXYXYYZYYZYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYXXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYY[YYYYYYZYYXYYYYYXYXYYYYXYYYYYYYXYYYYYYYYXYYYYYYYYYYXYYYYYYYYYYYYXYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYZYYYYXYYYYXYYYYYYYYYYUWYYYXWUVYXZYY_YYWYYXYXYYYYYZYYXVYYYYXYYYWYYYYYZYYYYZWYYYUYYYYYYZ[YZYYYYYYYYYYYYUYY\WYYXYXYUWZ\YYYYYYZYXYWVYTVYYYYWYYYYYYYYYWYYWYYYYYYXWY[YYaYYYYYYYYVVYYYYYVYWWYYXYYYYWYYYVYYZYX[ZYWVYYXXYYVYYTYYT[ZYYYYYYV[YYVYYYWYWYYYYYYYXYZYYYYYYXYY[Y^YYYXUYYYYUXYYZYYYYYYWYYYYXXYXYXYYYZYYXYYXYXYYYYYXYYYYYYYYYYYYXYYYYYYYYYYXXYYYWYYXYYYYXYYYYYYYYYYYYYYXYYYYYYXYXYXYXYXYYYYYYYXYYXYXYYYYYYYYYYYYYYYXYYXYYYXYYXXYZYY[YYYYXYYYWXYYYXYWYXXYYXYYYXYYYYXXYYYYXXYXYYYXYYYWXYXYYYXZYYYYYYXXYZYYYYXYXYYYWYYYXYXYYYYYYYYYYYXYYYYWYYYXYYYYXYYYXYYYWYYYYYXXYXZYYZYYWY[VYWYYYYYXYY[XYYYY]YYYXYYYYYYYYYY[WYYYWYYZYYYYZYYYYYYYYYYYYYYZYY[WYYXYXYXXY\YYYYYYYYXYYWYXZYYYYYYYYYYYYYYXYYWYYY[YYXWY[YYYYYYYUYYYUWYYYYYWYUVYYY]YYWWYYYYXYYYY[ZYWXYYVYYYXZYZYY[[YYYYYYYXZYXZYYYVYZYYYYYYYZYZYYYYYYYYYYYZYYYZWYYYYX[YYWYYYXYYXXYYYYXWYYYZYY[YYXYYXYXYYYYYXYYZXYYYYYYYYYYYYYYYYYYYXXYYYYYYXYYYYZYYYYYYYYYYYYYY[YYXXYYXYZYYXXYXYYYYYYYXYYXYXYYYYYXYYYYYYYYYYYYXYYYXYYWXYZYYYYYYYXYYYXYYYYXYYYWXYYYYYYXYYYYXYYYYYXYYXXYYXYYYYYYWYYVXYYYYYYYYYYYYYYYXYYYYYXYYYXYXYYYYYYXYYXYYYYYXYYYYWYYYYXYYYaYYYDYYYWJJSYVaYYbYYQYOVYWYYYYYWYYRQYYYYZYYYTYYYYYZYYYY_NYYYVYYUYYYZ\YQYYYYYYYYYYYY[YYVUYYSYTYSP`cQYYYYYXYUYVQY[ZYYYYLYYYYYYYYYOYYQYYYVYYSQY\YYdYYYYaYUYRUYYYcYXYNXYY_[YYWNYYYJTYTYWX_Y[MYYZYYYZQYUYYPX[YYYYYYJaYYPYYYUYKYYYZYYYRYVYYYYYYYYYVYZYYYWeYYYcTQYYQYYYYYYXXYYYYXXYYXYYYZYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYZYYZYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYXYYYYYYYYYYXYYYYXYYYZYYXWYYYXSWXYVYYY\YYVYYXYXYYYYYYYYYVYYYYZYYYZYYYYYZYYYYZVYYYZYYXYYYZZYVYYYYYYYYYYYY^YYUYYYZYXYXWXZXYYYYYYYYYVVYYZYYYYVYYYYYYYYYVYYUYYYWYYWUY^YY[YYYYYY[YVZYYY\Y_YUWYYYXYYXXYYYVWYYYWV\YZVYYX[YY\YYXYY[WZYYYYYYW]YZZYYYXYWYYYWYYYXYXYYYYYYYYYWY[YYYW\YYYXXWYYVYYY[YYWXYYYXYWUYZZYY^YYYYYWYWYYYYYYYYXXYYYYYYYYWYYYYYZYYYYXWYYYUYYYYYYZ\YYYYYYYYYYYYYYWYY\WYYYYWYXU\[YYYYYYYY]YWXYVWYYYYVYYYYYYYYYXYYYYYY[YYXWY^YY]YYYY[YYYWWYYYZYWYUWYYZYYYYWYYYXWYXYXZZYYVYYX[YYXZYWYYX[ZYYYYYYXZYZVYYYWYVYYYYYYYXY]YYYYYYYYY\Y^YYYZYYYY[WYYY[YYYYYYUHYYYWWTQYVWYYWYYYYRXYUYYYYYZYYXWYYYYXYYYVYYYYYWYYYYZVYYYVYYTYYYYWYXYYYYYYYYYYYYXYY^UYYUYYYUV[WZYYYYYWYWY^XYUXYYYYVYYYYYYYYYRYYYYYYYYYTZYWYYTYYYYRYUYWTYYY]YSYXWYYZWYYWZYYYTXYSYT_ZYPVYY\VYYTRYXYYT[XYYYYYYZVYYSYYY[YXYYY[YYYWYZYYYYYYZYYYYOYYYSUYYY_ZXYYVYYY[YYTXYYYXTTWYW]YY_YYVYYVYXYYYYYXYYXVYYYYYZYYWYYYYYZYYYYYTYYYTYYWYYYZZYXYYYYYYYYYYYYZYYWWYYWYZYWVY[WYYYYYZYXYXVYVXYYYYVYYYYYYYYYXYYWYYYWYYXWY[YY^YYYY]YZYWVYYY\YWYTXYYWZYYXVYYYTYYYYZWYYZWYYW\YYXWYVYYWWZYYYYYYW^YZWYYYXYTYYYXYYYVYXYYYYYYZYYWY\YYYWZYYYYXWYYVYYYZYYWWYYYWUWXYVZYY_YYVYXWYXYYYYYWYYXVYYYYYYYYXYYYYYYYYYYYVYYYXYYYYYYZXYVYYYYYYYYYYYY^YYWWYYWYXYXUYXWYYYYYYYYYWVYYXYYYYVYYYYYYYYYWYYTYYYWYYVUY[YY\YYYYYY[YWYYYYYY\YTVYYXXYYWXYYYUWYYYWVYYYUYYWZYY[VYVYYWVZYYYYYYWZYYYYYYXYWYYYWYYYVYXYYYYYYXYYVYYYYYW\YYYXYVYYWYYYZYYXYYYYYXXXYYYYYZYYYYYYYYYYYYYXYYZXYYYYYYYYXYYYYYYYYYYYXYYYXYYXYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYXYYXXYYYYYYYYYYXYXXYYYYYYYYYYYYYYYYYWYYYXYYXYYZYY[YYYYZYYYXXYYYYYXYXXYYYYYYYYYYYWYYXYXYXYXXYYYYYYYYYXYYXXYYYYYYYYYYYXYYYYYXYYYXYYYXYYYYYYYYXYYYYYYYYZXYYYXYYYYYYYY_YYXTYYY[KOXYS_YYbYYSYUXYZYYYYY[YYWQYYYY[YYYWYYYYYYYYYY_QYYYWYYVYYYZ]YRYYYYYYYYYYYYaYYPWYYVYYYUR^aSYYYYYYYYYROYWZYYYYQYYYYYYYYYSYYQYYYVYYSOYbYY^YYYY_YZYSXYYYbY`YOWYY^YYYURYYYPUYUYXS_Y\QYYW]YY^TYWYYYVZYYYYYYNdYZ[YYYTYOYYYYYYYUYWYYYYYYZYYYY_YYYVdYYY^TSYYQYYYXYYXXYYYXYXVYXXYYZYYXYXXYWYYYYYYYYXXYYYYYYYYXYYYYYXYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYXYYXXYYWYXYXWYYXYYYYYYYXYWXYXXYYYYXYYYYYYYYYXYYXYYYXYYXXYXYYYYYYYVYVYXYYYYYYYYWXYYXWYYXXYYYWYYWYXYXYXXYYXYYYWWYYYYXXYYYYYYYXXYYZYYYXYXYYYXYYYWYXYYYYYYWYYYYXYYYXWYYYXXYYYWYYYVYYVUYYYWTYYYSZYY_YYUYWUYXYYYYYVYYVUYYYYYYYYWYYYYYXYYYYWVYYYZYYWYYYZXYVYYYYYYYYYYYY\YYSWYYXYXYVWUVTYYYYYYYVYWTYWXYYYYVYYYYYYYYYUYYSYYYVYYUTY\YY]YYYYVYYYVZYYYUY\YUUYYWUYYWZYYYTWYZYWTZYWTYYWXYYYVYTYYVUZYYYYYYXZYXYYYYXYVYYYSYYYWYVYYYYYYVYYUYUYYYVZYYYTXUYYUYYYZYYZWYYYYNSYYV_YY^YYSYXWYXYYYYY[YYVQYYYY\YYYXYYYYYYYYYY]QYYYYYYWYYYZ\YTYYYYYYYYYYYYdYYT[YYXYYYTS^`UYYYYYYY[YTPY[\YYYYQYYYYYYYYYUYYPYYYXYYRPY`YYZYYYY]Y\YSZYYYaYbYOUYY\YYYWTYYYTVYZYWV^Y]QYYW[YY`WYXYY\XZYYYYYYRcY[]YYYVYSYYYYYYYWYXYYYYYYYYYWY_YYYVcYYY\VSYYUYYYYYYXXYYYYWXXYXYYY[YYXYYXYYYYYYYWYYYXYYYYYYYYYYYYYYYYYYYXXYYYXYYXYYYYXYYYYYYYYYYYYYYYYYXXYYXYYYXWXXXYYYYYYYYYYWYXYYYYYYYYYYYYYYYXYYWYYYXYYXXYZYY[YYYYXYXYYXYYYWYXYXYYYXXYYYYYYYXYYXYXXXYXXYYYYYYYXYWYYXXYYYYYYYXXYYXYYYXYYYYYWYYYXYXYYYYYYYYYXYZYYYXXYYYXYYYYXYYYWYYXWYYYYUZZYVXYY[YYWYXWYXYYYYYWYYXVYYYYYYYYZYYYYYZYYYYXXYYY[YYYYYYZZYWYYYYYYYYYYYY_YYVWYYYYYYWXWYWYYYYYYYYYYVYYXYYYYVYYYYYYYYYVYYUYYYWYYUTY[YYYYYYYWYYYVYYYYWY\YUWYYYZYYXYYYYWXY[YWV[YXVYYYYYYYXYYYYYXYYYYYYYVYYZ[YYYXYYYYYWYYYYYXYYYYYYWYYWYXYYYX[YYYWXVYYWYYYXYYTVYYYVPVXYR\YY`YYSYTUYXYYYYYVYYURYYYYUYYYYYYYYYZYYYYYUYYYVYYZYYYZZYUYYYYYYYYYYYYbYYURYYVYXYUUUYUYYYYYYYVYSSYXSYYYYSYYYYYYYYYVYYPYYYVYYSRY]YY[YYYYZY]YTUYYYZY\YPUYYXZYYVWYYYQWY]YUSXYXUYYW[YY[WYWYYWUZYYYYYYU^YZ[YYYWYUYYYSYYYXYXYYYYYYWYYSYXYYYU[YYYUWPYYSYYYYYYXVYYYXWZYYWZYY[YYXYZWYXYYYYYYYYYXYYYYZYYYYYYYYYYYYYYXWYYYXYYYYYYYZYXYYYYYYYYYYYYXYYXYYYYYYYYYXYXYYYYYYYXYZXYYZYYYYYYYYYYYYYYXYYYYYYYYYXWYZYY[YYYYXYZYXXYYYYYYYXXYYYYYYXYYYYYYYZYYXYYXXYYWZYYXXYYYYZXYYYYYYYXYYX[YYYXYXYYYXYYYYYXYYYYYYXYYXYXYYYYYYYYXXYYYWYYY[YYZYYYYZRVZYY_YY`YYTY[WYYYYYYYYYYXSYYYY_YYY[YYYYYZYYYY[RYYYXYYYYYY[]YUYYYYYYYYYYYY`YYVZYYYY[YVV[^WYYYYYZYYYYSYZ\YYYYSYYYYYYYYYVYYSYYYWYYSQY^YY\YYYY[Y^YSYYYY_Y^YRVYY[]YYXVYYYWXY[YZV]Y\SYYV\YY_WYXYY\WZYYYYYYUbY[\YYYWYSYYYXYYYZYXYYYYYYZYYXY^YYYWbYYYYXVYYTYYYZYYXYYYYXWYXYYYYY[YYXYXXYYYYYYYXYYYXYYYY[YYYYYYYYYYYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYZYYXYYYXYYYYYYXXYYYYYYYXYYWYWXYYYYYYYYYYYYYYYYYVYYYXYYXYY[YY[YYYYZYXYWXYYYYYYYWYYYXYYYXYYYYWYYXYXYYYYXYYXYYYZXYWYYYXYYYYYYYXYYYXYYYYYXYYYXYYYXYYYYYYYYYYYYYZYYYZXYYYXZXYYXYYY\YYWVYYYWVUUYY]YY_YYWYXWYXYYYYYWYYYXYYYYZYYYVYYYYYZYYYYWUYYYTYYWYYYZYYXYYYYYYYYYYYYXYYXXYYVYWYWUZZXYYYYYZYZYWWYVXYYYYWYYYYYYYYYWYYVYYYXYYXVY\YY_YYYY\YYYXWYYYYYWYVXYYYWYYXWYYYUXYWYXWYYYUYYX[YYXVYUYYVWZYYYYYYVZYZVYYYXYSYYYYYYYTYYYYYYYYZYYZY^YYYXZYYYYVXYYXYYYYYYTYYYYVXWSYX\YYcYYVYVVYWYYYYYTYYXUYYYYXYYYVYYYYYYYYYYXUYYYTYYXYYYZXYXYYYYYYYYYYYYXYY^XYYUYXYVVZYWYYYYYZYXYWVYUUYYYYUYYYYYYYYYVYYVYYYXYYWUYYYYeYYYYZYXYUWYYYWYTYTVYYVVYYXWYYYQYY[YWYVYVVYYW\YYVUYQYYQWZYYYYYYWWYXSYYYWYTYYYVYYYTYZYYYYYYVYYZY[YYYYTYYYWWVYY[YYYVYYYUYYYXTXYYRWYY\YYUYVSYXYYYYYYYYUUYYYYWYYYYYYYYYXYYYYXYYYY_YYUYYYYYYVYYYYYYYYYYYY`YYTYYY[YTYVVWXTYYYYYYYVYXTYWVYYYYWYYYYYYYYYUYYSYYYSYYTRY[YYXYYYYVYWYV[YYYTY_YVXYYXUYYVYYYYVWYUYVR[YYTYYWYYY\VYVYYWTYYYYYYYTYYYYYYYXYZYYYSYYYVYUYYYYYYVYYUYTYYYW]YYYSWTYYTYYYYYYXXYYYYXYXYXYYYZYYXYYXYYYYYYYYYYYYYYYYZYYYYYYYYYZYYYYYYYYYYYYXYYYYZYYYYYYYYYYYYYYZYYXZYYYYXYZYYYYYYYYYYYYYYXYYZYYYYYYYYYYYYYYYYYXYYYXYYYXYZYYYYYYYYYYYYZYYYXYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYZYYYYYXYYXXYYYYYYYYYYZYYYYYYYYYYXYYYXYZYYYYYYZYYYYYYYYZYYYYXYYYYXYYYZYYVWYYYXWVVYZZYY]YYXYYWYXYYYYYXYYXXYYYYWYYYWYYYYYZYYYYYWYYYVYYXYYYYZYYYYYYYYYYYYYYVYY[WYYWYWYXWYZYYYYYYZYYYWXYVXYYYYWYYYYYYYYYWYYXYYYZYYXVY[YY]YYYYZYYYWWYYYXYUYVXYYYXYYXWYYYWWYYYYZZYWWYYX[YYWXYVYYVYZYYYYYYXXYZWYYYXYWYYYXYYYWYZYYYYYYYYYZY\YYYYWYYYYWYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYZYYYXYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYWZYYYX[VVYZZYY\YYWYYYYUYYYYY]YYXWYYYYYYYYXYYYYYYYYYY[WYYYWYYYYYYZ]YZYYYYYYYYYYYYVYY_VYYVYYYSVZ_[YYYYYZY\YYVYWWYYYYWYYYYYYYYYWYYXYYY]YYWXY[YY[YYYYXYZYSVYYY\YVYTWYYXZYYYWYYYYWYZYX_XYWVYYWYYYWZYXYYU]ZYYYYYYYZYXXYYYWYWYYY\YYYYY]YYYYYYZYY]Y^YYYXUYYY\XYYYYYYY_YYYVYYYYWRTY]`YYbYYVY[UYWYYYYYXYYYTYYYY^YYYVYYYYY]YYYY\SZYYWYY[YYY[\YVYYYYYYYYYYYY\YY]UYYVYZYUTabYYYYYYZY]YXTY]ZYYYYQYYYYYYYYYVYYWYYY]YYVQYaYY_YYYY`Y_YSWYYYaYXYQXYY\`YYWRYYYYVYYY[\]Y_SYYV]YY_XYXYY[][YYYYYYUbY[ZYYYUYQYYY\YYY\YYYYYYYY[YY\YgYYYXaYYY^XZYYXYYYYYYYYYYYYYYXYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYXYYVWYYYWWYWYWYYY^YYXYXWYXYYYYYWYYXXYYYYXYYYWYYYYYYYYYYWWYYYXYYVYYYYWYYYYYYYYYYYYYYVYYXXYYWYVYYXWXXYYYYYYYWYXXYXXYYYYYYYYYYYYYYXYYXYYYVYYXWYYYY[YYYYWYWYYYYYYTYVYYXYYXWYYXYYYYVXYXYXVXYWXYYXXYYTVYVYYWWZYYYYYYXVYYXYYYXYWYYYUYYYVYXYYYYYYXYYXYWYYYXWYYYVXYYYXYYYZYYWYYYYXWVWYX[YY]YYYYZWYXYYYYYXYYZXYYYYXYYYWYYYYYZYYYYXVYYYVYYXYYYZ[YYYYYYYYYYYYYYYYYZXYYYYYYYWY[XYYYYYZYYYXXYXXYYYYXYYYYYYYYYXYYXYYYXYYXXY]YY]YYYYZYYYYXYYYZYXYXXYYYXYYYWYYYWXYYYYWZYZXYYX\YYXXYWYYYXZYYYYYYX[YZVYYYXYVYYYXYYYWYYYYYYYYYYYYY[YYYY[YYYXWYYYYYYYYYYWXYYYXXYWYYYYY[YYXYXXYXYYYYYWYYYYYYYYYYYYXYYYYYYYYYYYXYYYWYYXYYYYYYYYYYYYYYYYYYYWYYYYYYWYXYXXXXXYYYYYYYXYXXYWXYYYYXYYYYYYYYYXYYXYYYXYYXXYXYY[YYYYYYWYXXYYYXYXYXXYYXXYYYYYYYVYYYYXXXYWXYYYYYYWXYVYYWXYYYYYYYXXYYXYYYYYXYYYXYYYWYYYYYYYYXYYYYXYYYXWYYYXXYYYXYYYZYYWWYYYZTWYYV[YY^YYVYYVYXYYYYYXYYXVYYYYZYYYYYYYYYZYYYYXWYYYWYYWYYYZYYXYYYYYYYYYYYYZYYVWYYXYXYWWXZWYYYYYYYXYZVYXYYYYYVYYYYYYYYYVYYVYYYXYYWVY[YY\YYYYZYYYWYYYYZYWYUXYYYYYYWWYYYVYYYYYXYYZUYYX[YYYWYXYYXWZYYYYYYVZYYZYYYWYWYYYWYYYYYXYYYYYYYYYWYZYYYXYYYYXYXYYUYYYYYYYXYYYYYYXYYYYYZYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYZYYYYXYYYYXYYYXYYYYYYYXYYYYYYYYYYYYYYXYYXYYYYYYYXYYYYYXYYYYYYYYYXYYYYYYXYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYZYYWXYYYYUVYYW[YY^YYWYYWYXYYYYYXYYYVYYYYZYYYYYYYYYZYYYYYUYYYVYYZYYYZ[YXYYYYYYYYYYYY[YYYUYYWYZYWWZ\WYYYYYYYZYXUYYVYYYYTYYYYYYYYYWYYVYYYYYYXVY]YY\YYYY\YZYWWYYYZYXYTWYYZZYYXVYYYVYYYYWXYYYVYYXZYY[XYXYYXYZYYYYYYV[YZZYYYWYUYYYYYYYZYZYYYYYYYYYXY\YYYXYYYYZWWYYVYYYbYYWXYYYYTRUY[`YY`YYVY[VYXYYYYYXYY\SYYYY^YYYVYYYYYZYYYYZTYYYSYYZYYYZ]YWYYYYYYYYYYYYZYY\XYYVYYYVT`bXYYYYYZYYYVSYY\YYYYTYYYYYYYYYWYYUYYY\YYXSY`YY`YYYYbY_YRUYYYaYVYPZYY\bYYWSYYYVVYZY[[\Y[SYYV]YY]YYXYYY\ZYYYYYYUcY[\YYYUYSYYY]YYY[Y[YYYYYY^YY\YfYYYZ^YYY_VZYYUYYYYYYVWYYYXVWYYXZYY\YYXYXXYXYYYYYXYYYWYYYYZYYYYYYYYYZYYYYYWYYYZYYXYYYYXYXYYYYYYYYYYYY]YYWYYYXYWYXWXXWYYYYYYYXYXWYXZYYYYXYYYYYYYYYWYYVYYYXYYVWYZYYZYYYYYYZYWYYYYXY[YVXYYYZYYWXYYYVYYZYXWXYYWYYW[YYYXYVYYWWYYYYYYYVYYYYYYYXYXYYYWYYYWYXYYYYYYXYYWYYYYYXYYYYWYXYYWYYYXYYVYYYYXXUVYW[YY_YYWYXXYXYYYYYVYYZVYYYYVYYYXYYYYYYYYYYXVYYYWYYWYYYZYYYYYYYYYYYYYYYXYYYWYYXYWYWWXXXYYYYYZYWYWWYWXYYYYWYYYYYYYYYXYYVYYYWYYWWYZYY]YYYYYYZYXWYYYWYVYVWYYVVYYXYYYYUYYYYWWXYWXYYWYYYVWYVYYTWZYYYYYYWWYZVYYYXYWYYYVYYYXYXYYYYYYYYYXYYYYYWWYYYWWVYYYYYY]YYWWYYYYVVXYX^YY]YYWY[VYXYYYYYYYYYWYYYYZYYYXYYYYY[YYYY[VYYYVYY[YYYZ]YXYYYYYYYYYYYYYYYXXYYYYZYXW\\YYYYYYZYXYXWY[[YYYYVYYYYYYYYYWYYVYYYYYY[UY]YY]YYYY]Y^YVYYYY^YWYTWYYZ\YYVUYYYXWYYYZY[Y\XYYX[YY\WYZYY\XZYYYYYYW^Y[ZYYYXYVYYYYYYY\YZYYYYYY]YY[Y]YYYX\YYY[XYYYVYYYXYYVXYYYXWXYYXZYY\YYXYXYYYYYYYYVYYYWYYYYWYYYZYYYYYYYYYYYWYYYVYYYYYYYYYYYYYYYYYYYYYYZYYYXYYYYYYWXXXXYYYYYYYWYXXYYXYYYYXYYYYYYYYYYYYUYYYXYYXXYWYYZYYYYYYZYXWYYYYYWYVXYYWXYYYZYYYVYYZYXXWYXYYYYYYYXXYWYYXXYYYYYYYZZYYXYYYXYYYYYWYYYYYXYYYYYYXYYXYXYYYXXYYYWXWYYXYYY]YYSWYYYVTTSYX^YYcYYUYWUYXYYYYYTYYYUYYYYXYYYVYYYYYZYYYYYTYYYQYYWYYY[XYWYYYYYYYYYYYYUYYZXYYUYXYVTYYWYYYYY[YVYVVYWXYYYYUYYYYYYYYYXYYTYYYWYYWVYYYYeYYYY[Y[YWUYYYVYSYVWYYWVYYXWYYYRXYVYXWXYXVYYW[YYVSYRYYUV[YYYYYYUXYYTYYYXYQYYYVYYYUYWYYYYYYZYYYY^YYYWXYYYXUUYYXYYYXYYXXYYYYXXYYXXYYZYYYYXWYYYYYYYXYYXYYYYYYYYYYYYYYYXYYYYXYYYY[YYXYYYYYYXYYYYYYYYYYYYZYYXYYYXYWYXXXYXYYYYYYYXYXYYXZYYYYYYYYYYYYYYXYYXYYYXYYXWYXYYXYYYYXYXYXYYYYWYZYWXYYXXYYXZYYYXYYWYWXYYWXYYXYYYYXYXYYWYYYYYYYYXXYYYYYYXYYYYYWYYYYYXYYYYYYWYYXYWYYYXYYYYWXYYYXYYY\YYWXYYYYSRWYX]YY_YYUYXYYYYYYYYVYYXVYYYYWYYYYYYYYYZYYYYZTYYYVYYWYYYZ[YVYYYYYYYYYYYY^YYVXYYYYXYWVZZWYYYYYZYYYUUYYZYYYYTYYYYYYYYYXYYRYYYWYYWUY\YY\YYYY]YZYVYYYY[Y[YUXYYZYYYWWYYYSXYWYZVZY[VYYX]YY[VYUYYXWZYYYYYYV]Y]WYYYXYTYYYWYYYUYYYYYYYY[YYWY\YYYV_YYYYWTYYWYYY[YYVZYYYXXUTYZ]YY`YYWY[VYWYYYYYXYY\VYYYYYYYYWYYYYYZYYYYYUYYYUYYYYYYZ]YYYYYYYYYYYYYYUYY_YYYWYYYVW[\ZYYYYYZY[YXVYWWYYYYUYYYYYYYYYWYYVYYY]YYZVY\YYbYYYY]Y[YUXYYYXYTYUUYYXWYYZVYYYWXYZYW\ZYWUYYX[YYVWYTYYU\[YYYYYYWYYXVYYYXYUYYY[YYYWY\YYYYYYZYY]Y`YYYZWYYY\WWYY]YYYWYYWXYYYYWYXYXXYY\YYXYZXYYYYYYYVYYWWYYYYWYYYXYYYYYYYYYYYWYYYYYYWYYYZXYXYYYYYYYYYYYYZYYXYYYYYXYWWXXWYYYYYYYYYWXYWXYYYYVYYYYYYYYYXYYVYYYWYYWVYZYY[YYYYYYXYXYYYYVY[YXXYYYUYYXZYYYVXYXYWVYYXWYYYXYYXWYWYYWWZYYYYYYYWYYXYYYYYVYYYVYYYXYYYYYYYYXYYWYXYYYXYYYYWZXYYYYYYXYYXYYYYYXYWYXYYYZYYYYXYYXYYYYYXYYYYYYYYXYYYXYYYYYYYYYYYWYYYXYYXYYYYXYXYYYYYYYYYYYYWYYYYYYYYXYXXXYYYYYYYYYXYXYYXYYYYYYYYYYYYYYYYYYXYYYXYYXXYYYYZYYYYXYXYXXYYYWYXYXXYYXXYYYYYYYXYYXYYYYYYYYYYYYYWWYXYYWXYYYYYYYYXYYXYYYXYXYYYXYYYXYYYYYYYYXYYYYYYYYXXYYYXWYYYYYYY\YYWWYYYXUWUYY\YY`YYWYYWYXYYYYYWYYXVYYYYXYYYWYYYYYZYYYYZWYYYUYYYYYYZZYXYYYYYYYYYYYYVYY[XYYXYXYWV[ZXYYYYYZYYYXWYWXYYYYVYYYYYYYYYWYYVYYY[YYXUY]YY^YYYY\YZYVYYYYYYWYUXYYYYYYXXYYYWXYYYY\ZYYWYYX[YYYVYUYYXXZYYYYYYWZYYXYYYXYVYYYXYYYWYZYYYYYYYYYYY\YYYXYYYYZXXYYZYYYYYYWYYYYXXYWYYZYY^YYXYZWYXYYYYYVYYYWYYYYXYYYWYYYYYYYYYYYWYYYVYYYYYYZXYYYYYYYYYYYYYYWYYYYYYXYXYXYZXXYYYYYZYXYXXYWXYYYYXYYYYYYYYYXYYVYYYYYYXXYYYY^YYYYZYYYVXYYYXYVYVXYYWXYYYYYYYUYYYYXYXYXXYYYYYYWXYVYYWXZYYYYYYWVYXWYYYYYXYYYXYYYWYYYYYYYYXYYYYZYYYYWYYYWXYYYYYYYYYYXXYYYXWXWYXZYY\YYXYZXYXYYYYYXYYZXYYYYXYYYYYYYYYZYYYYXXYYYXYYYYYYZYYYYYYYYYYYYYYYZYYXZYYYYWYXYXYYYYYYYYYYYXWYXXYYYYXYYYYYYYYYXYYWYYYWYYXXYZYY[YYYYYYYYXYYYYXYYYWYYYYYYYXZYYYXXYXYZWYYYXYYYZYYYYYYYYXXYYYYYYYXYYZYYYYXYXYYYXYYYYYYYYYYYYYYYXYYYYYYZYYYWYYYYYYYYYYYVZYYYXZXUYYZYY\YYXYXWYXYYYYYYYYYXYYYYWYYYXYYYYYZYYYYZXYYYVYYWYYYZ\YYYYYYYYYYYYYYWYY^XYYZYWYWW[[ZYYYYYZY[YWXYUWYYYYWYYYYYYYYYXYYWYYY\YYYWYZYY[YYYYZYYYUXYYYZYUYWWYYXWYYYXYYYWXYYYW[ZYXXYYY[YYWWYWYYV[ZYYYYYYXYYZVYYYXYWYYYZYYYWY[YYYYYYYYY^Y]YYYXVYYYZVXYY\YYY[YYUYYYYXWUWYY\YY_YYWYYWYXYYYYYVYYXUYYYYYYYYYYYYYYZYYYYZUYYYUYYYYYYZZYXYYYYYYYYYYYYZYYZZYYWYZYXW[YWYYYYYZYWYWWYWYYYYYVYYYYYYYYYXYYTYYYYYYWWYYYY^YYYY\YZYXWYYYZYVYUXYYXYYYXWYYYUYYXYXWYYYWYYX[YYYWYUYYVXZYYYYYYX\YZWYYYXYUYYYYYYYWYXYYYYYYYYYYY\YYYYZYYYYXVYYXYYY[YYXXYYYYWUXYY^YY^YYWY\UYWYYYYYWYYZWYYYY[YYYXYYYYYZYYYYYWYYYVYY[YYYZ[YYYYYYYYYYYYYYYYY[ZYYXYYYWXYZXYYYYYZYYYXVYYZYYYYWYYYYYYYYYWYYUYYYZYYYWYZYY^YYYY[Y\YUXYYY[YVYUWYYY[YYYVYYYXYYZYYZZYXVYYW\YYXXYWYYZZZYYYYYYWYYZZYYYWYWYYYZYYYZYZYYYYYY[YYZY^YYYZWYYYYVXYYXYYYWYYWXYYYWWZYYWWYY\YYWYXVYXYYYYYVYYWWYYYYWYYYXYYYYYXYYYYWYYYY[YYXYYYYXYXYYYYYYYYYYYY\YYWWYYZYWYWXXWVYYYYYYYXYXXYWWYYYYXYYYYYYYYYVYYVYYYUYYVUYYYYZYYYYWYXYWYYYYUY[YVXYYWWYYWYYYYWXYWYVUXYVWYYXWYYXVYVYYUVYYYYYYYXVYYWYYYXYYYYYTYYYXYWYYYYYYWYYVYWYYYVXYYYUZXYYWYYYZYYXYYYYYWWYYYYYY[YYYY[YYYYYYYYXYYYXYYYYYYYYZYYYYYYYYYYYXYYYXYYXYYYZZYYYYYYYYYYYYYYZYYYZYYXYYYYXYXYYYYYYYYYYYXYYYYYYYYYYYYYYYYYWYYWYYYXYYXXYZYYZYYYYZYYYYYYYYYYYYYYYYYYYYYZYYYYYYXYYXYYYYYYYZYYZXYXYYYXYYYYYYYWYYZYYYYYYXYYYXYYYXYYYYYYYYZYYYYYYYYYYYYYXYYYYYYYYYYYWXYYYXYXXYXZYY]YYYYZWYYYYYYYXYYYXYYYYZYYYXYYYYYYYYYYYXYYYXYYYYYYZZYXYYYYYYYYYYYYXYY[YYYXYXYYYXYXYYYYYYYYYZXYXZYYYYYYYYYYYYYYXYYYYYYYYYXWYYYY\YYYYYYYYWXYYYXYWYYXYYXXYYXYYYYYYYXYYXYYXYYYXYYYWWYYYYYXZYYYYYYXXYYZYYYXYXYYYWYYYYYXYYYYYYXYYYYZYYYYWYYYXYYYYXYYY\YYTXYYYWRSVYW`YYcYYUY[UYWYYYYYVYYXTYYYYZYYYWYYYYYZYYYY[SYYYUYYYYYY[ZYWYYYYYYYYYYYY[YYWXYYWYYYUVY[UYYYYYZYVYWUY[ZYYYYUYYYYYYYYYWYYRYYYYYYVTY]YY`YYYY]Y_YVVYYYZYYYTWYYXYYYVWYYYTWYXY[WYYZVYYVZYY[VYTYYYWZYYYYYYW_YYVYYYWYRYYYWYYYYYWYYYYYYZYYVY]YYYV^YYYYXSYYVYYYWYYVWYYYYTWWYVYYY^YYVYYUYYYYYYYWYYWVYYYYVYYYYYYYYYYYYYYXWYYY[YYWYYYZYYXYYYYYYYYYYYYZYYWXYYXYVYVVXYVYYYYYYYXYWVYVXYYYYWYYYYYYYYYUYYUYYYVYYWUY\YYYYYYYZYYYVXYYYVYZYVWYYWTYYXZYYYUXYWYWVZYWVYYXXYY\VYVYYUWZYYYYYYUXYYZYYYXYWYYYUYYYYYYYYYYYYXYYVYXYYYWXYYYXWVYYWYYYWYYVWYYYVWZWYWWYY]YYWYWWYXYYYYYUYYWVYYYYUYYY\YYYYYYYYYYXVYYYZYYYYYYZWYWYYYYYYYYYYYY]YYWVYYWYUYWVVVVYYYYYYYWYVWYWVYYYYWYYYYYYYYYXYYTYYYVYYVVYXYYXYYYYVYXYWWYYYUY\YUWYYTXYYXZYYYSXYYYSUWYWXYYVXYY[WYVYYYVZYYYYYYZYYZYYYYXYWYYYTYYYZYVYYYYYYVYYUYVYYYVXYYYUZVYYWYYYZYYWYYYYYWWWYXZYY^YYXY[WYXYYYYYWYYYVYYYYYYYYXYYYYYYYYYYZXYYYXYYXYYYZYYYYYYYYYYYYYYYZYYZZYYYYYYXXZXXYYYYYZYXYXWYXXYYYYWYYYYYYYYYWYYVYYYYYYXWY\YY]YYYY[YZYWYYYYWYXYVXYYYYYYXYYYYXYYXYYYYYYXYYYZYYYYYWYYVXZYYYYYYWXYZYYYYXYXYYYXYYYYYZYYYYYYZYYYY[YYYZYYYYXXXYYYYYYYYYWYYYYXXWWYYZYY\YYXY[WYYYYYYYXYYYXYYYYXYYYYYYYYYZYYYYYXYYYWYYXYYYZXYYYYYYYYYYYYYYWYYZZYYYYYYXYYXXYYYYYZYYYYXYXYYYYYYYYYYYYYYYXYYXYYYYYYXXY[YY\YYYYZYZYXYYYYWYXYXYYYYWYYXYYYYXYYXYZYYYXXYYYYYYXZYXYYXXYYYYYYYXXYZYYYYYYWYYYXYYYYYYYYYYYYYYYXY[YYYYWYYYYYYYYYYYYYYYVXYYYXXYWYXYYY\YYXYXWYXYYYYYWYYXXYYYYWYYYXYYYYYYYYYYXWYYYYYYWYYYYXYYYYYYYYYYYYYYZYYXYYYXYXYXWXXXYYYYYYYWYXXYWXYYYYXYYYYYYYYYXYYVYYYXYYWWYXYY[YYYYXYWYWXYYYWYWYWXYYWWYYXYYYYWYYXYWWXYWXYYYXYYXWYVYYUXYYYYYYYXWYYVYYYYYYYYYWYYYWYXYYYYYYXYYXYXYYYXWYYYWYXYYXYYYXYYXXYYYXXXYYWXYY\YYXYZXYXYYYYYWYYYXYYYYYYYYYYYYYYYYYYYYVYYY\YYXYYYY[YXYYYYYYYYYYYY\YYXYYYYYYYXYYYWYYYYYYYXYYXYXYYYYYWYYYYYYYYYWYYWYYYWYYWVY\YYXYYYYYYXYWYYYYYY[YWWYYYXYYWYYYYXYYXYWXYYYYYYXXYYZWYXYYYXYYYYYYYXZYZYYYYXYXYYYWYYYYYXYYYYYYXYYWYXYYYXZYYYWYYYYXYYYZYYWXYYYYUUWYX[YY^YYWYYWYYYYYYYWYYYWYYYYYYYYZYYYYY[YYYYYWYYYYYYWYYYZXYYYYYYYYYYYYYY[YYXYYYXYXYWXXXXYYYYYYYXYWWYWXYYYYWYYYYYYYYYXYYUYYYWYYWWY[YYZYYYY[YZYXXYYYVYYYWXYYYXYYXYYYYWXYWYYWYYYXYYXXYYXWYVYYWWZYYYYYYWZYYWYYYYYWYYYWYYYWYYYYYYYYYYYYYZYYYWZYYYWWWYYYYYYYYYVXYYYWWXXYXYYY]YYWYYVYXYYYYYWYYYXYYYYXYYYYYYYYYXYYYYWWYYY[YYVYYYYXYXYYYYYYYYYYYY[YYXYYYZYVYYXYWXYYYYYYYWYYXYVXYYYYYYYYYYYYYYXYYWYYYVYYXXYZYYZYYYYWYVYXYYYYVYYYXXYYWXYYXXYYYVYYVYXVYYWXYYWXYYYVYVYYVVYYYYYYYWVYYWYYYXYWYYYVYYYVYXYYYYYYXYYWYWYYYXZYYYVZYYYXYYYZYYWXYYYXXXXYYZYY\YYYYYXYXYYYYYXYYZXYYYYYYYYYYYYYYZYYYYXXYYYWYYYYYYZZYZYYYYYYYYYYYYXYYZYYYXYWYYYYYXYYYYYZYXYXXYXYYYYYXYYYYYYYYYYYYXYYY[YYZXY[YY[YYYY[YZYWYYYYYYWYVXYYYXYYYXYYYYXYYYYZXYYXYYYZYYXXYWYYXYYYYYYYYYXYYXYYYXYXYYYYYYYXYZYYYYYYYYYZY[YYYZXYYYYYYYYZYYYYYYXXYYYYXWXYYYYY[YYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYWYYYYYYYYYYYYYYYYYYYYYYYYYYXYXYYXYXYYYYYYYYYYYYYWYYYYYYYYYYYYYYYXYYYYYYXYYYXYYYYZYYYYYYXYYXYYYXYYYXYYYYWYYYYYYYXYYXYYXYYYYYYYZYYYWYWYYWXYYYYYYYXXYYXYYYYYYYYYXYYYXYYYYYYYYYYYYYXYYYXYYYYXXYYYYYYYYYYVWYYYWWVVYWYYY^YYWYXUYXYYYYYWYYXWYYYYWYYYYYYYYYXYYYYXWYYY[YYUYYYYZYXYYYYYYYYYYYY[YYXXYYZYXYXWYXXYYYYYYYXYXXYVWYYYYWYYYYYYYYYWYYWYYYUYYWUY\YY[YYYYYYVYWYYYYXYZYWWYYXWYYXYYYYVWYVYWV[YXWYYWYYYZUYVYYVVYYYYYYYWXY[WYYYYYVYYYUYYYVYXYYYYYYXYYXYXYYYWZYYYUYWYYXYYY[YYVYYYYXVTXYY\YY^YYWYZWYXYYYYYXYYXWYYYYZYYYWYYYYYZYYYYYVYYYWYYXYYYZZYYYYYYYYYYYYYYZYYZYYYWYXYXXYZXYYYYYYYYYWWYWYYYYYWYYYYYYYYYWYYVYYYXYYXWYZYY\YYYY]YZYWWYYYZYWYVYYYYXYYXXYYYWXYVYZXYYYWYYX[YYYVYVYYXWZYYYYYYVYYYWYYYYYWYYYYYYYWYYYYYYYY[YYZY\YYYYXYYYYWWYYXYYYWYYUXYYYWW[TYWYYY^YYXYVWYXYYYYYVYYXYYYYYWYYYWYYYYYXYYYYVWYYYVYYWYYYYVYXYYYYYYYYYYYYUYYXWYYVYTYXWWXYYYYYYYYWYVXYWXYYYYXYYYYYYYYYXYYWYYYWYYWWYXYY\YYYYVYWYXWYYYRYUYXWYYVUYYYZYYYSWYYYWVXYVXYYWXYYTUYVYYUWYYYYYYYXVYXVYYYYYVYYYSYYYVYXYYYYYYWYYYYXYYYWUYYYWWXYYYYYYYYYUXYYYXVWXYX[YY^YYWYZWYXYYYYYWYYXWYYYYXYYYYYYYYYYYYYYYVYYYVYYZYYYZYYXYYYYYYYYYYYYZYYWYYYXYZYXVXXXYYYYYYYWYWWYXYYYYYWYYYYYYYYYWYYTYYYXYYWXYYYY\YYYYYY[YXWYYYXYWYWXYYXXYYXZYYYUZYZYXWXYWXYYXYYYXWYVYYWWZYYYYYYVWYYVYYYYYXYYYXYYYXYXYYYYYYXYYXYYYYYXXYYYWXWYYXYYY^YYYWYYYYYUVY[]YY]YYXY[VYYYYYYYWYY\WYYYYZYYYXYYYYY[YYYYYVYYYWYY[YYYZ^YWYYYYYYYYYYYYYYY[YYYXY[YVX]\XYYYYYZYXYWXYYYYYYYVYYYYYYYYYXYYUYYY]YYXVY]YY[YYYY_Y]YQWYYY^YWYTWYYZ_YYWVYYYXXYZYZ]ZYZWYYWZYYZWYXYY[\ZYYYYYYW^YZZYYYVYWYYY]YYYZY[YYYYYY\YY]YaYYYZ[YYY\WXYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY[YYXYYYYYWVXYY]YY^YYXY[WYWYYYYYWYYYWYYYY\YYYXYYYYYYYYYYXVYYYVYYZYYYZZYXYYYYYYYYYYYYZYY\YYYXYZYYWZZXYYYYYZYYYXXYXYYYYYWYYYYYYYYYYYYUYYYYYYWVY\YY^YYYY[Y[YTWYYYZYWYUWYYY[YYXWYYYXZYXYXYYYXWYYWZYYYWYWYYZYZYYYYYYXYYYYYYYWYWYYYYYYYYYZYYYYYYZYYZY]YYYZYYYYXXZYYYYYY\YYTXYYYXRSVYX]YYaYYUYZUYWYYYYYWYYWUYYYYUYYYYYYYYYZYYYY[VYYYUYY[YYYZZYXYYYYYYYYYYYYYYYXVYYWYXYTVYZWYYYYYZYXYUVYYWYYYYTYYYYYYYYYWYYRYYYZYYXUYZYY`YYYY\Y\YVVYYYXYVYRVYYXYYYXWYYYTWYZYWYYYZVYYWYYYZXYVYYWXZYYYYYYU\YZVYYYXYSYYYXYYYZYXYYYYYYZYYXY]YYYWXYYYZXUYYWYYY\YYWYYYYXXVWY[YYY]YYXYYWYXYYYYYZYYYUYYYYXYYYXYYYYYXYYYY\WYYYXYYYYYYZ\YZYYYYYYYYYYYYZYY[YYYZY[YXW^\ZYYYYYYYZYXVYYWYYYYUYYYYYYYYYWYYWYYY\YYYUY\YYYYYYY]Y\YTYYYY^YYYUWYY[ZYYYVYYYWUYXYY^ZY[VYYXYYY]XYWYYY\ZYYYYYYX[YYXYYYXYWYYY\YYY[Y\YYYYYY[YY[Y_YYYW[YYY[WZYYYYYYXYYW[YYYYYXWYYVYYYYYYYWXYZYYYYY[YYYWYYYYWYYYXYYYYYYYYYYYXYYYWYYXYYYYZY\YYYYYYYYYYYYVYYYVYYZYXYSW[\[YYYYYYYZYWVYUWYYYYWYYYYYYYYYVYYWYYY]YYYWYXYYWYYYYVYXYQUYYY\YWYTUYYXUYYYYYYYYWYWYW_XYWXYY[WYYXWYWYYU\YYYYYYYXWYYWYYYZYYYYY]YYYXY]YYYYYYYYY\YZYYYUXYYY]UYYYXYYYZYYWXYYYWSVVYV[YYbYYTYXVYXYYYYYVYYUSYYYYVYYYWYYYYYXYYYY[UYYYZYYXYYYZYYUYYYYYYYYYYYY[YYTTYYYYXYTTYZTYYYYYYYWYVTYVUYYYYSYYYYYYYYYTYYRYYYTYYTQY\YY`YYYYZYWYUYYYYWY\YQXYYWVYYVXYYYRVYVYUSXYZSYYWXYY^RYTYYUUZYYYYYYTYY[YYYYWYSYYYSYYYWYWYYYYYYYYYVYWYYYU^YYYW[TYYVYYYYYYYYYYYYXXXYYYYY[YYYYYXYYYYYYYXYYYXYYYYYYYYYYYYYYZYYYYYXYYYXYYYYYYYZYYYYYYYYYYYYYYYYYXYYYYYYYXXYXXYYYYYYYXYXXYWXYYYYXYYYYYYYYYXYYWYYYYYYYXY[YYYYYYYYYYYWXYYYXYYYWXYYYXYYYZYYYXYYXYXYYYYYYYXXYYYXYXYYXYYYYYYYYYYYZXYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYXYYYYXXXYYYYYYWYYUWYYYYVXWYWYYY^YYWYYVYXYYYYYVYYWVYYYYWYYYYYYYYYYYYYYXXYYYZYYWYYYZYYXYYYYYYYYYYYY\YYWYYYXYXYVWXXWYYYYYYYWYXXYTXYYYYXYYYYYYYYYWYYUYYYVYYUWYYYY[YYYYYYWYWWYYYVYYYUXYYXWYYWZYYYUYYUYWVYYWWYYWYYYYVYUYYUVZYYYYYYWVYYVYYYXYZYYYVYYYXYWYYYYYYWYYVYWYYYWXYYYVZVYYWYYY^YYU[YYYVPOUYWbYYeYYPY[RYVYYYYYVYYWOYYYYZYYYTYYYYY[YYYY[PYYYUYY[YYY[[YWYYYYYYYYYYYY]YYVUYYVYYYSS^aTYYYYYZYZYSPYZWYYYYQYYYYYYYYYRYYLYYYTYYRPY^YYbYYYY`Y^YOTYYY^YXYNWYYY_YYVUYYYQUYZYYVXYYRYYU[YY\RYSYYWVZYYYYYYN_Y[ZYYYVYOYYYWYYYXYZYYYYYY\YYVY`YYYW]YYY[VRYYUYYYYYYVXYYYXVWVYVXYY_YYWYXWYXYYYYYVYYVVYYYYXYYYXYYYYYYYYYYYWYYYXYYXYYYZXYWYYYYYYYYYYYYYYYVXYYWYXYWVWWWYYYYYYYWYUVYWXYYYYWYYYYYYYYYVYYUYYYVYYVVYXYY[YYYYYYYYWWYYYVYXYUXYYWWYYXZYYYTXYXYVUVYWVYYXYYYXTYUYYUUZYYYYYYVXYZVYYYYYVYYYUYYYWYXYYYYYYWYYWYVYYYXWYYYVWVYYXYYY\YYYYYYYZVUVYY\YY]YYWYWXY[YYYYYZYYWUYYYYXYYYWYYYYY[YYYY[WYYYWYYYYYYY^YWYYYYYYYYYYYY[YYWYYYZYXYWU__XYYYYYYY[YTVYW[YYYYTYYYYYYYYYWYYVYYYYYYYTY_YYYYYYY]YZYV[YYY]Y[YTXYY[XYYYXYYYWVYVYYX]Y[VYY[[YY\XYZYYY[ZYYYYYYW^Y]ZYYYXYTYYYXYYYWY[YYYYYY]YY\Y]YYYY]YYY^WWYYZYYY[YYWYYYYZVTWYXZYY]YYWYYYYYYYYYYYYYXVYYYYYYYYYYYYYYZYYYYYWYYYZYYWYYYZZYXYYYYYYYYYYYY]YYVZYYYYYYWXYZWYYYYYYYZYWWYYZYYYYWYYYYYYYYYWYYVYYYXYYXUY[YYZYYYY[YYYWYYYYZY]YWYYYZYYYXYYYYVXYWYYXZYYWYYX\YYYWYWYYWXZYYYYYYV[Y\YYYYXYVYYYXYYYWYZYYYYYYZYYXY[YYYX[YYYXXWYYXYYYYYYWYYYYXXXXYYYYY[YYXYYXYYYYYYYXYYXXYYYYYYYYZYYYYYYYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYXXYXXYYYYYYYYYXYYXYYYYYXYYYYYYYYYYYYWYYYYYYXYYYYYZYYYYZYYYYXYYYYYXYXYYYYXYYYZYYYYYYXYYYYYYYYYYZYYYXYVYYXYYYYYYYYXYYYWYYYYYXYYYYYYYXYYYYYYYYYYYYYZYYYXXYYYYXXYYYYYYWYYW]YYYY[WTY[WYYZYYYYUWYVYYYYY\YYWWYYYYWYYYWYYYYY\YYYY\YYYYUYYWYYYZ\Y[YYYYYYYYYYYYVYY]WYYYYWYRV__]YYYYYYY]YVVYTWYYYYWYYYYYYYYYVYYXYYY`YYTVYYYYXYYYYVYXYQVYYY^YUYSUYYXVYYZZYYYXWYVYWbZYVWYYZ\YYWVYWYYW`YYYYYYYXXYYUYYYZYXYYY^YYYXY_YYYYYYXYY`Y^YYYTVYYY^UXYY\YYYYYYYXYYYXYZYYYYYYZYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYXYYYYYYYYYXYYXYYYXYYXXYYYYYYYYYYYXYXYYYYYYYYXYYYXXYYYZYYYXYYYYXXYYYYYYYYYYYXYYYYXXYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYXYYXYYYYYYYYYYXZYYYYYYYXYYUVYYYYUXXYV[YY^YYWYXVYYYYYYYVYYWWYYYYXYYYYYYYYYYYYYYYVYYYXYYXYYYZYYWYYYYYYYYYYYY[YYVXYYXYWYVWWXVYYYYYYYWYWVYWZYYYYWYYYYYYYYYWYYUYYYUYYUVY\YY[YYYYXYZYWYYYYVYZYVWYYXUYYWZYYYTXYXYWTYYWVYYXZYYYWYVYYWVZYYYYYYXYYZXYYYXYVYYYTYYYWYWYYYYYYXYYVYWYYYVZYYYUXVYYWYYYZYYWVYYYXSVWYW\YY_YYWYZVYYYYYYYVYYXVYYYYWYYYYYYYYY[YYYYWWYYYXYYXYYYZWYWYYYYYYYYYYYYZYYXYYYXYVYUXWXXYYYYYZYWYXTYXYYYYYXYYYYYYYYYUYYTYYYUYYVUY]YY\YYYYZYZYWXYYYTYZYVXYYWVYYXZYYYVWYXYXVXYXVYYVYYYZWYVYYWUZYYYYYYWYY[YYYYXYVYYYTYYYXYWYYYYYYYYYUYZYYYX[YYYUXUYYWYYYUYYW^YYYY^WVYZVYY[YYYYVYYWYYYYY]YY[VYYYYXYYYXYYYYYXYYYY\WYYYXYYWYYYYaYYYYYYYYYYYYYYUYY^WYYYY\YSU]`]YYYYYYY^YWVYUWYYYYVYYYYYYYYYVYYWYYY`YYVWYYYYVYYYYWYXYTUYYY_YWYSUYYXWYY[XYYYYVYVYXa[YWWYYYYYYYXYXYYW`YYYYYYYY]YXWYYYZYXYYY`YYYZY^YYYYYYVYY`Y_YYYTWYYY^UYYYZYYY]YYRWYYYWTWUYX]YY^YYUYXWYXYYYYYVYYVUYYYYUYYYYYYYYYZYYYYYUYYYSYYWYYYZYYWYYYYYYYYYYYYZYYWXYYYYWYVV[[VYYYYYZYXYUUYVWYYYYUYYYYYYYYYXYYSYYYYYYXUY^YY_YYYY]Y\YUXYYY[YWYUXYYYXYYXYYYYRXYYYWYYYXWYYX\YYYXYVYYZXZYYYYYYW[Y[VYYYYYTYYYWYYYWYZYYYYYYZYYZY]YYYYWYYYXXUYYYYYYWYYW[YYYXZWWYYZYY]YYXYYWYWYYYYYYYYZWYYYYXYYYXYYYYYZYYYY\VYYYXYYZYYYZ]YXYYYYYYYYYYYYYYY]WYYXYXYVV[\ZYYYYYZY[YXXYXWYYYYWYYYYYYYYYWYYVYYY[YYVWYZYYYYYYYYYZYVWYYYYYWYUWYYXYYYZWYYYWWY[YV\YYXWYYXXYYYYYXYYW\ZYYYYYYX[YXWYYYXYXYYYZYYYYY[YYYYYYWYY\Y\YYYXWYYYZXXYY[YYY\YYY[YYYXYWVY[\YY[YYXY[WYXYYYYYYYY[WYYYYZYYYWYYYYY\YYYY[WYYYWYY[YYYZ]YYYYYYYYYYYYYYXYYaWYYWYZYTV^^ZYYYYYZY\YXXYYYYYYYUYYYYYYYYYXYYVYYY^YYWUY]YY[YYYY\Y]YSWYYY\YVYWVYYY\YYYVYYYZWYZYV_ZYXXYYWZYYYYYXYYZ^ZYYYYYYY\Y[ZYYYXYUYYY\YYY[Y[YYYYYY\YY]YbYYYXXYYY]WXYY\YYYZYYVVYYY\SUZYU]YY^YYTYXXYYYYYYYXYYVTYYYY]YYYXYYYYYWYYYY\TYYYYYYXYYYZ\YTYYYYYYYYYYYY^YYTZYYWYZYVSZZTYYYYYYYVYWTYU\YYYYUYYYYYYYYYWYYRYYYWYYTSY\YY[YYYYZYZYUXYYYZY]YRWYYZXYYVXYYYVYYWYVU[YWTYYXXYY\TYXYYYUZYYYYYYS]YXZYYYWYUYYYVYYYXYVYYYYYYXYYWYXYYYW^YYYXXVYYUYYYWYY[WYYYXTXZYV\YY]YYUYYTYYYYYYYWYYVUYYYYWYYYZYYYYYXYYYYYWYYY^YYWYYYZZYVYYYYYYYYYYYY^YYVWYYZYWYVVZYVYYYYYYYXYXTYWXYYYYUYYYYYYYYYVYYSYYYSYYURY_YYYYYYYYYXYVZYYYZY`YUWYYYXYYWYYYYUWYXYXTXY[TYYWXYY`UYWYYWVYYYYYYYWZY\[YYYWYXYYYTYYYYYVYYYYYYWYYTYTYYYV`YYYU\VYYWYYYYYYXXYYYYWWXYYYYY\YYYYZXYXYYYYYYYYZWYYYYXYYYYYYYYYYYYYYYXYYYXYYYYYYZ[YYYYYYYYYYYYYYYYYZYYYYYXYWXYYXYYYYYYYYYXXYWXYYYYWYYYYYYYYYXYYVYYYZYYZWY\YYZYYYYZYZYWXYYYXYXYWWYYYXYYXXYYYXXYYYWZZYYXYYXZYYZYYXYYXYZYYYYYYXZYYXYYYXYWYYYYYYYZYZYYYYYYYYYZYZYYYZYYYYYXXYYYYYYYYYXXYYYYXYXYXYYY[YYXYZXYYYYYYYXYYYXYYYYZYYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYWYYXYYYXYYYYYXYXYYYYYYYXYYXYXZYYYYYYYYYYYYYYXYYXYYYXYYYXYYYY[YYYYXYYYWYYYYYYXYXXYYYXYYYYYYYXYYZYYXYYXXYYXYYYXXYXYYYXYYYYYYYXVYYZYYYXYXYYYXYYYYYXYYYYYYYYYXYXYYYYXYYYXYZYYWYYYVYYYWYYYXWZZYWWYYZYYWYXVYXYYYYYXYYWWYYYYXYYYZYYYYYYYYYYXWYYY]YYXYYYYYYXYYYYYYYYYYYY]YYWXYYYYVYWWXYWYYYYYXYXYWXYXXYYYYVYYYYYYYYYWYYXYYYWYYWTYYYYVYYYYWYWYWXYYYWY]YVWYYXWYYXYYYYWXYWYUWZYXWYYWWYY[WYXYYXWYYYYYYYWYYZZYYYWYYYYYWYYYYYWYYYYYYVYYVYWYYYVZYYYXZXYYWYYY\YYVVYYYZSTVYW]YYaYYUYXWYYYYYYYVYYVTYYYYXYYYXYYYYYZYYYYZVYYYVYYXYYY[[YUYYYYYYYYYYYYZYYVXYYVYYYVTZZVYYYYYZYXYUUYXZYYYYUYYYYYYYYYVYYRYYYWYYVTY]YY^YYYY^YZYVXYYYXYYYSWYYYWYYWWYYYSVYXYXUZYYVYYX]YY[VYVYYVVZYYYYYYV]Y]YYYYYYRYYYVYYYWYWYYYYYYZYYYY[YYYW\YYYXWUYYXYYYYYYXXYYYXWWWYYXYY\YYXYXXYXYYYYYWYYYXYYYYYYYYYYYYYYYYYYYXXYYYXYYWYYYZXYXYYYYYYYYYYYYYYYYYYYYYXYYXXXXYYYYYYYXYZXYWYYYYYXYYYYYYYYYXYYXYYYXYYYXYZYY[YYYYYYXYXYYYYXYYYXYYYXWYYXYYYYXYYWYYWXYXXYYXYYYYWYWYYWXYYYYYYYXXYZWYYYYYXYYYWYYYWYXYYYYYYXYYXYYYYYXXYYYWZYYYXYYYbYYVYYYYXOOXYWdYYaYYRYXWYZYYYYYXYYZOYYYY\YYYWYYYYYYYYYY_QYYYUYY[YYY[^YUYYYYYYYYYYYY]YYUVYYWY[YVScbXYYYYYZYYYPSY[_YYYYPYYYYYYYYYUYYOYYYYYYTQY_YY`YYYYaY^YRVYYYcYYYOUYY\`YYWTYYYQTYXYYW]Y\TYYW\YY_TYWYY]X[YYYYYYReY_]YYYVYKYYYZYYYZY[YYYYYY`YYWYaYYYWhYYY_UXYYTYYYYYYWYYYYXXVXYY[YY\YYXY[XYXYYYYYWYYZXYYYYYYYYYYYYYYZYYYYYXYYYXYYYYYYZZYYYYYYYYYYYYYYYYYZYYYXYYYWXYZYYYYYYYYXYXWYXXYYYYXYYYYYYYYYXYYVYYYXYYYXY[YY[YYYYYYYYWXYYYYYWYWXYYXZYYXXYYYXYYYYYYXYYYYYY[YYXXYXYYXXZYYYYYYYYYZXYYYXYWYYYXYYYWYZYYYYYYZYYXYYYYYXZYYYWYZYYXYYY\YYUXYYYVVWVYW\YY^YYWYXVYXYYYYYVYYYWYYYYWYYYYYYYYY[YYYYYTYYYUYYYYYYZZYXYYYYYYYYYYYYYYYXVYYXYYYXWYZWYYYYYZYXYVWYZXYYYYUYYYYYYYYYYYYUYYYWYYXVY\YY[YYYYZYZYYXYYYYYWYVWYYWYYYXXYYYUWYXYXVYYYYYYX[YYZXYYYYYWZYYYYYYY[Y\ZYYYWYUYYYVYYYYYYYYYYYY[YYVYYYYYXYYYYYYVYYWYYYXYYYWYYYYYYYYXYYYZYYYYYXYYYYYYYXYYYXYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYZYYXYYYYYYYXYXXXYYYYYYYXYXXYXYYYYYXYYYYYYYYYYYYWYYYYYYYWYYYYYYYYYYYZYVXYYYYYYYWXYYYYYYXYYYYYZYXYXZYYXXYYYXYYZYYYYYYZYYYYYYYXYYXYYYYXYYYYYYYYYZYYYYYYYYXYYYYYYYYYXYYYYWYYYYYYYXYYX\YYYXZXWYZYYYYYYYYXWYXYYYYYYYYZXYYYYXYYYXYYYYYZYYYY[YYYYWYYYYYYYZYZYYYYYYYYYYYYXYY\XYY[YXYVX[\ZYYYYYYY[YWXYXXYYYYXYYYYYYYYYXYYXYYY\YYWXYYYYXYYYYXYZYUXYYYZYXYWVYYXXYYYZYYYYWYYYX\YYYXYYYZYYXXYXYYW[YYYYYYYXYYYXYYYYYYYYY[YYYYY\YYYYYYYYY[Y[YYYXYYYYZXYYYYYYYYYYWXYYYXWXVYYZYY]YYXYYWYXYYYYYXYYYXYYYYXYYYYYYYYYYYYYYXXYYYWYYXYYYZYYYYYYYYYYYYYYYXYYZZYYXYWYXXZYXYYYYYZYXYXXYVXYYYYWYYYYYYYYYXYYWYYYZYYYWY[YY\YYYYZYYYWXYYYXYWYWXYYXWYYYYYYYWYYXYXZYYXXYYYZYYXXYVYYVYZYYYYYYXWYXWYYYYYXYYYXYYYWY[YYYYYYXYYZY[YYYYXYYYYXYYYZYYYXYYXWYYYZWYXYWWYYZYYXYXVYYYYYYYXYYWXYYYYYYYYYYYYYYXYYYYXZYYY^YYVYYYYXYXYYYYYYYYYYYY[YYWZYYYYWYXXXWXYYYYYXYXYXXYWYYYYYYYYYYYYYYYWYYWYYYUYYWVYYYYWYYYYWYWYXZYYYVY\YXYYYXWYYXYYYYXYYVYYVYYVWYYXYYY[WYYYYVVYYYYYYYXWYZYYYYXYZYYYUYYYXYWYYYYYYWYYVYVYYYXXYYYVYXYYXYYYYYYWYYYYXYZYYYYYYZYYXYYWYYYYYYYXYYYYYYYYZYYYYYYYYYYYYYYXXYYYZYYXYYYYZYYYYYYYYYYYYYYZYYYYYYXYYYYXYXXYYYYYYYYYZXYWZYYYYYYYYYYYYYYYYYXYYYXYYXWYZYYZYYYYYYWYXYYYYXYYYXXYYXXYYXYYYYYYYXYYXYYXYYYXZYYXXYYYYXXYYYYYYYXXYZYYYYYYYYYYXYYYXYYYYYYYYYYYXYXYYYYYYYYX[YYYYYYYYYYYYYYYYYXYYYZYYZYYXYZYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYZYYYYYYYYYYYYYYYYYYZYYYYYYYYYYXXYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYXYYYYYYXYYYYYZYYYYYYZYXYYYYXYXYXYYYYYYYXYYYYYYYYYYXXYYYYYYZYYYXYXYYYYYYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYZYYYYYYWYYVWYYYXWYXYVYYY\YYXYXVYYYYYYYVYYWWYYYYVYYYZYYYYYXYYYYWXYYY[YYXYYYZYYWYYYYYYYYYYYY\YYXYYYYYXYVWVYWYYYYYYYWYXXYWYYYYYXYYYYYYYYYWYYUYYYVYYVVYYYY[YYYYWYXYXYYYYUYZYWWYYXVYYX\YYYUYYXYXVXYWXYYXYYYZVYXYYWVYYYYYYYYVYYYYYYXYXYYYVYYYYYWYYYYYYWYYWYVYYYXYYYYU[VYYWYYYWYYVWYYYXUXUYWYYYbYYWYWTYYYYYYYRYYXWYYYYUYYYWYYYYYXYYYYTWYYYXYYUYYY[VYWYYYYYYYYYYYYYYYXWYYXYSYWUWVWYYYYYZYWYVWYUVYYYYXYYYYYYYYYWYYVYYYUYYVUYXYY^YYYYVYWYWWYYYPYWYWXYYWUYYXZYYYSXYWYVSWYVWYYXYYYWSYTYYTUZYYYYYYYRYWUYYYXYVYYYSYYYVYXYYYYYYWYYWYWYYYWWYYYTYVYYYYYYZYYVXYYYXWWVYXZYY^YYXYWYYYYYYYYVYYYXYYYYXYYYXYYYYYYYYYYXWYYYUYYVYYYZWYXYYYYYYYYYYYYWYYYYYYXYXYXXWXXYYYYYZYWYXXYWYYYYYXYYYYYYYYYWYYWYYYWYYXXYYYY]YYYYXYWYYWYYYWYVYWXYYXVYYYYYYYUYYVYXWWYWXYYXZYYVVYVYYUWZYYYYYYXWYYVYYYYYVYYYWYYYTYXYYYYYYYYYXYYYYYWXYYYWWWYYYYYYYYYXXYYYYWWXYXZYY\YYYYYXYYYYYYYWYYYXYYYYXYYYYYYYYYYYYYYXXYYYXYYYYYYZYYYYYYYYYYYYYYYXYYXYYYXYYYXXYXXYYYYYYYWYYYYXYYYYYXYYYYYYYYYXYYWYYYXYYYXYZYY[YYYYYYYYYYYYYXYXYWXYYXWYYYZYYYXYYXYXXXYYYYYYYYYYYYXYYWXYYYYYYYYWYYWYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYXXYYYXYXYYYYYYXYYXZYYYYZWUYYWYYZYYXYWXYWYYYYY\YYWXYYYYXYYYWYYYYYYYYYYZYYYYXYYXYYYZ[YYYYYYYYYYYYYYWYYZWYYYYZYUXZ\XYYYYYYY[YWWYVWYYYYWYYYYYYYYYVYYWYYY[YYWWYXYYXYYYYWYWYSVYYY\YWYUVYYXWYYXXYYYYXYWYX][YWWYYYYYYWWYXYYW\YYYYYYYXZYXXYYYXYXYYY\YYYXY[YYYYYYXYY\YZYYYUWYYY\VXYYYYYY[YYXYYYYYVVYYY[YY\YYXY\XYYYYYYYWYYYXYYYYYYYYYYYYYYZYYYYYWYYYXYYXYYYZXYYYYYYYYYYYYYYZYYXYYYXYXYXXXYXYYYYYZYYYWWYYYYYYYXYYYYYYYYYWYYVYYYXYYYXYZYY[YYYY[YZYXXYYYYYWYXYYYYXYYXXYYYXZYXYZXXYYWYYX[YYXXYXYYXXYYYYYYYWYYZYYYYYYXYYYYYYYZYYYYYYYYZYYXYZYYYYYYYYXWXYYXYYYWYYXXYYYXVYXYWWYY[YYXYXVYXYYYYYVYYXXYYYYXYYYXYYYYYYYYYYYWYYY[YYWYYYYZYXYYYYYYYYYYYY\YYVYYYZYWYWWXXWYYYYYXYXYXWYWZYYYYVYYYYYYYYYWYYVYYYWYYWTY[YYWYYYYWYXYVYYYYVY\YVVYYXVYYYZYYYUXYVYVWXYVYYYXWYYYXYXYYXYYYYYYYYXXYZZYYYXYWYYYWYYYYYYYYYYYYYYYWYVYYYXYYYYWXXYYXYYYZYYVYYYYXSUWYV[YYaYYVYZVYXYYYYYVYYVUYYYYVYYYXYYYYYYYYYYZUYYYXYYWYYYZYYWYYYYYYYYYYYYYYYWYYYYYYYUWZ[WYYYYYYYXYWVYWWYYYYTYYYYYYYYYTYYTYYYVYYVTY]YY^YYYYYYZYXXYYYXYYYTWYYYWYYXYYYYTWYWYVUYYYWYYXYYYYWYUYYXVZYYYYYYUZYZVYYYXYTYYYVYYYXYXYYYYYYYYYVYZYYYVZYYYXWUYYWYYY]YYY@YYYYMPRYTaYYcYYQYVWYSYYYYYTYYRSYYYYWYYYTYYYYY[YYYYWRYYYQYYVYYYZZYRYYYYYYYYYYYYQYYbYYYWYWYQTV]SYYYYYZYTYYVY]XYYYYPYYYYYYYYYPYYTYYYZYYVVYZYYoYYYY[Y[YRTYYYZYTYNUYYX]YYTPYYYOXY]YXXYYYQYYVWYYZRYNYYXUZYYYYYZT]YTWYYYTYRYYYWYYYYYPYYYYYYXYYVYYYYYVZYYY]UVYYQYYYYYYWYYYYYYYXYYZYY[YYYYZXYYYYYYYXYYYXYYYYYYYYXYYYYYYYYYYXXYYYXYYXYYYZYYYYYYYYYYYYYYYXYYZZYYYYYYYYYXYYYYYYYYYYYXYWYYYYYYYYYYYYYYYXYYXYYYYYYYXYYYY\YYYYYYYYXYYYYXYWYXYYYXWYYYYYYYXYYXYYYXYXYYYYYYYXWYXYYXXYYYYYYYYWYZXYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYWXYYYXWYYYXYYY[YYXYYXYYYYYYYXYYXXYYYYYYYYZYYYYYYYYYYXXYYY\YYWYYYYYYXYYYYYYYYYYYY\YYYZYYYYXYXXXXXYYYYYYYXYYXYWYYYYYXYYYYYYYYYXYYWYYYWYYXVYYYYXYYYYXYXYXZYYYWY[YXXYYXXYYXZYYYWXYXYXWYYWXYYXXYYYWYWYYWWYYYYYYYXWYZXYYYYYYYYYWYYYXYXYYYYYYXYYWYXYYYXYYYYWZXYYXYYYYYYXXYYYXXYXYXYYY[YYYYZWYXYYYYYWYYYYYYYYYYYYYYYYYYYYYYYXXYYYZYYXYYYYXYXYYYYYYYYYYYYYYYXYYYXYWYYYXXXYYYYYYYXYYXYXYYYYYYYYYYYYYYYYYYXYYYXYYXXYYYYYYYYYXYYYXXYYYWYXYXYYYXYYYXZYYYXYYXYXWXYXYYYXYYYYXYXYYWXYYYYYYYXWYYYYYYYYYYYYWYYYYYXYYYYYYXYYXYYYYYXYYYYWZYYYXYYYYYYWWYYYWWWWYW\YY\YYWYZWYYYYYYYXYYXXYYYYVYYYXYYYYYZYYYYYWYYYXYYXYYYYZYYYYYYYYYYYYYYXYYWWYYYYXYXX[ZWYYYYYYYWYWXYXXYYYYVYYYYYYYYYWYYXYYYWYYXVYZYYYYYYYYYXYWYYYY[YWYVWYYXYYYXYYYYWXYXYXXYYYXYYXZYYYXYYYYXXYYYYYYYXYYZYYYYXYWYYYVYYYXYYYYYYYYYYYWYXYYYWYYYYYZWYYXYYY[YYYYYYYYWXXYY\YY]YYWYZVYXYYYYYXYYYVYYYYYYYYWYYYYYZYYYYZWYYYVYYZYYYZ[Y[YYYYYYYYYYYYWYYZXYYYYWYWWZ[WYYYYYZYYYWWYXYYYYYWYYYYYYYYYVYYWYYYYYYXWY[YY\YYYY[Y[YVYYYYYYWYWWYYYZYYXXYYYXWYZYYYZYYWYYXZYYYXYYYYYYZYYYYYYWZYZZYYYWYVYYYYYYYZY[YYYYYY\YYYYZYYYZZYYYZWXYYWYYYWYYXZYYYXZXVYZZYY\YYXYWXYVYYYYYZYYXWYYYYWYYYWYYYYYYYYYYZVYYYWYYXYYYZ\YXYYYYYYYYYYYYWYY[XYYYYXYUWZ[ZYYYYYYY[YXWYWXYYYYWYYYYYYYYYVYYXYYY[YYWWYYYY\YYYYWYYYTXYYY]YVYTVYYXWYYZWYYYXWYXYV\YYXVYYXZYYXWYXYYX[ZYYYYYYXXYXVYYYYYWYYY\YYYVY]YYYYYYXYY\YZYYYVXYYY[WXYYYYYYVYYW[YYYZWZXYWVYYZYYXYYVYZYYYYYYYYYXYYYYYYYYXYYYYYXYYYYZXYYYYYYYYYYY[YYYYYYYYYYYYYYXYYXUYYXYXYTV\]ZYYYYYXYZYWWYWWYYYYVYYYYYYYYYUYYUYYY[YYUSYYYYUYYYYWYXYTWYYYVYXYSUYYWWYY\\YYYVXYWYV[YYVWYYYXYYVUYXYYV\YYYYYYYXYYYXYYY[YTYYYYYYYXY[YYYYYYVYYZYYYYYUWYYY\VWYYYYYYWYYWXYYYZRVYYUXYY^YYUYYVY[YYYYYYYYVTYYYYVYYY[YYYYYYYYYY[WYYY^YYWYYYZ\YUYYYYYYYYYYYYaYYVZYY[YVYVVYYTYYYYYYYZYWTYXXYYYYTYYYYYYYYYVYYRYYYVYYUQY^YYVYYYYZYZYVZYYYYYbYTXYY[WYYXYYYYUWYWYUU\YYUYYXXYY^VYWYYYWYYYYYYYU]Y\[YYYYYUYYYUYYYZYXYYYYYYWYYWYZYYYW_YYYWYUYYXYYY[YYW_YYYX^UTY\YYY[YYYYZWYWYYYYY^YY[UYYYYVYYYXYYYYY[YYYY^YYYYUYY[YYYZcY[YYYYYYYYYYYYUYYcVYYYY\YPVab^YYYYYZY_YXVYVVYYYYTYYYYYYYYYVYYVYYYeYYWSY[YYWYYYYZY\YMSYYYaYUYSSYYX]YYZVYYY[UYZYXf\YVUYYY[YYYYYWYYYcZYYYYYYY^Y[ZYYYWYVYYYcYYY]Y_YYYYYY\YYcYeYYYVVYYYcTYYYYYYYXYYXXYYYXWXWYXYYY^YYXYZWYWYYYYYWYYWVYYYYXYYYXYYYYYXYYYYZVYYYZYYYYYYZZYWYYYYYYYYYYYY\YY]YYYYYXYWW[YWYYYYYYYWYWXYXXYYYYXYYYYYYYYYWYYTYYYZYYTTY\YYZYYYY[Y\YUXYYYXY[YUWYYXZYYXZYYYVXYYYVZXYXXYYXWYY[YYWYYYYZYYYYYYXZYWXYYYXYWYYYWYYYYYYYYYYYYVYYZYZYYYXYYYYXYWYY[YYYZYYVYYYYXVWXYXZYY\YYXYYYYXYYYYYWYYXXYYYYYYYYYYYYYYYYYYYYWYYYWYYWYYYZZYXYYYYYYYYYYYYZYYY[YYYYYYXXXYXYYYYYYYXYYWYXZYYYYWYYYYYYYYYXYYWYYYXYYXWY[YY\YYYYYYXYXXYYYXYYYXYYYYWYYYYYYYWYYWYYXZYYWYYYYYYYWYVYYYWZYYYYYYWXYZWYYYYYXYYYXYYYWYXYYYYYYZYYXYZYYYXYYYYXXXYYXYYYXYYVXYYYVTVVYV[YY_YYVYXTYXYYYYYUYYXWYYYYWYYYVYYYYYYYYYYVVYYYXYYXYYYZXYWYYYYYYYYYYYYYYYWUYYXYVYVVWZVYYYYYYYWYVWYVWYYYYVYYYYYYYYYUYYTYYYSYYVTY[YY\YYYYXYXYWWYYYUYYYUVYYUWYYWYYYYUVYWYUSWYVWYYWWYYWTYVYYTVZYYYYYYVXYZYYYYXYTYYYRYYYWYXYYYYYYYYYTYVYYYVXYYYWYVYYWYYYXYYXWYYYXVZWYWYYY\YYXYXXYXYYYYYWYYXXYYYYXYYYZYYYYYZYYYYXXYYYYYYWYYYYWYXYYYYYYYYYYYYXYYWWYYXYWYXYWYWYYYYYYYWYYXYWXYYYYXYYYYYYYYYWYYWYYYWYYXWYYYYZYYYYWYWYXXYYYWYXYXXYYWWYYXZYYYVXYXYXVXYVXYYXXYYVVYWYYVWYYYYYYYXWYZYYYYXYXYYYUYYYWYWYYYYYYXYYVYWYYYXXYYYWYXYYWYYYaYYXUYYYZQPUYYaYYbYYTY]WYYYYYYYXYYZQYYYYZYYYWYYYYY[YYYY^SYYYYYY[YYYZ^YVYYYYYYYYYYYY_YYX[YYWYYYUUb`VYYYYYZY\YURY]ZYYYYQYYYYYYYYYVYYQYYYZYYWQYbYY]YYYYdY_YTYYYY`Y]YPXYY^_YYXSYYYUTYXYYZ]Y_TYYX\YYaYYYYYZ\ZYYYYYYTbY[YYYYWYQYYY[YYYYYZYYYYYY]YY\YeYYYZaYYY_WTYYZYYY\YYVXYYYYQRXYW_YYaYYSYYVYXYYYYYWYYVQYYYYZYYYVYYYYYYYYYY\SYYYWYYXYYY[\YUYYYYYYYYYYYY_YYUZYYXYYYVT\]UYYYYYZYWYVRYY[YYYYTYYYYYYYYYTYYQYYYVYYURY]YY^YYYY\Y]YTVYYY^Y]YQWYY[[YYVUYYYSXYWYWVZYZTYYW[YY]TYWYYXWZYYYYYYRaY\\YYYVYQYYYWYYYYYWYYYYYY[YYWY^YYYW_YYYZWTYYTYYY]YYW[YYYXVVWYZ\YY^YYVY[VYWYYYYYYYY[UYYYYZYYYXYYYYYZYYYYZVYYYVYYZYYYZ\YYYYYYYYYYYYYYZYY[XYYYY[YWW[]YYYYYYYYYYWVYZYYYYYUYYYYYYYYYWYYTYYYZYYWUY]YY\YYYY]Y^YSWYYY]YXYTWYYZ]YYWVYYYXWYZYZZYYYWYYW[YY[YYYYYZ[ZYYYYYYW]YZ[YYYVYVYYYZYYY\Y\YYYYYY\YYYY^YYYY[YYY[XYYYWYYYXYYXYYYYYYZXYYYYYZYYYYWXYXYYYYYXYYYXYYYYYYYYYYYYYYYYYYYXXYYYXYYXYYYZZYXYYYYYYYYYYYYXYYYWYYXYYYVXYYYYYYYYYYYYXXYYXYYYYXYYYYYYYYYXYYXYYYYYYXYYXYYZYYYYXYYYWXYYYZYXYWXYYXXYYXXYYYXYYYYYXXYYYYYYZYYYXYXYYYYYYYYYYYYXYYXYYYXYXYYYYYYYYYYYYYYYYYYYWYXYYYWXYYYXXYYYXYYYYYYVYYYYXVUWYX[YY_YYWY\VYWYYYYYWYYYWYYYYVYYYYYYYYYZYYYYYVYYYWYYYYYY[YYXYYYYYYYYYYYYZYYZXYYXYXYWWY[WYYYYYZYYYWWYYVYYYYVYYYYYYYYYWYYUYYYXYYWVYZYY^YYYYZY[YXXYYYXYYYVXYYWXYYXXYYYVWYZYWXXYYXYYWYYYZWYVYYVWZYYYYYYWYYYYYYYYYVYYYWYYYZYYYYYYYYYYYYYZYYYYYYYYXXVYYXYYYXYYWXYYYWWVXYV\YY_YYVYYVYWYYYYYWYYWUYYYYXYYYYYYYYYYYYYYZUYYYXYYXYYYZ[YWYYYYYYYYYYYY[YYYYYYXYYYXVYXWYYYYYYYWYXVYXYYYYYWYYYYYYYYYVYYTYYYXYYVVY[YY^YYYYZY[YWWYYYYYYYUWYYWWYYWXYYYUYYYYWVXYYWYYWZYY[VYUYYWWZYYYYYYVZYZWYYYXYVYYYVYYYXYXYYYYYYWYYWYXYYYXZYYYWXVYYXYYYYYYXYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYYYYYYYXYYWWYYYXVXWYWYYY]YYWYXVYYYYYYYVYYWXYYYYWYYYYYYYYYYYYYYWXYYYZYYWYYYYXYXYYYYYYYYYYYYZYYWXYYYYXYWXWXWYYYYYYYXYYWYVYYYYYXYYYYYYYYYWYYWYYYUYYWVY[YYZYYYYXYWYXYYYYVYZYXXYYYUYYX[YYYVXYVYXVYYXXYYYXYYXVYVYYVVYYYYYYYWWYZWYYYYYWYYYUYYYWYXYYYYYYXYYVYVYYYWYYYYWZXYYXYYYXYYTVYYYVTXTYVXYYbYYUYVVYWYYYYYRYYWUYYYYUYYYXYYYYYYYYYYVVYYYUYYWYYYZVYVYYYYYYYYYYYYZYYUVYYWYUYVVWVVYYYYYZYUYUWYUVYYYYVYYYYYYYYYVYYQYYYUYYTTYZYY`YYYYYYWYUWYYYTYXYUWYYVTYYWYYYYOWYYYUTWYUVYYWYYYWSYSYYTTZYYYYYYVUYYUYYYYYTYYYSYYYUYXYYYYYYVYYVYVYYYWXYYYSWTYYWYYY[YYXXYYYYVWWYY[YY^YYWYYUYXYYYYYXYYWVYYYYVYYYYYYYYYZYYYYYWYYYVYYZYYYZYYXYYYYYYYYYYYYXYYYXYYXYZYWWZYXYYYYYZYXYXXYXXYYYYVYYYYYYYYYWYYVYYY[YYYWYZYY_YYYY[Y\YWWYYYXYWYUXYYXXYYXXYYYXYYYYYXXYZWYYXZYYZXYWYYXXZYYYYYYXYYYXYYYXYVYYYYYYYYYZYYYYYYZYYYY]YYYYYYYYYXXYYXYYYWYYXZYYYXXXWYWZYY]YYVYZWYVYYYYYXYYYVYYYYXYYYWYYYYYYYYYYZVYYYVYYZYYYZ\YXYYYYYYYYYYYYYYY]XYYYYYYUVZ\WYYYYYZYYYWVYVXYYYYWYYYYYYYYYWYYSYYY[YYVVYZYY\YYYYYYZYSVYYYZYWYTVYYXYYYXWYYYVXYZYW]ZYWWYYWYYYXXYVYYW\ZYYYYYYX[YWWYYYWYWYYY[YYYYYYYYYYYYWYY\Y\YYYYWYYY[WWYYYYYY^YYWXYYY[TTXYY^YY_YYVY[XYYYYYYYYYYWTYYYY[YYYYYYYYYZYYYY[VYYYWYYXYYYZ[YWYYYYYYYYYYYY[YYX[YYXY\YYV]\XYYYYYYYYYXTYY\YYYYVYYYYYYYYYVYYTYYYZYYXUY]YY]YYYY^Y]YUXYYY^YZYTXYY\ZYYXWYYYVYYXYZX\Y\VYYX\YY^WYYYYZXZYYYYYYU^YZ[YYYXYTYYYZYYYZYYYYYYYY[YYYY_YYYZ_YYY[XYYYWYYYYYYWXYYYXZYVYXZYY^YYXYWWYXYYYYYWYYWWYYYYVYYYWYYYYYYYYYYYVYYYTYYYYYYZYYWYYYYYYYYYYYYVYY[YYYXYWYWWZYYYYYYYZYWYWXYWWYYYYWYYYYYYYYYWYYXYYY[YYWXYYYY`YYYY[Y[YVWYYYWYVYVXYYXWYYYYYYYVYYZYVZYYXXYYX[YYWWYVYYVY[YYYYYYWXYXUYYYYYVYYYXYYYVYYYYYYYYXYY[Y[YYYXWYYYXVVYYZYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYZYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYXYYYYYYYYYYYYYYXYXYYXYYYYYYYYYXYYXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYZYYYYXYYYYYYYZYYVYYYYXVXXYXZYY]YYWYYXYZYYYYYXYYXWYYYYXYYYXYYYYYYYYYYYWYYY[YYWYYYZYYXYYYYYYYYYYYYZYYXYYYYYXYXW\[XYYYYYYYZYXVYVXYYYYXYYYYYYYYYWYYVYYYVYYWVY]YYYYYYYZYWYWZYYYZY[YWYYYYXYYXYYYYUXYXYYWZYZWYYY[YYZVYYYYWXYYYYYYYVYY\YYYYYYVYYYWYYYWYZYYYYYYZYYXYXYYYX\YYYYZXYYXYYYYYYXYYYYYYYXYYYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYXYXYYYYYYYYYYYYYXYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYXYYYYYYWYXYYYYYXXYYYYYYYXYYYYXXYYXYYYYYYYXXYXYYWYYYYYYYYYXYYYYYYYYXYYYWYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYXYYXWYYYXWZXYWXYY[YYWYXWYYYYYYYXYYWXYYYYWYYYZYYYYYYYYYYYYYYY\YYWYYYYYYXYYYYYYYYYYYY\YYXYYY[YWYVWWWVYYYYYYYWYYWYWYYYYYXYYYYYYYYYXYYUYYYVYYVUYYYYYYYYYXYYYWZYYYWY\YXYYYXWYYX[YYYXXYWYXVXYWWYYXYYYZXYXYYVWYYYYYYYWXYZYYYYYYYYYYVYYYYYWYYYYYYXYYWYWYYYWZYYYVZWYYXYYYXYYW[YYYXYVWYYYYY[YYXY[XYWYYYYYZYYZVYYYYWYYYYYYYYYZYYYY\XYYYWYY[YYYZ^YZYYYYYYYYYYYYZYY]VYYYY[YSV\^YYYYYYYY\YWVYWUYYYYVYYYYYYYYYWYYUYYY\YYWVY[YYVYYYYZY[YRVYYY^YXYUUYYY[YYXXYYYXWYZYW^ZYWWYYXYYYYXYXYYZ]YYYYYYYY\YYYYYYXYXYYY\YYYZY\YYYYYYZYY\Y\YYYWVYYYZWXYYYYYYXYYWXYYYXXYXYXXYY[YYYYXVYYYYYYYWYYXXYYYYXYYYZYYYYYXYYYYXYYYY\YYWYYYYXYXYYYYYYYYYYYY[YYXYYYYYWYXXWXXYYYYYYYXYYYYXYYYYYYYYYYYYYYYXYYWYYYVYYXWYZYYXYYYYXYWYXZYYYVY[YXYYYXXYYXZYYYXYYWYXVYYXYYYXXYYZWYXYYWWYYYYYYYYWYZXYYYXYYYYYVYYYXYXYYYYYYXYYWYWYYYXYYYYV[YYYXYYYWYYXYYYYWY[VYYXYY[YYXYXWYXYYYYYWYYXXYYYYVYYYXYYYYYXYYYYYXYYYXYYXYYYYXYWYYYYYYYYYYYYYYYZXYYYYWYXXYYYYYYYYYYXYWXYWWYYYYXYYYYYYYYYXYYXYYYXYYXWYXYY[YYYYWYYYWYYYYWYYYWWYYVXYYYYYYYWXYWYVXWYWXYYXYYYYWYXYYVXYYYYYYYZXYYWYYYYYXYYYWYYYXYYYYYYYYWYYYYXYYYXWYYYWYXYYYYYYZYYYZYYYYXVXYY[YY]YYXY[UYWYYYYYYYYYWYYYYYYYYXYYYYYYYYYYYXYYYWYYYYYYZ[YZYYYYYYYYYYYYWYY[YYYYYYYWXZ[YYYYYYZYZYYXYWZYYYYXYYYYYYYYYVYYWYYY\YYYXYZYY]YYYY[YYYVWYYYYYVYVXYYYZYYYWYYYYXYZYY[YYYWYYYZYYXXYWYYVZZYYYYYYWYYZ[YYYWYWYYYZYYYZY[YYYYYYZYYZY\YYYYWYYYZWZYYYYYYYYYWXYYYYXYYYXXYYZYYYYYXYYYYYYYWYYYYYYYYXYYYXYYYYYYYYYYXYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYXYYYWYWYYYXXXYYYYYYYYYXYYWZYYYYYYYYYYYYYYXYYXYYYXYYXXYYYYXYYYYXYWYXYYYYWYXYXXYYYXYYXYYYYXYYWYYXYYWXYYXYYYXXYYYYWXYYYYYYYXVYZXYYYYYZYYYWYYYXYXYYYYYYXYYXYXYYYXXYYYXYYYYYYYYYYY[XYYYZXXZYYZYYYYYXYZYYZYYYYYZYYZXYYYY[YYY[YYYYYYYYYYZXYYYYYYYYYYY\YWYYYYYYYYYYYY[YYZ[YYZYZYYYYZ[YYYYYYYYYYXYZZYYYYVYYYYYYYYYXYYXYYYYYYYWYZYYXYYYYYY[YWXYYY[YZYXWYYZZYYXXYYY[YYZYX[[YZYYYYZYY[YYYYY[ZYYYYYYYY\YZZYYYWYXYYY[YYY\YYYYYYYYZYYZY[YYYY[YYYYX[YYXYYYYYYVWYYYXWYVYX[YY_YYXYYVYWYYYYYVYYYXYYYYZYYYWYYYYYXYYYYXVYYYVYYXYYYZYYYYYYYYYYYYYYYWYYYWYYXYXYXXYXWYYYYYZYVYZXYXXYYYYXYYYYYYYYYWYYUYYYXYYWWYZYY_YYYYYYYYVWYYYVYVYVWYYWWYYXXYYYUYYZYXWXYXWYYWWYYVWYVYYVWZYYYYYYXWYWWYYYXYXYYYWYYYWYXYYYYYYVYYXYWYYYZXYYYWYXYYWYYY\YYXWYYYWVVXYW\YY]YYWYZVYWYYYYYXYYYVYYYYWYYYXYYYYYZYYYYYUYYYVYYYYYYZYYYYYYYYYYYYYYYZYYYWYYXYYYWWY\WYYYYYZYYYYWYYYYYYYVYYYYYYYYYWYYVYYYWYYXVY]YY^YYYY[Y[YWXYYY[YXYVXYYY[YYXXYYYWVYXYXXXYZWYYW[YYZUYWYYYXYYYYYYYW\Y[ZYYYWYUYYYXYYYZYYYYYYYYZYYWY[YYYW[YYYZYXYYVYYYXYYWXYYYXXYXYXYYY[YYYYXWYXYYYYYWYYYXYYYYWYYYYYYYYYYYYYYXYYYYYYYXYYYZXYXYYYYYYYYYYYYZYYXYYYYYWYYYYYXYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYWYYYXYYXWYYYY[YYYYXYXYXYYYYXYYYXYYYXXYYXZYYYWYYWYWWYYXYYYXYYYXWYWYYVXYYYYYYYYXYZXYYYYYYYYYWYYYXYYYYYYYYXYYYYXYYYXXYYYWYYYYXYYYWYYYXYYYXXYXYXYYYZYYYYYXYYYYYYYXYYYXYYYYYYYYZYYYYYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXXYYYYXYWXYYXYYYYYYYXYXXYWYYYYYXYYYYYYYYYXYYWYYYYYYXWYYYYZYYYYXYXYXXYYYYYYYXXYYXYYYXYYYYXYYXYWXYYXYYYXXYYYXYXYYWXYYYYYYYYYYYYYYYXYYYYYXYYYYYXYYYYYYXYYYYXYYYXYYYYXYXYYYYYYWYYXYYYYYYXWYXYYY[YYXYXXYWYYYYYZYYXXYYYYYYYYWYYYYYYYYYYZYYYYWYYXYYYYZYYYYYYYYYYYYYYVYYYWYYXYWYVWY[YYYYYYYYYYWXYWXYYYYWYYYYYYYYYWYYXYYY[YYXVYXYYYYYYYVYXYTVYYYYYVYUVYYXWYYYYYYYWXYXYX\YYWWYYXXYYWXYXYYX[ZYYYYYYXXYWXYYYXYXYYYYYYYXY[YYYYYYXYY[YZYYYVVYYY[VZYYXYYY[YYYYYYY[WXZYX[YY[YYXY\XYXYYYYYXYYYWYYYY]YYYYYYYYYZYYYYYWYYYYYYZYYYZZYXYYYYYYYYYYYY[YYX[YYYYZYYYYYYYYYYYYYZYZVY[]YYYYXYYYYYYYYYXYYVYYYXYYWWY]YYZYYYYZY\YWZYYYZYYYWXYYY\YYXZYYYZZYZYYYZYYYYYXYYYYYYYYY[YYYYYYYYX[Y[]YYYXYXYYYXYYY\YYYYYYYYZYYYY[YYYZZYYYXZZYYXYYY_YYXXYYYWSQUYX_YYaYYUYZUYWYYYYYYYYZUYYYYWYYYXYYYYY[YYYYZTYYYTYY[YYY[\YXYYYYYYYYYYYYXYY\ZYYWYYYVU[]ZYYYYY[YXYUXYXXYYYYUYYYYYYYYYWYYRYYY\YYVVY\YY`YYYY_Y^YTUYYY\YXYSWYYZ^YYXUYYYVWYZYX[[YZVYYW[YYZVYTYYYZZYYYYYYU_YZVYYYWYSYYY[YYYXY[YYYYYY\YY[YcYYYY\YYY[SVYYYYYYcYYTUYYYYMNSYXgYYfYYOYZUYWYYYYYWYYWNYYYYYYYYUYYYYY\YYYY\OYYYRYYYYYY[]YSYYYYYYYYYYYY^YYTWYYTYYYSPcaSYYYYYZYVYQPYZZYYYYMYYYYYYYYYTYYMYYYZYYSMYaYYbYYYYeYaYNTYYYdYYYIWYY]bYYWQYYYOTY[YZW^Y[PYYV_YY^TYSYYXY[YYYYYYPfYZXYYYUYLYYYZYYYYYZYYYYYY]YYYYfYYYWeYYY^UQYYTYYY\YYTXYYYVWUSYY]YYcYYVYYSYWYYYYYUYYXVYYYYUYYYUYYYYY[YYYYXUYYYUYYXYYY[YYYYYYYYYYYYYYYVYY\XYYWYUYXUZ[UYYYYY[YWYWXYUWYYYYTYYYYYYYYYVYYTYYYXYYVVYZYYdYYYY\YZYWVYYYWYUYUWYYYWYYYWYYYTVYVYYWXYYVYYX[YYXSYTYYUV[YYYYYYVVYXSYYYXYTYYYWYYYUYYYYYYYYXYYYY]YYYYXYYYXVUYY[YYY\YYTWYYYVORVYS^YYbYYRYYUYZYYYYYWYYUQYYYYWYYYYYYYYY[YYYY]RYYYVYYYYYYZ\YUYYYYYYYYYYYY`YYTWYYXYYYVR\\UYYYYYYYWYPRYZZYYYYPYYYYYYYYYTYYMYYYUYYTOY^YY\YYYY^Y\YUVYYY^Y^YPVYY[ZYYWVYYYOTYWYWSZYZTYYX]YY^UYWYYYVZYYYYYYScY]ZYYYWYOYYYUYYYYYYYYYYYY[YYVY\YYYV`YYYZTQYYUYYYYYYVXYYYXWYXYXYYY\YYXYYVYYYYYYYWYYYXYYYYXYYYYYYYYYXYYYYXWYYYZYYWYYYZYYXYYYYYYYYYYYYZYYXYYYXYYYXXXYXYYYYYYYXYYXYWXYYYYXYYYYYYYYYWYYWYYYWYYWVYZYY[YYYYYYXYXYYYYYYYYXXYYXWYYXZYYYVXYXYXXYYWXYYXXYYXWYVYYVXYYYYYYYWXYZWYYYYYWYYYWYYYXYXYYYYYYXYYXYXYYYWXYYYWZWYYYYYYYYYWXYYYXWWXYYZYY\YYXYXXYXYYYYYWYYYXYYYYWYYYXYYYYYYYYYYXWYYYWYYXYYYZXYYYYYYYYYYYYYYYYYYXYYXYXYXWXXXYYYYYZYXYWXYXXYYYYXYYYYYYYYYYYYWYYYXYYXXYYYY\YYYYYYYYXXYYYXYXYXXYYXWYYYYYYYWXYXYXXXYXXYYXZYYXWYWYYWXZYYYYYYXVYXVYYYXYYYYYXYYYWYYYYYYYYXYYYYYYYYXXYYYWWWYYYYYYXYYYXYYYXVWWYXYYY\YYWYYXYWYYYYYWYYXXYYYYWYYYZYYYYYXYYYYZWYYYXYYXYYYZXYXYYYYYYYYYYYYZYYXYYYXYXYWXXWWYYYYYZYXYWXYXXYYYYWYYYYYYYYYWYYVYYYXYYVXYXYY\YYYYYYYYXXYYYWYYYWXYYXWYYXYYYYUYYXYXWXYYWYYXYYYZWYWYYXWZYYYYYYXXYXWYYYXYWYYYWYYYWYXYYYYYYWYYXYYYYYWZYYYXXXYYXYYYZYYWWYYYYVUWYX[YY^YYWY[WYXYYYYYXYYYWYYYYYYYYXYYYYYZYYYYZUYYYWYYYYYYZZYXYYYYYYYYYYYYZYYWYYYWYYYXXXXXYYYYYZYWYWWYYXYYYYWYYYYYYYYYWYYTYYYXYYVWYZYY\YYYY[YZYVXYYYZYYYUXYYYZYYXXYYYWXYYYYXYYYWYYWZYYYWYWYYXWZYYYYYYW[YYXYYYWYVYYYWYYYYYXYYYYYYYYYXYZYYYX\YYYXXWYYWYYYXYYX[YYYYZTVYYZYY\YYWY\WYVYYYYYYYYYVYYYYWYYYYYYYYYZYYYY]XYYYWYYYYYYZaYXYYYYYYYYYYYYXYY^UYYXYZYRW\`\YYYYYZY\YWUYXWYYYYSYYYYYYYYYUYYSYYY`YYUUY[YYYYYYY[Y[YPTYYY\YWYSTYYY]YYZWYYYXVY\YWaYYXVYYXXYYYXYXYYWaZYYYYYYX^YYYYYYXYVYYY^YYY[Y\YYYYYYYYY_Y^YYYWWYYY]UWYYZYYY\YYWVYYY[MOXYTaYYdYYPYXXYZYYYYYYYYSOYYYYWYYYYYYYYYXYYYY^RYYY[YYXYYY[]YQYYYYYYYYYYYYaYYPVYYWYYYSP]_SYYYYYYYYYPOY[[YYYYMYYYYYYYYYRYYMYYYTYYRMY^YY[YYYY_Y]YPZYYY`YbYNWYY]ZYYUWYYYQTYXYYS[Y]OYYW\YYbSYWYYYTZYYYYYYOaY\ZYYYVYOYYYVYYYWYYYYYYYY[YYVY[YYYUeYYY\UPYYTYYY\YYVYYYYWVWUYY\YY`YYWYYWYXYYYYYWYYYXYYYYXYYYVYYYYYYYYYYWVYYYTYYWYYYZYYXYYYYYYYYYYYYUYY[XYYWYVYXVZYYYYYYYZYXYWXYVXYYYYWYYYYYYYYYXYYVYYYYYYXWY\YY`YYYY[YYYXWYYYWYVYWWYYXVYYXXYYYTXYYYWWYYWXYYXZYYVUYTYYVXZYYYYYYVWYZUYYYYYTYYYWYYYUY[YYYYYYZYY[Y\YYYYYYYYXVYYY[YYYYYYVXYYYXXZWYYYYY\YYXYXWYXYYYYYWYYXXYYYYYYYYYYYYYYYYYYYXXYYYXYYXYYYYXYYYYYYYYYYYYYYXYYXYYYXYXYXXXYXYYYYYYYXYYXYWXYYYYYYYYYYYYYYWYYXYYYWYYXWYYYY[YYYYXYYYXYYYYWYWYXXYYWWYYYYYYYVXYXYXWXYWXYYXYYYXXYVYYWXYYYYYYYXUYYVYYYYYYYYYWYYYWYYYYYYYYXYYYYYYYYXWYYYWYXYYXYYY\YYWXYYYXVVXYX[YY\YYWYXWYZYYYYYYYYXVYYYYYYYYXYYYYYZYYYY[WYYYYYYXYYYZ[YWYYYYYYYYYYYY[YYVWYYYYYYWW\\XYYYYYYYXYUVYXYYYYYVYYYYYYYYYWYYWYYYXYYXUY\YYYYYYY\YXYWYYYY^YZYUXYY[ZYYWXYYYVWYWYYW\YZWYYZZYY[WYYYYXXYYYYYYYV]Y[YYYYXYVYYYWYYYXYYYYYYYY[YYXY[YYYV\YYY\WWYYWYYYYYYUcYYYX_SQYYUYY\YYXYYZYUYYYYYbYYZTYYYYVYYYVYYYYY\YYYYaZYYYTYYVYYYZhY[YYYYYYYYYYYYTYYeUYYYYYYPUbf]YYYYYYYcYTSYTSYYYYUYYYYYYYYYTYYWYYYgYYTUYYYYVYYYYUYWYNWYYYaYRYQQYYWWYY[VYYYWUYXYUh]YTSYY[XYYVXYVYYWgZYYYYYYW_YXUYYYZYWYYYcYYYWYcYYYYYY\YYfYbYYYVRYYYaUWYY]YYY_YYXYYYYYTRWYX`YY_YYTY[WYYYYYYYXYYZSYYYYZYYYXYYYYY\YYYY\TYYYVYY[YYYZ_YWYYYYYYYYYYYY[YYYWYYXY\YUV^`YYYYYYZYZYURY[[YYYYSYYYYYYYYYUYYRYYYZYYWTY^YY]YYYYaY]YTWYYY`YYYRXYY[^YYXVYYYVVYZYZY\Y[VYYX\YY]XYXYY[ZZYYYYYYUbY_\YYYWYSYYY[YYY\YZYYYYYY^YYZYaYYYX^YYY]UVYYWYYY\YYWYYYYZVVWYX]YY^YYXYZWYXYYYYYWYYZVYYYY\YYYWYYYYYYYYYYYWYYYWYYXYYYZYYXYYYYYYYYYYYYZYY[YYYWYYYXWZ[XYYYYYZYZYXVYXYYYYYXYYYYYYYYYXYYVYYYXYYWWY\YY\YYYY[Y[YVXYYYYYXYXYYYYYYYXYYYYVXYYYYYZYYWYYXYYYYXYWYYZXZYYYYYYWZYZYYYYXYVYYYYYYYZYYYYYYYYYYYZY]YYYXYYYYXYXYYXYYYWYYUWYYYXWYUYXYYY]YYXYYVYWYYYYYVYYXXYYYYVYYYXYYYYYYYYYYVWYYYXYYWYYYZWYXYYYYYYYYYYYYXYYVXYYWYUYXXVYXYYYYYYYWYXXYWXYYYYYYYYYYYYYYXYYWYYYUYYWWYXYY[YYYYWYXYXXYYYTYWYWXYYVVYYXZYYYUXYXYWUXYVXYYWXYYVUYVYYTVYYYYYYYXUYYWYYYXYXYYYTYYYWYXYYYYYYWYYWYWYYYXWYYYUYXYYXYYYVYYVWYYYWUXWYUVYYaYYVYWTYVYYYYYVYYVVYYYYVYYYWYYYYYXYYYYWWYYY\YYTYYYZXYWYYYYYYYYYYYYYYYXXYYXYTYVVVWUYYYYYYYVYVVYUTYYYYWYYYYYYYYYVYYTYYYSYYUTYXYY\YYYYVYUYXWYYYQY]YUXYYUTYYWXYYYTWYUYVTUYVUYYWWYYZSYUYYSUZYYYYYYWUYXWYYYXYTYYYSYYYVYUYYYYYYUYYTYUYYYTYYYYTZVYYVYYY_YYUUYYYYNNYYUfYYdYYOYYWYXYYYYYWYYWNYYYYZYYYXYYYYY[YYYY^PYYYWYYZYYY[^YQYYYYYYYYYYYY`YYRVYYSYZYPQ_`RYYYYYZYWYPNY][YYYYMYYYYYYYYYUYYJYYYWYYQOY]YY^YYYYaY^YQUYYYcY\YJVYYZaYYTTYYYPUY[YYS[Y]SYYV]YY`UYVYY\V[YYYYYYOfY\]YYYUYMYYYWYYYZYWYYYYYYZYYUY`YYYTfYYY\WRYYSYYYXYYTVYYYWVWWYVWYY_YYVYWWYXYYYYYUYYWVYYYYVYYYYYYYYYYYYYYWVYYYZYYVYYYZXYWYYYYYYYYYYYY[YYVXYYXYWYVWVWWYYYYYYYUYXWYTXYYYYYYYYYYYYYYVYYUYYYUYYUVY[YY[YYYYWYUYWYYYYVY[YVXYYVUYYWZYYYTXYVYVUWYVWYYWXYYXVYSYYVUZYYYYYYXXY[VYYYXYVYYYSYYYUYVYYYYYYWYYTYVYYYUYYYYSZVYYVYYY\YYUXYYYXSTVYW^YYaYYUYYVYYYYYYYWYYVTYYYYZYYYVYYYYY[YYYY[UYYYVYYXYYYZYYXYYYYYYYYYYYYXYYXXYYXYWYUU\\WYYYYYZYWYUUYV[YYYYUYYYYYYYYYUYYSYYYXYYWTY[YY_YYYY^Y[YWWYYYYYVYTWYYYXYYXWYYYTWYVYXVZYZUYYYZYYZUYUYYVWZYYYYYYT[YYXYYYXYRYYYWYYYXYYYYYYYY[YYYY]YYYW[YYY[VVYYWYYYUYYYXYYYXWZXYWXYY\YYXYXTYXYYYYYWYYVWYYYYXYYYXYYYYYXYYYY\WYYY]YYWYYYY[YWYYYYYYYYYYYY\YYYYYYZYWYVVYZWYYYYYYYXYXWYYXYYYYVYYYYYYYYYVYYVYYYYYYUSYZYYVYYYYWYZYVXYYYTY\YUUYYXWYYXYYYYXVYWYWXZYXWYYWWYY[VYYYYXYYYYYYYYX[YYYYYYXYWYYYWYYYZYWYYYYYYVYYXYWYYYWYYYYXXXYYVYYYVYYWUYYYWRXWYUWYYbYYUYWSYYYYYYYUYYTTYYYYUYYYYYYYYYWYYYYWVYYY^YYVYYYZWYUYYYYYYYYYYYY_YYVYYY[YUYSVWUUYYYYYYYVYXUYTUYYYYVYYYYYYYYYSYYRYYYSYYSQYZYY^YYYYWYUYUXYYYSY`YSXYYXQYYWZYYYRWYUYTSXYYRYYYWYY_RYRYYSSYYYYYYYUSYXWYYYXYWYYYTYYYUYUYYYYYYUYYSYSYYYV_YYYT[UYYVYYYVYYW\YYYXZXWYZXYYZYYYYWXYUYYYYY\YYVXYYYYYYYYXYYYYYYYYYY[XYYYXYYXYYYYYYZYYYYYYYYYYYYWYYZXYYXYYYWWZ\YYYYYYYY[YXXYWXYYYYYYYYYYYYYYVYYYYYY[YYVXYWYYXYYYYUYXYUWYYY]YWYVXYYXWYYXZYYYYXYWYX\ZYVXYYXZYYXXYZYYX[YYYYYYYXYYXXYYYYYYYYY\YYYXY[YYYYYYWYYZYZYYYVYYYY[XZYYWYYYZYYWXYYYXWWWYY[YY]YYXYYXYXYYYYYWYYYXYYYYXYYYYYYYYYYYYYYYVYYYWYYXYYYZZYXYYYYYYYYYYYYZYYYYYYXYYYXXYXXYYYYYZYYYXXYVXYYYYVYYYYYYYYYXYYWYYYXYYXVYZYY\YYYYZYYYXYYYYYYXYVXYYXXYYYYYYYWYYXYXXYYXXYYXZYYYVYVYYWXZYYYYYYXYYZWYYYYYWYYYXYYYWYZYYYYYYYYYXYYYYYWZYYYXXWYYYYYYYYYW[YYYXYWVYYYYY[YYWYYXYXYYYYYYYYXWYYYYWYYYWYYYYY[YYYYZXYYYVYYYYYYZ[YYYYYYYYYYYYYYWYY\WYYYYWYVW[\YYYYYYZYYYVWYVXYYYYWYYYYYYYYYWYYVYYY[YYWWY[YYZYYYYZYZYUWYYYYYVYWWYYXXYYZYYYYWXYZYW\YYXXYYYYYYWXYWYYW\ZYYYYYYWYYYWYYYYYXYYYYYYYWY[YYYYYYZYY\Y\YYYWVYYYZWWYY[YYYWYYXXYYYXVXWYVWYY\YYWYXVYXYYYYYVYYWXYYYYWYYYZYYYYYXYYYYXYYYY\YYUYYYYWYXYYYYYYYYYYYYZYYWYYYZYWYWWWVWYYYYYYYXYWWYVXYYYYXYYYYYYYYYVYYVYYYVYYWUYXYYZYYYYWYVYXYYYYUY\YWXYYWVYYWZYYYVYYUYXUXYVWYYXYYY[VYUYYUVYYYYYYYWVYZWYYYXYYYYYUYYYXYWYYYYYYXYYVYWYYYWZYYYVYWYYWYYYYYYXXYYYXYYXYYZYYZYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYXYXYYYYYYYXYYYYYZYYYYYYYYYYYYYYYYYYYYYXYYXXYZYY[YYYYXYYYYYYYYWYXYYXYYXXYYXYYYYXYYYYYXYYXYYYYYYYXXYXYYXXYYYYYYYZWYZYYYYXYYYYYWYYYYYYYYYYYYYYYYYYYYYYXYYYWYZYYYYYYYYYWXYYYYY[XYXZYY[YYYYYWYYYYYYYWYYXYYYYYZYYYYYYYYYYYYYYXXYYYYYYXYYYYXYXYYYYYYYYYYYYXYYYYYYXYWYYYYXXYYYYYYYXYZXYXZYYYYYYYYYYYYYYXYYXYYYXYYYXYYYYZYYYYYYXYYYYYYXYWYXYYYXYYYXXYYYXYYYYXXXYWYYYXZYYYXYXYYWXYYYYYYYYWYYXYYYXYXYYYWYYYYYYYYYYYYXYYXYYYYYZWYYYXZZYYXYYY]YYSWYYYTTRTYW`YYfYYSYZRYUYYYYYSYYXRYYYYUZYYVYYYYYZYYYYXRZYYRYYYYYY[ZYVYYYYYYYYYYYYXYYWXYYTYXYUT[[VYYYYYZYTYUUYXWYYYYSYYYYYYYYYUYYPYYYWYYTSYZYYgYYYY^Y^YSTYYYXYVYOVYYU[YYVUYYYQXY[YVUWYXUYYT\YYYRYRYYUU[YYYYYYT\YYWYYYWYPYYYUYYYVYXYYYYYYYYYVY]YYYY[YYYVXRYYWYYYVYYWWYYYXVZWYUWYY\YYVYWUYYYYYYYWYYVVYYYYWYYYWYYYYYXYYYYYWYYY\YYVYYYYYYWYYYYYYYYYYYY\YYVXYYYYWYWWWYXYYYYYYYWYWWYUXYYYYVYYYYYYYYYVYYVYYYUYYUTYZYYYYYYYXYWYWYYYYUY]YXWYYWUYYWZYYYTVYWYVTZYVVYYXWYYYUYWYYUUYYYYYYYWXYYXYYYXYVYYYSYYYWYWYYYYYYVYYUYTYYYVYYYYVYVYYWYYYZYYYWYYYZUVWYWZYY_YYXYZWYXYYYYYWYYXWYYYYXYYYYYYYYYYYYYYXVYYYXYYXYYYZ[YXYYYYYYYYYYYYZYYWZYYXYXYYXYZWYYYYYZYXYZXYWXYYYYWYYYYYYYYYWYYVYYYVYYWWY\YY]YYYYZYXYXYYYYYYYYWXYYZXYYXYYYYXYYYY[VYY[XYYXXYYYUYXYYYVZYYYYYYWZYZXYYYXYVYYYWYYYXYXYYYYYYXYYWYYYYYY\YYYXXXYYVYYYZYYVYYYYXXYVYY[YY]YYXYZVYXYYYYYWYYYWYYYYXYYYWYYYYYZYYYYXWYYYVYYXYYYZYYZYYYYYYYYYYYYXYY[YYYXYYYYX[YYYYYYYZYXYYXYWXYYYYWYYYYYYYYYXYYVYYYYYYXWYZYY_YYYY[YYYWXYYYYYVYWXYYXWYYYXYYYUXYYYXYXYXXYYYYYYWVYVYYVXZYYYYYYXWYYVYYYXYWYYYXYYYWYZYYYYYYXYYZYZYYYZYYYYXYYYYZYYYWYYWXYYYXWWWYWXYY]YYWYYWYXYYYYYWYYWWYYYYXYYYXYYYYYYYYYYYXYYYYYYVYYYZXYXYYYYYYYYYYYYYYYWYYYXYWYXXWXXYYYYYYYXYXWYWXYYYYXYYYYYYYYYVYYVYYYVYYWWYYYYZYYYYXYWYXXYYYVY[YXXYYXWYYXYYYYUYYVYXWXYWWYYXWYYYWYWYYWWZYYYYYYVXYYXYYYXYVYYYVYYYWYWYYYYYYXYYVYVYYYVXYYYWXWYYWYYYYYYWXYYYYXZXYXYYY[YYYYYYYXYYYYYXYYYXYYYYXYYYYYYYYYYYYYYXXYYYWYYZYYYYYYXYYYYYYYYYYYYXYYYXYYXYXYXYXZXYYYYYYYXYXXYXYYYYYXYYYYYYYYYXYYWYYYYYYXWY[YYZYYYYXYZYWXYYYWYXYXXYYXYYYYYYYYXXYYYXYZYXYYYYYYYWXYXYYXYYYYYYYYYXYYXYYYXYYYYYXYYYYYXYYYYYYXYYZYYYYYYXYYYXYYYYXYYYXYYYXYYYZWXWYXXYY[YYWYYXYYYYYYYXYYXWYYYYYYYY[YYYYYYYYYYYXYYYYYYYYYYZZYWYYYYYYYYYYYY\YYWYYYYYYYWXYXWYYYYYYYYYXWYWYYYYYWYYYYYYYYYVYYUYYYXYYWUYYYY[YYYYXYYYVXYYYXY\YWXYYYXYYXYYYYXYYWYWXYYXWYYYXYYZVYYYYXXZYYYYYYVXYYZYYYXYWYYYXYYYZYXYYYYYYXYYXYXYYYXYYYYXXWYYXYYYZYYSYYYYWVWVYXZYY`YYVYWVYXYYYYYVYYXUYYYYVYYYYYYYYYZYYYYXVYYYUYYYYYYZXYWYYYYYYYYYYYYZYYXYYYVYYYVVYXWYYYYYZYVYVVYUVYYYYUYYYYYYYYYYYYSYYYXYYVVYYYY^YYYY[YZYVWYYYWYWYUXYYWWYYXZYYYSYY[YUVXYVXYYXZYYVWYTYYSVZYYYYYYVXYYTYYYYYUYYYWYYYVYXYYYYYYXYYXYZYYYXVYYYVXUYYXYYYZYYXYYYYYWWXYXZYY\YYXYYWYYYYYYYYYYZXYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXZYYYYXYZXXYXYYYYYYYYYYXYXYYYYYYYYYYYYYYYXYYXYYYXYYYXY[YYZYYYYYYYYXYYYYYYYYXXYYXXYYXZYYYXYYXYYXYYXYYYXZYYYXYXYYXXYYYYYYYXYY[YYYYXYXYYYXYYYYYYYYYYYYYYYYYZYYYYXYYYXYZYYXYYY[YYVWYYYXUTVYW\YY`YYVYXVYWYYYYYVYYYWYYYYWYYYXYYYYYZYYYYXUYYYWYYWYYYZYYYYYYYYYYYYYYYXYYWXYYXYWYXWZYWYYYYYZYVYVXYWXYYYYWYYYYYYYYYXYYUYYYXYYWWYZYY^YYYY[YYYWVYYYXYWYUWYYXYYYXWYYYUXYXYYVXYZXYYW[YYXUYUYYUWZYYYYYYVYYYUYYYXYVYYYWYYYVYYYYYYYYYYYXY[YYYXZYYYWVWYYXYYYZYYUWYYYXTTVYV\YY_YYUYZUYYYYYYYXYYVTYYYYYYYYVYYYYYYYYYY\UYYYWYYWYYYZYYVYYYYYYYYYYYYYYYVWYYWYXYVT[]WYYYYYZYYYUTYWZYYYYWYYYYYYYYYUYYUYYYVYYWTY\YY\YYYY\YZYWYYYY\YYYTXYYYWYYXYYYYSWYUYXU[YYTYYW[YY\TYWYYXVZYYYYYYTZY[YYYYXYTYYYVYYYXYXYYYYYY[YYYY[YYYV[YYY[VVYYVYYYWYYY[YYYXXXXYYZYY[YYXYXVYYYYYYYXYYYXYYYYYYYYWYYYYYXYYYYYXYYYXYYWYYYYZYZYYYYYYYYYYYYWYYXXYYYYYYVYYZYYYYYYYYYYXWYWXYYYYXYYYYYYYYYWYYVYYYZYYWVYYYYXYYYYWYXYUWYYYXYXYUWYYXXYYZZYYYXXYXYYYXYWWYYXYYYWWYWYYXZYYYYYYYXYYYXYYYYYWYYYXYYYWY[YYYYYYWYYYYYYYYWXYYYYXYYYXYYYZYYWXYYYYWWXYYYYY[YYYYYYYYYYYYYXYYZXYYYYZYYYYYYYYYZYYYYZWYYYWYYYYYYZYYXYYYYYYYYYYYYZYYYZYYYYZYYXZXYYYYYYYYYYXXYXYYYYYYYYYYYYYYYYYYVYYYYYYXYYZYYZYYYYZYYYXYYYYYYXYWYYYYXYYXZYYYVYYXYYXYYXYYYYZYYXXYXYYYXYYYYYYYXZYZXYYYYYWYYYXYYYXYYYYYYYYZYYYYZYYYYZYYYYYXYYYYYYZYYVXYYYYVVWYW[YY]YYXYYVYXYYYYYXYYYWYYYYYYYYWYYYYYZYYYYYUYYYYYYXYYYZZYXYYYYYYYYYYYY\YYXYYYXYZYXXXZXYYYYYYYXYWWYXZYYYYWYYYYYYYYYWYYUYYYWYYWVY\YYZYYYYZYXYWXYYYZY[YVWYYZWYYWXYYYWXYXYWXYYXXYYXZYYXWYWYYXWYYYYYYYW[Y[YYYYXYVYYYWYYYXYYYYYYYYYYYXYYYYYX[YYYXXWYYXYYYfYYS?YYYWFHKYRnYYrYYLYOQYRYYYYYQYYMOYYYYUZYYNYYYYY[YYYY\KYYYEYYVYYYZ[YOYYYYYYYYYYYYMYYSUYYQYWYPK`fOYYYYY[YRYPOY[[YYYYMYYYYYYYYYMYYOYYYXYYXPY`YYvYYYYcY`YUPYYY_YPYKUYY[[YYTJYYYDSYTYZR^Y\OYYR\YYYMYNYYTR[YYYYYYJgYYOYYYQYIYYYVYYYPYTYYYYYY]YYXYfYYYUlYYYfPOYYNYYYZYYZYYYYYXYYYZYYYZYYYY[YYYYYYYYXYYZYYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYYZYYYYYYYYYYYYYYZYYZYYYYYYYYYYYXYYYYYYYYYYYYZZYYYYYYYYYYYYYYYYYXYYYYYYYYY[YYYYYYYZYZYYYYYYZYYYYYYYZZYYYYYYYYYYYYYXYYYYYYYZYYYYYZYYZYYYYYYYYYYYZZYYYYYYYYYYYYYZYYYYYYYYZYYZY[YYYZYYYYYYYYYYYYYYYYWXYYYYVWYYXYYY\YYYYYYYXYYYYYXYYYWYYYYWYYYYYYYYYYYYYYZXYYYYYYYYYYZYYXYYYYYYYYYYYY\YYYYYYYYXYYXYXXYYYYYYYXYXXYXXYYYYXYYYYYYYYYYYYVYYYYYYXXYZYY[YYYYYYZYXYYYYXYZYVXYYXXYYXYYYYWYYYYXXYYYXYYYYYYZXYXYYZXZYYYYYYXYYYXYYYXYXYYYXYYYYYYYYYYYYXYYXYXYYYYZYYYXXYYYXYYYWYYX^YYYY]UUY[ZYY\YYXYZWYWYYYYYZYYZVYYYYVYYYWYYYYYYYYYY\WYYYVYYYYYYZ`YXYYYYYYYYYYYYUYYcVYYYY[YSU_a]YYYYYZY]YWWYVWYYYYTYYYYYYYYYVYYUYYYbYYVUY\YYXYYYYZY\YNTYYY]YUYSTYYY[YYZVYYYYWYZYUcZYWVYYXXYYXXYWYYY`ZYYYYYYYZYXYYYYWYWYYY^YYY[Y^YYYYYYZYYbYcYYYSUYYY^UYYY^YYYZYYUYYYYXXWVYYZYY^YYWYWVYWYYYYYWYYZVYYYYWYYYXYYYYYXYYYYYWYYYVYYYYYYZYYYYYYYYYYYYYYYXYY[ZYYYYVYWW[ZYYYYYYZYXYWXYVWYYYYVYYYYYYYYYWYYUYYYZYYWWYYYY]YYYY[YZYUWYYYXYUYTXYYXXYYYXYYYUWYZYX[XYXXYYYZYYWXYUYYUYZYYYYYYWWYXUYYYXYXYYYYYYYVY[YYYYYYWYY[Y\YYYXVYYYYVWYYZYYYYYYXXYYYXXYXYXYYYZYYYYYWYYYYYYYXYYYYYYYYZYYYYYYYYYYYYYYXXYYYZYYXYYYYYYXYYYYYYYYYYYYYYYXYYYXYXYYYXXXYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYXWYZYYYYYYYXYXYXYYYYXYYYXXYYXXYYYYYYYXYYYYXWYYWYYYXYYYXYYYYYXXYYYYYYYXXYZYYYYXYYYYYWYYYYYYYYYYYYYYYXYXYYYYYYYYXZYYYXYYYYYYXXYYYZWWYYXZYY\YYXYZXYYYYYYYXYYYXYYYY[YYYYYYYYYYYYYYYXYYYYYYYYYYZZYXYYYYYYYYYYYY[YYX[YYYYZYYYXYWYYYYYYYYYYXYX[YYYYYYYYYYYYYYYYYWYYYWYYWXY\YY[YYYYYYYYXZYYYXYYYXYYYYYYYXZYYYWZYXYYXZYYXYYXYYYZWYXYYXXZYYYYYYWZYZZYYYXYXYYYWYYYYYXYYYYYYYYYWYYYYYYYYYYWYYYYXYYYZYYXXYYYYUVXYX[YY\YYXYZZYYYYYYYXYYYWYYYYZYYYZYYYYYYYYYYZWYYYYYYWYYYZZYWYYYYYYYYYYYY[YYXZYYXYYYYWYXXYYYYYYYYYWXYXZYYYYXYYYYYYYYYXYYVYYYXYYXWY[YYYYYYY[YYYXYYYYYY[YXYYYYXYYXYYYYWYYWYXXYYYXYYX[YY[VYWYYXWYYYYYYYWZY[XYYYYYWYYYXYYYWYYYYYYYYZYYYYZYYYXZYYYWXXYYXYYYYYYUYYYYXXXWYYZYY]YYXYZWYXYYYYYVYYYWYYYYYYYYXYYYYYZYYYYXWYYYXYYXYYYZXYYYYYYYYYYYYYYXYYXYYYXYYYWYYYXYYYYYZYXYYXYXXYYYYXYYYYYYYYYXYYVYYYXYYWWYZYY\YYYYYYXYWYYYYXYVYWXYYWXYYXYYYYVXYYYXWXYXXYYXXYYWWYVYYTWYYYYYYYXXY[XYYYXYXYYYWYYYXYYYYYYYYXYYWYYYYYXXYYYV[YYYYYYYXYYYYYYYYXXXYYZYYZYYYYZXYYYYYYYYYYYXYYYYYYYYXYYYYYYYYYYYWYYYYYYYYYYYZYXYYYYYYYYYYYYZYYYYYYYYYYXYYYYYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYYYYYXYZYYXYYYYYYYYXYYYYYYYYWXYYYYYYXYYYYYYYXYYYYYYYYYYXYYYXYYYYXYYYYYYYYYZYZYYYYYYYYYYYYYYYYYYYYYYYXYYZYYYYYYZYYYYZYYYYYYYYYYXWYYYYXZXYZYYY[YYYYYYYXYYYYYXYYYXYYYYXYYYYYYYYYZYYYYXXYYYWYYYYYYZXYYYYYYYYYYYYYYYYYXZYYYYWYYYXYXYYYYYZYYYXXYWYYYYYYYYYYYYYYYYYYXYYYYYYYXYYYYZYYYYYYYYXYYYYYYXYXXYYXXYYYYYYYWYYYYYXYYXYYYYZYYXXYYYYXXYYYYYYYXXYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYXYYYXYYVWYYYXVYZYWXYY]YYWYWWYXYYYYYVYYXVYYYYWYYYZYYYYYYYYYYXWYYY[YYYYYYZYYWYYYYYYYYYYYY_YYVWYYYYWYVXWWUYYYYYYYWYXVYYWYYYYYYYYYYYYYYXYYTYYYVYYUUY[YYZYYYYXYZYUYYYYWY\YTXYYWZYYW\YYYVXYYYWVXYWWYYWXYYZWYWYYWWYYYYYYYWXYYYYYYXYZYYYUYYYYYWYYYYYYWYYVYWYYYXZYYYU[VYYWYYYYYYXYYYYYXXYYYYYYZYYYYYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYXYYYXYYYYYYYXYXYYXYYYYYXYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYXYYYYZYYYXYYYYXYYYYYYYYYYYYXYXYYYYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXXYYYXXYYYYYYY^YYVXYYYXOVXYVaYYdYYQY[SYYYYYYYVYYURYYYYZYYYXYYYYY[YYYYZTYYYTYYYYYY[[YVYYYYYYYYYYYYZYYWXYYWYYYTR\[WYYYYYZYWYURY[]YYYYQYYYYYYYYYSYYLYYYVYYSPY_YYaYYYY]Y]YRWYYY[YYYQVYY[YYYVWYYYQWYYYZU[Y[TYYV[YY]UYXYY\VZYYYYYYR]Y[[YYYXYOYYYVYYY[YXYYYYYY[YYUY[YYYW`YYYYWTYYSYYYXYYUXYYYWWWUYXYYY^YYWYWVYXYYYYYVYYXXYYYYVYYYWYYYYYYYYYYXXYYYXYYVYYYYXYXYYYYYYYYYYYYWYYXXYYXYWYWWXWXYYYYYYYWYXXYUYYYYYXYYYYYYYYYVYYWYYYWYYWWYXYY]YYYYXYWYXWYYYVYVYVXYYWTYYXZYYYTXYWYWWXYWWYYXZYYWWYUYYTWYYYYYYYXTYYVYYYYYWYYYUYYYVYXYYYYYYXYYWYXYYYWWYYYWXXYYYYYYYYYVXYYYWXWXYWZYY]YYWYZVYXYYYYYWYYXWYYYYYYYYXYYYYYXYYYYZVYYYYYYXYYYZYYXYYYYYYYYYYYYZYYYYYYYYZYXWYXVYYYYYYYWYXWYXZYYYYXYYYYYYYYYVYYUYYYXYYVVYZYY\YYYYZY[YWXYYYYYZYUWYYXXYYXYYYYVXYXYXWYYXWYYXZYYZWYVYYVWZYYYYYYWXYYXYYYXYWYYYWYYYXYXYYYYYYWYYXYXYYYX\YYYXZXYYXYYYZYYVXYYYXWUWYX[YY]YYWYXWYXYYYYYVYYYWYYYYYYYYXYYYYYYYYYYYVYYYWYYWYYYZYYXYYYYYYYYYYYYYYYXYYYYYYYXWXYXYYYYYYYXYWWYXYYYYYXYYYYYYYYYXYYVYYYWYYWXYYYY\YYYYZYZYWWYYYYYWYWXYYXXYYXYYYYUZYXYXWYYYXYYXZYYZWYWYYWWZYYYYYYWZYZYYYYXYWYYYWYYYXYXYYYYYYZYYXYYYYYXYYYYWVXYYXYYYYYYWXYYYYWVXYX[YY^YYXYYWYXYYYYYVYYYVYYYYYYYYYYYYYYZYYYYYWYYYXYYZYYYZZYWYYYYYYYYYYYY[YYZXYYXYWYWXZYWYYYYYZYYYYWYZYYYYYWYYYYYYYYYXYYTYYYYYYUVY[YY\YYYY[Y\YUXYYYXYXYUXYYX[YYXYYYYXXYZYWXYYYXYYXYYYYXYWYYWXZYYYYYYWZYYZYYYXYXYYYXYYYZYYYYYYYYWYYYY[YYYYXYYYWXWYYYYYYYYYWYYYYXYYWYYYYY[YYXYZXYXYYYYYXYYYXYYYYZYYYYYYYYYYYYYYYWYYYWYYXYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYXYXXYXZYYYYYYYYYYYYYYYYYWYYYYYYXYYXYY[YYYYXYXYYXYYYXYWYXYYYXWYYYYYYYXYYXYYXXYXYYYYYYYWWYWYYWXYYYYYYYYYYYWYYYXYYYYYXYYYXYXYYYYYYXYYXYXYYYXYYYYXXYYYXYYYYYYVXYYYXVYVYWXYY_YYXYWWYXYYYYYUYYYXYYYYXYYYXYYYYYZYYYYVWYYYVYYXYYYZVYXYYYYYYYYYYYYVYYYWYYVYTYXXWYWYYYYYZYVYXXYVXYYYYXYYYYYYYYYWYYVYYYWYYWWYZYY\YYYYXYXYWWYYYSYUYWWYYVVYYYZYYYTXYZYXVXYWXYYXWYYTVYUYYVYZYYYYYYXWYXWYYYYYVYYYTYYYVYYYYYYYYWYYXYXYYYXVYYYWWXYYYYYYXYYVWYYYXYZVYXZYY^YYXYXWYXYYYYYVYYXXYYYYXYYYXYYYYYXYYYYWWYYYWYYVYYYYYYXYYYYYYYYYYYYUYYYXYYWYUYXXXXXYYYYYZYWYXXYVXYYYYXYYYYYYYYYXYYYYYYYYYYWYZYY\YYYYXYXYXXYYYTYUYXXYYWVYYYYYYYVXYXYWXYYWXYYXXYYUVYUYYWXZYYYYYYZWYXXYYYXYXYYYVYYYWYYYYYYYYWYYZYYYYYXVYYYWXYYYYYYYXYYY[YYYY[XXYXXYYYYYYYYYYWYYYYYZYYZXYYYYYYYYYYYYYYZYYYY[XYYYYYYYYYYY]YZYYYYYYYYYYYYXYY[XYYYYZYVX[\ZYYYYYYY[YXXYXXYYYYWYYYYYYYYYXYYXYYY[YYXWYYYYWYYYYXYYYVVYYY[YXYWXYYYYYYZWYYYZXYYYY\[YYXYYZYYYZYYYYYY\YYYYYYYZ[YXXYYYXYXYYY\YYYYY[YYYYYYXYY\Y[YYYXYYYY\WYYYYYYYZYYXXYYYXWWXYX\YY[YYWYYXYYYYYYYXYYYWYYYYZYYYXYYYYYYYYYYYWYYYWYYZYYYZ[YWYYYYYYYYYYYYZYYXXYYYYXYXWZYWYYYYYYYYYWWYXYYYYYXYYYYYYYYYXYYUYYYWYYXWYZYYYYYYYZYZYUYYYYZYYYVWYYXZYYXZYYYVYYXYXXYYXXYYXYYYYVYXYYYYYYYYYYYV[YZXYYYXYVYYYWYYYXYYYYYYYYZYYYYYYYYWYYYYYWYYYWYYYWYYVZYYYXYXVYX[YY]YYXYZWYWYYYYYYYYYXYYYYXYYYWYYYYYXYYYYZWYYYVYYYYYYZ\YYYYYYYYYYYYYYTYY\WYYWYXYVXZ\ZYYYYYZYZYWXYWWYYYYUYYYYYYYYYVYYWYYY[YYWWYYYY]YYYYXYYYTWYYYWYUYUVYYWWYYZWYYYWXY[YW[XYWWYYXWYYWXYWYYVZZYYYYYYXXYWXYYYXYWYYYZYYYXY[YYYYYYXYY[Y\YYYXWYYY[WXYYYYYY`YYYZYYYXWQRY[`YY`YYUY[SYXYYYYYXYYZTYYYYZYYYVYYYYY]YYYY\VYYYTYY\YYYZ_YYYYYYYYYYYYYYUYY_XYYZYYYSTaaZYYYYYZY^YTVYZZYYYYRYYYYYYYYYTYYRYYY`YYTSY_YY^YYYY`Y\YPUYYY_YUYRUYYZ^YYXTYYYWVYXYX_\YZUYYW[YY[XYVYY\_ZYYYYYYVaY^ZYYYWYPYYY]YYY[Y]YYYYYY`YY`YfYYYY^YYY`TXYY[YYY[YYXYYYYXZUUYY[YY]YYXYZWYWYYYYY\YYZVYYYYWYYYWYYYYYZYYYY^WYYYXYYXYYYY]YYYYYYYYYYYYYYVYY]XYYXYWYTX\aZYYYYYYYZYXWYXWYYYYWYYYYYYYYYVYYWYYY_YYXVY\YYZYYYY[Y[YSXYYY^YVYRWYYYZYYXWYYYXVYZYZ_[YZWYYXZYYXWYVYYX^ZYYYYYYX\YXYYYYWYWYYY\YYYYY\YYYYYYXYY^Y_YYYUXYYY]WYYYZYYYVYYWVYYYYSW\YTYYY`YYTYUSYZYYYYYVYYTUYYYYUYYY\YYYYYWYYYYZYYYY_YYVYYYZYYVYYYYYYYYYYYYaYYVWYY\YVYSUUWUYYYYYYYVYVVYWUYYYYUYYYYYYYYYUYYRYYYRYYSRYZYYXYYYYXYVYVYYYYVY`YSXYYYUYYV[YYYVWYVYVS[YZUYYYXYY`TYTYYVSYYYYYYYUXYXVYYYXYXYYYSYYYVYUYYYYYYUYYSYSYYYS_YYYSYSYYUYYY`YYTFYYYWOQSYVdYYbYYRYUSYUYYYYYTYYVTYYYYWYYYTYYYYY\YYYYZRYYYQYYYYYY[XYUYYYYYYYYYYYYSYY`XYYUYYYSTYZTYYYYYYYTYZUYWWYYYYPYYYYYYYYYSYYTYYYYYYWVYYYYqYYYY_Y\YUUYYYVYMYPVYYW[YYVSYYYOXYYYWWZYSRYYVUYYVSYOYYPVZYYYYYYS[YVTYYYVYRYYYWYYYXYUYYYYYYYYYTYZYYYW[YYYZYSYYVYYYZYYWWYYYXUWYYV[YY\YYVYXXYYYYYYYXYYXVYYYYZYYYYYYYYYYYYYYZWYYYYYYWYYYY[YVYYYYYYYYYYYY\YYWZYYZYYYXWYYVYYYYYYYWYWVYW\YYYYWYYYYYYYYYVYYUYYYVYYVUY[YY[YYYYYYXYWXYYYYY[YTXYYXXYYWYYYYUZYVYVVYYWWYYWZYYZVYWYYWWYYYYYYYV\YY[YYYWYWYYYVYYYXYWYYYYYYZYYVYWYYYWZYYYWXXYYUYYYWYYUcYYYY\TRY]SYYZYYYYSYYSYYYYYaYYVTYYYYVYYYTYYYYY\YYYY_YYYYTYYVYYYY`Y]YYYYYYYYYYYYQYY_VYYXYVYMSdd]YYYYYYYbYSUYSUYYYYWYYYYYYYYYSYYWYYYfYYQTYWYYSYYYYRYVYJPYYYbYSYPRYYVTYY\]YYYWUYUYXjZYRVYY]YYYUXYWYYVeYYYYYYYV[YVWYYY\YVYYYdYYYWYcYYYYYYUYYeY_YYYQSYYYfTYYYZYYY[YYVZYYYYVVXYZ[YY[YYWY\WYXYYYYYWYYZVYYYYYYYYYYYYYYYYYYYXWYYYXYYYYYYY[Y[YYYYYYYYYYYY[YYYYYYYY[YWY[ZYYYYYYYYYYXWYYXYYYYWYYYYYYYYYWYYUYYYYYYWVY\YY[YYYY\YZYTWYYY[YXYUWYYX[YYXXYYYWXYYYYZXYXXYYXZYYZYYYYYXYYYYYYYYW[Y[ZYYYXYUYYYZYYY[Y[YYYYYY[YYXY[YYYZZYYYYXXYYXYYYXYYWXYYYYXXXYXYYY[YYYYZWYXYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYZYYYYYYYYYYYYYYZYYYYYYYYXYXXYZXYYYYYYYYYYXYXYYYYYXYYYYYYYYYXYYXYYYXYYXWY[YYZYYYYYYXYXYYYYYYYYXXYYYYYYYYYYYXXYYYXXYYXYYYXYYYXXYYYYXXYYYYYYYXXYYYYYYXYXYYYXYYYYYYYYYYYYYYYWYWYYYXZYYYXZYYYXYYYXYYVVYYYWWYUYXZYY`YYWYWWYXYYYYYUYYXXYYYYVYYYYYYYYYXYYYYVXYYYWYYXYYYYXYXYYYYYYYYYYYYVYYXXYYWYTYWVWXWYYYYYZYVYXXYWXYYYYXYYYYYYYYYXYYVYYYVYYWWYYYY^YYYYWYXYXWYYYTYWYWXYYWTYYX[YYYUXYXYWWWYXXYYXXYYXTYVYYVVZYYYYYYYVYWUYYYXYXYYYUYYYVYXYYYYYYVYYYYXYYYWWYYYVYXYYXYYY]YYUUYYYXRSTYX^YYcYYUY]VYWYYYYYUYYVTYYYYYYYYVYYYYYYYYYYYSYYYUYYYYYY[ZYVYYYYYYYYYYYYYYYWZYYUYXYUS[\VYYYYYZYXYYUYWZYYYYTYYYYYYYYYTYYSYYYVYYUSY]YYaYYYY_Y\YVWYYYZYXYRYYY[[YYXXYYYTWYVYYUZY[TYYX[YY\TYUYYYUZYYYYYYTYYYVYYYWYSYYYVYYYWYYYYYYYYZYYXY^YYYV^YYYZYWYYWYYYXYYTUYYYYLTYYS]YYdYYPYWTYXYYYYYXYYROYYYYVYYYZYYYYYYYYZY[TYYY[YYWYYYZ\YSYYYYYYYYYYYY_YYPXYYVYVYQRVZUYYYYYZYYYRPY[[YYYYOYYYYYYYYYRYYKYYYTYYPLY[YY_YYYY]Y]YQXYYY[Y`YOVYY[TYYWXYYYNUYYYUTZY[QYYWWYY`RYVYYXTZYYYYYYP^Y[\YYYWYQYYYUYYYZYVYYYYYYVYYUYYYYYT_YYYYUOYYUYYYYYYXZYYYYXZYYXZYY\YYXYZXYXYYYYYXYYXXYYYYZYYYXYYYYYYYYYYXWYYYYYYXYYYZYYYYYYYYYYYYYYYZYYYZYYYYZYWYYZWYYYYYYYYYYXYWYYYYYYYYYYYYYYYXYYVYYYXYYWWYZYYZYYYYYYYYVYYYYXYXYVYYYXZYYYYYYYXYYXYXYYYWXYYXZYYXXYWYYYYYYYYYYYWXYZYYYYXYWYYYXYYYYYYYYYYYYXYYXYYYYYYWYYYXZXYYXYYYXYYXXYYYWW[YYWWYY[YYWYXWYYYYYYYXYYXWYYYYXYYYZYYYYYXYYYYXXYYY]YYWYYYYYYXYYYYYYYYYYYY]YYWZYYZYWYWXXYWYYYYYYYXYYXYXXYYYYXYYYYYYYYYWYYWYYYVYYVUYYYYYYYYYXYXYWZYYYWY\YVXYYXYYYX[YYYXWYWYWWZYXWYYWXYYYWYWYYWWYYYYYYYVYYYXYYYYYYYYYWYYYYYXYYYYYYXYYWYXYYYWZYYYVZXYYXYYYZYYVVYYYVUYUYUZYYaYYUYYUYXYYYYYTYYWVYYYYUYYYWYYYYYYYYYYVVYYYYYYVYYYZWYWYYYYYYYYYYYYYYYUVYYXYVYUWYXVYYYYYYYVYYUYTWYYYYXYYYYYYYYYUYYSYYYSYYVUYZYY]YYYYVYSYVWYYYUYXYUXYYVTYYWZYYYSWYUYWTWYWUYYWYYYZSYTYYRTYYYYYYYVVYZVYYYXYWYYYSYYYUYWYYYYYYXYYUYTYYYU[YYYU[WYYUYYYZYYYYYYYXWVWYZ[YY[YYXYZXYYYYYYYYYYYXYYYYXYYYXYYYYYXYYYYYWYYYXYYXYYYZZYYYYYYYYYYYYYYYYYZYYYYYZYWXZZYYYYYYYYZYYYYXXYYYYVYYYYYYYYYXYYXYYYYYYYVY\YY\YYYY[YZYWYYYY\YZYWWYYYYYYYYYYYXXYYYXYZYYXYYYZYYZXYWYYYZZYYYYYYXZYZXYYYYYWYYYYYYYXY[YYYYYYZYYZY[YYYX[YYYZYZYYYYYYZYYWXYYYXXXXYYZYY[YYXYZXYXYYYYYWYYYXYYYYYYYYXYYYYYYYYYYYWYYYXYYYYYYZXYXYYYYYYYYYYYYZYYZYYYXYXYXYYXXYYYYYZYXYXXYXXYYYYXYYYYYYYYYXYYWYYYXYYXXYZYY[YYYYYYYYWXYYYXYYYXXYYXYYYXYYYYWYYYYXYXYXXYYXZYYXXYXYYXXYYYYYYYYXYZXYYYXYXYYYXYYYXYYYYYYYYYYYXYYYYYYXYYYXXXYYYYYYXYYWXYYYXXYXYXYYY[YYYYYXYXYYYYYWYYYXYYYYYYYYXYYYYYYYYYYYXYYYYYYXYYYYXYXYYYYYYYYYYYYYYYXYYYYYXYXXXYXYYYYYYYXYYYYWZYYYYYYYYYYYYYYXYYXYYYXYYXXYZYYZYYYYXYXYXYYYYXYYYYXYYYXYYXYYYYYXYXYYWYYXXYYXYYYXXYXYYWXYYYYYYYXXYYXYYYXYXYYYWYYYXYXYYYYYYXYYXYXYYYXYYYYWZYYYXYYYYYYW\YYYXZXVYXYYY[YYYYYWYVYYYYY[YYYWYYYYYYYYXYYYYYXYYYYYXYYYWYYYYYYZ[YZYYYYYYYYYYYYVYY[VYYXYYYTWZ]ZYYYYYYYYYXXYVXYYYYWYYYYYYYYYVYYVYYYZYYVWYXYYZYYYYWYXYSVYYY]YWYUVYYXXYYXYYYYZXYXYY^YYWXYYXYYYXVYXYYY[ZYYYYYYXXYXWYYYXYWYYY]YYYYY[YYYYYYXYY[YYYYYTXYYY[UYYYWYYYXYYYXYYYXWXWYWYYY]YYXY[VYXYYYYYWYYXXYYYYWYYYZYYYYYXYYYYXXYYY[YYVYYYZYYXYYYYYYYYYYYY[YYXYYYYYWYWXWXXYYYYYYYXYWXYWWYYYYXYYYYYYYYYWYYWYYYVYYWVYZYYZYYYYYYWYXYYYYWYZYXXYYXXYYXZYYYWXYVYXUYYXXYYXXYYZWYVYYVVZYYYYYYXWYYWYYYYYYYYYVYYYWYXYYYYYYXYYXYWYYYW[YYYVXWYYXYYYYYYVXYYYXXYXYX[YY]YYXYZVYWYYYYYWYYYXYYYYYYYYYYYYYYXYYYYYWYYYYYYXYYYZZYXYYYYYYYYYYYYZYYYXYYYYXYXXYYVYYYYYZYYYYXYXXYYYYXYYYYYYYYYXYYVYYYWYYVWY[YY]YYYYXYYYWYYYYXYXYWXYYXYYYXZYYYWXYYYYWYYXXYYXXYYXWYXYYXWZYYYYYYXXYXYYYYXYWYYYWYYYXYXYYYYYYWYYWYYYYYYYYYYV[YYYYYYYXYYXYYYYYXYYYYYYYZYYYYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYZYYYYYYYYYYYYYYYYYYYYYYZYYYYYYXYYYYXYYXYYYYYYYYYXYYXXYYYYYYYYYYYYYYYYYXYYYXYYYXYYYYYYYYYYYXYXYYYYYYYYXXYYXYYYXYYYYXYYXYXYYYXYYYYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYXYYXYYYYYXYYYYXYYYYYYYYXYYXXYYYXWYXYXXYY[YYYYYXYXYYYYYWYYYXYYYYYYYYZYYYYYYYYYYYXYYYYYYXYYYYXYXYYYYYYYYYYYY[YYXZYYYYXYYXXXXYYYYYYYXYXYYXYYYYYYYYYYYYYYYXYYWYYYWYYXWYYYYZYYYYWYXYXXYYYWYZYWYYYXXYYXZYYYWYYXYWWYYXXYYXYYYXWYWYYVXYYYYYYYXWYYYYYYXYYYYYWYYYYYXYYYYYYXYYXYXYYYXYYYYWYXYYXYYYXYYWXYYYXWWWYXZYY\YYXY[WYXYYYYYXYYXXYYYYYYYYXYYYYYYYYYYXWYYYXYYWYYYZXYXYYYYYYYYYYYYYYYWYYYXYYYXXXXXYYYYYYYXYXXYVYYYYYXYYYYYYYYYXYYWYYYXYYXWYYYY\YYYYYYXYXXYYYXYYYXXYYWWYYXYYYYWYYWYXWXYXXYYXXYYXXYVYYVXYYYYYYYXWYYWYYYYYYYYYXYYYXYXYYYYYYXYYXYXYYYWYYYYXZXYYXYYY_YYW]YYYXYSTYZ[YY]YYWY]VYUYYYYYZYY\TYYYYZYYYVYYYYY[YYYY[WYYYUYY[YYY[^YYYYYYYYYYYYYYWYYaXYYXYZYTV^`[YYYYYZY^YWUYXXYYYYVYYYYYYYYYVYYUYYY`YYVVY]YY]YYYY^Y]YPXYYY_YSYRWYYY^YYXUYYYXVYZYYaZYXUYYW\YYYZYVYYY_ZYYYYYYW\Y[YYYYXYWYYY^YYYZY_YYYYYY^YY_YbYYYYWYYY^VXYYZYYY`YYVXYYYZPPVYWcYYfYYQYXTYYYYYYYXYYVMYYYY]YYYVYYYYYZYYYY\QYYYWYYZYYY[_YRYYYYYYYYYYYY]YYRWYYVYWYUPbdUYYYYYZYWYQOY[^YYYYOYYYYYYYYYSYYLYYYUYYSNYbYYcYYYYbY^YQYYYYdY]YLYYY^]YYWTYYYPTYWYZS^Y^PYYY[YYcSYZYYZV[YYYYYYNcY[[YYYVYNYYYXYYYYYYYYYYYY\YYZYbYYYWeYYY`TRYYTYYYYYYVXYYYWWWWYXZYY]YYWYXVYYYYYYYWYYWWYYYYXYYYWYYYYYXYYYYXVYYYZYYWYYYYZYXYYYYYYYYYYYY[YYWYYYYYYYXWZYXYYYYYYYXYXWYVYYYYYWYYYYYYYYYWYYWYYYWYYWVY[YYZYYYYZYXYXYYYYYYZYVWYYXWYYXYYYYUWYWYYVYYXWYYXYYYYVYVYYWWYYYYYYYXYY[WYYYYYVYYYWYYYVYXYYYYYYYYYWYWYYYW[YYYWYXYYXYYYWYYVXYYYUXYWYWWYY]YYUYXVYWYYYYYWYYWVYYYYUYYYZYYYYYXYYYYZWYYYXYYXYYYYYYXYYYYYYYYYYYY\YYVXYYZYXYVWWXVYYYYYYYWYVVYVVYYYYVYYYYYYYYYXYYUYYYVYYVTYYYY^YYYYWYUYVXYYYXYZYUWYYVUYYWZYYYTVYVYVVYYVVYYWYYY[VYWYYWVYYYYYYYXXY[ZYYYXYWYYYUYYYXYVYYYYYYWYYVYWYYYWZYYYUZUYYVYYYZYYWXYYYXWXWYY[YY\YYXYZVYWYYYYYWYYYXYYYYXYYYXYYYYYYYYYYXWYYYYYYXYYYZXYYYYYYYYYYYYYYZYYYXYYYYXYXWYYWYYYYYYYWYXXYYYYYYYXYYYYYYYYYXYYWYYYXYYYVY[YYZYYYYYYZYWXYYYZYYYVXYYXXYYWYYYYWWYWYYXWYXXYYWZYYXXYWYYWXYYYYYYYYYYZWYYYXYXYYYWYYYWYYYYYYYYYYYXYYYYYWZYYYWZXYYXYYYYYYYXYYYYYXXYYZYY[YYXYZWYXYYYYYWYYYYYYYYZYYYXYYYYYYYYYYXYYYYXYYYYYYZYYYYYYYYYYYYYYYXYYYYYYYYXYXXYXYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYXXYZYY[YYYYYYYYWYYYYXYWYYXYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYYYYYYYZYYYYYYYXYZZYYYXYYYYYXYYYYYYYYYYYYYYYYYZYYYYXYYYXYZYYXYYYXYYZWYYYYYXZYX\YY\YYXY[XYYYYYYYYYYYWYYYY[YYYYYYYYYYYYYY[WYYY[YY[YYYZ^YVYYYYYYYYYYYY\YY]YYYYY[YUXY[WYYYYYYYYYXWY[ZYYYYUYYYYYYYYYWYYUYYY[YYUTY]YYVYYYY[Y]YSXYYY[Y\YUTYY[]YYWXYYYYZY[YX\ZYYXYYXYYY\YYYYY\\ZYYYYYYW\YY[YYYWYUYYYYYYY\YYYYYYYYXYY[Y\YYYYZYYYXXYYYYYYYUYYXKYYYWGKUYP[YYeYYMYMXYWYYYYYVYYONYYYYMYYYWYYYYYWYYYYXRYYYWYYRYYYZYYOYYYYYYYYYYYYaYYMOYYUYQYNOT[SYYYYYYYWYMMYZSYYYYKYYYYYYYYYMYYGYYYOYYLOYaYYXYYYYXYRYQUYYY^YdYLTYY\SYYTPYYYGOYZYWO_YbLYYXWYYbLYTYYYQYYYYYYYM`Y[UYYYUYMYYYRYYYQYRYYYYYYRYYQYTYYYKfYYYXSHYYQYYYXYYYUYYYXQRZYU^YYaYYQYYUYYYYYYYWYYTRYYYYUYYYXYYYYYXYYYY\SYYY^YYXYYYZ[YTYYYYYYYYYYYY_YYSWYYWYWYRTY\VYYYYYYYVYSRY[XYYYYQYYYYYYYYYUYYRYYYVYYSOY[YY[YYYY\YZYTWYYY[Y]YPWYYZXYYVVYYYSWYWYVT[Y[SYYVYYY_UYVYYXUZYYYYYYT^YXXYYYVYTYYYUYYYWYUYYYYYYVYYVYZYYYT_YYYWVQYYXYYY]YYWXYYYYVVXYY]YY]YYWY[WYYYYYYYYYYXWYYYYZYYYXYYYYYZYYYYYXYYYVYYYYYYZZYYYYYYYYYYYYYYXYYYZYYXYYYYXZZYYYYYYZYXYXWYY[YYYYWYYYYYYYYYWYYXYYYZYYZWY[YY]YYYY\Y\YXXYYY[YXYVXYYYZYYXXYYYXYYXYZXYYZXYYY[YYYXYXYYZXZYYYYYYXYYZYYYYXYWYYYZYYYZYYYYYYYY\YYYY]YYYYYYYYYWZYYXYYYYYYWYYYYYXWXYXZYY]YYXYYXYWYYYYYXYYYWYYYYXYYYXYYYYYYYYYYZWYYYWYYYYYYYYYXYYYYYYYYYYYYXYY[YYYYYWYXYYZXYYYYYZYYYYXYWXYYYYXYYYYYYYYYXYYXYYYYYYWWYZYY\YYYYXYYYUXYYYWYWYVXYYXYYYXXYYYXXYYYYZYYXWYYXYYYXXYXYYXYZYYYYYYXXYXXYYYXYXYYYXYYYXYYYYYYYYWYYZYZYYYYXYYYXYYYYXYYYZYYWYYYYXVVWYW[YY_YYWYYVYWYYYYYVYYYWYYYYYYYYWYYYYYYYYYYXVYYYWYYXYYYZXYXYYYYYYYYYYYYYYYXYYYYYXYWWWYXYYYYYZYWYWXYWYYYYYXYYYYYYYYYWYYUYYYXYYWWYYYY_YYYYYYYYWWYYYVYXYVXYYXXYYXYYYYVXYXYWWXYXWYYXXYYVWYUYYVWZYYYYYYWYYXXYYYXYVYYYVYYYWYYYYYYYYYYYXYYYYYYYYYYVWXYYXYYYXYYYXYYYYRVYYWZYY]YYVYZWYZYYYYYZYYVTYYYYYYYYYYYYYYYYYYY\UYYY[YYXYYYZ\YVYYYYYYYYYYYY^YYU[YYZYYYVU\]UYYYYYYYZYXSYW[YYYYSYYYYYYYYYTYYRYYYUYYURY_YYXYYYY\Y[YVZYYY]Y_YUXYY\XYYWYYYYUVYYYYW\YZUYYYYYY[WYXYYZWZYYYYYYT]Y]ZYYYWYSYYYWYYYYYYYYYYYYZYYVYZYYYV_YYYZYVYYVYYYYYYWYYYYYXXXYXZYY[YYWYYXYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYZZYXYYYYYYYYYYYYZYYXYYYZYYYXYYYYYYYYYYYYYYWYVYYYYYYYYYYYYYYYYYYWYYYWYYXXY[YYZYYYYYYWYXZYYYZYZYXXYYYXYYYZYYYXYYXYYXZYYXYYYYYYYWYXYYWXYYYYYYYXZY[YYYYYYXYYYWYYYXYYYYYYYYYYYWYWYYYXZYYYXYYYYXYYYWYYXXYYYVWYXYWWYY\YYWYXTYXYYYYYWYYXXYYYYXYYYXYYYYYXYYYYXWYYY\YYUYYYYWYXYYYYYYYYYYYYZYYWXYYZYVYXWWWXYYYYYYYWYXXYVXYYYYYYYYYYYYYYVYYWYYYUYYVVYYYYZYYYYWYUYWXYYYVY\YXXYYUWYYXYYYYVXYVYVVXYVVYYVWYYZTYVYYTVYYYYYYYWVYZWYYYXYXYYYUYYYWYVYYYYYYWYYUYVYYYW[YYYU[WYYWYYYYYYUWYYYWVYUYWZYYbYYVYYVYWYYYYYUYYVVYYYYWYYYYYYYYYXYYYYWUYYYUYYWYYYZWYVYYYYYYYYYYYYZYYWXYYWYXYUVWWVYYYYYZYXYXVYVVYYYYVYYYYYYYYYVYYQYYYVYYUUYZYY`YYYYYY[YVWYYYUYXYUWYYVTYYXYYYYQXYZYVUVYWVYYXXYYYUYTYYVUZYYYYYYXVYXVYYYXYTYYYUYYYWYXYYYYYYVYYVYYYYYWYYYYVZTYYWYYYYYYSXYYYWXWVYY[YY^YYXYYXYYYYYYYVYYYWYYYYWYYYXYYYYYYYYYYXWYYYVYYXYYYZXYXYYYYYYYYYYYYXYYZYYYXYWYXWYYXYYYYYZYWYYXYVYYYYYWYYYYYYYYYXYYVYYYXYYWWY[YY^YYYYYYZYXWYYYWYVYWXYYWVYYXYYYYVXYXYXXXYWYYYXYYYVWYWYYVWZYYYYYYXXYYUYYYXYWYYYWYYYWYXYYYYYYWYYYY[YYYXVYYYWXWYYZYYYXYYVXYYYXTWWYV\YY`YYVY]UYXYYYYYWYYVUYYYYXYYYWYYYYYXYYYYZUYYYXYYXYYYZZYWYYYYYYYYYYYY[YYVYYYXYZYWVXYUYYYYYYYXYXVYWYYYYYUYYYYYYYYYSYYRYYYWYYUTYZYY\YYYY[YZYVXYYYXYZYSWYYYVYYXYYYYTYYWYXUYYXVYYXYYYYVYUYYWVZYYYYYYUXYYWYYYXYTYYYVYYYWYWYYYYYYWYYVYWYYYXZYYYWYVYYWYYYXYYXWYYYWXZXYXZYY\YYWYYWYXYYYYYVYYXXYYYYWYYYYYYYYYXYYYYYXYYYZYYXYYYYXYXYYYYYYYYYYYYYYYXYYYYYWYXXXWWYYYYYYYXYYXYXYYYYYXYYYYYYYYYWYYXYYYXYYWVYXYYYYYYYWYXYWYYYYXYYYWXYYXXYYWZYYYXXYXYXWXYWXYYXXYYYXYWYYWWYYYYYYYYWYYXYYYXYYYYYWYYYXYXYYYYYYWYYXYXYYYWYYYYVZYYYXYYYYYYVYYYYYXXVYZYYY\YYXY\XYXYYYYYYYY\WYYYYYYYYXYYYYYZYYYYZWYYYWYYZYYYZ]YZYYYYYYYYYYYYYYY[YYYZYXYVY\]YYYYYYYY\YYWYWWYYYYVYYYYYYYYYXYYUYYY]YYWUY[YY[YYYY\YYYRXYYY\YWYUWYYXYYYYXYYYXXYZYX_ZYWXYYYYYYXYYWYYX[ZYYYYYYY[YYZYYYWYYYYY[YYYYY\YYYYYYZYY\Y]YYYZWYYY[XXYY[YYY[YYXWYYYZYWVYXZYY]YYYYZVYXYYYYYZYYYXYYYYYYYYXYYYYY[YYYYZYYYYWYYZYYYZ\YYYYYYYYYYYYYYXYY[XYYXYWYWXZ\YYYYYYYYYYXXYWYYYYYXYYYYYYYYYXYYVYYY\YYXWYYYYZYYYYZYYYUWYYYZYWYVXYYZZYYWVYYYYXYXYY\[YXWYYWYYYXXYWYYX\YYYYYYYXZYXWYYYVYXYYY[YYYYYZYYYYYYYYY\Y]YYYWVYYYZWYYYYYYY^YYXVYYYZVSWYZaYY^YYVYZYYXYYYYYYYYZVYYYY[YYYVYYYYYYYYYY[TYYYXYYXYYYZ^YTYYYYYYYYYYYY]YYY[YYVYZYWV`^WYYYYYYYZYTTYZ\YYYYVYYYYYYYYYXYYUYYY[YYWUY]YY[YYYY_YYYTWYYYbY[YTXYY\ZYYWUYYYWXYWYZZ^Y[WYYW]YY\TYXYY[YZYYYYYYUaYZXYYYWYSYYY]YYYWYYYYYYYY[YY]Y_YYYW`YYY\TZYYWYYYYYYWXYYYYXVWYW[YY_YYXY[WYWYYYYYWYYZWYYYYXYYYXYYYYYXYYYYYVYYYXYYXYYYZZYYYYYYYYYYYYYYWYYYYYYWYYYXXYZXYYYYYZYWYZYYWWYYYYXYYYYYYYYYXYYVYYYYYYVWY[YY_YYYY[YYYXXYYYYYWYVXYYXYYYXYYYYWXYYYYYZYYYYYXXYYYWYVYYXXZYYYYYYXYYXXYYYXYXYYYXYYYYYXYYYYYYVYYXYZYYYXYYYYXYYYYYYYYZYYVXYYYYVXYYYZYY]YYXYYYYYYYYYYXYYYWYYYYZYYYYYYYYYZYYYYYWYYYXYYXYYYZYYXYYYYYYYYYYYY[YYYZYYYYYYYXZXXYYYYYZYYYXWYXYYYYYXYYYYYYYYYXYYVYYYXYYXXY[YY[YYYYZYZYWYYYYXYYYWXYYYYYYXZYYYWYYXYYXZYYYYYYZYYYWYXYYYXZYYYYYYXXYZYYYYYYWYYYXYYYXYZYYYYYYYYYYYZYYYZZYYYXYXYYXYYYUYYV_YYYY`VSYYWYY^YYYYVXYTYYYYY_YYZUYYYYWYYYWYYYYYYYYYY^VYYYVYYXYYYYcYZYYYYYYYYYYYYSYYaXYYXYXYRU^a\YYYYYYY_YWVYTWYYYYWYYYYYYYYYTYYWYYYbYYTWYWYYZYYYYVYWYSUYYY^YUYSVYYXVYY[UYYYYVYXYVb]YWVYYXYYYWXYWYYWaZYYYYYYY\YWWYYYWYWYYYbYYYYY_YYYYYYXYYaYaYYYSUYYYaSYYY\YYYYYYWYYYYXXXXYX\YY]YYWYYVYXYYYYYWYYYXYYYY[YYYXYYYYYYYYYYWWYYYWYYXYYYZYYXYYYYYYYYYYYYWYYZYYYXYYYYXYXXYYYYYZYWYYXYWYYYYYXYYYYYYYYYXYYWYYYXYYYWYZYY^YYYYYYYYWXYYYWYVYWXYYXWYYYYYYYVZYYYXXXYWWYYXZYYWVYVYYWXZYYYYYYWVYYXYYYYYWYYYWYYYVYYYYYYYYZYYYYYYYYYYYYYWXYYYYYYYZYYXYYYYYWWWYY[YY\YYXY[WYXYYYYYXYYYWYYYYYYYYZYYYYYZYYYYXXYYYVYYZYYYZZYYYYYYYYYYYYYYXYYZXYYXYYYXWYYXYYYYYZYYYWXYXYYYYYWYYYYYYYYYXYYUYYY[YYYXYYYY[YYYYYY[YVVYYYYYWYVWYYXYYYXYYYYXXYYYWYXYXYYYXYYYXWYWYYZZZYYYYYYWYYZYYYYYYWYYYYYYYYYYYYYYYYZYYYYZYYYYXYYYXWYYYYYYYYYYYXYYYYXXYYXYYY[YYYY[YYYYYYYYXYYYXYYYYYYYYZYYYYYYYYYYYXYYYZYYYYYYYZYXYYYYYYYYYYYYZYYX[YYYYYYXXXYXYYYYYYYYYYYYYZYYYYWYYYYYYYYYXYYWYYYXYYXWYZYYYYYYYYYYYXZYYYYYZYXXYYYYYYXZYYYYYYYYYXYYYXYYYZYYYXYXYYXXYYYYYYYXYYYZYYYYYYYYYXYYYYYXYYYYYYYYYXYYYYYYZYYYXYYYYYYYY\YYWWYYYXUTWYW^YY`YYUYZVYYYYYYYXYYWTYYYYXYYYVYYYYYYYYYY[SYYYYYYXYYYZZYWYYYYYYYYYYYY]YYYZYYXYZYXU][WYYYYYYYXYUUYXYYYYYVYYYYYYYYYVYYSYYYXYYWSY]YYZYYYY]Y[YVYYYY]Y[YTVYYYYYYXWYYYUWYVYUV\YZVYYW]YY\TYVYYXWYYYYYYYW]Y[WYYYXYTYYYXYYYUYYYYYYYYYYYZY]YYYX]YYYZWUYYYYYYXYYWXYYYZUVYYVXYY]YYVYYUYZYYYYYYYYWVYYYYYYYYZYYYYYXYYYYXXYYY]YYTYYYYZYWYYYYYYYYYYYY\YYV\YYZYUYXVYYWYYYYYYYYYXVYWYYYYYVYYYYYYYYYVYYWYYYUYYWSY[YYYYYYYYYXYWZYYYWY^YVXYYZXYYXYYYYXWYVYUV\YZUYYXXYY[VYVYYXWYYYYYYYUXYYXYYYXYYYYYVYYYXYXYYYYYYXYYZYZYYYV[YYYVYXYYXYYYZYYXYYYYXWXXYZ\YY\YYXY[XYXYYYYYWYYYXYYYYYYYYXYYYYYZYYYYYWYYYVYYZYYYZZYYYYYYYYYYYYYYYYYZYYYXYXYXWYYXYYYYYZYXYXXYXYYYYYWYYYYYYYYYXYYUYYYYYYXXYZYY\YYYYZY[YWWYYYYYWYVXYYYYYYYYYYYWXYZYXXYYYXYYYZYYXWYWYYYYZYYYYYYXXYXWYYYXYXYYYYYYYWYYYYYYYYYYYZY[YYYZYYYYXXXYYYYYYYYYXXYYYYXXYYXYYY[YYYYYYYXYYYYYXYYXXYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYZYYYYYYYYYYYYYYYZYYYYYYYYYYYYXYXYYYYYYYXYYXYYYYYYYYYYYYYYYYYYYYWYYYXYYXXYZYYZYYYYYYYYXYYYYYYYYXYYYYYYYXZYYYYYYYYYXYYYYYYYZYYXYYYYYYYYYYYYYYXXYYYYYYXYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYY[YYUXYYYVUVTYW\YYaYYVYYUYXYYYYYUYYWVYYYYTYYYWYYYYYYYYYYWUYYYTYYXYYYZXYXYYYYYYYYYYYYWYYYWYYWYWYVVYXXYYYYYZYXYWVYVVYYYYVYYYYYYYYYWYYTYYYVYYWVYZYY_YYYYZYZYXWYYYVYVYUXYYVVYYXYYYYUWYZYWWWYXWYYX[YYWVYUYYSVZYYYYYYWYY[UYYYXYTYYYUYYYWYXYYYYYYYYYWYXYYYWWYYYXYUYYYYYYXYYVWYYYWVYUYX[YY_YYWYYVYWYYYYYTYYXXYYYYUYYYYYYYYYYYYYYVWYYYVYYXYYYZXYXYYYYYYYYYYYYWYYVWYYVYWYWXWWXYYYYYZYWYWXYVVYYYYVYYYYYYYYYWYYUYYYVYYWVYZYY^YYYYXYWYWWYYYVYWYVWYYVVYYXZYYYSXYYYWVWYWXYYXXYYXXYVYYVVZYYYYYYYTYYVYYYYYWYYYUYYYWYYYYYYYYWYYWYWYYYWXYYYVYVYYXYYYXYYXXYYYYXYXYXXYYZYYXYXWYYYYYYYXYYXXYYYYXYYYZYYYYYYYYYYXZYYY\YYWYYYYXYYYYYYYYYYYYYY[YYXZYYYYWYXXXXYYYYYYYYXYYYYWYYYYYYYYYYYYYYYXYYXYYYWYYXWYYYYYYYYYXYWYXYYYYWYZYXYYYYXYYY[YYYXZYWYXXZYXXYYYYYYYWYXYYVWYYYYYYYXWYZXYYYYYZYYYWYYYXYWYYYYYYXYYXYWYYYXYYYYWYXYYXYYYZYYWXYYYXUUWYW[YY^YYVYZVYWYYYYYWYYWVYYYYZYYYWYYYYYZYYYYYVYYYUYYYYYYZXYYYYYYYYYYYYYYWYYXXYYVYXYVVXZWYYYYYZYWYXWYWXYYYYVYYYYYYYYYVYYUYYYWYYWVYYYY`YYYYYYYYWWYYYWYVYVWYYWWYYXXYYYVYYYYXWVYWVYYXYYYWUYUYYYVZYYYYYYVYYZYYYYXYTYYYVYYYXYYYYYYYY\YYVY[YYYWWYYYXXWYYVYYYYYYWXYYYXXYXYYYYYZYYYYYXYXYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYXYYYYXYXYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYXYWZYYYYYYYYYYYYYYXYYYYYYYYYYWYYYYYYYYYXYXYYYYYYWYWYYWYYXWYYXZYYYYXYWYXYXYXXYYXYYYXXYYYYXXYYYYYYYZXYZZYYYXYXYYYWYYYYYXYYYYYYXYYYYZYYYXXYYYXYYYYXYYY\YY[[YYYZYVWYW\YY[YYWY[VYWYYYYY[YYYUYYYY\YYYXYYYYYZYYYY^VYYYXYY[YYYZ[YXYYYYYYYYYYYYZYY\YYYXY\YUV\`[YYYYYYY\YXVY[[YYYYUYYYYYYYYYVYYTYYY\YYVTYZYYWYYYY[Y[YSVYYY`YYYTUYYZ\YYVVYYYZVYYYX]ZYZVYYXXYY\XYYYY\^YYYYYYYX^Y\[YYYVYUYYY\YYY\Y[YYYYYY[YY\Y]YYYV]YYY^W[YYWYYYZYYWXYYYXWXYYW\YY[YYWYWXYYYYYYYXYYXWYYYYYYYYYYYYYYZYYYYZXYYYVYYYYYYZYYWYYYYYYYYYYYYYYYYXYYZYYYWWXXXYYYYYZYWYWWYZZYYYYWYYYYYYYYYZYYUYYYZYYWXYZYY\YYYYYY\YYXYYYYYXYXXYYYWYYXZYYYWYYYYXXZYXXYYYZYYYWYXYYYXZYYYYYYY[YZXYYYXYWYYYXYYYYYXYYYYYYZYYXYYYYYYYYYYXWWYYXYYYYYYUXYYYXWXVYW[YY^YYWYYVYXYYYYYWYYYVYYYYWYYYWYYYYYYYYYYYVYYYWYYYYYYZYYXYYYYYYYYYYYYZYYWWYYXYXYXWZZWYYYYYZYWYWVYXWYYYYWYYYYYYYYYWYYUYYYXYYWVY[YY\YYYYZYYYVWYYYYYVYUWYYXZYYXXYYYTWYYYXXXYXWYYXZYYXUYWYYVXZYYYYYYWXYYXYYYWYWYYYWYYYXYYYYYYYYXYYXYYYYYXXYYYXYWYYWYYYZYYVWYYYYTUWYV[YYaYYWY[UYWYYYYYXYYXUYYYYXYYYXYYYYYZYYYYYUYYYZYYVYYYZZYXYYYYYYYYYYYYYYYWYYYXYXYWWYZXYYYYYZYYYWWYVYYYYYWYYYYYYYYYVYYTYYYUYYVVY^YY]YYYY[YXYWZYYYWYXYVWYYXWYYXXYYYVWYXYXUZYZWYYWZYY[VYWYYVVZYYYYYYUYY]XYYYYYUYYYUYYYXYYYYYYYYYYYVYYYYYYZYYYWYWYYWYYYXYYXZYYYXXYXYYWYYYYYYYXYYWYYYYYZYYYXYYYYYYYYXYYYYYXYYYYZYYYYXYYXYYYY[YXYYYYYYYYYYYYYYYZWYYXYYYWXY\YYYYYYYYYYXYYXXYYYYXYYYYYYYYYXYYYYYYZYYWVYWYYXYYYYVYYYVWYYY\YXYVVYYWVYYWYYYYXYYXYW\YYWYYYXYYYXVYYYYX[YYYYYYYYZYWWYYYXYYYYYZYYYYYXYYYYYYVYYZYYYYYWWYYYYXYYYWYYY[YYVWYYYYTXYYW^YY_YYWYYXYXYYYYYWYYYVYYYY\YYYXYYYYYZYYYYYVYYYUYYZYYYZYYWYYYYYYYYYYYYXYYUYYYYYYYXYZYWYYYYYZYXY[VYX[YYYYXYYYYYYYYYXYYVYYYWYYYVY[YY^YYYYYYYYXYYYYYYWYVWYYXZYYXWYYYVYYYYXVZYWWYYXZYYYWYYYYXWZYYYYYYWXY[^YYYXYUYYYWYYYZYYYYYYYYZYYWYYYYYY\YYYWZXYYVYYYWYYWZYYYXYXXYXXYYZYYYYXWYWYYYYYYYYYXYYYYXYYYXYYYYYXYYYYYWYYYZYYWYYYYYYYYYYYYYYYYYYYZYYYXYYYYWYXXZZYYYYYYYYZYXYYXXYYYYXYYYYYYYYYXYYYYYYXYYXVYYYYXYYYYWYXYXXYYYVYXYWXYYXXYYZYYYYWXYWYWXZYWXYYYYYYWWYWYYWYYYYYYYYXZYYXYYYYYYYYYWYYYXYZYYYYYYWYYYYXYYYXWYYYYXYYYYYYYbYYWIYYYVMLRYWcYYdYYQYVTYUYYYYYVYYYSYYYYZYYYPYYYYY^YYYY[PYYYQYYXYYYZ]YVYYYYYYYYYYYYWYY^UYYUYXYTQa_XYYYYYXYYYSTY]XYYYYNYYYYYYYYYNYYSYYYZYYUTY]YYcYYYYaY]YUUYYY`YRYOVYY[bYYYOYYYOSYWYVX]YWPYYWZYYZSYRYYZ\ZYYYYYYRbY]VYYYSYLYYYZYYYYYYYYYYYY_YYZYbYYYY`YYYcRSYYUYYYWYYVXYYYWWXXYWZYY\YYXYYWYWYYYYYWYYXWYYYYWYYYYYYYYYXYYYYZWYYYWYYYYYYZ[YXYYYYYYYYYYYYYYYYWYYXYYYVWXZWYYYYYYYZYXXYXWYYYYWYYYYYYYYYWYYVYYYYYYVWYZYY[YYYYXY[YUWYYYWYYYUVYYXYYYXXYYYUWYZYVXYYWWYYWXYYYYYXYY[YZYYYYYYYZY[YYYYXYXYYYXYYYYYXYYYYYYWYYXYYYYYXXYYYWXWYYXYYYXYYXXYYYXXXWYWZYY\YYWYXWYXYYYYYXYYWWYYYYWYYYYYYYYYXYYYYZXYYYYYYXYYYYYYXYYYYYYYYYYYYZYYXWYYXYXYXWXXVYYYYYYYXYVWYXWYYYYWYYYYYYYYYXYYVYYYXYYXWYXYYWYYYYYYYYVWYYYXYYYUWYYXWYYXYYYYVXYXYVXXYXXYYXYYY[YYXYYXXYYYYYYYYYYYYYYYXYXYYYWYYYYYWYYYYYYXYYWYWYYYXWYYYXXWYYXYYYWYYV]YYYX[WUYYVYYZYYYYXXYUYYYYY\YYXWYYYYXYYYXYYYYYYYYYY\XYYYXYYWYYYY]YZYYYYYYYYYYYYVYY\UYYVYYYTV]_ZYYYYYYY\YWVYVVYYYYWYYYYYYYYYVYYXYYY\YYVWYYYYXYYYYUYVYTVYYY[YWYUUYYUWYYYXYYYVVYVYW_YYVXYYXYYYXWYXYYX^YYYYYYYYYYYYYYYXYWYYY]YYYYY\YYYYYYWYY[Y[YYYUVYYY\XYYYXYYYXYYVXYYYXWXYYX\YY\YYWYZXYXYYYYYXYYXWYYYYYYYYZYYYYYXYYYYZWYYYWYYZYYYZZYXYYYYYYYYYYYYZYY[YYYYYYYWWXYWYYYYYZYWYZXYY[YYYYWYYYYYYYYYWYYWYYYYYYWWYZYYZYYYYYY]YXWYYYXYYYWWYYXZYYWYYYYYYYZYXXXYXWYYX[YYYWYXYYZXYYYYYYYYZYYZYYYWYWYYYXYYYZYWYYYYYYYYYXYZYYYYZYYYWYXYYWYYYXYYWYYYYXUWWYWYYY^YYWYZUYXYYYYYWYYWVYYYYXYYYXYYYYYYYYYYZTYYY\YYXYYYZZYWYYYYYYYYYYYY]YYVWYYXYYYWWZ[VYYYYYYYZYWVYWWYYYYVYYYYYYYYYVYYUYYYVYYVSY]YYYYYYYZYYYVYYYY[Y]YUXYYYZYYWXYYYUVYWYWWYYYVYYWXYY[VYWYYXWYYYYYYYV[Y[YYYYXYUYYYVYYYZYYYYYYYYXYYVYZYYYV\YYYXYWYYWYYYYYYYZYYYZYVYYX\YY\YYWY[VYXYYYYYYYYZWYYYYYYYYYYYYYYZYYYYYXYYYXYYZYYYZ\YYYYYYYYYYYYYYXYY[WYYXYYYUWYZYYYYYYZYZYXWYZYYYYYVYYYYYYYYYVYYTYYY[YYVWY[YY[YYYY[Y\YTWYYYZYWYVVYYYZYYXXYYYYYYZYX]YYXWYYXYYYYXYZYYX[ZYYYYYYW[YZ[YYYXYXYYYZYYY[YZYYYYYYYYY[Y[YYYYYYYYYWXYYZYYY\YYXXYYYYWVXYY[YY]YYWYZWYXYYYYYXYYYVYYYYXYYYYYYYYY[YYYYZVYYYWYYZYYYZ[YXYYYYYYYYYYYYYYYYXYYXYZYYWZYXYYYYYZYXYWWYYXYYYYVYYYYYYYYYXYYVYYYYYYXWY[YY]YYYY[Y[YWXYYY[YXYUXYYYYYYXXYYYVYYXYYXYY[XYYXZYYZXYXYYXWZYYYYYYX[YZWYYYYYXYYYYYYYYYZYYYYYYZYYYY\YYYYZYYYXXWYYYYYYXYYWYYYYYXYXYYYYY[YYXYYXYXYYYYYXYYYXYYYYXYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYXYYXXYYXYWYXXXYXYYYYYYYYYWXYXXYYYYXYYYYYYYYYYYYWYYYYYYYXYYYYZYYYYXYXYWWYYYWYXYWXYYXXYYYXYYYXXYZYXYZYXXYYYYYYWXYXYYXYYYYYYYYWWYXWYYYXYXYYYXYYYYYYYYYYYYXYYYYYYYYYXYYYXXYYYXYYYZYYVWYYYXVUYYX^YY]YYVY[WYXYYYYYXYYYVYYYYYYYYYYYYYYYYYYY[UYYYVYYZYYYZZYXYYYYYYYYYYYY[YYYZYYXYZYWWXYWYYYYYZYVYWWYYYYYYYVYYYYYYYYYWYYTYYYZYYVWYZYY]YYYY[Y]YWXYYYZYYYVXYYYZYYXXYYYVZYZYXYYYYWYYWYYYYWYVYYZXZYYYYYYV[YXXYYYXYVYYYYYYYXYWYYYYYYYYYWY[YYYYZYYYXVVYYWYYYXYYXXYYYWWYVYXZYY\YYXYXWYXYYYYYVYYYYYYYYWYYYYYYYYYYYYYYXXYYYYYYWYYYYXYYYYYYYYYYYYYYZYYXYYYYYWYXWXXXYYYYYYYXYXXYVXYYYYXYYYYYYYYYXYYWYYYWYYYWYYYYZYYYYWYXYXXYYYVYXYWXYYXWYYXZYYYWXYVYXWXYXXYYXZYYXWYWYYVWYYYYYYYYVYZVYYYYYXYYYUYYYVYXYYYYYYWYYXYXYYYWYYYYWYXYYYYYYXYYWXYYYXXXVYWYYY]YYXYZUYXYYYYYXYYXXYYYYWYYYXYYYYYYYYYYXWYYYYYYVYYYZXYYYYYYYYYYYYYYXYYXXYYXYWYXXXYWYYYYYYYWYXXYUXYYYYXYYYYYYYYYWYYXYYYWYYXWYZYY]YYYYXYXYXXYYYVYYYXWYYWUYYXYYYYWXYWYXWXYWXYYXXYYXWYVYYVWZYYYYYYYWYYVYYYYYXYYYVYYYWYXYYYYYYWYYWYWYYYXYYYYWXXYYYYYYWYYUVYYYXVVTYUXYYbYYVYWUYXYYYYYTYYWVYYYYUYYYXYYYYYYYYYYXWYYYXYYVYYYZWYWYYYYYYYYYYYYXYYWWYYWYUYUWUXVYYYYYZYWYVWYUUYYYYWYYYYYYYYYUYYTYYYUYYVUYYYY_YYYYYYWYWXYYYRYXYUXYYVTYYWYYYYRWYWYWTWYWVYYWWYYXTYSYYSTZYYYYYYVWYYUYYYXYUYYYSYYYWYWYYYYYYWYYVYWYYYUWYYYUWUYYVYYYXYYVWYYYXXZUYXYYY_YYXYYWYXYYYYYUYYYXYYYYWYYYWYYYYYYYYYYUXYYYVYYXYYYYWYXYYYYYYYYYYYYRYYXWYYVYTYXXWZXYYYYYZYWYXXYVXYYYYXYYYYYYYYYXYYWYYYWYYXXY[YY^YYYYXYWYXXYYYSYTYYXYYVVYYYYYYYVWY[YYWXYWXYYXXYYTVYWYYVWZYYYYYYXVYXYYYYXYVYYYTYYYWYZYYYYYYXYYXYZYYYYUYYYWZXYYZYYYZYYXWYYYZSUVYU\YY_YYUY[VYYYYYYYWYYWTYYYYZYYYXYYYYYZYYYYYUYYYZYYWYYYZ[YUYYYYYYYYYYYY]YYSYYYWYWYVTZZWYYYYYYYWYUSYYYYYYYUYYYYYYYYYTYYQYYYUYYTSY_YY[YYYY]YXYTXYYYZY\YSXYYYYYYVWYYYUXYUYXUYYYVYYWYYY]TYWYYYUYYYYYYYU]Y[[YYYWYTYYYUYYYYYWYYYYYYZYYVYZYYYU\YYYXXUYYVYYY\YYUXYYYVURTYX`YYbYYTY[VYVYYYYYVYYWSYYYYWYYYWYYYYYZYYYYZRYYYVYYYYYY[]YWYYYYYYYYYYYY^YYVXYYWY\YWV]^UYYYYYZYXYVTYXWYYYYRYYYYYYYYYUYYPYYYVYYURY]YY_YYYY_YZYTVYYY^YZYQWYYY\YYXWYYYQVYXYYUZY\VYYV[YY\QYVYYVVZYYYYYYU_Y\UYYYXYQYYYWYYYVYYYYYYYYXYYVY]YYYWaYYYYXTYYWYYYYYYYXYYYYWXYYYZYY[YYXYYWYYYYYYYYYYXXYYYYYYYYXYYYYYZYYYYZXYYYXYYYYYYYZYZYYYYYYYYYYYYYYYYYYYZYYYWXYZYYYYYYYYXYXYYWZYYYYXYYYYYYYYYXYYXYYYZYYXWYZYYZYYYYYYYYVXYYYYYXYVWYYYZYYXYYYYYXYXYXYZYYYYYY[YYYXYXYYYZYYYYYYYWZYZYYYYYYWYYYXYYYYYZYYYYYYZYYZYZYYYY[YYYYWYYYXYYYYYYWYYYYXXYXYXYYYZYYXYYXYYYYYYYXYYXXYYYYYYYYYYYYYYYYYYYXXYYYZYYXYYYYZYXYYYYYYYYYYYY[YYXZYYYYXYYYYYXYYYYYYYXYYXYWZYYYYXYYYYYYYYYXYYXYYYXYYXWY[YYYYYYYYYXYXYYYYXYZYXXYYXXYYXZYYYXYYXYYXYYWYYYXYYYYXYXYYXXYYYYYYYXYYZYYYYYYXYYYWYYYXYYYYYYYYYYYXYXYYYXYYYYXZYYYYYYYVYYXXYYYYWXWYWYYY]YYYYXXYXYYYYYWYYYXYYYYWYYYXYYYYYXYYYYWXYYYZYYWYYYYZYXYYYYYYYYYYYYXYYYXYYXYWYXWXXXYYYYYYYYYWXYWXYYYYXYYYYYYYYYXYYXYYYWYYXWYYYYZYYYYWYXYXYYYYUYYYXWYYXWYYYYYYYXXYWYXWZYXXYYXYYYXXYXYYWWYYYYYYYXWYYWYYYXYXYYYVYYYXYXYYYYYYWYYYYXYYYXXYYYWWXYYYYYY]YYVXYYYYVUWYX]YY^YYWYZUYXYYYYYXYYZVYYYYZYYYWYYYYY[YYYYYVYYYWYYYYYYZ\YXYYYYYYYYYYYYZYYYYYYXYXYXW\\XYYYYYYYXYWWYXZYYYYWYYYYYYYYYXYYUYYYZYYXVY]YY]YYYY]Y[YTWYYY[YXYTXYYZ\YYXWYYYXXYWYXZ[YXXYYW[YYXVYXYYY[ZYYYYYYV]YZ[YYYXYUYYYYYYYZY[YYYYYY\YY[Y_YYYZ[YYYZXYYYWYYY[YYUXYYYXRSXYV\YY_YYVYYYYXYYYYYXYYXTYYYYWYYYYYYYYY[YYYY\TYYYYYYXYYYZ\YUYYYYYYYYYYYY_YYVXYYXYYYUWY[WYYYYYYYYYSUYYXYYYYTYYYYYYYYYUYYPYYYWYYUTY[YY\YYYY]YYYUXYYY]Y]YSXYYYYYYWWYYYSWYYYXVZYZWYYX]YY\UYUYYXWZYYYYYYUaY\YYYYXYSYYYXYYYYYYYYYYYY[YYVY[YYYT]YYYZUTYYVYYYVYYVXYYYWSWXYUZYY_YYTYWUYYYYYYYWYYUTYYYYWYYYXYYYYYXYYYYZVYYYZYYYYYYZZYUYYYYYYYYYYYY_YYUYYY[YXYTTXXTYYYYYYYVYTUYXXYYYYTYYYYYYYYYWYYQYYYUYYTRY[YY\YYYYXYZYUXYYYXY^YTVYYXUYYVYYYYRWYWYUVYYXTYYWWYY]VYWYYWWZYYYYYYV[YZXYYYWYTYYYTYYYYYWYYYYYYWYYTYWYYYV[YYYWXTYYVYYYZYYXXYYYZVUXYX]YY]YYUYZXYZYYYYYZYYWVYYYY\YYYXYYYYYXYYYY[UYYYYYYYYYYZ^YVYYYYYYYYYYYY]YYVZYYXY[YWV]\WYYYYYYYYYVTYX]YYYYUYYYYYYYYYVYYTYYYYYYWTY[YYZYYYY\YZYTXYYY`Y\YTWYY[ZYYXXYYYVYYXYZX]YYVYYWYYY[UYYYYZYYYYYYYYS`Y[[YYYXYSYYYZYYYYYXYYYYYYZYYXY\YYYW^YYY\VXYYVYYYYYYXXYYYYXXYYYZYYZYYXYYYYYYYYYYXYYZXYYYYYYYYXYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXYXXYXYYYYYXYYYYYYYYYYYYXYYYYYYYYYZYYZYYYYZYZYXYYYYYYXYWYYYYYYYYYYYYYYYYYXYYYYYYYYZYYYXYXYYXXYYYYYYYXXYYXYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYZYYYYXXYYYYYYYZYYWUYYYVRWVYT_YYaYYTY[UYWYYYYYYYYWTYYYYZYYYVYYYYYWYYYY\PYYY[YYXYYYZ]YTYYYYYYYYYYYY]YYUYYYYYZYVV\]SYYYYYZYVYWUYZXYYYYSYYYYYYYYYSYYRYYYUYYSQY`YY]YYYY\Y[YSYYYY]Y^YSVYYYYYYVVYYYRTYYYWU[YZUYYVYYY^TYXYYZUZYYYYYYUaYZZYYYVYSYYYUYYYWYXYYYYYYVYYUYYYYYV`YYYYXUYYUYYYYYYXYYYYXXXXYYYYY[YYYYYYYXYYYYYXYYYXYYYYXYYYZYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYZYYXYYYYYYYYXXXXYYYYYYYYYXYYXXYYYYXYYYYYYYYYYYYXYYYXYYYXYYYYZYYYYYYXYXYYYYYYYYXYYYYXYYYZYYYXYYXYYXXYYXYYYYYYYXYXYYXXYYYYYYYXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYXYXYYYYYYXYYWYYYYXWYVYXXYY\YYYYYWYXYYYYYWYYYXYYYYWYYYYYYYYYYYYYYWXYYYYYYXYYYYWYXYYYYYYYYYYYYXYYXYYYXYVYYXXYXYYYYYYYWYXXYVXYYYYYYYYYYYYYYXYYXYYYWYYXWYYYY[YYYYXYXYXXYYYUYXYXXYYWVYYXYYYYWXYWYXWXYWXYYXXYYXWYWYYVXYYYYYYYXUYYXYYYXYXYYYVYYYWYXYYYYYYXYYXYXYYYXWYYYVYXYYXYYYUYYVYYYYWXZUYYYYY]YYXYWWYWYYYYYWYYYXYYYYWYYYWYYYYYWYYYYYVYYYWYYWYYYY[YXYYYYYYYYYYYYVYY[VYYXYVYVVZ[YYYYYYYYZYWXYVWYYYYVYYYYYYYYYWYYWYYY[YYWVYXYYZYYYYVYXYUVYYYVYUYUTYYWWYY[YYYYUXYZYV[YYVXYYXWYYVVYVYYW\ZYYYYYYXXYWWYYYYYVYYYXYYYWYZYYYYYYVYY]Y\YYYVVYYYYVXYY\YYYYYYYXYYYXWVVYXYYY]YYYYZWYYYYYYYWYYYXYYYYXYYYXYYYYYYYYYYWXYYYYYYWYYYZYYYYYYYYYYYYYYYWYYZYYYYYXYYYZXXYYYYYYYXYYYYWYYYYYXYYYYYYYYYWYYXYYYWYYYWY]YY\YYYYYYXYYYYYYUYYYXXYYYWYYXYYYYXXYVYXWYYXXYYXYYYYYYVYYWWZYYYYYYXXYZYYYYYYWYYYVYYYXYYYYYYYYYYYXY[YYYXXYYYWYYYYYYYYVYYWVYYYXUYXYVVYY\YYWYVVYXYYYYYUYYUWYYYYVYYYZYYYYYXYYYYVXYYY^YYVYYYYWYXYYYYYYYYYYYY^YYWYYY[YTYVWUUVYYYYYYYWYVWYVWYYYYXYYYYYYYYYUYYUYYYSYYVSYYYYYYYYYVYVYVYYYYSY`YVWYYWUYYX[YYYUUYTYUTZYWUYYWXYY\VYWYYUTYYYYYYYWUY[XYYYXYYYYYTYYYWYVYYYYYYVYYTYTYYYV\YYYSZUYYVYYYVYYYWYYYVUYWYWVYY\YYWYXWYXYYYYYXYYWWYYYYVYYY[YYYYYXYYYYYWYYY]YYVYYYYYYWYYYYYYYYYYYY^YYVXYYZYUYVVWWVYYYYYYYXYWWYWWYYYYVYYYYYYYYYUYYUYYYUYYVSYYYYYYYYYXYWYVXYYYWY_YWWYYVVYYWZYYYTUYUYTWYYXUYYWWYY]VYWYYVWYYYYYYYWYYYXYYYXYWYYYVYYYXYXYYYYYYVYYVYWYYYT\YYYVZUYYWYYY[YYXXYYYZSTYYW\YY^YYUYZXYXYYYYYXYYWTYYYYZYYYYYYYYYYYYYYYTYYYZYYWYYYZ\YVYYYYYYYYYYYY_YYUZYYYY[YXWZZWYYYYYYYZYWUYZ[YYYYVYYYYYYYYYVYYSYYYXYYWTY^YY[YYYY[Y\YUYYYY\Y^YUWYY[YYYWWYYYVXYWYXXZYZVYYX[YY]VYWYYYWZYYYYYYU\Y[ZYYYXYVYYYXYYYYYYYYYYYYZYYWY\YYYX^YYYYXVYYWYYYWYYZWYYYYXWWYWYYYZYYXYYXYXYYYYYXYYZXYYYYZYYYYYYYYYYYYYY[XYYY[YYYYYYZ[YVYYYYYYYYYYYY[YYXXYYXYXYVXZZXYYYYYYYZYXWYZXYYYYWYYYYYYYYYWYYWYYYYYYWUYXYYVYYYYXYZYTVYYYZY[YUVYYXZYYWXYYYYXYXYW\YYYXYYWXYYZXYXYYY[YYYYYYYX[YWYYYYXYWYYYYYYYYYWYYYYYYVYYZYZYYYVYYYYZWYYYYYYY]YYWYYYYYUUWYX^YY`YYVY]VYWYYYYYVYYYTYYYYZYYYXYYYYY[YYYYYTYYYTYYZYYY[YYXYYYYYYYYYYYYZYYZZYYWYZYWV[ZWYYYYYZYXYXUYWYYYYYUYYYYYYYYYWYYUYYYYYYWVY]YY`YYYY]Y]YWWYYYZYVYUWYYY[YYXWYYYVXYYYXXYYYWYYW[YYYWYWYYWXZYYYYYYW[Y[XYYYXYUYYYXYYYYYZYYYYYYZYYXY^YYYZZYYYYYVYYYYYYYYYXXYYYWXXVYXZYY\YYXYYVYWYYYYYWYYXXYYYYZYYYWYYYYYXYYYYZWYYYXYYWYYYYYYXYYYYYYYYYYYYYYYZYYYXYYYXXYYWYYYYYYYXYXXYXYYYYYXYYYYYYYYYXYYWYYYXYYXWYZYY[YYYYWYYYWXYYYWYYYXVYYXXYYWXYYYVXYWYVXYYWWYYWXYYYXYWYYXXYYYYYYYYXYYXYYYWYVYYYWYYYWYXYYYYYYYYYWYXYYYXYYYYWZYYYXYYY]YYUVYYYZNPVYWbYYbYYQY]VYXYYYYY[YYUMYYYY[YYYWYYYYYZYYYY`QYYYYYYWYYY[`YSYYYYYYYYYYYYbYYS[YYXYXYSP`dTYYYYYZYYYSNYZ_YYYYNYYYYYYYYYRYYNYYYVYYSNYbYY\YYYYcY]YQYYYYeY_YOWYY^]YYWUYYYRUYYY\V_Y_PYYXYYYbSYXYY[X[YYYYYYNgY\\YYYUYNYYYYYYYYYXYYYYYY\YYVY`YYYThYYY^WTYYSYYYYYYXXYYYYYYXYXYYYZYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYYYXYYYYYYXYYYYYYXYYYYYYYYYYYYYYYYXYYXYYYYXXYXYYYYYYYYYYYYWYYYYYXYYYYYYYYYYYYWYYYXYYXYYYYYYYYYYXYXYXXYYYXYXYXYYYXXYYXZYYYYYYXYXXYYYYYYYYYYYYYXYYYXYYYYYYYYXYZYYYYXYYYYYXYYYYYYYYYYYYXYYXYXYYYYXYYYXZYYYYYYYUYYV]YYYY\WVYYVYY[YYYYUWYUYYYYYZYYYWYYYYWYYYWYYYYYZYYYY[WYYYVYYXYYYY\YYYYYYYYYYYYYYUYY\YYYYYXYSU]`[YYYYYYYZYVXYVWYYYYXYYYYYYYYYWYYXYYY_YYUVYYYYWYYYYUYXYRUYYY\YVYSUYYWVYYZZYYYXWYXYYaZYVXYYZXYYWWYXYYV_YYYYYYYXYYWWYYYZYXYYY^YYYXY]YYYYYYUYY_Y]YYYTVYYY]UYYYYYYYZYYZ[YYYY[UXYZZYY\YYXY\WYWYYYYYZYYZVYYYYZYYYZYYYYY[YYYY\XYYYWYY[YYYZ_YXYYYYYYYYYYYYYYY_XYYXY]YSV\_ZYYYYYYY\YXVYYXYYYYVYYYYYYYYYVYYUYYY_YYXUY[YYWYYYYZY[YRVYYY]YWYSTYYY[YYXWYYYZWYYYV^ZYYWYYWYYYZYYXYYY_ZYYYYYYX]YYZYYYXYWYYY^YYY\Y\YYYYYYZYY]Y`YYYWXYYY]WYYYXYYYXYYXXYYYWWXXYW[YY]YYXYZVYWYYYYYXYYYXYYYYXYYYXYYYYYXYYYYXVYYYYYYXYYYZZYXYYYYYYYYYYYY[YYXYYYYYXYYYXZWYYYYYZYWYXXYXYYYYYXYYYYYYYYYWYYWYYYUYYXWY\YY[YYYYXYYYXYYYYYYYYXWYYXYYYXYYYYVXYZYXVYYYXYYWYYYXVYWYYWWYYYYYYYWYYYXYYYXYWYYYVYYYXYXYYYYYYXYYVYWYYYXZYYYWZYYYWYYYYYYXYYYYYYYYYYYYYZYYYYZXYXYYYYYXYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYXYXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYXYYYYXYXYYXYYXYYYYYYYYYYYYYYXYYYYYYYYYYXYYXYYXYYYYYYYYYXYZYYYYYYYYYYXYYYYYZYYYYYYXYYYYZYYYYXYYYXZZYYYYYYXYYWXYYYYWXWYXZYY\YYXYZWYXYYYYYXYYYXYYYYYYYYXYYYYYXYYYYYWYYYXYYXYYYYZYXYYYYYYYYYYYYYYYYYYYYYWYXXYZXYYYYYYYWYWXYWYYYYYXYYYYYYYYYXYYVYYYYYYWWY[YY[YYYYYYWYWXYYYXYXYWWYYXWYYXYYYYVXYYYXXYYXYYYXXYYXXYWYYXXYYYYYYYWYYZXYYYXYVYYYVYYYXYYYYYYYYXYYXYYYYYXXYYYXXXYYXYYYXYYXWYYYWWZXYWZYY\YYXYYWYXYYYYYWYYXXYYYYYYYYXYYYYYXYYYYXXYYYXYYXYYYYXYXYYYYYYYYYYYYXYYYYYYYYWYXXXXWYYYYYYYWYYXYWYYYYYXYYYYYYYYYXYYWYYYXYYXWYZYY[YYYYXYZYXYYYYVYYYYWYYXXYYXZYYYWXYYYXXYYWXYYXWYYWWYXYYYXZYYYYYYYWYYYYYYXYXYYYVYYYXYXYYYYYYXYYXYXYYYXXYYYVYYYYXYYYYYYXXYYYXYYXYYYYY[YYYYXXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYWYYYXYYXYXYYYXZYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYXYYZYYYYXYXYXYYYYXYXYYYYYXXYYXYYYYXXYXYXYYYXYYYXYYYWXYYYYXYYYYYYYYYXYYYYYYXYYYYYXYYYYYYYYYYYYXYYYYYYYYYXYYYYYYYYXYYY^YYVXYYYYTVXYY^YY_YYVYZWYYYYYYYWYYYUYYYY[YYYXYYYYYYYYYY[UYYYUYY[YYYZ\YWYYYYYYYYYYYYZYYWYYYXYZYYV][WYYYYYZYYYWUYZ[YYYYUYYYYYYYYYWYYTYYYYYYWUY]YY]YYYY\Y\YVYYYY]YXYTWYYZZYYXXYYYVXYYYYW[YZWYYX[YY[VYYYY[WZYYYYYYV\Y\ZYYYXYTYYYYYYYYYYYYYYYY[YYZY\YYYY]YYYZXXYYWYYYXYYVXYYYXVZWYWXYY[YYWYYVYYYYYYYWYYWWYYYYWYYYYYYYYYYYYYYWXYYY\YYWYYYYXYXYYYYYYYYYYYYZYYVZYYXYWYXXVXXYYYYYYYWYXXYXYYYYYXYYYYYYYYYXYYWYYYVYYWUYYYYXYYYYWYXYXYYYYUY[YXWYYYVYYX[YYYWWYXYVVXYVWYYXWYYWWYVYYWVYYYYYYYXXYYXYYYXYWYYYTYYYXYWYYYYYYXYYVYVYYYWWYYYVYXYYYYYYYYYXXYYYYXYYYXYYYZYYXYYYYXYYYYYYYYYXYYYYZYYYZYYYYYYYYYYYXYYYZYYXYYYYZYXYYYYYYYYYYYY\YYYZYYYYZYYYYXWYYYYYYYXYYXYYZYYYYYYYYYYYYYYXYYYYYYXYYXWYZYYYYYYYYYYYWZYYYYYZYXYYYYYYYXYYYYYYYXYYXYYXYYYXZYYYXYXYYXXYYYYYYYXYYYZYYYXYYYYYYYYYYYXYYYYYYXYYXYYYYYYYYYYXZYYYXYYYXYYVXYYYVX[XYXVYY[YYXYWXYYYYYYYWYYXWYYYYVYYY[YYYYYYYYYYYYYYY[YYYYYYYXYXYYYYYYYYYYYY]YYWYYYZYXYXWXXXYYYYYYYXYWXYWWYYYYXYYYYYYYYYWYYVYYYWYYWVYWYYXYYYYWYXYXXYYYXYZYUXYYWWYYX\YYYVYYXYUXXYWWYYYYYYZWYWYYWXYYYYYYYYXYYXYYYYYWYYYWYYYXYXYYYYYYXYYWYXYYYWYYYYWZWYYXYYYYYYXXYYYXYYXYYXYYYYYYYYXYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYYYYYYZYYXYYYYYYXYYYYYYYYYYYYZYYYYYYYYXYYYYXXYYYYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYXYYYXYYYYYYYYYXYXYXYYYYXYZYXYYYXXYYXYYYYXYYWYWXYYYYYYYYYYZXYXYYXXYYYYYYYYXYZYYYYYYYYYYXYYYYYYYYYYYYXYYXYYYYYXZYYYXYYYYYYYYYYYWXYYYXZYXYXYYY[YYYYYWYYYYYYYXYYXXYYYYYYYYZYYYYYXYYYYYXYYYZYYXYYYYYYYYYYYYYYYYYYY[YYYYYYYYXYXXYXXYYYYYYYXYYYYWYYYYYYYYYYYYYYYXYYXYYYXYYXWYYYYYYYYYXYZYYYYYYWYYYXXYYXWYYXZYYYXYYXYXWXYXXYYXYYYYXYWYYXXYYYYYYYYXYYYYYYYYXYYYWYYYXYXYYYYYYYYYYYWYYYXYYYYWZYYYXYYY_YYUYYYYWTRVYY_YY`YYUY[UYXYYYYYUYYYSYYYYYYYYUYYYYY\YYYYZTYYYTYYYYYYZYYYYYYYYYYYYYYYZYY[ZYYVYXYUW\[WYYYYYZYYYWUYXXYYYYUYYYYYYYYYWYYSYYYXYYYUY[YYaYYYY`Y\YUVYYYZYVYSYYYY\YYXWYYYUWYWYZXXYXUYYY]YYYVYTYYXX[YYYYYYTZY\XYYYXYSYYYYYYYWYZYYYYYY]YYYY_YYYZ[YYYZWUYYXYYYXYYWXYYYXWYWYYYYY[YYYYXYYYYYYYYWYYXXYYYYWYYYYYYYYYYYYYYYXYYYWYYXYYYYXYXYYYYYYYYYYYYXYYYXYYXYXYXXYYXYYYYYYYXYXXYWXYYYYXYYYYYYYYYYYYWYYYXYYYXYXYY[YYYYXYYYYXYYYXYWYWXYYXWYYYYYYYWXYXYXXYYXYYYYZYYXWYWYYVXYYYYYYYYWYYVYYYYYXYYYXYYYWYYYYYYYYXYYYYYYYYXXYYYXXXYYYYYYXYYXXYYYWVXXYVXYY\YYWYYWYXYYYYYXYYXWYYYYYYYYYYYYYYYYYYYXXYYY[YYXYYYZXYXYYYYYYYYYYYY\YYWXYYZYXYWWXXWYYYYYYYWYWXYWXYYYYXYYYYYYYYYWYYUYYYVYYWUYZYY[YYYYXYXYVXYYYXY\YWWYYWXYYWZYYYUXYXYWXXYXWYYWXYYZVYWYYWWYYYYYYYWXYYYYYYXYXYYYVYYYYYWYYYYYYXYYUYWYYYWZYYYWYWYYWYYY[YYVYYYYXUWWYW\YY`YYWYZVYXYYYYYWYYYUYYYYYYYYWYYYYYYYYYY[TYYYYYYXYYYZ\YWYYYYYYYYYYYY]YYWWYYZYXYXU^]VYYYYYYY[YWUYWXYYYYUYYYYYYYYYVYYUYYYVYYWUY^YYZYYYY\YYYWYYYY\YZYTWYYYZYYXWYYYTVYVYYUZYYVYYXYYY\VYXYYYXZYYYYYYV^Y]ZYYYWYTYYYVYYYZYZYYYYYYZYYXYZYYYX_YYY[YXYYVYYYZYYWXYYYXWXXYYZYY[YYXYYXYXYYYYYXYYYWYYYYXYYYXYYYYYYYYYYZWYYYXYYYYYYYYYXYYYYYYYYYYYYZYYYYYYYYYYXXZXXYYYYYYYXYXXYWXYYYYWYYYYYYYYYXYYWYYYXYYYWYZYYZYYYY[YYYWXYYYXYXYWXYYYXYYWYYYYWXYWYXXYYYXYYYZYYXWYXYYWXYYYYYYYXXYYWYYYXYXYYYXYYYWYZYYYYYYYYYYYZYYYYYYYYXYXYYYYYYXYYYXYYYYYYYYXZYY[YYXYYVYWYYYYYWYYXXYYYYZYYYYYYYYYXYYYYXYYYY[YYWYYYYZYXYYYYYYYYYYYY[YYXXYYZYXYXXYYWYYYYYYYXYZXYWYYYYYXYYYYYYYYYXYYXYYYWYYWWYZYYXYYYYWYXYWXYYYXYZYVXYYXYYYXZYYYYYYWYXWXYYXYYWXYY[WYWYYXXYYYYYYYXYYZYYYYXYYYYYWYYYXYYYYYYYYWYYWYWYYYY[YYYWZYYYXYYYWYYWWYYYZRVXYUVYY]YYVYWVYZYYYYYYYYVTYYYYYYYYZYYYYYYYYYY[WYYY_YYUYYYZ[YWYYYYYYYYYYYYaYYUZYY[YWYWUYZVYYYYYYYZYVUYWYYYYYVYYYYYYYYYUYYSYYYUYYUSY]YYXYYYY[YXYV[YYYZYcYUYYY\VYYXYYYYUVYVYXV]YZTYYYXYY_WYWYYXVYYYYYYYT[Y[YYYYXYVYYYVYYYXYXYYYYYYWYYWYXYYYV`YYYXXVYYVYYYYYYWYYYYXWZVYXZYY\YYXYXWYXYYYYYWYYYXYYYYVYYYXYYYYYXYYYYYWYYYYYYWYYYYYYXYYYYYYYYYYYYXYYYXYYYYWYXWYXXYYYYYYYXYVXYWWYYYYVYYYYYYYYYYYYWYYYVYYXVYYYYZYYYYZYYYWXYYYVYWYWXYYWXYYYYYYYVXYXYWWYYWWYYYZYYWVYWYYVXZYYYYYYYXYYWYYYXYWYYYVYYYWYYYYYYYYXYYYYYYYYWXYYYWXYYYYYYYXYYVWYYYSPXVYVWYYaYYSYUTYWYYYYYTYYTSYYYYUYYY[YYYYYXYYYYYSYYY[YYXYYYZ[YUYYYYYYYYYYYY]YYSUYYXYWYSTWXTYYYYYYYVYTUYUSYYYYSYYYYYYYYYUYYNYYYRYYPQY]YY]YYYYZYVYSXYYYXY`YOVYYSUYYUYYYYPTYWYUTXYXSYYVUYY^SYTYYVSZYYYYYYV^Y[VYYYWYQYYYRYYYXYVYYYYYYUYYRYUYYYS]YYYT\RYYTYYYXYYWYYYYXXWWYXYYY[YYYYYXYYYYYYYXYYXXYYYYXYYYXYYYYYYYYYYZXYYYXYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYXXXYXYYYYYYYXYXXYXYYYYYYYYYYYYYYYXYYWYYYXYYWXYYYYZYYYYYYYYXXYYYYYYYXXYYXXYYYZYYYWYYXYXXYYXYYYXZYYXXYWYYWXYYYYYYYXYYYWYYYXYYYYYXYYYXYYYYYYYYXYYXYYYYYXXYYYXXXYYXYYY\YYUYYYYWVUUYY\YY_YYWYYXYXYYYYYWYYXWYYYYVYYYXYYYYY[YYYYXVYYYUYYXYYYZZYXYYYYYYYYYYYYWYYZXYYWYWYWWZYYYYYYYZYYYVWYVXYYYYVYYYYYYYYYVYYUYYYYYYXWY[YY]YYYY\YZYVWYYYXYXYTXYYXWYYYXYYYVWYXYXXYYXWYYX]YYWVYUYYWYZYYYYYYWYYZUYYYYYTYYYXYYYUYZYYYYYY[YY[Y]YYYWYYYYXVWYYZYYY^YYVXYYYYVSVYY^YY_YYVYZUYXYYYYYXYYWUYYYYXYYYWYYYYYZYYYYYVYYYVYYXYYYZZYXYYYYYYYYYYYYXYYXXYYXYWYWU\[WYYYYYZYXYVWYXZYYYYUYYYYYYYYYUYYUYYYYYYXVY[YY`YYYY^Y\YVWYYY[YXYSXYYYYYYXWYYYUWYYYYXZYZVYYX\YYZVYVYYYXZYYYYYYU[YYWYYYXYUYYYYYYYWYYYYYYYY[YYYY^YYYYZYYYZVWYYXYYYYYYYYYYYYYYXYXYYYZYYYYYXYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYZYYYYYYYYYYYYYYYYYYYXXYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYXYYYYYYYYXYYUXYYYXXYVYYXYY[YYXYXXYXYYYYYWYYXXYYYYWYYYXYYYYYYYYYYYXYYYWYYVYYYYXYYYYYYYYYYYYYYYYYXXYYYYXYXXXYYYYYYYYYXYXYYVWYYYYXYYYYYYYYYWYYWYYYWYYXWYXYYYYYYYWYWYXYYYYVYXYXXYYWWYYXZYYYVWYWYXXXYUXYYYYYYWVYWYYVXYYYYYYYXVYYXYYYYYXYYYWYYYXYXYYYYYYXYYYYXYYYWWYYYWXXYYXYYYYYYXYYYYYXXXYYYYY[YYYYZXYXYYYYYXYYZXYYYYYYYYXYYYYYZYYYYYYYYYXYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYXYYXYYYXYYXYYYYYZYYYYYYXYXYYYYYYXYYYYYXXYYYZYYYXYYYYYXXYYYYYYYYYXXYYYYXXYYYYYYYXXYZXYYYYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYYYYXYYYYYYYY]YYVZYYYYPSYYW`YY`YYQY[VYYYYYYYWYYWPYYYY[YYYYYYYYY\YYYY\UYYYWYYYYYY[]YVYYYYYYYYYYYY_YYRZYYXYZYUT][UYYYYYZYYYTOY[]YYYYSYYYYYYYYYVYYOYYYWYYTRY^YY_YYYY^Y^YQVYYY`Y[YQVYYZ]YYWXYYYSYYZYZV[YZSYYV[YY]VYWYY^XZYYYYYYSbY^\YYYXYRYYYYYYY]YYYYYYYY[YYXY`YYYX_YYYYVUYYTYYYXYYUXYYYVVUWYVZYY_YYVYZUYXYYYYYVYYWWYYYYXYYYWYYYYYYYYYYYUYYYYYYWYYYZXYXYYYYYYYYYYYYXYYYZYYXYXYVXXXVYYYYYYYVYXWYUYYYYYWYYYYYYYYYWYYVYYYVYYWWYYYY^YYYYWYUYXWYYYWYYYVWYYUUYYWXYYYTZYVYXWVYVXYYWYYYYUYSYYVUZYYYYYYVXYYXYYYWYUYYYUYYYWYWYYYYYYXYYUYWYYYVWYYYVXWYYWYYYYYYXXYYYYWXXYY[YY[YYXYZXYXYYYYYXYYZXYYYYYYYYYYYYYYZYYYYYXYYYYYYYYYYZYYXYYYYYYYYYYYY[YYYZYYYYXYYYXXXYYYYYYYYYXXYYYYYYYXYYYYYYYYYXYYWYYYXYYXXYZYYYYYYYZYYYXYYYYYYYYWYYYYYYYWYYYYXYYXYYXYYYXYYXZYYYXYXYYYXYYYYYYYXZYZYYYYXYYYYYXYYYYYYYYYYYYYYYXYYYYYYZYYYWZZYYXYYYYYYVYYYYXWXVYX[YY^YYXYXWYWYYYYYWYYYWYYYYVYYYXYYYYYZYYYYYVYYYVYYYYYYZZYXYYYYYYYYYYYYXYY[XYYXYVYWWZZYYYYYYZYXYWWYXXYYYYWYYYYYYYYYWYYVYYYZYYWVY[YY^YYYY[Y\YUXYYYXYVYVXYYWYYYYXYYYVXYZYWZYYXXYYXYYYWXYVYYVYZYYYYYYYWYZWYYYXYWYYYWYYYWY[YYYYYYXYY\Y[YYYYVYYYXXWYY[YYYXYYXXYYYXXZWYYZYY[YYXYXXYYYYYYYWYYXXYYYYWYYYYYYYYYXYYYYXXYYYWYYYYYYYXYXYYYYYYYYYYYYYYYYXYYYYXYXXXYXYYYYYZYXYXXYXXYYYYXYYYYYYYYYXYYWYYYYYYWXYYYY[YYYYYYYYXWYYYWYXYWXYYXXYYYZYYYVXYYYWYYYXXYYYZYYXXYXYYWXYYYYYYYYWYXWYYYYYYYYYXYYYWYYYYYYYYWYYYYYYYYXXYYYXYXYYYYYYXYYWXYYYWYYVYXYYY]YYXYWWYXYYYYYVYYYXYYYYWYYYXYYYYYXYYYYWXYYYWYYWYYYYWYYYYYYYYYYYYYYVYYYWYYXYXYYXXXXYYYYYYYXYXXYWXYYYYYYYYYYYYYYYYYYYYYWYYYXYYYY\YYYYWYWYYXYYYVYVYYXYYWVYYYZYYYWXYXYXWXYWYYYXYYYVVYWYYUWYYYYYYYZVYYXYYYXYXYYYVYYYWYXYYYYYYWYYXYXYYYXWYYYWZYYYYYYYYYYVXYYYXWYVYXZYY\YYXYYVYXYYYYYWYYXXYYYYXYYYXYYYYYYYYYYXXYYYXYYYYYYZYYXYYYYYYYYYYYYYYYYXYYWYWYWXXXXYYYYYYYXYXXYWXYYYYYYYYYYYYYYWYYUYYYXYYVVYYYY[YYYYWYXYVWYYYWYWYVWYYWWYYXYYYYUXYXYWYZYWXYYWZYYXVYWYYWYYYYYYYYWVYYXYYYXYYYYYVYYYWYXYYYYYYXYYXYYYYYWWYYYWXXYYXYYYXYYUWYYYXUTVYUYYYaYYVYYWYXYYYYYWYYWUYYYYXYYYXYYYYYZYYYYXUYYYXYYWYYYZXYWYYYYYYYYYYYY\YYWVYYXYWYUWW[VYYYYYZYVYWUYVVYYYYXYYYYYYYYYTYYSYYYWYYSTY\YY]YYYYZYYYUXYYYVYYYUWYYWWYYWXYYYTXYWYVUXYWWYYVXYYYTYUYYTVZYYYYYYT[Y[YYYYXYTYYYUYYYWYXYYYYYYUYYVYZYYYTXYYYVXTYYWYYYYYYVXYYYYTVYYVYYY]YYWYZWYXYYYYYXYYWVYYYYXYYYYYYYYYYYYYYXUYYYZYYXYYYZ[YWYYYYYYYYYYYY^YYWYYYXYZYWWZZWYYYYYYYZYXUYWXYYYYWYYYYYYYYYVYYTYYYVYYVVY]YYYYYYY[YXYWYYYYYY\YVYYY[XYYXYYYYUYYWYXVZYXVYYYZYY\VYVYYVWZYYYYYYWZY\WYYYYYVYYYWYYYXYYYYYYYYYYYVYXYYYX]YYYXWUYYWYYY_YYYYYYY[SRWYY`YY`YYVY`UYYYYYYYZYY[SYYYY\YYY[YYYYY\YYYY\UYYYVYY]YYY[`YXYYYYYYYYYYYYZYYZ]YYWY[YTV\`XYYYYYZY]YYRY\\YYYYTYYYYYYYYYUYYOYYY[YYWRYaYY\YYYYaY_YSVYYY]Y[YTVYY\`YYXWYYYXWY[YZ\]Y[TYYW[YY]YYYYY][ZYYYYYYTbY]^YYYWYSYYY\YYY`Y[YYYYYY]YY]YgYYYX]YYY\YXYYWYYY_YYV\YYYVYRSY\_YYaYYVY[SYVYYYYYYYYZUYYYYWYYYVYYYYY\YYYYZUZYYTYY[YYY[^YZYYYYYYYYYYYYUYYaWYYXYXYST__[YYYYY[Y\YVUYXXYYYYSYYYYYYYYYTYYUYYY^YYVTY^YYaYYYY^Y^YRVYYY[YSYRUYYY[YYZUYYYVTYZYW][YZUYYW^YYYWYVYYW^[YYYYYYX[Y[VYYYWYSYYY]YYYYY^YYYYYY]YY_YfYYYXZYYY_VVYY]YYYYYYYXYYYYXYYYXZYY[YYXYYYYYYYYYYXYYYXYYYYXYYYYYYYYYYYYYYZXYYYYYYYYYYYYYXYYYYYYYYYYYYYYYZXYYYYYYXXXXXYYYYYYYXYYXYYYYYYYXYYYYYYYYYYYYWYYYXYYXXYZYYYYYYYXY[YXXYYYXYYYXXYYYYYYXZYYYXXYYYWXXYYYYYYXYYYXYYYYYXZYYYYYYZYYZZYYYXYYYYYXYYYZYXYYYYYYXYYYYXYYYYYYYYXZXYYXYYYRYY[TYYYYTY_YSSYY\YYUYTPYYYYYYYUYYRUYYYYVXYYZYYYYYTYYYYWXYYYbYYTYYYXYYUYYYYYYYYYYYYbYYUWYY^YUYSUTUSYYYYYXYVYWVYVVYYYYTYYYYYYYYYSYYQYYYRYYRMYYYYWYYYYXYVYUYYYYTYdYTUYY[TYYW]YYYXSYRYTR\YXTYYYTYY`UYWYYWSYYYYYYYWWYZYYYYWYZYYYRYYYXYTYYYYYYSYYSYPYYYQ`YYYRXSYYTYYYXYYUWYYYWVUTYWXYY`YYVYVWYXYYYYYVYYWWYYYYUYYYWYYYYYYYYYYWWYYYYYYUYYYYUYXYYYYYYYYYYYYXYYVWYYXYUYVWUVVYYYYYYYWYVWYVWYYYYWYYYYYYYYYUYYWYYYVYYWUYYYY]YYYYVYVYYXYYYTYYYVWYYUSYYXYYYYSWYUYVUVYVVYYVXYYVTYRYYTUZYYYYYYWVYZWYYYXYUYYYSYYYUYWYYYYYYWYYVYWYYYVWYYYVXWYYWYYYYYYWXYYYXXXXYXYYY[YYXYYXYYYYYYYWYYXXYYYYXYYYYYYYYYYYYYYXXYYYXYYXYYYYXYYYYYYYYYYYYYYYYYYYYYXYXYXXXXWYYYYYYYXYXXYXYYYYYXYYYYYYYYYXYYWYYYXYYXXYXYYZYYYYYYYYWWYYYXYXYWXYYXXYYYYYYYXXYYYXXXYXYYYYYYYYXYWYYWXYYYYYYYXWYYXYYYYYYYYYXYYYYYYYYYYYYXYYXYXYYYXYYYYXYXYYXYYYYYYXXYYYYXWVYZ[YY]YYXY[XYXYYYYYWYYYVYYYYXYYYYYYYYYYYYYYZWYYYVYYXYYYZZYXYYYYYYYYYYYYXYY[YYYWYYYXWZ[YYYYYYZYYYYWYXXYYYYWYYYYYYYYYXYYWYYYZYYXWY[YY\YYYYZYZYWXYYYYYVYVXYYXYYYXXYYYXXYYYWYXYYXYYX[YYYXYWYYVXZYYYYYYZYY[XYYYXYWYYYYYYYYYYYYYYYYYYYZY\YYYXVYYYWYXYYYYYYZYYY[YYYYYXWYYXYYYYYYYYXYWYYYYYYYYXXYYYYYYYYYYYYYY[YYYY[XYYYWYYZYYYYZYYYYYYYYYYYYYYYYYZUYYXYYYUX\\[YYYYYYYXYXXYWXYYYYXYYYYYYYYYXYYVYYY\YYWWYZYYYYYYYVYZYSVYYY[YVYUVYYXYYYXYYYYZXYXYX^XYWYYYYYYYVWYXYYZ\YYYYYYYXWYXXYYYXYYYYY[YYYYY\YYYYYYXYY[YZYYYVVYYY[WYYYXYYYXYYXXYYYYWWYYXXYY[YYXYYXYYYYYYYXYYXXYYYYXYYYYYYYYYYYYYYYXYYY[YYWYYYYYYXYYYYYYYYYYYY[YYXZYYYYXYXXXYXYYYYYYYXYXXYVYYYYYXYYYYYYYYYXYYWYYYWYYXWYZYYYYYYYYYWYXZYYYXY\YXYYYYWYYXZYYYWXYWYYWZYXXYYXYYYYWYVYYWWYYYYYYYWYYZWYYYXYYYYYWYYYWYXYYYYYYYYYXYXYYYVYYYYWXXYYXYYYZYYXYYYYYYYXYYZYYZYYYYZXYXYYYYYXYYZYYYYY[YYYYYYYYYZYYYYYXYYYWYYYYYYYZYYYYYYYYYYYYYYYYYZYYYYYYYYYYZXYYYYYYYYYYXYYZYYYYYYYYYYYYYYZYYYYYYYYYZXY[YYZYYYYZYZYXYYYYYYXYXXYYYYYYXXYYYZYYXYYYYYYYYYXZYYXYYYYYZYYYYYYYYYZYZZYYYXYXYYYXYYYYYYYYYYYYZYYYYYYYYZXYYYYY[YYYYYYZYYWWYYYYWWWYYZYY\YYYYYWYYYYYYYXYYYXYYYYXYYYZYYYYYYYYYYYXYYYXYYYYYYYYYXYYYYYYYYYYYYYYYXZYYYYXYYYYYXYYYYYYYXYYXYWYYYYYXYYYYYYYYYXYYWYYYXYYYWY[YY[YYYYZYYYYYYYYXYXYWXYYYXYYYYYYYXXYWYXWYYYYYYXZYYXXYXYYXXYYYYYYYXYYZXYYYXYXYYYWYYYXYYYYYYYYYYYYYYYYYZYYYYXXXYYYYYYUYYUbYYYWaSQY[RYY\YYYYTYYTYYYYYbYYWTYYYYTYYYVYYYYYZYYYY_XYYYUYYUYYYYfY\YYYYYYYYYYYYRYYaVYYYY[YQTac`YYYYYYYaYSTYRUYYYYWYYYYYYYYYTYYYYYYeYYTUYXYYVYYYYTYTYPVYYYdYTYSSYYWTYY]WYYYXTYUYUf]YSTYYYZYYVVYVYYUeYYYYYYYW[YYTYYYZYWYYYdYYYWYbYYYYYYXYYdY_YYYPSYYYaSXYY\YYYYYYUQYYYVTVUYU]YYdYYOYYQYUYYYYYRYYUSYYYYSYYYXYYYYYYYYYYVTYYYVYYZYYYYWYWYYYYYYYYYYYYZYYUSYYVYXYRXUXTYYYYYXYTYXTYVSYYYYQYYYYYYYYYVYYOYYYRYYPTYYYY`YYYY[YYYTUYYYUYWYPSYYT\YYVWYYYSTY\YWTVYXRYYUTYY[QYSYYXTYYYYYYYV\YXSYYYVYVYYYQYYYXYUYYYYYYTYYOYUYYYS[YYYT^SYYSYYYXYYYYYYYXYYXYYYYYYYYYYXXYYYYYYYXYYYYYYYYYYYYYYYYYYXYYYYYXYYYZYYXYYYYYYXYYYYYYYYYYYYYYYXYYYYYYYXXYZXYYYYYYYYYXYYXYYYYYXYYYYYYYYYWYYXYYYYYYXXYYYYXYYYYXYXYWXYYYYYYYWXYYXXYYYZYYYYYYXYXYXYXYYYYXYYYXYXYYXYYYYYYYYYYYZYYYYYYYYYYXYYYYYYYYYYYYXYYYYYYYYWYYYYXYYYYYYYYYYYXYYYYYYXXYYZYY[YYXYZWYYYYYYYXYYYXYYYYYYYYXYYYYYZYYYYYXYYYWYYXYYYZYYZYYYYYYYYYYYYXYY[ZYYYYXYYXYYYYYYYYZYYYXYYWYYYYYXYYYYYYYYYXYYXYYYYYYXYYYYY]YYYYZYYYXXYYYXYXYXYYYYWYYYYYYYXYYXYZYXYYYYYYYYYXWYWYYXXZYYYYYYXXYYWYYYYYXYYYYYYYXYYYYYYYYYYYYYZYYYXXYYYXWXYYYYYY[YYTXYYYWUWXYW\YY^YYUYYVYYYYYYYWYYWUYYYYXYYYXYYYYY[YYYYZUYYYVYYXYYYZZYXYYYYYYYYYYYY[YYWXYYZYWYXV[[WYYYYYZYXYUVYWYYYYYTYYYYYYYYYVYYTYYYWYYWTY\YY\YYYY\YZYVXYYY[YWYTVYYYZYYXYYYYUVYXYXWYYXWYYX\YYYWYXYYYXZYYYYYYV[Y]ZYYYXYUYYYWYYYZYZYYYYYY[YYXY[YYYW[YYYZWUYYXYYYYYYVVYYYWVWVYW[YY_YYWYXVYWYYYYYTYYWWYYYYXYYYYYYYYYYYYYYWVYYYYYYVYYYZWYWYYYYYYYYYYYYZYYXYYYWYVYVWWVVYYYYYYYUYXWYUXYYYYWYYYYYYYYYXYYUYYYVYYVVYZYY\YYYYYYWYVWYYYUYYYVXYYVVYYWYYYYVXYXYWVWYXWYYVXYYZVYRYYUUZYYYYYYXVYXXYYYXYXYYYTYYYWYVYYYYYYWYYVYXYYYVYYYYTYWYYWYYY_YYSVYYYWRSUYUbYYcYYTYYVYXYYYYYVYYWSYYYY[YYYSYYYYY[YYYYZRYYYRYYYYYY[ZYVYYYYYYYYYYYYWYYWXYYVYYYUU\_TYYYYYZYVYVQYVZYYYYTYYYYYYYYYVYYQYYYVYYVTY^YYdYYYY`Y\YSVYYY[YVYSXYYXZYYXVYYYPWYXYXV[YWUYYW\YYWQYUYYXV[YYYYYYS^YZZYYYWYOYYYWYYYWYVYYYYYY]YYYY^YYYX[YYY\VSYYVYYYWYYUVYYYVTXWYUZYY_YYVYWUYWYYYYYWYYVVYYYYUYYYYYYYYYXYYYYXWYYY[YYXYYYZYYWYYYYYYYYYYYY^YYWXYYZYVYVWXWUYYYYYYYUYWVYXWYYYYWYYYYYYYYYVYYSYYYUYYTSY[YYZYYYYYY[YUXYYYWY[YTWYYWVYYVZYYYTVYXYVVXYWVYYVYYY[XYWYYVUYYYYYYYXYYXXYYYXYWYYYUYYYXYWYYYYYYWYYTYWYYYVYYYYUYTYYVYYYYYYW\YYYXYXUYZXYY\YYXYXXYXYYYYY[YYYVYYYYVYYYXYYYYYYYYYYZYYYYWYYXYYYZ\Y[YYYYYYYYYYYYWYY^YYYYYYYVV\][YYYYYZY[YWVYVWYYYYVYYYYYYYYYWYYXYYY^YYXWY[YYZYYYY[Y[YTXYYY\YVYVWYYXVYYYWYYYWWYYYW^ZYYWYYYZYYXWYWYYV\ZYYYYYYZZYZVYYYYYYYYY[YYYWY\YYYYYYYYY]Y^YYYWWYYY\VYYY[YYYZYYVXYYYWWVVYY\YY^YYXYYWYXYYYYYVYYXXYYYYXYYYWYYYYYYYYYYWVYYYVYYXYYYZXYXYYYYYYYYYYYYVYYYYYYWYXYWWXWXYYYYYZYXYXWYVYYYYYWYYYYYYYYYWYYVYYYWYYWWYZYY^YYYYYYXYXWYYYVYVYWXYYWVYYXYYYYUYYWYXWWYXWYYXZYYXVYUYYVWZYYYYYYWUYYWYYYYYVYYYWYYYVYYYYYYYYYYYXYYYYYXXYYYWXXYYXYYY[YYVYYYYXWVUYY[YY`YYXYXWYXYYYYYVYYYWYYYYWYYYVYYYYY[YYYYXVYYYUYYYYYYZYYYYYYYYYYYYYYYWYYZXYYWYWYWWZ[XYYYYYZYXYXXYVWYYYYWYYYYYYYYYWYYVYYYXYYXXY[YY`YYYY\Y[YWWYYYUYUYVXYYXWYYXXYYYVWYYYXWXYYWYYY\YYVWYVYYUXZYYYYYYXXYYVYYYXYUYYYWYYYWYZYYYYYYZYYZY]YYYZWYYYXXXYYZYYYZYYXXYYYXYYXYYZYY[YYXYYXYYYYYYYWYYYXYYYYYYYYXYYYYYZYYYYXXYYYWYYXYYYZXYYYYYYYYYYYYYYXYYYZYYXYXYXXXXXYYYYYZYXYYXYWYYYYYYYYYYYYYYYXYYWYYYXYYXXYYYY]YYYY[YYYXYYYYXYWYWYYYXXYYYYYYYVYYXYXXXYYXYYY[YYXWYWYYVXZYYYYYYXXYZXYYYYYYYYYXYYYXYYYYYYYYYYYYYYYYYYXYYYXXXYYXYYYYYYUWYYYWWYTYXZYY^YYWYWWYXYYYYYVYYWWYYYYVYYYXYYYYYXYYYYWVYYYUYYWYYYZXYWYYYYYYYYYYYYVYYWXYYWYWYXWYXXYYYYYZYWYWXYUXYYYYWYYYYYYYYYXYYVYYYXYYXWYYYY`YYYYYYWYWVYYYWYUYWXYYWVYYXXYYYRYYXYWWXYXXYYXZYYVVYVYYUVZYYYYYYYVYYUYYYXYVYYYVYYYVYXYYYYYYXYYWYXYYYYVYYYWWWYYYYYYYYYYYYYYYXXYYYYYYZYYYYZYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYYYYYYYYYYYZYYYYYYYYYYYYYYYXYYYYYXYYYYYYYYYYYYYYYYYXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYXYZYYYYYYYYYYYYYYYYYXYYVWYYYVTWYYWXYY\YYVYYWYYYYYYYWYYWVYYYYWYYYZYYYYYYYYYYYWYYY[YYXYYYYZYWYYYYYYYYYYYY^YYUZYYZYYYWWWWWYYYYYYYXYWVYVYYYYYWYYYYYYYYYWYYTYYYUYYWUY[YYZYYYYXYVYVYYYYXY_YVWYYWVYYXZYYYUXYVYWVYYWVYYWXYY[VYUYYYVYYYYYYYWYYZYYYYYYWYYYUYYYWYWYYYYYYXYYTYVYYYW]YYYUYWYYWYYYXYYVXYYYXYXVYXYYY]YYWYXXYXYYYYYVYYYXYYYYWYYYYYYYYYZYYYYYWYYYWYYXYYYZXYXYYYYYYYYYYYYXYYZWYYYYWYWWYXXYYYYYZYXYXXYWXYYYYXYYYYYYYYYXYYWYYYYYYXXYYYY\YYYYXY[YXWYYYVYWYWXYYWWYYYZYYYWXYYYWXXYXXYYYYYYWWYVYYWXZYYYYYYYYYYWYYYYYWYYYWYYYWYXYYYYYYXYYZYZYYYWVYYYWXXYYYYYYWYYUWYYYWVZTYWYYY`YYWYVWYXYYYYYTYYWXYYYYUYYYWYYYYYXYYYYUWYYYWYYVYYYYWYXYYYYYYYYYYYYVYYWWYYVYSYXWWVXYYYYYYYWYUXYUVYYYYXYYYYYYYYYWYYWYYYUYYWVYXYY_YYYYUYUYXXYYYRYUYWWYYVTYYXYYYYTWYVYUUXYUWYYWXYYVTYUYYSVZYYYYYYYRYXUYYYXYVYYYSYYYUYWYYYYYYVYYXYXYYYVUYYYUWXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZYYYXYYYYVVZYY[YY]YYXYYYYYYYYYYXYYZXYYYYZYYYZYYYYYYYYYYYVYYYXYYYYYYZ[YXYYYYYYYYYYYYZYYXYYYXYZYYXYYXYYYYYYYYYXXYY[YYYYXYYYYYYYYYXYYXYYYWYYXXY\YYZYYYYZYZYYZYYYYYZYYXYYZZYYXYYYYXYYXYYWYYZYYYXZYY[XYXYYYWYYYYYYYXZYZYYYYXYWYYYXYYYXYXYYYYYYZYYXYYYYYX\YYYXYYYYXYYYZYYWWYYYXRTWYT]YYbYYRYWWYXYYYYYWYYVSYYYYXYYYYYYYYYYYYYY[TYYYYYYWYYYZZYTYYYYYYYYYYYY^YYRYYYWYXYUTWYVYYYYYYYVYSRYY\YYYYUYYYYYYYYYVYYQYYYTYYTRYZYY\YYYYZYZYTWYYY[Y]YPXYYYXYYVVYYYRXYWYVT[YYUYYU\YY]SYVYYXTZYYYYYYS_YZYYYYVYSYYYUYYYWYVYYYYYYZYYVYYYYYU]YYYVVTYYSYYYZYYUWYYYWXYUYWYYY\YYXYXWYXYYYYYVYYWXYYYYXYYYXYYYYYYYYYYYWYYYYYYVYYYYWYWYYYYYYYYYYYY[YYXYYYYYWYWWWXVYYYYYYYWYXWYUXYYYYXYYYYYYYYYXYYVYYYVYYWWYZYYZYYYYYYYYWWYYYVYYYWXYYWWYYXYYYYVYYXYXVXYWWYYXZYYXUYUYYUWYYYYYYYXXYZXYYYXYWYYYVYYYWYXYYYYYYYYYWYXYYYWWYYYVYWYYXYYYXYYWXYYYXWYXYWXYY[YYXYYXYYYYYYYWYYXXYYYYYYYYZYYYYYYYYYYXXYYY[YYXYYYYYYXYYYYYYYYYYYY\YYWZYYYYXYXXXXWYYYYYYYWYYWYXZYYYYYYYYYYYYYYWYYVYYYWYYVWYZYYYYYYYYYWYWXYYYWY\YWXYYWXYYXZYYYWYYXYWWYYWXYYXYYY[WYWYYWWYYYYYYYWXYYXYYYYYYYYYWYYYXYXYYYYYYWYYVYWYYYYZYYYVZXYYWYYYWYYWZYYYYWWVYXWYY[YYYYWVYWYYYYYYYYXXYYYYXYYYVYYYYYYYYYY[WYYYYYYXYYYYXYZYYYYYYYYYYYYWYYWXYYWYUYWW[\YYYYYYYYXYWXYWXYYYYYYYYYYYYYYWYYXYYYYYYVVYYYYWYYYYUYWYVVYYYWYVYVWYYWXYYZ\YYYWXYVYYZYYVXYYYXYYUVYWYYVZYYYYYYYXYYXWYYY[YWYYYWYYYVY[YYYYYYVYYXYWYYYWVYYY[XYYYXYYYXYYWXYYYXX[WYYYYY[YYXYWWYXYYYYYXYYYXYYYYXYYYYYYYYYYYYYYXXYYYWYYYYYYYZYXYYYYYYYYYYYYVYYXWYYXYWYWXXZXYYYYYYYYYWXYWWYYYYWYYYYYYYYYXYYXYYYYYYYWYXYYZYYYYWYYYVXYYYXYXYVVYYWWYYXYYYYWXYYYWYYYWXYYXYYYWWYYYYWYYYYYYYYXXYXYYYYXYWYYYYYYYYYYYYYYYYWYYZYYYYYXXYYYYXXYYXYYY\YYWXYYYZTUZYY_YY^YYUYYXYXYYYYYYYYXUYYYY\YYYZYYYYYYYYYY\UYYYZYYYYYYZ[YUYYYYYYYYYYYY_YYW\YYXY[YVX\[XYYYYYYYZYWTY[\YYYYVYYYYYYYYYWYYTYYYYYYWUY[YY[YYYY\Y]YSXYYY^Y]YUXYY[\YYWWYYYYXYZYYY[Y[VYYW\YY]VYXYY\YZYYYYYYT_Y\\YYYXYTYYYZYYY\YXYYYYYYZYYZY^YYYX_YYYZWXYYVYYYXYYUWYYYXUXWYWYYY]YYVYWVYXYYYYYVYYWWYYYYUYYYYYYYYYXYYYYXXYYYZYYWYYYZXYXYYYYYYYYYYYY\YYVWYYYYWYWWWXWYYYYYYYVYWWYVVYYYYWYYYYYYYYYXYYUYYYUYYWVYZYYZYYYYWYWYWYYYYVYZYVWYYWVYYW[YYYUWYYYXUXYWXYYXXYYXVYUYYVVZYYYYYYXWYZWYYYXYXYYYTYYYWYWYYYYYYWYYVYVYYYVYYYYUZWYYWYYYXYYWXYYYXXYWYXYYY[YYWYYWYYYYYYYXYYXXYYYYYYYYZYYYYYYYYYYXYYYY[YYXYYYYXYXYYYYYYYYYYYYZYYWYYYZYWYXXXXXYYYYYYYXYYXYXYYYYYYYYYYYYYYYWYYWYYYXYYWVYYYYYYYYYXYWYWYYYYXYYYWXYYXXYYXZYYYXYYWYWXYYWXYYXXYYZXYXYYWXYYYYYYYWXYYYYYYXYYYYYWYYYXYXYYYYYYXYYXYXYYYXXYYYWZYYYXYYY]YYZ]YYYXXRTY[ZYY\YYXYYXYWYYYYY\YYYUYYYYYYYYVYYYYY]YYYY_XYYYWYYZYYYZ]YZYYYYYYYYYYYYVYY]WYYWYXYQUbb]YYYYYYY]YUUYXYYYYYVYYYYYYYYYWYYVYYYaYYWSY\YYWYYYY[Y[YNTYYYcYVYQUYYZ[YYWXYYYYUYVYYd\YYVYYZ[YY[XYWYYXbZYYYYYYW]YYYYYYZYUYYYaYYY[Y^YYYYYY\YYaYcYYYSZYYYeTYYYZYYYYYYXYYYYYXXWYXYYY\YYXY[VYXYYYYYXYYYXYYYYYYYYXYYYYYYYYYYXXYYYXYYYYYYZYYZYYYYYYYYYYYYXYYYYYYYYYYWW[ZXYYYYYYYYYYXYWXYYYYWYYYYYYYYYWYYWYYYYYYXWY[YY\YYYYYYYYUXYYYYYXYWWYYXWYYXXYYYXXYXYX[XYYXYYYXYYXYYYYYXYYYYYYYYXWYYYYYYXYXYYYYYYYYYZYYYYYYYYYXYZYYYYXYYYZYXYYXYYYYYYXXYYYYXXXYYZYY[YYXYYYYXYYYYYXYYYYYYYYXYYYXYYYYYYYYYYXXYYYWYYXYYYZYYYYYYYYYYYYYYYXYYYYYYXYYYYXXXXYYYYYYYXYXXYXYYYYYYYYYYYYYYYXYYWYYYXYYXXYYYY[YYYYXYYYXXYYYXYXYYYYYXXYYYYYYYWYYXYYXYYXYYYYYYYXWYXYYXXYYYYYYYXWYZXYYYYYXYYYXYYYXYXYYYYYYYYYXYYYYYXXYYYXWYYYXYYYZYYYWYYYZWWWYXZYY]YYXYZWYXYYYYYWYYYXYYYYZYYYZYYYYYYYYYYXWYYYZYYYYYYZYYXYYYYYYYYYYYY\YYXZYYXYXYZYYYXYYYYYYYYYYXYY[YYYYYYYYYYYYYYYYYWYYYWYYYWY\YYZYYYYZYZYYZYYYZYZYXXYYZYYYXYYYYXXYXYYVYYZYYYXYYYYWYXYYWWYYYYYYYXZY[ZYYYYYXYYYVYYYXYYYYYYYYYYYXYYYYYY[YYYWZYYYXYYY]YYXXYYYXRUYYW_YY`YYSYZVYWYYYYYVYYXSYYYYYYYYXYYYYYZYYYY[TYYYXYYYYYY[[YVYYYYYYYYYYYY]YYWWYYWYYYUU[ZUYYYYYZYWYVSYZXYYYYVYYYYYYYYYUYYQYYYWYYVSY^YY^YYYY]Y]YRVYYY\Y]YQWYYY[YYVVYYYTWYYYWWZYYTYYV[YY\TYVYYYWZYYYYYYS^YZYYYYWYSYYYXYYYXYXYYYYYYZYYYY\YYYW\YYYYWUYYVYYY]YYWZYYYXXWVYZ[YY_YYWYZTYXYYYYYYYYZVYYYYXYYYWYYYYYZYYYYZWYYYWYYXYYYZ\YZYYYYYYYYYYYYXYY]ZYYXYYYXW][YYYYYYZYZYWXYWXYYYYUYYYYYYYYYVYYWYYY\YYYVY\YY_YYYY^Y[YUWYYY[YVYUXYYZ[YYYWYYYXXYWYXZZYZWYYX\YYZXYUYYXYZYYYYYYWYYYWYYYXYVYYYZYYYYY]YYYYYYZYY[Y_YYYYYYYYZWYYY[YYYYYYUVYYYWSUXYU\YYaYYTYWTYXYYYYYVYYUSYYYYVYYYYYYYYYYYYYYXUYYYYYYVYYYZYYUYYYYYYYYYYYY^YYVXYYYYWYVTXXTYYYYYYYVYWTYWVYYYYUYYYYYYYYYTYYQYYYUYYTRY]YY\YYYY[Y\YUXYYYVY^YSWYYXVYYVXYYYSVYXYUTYYYTYYWZYY]UYVYYVTZYYYYYYVZYZWYYYXYSYYYTYYYVYVYYYYYYVYYVYYYYYW\YYYTZSYYWYYYXYYQKYYYYUTPYV\YYdYYVYVVYVYYYYYSYYXWYYYYSYYYTYYYYYXYYYYVTYYYQYYTYYYYXYVYYYYYYYYYYYYQYY]VYYTYSYTVXXUYYYYYZYTYUWYRTYYYYTYYYYYYYYYSYYVYYYVYYVWYWYYeYYYYXYXYVTYYYPYPYUVYYVSYYWVYYYPWYXYXUXYTUYYXVYYSRYPYYOTZYYYYYYWSYUNYYYXYTYYYTYYYSYWYYYYYYTYYZYWYYYVRYYYWUTYYZYYYYYYWYYYYYXWWYXZYY]YYXYZWYWYYYYYYYY[VYYYYYYYYWYYYYYYYYYYZWYYYWYYZYYYZ\YZYYYYYYYYYYYYXYY\ZYYYYXYWXZZZYYYYYZYYYXXYWWYYYYVYYYYYYYYYXYYUYYY[YYVXY[YY^YYYYZYZYUXYYYZYWYVXYYXYYYYWYYYWYY[YY\ZYXYYYYYYYXYYXYYWZZYYYYYYXYYXYYYYWYXYYYZYYYYY\YYYYYYXYYZY[YYYZXYYYZXWYY[YYYZYYVVYYYYRVXYX\YY^YYUY[WYYYYYYYWYYVVYYYYXYYYYYYYYYYYYYYZVYYY[YYWYYYZYYWYYYYYYYYYYYY^YYU[YYXYWYUVYYVYYYYYYYYYWUYXZYYYYUYYYYYYYYYVYYTYYYVYYVSY\YYZYYYY[YYYVYYYYXY]YUXYYZVYYWYYYYUWYVYYUZYZVYYWZYY[VYUYYYUYYYYYYYVZYYXYYYXYVYYYVYYYVYXYYYYYYYYYWYZYYYV^YYYVXVYYWYYY]YYVWYYYYTXXYX\YY^YYVY[VYXYYYYYXYYWVYYYY\YYYYYYYYYYYYYYYVYYYXYYWYYYZZYWYYYYYYYYYYYY\YYW[YYXYYYYW[YWYYYYYYYXYYUYW^YYYYXYYYYYYYYYWYYVYYYXYYWTY]YY\YYYY[YZYUYYYY\YYYUWYY[YYYXXYYYWZYWYYWZYYWYYW\YYZVYXYYYWYYYYYYYUZYZZYYYXYWYYYWYYYXYXYYYYYYZYYXYZYYYY\YYYXZZYYVYYYZYYXXYYYYXXXYX[YY[YYYYZXYXYYYYYXYYYXYYYYZYYYXYYYYYYYYYYXWYYYXYYXYYYYZYYYYYYYYYYYYYYYYYYXYYXYZYYYZYXYYYYYYYXYZXYXZYYYYXYYYYYYYYYXYYXYYYXYYYWY[YY[YYYYYYXYXYYYYZYXYXXYYXZYYXXYYYXXYXYYXYYXXYYXZYYXWYXYYXXYYYYYYYXXYZYYYYYYWYYYXYYYXYYYYYYYYYYYXYYYYYYZYYYXYYYYYYYYVYYUYYYYWVWXYVZYY]YYXYYVYXYYYYYVYYXVYYYYUYYYZYYYYYXYYYYYWYYYYYYYYYYZYYXYYYYYYYYYYYY^YYXXYYXYYYWWWXVYYYYYYYYYWXYWUYYYYUYYYYYYYYYXYYTYYYVYYVVYYYYZYYYYXYYYXXYYYWYZYUXYYXZYYWYYYYUYYYYXVWYXXYYYYYY\WYVYYYWZYYYYYYYZYZYYYYXYWYYYVYYYYYWYYYYYYWYYUYVYYYWZYYYWZVYYVYYYXYYXXYYYYYZVYYZYY]YYXYXVYXYYYYYXYYXXYYYYWYYYXYYYYYZYYYY[XYYYVYYYYYYZZYYYYYYYYYYYYYYVYYZXYYYYWYVWYZYYYYYYZYYYWXYVXYYYYWYYYYYYYYYWYYWYYY[YYWWYZYY[YYYYWYZYVWYYYYYVYVWYYXXYYYYYYYWXYXYW[ZYXYYYXYYYWXYWYYXYZYYYYYYYXYXWYYYXYYYYYXYYYXYYYYYYYYXYY[Y[YYYXWYYYYWXYYYYYYYYYXYYYYYYXXYYZYYZYYXYZXYWYYYYYYYYZXYYYYYYYYYYYYYYZYYYYZXYYYXYYZYYYZ[YYYYYYYYYYYYYYYYY[XYYYYXYWXYZYYYYYYYYYYXXYYXYYYYXYYYYYYYYYXYYWYYYYYYXXYZYYZYYYYYY[YVXYYYYYXYXXYYYZYYYXYYYYXYZYX[XYYXYYYYYYYYYYYYY[YYYYYYYYZYYYYYYWYYYYYYYYYYYZYYYYYYYYYYYZYYYYXYYYZYYYYYYYYtYYFVYXYDHtQYmQYYLYYKYuBXEYYYYYGYYvWYYYYMYYYOYYYYYzYYYYUcYYY)YYkYYYVNYYYYYYYYYYYYY7YYafYYOYOYv~[/eYYYYYWYbYcRYrLYYYYtYYYYYYYXYzYYoYYYYONYYYDYRYSLYYBAYYWZYYYYYX[`YKEYYYRYDYYY>YYYDYFYYYYYYTYYGYKYYYLEYYYKC?YYGYYYAYYmBYYYn=;nY:AYYIYY8Y2[YsYYYYYRYY6Y4>DIAYYYYYWYFYG;YMMYYYYJYYYYYYYYY?YY4YYY9YY:KYRYYAYYYYXYDYCLYYYPYY0hYY|@YYIiYYYhXYPYP:sYh/YYiSYYOYYYYYYYR=YQ?YYYTYEYYYFYYYBYSYYYYYYQYYJYRYYYLGYYYHHFYYOYYYRYYLGYYYIKQCYWXYYeYYMYOLYQYYYYYHYYVRYYYYPYYYGYYYYYZYYYYASYYYMYYPYYYW?YUYYYYYYYYYYYYJYYTNYYEYCYMOIIRYYYYYYYSYOPYMMYYYYNYYYYYYYYYTYYJYYYDYYLRYTYYaYYYYPYOYRQYYYGYNYPOYYNKYYXKYYYAMYUYWMCYIOYYMRYYCMYCYYLMYYYYYYYOJYQIYYYWYFYYYDYYYKYTYYYYYYRYYDYIYYYTFYYYFOJYYPYYYKYYG^YYYLsCGYmKYYcYYWYYYNYYYYYKAYEYYGYYYYDYDYGAYYYYAY?>YYUQYYfKYYYAJYJYCkYNJYYIeYYIFYOYYDXYYYYYYUqYVFYYYYYBYYYY@YYYKYYYYYWYYYYMSYYYWYYPYYYYHYMYYYYYYYYYYYYGYYI;YYHYBYBHYHYFGGYMCYYFWYYPMYLYYLH[YYYYYYMQY\NYYYPYDYYYHYYYMYSYYYYYYXYYGYKYYYPKYYYOIDYYPYYY7YYw6YYY[uY6VYYMYY;YJ6XDYYYYY8YY1?YYYYlXYYIXYYYYMYYXYFEWYYYYYYYYVIY&YYYYYYYYYYYYYY#HYYlY1Y!>P@YYYYYUY7Y8BYtRYYYYYYYYYYYYY:YY6YYY.YY-YVYY^YYYYXYnY#CYYYHYY -7YYriYY60YYYW.Y^Y8:kYc5YYE9YY{MYdYYU2TYYYYYXMSY?|YYY>YcYYY=YYYpY>YYYYYY0YY1Y"YYYGlYYY3X8YY@YYYMYYU>YYYF>VRYKRYY[YYAYIKXHYYYYY;YYHNYYYYKXYYCYYYYYUYYYY=OXYY]YYKYYYVCYMYYYYYYYYYYYY]YY;MYYNYJY;QI>EYYYYYXYFYGIYQEYYYY@YYYYYYYYYGYYBYYY3YYD9YWYYeYYYYZYKYARYYY@YdY:IYY]GYYNCYYYP=YEYMCIYVAYYEIYYOIYKYYCBVYYYYYYGHYISYYYRYJYYYAYYYHYFYYYYYYKYY0YBYYYNTYYY?OFYYKYYYQYYQBYYYIIN:YTQYYaYYPYJEXRYYYYYFYYINYYYYDYYYFYYYYYVYYZYGKYYYHYYRYYYY=YSYYYYYYYYYYYYDYYUDYYOYCYHFVJOYYYYYZYSYPKYQEYYYYJYYYYYYYYYRYYMYYYJYYVIYMYYaYYYYKYHYRKYYYEYJYQOYYFIYYVIYYYGOY@YMOCYIHYYFEYYIMYPYYJLXYYYYYYVDY]JYYYTYBYYYHYYYNYQYYYYYYQYYQYOYYYP@YYYKLGYYSYYY}YY@YYYYA5@SYa9YYkYYGYq.YzYYYYY@YYWAYYYY5ZYYEYYYYYYYXY<[YYBYYCYYY[BYxYYYYYYYYYYYY5YYH_YYsYBYjl]0JYYYYYZY\Y8DY<>YYYYdYYYYYYYYYcYYIYYY@YYnhY{YYYYYYwYEYckYYYGYDYfdYYODYYa{YYY4CYD4YYYY\YYYYYYYXYtYYBYYYKYYheYtYYaYYYY{Y>YmvYYY=YDYgfYYO;YYcYYY20Y0YpE9YNWYYwYYIqY4YY>AZYYYYYYF,Yh=YYYwY_YYY?YYYGY}YYYYYYYYIY_YYYh=YYY:pZYYsYYYHYYH?TYI+YYLYYMY9RXYYYYYYNYYFGYYYY8XYYRYYYYYPYZYYRkWYYYY>YYYVIYKYYYYYYYYYYYYyYYDDYY}Y=YICA;JYYYYYUYLY9NYGYYV?YYn8Y9YY8GUYYYYYXIGYIDYYYWY`YYYHYYY@Y=YYYYYYLYYGY1YYY6hYYYM+>YYKYYY@YY\YYYjinYT_YYUYYkYbY[YYYYYfYYF_YYYYnXYYyYYYYYPYYYYcQYYY`YYlYYYWfYCYYYYYYYYYYYY^YYuWYYWYdYGMNdPYYYYYXY]YkcYdsYYYYiYYYYYYYYYPYYWYYYlYYE_Y9YYOYYYY@YgYPHYYYcYQYkNYYV]YYVaYYYrwY`YrahYh_YYVIYY_dYmYY[ZWYYYYYY_ZYK_YYYMYlYYY`YYY^YMYYYYYYAYYeYXYYYP_YYYg`cYYJYYYRYYK@YYY:ELBYRPYYgYYFYI8XOYYYYYMYYCFYYYYCYYYBYYYYYSYYYYCHYYYFYYQYYYZ9YRYYYYYYYYYYYYIYYG>YYLYCYKKNIJYYYYYYYOYDBYT>YYYYAYYYYYYYYYMYYFYYYCYYYBYMYYdYYYYRYJYNLYYYFYKYHNYY:@YYWDYYYYDCYY>CYYKLYJYYFHYYYYYYYSIY\IYYYTYLYYYLYYYJYSYYYYYYSYYCYJYYYKCYYYGH@YYJYYYTYY^PYYY\pi_YPjYYMYYyYwsYPYYYYY\YYn\YYYYsYYY`YYYYYNYYYY`GYYYFYY^YYY[TYQYYYYYYYYYYYYPYYp`YYJYqYjjTbkYYYYYXYUYnfYbkYYYYqYYYYYYYYYuYYnYYYWYYrjYQYYSYYYYVYeYfUYYYYYPYqWYYIbYYNNYYYepYiYdRIYJlYYLJYYNYYiYYoVXYYYYYXu]Y\qYYYTY^YYYTYYYeYWYYYYYYZYYRYUYYYjNYYYVsvYYTYYYpYY\vYYYz9EKY]3YYSYYEYLXYYYYYY1YYLPYYYY0XYYjYYYYYYXYY:XYYrYY5YYYV?YzYYYYYYYYYYYYrYY9YYwY?Y`Vc>>YYYYYVYoYO8Y0|YYYYYYYYYYYXYSYYAYYYGYYEYTYYNYYYYrY2YjjYYYCYiYfYY/YYcYYYrgY4YUlYOYYvYYrVY+YYFLXYYYYYX;GYc#YYY{YYYYOYYY&YeYYYYYYpYYYZYYYIuYYYXDNYYsYYYMYYliYYYuFPdYhCYYVYYGY4ZYYYYY}YYEQYYYYFXYYcYYYYYGYXZYqmXYYmYYBYYYWYSYYYYYYYYYYYYzYYW[YYjYZY:5`usYYYYYTYmY[DYYYYYnY8YAIYYYqYoY3oYYLYYxYYYkqYDY\yY:YYvaYY}CYLYYJyXYYYYYXLjYn6YYYwYcYYYtYYY5YqYYYYYY=YYYRYYY7YYY.QYYpYYYUYYO?YYY?@FYP=YYYY=YYYYYYYYYOYY@YYYCYYTBYSYYcYYYYTYQYKNYYYOYLYEKYY?EYYW@YYY;BYIYFHIYJBYY>MYYIOYIYYMFZYYYYYYLOY]KYYYVY=YYYGYYYHYPYYYYYYTYYEYOYYYQDYYYMJ>YYOYYY<>4CYYYYYUYFY:BYH4YYYYHYYYYYYYYY:YY1YYY4YYACYMYY9YYYYYY.YIEYYYDYY;`YYrYYYYYVYYYY+YY>"YjYYhYYYYMY_Y+XYYYUYVY/6YYZ_YYE/YYY?1Y`YECPYQBYY2GYYUKY]YY:8UYYYYYY=bYRdYYYGY=YYY4YYYZY?YYYYYYGYY1Y@YYYPUYYY?^AYYYLEMJIYYYYY[YOYPLYS>YYYYAYYYYYYYYYRYYKYYYOYYWGYKYYXYYYYLYJYPJYYYFYMYLPYY@EYYTJYYYKFYGYJJDYFFYYHHYYMNYJYYUI[YYYYYY\FYUMYYYUYJYYYJYYYJYSYYYYYYRYYIYQYYYPCYYYIFEYYPYYYPYYPAYYYCC[4YSLYYZYYJYHCXKYYYYYHYYTOYYYYPYYY7YYYYYXYYXY=PYYY\YYOYYYW>YRYYYYYYYYYYYYWYYMGYYNYLYIOOPQYYYYYWYMYLJYNEYYYYEYYYYYYYYYUYYFYYY>YYREY\YYWYYYYNYLYMRYYYJYSYKMYY:GYYU?YYY7EYFYJH?Y@MYY?MYYBEYRYYFHXYYYYYYPQYYKYYYUYCYYYEYYYNYOYYYYYYLYY;YBYYYOAYYYJREYYPYYYTYY[KYYY^_d_YJjYYKYYnYhiYTYYYYYYYYeaYYYYiYYY]YYYYYJYYXYXTXYYQYYeYYYYOYLYYYYYYYYYYYYQYYbfYYFYXYagKY]YYYYYWYPYd]YgfYYYY`YYYYYYYYYlYYhYYYSYYeeYTYYPYYYYKYkYcTYYYMYZY\UYYRkYYPMYYYfiYgYdMPYQhYYLOYYYXYcYYdUXYYYYYXnZYSnYYYLYWYYYPYYYmYRYYYYYYVYYIYMYYYfVYYYQakYYOYYYQYY@RYYYBA[eYXGYYEYYAYHDYEYYYYYWYYSLYYYYUXYY=YYYYYXYZXYWKWYYrYYQYYYRjYSYYYYYYYYYYYY}YY7KYY`Y_Y?M\PKYYYYYTYNY7LY`>YYYY!YYYYYYYYYPYYEYYYHYYE YbYYHYYYYmYUYYYYaYYYYUYYY=YCYYYYYYJYYuYAYYYuYMYYYYYYYBNYYYYHYYYLYYYYYFYYXY}CYYYIYYMYYYXYGYYYYYYYYYYYYIYY~7YY8YsY6AefYYYYYVYmYJNYBOYYYYFYYYYYYYYY4YYUYYY|YYJAYGYYGYYYYCYHYE;YYY|YDY<7YYPOYYeHYYY>OYRYYMYYEZYYYYYYTuYRFYYYRY5YYYYYYMYYYYYYYYAYYhY`YYY5GYYYY\WY{HYYnJYYwDY9YY@OSYYYYYXPAYJDYYYdYsYYYQYYY?YGYYYYYYTYYpYFYYYGYYYO1PYYMYYYYYDKYYYH.YYY%fYYjYYYPYYYAYYYJRI=YPRYYaYYOYBAXSYYYYYVYYJOYYYYEYYY>YYYYYTYYXYMPYYYRYYOYYYXIYUYYYYYYYYYYYYDYYNFYYSYJYRNOORYYYYYYYUYHGYNCYYYYJYYYYYYYYYMYYOYYYEYYZNYTYYiYYYYPY=YUNYYYOYLYQUYYA:YYVIYYY=IY?YINHYEIYYEJYYELYCYYDGYYYYYYYUJYWDYYYVYLYYYPYYYIYWYYYYYYRYYGYGYYYEFYYYRBEYYQYYY,YY=HYYYEHMYS]YYmYYTY2}Y6YYYYYYYXYYTYYPYYYUzYDYYYYYYYYYYYYEYYo8YY6YxY;;SOYYYYYUYTYQMYGBYYYY@YYYYYYYYYHYY\YYYlYY=EYHYYJYYYY/YYY[DYYYY7YS>YYFMYYC-YYYH=YXY5`pYESYY>nYY>4YLYYE_XYYYYYXSY-@YYYEY@YYY{YYYFYCYYYYYY=YYhY]YYY;PYYY9AYYKYYYUYYCAYYY(7`OY@^YYYYY3YH9YCYYYYY?YYNHYYYYGYYY;YYYYYWYZXYIGYYY@YY]YYYXGYJYYYYYYYYYYYYGYY'5YYCYY4KYYDLYVYYPBZYYYYYYEbYP^YYYOY:YYY8YYYPYFYYYYYYNYY5YJYYYXAYYY;YCYYKYYYIYYM;YYYYYY9=YEY9EFYM?YY?EYYR=YCYYDHYYYYYYYPPYbHYYYRYGYYYKYYYEYMYYYYYYMYYYYY@KYYYM;9YYGYYYPYYHHYYYMaGSYLSYY^YYXYPIYKYYYYYRYYLOYYYYDYYYFYYYYYUYYYYOUYYYVYYLYYYVFYSYYYYYYYYYYYYMYYMEYY]YFY_KHAOYYYYYYYPYLQYJCYYYYMYYYYYYYYYTYYRYYYSYYbVYLYYWYYYYTYAYUPYYYBYKYVQYYSHYYRNYYYTJYGYINFYWJYYGJYYJJYPYYJNWYYYYYY]LYXCYYYSYWYYYPYYYDYTYYYYYY\YYRYSYYYQMYYYI>PYYMYYYIYYK6YYYG\R9Y;NYYaYYKYF>YDYYYYYSYYNQYYYYJXYYCYTYNQQYFTYYIXYYHOYMYYTL\YYYYYYQ^YDJYYYEYJYYYOYYYIYGYYYYYYQYYTYIYYYKOYYYOE@YYPYYYQYYROYYYDO_LYWXYYfYYUYOLYNYYYYYIYYYUYYYYYYYYIYYYYYWYYYY7MXYYJYYMYYYV2YXYYYYYYYYYYYYEYYUXYYJY=YPPGGRYYYYYXYSYXSYKSYYYYRYYYYYYYYYNYYTYYYGYYOKYWYY\YYYYOYEYV]YYY6YEY[PYYVRYYWJYYYJJYVYWT8Y>KYYNNYYYYYYYYYYYYYYYNYYTYYYnYY>YFYYBYYYYKYDYUNYYYMY`YP}YYySYYUxYYYY>Y{e}Yt^YYVYYwLYTYYI`TYYYYYX\NYPGYYY]YuYYYnYYYFYOYYYYYYQYY|Y\YYYhYY^YYJYUYYYYYYYYYYYYQYYK`YYPYOY5PFB2YYYYYXYEYbZYvbYYYYBYYYYYYYYYIYYIYYY=YY;AYMYYgYYYY?YuY1AYYYCYKY?7YY\rYYC9YYYhSYsYSKKYUTYY4@YYMXYiYYgITYYYYYYFLYIrYYYEYUYYYYY5YYYAYYG8YLYY7YYYYSY,YKBYYYOYY=RYY`:YYNBYYYQ?Y6Y/?aY\:YY?FYYnBY?YYBITYYYYYXPQY]EYYYRYSYYYPYYY;YFYYYYYYLYY:Y8YYY8fYYYQ.YYYYYYYYYHYYTYYYaYY^CYDYYcYYYYeYaYFJYYYbYCYIEYYAMYYYDYYYC6Y^Y2Z[Y^>YY;YYYSLY[YYib_YYYYYYedYcMYYYTYLYYYoYYYBY]YYYYYYOYYNYcYYYJQYYY`CCYYUYYYYY"YYY10(%Y)YYNYYBY]?XYYYYYHYY]@YYYY#XYY.YYYYYYXXY:gYYYMYY6YYYXTYYYYYYYYYYYYY?YY@IYYmYGYSZVrYYYYYVYY06Y1"YYYYMYYYYYYYXYdYYIYYYtYYoBYYYdYYYYY1YWdYYYlY=Y3RYYR&YYYYY$3Y%Ya`ZYO5Y]+YYaYYGY},XbYYYYY-YY`6YYYY+YYY9YYYYYYYYY5YYYKYYKYYYJY#Yj:YY4kYYL?YYYu[YnYL=>Y>hYY8GYY&jYoYY|VWYYYYYYdJYQlYYYNYFYYYAYYY|YEYYYYYYCYYGYOYYY`/YYYDX^YYFYYY2YY]:YYYe@tY$iYY^YYcYWVYFYYYYYOYY]wYYYYwYYYbYYYYY9YYYYP?XYYOYYYYY[NYY>YY]YYYY9YYYAYYYKYCYP8YYMtYY@>YYYZeYfYN;ZY9\YY1;YYV]YwYYlFXYYYYYYVLYEkYYY9YRYYYDYYYsY?YYYYYY:YY=YAYYYWXYYYGRUYY:YYYFYYMNYYYOlO6YISYY{YYQYCUX:YYYYYnYYISYYYYMYYYJYYYYYKYYYYqHYYY;YYSYYY[eYJYYYYYYYYYYYY9YYwOYYGY`YKDbrDYYYYY[Y]YPSYDKYYYYRYYYYYYYYYGYYTYYYlYY4RYEYYgYYYYKYRYFBYYYZY?YRBYYFPYY?GYYYJMY[YDddYFUYYMbYYYYTYYYYlYYJJY?YYQi_YYYYYYPYACYYYAY.YYYvYYY>YKYYYYYY7YYWYlYYY9LYYYk=:YY[YYYUYYL@YYY;;bHYKaYYkYYBYI@XHYYYYY8YYAJYYYYFYYYCYYYYYUYYYYBEZYY;YYTYYY[@YJYYYYYYYYYYYYIYY2HYY@YDY=DUDCYYYYYZYHY@GYNDYYYY:YYYYYYYYYMYYAYYYAYY?=YRYYYYYYYYXY;MYYYDYLY6DYYPLYYOCYYYCCYRYQLCYLBYYDOYYESYGYYFI[YYYYYZHGYJUYYYPY>YYY>YYYMYNYYYYYYOYYCYHYYYYBYYYCWFYYVYYYCYYk;YYYK;HfYJ;YYUYYAY4HXQYYYYY;YY3AYYYY>XYYUYYYYYKYYYYBZXYYYY9YYYVBYLYYYYYYYYYYYY|YYY;CYG@YYYYEYYYYYYYYY3YY3YYY9YYB5YMYYEYYYY`YBYFLYYY?YY7OYYtBYYJTYYYV@YEYI;aYj0YY]?YYu?Y6YYDY=YYYYYY=YY7Y>YYY=nYYY9=4YYBYYYQYY\KYYY=]sY%YYlYY|YiY;YYYYYYY_QYYYYwXYYZYYYYYBYYYY(YYY@YYqYYY]wYKYYYYYYYYYYYY6YYp7YY9YYU_a}VYYYYYWYJYoYW`YYYYhYYYYYYYYYeYYpYYYhYYx]YGYY.YYYYEYoYoPYYYY*Y8YY'YYL/YYYVqYxY*iXYM_YY17YY9"YYY~TXYYYYYXYMqYYYNY@YYYYYYVY3YYYYYY=YYrYRYYY@0YYYl\RYY1YYY:YYP.YYYG3:WYH*YYGYYNY:HXEYYYYYLYYcYSYYYTY[YYYOYYY:Y>YYYYYYGYY7Y1YYY8ZYYYJ"YYY2YYbXYYYiTGhY\>YYXYYJY6YdYYYYYYY`|cYYYYYTYiYIRYDGYYYYHYYYYYYYYY7YYVYYYyYYDFY;YYDYYYY5YHYI;YYYtYCY=}oYEPYYF`YY@;YMYYC{XYYYYYXRtYIDYYYPY;YYY|YYYJYSYYYYYY;YY^YcYYY5DYYY{6GYYTYYYSYYREYYYDRIBYOTYYjYYJYKAYMYYYYYWYYFKYYYY@YYY?YYYYYTYYYYKNYYYPYYPYYYXGYWYYYYYYYYYYYY>YYKDYYUY@YTNQMPYYYYYYYSYFGYQ=YYYYIYYYYYYYYYLYYKYYYPYYZIYSYYgYYYYSYEYUQYYYNYDYMQYYFAYYXJYYY>FYFYDHGYKEYYGNYYKJYFYY@IWYYYYYYVMYXEYYYVYOYYYMYYYEYXYYYYYYYYYKYMYYYTEYYYPBEYYOYYYoYY=`YYYB9ABYt;YYVYYEYt6Y|YYYYYNYYpCYYYYBYYYBYYYYY{YYXYB|XYYLYYFYYYVOYYYYYYYYYYYYYEYYGkYYYDYou^4ZYYYYYVYbYYYlyYYY7CY9YlFGYPSYY~aYYR_YFYYDM[YYYYYYSKYqEYYYnYbYYYHYYYSYoYYYYYYYYRYgYYYfIYYY-lPYY`YYY^YYdiYXYfWyjYaaYYOBYJXYYoYYMYIDXTYYYYY@YY@MYYYY@YYYQYYYYYVYYZYHOZYY6YYTYYY\@YOYYYYYYYYYYYY5YYEIYYFYFYCLRELYYYYY\YLYPJYOGYYYYGYYYYYYYYYJYYGYYYFYYQKYLYYyYYYYRY[YLIYYYEYCYDMYYKGYYTNYYYIKYOYQKCYJNYYMQYYBUYAYYJH[YYYYYYS>YQHYYYUY=YYYGYYYHYPYYYYYYTYYRYOYYY^=YYYHTHYYPYYY;YYj4YYYc+9^Y:2YY[YY;Y&PXnYYYYYLYY<>YYYY3YYY^YYYYYIYZYYQiXYYYYAYYYZFY>YYYYYYYYYYYY~YY0RYYY-Y9:@;8YYYYYWYCY;@YOIYYYYQYYYYYYYYY=YY8YYY1YY;NYKYYGYYYYUY3Y@CYYY:YY1rYYv;YYGiYYYeXYEYO3nY_,YYj3YYz.Y6YY7:XYYYYYYAOYETYYYQYdYYY4YYY?Y3YYYYYYGYYYYYYY5uYYYO$1YY@YYYVYYSFYYYFJSCYWTYY^YYNYKLXTYYYYYHYYTQYYYYJYYYGYYYYY\YYYY@WYYYKYYPYYYV@YUYYYYYYYYYYYYMYYSIYYOYFYMOJFSYYYYYXYRYOMYPJYYYYNYYYYYYYYYQYYNYYYAYYTPYWYYUYYYYMYGYQPYYYAYSYNSYYGMYYXLYYYFLYJYWKFYKKYYKKYYIQYKYYNJXYYYYYYRKYYLYYYVYLYYYBYYYJYSYYYYYYPYYEYJYYYOJYYYDNKYYSYYYAYYLLYYYIcF0YQVYYsYYEYBUYJYYYYYoYY?HYYYYQYYY>YYYYYVYYYYeKYYYOYYNYYYYhYHYYYYYYYYYYYYPYYiDYY?Y`Y=CkHYYYYYXYhYG?YGMYYYY>YYYYYYYYYDYYJYYY]YY:HY[YYdYYYYRYOYYMYYYYYYYYYYYY`YY@QYYZYEY@OK>FYYYYYYYGYGLYEKYYYYCYYYYYYYYYGYYAYYY9YYB7YVYY]YYYYSYIYAOYYYBYhY=JYYgJYYKLYYYQCYNYNDOYTBYYOMYY]BYIYYE?XYYYYYYI?YJHYYYNYNYYY@YYYHYEYYYYYYIYY8YAYYYKVYYY=OFYYJYYYIYYq(YYYc|peY@YYDYYYrYHYYYYYMYYveYYYYxYYYjYYYYY6YYXYTKXYYIYYmYYYYDYJYYYYYYYYYYYY@YY{lYY9YmYquAJpYYYYYVYHY}iY{mYYYYoYYYYYYYXY{YYwYYYPYY{vYHYYGYYYY9YqYMYYYHYQYcTYYQYYCCYYYqY}YiMEYKYYEIYYRYYYYGUYYYYYXKYUYYYAYVYYYFYYY|Y>YYYYYYQYYAY3YYYqIYYYRhYY=YYYXYYKBYYYPPH?YXRYY\YYMYQQYSYYYYYPYYQPYYYYJYYYKYYYYYWYYYYQSYYYLYYOYYYXJYTYYYYYYYYYYYYAYYXIYYLYOYNMSOTYYYYYYYRYPMYKIYYYYNYYYYYYYYYRYYKYYYOYYVRYQYYWYYYYOYOYSOYYYPYRYNSYYFMYYWUYYYFLYIYQPGYIMYYLPYYRTYJYYMPZYYYYYYYNYZOYYYVYIYYYUYYYPYYYYYYYYTYYPYLYYYSKYYYMIKYYPYYY_YYHhYYYI]KOYoHYYWYYYYEvYQYYYYY}YYHRYYYYEXYYNYYYYYGYXXYtEXYY?YYSYYYW{YWYYYYYYYYYYYYAYY}EYYEYbY@?d|}YYYYYWYjYVQYGNYYYYSYYYYYYYYY?YYWYYYvYYNDYUYYWYYYYCYLYTDYYYyYDYFBYYNLYYoZYYYCOYYYH|gYFRYYBeYYBEYPYYIvZYYYYYYXuY^DYYYaY7YYYoYYYPYrYYYYYYYYYwYFY48YYWJYYjSYYYAPYIY=lYKJYYL]YYBAYLYYAYYYYYYYRpYTEYYYYY9YYY|YYYHY_YYYYYY>YYeYbYYY9CYYYu9HYYaYYY?YYYYYUYKYREYSbYYYY\YYYYYYYYYFYY>YYY=YY9cYQYYDYYYYRY>YCMYYYEYY1yYYWYYIxYYY{eYKYSLwYz>YYq=YYyDYBYYYYYYYYSYYlY/YYYFYYYP0GYYHYYYZYYOMYYYK]MQYWUYYkYYXYOGYJYYYYYdYYGPYYYYHYYYFYYYYYLYYZYTMYYYCYYUYYYYIYZYYYYYYYYYYYY;YYYLYYRYOYcSXVZYYYYY[Y_YLSYTJYYYYNYYYYYYYYYTYY\YYYXYY[KYSYYbYYYY^YDYXMYYYNYGYXOYYIKYYZMYYYEDYQYFTJYOLYYHRYYLLYKYYSXXYYYYYY[NYWBYYYWYPYYY\YYYGYbYYYYYY`YYZYbYYYUKYYYWJRYYZYYYdYYFVYYYHYYbYYOY[MYpYYYYYbYYcTYYYYFYYYGYYYYYeYYXYNcYYYIYYHYYYY\YlYYYYYYYYYYYY;YYT\YYZYNYcfaZiYYYYYWY\YFKY?HYYYY`YYYYYYYYYfYYJYYYTYYg[YgYYaYYYY_YPY`gYYY`YDY`\YYL>YYndYYYY^TKYJRYYkqYYM^YCYYHR\YYYYYYPTYiBYYYhYPYYYHYYYEYvYYYYYYbYY[YeYYY_HYYYZTNYYcYYY`YY=hYYYB{12Y|CYYfYYQYFrYTYYYYYYYTFYYYY=XYYEYYYYYQYYWYFXYYBYYIYYYVY\YYYYYYYYYYYYDYY?YYIYwYIH||YYYYYTYYMEYD?YYYYPYYYYYYYYYIYYSYYYYY[HY[YYJYYYY[Y6YTKYYYY>YGBYYRHYYnPYYY8FYEYExYWHYYTqYYJCYPYY|YYYY*RYYVYYY5YYGYYYKQY@=YY>YYGY;rXYYYYY?YY1XYYYYQWYYzYYYYYAYYXYPWYYYYHYYYT2Y?YYYYYYYYYYYYYYBYYY9Y6F<95YYYYYUY4YbSYEYYYYpYYYYYYYXY9YY:YYYCYY1xY@YY-YYYYCYGY8EYYY2YY4YYLYYDYYYYLY~;YLYY3YYOY7YYE?TYYYYYXC7Y6SYYYJYYYYSYYY@Y7YYYYYY:YYfY-YYY/}YYY<.=YYCYYY?YY?MYYYFjAYcY6>aVYYYYYXYiY:>Y?4YYYY5YYYYYYYYY:YYEYYYpYYC-YBYYTYYYYNYFY1+YYYzYOY59YYYYVWYYYYOXYYxYYYYYmYXYYDXYYXYYMYYYWKYqYYYYYYYYYYYYgYYMYYlY;Y^VRKLYYYYYXYdYq=YRYYYYYYYYYYYXYaYYDYYYOYYKYVYY[YYYYcYSYXjYYY;YaYqYY}FYYWYYY|tYTYY_YlYYnYYhgYFYY^SXYYYYYYMMYUDYYYiYYYYPYYYMYcYYYYYY|YYYNYYY]pYYYeRrYY\YYYYYSKKYYYYYZYQYKBYWOYYYHYYOYYYXYYSQYTYYWYYYYRYHYQRYYY@YHYMNYYDEYYXIYYY?JYKYUO8YBNYYBNYY6OYLYYGIYYYYYYYU@YVDYYYTYAYYYCYYYEYPYYYYYYRYYYYYxYWYYYYYNYYmnYYYYnYYYbXYYYYLYYXYQWXYYIYYfYYYYRYPYYYYYYYYYYYYJYYrwYYPYTYwrRYpYYYYYWY\YqkYohYYYYsYYYYYYYXYYYvYYYaYYwYVYYGYYYYOYlYkdYYY=Y_YrbYYOqYYVNYYY}pYyYrTLYTYYVQYYYgYeYYqXVYYYYYXqSYY|YYYTYlYYYIYYYmYPYYYYYYRYYRYXYYYrMYYYUaYYRYYYYY9dYYYI$;BYqLYG8YYYYpYYYYYYYXYyYYKYYY;YYpxYYYtYYYYY?YnYYY3YAYp|YYN@YYhYYY?0Y7Y+/YXZYYYYHY2YY?/YYYYYYY@#Yk=YYY|YyYYY6YYYIYYYYYYYYYBYaYYY?YYY-dYY~YYY=YYFYYYYVmQAYTVYYrYYXYJ_Y=YYYYYeYYFPYYYYMYYYGYYYYY[YYZYZJYYY;YYUYYYYsYHYYYYYYYYYYYYDYY{GYYHYPYKCkvJYYYYY[YfYMRYGDYYYYVYYYYYYYYYNYYNYYYxYY6LYOYCYYWh_YYYYYYQUY:LYYY>bSYYYYYXYXYLOYEEYYYYKYYYYYYYYYEYYXYYYxYYAQY>YYPYYYY2YIYS@YYYpY9YQDYYQIYYH@YYYEJYVYA{iYGOYYHfYY9>YFYY?m[YYYYYXQ|Y2FYYYDYCYYYoYYYHYLYYYYYYAYYmY_YYYYyJYYNmYYSAYYY[Y\YZq_Y:gYYHBYYHFYnYYxaXYYYYYY|^YFeYYYYYUYYYuYYYYYaYYYYYYEYY`YOYYYkYS9YYYY=YYYYYYYYYMYY?YYYDYY\BYOYY\YYYYQYOYJJYYYEYPYHIYY8HYYWCYYYE9YJY>DAYG>YY>YYLYYYMYYNRYYYX^HFYhKYYkYYRYN_YAYYYYYmYYELYYYYGYYYIYYYYYBYYYYhKYYYFYYKYYYZmYMYYYYYYYYYYYYIYYrEYY>Y]YBM`lWYYYYYYYhYOOY?NYYYYLYYYYYYYYY>YYPYYYkYYDIYMYYYYYYYKYMYCSYKYYG4YYY>AYHY9\bYAIYYYYQYcYYYENYYYn9>YYFYYY6YYKEYYYI4RmY2NYYoYYKY2=XHYYYYY6YYCEYYYYGYYYZYYYYYOYYZY8EYYYeYYNYYYZ0YDYYYYYYYYYYYYlYY7BYYOY9Y#NG;@YYYYY[Y:Y1RYLEYYYY,YYYYYYYYY6YY?YYY=YYB'Y@YY^YYYYPYRY?@YYY1Y`Y:@YYQFYYCTYYY)3YEY89PYL@YY`8YYcJYAYYF:ZYYYYYY@-YASYYYEYMYYY;YYYIYDYYYYYYEYMaYYnYYJYL9XLYYYYYMYYBKYYYY>YYYNYYYYYRYYZYOIZYY@YYTYYYZIYSYYYYYYYYYYYY9YYP>YYKYDYPJTFNYYYYY\YTYJIYNY8dYY8BYYJfYYYr?UYYYYYYxFYdYYYCYJYYY9YYYYMYYYYYYPYYDYQYYYu8YYYFr`YYYYYPs_Y=YYWYYYsYCYYYYYYYYccYYYYvZYYgYYYYYYYcYY0YsYksGWfYYYYY[YBYmYgyYYYYvYYYYYYYYYxYYhYYYKYYs~YDYYRYYYYBYzYbHYYYCYCYjPYY5mYYCHYYYeY~Yf>4YGyYYD6YY8YYsYYGUYYYYYX}SY[YYYIYVYYYBYYYrYQYYYYYYLYY>YAYYYv4YYYOzYYJYYYQYYEGYYY=HY;YPQYY[YYJYHCYNYYYYYFYYRPYYYYEYYYBYYYYYVYYYYDMZYYIYYOYYYXAYVYYYYYYYYYYYYHYYJFYYLYGYKOLKPYYYYYYYMYPNYGBYYYYJYYYYYYYYYRYYGYYYAYYRHYRYYXYYYYOYNYOSYYYHYDYLLYY@DYYWEYYYYYYGHBYYQYYYTYYLDYYYNcINYMbYYjYYNYUKYRYYYYYZYYJKYYYYDYYY>YYYYYXYYYYTQYYYBYYZYYYYPYTYYYYYYYYYYYYBYYWGYYLYNYXLVPNYYYYYZYUYJIYSFYYYYQYYYYYYYYYQYYSYYYTYYYOYXYYlYYYYXYSYQRYYYTYFYZPYYMMYYTSYYYGEYVYMWMY\IYYJVYYMLYMYYCPYYYYYYYUVYSFYYYWYHYYYNYYYEYWYYYYYY[YYXYRYYYWMYYYUJMYYNYYYmYY5mYYY<,81Yg$YYpYYAY\*X}YYYYYN@DYYYYYXYNYABY]=YYYY9YYYYYYYYY>YY?YYYCYYO6YQYYXYYYYRYBYNHYYYJYiYBPYYJDYYP:YYYC@YCY4AJYO=YY@?YYZGYEYYHDWYYYYYYMQYXRYYYOYNYYYGYYYNYIYYYYYYNYYCY>YYYBQYYYLB>YYJYYYGYYERYYYOgLFYTSYYlYYRY@cYCYYYYYyYYAPYYYYBZYYRYYYYYJYXYYr@YYY?YYQYYYXeYWYYYYYYYYYYYY:YYpJYYGYTYHCPhKYYYYYYYVYTUY>IYYYYSYYYYYYYYYEYYQYYY^YYDNYKYY[YYYY:YVYYEYYY]YBY\NYYGNYYTEYYYILY[YCV]YBVYYH`YY?PYAYYNQZYYYYYYZoYA@YYYVYIYYYZYYYJYKYYYYYYDYY]YgYYYKCYYY`EEYYUYYYYY]aYYYc_0gYm2YYbYYCY ZxYYYYYYY$8XYYY'WYYRYYYYY;YYZYnVYYYY,YYYTY=YYYYYYYYYYYYYY]1YYcYsY ]bYYYYYPYuY63Y(YYYYYTYYYYYYYXYYY-YYYYY'?Y/YYYYYYTY*Y1)YYYYYWYY2YY[YYY^aY.Y0Y&YYpgYY Y;YY'TYYYYYW5YSYMHGYEHYY>QYY@PYQYYIDXYYYYYZ=NYPWYYYNYYPNTENYYYYYZYOYOPYHGYYYYSYYYYYYYYYRYYKYYYMYYTLYSYY[YYYYPYIYRRYYYYYYJCHYYTYYYUYYLAYYYB>L>YKPYYbYYEYD;YRYYYYYEYYFIYYYY>YYYGYYYYYXYYYYFRYYYYYYRYYYWHYQYYYYYYYYYYYYIYY?BYYPY>YCDKIKYYYYYYYNYJBYK@YYYYCYYYYYYYYYLYYDYYYAYYQEYYYYhYYYYUYLYLKYYYLYMYGNYYKCYYSKYYYFHYMYMAIYHEYYEPYYHJYCYYBAZYYYYYYNOYWKYYYWY?YYY?YYYEYOYYYYYYTYYGYJYYYSEYYYILCYYRYYY6YY)IYYY7C>YMRYY{YYRY0vY2YYYYYYY=MYYYY4YYY@YYYYYPYXXY,YYYPYYNYYYUYDYYYYYYYYYYYY@YYu6YY0YqY;=cYYYYYYVYTYPJY:8YYYY:YYYYYYYYYLYY[YYYqYY=GYSYYCYYYYYYYCCCIYODYYGYYKYGMYOYYYYYHYYILYYYYYmPYYeYYVYItY[YYYYYYYRPYYYYMXYYLYYYYYDYYXYkKXYYOYYIYYYWYIYYYYYYYYYYYYHYYyCYY=YcYYYYYYYYYYXYYEYYYEYYN;YWYYxYYYYOY|Y-RYYYQY?YYYY>WYYVYYYYYAYYZYrkWYY~YYYYYYFYYYYYYYYYNYYQYYYPYYWIYXYYvYYYYRYZYMLYYYPYYYYYYYYENYYYYKYYY?YYYYYJYYYY>YYYJYYRYYYY~Y5YYYYYYYYYYYY7YYd>YY5YcY<=X5YYYYYYYLYEDY@FYYYYHYYYYYYYYYIYYKYYYqYY3LYGYYdYYYY=YZYFKYYY95YYCYYYVYYNAYYY>EH=YKPYYkYYFYG@XMYYYYYIYYELYYYYHYYYEYYYYYVYYXYFOZYY8YYRYYY[AYQYYYYYYYYYYYY>YYIDYYAYEYHPTNOYYYYY[YMYJFYODYYYYAYYYYYYYYYQYYNYYYDYYVGYKYYlYYYYQYKYKJYYYIYIYFPYY<=YYUHYYY7EYCYJM@YDGYYGPYYDJYDYYCJ[YYYYYYPBYQNYYYUYBYYYHYYYHYOYYYYYYUYYMYKYYYP>YYYJJFYYRYYYWYYGHYYYHWHAYQTYYhYYKYPFYNYYYYYQYYFKYYYYDYYYRYYYYYSYYYYPKZYY9YYQYYYZOYUYYYYYYYYYYYY6YYXDYYHYDYOMONOYYYYY\YLYWRYLEYYYYIYYYYYYYYYGYYLYYYNYYRPYPYY^YYYYRYZYVOYYYIYHYKIYYEHYYWOYYYDNYPYRP@YJNYYMWYYPUYFYYWL[YYYYYYYKYRCYYYTYKYYYKYYYDYRYYYYYYTYYUYWYYYSIYYYQLIYYRYYYeYY9^YYYBAF2Yo@YY`YYFYb?YiYYYYYhYYkPYYYYEYYY?YYYYYpYYXYN^YYYBYYKYYYXmYzYYYYYYYYYYYYCYYQ^YY]YIY^gtTjYYYYYVYaYEGY4:YYYY[YYYYYYYXYoYYMYYY\YYdTYYY]YYYYuYQYZkYYY\YDY_ZYYMCYYygYYY@>YDYdVTYOVYYi}YYJYYAYYH`_YYYYYYOdYAYYYvYPYYYWYYYBYYYYYYYaYY[YsYYYd@YYYTTRYYvYYYRYYe?YYY_igYAYYHYYyYyYOYYYYYYYYpXYYYYtXYYiYYYYYEYYXYlLXYYJYYgYYYZSYPYYYYYYYYYYYYLYYssYYBYmYevNdmYYYYYWYAYu^YqtYYYYzYYYYYYYYYyYYtYYYXYYyxYTYYGYYYYJYlYe\YYYYYTYrWYYKhYYMLYYYmYwYfUSYPsYYJJYYZVYsYYpNXYYYYYXgY_YYYAY_YYYKYYYpY@YYYYYYWYYNYOYYYgDYYYQftYYHYYYP[YYYYYYSY9YYWAYYY;BYHYKC8YAKYY>GYY@CYFYYICXYYYYYYNFYQMYYYSYBYYY@YYYMYLYYYYYYNYYHY7YYFYYYY5YHYL6YYYqY9YIAYYKLYYU8YYY?NYRY8slYDPYYEcYY:9YPYYKtZYYYYYXRrY>CYYYGY=YYY}YYYKYHYYYYYY@YYaY`YYY1HYYY~9FYYKYYY3YYwYYYYYYDYY KYYYFYFY/"YYIYY'4YYYwPYYM0NYJRYY#.YYHyYYY5UYYYYYYMiYCYYY7YZYYY(YYYY?YYYYYY&YY:YEC?YHSYY|YYOY[YYGYYNYYY]@YHYYYYYYYYYYYYDYYB6YYAYEYDC^GAYYYYY[YUY8BYL6YYYY8YYYYYYYYY@YYCYYYNYYP9YEYY|YYYYeYOYBEYYYJYNY?LYYGDYYNZYY8YYqYYY[NYOYYYYYYYYYYYY>YYv_YYwYYGIYYYavYzYXG>YJkYYDKYYBeYpYYHUYYYYYYqRYaYYYLYXYYYFYYYwY@YYYYYYXYYKY=YYYnLYYYSxjYYDYYYPYYCCYYYYYSNYYYYFYYYBYYYYYPYYYYB=ZYYAYYIYYYZ@YRYYYYYYYYYYYYPYYTQYYJYIYOSKAPYYYYY[YNYTUYCJYYYYJYYYYYYYZYMYYKYYYDYYPIYRYY_YYYYQYTYMRYYY9YFYSJYYKKYYTFYYY>IYVYTM:YLKYYIGYYAFYEYYKMZYYYYYZQEYQGYYYQYFYYYBYYYCYPYYYYYYLYYEYRYYYPHYYYCTGYYLYYYdYYGpYYYMd>BY|EYYZYYWYJxYXYYYYYuYYPLYYYYGXYYKYYYYYMYYXYjMYYYAYYKYYYWYUYYYYYYYYYYYYCYY2YY@YkY@Mr|YYYYYUY}YLHYLEYYYYPYYYYYYYYYAYYOYYYYY^AYNYYHYYYYTYAY@JYYYYBY09YYULYYw_YYYBMYIYEdYGFYYLaYYCPYQYYEYYYYYYYQgYjEYYYcY5YYYYYYRYxYYYYYYPYYoYmYYY>8YYYxAKYYgYYYEYYp!YYYkwfXYD|YYIYYwYqnYMYYYYYNYY`gYYYYoYYYgYYYYY0YYYYOJYYYIYYdYYYWEYBYYYYYYYYYYYY?YYptYY@YPYilLGdYYYYYWYKY|fYtmYYYYhYYYYYYYYYpYYtYYYUYYmuYEYYLYYYY5YnYuIYYY?Y]YcZYYMtYY>FYYYxxYzYgOMYH}YYIMYYQWYmYYKUYYYYYXIYIwYYY>Y_YYYGYYYmYAYYYYYYKYYGY>YYYgLYYYUS{YYHYYY=YY<:YYY9@;Y-jYYYYEY7gY:YYYYYYYBPYYYYKXYY;YYYYYGYYXY0YYYJYYRYYYZY0YYYYYYYYYYYY?YYd6YY1YpY63T.YYYYYYYBYMCY>9YYYY2YYYYYYYZYGYYPYYY|YY2BYLYY[YYYYFY`YH;YYYxY%YK>YYYYY0YYJ/YUYY=YYYYTYCYFZYYYAYvYCAYYV:YYOYJYY=?RYYYYYYQFYMIYYYOY^YYYCYYYEYCYYYYYYFYY%Y:YYYFZYYY:>;YYBYYYVYYP;YYYEDZOBYYYYY\YRYBFYSAYYYY>YYYYYYYYYEYY?YYYGYYLDYOYYYYYYUYYY@LYYYQYEYYYY?GYNYEDLYGHYYAQYYARYCYYKDZYYYYYYLMYYNYYYTY7YYYEYYYKYSYYYYYYQYYQYJYYYPCYYYOSHYYRYYYHYYP2YYY6+MAYHBYYeYYEY>)XAYYYYY>YY2CYYYYFYYYRFBYYYYYWYJYGYL>YY;FYYP=YAYYFFYYYYYYYBHYVQYYYPYIYYYAYYYOYJYYYYYYKYY4Y2YYYFJYYYIK?YYLYYYOYYKfYYYS`BMYeHYY^YYYY@wYGYYYYYYYBQYYYYHYYYJYYYYYOYYXYzPYYYDYYKYYYWYOYYYYYYYYYYYYHYYv;YYBYkY7EgxeYYYYYVYnYINYELYYYYKYYYYYYYYY7YYTYYY|YY@FY>YYIYYYY@YCYEBYYYxYCY<>YYXIYYbPYYY?OYKY@kYIJYYR_YYDYYi?YYYYmjkY@~YYKYYsY{dYIYYYYYOYYhoYYYYpYYY]YYYYY9YYXYJ?YYYSYYrYYY]EYDYYYYYYYYYYYY>YYabYY4YVYfq:M`YYYYYYYDYunY_uYYYYZYYYYYYYYY{YYmYYYJYYvaYCYYNYYYY/YuYs@YYYAYQYVMYYLhYYJGYYYc~YtY_@CY;mYY?CYYSOYpYYv?XYYYYYXEYTuYYY>YLYYY=YYYoYGYYYYYYFYYYYYZsdYRvYYHYYxYxmYHYYYYYNYYqbYYYYpYYYeYYYYYEYYYYVIXYYAYYcYYYXSYTYYYYYYYYYYYYGYYtcYYBYtYmoTPnYYYYYWYOY{jYuiYYYYkYYYYYYYYYsYYqYYYPYYrkYNYYQYYYYOYnYmWYYYTYFYfTYYKqYYPNYYYiyYvYbQHYLtYYIJYYFXYtYY{RUYYYYYXIYbYYYUY[YYYNYYYqYSYYYYYYXYYIY:YYYoBYYYXwtYYMYYYFYYX0YYY]K~wY@zYYXYYMY`8X7YYYYYDYYIpYYYYpYYYjYYYYYEYYZYO8ZYY.YYYYYZQYBYYYYYYYYYYYY$YYNMYY.Y[YJWF;;YYYYYYYEY`gYeYYYYSYYYYYYYYYaYY\YYYIYYQWY8YYYYYYCYY1EYYYPY+YX4YY;yYYD;YYYxXY}YE;DYBeYY,CYY+hYxYYPVYYYYYYYTYOxYYYLYAYYY@YYYYJYYYYYYAYYGYEYYYX+YYYF[cYYHYYYoYYqNYXYzMi^YiRYYOYYKYxlXoYYYYY5YYSXYYYYnXYYyXYYYYnYXWY:WYYHYYHYYYU2YbYYYYYYYYYYYYeYYUYYqY-Yt^A-?YYYYYXY^YIYbYYYYYYYYYYYXYpYYRYYY2YY]YYYYiYYYYRYbYvdYYY/Y[YYYsHYYCYYYsrY`Y@NY}YYnYYRYJYYo:UYYYYYXN:Y6MYYYKYYYYYYYYYYYYYYYYYYAYYPUYYKYKYXWLITYYYYY[YOYROYBMYYYYUYYYYYYYYY[YYXYYYMYY^SYNYYhYYYYRYMYPXYYYCYDYSSYYNGYYWSYYYPOYHYWN=YLIYYMMYYEIYDYYGLZYYYYYY\BYPIYYYWYUYYYKYYYHYTYYYYYYVYYMYYYYYWCYYYGJMYYSYYYUYY@CYYYHHTEYR`YYlYYIYN=YQYYYYYAYYDTYYYYFYYYQYYYYYRYYZYHIZYY7YYZYYYZ>YNYYYYYYYYYYYY-YYFJYYDY@YFOPCKYYYYY[YVYNIYXMYYYYGYYYYYYYYYOYYKYYYJYYRHYKYYzYYYYHYhYGGYYYBY7YIJYY@MYYTJYYYLIYTYHH@YEOYYGIYYESYJYYJGXYYYYYYWAYUFYYYVYAYYYDYYYSYPYYYYYYQYYPYQYYYU7YYYAOMYYNYYYGYYAEYYY@UJDYPUYYjYYLYI9YEYYYYYRYY?HYYYY?XYYIYYYYYNYYYYOLZYYEYYSYYYYOYKYYYYYYYYYYYYDYYP5YYHYKYOKLMKYYYYYZYPYFHYF>YYYY?YYYYYYYYYOYYJYYYSYYWEY?YYhYYYYSYKYKGYYYJYFYEGYYACYYO?YYYK@YAYDPOYHHYYYCDTPDYYYYYSYMY.OYYAYYYY3YYYYYYYYY5YYCYYYRYYG%YCYY3YYYYIY3Y?Y1YYYEMYYYP:?YYSYYYNYYS8YYY;>RLYIDYYSYY?YCCXCYYYYYHYYACYYYYFXYY?YYYYYYYZXYDPXYYlYYKYYYTPYKYYYYYYYYYYYYhYY9BYYYYLY?GJOKYYYYYVYEYG@YTYJYYAEWYYYYYYJ^YMNYYYPYPYYYCYYYIYHYYYYYYMYY0Y:YYYHUYYYKB@YYHYYYqYY-XYYYDV<0YpBYYaYYLYDTYlYYYYY{YYYLYYYYFXYYAYYYYYQYXWYdMYYYRYYAYYYXyY_YYYYYYYYYYYYCYYhGYYEYYYKKxyYYYYYUYwYIEYA;YYYYTYYYYYYYXYVYYMYYYjYYmDY{YYbYYYYrY@Y[YYYYYEYESYYQCYYoIYYY;BYGYUkzY\EYYU~YYTdYNYY@xZYYYYYYPsYuCYYYlY>YYYoYYYKYYYYYYY\YYsYxYYYZDYYYIGYYyYYY}YY'YYY5a%&Y*YYNYYMYOWYeYYYYYeYYY@YYYY2XYY0YYYYYjYYWYgXXYY9YY:YYYUxYsYYYYYYYYYYYY;YYm=YY[YbYQTiYYYYYTYY9;Y?.YYYYLYYYYYYYXY\YYKYYYYYiKY^YYEYYYYnY+YU^YYYY;YYYYYYYSYW^YYYVY`Y]yYYtMYY^zYYYy{YEYoYyYxWYY^YYz[YVYYPXUYYYYYXVXYWHYYXjYqYYYgYYYEY^YYYYYY`YYyY^YYYQoYYYbIZYYYYYYaYYU=YYYJy}_YdiYYFYY^Yy]X/YYYYYLYY}IYYYY_YYYOYYYYYQYYYYdQXYY.YY]YYYVOYsYYYYYYYYYYYY=YY[YY:YbYuvWJYYYYYVY[YMYFYYYYuYYYYYYYXYtYY{YYYCYYyxYdYYYYYYY]YpY|tYYY`Y?YaYYDfYYLWYYYVPY|Y_ZBYhYYR`YY3YyYY}EVYYYYYXzFYh}YYYOYqYYY^YYYtYPYYYYYYiYYDYBYYYs:YYYV|YYVYYYRYYYCYYYHMF@YSTYY[YYMYHAXOYYYYYPYYLOYYYYHYYYHYYYYYTYYYYCSYYYOYYQYYYWAYTYYYYYYYYYYYYHYYQEYYOYAYNNPERYYYYYYYTYRLYOCYYYYMYYYYYYYYYPYYKYYYHYYWNYPYY[YYYYRYMYOOYYYFYRYTOYYCOYYXIYYYDDYLYJKCYCMYYDFYYJMYFYYKJYYYYYYYVJYTIYYYUYLYYYIYYYKYUYYYYYYSYYDYJYYYPJYYYFACYYMYYYhYYFTYYYK:FGYe:YYPYYLYh7YwYYYYYRYYcKYYYYDXYYCYYYYYjYYXYAzXYYPYYAYYYVHYoYYYYYYYYYYYYCYYK`YYrYBYcc\P`YYYYYWY[Y;IY>CYYYY^YYYYYYYYYbYYFYYYPYYe_YlYYaYYYYpYIYacYYYHYQYjgYYVAYYfqYYY?DY?YeUDYLTYYmYYYS\YEYYFRZYYYYYYRAYgDYYYeYRYYYKYYYMYvYYYYYYvYYZYWYYY\MYYYAfQYY[YYYdYY)jYYY@=B,Yg8YYZYYKYf4YVYYYYYHYY[FYYYY7XYY6YYYYYoYYXY>hYYYSYY8YYYXcYpYYYYYYYYYYYYZYYJZYYZY?Yg`sV[YYYYYYYzY=EYP4YYYYOYYYYYYYYYbYYBYYYbYYYHYyYYaYYYYuY@YWaYYY\YNYWTYYP7YYe]YYYB-YBYcY\YdNYYnYYJ^Y7YYYojp5[YYYYYWYuY6@Y20YYYY\YYYYYYYXYnYYDYYYRYYg_Y{YYeYYYYYITn`smVx`mzsZr]z?]HS/8t|h[lbOV_\nEpZnfljlvjjIctlQjhncikbtHZVcMsszmgmP]X{~jRh_bm^Ryox[lvxoxzgyS~Qv^saog|s{t\st|itgy}rjnx_tkwZbrc[uZ|NUKvn{l}mXad`wl{vlyhqoUv}gs~vZunNymz~zzƕ~^aXrsEBClg̍a۝]do^{ozr|[}S^vn#?f_ypih]ooI{l:lk$tiPxt[7Swkm(qwrxf`I]{2me%֊QAvZtzEa_X\[zPɥytWMv[_h[1jNhMqRTdQlnARSuF]Dk|2agqz|ecl`XUosYRSNyUxYҏtSlz\b`r\FUBkPv?nhO/shGUbG|Saeb]eXUd~8Z]iUFbgZrFXDkIx;iVugh_kfjaq{pz@YTb]Ńj`Lvq|c]5\MLpR|ikV{(ZJihgÊqW}Vn{xа8saz|G~XNJI.^djBdyzl`JREn^sU_fxRRjz:i<_nw/L\`RR^nnCLkq8fqeX[mTnj}^t^gbqMu|iNv+kjiHXzcpz;q|pMCpEpAoMIx{QFfHYqgTeET\dzfux\{|jfdwztqkq~}`aSd]{qghS}tLpJySVwPxx{sjpyxuW]dPcd~`sB~yX|~c7mcp5mU\/JjNjZbngB*DkctW0*bzH{x}RY.G`}=wparwB_pTcO}b[u1}vGlJzoJkvYhr`dSqƞ~?c~mNg6Edw9~[*ZOnib{H^`kGt^rFhaŏio:txhaT_qq?GPU~}vAypYsrJ|oNę|iw\ki[ktzgvmbJtO[u|~|uPie}gos{fayw\MI~gcSsbH{sdqgzL{g~sPmzpwRhr}~Edt}~ZsPd}ws\m|]}oSikGÎYug\EhumdjuqmyRx~Kj|`V>dxdңnmXz.a̓BZntb7ivxlhF{څMxFuw=}o}TJzqV}akxbopn~z{rukl}uZausyuvx`^~jzkufx|y}lf^dg\jxvlphkpOygvgcwchbbyekyl{htQsVyFjgirYpw|^t\K[yTzjaox~]`{xp}{W]xOXhy^kv`Yud}pţi\Xkq8dzlmY]z{o]yU}fSmXlKpxfvD|vzikSzir^[Ljmw~Q~yqMqgS{aT~hygs|RkyÀmw{tvxcWJ}vz~pmV{wiwhg^{cOcm`mhu}PJJ|>|ctMzwzLz^|-vgjc;g^yXshU[hD9(n\lJAbpPpxH[gUGKtnawEmAmtBlwpjK}vVubY{yd;kVaf}mprawT`5;+p8g`owus~RWlYvX1VatVqRWrYloym~qb}`hc|mw~A{~X`jo{{rpss֛a^_rRw{T~~JxY|v{_i^q}HCoV_gDCbe|qerElg~uoam[?izZpKn|ȅ3|7PwY{Ux[p~tnAWmk~mfk|lr}su>{aGǡr{\uryċ~:]tYrpjMpfuid[u~aZ[hnvgj\qr[xpvJ]XGZvtVtzzS_MtjztpZov`mkyl{aOO{uFs^rjOVwufxo~aaa{N{I~znrwyF~cnnFhjJg~bvgykl`RiaLWZ]kKh|mJyAoVlb[ktejftxiw}i|zcfl|wuqCwvncCz]Ig{cQwdoY`j}ye}vS_yuO^s~zyphKaYnPjpĚv^mhbw`stm~lkRVmzcIb_mqxsw~Vcfz~y{h~EUblbcJqFwzd[zqrU{awwfr~p{YgmKsIyvuugxjNxVτK{gaeujqupee{tslbvoi}mtSqaKNT4O2PTIYIov!sdJipa|y\X`Pp@Tolxq~wAWtriptcZfqy\xuyuZV`i]v8uarlR{\V{`qOHuXh_~uNOtOktpXkePfSSjagazv}}hN^uPy~rhHŀgXir|oxQbPF\Ln[_VzGTr`uMjz[t~yzǁ|VnVNneoY~_^oxrdofQrphZn\[wcs|^D|y~zgvuWkibxm^NXUbig~}zR~a}lum^{}wsZdKnwcSc]^u~jjxXhpnoGQoktb^movexhZuoc`}^q~bV~gU{xcW{`}lfkp\|bzrYjqhqayp|oXv`RoyYrxqklh|leiypa]s~|^Z _W{xFenj`tzqdooQu\EYoHFtI~nJ^_v\8[Z|:MvIg^2Kp]u^YpWE^aSb{ucomDljxQd{N\pg=vdxTRE[jzQUgr^]xytDaslhQCk}wThniULNrk~Qpfwdezr1Tjirkx}ck{qUpIjxGo~H|zj}qGXtF~X[FtkT]ň^[z>jqKoUPircxvd{nSFuluur~]dd{aevLPLk`V`WnRotikZ{ap[xSdZmulmq^~+eoV}w{mbciv{f~X^QRVcborm_wKn?tqxsq}~rigS}7eRoruK[~]l[rU}g2W`}Ezmmwkmjmsj7]Yv`vwg~aeBumnKv?ro`nWG2AszWz{ia\DRgbmbp{_dJWofKiMxxUUwGWz_q__pqwU\zwttyiqzewuxLptkxWq¯thhkbxG8c]aZm[azTjmtfio|\=}aqHgSy{WkpBfx_}AsamhPLj@MGi_zMe|ZtV~Wu[jQw;J|n=LwyvlGC@M\8xv~ZjkЇbUld9vwtvjj|VgFVpIad}VuJxWein|>j~pWrXuw=ar~|lO]}bbD^uXMcz1_Y~8sh\|^ahed_]QX\j|[w}YvdhxcmK_XvSw_JKN[?L^oQxalOm`{c4\[dSZZfo}^liZtyuDc˜zn{whYd{inxynkr}DHujʍ~Ytc}}Y{p`m}tE{VxTqrzVpRWKy~Nnl]ãghh}wg}sw^hZeelj`^Mdpezv\ObzńZ`_pT}^PaknR{veo~PzR$IFLpbBm}fw_hvnTRe*RQ^lerrS~tڕPQeOqkzOng{`Ujk\@cxWYQjwV,gwdv}UvfxyjzG`zJw`lI|w}IkYh\GZzPntv]czKtPYkazUeo|gi\x~tktih`gHmxnTwxqrnkyv}dOSlIwetigVzsXrd~Y|{\c^{[Sfwl{z^jOssqsmzcOTMthd}b{ScyqD_w\NzB{Dku\IKO{Ms[ptz1_xV/z`l~I6xztinxM`^kg_Qjvmp^`x|zhpv{]|mtsvim|{cs|jzpnSbcvrTabrÍtY^n~fxm|zstdwutI|vry~|vx^wsf]Y`{}m~mz{Qgh[bfnxUXzF{MkuZn}gplZtHphnYmUW{cxdpEq\Nviq}~epmUMjtdi_Ur}q_ndImtyImxfjxoruyHhTXXr]bK[Hh}mlM9pA^^p3XIr`Z|]tumEwu_ghcmU@]:yMCqffMth|[nLbrQV`xMflJ[QzvxlP}Pe_taHŞD8hHXTzpYajz|h~Chlb|aYnfqlYflAԀifcǜgcbFSzQBbcqTtwpyMZJJi~ehpxvvhyewdžr]uVyOh[xWr{\Nda[hgfwr}]mjuQtQbmmIsSmaxk`{~`\^fUaxRlXz~{yomUIChZOiYjyXaʂaXxP?hVɉxae^^vW`:xN?xpWpzJTEО?vdyhvI}fp`eSqH~|}mmXBDkro||\Qmtu~MnjgUmqhulpOUxmg\v|zkW\tx|MHW{]xaNvUnynvmfxn{|yoD/rjs~iv^Zqgzqwq]cb_Mn)pou\]}barVdQstgKPkUvtJ(toOulgctYfT5fmȀiRYqX4OmnCa+bzob_|eVYtu{qg[}Ta{I|s}wzhG{zWvT{_tdoh~dRq\xYTHPxlgXxJr|kbn~xttmwM~hmzTmTzzn{XwuRbXd[jSL{|\m|vzhbvxGr\st_~pHãvlveq\eiklhTNugWfdhŭiu{Wȑ}wXRGNQukw_xg{ifzwvqtm}o`qi|oW}ONr[phMJvSpYz[{vRiauvn|i`|vq]lhNjyignW|thh}s{\rmhsYvalsrĔ_|M}o|\]yvdd\~}ols{vdv{poz^UndXfxvkOrj`{Powjlg}TdVekpr}cp}d[t|vwbbeMoqK{FSje~nw{dVOauG}ua}­LkXÃmmhyjSKMo~y|i`zp}Tfoucczq|TQlud{tlmtcWf_\opx[`crdyTR|uRysGWqe~{rivin\ßItbvknxx~|xF]~`qK|wWsmafq}|tŷ^]Mgonyuw\uŴRytrmIltY^~x[HvZdGgfal^iikbwNUjΨ]tIg{ihTlvjs|^p|[lXf_lQu}iphPu{j~T{sTdt\gndmu}nugkXtlwzpzq\WidnflZ`lWnjwqqj`bxwg`Jxv[zXog7]_raQKX6qfooR|jracvZO`kb}seIkv{yLubVZ\^yPntCm_UptohUrNHb|CFT_vZivzs_ZrRmqh{zsmzYjarjswpİoZqkulFWm[OardįOv~ïopPeG{XxnXImÀyoTWcfyeYolEURygSSiŁ^on|Pt{y~q{QzrnsY{^diTm}rsszuniqmL]f@f{}geipe}Ɖ_Sj|qzV}aj{ʜcwa|\mZmAfI{TpqSxa~sedKuHu|y^b7unfUagˮMuZojItYpg_a;}:aJ/kngrZ?jt}Zzỷ^`~jmTtlbWd{kq?rrGMq&FrLiMYx|N}}|V^mZnJ@~iXuxÚ`jTO{KmsaNX_TmjQjrs}ss_wkFXndsVaNty\Ysdna\|TWvY_n`YpŰ_ztiXkTerbt~tyLntLXw{{zzRg~rvfjYwhzX}CzhLŒyjcP|z{a[oijxtyiy?v^jtNa[z~}O:S,|v}oojkYSakm_VTbTvvYq|8Gjmrф:ovxWtR^oKtXwjP^0JSBkeQ]n=sm<^Vu]T][d`l`oŗbiTh`v[ː^bjdid^|Qov—{faaxovc\azKm}X^uu|pʼnmkRjZldTKtw|zVbz)elycenzhrÇqJd՚^c|]pl8jEA}jTzZ@d|v}dz\3h)iM~[?bwXTUTrw>~s?k<`wgfE[iKaX{d_ytj`{eYpldhnZ}p`q{v{|YM{\S[wuq_jc`|}vJgVY̆WuT5Ye~ccvݞ|[p~uQ\y>@Gmg7HhQQpVXppiq_pacx`UkNCveSltnjl\}C`VmLNzqAxzYZiU_VQxnV`d{Fz]Kk:yƦmtkjsmYwtDl{HvragǗyoiZqC~LR{urhHKkNet;h_X{i{`Uvi'ksu&ax:vcf~ZMpxhevytvXSib!t:KiU9xpn{kjYEgGrWOQ`f΁tqNqarzkhI^_Rm^=isSoZvRLlvvvxcybx~kaav7zUk^kn1wSasa]wj{PV}xRqfyLm]esFhRkr;BbnVzsOQ`edYkopgnHx䐊_pO`xwQ|qySmMpbg]rRKaupo~tuYhmpTxH_xsheut|wsEwky]G]UhH˄\~XWgKTlVgwwsnOpj{|~m}vsoun]dnrbqtrJ_tYiv^nŕca{HlypnogXsjmrjX`U`E{_Napzoy_wfsdojk~XkdJz]izxhodwL{]lPibj\dZzja}v`bwTeroIq|MTxZwjP]vNwƂzHvx^ZfáLp|\uxvwsf{pyLuoiyahyj~ks^fuZyQcyc{]te|r{jocZY[}rz}^sR{jx{ztcte^vpZo{utHqmQLbyxeputqYj\xRdzlx^{L9sbgdFuxupwsh}ymuIi~{ulszj~rmhlYLoPxsifgd{usSeemj{jdmtq`Ut_`aerjk}{m|ssGuXgTqOL‰jquwW^hgnFgxZm[htpe[aFy}jy|]ZsVnvZbtsc]TscP_~pPOkRUz~>Ptmr5hqwvgMmuxil]eR7unIhlo-ch}@)4v}aF/{Nif~C{jH|u}A`tqQxze[}/a:uS~Yc.pqZeXzɃ\kS`ͫ?Jin\gnJ_sW}d}}Da{vl9@Q}WDn@Aab:ugPWhCnYmxtmITlsUmk{Eiu2FRdxdgi{}lu|zh`vJv^Y^Xryjyo{|x^_lN|cu{nwSy}tjhneg]vVejYkjhFs}wYduworilK~}{KdXLSd]ǜT{||EwgNjqNSu}tn^Rkoampdc`…qTkXusijvwzt`D{ySUdm{f]rƧmyfwn}xNpxj~Kȕ^nY|lnkĒX{xx~UwNgcwMhq~jR`raEmbwpeFs[rpPjtijf`o|]mzcnP]\oHaduew[dUvkkr`{_Ukruefzuc8|pntYa]tpaa`TsDADcvcvreL[m{}RjK{tZdqçhNk[2RgbqZuoteadd|cj~b?lVdiLgXLgiljsoX2soU.~ttmdcqlz`U[Ipp||widSjqpk}u~k_OtZY}u~s_jfyrzm{jBexwwotK}lahhb]\T\of~jOoy}rwzHp}tnuva{e[b/yk{F}͢q|mMGT<}k~Jfk{d{vxm*Xzm{yw6aexKct*nspsPluXtay;nKGZYWwYs]y{t\|lL{{u}`~s{nuTqg}Wpenhp`~v]|XSt~zxyY}qYxyoqzqvv_UhZMoR|Felga{ypZdutvBzztvm{ktOCie_rfsYvYzp}nC}}|%elxhSl}łrtCoxsx{mif|~~ai~]M~Gr=G|o|?Vn-kXfvhj|eitw`]RoI`xzfDj\g_aV\Pd_^~hMm^||qU[]iynv|yrq`Xgp|ZrJ]sy}~tOv_zMmAna`ec~O{OzvјlqoUbr]rggYLk{waw|gg_efiTcJ{{YpazSvKhbrvwUmx{y|^gđvVVWimqk}gvsoKPh~vsvvkYMkUxhqNk{FRrgufQSkʼntvJ~oTkpixvh`FNtz|xyy]igNtZNuvw}FlpZamo9OA|aRT]Gxe9OrezpdU}=XYzc~L/NapnCm|]=7t~xZpK[t"xgwfKBssvV\WBqY7_HglGRh{hWXSuhRvetv}ZOwOmwfJWTkYNpx}hNONtwogleqSxÐznyuznktxxBb[w_ZbHscnYNOz6:N~y4"xAX^miZMVlZq8i2mD2a~\TQywvd^vviBR?\U7qwvj`NeoMaj{xMS>fzÑcox]\^9gřatYlUZOj`^hqφxH^_oSkqQm͜6qNZKYps|dlhpV^[cgW\d[xRtmw]Yv{He`}o^}Dzxks`{ttoUPlj`}~xv9x<~d{3OaRysFuIoMIyy|gCNiuv=bO6h+EBeln`Z_`O_g}4do<~zDWtÑlVHxS;5lAotqUvusuK[u]wJNk|Rs[j~{r~gV[NIeLyoqvjiGđgyNOvuQs[anzlzzW|}Q}I^S}ME_Cjv|f}^gP0zi:}vL~ln\h?ƕGDfXjtjmgsCzlxec~L_LwvVb`us}ninTs<tݒ{vr~q\Iw?agqįvVaNpmWtyckh>wby2?wQ^{mmfyyKtQl_B~Yo[hpaa|pPtjSZ_gcgYJ]c>dPlEWz`rKYkmwjk^ʜiea_rxyu_pXfp}_ijpjAUskurƳHrNnjmtsXeXl\yasrwj2NUzsCQpejnXx^To^{?jtsr}~j}vk:Ybgjk~iUydVs\v6QXumUcX\boi}Fkhxghdu|U|tl|w|yaOkkZyhr{qovq{hlÚTdPjKof[XzlVnPptiJMlUmLDoVhCofl~uqSQ{]{Fcov}Is~^x\^rxyWfklOyõO]NjbruUnƔ@EUXiIW^}j\ms9m~qcm]wn^¤[Vy~zgBtytZQ_X|{FXZny~OQ\_u_|pk]S}_x_WpvwWi;g㉈|QLdOnSsv4zQ^Tw8|zQ@gUYuXujWrh`_pZ<\p\pTZxk^n~vFuwA{rNihRtQ{Fpf`jlNY~b}R|ri~bju~qrhu}OatkErf_lk]UW]\wW`y_XMtsuw}luo]dipcmKs}~azaZ}~^y_g_n{M}hx_`jvvpK[av|kxtuNzorkfiXeX[cr^jak~Sldua}iJhfTlnznm|{U^~w`Zp~scn{z|WdS]jUjfNsKmkoPvohZls{BkeP}uTz}pXy`,vjc[wvsri-b:nV{X9Uy`sgs;jejJ)mk[|AU{yie@zh[_hM~iw^xqqf@}I;YWutKwl[[oG{luopgoow}X_|}u]\Eqj|Erb|~oXVU|vW[xJAZn~ouPb=aLuUtjnzsmtnP{lo|bqtg[|b]J-orZs]`K{iey]e\^y^ukdWYFKSTo|\fouALNkzrxt{b{N4V&pN~zosRu|wiqew[pnvDhşjk\bBdR|{P}tYi8%olO&^gNiOf:OUEQ{F]~Ib[[_]o|XRSkQBnIKF[ynWSgwnWiyf`W[{YK=hiEwOM>sjzlZL^~m]P\Eij`cMm7\ISrtbJybW^g5p~ky{]9ѽB}/{p|_SO[Bq-X}=wFwy[{oj~gk`xi||nGnwnolxekjgWmfZ^sNmKWovFxY[khbPg~~esՅ_vZcq8jw{hhpzyc>b|wdk>?|ktnSd`zmgo9PqP:sbeLh`yspttt|pWy}wl|ejy}}riul\?q}vnoLhqćjMb܇dYl|bIS|RhKvq\\E{FkX=dhsaWKqvӌeoc|zRRW\uxhv}plYfsxzrh`yL}Xo\jjYhz[drybxa|szMukT^Mqtr\rxlaÚlzklb}vtzltzjrxF[lpz{xrx`fq`}rojlr{~]qgmskupiezlXfu~ze~^^}xxsFTfbuIEzywa;QWqF|Fpg/VlZz6|uJkws}\HipsBI#\?pn7]r~oV*vwnZZLztjJoIqm}MSdgy~xiUQoph.s{P.^tkeN|8]JHWbX`pd:WKEmpoomx_Ga]`k>an+fhbF~|%\[YSemvgpzunLeovS^vƋpZpvbqPqSULsZ{N]or|j\w~wphdp{toUwkjsypgtatV~bjkpdivohxkxUsvmQcx{|qzJk>uJbZaWTrW~r@tjrkoVd[z~Plu}yVf~WXxlryȁRCsNz9k q^qriSPCCRHeEjx:esz5az[m~zN]jzjoxW|`upkmuZi]|rQ\\ORpcGQ`GqfT}~yyqgcn^nOjuBdny^a^qmşMkpfv}ei[SVAzqV+xeYpwJhhfkHTFpX>YyP"v]n8Yuqk}hkN|O[=sQae||{pQLyijnMRvA}sIZdgdv4qyZhZusQf/4bJtOuNz~?;Js{PEoEW~Tb~|.}q:i[v_~Q\rgW^@ci>]'aS`gI?[JC\yINhtlwPJ{}}dmbynWRgZYKǡUkEpJwRW^z\_8oWSl>Fs_wR]_HbmWfPd_ty}neg`:jIh\!nXUiasZkZtsudlhgwzbt?_}`bWODJNQxqw}q[kgbiwz^]hr^dqhsnbOj{5klAsap^p_skxBbpaaBsEWMyaTGhm~vIzlMlsk\q]#giXsm؜MX~czuxbvnN~pw~Hpn]~`^KakiollxD[erdvzc|lcyHwozr|]sch}lz{|lQWOz/z}Ur[3ywcm~vZO–\{qgzWartdotoOrn@D~HMn~UOY?Fzs}|fJcaVmi~hlfIoetzgeCTkVBX?qqeRNgiLTjN=As@ksnpyŲl[r[iWI[zk9dmwNs=zmezdryctm_\ou9ago|sqi}nbjkKXuwUm{z|Rc{YsepV_`rfqvƭOiu{hm]qvV{Zolu`ymc\u~{vYcweE~^]VrZmksnrfan|`v]qySLC{~Zso|f@ZKNzzsmfrjUq`LZ`c^lYчCdRpAZIEem|JvO[WOF\y{dciixyS`:S{Nz{v|Bti\qmgs>\|^}w_wwPugpEpCT1Iuh`IgWcglp}jZq_ks^UTjǟWrolevgeh|Q–\m}OyfnVxbsi«eT~PhSn_ȋj|^UuYxirVHqpse\[cY`E^sysejhltouultiela`bqShIaNwz^H{W~vvtcixj]QmpjqbueJmk`^k`yfstly{Ynmik`{xË[`nIfVnyT[wbcxPt|v|x|&NVaszJvpCnIk|ooym4XJ\t]hZxOq>o]lFNQn=kfiZnvq}qT]y{e~dhkrhyLkjjjIqdRKojzTptzf_d]iYi|KwejvPcyWiElmnp7asqQvJWxyJdMlzYsw~bvJsjsS]|x=Sǁiz/{>JwYVPcztq~lpaasy{DVw_UmwētRKw{u`e|Odk~\yamQNxqjMN`nbe\wrslN|Smsbƒx\mjy\Đ]fm~tj\yXRKzaRn}fzNnXlxZOu^cbbxQwVIgqrXtfo`H]r~eaz[u{ggjSvz}bMxvvQPLiSgTJmaujnbL8WyTyVQhJiZrdbZn^*zuoO*rn_uxSeY^b|#YPnm?h֧@SfΎQwyY7r0~uTUmMH[[h*ZHAz[t[e߰zugo[؊ٞД^TSgrmPPqGvjΆҒp|mCoӷYT9:ɎPu٢:^]irqځة$[_lǐzrϽwpû}"f}МBnʜ<2JudzQvedI>R}ݨ@tH96rBɷQbfxϲzNłG[T|ý|5rƦAf^乶rǒ[բrfg~oӷ/RG~^޾8\b}Тiv?ʑ{x(h-}vckt41nj˖ґFThdNrv{JǎLBwRɯGpWuaYtˏNwwoی^|N`\E_ӄ߀RYƬ\Ɔ>tG { - clusterLogger.debug(`Process forked: [${worker.id}]`); -}); - -// Listen online workers -cluster.on('online', worker => { - clusterLogger.debug(`Process is now online: [${worker.id}]`); -}); - -// Listen for dying workers -cluster.on('exit', worker => { - // Replace the dead worker, - // we're not sentimental - clusterLogger.error(chalk.red(`[${worker.id}] died :(`)); - cluster.fork(); -}); - -// Display detail of unhandled promise rejection -if (!envOption.quiet) { - process.on('unhandledRejection', console.dir); -} - -// Display detail of uncaught exception -process.on('uncaughtException', err => { - try { - logger.error(err); - } catch { } -}); - -// Dying away... -process.on('exit', code => { - logger.info(`The process is going to exit with code ${code}`); -}); - -//#endregion diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts deleted file mode 100644 index bf5196048..000000000 --- a/packages/backend/src/boot/master.ts +++ /dev/null @@ -1,165 +0,0 @@ -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import * as os from 'node:os'; -import cluster from 'node:cluster'; -import chalk from 'chalk'; -import chalkTemplate from 'chalk-template'; -import semver from 'semver'; - -import Logger from '@/services/logger.js'; -import loadConfig from '@/config/load.js'; -import { Config } from '@/config/types.js'; -import { lessThan } from '@/prelude/array.js'; -import { envOption } from '../env.js'; -import { showMachineInfo } from '@/misc/show-machine-info.js'; -import { db, initDb } from '../db/postgre.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/meta.json`, 'utf-8')); - -const logger = new Logger('core', 'cyan'); -const bootLogger = logger.createSubLogger('boot', 'magenta', false); - -const themeColor = chalk.hex('#86b300'); - -function greet() { - if (!envOption.quiet) { - //#region Misskey logo - const v = `v${meta.version}`; - console.log(themeColor(' _____ _ _ ')); - console.log(themeColor(' | |_|___ ___| |_ ___ _ _ ')); - console.log(themeColor(' | | | | |_ -|_ -| \'_| -_| | |')); - console.log(themeColor(' |_|_|_|_|___|___|_,_|___|_ |')); - console.log(' ' + chalk.gray(v) + themeColor(' |___|\n'.substr(v.length))); - //#endregion - - console.log(' Misskey is an open-source decentralized microblogging platform.'); - console.log(chalk.rgb(255, 136, 0)(' If you like Misskey, please donate to support development. https://www.patreon.com/syuilo')); - - console.log(''); - console.log(chalkTemplate`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`); - } - - bootLogger.info('Welcome to Misskey!'); - bootLogger.info(`Misskey v${meta.version}`, null, true); -} - -/** - * Init master process - */ -export async function masterMain() { - let config!: Config; - - // initialize app - try { - greet(); - showEnvironment(); - await showMachineInfo(bootLogger); - showNodejsVersion(); - config = loadConfigBoot(); - await connectDb(); - } catch (e) { - bootLogger.error('Fatal error occurred during initialization', null, true); - process.exit(1); - } - - bootLogger.succ('Misskey initialized'); - - if (!envOption.disableClustering) { - await spawnWorkers(config.clusterLimit); - } - - bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true); - - if (!envOption.noDaemons) { - import('../daemons/server-stats.js').then(x => x.default()); - import('../daemons/queue-stats.js').then(x => x.default()); - import('../daemons/janitor.js').then(x => x.default()); - } -} - -function showEnvironment(): void { - const env = process.env.NODE_ENV; - const logger = bootLogger.createSubLogger('env'); - logger.info(typeof env === 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`); - - if (env !== 'production') { - logger.warn('The environment is not in production mode.'); - logger.warn('DO NOT USE FOR PRODUCTION PURPOSE!', null, true); - } -} - -function showNodejsVersion(): void { - const nodejsLogger = bootLogger.createSubLogger('nodejs'); - - nodejsLogger.info(`Version ${process.version} detected.`); - - const minVersion = fs.readFileSync(`${_dirname}/../../../../.node-version`, 'utf-8').trim(); - if (semver.lt(process.version, minVersion)) { - nodejsLogger.error(`At least Node.js ${minVersion} required!`); - process.exit(1); - } -} - -function loadConfigBoot(): Config { - const configLogger = bootLogger.createSubLogger('config'); - let config; - - try { - config = loadConfig(); - } catch (exception) { - if (typeof exception === 'string') { - configLogger.error(exception); - process.exit(1); - } - if (exception.code === 'ENOENT') { - configLogger.error('Configuration file not found', null, true); - process.exit(1); - } - throw exception; - } - - configLogger.succ('Loaded'); - - return config; -} - -async function connectDb(): Promise { - const dbLogger = bootLogger.createSubLogger('db'); - - // Try to connect to DB - try { - dbLogger.info('Connecting...'); - await initDb(); - const v = await db.query('SHOW server_version').then(x => x[0].server_version); - dbLogger.succ(`Connected: v${v}`); - } catch (e) { - dbLogger.error('Cannot connect', null, true); - dbLogger.error(e); - process.exit(1); - } -} - -async function spawnWorkers(limit: number = 1) { - const workers = Math.min(limit, os.cpus().length); - bootLogger.info(`Starting ${workers} worker${workers === 1 ? '' : 's'}...`); - await Promise.all([...Array(workers)].map(spawnWorker)); - bootLogger.succ('All workers started'); -} - -function spawnWorker(): Promise { - return new Promise(res => { - const worker = cluster.fork(); - worker.on('message', message => { - if (message === 'listenFailed') { - bootLogger.error(`The server Listen failed due to the previous error.`); - process.exit(1); - } - if (message !== 'ready') return; - res(); - }); - }); -} diff --git a/packages/backend/src/boot/worker.ts b/packages/backend/src/boot/worker.ts deleted file mode 100644 index 8038e2563..000000000 --- a/packages/backend/src/boot/worker.ts +++ /dev/null @@ -1,20 +0,0 @@ -import cluster from 'node:cluster'; -import { initDb } from '../db/postgre.js'; - -/** - * Init worker process - */ -export async function workerMain() { - await initDb(); - - // start server - await import('../server/index.js').then(x => x.default()); - - // start job queue - import('../queue/index.js').then(x => x.default()); - - if (cluster.isWorker) { - // Send a 'ready' message to parent process - process.send!('ready'); - } -} diff --git a/packages/backend/src/config/index.ts b/packages/backend/src/config/index.ts deleted file mode 100644 index 3e53b0003..000000000 --- a/packages/backend/src/config/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import load from './load.js'; - -export default load(); diff --git a/packages/backend/src/config/load.ts b/packages/backend/src/config/load.ts deleted file mode 100644 index 9654a4f3b..000000000 --- a/packages/backend/src/config/load.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Config loader - */ - -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import * as yaml from 'js-yaml'; -import { Source, Mixin } from './types.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -/** - * Path of configuration directory - */ -const dir = `${_dirname}/../../../../.config`; - -/** - * Path of configuration file - */ -const path = process.env.NODE_ENV === 'test' - ? `${dir}/test.yml` - : `${dir}/default.yml`; - -export default function load() { - const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/meta.json`, 'utf-8')); - const clientManifest = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/_client_dist_/manifest.json`, 'utf-8')); - const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source; - - const mixin = {} as Mixin; - - const url = tryCreateUrl(config.url); - - config.url = url.origin; - - config.port = config.port || parseInt(process.env.PORT || '', 10); - - mixin.version = meta.version; - mixin.host = url.host; - mixin.hostname = url.hostname; - mixin.scheme = url.protocol.replace(/:$/, ''); - mixin.wsScheme = mixin.scheme.replace('http', 'ws'); - mixin.wsUrl = `${mixin.wsScheme}://${mixin.host}`; - mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`; - mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`; - mixin.driveUrl = `${mixin.scheme}://${mixin.host}/files`; - mixin.userAgent = `Misskey/${meta.version} (${config.url})`; - mixin.clientEntry = clientManifest['src/init.ts']; - - if (!config.redis.prefix) config.redis.prefix = mixin.host; - - return Object.assign(config, mixin); -} - -function tryCreateUrl(url: string) { - try { - return new URL(url); - } catch (e) { - throw `url="${url}" is not a valid URL.`; - } -} diff --git a/packages/backend/src/config/types.ts b/packages/backend/src/config/types.ts deleted file mode 100644 index 78510c837..000000000 --- a/packages/backend/src/config/types.ts +++ /dev/null @@ -1,87 +0,0 @@ -/** - * ユーザーが設定する必要のある情報 - */ -export type Source = { - repository_url?: string; - feedback_url?: string; - url: string; - port: number; - disableHsts?: boolean; - db: { - host: string; - port: number; - db: string; - user: string; - pass: string; - disableCache?: boolean; - extra?: { [x: string]: string }; - }; - redis: { - host: string; - port: number; - family?: number; - pass: string; - db?: number; - prefix?: string; - }; - elasticsearch: { - host: string; - port: number; - ssl?: boolean; - user?: string; - pass?: string; - index?: string; - }; - - proxy?: string; - proxySmtp?: string; - proxyBypassHosts?: string[]; - - allowedPrivateNetworks?: string[]; - - maxFileSize?: number; - - accesslog?: string; - - clusterLimit?: number; - - id: string; - - outgoingAddressFamily?: 'ipv4' | 'ipv6' | 'dual'; - - deliverJobConcurrency?: number; - inboxJobConcurrency?: number; - deliverJobPerSec?: number; - inboxJobPerSec?: number; - deliverJobMaxAttempts?: number; - inboxJobMaxAttempts?: number; - - syslog: { - host: string; - port: number; - }; - - mediaProxy?: string; - proxyRemoteFiles?: boolean; - - signToActivityPubGet?: boolean; -}; - -/** - * Misskeyが自動的に(ユーザーが設定した情報から推論して)設定する情報 - */ -export type Mixin = { - version: string; - host: string; - hostname: string; - scheme: string; - wsScheme: string; - apiUrl: string; - wsUrl: string; - authUrl: string; - driveUrl: string; - userAgent: string; - clientEntry: string; -}; - -export type Config = Source & Mixin; diff --git a/packages/backend/src/const.ts b/packages/backend/src/const.ts deleted file mode 100644 index 6d3b9559e..000000000 --- a/packages/backend/src/const.ts +++ /dev/null @@ -1,49 +0,0 @@ -export const MAX_NOTE_TEXT_LENGTH = 3000; - -export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min -export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days - -// ブラウザで直接表示することを許可するファイルの種類のリスト -// ここに含まれないものは application/octet-stream としてレスポンスされる -// SVGはXSSを生むので許可しない -export const FILE_TYPE_BROWSERSAFE = [ - // Images - 'image/png', - 'image/gif', - 'image/jpeg', - 'image/webp', - 'image/apng', - 'image/bmp', - 'image/tiff', - 'image/x-icon', - - // OggS - 'audio/opus', - 'video/ogg', - 'audio/ogg', - 'application/ogg', - - // ISO/IEC base media file format - 'video/quicktime', - 'video/mp4', - 'audio/mp4', - 'video/x-m4v', - 'audio/x-m4a', - 'video/3gpp', - 'video/3gpp2', - - 'video/mpeg', - 'audio/mpeg', - - 'video/webm', - 'audio/webm', - - 'audio/aac', - 'audio/x-flac', - 'audio/vnd.wave', -]; -/* -https://github.com/sindresorhus/file-type/blob/main/supported.js -https://github.com/sindresorhus/file-type/blob/main/core.js -https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers -*/ diff --git a/packages/backend/src/daemons/queue-stats.ts b/packages/backend/src/daemons/queue-stats.ts deleted file mode 100644 index 1535abc6a..000000000 --- a/packages/backend/src/daemons/queue-stats.ts +++ /dev/null @@ -1,60 +0,0 @@ -import Xev from 'xev'; -import { deliverQueue, inboxQueue } from '../queue/queues.js'; - -const ev = new Xev(); - -const interval = 10000; - -/** - * Report queue stats regularly - */ -export default function() { - const log = [] as any[]; - - ev.on('requestQueueStatsLog', x => { - ev.emit(`queueStatsLog:${x.id}`, log.slice(0, x.length || 50)); - }); - - let activeDeliverJobs = 0; - let activeInboxJobs = 0; - - deliverQueue.on('global:active', () => { - activeDeliverJobs++; - }); - - inboxQueue.on('global:active', () => { - activeInboxJobs++; - }); - - async function tick() { - const deliverJobCounts = await deliverQueue.getJobCounts(); - const inboxJobCounts = await inboxQueue.getJobCounts(); - - const stats = { - deliver: { - activeSincePrevTick: activeDeliverJobs, - active: deliverJobCounts.active, - waiting: deliverJobCounts.waiting, - delayed: deliverJobCounts.delayed, - }, - inbox: { - activeSincePrevTick: activeInboxJobs, - active: inboxJobCounts.active, - waiting: inboxJobCounts.waiting, - delayed: inboxJobCounts.delayed, - }, - }; - - ev.emit('queueStats', stats); - - log.unshift(stats); - if (log.length > 200) log.pop(); - - activeDeliverJobs = 0; - activeInboxJobs = 0; - } - - tick(); - - setInterval(tick, interval); -} diff --git a/packages/backend/src/daemons/server-stats.ts b/packages/backend/src/daemons/server-stats.ts deleted file mode 100644 index faf4e6e4a..000000000 --- a/packages/backend/src/daemons/server-stats.ts +++ /dev/null @@ -1,79 +0,0 @@ -import si from 'systeminformation'; -import Xev from 'xev'; -import * as osUtils from 'os-utils'; - -const ev = new Xev(); - -const interval = 2000; - -const roundCpu = (num: number) => Math.round(num * 1000) / 1000; -const round = (num: number) => Math.round(num * 10) / 10; - -/** - * Report server stats regularly - */ -export default function() { - const log = [] as any[]; - - ev.on('requestServerStatsLog', x => { - ev.emit(`serverStatsLog:${x.id}`, log.slice(0, x.length || 50)); - }); - - async function tick() { - const cpu = await cpuUsage(); - const memStats = await mem(); - const netStats = await net(); - const fsStats = await fs(); - - const stats = { - cpu: roundCpu(cpu), - mem: { - used: round(memStats.used - memStats.buffers - memStats.cached), - active: round(memStats.active), - }, - net: { - rx: round(Math.max(0, netStats.rx_sec)), - tx: round(Math.max(0, netStats.tx_sec)), - }, - fs: { - r: round(Math.max(0, fsStats.rIO_sec ?? 0)), - w: round(Math.max(0, fsStats.wIO_sec ?? 0)), - }, - }; - ev.emit('serverStats', stats); - log.unshift(stats); - if (log.length > 200) log.pop(); - } - - tick(); - - setInterval(tick, interval); -} - -// CPU STAT -function cpuUsage(): Promise { - return new Promise((res, rej) => { - osUtils.cpuUsage((cpuUsage) => { - res(cpuUsage); - }); - }); -} - -// MEMORY STAT -async function mem() { - const data = await si.mem(); - return data; -} - -// NETWORK STAT -async function net() { - const iface = await si.networkInterfaceDefault(); - const data = await si.networkStats(iface); - return data[0]; -} - -// FS STAT -async function fs() { - const data = await si.disksIO().catch(() => ({ rIO_sec: 0, wIO_sec: 0 })); - return data || { rIO_sec: 0, wIO_sec: 0 }; -} diff --git a/packages/backend/src/db/logger.ts b/packages/backend/src/db/logger.ts deleted file mode 100644 index 22f4c6b1b..000000000 --- a/packages/backend/src/db/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logger from '@/services/logger.js'; - -export const dbLogger = new Logger('db'); diff --git a/packages/backend/src/db/postgre.ts b/packages/backend/src/db/postgre.ts deleted file mode 100644 index 94d55e431..000000000 --- a/packages/backend/src/db/postgre.ts +++ /dev/null @@ -1,256 +0,0 @@ -// https://github.com/typeorm/typeorm/issues/2400 -import pg from 'pg'; -pg.types.setTypeParser(20, Number); - -import { Logger, DataSource } from 'typeorm'; -import * as highlight from 'cli-highlight'; -import config from '@/config/index.js'; - -import { User } from '@/models/entities/user.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFolder } from '@/models/entities/drive-folder.js'; -import { AccessToken } from '@/models/entities/access-token.js'; -import { App } from '@/models/entities/app.js'; -import { PollVote } from '@/models/entities/poll-vote.js'; -import { Note } from '@/models/entities/note.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { NoteWatching } from '@/models/entities/note-watching.js'; -import { NoteThreadMuting } from '@/models/entities/note-thread-muting.js'; -import { NoteUnread } from '@/models/entities/note-unread.js'; -import { Notification } from '@/models/entities/notification.js'; -import { Meta } from '@/models/entities/meta.js'; -import { Following } from '@/models/entities/following.js'; -import { Instance } from '@/models/entities/instance.js'; -import { Muting } from '@/models/entities/muting.js'; -import { SwSubscription } from '@/models/entities/sw-subscription.js'; -import { Blocking } from '@/models/entities/blocking.js'; -import { UserList } from '@/models/entities/user-list.js'; -import { UserListJoining } from '@/models/entities/user-list-joining.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { UserGroupJoining } from '@/models/entities/user-group-joining.js'; -import { UserGroupInvitation } from '@/models/entities/user-group-invitation.js'; -import { Hashtag } from '@/models/entities/hashtag.js'; -import { NoteFavorite } from '@/models/entities/note-favorite.js'; -import { AbuseUserReport } from '@/models/entities/abuse-user-report.js'; -import { RegistrationTicket } from '@/models/entities/registration-tickets.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { Signin } from '@/models/entities/signin.js'; -import { AuthSession } from '@/models/entities/auth-session.js'; -import { FollowRequest } from '@/models/entities/follow-request.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { UserNotePining } from '@/models/entities/user-note-pining.js'; -import { Poll } from '@/models/entities/poll.js'; -import { UserKeypair } from '@/models/entities/user-keypair.js'; -import { UserPublickey } from '@/models/entities/user-publickey.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { UserSecurityKey } from '@/models/entities/user-security-key.js'; -import { AttestationChallenge } from '@/models/entities/attestation-challenge.js'; -import { Page } from '@/models/entities/page.js'; -import { PageLike } from '@/models/entities/page-like.js'; -import { GalleryPost } from '@/models/entities/gallery-post.js'; -import { GalleryLike } from '@/models/entities/gallery-like.js'; -import { ModerationLog } from '@/models/entities/moderation-log.js'; -import { UsedUsername } from '@/models/entities/used-username.js'; -import { Announcement } from '@/models/entities/announcement.js'; -import { AnnouncementRead } from '@/models/entities/announcement-read.js'; -import { Clip } from '@/models/entities/clip.js'; -import { ClipNote } from '@/models/entities/clip-note.js'; -import { Antenna } from '@/models/entities/antenna.js'; -import { AntennaNote } from '@/models/entities/antenna-note.js'; -import { PromoNote } from '@/models/entities/promo-note.js'; -import { PromoRead } from '@/models/entities/promo-read.js'; -import { Relay } from '@/models/entities/relay.js'; -import { MutedNote } from '@/models/entities/muted-note.js'; -import { Channel } from '@/models/entities/channel.js'; -import { ChannelFollowing } from '@/models/entities/channel-following.js'; -import { ChannelNotePining } from '@/models/entities/channel-note-pining.js'; -import { RegistryItem } from '@/models/entities/registry-item.js'; -import { Ad } from '@/models/entities/ad.js'; -import { PasswordResetRequest } from '@/models/entities/password-reset-request.js'; -import { UserPending } from '@/models/entities/user-pending.js'; -import { Webhook } from '@/models/entities/webhook.js'; -import { UserIp } from '@/models/entities/user-ip.js'; - -import { entities as charts } from '@/services/chart/entities.js'; -import { envOption } from '../env.js'; -import { dbLogger } from './logger.js'; -import { redisClient } from './redis.js'; - -const sqlLogger = dbLogger.createSubLogger('sql', 'gray', false); - -class MyCustomLogger implements Logger { - private highlight(sql: string) { - return highlight.highlight(sql, { - language: 'sql', ignoreIllegals: true, - }); - } - - public logQuery(query: string, parameters?: any[]) { - sqlLogger.info(this.highlight(query).substring(0, 100)); - } - - public logQueryError(error: string, query: string, parameters?: any[]) { - sqlLogger.error(this.highlight(query)); - } - - public logQuerySlow(time: number, query: string, parameters?: any[]) { - sqlLogger.warn(this.highlight(query)); - } - - public logSchemaBuild(message: string) { - sqlLogger.info(message); - } - - public log(message: string) { - sqlLogger.info(message); - } - - public logMigration(message: string) { - sqlLogger.info(message); - } -} - -export const entities = [ - Announcement, - AnnouncementRead, - Meta, - Instance, - App, - AuthSession, - AccessToken, - User, - UserProfile, - UserKeypair, - UserPublickey, - UserList, - UserListJoining, - UserGroup, - UserGroupJoining, - UserGroupInvitation, - UserNotePining, - UserSecurityKey, - UsedUsername, - AttestationChallenge, - Following, - FollowRequest, - Muting, - Blocking, - Note, - NoteFavorite, - NoteReaction, - NoteWatching, - NoteThreadMuting, - NoteUnread, - Page, - PageLike, - GalleryPost, - GalleryLike, - DriveFile, - DriveFolder, - Poll, - PollVote, - Notification, - Emoji, - Hashtag, - SwSubscription, - AbuseUserReport, - RegistrationTicket, - MessagingMessage, - Signin, - ModerationLog, - Clip, - ClipNote, - Antenna, - AntennaNote, - PromoNote, - PromoRead, - Relay, - MutedNote, - Channel, - ChannelFollowing, - ChannelNotePining, - RegistryItem, - Ad, - PasswordResetRequest, - UserPending, - Webhook, - UserIp, - ...charts, -]; - -const log = process.env.NODE_ENV !== 'production'; - -export const db = new DataSource({ - type: 'postgres', - host: config.db.host, - port: config.db.port, - username: config.db.user, - password: config.db.pass, - database: config.db.db, - extra: { - statement_timeout: 1000 * 10, - ...config.db.extra, - }, - synchronize: process.env.NODE_ENV === 'test', - dropSchema: process.env.NODE_ENV === 'test', - cache: !config.db.disableCache ? { - type: 'ioredis', - options: { - host: config.redis.host, - port: config.redis.port, - family: config.redis.family == null ? 0 : config.redis.family, - password: config.redis.pass, - keyPrefix: `${config.redis.prefix}:query:`, - db: config.redis.db || 0, - }, - } : false, - logging: log, - logger: log ? new MyCustomLogger() : undefined, - maxQueryExecutionTime: 300, - entities: entities, - migrations: ['../../migration/*.js'], -}); - -export async function initDb(force = false) { - if (force) { - if (db.isInitialized) { - await db.destroy(); - } - await db.initialize(); - return; - } - - if (db.isInitialized) { - // nop - } else { - await db.initialize(); - } -} - -export async function resetDb() { - const reset = async () => { - await redisClient.flushdb(); - const tables = await db.query(`SELECT relname AS "table" - FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) - WHERE nspname NOT IN ('pg_catalog', 'information_schema') - AND C.relkind = 'r' - AND nspname !~ '^pg_toast';`); - for (const table of tables) { - await db.query(`DELETE FROM "${table.table}" CASCADE`); - } - }; - - for (let i = 1; i <= 3; i++) { - try { - await reset(); - } catch (e) { - if (i === 3) { - throw e; - } else { - await new Promise(resolve => setTimeout(resolve, 1000)); - continue; - } - } - break; - } -} diff --git a/packages/backend/src/db/redis.ts b/packages/backend/src/db/redis.ts deleted file mode 100644 index 49f5bb2ba..000000000 --- a/packages/backend/src/db/redis.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Redis from 'ioredis'; -import config from '@/config/index.js'; - -export function createConnection() { - return new Redis({ - port: config.redis.port, - host: config.redis.host, - family: config.redis.family == null ? 0 : config.redis.family, - password: config.redis.pass, - keyPrefix: `${config.redis.prefix}:`, - db: config.redis.db || 0, - }); -} - -export const subsdcriber = createConnection(); -subsdcriber.subscribe(config.host); - -export const redisClient = createConnection(); diff --git a/packages/backend/src/env.ts b/packages/backend/src/env.ts deleted file mode 100644 index 1b678edc4..000000000 --- a/packages/backend/src/env.ts +++ /dev/null @@ -1,20 +0,0 @@ -const envOption = { - onlyQueue: false, - onlyServer: false, - noDaemons: false, - disableClustering: false, - verbose: false, - withLogTime: false, - quiet: false, - slow: false, -}; - -for (const key of Object.keys(envOption) as (keyof typeof envOption)[]) { - if (process.env['MK_' + key.replace(/[A-Z]/g, letter => `_${letter}`).toUpperCase()]) envOption[key] = true; -} - -if (process.env.NODE_ENV === 'test') envOption.disableClustering = true; -if (process.env.NODE_ENV === 'test') envOption.quiet = true; -if (process.env.NODE_ENV === 'test') envOption.noDaemons = true; - -export { envOption }; diff --git a/packages/backend/src/global.d.ts b/packages/backend/src/global.d.ts deleted file mode 100644 index 7343aa199..000000000 --- a/packages/backend/src/global.d.ts +++ /dev/null @@ -1 +0,0 @@ -type FIXME = any; diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts deleted file mode 100644 index bd9c0098b..000000000 --- a/packages/backend/src/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Misskey Entry Point! - */ - -import { EventEmitter } from 'node:events'; -import boot from './boot/index.js'; - -Error.stackTraceLimit = Infinity; -EventEmitter.defaultMaxListeners = 128; - -boot().catch(err => { - console.error(err); -}); diff --git a/packages/backend/src/mfm/from-html.ts b/packages/backend/src/mfm/from-html.ts deleted file mode 100644 index 7751bac56..000000000 --- a/packages/backend/src/mfm/from-html.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { URL } from 'node:url'; -import * as parse5 from 'parse5'; -import * as TreeAdapter from '../../node_modules/parse5/dist/tree-adapters/default.js'; - -const treeAdapter = TreeAdapter.defaultTreeAdapter; - -const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/; -const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/; - -export function fromHtml(html: string, hashtagNames?: string[]): string { - // some AP servers like Pixelfed use br tags as well as newlines - html = html.replace(/\r?\n/gi, '\n'); - - const dom = parse5.parseFragment(html); - - let text = ''; - - for (const n of dom.childNodes) { - analyze(n); - } - - return text.trim(); - - function getText(node: TreeAdapter.Node): string { - if (treeAdapter.isTextNode(node)) return node.value; - if (!treeAdapter.isElementNode(node)) return ''; - if (node.nodeName === 'br') return '\n'; - - if (node.childNodes) { - return node.childNodes.map(n => getText(n)).join(''); - } - - return ''; - } - - function appendChildren(childNodes: TreeAdapter.ChildNode[]): void { - if (childNodes) { - for (const n of childNodes) { - analyze(n); - } - } - } - - function analyze(node: TreeAdapter.Node) { - if (treeAdapter.isTextNode(node)) { - text += node.value; - return; - } - - // Skip comment or document type node - if (!treeAdapter.isElementNode(node)) return; - - switch (node.nodeName) { - case 'br': { - text += '\n'; - break; - } - - case 'a': - { - const txt = getText(node); - const rel = node.attrs.find(x => x.name === 'rel'); - const href = node.attrs.find(x => x.name === 'href'); - - // ハッシュタグ - if (hashtagNames && href && hashtagNames.map(x => x.toLowerCase()).includes(txt.toLowerCase())) { - text += txt; - // メンション - } else if (txt.startsWith('@') && !(rel && rel.value.match(/^me /))) { - const part = txt.split('@'); - - if (part.length === 2 && href) { - //#region ホスト名部分が省略されているので復元する - const acct = `${txt}@${(new URL(href.value)).hostname}`; - text += acct; - //#endregion - } else if (part.length === 3) { - text += txt; - } - // その他 - } else { - const generateLink = () => { - if (!href && !txt) { - return ''; - } - if (!href) { - return txt; - } - if (!txt || txt === href.value) { // #6383: Missing text node - if (href.value.match(urlRegexFull)) { - return href.value; - } else { - return `<${href.value}>`; - } - } - if (href.value.match(urlRegex) && !href.value.match(urlRegexFull)) { - return `[${txt}](<${href.value}>)`; // #6846 - } else { - return `[${txt}](${href.value})`; - } - }; - - text += generateLink(); - } - break; - } - - case 'h1': - { - text += '【'; - appendChildren(node.childNodes); - text += '】\n'; - break; - } - - case 'b': - case 'strong': - { - text += '**'; - appendChildren(node.childNodes); - text += '**'; - break; - } - - case 'small': - { - text += ''; - appendChildren(node.childNodes); - text += ''; - break; - } - - case 's': - case 'del': - { - text += '~~'; - appendChildren(node.childNodes); - text += '~~'; - break; - } - - case 'i': - case 'em': - { - text += ''; - appendChildren(node.childNodes); - text += ''; - break; - } - - // block code (

)
-			case 'pre': {
-				if (node.childNodes.length === 1 && node.childNodes[0].nodeName === 'code') {
-					text += '\n```\n';
-					text += getText(node.childNodes[0]);
-					text += '\n```\n';
-				} else {
-					appendChildren(node.childNodes);
-				}
-				break;
-			}
-
-			// inline code ()
-			case 'code': {
-				text += '`';
-				appendChildren(node.childNodes);
-				text += '`';
-				break;
-			}
-
-			case 'blockquote': {
-				const t = getText(node);
-				if (t) {
-					text += '\n> ';
-					text += t.split('\n').join('\n> ');
-				}
-				break;
-			}
-
-			case 'p':
-			case 'h2':
-			case 'h3':
-			case 'h4':
-			case 'h5':
-			case 'h6':
-			{
-				text += '\n\n';
-				appendChildren(node.childNodes);
-				break;
-			}
-
-			// other block elements
-			case 'div':
-			case 'header':
-			case 'footer':
-			case 'article':
-			case 'li':
-			case 'dt':
-			case 'dd':
-			{
-				text += '\n';
-				appendChildren(node.childNodes);
-				break;
-			}
-
-			default:	// includes inline elements
-			{
-				appendChildren(node.childNodes);
-				break;
-			}
-		}
-	}
-}
diff --git a/packages/backend/src/mfm/to-html.ts b/packages/backend/src/mfm/to-html.ts
deleted file mode 100644
index bcb5c86a3..000000000
--- a/packages/backend/src/mfm/to-html.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-import { JSDOM } from 'jsdom';
-import * as mfm from 'mfm-js';
-import config from '@/config/index.js';
-import { intersperse } from '@/prelude/array.js';
-import { IMentionedRemoteUsers } from '@/models/entities/note.js';
-
-export function toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMentionedRemoteUsers = []) {
-	if (nodes == null) {
-		return null;
-	}
-
-	const { window } = new JSDOM('');
-
-	const doc = window.document;
-
-	function appendChildren(children: mfm.MfmNode[], targetElement: any): void {
-		if (children) {
-			for (const child of children.map(x => (handlers as any)[x.type](x))) targetElement.appendChild(child);
-		}
-	}
-
-	const handlers: { [K in mfm.MfmNode['type']]: (node: mfm.NodeType) => any } = {
-		bold(node) {
-			const el = doc.createElement('b');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		small(node) {
-			const el = doc.createElement('small');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		strike(node) {
-			const el = doc.createElement('del');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		italic(node) {
-			const el = doc.createElement('i');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		fn(node) {
-			const el = doc.createElement('i');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		blockCode(node) {
-			const pre = doc.createElement('pre');
-			const inner = doc.createElement('code');
-			inner.textContent = node.props.code;
-			pre.appendChild(inner);
-			return pre;
-		},
-
-		center(node) {
-			const el = doc.createElement('div');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		emojiCode(node) {
-			return doc.createTextNode(`\u200B:${node.props.name}:\u200B`);
-		},
-
-		unicodeEmoji(node) {
-			return doc.createTextNode(node.props.emoji);
-		},
-
-		hashtag(node) {
-			const a = doc.createElement('a');
-			a.href = `${config.url}/tags/${node.props.hashtag}`;
-			a.textContent = `#${node.props.hashtag}`;
-			a.setAttribute('rel', 'tag');
-			return a;
-		},
-
-		inlineCode(node) {
-			const el = doc.createElement('code');
-			el.textContent = node.props.code;
-			return el;
-		},
-
-		mathInline(node) {
-			const el = doc.createElement('code');
-			el.textContent = node.props.formula;
-			return el;
-		},
-
-		mathBlock(node) {
-			const el = doc.createElement('code');
-			el.textContent = node.props.formula;
-			return el;
-		},
-
-		link(node) {
-			const a = doc.createElement('a');
-			a.href = node.props.url;
-			appendChildren(node.children, a);
-			return a;
-		},
-
-		mention(node) {
-			const a = doc.createElement('a');
-			const { username, host, acct } = node.props;
-			const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host);
-			a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`;
-			a.className = 'u-url mention';
-			a.textContent = acct;
-			return a;
-		},
-
-		quote(node) {
-			const el = doc.createElement('blockquote');
-			appendChildren(node.children, el);
-			return el;
-		},
-
-		text(node) {
-			const el = doc.createElement('span');
-			const nodes = node.props.text.split(/\r\n|\r|\n/).map(x => doc.createTextNode(x));
-
-			for (const x of intersperse('br', nodes)) {
-				el.appendChild(x === 'br' ? doc.createElement('br') : x);
-			}
-
-			return el;
-		},
-
-		url(node) {
-			const a = doc.createElement('a');
-			a.href = node.props.url;
-			a.textContent = node.props.url;
-			return a;
-		},
-
-		search(node) {
-			const a = doc.createElement('a');
-			a.href = `https://www.google.com/search?q=${node.props.query}`;
-			a.textContent = node.props.content;
-			return a;
-		},
-
-		plain(node) {
-			const el = doc.createElement('span');
-			appendChildren(node.children, el);
-			return el;
-		},
-	};
-
-	appendChildren(nodes, doc.body);
-
-	return `

${doc.body.innerHTML}

`; -} diff --git a/packages/backend/src/misc/acct.ts b/packages/backend/src/misc/acct.ts deleted file mode 100644 index c32cee86c..000000000 --- a/packages/backend/src/misc/acct.ts +++ /dev/null @@ -1,14 +0,0 @@ -export type Acct = { - username: string; - host: string | null; -}; - -export function parse(acct: string): Acct { - if (acct.startsWith('@')) acct = acct.substr(1); - const split = acct.split('@', 2); - return { username: split[0], host: split[1] || null }; -} - -export function toString(acct: Acct): string { - return acct.host == null ? acct.username : `${acct.username}@${acct.host}`; -} diff --git a/packages/backend/src/misc/antenna-cache.ts b/packages/backend/src/misc/antenna-cache.ts deleted file mode 100644 index dcf96c161..000000000 --- a/packages/backend/src/misc/antenna-cache.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Antennas } from '@/models/index.js'; -import { Antenna } from '@/models/entities/antenna.js'; -import { subsdcriber } from '../db/redis.js'; - -let antennasFetched = false; -let antennas: Antenna[] = []; - -export async function getAntennas() { - if (!antennasFetched) { - antennas = await Antennas.find(); - antennasFetched = true; - } - - return antennas; -} - -subsdcriber.on('message', async (_, data) => { - const obj = JSON.parse(data); - - if (obj.channel === 'internal') { - const { type, body } = obj.message; - switch (type) { - case 'antennaCreated': - antennas.push(body); - break; - case 'antennaUpdated': - antennas[antennas.findIndex(a => a.id === body.id)] = body; - break; - case 'antennaDeleted': - antennas = antennas.filter(a => a.id !== body.id); - break; - default: - break; - } - } -}); diff --git a/packages/backend/src/misc/before-shutdown.ts b/packages/backend/src/misc/before-shutdown.ts deleted file mode 100644 index 93ac7a1f3..000000000 --- a/packages/backend/src/misc/before-shutdown.ts +++ /dev/null @@ -1,94 +0,0 @@ -// https://gist.github.com/nfantone/1eaa803772025df69d07f4dbf5df7e58 - -'use strict'; - -/** - * @callback BeforeShutdownListener - * @param {string} [signalOrEvent] The exit signal or event name received on the process. - */ - -/** - * System signals the app will listen to initiate shutdown. - * @const {string[]} - */ -const SHUTDOWN_SIGNALS = ['SIGINT', 'SIGTERM']; - -/** - * Time in milliseconds to wait before forcing shutdown. - * @const {number} - */ -const SHUTDOWN_TIMEOUT = 15000; - -/** - * A queue of listener callbacks to execute before shutting - * down the process. - * @type {BeforeShutdownListener[]} - */ -const shutdownListeners: ((signalOrEvent: string) => void)[] = []; - -/** - * Listen for signals and execute given `fn` function once. - * @param {string[]} signals System signals to listen to. - * @param {function(string)} fn Function to execute on shutdown. - */ -const processOnce = (signals: string[], fn: (signalOrEvent: string) => void) => { - for (const sig of signals) { - process.once(sig, fn); - } -}; - -/** - * Sets a forced shutdown mechanism that will exit the process after `timeout` milliseconds. - * @param {number} timeout Time to wait before forcing shutdown (milliseconds) - */ -const forceExitAfter = (timeout: number) => () => { - setTimeout(() => { - // Force shutdown after timeout - console.warn(`Could not close resources gracefully after ${timeout}ms: forcing shutdown`); - return process.exit(1); - }, timeout).unref(); -}; - -/** - * Main process shutdown handler. Will invoke every previously registered async shutdown listener - * in the queue and exit with a code of `0`. Any `Promise` rejections from any listener will - * be logged out as a warning, but won't prevent other callbacks from executing. - * @param {string} signalOrEvent The exit signal or event name received on the process. - */ -async function shutdownHandler(signalOrEvent: string) { - if (process.env.NODE_ENV === 'test') return process.exit(0); - - console.warn(`Shutting down: received [${signalOrEvent}] signal`); - - for (const listener of shutdownListeners) { - try { - await listener(signalOrEvent); - } catch (err) { - if (err instanceof Error) { - console.warn(`A shutdown handler failed before completing with: ${err.message || err}`); - } - } - } - - return process.exit(0); -} - -/** - * Registers a new shutdown listener to be invoked before exiting - * the main process. Listener handlers are guaranteed to be called in the order - * they were registered. - * @param {BeforeShutdownListener} listener The shutdown listener to register. - * @returns {BeforeShutdownListener} Echoes back the supplied `listener`. - */ -export function beforeShutdown(listener: () => void) { - shutdownListeners.push(listener); - return listener; -} - -// Register shutdown callback that kills the process after `SHUTDOWN_TIMEOUT` milliseconds -// This prevents custom shutdown handlers from hanging the process indefinitely -processOnce(SHUTDOWN_SIGNALS, forceExitAfter(SHUTDOWN_TIMEOUT)); - -// Register process shutdown callback -// Will listen to incoming signal events and execute all registered handlers in the stack -processOnce(SHUTDOWN_SIGNALS, shutdownHandler); diff --git a/packages/backend/src/misc/cache.ts b/packages/backend/src/misc/cache.ts deleted file mode 100644 index e5b911ed3..000000000 --- a/packages/backend/src/misc/cache.ts +++ /dev/null @@ -1,80 +0,0 @@ -export class Cache { - public cache: Map; - private lifetime: number; - - constructor(lifetime: Cache['lifetime']) { - this.cache = new Map(); - this.lifetime = lifetime; - } - - public set(key: string | null, value: T): void { - this.cache.set(key, { - date: Date.now(), - value, - }); - } - - public get(key: string | null): T | undefined { - const cached = this.cache.get(key); - if (cached == null) return undefined; - if ((Date.now() - cached.date) > this.lifetime) { - this.cache.delete(key); - return undefined; - } - return cached.value; - } - - public delete(key: string | null) { - this.cache.delete(key); - } - - /** - * キャッシュがあればそれを返し、無ければfetcherを呼び出して結果をキャッシュ&返します - * optional: キャッシュが存在してもvalidatorでfalseを返すとキャッシュ無効扱いにします - */ - public async fetch(key: string | null, fetcher: () => Promise, validator?: (cachedValue: T) => boolean): Promise { - const cachedValue = this.get(key); - if (cachedValue !== undefined) { - if (validator) { - if (validator(cachedValue)) { - // Cache HIT - return cachedValue; - } - } else { - // Cache HIT - return cachedValue; - } - } - - // Cache MISS - const value = await fetcher(); - this.set(key, value); - return value; - } - - /** - * キャッシュがあればそれを返し、無ければfetcherを呼び出して結果をキャッシュ&返します - * optional: キャッシュが存在してもvalidatorでfalseを返すとキャッシュ無効扱いにします - */ - public async fetchMaybe(key: string | null, fetcher: () => Promise, validator?: (cachedValue: T) => boolean): Promise { - const cachedValue = this.get(key); - if (cachedValue !== undefined) { - if (validator) { - if (validator(cachedValue)) { - // Cache HIT - return cachedValue; - } - } else { - // Cache HIT - return cachedValue; - } - } - - // Cache MISS - const value = await fetcher(); - if (value !== undefined) { - this.set(key, value); - } - return value; - } -} diff --git a/packages/backend/src/misc/captcha.ts b/packages/backend/src/misc/captcha.ts deleted file mode 100644 index 9a87a4a3c..000000000 --- a/packages/backend/src/misc/captcha.ts +++ /dev/null @@ -1,57 +0,0 @@ -import fetch from 'node-fetch'; -import { URLSearchParams } from 'node:url'; -import { getAgentByUrl } from './fetch.js'; -import config from '@/config/index.js'; - -export async function verifyRecaptcha(secret: string, response: string) { - const result = await getCaptchaResponse('https://www.recaptcha.net/recaptcha/api/siteverify', secret, response).catch(e => { - throw `recaptcha-request-failed: ${e}`; - }); - - if (result.success !== true) { - const errorCodes = result['error-codes'] ? result['error-codes']?.join(', ') : ''; - throw `recaptcha-failed: ${errorCodes}`; - } -} - -export async function verifyHcaptcha(secret: string, response: string) { - const result = await getCaptchaResponse('https://hcaptcha.com/siteverify', secret, response).catch(e => { - throw `hcaptcha-request-failed: ${e}`; - }); - - if (result.success !== true) { - const errorCodes = result['error-codes'] ? result['error-codes']?.join(', ') : ''; - throw `hcaptcha-failed: ${errorCodes}`; - } -} - -type CaptchaResponse = { - success: boolean; - 'error-codes'?: string[]; -}; - -async function getCaptchaResponse(url: string, secret: string, response: string): Promise { - const params = new URLSearchParams({ - secret, - response, - }); - - const res = await fetch(url, { - method: 'POST', - body: params, - headers: { - 'User-Agent': config.userAgent, - }, - // TODO - //timeout: 10 * 1000, - agent: getAgentByUrl, - }).catch(e => { - throw `${e.message || e}`; - }); - - if (!res.ok) { - throw `${res.status}`; - } - - return await res.json() as CaptchaResponse; -} diff --git a/packages/backend/src/misc/check-hit-antenna.ts b/packages/backend/src/misc/check-hit-antenna.ts deleted file mode 100644 index d9cedee7d..000000000 --- a/packages/backend/src/misc/check-hit-antenna.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Antenna } from '@/models/entities/antenna.js'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; -import { UserListJoinings, UserGroupJoinings, Blockings } from '@/models/index.js'; -import { getFullApAccount } from './convert-host.js'; -import * as Acct from '@/misc/acct.js'; -import { Packed } from './schema.js'; -import { Cache } from './cache.js'; - -const blockingCache = new Cache(1000 * 60 * 5); - -// NOTE: フォローしているユーザーのノート、リストのユーザーのノート、グループのユーザーのノート指定はパフォーマンス上の理由で無効になっている - -/** - * noteUserFollowers / antennaUserFollowing はどちらか一方が指定されていればよい - */ -export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'Note'>), noteUser: { id: User['id']; username: string; host: string | null; }, noteUserFollowers?: User['id'][], antennaUserFollowing?: User['id'][]): Promise { - if (note.visibility === 'specified') return false; - - // アンテナ作成者がノート作成者にブロックされていたらスキップ - const blockings = await blockingCache.fetch(noteUser.id, () => Blockings.findBy({ blockerId: noteUser.id }).then(res => res.map(x => x.blockeeId))); - if (blockings.some(blocking => blocking === antenna.userId)) return false; - - if (note.visibility === 'followers') { - if (noteUserFollowers && !noteUserFollowers.includes(antenna.userId)) return false; - if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false; - } - - if (!antenna.withReplies && note.replyId != null) return false; - - if (antenna.src === 'home') { - if (noteUserFollowers && !noteUserFollowers.includes(antenna.userId)) return false; - if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false; - } else if (antenna.src === 'list') { - const listUsers = (await UserListJoinings.findBy({ - userListId: antenna.userListId!, - })).map(x => x.userId); - - if (!listUsers.includes(note.userId)) return false; - } else if (antenna.src === 'group') { - const joining = await UserGroupJoinings.findOneByOrFail({ id: antenna.userGroupJoiningId! }); - - const groupUsers = (await UserGroupJoinings.findBy({ - userGroupId: joining.userGroupId, - })).map(x => x.userId); - - if (!groupUsers.includes(note.userId)) return false; - } else if (antenna.src === 'users') { - const accts = antenna.users.map(x => { - const { username, host } = Acct.parse(x); - return getFullApAccount(username, host).toLowerCase(); - }); - if (!accts.includes(getFullApAccount(noteUser.username, noteUser.host).toLowerCase())) return false; - } - - const keywords = antenna.keywords - // Clean up - .map(xs => xs.filter(x => x !== '')) - .filter(xs => xs.length > 0); - - if (keywords.length > 0) { - if (note.text == null) return false; - - const matched = keywords.some(and => - and.every(keyword => - antenna.caseSensitive - ? note.text!.includes(keyword) - : note.text!.toLowerCase().includes(keyword.toLowerCase()) - )); - - if (!matched) return false; - } - - const excludeKeywords = antenna.excludeKeywords - // Clean up - .map(xs => xs.filter(x => x !== '')) - .filter(xs => xs.length > 0); - - if (excludeKeywords.length > 0) { - if (note.text == null) return false; - - const matched = excludeKeywords.some(and => - and.every(keyword => - antenna.caseSensitive - ? note.text!.includes(keyword) - : note.text!.toLowerCase().includes(keyword.toLowerCase()) - )); - - if (matched) return false; - } - - if (antenna.withFile) { - if (note.fileIds && note.fileIds.length === 0) return false; - } - - // TODO: eval expression - - return true; -} diff --git a/packages/backend/src/misc/check-word-mute.ts b/packages/backend/src/misc/check-word-mute.ts deleted file mode 100644 index d7662820a..000000000 --- a/packages/backend/src/misc/check-word-mute.ts +++ /dev/null @@ -1,46 +0,0 @@ -import RE2 from 're2'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; - -type NoteLike = { - userId: Note['userId']; - text: Note['text']; -}; - -type UserLike = { - id: User['id']; -}; - -export async function checkWordMute(note: NoteLike, me: UserLike | null | undefined, mutedWords: Array): Promise { - // 自分自身 - if (me && (note.userId === me.id)) return false; - - if (mutedWords.length > 0) { - const text = ((note.cw ?? '') + '\n' + (note.text ?? '')).trim(); - - if (text === '') return false; - - const matched = mutedWords.some(filter => { - if (Array.isArray(filter)) { - return filter.every(keyword => text.includes(keyword)); - } else { - // represents RegExp - const regexp = filter.match(/^\/(.+)\/(.*)$/); - - // This should never happen due to input sanitisation. - if (!regexp) return false; - - try { - return new RE2(regexp[1], regexp[2]).test(text); - } catch (err) { - // This should never happen due to input sanitisation. - return false; - } - } - }); - - if (matched) return true; - } - - return false; -} diff --git a/packages/backend/src/misc/create-temp.ts b/packages/backend/src/misc/create-temp.ts deleted file mode 100644 index fa88769de..000000000 --- a/packages/backend/src/misc/create-temp.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as tmp from 'tmp'; - -export function createTemp(): Promise<[string, () => void]> { - return new Promise<[string, () => void]>((res, rej) => { - tmp.file((e, path, fd, cleanup) => { - if (e) return rej(e); - res([path, cleanup]); - }); - }); -} - -export function createTempDir(): Promise<[string, () => void]> { - return new Promise<[string, () => void]>((res, rej) => { - tmp.dir( - { - unsafeCleanup: true, - }, - (e, path, cleanup) => { - if (e) return rej(e); - res([path, cleanup]); - } - ); - }); -} diff --git a/packages/backend/src/misc/detect-url-mime.ts b/packages/backend/src/misc/detect-url-mime.ts deleted file mode 100644 index cd143cf2f..000000000 --- a/packages/backend/src/misc/detect-url-mime.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { createTemp } from './create-temp.js'; -import { downloadUrl } from './download-url.js'; -import { detectType } from './get-file-info.js'; - -export async function detectUrlMime(url: string) { - const [path, cleanup] = await createTemp(); - - try { - await downloadUrl(url, path); - const { mime } = await detectType(path); - return mime; - } finally { - cleanup(); - } -} diff --git a/packages/backend/src/misc/download-text-file.ts b/packages/backend/src/misc/download-text-file.ts deleted file mode 100644 index c62c70ee3..000000000 --- a/packages/backend/src/misc/download-text-file.ts +++ /dev/null @@ -1,25 +0,0 @@ -import * as fs from 'node:fs'; -import * as util from 'node:util'; -import Logger from '@/services/logger.js'; -import { createTemp } from './create-temp.js'; -import { downloadUrl } from './download-url.js'; - -const logger = new Logger('download-text-file'); - -export async function downloadTextFile(url: string): Promise { - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - // write content at URL to temp file - await downloadUrl(url, path); - - const text = await util.promisify(fs.readFile)(path, 'utf8'); - - return text; - } finally { - cleanup(); - } -} diff --git a/packages/backend/src/misc/download-url.ts b/packages/backend/src/misc/download-url.ts deleted file mode 100644 index 7c57b140e..000000000 --- a/packages/backend/src/misc/download-url.ts +++ /dev/null @@ -1,89 +0,0 @@ -import * as fs from 'node:fs'; -import * as stream from 'node:stream'; -import * as util from 'node:util'; -import got, * as Got from 'got'; -import { httpAgent, httpsAgent, StatusError } from './fetch.js'; -import config from '@/config/index.js'; -import chalk from 'chalk'; -import Logger from '@/services/logger.js'; -import IPCIDR from 'ip-cidr'; -import PrivateIp from 'private-ip'; - -const pipeline = util.promisify(stream.pipeline); - -export async function downloadUrl(url: string, path: string): Promise { - const logger = new Logger('download'); - - logger.info(`Downloading ${chalk.cyan(url)} ...`); - - const timeout = 30 * 1000; - const operationTimeout = 60 * 1000; - const maxSize = config.maxFileSize || 262144000; - - const req = got.stream(url, { - headers: { - 'User-Agent': config.userAgent, - }, - timeout: { - lookup: timeout, - connect: timeout, - secureConnect: timeout, - socket: timeout, // read timeout - response: timeout, - send: timeout, - request: operationTimeout, // whole operation timeout - }, - agent: { - http: httpAgent, - https: httpsAgent, - }, - http2: false, // default - retry: { - limit: 0, - }, - }).on('response', (res: Got.Response) => { - if ((process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') && !config.proxy && res.ip) { - if (isPrivateIp(res.ip)) { - logger.warn(`Blocked address: ${res.ip}`); - req.destroy(); - } - } - - const contentLength = res.headers['content-length']; - if (contentLength != null) { - const size = Number(contentLength); - if (size > maxSize) { - logger.warn(`maxSize exceeded (${size} > ${maxSize}) on response`); - req.destroy(); - } - } - }).on('downloadProgress', (progress: Got.Progress) => { - if (progress.transferred > maxSize) { - logger.warn(`maxSize exceeded (${progress.transferred} > ${maxSize}) on downloadProgress`); - req.destroy(); - } - }); - - try { - await pipeline(req, fs.createWriteStream(path)); - } catch (e) { - if (e instanceof Got.HTTPError) { - throw new StatusError(`${e.response.statusCode} ${e.response.statusMessage}`, e.response.statusCode, e.response.statusMessage); - } else { - throw e; - } - } - - logger.succ(`Download finished: ${chalk.cyan(url)}`); -} - -function isPrivateIp(ip: string): boolean { - for (const net of config.allowedPrivateNetworks || []) { - const cidr = new IPCIDR(net); - if (cidr.contains(ip)) { - return false; - } - } - - return PrivateIp(ip); -} diff --git a/packages/backend/src/misc/emoji-regex.ts b/packages/backend/src/misc/emoji-regex.ts deleted file mode 100644 index ca224971c..000000000 --- a/packages/backend/src/misc/emoji-regex.ts +++ /dev/null @@ -1,4 +0,0 @@ -import twemoji from 'twemoji-parser/dist/lib/regex.js'; -const twemojiRegex = twemoji.default; - -export const emojiRegex = new RegExp(`(${twemojiRegex.source})`); diff --git a/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts b/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts deleted file mode 100644 index a0319d8dd..000000000 --- a/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts +++ /dev/null @@ -1,10 +0,0 @@ -import * as mfm from 'mfm-js'; -import { unique } from '@/prelude/array.js'; - -export function extractCustomEmojisFromMfm(nodes: mfm.MfmNode[]): string[] { - const emojiNodes = mfm.extract(nodes, (node) => { - return (node.type === 'emojiCode' && node.props.name.length <= 100); - }); - - return unique(emojiNodes.map(x => x.props.name)); -} diff --git a/packages/backend/src/misc/extract-hashtags.ts b/packages/backend/src/misc/extract-hashtags.ts deleted file mode 100644 index 0b0418eef..000000000 --- a/packages/backend/src/misc/extract-hashtags.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as mfm from 'mfm-js'; -import { unique } from '@/prelude/array.js'; - -export function extractHashtags(nodes: mfm.MfmNode[]): string[] { - const hashtagNodes = mfm.extract(nodes, (node) => node.type === 'hashtag'); - const hashtags = unique(hashtagNodes.map(x => x.props.hashtag)); - - return hashtags; -} diff --git a/packages/backend/src/misc/extract-mentions.ts b/packages/backend/src/misc/extract-mentions.ts deleted file mode 100644 index cc19b161a..000000000 --- a/packages/backend/src/misc/extract-mentions.ts +++ /dev/null @@ -1,11 +0,0 @@ -// test is located in test/extract-mentions - -import * as mfm from 'mfm-js'; - -export function extractMentions(nodes: mfm.MfmNode[]): mfm.MfmMention['props'][] { - // TODO: 重複を削除 - const mentionNodes = mfm.extract(nodes, (node) => node.type === 'mention'); - const mentions = mentionNodes.map(x => x.props); - - return mentions; -} diff --git a/packages/backend/src/misc/fetch-meta.ts b/packages/backend/src/misc/fetch-meta.ts deleted file mode 100644 index e855ac28e..000000000 --- a/packages/backend/src/misc/fetch-meta.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Meta } from '@/models/entities/meta.js'; - -let cache: Meta; - -export async function fetchMeta(noCache = false): Promise { - if (!noCache && cache) return cache; - - return await db.transaction(async transactionalEntityManager => { - // 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する - const metas = await transactionalEntityManager.find(Meta, { - order: { - id: 'DESC', - }, - }); - - const meta = metas[0]; - - if (meta) { - cache = meta; - return meta; - } else { - // metaが空のときfetchMetaが同時に呼ばれるとここが同時に呼ばれてしまうことがあるのでフェイルセーフなupsertを使う - const saved = await transactionalEntityManager - .upsert( - Meta, - { - id: 'x', - }, - ['id'], - ) - .then((x) => transactionalEntityManager.findOneByOrFail(Meta, x.identifiers[0])); - - cache = saved; - return saved; - } - }); -} - -setInterval(() => { - fetchMeta(true).then(meta => { - cache = meta; - }); -}, 1000 * 10); diff --git a/packages/backend/src/misc/fetch-proxy-account.ts b/packages/backend/src/misc/fetch-proxy-account.ts deleted file mode 100644 index b61bba264..000000000 --- a/packages/backend/src/misc/fetch-proxy-account.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { fetchMeta } from './fetch-meta.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; - -export async function fetchProxyAccount(): Promise { - const meta = await fetchMeta(); - if (meta.proxyAccountId == null) return null; - return await Users.findOneByOrFail({ id: meta.proxyAccountId }) as ILocalUser; -} diff --git a/packages/backend/src/misc/fetch.ts b/packages/backend/src/misc/fetch.ts deleted file mode 100644 index af6bf2fca..000000000 --- a/packages/backend/src/misc/fetch.ts +++ /dev/null @@ -1,141 +0,0 @@ -import * as http from 'node:http'; -import * as https from 'node:https'; -import { URL } from 'node:url'; -import CacheableLookup from 'cacheable-lookup'; -import fetch from 'node-fetch'; -import { HttpProxyAgent, HttpsProxyAgent } from 'hpagent'; -import config from '@/config/index.js'; - -export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: Record) { - const res = await getResponse({ - url, - method: 'GET', - headers: Object.assign({ - 'User-Agent': config.userAgent, - Accept: accept, - }, headers || {}), - timeout, - }); - - return await res.json(); -} - -export async function getHtml(url: string, accept = 'text/html, */*', timeout = 10000, headers?: Record) { - const res = await getResponse({ - url, - method: 'GET', - headers: Object.assign({ - 'User-Agent': config.userAgent, - Accept: accept, - }, headers || {}), - timeout, - }); - - return await res.text(); -} - -export async function getResponse(args: { url: string, method: string, body?: string, headers: Record, timeout?: number, size?: number }) { - const timeout = args.timeout || 10 * 1000; - - const controller = new AbortController(); - setTimeout(() => { - controller.abort(); - }, timeout * 6); - - const res = await fetch(args.url, { - method: args.method, - headers: args.headers, - body: args.body, - timeout, - size: args.size || 10 * 1024 * 1024, - agent: getAgentByUrl, - signal: controller.signal, - }); - - if (!res.ok) { - throw new StatusError(`${res.status} ${res.statusText}`, res.status, res.statusText); - } - - return res; -} - -const cache = new CacheableLookup({ - maxTtl: 3600, // 1hours - errorTtl: 30, // 30secs - lookup: false, // nativeのdns.lookupにfallbackしない -}); - -/** - * Get http non-proxy agent - */ -const _http = new http.Agent({ - keepAlive: true, - keepAliveMsecs: 30 * 1000, - lookup: cache.lookup, -} as http.AgentOptions); - -/** - * Get https non-proxy agent - */ -const _https = new https.Agent({ - keepAlive: true, - keepAliveMsecs: 30 * 1000, - lookup: cache.lookup, -} as https.AgentOptions); - -const maxSockets = Math.max(256, config.deliverJobConcurrency || 128); - -/** - * Get http proxy or non-proxy agent - */ -export const httpAgent = config.proxy - ? new HttpProxyAgent({ - keepAlive: true, - keepAliveMsecs: 30 * 1000, - maxSockets, - maxFreeSockets: 256, - scheduling: 'lifo', - proxy: config.proxy, - }) - : _http; - -/** - * Get https proxy or non-proxy agent - */ -export const httpsAgent = config.proxy - ? new HttpsProxyAgent({ - keepAlive: true, - keepAliveMsecs: 30 * 1000, - maxSockets, - maxFreeSockets: 256, - scheduling: 'lifo', - proxy: config.proxy, - }) - : _https; - -/** - * Get agent by URL - * @param url URL - * @param bypassProxy Allways bypass proxy - */ -export function getAgentByUrl(url: URL, bypassProxy = false) { - if (bypassProxy || (config.proxyBypassHosts || []).includes(url.hostname)) { - return url.protocol === 'http:' ? _http : _https; - } else { - return url.protocol === 'http:' ? httpAgent : httpsAgent; - } -} - -export class StatusError extends Error { - public statusCode: number; - public statusMessage?: string; - public isClientError: boolean; - - constructor(message: string, statusCode: number, statusMessage?: string) { - super(message); - this.name = 'StatusError'; - this.statusCode = statusCode; - this.statusMessage = statusMessage; - this.isClientError = typeof this.statusCode === 'number' && this.statusCode >= 400 && this.statusCode < 500; - } -} diff --git a/packages/backend/src/misc/gen-id.ts b/packages/backend/src/misc/gen-id.ts deleted file mode 100644 index fcf476857..000000000 --- a/packages/backend/src/misc/gen-id.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ulid } from 'ulid'; -import { genAid } from './id/aid.js'; -import { genMeid } from './id/meid.js'; -import { genMeidg } from './id/meidg.js'; -import { genObjectId } from './id/object-id.js'; -import config from '@/config/index.js'; - -const metohd = config.id.toLowerCase(); - -export function genId(date?: Date): string { - if (!date || (date > new Date())) date = new Date(); - - switch (metohd) { - case 'aid': return genAid(date); - case 'meid': return genMeid(date); - case 'meidg': return genMeidg(date); - case 'ulid': return ulid(date.getTime()); - case 'objectid': return genObjectId(date); - default: throw new Error('unrecognized id generation method'); - } -} diff --git a/packages/backend/src/misc/gen-identicon.ts b/packages/backend/src/misc/gen-identicon.ts deleted file mode 100644 index 322ffee22..000000000 --- a/packages/backend/src/misc/gen-identicon.ts +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Identicon generator - * https://en.wikipedia.org/wiki/Identicon - */ - -import { WriteStream } from 'node:fs'; -import * as p from 'pureimage'; -import gen from 'random-seed'; - -const size = 128; // px -const n = 5; // resolution -const margin = (size / 4); -const colors = [ - ['#FF512F', '#DD2476'], - ['#FF61D2', '#FE9090'], - ['#72FFB6', '#10D164'], - ['#FD8451', '#FFBD6F'], - ['#305170', '#6DFC6B'], - ['#00C0FF', '#4218B8'], - ['#009245', '#FCEE21'], - ['#0100EC', '#FB36F4'], - ['#FDABDD', '#374A5A'], - ['#38A2D7', '#561139'], - ['#121C84', '#8278DA'], - ['#5761B2', '#1FC5A8'], - ['#FFDB01', '#0E197D'], - ['#FF3E9D', '#0E1F40'], - ['#766eff', '#00d4ff'], - ['#9bff6e', '#00d4ff'], - ['#ff6e94', '#00d4ff'], - ['#ffa96e', '#00d4ff'], - ['#ffa96e', '#ff009d'], - ['#ffdd6e', '#ff009d'], -]; - -const actualSize = size - (margin * 2); -const cellSize = actualSize / n; -const sideN = Math.floor(n / 2); - -/** - * Generate buffer of an identicon by seed - */ -export function genIdenticon(seed: string, stream: WriteStream): Promise { - const rand = gen.create(seed); - const canvas = p.make(size, size, undefined); - const ctx = canvas.getContext('2d'); - - const bgColors = colors[rand(colors.length)]; - - const bg = ctx.createLinearGradient(0, 0, size, size); - bg.addColorStop(0, bgColors[0]); - bg.addColorStop(1, bgColors[1]); - - ctx.fillStyle = bg; - ctx.beginPath(); - ctx.fillRect(0, 0, size, size); - - ctx.fillStyle = '#ffffff'; - - // side bitmap (filled by false) - const side: boolean[][] = new Array(sideN); - for (let i = 0; i < side.length; i++) { - side[i] = new Array(n).fill(false); - } - - // 1*n (filled by false) - const center: boolean[] = new Array(n).fill(false); - - // eslint:disable-next-line:prefer-for-of - for (let x = 0; x < side.length; x++) { - for (let y = 0; y < side[x].length; y++) { - side[x][y] = rand(3) === 0; - } - } - - for (let i = 0; i < center.length; i++) { - center[i] = rand(3) === 0; - } - - // Draw - for (let x = 0; x < n; x++) { - for (let y = 0; y < n; y++) { - const isXCenter = x === ((n - 1) / 2); - if (isXCenter && !center[y]) continue; - - const isLeftSide = x < ((n - 1) / 2); - if (isLeftSide && !side[x][y]) continue; - - const isRightSide = x > ((n - 1) / 2); - if (isRightSide && !side[sideN - (x - sideN)][y]) continue; - - const actualX = margin + (cellSize * x); - const actualY = margin + (cellSize * y); - ctx.beginPath(); - ctx.fillRect(actualX, actualY, cellSize, cellSize); - } - } - - return p.encodePNGToStream(canvas, stream); -} diff --git a/packages/backend/src/misc/get-file-info.ts b/packages/backend/src/misc/get-file-info.ts deleted file mode 100644 index 1c988b248..000000000 --- a/packages/backend/src/misc/get-file-info.ts +++ /dev/null @@ -1,374 +0,0 @@ -import * as fs from 'node:fs'; -import * as crypto from 'node:crypto'; -import { join } from 'node:path'; -import * as stream from 'node:stream'; -import * as util from 'node:util'; -import { FSWatcher } from 'chokidar'; -import { fileTypeFromFile } from 'file-type'; -import FFmpeg from 'fluent-ffmpeg'; -import isSvg from 'is-svg'; -import probeImageSize from 'probe-image-size'; -import { type predictionType } from 'nsfwjs'; -import sharp from 'sharp'; -import { encode } from 'blurhash'; -import { detectSensitive } from '@/services/detect-sensitive.js'; -import { createTempDir } from './create-temp.js'; - -const pipeline = util.promisify(stream.pipeline); - -export type FileInfo = { - size: number; - md5: string; - type: { - mime: string; - ext: string | null; - }; - width?: number; - height?: number; - orientation?: number; - blurhash?: string; - sensitive: boolean; - porn: boolean; - warnings: string[]; -}; - -const TYPE_OCTET_STREAM = { - mime: 'application/octet-stream', - ext: null, -}; - -const TYPE_SVG = { - mime: 'image/svg+xml', - ext: 'svg', -}; - -/** - * Get file information - */ -export async function getFileInfo(path: string, opts: { - skipSensitiveDetection: boolean; - sensitiveThreshold?: number; - sensitiveThresholdForPorn?: number; - enableSensitiveMediaDetectionForVideos?: boolean; -}): Promise { - const warnings = [] as string[]; - - const size = await getFileSize(path); - const md5 = await calcHash(path); - - let type = await detectType(path); - - // image dimensions - let width: number | undefined; - let height: number | undefined; - let orientation: number | undefined; - - if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/bmp', 'image/tiff', 'image/svg+xml', 'image/vnd.adobe.photoshop'].includes(type.mime)) { - const imageSize = await detectImageSize(path).catch(e => { - warnings.push(`detectImageSize failed: ${e}`); - return undefined; - }); - - // うまく判定できない画像は octet-stream にする - if (!imageSize) { - warnings.push('cannot detect image dimensions'); - type = TYPE_OCTET_STREAM; - } else if (imageSize.wUnits === 'px') { - width = imageSize.width; - height = imageSize.height; - orientation = imageSize.orientation; - - // 制限を超えている画像は octet-stream にする - if (imageSize.width > 16383 || imageSize.height > 16383) { - warnings.push('image dimensions exceeds limits'); - type = TYPE_OCTET_STREAM; - } - } else { - warnings.push(`unsupported unit type: ${imageSize.wUnits}`); - } - } - - let blurhash: string | undefined; - - if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/svg+xml'].includes(type.mime)) { - blurhash = await getBlurhash(path).catch(e => { - warnings.push(`getBlurhash failed: ${e}`); - return undefined; - }); - } - - let sensitive = false; - let porn = false; - - if (!opts.skipSensitiveDetection) { - await detectSensitivity( - path, - type.mime, - opts.sensitiveThreshold ?? 0.5, - opts.sensitiveThresholdForPorn ?? 0.75, - opts.enableSensitiveMediaDetectionForVideos ?? false, - ).then(value => { - [sensitive, porn] = value; - }, error => { - warnings.push(`detectSensitivity failed: ${error}`); - }); - } - - return { - size, - md5, - type, - width, - height, - orientation, - blurhash, - sensitive, - porn, - warnings, - }; -} - -async function detectSensitivity(source: string, mime: string, sensitiveThreshold: number, sensitiveThresholdForPorn: number, analyzeVideo: boolean): Promise<[sensitive: boolean, porn: boolean]> { - let sensitive = false; - let porn = false; - - function judgePrediction(result: readonly predictionType[]): [sensitive: boolean, porn: boolean] { - let sensitive = false; - let porn = false; - - if ((result.find(x => x.className === 'Sexy')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - if ((result.find(x => x.className === 'Hentai')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - if ((result.find(x => x.className === 'Porn')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - - if ((result.find(x => x.className === 'Porn')?.probability ?? 0) > sensitiveThresholdForPorn) porn = true; - - return [sensitive, porn]; - } - - if (['image/jpeg', 'image/png', 'image/webp'].includes(mime)) { - const result = await detectSensitive(source); - if (result) { - [sensitive, porn] = judgePrediction(result); - } - } else if (analyzeVideo && (mime === 'image/apng' || mime.startsWith('video/'))) { - const [outDir, disposeOutDir] = await createTempDir(); - try { - const command = FFmpeg() - .input(source) - .inputOptions([ - '-skip_frame', 'nokey', // 可能ならキーフレームのみを取得してほしいとする(そうなるとは限らない) - '-lowres', '3', // 元の画質でデコードする必要はないので 1/8 画質でデコードしてもよいとする(そうなるとは限らない) - ]) - .noAudio() - .videoFilters([ - { - filter: 'select', // フレームのフィルタリング - options: { - e: 'eq(pict_type,PICT_TYPE_I)', // I-Frame のみをフィルタする(VP9 とかはデコードしてみないとわからないっぽい) - }, - }, - { - filter: 'blackframe', // 暗いフレームの検出 - options: { - amount: '0', // 暗さに関わらず全てのフレームで測定値を取る - }, - }, - { - filter: 'metadata', - options: { - mode: 'select', // フレーム選択モード - key: 'lavfi.blackframe.pblack', // フレームにおける暗部の百分率(前のフィルタからのメタデータを参照する) - value: '50', - function: 'less', // 50% 未満のフレームを選択する(50% 以上暗部があるフレームだと誤検知を招くかもしれないので) - }, - }, - { - filter: 'scale', - options: { - w: 299, - h: 299, - }, - }, - ]) - .format('image2') - .output(join(outDir, '%d.png')) - .outputOptions(['-vsync', '0']); // 可変フレームレートにすることで穴埋めをさせない - const results: ReturnType[] = []; - let frameIndex = 0; - let targetIndex = 0; - let nextIndex = 1; - for await (const path of asyncIterateFrames(outDir, command)) { - try { - const index = frameIndex++; - if (index !== targetIndex) { - continue; - } - targetIndex = nextIndex; - nextIndex += index; // fibonacci sequence によってフレーム数制限を掛ける - const result = await detectSensitive(path); - if (result) { - results.push(judgePrediction(result)); - } - } finally { - fs.promises.unlink(path); - } - } - sensitive = results.filter(x => x[0]).length >= Math.ceil(results.length * sensitiveThreshold); - porn = results.filter(x => x[1]).length >= Math.ceil(results.length * sensitiveThresholdForPorn); - } finally { - disposeOutDir(); - } - } - - return [sensitive, porn]; -} - -async function* asyncIterateFrames(cwd: string, command: FFmpeg.FfmpegCommand): AsyncGenerator { - const watcher = new FSWatcher({ - cwd, - disableGlobbing: true, - }); - let finished = false; - command.once('end', () => { - finished = true; - watcher.close(); - }); - command.run(); - for (let i = 1; true; i++) { // eslint-disable-line @typescript-eslint/no-unnecessary-condition - const current = `${i}.png`; - const next = `${i + 1}.png`; - const framePath = join(cwd, current); - if (await exists(join(cwd, next))) { - yield framePath; - } else if (!finished) { // eslint-disable-line @typescript-eslint/no-unnecessary-condition - watcher.add(next); - await new Promise((resolve, reject) => { - watcher.on('add', function onAdd(path) { - if (path === next) { // 次フレームの書き出しが始まっているなら、現在フレームの書き出しは終わっている - watcher.unwatch(current); - watcher.off('add', onAdd); - resolve(); - } - }); - command.once('end', resolve); // 全てのフレームを処理し終わったなら、最終フレームである現在フレームの書き出しは終わっている - command.once('error', reject); - }); - yield framePath; - } else if (await exists(framePath)) { - yield framePath; - } else { - return; - } - } -} - -function exists(path: string): Promise { - return fs.promises.access(path).then(() => true, () => false); -} - -/** - * Detect MIME Type and extension - */ -export async function detectType(path: string): Promise<{ - mime: string; - ext: string | null; -}> { - // Check 0 byte - const fileSize = await getFileSize(path); - if (fileSize === 0) { - return TYPE_OCTET_STREAM; - } - - const type = await fileTypeFromFile(path); - - if (type) { - // XMLはSVGかもしれない - if (type.mime === 'application/xml' && await checkSvg(path)) { - return TYPE_SVG; - } - - return { - mime: type.mime, - ext: type.ext, - }; - } - - // 種類が不明でもSVGかもしれない - if (await checkSvg(path)) { - return TYPE_SVG; - } - - // それでも種類が不明なら application/octet-stream にする - return TYPE_OCTET_STREAM; -} - -/** - * Check the file is SVG or not - */ -export async function checkSvg(path: string) { - try { - const size = await getFileSize(path); - if (size > 1 * 1024 * 1024) return false; - return isSvg(fs.readFileSync(path)); - } catch { - return false; - } -} - -/** - * Get file size - */ -export async function getFileSize(path: string): Promise { - const getStat = util.promisify(fs.stat); - return (await getStat(path)).size; -} - -/** - * Calculate MD5 hash - */ -async function calcHash(path: string): Promise { - const hash = crypto.createHash('md5').setEncoding('hex'); - await pipeline(fs.createReadStream(path), hash); - return hash.read(); -} - -/** - * Detect dimensions of image - */ -async function detectImageSize(path: string): Promise<{ - width: number; - height: number; - wUnits: string; - hUnits: string; - orientation?: number; -}> { - const readable = fs.createReadStream(path); - const imageSize = await probeImageSize(readable); - readable.destroy(); - return imageSize; -} - -/** - * Calculate average color of image - */ -function getBlurhash(path: string): Promise { - return new Promise((resolve, reject) => { - sharp(path) - .raw() - .ensureAlpha() - .resize(64, 64, { fit: 'inside' }) - .toBuffer((err, buffer, { width, height }) => { - if (err) return reject(err); - - let hash; - - try { - hash = encode(new Uint8ClampedArray(buffer), width, height, 7, 7); - } catch (e) { - return reject(e); - } - - resolve(hash); - }); - }); -} diff --git a/packages/backend/src/misc/get-ip-hash.ts b/packages/backend/src/misc/get-ip-hash.ts deleted file mode 100644 index 379325bb1..000000000 --- a/packages/backend/src/misc/get-ip-hash.ts +++ /dev/null @@ -1,9 +0,0 @@ -import IPCIDR from 'ip-cidr'; - -export function getIpHash(ip: string) { - // because a single person may control many IPv6 addresses, - // only a /64 subnet prefix of any IP will be taken into account. - // (this means for IPv4 the entire address is used) - const prefix = IPCIDR.createAddress(ip).mask(64); - return 'ip-' + BigInt('0b' + prefix).toString(36); -} diff --git a/packages/backend/src/misc/get-note-summary.ts b/packages/backend/src/misc/get-note-summary.ts deleted file mode 100644 index 3f35ccee8..000000000 --- a/packages/backend/src/misc/get-note-summary.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Packed } from './schema.js'; - -/** - * 投稿を表す文字列を取得します。 - * @param {*} note (packされた)投稿 - */ -export const getNoteSummary = (note: Packed<'Note'>): string => { - if (note.deletedAt) { - return `(❌⛔)`; - } - - if (note.isHidden) { - return `(⛔)`; - } - - let summary = ''; - - // 本文 - if (note.cw != null) { - summary += note.cw; - } else { - summary += note.text ? note.text : ''; - } - - // ファイルが添付されているとき - if ((note.files || []).length !== 0) { - summary += ` (📎${note.files!.length})`; - } - - // 投票が添付されているとき - if (note.poll) { - summary += ` (📊)`; - } - - // 返信のとき - if (note.replyId) { - if (note.reply) { - summary += `\n\nRE: ${getNoteSummary(note.reply)}`; - } else { - summary += '\n\nRE: ...'; - } - } - - // Renoteのとき - if (note.renoteId) { - if (note.renote) { - summary += `\n\nRN: ${getNoteSummary(note.renote)}`; - } else { - summary += '\n\nRN: ...'; - } - } - - return summary.trim(); -}; diff --git a/packages/backend/src/misc/hard-limits.ts b/packages/backend/src/misc/hard-limits.ts deleted file mode 100644 index 1039f7335..000000000 --- a/packages/backend/src/misc/hard-limits.ts +++ /dev/null @@ -1,14 +0,0 @@ - -// If you change DB_* values, you must also change the DB schema. - -/** - * Maximum note text length that can be stored in DB. - * Surrogate pairs count as one - */ -export const DB_MAX_NOTE_TEXT_LENGTH = 8192; - -/** - * Maximum image description length that can be stored in DB. - * Surrogate pairs count as one - */ -export const DB_MAX_IMAGE_COMMENT_LENGTH = 512; diff --git a/packages/backend/src/misc/i18n.ts b/packages/backend/src/misc/i18n.ts deleted file mode 100644 index 4fa398763..000000000 --- a/packages/backend/src/misc/i18n.ts +++ /dev/null @@ -1,29 +0,0 @@ -export class I18n> { - public locale: T; - - constructor(locale: T) { - this.locale = locale; - - //#region BIND - this.t = this.t.bind(this); - //#endregion - } - - // string にしているのは、ドット区切りでのパス指定を許可するため - // なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも - public t(key: string, args?: Record): string { - try { - let str = key.split('.').reduce((o, i) => o[i], this.locale) as string; - - if (args) { - for (const [k, v] of Object.entries(args)) { - str = str.replace(`{${k}}`, v); - } - } - return str; - } catch (e) { - console.warn(`missing localization '${key}'`); - return key; - } - } -} diff --git a/packages/backend/src/misc/is-duplicate-key-value-error.ts b/packages/backend/src/misc/is-duplicate-key-value-error.ts deleted file mode 100644 index 04ff191e4..000000000 --- a/packages/backend/src/misc/is-duplicate-key-value-error.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function isDuplicateKeyValueError(e: unknown | Error): boolean { - return (e as any).message && (e as Error).message.startsWith('duplicate key value'); -} diff --git a/packages/backend/src/misc/is-instance-muted.ts b/packages/backend/src/misc/is-instance-muted.ts deleted file mode 100644 index a74ba524e..000000000 --- a/packages/backend/src/misc/is-instance-muted.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Packed } from './schema.js'; - -export function isInstanceMuted(note: Packed<'Note'>, mutedInstances: Set): boolean { - if (mutedInstances.has(note?.user?.host ?? '')) return true; - if (mutedInstances.has(note?.reply?.user?.host ?? '')) return true; - if (mutedInstances.has(note?.renote?.user?.host ?? '')) return true; - - return false; -} - -export function isUserFromMutedInstance(notif: Packed<'Notification'>, mutedInstances: Set): boolean { - if (mutedInstances.has(notif?.user?.host ?? '')) return true; - - return false; -} diff --git a/packages/backend/src/misc/is-mime-image.ts b/packages/backend/src/misc/is-mime-image.ts deleted file mode 100644 index 8993ede33..000000000 --- a/packages/backend/src/misc/is-mime-image.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; - -const dictionary = { - 'safe-file': FILE_TYPE_BROWSERSAFE, - 'sharp-convertible-image': ['image/jpeg', 'image/png', 'image/gif', 'image/apng', 'image/vnd.mozilla.apng', 'image/webp', 'image/svg+xml'], -}; - -export const isMimeImage = (mime: string, type: keyof typeof dictionary): boolean => dictionary[type].includes(mime); diff --git a/packages/backend/src/misc/is-user-related.ts b/packages/backend/src/misc/is-user-related.ts deleted file mode 100644 index e6bbdb5d3..000000000 --- a/packages/backend/src/misc/is-user-related.ts +++ /dev/null @@ -1,15 +0,0 @@ -export function isUserRelated(note: any, userIds: Set): boolean { - if (userIds.has(note.userId)) { - return true; - } - - if (note.reply != null && userIds.has(note.reply.userId)) { - return true; - } - - if (note.renote != null && userIds.has(note.renote.userId)) { - return true; - } - - return false; -} diff --git a/packages/backend/src/misc/keypair-store.ts b/packages/backend/src/misc/keypair-store.ts deleted file mode 100644 index 1183b9a78..000000000 --- a/packages/backend/src/misc/keypair-store.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { UserKeypairs } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { UserKeypair } from '@/models/entities/user-keypair.js'; -import { Cache } from './cache.js'; - -const cache = new Cache(Infinity); - -export async function getUserKeypair(userId: User['id']): Promise { - return await cache.fetch(userId, () => UserKeypairs.findOneByOrFail({ userId: userId })); -} diff --git a/packages/backend/src/misc/langmap.ts b/packages/backend/src/misc/langmap.ts deleted file mode 100644 index 5ee85e6c0..000000000 --- a/packages/backend/src/misc/langmap.ts +++ /dev/null @@ -1,666 +0,0 @@ -// TODO: sharedに置いてフロントエンドのと統合したい -export const langmap = { - 'ach': { - nativeName: 'Lwo', - }, - 'ady': { - nativeName: 'Адыгэбзэ', - }, - 'af': { - nativeName: 'Afrikaans', - }, - 'af-NA': { - nativeName: 'Afrikaans (Namibia)', - }, - 'af-ZA': { - nativeName: 'Afrikaans (South Africa)', - }, - 'ak': { - nativeName: 'Tɕɥi', - }, - 'ar': { - nativeName: 'العربية', - }, - 'ar-AR': { - nativeName: 'العربية', - }, - 'ar-MA': { - nativeName: 'العربية', - }, - 'ar-SA': { - nativeName: 'العربية (السعودية)', - }, - 'ay-BO': { - nativeName: 'Aymar aru', - }, - 'az': { - nativeName: 'Azərbaycan dili', - }, - 'az-AZ': { - nativeName: 'Azərbaycan dili', - }, - 'be-BY': { - nativeName: 'Беларуская', - }, - 'bg': { - nativeName: 'Български', - }, - 'bg-BG': { - nativeName: 'Български', - }, - 'bn': { - nativeName: 'বাংলা', - }, - 'bn-IN': { - nativeName: 'বাংলা (ভারত)', - }, - 'bn-BD': { - nativeName: 'বাংলা(বাংলাদেশ)', - }, - 'br': { - nativeName: 'Brezhoneg', - }, - 'bs-BA': { - nativeName: 'Bosanski', - }, - 'ca': { - nativeName: 'Català', - }, - 'ca-ES': { - nativeName: 'Català', - }, - 'cak': { - nativeName: 'Maya Kaqchikel', - }, - 'ck-US': { - nativeName: 'ᏣᎳᎩ (tsalagi)', - }, - 'cs': { - nativeName: 'Čeština', - }, - 'cs-CZ': { - nativeName: 'Čeština', - }, - 'cy': { - nativeName: 'Cymraeg', - }, - 'cy-GB': { - nativeName: 'Cymraeg', - }, - 'da': { - nativeName: 'Dansk', - }, - 'da-DK': { - nativeName: 'Dansk', - }, - 'de': { - nativeName: 'Deutsch', - }, - 'de-AT': { - nativeName: 'Deutsch (Österreich)', - }, - 'de-DE': { - nativeName: 'Deutsch (Deutschland)', - }, - 'de-CH': { - nativeName: 'Deutsch (Schweiz)', - }, - 'dsb': { - nativeName: 'Dolnoserbšćina', - }, - 'el': { - nativeName: 'Ελληνικά', - }, - 'el-GR': { - nativeName: 'Ελληνικά', - }, - 'en': { - nativeName: 'English', - }, - 'en-GB': { - nativeName: 'English (UK)', - }, - 'en-AU': { - nativeName: 'English (Australia)', - }, - 'en-CA': { - nativeName: 'English (Canada)', - }, - 'en-IE': { - nativeName: 'English (Ireland)', - }, - 'en-IN': { - nativeName: 'English (India)', - }, - 'en-PI': { - nativeName: 'English (Pirate)', - }, - 'en-SG': { - nativeName: 'English (Singapore)', - }, - 'en-UD': { - nativeName: 'English (Upside Down)', - }, - 'en-US': { - nativeName: 'English (US)', - }, - 'en-ZA': { - nativeName: 'English (South Africa)', - }, - 'en@pirate': { - nativeName: 'English (Pirate)', - }, - 'eo': { - nativeName: 'Esperanto', - }, - 'eo-EO': { - nativeName: 'Esperanto', - }, - 'es': { - nativeName: 'Español', - }, - 'es-AR': { - nativeName: 'Español (Argentine)', - }, - 'es-419': { - nativeName: 'Español (Latinoamérica)', - }, - 'es-CL': { - nativeName: 'Español (Chile)', - }, - 'es-CO': { - nativeName: 'Español (Colombia)', - }, - 'es-EC': { - nativeName: 'Español (Ecuador)', - }, - 'es-ES': { - nativeName: 'Español (España)', - }, - 'es-LA': { - nativeName: 'Español (Latinoamérica)', - }, - 'es-NI': { - nativeName: 'Español (Nicaragua)', - }, - 'es-MX': { - nativeName: 'Español (México)', - }, - 'es-US': { - nativeName: 'Español (Estados Unidos)', - }, - 'es-VE': { - nativeName: 'Español (Venezuela)', - }, - 'et': { - nativeName: 'eesti keel', - }, - 'et-EE': { - nativeName: 'Eesti (Estonia)', - }, - 'eu': { - nativeName: 'Euskara', - }, - 'eu-ES': { - nativeName: 'Euskara', - }, - 'fa': { - nativeName: 'فارسی', - }, - 'fa-IR': { - nativeName: 'فارسی', - }, - 'fb-LT': { - nativeName: 'Leet Speak', - }, - 'ff': { - nativeName: 'Fulah', - }, - 'fi': { - nativeName: 'Suomi', - }, - 'fi-FI': { - nativeName: 'Suomi', - }, - 'fo': { - nativeName: 'Føroyskt', - }, - 'fo-FO': { - nativeName: 'Føroyskt (Færeyjar)', - }, - 'fr': { - nativeName: 'Français', - }, - 'fr-CA': { - nativeName: 'Français (Canada)', - }, - 'fr-FR': { - nativeName: 'Français (France)', - }, - 'fr-BE': { - nativeName: 'Français (Belgique)', - }, - 'fr-CH': { - nativeName: 'Français (Suisse)', - }, - 'fy-NL': { - nativeName: 'Frysk', - }, - 'ga': { - nativeName: 'Gaeilge', - }, - 'ga-IE': { - nativeName: 'Gaeilge', - }, - 'gd': { - nativeName: 'Gàidhlig', - }, - 'gl': { - nativeName: 'Galego', - }, - 'gl-ES': { - nativeName: 'Galego', - }, - 'gn-PY': { - nativeName: 'Avañe\'ẽ', - }, - 'gu-IN': { - nativeName: 'ગુજરાતી', - }, - 'gv': { - nativeName: 'Gaelg', - }, - 'gx-GR': { - nativeName: 'Ἑλληνική ἀρχαία', - }, - 'he': { - nativeName: 'עברית‏', - }, - 'he-IL': { - nativeName: 'עברית‏', - }, - 'hi': { - nativeName: 'हिन्दी', - }, - 'hi-IN': { - nativeName: 'हिन्दी', - }, - 'hr': { - nativeName: 'Hrvatski', - }, - 'hr-HR': { - nativeName: 'Hrvatski', - }, - 'hsb': { - nativeName: 'Hornjoserbšćina', - }, - 'ht': { - nativeName: 'Kreyòl', - }, - 'hu': { - nativeName: 'Magyar', - }, - 'hu-HU': { - nativeName: 'Magyar', - }, - 'hy': { - nativeName: 'Հայերեն', - }, - 'hy-AM': { - nativeName: 'Հայերեն (Հայաստան)', - }, - 'id': { - nativeName: 'Bahasa Indonesia', - }, - 'id-ID': { - nativeName: 'Bahasa Indonesia', - }, - 'is': { - nativeName: 'Íslenska', - }, - 'is-IS': { - nativeName: 'Íslenska (Iceland)', - }, - 'it': { - nativeName: 'Italiano', - }, - 'it-IT': { - nativeName: 'Italiano', - }, - 'ja': { - nativeName: '日本語', - }, - 'ja-JP': { - nativeName: '日本語 (日本)', - }, - 'jv-ID': { - nativeName: 'Basa Jawa', - }, - 'ka-GE': { - nativeName: 'ქართული', - }, - 'kk-KZ': { - nativeName: 'Қазақша', - }, - 'km': { - nativeName: 'ភាសាខ្មែរ', - }, - 'kl': { - nativeName: 'kalaallisut', - }, - 'km-KH': { - nativeName: 'ភាសាខ្មែរ', - }, - 'kab': { - nativeName: 'Taqbaylit', - }, - 'kn': { - nativeName: 'ಕನ್ನಡ', - }, - 'kn-IN': { - nativeName: 'ಕನ್ನಡ (India)', - }, - 'ko': { - nativeName: '한국어', - }, - 'ko-KR': { - nativeName: '한국어 (한국)', - }, - 'ku-TR': { - nativeName: 'Kurdî', - }, - 'kw': { - nativeName: 'Kernewek', - }, - 'la': { - nativeName: 'Latin', - }, - 'la-VA': { - nativeName: 'Latin', - }, - 'lb': { - nativeName: 'Lëtzebuergesch', - }, - 'li-NL': { - nativeName: 'Lèmbörgs', - }, - 'lt': { - nativeName: 'Lietuvių', - }, - 'lt-LT': { - nativeName: 'Lietuvių', - }, - 'lv': { - nativeName: 'Latviešu', - }, - 'lv-LV': { - nativeName: 'Latviešu', - }, - 'mai': { - nativeName: 'मैथिली, মৈথিলী', - }, - 'mg-MG': { - nativeName: 'Malagasy', - }, - 'mk': { - nativeName: 'Македонски', - }, - 'mk-MK': { - nativeName: 'Македонски (Македонски)', - }, - 'ml': { - nativeName: 'മലയാളം', - }, - 'ml-IN': { - nativeName: 'മലയാളം', - }, - 'mn-MN': { - nativeName: 'Монгол', - }, - 'mr': { - nativeName: 'मराठी', - }, - 'mr-IN': { - nativeName: 'मराठी', - }, - 'ms': { - nativeName: 'Bahasa Melayu', - }, - 'ms-MY': { - nativeName: 'Bahasa Melayu', - }, - 'mt': { - nativeName: 'Malti', - }, - 'mt-MT': { - nativeName: 'Malti', - }, - 'my': { - nativeName: 'ဗမာစကာ', - }, - 'no': { - nativeName: 'Norsk', - }, - 'nb': { - nativeName: 'Norsk (bokmål)', - }, - 'nb-NO': { - nativeName: 'Norsk (bokmål)', - }, - 'ne': { - nativeName: 'नेपाली', - }, - 'ne-NP': { - nativeName: 'नेपाली', - }, - 'nl': { - nativeName: 'Nederlands', - }, - 'nl-BE': { - nativeName: 'Nederlands (België)', - }, - 'nl-NL': { - nativeName: 'Nederlands (Nederland)', - }, - 'nn-NO': { - nativeName: 'Norsk (nynorsk)', - }, - 'oc': { - nativeName: 'Occitan', - }, - 'or-IN': { - nativeName: 'ଓଡ଼ିଆ', - }, - 'pa': { - nativeName: 'ਪੰਜਾਬੀ', - }, - 'pa-IN': { - nativeName: 'ਪੰਜਾਬੀ (ਭਾਰਤ ਨੂੰ)', - }, - 'pl': { - nativeName: 'Polski', - }, - 'pl-PL': { - nativeName: 'Polski', - }, - 'ps-AF': { - nativeName: 'پښتو', - }, - 'pt': { - nativeName: 'Português', - }, - 'pt-BR': { - nativeName: 'Português (Brasil)', - }, - 'pt-PT': { - nativeName: 'Português (Portugal)', - }, - 'qu-PE': { - nativeName: 'Qhichwa', - }, - 'rm-CH': { - nativeName: 'Rumantsch', - }, - 'ro': { - nativeName: 'Română', - }, - 'ro-RO': { - nativeName: 'Română', - }, - 'ru': { - nativeName: 'Русский', - }, - 'ru-RU': { - nativeName: 'Русский', - }, - 'sa-IN': { - nativeName: 'संस्कृतम्', - }, - 'se-NO': { - nativeName: 'Davvisámegiella', - }, - 'sh': { - nativeName: 'српскохрватски', - }, - 'si-LK': { - nativeName: 'සිංහල', - }, - 'sk': { - nativeName: 'Slovenčina', - }, - 'sk-SK': { - nativeName: 'Slovenčina (Slovakia)', - }, - 'sl': { - nativeName: 'Slovenščina', - }, - 'sl-SI': { - nativeName: 'Slovenščina', - }, - 'so-SO': { - nativeName: 'Soomaaliga', - }, - 'sq': { - nativeName: 'Shqip', - }, - 'sq-AL': { - nativeName: 'Shqip', - }, - 'sr': { - nativeName: 'Српски', - }, - 'sr-RS': { - nativeName: 'Српски (Serbia)', - }, - 'su': { - nativeName: 'Basa Sunda', - }, - 'sv': { - nativeName: 'Svenska', - }, - 'sv-SE': { - nativeName: 'Svenska', - }, - 'sw': { - nativeName: 'Kiswahili', - }, - 'sw-KE': { - nativeName: 'Kiswahili', - }, - 'ta': { - nativeName: 'தமிழ்', - }, - 'ta-IN': { - nativeName: 'தமிழ்', - }, - 'te': { - nativeName: 'తెలుగు', - }, - 'te-IN': { - nativeName: 'తెలుగు', - }, - 'tg': { - nativeName: 'забо́ни тоҷикӣ́', - }, - 'tg-TJ': { - nativeName: 'тоҷикӣ', - }, - 'th': { - nativeName: 'ภาษาไทย', - }, - 'th-TH': { - nativeName: 'ภาษาไทย (ประเทศไทย)', - }, - 'fil': { - nativeName: 'Filipino', - }, - 'tlh': { - nativeName: 'tlhIngan-Hol', - }, - 'tr': { - nativeName: 'Türkçe', - }, - 'tr-TR': { - nativeName: 'Türkçe', - }, - 'tt-RU': { - nativeName: 'татарча', - }, - 'uk': { - nativeName: 'Українська', - }, - 'uk-UA': { - nativeName: 'Українська', - }, - 'ur': { - nativeName: 'اردو', - }, - 'ur-PK': { - nativeName: 'اردو', - }, - 'uz': { - nativeName: 'O\'zbek', - }, - 'uz-UZ': { - nativeName: 'O\'zbek', - }, - 'vi': { - nativeName: 'Tiếng Việt', - }, - 'vi-VN': { - nativeName: 'Tiếng Việt', - }, - 'xh-ZA': { - nativeName: 'isiXhosa', - }, - 'yi': { - nativeName: 'ייִדיש', - }, - 'yi-DE': { - nativeName: 'ייִדיש (German)', - }, - 'zh': { - nativeName: '中文', - }, - 'zh-Hans': { - nativeName: '中文简体', - }, - 'zh-Hant': { - nativeName: '中文繁體', - }, - 'zh-CN': { - nativeName: '中文(中国大陆)', - }, - 'zh-HK': { - nativeName: '中文(香港)', - }, - 'zh-SG': { - nativeName: '中文(新加坡)', - }, - 'zh-TW': { - nativeName: '中文(台灣)', - }, - 'zu-ZA': { - nativeName: 'isiZulu', - }, -}; diff --git a/packages/backend/src/misc/normalize-for-search.ts b/packages/backend/src/misc/normalize-for-search.ts deleted file mode 100644 index 200540566..000000000 --- a/packages/backend/src/misc/normalize-for-search.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function normalizeForSearch(tag: string): string { - // ref. - // - https://analytics-note.xyz/programming/unicode-normalization-forms/ - // - https://maku77.github.io/js/string/normalize.html - return tag.normalize('NFKC').toLowerCase(); -} diff --git a/packages/backend/src/misc/populate-emojis.ts b/packages/backend/src/misc/populate-emojis.ts deleted file mode 100644 index 6a185d09f..000000000 --- a/packages/backend/src/misc/populate-emojis.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { In, IsNull } from 'typeorm'; -import { Emojis } from '@/models/index.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { Note } from '@/models/entities/note.js'; -import { Cache } from './cache.js'; -import { isSelfHost, toPunyNullable } from './convert-host.js'; -import { decodeReaction } from './reaction-lib.js'; -import config from '@/config/index.js'; -import { query } from '@/prelude/url.js'; - -const cache = new Cache(1000 * 60 * 60 * 12); - -/** - * 添付用絵文字情報 - */ -type PopulatedEmoji = { - name: string; - url: string; -}; - -function normalizeHost(src: string | undefined, noteUserHost: string | null): string | null { - // クエリに使うホスト - let host = src === '.' ? null // .はローカルホスト (ここがマッチするのはリアクションのみ) - : src === undefined ? noteUserHost // ノートなどでホスト省略表記の場合はローカルホスト (ここがリアクションにマッチすることはない) - : isSelfHost(src) ? null // 自ホスト指定 - : (src || noteUserHost); // 指定されたホスト || ノートなどの所有者のホスト (こっちがリアクションにマッチすることはない) - - host = toPunyNullable(host); - - return host; -} - -function parseEmojiStr(emojiName: string, noteUserHost: string | null) { - const match = emojiName.match(/^(\w+)(?:@([\w.-]+))?$/); - if (!match) return { name: null, host: null }; - - const name = match[1]; - - // ホスト正規化 - const host = toPunyNullable(normalizeHost(match[2], noteUserHost)); - - return { name, host }; -} - -/** - * 添付用絵文字情報を解決する - * @param emojiName ノートやユーザープロフィールに添付された、またはリアクションのカスタム絵文字名 (:は含めない, リアクションでローカルホストの場合は@.を付ける (これはdecodeReactionで可能)) - * @param noteUserHost ノートやユーザープロフィールの所有者のホスト - * @returns 絵文字情報, nullは未マッチを意味する - */ -export async function populateEmoji(emojiName: string, noteUserHost: string | null): Promise { - const { name, host } = parseEmojiStr(emojiName, noteUserHost); - if (name == null) return null; - - const queryOrNull = async () => (await Emojis.findOneBy({ - name, - host: host ?? IsNull(), - })) || null; - - const emoji = await cache.fetch(`${name} ${host}`, queryOrNull); - - if (emoji == null) return null; - - const isLocal = emoji.host == null; - const emojiUrl = emoji.publicUrl || emoji.originalUrl; // || emoji.originalUrl してるのは後方互換性のため - const url = isLocal ? emojiUrl : `${config.url}/proxy/${encodeURIComponent((new URL(emojiUrl)).pathname)}?${query({ url: emojiUrl })}`; - - return { - name: emojiName, - url, - }; -} - -/** - * 複数の添付用絵文字情報を解決する (キャシュ付き, 存在しないものは結果から除外される) - */ -export async function populateEmojis(emojiNames: string[], noteUserHost: string | null): Promise { - const emojis = await Promise.all(emojiNames.map(x => populateEmoji(x, noteUserHost))); - return emojis.filter((x): x is PopulatedEmoji => x != null); -} - -export function aggregateNoteEmojis(notes: Note[]) { - let emojis: { name: string | null; host: string | null; }[] = []; - for (const note of notes) { - emojis = emojis.concat(note.emojis - .map(e => parseEmojiStr(e, note.userHost))); - if (note.renote) { - emojis = emojis.concat(note.renote.emojis - .map(e => parseEmojiStr(e, note.renote!.userHost))); - if (note.renote.user) { - emojis = emojis.concat(note.renote.user.emojis - .map(e => parseEmojiStr(e, note.renote!.userHost))); - } - } - const customReactions = Object.keys(note.reactions).map(x => decodeReaction(x)).filter(x => x.name != null) as typeof emojis; - emojis = emojis.concat(customReactions); - if (note.user) { - emojis = emojis.concat(note.user.emojis - .map(e => parseEmojiStr(e, note.userHost))); - } - } - return emojis.filter(x => x.name != null) as { name: string; host: string | null; }[]; -} - -/** - * 与えられた絵文字のリストをデータベースから取得し、キャッシュに追加します - */ -export async function prefetchEmojis(emojis: { name: string; host: string | null; }[]): Promise { - const notCachedEmojis = emojis.filter(emoji => cache.get(`${emoji.name} ${emoji.host}`) == null); - const emojisQuery: any[] = []; - const hosts = new Set(notCachedEmojis.map(e => e.host)); - for (const host of hosts) { - emojisQuery.push({ - name: In(notCachedEmojis.filter(e => e.host === host).map(e => e.name)), - host: host ?? IsNull(), - }); - } - const _emojis = emojisQuery.length > 0 ? await Emojis.find({ - where: emojisQuery, - select: ['name', 'host', 'originalUrl', 'publicUrl'], - }) : []; - for (const emoji of _emojis) { - cache.set(`${emoji.name} ${emoji.host}`, emoji); - } -} diff --git a/packages/backend/src/misc/reaction-lib.ts b/packages/backend/src/misc/reaction-lib.ts deleted file mode 100644 index fefc2781f..000000000 --- a/packages/backend/src/misc/reaction-lib.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* eslint-disable key-spacing */ -import { emojiRegex } from './emoji-regex.js'; -import { fetchMeta } from './fetch-meta.js'; -import { Emojis } from '@/models/index.js'; -import { toPunyNullable } from './convert-host.js'; -import { IsNull } from 'typeorm'; - -const legacies: Record = { - 'like': '👍', - 'love': '❤', // ここに記述する場合は異体字セレクタを入れない - 'laugh': '😆', - 'hmm': '🤔', - 'surprise': '😮', - 'congrats': '🎉', - 'angry': '💢', - 'confused': '😥', - 'rip': '😇', - 'pudding': '🍮', - 'star': '⭐', -}; - -export async function getFallbackReaction(): Promise { - const meta = await fetchMeta(); - return meta.useStarForReactionFallback ? '⭐' : '👍'; -} - -export function convertLegacyReactions(reactions: Record) { - const _reactions = {} as Record; - - for (const reaction of Object.keys(reactions)) { - if (reactions[reaction] <= 0) continue; - - if (Object.keys(legacies).includes(reaction)) { - if (_reactions[legacies[reaction]]) { - _reactions[legacies[reaction]] += reactions[reaction]; - } else { - _reactions[legacies[reaction]] = reactions[reaction]; - } - } else { - if (_reactions[reaction]) { - _reactions[reaction] += reactions[reaction]; - } else { - _reactions[reaction] = reactions[reaction]; - } - } - } - - const _reactions2 = {} as Record; - - for (const reaction of Object.keys(_reactions)) { - _reactions2[decodeReaction(reaction).reaction] = _reactions[reaction]; - } - - return _reactions2; -} - -export async function toDbReaction(reaction?: string | null, reacterHost?: string | null): Promise { - if (reaction == null) return await getFallbackReaction(); - - reacterHost = toPunyNullable(reacterHost); - - // 文字列タイプのリアクションを絵文字に変換 - if (Object.keys(legacies).includes(reaction)) return legacies[reaction]; - - // Unicode絵文字 - const match = emojiRegex.exec(reaction); - if (match) { - // 合字を含む1つの絵文字 - const unicode = match[0]; - - // 異体字セレクタ除去 - return unicode.match('\u200d') ? unicode : unicode.replace(/\ufe0f/g, ''); - } - - const custom = reaction.match(/^:([\w+-]+)(?:@\.)?:$/); - if (custom) { - const name = custom[1]; - const emoji = await Emojis.findOneBy({ - host: reacterHost ?? IsNull(), - name, - }); - - if (emoji) return reacterHost ? `:${name}@${reacterHost}:` : `:${name}:`; - } - - return await getFallbackReaction(); -} - -type DecodedReaction = { - /** - * リアクション名 (Unicode Emoji or ':name@hostname' or ':name@.') - */ - reaction: string; - - /** - * name (カスタム絵文字の場合name, Emojiクエリに使う) - */ - name?: string; - - /** - * host (カスタム絵文字の場合host, Emojiクエリに使う) - */ - host?: string | null; -}; - -export function decodeReaction(str: string): DecodedReaction { - const custom = str.match(/^:([\w+-]+)(?:@([\w.-]+))?:$/); - - if (custom) { - const name = custom[1]; - const host = custom[2] || null; - - return { - reaction: `:${name}@${host || '.'}:`, // ローカル分は@以降を省略するのではなく.にする - name, - host, - }; - } - - return { - reaction: str, - name: undefined, - host: undefined, - }; -} - -export function convertLegacyReaction(reaction: string): string { - reaction = decodeReaction(reaction).reaction; - if (Object.keys(legacies).includes(reaction)) return legacies[reaction]; - return reaction; -} diff --git a/packages/backend/src/misc/schema.ts b/packages/backend/src/misc/schema.ts deleted file mode 100644 index fdecc278d..000000000 --- a/packages/backend/src/misc/schema.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { - packedUserLiteSchema, - packedUserDetailedNotMeOnlySchema, - packedMeDetailedOnlySchema, - packedUserDetailedNotMeSchema, - packedMeDetailedSchema, - packedUserDetailedSchema, - packedUserSchema, -} from '@/models/schema/user.js'; -import { packedNoteSchema } from '@/models/schema/note.js'; -import { packedUserListSchema } from '@/models/schema/user-list.js'; -import { packedAppSchema } from '@/models/schema/app.js'; -import { packedMessagingMessageSchema } from '@/models/schema/messaging-message.js'; -import { packedNotificationSchema } from '@/models/schema/notification.js'; -import { packedDriveFileSchema } from '@/models/schema/drive-file.js'; -import { packedDriveFolderSchema } from '@/models/schema/drive-folder.js'; -import { packedFollowingSchema } from '@/models/schema/following.js'; -import { packedMutingSchema } from '@/models/schema/muting.js'; -import { packedBlockingSchema } from '@/models/schema/blocking.js'; -import { packedNoteReactionSchema } from '@/models/schema/note-reaction.js'; -import { packedHashtagSchema } from '@/models/schema/hashtag.js'; -import { packedPageSchema } from '@/models/schema/page.js'; -import { packedUserGroupSchema } from '@/models/schema/user-group.js'; -import { packedNoteFavoriteSchema } from '@/models/schema/note-favorite.js'; -import { packedChannelSchema } from '@/models/schema/channel.js'; -import { packedAntennaSchema } from '@/models/schema/antenna.js'; -import { packedClipSchema } from '@/models/schema/clip.js'; -import { packedFederationInstanceSchema } from '@/models/schema/federation-instance.js'; -import { packedQueueCountSchema } from '@/models/schema/queue.js'; -import { packedGalleryPostSchema } from '@/models/schema/gallery-post.js'; -import { packedEmojiSchema } from '@/models/schema/emoji.js'; - -export const refs = { - UserLite: packedUserLiteSchema, - UserDetailedNotMeOnly: packedUserDetailedNotMeOnlySchema, - MeDetailedOnly: packedMeDetailedOnlySchema, - UserDetailedNotMe: packedUserDetailedNotMeSchema, - MeDetailed: packedMeDetailedSchema, - UserDetailed: packedUserDetailedSchema, - User: packedUserSchema, - - UserList: packedUserListSchema, - UserGroup: packedUserGroupSchema, - App: packedAppSchema, - MessagingMessage: packedMessagingMessageSchema, - Note: packedNoteSchema, - NoteReaction: packedNoteReactionSchema, - NoteFavorite: packedNoteFavoriteSchema, - Notification: packedNotificationSchema, - DriveFile: packedDriveFileSchema, - DriveFolder: packedDriveFolderSchema, - Following: packedFollowingSchema, - Muting: packedMutingSchema, - Blocking: packedBlockingSchema, - Hashtag: packedHashtagSchema, - Page: packedPageSchema, - Channel: packedChannelSchema, - QueueCount: packedQueueCountSchema, - Antenna: packedAntennaSchema, - Clip: packedClipSchema, - FederationInstance: packedFederationInstanceSchema, - GalleryPost: packedGalleryPostSchema, - Emoji: packedEmojiSchema, -}; - -export type Packed = SchemaType; - -type TypeStringef = 'null' | 'boolean' | 'integer' | 'number' | 'string' | 'array' | 'object' | 'any'; -type StringDefToType = - T extends 'null' ? null : - T extends 'boolean' ? boolean : - T extends 'integer' ? number : - T extends 'number' ? number : - T extends 'string' ? string | Date : - T extends 'array' ? ReadonlyArray : - T extends 'object' ? Record : - any; - -// https://swagger.io/specification/?sbsearch=optional#schema-object -type OfSchema = { - readonly anyOf?: ReadonlyArray; - readonly oneOf?: ReadonlyArray; - readonly allOf?: ReadonlyArray; -} - -export interface Schema extends OfSchema { - readonly type?: TypeStringef; - readonly nullable?: boolean; - readonly optional?: boolean; - readonly items?: Schema; - readonly properties?: Obj; - readonly required?: ReadonlyArray, string>>; - readonly description?: string; - readonly example?: any; - readonly format?: string; - readonly ref?: keyof typeof refs; - readonly enum?: ReadonlyArray; - readonly default?: (this['type'] extends TypeStringef ? StringDefToType : any) | null; - readonly maxLength?: number; - readonly minLength?: number; - readonly maximum?: number; - readonly minimum?: number; - readonly pattern?: string; -} - -type RequiredPropertyNames = { - [K in keyof s]: - // K is not optional - s[K]['optional'] extends false ? K : - // K has default value - s[K]['default'] extends null | string | number | boolean | Record ? K : - never -}[keyof s]; - -export type Obj = Record; - -// https://github.com/misskey-dev/misskey/issues/8535 -// To avoid excessive stack depth error, -// deceive TypeScript with UnionToIntersection (or more precisely, `infer` expression within it). -export type ObjType = - UnionToIntersection< - { -readonly [R in RequiredPropertyNames]-?: SchemaType } & - { -readonly [R in RequiredProps]-?: SchemaType } & - { -readonly [P in keyof s]?: SchemaType } - >; - -type NullOrUndefined

= - p['type'] extends 'null' ? null : - p['type'] extends 'integer' ? number : - p['type'] extends 'number' ? number : - p['type'] extends 'string' ? ( - p['enum'] extends readonly string[] ? - p['enum'][number] : - p['format'] extends 'date-time' ? string : // Dateにする?? - string - ) : - p['type'] extends 'boolean' ? boolean : - p['type'] extends 'object' ? ( - p['ref'] extends keyof typeof refs ? Packed : - p['properties'] extends NonNullable ? ObjType[number]> : - p['anyOf'] extends ReadonlyArray ? UnionSchemaType & Partial>> : - p['allOf'] extends ReadonlyArray ? UnionToIntersection> : - any - ) : - p['type'] extends 'array' ? ( - p['items'] extends OfSchema ? ( - p['items']['anyOf'] extends ReadonlyArray ? UnionSchemaType>[] : - p['items']['oneOf'] extends ReadonlyArray ? ArrayUnion>> : - p['items']['allOf'] extends ReadonlyArray ? UnionToIntersection>>[] : - never - ) : - p['items'] extends NonNullable ? SchemaTypeDef[] : - any[] - ) : - p['oneOf'] extends ReadonlyArray ? UnionSchemaType : - any; - -export type SchemaType

= NullOrUndefined>; diff --git a/packages/backend/src/misc/truncate.ts b/packages/backend/src/misc/truncate.ts deleted file mode 100644 index cb120331a..000000000 --- a/packages/backend/src/misc/truncate.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { substring } from 'stringz'; - -export function truncate(input: string, size: number): string; -export function truncate(input: string | undefined, size: number): string | undefined; -export function truncate(input: string | undefined, size: number): string | undefined { - if (!input) { - return input; - } else { - return substring(input, 0, size); - } -} diff --git a/packages/backend/src/misc/webhook-cache.ts b/packages/backend/src/misc/webhook-cache.ts deleted file mode 100644 index 4bd233366..000000000 --- a/packages/backend/src/misc/webhook-cache.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Webhooks } from '@/models/index.js'; -import { Webhook } from '@/models/entities/webhook.js'; -import { subsdcriber } from '../db/redis.js'; - -let webhooksFetched = false; -let webhooks: Webhook[] = []; - -export async function getActiveWebhooks() { - if (!webhooksFetched) { - webhooks = await Webhooks.findBy({ - active: true, - }); - webhooksFetched = true; - } - - return webhooks; -} - -subsdcriber.on('message', async (_, data) => { - const obj = JSON.parse(data); - - if (obj.channel === 'internal') { - const { type, body } = obj.message; - switch (type) { - case 'webhookCreated': - if (body.active) { - webhooks.push(body); - } - break; - case 'webhookUpdated': - if (body.active) { - const i = webhooks.findIndex(a => a.id === body.id); - if (i > -1) { - webhooks[i] = body; - } else { - webhooks.push(body); - } - } else { - webhooks = webhooks.filter(a => a.id !== body.id); - } - break; - case 'webhookDeleted': - webhooks = webhooks.filter(a => a.id !== body.id); - break; - default: - break; - } - } -}); diff --git a/packages/backend/src/models/entities/abuse-user-report.ts b/packages/backend/src/models/entities/abuse-user-report.ts deleted file mode 100644 index 6ac563552..000000000 --- a/packages/backend/src/models/entities/abuse-user-report.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class AbuseUserReport { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the AbuseUserReport.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public targetUserId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public targetUser: User | null; - - @Index() - @Column(id()) - public reporterId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public reporter: User | null; - - @Column({ - ...id(), - nullable: true, - }) - public assigneeId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public assignee: User | null; - - @Index() - @Column('boolean', { - default: false, - }) - public resolved: boolean; - - @Column('boolean', { - default: false - }) - public forwarded: boolean; - - @Column('varchar', { - length: 2048, - }) - public comment: string; - - //#region Denormalized fields - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public targetUserHost: string | null; - - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public reporterHost: string | null; - //#endregion -} diff --git a/packages/backend/src/models/entities/ad.ts b/packages/backend/src/models/entities/ad.ts deleted file mode 100644 index 36b758f20..000000000 --- a/packages/backend/src/models/entities/ad.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Entity, Index, Column, PrimaryColumn } from 'typeorm'; -import { id } from '../id.js'; - -@Entity() -export class Ad { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Ad.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - comment: 'The expired date of the Ad.', - }) - public expiresAt: Date; - - @Column('varchar', { - length: 32, nullable: false, - }) - public place: string; - - // 今は使われていないが将来的に活用される可能性はある - @Column('varchar', { - length: 32, nullable: false, - }) - public priority: string; - - @Column('integer', { - default: 1, nullable: false, - }) - public ratio: number; - - @Column('varchar', { - length: 1024, nullable: false, - }) - public url: string; - - @Column('varchar', { - length: 1024, nullable: false, - }) - public imageUrl: string; - - @Column('varchar', { - length: 8192, nullable: false, - }) - public memo: string; - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} diff --git a/packages/backend/src/models/entities/announcement-read.ts b/packages/backend/src/models/entities/announcement-read.ts deleted file mode 100644 index e4d256a86..000000000 --- a/packages/backend/src/models/entities/announcement-read.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Announcement } from './announcement.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'announcementId'], { unique: true }) -export class AnnouncementRead { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the AnnouncementRead.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column(id()) - public announcementId: Announcement['id']; - - @ManyToOne(type => Announcement, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public announcement: Announcement | null; -} diff --git a/packages/backend/src/models/entities/antenna-note.ts b/packages/backend/src/models/entities/antenna-note.ts deleted file mode 100644 index fcca493fe..000000000 --- a/packages/backend/src/models/entities/antenna-note.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; -import { Note } from './note.js'; -import { Antenna } from './antenna.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['noteId', 'antennaId'], { unique: true }) -export class AntennaNote { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column({ - ...id(), - comment: 'The note ID.', - }) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - @Index() - @Column({ - ...id(), - comment: 'The antenna ID.', - }) - public antennaId: Antenna['id']; - - @ManyToOne(type => Antenna, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public antenna: Antenna | null; - - @Index() - @Column('boolean', { - default: false, - }) - public read: boolean; -} diff --git a/packages/backend/src/models/entities/antenna.ts b/packages/backend/src/models/entities/antenna.ts deleted file mode 100644 index 6c8bb13e5..000000000 --- a/packages/backend/src/models/entities/antenna.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { UserList } from './user-list.js'; -import { UserGroupJoining } from './user-group-joining.js'; - -@Entity() -export class Antenna { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the Antenna.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The owner ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - comment: 'The name of the Antenna.', - }) - public name: string; - - @Column('enum', { enum: ['home', 'all', 'users', 'list', 'group'] }) - public src: 'home' | 'all' | 'users' | 'list' | 'group'; - - @Column({ - ...id(), - nullable: true, - }) - public userListId: UserList['id'] | null; - - @ManyToOne(type => UserList, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userList: UserList | null; - - @Column({ - ...id(), - nullable: true, - }) - public userGroupJoiningId: UserGroupJoining['id'] | null; - - @ManyToOne(type => UserGroupJoining, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userGroupJoining: UserGroupJoining | null; - - @Column('varchar', { - length: 1024, array: true, - default: '{}', - }) - public users: string[]; - - @Column('jsonb', { - default: [], - }) - public keywords: string[][]; - - @Column('jsonb', { - default: [], - }) - public excludeKeywords: string[][]; - - @Column('boolean', { - default: false, - }) - public caseSensitive: boolean; - - @Column('boolean', { - default: false, - }) - public withReplies: boolean; - - @Column('boolean') - public withFile: boolean; - - @Column('varchar', { - length: 2048, nullable: true, - }) - public expression: string | null; - - @Column('boolean') - public notify: boolean; -} diff --git a/packages/backend/src/models/entities/app.ts b/packages/backend/src/models/entities/app.ts deleted file mode 100644 index 46c11548a..000000000 --- a/packages/backend/src/models/entities/app.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Entity, PrimaryColumn, Column, Index, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class App { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the App.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The owner ID.', - }) - public userId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'SET NULL', - nullable: true, - }) - public user: User | null; - - @Index() - @Column('varchar', { - length: 64, - comment: 'The secret key of the App.', - }) - public secret: string; - - @Column('varchar', { - length: 128, - comment: 'The name of the App.', - }) - public name: string; - - @Column('varchar', { - length: 512, - comment: 'The description of the App.', - }) - public description: string; - - @Column('varchar', { - length: 64, array: true, - comment: 'The permission of the App.', - }) - public permission: string[]; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The callbackUrl of the App.', - }) - public callbackUrl: string | null; -} diff --git a/packages/backend/src/models/entities/auth-session.ts b/packages/backend/src/models/entities/auth-session.ts deleted file mode 100644 index 295d1b486..000000000 --- a/packages/backend/src/models/entities/auth-session.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm'; -import { User } from './user.js'; -import { App } from './app.js'; -import { id } from '../id.js'; - -@Entity() -export class AuthSession { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the AuthSession.', - }) - public createdAt: Date; - - @Index() - @Column('varchar', { - length: 128, - }) - public token: string; - - @Column({ - ...id(), - nullable: true, - }) - public userId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - nullable: true, - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public appId: App['id']; - - @ManyToOne(type => App, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public app: App | null; -} diff --git a/packages/backend/src/models/entities/blocking.ts b/packages/backend/src/models/entities/blocking.ts deleted file mode 100644 index 4ac73a00b..000000000 --- a/packages/backend/src/models/entities/blocking.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['blockerId', 'blockeeId'], { unique: true }) -export class Blocking { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Blocking.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The blockee user ID.', - }) - public blockeeId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public blockee: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The blocker user ID.', - }) - public blockerId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public blocker: User | null; -} diff --git a/packages/backend/src/models/entities/channel-following.ts b/packages/backend/src/models/entities/channel-following.ts deleted file mode 100644 index 029dd6cf1..000000000 --- a/packages/backend/src/models/entities/channel-following.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { Channel } from './channel.js'; - -@Entity() -@Index(['followerId', 'followeeId'], { unique: true }) -export class ChannelFollowing { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the ChannelFollowing.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The followee channel ID.', - }) - public followeeId: Channel['id']; - - @ManyToOne(type => Channel, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public followee: Channel | null; - - @Index() - @Column({ - ...id(), - comment: 'The follower user ID.', - }) - public followerId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public follower: User | null; -} diff --git a/packages/backend/src/models/entities/channel-note-pining.ts b/packages/backend/src/models/entities/channel-note-pining.ts deleted file mode 100644 index 23be3b69d..000000000 --- a/packages/backend/src/models/entities/channel-note-pining.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { Note } from './note.js'; -import { Channel } from './channel.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['channelId', 'noteId'], { unique: true }) -export class ChannelNotePining { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the ChannelNotePining.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public channelId: Channel['id']; - - @ManyToOne(type => Channel, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public channel: Channel | null; - - @Column(id()) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; -} diff --git a/packages/backend/src/models/entities/channel.ts b/packages/backend/src/models/entities/channel.ts deleted file mode 100644 index abf6668bd..000000000 --- a/packages/backend/src/models/entities/channel.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { DriveFile } from './drive-file.js'; - -@Entity() -export class Channel { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Channel.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - nullable: true, - }) - public lastNotedAt: Date | null; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The owner ID.', - }) - public userId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - comment: 'The name of the Channel.', - }) - public name: string; - - @Column('varchar', { - length: 2048, nullable: true, - comment: 'The description of the Channel.', - }) - public description: string | null; - - @Column({ - ...id(), - nullable: true, - comment: 'The ID of banner Channel.', - }) - public bannerId: DriveFile['id'] | null; - - @ManyToOne(type => DriveFile, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public banner: DriveFile | null; - - @Index() - @Column('integer', { - default: 0, - comment: 'The count of notes.', - }) - public notesCount: number; - - @Index() - @Column('integer', { - default: 0, - comment: 'The count of users.', - }) - public usersCount: number; -} diff --git a/packages/backend/src/models/entities/clip-note.ts b/packages/backend/src/models/entities/clip-note.ts deleted file mode 100644 index 6f3688550..000000000 --- a/packages/backend/src/models/entities/clip-note.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; -import { Note } from './note.js'; -import { Clip } from './clip.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['noteId', 'clipId'], { unique: true }) -export class ClipNote { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column({ - ...id(), - comment: 'The note ID.', - }) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - @Index() - @Column({ - ...id(), - comment: 'The clip ID.', - }) - public clipId: Clip['id']; - - @ManyToOne(type => Clip, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public clip: Clip | null; -} diff --git a/packages/backend/src/models/entities/clip.ts b/packages/backend/src/models/entities/clip.ts deleted file mode 100644 index 1386684c3..000000000 --- a/packages/backend/src/models/entities/clip.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class Clip { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the Clip.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The owner ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - comment: 'The name of the Clip.', - }) - public name: string; - - @Column('boolean', { - default: false, - }) - public isPublic: boolean; - - @Column('varchar', { - length: 2048, nullable: true, - comment: 'The description of the Clip.', - }) - public description: string | null; -} diff --git a/packages/backend/src/models/entities/drive-file.ts b/packages/backend/src/models/entities/drive-file.ts deleted file mode 100644 index d410b1d42..000000000 --- a/packages/backend/src/models/entities/drive-file.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { id } from '../id.js'; -import { User } from './user.js'; -import { DriveFolder } from './drive-folder.js'; - -@Entity() -@Index(['userId', 'folderId', 'id']) -export class DriveFile { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the DriveFile.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The owner ID.', - }) - public userId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: 'The host of owner. It will be null if the user in local.', - }) - public userHost: string | null; - - @Index() - @Column('varchar', { - length: 32, - comment: 'The MD5 hash of the DriveFile.', - }) - public md5: string; - - @Column('varchar', { - length: 256, - comment: 'The file name of the DriveFile.', - }) - public name: string; - - @Index() - @Column('varchar', { - length: 128, - comment: 'The content type (MIME) of the DriveFile.', - }) - public type: string; - - @Column('integer', { - comment: 'The file size (bytes) of the DriveFile.', - }) - public size: number; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The comment of the DriveFile.', - }) - public comment: string | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'The BlurHash string.', - }) - public blurhash: string | null; - - @Column('jsonb', { - default: {}, - comment: 'The any properties of the DriveFile. For example, it includes image width/height.', - }) - public properties: { width?: number; height?: number; orientation?: number; avgColor?: string }; - - @Column('boolean') - public storedInternal: boolean; - - @Column('varchar', { - length: 512, - comment: 'The URL of the DriveFile.', - }) - public url: string; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URL of the thumbnail of the DriveFile.', - }) - public thumbnailUrl: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URL of the webpublic of the DriveFile.', - }) - public webpublicUrl: string | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public webpublicType: string | null; - - @Index({ unique: true }) - @Column('varchar', { - length: 256, nullable: true, - }) - public accessKey: string | null; - - @Index({ unique: true }) - @Column('varchar', { - length: 256, nullable: true, - }) - public thumbnailAccessKey: string | null; - - @Index({ unique: true }) - @Column('varchar', { - length: 256, nullable: true, - }) - public webpublicAccessKey: string | null; - - @Index() - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URI of the DriveFile. it will be null when the DriveFile is local.', - }) - public uri: string | null; - - @Column('varchar', { - length: 512, nullable: true, - }) - public src: string | null; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The parent folder ID. If null, it means the DriveFile is located in root.', - }) - public folderId: DriveFolder['id'] | null; - - @ManyToOne(type => DriveFolder, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public folder: DriveFolder | null; - - @Index() - @Column('boolean', { - default: false, - comment: 'Whether the DriveFile is NSFW.', - }) - public isSensitive: boolean; - - @Index() - @Column('boolean', { - default: false, - comment: 'Whether the DriveFile is NSFW. (predict)', - }) - public maybeSensitive: boolean; - - @Index() - @Column('boolean', { - default: false, - }) - public maybePorn: boolean; - - /** - * 外部の(信頼されていない)URLへの直リンクか否か - */ - @Index() - @Column('boolean', { - default: false, - comment: 'Whether the DriveFile is direct link to remote server.', - }) - public isLink: boolean; - - @Column('jsonb', { - default: {}, - nullable: true, - }) - public requestHeaders: Record | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public requestIp: string | null; -} diff --git a/packages/backend/src/models/entities/drive-folder.ts b/packages/backend/src/models/entities/drive-folder.ts deleted file mode 100644 index d4022c6eb..000000000 --- a/packages/backend/src/models/entities/drive-folder.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { JoinColumn, ManyToOne, Entity, PrimaryColumn, Index, Column } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class DriveFolder { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the DriveFolder.', - }) - public createdAt: Date; - - @Column('varchar', { - length: 128, - comment: 'The name of the DriveFolder.', - }) - public name: string; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The owner ID.', - }) - public userId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The parent folder ID. If null, it means the DriveFolder is located in root.', - }) - public parentId: DriveFolder['id'] | null; - - @ManyToOne(type => DriveFolder, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public parent: DriveFolder | null; -} diff --git a/packages/backend/src/models/entities/emoji.ts b/packages/backend/src/models/entities/emoji.ts deleted file mode 100644 index 7332dd185..000000000 --- a/packages/backend/src/models/entities/emoji.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; -import { id } from '../id.js'; - -@Entity() -@Index(['name', 'host'], { unique: true }) -export class Emoji { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - nullable: true, - }) - public updatedAt: Date | null; - - @Index() - @Column('varchar', { - length: 128, - }) - public name: string; - - @Index() - @Column('varchar', { - length: 128, nullable: true, - }) - public host: string | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public category: string | null; - - @Column('varchar', { - length: 512, - }) - public originalUrl: string; - - @Column('varchar', { - length: 512, - default: '', - }) - public publicUrl: string; - - @Column('varchar', { - length: 512, nullable: true, - }) - public uri: string | null; - - // publicUrlの方のtypeが入る - @Column('varchar', { - length: 64, nullable: true, - }) - public type: string | null; - - @Column('varchar', { - array: true, length: 128, default: '{}', - }) - public aliases: string[]; -} diff --git a/packages/backend/src/models/entities/follow-request.ts b/packages/backend/src/models/entities/follow-request.ts deleted file mode 100644 index 89946f6d3..000000000 --- a/packages/backend/src/models/entities/follow-request.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['followerId', 'followeeId'], { unique: true }) -export class FollowRequest { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the FollowRequest.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The followee user ID.', - }) - public followeeId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public followee: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The follower user ID.', - }) - public followerId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public follower: User | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'id of Follow Activity.', - }) - public requestId: string | null; - - //#region Denormalized fields - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public followerHost: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followerInbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followerSharedInbox: string | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public followeeHost: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followeeInbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followeeSharedInbox: string | null; - //#endregion -} diff --git a/packages/backend/src/models/entities/following.ts b/packages/backend/src/models/entities/following.ts deleted file mode 100644 index b283ca7e8..000000000 --- a/packages/backend/src/models/entities/following.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['followerId', 'followeeId'], { unique: true }) -export class Following { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Following.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The followee user ID.', - }) - public followeeId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public followee: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The follower user ID.', - }) - public followerId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public follower: User | null; - - //#region Denormalized fields - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public followerHost: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followerInbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followerSharedInbox: string | null; - - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public followeeHost: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followeeInbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: '[Denormalized]', - }) - public followeeSharedInbox: string | null; - //#endregion -} diff --git a/packages/backend/src/models/entities/gallery-like.ts b/packages/backend/src/models/entities/gallery-like.ts deleted file mode 100644 index 4ce166d19..000000000 --- a/packages/backend/src/models/entities/gallery-like.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { GalleryPost } from './gallery-post.js'; - -@Entity() -@Index(['userId', 'postId'], { unique: true }) -export class GalleryLike { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone') - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public postId: GalleryPost['id']; - - @ManyToOne(type => GalleryPost, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public post: GalleryPost | null; -} diff --git a/packages/backend/src/models/entities/gallery-post.ts b/packages/backend/src/models/entities/gallery-post.ts deleted file mode 100644 index 774cb946e..000000000 --- a/packages/backend/src/models/entities/gallery-post.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { DriveFile } from './drive-file.js'; - -@Entity() -export class GalleryPost { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the GalleryPost.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - comment: 'The updated date of the GalleryPost.', - }) - public updatedAt: Date; - - @Column('varchar', { - length: 256, - }) - public title: string; - - @Column('varchar', { - length: 2048, nullable: true, - }) - public description: string | null; - - @Index() - @Column({ - ...id(), - comment: 'The ID of author.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - array: true, default: '{}', - }) - public fileIds: DriveFile['id'][]; - - @Index() - @Column('boolean', { - default: false, - comment: 'Whether the post is sensitive.', - }) - public isSensitive: boolean; - - @Index() - @Column('integer', { - default: 0, - }) - public likedCount: number; - - @Index() - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public tags: string[]; - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} diff --git a/packages/backend/src/models/entities/hashtag.ts b/packages/backend/src/models/entities/hashtag.ts deleted file mode 100644 index 6bd991f62..000000000 --- a/packages/backend/src/models/entities/hashtag.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { Entity, PrimaryColumn, Index, Column } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class Hashtag { - @PrimaryColumn(id()) - public id: string; - - @Index({ unique: true }) - @Column('varchar', { - length: 128, - }) - public name: string; - - @Column({ - ...id(), - array: true, - }) - public mentionedUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public mentionedUsersCount: number; - - @Column({ - ...id(), - array: true, - }) - public mentionedLocalUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public mentionedLocalUsersCount: number; - - @Column({ - ...id(), - array: true, - }) - public mentionedRemoteUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public mentionedRemoteUsersCount: number; - - @Column({ - ...id(), - array: true, - }) - public attachedUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public attachedUsersCount: number; - - @Column({ - ...id(), - array: true, - }) - public attachedLocalUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public attachedLocalUsersCount: number; - - @Column({ - ...id(), - array: true, - }) - public attachedRemoteUserIds: User['id'][]; - - @Index() - @Column('integer', { - default: 0, - }) - public attachedRemoteUsersCount: number; -} diff --git a/packages/backend/src/models/entities/instance.ts b/packages/backend/src/models/entities/instance.ts deleted file mode 100644 index 7ea923438..000000000 --- a/packages/backend/src/models/entities/instance.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { Entity, PrimaryColumn, Index, Column } from 'typeorm'; -import { id } from '../id.js'; - -@Entity() -export class Instance { - @PrimaryColumn(id()) - public id: string; - - /** - * このインスタンスを捕捉した日時 - */ - @Index() - @Column('timestamp with time zone', { - comment: 'The caught date of the Instance.', - }) - public caughtAt: Date; - - /** - * ホスト - */ - @Index({ unique: true }) - @Column('varchar', { - length: 128, - comment: 'The host of the Instance.', - }) - public host: string; - - /** - * インスタンスのユーザー数 - */ - @Column('integer', { - default: 0, - comment: 'The count of the users of the Instance.', - }) - public usersCount: number; - - /** - * インスタンスの投稿数 - */ - @Column('integer', { - default: 0, - comment: 'The count of the notes of the Instance.', - }) - public notesCount: number; - - /** - * このインスタンスのユーザーからフォローされている、自インスタンスのユーザーの数 - */ - @Column('integer', { - default: 0, - }) - public followingCount: number; - - /** - * このインスタンスのユーザーをフォローしている、自インスタンスのユーザーの数 - */ - @Column('integer', { - default: 0, - }) - public followersCount: number; - - /** - * 直近のリクエスト送信日時 - */ - @Column('timestamp with time zone', { - nullable: true, - }) - public latestRequestSentAt: Date | null; - - /** - * 直近のリクエスト送信時のHTTPステータスコード - */ - @Column('integer', { - nullable: true, - }) - public latestStatus: number | null; - - /** - * 直近のリクエスト受信日時 - */ - @Column('timestamp with time zone', { - nullable: true, - }) - public latestRequestReceivedAt: Date | null; - - /** - * このインスタンスと最後にやり取りした日時 - */ - @Column('timestamp with time zone') - public lastCommunicatedAt: Date; - - /** - * このインスタンスと不通かどうか - */ - @Column('boolean', { - default: false, - }) - public isNotResponding: boolean; - - /** - * このインスタンスへの配信を停止するか - */ - @Index() - @Column('boolean', { - default: false, - }) - public isSuspended: boolean; - - @Column('varchar', { - length: 64, nullable: true, - comment: 'The software of the Instance.', - }) - public softwareName: string | null; - - @Column('varchar', { - length: 64, nullable: true, - }) - public softwareVersion: string | null; - - @Column('boolean', { - nullable: true, - }) - public openRegistrations: boolean | null; - - @Column('varchar', { - length: 256, nullable: true, - }) - public name: string | null; - - @Column('varchar', { - length: 4096, nullable: true, - }) - public description: string | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public maintainerName: string | null; - - @Column('varchar', { - length: 256, nullable: true, - }) - public maintainerEmail: string | null; - - @Column('varchar', { - length: 256, nullable: true, - }) - public iconUrl: string | null; - - @Column('varchar', { - length: 256, nullable: true, - }) - public faviconUrl: string | null; - - @Column('varchar', { - length: 64, nullable: true, - }) - public themeColor: string | null; - - @Column('timestamp with time zone', { - nullable: true, - }) - public infoUpdatedAt: Date | null; -} diff --git a/packages/backend/src/models/entities/messaging-message.ts b/packages/backend/src/models/entities/messaging-message.ts deleted file mode 100644 index 099fb7aa0..000000000 --- a/packages/backend/src/models/entities/messaging-message.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { DriveFile } from './drive-file.js'; -import { id } from '../id.js'; -import { UserGroup } from './user-group.js'; - -@Entity() -export class MessagingMessage { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the MessagingMessage.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The sender user ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), nullable: true, - comment: 'The recipient user ID.', - }) - public recipientId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public recipient: User | null; - - @Index() - @Column({ - ...id(), nullable: true, - comment: 'The recipient group ID.', - }) - public groupId: UserGroup['id'] | null; - - @ManyToOne(type => UserGroup, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public group: UserGroup | null; - - @Column('varchar', { - length: 4096, nullable: true, - }) - public text: string | null; - - @Column('boolean', { - default: false, - }) - public isRead: boolean; - - @Column('varchar', { - length: 512, nullable: true, - }) - public uri: string | null; - - @Column({ - ...id(), - array: true, default: '{}', - }) - public reads: User['id'][]; - - @Column({ - ...id(), - nullable: true, - }) - public fileId: DriveFile['id'] | null; - - @ManyToOne(type => DriveFile, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public file: DriveFile | null; -} diff --git a/packages/backend/src/models/entities/meta.ts b/packages/backend/src/models/entities/meta.ts deleted file mode 100644 index d33ff2519..000000000 --- a/packages/backend/src/models/entities/meta.ts +++ /dev/null @@ -1,462 +0,0 @@ -import { Entity, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm'; -import { id } from '../id.js'; -import { User } from './user.js'; -import { Clip } from './clip.js'; - -@Entity() -export class Meta { - @PrimaryColumn({ - type: 'varchar', - length: 32, - }) - public id: string; - - @Column('varchar', { - length: 128, nullable: true, - }) - public name: string | null; - - @Column('varchar', { - length: 1024, nullable: true, - }) - public description: string | null; - - /** - * メンテナの名前 - */ - @Column('varchar', { - length: 128, nullable: true, - }) - public maintainerName: string | null; - - /** - * メンテナの連絡先 - */ - @Column('varchar', { - length: 128, nullable: true, - }) - public maintainerEmail: string | null; - - @Column('boolean', { - default: false, - }) - public disableRegistration: boolean; - - @Column('boolean', { - default: false, - }) - public disableLocalTimeline: boolean; - - @Column('boolean', { - default: false, - }) - public disableGlobalTimeline: boolean; - - @Column('boolean', { - default: false, - }) - public useStarForReactionFallback: boolean; - - @Column('varchar', { - length: 64, array: true, default: '{}', - }) - public langs: string[]; - - @Column('varchar', { - length: 256, array: true, default: '{}', - }) - public pinnedUsers: string[]; - - @Column('varchar', { - length: 256, array: true, default: '{}', - }) - public hiddenTags: string[]; - - @Column('varchar', { - length: 256, array: true, default: '{}', - }) - public blockedHosts: string[]; - - @Column('varchar', { - length: 512, array: true, default: '{/featured,/channels,/explore,/pages,/about-misskey}', - }) - public pinnedPages: string[]; - - @Column({ - ...id(), - nullable: true, - }) - public pinnedClipId: Clip['id'] | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public themeColor: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - default: '/assets/ai.png', - }) - public mascotImageUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public bannerUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public backgroundImageUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public logoImageUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - default: 'https://xn--931a.moe/aiart/yubitun.png', - }) - public errorImageUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public iconUrl: string | null; - - @Column('boolean', { - default: true, - }) - public cacheRemoteFiles: boolean; - - @Column({ - ...id(), - nullable: true, - }) - public proxyAccountId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public proxyAccount: User | null; - - @Column('boolean', { - default: false, - }) - public emailRequiredForSignup: boolean; - - @Column('boolean', { - default: false, - }) - public enableHcaptcha: boolean; - - @Column('varchar', { - length: 64, - nullable: true, - }) - public hcaptchaSiteKey: string | null; - - @Column('varchar', { - length: 64, - nullable: true, - }) - public hcaptchaSecretKey: string | null; - - @Column('boolean', { - default: false, - }) - public enableRecaptcha: boolean; - - @Column('varchar', { - length: 64, - nullable: true, - }) - public recaptchaSiteKey: string | null; - - @Column('varchar', { - length: 64, - nullable: true, - }) - public recaptchaSecretKey: string | null; - - @Column('enum', { - enum: ['none', 'all', 'local', 'remote'], - default: 'none', - }) - public sensitiveMediaDetection: 'none' | 'all' | 'local' | 'remote'; - - @Column('enum', { - enum: ['medium', 'low', 'high', 'veryLow', 'veryHigh'], - default: 'medium', - }) - public sensitiveMediaDetectionSensitivity: 'medium' | 'low' | 'high' | 'veryLow' | 'veryHigh'; - - @Column('boolean', { - default: false, - }) - public setSensitiveFlagAutomatically: boolean; - - @Column('boolean', { - default: false, - }) - public enableSensitiveMediaDetectionForVideos: boolean; - - @Column('integer', { - default: 1024, - comment: 'Drive capacity of a local user (MB)', - }) - public localDriveCapacityMb: number; - - @Column('integer', { - default: 32, - comment: 'Drive capacity of a remote user (MB)', - }) - public remoteDriveCapacityMb: number; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public summalyProxy: string | null; - - @Column('boolean', { - default: false, - }) - public enableEmail: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public email: string | null; - - @Column('boolean', { - default: false, - }) - public smtpSecure: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public smtpHost: string | null; - - @Column('integer', { - nullable: true, - }) - public smtpPort: number | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public smtpUser: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public smtpPass: string | null; - - @Column('boolean', { - default: false, - }) - public enableServiceWorker: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public swPublicKey: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public swPrivateKey: string | null; - - @Column('boolean', { - default: false, - }) - public enableTwitterIntegration: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public twitterConsumerKey: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public twitterConsumerSecret: string | null; - - @Column('boolean', { - default: false, - }) - public enableGithubIntegration: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public githubClientId: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public githubClientSecret: string | null; - - @Column('boolean', { - default: false, - }) - public enableDiscordIntegration: boolean; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public discordClientId: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public discordClientSecret: string | null; - - @Column('varchar', { - length: 128, - nullable: true, - }) - public deeplAuthKey: string | null; - - @Column('boolean', { - default: false, - }) - public deeplIsPro: boolean; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public ToSUrl: string | null; - - @Column('varchar', { - length: 512, - default: 'https://github.com/misskey-dev/misskey', - nullable: false, - }) - public repositoryUrl: string; - - @Column('varchar', { - length: 512, - default: 'https://github.com/misskey-dev/misskey/issues/new', - nullable: true, - }) - public feedbackUrl: string | null; - - @Column('varchar', { - length: 8192, - nullable: true, - }) - public defaultLightTheme: string | null; - - @Column('varchar', { - length: 8192, - nullable: true, - }) - public defaultDarkTheme: string | null; - - @Column('boolean', { - default: false, - }) - public useObjectStorage: boolean; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageBucket: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStoragePrefix: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageBaseUrl: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageEndpoint: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageRegion: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageAccessKey: string | null; - - @Column('varchar', { - length: 512, - nullable: true, - }) - public objectStorageSecretKey: string | null; - - @Column('integer', { - nullable: true, - }) - public objectStoragePort: number | null; - - @Column('boolean', { - default: true, - }) - public objectStorageUseSSL: boolean; - - @Column('boolean', { - default: true, - }) - public objectStorageUseProxy: boolean; - - @Column('boolean', { - default: false, - }) - public objectStorageSetPublicRead: boolean; - - @Column('boolean', { - default: true, - }) - public objectStorageS3ForcePathStyle: boolean; - - @Column('boolean', { - default: false, - }) - public enableIpLogging: boolean; - - @Column('boolean', { - default: true, - }) - public enableActiveEmailValidation: boolean; -} diff --git a/packages/backend/src/models/entities/muted-note.ts b/packages/backend/src/models/entities/muted-note.ts deleted file mode 100644 index 96a4fa8e3..000000000 --- a/packages/backend/src/models/entities/muted-note.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { mutedNoteReasons } from '../../types.js'; - -@Entity() -@Index(['noteId', 'userId'], { unique: true }) -export class MutedNote { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column({ - ...id(), - comment: 'The note ID.', - }) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - @Index() - @Column({ - ...id(), - comment: 'The user ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - /** - * ミュートされた理由。 - */ - @Index() - @Column('enum', { - enum: mutedNoteReasons, - comment: 'The reason of the MutedNote.', - }) - public reason: typeof mutedNoteReasons[number]; -} diff --git a/packages/backend/src/models/entities/muting.ts b/packages/backend/src/models/entities/muting.ts deleted file mode 100644 index 8f9e69063..000000000 --- a/packages/backend/src/models/entities/muting.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['muterId', 'muteeId'], { unique: true }) -export class Muting { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Muting.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - nullable: true, - }) - public expiresAt: Date | null; - - @Index() - @Column({ - ...id(), - comment: 'The mutee user ID.', - }) - public muteeId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public mutee: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The muter user ID.', - }) - public muterId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public muter: User | null; -} diff --git a/packages/backend/src/models/entities/note-favorite.ts b/packages/backend/src/models/entities/note-favorite.ts deleted file mode 100644 index fe065b77a..000000000 --- a/packages/backend/src/models/entities/note-favorite.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'noteId'], { unique: true }) -export class NoteFavorite { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the NoteFavorite.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; -} diff --git a/packages/backend/src/models/entities/note-reaction.ts b/packages/backend/src/models/entities/note-reaction.ts deleted file mode 100644 index d7bc60989..000000000 --- a/packages/backend/src/models/entities/note-reaction.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Note } from './note.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'noteId'], { unique: true }) -export class NoteReaction { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the NoteReaction.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user?: User | null; - - @Index() - @Column(id()) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note?: Note | null; - - // TODO: 対象noteのuserIdを非正規化したい(「受け取ったリアクション一覧」のようなものを(JOIN無しで)実装したいため) - - @Column('varchar', { - length: 260, - }) - public reaction: string; -} diff --git a/packages/backend/src/models/entities/note-thread-muting.ts b/packages/backend/src/models/entities/note-thread-muting.ts deleted file mode 100644 index 8c5f7bbab..000000000 --- a/packages/backend/src/models/entities/note-thread-muting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Note } from './note.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'threadId'], { unique: true }) -export class NoteThreadMuting { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column('varchar', { - length: 256, - }) - public threadId: string; -} diff --git a/packages/backend/src/models/entities/note-watching.ts b/packages/backend/src/models/entities/note-watching.ts deleted file mode 100644 index ed82e7dfe..000000000 --- a/packages/backend/src/models/entities/note-watching.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Note } from './note.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'noteId'], { unique: true }) -export class NoteWatching { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the NoteWatching.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The watcher ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The target Note ID.', - }) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - //#region Denormalized fields - @Index() - @Column({ - ...id(), - comment: '[Denormalized]', - }) - public noteUserId: Note['userId']; - //#endregion -} diff --git a/packages/backend/src/models/entities/note.ts b/packages/backend/src/models/entities/note.ts deleted file mode 100644 index 0ffeb85f6..000000000 --- a/packages/backend/src/models/entities/note.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { DriveFile } from './drive-file.js'; -import { id } from '../id.js'; -import { noteVisibilities } from '../../types.js'; -import { Channel } from './channel.js'; - -@Entity() -@Index('IDX_NOTE_TAGS', { synchronize: false }) -@Index('IDX_NOTE_MENTIONS', { synchronize: false }) -@Index('IDX_NOTE_VISIBLE_USER_IDS', { synchronize: false }) -export class Note { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Note.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The ID of reply target.', - }) - public replyId: Note['id'] | null; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public reply: Note | null; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The ID of renote target.', - }) - public renoteId: Note['id'] | null; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public renote: Note | null; - - @Index() - @Column('varchar', { - length: 256, nullable: true, - }) - public threadId: string | null; - - @Column('text', { - nullable: true, - }) - public text: string | null; - - @Column('varchar', { - length: 256, nullable: true, - }) - public name: string | null; - - @Column('varchar', { - length: 512, nullable: true, - }) - public cw: string | null; - - @Index() - @Column({ - ...id(), - comment: 'The ID of author.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('boolean', { - default: false, - }) - public localOnly: boolean; - - @Column('smallint', { - default: 0, - }) - public renoteCount: number; - - @Column('smallint', { - default: 0, - }) - public repliesCount: number; - - @Column('jsonb', { - default: {}, - }) - public reactions: Record; - - /** - * public ... 公開 - * home ... ホームタイムライン(ユーザーページのタイムライン含む)のみに流す - * followers ... フォロワーのみ - * specified ... visibleUserIds で指定したユーザーのみ - */ - @Column('enum', { enum: noteVisibilities }) - public visibility: typeof noteVisibilities[number]; - - @Index({ unique: true }) - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URI of a note. it will be null when the note is local.', - }) - public uri: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The human readable url of a note. it will be null when the note is local.', - }) - public url: string | null; - - @Column('integer', { - default: 0, select: false, - }) - public score: number; - - @Index() - @Column({ - ...id(), - array: true, default: '{}', - }) - public fileIds: DriveFile['id'][]; - - @Index() - @Column('varchar', { - length: 256, array: true, default: '{}', - }) - public attachedFileTypes: string[]; - - @Index() - @Column({ - ...id(), - array: true, default: '{}', - }) - public visibleUserIds: User['id'][]; - - @Index() - @Column({ - ...id(), - array: true, default: '{}', - }) - public mentions: User['id'][]; - - @Column('text', { - default: '[]', - }) - public mentionedRemoteUsers: string; - - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public emojis: string[]; - - @Index() - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public tags: string[]; - - @Column('boolean', { - default: false, - }) - public hasPoll: boolean; - - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The ID of source channel.', - }) - public channelId: Channel['id'] | null; - - @ManyToOne(type => Channel, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public channel: Channel | null; - - //#region Denormalized fields - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public userHost: string | null; - - @Column({ - ...id(), - nullable: true, - comment: '[Denormalized]', - }) - public replyUserId: User['id'] | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public replyUserHost: string | null; - - @Column({ - ...id(), - nullable: true, - comment: '[Denormalized]', - }) - public renoteUserId: User['id'] | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public renoteUserHost: string | null; - //#endregion - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} - -export type IMentionedRemoteUsers = { - uri: string; - url?: string; - username: string; - host: string; -}[]; diff --git a/packages/backend/src/models/entities/notification.ts b/packages/backend/src/models/entities/notification.ts deleted file mode 100644 index db3dba363..000000000 --- a/packages/backend/src/models/entities/notification.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { Entity, Index, JoinColumn, ManyToOne, Column, PrimaryColumn } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { Note } from './note.js'; -import { FollowRequest } from './follow-request.js'; -import { UserGroupInvitation } from './user-group-invitation.js'; -import { AccessToken } from './access-token.js'; -import { notificationTypes } from '@/types.js'; - -@Entity() -export class Notification { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Notification.', - }) - public createdAt: Date; - - /** - * 通知の受信者 - */ - @Index() - @Column({ - ...id(), - comment: 'The ID of recipient user of the Notification.', - }) - public notifieeId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public notifiee: User | null; - - /** - * 通知の送信者(initiator) - */ - @Index() - @Column({ - ...id(), - nullable: true, - comment: 'The ID of sender user of the Notification.', - }) - public notifierId: User['id'] | null; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public notifier: User | null; - - /** - * 通知の種類。 - * follow - フォローされた - * mention - 投稿で自分が言及された - * reply - (自分または自分がWatchしている)投稿が返信された - * renote - (自分または自分がWatchしている)投稿がRenoteされた - * quote - (自分または自分がWatchしている)投稿が引用Renoteされた - * reaction - (自分または自分がWatchしている)投稿にリアクションされた - * pollVote - (自分または自分がWatchしている)投稿のアンケートに投票された - * pollEnded - 自分のアンケートもしくは自分が投票したアンケートが終了した - * receiveFollowRequest - フォローリクエストされた - * followRequestAccepted - 自分の送ったフォローリクエストが承認された - * groupInvited - グループに招待された - * app - アプリ通知 - */ - @Index() - @Column('enum', { - enum: notificationTypes, - comment: 'The type of the Notification.', - }) - public type: typeof notificationTypes[number]; - - /** - * 通知が読まれたかどうか - */ - @Index() - @Column('boolean', { - default: false, - comment: 'Whether the Notification is read.', - }) - public isRead: boolean; - - @Column({ - ...id(), - nullable: true, - }) - public noteId: Note['id'] | null; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - @Column({ - ...id(), - nullable: true, - }) - public followRequestId: FollowRequest['id'] | null; - - @ManyToOne(type => FollowRequest, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public followRequest: FollowRequest | null; - - @Column({ - ...id(), - nullable: true, - }) - public userGroupInvitationId: UserGroupInvitation['id'] | null; - - @ManyToOne(type => UserGroupInvitation, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userGroupInvitation: UserGroupInvitation | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public reaction: string | null; - - @Column('integer', { - nullable: true, - }) - public choice: number | null; - - /** - * アプリ通知のbody - */ - @Column('varchar', { - length: 2048, nullable: true, - }) - public customBody: string | null; - - /** - * アプリ通知のheader - * (省略時はアプリ名で表示されることを期待) - */ - @Column('varchar', { - length: 256, nullable: true, - }) - public customHeader: string | null; - - /** - * アプリ通知のicon(URL) - * (省略時はアプリアイコンで表示されることを期待) - */ - @Column('varchar', { - length: 1024, nullable: true, - }) - public customIcon: string | null; - - /** - * アプリ通知のアプリ(のトークン) - */ - @Index() - @Column({ - ...id(), - nullable: true, - }) - public appAccessTokenId: AccessToken['id'] | null; - - @ManyToOne(type => AccessToken, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public appAccessToken: AccessToken | null; -} diff --git a/packages/backend/src/models/entities/page-like.ts b/packages/backend/src/models/entities/page-like.ts deleted file mode 100644 index 17f4ebf52..000000000 --- a/packages/backend/src/models/entities/page-like.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { Page } from './page.js'; - -@Entity() -@Index(['userId', 'pageId'], { unique: true }) -export class PageLike { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone') - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public pageId: Page['id']; - - @ManyToOne(type => Page, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public page: Page | null; -} diff --git a/packages/backend/src/models/entities/page.ts b/packages/backend/src/models/entities/page.ts deleted file mode 100644 index baad3a36f..000000000 --- a/packages/backend/src/models/entities/page.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; -import { DriveFile } from './drive-file.js'; - -@Entity() -@Index(['userId', 'name'], { unique: true }) -export class Page { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the Page.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - comment: 'The updated date of the Page.', - }) - public updatedAt: Date; - - @Column('varchar', { - length: 256, - }) - public title: string; - - @Index() - @Column('varchar', { - length: 256, - }) - public name: string; - - @Column('varchar', { - length: 256, nullable: true, - }) - public summary: string | null; - - @Column('boolean') - public alignCenter: boolean; - - @Column('boolean', { - default: false, - }) - public hideTitleWhenPinned: boolean; - - @Column('varchar', { - length: 32, - }) - public font: string; - - @Index() - @Column({ - ...id(), - comment: 'The ID of author.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column({ - ...id(), - nullable: true, - }) - public eyeCatchingImageId: DriveFile['id'] | null; - - @ManyToOne(type => DriveFile, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public eyeCatchingImage: DriveFile | null; - - @Column('jsonb', { - default: [], - }) - public content: Record[]; - - @Column('jsonb', { - default: [], - }) - public variables: Record[]; - - @Column('varchar', { - length: 16384, - default: '', - }) - public script: string; - - /** - * public ... 公開 - * followers ... フォロワーのみ - * specified ... visibleUserIds で指定したユーザーのみ - */ - @Column('enum', { enum: ['public', 'followers', 'specified'] }) - public visibility: 'public' | 'followers' | 'specified'; - - @Index() - @Column({ - ...id(), - array: true, default: '{}', - }) - public visibleUserIds: User['id'][]; - - @Column('integer', { - default: 0, - }) - public likedCount: number; - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} diff --git a/packages/backend/src/models/entities/password-reset-request.ts b/packages/backend/src/models/entities/password-reset-request.ts deleted file mode 100644 index 05e62cc5a..000000000 --- a/packages/backend/src/models/entities/password-reset-request.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { PrimaryColumn, Entity, Index, Column, ManyToOne, JoinColumn } from 'typeorm'; -import { id } from '../id.js'; -import { User } from './user.js'; - -@Entity() -export class PasswordResetRequest { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone') - public createdAt: Date; - - @Index({ unique: true }) - @Column('varchar', { - length: 256, - }) - public token: string; - - @Index() - @Column({ - ...id(), - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; -} diff --git a/packages/backend/src/models/entities/promo-note.ts b/packages/backend/src/models/entities/promo-note.ts deleted file mode 100644 index d110b81e9..000000000 --- a/packages/backend/src/models/entities/promo-note.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class PromoNote { - @PrimaryColumn(id()) - public noteId: Note['id']; - - @OneToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; - - @Column('timestamp with time zone') - public expiresAt: Date; - - //#region Denormalized fields - @Index() - @Column({ - ...id(), - comment: '[Denormalized]', - }) - public userId: User['id']; - //#endregion -} diff --git a/packages/backend/src/models/entities/promo-read.ts b/packages/backend/src/models/entities/promo-read.ts deleted file mode 100644 index a63b79cd1..000000000 --- a/packages/backend/src/models/entities/promo-read.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'noteId'], { unique: true }) -export class PromoRead { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the PromoRead.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; -} diff --git a/packages/backend/src/models/entities/registry-item.ts b/packages/backend/src/models/entities/registry-item.ts deleted file mode 100644 index 283796df9..000000000 --- a/packages/backend/src/models/entities/registry-item.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -// TODO: 同じdomain、同じscope、同じkeyのレコードは二つ以上存在しないように制約付けたい -@Entity() -export class RegistryItem { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the RegistryItem.', - }) - public createdAt: Date; - - @Column('timestamp with time zone', { - comment: 'The updated date of the RegistryItem.', - }) - public updatedAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The owner ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 1024, - comment: 'The key of the RegistryItem.', - }) - public key: string; - - @Column('jsonb', { - default: {}, nullable: true, - comment: 'The value of the RegistryItem.', - }) - public value: any | null; - - @Index() - @Column('varchar', { - length: 1024, array: true, default: '{}', - }) - public scope: string[]; - - // サードパーティアプリに開放するときのためのカラム - @Index() - @Column('varchar', { - length: 512, nullable: true, - }) - public domain: string | null; -} diff --git a/packages/backend/src/models/entities/relay.ts b/packages/backend/src/models/entities/relay.ts deleted file mode 100644 index 94d192957..000000000 --- a/packages/backend/src/models/entities/relay.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; -import { id } from '../id.js'; - -@Entity() -export class Relay { - @PrimaryColumn(id()) - public id: string; - - @Index({ unique: true }) - @Column('varchar', { - length: 512, nullable: false, - }) - public inbox: string; - - @Column('enum', { - enum: ['requesting', 'accepted', 'rejected'], - }) - public status: 'requesting' | 'accepted' | 'rejected'; -} diff --git a/packages/backend/src/models/entities/signin.ts b/packages/backend/src/models/entities/signin.ts deleted file mode 100644 index ba81f45e4..000000000 --- a/packages/backend/src/models/entities/signin.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class Signin { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the Signin.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - }) - public ip: string; - - @Column('jsonb') - public headers: Record; - - @Column('boolean') - public success: boolean; -} diff --git a/packages/backend/src/models/entities/user-group-invitation.ts b/packages/backend/src/models/entities/user-group-invitation.ts deleted file mode 100644 index 10f357049..000000000 --- a/packages/backend/src/models/entities/user-group-invitation.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { UserGroup } from './user-group.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'userGroupId'], { unique: true }) -export class UserGroupInvitation { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroupInvitation.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The user ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The group ID.', - }) - public userGroupId: UserGroup['id']; - - @ManyToOne(type => UserGroup, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userGroup: UserGroup | null; -} diff --git a/packages/backend/src/models/entities/user-group-joining.ts b/packages/backend/src/models/entities/user-group-joining.ts deleted file mode 100644 index 62a814218..000000000 --- a/packages/backend/src/models/entities/user-group-joining.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { UserGroup } from './user-group.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'userGroupId'], { unique: true }) -export class UserGroupJoining { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroupJoining.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The user ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The group ID.', - }) - public userGroupId: UserGroup['id']; - - @ManyToOne(type => UserGroup, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userGroup: UserGroup | null; -} diff --git a/packages/backend/src/models/entities/user-group.ts b/packages/backend/src/models/entities/user-group.ts deleted file mode 100644 index 8d5de1d92..000000000 --- a/packages/backend/src/models/entities/user-group.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class UserGroup { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the UserGroup.', - }) - public createdAt: Date; - - @Column('varchar', { - length: 256, - }) - public name: string; - - @Index() - @Column({ - ...id(), - comment: 'The ID of owner.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('boolean', { - default: false, - }) - public isPrivate: boolean; - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} diff --git a/packages/backend/src/models/entities/user-ip.ts b/packages/backend/src/models/entities/user-ip.ts deleted file mode 100644 index 543e9e728..000000000 --- a/packages/backend/src/models/entities/user-ip.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; -import { id } from '../id.js'; -import { Note } from './note.js'; -import { User } from './user.js'; - -@Entity() -@Index(['userId', 'ip'], { unique: true }) -export class UserIp { - @PrimaryGeneratedColumn() - public id: string; - - @Column('timestamp with time zone', { - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @Column('varchar', { - length: 128, - }) - public ip: string; -} diff --git a/packages/backend/src/models/entities/user-list-joining.ts b/packages/backend/src/models/entities/user-list-joining.ts deleted file mode 100644 index 12f28c414..000000000 --- a/packages/backend/src/models/entities/user-list-joining.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { UserList } from './user-list.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'userListId'], { unique: true }) -export class UserListJoining { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the UserListJoining.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The user ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Index() - @Column({ - ...id(), - comment: 'The list ID.', - }) - public userListId: UserList['id']; - - @ManyToOne(type => UserList, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public userList: UserList | null; -} diff --git a/packages/backend/src/models/entities/user-list.ts b/packages/backend/src/models/entities/user-list.ts deleted file mode 100644 index ca69394e9..000000000 --- a/packages/backend/src/models/entities/user-list.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -export class UserList { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the UserList.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The owner ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - comment: 'The name of the UserList.', - }) - public name: string; -} diff --git a/packages/backend/src/models/entities/user-note-pining.ts b/packages/backend/src/models/entities/user-note-pining.ts deleted file mode 100644 index c91ab7fdd..000000000 --- a/packages/backend/src/models/entities/user-note-pining.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { id } from '../id.js'; - -@Entity() -@Index(['userId', 'noteId'], { unique: true }) -export class UserNotePining { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the UserNotePinings.', - }) - public createdAt: Date; - - @Index() - @Column(id()) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column(id()) - public noteId: Note['id']; - - @ManyToOne(type => Note, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public note: Note | null; -} diff --git a/packages/backend/src/models/entities/user-pending.ts b/packages/backend/src/models/entities/user-pending.ts deleted file mode 100644 index 763794884..000000000 --- a/packages/backend/src/models/entities/user-pending.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; -import { id } from '../id.js'; - -@Entity() -export class UserPending { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone') - public createdAt: Date; - - @Index({ unique: true }) - @Column('varchar', { - length: 128, - }) - public code: string; - - @Column('varchar', { - length: 128, - }) - public username: string; - - @Column('varchar', { - length: 128, - }) - public email: string; - - @Column('varchar', { - length: 128, - }) - public password: string; -} diff --git a/packages/backend/src/models/entities/user-profile.ts b/packages/backend/src/models/entities/user-profile.ts deleted file mode 100644 index 3654b0a99..000000000 --- a/packages/backend/src/models/entities/user-profile.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm'; -import { ffVisibility, notificationTypes } from '@/types.js'; -import { id } from '../id.js'; -import { User } from './user.js'; -import { Page } from './page.js'; - -// TODO: このテーブルで管理している情報すべてレジストリで管理するようにしても良いかも -// ただ、「emailVerified が true なユーザーを find する」のようなクエリは書けなくなるからウーン -@Entity() -export class UserProfile { - @PrimaryColumn(id()) - public userId: User['id']; - - @OneToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'The location of the User.', - }) - public location: string | null; - - @Column('char', { - length: 10, nullable: true, - comment: 'The birthday (YYYY-MM-DD) of the User.', - }) - public birthday: string | null; - - @Column('varchar', { - length: 2048, nullable: true, - comment: 'The description (bio) of the User.', - }) - public description: string | null; - - @Column('jsonb', { - default: [], - }) - public fields: { - name: string; - value: string; - }[]; - - @Column('varchar', { - length: 32, nullable: true, - }) - public lang: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'Remote URL of the user.', - }) - public url: string | null; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'The email address of the User.', - }) - public email: string | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public emailVerifyCode: string | null; - - @Column('boolean', { - default: false, - }) - public emailVerified: boolean; - - @Column('jsonb', { - default: ['follow', 'receiveFollowRequest', 'groupInvited'], - }) - public emailNotificationTypes: string[]; - - @Column('boolean', { - default: false, - }) - public publicReactions: boolean; - - @Column('enum', { - enum: ffVisibility, - default: 'public', - }) - public ffVisibility: typeof ffVisibility[number]; - - @Column('varchar', { - length: 128, nullable: true, - }) - public twoFactorTempSecret: string | null; - - @Column('varchar', { - length: 128, nullable: true, - }) - public twoFactorSecret: string | null; - - @Column('boolean', { - default: false, - }) - public twoFactorEnabled: boolean; - - @Column('boolean', { - default: false, - }) - public securityKeysAvailable: boolean; - - @Column('boolean', { - default: false, - }) - public usePasswordLessLogin: boolean; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'The password hash of the User. It will be null if the origin of the user is local.', - }) - public password: string | null; - - @Column('varchar', { - length: 8192, default: '', - }) - public moderationNote: string | null; - - // TODO: そのうち消す - @Column('jsonb', { - default: {}, - comment: 'The client-specific data of the User.', - }) - public clientData: Record; - - // TODO: そのうち消す - @Column('jsonb', { - default: {}, - comment: 'The room data of the User.', - }) - public room: Record; - - @Column('boolean', { - default: false, - }) - public autoAcceptFollowed: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether reject index by crawler.', - }) - public noCrawle: boolean; - - @Column('boolean', { - default: false, - }) - public alwaysMarkNsfw: boolean; - - @Column('boolean', { - default: false, - }) - public autoSensitive: boolean; - - @Column('boolean', { - default: false, - }) - public carefulBot: boolean; - - @Column('boolean', { - default: true, - }) - public injectFeaturedNote: boolean; - - @Column('boolean', { - default: true, - }) - public receiveAnnouncementEmail: boolean; - - @Column({ - ...id(), - nullable: true, - }) - public pinnedPageId: Page['id'] | null; - - @OneToOne(type => Page, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public pinnedPage: Page | null; - - @Column('jsonb', { - default: {}, - }) - public integrations: Record; - - @Index() - @Column('boolean', { - default: false, select: false, - }) - public enableWordMute: boolean; - - @Column('jsonb', { - default: [], - }) - public mutedWords: string[][]; - - @Column('jsonb', { - default: [], - comment: 'List of instances muted by the user.', - }) - public mutedInstances: string[]; - - @Column('enum', { - enum: notificationTypes, - array: true, - default: [], - }) - public mutingNotificationTypes: typeof notificationTypes[number][]; - - //#region Denormalized fields - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: '[Denormalized]', - }) - public userHost: string | null; - //#endregion - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} diff --git a/packages/backend/src/models/entities/user.ts b/packages/backend/src/models/entities/user.ts deleted file mode 100644 index bc9446be4..000000000 --- a/packages/backend/src/models/entities/user.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm'; -import { id } from '../id.js'; -import { DriveFile } from './drive-file.js'; - -@Entity() -@Index(['usernameLower', 'host'], { unique: true }) -export class User { - @PrimaryColumn(id()) - public id: string; - - @Index() - @Column('timestamp with time zone', { - comment: 'The created date of the User.', - }) - public createdAt: Date; - - @Index() - @Column('timestamp with time zone', { - nullable: true, - comment: 'The updated date of the User.', - }) - public updatedAt: Date | null; - - @Column('timestamp with time zone', { - nullable: true, - }) - public lastFetchedAt: Date | null; - - @Index() - @Column('timestamp with time zone', { - nullable: true, - }) - public lastActiveDate: Date | null; - - @Column('boolean', { - default: false, - }) - public hideOnlineStatus: boolean; - - @Column('varchar', { - length: 128, - comment: 'The username of the User.', - }) - public username: string; - - @Index() - @Column('varchar', { - length: 128, select: false, - comment: 'The username (lowercased) of the User.', - }) - public usernameLower: string; - - @Column('varchar', { - length: 128, nullable: true, - comment: 'The name of the User.', - }) - public name: string | null; - - @Column('integer', { - default: 0, - comment: 'The count of followers.', - }) - public followersCount: number; - - @Column('integer', { - default: 0, - comment: 'The count of following.', - }) - public followingCount: number; - - @Column('integer', { - default: 0, - comment: 'The count of notes.', - }) - public notesCount: number; - - @Column({ - ...id(), - nullable: true, - comment: 'The ID of avatar DriveFile.', - }) - public avatarId: DriveFile['id'] | null; - - @OneToOne(type => DriveFile, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public avatar: DriveFile | null; - - @Column({ - ...id(), - nullable: true, - comment: 'The ID of banner DriveFile.', - }) - public bannerId: DriveFile['id'] | null; - - @OneToOne(type => DriveFile, { - onDelete: 'SET NULL', - }) - @JoinColumn() - public banner: DriveFile | null; - - @Index() - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public tags: string[]; - - @Column('boolean', { - default: false, - comment: 'Whether the User is suspended.', - }) - public isSuspended: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is silenced.', - }) - public isSilenced: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is locked.', - }) - public isLocked: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is a bot.', - }) - public isBot: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is a cat.', - }) - public isCat: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is the admin.', - }) - public isAdmin: boolean; - - @Column('boolean', { - default: false, - comment: 'Whether the User is a moderator.', - }) - public isModerator: boolean; - - @Index() - @Column('boolean', { - default: true, - comment: 'Whether the User is explorable.', - }) - public isExplorable: boolean; - - // アカウントが削除されたかどうかのフラグだが、完全に削除される際は物理削除なので実質削除されるまでの「削除が進行しているかどうか」のフラグ - @Column('boolean', { - default: false, - comment: 'Whether the User is deleted.', - }) - public isDeleted: boolean; - - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public emojis: string[]; - - @Index() - @Column('varchar', { - length: 128, nullable: true, - comment: 'The host of the User. It will be null if the origin of the user is local.', - }) - public host: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The inbox URL of the User. It will be null if the origin of the user is local.', - }) - public inbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The sharedInbox URL of the User. It will be null if the origin of the user is local.', - }) - public sharedInbox: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The featured URL of the User. It will be null if the origin of the user is local.', - }) - public featured: string | null; - - @Index() - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URI of the User. It will be null if the origin of the user is local.', - }) - public uri: string | null; - - @Column('varchar', { - length: 512, nullable: true, - comment: 'The URI of the user Follower Collection. It will be null if the origin of the user is local.', - }) - public followersUri: string | null; - - @Column('boolean', { - default: false, - comment: 'Whether to show users replying to other users in the timeline.', - }) - public showTimelineReplies: boolean; - - @Index({ unique: true }) - @Column('char', { - length: 16, nullable: true, unique: true, - comment: 'The native access token of the User. It will be null if the origin of the user is local.', - }) - public token: string | null; - - @Column('integer', { - nullable: true, - comment: 'Overrides user drive capacity limit', - }) - public driveCapacityOverrideMb: number | null; - - constructor(data: Partial) { - if (data == null) return; - - for (const [k, v] of Object.entries(data)) { - (this as any)[k] = v; - } - } -} - -export interface ILocalUser extends User { - host: null; -} - -export interface IRemoteUser extends User { - host: string; -} - -export type CacheableLocalUser = ILocalUser; - -export type CacheableRemoteUser = IRemoteUser; - -export type CacheableUser = CacheableLocalUser | CacheableRemoteUser; diff --git a/packages/backend/src/models/entities/webhook.ts b/packages/backend/src/models/entities/webhook.ts deleted file mode 100644 index 56b411f87..000000000 --- a/packages/backend/src/models/entities/webhook.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; - -export const webhookEventTypes = ['mention', 'unfollow', 'follow', 'followed', 'note', 'reply', 'renote', 'reaction'] as const; - -@Entity() -export class Webhook { - @PrimaryColumn(id()) - public id: string; - - @Column('timestamp with time zone', { - comment: 'The created date of the Antenna.', - }) - public createdAt: Date; - - @Index() - @Column({ - ...id(), - comment: 'The owner ID.', - }) - public userId: User['id']; - - @ManyToOne(type => User, { - onDelete: 'CASCADE', - }) - @JoinColumn() - public user: User | null; - - @Column('varchar', { - length: 128, - comment: 'The name of the Antenna.', - }) - public name: string; - - @Index() - @Column('varchar', { - length: 128, array: true, default: '{}', - }) - public on: (typeof webhookEventTypes)[number][]; - - @Column('varchar', { - length: 1024, - }) - public url: string; - - @Column('varchar', { - length: 1024, - }) - public secret: string; - - @Index() - @Column('boolean', { - default: true, - }) - public active: boolean; - - /** - * 直近のリクエスト送信日時 - */ - @Column('timestamp with time zone', { - nullable: true, - }) - public latestSentAt: Date | null; - - /** - * 直近のリクエスト送信時のHTTPステータスコード - */ - @Column('integer', { - nullable: true, - }) - public latestStatus: number | null; -} diff --git a/packages/backend/src/models/index.ts b/packages/backend/src/models/index.ts deleted file mode 100644 index 3f7326931..000000000 --- a/packages/backend/src/models/index.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { } from 'typeorm'; -import { db } from '@/db/postgre.js'; - -import { Announcement } from './entities/announcement.js'; -import { AnnouncementRead } from './entities/announcement-read.js'; -import { Instance } from './entities/instance.js'; -import { Poll } from './entities/poll.js'; -import { PollVote } from './entities/poll-vote.js'; -import { Meta } from './entities/meta.js'; -import { SwSubscription } from './entities/sw-subscription.js'; -import { NoteWatching } from './entities/note-watching.js'; -import { NoteThreadMuting } from './entities/note-thread-muting.js'; -import { NoteUnread } from './entities/note-unread.js'; -import { RegistrationTicket } from './entities/registration-tickets.js'; -import { UserRepository } from './repositories/user.js'; -import { NoteRepository } from './repositories/note.js'; -import { DriveFileRepository } from './repositories/drive-file.js'; -import { DriveFolderRepository } from './repositories/drive-folder.js'; -import { AccessToken } from './entities/access-token.js'; -import { UserNotePining } from './entities/user-note-pining.js'; -import { SigninRepository } from './repositories/signin.js'; -import { MessagingMessageRepository } from './repositories/messaging-message.js'; -import { UserListRepository } from './repositories/user-list.js'; -import { UserListJoining } from './entities/user-list-joining.js'; -import { UserGroupRepository } from './repositories/user-group.js'; -import { UserGroupJoining } from './entities/user-group-joining.js'; -import { UserGroupInvitationRepository } from './repositories/user-group-invitation.js'; -import { FollowRequestRepository } from './repositories/follow-request.js'; -import { MutingRepository } from './repositories/muting.js'; -import { BlockingRepository } from './repositories/blocking.js'; -import { NoteReactionRepository } from './repositories/note-reaction.js'; -import { NotificationRepository } from './repositories/notification.js'; -import { NoteFavoriteRepository } from './repositories/note-favorite.js'; -import { UserPublickey } from './entities/user-publickey.js'; -import { UserKeypair } from './entities/user-keypair.js'; -import { AppRepository } from './repositories/app.js'; -import { FollowingRepository } from './repositories/following.js'; -import { AbuseUserReportRepository } from './repositories/abuse-user-report.js'; -import { AuthSessionRepository } from './repositories/auth-session.js'; -import { UserProfile } from './entities/user-profile.js'; -import { AttestationChallenge } from './entities/attestation-challenge.js'; -import { UserSecurityKey } from './entities/user-security-key.js'; -import { HashtagRepository } from './repositories/hashtag.js'; -import { PageRepository } from './repositories/page.js'; -import { PageLikeRepository } from './repositories/page-like.js'; -import { GalleryPostRepository } from './repositories/gallery-post.js'; -import { GalleryLikeRepository } from './repositories/gallery-like.js'; -import { ModerationLogRepository } from './repositories/moderation-logs.js'; -import { UsedUsername } from './entities/used-username.js'; -import { ClipRepository } from './repositories/clip.js'; -import { ClipNote } from './entities/clip-note.js'; -import { AntennaRepository } from './repositories/antenna.js'; -import { AntennaNote } from './entities/antenna-note.js'; -import { PromoNote } from './entities/promo-note.js'; -import { PromoRead } from './entities/promo-read.js'; -import { EmojiRepository } from './repositories/emoji.js'; -import { RelayRepository } from './repositories/relay.js'; -import { ChannelRepository } from './repositories/channel.js'; -import { MutedNote } from './entities/muted-note.js'; -import { ChannelFollowing } from './entities/channel-following.js'; -import { ChannelNotePining } from './entities/channel-note-pining.js'; -import { RegistryItem } from './entities/registry-item.js'; -import { Ad } from './entities/ad.js'; -import { PasswordResetRequest } from './entities/password-reset-request.js'; -import { UserPending } from './entities/user-pending.js'; -import { InstanceRepository } from './repositories/instance.js'; -import { Webhook } from './entities/webhook.js'; -import { UserIp } from './entities/user-ip.js'; - -export const Announcements = db.getRepository(Announcement); -export const AnnouncementReads = db.getRepository(AnnouncementRead); -export const Apps = (AppRepository); -export const Notes = (NoteRepository); -export const NoteFavorites = (NoteFavoriteRepository); -export const NoteWatchings = db.getRepository(NoteWatching); -export const NoteThreadMutings = db.getRepository(NoteThreadMuting); -export const NoteReactions = (NoteReactionRepository); -export const NoteUnreads = db.getRepository(NoteUnread); -export const Polls = db.getRepository(Poll); -export const PollVotes = db.getRepository(PollVote); -export const Users = (UserRepository); -export const UserProfiles = db.getRepository(UserProfile); -export const UserKeypairs = db.getRepository(UserKeypair); -export const UserPendings = db.getRepository(UserPending); -export const AttestationChallenges = db.getRepository(AttestationChallenge); -export const UserSecurityKeys = db.getRepository(UserSecurityKey); -export const UserPublickeys = db.getRepository(UserPublickey); -export const UserLists = (UserListRepository); -export const UserListJoinings = db.getRepository(UserListJoining); -export const UserGroups = (UserGroupRepository); -export const UserGroupJoinings = db.getRepository(UserGroupJoining); -export const UserGroupInvitations = (UserGroupInvitationRepository); -export const UserNotePinings = db.getRepository(UserNotePining); -export const UserIps = db.getRepository(UserIp); -export const UsedUsernames = db.getRepository(UsedUsername); -export const Followings = (FollowingRepository); -export const FollowRequests = (FollowRequestRepository); -export const Instances = (InstanceRepository); -export const Emojis = (EmojiRepository); -export const DriveFiles = (DriveFileRepository); -export const DriveFolders = (DriveFolderRepository); -export const Notifications = (NotificationRepository); -export const Metas = db.getRepository(Meta); -export const Mutings = (MutingRepository); -export const Blockings = (BlockingRepository); -export const SwSubscriptions = db.getRepository(SwSubscription); -export const Hashtags = (HashtagRepository); -export const AbuseUserReports = (AbuseUserReportRepository); -export const RegistrationTickets = db.getRepository(RegistrationTicket); -export const AuthSessions = (AuthSessionRepository); -export const AccessTokens = db.getRepository(AccessToken); -export const Signins = (SigninRepository); -export const MessagingMessages = (MessagingMessageRepository); -export const Pages = (PageRepository); -export const PageLikes = (PageLikeRepository); -export const GalleryPosts = (GalleryPostRepository); -export const GalleryLikes = (GalleryLikeRepository); -export const ModerationLogs = (ModerationLogRepository); -export const Clips = (ClipRepository); -export const ClipNotes = db.getRepository(ClipNote); -export const Antennas = (AntennaRepository); -export const AntennaNotes = db.getRepository(AntennaNote); -export const PromoNotes = db.getRepository(PromoNote); -export const PromoReads = db.getRepository(PromoRead); -export const Relays = (RelayRepository); -export const MutedNotes = db.getRepository(MutedNote); -export const Channels = (ChannelRepository); -export const ChannelFollowings = db.getRepository(ChannelFollowing); -export const ChannelNotePinings = db.getRepository(ChannelNotePining); -export const RegistryItems = db.getRepository(RegistryItem); -export const Webhooks = db.getRepository(Webhook); -export const Ads = db.getRepository(Ad); -export const PasswordResetRequests = db.getRepository(PasswordResetRequest); diff --git a/packages/backend/src/models/repositories/abuse-user-report.ts b/packages/backend/src/models/repositories/abuse-user-report.ts deleted file mode 100644 index 36d7ab90c..000000000 --- a/packages/backend/src/models/repositories/abuse-user-report.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Users } from '../index.js'; -import { AbuseUserReport } from '@/models/entities/abuse-user-report.js'; -import { awaitAll } from '@/prelude/await-all.js'; - -export const AbuseUserReportRepository = db.getRepository(AbuseUserReport).extend({ - async pack( - src: AbuseUserReport['id'] | AbuseUserReport, - ) { - const report = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: report.id, - createdAt: report.createdAt.toISOString(), - comment: report.comment, - resolved: report.resolved, - reporterId: report.reporterId, - targetUserId: report.targetUserId, - assigneeId: report.assigneeId, - reporter: Users.pack(report.reporter || report.reporterId, null, { - detail: true, - }), - targetUser: Users.pack(report.targetUser || report.targetUserId, null, { - detail: true, - }), - assignee: report.assigneeId ? Users.pack(report.assignee || report.assigneeId, null, { - detail: true, - }) : null, - forwarded: report.forwarded, - }); - }, - - packMany( - reports: any[], - ) { - return Promise.all(reports.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/antenna.ts b/packages/backend/src/models/repositories/antenna.ts deleted file mode 100644 index 70180e2de..000000000 --- a/packages/backend/src/models/repositories/antenna.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Antenna } from '@/models/entities/antenna.js'; -import { Packed } from '@/misc/schema.js'; -import { AntennaNotes, UserGroupJoinings } from '../index.js'; - -export const AntennaRepository = db.getRepository(Antenna).extend({ - async pack( - src: Antenna['id'] | Antenna, - ): Promise> { - const antenna = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - const hasUnreadNote = (await AntennaNotes.findOneBy({ antennaId: antenna.id, read: false })) != null; - const userGroupJoining = antenna.userGroupJoiningId ? await UserGroupJoinings.findOneBy({ id: antenna.userGroupJoiningId }) : null; - - return { - id: antenna.id, - createdAt: antenna.createdAt.toISOString(), - name: antenna.name, - keywords: antenna.keywords, - excludeKeywords: antenna.excludeKeywords, - src: antenna.src, - userListId: antenna.userListId, - userGroupId: userGroupJoining ? userGroupJoining.userGroupId : null, - users: antenna.users, - caseSensitive: antenna.caseSensitive, - notify: antenna.notify, - withReplies: antenna.withReplies, - withFile: antenna.withFile, - hasUnreadNote, - }; - }, -}); diff --git a/packages/backend/src/models/repositories/app.ts b/packages/backend/src/models/repositories/app.ts deleted file mode 100644 index e08dd6f0e..000000000 --- a/packages/backend/src/models/repositories/app.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { App } from '@/models/entities/app.js'; -import { AccessTokens } from '../index.js'; -import { Packed } from '@/misc/schema.js'; -import { User } from '../entities/user.js'; - -export const AppRepository = db.getRepository(App).extend({ - async pack( - src: App['id'] | App, - me?: { id: User['id'] } | null | undefined, - options?: { - detail?: boolean, - includeSecret?: boolean, - includeProfileImageIds?: boolean - } - ): Promise> { - const opts = Object.assign({ - detail: false, - includeSecret: false, - includeProfileImageIds: false, - }, options); - - const app = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: app.id, - name: app.name, - callbackUrl: app.callbackUrl, - permission: app.permission, - ...(opts.includeSecret ? { secret: app.secret } : {}), - ...(me ? { - isAuthorized: await AccessTokens.countBy({ - appId: app.id, - userId: me.id, - }).then(count => count > 0), - } : {}), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/auth-session.ts b/packages/backend/src/models/repositories/auth-session.ts deleted file mode 100644 index 3f1f6f489..000000000 --- a/packages/backend/src/models/repositories/auth-session.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Apps } from '../index.js'; -import { AuthSession } from '@/models/entities/auth-session.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { User } from '@/models/entities/user.js'; - -export const AuthSessionRepository = db.getRepository(AuthSession).extend({ - async pack( - src: AuthSession['id'] | AuthSession, - me?: { id: User['id'] } | null | undefined - ) { - const session = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: session.id, - app: Apps.pack(session.appId, me), - token: session.token, - }); - }, -}); diff --git a/packages/backend/src/models/repositories/blocking.ts b/packages/backend/src/models/repositories/blocking.ts deleted file mode 100644 index 1d569fb87..000000000 --- a/packages/backend/src/models/repositories/blocking.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Users } from '../index.js'; -import { Blocking } from '@/models/entities/blocking.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; -import { User } from '@/models/entities/user.js'; - -export const BlockingRepository = db.getRepository(Blocking).extend({ - async pack( - src: Blocking['id'] | Blocking, - me?: { id: User['id'] } | null | undefined - ): Promise> { - const blocking = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: blocking.id, - createdAt: blocking.createdAt.toISOString(), - blockeeId: blocking.blockeeId, - blockee: Users.pack(blocking.blockeeId, me, { - detail: true, - }), - }); - }, - - packMany( - blockings: any[], - me: { id: User['id'] } - ) { - return Promise.all(blockings.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/channel.ts b/packages/backend/src/models/repositories/channel.ts deleted file mode 100644 index 213ac3671..000000000 --- a/packages/backend/src/models/repositories/channel.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Channel } from '@/models/entities/channel.js'; -import { Packed } from '@/misc/schema.js'; -import { DriveFiles, ChannelFollowings, NoteUnreads } from '../index.js'; -import { User } from '@/models/entities/user.js'; - -export const ChannelRepository = db.getRepository(Channel).extend({ - async pack( - src: Channel['id'] | Channel, - me?: { id: User['id'] } | null | undefined, - ): Promise> { - const channel = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - const meId = me ? me.id : null; - - const banner = channel.bannerId ? await DriveFiles.findOneBy({ id: channel.bannerId }) : null; - - const hasUnreadNote = meId ? (await NoteUnreads.findOneBy({ noteChannelId: channel.id, userId: meId })) != null : undefined; - - const following = meId ? await ChannelFollowings.findOneBy({ - followerId: meId, - followeeId: channel.id, - }) : null; - - return { - id: channel.id, - createdAt: channel.createdAt.toISOString(), - lastNotedAt: channel.lastNotedAt ? channel.lastNotedAt.toISOString() : null, - name: channel.name, - description: channel.description, - userId: channel.userId, - bannerUrl: banner ? DriveFiles.getPublicUrl(banner, false) : null, - usersCount: channel.usersCount, - notesCount: channel.notesCount, - - ...(me ? { - isFollowing: following != null, - hasUnreadNote, - } : {}), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/clip.ts b/packages/backend/src/models/repositories/clip.ts deleted file mode 100644 index b4a342905..000000000 --- a/packages/backend/src/models/repositories/clip.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Clip } from '@/models/entities/clip.js'; -import { Packed } from '@/misc/schema.js'; -import { Users } from '../index.js'; -import { awaitAll } from '@/prelude/await-all.js'; - -export const ClipRepository = db.getRepository(Clip).extend({ - async pack( - src: Clip['id'] | Clip, - ): Promise> { - const clip = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: clip.id, - createdAt: clip.createdAt.toISOString(), - userId: clip.userId, - user: Users.pack(clip.user || clip.userId), - name: clip.name, - description: clip.description, - isPublic: clip.isPublic, - }); - }, - - packMany( - clips: Clip[], - ) { - return Promise.all(clips.map(x => this.pack(x))); - }, -}); - diff --git a/packages/backend/src/models/repositories/drive-file.ts b/packages/backend/src/models/repositories/drive-file.ts deleted file mode 100644 index 0d589d4f1..000000000 --- a/packages/backend/src/models/repositories/drive-file.ts +++ /dev/null @@ -1,188 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { User } from '@/models/entities/user.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { awaitAll, Promiseable } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; -import config from '@/config/index.js'; -import { query, appendQuery } from '@/prelude/url.js'; -import { Meta } from '@/models/entities/meta.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Users, DriveFolders } from '../index.js'; - -type PackOptions = { - detail?: boolean, - self?: boolean, - withUser?: boolean, -}; - -export const DriveFileRepository = db.getRepository(DriveFile).extend({ - validateFileName(name: string): boolean { - return ( - (name.trim().length > 0) && - (name.length <= 200) && - (name.indexOf('\\') === -1) && - (name.indexOf('/') === -1) && - (name.indexOf('..') === -1) - ); - }, - - getPublicProperties(file: DriveFile): DriveFile['properties'] { - if (file.properties.orientation != null) { - // TODO - //const properties = structuredClone(file.properties); - const properties = JSON.parse(JSON.stringify(file.properties)); - if (file.properties.orientation >= 5) { - [properties.width, properties.height] = [properties.height, properties.width]; - } - properties.orientation = undefined; - return properties; - } - - return file.properties; - }, - - getPublicUrl(file: DriveFile, thumbnail = false): string | null { - // リモートかつメディアプロキシ - if (file.uri != null && file.userHost != null && config.mediaProxy != null) { - return appendQuery(config.mediaProxy, query({ - url: file.uri, - thumbnail: thumbnail ? '1' : undefined, - })); - } - - // リモートかつ期限切れはローカルプロキシを試みる - if (file.uri != null && file.isLink && config.proxyRemoteFiles) { - const key = thumbnail ? file.thumbnailAccessKey : file.webpublicAccessKey; - - if (key && !key.match('/')) { // 古いものはここにオブジェクトストレージキーが入ってるので除外 - return `${config.url}/files/${key}`; - } - } - - const isImage = file.type && ['image/png', 'image/apng', 'image/gif', 'image/jpeg', 'image/webp', 'image/svg+xml'].includes(file.type); - - return thumbnail ? (file.thumbnailUrl || (isImage ? (file.webpublicUrl || file.url) : null)) : (file.webpublicUrl || file.url); - }, - - async calcDriveUsageOf(user: User['id'] | { id: User['id'] }): Promise { - const id = typeof user === 'object' ? user.id : user; - - const { sum } = await this - .createQueryBuilder('file') - .where('file.userId = :id', { id: id }) - .andWhere('file.isLink = FALSE') - .select('SUM(file.size)', 'sum') - .getRawOne(); - - return parseInt(sum, 10) || 0; - }, - - async calcDriveUsageOfHost(host: string): Promise { - const { sum } = await this - .createQueryBuilder('file') - .where('file.userHost = :host', { host: toPuny(host) }) - .andWhere('file.isLink = FALSE') - .select('SUM(file.size)', 'sum') - .getRawOne(); - - return parseInt(sum, 10) || 0; - }, - - async calcDriveUsageOfLocal(): Promise { - const { sum } = await this - .createQueryBuilder('file') - .where('file.userHost IS NULL') - .andWhere('file.isLink = FALSE') - .select('SUM(file.size)', 'sum') - .getRawOne(); - - return parseInt(sum, 10) || 0; - }, - - async calcDriveUsageOfRemote(): Promise { - const { sum } = await this - .createQueryBuilder('file') - .where('file.userHost IS NOT NULL') - .andWhere('file.isLink = FALSE') - .select('SUM(file.size)', 'sum') - .getRawOne(); - - return parseInt(sum, 10) || 0; - }, - - async pack( - src: DriveFile['id'] | DriveFile, - options?: PackOptions, - ): Promise> { - const opts = Object.assign({ - detail: false, - self: false, - }, options); - - const file = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll>({ - id: file.id, - createdAt: file.createdAt.toISOString(), - name: file.name, - type: file.type, - md5: file.md5, - size: file.size, - isSensitive: file.isSensitive, - blurhash: file.blurhash, - properties: opts.self ? file.properties : this.getPublicProperties(file), - url: opts.self ? file.url : this.getPublicUrl(file, false), - thumbnailUrl: this.getPublicUrl(file, true), - comment: file.comment, - folderId: file.folderId, - folder: opts.detail && file.folderId ? DriveFolders.pack(file.folderId, { - detail: true, - }) : null, - userId: opts.withUser ? file.userId : null, - user: (opts.withUser && file.userId) ? Users.pack(file.userId) : null, - }); - }, - - async packNullable( - src: DriveFile['id'] | DriveFile, - options?: PackOptions, - ): Promise | null> { - const opts = Object.assign({ - detail: false, - self: false, - }, options); - - const file = typeof src === 'object' ? src : await this.findOneBy({ id: src }); - if (file == null) return null; - - return await awaitAll>({ - id: file.id, - createdAt: file.createdAt.toISOString(), - name: file.name, - type: file.type, - md5: file.md5, - size: file.size, - isSensitive: file.isSensitive, - blurhash: file.blurhash, - properties: opts.self ? file.properties : this.getPublicProperties(file), - url: opts.self ? file.url : this.getPublicUrl(file, false), - thumbnailUrl: this.getPublicUrl(file, true), - comment: file.comment, - folderId: file.folderId, - folder: opts.detail && file.folderId ? DriveFolders.pack(file.folderId, { - detail: true, - }) : null, - userId: opts.withUser ? file.userId : null, - user: (opts.withUser && file.userId) ? Users.pack(file.userId) : null, - }); - }, - - async packMany( - files: (DriveFile['id'] | DriveFile)[], - options?: PackOptions, - ): Promise[]> { - const items = await Promise.all(files.map(f => this.packNullable(f, options))); - return items.filter((x): x is Packed<'DriveFile'> => x != null); - }, -}); diff --git a/packages/backend/src/models/repositories/drive-folder.ts b/packages/backend/src/models/repositories/drive-folder.ts deleted file mode 100644 index ab5f3dab6..000000000 --- a/packages/backend/src/models/repositories/drive-folder.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { DriveFolders, DriveFiles } from '../index.js'; -import { DriveFolder } from '@/models/entities/drive-folder.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; - -export const DriveFolderRepository = db.getRepository(DriveFolder).extend({ - async pack( - src: DriveFolder['id'] | DriveFolder, - options?: { - detail: boolean - } - ): Promise> { - const opts = Object.assign({ - detail: false, - }, options); - - const folder = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: folder.id, - createdAt: folder.createdAt.toISOString(), - name: folder.name, - parentId: folder.parentId, - - ...(opts.detail ? { - foldersCount: DriveFolders.countBy({ - parentId: folder.id, - }), - filesCount: DriveFiles.countBy({ - folderId: folder.id, - }), - - ...(folder.parentId ? { - parent: this.pack(folder.parentId, { - detail: true, - }), - } : {}), - } : {}), - }); - }, -}); diff --git a/packages/backend/src/models/repositories/emoji.ts b/packages/backend/src/models/repositories/emoji.ts deleted file mode 100644 index a0d390d79..000000000 --- a/packages/backend/src/models/repositories/emoji.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { Packed } from '@/misc/schema.js'; - -export const EmojiRepository = db.getRepository(Emoji).extend({ - async pack( - src: Emoji['id'] | Emoji, - ): Promise> { - const emoji = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: emoji.id, - aliases: emoji.aliases, - name: emoji.name, - category: emoji.category, - host: emoji.host, - // || emoji.originalUrl してるのは後方互換性のため - url: emoji.publicUrl || emoji.originalUrl, - }; - }, - - packMany( - emojis: any[], - ) { - return Promise.all(emojis.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/follow-request.ts b/packages/backend/src/models/repositories/follow-request.ts deleted file mode 100644 index c4a7203aa..000000000 --- a/packages/backend/src/models/repositories/follow-request.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { FollowRequest } from '@/models/entities/follow-request.js'; -import { Users } from '../index.js'; -import { User } from '@/models/entities/user.js'; - -export const FollowRequestRepository = db.getRepository(FollowRequest).extend({ - async pack( - src: FollowRequest['id'] | FollowRequest, - me?: { id: User['id'] } | null | undefined - ) { - const request = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: request.id, - follower: await Users.pack(request.followerId, me), - followee: await Users.pack(request.followeeId, me), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/following.ts b/packages/backend/src/models/repositories/following.ts deleted file mode 100644 index 46109244f..000000000 --- a/packages/backend/src/models/repositories/following.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Users } from '../index.js'; -import { Following } from '@/models/entities/following.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; -import { User } from '@/models/entities/user.js'; - -type LocalFollowerFollowing = Following & { - followerHost: null; - followerInbox: null; - followerSharedInbox: null; -}; - -type RemoteFollowerFollowing = Following & { - followerHost: string; - followerInbox: string; - followerSharedInbox: string; -}; - -type LocalFolloweeFollowing = Following & { - followeeHost: null; - followeeInbox: null; - followeeSharedInbox: null; -}; - -type RemoteFolloweeFollowing = Following & { - followeeHost: string; - followeeInbox: string; - followeeSharedInbox: string; -}; - -export const FollowingRepository = db.getRepository(Following).extend({ - isLocalFollower(following: Following): following is LocalFollowerFollowing { - return following.followerHost == null; - }, - - isRemoteFollower(following: Following): following is RemoteFollowerFollowing { - return following.followerHost != null; - }, - - isLocalFollowee(following: Following): following is LocalFolloweeFollowing { - return following.followeeHost == null; - }, - - isRemoteFollowee(following: Following): following is RemoteFolloweeFollowing { - return following.followeeHost != null; - }, - - async pack( - src: Following['id'] | Following, - me?: { id: User['id'] } | null | undefined, - opts?: { - populateFollowee?: boolean; - populateFollower?: boolean; - } - ): Promise> { - const following = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - if (opts == null) opts = {}; - - return await awaitAll({ - id: following.id, - createdAt: following.createdAt.toISOString(), - followeeId: following.followeeId, - followerId: following.followerId, - followee: opts.populateFollowee ? Users.pack(following.followee || following.followeeId, me, { - detail: true, - }) : undefined, - follower: opts.populateFollower ? Users.pack(following.follower || following.followerId, me, { - detail: true, - }) : undefined, - }); - }, - - packMany( - followings: any[], - me?: { id: User['id'] } | null | undefined, - opts?: { - populateFollowee?: boolean; - populateFollower?: boolean; - } - ) { - return Promise.all(followings.map(x => this.pack(x, me, opts))); - }, -}); diff --git a/packages/backend/src/models/repositories/gallery-like.ts b/packages/backend/src/models/repositories/gallery-like.ts deleted file mode 100644 index 08ca4962b..000000000 --- a/packages/backend/src/models/repositories/gallery-like.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { GalleryLike } from '@/models/entities/gallery-like.js'; -import { GalleryPosts } from '../index.js'; - -export const GalleryLikeRepository = db.getRepository(GalleryLike).extend({ - async pack( - src: GalleryLike['id'] | GalleryLike, - me?: any - ) { - const like = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: like.id, - post: await GalleryPosts.pack(like.post || like.postId, me), - }; - }, - - packMany( - likes: any[], - me: any - ) { - return Promise.all(likes.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/gallery-post.ts b/packages/backend/src/models/repositories/gallery-post.ts deleted file mode 100644 index bb8d40b75..000000000 --- a/packages/backend/src/models/repositories/gallery-post.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { GalleryPost } from '@/models/entities/gallery-post.js'; -import { Packed } from '@/misc/schema.js'; -import { Users, DriveFiles, GalleryLikes } from '../index.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { User } from '@/models/entities/user.js'; - -export const GalleryPostRepository = db.getRepository(GalleryPost).extend({ - async pack( - src: GalleryPost['id'] | GalleryPost, - me?: { id: User['id'] } | null | undefined, - ): Promise> { - const meId = me ? me.id : null; - const post = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: post.id, - createdAt: post.createdAt.toISOString(), - updatedAt: post.updatedAt.toISOString(), - userId: post.userId, - user: Users.pack(post.user || post.userId, me), - title: post.title, - description: post.description, - fileIds: post.fileIds, - files: DriveFiles.packMany(post.fileIds), - tags: post.tags.length > 0 ? post.tags : undefined, - isSensitive: post.isSensitive, - likedCount: post.likedCount, - isLiked: meId ? await GalleryLikes.findOneBy({ postId: post.id, userId: meId }).then(x => x != null) : undefined, - }); - }, - - packMany( - posts: GalleryPost[], - me?: { id: User['id'] } | null | undefined, - ) { - return Promise.all(posts.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/hashtag.ts b/packages/backend/src/models/repositories/hashtag.ts deleted file mode 100644 index e6c0e36f0..000000000 --- a/packages/backend/src/models/repositories/hashtag.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Hashtag } from '@/models/entities/hashtag.js'; -import { Packed } from '@/misc/schema.js'; - -export const HashtagRepository = db.getRepository(Hashtag).extend({ - async pack( - src: Hashtag, - ): Promise> { - return { - tag: src.name, - mentionedUsersCount: src.mentionedUsersCount, - mentionedLocalUsersCount: src.mentionedLocalUsersCount, - mentionedRemoteUsersCount: src.mentionedRemoteUsersCount, - attachedUsersCount: src.attachedUsersCount, - attachedLocalUsersCount: src.attachedLocalUsersCount, - attachedRemoteUsersCount: src.attachedRemoteUsersCount, - }; - }, - - packMany( - hashtags: Hashtag[], - ) { - return Promise.all(hashtags.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/instance.ts b/packages/backend/src/models/repositories/instance.ts deleted file mode 100644 index 5f0fd8d58..000000000 --- a/packages/backend/src/models/repositories/instance.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Instance } from '@/models/entities/instance.js'; -import { Packed } from '@/misc/schema.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; - -export const InstanceRepository = db.getRepository(Instance).extend({ - async pack( - instance: Instance, - ): Promise> { - const meta = await fetchMeta(); - return { - id: instance.id, - caughtAt: instance.caughtAt.toISOString(), - host: instance.host, - usersCount: instance.usersCount, - notesCount: instance.notesCount, - followingCount: instance.followingCount, - followersCount: instance.followersCount, - latestRequestSentAt: instance.latestRequestSentAt ? instance.latestRequestSentAt.toISOString() : null, - lastCommunicatedAt: instance.lastCommunicatedAt.toISOString(), - isNotResponding: instance.isNotResponding, - isSuspended: instance.isSuspended, - isBlocked: meta.blockedHosts.includes(instance.host), - softwareName: instance.softwareName, - softwareVersion: instance.softwareVersion, - openRegistrations: instance.openRegistrations, - name: instance.name, - description: instance.description, - maintainerName: instance.maintainerName, - maintainerEmail: instance.maintainerEmail, - iconUrl: instance.iconUrl, - faviconUrl: instance.faviconUrl, - themeColor: instance.themeColor, - infoUpdatedAt: instance.infoUpdatedAt ? instance.infoUpdatedAt.toISOString() : null, - }; - }, - - packMany( - instances: Instance[], - ) { - return Promise.all(instances.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/messaging-message.ts b/packages/backend/src/models/repositories/messaging-message.ts deleted file mode 100644 index 6c51c93ff..000000000 --- a/packages/backend/src/models/repositories/messaging-message.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { Users, DriveFiles, UserGroups } from '../index.js'; -import { Packed } from '@/misc/schema.js'; -import { User } from '@/models/entities/user.js'; - -export const MessagingMessageRepository = db.getRepository(MessagingMessage).extend({ - async pack( - src: MessagingMessage['id'] | MessagingMessage, - me?: { id: User['id'] } | null | undefined, - options?: { - populateRecipient?: boolean, - populateGroup?: boolean, - } - ): Promise> { - const opts = options || { - populateRecipient: true, - populateGroup: true, - }; - - const message = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: message.id, - createdAt: message.createdAt.toISOString(), - text: message.text, - userId: message.userId, - user: await Users.pack(message.user || message.userId, me), - recipientId: message.recipientId, - recipient: message.recipientId && opts.populateRecipient ? await Users.pack(message.recipient || message.recipientId, me) : undefined, - groupId: message.groupId, - group: message.groupId && opts.populateGroup ? await UserGroups.pack(message.group || message.groupId) : undefined, - fileId: message.fileId, - file: message.fileId ? await DriveFiles.pack(message.fileId) : null, - isRead: message.isRead, - reads: message.reads, - }; - }, -}); diff --git a/packages/backend/src/models/repositories/moderation-logs.ts b/packages/backend/src/models/repositories/moderation-logs.ts deleted file mode 100644 index 1488b1eab..000000000 --- a/packages/backend/src/models/repositories/moderation-logs.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Users } from '../index.js'; -import { ModerationLog } from '@/models/entities/moderation-log.js'; -import { awaitAll } from '@/prelude/await-all.js'; - -export const ModerationLogRepository = db.getRepository(ModerationLog).extend({ - async pack( - src: ModerationLog['id'] | ModerationLog, - ) { - const log = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: log.id, - createdAt: log.createdAt.toISOString(), - type: log.type, - info: log.info, - userId: log.userId, - user: Users.pack(log.user || log.userId, null, { - detail: true, - }), - }); - }, - - packMany( - reports: any[], - ) { - return Promise.all(reports.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/muting.ts b/packages/backend/src/models/repositories/muting.ts deleted file mode 100644 index 7891b10fb..000000000 --- a/packages/backend/src/models/repositories/muting.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Users } from '../index.js'; -import { Muting } from '@/models/entities/muting.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; -import { User } from '@/models/entities/user.js'; - -export const MutingRepository = db.getRepository(Muting).extend({ - async pack( - src: Muting['id'] | Muting, - me?: { id: User['id'] } | null | undefined - ): Promise> { - const muting = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return await awaitAll({ - id: muting.id, - createdAt: muting.createdAt.toISOString(), - expiresAt: muting.expiresAt ? muting.expiresAt.toISOString() : null, - muteeId: muting.muteeId, - mutee: Users.pack(muting.muteeId, me, { - detail: true, - }), - }); - }, - - packMany( - mutings: any[], - me: { id: User['id'] } - ) { - return Promise.all(mutings.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/note-favorite.ts b/packages/backend/src/models/repositories/note-favorite.ts deleted file mode 100644 index 9bd97f988..000000000 --- a/packages/backend/src/models/repositories/note-favorite.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { NoteFavorite } from '@/models/entities/note-favorite.js'; -import { Notes } from '../index.js'; -import { User } from '@/models/entities/user.js'; - -export const NoteFavoriteRepository = db.getRepository(NoteFavorite).extend({ - async pack( - src: NoteFavorite['id'] | NoteFavorite, - me?: { id: User['id'] } | null | undefined - ) { - const favorite = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: favorite.id, - createdAt: favorite.createdAt.toISOString(), - noteId: favorite.noteId, - note: await Notes.pack(favorite.note || favorite.noteId, me), - }; - }, - - packMany( - favorites: any[], - me: { id: User['id'] } - ) { - return Promise.all(favorites.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/note-reaction.ts b/packages/backend/src/models/repositories/note-reaction.ts deleted file mode 100644 index 4deae51c9..000000000 --- a/packages/backend/src/models/repositories/note-reaction.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { Notes, Users } from '../index.js'; -import { Packed } from '@/misc/schema.js'; -import { convertLegacyReaction } from '@/misc/reaction-lib.js'; -import { User } from '@/models/entities/user.js'; - -export const NoteReactionRepository = db.getRepository(NoteReaction).extend({ - async pack( - src: NoteReaction['id'] | NoteReaction, - me?: { id: User['id'] } | null | undefined, - options?: { - withNote: boolean; - }, - ): Promise> { - const opts = Object.assign({ - withNote: false, - }, options); - - const reaction = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: reaction.id, - createdAt: reaction.createdAt.toISOString(), - user: await Users.pack(reaction.user ?? reaction.userId, me), - type: convertLegacyReaction(reaction.reaction), - ...(opts.withNote ? { - note: await Notes.pack(reaction.note ?? reaction.noteId, me), - } : {}), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/note.ts b/packages/backend/src/models/repositories/note.ts deleted file mode 100644 index 3fefab031..000000000 --- a/packages/backend/src/models/repositories/note.ts +++ /dev/null @@ -1,326 +0,0 @@ -import { In } from 'typeorm'; -import * as mfm from 'mfm-js'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; -import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '../index.js'; -import { Packed } from '@/misc/schema.js'; -import { nyaize } from '@/misc/nyaize.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '@/misc/reaction-lib.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '@/misc/populate-emojis.js'; -import { db } from '@/db/postgre.js'; - -async function hideNote(packedNote: Packed<'Note'>, meId: User['id'] | null) { - // TODO: isVisibleForMe を使うようにしても良さそう(型違うけど) - let hide = false; - - // visibility が specified かつ自分が指定されていなかったら非表示 - if (packedNote.visibility === 'specified') { - if (meId == null) { - hide = true; - } else if (meId === packedNote.userId) { - hide = false; - } else { - // 指定されているかどうか - const specified = packedNote.visibleUserIds!.some((id: any) => meId === id); - - if (specified) { - hide = false; - } else { - hide = true; - } - } - } - - // visibility が followers かつ自分が投稿者のフォロワーでなかったら非表示 - if (packedNote.visibility === 'followers') { - if (meId == null) { - hide = true; - } else if (meId === packedNote.userId) { - hide = false; - } else if (packedNote.reply && (meId === packedNote.reply.userId)) { - // 自分の投稿に対するリプライ - hide = false; - } else if (packedNote.mentions && packedNote.mentions.some(id => meId === id)) { - // 自分へのメンション - hide = false; - } else { - // フォロワーかどうか - const following = await Followings.findOneBy({ - followeeId: packedNote.userId, - followerId: meId, - }); - - if (following == null) { - hide = true; - } else { - hide = false; - } - } - } - - if (hide) { - packedNote.visibleUserIds = undefined; - packedNote.fileIds = []; - packedNote.files = []; - packedNote.text = null; - packedNote.poll = undefined; - packedNote.cw = null; - packedNote.isHidden = true; - } -} - -async function populatePoll(note: Note, meId: User['id'] | null) { - const poll = await Polls.findOneByOrFail({ noteId: note.id }); - const choices = poll.choices.map(c => ({ - text: c, - votes: poll.votes[poll.choices.indexOf(c)], - isVoted: false, - })); - - if (meId) { - if (poll.multiple) { - const votes = await PollVotes.findBy({ - userId: meId, - noteId: note.id, - }); - - const myChoices = votes.map(v => v.choice); - for (const myChoice of myChoices) { - choices[myChoice].isVoted = true; - } - } else { - const vote = await PollVotes.findOneBy({ - userId: meId, - noteId: note.id, - }); - - if (vote) { - choices[vote.choice].isVoted = true; - } - } - } - - return { - multiple: poll.multiple, - expiresAt: poll.expiresAt, - choices, - }; -} - -async function populateMyReaction(note: Note, meId: User['id'], _hint_?: { - myReactions: Map; -}) { - if (_hint_?.myReactions) { - const reaction = _hint_.myReactions.get(note.id); - if (reaction) { - return convertLegacyReaction(reaction.reaction); - } else if (reaction === null) { - return undefined; - } - // 実装上抜けがあるだけかもしれないので、「ヒントに含まれてなかったら(=undefinedなら)return」のようにはしない - } - - const reaction = await NoteReactions.findOneBy({ - userId: meId, - noteId: note.id, - }); - - if (reaction) { - return convertLegacyReaction(reaction.reaction); - } - - return undefined; -} - -export const NoteRepository = db.getRepository(Note).extend({ - async isVisibleForMe(note: Note, meId: User['id'] | null): Promise { - // This code must always be synchronized with the checks in generateVisibilityQuery. - // visibility が specified かつ自分が指定されていなかったら非表示 - if (note.visibility === 'specified') { - if (meId == null) { - return false; - } else if (meId === note.userId) { - return true; - } else { - // 指定されているかどうか - return note.visibleUserIds.some((id: any) => meId === id); - } - } - - // visibility が followers かつ自分が投稿者のフォロワーでなかったら非表示 - if (note.visibility === 'followers') { - if (meId == null) { - return false; - } else if (meId === note.userId) { - return true; - } else if (note.reply && (meId === note.reply.userId)) { - // 自分の投稿に対するリプライ - return true; - } else if (note.mentions && note.mentions.some(id => meId === id)) { - // 自分へのメンション - return true; - } else { - // フォロワーかどうか - const [following, user] = await Promise.all([ - Followings.count({ - where: { - followeeId: note.userId, - followerId: meId, - }, - take: 1, - }), - Users.findOneByOrFail({ id: meId }), - ]); - - /* If we know the following, everyhting is fine. - - But if we do not know the following, it might be that both the - author of the note and the author of the like are remote users, - in which case we can never know the following. Instead we have - to assume that the users are following each other. - */ - return following > 0 || (note.userHost != null && user.host != null); - } - } - - return true; - }, - - async pack( - src: Note['id'] | Note, - me?: { id: User['id'] } | null | undefined, - options?: { - detail?: boolean; - skipHide?: boolean; - _hint_?: { - myReactions: Map; - }; - } - ): Promise> { - const opts = Object.assign({ - detail: true, - skipHide: false, - }, options); - - const meId = me ? me.id : null; - const note = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - const host = note.userHost; - - let text = note.text; - - if (note.name && (note.url ?? note.uri)) { - text = `【${note.name}】\n${(note.text || '').trim()}\n\n${note.url ?? note.uri}`; - } - - const channel = note.channelId - ? note.channel - ? note.channel - : await Channels.findOneBy({ id: note.channelId }) - : null; - - const reactionEmojiNames = Object.keys(note.reactions).filter(x => x?.startsWith(':')).map(x => decodeReaction(x).reaction).map(x => x.replace(/:/g, '')); - - const packed: Packed<'Note'> = await awaitAll({ - id: note.id, - createdAt: note.createdAt.toISOString(), - userId: note.userId, - user: Users.pack(note.user ?? note.userId, me, { - detail: false, - }), - text: text, - cw: note.cw, - visibility: note.visibility, - localOnly: note.localOnly || undefined, - visibleUserIds: note.visibility === 'specified' ? note.visibleUserIds : undefined, - renoteCount: note.renoteCount, - repliesCount: note.repliesCount, - reactions: convertLegacyReactions(note.reactions), - tags: note.tags.length > 0 ? note.tags : undefined, - emojis: populateEmojis(note.emojis.concat(reactionEmojiNames), host), - fileIds: note.fileIds, - files: DriveFiles.packMany(note.fileIds), - replyId: note.replyId, - renoteId: note.renoteId, - channelId: note.channelId || undefined, - channel: channel ? { - id: channel.id, - name: channel.name, - } : undefined, - mentions: note.mentions.length > 0 ? note.mentions : undefined, - uri: note.uri || undefined, - url: note.url || undefined, - - ...(opts.detail ? { - reply: note.replyId ? this.pack(note.reply || note.replyId, me, { - detail: false, - _hint_: options?._hint_, - }) : undefined, - - renote: note.renoteId ? this.pack(note.renote || note.renoteId, me, { - detail: true, - _hint_: options?._hint_, - }) : undefined, - - poll: note.hasPoll ? populatePoll(note, meId) : undefined, - - ...(meId ? { - myReaction: populateMyReaction(note, meId, options?._hint_), - } : {}), - } : {}), - }); - - if (packed.user.isCat && packed.text) { - const tokens = packed.text ? mfm.parse(packed.text) : []; - mfm.inspect(tokens, node => { - if (node.type === 'text') { - // TODO: quoteなtextはskip - node.props.text = nyaize(node.props.text); - } - }); - packed.text = mfm.toString(tokens); - } - - if (!opts.skipHide) { - await hideNote(packed, meId); - } - - return packed; - }, - - async packMany( - notes: Note[], - me?: { id: User['id'] } | null | undefined, - options?: { - detail?: boolean; - skipHide?: boolean; - } - ) { - if (notes.length === 0) return []; - - const meId = me ? me.id : null; - const myReactionsMap = new Map(); - if (meId) { - const renoteIds = notes.filter(n => n.renoteId != null).map(n => n.renoteId!); - const targets = [...notes.map(n => n.id), ...renoteIds]; - const myReactions = await NoteReactions.findBy({ - userId: meId, - noteId: In(targets), - }); - - for (const target of targets) { - myReactionsMap.set(target, myReactions.find(reaction => reaction.noteId === target) || null); - } - } - - await prefetchEmojis(aggregateNoteEmojis(notes)); - - return await Promise.all(notes.map(n => this.pack(n, me, { - ...options, - _hint_: { - myReactions: myReactionsMap, - }, - }))); - }, -}); diff --git a/packages/backend/src/models/repositories/notification.ts b/packages/backend/src/models/repositories/notification.ts deleted file mode 100644 index 42b47ab15..000000000 --- a/packages/backend/src/models/repositories/notification.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { In, Repository } from 'typeorm'; -import { Users, Notes, UserGroupInvitations, AccessTokens, NoteReactions } from '../index.js'; -import { Notification } from '@/models/entities/notification.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { Packed } from '@/misc/schema.js'; -import { Note } from '@/models/entities/note.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { User } from '@/models/entities/user.js'; -import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis.js'; -import { notificationTypes } from '@/types.js'; -import { db } from '@/db/postgre.js'; - -export const NotificationRepository = db.getRepository(Notification).extend({ - async pack( - src: Notification['id'] | Notification, - options: { - _hintForEachNotes_?: { - myReactions: Map; - }; - } - ): Promise> { - const notification = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - const token = notification.appAccessTokenId ? await AccessTokens.findOneByOrFail({ id: notification.appAccessTokenId }) : null; - - return await awaitAll({ - id: notification.id, - createdAt: notification.createdAt.toISOString(), - type: notification.type, - isRead: notification.isRead, - userId: notification.notifierId, - user: notification.notifierId ? Users.pack(notification.notifier || notification.notifierId) : null, - ...(notification.type === 'mention' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - } : {}), - ...(notification.type === 'reply' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - } : {}), - ...(notification.type === 'renote' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - } : {}), - ...(notification.type === 'quote' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - } : {}), - ...(notification.type === 'reaction' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - reaction: notification.reaction, - } : {}), - ...(notification.type === 'pollVote' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - choice: notification.choice, - } : {}), - ...(notification.type === 'pollEnded' ? { - note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { - detail: true, - _hint_: options._hintForEachNotes_, - }), - } : {}), - ...(notification.type === 'groupInvited' ? { - invitation: UserGroupInvitations.pack(notification.userGroupInvitationId!), - } : {}), - ...(notification.type === 'app' ? { - body: notification.customBody, - header: notification.customHeader || token?.name, - icon: notification.customIcon || token?.iconUrl, - } : {}), - }); - }, - - async packMany( - notifications: Notification[], - meId: User['id'] - ) { - if (notifications.length === 0) return []; - - const notes = notifications.filter(x => x.note != null).map(x => x.note!); - const noteIds = notes.map(n => n.id); - const myReactionsMap = new Map(); - const renoteIds = notes.filter(n => n.renoteId != null).map(n => n.renoteId!); - const targets = [...noteIds, ...renoteIds]; - const myReactions = await NoteReactions.findBy({ - userId: meId, - noteId: In(targets), - }); - - for (const target of targets) { - myReactionsMap.set(target, myReactions.find(reaction => reaction.noteId === target) || null); - } - - await prefetchEmojis(aggregateNoteEmojis(notes)); - - return await Promise.all(notifications.map(x => this.pack(x, { - _hintForEachNotes_: { - myReactions: myReactionsMap, - }, - }))); - }, -}); diff --git a/packages/backend/src/models/repositories/page-like.ts b/packages/backend/src/models/repositories/page-like.ts deleted file mode 100644 index 87d6accc3..000000000 --- a/packages/backend/src/models/repositories/page-like.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { PageLike } from '@/models/entities/page-like.js'; -import { Pages } from '../index.js'; -import { User } from '@/models/entities/user.js'; - -export const PageLikeRepository = db.getRepository(PageLike).extend({ - async pack( - src: PageLike['id'] | PageLike, - me?: { id: User['id'] } | null | undefined - ) { - const like = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: like.id, - page: await Pages.pack(like.page || like.pageId, me), - }; - }, - - packMany( - likes: any[], - me: { id: User['id'] } - ) { - return Promise.all(likes.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/page.ts b/packages/backend/src/models/repositories/page.ts deleted file mode 100644 index 092b26b39..000000000 --- a/packages/backend/src/models/repositories/page.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Page } from '@/models/entities/page.js'; -import { Packed } from '@/misc/schema.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { User } from '@/models/entities/user.js'; -import { Users, DriveFiles, PageLikes } from '../index.js'; - -export const PageRepository = db.getRepository(Page).extend({ - async pack( - src: Page['id'] | Page, - me?: { id: User['id'] } | null | undefined, - ): Promise> { - const meId = me ? me.id : null; - const page = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - const attachedFiles: Promise[] = []; - const collectFile = (xs: any[]) => { - for (const x of xs) { - if (x.type === 'image') { - attachedFiles.push(DriveFiles.findOneBy({ - id: x.fileId, - userId: page.userId, - })); - } - if (x.children) { - collectFile(x.children); - } - } - }; - collectFile(page.content); - - // 後方互換性のため - let migrated = false; - const migrate = (xs: any[]) => { - for (const x of xs) { - if (x.type === 'input') { - if (x.inputType === 'text') { - x.type = 'textInput'; - } - if (x.inputType === 'number') { - x.type = 'numberInput'; - if (x.default) x.default = parseInt(x.default, 10); - } - migrated = true; - } - if (x.children) { - migrate(x.children); - } - } - }; - migrate(page.content); - if (migrated) { - this.update(page.id, { - content: page.content, - }); - } - - return await awaitAll({ - id: page.id, - createdAt: page.createdAt.toISOString(), - updatedAt: page.updatedAt.toISOString(), - userId: page.userId, - user: Users.pack(page.user || page.userId, me), // { detail: true } すると無限ループするので注意 - content: page.content, - variables: page.variables, - title: page.title, - name: page.name, - summary: page.summary, - hideTitleWhenPinned: page.hideTitleWhenPinned, - alignCenter: page.alignCenter, - font: page.font, - script: page.script, - eyeCatchingImageId: page.eyeCatchingImageId, - eyeCatchingImage: page.eyeCatchingImageId ? await DriveFiles.pack(page.eyeCatchingImageId) : null, - attachedFiles: DriveFiles.packMany((await Promise.all(attachedFiles)).filter((x): x is DriveFile => x != null)), - likedCount: page.likedCount, - isLiked: meId ? await PageLikes.findOneBy({ pageId: page.id, userId: meId }).then(x => x != null) : undefined, - }); - }, - - packMany( - pages: Page[], - me?: { id: User['id'] } | null | undefined, - ) { - return Promise.all(pages.map(x => this.pack(x, me))); - }, -}); diff --git a/packages/backend/src/models/repositories/relay.ts b/packages/backend/src/models/repositories/relay.ts deleted file mode 100644 index fa1c8f4d8..000000000 --- a/packages/backend/src/models/repositories/relay.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Relay } from '@/models/entities/relay.js'; - -export const RelayRepository = db.getRepository(Relay).extend({ -}); diff --git a/packages/backend/src/models/repositories/signin.ts b/packages/backend/src/models/repositories/signin.ts deleted file mode 100644 index 94410ec58..000000000 --- a/packages/backend/src/models/repositories/signin.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { Signin } from '@/models/entities/signin.js'; - -export const SigninRepository = db.getRepository(Signin).extend({ - async pack( - src: Signin, - ) { - return src; - }, -}); diff --git a/packages/backend/src/models/repositories/user-group-invitation.ts b/packages/backend/src/models/repositories/user-group-invitation.ts deleted file mode 100644 index 79ad019c9..000000000 --- a/packages/backend/src/models/repositories/user-group-invitation.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { UserGroupInvitation } from '@/models/entities/user-group-invitation.js'; -import { UserGroups } from '../index.js'; - -export const UserGroupInvitationRepository = db.getRepository(UserGroupInvitation).extend({ - async pack( - src: UserGroupInvitation['id'] | UserGroupInvitation, - ) { - const invitation = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - return { - id: invitation.id, - group: await UserGroups.pack(invitation.userGroup || invitation.userGroupId), - }; - }, - - packMany( - invitations: any[], - ) { - return Promise.all(invitations.map(x => this.pack(x))); - }, -}); diff --git a/packages/backend/src/models/repositories/user-group.ts b/packages/backend/src/models/repositories/user-group.ts deleted file mode 100644 index 6eb923424..000000000 --- a/packages/backend/src/models/repositories/user-group.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { UserGroupJoinings } from '../index.js'; -import { Packed } from '@/misc/schema.js'; - -export const UserGroupRepository = db.getRepository(UserGroup).extend({ - async pack( - src: UserGroup['id'] | UserGroup, - ): Promise> { - const userGroup = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - const users = await UserGroupJoinings.findBy({ - userGroupId: userGroup.id, - }); - - return { - id: userGroup.id, - createdAt: userGroup.createdAt.toISOString(), - name: userGroup.name, - ownerId: userGroup.userId, - userIds: users.map(x => x.userId), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/user-list.ts b/packages/backend/src/models/repositories/user-list.ts deleted file mode 100644 index 2b6f411ef..000000000 --- a/packages/backend/src/models/repositories/user-list.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { db } from '@/db/postgre.js'; -import { UserList } from '@/models/entities/user-list.js'; -import { UserListJoinings } from '../index.js'; -import { Packed } from '@/misc/schema.js'; - -export const UserListRepository = db.getRepository(UserList).extend({ - async pack( - src: UserList['id'] | UserList, - ): Promise> { - const userList = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src }); - - const users = await UserListJoinings.findBy({ - userListId: userList.id, - }); - - return { - id: userList.id, - createdAt: userList.createdAt.toISOString(), - name: userList.name, - userIds: users.map(x => x.userId), - }; - }, -}); diff --git a/packages/backend/src/models/repositories/user.ts b/packages/backend/src/models/repositories/user.ts deleted file mode 100644 index 5c46ae27a..000000000 --- a/packages/backend/src/models/repositories/user.ts +++ /dev/null @@ -1,436 +0,0 @@ -import { EntityRepository, Repository, In, Not } from 'typeorm'; -import Ajv from 'ajv'; -import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import config from '@/config/index.js'; -import { Packed } from '@/misc/schema.js'; -import { awaitAll, Promiseable } from '@/prelude/await-all.js'; -import { populateEmojis } from '@/misc/populate-emojis.js'; -import { getAntennas } from '@/misc/antenna-cache.js'; -import { USER_ACTIVE_THRESHOLD, USER_ONLINE_THRESHOLD } from '@/const.js'; -import { Cache } from '@/misc/cache.js'; -import { db } from '@/db/postgre.js'; -import { Instance } from '../entities/instance.js'; -import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances, DriveFiles } from '../index.js'; - -const userInstanceCache = new Cache(1000 * 60 * 60 * 3); - -type IsUserDetailed = Detailed extends true ? Packed<'UserDetailed'> : Packed<'UserLite'>; -type IsMeAndIsUserDetailed = - Detailed extends true ? - ExpectsMe extends true ? Packed<'MeDetailed'> : - ExpectsMe extends false ? Packed<'UserDetailedNotMe'> : - Packed<'UserDetailed'> : - Packed<'UserLite'>; - -const ajv = new Ajv(); - -const localUsernameSchema = { type: 'string', pattern: /^\w{1,20}$/.toString().slice(1, -1) } as const; -const passwordSchema = { type: 'string', minLength: 1 } as const; -const nameSchema = { type: 'string', minLength: 1, maxLength: 50 } as const; -const descriptionSchema = { type: 'string', minLength: 1, maxLength: 500 } as const; -const locationSchema = { type: 'string', minLength: 1, maxLength: 50 } as const; -const birthdaySchema = { type: 'string', pattern: /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.toString().slice(1, -1) } as const; - -function isLocalUser(user: User): user is ILocalUser; -function isLocalUser(user: T): user is T & { host: null; }; -function isLocalUser(user: User | { host: User['host'] }): boolean { - return user.host == null; -} - -function isRemoteUser(user: User): user is IRemoteUser; -function isRemoteUser(user: T): user is T & { host: string; }; -function isRemoteUser(user: User | { host: User['host'] }): boolean { - return !isLocalUser(user); -} - -export const UserRepository = db.getRepository(User).extend({ - localUsernameSchema, - passwordSchema, - nameSchema, - descriptionSchema, - locationSchema, - birthdaySchema, - - //#region Validators - validateLocalUsername: ajv.compile(localUsernameSchema), - validatePassword: ajv.compile(passwordSchema), - validateName: ajv.compile(nameSchema), - validateDescription: ajv.compile(descriptionSchema), - validateLocation: ajv.compile(locationSchema), - validateBirthday: ajv.compile(birthdaySchema), - //#endregion - - async getRelation(me: User['id'], target: User['id']) { - return awaitAll({ - id: target, - isFollowing: Followings.count({ - where: { - followerId: me, - followeeId: target, - }, - take: 1, - }).then(n => n > 0), - isFollowed: Followings.count({ - where: { - followerId: target, - followeeId: me, - }, - take: 1, - }).then(n => n > 0), - hasPendingFollowRequestFromYou: FollowRequests.count({ - where: { - followerId: me, - followeeId: target, - }, - take: 1, - }).then(n => n > 0), - hasPendingFollowRequestToYou: FollowRequests.count({ - where: { - followerId: target, - followeeId: me, - }, - take: 1, - }).then(n => n > 0), - isBlocking: Blockings.count({ - where: { - blockerId: me, - blockeeId: target, - }, - take: 1, - }).then(n => n > 0), - isBlocked: Blockings.count({ - where: { - blockerId: target, - blockeeId: me, - }, - take: 1, - }).then(n => n > 0), - isMuted: Mutings.count({ - where: { - muterId: me, - muteeId: target, - }, - take: 1, - }).then(n => n > 0), - }); - }, - - async getHasUnreadMessagingMessage(userId: User['id']): Promise { - const mute = await Mutings.findBy({ - muterId: userId, - }); - - const joinings = await UserGroupJoinings.findBy({ userId: userId }); - - const groupQs = Promise.all(joinings.map(j => MessagingMessages.createQueryBuilder('message') - .where('message.groupId = :groupId', { groupId: j.userGroupId }) - .andWhere('message.userId != :userId', { userId: userId }) - .andWhere('NOT (:userId = ANY(message.reads))', { userId: userId }) - .andWhere('message.createdAt > :joinedAt', { joinedAt: j.createdAt }) // 自分が加入する前の会話については、未読扱いしない - .getOne().then(x => x != null))); - - const [withUser, withGroups] = await Promise.all([ - MessagingMessages.count({ - where: { - recipientId: userId, - isRead: false, - ...(mute.length > 0 ? { userId: Not(In(mute.map(x => x.muteeId))) } : {}), - }, - take: 1, - }).then(count => count > 0), - groupQs, - ]); - - return withUser || withGroups.some(x => x); - }, - - async getHasUnreadAnnouncement(userId: User['id']): Promise { - const reads = await AnnouncementReads.findBy({ - userId: userId, - }); - - const count = await Announcements.countBy(reads.length > 0 ? { - id: Not(In(reads.map(read => read.announcementId))), - } : {}); - - return count > 0; - }, - - async getHasUnreadAntenna(userId: User['id']): Promise { - const myAntennas = (await getAntennas()).filter(a => a.userId === userId); - - const unread = myAntennas.length > 0 ? await AntennaNotes.findOneBy({ - antennaId: In(myAntennas.map(x => x.id)), - read: false, - }) : null; - - return unread != null; - }, - - async getHasUnreadChannel(userId: User['id']): Promise { - const channels = await ChannelFollowings.findBy({ followerId: userId }); - - const unread = channels.length > 0 ? await NoteUnreads.findOneBy({ - userId: userId, - noteChannelId: In(channels.map(x => x.followeeId)), - }) : null; - - return unread != null; - }, - - async getHasUnreadNotification(userId: User['id']): Promise { - const mute = await Mutings.findBy({ - muterId: userId, - }); - const mutedUserIds = mute.map(m => m.muteeId); - - const count = await Notifications.count({ - where: { - notifieeId: userId, - ...(mutedUserIds.length > 0 ? { notifierId: Not(In(mutedUserIds)) } : {}), - isRead: false, - }, - take: 1, - }); - - return count > 0; - }, - - async getHasPendingReceivedFollowRequest(userId: User['id']): Promise { - const count = await FollowRequests.countBy({ - followeeId: userId, - }); - - return count > 0; - }, - - getOnlineStatus(user: User): 'unknown' | 'online' | 'active' | 'offline' { - if (user.hideOnlineStatus) return 'unknown'; - if (user.lastActiveDate == null) return 'unknown'; - const elapsed = Date.now() - user.lastActiveDate.getTime(); - return ( - elapsed < USER_ONLINE_THRESHOLD ? 'online' : - elapsed < USER_ACTIVE_THRESHOLD ? 'active' : - 'offline' - ); - }, - - async getAvatarUrl(user: User): Promise { - if (user.avatar) { - return DriveFiles.getPublicUrl(user.avatar, true) || this.getIdenticonUrl(user.id); - } else if (user.avatarId) { - const avatar = await DriveFiles.findOneByOrFail({ id: user.avatarId }); - return DriveFiles.getPublicUrl(avatar, true) || this.getIdenticonUrl(user.id); - } else { - return this.getIdenticonUrl(user.id); - } - }, - - getAvatarUrlSync(user: User): string { - if (user.avatar) { - return DriveFiles.getPublicUrl(user.avatar, true) || this.getIdenticonUrl(user.id); - } else { - return this.getIdenticonUrl(user.id); - } - }, - - getIdenticonUrl(userId: User['id']): string { - return `${config.url}/identicon/${userId}`; - }, - - async pack( - src: User['id'] | User, - me?: { id: User['id'] } | null | undefined, - options?: { - detail?: D, - includeSecrets?: boolean, - }, - ): Promise> { - const opts = Object.assign({ - detail: false, - includeSecrets: false, - }, options); - - let user: User; - - if (typeof src === 'object') { - user = src; - if (src.avatar === undefined && src.avatarId) src.avatar = await DriveFiles.findOneBy({ id: src.avatarId }) ?? null; - if (src.banner === undefined && src.bannerId) src.banner = await DriveFiles.findOneBy({ id: src.bannerId }) ?? null; - } else { - user = await this.findOneOrFail({ - where: { id: src }, - relations: { - avatar: true, - banner: true, - }, - }); - } - - const meId = me ? me.id : null; - const isMe = meId === user.id; - - const relation = meId && !isMe && opts.detail ? await this.getRelation(meId, user.id) : null; - const pins = opts.detail ? await UserNotePinings.createQueryBuilder('pin') - .where('pin.userId = :userId', { userId: user.id }) - .innerJoinAndSelect('pin.note', 'note') - .orderBy('pin.id', 'DESC') - .getMany() : []; - const profile = opts.detail ? await UserProfiles.findOneByOrFail({ userId: user.id }) : null; - - const followingCount = profile == null ? null : - (profile.ffVisibility === 'public') || isMe ? user.followingCount : - (profile.ffVisibility === 'followers') && (relation && relation.isFollowing) ? user.followingCount : - null; - - const followersCount = profile == null ? null : - (profile.ffVisibility === 'public') || isMe ? user.followersCount : - (profile.ffVisibility === 'followers') && (relation && relation.isFollowing) ? user.followersCount : - null; - - const falsy = opts.detail ? false : undefined; - - const packed = { - id: user.id, - name: user.name, - username: user.username, - host: user.host, - avatarUrl: this.getAvatarUrlSync(user), - avatarBlurhash: user.avatar?.blurhash || null, - avatarColor: null, // 後方互換性のため - isAdmin: user.isAdmin || falsy, - isModerator: user.isModerator || falsy, - isBot: user.isBot || falsy, - isCat: user.isCat || falsy, - instance: user.host ? userInstanceCache.fetch(user.host, - () => Instances.findOneBy({ host: user.host! }), - v => v != null, - ).then(instance => instance ? { - name: instance.name, - softwareName: instance.softwareName, - softwareVersion: instance.softwareVersion, - iconUrl: instance.iconUrl, - faviconUrl: instance.faviconUrl, - themeColor: instance.themeColor, - } : undefined) : undefined, - emojis: populateEmojis(user.emojis, user.host), - onlineStatus: this.getOnlineStatus(user), - driveCapacityOverrideMb: user.driveCapacityOverrideMb, - - ...(opts.detail ? { - url: profile!.url, - uri: user.uri, - createdAt: user.createdAt.toISOString(), - updatedAt: user.updatedAt ? user.updatedAt.toISOString() : null, - lastFetchedAt: user.lastFetchedAt ? user.lastFetchedAt.toISOString() : null, - bannerUrl: user.banner ? DriveFiles.getPublicUrl(user.banner, false) : null, - bannerBlurhash: user.banner?.blurhash || null, - bannerColor: null, // 後方互換性のため - isLocked: user.isLocked, - isSilenced: user.isSilenced || falsy, - isSuspended: user.isSuspended || falsy, - description: profile!.description, - location: profile!.location, - birthday: profile!.birthday, - lang: profile!.lang, - fields: profile!.fields, - followersCount: followersCount || 0, - followingCount: followingCount || 0, - notesCount: user.notesCount, - pinnedNoteIds: pins.map(pin => pin.noteId), - pinnedNotes: Notes.packMany(pins.map(pin => pin.note!), me, { - detail: true, - }), - pinnedPageId: profile!.pinnedPageId, - pinnedPage: profile!.pinnedPageId ? Pages.pack(profile!.pinnedPageId, me) : null, - publicReactions: profile!.publicReactions, - ffVisibility: profile!.ffVisibility, - twoFactorEnabled: profile!.twoFactorEnabled, - usePasswordLessLogin: profile!.usePasswordLessLogin, - securityKeys: profile!.twoFactorEnabled - ? UserSecurityKeys.countBy({ - userId: user.id, - }).then(result => result >= 1) - : false, - } : {}), - - ...(opts.detail && isMe ? { - avatarId: user.avatarId, - bannerId: user.bannerId, - injectFeaturedNote: profile!.injectFeaturedNote, - receiveAnnouncementEmail: profile!.receiveAnnouncementEmail, - alwaysMarkNsfw: profile!.alwaysMarkNsfw, - autoSensitive: profile!.autoSensitive, - carefulBot: profile!.carefulBot, - autoAcceptFollowed: profile!.autoAcceptFollowed, - noCrawle: profile!.noCrawle, - isExplorable: user.isExplorable, - isDeleted: user.isDeleted, - hideOnlineStatus: user.hideOnlineStatus, - hasUnreadSpecifiedNotes: NoteUnreads.count({ - where: { userId: user.id, isSpecified: true }, - take: 1, - }).then(count => count > 0), - hasUnreadMentions: NoteUnreads.count({ - where: { userId: user.id, isMentioned: true }, - take: 1, - }).then(count => count > 0), - hasUnreadAnnouncement: this.getHasUnreadAnnouncement(user.id), - hasUnreadAntenna: this.getHasUnreadAntenna(user.id), - hasUnreadChannel: this.getHasUnreadChannel(user.id), - hasUnreadMessagingMessage: this.getHasUnreadMessagingMessage(user.id), - hasUnreadNotification: this.getHasUnreadNotification(user.id), - hasPendingReceivedFollowRequest: this.getHasPendingReceivedFollowRequest(user.id), - integrations: profile!.integrations, - mutedWords: profile!.mutedWords, - mutedInstances: profile!.mutedInstances, - mutingNotificationTypes: profile!.mutingNotificationTypes, - emailNotificationTypes: profile!.emailNotificationTypes, - showTimelineReplies: user.showTimelineReplies || falsy, - } : {}), - - ...(opts.includeSecrets ? { - email: profile!.email, - emailVerified: profile!.emailVerified, - securityKeysList: profile!.twoFactorEnabled - ? UserSecurityKeys.find({ - where: { - userId: user.id, - }, - select: { - id: true, - name: true, - lastUsed: true, - }, - }) - : [], - } : {}), - - ...(relation ? { - isFollowing: relation.isFollowing, - isFollowed: relation.isFollowed, - hasPendingFollowRequestFromYou: relation.hasPendingFollowRequestFromYou, - hasPendingFollowRequestToYou: relation.hasPendingFollowRequestToYou, - isBlocking: relation.isBlocking, - isBlocked: relation.isBlocked, - isMuted: relation.isMuted, - } : {}), - } as Promiseable> as Promiseable>; - - return await awaitAll(packed); - }, - - packMany( - users: (User['id'] | User)[], - me?: { id: User['id'] } | null | undefined, - options?: { - detail?: D, - includeSecrets?: boolean, - }, - ): Promise[]> { - return Promise.all(users.map(u => this.pack(u, me, options))); - }, - - isLocalUser, - isRemoteUser, -}); diff --git a/packages/backend/src/models/schema/antenna.ts b/packages/backend/src/models/schema/antenna.ts deleted file mode 100644 index 9cf522802..000000000 --- a/packages/backend/src/models/schema/antenna.ts +++ /dev/null @@ -1,89 +0,0 @@ -export const packedAntennaSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - keywords: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, - excludeKeywords: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, - src: { - type: 'string', - optional: false, nullable: false, - enum: ['home', 'all', 'users', 'list', 'group'], - }, - userListId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - }, - userGroupId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - }, - users: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - caseSensitive: { - type: 'boolean', - optional: false, nullable: false, - default: false, - }, - notify: { - type: 'boolean', - optional: false, nullable: false, - }, - withReplies: { - type: 'boolean', - optional: false, nullable: false, - default: false, - }, - withFile: { - type: 'boolean', - optional: false, nullable: false, - }, - hasUnreadNote: { - type: 'boolean', - optional: false, nullable: false, - default: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/app.ts b/packages/backend/src/models/schema/app.ts deleted file mode 100644 index c80dc81c3..000000000 --- a/packages/backend/src/models/schema/app.ts +++ /dev/null @@ -1,33 +0,0 @@ -export const packedAppSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - callbackUrl: { - type: 'string', - optional: false, nullable: true, - }, - permission: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - secret: { - type: 'string', - optional: true, nullable: false, - }, - isAuthorized: { - type: 'boolean', - optional: true, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/blocking.ts b/packages/backend/src/models/schema/blocking.ts deleted file mode 100644 index 553232242..000000000 --- a/packages/backend/src/models/schema/blocking.ts +++ /dev/null @@ -1,26 +0,0 @@ -export const packedBlockingSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - blockeeId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - blockee: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/channel.ts b/packages/backend/src/models/schema/channel.ts deleted file mode 100644 index 7f4f2a48b..000000000 --- a/packages/backend/src/models/schema/channel.ts +++ /dev/null @@ -1,51 +0,0 @@ -export const packedChannelSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - lastNotedAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - description: { - type: 'string', - nullable: true, optional: false, - }, - bannerUrl: { - type: 'string', - format: 'url', - nullable: true, optional: false, - }, - notesCount: { - type: 'number', - nullable: false, optional: false, - }, - usersCount: { - type: 'number', - nullable: false, optional: false, - }, - isFollowing: { - type: 'boolean', - optional: true, nullable: false, - }, - userId: { - type: 'string', - nullable: true, optional: false, - format: 'id', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/clip.ts b/packages/backend/src/models/schema/clip.ts deleted file mode 100644 index f0ee2ce0c..000000000 --- a/packages/backend/src/models/schema/clip.ts +++ /dev/null @@ -1,38 +0,0 @@ -export const packedClipSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - ref: 'UserLite', - optional: false, nullable: false, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - description: { - type: 'string', - optional: false, nullable: true, - }, - isPublic: { - type: 'boolean', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/drive-file.ts b/packages/backend/src/models/schema/drive-file.ts deleted file mode 100644 index 435907661..000000000 --- a/packages/backend/src/models/schema/drive-file.ts +++ /dev/null @@ -1,107 +0,0 @@ -export const packedDriveFileSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - example: 'lenna.jpg', - }, - type: { - type: 'string', - optional: false, nullable: false, - example: 'image/jpeg', - }, - md5: { - type: 'string', - optional: false, nullable: false, - format: 'md5', - example: '15eca7fba0480996e2245f5185bf39f2', - }, - size: { - type: 'number', - optional: false, nullable: false, - example: 51469, - }, - isSensitive: { - type: 'boolean', - optional: false, nullable: false, - }, - blurhash: { - type: 'string', - optional: false, nullable: true, - }, - properties: { - type: 'object', - optional: false, nullable: false, - properties: { - width: { - type: 'number', - optional: true, nullable: false, - example: 1280, - }, - height: { - type: 'number', - optional: true, nullable: false, - example: 720, - }, - orientation: { - type: 'number', - optional: true, nullable: false, - example: 8, - }, - avgColor: { - type: 'string', - optional: true, nullable: false, - example: 'rgb(40,65,87)', - }, - }, - }, - url: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - thumbnailUrl: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - comment: { - type: 'string', - optional: false, nullable: true, - }, - folderId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - folder: { - type: 'object', - optional: true, nullable: true, - ref: 'DriveFolder', - }, - userId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - user: { - type: 'object', - optional: true, nullable: true, - ref: 'UserLite', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/drive-folder.ts b/packages/backend/src/models/schema/drive-folder.ts deleted file mode 100644 index 88cb8ab4a..000000000 --- a/packages/backend/src/models/schema/drive-folder.ts +++ /dev/null @@ -1,39 +0,0 @@ -export const packedDriveFolderSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - foldersCount: { - type: 'number', - optional: true, nullable: false, - }, - filesCount: { - type: 'number', - optional: true, nullable: false, - }, - parentId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - parent: { - type: 'object', - optional: true, nullable: true, - ref: 'DriveFolder', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/emoji.ts b/packages/backend/src/models/schema/emoji.ts deleted file mode 100644 index e97fdd5ef..000000000 --- a/packages/backend/src/models/schema/emoji.ts +++ /dev/null @@ -1,37 +0,0 @@ -export const packedEmojiSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'string', - optional: false, nullable: true, - description: 'The local host is represented with `null`.', - }, - url: { - type: 'string', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/federation-instance.ts b/packages/backend/src/models/schema/federation-instance.ts deleted file mode 100644 index 93327304f..000000000 --- a/packages/backend/src/models/schema/federation-instance.ts +++ /dev/null @@ -1,110 +0,0 @@ -import config from '@/config/index.js'; - -export const packedFederationInstanceSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - caughtAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - host: { - type: 'string', - optional: false, nullable: false, - example: 'misskey.example.com', - }, - usersCount: { - type: 'number', - optional: false, nullable: false, - }, - notesCount: { - type: 'number', - optional: false, nullable: false, - }, - followingCount: { - type: 'number', - optional: false, nullable: false, - }, - followersCount: { - type: 'number', - optional: false, nullable: false, - }, - latestRequestSentAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - lastCommunicatedAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - isNotResponding: { - type: 'boolean', - optional: false, nullable: false, - }, - isSuspended: { - type: 'boolean', - optional: false, nullable: false, - }, - isBlocked: { - type: 'boolean', - optional: false, nullable: false, - }, - softwareName: { - type: 'string', - optional: false, nullable: true, - example: 'misskey', - }, - softwareVersion: { - type: 'string', - optional: false, nullable: true, - example: config.version, - }, - openRegistrations: { - type: 'boolean', - optional: false, nullable: true, - example: true, - }, - name: { - type: 'string', - optional: false, nullable: true, - }, - description: { - type: 'string', - optional: false, nullable: true, - }, - maintainerName: { - type: 'string', - optional: false, nullable: true, - }, - maintainerEmail: { - type: 'string', - optional: false, nullable: true, - }, - iconUrl: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - faviconUrl: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - themeColor: { - type: 'string', - optional: false, nullable: true, - }, - infoUpdatedAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/following.ts b/packages/backend/src/models/schema/following.ts deleted file mode 100644 index 2bcffbfc4..000000000 --- a/packages/backend/src/models/schema/following.ts +++ /dev/null @@ -1,36 +0,0 @@ -export const packedFollowingSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - followeeId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - followee: { - type: 'object', - optional: true, nullable: false, - ref: 'UserDetailed', - }, - followerId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - follower: { - type: 'object', - optional: true, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/gallery-post.ts b/packages/backend/src/models/schema/gallery-post.ts deleted file mode 100644 index fc503d4a6..000000000 --- a/packages/backend/src/models/schema/gallery-post.ts +++ /dev/null @@ -1,69 +0,0 @@ -export const packedGalleryPostSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - title: { - type: 'string', - optional: false, nullable: false, - }, - description: { - type: 'string', - optional: false, nullable: true, - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - ref: 'UserLite', - optional: false, nullable: false, - }, - fileIds: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - files: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, - tags: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - isSensitive: { - type: 'boolean', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/hashtag.ts b/packages/backend/src/models/schema/hashtag.ts deleted file mode 100644 index 98f882764..000000000 --- a/packages/backend/src/models/schema/hashtag.ts +++ /dev/null @@ -1,34 +0,0 @@ -export const packedHashtagSchema = { - type: 'object', - properties: { - tag: { - type: 'string', - optional: false, nullable: false, - example: 'misskey', - }, - mentionedUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - mentionedLocalUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - mentionedRemoteUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - attachedUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - attachedLocalUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - attachedRemoteUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/messaging-message.ts b/packages/backend/src/models/schema/messaging-message.ts deleted file mode 100644 index b1ffa4595..000000000 --- a/packages/backend/src/models/schema/messaging-message.ts +++ /dev/null @@ -1,73 +0,0 @@ -export const packedMessagingMessageSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - ref: 'UserLite', - optional: true, nullable: false, - }, - text: { - type: 'string', - optional: false, nullable: true, - }, - fileId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - }, - file: { - type: 'object', - optional: true, nullable: true, - ref: 'DriveFile', - }, - recipientId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - }, - recipient: { - type: 'object', - optional: true, nullable: true, - ref: 'UserLite', - }, - groupId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - }, - group: { - type: 'object', - optional: true, nullable: true, - ref: 'UserGroup', - }, - isRead: { - type: 'boolean', - optional: true, nullable: false, - }, - reads: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/muting.ts b/packages/backend/src/models/schema/muting.ts deleted file mode 100644 index 3ab99e17e..000000000 --- a/packages/backend/src/models/schema/muting.ts +++ /dev/null @@ -1,31 +0,0 @@ -export const packedMutingSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - expiresAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - muteeId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - mutee: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/note-favorite.ts b/packages/backend/src/models/schema/note-favorite.ts deleted file mode 100644 index d133f7367..000000000 --- a/packages/backend/src/models/schema/note-favorite.ts +++ /dev/null @@ -1,26 +0,0 @@ -export const packedNoteFavoriteSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - note: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - noteId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/note-reaction.ts b/packages/backend/src/models/schema/note-reaction.ts deleted file mode 100644 index 0d8fc5449..000000000 --- a/packages/backend/src/models/schema/note-reaction.ts +++ /dev/null @@ -1,25 +0,0 @@ -export const packedNoteReactionSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - user: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, - type: { - type: 'string', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/note.ts b/packages/backend/src/models/schema/note.ts deleted file mode 100644 index cdf4b9a54..000000000 --- a/packages/backend/src/models/schema/note.ts +++ /dev/null @@ -1,183 +0,0 @@ -export const packedNoteSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - text: { - type: 'string', - optional: false, nullable: true, - }, - cw: { - type: 'string', - optional: true, nullable: true, - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - ref: 'UserLite', - optional: false, nullable: false, - }, - replyId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - renoteId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - reply: { - type: 'object', - optional: true, nullable: true, - ref: 'Note', - }, - renote: { - type: 'object', - optional: true, nullable: true, - ref: 'Note', - }, - isHidden: { - type: 'boolean', - optional: true, nullable: false, - }, - visibility: { - type: 'string', - optional: false, nullable: false, - }, - mentions: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - visibleUserIds: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - fileIds: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - files: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, - tags: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - poll: { - type: 'object', - optional: true, nullable: true, - }, - channelId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - channel: { - type: 'object', - optional: true, nullable: true, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - }, - name: { - type: 'string', - optional: false, nullable: true, - }, - }, - }, - }, - localOnly: { - type: 'boolean', - optional: true, nullable: false, - }, - emojis: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - name: { - type: 'string', - optional: false, nullable: false, - }, - url: { - type: 'string', - optional: false, nullable: true, - }, - }, - }, - }, - reactions: { - type: 'object', - optional: false, nullable: false, - }, - renoteCount: { - type: 'number', - optional: false, nullable: false, - }, - repliesCount: { - type: 'number', - optional: false, nullable: false, - }, - uri: { - type: 'string', - optional: true, nullable: false, - }, - url: { - type: 'string', - optional: true, nullable: false, - }, - - myReaction: { - type: 'object', - optional: true, nullable: true, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/notification.ts b/packages/backend/src/models/schema/notification.ts deleted file mode 100644 index d3f2405cd..000000000 --- a/packages/backend/src/models/schema/notification.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { notificationTypes } from '@/types.js'; - -export const packedNotificationSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - isRead: { - type: 'boolean', - optional: false, nullable: false, - }, - type: { - type: 'string', - optional: false, nullable: false, - enum: [...notificationTypes], - }, - user: { - type: 'object', - ref: 'UserLite', - optional: true, nullable: true, - }, - userId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - }, - note: { - type: 'object', - ref: 'Note', - optional: true, nullable: true, - }, - reaction: { - type: 'string', - optional: true, nullable: true, - }, - choice: { - type: 'number', - optional: true, nullable: true, - }, - invitation: { - type: 'object', - optional: true, nullable: true, - }, - body: { - type: 'string', - optional: true, nullable: true, - }, - header: { - type: 'string', - optional: true, nullable: true, - }, - icon: { - type: 'string', - optional: true, nullable: true, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/page.ts b/packages/backend/src/models/schema/page.ts deleted file mode 100644 index 55ba3ce7f..000000000 --- a/packages/backend/src/models/schema/page.ts +++ /dev/null @@ -1,51 +0,0 @@ -export const packedPageSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - title: { - type: 'string', - optional: false, nullable: false, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - summary: { - type: 'string', - optional: false, nullable: true, - }, - content: { - type: 'array', - optional: false, nullable: false, - }, - variables: { - type: 'array', - optional: false, nullable: false, - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - ref: 'UserLite', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/queue.ts b/packages/backend/src/models/schema/queue.ts deleted file mode 100644 index 7ceeda26a..000000000 --- a/packages/backend/src/models/schema/queue.ts +++ /dev/null @@ -1,25 +0,0 @@ -export const packedQueueCountSchema = { - type: 'object', - properties: { - waiting: { - type: 'number', - optional: false, nullable: false, - }, - active: { - type: 'number', - optional: false, nullable: false, - }, - completed: { - type: 'number', - optional: false, nullable: false, - }, - failed: { - type: 'number', - optional: false, nullable: false, - }, - delayed: { - type: 'number', - optional: false, nullable: false, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/user-group.ts b/packages/backend/src/models/schema/user-group.ts deleted file mode 100644 index a73bf82bb..000000000 --- a/packages/backend/src/models/schema/user-group.ts +++ /dev/null @@ -1,34 +0,0 @@ -export const packedUserGroupSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - ownerId: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - userIds: { - type: 'array', - nullable: false, optional: true, - items: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/user-list.ts b/packages/backend/src/models/schema/user-list.ts deleted file mode 100644 index 3ba5dc4a8..000000000 --- a/packages/backend/src/models/schema/user-list.ts +++ /dev/null @@ -1,29 +0,0 @@ -export const packedUserListSchema = { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - userIds: { - type: 'array', - nullable: false, optional: true, - items: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - }, - }, -} as const; diff --git a/packages/backend/src/models/schema/user.ts b/packages/backend/src/models/schema/user.ts deleted file mode 100644 index 1c8fe9785..000000000 --- a/packages/backend/src/models/schema/user.ts +++ /dev/null @@ -1,472 +0,0 @@ -export const packedUserLiteSchema = { - type: 'object', - properties: { - id: { - type: 'string', - nullable: false, optional: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - name: { - type: 'string', - nullable: true, optional: false, - example: '藍', - }, - username: { - type: 'string', - nullable: false, optional: false, - example: 'ai', - }, - host: { - type: 'string', - nullable: true, optional: false, - example: 'misskey.example.com', - description: 'The local host is represented with `null`.', - }, - avatarUrl: { - type: 'string', - format: 'url', - nullable: true, optional: false, - }, - avatarBlurhash: { - type: 'any', - nullable: true, optional: false, - }, - avatarColor: { - type: 'any', - nullable: true, optional: false, - default: null, - }, - isAdmin: { - type: 'boolean', - nullable: false, optional: true, - default: false, - }, - isModerator: { - type: 'boolean', - nullable: false, optional: true, - default: false, - }, - isBot: { - type: 'boolean', - nullable: false, optional: true, - }, - isCat: { - type: 'boolean', - nullable: false, optional: true, - }, - emojis: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'object', - nullable: false, optional: false, - properties: { - name: { - type: 'string', - nullable: false, optional: false, - }, - url: { - type: 'string', - nullable: false, optional: false, - format: 'url', - }, - }, - }, - }, - onlineStatus: { - type: 'string', - format: 'url', - nullable: true, optional: false, - enum: ['unknown', 'online', 'active', 'offline'], - }, - }, -} as const; - -export const packedUserDetailedNotMeOnlySchema = { - type: 'object', - properties: { - url: { - type: 'string', - format: 'url', - nullable: true, optional: false, - }, - uri: { - type: 'string', - format: 'uri', - nullable: true, optional: false, - }, - createdAt: { - type: 'string', - nullable: false, optional: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - nullable: true, optional: false, - format: 'date-time', - }, - lastFetchedAt: { - type: 'string', - nullable: true, optional: false, - format: 'date-time', - }, - bannerUrl: { - type: 'string', - format: 'url', - nullable: true, optional: false, - }, - bannerBlurhash: { - type: 'any', - nullable: true, optional: false, - }, - bannerColor: { - type: 'any', - nullable: true, optional: false, - default: null, - }, - isLocked: { - type: 'boolean', - nullable: false, optional: false, - }, - isSilenced: { - type: 'boolean', - nullable: false, optional: false, - }, - isSuspended: { - type: 'boolean', - nullable: false, optional: false, - example: false, - }, - description: { - type: 'string', - nullable: true, optional: false, - example: 'Hi masters, I am Ai!', - }, - location: { - type: 'string', - nullable: true, optional: false, - }, - birthday: { - type: 'string', - nullable: true, optional: false, - example: '2018-03-12', - }, - lang: { - type: 'string', - nullable: true, optional: false, - example: 'ja-JP', - }, - fields: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'object', - nullable: false, optional: false, - properties: { - name: { - type: 'string', - nullable: false, optional: false, - }, - value: { - type: 'string', - nullable: false, optional: false, - }, - }, - maxLength: 4, - }, - }, - followersCount: { - type: 'number', - nullable: false, optional: false, - }, - followingCount: { - type: 'number', - nullable: false, optional: false, - }, - notesCount: { - type: 'number', - nullable: false, optional: false, - }, - pinnedNoteIds: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - }, - pinnedNotes: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'object', - nullable: false, optional: false, - ref: 'Note', - }, - }, - pinnedPageId: { - type: 'string', - nullable: true, optional: false, - }, - pinnedPage: { - type: 'object', - nullable: true, optional: false, - ref: 'Page', - }, - publicReactions: { - type: 'boolean', - nullable: false, optional: false, - }, - twoFactorEnabled: { - type: 'boolean', - nullable: false, optional: false, - default: false, - }, - usePasswordLessLogin: { - type: 'boolean', - nullable: false, optional: false, - default: false, - }, - securityKeys: { - type: 'boolean', - nullable: false, optional: false, - default: false, - }, - //#region relations - isFollowing: { - type: 'boolean', - nullable: false, optional: true, - }, - isFollowed: { - type: 'boolean', - nullable: false, optional: true, - }, - hasPendingFollowRequestFromYou: { - type: 'boolean', - nullable: false, optional: true, - }, - hasPendingFollowRequestToYou: { - type: 'boolean', - nullable: false, optional: true, - }, - isBlocking: { - type: 'boolean', - nullable: false, optional: true, - }, - isBlocked: { - type: 'boolean', - nullable: false, optional: true, - }, - isMuted: { - type: 'boolean', - nullable: false, optional: true, - }, - //#endregion - }, -} as const; - -export const packedMeDetailedOnlySchema = { - type: 'object', - properties: { - avatarId: { - type: 'string', - nullable: true, optional: false, - format: 'id', - }, - bannerId: { - type: 'string', - nullable: true, optional: false, - format: 'id', - }, - injectFeaturedNote: { - type: 'boolean', - nullable: true, optional: false, - }, - receiveAnnouncementEmail: { - type: 'boolean', - nullable: true, optional: false, - }, - alwaysMarkNsfw: { - type: 'boolean', - nullable: true, optional: false, - }, - autoSensitive: { - type: 'boolean', - nullable: true, optional: false, - }, - carefulBot: { - type: 'boolean', - nullable: true, optional: false, - }, - autoAcceptFollowed: { - type: 'boolean', - nullable: true, optional: false, - }, - noCrawle: { - type: 'boolean', - nullable: true, optional: false, - }, - isExplorable: { - type: 'boolean', - nullable: false, optional: false, - }, - isDeleted: { - type: 'boolean', - nullable: false, optional: false, - }, - hideOnlineStatus: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadSpecifiedNotes: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadMentions: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadAnnouncement: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadAntenna: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadChannel: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadMessagingMessage: { - type: 'boolean', - nullable: false, optional: false, - }, - hasUnreadNotification: { - type: 'boolean', - nullable: false, optional: false, - }, - hasPendingReceivedFollowRequest: { - type: 'boolean', - nullable: false, optional: false, - }, - integrations: { - type: 'object', - nullable: true, optional: false, - }, - mutedWords: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'string', - nullable: false, optional: false, - }, - }, - }, - mutedInstances: { - type: 'array', - nullable: true, optional: false, - items: { - type: 'string', - nullable: false, optional: false, - }, - }, - mutingNotificationTypes: { - type: 'array', - nullable: true, optional: false, - items: { - type: 'string', - nullable: false, optional: false, - }, - }, - emailNotificationTypes: { - type: 'array', - nullable: true, optional: false, - items: { - type: 'string', - nullable: false, optional: false, - }, - }, - //#region secrets - email: { - type: 'string', - nullable: true, optional: true, - }, - emailVerified: { - type: 'boolean', - nullable: true, optional: true, - }, - securityKeysList: { - type: 'array', - nullable: false, optional: true, - items: { - type: 'object', - nullable: false, optional: false, - }, - }, - //#endregion - }, -} as const; - -export const packedUserDetailedNotMeSchema = { - type: 'object', - allOf: [ - { - type: 'object', - ref: 'UserLite', - }, - { - type: 'object', - ref: 'UserDetailedNotMeOnly', - }, - ], -} as const; - -export const packedMeDetailedSchema = { - type: 'object', - allOf: [ - { - type: 'object', - ref: 'UserLite', - }, - { - type: 'object', - ref: 'UserDetailedNotMeOnly', - }, - { - type: 'object', - ref: 'MeDetailedOnly', - }, - ], -} as const; - -export const packedUserDetailedSchema = { - oneOf: [ - { - type: 'object', - ref: 'UserDetailedNotMe', - }, - { - type: 'object', - ref: 'MeDetailed', - }, - ], -} as const; - -export const packedUserSchema = { - oneOf: [ - { - type: 'object', - ref: 'UserLite', - }, - { - type: 'object', - ref: 'UserDetailed', - }, - ], -} as const; diff --git a/packages/backend/src/prelude/array.ts b/packages/backend/src/prelude/array.ts deleted file mode 100644 index 0b2830cb7..000000000 --- a/packages/backend/src/prelude/array.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { EndoRelation, Predicate } from './relation.js'; - -/** - * Count the number of elements that satisfy the predicate - */ - -export function countIf(f: Predicate, xs: T[]): number { - return xs.filter(f).length; -} - -/** - * Count the number of elements that is equal to the element - */ -export function count(a: T, xs: T[]): number { - return countIf(x => x === a, xs); -} - -/** - * Concatenate an array of arrays - */ -export function concat(xss: T[][]): T[] { - return ([] as T[]).concat(...xss); -} - -/** - * Intersperse the element between the elements of the array - * @param sep The element to be interspersed - */ -export function intersperse(sep: T, xs: T[]): T[] { - return concat(xs.map(x => [sep, x])).slice(1); -} - -/** - * Returns the array of elements that is not equal to the element - */ -export function erase(a: T, xs: T[]): T[] { - return xs.filter(x => x !== a); -} - -/** - * Finds the array of all elements in the first array not contained in the second array. - * The order of result values are determined by the first array. - */ -export function difference(xs: T[], ys: T[]): T[] { - return xs.filter(x => !ys.includes(x)); -} - -/** - * Remove all but the first element from every group of equivalent elements - */ -export function unique(xs: T[]): T[] { - return [...new Set(xs)]; -} - -export function sum(xs: number[]): number { - return xs.reduce((a, b) => a + b, 0); -} - -export function maximum(xs: number[]): number { - return Math.max(...xs); -} - -/** - * Splits an array based on the equivalence relation. - * The concatenation of the result is equal to the argument. - */ -export function groupBy(f: EndoRelation, xs: T[]): T[][] { - const groups = [] as T[][]; - for (const x of xs) { - if (groups.length !== 0 && f(groups[groups.length - 1][0], x)) { - groups[groups.length - 1].push(x); - } else { - groups.push([x]); - } - } - return groups; -} - -/** - * Splits an array based on the equivalence relation induced by the function. - * The concatenation of the result is equal to the argument. - */ -export function groupOn(f: (x: T) => S, xs: T[]): T[][] { - return groupBy((a, b) => f(a) === f(b), xs); -} - -export function groupByX(collections: T[], keySelector: (x: T) => string) { - return collections.reduce((obj: Record, item: T) => { - const key = keySelector(item); - if (!Object.prototype.hasOwnProperty.call(obj, key)) { - obj[key] = []; - } - - obj[key].push(item); - - return obj; - }, {}); -} - -/** - * Compare two arrays by lexicographical order - */ -export function lessThan(xs: number[], ys: number[]): boolean { - for (let i = 0; i < Math.min(xs.length, ys.length); i++) { - if (xs[i] < ys[i]) return true; - if (xs[i] > ys[i]) return false; - } - return xs.length < ys.length; -} - -/** - * Returns the longest prefix of elements that satisfy the predicate - */ -export function takeWhile(f: Predicate, xs: T[]): T[] { - const ys = []; - for (const x of xs) { - if (f(x)) { - ys.push(x); - } else { - break; - } - } - return ys; -} - -export function cumulativeSum(xs: number[]): number[] { - const ys = Array.from(xs); // deep copy - for (let i = 1; i < ys.length; i++) ys[i] += ys[i - 1]; - return ys; -} - -export function toArray(x: T | T[] | undefined): T[] { - return Array.isArray(x) ? x : x != null ? [x] : []; -} - -export function toSingle(x: T | T[] | undefined): T | undefined { - return Array.isArray(x) ? x[0] : x; -} diff --git a/packages/backend/src/prelude/await-all.ts b/packages/backend/src/prelude/await-all.ts deleted file mode 100644 index b955c3a5d..000000000 --- a/packages/backend/src/prelude/await-all.ts +++ /dev/null @@ -1,21 +0,0 @@ -export type Promiseable = { - [K in keyof T]: Promise | T[K]; -}; - -export async function awaitAll(obj: Promiseable): Promise { - const target = {} as T; - const keys = Object.keys(obj) as unknown as (keyof T)[]; - const values = Object.values(obj) as any[]; - - const resolvedValues = await Promise.all(values.map(value => - (!value || !value.constructor || value.constructor.name !== 'Object') - ? value - : awaitAll(value) - )); - - for (let i = 0; i < keys.length; i++) { - target[keys[i]] = resolvedValues[i]; - } - - return target; -} diff --git a/packages/backend/src/prelude/maybe.ts b/packages/backend/src/prelude/maybe.ts deleted file mode 100644 index df7c4ed52..000000000 --- a/packages/backend/src/prelude/maybe.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface IMaybe { - isJust(): this is IJust; -} - -export interface IJust extends IMaybe { - get(): T; -} - -export function just(value: T): IJust { - return { - isJust: () => true, - get: () => value, - }; -} - -export function nothing(): IMaybe { - return { - isJust: () => false, - }; -} diff --git a/packages/backend/src/prelude/url.ts b/packages/backend/src/prelude/url.ts deleted file mode 100644 index a4f2f7f5a..000000000 --- a/packages/backend/src/prelude/url.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function query(obj: Record): string { - const params = Object.entries(obj) - .filter(([, v]) => Array.isArray(v) ? v.length : v !== undefined) - .reduce((a, [k, v]) => (a[k] = v, a), {} as Record); - - return Object.entries(params) - .map((e) => `${e[0]}=${encodeURIComponent(e[1])}`) - .join('&'); -} - -export function appendQuery(url: string, query: string): string { - return `${url}${/\?/.test(url) ? url.endsWith('?') ? '' : '&' : '?'}${query}`; -} diff --git a/packages/backend/src/queue/index.ts b/packages/backend/src/queue/index.ts deleted file mode 100644 index ebb3a77ca..000000000 --- a/packages/backend/src/queue/index.ts +++ /dev/null @@ -1,342 +0,0 @@ -import httpSignature from '@peertube/http-signature'; -import { v4 as uuid } from 'uuid'; - -import config from '@/config/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { IActivity } from '@/remote/activitypub/type.js'; -import { Webhook, webhookEventTypes } from '@/models/entities/webhook.js'; -import { envOption } from '../env.js'; - -import processDeliver from './processors/deliver.js'; -import processInbox from './processors/inbox.js'; -import processDb from './processors/db/index.js'; -import processObjectStorage from './processors/object-storage/index.js'; -import processSystemQueue from './processors/system/index.js'; -import processWebhookDeliver from './processors/webhook-deliver.js'; -import { endedPollNotification } from './processors/ended-poll-notification.js'; -import { queueLogger } from './logger.js'; -import { getJobInfo } from './get-job-info.js'; -import { systemQueue, dbQueue, deliverQueue, inboxQueue, objectStorageQueue, endedPollNotificationQueue, webhookDeliverQueue } from './queues.js'; -import { ThinUser } from './types.js'; - -function renderError(e: Error): any { - return { - stack: e.stack, - message: e.message, - name: e.name, - }; -} - -const systemLogger = queueLogger.createSubLogger('system'); -const deliverLogger = queueLogger.createSubLogger('deliver'); -const webhookLogger = queueLogger.createSubLogger('webhook'); -const inboxLogger = queueLogger.createSubLogger('inbox'); -const dbLogger = queueLogger.createSubLogger('db'); -const objectStorageLogger = queueLogger.createSubLogger('objectStorage'); - -systemQueue - .on('waiting', (jobId) => systemLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => systemLogger.debug(`active id=${job.id}`)) - .on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`)) - .on('failed', (job, err) => systemLogger.warn(`failed(${err}) id=${job.id}`, { job, e: renderError(err) })) - .on('error', (job: any, err: Error) => systemLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => systemLogger.warn(`stalled id=${job.id}`)); - -deliverQueue - .on('waiting', (jobId) => deliverLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`)) - .on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`)) - .on('failed', (job, err) => deliverLogger.warn(`failed(${err}) ${getJobInfo(job)} to=${job.data.to}`)) - .on('error', (job: any, err: Error) => deliverLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => deliverLogger.warn(`stalled ${getJobInfo(job)} to=${job.data.to}`)); - -inboxQueue - .on('waiting', (jobId) => inboxLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`)) - .on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`)) - .on('failed', (job, err) => inboxLogger.warn(`failed(${err}) ${getJobInfo(job)} activity=${job.data.activity ? job.data.activity.id : 'none'}`, { job, e: renderError(err) })) - .on('error', (job: any, err: Error) => inboxLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => inboxLogger.warn(`stalled ${getJobInfo(job)} activity=${job.data.activity ? job.data.activity.id : 'none'}`)); - -dbQueue - .on('waiting', (jobId) => dbLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => dbLogger.debug(`active id=${job.id}`)) - .on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`)) - .on('failed', (job, err) => dbLogger.warn(`failed(${err}) id=${job.id}`, { job, e: renderError(err) })) - .on('error', (job: any, err: Error) => dbLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => dbLogger.warn(`stalled id=${job.id}`)); - -objectStorageQueue - .on('waiting', (jobId) => objectStorageLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`)) - .on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`)) - .on('failed', (job, err) => objectStorageLogger.warn(`failed(${err}) id=${job.id}`, { job, e: renderError(err) })) - .on('error', (job: any, err: Error) => objectStorageLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => objectStorageLogger.warn(`stalled id=${job.id}`)); - -webhookDeliverQueue - .on('waiting', (jobId) => webhookLogger.debug(`waiting id=${jobId}`)) - .on('active', (job) => webhookLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`)) - .on('completed', (job, result) => webhookLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`)) - .on('failed', (job, err) => webhookLogger.warn(`failed(${err}) ${getJobInfo(job)} to=${job.data.to}`)) - .on('error', (job: any, err: Error) => webhookLogger.error(`error ${err}`, { job, e: renderError(err) })) - .on('stalled', (job) => webhookLogger.warn(`stalled ${getJobInfo(job)} to=${job.data.to}`)); - -export function deliver(user: ThinUser, content: unknown, to: string | null) { - if (content == null) return null; - if (to == null) return null; - - const data = { - user: { - id: user.id, - }, - content, - to, - }; - - return deliverQueue.add(data, { - attempts: config.deliverJobMaxAttempts || 12, - timeout: 1 * 60 * 1000, // 1min - backoff: { - type: 'apBackoff', - }, - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function inbox(activity: IActivity, signature: httpSignature.IParsedSignature) { - const data = { - activity: activity, - signature, - }; - - return inboxQueue.add(data, { - attempts: config.inboxJobMaxAttempts || 8, - timeout: 5 * 60 * 1000, // 5min - backoff: { - type: 'apBackoff', - }, - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createDeleteDriveFilesJob(user: ThinUser) { - return dbQueue.add('deleteDriveFiles', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportCustomEmojisJob(user: ThinUser) { - return dbQueue.add('exportCustomEmojis', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportNotesJob(user: ThinUser) { - return dbQueue.add('exportNotes', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportFollowingJob(user: ThinUser, excludeMuting = false, excludeInactive = false) { - return dbQueue.add('exportFollowing', { - user: user, - excludeMuting, - excludeInactive, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportMuteJob(user: ThinUser) { - return dbQueue.add('exportMute', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportBlockingJob(user: ThinUser) { - return dbQueue.add('exportBlocking', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createExportUserListsJob(user: ThinUser) { - return dbQueue.add('exportUserLists', { - user: user, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createImportFollowingJob(user: ThinUser, fileId: DriveFile['id']) { - return dbQueue.add('importFollowing', { - user: user, - fileId: fileId, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createImportMutingJob(user: ThinUser, fileId: DriveFile['id']) { - return dbQueue.add('importMuting', { - user: user, - fileId: fileId, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createImportBlockingJob(user: ThinUser, fileId: DriveFile['id']) { - return dbQueue.add('importBlocking', { - user: user, - fileId: fileId, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createImportUserListsJob(user: ThinUser, fileId: DriveFile['id']) { - return dbQueue.add('importUserLists', { - user: user, - fileId: fileId, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createImportCustomEmojisJob(user: ThinUser, fileId: DriveFile['id']) { - return dbQueue.add('importCustomEmojis', { - user: user, - fileId: fileId, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createDeleteAccountJob(user: ThinUser, opts: { soft?: boolean; } = {}) { - return dbQueue.add('deleteAccount', { - user: user, - soft: opts.soft, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createDeleteObjectStorageFileJob(key: string) { - return objectStorageQueue.add('deleteFile', { - key: key, - }, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function createCleanRemoteFilesJob() { - return objectStorageQueue.add('cleanRemoteFiles', {}, { - removeOnComplete: true, - removeOnFail: true, - }); -} - -export function webhookDeliver(webhook: Webhook, type: typeof webhookEventTypes[number], content: unknown) { - const data = { - type, - content, - webhookId: webhook.id, - userId: webhook.userId, - to: webhook.url, - secret: webhook.secret, - createdAt: Date.now(), - eventId: uuid(), - }; - - return webhookDeliverQueue.add(data, { - attempts: 4, - timeout: 1 * 60 * 1000, // 1min - backoff: { - type: 'apBackoff', - }, - removeOnComplete: true, - removeOnFail: true, - }); -} - -export default function() { - if (envOption.onlyServer) return; - - deliverQueue.process(config.deliverJobConcurrency || 128, processDeliver); - inboxQueue.process(config.inboxJobConcurrency || 16, processInbox); - endedPollNotificationQueue.process(endedPollNotification); - webhookDeliverQueue.process(64, processWebhookDeliver); - processDb(dbQueue); - processObjectStorage(objectStorageQueue); - - systemQueue.add('tickCharts', { - }, { - repeat: { cron: '55 * * * *' }, - removeOnComplete: true, - }); - - systemQueue.add('resyncCharts', { - }, { - repeat: { cron: '0 0 * * *' }, - removeOnComplete: true, - }); - - systemQueue.add('cleanCharts', { - }, { - repeat: { cron: '0 0 * * *' }, - removeOnComplete: true, - }); - - systemQueue.add('clean', { - }, { - repeat: { cron: '0 0 * * *' }, - removeOnComplete: true, - }); - - systemQueue.add('checkExpiredMutings', { - }, { - repeat: { cron: '*/5 * * * *' }, - removeOnComplete: true, - }); - - processSystemQueue(systemQueue); -} - -export function destroy() { - deliverQueue.once('cleaned', (jobs, status) => { - deliverLogger.succ(`Cleaned ${jobs.length} ${status} jobs`); - }); - deliverQueue.clean(0, 'delayed'); - - inboxQueue.once('cleaned', (jobs, status) => { - inboxLogger.succ(`Cleaned ${jobs.length} ${status} jobs`); - }); - inboxQueue.clean(0, 'delayed'); -} diff --git a/packages/backend/src/queue/initialize.ts b/packages/backend/src/queue/initialize.ts deleted file mode 100644 index eef4080af..000000000 --- a/packages/backend/src/queue/initialize.ts +++ /dev/null @@ -1,34 +0,0 @@ -import Bull from 'bull'; -import config from '@/config/index.js'; - -export function initialize(name: string, limitPerSec = -1) { - return new Bull(name, { - redis: { - port: config.redis.port, - host: config.redis.host, - family: config.redis.family == null ? 0 : config.redis.family, - password: config.redis.pass, - db: config.redis.db || 0, - }, - prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue', - limiter: limitPerSec > 0 ? { - max: limitPerSec, - duration: 1000, - } : undefined, - settings: { - backoffStrategies: { - apBackoff, - }, - }, - }); -} - -// ref. https://github.com/misskey-dev/misskey/pull/7635#issue-971097019 -function apBackoff(attemptsMade: number, err: Error) { - const baseDelay = 60 * 1000; // 1min - const maxBackoff = 8 * 60 * 60 * 1000; // 8hours - let backoff = (Math.pow(2, attemptsMade) - 1) * baseDelay; - backoff = Math.min(backoff, maxBackoff); - backoff += Math.round(backoff * Math.random() * 0.2); - return backoff; -} diff --git a/packages/backend/src/queue/logger.ts b/packages/backend/src/queue/logger.ts deleted file mode 100644 index 2843a3c26..000000000 --- a/packages/backend/src/queue/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logger from '@/services/logger.js'; - -export const queueLogger = new Logger('queue', 'orange'); diff --git a/packages/backend/src/queue/processors/db/delete-account.ts b/packages/backend/src/queue/processors/db/delete-account.ts deleted file mode 100644 index c1657b4be..000000000 --- a/packages/backend/src/queue/processors/db/delete-account.ts +++ /dev/null @@ -1,94 +0,0 @@ -import Bull from 'bull'; -import { queueLogger } from '../../logger.js'; -import { DriveFiles, Notes, UserProfiles, Users } from '@/models/index.js'; -import { DbUserDeleteJobData } from '@/queue/types.js'; -import { Note } from '@/models/entities/note.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { MoreThan } from 'typeorm'; -import { deleteFileSync } from '@/services/drive/delete-file.js'; -import { sendEmail } from '@/services/send-email.js'; - -const logger = queueLogger.createSubLogger('delete-account'); - -export async function deleteAccount(job: Bull.Job): Promise { - logger.info(`Deleting account of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - return; - } - - { // Delete notes - let cursor: Note['id'] | null = null; - - while (true) { - const notes = await Notes.find({ - where: { - userId: user.id, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }) as Note[]; - - if (notes.length === 0) { - break; - } - - cursor = notes[notes.length - 1].id; - - await Notes.delete(notes.map(note => note.id)); - } - - logger.succ(`All of notes deleted`); - } - - { // Delete files - let cursor: DriveFile['id'] | null = null; - - while (true) { - const files = await DriveFiles.find({ - where: { - userId: user.id, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 10, - order: { - id: 1, - }, - }) as DriveFile[]; - - if (files.length === 0) { - break; - } - - cursor = files[files.length - 1].id; - - for (const file of files) { - await deleteFileSync(file); - } - } - - logger.succ(`All of files deleted`); - } - - { // Send email notification - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - if (profile.email && profile.emailVerified) { - sendEmail(profile.email, 'Account deleted', - `Your account has been deleted.`, - `Your account has been deleted.`); - } - } - - // soft指定されている場合は物理削除しない - if (job.data.soft) { - // nop - } else { - await Users.delete(job.data.user.id); - } - - return 'Account deleted'; -} diff --git a/packages/backend/src/queue/processors/db/delete-drive-files.ts b/packages/backend/src/queue/processors/db/delete-drive-files.ts deleted file mode 100644 index b3832d9f0..000000000 --- a/packages/backend/src/queue/processors/db/delete-drive-files.ts +++ /dev/null @@ -1,56 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import { deleteFileSync } from '@/services/drive/delete-file.js'; -import { Users, DriveFiles } from '@/models/index.js'; -import { MoreThan } from 'typeorm'; -import { DbUserJobData } from '@/queue/types.js'; - -const logger = queueLogger.createSubLogger('delete-drive-files'); - -export async function deleteDriveFiles(job: Bull.Job, done: any): Promise { - logger.info(`Deleting drive files of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - let deletedCount = 0; - let cursor: any = null; - - while (true) { - const files = await DriveFiles.find({ - where: { - userId: user.id, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }); - - if (files.length === 0) { - job.progress(100); - break; - } - - cursor = files[files.length - 1].id; - - for (const file of files) { - await deleteFileSync(file); - deletedCount++; - } - - const total = await DriveFiles.countBy({ - userId: user.id, - }); - - job.progress(deletedCount / total); - } - - logger.succ(`All drive files (${deletedCount}) of ${user.id} has been deleted.`); - done(); -} diff --git a/packages/backend/src/queue/processors/db/export-blocking.ts b/packages/backend/src/queue/processors/db/export-blocking.ts deleted file mode 100644 index f5e0424a7..000000000 --- a/packages/backend/src/queue/processors/db/export-blocking.ts +++ /dev/null @@ -1,93 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { getFullApAccount } from '@/misc/convert-host.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { Users, Blockings } from '@/models/index.js'; -import { MoreThan } from 'typeorm'; -import { DbUserJobData } from '@/queue/types.js'; - -const logger = queueLogger.createSubLogger('export-blocking'); - -export async function exportBlocking(job: Bull.Job, done: any): Promise { - logger.info(`Exporting blocking of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - const stream = fs.createWriteStream(path, { flags: 'a' }); - - let exportedCount = 0; - let cursor: any = null; - - while (true) { - const blockings = await Blockings.find({ - where: { - blockerId: user.id, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }); - - if (blockings.length === 0) { - job.progress(100); - break; - } - - cursor = blockings[blockings.length - 1].id; - - for (const block of blockings) { - const u = await Users.findOneBy({ id: block.blockeeId }); - if (u == null) { - exportedCount++; continue; - } - - const content = getFullApAccount(u.username, u.host); - await new Promise((res, rej) => { - stream.write(content + '\n', err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - exportedCount++; - } - - const total = await Blockings.countBy({ - blockerId: user.id, - }); - - job.progress(exportedCount / total); - } - - stream.end(); - logger.succ(`Exported to: ${path}`); - - const fileName = 'blocking-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.csv'; - const driveFile = await addFile({ user, path, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - } finally { - cleanup(); - } - - done(); -} diff --git a/packages/backend/src/queue/processors/db/export-custom-emojis.ts b/packages/backend/src/queue/processors/db/export-custom-emojis.ts deleted file mode 100644 index 3da887cda..000000000 --- a/packages/backend/src/queue/processors/db/export-custom-emojis.ts +++ /dev/null @@ -1,114 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { ulid } from 'ulid'; -import mime from 'mime-types'; -import archiver from 'archiver'; -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { Users, Emojis } from '@/models/index.js'; -import { } from '@/queue/types.js'; -import { createTemp, createTempDir } from '@/misc/create-temp.js'; -import { downloadUrl } from '@/misc/download-url.js'; -import config from '@/config/index.js'; -import { IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('export-custom-emojis'); - -export async function exportCustomEmojis(job: Bull.Job, done: () => void): Promise { - logger.info(`Exporting custom emojis ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const [path, cleanup] = await createTempDir(); - - logger.info(`Temp dir is ${path}`); - - const metaPath = path + '/meta.json'; - - fs.writeFileSync(metaPath, '', 'utf-8'); - - const metaStream = fs.createWriteStream(metaPath, { flags: 'a' }); - - const writeMeta = (text: string): Promise => { - return new Promise((res, rej) => { - metaStream.write(text, err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - }; - - await writeMeta(`{"metaVersion":2,"host":"${config.host}","exportedAt":"${new Date().toString()}","emojis":[`); - - const customEmojis = await Emojis.find({ - where: { - host: IsNull(), - }, - order: { - id: 'ASC', - }, - }); - - for (const emoji of customEmojis) { - const ext = mime.extension(emoji.type); - const fileName = emoji.name + (ext ? '.' + ext : ''); - const emojiPath = path + '/' + fileName; - fs.writeFileSync(emojiPath, '', 'binary'); - let downloaded = false; - - try { - await downloadUrl(emoji.originalUrl, emojiPath); - downloaded = true; - } catch (e) { // TODO: 何度か再試行 - logger.error(e instanceof Error ? e : new Error(e as string)); - } - - if (!downloaded) { - fs.unlinkSync(emojiPath); - } - - const content = JSON.stringify({ - fileName: fileName, - downloaded: downloaded, - emoji: emoji, - }); - const isFirst = customEmojis.indexOf(emoji) === 0; - - await writeMeta(isFirst ? content : ',\n' + content); - } - - await writeMeta(']}'); - - metaStream.end(); - - // Create archive - const [archivePath, archiveCleanup] = await createTemp(); - const archiveStream = fs.createWriteStream(archivePath); - const archive = archiver('zip', { - zlib: { level: 0 }, - }); - archiveStream.on('close', async () => { - logger.succ(`Exported to: ${archivePath}`); - - const fileName = 'custom-emojis-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.zip'; - const driveFile = await addFile({ user, path: archivePath, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - cleanup(); - archiveCleanup(); - done(); - }); - archive.pipe(archiveStream); - archive.directory(path, false); - archive.finalize(); -} diff --git a/packages/backend/src/queue/processors/db/export-following.ts b/packages/backend/src/queue/processors/db/export-following.ts deleted file mode 100644 index 4ac165567..000000000 --- a/packages/backend/src/queue/processors/db/export-following.ts +++ /dev/null @@ -1,94 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { getFullApAccount } from '@/misc/convert-host.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { Users, Followings, Mutings } from '@/models/index.js'; -import { In, MoreThan, Not } from 'typeorm'; -import { DbUserJobData } from '@/queue/types.js'; -import { Following } from '@/models/entities/following.js'; - -const logger = queueLogger.createSubLogger('export-following'); - -export async function exportFollowing(job: Bull.Job, done: () => void): Promise { - logger.info(`Exporting following of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - const stream = fs.createWriteStream(path, { flags: 'a' }); - - let cursor: Following['id'] | null = null; - - const mutings = job.data.excludeMuting ? await Mutings.findBy({ - muterId: user.id, - }) : []; - - while (true) { - const followings = await Followings.find({ - where: { - followerId: user.id, - ...(mutings.length > 0 ? { followeeId: Not(In(mutings.map(x => x.muteeId))) } : {}), - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }) as Following[]; - - if (followings.length === 0) { - break; - } - - cursor = followings[followings.length - 1].id; - - for (const following of followings) { - const u = await Users.findOneBy({ id: following.followeeId }); - if (u == null) { - continue; - } - - if (job.data.excludeInactive && u.updatedAt && (Date.now() - u.updatedAt.getTime() > 1000 * 60 * 60 * 24 * 90)) { - continue; - } - - const content = getFullApAccount(u.username, u.host); - await new Promise((res, rej) => { - stream.write(content + '\n', err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - } - } - - stream.end(); - logger.succ(`Exported to: ${path}`); - - const fileName = 'following-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.csv'; - const driveFile = await addFile({ user, path, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - } finally { - cleanup(); - } - - done(); -} diff --git a/packages/backend/src/queue/processors/db/export-mute.ts b/packages/backend/src/queue/processors/db/export-mute.ts deleted file mode 100644 index 6a36cfa07..000000000 --- a/packages/backend/src/queue/processors/db/export-mute.ts +++ /dev/null @@ -1,94 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { getFullApAccount } from '@/misc/convert-host.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { Users, Mutings } from '@/models/index.js'; -import { IsNull, MoreThan } from 'typeorm'; -import { DbUserJobData } from '@/queue/types.js'; - -const logger = queueLogger.createSubLogger('export-mute'); - -export async function exportMute(job: Bull.Job, done: any): Promise { - logger.info(`Exporting mute of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - const stream = fs.createWriteStream(path, { flags: 'a' }); - - let exportedCount = 0; - let cursor: any = null; - - while (true) { - const mutes = await Mutings.find({ - where: { - muterId: user.id, - expiresAt: IsNull(), - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }); - - if (mutes.length === 0) { - job.progress(100); - break; - } - - cursor = mutes[mutes.length - 1].id; - - for (const mute of mutes) { - const u = await Users.findOneBy({ id: mute.muteeId }); - if (u == null) { - exportedCount++; continue; - } - - const content = getFullApAccount(u.username, u.host); - await new Promise((res, rej) => { - stream.write(content + '\n', err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - exportedCount++; - } - - const total = await Mutings.countBy({ - muterId: user.id, - }); - - job.progress(exportedCount / total); - } - - stream.end(); - logger.succ(`Exported to: ${path}`); - - const fileName = 'mute-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.csv'; - const driveFile = await addFile({ user, path, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - } finally { - cleanup(); - } - - done(); -} diff --git a/packages/backend/src/queue/processors/db/export-notes.ts b/packages/backend/src/queue/processors/db/export-notes.ts deleted file mode 100644 index 051fcdf38..000000000 --- a/packages/backend/src/queue/processors/db/export-notes.ts +++ /dev/null @@ -1,118 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { Users, Notes, Polls } from '@/models/index.js'; -import { MoreThan } from 'typeorm'; -import { Note } from '@/models/entities/note.js'; -import { Poll } from '@/models/entities/poll.js'; -import { DbUserJobData } from '@/queue/types.js'; -import { createTemp } from '@/misc/create-temp.js'; - -const logger = queueLogger.createSubLogger('export-notes'); - -export async function exportNotes(job: Bull.Job, done: any): Promise { - logger.info(`Exporting notes of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - const stream = fs.createWriteStream(path, { flags: 'a' }); - - const write = (text: string): Promise => { - return new Promise((res, rej) => { - stream.write(text, err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - }; - - await write('['); - - let exportedNotesCount = 0; - let cursor: Note['id'] | null = null; - - while (true) { - const notes = await Notes.find({ - where: { - userId: user.id, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 100, - order: { - id: 1, - }, - }) as Note[]; - - if (notes.length === 0) { - job.progress(100); - break; - } - - cursor = notes[notes.length - 1].id; - - for (const note of notes) { - let poll: Poll | undefined; - if (note.hasPoll) { - poll = await Polls.findOneByOrFail({ noteId: note.id }); - } - const content = JSON.stringify(serialize(note, poll)); - const isFirst = exportedNotesCount === 0; - await write(isFirst ? content : ',\n' + content); - exportedNotesCount++; - } - - const total = await Notes.countBy({ - userId: user.id, - }); - - job.progress(exportedNotesCount / total); - } - - await write(']'); - - stream.end(); - logger.succ(`Exported to: ${path}`); - - const fileName = 'notes-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.json'; - const driveFile = await addFile({ user, path, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - } finally { - cleanup(); - } - - done(); -} - -function serialize(note: Note, poll: Poll | null = null): Record { - return { - id: note.id, - text: note.text, - createdAt: note.createdAt, - fileIds: note.fileIds, - replyId: note.replyId, - renoteId: note.renoteId, - poll: poll, - cw: note.cw, - visibility: note.visibility, - visibleUserIds: note.visibleUserIds, - localOnly: note.localOnly, - }; -} diff --git a/packages/backend/src/queue/processors/db/export-user-lists.ts b/packages/backend/src/queue/processors/db/export-user-lists.ts deleted file mode 100644 index 71dd72df2..000000000 --- a/packages/backend/src/queue/processors/db/export-user-lists.ts +++ /dev/null @@ -1,70 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; - -import { queueLogger } from '../../logger.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { format as dateFormat } from 'date-fns'; -import { getFullApAccount } from '@/misc/convert-host.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { Users, UserLists, UserListJoinings } from '@/models/index.js'; -import { In } from 'typeorm'; -import { DbUserJobData } from '@/queue/types.js'; - -const logger = queueLogger.createSubLogger('export-user-lists'); - -export async function exportUserLists(job: Bull.Job, done: any): Promise { - logger.info(`Exporting user lists of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const lists = await UserLists.findBy({ - userId: user.id, - }); - - // Create temp file - const [path, cleanup] = await createTemp(); - - logger.info(`Temp file is ${path}`); - - try { - const stream = fs.createWriteStream(path, { flags: 'a' }); - - for (const list of lists) { - const joinings = await UserListJoinings.findBy({ userListId: list.id }); - const users = await Users.findBy({ - id: In(joinings.map(j => j.userId)), - }); - - for (const u of users) { - const acct = getFullApAccount(u.username, u.host); - const content = `${list.name},${acct}`; - await new Promise((res, rej) => { - stream.write(content + '\n', err => { - if (err) { - logger.error(err); - rej(err); - } else { - res(); - } - }); - }); - } - } - - stream.end(); - logger.succ(`Exported to: ${path}`); - - const fileName = 'user-lists-' + dateFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss') + '.csv'; - const driveFile = await addFile({ user, path, name: fileName, force: true }); - - logger.succ(`Exported to: ${driveFile.id}`); - } finally { - cleanup(); - } - - done(); -} diff --git a/packages/backend/src/queue/processors/db/import-blocking.ts b/packages/backend/src/queue/processors/db/import-blocking.ts deleted file mode 100644 index 8bddf34bc..000000000 --- a/packages/backend/src/queue/processors/db/import-blocking.ts +++ /dev/null @@ -1,75 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import * as Acct from '@/misc/acct.js'; -import { resolveUser } from '@/remote/resolve-user.js'; -import { downloadTextFile } from '@/misc/download-text-file.js'; -import { isSelfHost, toPuny } from '@/misc/convert-host.js'; -import { Users, DriveFiles, Blockings } from '@/models/index.js'; -import { DbUserImportJobData } from '@/queue/types.js'; -import block from '@/services/blocking/create.js'; -import { IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('import-blocking'); - -export async function importBlocking(job: Bull.Job, done: any): Promise { - logger.info(`Importing blocking of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const file = await DriveFiles.findOneBy({ - id: job.data.fileId, - }); - if (file == null) { - done(); - return; - } - - const csv = await downloadTextFile(file.url); - - let linenum = 0; - - for (const line of csv.trim().split('\n')) { - linenum++; - - try { - const acct = line.split(',')[0].trim(); - const { username, host } = Acct.parse(acct); - - let target = isSelfHost(host!) ? await Users.findOneBy({ - host: IsNull(), - usernameLower: username.toLowerCase(), - }) : await Users.findOneBy({ - host: toPuny(host!), - usernameLower: username.toLowerCase(), - }); - - if (host == null && target == null) continue; - - if (target == null) { - target = await resolveUser(username, host); - } - - if (target == null) { - throw `cannot resolve user: @${username}@${host}`; - } - - // skip myself - if (target.id === job.data.user.id) continue; - - logger.info(`Block[${linenum}] ${target.id} ...`); - - await block(user, target); - } catch (e) { - logger.warn(`Error in line:${linenum} ${e}`); - } - } - - logger.succ('Imported'); - done(); -} - diff --git a/packages/backend/src/queue/processors/db/import-custom-emojis.ts b/packages/backend/src/queue/processors/db/import-custom-emojis.ts deleted file mode 100644 index 64dfe8537..000000000 --- a/packages/backend/src/queue/processors/db/import-custom-emojis.ts +++ /dev/null @@ -1,81 +0,0 @@ -import Bull from 'bull'; -import * as fs from 'node:fs'; -import unzipper from 'unzipper'; - -import { queueLogger } from '../../logger.js'; -import { createTempDir } from '@/misc/create-temp.js'; -import { downloadUrl } from '@/misc/download-url.js'; -import { DriveFiles, Emojis } from '@/models/index.js'; -import { DbUserImportJobData } from '@/queue/types.js'; -import { addFile } from '@/services/drive/add-file.js'; -import { genId } from '@/misc/gen-id.js'; -import { db } from '@/db/postgre.js'; - -const logger = queueLogger.createSubLogger('import-custom-emojis'); - -// TODO: 名前衝突時の動作を選べるようにする -export async function importCustomEmojis(job: Bull.Job, done: any): Promise { - logger.info(`Importing custom emojis ...`); - - const file = await DriveFiles.findOneBy({ - id: job.data.fileId, - }); - if (file == null) { - done(); - return; - } - - const [path, cleanup] = await createTempDir(); - - logger.info(`Temp dir is ${path}`); - - const destPath = path + '/emojis.zip'; - - try { - fs.writeFileSync(destPath, '', 'binary'); - await downloadUrl(file.url, destPath); - } catch (e) { // TODO: 何度か再試行 - if (e instanceof Error || typeof e === 'string') { - logger.error(e); - } - throw e; - } - - const outputPath = path + '/emojis'; - const unzipStream = fs.createReadStream(destPath); - const extractor = unzipper.Extract({ path: outputPath }); - extractor.on('close', async () => { - const metaRaw = fs.readFileSync(outputPath + '/meta.json', 'utf-8'); - const meta = JSON.parse(metaRaw); - - for (const record of meta.emojis) { - if (!record.downloaded) continue; - const emojiInfo = record.emoji; - const emojiPath = outputPath + '/' + record.fileName; - await Emojis.delete({ - name: emojiInfo.name, - }); - const driveFile = await addFile({ user: null, path: emojiPath, name: record.fileName, force: true }); - const emoji = await Emojis.insert({ - id: genId(), - updatedAt: new Date(), - name: emojiInfo.name, - category: emojiInfo.category, - host: null, - aliases: emojiInfo.aliases, - originalUrl: driveFile.url, - publicUrl: driveFile.webpublicUrl ?? driveFile.url, - type: driveFile.webpublicType ?? driveFile.type, - }).then(x => Emojis.findOneByOrFail(x.identifiers[0])); - } - - await db.queryResultCache!.remove(['meta_emojis']); - - cleanup(); - - logger.succ('Imported'); - done(); - }); - unzipStream.pipe(extractor); - logger.succ(`Unzipping to ${outputPath}`); -} diff --git a/packages/backend/src/queue/processors/db/import-following.ts b/packages/backend/src/queue/processors/db/import-following.ts deleted file mode 100644 index 8ce2c367d..000000000 --- a/packages/backend/src/queue/processors/db/import-following.ts +++ /dev/null @@ -1,74 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import follow from '@/services/following/create.js'; -import * as Acct from '@/misc/acct.js'; -import { resolveUser } from '@/remote/resolve-user.js'; -import { downloadTextFile } from '@/misc/download-text-file.js'; -import { isSelfHost, toPuny } from '@/misc/convert-host.js'; -import { Users, DriveFiles } from '@/models/index.js'; -import { DbUserImportJobData } from '@/queue/types.js'; -import { IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('import-following'); - -export async function importFollowing(job: Bull.Job, done: any): Promise { - logger.info(`Importing following of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const file = await DriveFiles.findOneBy({ - id: job.data.fileId, - }); - if (file == null) { - done(); - return; - } - - const csv = await downloadTextFile(file.url); - - let linenum = 0; - - for (const line of csv.trim().split('\n')) { - linenum++; - - try { - const acct = line.split(',')[0].trim(); - const { username, host } = Acct.parse(acct); - - let target = isSelfHost(host!) ? await Users.findOneBy({ - host: IsNull(), - usernameLower: username.toLowerCase(), - }) : await Users.findOneBy({ - host: toPuny(host!), - usernameLower: username.toLowerCase(), - }); - - if (host == null && target == null) continue; - - if (target == null) { - target = await resolveUser(username, host); - } - - if (target == null) { - throw `cannot resolve user: @${username}@${host}`; - } - - // skip myself - if (target.id === job.data.user.id) continue; - - logger.info(`Follow[${linenum}] ${target.id} ...`); - - follow(user, target); - } catch (e) { - logger.warn(`Error in line:${linenum} ${e}`); - } - } - - logger.succ('Imported'); - done(); -} diff --git a/packages/backend/src/queue/processors/db/import-muting.ts b/packages/backend/src/queue/processors/db/import-muting.ts deleted file mode 100644 index 8552b797b..000000000 --- a/packages/backend/src/queue/processors/db/import-muting.ts +++ /dev/null @@ -1,84 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import * as Acct from '@/misc/acct.js'; -import { resolveUser } from '@/remote/resolve-user.js'; -import { downloadTextFile } from '@/misc/download-text-file.js'; -import { isSelfHost, toPuny } from '@/misc/convert-host.js'; -import { Users, DriveFiles, Mutings } from '@/models/index.js'; -import { DbUserImportJobData } from '@/queue/types.js'; -import { User } from '@/models/entities/user.js'; -import { genId } from '@/misc/gen-id.js'; -import { IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('import-muting'); - -export async function importMuting(job: Bull.Job, done: any): Promise { - logger.info(`Importing muting of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const file = await DriveFiles.findOneBy({ - id: job.data.fileId, - }); - if (file == null) { - done(); - return; - } - - const csv = await downloadTextFile(file.url); - - let linenum = 0; - - for (const line of csv.trim().split('\n')) { - linenum++; - - try { - const acct = line.split(',')[0].trim(); - const { username, host } = Acct.parse(acct); - - let target = isSelfHost(host!) ? await Users.findOneBy({ - host: IsNull(), - usernameLower: username.toLowerCase(), - }) : await Users.findOneBy({ - host: toPuny(host!), - usernameLower: username.toLowerCase(), - }); - - if (host == null && target == null) continue; - - if (target == null) { - target = await resolveUser(username, host); - } - - if (target == null) { - throw `cannot resolve user: @${username}@${host}`; - } - - // skip myself - if (target.id === job.data.user.id) continue; - - logger.info(`Mute[${linenum}] ${target.id} ...`); - - await mute(user, target); - } catch (e) { - logger.warn(`Error in line:${linenum} ${e}`); - } - } - - logger.succ('Imported'); - done(); -} - -async function mute(user: User, target: User) { - await Mutings.insert({ - id: genId(), - createdAt: new Date(), - muterId: user.id, - muteeId: target.id, - }); -} diff --git a/packages/backend/src/queue/processors/db/import-user-lists.ts b/packages/backend/src/queue/processors/db/import-user-lists.ts deleted file mode 100644 index 9919b7c53..000000000 --- a/packages/backend/src/queue/processors/db/import-user-lists.ts +++ /dev/null @@ -1,80 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import * as Acct from '@/misc/acct.js'; -import { resolveUser } from '@/remote/resolve-user.js'; -import { pushUserToUserList } from '@/services/user-list/push.js'; -import { downloadTextFile } from '@/misc/download-text-file.js'; -import { isSelfHost, toPuny } from '@/misc/convert-host.js'; -import { DriveFiles, Users, UserLists, UserListJoinings } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { DbUserImportJobData } from '@/queue/types.js'; -import { IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('import-user-lists'); - -export async function importUserLists(job: Bull.Job, done: any): Promise { - logger.info(`Importing user lists of ${job.data.user.id} ...`); - - const user = await Users.findOneBy({ id: job.data.user.id }); - if (user == null) { - done(); - return; - } - - const file = await DriveFiles.findOneBy({ - id: job.data.fileId, - }); - if (file == null) { - done(); - return; - } - - const csv = await downloadTextFile(file.url); - - let linenum = 0; - - for (const line of csv.trim().split('\n')) { - linenum++; - - try { - const listName = line.split(',')[0].trim(); - const { username, host } = Acct.parse(line.split(',')[1].trim()); - - let list = await UserLists.findOneBy({ - userId: user.id, - name: listName, - }); - - if (list == null) { - list = await UserLists.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: listName, - }).then(x => UserLists.findOneByOrFail(x.identifiers[0])); - } - - let target = isSelfHost(host!) ? await Users.findOneBy({ - host: IsNull(), - usernameLower: username.toLowerCase(), - }) : await Users.findOneBy({ - host: toPuny(host!), - usernameLower: username.toLowerCase(), - }); - - if (target == null) { - target = await resolveUser(username, host); - } - - if (await UserListJoinings.findOneBy({ userListId: list!.id, userId: target.id }) != null) continue; - - pushUserToUserList(target, list!); - } catch (e) { - logger.warn(`Error in line:${linenum} ${e}`); - } - } - - logger.succ('Imported'); - done(); -} diff --git a/packages/backend/src/queue/processors/db/index.ts b/packages/backend/src/queue/processors/db/index.ts deleted file mode 100644 index e91d56977..000000000 --- a/packages/backend/src/queue/processors/db/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Bull from 'bull'; -import { DbJobData } from '@/queue/types.js'; -import { deleteDriveFiles } from './delete-drive-files.js'; -import { exportCustomEmojis } from './export-custom-emojis.js'; -import { exportNotes } from './export-notes.js'; -import { exportFollowing } from './export-following.js'; -import { exportMute } from './export-mute.js'; -import { exportBlocking } from './export-blocking.js'; -import { exportUserLists } from './export-user-lists.js'; -import { importFollowing } from './import-following.js'; -import { importUserLists } from './import-user-lists.js'; -import { deleteAccount } from './delete-account.js'; -import { importMuting } from './import-muting.js'; -import { importBlocking } from './import-blocking.js'; -import { importCustomEmojis } from './import-custom-emojis.js'; - -const jobs = { - deleteDriveFiles, - exportCustomEmojis, - exportNotes, - exportFollowing, - exportMute, - exportBlocking, - exportUserLists, - importFollowing, - importMuting, - importBlocking, - importUserLists, - importCustomEmojis, - deleteAccount, -} as Record | Bull.ProcessPromiseFunction>; - -export default function(dbQueue: Bull.Queue) { - for (const [k, v] of Object.entries(jobs)) { - dbQueue.process(k, v); - } -} diff --git a/packages/backend/src/queue/processors/deliver.ts b/packages/backend/src/queue/processors/deliver.ts deleted file mode 100644 index 291c05766..000000000 --- a/packages/backend/src/queue/processors/deliver.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { URL } from 'node:url'; -import Bull from 'bull'; -import request from '@/remote/activitypub/request.js'; -import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc.js'; -import Logger from '@/services/logger.js'; -import { Instances } from '@/models/index.js'; -import { apRequestChart, federationChart, instanceChart } from '@/services/chart/index.js'; -import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { Cache } from '@/misc/cache.js'; -import { Instance } from '@/models/entities/instance.js'; -import { DeliverJobData } from '../types.js'; -import { StatusError } from '@/misc/fetch.js'; - -const logger = new Logger('deliver'); - -let latest: string | null = null; - -const suspendedHostsCache = new Cache(1000 * 60 * 60); - -export default async (job: Bull.Job) => { - const { host } = new URL(job.data.to); - - // ブロックしてたら中断 - const meta = await fetchMeta(); - if (meta.blockedHosts.includes(toPuny(host))) { - return 'skip (blocked)'; - } - - // isSuspendedなら中断 - let suspendedHosts = suspendedHostsCache.get(null); - if (suspendedHosts == null) { - suspendedHosts = await Instances.find({ - where: { - isSuspended: true, - }, - }); - suspendedHostsCache.set(null, suspendedHosts); - } - if (suspendedHosts.map(x => x.host).includes(toPuny(host))) { - return 'skip (suspended)'; - } - - try { - if (latest !== (latest = JSON.stringify(job.data.content, null, 2))) { - logger.debug(`delivering ${latest}`); - } - - await request(job.data.user, job.data.to, job.data.content); - - // Update stats - registerOrFetchInstanceDoc(host).then(i => { - Instances.update(i.id, { - latestRequestSentAt: new Date(), - latestStatus: 200, - lastCommunicatedAt: new Date(), - isNotResponding: false, - }); - - fetchInstanceMetadata(i); - - instanceChart.requestSent(i.host, true); - apRequestChart.deliverSucc(); - federationChart.deliverd(i.host, true); - }); - - return 'Success'; - } catch (res) { - // Update stats - registerOrFetchInstanceDoc(host).then(i => { - Instances.update(i.id, { - latestRequestSentAt: new Date(), - latestStatus: res instanceof StatusError ? res.statusCode : null, - isNotResponding: true, - }); - - instanceChart.requestSent(i.host, false); - apRequestChart.deliverFail(); - federationChart.deliverd(i.host, false); - }); - - if (res instanceof StatusError) { - // 4xx - if (res.isClientError) { - // HTTPステータスコード4xxはクライアントエラーであり、それはつまり - // 何回再送しても成功することはないということなのでエラーにはしないでおく - return `${res.statusCode} ${res.statusMessage}`; - } - - // 5xx etc. - throw `${res.statusCode} ${res.statusMessage}`; - } else { - // DNS error, socket error, timeout ... - throw res; - } - } -}; diff --git a/packages/backend/src/queue/processors/ended-poll-notification.ts b/packages/backend/src/queue/processors/ended-poll-notification.ts deleted file mode 100644 index 6151c96ad..000000000 --- a/packages/backend/src/queue/processors/ended-poll-notification.ts +++ /dev/null @@ -1,33 +0,0 @@ -import Bull from 'bull'; -import { In } from 'typeorm'; -import { Notes, Polls, PollVotes } from '@/models/index.js'; -import { queueLogger } from '../logger.js'; -import { EndedPollNotificationJobData } from '@/queue/types.js'; -import { createNotification } from '@/services/create-notification.js'; - -const logger = queueLogger.createSubLogger('ended-poll-notification'); - -export async function endedPollNotification(job: Bull.Job, done: any): Promise { - const note = await Notes.findOneBy({ id: job.data.noteId }); - if (note == null || !note.hasPoll) { - done(); - return; - } - - const votes = await PollVotes.createQueryBuilder('vote') - .select('vote.userId') - .where('vote.noteId = :noteId', { noteId: note.id }) - .innerJoinAndSelect('vote.user', 'user') - .andWhere('user.host IS NULL') - .getMany(); - - const userIds = [...new Set([note.userId, ...votes.map(v => v.userId)])]; - - for (const userId of userIds) { - createNotification(userId, 'pollEnded', { - noteId: note.id, - }); - } - - done(); -} diff --git a/packages/backend/src/queue/processors/inbox.ts b/packages/backend/src/queue/processors/inbox.ts deleted file mode 100644 index 198dde605..000000000 --- a/packages/backend/src/queue/processors/inbox.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { URL } from 'node:url'; -import Bull from 'bull'; -import httpSignature from '@peertube/http-signature'; -import perform from '@/remote/activitypub/perform.js'; -import Logger from '@/services/logger.js'; -import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc.js'; -import { Instances } from '@/models/index.js'; -import { apRequestChart, federationChart, instanceChart } from '@/services/chart/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { toPuny, extractDbHost } from '@/misc/convert-host.js'; -import { getApId } from '@/remote/activitypub/type.js'; -import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata.js'; -import { InboxJobData } from '../types.js'; -import DbResolver from '@/remote/activitypub/db-resolver.js'; -import { resolvePerson } from '@/remote/activitypub/models/person.js'; -import { LdSignature } from '@/remote/activitypub/misc/ld-signature.js'; -import { StatusError } from '@/misc/fetch.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { UserPublickey } from '@/models/entities/user-publickey.js'; - -const logger = new Logger('inbox'); - -// ユーザーのinboxにアクティビティが届いた時の処理 -export default async (job: Bull.Job): Promise => { - const signature = job.data.signature; // HTTP-signature - const activity = job.data.activity; - - //#region Log - const info = Object.assign({}, activity) as any; - delete info['@context']; - logger.debug(JSON.stringify(info, null, 2)); - //#endregion - - const host = toPuny(new URL(signature.keyId).hostname); - - // ブロックしてたら中断 - const meta = await fetchMeta(); - if (meta.blockedHosts.includes(host)) { - return `Blocked request: ${host}`; - } - - const keyIdLower = signature.keyId.toLowerCase(); - if (keyIdLower.startsWith('acct:')) { - return `Old keyId is no longer supported. ${keyIdLower}`; - } - - const dbResolver = new DbResolver(); - - // HTTP-Signature keyIdを元にDBから取得 - let authUser: { - user: CacheableRemoteUser; - key: UserPublickey | null; - } | null = await dbResolver.getAuthUserFromKeyId(signature.keyId); - - // keyIdでわからなければ、activity.actorを元にDBから取得 || activity.actorを元にリモートから取得 - if (authUser == null) { - try { - authUser = await dbResolver.getAuthUserFromApId(getApId(activity.actor)); - } catch (e) { - // 対象が4xxならスキップ - if (e instanceof StatusError) { - if (e.isClientError) { - return `skip: Ignored deleted actors on both ends ${activity.actor} - ${e.statusCode}`; - } - throw `Error in actor ${activity.actor} - ${e.statusCode || e}`; - } - } - } - - // それでもわからなければ終了 - if (authUser == null) { - return `skip: failed to resolve user`; - } - - // publicKey がなくても終了 - if (authUser.key == null) { - return `skip: failed to resolve user publicKey`; - } - - // HTTP-Signatureの検証 - const httpSignatureValidated = httpSignature.verifySignature(signature, authUser.key.keyPem); - - // また、signatureのsignerは、activity.actorと一致する必要がある - if (!httpSignatureValidated || authUser.user.uri !== activity.actor) { - // 一致しなくても、でもLD-Signatureがありそうならそっちも見る - if (activity.signature) { - if (activity.signature.type !== 'RsaSignature2017') { - return `skip: unsupported LD-signature type ${activity.signature.type}`; - } - - // activity.signature.creator: https://example.oom/users/user#main-key - // みたいになっててUserを引っ張れば公開キーも入ることを期待する - if (activity.signature.creator) { - const candicate = activity.signature.creator.replace(/#.*/, ''); - await resolvePerson(candicate).catch(() => null); - } - - // keyIdからLD-Signatureのユーザーを取得 - authUser = await dbResolver.getAuthUserFromKeyId(activity.signature.creator); - if (authUser == null) { - return `skip: LD-Signatureのユーザーが取得できませんでした`; - } - - if (authUser.key == null) { - return `skip: LD-SignatureのユーザーはpublicKeyを持っていませんでした`; - } - - // LD-Signature検証 - const ldSignature = new LdSignature(); - const verified = await ldSignature.verifyRsaSignature2017(activity, authUser.key.keyPem).catch(() => false); - if (!verified) { - return `skip: LD-Signatureの検証に失敗しました`; - } - - // もう一度actorチェック - if (authUser.user.uri !== activity.actor) { - return `skip: LD-Signature user(${authUser.user.uri}) !== activity.actor(${activity.actor})`; - } - - // ブロックしてたら中断 - const ldHost = extractDbHost(authUser.user.uri); - if (meta.blockedHosts.includes(ldHost)) { - return `Blocked request: ${ldHost}`; - } - } else { - return `skip: http-signature verification failed and no LD-Signature. keyId=${signature.keyId}`; - } - } - - // activity.idがあればホストが署名者のホストであることを確認する - if (typeof activity.id === 'string') { - const signerHost = extractDbHost(authUser.user.uri!); - const activityIdHost = extractDbHost(activity.id); - if (signerHost !== activityIdHost) { - return `skip: signerHost(${signerHost}) !== activity.id host(${activityIdHost}`; - } - } - - // Update stats - registerOrFetchInstanceDoc(authUser.user.host).then(i => { - Instances.update(i.id, { - latestRequestReceivedAt: new Date(), - lastCommunicatedAt: new Date(), - isNotResponding: false, - }); - - fetchInstanceMetadata(i); - - instanceChart.requestReceived(i.host); - apRequestChart.inbox(); - federationChart.inbox(i.host); - }); - - // アクティビティを処理 - await perform(authUser.user, activity); - return `ok`; -}; diff --git a/packages/backend/src/queue/processors/object-storage/clean-remote-files.ts b/packages/backend/src/queue/processors/object-storage/clean-remote-files.ts deleted file mode 100644 index 77da162f6..000000000 --- a/packages/backend/src/queue/processors/object-storage/clean-remote-files.ts +++ /dev/null @@ -1,50 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import { deleteFileSync } from '@/services/drive/delete-file.js'; -import { DriveFiles } from '@/models/index.js'; -import { MoreThan, Not, IsNull } from 'typeorm'; - -const logger = queueLogger.createSubLogger('clean-remote-files'); - -export default async function cleanRemoteFiles(job: Bull.Job>, done: any): Promise { - logger.info(`Deleting cached remote files...`); - - let deletedCount = 0; - let cursor: any = null; - - while (true) { - const files = await DriveFiles.find({ - where: { - userHost: Not(IsNull()), - isLink: false, - ...(cursor ? { id: MoreThan(cursor) } : {}), - }, - take: 8, - order: { - id: 1, - }, - }); - - if (files.length === 0) { - job.progress(100); - break; - } - - cursor = files[files.length - 1].id; - - await Promise.all(files.map(file => deleteFileSync(file, true))); - - deletedCount += 8; - - const total = await DriveFiles.countBy({ - userHost: Not(IsNull()), - isLink: false, - }); - - job.progress(deletedCount / total); - } - - logger.succ(`All cahced remote files has been deleted.`); - done(); -} diff --git a/packages/backend/src/queue/processors/object-storage/delete-file.ts b/packages/backend/src/queue/processors/object-storage/delete-file.ts deleted file mode 100644 index c271e3ddd..000000000 --- a/packages/backend/src/queue/processors/object-storage/delete-file.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ObjectStorageFileJobData } from '@/queue/types.js'; -import Bull from 'bull'; -import { deleteObjectStorageFile } from '@/services/drive/delete-file.js'; - -export default async (job: Bull.Job) => { - const key: string = job.data.key; - - await deleteObjectStorageFile(key); - - return 'Success'; -}; diff --git a/packages/backend/src/queue/processors/object-storage/index.ts b/packages/backend/src/queue/processors/object-storage/index.ts deleted file mode 100644 index ae6c481fe..000000000 --- a/packages/backend/src/queue/processors/object-storage/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Bull from 'bull'; -import { ObjectStorageJobData } from '@/queue/types.js'; -import deleteFile from './delete-file.js'; -import cleanRemoteFiles from './clean-remote-files.js'; - -const jobs = { - deleteFile, - cleanRemoteFiles, -} as Record | Bull.ProcessPromiseFunction>; - -export default function(q: Bull.Queue) { - for (const [k, v] of Object.entries(jobs)) { - q.process(k, 16, v); - } -} diff --git a/packages/backend/src/queue/processors/system/check-expired-mutings.ts b/packages/backend/src/queue/processors/system/check-expired-mutings.ts deleted file mode 100644 index 621269e7e..000000000 --- a/packages/backend/src/queue/processors/system/check-expired-mutings.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Bull from 'bull'; -import { In } from 'typeorm'; -import { Mutings } from '@/models/index.js'; -import { queueLogger } from '../../logger.js'; -import { publishUserEvent } from '@/services/stream.js'; - -const logger = queueLogger.createSubLogger('check-expired-mutings'); - -export async function checkExpiredMutings(job: Bull.Job>, done: any): Promise { - logger.info(`Checking expired mutings...`); - - const expired = await Mutings.createQueryBuilder('muting') - .where('muting.expiresAt IS NOT NULL') - .andWhere('muting.expiresAt < :now', { now: new Date() }) - .innerJoinAndSelect('muting.mutee', 'mutee') - .getMany(); - - if (expired.length > 0) { - await Mutings.delete({ - id: In(expired.map(m => m.id)), - }); - - for (const m of expired) { - publishUserEvent(m.muterId, 'unmute', m.mutee!); - } - } - - logger.succ(`All expired mutings checked.`); - done(); -} diff --git a/packages/backend/src/queue/processors/system/clean-charts.ts b/packages/backend/src/queue/processors/system/clean-charts.ts deleted file mode 100644 index c9169d5ac..000000000 --- a/packages/backend/src/queue/processors/system/clean-charts.ts +++ /dev/null @@ -1,28 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import { activeUsersChart, driveChart, federationChart, hashtagChart, instanceChart, notesChart, perUserDriveChart, perUserFollowingChart, perUserNotesChart, perUserReactionsChart, usersChart, apRequestChart } from '@/services/chart/index.js'; - -const logger = queueLogger.createSubLogger('clean-charts'); - -export async function cleanCharts(job: Bull.Job>, done: any): Promise { - logger.info(`Clean charts...`); - - await Promise.all([ - federationChart.clean(), - notesChart.clean(), - usersChart.clean(), - activeUsersChart.clean(), - instanceChart.clean(), - perUserNotesChart.clean(), - driveChart.clean(), - perUserReactionsChart.clean(), - hashtagChart.clean(), - perUserFollowingChart.clean(), - perUserDriveChart.clean(), - apRequestChart.clean(), - ]); - - logger.succ(`All charts successfully cleaned.`); - done(); -} diff --git a/packages/backend/src/queue/processors/system/clean.ts b/packages/backend/src/queue/processors/system/clean.ts deleted file mode 100644 index c4f978d7c..000000000 --- a/packages/backend/src/queue/processors/system/clean.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Bull from 'bull'; -import { LessThan } from 'typeorm'; -import { UserIps } from '@/models/index.js'; - -import { queueLogger } from '../../logger.js'; - -const logger = queueLogger.createSubLogger('clean'); - -export async function clean(job: Bull.Job>, done: any): Promise { - logger.info('Cleaning...'); - - UserIps.delete({ - createdAt: LessThan(new Date(Date.now() - (1000 * 60 * 60 * 24 * 90))), - }); - - logger.succ('Cleaned.'); - done(); -} diff --git a/packages/backend/src/queue/processors/system/index.ts b/packages/backend/src/queue/processors/system/index.ts deleted file mode 100644 index 9527d40b0..000000000 --- a/packages/backend/src/queue/processors/system/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import Bull from 'bull'; -import { tickCharts } from './tick-charts.js'; -import { resyncCharts } from './resync-charts.js'; -import { cleanCharts } from './clean-charts.js'; -import { checkExpiredMutings } from './check-expired-mutings.js'; -import { clean } from './clean.js'; - -const jobs = { - tickCharts, - resyncCharts, - cleanCharts, - checkExpiredMutings, - clean, -} as Record> | Bull.ProcessPromiseFunction>>; - -export default function(dbQueue: Bull.Queue>) { - for (const [k, v] of Object.entries(jobs)) { - dbQueue.process(k, v); - } -} diff --git a/packages/backend/src/queue/processors/system/resync-charts.ts b/packages/backend/src/queue/processors/system/resync-charts.ts deleted file mode 100644 index 20012513a..000000000 --- a/packages/backend/src/queue/processors/system/resync-charts.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import { driveChart, notesChart, usersChart } from '@/services/chart/index.js'; - -const logger = queueLogger.createSubLogger('resync-charts'); - -export async function resyncCharts(job: Bull.Job>, done: any): Promise { - logger.info(`Resync charts...`); - - // TODO: ユーザーごとのチャートも更新する - // TODO: インスタンスごとのチャートも更新する - await Promise.all([ - driveChart.resync(), - notesChart.resync(), - usersChart.resync(), - ]); - - logger.succ(`All charts successfully resynced.`); - done(); -} diff --git a/packages/backend/src/queue/processors/system/tick-charts.ts b/packages/backend/src/queue/processors/system/tick-charts.ts deleted file mode 100644 index 13403f8f7..000000000 --- a/packages/backend/src/queue/processors/system/tick-charts.ts +++ /dev/null @@ -1,28 +0,0 @@ -import Bull from 'bull'; - -import { queueLogger } from '../../logger.js'; -import { activeUsersChart, driveChart, federationChart, hashtagChart, instanceChart, notesChart, perUserDriveChart, perUserFollowingChart, perUserNotesChart, perUserReactionsChart, usersChart, apRequestChart } from '@/services/chart/index.js'; - -const logger = queueLogger.createSubLogger('tick-charts'); - -export async function tickCharts(job: Bull.Job>, done: any): Promise { - logger.info(`Tick charts...`); - - await Promise.all([ - federationChart.tick(false), - notesChart.tick(false), - usersChart.tick(false), - activeUsersChart.tick(false), - instanceChart.tick(false), - perUserNotesChart.tick(false), - driveChart.tick(false), - perUserReactionsChart.tick(false), - hashtagChart.tick(false), - perUserFollowingChart.tick(false), - perUserDriveChart.tick(false), - apRequestChart.tick(false), - ]); - - logger.succ(`All charts successfully ticked.`); - done(); -} diff --git a/packages/backend/src/queue/processors/webhook-deliver.ts b/packages/backend/src/queue/processors/webhook-deliver.ts deleted file mode 100644 index d49206f68..000000000 --- a/packages/backend/src/queue/processors/webhook-deliver.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { URL } from 'node:url'; -import Bull from 'bull'; -import Logger from '@/services/logger.js'; -import { WebhookDeliverJobData } from '../types.js'; -import { getResponse, StatusError } from '@/misc/fetch.js'; -import { Webhooks } from '@/models/index.js'; -import config from '@/config/index.js'; - -const logger = new Logger('webhook'); - -export default async (job: Bull.Job) => { - try { - logger.debug(`delivering ${job.data.webhookId}`); - - const res = await getResponse({ - url: job.data.to, - method: 'POST', - headers: { - 'User-Agent': 'Misskey-Hooks', - 'X-Misskey-Host': config.host, - 'X-Misskey-Hook-Id': job.data.webhookId, - 'X-Misskey-Hook-Secret': job.data.secret, - }, - body: JSON.stringify({ - hookId: job.data.webhookId, - userId: job.data.userId, - eventId: job.data.eventId, - createdAt: job.data.createdAt, - type: job.data.type, - body: job.data.content, - }), - }); - - Webhooks.update({ id: job.data.webhookId }, { - latestSentAt: new Date(), - latestStatus: res.status, - }); - - return 'Success'; - } catch (res) { - Webhooks.update({ id: job.data.webhookId }, { - latestSentAt: new Date(), - latestStatus: res instanceof StatusError ? res.statusCode : 1, - }); - - if (res instanceof StatusError) { - // 4xx - if (res.isClientError) { - return `${res.statusCode} ${res.statusMessage}`; - } - - // 5xx etc. - throw `${res.statusCode} ${res.statusMessage}`; - } else { - // DNS error, socket error, timeout ... - throw res; - } - } -}; diff --git a/packages/backend/src/queue/queues.ts b/packages/backend/src/queue/queues.ts deleted file mode 100644 index f3a267790..000000000 --- a/packages/backend/src/queue/queues.ts +++ /dev/null @@ -1,21 +0,0 @@ -import config from '@/config/index.js'; -import { initialize as initializeQueue } from './initialize.js'; -import { DeliverJobData, InboxJobData, DbJobData, ObjectStorageJobData, EndedPollNotificationJobData, WebhookDeliverJobData } from './types.js'; - -export const systemQueue = initializeQueue>('system'); -export const endedPollNotificationQueue = initializeQueue('endedPollNotification'); -export const deliverQueue = initializeQueue('deliver', config.deliverJobPerSec || 128); -export const inboxQueue = initializeQueue('inbox', config.inboxJobPerSec || 16); -export const dbQueue = initializeQueue('db'); -export const objectStorageQueue = initializeQueue('objectStorage'); -export const webhookDeliverQueue = initializeQueue('webhookDeliver', 64); - -export const queues = [ - systemQueue, - endedPollNotificationQueue, - deliverQueue, - inboxQueue, - dbQueue, - objectStorageQueue, - webhookDeliverQueue, -]; diff --git a/packages/backend/src/queue/types.ts b/packages/backend/src/queue/types.ts deleted file mode 100644 index 5ea472556..000000000 --- a/packages/backend/src/queue/types.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { DriveFile } from '@/models/entities/drive-file.js'; -import { Note } from '@/models/entities/note'; -import { User } from '@/models/entities/user.js'; -import { Webhook } from '@/models/entities/webhook'; -import { IActivity } from '@/remote/activitypub/type.js'; -import httpSignature from '@peertube/http-signature'; - -export type DeliverJobData = { - /** Actor */ - user: ThinUser; - /** Activity */ - content: unknown; - /** inbox URL to deliver */ - to: string; -}; - -export type InboxJobData = { - activity: IActivity; - signature: httpSignature.IParsedSignature; -}; - -export type DbJobData = DbUserJobData | DbUserImportJobData | DbUserDeleteJobData; - -export type DbUserJobData = { - user: ThinUser; - excludeMuting: boolean; - excludeInactive: boolean; -}; - -export type DbUserDeleteJobData = { - user: ThinUser; - soft?: boolean; -}; - -export type DbUserImportJobData = { - user: ThinUser; - fileId: DriveFile['id']; -}; - -export type ObjectStorageJobData = ObjectStorageFileJobData | Record; - -export type ObjectStorageFileJobData = { - key: string; -}; - -export type EndedPollNotificationJobData = { - noteId: Note['id']; -}; - -export type WebhookDeliverJobData = { - type: string; - content: unknown; - webhookId: Webhook['id']; - userId: User['id']; - to: string; - secret: string; - createdAt: number; - eventId: string; -}; - -export type ThinUser = { - id: User['id']; -}; diff --git a/packages/backend/src/remote/activitypub/ap-request.ts b/packages/backend/src/remote/activitypub/ap-request.ts deleted file mode 100644 index 8b55f2247..000000000 --- a/packages/backend/src/remote/activitypub/ap-request.ts +++ /dev/null @@ -1,104 +0,0 @@ -import * as crypto from 'node:crypto'; -import { URL } from 'node:url'; - -type Request = { - url: string; - method: string; - headers: Record; -}; - -type PrivateKey = { - privateKeyPem: string; - keyId: string; -}; - -export function createSignedPost(args: { key: PrivateKey, url: string, body: string, additionalHeaders: Record }) { - const u = new URL(args.url); - const digestHeader = `SHA-256=${crypto.createHash('sha256').update(args.body).digest('base64')}`; - - const request: Request = { - url: u.href, - method: 'POST', - headers: objectAssignWithLcKey({ - 'Date': new Date().toUTCString(), - 'Host': u.hostname, - 'Content-Type': 'application/activity+json', - 'Digest': digestHeader, - }, args.additionalHeaders), - }; - - const result = signToRequest(request, args.key, ['(request-target)', 'date', 'host', 'digest']); - - return { - request, - signingString: result.signingString, - signature: result.signature, - signatureHeader: result.signatureHeader, - }; -} - -export function createSignedGet(args: { key: PrivateKey, url: string, additionalHeaders: Record }) { - const u = new URL(args.url); - - const request: Request = { - url: u.href, - method: 'GET', - headers: objectAssignWithLcKey({ - 'Accept': 'application/activity+json, application/ld+json', - 'Date': new Date().toUTCString(), - 'Host': new URL(args.url).hostname, - }, args.additionalHeaders), - }; - - const result = signToRequest(request, args.key, ['(request-target)', 'date', 'host', 'accept']); - - return { - request, - signingString: result.signingString, - signature: result.signature, - signatureHeader: result.signatureHeader, - }; -} - -function signToRequest(request: Request, key: PrivateKey, includeHeaders: string[]) { - const signingString = genSigningString(request, includeHeaders); - const signature = crypto.sign('sha256', Buffer.from(signingString), key.privateKeyPem).toString('base64'); - const signatureHeader = `keyId="${key.keyId}",algorithm="rsa-sha256",headers="${includeHeaders.join(' ')}",signature="${signature}"`; - - request.headers = objectAssignWithLcKey(request.headers, { - Signature: signatureHeader, - }); - - return { - request, - signingString, - signature, - signatureHeader, - }; -} - -function genSigningString(request: Request, includeHeaders: string[]) { - request.headers = lcObjectKey(request.headers); - - const results: string[] = []; - - for (const key of includeHeaders.map(x => x.toLowerCase())) { - if (key === '(request-target)') { - results.push(`(request-target): ${request.method.toLowerCase()} ${new URL(request.url).pathname}`); - } else { - results.push(`${key}: ${request.headers[key]}`); - } - } - - return results.join('\n'); -} - -function lcObjectKey(src: Record) { - const dst: Record = {}; - for (const key of Object.keys(src).filter(x => x !== '__proto__' && typeof src[x] === 'string')) dst[key.toLowerCase()] = src[key]; - return dst; -} - -function objectAssignWithLcKey(a: Record, b: Record) { - return Object.assign(lcObjectKey(a), lcObjectKey(b)); -} diff --git a/packages/backend/src/remote/activitypub/audience.ts b/packages/backend/src/remote/activitypub/audience.ts deleted file mode 100644 index 846ccf9c0..000000000 --- a/packages/backend/src/remote/activitypub/audience.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { ApObject, getApIds } from './type.js'; -import Resolver from './resolver.js'; -import { resolvePerson } from './models/person.js'; -import { unique, concat } from '@/prelude/array.js'; -import promiseLimit from 'promise-limit'; -import { User, CacheableRemoteUser, CacheableUser } from '@/models/entities/user.js'; - -type Visibility = 'public' | 'home' | 'followers' | 'specified'; - -type AudienceInfo = { - visibility: Visibility, - mentionedUsers: CacheableUser[], - visibleUsers: CacheableUser[], -}; - -export async function parseAudience(actor: CacheableRemoteUser, to?: ApObject, cc?: ApObject, resolver?: Resolver): Promise { - const toGroups = groupingAudience(getApIds(to), actor); - const ccGroups = groupingAudience(getApIds(cc), actor); - - const others = unique(concat([toGroups.other, ccGroups.other])); - - const limit = promiseLimit(2); - const mentionedUsers = (await Promise.all( - others.map(id => limit(() => resolvePerson(id, resolver).catch(() => null))) - )).filter((x): x is CacheableUser => x != null); - - if (toGroups.public.length > 0) { - return { - visibility: 'public', - mentionedUsers, - visibleUsers: [], - }; - } - - if (ccGroups.public.length > 0) { - return { - visibility: 'home', - mentionedUsers, - visibleUsers: [], - }; - } - - if (toGroups.followers.length > 0) { - return { - visibility: 'followers', - mentionedUsers, - visibleUsers: [], - }; - } - - return { - visibility: 'specified', - mentionedUsers, - visibleUsers: mentionedUsers, - }; -} - -function groupingAudience(ids: string[], actor: CacheableRemoteUser) { - const groups = { - public: [] as string[], - followers: [] as string[], - other: [] as string[], - }; - - for (const id of ids) { - if (isPublic(id)) { - groups.public.push(id); - } else if (isFollowers(id, actor)) { - groups.followers.push(id); - } else { - groups.other.push(id); - } - } - - groups.other = unique(groups.other); - - return groups; -} - -function isPublic(id: string) { - return [ - 'https://www.w3.org/ns/activitystreams#Public', - 'as#Public', - 'Public', - ].includes(id); -} - -function isFollowers(id: string, actor: CacheableRemoteUser) { - return ( - id === (actor.followersUri || `${actor.uri}/followers`) - ); -} diff --git a/packages/backend/src/remote/activitypub/db-resolver.ts b/packages/backend/src/remote/activitypub/db-resolver.ts deleted file mode 100644 index 1a02f675c..000000000 --- a/packages/backend/src/remote/activitypub/db-resolver.ts +++ /dev/null @@ -1,155 +0,0 @@ -import escapeRegexp from 'escape-regexp'; -import config from '@/config/index.js'; -import { Note } from '@/models/entities/note.js'; -import { User, IRemoteUser, CacheableRemoteUser, CacheableUser } from '@/models/entities/user.js'; -import { UserPublickey } from '@/models/entities/user-publickey.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { Notes, Users, UserPublickeys, MessagingMessages } from '@/models/index.js'; -import { Cache } from '@/misc/cache.js'; -import { uriPersonCache, userByIdCache } from '@/services/user-cache.js'; -import { IObject, getApId } from './type.js'; -import { resolvePerson } from './models/person.js'; - -const publicKeyCache = new Cache(Infinity); -const publicKeyByUserIdCache = new Cache(Infinity); - -export type UriParseResult = { - /** wether the URI was generated by us */ - local: true; - /** id in DB */ - id: string; - /** hint of type, e.g. "notes", "users" */ - type: string; - /** any remaining text after type and id, not including the slash after id. undefined if empty */ - rest?: string; -} | { - /** wether the URI was generated by us */ - local: false; - /** uri in DB */ - uri: string; -}; - -export function parseUri(value: string | IObject): UriParseResult { - const uri = getApId(value); - - // the host part of a URL is case insensitive, so use the 'i' flag. - const localRegex = new RegExp('^' + escapeRegexp(config.url) + '/(\\w+)/(\\w+)(?:\/(.+))?', 'i'); - const matchLocal = uri.match(localRegex); - - if (matchLocal) { - return { - local: true, - type: matchLocal[1], - id: matchLocal[2], - rest: matchLocal[3], - }; - } else { - return { - local: false, - uri, - }; - } -} - -export default class DbResolver { - constructor() { - } - - /** - * AP Note => Misskey Note in DB - */ - public async getNoteFromApId(value: string | IObject): Promise { - const parsed = parseUri(value); - - if (parsed.local) { - if (parsed.type !== 'notes') return null; - - return await Notes.findOneBy({ - id: parsed.id, - }); - } else { - return await Notes.findOneBy({ - uri: parsed.uri, - }); - } - } - - public async getMessageFromApId(value: string | IObject): Promise { - const parsed = parseUri(value); - - if (parsed.local) { - if (parsed.type !== 'notes') return null; - - return await MessagingMessages.findOneBy({ - id: parsed.id, - }); - } else { - return await MessagingMessages.findOneBy({ - uri: parsed.uri, - }); - } - } - - /** - * AP Person => Misskey User in DB - */ - public async getUserFromApId(value: string | IObject): Promise { - const parsed = parseUri(value); - - if (parsed.local) { - if (parsed.type !== 'users') return null; - - return await userByIdCache.fetchMaybe(parsed.id, () => Users.findOneBy({ - id: parsed.id, - }).then(x => x ?? undefined)) ?? null; - } else { - return await uriPersonCache.fetch(parsed.uri, () => Users.findOneBy({ - uri: parsed.uri, - })); - } - } - - /** - * AP KeyId => Misskey User and Key - */ - public async getAuthUserFromKeyId(keyId: string): Promise<{ - user: CacheableRemoteUser; - key: UserPublickey; - } | null> { - const key = await publicKeyCache.fetch(keyId, async () => { - const key = await UserPublickeys.findOneBy({ - keyId, - }); - - if (key == null) return null; - - return key; - }, key => key != null); - - if (key == null) return null; - - return { - user: await userByIdCache.fetch(key.userId, () => Users.findOneByOrFail({ id: key.userId })) as CacheableRemoteUser, - key, - }; - } - - /** - * AP Actor id => Misskey User and Key - */ - public async getAuthUserFromApId(uri: string): Promise<{ - user: CacheableRemoteUser; - key: UserPublickey | null; - } | null> { - const user = await resolvePerson(uri) as CacheableRemoteUser; - - if (user == null) return null; - - const key = await publicKeyByUserIdCache.fetch(user.id, () => UserPublickeys.findOneBy({ userId: user.id }), v => v != null); - - return { - user, - key, - }; - } -} diff --git a/packages/backend/src/remote/activitypub/deliver-manager.ts b/packages/backend/src/remote/activitypub/deliver-manager.ts deleted file mode 100644 index 4c1999e4c..000000000 --- a/packages/backend/src/remote/activitypub/deliver-manager.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { Users, Followings } from '@/models/index.js'; -import { ILocalUser, IRemoteUser, User } from '@/models/entities/user.js'; -import { deliver } from '@/queue/index.js'; -import { IsNull, Not } from 'typeorm'; - -//#region types -interface IRecipe { - type: string; -} - -interface IFollowersRecipe extends IRecipe { - type: 'Followers'; -} - -interface IDirectRecipe extends IRecipe { - type: 'Direct'; - to: IRemoteUser; -} - -const isFollowers = (recipe: any): recipe is IFollowersRecipe => - recipe.type === 'Followers'; - -const isDirect = (recipe: any): recipe is IDirectRecipe => - recipe.type === 'Direct'; -//#endregion - -export default class DeliverManager { - private actor: { id: User['id']; host: null; }; - private activity: any; - private recipes: IRecipe[] = []; - - /** - * Constructor - * @param actor Actor - * @param activity Activity to deliver - */ - constructor(actor: { id: User['id']; host: null; }, activity: any) { - this.actor = actor; - this.activity = activity; - } - - /** - * Add recipe for followers deliver - */ - public addFollowersRecipe() { - const deliver = { - type: 'Followers', - } as IFollowersRecipe; - - this.addRecipe(deliver); - } - - /** - * Add recipe for direct deliver - * @param to To - */ - public addDirectRecipe(to: IRemoteUser) { - const recipe = { - type: 'Direct', - to, - } as IDirectRecipe; - - this.addRecipe(recipe); - } - - /** - * Add recipe - * @param recipe Recipe - */ - public addRecipe(recipe: IRecipe) { - this.recipes.push(recipe); - } - - /** - * Execute delivers - */ - public async execute() { - if (!Users.isLocalUser(this.actor)) return; - - const inboxes = new Set(); - - /* - build inbox list - - Process follower recipes first to avoid duplication when processing - direct recipes later. - */ - if (this.recipes.some(r => isFollowers(r))) { - // followers deliver - // TODO: SELECT DISTINCT ON ("followerSharedInbox") "followerSharedInbox" みたいな問い合わせにすればよりパフォーマンス向上できそう - // ただ、sharedInboxがnullなリモートユーザーも稀におり、その対応ができなさそう? - const followers = await Followings.find({ - where: { - followeeId: this.actor.id, - followerHost: Not(IsNull()), - }, - select: { - followerSharedInbox: true, - followerInbox: true, - }, - }) as { - followerSharedInbox: string | null; - followerInbox: string; - }[]; - - for (const following of followers) { - const inbox = following.followerSharedInbox || following.followerInbox; - inboxes.add(inbox); - } - } - - this.recipes.filter((recipe): recipe is IDirectRecipe => - // followers recipes have already been processed - isDirect(recipe) - // check that shared inbox has not been added yet - && !(recipe.to.sharedInbox && inboxes.has(recipe.to.sharedInbox)) - // check that they actually have an inbox - && recipe.to.inbox != null, - ) - .forEach(recipe => inboxes.add(recipe.to.inbox!)); - - // deliver - for (const inbox of inboxes) { - deliver(this.actor, this.activity, inbox); - } - } -} - -//#region Utilities -/** - * Deliver activity to followers - * @param activity Activity - * @param from Followee - */ -export async function deliverToFollowers(actor: { id: ILocalUser['id']; host: null; }, activity: any) { - const manager = new DeliverManager(actor, activity); - manager.addFollowersRecipe(); - await manager.execute(); -} - -/** - * Deliver activity to user - * @param activity Activity - * @param to Target user - */ -export async function deliverToUser(actor: { id: ILocalUser['id']; host: null; }, activity: any, to: IRemoteUser) { - const manager = new DeliverManager(actor, activity); - manager.addDirectRecipe(to); - await manager.execute(); -} -//#endregion diff --git a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts deleted file mode 100644 index 4350ef133..000000000 --- a/packages/backend/src/remote/activitypub/kernel/accept/follow.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import accept from '@/services/following/requests/accept.js'; -import { IFollow } from '../../type.js'; -import DbResolver from '../../db-resolver.js'; -import { relayAccepted } from '@/services/relay.js'; - -export default async (actor: CacheableRemoteUser, activity: IFollow): Promise => { - // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある - - const dbResolver = new DbResolver(); - const follower = await dbResolver.getUserFromApId(activity.actor); - - if (follower == null) { - return `skip: follower not found`; - } - - if (follower.host != null) { - return `skip: follower is not a local user`; - } - - // relay - const match = activity.id?.match(/follow-relay\/(\w+)/); - if (match) { - return await relayAccepted(match[1]); - } - - await accept(actor, follower); - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/accept/index.ts b/packages/backend/src/remote/activitypub/kernel/accept/index.ts deleted file mode 100644 index 78ef75ade..000000000 --- a/packages/backend/src/remote/activitypub/kernel/accept/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import Resolver from '../../resolver.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import acceptFollow from './follow.js'; -import { IAccept, isFollow, getApType } from '../../type.js'; -import { apLogger } from '../../logger.js'; - -const logger = apLogger; - -export default async (actor: CacheableRemoteUser, activity: IAccept): Promise => { - const uri = activity.id || activity; - - logger.info(`Accept: ${uri}`); - - const resolver = new Resolver(); - - const object = await resolver.resolve(activity.object).catch(e => { - logger.error(`Resolution failed: ${e}`); - throw e; - }); - - if (isFollow(object)) return await acceptFollow(actor, object); - - return `skip: Unknown Accept type: ${getApType(object)}`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/add/index.ts b/packages/backend/src/remote/activitypub/kernel/add/index.ts deleted file mode 100644 index c813414f9..000000000 --- a/packages/backend/src/remote/activitypub/kernel/add/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IAdd } from '../../type.js'; -import { resolveNote } from '../../models/note.js'; -import { addPinned } from '@/services/i/pin.js'; - -export default async (actor: CacheableRemoteUser, activity: IAdd): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - throw new Error('invalid actor'); - } - - if (activity.target == null) { - throw new Error('target is null'); - } - - if (activity.target === actor.featured) { - const note = await resolveNote(activity.object); - if (note == null) throw new Error('note not found'); - await addPinned(actor, note.id); - return; - } - - throw new Error(`unknown target: ${activity.target}`); -}; diff --git a/packages/backend/src/remote/activitypub/kernel/announce/index.ts b/packages/backend/src/remote/activitypub/kernel/announce/index.ts deleted file mode 100644 index ae7e507c9..000000000 --- a/packages/backend/src/remote/activitypub/kernel/announce/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Resolver from '../../resolver.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import announceNote from './note.js'; -import { IAnnounce, getApId } from '../../type.js'; -import { apLogger } from '../../logger.js'; - -const logger = apLogger; - -export default async (actor: CacheableRemoteUser, activity: IAnnounce): Promise => { - const uri = getApId(activity); - - logger.info(`Announce: ${uri}`); - - const resolver = new Resolver(); - - const targetUri = getApId(activity.object); - - announceNote(resolver, actor, activity, targetUri); -}; diff --git a/packages/backend/src/remote/activitypub/kernel/announce/note.ts b/packages/backend/src/remote/activitypub/kernel/announce/note.ts deleted file mode 100644 index 759cb4ae8..000000000 --- a/packages/backend/src/remote/activitypub/kernel/announce/note.ts +++ /dev/null @@ -1,72 +0,0 @@ -import Resolver from '../../resolver.js'; -import post from '@/services/note/create.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IAnnounce, getApId } from '../../type.js'; -import { fetchNote, resolveNote } from '../../models/note.js'; -import { apLogger } from '../../logger.js'; -import { extractDbHost } from '@/misc/convert-host.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { getApLock } from '@/misc/app-lock.js'; -import { parseAudience } from '../../audience.js'; -import { StatusError } from '@/misc/fetch.js'; -import { Notes } from '@/models/index.js'; - -const logger = apLogger; - -/** - * アナウンスアクティビティを捌きます - */ -export default async function(resolver: Resolver, actor: CacheableRemoteUser, activity: IAnnounce, targetUri: string): Promise { - const uri = getApId(activity); - - if (actor.isSuspended) { - return; - } - - // アナウンス先をブロックしてたら中断 - const meta = await fetchMeta(); - if (meta.blockedHosts.includes(extractDbHost(uri))) return; - - const unlock = await getApLock(uri); - - try { - // 既に同じURIを持つものが登録されていないかチェック - const exist = await fetchNote(uri); - if (exist) { - return; - } - - // Announce対象をresolve - let renote; - try { - renote = await resolveNote(targetUri); - } catch (e) { - // 対象が4xxならスキップ - if (e instanceof StatusError) { - if (e.isClientError) { - logger.warn(`Ignored announce target ${targetUri} - ${e.statusCode}`); - return; - } - - logger.warn(`Error in announce target ${targetUri} - ${e.statusCode || e}`); - } - throw e; - } - - if (!await Notes.isVisibleForMe(renote, actor.id)) return 'skip: invalid actor for this activity'; - - logger.info(`Creating the (Re)Note: ${uri}`); - - const activityAudience = await parseAudience(actor, activity.to, activity.cc); - - await post(actor, { - createdAt: activity.published ? new Date(activity.published) : null, - renote, - visibility: activityAudience.visibility, - visibleUsers: activityAudience.visibleUsers, - uri, - }); - } finally { - unlock(); - } -} diff --git a/packages/backend/src/remote/activitypub/kernel/block/index.ts b/packages/backend/src/remote/activitypub/kernel/block/index.ts deleted file mode 100644 index 5e230ad7b..000000000 --- a/packages/backend/src/remote/activitypub/kernel/block/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { IBlock } from '../../type.js'; -import block from '@/services/blocking/create.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import DbResolver from '../../db-resolver.js'; -import { Users } from '@/models/index.js'; - -export default async (actor: CacheableRemoteUser, activity: IBlock): Promise => { - // ※ activity.objectにブロック対象があり、それは存在するローカルユーザーのはず - - const dbResolver = new DbResolver(); - const blockee = await dbResolver.getUserFromApId(activity.object); - - if (blockee == null) { - return `skip: blockee not found`; - } - - if (blockee.host != null) { - return `skip: ブロックしようとしているユーザーはローカルユーザーではありません`; - } - - await block(await Users.findOneByOrFail({ id: actor.id }), await Users.findOneByOrFail({ id: blockee.id })); - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/create/index.ts b/packages/backend/src/remote/activitypub/kernel/create/index.ts deleted file mode 100644 index c253f9f66..000000000 --- a/packages/backend/src/remote/activitypub/kernel/create/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -import Resolver from '../../resolver.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import createNote from './note.js'; -import { ICreate, getApId, isPost, getApType } from '../../type.js'; -import { apLogger } from '../../logger.js'; -import { toArray, concat, unique } from '@/prelude/array.js'; - -const logger = apLogger; - -export default async (actor: CacheableRemoteUser, activity: ICreate): Promise => { - const uri = getApId(activity); - - logger.info(`Create: ${uri}`); - - // copy audiences between activity <=> object. - if (typeof activity.object === 'object') { - const to = unique(concat([toArray(activity.to), toArray(activity.object.to)])); - const cc = unique(concat([toArray(activity.cc), toArray(activity.object.cc)])); - - activity.to = to; - activity.cc = cc; - activity.object.to = to; - activity.object.cc = cc; - } - - // If there is no attributedTo, use Activity actor. - if (typeof activity.object === 'object' && !activity.object.attributedTo) { - activity.object.attributedTo = activity.actor; - } - - const resolver = new Resolver(); - - const object = await resolver.resolve(activity.object).catch(e => { - logger.error(`Resolution failed: ${e}`); - throw e; - }); - - if (isPost(object)) { - createNote(resolver, actor, object, false, activity); - } else { - logger.warn(`Unknown type: ${getApType(object)}`); - } -}; diff --git a/packages/backend/src/remote/activitypub/kernel/create/note.ts b/packages/backend/src/remote/activitypub/kernel/create/note.ts deleted file mode 100644 index f8dabe06e..000000000 --- a/packages/backend/src/remote/activitypub/kernel/create/note.ts +++ /dev/null @@ -1,44 +0,0 @@ -import Resolver from '../../resolver.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { createNote, fetchNote } from '../../models/note.js'; -import { getApId, IObject, ICreate } from '../../type.js'; -import { getApLock } from '@/misc/app-lock.js'; -import { extractDbHost } from '@/misc/convert-host.js'; -import { StatusError } from '@/misc/fetch.js'; - -/** - * 投稿作成アクティビティを捌きます - */ -export default async function(resolver: Resolver, actor: CacheableRemoteUser, note: IObject, silent = false, activity?: ICreate): Promise { - const uri = getApId(note); - - if (typeof note === 'object') { - if (actor.uri !== note.attributedTo) { - return `skip: actor.uri !== note.attributedTo`; - } - - if (typeof note.id === 'string') { - if (extractDbHost(actor.uri) !== extractDbHost(note.id)) { - return `skip: host in actor.uri !== note.id`; - } - } - } - - const unlock = await getApLock(uri); - - try { - const exist = await fetchNote(note); - if (exist) return 'skip: note exists'; - - await createNote(note, resolver, silent); - return 'ok'; - } catch (e) { - if (e instanceof StatusError && e.isClientError) { - return `skip ${e.statusCode}`; - } else { - throw e; - } - } finally { - unlock(); - } -} diff --git a/packages/backend/src/remote/activitypub/kernel/delete/actor.ts b/packages/backend/src/remote/activitypub/kernel/delete/actor.ts deleted file mode 100644 index 1f94df033..000000000 --- a/packages/backend/src/remote/activitypub/kernel/delete/actor.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { apLogger } from '../../logger.js'; -import { createDeleteAccountJob } from '@/queue/index.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; - -const logger = apLogger; - -export async function deleteActor(actor: CacheableRemoteUser, uri: string): Promise { - logger.info(`Deleting the Actor: ${uri}`); - - if (actor.uri !== uri) { - return `skip: delete actor ${actor.uri} !== ${uri}`; - } - - const user = await Users.findOneByOrFail({ id: actor.id }); - if (user.isDeleted) { - logger.info(`skip: already deleted`); - } - - const job = await createDeleteAccountJob(actor); - - await Users.update(actor.id, { - isDeleted: true, - }); - - return `ok: queued ${job.name} ${job.id}`; -} diff --git a/packages/backend/src/remote/activitypub/kernel/delete/index.ts b/packages/backend/src/remote/activitypub/kernel/delete/index.ts deleted file mode 100644 index c7064f553..000000000 --- a/packages/backend/src/remote/activitypub/kernel/delete/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import deleteNote from './note.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type.js'; -import { toSingle } from '@/prelude/array.js'; -import { deleteActor } from './actor.js'; - -/** - * 削除アクティビティを捌きます - */ -export default async (actor: CacheableRemoteUser, activity: IDelete): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - throw new Error('invalid actor'); - } - - // 削除対象objectのtype - let formerType: string | undefined; - - if (typeof activity.object === 'string') { - // typeが不明だけど、どうせ消えてるのでremote resolveしない - formerType = undefined; - } else { - const object = activity.object as IObject; - if (isTombstone(object)) { - formerType = toSingle(object.formerType); - } else { - formerType = toSingle(object.type); - } - } - - const uri = getApId(activity.object); - - // type不明でもactorとobjectが同じならばそれはPersonに違いない - if (!formerType && actor.uri === uri) { - formerType = 'Person'; - } - - // それでもなかったらおそらくNote - if (!formerType) { - formerType = 'Note'; - } - - if (validPost.includes(formerType)) { - return await deleteNote(actor, uri); - } else if (validActor.includes(formerType)) { - return await deleteActor(actor, uri); - } else { - return `Unknown type ${formerType}`; - } -}; diff --git a/packages/backend/src/remote/activitypub/kernel/delete/note.ts b/packages/backend/src/remote/activitypub/kernel/delete/note.ts deleted file mode 100644 index 1f44c3556..000000000 --- a/packages/backend/src/remote/activitypub/kernel/delete/note.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import deleteNode from '@/services/note/delete.js'; -import { apLogger } from '../../logger.js'; -import DbResolver from '../../db-resolver.js'; -import { getApLock } from '@/misc/app-lock.js'; -import { deleteMessage } from '@/services/messages/delete.js'; - -const logger = apLogger; - -export default async function(actor: CacheableRemoteUser, uri: string): Promise { - logger.info(`Deleting the Note: ${uri}`); - - const unlock = await getApLock(uri); - - try { - const dbResolver = new DbResolver(); - const note = await dbResolver.getNoteFromApId(uri); - - if (note == null) { - const message = await dbResolver.getMessageFromApId(uri); - if (message == null) return 'message not found'; - - if (message.userId !== actor.id) { - return '投稿を削除しようとしているユーザーは投稿の作成者ではありません'; - } - - await deleteMessage(message); - - return 'ok: message deleted'; - } - - if (note.userId !== actor.id) { - return '投稿を削除しようとしているユーザーは投稿の作成者ではありません'; - } - - await deleteNode(actor, note); - return 'ok: note deleted'; - } finally { - unlock(); - } -} diff --git a/packages/backend/src/remote/activitypub/kernel/flag/index.ts b/packages/backend/src/remote/activitypub/kernel/flag/index.ts deleted file mode 100644 index aa2f1f536..000000000 --- a/packages/backend/src/remote/activitypub/kernel/flag/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import config from '@/config/index.js'; -import { IFlag, getApIds } from '../../type.js'; -import { AbuseUserReports, Users } from '@/models/index.js'; -import { In } from 'typeorm'; -import { genId } from '@/misc/gen-id.js'; - -export default async (actor: CacheableRemoteUser, activity: IFlag): Promise => { - // objectは `(User|Note) | (User|Note)[]` だけど、全パターンDBスキーマと対応させられないので - // 対象ユーザーは一番最初のユーザー として あとはコメントとして格納する - const uris = getApIds(activity.object); - - const userIds = uris.filter(uri => uri.startsWith(config.url + '/users/')).map(uri => uri.split('/').pop()!); - const users = await Users.findBy({ - id: In(userIds), - }); - if (users.length < 1) return `skip`; - - await AbuseUserReports.insert({ - id: genId(), - createdAt: new Date(), - targetUserId: users[0].id, - targetUserHost: users[0].host, - reporterId: actor.id, - reporterHost: actor.host, - comment: `${activity.content}\n${JSON.stringify(uris, null, 2)}`, - }); - - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/follow.ts b/packages/backend/src/remote/activitypub/kernel/follow.ts deleted file mode 100644 index a9e92fa22..000000000 --- a/packages/backend/src/remote/activitypub/kernel/follow.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import follow from '@/services/following/create.js'; -import { IFollow } from '../type.js'; -import DbResolver from '../db-resolver.js'; - -export default async (actor: CacheableRemoteUser, activity: IFollow): Promise => { - const dbResolver = new DbResolver(); - const followee = await dbResolver.getUserFromApId(activity.object); - - if (followee == null) { - return `skip: followee not found`; - } - - if (followee.host != null) { - return `skip: フォローしようとしているユーザーはローカルユーザーではありません`; - } - - await follow(actor, followee, activity.id); - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/index.ts b/packages/backend/src/remote/activitypub/kernel/index.ts deleted file mode 100644 index 254a12160..000000000 --- a/packages/backend/src/remote/activitypub/kernel/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { IObject, isCreate, isDelete, isUpdate, isRead, isFollow, isAccept, isReject, isAdd, isRemove, isAnnounce, isLike, isUndo, isBlock, isCollectionOrOrderedCollection, isCollection, isFlag } from '../type.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import create from './create/index.js'; -import performDeleteActivity from './delete/index.js'; -import performUpdateActivity from './update/index.js'; -import { performReadActivity } from './read.js'; -import follow from './follow.js'; -import undo from './undo/index.js'; -import like from './like.js'; -import announce from './announce/index.js'; -import accept from './accept/index.js'; -import reject from './reject/index.js'; -import add from './add/index.js'; -import remove from './remove/index.js'; -import block from './block/index.js'; -import flag from './flag/index.js'; -import { apLogger } from '../logger.js'; -import Resolver from '../resolver.js'; -import { toArray } from '@/prelude/array.js'; -import { Users } from '@/models/index.js'; - -export async function performActivity(actor: CacheableRemoteUser, activity: IObject) { - if (isCollectionOrOrderedCollection(activity)) { - const resolver = new Resolver(); - for (const item of toArray(isCollection(activity) ? activity.items : activity.orderedItems)) { - const act = await resolver.resolve(item); - try { - await performOneActivity(actor, act); - } catch (err) { - if (err instanceof Error || typeof err === 'string') { - apLogger.error(err); - } - } - } - } else { - await performOneActivity(actor, activity); - } -} - -async function performOneActivity(actor: CacheableRemoteUser, activity: IObject): Promise { - if (actor.isSuspended) return; - - if (isCreate(activity)) { - await create(actor, activity); - } else if (isDelete(activity)) { - await performDeleteActivity(actor, activity); - } else if (isUpdate(activity)) { - await performUpdateActivity(actor, activity); - } else if (isRead(activity)) { - await performReadActivity(actor, activity); - } else if (isFollow(activity)) { - await follow(actor, activity); - } else if (isAccept(activity)) { - await accept(actor, activity); - } else if (isReject(activity)) { - await reject(actor, activity); - } else if (isAdd(activity)) { - await add(actor, activity).catch(err => apLogger.error(err)); - } else if (isRemove(activity)) { - await remove(actor, activity).catch(err => apLogger.error(err)); - } else if (isAnnounce(activity)) { - await announce(actor, activity); - } else if (isLike(activity)) { - await like(actor, activity); - } else if (isUndo(activity)) { - await undo(actor, activity); - } else if (isBlock(activity)) { - await block(actor, activity); - } else if (isFlag(activity)) { - await flag(actor, activity); - } else { - apLogger.warn(`unrecognized activity type: ${(activity as any).type}`); - } -} diff --git a/packages/backend/src/remote/activitypub/kernel/like.ts b/packages/backend/src/remote/activitypub/kernel/like.ts deleted file mode 100644 index 2b65ff738..000000000 --- a/packages/backend/src/remote/activitypub/kernel/like.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { ILike, getApId } from '../type.js'; -import create from '@/services/note/reaction/create.js'; -import { fetchNote, extractEmojis } from '../models/note.js'; - -export default async (actor: CacheableRemoteUser, activity: ILike) => { - const targetUri = getApId(activity.object); - - const note = await fetchNote(targetUri); - if (!note) return `skip: target note not found ${targetUri}`; - - await extractEmojis(activity.tag || [], actor.host).catch(() => null); - - return await create(actor, note, activity._misskey_reaction || activity.content || activity.name).catch(e => { - if (e.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') { - return 'skip: already reacted'; - } else { - throw e; - } - }).then(() => 'ok'); -}; diff --git a/packages/backend/src/remote/activitypub/kernel/read.ts b/packages/backend/src/remote/activitypub/kernel/read.ts deleted file mode 100644 index f7b0bcecd..000000000 --- a/packages/backend/src/remote/activitypub/kernel/read.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IRead, getApId } from '../type.js'; -import { isSelfHost, extractDbHost } from '@/misc/convert-host.js'; -import { MessagingMessages } from '@/models/index.js'; -import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message.js'; - -export const performReadActivity = async (actor: CacheableRemoteUser, activity: IRead): Promise => { - const id = await getApId(activity.object); - - if (!isSelfHost(extractDbHost(id))) { - return `skip: Read to foreign host (${id})`; - } - - const messageId = id.split('/').pop(); - - const message = await MessagingMessages.findOneBy({ id: messageId }); - if (message == null) { - return `skip: message not found`; - } - - if (actor.id !== message.recipientId) { - return `skip: actor is not a message recipient`; - } - - await readUserMessagingMessage(message.recipientId!, message.userId, [message.id]); - return `ok: mark as read (${message.userId} => ${message.recipientId} ${message.id})`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/reject/follow.ts b/packages/backend/src/remote/activitypub/kernel/reject/follow.ts deleted file mode 100644 index 824ac69d7..000000000 --- a/packages/backend/src/remote/activitypub/kernel/reject/follow.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { remoteReject } from '@/services/following/reject.js'; -import { IFollow } from '../../type.js'; -import DbResolver from '../../db-resolver.js'; -import { relayRejected } from '@/services/relay.js'; -import { Users } from '@/models/index.js'; - -export default async (actor: CacheableRemoteUser, activity: IFollow): Promise => { - // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある - - const dbResolver = new DbResolver(); - const follower = await dbResolver.getUserFromApId(activity.actor); - - if (follower == null) { - return `skip: follower not found`; - } - - if (!Users.isLocalUser(follower)) { - return `skip: follower is not a local user`; - } - - // relay - const match = activity.id?.match(/follow-relay\/(\w+)/); - if (match) { - return await relayRejected(match[1]); - } - - await remoteReject(actor, follower); - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/reject/index.ts b/packages/backend/src/remote/activitypub/kernel/reject/index.ts deleted file mode 100644 index 00f08842f..000000000 --- a/packages/backend/src/remote/activitypub/kernel/reject/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import Resolver from '../../resolver.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import rejectFollow from './follow.js'; -import { IReject, isFollow, getApType } from '../../type.js'; -import { apLogger } from '../../logger.js'; - -const logger = apLogger; - -export default async (actor: CacheableRemoteUser, activity: IReject): Promise => { - const uri = activity.id || activity; - - logger.info(`Reject: ${uri}`); - - const resolver = new Resolver(); - - const object = await resolver.resolve(activity.object).catch(e => { - logger.error(`Resolution failed: ${e}`); - throw e; - }); - - if (isFollow(object)) return await rejectFollow(actor, object); - - return `skip: Unknown Reject type: ${getApType(object)}`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/remove/index.ts b/packages/backend/src/remote/activitypub/kernel/remove/index.ts deleted file mode 100644 index 11a994a83..000000000 --- a/packages/backend/src/remote/activitypub/kernel/remove/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IRemove } from '../../type.js'; -import { resolveNote } from '../../models/note.js'; -import { removePinned } from '@/services/i/pin.js'; - -export default async (actor: CacheableRemoteUser, activity: IRemove): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - throw new Error('invalid actor'); - } - - if (activity.target == null) { - throw new Error('target is null'); - } - - if (activity.target === actor.featured) { - const note = await resolveNote(activity.object); - if (note == null) throw new Error('note not found'); - await removePinned(actor, note.id); - return; - } - - throw new Error(`unknown target: ${activity.target}`); -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts b/packages/backend/src/remote/activitypub/kernel/undo/accept.ts deleted file mode 100644 index a6e3929b0..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts +++ /dev/null @@ -1,27 +0,0 @@ -import unfollow from '@/services/following/delete.js'; -import cancelRequest from '@/services/following/requests/cancel.js'; -import { IAccept } from '../../type.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { Followings } from '@/models/index.js'; -import DbResolver from '../../db-resolver.js'; - -export default async (actor: CacheableRemoteUser, activity: IAccept): Promise => { - const dbResolver = new DbResolver(); - - const follower = await dbResolver.getUserFromApId(activity.object); - if (follower == null) { - return `skip: follower not found`; - } - - const following = await Followings.findOneBy({ - followerId: follower.id, - followeeId: actor.id, - }); - - if (following) { - await unfollow(follower, actor); - return `ok: unfollowed`; - } - - return `skip: フォローされていない`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/announce.ts b/packages/backend/src/remote/activitypub/kernel/undo/announce.ts deleted file mode 100644 index 417f39722..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/announce.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Notes } from '@/models/index.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IAnnounce, getApId } from '../../type.js'; -import deleteNote from '@/services/note/delete.js'; - -export const undoAnnounce = async (actor: CacheableRemoteUser, activity: IAnnounce): Promise => { - const uri = getApId(activity); - - const note = await Notes.findOneBy({ - uri, - userId: actor.id, - }); - - if (!note) return 'skip: no such Announce'; - - await deleteNote(actor, note); - return 'ok: deleted'; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/block.ts b/packages/backend/src/remote/activitypub/kernel/undo/block.ts deleted file mode 100644 index 4ac669857..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/block.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { IBlock } from '../../type.js'; -import unblock from '@/services/blocking/delete.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import DbResolver from '../../db-resolver.js'; -import { Users } from '@/models/index.js'; - -export default async (actor: CacheableRemoteUser, activity: IBlock): Promise => { - const dbResolver = new DbResolver(); - const blockee = await dbResolver.getUserFromApId(activity.object); - - if (blockee == null) { - return `skip: blockee not found`; - } - - if (blockee.host != null) { - return `skip: ブロック解除しようとしているユーザーはローカルユーザーではありません`; - } - - await unblock(await Users.findOneByOrFail({ id: actor.id }), blockee); - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/follow.ts b/packages/backend/src/remote/activitypub/kernel/undo/follow.ts deleted file mode 100644 index 6a43c1444..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/follow.ts +++ /dev/null @@ -1,41 +0,0 @@ -import unfollow from '@/services/following/delete.js'; -import cancelRequest from '@/services/following/requests/cancel.js'; -import { IFollow } from '../../type.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { FollowRequests, Followings } from '@/models/index.js'; -import DbResolver from '../../db-resolver.js'; - -export default async (actor: CacheableRemoteUser, activity: IFollow): Promise => { - const dbResolver = new DbResolver(); - - const followee = await dbResolver.getUserFromApId(activity.object); - if (followee == null) { - return `skip: followee not found`; - } - - if (followee.host != null) { - return `skip: フォロー解除しようとしているユーザーはローカルユーザーではありません`; - } - - const req = await FollowRequests.findOneBy({ - followerId: actor.id, - followeeId: followee.id, - }); - - const following = await Followings.findOneBy({ - followerId: actor.id, - followeeId: followee.id, - }); - - if (req) { - await cancelRequest(followee, actor); - return `ok: follow request canceled`; - } - - if (following) { - await unfollow(actor, followee); - return `ok: unfollowed`; - } - - return `skip: リクエストもフォローもされていない`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/index.ts b/packages/backend/src/remote/activitypub/kernel/undo/index.ts deleted file mode 100644 index 27d433eb3..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { IUndo, isFollow, isBlock, isLike, isAnnounce, getApType, isAccept } from '../../type.js'; -import unfollow from './follow.js'; -import unblock from './block.js'; -import undoLike from './like.js'; -import undoAccept from './accept.js'; -import { undoAnnounce } from './announce.js'; -import Resolver from '../../resolver.js'; -import { apLogger } from '../../logger.js'; - -const logger = apLogger; - -export default async (actor: CacheableRemoteUser, activity: IUndo): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - throw new Error('invalid actor'); - } - - const uri = activity.id || activity; - - logger.info(`Undo: ${uri}`); - - const resolver = new Resolver(); - - const object = await resolver.resolve(activity.object).catch(e => { - logger.error(`Resolution failed: ${e}`); - throw e; - }); - - if (isFollow(object)) return await unfollow(actor, object); - if (isBlock(object)) return await unblock(actor, object); - if (isLike(object)) return await undoLike(actor, object); - if (isAnnounce(object)) return await undoAnnounce(actor, object); - if (isAccept(object)) return await undoAccept(actor, object); - - return `skip: unknown object type ${getApType(object)}`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/undo/like.ts b/packages/backend/src/remote/activitypub/kernel/undo/like.ts deleted file mode 100644 index 01aeba1fb..000000000 --- a/packages/backend/src/remote/activitypub/kernel/undo/like.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { ILike, getApId } from '../../type.js'; -import deleteReaction from '@/services/note/reaction/delete.js'; -import { fetchNote } from '../../models/note.js'; - -/** - * Process Undo.Like activity - */ -export default async (actor: CacheableRemoteUser, activity: ILike) => { - const targetUri = getApId(activity.object); - - const note = await fetchNote(targetUri); - if (!note) return `skip: target note not found ${targetUri}`; - - await deleteReaction(actor, note).catch(e => { - if (e.id === '60527ec9-b4cb-4a88-a6bd-32d3ad26817d') return; - throw e; - }); - - return `ok`; -}; diff --git a/packages/backend/src/remote/activitypub/kernel/update/index.ts b/packages/backend/src/remote/activitypub/kernel/update/index.ts deleted file mode 100644 index 9e8a81bb3..000000000 --- a/packages/backend/src/remote/activitypub/kernel/update/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { getApType, IUpdate, isActor } from '../../type.js'; -import { apLogger } from '../../logger.js'; -import { updateQuestion } from '../../models/question.js'; -import Resolver from '../../resolver.js'; -import { updatePerson } from '../../models/person.js'; - -/** - * Updateアクティビティを捌きます - */ -export default async (actor: CacheableRemoteUser, activity: IUpdate): Promise => { - if ('actor' in activity && actor.uri !== activity.actor) { - return `skip: invalid actor`; - } - - apLogger.debug('Update'); - - const resolver = new Resolver(); - - const object = await resolver.resolve(activity.object).catch(e => { - apLogger.error(`Resolution failed: ${e}`); - throw e; - }); - - if (isActor(object)) { - await updatePerson(actor.uri!, resolver, object); - return `ok: Person updated`; - } else if (getApType(object) === 'Question') { - await updateQuestion(object).catch(e => console.log(e)); - return `ok: Question updated`; - } else { - return `skip: Unknown type: ${getApType(object)}`; - } -}; diff --git a/packages/backend/src/remote/activitypub/logger.ts b/packages/backend/src/remote/activitypub/logger.ts deleted file mode 100644 index cab51b3bf..000000000 --- a/packages/backend/src/remote/activitypub/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { remoteLogger } from '../logger.js'; - -export const apLogger = remoteLogger.createSubLogger('ap', 'magenta'); diff --git a/packages/backend/src/remote/activitypub/misc/contexts.ts b/packages/backend/src/remote/activitypub/misc/contexts.ts deleted file mode 100644 index aee0d3629..000000000 --- a/packages/backend/src/remote/activitypub/misc/contexts.ts +++ /dev/null @@ -1,526 +0,0 @@ -/* eslint:disable:quotemark indent */ -const id_v1 = { - '@context': { - 'id': '@id', - 'type': '@type', - - 'cred': 'https://w3id.org/credentials#', - 'dc': 'http://purl.org/dc/terms/', - 'identity': 'https://w3id.org/identity#', - 'perm': 'https://w3id.org/permissions#', - 'ps': 'https://w3id.org/payswarm#', - 'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', - 'rdfs': 'http://www.w3.org/2000/01/rdf-schema#', - 'sec': 'https://w3id.org/security#', - 'schema': 'http://schema.org/', - 'xsd': 'http://www.w3.org/2001/XMLSchema#', - - 'Group': 'https://www.w3.org/ns/activitystreams#Group', - - 'claim': { '@id': 'cred:claim', '@type': '@id' }, - 'credential': { '@id': 'cred:credential', '@type': '@id' }, - 'issued': { '@id': 'cred:issued', '@type': 'xsd:dateTime' }, - 'issuer': { '@id': 'cred:issuer', '@type': '@id' }, - 'recipient': { '@id': 'cred:recipient', '@type': '@id' }, - 'Credential': 'cred:Credential', - 'CryptographicKeyCredential': 'cred:CryptographicKeyCredential', - - 'about': { '@id': 'schema:about', '@type': '@id' }, - 'address': { '@id': 'schema:address', '@type': '@id' }, - 'addressCountry': 'schema:addressCountry', - 'addressLocality': 'schema:addressLocality', - 'addressRegion': 'schema:addressRegion', - 'comment': 'rdfs:comment', - 'created': { '@id': 'dc:created', '@type': 'xsd:dateTime' }, - 'creator': { '@id': 'dc:creator', '@type': '@id' }, - 'description': 'schema:description', - 'email': 'schema:email', - 'familyName': 'schema:familyName', - 'givenName': 'schema:givenName', - 'image': { '@id': 'schema:image', '@type': '@id' }, - 'label': 'rdfs:label', - 'name': 'schema:name', - 'postalCode': 'schema:postalCode', - 'streetAddress': 'schema:streetAddress', - 'title': 'dc:title', - 'url': { '@id': 'schema:url', '@type': '@id' }, - 'Person': 'schema:Person', - 'PostalAddress': 'schema:PostalAddress', - 'Organization': 'schema:Organization', - - 'identityService': { '@id': 'identity:identityService', '@type': '@id' }, - 'idp': { '@id': 'identity:idp', '@type': '@id' }, - 'Identity': 'identity:Identity', - - 'paymentProcessor': 'ps:processor', - 'preferences': { '@id': 'ps:preferences', '@type': '@vocab' }, - - 'cipherAlgorithm': 'sec:cipherAlgorithm', - 'cipherData': 'sec:cipherData', - 'cipherKey': 'sec:cipherKey', - 'digestAlgorithm': 'sec:digestAlgorithm', - 'digestValue': 'sec:digestValue', - 'domain': 'sec:domain', - 'expires': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' }, - 'initializationVector': 'sec:initializationVector', - 'member': { '@id': 'schema:member', '@type': '@id' }, - 'memberOf': { '@id': 'schema:memberOf', '@type': '@id' }, - 'nonce': 'sec:nonce', - 'normalizationAlgorithm': 'sec:normalizationAlgorithm', - 'owner': { '@id': 'sec:owner', '@type': '@id' }, - 'password': 'sec:password', - 'privateKey': { '@id': 'sec:privateKey', '@type': '@id' }, - 'privateKeyPem': 'sec:privateKeyPem', - 'publicKey': { '@id': 'sec:publicKey', '@type': '@id' }, - 'publicKeyPem': 'sec:publicKeyPem', - 'publicKeyService': { '@id': 'sec:publicKeyService', '@type': '@id' }, - 'revoked': { '@id': 'sec:revoked', '@type': 'xsd:dateTime' }, - 'signature': 'sec:signature', - 'signatureAlgorithm': 'sec:signatureAlgorithm', - 'signatureValue': 'sec:signatureValue', - 'CryptographicKey': 'sec:Key', - 'EncryptedMessage': 'sec:EncryptedMessage', - 'GraphSignature2012': 'sec:GraphSignature2012', - 'LinkedDataSignature2015': 'sec:LinkedDataSignature2015', - - 'accessControl': { '@id': 'perm:accessControl', '@type': '@id' }, - 'writePermission': { '@id': 'perm:writePermission', '@type': '@id' }, - }, -}; - -const security_v1 = { - '@context': { - 'id': '@id', - 'type': '@type', - - 'dc': 'http://purl.org/dc/terms/', - 'sec': 'https://w3id.org/security#', - 'xsd': 'http://www.w3.org/2001/XMLSchema#', - - 'EcdsaKoblitzSignature2016': 'sec:EcdsaKoblitzSignature2016', - 'Ed25519Signature2018': 'sec:Ed25519Signature2018', - 'EncryptedMessage': 'sec:EncryptedMessage', - 'GraphSignature2012': 'sec:GraphSignature2012', - 'LinkedDataSignature2015': 'sec:LinkedDataSignature2015', - 'LinkedDataSignature2016': 'sec:LinkedDataSignature2016', - 'CryptographicKey': 'sec:Key', - - 'authenticationTag': 'sec:authenticationTag', - 'canonicalizationAlgorithm': 'sec:canonicalizationAlgorithm', - 'cipherAlgorithm': 'sec:cipherAlgorithm', - 'cipherData': 'sec:cipherData', - 'cipherKey': 'sec:cipherKey', - 'created': { '@id': 'dc:created', '@type': 'xsd:dateTime' }, - 'creator': { '@id': 'dc:creator', '@type': '@id' }, - 'digestAlgorithm': 'sec:digestAlgorithm', - 'digestValue': 'sec:digestValue', - 'domain': 'sec:domain', - 'encryptionKey': 'sec:encryptionKey', - 'expiration': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' }, - 'expires': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' }, - 'initializationVector': 'sec:initializationVector', - 'iterationCount': 'sec:iterationCount', - 'nonce': 'sec:nonce', - 'normalizationAlgorithm': 'sec:normalizationAlgorithm', - 'owner': { '@id': 'sec:owner', '@type': '@id' }, - 'password': 'sec:password', - 'privateKey': { '@id': 'sec:privateKey', '@type': '@id' }, - 'privateKeyPem': 'sec:privateKeyPem', - 'publicKey': { '@id': 'sec:publicKey', '@type': '@id' }, - 'publicKeyBase58': 'sec:publicKeyBase58', - 'publicKeyPem': 'sec:publicKeyPem', - 'publicKeyWif': 'sec:publicKeyWif', - 'publicKeyService': { '@id': 'sec:publicKeyService', '@type': '@id' }, - 'revoked': { '@id': 'sec:revoked', '@type': 'xsd:dateTime' }, - 'salt': 'sec:salt', - 'signature': 'sec:signature', - 'signatureAlgorithm': 'sec:signingAlgorithm', - 'signatureValue': 'sec:signatureValue', - }, -}; - -const activitystreams = { - '@context': { - '@vocab': '_:', - 'xsd': 'http://www.w3.org/2001/XMLSchema#', - 'as': 'https://www.w3.org/ns/activitystreams#', - 'ldp': 'http://www.w3.org/ns/ldp#', - 'vcard': 'http://www.w3.org/2006/vcard/ns#', - 'id': '@id', - 'type': '@type', - 'Accept': 'as:Accept', - 'Activity': 'as:Activity', - 'IntransitiveActivity': 'as:IntransitiveActivity', - 'Add': 'as:Add', - 'Announce': 'as:Announce', - 'Application': 'as:Application', - 'Arrive': 'as:Arrive', - 'Article': 'as:Article', - 'Audio': 'as:Audio', - 'Block': 'as:Block', - 'Collection': 'as:Collection', - 'CollectionPage': 'as:CollectionPage', - 'Relationship': 'as:Relationship', - 'Create': 'as:Create', - 'Delete': 'as:Delete', - 'Dislike': 'as:Dislike', - 'Document': 'as:Document', - 'Event': 'as:Event', - 'Follow': 'as:Follow', - 'Flag': 'as:Flag', - 'Group': 'as:Group', - 'Ignore': 'as:Ignore', - 'Image': 'as:Image', - 'Invite': 'as:Invite', - 'Join': 'as:Join', - 'Leave': 'as:Leave', - 'Like': 'as:Like', - 'Link': 'as:Link', - 'Mention': 'as:Mention', - 'Note': 'as:Note', - 'Object': 'as:Object', - 'Offer': 'as:Offer', - 'OrderedCollection': 'as:OrderedCollection', - 'OrderedCollectionPage': 'as:OrderedCollectionPage', - 'Organization': 'as:Organization', - 'Page': 'as:Page', - 'Person': 'as:Person', - 'Place': 'as:Place', - 'Profile': 'as:Profile', - 'Question': 'as:Question', - 'Reject': 'as:Reject', - 'Remove': 'as:Remove', - 'Service': 'as:Service', - 'TentativeAccept': 'as:TentativeAccept', - 'TentativeReject': 'as:TentativeReject', - 'Tombstone': 'as:Tombstone', - 'Undo': 'as:Undo', - 'Update': 'as:Update', - 'Video': 'as:Video', - 'View': 'as:View', - 'Listen': 'as:Listen', - 'Read': 'as:Read', - 'Move': 'as:Move', - 'Travel': 'as:Travel', - 'IsFollowing': 'as:IsFollowing', - 'IsFollowedBy': 'as:IsFollowedBy', - 'IsContact': 'as:IsContact', - 'IsMember': 'as:IsMember', - 'subject': { - '@id': 'as:subject', - '@type': '@id', - }, - 'relationship': { - '@id': 'as:relationship', - '@type': '@id', - }, - 'actor': { - '@id': 'as:actor', - '@type': '@id', - }, - 'attributedTo': { - '@id': 'as:attributedTo', - '@type': '@id', - }, - 'attachment': { - '@id': 'as:attachment', - '@type': '@id', - }, - 'bcc': { - '@id': 'as:bcc', - '@type': '@id', - }, - 'bto': { - '@id': 'as:bto', - '@type': '@id', - }, - 'cc': { - '@id': 'as:cc', - '@type': '@id', - }, - 'context': { - '@id': 'as:context', - '@type': '@id', - }, - 'current': { - '@id': 'as:current', - '@type': '@id', - }, - 'first': { - '@id': 'as:first', - '@type': '@id', - }, - 'generator': { - '@id': 'as:generator', - '@type': '@id', - }, - 'icon': { - '@id': 'as:icon', - '@type': '@id', - }, - 'image': { - '@id': 'as:image', - '@type': '@id', - }, - 'inReplyTo': { - '@id': 'as:inReplyTo', - '@type': '@id', - }, - 'items': { - '@id': 'as:items', - '@type': '@id', - }, - 'instrument': { - '@id': 'as:instrument', - '@type': '@id', - }, - 'orderedItems': { - '@id': 'as:items', - '@type': '@id', - '@container': '@list', - }, - 'last': { - '@id': 'as:last', - '@type': '@id', - }, - 'location': { - '@id': 'as:location', - '@type': '@id', - }, - 'next': { - '@id': 'as:next', - '@type': '@id', - }, - 'object': { - '@id': 'as:object', - '@type': '@id', - }, - 'oneOf': { - '@id': 'as:oneOf', - '@type': '@id', - }, - 'anyOf': { - '@id': 'as:anyOf', - '@type': '@id', - }, - 'closed': { - '@id': 'as:closed', - '@type': 'xsd:dateTime', - }, - 'origin': { - '@id': 'as:origin', - '@type': '@id', - }, - 'accuracy': { - '@id': 'as:accuracy', - '@type': 'xsd:float', - }, - 'prev': { - '@id': 'as:prev', - '@type': '@id', - }, - 'preview': { - '@id': 'as:preview', - '@type': '@id', - }, - 'replies': { - '@id': 'as:replies', - '@type': '@id', - }, - 'result': { - '@id': 'as:result', - '@type': '@id', - }, - 'audience': { - '@id': 'as:audience', - '@type': '@id', - }, - 'partOf': { - '@id': 'as:partOf', - '@type': '@id', - }, - 'tag': { - '@id': 'as:tag', - '@type': '@id', - }, - 'target': { - '@id': 'as:target', - '@type': '@id', - }, - 'to': { - '@id': 'as:to', - '@type': '@id', - }, - 'url': { - '@id': 'as:url', - '@type': '@id', - }, - 'altitude': { - '@id': 'as:altitude', - '@type': 'xsd:float', - }, - 'content': 'as:content', - 'contentMap': { - '@id': 'as:content', - '@container': '@language', - }, - 'name': 'as:name', - 'nameMap': { - '@id': 'as:name', - '@container': '@language', - }, - 'duration': { - '@id': 'as:duration', - '@type': 'xsd:duration', - }, - 'endTime': { - '@id': 'as:endTime', - '@type': 'xsd:dateTime', - }, - 'height': { - '@id': 'as:height', - '@type': 'xsd:nonNegativeInteger', - }, - 'href': { - '@id': 'as:href', - '@type': '@id', - }, - 'hreflang': 'as:hreflang', - 'latitude': { - '@id': 'as:latitude', - '@type': 'xsd:float', - }, - 'longitude': { - '@id': 'as:longitude', - '@type': 'xsd:float', - }, - 'mediaType': 'as:mediaType', - 'published': { - '@id': 'as:published', - '@type': 'xsd:dateTime', - }, - 'radius': { - '@id': 'as:radius', - '@type': 'xsd:float', - }, - 'rel': 'as:rel', - 'startIndex': { - '@id': 'as:startIndex', - '@type': 'xsd:nonNegativeInteger', - }, - 'startTime': { - '@id': 'as:startTime', - '@type': 'xsd:dateTime', - }, - 'summary': 'as:summary', - 'summaryMap': { - '@id': 'as:summary', - '@container': '@language', - }, - 'totalItems': { - '@id': 'as:totalItems', - '@type': 'xsd:nonNegativeInteger', - }, - 'units': 'as:units', - 'updated': { - '@id': 'as:updated', - '@type': 'xsd:dateTime', - }, - 'width': { - '@id': 'as:width', - '@type': 'xsd:nonNegativeInteger', - }, - 'describes': { - '@id': 'as:describes', - '@type': '@id', - }, - 'formerType': { - '@id': 'as:formerType', - '@type': '@id', - }, - 'deleted': { - '@id': 'as:deleted', - '@type': 'xsd:dateTime', - }, - 'inbox': { - '@id': 'ldp:inbox', - '@type': '@id', - }, - 'outbox': { - '@id': 'as:outbox', - '@type': '@id', - }, - 'following': { - '@id': 'as:following', - '@type': '@id', - }, - 'followers': { - '@id': 'as:followers', - '@type': '@id', - }, - 'streams': { - '@id': 'as:streams', - '@type': '@id', - }, - 'preferredUsername': 'as:preferredUsername', - 'endpoints': { - '@id': 'as:endpoints', - '@type': '@id', - }, - 'uploadMedia': { - '@id': 'as:uploadMedia', - '@type': '@id', - }, - 'proxyUrl': { - '@id': 'as:proxyUrl', - '@type': '@id', - }, - 'liked': { - '@id': 'as:liked', - '@type': '@id', - }, - 'oauthAuthorizationEndpoint': { - '@id': 'as:oauthAuthorizationEndpoint', - '@type': '@id', - }, - 'oauthTokenEndpoint': { - '@id': 'as:oauthTokenEndpoint', - '@type': '@id', - }, - 'provideClientKey': { - '@id': 'as:provideClientKey', - '@type': '@id', - }, - 'signClientKey': { - '@id': 'as:signClientKey', - '@type': '@id', - }, - 'sharedInbox': { - '@id': 'as:sharedInbox', - '@type': '@id', - }, - 'Public': { - '@id': 'as:Public', - '@type': '@id', - }, - 'source': 'as:source', - 'likes': { - '@id': 'as:likes', - '@type': '@id', - }, - 'shares': { - '@id': 'as:shares', - '@type': '@id', - }, - 'alsoKnownAs': { - '@id': 'as:alsoKnownAs', - '@type': '@id', - }, - }, -}; - -export const CONTEXTS: Record = { - 'https://w3id.org/identity/v1': id_v1, - 'https://w3id.org/security/v1': security_v1, - 'https://www.w3.org/ns/activitystreams': activitystreams, -}; diff --git a/packages/backend/src/remote/activitypub/misc/get-note-html.ts b/packages/backend/src/remote/activitypub/misc/get-note-html.ts deleted file mode 100644 index 389039ebe..000000000 --- a/packages/backend/src/remote/activitypub/misc/get-note-html.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as mfm from 'mfm-js'; -import { Note } from '@/models/entities/note.js'; -import { toHtml } from '../../../mfm/to-html.js'; - -export default function(note: Note) { - if (!note.text) return ''; - return toHtml(mfm.parse(note.text), JSON.parse(note.mentionedRemoteUsers)); -} diff --git a/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts b/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts deleted file mode 100644 index bb1ba7925..000000000 --- a/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { IObject } from '../type.js'; -import { extractApHashtagObjects } from '../models/tag.js'; -import { fromHtml } from '../../../mfm/from-html.js'; - -export function htmlToMfm(html: string, tag?: IObject | IObject[]) { - const hashtagNames = extractApHashtagObjects(tag).map(x => x.name).filter((x): x is string => x != null); - - return fromHtml(html, hashtagNames); -} diff --git a/packages/backend/src/remote/activitypub/models/image.ts b/packages/backend/src/remote/activitypub/models/image.ts deleted file mode 100644 index 102b7b134..000000000 --- a/packages/backend/src/remote/activitypub/models/image.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { uploadFromUrl } from '@/services/drive/upload-from-url.js'; -import { CacheableRemoteUser, IRemoteUser } from '@/models/entities/user.js'; -import Resolver from '../resolver.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { apLogger } from '../logger.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles, Users } from '@/models/index.js'; -import { truncate } from '@/misc/truncate.js'; -import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits.js'; - -const logger = apLogger; - -/** - * Imageを作成します。 - */ -export async function createImage(actor: CacheableRemoteUser, value: any): Promise { - // 投稿者が凍結されていたらスキップ - if (actor.isSuspended) { - throw new Error('actor has been suspended'); - } - - const image = await new Resolver().resolve(value) as any; - - if (image.url == null) { - throw new Error('invalid image: url not privided'); - } - - logger.info(`Creating the Image: ${image.url}`); - - const instance = await fetchMeta(); - - let file = await uploadFromUrl({ - url: image.url, - user: actor, - uri: image.url, - sensitive: image.sensitive, - isLink: !instance.cacheRemoteFiles, - comment: truncate(image.name, DB_MAX_IMAGE_COMMENT_LENGTH) - }); - - if (file.isLink) { - // URLが異なっている場合、同じ画像が以前に異なるURLで登録されていたということなので、 - // URLを更新する - if (file.url !== image.url) { - await DriveFiles.update({ id: file.id }, { - url: image.url, - uri: image.url, - }); - - file = await DriveFiles.findOneByOrFail({ id: file.id }); - } - } - - return file; -} - -/** - * Imageを解決します。 - * - * Misskeyに対象のImageが登録されていればそれを返し、そうでなければ - * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 - */ -export async function resolveImage(actor: CacheableRemoteUser, value: any): Promise { - // TODO - - // リモートサーバーからフェッチしてきて登録 - return await createImage(actor, value); -} diff --git a/packages/backend/src/remote/activitypub/models/mention.ts b/packages/backend/src/remote/activitypub/models/mention.ts deleted file mode 100644 index 13f77424e..000000000 --- a/packages/backend/src/remote/activitypub/models/mention.ts +++ /dev/null @@ -1,24 +0,0 @@ -import promiseLimit from 'promise-limit'; -import { toArray, unique } from '@/prelude/array.js'; -import { CacheableUser, User } from '@/models/entities/user.js'; -import { IObject, isMention, IApMention } from '../type.js'; -import Resolver from '../resolver.js'; -import { resolvePerson } from './person.js'; - -export async function extractApMentions(tags: IObject | IObject[] | null | undefined) { - const hrefs = unique(extractApMentionObjects(tags).map(x => x.href as string)); - - const resolver = new Resolver(); - - const limit = promiseLimit(2); - const mentionedUsers = (await Promise.all( - hrefs.map(x => limit(() => resolvePerson(x, resolver).catch(() => null))), - )).filter((x): x is CacheableUser => x != null); - - return mentionedUsers; -} - -export function extractApMentionObjects(tags: IObject | IObject[] | null | undefined): IApMention[] { - if (tags == null) return []; - return toArray(tags).filter(isMention); -} diff --git a/packages/backend/src/remote/activitypub/models/note.ts b/packages/backend/src/remote/activitypub/models/note.ts deleted file mode 100644 index 5d63f2605..000000000 --- a/packages/backend/src/remote/activitypub/models/note.ts +++ /dev/null @@ -1,359 +0,0 @@ -import promiseLimit from 'promise-limit'; - -import config from '@/config/index.js'; -import Resolver from '../resolver.js'; -import post from '@/services/note/create.js'; -import { resolvePerson } from './person.js'; -import { resolveImage } from './image.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { htmlToMfm } from '../misc/html-to-mfm.js'; -import { extractApHashtags } from './tag.js'; -import { unique, toArray, toSingle } from '@/prelude/array.js'; -import { extractPollFromQuestion } from './question.js'; -import vote from '@/services/note/polls/vote.js'; -import { apLogger } from '../logger.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { deliverQuestionUpdate } from '@/services/note/polls/update.js'; -import { extractDbHost, toPuny } from '@/misc/convert-host.js'; -import { Emojis, Polls, MessagingMessages } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji, getApType } from '../type.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { genId } from '@/misc/gen-id.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { getApLock } from '@/misc/app-lock.js'; -import { createMessage } from '@/services/messages/create.js'; -import { parseAudience } from '../audience.js'; -import { extractApMentions } from './mention.js'; -import DbResolver from '../db-resolver.js'; -import { StatusError } from '@/misc/fetch.js'; - -const logger = apLogger; - -export function validateNote(object: any, uri: string) { - const expectHost = extractDbHost(uri); - - if (object == null) { - return new Error('invalid Note: object is null'); - } - - if (!validPost.includes(getApType(object))) { - return new Error(`invalid Note: invalid object type ${getApType(object)}`); - } - - if (object.id && extractDbHost(object.id) !== expectHost) { - return new Error(`invalid Note: id has different host. expected: ${expectHost}, actual: ${extractDbHost(object.id)}`); - } - - if (object.attributedTo && extractDbHost(getOneApId(object.attributedTo)) !== expectHost) { - return new Error(`invalid Note: attributedTo has different host. expected: ${expectHost}, actual: ${extractDbHost(object.attributedTo)}`); - } - - return null; -} - -/** - * Noteをフェッチします。 - * - * Misskeyに対象のNoteが登録されていればそれを返します。 - */ -export async function fetchNote(object: string | IObject): Promise { - const dbResolver = new DbResolver(); - return await dbResolver.getNoteFromApId(object); -} - -/** - * Noteを作成します。 - */ -export async function createNote(value: string | IObject, resolver?: Resolver, silent = false): Promise { - if (resolver == null) resolver = new Resolver(); - - const object: any = await resolver.resolve(value); - - const entryUri = getApId(value); - const err = validateNote(object, entryUri); - if (err) { - logger.error(`${err.message}`, { - resolver: { - history: resolver.getHistory(), - }, - value: value, - object: object, - }); - throw new Error('invalid note'); - } - - const note: IPost = object; - - logger.debug(`Note fetched: ${JSON.stringify(note, null, 2)}`); - - logger.info(`Creating the Note: ${note.id}`); - - // 投稿者をフェッチ - const actor = await resolvePerson(getOneApId(note.attributedTo), resolver) as CacheableRemoteUser; - - // 投稿者が凍結されていたらスキップ - if (actor.isSuspended) { - throw new Error('actor has been suspended'); - } - - const noteAudience = await parseAudience(actor, note.to, note.cc); - let visibility = noteAudience.visibility; - const visibleUsers = noteAudience.visibleUsers; - - // Audience (to, cc) が指定されてなかった場合 - if (visibility === 'specified' && visibleUsers.length === 0) { - if (typeof value === 'string') { // 入力がstringならばresolverでGETが発生している - // こちらから匿名GET出来たものならばpublic - visibility = 'public'; - } - } - - let isTalk = note._misskey_talk && visibility === 'specified'; - - const apMentions = await extractApMentions(note.tag); - const apHashtags = await extractApHashtags(note.tag); - - // 添付ファイル - // TODO: attachmentは必ずしもImageではない - // TODO: attachmentは必ずしも配列ではない - // Noteがsensitiveなら添付もsensitiveにする - const limit = promiseLimit(2); - - note.attachment = Array.isArray(note.attachment) ? note.attachment : note.attachment ? [note.attachment] : []; - const files = note.attachment - .map(attach => attach.sensitive = note.sensitive) - ? (await Promise.all(note.attachment.map(x => limit(() => resolveImage(actor, x)) as Promise))) - .filter(image => image != null) - : []; - - // リプライ - const reply: Note | null = note.inReplyTo - ? await resolveNote(note.inReplyTo, resolver).then(x => { - if (x == null) { - logger.warn(`Specified inReplyTo, but nout found`); - throw new Error('inReplyTo not found'); - } else { - return x; - } - }).catch(async e => { - // トークだったらinReplyToのエラーは無視 - const uri = getApId(note.inReplyTo); - if (uri.startsWith(config.url + '/')) { - const id = uri.split('/').pop(); - const talk = await MessagingMessages.findOneBy({ id }); - if (talk) { - isTalk = true; - return null; - } - } - - logger.warn(`Error in inReplyTo ${note.inReplyTo} - ${e.statusCode || e}`); - throw e; - }) - : null; - - // 引用 - let quote: Note | undefined | null; - - if (note._misskey_quote || note.quoteUrl) { - const tryResolveNote = async (uri: string): Promise<{ - status: 'ok'; - res: Note | null; - } | { - status: 'permerror' | 'temperror'; - }> => { - if (typeof uri !== 'string' || !uri.match(/^https?:/)) return { status: 'permerror' }; - try { - const res = await resolveNote(uri); - if (res) { - return { - status: 'ok', - res, - }; - } else { - return { - status: 'permerror', - }; - } - } catch (e) { - return { - status: (e instanceof StatusError && e.isClientError) ? 'permerror' : 'temperror', - }; - } - }; - - const uris = unique([note._misskey_quote, note.quoteUrl].filter((x): x is string => typeof x === 'string')); - const results = await Promise.all(uris.map(uri => tryResolveNote(uri))); - - quote = results.filter((x): x is { status: 'ok', res: Note | null } => x.status === 'ok').map(x => x.res).find(x => x); - if (!quote) { - if (results.some(x => x.status === 'temperror')) { - throw 'quote resolve failed'; - } - } - } - - const cw = note.summary === '' ? null : note.summary; - - // テキストのパース - let text: string | null = null; - if (note.source?.mediaType === 'text/x.misskeymarkdown' && typeof note.source?.content === 'string') { - text = note.source.content; - } else if (typeof note._misskey_content !== 'undefined') { - text = note._misskey_content; - } else if (typeof note.content === 'string') { - text = htmlToMfm(note.content, note.tag); - } - - // vote - if (reply && reply.hasPoll) { - const poll = await Polls.findOneByOrFail({ noteId: reply.id }); - - const tryCreateVote = async (name: string, index: number): Promise => { - if (poll.expiresAt && Date.now() > new Date(poll.expiresAt).getTime()) { - logger.warn(`vote to expired poll from AP: actor=${actor.username}@${actor.host}, note=${note.id}, choice=${name}`); - } else if (index >= 0) { - logger.info(`vote from AP: actor=${actor.username}@${actor.host}, note=${note.id}, choice=${name}`); - await vote(actor, reply, index); - - // リモートフォロワーにUpdate配信 - deliverQuestionUpdate(reply.id); - } - return null; - }; - - if (note.name) { - return await tryCreateVote(note.name, poll.choices.findIndex(x => x === note.name)); - } - } - - const emojis = await extractEmojis(note.tag || [], actor.host).catch(e => { - logger.info(`extractEmojis: ${e}`); - return [] as Emoji[]; - }); - - const apEmojis = emojis.map(emoji => emoji.name); - - const poll = await extractPollFromQuestion(note, resolver).catch(() => undefined); - - if (isTalk) { - for (const recipient of visibleUsers) { - await createMessage(actor, recipient, undefined, text || undefined, (files && files.length > 0) ? files[0] : null, object.id); - return null; - } - } - - return await post(actor, { - createdAt: note.published ? new Date(note.published) : null, - files, - reply, - renote: quote, - name: note.name, - cw, - text, - localOnly: false, - visibility, - visibleUsers, - apMentions, - apHashtags, - apEmojis, - poll, - uri: note.id, - url: getOneApHrefNullable(note.url), - }, silent); -} - -/** - * Noteを解決します。 - * - * Misskeyに対象のNoteが登録されていればそれを返し、そうでなければ - * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 - */ -export async function resolveNote(value: string | IObject, resolver?: Resolver): Promise { - const uri = typeof value === 'string' ? value : value.id; - if (uri == null) throw new Error('missing uri'); - - // ブロックしてたら中断 - const meta = await fetchMeta(); - if (meta.blockedHosts.includes(extractDbHost(uri))) throw { statusCode: 451 }; - - const unlock = await getApLock(uri); - - try { - //#region このサーバーに既に登録されていたらそれを返す - const exist = await fetchNote(uri); - - if (exist) { - return exist; - } - //#endregion - - if (uri.startsWith(config.url)) { - throw new StatusError('cannot resolve local note', 400, 'cannot resolve local note'); - } - - // リモートサーバーからフェッチしてきて登録 - // ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが - // 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。 - return await createNote(uri, resolver, true); - } finally { - unlock(); - } -} - -export async function extractEmojis(tags: IObject | IObject[], host: string): Promise { - host = toPuny(host); - - if (!tags) return []; - - const eomjiTags = toArray(tags).filter(isEmoji); - - return await Promise.all(eomjiTags.map(async tag => { - const name = tag.name!.replace(/^:/, '').replace(/:$/, ''); - tag.icon = toSingle(tag.icon); - - const exists = await Emojis.findOneBy({ - host, - name, - }); - - if (exists) { - if ((tag.updated != null && exists.updatedAt == null) - || (tag.id != null && exists.uri == null) - || (tag.updated != null && exists.updatedAt != null && new Date(tag.updated) > exists.updatedAt) - || (tag.icon!.url !== exists.originalUrl) - ) { - await Emojis.update({ - host, - name, - }, { - uri: tag.id, - originalUrl: tag.icon!.url, - publicUrl: tag.icon!.url, - updatedAt: new Date(), - }); - - return await Emojis.findOneBy({ - host, - name, - }) as Emoji; - } - - return exists; - } - - logger.info(`register emoji host=${host}, name=${name}`); - - return await Emojis.insert({ - id: genId(), - host, - name, - uri: tag.id, - originalUrl: tag.icon!.url, - publicUrl: tag.icon!.url, - updatedAt: new Date(), - aliases: [], - } as Partial).then(x => Emojis.findOneByOrFail(x.identifiers[0])); - })); -} diff --git a/packages/backend/src/remote/activitypub/models/person.ts b/packages/backend/src/remote/activitypub/models/person.ts deleted file mode 100644 index 6097e3b6e..000000000 --- a/packages/backend/src/remote/activitypub/models/person.ts +++ /dev/null @@ -1,504 +0,0 @@ -import { URL } from 'node:url'; -import promiseLimit from 'promise-limit'; - -import config from '@/config/index.js'; -import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc.js'; -import { Note } from '@/models/entities/note.js'; -import { updateUsertags } from '@/services/update-hashtag.js'; -import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '@/models/index.js'; -import { User, IRemoteUser, CacheableUser } from '@/models/entities/user.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { UserNotePining } from '@/models/entities/user-note-pining.js'; -import { genId } from '@/misc/gen-id.js'; -import { instanceChart, usersChart } from '@/services/chart/index.js'; -import { UserPublickey } from '@/models/entities/user-publickey.js'; -import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { toArray } from '@/prelude/array.js'; -import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; -import { truncate } from '@/misc/truncate.js'; -import { StatusError } from '@/misc/fetch.js'; -import { uriPersonCache } from '@/services/user-cache.js'; -import { publishInternalEvent } from '@/services/stream.js'; -import { db } from '@/db/postgre.js'; -import { apLogger } from '../logger.js'; -import { htmlToMfm } from '../misc/html-to-mfm.js'; -import { fromHtml } from '../../../mfm/from-html.js'; -import { isCollectionOrOrderedCollection, isCollection, IActor, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue, getApType, isActor } from '../type.js'; -import Resolver from '../resolver.js'; -import { extractApHashtags } from './tag.js'; -import { resolveNote, extractEmojis } from './note.js'; -import { resolveImage } from './image.js'; - -const logger = apLogger; - -const nameLength = 128; -const summaryLength = 2048; - -/** - * Validate and convert to actor object - * @param x Fetched object - * @param uri Fetch target URI - */ -function validateActor(x: IObject, uri: string): IActor { - const expectHost = toPuny(new URL(uri).hostname); - - if (x == null) { - throw new Error('invalid Actor: object is null'); - } - - if (!isActor(x)) { - throw new Error(`invalid Actor type '${x.type}'`); - } - - if (!(typeof x.id === 'string' && x.id.length > 0)) { - throw new Error('invalid Actor: wrong id'); - } - - if (!(typeof x.inbox === 'string' && x.inbox.length > 0)) { - throw new Error('invalid Actor: wrong inbox'); - } - - if (!(typeof x.preferredUsername === 'string' && x.preferredUsername.length > 0 && x.preferredUsername.length <= 128 && /^\w([\w-.]*\w)?$/.test(x.preferredUsername))) { - throw new Error('invalid Actor: wrong username'); - } - - // These fields are only informational, and some AP software allows these - // fields to be very long. If they are too long, we cut them off. This way - // we can at least see these users and their activities. - if (x.name) { - if (!(typeof x.name === 'string' && x.name.length > 0)) { - throw new Error('invalid Actor: wrong name'); - } - x.name = truncate(x.name, nameLength); - } - if (x.summary) { - if (!(typeof x.summary === 'string' && x.summary.length > 0)) { - throw new Error('invalid Actor: wrong summary'); - } - x.summary = truncate(x.summary, summaryLength); - } - - const idHost = toPuny(new URL(x.id!).hostname); - if (idHost !== expectHost) { - throw new Error('invalid Actor: id has different host'); - } - - if (x.publicKey) { - if (typeof x.publicKey.id !== 'string') { - throw new Error('invalid Actor: publicKey.id is not a string'); - } - - const publicKeyIdHost = toPuny(new URL(x.publicKey.id).hostname); - if (publicKeyIdHost !== expectHost) { - throw new Error('invalid Actor: publicKey.id has different host'); - } - } - - return x; -} - -/** - * Personをフェッチします。 - * - * Misskeyに対象のPersonが登録されていればそれを返します。 - */ -export async function fetchPerson(uri: string, resolver?: Resolver): Promise { - if (typeof uri !== 'string') throw new Error('uri is not string'); - - const cached = uriPersonCache.get(uri); - if (cached) return cached; - - // URIがこのサーバーを指しているならデータベースからフェッチ - if (uri.startsWith(config.url + '/')) { - const id = uri.split('/').pop(); - const u = await Users.findOneBy({ id }); - if (u) uriPersonCache.set(uri, u); - return u; - } - - //#region このサーバーに既に登録されていたらそれを返す - const exist = await Users.findOneBy({ uri }); - - if (exist) { - uriPersonCache.set(uri, exist); - return exist; - } - //#endregion - - return null; -} - -/** - * Personを作成します。 - */ -export async function createPerson(uri: string, resolver?: Resolver): Promise { - if (typeof uri !== 'string') throw new Error('uri is not string'); - - if (uri.startsWith(config.url)) { - throw new StatusError('cannot resolve local user', 400, 'cannot resolve local user'); - } - - if (resolver == null) resolver = new Resolver(); - - const object = await resolver.resolve(uri) as any; - - const person = validateActor(object, uri); - - logger.info(`Creating the Person: ${person.id}`); - - const host = toPuny(new URL(object.id).hostname); - - const { fields } = analyzeAttachments(person.attachment || []); - - const tags = extractApHashtags(person.tag).map(tag => normalizeForSearch(tag)).splice(0, 32); - - const isBot = getApType(object) === 'Service'; - - const bday = person['vcard:bday']?.match(/^\d{4}-\d{2}-\d{2}/); - - // Create user - let user: IRemoteUser; - try { - // Start transaction - await db.transaction(async transactionalEntityManager => { - user = await transactionalEntityManager.save(new User({ - id: genId(), - avatarId: null, - bannerId: null, - createdAt: new Date(), - lastFetchedAt: new Date(), - name: truncate(person.name, nameLength), - isLocked: !!person.manuallyApprovesFollowers, - isExplorable: !!person.discoverable, - username: person.preferredUsername, - usernameLower: person.preferredUsername!.toLowerCase(), - host, - inbox: person.inbox, - sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined), - followersUri: person.followers ? getApId(person.followers) : undefined, - featured: person.featured ? getApId(person.featured) : undefined, - uri: person.id, - tags, - isBot, - isCat: (person as any).isCat === true, - showTimelineReplies: false, - })) as IRemoteUser; - - await transactionalEntityManager.save(new UserProfile({ - userId: user.id, - description: person.summary ? htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, - url: getOneApHrefNullable(person.url), - fields, - birthday: bday ? bday[0] : null, - location: person['vcard:Address'] || null, - userHost: host, - })); - - if (person.publicKey) { - await transactionalEntityManager.save(new UserPublickey({ - userId: user.id, - keyId: person.publicKey.id, - keyPem: person.publicKey.publicKeyPem, - })); - } - }); - } catch (e) { - // duplicate key error - if (isDuplicateKeyValueError(e)) { - // /users/@a => /users/:id のように入力がaliasなときにエラーになることがあるのを対応 - const u = await Users.findOneBy({ - uri: person.id, - }); - - if (u) { - user = u as IRemoteUser; - } else { - throw new Error('already registered'); - } - } else { - logger.error(e instanceof Error ? e : new Error(e as string)); - throw e; - } - } - - // Register host - registerOrFetchInstanceDoc(host).then(i => { - Instances.increment({ id: i.id }, 'usersCount', 1); - instanceChart.newUser(i.host); - fetchInstanceMetadata(i); - }); - - usersChart.update(user!, true); - - // ハッシュタグ更新 - updateUsertags(user!, tags); - - //#region アバターとヘッダー画像をフェッチ - const [avatar, banner] = await Promise.all([ - person.icon, - person.image, - ].map(img => - img == null - ? Promise.resolve(null) - : resolveImage(user!, img).catch(() => null), - )); - - const avatarId = avatar ? avatar.id : null; - const bannerId = banner ? banner.id : null; - - await Users.update(user!.id, { - avatarId, - bannerId, - }); - - user!.avatarId = avatarId; - user!.bannerId = bannerId; - //#endregion - - //#region カスタム絵文字取得 - const emojis = await extractEmojis(person.tag || [], host).catch(e => { - logger.info(`extractEmojis: ${e}`); - return [] as Emoji[]; - }); - - const emojiNames = emojis.map(emoji => emoji.name); - - await Users.update(user!.id, { - emojis: emojiNames, - }); - //#endregion - - await updateFeatured(user!.id).catch(err => logger.error(err)); - - return user!; -} - -/** - * Personの情報を更新します。 - * Misskeyに対象のPersonが登録されていなければ無視します。 - * @param uri URI of Person - * @param resolver Resolver - * @param hint Hint of Person object (この値が正当なPersonの場合、Remote resolveをせずに更新に利用します) - */ -export async function updatePerson(uri: string, resolver?: Resolver | null, hint?: IObject): Promise { - if (typeof uri !== 'string') throw new Error('uri is not string'); - - // URIがこのサーバーを指しているならスキップ - if (uri.startsWith(config.url + '/')) { - return; - } - - //#region このサーバーに既に登録されているか - const exist = await Users.findOneBy({ uri }) as IRemoteUser; - - if (exist == null) { - return; - } - //#endregion - - if (resolver == null) resolver = new Resolver(); - - const object = hint || await resolver.resolve(uri); - - const person = validateActor(object, uri); - - logger.info(`Updating the Person: ${person.id}`); - - // アバターとヘッダー画像をフェッチ - const [avatar, banner] = await Promise.all([ - person.icon, - person.image, - ].map(img => - img == null - ? Promise.resolve(null) - : resolveImage(exist, img).catch(() => null), - )); - - // カスタム絵文字取得 - const emojis = await extractEmojis(person.tag || [], exist.host).catch(e => { - logger.info(`extractEmojis: ${e}`); - return [] as Emoji[]; - }); - - const emojiNames = emojis.map(emoji => emoji.name); - - const { fields } = analyzeAttachments(person.attachment || []); - - const tags = extractApHashtags(person.tag).map(tag => normalizeForSearch(tag)).splice(0, 32); - - const bday = person['vcard:bday']?.match(/^\d{4}-\d{2}-\d{2}/); - - const updates = { - lastFetchedAt: new Date(), - inbox: person.inbox, - sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined), - followersUri: person.followers ? getApId(person.followers) : undefined, - featured: person.featured, - emojis: emojiNames, - name: truncate(person.name, nameLength), - tags, - isBot: getApType(object) === 'Service', - isCat: (person as any).isCat === true, - isLocked: !!person.manuallyApprovesFollowers, - isExplorable: !!person.discoverable, - } as Partial; - - if (avatar) { - updates.avatarId = avatar.id; - } - - if (banner) { - updates.bannerId = banner.id; - } - - // Update user - await Users.update(exist.id, updates); - - if (person.publicKey) { - await UserPublickeys.update({ userId: exist.id }, { - keyId: person.publicKey.id, - keyPem: person.publicKey.publicKeyPem, - }); - } - - await UserProfiles.update({ userId: exist.id }, { - url: getOneApHrefNullable(person.url), - fields, - description: person.summary ? htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, - birthday: bday ? bday[0] : null, - location: person['vcard:Address'] || null, - }); - - publishInternalEvent('remoteUserUpdated', { id: exist.id }); - - // ハッシュタグ更新 - updateUsertags(exist, tags); - - // 該当ユーザーが既にフォロワーになっていた場合はFollowingもアップデートする - await Followings.update({ - followerId: exist.id, - }, { - followerSharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined), - }); - - await updateFeatured(exist.id).catch(err => logger.error(err)); -} - -/** - * Personを解決します。 - * - * Misskeyに対象のPersonが登録されていればそれを返し、そうでなければ - * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 - */ -export async function resolvePerson(uri: string, resolver?: Resolver): Promise { - if (typeof uri !== 'string') throw new Error('uri is not string'); - - //#region このサーバーに既に登録されていたらそれを返す - const exist = await fetchPerson(uri); - - if (exist) { - return exist; - } - //#endregion - - // リモートサーバーからフェッチしてきて登録 - if (resolver == null) resolver = new Resolver(); - return await createPerson(uri, resolver); -} - -const services: { - [x: string]: (id: string, username: string) => any - } = { - 'misskey:authentication:twitter': (userId, screenName) => ({ userId, screenName }), - 'misskey:authentication:github': (id, login) => ({ id, login }), - 'misskey:authentication:discord': (id, name) => $discord(id, name), - }; - -const $discord = (id: string, name: string) => { - if (typeof name !== 'string') { - name = 'unknown#0000'; - } - const [username, discriminator] = name.split('#'); - return { id, username, discriminator }; -}; - -function addService(target: { [x: string]: any }, source: IApPropertyValue) { - const service = services[source.name]; - - if (typeof source.value !== 'string') { - source.value = 'unknown'; - } - - const [id, username] = source.value.split('@'); - - if (service) { - target[source.name.split(':')[2]] = service(id, username); - } -} - -export function analyzeAttachments(attachments: IObject | IObject[] | undefined) { - const fields: { - name: string, - value: string - }[] = []; - const services: { [x: string]: any } = {}; - - if (Array.isArray(attachments)) { - for (const attachment of attachments.filter(isPropertyValue)) { - if (isPropertyValue(attachment.identifier)) { - addService(services, attachment.identifier); - } else { - fields.push({ - name: attachment.name, - value: fromHtml(attachment.value), - }); - } - } - } - - return { fields, services }; -} - -export async function updateFeatured(userId: User['id']) { - const user = await Users.findOneByOrFail({ id: userId }); - if (!Users.isRemoteUser(user)) return; - if (!user.featured) return; - - logger.info(`Updating the featured: ${user.uri}`); - - const resolver = new Resolver(); - - // Resolve to (Ordered)Collection Object - const collection = await resolver.resolveCollection(user.featured); - if (!isCollectionOrOrderedCollection(collection)) throw new Error('Object is not Collection or OrderedCollection'); - - // Resolve to Object(may be Note) arrays - const unresolvedItems = isCollection(collection) ? collection.items : collection.orderedItems; - const items = await Promise.all(toArray(unresolvedItems).map(x => resolver.resolve(x))); - - // Resolve and regist Notes - const limit = promiseLimit(2); - const featuredNotes = await Promise.all(items - .filter(item => getApType(item) === 'Note') // TODO: Noteでなくてもいいかも - .slice(0, 5) - .map(item => limit(() => resolveNote(item, resolver)))); - - await db.transaction(async transactionalEntityManager => { - await transactionalEntityManager.delete(UserNotePining, { userId: user.id }); - - // とりあえずidを別の時間で生成して順番を維持 - let td = 0; - for (const note of featuredNotes.filter(note => note != null)) { - td -= 1000; - transactionalEntityManager.insert(UserNotePining, { - id: genId(new Date(Date.now() + td)), - createdAt: new Date(), - userId: user.id, - noteId: note!.id, - }); - } - }); -} diff --git a/packages/backend/src/remote/activitypub/models/question.ts b/packages/backend/src/remote/activitypub/models/question.ts deleted file mode 100644 index f0321fdf2..000000000 --- a/packages/backend/src/remote/activitypub/models/question.ts +++ /dev/null @@ -1,83 +0,0 @@ -import config from '@/config/index.js'; -import Resolver from '../resolver.js'; -import { IObject, IQuestion, isQuestion } from '../type.js'; -import { apLogger } from '../logger.js'; -import { Notes, Polls } from '@/models/index.js'; -import { IPoll } from '@/models/entities/poll.js'; - -export async function extractPollFromQuestion(source: string | IObject, resolver?: Resolver): Promise { - if (resolver == null) resolver = new Resolver(); - - const question = await resolver.resolve(source); - - if (!isQuestion(question)) { - throw new Error('invalid type'); - } - - const multiple = !question.oneOf; - const expiresAt = question.endTime ? new Date(question.endTime) : question.closed ? new Date(question.closed) : null; - - if (multiple && !question.anyOf) { - throw new Error('invalid question'); - } - - const choices = question[multiple ? 'anyOf' : 'oneOf']! - .map((x, i) => x.name!); - - const votes = question[multiple ? 'anyOf' : 'oneOf']! - .map((x, i) => x.replies && x.replies.totalItems || x._misskey_votes || 0); - - return { - choices, - votes, - multiple, - expiresAt, - }; -} - -/** - * Update votes of Question - * @param uri URI of AP Question object - * @returns true if updated - */ -export async function updateQuestion(value: any) { - const uri = typeof value === 'string' ? value : value.id; - - // URIがこのサーバーを指しているならスキップ - if (uri.startsWith(config.url + '/')) throw new Error('uri points local'); - - //#region このサーバーに既に登録されているか - const note = await Notes.findOneBy({ uri }); - if (note == null) throw new Error('Question is not registed'); - - const poll = await Polls.findOneBy({ noteId: note.id }); - if (poll == null) throw new Error('Question is not registed'); - //#endregion - - // resolve new Question object - const resolver = new Resolver(); - const question = await resolver.resolve(value) as IQuestion; - apLogger.debug(`fetched question: ${JSON.stringify(question, null, 2)}`); - - if (question.type !== 'Question') throw new Error('object is not a Question'); - - const apChoices = question.oneOf || question.anyOf; - - let changed = false; - - for (const choice of poll.choices) { - const oldCount = poll.votes[poll.choices.indexOf(choice)]; - const newCount = apChoices!.filter(ap => ap.name === choice)[0].replies!.totalItems; - - if (oldCount !== newCount) { - changed = true; - poll.votes[poll.choices.indexOf(choice)] = newCount; - } - } - - await Polls.update({ noteId: note.id }, { - votes: poll.votes, - }); - - return changed; -} diff --git a/packages/backend/src/remote/activitypub/perform.ts b/packages/backend/src/remote/activitypub/perform.ts deleted file mode 100644 index a3c10ba94..000000000 --- a/packages/backend/src/remote/activitypub/perform.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { IObject } from './type.js'; -import { CacheableRemoteUser } from '@/models/entities/user.js'; -import { performActivity } from './kernel/index.js'; -import { updatePerson } from './models/person.js'; - -export default async (actor: CacheableRemoteUser, activity: IObject): Promise => { - await performActivity(actor, activity); - - // ついでにリモートユーザーの情報が古かったら更新しておく - if (actor.uri) { - if (actor.lastFetchedAt == null || Date.now() - actor.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) { - setImmediate(() => { - updatePerson(actor.uri!); - }); - } - } -}; diff --git a/packages/backend/src/remote/activitypub/renderer/accept.ts b/packages/backend/src/remote/activitypub/renderer/accept.ts deleted file mode 100644 index cb01f6a91..000000000 --- a/packages/backend/src/remote/activitypub/renderer/accept.ts +++ /dev/null @@ -1,8 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; - -export default (object: any, user: { id: User['id']; host: null }) => ({ - type: 'Accept', - actor: `${config.url}/users/${user.id}`, - object, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/add.ts b/packages/backend/src/remote/activitypub/renderer/add.ts deleted file mode 100644 index ec4788429..000000000 --- a/packages/backend/src/remote/activitypub/renderer/add.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from '@/config/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; - -export default (user: ILocalUser, target: any, object: any) => ({ - type: 'Add', - actor: `${config.url}/users/${user.id}`, - target, - object, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/announce.ts b/packages/backend/src/remote/activitypub/renderer/announce.ts deleted file mode 100644 index 2709fea51..000000000 --- a/packages/backend/src/remote/activitypub/renderer/announce.ts +++ /dev/null @@ -1,29 +0,0 @@ -import config from '@/config/index.js'; -import { Note } from '@/models/entities/note.js'; - -export default (object: any, note: Note) => { - const attributedTo = `${config.url}/users/${note.userId}`; - - let to: string[] = []; - let cc: string[] = []; - - if (note.visibility === 'public') { - to = ['https://www.w3.org/ns/activitystreams#Public']; - cc = [`${attributedTo}/followers`]; - } else if (note.visibility === 'home') { - to = [`${attributedTo}/followers`]; - cc = ['https://www.w3.org/ns/activitystreams#Public']; - } else { - return null; - } - - return { - id: `${config.url}/notes/${note.id}/activity`, - actor: `${config.url}/users/${note.userId}`, - type: 'Announce', - published: note.createdAt.toISOString(), - to, - cc, - object, - }; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/block.ts b/packages/backend/src/remote/activitypub/renderer/block.ts deleted file mode 100644 index 802d7280b..000000000 --- a/packages/backend/src/remote/activitypub/renderer/block.ts +++ /dev/null @@ -1,20 +0,0 @@ -import config from '@/config/index.js'; -import { Blocking } from '@/models/entities/blocking.js'; - -/** - * Renders a block into its ActivityPub representation. - * - * @param block The block to be rendered. The blockee relation must be loaded. - */ -export function renderBlock(block: Blocking) { - if (block.blockee?.uri == null) { - throw new Error('renderBlock: missing blockee uri'); - } - - return { - type: 'Block', - id: `${config.url}/blocks/${block.id}`, - actor: `${config.url}/users/${block.blockerId}`, - object: block.blockee.uri, - }; -} diff --git a/packages/backend/src/remote/activitypub/renderer/create.ts b/packages/backend/src/remote/activitypub/renderer/create.ts deleted file mode 100644 index 281a3cb2a..000000000 --- a/packages/backend/src/remote/activitypub/renderer/create.ts +++ /dev/null @@ -1,17 +0,0 @@ -import config from '@/config/index.js'; -import { Note } from '@/models/entities/note.js'; - -export default (object: any, note: Note) => { - const activity = { - id: `${config.url}/notes/${note.id}/activity`, - actor: `${config.url}/users/${note.userId}`, - type: 'Create', - published: note.createdAt.toISOString(), - object, - } as any; - - if (object.to) activity.to = object.to; - if (object.cc) activity.cc = object.cc; - - return activity; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/delete.ts b/packages/backend/src/remote/activitypub/renderer/delete.ts deleted file mode 100644 index 4edd3a880..000000000 --- a/packages/backend/src/remote/activitypub/renderer/delete.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; - -export default (object: any, user: { id: User['id']; host: null }) => ({ - type: 'Delete', - actor: `${config.url}/users/${user.id}`, - object, - published: new Date().toISOString(), -}); diff --git a/packages/backend/src/remote/activitypub/renderer/document.ts b/packages/backend/src/remote/activitypub/renderer/document.ts deleted file mode 100644 index c973de4c4..000000000 --- a/packages/backend/src/remote/activitypub/renderer/document.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles } from '@/models/index.js'; - -export default (file: DriveFile) => ({ - type: 'Document', - mediaType: file.type, - url: DriveFiles.getPublicUrl(file), - name: file.comment, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/emoji.ts b/packages/backend/src/remote/activitypub/renderer/emoji.ts deleted file mode 100644 index 0bf15eefd..000000000 --- a/packages/backend/src/remote/activitypub/renderer/emoji.ts +++ /dev/null @@ -1,14 +0,0 @@ -import config from '@/config/index.js'; -import { Emoji } from '@/models/entities/emoji.js'; - -export default (emoji: Emoji) => ({ - id: `${config.url}/emojis/${emoji.name}`, - type: 'Emoji', - name: `:${emoji.name}:`, - updated: emoji.updatedAt != null ? emoji.updatedAt.toISOString() : new Date().toISOString, - icon: { - type: 'Image', - mediaType: emoji.type || 'image/png', - url: emoji.publicUrl || emoji.originalUrl, // || emoji.originalUrl してるのは後方互換性のため - }, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/flag.ts b/packages/backend/src/remote/activitypub/renderer/flag.ts deleted file mode 100644 index 58eadddba..000000000 --- a/packages/backend/src/remote/activitypub/renderer/flag.ts +++ /dev/null @@ -1,15 +0,0 @@ -import config from '@/config/index.js'; -import { IObject, IActivity } from '@/remote/activitypub/type.js'; -import { ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import { getInstanceActor } from '@/services/instance-actor.js'; - -// to anonymise reporters, the reporting actor must be a system user -// object has to be a uri or array of uris -export const renderFlag = (user: ILocalUser, object: [string], content: string) => { - return { - type: 'Flag', - actor: `${config.url}/users/${user.id}`, - content, - object, - }; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/follow-relay.ts b/packages/backend/src/remote/activitypub/renderer/follow-relay.ts deleted file mode 100644 index 2c9678090..000000000 --- a/packages/backend/src/remote/activitypub/renderer/follow-relay.ts +++ /dev/null @@ -1,14 +0,0 @@ -import config from '@/config/index.js'; -import { Relay } from '@/models/entities/relay.js'; -import { ILocalUser } from '@/models/entities/user.js'; - -export function renderFollowRelay(relay: Relay, relayActor: ILocalUser) { - const follow = { - id: `${config.url}/activities/follow-relay/${relay.id}`, - type: 'Follow', - actor: `${config.url}/users/${relayActor.id}`, - object: 'https://www.w3.org/ns/activitystreams#Public', - }; - - return follow; -} diff --git a/packages/backend/src/remote/activitypub/renderer/follow-user.ts b/packages/backend/src/remote/activitypub/renderer/follow-user.ts deleted file mode 100644 index 9a8a16d74..000000000 --- a/packages/backend/src/remote/activitypub/renderer/follow-user.ts +++ /dev/null @@ -1,12 +0,0 @@ -import config from '@/config/index.js'; -import { Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; - -/** - * Convert (local|remote)(Follower|Followee)ID to URL - * @param id Follower|Followee ID - */ -export default async function renderFollowUser(id: User['id']): Promise { - const user = await Users.findOneByOrFail({ id: id }); - return Users.isLocalUser(user) ? `${config.url}/users/${user.id}` : user.uri; -} diff --git a/packages/backend/src/remote/activitypub/renderer/follow.ts b/packages/backend/src/remote/activitypub/renderer/follow.ts deleted file mode 100644 index 00fac18ad..000000000 --- a/packages/backend/src/remote/activitypub/renderer/follow.ts +++ /dev/null @@ -1,14 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; - -export default (follower: { id: User['id']; host: User['host']; uri: User['host'] }, followee: { id: User['id']; host: User['host']; uri: User['host'] }, requestId?: string) => { - const follow = { - id: requestId ?? `${config.url}/follows/${follower.id}/${followee.id}`, - type: 'Follow', - actor: Users.isLocalUser(follower) ? `${config.url}/users/${follower.id}` : follower.uri, - object: Users.isLocalUser(followee) ? `${config.url}/users/${followee.id}` : followee.uri, - } as any; - - return follow; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/hashtag.ts b/packages/backend/src/remote/activitypub/renderer/hashtag.ts deleted file mode 100644 index a7b441e00..000000000 --- a/packages/backend/src/remote/activitypub/renderer/hashtag.ts +++ /dev/null @@ -1,7 +0,0 @@ -import config from '@/config/index.js'; - -export default (tag: string) => ({ - type: 'Hashtag', - href: `${config.url}/tags/${encodeURIComponent(tag)}`, - name: `#${tag}`, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/image.ts b/packages/backend/src/remote/activitypub/renderer/image.ts deleted file mode 100644 index c7d5a31a2..000000000 --- a/packages/backend/src/remote/activitypub/renderer/image.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles } from '@/models/index.js'; - -export default (file: DriveFile) => ({ - type: 'Image', - url: DriveFiles.getPublicUrl(file), - sensitive: file.isSensitive, - name: file.comment, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/index.ts b/packages/backend/src/remote/activitypub/renderer/index.ts deleted file mode 100644 index f100b77ce..000000000 --- a/packages/backend/src/remote/activitypub/renderer/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import config from '@/config/index.js'; -import { v4 as uuid } from 'uuid'; -import { IActivity } from '../type.js'; -import { LdSignature } from '../misc/ld-signature.js'; -import { getUserKeypair } from '@/misc/keypair-store.js'; -import { User } from '@/models/entities/user.js'; - -export const renderActivity = (x: any): IActivity | null => { - if (x == null) return null; - - if (typeof x === 'object' && x.id == null) { - x.id = `${config.url}/${uuid()}`; - } - - return Object.assign({ - '@context': [ - 'https://www.w3.org/ns/activitystreams', - 'https://w3id.org/security/v1', - { - // as non-standards - manuallyApprovesFollowers: 'as:manuallyApprovesFollowers', - sensitive: 'as:sensitive', - Hashtag: 'as:Hashtag', - quoteUrl: 'as:quoteUrl', - // Mastodon - toot: 'http://joinmastodon.org/ns#', - Emoji: 'toot:Emoji', - featured: 'toot:featured', - discoverable: 'toot:discoverable', - // schema - schema: 'http://schema.org#', - PropertyValue: 'schema:PropertyValue', - value: 'schema:value', - // Misskey - misskey: 'https://misskey-hub.net/ns#', - '_misskey_content': 'misskey:_misskey_content', - '_misskey_quote': 'misskey:_misskey_quote', - '_misskey_reaction': 'misskey:_misskey_reaction', - '_misskey_votes': 'misskey:_misskey_votes', - '_misskey_talk': 'misskey:_misskey_talk', - 'isCat': 'misskey:isCat', - // vcard - vcard: 'http://www.w3.org/2006/vcard/ns#', - }, - ], - }, x); -}; - -export const attachLdSignature = async (activity: any, user: { id: User['id']; host: null; }): Promise => { - if (activity == null) return null; - - const keypair = await getUserKeypair(user.id); - - const ldSignature = new LdSignature(); - ldSignature.debug = false; - activity = await ldSignature.signRsaSignature2017(activity, keypair.privateKey, `${config.url}/users/${user.id}#main-key`); - - return activity; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/key.ts b/packages/backend/src/remote/activitypub/renderer/key.ts deleted file mode 100644 index c4f3d464f..000000000 --- a/packages/backend/src/remote/activitypub/renderer/key.ts +++ /dev/null @@ -1,14 +0,0 @@ -import config from '@/config/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { UserKeypair } from '@/models/entities/user-keypair.js'; -import { createPublicKey } from 'node:crypto'; - -export default (user: ILocalUser, key: UserKeypair, postfix?: string) => ({ - id: `${config.url}/users/${user.id}${postfix || '/publickey'}`, - type: 'Key', - owner: `${config.url}/users/${user.id}`, - publicKeyPem: createPublicKey(key.publicKey).export({ - type: 'spki', - format: 'pem', - }), -}); diff --git a/packages/backend/src/remote/activitypub/renderer/like.ts b/packages/backend/src/remote/activitypub/renderer/like.ts deleted file mode 100644 index 00fb72e8a..000000000 --- a/packages/backend/src/remote/activitypub/renderer/like.ts +++ /dev/null @@ -1,31 +0,0 @@ -import config from '@/config/index.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { Note } from '@/models/entities/note.js'; -import { Emojis } from '@/models/index.js'; -import { IsNull } from 'typeorm'; -import renderEmoji from './emoji.js'; - -export const renderLike = async (noteReaction: NoteReaction, note: Note) => { - const reaction = noteReaction.reaction; - - const object = { - type: 'Like', - id: `${config.url}/likes/${noteReaction.id}`, - actor: `${config.url}/users/${noteReaction.userId}`, - object: note.uri ? note.uri : `${config.url}/notes/${noteReaction.noteId}`, - content: reaction, - _misskey_reaction: reaction, - } as any; - - if (reaction.startsWith(':')) { - const name = reaction.replace(/:/g, ''); - const emoji = await Emojis.findOneBy({ - name, - host: IsNull(), - }); - - if (emoji) object.tag = [ renderEmoji(emoji) ]; - } - - return object; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/mention.ts b/packages/backend/src/remote/activitypub/renderer/mention.ts deleted file mode 100644 index c7e62e884..000000000 --- a/packages/backend/src/remote/activitypub/renderer/mention.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from '@/config/index.js'; -import { User, ILocalUser } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; - -export default (mention: User) => ({ - type: 'Mention', - href: Users.isRemoteUser(mention) ? mention.uri : `${config.url}/users/${(mention as ILocalUser).id}`, - name: Users.isRemoteUser(mention) ? `@${mention.username}@${mention.host}` : `@${(mention as ILocalUser).username}`, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/note.ts b/packages/backend/src/remote/activitypub/renderer/note.ts deleted file mode 100644 index b3bafaa3a..000000000 --- a/packages/backend/src/remote/activitypub/renderer/note.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { In, IsNull } from 'typeorm'; -import config from '@/config/index.js'; -import { Note, IMentionedRemoteUsers } from '@/models/entities/note.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles, Notes, Users, Emojis, Polls } from '@/models/index.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { Poll } from '@/models/entities/poll.js'; -import toHtml from '../misc/get-note-html.js'; -import renderEmoji from './emoji.js'; -import renderMention from './mention.js'; -import renderHashtag from './hashtag.js'; -import renderDocument from './document.js'; - -export default async function renderNote(note: Note, dive = true, isTalk = false): Promise> { - const getPromisedFiles = async (ids: string[]) => { - if (!ids || ids.length === 0) return []; - const items = await DriveFiles.findBy({ id: In(ids) }); - return ids.map(id => items.find(item => item.id === id)).filter(item => item != null) as DriveFile[]; - }; - - let inReplyTo; - let inReplyToNote: Note | null; - - if (note.replyId) { - inReplyToNote = await Notes.findOneBy({ id: note.replyId }); - - if (inReplyToNote != null) { - const inReplyToUser = await Users.findOneBy({ id: inReplyToNote.userId }); - - if (inReplyToUser != null) { - if (inReplyToNote.uri) { - inReplyTo = inReplyToNote.uri; - } else { - if (dive) { - inReplyTo = await renderNote(inReplyToNote, false); - } else { - inReplyTo = `${config.url}/notes/${inReplyToNote.id}`; - } - } - } - } - } else { - inReplyTo = null; - } - - let quote; - - if (note.renoteId) { - const renote = await Notes.findOneBy({ id: note.renoteId }); - - if (renote) { - quote = renote.uri ? renote.uri : `${config.url}/notes/${renote.id}`; - } - } - - const attributedTo = `${config.url}/users/${note.userId}`; - - const mentions = (JSON.parse(note.mentionedRemoteUsers) as IMentionedRemoteUsers).map(x => x.uri); - - let to: string[] = []; - let cc: string[] = []; - - if (note.visibility === 'public') { - to = ['https://www.w3.org/ns/activitystreams#Public']; - cc = [`${attributedTo}/followers`].concat(mentions); - } else if (note.visibility === 'home') { - to = [`${attributedTo}/followers`]; - cc = ['https://www.w3.org/ns/activitystreams#Public'].concat(mentions); - } else if (note.visibility === 'followers') { - to = [`${attributedTo}/followers`]; - cc = mentions; - } else { - to = mentions; - } - - const mentionedUsers = note.mentions.length > 0 ? await Users.findBy({ - id: In(note.mentions), - }) : []; - - const hashtagTags = (note.tags || []).map(tag => renderHashtag(tag)); - const mentionTags = mentionedUsers.map(u => renderMention(u)); - - const files = await getPromisedFiles(note.fileIds); - - const text = note.text ?? ''; - let poll: Poll | null = null; - - if (note.hasPoll) { - poll = await Polls.findOneBy({ noteId: note.id }); - } - - let apText = text; - - if (quote) { - apText += `\n\nRE: ${quote}`; - } - - const summary = note.cw === '' ? String.fromCharCode(0x200B) : note.cw; - - const content = toHtml(Object.assign({}, note, { - text: apText, - })); - - const emojis = await getEmojis(note.emojis); - const apemojis = emojis.map(emoji => renderEmoji(emoji)); - - const tag = [ - ...hashtagTags, - ...mentionTags, - ...apemojis, - ]; - - const asPoll = poll ? { - type: 'Question', - content: toHtml(Object.assign({}, note, { - text: text, - })), - [poll.expiresAt && poll.expiresAt < new Date() ? 'closed' : 'endTime']: poll.expiresAt, - [poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({ - type: 'Note', - name: text, - replies: { - type: 'Collection', - totalItems: poll!.votes[i], - }, - })), - } : {}; - - const asTalk = isTalk ? { - _misskey_talk: true, - } : {}; - - return { - id: `${config.url}/notes/${note.id}`, - type: 'Note', - attributedTo, - summary, - content, - _misskey_content: text, - source: { - content: text, - mediaType: "text/x.misskeymarkdown", - }, - _misskey_quote: quote, - quoteUrl: quote, - published: note.createdAt.toISOString(), - to, - cc, - inReplyTo, - attachment: files.map(renderDocument), - sensitive: note.cw != null || files.some(file => file.isSensitive), - tag, - ...asPoll, - ...asTalk, - }; -} - -export async function getEmojis(names: string[]): Promise { - if (names == null || names.length === 0) return []; - - const emojis = await Promise.all( - names.map(name => Emojis.findOneBy({ - name, - host: IsNull(), - })), - ); - - return emojis.filter(emoji => emoji != null) as Emoji[]; -} diff --git a/packages/backend/src/remote/activitypub/renderer/ordered-collection.ts b/packages/backend/src/remote/activitypub/renderer/ordered-collection.ts deleted file mode 100644 index ff9a77be3..000000000 --- a/packages/backend/src/remote/activitypub/renderer/ordered-collection.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Render OrderedCollection - * @param id URL of self - * @param totalItems Total number of items - * @param first URL of first page (optional) - * @param last URL of last page (optional) - * @param orderedItems attached objects (optional) - */ -export default function(id: string | null, totalItems: any, first?: string, last?: string, orderedItems?: Record[]): { - id: string | null; - type: 'OrderedCollection'; - totalItems: any; - first?: string; - last?: string; - orderedItems?: Record[]; -} { - const page: any = { - id, - type: 'OrderedCollection', - totalItems, - }; - - if (first) page.first = first; - if (last) page.last = last; - if (orderedItems) page.orderedItems = orderedItems; - - return page; -} diff --git a/packages/backend/src/remote/activitypub/renderer/person.ts b/packages/backend/src/remote/activitypub/renderer/person.ts deleted file mode 100644 index cd2fd74d4..000000000 --- a/packages/backend/src/remote/activitypub/renderer/person.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { URL } from 'node:url'; -import * as mfm from 'mfm-js'; -import renderImage from './image.js'; -import renderKey from './key.js'; -import config from '@/config/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { toHtml } from '../../../mfm/to-html.js'; -import { getEmojis } from './note.js'; -import renderEmoji from './emoji.js'; -import { IIdentifier } from '../models/identifier.js'; -import renderHashtag from './hashtag.js'; -import { DriveFiles, UserProfiles } from '@/models/index.js'; -import { getUserKeypair } from '@/misc/keypair-store.js'; - -export async function renderPerson(user: ILocalUser) { - const id = `${config.url}/users/${user.id}`; - const isSystem = !!user.username.match(/\./); - - const [avatar, banner, profile] = await Promise.all([ - user.avatarId ? DriveFiles.findOneBy({ id: user.avatarId }) : Promise.resolve(undefined), - user.bannerId ? DriveFiles.findOneBy({ id: user.bannerId }) : Promise.resolve(undefined), - UserProfiles.findOneByOrFail({ userId: user.id }), - ]); - - const attachment: { - type: 'PropertyValue', - name: string, - value: string, - identifier?: IIdentifier - }[] = []; - - if (profile.fields) { - for (const field of profile.fields) { - attachment.push({ - type: 'PropertyValue', - name: field.name, - value: (field.value != null && field.value.match(/^https?:/)) - ? `${new URL(field.value).href}` - : field.value, - }); - } - } - - const emojis = await getEmojis(user.emojis); - const apemojis = emojis.map(emoji => renderEmoji(emoji)); - - const hashtagTags = (user.tags || []).map(tag => renderHashtag(tag)); - - const tag = [ - ...apemojis, - ...hashtagTags, - ]; - - const keypair = await getUserKeypair(user.id); - - const person = { - type: isSystem ? 'Application' : user.isBot ? 'Service' : 'Person', - id, - inbox: `${id}/inbox`, - outbox: `${id}/outbox`, - followers: `${id}/followers`, - following: `${id}/following`, - featured: `${id}/collections/featured`, - sharedInbox: `${config.url}/inbox`, - endpoints: { sharedInbox: `${config.url}/inbox` }, - url: `${config.url}/@${user.username}`, - preferredUsername: user.username, - name: user.name, - summary: profile.description ? toHtml(mfm.parse(profile.description)) : null, - icon: avatar ? renderImage(avatar) : null, - image: banner ? renderImage(banner) : null, - tag, - manuallyApprovesFollowers: user.isLocked, - discoverable: !!user.isExplorable, - publicKey: renderKey(user, keypair, `#main-key`), - isCat: user.isCat, - attachment: attachment.length ? attachment : undefined, - } as any; - - if (profile?.birthday) { - person['vcard:bday'] = profile.birthday; - } - - if (profile?.location) { - person['vcard:Address'] = profile.location; - } - - return person; -} diff --git a/packages/backend/src/remote/activitypub/renderer/question.ts b/packages/backend/src/remote/activitypub/renderer/question.ts deleted file mode 100644 index d4d1b590a..000000000 --- a/packages/backend/src/remote/activitypub/renderer/question.ts +++ /dev/null @@ -1,23 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { Poll } from '@/models/entities/poll.js'; - -export default async function renderQuestion(user: { id: User['id'] }, note: Note, poll: Poll) { - const question = { - type: 'Question', - id: `${config.url}/questions/${note.id}`, - actor: `${config.url}/users/${user.id}`, - content: note.text || '', - [poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({ - name: text, - _misskey_votes: poll.votes[i], - replies: { - type: 'Collection', - totalItems: poll.votes[i], - }, - })), - }; - - return question; -} diff --git a/packages/backend/src/remote/activitypub/renderer/read.ts b/packages/backend/src/remote/activitypub/renderer/read.ts deleted file mode 100644 index a30e649f6..000000000 --- a/packages/backend/src/remote/activitypub/renderer/read.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; - -export const renderReadActivity = (user: { id: User['id'] }, message: MessagingMessage) => ({ - type: 'Read', - actor: `${config.url}/users/${user.id}`, - object: message.uri, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/reject.ts b/packages/backend/src/remote/activitypub/renderer/reject.ts deleted file mode 100644 index ab4cc1646..000000000 --- a/packages/backend/src/remote/activitypub/renderer/reject.ts +++ /dev/null @@ -1,8 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; - -export default (object: any, user: { id: User['id'] }) => ({ - type: 'Reject', - actor: `${config.url}/users/${user.id}`, - object, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/remove.ts b/packages/backend/src/remote/activitypub/renderer/remove.ts deleted file mode 100644 index 1be3edc5d..000000000 --- a/packages/backend/src/remote/activitypub/renderer/remove.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; - -export default (user: { id: User['id'] }, target: any, object: any) => ({ - type: 'Remove', - actor: `${config.url}/users/${user.id}`, - target, - object, -}); diff --git a/packages/backend/src/remote/activitypub/renderer/tombstone.ts b/packages/backend/src/remote/activitypub/renderer/tombstone.ts deleted file mode 100644 index 313ca74e9..000000000 --- a/packages/backend/src/remote/activitypub/renderer/tombstone.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default (id: string) => ({ - id, - type: 'Tombstone', -}); diff --git a/packages/backend/src/remote/activitypub/renderer/undo.ts b/packages/backend/src/remote/activitypub/renderer/undo.ts deleted file mode 100644 index 46631df9e..000000000 --- a/packages/backend/src/remote/activitypub/renderer/undo.ts +++ /dev/null @@ -1,15 +0,0 @@ -import config from '@/config/index.js'; -import { ILocalUser, User } from '@/models/entities/user.js'; - -export default (object: any, user: { id: User['id'] }) => { - if (object == null) return null; - const id = typeof object.id === 'string' && object.id.startsWith(config.url) ? `${object.id}/undo` : undefined; - - return { - type: 'Undo', - ...(id ? { id } : {}), - actor: `${config.url}/users/${user.id}`, - object, - published: new Date().toISOString(), - }; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/update.ts b/packages/backend/src/remote/activitypub/renderer/update.ts deleted file mode 100644 index cf880f03f..000000000 --- a/packages/backend/src/remote/activitypub/renderer/update.ts +++ /dev/null @@ -1,15 +0,0 @@ -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; - -export default (object: any, user: { id: User['id'] }) => { - const activity = { - id: `${config.url}/users/${user.id}#updates/${new Date().getTime()}`, - actor: `${config.url}/users/${user.id}`, - type: 'Update', - to: [ 'https://www.w3.org/ns/activitystreams#Public' ], - object, - published: new Date().toISOString(), - } as any; - - return activity; -}; diff --git a/packages/backend/src/remote/activitypub/renderer/vote.ts b/packages/backend/src/remote/activitypub/renderer/vote.ts deleted file mode 100644 index b6eb8e095..000000000 --- a/packages/backend/src/remote/activitypub/renderer/vote.ts +++ /dev/null @@ -1,23 +0,0 @@ -import config from '@/config/index.js'; -import { Note } from '@/models/entities/note.js'; -import { IRemoteUser, User } from '@/models/entities/user.js'; -import { PollVote } from '@/models/entities/poll-vote.js'; -import { Poll } from '@/models/entities/poll.js'; - -export default async function renderVote(user: { id: User['id'] }, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise { - return { - id: `${config.url}/users/${user.id}#votes/${vote.id}/activity`, - actor: `${config.url}/users/${user.id}`, - type: 'Create', - to: [pollOwner.uri], - published: new Date().toISOString(), - object: { - id: `${config.url}/users/${user.id}#votes/${vote.id}`, - type: 'Note', - attributedTo: `${config.url}/users/${user.id}`, - to: [pollOwner.uri], - inReplyTo: note.uri, - name: poll.choices[vote.choice], - }, - }; -} diff --git a/packages/backend/src/remote/activitypub/request.ts b/packages/backend/src/remote/activitypub/request.ts deleted file mode 100644 index 5cbfd8c25..000000000 --- a/packages/backend/src/remote/activitypub/request.ts +++ /dev/null @@ -1,58 +0,0 @@ -import config from '@/config/index.js'; -import { getUserKeypair } from '@/misc/keypair-store.js'; -import { User } from '@/models/entities/user.js'; -import { getResponse } from '../../misc/fetch.js'; -import { createSignedPost, createSignedGet } from './ap-request.js'; - -export default async (user: { id: User['id'] }, url: string, object: any) => { - const body = JSON.stringify(object); - - const keypair = await getUserKeypair(user.id); - - const req = createSignedPost({ - key: { - privateKeyPem: keypair.privateKey, - keyId: `${config.url}/users/${user.id}#main-key`, - }, - url, - body, - additionalHeaders: { - 'User-Agent': config.userAgent, - }, - }); - - await getResponse({ - url, - method: req.request.method, - headers: req.request.headers, - body, - }); -}; - -/** - * Get AP object with http-signature - * @param user http-signature user - * @param url URL to fetch - */ -export async function signedGet(url: string, user: { id: User['id'] }) { - const keypair = await getUserKeypair(user.id); - - const req = createSignedGet({ - key: { - privateKeyPem: keypair.privateKey, - keyId: `${config.url}/users/${user.id}#main-key`, - }, - url, - additionalHeaders: { - 'User-Agent': config.userAgent, - }, - }); - - const res = await getResponse({ - url, - method: req.request.method, - headers: req.request.headers, - }); - - return await res.json(); -} diff --git a/packages/backend/src/remote/activitypub/resolver.ts b/packages/backend/src/remote/activitypub/resolver.ts deleted file mode 100644 index 2f9af43c0..000000000 --- a/packages/backend/src/remote/activitypub/resolver.ts +++ /dev/null @@ -1,133 +0,0 @@ -import config from '@/config/index.js'; -import { getJson } from '@/misc/fetch.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { getInstanceActor } from '@/services/instance-actor.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { extractDbHost, isSelfHost } from '@/misc/convert-host.js'; -import { signedGet } from './request.js'; -import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type.js'; -import { FollowRequests, Notes, NoteReactions, Polls, Users } from '@/models/index.js'; -import { parseUri } from './db-resolver.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import { renderLike } from '@/remote/activitypub/renderer/like.js'; -import { renderPerson } from '@/remote/activitypub/renderer/person.js'; -import renderQuestion from '@/remote/activitypub/renderer/question.js'; -import renderCreate from '@/remote/activitypub/renderer/create.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; - -export default class Resolver { - private history: Set; - private user?: ILocalUser; - - constructor() { - this.history = new Set(); - } - - public getHistory(): string[] { - return Array.from(this.history); - } - - public async resolveCollection(value: string | IObject): Promise { - const collection = typeof value === 'string' - ? await this.resolve(value) - : value; - - if (isCollectionOrOrderedCollection(collection)) { - return collection; - } else { - throw new Error(`unrecognized collection type: ${collection.type}`); - } - } - - public async resolve(value: string | IObject): Promise { - if (value == null) { - throw new Error('resolvee is null (or undefined)'); - } - - if (typeof value !== 'string') { - return value; - } - - if (value.includes('#')) { - // URLs with fragment parts cannot be resolved correctly because - // the fragment part does not get transmitted over HTTP(S). - // Avoid strange behaviour by not trying to resolve these at all. - throw new Error(`cannot resolve URL with fragment: ${value}`); - } - - if (this.history.has(value)) { - throw new Error('cannot resolve already resolved one'); - } - - this.history.add(value); - - const host = extractDbHost(value); - if (isSelfHost(host)) { - return await this.resolveLocal(value); - } - - const meta = await fetchMeta(); - if (meta.blockedHosts.includes(host)) { - throw new Error('Instance is blocked'); - } - - if (config.signToActivityPubGet && !this.user) { - this.user = await getInstanceActor(); - } - - const object = (this.user - ? await signedGet(value, this.user) - : await getJson(value, 'application/activity+json, application/ld+json')) as IObject; - - if (object == null || ( - Array.isArray(object['@context']) ? - !(object['@context'] as unknown[]).includes('https://www.w3.org/ns/activitystreams') : - object['@context'] !== 'https://www.w3.org/ns/activitystreams' - )) { - throw new Error('invalid response'); - } - - return object; - } - - private resolveLocal(url: string): Promise { - const parsed = parseUri(url); - if (!parsed.local) throw new Error('resolveLocal: not local'); - - switch (parsed.type) { - case 'notes': - return Notes.findOneByOrFail({ id: parsed.id }) - .then(note => { - if (parsed.rest === 'activity') { - // this refers to the create activity and not the note itself - return renderActivity(renderCreate(renderNote(note))); - } else { - return renderNote(note); - } - }); - case 'users': - return Users.findOneByOrFail({ id: parsed.id }) - .then(user => renderPerson(user as ILocalUser)); - case 'questions': - // Polls are indexed by the note they are attached to. - return Promise.all([ - Notes.findOneByOrFail({ id: parsed.id }), - Polls.findOneByOrFail({ noteId: parsed.id }), - ]) - .then(([note, poll]) => renderQuestion({ id: note.userId }, note, poll)); - case 'likes': - return NoteReactions.findOneByOrFail({ id: parsed.id }).then(reaction => renderActivity(renderLike(reaction, { uri: null }))); - case 'follows': - // rest should be - if (parsed.rest == null || !/^\w+$/.test(parsed.rest)) throw new Error('resolveLocal: invalid follow URI'); - - return Promise.all( - [parsed.id, parsed.rest].map(id => Users.findOneByOrFail({ id })) - ) - .then(([follower, followee]) => renderActivity(renderFollow(follower, followee, url))); - default: - throw new Error(`resolveLocal: type ${type} unhandled`); - } - } -} diff --git a/packages/backend/src/remote/activitypub/type.ts b/packages/backend/src/remote/activitypub/type.ts deleted file mode 100644 index de7eb0ed8..000000000 --- a/packages/backend/src/remote/activitypub/type.ts +++ /dev/null @@ -1,295 +0,0 @@ -export type obj = { [x: string]: any }; -export type ApObject = IObject | string | (IObject | string)[]; - -export interface IObject { - '@context': string | string[] | obj | obj[]; - type: string | string[]; - id?: string; - summary?: string; - published?: string; - cc?: ApObject; - to?: ApObject; - attributedTo: ApObject; - attachment?: any[]; - inReplyTo?: any; - replies?: ICollection; - content?: string; - name?: string; - startTime?: Date; - endTime?: Date; - icon?: any; - image?: any; - url?: ApObject; - href?: string; - tag?: IObject | IObject[]; - sensitive?: boolean; -} - -/** - * Get array of ActivityStreams Objects id - */ -export function getApIds(value: ApObject | undefined): string[] { - if (value == null) return []; - const array = Array.isArray(value) ? value : [value]; - return array.map(x => getApId(x)); -} - -/** - * Get first ActivityStreams Object id - */ -export function getOneApId(value: ApObject): string { - const firstOne = Array.isArray(value) ? value[0] : value; - return getApId(firstOne); -} - -/** - * Get ActivityStreams Object id - */ -export function getApId(value: string | IObject): string { - if (typeof value === 'string') return value; - if (typeof value.id === 'string') return value.id; - throw new Error('cannot detemine id'); -} - -/** - * Get ActivityStreams Object type - */ -export function getApType(value: IObject): string { - if (typeof value.type === 'string') return value.type; - if (Array.isArray(value.type) && typeof value.type[0] === 'string') return value.type[0]; - throw new Error('cannot detect type'); -} - -export function getOneApHrefNullable(value: ApObject | undefined): string | undefined { - const firstOne = Array.isArray(value) ? value[0] : value; - return getApHrefNullable(firstOne); -} - -export function getApHrefNullable(value: string | IObject | undefined): string | undefined { - if (typeof value === 'string') return value; - if (typeof value?.href === 'string') return value.href; - return undefined; -} - -export interface IActivity extends IObject { - //type: 'Activity'; - actor: IObject | string; - object: IObject | string; - target?: IObject | string; - /** LD-Signature */ - signature?: { - type: string; - created: Date; - creator: string; - domain?: string; - nonce?: string; - signatureValue: string; - }; -} - -export interface ICollection extends IObject { - type: 'Collection'; - totalItems: number; - items: ApObject; -} - -export interface IOrderedCollection extends IObject { - type: 'OrderedCollection'; - totalItems: number; - orderedItems: ApObject; -} - -export const validPost = ['Note', 'Question', 'Article', 'Audio', 'Document', 'Image', 'Page', 'Video', 'Event']; - -export const isPost = (object: IObject): object is IPost => - validPost.includes(getApType(object)); - -export interface IPost extends IObject { - type: 'Note' | 'Question' | 'Article' | 'Audio' | 'Document' | 'Image' | 'Page' | 'Video' | 'Event'; - source?: { - content: string; - mediaType: string; - }; - _misskey_quote?: string; - quoteUrl?: string; - _misskey_talk: boolean; -} - -export interface IQuestion extends IObject { - type: 'Note' | 'Question'; - source?: { - content: string; - mediaType: string; - }; - _misskey_quote?: string; - quoteUrl?: string; - oneOf?: IQuestionChoice[]; - anyOf?: IQuestionChoice[]; - endTime?: Date; - closed?: Date; -} - -export const isQuestion = (object: IObject): object is IQuestion => - getApType(object) === 'Note' || getApType(object) === 'Question'; - -interface IQuestionChoice { - name?: string; - replies?: ICollection; - _misskey_votes?: number; -} -export interface ITombstone extends IObject { - type: 'Tombstone'; - formerType?: string; - deleted?: Date; -} - -export const isTombstone = (object: IObject): object is ITombstone => - getApType(object) === 'Tombstone'; - -export const validActor = ['Person', 'Service', 'Group', 'Organization', 'Application']; - -export const isActor = (object: IObject): object is IActor => - validActor.includes(getApType(object)); - -export interface IActor extends IObject { - type: 'Person' | 'Service' | 'Organization' | 'Group' | 'Application'; - name?: string; - preferredUsername?: string; - manuallyApprovesFollowers?: boolean; - discoverable?: boolean; - inbox: string; - sharedInbox?: string; // 後方互換性のため - publicKey?: { - id: string; - publicKeyPem: string; - }; - followers?: string | ICollection | IOrderedCollection; - following?: string | ICollection | IOrderedCollection; - featured?: string | IOrderedCollection; - outbox: string | IOrderedCollection; - endpoints?: { - sharedInbox?: string; - }; - 'vcard:bday'?: string; - 'vcard:Address'?: string; -} - -export const isCollection = (object: IObject): object is ICollection => - getApType(object) === 'Collection'; - -export const isOrderedCollection = (object: IObject): object is IOrderedCollection => - getApType(object) === 'OrderedCollection'; - -export const isCollectionOrOrderedCollection = (object: IObject): object is ICollection | IOrderedCollection => - isCollection(object) || isOrderedCollection(object); - -export interface IApPropertyValue extends IObject { - type: 'PropertyValue'; - identifier: IApPropertyValue; - name: string; - value: string; -} - -export const isPropertyValue = (object: IObject): object is IApPropertyValue => - object && - getApType(object) === 'PropertyValue' && - typeof object.name === 'string' && - typeof (object as any).value === 'string'; - -export interface IApMention extends IObject { - type: 'Mention'; - href: string; -} - -export const isMention = (object: IObject): object is IApMention => - getApType(object) === 'Mention' && - typeof object.href === 'string'; - -export interface IApHashtag extends IObject { - type: 'Hashtag'; - name: string; -} - -export const isHashtag = (object: IObject): object is IApHashtag => - getApType(object) === 'Hashtag' && - typeof object.name === 'string'; - -export interface IApEmoji extends IObject { - type: 'Emoji'; - updated: Date; -} - -export const isEmoji = (object: IObject): object is IApEmoji => - getApType(object) === 'Emoji' && !Array.isArray(object.icon) && object.icon.url != null; - -export interface ICreate extends IActivity { - type: 'Create'; -} - -export interface IDelete extends IActivity { - type: 'Delete'; -} - -export interface IUpdate extends IActivity { - type: 'Update'; -} - -export interface IRead extends IActivity { - type: 'Read'; -} - -export interface IUndo extends IActivity { - type: 'Undo'; -} - -export interface IFollow extends IActivity { - type: 'Follow'; -} - -export interface IAccept extends IActivity { - type: 'Accept'; -} - -export interface IReject extends IActivity { - type: 'Reject'; -} - -export interface IAdd extends IActivity { - type: 'Add'; -} - -export interface IRemove extends IActivity { - type: 'Remove'; -} - -export interface ILike extends IActivity { - type: 'Like' | 'EmojiReaction' | 'EmojiReact'; - _misskey_reaction?: string; -} - -export interface IAnnounce extends IActivity { - type: 'Announce'; -} - -export interface IBlock extends IActivity { - type: 'Block'; -} - -export interface IFlag extends IActivity { - type: 'Flag'; -} - -export const isCreate = (object: IObject): object is ICreate => getApType(object) === 'Create'; -export const isDelete = (object: IObject): object is IDelete => getApType(object) === 'Delete'; -export const isUpdate = (object: IObject): object is IUpdate => getApType(object) === 'Update'; -export const isRead = (object: IObject): object is IRead => getApType(object) === 'Read'; -export const isUndo = (object: IObject): object is IUndo => getApType(object) === 'Undo'; -export const isFollow = (object: IObject): object is IFollow => getApType(object) === 'Follow'; -export const isAccept = (object: IObject): object is IAccept => getApType(object) === 'Accept'; -export const isReject = (object: IObject): object is IReject => getApType(object) === 'Reject'; -export const isAdd = (object: IObject): object is IAdd => getApType(object) === 'Add'; -export const isRemove = (object: IObject): object is IRemove => getApType(object) === 'Remove'; -export const isLike = (object: IObject): object is ILike => getApType(object) === 'Like' || getApType(object) === 'EmojiReaction' || getApType(object) === 'EmojiReact'; -export const isAnnounce = (object: IObject): object is IAnnounce => getApType(object) === 'Announce'; -export const isBlock = (object: IObject): object is IBlock => getApType(object) === 'Block'; -export const isFlag = (object: IObject): object is IFlag => getApType(object) === 'Flag'; diff --git a/packages/backend/src/remote/logger.ts b/packages/backend/src/remote/logger.ts deleted file mode 100644 index 4921f53bd..000000000 --- a/packages/backend/src/remote/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logger from '@/services/logger.js'; - -export const remoteLogger = new Logger('remote', 'cyan'); diff --git a/packages/backend/src/remote/resolve-user.ts b/packages/backend/src/remote/resolve-user.ts deleted file mode 100644 index 6fc6f2c4d..000000000 --- a/packages/backend/src/remote/resolve-user.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { URL } from 'node:url'; -import webFinger from './webfinger.js'; -import config from '@/config/index.js'; -import { createPerson, updatePerson } from './activitypub/models/person.js'; -import { remoteLogger } from './logger.js'; -import chalk from 'chalk'; -import { User, IRemoteUser } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { IsNull } from 'typeorm'; - -const logger = remoteLogger.createSubLogger('resolve-user'); - -export async function resolveUser(username: string, host: string | null): Promise { - const usernameLower = username.toLowerCase(); - - if (host == null) { - logger.info(`return local user: ${usernameLower}`); - return await Users.findOneBy({ usernameLower, host: IsNull() }).then(u => { - if (u == null) { - throw new Error('user not found'); - } else { - return u; - } - }); - } - - host = toPuny(host); - - if (config.host === host) { - logger.info(`return local user: ${usernameLower}`); - return await Users.findOneBy({ usernameLower, host: IsNull() }).then(u => { - if (u == null) { - throw new Error('user not found'); - } else { - return u; - } - }); - } - - const user = await Users.findOneBy({ usernameLower, host }) as IRemoteUser | null; - - const acctLower = `${usernameLower}@${host}`; - - if (user == null) { - const self = await resolveSelf(acctLower); - - logger.succ(`return new remote user: ${chalk.magenta(acctLower)}`); - return await createPerson(self.href); - } - - // ユーザー情報が古い場合は、WebFilgerからやりなおして返す - if (user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) { - // 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する - await Users.update(user.id, { - lastFetchedAt: new Date(), - }); - - logger.info(`try resync: ${acctLower}`); - const self = await resolveSelf(acctLower); - - if (user.uri !== self.href) { - // if uri mismatch, Fix (user@host <=> AP's Person id(IRemoteUser.uri)) mapping. - logger.info(`uri missmatch: ${acctLower}`); - logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${user.uri} to ${self.href}`); - - // validate uri - const uri = new URL(self.href); - if (uri.hostname !== host) { - throw new Error(`Invalid uri`); - } - - await Users.update({ - usernameLower, - host: host, - }, { - uri: self.href, - }); - } else { - logger.info(`uri is fine: ${acctLower}`); - } - - await updatePerson(self.href); - - logger.info(`return resynced remote user: ${acctLower}`); - return await Users.findOneBy({ uri: self.href }).then(u => { - if (u == null) { - throw new Error('user not found'); - } else { - return u; - } - }); - } - - logger.info(`return existing remote user: ${acctLower}`); - return user; -} - -async function resolveSelf(acctLower: string) { - logger.info(`WebFinger for ${chalk.yellow(acctLower)}`); - const finger = await webFinger(acctLower).catch(e => { - logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: ${ e.statusCode || e.message }`); - throw new Error(`Failed to WebFinger for ${acctLower}: ${ e.statusCode || e.message }`); - }); - const self = finger.links.find(link => link.rel != null && link.rel.toLowerCase() === 'self'); - if (!self) { - logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: self link not found`); - throw new Error('self link not found'); - } - return self; -} diff --git a/packages/backend/src/server/activitypub.ts b/packages/backend/src/server/activitypub.ts deleted file mode 100644 index cd5f917c4..000000000 --- a/packages/backend/src/server/activitypub.ts +++ /dev/null @@ -1,254 +0,0 @@ -import Router from '@koa/router'; -import json from 'koa-json-body'; -import httpSignature from '@peertube/http-signature'; - -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import renderKey from '@/remote/activitypub/renderer/key.js'; -import { renderPerson } from '@/remote/activitypub/renderer/person.js'; -import renderEmoji from '@/remote/activitypub/renderer/emoji.js'; -import Outbox, { packActivity } from './activitypub/outbox.js'; -import Followers from './activitypub/followers.js'; -import Following from './activitypub/following.js'; -import Featured from './activitypub/featured.js'; -import { inbox as processInbox } from '@/queue/index.js'; -import { isSelfHost } from '@/misc/convert-host.js'; -import { Notes, Users, Emojis, NoteReactions } from '@/models/index.js'; -import { ILocalUser, User } from '@/models/entities/user.js'; -import { In, IsNull, Not } from 'typeorm'; -import { renderLike } from '@/remote/activitypub/renderer/like.js'; -import { getUserKeypair } from '@/misc/keypair-store.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; - -// Init router -const router = new Router(); - -//#region Routing - -function inbox(ctx: Router.RouterContext) { - let signature; - - try { - signature = httpSignature.parseRequest(ctx.req, { 'headers': [] }); - } catch (e) { - ctx.status = 401; - return; - } - - processInbox(ctx.request.body, signature); - - ctx.status = 202; -} - -const ACTIVITY_JSON = 'application/activity+json; charset=utf-8'; -const LD_JSON = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"; charset=utf-8'; - -function isActivityPubReq(ctx: Router.RouterContext) { - ctx.response.vary('Accept'); - const accepted = ctx.accepts('html', ACTIVITY_JSON, LD_JSON); - return typeof accepted === 'string' && !accepted.match(/html/); -} - -export function setResponseType(ctx: Router.RouterContext) { - const accept = ctx.accepts(ACTIVITY_JSON, LD_JSON); - if (accept === LD_JSON) { - ctx.response.type = LD_JSON; - } else { - ctx.response.type = ACTIVITY_JSON; - } -} - -// inbox -router.post('/inbox', json(), inbox); -router.post('/users/:user/inbox', json(), inbox); - -// note -router.get('/notes/:note', async (ctx, next) => { - if (!isActivityPubReq(ctx)) return await next(); - - const note = await Notes.findOneBy({ - id: ctx.params.note, - visibility: In(['public' as const, 'home' as const]), - localOnly: false, - }); - - if (note == null) { - ctx.status = 404; - return; - } - - // リモートだったらリダイレクト - if (note.userHost != null) { - if (note.uri == null || isSelfHost(note.userHost)) { - ctx.status = 500; - return; - } - ctx.redirect(note.uri); - return; - } - - ctx.body = renderActivity(await renderNote(note, false)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}); - -// note activity -router.get('/notes/:note/activity', async ctx => { - const note = await Notes.findOneBy({ - id: ctx.params.note, - userHost: IsNull(), - visibility: In(['public' as const, 'home' as const]), - localOnly: false, - }); - - if (note == null) { - ctx.status = 404; - return; - } - - ctx.body = renderActivity(await packActivity(note)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}); - -// outbox -router.get('/users/:user/outbox', Outbox); - -// followers -router.get('/users/:user/followers', Followers); - -// following -router.get('/users/:user/following', Following); - -// featured -router.get('/users/:user/collections/featured', Featured); - -// publickey -router.get('/users/:user/publickey', async ctx => { - const userId = ctx.params.user; - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - }); - - if (user == null) { - ctx.status = 404; - return; - } - - const keypair = await getUserKeypair(user.id); - - if (Users.isLocalUser(user)) { - ctx.body = renderActivity(renderKey(user, keypair)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); - } else { - ctx.status = 400; - } -}); - -// user -async function userInfo(ctx: Router.RouterContext, user: User | null) { - if (user == null) { - ctx.status = 404; - return; - } - - ctx.body = renderActivity(await renderPerson(user as ILocalUser)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -} - -router.get('/users/:user', async (ctx, next) => { - if (!isActivityPubReq(ctx)) return await next(); - - const userId = ctx.params.user; - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - isSuspended: false, - }); - - await userInfo(ctx, user); -}); - -router.get('/@:user', async (ctx, next) => { - if (!isActivityPubReq(ctx)) return await next(); - - const user = await Users.findOneBy({ - usernameLower: ctx.params.user.toLowerCase(), - host: IsNull(), - isSuspended: false, - }); - - await userInfo(ctx, user); -}); -//#endregion - -// emoji -router.get('/emojis/:emoji', async ctx => { - const emoji = await Emojis.findOneBy({ - host: IsNull(), - name: ctx.params.emoji, - }); - - if (emoji == null) { - ctx.status = 404; - return; - } - - ctx.body = renderActivity(await renderEmoji(emoji)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}); - -// like -router.get('/likes/:like', async ctx => { - const reaction = await NoteReactions.findOneBy({ id: ctx.params.like }); - - if (reaction == null) { - ctx.status = 404; - return; - } - - const note = await Notes.findOneBy({ id: reaction.noteId }); - - if (note == null) { - ctx.status = 404; - return; - } - - ctx.body = renderActivity(await renderLike(reaction, note)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}); - -// follow -router.get('/follows/:follower/:followee', async ctx => { - // This may be used before the follow is completed, so we do not - // check if the following exists. - - const [follower, followee] = await Promise.all([ - Users.findOneBy({ - id: ctx.params.follower, - host: IsNull(), - }), - Users.findOneBy({ - id: ctx.params.followee, - host: Not(IsNull()), - }), - ]); - - if (follower == null || followee == null) { - ctx.status = 404; - return; - } - - ctx.body = renderActivity(renderFollow(follower, followee)); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}); - -export default router; diff --git a/packages/backend/src/server/activitypub/featured.ts b/packages/backend/src/server/activitypub/featured.ts deleted file mode 100644 index c03fd1049..000000000 --- a/packages/backend/src/server/activitypub/featured.ts +++ /dev/null @@ -1,41 +0,0 @@ -import Router from '@koa/router'; -import config from '@/config/index.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection.js'; -import { setResponseType } from '../activitypub.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import { Users, Notes, UserNotePinings } from '@/models/index.js'; -import { IsNull } from 'typeorm'; - -export default async (ctx: Router.RouterContext) => { - const userId = ctx.params.user; - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - }); - - if (user == null) { - ctx.status = 404; - return; - } - - const pinings = await UserNotePinings.find({ - where: { userId: user.id }, - order: { id: 'DESC' }, - }); - - const pinnedNotes = await Promise.all(pinings.map(pining => - Notes.findOneByOrFail({ id: pining.noteId }))); - - const renderedNotes = await Promise.all(pinnedNotes.map(note => renderNote(note))); - - const rendered = renderOrderedCollection( - `${config.url}/users/${userId}/collections/featured`, - renderedNotes.length, undefined, undefined, renderedNotes, - ); - - ctx.body = renderActivity(rendered); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); -}; diff --git a/packages/backend/src/server/activitypub/followers.ts b/packages/backend/src/server/activitypub/followers.ts deleted file mode 100644 index beb48713a..000000000 --- a/packages/backend/src/server/activitypub/followers.ts +++ /dev/null @@ -1,95 +0,0 @@ -import Router from '@koa/router'; -import { FindOptionsWhere, IsNull, LessThan } from 'typeorm'; -import config from '@/config/index.js'; -import * as url from '@/prelude/url.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection.js'; -import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page.js'; -import renderFollowUser from '@/remote/activitypub/renderer/follow-user.js'; -import { Users, Followings, UserProfiles } from '@/models/index.js'; -import { Following } from '@/models/entities/following.js'; -import { setResponseType } from '../activitypub.js'; - -export default async (ctx: Router.RouterContext) => { - const userId = ctx.params.user; - - const cursor = ctx.request.query.cursor; - if (cursor != null && typeof cursor !== 'string') { - ctx.status = 400; - return; - } - - const page = ctx.request.query.page === 'true'; - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - }); - - if (user == null) { - ctx.status = 404; - return; - } - - //#region Check ff visibility - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (profile.ffVisibility === 'private') { - ctx.status = 403; - ctx.set('Cache-Control', 'public, max-age=30'); - return; - } else if (profile.ffVisibility === 'followers') { - ctx.status = 403; - ctx.set('Cache-Control', 'public, max-age=30'); - return; - } - //#endregion - - const limit = 10; - const partOf = `${config.url}/users/${userId}/followers`; - - if (page) { - const query = { - followeeId: user.id, - } as FindOptionsWhere; - - // カーソルが指定されている場合 - if (cursor) { - query.id = LessThan(cursor); - } - - // Get followers - const followings = await Followings.find({ - where: query, - take: limit + 1, - order: { id: -1 }, - }); - - // 「次のページ」があるかどうか - const inStock = followings.length === limit + 1; - if (inStock) followings.pop(); - - const renderedFollowers = await Promise.all(followings.map(following => renderFollowUser(following.followerId))); - const rendered = renderOrderedCollectionPage( - `${partOf}?${url.query({ - page: 'true', - cursor, - })}`, - user.followersCount, renderedFollowers, partOf, - undefined, - inStock ? `${partOf}?${url.query({ - page: 'true', - cursor: followings[followings.length - 1].id, - })}` : undefined, - ); - - ctx.body = renderActivity(rendered); - setResponseType(ctx); - } else { - // index page - const rendered = renderOrderedCollection(partOf, user.followersCount, `${partOf}?page=true`); - ctx.body = renderActivity(rendered); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); - } -}; diff --git a/packages/backend/src/server/activitypub/following.ts b/packages/backend/src/server/activitypub/following.ts deleted file mode 100644 index 3a25a6316..000000000 --- a/packages/backend/src/server/activitypub/following.ts +++ /dev/null @@ -1,95 +0,0 @@ -import Router from '@koa/router'; -import { LessThan, IsNull, FindOptionsWhere } from 'typeorm'; -import config from '@/config/index.js'; -import * as url from '@/prelude/url.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection.js'; -import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page.js'; -import renderFollowUser from '@/remote/activitypub/renderer/follow-user.js'; -import { Users, Followings, UserProfiles } from '@/models/index.js'; -import { Following } from '@/models/entities/following.js'; -import { setResponseType } from '../activitypub.js'; - -export default async (ctx: Router.RouterContext) => { - const userId = ctx.params.user; - - const cursor = ctx.request.query.cursor; - if (cursor != null && typeof cursor !== 'string') { - ctx.status = 400; - return; - } - - const page = ctx.request.query.page === 'true'; - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - }); - - if (user == null) { - ctx.status = 404; - return; - } - - //#region Check ff visibility - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (profile.ffVisibility === 'private') { - ctx.status = 403; - ctx.set('Cache-Control', 'public, max-age=30'); - return; - } else if (profile.ffVisibility === 'followers') { - ctx.status = 403; - ctx.set('Cache-Control', 'public, max-age=30'); - return; - } - //#endregion - - const limit = 10; - const partOf = `${config.url}/users/${userId}/following`; - - if (page) { - const query = { - followerId: user.id, - } as FindOptionsWhere; - - // カーソルが指定されている場合 - if (cursor) { - query.id = LessThan(cursor); - } - - // Get followings - const followings = await Followings.find({ - where: query, - take: limit + 1, - order: { id: -1 }, - }); - - // 「次のページ」があるかどうか - const inStock = followings.length === limit + 1; - if (inStock) followings.pop(); - - const renderedFollowees = await Promise.all(followings.map(following => renderFollowUser(following.followeeId))); - const rendered = renderOrderedCollectionPage( - `${partOf}?${url.query({ - page: 'true', - cursor, - })}`, - user.followingCount, renderedFollowees, partOf, - undefined, - inStock ? `${partOf}?${url.query({ - page: 'true', - cursor: followings[followings.length - 1].id, - })}` : undefined, - ); - - ctx.body = renderActivity(rendered); - setResponseType(ctx); - } else { - // index page - const rendered = renderOrderedCollection(partOf, user.followingCount, `${partOf}?page=true`); - ctx.body = renderActivity(rendered); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); - } -}; diff --git a/packages/backend/src/server/activitypub/outbox.ts b/packages/backend/src/server/activitypub/outbox.ts deleted file mode 100644 index 7a2586998..000000000 --- a/packages/backend/src/server/activitypub/outbox.ts +++ /dev/null @@ -1,108 +0,0 @@ -import Router from '@koa/router'; -import { Brackets, IsNull } from 'typeorm'; -import config from '@/config/index.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection.js'; -import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import renderCreate from '@/remote/activitypub/renderer/create.js'; -import renderAnnounce from '@/remote/activitypub/renderer/announce.js'; -import { countIf } from '@/prelude/array.js'; -import * as url from '@/prelude/url.js'; -import { Users, Notes } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { makePaginationQuery } from '../api/common/make-pagination-query.js'; -import { setResponseType } from '../activitypub.js'; - -export default async (ctx: Router.RouterContext) => { - const userId = ctx.params.user; - - const sinceId = ctx.request.query.since_id; - if (sinceId != null && typeof sinceId !== 'string') { - ctx.status = 400; - return; - } - - const untilId = ctx.request.query.until_id; - if (untilId != null && typeof untilId !== 'string') { - ctx.status = 400; - return; - } - - const page = ctx.request.query.page === 'true'; - - if (countIf(x => x != null, [sinceId, untilId]) > 1) { - ctx.status = 400; - return; - } - - const user = await Users.findOneBy({ - id: userId, - host: IsNull(), - }); - - if (user == null) { - ctx.status = 404; - return; - } - - const limit = 20; - const partOf = `${config.url}/users/${userId}/outbox`; - - if (page) { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), sinceId, untilId) - .andWhere('note.userId = :userId', { userId: user.id }) - .andWhere(new Brackets(qb => { qb - .where('note.visibility = \'public\'') - .orWhere('note.visibility = \'home\''); - })) - .andWhere('note.localOnly = FALSE'); - - const notes = await query.take(limit).getMany(); - - if (sinceId) notes.reverse(); - - const activities = await Promise.all(notes.map(note => packActivity(note))); - const rendered = renderOrderedCollectionPage( - `${partOf}?${url.query({ - page: 'true', - since_id: sinceId, - until_id: untilId, - })}`, - user.notesCount, activities, partOf, - notes.length ? `${partOf}?${url.query({ - page: 'true', - since_id: notes[0].id, - })}` : undefined, - notes.length ? `${partOf}?${url.query({ - page: 'true', - until_id: notes[notes.length - 1].id, - })}` : undefined, - ); - - ctx.body = renderActivity(rendered); - setResponseType(ctx); - } else { - // index page - const rendered = renderOrderedCollection(partOf, user.notesCount, - `${partOf}?page=true`, - `${partOf}?page=true&since_id=000000000000000000000000`, - ); - ctx.body = renderActivity(rendered); - ctx.set('Cache-Control', 'public, max-age=180'); - setResponseType(ctx); - } -}; - -/** - * Pack Create or Announce Activity - * @param note Note - */ -export async function packActivity(note: Note): Promise { - if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length === 0)) { - const renote = await Notes.findOneByOrFail({ id: note.renoteId }); - return renderAnnounce(renote.uri ? renote.uri : `${config.url}/notes/${renote.id}`, note); - } - - return renderCreate(await renderNote(note, false), note); -} diff --git a/packages/backend/src/server/api/2fa.ts b/packages/backend/src/server/api/2fa.ts deleted file mode 100644 index 96b9316e4..000000000 --- a/packages/backend/src/server/api/2fa.ts +++ /dev/null @@ -1,422 +0,0 @@ -import * as crypto from 'node:crypto'; -import * as jsrsasign from 'jsrsasign'; -import config from '@/config/index.js'; - -const ECC_PRELUDE = Buffer.from([0x04]); -const NULL_BYTE = Buffer.from([0]); -const PEM_PRELUDE = Buffer.from( - '3059301306072a8648ce3d020106082a8648ce3d030107034200', - 'hex', -); - -// Android Safetynet attestations are signed with this cert: -const GSR2 = `-----BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE-----\n`; - -function base64URLDecode(source: string) { - return Buffer.from(source.replace(/\-/g, '+').replace(/_/g, '/'), 'base64'); -} - -function getCertSubject(certificate: string) { - const subjectCert = new jsrsasign.X509(); - subjectCert.readCertPEM(certificate); - - const subjectString = subjectCert.getSubjectString(); - const subjectFields = subjectString.slice(1).split('/'); - - const fields = {} as Record; - for (const field of subjectFields) { - const eqIndex = field.indexOf('='); - fields[field.substring(0, eqIndex)] = field.substring(eqIndex + 1); - } - - return fields; -} - -function verifyCertificateChain(certificates: string[]) { - let valid = true; - - for (let i = 0; i < certificates.length; i++) { - const Cert = certificates[i]; - const certificate = new jsrsasign.X509(); - certificate.readCertPEM(Cert); - - const CACert = i + 1 >= certificates.length ? Cert : certificates[i + 1]; - - const certStruct = jsrsasign.ASN1HEX.getTLVbyList(certificate.hex!, 0, [0]); - const algorithm = certificate.getSignatureAlgorithmField(); - const signatureHex = certificate.getSignatureValueHex(); - - // Verify against CA - const Signature = new jsrsasign.KJUR.crypto.Signature({ alg: algorithm }); - Signature.init(CACert); - Signature.updateHex(certStruct); - valid = valid && !!Signature.verify(signatureHex); // true if CA signed the certificate - } - - return valid; -} - -function PEMString(pemBuffer: Buffer, type = 'CERTIFICATE') { - if (pemBuffer.length === 65 && pemBuffer[0] === 0x04) { - pemBuffer = Buffer.concat([PEM_PRELUDE, pemBuffer], 91); - type = 'PUBLIC KEY'; - } - const cert = pemBuffer.toString('base64'); - - const keyParts = []; - const max = Math.ceil(cert.length / 64); - let start = 0; - for (let i = 0; i < max; i++) { - keyParts.push(cert.substring(start, start + 64)); - start += 64; - } - - return ( - `-----BEGIN ${type}-----\n` + - keyParts.join('\n') + - `\n-----END ${type}-----\n` - ); -} - -export function hash(data: Buffer) { - return crypto - .createHash('sha256') - .update(data) - .digest(); -} - -export function verifyLogin({ - publicKey, - authenticatorData, - clientDataJSON, - clientData, - signature, - challenge, -}: { - publicKey: Buffer, - authenticatorData: Buffer, - clientDataJSON: Buffer, - clientData: any, - signature: Buffer, - challenge: string -}) { - if (clientData.type !== 'webauthn.get') { - throw new Error('type is not webauthn.get'); - } - - if (hash(clientData.challenge).toString('hex') !== challenge) { - throw new Error('challenge mismatch'); - } - if (clientData.origin !== config.scheme + '://' + config.host) { - throw new Error('origin mismatch'); - } - - const verificationData = Buffer.concat( - [authenticatorData, hash(clientDataJSON)], - 32 + authenticatorData.length, - ); - - return crypto - .createVerify('SHA256') - .update(verificationData) - .verify(PEMString(publicKey), signature); -} - -export const procedures = { - none: { - verify({ publicKey }: { publicKey: Map }) { - const negTwo = publicKey.get(-2); - - if (!negTwo || negTwo.length !== 32) { - throw new Error('invalid or no -2 key given'); - } - const negThree = publicKey.get(-3); - if (!negThree || negThree.length !== 32) { - throw new Error('invalid or no -3 key given'); - } - - const publicKeyU2F = Buffer.concat( - [ECC_PRELUDE, negTwo, negThree], - 1 + 32 + 32, - ); - - return { - publicKey: publicKeyU2F, - valid: true, - }; - }, - }, - 'android-key': { - verify({ - attStmt, - authenticatorData, - clientDataHash, - publicKey, - rpIdHash, - credentialId, - }: { - attStmt: any, - authenticatorData: Buffer, - clientDataHash: Buffer, - publicKey: Map; - rpIdHash: Buffer, - credentialId: Buffer, - }) { - if (attStmt.alg !== -7) { - throw new Error('alg mismatch'); - } - - const verificationData = Buffer.concat([ - authenticatorData, - clientDataHash, - ]); - - const attCert: Buffer = attStmt.x5c[0]; - - const negTwo = publicKey.get(-2); - - if (!negTwo || negTwo.length !== 32) { - throw new Error('invalid or no -2 key given'); - } - const negThree = publicKey.get(-3); - if (!negThree || negThree.length !== 32) { - throw new Error('invalid or no -3 key given'); - } - - const publicKeyData = Buffer.concat( - [ECC_PRELUDE, negTwo, negThree], - 1 + 32 + 32, - ); - - if (!attCert.equals(publicKeyData)) { - throw new Error('public key mismatch'); - } - - const isValid = crypto - .createVerify('SHA256') - .update(verificationData) - .verify(PEMString(attCert), attStmt.sig); - - // TODO: Check 'attestationChallenge' field in extension of cert matches hash(clientDataJSON) - - return { - valid: isValid, - publicKey: publicKeyData, - }; - }, - }, - // what a stupid attestation - 'android-safetynet': { - verify({ - attStmt, - authenticatorData, - clientDataHash, - publicKey, - rpIdHash, - credentialId, - }: { - attStmt: any, - authenticatorData: Buffer, - clientDataHash: Buffer, - publicKey: Map; - rpIdHash: Buffer, - credentialId: Buffer, - }) { - const verificationData = hash( - Buffer.concat([authenticatorData, clientDataHash]), - ); - - const jwsParts = attStmt.response.toString('utf-8').split('.'); - - const header = JSON.parse(base64URLDecode(jwsParts[0]).toString('utf-8')); - const response = JSON.parse( - base64URLDecode(jwsParts[1]).toString('utf-8'), - ); - const signature = jwsParts[2]; - - if (!verificationData.equals(Buffer.from(response.nonce, 'base64'))) { - throw new Error('invalid nonce'); - } - - const certificateChain = header.x5c - .map((key: any) => PEMString(key)) - .concat([GSR2]); - - if (getCertSubject(certificateChain[0]).CN !== 'attest.android.com') { - throw new Error('invalid common name'); - } - - if (!verifyCertificateChain(certificateChain)) { - throw new Error('Invalid certificate chain!'); - } - - const signatureBase = Buffer.from( - jwsParts[0] + '.' + jwsParts[1], - 'utf-8', - ); - - const valid = crypto - .createVerify('sha256') - .update(signatureBase) - .verify(certificateChain[0], base64URLDecode(signature)); - - const negTwo = publicKey.get(-2); - - if (!negTwo || negTwo.length !== 32) { - throw new Error('invalid or no -2 key given'); - } - const negThree = publicKey.get(-3); - if (!negThree || negThree.length !== 32) { - throw new Error('invalid or no -3 key given'); - } - - const publicKeyData = Buffer.concat( - [ECC_PRELUDE, negTwo, negThree], - 1 + 32 + 32, - ); - return { - valid, - publicKey: publicKeyData, - }; - }, - }, - packed: { - verify({ - attStmt, - authenticatorData, - clientDataHash, - publicKey, - rpIdHash, - credentialId, - }: { - attStmt: any, - authenticatorData: Buffer, - clientDataHash: Buffer, - publicKey: Map; - rpIdHash: Buffer, - credentialId: Buffer, - }) { - const verificationData = Buffer.concat([ - authenticatorData, - clientDataHash, - ]); - - if (attStmt.x5c) { - const attCert = attStmt.x5c[0]; - - const validSignature = crypto - .createVerify('SHA256') - .update(verificationData) - .verify(PEMString(attCert), attStmt.sig); - - const negTwo = publicKey.get(-2); - - if (!negTwo || negTwo.length !== 32) { - throw new Error('invalid or no -2 key given'); - } - const negThree = publicKey.get(-3); - if (!negThree || negThree.length !== 32) { - throw new Error('invalid or no -3 key given'); - } - - const publicKeyData = Buffer.concat( - [ECC_PRELUDE, negTwo, negThree], - 1 + 32 + 32, - ); - - return { - valid: validSignature, - publicKey: publicKeyData, - }; - } else if (attStmt.ecdaaKeyId) { - // https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-ecdaa-algorithm-v2.0-id-20180227.html#ecdaa-verify-operation - throw new Error('ECDAA-Verify is not supported'); - } else { - if (attStmt.alg !== -7) throw new Error('alg mismatch'); - - throw new Error('self attestation is not supported'); - } - }, - }, - - 'fido-u2f': { - verify({ - attStmt, - authenticatorData, - clientDataHash, - publicKey, - rpIdHash, - credentialId, - }: { - attStmt: any, - authenticatorData: Buffer, - clientDataHash: Buffer, - publicKey: Map, - rpIdHash: Buffer, - credentialId: Buffer - }) { - const x5c: Buffer[] = attStmt.x5c; - if (x5c.length !== 1) { - throw new Error('x5c length does not match expectation'); - } - - const attCert = x5c[0]; - - // TODO: make sure attCert is an Elliptic Curve (EC) public key over the P-256 curve - - const negTwo: Buffer = publicKey.get(-2); - - if (!negTwo || negTwo.length !== 32) { - throw new Error('invalid or no -2 key given'); - } - const negThree: Buffer = publicKey.get(-3); - if (!negThree || negThree.length !== 32) { - throw new Error('invalid or no -3 key given'); - } - - const publicKeyU2F = Buffer.concat( - [ECC_PRELUDE, negTwo, negThree], - 1 + 32 + 32, - ); - - const verificationData = Buffer.concat([ - NULL_BYTE, - rpIdHash, - clientDataHash, - credentialId, - publicKeyU2F, - ]); - - const validSignature = crypto - .createVerify('SHA256') - .update(verificationData) - .verify(PEMString(attCert), attStmt.sig); - - return { - valid: validSignature, - publicKey: publicKeyU2F, - }; - }, - }, -}; diff --git a/packages/backend/src/server/api/api-handler.ts b/packages/backend/src/server/api/api-handler.ts deleted file mode 100644 index ec71ddd2c..000000000 --- a/packages/backend/src/server/api/api-handler.ts +++ /dev/null @@ -1,92 +0,0 @@ -import Koa from 'koa'; - -import { User } from '@/models/entities/user.js'; -import { UserIps } from '@/models/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { IEndpoint } from './endpoints.js'; -import authenticate, { AuthenticationError } from './authenticate.js'; -import call from './call.js'; -import { ApiError } from './error.js'; - -const userIpHistories = new Map>(); - -setInterval(() => { - userIpHistories.clear(); -}, 1000 * 60 * 60); - -export default (endpoint: IEndpoint, ctx: Koa.Context) => new Promise((res) => { - const body = ctx.is('multipart/form-data') - ? (ctx.request as any).body - : ctx.method === 'GET' - ? ctx.query - : ctx.request.body; - - const reply = (x?: any, y?: ApiError) => { - if (x == null) { - ctx.status = 204; - } else if (typeof x === 'number' && y) { - ctx.status = x; - ctx.body = { - error: { - message: y!.message, - code: y!.code, - id: y!.id, - kind: y!.kind, - ...(y!.info ? { info: y!.info } : {}), - }, - }; - } else { - // 文字列を返す場合は、JSON.stringify通さないとJSONと認識されない - ctx.body = typeof x === 'string' ? JSON.stringify(x) : x; - } - res(); - }; - - // Authentication - authenticate(body['i']).then(([user, app]) => { - // API invoking - call(endpoint.name, user, app, body, ctx).then((res: any) => { - if (ctx.method === 'GET' && endpoint.meta.cacheSec && !body['i'] && !user) { - ctx.set('Cache-Control', `public, max-age=${endpoint.meta.cacheSec}`); - } - reply(res); - }).catch((e: ApiError) => { - reply(e.httpStatusCode ? e.httpStatusCode : e.kind === 'client' ? 400 : 500, e); - }); - - // Log IP - if (user) { - fetchMeta().then(meta => { - if (!meta.enableIpLogging) return; - const ip = ctx.ip; - const ips = userIpHistories.get(user.id); - if (ips == null || !ips.has(ip)) { - if (ips == null) { - userIpHistories.set(user.id, new Set([ip])); - } else { - ips.add(ip); - } - - try { - UserIps.createQueryBuilder().insert().values({ - createdAt: new Date(), - userId: user.id, - ip: ip, - }).orIgnore(true).execute(); - } catch { - } - } - }); - } - }).catch(e => { - if (e instanceof AuthenticationError) { - reply(403, new ApiError({ - message: 'Authentication failed. Please ensure your token is correct.', - code: 'AUTHENTICATION_FAILED', - id: 'b0a7f5f8-dc2f-4171-b91f-de88ad238e14', - })); - } else { - reply(500, new ApiError()); - } - }); -}); diff --git a/packages/backend/src/server/api/authenticate.ts b/packages/backend/src/server/api/authenticate.ts deleted file mode 100644 index 65ccfcf55..000000000 --- a/packages/backend/src/server/api/authenticate.ts +++ /dev/null @@ -1,66 +0,0 @@ -import isNativeToken from './common/is-native-token.js'; -import { CacheableLocalUser, ILocalUser } from '@/models/entities/user.js'; -import { Users, AccessTokens, Apps } from '@/models/index.js'; -import { AccessToken } from '@/models/entities/access-token.js'; -import { Cache } from '@/misc/cache.js'; -import { App } from '@/models/entities/app.js'; -import { localUserByIdCache, localUserByNativeTokenCache } from '@/services/user-cache.js'; - -const appCache = new Cache(Infinity); - -export class AuthenticationError extends Error { - constructor(message: string) { - super(message); - this.name = 'AuthenticationError'; - } -} - -export default async (token: string | null): Promise<[CacheableLocalUser | null | undefined, AccessToken | null | undefined]> => { - if (token == null) { - return [null, null]; - } - - if (isNativeToken(token)) { - const user = await localUserByNativeTokenCache.fetch(token, - () => Users.findOneBy({ token }) as Promise); - - if (user == null) { - throw new AuthenticationError('user not found'); - } - - return [user, null]; - } else { - const accessToken = await AccessTokens.findOne({ - where: [{ - hash: token.toLowerCase(), // app - }, { - token: token, // miauth - }], - }); - - if (accessToken == null) { - throw new AuthenticationError('invalid signature'); - } - - AccessTokens.update(accessToken.id, { - lastUsedAt: new Date(), - }); - - const user = await localUserByIdCache.fetch(accessToken.userId, - () => Users.findOneBy({ - id: accessToken.userId, - }) as Promise); - - if (accessToken.appId) { - const app = await appCache.fetch(accessToken.appId, - () => Apps.findOneByOrFail({ id: accessToken.appId! })); - - return [user, { - id: accessToken.id, - permission: app.permission, - } as AccessToken]; - } else { - return [user, accessToken]; - } - } -}; diff --git a/packages/backend/src/server/api/call.ts b/packages/backend/src/server/api/call.ts deleted file mode 100644 index aa130459a..000000000 --- a/packages/backend/src/server/api/call.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { performance } from 'perf_hooks'; -import Koa from 'koa'; -import { CacheableLocalUser, User } from '@/models/entities/user.js'; -import { AccessToken } from '@/models/entities/access-token.js'; -import { getIpHash } from '@/misc/get-ip-hash.js'; -import { limiter } from './limiter.js'; -import endpoints, { IEndpointMeta } from './endpoints.js'; -import { ApiError } from './error.js'; -import { apiLogger } from './logger.js'; - -const accessDenied = { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', -}; - -export default async (endpoint: string, user: CacheableLocalUser | null | undefined, token: AccessToken | null | undefined, data: any, ctx?: Koa.Context) => { - const isSecure = user != null && token == null; - const isModerator = user != null && (user.isModerator || user.isAdmin); - - const ep = endpoints.find(e => e.name === endpoint); - - if (ep == null) { - throw new ApiError({ - message: 'No such endpoint.', - code: 'NO_SUCH_ENDPOINT', - id: 'f8080b67-5f9c-4eb7-8c18-7f1eeae8f709', - httpStatusCode: 404, - }); - } - - if (ep.meta.secure && !isSecure) { - throw new ApiError(accessDenied); - } - - if (ep.meta.limit) { - // koa will automatically load the `X-Forwarded-For` header if `proxy: true` is configured in the app. - let limitActor: string; - if (user) { - limitActor = user.id; - } else { - limitActor = getIpHash(ctx!.ip); - } - - const limit = Object.assign({}, ep.meta.limit); - - if (!limit.key) { - limit.key = ep.name; - } - - // Rate limit - await limiter(limit as IEndpointMeta['limit'] & { key: NonNullable }, limitActor).catch(e => { - throw new ApiError({ - message: 'Rate limit exceeded. Please try again later.', - code: 'RATE_LIMIT_EXCEEDED', - id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', - httpStatusCode: 429, - }); - }); - } - - if (ep.meta.requireCredential && user == null) { - throw new ApiError({ - message: 'Credential required.', - code: 'CREDENTIAL_REQUIRED', - id: '1384574d-a912-4b81-8601-c7b1c4085df1', - httpStatusCode: 401, - }); - } - - if (ep.meta.requireCredential && user!.isSuspended) { - throw new ApiError({ - message: 'Your account has been suspended.', - code: 'YOUR_ACCOUNT_SUSPENDED', - id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', - httpStatusCode: 403, - }); - } - - if (ep.meta.requireAdmin && !user!.isAdmin) { - throw new ApiError(accessDenied, { reason: 'You are not the admin.' }); - } - - if (ep.meta.requireModerator && !isModerator) { - throw new ApiError(accessDenied, { reason: 'You are not a moderator.' }); - } - - if (token && ep.meta.kind && !token.permission.some(p => p === ep.meta.kind)) { - throw new ApiError({ - message: 'Your app does not have the necessary permissions to use this endpoint.', - code: 'PERMISSION_DENIED', - id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', - }); - } - - // Cast non JSON input - if ((ep.meta.requireFile || ctx?.method === 'GET') && ep.params.properties) { - for (const k of Object.keys(ep.params.properties)) { - const param = ep.params.properties![k]; - if (['boolean', 'number', 'integer'].includes(param.type ?? '') && typeof data[k] === 'string') { - try { - data[k] = JSON.parse(data[k]); - } catch (e) { - throw new ApiError({ - message: 'Invalid param.', - code: 'INVALID_PARAM', - id: '0b5f1631-7c1a-41a6-b399-cce335f34d85', - }, { - param: k, - reason: `cannot cast to ${param.type}`, - }); - } - } - } - } - - // API invoking - const before = performance.now(); - return await ep.exec(data, user, token, ctx?.file, ctx?.ip, ctx?.headers).catch((e: Error) => { - if (e instanceof ApiError) { - throw e; - } else { - apiLogger.error(`Internal error occurred in ${ep.name}: ${e.message}`, { - ep: ep.name, - ps: data, - e: { - message: e.message, - code: e.name, - stack: e.stack, - }, - }); - throw new ApiError(null, { - e: { - message: e.message, - code: e.name, - stack: e.stack, - }, - }); - } - }).finally(() => { - const after = performance.now(); - const time = after - before; - if (time > 1000) { - apiLogger.warn(`SLOW API CALL DETECTED: ${ep.name} (${time}ms)`); - } - }); -}; diff --git a/packages/backend/src/server/api/common/generate-block-query.ts b/packages/backend/src/server/api/common/generate-block-query.ts deleted file mode 100644 index 60db1e731..000000000 --- a/packages/backend/src/server/api/common/generate-block-query.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { Blockings } from '@/models/index.js'; -import { Brackets, SelectQueryBuilder } from 'typeorm'; - -// ここでいうBlockedは被Blockedの意 -export function generateBlockedUserQuery(q: SelectQueryBuilder, me: { id: User['id'] }) { - const blockingQuery = Blockings.createQueryBuilder('blocking') - .select('blocking.blockerId') - .where('blocking.blockeeId = :blockeeId', { blockeeId: me.id }); - - // 投稿の作者にブロックされていない かつ - // 投稿の返信先の作者にブロックされていない かつ - // 投稿の引用元の作者にブロックされていない - q - .andWhere(`note.userId NOT IN (${ blockingQuery.getQuery() })`) - .andWhere(new Brackets(qb => { qb - .where(`note.replyUserId IS NULL`) - .orWhere(`note.replyUserId NOT IN (${ blockingQuery.getQuery() })`); - })) - .andWhere(new Brackets(qb => { qb - .where(`note.renoteUserId IS NULL`) - .orWhere(`note.renoteUserId NOT IN (${ blockingQuery.getQuery() })`); - })); - - q.setParameters(blockingQuery.getParameters()); -} - -export function generateBlockQueryForUsers(q: SelectQueryBuilder, me: { id: User['id'] }) { - const blockingQuery = Blockings.createQueryBuilder('blocking') - .select('blocking.blockeeId') - .where('blocking.blockerId = :blockerId', { blockerId: me.id }); - - const blockedQuery = Blockings.createQueryBuilder('blocking') - .select('blocking.blockerId') - .where('blocking.blockeeId = :blockeeId', { blockeeId: me.id }); - - q.andWhere(`user.id NOT IN (${ blockingQuery.getQuery() })`); - q.setParameters(blockingQuery.getParameters()); - - q.andWhere(`user.id NOT IN (${ blockedQuery.getQuery() })`); - q.setParameters(blockedQuery.getParameters()); -} diff --git a/packages/backend/src/server/api/common/generate-muted-note-query.ts b/packages/backend/src/server/api/common/generate-muted-note-query.ts deleted file mode 100644 index f544e334d..000000000 --- a/packages/backend/src/server/api/common/generate-muted-note-query.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { MutedNotes } from '@/models/index.js'; -import { SelectQueryBuilder } from 'typeorm'; - -export function generateMutedNoteQuery(q: SelectQueryBuilder, me: { id: User['id'] }) { - const mutedQuery = MutedNotes.createQueryBuilder('muted') - .select('muted.noteId') - .where('muted.userId = :userId', { userId: me.id }); - - q.andWhere(`note.id NOT IN (${ mutedQuery.getQuery() })`); - - q.setParameters(mutedQuery.getParameters()); -} diff --git a/packages/backend/src/server/api/common/generate-muted-note-thread-query.ts b/packages/backend/src/server/api/common/generate-muted-note-thread-query.ts deleted file mode 100644 index 7263ea2e6..000000000 --- a/packages/backend/src/server/api/common/generate-muted-note-thread-query.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { NoteThreadMutings } from '@/models/index.js'; -import { Brackets, SelectQueryBuilder } from 'typeorm'; - -export function generateMutedNoteThreadQuery(q: SelectQueryBuilder, me: { id: User['id'] }) { - const mutedQuery = NoteThreadMutings.createQueryBuilder('threadMuted') - .select('threadMuted.threadId') - .where('threadMuted.userId = :userId', { userId: me.id }); - - q.andWhere(`note.id NOT IN (${ mutedQuery.getQuery() })`); - q.andWhere(new Brackets(qb => { qb - .where(`note.threadId IS NULL`) - .orWhere(`note.threadId NOT IN (${ mutedQuery.getQuery() })`); - })); - - q.setParameters(mutedQuery.getParameters()); -} diff --git a/packages/backend/src/server/api/common/generate-muted-user-query.ts b/packages/backend/src/server/api/common/generate-muted-user-query.ts deleted file mode 100644 index 470ece1a6..000000000 --- a/packages/backend/src/server/api/common/generate-muted-user-query.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { SelectQueryBuilder, Brackets } from 'typeorm'; -import { User } from '@/models/entities/user.js'; -import { Mutings, UserProfiles } from '@/models/index.js'; - -export function generateMutedUserQuery(q: SelectQueryBuilder, me: { id: User['id'] }, exclude?: User) { - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: me.id }); - - if (exclude) { - mutingQuery.andWhere('muting.muteeId != :excludeId', { excludeId: exclude.id }); - } - - const mutingInstanceQuery = UserProfiles.createQueryBuilder('user_profile') - .select('user_profile.mutedInstances') - .where('user_profile.userId = :muterId', { muterId: me.id }); - - // 投稿の作者をミュートしていない かつ - // 投稿の返信先の作者をミュートしていない かつ - // 投稿の引用元の作者をミュートしていない - q - .andWhere(`note.userId NOT IN (${ mutingQuery.getQuery() })`) - .andWhere(new Brackets(qb => { qb - .where('note.replyUserId IS NULL') - .orWhere(`note.replyUserId NOT IN (${ mutingQuery.getQuery() })`); - })) - .andWhere(new Brackets(qb => { qb - .where('note.renoteUserId IS NULL') - .orWhere(`note.renoteUserId NOT IN (${ mutingQuery.getQuery() })`); - })) - // mute instances - .andWhere(new Brackets(qb => { qb - .andWhere('note.userHost IS NULL') - .orWhere(`NOT ((${ mutingInstanceQuery.getQuery() })::jsonb ? note.userHost)`); - })) - .andWhere(new Brackets(qb => { qb - .where('note.replyUserHost IS NULL') - .orWhere(`NOT ((${ mutingInstanceQuery.getQuery() })::jsonb ? note.replyUserHost)`); - })) - .andWhere(new Brackets(qb => { qb - .where('note.renoteUserHost IS NULL') - .orWhere(`NOT ((${ mutingInstanceQuery.getQuery() })::jsonb ? note.renoteUserHost)`); - })); - - q.setParameters(mutingQuery.getParameters()); - q.setParameters(mutingInstanceQuery.getParameters()); -} - -export function generateMutedUserQueryForUsers(q: SelectQueryBuilder, me: { id: User['id'] }) { - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: me.id }); - - q.andWhere(`user.id NOT IN (${ mutingQuery.getQuery() })`); - - q.setParameters(mutingQuery.getParameters()); -} diff --git a/packages/backend/src/server/api/common/generate-native-user-token.ts b/packages/backend/src/server/api/common/generate-native-user-token.ts deleted file mode 100644 index 5d8a4c537..000000000 --- a/packages/backend/src/server/api/common/generate-native-user-token.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { secureRndstr } from '@/misc/secure-rndstr.js'; - -export default () => secureRndstr(16, true); diff --git a/packages/backend/src/server/api/common/generate-visibility-query.ts b/packages/backend/src/server/api/common/generate-visibility-query.ts deleted file mode 100644 index b50b6812f..000000000 --- a/packages/backend/src/server/api/common/generate-visibility-query.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { Followings } from '@/models/index.js'; -import { Brackets, SelectQueryBuilder } from 'typeorm'; - -export function generateVisibilityQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { - // This code must always be synchronized with the checks in Notes.isVisibleForMe. - if (me == null) { - q.andWhere(new Brackets(qb => { qb - .where(`note.visibility = 'public'`) - .orWhere(`note.visibility = 'home'`); - })); - } else { - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :meId'); - - q.andWhere(new Brackets(qb => { qb - // 公開投稿である - .where(new Brackets(qb => { qb - .where(`note.visibility = 'public'`) - .orWhere(`note.visibility = 'home'`); - })) - // または 自分自身 - .orWhere('note.userId = :meId') - // または 自分宛て - .orWhere(':meId = ANY(note.visibleUserIds)') - .orWhere(':meId = ANY(note.mentions)') - .orWhere(new Brackets(qb => { qb - // または フォロワー宛ての投稿であり、 - .where(`note.visibility = 'followers'`) - .andWhere(new Brackets(qb => { qb - // 自分がフォロワーである - .where(`note.userId IN (${ followingQuery.getQuery() })`) - // または 自分の投稿へのリプライ - .orWhere('note.replyUserId = :meId'); - })); - })); - })); - - q.setParameters({ meId: me.id }); - } -} diff --git a/packages/backend/src/server/api/common/getters.ts b/packages/backend/src/server/api/common/getters.ts deleted file mode 100644 index 783ea9ef7..000000000 --- a/packages/backend/src/server/api/common/getters.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { Notes, Users } from '@/models/index.js'; - -/** - * Get note for API processing - */ -export async function getNote(noteId: Note['id']) { - const note = await Notes.findOneBy({ id: noteId }); - - if (note == null) { - throw new IdentifiableError('9725d0ce-ba28-4dde-95a7-2cbb2c15de24', 'No such note.'); - } - - return note; -} - -/** - * Get user for API processing - */ -export async function getUser(userId: User['id']) { - const user = await Users.findOneBy({ id: userId }); - - if (user == null) { - throw new IdentifiableError('15348ddd-432d-49c2-8a5a-8069753becff', 'No such user.'); - } - - return user; -} - -/** - * Get remote user for API processing - */ -export async function getRemoteUser(userId: User['id']) { - const user = await getUser(userId); - - if (!Users.isRemoteUser(user)) { - throw new Error('user is not a remote user'); - } - - return user; -} - -/** - * Get local user for API processing - */ -export async function getLocalUser(userId: User['id']) { - const user = await getUser(userId); - - if (!Users.isLocalUser(user)) { - throw new Error('user is not a local user'); - } - - return user; -} diff --git a/packages/backend/src/server/api/common/inject-promo.ts b/packages/backend/src/server/api/common/inject-promo.ts deleted file mode 100644 index b0da8118b..000000000 --- a/packages/backend/src/server/api/common/inject-promo.ts +++ /dev/null @@ -1,34 +0,0 @@ -import rndstr from 'rndstr'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; -import { PromoReads, PromoNotes, Notes, Users } from '@/models/index.js'; - -export async function injectPromo(timeline: Note[], user?: User | null) { - if (timeline.length < 5) return; - - // TODO: readやexpireフィルタはクエリ側でやる - - const reads = user ? await PromoReads.findBy({ - userId: user.id, - }) : []; - - let promos = await PromoNotes.find(); - - promos = promos.filter(n => n.expiresAt.getTime() > Date.now()); - promos = promos.filter(n => !reads.map(r => r.noteId).includes(n.noteId)); - - if (promos.length === 0) return; - - // Pick random promo - const promo = promos[Math.floor(Math.random() * promos.length)]; - - const note = await Notes.findOneByOrFail({ id: promo.noteId }); - - // Join - note.user = await Users.findOneByOrFail({ id: note.userId }); - - (note as any)._prId_ = rndstr('a-z0-9', 8); - - // Inject promo - timeline.splice(3, 0, note); -} diff --git a/packages/backend/src/server/api/common/read-messaging-message.ts b/packages/backend/src/server/api/common/read-messaging-message.ts deleted file mode 100644 index c4c18ffa0..000000000 --- a/packages/backend/src/server/api/common/read-messaging-message.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { publishMainStream, publishGroupMessagingStream } from '@/services/stream.js'; -import { publishMessagingStream } from '@/services/stream.js'; -import { publishMessagingIndexStream } from '@/services/stream.js'; -import { pushNotification } from '@/services/push-notification.js'; -import { User, IRemoteUser } from '@/models/entities/user.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { MessagingMessages, UserGroupJoinings, Users } from '@/models/index.js'; -import { In } from 'typeorm'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { toArray } from '@/prelude/array.js'; -import { renderReadActivity } from '@/remote/activitypub/renderer/read.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { deliver } from '@/queue/index.js'; -import orderedCollection from '@/remote/activitypub/renderer/ordered-collection.js'; - -/** - * Mark messages as read - */ -export async function readUserMessagingMessage( - userId: User['id'], - otherpartyId: User['id'], - messageIds: MessagingMessage['id'][] -) { - if (messageIds.length === 0) return; - - const messages = await MessagingMessages.findBy({ - id: In(messageIds), - }); - - for (const message of messages) { - if (message.recipientId !== userId) { - throw new IdentifiableError('e140a4bf-49ce-4fb6-b67c-b78dadf6b52f', 'Access denied (user).'); - } - } - - // Update documents - await MessagingMessages.update({ - id: In(messageIds), - userId: otherpartyId, - recipientId: userId, - isRead: false, - }, { - isRead: true, - }); - - // Publish event - publishMessagingStream(otherpartyId, userId, 'read', messageIds); - publishMessagingIndexStream(userId, 'read', messageIds); - - if (!await Users.getHasUnreadMessagingMessage(userId)) { - // 全ての(いままで未読だった)自分宛てのメッセージを(これで)読みましたよというイベントを発行 - publishMainStream(userId, 'readAllMessagingMessages'); - pushNotification(userId, 'readAllMessagingMessages', undefined); - } else { - // そのユーザーとのメッセージで未読がなければイベント発行 - const count = await MessagingMessages.count({ - where: { - userId: otherpartyId, - recipientId: userId, - isRead: false, - }, - take: 1 - }); - - if (!count) { - pushNotification(userId, 'readAllMessagingMessagesOfARoom', { userId: otherpartyId }); - } - } -} - -/** - * Mark messages as read - */ -export async function readGroupMessagingMessage( - userId: User['id'], - groupId: UserGroup['id'], - messageIds: MessagingMessage['id'][] -) { - if (messageIds.length === 0) return; - - // check joined - const joining = await UserGroupJoinings.findOneBy({ - userId: userId, - userGroupId: groupId, - }); - - if (joining == null) { - throw new IdentifiableError('930a270c-714a-46b2-b776-ad27276dc569', 'Access denied (group).'); - } - - const messages = await MessagingMessages.findBy({ - id: In(messageIds), - }); - - const reads: MessagingMessage['id'][] = []; - - for (const message of messages) { - if (message.userId === userId) continue; - if (message.reads.includes(userId)) continue; - - // Update document - await MessagingMessages.createQueryBuilder().update() - .set({ - reads: (() => `array_append("reads", '${joining.userId}')`) as any, - }) - .where('id = :id', { id: message.id }) - .execute(); - - reads.push(message.id); - } - - // Publish event - publishGroupMessagingStream(groupId, 'read', { - ids: reads, - userId: userId, - }); - publishMessagingIndexStream(userId, 'read', reads); - - if (!await Users.getHasUnreadMessagingMessage(userId)) { - // 全ての(いままで未読だった)自分宛てのメッセージを(これで)読みましたよというイベントを発行 - publishMainStream(userId, 'readAllMessagingMessages'); - pushNotification(userId, 'readAllMessagingMessages', undefined); - } else { - // そのグループにおいて未読がなければイベント発行 - const unreadExist = await MessagingMessages.createQueryBuilder('message') - .where(`message.groupId = :groupId`, { groupId: groupId }) - .andWhere('message.userId != :userId', { userId: userId }) - .andWhere('NOT (:userId = ANY(message.reads))', { userId: userId }) - .andWhere('message.createdAt > :joinedAt', { joinedAt: joining.createdAt }) // 自分が加入する前の会話については、未読扱いしない - .getOne().then(x => x != null); - - if (!unreadExist) { - pushNotification(userId, 'readAllMessagingMessagesOfARoom', { groupId }); - } - } -} - -export async function deliverReadActivity(user: { id: User['id']; host: null; }, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { - messages = toArray(messages).filter(x => x.uri); - const contents = messages.map(x => renderReadActivity(user, x)); - - if (contents.length > 1) { - const collection = orderedCollection(null, contents.length, undefined, undefined, contents); - deliver(user, renderActivity(collection), recipient.inbox); - } else { - for (const content of contents) { - deliver(user, renderActivity(content), recipient.inbox); - } - } -} diff --git a/packages/backend/src/server/api/common/read-notification.ts b/packages/backend/src/server/api/common/read-notification.ts deleted file mode 100644 index b0d38a9e3..000000000 --- a/packages/backend/src/server/api/common/read-notification.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { In } from 'typeorm'; -import { publishMainStream } from '@/services/stream.js'; -import { pushNotification } from '@/services/push-notification.js'; -import { User } from '@/models/entities/user.js'; -import { Notification } from '@/models/entities/notification.js'; -import { Notifications, Users } from '@/models/index.js'; - -export async function readNotification( - userId: User['id'], - notificationIds: Notification['id'][], -) { - if (notificationIds.length === 0) return; - - // Update documents - const result = await Notifications.update({ - notifieeId: userId, - id: In(notificationIds), - isRead: false, - }, { - isRead: true, - }); - - if (result.affected === 0) return; - - if (!await Users.getHasUnreadNotification(userId)) return postReadAllNotifications(userId); - else return postReadNotifications(userId, notificationIds); -} - -export async function readNotificationByQuery( - userId: User['id'], - query: Record, -) { - const notificationIds = await Notifications.findBy({ - ...query, - notifieeId: userId, - isRead: false, - }).then(notifications => notifications.map(notification => notification.id)); - - return readNotification(userId, notificationIds); -} - -function postReadAllNotifications(userId: User['id']) { - publishMainStream(userId, 'readAllNotifications'); - return pushNotification(userId, 'readAllNotifications', undefined); -} - -function postReadNotifications(userId: User['id'], notificationIds: Notification['id'][]) { - publishMainStream(userId, 'readNotifications', notificationIds); - return pushNotification(userId, 'readNotifications', { notificationIds }); -} diff --git a/packages/backend/src/server/api/common/signin.ts b/packages/backend/src/server/api/common/signin.ts deleted file mode 100644 index 038fd8d96..000000000 --- a/packages/backend/src/server/api/common/signin.ts +++ /dev/null @@ -1,44 +0,0 @@ -import Koa from 'koa'; - -import config from '@/config/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { Signins } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { publishMainStream } from '@/services/stream.js'; - -export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { - if (redirect) { - //#region Cookie - ctx.cookies.set('igi', user.token!, { - path: '/', - // SEE: https://github.com/koajs/koa/issues/974 - // When using a SSL proxy it should be configured to add the "X-Forwarded-Proto: https" header - secure: config.url.startsWith('https'), - httpOnly: false, - }); - //#endregion - - ctx.redirect(config.url); - } else { - ctx.body = { - id: user.id, - i: user.token, - }; - ctx.status = 200; - } - - (async () => { - // Append signin history - const record = await Signins.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - ip: ctx.ip, - headers: ctx.headers, - success: true, - }).then(x => Signins.findOneByOrFail(x.identifiers[0])); - - // Publish signin event - publishMainStream(user.id, 'signin', await Signins.pack(record)); - })(); -} diff --git a/packages/backend/src/server/api/common/signup.ts b/packages/backend/src/server/api/common/signup.ts deleted file mode 100644 index abc142472..000000000 --- a/packages/backend/src/server/api/common/signup.ts +++ /dev/null @@ -1,114 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { generateKeyPair } from 'node:crypto'; -import generateUserToken from './generate-native-user-token.js'; -import { User } from '@/models/entities/user.js'; -import { Users, UsedUsernames } from '@/models/index.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { IsNull } from 'typeorm'; -import { genId } from '@/misc/gen-id.js'; -import { toPunyNullable } from '@/misc/convert-host.js'; -import { UserKeypair } from '@/models/entities/user-keypair.js'; -import { usersChart } from '@/services/chart/index.js'; -import { UsedUsername } from '@/models/entities/used-username.js'; -import { db } from '@/db/postgre.js'; - -export async function signup(opts: { - username: User['username']; - password?: string | null; - passwordHash?: UserProfile['password'] | null; - host?: string | null; -}) { - const { username, password, passwordHash, host } = opts; - let hash = passwordHash; - - // Validate username - if (!Users.validateLocalUsername(username)) { - throw new Error('INVALID_USERNAME'); - } - - if (password != null && passwordHash == null) { - // Validate password - if (!Users.validatePassword(password)) { - throw new Error('INVALID_PASSWORD'); - } - - // Generate hash of password - const salt = await bcrypt.genSalt(8); - hash = await bcrypt.hash(password, salt); - } - - // Generate secret - const secret = generateUserToken(); - - // Check username duplication - if (await Users.findOneBy({ usernameLower: username.toLowerCase(), host: IsNull() })) { - throw new Error('DUPLICATED_USERNAME'); - } - - // Check deleted username duplication - if (await UsedUsernames.findOneBy({ username: username.toLowerCase() })) { - throw new Error('USED_USERNAME'); - } - - const keyPair = await new Promise((res, rej) => - generateKeyPair('rsa', { - modulusLength: 4096, - publicKeyEncoding: { - type: 'spki', - format: 'pem', - }, - privateKeyEncoding: { - type: 'pkcs8', - format: 'pem', - cipher: undefined, - passphrase: undefined, - }, - } as any, (err, publicKey, privateKey) => - err ? rej(err) : res([publicKey, privateKey]) - )); - - let account!: User; - - // Start transaction - await db.transaction(async transactionalEntityManager => { - const exist = await transactionalEntityManager.findOneBy(User, { - usernameLower: username.toLowerCase(), - host: IsNull(), - }); - - if (exist) throw new Error(' the username is already used'); - - account = await transactionalEntityManager.save(new User({ - id: genId(), - createdAt: new Date(), - username: username, - usernameLower: username.toLowerCase(), - host: toPunyNullable(host), - token: secret, - isAdmin: (await Users.countBy({ - host: IsNull(), - })) === 0, - })); - - await transactionalEntityManager.save(new UserKeypair({ - publicKey: keyPair[0], - privateKey: keyPair[1], - userId: account.id, - })); - - await transactionalEntityManager.save(new UserProfile({ - userId: account.id, - autoAcceptFollowed: true, - password: hash, - })); - - await transactionalEntityManager.save(new UsedUsername({ - createdAt: new Date(), - username: username.toLowerCase(), - })); - }); - - usersChart.update(account, true); - - return { account, secret }; -} diff --git a/packages/backend/src/server/api/define.ts b/packages/backend/src/server/api/define.ts deleted file mode 100644 index c1b56b8a8..000000000 --- a/packages/backend/src/server/api/define.ts +++ /dev/null @@ -1,59 +0,0 @@ -import * as fs from 'node:fs'; -import Ajv from 'ajv'; -import { CacheableLocalUser, ILocalUser } from '@/models/entities/user.js'; -import { Schema, SchemaType } from '@/misc/schema.js'; -import { AccessToken } from '@/models/entities/access-token.js'; -import { IEndpointMeta } from './endpoints.js'; -import { ApiError } from './error.js'; - -export type Response = Record | void; - -// TODO: paramsの型をT['params']のスキーマ定義から推論する -type executor = - (params: SchemaType, user: T['requireCredential'] extends true ? CacheableLocalUser : CacheableLocalUser | null, token: AccessToken | null, file?: any, cleanup?: () => any, ip?: string | null, headers?: Record | null) => - Promise>>; - -const ajv = new Ajv({ - useDefaults: true, -}); - -ajv.addFormat('misskey:id', /^[a-zA-Z0-9]+$/); - -export default function (meta: T, paramDef: Ps, cb: executor) - : (params: any, user: T['requireCredential'] extends true ? CacheableLocalUser : CacheableLocalUser | null, token: AccessToken | null, file?: any, ip?: string | null, headers?: Record | null) => Promise { - const validate = ajv.compile(paramDef); - - return (params: any, user: T['requireCredential'] extends true ? CacheableLocalUser : CacheableLocalUser | null, token: AccessToken | null, file?: any, ip?: string | null, headers?: Record | null) => { - let cleanup: undefined | (() => void) = undefined; - - if (meta.requireFile) { - cleanup = () => { - fs.unlink(file.path, () => {}); - }; - - if (file == null) return Promise.reject(new ApiError({ - message: 'File required.', - code: 'FILE_REQUIRED', - id: '4267801e-70d1-416a-b011-4ee502885d8b', - })); - } - - const valid = validate(params); - if (!valid) { - if (file) cleanup!(); - - const errors = validate.errors!; - const err = new ApiError({ - message: 'Invalid param.', - code: 'INVALID_PARAM', - id: '3d81ceae-475f-4600-b2a8-2bc116157532', - }, { - param: errors[0].schemaPath, - reason: errors[0].message, - }); - return Promise.reject(err); - } - - return cb(params as SchemaType, user, token, file, cleanup, ip, headers); - }; -} diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts deleted file mode 100644 index 4644f34d9..000000000 --- a/packages/backend/src/server/api/endpoints.ts +++ /dev/null @@ -1,744 +0,0 @@ -import { Schema } from '@/misc/schema.js'; - -import * as ep___admin_meta from './endpoints/admin/meta.js'; -import * as ep___admin_abuseUserReports from './endpoints/admin/abuse-user-reports.js'; -import * as ep___admin_accounts_create from './endpoints/admin/accounts/create.js'; -import * as ep___admin_accounts_delete from './endpoints/admin/accounts/delete.js'; -import * as ep___admin_ad_create from './endpoints/admin/ad/create.js'; -import * as ep___admin_ad_delete from './endpoints/admin/ad/delete.js'; -import * as ep___admin_ad_list from './endpoints/admin/ad/list.js'; -import * as ep___admin_ad_update from './endpoints/admin/ad/update.js'; -import * as ep___admin_announcements_create from './endpoints/admin/announcements/create.js'; -import * as ep___admin_announcements_delete from './endpoints/admin/announcements/delete.js'; -import * as ep___admin_announcements_list from './endpoints/admin/announcements/list.js'; -import * as ep___admin_announcements_update from './endpoints/admin/announcements/update.js'; -import * as ep___admin_deleteAllFilesOfAUser from './endpoints/admin/delete-all-files-of-a-user.js'; -import * as ep___admin_drive_cleanRemoteFiles from './endpoints/admin/drive/clean-remote-files.js'; -import * as ep___admin_drive_cleanup from './endpoints/admin/drive/cleanup.js'; -import * as ep___admin_drive_files from './endpoints/admin/drive/files.js'; -import * as ep___admin_drive_showFile from './endpoints/admin/drive/show-file.js'; -import * as ep___admin_emoji_addAliasesBulk from './endpoints/admin/emoji/add-aliases-bulk.js'; -import * as ep___admin_emoji_add from './endpoints/admin/emoji/add.js'; -import * as ep___admin_emoji_copy from './endpoints/admin/emoji/copy.js'; -import * as ep___admin_emoji_deleteBulk from './endpoints/admin/emoji/delete-bulk.js'; -import * as ep___admin_emoji_delete from './endpoints/admin/emoji/delete.js'; -import * as ep___admin_emoji_importZip from './endpoints/admin/emoji/import-zip.js'; -import * as ep___admin_emoji_listRemote from './endpoints/admin/emoji/list-remote.js'; -import * as ep___admin_emoji_list from './endpoints/admin/emoji/list.js'; -import * as ep___admin_emoji_removeAliasesBulk from './endpoints/admin/emoji/remove-aliases-bulk.js'; -import * as ep___admin_emoji_setAliasesBulk from './endpoints/admin/emoji/set-aliases-bulk.js'; -import * as ep___admin_emoji_setCategoryBulk from './endpoints/admin/emoji/set-category-bulk.js'; -import * as ep___admin_emoji_update from './endpoints/admin/emoji/update.js'; -import * as ep___admin_federation_deleteAllFiles from './endpoints/admin/federation/delete-all-files.js'; -import * as ep___admin_federation_refreshRemoteInstanceMetadata from './endpoints/admin/federation/refresh-remote-instance-metadata.js'; -import * as ep___admin_federation_removeAllFollowing from './endpoints/admin/federation/remove-all-following.js'; -import * as ep___admin_federation_updateInstance from './endpoints/admin/federation/update-instance.js'; -import * as ep___admin_getIndexStats from './endpoints/admin/get-index-stats.js'; -import * as ep___admin_getTableStats from './endpoints/admin/get-table-stats.js'; -import * as ep___admin_getUserIps from './endpoints/admin/get-user-ips.js'; -import * as ep___admin_invite from './endpoints/admin/invite.js'; -import * as ep___admin_moderators_add from './endpoints/admin/moderators/add.js'; -import * as ep___admin_moderators_remove from './endpoints/admin/moderators/remove.js'; -import * as ep___admin_promo_create from './endpoints/admin/promo/create.js'; -import * as ep___admin_queue_clear from './endpoints/admin/queue/clear.js'; -import * as ep___admin_queue_deliverDelayed from './endpoints/admin/queue/deliver-delayed.js'; -import * as ep___admin_queue_inboxDelayed from './endpoints/admin/queue/inbox-delayed.js'; -import * as ep___admin_queue_stats from './endpoints/admin/queue/stats.js'; -import * as ep___admin_relays_add from './endpoints/admin/relays/add.js'; -import * as ep___admin_relays_list from './endpoints/admin/relays/list.js'; -import * as ep___admin_relays_remove from './endpoints/admin/relays/remove.js'; -import * as ep___admin_resetPassword from './endpoints/admin/reset-password.js'; -import * as ep___admin_resolveAbuseUserReport from './endpoints/admin/resolve-abuse-user-report.js'; -import * as ep___admin_sendEmail from './endpoints/admin/send-email.js'; -import * as ep___admin_serverInfo from './endpoints/admin/server-info.js'; -import * as ep___admin_showModerationLogs from './endpoints/admin/show-moderation-logs.js'; -import * as ep___admin_showUser from './endpoints/admin/show-user.js'; -import * as ep___admin_showUsers from './endpoints/admin/show-users.js'; -import * as ep___admin_silenceUser from './endpoints/admin/silence-user.js'; -import * as ep___admin_suspendUser from './endpoints/admin/suspend-user.js'; -import * as ep___admin_unsilenceUser from './endpoints/admin/unsilence-user.js'; -import * as ep___admin_unsuspendUser from './endpoints/admin/unsuspend-user.js'; -import * as ep___admin_updateMeta from './endpoints/admin/update-meta.js'; -import * as ep___admin_vacuum from './endpoints/admin/vacuum.js'; -import * as ep___admin_deleteAccount from './endpoints/admin/delete-account.js'; -import * as ep___admin_updateUserNote from './endpoints/admin/update-user-note.js'; -import * as ep___announcements from './endpoints/announcements.js'; -import * as ep___antennas_create from './endpoints/antennas/create.js'; -import * as ep___antennas_delete from './endpoints/antennas/delete.js'; -import * as ep___antennas_list from './endpoints/antennas/list.js'; -import * as ep___antennas_notes from './endpoints/antennas/notes.js'; -import * as ep___antennas_show from './endpoints/antennas/show.js'; -import * as ep___antennas_update from './endpoints/antennas/update.js'; -import * as ep___ap_get from './endpoints/ap/get.js'; -import * as ep___ap_show from './endpoints/ap/show.js'; -import * as ep___app_create from './endpoints/app/create.js'; -import * as ep___app_show from './endpoints/app/show.js'; -import * as ep___auth_accept from './endpoints/auth/accept.js'; -import * as ep___auth_session_generate from './endpoints/auth/session/generate.js'; -import * as ep___auth_session_show from './endpoints/auth/session/show.js'; -import * as ep___auth_session_userkey from './endpoints/auth/session/userkey.js'; -import * as ep___blocking_create from './endpoints/blocking/create.js'; -import * as ep___blocking_delete from './endpoints/blocking/delete.js'; -import * as ep___blocking_list from './endpoints/blocking/list.js'; -import * as ep___channels_create from './endpoints/channels/create.js'; -import * as ep___channels_featured from './endpoints/channels/featured.js'; -import * as ep___channels_follow from './endpoints/channels/follow.js'; -import * as ep___channels_followed from './endpoints/channels/followed.js'; -import * as ep___channels_owned from './endpoints/channels/owned.js'; -import * as ep___channels_show from './endpoints/channels/show.js'; -import * as ep___channels_timeline from './endpoints/channels/timeline.js'; -import * as ep___channels_unfollow from './endpoints/channels/unfollow.js'; -import * as ep___channels_update from './endpoints/channels/update.js'; -import * as ep___charts_activeUsers from './endpoints/charts/active-users.js'; -import * as ep___charts_apRequest from './endpoints/charts/ap-request.js'; -import * as ep___charts_drive from './endpoints/charts/drive.js'; -import * as ep___charts_federation from './endpoints/charts/federation.js'; -import * as ep___charts_hashtag from './endpoints/charts/hashtag.js'; -import * as ep___charts_instance from './endpoints/charts/instance.js'; -import * as ep___charts_notes from './endpoints/charts/notes.js'; -import * as ep___charts_user_drive from './endpoints/charts/user/drive.js'; -import * as ep___charts_user_following from './endpoints/charts/user/following.js'; -import * as ep___charts_user_notes from './endpoints/charts/user/notes.js'; -import * as ep___charts_user_reactions from './endpoints/charts/user/reactions.js'; -import * as ep___charts_users from './endpoints/charts/users.js'; -import * as ep___clips_addNote from './endpoints/clips/add-note.js'; -import * as ep___clips_removeNote from './endpoints/clips/remove-note.js'; -import * as ep___clips_create from './endpoints/clips/create.js'; -import * as ep___clips_delete from './endpoints/clips/delete.js'; -import * as ep___clips_list from './endpoints/clips/list.js'; -import * as ep___clips_notes from './endpoints/clips/notes.js'; -import * as ep___clips_show from './endpoints/clips/show.js'; -import * as ep___clips_update from './endpoints/clips/update.js'; -import * as ep___drive from './endpoints/drive.js'; -import * as ep___drive_files from './endpoints/drive/files.js'; -import * as ep___drive_files_attachedNotes from './endpoints/drive/files/attached-notes.js'; -import * as ep___drive_files_checkExistence from './endpoints/drive/files/check-existence.js'; -import * as ep___drive_files_create from './endpoints/drive/files/create.js'; -import * as ep___drive_files_delete from './endpoints/drive/files/delete.js'; -import * as ep___drive_files_findByHash from './endpoints/drive/files/find-by-hash.js'; -import * as ep___drive_files_find from './endpoints/drive/files/find.js'; -import * as ep___drive_files_show from './endpoints/drive/files/show.js'; -import * as ep___drive_files_update from './endpoints/drive/files/update.js'; -import * as ep___drive_files_uploadFromUrl from './endpoints/drive/files/upload-from-url.js'; -import * as ep___drive_folders from './endpoints/drive/folders.js'; -import * as ep___drive_folders_create from './endpoints/drive/folders/create.js'; -import * as ep___drive_folders_delete from './endpoints/drive/folders/delete.js'; -import * as ep___drive_folders_find from './endpoints/drive/folders/find.js'; -import * as ep___drive_folders_show from './endpoints/drive/folders/show.js'; -import * as ep___drive_folders_update from './endpoints/drive/folders/update.js'; -import * as ep___drive_stream from './endpoints/drive/stream.js'; -import * as ep___emailAddress_available from './endpoints/email-address/available.js'; -import * as ep___endpoint from './endpoints/endpoint.js'; -import * as ep___endpoints from './endpoints/endpoints.js'; -import * as ep___exportCustomEmojis from './endpoints/export-custom-emojis.js'; -import * as ep___federation_followers from './endpoints/federation/followers.js'; -import * as ep___federation_following from './endpoints/federation/following.js'; -import * as ep___federation_instances from './endpoints/federation/instances.js'; -import * as ep___federation_showInstance from './endpoints/federation/show-instance.js'; -import * as ep___federation_updateRemoteUser from './endpoints/federation/update-remote-user.js'; -import * as ep___federation_users from './endpoints/federation/users.js'; -import * as ep___federation_stats from './endpoints/federation/stats.js'; -import * as ep___following_create from './endpoints/following/create.js'; -import * as ep___following_delete from './endpoints/following/delete.js'; -import * as ep___following_invalidate from './endpoints/following/invalidate.js'; -import * as ep___following_requests_accept from './endpoints/following/requests/accept.js'; -import * as ep___following_requests_cancel from './endpoints/following/requests/cancel.js'; -import * as ep___following_requests_list from './endpoints/following/requests/list.js'; -import * as ep___following_requests_reject from './endpoints/following/requests/reject.js'; -import * as ep___gallery_featured from './endpoints/gallery/featured.js'; -import * as ep___gallery_popular from './endpoints/gallery/popular.js'; -import * as ep___gallery_posts from './endpoints/gallery/posts.js'; -import * as ep___gallery_posts_create from './endpoints/gallery/posts/create.js'; -import * as ep___gallery_posts_delete from './endpoints/gallery/posts/delete.js'; -import * as ep___gallery_posts_like from './endpoints/gallery/posts/like.js'; -import * as ep___gallery_posts_show from './endpoints/gallery/posts/show.js'; -import * as ep___gallery_posts_unlike from './endpoints/gallery/posts/unlike.js'; -import * as ep___gallery_posts_update from './endpoints/gallery/posts/update.js'; -import * as ep___getOnlineUsersCount from './endpoints/get-online-users-count.js'; -import * as ep___hashtags_list from './endpoints/hashtags/list.js'; -import * as ep___hashtags_search from './endpoints/hashtags/search.js'; -import * as ep___hashtags_show from './endpoints/hashtags/show.js'; -import * as ep___hashtags_trend from './endpoints/hashtags/trend.js'; -import * as ep___hashtags_users from './endpoints/hashtags/users.js'; -import * as ep___i from './endpoints/i.js'; -import * as ep___i_2fa_done from './endpoints/i/2fa/done.js'; -import * as ep___i_2fa_keyDone from './endpoints/i/2fa/key-done.js'; -import * as ep___i_2fa_passwordLess from './endpoints/i/2fa/password-less.js'; -import * as ep___i_2fa_registerKey from './endpoints/i/2fa/register-key.js'; -import * as ep___i_2fa_register from './endpoints/i/2fa/register.js'; -import * as ep___i_2fa_removeKey from './endpoints/i/2fa/remove-key.js'; -import * as ep___i_2fa_unregister from './endpoints/i/2fa/unregister.js'; -import * as ep___i_apps from './endpoints/i/apps.js'; -import * as ep___i_authorizedApps from './endpoints/i/authorized-apps.js'; -import * as ep___i_changePassword from './endpoints/i/change-password.js'; -import * as ep___i_deleteAccount from './endpoints/i/delete-account.js'; -import * as ep___i_exportBlocking from './endpoints/i/export-blocking.js'; -import * as ep___i_exportFollowing from './endpoints/i/export-following.js'; -import * as ep___i_exportMute from './endpoints/i/export-mute.js'; -import * as ep___i_exportNotes from './endpoints/i/export-notes.js'; -import * as ep___i_exportUserLists from './endpoints/i/export-user-lists.js'; -import * as ep___i_favorites from './endpoints/i/favorites.js'; -import * as ep___i_gallery_likes from './endpoints/i/gallery/likes.js'; -import * as ep___i_gallery_posts from './endpoints/i/gallery/posts.js'; -import * as ep___i_getWordMutedNotesCount from './endpoints/i/get-word-muted-notes-count.js'; -import * as ep___i_importBlocking from './endpoints/i/import-blocking.js'; -import * as ep___i_importFollowing from './endpoints/i/import-following.js'; -import * as ep___i_importMuting from './endpoints/i/import-muting.js'; -import * as ep___i_importUserLists from './endpoints/i/import-user-lists.js'; -import * as ep___i_notifications from './endpoints/i/notifications.js'; -import * as ep___i_pageLikes from './endpoints/i/page-likes.js'; -import * as ep___i_pages from './endpoints/i/pages.js'; -import * as ep___i_pin from './endpoints/i/pin.js'; -import * as ep___i_readAllMessagingMessages from './endpoints/i/read-all-messaging-messages.js'; -import * as ep___i_readAllUnreadNotes from './endpoints/i/read-all-unread-notes.js'; -import * as ep___i_readAnnouncement from './endpoints/i/read-announcement.js'; -import * as ep___i_regenerateToken from './endpoints/i/regenerate-token.js'; -import * as ep___i_registry_getAll from './endpoints/i/registry/get-all.js'; -import * as ep___i_registry_getDetail from './endpoints/i/registry/get-detail.js'; -import * as ep___i_registry_get from './endpoints/i/registry/get.js'; -import * as ep___i_registry_keysWithType from './endpoints/i/registry/keys-with-type.js'; -import * as ep___i_registry_keys from './endpoints/i/registry/keys.js'; -import * as ep___i_registry_remove from './endpoints/i/registry/remove.js'; -import * as ep___i_registry_scopes from './endpoints/i/registry/scopes.js'; -import * as ep___i_registry_set from './endpoints/i/registry/set.js'; -import * as ep___i_revokeToken from './endpoints/i/revoke-token.js'; -import * as ep___i_signinHistory from './endpoints/i/signin-history.js'; -import * as ep___i_unpin from './endpoints/i/unpin.js'; -import * as ep___i_updateEmail from './endpoints/i/update-email.js'; -import * as ep___i_update from './endpoints/i/update.js'; -import * as ep___i_userGroupInvites from './endpoints/i/user-group-invites.js'; -import * as ep___i_webhooks_create from './endpoints/i/webhooks/create.js'; -import * as ep___i_webhooks_show from './endpoints/i/webhooks/show.js'; -import * as ep___i_webhooks_list from './endpoints/i/webhooks/list.js'; -import * as ep___i_webhooks_update from './endpoints/i/webhooks/update.js'; -import * as ep___i_webhooks_delete from './endpoints/i/webhooks/delete.js'; -import * as ep___messaging_history from './endpoints/messaging/history.js'; -import * as ep___messaging_messages from './endpoints/messaging/messages.js'; -import * as ep___messaging_messages_create from './endpoints/messaging/messages/create.js'; -import * as ep___messaging_messages_delete from './endpoints/messaging/messages/delete.js'; -import * as ep___messaging_messages_read from './endpoints/messaging/messages/read.js'; -import * as ep___meta from './endpoints/meta.js'; -import * as ep___miauth_genToken from './endpoints/miauth/gen-token.js'; -import * as ep___mute_create from './endpoints/mute/create.js'; -import * as ep___mute_delete from './endpoints/mute/delete.js'; -import * as ep___mute_list from './endpoints/mute/list.js'; -import * as ep___my_apps from './endpoints/my/apps.js'; -import * as ep___notes from './endpoints/notes.js'; -import * as ep___notes_children from './endpoints/notes/children.js'; -import * as ep___notes_clips from './endpoints/notes/clips.js'; -import * as ep___notes_conversation from './endpoints/notes/conversation.js'; -import * as ep___notes_create from './endpoints/notes/create.js'; -import * as ep___notes_delete from './endpoints/notes/delete.js'; -import * as ep___notes_favorites_create from './endpoints/notes/favorites/create.js'; -import * as ep___notes_favorites_delete from './endpoints/notes/favorites/delete.js'; -import * as ep___notes_featured from './endpoints/notes/featured.js'; -import * as ep___notes_globalTimeline from './endpoints/notes/global-timeline.js'; -import * as ep___notes_hybridTimeline from './endpoints/notes/hybrid-timeline.js'; -import * as ep___notes_localTimeline from './endpoints/notes/local-timeline.js'; -import * as ep___notes_mentions from './endpoints/notes/mentions.js'; -import * as ep___notes_polls_recommendation from './endpoints/notes/polls/recommendation.js'; -import * as ep___notes_polls_vote from './endpoints/notes/polls/vote.js'; -import * as ep___notes_reactions from './endpoints/notes/reactions.js'; -import * as ep___notes_reactions_create from './endpoints/notes/reactions/create.js'; -import * as ep___notes_reactions_delete from './endpoints/notes/reactions/delete.js'; -import * as ep___notes_renotes from './endpoints/notes/renotes.js'; -import * as ep___notes_replies from './endpoints/notes/replies.js'; -import * as ep___notes_searchByTag from './endpoints/notes/search-by-tag.js'; -import * as ep___notes_search from './endpoints/notes/search.js'; -import * as ep___notes_show from './endpoints/notes/show.js'; -import * as ep___notes_state from './endpoints/notes/state.js'; -import * as ep___notes_threadMuting_create from './endpoints/notes/thread-muting/create.js'; -import * as ep___notes_threadMuting_delete from './endpoints/notes/thread-muting/delete.js'; -import * as ep___notes_timeline from './endpoints/notes/timeline.js'; -import * as ep___notes_translate from './endpoints/notes/translate.js'; -import * as ep___notes_unrenote from './endpoints/notes/unrenote.js'; -import * as ep___notes_userListTimeline from './endpoints/notes/user-list-timeline.js'; -import * as ep___notes_watching_create from './endpoints/notes/watching/create.js'; -import * as ep___notes_watching_delete from './endpoints/notes/watching/delete.js'; -import * as ep___notifications_create from './endpoints/notifications/create.js'; -import * as ep___notifications_markAllAsRead from './endpoints/notifications/mark-all-as-read.js'; -import * as ep___notifications_read from './endpoints/notifications/read.js'; -import * as ep___pagePush from './endpoints/page-push.js'; -import * as ep___pages_create from './endpoints/pages/create.js'; -import * as ep___pages_delete from './endpoints/pages/delete.js'; -import * as ep___pages_featured from './endpoints/pages/featured.js'; -import * as ep___pages_like from './endpoints/pages/like.js'; -import * as ep___pages_show from './endpoints/pages/show.js'; -import * as ep___pages_unlike from './endpoints/pages/unlike.js'; -import * as ep___pages_update from './endpoints/pages/update.js'; -import * as ep___ping from './endpoints/ping.js'; -import * as ep___pinnedUsers from './endpoints/pinned-users.js'; -import * as ep___promo_read from './endpoints/promo/read.js'; -import * as ep___requestResetPassword from './endpoints/request-reset-password.js'; -import * as ep___resetDb from './endpoints/reset-db.js'; -import * as ep___resetPassword from './endpoints/reset-password.js'; -import * as ep___serverInfo from './endpoints/server-info.js'; -import * as ep___stats from './endpoints/stats.js'; -import * as ep___sw_register from './endpoints/sw/register.js'; -import * as ep___sw_unregister from './endpoints/sw/unregister.js'; -import * as ep___test from './endpoints/test.js'; -import * as ep___username_available from './endpoints/username/available.js'; -import * as ep___users from './endpoints/users.js'; -import * as ep___users_clips from './endpoints/users/clips.js'; -import * as ep___users_followers from './endpoints/users/followers.js'; -import * as ep___users_following from './endpoints/users/following.js'; -import * as ep___users_gallery_posts from './endpoints/users/gallery/posts.js'; -import * as ep___users_getFrequentlyRepliedUsers from './endpoints/users/get-frequently-replied-users.js'; -import * as ep___users_groups_create from './endpoints/users/groups/create.js'; -import * as ep___users_groups_delete from './endpoints/users/groups/delete.js'; -import * as ep___users_groups_invitations_accept from './endpoints/users/groups/invitations/accept.js'; -import * as ep___users_groups_invitations_reject from './endpoints/users/groups/invitations/reject.js'; -import * as ep___users_groups_invite from './endpoints/users/groups/invite.js'; -import * as ep___users_groups_joined from './endpoints/users/groups/joined.js'; -import * as ep___users_groups_leave from './endpoints/users/groups/leave.js'; -import * as ep___users_groups_owned from './endpoints/users/groups/owned.js'; -import * as ep___users_groups_pull from './endpoints/users/groups/pull.js'; -import * as ep___users_groups_show from './endpoints/users/groups/show.js'; -import * as ep___users_groups_transfer from './endpoints/users/groups/transfer.js'; -import * as ep___users_groups_update from './endpoints/users/groups/update.js'; -import * as ep___users_lists_create from './endpoints/users/lists/create.js'; -import * as ep___users_lists_delete from './endpoints/users/lists/delete.js'; -import * as ep___users_lists_list from './endpoints/users/lists/list.js'; -import * as ep___users_lists_pull from './endpoints/users/lists/pull.js'; -import * as ep___users_lists_push from './endpoints/users/lists/push.js'; -import * as ep___users_lists_show from './endpoints/users/lists/show.js'; -import * as ep___users_lists_update from './endpoints/users/lists/update.js'; -import * as ep___users_notes from './endpoints/users/notes.js'; -import * as ep___users_pages from './endpoints/users/pages.js'; -import * as ep___users_reactions from './endpoints/users/reactions.js'; -import * as ep___users_recommendation from './endpoints/users/recommendation.js'; -import * as ep___users_relation from './endpoints/users/relation.js'; -import * as ep___users_reportAbuse from './endpoints/users/report-abuse.js'; -import * as ep___users_searchByUsernameAndHost from './endpoints/users/search-by-username-and-host.js'; -import * as ep___users_search from './endpoints/users/search.js'; -import * as ep___users_show from './endpoints/users/show.js'; -import * as ep___users_stats from './endpoints/users/stats.js'; -import * as ep___fetchRss from './endpoints/fetch-rss.js'; -import * as ep___admin_driveCapOverride from './endpoints/admin/drive-capacity-override.js'; - -const eps = [ - ['admin/meta', ep___admin_meta], - ['admin/abuse-user-reports', ep___admin_abuseUserReports], - ['admin/accounts/create', ep___admin_accounts_create], - ['admin/accounts/delete', ep___admin_accounts_delete], - ['admin/ad/create', ep___admin_ad_create], - ['admin/ad/delete', ep___admin_ad_delete], - ['admin/ad/list', ep___admin_ad_list], - ['admin/ad/update', ep___admin_ad_update], - ['admin/announcements/create', ep___admin_announcements_create], - ['admin/announcements/delete', ep___admin_announcements_delete], - ['admin/announcements/list', ep___admin_announcements_list], - ['admin/announcements/update', ep___admin_announcements_update], - ['admin/delete-all-files-of-a-user', ep___admin_deleteAllFilesOfAUser], - ['admin/drive/clean-remote-files', ep___admin_drive_cleanRemoteFiles], - ['admin/drive/cleanup', ep___admin_drive_cleanup], - ['admin/drive/files', ep___admin_drive_files], - ['admin/drive/show-file', ep___admin_drive_showFile], - ['admin/emoji/add-aliases-bulk', ep___admin_emoji_addAliasesBulk], - ['admin/emoji/add', ep___admin_emoji_add], - ['admin/emoji/copy', ep___admin_emoji_copy], - ['admin/emoji/delete-bulk', ep___admin_emoji_deleteBulk], - ['admin/emoji/delete', ep___admin_emoji_delete], - ['admin/emoji/import-zip', ep___admin_emoji_importZip], - ['admin/emoji/list-remote', ep___admin_emoji_listRemote], - ['admin/emoji/list', ep___admin_emoji_list], - ['admin/emoji/remove-aliases-bulk', ep___admin_emoji_removeAliasesBulk], - ['admin/emoji/set-aliases-bulk', ep___admin_emoji_setAliasesBulk], - ['admin/emoji/set-category-bulk', ep___admin_emoji_setCategoryBulk], - ['admin/emoji/update', ep___admin_emoji_update], - ['admin/federation/delete-all-files', ep___admin_federation_deleteAllFiles], - ['admin/federation/refresh-remote-instance-metadata', ep___admin_federation_refreshRemoteInstanceMetadata], - ['admin/federation/remove-all-following', ep___admin_federation_removeAllFollowing], - ['admin/federation/update-instance', ep___admin_federation_updateInstance], - ['admin/get-index-stats', ep___admin_getIndexStats], - ['admin/get-table-stats', ep___admin_getTableStats], - ['admin/get-user-ips', ep___admin_getUserIps], - ['admin/invite', ep___admin_invite], - ['admin/moderators/add', ep___admin_moderators_add], - ['admin/moderators/remove', ep___admin_moderators_remove], - ['admin/promo/create', ep___admin_promo_create], - ['admin/queue/clear', ep___admin_queue_clear], - ['admin/queue/deliver-delayed', ep___admin_queue_deliverDelayed], - ['admin/queue/inbox-delayed', ep___admin_queue_inboxDelayed], - ['admin/queue/stats', ep___admin_queue_stats], - ['admin/relays/add', ep___admin_relays_add], - ['admin/relays/list', ep___admin_relays_list], - ['admin/relays/remove', ep___admin_relays_remove], - ['admin/reset-password', ep___admin_resetPassword], - ['admin/resolve-abuse-user-report', ep___admin_resolveAbuseUserReport], - ['admin/send-email', ep___admin_sendEmail], - ['admin/server-info', ep___admin_serverInfo], - ['admin/show-moderation-logs', ep___admin_showModerationLogs], - ['admin/show-user', ep___admin_showUser], - ['admin/show-users', ep___admin_showUsers], - ['admin/silence-user', ep___admin_silenceUser], - ['admin/suspend-user', ep___admin_suspendUser], - ['admin/unsilence-user', ep___admin_unsilenceUser], - ['admin/unsuspend-user', ep___admin_unsuspendUser], - ['admin/update-meta', ep___admin_updateMeta], - ['admin/vacuum', ep___admin_vacuum], - ['admin/delete-account', ep___admin_deleteAccount], - ['admin/update-user-note', ep___admin_updateUserNote], - ['announcements', ep___announcements], - ['antennas/create', ep___antennas_create], - ['antennas/delete', ep___antennas_delete], - ['antennas/list', ep___antennas_list], - ['antennas/notes', ep___antennas_notes], - ['antennas/show', ep___antennas_show], - ['antennas/update', ep___antennas_update], - ['ap/get', ep___ap_get], - ['ap/show', ep___ap_show], - ['app/create', ep___app_create], - ['app/show', ep___app_show], - ['auth/accept', ep___auth_accept], - ['auth/session/generate', ep___auth_session_generate], - ['auth/session/show', ep___auth_session_show], - ['auth/session/userkey', ep___auth_session_userkey], - ['blocking/create', ep___blocking_create], - ['blocking/delete', ep___blocking_delete], - ['blocking/list', ep___blocking_list], - ['channels/create', ep___channels_create], - ['channels/featured', ep___channels_featured], - ['channels/follow', ep___channels_follow], - ['channels/followed', ep___channels_followed], - ['channels/owned', ep___channels_owned], - ['channels/show', ep___channels_show], - ['channels/timeline', ep___channels_timeline], - ['channels/unfollow', ep___channels_unfollow], - ['channels/update', ep___channels_update], - ['charts/active-users', ep___charts_activeUsers], - ['charts/ap-request', ep___charts_apRequest], - ['charts/drive', ep___charts_drive], - ['charts/federation', ep___charts_federation], - ['charts/hashtag', ep___charts_hashtag], - ['charts/instance', ep___charts_instance], - ['charts/notes', ep___charts_notes], - ['charts/user/drive', ep___charts_user_drive], - ['charts/user/following', ep___charts_user_following], - ['charts/user/notes', ep___charts_user_notes], - ['charts/user/reactions', ep___charts_user_reactions], - ['charts/users', ep___charts_users], - ['clips/add-note', ep___clips_addNote], - ['clips/remove-note', ep___clips_removeNote], - ['clips/create', ep___clips_create], - ['clips/delete', ep___clips_delete], - ['clips/list', ep___clips_list], - ['clips/notes', ep___clips_notes], - ['clips/show', ep___clips_show], - ['clips/update', ep___clips_update], - ['drive', ep___drive], - ['drive/files', ep___drive_files], - ['drive/files/attached-notes', ep___drive_files_attachedNotes], - ['drive/files/check-existence', ep___drive_files_checkExistence], - ['drive/files/create', ep___drive_files_create], - ['drive/files/delete', ep___drive_files_delete], - ['drive/files/find-by-hash', ep___drive_files_findByHash], - ['drive/files/find', ep___drive_files_find], - ['drive/files/show', ep___drive_files_show], - ['drive/files/update', ep___drive_files_update], - ['drive/files/upload-from-url', ep___drive_files_uploadFromUrl], - ['drive/folders', ep___drive_folders], - ['drive/folders/create', ep___drive_folders_create], - ['drive/folders/delete', ep___drive_folders_delete], - ['drive/folders/find', ep___drive_folders_find], - ['drive/folders/show', ep___drive_folders_show], - ['drive/folders/update', ep___drive_folders_update], - ['drive/stream', ep___drive_stream], - ['email-address/available', ep___emailAddress_available], - ['endpoint', ep___endpoint], - ['endpoints', ep___endpoints], - ['export-custom-emojis', ep___exportCustomEmojis], - ['federation/followers', ep___federation_followers], - ['federation/following', ep___federation_following], - ['federation/instances', ep___federation_instances], - ['federation/show-instance', ep___federation_showInstance], - ['federation/update-remote-user', ep___federation_updateRemoteUser], - ['federation/users', ep___federation_users], - ['federation/stats', ep___federation_stats], - ['following/create', ep___following_create], - ['following/delete', ep___following_delete], - ['following/invalidate', ep___following_invalidate], - ['following/requests/accept', ep___following_requests_accept], - ['following/requests/cancel', ep___following_requests_cancel], - ['following/requests/list', ep___following_requests_list], - ['following/requests/reject', ep___following_requests_reject], - ['gallery/featured', ep___gallery_featured], - ['gallery/popular', ep___gallery_popular], - ['gallery/posts', ep___gallery_posts], - ['gallery/posts/create', ep___gallery_posts_create], - ['gallery/posts/delete', ep___gallery_posts_delete], - ['gallery/posts/like', ep___gallery_posts_like], - ['gallery/posts/show', ep___gallery_posts_show], - ['gallery/posts/unlike', ep___gallery_posts_unlike], - ['gallery/posts/update', ep___gallery_posts_update], - ['get-online-users-count', ep___getOnlineUsersCount], - ['hashtags/list', ep___hashtags_list], - ['hashtags/search', ep___hashtags_search], - ['hashtags/show', ep___hashtags_show], - ['hashtags/trend', ep___hashtags_trend], - ['hashtags/users', ep___hashtags_users], - ['i', ep___i], - ['i/2fa/done', ep___i_2fa_done], - ['i/2fa/key-done', ep___i_2fa_keyDone], - ['i/2fa/password-less', ep___i_2fa_passwordLess], - ['i/2fa/register-key', ep___i_2fa_registerKey], - ['i/2fa/register', ep___i_2fa_register], - ['i/2fa/remove-key', ep___i_2fa_removeKey], - ['i/2fa/unregister', ep___i_2fa_unregister], - ['i/apps', ep___i_apps], - ['i/authorized-apps', ep___i_authorizedApps], - ['i/change-password', ep___i_changePassword], - ['i/delete-account', ep___i_deleteAccount], - ['i/export-blocking', ep___i_exportBlocking], - ['i/export-following', ep___i_exportFollowing], - ['i/export-mute', ep___i_exportMute], - ['i/export-notes', ep___i_exportNotes], - ['i/export-user-lists', ep___i_exportUserLists], - ['i/favorites', ep___i_favorites], - ['i/gallery/likes', ep___i_gallery_likes], - ['i/gallery/posts', ep___i_gallery_posts], - ['i/get-word-muted-notes-count', ep___i_getWordMutedNotesCount], - ['i/import-blocking', ep___i_importBlocking], - ['i/import-following', ep___i_importFollowing], - ['i/import-muting', ep___i_importMuting], - ['i/import-user-lists', ep___i_importUserLists], - ['i/notifications', ep___i_notifications], - ['i/page-likes', ep___i_pageLikes], - ['i/pages', ep___i_pages], - ['i/pin', ep___i_pin], - ['i/read-all-messaging-messages', ep___i_readAllMessagingMessages], - ['i/read-all-unread-notes', ep___i_readAllUnreadNotes], - ['i/read-announcement', ep___i_readAnnouncement], - ['i/regenerate-token', ep___i_regenerateToken], - ['i/registry/get-all', ep___i_registry_getAll], - ['i/registry/get-detail', ep___i_registry_getDetail], - ['i/registry/get', ep___i_registry_get], - ['i/registry/keys-with-type', ep___i_registry_keysWithType], - ['i/registry/keys', ep___i_registry_keys], - ['i/registry/remove', ep___i_registry_remove], - ['i/registry/scopes', ep___i_registry_scopes], - ['i/registry/set', ep___i_registry_set], - ['i/revoke-token', ep___i_revokeToken], - ['i/signin-history', ep___i_signinHistory], - ['i/unpin', ep___i_unpin], - ['i/update-email', ep___i_updateEmail], - ['i/update', ep___i_update], - ['i/user-group-invites', ep___i_userGroupInvites], - ['i/webhooks/create', ep___i_webhooks_create], - ['i/webhooks/list', ep___i_webhooks_list], - ['i/webhooks/show', ep___i_webhooks_show], - ['i/webhooks/update', ep___i_webhooks_update], - ['i/webhooks/delete', ep___i_webhooks_delete], - ['messaging/history', ep___messaging_history], - ['messaging/messages', ep___messaging_messages], - ['messaging/messages/create', ep___messaging_messages_create], - ['messaging/messages/delete', ep___messaging_messages_delete], - ['messaging/messages/read', ep___messaging_messages_read], - ['meta', ep___meta], - ['miauth/gen-token', ep___miauth_genToken], - ['mute/create', ep___mute_create], - ['mute/delete', ep___mute_delete], - ['mute/list', ep___mute_list], - ['my/apps', ep___my_apps], - ['notes', ep___notes], - ['notes/children', ep___notes_children], - ['notes/clips', ep___notes_clips], - ['notes/conversation', ep___notes_conversation], - ['notes/create', ep___notes_create], - ['notes/delete', ep___notes_delete], - ['notes/favorites/create', ep___notes_favorites_create], - ['notes/favorites/delete', ep___notes_favorites_delete], - ['notes/featured', ep___notes_featured], - ['notes/global-timeline', ep___notes_globalTimeline], - ['notes/hybrid-timeline', ep___notes_hybridTimeline], - ['notes/local-timeline', ep___notes_localTimeline], - ['notes/mentions', ep___notes_mentions], - ['notes/polls/recommendation', ep___notes_polls_recommendation], - ['notes/polls/vote', ep___notes_polls_vote], - ['notes/reactions', ep___notes_reactions], - ['notes/reactions/create', ep___notes_reactions_create], - ['notes/reactions/delete', ep___notes_reactions_delete], - ['notes/renotes', ep___notes_renotes], - ['notes/replies', ep___notes_replies], - ['notes/search-by-tag', ep___notes_searchByTag], - ['notes/search', ep___notes_search], - ['notes/show', ep___notes_show], - ['notes/state', ep___notes_state], - ['notes/thread-muting/create', ep___notes_threadMuting_create], - ['notes/thread-muting/delete', ep___notes_threadMuting_delete], - ['notes/timeline', ep___notes_timeline], - ['notes/translate', ep___notes_translate], - ['notes/unrenote', ep___notes_unrenote], - ['notes/user-list-timeline', ep___notes_userListTimeline], - ['notes/watching/create', ep___notes_watching_create], - ['notes/watching/delete', ep___notes_watching_delete], - ['notifications/create', ep___notifications_create], - ['notifications/mark-all-as-read', ep___notifications_markAllAsRead], - ['notifications/read', ep___notifications_read], - ['page-push', ep___pagePush], - ['pages/create', ep___pages_create], - ['pages/delete', ep___pages_delete], - ['pages/featured', ep___pages_featured], - ['pages/like', ep___pages_like], - ['pages/show', ep___pages_show], - ['pages/unlike', ep___pages_unlike], - ['pages/update', ep___pages_update], - ['ping', ep___ping], - ['pinned-users', ep___pinnedUsers], - ['promo/read', ep___promo_read], - ['request-reset-password', ep___requestResetPassword], - ['reset-db', ep___resetDb], - ['reset-password', ep___resetPassword], - ['server-info', ep___serverInfo], - ['stats', ep___stats], - ['sw/register', ep___sw_register], - ['sw/unregister', ep___sw_unregister], - ['test', ep___test], - ['username/available', ep___username_available], - ['users', ep___users], - ['users/clips', ep___users_clips], - ['users/followers', ep___users_followers], - ['users/following', ep___users_following], - ['users/gallery/posts', ep___users_gallery_posts], - ['users/get-frequently-replied-users', ep___users_getFrequentlyRepliedUsers], - ['users/groups/create', ep___users_groups_create], - ['users/groups/delete', ep___users_groups_delete], - ['users/groups/invitations/accept', ep___users_groups_invitations_accept], - ['users/groups/invitations/reject', ep___users_groups_invitations_reject], - ['users/groups/invite', ep___users_groups_invite], - ['users/groups/joined', ep___users_groups_joined], - ['users/groups/leave', ep___users_groups_leave], - ['users/groups/owned', ep___users_groups_owned], - ['users/groups/pull', ep___users_groups_pull], - ['users/groups/show', ep___users_groups_show], - ['users/groups/transfer', ep___users_groups_transfer], - ['users/groups/update', ep___users_groups_update], - ['users/lists/create', ep___users_lists_create], - ['users/lists/delete', ep___users_lists_delete], - ['users/lists/list', ep___users_lists_list], - ['users/lists/pull', ep___users_lists_pull], - ['users/lists/push', ep___users_lists_push], - ['users/lists/show', ep___users_lists_show], - ['users/lists/update', ep___users_lists_update], - ['users/notes', ep___users_notes], - ['users/pages', ep___users_pages], - ['users/reactions', ep___users_reactions], - ['users/recommendation', ep___users_recommendation], - ['users/relation', ep___users_relation], - ['users/report-abuse', ep___users_reportAbuse], - ['users/search-by-username-and-host', ep___users_searchByUsernameAndHost], - ['users/search', ep___users_search], - ['users/show', ep___users_show], - ['users/stats', ep___users_stats], - ['admin/drive-capacity-override', ep___admin_driveCapOverride], - ['fetch-rss', ep___fetchRss], -]; - -export interface IEndpointMeta { - readonly stability?: 'deprecated' | 'experimental' | 'stable'; - - readonly tags?: ReadonlyArray; - - readonly errors?: { - readonly [key: string]: { - readonly message: string; - readonly code: string; - readonly id: string; - }; - }; - - readonly res?: Schema; - - /** - * このエンドポイントにリクエストするのにユーザー情報が必須か否か - * 省略した場合は false として解釈されます。 - */ - readonly requireCredential?: boolean; - - /** - * 管理者のみ使えるエンドポイントか否か - */ - readonly requireAdmin?: boolean; - - /** - * 管理者またはモデレーターのみ使えるエンドポイントか否か - */ - readonly requireModerator?: boolean; - - /** - * エンドポイントのリミテーションに関するやつ - * 省略した場合はリミテーションは無いものとして解釈されます。 - */ - readonly limit?: { - - /** - * 複数のエンドポイントでリミットを共有したい場合に指定するキー - */ - readonly key?: string; - - /** - * リミットを適用する期間(ms) - * このプロパティを設定する場合、max プロパティも設定する必要があります。 - */ - readonly duration?: number; - - /** - * durationで指定した期間内にいくつまでリクエストできるのか - * このプロパティを設定する場合、duration プロパティも設定する必要があります。 - */ - readonly max?: number; - - /** - * 最低でもどれくらいの間隔を開けてリクエストしなければならないか(ms) - */ - readonly minInterval?: number; - }; - - /** - * ファイルの添付を必要とするか否か - * 省略した場合は false として解釈されます。 - */ - readonly requireFile?: boolean; - - /** - * サードパーティアプリからはリクエストすることができないか否か - * 省略した場合は false として解釈されます。 - */ - readonly secure?: boolean; - - /** - * エンドポイントの種類 - * パーミッションの実現に利用されます。 - */ - readonly kind?: string; - - readonly description?: string; - - /** - * GETでのリクエストを許容するか否か - */ - readonly allowGet?: boolean; - - /** - * 正常応答をキャッシュ (Cache-Control: public) する秒数 - */ - readonly cacheSec?: number; -} - -export interface IEndpoint { - name: string; - exec: any; - meta: IEndpointMeta; - params: Schema; -} - -const endpoints: IEndpoint[] = eps.map(([name, ep]) => { - return { - name: name, - exec: ep.default, - meta: ep.meta || {}, - params: ep.paramDef, - }; -}); - -export default endpoints; diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts deleted file mode 100644 index 333746f42..000000000 --- a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts +++ /dev/null @@ -1,109 +0,0 @@ -import define from '../../define.js'; -import { AbuseUserReports } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - nullable: false, optional: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - nullable: false, optional: false, - format: 'date-time', - }, - comment: { - type: 'string', - nullable: false, optional: false, - }, - resolved: { - type: 'boolean', - nullable: false, optional: false, - example: false, - }, - reporterId: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - targetUserId: { - type: 'string', - nullable: false, optional: false, - format: 'id', - }, - assigneeId: { - type: 'string', - nullable: true, optional: false, - format: 'id', - }, - reporter: { - type: 'object', - nullable: false, optional: false, - ref: 'User', - }, - targetUser: { - type: 'object', - nullable: false, optional: false, - ref: 'User', - }, - assignee: { - type: 'object', - nullable: true, optional: true, - ref: 'User', - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - state: { type: 'string', nullable: true, default: null }, - reporterOrigin: { type: 'string', enum: ['combined', 'local', 'remote'], default: "combined" }, - targetUserOrigin: { type: 'string', enum: ['combined', 'local', 'remote'], default: "combined" }, - forwarded: { type: 'boolean', default: false }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const query = makePaginationQuery(AbuseUserReports.createQueryBuilder('report'), ps.sinceId, ps.untilId); - - switch (ps.state) { - case 'resolved': query.andWhere('report.resolved = TRUE'); break; - case 'unresolved': query.andWhere('report.resolved = FALSE'); break; - } - - switch (ps.reporterOrigin) { - case 'local': query.andWhere('report.reporterHost IS NULL'); break; - case 'remote': query.andWhere('report.reporterHost IS NOT NULL'); break; - } - - switch (ps.targetUserOrigin) { - case 'local': query.andWhere('report.targetUserHost IS NULL'); break; - case 'remote': query.andWhere('report.targetUserHost IS NOT NULL'); break; - } - - const reports = await query.take(ps.limit).getMany(); - - return await AbuseUserReports.packMany(reports); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts deleted file mode 100644 index 5f8921999..000000000 --- a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts +++ /dev/null @@ -1,52 +0,0 @@ -import define from '../../../define.js'; -import { Users } from '@/models/index.js'; -import { signup } from '../../../common/signup.js'; -import { IsNull } from 'typeorm'; - -export const meta = { - tags: ['admin'], - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'User', - properties: { - token: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - username: Users.localUsernameSchema, - password: Users.passwordSchema, - }, - required: ['username', 'password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, _me) => { - const me = _me ? await Users.findOneByOrFail({ id: _me.id }) : null; - const noUsers = (await Users.countBy({ - host: IsNull(), - })) === 0; - if (!noUsers && !me?.isAdmin) throw new Error('access denied'); - - const { account, secret } = await signup({ - username: ps.username, - password: ps.password, - }); - - const res = await Users.pack(account, account, { - detail: true, - includeSecrets: true, - }); - - (res as any).token = secret; - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts deleted file mode 100644 index 629d70058..000000000 --- a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts +++ /dev/null @@ -1,59 +0,0 @@ -import define from '../../../define.js'; -import { Users } from '@/models/index.js'; -import { doPostSuspend } from '@/services/suspend-user.js'; -import { publishUserEvent } from '@/services/stream.js'; -import { createDeleteAccountJob } from '@/queue/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (user.isAdmin) { - throw new Error('cannot suspend admin'); - } - - if (user.isModerator) { - throw new Error('cannot suspend moderator'); - } - - if (Users.isLocalUser(user)) { - // 物理削除する前にDelete activityを送信する - await doPostSuspend(user).catch(e => {}); - - createDeleteAccountJob(user, { - soft: false, - }); - } else { - createDeleteAccountJob(user, { - soft: true, // リモートユーザーの削除は、完全にDBから物理削除してしまうと再度連合してきてアカウントが復活する可能性があるため、soft指定する - }); - } - - await Users.update(user.id, { - isDeleted: true, - }); - - if (Users.isLocalUser(user)) { - // Terminate streaming - publishUserEvent(user.id, 'terminate', {}); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/ad/create.ts b/packages/backend/src/server/api/endpoints/admin/ad/create.ts deleted file mode 100644 index ab2c50b50..000000000 --- a/packages/backend/src/server/api/endpoints/admin/ad/create.ts +++ /dev/null @@ -1,39 +0,0 @@ -import define from '../../../define.js'; -import { Ads } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - url: { type: 'string', minLength: 1 }, - memo: { type: 'string' }, - place: { type: 'string' }, - priority: { type: 'string' }, - ratio: { type: 'integer' }, - expiresAt: { type: 'integer' }, - imageUrl: { type: 'string', minLength: 1 }, - }, - required: ['url', 'memo', 'place', 'priority', 'ratio', 'expiresAt', 'imageUrl'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - await Ads.insert({ - id: genId(), - createdAt: new Date(), - expiresAt: new Date(ps.expiresAt), - url: ps.url, - imageUrl: ps.imageUrl, - priority: ps.priority, - ratio: ps.ratio, - place: ps.place, - memo: ps.memo, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/ad/delete.ts b/packages/backend/src/server/api/endpoints/admin/ad/delete.ts deleted file mode 100644 index 0ead2be00..000000000 --- a/packages/backend/src/server/api/endpoints/admin/ad/delete.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../../define.js'; -import { Ads } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchAd: { - message: 'No such ad.', - code: 'NO_SUCH_AD', - id: 'ccac9863-3a03-416e-b899-8a64041118b1', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - }, - required: ['id'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const ad = await Ads.findOneBy({ id: ps.id }); - - if (ad == null) throw new ApiError(meta.errors.noSuchAd); - - await Ads.delete(ad.id); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/ad/list.ts b/packages/backend/src/server/api/endpoints/admin/ad/list.ts deleted file mode 100644 index 74f154f27..000000000 --- a/packages/backend/src/server/api/endpoints/admin/ad/list.ts +++ /dev/null @@ -1,30 +0,0 @@ -import define from '../../../define.js'; -import { Ads } from '@/models/index.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const query = makePaginationQuery(Ads.createQueryBuilder('ad'), ps.sinceId, ps.untilId) - .andWhere('ad.expiresAt > :now', { now: new Date() }); - - const ads = await query.take(ps.limit).getMany(); - - return ads; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/ad/update.ts b/packages/backend/src/server/api/endpoints/admin/ad/update.ts deleted file mode 100644 index 650f8670e..000000000 --- a/packages/backend/src/server/api/endpoints/admin/ad/update.ts +++ /dev/null @@ -1,50 +0,0 @@ -import define from '../../../define.js'; -import { Ads } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchAd: { - message: 'No such ad.', - code: 'NO_SUCH_AD', - id: 'b7aa1727-1354-47bc-a182-3a9c3973d300', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - memo: { type: 'string' }, - url: { type: 'string', minLength: 1 }, - imageUrl: { type: 'string', minLength: 1 }, - place: { type: 'string' }, - priority: { type: 'string' }, - ratio: { type: 'integer' }, - expiresAt: { type: 'integer' }, - }, - required: ['id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const ad = await Ads.findOneBy({ id: ps.id }); - - if (ad == null) throw new ApiError(meta.errors.noSuchAd); - - await Ads.update(ad.id, { - url: ps.url, - place: ps.place, - priority: ps.priority, - ratio: ps.ratio, - memo: ps.memo, - imageUrl: ps.imageUrl, - expiresAt: new Date(ps.expiresAt), - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/create.ts b/packages/backend/src/server/api/endpoints/admin/announcements/create.ts deleted file mode 100644 index 33076b6d3..000000000 --- a/packages/backend/src/server/api/endpoints/admin/announcements/create.ts +++ /dev/null @@ -1,69 +0,0 @@ -import define from '../../../define.js'; -import { Announcements } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - title: { - type: 'string', - optional: false, nullable: false, - }, - text: { - type: 'string', - optional: false, nullable: false, - }, - imageUrl: { - type: 'string', - optional: false, nullable: true, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - title: { type: 'string', minLength: 1 }, - text: { type: 'string', minLength: 1 }, - imageUrl: { type: 'string', nullable: true, minLength: 1 }, - }, - required: ['title', 'text', 'imageUrl'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const announcement = await Announcements.insert({ - id: genId(), - createdAt: new Date(), - updatedAt: null, - title: ps.title, - text: ps.text, - imageUrl: ps.imageUrl, - }).then(x => Announcements.findOneByOrFail(x.identifiers[0])); - - return Object.assign({}, announcement, { createdAt: announcement.createdAt.toISOString(), updatedAt: null }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts b/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts deleted file mode 100644 index c17765f4f..000000000 --- a/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../../define.js'; -import { Announcements } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchAnnouncement: { - message: 'No such announcement.', - code: 'NO_SUCH_ANNOUNCEMENT', - id: 'ecad8040-a276-4e85-bda9-015a708d291e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - }, - required: ['id'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const announcement = await Announcements.findOneBy({ id: ps.id }); - - if (announcement == null) throw new ApiError(meta.errors.noSuchAnnouncement); - - await Announcements.delete(announcement.id); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts deleted file mode 100644 index 7a5758d75..000000000 --- a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Announcements, AnnouncementReads } from '@/models/index.js'; -import { Announcement } from '@/models/entities/announcement.js'; -import define from '../../../define.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - text: { - type: 'string', - optional: false, nullable: false, - }, - title: { - type: 'string', - optional: false, nullable: false, - }, - imageUrl: { - type: 'string', - optional: false, nullable: true, - }, - reads: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const query = makePaginationQuery(Announcements.createQueryBuilder('announcement'), ps.sinceId, ps.untilId); - - const announcements = await query.take(ps.limit).getMany(); - - const reads = new Map(); - - for (const announcement of announcements) { - reads.set(announcement, await AnnouncementReads.countBy({ - announcementId: announcement.id, - })); - } - - return announcements.map(announcement => ({ - id: announcement.id, - createdAt: announcement.createdAt.toISOString(), - updatedAt: announcement.updatedAt?.toISOString() ?? null, - title: announcement.title, - text: announcement.text, - imageUrl: announcement.imageUrl, - reads: reads.get(announcement)!, - })); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts deleted file mode 100644 index 61ce106d8..000000000 --- a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../../define.js'; -import { Announcements } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchAnnouncement: { - message: 'No such announcement.', - code: 'NO_SUCH_ANNOUNCEMENT', - id: 'd3aae5a7-6372-4cb4-b61c-f511ffc2d7cc', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - title: { type: 'string', minLength: 1 }, - text: { type: 'string', minLength: 1 }, - imageUrl: { type: 'string', nullable: true, minLength: 1 }, - }, - required: ['id', 'title', 'text', 'imageUrl'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const announcement = await Announcements.findOneBy({ id: ps.id }); - - if (announcement == null) throw new ApiError(meta.errors.noSuchAnnouncement); - - await Announcements.update(announcement.id, { - updatedAt: new Date(), - title: ps.title, - text: ps.text, - imageUrl: ps.imageUrl, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/delete-account.ts b/packages/backend/src/server/api/endpoints/admin/delete-account.ts deleted file mode 100644 index 2d7ef2f23..000000000 --- a/packages/backend/src/server/api/endpoints/admin/delete-account.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Users } from '@/models/index.js'; -import { deleteAccount } from '@/services/delete-account.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireAdmin: true, - - res: { - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await Users.findOneByOrFail({ id: ps.userId }); - if (user.isDeleted) { - return; - } - - await deleteAccount(user); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts deleted file mode 100644 index dc1976624..000000000 --- a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts +++ /dev/null @@ -1,29 +0,0 @@ -import define from '../../define.js'; -import { deleteFile } from '@/services/drive/delete-file.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const files = await DriveFiles.findBy({ - userId: ps.userId, - }); - - for (const file of files) { - deleteFile(file); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts b/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts deleted file mode 100644 index a4b29770e..000000000 --- a/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts +++ /dev/null @@ -1,47 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - overrideMb: { type: 'number', nullable: true }, - }, - required: ['userId', 'overrideMb'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (!Users.isLocalUser(user)) { - throw new Error('user is not local user'); - } - - /*if (user.isAdmin) { - throw new Error('cannot suspend admin'); - } - if (user.isModerator) { - throw new Error('cannot suspend moderator'); - }*/ - - await Users.update(user.id, { - driveCapacityOverrideMb: ps.overrideMb, - }); - - insertModerationLog(me, 'change-drive-capacity-override', { - targetId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts deleted file mode 100644 index bab149532..000000000 --- a/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts +++ /dev/null @@ -1,20 +0,0 @@ -import define from '../../../define.js'; -import { createCleanRemoteFilesJob } from '@/queue/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - createCleanRemoteFilesJob(); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts deleted file mode 100644 index 3db942e6c..000000000 --- a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { IsNull } from 'typeorm'; -import define from '../../../define.js'; -import { deleteFile } from '@/services/drive/delete-file.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const files = await DriveFiles.findBy({ - userId: IsNull(), - }); - - for (const file of files) { - deleteFile(file); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/drive/files.ts b/packages/backend/src/server/api/endpoints/admin/drive/files.ts deleted file mode 100644 index ba32aac43..000000000 --- a/packages/backend/src/server/api/endpoints/admin/drive/files.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { DriveFiles } from '@/models/index.js'; -import define from '../../../define.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: false, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id', nullable: true }, - type: { type: 'string', nullable: true, pattern: /^[a-zA-Z0-9\/\-*]+$/.toString().slice(1, -1) }, - origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: 'local' }, - hostname: { - type: 'string', - nullable: true, - default: null, - description: 'The local host is represented with `null`.', - }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId); - - if (ps.userId) { - query.andWhere('file.userId = :userId', { userId: ps.userId }); - } else { - if (ps.origin === 'local') { - query.andWhere('file.userHost IS NULL'); - } else if (ps.origin === 'remote') { - query.andWhere('file.userHost IS NOT NULL'); - } - - if (ps.hostname) { - query.andWhere('file.userHost = :hostname', { hostname: ps.hostname }); - } - } - - if (ps.type) { - if (ps.type.endsWith('/*')) { - query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); - } else { - query.andWhere('file.type = :type', { type: ps.type }); - } - } - - const files = await query.take(ps.limit).getMany(); - - return await DriveFiles.packMany(files, { detail: true, withUser: true, self: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts deleted file mode 100644 index e9117a23c..000000000 --- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts +++ /dev/null @@ -1,193 +0,0 @@ -import { DriveFiles } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'caf3ca38-c6e5-472e-a30c-b05377dcc240', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - userId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - userHost: { - type: 'string', - optional: false, nullable: true, - description: 'The local host is represented with `null`.', - }, - md5: { - type: 'string', - optional: false, nullable: false, - format: 'md5', - example: '15eca7fba0480996e2245f5185bf39f2', - }, - name: { - type: 'string', - optional: false, nullable: false, - example: 'lenna.jpg', - }, - type: { - type: 'string', - optional: false, nullable: false, - example: 'image/jpeg', - }, - size: { - type: 'number', - optional: false, nullable: false, - example: 51469, - }, - comment: { - type: 'string', - optional: false, nullable: true, - }, - blurhash: { - type: 'string', - optional: false, nullable: true, - }, - properties: { - type: 'object', - optional: false, nullable: false, - properties: { - width: { - type: 'number', - optional: false, nullable: false, - example: 1280, - }, - height: { - type: 'number', - optional: false, nullable: false, - example: 720, - }, - avgColor: { - type: 'string', - optional: true, nullable: false, - example: 'rgb(40,65,87)', - }, - }, - }, - storedInternal: { - type: 'boolean', - optional: false, nullable: true, - example: true, - }, - url: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - thumbnailUrl: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - webpublicUrl: { - type: 'string', - optional: false, nullable: true, - format: 'url', - }, - accessKey: { - type: 'string', - optional: false, nullable: false, - }, - thumbnailAccessKey: { - type: 'string', - optional: false, nullable: false, - }, - webpublicAccessKey: { - type: 'string', - optional: false, nullable: false, - }, - uri: { - type: 'string', - optional: false, nullable: true, - }, - src: { - type: 'string', - optional: false, nullable: true, - }, - folderId: { - type: 'string', - optional: false, nullable: true, - format: 'id', - example: 'xxxxxxxxxx', - }, - isSensitive: { - type: 'boolean', - optional: false, nullable: false, - }, - isLink: { - type: 'boolean', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - anyOf: [ - { - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], - }, - { - properties: { - url: { type: 'string' }, - }, - required: ['url'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const file = ps.fileId ? await DriveFiles.findOneBy({ id: ps.fileId }) : await DriveFiles.findOne({ - where: [{ - url: ps.url, - }, { - thumbnailUrl: ps.url, - }, { - webpublicUrl: ps.url, - }], - }); - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - - if (!me.isAdmin) { - delete file.requestIp; - delete file.requestHeaders; - } - - return file; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts deleted file mode 100644 index 232fbbd57..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { In } from 'typeorm'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - ids: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - aliases: { type: 'array', items: { - type: 'string', - } }, - }, - required: ['ids', 'aliases'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const emojis = await Emojis.findBy({ - id: In(ps.ids), - }); - - for (const emoji of emojis) { - await Emojis.update(emoji.id, { - updatedAt: new Date(), - aliases: [...new Set(emoji.aliases.concat(ps.aliases))], - }); - } - - await db.queryResultCache!.remove(['meta_emojis']); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts deleted file mode 100644 index 67349c24e..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts +++ /dev/null @@ -1,66 +0,0 @@ -import define from '../../../define.js'; -import { Emojis, DriveFiles } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { ApiError } from '../../../error.js'; -import rndstr from 'rndstr'; -import { publishBroadcastStream } from '@/services/stream.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'MO_SUCH_FILE', - id: 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) throw new ApiError(meta.errors.noSuchFile); - - const name = file.name.split('.')[0].match(/^[a-z0-9_]+$/) ? file.name.split('.')[0] : `_${rndstr('a-z0-9', 8)}_`; - - const emoji = await Emojis.insert({ - id: genId(), - updatedAt: new Date(), - name: name, - category: null, - host: null, - aliases: [], - originalUrl: file.url, - publicUrl: file.webpublicUrl ?? file.url, - type: file.webpublicType ?? file.type, - }).then(x => Emojis.findOneByOrFail(x.identifiers[0])); - - await db.queryResultCache!.remove(['meta_emojis']); - - publishBroadcastStream('emojiAdded', { - emoji: await Emojis.pack(emoji.id), - }); - - insertModerationLog(me, 'addEmoji', { - emojiId: emoji.id, - }); - - return { - id: emoji.id, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts deleted file mode 100644 index 7010ade0d..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts +++ /dev/null @@ -1,82 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { ApiError } from '../../../error.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { uploadFromUrl } from '@/services/drive/upload-from-url.js'; -import { publishBroadcastStream } from '@/services/stream.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchEmoji: { - message: 'No such emoji.', - code: 'NO_SUCH_EMOJI', - id: 'e2785b66-dca3-4087-9cac-b93c541cc425', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - emojiId: { type: 'string', format: 'misskey:id' }, - }, - required: ['emojiId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const emoji = await Emojis.findOneBy({ id: ps.emojiId }); - - if (emoji == null) { - throw new ApiError(meta.errors.noSuchEmoji); - } - - let driveFile: DriveFile; - - try { - // Create file - driveFile = await uploadFromUrl({ url: emoji.originalUrl, user: null, force: true }); - } catch (e) { - throw new ApiError(); - } - - const copied = await Emojis.insert({ - id: genId(), - updatedAt: new Date(), - name: emoji.name, - host: null, - aliases: [], - originalUrl: driveFile.url, - publicUrl: driveFile.webpublicUrl ?? driveFile.url, - type: driveFile.webpublicType ?? driveFile.type, - }).then(x => Emojis.findOneByOrFail(x.identifiers[0])); - - await db.queryResultCache!.remove(['meta_emojis']); - - publishBroadcastStream('emojiAdded', { - emoji: await Emojis.pack(copied.id), - }); - - return { - id: copied.id, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts deleted file mode 100644 index 93a6c4e4e..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts +++ /dev/null @@ -1,40 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { In } from 'typeorm'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - ids: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - }, - required: ['ids'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const emojis = await Emojis.findBy({ - id: In(ps.ids), - }); - - for (const emoji of emojis) { - await Emojis.delete(emoji.id); - - await db.queryResultCache!.remove(['meta_emojis']); - - insertModerationLog(me, 'deleteEmoji', { - emoji: emoji, - }); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts deleted file mode 100644 index 67dbf28d8..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchEmoji: { - message: 'No such emoji.', - code: 'NO_SUCH_EMOJI', - id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - }, - required: ['id'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const emoji = await Emojis.findOneBy({ id: ps.id }); - - if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); - - await Emojis.delete(emoji.id); - - await db.queryResultCache!.remove(['meta_emojis']); - - insertModerationLog(me, 'deleteEmoji', { - emoji: emoji, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts b/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts deleted file mode 100644 index 3f03dc2da..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts +++ /dev/null @@ -1,22 +0,0 @@ -import define from '../../../define.js'; -import { createImportCustomEmojisJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createImportCustomEmojisJob(user, ps.fileId); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts deleted file mode 100644 index d16689a28..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts +++ /dev/null @@ -1,91 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'string', - optional: false, nullable: true, - description: 'The local host is represented with `null`.', - }, - url: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - query: { type: 'string', nullable: true, default: null }, - host: { - type: 'string', - nullable: true, - default: null, - description: 'Use `null` to represent the local host.', - }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const q = makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId); - - if (ps.host == null) { - q.andWhere(`emoji.host IS NOT NULL`); - } else { - q.andWhere(`emoji.host = :host`, { host: toPuny(ps.host) }); - } - - if (ps.query) { - q.andWhere('emoji.name like :query', { query: '%' + ps.query + '%' }); - } - - const emojis = await q - .orderBy('emoji.id', 'DESC') - .take(ps.limit) - .getMany(); - - return Emojis.packMany(emojis); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts deleted file mode 100644 index 6192978fa..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts +++ /dev/null @@ -1,89 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; -import { Emoji } from '@/models/entities/emoji.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'null', - optional: false, - description: 'The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files.', - }, - url: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - query: { type: 'string', nullable: true, default: null }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const q = makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId) - .andWhere(`emoji.host IS NULL`); - - let emojis: Emoji[]; - - if (ps.query) { - //q.andWhere('emoji.name ILIKE :q', { q: `%${ps.query}%` }); - //const emojis = await q.take(ps.limit).getMany(); - - emojis = await q.getMany(); - - emojis = emojis.filter(emoji => - emoji.name.includes(ps.query!) || - emoji.aliases.some(a => a.includes(ps.query!)) || - emoji.category?.includes(ps.query!)); - - emojis.splice(ps.limit + 1); - } else { - emojis = await q.take(ps.limit).getMany(); - } - - return Emojis.packMany(emojis); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts deleted file mode 100644 index a4da40fff..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { In } from 'typeorm'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - ids: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - aliases: { type: 'array', items: { - type: 'string', - } }, - }, - required: ['ids', 'aliases'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const emojis = await Emojis.findBy({ - id: In(ps.ids), - }); - - for (const emoji of emojis) { - await Emojis.update(emoji.id, { - updatedAt: new Date(), - aliases: emoji.aliases.filter(x => !ps.aliases.includes(x)), - }); - } - - await db.queryResultCache!.remove(['meta_emojis']); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts deleted file mode 100644 index ae3b190f4..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts +++ /dev/null @@ -1,37 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { In } from 'typeorm'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - ids: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - aliases: { type: 'array', items: { - type: 'string', - } }, - }, - required: ['ids', 'aliases'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - await Emojis.update({ - id: In(ps.ids), - }, { - updatedAt: new Date(), - aliases: ps.aliases, - }); - - await db.queryResultCache!.remove(['meta_emojis']); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts deleted file mode 100644 index cff58d617..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts +++ /dev/null @@ -1,39 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { In } from 'typeorm'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - ids: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - category: { - type: 'string', - nullable: true, - description: 'Use `null` to reset the category.', - }, - }, - required: ['ids'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - await Emojis.update({ - id: In(ps.ids), - }, { - updatedAt: new Date(), - category: ps.category, - }); - - await db.queryResultCache!.remove(['meta_emojis']); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts deleted file mode 100644 index 5b547b3b7..000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts +++ /dev/null @@ -1,52 +0,0 @@ -import define from '../../../define.js'; -import { Emojis } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchEmoji: { - message: 'No such emoji.', - code: 'NO_SUCH_EMOJI', - id: '684dec9d-a8c2-4364-9aa8-456c49cb1dc8', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - id: { type: 'string', format: 'misskey:id' }, - name: { type: 'string' }, - category: { - type: 'string', - nullable: true, - description: 'Use `null` to reset the category.', - }, - aliases: { type: 'array', items: { - type: 'string', - } }, - }, - required: ['id', 'name', 'aliases'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const emoji = await Emojis.findOneBy({ id: ps.id }); - - if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); - - await Emojis.update(emoji.id, { - updatedAt: new Date(), - name: ps.name, - category: ps.category, - aliases: ps.aliases, - }); - - await db.queryResultCache!.remove(['meta_emojis']); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts deleted file mode 100644 index da5420147..000000000 --- a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts +++ /dev/null @@ -1,29 +0,0 @@ -import define from '../../../define.js'; -import { deleteFile } from '@/services/drive/delete-file.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const files = await DriveFiles.findBy({ - userHost: ps.host, - }); - - for (const file of files) { - deleteFile(file); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts deleted file mode 100644 index cb2be5ab3..000000000 --- a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts +++ /dev/null @@ -1,30 +0,0 @@ -import define from '../../../define.js'; -import { Instances } from '@/models/index.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const instance = await Instances.findOneBy({ host: toPuny(ps.host) }); - - if (instance == null) { - throw new Error('instance not found'); - } - - fetchInstanceMetadata(instance, true); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts deleted file mode 100644 index b7ee27db6..000000000 --- a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts +++ /dev/null @@ -1,34 +0,0 @@ -import define from '../../../define.js'; -import deleteFollowing from '@/services/following/delete.js'; -import { Followings, Users } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const followings = await Followings.findBy({ - followerHost: ps.host, - }); - - const pairs = await Promise.all(followings.map(f => Promise.all([ - Users.findOneByOrFail({ id: f.followerId }), - Users.findOneByOrFail({ id: f.followeeId }), - ]))); - - for (const pair of pairs) { - deleteFollowing(pair[0], pair[1]); - } -}); diff --git a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts deleted file mode 100644 index 278131fb3..000000000 --- a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts +++ /dev/null @@ -1,32 +0,0 @@ -import define from '../../../define.js'; -import { Instances } from '@/models/index.js'; -import { toPuny } from '@/misc/convert-host.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - isSuspended: { type: 'boolean' }, - }, - required: ['host', 'isSuspended'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const instance = await Instances.findOneBy({ host: toPuny(ps.host) }); - - if (instance == null) { - throw new Error('instance not found'); - } - - Instances.update({ host: toPuny(ps.host) }, { - isSuspended: ps.isSuspended, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts deleted file mode 100644 index dd16473f3..000000000 --- a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts +++ /dev/null @@ -1,28 +0,0 @@ -import define from '../../define.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - requireCredential: true, - requireModerator: true, - - tags: ['admin'], -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const stats = await db.query(`SELECT * FROM pg_indexes;`).then(recs => { - const res = [] as { tablename: string; indexname: string; }[]; - for (const rec of recs) { - res.push(rec); - } - return res; - }); - - return stats; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts deleted file mode 100644 index aca2540fd..000000000 --- a/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { db } from '@/db/postgre.js'; -import define from '../../define.js'; - -export const meta = { - requireCredential: true, - requireModerator: true, - - tags: ['admin'], - - res: { - type: 'object', - optional: false, nullable: false, - example: { - migrations: { - count: 66, - size: 32768, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const sizes = await - db.query(` - SELECT relname AS "table", reltuples as "count", pg_total_relation_size(C.oid) AS "size" - FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) - WHERE nspname NOT IN ('pg_catalog', 'information_schema') - AND C.relkind <> 'i' - AND nspname !~ '^pg_toast';`) - .then(recs => { - const res = {} as Record; - for (const rec of recs) { - res[rec.table] = { - count: parseInt(rec.count, 10), - size: parseInt(rec.size, 10), - }; - } - return res; - }); - - return sizes; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts b/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts deleted file mode 100644 index e8b9cb3b0..000000000 --- a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { UserIps } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireAdmin: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const ips = await UserIps.find({ - where: { userId: ps.userId }, - order: { createdAt: 'DESC' }, - take: 30, - }); - - return ips.map(x => ({ - ip: x.ip, - createdAt: x.createdAt.toISOString(), - })); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/invite.ts b/packages/backend/src/server/api/endpoints/admin/invite.ts deleted file mode 100644 index 7e950cf87..000000000 --- a/packages/backend/src/server/api/endpoints/admin/invite.ts +++ /dev/null @@ -1,49 +0,0 @@ -import rndstr from 'rndstr'; -import define from '../../define.js'; -import { RegistrationTickets } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - code: { - type: 'string', - optional: false, nullable: false, - example: '2ERUA5VR', - maxLength: 8, - minLength: 8, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const code = rndstr({ - length: 8, - chars: '2-9A-HJ-NP-Z', // [0-9A-Z] w/o [01IO] (32 patterns) - }); - - await RegistrationTickets.insert({ - id: genId(), - createdAt: new Date(), - code, - }); - - return { - code, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts deleted file mode 100644 index 874611968..000000000 --- a/packages/backend/src/server/api/endpoints/admin/meta.ts +++ /dev/null @@ -1,430 +0,0 @@ -import config from '@/config/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['meta'], - - requireCredential: true, - requireAdmin: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - driveCapacityPerLocalUserMb: { - type: 'number', - optional: false, nullable: false, - }, - driveCapacityPerRemoteUserMb: { - type: 'number', - optional: false, nullable: false, - }, - cacheRemoteFiles: { - type: 'boolean', - optional: false, nullable: false, - }, - emailRequiredForSignup: { - type: 'boolean', - optional: false, nullable: false, - }, - enableHcaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - hcaptchaSiteKey: { - type: 'string', - optional: false, nullable: true, - }, - enableRecaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - recaptchaSiteKey: { - type: 'string', - optional: false, nullable: true, - }, - swPublickey: { - type: 'string', - optional: false, nullable: true, - }, - mascotImageUrl: { - type: 'string', - optional: false, nullable: false, - default: '/assets/ai.png', - }, - bannerUrl: { - type: 'string', - optional: false, nullable: false, - }, - errorImageUrl: { - type: 'string', - optional: false, nullable: false, - default: 'https://xn--931a.moe/aiart/yubitun.png', - }, - iconUrl: { - type: 'string', - optional: false, nullable: true, - }, - maxNoteTextLength: { - type: 'number', - optional: false, nullable: false, - }, - emojis: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'string', - optional: false, nullable: true, - }, - url: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - }, - }, - }, - ads: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - place: { - type: 'string', - optional: false, nullable: false, - }, - url: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - imageUrl: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - }, - }, - }, - enableEmail: { - type: 'boolean', - optional: false, nullable: false, - }, - enableTwitterIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableGithubIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableDiscordIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableServiceWorker: { - type: 'boolean', - optional: false, nullable: false, - }, - translatorAvailable: { - type: 'boolean', - optional: false, nullable: false, - }, - proxyAccountName: { - type: 'string', - optional: false, nullable: true, - }, - userStarForReactionFallback: { - type: 'boolean', - optional: true, nullable: false, - }, - pinnedUsers: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - hiddenTags: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - blockedHosts: { - type: 'array', - optional: true, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - hcaptchaSecretKey: { - type: 'string', - optional: true, nullable: true, - }, - recaptchaSecretKey: { - type: 'string', - optional: true, nullable: true, - }, - sensitiveMediaDetection: { - type: 'string', - optional: true, nullable: false, - }, - sensitiveMediaDetectionSensitivity: { - type: 'string', - optional: true, nullable: false, - }, - setSensitiveFlagAutomatically: { - type: 'boolean', - optional: true, nullable: false, - }, - enableSensitiveMediaDetectionForVideos: { - type: 'boolean', - optional: true, nullable: false, - }, - proxyAccountId: { - type: 'string', - optional: true, nullable: true, - format: 'id', - }, - twitterConsumerKey: { - type: 'string', - optional: true, nullable: true, - }, - twitterConsumerSecret: { - type: 'string', - optional: true, nullable: true, - }, - githubClientId: { - type: 'string', - optional: true, nullable: true, - }, - githubClientSecret: { - type: 'string', - optional: true, nullable: true, - }, - discordClientId: { - type: 'string', - optional: true, nullable: true, - }, - discordClientSecret: { - type: 'string', - optional: true, nullable: true, - }, - summaryProxy: { - type: 'string', - optional: true, nullable: true, - }, - email: { - type: 'string', - optional: true, nullable: true, - }, - smtpSecure: { - type: 'boolean', - optional: true, nullable: false, - }, - smtpHost: { - type: 'string', - optional: true, nullable: true, - }, - smtpPort: { - type: 'string', - optional: true, nullable: true, - }, - smtpUser: { - type: 'string', - optional: true, nullable: true, - }, - smtpPass: { - type: 'string', - optional: true, nullable: true, - }, - swPrivateKey: { - type: 'string', - optional: true, nullable: true, - }, - useObjectStorage: { - type: 'boolean', - optional: true, nullable: false, - }, - objectStorageBaseUrl: { - type: 'string', - optional: true, nullable: true, - }, - objectStorageBucket: { - type: 'string', - optional: true, nullable: true, - }, - objectStoragePrefix: { - type: 'string', - optional: true, nullable: true, - }, - objectStorageEndpoint: { - type: 'string', - optional: true, nullable: true, - }, - objectStorageRegion: { - type: 'string', - optional: true, nullable: true, - }, - objectStoragePort: { - type: 'number', - optional: true, nullable: true, - }, - objectStorageAccessKey: { - type: 'string', - optional: true, nullable: true, - }, - objectStorageSecretKey: { - type: 'string', - optional: true, nullable: true, - }, - objectStorageUseSSL: { - type: 'boolean', - optional: true, nullable: false, - }, - objectStorageUseProxy: { - type: 'boolean', - optional: true, nullable: false, - }, - objectStorageSetPublicRead: { - type: 'boolean', - optional: true, nullable: false, - }, - enableIpLogging: { - type: 'boolean', - optional: true, nullable: false, - }, - enableActiveEmailValidation: { - type: 'boolean', - optional: true, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const instance = await fetchMeta(true); - - return { - maintainerName: instance.maintainerName, - maintainerEmail: instance.maintainerEmail, - version: config.version, - name: instance.name, - uri: config.url, - description: instance.description, - langs: instance.langs, - tosUrl: instance.ToSUrl, - repositoryUrl: instance.repositoryUrl, - feedbackUrl: instance.feedbackUrl, - disableRegistration: instance.disableRegistration, - disableLocalTimeline: instance.disableLocalTimeline, - disableGlobalTimeline: instance.disableGlobalTimeline, - driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, - driveCapacityPerRemoteUserMb: instance.remoteDriveCapacityMb, - emailRequiredForSignup: instance.emailRequiredForSignup, - enableHcaptcha: instance.enableHcaptcha, - hcaptchaSiteKey: instance.hcaptchaSiteKey, - enableRecaptcha: instance.enableRecaptcha, - recaptchaSiteKey: instance.recaptchaSiteKey, - swPublickey: instance.swPublicKey, - themeColor: instance.themeColor, - mascotImageUrl: instance.mascotImageUrl, - bannerUrl: instance.bannerUrl, - errorImageUrl: instance.errorImageUrl, - iconUrl: instance.iconUrl, - backgroundImageUrl: instance.backgroundImageUrl, - logoImageUrl: instance.logoImageUrl, - maxNoteTextLength: MAX_NOTE_TEXT_LENGTH, // 後方互換性のため - defaultLightTheme: instance.defaultLightTheme, - defaultDarkTheme: instance.defaultDarkTheme, - enableEmail: instance.enableEmail, - enableTwitterIntegration: instance.enableTwitterIntegration, - enableGithubIntegration: instance.enableGithubIntegration, - enableDiscordIntegration: instance.enableDiscordIntegration, - enableServiceWorker: instance.enableServiceWorker, - translatorAvailable: instance.deeplAuthKey != null, - pinnedPages: instance.pinnedPages, - pinnedClipId: instance.pinnedClipId, - cacheRemoteFiles: instance.cacheRemoteFiles, - useStarForReactionFallback: instance.useStarForReactionFallback, - pinnedUsers: instance.pinnedUsers, - hiddenTags: instance.hiddenTags, - blockedHosts: instance.blockedHosts, - hcaptchaSecretKey: instance.hcaptchaSecretKey, - recaptchaSecretKey: instance.recaptchaSecretKey, - sensitiveMediaDetection: instance.sensitiveMediaDetection, - sensitiveMediaDetectionSensitivity: instance.sensitiveMediaDetectionSensitivity, - setSensitiveFlagAutomatically: instance.setSensitiveFlagAutomatically, - enableSensitiveMediaDetectionForVideos: instance.enableSensitiveMediaDetectionForVideos, - proxyAccountId: instance.proxyAccountId, - twitterConsumerKey: instance.twitterConsumerKey, - twitterConsumerSecret: instance.twitterConsumerSecret, - githubClientId: instance.githubClientId, - githubClientSecret: instance.githubClientSecret, - discordClientId: instance.discordClientId, - discordClientSecret: instance.discordClientSecret, - summalyProxy: instance.summalyProxy, - email: instance.email, - smtpSecure: instance.smtpSecure, - smtpHost: instance.smtpHost, - smtpPort: instance.smtpPort, - smtpUser: instance.smtpUser, - smtpPass: instance.smtpPass, - swPrivateKey: instance.swPrivateKey, - useObjectStorage: instance.useObjectStorage, - objectStorageBaseUrl: instance.objectStorageBaseUrl, - objectStorageBucket: instance.objectStorageBucket, - objectStoragePrefix: instance.objectStoragePrefix, - objectStorageEndpoint: instance.objectStorageEndpoint, - objectStorageRegion: instance.objectStorageRegion, - objectStoragePort: instance.objectStoragePort, - objectStorageAccessKey: instance.objectStorageAccessKey, - objectStorageSecretKey: instance.objectStorageSecretKey, - objectStorageUseSSL: instance.objectStorageUseSSL, - objectStorageUseProxy: instance.objectStorageUseProxy, - objectStorageSetPublicRead: instance.objectStorageSetPublicRead, - objectStorageS3ForcePathStyle: instance.objectStorageS3ForcePathStyle, - deeplAuthKey: instance.deeplAuthKey, - deeplIsPro: instance.deeplIsPro, - enableIpLogging: instance.enableIpLogging, - enableActiveEmailValidation: instance.enableActiveEmailValidation, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/moderators/add.ts b/packages/backend/src/server/api/endpoints/admin/moderators/add.ts deleted file mode 100644 index 7b209c2d9..000000000 --- a/packages/backend/src/server/api/endpoints/admin/moderators/add.ts +++ /dev/null @@ -1,37 +0,0 @@ -import define from '../../../define.js'; -import { Users } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireAdmin: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (user.isAdmin) { - throw new Error('cannot mark as moderator if admin user'); - } - - await Users.update(user.id, { - isModerator: true, - }); - - publishInternalEvent('userChangeModeratorState', { id: user.id, isModerator: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/moderators/remove.ts b/packages/backend/src/server/api/endpoints/admin/moderators/remove.ts deleted file mode 100644 index a01e9f3c6..000000000 --- a/packages/backend/src/server/api/endpoints/admin/moderators/remove.ts +++ /dev/null @@ -1,33 +0,0 @@ -import define from '../../../define.js'; -import { Users } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireAdmin: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - await Users.update(user.id, { - isModerator: false, - }); - - publishInternalEvent('userChangeModeratorState', { id: user.id, isModerator: false }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/promo/create.ts b/packages/backend/src/server/api/endpoints/admin/promo/create.ts deleted file mode 100644 index 68a17867b..000000000 --- a/packages/backend/src/server/api/endpoints/admin/promo/create.ts +++ /dev/null @@ -1,54 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getNote } from '../../../common/getters.js'; -import { PromoNotes } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'ee449fbe-af2a-453b-9cae-cf2fe7c895fc', - }, - - alreadyPromoted: { - message: 'The note has already promoted.', - code: 'ALREADY_PROMOTED', - id: 'ae427aa2-7a41-484f-a18c-2c1104051604', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - expiresAt: { type: 'integer' }, - }, - required: ['noteId', 'expiresAt'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const exist = await PromoNotes.findOneBy({ noteId: note.id }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyPromoted); - } - - await PromoNotes.insert({ - noteId: note.id, - expiresAt: new Date(ps.expiresAt), - userId: note.userId, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts deleted file mode 100644 index 8f015c280..000000000 --- a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../../define.js'; -import { destroy } from '@/queue/index.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - destroy(); - - insertModerationLog(me, 'clearQueue'); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts deleted file mode 100644 index 70f7d77de..000000000 --- a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { deliverQueue } from '@/queue/queues.js'; -import { URL } from 'node:url'; -import define from '../../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'array', - optional: false, nullable: false, - items: { - anyOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - ], - }, - }, - example: [[ - 'example.com', - 12, - ]], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const jobs = await deliverQueue.getJobs(['delayed']); - - const res = [] as [string, number][]; - - for (const job of jobs) { - const host = new URL(job.data.to).host; - if (res.find(x => x[0] === host)) { - res.find(x => x[0] === host)![1]++; - } else { - res.push([host, 1]); - } - } - - res.sort((a, b) => b[1] - a[1]); - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts deleted file mode 100644 index 2235ce8f9..000000000 --- a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { URL } from 'node:url'; -import define from '../../../define.js'; -import { inboxQueue } from '@/queue/queues.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'array', - optional: false, nullable: false, - items: { - anyOf: [ - { - type: 'string', - }, - { - type: 'number', - }, - ], - }, - }, - example: [[ - 'example.com', - 12, - ]], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const jobs = await inboxQueue.getJobs(['delayed']); - - const res = [] as [string, number][]; - - for (const job of jobs) { - const host = new URL(job.data.signature.keyId).host; - if (res.find(x => x[0] === host)) { - res.find(x => x[0] === host)![1]++; - } else { - res.push([host, 1]); - } - } - - res.sort((a, b) => b[1] - a[1]); - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts deleted file mode 100644 index 988b5a5e3..000000000 --- a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - deliver: { - optional: false, nullable: false, - ref: 'QueueCount', - }, - inbox: { - optional: false, nullable: false, - ref: 'QueueCount', - }, - db: { - optional: false, nullable: false, - ref: 'QueueCount', - }, - objectStorage: { - optional: false, nullable: false, - ref: 'QueueCount', - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const deliverJobCounts = await deliverQueue.getJobCounts(); - const inboxJobCounts = await inboxQueue.getJobCounts(); - const dbJobCounts = await dbQueue.getJobCounts(); - const objectStorageJobCounts = await objectStorageQueue.getJobCounts(); - - return { - deliver: deliverJobCounts, - inbox: inboxJobCounts, - db: dbJobCounts, - objectStorage: objectStorageJobCounts, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/relays/add.ts b/packages/backend/src/server/api/endpoints/admin/relays/add.ts deleted file mode 100644 index 348e9baca..000000000 --- a/packages/backend/src/server/api/endpoints/admin/relays/add.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { URL } from 'node:url'; -import define from '../../../define.js'; -import { addRelay } from '@/services/relay.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - errors: { - invalidUrl: { - message: 'Invalid URL', - code: 'INVALID_URL', - id: 'fb8c92d3-d4e5-44e7-b3d4-800d5cef8b2c', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - inbox: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - status: { - type: 'string', - optional: false, nullable: false, - default: 'requesting', - enum: [ - 'requesting', - 'accepted', - 'rejected', - ], - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - inbox: { type: 'string' }, - }, - required: ['inbox'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - try { - if (new URL(ps.inbox).protocol !== 'https:') throw 'https only'; - } catch { - throw new ApiError(meta.errors.invalidUrl); - } - - return await addRelay(ps.inbox); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/relays/list.ts b/packages/backend/src/server/api/endpoints/admin/relays/list.ts deleted file mode 100644 index 89ec651e6..000000000 --- a/packages/backend/src/server/api/endpoints/admin/relays/list.ts +++ /dev/null @@ -1,51 +0,0 @@ -import define from '../../../define.js'; -import { listRelay } from '@/services/relay.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - inbox: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - status: { - type: 'string', - optional: false, nullable: false, - default: 'requesting', - enum: [ - 'requesting', - 'accepted', - 'rejected', - ], - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - return await listRelay(); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/relays/remove.ts b/packages/backend/src/server/api/endpoints/admin/relays/remove.ts deleted file mode 100644 index b59cf72c5..000000000 --- a/packages/backend/src/server/api/endpoints/admin/relays/remove.ts +++ /dev/null @@ -1,22 +0,0 @@ -import define from '../../../define.js'; -import { removeRelay } from '@/services/relay.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - inbox: { type: 'string' }, - }, - required: ['inbox'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - return await removeRelay(ps.inbox); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/reset-password.ts b/packages/backend/src/server/api/endpoints/admin/reset-password.ts deleted file mode 100644 index be4c2dcee..000000000 --- a/packages/backend/src/server/api/endpoints/admin/reset-password.ts +++ /dev/null @@ -1,60 +0,0 @@ -import define from '../../define.js'; -import bcrypt from 'bcryptjs'; -import rndstr from 'rndstr'; -import { Users, UserProfiles } from '@/models/index.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - password: { - type: 'string', - optional: false, nullable: false, - minLength: 8, - maxLength: 8, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (user.isAdmin) { - throw new Error('cannot reset password of admin'); - } - - const passwd = rndstr('a-zA-Z0-9', 8); - - // Generate hash of password - const hash = bcrypt.hashSync(passwd); - - await UserProfiles.update({ - userId: user.id, - }, { - password: hash, - }); - - return { - password: passwd, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts deleted file mode 100644 index 3edae4a85..000000000 --- a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../define.js'; -import { AbuseUserReports, Users } from '@/models/index.js'; -import { getInstanceActor } from '@/services/instance-actor.js'; -import { deliver } from '@/queue/index.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { renderFlag } from '@/remote/activitypub/renderer/flag.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - reportId: { type: 'string', format: 'misskey:id' }, - forward: { type: 'boolean', default: false }, - }, - required: ['reportId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const report = await AbuseUserReports.findOneByOrFail({ id: ps.reportId }); - - if (report == null) { - throw new Error('report not found'); - } - - if (ps.forward && report.targetUserHost != null) { - const actor = await getInstanceActor(); - const targetUser = await Users.findOneByOrFail({ id: report.targetUserId }); - - deliver(actor, renderActivity(renderFlag(actor, [targetUser.uri!], report.comment)), targetUser.inbox); - } - - await AbuseUserReports.update(report.id, { - resolved: true, - assigneeId: me.id, - forwarded: ps.forward && report.targetUserHost != null, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/send-email.ts b/packages/backend/src/server/api/endpoints/admin/send-email.ts deleted file mode 100644 index bbdd66e4c..000000000 --- a/packages/backend/src/server/api/endpoints/admin/send-email.ts +++ /dev/null @@ -1,24 +0,0 @@ -import define from '../../define.js'; -import { sendEmail } from '@/services/send-email.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - to: { type: 'string' }, - subject: { type: 'string' }, - text: { type: 'string' }, - }, - required: ['to', 'subject', 'text'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - await sendEmail(ps.to, ps.subject, ps.text, ps.text); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/server-info.ts b/packages/backend/src/server/api/endpoints/admin/server-info.ts deleted file mode 100644 index 85c6fb82e..000000000 --- a/packages/backend/src/server/api/endpoints/admin/server-info.ts +++ /dev/null @@ -1,127 +0,0 @@ -import * as os from 'node:os'; -import si from 'systeminformation'; -import define from '../../define.js'; -import { redisClient } from '../../../../db/redis.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - requireCredential: true, - requireModerator: true, - - tags: ['admin', 'meta'], - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - machine: { - type: 'string', - optional: false, nullable: false, - }, - os: { - type: 'string', - optional: false, nullable: false, - example: 'linux', - }, - node: { - type: 'string', - optional: false, nullable: false, - }, - psql: { - type: 'string', - optional: false, nullable: false, - }, - cpu: { - type: 'object', - optional: false, nullable: false, - properties: { - model: { - type: 'string', - optional: false, nullable: false, - }, - cores: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, - mem: { - type: 'object', - optional: false, nullable: false, - properties: { - total: { - type: 'number', - optional: false, nullable: false, - format: 'bytes', - }, - }, - }, - fs: { - type: 'object', - optional: false, nullable: false, - properties: { - total: { - type: 'number', - optional: false, nullable: false, - format: 'bytes', - }, - used: { - type: 'number', - optional: false, nullable: false, - format: 'bytes', - }, - }, - }, - net: { - type: 'object', - optional: false, nullable: false, - properties: { - interface: { - type: 'string', - optional: false, nullable: false, - example: 'eth0', - }, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const memStats = await si.mem(); - const fsStats = await si.fsSize(); - const netInterface = await si.networkInterfaceDefault(); - - const redisServerInfo = await redisClient.info('Server'); - const m = redisServerInfo.match(new RegExp('^redis_version:(.*)', 'm')); - const redis_version = m?.[1]; - - return { - machine: os.hostname(), - os: os.platform(), - node: process.version, - psql: await db.query('SHOW server_version').then(x => x[0].server_version), - redis: redis_version, - cpu: { - model: os.cpus()[0].model, - cores: os.cpus().length, - }, - mem: { - total: memStats.total, - }, - fs: { - total: fsStats[0].size, - used: fsStats[0].used, - }, - net: { - interface: netInterface, - }, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts deleted file mode 100644 index 3545536aa..000000000 --- a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts +++ /dev/null @@ -1,68 +0,0 @@ -import define from '../../define.js'; -import { ModerationLogs } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - type: { - type: 'string', - optional: false, nullable: false, - }, - info: { - type: 'object', - optional: false, nullable: false, - }, - userId: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - user: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const query = makePaginationQuery(ModerationLogs.createQueryBuilder('report'), ps.sinceId, ps.untilId); - - const reports = await query.take(ps.limit).getMany(); - - return await ModerationLogs.packMany(reports); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts deleted file mode 100644 index 0d866b311..000000000 --- a/packages/backend/src/server/api/endpoints/admin/show-user.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Signins, UserProfiles, Users } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'object', - nullable: false, optional: false, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const [user, profile] = await Promise.all([ - Users.findOneBy({ id: ps.userId }), - UserProfiles.findOneBy({ userId: ps.userId }), - ]); - - if (user == null || profile == null) { - throw new Error('user not found'); - } - - const _me = await Users.findOneByOrFail({ id: me.id }); - if ((_me.isModerator && !_me.isAdmin) && user.isAdmin) { - throw new Error('cannot show info of admin'); - } - - if (!_me.isAdmin) { - return { - isModerator: user.isModerator, - isSilenced: user.isSilenced, - isSuspended: user.isSuspended, - }; - } - - const maskedKeys = ['accessToken', 'accessTokenSecret', 'refreshToken']; - Object.keys(profile.integrations).forEach(integration => { - maskedKeys.forEach(key => profile.integrations[integration][key] = ''); - }); - - const signins = await Signins.findBy({ userId: user.id }); - - return { - email: profile.email, - emailVerified: profile.emailVerified, - autoAcceptFollowed: profile.autoAcceptFollowed, - noCrawle: profile.noCrawle, - alwaysMarkNsfw: profile.alwaysMarkNsfw, - autoSensitive: profile.autoSensitive, - carefulBot: profile.carefulBot, - injectFeaturedNote: profile.injectFeaturedNote, - receiveAnnouncementEmail: profile.receiveAnnouncementEmail, - integrations: profile.integrations, - mutedWords: profile.mutedWords, - mutedInstances: profile.mutedInstances, - mutingNotificationTypes: profile.mutingNotificationTypes, - isModerator: user.isModerator, - isSilenced: user.isSilenced, - isSuspended: user.isSuspended, - lastActiveDate: user.lastActiveDate, - moderationNote: profile.moderationNote, - signins, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/admin/show-users.ts b/packages/backend/src/server/api/endpoints/admin/show-users.ts deleted file mode 100644 index 8e09e72d5..000000000 --- a/packages/backend/src/server/api/endpoints/admin/show-users.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Users } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, - - res: { - type: 'array', - nullable: false, optional: false, - items: { - type: 'object', - nullable: false, optional: false, - ref: 'UserDetailed', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - sort: { type: 'string', enum: ['+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt'] }, - state: { type: 'string', enum: ['all', 'alive', 'available', 'admin', 'moderator', 'adminOrModerator', 'silenced', 'suspended'], default: 'all' }, - origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: 'combined' }, - username: { type: 'string', nullable: true, default: null }, - hostname: { - type: 'string', - nullable: true, - default: null, - description: 'The local host is represented with `null`.', - }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Users.createQueryBuilder('user'); - - switch (ps.state) { - case 'available': query.where('user.isSuspended = FALSE'); break; - case 'admin': query.where('user.isAdmin = TRUE'); break; - case 'moderator': query.where('user.isModerator = TRUE'); break; - case 'adminOrModerator': query.where('user.isAdmin = TRUE OR user.isModerator = TRUE'); break; - case 'alive': query.where('user.updatedAt > :date', { date: new Date(Date.now() - 1000 * 60 * 60 * 24 * 5) }); break; - case 'silenced': query.where('user.isSilenced = TRUE'); break; - case 'suspended': query.where('user.isSuspended = TRUE'); break; - } - - switch (ps.origin) { - case 'local': query.andWhere('user.host IS NULL'); break; - case 'remote': query.andWhere('user.host IS NOT NULL'); break; - } - - if (ps.username) { - query.andWhere('user.usernameLower like :username', { username: ps.username.toLowerCase() + '%' }); - } - - if (ps.hostname) { - query.andWhere('user.host = :hostname', { hostname: ps.hostname.toLowerCase() }); - } - - switch (ps.sort) { - case '+follower': query.orderBy('user.followersCount', 'DESC'); break; - case '-follower': query.orderBy('user.followersCount', 'ASC'); break; - case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; - case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; - case '+updatedAt': query.orderBy('user.updatedAt', 'DESC', 'NULLS LAST'); break; - case '-updatedAt': query.orderBy('user.updatedAt', 'ASC', 'NULLS FIRST'); break; - default: query.orderBy('user.id', 'ASC'); break; - } - - query.take(ps.limit); - query.skip(ps.offset); - - const users = await query.getMany(); - - return await Users.packMany(users, me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/silence-user.ts b/packages/backend/src/server/api/endpoints/admin/silence-user.ts deleted file mode 100644 index 17b9f3b5a..000000000 --- a/packages/backend/src/server/api/endpoints/admin/silence-user.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (user.isAdmin) { - throw new Error('cannot silence admin'); - } - - await Users.update(user.id, { - isSilenced: true, - }); - - publishInternalEvent('userChangeSilencedState', { id: user.id, isSilenced: true }); - - insertModerationLog(me, 'silence', { - targetId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts deleted file mode 100644 index ed513eda0..000000000 --- a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts +++ /dev/null @@ -1,85 +0,0 @@ -import define from '../../define.js'; -import deleteFollowing from '@/services/following/delete.js'; -import { Users, Followings, Notifications } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { doPostSuspend } from '@/services/suspend-user.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - if (user.isAdmin) { - throw new Error('cannot suspend admin'); - } - - if (user.isModerator) { - throw new Error('cannot suspend moderator'); - } - - await Users.update(user.id, { - isSuspended: true, - }); - - insertModerationLog(me, 'suspend', { - targetId: user.id, - }); - - // Terminate streaming - if (Users.isLocalUser(user)) { - publishUserEvent(user.id, 'terminate', {}); - } - - (async () => { - await doPostSuspend(user).catch(e => {}); - await unFollowAll(user).catch(e => {}); - await readAllNotify(user).catch(e => {}); - })(); -}); - -async function unFollowAll(follower: User) { - const followings = await Followings.findBy({ - followerId: follower.id, - }); - - for (const following of followings) { - const followee = await Users.findOneBy({ - id: following.followeeId, - }); - - if (followee == null) { - throw `Cant find followee ${following.followeeId}`; - } - - await deleteFollowing(follower, followee, true); - } -} - -async function readAllNotify(notifier: User) { - await Notifications.update({ - notifierId: notifier.id, - isRead: false, - }, { - isRead: true, - }); -} diff --git a/packages/backend/src/server/api/endpoints/admin/unsilence-user.ts b/packages/backend/src/server/api/endpoints/admin/unsilence-user.ts deleted file mode 100644 index a4b373f5c..000000000 --- a/packages/backend/src/server/api/endpoints/admin/unsilence-user.ts +++ /dev/null @@ -1,38 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - await Users.update(user.id, { - isSilenced: false, - }); - - publishInternalEvent('userChangeSilencedState', { id: user.id, isSilenced: false }); - - insertModerationLog(me, 'unsilence', { - targetId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts b/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts deleted file mode 100644 index 5cf26251b..000000000 --- a/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts +++ /dev/null @@ -1,38 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { doPostUnsuspend } from '@/services/unsuspend-user.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - await Users.update(user.id, { - isSuspended: false, - }); - - insertModerationLog(me, 'unsuspend', { - targetId: user.id, - }); - - doPostUnsuspend(user); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts deleted file mode 100644 index f14aa4105..000000000 --- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts +++ /dev/null @@ -1,446 +0,0 @@ -import { Meta } from '@/models/entities/meta.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits.js'; -import { db } from '@/db/postgre.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireAdmin: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - disableRegistration: { type: 'boolean', nullable: true }, - disableLocalTimeline: { type: 'boolean', nullable: true }, - disableGlobalTimeline: { type: 'boolean', nullable: true }, - useStarForReactionFallback: { type: 'boolean', nullable: true }, - pinnedUsers: { type: 'array', nullable: true, items: { - type: 'string', - } }, - hiddenTags: { type: 'array', nullable: true, items: { - type: 'string', - } }, - blockedHosts: { type: 'array', nullable: true, items: { - type: 'string', - } }, - themeColor: { type: 'string', nullable: true, pattern: '^#[0-9a-fA-F]{6}$' }, - mascotImageUrl: { type: 'string', nullable: true }, - bannerUrl: { type: 'string', nullable: true }, - errorImageUrl: { type: 'string', nullable: true }, - iconUrl: { type: 'string', nullable: true }, - backgroundImageUrl: { type: 'string', nullable: true }, - logoImageUrl: { type: 'string', nullable: true }, - name: { type: 'string', nullable: true }, - description: { type: 'string', nullable: true }, - defaultLightTheme: { type: 'string', nullable: true }, - defaultDarkTheme: { type: 'string', nullable: true }, - localDriveCapacityMb: { type: 'integer' }, - remoteDriveCapacityMb: { type: 'integer' }, - cacheRemoteFiles: { type: 'boolean' }, - emailRequiredForSignup: { type: 'boolean' }, - enableHcaptcha: { type: 'boolean' }, - hcaptchaSiteKey: { type: 'string', nullable: true }, - hcaptchaSecretKey: { type: 'string', nullable: true }, - enableRecaptcha: { type: 'boolean' }, - recaptchaSiteKey: { type: 'string', nullable: true }, - recaptchaSecretKey: { type: 'string', nullable: true }, - sensitiveMediaDetection: { type: 'string', enum: ['none', 'all', 'local', 'remote'] }, - sensitiveMediaDetectionSensitivity: { type: 'string', enum: ['medium', 'low', 'high', 'veryLow', 'veryHigh'] }, - setSensitiveFlagAutomatically: { type: 'boolean' }, - enableSensitiveMediaDetectionForVideos: { type: 'boolean' }, - proxyAccountId: { type: 'string', format: 'misskey:id', nullable: true }, - maintainerName: { type: 'string', nullable: true }, - maintainerEmail: { type: 'string', nullable: true }, - pinnedPages: { type: 'array', items: { - type: 'string', - } }, - pinnedClipId: { type: 'string', format: 'misskey:id', nullable: true }, - langs: { type: 'array', items: { - type: 'string', - } }, - summalyProxy: { type: 'string', nullable: true }, - deeplAuthKey: { type: 'string', nullable: true }, - deeplIsPro: { type: 'boolean' }, - enableTwitterIntegration: { type: 'boolean' }, - twitterConsumerKey: { type: 'string', nullable: true }, - twitterConsumerSecret: { type: 'string', nullable: true }, - enableGithubIntegration: { type: 'boolean' }, - githubClientId: { type: 'string', nullable: true }, - githubClientSecret: { type: 'string', nullable: true }, - enableDiscordIntegration: { type: 'boolean' }, - discordClientId: { type: 'string', nullable: true }, - discordClientSecret: { type: 'string', nullable: true }, - enableEmail: { type: 'boolean' }, - email: { type: 'string', nullable: true }, - smtpSecure: { type: 'boolean' }, - smtpHost: { type: 'string', nullable: true }, - smtpPort: { type: 'integer', nullable: true }, - smtpUser: { type: 'string', nullable: true }, - smtpPass: { type: 'string', nullable: true }, - enableServiceWorker: { type: 'boolean' }, - swPublicKey: { type: 'string', nullable: true }, - swPrivateKey: { type: 'string', nullable: true }, - tosUrl: { type: 'string', nullable: true }, - repositoryUrl: { type: 'string' }, - feedbackUrl: { type: 'string' }, - useObjectStorage: { type: 'boolean' }, - objectStorageBaseUrl: { type: 'string', nullable: true }, - objectStorageBucket: { type: 'string', nullable: true }, - objectStoragePrefix: { type: 'string', nullable: true }, - objectStorageEndpoint: { type: 'string', nullable: true }, - objectStorageRegion: { type: 'string', nullable: true }, - objectStoragePort: { type: 'integer', nullable: true }, - objectStorageAccessKey: { type: 'string', nullable: true }, - objectStorageSecretKey: { type: 'string', nullable: true }, - objectStorageUseSSL: { type: 'boolean' }, - objectStorageUseProxy: { type: 'boolean' }, - objectStorageSetPublicRead: { type: 'boolean' }, - objectStorageS3ForcePathStyle: { type: 'boolean' }, - enableIpLogging: { type: 'boolean' }, - enableActiveEmailValidation: { type: 'boolean' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const set = {} as Partial; - - if (typeof ps.disableRegistration === 'boolean') { - set.disableRegistration = ps.disableRegistration; - } - - if (typeof ps.disableLocalTimeline === 'boolean') { - set.disableLocalTimeline = ps.disableLocalTimeline; - } - - if (typeof ps.disableGlobalTimeline === 'boolean') { - set.disableGlobalTimeline = ps.disableGlobalTimeline; - } - - if (typeof ps.useStarForReactionFallback === 'boolean') { - set.useStarForReactionFallback = ps.useStarForReactionFallback; - } - - if (Array.isArray(ps.pinnedUsers)) { - set.pinnedUsers = ps.pinnedUsers.filter(Boolean); - } - - if (Array.isArray(ps.hiddenTags)) { - set.hiddenTags = ps.hiddenTags.filter(Boolean); - } - - if (Array.isArray(ps.blockedHosts)) { - set.blockedHosts = ps.blockedHosts.filter(Boolean); - } - - if (ps.themeColor !== undefined) { - set.themeColor = ps.themeColor; - } - - if (ps.mascotImageUrl !== undefined) { - set.mascotImageUrl = ps.mascotImageUrl; - } - - if (ps.bannerUrl !== undefined) { - set.bannerUrl = ps.bannerUrl; - } - - if (ps.iconUrl !== undefined) { - set.iconUrl = ps.iconUrl; - } - - if (ps.backgroundImageUrl !== undefined) { - set.backgroundImageUrl = ps.backgroundImageUrl; - } - - if (ps.logoImageUrl !== undefined) { - set.logoImageUrl = ps.logoImageUrl; - } - - if (ps.name !== undefined) { - set.name = ps.name; - } - - if (ps.description !== undefined) { - set.description = ps.description; - } - - if (ps.defaultLightTheme !== undefined) { - set.defaultLightTheme = ps.defaultLightTheme; - } - - if (ps.defaultDarkTheme !== undefined) { - set.defaultDarkTheme = ps.defaultDarkTheme; - } - - if (ps.localDriveCapacityMb !== undefined) { - set.localDriveCapacityMb = ps.localDriveCapacityMb; - } - - if (ps.remoteDriveCapacityMb !== undefined) { - set.remoteDriveCapacityMb = ps.remoteDriveCapacityMb; - } - - if (ps.cacheRemoteFiles !== undefined) { - set.cacheRemoteFiles = ps.cacheRemoteFiles; - } - - if (ps.emailRequiredForSignup !== undefined) { - set.emailRequiredForSignup = ps.emailRequiredForSignup; - } - - if (ps.enableHcaptcha !== undefined) { - set.enableHcaptcha = ps.enableHcaptcha; - } - - if (ps.hcaptchaSiteKey !== undefined) { - set.hcaptchaSiteKey = ps.hcaptchaSiteKey; - } - - if (ps.hcaptchaSecretKey !== undefined) { - set.hcaptchaSecretKey = ps.hcaptchaSecretKey; - } - - if (ps.enableRecaptcha !== undefined) { - set.enableRecaptcha = ps.enableRecaptcha; - } - - if (ps.recaptchaSiteKey !== undefined) { - set.recaptchaSiteKey = ps.recaptchaSiteKey; - } - - if (ps.recaptchaSecretKey !== undefined) { - set.recaptchaSecretKey = ps.recaptchaSecretKey; - } - - if (ps.sensitiveMediaDetection !== undefined) { - set.sensitiveMediaDetection = ps.sensitiveMediaDetection; - } - - if (ps.sensitiveMediaDetectionSensitivity !== undefined) { - set.sensitiveMediaDetectionSensitivity = ps.sensitiveMediaDetectionSensitivity; - } - - if (ps.setSensitiveFlagAutomatically !== undefined) { - set.setSensitiveFlagAutomatically = ps.setSensitiveFlagAutomatically; - } - - if (ps.enableSensitiveMediaDetectionForVideos !== undefined) { - set.enableSensitiveMediaDetectionForVideos = ps.enableSensitiveMediaDetectionForVideos; - } - - if (ps.proxyAccountId !== undefined) { - set.proxyAccountId = ps.proxyAccountId; - } - - if (ps.maintainerName !== undefined) { - set.maintainerName = ps.maintainerName; - } - - if (ps.maintainerEmail !== undefined) { - set.maintainerEmail = ps.maintainerEmail; - } - - if (Array.isArray(ps.langs)) { - set.langs = ps.langs.filter(Boolean); - } - - if (Array.isArray(ps.pinnedPages)) { - set.pinnedPages = ps.pinnedPages.filter(Boolean); - } - - if (ps.pinnedClipId !== undefined) { - set.pinnedClipId = ps.pinnedClipId; - } - - if (ps.summalyProxy !== undefined) { - set.summalyProxy = ps.summalyProxy; - } - - if (ps.enableTwitterIntegration !== undefined) { - set.enableTwitterIntegration = ps.enableTwitterIntegration; - } - - if (ps.twitterConsumerKey !== undefined) { - set.twitterConsumerKey = ps.twitterConsumerKey; - } - - if (ps.twitterConsumerSecret !== undefined) { - set.twitterConsumerSecret = ps.twitterConsumerSecret; - } - - if (ps.enableGithubIntegration !== undefined) { - set.enableGithubIntegration = ps.enableGithubIntegration; - } - - if (ps.githubClientId !== undefined) { - set.githubClientId = ps.githubClientId; - } - - if (ps.githubClientSecret !== undefined) { - set.githubClientSecret = ps.githubClientSecret; - } - - if (ps.enableDiscordIntegration !== undefined) { - set.enableDiscordIntegration = ps.enableDiscordIntegration; - } - - if (ps.discordClientId !== undefined) { - set.discordClientId = ps.discordClientId; - } - - if (ps.discordClientSecret !== undefined) { - set.discordClientSecret = ps.discordClientSecret; - } - - if (ps.enableEmail !== undefined) { - set.enableEmail = ps.enableEmail; - } - - if (ps.email !== undefined) { - set.email = ps.email; - } - - if (ps.smtpSecure !== undefined) { - set.smtpSecure = ps.smtpSecure; - } - - if (ps.smtpHost !== undefined) { - set.smtpHost = ps.smtpHost; - } - - if (ps.smtpPort !== undefined) { - set.smtpPort = ps.smtpPort; - } - - if (ps.smtpUser !== undefined) { - set.smtpUser = ps.smtpUser; - } - - if (ps.smtpPass !== undefined) { - set.smtpPass = ps.smtpPass; - } - - if (ps.errorImageUrl !== undefined) { - set.errorImageUrl = ps.errorImageUrl; - } - - if (ps.enableServiceWorker !== undefined) { - set.enableServiceWorker = ps.enableServiceWorker; - } - - if (ps.swPublicKey !== undefined) { - set.swPublicKey = ps.swPublicKey; - } - - if (ps.swPrivateKey !== undefined) { - set.swPrivateKey = ps.swPrivateKey; - } - - if (ps.tosUrl !== undefined) { - set.ToSUrl = ps.tosUrl; - } - - if (ps.repositoryUrl !== undefined) { - set.repositoryUrl = ps.repositoryUrl; - } - - if (ps.feedbackUrl !== undefined) { - set.feedbackUrl = ps.feedbackUrl; - } - - if (ps.useObjectStorage !== undefined) { - set.useObjectStorage = ps.useObjectStorage; - } - - if (ps.objectStorageBaseUrl !== undefined) { - set.objectStorageBaseUrl = ps.objectStorageBaseUrl; - } - - if (ps.objectStorageBucket !== undefined) { - set.objectStorageBucket = ps.objectStorageBucket; - } - - if (ps.objectStoragePrefix !== undefined) { - set.objectStoragePrefix = ps.objectStoragePrefix; - } - - if (ps.objectStorageEndpoint !== undefined) { - set.objectStorageEndpoint = ps.objectStorageEndpoint; - } - - if (ps.objectStorageRegion !== undefined) { - set.objectStorageRegion = ps.objectStorageRegion; - } - - if (ps.objectStoragePort !== undefined) { - set.objectStoragePort = ps.objectStoragePort; - } - - if (ps.objectStorageAccessKey !== undefined) { - set.objectStorageAccessKey = ps.objectStorageAccessKey; - } - - if (ps.objectStorageSecretKey !== undefined) { - set.objectStorageSecretKey = ps.objectStorageSecretKey; - } - - if (ps.objectStorageUseSSL !== undefined) { - set.objectStorageUseSSL = ps.objectStorageUseSSL; - } - - if (ps.objectStorageUseProxy !== undefined) { - set.objectStorageUseProxy = ps.objectStorageUseProxy; - } - - if (ps.objectStorageSetPublicRead !== undefined) { - set.objectStorageSetPublicRead = ps.objectStorageSetPublicRead; - } - - if (ps.objectStorageS3ForcePathStyle !== undefined) { - set.objectStorageS3ForcePathStyle = ps.objectStorageS3ForcePathStyle; - } - - if (ps.deeplAuthKey !== undefined) { - if (ps.deeplAuthKey === '') { - set.deeplAuthKey = null; - } else { - set.deeplAuthKey = ps.deeplAuthKey; - } - } - - if (ps.deeplIsPro !== undefined) { - set.deeplIsPro = ps.deeplIsPro; - } - - if (ps.enableIpLogging !== undefined) { - set.enableIpLogging = ps.enableIpLogging; - } - - if (ps.enableActiveEmailValidation !== undefined) { - set.enableActiveEmailValidation = ps.enableActiveEmailValidation; - } - - await db.transaction(async transactionalEntityManager => { - const metas = await transactionalEntityManager.find(Meta, { - order: { - id: 'DESC', - }, - }); - - const meta = metas[0]; - - if (meta) { - await transactionalEntityManager.update(Meta, meta.id, set); - } else { - await transactionalEntityManager.save(Meta, set); - } - }); - - insertModerationLog(me, 'updateMeta'); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/update-user-note.ts b/packages/backend/src/server/api/endpoints/admin/update-user-note.ts deleted file mode 100644 index fa21ab783..000000000 --- a/packages/backend/src/server/api/endpoints/admin/update-user-note.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { UserProfiles, Users } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - text: { type: 'string' }, - }, - required: ['userId', 'text'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - - if (user == null) { - throw new Error('user not found'); - } - - await UserProfiles.update({ userId: user.id }, { - moderationNote: ps.text, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/vacuum.ts b/packages/backend/src/server/api/endpoints/admin/vacuum.ts deleted file mode 100644 index 0546acfac..000000000 --- a/packages/backend/src/server/api/endpoints/admin/vacuum.ts +++ /dev/null @@ -1,36 +0,0 @@ -import define from '../../define.js'; -import { insertModerationLog } from '@/services/insert-moderation-log.js'; -import { db } from '@/db/postgre.js'; - -export const meta = { - tags: ['admin'], - - requireCredential: true, - requireModerator: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - full: { type: 'boolean' }, - analyze: { type: 'boolean' }, - }, - required: ['full', 'analyze'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const params: string[] = []; - - if (ps.full) { - params.push('FULL'); - } - - if (ps.analyze) { - params.push('ANALYZE'); - } - - db.query('VACUUM ' + params.join(' ')); - - insertModerationLog(me, 'vacuum', ps); -}); diff --git a/packages/backend/src/server/api/endpoints/announcements.ts b/packages/backend/src/server/api/endpoints/announcements.ts deleted file mode 100644 index 23cb93c9a..000000000 --- a/packages/backend/src/server/api/endpoints/announcements.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { Announcements, AnnouncementReads } from '@/models/index.js'; -import define from '../define.js'; -import { makePaginationQuery } from '../common/make-pagination-query.js'; - -export const meta = { - tags: ['meta'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - example: 'xxxxxxxxxx', - }, - createdAt: { - type: 'string', - optional: false, nullable: false, - format: 'date-time', - }, - updatedAt: { - type: 'string', - optional: false, nullable: true, - format: 'date-time', - }, - text: { - type: 'string', - optional: false, nullable: false, - }, - title: { - type: 'string', - optional: false, nullable: false, - }, - imageUrl: { - type: 'string', - optional: false, nullable: true, - }, - isRead: { - type: 'boolean', - optional: true, nullable: false, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - withUnreads: { type: 'boolean', default: false }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Announcements.createQueryBuilder('announcement'), ps.sinceId, ps.untilId); - - const announcements = await query.take(ps.limit).getMany(); - - if (user) { - const reads = (await AnnouncementReads.findBy({ - userId: user.id, - })).map(x => x.announcementId); - - for (const announcement of announcements) { - (announcement as any).isRead = reads.includes(announcement.id); - } - } - - return (ps.withUnreads ? announcements.filter((a: any) => !a.isRead) : announcements).map((a) => ({ - ...a, - createdAt: a.createdAt.toISOString(), - updatedAt: a.updatedAt?.toISOString() ?? null, - })); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts deleted file mode 100644 index 7a4923b94..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/create.ts +++ /dev/null @@ -1,108 +0,0 @@ -import define from '../../define.js'; -import { genId } from '@/misc/gen-id.js'; -import { Antennas, UserLists, UserGroupJoinings } from '@/models/index.js'; -import { ApiError } from '../../error.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['antennas'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchUserList: { - message: 'No such user list.', - code: 'NO_SUCH_USER_LIST', - id: '95063e93-a283-4b8b-9aa5-bcdb8df69a7f', - }, - - noSuchUserGroup: { - message: 'No such user group.', - code: 'NO_SUCH_USER_GROUP', - id: 'aa3c0b9a-8cae-47c0-92ac-202ce5906682', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Antenna', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - src: { type: 'string', enum: ['home', 'all', 'users', 'list', 'group'] }, - userListId: { type: 'string', format: 'misskey:id', nullable: true }, - userGroupId: { type: 'string', format: 'misskey:id', nullable: true }, - keywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - excludeKeywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - users: { type: 'array', items: { - type: 'string', - } }, - caseSensitive: { type: 'boolean' }, - withReplies: { type: 'boolean' }, - withFile: { type: 'boolean' }, - notify: { type: 'boolean' }, - }, - required: ['name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let userList; - let userGroupJoining; - - if (ps.src === 'list' && ps.userListId) { - userList = await UserLists.findOneBy({ - id: ps.userListId, - userId: user.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchUserList); - } - } else if (ps.src === 'group' && ps.userGroupId) { - userGroupJoining = await UserGroupJoinings.findOneBy({ - userGroupId: ps.userGroupId, - userId: user.id, - }); - - if (userGroupJoining == null) { - throw new ApiError(meta.errors.noSuchUserGroup); - } - } - - const antenna = await Antennas.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - src: ps.src, - userListId: userList ? userList.id : null, - userGroupJoiningId: userGroupJoining ? userGroupJoining.id : null, - keywords: ps.keywords, - excludeKeywords: ps.excludeKeywords, - users: ps.users, - caseSensitive: ps.caseSensitive, - withReplies: ps.withReplies, - withFile: ps.withFile, - notify: ps.notify, - }).then(x => Antennas.findOneByOrFail(x.identifiers[0])); - - publishInternalEvent('antennaCreated', antenna); - - return await Antennas.pack(antenna); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/delete.ts b/packages/backend/src/server/api/endpoints/antennas/delete.ts deleted file mode 100644 index ced34ba31..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/delete.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Antennas } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['antennas'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchAntenna: { - message: 'No such antenna.', - code: 'NO_SUCH_ANTENNA', - id: 'b34dcf9d-348f-44bb-99d0-6c9314cfe2df', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - antennaId: { type: 'string', format: 'misskey:id' }, - }, - required: ['antennaId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const antenna = await Antennas.findOneBy({ - id: ps.antennaId, - userId: user.id, - }); - - if (antenna == null) { - throw new ApiError(meta.errors.noSuchAntenna); - } - - await Antennas.delete(antenna.id); - - publishInternalEvent('antennaDeleted', antenna); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/list.ts b/packages/backend/src/server/api/endpoints/antennas/list.ts deleted file mode 100644 index c519b452e..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/list.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../define.js'; -import { Antennas } from '@/models/index.js'; - -export const meta = { - tags: ['antennas', 'account'], - - requireCredential: true, - - kind: 'read:account', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Antenna', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const antennas = await Antennas.findBy({ - userId: me.id, - }); - - return await Promise.all(antennas.map(x => Antennas.pack(x))); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts deleted file mode 100644 index 8aac55b4a..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/notes.ts +++ /dev/null @@ -1,89 +0,0 @@ -import define from '../../define.js'; -import readNote from '@/services/note/read.js'; -import { Antennas, Notes, AntennaNotes } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { ApiError } from '../../error.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['antennas', 'account', 'notes'], - - requireCredential: true, - - kind: 'read:account', - - errors: { - noSuchAntenna: { - message: 'No such antenna.', - code: 'NO_SUCH_ANTENNA', - id: '850926e0-fd3b-49b6-b69a-b28a5dbd82fe', - }, - }, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - antennaId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - }, - required: ['antennaId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const antenna = await Antennas.findOneBy({ - id: ps.antennaId, - userId: user.id, - }); - - if (antenna == null) { - throw new ApiError(meta.errors.noSuchAntenna); - } - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .innerJoin(AntennaNotes.metadata.targetName, 'antennaNote', 'antennaNote.noteId = note.id') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .andWhere('antennaNote.antennaId = :antennaId', { antennaId: antenna.id }); - - generateVisibilityQuery(query, user); - generateMutedUserQuery(query, user); - generateBlockedUserQuery(query, user); - - const notes = await query - .take(ps.limit) - .getMany(); - - if (notes.length > 0) { - readNote(user.id, notes); - } - - return await Notes.packMany(notes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/show.ts b/packages/backend/src/server/api/endpoints/antennas/show.ts deleted file mode 100644 index dd693789c..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/show.ts +++ /dev/null @@ -1,48 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Antennas } from '@/models/index.js'; - -export const meta = { - tags: ['antennas', 'account'], - - requireCredential: true, - - kind: 'read:account', - - errors: { - noSuchAntenna: { - message: 'No such antenna.', - code: 'NO_SUCH_ANTENNA', - id: 'c06569fb-b025-4f23-b22d-1fcd20d2816b', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Antenna', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - antennaId: { type: 'string', format: 'misskey:id' }, - }, - required: ['antennaId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the antenna - const antenna = await Antennas.findOneBy({ - id: ps.antennaId, - userId: me.id, - }); - - if (antenna == null) { - throw new ApiError(meta.errors.noSuchAntenna); - } - - return await Antennas.pack(antenna); -}); diff --git a/packages/backend/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts deleted file mode 100644 index edfedc175..000000000 --- a/packages/backend/src/server/api/endpoints/antennas/update.ts +++ /dev/null @@ -1,121 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Antennas, UserLists, UserGroupJoinings } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['antennas'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchAntenna: { - message: 'No such antenna.', - code: 'NO_SUCH_ANTENNA', - id: '10c673ac-8852-48eb-aa1f-f5b67f069290', - }, - - noSuchUserList: { - message: 'No such user list.', - code: 'NO_SUCH_USER_LIST', - id: '1c6b35c9-943e-48c2-81e4-2844989407f7', - }, - - noSuchUserGroup: { - message: 'No such user group.', - code: 'NO_SUCH_USER_GROUP', - id: '109ed789-b6eb-456e-b8a9-6059d567d385', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Antenna', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - antennaId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 100 }, - src: { type: 'string', enum: ['home', 'all', 'users', 'list', 'group'] }, - userListId: { type: 'string', format: 'misskey:id', nullable: true }, - userGroupId: { type: 'string', format: 'misskey:id', nullable: true }, - keywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - excludeKeywords: { type: 'array', items: { - type: 'array', items: { - type: 'string', - }, - } }, - users: { type: 'array', items: { - type: 'string', - } }, - caseSensitive: { type: 'boolean' }, - withReplies: { type: 'boolean' }, - withFile: { type: 'boolean' }, - notify: { type: 'boolean' }, - }, - required: ['antennaId', 'name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch the antenna - const antenna = await Antennas.findOneBy({ - id: ps.antennaId, - userId: user.id, - }); - - if (antenna == null) { - throw new ApiError(meta.errors.noSuchAntenna); - } - - let userList; - let userGroupJoining; - - if (ps.src === 'list' && ps.userListId) { - userList = await UserLists.findOneBy({ - id: ps.userListId, - userId: user.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchUserList); - } - } else if (ps.src === 'group' && ps.userGroupId) { - userGroupJoining = await UserGroupJoinings.findOneBy({ - userGroupId: ps.userGroupId, - userId: user.id, - }); - - if (userGroupJoining == null) { - throw new ApiError(meta.errors.noSuchUserGroup); - } - } - - await Antennas.update(antenna.id, { - name: ps.name, - src: ps.src, - userListId: userList ? userList.id : null, - userGroupJoiningId: userGroupJoining ? userGroupJoining.id : null, - keywords: ps.keywords, - excludeKeywords: ps.excludeKeywords, - users: ps.users, - caseSensitive: ps.caseSensitive, - withReplies: ps.withReplies, - withFile: ps.withFile, - notify: ps.notify, - }); - - publishInternalEvent('antennaUpdated', await Antennas.findOneByOrFail({ id: antenna.id })); - - return await Antennas.pack(antenna.id); -}); diff --git a/packages/backend/src/server/api/endpoints/ap/get.ts b/packages/backend/src/server/api/endpoints/ap/get.ts deleted file mode 100644 index 0cbe7ebc6..000000000 --- a/packages/backend/src/server/api/endpoints/ap/get.ts +++ /dev/null @@ -1,38 +0,0 @@ -import define from '../../define.js'; -import Resolver from '@/remote/activitypub/resolver.js'; -import { ApiError } from '../../error.js'; -import ms from 'ms'; - -export const meta = { - tags: ['federation'], - - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 30, - }, - - errors: { - }, - - res: { - type: 'object', - optional: false, nullable: false, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - uri: { type: 'string' }, - }, - required: ['uri'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const resolver = new Resolver(); - const object = await resolver.resolve(ps.uri); - return object; -}); diff --git a/packages/backend/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts deleted file mode 100644 index 6442a1412..000000000 --- a/packages/backend/src/server/api/endpoints/ap/show.ts +++ /dev/null @@ -1,147 +0,0 @@ -import define from '../../define.js'; -import config from '@/config/index.js'; -import { createPerson } from '@/remote/activitypub/models/person.js'; -import { createNote } from '@/remote/activitypub/models/note.js'; -import DbResolver from '@/remote/activitypub/db-resolver.js'; -import Resolver from '@/remote/activitypub/resolver.js'; -import { ApiError } from '../../error.js'; -import { extractDbHost } from '@/misc/convert-host.js'; -import { Users, Notes } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { CacheableLocalUser, User } from '@/models/entities/user.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { isActor, isPost, getApId } from '@/remote/activitypub/type.js'; -import ms from 'ms'; -import { SchemaType } from '@/misc/schema.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 30, - }, - - errors: { - noSuchObject: { - message: 'No such object.', - code: 'NO_SUCH_OBJECT', - id: 'dc94d745-1262-4e63-a17d-fecaa57efc82', - }, - }, - - res: { - optional: false, nullable: false, - oneOf: [ - { - type: 'object', - properties: { - type: { - type: 'string', - optional: false, nullable: false, - enum: ['User'], - }, - object: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - } - } - }, - { - type: 'object', - properties: { - type: { - type: 'string', - optional: false, nullable: false, - enum: ['Note'], - }, - object: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - } - } - } - ], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - uri: { type: 'string' }, - }, - required: ['uri'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const object = await fetchAny(ps.uri, me); - if (object) { - return object; - } else { - throw new ApiError(meta.errors.noSuchObject); - } -}); - -/*** - * URIからUserかNoteを解決する - */ -async function fetchAny(uri: string, me: CacheableLocalUser | null | undefined): Promise | null> { - // ブロックしてたら中断 - const fetchedMeta = await fetchMeta(); - if (fetchedMeta.blockedHosts.includes(extractDbHost(uri))) return null; - - const dbResolver = new DbResolver(); - - let local = await mergePack(me, ...await Promise.all([ - dbResolver.getUserFromApId(uri), - dbResolver.getNoteFromApId(uri), - ])); - if (local != null) return local; - - // リモートから一旦オブジェクトフェッチ - const resolver = new Resolver(); - const object = await resolver.resolve(uri) as any; - - // /@user のような正規id以外で取得できるURIが指定されていた場合、ここで初めて正規URIが確定する - // これはDBに存在する可能性があるため再度DB検索 - if (uri !== object.id) { - local = await mergePack(me, ...await Promise.all([ - dbResolver.getUserFromApId(object.id), - dbResolver.getNoteFromApId(object.id), - ])); - if (local != null) return local; - } - - return await mergePack( - me, - isActor(object) ? await createPerson(getApId(object)) : null, - isPost(object) ? await createNote(getApId(object), undefined, true) : null, - ); -} - -async function mergePack(me: CacheableLocalUser | null | undefined, user: User | null | undefined, note: Note | null | undefined): Promise | null> { - if (user != null) { - return { - type: 'User', - object: await Users.pack(user, me, { detail: true }), - }; - } else if (note != null) { - try { - const object = await Notes.pack(note, me, { detail: true }); - - return { - type: 'Note', - object, - }; - } catch (e) { - return null; - } - } - - return null; -} diff --git a/packages/backend/src/server/api/endpoints/app/create.ts b/packages/backend/src/server/api/endpoints/app/create.ts deleted file mode 100644 index a0a735082..000000000 --- a/packages/backend/src/server/api/endpoints/app/create.ts +++ /dev/null @@ -1,56 +0,0 @@ -import define from '../../define.js'; -import { Apps } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { unique } from '@/prelude/array.js'; -import { secureRndstr } from '@/misc/secure-rndstr.js'; - -export const meta = { - tags: ['app'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'App', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string' }, - description: { type: 'string' }, - permission: { type: 'array', uniqueItems: true, items: { - type: 'string', - } }, - callbackUrl: { type: 'string', nullable: true }, - }, - required: ['name', 'description', 'permission'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Generate secret - const secret = secureRndstr(32, true); - - // for backward compatibility - const permission = unique(ps.permission.map(v => v.replace(/^(.+)(\/|-)(read|write)$/, '$3:$1'))); - - // Create account - const app = await Apps.insert({ - id: genId(), - createdAt: new Date(), - userId: user ? user.id : null, - name: ps.name, - description: ps.description, - permission, - callbackUrl: ps.callbackUrl, - secret: secret, - }).then(x => Apps.findOneByOrFail(x.identifiers[0])); - - return await Apps.pack(app, null, { - detail: true, - includeSecret: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/app/show.ts b/packages/backend/src/server/api/endpoints/app/show.ts deleted file mode 100644 index 451969d97..000000000 --- a/packages/backend/src/server/api/endpoints/app/show.ts +++ /dev/null @@ -1,46 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Apps } from '@/models/index.js'; - -export const meta = { - tags: ['app'], - - errors: { - noSuchApp: { - message: 'No such app.', - code: 'NO_SUCH_APP', - id: 'dce83913-2dc6-4093-8a7b-71dbb11718a3', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'App', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - appId: { type: 'string', format: 'misskey:id' }, - }, - required: ['appId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user, token) => { - const isSecure = user != null && token == null; - - // Lookup app - const ap = await Apps.findOneBy({ id: ps.appId }); - - if (ap == null) { - throw new ApiError(meta.errors.noSuchApp); - } - - return await Apps.pack(ap, user, { - detail: true, - includeSecret: isSecure && (ap.userId === user!.id), - }); -}); diff --git a/packages/backend/src/server/api/endpoints/auth/accept.ts b/packages/backend/src/server/api/endpoints/auth/accept.ts deleted file mode 100644 index b5c06792b..000000000 --- a/packages/backend/src/server/api/endpoints/auth/accept.ts +++ /dev/null @@ -1,78 +0,0 @@ -import * as crypto from 'node:crypto'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { AuthSessions, AccessTokens, Apps } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { secureRndstr } from '@/misc/secure-rndstr.js'; - -export const meta = { - tags: ['auth'], - - requireCredential: true, - - secure: true, - - errors: { - noSuchSession: { - message: 'No such session.', - code: 'NO_SUCH_SESSION', - id: '9c72d8de-391a-43c1-9d06-08d29efde8df', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - token: { type: 'string' }, - }, - required: ['token'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch token - const session = await AuthSessions - .findOneBy({ token: ps.token }); - - if (session == null) { - throw new ApiError(meta.errors.noSuchSession); - } - - // Generate access token - const accessToken = secureRndstr(32, true); - - // Fetch exist access token - const exist = await AccessTokens.findOneBy({ - appId: session.appId, - userId: user.id, - }); - - if (exist == null) { - // Lookup app - const app = await Apps.findOneByOrFail({ id: session.appId }); - - // Generate Hash - const sha256 = crypto.createHash('sha256'); - sha256.update(accessToken + app.secret); - const hash = sha256.digest('hex'); - - const now = new Date(); - - // Insert access token doc - await AccessTokens.insert({ - id: genId(), - createdAt: now, - lastUsedAt: now, - appId: session.appId, - userId: user.id, - token: accessToken, - hash: hash, - }); - } - - // Update session - await AuthSessions.update(session.id, { - userId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/auth/session/generate.ts b/packages/backend/src/server/api/endpoints/auth/session/generate.ts deleted file mode 100644 index 717c3e508..000000000 --- a/packages/backend/src/server/api/endpoints/auth/session/generate.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { v4 as uuid } from 'uuid'; -import config from '@/config/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { Apps, AuthSessions } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['auth'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - token: { - type: 'string', - optional: false, nullable: false, - }, - url: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - }, - }, - - errors: { - noSuchApp: { - message: 'No such app.', - code: 'NO_SUCH_APP', - id: '92f93e63-428e-4f2f-a5a4-39e1407fe998', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - appSecret: { type: 'string' }, - }, - required: ['appSecret'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - // Lookup app - const app = await Apps.findOneBy({ - secret: ps.appSecret, - }); - - if (app == null) { - throw new ApiError(meta.errors.noSuchApp); - } - - // Generate token - const token = uuid(); - - // Create session token document - const doc = await AuthSessions.insert({ - id: genId(), - createdAt: new Date(), - appId: app.id, - token: token, - }).then(x => AuthSessions.findOneByOrFail(x.identifiers[0])); - - return { - token: doc.token, - url: `${config.authUrl}/${doc.token}`, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/auth/session/show.ts b/packages/backend/src/server/api/endpoints/auth/session/show.ts deleted file mode 100644 index 3f3a4d142..000000000 --- a/packages/backend/src/server/api/endpoints/auth/session/show.ts +++ /dev/null @@ -1,60 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { AuthSessions } from '@/models/index.js'; - -export const meta = { - tags: ['auth'], - - requireCredential: false, - - errors: { - noSuchSession: { - message: 'No such session.', - code: 'NO_SUCH_SESSION', - id: 'bd72c97d-eba7-4adb-a467-f171b8847250', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - app: { - type: 'object', - optional: false, nullable: false, - ref: 'App', - }, - token: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - token: { type: 'string' }, - }, - required: ['token'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Lookup session - const session = await AuthSessions.findOneBy({ - token: ps.token, - }); - - if (session == null) { - throw new ApiError(meta.errors.noSuchSession); - } - - return await AuthSessions.pack(session, user); -}); diff --git a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts deleted file mode 100644 index 89884ed38..000000000 --- a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts +++ /dev/null @@ -1,97 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { Apps, AuthSessions, AccessTokens, Users } from '@/models/index.js'; - -export const meta = { - tags: ['auth'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - accessToken: { - type: 'string', - optional: false, nullable: false, - }, - - user: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - }, - }, - }, - - errors: { - noSuchApp: { - message: 'No such app.', - code: 'NO_SUCH_APP', - id: 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d', - }, - - noSuchSession: { - message: 'No such session.', - code: 'NO_SUCH_SESSION', - id: '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3', - }, - - pendingSession: { - message: 'This session is not completed yet.', - code: 'PENDING_SESSION', - id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - appSecret: { type: 'string' }, - token: { type: 'string' }, - }, - required: ['appSecret', 'token'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - // Lookup app - const app = await Apps.findOneBy({ - secret: ps.appSecret, - }); - - if (app == null) { - throw new ApiError(meta.errors.noSuchApp); - } - - // Fetch token - const session = await AuthSessions.findOneBy({ - token: ps.token, - appId: app.id, - }); - - if (session == null) { - throw new ApiError(meta.errors.noSuchSession); - } - - if (session.userId == null) { - throw new ApiError(meta.errors.pendingSession); - } - - // Lookup access token - const accessToken = await AccessTokens.findOneByOrFail({ - appId: app.id, - userId: session.userId, - }); - - // Delete session - AuthSessions.delete(session.id); - - return { - accessToken: accessToken.token, - user: await Users.pack(session.userId, null, { - detail: true, - }), - }; -}); diff --git a/packages/backend/src/server/api/endpoints/blocking/create.ts b/packages/backend/src/server/api/endpoints/blocking/create.ts deleted file mode 100644 index 0540e6ab0..000000000 --- a/packages/backend/src/server/api/endpoints/blocking/create.ts +++ /dev/null @@ -1,90 +0,0 @@ -import ms from 'ms'; -import create from '@/services/blocking/create.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Blockings, NoteWatchings, Users } from '@/models/index.js'; - -export const meta = { - tags: ['account'], - - limit: { - duration: ms('1hour'), - max: 100, - }, - - requireCredential: true, - - kind: 'write:blocks', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e', - }, - - blockeeIsYourself: { - message: 'Blockee is yourself.', - code: 'BLOCKEE_IS_YOURSELF', - id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6', - }, - - alreadyBlocking: { - message: 'You are already blocking that user.', - code: 'ALREADY_BLOCKING', - id: '787fed64-acb9-464a-82eb-afbd745b9614', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const blocker = await Users.findOneByOrFail({ id: user.id }); - - // 自分自身 - if (user.id === ps.userId) { - throw new ApiError(meta.errors.blockeeIsYourself); - } - - // Get blockee - const blockee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check if already blocking - const exist = await Blockings.findOneBy({ - blockerId: blocker.id, - blockeeId: blockee.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyBlocking); - } - - await create(blocker, blockee); - - NoteWatchings.delete({ - userId: blocker.id, - noteUserId: blockee.id, - }); - - return await Users.pack(blockee.id, blocker, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/blocking/delete.ts b/packages/backend/src/server/api/endpoints/blocking/delete.ts deleted file mode 100644 index 77e17b3ba..000000000 --- a/packages/backend/src/server/api/endpoints/blocking/delete.ts +++ /dev/null @@ -1,86 +0,0 @@ -import ms from 'ms'; -import deleteBlocking from '@/services/blocking/delete.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Blockings, Users } from '@/models/index.js'; - -export const meta = { - tags: ['account'], - - limit: { - duration: ms('1hour'), - max: 100, - }, - - requireCredential: true, - - kind: 'write:blocks', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '8621d8bf-c358-4303-a066-5ea78610eb3f', - }, - - blockeeIsYourself: { - message: 'Blockee is yourself.', - code: 'BLOCKEE_IS_YOURSELF', - id: '06f6fac6-524b-473c-a354-e97a40ae6eac', - }, - - notBlocking: { - message: 'You are not blocking that user.', - code: 'NOT_BLOCKING', - id: '291b2efa-60c6-45c0-9f6a-045c8f9b02cd', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const blocker = await Users.findOneByOrFail({ id: user.id }); - - // Check if the blockee is yourself - if (user.id === ps.userId) { - throw new ApiError(meta.errors.blockeeIsYourself); - } - - // Get blockee - const blockee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check not blocking - const exist = await Blockings.findOneBy({ - blockerId: blocker.id, - blockeeId: blockee.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notBlocking); - } - - // Delete blocking - await deleteBlocking(blocker, blockee); - - return await Users.pack(blockee.id, blocker, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/blocking/list.ts b/packages/backend/src/server/api/endpoints/blocking/list.ts deleted file mode 100644 index 29095ebe2..000000000 --- a/packages/backend/src/server/api/endpoints/blocking/list.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../define.js'; -import { Blockings } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'read:blocks', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Blocking', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Blockings.createQueryBuilder('blocking'), ps.sinceId, ps.untilId) - .andWhere(`blocking.blockerId = :meId`, { meId: me.id }); - - const blockings = await query - .take(ps.limit) - .getMany(); - - return await Blockings.packMany(blockings, me); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts deleted file mode 100644 index 94dcfe502..000000000 --- a/packages/backend/src/server/api/endpoints/channels/create.ts +++ /dev/null @@ -1,63 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Channels, DriveFiles } from '@/models/index.js'; -import { Channel } from '@/models/entities/channel.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: true, - - kind: 'write:channels', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'cd1e9f3e-5a12-4ab4-96f6-5d0a2cc32050', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 128 }, - description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, - bannerId: { type: 'string', format: 'misskey:id', nullable: true }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let banner = null; - if (ps.bannerId != null) { - banner = await DriveFiles.findOneBy({ - id: ps.bannerId, - userId: user.id, - }); - - if (banner == null) { - throw new ApiError(meta.errors.noSuchFile); - } - } - - const channel = await Channels.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - description: ps.description || null, - bannerId: banner ? banner.id : null, - } as Channel).then(x => Channels.findOneByOrFail(x.identifiers[0])); - - return await Channels.pack(channel, user); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/featured.ts b/packages/backend/src/server/api/endpoints/channels/featured.ts deleted file mode 100644 index 73980c0fa..000000000 --- a/packages/backend/src/server/api/endpoints/channels/featured.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../define.js'; -import { Channels } from '@/models/index.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Channels.createQueryBuilder('channel') - .where('channel.lastNotedAt IS NOT NULL') - .orderBy('channel.lastNotedAt', 'DESC'); - - const channels = await query.take(10).getMany(); - - return await Promise.all(channels.map(x => Channels.pack(x, me))); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/follow.ts b/packages/backend/src/server/api/endpoints/channels/follow.ts deleted file mode 100644 index 895ffed0b..000000000 --- a/packages/backend/src/server/api/endpoints/channels/follow.ts +++ /dev/null @@ -1,49 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Channels, ChannelFollowings } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: true, - - kind: 'write:channels', - - errors: { - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: 'c0031718-d573-4e85-928e-10039f1fbb68', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - channelId: { type: 'string', format: 'misskey:id' }, - }, - required: ['channelId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const channel = await Channels.findOneBy({ - id: ps.channelId, - }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - - await ChannelFollowings.insert({ - id: genId(), - createdAt: new Date(), - followerId: user.id, - followeeId: channel.id, - }); - - publishUserEvent(user.id, 'followChannel', channel); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/followed.ts b/packages/backend/src/server/api/endpoints/channels/followed.ts deleted file mode 100644 index e4aa4d161..000000000 --- a/packages/backend/src/server/api/endpoints/channels/followed.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../define.js'; -import { Channels, ChannelFollowings } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['channels', 'account'], - - requireCredential: true, - - kind: 'read:channels', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(ChannelFollowings.createQueryBuilder(), ps.sinceId, ps.untilId) - .andWhere({ followerId: me.id }); - - const followings = await query - .take(ps.limit) - .getMany(); - - return await Promise.all(followings.map(x => Channels.pack(x.followeeId, me))); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/owned.ts b/packages/backend/src/server/api/endpoints/channels/owned.ts deleted file mode 100644 index ed7e41cac..000000000 --- a/packages/backend/src/server/api/endpoints/channels/owned.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../define.js'; -import { Channels } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['channels', 'account'], - - requireCredential: true, - - kind: 'read:channels', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Channels.createQueryBuilder(), ps.sinceId, ps.untilId) - .andWhere({ userId: me.id }); - - const channels = await query - .take(ps.limit) - .getMany(); - - return await Promise.all(channels.map(x => Channels.pack(x, me))); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/show.ts b/packages/backend/src/server/api/endpoints/channels/show.ts deleted file mode 100644 index 87665a986..000000000 --- a/packages/backend/src/server/api/endpoints/channels/show.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Channels } from '@/models/index.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - - errors: { - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: '6f6c314b-7486-4897-8966-c04a66a02923', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - channelId: { type: 'string', format: 'misskey:id' }, - }, - required: ['channelId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const channel = await Channels.findOneBy({ - id: ps.channelId, - }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - - return await Channels.pack(channel, me); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/timeline.ts b/packages/backend/src/server/api/endpoints/channels/timeline.ts deleted file mode 100644 index deaa29901..000000000 --- a/packages/backend/src/server/api/endpoints/channels/timeline.ts +++ /dev/null @@ -1,76 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Notes, Channels } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { activeUsersChart } from '@/services/chart/index.js'; - -export const meta = { - tags: ['notes', 'channels'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: '4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - channelId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - }, - required: ['channelId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const channel = await Channels.findOneBy({ - id: ps.channelId, - }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - - //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere('note.channelId = :channelId', { channelId: channel.id }) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .leftJoinAndSelect('note.channel', 'channel'); - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - if (user) activeUsersChart.read(user); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/unfollow.ts b/packages/backend/src/server/api/endpoints/channels/unfollow.ts deleted file mode 100644 index e065d897a..000000000 --- a/packages/backend/src/server/api/endpoints/channels/unfollow.ts +++ /dev/null @@ -1,46 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Channels, ChannelFollowings } from '@/models/index.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: true, - - kind: 'write:channels', - - errors: { - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: '19959ee9-0153-4c51-bbd9-a98c49dc59d6', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - channelId: { type: 'string', format: 'misskey:id' }, - }, - required: ['channelId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const channel = await Channels.findOneBy({ - id: ps.channelId, - }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - - await ChannelFollowings.delete({ - followerId: user.id, - followeeId: channel.id, - }); - - publishUserEvent(user.id, 'unfollowChannel', channel); -}); diff --git a/packages/backend/src/server/api/endpoints/channels/update.ts b/packages/backend/src/server/api/endpoints/channels/update.ts deleted file mode 100644 index 13104f324..000000000 --- a/packages/backend/src/server/api/endpoints/channels/update.ts +++ /dev/null @@ -1,86 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Channels, DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['channels'], - - requireCredential: true, - - kind: 'write:channels', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Channel', - }, - - errors: { - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: 'f9c5467f-d492-4c3c-9a8d-a70dacc86512', - }, - - accessDenied: { - message: 'You do not have edit privilege of the channel.', - code: 'ACCESS_DENIED', - id: '1fb7cb09-d46a-4fdf-b8df-057788cce513', - }, - - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'e86c14a4-0da2-4032-8df3-e737a04c7f3b', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - channelId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 128 }, - description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, - bannerId: { type: 'string', format: 'misskey:id', nullable: true }, - }, - required: ['channelId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const channel = await Channels.findOneBy({ - id: ps.channelId, - }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - - if (channel.userId !== me.id) { - throw new ApiError(meta.errors.accessDenied); - } - - // eslint:disable-next-line:no-unnecessary-initializer - let banner = undefined; - if (ps.bannerId != null) { - banner = await DriveFiles.findOneBy({ - id: ps.bannerId, - userId: me.id, - }); - - if (banner == null) { - throw new ApiError(meta.errors.noSuchFile); - } - } else if (ps.bannerId === null) { - banner = null; - } - - await Channels.update(channel.id, { - ...(ps.name !== undefined ? { name: ps.name } : {}), - ...(ps.description !== undefined ? { description: ps.description } : {}), - ...(banner ? { bannerId: banner.id } : {}), - }); - - return await Channels.pack(channel.id, me); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/active-users.ts b/packages/backend/src/server/api/endpoints/charts/active-users.ts deleted file mode 100644 index ea2379429..000000000 --- a/packages/backend/src/server/api/endpoints/charts/active-users.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts', 'users'], - - res: getJsonSchema(activeUsersChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await activeUsersChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/ap-request.ts b/packages/backend/src/server/api/endpoints/charts/ap-request.ts deleted file mode 100644 index 06dee250e..000000000 --- a/packages/backend/src/server/api/endpoints/charts/ap-request.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { apRequestChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts'], - - res: getJsonSchema(apRequestChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await apRequestChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/drive.ts b/packages/backend/src/server/api/endpoints/charts/drive.ts deleted file mode 100644 index dd2c2d683..000000000 --- a/packages/backend/src/server/api/endpoints/charts/drive.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { driveChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts', 'drive'], - - res: getJsonSchema(driveChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await driveChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/federation.ts b/packages/backend/src/server/api/endpoints/charts/federation.ts deleted file mode 100644 index 8c35b3c46..000000000 --- a/packages/backend/src/server/api/endpoints/charts/federation.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { federationChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts'], - - res: getJsonSchema(federationChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await federationChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/hashtag.ts b/packages/backend/src/server/api/endpoints/charts/hashtag.ts deleted file mode 100644 index 77e24a62c..000000000 --- a/packages/backend/src/server/api/endpoints/charts/hashtag.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { hashtagChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts', 'hashtags'], - - res: getJsonSchema(hashtagChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - tag: { type: 'string' }, - }, - required: ['span', 'tag'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await hashtagChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.tag); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/instance.ts b/packages/backend/src/server/api/endpoints/charts/instance.ts deleted file mode 100644 index 817d51ad0..000000000 --- a/packages/backend/src/server/api/endpoints/charts/instance.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { instanceChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts'], - - res: getJsonSchema(instanceChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - host: { type: 'string' }, - }, - required: ['span', 'host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await instanceChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.host); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/notes.ts b/packages/backend/src/server/api/endpoints/charts/notes.ts deleted file mode 100644 index 951adf540..000000000 --- a/packages/backend/src/server/api/endpoints/charts/notes.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { notesChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts', 'notes'], - - res: getJsonSchema(notesChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await notesChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/user/drive.ts b/packages/backend/src/server/api/endpoints/charts/user/drive.ts deleted file mode 100644 index f165b4022..000000000 --- a/packages/backend/src/server/api/endpoints/charts/user/drive.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { perUserDriveChart } from '@/services/chart/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['charts', 'drive', 'users'], - - res: getJsonSchema(perUserDriveChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['span', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await perUserDriveChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.userId); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/user/following.ts b/packages/backend/src/server/api/endpoints/charts/user/following.ts deleted file mode 100644 index f5d42e21c..000000000 --- a/packages/backend/src/server/api/endpoints/charts/user/following.ts +++ /dev/null @@ -1,28 +0,0 @@ -import define from '../../../define.js'; -import { getJsonSchema } from '@/services/chart/core.js'; -import { perUserFollowingChart } from '@/services/chart/index.js'; - -export const meta = { - tags: ['charts', 'users', 'following'], - - res: getJsonSchema(perUserFollowingChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['span', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await perUserFollowingChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.userId); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/user/notes.ts b/packages/backend/src/server/api/endpoints/charts/user/notes.ts deleted file mode 100644 index aefe550d4..000000000 --- a/packages/backend/src/server/api/endpoints/charts/user/notes.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { perUserNotesChart } from '@/services/chart/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['charts', 'users', 'notes'], - - res: getJsonSchema(perUserNotesChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['span', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await perUserNotesChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.userId); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts deleted file mode 100644 index 6bc6b56bf..000000000 --- a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { perUserReactionsChart } from '@/services/chart/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['charts', 'users', 'reactions'], - - res: getJsonSchema(perUserReactionsChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['span', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await perUserReactionsChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null, ps.userId); -}); diff --git a/packages/backend/src/server/api/endpoints/charts/users.ts b/packages/backend/src/server/api/endpoints/charts/users.ts deleted file mode 100644 index 338e8fd33..000000000 --- a/packages/backend/src/server/api/endpoints/charts/users.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getJsonSchema } from '@/services/chart/core.js'; -import { usersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['charts', 'users'], - - res: getJsonSchema(usersChart.schema), - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - span: { type: 'string', enum: ['day', 'hour'] }, - limit: { type: 'integer', minimum: 1, maximum: 500, default: 30 }, - offset: { type: 'integer', nullable: true, default: null }, - }, - required: ['span'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await usersChart.getChart(ps.span, ps.limit, ps.offset ? new Date(ps.offset) : null); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/add-note.ts b/packages/backend/src/server/api/endpoints/clips/add-note.ts deleted file mode 100644 index 5d72f5c1b..000000000 --- a/packages/backend/src/server/api/endpoints/clips/add-note.ts +++ /dev/null @@ -1,74 +0,0 @@ -import define from '../../define.js'; -import { ClipNotes, Clips } from '@/models/index.js'; -import { ApiError } from '../../error.js'; -import { genId } from '@/misc/gen-id.js'; -import { getNote } from '../../common/getters.js'; - -export const meta = { - tags: ['account', 'notes', 'clips'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf', - }, - - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b', - }, - - alreadyClipped: { - message: 'The note has already been clipped.', - code: 'ALREADY_CLIPPED', - id: '734806c4-542c-463a-9311-15c512803965', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['clipId', 'noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const clip = await Clips.findOneBy({ - id: ps.clipId, - userId: user.id, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const exist = await ClipNotes.findOneBy({ - noteId: note.id, - clipId: clip.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyClipped); - } - - await ClipNotes.insert({ - id: genId(), - noteId: note.id, - clipId: clip.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts deleted file mode 100644 index 4afe4222a..000000000 --- a/packages/backend/src/server/api/endpoints/clips/create.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../define.js'; -import { genId } from '@/misc/gen-id.js'; -import { Clips } from '@/models/index.js'; - -export const meta = { - tags: ['clips'], - - requireCredential: true, - - kind: 'write:account', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - isPublic: { type: 'boolean', default: false }, - description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const clip = await Clips.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - isPublic: ps.isPublic, - description: ps.description, - }).then(x => Clips.findOneByOrFail(x.identifiers[0])); - - return await Clips.pack(clip); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/delete.ts b/packages/backend/src/server/api/endpoints/clips/delete.ts deleted file mode 100644 index b6c0eb702..000000000 --- a/packages/backend/src/server/api/endpoints/clips/delete.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Clips } from '@/models/index.js'; - -export const meta = { - tags: ['clips'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: '70ca08ba-6865-4630-b6fb-8494759aa754', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - }, - required: ['clipId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const clip = await Clips.findOneBy({ - id: ps.clipId, - userId: user.id, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - await Clips.delete(clip.id); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/list.ts b/packages/backend/src/server/api/endpoints/clips/list.ts deleted file mode 100644 index 378811eba..000000000 --- a/packages/backend/src/server/api/endpoints/clips/list.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../define.js'; -import { Clips } from '@/models/index.js'; - -export const meta = { - tags: ['clips', 'account'], - - requireCredential: true, - - kind: 'read:account', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const clips = await Clips.findBy({ - userId: me.id, - }); - - return await Promise.all(clips.map(x => Clips.pack(x))); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/notes.ts b/packages/backend/src/server/api/endpoints/clips/notes.ts deleted file mode 100644 index 4ace747ef..000000000 --- a/packages/backend/src/server/api/endpoints/clips/notes.ts +++ /dev/null @@ -1,86 +0,0 @@ -import define from '../../define.js'; -import { ClipNotes, Clips, Notes } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { ApiError } from '../../error.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['account', 'notes', 'clips'], - - requireCredential: false, - - kind: 'read:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00', - }, - }, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['clipId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const clip = await Clips.findOneBy({ - id: ps.clipId, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - if (!clip.isPublic && (user == null || (clip.userId !== user.id))) { - throw new ApiError(meta.errors.noSuchClip); - } - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .innerJoin(ClipNotes.metadata.targetName, 'clipNote', 'clipNote.noteId = note.id') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .andWhere('clipNote.clipId = :clipId', { clipId: clip.id }); - - if (user) { - generateVisibilityQuery(query, user); - generateMutedUserQuery(query, user); - generateBlockedUserQuery(query, user); - } - - const notes = await query - .take(ps.limit) - .getMany(); - - return await Notes.packMany(notes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/remove-note.ts b/packages/backend/src/server/api/endpoints/clips/remove-note.ts deleted file mode 100644 index 8b90e31f6..000000000 --- a/packages/backend/src/server/api/endpoints/clips/remove-note.ts +++ /dev/null @@ -1,57 +0,0 @@ -import define from '../../define.js'; -import { ClipNotes, Clips } from '@/models/index.js'; -import { ApiError } from '../../error.js'; -import { getNote } from '../../common/getters.js'; - -export const meta = { - tags: ['account', 'notes', 'clips'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: 'b80525c6-97f7-49d7-a42d-ebccd49cfd52', - }, - - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'aff017de-190e-434b-893e-33a9ff5049d8', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['clipId', 'noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const clip = await Clips.findOneBy({ - id: ps.clipId, - userId: user.id, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - await ClipNotes.delete({ - noteId: note.id, - clipId: clip.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/show.ts b/packages/backend/src/server/api/endpoints/clips/show.ts deleted file mode 100644 index c3d73c168..000000000 --- a/packages/backend/src/server/api/endpoints/clips/show.ts +++ /dev/null @@ -1,51 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Clips } from '@/models/index.js'; - -export const meta = { - tags: ['clips', 'account'], - - requireCredential: false, - - kind: 'read:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - }, - required: ['clipId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the clip - const clip = await Clips.findOneBy({ - id: ps.clipId, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - if (!clip.isPublic && (me == null || (clip.userId !== me.id))) { - throw new ApiError(meta.errors.noSuchClip); - } - - return await Clips.pack(clip); -}); diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts deleted file mode 100644 index b67d844f6..000000000 --- a/packages/backend/src/server/api/endpoints/clips/update.ts +++ /dev/null @@ -1,57 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Clips } from '@/models/index.js'; - -export const meta = { - tags: ['clips'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchClip: { - message: 'No such clip.', - code: 'NO_SUCH_CLIP', - id: 'b4d92d70-b216-46fa-9a3f-a8c811699257', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clipId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 100 }, - isPublic: { type: 'boolean' }, - description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, - }, - required: ['clipId', 'name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch the clip - const clip = await Clips.findOneBy({ - id: ps.clipId, - userId: user.id, - }); - - if (clip == null) { - throw new ApiError(meta.errors.noSuchClip); - } - - await Clips.update(clip.id, { - name: ps.name, - description: ps.description, - isPublic: ps.isPublic, - }); - - return await Clips.pack(clip.id); -}); diff --git a/packages/backend/src/server/api/endpoints/drive.ts b/packages/backend/src/server/api/endpoints/drive.ts deleted file mode 100644 index 82497adef..000000000 --- a/packages/backend/src/server/api/endpoints/drive.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { DriveFiles } from '@/models/index.js'; -import define from '../define.js'; - -export const meta = { - tags: ['drive', 'account'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - capacity: { - type: 'number', - optional: false, nullable: false, - }, - usage: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const instance = await fetchMeta(true); - - // Calculate drive usage - const usage = await DriveFiles.calcDriveUsageOf(user.id); - - return { - capacity: 1024 * 1024 * (user.driveCapacityOverrideMb || instance.localDriveCapacityMb), - usage: usage, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts deleted file mode 100644 index 40e6c16c9..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files.ts +++ /dev/null @@ -1,57 +0,0 @@ -import define from '../../define.js'; -import { DriveFiles } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - type: { type: 'string', nullable: true, pattern: /^[a-zA-Z\/\-*]+$/.toString().slice(1, -1) }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId) - .andWhere('file.userId = :userId', { userId: user.id }); - - if (ps.folderId) { - query.andWhere('file.folderId = :folderId', { folderId: ps.folderId }); - } else { - query.andWhere('file.folderId IS NULL'); - } - - if (ps.type) { - if (ps.type.endsWith('/*')) { - query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); - } else { - query.andWhere('file.type = :type', { type: ps.type }); - } - } - - const files = await query.take(ps.limit).getMany(); - - return await DriveFiles.packMany(files, { detail: false, self: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts deleted file mode 100644 index 415a8cc69..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts +++ /dev/null @@ -1,60 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { DriveFiles, Notes } from '@/models/index.js'; - -export const meta = { - tags: ['drive', 'notes'], - - requireCredential: true, - - kind: 'read:drive', - - description: 'Find the notes to which the given file is attached.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'c118ece3-2e4b-4296-99d1-51756e32d232', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch file - const file = await DriveFiles.findOneBy({ - id: ps.fileId, - userId: user.id, - }); - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - - const notes = await Notes.createQueryBuilder('note') - .where(':file = ANY(note.fileIds)', { file: file.id }) - .getMany(); - - return await Notes.packMany(notes, user, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts deleted file mode 100644 index bbae9bf4e..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../../define.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - description: 'Check if a given file exists.', - - res: { - type: 'boolean', - optional: false, nullable: false, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - md5: { type: 'string' }, - }, - required: ['md5'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ - md5: ps.md5, - userId: user.id, - }); - - return file != null; -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts deleted file mode 100644 index ddcbd6288..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/create.ts +++ /dev/null @@ -1,111 +0,0 @@ -import ms from 'ms'; -import { addFile } from '@/services/drive/add-file.js'; -import { DriveFiles } from '@/models/index.js'; -import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import define from '../../../define.js'; -import { apiLogger } from '../../../logger.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 120, - }, - - requireFile: true, - - kind: 'write:drive', - - description: 'Upload a new drive file.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - - errors: { - invalidFileName: { - message: 'Invalid file name.', - code: 'INVALID_FILE_NAME', - id: 'f449b209-0c60-4e51-84d5-29486263bfd4', - }, - - inappropriate: { - message: 'Cannot upload the file because it has been determined that it possibly contains inappropriate content.', - code: 'INAPPROPRIATE', - id: 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2', - }, - - noFreeSpace: { - message: 'Cannot upload the file because you have no free space of drive.', - code: 'NO_FREE_SPACE', - id: 'd08dbc37-a6a9-463a-8c47-96c32ab5f064', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - name: { type: 'string', nullable: true, default: null }, - comment: { type: 'string', nullable: true, maxLength: DB_MAX_IMAGE_COMMENT_LENGTH, default: null }, - isSensitive: { type: 'boolean', default: false }, - force: { type: 'boolean', default: false }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user, _, file, cleanup, ip, headers) => { - // Get 'name' parameter - let name = ps.name || file.originalname; - if (name !== undefined && name !== null) { - name = name.trim(); - if (name.length === 0) { - name = null; - } else if (name === 'blob') { - name = null; - } else if (!DriveFiles.validateFileName(name)) { - throw new ApiError(meta.errors.invalidFileName); - } - } else { - name = null; - } - - const meta = await fetchMeta(); - - try { - // Create file - const driveFile = await addFile({ - user, - path: file.path, - name, - comment: ps.comment, - folderId: ps.folderId, - force: ps.force, - sensitive: ps.isSensitive, - requestIp: meta.enableIpLogging ? ip : null, - requestHeaders: meta.enableIpLogging ? headers : null, - }); - return await DriveFiles.pack(driveFile, { self: true }); - } catch (e) { - if (e instanceof Error || typeof e === 'string') { - apiLogger.error(e); - } - if (e instanceof IdentifiableError) { - if (e.id === '282f77bf-5816-4f72-9264-aa14d8261a21') throw new ApiError(meta.errors.inappropriate); - if (e.id === 'c6244ed2-a39a-4e1c-bf93-f0fbd7764fa6') throw new ApiError(meta.errors.noFreeSpace); - } - throw new ApiError(); - } finally { - cleanup!(); - } -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/delete.ts b/packages/backend/src/server/api/endpoints/drive/files/delete.ts deleted file mode 100644 index 6108ae7da..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/delete.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { deleteFile } from '@/services/drive/delete-file.js'; -import { publishDriveStream } from '@/services/stream.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { DriveFiles, Users } from '@/models/index.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'write:drive', - - description: 'Delete an existing drive file.', - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: '908939ec-e52b-4458-b395-1025195cea58', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '5eb8d909-2540-4970-90b8-dd6f86088121', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - - if ((!user.isAdmin && !user.isModerator) && (file.userId !== user.id)) { - throw new ApiError(meta.errors.accessDenied); - } - - // Delete - await deleteFile(file); - - // Publish fileDeleted event - publishDriveStream(user.id, 'fileDeleted', file.id); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts deleted file mode 100644 index f2bc7348c..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { DriveFiles } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - description: 'Search for a drive file by a hash of the contents.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - md5: { type: 'string' }, - }, - required: ['md5'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const files = await DriveFiles.findBy({ - md5: ps.md5, - userId: user.id, - }); - - return await DriveFiles.packMany(files, { self: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/find.ts b/packages/backend/src/server/api/endpoints/drive/files/find.ts deleted file mode 100644 index 245fb45a6..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/find.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../../define.js'; -import { DriveFiles } from '@/models/index.js'; -import { IsNull } from 'typeorm'; - -export const meta = { - requireCredential: true, - - tags: ['drive'], - - kind: 'read:drive', - - description: 'Search for a drive file by the given parameters.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string' }, - folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const files = await DriveFiles.findBy({ - name: ps.name, - userId: user.id, - folderId: ps.folderId ?? IsNull(), - }); - - return await Promise.all(files.map(file => DriveFiles.pack(file, { self: true }))); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts deleted file mode 100644 index 2c604c54c..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/show.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles, Users } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - description: 'Show the properties of a drive file.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: '067bc436-2718-4795-b0fb-ecbe43949e31', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '25b73c73-68b1-41d0-bad1-381cfdf6579f', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - anyOf: [ - { - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], - }, - { - properties: { - url: { type: 'string' }, - }, - required: ['url'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let file: DriveFile | null = null; - - if (ps.fileId) { - file = await DriveFiles.findOneBy({ id: ps.fileId }); - } else if (ps.url) { - file = await DriveFiles.findOne({ - where: [{ - url: ps.url, - }, { - webpublicUrl: ps.url, - }, { - thumbnailUrl: ps.url, - }], - }); - } - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - - if ((!user.isAdmin && !user.isModerator) && (file.userId !== user.id)) { - throw new ApiError(meta.errors.accessDenied); - } - - return await DriveFiles.pack(file, { - detail: true, - withUser: true, - self: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/update.ts b/packages/backend/src/server/api/endpoints/drive/files/update.ts deleted file mode 100644 index fa2ec8519..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/update.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { publishDriveStream } from '@/services/stream.js'; -import { DriveFiles, DriveFolders, Users } from '@/models/index.js'; -import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'write:drive', - - description: 'Update the properties of a drive file.', - - errors: { - invalidFileName: { - message: 'Invalid file name.', - code: 'INVALID_FILE_NAME', - id: '395e7156-f9f0-475e-af89-53c3c23080c2', - }, - - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '01a53b27-82fc-445b-a0c1-b558465a8ed2', - }, - - noSuchFolder: { - message: 'No such folder.', - code: 'NO_SUCH_FOLDER', - id: 'ea8fb7a5-af77-4a08-b608-c0218176cd73', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - folderId: { type: 'string', format: 'misskey:id', nullable: true }, - name: { type: 'string' }, - isSensitive: { type: 'boolean' }, - comment: { type: 'string', nullable: true, maxLength: 512 }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - - if ((!user.isAdmin && !user.isModerator) && (file.userId !== user.id)) { - throw new ApiError(meta.errors.accessDenied); - } - - if (ps.name) file.name = ps.name; - if (!DriveFiles.validateFileName(file.name)) { - throw new ApiError(meta.errors.invalidFileName); - } - - if (ps.comment !== undefined) file.comment = ps.comment; - - if (ps.isSensitive !== undefined) file.isSensitive = ps.isSensitive; - - if (ps.folderId !== undefined) { - if (ps.folderId === null) { - file.folderId = null; - } else { - const folder = await DriveFolders.findOneBy({ - id: ps.folderId, - userId: user.id, - }); - - if (folder == null) { - throw new ApiError(meta.errors.noSuchFolder); - } - - file.folderId = folder.id; - } - } - - await DriveFiles.update(file.id, { - name: file.name, - comment: file.comment, - folderId: file.folderId, - isSensitive: file.isSensitive, - }); - - const fileObj = await DriveFiles.pack(file, { self: true }); - - // Publish fileUpdated event - publishDriveStream(user.id, 'fileUpdated', fileObj); - - return fileObj; -}); diff --git a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts deleted file mode 100644 index eb8071c3c..000000000 --- a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts +++ /dev/null @@ -1,46 +0,0 @@ -import ms from 'ms'; -import { uploadFromUrl } from '@/services/drive/upload-from-url.js'; -import { DriveFiles } from '@/models/index.js'; -import { publishMainStream } from '@/services/stream.js'; -import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/misc/hard-limits.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['drive'], - - limit: { - duration: ms('1hour'), - max: 60, - }, - - description: 'Request the server to download a new drive file from the specified URL.', - - requireCredential: true, - - kind: 'write:drive', -} as const; - -export const paramDef = { - type: 'object', - properties: { - url: { type: 'string' }, - folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - isSensitive: { type: 'boolean', default: false }, - comment: { type: 'string', nullable: true, maxLength: 512, default: null }, - marker: { type: 'string', nullable: true, default: null }, - force: { type: 'boolean', default: false }, - }, - required: ['url'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user, _1, _2, _3, ip, headers) => { - uploadFromUrl({ url: ps.url, user, folderId: ps.folderId, sensitive: ps.isSensitive, force: ps.force, comment: ps.comment, requestIp: ip, requestHeaders: headers }).then(file => { - DriveFiles.pack(file, { self: true }).then(packedFile => { - publishMainStream(user.id, 'urlUploadFinished', { - marker: ps.marker, - file: packedFile, - }); - }); - }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders.ts b/packages/backend/src/server/api/endpoints/drive/folders.ts deleted file mode 100644 index d4d530ba9..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders.ts +++ /dev/null @@ -1,48 +0,0 @@ -import define from '../../define.js'; -import { DriveFolders } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFolder', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(DriveFolders.createQueryBuilder('folder'), ps.sinceId, ps.untilId) - .andWhere('folder.userId = :userId', { userId: user.id }); - - if (ps.folderId) { - query.andWhere('folder.parentId = :parentId', { parentId: ps.folderId }); - } else { - query.andWhere('folder.parentId IS NULL'); - } - - const folders = await query.take(ps.limit).getMany(); - - return await Promise.all(folders.map(folder => DriveFolders.pack(folder))); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders/create.ts b/packages/backend/src/server/api/endpoints/drive/folders/create.ts deleted file mode 100644 index 3d7f514c8..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders/create.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { publishDriveStream } from '@/services/stream.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { DriveFolders } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'write:drive', - - errors: { - noSuchFolder: { - message: 'No such folder.', - code: 'NO_SUCH_FOLDER', - id: '53326628-a00d-40a6-a3cd-8975105c0f95', - }, - }, - - res: { - type: 'object' as const, - optional: false as const, nullable: false as const, - ref: 'DriveFolder', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', default: "Untitled", maxLength: 200 }, - parentId: { type: 'string', format: 'misskey:id', nullable: true }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // If the parent folder is specified - let parent = null; - if (ps.parentId) { - // Fetch parent folder - parent = await DriveFolders.findOneBy({ - id: ps.parentId, - userId: user.id, - }); - - if (parent == null) { - throw new ApiError(meta.errors.noSuchFolder); - } - } - - // Create folder - const folder = await DriveFolders.insert({ - id: genId(), - createdAt: new Date(), - name: ps.name, - parentId: parent !== null ? parent.id : null, - userId: user.id, - }).then(x => DriveFolders.findOneByOrFail(x.identifiers[0])); - - const folderObj = await DriveFolders.pack(folder); - - // Publish folderCreated event - publishDriveStream(user.id, 'folderCreated', folderObj); - - return folderObj; -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts deleted file mode 100644 index ab9d411ec..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts +++ /dev/null @@ -1,61 +0,0 @@ -import define from '../../../define.js'; -import { publishDriveStream } from '@/services/stream.js'; -import { ApiError } from '../../../error.js'; -import { DriveFolders, DriveFiles } from '@/models/index.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'write:drive', - - errors: { - noSuchFolder: { - message: 'No such folder.', - code: 'NO_SUCH_FOLDER', - id: '1069098f-c281-440f-b085-f9932edbe091', - }, - - hasChildFilesOrFolders: { - message: 'This folder has child files or folders.', - code: 'HAS_CHILD_FILES_OR_FOLDERS', - id: 'b0fc8a17-963c-405d-bfbc-859a487295e1', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - folderId: { type: 'string', format: 'misskey:id' }, - }, - required: ['folderId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Get folder - const folder = await DriveFolders.findOneBy({ - id: ps.folderId, - userId: user.id, - }); - - if (folder == null) { - throw new ApiError(meta.errors.noSuchFolder); - } - - const [childFoldersCount, childFilesCount] = await Promise.all([ - DriveFolders.countBy({ parentId: folder.id }), - DriveFiles.countBy({ folderId: folder.id }), - ]); - - if (childFoldersCount !== 0 || childFilesCount !== 0) { - throw new ApiError(meta.errors.hasChildFilesOrFolders); - } - - await DriveFolders.delete(folder.id); - - // Publish folderCreated event - publishDriveStream(user.id, 'folderDeleted', folder.id); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders/find.ts b/packages/backend/src/server/api/endpoints/drive/folders/find.ts deleted file mode 100644 index 1feab273a..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders/find.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../../define.js'; -import { DriveFolders } from '@/models/index.js'; -import { IsNull } from 'typeorm'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFolder', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string' }, - parentId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const folders = await DriveFolders.findBy({ - name: ps.name, - userId: user.id, - parentId: ps.parentId ?? IsNull(), - }); - - return await Promise.all(folders.map(folder => DriveFolders.pack(folder))); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders/show.ts b/packages/backend/src/server/api/endpoints/drive/folders/show.ts deleted file mode 100644 index 1e7aa2b16..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders/show.ts +++ /dev/null @@ -1,50 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { DriveFolders } from '@/models/index.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFolder', - }, - - errors: { - noSuchFolder: { - message: 'No such folder.', - code: 'NO_SUCH_FOLDER', - id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - folderId: { type: 'string', format: 'misskey:id' }, - }, - required: ['folderId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Get folder - const folder = await DriveFolders.findOneBy({ - id: ps.folderId, - userId: user.id, - }); - - if (folder == null) { - throw new ApiError(meta.errors.noSuchFolder); - } - - return await DriveFolders.pack(folder, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts deleted file mode 100644 index 1aa2e8429..000000000 --- a/packages/backend/src/server/api/endpoints/drive/folders/update.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { publishDriveStream } from '@/services/stream.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { DriveFolders } from '@/models/index.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'write:drive', - - errors: { - noSuchFolder: { - message: 'No such folder.', - code: 'NO_SUCH_FOLDER', - id: 'f7974dac-2c0d-4a27-926e-23583b28e98e', - }, - - noSuchParentFolder: { - message: 'No such parent folder.', - code: 'NO_SUCH_PARENT_FOLDER', - id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1', - }, - - recursiveNesting: { - message: 'It can not be structured like nesting folders recursively.', - code: 'NO_SUCH_PARENT_FOLDER', - id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFolder', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - folderId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', maxLength: 200 }, - parentId: { type: 'string', format: 'misskey:id', nullable: true }, - }, - required: ['folderId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch folder - const folder = await DriveFolders.findOneBy({ - id: ps.folderId, - userId: user.id, - }); - - if (folder == null) { - throw new ApiError(meta.errors.noSuchFolder); - } - - if (ps.name) folder.name = ps.name; - - if (ps.parentId !== undefined) { - if (ps.parentId === folder.id) { - throw new ApiError(meta.errors.recursiveNesting); - } else if (ps.parentId === null) { - folder.parentId = null; - } else { - // Get parent folder - const parent = await DriveFolders.findOneBy({ - id: ps.parentId, - userId: user.id, - }); - - if (parent == null) { - throw new ApiError(meta.errors.noSuchParentFolder); - } - - // Check if the circular reference will occur - async function checkCircle(folderId: string): Promise { - // Fetch folder - const folder2 = await DriveFolders.findOneBy({ - id: folderId, - }); - - if (folder2!.id === folder!.id) { - return true; - } else if (folder2!.parentId) { - return await checkCircle(folder2!.parentId); - } else { - return false; - } - } - - if (parent.parentId !== null) { - if (await checkCircle(parent.parentId)) { - throw new ApiError(meta.errors.recursiveNesting); - } - } - - folder.parentId = parent.id; - } - } - - // Update - DriveFolders.update(folder.id, { - name: folder.name, - parentId: folder.parentId, - }); - - const folderObj = await DriveFolders.pack(folder); - - // Publish folderUpdated event - publishDriveStream(user.id, 'folderUpdated', folderObj); - - return folderObj; -}); diff --git a/packages/backend/src/server/api/endpoints/drive/stream.ts b/packages/backend/src/server/api/endpoints/drive/stream.ts deleted file mode 100644 index 99e8d024f..000000000 --- a/packages/backend/src/server/api/endpoints/drive/stream.ts +++ /dev/null @@ -1,50 +0,0 @@ -import define from '../../define.js'; -import { DriveFiles } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['drive'], - - requireCredential: true, - - kind: 'read:drive', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'DriveFile', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - type: { type: 'string', pattern: /^[a-zA-Z\/\-*]+$/.toString().slice(1, -1) }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId) - .andWhere('file.userId = :userId', { userId: user.id }); - - if (ps.type) { - if (ps.type.endsWith('/*')) { - query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); - } else { - query.andWhere('file.type = :type', { type: ps.type }); - } - } - - const files = await query.take(ps.limit).getMany(); - - return await DriveFiles.packMany(files, { detail: false, self: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/email-address/available.ts b/packages/backend/src/server/api/endpoints/email-address/available.ts deleted file mode 100644 index 07064ce9f..000000000 --- a/packages/backend/src/server/api/endpoints/email-address/available.ts +++ /dev/null @@ -1,36 +0,0 @@ -import define from '../../define.js'; -import { validateEmailForAccount } from '@/services/validate-email-for-account.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - available: { - type: 'boolean', - optional: false, nullable: false, - }, - reason: { - type: 'string', - optional: false, nullable: true, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - emailAddress: { type: 'string' }, - }, - required: ['emailAddress'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - return await validateEmailForAccount(ps.emailAddress); -}); diff --git a/packages/backend/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts deleted file mode 100644 index c17412677..000000000 --- a/packages/backend/src/server/api/endpoints/endpoint.ts +++ /dev/null @@ -1,28 +0,0 @@ -import define from '../define.js'; -import endpoints from '../endpoints.js'; - -export const meta = { - requireCredential: false, - - tags: ['meta'], -} as const; - -export const paramDef = { - type: 'object', - properties: { - endpoint: { type: 'string' }, - }, - required: ['endpoint'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const ep = endpoints.find(x => x.name === ps.endpoint); - if (ep == null) return null; - return { - params: Object.entries(ep.params.properties || {}).map(([k, v]) => ({ - name: k, - type: v.type.charAt(0).toUpperCase() + v.type.slice(1), - })), - }; -}); diff --git a/packages/backend/src/server/api/endpoints/endpoints.ts b/packages/backend/src/server/api/endpoints/endpoints.ts deleted file mode 100644 index b20da96eb..000000000 --- a/packages/backend/src/server/api/endpoints/endpoints.ts +++ /dev/null @@ -1,34 +0,0 @@ -import define from '../define.js'; -import endpoints from '../endpoints.js'; - -export const meta = { - requireCredential: false, - - tags: ['meta'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - example: [ - 'admin/abuse-user-reports', - 'admin/accounts/create', - 'admin/announcements/create', - '...', - ], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - return endpoints.map(x => x.name); -}); diff --git a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts b/packages/backend/src/server/api/endpoints/export-custom-emojis.ts deleted file mode 100644 index 5fe622932..000000000 --- a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts +++ /dev/null @@ -1,23 +0,0 @@ -import ms from 'ms'; -import { createExportCustomEmojisJob } from '@/queue/index.js'; -import define from '../define.js'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportCustomEmojisJob(user); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts deleted file mode 100644 index 7b1197d1e..000000000 --- a/packages/backend/src/server/api/endpoints/federation/followers.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../define.js'; -import { Followings } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Following', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) - .andWhere(`following.followeeHost = :host`, { host: ps.host }); - - const followings = await query - .take(ps.limit) - .getMany(); - - return await Followings.packMany(followings, me, { populateFollowee: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts deleted file mode 100644 index ed1f142d8..000000000 --- a/packages/backend/src/server/api/endpoints/federation/following.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../define.js'; -import { Followings } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Following', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) - .andWhere(`following.followerHost = :host`, { host: ps.host }); - - const followings = await query - .take(ps.limit) - .getMany(); - - return await Followings.packMany(followings, me, { populateFollowee: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts deleted file mode 100644 index 07e5c07c6..000000000 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ /dev/null @@ -1,118 +0,0 @@ -import config from '@/config/index.js'; -import define from '../../define.js'; -import { Instances } from '@/models/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'FederationInstance', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string', nullable: true, description: 'Omit or use `null` to not filter by host.' }, - blocked: { type: 'boolean', nullable: true }, - notResponding: { type: 'boolean', nullable: true }, - suspended: { type: 'boolean', nullable: true }, - federating: { type: 'boolean', nullable: true }, - subscribing: { type: 'boolean', nullable: true }, - publishing: { type: 'boolean', nullable: true }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 }, - offset: { type: 'integer', default: 0 }, - sort: { type: 'string' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Instances.createQueryBuilder('instance'); - - switch (ps.sort) { - case '+pubSub': query.orderBy('instance.followingCount', 'DESC').orderBy('instance.followersCount', 'DESC'); break; - case '-pubSub': query.orderBy('instance.followingCount', 'ASC').orderBy('instance.followersCount', 'ASC'); break; - case '+notes': query.orderBy('instance.notesCount', 'DESC'); break; - case '-notes': query.orderBy('instance.notesCount', 'ASC'); break; - case '+users': query.orderBy('instance.usersCount', 'DESC'); break; - case '-users': query.orderBy('instance.usersCount', 'ASC'); break; - case '+following': query.orderBy('instance.followingCount', 'DESC'); break; - case '-following': query.orderBy('instance.followingCount', 'ASC'); break; - case '+followers': query.orderBy('instance.followersCount', 'DESC'); break; - case '-followers': query.orderBy('instance.followersCount', 'ASC'); break; - case '+caughtAt': query.orderBy('instance.caughtAt', 'DESC'); break; - case '-caughtAt': query.orderBy('instance.caughtAt', 'ASC'); break; - case '+lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'DESC'); break; - case '-lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'ASC'); break; - - default: query.orderBy('instance.id', 'DESC'); break; - } - - if (typeof ps.blocked === 'boolean') { - const meta = await fetchMeta(true); - if (ps.blocked) { - query.andWhere('instance.host IN (:...blocks)', { blocks: meta.blockedHosts }); - } else { - query.andWhere('instance.host NOT IN (:...blocks)', { blocks: meta.blockedHosts }); - } - } - - if (typeof ps.notResponding === 'boolean') { - if (ps.notResponding) { - query.andWhere('instance.isNotResponding = TRUE'); - } else { - query.andWhere('instance.isNotResponding = FALSE'); - } - } - - if (typeof ps.suspended === 'boolean') { - if (ps.suspended) { - query.andWhere('instance.isSuspended = TRUE'); - } else { - query.andWhere('instance.isSuspended = FALSE'); - } - } - - if (typeof ps.federating === 'boolean') { - if (ps.federating) { - query.andWhere('((instance.followingCount > 0) OR (instance.followersCount > 0))'); - } else { - query.andWhere('((instance.followingCount = 0) AND (instance.followersCount = 0))'); - } - } - - if (typeof ps.subscribing === 'boolean') { - if (ps.subscribing) { - query.andWhere('instance.followersCount > 0'); - } else { - query.andWhere('instance.followersCount = 0'); - } - } - - if (typeof ps.publishing === 'boolean') { - if (ps.publishing) { - query.andWhere('instance.followingCount > 0'); - } else { - query.andWhere('instance.followingCount = 0'); - } - } - - if (ps.host) { - query.andWhere('instance.host like :host', { host: '%' + ps.host.toLowerCase() + '%' }); - } - - const instances = await query.take(ps.limit).skip(ps.offset).getMany(); - - return await Instances.packMany(instances); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/show-instance.ts b/packages/backend/src/server/api/endpoints/federation/show-instance.ts deleted file mode 100644 index 2fbb8a15c..000000000 --- a/packages/backend/src/server/api/endpoints/federation/show-instance.ts +++ /dev/null @@ -1,34 +0,0 @@ -import define from '../../define.js'; -import { Instances } from '@/models/index.js'; -import { toPuny } from '@/misc/convert-host.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - res: { - oneOf: [{ - type: 'object', - ref: 'FederationInstance', - }, { - type: 'null', - }], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const instance = await Instances - .findOneBy({ host: toPuny(ps.host) }); - - return instance ? await Instances.pack(instance) : null; -}); diff --git a/packages/backend/src/server/api/endpoints/federation/stats.ts b/packages/backend/src/server/api/endpoints/federation/stats.ts deleted file mode 100644 index e02c7b97e..000000000 --- a/packages/backend/src/server/api/endpoints/federation/stats.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { IsNull, MoreThan, Not } from 'typeorm'; -import { Followings, Instances } from '@/models/index.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - allowGet: true, - cacheSec: 60 * 60, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const [topSubInstances, topPubInstances, allSubCount, allPubCount] = await Promise.all([ - Instances.find({ - where: { - followersCount: MoreThan(0), - }, - order: { - followersCount: 'DESC', - }, - take: ps.limit, - }), - Instances.find({ - where: { - followingCount: MoreThan(0), - }, - order: { - followingCount: 'DESC', - }, - take: ps.limit, - }), - Followings.count({ - where: { - followeeHost: Not(IsNull()), - }, - }), - Followings.count({ - where: { - followerHost: Not(IsNull()), - }, - }), - ]); - - const gotSubCount = topSubInstances.map(x => x.followersCount).reduce((a, b) => a + b, 0); - const gotPubCount = topPubInstances.map(x => x.followingCount).reduce((a, b) => a + b, 0); - - return await awaitAll({ - topSubInstances: Instances.packMany(topSubInstances), - otherFollowersCount: Math.max(0, allSubCount - gotSubCount), - topPubInstances: Instances.packMany(topPubInstances), - otherFollowingCount: Math.max(0, allPubCount - gotPubCount), - }); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts deleted file mode 100644 index 409cc7695..000000000 --- a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../define.js'; -import { getRemoteUser } from '../../common/getters.js'; -import { updatePerson } from '@/remote/activitypub/models/person.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await getRemoteUser(ps.userId); - await updatePerson(user.uri!); -}); diff --git a/packages/backend/src/server/api/endpoints/federation/users.ts b/packages/backend/src/server/api/endpoints/federation/users.ts deleted file mode 100644 index 65ad9f88d..000000000 --- a/packages/backend/src/server/api/endpoints/federation/users.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['federation'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailedNotMe', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - host: { type: 'string' }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: ['host'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Users.createQueryBuilder('user'), ps.sinceId, ps.untilId) - .andWhere(`user.host = :host`, { host: ps.host }); - - const users = await query - .take(ps.limit) - .getMany(); - - return await Users.packMany(users, me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/fetch-rss.ts b/packages/backend/src/server/api/endpoints/fetch-rss.ts deleted file mode 100644 index 05fa22a9e..000000000 --- a/packages/backend/src/server/api/endpoints/fetch-rss.ts +++ /dev/null @@ -1,39 +0,0 @@ -import Parser from 'rss-parser'; -import { getResponse } from '@/misc/fetch.js'; -import config from '@/config/index.js'; -import define from '../define.js'; - -const rssParser = new Parser(); - -export const meta = { - tags: ['meta'], - - requireCredential: false, - allowGet: true, - cacheSec: 60 * 3, -} as const; - -export const paramDef = { - type: 'object', - properties: { - url: { type: 'string' }, - }, - required: ['url'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const res = await getResponse({ - url: ps.url, - method: 'GET', - headers: Object.assign({ - 'User-Agent': config.userAgent, - Accept: 'application/rss+xml, */*', - }), - timeout: 5000, - }); - - const text = await res.text(); - - return rssParser.parseString(text); -}); diff --git a/packages/backend/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts deleted file mode 100644 index 02a030cd5..000000000 --- a/packages/backend/src/server/api/endpoints/following/create.ts +++ /dev/null @@ -1,104 +0,0 @@ -import ms from 'ms'; -import create from '@/services/following/create.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Followings, Users } from '@/models/index.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; - -export const meta = { - tags: ['following', 'users'], - - limit: { - duration: ms('1hour'), - max: 100, - }, - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5', - }, - - followeeIsYourself: { - message: 'Followee is yourself.', - code: 'FOLLOWEE_IS_YOURSELF', - id: '26fbe7bb-a331-4857-af17-205b426669a9', - }, - - alreadyFollowing: { - message: 'You are already following that user.', - code: 'ALREADY_FOLLOWING', - id: '35387507-38c7-4cb9-9197-300b93783fa0', - }, - - blocking: { - message: 'You are blocking that user.', - code: 'BLOCKING', - id: '4e2206ec-aa4f-4960-b865-6c23ac38e2d9', - }, - - blocked: { - message: 'You are blocked by that user.', - code: 'BLOCKED', - id: 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const follower = user; - - // 自分自身 - if (user.id === ps.userId) { - throw new ApiError(meta.errors.followeeIsYourself); - } - - // Get followee - const followee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check if already following - const exist = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyFollowing); - } - - try { - await create(follower, followee); - } catch (e) { - if (e instanceof IdentifiableError) { - if (e.id === '710e8fb0-b8c3-4922-be49-d5d93d8e6a6e') throw new ApiError(meta.errors.blocking); - if (e.id === '3338392a-f764-498d-8855-db939dcf8c48') throw new ApiError(meta.errors.blocked); - } - throw e; - } - - return await Users.pack(followee.id, user); -}); diff --git a/packages/backend/src/server/api/endpoints/following/delete.ts b/packages/backend/src/server/api/endpoints/following/delete.ts deleted file mode 100644 index 2f41b16e9..000000000 --- a/packages/backend/src/server/api/endpoints/following/delete.ts +++ /dev/null @@ -1,83 +0,0 @@ -import ms from 'ms'; -import deleteFollowing from '@/services/following/delete.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Followings, Users } from '@/models/index.js'; - -export const meta = { - tags: ['following', 'users'], - - limit: { - duration: ms('1hour'), - max: 100, - }, - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', - }, - - followeeIsYourself: { - message: 'Followee is yourself.', - code: 'FOLLOWEE_IS_YOURSELF', - id: 'd9e400b9-36b0-4808-b1d8-79e707f1296c', - }, - - notFollowing: { - message: 'You are not following that user.', - code: 'NOT_FOLLOWING', - id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const follower = user; - - // Check if the followee is yourself - if (user.id === ps.userId) { - throw new ApiError(meta.errors.followeeIsYourself); - } - - // Get followee - const followee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check not following - const exist = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notFollowing); - } - - await deleteFollowing(follower, followee); - - return await Users.pack(followee.id, user); -}); diff --git a/packages/backend/src/server/api/endpoints/following/invalidate.ts b/packages/backend/src/server/api/endpoints/following/invalidate.ts deleted file mode 100644 index 18ec5affe..000000000 --- a/packages/backend/src/server/api/endpoints/following/invalidate.ts +++ /dev/null @@ -1,83 +0,0 @@ -import ms from 'ms'; -import deleteFollowing from '@/services/following/delete.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Followings, Users } from '@/models/index.js'; - -export const meta = { - tags: ['following', 'users'], - - limit: { - duration: ms('1hour'), - max: 100, - }, - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', - }, - - followerIsYourself: { - message: 'Follower is yourself.', - code: 'FOLLOWER_IS_YOURSELF', - id: '07dc03b9-03da-422d-885b-438313707662', - }, - - notFollowing: { - message: 'The other use is not following you.', - code: 'NOT_FOLLOWING', - id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const followee = user; - - // Check if the follower is yourself - if (user.id === ps.userId) { - throw new ApiError(meta.errors.followerIsYourself); - } - - // Get follower - const follower = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check not following - const exist = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notFollowing); - } - - await deleteFollowing(follower, followee); - - return await Users.pack(followee.id, user); -}); diff --git a/packages/backend/src/server/api/endpoints/following/requests/accept.ts b/packages/backend/src/server/api/endpoints/following/requests/accept.ts deleted file mode 100644 index e5df55375..000000000 --- a/packages/backend/src/server/api/endpoints/following/requests/accept.ts +++ /dev/null @@ -1,49 +0,0 @@ -import acceptFollowRequest from '@/services/following/requests/accept.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['following', 'account'], - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '66ce1645-d66c-46bb-8b79-96739af885bd', - }, - noFollowRequest: { - message: 'No follow request.', - code: 'NO_FOLLOW_REQUEST', - id: 'bcde4f8b-0913-4614-8881-614e522fb041', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch follower - const follower = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - await acceptFollowRequest(user, follower).catch(e => { - if (e.id === '8884c2dd-5795-4ac9-b27e-6a01d38190f9') throw new ApiError(meta.errors.noFollowRequest); - throw e; - }); - - return; -}); diff --git a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts deleted file mode 100644 index 80d37fb07..000000000 --- a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts +++ /dev/null @@ -1,62 +0,0 @@ -import cancelFollowRequest from '@/services/following/requests/cancel.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; -import { Users } from '@/models/index.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; - -export const meta = { - tags: ['following', 'account'], - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab', - }, - - followRequestNotFound: { - message: 'Follow request not found.', - code: 'FOLLOW_REQUEST_NOT_FOUND', - id: '089b125b-d338-482a-9a09-e2622ac9f8d4', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch followee - const followee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - try { - await cancelFollowRequest(followee, user); - } catch (e) { - if (e instanceof IdentifiableError) { - if (e.id === '17447091-ce07-46dd-b331-c1fd4f15b1e7') throw new ApiError(meta.errors.followRequestNotFound); - } - throw e; - } - - return await Users.pack(followee.id, user); -}); diff --git a/packages/backend/src/server/api/endpoints/following/requests/list.ts b/packages/backend/src/server/api/endpoints/following/requests/list.ts deleted file mode 100644 index a8f42c481..000000000 --- a/packages/backend/src/server/api/endpoints/following/requests/list.ts +++ /dev/null @@ -1,51 +0,0 @@ -import define from '../../../define.js'; -import { FollowRequests } from '@/models/index.js'; - -export const meta = { - tags: ['following', 'account'], - - requireCredential: true, - - kind: 'read:following', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - follower: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, - followee: { - type: 'object', - optional: false, nullable: false, - ref: 'UserLite', - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const reqs = await FollowRequests.findBy({ - followeeId: user.id, - }); - - return await Promise.all(reqs.map(req => FollowRequests.pack(req))); -}); diff --git a/packages/backend/src/server/api/endpoints/following/requests/reject.ts b/packages/backend/src/server/api/endpoints/following/requests/reject.ts deleted file mode 100644 index cebe60428..000000000 --- a/packages/backend/src/server/api/endpoints/following/requests/reject.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { rejectFollowRequest } from '@/services/following/reject.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['following', 'account'], - - requireCredential: true, - - kind: 'write:following', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'abc2ffa6-25b2-4380-ba99-321ff3a94555', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch follower - const follower = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - await rejectFollowRequest(user, follower); - - return; -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/featured.ts b/packages/backend/src/server/api/endpoints/gallery/featured.ts deleted file mode 100644 index e6acd3691..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/featured.ts +++ /dev/null @@ -1,36 +0,0 @@ -import define from '../../define.js'; -import { GalleryPosts } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = GalleryPosts.createQueryBuilder('post') - .andWhere('post.createdAt > :date', { date: new Date(Date.now() - (1000 * 60 * 60 * 24 * 3)) }) - .andWhere('post.likedCount > 0') - .orderBy('post.likedCount', 'DESC'); - - const posts = await query.take(10).getMany(); - - return await GalleryPosts.packMany(posts, me); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/popular.ts b/packages/backend/src/server/api/endpoints/gallery/popular.ts deleted file mode 100644 index c4c8982fc..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/popular.ts +++ /dev/null @@ -1,35 +0,0 @@ -import define from '../../define.js'; -import { GalleryPosts } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = GalleryPosts.createQueryBuilder('post') - .andWhere('post.likedCount > 0') - .orderBy('post.likedCount', 'DESC'); - - const posts = await query.take(10).getMany(); - - return await GalleryPosts.packMany(posts, me); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts.ts b/packages/backend/src/server/api/endpoints/gallery/posts.ts deleted file mode 100644 index 428ba9cc7..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts.ts +++ /dev/null @@ -1,37 +0,0 @@ -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { GalleryPosts } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(GalleryPosts.createQueryBuilder('post'), ps.sinceId, ps.untilId) - .innerJoinAndSelect('post.user', 'user'); - - const posts = await query.take(ps.limit).getMany(); - - return await GalleryPosts.packMany(posts, me); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts deleted file mode 100644 index 8074a3b34..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts +++ /dev/null @@ -1,70 +0,0 @@ -import ms from 'ms'; -import define from '../../../define.js'; -import { DriveFiles, GalleryPosts } from '@/models/index.js'; -import { genId } from '../../../../../misc/gen-id.js'; -import { GalleryPost } from '@/models/entities/gallery-post.js'; -import { ApiError } from '../../../error.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: true, - - kind: 'write:gallery', - - limit: { - duration: ms('1hour'), - max: 300, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - - errors: { - - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - title: { type: 'string', minLength: 1 }, - description: { type: 'string', nullable: true }, - fileIds: { type: 'array', uniqueItems: true, minItems: 1, maxItems: 32, items: { - type: 'string', format: 'misskey:id', - } }, - isSensitive: { type: 'boolean', default: false }, - }, - required: ['title', 'fileIds'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const files = (await Promise.all(ps.fileIds.map(fileId => - DriveFiles.findOneBy({ - id: fileId, - userId: user.id, - }) - ))).filter((file): file is DriveFile => file != null); - - if (files.length === 0) { - throw new Error(); - } - - const post = await GalleryPosts.insert(new GalleryPost({ - id: genId(), - createdAt: new Date(), - updatedAt: new Date(), - title: ps.title, - description: ps.description, - userId: user.id, - isSensitive: ps.isSensitive, - fileIds: files.map(file => file.id), - })).then(x => GalleryPosts.findOneByOrFail(x.identifiers[0])); - - return await GalleryPosts.pack(post, user); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts deleted file mode 100644 index b00ee0e2a..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { GalleryPosts } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: true, - - kind: 'write:gallery', - - errors: { - noSuchPost: { - message: 'No such post.', - code: 'NO_SUCH_POST', - id: 'ae52f367-4bd7-4ecd-afc6-5672fff427f5', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - postId: { type: 'string', format: 'misskey:id' }, - }, - required: ['postId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const post = await GalleryPosts.findOneBy({ - id: ps.postId, - userId: user.id, - }); - - if (post == null) { - throw new ApiError(meta.errors.noSuchPost); - } - - await GalleryPosts.delete(post.id); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts deleted file mode 100644 index b858114ae..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts +++ /dev/null @@ -1,72 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { GalleryPosts, GalleryLikes } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: true, - - kind: 'write:gallery-likes', - - errors: { - noSuchPost: { - message: 'No such post.', - code: 'NO_SUCH_POST', - id: '56c06af3-1287-442f-9701-c93f7c4a62ff', - }, - - yourPost: { - message: 'You cannot like your post.', - code: 'YOUR_POST', - id: 'f78f1511-5ebc-4478-a888-1198d752da68', - }, - - alreadyLiked: { - message: 'The post has already been liked.', - code: 'ALREADY_LIKED', - id: '40e9ed56-a59c-473a-bf3f-f289c54fb5a7', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - postId: { type: 'string', format: 'misskey:id' }, - }, - required: ['postId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const post = await GalleryPosts.findOneBy({ id: ps.postId }); - if (post == null) { - throw new ApiError(meta.errors.noSuchPost); - } - - if (post.userId === user.id) { - throw new ApiError(meta.errors.yourPost); - } - - // if already liked - const exist = await GalleryLikes.findOneBy({ - postId: post.id, - userId: user.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyLiked); - } - - // Create like - await GalleryLikes.insert({ - id: genId(), - createdAt: new Date(), - postId: post.id, - userId: user.id, - }); - - GalleryPosts.increment({ id: post.id }, 'likedCount', 1); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts deleted file mode 100644 index 4f6dafd7c..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { GalleryPosts } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: false, - - errors: { - noSuchPost: { - message: 'No such post.', - code: 'NO_SUCH_POST', - id: '1137bf14-c5b0-4604-85bb-5b5371b1cd45', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - postId: { type: 'string', format: 'misskey:id' }, - }, - required: ['postId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const post = await GalleryPosts.findOneBy({ - id: ps.postId, - }); - - if (post == null) { - throw new ApiError(meta.errors.noSuchPost); - } - - return await GalleryPosts.pack(post, me); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts deleted file mode 100644 index d136239e5..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts +++ /dev/null @@ -1,55 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { GalleryPosts, GalleryLikes } from '@/models/index.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: true, - - kind: 'write:gallery-likes', - - errors: { - noSuchPost: { - message: 'No such post.', - code: 'NO_SUCH_POST', - id: 'c32e6dd0-b555-4413-925e-b3757d19ed84', - }, - - notLiked: { - message: 'You have not liked that post.', - code: 'NOT_LIKED', - id: 'e3e8e06e-be37-41f7-a5b4-87a8250288f0', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - postId: { type: 'string', format: 'misskey:id' }, - }, - required: ['postId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const post = await GalleryPosts.findOneBy({ id: ps.postId }); - if (post == null) { - throw new ApiError(meta.errors.noSuchPost); - } - - const exist = await GalleryLikes.findOneBy({ - postId: post.id, - userId: user.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notLiked); - } - - // Delete like - await GalleryLikes.delete(exist.id); - - GalleryPosts.decrement({ id: post.id }, 'likedCount', 1); -}); diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts deleted file mode 100644 index 82fe38078..000000000 --- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts +++ /dev/null @@ -1,72 +0,0 @@ -import ms from 'ms'; -import define from '../../../define.js'; -import { DriveFiles, GalleryPosts } from '@/models/index.js'; -import { GalleryPost } from '@/models/entities/gallery-post.js'; -import { ApiError } from '../../../error.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; - -export const meta = { - tags: ['gallery'], - - requireCredential: true, - - kind: 'write:gallery', - - limit: { - duration: ms('1hour'), - max: 300, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - - errors: { - - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - postId: { type: 'string', format: 'misskey:id' }, - title: { type: 'string', minLength: 1 }, - description: { type: 'string', nullable: true }, - fileIds: { type: 'array', uniqueItems: true, minItems: 1, maxItems: 32, items: { - type: 'string', format: 'misskey:id', - } }, - isSensitive: { type: 'boolean', default: false }, - }, - required: ['postId', 'title', 'fileIds'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const files = (await Promise.all(ps.fileIds.map(fileId => - DriveFiles.findOneBy({ - id: fileId, - userId: user.id, - }) - ))).filter((file): file is DriveFile => file != null); - - if (files.length === 0) { - throw new Error(); - } - - await GalleryPosts.update({ - id: ps.postId, - userId: user.id, - }, { - updatedAt: new Date(), - title: ps.title, - description: ps.description, - isSensitive: ps.isSensitive, - fileIds: files.map(file => file.id), - }); - - const post = await GalleryPosts.findOneByOrFail({ id: ps.postId }); - - return await GalleryPosts.pack(post, user); -}); diff --git a/packages/backend/src/server/api/endpoints/get-online-users-count.ts b/packages/backend/src/server/api/endpoints/get-online-users-count.ts deleted file mode 100644 index 56c550297..000000000 --- a/packages/backend/src/server/api/endpoints/get-online-users-count.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { MoreThan } from 'typeorm'; -import { USER_ONLINE_THRESHOLD } from '@/const.js'; -import { Users } from '@/models/index.js'; -import define from '../define.js'; - -export const meta = { - tags: ['meta'], - - requireCredential: false, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const count = await Users.countBy({ - lastActiveDate: MoreThan(new Date(Date.now() - USER_ONLINE_THRESHOLD)), - }); - - return { - count, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/hashtags/list.ts b/packages/backend/src/server/api/endpoints/hashtags/list.ts deleted file mode 100644 index 50e36386c..000000000 --- a/packages/backend/src/server/api/endpoints/hashtags/list.ts +++ /dev/null @@ -1,68 +0,0 @@ -import define from '../../define.js'; -import { Hashtags } from '@/models/index.js'; - -export const meta = { - tags: ['hashtags'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Hashtag', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - attachedToUserOnly: { type: 'boolean', default: false }, - attachedToLocalUserOnly: { type: 'boolean', default: false }, - attachedToRemoteUserOnly: { type: 'boolean', default: false }, - sort: { type: 'string', enum: ['+mentionedUsers', '-mentionedUsers', '+mentionedLocalUsers', '-mentionedLocalUsers', '+mentionedRemoteUsers', '-mentionedRemoteUsers', '+attachedUsers', '-attachedUsers', '+attachedLocalUsers', '-attachedLocalUsers', '+attachedRemoteUsers', '-attachedRemoteUsers'] }, - }, - required: ['sort'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Hashtags.createQueryBuilder('tag'); - - if (ps.attachedToUserOnly) query.andWhere('tag.attachedUsersCount != 0'); - if (ps.attachedToLocalUserOnly) query.andWhere('tag.attachedLocalUsersCount != 0'); - if (ps.attachedToRemoteUserOnly) query.andWhere('tag.attachedRemoteUsersCount != 0'); - - switch (ps.sort) { - case '+mentionedUsers': query.orderBy('tag.mentionedUsersCount', 'DESC'); break; - case '-mentionedUsers': query.orderBy('tag.mentionedUsersCount', 'ASC'); break; - case '+mentionedLocalUsers': query.orderBy('tag.mentionedLocalUsersCount', 'DESC'); break; - case '-mentionedLocalUsers': query.orderBy('tag.mentionedLocalUsersCount', 'ASC'); break; - case '+mentionedRemoteUsers': query.orderBy('tag.mentionedRemoteUsersCount', 'DESC'); break; - case '-mentionedRemoteUsers': query.orderBy('tag.mentionedRemoteUsersCount', 'ASC'); break; - case '+attachedUsers': query.orderBy('tag.attachedUsersCount', 'DESC'); break; - case '-attachedUsers': query.orderBy('tag.attachedUsersCount', 'ASC'); break; - case '+attachedLocalUsers': query.orderBy('tag.attachedLocalUsersCount', 'DESC'); break; - case '-attachedLocalUsers': query.orderBy('tag.attachedLocalUsersCount', 'ASC'); break; - case '+attachedRemoteUsers': query.orderBy('tag.attachedRemoteUsersCount', 'DESC'); break; - case '-attachedRemoteUsers': query.orderBy('tag.attachedRemoteUsersCount', 'ASC'); break; - } - - query.select([ - 'tag.name', - 'tag.mentionedUsersCount', - 'tag.mentionedLocalUsersCount', - 'tag.mentionedRemoteUsersCount', - 'tag.attachedUsersCount', - 'tag.attachedLocalUsersCount', - 'tag.attachedRemoteUsersCount', - ]); - - const tags = await query.take(ps.limit).getMany(); - - return Hashtags.packMany(tags); -}); diff --git a/packages/backend/src/server/api/endpoints/hashtags/search.ts b/packages/backend/src/server/api/endpoints/hashtags/search.ts deleted file mode 100644 index c28984477..000000000 --- a/packages/backend/src/server/api/endpoints/hashtags/search.ts +++ /dev/null @@ -1,40 +0,0 @@ -import define from '../../define.js'; -import { Hashtags } from '@/models/index.js'; - -export const meta = { - tags: ['hashtags'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - query: { type: 'string' }, - offset: { type: 'integer', default: 0 }, - }, - required: ['query'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const hashtags = await Hashtags.createQueryBuilder('tag') - .where('tag.name like :q', { q: ps.query.toLowerCase() + '%' }) - .orderBy('tag.count', 'DESC') - .groupBy('tag.id') - .take(ps.limit) - .skip(ps.offset) - .getMany(); - - return hashtags.map(tag => tag.name); -}); diff --git a/packages/backend/src/server/api/endpoints/hashtags/show.ts b/packages/backend/src/server/api/endpoints/hashtags/show.ts deleted file mode 100644 index 5b78f6ac7..000000000 --- a/packages/backend/src/server/api/endpoints/hashtags/show.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Hashtags } from '@/models/index.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; - -export const meta = { - tags: ['hashtags'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Hashtag', - }, - - errors: { - noSuchHashtag: { - message: 'No such hashtag.', - code: 'NO_SUCH_HASHTAG', - id: '110ee688-193e-4a3a-9ecf-c167b2e6981e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - tag: { type: 'string' }, - }, - required: ['tag'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const hashtag = await Hashtags.findOneBy({ name: normalizeForSearch(ps.tag) }); - if (hashtag == null) { - throw new ApiError(meta.errors.noSuchHashtag); - } - - return await Hashtags.pack(hashtag); -}); diff --git a/packages/backend/src/server/api/endpoints/hashtags/users.ts b/packages/backend/src/server/api/endpoints/hashtags/users.ts deleted file mode 100644 index a5df21a7e..000000000 --- a/packages/backend/src/server/api/endpoints/hashtags/users.ts +++ /dev/null @@ -1,62 +0,0 @@ -import define from '../../define.js'; -import { Users } from '@/models/index.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; - -export const meta = { - requireCredential: false, - - tags: ['hashtags', 'users'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - tag: { type: 'string' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sort: { type: 'string', enum: ['+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt'] }, - state: { type: 'string', enum: ['all', 'alive'], default: "all" }, - origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: "local" }, - }, - required: ['tag', 'sort'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Users.createQueryBuilder('user') - .where(':tag = ANY(user.tags)', { tag: normalizeForSearch(ps.tag) }); - - const recent = new Date(Date.now() - (1000 * 60 * 60 * 24 * 5)); - - if (ps.state === 'alive') { - query.andWhere('user.updatedAt > :date', { date: recent }); - } - - if (ps.origin === 'local') { - query.andWhere('user.host IS NULL'); - } else if (ps.origin === 'remote') { - query.andWhere('user.host IS NOT NULL'); - } - - switch (ps.sort) { - case '+follower': query.orderBy('user.followersCount', 'DESC'); break; - case '-follower': query.orderBy('user.followersCount', 'ASC'); break; - case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; - case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; - case '+updatedAt': query.orderBy('user.updatedAt', 'DESC'); break; - case '-updatedAt': query.orderBy('user.updatedAt', 'ASC'); break; - } - - const users = await query.take(ps.limit).getMany(); - - return await Users.packMany(users, me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/i.ts b/packages/backend/src/server/api/endpoints/i.ts deleted file mode 100644 index 22aedfeee..000000000 --- a/packages/backend/src/server/api/endpoints/i.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Users } from '@/models/index.js'; -import define from '../define.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'MeDetailed', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user, token) => { - const isSecure = token == null; - - // ここで渡ってきている user はキャッシュされていて古い可能性もあるので id だけ渡す - return await Users.pack(user.id, user, { - detail: true, - includeSecrets: isSecure, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/done.ts b/packages/backend/src/server/api/endpoints/i/2fa/done.ts deleted file mode 100644 index 35806b2bc..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/done.ts +++ /dev/null @@ -1,43 +0,0 @@ -import * as speakeasy from 'speakeasy'; -import define from '../../../define.js'; -import { UserProfiles } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - token: { type: 'string' }, - }, - required: ['token'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const token = ps.token.replace(/\s/g, ''); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (profile.twoFactorTempSecret == null) { - throw new Error('二段階認証の設定が開始されていません'); - } - - const verified = (speakeasy as any).totp.verify({ - secret: profile.twoFactorTempSecret, - encoding: 'base32', - token: token, - }); - - if (!verified) { - throw new Error('not verified'); - } - - await UserProfiles.update(user.id, { - twoFactorSecret: profile.twoFactorTempSecret, - twoFactorEnabled: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts deleted file mode 100644 index 1afb34bfd..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts +++ /dev/null @@ -1,143 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { promisify } from 'node:util'; -import * as cbor from 'cbor'; -import define from '../../../define.js'; -import { - UserProfiles, - UserSecurityKeys, - AttestationChallenges, - Users, -} from '@/models/index.js'; -import config from '@/config/index.js'; -import { procedures, hash } from '../../../2fa.js'; -import { publishMainStream } from '@/services/stream.js'; - -const cborDecodeFirst = promisify(cbor.decodeFirst) as any; -const rpIdHashReal = hash(Buffer.from(config.hostname, 'utf-8')); - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - clientDataJSON: { type: 'string' }, - attestationObject: { type: 'string' }, - password: { type: 'string' }, - challengeId: { type: 'string' }, - name: { type: 'string' }, - }, - required: ['clientDataJSON', 'attestationObject', 'password', 'challengeId', 'name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - if (!profile.twoFactorEnabled) { - throw new Error('2fa not enabled'); - } - - const clientData = JSON.parse(ps.clientDataJSON); - - if (clientData.type !== 'webauthn.create') { - throw new Error('not a creation attestation'); - } - if (clientData.origin !== config.scheme + '://' + config.host) { - throw new Error('origin mismatch'); - } - - const clientDataJSONHash = hash(Buffer.from(ps.clientDataJSON, 'utf-8')); - - const attestation = await cborDecodeFirst(ps.attestationObject); - - const rpIdHash = attestation.authData.slice(0, 32); - if (!rpIdHashReal.equals(rpIdHash)) { - throw new Error('rpIdHash mismatch'); - } - - const flags = attestation.authData[32]; - - // eslint:disable-next-line:no-bitwise - if (!(flags & 1)) { - throw new Error('user not present'); - } - - const authData = Buffer.from(attestation.authData); - const credentialIdLength = authData.readUInt16BE(53); - const credentialId = authData.slice(55, 55 + credentialIdLength); - const publicKeyData = authData.slice(55 + credentialIdLength); - const publicKey: Map = await cborDecodeFirst(publicKeyData); - if (publicKey.get(3) !== -7) { - throw new Error('alg mismatch'); - } - - if (!(procedures as any)[attestation.fmt]) { - throw new Error('unsupported fmt'); - } - - const verificationData = (procedures as any)[attestation.fmt].verify({ - attStmt: attestation.attStmt, - authenticatorData: authData, - clientDataHash: clientDataJSONHash, - credentialId, - publicKey, - rpIdHash, - }); - if (!verificationData.valid) throw new Error('signature invalid'); - - const attestationChallenge = await AttestationChallenges.findOneBy({ - userId: user.id, - id: ps.challengeId, - registrationChallenge: true, - challenge: hash(clientData.challenge).toString('hex'), - }); - - if (!attestationChallenge) { - throw new Error('non-existent challenge'); - } - - await AttestationChallenges.delete({ - userId: user.id, - id: ps.challengeId, - }); - - // Expired challenge (> 5min old) - if ( - new Date().getTime() - attestationChallenge.createdAt.getTime() >= - 5 * 60 * 1000 - ) { - throw new Error('expired challenge'); - } - - const credentialIdString = credentialId.toString('hex'); - - await UserSecurityKeys.insert({ - userId: user.id, - id: credentialIdString, - lastUsed: new Date(), - name: ps.name, - publicKey: verificationData.publicKey.toString('hex'), - }); - - // Publish meUpdated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user.id, user, { - detail: true, - includeSecrets: true, - })); - - return { - id: credentialIdString, - name: ps.name, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts deleted file mode 100644 index 4bfa24f97..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../../define.js'; -import { UserProfiles } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - value: { type: 'boolean' }, - }, - required: ['value'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - await UserProfiles.update(user.id, { - usePasswordLessLogin: ps.value, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts deleted file mode 100644 index e906b8204..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts +++ /dev/null @@ -1,61 +0,0 @@ -import bcrypt from 'bcryptjs'; -import define from '../../../define.js'; -import { UserProfiles, AttestationChallenges } from '@/models/index.js'; -import { promisify } from 'node:util'; -import * as crypto from 'node:crypto'; -import { genId } from '@/misc/gen-id.js'; -import { hash } from '../../../2fa.js'; - -const randomBytes = promisify(crypto.randomBytes); - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - if (!profile.twoFactorEnabled) { - throw new Error('2fa not enabled'); - } - - // 32 byte challenge - const entropy = await randomBytes(32); - const challenge = entropy.toString('base64') - .replace(/=/g, '') - .replace(/\+/g, '-') - .replace(/\//g, '_'); - - const challengeId = genId(); - - await AttestationChallenges.insert({ - userId: user.id, - id: challengeId, - challenge: hash(Buffer.from(challenge, 'utf-8')).toString('hex'), - createdAt: new Date(), - registrationChallenge: true, - }); - - return { - challengeId, - challenge, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register.ts b/packages/backend/src/server/api/endpoints/i/2fa/register.ts deleted file mode 100644 index 33f571772..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/register.ts +++ /dev/null @@ -1,58 +0,0 @@ -import bcrypt from 'bcryptjs'; -import * as speakeasy from 'speakeasy'; -import * as QRCode from 'qrcode'; -import config from '@/config/index.js'; -import { UserProfiles } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - // Generate user's secret key - const secret = speakeasy.generateSecret({ - length: 32, - }); - - await UserProfiles.update(user.id, { - twoFactorTempSecret: secret.base32, - }); - - // Get the data URL of the authenticator URL - const url = speakeasy.otpauthURL({ - secret: secret.base32, - encoding: 'base32', - label: user.username, - issuer: config.host, - }); - const dataUrl = await QRCode.toDataURL(url); - - return { - qr: dataUrl, - url, - secret: secret.base32, - label: user.username, - issuer: config.host, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts deleted file mode 100644 index eb2f75308..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts +++ /dev/null @@ -1,45 +0,0 @@ -import bcrypt from 'bcryptjs'; -import define from '../../../define.js'; -import { UserProfiles, UserSecurityKeys, Users } from '@/models/index.js'; -import { publishMainStream } from '@/services/stream.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - credentialId: { type: 'string' }, - }, - required: ['password', 'credentialId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - // Make sure we only delete the user's own creds - await UserSecurityKeys.delete({ - userId: user.id, - id: ps.credentialId, - }); - - // Publish meUpdated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user.id, user, { - detail: true, - includeSecrets: true, - })); - - return {}; -}); diff --git a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts deleted file mode 100644 index 45e7a9863..000000000 --- a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts +++ /dev/null @@ -1,34 +0,0 @@ -import bcrypt from 'bcryptjs'; -import define from '../../../define.js'; -import { UserProfiles } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - await UserProfiles.update(user.id, { - twoFactorSecret: null, - twoFactorEnabled: false, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts deleted file mode 100644 index eca955884..000000000 --- a/packages/backend/src/server/api/endpoints/i/apps.ts +++ /dev/null @@ -1,40 +0,0 @@ -import define from '../../define.js'; -import { AccessTokens } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - sort: { type: 'string', enum: ['+createdAt', '-createdAt', '+lastUsedAt', '-lastUsedAt'] }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = AccessTokens.createQueryBuilder('token') - .where('token.userId = :userId', { userId: user.id }); - - switch (ps.sort) { - case '+createdAt': query.orderBy('token.createdAt', 'DESC'); break; - case '-createdAt': query.orderBy('token.createdAt', 'ASC'); break; - case '+lastUsedAt': query.orderBy('token.lastUsedAt', 'DESC'); break; - case '-lastUsedAt': query.orderBy('token.lastUsedAt', 'ASC'); break; - default: query.orderBy('token.id', 'ASC'); break; - } - - const tokens = await query.getMany(); - - return await Promise.all(tokens.map(token => ({ - id: token.id, - name: token.name, - createdAt: token.createdAt, - lastUsedAt: token.lastUsedAt, - permission: token.permission, - }))); -}); diff --git a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts deleted file mode 100644 index 68bd103a6..000000000 --- a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts +++ /dev/null @@ -1,37 +0,0 @@ -import define from '../../define.js'; -import { AccessTokens, Apps } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - sort: { type: 'string', enum: ['desc', 'asc'], default: "desc" }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Get tokens - const tokens = await AccessTokens.find({ - where: { - userId: user.id, - }, - take: ps.limit, - skip: ps.offset, - order: { - id: ps.sort === 'asc' ? 1 : -1, - }, - }); - - return await Promise.all(tokens.map(token => Apps.pack(token.appId, user, { - detail: true, - }))); -}); diff --git a/packages/backend/src/server/api/endpoints/i/change-password.ts b/packages/backend/src/server/api/endpoints/i/change-password.ts deleted file mode 100644 index f9f6a33a8..000000000 --- a/packages/backend/src/server/api/endpoints/i/change-password.ts +++ /dev/null @@ -1,38 +0,0 @@ -import bcrypt from 'bcryptjs'; -import define from '../../define.js'; -import { UserProfiles } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - currentPassword: { type: 'string' }, - newPassword: { type: 'string', minLength: 1 }, - }, - required: ['currentPassword', 'newPassword'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.currentPassword, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - // Generate hash of password - const salt = await bcrypt.genSalt(8); - const hash = await bcrypt.hash(ps.newPassword, salt); - - await UserProfiles.update(user.id, { - password: hash, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/delete-account.ts b/packages/backend/src/server/api/endpoints/i/delete-account.ts deleted file mode 100644 index ede4a9d03..000000000 --- a/packages/backend/src/server/api/endpoints/i/delete-account.ts +++ /dev/null @@ -1,36 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { UserProfiles, Users } from '@/models/index.js'; -import { deleteAccount } from '@/services/delete-account.js'; -import define from '../../define.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - const userDetailed = await Users.findOneByOrFail({ id: user.id }); - if (userDetailed.isDeleted) { - return; - } - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - await deleteAccount(user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/export-blocking.ts b/packages/backend/src/server/api/endpoints/i/export-blocking.ts deleted file mode 100644 index aed4c2e0a..000000000 --- a/packages/backend/src/server/api/endpoints/i/export-blocking.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../define.js'; -import { createExportBlockingJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportBlockingJob(user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/export-following.ts b/packages/backend/src/server/api/endpoints/i/export-following.ts deleted file mode 100644 index 058d77b3c..000000000 --- a/packages/backend/src/server/api/endpoints/i/export-following.ts +++ /dev/null @@ -1,26 +0,0 @@ -import define from '../../define.js'; -import { createExportFollowingJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - excludeMuting: { type: 'boolean', default: false }, - excludeInactive: { type: 'boolean', default: false }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportFollowingJob(user, ps.excludeMuting, ps.excludeInactive); -}); diff --git a/packages/backend/src/server/api/endpoints/i/export-mute.ts b/packages/backend/src/server/api/endpoints/i/export-mute.ts deleted file mode 100644 index c0216fac0..000000000 --- a/packages/backend/src/server/api/endpoints/i/export-mute.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../define.js'; -import { createExportMuteJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportMuteJob(user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/export-notes.ts b/packages/backend/src/server/api/endpoints/i/export-notes.ts deleted file mode 100644 index 4b85a4555..000000000 --- a/packages/backend/src/server/api/endpoints/i/export-notes.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../define.js'; -import { createExportNotesJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1day'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportNotesJob(user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts deleted file mode 100644 index fa5c1f5e5..000000000 --- a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts +++ /dev/null @@ -1,23 +0,0 @@ -import define from '../../define.js'; -import { createExportUserListsJob } from '@/queue/index.js'; -import ms from 'ms'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1min'), - max: 1, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - createExportUserListsJob(user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/favorites.ts b/packages/backend/src/server/api/endpoints/i/favorites.ts deleted file mode 100644 index 3c420e4d0..000000000 --- a/packages/backend/src/server/api/endpoints/i/favorites.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../define.js'; -import { NoteFavorites } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'notes', 'favorites'], - - requireCredential: true, - - kind: 'read:favorites', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'NoteFavorite', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(NoteFavorites.createQueryBuilder('favorite'), ps.sinceId, ps.untilId) - .andWhere(`favorite.userId = :meId`, { meId: user.id }) - .leftJoinAndSelect('favorite.note', 'note'); - - const favorites = await query - .take(ps.limit) - .getMany(); - - return await NoteFavorites.packMany(favorites, user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts deleted file mode 100644 index a38383f30..000000000 --- a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts +++ /dev/null @@ -1,55 +0,0 @@ -import define from '../../../define.js'; -import { GalleryLikes } from '@/models/index.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'gallery'], - - requireCredential: true, - - kind: 'read:gallery-likes', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - post: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, - } - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(GalleryLikes.createQueryBuilder('like'), ps.sinceId, ps.untilId) - .andWhere(`like.userId = :meId`, { meId: user.id }) - .leftJoinAndSelect('like.post', 'post'); - - const likes = await query - .take(ps.limit) - .getMany(); - - return await GalleryLikes.packMany(likes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts deleted file mode 100644 index b4edb5f73..000000000 --- a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../../define.js'; -import { GalleryPosts } from '@/models/index.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'gallery'], - - requireCredential: true, - - kind: 'read:gallery', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(GalleryPosts.createQueryBuilder('post'), ps.sinceId, ps.untilId) - .andWhere(`post.userId = :meId`, { meId: user.id }); - - const posts = await query - .take(ps.limit) - .getMany(); - - return await GalleryPosts.packMany(posts, user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/get-word-muted-notes-count.ts b/packages/backend/src/server/api/endpoints/i/get-word-muted-notes-count.ts deleted file mode 100644 index e7d7518c5..000000000 --- a/packages/backend/src/server/api/endpoints/i/get-word-muted-notes-count.ts +++ /dev/null @@ -1,37 +0,0 @@ -import define from '../../define.js'; -import { MutedNotes } from '@/models/index.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'read:account', - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - count: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - return { - count: await MutedNotes.countBy({ - userId: user.id, - reason: 'word', - }), - }; -}); diff --git a/packages/backend/src/server/api/endpoints/i/import-blocking.ts b/packages/backend/src/server/api/endpoints/i/import-blocking.ts deleted file mode 100644 index 0bcbf37dd..000000000 --- a/packages/backend/src/server/api/endpoints/i/import-blocking.ts +++ /dev/null @@ -1,61 +0,0 @@ -import define from '../../define.js'; -import { createImportBlockingJob } from '@/queue/index.js'; -import ms from 'ms'; -import { ApiError } from '../../error.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - secure: true, - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 1, - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'ebb53e5f-6574-9c0c-0b92-7ca6def56d7e', - }, - - unexpectedFileType: { - message: 'We need csv file.', - code: 'UNEXPECTED_FILE_TYPE', - id: 'b6fab7d6-d945-d67c-dfdb-32da1cd12cfe', - }, - - tooBigFile: { - message: 'That file is too big.', - code: 'TOO_BIG_FILE', - id: 'b7fbf0b1-aeef-3b21-29ef-fadd4cb72ccf', - }, - - emptyFile: { - message: 'That file is empty.', - code: 'EMPTY_FILE', - id: '6f3a4dcc-f060-a707-4950-806fbdbe60d6', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) throw new ApiError(meta.errors.noSuchFile); - //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); - if (file.size > 50000) throw new ApiError(meta.errors.tooBigFile); - if (file.size === 0) throw new ApiError(meta.errors.emptyFile); - - createImportBlockingJob(user, file.id); -}); diff --git a/packages/backend/src/server/api/endpoints/i/import-following.ts b/packages/backend/src/server/api/endpoints/i/import-following.ts deleted file mode 100644 index ee2abbea1..000000000 --- a/packages/backend/src/server/api/endpoints/i/import-following.ts +++ /dev/null @@ -1,60 +0,0 @@ -import define from '../../define.js'; -import { createImportFollowingJob } from '@/queue/index.js'; -import ms from 'ms'; -import { ApiError } from '../../error.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'b98644cf-a5ac-4277-a502-0b8054a709a3', - }, - - unexpectedFileType: { - message: 'We need csv file.', - code: 'UNEXPECTED_FILE_TYPE', - id: '660f3599-bce0-4f95-9dde-311fd841c183', - }, - - tooBigFile: { - message: 'That file is too big.', - code: 'TOO_BIG_FILE', - id: 'dee9d4ed-ad07-43ed-8b34-b2856398bc60', - }, - - emptyFile: { - message: 'That file is empty.', - code: 'EMPTY_FILE', - id: '31a1b42c-06f7-42ae-8a38-a661c5c9f691', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) throw new ApiError(meta.errors.noSuchFile); - //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); - if (file.size > 50000) throw new ApiError(meta.errors.tooBigFile); - if (file.size === 0) throw new ApiError(meta.errors.emptyFile); - - createImportFollowingJob(user, file.id); -}); diff --git a/packages/backend/src/server/api/endpoints/i/import-muting.ts b/packages/backend/src/server/api/endpoints/i/import-muting.ts deleted file mode 100644 index b3b3b3923..000000000 --- a/packages/backend/src/server/api/endpoints/i/import-muting.ts +++ /dev/null @@ -1,61 +0,0 @@ -import define from '../../define.js'; -import { createImportMutingJob } from '@/queue/index.js'; -import ms from 'ms'; -import { ApiError } from '../../error.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - secure: true, - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 1, - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'e674141e-bd2a-ba85-e616-aefb187c9c2a', - }, - - unexpectedFileType: { - message: 'We need csv file.', - code: 'UNEXPECTED_FILE_TYPE', - id: '568c6e42-c86c-ba09-c004-517f83f9f1a8', - }, - - tooBigFile: { - message: 'That file is too big.', - code: 'TOO_BIG_FILE', - id: '9b4ada6d-d7f7-0472-0713-4f558bd1ec9c', - }, - - emptyFile: { - message: 'That file is empty.', - code: 'EMPTY_FILE', - id: 'd2f12af1-e7b4-feac-86a3-519548f2728e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) throw new ApiError(meta.errors.noSuchFile); - //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); - if (file.size > 50000) throw new ApiError(meta.errors.tooBigFile); - if (file.size === 0) throw new ApiError(meta.errors.emptyFile); - - createImportMutingJob(user, file.id); -}); diff --git a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts deleted file mode 100644 index 64f5ec05f..000000000 --- a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts +++ /dev/null @@ -1,60 +0,0 @@ -import define from '../../define.js'; -import { createImportUserListsJob } from '@/queue/index.js'; -import ms from 'ms'; -import { ApiError } from '../../error.js'; -import { DriveFiles } from '@/models/index.js'; - -export const meta = { - secure: true, - requireCredential: true, - limit: { - duration: ms('1hour'), - max: 1, - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'ea9cc34f-c415-4bc6-a6fe-28ac40357049', - }, - - unexpectedFileType: { - message: 'We need csv file.', - code: 'UNEXPECTED_FILE_TYPE', - id: 'a3c9edda-dd9b-4596-be6a-150ef813745c', - }, - - tooBigFile: { - message: 'That file is too big.', - code: 'TOO_BIG_FILE', - id: 'ae6e7a22-971b-4b52-b2be-fc0b9b121fe9', - }, - - emptyFile: { - message: 'That file is empty.', - code: 'EMPTY_FILE', - id: '99efe367-ce6e-4d44-93f8-5fae7b040356', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - fileId: { type: 'string', format: 'misskey:id' }, - }, - required: ['fileId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const file = await DriveFiles.findOneBy({ id: ps.fileId }); - - if (file == null) throw new ApiError(meta.errors.noSuchFile); - //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); - if (file.size > 30000) throw new ApiError(meta.errors.tooBigFile); - if (file.size === 0) throw new ApiError(meta.errors.emptyFile); - - createImportUserListsJob(user, file.id); -}); diff --git a/packages/backend/src/server/api/endpoints/i/notifications.ts b/packages/backend/src/server/api/endpoints/i/notifications.ts deleted file mode 100644 index 2b343dabd..000000000 --- a/packages/backend/src/server/api/endpoints/i/notifications.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Notifications, Followings, Mutings, Users, UserProfiles } from '@/models/index.js'; -import { notificationTypes } from '@/types.js'; -import read from '@/services/note/read.js'; -import { readNotification } from '../../common/read-notification.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'notifications'], - - requireCredential: true, - - limit: { - duration: 60000, - max: 15, - }, - - kind: 'read:notifications', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Notification', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - following: { type: 'boolean', default: false }, - unreadOnly: { type: 'boolean', default: false }, - markAsRead: { type: 'boolean', default: true }, - includeTypes: { type: 'array', items: { - type: 'string', enum: notificationTypes, - } }, - excludeTypes: { type: 'array', items: { - type: 'string', enum: notificationTypes, - } }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // includeTypes が空の場合はクエリしない - if (ps.includeTypes && ps.includeTypes.length === 0) { - return []; - } - // excludeTypes に全指定されている場合はクエリしない - if (notificationTypes.every(type => ps.excludeTypes?.includes(type))) { - return []; - } - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: user.id }); - - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: user.id }); - - const mutingInstanceQuery = UserProfiles.createQueryBuilder('user_profile') - .select('user_profile.mutedInstances') - .where('user_profile.userId = :muterId', { muterId: user.id }); - - const suspendedQuery = Users.createQueryBuilder('users') - .select('users.id') - .where('users.isSuspended = TRUE'); - - const query = makePaginationQuery(Notifications.createQueryBuilder('notification'), ps.sinceId, ps.untilId) - .andWhere('notification.notifieeId = :meId', { meId: user.id }) - .leftJoinAndSelect('notification.notifier', 'notifier') - .leftJoinAndSelect('notification.note', 'note') - .leftJoinAndSelect('notifier.avatar', 'notifierAvatar') - .leftJoinAndSelect('notifier.banner', 'notifierBanner') - .leftJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - // muted users - query.andWhere(new Brackets(qb => { qb - .where(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`) - .orWhere('notification.notifierId IS NULL'); - })); - query.setParameters(mutingQuery.getParameters()); - - // muted instances - query.andWhere(new Brackets(qb => { qb - .andWhere('notifier.host IS NULL') - .orWhere(`NOT (( ${mutingInstanceQuery.getQuery()} )::jsonb ? notifier.host)`); - })); - query.setParameters(mutingInstanceQuery.getParameters()); - - // suspended users - query.andWhere(new Brackets(qb => { qb - .where(`notification.notifierId NOT IN (${ suspendedQuery.getQuery() })`) - .orWhere('notification.notifierId IS NULL'); - })); - - if (ps.following) { - query.andWhere(`((notification.notifierId IN (${ followingQuery.getQuery() })) OR (notification.notifierId = :meId))`, { meId: user.id }); - query.setParameters(followingQuery.getParameters()); - } - - if (ps.includeTypes && ps.includeTypes.length > 0) { - query.andWhere('notification.type IN (:...includeTypes)', { includeTypes: ps.includeTypes }); - } else if (ps.excludeTypes && ps.excludeTypes.length > 0) { - query.andWhere('notification.type NOT IN (:...excludeTypes)', { excludeTypes: ps.excludeTypes }); - } - - if (ps.unreadOnly) { - query.andWhere('notification.isRead = false'); - } - - const notifications = await query.take(ps.limit).getMany(); - - // Mark all as read - if (notifications.length > 0 && ps.markAsRead) { - readNotification(user.id, notifications.map(x => x.id)); - } - - const notes = notifications.filter(notification => ['mention', 'reply', 'quote'].includes(notification.type)).map(notification => notification.note!); - - if (notes.length > 0) { - read(user.id, notes); - } - - return await Notifications.packMany(notifications, user.id); -}); diff --git a/packages/backend/src/server/api/endpoints/i/page-likes.ts b/packages/backend/src/server/api/endpoints/i/page-likes.ts deleted file mode 100644 index 71e326e2f..000000000 --- a/packages/backend/src/server/api/endpoints/i/page-likes.ts +++ /dev/null @@ -1,54 +0,0 @@ -import define from '../../define.js'; -import { PageLikes } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'pages'], - - requireCredential: true, - - kind: 'read:page-likes', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - page: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - }, - } - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(PageLikes.createQueryBuilder('like'), ps.sinceId, ps.untilId) - .andWhere(`like.userId = :meId`, { meId: user.id }) - .leftJoinAndSelect('like.page', 'page'); - - const likes = await query - .take(ps.limit) - .getMany(); - - return PageLikes.packMany(likes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/i/pages.ts b/packages/backend/src/server/api/endpoints/i/pages.ts deleted file mode 100644 index f28aed3fd..000000000 --- a/packages/backend/src/server/api/endpoints/i/pages.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../define.js'; -import { Pages } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'pages'], - - requireCredential: true, - - kind: 'read:pages', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Pages.createQueryBuilder('page'), ps.sinceId, ps.untilId) - .andWhere(`page.userId = :meId`, { meId: user.id }); - - const pages = await query - .take(ps.limit) - .getMany(); - - return await Pages.packMany(pages); -}); diff --git a/packages/backend/src/server/api/endpoints/i/pin.ts b/packages/backend/src/server/api/endpoints/i/pin.ts deleted file mode 100644 index 67b7026be..000000000 --- a/packages/backend/src/server/api/endpoints/i/pin.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { addPinned } from '@/services/i/pin.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Users } from '@/models/index.js'; - -export const meta = { - tags: ['account', 'notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '56734f8b-3928-431e-bf80-6ff87df40cb3', - }, - - pinLimitExceeded: { - message: 'You can not pin notes any more.', - code: 'PIN_LIMIT_EXCEEDED', - id: '72dab508-c64d-498f-8740-a8eec1ba385a', - }, - - alreadyPinned: { - message: 'That note has already been pinned.', - code: 'ALREADY_PINNED', - id: '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'MeDetailed', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - await addPinned(user, ps.noteId).catch(e => { - if (e.id === '70c4e51f-5bea-449c-a030-53bee3cce202') throw new ApiError(meta.errors.noSuchNote); - if (e.id === '15a018eb-58e5-4da1-93be-330fcc5e4e1a') throw new ApiError(meta.errors.pinLimitExceeded); - if (e.id === '23f0cf4e-59a3-4276-a91d-61a5891c1514') throw new ApiError(meta.errors.alreadyPinned); - throw e; - }); - - return await Users.pack(user.id, user, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/read-all-messaging-messages.ts b/packages/backend/src/server/api/endpoints/i/read-all-messaging-messages.ts deleted file mode 100644 index 7ff6409ca..000000000 --- a/packages/backend/src/server/api/endpoints/i/read-all-messaging-messages.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import define from '../../define.js'; -import { MessagingMessages, UserGroupJoinings } from '@/models/index.js'; - -export const meta = { - tags: ['account', 'messaging'], - - requireCredential: true, - - kind: 'write:account', -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Update documents - await MessagingMessages.update({ - recipientId: user.id, - isRead: false, - }, { - isRead: true, - }); - - const joinings = await UserGroupJoinings.findBy({ userId: user.id }); - - await Promise.all(joinings.map(j => MessagingMessages.createQueryBuilder().update() - .set({ - reads: (() => `array_append("reads", '${user.id}')`) as any, - }) - .where(`groupId = :groupId`, { groupId: j.userGroupId }) - .andWhere('userId != :userId', { userId: user.id }) - .andWhere('NOT (:userId = ANY(reads))', { userId: user.id }) - .execute())); - - publishMainStream(user.id, 'readAllMessagingMessages'); -}); diff --git a/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts b/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts deleted file mode 100644 index 49f3deb33..000000000 --- a/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import define from '../../define.js'; -import { NoteUnreads } from '@/models/index.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'write:account', -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Remove documents - await NoteUnreads.delete({ - userId: user.id, - }); - - // 全て既読になったイベントを発行 - publishMainStream(user.id, 'readAllUnreadMentions'); - publishMainStream(user.id, 'readAllUnreadSpecifiedNotes'); -}); diff --git a/packages/backend/src/server/api/endpoints/i/read-announcement.ts b/packages/backend/src/server/api/endpoints/i/read-announcement.ts deleted file mode 100644 index 45b6e98c8..000000000 --- a/packages/backend/src/server/api/endpoints/i/read-announcement.ts +++ /dev/null @@ -1,61 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { genId } from '@/misc/gen-id.js'; -import { AnnouncementReads, Announcements, Users } from '@/models/index.js'; -import { publishMainStream } from '@/services/stream.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchAnnouncement: { - message: 'No such announcement.', - code: 'NO_SUCH_ANNOUNCEMENT', - id: '184663db-df88-4bc2-8b52-fb85f0681939', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - announcementId: { type: 'string', format: 'misskey:id' }, - }, - required: ['announcementId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Check if announcement exists - const announcement = await Announcements.findOneBy({ id: ps.announcementId }); - - if (announcement == null) { - throw new ApiError(meta.errors.noSuchAnnouncement); - } - - // Check if already read - const read = await AnnouncementReads.findOneBy({ - announcementId: ps.announcementId, - userId: user.id, - }); - - if (read != null) { - return; - } - - // Create read - await AnnouncementReads.insert({ - id: genId(), - createdAt: new Date(), - announcementId: ps.announcementId, - userId: user.id, - }); - - if (!await Users.getHasUnreadAnnouncement(user.id)) { - publishMainStream(user.id, 'readAllAnnouncements'); - } -}); diff --git a/packages/backend/src/server/api/endpoints/i/regenerate-token.ts b/packages/backend/src/server/api/endpoints/i/regenerate-token.ts deleted file mode 100644 index af929b04e..000000000 --- a/packages/backend/src/server/api/endpoints/i/regenerate-token.ts +++ /dev/null @@ -1,49 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { publishInternalEvent, publishMainStream, publishUserEvent } from '@/services/stream.js'; -import generateUserToken from '../../common/generate-native-user-token.js'; -import define from '../../define.js'; -import { Users, UserProfiles } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const freshUser = await Users.findOneByOrFail({ id: user.id }); - const oldToken = freshUser.token; - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - const newToken = generateUserToken(); - - await Users.update(user.id, { - token: newToken, - }); - - // Publish event - publishInternalEvent('userTokenRegenerated', { id: user.id, oldToken, newToken }); - publishMainStream(user.id, 'myTokenRegenerated'); - - // Terminate streaming - setTimeout(() => { - publishUserEvent(user.id, 'terminate', {}); - }, 5000); -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts deleted file mode 100644 index d0b16dbc4..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts +++ /dev/null @@ -1,36 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const items = await query.getMany(); - - const res = {} as Record; - - for (const item of items) { - res[item.key] = item.value; - } - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts deleted file mode 100644 index cc5d5a8c6..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts +++ /dev/null @@ -1,48 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - requireCredential: true, - - secure: true, - - errors: { - noSuchKey: { - message: 'No such key.', - code: 'NO_SUCH_KEY', - id: '97a1e8e7-c0f7-47d2-957a-92e61256e01a', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - key: { type: 'string' }, - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: ['key'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.key = :key', { key: ps.key }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const item = await query.getOne(); - - if (item == null) { - throw new ApiError(meta.errors.noSuchKey); - } - - return { - updatedAt: item.updatedAt, - value: item.value, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/get.ts b/packages/backend/src/server/api/endpoints/i/registry/get.ts deleted file mode 100644 index a79319744..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/get.ts +++ /dev/null @@ -1,45 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - requireCredential: true, - - secure: true, - - errors: { - noSuchKey: { - message: 'No such key.', - code: 'NO_SUCH_KEY', - id: 'ac3ed68a-62f0-422b-a7bc-d5e09e8f6a6a', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - key: { type: 'string' }, - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: ['key'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.key = :key', { key: ps.key }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const item = await query.getOne(); - - if (item == null) { - throw new ApiError(meta.errors.noSuchKey); - } - - return item.value; -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts deleted file mode 100644 index ac209c06a..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const items = await query.getMany(); - - const res = {} as Record; - - for (const item of items) { - const type = typeof item.value; - res[item.key] = - item.value === null ? 'null' : - Array.isArray(item.value) ? 'array' : - type === 'number' ? 'number' : - type === 'string' ? 'string' : - type === 'boolean' ? 'boolean' : - type === 'object' ? 'object' : - null as never; - } - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/keys.ts b/packages/backend/src/server/api/endpoints/i/registry/keys.ts deleted file mode 100644 index 5ea1a9d34..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/keys.ts +++ /dev/null @@ -1,31 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .select('item.key') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const items = await query.getMany(); - - return items.map(x => x.key); -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/remove.ts b/packages/backend/src/server/api/endpoints/i/registry/remove.ts deleted file mode 100644 index 92473654c..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/remove.ts +++ /dev/null @@ -1,45 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - requireCredential: true, - - secure: true, - - errors: { - noSuchKey: { - message: 'No such key.', - code: 'NO_SUCH_KEY', - id: '1fac4e8a-a6cd-4e39-a4a5-3a7e11f1b019', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - key: { type: 'string' }, - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: ['key'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.key = :key', { key: ps.key }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const item = await query.getOne(); - - if (item == null) { - throw new ApiError(meta.errors.noSuchKey); - } - - await RegistryItems.remove(item); -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/scopes.ts b/packages/backend/src/server/api/endpoints/i/registry/scopes.ts deleted file mode 100644 index de4b313e2..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/scopes.ts +++ /dev/null @@ -1,33 +0,0 @@ -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .select('item.scope') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }); - - const items = await query.getMany(); - - const res = [] as string[][]; - - for (const item of items) { - if (res.some(scope => scope.join('.') === item.scope.join('.'))) continue; - res.push(item.scope); - } - - return res; -}); diff --git a/packages/backend/src/server/api/endpoints/i/registry/set.ts b/packages/backend/src/server/api/endpoints/i/registry/set.ts deleted file mode 100644 index d380b428a..000000000 --- a/packages/backend/src/server/api/endpoints/i/registry/set.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import define from '../../../define.js'; -import { RegistryItems } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - key: { type: 'string', minLength: 1 }, - value: {}, - scope: { type: 'array', default: [], items: { - type: 'string', pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1), - } }, - }, - required: ['key', 'value'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = RegistryItems.createQueryBuilder('item') - .where('item.domain IS NULL') - .andWhere('item.userId = :userId', { userId: user.id }) - .andWhere('item.key = :key', { key: ps.key }) - .andWhere('item.scope = :scope', { scope: ps.scope }); - - const existingItem = await query.getOne(); - - if (existingItem) { - await RegistryItems.update(existingItem.id, { - updatedAt: new Date(), - value: ps.value, - }); - } else { - await RegistryItems.insert({ - id: genId(), - createdAt: new Date(), - updatedAt: new Date(), - userId: user.id, - domain: null, - scope: ps.scope, - key: ps.key, - value: ps.value, - }); - } - - // TODO: サードパーティアプリが傍受出来てしまうのでどうにかする - publishMainStream(user.id, 'registryUpdated', { - scope: ps.scope, - key: ps.key, - value: ps.value, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/revoke-token.ts b/packages/backend/src/server/api/endpoints/i/revoke-token.ts deleted file mode 100644 index c69245379..000000000 --- a/packages/backend/src/server/api/endpoints/i/revoke-token.ts +++ /dev/null @@ -1,32 +0,0 @@ -import define from '../../define.js'; -import { AccessTokens } from '@/models/index.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - tokenId: { type: 'string', format: 'misskey:id' }, - }, - required: ['tokenId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const token = await AccessTokens.findOneBy({ id: ps.tokenId }); - - if (token) { - await AccessTokens.delete({ - id: ps.tokenId, - userId: user.id, - }); - - // Terminate streaming - publishUserEvent(user.id, 'terminate'); - } -}); diff --git a/packages/backend/src/server/api/endpoints/i/signin-history.ts b/packages/backend/src/server/api/endpoints/i/signin-history.ts deleted file mode 100644 index ca3741166..000000000 --- a/packages/backend/src/server/api/endpoints/i/signin-history.ts +++ /dev/null @@ -1,29 +0,0 @@ -import define from '../../define.js'; -import { Signins } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - requireCredential: true, - - secure: true, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Signins.createQueryBuilder('signin'), ps.sinceId, ps.untilId) - .andWhere(`signin.userId = :meId`, { meId: user.id }); - - const history = await query.take(ps.limit).getMany(); - - return await Promise.all(history.map(record => Signins.pack(record))); -}); diff --git a/packages/backend/src/server/api/endpoints/i/unpin.ts b/packages/backend/src/server/api/endpoints/i/unpin.ts deleted file mode 100644 index 9912689da..000000000 --- a/packages/backend/src/server/api/endpoints/i/unpin.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { removePinned } from '@/services/i/pin.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { Users } from '@/models/index.js'; - -export const meta = { - tags: ['account', 'notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '454170ce-9d63-4a43-9da1-ea10afe81e21', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'MeDetailed', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - await removePinned(user, ps.noteId).catch(e => { - if (e.id === 'b302d4cf-c050-400a-bbb3-be208681f40c') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - return await Users.pack(user.id, user, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/i/update-email.ts b/packages/backend/src/server/api/endpoints/i/update-email.ts deleted file mode 100644 index 331807852..000000000 --- a/packages/backend/src/server/api/endpoints/i/update-email.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import define from '../../define.js'; -import rndstr from 'rndstr'; -import config from '@/config/index.js'; -import ms from 'ms'; -import bcrypt from 'bcryptjs'; -import { Users, UserProfiles } from '@/models/index.js'; -import { sendEmail } from '@/services/send-email.js'; -import { ApiError } from '../../error.js'; -import { validateEmailForAccount } from '@/services/validate-email-for-account.js'; - -export const meta = { - requireCredential: true, - - secure: true, - - limit: { - duration: ms('1hour'), - max: 3, - }, - - errors: { - incorrectPassword: { - message: 'Incorrect password.', - code: 'INCORRECT_PASSWORD', - id: 'e54c1d7e-e7d6-4103-86b6-0a95069b4ad3', - }, - - unavailable: { - message: 'Unavailable email address.', - code: 'UNAVAILABLE', - id: 'a2defefb-f220-8849-0af6-17f816099323', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - password: { type: 'string' }, - email: { type: 'string', nullable: true }, - }, - required: ['password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new ApiError(meta.errors.incorrectPassword); - } - - if (ps.email != null) { - const available = await validateEmailForAccount(ps.email); - if (!available) { - throw new ApiError(meta.errors.unavailable); - } - } - - await UserProfiles.update(user.id, { - email: ps.email, - emailVerified: false, - emailVerifyCode: null, - }); - - const iObj = await Users.pack(user.id, user, { - detail: true, - includeSecrets: true, - }); - - // Publish meUpdated event - publishMainStream(user.id, 'meUpdated', iObj); - - if (ps.email != null) { - const code = rndstr('a-z0-9', 16); - - await UserProfiles.update(user.id, { - emailVerifyCode: code, - }); - - const link = `${config.url}/verify-email/${code}`; - - sendEmail(ps.email, 'Email verification', - `To verify email, please click this link:
${link}`, - `To verify email, please click this link: ${link}`); - } - - return iObj; -}); diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts deleted file mode 100644 index 3c2f1cea0..000000000 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ /dev/null @@ -1,255 +0,0 @@ -import RE2 from 're2'; -import * as mfm from 'mfm-js'; -import { publishMainStream, publishUserEvent } from '@/services/stream.js'; -import acceptAllFollowRequests from '@/services/following/requests/accept-all.js'; -import { publishToFollowers } from '@/services/i/update.js'; -import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm.js'; -import { extractHashtags } from '@/misc/extract-hashtags.js'; -import { updateUsertags } from '@/services/update-hashtag.js'; -import { Users, DriveFiles, UserProfiles, Pages } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { notificationTypes } from '@/types.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; -import { langmap } from '@/misc/langmap.js'; -import { ApiError } from '../../error.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchAvatar: { - message: 'No such avatar file.', - code: 'NO_SUCH_AVATAR', - id: '539f3a45-f215-4f81-a9a8-31293640207f', - }, - - noSuchBanner: { - message: 'No such banner file.', - code: 'NO_SUCH_BANNER', - id: '0d8f5629-f210-41c2-9433-735831a58595', - }, - - avatarNotAnImage: { - message: 'The file specified as an avatar is not an image.', - code: 'AVATAR_NOT_AN_IMAGE', - id: 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191', - }, - - bannerNotAnImage: { - message: 'The file specified as a banner is not an image.', - code: 'BANNER_NOT_AN_IMAGE', - id: '75aedb19-2afd-4e6d-87fc-67941256fa60', - }, - - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: '8e01b590-7eb9-431b-a239-860e086c408e', - }, - - invalidRegexp: { - message: 'Invalid Regular Expression.', - code: 'INVALID_REGEXP', - id: '0d786918-10df-41cd-8f33-8dec7d9a89a5', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'MeDetailed', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { ...Users.nameSchema, nullable: true }, - description: { ...Users.descriptionSchema, nullable: true }, - location: { ...Users.locationSchema, nullable: true }, - birthday: { ...Users.birthdaySchema, nullable: true }, - lang: { type: 'string', enum: [null, ...Object.keys(langmap)], nullable: true }, - avatarId: { type: 'string', format: 'misskey:id', nullable: true }, - bannerId: { type: 'string', format: 'misskey:id', nullable: true }, - fields: { - type: 'array', - minItems: 0, - maxItems: 16, - items: { - type: 'object', - properties: { - name: { type: 'string' }, - value: { type: 'string' }, - }, - required: ['name', 'value'], - }, - }, - isLocked: { type: 'boolean' }, - isExplorable: { type: 'boolean' }, - hideOnlineStatus: { type: 'boolean' }, - publicReactions: { type: 'boolean' }, - carefulBot: { type: 'boolean' }, - autoAcceptFollowed: { type: 'boolean' }, - noCrawle: { type: 'boolean' }, - isBot: { type: 'boolean' }, - isCat: { type: 'boolean' }, - showTimelineReplies: { type: 'boolean' }, - injectFeaturedNote: { type: 'boolean' }, - receiveAnnouncementEmail: { type: 'boolean' }, - alwaysMarkNsfw: { type: 'boolean' }, - autoSensitive: { type: 'boolean' }, - ffVisibility: { type: 'string', enum: ['public', 'followers', 'private'] }, - pinnedPageId: { type: 'array', items: { - type: 'string', format: 'misskey:id', - } }, - mutedWords: { type: 'array' }, - mutedInstances: { type: 'array', items: { - type: 'string', - } }, - mutingNotificationTypes: { type: 'array', items: { - type: 'string', enum: notificationTypes, - } }, - emailNotificationTypes: { type: 'array', items: { - type: 'string', - } }, - }, -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, _user, token) => { - const user = await Users.findOneByOrFail({ id: _user.id }); - const isSecure = token == null; - - const updates = {} as Partial; - const profileUpdates = {} as Partial; - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (ps.name !== undefined) updates.name = ps.name; - if (ps.description !== undefined) profileUpdates.description = ps.description; - if (ps.lang !== undefined) profileUpdates.lang = ps.lang; - if (ps.location !== undefined) profileUpdates.location = ps.location; - if (ps.birthday !== undefined) profileUpdates.birthday = ps.birthday; - if (ps.ffVisibility !== undefined) profileUpdates.ffVisibility = ps.ffVisibility; - if (ps.avatarId !== undefined) updates.avatarId = ps.avatarId; - if (ps.bannerId !== undefined) updates.bannerId = ps.bannerId; - if (ps.mutedWords !== undefined) { - // validate regular expression syntax - ps.mutedWords.filter(x => !Array.isArray(x)).forEach(x => { - const regexp = x.match(/^\/(.+)\/(.*)$/); - if (!regexp) throw new ApiError(meta.errors.invalidRegexp); - - try { - new RE2(regexp[1], regexp[2]); - } catch (err) { - throw new ApiError(meta.errors.invalidRegexp); - } - }); - - profileUpdates.mutedWords = ps.mutedWords; - profileUpdates.enableWordMute = ps.mutedWords.length > 0; - } - if (ps.mutedInstances !== undefined) profileUpdates.mutedInstances = ps.mutedInstances; - if (ps.mutingNotificationTypes !== undefined) profileUpdates.mutingNotificationTypes = ps.mutingNotificationTypes as typeof notificationTypes[number][]; - if (typeof ps.isLocked === 'boolean') updates.isLocked = ps.isLocked; - if (typeof ps.isExplorable === 'boolean') updates.isExplorable = ps.isExplorable; - if (typeof ps.hideOnlineStatus === 'boolean') updates.hideOnlineStatus = ps.hideOnlineStatus; - if (typeof ps.publicReactions === 'boolean') profileUpdates.publicReactions = ps.publicReactions; - if (typeof ps.isBot === 'boolean') updates.isBot = ps.isBot; - if (typeof ps.showTimelineReplies === 'boolean') updates.showTimelineReplies = ps.showTimelineReplies; - if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot; - if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed; - if (typeof ps.noCrawle === 'boolean') profileUpdates.noCrawle = ps.noCrawle; - if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat; - if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote; - if (typeof ps.receiveAnnouncementEmail === 'boolean') profileUpdates.receiveAnnouncementEmail = ps.receiveAnnouncementEmail; - if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw; - if (typeof ps.autoSensitive === 'boolean') profileUpdates.autoSensitive = ps.autoSensitive; - if (ps.emailNotificationTypes !== undefined) profileUpdates.emailNotificationTypes = ps.emailNotificationTypes; - - if (ps.avatarId) { - const avatar = await DriveFiles.findOneBy({ id: ps.avatarId }); - - if (avatar == null || avatar.userId !== user.id) throw new ApiError(meta.errors.noSuchAvatar); - if (!avatar.type.startsWith('image/')) throw new ApiError(meta.errors.avatarNotAnImage); - } - - if (ps.bannerId) { - const banner = await DriveFiles.findOneBy({ id: ps.bannerId }); - - if (banner == null || banner.userId !== user.id) throw new ApiError(meta.errors.noSuchBanner); - if (!banner.type.startsWith('image/')) throw new ApiError(meta.errors.bannerNotAnImage); - } - - if (ps.pinnedPageId) { - const page = await Pages.findOneBy({ id: ps.pinnedPageId }); - - if (page == null || page.userId !== user.id) throw new ApiError(meta.errors.noSuchPage); - - profileUpdates.pinnedPageId = page.id; - } else if (ps.pinnedPageId === null) { - profileUpdates.pinnedPageId = null; - } - - if (ps.fields) { - profileUpdates.fields = ps.fields - .filter(x => typeof x.name === 'string' && x.name !== '' && typeof x.value === 'string' && x.value !== '') - .map(x => { - return { name: x.name, value: x.value }; - }); - } - - //#region emojis/tags - - let emojis = [] as string[]; - let tags = [] as string[]; - - const newName = updates.name === undefined ? user.name : updates.name; - const newDescription = profileUpdates.description === undefined ? profile.description : profileUpdates.description; - - if (newName != null) { - const tokens = mfm.parseSimple(newName); - emojis = emojis.concat(extractCustomEmojisFromMfm(tokens!)); - } - - if (newDescription != null) { - const tokens = mfm.parse(newDescription); - emojis = emojis.concat(extractCustomEmojisFromMfm(tokens!)); - tags = extractHashtags(tokens!).map(tag => normalizeForSearch(tag)).splice(0, 32); - } - - updates.emojis = emojis; - updates.tags = tags; - - // ハッシュタグ更新 - updateUsertags(user, tags); - //#endregion - - if (Object.keys(updates).length > 0) await Users.update(user.id, updates); - if (Object.keys(profileUpdates).length > 0) await UserProfiles.update(user.id, profileUpdates); - - const iObj = await Users.pack(user.id, user, { - detail: true, - includeSecrets: isSecure, - }); - - // Publish meUpdated event - publishMainStream(user.id, 'meUpdated', iObj); - publishUserEvent(user.id, 'updateUserProfile', await UserProfiles.findOneBy({ userId: user.id })); - - // 鍵垢を解除したとき、溜まっていたフォローリクエストがあるならすべて承認 - if (user.isLocked && ps.isLocked === false) { - acceptAllFollowRequests(user); - } - - // フォロワーにUpdateを配信 - publishToFollowers(user.id); - - return iObj; -}); diff --git a/packages/backend/src/server/api/endpoints/i/user-group-invites.ts b/packages/backend/src/server/api/endpoints/i/user-group-invites.ts deleted file mode 100644 index 1d7e4a16b..000000000 --- a/packages/backend/src/server/api/endpoints/i/user-group-invites.ts +++ /dev/null @@ -1,55 +0,0 @@ -import define from '../../define.js'; -import { UserGroupInvitations } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['account', 'groups'], - - requireCredential: true, - - kind: 'read:user-groups', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - group: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(UserGroupInvitations.createQueryBuilder('invitation'), ps.sinceId, ps.untilId) - .andWhere(`invitation.userId = :meId`, { meId: user.id }) - .leftJoinAndSelect('invitation.userGroup', 'user_group'); - - const invitations = await query - .take(ps.limit) - .getMany(); - - return await UserGroupInvitations.packMany(invitations); -}); diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts deleted file mode 100644 index 2e2fd00b8..000000000 --- a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../../define.js'; -import { genId } from '@/misc/gen-id.js'; -import { Webhooks } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; -import { webhookEventTypes } from '@/models/entities/webhook.js'; - -export const meta = { - tags: ['webhooks'], - - requireCredential: true, - - kind: 'write:account', -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - url: { type: 'string', minLength: 1, maxLength: 1024 }, - secret: { type: 'string', minLength: 1, maxLength: 1024 }, - on: { type: 'array', items: { - type: 'string', enum: webhookEventTypes, - } }, - }, - required: ['name', 'url', 'secret', 'on'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const webhook = await Webhooks.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - url: ps.url, - secret: ps.secret, - on: ps.on, - }).then(x => Webhooks.findOneByOrFail(x.identifiers[0])); - - publishInternalEvent('webhookCreated', webhook); - - return webhook; -}); diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts b/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts deleted file mode 100644 index 2821eaa5f..000000000 --- a/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { Webhooks } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['webhooks'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchWebhook: { - message: 'No such webhook.', - code: 'NO_SUCH_WEBHOOK', - id: 'bae73e5a-5522-4965-ae19-3a8688e71d82', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - webhookId: { type: 'string', format: 'misskey:id' }, - }, - required: ['webhookId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const webhook = await Webhooks.findOneBy({ - id: ps.webhookId, - userId: user.id, - }); - - if (webhook == null) { - throw new ApiError(meta.errors.noSuchWebhook); - } - - await Webhooks.delete(webhook.id); - - publishInternalEvent('webhookDeleted', webhook); -}); diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts b/packages/backend/src/server/api/endpoints/i/webhooks/list.ts deleted file mode 100644 index 54e456373..000000000 --- a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts +++ /dev/null @@ -1,25 +0,0 @@ -import define from '../../../define.js'; -import { Webhooks } from '@/models/index.js'; - -export const meta = { - tags: ['webhooks', 'account'], - - requireCredential: true, - - kind: 'read:account', -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const webhooks = await Webhooks.findBy({ - userId: me.id, - }); - - return webhooks; -}); diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts b/packages/backend/src/server/api/endpoints/i/webhooks/show.ts deleted file mode 100644 index 02fa1edb5..000000000 --- a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts +++ /dev/null @@ -1,41 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { Webhooks } from '@/models/index.js'; - -export const meta = { - tags: ['webhooks'], - - requireCredential: true, - - kind: 'read:account', - - errors: { - noSuchWebhook: { - message: 'No such webhook.', - code: 'NO_SUCH_WEBHOOK', - id: '50f614d9-3047-4f7e-90d8-ad6b2d5fb098', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - webhookId: { type: 'string', format: 'misskey:id' }, - }, - required: ['webhookId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const webhook = await Webhooks.findOneBy({ - id: ps.webhookId, - userId: user.id, - }); - - if (webhook == null) { - throw new ApiError(meta.errors.noSuchWebhook); - } - - return webhook; -}); diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts deleted file mode 100644 index f87b9753f..000000000 --- a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts +++ /dev/null @@ -1,59 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { Webhooks } from '@/models/index.js'; -import { publishInternalEvent } from '@/services/stream.js'; -import { webhookEventTypes } from '@/models/entities/webhook.js'; - -export const meta = { - tags: ['webhooks'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchWebhook: { - message: 'No such webhook.', - code: 'NO_SUCH_WEBHOOK', - id: 'fb0fea69-da18-45b1-828d-bd4fd1612518', - }, - }, - -} as const; - -export const paramDef = { - type: 'object', - properties: { - webhookId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 100 }, - url: { type: 'string', minLength: 1, maxLength: 1024 }, - secret: { type: 'string', minLength: 1, maxLength: 1024 }, - on: { type: 'array', items: { - type: 'string', enum: webhookEventTypes, - } }, - active: { type: 'boolean' }, - }, - required: ['webhookId', 'name', 'url', 'secret', 'on', 'active'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const webhook = await Webhooks.findOneBy({ - id: ps.webhookId, - userId: user.id, - }); - - if (webhook == null) { - throw new ApiError(meta.errors.noSuchWebhook); - } - - await Webhooks.update(webhook.id, { - name: ps.name, - url: ps.url, - secret: ps.secret, - on: ps.on, - active: ps.active, - }); - - publishInternalEvent('webhookUpdated', webhook); -}); diff --git a/packages/backend/src/server/api/endpoints/messaging/history.ts b/packages/backend/src/server/api/endpoints/messaging/history.ts deleted file mode 100644 index ea0600d0e..000000000 --- a/packages/backend/src/server/api/endpoints/messaging/history.ts +++ /dev/null @@ -1,91 +0,0 @@ -import define from '../../define.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { MessagingMessages, Mutings, UserGroupJoinings } from '@/models/index.js'; -import { Brackets } from 'typeorm'; - -export const meta = { - tags: ['messaging'], - - requireCredential: true, - - kind: 'read:messaging', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'MessagingMessage', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - group: { type: 'boolean', default: false }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const mute = await Mutings.findBy({ - muterId: user.id, - }); - - const groups = ps.group ? await UserGroupJoinings.findBy({ - userId: user.id, - }).then(xs => xs.map(x => x.userGroupId)) : []; - - if (ps.group && groups.length === 0) { - return []; - } - - const history: MessagingMessage[] = []; - - for (let i = 0; i < ps.limit; i++) { - const found = ps.group - ? history.map(m => m.groupId!) - : history.map(m => (m.userId === user.id) ? m.recipientId! : m.userId!); - - const query = MessagingMessages.createQueryBuilder('message') - .orderBy('message.createdAt', 'DESC'); - - if (ps.group) { - query.where(`message.groupId IN (:...groups)`, { groups: groups }); - - if (found.length > 0) { - query.andWhere(`message.groupId NOT IN (:...found)`, { found: found }); - } - } else { - query.where(new Brackets(qb => { qb - .where(`message.userId = :userId`, { userId: user.id }) - .orWhere(`message.recipientId = :userId`, { userId: user.id }); - })); - query.andWhere(`message.groupId IS NULL`); - - if (found.length > 0) { - query.andWhere(`message.userId NOT IN (:...found)`, { found: found }); - query.andWhere(`message.recipientId NOT IN (:...found)`, { found: found }); - } - - if (mute.length > 0) { - query.andWhere(`message.userId NOT IN (:...mute)`, { mute: mute.map(m => m.muteeId) }); - query.andWhere(`message.recipientId NOT IN (:...mute)`, { mute: mute.map(m => m.muteeId) }); - } - } - - const message = await query.getOne(); - - if (message) { - history.push(message); - } else { - break; - } - } - - return await Promise.all(history.map(h => MessagingMessages.pack(h.id, user))); -}); diff --git a/packages/backend/src/server/api/endpoints/messaging/messages.ts b/packages/backend/src/server/api/endpoints/messaging/messages.ts deleted file mode 100644 index dbf1f6c86..000000000 --- a/packages/backend/src/server/api/endpoints/messaging/messages.ts +++ /dev/null @@ -1,141 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { MessagingMessages, UserGroups, UserGroupJoinings, Users } from '@/models/index.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { Brackets } from 'typeorm'; -import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message.js'; - -export const meta = { - tags: ['messaging'], - - requireCredential: true, - - kind: 'read:messaging', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'MessagingMessage', - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '11795c64-40ea-4198-b06e-3c873ed9039d', - }, - - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: 'c4d9f88c-9270-4632-b032-6ed8cee36f7f', - }, - - groupAccessDenied: { - message: 'You can not read messages of groups that you have not joined.', - code: 'GROUP_ACCESS_DENIED', - id: 'a053a8dd-a491-4718-8f87-50775aad9284', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - markAsRead: { type: 'boolean', default: true }, - }, - anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - if (ps.userId != null) { - // Fetch recipient (user) - const recipient = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - const query = makePaginationQuery(MessagingMessages.createQueryBuilder('message'), ps.sinceId, ps.untilId) - .andWhere(new Brackets(qb => { qb - .where(new Brackets(qb => { qb - .where('message.userId = :meId') - .andWhere('message.recipientId = :recipientId'); - })) - .orWhere(new Brackets(qb => { qb - .where('message.userId = :recipientId') - .andWhere('message.recipientId = :meId'); - })); - })) - .setParameter('meId', user.id) - .setParameter('recipientId', recipient.id); - - const messages = await query.take(ps.limit).getMany(); - - // Mark all as read - if (ps.markAsRead) { - readUserMessagingMessage(user.id, recipient.id, messages.filter(m => m.recipientId === user.id).map(x => x.id)); - - // リモートユーザーとのメッセージだったら既読配信 - if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) { - deliverReadActivity(user, recipient, messages); - } - } - - return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, { - populateRecipient: false, - }))); - } else if (ps.groupId != null) { - // Fetch recipient (group) - const recipientGroup = await UserGroups.findOneBy({ id: ps.groupId }); - - if (recipientGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - // check joined - const joining = await UserGroupJoinings.findOneBy({ - userId: user.id, - userGroupId: recipientGroup.id, - }); - - if (joining == null) { - throw new ApiError(meta.errors.groupAccessDenied); - } - - const query = makePaginationQuery(MessagingMessages.createQueryBuilder('message'), ps.sinceId, ps.untilId) - .andWhere(`message.groupId = :groupId`, { groupId: recipientGroup.id }); - - const messages = await query.take(ps.limit).getMany(); - - // Mark all as read - if (ps.markAsRead) { - readGroupMessagingMessage(user.id, recipientGroup.id, messages.map(x => x.id)); - } - - return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, { - populateGroup: false, - }))); - } -}); diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts deleted file mode 100644 index 405af5ec1..000000000 --- a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts +++ /dev/null @@ -1,151 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; -import { MessagingMessages, DriveFiles, UserGroups, UserGroupJoinings, Blockings } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { createMessage } from '@/services/messages/create.js'; - -export const meta = { - tags: ['messaging'], - - requireCredential: true, - - kind: 'write:messaging', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'MessagingMessage', - }, - - errors: { - recipientIsYourself: { - message: 'You can not send a message to yourself.', - code: 'RECIPIENT_IS_YOURSELF', - id: '17e2ba79-e22a-4cbc-bf91-d327643f4a7e', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '11795c64-40ea-4198-b06e-3c873ed9039d', - }, - - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: 'c94e2a5d-06aa-4914-8fa6-6a42e73d6537', - }, - - groupAccessDenied: { - message: 'You can not send messages to groups that you have not joined.', - code: 'GROUP_ACCESS_DENIED', - id: 'd96b3cca-5ad1-438b-ad8b-02f931308fbd', - }, - - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: '4372b8e2-185d-4146-8749-2f68864a3e5f', - }, - - contentRequired: { - message: 'Content required. You need to set text or fileId.', - code: 'CONTENT_REQUIRED', - id: '25587321-b0e6-449c-9239-f8925092942c', - }, - - youHaveBeenBlocked: { - message: 'You cannot send a message because you have been blocked by this user.', - code: 'YOU_HAVE_BEEN_BLOCKED', - id: 'c15a5199-7422-4968-941a-2a462c478f7d', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - text: { type: 'string', nullable: true, maxLength: 3000 }, - fileId: { type: 'string', format: 'misskey:id' }, - }, - anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let recipientUser: User | null; - let recipientGroup: UserGroup | null; - - if (ps.userId != null) { - // Myself - if (ps.userId === user.id) { - throw new ApiError(meta.errors.recipientIsYourself); - } - - // Fetch recipient (user) - recipientUser = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check blocking - const block = await Blockings.findOneBy({ - blockerId: recipientUser.id, - blockeeId: user.id, - }); - if (block) { - throw new ApiError(meta.errors.youHaveBeenBlocked); - } - } else if (ps.groupId != null) { - // Fetch recipient (group) - recipientGroup = await UserGroups.findOneBy({ id: ps.groupId! }); - - if (recipientGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - // check joined - const joining = await UserGroupJoinings.findOneBy({ - userId: user.id, - userGroupId: recipientGroup.id, - }); - - if (joining == null) { - throw new ApiError(meta.errors.groupAccessDenied); - } - } - - let file = null; - if (ps.fileId != null) { - file = await DriveFiles.findOneBy({ - id: ps.fileId, - userId: user.id, - }); - - if (file == null) { - throw new ApiError(meta.errors.noSuchFile); - } - } - - // テキストが無いかつ添付ファイルも無かったらエラー - if (ps.text == null && file == null) { - throw new ApiError(meta.errors.contentRequired); - } - - return await createMessage(user, recipientUser, recipientGroup, ps.text, file); -}); diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts b/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts deleted file mode 100644 index f66d75873..000000000 --- a/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts +++ /dev/null @@ -1,49 +0,0 @@ -import define from '../../../define.js'; -import ms from 'ms'; -import { ApiError } from '../../../error.js'; -import { MessagingMessages } from '@/models/index.js'; -import { deleteMessage } from '@/services/messages/delete.js'; - -export const meta = { - tags: ['messaging'], - - requireCredential: true, - - kind: 'write:messaging', - - limit: { - duration: ms('1hour'), - max: 300, - minInterval: ms('1sec'), - }, - - errors: { - noSuchMessage: { - message: 'No such message.', - code: 'NO_SUCH_MESSAGE', - id: '54b5b326-7925-42cf-8019-130fda8b56af', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - messageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['messageId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const message = await MessagingMessages.findOneBy({ - id: ps.messageId, - userId: user.id, - }); - - if (message == null) { - throw new ApiError(meta.errors.noSuchMessage); - } - - await deleteMessage(message); -}); diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/read.ts b/packages/backend/src/server/api/endpoints/messaging/messages/read.ts deleted file mode 100644 index db12ae922..000000000 --- a/packages/backend/src/server/api/endpoints/messaging/messages/read.ts +++ /dev/null @@ -1,49 +0,0 @@ -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { MessagingMessages } from '@/models/index.js'; -import { readUserMessagingMessage, readGroupMessagingMessage } from '../../../common/read-messaging-message.js'; - -export const meta = { - tags: ['messaging'], - - requireCredential: true, - - kind: 'write:messaging', - - errors: { - noSuchMessage: { - message: 'No such message.', - code: 'NO_SUCH_MESSAGE', - id: '86d56a2f-a9c3-4afb-b13c-3e9bfef9aa14', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - messageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['messageId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const message = await MessagingMessages.findOneBy({ id: ps.messageId }); - - if (message == null) { - throw new ApiError(meta.errors.noSuchMessage); - } - - if (message.recipientId) { - await readUserMessagingMessage(user.id, message.userId, [message.id]).catch(e => { - if (e.id === 'e140a4bf-49ce-4fb6-b67c-b78dadf6b52f') throw new ApiError(meta.errors.noSuchMessage); - throw e; - }); - } else if (message.groupId) { - await readGroupMessagingMessage(user.id, message.groupId, [message.id]).catch(e => { - if (e.id === '930a270c-714a-46b2-b776-ad27276dc569') throw new ApiError(meta.errors.noSuchMessage); - throw e; - }); - } -}); diff --git a/packages/backend/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts deleted file mode 100644 index 5b624842c..000000000 --- a/packages/backend/src/server/api/endpoints/meta.ts +++ /dev/null @@ -1,414 +0,0 @@ -import { IsNull, MoreThan } from 'typeorm'; -import config from '@/config/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Ads, Emojis, Users } from '@/models/index.js'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits.js'; -import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; -import define from '../define.js'; - -export const meta = { - tags: ['meta'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - maintainerName: { - type: 'string', - optional: false, nullable: true, - }, - maintainerEmail: { - type: 'string', - optional: false, nullable: true, - }, - version: { - type: 'string', - optional: false, nullable: false, - example: config.version, - }, - name: { - type: 'string', - optional: false, nullable: false, - }, - uri: { - type: 'string', - optional: false, nullable: false, - format: 'url', - example: 'https://misskey.example.com', - }, - description: { - type: 'string', - optional: false, nullable: true, - }, - langs: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - tosUrl: { - type: 'string', - optional: false, nullable: true, - }, - repositoryUrl: { - type: 'string', - optional: false, nullable: false, - default: 'https://github.com/misskey-dev/misskey', - }, - feedbackUrl: { - type: 'string', - optional: false, nullable: false, - default: 'https://github.com/misskey-dev/misskey/issues/new', - }, - defaultDarkTheme: { - type: 'string', - optional: false, nullable: true, - }, - defaultLightTheme: { - type: 'string', - optional: false, nullable: true, - }, - disableRegistration: { - type: 'boolean', - optional: false, nullable: false, - }, - disableLocalTimeline: { - type: 'boolean', - optional: false, nullable: false, - }, - disableGlobalTimeline: { - type: 'boolean', - optional: false, nullable: false, - }, - driveCapacityPerLocalUserMb: { - type: 'number', - optional: false, nullable: false, - }, - driveCapacityPerRemoteUserMb: { - type: 'number', - optional: false, nullable: false, - }, - cacheRemoteFiles: { - type: 'boolean', - optional: false, nullable: false, - }, - emailRequiredForSignup: { - type: 'boolean', - optional: false, nullable: false, - }, - enableHcaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - hcaptchaSiteKey: { - type: 'string', - optional: false, nullable: true, - }, - enableRecaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - recaptchaSiteKey: { - type: 'string', - optional: false, nullable: true, - }, - swPublickey: { - type: 'string', - optional: false, nullable: true, - }, - mascotImageUrl: { - type: 'string', - optional: false, nullable: false, - default: '/assets/ai.png', - }, - bannerUrl: { - type: 'string', - optional: false, nullable: false, - }, - errorImageUrl: { - type: 'string', - optional: false, nullable: false, - default: 'https://xn--931a.moe/aiart/yubitun.png', - }, - iconUrl: { - type: 'string', - optional: false, nullable: true, - }, - maxNoteTextLength: { - type: 'number', - optional: false, nullable: false, - }, - emojis: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - aliases: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'string', - optional: false, nullable: false, - }, - }, - category: { - type: 'string', - optional: false, nullable: true, - }, - host: { - type: 'string', - optional: false, nullable: true, - description: 'The local host is represented with `null`.', - }, - url: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - }, - }, - }, - ads: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - place: { - type: 'string', - optional: false, nullable: false, - }, - url: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - imageUrl: { - type: 'string', - optional: false, nullable: false, - format: 'url', - }, - }, - }, - }, - requireSetup: { - type: 'boolean', - optional: false, nullable: false, - example: false, - }, - enableEmail: { - type: 'boolean', - optional: false, nullable: false, - }, - enableTwitterIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableGithubIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableDiscordIntegration: { - type: 'boolean', - optional: false, nullable: false, - }, - enableServiceWorker: { - type: 'boolean', - optional: false, nullable: false, - }, - translatorAvailable: { - type: 'boolean', - optional: false, nullable: false, - }, - proxyAccountName: { - type: 'string', - optional: false, nullable: true, - }, - features: { - type: 'object', - optional: true, nullable: false, - properties: { - registration: { - type: 'boolean', - optional: false, nullable: false, - }, - localTimeLine: { - type: 'boolean', - optional: false, nullable: false, - }, - globalTimeLine: { - type: 'boolean', - optional: false, nullable: false, - }, - elasticsearch: { - type: 'boolean', - optional: false, nullable: false, - }, - hcaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - recaptcha: { - type: 'boolean', - optional: false, nullable: false, - }, - objectStorage: { - type: 'boolean', - optional: false, nullable: false, - }, - twitter: { - type: 'boolean', - optional: false, nullable: false, - }, - github: { - type: 'boolean', - optional: false, nullable: false, - }, - discord: { - type: 'boolean', - optional: false, nullable: false, - }, - serviceWorker: { - type: 'boolean', - optional: false, nullable: false, - }, - miauth: { - type: 'boolean', - optional: true, nullable: false, - default: true, - }, - }, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - detail: { type: 'boolean', default: true }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const instance = await fetchMeta(true); - - const emojis = await Emojis.find({ - where: { - host: IsNull(), - }, - order: { - category: 'ASC', - name: 'ASC', - }, - cache: { - id: 'meta_emojis', - milliseconds: 3600000, // 1 hour - }, - }); - - const ads = await Ads.find({ - where: { - expiresAt: MoreThan(new Date()), - }, - }); - - const response: any = { - maintainerName: instance.maintainerName, - maintainerEmail: instance.maintainerEmail, - - version: config.version, - - name: instance.name, - uri: config.url, - description: instance.description, - langs: instance.langs, - tosUrl: instance.ToSUrl, - repositoryUrl: instance.repositoryUrl, - feedbackUrl: instance.feedbackUrl, - disableRegistration: instance.disableRegistration, - disableLocalTimeline: instance.disableLocalTimeline, - disableGlobalTimeline: instance.disableGlobalTimeline, - driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, - driveCapacityPerRemoteUserMb: instance.remoteDriveCapacityMb, - emailRequiredForSignup: instance.emailRequiredForSignup, - enableHcaptcha: instance.enableHcaptcha, - hcaptchaSiteKey: instance.hcaptchaSiteKey, - enableRecaptcha: instance.enableRecaptcha, - recaptchaSiteKey: instance.recaptchaSiteKey, - swPublickey: instance.swPublicKey, - themeColor: instance.themeColor, - mascotImageUrl: instance.mascotImageUrl, - bannerUrl: instance.bannerUrl, - errorImageUrl: instance.errorImageUrl, - iconUrl: instance.iconUrl, - backgroundImageUrl: instance.backgroundImageUrl, - logoImageUrl: instance.logoImageUrl, - maxNoteTextLength: MAX_NOTE_TEXT_LENGTH, // 後方互換性のため - emojis: await Emojis.packMany(emojis), - defaultLightTheme: instance.defaultLightTheme, - defaultDarkTheme: instance.defaultDarkTheme, - ads: ads.map(ad => ({ - id: ad.id, - url: ad.url, - place: ad.place, - ratio: ad.ratio, - imageUrl: ad.imageUrl, - })), - enableEmail: instance.enableEmail, - - enableTwitterIntegration: instance.enableTwitterIntegration, - enableGithubIntegration: instance.enableGithubIntegration, - enableDiscordIntegration: instance.enableDiscordIntegration, - - enableServiceWorker: instance.enableServiceWorker, - - translatorAvailable: instance.deeplAuthKey != null, - - ...(ps.detail ? { - pinnedPages: instance.pinnedPages, - pinnedClipId: instance.pinnedClipId, - cacheRemoteFiles: instance.cacheRemoteFiles, - requireSetup: (await Users.countBy({ - host: IsNull(), - })) === 0, - } : {}), - }; - - if (ps.detail) { - const proxyAccount = instance.proxyAccountId ? await Users.pack(instance.proxyAccountId).catch(() => null) : null; - - response.proxyAccountName = proxyAccount ? proxyAccount.username : null; - response.features = { - registration: !instance.disableRegistration, - localTimeLine: !instance.disableLocalTimeline, - globalTimeLine: !instance.disableGlobalTimeline, - emailRequiredForSignup: instance.emailRequiredForSignup, - elasticsearch: config.elasticsearch ? true : false, - hcaptcha: instance.enableHcaptcha, - recaptcha: instance.enableRecaptcha, - objectStorage: instance.useObjectStorage, - twitter: instance.enableTwitterIntegration, - github: instance.enableGithubIntegration, - discord: instance.enableDiscordIntegration, - serviceWorker: instance.enableServiceWorker, - miauth: true, - }; - } - - return response; -}); diff --git a/packages/backend/src/server/api/endpoints/miauth/gen-token.ts b/packages/backend/src/server/api/endpoints/miauth/gen-token.ts deleted file mode 100644 index 73ecdaeb0..000000000 --- a/packages/backend/src/server/api/endpoints/miauth/gen-token.ts +++ /dev/null @@ -1,64 +0,0 @@ -import define from '../../define.js'; -import { AccessTokens } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { secureRndstr } from '@/misc/secure-rndstr.js'; - -export const meta = { - tags: ['auth'], - - requireCredential: true, - - secure: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - token: { - type: 'string', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - session: { type: 'string', nullable: true }, - name: { type: 'string', nullable: true }, - description: { type: 'string', nullable: true }, - iconUrl: { type: 'string', nullable: true }, - permission: { type: 'array', uniqueItems: true, items: { - type: 'string', - } }, - }, - required: ['session', 'permission'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Generate access token - const accessToken = secureRndstr(32, true); - - const now = new Date(); - - // Insert access token doc - await AccessTokens.insert({ - id: genId(), - createdAt: now, - lastUsedAt: now, - session: ps.session, - userId: user.id, - token: accessToken, - hash: accessToken, - name: ps.name, - description: ps.description, - iconUrl: ps.iconUrl, - permission: ps.permission, - }); - - return { - token: accessToken, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/mute/create.ts b/packages/backend/src/server/api/endpoints/mute/create.ts deleted file mode 100644 index 7e857e673..000000000 --- a/packages/backend/src/server/api/endpoints/mute/create.ts +++ /dev/null @@ -1,94 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { genId } from '@/misc/gen-id.js'; -import { Mutings, NoteWatchings } from '@/models/index.js'; -import { Muting } from '@/models/entities/muting.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'write:mutes', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '6fef56f3-e765-4957-88e5-c6f65329b8a5', - }, - - muteeIsYourself: { - message: 'Mutee is yourself.', - code: 'MUTEE_IS_YOURSELF', - id: 'a4619cb2-5f23-484b-9301-94c903074e10', - }, - - alreadyMuting: { - message: 'You are already muting that user.', - code: 'ALREADY_MUTING', - id: '7e7359cb-160c-4956-b08f-4d1c653cd007', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - expiresAt: { - type: 'integer', - nullable: true, - description: 'A Unix Epoch timestamp that must lie in the future. `null` means an indefinite mute.', - }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const muter = user; - - // 自分自身 - if (user.id === ps.userId) { - throw new ApiError(meta.errors.muteeIsYourself); - } - - // Get mutee - const mutee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check if already muting - const exist = await Mutings.findOneBy({ - muterId: muter.id, - muteeId: mutee.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyMuting); - } - - if (ps.expiresAt && ps.expiresAt <= Date.now()) { - return; - } - - // Create mute - await Mutings.insert({ - id: genId(), - createdAt: new Date(), - expiresAt: ps.expiresAt ? new Date(ps.expiresAt) : null, - muterId: muter.id, - muteeId: mutee.id, - } as Muting); - - publishUserEvent(user.id, 'mute', mutee); - - NoteWatchings.delete({ - userId: muter.id, - noteUserId: mutee.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/mute/delete.ts b/packages/backend/src/server/api/endpoints/mute/delete.ts deleted file mode 100644 index 0b173dbe2..000000000 --- a/packages/backend/src/server/api/endpoints/mute/delete.ts +++ /dev/null @@ -1,74 +0,0 @@ -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { Mutings } from '@/models/index.js'; -import { publishUserEvent } from '@/services/stream.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'write:mutes', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef', - }, - - muteeIsYourself: { - message: 'Mutee is yourself.', - code: 'MUTEE_IS_YOURSELF', - id: 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9', - }, - - notMuting: { - message: 'You are not muting that user.', - code: 'NOT_MUTING', - id: '5467d020-daa9-4553-81e1-135c0c35a96d', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const muter = user; - - // Check if the mutee is yourself - if (user.id === ps.userId) { - throw new ApiError(meta.errors.muteeIsYourself); - } - - // Get mutee - const mutee = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check not muting - const exist = await Mutings.findOneBy({ - muterId: muter.id, - muteeId: mutee.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notMuting); - } - - // Delete mute - await Mutings.delete({ - id: exist.id, - }); - - publishUserEvent(user.id, 'unmute', mutee); -}); diff --git a/packages/backend/src/server/api/endpoints/mute/list.ts b/packages/backend/src/server/api/endpoints/mute/list.ts deleted file mode 100644 index 31283cf4c..000000000 --- a/packages/backend/src/server/api/endpoints/mute/list.ts +++ /dev/null @@ -1,43 +0,0 @@ -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { Mutings } from '@/models/index.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - kind: 'read:mutes', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Muting', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Mutings.createQueryBuilder('muting'), ps.sinceId, ps.untilId) - .andWhere(`muting.muterId = :meId`, { meId: me.id }); - - const mutings = await query - .take(ps.limit) - .getMany(); - - return await Mutings.packMany(mutings, me); -}); diff --git a/packages/backend/src/server/api/endpoints/my/apps.ts b/packages/backend/src/server/api/endpoints/my/apps.ts deleted file mode 100644 index 85b75c15d..000000000 --- a/packages/backend/src/server/api/endpoints/my/apps.ts +++ /dev/null @@ -1,44 +0,0 @@ -import define from '../../define.js'; -import { Apps } from '@/models/index.js'; - -export const meta = { - tags: ['account', 'app'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'App', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = { - userId: user.id, - }; - - const apps = await Apps.find({ - where: query, - take: ps.limit, - skip: ps.offset, - }); - - return await Promise.all(apps.map(app => Apps.pack(app, user, { - detail: true, - }))); -}); diff --git a/packages/backend/src/server/api/endpoints/notes.ts b/packages/backend/src/server/api/endpoints/notes.ts deleted file mode 100644 index 015b0338e..000000000 --- a/packages/backend/src/server/api/endpoints/notes.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Notes } from '@/models/index.js'; -import define from '../define.js'; -import { makePaginationQuery } from '../common/make-pagination-query.js'; - -export const meta = { - tags: ['notes'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - local: { type: 'boolean', default: false }, - reply: { type: 'boolean' }, - renote: { type: 'boolean' }, - withFiles: { type: 'boolean' }, - poll: { type: 'boolean' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .andWhere('note.visibility = \'public\'') - .andWhere('note.localOnly = FALSE') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - if (ps.local) { - query.andWhere('note.userHost IS NULL'); - } - - if (ps.reply !== undefined) { - query.andWhere(ps.reply ? 'note.replyId IS NOT NULL' : 'note.replyId IS NULL'); - } - - if (ps.renote !== undefined) { - query.andWhere(ps.renote ? 'note.renoteId IS NOT NULL' : 'note.renoteId IS NULL'); - } - - if (ps.withFiles !== undefined) { - query.andWhere(ps.withFiles ? 'note.fileIds != \'{}\'' : 'note.fileIds = \'{}\''); - } - - if (ps.poll !== undefined) { - query.andWhere(ps.poll ? 'note.hasPoll = TRUE' : 'note.hasPoll = FALSE'); - } - - // TODO - //if (bot != undefined) { - // query.isBot = bot; - //} - - const notes = await query.take(ps.limit).getMany(); - - return await Notes.packMany(notes); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/children.ts b/packages/backend/src/server/api/endpoints/notes/children.ts deleted file mode 100644 index efc109105..000000000 --- a/packages/backend/src/server/api/endpoints/notes/children.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .andWhere(new Brackets(qb => { qb - .where('note.replyId = :noteId', { noteId: ps.noteId }) - .orWhere(new Brackets(qb => { qb - .where('note.renoteId = :noteId', { noteId: ps.noteId }) - .andWhere(new Brackets(qb => { qb - .where('note.text IS NOT NULL') - .orWhere('note.fileIds != \'{}\'') - .orWhere('note.hasPoll = TRUE'); - })); - })); - })) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, user); - if (user) { - generateMutedUserQuery(query, user); - generateBlockedUserQuery(query, user); - } - - const notes = await query.take(ps.limit).getMany(); - - return await Notes.packMany(notes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/clips.ts b/packages/backend/src/server/api/endpoints/notes/clips.ts deleted file mode 100644 index e79f8563e..000000000 --- a/packages/backend/src/server/api/endpoints/notes/clips.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { In } from 'typeorm'; -import { ClipNotes, Clips } from '@/models/index.js'; -import define from '../../define.js'; -import { getNote } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['clips', 'notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '47db1a1c-b0af-458d-8fb4-986e4efafe1e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const clipNotes = await ClipNotes.findBy({ - noteId: note.id, - }); - - const clips = await Clips.findBy({ - id: In(clipNotes.map(x => x.clipId)), - isPublic: true, - }); - - return await Promise.all(clips.map(x => Clips.pack(x))); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/conversation.ts b/packages/backend/src/server/api/endpoints/notes/conversation.ts deleted file mode 100644 index b731d1824..000000000 --- a/packages/backend/src/server/api/endpoints/notes/conversation.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Note } from '@/models/entities/note.js'; -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getNote } from '../../common/getters.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'e1035875-9551-45ec-afa8-1ded1fcb53c8', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const conversation: Note[] = []; - let i = 0; - - async function get(id: any) { - i++; - const p = await Notes.findOneBy({ id }); - if (p == null) return; - - if (i > ps.offset!) { - conversation.push(p); - } - - if (conversation.length === ps.limit) { - return; - } - - if (p.replyId) { - await get(p.replyId); - } - } - - if (note.replyId) { - await get(note.replyId); - } - - return await Notes.packMany(conversation, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts deleted file mode 100644 index a13329416..000000000 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ /dev/null @@ -1,275 +0,0 @@ -import ms from 'ms'; -import { In } from 'typeorm'; -import create from '@/services/note/create.js'; -import { User } from '@/models/entities/user.js'; -import { Users, DriveFiles, Notes, Channels, Blockings } from '@/models/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { Note } from '@/models/entities/note.js'; -import { Channel } from '@/models/entities/channel.js'; -import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; -import { noteVisibilities } from '../../../../types.js'; -import { ApiError } from '../../error.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - limit: { - duration: ms('1hour'), - max: 300, - }, - - kind: 'write:notes', - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - createdNote: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - }, - - errors: { - noSuchRenoteTarget: { - message: 'No such renote target.', - code: 'NO_SUCH_RENOTE_TARGET', - id: 'b5c90186-4ab0-49c8-9bba-a1f76c282ba4', - }, - - cannotReRenote: { - message: 'You can not Renote a pure Renote.', - code: 'CANNOT_RENOTE_TO_A_PURE_RENOTE', - id: 'fd4cc33e-2a37-48dd-99cc-9b806eb2031a', - }, - - noSuchReplyTarget: { - message: 'No such reply target.', - code: 'NO_SUCH_REPLY_TARGET', - id: '749ee0f6-d3da-459a-bf02-282e2da4292c', - }, - - cannotReplyToPureRenote: { - message: 'You can not reply to a pure Renote.', - code: 'CANNOT_REPLY_TO_A_PURE_RENOTE', - id: '3ac74a84-8fd5-4bb0-870f-01804f82ce15', - }, - - cannotCreateAlreadyExpiredPoll: { - message: 'Poll is already expired.', - code: 'CANNOT_CREATE_ALREADY_EXPIRED_POLL', - id: '04da457d-b083-4055-9082-955525eda5a5', - }, - - noSuchChannel: { - message: 'No such channel.', - code: 'NO_SUCH_CHANNEL', - id: 'b1653923-5453-4edc-b786-7c4f39bb0bbb', - }, - - youHaveBeenBlocked: { - message: 'You have been blocked by this user.', - code: 'YOU_HAVE_BEEN_BLOCKED', - id: 'b390d7e1-8a5e-46ed-b625-06271cafd3d3', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - visibility: { type: 'string', enum: ['public', 'home', 'followers', 'specified'], default: 'public' }, - visibleUserIds: { type: 'array', uniqueItems: true, items: { - type: 'string', format: 'misskey:id', - } }, - text: { type: 'string', maxLength: MAX_NOTE_TEXT_LENGTH, nullable: true }, - cw: { type: 'string', nullable: true, maxLength: 100 }, - localOnly: { type: 'boolean', default: false }, - noExtractMentions: { type: 'boolean', default: false }, - noExtractHashtags: { type: 'boolean', default: false }, - noExtractEmojis: { type: 'boolean', default: false }, - fileIds: { - type: 'array', - uniqueItems: true, - minItems: 1, - maxItems: 16, - items: { type: 'string', format: 'misskey:id' }, - }, - mediaIds: { - deprecated: true, - description: 'Use `fileIds` instead. If both are specified, this property is discarded.', - type: 'array', - uniqueItems: true, - minItems: 1, - maxItems: 16, - items: { type: 'string', format: 'misskey:id' }, - }, - replyId: { type: 'string', format: 'misskey:id', nullable: true }, - renoteId: { type: 'string', format: 'misskey:id', nullable: true }, - channelId: { type: 'string', format: 'misskey:id', nullable: true }, - poll: { - type: 'object', - nullable: true, - properties: { - choices: { - type: 'array', - uniqueItems: true, - minItems: 2, - maxItems: 10, - items: { type: 'string', minLength: 1, maxLength: 50 }, - }, - multiple: { type: 'boolean', default: false }, - expiresAt: { type: 'integer', nullable: true }, - expiredAfter: { type: 'integer', nullable: true, minimum: 1 }, - }, - required: ['choices'], - }, - }, - anyOf: [ - { - // (re)note with text, files and poll are optional - properties: { - text: { type: 'string', minLength: 1, maxLength: MAX_NOTE_TEXT_LENGTH, nullable: false }, - }, - required: ['text'], - }, - { - // (re)note with files, text and poll are optional - required: ['fileIds'], - }, - { - // (re)note with files, text and poll are optional - required: ['mediaIds'], - }, - { - // (re)note with poll, text and files are optional - properties: { - poll: { type: 'object', nullable: false }, - }, - required: ['poll'], - }, - { - // pure renote - required: ['renoteId'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let visibleUsers: User[] = []; - if (ps.visibleUserIds) { - visibleUsers = await Users.findBy({ - id: In(ps.visibleUserIds), - }); - } - - let files: DriveFile[] = []; - const fileIds = ps.fileIds != null ? ps.fileIds : ps.mediaIds != null ? ps.mediaIds : null; - if (fileIds != null) { - files = await DriveFiles.createQueryBuilder('file') - .where('file.userId = :userId AND file.id IN (:...fileIds)', { - userId: user.id, - fileIds, - }) - .orderBy('array_position(ARRAY[:...fileIds], "id"::text)') - .setParameters({ fileIds }) - .getMany(); - } - - let renote: Note | null = null; - if (ps.renoteId != null) { - // Fetch renote to note - renote = await Notes.findOneBy({ id: ps.renoteId }); - - if (renote == null) { - throw new ApiError(meta.errors.noSuchRenoteTarget); - } else if (renote.renoteId && !renote.text && !renote.fileIds && !renote.hasPoll) { - throw new ApiError(meta.errors.cannotReRenote); - } - - // Check blocking - if (renote.userId !== user.id) { - const block = await Blockings.findOneBy({ - blockerId: renote.userId, - blockeeId: user.id, - }); - if (block) { - throw new ApiError(meta.errors.youHaveBeenBlocked); - } - } - } - - let reply: Note | null = null; - if (ps.replyId != null) { - // Fetch reply - reply = await Notes.findOneBy({ id: ps.replyId }); - - if (reply == null) { - throw new ApiError(meta.errors.noSuchReplyTarget); - } else if (reply.renoteId && !reply.text && !reply.fileIds && !reply.hasPoll) { - throw new ApiError(meta.errors.cannotReplyToPureRenote); - } - - // Check blocking - if (reply.userId !== user.id) { - const block = await Blockings.findOneBy({ - blockerId: reply.userId, - blockeeId: user.id, - }); - if (block) { - throw new ApiError(meta.errors.youHaveBeenBlocked); - } - } - } - - if (ps.poll) { - if (typeof ps.poll.expiresAt === 'number') { - if (ps.poll.expiresAt < Date.now()) { - throw new ApiError(meta.errors.cannotCreateAlreadyExpiredPoll); - } - } else if (typeof ps.poll.expiredAfter === 'number') { - ps.poll.expiresAt = Date.now() + ps.poll.expiredAfter; - } - } - - let channel: Channel | null = null; - if (ps.channelId != null) { - channel = await Channels.findOneBy({ id: ps.channelId }); - - if (channel == null) { - throw new ApiError(meta.errors.noSuchChannel); - } - } - - // 投稿を作成 - const note = await create(user, { - createdAt: new Date(), - files: files, - poll: ps.poll ? { - choices: ps.poll.choices, - multiple: ps.poll.multiple || false, - expiresAt: ps.poll.expiresAt ? new Date(ps.poll.expiresAt) : null, - } : undefined, - text: ps.text || undefined, - reply, - renote, - cw: ps.cw, - localOnly: ps.localOnly, - visibility: ps.visibility, - visibleUsers, - channel, - apMentions: ps.noExtractMentions ? [] : undefined, - apHashtags: ps.noExtractHashtags ? [] : undefined, - apEmojis: ps.noExtractEmojis ? [] : undefined, - }); - - return { - createdNote: await Notes.pack(note, user), - }; -}); diff --git a/packages/backend/src/server/api/endpoints/notes/delete.ts b/packages/backend/src/server/api/endpoints/notes/delete.ts deleted file mode 100644 index c23ceeb5b..000000000 --- a/packages/backend/src/server/api/endpoints/notes/delete.ts +++ /dev/null @@ -1,57 +0,0 @@ -import ms from 'ms'; -import deleteNote from '@/services/note/delete.js'; -import { Users } from '@/models/index.js'; -import define from '../../define.js'; -import { getNote } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:notes', - - limit: { - duration: ms('1hour'), - max: 300, - minInterval: ms('1sec'), - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '490be23f-8c1f-4796-819f-94cb4f9d1630', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - if ((!user.isAdmin && !user.isModerator) && (note.userId !== user.id)) { - throw new ApiError(meta.errors.accessDenied); - } - - // この操作を行うのが投稿者とは限らない(例えばモデレーター)ため - await deleteNote(await Users.findOneByOrFail({ id: note.userId }), note); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts deleted file mode 100644 index 097371a42..000000000 --- a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { NoteFavorites } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getNote } from '../../../common/getters.js'; - -export const meta = { - tags: ['notes', 'favorites'], - - requireCredential: true, - - kind: 'write:favorites', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '6dd26674-e060-4816-909a-45ba3f4da458', - }, - - alreadyFavorited: { - message: 'The note has already been marked as a favorite.', - code: 'ALREADY_FAVORITED', - id: 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Get favoritee - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - // if already favorited - const exist = await NoteFavorites.findOneBy({ - noteId: note.id, - userId: user.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyFavorited); - } - - // Create favorite - await NoteFavorites.insert({ - id: genId(), - createdAt: new Date(), - noteId: note.id, - userId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts b/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts deleted file mode 100644 index 82ef4fa19..000000000 --- a/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { NoteFavorites } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getNote } from '../../../common/getters.js'; - -export const meta = { - tags: ['notes', 'favorites'], - - requireCredential: true, - - kind: 'write:favorites', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '80848a2c-398f-4343-baa9-df1d57696c56', - }, - - notFavorited: { - message: 'You have not marked that note a favorite.', - code: 'NOT_FAVORITED', - id: 'b625fc69-635e-45e9-86f4-dbefbef35af5', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Get favoritee - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - // if already favorited - const exist = await NoteFavorites.findOneBy({ - noteId: note.id, - userId: user.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notFavorited); - } - - // Delete favorite - await NoteFavorites.delete(exist.id); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/featured.ts b/packages/backend/src/server/api/endpoints/notes/featured.ts deleted file mode 100644 index dd9cc581a..000000000 --- a/packages/backend/src/server/api/endpoints/notes/featured.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const max = 30; - const day = 1000 * 60 * 60 * 24 * 3; // 3日前まで - - const query = Notes.createQueryBuilder('note') - .addSelect('note.score') - .where('note.userHost IS NULL') - .andWhere('note.score > 0') - .andWhere('note.createdAt > :date', { date: new Date(Date.now() - day) }) - .andWhere('note.visibility = \'public\'') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - if (user) generateMutedUserQuery(query, user); - if (user) generateBlockedUserQuery(query, user); - - let notes = await query - .orderBy('note.score', 'DESC') - .take(max) - .getMany(); - - notes.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()); - - notes = notes.slice(ps.offset, ps.offset + ps.limit); - - return await Notes.packMany(notes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts deleted file mode 100644 index 925318f54..000000000 --- a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateRepliesQuery } from '../../common/generate-replies-query.js'; -import { generateMutedNoteQuery } from '../../common/generate-muted-note-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - gtlDisabled: { - message: 'Global timeline has been disabled.', - code: 'GTL_DISABLED', - id: '0332fc13-6ab2-4427-ae80-a9fadffd1a6b', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const m = await fetchMeta(); - if (m.disableGlobalTimeline) { - if (user == null || (!user.isAdmin && !user.isModerator)) { - throw new ApiError(meta.errors.gtlDisabled); - } - } - - //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere('note.visibility = \'public\'') - .andWhere('note.channelId IS NULL') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateRepliesQuery(query, user); - if (user) { - generateMutedUserQuery(query, user); - generateMutedNoteQuery(query, user); - generateBlockedUserQuery(query, user); - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - process.nextTick(() => { - if (user) { - activeUsersChart.read(user); - } - }); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts deleted file mode 100644 index 2dc98c4c9..000000000 --- a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { Brackets } from 'typeorm'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Followings, Notes } from '@/models/index.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateRepliesQuery } from '../../common/generate-replies-query.js'; -import { generateMutedNoteQuery } from '../../common/generate-muted-note-query.js'; -import { generateChannelQuery } from '../../common/generate-channel-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - stlDisabled: { - message: 'Hybrid timeline has been disabled.', - code: 'STL_DISABLED', - id: '620763f4-f621-4533-ab33-0577a1a3c342', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - includeMyRenotes: { type: 'boolean', default: true }, - includeRenotedMyNotes: { type: 'boolean', default: true }, - includeLocalRenotes: { type: 'boolean', default: true }, - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const m = await fetchMeta(); - if (m.disableLocalTimeline && (!user.isAdmin && !user.isModerator)) { - throw new ApiError(meta.errors.stlDisabled); - } - - //#region Construct query - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: user.id }); - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere(new Brackets(qb => { - qb.where(`((note.userId IN (${ followingQuery.getQuery() })) OR (note.userId = :meId))`, { meId: user.id }) - .orWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)'); - })) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .setParameters(followingQuery.getParameters()); - - generateChannelQuery(query, user); - generateRepliesQuery(query, user); - generateVisibilityQuery(query, user); - generateMutedUserQuery(query, user); - generateMutedNoteQuery(query, user); - generateBlockedUserQuery(query, user); - - if (ps.includeMyRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.userId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeRenotedMyNotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeLocalRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserHost IS NOT NULL'); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - process.nextTick(() => { - activeUsersChart.read(user); - }); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts deleted file mode 100644 index aac2a3749..000000000 --- a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { Brackets } from 'typeorm'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes, Users } from '@/models/index.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateRepliesQuery } from '../../common/generate-replies-query.js'; -import { generateMutedNoteQuery } from '../../common/generate-muted-note-query.js'; -import { generateChannelQuery } from '../../common/generate-channel-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - ltlDisabled: { - message: 'Local timeline has been disabled.', - code: 'LTL_DISABLED', - id: '45a6eb02-7695-4393-b023-dd3be9aaaefd', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - fileType: { type: 'array', items: { - type: 'string', - } }, - excludeNsfw: { type: 'boolean', default: false }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const m = await fetchMeta(); - if (m.disableLocalTimeline) { - if (user == null || (!user.isAdmin && !user.isModerator)) { - throw new ApiError(meta.errors.ltlDisabled); - } - } - - //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateChannelQuery(query, user); - generateRepliesQuery(query, user); - generateVisibilityQuery(query, user); - if (user) generateMutedUserQuery(query, user); - if (user) generateMutedNoteQuery(query, user); - if (user) generateBlockedUserQuery(query, user); - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - - if (ps.fileType != null) { - query.andWhere('note.fileIds != \'{}\''); - query.andWhere(new Brackets(qb => { - for (const type of ps.fileType!) { - const i = ps.fileType!.indexOf(type); - qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type }); - } - })); - - if (ps.excludeNsfw) { - query.andWhere('note.cw IS NULL'); - query.andWhere('0 = (SELECT COUNT(*) FROM drive_file df WHERE df.id = ANY(note."fileIds") AND df."isSensitive" = TRUE)'); - } - } - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - process.nextTick(() => { - if (user) { - activeUsersChart.read(user); - } - }); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/mentions.ts b/packages/backend/src/server/api/endpoints/notes/mentions.ts deleted file mode 100644 index 9b4154452..000000000 --- a/packages/backend/src/server/api/endpoints/notes/mentions.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { Brackets } from 'typeorm'; -import read from '@/services/note/read.js'; -import { Notes, Followings } from '@/models/index.js'; -import define from '../../define.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; -import { generateMutedNoteThreadQuery } from '../../common/generate-muted-note-thread-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - following: { type: 'boolean', default: false }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - visibility: { type: 'string' }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: user.id }); - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .andWhere(new Brackets(qb => { qb - .where(`'{"${user.id}"}' <@ note.mentions`) - .orWhere(`'{"${user.id}"}' <@ note.visibleUserIds`); - })) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, user); - generateMutedUserQuery(query, user); - generateMutedNoteThreadQuery(query, user); - generateBlockedUserQuery(query, user); - - if (ps.visibility) { - query.andWhere('note.visibility = :visibility', { visibility: ps.visibility }); - } - - if (ps.following) { - query.andWhere(`((note.userId IN (${ followingQuery.getQuery() })) OR (note.userId = :meId))`, { meId: user.id }); - query.setParameters(followingQuery.getParameters()); - } - - const mentions = await query.take(ps.limit).getMany(); - - read(user.id, mentions); - - return await Notes.packMany(mentions, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts deleted file mode 100644 index 5a04d68f3..000000000 --- a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Brackets, In } from 'typeorm'; -import { Polls, Mutings, Notes, PollVotes } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = Polls.createQueryBuilder('poll') - .where('poll.userHost IS NULL') - .andWhere('poll.userId != :meId', { meId: user.id }) - .andWhere('poll.noteVisibility = \'public\'') - .andWhere(new Brackets(qb => { qb - .where('poll.expiresAt IS NULL') - .orWhere('poll.expiresAt > :now', { now: new Date() }); - })); - - //#region exclude arleady voted polls - const votedQuery = PollVotes.createQueryBuilder('vote') - .select('vote.noteId') - .where('vote.userId = :meId', { meId: user.id }); - - query - .andWhere(`poll.noteId NOT IN (${ votedQuery.getQuery() })`); - - query.setParameters(votedQuery.getParameters()); - //#endregion - - //#region mute - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: user.id }); - - query - .andWhere(`poll.userId NOT IN (${ mutingQuery.getQuery() })`); - - query.setParameters(mutingQuery.getParameters()); - //#endregion - - const polls = await query - .orderBy('poll.noteId', 'DESC') - .take(ps.limit) - .skip(ps.offset) - .getMany(); - - if (polls.length === 0) return []; - - const notes = await Notes.find({ - where: { - id: In(polls.map(poll => poll.noteId)), - }, - order: { - createdAt: 'DESC', - }, - }); - - return await Notes.packMany(notes, user, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts deleted file mode 100644 index 45a832cbd..000000000 --- a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { Not } from 'typeorm'; -import { publishNoteStream } from '@/services/stream.js'; -import { createNotification } from '@/services/create-notification.js'; -import { deliver } from '@/queue/index.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderVote from '@/remote/activitypub/renderer/vote.js'; -import { deliverQuestionUpdate } from '@/services/note/polls/update.js'; -import { PollVotes, NoteWatchings, Users, Polls, Blockings } from '@/models/index.js'; -import { IRemoteUser } from '@/models/entities/user.js'; -import { genId } from '@/misc/gen-id.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:votes', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396', - }, - - noPoll: { - message: 'The note does not attach a poll.', - code: 'NO_POLL', - id: '5f979967-52d9-4314-a911-1c673727f92f', - }, - - invalidChoice: { - message: 'Choice ID is invalid.', - code: 'INVALID_CHOICE', - id: 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc', - }, - - alreadyVoted: { - message: 'You have already voted.', - code: 'ALREADY_VOTED', - id: '0963fc77-efac-419b-9424-b391608dc6d8', - }, - - alreadyExpired: { - message: 'The poll is already expired.', - code: 'ALREADY_EXPIRED', - id: '1022a357-b085-4054-9083-8f8de358337e', - }, - - youHaveBeenBlocked: { - message: 'You cannot vote this poll because you have been blocked by this user.', - code: 'YOU_HAVE_BEEN_BLOCKED', - id: '85a5377e-b1e9-4617-b0b9-5bea73331e49', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - choice: { type: 'integer' }, - }, - required: ['noteId', 'choice'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const createdAt = new Date(); - - // Get votee - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - if (!note.hasPoll) { - throw new ApiError(meta.errors.noPoll); - } - - // Check blocking - if (note.userId !== user.id) { - const block = await Blockings.findOneBy({ - blockerId: note.userId, - blockeeId: user.id, - }); - if (block) { - throw new ApiError(meta.errors.youHaveBeenBlocked); - } - } - - const poll = await Polls.findOneByOrFail({ noteId: note.id }); - - if (poll.expiresAt && poll.expiresAt < createdAt) { - throw new ApiError(meta.errors.alreadyExpired); - } - - if (poll.choices[ps.choice] == null) { - throw new ApiError(meta.errors.invalidChoice); - } - - // if already voted - const exist = await PollVotes.findBy({ - noteId: note.id, - userId: user.id, - }); - - if (exist.length) { - if (poll.multiple) { - if (exist.some(x => x.choice === ps.choice)) { - throw new ApiError(meta.errors.alreadyVoted); - } - } else { - throw new ApiError(meta.errors.alreadyVoted); - } - } - - // Create vote - const vote = await PollVotes.insert({ - id: genId(), - createdAt, - noteId: note.id, - userId: user.id, - choice: ps.choice, - }).then(x => PollVotes.findOneByOrFail(x.identifiers[0])); - - // Increment votes count - const index = ps.choice + 1; // In SQL, array index is 1 based - await Polls.query(`UPDATE poll SET votes[${index}] = votes[${index}] + 1 WHERE "noteId" = '${poll.noteId}'`); - - publishNoteStream(note.id, 'pollVoted', { - choice: ps.choice, - userId: user.id, - }); - - // Notify - createNotification(note.userId, 'pollVote', { - notifierId: user.id, - noteId: note.id, - choice: ps.choice, - }); - - // Fetch watchers - NoteWatchings.findBy({ - noteId: note.id, - userId: Not(user.id), - }).then(watchers => { - for (const watcher of watchers) { - createNotification(watcher.userId, 'pollVote', { - notifierId: user.id, - noteId: note.id, - choice: ps.choice, - }); - } - }); - - // リモート投票の場合リプライ送信 - if (note.userHost != null) { - const pollOwner = await Users.findOneByOrFail({ id: note.userId }) as IRemoteUser; - - deliver(user, renderActivity(await renderVote(user, vote, note, poll, pollOwner)), pollOwner.inbox); - } - - // リモートフォロワーにUpdate配信 - deliverQuestionUpdate(note.id); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/reactions.ts b/packages/backend/src/server/api/endpoints/notes/reactions.ts deleted file mode 100644 index 15a62d394..000000000 --- a/packages/backend/src/server/api/endpoints/notes/reactions.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { DeepPartial, FindOptionsWhere } from 'typeorm'; -import { NoteReactions } from '@/models/index.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['notes', 'reactions'], - - requireCredential: false, - - allowGet: true, - cacheSec: 60, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'NoteReaction', - }, - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '263fff3d-d0e1-4af4-bea7-8408059b451a', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - type: { type: 'string', nullable: true }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = { - noteId: ps.noteId, - } as FindOptionsWhere; - - if (ps.type) { - // ローカルリアクションはホスト名が . とされているが - // DB 上ではそうではないので、必要に応じて変換 - const suffix = '@.:'; - const type = ps.type.endsWith(suffix) ? ps.type.slice(0, ps.type.length - suffix.length) + ':' : ps.type; - query.reaction = type; - } - - const reactions = await NoteReactions.find({ - where: query, - take: ps.limit, - skip: ps.offset, - order: { - id: -1, - }, - relations: ['user', 'user.avatar', 'user.banner', 'note'], - }); - - return await Promise.all(reactions.map(reaction => NoteReactions.pack(reaction, user))); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts deleted file mode 100644 index 07e52a926..000000000 --- a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts +++ /dev/null @@ -1,55 +0,0 @@ -import createReaction from '@/services/note/reaction/create.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['reactions', 'notes'], - - requireCredential: true, - - kind: 'write:reactions', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '033d0620-5bfe-4027-965d-980b0c85a3ea', - }, - - alreadyReacted: { - message: 'You are already reacting to that note.', - code: 'ALREADY_REACTED', - id: '71efcf98-86d6-4e2b-b2ad-9d032369366b', - }, - - youHaveBeenBlocked: { - message: 'You cannot react this note because you have been blocked by this user.', - code: 'YOU_HAVE_BEEN_BLOCKED', - id: '20ef5475-9f38-4e4c-bd33-de6d979498ec', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - reaction: { type: 'string' }, - }, - required: ['noteId', 'reaction'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - await createReaction(user, note, ps.reaction).catch(e => { - if (e.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') throw new ApiError(meta.errors.alreadyReacted); - if (e.id === 'e70412a4-7197-4726-8e74-f3e0deb92aa7') throw new ApiError(meta.errors.youHaveBeenBlocked); - throw e; - }); - return; -}); diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts b/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts deleted file mode 100644 index c13cafa21..000000000 --- a/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts +++ /dev/null @@ -1,53 +0,0 @@ -import ms from 'ms'; -import deleteReaction from '@/services/note/reaction/delete.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['reactions', 'notes'], - - requireCredential: true, - - kind: 'write:reactions', - - limit: { - duration: ms('1hour'), - max: 60, - minInterval: ms('3sec'), - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37', - }, - - notReacted: { - message: 'You are not reacting to that note.', - code: 'NOT_REACTED', - id: '92f4426d-4196-4125-aa5b-02943e2ec8fc', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - await deleteReaction(user, note).catch(e => { - if (e.id === '60527ec9-b4cb-4a88-a6bd-32d3ad26817d') throw new ApiError(meta.errors.notReacted); - throw e; - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/renotes.ts b/packages/backend/src/server/api/endpoints/notes/renotes.ts deleted file mode 100644 index 28be36076..000000000 --- a/packages/backend/src/server/api/endpoints/notes/renotes.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { getNote } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '12908022-2e21-46cd-ba6a-3edaf6093f46', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .andWhere('note.renoteId = :renoteId', { renoteId: note.id }) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, user); - if (user) generateMutedUserQuery(query, user); - if (user) generateBlockedUserQuery(query, user); - - const renotes = await query.take(ps.limit).getMany(); - - return await Notes.packMany(renotes, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/replies.ts b/packages/backend/src/server/api/endpoints/notes/replies.ts deleted file mode 100644 index ab0018f58..000000000 --- a/packages/backend/src/server/api/endpoints/notes/replies.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .andWhere('note.replyId = :replyId', { replyId: ps.noteId }) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, user); - if (user) generateMutedUserQuery(query, user); - if (user) generateBlockedUserQuery(query, user); - - const timeline = await query.take(ps.limit).getMany(); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts deleted file mode 100644 index 777de7221..000000000 --- a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Notes } from '@/models/index.js'; -import { safeForSql } from '@/misc/safe-for-sql.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes', 'hashtags'], - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - reply: { type: 'boolean', nullable: true, default: null }, - renote: { type: 'boolean', nullable: true, default: null }, - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - poll: { type: 'boolean', nullable: true, default: null }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - anyOf: [ - { - properties: { - tag: { type: 'string', minLength: 1 }, - }, - required: ['tag'], - }, - { - properties: { - query: { - type: 'array', - description: 'The outer arrays are chained with OR, the inner arrays are chained with AND.', - items: { - type: 'array', - items: { - type: 'string', - minLength: 1, - }, - minItems: 1, - }, - minItems: 1, - }, - }, - required: ['query'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, me); - if (me) generateMutedUserQuery(query, me); - if (me) generateBlockedUserQuery(query, me); - - try { - if (ps.tag) { - if (!safeForSql(ps.tag)) throw 'Injection'; - query.andWhere(`'{"${normalizeForSearch(ps.tag)}"}' <@ note.tags`); - } else { - query.andWhere(new Brackets(qb => { - for (const tags of ps.query!) { - qb.orWhere(new Brackets(qb => { - for (const tag of tags) { - if (!safeForSql(tag)) throw 'Injection'; - qb.andWhere(`'{"${normalizeForSearch(tag)}"}' <@ note.tags`); - } - })); - } - })); - } - } catch (e) { - if (e === 'Injection') return []; - throw e; - } - - if (ps.reply != null) { - if (ps.reply) { - query.andWhere('note.replyId IS NOT NULL'); - } else { - query.andWhere('note.replyId IS NULL'); - } - } - - if (ps.renote != null) { - if (ps.renote) { - query.andWhere('note.renoteId IS NOT NULL'); - } else { - query.andWhere('note.renoteId IS NULL'); - } - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - - if (ps.poll != null) { - if (ps.poll) { - query.andWhere('note.hasPoll = TRUE'); - } else { - query.andWhere('note.hasPoll = FALSE'); - } - } - - // Search notes - const notes = await query.take(ps.limit).getMany(); - - return await Notes.packMany(notes, me); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/search.ts b/packages/backend/src/server/api/endpoints/notes/search.ts deleted file mode 100644 index 4e2cdae80..000000000 --- a/packages/backend/src/server/api/endpoints/notes/search.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { In } from 'typeorm'; -import { Notes } from '@/models/index.js'; -import config from '@/config/index.js'; -import es from '../../../../db/elasticsearch.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - query: { type: 'string' }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - host: { - type: 'string', - nullable: true, - description: 'The local host is represented with `null`.', - }, - userId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - channelId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, - }, - required: ['query'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - if (es == null) { - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId); - - if (ps.userId) { - query.andWhere('note.userId = :userId', { userId: ps.userId }); - } else if (ps.channelId) { - query.andWhere('note.channelId = :channelId', { channelId: ps.channelId }); - } - - query - .andWhere('note.text ILIKE :q', { q: `%${ps.query}%` }) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, me); - if (me) generateMutedUserQuery(query, me); - if (me) generateBlockedUserQuery(query, me); - - const notes = await query.take(ps.limit).getMany(); - - return await Notes.packMany(notes, me); - } else { - const userQuery = ps.userId != null ? [{ - term: { - userId: ps.userId, - }, - }] : []; - - const hostQuery = ps.userId == null ? - ps.host === null ? [{ - bool: { - must_not: { - exists: { - field: 'userHost', - }, - }, - }, - }] : ps.host !== undefined ? [{ - term: { - userHost: ps.host, - }, - }] : [] - : []; - - const result = await es.search({ - index: config.elasticsearch.index || 'misskey_note', - body: { - size: ps.limit, - from: ps.offset, - query: { - bool: { - must: [{ - simple_query_string: { - fields: ['text'], - query: ps.query.toLowerCase(), - default_operator: 'and', - }, - }, ...hostQuery, ...userQuery], - }, - }, - sort: [{ - _doc: 'desc', - }], - }, - }); - - const hits = result.body.hits.hits.map((hit: any) => hit._id); - - if (hits.length === 0) return []; - - // Fetch found notes - const notes = await Notes.find({ - where: { - id: In(hits), - }, - order: { - id: -1, - }, - }); - - return await Notes.packMany(notes, me); - } -}); diff --git a/packages/backend/src/server/api/endpoints/notes/show.ts b/packages/backend/src/server/api/endpoints/notes/show.ts deleted file mode 100644 index 5cd74bd2c..000000000 --- a/packages/backend/src/server/api/endpoints/notes/show.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { getNote } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '24fcbfc6-2e37-42b6-8388-c29b3861a08d', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - return await Notes.pack(note, user, { - detail: true, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/state.ts b/packages/backend/src/server/api/endpoints/notes/state.ts deleted file mode 100644 index 01afa5add..000000000 --- a/packages/backend/src/server/api/endpoints/notes/state.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { NoteFavorites, Notes, NoteThreadMutings, NoteWatchings } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - isFavorited: { - type: 'boolean', - optional: false, nullable: false, - }, - isWatching: { - type: 'boolean', - optional: false, nullable: false, - }, - isMutedThread: { - type: 'boolean', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await Notes.findOneByOrFail({ id: ps.noteId }); - - const [favorite, watching, threadMuting] = await Promise.all([ - NoteFavorites.count({ - where: { - userId: user.id, - noteId: note.id, - }, - take: 1, - }), - NoteWatchings.count({ - where: { - userId: user.id, - noteId: note.id, - }, - take: 1, - }), - NoteThreadMutings.count({ - where: { - userId: user.id, - threadId: note.threadId || note.id, - }, - take: 1, - }), - ]); - - return { - isFavorited: favorite !== 0, - isWatching: watching !== 0, - isMutedThread: threadMuting !== 0, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts deleted file mode 100644 index cf360526d..000000000 --- a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Notes, NoteThreadMutings } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import readNote from '@/services/note/read.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '5ff67ada-ed3b-2e71-8e87-a1a421e177d2', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const mutedNotes = await Notes.find({ - where: [{ - id: note.threadId || note.id, - }, { - threadId: note.threadId || note.id, - }], - }); - - await readNote(user.id, mutedNotes); - - await NoteThreadMutings.insert({ - id: genId(), - createdAt: new Date(), - threadId: note.threadId || note.id, - userId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts deleted file mode 100644 index ac310d0fe..000000000 --- a/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { NoteThreadMutings } from '@/models/index.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'bddd57ac-ceb3-b29d-4334-86ea5fae481a', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - await NoteThreadMutings.delete({ - threadId: note.threadId || note.id, - userId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts deleted file mode 100644 index 22f492517..000000000 --- a/packages/backend/src/server/api/endpoints/notes/timeline.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Notes, Followings } from '@/models/index.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateRepliesQuery } from '../../common/generate-replies-query.js'; -import { generateMutedNoteQuery } from '../../common/generate-muted-note-query.js'; -import { generateChannelQuery } from '../../common/generate-channel-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - includeMyRenotes: { type: 'boolean', default: true }, - includeRenotedMyNotes: { type: 'boolean', default: true }, - includeLocalRenotes: { type: 'boolean', default: true }, - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const hasFollowing = (await Followings.count({ - where: { - followerId: user.id, - }, - take: 1, - })) !== 0; - - //#region Construct query - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: user.id }); - - const query = makePaginationQuery(Notes.createQueryBuilder('note'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere(new Brackets(qb => { qb - .where('note.userId = :meId', { meId: user.id }); - if (hasFollowing) qb.orWhere(`note.userId IN (${ followingQuery.getQuery() })`); - })) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .setParameters(followingQuery.getParameters()); - - generateChannelQuery(query, user); - generateRepliesQuery(query, user); - generateVisibilityQuery(query, user); - generateMutedUserQuery(query, user); - generateMutedNoteQuery(query, user); - generateBlockedUserQuery(query, user); - - if (ps.includeMyRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.userId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeRenotedMyNotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeLocalRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserHost IS NOT NULL'); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - process.nextTick(() => { - activeUsersChart.read(user); - }); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts deleted file mode 100644 index 5e40e7106..000000000 --- a/packages/backend/src/server/api/endpoints/notes/translate.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { URLSearchParams } from 'node:url'; -import fetch from 'node-fetch'; -import config from '@/config/index.js'; -import { getAgentByUrl } from '@/misc/fetch.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { ApiError } from '../../error.js'; -import { getNote } from '../../common/getters.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'bea9b03f-36e0-49c5-a4db-627a029f8971', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - targetLang: { type: 'string' }, - }, - required: ['noteId', 'targetLang'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - if (!(await Notes.isVisibleForMe(note, user ? user.id : null))) { - return 204; // TODO: 良い感じのエラー返す - } - - if (note.text == null) { - return 204; - } - - const instance = await fetchMeta(); - - if (instance.deeplAuthKey == null) { - return 204; // TODO: 良い感じのエラー返す - } - - let targetLang = ps.targetLang; - if (targetLang.includes('-')) targetLang = targetLang.split('-')[0]; - - const params = new URLSearchParams(); - params.append('auth_key', instance.deeplAuthKey); - params.append('text', note.text); - params.append('target_lang', targetLang); - - const endpoint = instance.deeplIsPro ? 'https://api.deepl.com/v2/translate' : 'https://api-free.deepl.com/v2/translate'; - - const res = await fetch(endpoint, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'User-Agent': config.userAgent, - Accept: 'application/json, */*', - }, - body: params, - // TODO - //timeout: 10000, - agent: getAgentByUrl, - }); - - const json = (await res.json()) as { - translations: { - detected_source_language: string; - text: string; - }[]; - }; - - return { - sourceLang: json.translations[0].detected_source_language, - text: json.translations[0].text, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/notes/unrenote.ts b/packages/backend/src/server/api/endpoints/notes/unrenote.ts deleted file mode 100644 index 3fba0efe0..000000000 --- a/packages/backend/src/server/api/endpoints/notes/unrenote.ts +++ /dev/null @@ -1,53 +0,0 @@ -import ms from 'ms'; -import deleteNote from '@/services/note/delete.js'; -import { Notes, Users } from '@/models/index.js'; -import define from '../../define.js'; -import { getNote } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:notes', - - limit: { - duration: ms('1hour'), - max: 300, - minInterval: ms('1sec'), - }, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'efd4a259-2442-496b-8dd7-b255aa1a160f', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const renotes = await Notes.findBy({ - userId: user.id, - renoteId: note.id, - }); - - for (const note of renotes) { - deleteNote(await Users.findOneByOrFail({ id: user.id }), note); - } -}); diff --git a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts deleted file mode 100644 index e603a8f62..000000000 --- a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { Brackets } from 'typeorm'; -import { UserLists, UserListJoinings, Notes } from '@/models/index.js'; -import { activeUsersChart } from '@/services/chart/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; - -export const meta = { - tags: ['notes', 'lists'], - - requireCredential: true, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - includeMyRenotes: { type: 'boolean', default: true }, - includeRenotedMyNotes: { type: 'boolean', default: true }, - includeLocalRenotes: { type: 'boolean', default: true }, - withFiles: { - type: 'boolean', - default: false, - description: 'Only show notes that have attached files.', - }, - }, - required: ['listId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const list = await UserLists.findOneBy({ - id: ps.listId, - userId: user.id, - }); - - if (list == null) { - throw new ApiError(meta.errors.noSuchList); - } - - //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) - .innerJoin(UserListJoinings.metadata.targetName, 'userListJoining', 'userListJoining.userId = note.userId') - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner') - .andWhere('userListJoining.userListId = :userListId', { userListId: list.id }); - - generateVisibilityQuery(query, user); - - if (ps.includeMyRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.userId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeRenotedMyNotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.includeLocalRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.renoteUserHost IS NOT NULL'); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - activeUsersChart.read(user); - - return await Notes.packMany(timeline, user); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/watching/create.ts b/packages/backend/src/server/api/endpoints/notes/watching/create.ts deleted file mode 100644 index 7d482b073..000000000 --- a/packages/backend/src/server/api/endpoints/notes/watching/create.ts +++ /dev/null @@ -1,38 +0,0 @@ -import watch from '@/services/note/watch.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - await watch(user.id, note); -}); diff --git a/packages/backend/src/server/api/endpoints/notes/watching/delete.ts b/packages/backend/src/server/api/endpoints/notes/watching/delete.ts deleted file mode 100644 index 2c1a2e5fb..000000000 --- a/packages/backend/src/server/api/endpoints/notes/watching/delete.ts +++ /dev/null @@ -1,38 +0,0 @@ -import unwatch from '@/services/note/unwatch.js'; -import define from '../../../define.js'; -import { getNote } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - kind: 'write:account', - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: '09b3695c-f72c-4731-a428-7cff825fc82e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - await unwatch(user.id, note); -}); diff --git a/packages/backend/src/server/api/endpoints/notifications/create.ts b/packages/backend/src/server/api/endpoints/notifications/create.ts deleted file mode 100644 index 80d513d8d..000000000 --- a/packages/backend/src/server/api/endpoints/notifications/create.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { createNotification } from '@/services/create-notification.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['notifications'], - - requireCredential: true, - - kind: 'write:notifications', - - errors: { - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - body: { type: 'string' }, - header: { type: 'string', nullable: true }, - icon: { type: 'string', nullable: true }, - }, - required: ['body'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user, token) => { - createNotification(user.id, 'app', { - appAccessTokenId: token ? token.id : null, - customBody: ps.body, - customHeader: ps.header, - customIcon: ps.icon, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts deleted file mode 100644 index d169afbb3..000000000 --- a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import { pushNotification } from '@/services/push-notification.js'; -import { Notifications } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['notifications', 'account'], - - requireCredential: true, - - kind: 'write:notifications', -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Update documents - await Notifications.update({ - notifieeId: user.id, - isRead: false, - }, { - isRead: true, - }); - - // 全ての通知を読みましたよというイベントを発行 - publishMainStream(user.id, 'readAllNotifications'); - pushNotification(user.id, 'readAllNotifications', undefined); -}); diff --git a/packages/backend/src/server/api/endpoints/notifications/read.ts b/packages/backend/src/server/api/endpoints/notifications/read.ts deleted file mode 100644 index 7bce525a5..000000000 --- a/packages/backend/src/server/api/endpoints/notifications/read.ts +++ /dev/null @@ -1,49 +0,0 @@ -import define from '../../define.js'; -import { readNotification } from '../../common/read-notification.js'; - -export const meta = { - tags: ['notifications', 'account'], - - requireCredential: true, - - kind: 'write:notifications', - - description: 'Mark a notification as read.', - - errors: { - noSuchNotification: { - message: 'No such notification.', - code: 'NO_SUCH_NOTIFICATION', - id: 'efa929d5-05b5-47d1-beec-e6a4dbed011e', - }, - }, -} as const; - -export const paramDef = { - oneOf: [ - { - type: 'object', - properties: { - notificationId: { type: 'string', format: 'misskey:id' }, - }, - required: ['notificationId'], - }, - { - type: 'object', - properties: { - notificationIds: { - type: 'array', - items: { type: 'string', format: 'misskey:id' }, - maxItems: 100, - }, - }, - required: ['notificationIds'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - if ('notificationId' in ps) return readNotification(user.id, [ps.notificationId]); - return readNotification(user.id, ps.notificationIds); -}); diff --git a/packages/backend/src/server/api/endpoints/page-push.ts b/packages/backend/src/server/api/endpoints/page-push.ts deleted file mode 100644 index 6dd3ede85..000000000 --- a/packages/backend/src/server/api/endpoints/page-push.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import { Users, Pages } from '@/models/index.js'; -import define from '../define.js'; -import { ApiError } from '../error.js'; - -export const meta = { - requireCredential: true, - secure: true, - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: '4a13ad31-6729-46b4-b9af-e86b265c2e74', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - event: { type: 'string' }, - var: {}, - }, - required: ['pageId', 'event'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const page = await Pages.findOneBy({ id: ps.pageId }); - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - - publishMainStream(page.userId, 'pageEvent', { - pageId: ps.pageId, - event: ps.event, - var: ps.var, - userId: user.id, - user: await Users.pack(user.id, { id: page.userId }, { - detail: true, - }), - }); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/create.ts b/packages/backend/src/server/api/endpoints/pages/create.ts deleted file mode 100644 index b008cde84..000000000 --- a/packages/backend/src/server/api/endpoints/pages/create.ts +++ /dev/null @@ -1,103 +0,0 @@ -import ms from 'ms'; -import { Pages, DriveFiles } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { Page } from '@/models/entities/page.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: true, - - kind: 'write:pages', - - limit: { - duration: ms('1hour'), - max: 300, - }, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - - errors: { - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c', - }, - nameAlreadyExists: { - message: 'Specified name already exists.', - code: 'NAME_ALREADY_EXISTS', - id: '4650348e-301c-499a-83c9-6aa988c66bc1', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - title: { type: 'string' }, - name: { type: 'string', minLength: 1 }, - summary: { type: 'string', nullable: true }, - content: { type: 'array', items: { - type: 'object', additionalProperties: true, - } }, - variables: { type: 'array', items: { - type: 'object', additionalProperties: true, - } }, - script: { type: 'string' }, - eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true }, - font: { type: 'string', enum: ['serif', 'sans-serif'], default: 'sans-serif' }, - alignCenter: { type: 'boolean', default: false }, - hideTitleWhenPinned: { type: 'boolean', default: false }, - }, - required: ['title', 'name', 'content', 'variables', 'script'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let eyeCatchingImage = null; - if (ps.eyeCatchingImageId != null) { - eyeCatchingImage = await DriveFiles.findOneBy({ - id: ps.eyeCatchingImageId, - userId: user.id, - }); - - if (eyeCatchingImage == null) { - throw new ApiError(meta.errors.noSuchFile); - } - } - - await Pages.findBy({ - userId: user.id, - name: ps.name, - }).then(result => { - if (result.length > 0) { - throw new ApiError(meta.errors.nameAlreadyExists); - } - }); - - const page = await Pages.insert(new Page({ - id: genId(), - createdAt: new Date(), - updatedAt: new Date(), - title: ps.title, - name: ps.name, - summary: ps.summary, - content: ps.content, - variables: ps.variables, - script: ps.script, - eyeCatchingImageId: eyeCatchingImage ? eyeCatchingImage.id : null, - userId: user.id, - visibility: 'public', - alignCenter: ps.alignCenter, - hideTitleWhenPinned: ps.hideTitleWhenPinned, - font: ps.font, - })).then(x => Pages.findOneByOrFail(x.identifiers[0])); - - return await Pages.pack(page); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/delete.ts b/packages/backend/src/server/api/endpoints/pages/delete.ts deleted file mode 100644 index a7708e658..000000000 --- a/packages/backend/src/server/api/endpoints/pages/delete.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Pages } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: true, - - kind: 'write:pages', - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: 'eb0c6e1d-d519-4764-9486-52a7e1c6392a', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '8b741b3e-2c22-44b3-a15f-29949aa1601e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['pageId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const page = await Pages.findOneBy({ id: ps.pageId }); - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - if (page.userId !== user.id) { - throw new ApiError(meta.errors.accessDenied); - } - - await Pages.delete(page.id); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/featured.ts b/packages/backend/src/server/api/endpoints/pages/featured.ts deleted file mode 100644 index 5a149a626..000000000 --- a/packages/backend/src/server/api/endpoints/pages/featured.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Pages } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Pages.createQueryBuilder('page') - .where('page.visibility = \'public\'') - .andWhere('page.likedCount > 0') - .orderBy('page.likedCount', 'DESC'); - - const pages = await query.take(10).getMany(); - - return await Pages.packMany(pages, me); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/like.ts b/packages/backend/src/server/api/endpoints/pages/like.ts deleted file mode 100644 index 269b539f7..000000000 --- a/packages/backend/src/server/api/endpoints/pages/like.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Pages, PageLikes } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: true, - - kind: 'write:page-likes', - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3', - }, - - yourPage: { - message: 'You cannot like your page.', - code: 'YOUR_PAGE', - id: '28800466-e6db-40f2-8fae-bf9e82aa92b8', - }, - - alreadyLiked: { - message: 'The page has already been liked.', - code: 'ALREADY_LIKED', - id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['pageId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const page = await Pages.findOneBy({ id: ps.pageId }); - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - - if (page.userId === user.id) { - throw new ApiError(meta.errors.yourPage); - } - - // if already liked - const exist = await PageLikes.findOneBy({ - pageId: page.id, - userId: user.id, - }); - - if (exist != null) { - throw new ApiError(meta.errors.alreadyLiked); - } - - // Create like - await PageLikes.insert({ - id: genId(), - createdAt: new Date(), - pageId: page.id, - userId: user.id, - }); - - Pages.increment({ id: page.id }, 'likedCount', 1); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/show.ts b/packages/backend/src/server/api/endpoints/pages/show.ts deleted file mode 100644 index 5d37e86b9..000000000 --- a/packages/backend/src/server/api/endpoints/pages/show.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { IsNull } from 'typeorm'; -import { Pages, Users } from '@/models/index.js'; -import { Page } from '@/models/entities/page.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: '222120c0-3ead-4528-811b-b96f233388d7', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - anyOf: [ - { - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['pageId'], - }, - { - properties: { - name: { type: 'string' }, - username: { type: 'string' }, - }, - required: ['name', 'username'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - let page: Page | null = null; - - if (ps.pageId) { - page = await Pages.findOneBy({ id: ps.pageId }); - } else if (ps.name && ps.username) { - const author = await Users.findOneBy({ - host: IsNull(), - usernameLower: ps.username.toLowerCase(), - }); - if (author) { - page = await Pages.findOneBy({ - name: ps.name, - userId: author.id, - }); - } - } - - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - - return await Pages.pack(page, user); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/unlike.ts b/packages/backend/src/server/api/endpoints/pages/unlike.ts deleted file mode 100644 index 6b3a2bec1..000000000 --- a/packages/backend/src/server/api/endpoints/pages/unlike.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Pages, PageLikes } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: true, - - kind: 'write:page-likes', - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: 'a0d41e20-1993-40bd-890e-f6e560ae648e', - }, - - notLiked: { - message: 'You have not liked that page.', - code: 'NOT_LIKED', - id: 'f5e586b0-ce93-4050-b0e3-7f31af5259ee', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - }, - required: ['pageId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const page = await Pages.findOneBy({ id: ps.pageId }); - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - - const exist = await PageLikes.findOneBy({ - pageId: page.id, - userId: user.id, - }); - - if (exist == null) { - throw new ApiError(meta.errors.notLiked); - } - - // Delete like - await PageLikes.delete(exist.id); - - Pages.decrement({ id: page.id }, 'likedCount', 1); -}); diff --git a/packages/backend/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts deleted file mode 100644 index d241f585a..000000000 --- a/packages/backend/src/server/api/endpoints/pages/update.ts +++ /dev/null @@ -1,116 +0,0 @@ -import ms from 'ms'; -import { Not } from 'typeorm'; -import { Pages, DriveFiles } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['pages'], - - requireCredential: true, - - kind: 'write:pages', - - limit: { - duration: ms('1hour'), - max: 300, - }, - - errors: { - noSuchPage: { - message: 'No such page.', - code: 'NO_SUCH_PAGE', - id: '21149b9e-3616-4778-9592-c4ce89f5a864', - }, - - accessDenied: { - message: 'Access denied.', - code: 'ACCESS_DENIED', - id: '3c15cd52-3b4b-4274-967d-6456fc4f792b', - }, - - noSuchFile: { - message: 'No such file.', - code: 'NO_SUCH_FILE', - id: 'cfc23c7c-3887-490e-af30-0ed576703c82', - }, - nameAlreadyExists: { - message: 'Specified name already exists.', - code: 'NAME_ALREADY_EXISTS', - id: '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - pageId: { type: 'string', format: 'misskey:id' }, - title: { type: 'string' }, - name: { type: 'string', minLength: 1 }, - summary: { type: 'string', nullable: true }, - content: { type: 'array', items: { - type: 'object', additionalProperties: true, - } }, - variables: { type: 'array', items: { - type: 'object', additionalProperties: true, - } }, - script: { type: 'string' }, - eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true }, - font: { type: 'string', enum: ['serif', 'sans-serif'] }, - alignCenter: { type: 'boolean' }, - hideTitleWhenPinned: { type: 'boolean' }, - }, - required: ['pageId', 'title', 'name', 'content', 'variables', 'script'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const page = await Pages.findOneBy({ id: ps.pageId }); - if (page == null) { - throw new ApiError(meta.errors.noSuchPage); - } - if (page.userId !== user.id) { - throw new ApiError(meta.errors.accessDenied); - } - - let eyeCatchingImage = null; - if (ps.eyeCatchingImageId != null) { - eyeCatchingImage = await DriveFiles.findOneBy({ - id: ps.eyeCatchingImageId, - userId: user.id, - }); - - if (eyeCatchingImage == null) { - throw new ApiError(meta.errors.noSuchFile); - } - } - - await Pages.findBy({ - id: Not(ps.pageId), - userId: user.id, - name: ps.name, - }).then(result => { - if (result.length > 0) { - throw new ApiError(meta.errors.nameAlreadyExists); - } - }); - - await Pages.update(page.id, { - updatedAt: new Date(), - title: ps.title, - name: ps.name === undefined ? page.name : ps.name, - summary: ps.name === undefined ? page.summary : ps.summary, - content: ps.content, - variables: ps.variables, - script: ps.script, - alignCenter: ps.alignCenter === undefined ? page.alignCenter : ps.alignCenter, - hideTitleWhenPinned: ps.hideTitleWhenPinned === undefined ? page.hideTitleWhenPinned : ps.hideTitleWhenPinned, - font: ps.font === undefined ? page.font : ps.font, - eyeCatchingImageId: ps.eyeCatchingImageId === null - ? null - : ps.eyeCatchingImageId === undefined - ? page.eyeCatchingImageId - : eyeCatchingImage!.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/ping.ts b/packages/backend/src/server/api/endpoints/ping.ts deleted file mode 100644 index 2891a0860..000000000 --- a/packages/backend/src/server/api/endpoints/ping.ts +++ /dev/null @@ -1,31 +0,0 @@ -import define from '../define.js'; - -export const meta = { - requireCredential: false, - - tags: ['meta'], - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - pong: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - return { - pong: Date.now(), - }; -}); diff --git a/packages/backend/src/server/api/endpoints/pinned-users.ts b/packages/backend/src/server/api/endpoints/pinned-users.ts deleted file mode 100644 index 41595b47d..000000000 --- a/packages/backend/src/server/api/endpoints/pinned-users.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { IsNull } from 'typeorm'; -import { Users } from '@/models/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import * as Acct from '@/misc/acct.js'; -import { User } from '@/models/entities/user.js'; -import define from '../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const meta = await fetchMeta(); - - const users = await Promise.all(meta.pinnedUsers.map(acct => Acct.parse(acct)).map(acct => Users.findOneBy({ - usernameLower: acct.username.toLowerCase(), - host: acct.host ?? IsNull(), - }))); - - return await Users.packMany(users.filter(x => x !== undefined) as User[], me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/promo/read.ts b/packages/backend/src/server/api/endpoints/promo/read.ts deleted file mode 100644 index c6a940c65..000000000 --- a/packages/backend/src/server/api/endpoints/promo/read.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { PromoReads } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getNote } from '../../common/getters.js'; - -export const meta = { - tags: ['notes'], - - requireCredential: true, - - errors: { - noSuchNote: { - message: 'No such note.', - code: 'NO_SUCH_NOTE', - id: 'd785b897-fcd3-4fe9-8fc3-b85c26e6c932', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - noteId: { type: 'string', format: 'misskey:id' }, - }, - required: ['noteId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const note = await getNote(ps.noteId).catch(e => { - if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); - throw e; - }); - - const exist = await PromoReads.findOneBy({ - noteId: note.id, - userId: user.id, - }); - - if (exist != null) { - return; - } - - await PromoReads.insert({ - id: genId(), - createdAt: new Date(), - noteId: note.id, - userId: user.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/request-reset-password.ts b/packages/backend/src/server/api/endpoints/request-reset-password.ts deleted file mode 100644 index 511a6bbb5..000000000 --- a/packages/backend/src/server/api/endpoints/request-reset-password.ts +++ /dev/null @@ -1,76 +0,0 @@ -import rndstr from 'rndstr'; -import ms from 'ms'; -import { IsNull } from 'typeorm'; -import { publishMainStream } from '@/services/stream.js'; -import config from '@/config/index.js'; -import { Users, UserProfiles, PasswordResetRequests } from '@/models/index.js'; -import { sendEmail } from '@/services/send-email.js'; -import { genId } from '@/misc/gen-id.js'; -import { ApiError } from '../error.js'; -import define from '../define.js'; - -export const meta = { - tags: ['reset password'], - - requireCredential: false, - - description: 'Request a users password to be reset.', - - limit: { - duration: ms('1hour'), - max: 3, - }, - - errors: { - - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - username: { type: 'string' }, - email: { type: 'string' }, - }, - required: ['username', 'email'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - const user = await Users.findOneBy({ - usernameLower: ps.username.toLowerCase(), - host: IsNull(), - }); - - // 合致するユーザーが登録されていなかったら無視 - if (user == null) { - return; - } - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // 合致するメアドが登録されていなかったら無視 - if (profile.email !== ps.email) { - return; - } - - // メアドが認証されていなかったら無視 - if (!profile.emailVerified) { - return; - } - - const token = rndstr('a-z0-9', 64); - - await PasswordResetRequests.insert({ - id: genId(), - createdAt: new Date(), - userId: profile.userId, - token, - }); - - const link = `${config.url}/reset-password/${token}`; - - sendEmail(ps.email, 'Password reset requested', - `To reset password, please click this link:
${link}`, - `To reset password, please click this link: ${link}`); -}); diff --git a/packages/backend/src/server/api/endpoints/reset-db.ts b/packages/backend/src/server/api/endpoints/reset-db.ts deleted file mode 100644 index 140f96d57..000000000 --- a/packages/backend/src/server/api/endpoints/reset-db.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { resetDb } from '@/db/postgre.js'; -import define from '../define.js'; -import { ApiError } from '../error.js'; - -export const meta = { - tags: ['non-productive'], - - requireCredential: false, - - description: 'Only available when running with NODE_ENV=testing. Reset the database and flush Redis.', - - errors: { - - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - if (process.env.NODE_ENV !== 'test') throw 'NODE_ENV is not a test'; - - await resetDb(); - - await new Promise(resolve => setTimeout(resolve, 1000)); -}); diff --git a/packages/backend/src/server/api/endpoints/reset-password.ts b/packages/backend/src/server/api/endpoints/reset-password.ts deleted file mode 100644 index 797169c2c..000000000 --- a/packages/backend/src/server/api/endpoints/reset-password.ts +++ /dev/null @@ -1,48 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { publishMainStream } from '@/services/stream.js'; -import { Users, UserProfiles, PasswordResetRequests } from '@/models/index.js'; -import define from '../define.js'; -import { ApiError } from '../error.js'; - -export const meta = { - tags: ['reset password'], - - requireCredential: false, - - description: 'Complete the password reset that was previously requested.', - - errors: { - - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - token: { type: 'string' }, - password: { type: 'string' }, - }, - required: ['token', 'password'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const req = await PasswordResetRequests.findOneByOrFail({ - token: ps.token, - }); - - // 発行してから30分以上経過していたら無効 - if (Date.now() - req.createdAt.getTime() > 1000 * 60 * 30) { - throw new Error(); // TODO - } - - // Generate hash of password - const salt = await bcrypt.genSalt(8); - const hash = await bcrypt.hash(ps.password, salt); - - await UserProfiles.update(req.userId, { - password: hash, - }); - - PasswordResetRequests.delete(req.id); -}); diff --git a/packages/backend/src/server/api/endpoints/server-info.ts b/packages/backend/src/server/api/endpoints/server-info.ts deleted file mode 100644 index 99f3730e9..000000000 --- a/packages/backend/src/server/api/endpoints/server-info.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as os from 'node:os'; -import si from 'systeminformation'; -import define from '../define.js'; - -export const meta = { - requireCredential: false, - - tags: ['meta'], -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const memStats = await si.mem(); - const fsStats = await si.fsSize(); - - return { - machine: os.hostname(), - cpu: { - model: os.cpus()[0].model, - cores: os.cpus().length, - }, - mem: { - total: memStats.total, - }, - fs: { - total: fsStats[0].size, - used: fsStats[0].used, - }, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts deleted file mode 100644 index cc94f8bf2..000000000 --- a/packages/backend/src/server/api/endpoints/stats.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Instances, NoteReactions, Notes, Users } from '@/models/index.js'; -import define from '../define.js'; -import { } from '@/services/chart/index.js'; -import { IsNull } from 'typeorm'; - -export const meta = { - requireCredential: false, - - tags: ['meta'], - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - notesCount: { - type: 'number', - optional: false, nullable: false, - }, - originalNotesCount: { - type: 'number', - optional: false, nullable: false, - }, - usersCount: { - type: 'number', - optional: false, nullable: false, - }, - originalUsersCount: { - type: 'number', - optional: false, nullable: false, - }, - instances: { - type: 'number', - optional: false, nullable: false, - }, - driveUsageLocal: { - type: 'number', - optional: false, nullable: false, - }, - driveUsageRemote: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { - const [ - notesCount, - originalNotesCount, - usersCount, - originalUsersCount, - reactionsCount, - //originalReactionsCount, - instances, - ] = await Promise.all([ - Notes.count({ cache: 3600000 }), // 1 hour - Notes.count({ where: { userHost: IsNull() }, cache: 3600000 }), - Users.count({ cache: 3600000 }), - Users.count({ where: { host: IsNull() }, cache: 3600000 }), - NoteReactions.count({ cache: 3600000 }), // 1 hour - //NoteReactions.count({ where: { userHost: IsNull() }, cache: 3600000 }), - Instances.count({ cache: 3600000 }), - ]); - - return { - notesCount, - originalNotesCount, - usersCount, - originalUsersCount, - reactionsCount, - //originalReactionsCount, - instances, - driveUsageLocal: 0, - driveUsageRemote: 0, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/sw/register.ts b/packages/backend/src/server/api/endpoints/sw/register.ts deleted file mode 100644 index 437f8874f..000000000 --- a/packages/backend/src/server/api/endpoints/sw/register.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { genId } from '@/misc/gen-id.js'; -import { SwSubscriptions } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - description: 'Register to receive push notifications.', - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - state: { - type: 'string', - optional: true, nullable: false, - enum: ['already-subscribed', 'subscribed'], - }, - key: { - type: 'string', - optional: false, nullable: true, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - endpoint: { type: 'string' }, - auth: { type: 'string' }, - publickey: { type: 'string' }, - }, - required: ['endpoint', 'auth', 'publickey'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // if already subscribed - const exist = await SwSubscriptions.findOneBy({ - userId: user.id, - endpoint: ps.endpoint, - auth: ps.auth, - publickey: ps.publickey, - }); - - const instance = await fetchMeta(true); - - if (exist != null) { - return { - state: 'already-subscribed' as const, - key: instance.swPublicKey, - }; - } - - await SwSubscriptions.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - endpoint: ps.endpoint, - auth: ps.auth, - publickey: ps.publickey, - }); - - return { - state: 'subscribed' as const, - key: instance.swPublicKey, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/sw/unregister.ts b/packages/backend/src/server/api/endpoints/sw/unregister.ts deleted file mode 100644 index c19e06b87..000000000 --- a/packages/backend/src/server/api/endpoints/sw/unregister.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { SwSubscriptions } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['account'], - - requireCredential: true, - - description: 'Unregister from receiving push notifications.', -} as const; - -export const paramDef = { - type: 'object', - properties: { - endpoint: { type: 'string' }, - }, - required: ['endpoint'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - await SwSubscriptions.delete({ - userId: user.id, - endpoint: ps.endpoint, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/test.ts b/packages/backend/src/server/api/endpoints/test.ts deleted file mode 100644 index 9949237a7..000000000 --- a/packages/backend/src/server/api/endpoints/test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import define from '../define.js'; - -export const meta = { - tags: ['non-productive'], - - description: 'Endpoint for testing input validation.', - - requireCredential: false, -} as const; - -export const paramDef = { - type: 'object', - properties: { - required: { type: 'boolean' }, - string: { type: 'string' }, - default: { type: 'string', default: 'hello' }, - nullableDefault: { type: 'string', nullable: true, default: 'hello' }, - id: { type: 'string', format: 'misskey:id' }, - }, - required: ['required'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - return ps; -}); diff --git a/packages/backend/src/server/api/endpoints/username/available.ts b/packages/backend/src/server/api/endpoints/username/available.ts deleted file mode 100644 index 3e41aeaed..000000000 --- a/packages/backend/src/server/api/endpoints/username/available.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { IsNull } from 'typeorm'; -import { Users, UsedUsernames } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - available: { - type: 'boolean', - optional: false, nullable: false, - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - username: Users.localUsernameSchema, - }, - required: ['username'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps) => { - // Get exist - const exist = await Users.countBy({ - host: IsNull(), - usernameLower: ps.username.toLowerCase(), - }); - - const exist2 = await UsedUsernames.countBy({ username: ps.username.toLowerCase() }); - - return { - available: exist === 0 && exist2 === 0, - }; -}); diff --git a/packages/backend/src/server/api/endpoints/users.ts b/packages/backend/src/server/api/endpoints/users.ts deleted file mode 100644 index 3a8211374..000000000 --- a/packages/backend/src/server/api/endpoints/users.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Users } from '@/models/index.js'; -import define from '../define.js'; -import { generateMutedUserQueryForUsers } from '../common/generate-muted-user-query.js'; -import { generateBlockQueryForUsers } from '../common/generate-block-query.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - sort: { type: 'string', enum: ['+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt'] }, - state: { type: 'string', enum: ['all', 'admin', 'moderator', 'adminOrModerator', 'alive'], default: 'all' }, - origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: 'local' }, - hostname: { - type: 'string', - nullable: true, - default: null, - description: 'The local host is represented with `null`.', - }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Users.createQueryBuilder('user'); - query.where('user.isExplorable = TRUE'); - - switch (ps.state) { - case 'admin': query.andWhere('user.isAdmin = TRUE'); break; - case 'moderator': query.andWhere('user.isModerator = TRUE'); break; - case 'adminOrModerator': query.andWhere('user.isAdmin = TRUE OR user.isModerator = TRUE'); break; - case 'alive': query.andWhere('user.updatedAt > :date', { date: new Date(Date.now() - 1000 * 60 * 60 * 24 * 5) }); break; - } - - switch (ps.origin) { - case 'local': query.andWhere('user.host IS NULL'); break; - case 'remote': query.andWhere('user.host IS NOT NULL'); break; - } - - if (ps.hostname) { - query.andWhere('user.host = :hostname', { hostname: ps.hostname.toLowerCase() }); - } - - switch (ps.sort) { - case '+follower': query.orderBy('user.followersCount', 'DESC'); break; - case '-follower': query.orderBy('user.followersCount', 'ASC'); break; - case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; - case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; - case '+updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'DESC'); break; - case '-updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'ASC'); break; - default: query.orderBy('user.id', 'ASC'); break; - } - - if (me) generateMutedUserQueryForUsers(query, me); - if (me) generateBlockQueryForUsers(query, me); - - query.take(ps.limit); - query.skip(ps.offset); - - const users = await query.getMany(); - - return await Users.packMany(users, me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts deleted file mode 100644 index 09fdf27c2..000000000 --- a/packages/backend/src/server/api/endpoints/users/clips.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Clips } from '@/models/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['users', 'clips'], - - description: 'Show all clips this user owns.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Clip', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Clips.createQueryBuilder('clip'), ps.sinceId, ps.untilId) - .andWhere('clip.userId = :userId', { userId: ps.userId }) - .andWhere('clip.isPublic = true'); - - const clips = await query - .take(ps.limit) - .getMany(); - - return await Clips.packMany(clips); -}); diff --git a/packages/backend/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts deleted file mode 100644 index 7f9f98076..000000000 --- a/packages/backend/src/server/api/endpoints/users/followers.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { IsNull } from 'typeorm'; -import { Users, Followings, UserProfiles } from '@/models/index.js'; -import { toPunyNullable } from '@/misc/convert-host.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Show everyone that follows this user.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Following', - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '27fa5435-88ab-43de-9360-387de88727cd', - }, - - forbidden: { - message: 'Forbidden.', - code: 'FORBIDDEN', - id: '3c6a84db-d619-26af-ca14-06232a21df8a', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - username: { type: 'string' }, - host: { - type: 'string', - nullable: true, - description: 'The local host is represented with `null`.', - }, - }, - required: ['username', 'host'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy(ps.userId != null - ? { id: ps.userId } - : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) ?? IsNull() }); - - if (user == null) { - throw new ApiError(meta.errors.noSuchUser); - } - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (profile.ffVisibility === 'private') { - if (me == null || (me.id !== user.id)) { - throw new ApiError(meta.errors.forbidden); - } - } else if (profile.ffVisibility === 'followers') { - if (me == null) { - throw new ApiError(meta.errors.forbidden); - } else if (me.id !== user.id) { - const following = await Followings.findOneBy({ - followeeId: user.id, - followerId: me.id, - }); - if (following == null) { - throw new ApiError(meta.errors.forbidden); - } - } - } - - const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) - .andWhere('following.followeeId = :userId', { userId: user.id }) - .innerJoinAndSelect('following.follower', 'follower'); - - const followings = await query - .take(ps.limit) - .getMany(); - - return await Followings.packMany(followings, me, { populateFollower: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts deleted file mode 100644 index 0aaa810f7..000000000 --- a/packages/backend/src/server/api/endpoints/users/following.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { IsNull } from 'typeorm'; -import { Users, Followings, UserProfiles } from '@/models/index.js'; -import { toPunyNullable } from '@/misc/convert-host.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Show everyone that this user is following.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Following', - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '63e4aba4-4156-4e53-be25-c9559e42d71b', - }, - - forbidden: { - message: 'Forbidden.', - code: 'FORBIDDEN', - id: 'f6cdb0df-c19f-ec5c-7dbb-0ba84a1f92ba', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - username: { type: 'string' }, - host: { - type: 'string', - nullable: true, - description: 'The local host is represented with `null`.', - }, - }, - required: ['username', 'host'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy(ps.userId != null - ? { id: ps.userId } - : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) ?? IsNull() }); - - if (user == null) { - throw new ApiError(meta.errors.noSuchUser); - } - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - if (profile.ffVisibility === 'private') { - if (me == null || (me.id !== user.id)) { - throw new ApiError(meta.errors.forbidden); - } - } else if (profile.ffVisibility === 'followers') { - if (me == null) { - throw new ApiError(meta.errors.forbidden); - } else if (me.id !== user.id) { - const following = await Followings.findOneBy({ - followeeId: user.id, - followerId: me.id, - }); - if (following == null) { - throw new ApiError(meta.errors.forbidden); - } - } - } - - const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) - .andWhere('following.followerId = :userId', { userId: user.id }) - .innerJoinAndSelect('following.followee', 'followee'); - - const followings = await query - .take(ps.limit) - .getMany(); - - return await Followings.packMany(followings, me, { populateFollowee: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts deleted file mode 100644 index 35bf2df59..000000000 --- a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts +++ /dev/null @@ -1,42 +0,0 @@ -import define from '../../../define.js'; -import { GalleryPosts } from '@/models/index.js'; -import { makePaginationQuery } from '../../../common/make-pagination-query.js'; - -export const meta = { - tags: ['users', 'gallery'], - - description: 'Show all gallery posts by the given user.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'GalleryPost', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(GalleryPosts.createQueryBuilder('post'), ps.sinceId, ps.untilId) - .andWhere(`post.userId = :userId`, { userId: ps.userId }); - - const posts = await query - .take(ps.limit) - .getMany(); - - return await GalleryPosts.packMany(posts, user); -}); diff --git a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts deleted file mode 100644 index 56965d306..000000000 --- a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Not, In, IsNull } from 'typeorm'; -import { maximum } from '@/prelude/array.js'; -import { Notes, Users } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Get a list of other users that the specified user frequently replies to.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - properties: { - user: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - weight: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'e6965129-7b2a-40a4-bae2-cd84cd434822', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Lookup user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Fetch recent notes - const recentNotes = await Notes.find({ - where: { - userId: user.id, - replyId: Not(IsNull()), - }, - order: { - id: -1, - }, - take: 1000, - select: ['replyId'], - }); - - // 投稿が少なかったら中断 - if (recentNotes.length === 0) { - return []; - } - - // TODO ミュートを考慮 - const replyTargetNotes = await Notes.find({ - where: { - id: In(recentNotes.map(p => p.replyId)), - }, - select: ['userId'], - }); - - const repliedUsers: any = {}; - - // Extract replies from recent notes - for (const userId of replyTargetNotes.map(x => x.userId.toString())) { - if (repliedUsers[userId]) { - repliedUsers[userId]++; - } else { - repliedUsers[userId] = 1; - } - } - - // Calc peak - const peak = maximum(Object.values(repliedUsers)); - - // Sort replies by frequency - const repliedUsersSorted = Object.keys(repliedUsers).sort((a, b) => repliedUsers[b] - repliedUsers[a]); - - // Extract top replied users - const topRepliedUsers = repliedUsersSorted.slice(0, ps.limit); - - // Make replies object (includes weights) - const repliesObj = await Promise.all(topRepliedUsers.map(async (user) => ({ - user: await Users.pack(user, me, { detail: true }), - weight: repliedUsers[user] / peak, - }))); - - return repliesObj; -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/create.ts b/packages/backend/src/server/api/endpoints/users/groups/create.ts deleted file mode 100644 index 4a6362a3c..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/create.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { UserGroupJoining } from '@/models/entities/user-group-joining.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['groups'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Create a new group.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const userGroup = await UserGroups.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - } as UserGroup).then(x => UserGroups.findOneByOrFail(x.identifiers[0])); - - // Push the owner - await UserGroupJoinings.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - userGroupId: userGroup.id, - } as UserGroupJoining); - - return await UserGroups.pack(userGroup); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/delete.ts b/packages/backend/src/server/api/endpoints/users/groups/delete.ts deleted file mode 100644 index 2ff1f9aec..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/delete.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { UserGroups } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['groups'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Delete an existing group.', - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '63dbd64c-cd77-413f-8e08-61781e210b38', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - userId: user.id, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - await UserGroups.delete(userGroup.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts deleted file mode 100644 index 220fff5f3..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { UserGroupJoinings, UserGroupInvitations } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { UserGroupJoining } from '@/models/entities/user-group-joining.js'; -import { ApiError } from '../../../../error.js'; -import define from '../../../../define.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Join a group the authenticated user has been invited to.', - - errors: { - noSuchInvitation: { - message: 'No such invitation.', - code: 'NO_SUCH_INVITATION', - id: '98c11eca-c890-4f42-9806-c8c8303ebb5e', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - invitationId: { type: 'string', format: 'misskey:id' }, - }, - required: ['invitationId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch the invitation - const invitation = await UserGroupInvitations.findOneBy({ - id: ps.invitationId, - }); - - if (invitation == null) { - throw new ApiError(meta.errors.noSuchInvitation); - } - - if (invitation.userId !== user.id) { - throw new ApiError(meta.errors.noSuchInvitation); - } - - // Push the user - await UserGroupJoinings.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - userGroupId: invitation.userGroupId, - } as UserGroupJoining); - - UserGroupInvitations.delete(invitation.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts deleted file mode 100644 index 8d1d3db73..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { UserGroupInvitations } from '@/models/index.js'; -import define from '../../../../define.js'; -import { ApiError } from '../../../../error.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Delete an existing group invitation for the authenticated user without joining the group.', - - errors: { - noSuchInvitation: { - message: 'No such invitation.', - code: 'NO_SUCH_INVITATION', - id: 'ad7471d4-2cd9-44b4-ac68-e7136b4ce656', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - invitationId: { type: 'string', format: 'misskey:id' }, - }, - required: ['invitationId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch the invitation - const invitation = await UserGroupInvitations.findOneBy({ - id: ps.invitationId, - }); - - if (invitation == null) { - throw new ApiError(meta.errors.noSuchInvitation); - } - - if (invitation.userId !== user.id) { - throw new ApiError(meta.errors.noSuchInvitation); - } - - await UserGroupInvitations.delete(invitation.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/invite.ts b/packages/backend/src/server/api/endpoints/users/groups/invite.ts deleted file mode 100644 index 1a8d320f3..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/invite.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { UserGroupInvitation } from '@/models/entities/user-group-invitation.js'; -import { createNotification } from '@/services/create-notification.js'; -import { getUser } from '../../../common/getters.js'; -import { ApiError } from '../../../error.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Invite a user to an existing group.', - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '583f8bc0-8eee-4b78-9299-1e14fc91e409', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'da52de61-002c-475b-90e1-ba64f9cf13a8', - }, - - alreadyAdded: { - message: 'That user has already been added to that group.', - code: 'ALREADY_ADDED', - id: '7e35c6a0-39b2-4488-aea6-6ee20bd5da2c', - }, - - alreadyInvited: { - message: 'That user has already been invited to that group.', - code: 'ALREADY_INVITED', - id: 'ee0f58b4-b529-4d13-b761-b9a3e69f97e6', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - userId: me.id, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - // Fetch the user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - const joining = await UserGroupJoinings.findOneBy({ - userGroupId: userGroup.id, - userId: user.id, - }); - - if (joining) { - throw new ApiError(meta.errors.alreadyAdded); - } - - const existInvitation = await UserGroupInvitations.findOneBy({ - userGroupId: userGroup.id, - userId: user.id, - }); - - if (existInvitation) { - throw new ApiError(meta.errors.alreadyInvited); - } - - const invitation = await UserGroupInvitations.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - userGroupId: userGroup.id, - } as UserGroupInvitation).then(x => UserGroupInvitations.findOneByOrFail(x.identifiers[0])); - - // 通知を作成 - createNotification(user.id, 'groupInvited', { - notifierId: me.id, - userGroupInvitationId: invitation.id, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/joined.ts b/packages/backend/src/server/api/endpoints/users/groups/joined.ts deleted file mode 100644 index 16c6e544e..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/joined.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Not, In } from 'typeorm'; -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['groups', 'account'], - - requireCredential: true, - - kind: 'read:user-groups', - - description: 'List the groups that the authenticated user is a member of.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const ownedGroups = await UserGroups.findBy({ - userId: me.id, - }); - - const joinings = await UserGroupJoinings.findBy({ - userId: me.id, - ...(ownedGroups.length > 0 ? { - userGroupId: Not(In(ownedGroups.map(x => x.id))), - } : {}), - }); - - return await Promise.all(joinings.map(x => UserGroups.pack(x.userGroupId))); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/leave.ts b/packages/backend/src/server/api/endpoints/users/groups/leave.ts deleted file mode 100644 index 83dc757db..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/leave.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Leave a group. The owner of a group can not leave. They must transfer ownership or delete the group instead.', - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '62780270-1f67-5dc0-daca-3eb510612e31', - }, - - youAreOwner: { - message: 'Your are the owner.', - code: 'YOU_ARE_OWNER', - id: 'b6d6e0c2-ef8a-9bb8-653d-79f4a3107c69', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - if (me.id === userGroup.userId) { - throw new ApiError(meta.errors.youAreOwner); - } - - await UserGroupJoinings.delete({ userGroupId: userGroup.id, userId: me.id }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/owned.ts b/packages/backend/src/server/api/endpoints/users/groups/owned.ts deleted file mode 100644 index d77cf1a52..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/owned.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { UserGroups } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['groups', 'account'], - - requireCredential: true, - - kind: 'read:user-groups', - - description: 'List the groups that the authenticated user is the owner of.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const userGroups = await UserGroups.findBy({ - userId: me.id, - }); - - return await Promise.all(userGroups.map(x => UserGroups.pack(x))); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/pull.ts b/packages/backend/src/server/api/endpoints/users/groups/pull.ts deleted file mode 100644 index ba67a1e5c..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/pull.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Removes a specified user from a group. The owner can not be removed.', - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '4662487c-05b1-4b78-86e5-fd46998aba74', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '0b5cc374-3681-41da-861e-8bc1146f7a55', - }, - - isOwner: { - message: 'The user is the owner.', - code: 'IS_OWNER', - id: '1546eed5-4414-4dea-81c1-b0aec4f6d2af', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - userId: me.id, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - // Fetch the user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - if (user.id === userGroup.userId) { - throw new ApiError(meta.errors.isOwner); - } - - // Pull the user - await UserGroupJoinings.delete({ userGroupId: userGroup.id, userId: user.id }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/show.ts b/packages/backend/src/server/api/endpoints/users/groups/show.ts deleted file mode 100644 index 21e3d9da2..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/show.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['groups', 'account'], - - requireCredential: true, - - kind: 'read:user-groups', - - description: 'Show the properties of a group.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: 'ea04751e-9b7e-487b-a509-330fb6bd6b9b', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - const joining = await UserGroupJoinings.findOneBy({ - userId: me.id, - userGroupId: userGroup.id, - }); - - if (joining == null && userGroup.userId !== me.id) { - throw new ApiError(meta.errors.noSuchGroup); - } - - return await UserGroups.pack(userGroup); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/transfer.ts b/packages/backend/src/server/api/endpoints/users/groups/transfer.ts deleted file mode 100644 index 6456e70dd..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/transfer.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { UserGroups, UserGroupJoinings } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['groups', 'users'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Transfer ownership of a group from the authenticated user to another user.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '8e31d36b-2f88-4ccd-a438-e2d78a9162db', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '711f7ebb-bbb9-4dfa-b540-b27809fed5e9', - }, - - noSuchGroupMember: { - message: 'No such group member.', - code: 'NO_SUCH_GROUP_MEMBER', - id: 'd31bebee-196d-42c2-9a3e-9474d4be6cc4', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - userId: me.id, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - // Fetch the user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - const joining = await UserGroupJoinings.findOneBy({ - userGroupId: userGroup.id, - userId: user.id, - }); - - if (joining == null) { - throw new ApiError(meta.errors.noSuchGroupMember); - } - - await UserGroups.update(userGroup.id, { - userId: ps.userId, - }); - - return await UserGroups.pack(userGroup.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/groups/update.ts b/packages/backend/src/server/api/endpoints/users/groups/update.ts deleted file mode 100644 index 0a96165fc..000000000 --- a/packages/backend/src/server/api/endpoints/users/groups/update.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { UserGroups } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['groups'], - - requireCredential: true, - - kind: 'write:user-groups', - - description: 'Update the properties of a group.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserGroup', - }, - - errors: { - noSuchGroup: { - message: 'No such group.', - code: 'NO_SUCH_GROUP', - id: '9081cda3-7a9e-4fac-a6ce-908d70f282f6', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 100 }, - }, - required: ['groupId', 'name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the group - const userGroup = await UserGroups.findOneBy({ - id: ps.groupId, - userId: me.id, - }); - - if (userGroup == null) { - throw new ApiError(meta.errors.noSuchGroup); - } - - await UserGroups.update(userGroup.id, { - name: ps.name, - }); - - return await UserGroups.pack(userGroup.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts deleted file mode 100644 index 783e63f5d..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/create.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { UserLists } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { UserList } from '@/models/entities/user-list.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['lists'], - - requireCredential: true, - - kind: 'write:account', - - description: 'Create a new list of users.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserList', - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - name: { type: 'string', minLength: 1, maxLength: 100 }, - }, - required: ['name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const userList = await UserLists.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - name: ps.name, - } as UserList).then(x => UserLists.findOneByOrFail(x.identifiers[0])); - - return await UserLists.pack(userList); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/delete.ts b/packages/backend/src/server/api/endpoints/users/lists/delete.ts deleted file mode 100644 index 5a7613c98..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/delete.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { UserLists } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['lists'], - - requireCredential: true, - - kind: 'write:account', - - description: 'Delete an existing list of users.', - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '78436795-db79-42f5-b1e2-55ea2cf19166', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - }, - required: ['listId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const userList = await UserLists.findOneBy({ - id: ps.listId, - userId: user.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchList); - } - - await UserLists.delete(userList.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/list.ts b/packages/backend/src/server/api/endpoints/users/lists/list.ts deleted file mode 100644 index 889052fa3..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/list.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { UserLists } from '@/models/index.js'; -import define from '../../../define.js'; - -export const meta = { - tags: ['lists', 'account'], - - requireCredential: true, - - kind: 'read:account', - - description: 'Show all lists that the authenticated user has created.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserList', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const userLists = await UserLists.findBy({ - userId: me.id, - }); - - return await Promise.all(userLists.map(x => UserLists.pack(x))); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/pull.ts b/packages/backend/src/server/api/endpoints/users/lists/pull.ts deleted file mode 100644 index d3d1d6555..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/pull.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { publishUserListStream } from '@/services/stream.js'; -import { UserLists, UserListJoinings, Users } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['lists', 'users'], - - requireCredential: true, - - kind: 'write:account', - - description: 'Remove a user from a list.', - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '7f44670e-ab16-43b8-b4c1-ccd2ee89cc02', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '588e7f72-c744-4a61-b180-d354e912bda2', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['listId', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the list - const userList = await UserLists.findOneBy({ - id: ps.listId, - userId: me.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchList); - } - - // Fetch the user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Pull the user - await UserListJoinings.delete({ userListId: userList.id, userId: user.id }); - - publishUserListStream(userList.id, 'userRemoved', await Users.pack(user)); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/push.ts b/packages/backend/src/server/api/endpoints/users/lists/push.ts deleted file mode 100644 index 12b7b8634..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/push.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { pushUserToUserList } from '@/services/user-list/push.js'; -import { UserLists, UserListJoinings, Blockings } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; -import { getUser } from '../../../common/getters.js'; - -export const meta = { - tags: ['lists', 'users'], - - requireCredential: true, - - kind: 'write:account', - - description: 'Add a user to an existing list.', - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '2214501d-ac96-4049-b717-91e42272a711', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: 'a89abd3d-f0bc-4cce-beb1-2f446f4f1e6a', - }, - - alreadyAdded: { - message: 'That user has already been added to that list.', - code: 'ALREADY_ADDED', - id: '1de7c884-1595-49e9-857e-61f12f4d4fc5', - }, - - youHaveBeenBlocked: { - message: 'You cannot push this user because you have been blocked by this user.', - code: 'YOU_HAVE_BEEN_BLOCKED', - id: '990232c5-3f9d-4d83-9f3f-ef27b6332a4b', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['listId', 'userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the list - const userList = await UserLists.findOneBy({ - id: ps.listId, - userId: me.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchList); - } - - // Fetch the user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - // Check blocking - if (user.id !== me.id) { - const block = await Blockings.findOneBy({ - blockerId: user.id, - blockeeId: me.id, - }); - if (block) { - throw new ApiError(meta.errors.youHaveBeenBlocked); - } - } - - const exist = await UserListJoinings.findOneBy({ - userListId: userList.id, - userId: user.id, - }); - - if (exist) { - throw new ApiError(meta.errors.alreadyAdded); - } - - // Push the user - await pushUserToUserList(user, userList); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/show.ts b/packages/backend/src/server/api/endpoints/users/lists/show.ts deleted file mode 100644 index fd0612f73..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/show.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { UserLists } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['lists', 'account'], - - requireCredential: true, - - kind: 'read:account', - - description: 'Show the properties of a list.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserList', - }, - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - }, - required: ['listId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Fetch the list - const userList = await UserLists.findOneBy({ - id: ps.listId, - userId: me.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchList); - } - - return await UserLists.pack(userList); -}); diff --git a/packages/backend/src/server/api/endpoints/users/lists/update.ts b/packages/backend/src/server/api/endpoints/users/lists/update.ts deleted file mode 100644 index 65e708b95..000000000 --- a/packages/backend/src/server/api/endpoints/users/lists/update.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { UserLists } from '@/models/index.js'; -import define from '../../../define.js'; -import { ApiError } from '../../../error.js'; - -export const meta = { - tags: ['lists'], - - requireCredential: true, - - kind: 'write:account', - - description: 'Update the properties of a list.', - - res: { - type: 'object', - optional: false, nullable: false, - ref: 'UserList', - }, - - errors: { - noSuchList: { - message: 'No such list.', - code: 'NO_SUCH_LIST', - id: '796666fe-3dff-4d39-becb-8a5932c1d5b7', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - listId: { type: 'string', format: 'misskey:id' }, - name: { type: 'string', minLength: 1, maxLength: 100 }, - }, - required: ['listId', 'name'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - // Fetch the list - const userList = await UserLists.findOneBy({ - id: ps.listId, - userId: user.id, - }); - - if (userList == null) { - throw new ApiError(meta.errors.noSuchList); - } - - await UserLists.update(userList.id, { - name: ps.name, - }); - - return await UserLists.pack(userList.id); -}); diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts deleted file mode 100644 index 9fa56fe83..000000000 --- a/packages/backend/src/server/api/endpoints/users/notes.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Notes } from '@/models/index.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; -import { getUser } from '../../common/getters.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['users', 'notes'], - - description: 'Show all notes that this user created.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Note', - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '27e494ba-2ac2-48e8-893b-10d4d8c2387b', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - includeReplies: { type: 'boolean', default: true }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - includeMyRenotes: { type: 'boolean', default: true }, - withFiles: { type: 'boolean', default: false }, - fileType: { type: 'array', items: { - type: 'string', - } }, - excludeNsfw: { type: 'boolean', default: false }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Lookup user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - //#region Construct query - const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere('note.userId = :userId', { userId: user.id }) - .innerJoinAndSelect('note.user', 'user') - .leftJoinAndSelect('user.avatar', 'avatar') - .leftJoinAndSelect('user.banner', 'banner') - .leftJoinAndSelect('note.reply', 'reply') - .leftJoinAndSelect('note.renote', 'renote') - .leftJoinAndSelect('reply.user', 'replyUser') - .leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar') - .leftJoinAndSelect('replyUser.banner', 'replyUserBanner') - .leftJoinAndSelect('renote.user', 'renoteUser') - .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') - .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - - generateVisibilityQuery(query, me); - if (me) { - generateMutedUserQuery(query, me, user); - generateBlockedUserQuery(query, me); - } - - if (ps.withFiles) { - query.andWhere('note.fileIds != \'{}\''); - } - - if (ps.fileType != null) { - query.andWhere('note.fileIds != \'{}\''); - query.andWhere(new Brackets(qb => { - for (const type of ps.fileType!) { - const i = ps.fileType!.indexOf(type); - qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type }); - } - })); - - if (ps.excludeNsfw) { - query.andWhere('note.cw IS NULL'); - query.andWhere('0 = (SELECT COUNT(*) FROM drive_file df WHERE df.id = ANY(note."fileIds") AND df."isSensitive" = TRUE)'); - } - } - - if (!ps.includeReplies) { - query.andWhere('note.replyId IS NULL'); - } - - if (ps.includeMyRenotes === false) { - query.andWhere(new Brackets(qb => { - qb.orWhere('note.userId != :userId', { userId: user.id }); - qb.orWhere('note.renoteId IS NULL'); - qb.orWhere('note.text IS NOT NULL'); - qb.orWhere('note.fileIds != \'{}\''); - qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); - })); - } - - //#endregion - - const timeline = await query.take(ps.limit).getMany(); - - return await Notes.packMany(timeline, me); -}); diff --git a/packages/backend/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts deleted file mode 100644 index b1d28af84..000000000 --- a/packages/backend/src/server/api/endpoints/users/pages.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Pages } from '@/models/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; - -export const meta = { - tags: ['users', 'pages'], - - description: 'Show all pages this user created.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'Page', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, user) => { - const query = makePaginationQuery(Pages.createQueryBuilder('page'), ps.sinceId, ps.untilId) - .andWhere('page.userId = :userId', { userId: ps.userId }) - .andWhere('page.visibility = \'public\''); - - const pages = await query - .take(ps.limit) - .getMany(); - - return await Pages.packMany(pages); -}); diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts deleted file mode 100644 index 9668bd21b..000000000 --- a/packages/backend/src/server/api/endpoints/users/reactions.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { NoteReactions, UserProfiles } from '@/models/index.js'; -import define from '../../define.js'; -import { makePaginationQuery } from '../../common/make-pagination-query.js'; -import { generateVisibilityQuery } from '../../common/generate-visibility-query.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['users', 'reactions'], - - requireCredential: false, - - description: 'Show all reactions this user made.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'NoteReaction', - }, - }, - - errors: { - reactionsNotPublic: { - message: 'Reactions of the user is not public.', - code: 'REACTIONS_NOT_PUBLIC', - id: '673a7dd2-6924-1093-e0c0-e68456ceae5c', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - sinceId: { type: 'string', format: 'misskey:id' }, - untilId: { type: 'string', format: 'misskey:id' }, - sinceDate: { type: 'integer' }, - untilDate: { type: 'integer' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const profile = await UserProfiles.findOneByOrFail({ userId: ps.userId }); - - if (me == null || (me.id !== ps.userId && !profile.publicReactions)) { - throw new ApiError(meta.errors.reactionsNotPublic); - } - - const query = makePaginationQuery(NoteReactions.createQueryBuilder('reaction'), - ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) - .andWhere('reaction.userId = :userId', { userId: ps.userId }) - .leftJoinAndSelect('reaction.note', 'note'); - - generateVisibilityQuery(query, me); - - const reactions = await query - .take(ps.limit) - .getMany(); - - return await Promise.all(reactions.map(reaction => NoteReactions.pack(reaction, me, { withNote: true }))); -}); diff --git a/packages/backend/src/server/api/endpoints/users/recommendation.ts b/packages/backend/src/server/api/endpoints/users/recommendation.ts deleted file mode 100644 index e7654e171..000000000 --- a/packages/backend/src/server/api/endpoints/users/recommendation.ts +++ /dev/null @@ -1,62 +0,0 @@ -import ms from 'ms'; -import { Users, Followings } from '@/models/index.js'; -import define from '../../define.js'; -import { generateMutedUserQueryForUsers } from '../../common/generate-muted-user-query.js'; -import { generateBlockedUserQuery, generateBlockQueryForUsers } from '../../common/generate-block-query.js'; - -export const meta = { - tags: ['users'], - - requireCredential: true, - - kind: 'read:account', - - description: 'Show users that the authenticated user might be interested to follow.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'UserDetailed', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - offset: { type: 'integer', default: 0 }, - }, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const query = Users.createQueryBuilder('user') - .where('user.isLocked = FALSE') - .andWhere('user.isExplorable = TRUE') - .andWhere('user.host IS NULL') - .andWhere('user.updatedAt >= :date', { date: new Date(Date.now() - ms('7days')) }) - .andWhere('user.id != :meId', { meId: me.id }) - .orderBy('user.followersCount', 'DESC'); - - generateMutedUserQueryForUsers(query, me); - generateBlockQueryForUsers(query, me); - generateBlockedUserQuery(query, me); - - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: me.id }); - - query - .andWhere(`user.id NOT IN (${ followingQuery.getQuery() })`); - - query.setParameters(followingQuery.getParameters()); - - const users = await query.take(ps.limit).skip(ps.offset).getMany(); - - return await Users.packMany(users, me, { detail: true }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/relation.ts b/packages/backend/src/server/api/endpoints/users/relation.ts deleted file mode 100644 index 233a6a90b..000000000 --- a/packages/backend/src/server/api/endpoints/users/relation.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { Users } from '@/models/index.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: true, - - description: 'Show the different kinds of relations between the authenticated user and the specified user(s).', - - res: { - optional: false, nullable: false, - oneOf: [ - { - type: 'object', - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - isFollowing: { - type: 'boolean', - optional: false, nullable: false, - }, - hasPendingFollowRequestFromYou: { - type: 'boolean', - optional: false, nullable: false, - }, - hasPendingFollowRequestToYou: { - type: 'boolean', - optional: false, nullable: false, - }, - isFollowed: { - type: 'boolean', - optional: false, nullable: false, - }, - isBlocking: { - type: 'boolean', - optional: false, nullable: false, - }, - isBlocked: { - type: 'boolean', - optional: false, nullable: false, - }, - isMuted: { - type: 'boolean', - optional: false, nullable: false, - }, - }, - }, - { - type: 'array', - items: { - type: 'object', - optional: false, nullable: false, - properties: { - id: { - type: 'string', - optional: false, nullable: false, - format: 'id', - }, - isFollowing: { - type: 'boolean', - optional: false, nullable: false, - }, - hasPendingFollowRequestFromYou: { - type: 'boolean', - optional: false, nullable: false, - }, - hasPendingFollowRequestToYou: { - type: 'boolean', - optional: false, nullable: false, - }, - isFollowed: { - type: 'boolean', - optional: false, nullable: false, - }, - isBlocking: { - type: 'boolean', - optional: false, nullable: false, - }, - isBlocked: { - type: 'boolean', - optional: false, nullable: false, - }, - isMuted: { - type: 'boolean', - optional: false, nullable: false, - }, - }, - }, - }, - ], - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { - anyOf: [ - { type: 'string', format: 'misskey:id' }, - { - type: 'array', - items: { type: 'string', format: 'misskey:id' }, - }, - ], - }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const ids = Array.isArray(ps.userId) ? ps.userId : [ps.userId]; - - const relations = await Promise.all(ids.map(id => Users.getRelation(me.id, id))); - - return Array.isArray(ps.userId) ? relations : relations[0]; -}); diff --git a/packages/backend/src/server/api/endpoints/users/report-abuse.ts b/packages/backend/src/server/api/endpoints/users/report-abuse.ts deleted file mode 100644 index a9987eafa..000000000 --- a/packages/backend/src/server/api/endpoints/users/report-abuse.ts +++ /dev/null @@ -1,100 +0,0 @@ -import * as sanitizeHtml from 'sanitize-html'; -import { publishAdminStream } from '@/services/stream.js'; -import { AbuseUserReports, Users } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { sendEmail } from '@/services/send-email.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { getUser } from '../../common/getters.js'; -import { ApiError } from '../../error.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: true, - - description: 'File a report.', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '1acefcb5-0959-43fd-9685-b48305736cb5', - }, - - cannotReportYourself: { - message: 'Cannot report yourself.', - code: 'CANNOT_REPORT_YOURSELF', - id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f', - }, - - cannotReportAdmin: { - message: 'Cannot report the admin.', - code: 'CANNOT_REPORT_THE_ADMIN', - id: '35e166f5-05fb-4f87-a2d5-adb42676d48f', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - comment: { type: 'string', minLength: 1, maxLength: 2048 }, - }, - required: ['userId', 'comment'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - // Lookup user - const user = await getUser(ps.userId).catch(e => { - if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); - throw e; - }); - - if (user.id === me.id) { - throw new ApiError(meta.errors.cannotReportYourself); - } - - if (user.isAdmin) { - throw new ApiError(meta.errors.cannotReportAdmin); - } - - const report = await AbuseUserReports.insert({ - id: genId(), - createdAt: new Date(), - targetUserId: user.id, - targetUserHost: user.host, - reporterId: me.id, - reporterHost: null, - comment: ps.comment, - }).then(x => AbuseUserReports.findOneByOrFail(x.identifiers[0])); - - // Publish event to moderators - setImmediate(async () => { - const moderators = await Users.find({ - where: [{ - isAdmin: true, - }, { - isModerator: true, - }], - }); - - for (const moderator of moderators) { - publishAdminStream(moderator.id, 'newAbuseUserReport', { - id: report.id, - targetUserId: report.targetUserId, - reporterId: report.reporterId, - comment: report.comment, - }); - } - - const meta = await fetchMeta(); - if (meta.email) { - sendEmail(meta.email, 'New abuse report', - sanitizeHtml(ps.comment), - sanitizeHtml(ps.comment)); - } - }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts deleted file mode 100644 index 6e5bc46bb..000000000 --- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Brackets } from 'typeorm'; -import { Followings, Users } from '@/models/index.js'; -import { USER_ACTIVE_THRESHOLD } from '@/const.js'; -import { User } from '@/models/entities/user.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Search for a user by username and/or host.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'User', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - username: { type: 'string', nullable: true }, - host: { type: 'string', nullable: true }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - detail: { type: 'boolean', default: true }, - }, - anyOf: [ - { required: ['username'] }, - { required: ['host'] }, - ], -} as const; - -// TODO: avatar,bannerをJOINしたいけどエラーになる - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日 - - if (ps.host) { - const q = Users.createQueryBuilder('user') - .where('user.isSuspended = FALSE') - .andWhere('user.host LIKE :host', { host: ps.host.toLowerCase() + '%' }); - - if (ps.username) { - q.andWhere('user.usernameLower LIKE :username', { username: ps.username.toLowerCase() + '%' }); - } - - q.andWhere('user.updatedAt IS NOT NULL'); - q.orderBy('user.updatedAt', 'DESC'); - - const users = await q.take(ps.limit).getMany(); - - return await Users.packMany(users, me, { detail: ps.detail }); - } else if (ps.username) { - let users: User[] = []; - - if (me) { - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: me.id }); - - const query = Users.createQueryBuilder('user') - .where(`user.id IN (${ followingQuery.getQuery() })`) - .andWhere('user.id != :meId', { meId: me.id }) - .andWhere('user.isSuspended = FALSE') - .andWhere('user.usernameLower LIKE :username', { username: ps.username.toLowerCase() + '%' }) - .andWhere(new Brackets(qb => { qb - .where('user.updatedAt IS NULL') - .orWhere('user.updatedAt > :activeThreshold', { activeThreshold: activeThreshold }); - })); - - query.setParameters(followingQuery.getParameters()); - - users = await query - .orderBy('user.usernameLower', 'ASC') - .take(ps.limit) - .getMany(); - - if (users.length < ps.limit) { - const otherQuery = await Users.createQueryBuilder('user') - .where(`user.id NOT IN (${ followingQuery.getQuery() })`) - .andWhere('user.id != :meId', { meId: me.id }) - .andWhere('user.isSuspended = FALSE') - .andWhere('user.usernameLower LIKE :username', { username: ps.username.toLowerCase() + '%' }) - .andWhere('user.updatedAt IS NOT NULL'); - - otherQuery.setParameters(followingQuery.getParameters()); - - const otherUsers = await otherQuery - .orderBy('user.updatedAt', 'DESC') - .take(ps.limit - users.length) - .getMany(); - - users = users.concat(otherUsers); - } - } else { - users = await Users.createQueryBuilder('user') - .where('user.isSuspended = FALSE') - .andWhere('user.usernameLower LIKE :username', { username: ps.username.toLowerCase() + '%' }) - .andWhere('user.updatedAt IS NOT NULL') - .orderBy('user.updatedAt', 'DESC') - .take(ps.limit - users.length) - .getMany(); - } - - return await Users.packMany(users, me, { detail: !!ps.detail }); - } - - return []; -}); diff --git a/packages/backend/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts deleted file mode 100644 index 01729de66..000000000 --- a/packages/backend/src/server/api/endpoints/users/search.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { Brackets } from 'typeorm'; -import { UserProfiles, Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import define from '../../define.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Search for users.', - - res: { - type: 'array', - optional: false, nullable: false, - items: { - type: 'object', - optional: false, nullable: false, - ref: 'User', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - query: { type: 'string' }, - offset: { type: 'integer', default: 0 }, - limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, - origin: { type: 'string', enum: ['local', 'remote', 'combined'], default: 'combined' }, - detail: { type: 'boolean', default: true }, - }, - required: ['query'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日 - - const isUsername = ps.query.startsWith('@'); - - let users: User[] = []; - - if (isUsername) { - const usernameQuery = Users.createQueryBuilder('user') - .where('user.usernameLower LIKE :username', { username: ps.query.replace('@', '').toLowerCase() + '%' }) - .andWhere(new Brackets(qb => { qb - .where('user.updatedAt IS NULL') - .orWhere('user.updatedAt > :activeThreshold', { activeThreshold: activeThreshold }); - })) - .andWhere('user.isSuspended = FALSE'); - - if (ps.origin === 'local') { - usernameQuery.andWhere('user.host IS NULL'); - } else if (ps.origin === 'remote') { - usernameQuery.andWhere('user.host IS NOT NULL'); - } - - users = await usernameQuery - .orderBy('user.updatedAt', 'DESC', 'NULLS LAST') - .take(ps.limit) - .skip(ps.offset) - .getMany(); - } else { - const nameQuery = Users.createQueryBuilder('user') - .where(new Brackets(qb => { - qb.where('user.name ILIKE :query', { query: '%' + ps.query + '%' }); - - // Also search username if it qualifies as username - if (Users.validateLocalUsername(ps.query)) { - qb.orWhere('user.usernameLower LIKE :username', { username: '%' + ps.query.toLowerCase() + '%' }); - } - })) - .andWhere(new Brackets(qb => { qb - .where('user.updatedAt IS NULL') - .orWhere('user.updatedAt > :activeThreshold', { activeThreshold: activeThreshold }); - })) - .andWhere('user.isSuspended = FALSE'); - - if (ps.origin === 'local') { - nameQuery.andWhere('user.host IS NULL'); - } else if (ps.origin === 'remote') { - nameQuery.andWhere('user.host IS NOT NULL'); - } - - users = await nameQuery - .orderBy('user.updatedAt', 'DESC', 'NULLS LAST') - .take(ps.limit) - .skip(ps.offset) - .getMany(); - - if (users.length < ps.limit) { - const profQuery = UserProfiles.createQueryBuilder('prof') - .select('prof.userId') - .where('prof.description ILIKE :query', { query: '%' + ps.query + '%' }); - - if (ps.origin === 'local') { - profQuery.andWhere('prof.userHost IS NULL'); - } else if (ps.origin === 'remote') { - profQuery.andWhere('prof.userHost IS NOT NULL'); - } - - const query = Users.createQueryBuilder('user') - .where(`user.id IN (${ profQuery.getQuery() })`) - .andWhere(new Brackets(qb => { qb - .where('user.updatedAt IS NULL') - .orWhere('user.updatedAt > :activeThreshold', { activeThreshold: activeThreshold }); - })) - .andWhere('user.isSuspended = FALSE') - .setParameters(profQuery.getParameters()); - - users = users.concat(await query - .orderBy('user.updatedAt', 'DESC', 'NULLS LAST') - .take(ps.limit) - .skip(ps.offset) - .getMany(), - ); - } - } - - return await Users.packMany(users, me, { detail: ps.detail }); -}); diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts deleted file mode 100644 index 846d83b49..000000000 --- a/packages/backend/src/server/api/endpoints/users/show.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { FindOptionsWhere, In, IsNull } from 'typeorm'; -import { resolveUser } from '@/remote/resolve-user.js'; -import { Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import define from '../../define.js'; -import { apiLogger } from '../../logger.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Show the properties of a user.', - - res: { - optional: false, nullable: false, - oneOf: [ - { - type: 'object', - ref: 'UserDetailed', - }, - { - type: 'array', - items: { - type: 'object', - ref: 'UserDetailed', - }, - }, - ], - }, - - errors: { - failedToResolveRemoteUser: { - message: 'Failed to resolve remote user.', - code: 'FAILED_TO_RESOLVE_REMOTE_USER', - id: 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c', - kind: 'server', - }, - - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '4362f8dc-731f-4ad8-a694-be5a88922a24', - }, - }, -} as const; - -export const paramDef = { - type: 'object', - anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - userIds: { type: 'array', uniqueItems: true, items: { - type: 'string', format: 'misskey:id', - } }, - }, - required: ['userIds'], - }, - { - properties: { - username: { type: 'string' }, - host: { - type: 'string', - nullable: true, - description: 'The local host is represented with `null`.', - }, - }, - required: ['username'], - }, - ], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - let user; - - const isAdminOrModerator = me && (me.isAdmin || me.isModerator); - - if (ps.userIds) { - if (ps.userIds.length === 0) { - return []; - } - - const users = await Users.findBy(isAdminOrModerator ? { - id: In(ps.userIds), - } : { - id: In(ps.userIds), - isSuspended: false, - }); - - // リクエストされた通りに並べ替え - const _users: User[] = []; - for (const id of ps.userIds) { - _users.push(users.find(x => x.id === id)!); - } - - return await Promise.all(_users.map(u => Users.pack(u, me, { - detail: true, - }))); - } else { - // Lookup user - if (typeof ps.host === 'string' && typeof ps.username === 'string') { - user = await resolveUser(ps.username, ps.host).catch(e => { - apiLogger.warn(`failed to resolve remote user: ${e}`); - throw new ApiError(meta.errors.failedToResolveRemoteUser); - }); - } else { - const q: FindOptionsWhere = ps.userId != null - ? { id: ps.userId } - : { usernameLower: ps.username!.toLowerCase(), host: IsNull() }; - - user = await Users.findOneBy(q); - } - - if (user == null || (!isAdminOrModerator && user.isSuspended)) { - throw new ApiError(meta.errors.noSuchUser); - } - - return await Users.pack(user, me, { - detail: true, - }); - } -}); diff --git a/packages/backend/src/server/api/endpoints/users/stats.ts b/packages/backend/src/server/api/endpoints/users/stats.ts deleted file mode 100644 index 47f322ee9..000000000 --- a/packages/backend/src/server/api/endpoints/users/stats.ts +++ /dev/null @@ -1,193 +0,0 @@ -import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, Users } from '@/models/index.js'; -import { awaitAll } from '@/prelude/await-all.js'; -import define from '../../define.js'; -import { ApiError } from '../../error.js'; - -export const meta = { - tags: ['users'], - - requireCredential: false, - - description: 'Show statistics about a user.', - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '9e638e45-3b25-4ef7-8f95-07e8498f1819', - }, - }, - - res: { - type: 'object', - optional: false, nullable: false, - properties: { - notesCount: { - type: 'integer', - optional: false, nullable: false, - }, - repliesCount: { - type: 'integer', - optional: false, nullable: false, - }, - renotesCount: { - type: 'integer', - optional: false, nullable: false, - }, - repliedCount: { - type: 'integer', - optional: false, nullable: false, - }, - renotedCount: { - type: 'integer', - optional: false, nullable: false, - }, - pollVotesCount: { - type: 'integer', - optional: false, nullable: false, - }, - pollVotedCount: { - type: 'integer', - optional: false, nullable: false, - }, - localFollowingCount: { - type: 'integer', - optional: false, nullable: false, - }, - remoteFollowingCount: { - type: 'integer', - optional: false, nullable: false, - }, - localFollowersCount: { - type: 'integer', - optional: false, nullable: false, - }, - remoteFollowersCount: { - type: 'integer', - optional: false, nullable: false, - }, - followingCount: { - type: 'integer', - optional: false, nullable: false, - }, - followersCount: { - type: 'integer', - optional: false, nullable: false, - }, - sentReactionsCount: { - type: 'integer', - optional: false, nullable: false, - }, - receivedReactionsCount: { - type: 'integer', - optional: false, nullable: false, - }, - noteFavoritesCount: { - type: 'integer', - optional: false, nullable: false, - }, - pageLikesCount: { - type: 'integer', - optional: false, nullable: false, - }, - pageLikedCount: { - type: 'integer', - optional: false, nullable: false, - }, - driveFilesCount: { - type: 'integer', - optional: false, nullable: false, - }, - driveUsage: { - type: 'integer', - optional: false, nullable: false, - description: 'Drive usage in bytes', - }, - }, - }, -} as const; - -export const paramDef = { - type: 'object', - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async (ps, me) => { - const user = await Users.findOneBy({ id: ps.userId }); - if (user == null) { - throw new ApiError(meta.errors.noSuchUser); - } - - const result = await awaitAll({ - notesCount: Notes.createQueryBuilder('note') - .where('note.userId = :userId', { userId: user.id }) - .getCount(), - repliesCount: Notes.createQueryBuilder('note') - .where('note.userId = :userId', { userId: user.id }) - .andWhere('note.replyId IS NOT NULL') - .getCount(), - renotesCount: Notes.createQueryBuilder('note') - .where('note.userId = :userId', { userId: user.id }) - .andWhere('note.renoteId IS NOT NULL') - .getCount(), - repliedCount: Notes.createQueryBuilder('note') - .where('note.replyUserId = :userId', { userId: user.id }) - .getCount(), - renotedCount: Notes.createQueryBuilder('note') - .where('note.renoteUserId = :userId', { userId: user.id }) - .getCount(), - pollVotesCount: PollVotes.createQueryBuilder('vote') - .where('vote.userId = :userId', { userId: user.id }) - .getCount(), - pollVotedCount: PollVotes.createQueryBuilder('vote') - .innerJoin('vote.note', 'note') - .where('note.userId = :userId', { userId: user.id }) - .getCount(), - localFollowingCount: Followings.createQueryBuilder('following') - .where('following.followerId = :userId', { userId: user.id }) - .andWhere('following.followeeHost IS NULL') - .getCount(), - remoteFollowingCount: Followings.createQueryBuilder('following') - .where('following.followerId = :userId', { userId: user.id }) - .andWhere('following.followeeHost IS NOT NULL') - .getCount(), - localFollowersCount: Followings.createQueryBuilder('following') - .where('following.followeeId = :userId', { userId: user.id }) - .andWhere('following.followerHost IS NULL') - .getCount(), - remoteFollowersCount: Followings.createQueryBuilder('following') - .where('following.followeeId = :userId', { userId: user.id }) - .andWhere('following.followerHost IS NOT NULL') - .getCount(), - sentReactionsCount: NoteReactions.createQueryBuilder('reaction') - .where('reaction.userId = :userId', { userId: user.id }) - .getCount(), - receivedReactionsCount: NoteReactions.createQueryBuilder('reaction') - .innerJoin('reaction.note', 'note') - .where('note.userId = :userId', { userId: user.id }) - .getCount(), - noteFavoritesCount: NoteFavorites.createQueryBuilder('favorite') - .where('favorite.userId = :userId', { userId: user.id }) - .getCount(), - pageLikesCount: PageLikes.createQueryBuilder('like') - .where('like.userId = :userId', { userId: user.id }) - .getCount(), - pageLikedCount: PageLikes.createQueryBuilder('like') - .innerJoin('like.page', 'page') - .where('page.userId = :userId', { userId: user.id }) - .getCount(), - driveFilesCount: DriveFiles.createQueryBuilder('file') - .where('file.userId = :userId', { userId: user.id }) - .getCount(), - driveUsage: DriveFiles.calcDriveUsageOf(user), - }); - - result.followingCount = result.localFollowingCount + result.remoteFollowingCount; - result.followersCount = result.localFollowersCount + result.remoteFollowersCount; - - return result; -}); diff --git a/packages/backend/src/server/api/index.ts b/packages/backend/src/server/api/index.ts deleted file mode 100644 index 83ece51f5..000000000 --- a/packages/backend/src/server/api/index.ts +++ /dev/null @@ -1,126 +0,0 @@ -/** - * API Server - */ - -import Koa from 'koa'; -import Router from '@koa/router'; -import multer from '@koa/multer'; -import bodyParser from 'koa-bodyparser'; -import cors from '@koa/cors'; - -import { Instances, AccessTokens, Users } from '@/models/index.js'; -import config from '@/config/index.js'; -import endpoints from './endpoints.js'; -import handler from './api-handler.js'; -import signup from './private/signup.js'; -import signin from './private/signin.js'; -import signupPending from './private/signup-pending.js'; -import discord from './service/discord.js'; -import github from './service/github.js'; -import twitter from './service/twitter.js'; - -// Init app -const app = new Koa(); - -app.use(cors({ - origin: '*', -})); - -// No caching -app.use(async (ctx, next) => { - ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); - await next(); -}); - -app.use(bodyParser({ - // リクエストが multipart/form-data でない限りはJSONだと見なす - detectJSON: ctx => !ctx.is('multipart/form-data'), -})); - -// Init multer instance -const upload = multer({ - storage: multer.diskStorage({}), - limits: { - fileSize: config.maxFileSize || 262144000, - files: 1, - }, -}); - -// Init router -const router = new Router(); - -/** - * Register endpoint handlers - */ -for (const endpoint of endpoints) { - if (endpoint.meta.requireFile) { - router.post(`/${endpoint.name}`, upload.single('file'), handler.bind(null, endpoint)); - } else { - // 後方互換性のため - if (endpoint.name.includes('-')) { - router.post(`/${endpoint.name.replace(/-/g, '_')}`, handler.bind(null, endpoint)); - - if (endpoint.meta.allowGet) { - router.get(`/${endpoint.name.replace(/-/g, '_')}`, handler.bind(null, endpoint)); - } else { - router.get(`/${endpoint.name.replace(/-/g, '_')}`, async ctx => { ctx.status = 405; }); - } - } - - router.post(`/${endpoint.name}`, handler.bind(null, endpoint)); - - if (endpoint.meta.allowGet) { - router.get(`/${endpoint.name}`, handler.bind(null, endpoint)); - } else { - router.get(`/${endpoint.name}`, async ctx => { ctx.status = 405; }); - } - } -} - -router.post('/signup', signup); -router.post('/signin', signin); -router.post('/signup-pending', signupPending); - -router.use(discord.routes()); -router.use(github.routes()); -router.use(twitter.routes()); - -router.get('/v1/instance/peers', async ctx => { - const instances = await Instances.find({ - select: ['host'], - }); - - ctx.body = instances.map(instance => instance.host); -}); - -router.post('/miauth/:session/check', async ctx => { - const token = await AccessTokens.findOneBy({ - session: ctx.params.session, - }); - - if (token && token.session != null && !token.fetched) { - AccessTokens.update(token.id, { - fetched: true, - }); - - ctx.body = { - ok: true, - token: token.token, - user: await Users.pack(token.userId, null, { detail: true }), - }; - } else { - ctx.body = { - ok: false, - }; - } -}); - -// Return 404 for unknown API -router.all('(.*)', async ctx => { - ctx.status = 404; -}); - -// Register router -app.use(router.routes()); - -export default app; diff --git a/packages/backend/src/server/api/limiter.ts b/packages/backend/src/server/api/limiter.ts deleted file mode 100644 index 9a7751716..000000000 --- a/packages/backend/src/server/api/limiter.ts +++ /dev/null @@ -1,77 +0,0 @@ -import Limiter from 'ratelimiter'; -import { CacheableLocalUser, User } from '@/models/entities/user.js'; -import Logger from '@/services/logger.js'; -import { redisClient } from '../../db/redis.js'; -import { IEndpointMeta } from './endpoints.js'; - -const logger = new Logger('limiter'); - -export const limiter = (limitation: IEndpointMeta['limit'] & { key: NonNullable }, actor: string) => new Promise((ok, reject) => { - if (process.env.NODE_ENV === 'test') ok(); - - const hasShortTermLimit = typeof limitation.minInterval === 'number'; - - const hasLongTermLimit = - typeof limitation.duration === 'number' && - typeof limitation.max === 'number'; - - if (hasShortTermLimit) { - min(); - } else if (hasLongTermLimit) { - max(); - } else { - ok(); - } - - // Short-term limit - function min(): void { - const minIntervalLimiter = new Limiter({ - id: `${actor}:${limitation.key}:min`, - duration: limitation.minInterval, - max: 1, - db: redisClient, - }); - - minIntervalLimiter.get((err, info) => { - if (err) { - return reject('ERR'); - } - - logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`); - - if (info.remaining === 0) { - reject('BRIEF_REQUEST_INTERVAL'); - } else { - if (hasLongTermLimit) { - max(); - } else { - ok(); - } - } - }); - } - - // Long term limit - function max(): void { - const limiter = new Limiter({ - id: `${actor}:${limitation.key}`, - duration: limitation.duration, - max: limitation.max, - db: redisClient, - }); - - limiter.get((err, info) => { - if (err) { - return reject('ERR'); - } - - logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`); - - if (info.remaining === 0) { - reject('RATE_LIMIT_EXCEEDED'); - } else { - ok(); - } - }); - } -}); diff --git a/packages/backend/src/server/api/logger.ts b/packages/backend/src/server/api/logger.ts deleted file mode 100644 index ec22d6c3e..000000000 --- a/packages/backend/src/server/api/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logger from '@/services/logger.js'; - -export const apiLogger = new Logger('api'); diff --git a/packages/backend/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts deleted file mode 100644 index 68fa81404..000000000 --- a/packages/backend/src/server/api/openapi/gen-spec.ts +++ /dev/null @@ -1,190 +0,0 @@ -import endpoints from '../endpoints.js'; -import config from '@/config/index.js'; -import { errors as basicErrors } from './errors.js'; -import { schemas, convertSchemaToOpenApiSchema } from './schemas.js'; - -export function genOpenapiSpec() { - const spec = { - openapi: '3.0.0', - - info: { - version: 'v1', - title: 'Misskey API', - 'x-logo': { url: '/static-assets/api-doc.png' }, - }, - - externalDocs: { - description: 'Repository', - url: 'https://github.com/misskey-dev/misskey', - }, - - servers: [{ - url: config.apiUrl, - }], - - paths: {} as any, - - components: { - schemas: schemas, - - securitySchemes: { - ApiKeyAuth: { - type: 'apiKey', - in: 'body', - name: 'i', - }, - }, - }, - }; - - for (const endpoint of endpoints.filter(ep => !ep.meta.secure)) { - const errors = {} as any; - - if (endpoint.meta.errors) { - for (const e of Object.values(endpoint.meta.errors)) { - errors[e.code] = { - value: { - error: e, - }, - }; - } - } - - const resSchema = endpoint.meta.res ? convertSchemaToOpenApiSchema(endpoint.meta.res) : {}; - - let desc = (endpoint.meta.description ? endpoint.meta.description : 'No description provided.') + '\n\n'; - desc += `**Credential required**: *${endpoint.meta.requireCredential ? 'Yes' : 'No'}*`; - if (endpoint.meta.kind) { - const kind = endpoint.meta.kind; - desc += ` / **Permission**: *${kind}*`; - } - - const requestType = endpoint.meta.requireFile ? 'multipart/form-data' : 'application/json'; - const schema = endpoint.params; - - if (endpoint.meta.requireFile) { - schema.properties.file = { - type: 'string', - format: 'binary', - description: 'The file contents.', - }; - schema.required.push('file'); - } - - const info = { - operationId: endpoint.name, - summary: endpoint.name, - description: desc, - externalDocs: { - description: 'Source code', - url: `https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/${endpoint.name}.ts`, - }, - ...(endpoint.meta.tags ? { - tags: [endpoint.meta.tags[0]], - } : {}), - ...(endpoint.meta.requireCredential ? { - security: [{ - ApiKeyAuth: [], - }], - } : {}), - requestBody: { - required: true, - content: { - [requestType]: { - schema, - }, - }, - }, - responses: { - ...(endpoint.meta.res ? { - '200': { - description: 'OK (with results)', - content: { - 'application/json': { - schema: resSchema, - }, - }, - }, - } : { - '204': { - description: 'OK (without any results)', - }, - }), - '400': { - description: 'Client error', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: { ...errors, ...basicErrors['400'] }, - }, - }, - }, - '401': { - description: 'Authentication error', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: basicErrors['401'], - }, - }, - }, - '403': { - description: 'Forbidden error', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: basicErrors['403'], - }, - }, - }, - '418': { - description: 'I\'m Ai', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: basicErrors['418'], - }, - }, - }, - ...(endpoint.meta.limit ? { - '429': { - description: 'To many requests', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: basicErrors['429'], - }, - }, - }, - } : {}), - '500': { - description: 'Internal server error', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/Error', - }, - examples: basicErrors['500'], - }, - }, - }, - }, - }; - - spec.paths['/' + endpoint.name] = { - post: info, - }; - } - - return spec; -} diff --git a/packages/backend/src/server/api/openapi/schemas.ts b/packages/backend/src/server/api/openapi/schemas.ts deleted file mode 100644 index 14bef9cab..000000000 --- a/packages/backend/src/server/api/openapi/schemas.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { refs, Schema } from '@/misc/schema.js'; - -export function convertSchemaToOpenApiSchema(schema: Schema) { - const res: any = schema; - - if (schema.type === 'object' && schema.properties) { - res.required = Object.entries(schema.properties).filter(([k, v]) => !v.optional).map(([k]) => k); - - for (const k of Object.keys(schema.properties)) { - res.properties[k] = convertSchemaToOpenApiSchema(schema.properties[k]); - } - } - - if (schema.type === 'array' && schema.items) { - res.items = convertSchemaToOpenApiSchema(schema.items); - } - - if (schema.anyOf) res.anyOf = schema.anyOf.map(convertSchemaToOpenApiSchema); - if (schema.oneOf) res.oneOf = schema.oneOf.map(convertSchemaToOpenApiSchema); - if (schema.allOf) res.allOf = schema.allOf.map(convertSchemaToOpenApiSchema); - - if (schema.ref) { - res.$ref = `#/components/schemas/${schema.ref}`; - } - - return res; -} - -export const schemas = { - Error: { - type: 'object', - properties: { - error: { - type: 'object', - description: 'An error object.', - properties: { - code: { - type: 'string', - description: 'An error code. Unique within the endpoint.', - }, - message: { - type: 'string', - description: 'An error message.', - }, - id: { - type: 'string', - format: 'uuid', - description: 'An error ID. This ID is static.', - }, - }, - required: ['code', 'id', 'message'], - }, - }, - required: ['error'], - }, - - ...Object.fromEntries( - Object.entries(refs).map(([key, schema]) => [key, convertSchemaToOpenApiSchema(schema)]) - ), -}; diff --git a/packages/backend/src/server/api/private/signin.ts b/packages/backend/src/server/api/private/signin.ts deleted file mode 100644 index 79b31764f..000000000 --- a/packages/backend/src/server/api/private/signin.ts +++ /dev/null @@ -1,250 +0,0 @@ -import Koa from 'koa'; -import bcrypt from 'bcryptjs'; -import * as speakeasy from 'speakeasy'; -import signin from '../common/signin.js'; -import config from '@/config/index.js'; -import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '@/models/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { genId } from '@/misc/gen-id.js'; -import { verifyLogin, hash } from '../2fa.js'; -import { randomBytes } from 'node:crypto'; -import { IsNull } from 'typeorm'; -import { limiter } from '../limiter.js'; -import { getIpHash } from '@/misc/get-ip-hash.js'; - -export default async (ctx: Koa.Context) => { - ctx.set('Access-Control-Allow-Origin', config.url); - ctx.set('Access-Control-Allow-Credentials', 'true'); - - const body = ctx.request.body as any; - const username = body['username']; - const password = body['password']; - const token = body['token']; - - function error(status: number, error: { id: string }) { - ctx.status = status; - ctx.body = { error }; - } - - try { - // not more than 1 attempt per second and not more than 10 attempts per hour - await limiter({ key: 'signin', duration: 60 * 60 * 1000, max: 10, minInterval: 1000 }, getIpHash(ctx.ip)); - } catch (err) { - ctx.status = 429; - ctx.body = { - error: { - message: 'Too many failed attempts to sign in. Try again later.', - code: 'TOO_MANY_AUTHENTICATION_FAILURES', - id: '22d05606-fbcf-421a-a2db-b32610dcfd1b', - }, - }; - return; - } - - if (typeof username !== 'string') { - ctx.status = 400; - return; - } - - if (typeof password !== 'string') { - ctx.status = 400; - return; - } - - if (token != null && typeof token !== 'string') { - ctx.status = 400; - return; - } - - // Fetch user - const user = await Users.findOneBy({ - usernameLower: username.toLowerCase(), - host: IsNull(), - }) as ILocalUser; - - if (user == null) { - error(404, { - id: '6cc579cc-885d-43d8-95c2-b8c7fc963280', - }); - return; - } - - if (user.isSuspended) { - error(403, { - id: 'e03a5f46-d309-4865-9b69-56282d94e1eb', - }); - return; - } - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - // Compare password - const same = await bcrypt.compare(password, profile.password!); - - async function fail(status?: number, failure?: { id: string }) { - // Append signin history - await Signins.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - ip: ctx.ip, - headers: ctx.headers, - success: false, - }); - - error(status || 500, failure || { id: '4e30e80c-e338-45a0-8c8f-44455efa3b76' }); - } - - if (!profile.twoFactorEnabled) { - if (same) { - signin(ctx, user); - return; - } else { - await fail(403, { - id: '932c904e-9460-45b7-9ce6-7ed33be7eb2c', - }); - return; - } - } - - if (token) { - if (!same) { - await fail(403, { - id: '932c904e-9460-45b7-9ce6-7ed33be7eb2c', - }); - return; - } - - const verified = (speakeasy as any).totp.verify({ - secret: profile.twoFactorSecret, - encoding: 'base32', - token: token, - window: 2, - }); - - if (verified) { - signin(ctx, user); - return; - } else { - await fail(403, { - id: 'cdf1235b-ac71-46d4-a3a6-84ccce48df6f', - }); - return; - } - } else if (body.credentialId) { - if (!same && !profile.usePasswordLessLogin) { - await fail(403, { - id: '932c904e-9460-45b7-9ce6-7ed33be7eb2c', - }); - return; - } - - const clientDataJSON = Buffer.from(body.clientDataJSON, 'hex'); - const clientData = JSON.parse(clientDataJSON.toString('utf-8')); - const challenge = await AttestationChallenges.findOneBy({ - userId: user.id, - id: body.challengeId, - registrationChallenge: false, - challenge: hash(clientData.challenge).toString('hex'), - }); - - if (!challenge) { - await fail(403, { - id: '2715a88a-2125-4013-932f-aa6fe72792da', - }); - return; - } - - await AttestationChallenges.delete({ - userId: user.id, - id: body.challengeId, - }); - - if (new Date().getTime() - challenge.createdAt.getTime() >= 5 * 60 * 1000) { - await fail(403, { - id: '2715a88a-2125-4013-932f-aa6fe72792da', - }); - return; - } - - const securityKey = await UserSecurityKeys.findOneBy({ - id: Buffer.from( - body.credentialId - .replace(/-/g, '+') - .replace(/_/g, '/'), - 'base64' - ).toString('hex'), - }); - - if (!securityKey) { - await fail(403, { - id: '66269679-aeaf-4474-862b-eb761197e046', - }); - return; - } - - const isValid = verifyLogin({ - publicKey: Buffer.from(securityKey.publicKey, 'hex'), - authenticatorData: Buffer.from(body.authenticatorData, 'hex'), - clientDataJSON, - clientData, - signature: Buffer.from(body.signature, 'hex'), - challenge: challenge.challenge, - }); - - if (isValid) { - signin(ctx, user); - return; - } else { - await fail(403, { - id: '93b86c4b-72f9-40eb-9815-798928603d1e', - }); - return; - } - } else { - if (!same && !profile.usePasswordLessLogin) { - await fail(403, { - id: '932c904e-9460-45b7-9ce6-7ed33be7eb2c', - }); - return; - } - - const keys = await UserSecurityKeys.findBy({ - userId: user.id, - }); - - if (keys.length === 0) { - await fail(403, { - id: 'f27fd449-9af4-4841-9249-1f989b9fa4a4', - }); - return; - } - - // 32 byte challenge - const challenge = randomBytes(32).toString('base64') - .replace(/=/g, '') - .replace(/\+/g, '-') - .replace(/\//g, '_'); - - const challengeId = genId(); - - await AttestationChallenges.insert({ - userId: user.id, - id: challengeId, - challenge: hash(Buffer.from(challenge, 'utf-8')).toString('hex'), - createdAt: new Date(), - registrationChallenge: false, - }); - - ctx.body = { - challenge, - challengeId, - securityKeys: keys.map(key => ({ - id: key.id, - })), - }; - ctx.status = 200; - return; - } - // never get here -}; diff --git a/packages/backend/src/server/api/private/signup-pending.ts b/packages/backend/src/server/api/private/signup-pending.ts deleted file mode 100644 index e5e39ba00..000000000 --- a/packages/backend/src/server/api/private/signup-pending.ts +++ /dev/null @@ -1,35 +0,0 @@ -import Koa from 'koa'; -import { Users, UserPendings, UserProfiles } from '@/models/index.js'; -import { signup } from '../common/signup.js'; -import signin from '../common/signin.js'; - -export default async (ctx: Koa.Context) => { - const body = ctx.request.body; - - const code = body['code']; - - try { - const pendingUser = await UserPendings.findOneByOrFail({ code }); - - const { account, secret } = await signup({ - username: pendingUser.username, - passwordHash: pendingUser.password, - }); - - UserPendings.delete({ - id: pendingUser.id, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: account.id }); - - await UserProfiles.update({ userId: profile.userId }, { - email: pendingUser.email, - emailVerified: true, - emailVerifyCode: null, - }); - - signin(ctx, account); - } catch (e) { - ctx.throw(400, e); - } -}; diff --git a/packages/backend/src/server/api/private/signup.ts b/packages/backend/src/server/api/private/signup.ts deleted file mode 100644 index 26f172637..000000000 --- a/packages/backend/src/server/api/private/signup.ts +++ /dev/null @@ -1,112 +0,0 @@ -import Koa from 'koa'; -import rndstr from 'rndstr'; -import bcrypt from 'bcryptjs'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { verifyHcaptcha, verifyRecaptcha } from '@/misc/captcha.js'; -import { Users, RegistrationTickets, UserPendings } from '@/models/index.js'; -import { signup } from '../common/signup.js'; -import config from '@/config/index.js'; -import { sendEmail } from '@/services/send-email.js'; -import { genId } from '@/misc/gen-id.js'; -import { validateEmailForAccount } from '@/services/validate-email-for-account.js'; - -export default async (ctx: Koa.Context) => { - const body = ctx.request.body; - - const instance = await fetchMeta(true); - - // Verify *Captcha - // ただしテスト時はこの機構は障害となるため無効にする - if (process.env.NODE_ENV !== 'test') { - if (instance.enableHcaptcha && instance.hcaptchaSecretKey) { - await verifyHcaptcha(instance.hcaptchaSecretKey, body['hcaptcha-response']).catch(e => { - ctx.throw(400, e); - }); - } - - if (instance.enableRecaptcha && instance.recaptchaSecretKey) { - await verifyRecaptcha(instance.recaptchaSecretKey, body['g-recaptcha-response']).catch(e => { - ctx.throw(400, e); - }); - } - } - - const username = body['username']; - const password = body['password']; - const host: string | null = process.env.NODE_ENV === 'test' ? (body['host'] || null) : null; - const invitationCode = body['invitationCode']; - const emailAddress = body['emailAddress']; - - if (instance.emailRequiredForSignup) { - if (emailAddress == null || typeof emailAddress !== 'string') { - ctx.status = 400; - return; - } - - const available = await validateEmailForAccount(emailAddress); - if (!available) { - ctx.status = 400; - return; - } - } - - if (instance.disableRegistration) { - if (invitationCode == null || typeof invitationCode !== 'string') { - ctx.status = 400; - return; - } - - const ticket = await RegistrationTickets.findOneBy({ - code: invitationCode, - }); - - if (ticket == null) { - ctx.status = 400; - return; - } - - RegistrationTickets.delete(ticket.id); - } - - if (instance.emailRequiredForSignup) { - const code = rndstr('a-z0-9', 16); - - // Generate hash of password - const salt = await bcrypt.genSalt(8); - const hash = await bcrypt.hash(password, salt); - - await UserPendings.insert({ - id: genId(), - createdAt: new Date(), - code, - email: emailAddress, - username: username, - password: hash, - }); - - const link = `${config.url}/signup-complete/${code}`; - - sendEmail(emailAddress, 'Signup', - `To complete signup, please click this link:
${link}`, - `To complete signup, please click this link: ${link}`); - - ctx.status = 204; - } else { - try { - const { account, secret } = await signup({ - username, password, host, - }); - - const res = await Users.pack(account, account, { - detail: true, - includeSecrets: true, - }); - - (res as any).token = secret; - - ctx.body = res; - } catch (e) { - ctx.throw(400, e); - } - } -}; diff --git a/packages/backend/src/server/api/service/discord.ts b/packages/backend/src/server/api/service/discord.ts deleted file mode 100644 index 97cbcbecd..000000000 --- a/packages/backend/src/server/api/service/discord.ts +++ /dev/null @@ -1,287 +0,0 @@ -import Koa from 'koa'; -import Router from '@koa/router'; -import { OAuth2 } from 'oauth'; -import { v4 as uuid } from 'uuid'; -import { IsNull } from 'typeorm'; -import { getJson } from '@/misc/fetch.js'; -import config from '@/config/index.js'; -import { publishMainStream } from '@/services/stream.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Users, UserProfiles } from '@/models/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { redisClient } from '../../../db/redis.js'; -import signin from '../common/signin.js'; - -function getUserToken(ctx: Koa.BaseContext): string | null { - return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; -} - -function compareOrigin(ctx: Koa.BaseContext): boolean { - function normalizeUrl(url?: string): string { - return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : ''; - } - - const referer = ctx.headers['referer']; - - return (normalizeUrl(referer) === normalizeUrl(config.url)); -} - -// Init router -const router = new Router(); - -router.get('/disconnect/discord', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (!userToken) { - ctx.throw(400, 'signin required'); - return; - } - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - delete profile.integrations.discord; - - await UserProfiles.update(user.id, { - integrations: profile.integrations, - }); - - ctx.body = 'Discordの連携を解除しました :v:'; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); -}); - -async function getOAuth2() { - const meta = await fetchMeta(true); - - if (meta.enableDiscordIntegration) { - return new OAuth2( - meta.discordClientId!, - meta.discordClientSecret!, - 'https://discord.com/', - 'api/oauth2/authorize', - 'api/oauth2/token'); - } else { - return null; - } -} - -router.get('/connect/discord', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (!userToken) { - ctx.throw(400, 'signin required'); - return; - } - - const params = { - redirect_uri: `${config.url}/api/dc/cb`, - scope: ['identify'], - state: uuid(), - response_type: 'code', - }; - - redisClient.set(userToken, JSON.stringify(params)); - - const oauth2 = await getOAuth2(); - ctx.redirect(oauth2!.getAuthorizeUrl(params)); -}); - -router.get('/signin/discord', async ctx => { - const sessid = uuid(); - - const params = { - redirect_uri: `${config.url}/api/dc/cb`, - scope: ['identify'], - state: uuid(), - response_type: 'code', - }; - - ctx.cookies.set('signin_with_discord_sid', sessid, { - path: '/', - secure: config.url.startsWith('https'), - httpOnly: true, - }); - - redisClient.set(sessid, JSON.stringify(params)); - - const oauth2 = await getOAuth2(); - ctx.redirect(oauth2!.getAuthorizeUrl(params)); -}); - -router.get('/dc/cb', async ctx => { - const userToken = getUserToken(ctx); - - const oauth2 = await getOAuth2(); - - if (!userToken) { - const sessid = ctx.cookies.get('signin_with_discord_sid'); - - if (!sessid) { - ctx.throw(400, 'invalid session'); - return; - } - - const code = ctx.query.code; - - if (!code || typeof code !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const { redirect_uri, state } = await new Promise((res, rej) => { - redisClient.get(sessid, async (_, state) => { - res(JSON.parse(state)); - }); - }); - - if (ctx.query.state !== state) { - ctx.throw(400, 'invalid session'); - return; - } - - const { accessToken, refreshToken, expiresDate } = await new Promise((res, rej) => - oauth2!.getOAuthAccessToken(code, { - grant_type: 'authorization_code', - redirect_uri, - }, (err, accessToken, refreshToken, result) => { - if (err) { - rej(err); - } else if (result.error) { - rej(result.error); - } else { - res({ - accessToken, - refreshToken, - expiresDate: Date.now() + Number(result.expires_in) * 1000, - }); - } - })); - - const { id, username, discriminator } = (await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { - 'Authorization': `Bearer ${accessToken}`, - })) as Record; - - if (typeof id !== 'string' || typeof username !== 'string' || typeof discriminator !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const profile = await UserProfiles.createQueryBuilder() - .where('"integrations"->\'discord\'->>\'id\' = :id', { id: id }) - .andWhere('"userHost" IS NULL') - .getOne(); - - if (profile == null) { - ctx.throw(404, `@${username}#${discriminator}と連携しているMisskeyアカウントはありませんでした...`); - return; - } - - await UserProfiles.update(profile.userId, { - integrations: { - ...profile.integrations, - discord: { - id: id, - accessToken: accessToken, - refreshToken: refreshToken, - expiresDate: expiresDate, - username: username, - discriminator: discriminator, - }, - }, - }); - - signin(ctx, await Users.findOneBy({ id: profile.userId }) as ILocalUser, true); - } else { - const code = ctx.query.code; - - if (!code || typeof code !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const { redirect_uri, state } = await new Promise((res, rej) => { - redisClient.get(userToken, async (_, state) => { - res(JSON.parse(state)); - }); - }); - - if (ctx.query.state !== state) { - ctx.throw(400, 'invalid session'); - return; - } - - const { accessToken, refreshToken, expiresDate } = await new Promise((res, rej) => - oauth2!.getOAuthAccessToken(code, { - grant_type: 'authorization_code', - redirect_uri, - }, (err, accessToken, refreshToken, result) => { - if (err) { - rej(err); - } else if (result.error) { - rej(result.error); - } else { - res({ - accessToken, - refreshToken, - expiresDate: Date.now() + Number(result.expires_in) * 1000, - }); - } - })); - - const { id, username, discriminator } = (await getJson('https://discord.com/api/users/@me', '*/*', 10 * 1000, { - 'Authorization': `Bearer ${accessToken}`, - })) as Record; - if (typeof id !== 'string' || typeof username !== 'string' || typeof discriminator !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - await UserProfiles.update(user.id, { - integrations: { - ...profile.integrations, - discord: { - accessToken: accessToken, - refreshToken: refreshToken, - expiresDate: expiresDate, - id: id, - username: username, - discriminator: discriminator, - }, - }, - }); - - ctx.body = `Discord: @${username}#${discriminator} を、Misskey: @${user.username} に接続しました!`; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); - } -}); - -export default router; diff --git a/packages/backend/src/server/api/service/github.ts b/packages/backend/src/server/api/service/github.ts deleted file mode 100644 index 04dbd1f7a..000000000 --- a/packages/backend/src/server/api/service/github.ts +++ /dev/null @@ -1,259 +0,0 @@ -import Koa from 'koa'; -import Router from '@koa/router'; -import { OAuth2 } from 'oauth'; -import { v4 as uuid } from 'uuid'; -import { IsNull } from 'typeorm'; -import { getJson } from '@/misc/fetch.js'; -import config from '@/config/index.js'; -import { publishMainStream } from '@/services/stream.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Users, UserProfiles } from '@/models/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { redisClient } from '../../../db/redis.js'; -import signin from '../common/signin.js'; - -function getUserToken(ctx: Koa.BaseContext): string | null { - return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; -} - -function compareOrigin(ctx: Koa.BaseContext): boolean { - function normalizeUrl(url?: string): string { - return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : ''; - } - - const referer = ctx.headers['referer']; - - return (normalizeUrl(referer) === normalizeUrl(config.url)); -} - -// Init router -const router = new Router(); - -router.get('/disconnect/github', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (!userToken) { - ctx.throw(400, 'signin required'); - return; - } - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - delete profile.integrations.github; - - await UserProfiles.update(user.id, { - integrations: profile.integrations, - }); - - ctx.body = 'GitHubの連携を解除しました :v:'; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); -}); - -async function getOath2() { - const meta = await fetchMeta(true); - - if (meta.enableGithubIntegration && meta.githubClientId && meta.githubClientSecret) { - return new OAuth2( - meta.githubClientId, - meta.githubClientSecret, - 'https://github.com/', - 'login/oauth/authorize', - 'login/oauth/access_token'); - } else { - return null; - } -} - -router.get('/connect/github', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (!userToken) { - ctx.throw(400, 'signin required'); - return; - } - - const params = { - redirect_uri: `${config.url}/api/gh/cb`, - scope: ['read:user'], - state: uuid(), - }; - - redisClient.set(userToken, JSON.stringify(params)); - - const oauth2 = await getOath2(); - ctx.redirect(oauth2!.getAuthorizeUrl(params)); -}); - -router.get('/signin/github', async ctx => { - const sessid = uuid(); - - const params = { - redirect_uri: `${config.url}/api/gh/cb`, - scope: ['read:user'], - state: uuid(), - }; - - ctx.cookies.set('signin_with_github_sid', sessid, { - path: '/', - secure: config.url.startsWith('https'), - httpOnly: true, - }); - - redisClient.set(sessid, JSON.stringify(params)); - - const oauth2 = await getOath2(); - ctx.redirect(oauth2!.getAuthorizeUrl(params)); -}); - -router.get('/gh/cb', async ctx => { - const userToken = getUserToken(ctx); - - const oauth2 = await getOath2(); - - if (!userToken) { - const sessid = ctx.cookies.get('signin_with_github_sid'); - - if (!sessid) { - ctx.throw(400, 'invalid session'); - return; - } - - const code = ctx.query.code; - - if (!code || typeof code !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const { redirect_uri, state } = await new Promise((res, rej) => { - redisClient.get(sessid, async (_, state) => { - res(JSON.parse(state)); - }); - }); - - if (ctx.query.state !== state) { - ctx.throw(400, 'invalid session'); - return; - } - - const { accessToken } = await new Promise((res, rej) => - oauth2!.getOAuthAccessToken(code, { - redirect_uri, - }, (err, accessToken, refresh, result) => { - if (err) { - rej(err); - } else if (result.error) { - rej(result.error); - } else { - res({ accessToken }); - } - })); - - const { login, id } = (await getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, { - 'Authorization': `bearer ${accessToken}`, - })) as Record; - if (typeof login !== 'string' || typeof id !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const link = await UserProfiles.createQueryBuilder() - .where('"integrations"->\'github\'->>\'id\' = :id', { id: id }) - .andWhere('"userHost" IS NULL') - .getOne(); - - if (link == null) { - ctx.throw(404, `@${login}と連携しているMisskeyアカウントはありませんでした...`); - return; - } - - signin(ctx, await Users.findOneBy({ id: link.userId }) as ILocalUser, true); - } else { - const code = ctx.query.code; - - if (!code || typeof code !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const { redirect_uri, state } = await new Promise((res, rej) => { - redisClient.get(userToken, async (_, state) => { - res(JSON.parse(state)); - }); - }); - - if (ctx.query.state !== state) { - ctx.throw(400, 'invalid session'); - return; - } - - const { accessToken } = await new Promise((res, rej) => - oauth2!.getOAuthAccessToken( - code, - { redirect_uri }, - (err, accessToken, refresh, result) => { - if (err) { - rej(err); - } else if (result.error) { - rej(result.error); - } else { - res({ accessToken }); - } - })); - - const { login, id } = (await getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, { - 'Authorization': `bearer ${accessToken}`, - })) as Record; - - if (typeof login !== 'string' || typeof id !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - await UserProfiles.update(user.id, { - integrations: { - ...profile.integrations, - github: { - accessToken: accessToken, - id: id, - login: login, - }, - }, - }); - - ctx.body = `GitHub: @${login} を、Misskey: @${user.username} に接続しました!`; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); - } -}); - -export default router; diff --git a/packages/backend/src/server/api/service/twitter.ts b/packages/backend/src/server/api/service/twitter.ts deleted file mode 100644 index 2b4f9f6da..000000000 --- a/packages/backend/src/server/api/service/twitter.ts +++ /dev/null @@ -1,201 +0,0 @@ -import Koa from 'koa'; -import Router from '@koa/router'; -import { v4 as uuid } from 'uuid'; -import autwh from 'autwh'; -import { IsNull } from 'typeorm'; -import { publishMainStream } from '@/services/stream.js'; -import config from '@/config/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Users, UserProfiles } from '@/models/index.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import signin from '../common/signin.js'; -import { redisClient } from '../../../db/redis.js'; - -function getUserToken(ctx: Koa.BaseContext): string | null { - return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; -} - -function compareOrigin(ctx: Koa.BaseContext): boolean { - function normalizeUrl(url?: string): string { - return url == null ? '' : url.endsWith('/') ? url.substr(0, url.length - 1) : url; - } - - const referer = ctx.headers['referer']; - - return (normalizeUrl(referer) === normalizeUrl(config.url)); -} - -// Init router -const router = new Router(); - -router.get('/disconnect/twitter', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (userToken == null) { - ctx.throw(400, 'signin required'); - return; - } - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - delete profile.integrations.twitter; - - await UserProfiles.update(user.id, { - integrations: profile.integrations, - }); - - ctx.body = 'Twitterの連携を解除しました :v:'; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); -}); - -async function getTwAuth() { - const meta = await fetchMeta(true); - - if (meta.enableTwitterIntegration && meta.twitterConsumerKey && meta.twitterConsumerSecret) { - return autwh({ - consumerKey: meta.twitterConsumerKey, - consumerSecret: meta.twitterConsumerSecret, - callbackUrl: `${config.url}/api/tw/cb`, - }); - } else { - return null; - } -} - -router.get('/connect/twitter', async ctx => { - if (!compareOrigin(ctx)) { - ctx.throw(400, 'invalid origin'); - return; - } - - const userToken = getUserToken(ctx); - if (userToken == null) { - ctx.throw(400, 'signin required'); - return; - } - - const twAuth = await getTwAuth(); - const twCtx = await twAuth!.begin(); - redisClient.set(userToken, JSON.stringify(twCtx)); - ctx.redirect(twCtx.url); -}); - -router.get('/signin/twitter', async ctx => { - const twAuth = await getTwAuth(); - const twCtx = await twAuth!.begin(); - - const sessid = uuid(); - - redisClient.set(sessid, JSON.stringify(twCtx)); - - ctx.cookies.set('signin_with_twitter_sid', sessid, { - path: '/', - secure: config.url.startsWith('https'), - httpOnly: true, - }); - - ctx.redirect(twCtx.url); -}); - -router.get('/tw/cb', async ctx => { - const userToken = getUserToken(ctx); - - const twAuth = await getTwAuth(); - - if (userToken == null) { - const sessid = ctx.cookies.get('signin_with_twitter_sid'); - - if (sessid == null) { - ctx.throw(400, 'invalid session'); - return; - } - - const get = new Promise((res, rej) => { - redisClient.get(sessid, async (_, twCtx) => { - res(twCtx); - }); - }); - - const twCtx = await get; - - const verifier = ctx.query.oauth_verifier; - if (!verifier || typeof verifier !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const result = await twAuth!.done(JSON.parse(twCtx), verifier); - - const link = await UserProfiles.createQueryBuilder() - .where('"integrations"->\'twitter\'->>\'userId\' = :id', { id: result.userId }) - .andWhere('"userHost" IS NULL') - .getOne(); - - if (link == null) { - ctx.throw(404, `@${result.screenName}と連携しているMisskeyアカウントはありませんでした...`); - return; - } - - signin(ctx, await Users.findOneBy({ id: link.userId }) as ILocalUser, true); - } else { - const verifier = ctx.query.oauth_verifier; - - if (!verifier || typeof verifier !== 'string') { - ctx.throw(400, 'invalid session'); - return; - } - - const get = new Promise((res, rej) => { - redisClient.get(userToken, async (_, twCtx) => { - res(twCtx); - }); - }); - - const twCtx = await get; - - const result = await twAuth!.done(JSON.parse(twCtx), verifier); - - const user = await Users.findOneByOrFail({ - host: IsNull(), - token: userToken, - }); - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - await UserProfiles.update(user.id, { - integrations: { - ...profile.integrations, - twitter: { - accessToken: result.accessToken, - accessTokenSecret: result.accessTokenSecret, - userId: result.userId, - screenName: result.screenName, - }, - }, - }); - - ctx.body = `Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`; - - // Publish i updated event - publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { - detail: true, - includeSecrets: true, - })); - } -}); - -export default router; diff --git a/packages/backend/src/server/api/stream/channel.ts b/packages/backend/src/server/api/stream/channel.ts deleted file mode 100644 index d2cc5122d..000000000 --- a/packages/backend/src/server/api/stream/channel.ts +++ /dev/null @@ -1,60 +0,0 @@ -import Connection from '.'; - -/** - * Stream channel - */ -export default abstract class Channel { - protected connection: Connection; - public id: string; - public abstract readonly chName: string; - public static readonly shouldShare: boolean; - public static readonly requireCredential: boolean; - - protected get user() { - return this.connection.user; - } - - protected get userProfile() { - return this.connection.userProfile; - } - - protected get following() { - return this.connection.following; - } - - protected get muting() { - return this.connection.muting; - } - - protected get blocking() { - return this.connection.blocking; - } - - protected get followingChannels() { - return this.connection.followingChannels; - } - - protected get subscriber() { - return this.connection.subscriber; - } - - constructor(id: string, connection: Connection) { - this.id = id; - this.connection = connection; - } - - public send(typeOrPayload: any, payload?: any) { - const type = payload === undefined ? typeOrPayload.type : typeOrPayload; - const body = payload === undefined ? typeOrPayload.body : payload; - - this.connection.sendMessageToWs('channel', { - id: this.id, - type: type, - body: body, - }); - } - - public abstract init(params: any): void; - public dispose?(): void; - public onMessage?(type: string, body: any): void; -} diff --git a/packages/backend/src/server/api/stream/channels/antenna.ts b/packages/backend/src/server/api/stream/channels/antenna.ts deleted file mode 100644 index d28320d92..000000000 --- a/packages/backend/src/server/api/stream/channels/antenna.ts +++ /dev/null @@ -1,45 +0,0 @@ -import Channel from '../channel.js'; -import { Notes } from '@/models/index.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { StreamMessages } from '../types.js'; - -export default class extends Channel { - public readonly chName = 'antenna'; - public static shouldShare = false; - public static requireCredential = false; - private antennaId: string; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onEvent = this.onEvent.bind(this); - } - - public async init(params: any) { - this.antennaId = params.antennaId as string; - - // Subscribe stream - this.subscriber.on(`antennaStream:${this.antennaId}`, this.onEvent); - } - - private async onEvent(data: StreamMessages['antenna']['payload']) { - if (data.type === 'note') { - const note = await Notes.pack(data.body.id, this.user, { detail: true }); - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } else { - this.send(data.type, data.body); - } - } - - public dispose() { - // Unsubscribe events - this.subscriber.off(`antennaStream:${this.antennaId}`, this.onEvent); - } -} diff --git a/packages/backend/src/server/api/stream/channels/channel.ts b/packages/backend/src/server/api/stream/channels/channel.ts deleted file mode 100644 index 3cdd89a8b..000000000 --- a/packages/backend/src/server/api/stream/channels/channel.ts +++ /dev/null @@ -1,91 +0,0 @@ -import Channel from '../channel.js'; -import { Notes, Users } from '@/models/index.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { User } from '@/models/entities/user.js'; -import { StreamMessages } from '../types.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'channel'; - public static shouldShare = false; - public static requireCredential = false; - private channelId: string; - private typers: Record = {}; - private emitTypersIntervalId: ReturnType; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - this.emitTypers = this.emitTypers.bind(this); - } - - public async init(params: any) { - this.channelId = params.channelId as string; - - // Subscribe stream - this.subscriber.on('notesStream', this.onNote); - this.subscriber.on(`channelStream:${this.channelId}`, this.onEvent); - this.emitTypersIntervalId = setInterval(this.emitTypers, 5000); - } - - private async onNote(note: Packed<'Note'>) { - if (note.channelId !== this.channelId) return; - - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user, { - detail: true, - }); - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - private onEvent(data: StreamMessages['channel']['payload']) { - if (data.type === 'typing') { - const id = data.body; - const begin = this.typers[id] == null; - this.typers[id] = new Date(); - if (begin) { - this.emitTypers(); - } - } - } - - private async emitTypers() { - const now = new Date(); - - // Remove not typing users - for (const [userId, date] of Object.entries(this.typers)) { - if (now.getTime() - date.getTime() > 5000) delete this.typers[userId]; - } - - const users = await Users.packMany(Object.keys(this.typers), null, { detail: false }); - - this.send({ - type: 'typers', - body: users, - }); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - this.subscriber.off(`channelStream:${this.channelId}`, this.onEvent); - - clearInterval(this.emitTypersIntervalId); - } -} diff --git a/packages/backend/src/server/api/stream/channels/drive.ts b/packages/backend/src/server/api/stream/channels/drive.ts deleted file mode 100644 index 140255acd..000000000 --- a/packages/backend/src/server/api/stream/channels/drive.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Channel from '../channel.js'; - -export default class extends Channel { - public readonly chName = 'drive'; - public static shouldShare = true; - public static requireCredential = true; - - public async init(params: any) { - // Subscribe drive stream - this.subscriber.on(`driveStream:${this.user!.id}`, data => { - this.send(data); - }); - } -} diff --git a/packages/backend/src/server/api/stream/channels/global-timeline.ts b/packages/backend/src/server/api/stream/channels/global-timeline.ts deleted file mode 100644 index 5b4ae850e..000000000 --- a/packages/backend/src/server/api/stream/channels/global-timeline.ts +++ /dev/null @@ -1,77 +0,0 @@ -import Channel from '../channel.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { checkWordMute } from '@/misc/check-word-mute.js'; -import { isInstanceMuted } from '@/misc/is-instance-muted.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'globalTimeline'; - public static shouldShare = true; - public static requireCredential = false; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - const meta = await fetchMeta(); - if (meta.disableGlobalTimeline) { - if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return; - } - - // Subscribe events - this.subscriber.on('notesStream', this.onNote); - } - - private async onNote(note: Packed<'Note'>) { - if (note.visibility !== 'public') return; - if (note.channelId != null) return; - - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user, { - detail: true, - }); - } - - // 関係ない返信は除外 - if (note.reply && !this.user!.showTimelineReplies) { - const reply = note.reply; - // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; - } - - // Ignore notes from instances the user has muted - if (isInstanceMuted(note, new Set(this.userProfile?.mutedInstances ?? []))) return; - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - // 流れてきたNoteがミュートすべきNoteだったら無視する - // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) - // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 - // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 - // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる - if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - } -} diff --git a/packages/backend/src/server/api/stream/channels/hashtag.ts b/packages/backend/src/server/api/stream/channels/hashtag.ts deleted file mode 100644 index 741db447e..000000000 --- a/packages/backend/src/server/api/stream/channels/hashtag.ts +++ /dev/null @@ -1,53 +0,0 @@ -import Channel from '../channel.js'; -import { Notes } from '@/models/index.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'hashtag'; - public static shouldShare = false; - public static requireCredential = false; - private q: string[][]; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - this.q = params.q; - - if (this.q == null) return; - - // Subscribe stream - this.subscriber.on('notesStream', this.onNote); - } - - private async onNote(note: Packed<'Note'>) { - const noteTags = note.tags ? note.tags.map((t: string) => t.toLowerCase()) : []; - const matched = this.q.some(tags => tags.every(tag => noteTags.includes(normalizeForSearch(tag)))); - if (!matched) return; - - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user, { - detail: true, - }); - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - } -} diff --git a/packages/backend/src/server/api/stream/channels/home-timeline.ts b/packages/backend/src/server/api/stream/channels/home-timeline.ts deleted file mode 100644 index 075a242ef..000000000 --- a/packages/backend/src/server/api/stream/channels/home-timeline.ts +++ /dev/null @@ -1,85 +0,0 @@ -import Channel from '../channel.js'; -import { Notes } from '@/models/index.js'; -import { checkWordMute } from '@/misc/check-word-mute.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { isInstanceMuted } from '@/misc/is-instance-muted.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'homeTimeline'; - public static shouldShare = true; - public static requireCredential = true; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - // Subscribe events - this.subscriber.on('notesStream', this.onNote); - } - - private async onNote(note: Packed<'Note'>) { - if (note.channelId) { - if (!this.followingChannels.has(note.channelId)) return; - } else { - // その投稿のユーザーをフォローしていなかったら弾く - if ((this.user!.id !== note.userId) && !this.following.has(note.userId)) return; - } - - // Ignore notes from instances the user has muted - if (isInstanceMuted(note, new Set(this.userProfile?.mutedInstances ?? []))) return; - - if (['followers', 'specified'].includes(note.visibility)) { - note = await Notes.pack(note.id, this.user!, { - detail: true, - }); - - if (note.isHidden) { - return; - } - } else { - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user!, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user!, { - detail: true, - }); - } - } - - // 関係ない返信は除外 - if (note.reply && !this.user!.showTimelineReplies) { - const reply = note.reply; - // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - // 流れてきたNoteがミュートすべきNoteだったら無視する - // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) - // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 - // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 - // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる - if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - } -} diff --git a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts deleted file mode 100644 index f5dedf77c..000000000 --- a/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts +++ /dev/null @@ -1,93 +0,0 @@ -import Channel from '../channel.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { checkWordMute } from '@/misc/check-word-mute.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { isInstanceMuted } from '@/misc/is-instance-muted.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'hybridTimeline'; - public static shouldShare = true; - public static requireCredential = true; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - const meta = await fetchMeta(); - if (meta.disableLocalTimeline && !this.user!.isAdmin && !this.user!.isModerator) return; - - // Subscribe events - this.subscriber.on('notesStream', this.onNote); - } - - private async onNote(note: Packed<'Note'>) { - // チャンネルの投稿ではなく、自分自身の投稿 または - // チャンネルの投稿ではなく、その投稿のユーザーをフォローしている または - // チャンネルの投稿ではなく、全体公開のローカルの投稿 または - // フォローしているチャンネルの投稿 の場合だけ - if (!( - (note.channelId == null && this.user!.id === note.userId) || - (note.channelId == null && this.following.has(note.userId)) || - (note.channelId == null && (note.user.host == null && note.visibility === 'public')) || - (note.channelId != null && this.followingChannels.has(note.channelId)) - )) return; - - if (['followers', 'specified'].includes(note.visibility)) { - note = await Notes.pack(note.id, this.user!, { - detail: true, - }); - - if (note.isHidden) { - return; - } - } else { - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user!, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user!, { - detail: true, - }); - } - } - - // Ignore notes from instances the user has muted - if (isInstanceMuted(note, new Set(this.userProfile?.mutedInstances ?? []))) return; - - // 関係ない返信は除外 - if (note.reply && !this.user!.showTimelineReplies) { - const reply = note.reply; - // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - // 流れてきたNoteがミュートすべきNoteだったら無視する - // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) - // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 - // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 - // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる - if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - } -} diff --git a/packages/backend/src/server/api/stream/channels/index.ts b/packages/backend/src/server/api/stream/channels/index.ts deleted file mode 100644 index d422edde8..000000000 --- a/packages/backend/src/server/api/stream/channels/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import main from './main.js'; -import homeTimeline from './home-timeline.js'; -import localTimeline from './local-timeline.js'; -import hybridTimeline from './hybrid-timeline.js'; -import globalTimeline from './global-timeline.js'; -import serverStats from './server-stats.js'; -import queueStats from './queue-stats.js'; -import userList from './user-list.js'; -import antenna from './antenna.js'; -import messaging from './messaging.js'; -import messagingIndex from './messaging-index.js'; -import drive from './drive.js'; -import hashtag from './hashtag.js'; -import channel from './channel.js'; -import admin from './admin.js'; - -export default { - main, - homeTimeline, - localTimeline, - hybridTimeline, - globalTimeline, - serverStats, - queueStats, - userList, - antenna, - messaging, - messagingIndex, - drive, - hashtag, - channel, - admin, -}; diff --git a/packages/backend/src/server/api/stream/channels/local-timeline.ts b/packages/backend/src/server/api/stream/channels/local-timeline.ts deleted file mode 100644 index f01f47723..000000000 --- a/packages/backend/src/server/api/stream/channels/local-timeline.ts +++ /dev/null @@ -1,74 +0,0 @@ -import Channel from '../channel.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { checkWordMute } from '@/misc/check-word-mute.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'localTimeline'; - public static shouldShare = true; - public static requireCredential = false; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - const meta = await fetchMeta(); - if (meta.disableLocalTimeline) { - if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return; - } - - // Subscribe events - this.subscriber.on('notesStream', this.onNote); - } - - private async onNote(note: Packed<'Note'>) { - if (note.user.host !== null) return; - if (note.visibility !== 'public') return; - if (note.channelId != null && !this.followingChannels.has(note.channelId)) return; - - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user, { - detail: true, - }); - } - - // 関係ない返信は除外 - if (note.reply && !this.user!.showTimelineReplies) { - const reply = note.reply; - // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 - if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - // 流れてきたNoteがミュートすべきNoteだったら無視する - // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) - // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 - // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 - // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる - if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; - - this.connection.cacheNote(note); - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off('notesStream', this.onNote); - } -} diff --git a/packages/backend/src/server/api/stream/channels/main.ts b/packages/backend/src/server/api/stream/channels/main.ts deleted file mode 100644 index 9cfea0bfc..000000000 --- a/packages/backend/src/server/api/stream/channels/main.ts +++ /dev/null @@ -1,46 +0,0 @@ -import Channel from '../channel.js'; -import { Notes } from '@/models/index.js'; -import { isInstanceMuted, isUserFromMutedInstance } from '@/misc/is-instance-muted.js'; - -export default class extends Channel { - public readonly chName = 'main'; - public static shouldShare = true; - public static requireCredential = true; - - public async init(params: any) { - // Subscribe main stream channel - this.subscriber.on(`mainStream:${this.user!.id}`, async data => { - switch (data.type) { - case 'notification': { - // Ignore notifications from instances the user has muted - if (isUserFromMutedInstance(data.body, new Set(this.userProfile?.mutedInstances ?? []))) return; - if (data.body.userId && this.muting.has(data.body.userId)) return; - - if (data.body.note && data.body.note.isHidden) { - const note = await Notes.pack(data.body.note.id, this.user, { - detail: true, - }); - this.connection.cacheNote(note); - data.body.note = note; - } - break; - } - case 'mention': { - if (isInstanceMuted(data.body, new Set(this.userProfile?.mutedInstances ?? []))) return; - - if (this.muting.has(data.body.userId)) return; - if (data.body.isHidden) { - const note = await Notes.pack(data.body.id, this.user, { - detail: true, - }); - this.connection.cacheNote(note); - data.body = note; - } - break; - } - } - - this.send(data.type, data.body); - }); - } -} diff --git a/packages/backend/src/server/api/stream/channels/messaging.ts b/packages/backend/src/server/api/stream/channels/messaging.ts deleted file mode 100644 index 877d44c38..000000000 --- a/packages/backend/src/server/api/stream/channels/messaging.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message.js'; -import Channel from '../channel.js'; -import { UserGroupJoinings, Users, MessagingMessages } from '@/models/index.js'; -import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { StreamMessages } from '../types.js'; - -export default class extends Channel { - public readonly chName = 'messaging'; - public static shouldShare = false; - public static requireCredential = true; - - private otherpartyId: string | null; - private otherparty: User | null; - private groupId: string | null; - private subCh: `messagingStream:${User['id']}-${User['id']}` | `messagingStream:${UserGroup['id']}`; - private typers: Record = {}; - private emitTypersIntervalId: ReturnType; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onEvent = this.onEvent.bind(this); - this.onMessage = this.onMessage.bind(this); - this.emitTypers = this.emitTypers.bind(this); - } - - public async init(params: any) { - this.otherpartyId = params.otherparty; - this.otherparty = this.otherpartyId ? await Users.findOneByOrFail({ id: this.otherpartyId }) : null; - this.groupId = params.group; - - // Check joining - if (this.groupId) { - const joining = await UserGroupJoinings.findOneBy({ - userId: this.user!.id, - userGroupId: this.groupId, - }); - - if (joining == null) { - return; - } - } - - this.emitTypersIntervalId = setInterval(this.emitTypers, 5000); - - this.subCh = this.otherpartyId - ? `messagingStream:${this.user!.id}-${this.otherpartyId}` - : `messagingStream:${this.groupId}`; - - // Subscribe messaging stream - this.subscriber.on(this.subCh, this.onEvent); - } - - private onEvent(data: StreamMessages['messaging']['payload'] | StreamMessages['groupMessaging']['payload']) { - if (data.type === 'typing') { - const id = data.body; - const begin = this.typers[id] == null; - this.typers[id] = new Date(); - if (begin) { - this.emitTypers(); - } - } else { - this.send(data); - } - } - - public onMessage(type: string, body: any) { - switch (type) { - case 'read': - if (this.otherpartyId) { - readUserMessagingMessage(this.user!.id, this.otherpartyId, [body.id]); - - // リモートユーザーからのメッセージだったら既読配信 - if (Users.isLocalUser(this.user!) && Users.isRemoteUser(this.otherparty!)) { - MessagingMessages.findOneBy({ id: body.id }).then(message => { - if (message) deliverReadActivity(this.user as ILocalUser, this.otherparty as IRemoteUser, message); - }); - } - } else if (this.groupId) { - readGroupMessagingMessage(this.user!.id, this.groupId, [body.id]); - } - break; - } - } - - private async emitTypers() { - const now = new Date(); - - // Remove not typing users - for (const [userId, date] of Object.entries(this.typers)) { - if (now.getTime() - date.getTime() > 5000) delete this.typers[userId]; - } - - const users = await Users.packMany(Object.keys(this.typers), null, { detail: false }); - - this.send({ - type: 'typers', - body: users, - }); - } - - public dispose() { - this.subscriber.off(this.subCh, this.onEvent); - - clearInterval(this.emitTypersIntervalId); - } -} diff --git a/packages/backend/src/server/api/stream/channels/queue-stats.ts b/packages/backend/src/server/api/stream/channels/queue-stats.ts deleted file mode 100644 index b67600474..000000000 --- a/packages/backend/src/server/api/stream/channels/queue-stats.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Xev from 'xev'; -import Channel from '../channel.js'; - -const ev = new Xev(); - -export default class extends Channel { - public readonly chName = 'queueStats'; - public static shouldShare = true; - public static requireCredential = false; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onStats = this.onStats.bind(this); - this.onMessage = this.onMessage.bind(this); - } - - public async init(params: any) { - ev.addListener('queueStats', this.onStats); - } - - private onStats(stats: any) { - this.send('stats', stats); - } - - public onMessage(type: string, body: any) { - switch (type) { - case 'requestLog': - ev.once(`queueStatsLog:${body.id}`, statsLog => { - this.send('statsLog', statsLog); - }); - ev.emit('requestQueueStatsLog', { - id: body.id, - length: body.length, - }); - break; - } - } - - public dispose() { - ev.removeListener('queueStats', this.onStats); - } -} diff --git a/packages/backend/src/server/api/stream/channels/server-stats.ts b/packages/backend/src/server/api/stream/channels/server-stats.ts deleted file mode 100644 index db75a6fa3..000000000 --- a/packages/backend/src/server/api/stream/channels/server-stats.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Xev from 'xev'; -import Channel from '../channel.js'; - -const ev = new Xev(); - -export default class extends Channel { - public readonly chName = 'serverStats'; - public static shouldShare = true; - public static requireCredential = false; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.onStats = this.onStats.bind(this); - this.onMessage = this.onMessage.bind(this); - } - - public async init(params: any) { - ev.addListener('serverStats', this.onStats); - } - - private onStats(stats: any) { - this.send('stats', stats); - } - - public onMessage(type: string, body: any) { - switch (type) { - case 'requestLog': - ev.once(`serverStatsLog:${body.id}`, statsLog => { - this.send('statsLog', statsLog); - }); - ev.emit('requestServerStatsLog', { - id: body.id, - length: body.length, - }); - break; - } - } - - public dispose() { - ev.removeListener('serverStats', this.onStats); - } -} diff --git a/packages/backend/src/server/api/stream/channels/user-list.ts b/packages/backend/src/server/api/stream/channels/user-list.ts deleted file mode 100644 index 97ad2983c..000000000 --- a/packages/backend/src/server/api/stream/channels/user-list.ts +++ /dev/null @@ -1,92 +0,0 @@ -import Channel from '../channel.js'; -import { Notes, UserListJoinings, UserLists } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { Packed } from '@/misc/schema.js'; - -export default class extends Channel { - public readonly chName = 'userList'; - public static shouldShare = false; - public static requireCredential = false; - private listId: string; - public listUsers: User['id'][] = []; - private listUsersClock: NodeJS.Timer; - - constructor(id: string, connection: Channel['connection']) { - super(id, connection); - this.updateListUsers = this.updateListUsers.bind(this); - this.onNote = this.onNote.bind(this); - } - - public async init(params: any) { - this.listId = params.listId as string; - - // Check existence and owner - const list = await UserLists.findOneBy({ - id: this.listId, - userId: this.user!.id, - }); - if (!list) return; - - // Subscribe stream - this.subscriber.on(`userListStream:${this.listId}`, this.send); - - this.subscriber.on('notesStream', this.onNote); - - this.updateListUsers(); - this.listUsersClock = setInterval(this.updateListUsers, 5000); - } - - private async updateListUsers() { - const users = await UserListJoinings.find({ - where: { - userListId: this.listId, - }, - select: ['userId'], - }); - - this.listUsers = users.map(x => x.userId); - } - - private async onNote(note: Packed<'Note'>) { - if (!this.listUsers.includes(note.userId)) return; - - if (['followers', 'specified'].includes(note.visibility)) { - note = await Notes.pack(note.id, this.user, { - detail: true, - }); - - if (note.isHidden) { - return; - } - } else { - // リプライなら再pack - if (note.replyId != null) { - note.reply = await Notes.pack(note.replyId, this.user, { - detail: true, - }); - } - // Renoteなら再pack - if (note.renoteId != null) { - note.renote = await Notes.pack(note.renoteId, this.user, { - detail: true, - }); - } - } - - // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.muting)) return; - // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する - if (isUserRelated(note, this.blocking)) return; - - this.send('note', note); - } - - public dispose() { - // Unsubscribe events - this.subscriber.off(`userListStream:${this.listId}`, this.send); - this.subscriber.off('notesStream', this.onNote); - - clearInterval(this.listUsersClock); - } -} diff --git a/packages/backend/src/server/api/stream/index.ts b/packages/backend/src/server/api/stream/index.ts deleted file mode 100644 index 2d23145f1..000000000 --- a/packages/backend/src/server/api/stream/index.ts +++ /dev/null @@ -1,374 +0,0 @@ -import { EventEmitter } from 'events'; -import * as websocket from 'websocket'; -import readNote from '@/services/note/read.js'; -import { User } from '@/models/entities/user.js'; -import { Channel as ChannelModel } from '@/models/entities/channel.js'; -import { Users, Followings, Mutings, UserProfiles, ChannelFollowings, Blockings } from '@/models/index.js'; -import { AccessToken } from '@/models/entities/access-token.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { publishChannelStream, publishGroupMessagingStream, publishMessagingStream } from '@/services/stream.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { Packed } from '@/misc/schema.js'; -import { readNotification } from '../common/read-notification.js'; -import channels from './channels/index.js'; -import Channel from './channel.js'; -import { StreamEventEmitter, StreamMessages } from './types.js'; - -/** - * Main stream connection - */ -export default class Connection { - public user?: User; - public userProfile?: UserProfile | null; - public following: Set = new Set(); - public muting: Set = new Set(); - public blocking: Set = new Set(); // "被"blocking - public followingChannels: Set = new Set(); - public token?: AccessToken; - private wsConnection: websocket.connection; - public subscriber: StreamEventEmitter; - private channels: Channel[] = []; - private subscribingNotes: any = {}; - private cachedNotes: Packed<'Note'>[] = []; - - constructor( - wsConnection: websocket.connection, - subscriber: EventEmitter, - user: User | null | undefined, - token: AccessToken | null | undefined, - ) { - this.wsConnection = wsConnection; - this.subscriber = subscriber; - if (user) this.user = user; - if (token) this.token = token; - - this.onWsConnectionMessage = this.onWsConnectionMessage.bind(this); - this.onUserEvent = this.onUserEvent.bind(this); - this.onNoteStreamMessage = this.onNoteStreamMessage.bind(this); - this.onBroadcastMessage = this.onBroadcastMessage.bind(this); - - this.wsConnection.on('message', this.onWsConnectionMessage); - - this.subscriber.on('broadcast', data => { - this.onBroadcastMessage(data); - }); - - if (this.user) { - this.updateFollowing(); - this.updateMuting(); - this.updateBlocking(); - this.updateFollowingChannels(); - this.updateUserProfile(); - - this.subscriber.on(`user:${this.user.id}`, this.onUserEvent); - } - } - - private onUserEvent(data: StreamMessages['user']['payload']) { // { type, body }と展開するとそれぞれ型が分離してしまう - switch (data.type) { - case 'follow': - this.following.add(data.body.id); - break; - - case 'unfollow': - this.following.delete(data.body.id); - break; - - case 'mute': - this.muting.add(data.body.id); - break; - - case 'unmute': - this.muting.delete(data.body.id); - break; - - // TODO: block events - - case 'followChannel': - this.followingChannels.add(data.body.id); - break; - - case 'unfollowChannel': - this.followingChannels.delete(data.body.id); - break; - - case 'updateUserProfile': - this.userProfile = data.body; - break; - - case 'terminate': - this.wsConnection.close(); - this.dispose(); - break; - - default: - break; - } - } - - /** - * クライアントからメッセージ受信時 - */ - private async onWsConnectionMessage(data: websocket.Message) { - if (data.type !== 'utf8') return; - if (data.utf8Data == null) return; - - let obj: Record; - - try { - obj = JSON.parse(data.utf8Data); - } catch (e) { - return; - } - - const { type, body } = obj; - - switch (type) { - case 'readNotification': this.onReadNotification(body); break; - case 'subNote': this.onSubscribeNote(body); break; - case 's': this.onSubscribeNote(body); break; // alias - case 'sr': this.onSubscribeNote(body); this.readNote(body); break; - case 'unsubNote': this.onUnsubscribeNote(body); break; - case 'un': this.onUnsubscribeNote(body); break; // alias - case 'connect': this.onChannelConnectRequested(body); break; - case 'disconnect': this.onChannelDisconnectRequested(body); break; - case 'channel': this.onChannelMessageRequested(body); break; - case 'ch': this.onChannelMessageRequested(body); break; // alias - - // 個々のチャンネルではなくルートレベルでこれらのメッセージを受け取る理由は、 - // クライアントの事情を考慮したとき、入力フォームはノートチャンネルやメッセージのメインコンポーネントとは別 - // なこともあるため、それらのコンポーネントがそれぞれ各チャンネルに接続するようにするのは面倒なため。 - case 'typingOnChannel': this.typingOnChannel(body.channel); break; - case 'typingOnMessaging': this.typingOnMessaging(body); break; - } - } - - private onBroadcastMessage(data: StreamMessages['broadcast']['payload']) { - this.sendMessageToWs(data.type, data.body); - } - - public cacheNote(note: Packed<'Note'>) { - const add = (note: Packed<'Note'>) => { - const existIndex = this.cachedNotes.findIndex(n => n.id === note.id); - if (existIndex > -1) { - this.cachedNotes[existIndex] = note; - return; - } - - this.cachedNotes.unshift(note); - if (this.cachedNotes.length > 32) { - this.cachedNotes.splice(32); - } - }; - - add(note); - if (note.reply) add(note.reply); - if (note.renote) add(note.renote); - } - - private readNote(body: any) { - const id = body.id; - - const note = this.cachedNotes.find(n => n.id === id); - if (note == null) return; - - if (this.user && (note.userId !== this.user.id)) { - readNote(this.user.id, [note], { - following: this.following, - followingChannels: this.followingChannels, - }); - } - } - - private onReadNotification(payload: any) { - if (!payload.id) return; - readNotification(this.user!.id, [payload.id]); - } - - /** - * 投稿購読要求時 - */ - private onSubscribeNote(payload: any) { - if (!payload.id) return; - - if (this.subscribingNotes[payload.id] == null) { - this.subscribingNotes[payload.id] = 0; - } - - this.subscribingNotes[payload.id]++; - - if (this.subscribingNotes[payload.id] === 1) { - this.subscriber.on(`noteStream:${payload.id}`, this.onNoteStreamMessage); - } - } - - /** - * 投稿購読解除要求時 - */ - private onUnsubscribeNote(payload: any) { - if (!payload.id) return; - - this.subscribingNotes[payload.id]--; - if (this.subscribingNotes[payload.id] <= 0) { - delete this.subscribingNotes[payload.id]; - this.subscriber.off(`noteStream:${payload.id}`, this.onNoteStreamMessage); - } - } - - private async onNoteStreamMessage(data: StreamMessages['note']['payload']) { - this.sendMessageToWs('noteUpdated', { - id: data.body.id, - type: data.type, - body: data.body.body, - }); - } - - /** - * チャンネル接続要求時 - */ - private onChannelConnectRequested(payload: any) { - const { channel, id, params, pong } = payload; - this.connectChannel(id, params, channel, pong); - } - - /** - * チャンネル切断要求時 - */ - private onChannelDisconnectRequested(payload: any) { - const { id } = payload; - this.disconnectChannel(id); - } - - /** - * クライアントにメッセージ送信 - */ - public sendMessageToWs(type: string, payload: any) { - this.wsConnection.send(JSON.stringify({ - type: type, - body: payload, - })); - } - - /** - * チャンネルに接続 - */ - public connectChannel(id: string, params: any, channel: string, pong = false) { - if ((channels as any)[channel].requireCredential && this.user == null) { - return; - } - - // 共有可能チャンネルに接続しようとしていて、かつそのチャンネルに既に接続していたら無意味なので無視 - if ((channels as any)[channel].shouldShare && this.channels.some(c => c.chName === channel)) { - return; - } - - const ch: Channel = new (channels as any)[channel](id, this); - this.channels.push(ch); - ch.init(params); - - if (pong) { - this.sendMessageToWs('connected', { - id: id, - }); - } - } - - /** - * チャンネルから切断 - * @param id チャンネルコネクションID - */ - public disconnectChannel(id: string) { - const channel = this.channels.find(c => c.id === id); - - if (channel) { - if (channel.dispose) channel.dispose(); - this.channels = this.channels.filter(c => c.id !== id); - } - } - - /** - * チャンネルへメッセージ送信要求時 - * @param data メッセージ - */ - private onChannelMessageRequested(data: any) { - const channel = this.channels.find(c => c.id === data.id); - if (channel != null && channel.onMessage != null) { - channel.onMessage(data.type, data.body); - } - } - - private typingOnChannel(channel: ChannelModel['id']) { - if (this.user) { - publishChannelStream(channel, 'typing', this.user.id); - } - } - - private typingOnMessaging(param: { partner?: User['id']; group?: UserGroup['id']; }) { - if (this.user) { - if (param.partner) { - publishMessagingStream(param.partner, this.user.id, 'typing', this.user.id); - } else if (param.group) { - publishGroupMessagingStream(param.group, 'typing', this.user.id); - } - } - } - - private async updateFollowing() { - const followings = await Followings.find({ - where: { - followerId: this.user!.id, - }, - select: ['followeeId'], - }); - - this.following = new Set(followings.map(x => x.followeeId)); - } - - private async updateMuting() { - const mutings = await Mutings.find({ - where: { - muterId: this.user!.id, - }, - select: ['muteeId'], - }); - - this.muting = new Set(mutings.map(x => x.muteeId)); - } - - private async updateBlocking() { // ここでいうBlockingは被Blockingの意 - const blockings = await Blockings.find({ - where: { - blockeeId: this.user!.id, - }, - select: ['blockerId'], - }); - - this.blocking = new Set(blockings.map(x => x.blockerId)); - } - - private async updateFollowingChannels() { - const followings = await ChannelFollowings.find({ - where: { - followerId: this.user!.id, - }, - select: ['followeeId'], - }); - - this.followingChannels = new Set(followings.map(x => x.followeeId)); - } - - private async updateUserProfile() { - this.userProfile = await UserProfiles.findOneBy({ - userId: this.user!.id, - }); - } - - /** - * ストリームが切れたとき - */ - public dispose() { - for (const c of this.channels.filter(c => c.dispose)) { - if (c.dispose) c.dispose(); - } - } -} diff --git a/packages/backend/src/server/api/stream/types.ts b/packages/backend/src/server/api/stream/types.ts deleted file mode 100644 index 3b0a75d79..000000000 --- a/packages/backend/src/server/api/stream/types.ts +++ /dev/null @@ -1,260 +0,0 @@ -import { EventEmitter } from 'events'; -import Emitter from 'strict-event-emitter-types'; -import { Channel } from '@/models/entities/channel.js'; -import { User } from '@/models/entities/user.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { Note } from '@/models/entities/note.js'; -import { Antenna } from '@/models/entities/antenna.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFolder } from '@/models/entities/drive-folder.js'; -import { Emoji } from '@/models/entities/emoji.js'; -import { UserList } from '@/models/entities/user-list.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { AbuseUserReport } from '@/models/entities/abuse-user-report.js'; -import { Signin } from '@/models/entities/signin.js'; -import { Page } from '@/models/entities/page.js'; -import { Packed } from '@/misc/schema.js'; -import { Webhook } from '@/models/entities/webhook'; - -//#region Stream type-body definitions -export interface InternalStreamTypes { - userChangeSuspendedState: { id: User['id']; isSuspended: User['isSuspended']; }; - userChangeSilencedState: { id: User['id']; isSilenced: User['isSilenced']; }; - userChangeModeratorState: { id: User['id']; isModerator: User['isModerator']; }; - userTokenRegenerated: { id: User['id']; oldToken: User['token']; newToken: User['token']; }; - remoteUserUpdated: { id: User['id']; }; - webhookCreated: Webhook; - webhookDeleted: Webhook; - webhookUpdated: Webhook; - antennaCreated: Antenna; - antennaDeleted: Antenna; - antennaUpdated: Antenna; -} - -export interface BroadcastTypes { - emojiAdded: { - emoji: Packed<'Emoji'>; - }; -} - -export interface UserStreamTypes { - terminate: Record; - followChannel: Channel; - unfollowChannel: Channel; - updateUserProfile: UserProfile; - mute: User; - unmute: User; - follow: Packed<'UserDetailedNotMe'>; - unfollow: Packed<'User'>; - userAdded: Packed<'User'>; -} - -export interface MainStreamTypes { - notification: Packed<'Notification'>; - mention: Packed<'Note'>; - reply: Packed<'Note'>; - renote: Packed<'Note'>; - follow: Packed<'UserDetailedNotMe'>; - followed: Packed<'User'>; - unfollow: Packed<'User'>; - meUpdated: Packed<'User'>; - pageEvent: { - pageId: Page['id']; - event: string; - var: any; - userId: User['id']; - user: Packed<'User'>; - }; - urlUploadFinished: { - marker?: string | null; - file: Packed<'DriveFile'>; - }; - readAllNotifications: undefined; - unreadNotification: Packed<'Notification'>; - unreadMention: Note['id']; - readAllUnreadMentions: undefined; - unreadSpecifiedNote: Note['id']; - readAllUnreadSpecifiedNotes: undefined; - readAllMessagingMessages: undefined; - messagingMessage: Packed<'MessagingMessage'>; - unreadMessagingMessage: Packed<'MessagingMessage'>; - readAllAntennas: undefined; - unreadAntenna: Antenna; - readAllAnnouncements: undefined; - readAllChannels: undefined; - unreadChannel: Note['id']; - myTokenRegenerated: undefined; - signin: Signin; - registryUpdated: { - scope?: string[]; - key: string; - value: any | null; - }; - driveFileCreated: Packed<'DriveFile'>; - readAntenna: Antenna; - receiveFollowRequest: Packed<'User'>; -} - -export interface DriveStreamTypes { - fileCreated: Packed<'DriveFile'>; - fileDeleted: DriveFile['id']; - fileUpdated: Packed<'DriveFile'>; - folderCreated: Packed<'DriveFolder'>; - folderDeleted: DriveFolder['id']; - folderUpdated: Packed<'DriveFolder'>; -} - -export interface NoteStreamTypes { - pollVoted: { - choice: number; - userId: User['id']; - }; - deleted: { - deletedAt: Date; - }; - reacted: { - reaction: string; - emoji?: { - name: string; - url: string; - } | null; - userId: User['id']; - }; - unreacted: { - reaction: string; - userId: User['id']; - }; -} -type NoteStreamEventTypes = { - [key in keyof NoteStreamTypes]: { - id: Note['id']; - body: NoteStreamTypes[key]; - }; -}; - -export interface ChannelStreamTypes { - typing: User['id']; -} - -export interface UserListStreamTypes { - userAdded: Packed<'User'>; - userRemoved: Packed<'User'>; -} - -export interface AntennaStreamTypes { - note: Note; -} - -export interface MessagingStreamTypes { - read: MessagingMessage['id'][]; - typing: User['id']; - message: Packed<'MessagingMessage'>; - deleted: MessagingMessage['id']; -} - -export interface GroupMessagingStreamTypes { - read: { - ids: MessagingMessage['id'][]; - userId: User['id']; - }; - typing: User['id']; - message: Packed<'MessagingMessage'>; - deleted: MessagingMessage['id']; -} - -export interface MessagingIndexStreamTypes { - read: MessagingMessage['id'][]; - message: Packed<'MessagingMessage'>; -} - -export interface AdminStreamTypes { - newAbuseUserReport: { - id: AbuseUserReport['id']; - targetUserId: User['id'], - reporterId: User['id'], - comment: string; - }; -} -//#endregion - -// 辞書(interface or type)から{ type, body }ユニオンを定義 -// https://stackoverflow.com/questions/49311989/can-i-infer-the-type-of-a-value-using-extends-keyof-type -// VS Codeの展開を防止するためにEvents型を定義 -type Events = { [K in keyof T]: { type: K; body: T[K]; } }; -type EventUnionFromDictionary< - T extends object, - U = Events -> = U[keyof U]; - -// name/messages(spec) pairs dictionary -export type StreamMessages = { - internal: { - name: 'internal'; - payload: EventUnionFromDictionary; - }; - broadcast: { - name: 'broadcast'; - payload: EventUnionFromDictionary; - }; - user: { - name: `user:${User['id']}`; - payload: EventUnionFromDictionary; - }; - main: { - name: `mainStream:${User['id']}`; - payload: EventUnionFromDictionary; - }; - drive: { - name: `driveStream:${User['id']}`; - payload: EventUnionFromDictionary; - }; - note: { - name: `noteStream:${Note['id']}`; - payload: EventUnionFromDictionary; - }; - channel: { - name: `channelStream:${Channel['id']}`; - payload: EventUnionFromDictionary; - }; - userList: { - name: `userListStream:${UserList['id']}`; - payload: EventUnionFromDictionary; - }; - antenna: { - name: `antennaStream:${Antenna['id']}`; - payload: EventUnionFromDictionary; - }; - messaging: { - name: `messagingStream:${User['id']}-${User['id']}`; - payload: EventUnionFromDictionary; - }; - groupMessaging: { - name: `messagingStream:${UserGroup['id']}`; - payload: EventUnionFromDictionary; - }; - messagingIndex: { - name: `messagingIndexStream:${User['id']}`; - payload: EventUnionFromDictionary; - }; - admin: { - name: `adminStream:${User['id']}`; - payload: EventUnionFromDictionary; - }; - notes: { - name: 'notesStream'; - payload: Packed<'Note'>; - }; -}; - -// API event definitions -// ストリームごとのEmitterの辞書を用意 -type EventEmitterDictionary = { [x in keyof StreamMessages]: Emitter void }> }; -// 共用体型を交差型にする型 https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection -type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; -// Emitter辞書から共用体型を作り、UnionToIntersectionで交差型にする -export type StreamEventEmitter = UnionToIntersection; -// { [y in name]: (e: spec) => void }をまとめてその交差型をEmitterにかけるとts(2590)にひっかかる - -// provide stream channels union -export type StreamChannels = StreamMessages[keyof StreamMessages]['name']; diff --git a/packages/backend/src/server/api/streaming.ts b/packages/backend/src/server/api/streaming.ts deleted file mode 100644 index f8e42d27f..000000000 --- a/packages/backend/src/server/api/streaming.ts +++ /dev/null @@ -1,67 +0,0 @@ -import * as http from 'node:http'; -import * as websocket from 'websocket'; - -import MainStreamConnection from './stream/index.js'; -import { ParsedUrlQuery } from 'querystring'; -import authenticate from './authenticate.js'; -import { EventEmitter } from 'events'; -import { subsdcriber as redisClient } from '../../db/redis.js'; -import { Users } from '@/models/index.js'; - -export const initializeStreamingServer = (server: http.Server) => { - // Init websocket server - const ws = new websocket.server({ - httpServer: server, - }); - - ws.on('request', async (request) => { - const q = request.resourceURL.query as ParsedUrlQuery; - - // TODO: トークンが間違ってるなどしてauthenticateに失敗したら - // コネクション切断するなりエラーメッセージ返すなりする - // (現状はエラーがキャッチされておらずサーバーのログに流れて邪魔なので) - const [user, app] = await authenticate(q.i as string); - - if (user?.isSuspended) { - request.reject(400); - return; - } - - const connection = request.accept(); - - const ev = new EventEmitter(); - - async function onRedisMessage(_: string, data: string) { - const parsed = JSON.parse(data); - ev.emit(parsed.channel, parsed.message); - } - - redisClient.on('message', onRedisMessage); - - const main = new MainStreamConnection(connection, ev, user, app); - - const intervalId = user ? setInterval(() => { - Users.update(user.id, { - lastActiveDate: new Date(), - }); - }, 1000 * 60 * 5) : null; - if (user) { - Users.update(user.id, { - lastActiveDate: new Date(), - }); - } - - connection.once('close', () => { - ev.removeAllListeners(); - main.dispose(); - redisClient.off('message', onRedisMessage); - if (intervalId) clearInterval(intervalId); - }); - - connection.on('message', async (data) => { - if (data.type === 'utf8' && data.utf8Data === 'ping') { - connection.send('pong'); - } - }); - }); -}; diff --git a/packages/backend/src/server/file/index.ts b/packages/backend/src/server/file/index.ts deleted file mode 100644 index 07a493700..000000000 --- a/packages/backend/src/server/file/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * File Server - */ - -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import Koa from 'koa'; -import cors from '@koa/cors'; -import Router from '@koa/router'; -import sendDriveFile from './send-drive-file.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -// Init app -const app = new Koa(); -app.use(cors()); -app.use(async (ctx, next) => { - ctx.set('Content-Security-Policy', `default-src 'none'; img-src 'self'; media-src 'self'; style-src 'unsafe-inline'`); - await next(); -}); - -// Init router -const router = new Router(); - -router.get('/app-default.jpg', ctx => { - const file = fs.createReadStream(`${_dirname}/assets/dummy.png`); - ctx.body = file; - ctx.set('Content-Type', 'image/jpeg'); - ctx.set('Cache-Control', 'max-age=31536000, immutable'); -}); - -router.get('/:key', sendDriveFile); -router.get('/:key/(.*)', sendDriveFile); - -// Register router -app.use(router.routes()); - -export default app; diff --git a/packages/backend/src/server/file/send-drive-file.ts b/packages/backend/src/server/file/send-drive-file.ts deleted file mode 100644 index c34e04314..000000000 --- a/packages/backend/src/server/file/send-drive-file.ts +++ /dev/null @@ -1,126 +0,0 @@ -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import Koa from 'koa'; -import send from 'koa-send'; -import rename from 'rename'; -import { serverLogger } from '../index.js'; -import { contentDisposition } from '@/misc/content-disposition.js'; -import { DriveFiles } from '@/models/index.js'; -import { InternalStorage } from '@/services/drive/internal-storage.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { downloadUrl } from '@/misc/download-url.js'; -import { detectType } from '@/misc/get-file-info.js'; -import { convertToWebp, convertToJpeg, convertToPng } from '@/services/drive/image-processor.js'; -import { GenerateVideoThumbnail } from '@/services/drive/generate-video-thumbnail.js'; -import { StatusError } from '@/misc/fetch.js'; -import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -const assets = `${_dirname}/../../server/file/assets/`; - -const commonReadableHandlerGenerator = (ctx: Koa.Context) => (e: Error): void => { - serverLogger.error(e); - ctx.status = 500; - ctx.set('Cache-Control', 'max-age=300'); -}; - -// eslint-disable-next-line import/no-default-export -export default async function(ctx: Koa.Context) { - const key = ctx.params.key; - - // Fetch drive file - const file = await DriveFiles.createQueryBuilder('file') - .where('file.accessKey = :accessKey', { accessKey: key }) - .orWhere('file.thumbnailAccessKey = :thumbnailAccessKey', { thumbnailAccessKey: key }) - .orWhere('file.webpublicAccessKey = :webpublicAccessKey', { webpublicAccessKey: key }) - .getOne(); - - if (file == null) { - ctx.status = 404; - ctx.set('Cache-Control', 'max-age=86400'); - await send(ctx as any, '/dummy.png', { root: assets }); - return; - } - - const isThumbnail = file.thumbnailAccessKey === key; - const isWebpublic = file.webpublicAccessKey === key; - - if (!file.storedInternal) { - if (file.isLink && file.uri) { // 期限切れリモートファイル - const [path, cleanup] = await createTemp(); - - try { - await downloadUrl(file.uri, path); - - const { mime, ext } = await detectType(path); - - const convertFile = async () => { - if (isThumbnail) { - if (['image/jpeg', 'image/webp', 'image/png', 'image/svg+xml'].includes(mime)) { - return await convertToWebp(path, 498, 280); - } else if (mime.startsWith('video/')) { - return await GenerateVideoThumbnail(path); - } - } - - if (isWebpublic) { - if (['image/svg+xml'].includes(mime)) { - return await convertToPng(path, 2048, 2048); - } - } - - return { - data: fs.readFileSync(path), - ext, - type: mime, - }; - }; - - const image = await convertFile(); - ctx.body = image.data; - ctx.set('Content-Type', FILE_TYPE_BROWSERSAFE.includes(image.type) ? image.type : 'application/octet-stream'); - ctx.set('Cache-Control', 'max-age=31536000, immutable'); - } catch (e) { - serverLogger.error(`${e}`); - - if (e instanceof StatusError && e.isClientError) { - ctx.status = e.statusCode; - ctx.set('Cache-Control', 'max-age=86400'); - } else { - ctx.status = 500; - ctx.set('Cache-Control', 'max-age=300'); - } - } finally { - cleanup(); - } - return; - } - - ctx.status = 204; - ctx.set('Cache-Control', 'max-age=86400'); - return; - } - - if (isThumbnail || isWebpublic) { - const { mime, ext } = await detectType(InternalStorage.resolvePath(key)); - const filename = rename(file.name, { - suffix: isThumbnail ? '-thumb' : '-web', - extname: ext ? `.${ext}` : undefined, - }).toString(); - - ctx.body = InternalStorage.read(key); - ctx.set('Content-Type', FILE_TYPE_BROWSERSAFE.includes(mime) ? mime : 'application/octet-stream'); - ctx.set('Cache-Control', 'max-age=31536000, immutable'); - ctx.set('Content-Disposition', contentDisposition('inline', filename)); - } else { - const readable = InternalStorage.read(file.accessKey!); - readable.on('error', commonReadableHandlerGenerator(ctx)); - ctx.body = readable; - ctx.set('Content-Type', FILE_TYPE_BROWSERSAFE.includes(file.type) ? file.type : 'application/octet-stream'); - ctx.set('Cache-Control', 'max-age=31536000, immutable'); - ctx.set('Content-Disposition', contentDisposition('inline', file.name)); - } -} diff --git a/packages/backend/src/server/index.ts b/packages/backend/src/server/index.ts deleted file mode 100644 index f31de2b7f..000000000 --- a/packages/backend/src/server/index.ts +++ /dev/null @@ -1,168 +0,0 @@ -/** - * Core Server - */ - -import cluster from 'node:cluster'; -import * as fs from 'node:fs'; -import * as http from 'node:http'; -import Koa from 'koa'; -import Router from '@koa/router'; -import mount from 'koa-mount'; -import koaLogger from 'koa-logger'; -import * as slow from 'koa-slow'; - -import { IsNull } from 'typeorm'; -import config from '@/config/index.js'; -import Logger from '@/services/logger.js'; -import { UserProfiles, Users } from '@/models/index.js'; -import { genIdenticon } from '@/misc/gen-identicon.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { publishMainStream } from '@/services/stream.js'; -import * as Acct from '@/misc/acct.js'; -import { envOption } from '../env.js'; -import activityPub from './activitypub.js'; -import nodeinfo from './nodeinfo.js'; -import wellKnown from './well-known.js'; -import apiServer from './api/index.js'; -import fileServer from './file/index.js'; -import proxyServer from './proxy/index.js'; -import webServer from './web/index.js'; -import { initializeStreamingServer } from './api/streaming.js'; - -export const serverLogger = new Logger('server', 'gray', false); - -// Init app -const app = new Koa(); -app.proxy = true; - -if (!['production', 'test'].includes(process.env.NODE_ENV || '')) { - // Logger - app.use(koaLogger(str => { - serverLogger.info(str); - })); - - // Delay - if (envOption.slow) { - app.use(slow({ - delay: 3000, - })); - } -} - -// HSTS -// 6months (15552000sec) -if (config.url.startsWith('https') && !config.disableHsts) { - app.use(async (ctx, next) => { - ctx.set('strict-transport-security', 'max-age=15552000; preload'); - await next(); - }); -} - -app.use(mount('/api', apiServer)); -app.use(mount('/files', fileServer)); -app.use(mount('/proxy', proxyServer)); - -// Init router -const router = new Router(); - -// Routing -router.use(activityPub.routes()); -router.use(nodeinfo.routes()); -router.use(wellKnown.routes()); - -router.get('/avatar/@:acct', async ctx => { - const { username, host } = Acct.parse(ctx.params.acct); - const user = await Users.findOne({ - where: { - usernameLower: username.toLowerCase(), - host: (host == null) || (host === config.host) ? IsNull() : host, - isSuspended: false, - }, - relations: ['avatar'], - }); - - if (user) { - ctx.redirect(Users.getAvatarUrlSync(user)); - } else { - ctx.redirect('/static-assets/user-unknown.png'); - } -}); - -router.get('/identicon/:x', async ctx => { - const [temp, cleanup] = await createTemp(); - await genIdenticon(ctx.params.x, fs.createWriteStream(temp)); - ctx.set('Content-Type', 'image/png'); - ctx.body = fs.createReadStream(temp).on('close', () => cleanup()); -}); - -router.get('/verify-email/:code', async ctx => { - const profile = await UserProfiles.findOneBy({ - emailVerifyCode: ctx.params.code, - }); - - if (profile != null) { - ctx.body = 'Verify succeeded!'; - ctx.status = 200; - - await UserProfiles.update({ userId: profile.userId }, { - emailVerified: true, - emailVerifyCode: null, - }); - - publishMainStream(profile.userId, 'meUpdated', await Users.pack(profile.userId, { id: profile.userId }, { - detail: true, - includeSecrets: true, - })); - } else { - ctx.status = 404; - } -}); - -// Register router -app.use(router.routes()); - -app.use(mount(webServer)); - -function createServer() { - return http.createServer(app.callback()); -} - -// For testing -export const startServer = () => { - const server = createServer(); - - initializeStreamingServer(server); - - server.listen(config.port); - - return server; -}; - -export default () => new Promise(resolve => { - const server = createServer(); - - initializeStreamingServer(server); - - server.on('error', e => { - switch ((e as any).code) { - case 'EACCES': - serverLogger.error(`You do not have permission to listen on port ${config.port}.`); - break; - case 'EADDRINUSE': - serverLogger.error(`Port ${config.port} is already in use by another process.`); - break; - default: - serverLogger.error(e); - break; - } - - if (cluster.isWorker) { - process.send!('listenFailed'); - } else { - // disableClustering - process.exit(1); - } - }); - - server.listen(config.port, resolve); -}); diff --git a/packages/backend/src/server/nodeinfo.ts b/packages/backend/src/server/nodeinfo.ts deleted file mode 100644 index f139d203d..000000000 --- a/packages/backend/src/server/nodeinfo.ts +++ /dev/null @@ -1,104 +0,0 @@ -import Router from '@koa/router'; -import config from '@/config/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Users, Notes } from '@/models/index.js'; -import { IsNull, MoreThan } from 'typeorm'; -import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; -import { Cache } from '@/misc/cache.js'; - -const router = new Router(); - -const nodeinfo2_1path = '/nodeinfo/2.1'; -const nodeinfo2_0path = '/nodeinfo/2.0'; - -export const links = [/* (awaiting release) { - rel: 'http://nodeinfo.diaspora.software/ns/schema/2.1', - href: config.url + nodeinfo2_1path -}, */{ - rel: 'http://nodeinfo.diaspora.software/ns/schema/2.0', - href: config.url + nodeinfo2_0path, -}]; - -const nodeinfo2 = async () => { - const now = Date.now(); - const [ - meta, - total, - activeHalfyear, - activeMonth, - localPosts, - ] = await Promise.all([ - fetchMeta(true), - Users.count({ where: { host: IsNull() } }), - Users.count({ where: { host: IsNull(), lastActiveDate: MoreThan(new Date(now - 15552000000)) } }), - Users.count({ where: { host: IsNull(), lastActiveDate: MoreThan(new Date(now - 2592000000)) } }), - Notes.count({ where: { userHost: IsNull() } }), - ]); - - const proxyAccount = meta.proxyAccountId ? await Users.pack(meta.proxyAccountId).catch(() => null) : null; - - return { - software: { - name: 'misskey', - version: config.version, - repository: meta.repositoryUrl, - }, - protocols: ['activitypub'], - services: { - inbound: [] as string[], - outbound: ['atom1.0', 'rss2.0'], - }, - openRegistrations: !meta.disableRegistration, - usage: { - users: { total, activeHalfyear, activeMonth }, - localPosts, - localComments: 0, - }, - metadata: { - nodeName: meta.name, - nodeDescription: meta.description, - maintainer: { - name: meta.maintainerName, - email: meta.maintainerEmail, - }, - langs: meta.langs, - tosUrl: meta.ToSUrl, - repositoryUrl: meta.repositoryUrl, - feedbackUrl: meta.feedbackUrl, - disableRegistration: meta.disableRegistration, - disableLocalTimeline: meta.disableLocalTimeline, - disableGlobalTimeline: meta.disableGlobalTimeline, - emailRequiredForSignup: meta.emailRequiredForSignup, - enableHcaptcha: meta.enableHcaptcha, - enableRecaptcha: meta.enableRecaptcha, - maxNoteTextLength: MAX_NOTE_TEXT_LENGTH, - enableTwitterIntegration: meta.enableTwitterIntegration, - enableGithubIntegration: meta.enableGithubIntegration, - enableDiscordIntegration: meta.enableDiscordIntegration, - enableEmail: meta.enableEmail, - enableServiceWorker: meta.enableServiceWorker, - proxyAccountName: proxyAccount ? proxyAccount.username : null, - themeColor: meta.themeColor || '#86b300', - }, - }; -}; - -const cache = new Cache>>(1000 * 60 * 10); - -router.get(nodeinfo2_1path, async ctx => { - const base = await cache.fetch(null, () => nodeinfo2()); - - ctx.body = { version: '2.1', ...base }; - ctx.set('Cache-Control', 'public, max-age=600'); -}); - -router.get(nodeinfo2_0path, async ctx => { - const base = await cache.fetch(null, () => nodeinfo2()); - - delete base.software.repository; - - ctx.body = { version: '2.0', ...base }; - ctx.set('Cache-Control', 'public, max-age=600'); -}); - -export default router; diff --git a/packages/backend/src/server/proxy/index.ts b/packages/backend/src/server/proxy/index.ts deleted file mode 100644 index 506ba10ef..000000000 --- a/packages/backend/src/server/proxy/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Media Proxy - */ - -import Koa from 'koa'; -import cors from '@koa/cors'; -import Router from '@koa/router'; -import { proxyMedia } from './proxy-media.js'; - -// Init app -const app = new Koa(); -app.use(cors()); -app.use(async (ctx, next) => { - ctx.set('Content-Security-Policy', `default-src 'none'; img-src 'self'; media-src 'self'; style-src 'unsafe-inline'`); - await next(); -}); - -// Init router -const router = new Router(); - -router.get('/:url*', proxyMedia); - -// Register router -app.use(router.routes()); - -export default app; diff --git a/packages/backend/src/server/proxy/proxy-media.ts b/packages/backend/src/server/proxy/proxy-media.ts deleted file mode 100644 index ca036e8fd..000000000 --- a/packages/backend/src/server/proxy/proxy-media.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as fs from 'node:fs'; -import Koa from 'koa'; -import sharp from 'sharp'; -import { IImage, convertToWebp } from '@/services/drive/image-processor.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { downloadUrl } from '@/misc/download-url.js'; -import { detectType } from '@/misc/get-file-info.js'; -import { StatusError } from '@/misc/fetch.js'; -import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; -import { serverLogger } from '../index.js'; -import { isMimeImage } from '@/misc/is-mime-image.js'; - -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export async function proxyMedia(ctx: Koa.Context) { - const url = 'url' in ctx.query ? ctx.query.url : 'https://' + ctx.params.url; - - if (typeof url !== 'string') { - ctx.status = 400; - return; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - try { - await downloadUrl(url, path); - - const { mime, ext } = await detectType(path); - const isConvertibleImage = isMimeImage(mime, 'sharp-convertible-image'); - - let image: IImage; - - if ('static' in ctx.query && isConvertibleImage) { - image = await convertToWebp(path, 498, 280); - } else if ('preview' in ctx.query && isConvertibleImage) { - image = await convertToWebp(path, 200, 200); - } else if ('badge' in ctx.query) { - if (!isConvertibleImage) { - // 画像でないなら404でお茶を濁す - throw new StatusError('Unexpected mime', 404); - } - - const mask = sharp(path) - .resize(96, 96, { - fit: 'inside', - withoutEnlargement: false, - }) - .greyscale() - .normalise() - .linear(1.75, -(128 * 1.75) + 128) // 1.75x contrast - .flatten({ background: '#000' }) - .toColorspace('b-w'); - - const stats = await mask.clone().stats(); - - if (stats.entropy < 0.1) { - // エントロピーがあまりない場合は404にする - throw new StatusError('Skip to provide badge', 404); - } - - const data = sharp({ - create: { width: 96, height: 96, channels: 4, background: { r: 0, g: 0, b: 0, alpha: 0 } }, - }) - .pipelineColorspace('b-w') - .boolean(await mask.png().toBuffer(), 'eor'); - - image = { - data: await data.png().toBuffer(), - ext: 'png', - type: 'image/png', - }; - } else if (mime === 'image/svg+xml') { - image = await convertToWebp(path, 2048, 2048, 1); - } else if (!mime.startsWith('image/') || !FILE_TYPE_BROWSERSAFE.includes(mime)) { - throw new StatusError('Rejected type', 403, 'Rejected type'); - } else { - image = { - data: fs.readFileSync(path), - ext, - type: mime, - }; - } - - ctx.set('Content-Type', image.type); - ctx.set('Cache-Control', 'max-age=31536000, immutable'); - ctx.body = image.data; - } catch (e) { - serverLogger.error(`${e}`); - - if (e instanceof StatusError && (e.statusCode === 302 || e.isClientError)) { - ctx.status = e.statusCode; - } else { - ctx.status = 500; - } - } finally { - cleanup(); - } -} diff --git a/packages/backend/src/server/web/bios.css b/packages/backend/src/server/web/bios.css deleted file mode 100644 index b0da3ee39..000000000 --- a/packages/backend/src/server/web/bios.css +++ /dev/null @@ -1,40 +0,0 @@ -* { - font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace; -} - -html { - background: #ffb4e1; -} - -main { - background: #dedede; -} -main > .tabs { - padding: 16px; - border-bottom: solid 4px #c3c3c3; -} - -#lsEditor > .adder { - margin: 16px; - padding: 16px; - border: solid 2px #c3c3c3; -} -#lsEditor > .adder > textarea { - display: block; - width: 100%; - min-height: 5em; - box-sizing: border-box; -} -#lsEditor > .record { - padding: 16px; - border-bottom: solid 1px #c3c3c3; -} -#lsEditor > .record > header { - font-weight: bold; -} -#lsEditor > .record > textarea { - display: block; - width: 100%; - min-height: 5em; - box-sizing: border-box; -} diff --git a/packages/backend/src/server/web/bios.js b/packages/backend/src/server/web/bios.js deleted file mode 100644 index d06dee801..000000000 --- a/packages/backend/src/server/web/bios.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict'; - -window.onload = async () => { - const account = JSON.parse(localStorage.getItem('account')); - const i = account.token; - - const api = (endpoint, data = {}) => { - const promise = new Promise((resolve, reject) => { - // Append a credential - if (i) data.i = i; - - // Send request - fetch(endpoint.indexOf('://') > -1 ? endpoint : `/api/${endpoint}`, { - method: 'POST', - body: JSON.stringify(data), - credentials: 'omit', - cache: 'no-cache' - }).then(async (res) => { - const body = res.status === 204 ? null : await res.json(); - - if (res.status === 200) { - resolve(body); - } else if (res.status === 204) { - resolve(); - } else { - reject(body.error); - } - }).catch(reject); - }); - - return promise; - }; - - const content = document.getElementById('content'); - - document.getElementById('ls').addEventListener('click', () => { - content.innerHTML = ''; - - const lsEditor = document.createElement('div'); - lsEditor.id = 'lsEditor'; - - const adder = document.createElement('div'); - adder.classList.add('adder'); - const addKeyInput = document.createElement('input'); - const addValueTextarea = document.createElement('textarea'); - const addButton = document.createElement('button'); - addButton.textContent = 'add'; - addButton.addEventListener('click', () => { - localStorage.setItem(addKeyInput.value, addValueTextarea.value); - location.reload(); - }); - - adder.appendChild(addKeyInput); - adder.appendChild(addValueTextarea); - adder.appendChild(addButton); - lsEditor.appendChild(adder); - - for (let i = 0; i < localStorage.length; i++) { - const k = localStorage.key(i); - const record = document.createElement('div'); - record.classList.add('record'); - const header = document.createElement('header'); - header.textContent = k; - const textarea = document.createElement('textarea'); - textarea.textContent = localStorage.getItem(k); - const saveButton = document.createElement('button'); - saveButton.textContent = 'save'; - saveButton.addEventListener('click', () => { - localStorage.setItem(k, textarea.value); - location.reload(); - }); - const removeButton = document.createElement('button'); - removeButton.textContent = 'remove'; - removeButton.addEventListener('click', () => { - localStorage.removeItem(k); - location.reload(); - }); - record.appendChild(header); - record.appendChild(textarea); - record.appendChild(saveButton); - record.appendChild(removeButton); - lsEditor.appendChild(record); - } - - content.appendChild(lsEditor); - }); -}; diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js deleted file mode 100644 index 2aef689d3..000000000 --- a/packages/backend/src/server/web/boot.js +++ /dev/null @@ -1,325 +0,0 @@ -/** - * BOOT LOADER - * サーバーからレスポンスされるHTMLに埋め込まれるスクリプトで、以下の役割を持ちます。 - * - 翻訳ファイルをフェッチする。 - * - バージョンに基づいて適切なメインスクリプトを読み込む。 - * - キャッシュされたコンパイル済みテーマを適用する。 - * - クライアントの設定値に基づいて対応するHTMLクラス等を設定する。 - * テーマをこの段階で設定するのは、メインスクリプトが読み込まれる間もテーマを適用したいためです。 - * 注: webpackは介さないため、このファイルではrequireやimportは使えません。 - */ - -'use strict'; - -// ブロックの中に入れないと、定義した変数がブラウザのグローバルスコープに登録されてしまい邪魔なので -(async () => { - window.onerror = (e) => { - console.error(e); - renderError('SOMETHING_HAPPENED', e); - }; - window.onunhandledrejection = (e) => { - console.error(e); - renderError('SOMETHING_HAPPENED_IN_PROMISE', e); - }; - - const v = localStorage.getItem('v') || VERSION; - - //#region Detect language & fetch translations - const localeVersion = localStorage.getItem('localeVersion'); - const localeOutdated = (localeVersion == null || localeVersion !== v); - - if (!localStorage.hasOwnProperty('locale') || localeOutdated) { - const supportedLangs = LANGS; - let lang = localStorage.getItem('lang'); - if (lang == null || !supportedLangs.includes(lang)) { - if (supportedLangs.includes(navigator.language)) { - lang = navigator.language; - } else { - lang = supportedLangs.find(x => x.split('-')[0] === navigator.language); - - // Fallback - if (lang == null) lang = 'en-US'; - } - } - - const res = await fetch(`/assets/locales/${lang}.${v}.json`); - if (res.status === 200) { - localStorage.setItem('lang', lang); - localStorage.setItem('locale', await res.text()); - localStorage.setItem('localeVersion', v); - } else { - await checkUpdate(); - renderError('LOCALE_FETCH'); - return; - } - } - //#endregion - - //#region Script - function importAppScript() { - import(`/assets/${CLIENT_ENTRY}`) - .catch(async e => { - await checkUpdate(); - console.error(e); - renderError('APP_IMPORT', e); - }); - } - - // タイミングによっては、この時点でDOMの構築が済んでいる場合とそうでない場合とがある - if (document.readyState !== 'loading') { - importAppScript(); - } else { - window.addEventListener('DOMContentLoaded', () => { - importAppScript(); - }); - } - //#endregion - - //#region Theme - const theme = localStorage.getItem('theme'); - if (theme) { - for (const [k, v] of Object.entries(JSON.parse(theme))) { - document.documentElement.style.setProperty(`--${k}`, v.toString()); - - // HTMLの theme-color 適用 - if (k === 'htmlThemeColor') { - for (const tag of document.head.children) { - if (tag.tagName === 'META' && tag.getAttribute('name') === 'theme-color') { - tag.setAttribute('content', v); - break; - } - } - } - } - } - const colorSchema = localStorage.getItem('colorSchema'); - if (colorSchema) { - document.documentElement.style.setProperty('color-schema', colorSchema); - } - //#endregion - - const fontSize = localStorage.getItem('fontSize'); - if (fontSize) { - document.documentElement.classList.add('f-' + fontSize); - } - - const useSystemFont = localStorage.getItem('useSystemFont'); - if (useSystemFont) { - document.documentElement.classList.add('useSystemFont'); - } - - const wallpaper = localStorage.getItem('wallpaper'); - if (wallpaper) { - document.documentElement.style.backgroundImage = `url(${wallpaper})`; - } - - const customCss = localStorage.getItem('customCss'); - if (customCss && customCss.length > 0) { - const style = document.createElement('style'); - style.innerHTML = customCss; - document.head.appendChild(style); - } - - async function addStyle(styleText) { - let css = document.createElement('style'); - css.appendChild(document.createTextNode(styleText)); - document.head.appendChild(css); - } - - function renderError(code, details) { - let errorsElement = document.getElementById('errors'); - - if (!errorsElement) { - document.body.innerHTML = ` - - - - - -

An error has occurred!

- -

Don't worry, it's (probably) not your fault.

-

If the problem persists after refreshing, please contact your instance's administrator.
You may also try the following options:

-

Update your os and browser.

-

Disable an adblocker.

- - - -
- - - -
- - - -
-
- `; - errorsElement = document.getElementById('errors'); - } - const detailsElement = document.createElement('details'); - detailsElement.innerHTML = ` -
- - ERROR CODE: ${code} - - ${JSON.stringify(details)}`; - errorsElement.appendChild(detailsElement); - addStyle(` - * { - font-family: BIZ UDGothic, Roboto, HelveticaNeue, Arial, sans-serif; - } - - #misskey_app, - #splash { - display: none !important; - } - - body, - html { - background-color: #222; - color: #dfddcc; - justify-content: center; - margin: auto; - padding: 10px; - text-align: center; - } - - button { - border-radius: 999px; - padding: 0px 12px 0px 12px; - border: none; - cursor: pointer; - margin-bottom: 12px; - } - - .button-big { - background: linear-gradient(90deg, rgb(134, 179, 0), rgb(74, 179, 0)); - line-height: 50px; - } - - .button-big:hover { - background: rgb(153, 204, 0); - } - - .button-small { - background: #444; - line-height: 40px; - } - - .button-small:hover { - background: #555; - } - - .button-label-big { - color: #222; - font-weight: bold; - font-size: 20px; - padding: 12px; - } - - .button-label-small { - color: rgb(153, 204, 0); - font-size: 16px; - padding: 12px; - } - - a { - color: rgb(134, 179, 0); - text-decoration: none; - } - - p, - li { - font-size: 16px; - } - - .dont-worry, - #msg { - font-size: 18px; - } - - .icon-warning { - color: #dec340; - height: 4rem; - padding-top: 2rem; - } - - h1 { - font-size: 32px; - } - - code { - font-family: Fira, FiraCode, monospace; - } - - details { - background: #333; - margin-bottom: 2rem; - padding: 0.5rem 1rem; - width: 40rem; - border-radius: 10px; - justify-content: center; - margin: auto; - } - - summary { - cursor: pointer; - } - - summary > * { - display: inline; - } - - @media screen and (max-width: 500px) { - details { - width: 50%; - } - `) - } - - // eslint-disable-next-line no-inner-declarations - async function checkUpdate() { - try { - const res = await fetch('/api/meta', { - method: 'POST', - cache: 'no-cache' - }); - - const meta = await res.json(); - - if (meta.version != v) { - localStorage.setItem('v', meta.version); - refresh(); - } - } catch (e) { - console.error(e); - renderError('UPDATE_CHECK', e); - throw e; - } - } - - // eslint-disable-next-line no-inner-declarations - function refresh() { - // Clear cache (service worker) - try { - navigator.serviceWorker.controller.postMessage('clear'); - navigator.serviceWorker.getRegistrations().then(registrations => { - registrations.forEach(registration => registration.unregister()); - }); - } catch (e) { - console.error(e); - } - - location.reload(); - } -})(); diff --git a/packages/backend/src/server/web/cli.css b/packages/backend/src/server/web/cli.css deleted file mode 100644 index 07cd27830..000000000 --- a/packages/backend/src/server/web/cli.css +++ /dev/null @@ -1,19 +0,0 @@ -* { - font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace; -} - -html { - background: #ffb4e1; -} - -main { - background: #dedede; -} - -#tl > div { - padding: 16px; - border-bottom: solid 1px #c3c3c3; -} -#tl > div > header { - font-weight: bold; -} diff --git a/packages/backend/src/server/web/cli.js b/packages/backend/src/server/web/cli.js deleted file mode 100644 index 3dff1d486..000000000 --- a/packages/backend/src/server/web/cli.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -window.onload = async () => { - const account = JSON.parse(localStorage.getItem('account')); - const i = account.token; - - const api = (endpoint, data = {}) => { - const promise = new Promise((resolve, reject) => { - // Append a credential - if (i) data.i = i; - - // Send request - fetch(endpoint.indexOf('://') > -1 ? endpoint : `/api/${endpoint}`, { - method: 'POST', - body: JSON.stringify(data), - credentials: 'omit', - cache: 'no-cache' - }).then(async (res) => { - const body = res.status === 204 ? null : await res.json(); - - if (res.status === 200) { - resolve(body); - } else if (res.status === 204) { - resolve(); - } else { - reject(body.error); - } - }).catch(reject); - }); - - return promise; - }; - - document.getElementById('submit').addEventListener('click', () => { - api('notes/create', { - text: document.getElementById('text').value - }).then(() => { - location.reload(); - }); - }); - - api('notes/timeline').then(notes => { - const tl = document.getElementById('tl'); - for (const note of notes) { - const el = document.createElement('div'); - const name = document.createElement('header'); - name.textContent = `${note.user.name} @${note.user.username}`; - const text = document.createElement('div'); - text.textContent = `${note.text}`; - el.appendChild(name); - el.appendChild(text); - tl.appendChild(el); - } - }); -}; diff --git a/packages/backend/src/server/web/feed.ts b/packages/backend/src/server/web/feed.ts deleted file mode 100644 index 4abe2885c..000000000 --- a/packages/backend/src/server/web/feed.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Feed } from 'feed'; -import { In, IsNull } from 'typeorm'; -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { Notes, DriveFiles, UserProfiles, Users } from '@/models/index.js'; - -export default async function(user: User) { - const author = { - link: `${config.url}/@${user.username}`, - name: user.name || user.username, - }; - - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - - const notes = await Notes.find({ - where: { - userId: user.id, - renoteId: IsNull(), - visibility: In(['public', 'home']), - }, - order: { createdAt: -1 }, - take: 20, - }); - - const feed = new Feed({ - id: author.link, - title: `${author.name} (@${user.username}@${config.host})`, - updated: notes[0].createdAt, - generator: 'Misskey', - description: `${user.notesCount} Notes, ${profile.ffVisibility === 'public' ? user.followingCount : '?'} Following, ${profile.ffVisibility === 'public' ? user.followersCount : '?'} Followers${profile.description ? ` · ${profile.description}` : ''}`, - link: author.link, - image: await Users.getAvatarUrl(user), - feedLinks: { - json: `${author.link}.json`, - atom: `${author.link}.atom`, - }, - author, - copyright: user.name || user.username, - }); - - for (const note of notes) { - const files = note.fileIds.length > 0 ? await DriveFiles.findBy({ - id: In(note.fileIds), - }) : []; - const file = files.find(file => file.type.startsWith('image/')); - - feed.addItem({ - title: `New note by ${author.name}`, - link: `${config.url}/notes/${note.id}`, - date: note.createdAt, - description: note.cw || undefined, - content: note.text || undefined, - image: file ? DriveFiles.getPublicUrl(file) || undefined : undefined, - }); - } - - return feed; -} diff --git a/packages/backend/src/server/web/index.ts b/packages/backend/src/server/web/index.ts deleted file mode 100644 index be95becb6..000000000 --- a/packages/backend/src/server/web/index.ts +++ /dev/null @@ -1,521 +0,0 @@ -/** - * Web Client Server - */ - -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { PathOrFileDescriptor, readFileSync } from 'node:fs'; -import ms from 'ms'; -import Koa from 'koa'; -import Router from '@koa/router'; -import send from 'koa-send'; -import favicon from 'koa-favicon'; -import views from 'koa-views'; -import sharp from 'sharp'; -import { createBullBoard } from '@bull-board/api'; -import { BullAdapter } from '@bull-board/api/bullAdapter.js'; -import { KoaAdapter } from '@bull-board/koa'; - -import { In, IsNull } from 'typeorm'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import config from '@/config/index.js'; -import { Users, Notes, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '@/models/index.js'; -import * as Acct from '@/misc/acct.js'; -import { getNoteSummary } from '@/misc/get-note-summary.js'; -import { queues } from '@/queue/queues.js'; -import { genOpenapiSpec } from '../api/openapi/gen-spec.js'; -import { urlPreviewHandler } from './url-preview.js'; -import { manifestHandler } from './manifest.js'; -import packFeed from './feed.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -const staticAssets = `${_dirname}/../../../assets/`; -const clientAssets = `${_dirname}/../../../../client/assets/`; -const assets = `${_dirname}/../../../../../built/_client_dist_/`; -const swAssets = `${_dirname}/../../../../../built/_sw_dist_/`; - -// Init app -const app = new Koa(); - -//#region Bull Dashboard -const bullBoardPath = '/queue'; - -// Authenticate -app.use(async (ctx, next) => { - if (ctx.path === bullBoardPath || ctx.path.startsWith(bullBoardPath + '/')) { - const token = ctx.cookies.get('token'); - if (token == null) { - ctx.status = 401; - return; - } - const user = await Users.findOneBy({ token }); - if (user == null || !(user.isAdmin || user.isModerator)) { - ctx.status = 403; - return; - } - } - await next(); -}); - -const serverAdapter = new KoaAdapter(); - -createBullBoard({ - queues: queues.map(q => new BullAdapter(q)), - serverAdapter, -}); - -serverAdapter.setBasePath(bullBoardPath); -app.use(serverAdapter.registerPlugin()); -//#endregion - -// Init renderer -app.use(views(_dirname + '/views', { - extension: 'pug', - options: { - version: config.version, - getClientEntry: () => process.env.NODE_ENV === 'production' ? - config.clientEntry : - JSON.parse(readFileSync(`${_dirname}/../../../../../built/_client_dist_/manifest.json`, 'utf-8'))['src/init.ts'], - config, - }, -})); - -// Serve favicon -app.use(favicon(`${_dirname}/../../../assets/favicon.ico`)); - -// Common request handler -app.use(async (ctx, next) => { - // IFrameの中に入れられないようにする - ctx.set('X-Frame-Options', 'DENY'); - await next(); -}); - -// Init router -const router = new Router(); - -//#region static assets - -router.get('/static-assets/(.*)', async ctx => { - await send(ctx as any, ctx.path.replace('/static-assets/', ''), { - root: staticAssets, - maxage: ms('7 days'), - }); -}); - -router.get('/client-assets/(.*)', async ctx => { - await send(ctx as any, ctx.path.replace('/client-assets/', ''), { - root: clientAssets, - maxage: ms('7 days'), - }); -}); - -router.get('/assets/(.*)', async ctx => { - await send(ctx as any, ctx.path.replace('/assets/', ''), { - root: assets, - maxage: ms('7 days'), - }); -}); - -// Apple touch icon -router.get('/apple-touch-icon.png', async ctx => { - await send(ctx as any, '/apple-touch-icon.png', { - root: staticAssets, - }); -}); - -router.get('/twemoji/(.*)', async ctx => { - const path = ctx.path.replace('/twemoji/', ''); - - if (!path.match(/^[0-9a-f-]+\.svg$/)) { - ctx.status = 404; - return; - } - - ctx.set('Content-Security-Policy', 'default-src \'none\'; style-src \'unsafe-inline\''); - - await send(ctx as any, path, { - root: `${_dirname}/../../../node_modules/@discordapp/twemoji/dist/svg/`, - maxage: ms('30 days'), - }); -}); - -router.get('/twemoji-badge/(.*)', async ctx => { - const path = ctx.path.replace('/twemoji-badge/', ''); - - if (!path.match(/^[0-9a-f-]+\.png$/)) { - ctx.status = 404; - return; - } - - const mask = await sharp( - `${_dirname}/../../../node_modules/@discordapp/twemoji/dist/svg/${path.replace('.png', '')}.svg`, - { density: 1000 }, - ) - .resize(488, 488) - .greyscale() - .normalise() - .linear(1.75, -(128 * 1.75) + 128) // 1.75x contrast - .flatten({ background: '#000' }) - .extend({ - top: 12, - bottom: 12, - left: 12, - right: 12, - background: '#000', - }) - .toColorspace('b-w') - .png() - .toBuffer(); - - const buffer = await sharp({ - create: { width: 512, height: 512, channels: 4, background: { r: 0, g: 0, b: 0, alpha: 0 } }, - }) - .pipelineColorspace('b-w') - .boolean(mask, 'eor') - .resize(96, 96) - .png() - .toBuffer(); - - ctx.set('Content-Security-Policy', 'default-src \'none\'; style-src \'unsafe-inline\''); - ctx.set('Cache-Control', 'max-age=2592000'); - ctx.set('Content-Type', 'image/png'); - ctx.body = buffer; -}); - -// ServiceWorker -router.get(`/sw.js`, async ctx => { - await send(ctx as any, `/sw.js`, { - root: swAssets, - maxage: ms('10 minutes'), - }); -}); - -// Manifest -router.get('/manifest.json', manifestHandler); - -router.get('/robots.txt', async ctx => { - await send(ctx as any, '/robots.txt', { - root: staticAssets, - }); -}); - -//#endregion - -// Docs -router.get('/api-doc', async ctx => { - await send(ctx as any, '/redoc.html', { - root: staticAssets, - }); -}); - -// URL preview endpoint -router.get('/url', urlPreviewHandler); - -router.get('/api.json', async ctx => { - ctx.body = genOpenapiSpec(); -}); - -const getFeed = async (acct: string) => { - const { username, host } = Acct.parse(acct); - const user = await Users.findOneBy({ - usernameLower: username.toLowerCase(), - host: host ?? IsNull(), - isSuspended: false, - }); - - return user && await packFeed(user); -}; - -// Atom -router.get('/@:user.atom', async ctx => { - const feed = await getFeed(ctx.params.user); - - if (feed) { - ctx.set('Content-Type', 'application/atom+xml; charset=utf-8'); - ctx.body = feed.atom1(); - } else { - ctx.status = 404; - } -}); - -// RSS -router.get('/@:user.rss', async ctx => { - const feed = await getFeed(ctx.params.user); - - if (feed) { - ctx.set('Content-Type', 'application/rss+xml; charset=utf-8'); - ctx.body = feed.rss2(); - } else { - ctx.status = 404; - } -}); - -// JSON -router.get('/@:user.json', async ctx => { - const feed = await getFeed(ctx.params.user); - - if (feed) { - ctx.set('Content-Type', 'application/json; charset=utf-8'); - ctx.body = feed.json1(); - } else { - ctx.status = 404; - } -}); - -//#region SSR (for crawlers) -// User -router.get(['/@:user', '/@:user/:sub'], async (ctx, next) => { - const { username, host } = Acct.parse(ctx.params.user); - const user = await Users.findOneBy({ - usernameLower: username.toLowerCase(), - host: host ?? IsNull(), - isSuspended: false, - }); - - if (user != null) { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); - const meta = await fetchMeta(); - const me = profile.fields - ? profile.fields - .filter(filed => filed.value != null && filed.value.match(/^https?:/)) - .map(field => field.value) - : []; - - await ctx.render('user', { - user, profile, me, - avatarUrl: await Users.getAvatarUrl(user), - sub: ctx.params.sub, - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - ctx.set('Cache-Control', 'public, max-age=15'); - } else { - // リモートユーザーなので - // モデレータがAPI経由で参照可能にするために404にはしない - await next(); - } -}); - -router.get('/users/:user', async ctx => { - const user = await Users.findOneBy({ - id: ctx.params.user, - host: IsNull(), - isSuspended: false, - }); - - if (user == null) { - ctx.status = 404; - return; - } - - ctx.redirect(`/@${user.username}${ user.host == null ? '' : '@' + user.host}`); -}); - -// Note -router.get('/notes/:note', async (ctx, next) => { - const note = await Notes.findOneBy({ - id: ctx.params.note, - visibility: In(['public', 'home']), - }); - - if (note) { - const _note = await Notes.pack(note); - const profile = await UserProfiles.findOneByOrFail({ userId: note.userId }); - const meta = await fetchMeta(); - await ctx.render('note', { - note: _note, - profile, - avatarUrl: await Users.getAvatarUrl(await Users.findOneByOrFail({ id: note.userId })), - // TODO: Let locale changeable by instance setting - summary: getNoteSummary(_note), - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - - ctx.set('Cache-Control', 'public, max-age=15'); - - return; - } - - await next(); -}); - -// Page -router.get('/@:user/pages/:page', async (ctx, next) => { - const { username, host } = Acct.parse(ctx.params.user); - const user = await Users.findOneBy({ - usernameLower: username.toLowerCase(), - host: host ?? IsNull(), - }); - - if (user == null) return; - - const page = await Pages.findOneBy({ - name: ctx.params.page, - userId: user.id, - }); - - if (page) { - const _page = await Pages.pack(page); - const profile = await UserProfiles.findOneByOrFail({ userId: page.userId }); - const meta = await fetchMeta(); - await ctx.render('page', { - page: _page, - profile, - avatarUrl: await Users.getAvatarUrl(await Users.findOneByOrFail({ id: page.userId })), - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - - if (['public'].includes(page.visibility)) { - ctx.set('Cache-Control', 'public, max-age=15'); - } else { - ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); - } - - return; - } - - await next(); -}); - -// Clip -// TODO: 非publicなclipのハンドリング -router.get('/clips/:clip', async (ctx, next) => { - const clip = await Clips.findOneBy({ - id: ctx.params.clip, - }); - - if (clip) { - const _clip = await Clips.pack(clip); - const profile = await UserProfiles.findOneByOrFail({ userId: clip.userId }); - const meta = await fetchMeta(); - await ctx.render('clip', { - clip: _clip, - profile, - avatarUrl: await Users.getAvatarUrl(await Users.findOneByOrFail({ id: clip.userId })), - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - - ctx.set('Cache-Control', 'public, max-age=15'); - - return; - } - - await next(); -}); - -// Gallery post -router.get('/gallery/:post', async (ctx, next) => { - const post = await GalleryPosts.findOneBy({ id: ctx.params.post }); - - if (post) { - const _post = await GalleryPosts.pack(post); - const profile = await UserProfiles.findOneByOrFail({ userId: post.userId }); - const meta = await fetchMeta(); - await ctx.render('gallery-post', { - post: _post, - profile, - avatarUrl: await Users.getAvatarUrl(await Users.findOneByOrFail({ id: post.userId })), - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - - ctx.set('Cache-Control', 'public, max-age=15'); - - return; - } - - await next(); -}); - -// Channel -router.get('/channels/:channel', async (ctx, next) => { - const channel = await Channels.findOneBy({ - id: ctx.params.channel, - }); - - if (channel) { - const _channel = await Channels.pack(channel); - const meta = await fetchMeta(); - await ctx.render('channel', { - channel: _channel, - instanceName: meta.name || 'Misskey', - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - - ctx.set('Cache-Control', 'public, max-age=15'); - - return; - } - - await next(); -}); -//#endregion - -router.get('/_info_card_', async ctx => { - const meta = await fetchMeta(true); - - ctx.remove('X-Frame-Options'); - - await ctx.render('info-card', { - version: config.version, - host: config.host, - meta: meta, - originalUsersCount: await Users.countBy({ host: IsNull() }), - originalNotesCount: await Notes.countBy({ userHost: IsNull() }), - }); -}); - -router.get('/bios', async ctx => { - await ctx.render('bios', { - version: config.version, - }); -}); - -router.get('/cli', async ctx => { - await ctx.render('cli', { - version: config.version, - }); -}); - -const override = (source: string, target: string, depth = 0) => - [, ...target.split('/').filter(x => x), ...source.split('/').filter(x => x).splice(depth)].join('/'); - -router.get('/flush', async ctx => { - await ctx.render('flush'); -}); - -// streamingに非WebSocketリクエストが来た場合にbase htmlをキャシュ付きで返すと、Proxy等でそのパスがキャッシュされておかしくなる -router.get('/streaming', async ctx => { - ctx.status = 503; - ctx.set('Cache-Control', 'private, max-age=0'); -}); - -// Render base html for all requests -router.get('(.*)', async ctx => { - const meta = await fetchMeta(); - await ctx.render('base', { - img: meta.bannerUrl, - title: meta.name || 'Misskey', - instanceName: meta.name || 'Misskey', - desc: meta.description, - icon: meta.iconUrl, - themeColor: meta.themeColor, - }); - ctx.set('Cache-Control', 'public, max-age=15'); -}); - -// Register router -app.use(router.routes()); - -export default app; diff --git a/packages/backend/src/server/web/manifest.ts b/packages/backend/src/server/web/manifest.ts deleted file mode 100644 index ee568b807..000000000 --- a/packages/backend/src/server/web/manifest.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Koa from 'koa'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import manifest from './manifest.json' assert { type: 'json' }; - -export const manifestHandler = async (ctx: Koa.Context) => { - // TODO - //const res = structuredClone(manifest); - const res = JSON.parse(JSON.stringify(manifest)); - - const instance = await fetchMeta(true); - - res.short_name = instance.name || 'Misskey'; - res.name = instance.name || 'Misskey'; - if (instance.themeColor) res.theme_color = instance.themeColor; - - ctx.set('Cache-Control', 'max-age=300'); - ctx.body = res; -}; diff --git a/packages/backend/src/server/web/style.css b/packages/backend/src/server/web/style.css deleted file mode 100644 index d59f00fe1..000000000 --- a/packages/backend/src/server/web/style.css +++ /dev/null @@ -1,70 +0,0 @@ -html { - background-color: var(--bg); - color: var(--fg); -} - -#splash { - position: fixed; - z-index: 10000; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - cursor: wait; - background-color: var(--bg); - opacity: 1; - transition: opacity 0.5s ease; -} - -#splashIcon { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - margin: auto; - width: 64px; - height: 64px; - pointer-events: none; -} - -#splashSpinner { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - margin: auto; - display: inline-block; - width: 28px; - height: 28px; - transform: translateY(70px); - color: var(--accent); -} -#splashSpinner > .spinner { - position: absolute; - top: 0; - left: 0; - width: 28px; - height: 28px; - fill-rule: evenodd; - clip-rule: evenodd; - stroke-linecap: round; - stroke-linejoin: round; - stroke-miterlimit: 1.5; -} -#splashSpinner > .spinner.bg { - opacity: 0.275; -} -#splashSpinner > .spinner.fg { - animation: splashSpinner 0.5s linear infinite; -} - -@keyframes splashSpinner { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} diff --git a/packages/backend/src/server/web/url-preview.ts b/packages/backend/src/server/web/url-preview.ts deleted file mode 100644 index 1e259649f..000000000 --- a/packages/backend/src/server/web/url-preview.ts +++ /dev/null @@ -1,65 +0,0 @@ -import Koa from 'koa'; -import summaly from 'summaly'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import Logger from '@/services/logger.js'; -import config from '@/config/index.js'; -import { query } from '@/prelude/url.js'; -import { getJson } from '@/misc/fetch.js'; - -const logger = new Logger('url-preview'); - -export const urlPreviewHandler = async (ctx: Koa.Context) => { - const url = ctx.query.url; - if (typeof url !== 'string') { - ctx.status = 400; - return; - } - - const lang = ctx.query.lang; - if (Array.isArray(lang)) { - ctx.status = 400; - return; - } - - const meta = await fetchMeta(); - - logger.info(meta.summalyProxy - ? `(Proxy) Getting preview of ${url}@${lang} ...` - : `Getting preview of ${url}@${lang} ...`); - - try { - const summary = meta.summalyProxy ? await getJson(`${meta.summalyProxy}?${query({ - url: url, - lang: lang ?? 'ja-JP', - })}`) : await summaly.default(url, { - followRedirects: false, - lang: lang ?? 'ja-JP', - }); - - logger.succ(`Got preview of ${url}: ${summary.title}`); - - summary.icon = wrap(summary.icon); - summary.thumbnail = wrap(summary.thumbnail); - - // Cache 7days - ctx.set('Cache-Control', 'max-age=604800, immutable'); - - ctx.body = summary; - } catch (err) { - logger.warn(`Failed to get preview of ${url}: ${err}`); - ctx.status = 200; - ctx.set('Cache-Control', 'max-age=86400, immutable'); - ctx.body = '{}'; - } -}; - -function wrap(url?: string): string | null { - return url != null - ? url.match(/^https?:\/\//) - ? `${config.url}/proxy/preview.webp?${query({ - url, - preview: '1', - })}` - : url - : null; -} diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug deleted file mode 100644 index 5bb156f0f..000000000 --- a/packages/backend/src/server/web/views/base.pug +++ /dev/null @@ -1,88 +0,0 @@ -block vars - -block loadClientEntry - - const clientEntry = getClientEntry(); - -doctype html - -// - - - _____ _ _ - | |_|___ ___| |_ ___ _ _ - | | | | |_ -|_ -| '_| -_| | | - |_|_|_|_|___|___|_,_|___|_ | - |___| - Thank you for using Misskey! - If you are reading this message... how about joining the development? - https://github.com/misskey-dev/misskey - - -html - - head - meta(charset='utf-8') - meta(name='application-name' content='Misskey') - meta(name='referrer' content='origin') - meta(name='theme-color' content= themeColor || '#86b300') - meta(name='theme-color-orig' content= themeColor || '#86b300') - meta(property='twitter:card' content='summary') - meta(property='og:site_name' content= instanceName || 'Misskey') - meta(name='viewport' content='width=device-width, initial-scale=1') - link(rel='icon' href= icon || '/favicon.ico') - link(rel='apple-touch-icon' href= icon || '/apple-touch-icon.png') - link(rel='manifest' href='/manifest.json') - link(rel='prefetch' href='https://xn--931a.moe/assets/info.jpg') - link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg') - link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg') - link(rel='stylesheet' href='/assets/fontawesome/css/all.css') - link(rel='modulepreload' href=`/assets/${clientEntry.file}`) - - each href in clientEntry.css - link(rel='preload' href=`/assets/${href}` as='style') - - each href in clientEntry.css - link(rel='preload' href=`/assets/${href}` as='style') - - title - block title - = title || 'Misskey' - - block desc - meta(name='description' content= desc || '✨🌎✨ A interplanetary communication platform ✨🚀✨') - - block meta - - block og - meta(property='og:title' content= title || 'Misskey') - meta(property='og:description' content= desc || '✨🌎✨ A interplanetary communication platform ✨🚀✨') - meta(property='og:image' content= img) - - style - include ../style.css - - script. - var VERSION = "#{version}"; - var CLIENT_ENTRY = "#{clientEntry.file}"; - - script - include ../boot.js - - body - noscript: p - | JavaScriptを有効にしてください - br - | Please turn on your JavaScript - div#splash - img#splashIcon(src= icon || '/static-assets/splash.png') - div#splashSpinner - - - - - - - - - - - block content diff --git a/packages/backend/src/server/web/views/bios.pug b/packages/backend/src/server/web/views/bios.pug deleted file mode 100644 index 39a151a29..000000000 --- a/packages/backend/src/server/web/views/bios.pug +++ /dev/null @@ -1,20 +0,0 @@ -doctype html - -html - - head - meta(charset='utf-8') - meta(name='application-name' content='Misskey') - title Misskey Repair Tool - style - include ../bios.css - script - include ../bios.js - - body - header - h1 Misskey Repair Tool #{version} - main - div.tabs - button#ls edit local storage - div#content diff --git a/packages/backend/src/server/web/views/cli.pug b/packages/backend/src/server/web/views/cli.pug deleted file mode 100644 index d2cf7c433..000000000 --- a/packages/backend/src/server/web/views/cli.pug +++ /dev/null @@ -1,21 +0,0 @@ -doctype html - -html - - head - meta(charset='utf-8') - meta(name='application-name' content='Misskey') - title Misskey Cli - style - include ../cli.css - script - include ../cli.js - - body - header - h1 Misskey Cli #{version} - main - div#form - textarea#text - button#submit submit - div#tl diff --git a/packages/backend/src/server/web/views/flush.pug b/packages/backend/src/server/web/views/flush.pug deleted file mode 100644 index a73a45212..000000000 --- a/packages/backend/src/server/web/views/flush.pug +++ /dev/null @@ -1,47 +0,0 @@ -doctype html - -html - #msg - script. - const msg = document.getElementById('msg'); - const successText = `\nSuccess Flush! Back to Misskey\n成功しました。Misskeyを開き直してください。`; - - message('Start flushing.'); - - (async function() { - try { - localStorage.clear(); - message('localStorage cleared.'); - - const idbPromises = ['MisskeyClient', 'keyval-store'].map((name, i, arr) => new Promise((res, rej) => { - const delidb = indexedDB.deleteDatabase(name); - delidb.onsuccess = () => res(message(`indexedDB "${name}" cleared. (${i + 1}/${arr.length})`)); - delidb.onerror = e => rej(e) - })); - - await Promise.all(idbPromises); - - if (navigator.serviceWorker.controller) { - navigator.serviceWorker.controller.postMessage('clear'); - await navigator.serviceWorker.getRegistrations() - .then(registrations => { - return Promise.all(registrations.map(registration => registration.unregister())); - }) - .catch(e => { throw new Error(e) }); - } - - message(successText); - } catch (e) { - message(`\n${e}\n\nFlush Failed. Please retry.\n失敗しました。もう一度試してみてください。`); - message(`\nIf you retry more than 3 times, clear the browser cache or contact to instance admin.\n3回以上試しても失敗する場合、ブラウザのキャッシュを消去し、それでもだめならインスタンス管理者に連絡してみてください。\n`) - - console.error(e); - setTimeout(() => { - location = '/'; - }, 10000) - } - })(); - - function message(text) { - msg.insertAdjacentHTML('beforeend', `

[${(new Date()).toString()}] ${text.replace(/\n/g,'
')}

`) - } diff --git a/packages/backend/src/server/web/views/gallery-post.pug b/packages/backend/src/server/web/views/gallery-post.pug deleted file mode 100644 index ca0663a48..000000000 --- a/packages/backend/src/server/web/views/gallery-post.pug +++ /dev/null @@ -1,33 +0,0 @@ -extends ./base - -block vars - - const user = post.user; - - const title = post.title; - - const url = `${config.url}/gallery/${post.id}`; - -block title - = `${title} | ${instanceName}` - -block desc - meta(name='description' content= post.description) - -block og - meta(property='og:type' content='article') - meta(property='og:title' content= title) - meta(property='og:description' content= post.description) - meta(property='og:url' content= url) - meta(property='og:image' content= post.files[0].thumbnailUrl) - -block meta - if user.host || profile.noCrawle - meta(name='robots' content='noindex') - - meta(name='misskey:user-username' content=user.username) - meta(name='misskey:user-id' content=user.id) - - // todo - if user.twitter - meta(name='twitter:creator' content=`@${user.twitter.screenName}`) - - if !user.host - link(rel='alternate' href=url type='application/activity+json') diff --git a/packages/backend/src/server/web/views/info-card.pug b/packages/backend/src/server/web/views/info-card.pug deleted file mode 100644 index 1d62778ce..000000000 --- a/packages/backend/src/server/web/views/info-card.pug +++ /dev/null @@ -1,50 +0,0 @@ -doctype html - -html - - head - meta(charset='utf-8') - meta(name='application-name' content='Misskey') - title= meta.name || host - style. - html, body { - margin: 0; - padding: 0; - min-height: 100vh; - background: #fff; - } - - #a { - display: block; - } - - #banner { - background-size: cover; - background-position: center center; - } - - #title { - display: inline-block; - margin: 24px; - padding: 0.5em 0.8em; - color: #fff; - background: rgba(0, 0, 0, 0.5); - font-weight: bold; - font-size: 1.3em; - } - - #content { - overflow: auto; - color: #353c3e; - } - - #description { - margin: 24px; - } - - body - a#a(href=`https://${host}` target="_blank") - header#banner(style=`background-image: url(${meta.bannerUrl})`) - div#title= meta.name || host - div#content - div#description= meta.description diff --git a/packages/backend/src/server/well-known.ts b/packages/backend/src/server/well-known.ts deleted file mode 100644 index 1d094f2ed..000000000 --- a/packages/backend/src/server/well-known.ts +++ /dev/null @@ -1,151 +0,0 @@ -import Router from '@koa/router'; - -import config from '@/config/index.js'; -import * as Acct from '@/misc/acct.js'; -import { links } from './nodeinfo.js'; -import { escapeAttribute, escapeValue } from '@/prelude/xml.js'; -import { Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { FindOptionsWhere, IsNull } from 'typeorm'; - -// Init router -const router = new Router(); - -const XRD = (...x: { element: string, value?: string, attributes?: Record }[]) => - `${x.map(({ element, value, attributes }) => - `<${ - Object.entries(typeof attributes === 'object' && attributes || {}).reduce((a, [k, v]) => `${a} ${k}="${escapeAttribute(v)}"`, element) - }${ - typeof value === 'string' ? `>${escapeValue(value)}`).reduce((a, c) => a + c, '')}`; - -const allPath = '/.well-known/(.*)'; -const webFingerPath = '/.well-known/webfinger'; -const jrd = 'application/jrd+json'; -const xrd = 'application/xrd+xml'; - -router.use(allPath, async (ctx, next) => { - ctx.set({ - 'Access-Control-Allow-Headers': 'Accept', - 'Access-Control-Allow-Methods': 'GET, OPTIONS', - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Expose-Headers': 'Vary', - }); - await next(); -}); - -router.options(allPath, async ctx => { - ctx.status = 204; -}); - -router.get('/.well-known/host-meta', async ctx => { - ctx.set('Content-Type', xrd); - ctx.body = XRD({ element: 'Link', attributes: { - rel: 'lrdd', - type: xrd, - template: `${config.url}${webFingerPath}?resource={uri}`, - } }); -}); - -router.get('/.well-known/host-meta.json', async ctx => { - ctx.set('Content-Type', jrd); - ctx.body = { - links: [{ - rel: 'lrdd', - type: jrd, - template: `${config.url}${webFingerPath}?resource={uri}`, - }], - }; -}); - -router.get('/.well-known/nodeinfo', async ctx => { - ctx.body = { links }; -}); - -/* TODO -router.get('/.well-known/change-password', async ctx => { -}); -*/ - -router.get(webFingerPath, async ctx => { - const fromId = (id: User['id']): FindOptionsWhere => ({ - id, - host: IsNull(), - isSuspended: false, - }); - - const generateQuery = (resource: string): FindOptionsWhere | number => - resource.startsWith(`${config.url.toLowerCase()}/users/`) ? - fromId(resource.split('/').pop()!) : - fromAcct(Acct.parse( - resource.startsWith(`${config.url.toLowerCase()}/@`) ? resource.split('/').pop()! : - resource.startsWith('acct:') ? resource.slice('acct:'.length) : - resource)); - - const fromAcct = (acct: Acct.Acct): FindOptionsWhere | number => - !acct.host || acct.host === config.host.toLowerCase() ? { - usernameLower: acct.username, - host: IsNull(), - isSuspended: false, - } : 422; - - if (typeof ctx.query.resource !== 'string') { - ctx.status = 400; - return; - } - - const query = generateQuery(ctx.query.resource.toLowerCase()); - - if (typeof query === 'number') { - ctx.status = query; - return; - } - - const user = await Users.findOneBy(query); - - if (user == null) { - ctx.status = 404; - return; - } - - const subject = `acct:${user.username}@${config.host}`; - const self = { - rel: 'self', - type: 'application/activity+json', - href: `${config.url}/users/${user.id}`, - }; - const profilePage = { - rel: 'http://webfinger.net/rel/profile-page', - type: 'text/html', - href: `${config.url}/@${user.username}`, - }; - const subscribe = { - rel: 'http://ostatus.org/schema/1.0/subscribe', - template: `${config.url}/authorize-follow?acct={uri}`, - }; - - if (ctx.accepts(jrd, xrd) === xrd) { - ctx.body = XRD( - { element: 'Subject', value: subject }, - { element: 'Link', attributes: self }, - { element: 'Link', attributes: profilePage }, - { element: 'Link', attributes: subscribe }); - ctx.type = xrd; - } else { - ctx.body = { - subject, - links: [self, profilePage, subscribe], - }; - ctx.type = jrd; - } - - ctx.vary('Accept'); - ctx.set('Cache-Control', 'public, max-age=180'); -}); - -// Return 404 for other .well-known -router.all(allPath, async ctx => { - ctx.status = 404; -}); - -export default router; diff --git a/packages/backend/src/services/add-note-to-antenna.ts b/packages/backend/src/services/add-note-to-antenna.ts deleted file mode 100644 index 1f344222e..000000000 --- a/packages/backend/src/services/add-note-to-antenna.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Antenna } from '@/models/entities/antenna.js'; -import { Note } from '@/models/entities/note.js'; -import { AntennaNotes, Mutings, Notes } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { isUserRelated } from '@/misc/is-user-related.js'; -import { publishAntennaStream, publishMainStream } from '@/services/stream.js'; -import { User } from '@/models/entities/user.js'; - -export async function addNoteToAntenna(antenna: Antenna, note: Note, noteUser: { id: User['id']; }) { - // 通知しない設定になっているか、自分自身の投稿なら既読にする - const read = !antenna.notify || (antenna.userId === noteUser.id); - - AntennaNotes.insert({ - id: genId(), - antennaId: antenna.id, - noteId: note.id, - read: read, - }); - - publishAntennaStream(antenna.id, 'note', note); - - if (!read) { - const mutings = await Mutings.find({ - where: { - muterId: antenna.userId, - }, - select: ['muteeId'], - }); - - // Copy - const _note: Note = { - ...note, - }; - - if (note.replyId != null) { - _note.reply = await Notes.findOneByOrFail({ id: note.replyId }); - } - if (note.renoteId != null) { - _note.renote = await Notes.findOneByOrFail({ id: note.renoteId }); - } - - if (isUserRelated(_note, new Set(mutings.map(x => x.muteeId)))) { - return; - } - - // 2秒経っても既読にならなかったら通知 - setTimeout(async () => { - const unread = await AntennaNotes.findOneBy({ antennaId: antenna.id, read: false }); - if (unread) { - publishMainStream(antenna.userId, 'unreadAntenna', antenna); - } - }, 2000); - } -} diff --git a/packages/backend/src/services/blocking/create.ts b/packages/backend/src/services/blocking/create.ts deleted file mode 100644 index a2c61cca2..000000000 --- a/packages/backend/src/services/blocking/create.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { publishMainStream, publishUserEvent } from '@/services/stream.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { renderBlock } from '@/remote/activitypub/renderer/block.js'; -import { deliver } from '@/queue/index.js'; -import renderReject from '@/remote/activitypub/renderer/reject.js'; -import { Blocking } from '@/models/entities/blocking.js'; -import { User } from '@/models/entities/user.js'; -import { Blockings, Users, FollowRequests, Followings, UserListJoinings, UserLists } from '@/models/index.js'; -import { perUserFollowingChart } from '@/services/chart/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { getActiveWebhooks } from '@/misc/webhook-cache.js'; -import { webhookDeliver } from '@/queue/index.js'; - -export default async function(blocker: User, blockee: User) { - await Promise.all([ - cancelRequest(blocker, blockee), - cancelRequest(blockee, blocker), - unFollow(blocker, blockee), - unFollow(blockee, blocker), - removeFromList(blockee, blocker), - ]); - - const blocking = { - id: genId(), - createdAt: new Date(), - blocker, - blockerId: blocker.id, - blockee, - blockeeId: blockee.id, - } as Blocking; - - await Blockings.insert(blocking); - - if (Users.isLocalUser(blocker) && Users.isRemoteUser(blockee)) { - const content = renderActivity(renderBlock(blocking)); - deliver(blocker, content, blockee.inbox); - } -} - -async function cancelRequest(follower: User, followee: User) { - const request = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (request == null) { - return; - } - - await FollowRequests.delete({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (Users.isLocalUser(followee)) { - Users.pack(followee, followee, { - detail: true, - }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); - } - - if (Users.isLocalUser(follower)) { - Users.pack(followee, follower, { - detail: true, - }).then(async packed => { - publishUserEvent(follower.id, 'unfollow', packed); - publishMainStream(follower.id, 'unfollow', packed); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'unfollow', { - user: packed, - }); - } - }); - } - - // リモートにフォローリクエストをしていたらUndoFollow送信 - if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); - deliver(follower, content, followee.inbox); - } - - // リモートからフォローリクエストを受けていたらReject送信 - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - const content = renderActivity(renderReject(renderFollow(follower, followee, request.requestId!), followee)); - deliver(followee, content, follower.inbox); - } -} - -async function unFollow(follower: User, followee: User) { - const following = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - - if (following == null) { - return; - } - - await Promise.all([ - Followings.delete(following.id), - Users.decrement({ id: follower.id }, 'followingCount', 1), - Users.decrement({ id: followee.id }, 'followersCount', 1), - perUserFollowingChart.update(follower, followee, false), - ]); - - // Publish unfollow event - if (Users.isLocalUser(follower)) { - Users.pack(followee, follower, { - detail: true, - }).then(async packed => { - publishUserEvent(follower.id, 'unfollow', packed); - publishMainStream(follower.id, 'unfollow', packed); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'unfollow', { - user: packed, - }); - } - }); - } - - // リモートにフォローをしていたらUndoFollow送信 - if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); - deliver(follower, content, followee.inbox); - } -} - -async function removeFromList(listOwner: User, user: User) { - const userLists = await UserLists.findBy({ - userId: listOwner.id, - }); - - for (const userList of userLists) { - await UserListJoinings.delete({ - userListId: userList.id, - userId: user.id, - }); - } -} diff --git a/packages/backend/src/services/blocking/delete.ts b/packages/backend/src/services/blocking/delete.ts deleted file mode 100644 index cb16651bc..000000000 --- a/packages/backend/src/services/blocking/delete.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { renderBlock } from '@/remote/activitypub/renderer/block.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { deliver } from '@/queue/index.js'; -import Logger from '../logger.js'; -import { CacheableUser, User } from '@/models/entities/user.js'; -import { Blockings, Users } from '@/models/index.js'; - -const logger = new Logger('blocking/delete'); - -export default async function(blocker: CacheableUser, blockee: CacheableUser) { - const blocking = await Blockings.findOneBy({ - blockerId: blocker.id, - blockeeId: blockee.id, - }); - - if (blocking == null) { - logger.warn('ブロック解除がリクエストされましたがブロックしていませんでした'); - return; - } - - // Since we already have the blocker and blockee, we do not need to fetch - // them in the query above and can just manually insert them here. - blocking.blocker = blocker; - blocking.blockee = blockee; - - Blockings.delete(blocking.id); - - // deliver if remote bloking - if (Users.isLocalUser(blocker) && Users.isRemoteUser(blockee)) { - const content = renderActivity(renderUndo(renderBlock(blocking), blocker)); - deliver(blocker, content, blockee.inbox); - } -} diff --git a/packages/backend/src/services/chart/charts/active-users.ts b/packages/backend/src/services/chart/charts/active-users.ts deleted file mode 100644 index d952ea53b..000000000 --- a/packages/backend/src/services/chart/charts/active-users.ts +++ /dev/null @@ -1,44 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { User } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; -import { name, schema } from './entities/active-users.js'; - -const week = 1000 * 60 * 60 * 24 * 7; -const month = 1000 * 60 * 60 * 24 * 30; -const year = 1000 * 60 * 60 * 24 * 365; - -/** - * アクティブユーザーに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class ActiveUsersChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async read(user: { id: User['id'], host: null, createdAt: User['createdAt'] }): Promise { - await this.commit({ - 'read': [user.id], - 'registeredWithinWeek': (Date.now() - user.createdAt.getTime() < week) ? [user.id] : [], - 'registeredWithinMonth': (Date.now() - user.createdAt.getTime() < month) ? [user.id] : [], - 'registeredWithinYear': (Date.now() - user.createdAt.getTime() < year) ? [user.id] : [], - 'registeredOutsideWeek': (Date.now() - user.createdAt.getTime() > week) ? [user.id] : [], - 'registeredOutsideMonth': (Date.now() - user.createdAt.getTime() > month) ? [user.id] : [], - 'registeredOutsideYear': (Date.now() - user.createdAt.getTime() > year) ? [user.id] : [], - }); - } - - public async write(user: { id: User['id'], host: null, createdAt: User['createdAt'] }): Promise { - await this.commit({ - 'write': [user.id], - }); - } -} diff --git a/packages/backend/src/services/chart/charts/ap-request.ts b/packages/backend/src/services/chart/charts/ap-request.ts deleted file mode 100644 index e9e42ade7..000000000 --- a/packages/backend/src/services/chart/charts/ap-request.ts +++ /dev/null @@ -1,38 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { name, schema } from './entities/ap-request.js'; - -/** - * Chart about ActivityPub requests - */ -// eslint-disable-next-line import/no-default-export -export default class ApRequestChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async deliverSucc(): Promise { - await this.commit({ - 'deliverSucceeded': 1, - }); - } - - public async deliverFail(): Promise { - await this.commit({ - 'deliverFailed': 1, - }); - } - - public async inbox(): Promise { - await this.commit({ - 'inboxReceived': 1, - }); - } -} diff --git a/packages/backend/src/services/chart/charts/drive.ts b/packages/backend/src/services/chart/charts/drive.ts deleted file mode 100644 index 0eeba90dd..000000000 --- a/packages/backend/src/services/chart/charts/drive.ts +++ /dev/null @@ -1,38 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { DriveFiles } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { name, schema } from './entities/drive.js'; - -/** - * ドライブに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class DriveChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(file: DriveFile, isAdditional: boolean): Promise { - const fileSizeKb = file.size / 1000; - await this.commit(file.userHost === null ? { - 'local.incCount': isAdditional ? 1 : 0, - 'local.incSize': isAdditional ? fileSizeKb : 0, - 'local.decCount': isAdditional ? 0 : 1, - 'local.decSize': isAdditional ? 0 : fileSizeKb, - } : { - 'remote.incCount': isAdditional ? 1 : 0, - 'remote.incSize': isAdditional ? fileSizeKb : 0, - 'remote.decCount': isAdditional ? 0 : 1, - 'remote.decSize': isAdditional ? 0 : fileSizeKb, - }); - } -} diff --git a/packages/backend/src/services/chart/charts/entities/active-users.ts b/packages/backend/src/services/chart/charts/entities/active-users.ts deleted file mode 100644 index 5767b76f8..000000000 --- a/packages/backend/src/services/chart/charts/entities/active-users.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'activeUsers'; - -export const schema = { - 'readWrite': { intersection: ['read', 'write'], range: 'small' }, - 'read': { uniqueIncrement: true, range: 'small' }, - 'write': { uniqueIncrement: true, range: 'small' }, - 'registeredWithinWeek': { uniqueIncrement: true, range: 'small' }, - 'registeredWithinMonth': { uniqueIncrement: true, range: 'small' }, - 'registeredWithinYear': { uniqueIncrement: true, range: 'small' }, - 'registeredOutsideWeek': { uniqueIncrement: true, range: 'small' }, - 'registeredOutsideMonth': { uniqueIncrement: true, range: 'small' }, - 'registeredOutsideYear': { uniqueIncrement: true, range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/ap-request.ts b/packages/backend/src/services/chart/charts/entities/ap-request.ts deleted file mode 100644 index 3a9f3dacf..000000000 --- a/packages/backend/src/services/chart/charts/entities/ap-request.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'apRequest'; - -export const schema = { - 'deliverFailed': { }, - 'deliverSucceeded': { }, - 'inboxReceived': { }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/drive.ts b/packages/backend/src/services/chart/charts/entities/drive.ts deleted file mode 100644 index 4bf5bb729..000000000 --- a/packages/backend/src/services/chart/charts/entities/drive.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'drive'; - -export const schema = { - 'local.incCount': {}, - 'local.incSize': {}, // in kilobyte - 'local.decCount': {}, - 'local.decSize': {}, // in kilobyte - 'remote.incCount': {}, - 'remote.incSize': {}, // in kilobyte - 'remote.decCount': {}, - 'remote.decSize': {}, // in kilobyte -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/federation.ts b/packages/backend/src/services/chart/charts/entities/federation.ts deleted file mode 100644 index a8466b0b4..000000000 --- a/packages/backend/src/services/chart/charts/entities/federation.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'federation'; - -export const schema = { - 'deliveredInstances': { uniqueIncrement: true, range: 'small' }, - 'inboxInstances': { uniqueIncrement: true, range: 'small' }, - 'stalled': { uniqueIncrement: true, range: 'small' }, - 'sub': { accumulate: true, range: 'small' }, - 'pub': { accumulate: true, range: 'small' }, - 'pubsub': { accumulate: true, range: 'small' }, - 'subActive': { accumulate: true, range: 'small' }, - 'pubActive': { accumulate: true, range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/hashtag.ts b/packages/backend/src/services/chart/charts/entities/hashtag.ts deleted file mode 100644 index 4d0403904..000000000 --- a/packages/backend/src/services/chart/charts/entities/hashtag.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'hashtag'; - -export const schema = { - 'local.users': { uniqueIncrement: true }, - 'remote.users': { uniqueIncrement: true }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/instance.ts b/packages/backend/src/services/chart/charts/entities/instance.ts deleted file mode 100644 index 06962120e..000000000 --- a/packages/backend/src/services/chart/charts/entities/instance.ts +++ /dev/null @@ -1,32 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'instance'; - -export const schema = { - 'requests.failed': { range: 'small' }, - 'requests.succeeded': { range: 'small' }, - 'requests.received': { range: 'small' }, - 'notes.total': { accumulate: true }, - 'notes.inc': {}, - 'notes.dec': {}, - 'notes.diffs.normal': {}, - 'notes.diffs.reply': {}, - 'notes.diffs.renote': {}, - 'notes.diffs.withFile': {}, - 'users.total': { accumulate: true }, - 'users.inc': { range: 'small' }, - 'users.dec': { range: 'small' }, - 'following.total': { accumulate: true }, - 'following.inc': { range: 'small' }, - 'following.dec': { range: 'small' }, - 'followers.total': { accumulate: true }, - 'followers.inc': { range: 'small' }, - 'followers.dec': { range: 'small' }, - 'drive.totalFiles': { accumulate: true }, - 'drive.incFiles': {}, - 'drive.decFiles': {}, - 'drive.incUsage': {}, // in kilobyte - 'drive.decUsage': {}, // in kilobyte -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/notes.ts b/packages/backend/src/services/chart/charts/entities/notes.ts deleted file mode 100644 index 9387dbfb2..000000000 --- a/packages/backend/src/services/chart/charts/entities/notes.ts +++ /dev/null @@ -1,22 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'notes'; - -export const schema = { - 'local.total': { accumulate: true }, - 'local.inc': {}, - 'local.dec': {}, - 'local.diffs.normal': {}, - 'local.diffs.reply': {}, - 'local.diffs.renote': {}, - 'local.diffs.withFile': {}, - 'remote.total': { accumulate: true }, - 'remote.inc': {}, - 'remote.dec': {}, - 'remote.diffs.normal': {}, - 'remote.diffs.reply': {}, - 'remote.diffs.renote': {}, - 'remote.diffs.withFile': {}, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/per-user-drive.ts b/packages/backend/src/services/chart/charts/entities/per-user-drive.ts deleted file mode 100644 index 6111640ea..000000000 --- a/packages/backend/src/services/chart/charts/entities/per-user-drive.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'perUserDrive'; - -export const schema = { - 'totalCount': { accumulate: true }, - 'totalSize': { accumulate: true }, // in kilobyte - 'incCount': { range: 'small' }, - 'incSize': {}, // in kilobyte - 'decCount': { range: 'small' }, - 'decSize': {}, // in kilobyte -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/per-user-following.ts b/packages/backend/src/services/chart/charts/entities/per-user-following.ts deleted file mode 100644 index 4118daa47..000000000 --- a/packages/backend/src/services/chart/charts/entities/per-user-following.ts +++ /dev/null @@ -1,20 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'perUserFollowing'; - -export const schema = { - 'local.followings.total': { accumulate: true }, - 'local.followings.inc': { range: 'small' }, - 'local.followings.dec': { range: 'small' }, - 'local.followers.total': { accumulate: true }, - 'local.followers.inc': { range: 'small' }, - 'local.followers.dec': { range: 'small' }, - 'remote.followings.total': { accumulate: true }, - 'remote.followings.inc': { range: 'small' }, - 'remote.followings.dec': { range: 'small' }, - 'remote.followers.total': { accumulate: true }, - 'remote.followers.inc': { range: 'small' }, - 'remote.followers.dec': { range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/per-user-notes.ts b/packages/backend/src/services/chart/charts/entities/per-user-notes.ts deleted file mode 100644 index c1fa17445..000000000 --- a/packages/backend/src/services/chart/charts/entities/per-user-notes.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'perUserNotes'; - -export const schema = { - 'total': { accumulate: true }, - 'inc': { range: 'small' }, - 'dec': { range: 'small' }, - 'diffs.normal': { range: 'small' }, - 'diffs.reply': { range: 'small' }, - 'diffs.renote': { range: 'small' }, - 'diffs.withFile': { range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/per-user-reactions.ts b/packages/backend/src/services/chart/charts/entities/per-user-reactions.ts deleted file mode 100644 index 5e1a6c7b3..000000000 --- a/packages/backend/src/services/chart/charts/entities/per-user-reactions.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'perUserReaction'; - -export const schema = { - 'local.count': { range: 'small' }, - 'remote.count': { range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/test-grouped.ts b/packages/backend/src/services/chart/charts/entities/test-grouped.ts deleted file mode 100644 index 66b6e8e86..000000000 --- a/packages/backend/src/services/chart/charts/entities/test-grouped.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'testGrouped'; - -export const schema = { - 'foo.total': { accumulate: true }, - 'foo.inc': {}, - 'foo.dec': {}, -} as const; - -export const entity = Chart.schemaToEntity(name, schema, true); diff --git a/packages/backend/src/services/chart/charts/entities/test-intersection.ts b/packages/backend/src/services/chart/charts/entities/test-intersection.ts deleted file mode 100644 index a3bdcb367..000000000 --- a/packages/backend/src/services/chart/charts/entities/test-intersection.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'testIntersection'; - -export const schema = { - 'a': { uniqueIncrement: true }, - 'b': { uniqueIncrement: true }, - 'aAndB': { intersection: ['a', 'b'] }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/test-unique.ts b/packages/backend/src/services/chart/charts/entities/test-unique.ts deleted file mode 100644 index b2cfb71b0..000000000 --- a/packages/backend/src/services/chart/charts/entities/test-unique.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'testUnique'; - -export const schema = { - 'foo': { uniqueIncrement: true }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/test.ts b/packages/backend/src/services/chart/charts/entities/test.ts deleted file mode 100644 index 7cba21e16..000000000 --- a/packages/backend/src/services/chart/charts/entities/test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'test'; - -export const schema = { - 'foo.total': { accumulate: true }, - 'foo.inc': {}, - 'foo.dec': {}, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/entities/users.ts b/packages/backend/src/services/chart/charts/entities/users.ts deleted file mode 100644 index c0b83094a..000000000 --- a/packages/backend/src/services/chart/charts/entities/users.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Chart from '../../core.js'; - -export const name = 'users'; - -export const schema = { - 'local.total': { accumulate: true }, - 'local.inc': { range: 'small' }, - 'local.dec': { range: 'small' }, - 'remote.total': { accumulate: true }, - 'remote.inc': { range: 'small' }, - 'remote.dec': { range: 'small' }, -} as const; - -export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/federation.ts b/packages/backend/src/services/chart/charts/federation.ts deleted file mode 100644 index 10221ee1e..000000000 --- a/packages/backend/src/services/chart/charts/federation.ts +++ /dev/null @@ -1,103 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { Followings, Instances } from '@/models/index.js'; -import { name, schema } from './entities/federation.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; - -/** - * フェデレーションに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class FederationChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return { - }; - } - - protected async tickMinor(): Promise>> { - const meta = await fetchMeta(); - - const suspendedInstancesQuery = Instances.createQueryBuilder('instance') - .select('instance.host') - .where('instance.isSuspended = true'); - - const pubsubSubQuery = Followings.createQueryBuilder('f') - .select('f.followerHost') - .where('f.followerHost IS NOT NULL'); - - const subInstancesQuery = Followings.createQueryBuilder('f') - .select('f.followeeHost') - .where('f.followeeHost IS NOT NULL'); - - const pubInstancesQuery = Followings.createQueryBuilder('f') - .select('f.followerHost') - .where('f.followerHost IS NOT NULL'); - - const [sub, pub, pubsub, subActive, pubActive] = await Promise.all([ - Followings.createQueryBuilder('following') - .select('COUNT(DISTINCT following.followeeHost)') - .where('following.followeeHost IS NOT NULL') - .andWhere(meta.blockedHosts.length === 0 ? '1=1' : `following.followeeHost NOT IN (:...blocked)`, { blocked: meta.blockedHosts }) - .andWhere(`following.followeeHost NOT IN (${ suspendedInstancesQuery.getQuery() })`) - .getRawOne() - .then(x => parseInt(x.count, 10)), - Followings.createQueryBuilder('following') - .select('COUNT(DISTINCT following.followerHost)') - .where('following.followerHost IS NOT NULL') - .andWhere(meta.blockedHosts.length === 0 ? '1=1' : `following.followerHost NOT IN (:...blocked)`, { blocked: meta.blockedHosts }) - .andWhere(`following.followerHost NOT IN (${ suspendedInstancesQuery.getQuery() })`) - .getRawOne() - .then(x => parseInt(x.count, 10)), - Followings.createQueryBuilder('following') - .select('COUNT(DISTINCT following.followeeHost)') - .where('following.followeeHost IS NOT NULL') - .andWhere(meta.blockedHosts.length === 0 ? '1=1' : `following.followeeHost NOT IN (:...blocked)`, { blocked: meta.blockedHosts }) - .andWhere(`following.followeeHost NOT IN (${ suspendedInstancesQuery.getQuery() })`) - .andWhere(`following.followeeHost IN (${ pubsubSubQuery.getQuery() })`) - .setParameters(pubsubSubQuery.getParameters()) - .getRawOne() - .then(x => parseInt(x.count, 10)), - Instances.createQueryBuilder('instance') - .select('COUNT(instance.id)') - .where(`instance.host IN (${ subInstancesQuery.getQuery() })`) - .andWhere(meta.blockedHosts.length === 0 ? '1=1' : `instance.host NOT IN (:...blocked)`, { blocked: meta.blockedHosts }) - .andWhere(`instance.isSuspended = false`) - .andWhere(`instance.lastCommunicatedAt > :gt`, { gt: new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)) }) - .getRawOne() - .then(x => parseInt(x.count, 10)), - Instances.createQueryBuilder('instance') - .select('COUNT(instance.id)') - .where(`instance.host IN (${ pubInstancesQuery.getQuery() })`) - .andWhere(meta.blockedHosts.length === 0 ? '1=1' : `instance.host NOT IN (:...blocked)`, { blocked: meta.blockedHosts }) - .andWhere(`instance.isSuspended = false`) - .andWhere(`instance.lastCommunicatedAt > :gt`, { gt: new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)) }) - .getRawOne() - .then(x => parseInt(x.count, 10)), - ]); - - return { - 'sub': sub, - 'pub': pub, - 'pubsub': pubsub, - 'subActive': subActive, - 'pubActive': pubActive, - }; - } - - public async deliverd(host: string, succeeded: boolean): Promise { - await this.commit(succeeded ? { - 'deliveredInstances': [host], - } : { - 'stalled': [host], - }); - } - - public async inbox(host: string): Promise { - await this.commit({ - 'inboxInstances': [host], - }); - } -} diff --git a/packages/backend/src/services/chart/charts/hashtag.ts b/packages/backend/src/services/chart/charts/hashtag.ts deleted file mode 100644 index 31f7fa95d..000000000 --- a/packages/backend/src/services/chart/charts/hashtag.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { User } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; -import { name, schema } from './entities/hashtag.js'; - -/** - * ハッシュタグに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class HashtagChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(hashtag: string, user: { id: User['id'], host: User['host'] }): Promise { - await this.commit({ - 'local.users': Users.isLocalUser(user) ? [user.id] : [], - 'remote.users': Users.isLocalUser(user) ? [] : [user.id], - }, hashtag); - } -} diff --git a/packages/backend/src/services/chart/charts/instance.ts b/packages/backend/src/services/chart/charts/instance.ts deleted file mode 100644 index fe29ba522..000000000 --- a/packages/backend/src/services/chart/charts/instance.ts +++ /dev/null @@ -1,103 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { DriveFiles, Followings, Users, Notes } from '@/models/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { Note } from '@/models/entities/note.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { name, schema } from './entities/instance.js'; - -/** - * インスタンスごとのチャート - */ -// eslint-disable-next-line import/no-default-export -export default class InstanceChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - const [ - notesCount, - usersCount, - followingCount, - followersCount, - driveFiles, - ] = await Promise.all([ - Notes.countBy({ userHost: group }), - Users.countBy({ host: group }), - Followings.countBy({ followerHost: group }), - Followings.countBy({ followeeHost: group }), - DriveFiles.countBy({ userHost: group }), - ]); - - return { - 'notes.total': notesCount, - 'users.total': usersCount, - 'following.total': followingCount, - 'followers.total': followersCount, - 'drive.totalFiles': driveFiles, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async requestReceived(host: string): Promise { - await this.commit({ - 'requests.received': 1, - }, toPuny(host)); - } - - public async requestSent(host: string, isSucceeded: boolean): Promise { - await this.commit({ - 'requests.succeeded': isSucceeded ? 1 : 0, - 'requests.failed': isSucceeded ? 0 : 1, - }, toPuny(host)); - } - - public async newUser(host: string): Promise { - await this.commit({ - 'users.total': 1, - 'users.inc': 1, - }, toPuny(host)); - } - - public async updateNote(host: string, note: Note, isAdditional: boolean): Promise { - await this.commit({ - 'notes.total': isAdditional ? 1 : -1, - 'notes.inc': isAdditional ? 1 : 0, - 'notes.dec': isAdditional ? 0 : 1, - 'notes.diffs.normal': note.replyId == null && note.renoteId == null ? (isAdditional ? 1 : -1) : 0, - 'notes.diffs.renote': note.renoteId != null ? (isAdditional ? 1 : -1) : 0, - 'notes.diffs.reply': note.replyId != null ? (isAdditional ? 1 : -1) : 0, - 'notes.diffs.withFile': note.fileIds.length > 0 ? (isAdditional ? 1 : -1) : 0, - }, toPuny(host)); - } - - public async updateFollowing(host: string, isAdditional: boolean): Promise { - await this.commit({ - 'following.total': isAdditional ? 1 : -1, - 'following.inc': isAdditional ? 1 : 0, - 'following.dec': isAdditional ? 0 : 1, - }, toPuny(host)); - } - - public async updateFollowers(host: string, isAdditional: boolean): Promise { - await this.commit({ - 'followers.total': isAdditional ? 1 : -1, - 'followers.inc': isAdditional ? 1 : 0, - 'followers.dec': isAdditional ? 0 : 1, - }, toPuny(host)); - } - - public async updateDrive(file: DriveFile, isAdditional: boolean): Promise { - const fileSizeKb = file.size / 1000; - await this.commit({ - 'drive.totalFiles': isAdditional ? 1 : -1, - 'drive.incFiles': isAdditional ? 1 : 0, - 'drive.incUsage': isAdditional ? fileSizeKb : 0, - 'drive.decFiles': isAdditional ? 1 : 0, - 'drive.decUsage': isAdditional ? fileSizeKb : 0, - }, file.userHost); - } -} diff --git a/packages/backend/src/services/chart/charts/notes.ts b/packages/backend/src/services/chart/charts/notes.ts deleted file mode 100644 index bb14b62f3..000000000 --- a/packages/backend/src/services/chart/charts/notes.ts +++ /dev/null @@ -1,45 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { Notes } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { Note } from '@/models/entities/note.js'; -import { name, schema } from './entities/notes.js'; - -/** - * ノートに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class NotesChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - const [localCount, remoteCount] = await Promise.all([ - Notes.countBy({ userHost: IsNull() }), - Notes.countBy({ userHost: Not(IsNull()) }), - ]); - - return { - 'local.total': localCount, - 'remote.total': remoteCount, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(note: Note, isAdditional: boolean): Promise { - const prefix = note.userHost === null ? 'local' : 'remote'; - - await this.commit({ - [`${prefix}.total`]: isAdditional ? 1 : -1, - [`${prefix}.inc`]: isAdditional ? 1 : 0, - [`${prefix}.dec`]: isAdditional ? 0 : 1, - [`${prefix}.diffs.normal`]: note.replyId == null && note.renoteId == null ? (isAdditional ? 1 : -1) : 0, - [`${prefix}.diffs.renote`]: note.renoteId != null ? (isAdditional ? 1 : -1) : 0, - [`${prefix}.diffs.reply`]: note.replyId != null ? (isAdditional ? 1 : -1) : 0, - [`${prefix}.diffs.withFile`]: note.fileIds.length > 0 ? (isAdditional ? 1 : -1) : 0, - }); - } -} diff --git a/packages/backend/src/services/chart/charts/per-user-drive.ts b/packages/backend/src/services/chart/charts/per-user-drive.ts deleted file mode 100644 index 5f75dc688..000000000 --- a/packages/backend/src/services/chart/charts/per-user-drive.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { DriveFiles } from '@/models/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { name, schema } from './entities/per-user-drive.js'; - -/** - * ユーザーごとのドライブに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class PerUserDriveChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - const [count, size] = await Promise.all([ - DriveFiles.countBy({ userId: group }), - DriveFiles.calcDriveUsageOf(group), - ]); - - return { - 'totalCount': count, - 'totalSize': size, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(file: DriveFile, isAdditional: boolean): Promise { - const fileSizeKb = file.size / 1000; - await this.commit({ - 'totalCount': isAdditional ? 1 : -1, - 'totalSize': isAdditional ? fileSizeKb : -fileSizeKb, - 'incCount': isAdditional ? 1 : 0, - 'incSize': isAdditional ? fileSizeKb : 0, - 'decCount': isAdditional ? 0 : 1, - 'decSize': isAdditional ? 0 : fileSizeKb, - }, file.userId); - } -} diff --git a/packages/backend/src/services/chart/charts/per-user-following.ts b/packages/backend/src/services/chart/charts/per-user-following.ts deleted file mode 100644 index 02b149f52..000000000 --- a/packages/backend/src/services/chart/charts/per-user-following.ts +++ /dev/null @@ -1,56 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { Followings, Users } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { User } from '@/models/entities/user.js'; -import { name, schema } from './entities/per-user-following.js'; - -/** - * ユーザーごとのフォローに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class PerUserFollowingChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - const [ - localFollowingsCount, - localFollowersCount, - remoteFollowingsCount, - remoteFollowersCount, - ] = await Promise.all([ - Followings.countBy({ followerId: group, followeeHost: IsNull() }), - Followings.countBy({ followeeId: group, followerHost: IsNull() }), - Followings.countBy({ followerId: group, followeeHost: Not(IsNull()) }), - Followings.countBy({ followeeId: group, followerHost: Not(IsNull()) }), - ]); - - return { - 'local.followings.total': localFollowingsCount, - 'local.followers.total': localFollowersCount, - 'remote.followings.total': remoteFollowingsCount, - 'remote.followers.total': remoteFollowersCount, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(follower: { id: User['id']; host: User['host']; }, followee: { id: User['id']; host: User['host']; }, isFollow: boolean): Promise { - const prefixFollower = Users.isLocalUser(follower) ? 'local' : 'remote'; - const prefixFollowee = Users.isLocalUser(followee) ? 'local' : 'remote'; - - this.commit({ - [`${prefixFollower}.followings.total`]: isFollow ? 1 : -1, - [`${prefixFollower}.followings.inc`]: isFollow ? 1 : 0, - [`${prefixFollower}.followings.dec`]: isFollow ? 0 : 1, - }, follower.id); - this.commit({ - [`${prefixFollowee}.followers.total`]: isFollow ? 1 : -1, - [`${prefixFollowee}.followers.inc`]: isFollow ? 1 : 0, - [`${prefixFollowee}.followers.dec`]: isFollow ? 0 : 1, - }, followee.id); - } -} diff --git a/packages/backend/src/services/chart/charts/per-user-notes.ts b/packages/backend/src/services/chart/charts/per-user-notes.ts deleted file mode 100644 index b9191dd08..000000000 --- a/packages/backend/src/services/chart/charts/per-user-notes.ts +++ /dev/null @@ -1,41 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { User } from '@/models/entities/user.js'; -import { Notes } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { name, schema } from './entities/per-user-notes.js'; - -/** - * ユーザーごとのノートに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class PerUserNotesChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - const [count] = await Promise.all([ - Notes.countBy({ userId: group }), - ]); - - return { - total: count, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(user: { id: User['id'] }, note: Note, isAdditional: boolean): Promise { - await this.commit({ - 'total': isAdditional ? 1 : -1, - 'inc': isAdditional ? 1 : 0, - 'dec': isAdditional ? 0 : 1, - 'diffs.normal': note.replyId == null && note.renoteId == null ? (isAdditional ? 1 : -1) : 0, - 'diffs.renote': note.renoteId != null ? (isAdditional ? 1 : -1) : 0, - 'diffs.reply': note.replyId != null ? (isAdditional ? 1 : -1) : 0, - 'diffs.withFile': note.fileIds.length > 0 ? (isAdditional ? 1 : -1) : 0, - }, user.id); - } -} diff --git a/packages/backend/src/services/chart/charts/per-user-reactions.ts b/packages/backend/src/services/chart/charts/per-user-reactions.ts deleted file mode 100644 index 3a830e118..000000000 --- a/packages/backend/src/services/chart/charts/per-user-reactions.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { Users } from '@/models/index.js'; -import { name, schema } from './entities/per-user-reactions.js'; - -/** - * ユーザーごとのリアクションに関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class PerUserReactionsChart extends Chart { - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(user: { id: User['id'], host: User['host'] }, note: Note): Promise { - const prefix = Users.isLocalUser(user) ? 'local' : 'remote'; - this.commit({ - [`${prefix}.count`]: 1, - }, note.userId); - } -} diff --git a/packages/backend/src/services/chart/charts/test-grouped.ts b/packages/backend/src/services/chart/charts/test-grouped.ts deleted file mode 100644 index d01c9fcbd..000000000 --- a/packages/backend/src/services/chart/charts/test-grouped.ts +++ /dev/null @@ -1,35 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { name, schema } from './entities/test-grouped.js'; - -/** - * For testing - */ -// eslint-disable-next-line import/no-default-export -export default class TestGroupedChart extends Chart { - private total = {} as Record; - - constructor() { - super(name, schema, true); - } - - protected async tickMajor(group: string): Promise>> { - return { - 'foo.total': this.total[group], - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async increment(group: string): Promise { - if (this.total[group] == null) this.total[group] = 0; - - this.total[group]++; - - await this.commit({ - 'foo.total': 1, - 'foo.inc': 1, - }, group); - } -} diff --git a/packages/backend/src/services/chart/charts/test-intersection.ts b/packages/backend/src/services/chart/charts/test-intersection.ts deleted file mode 100644 index 88b5a715c..000000000 --- a/packages/backend/src/services/chart/charts/test-intersection.ts +++ /dev/null @@ -1,32 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { name, schema } from './entities/test-intersection.js'; - -/** - * For testing - */ -// eslint-disable-next-line import/no-default-export -export default class TestIntersectionChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async addA(key: string): Promise { - await this.commit({ - a: [key], - }); - } - - public async addB(key: string): Promise { - await this.commit({ - b: [key], - }); - } -} diff --git a/packages/backend/src/services/chart/charts/test-unique.ts b/packages/backend/src/services/chart/charts/test-unique.ts deleted file mode 100644 index d714f1d40..000000000 --- a/packages/backend/src/services/chart/charts/test-unique.ts +++ /dev/null @@ -1,26 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { name, schema } from './entities/test-unique.js'; - -/** - * For testing - */ -// eslint-disable-next-line import/no-default-export -export default class TestUniqueChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return {}; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async uniqueIncrement(key: string): Promise { - await this.commit({ - foo: [key], - }); - } -} diff --git a/packages/backend/src/services/chart/charts/test.ts b/packages/backend/src/services/chart/charts/test.ts deleted file mode 100644 index adb2b18c8..000000000 --- a/packages/backend/src/services/chart/charts/test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { name, schema } from './entities/test.js'; - -/** - * For testing - */ -// eslint-disable-next-line import/no-default-export -export default class TestChart extends Chart { - public total = 0; // publicにするのはテストのため - - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - return { - 'foo.total': this.total, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async increment(): Promise { - this.total++; - - await this.commit({ - 'foo.total': 1, - 'foo.inc': 1, - }); - } - - public async decrement(): Promise { - this.total--; - - await this.commit({ - 'foo.total': -1, - 'foo.dec': 1, - }); - } -} diff --git a/packages/backend/src/services/chart/charts/users.ts b/packages/backend/src/services/chart/charts/users.ts deleted file mode 100644 index acb16ead8..000000000 --- a/packages/backend/src/services/chart/charts/users.ts +++ /dev/null @@ -1,41 +0,0 @@ -import Chart, { KVs } from '../core.js'; -import { Users } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { User } from '@/models/entities/user.js'; -import { name, schema } from './entities/users.js'; - -/** - * ユーザー数に関するチャート - */ -// eslint-disable-next-line import/no-default-export -export default class UsersChart extends Chart { - constructor() { - super(name, schema); - } - - protected async tickMajor(): Promise>> { - const [localCount, remoteCount] = await Promise.all([ - Users.countBy({ host: IsNull() }), - Users.countBy({ host: Not(IsNull()) }), - ]); - - return { - 'local.total': localCount, - 'remote.total': remoteCount, - }; - } - - protected async tickMinor(): Promise>> { - return {}; - } - - public async update(user: { id: User['id'], host: User['host'] }, isAdditional: boolean): Promise { - const prefix = Users.isLocalUser(user) ? 'local' : 'remote'; - - await this.commit({ - [`${prefix}.total`]: isAdditional ? 1 : -1, - [`${prefix}.inc`]: isAdditional ? 1 : 0, - [`${prefix}.dec`]: isAdditional ? 0 : 1, - }); - } -} diff --git a/packages/backend/src/services/chart/core.ts b/packages/backend/src/services/chart/core.ts deleted file mode 100644 index 2960bac8f..000000000 --- a/packages/backend/src/services/chart/core.ts +++ /dev/null @@ -1,677 +0,0 @@ -/** - * チャートエンジン - * - * Tests located in test/chart - */ - -import * as nestedProperty from 'nested-property'; -import Logger from '../logger.js'; -import { EntitySchema, Repository, LessThan, Between } from 'typeorm'; -import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '@/prelude/time.js'; -import { getChartInsertLock } from '@/misc/app-lock.js'; -import { db } from '@/db/postgre.js'; - -const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test'); - -const columnPrefix = '___' as const; -const uniqueTempColumnPrefix = 'unique_temp___' as const; -const columnDot = '_' as const; - -type Schema = Record; - - range?: 'big' | 'small' | 'medium'; - - // previousな値を引き継ぐかどうか - accumulate?: boolean; -}>; - -type KeyToColumnName = T extends `${infer R1}.${infer R2}` ? `${R1}${typeof columnDot}${KeyToColumnName}` : T; - -type Columns = { - [K in keyof S as `${typeof columnPrefix}${KeyToColumnName}`]: number; -}; - -type TempColumnsForUnique = { - [K in keyof S as `${typeof uniqueTempColumnPrefix}${KeyToColumnName}`]: S[K]['uniqueIncrement'] extends true ? string[] : never; -}; - -type RawRecord = { - id: number; - - /** - * 集計のグループ - */ - group?: string | null; - - /** - * 集計日時のUnixタイムスタンプ(秒) - */ - date: number; -} & TempColumnsForUnique & Columns; - -const camelToSnake = (str: string): string => { - return str.replace(/([A-Z])/g, s => '_' + s.charAt(0).toLowerCase()); -}; - -const removeDuplicates = (array: any[]) => Array.from(new Set(array)); - -type Commit = { - [K in keyof S]?: S[K]['uniqueIncrement'] extends true ? string[] : number; -}; - -export type KVs = { - [K in keyof S]: number; -}; - -type ChartResult = { - [P in keyof T]: number[]; -}; - -type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never; - -type UnflattenSingleton = K extends `${infer A}.${infer B}` - ? { [_ in A]: UnflattenSingleton; } - : { [_ in K]: V; }; - -type Unflatten> = UnionToIntersection< - { - [K in Extract]: UnflattenSingleton; - }[Extract] ->; - -type ToJsonSchema = { - type: 'object'; - properties: { - [K in keyof S]: S[K] extends number[] ? { type: 'array'; items: { type: 'number'; }; } : ToJsonSchema; - }, - required: (keyof S)[]; -}; - -export function getJsonSchema(schema: S): ToJsonSchema>> { - const jsonSchema = { - type: 'object', - properties: {} as Record, - required: [], - }; - - for (const k in schema) { - jsonSchema.properties[k] = { - type: 'array', - items: { type: 'number' }, - }; - } - - return jsonSchema as ToJsonSchema>>; -} - -/** - * 様々なチャートの管理を司るクラス - */ -// eslint-disable-next-line import/no-default-export -export default abstract class Chart { - public schema: T; - - private name: string; - private buffer: { - diff: Commit; - group: string | null; - }[] = []; - // ↓にしたいけどfindOneとかで型エラーになる - //private repositoryForHour: Repository>; - //private repositoryForDay: Repository>; - private repositoryForHour: Repository<{ id: number; group?: string | null; date: number; }>; - private repositoryForDay: Repository<{ id: number; group?: string | null; date: number; }>; - - /** - * 1日に一回程度実行されれば良いような計算処理を入れる(主にCASCADE削除などアプリケーション側で感知できない変動によるズレの修正用) - */ - protected abstract tickMajor(group: string | null): Promise>>; - - /** - * 少なくとも最小スパン内に1回は実行されて欲しい計算処理を入れる - */ - protected abstract tickMinor(group: string | null): Promise>>; - - private static convertSchemaToColumnDefinitions(schema: Schema): Record { - const columns = {} as Record; - for (const [k, v] of Object.entries(schema)) { - const name = k.replaceAll('.', columnDot); - const type = v.range === 'big' ? 'bigint' : v.range === 'small' ? 'smallint' : 'integer'; - if (v.uniqueIncrement) { - columns[uniqueTempColumnPrefix + name] = { - type: 'varchar', - array: true, - default: '{}', - }; - columns[columnPrefix + name] = { - type, - default: 0, - }; - } else { - columns[columnPrefix + name] = { - type, - default: 0, - }; - } - } - return columns; - } - - private static dateToTimestamp(x: Date): number { - return Math.floor(x.getTime() / 1000); - } - - private static parseDate(date: Date): [number, number, number, number, number, number, number] { - const y = date.getUTCFullYear(); - const m = date.getUTCMonth(); - const d = date.getUTCDate(); - const h = date.getUTCHours(); - const _m = date.getUTCMinutes(); - const _s = date.getUTCSeconds(); - const _ms = date.getUTCMilliseconds(); - - return [y, m, d, h, _m, _s, _ms]; - } - - private static getCurrentDate() { - return Chart.parseDate(new Date()); - } - - public static schemaToEntity(name: string, schema: Schema, grouped = false): { - hour: EntitySchema, - day: EntitySchema, - } { - const createEntity = (span: 'hour' | 'day'): EntitySchema => new EntitySchema({ - name: - span === 'hour' ? `__chart__${camelToSnake(name)}` : - span === 'day' ? `__chart_day__${camelToSnake(name)}` : - new Error('not happen') as never, - columns: { - id: { - type: 'integer', - primary: true, - generated: true, - }, - date: { - type: 'integer', - }, - ...(grouped ? { - group: { - type: 'varchar', - length: 128, - }, - } : {}), - ...Chart.convertSchemaToColumnDefinitions(schema), - }, - indices: [{ - columns: grouped ? ['date', 'group'] : ['date'], - unique: true, - }], - uniques: [{ - columns: grouped ? ['date', 'group'] : ['date'], - }], - relations: { - /* TODO - group: { - target: () => Foo, - type: 'many-to-one', - onDelete: 'CASCADE', - }, - */ - }, - }); - - return { - hour: createEntity('hour'), - day: createEntity('day'), - }; - } - - constructor(name: string, schema: T, grouped = false) { - this.name = name; - this.schema = schema; - - const { hour, day } = Chart.schemaToEntity(name, schema, grouped); - this.repositoryForHour = db.getRepository<{ id: number; group?: string | null; date: number; }>(hour); - this.repositoryForDay = db.getRepository<{ id: number; group?: string | null; date: number; }>(day); - } - - private convertRawRecord(x: RawRecord): KVs { - const kvs = {} as Record; - for (const k of Object.keys(x).filter((k) => k.startsWith(columnPrefix)) as (keyof Columns)[]) { - kvs[(k as string).substr(columnPrefix.length).split(columnDot).join('.')] = x[k]; - } - return kvs as KVs; - } - - private getNewLog(latest: KVs | null): KVs { - const log = {} as Record; - for (const [k, v] of Object.entries(this.schema) as ([keyof typeof this['schema'], this['schema'][string]])[]) { - if (v.accumulate && latest) { - log[k] = latest[k]; - } else { - log[k] = 0; - } - } - return log as KVs; - } - - private getLatestLog(group: string | null, span: 'hour' | 'day'): Promise | null> { - const repository = - span === 'hour' ? this.repositoryForHour : - span === 'day' ? this.repositoryForDay : - new Error('not happen') as never; - - return repository.findOne({ - where: group ? { - group: group, - } : {}, - order: { - date: -1, - }, - }).then(x => x ?? null) as Promise | null>; - } - - /** - * 現在(=今のHour or Day)のログをデータベースから探して、あればそれを返し、なければ作成して返します。 - */ - private async claimCurrentLog(group: string | null, span: 'hour' | 'day'): Promise> { - const [y, m, d, h] = Chart.getCurrentDate(); - - const current = dateUTC( - span === 'hour' ? [y, m, d, h] : - span === 'day' ? [y, m, d] : - new Error('not happen') as never); - - const repository = - span === 'hour' ? this.repositoryForHour : - span === 'day' ? this.repositoryForDay : - new Error('not happen') as never; - - // 現在(=今のHour or Day)のログ - const currentLog = await repository.findOneBy({ - date: Chart.dateToTimestamp(current), - ...(group ? { group: group } : {}), - }) as RawRecord | undefined; - - // ログがあればそれを返して終了 - if (currentLog != null) { - return currentLog; - } - - let log: RawRecord; - let data: KVs; - - // 集計期間が変わってから、初めてのチャート更新なら - // 最も最近のログを持ってくる - // * 例えば集計期間が「日」である場合で考えると、 - // * 昨日何もチャートを更新するような出来事がなかった場合は、 - // * ログがそもそも作られずドキュメントが存在しないということがあり得るため、 - // * 「昨日の」と決め打ちせずに「もっとも最近の」とします - const latest = await this.getLatestLog(group, span); - - if (latest != null) { - // 空ログデータを作成 - data = this.getNewLog(this.convertRawRecord(latest)); - } else { - // ログが存在しなかったら - // (Misskeyインスタンスを建てて初めてのチャート更新時など) - - // 初期ログデータを作成 - data = this.getNewLog(null); - - logger.info(`${this.name + (group ? `:${group}` : '')}(${span}): Initial commit created`); - } - - const date = Chart.dateToTimestamp(current); - const lockKey = group ? `${this.name}:${date}:${span}:${group}` : `${this.name}:${date}:${span}`; - - const unlock = await getChartInsertLock(lockKey); - try { - // ロック内でもう1回チェックする - const currentLog = await repository.findOneBy({ - date: date, - ...(group ? { group: group } : {}), - }) as RawRecord | undefined; - - // ログがあればそれを返して終了 - if (currentLog != null) return currentLog; - - const columns = {} as Record; - for (const [k, v] of Object.entries(data)) { - const name = k.replaceAll('.', columnDot); - columns[columnPrefix + name] = v; - } - - // 新規ログ挿入 - log = await repository.insert({ - date: date, - ...(group ? { group: group } : {}), - ...columns, - }).then(x => repository.findOneByOrFail(x.identifiers[0])) as RawRecord; - - logger.info(`${this.name + (group ? `:${group}` : '')}(${span}): New commit created`); - - return log; - } finally { - unlock(); - } - } - - protected commit(diff: Commit, group: string | null = null): void { - for (const [k, v] of Object.entries(diff)) { - if (v == null || v === 0 || (Array.isArray(v) && v.length === 0)) delete diff[k]; - } - this.buffer.push({ - diff, group, - }); - } - - public async save(): Promise { - if (this.buffer.length === 0) { - logger.info(`${this.name}: Write skipped`); - return; - } - - // TODO: 前の時間のログがbufferにあった場合のハンドリング - // 例えば、save が20分ごとに行われるとして、前回行われたのは 01:50 だったとする。 - // 次に save が行われるのは 02:10 ということになるが、もし 01:55 に新規ログが buffer に追加されたとすると、 - // そのログは本来は 01:00~ のログとしてDBに保存されて欲しいのに、02:00~ のログ扱いになってしまう。 - // これを回避するための実装は複雑になりそうなため、一旦保留。 - - const update = async (logHour: RawRecord, logDay: RawRecord): Promise => { - const finalDiffs = {} as Record; - - for (const diff of this.buffer.filter(q => q.group == null || (q.group === logHour.group)).map(q => q.diff)) { - for (const [k, v] of Object.entries(diff)) { - if (finalDiffs[k] == null) { - finalDiffs[k] = v; - } else { - if (typeof finalDiffs[k] === 'number') { - (finalDiffs[k] as number) += v as number; - } else { - (finalDiffs[k] as string[]) = (finalDiffs[k] as string[]).concat(v); - } - } - } - } - - const queryForHour: Record, number | (() => string)> = {} as any; - const queryForDay: Record, number | (() => string)> = {} as any; - for (const [k, v] of Object.entries(finalDiffs)) { - if (typeof v === 'number') { - const name = columnPrefix + k.replaceAll('.', columnDot) as keyof Columns; - if (v > 0) queryForHour[name] = () => `"${name}" + ${v}`; - if (v < 0) queryForHour[name] = () => `"${name}" - ${Math.abs(v)}`; - if (v > 0) queryForDay[name] = () => `"${name}" + ${v}`; - if (v < 0) queryForDay[name] = () => `"${name}" - ${Math.abs(v)}`; - } else if (Array.isArray(v) && v.length > 0) { // ユニークインクリメント - const tempColumnName = uniqueTempColumnPrefix + k.replaceAll('.', columnDot) as keyof TempColumnsForUnique; - // TODO: item をSQLエスケープ - const itemsForHour = v.filter(item => !logHour[tempColumnName].includes(item)).map(item => `"${item}"`); - const itemsForDay = v.filter(item => !logDay[tempColumnName].includes(item)).map(item => `"${item}"`); - if (itemsForHour.length > 0) queryForHour[tempColumnName] = () => `array_cat("${tempColumnName}", '{${itemsForHour.join(',')}}'::varchar[])`; - if (itemsForDay.length > 0) queryForDay[tempColumnName] = () => `array_cat("${tempColumnName}", '{${itemsForDay.join(',')}}'::varchar[])`; - } - } - - // bake unique count - for (const [k, v] of Object.entries(finalDiffs)) { - if (this.schema[k].uniqueIncrement) { - const name = columnPrefix + k.replaceAll('.', columnDot) as keyof Columns; - const tempColumnName = uniqueTempColumnPrefix + k.replaceAll('.', columnDot) as keyof TempColumnsForUnique; - queryForHour[name] = new Set([...(v as string[]), ...logHour[tempColumnName]]).size; - queryForDay[name] = new Set([...(v as string[]), ...logDay[tempColumnName]]).size; - } - } - - // compute intersection - // TODO: intersectionに指定されたカラムがintersectionだった場合の対応 - for (const [k, v] of Object.entries(this.schema)) { - const intersection = v.intersection; - if (intersection) { - const name = columnPrefix + k.replaceAll('.', columnDot) as keyof Columns; - const firstKey = intersection[0]; - const firstTempColumnName = uniqueTempColumnPrefix + firstKey.replaceAll('.', columnDot) as keyof TempColumnsForUnique; - const firstValues = finalDiffs[firstKey] as string[] | undefined; - const currentValuesForHour = new Set([...(firstValues ?? []), ...logHour[firstTempColumnName]]); - const currentValuesForDay = new Set([...(firstValues ?? []), ...logDay[firstTempColumnName]]); - for (let i = 1; i < intersection.length; i++) { - const targetKey = intersection[i]; - const targetTempColumnName = uniqueTempColumnPrefix + targetKey.replaceAll('.', columnDot) as keyof TempColumnsForUnique; - const targetValues = finalDiffs[targetKey] as string[] | undefined; - const targetValuesForHour = new Set([...(targetValues ?? []), ...logHour[targetTempColumnName]]); - const targetValuesForDay = new Set([...(targetValues ?? []), ...logDay[targetTempColumnName]]); - currentValuesForHour.forEach(v => { - if (!targetValuesForHour.has(v)) currentValuesForHour.delete(v); - }); - currentValuesForDay.forEach(v => { - if (!targetValuesForDay.has(v)) currentValuesForDay.delete(v); - }); - } - queryForHour[name] = currentValuesForHour.size; - queryForDay[name] = currentValuesForDay.size; - } - } - - // ログ更新 - await Promise.all([ - this.repositoryForHour.createQueryBuilder() - .update() - .set(queryForHour as any) - .where('id = :id', { id: logHour.id }) - .execute(), - this.repositoryForDay.createQueryBuilder() - .update() - .set(queryForDay as any) - .where('id = :id', { id: logDay.id }) - .execute(), - ]); - - logger.info(`${this.name + (logHour.group ? `:${logHour.group}` : '')}: Updated`); - - // TODO: この一連の処理が始まった後に新たにbufferに入ったものは消さないようにする - this.buffer = this.buffer.filter(q => q.group != null && (q.group !== logHour.group)); - }; - - const groups = removeDuplicates(this.buffer.map(log => log.group)); - - await Promise.all( - groups.map(group => - Promise.all([ - this.claimCurrentLog(group, 'hour'), - this.claimCurrentLog(group, 'day'), - ]).then(([logHour, logDay]) => - update(logHour, logDay)))); - } - - public async tick(major: boolean, group: string | null = null): Promise { - const data = major ? await this.tickMajor(group) : await this.tickMinor(group); - - const columns = {} as Record, number>; - for (const [k, v] of Object.entries(data) as ([keyof typeof data, number])[]) { - const name = columnPrefix + (k as string).replaceAll('.', columnDot) as keyof Columns; - columns[name] = v; - } - - if (Object.keys(columns).length === 0) { - return; - } - - const update = async (logHour: RawRecord, logDay: RawRecord): Promise => { - await Promise.all([ - this.repositoryForHour.createQueryBuilder() - .update() - .set(columns) - .where('id = :id', { id: logHour.id }) - .execute(), - this.repositoryForDay.createQueryBuilder() - .update() - .set(columns) - .where('id = :id', { id: logDay.id }) - .execute(), - ]); - }; - - return Promise.all([ - this.claimCurrentLog(group, 'hour'), - this.claimCurrentLog(group, 'day'), - ]).then(([logHour, logDay]) => - update(logHour, logDay)); - } - - public resync(group: string | null = null): Promise { - return this.tick(true, group); - } - - public async clean(): Promise { - const current = dateUTC(Chart.getCurrentDate()); - - // 一日以上前かつ三日以内 - const gt = Chart.dateToTimestamp(current) - (60 * 60 * 24 * 3); - const lt = Chart.dateToTimestamp(current) - (60 * 60 * 24); - - const columns = {} as Record, []>; - for (const [k, v] of Object.entries(this.schema)) { - if (v.uniqueIncrement) { - const name = uniqueTempColumnPrefix + k.replaceAll('.', columnDot) as keyof TempColumnsForUnique; - columns[name] = []; - } - } - - if (Object.keys(columns).length === 0) { - return; - } - - await Promise.all([ - this.repositoryForHour.createQueryBuilder() - .update() - .set(columns) - .where('date > :gt', { gt }) - .andWhere('date < :lt', { lt }) - .execute(), - this.repositoryForDay.createQueryBuilder() - .update() - .set(columns) - .where('date > :gt', { gt }) - .andWhere('date < :lt', { lt }) - .execute(), - ]); - } - - public async getChartRaw(span: 'hour' | 'day', amount: number, cursor: Date | null, group: string | null = null): Promise> { - const [y, m, d, h, _m, _s, _ms] = cursor ? Chart.parseDate(subtractTime(addTime(cursor, 1, span), 1)) : Chart.getCurrentDate(); - const [y2, m2, d2, h2] = cursor ? Chart.parseDate(addTime(cursor, 1, span)) : [] as never; - - const lt = dateUTC([y, m, d, h, _m, _s, _ms]); - - const gt = - span === 'day' ? subtractTime(cursor ? dateUTC([y2, m2, d2, 0]) : dateUTC([y, m, d, 0]), amount - 1, 'day') : - span === 'hour' ? subtractTime(cursor ? dateUTC([y2, m2, d2, h2]) : dateUTC([y, m, d, h]), amount - 1, 'hour') : - new Error('not happen') as never; - - const repository = - span === 'hour' ? this.repositoryForHour : - span === 'day' ? this.repositoryForDay : - new Error('not happen') as never; - - // ログ取得 - let logs = await repository.find({ - where: { - date: Between(Chart.dateToTimestamp(gt), Chart.dateToTimestamp(lt)), - ...(group ? { group: group } : {}), - }, - order: { - date: -1, - }, - }) as RawRecord[]; - - // 要求された範囲にログがひとつもなかったら - if (logs.length === 0) { - // もっとも新しいログを持ってくる - // (すくなくともひとつログが無いと隙間埋めできないため) - const recentLog = await repository.findOne({ - where: group ? { - group: group, - } : {}, - order: { - date: -1, - }, - }) as RawRecord | undefined; - - if (recentLog) { - logs = [recentLog]; - } - - // 要求された範囲の最も古い箇所に位置するログが存在しなかったら - } else if (!isTimeSame(new Date(logs[logs.length - 1].date * 1000), gt)) { - // 要求された範囲の最も古い箇所時点での最も新しいログを持ってきて末尾に追加する - // (隙間埋めできないため) - const outdatedLog = await repository.findOne({ - where: { - date: LessThan(Chart.dateToTimestamp(gt)), - ...(group ? { group: group } : {}), - }, - order: { - date: -1, - }, - }) as RawRecord | undefined; - - if (outdatedLog) { - logs.push(outdatedLog); - } - } - - const chart: KVs[] = []; - - for (let i = (amount - 1); i >= 0; i--) { - const current = - span === 'hour' ? subtractTime(dateUTC([y, m, d, h]), i, 'hour') : - span === 'day' ? subtractTime(dateUTC([y, m, d]), i, 'day') : - new Error('not happen') as never; - - const log = logs.find(l => isTimeSame(new Date(l.date * 1000), current)); - - if (log) { - chart.unshift(this.convertRawRecord(log)); - } else { - // 隙間埋め - const latest = logs.find(l => isTimeBefore(new Date(l.date * 1000), current)); - const data = latest ? this.convertRawRecord(latest) : null; - chart.unshift(this.getNewLog(data)); - } - } - - const res = {} as ChartResult; - - /** - * [{ foo: 1, bar: 5 }, { foo: 2, bar: 6 }, { foo: 3, bar: 7 }] - * を - * { foo: [1, 2, 3], bar: [5, 6, 7] } - * にする - */ - for (const record of chart) { - for (const [k, v] of Object.entries(record) as ([keyof typeof record, number])[]) { - if (res[k]) { - res[k].push(v); - } else { - res[k] = [v]; - } - } - } - - return res; - } - - public async getChart(span: 'hour' | 'day', amount: number, cursor: Date | null, group: string | null = null): Promise>> { - const result = await this.getChartRaw(span, amount, cursor, group); - const object = {}; - for (const [k, v] of Object.entries(result)) { - nestedProperty.set(object, k, v); - } - return object as Unflatten>; - } -} diff --git a/packages/backend/src/services/chart/entities.ts b/packages/backend/src/services/chart/entities.ts deleted file mode 100644 index a9eeabd63..000000000 --- a/packages/backend/src/services/chart/entities.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { entity as FederationChart } from './charts/entities/federation.js'; -import { entity as NotesChart } from './charts/entities/notes.js'; -import { entity as UsersChart } from './charts/entities/users.js'; -import { entity as ActiveUsersChart } from './charts/entities/active-users.js'; -import { entity as InstanceChart } from './charts/entities/instance.js'; -import { entity as PerUserNotesChart } from './charts/entities/per-user-notes.js'; -import { entity as DriveChart } from './charts/entities/drive.js'; -import { entity as PerUserReactionsChart } from './charts/entities/per-user-reactions.js'; -import { entity as HashtagChart } from './charts/entities/hashtag.js'; -import { entity as PerUserFollowingChart } from './charts/entities/per-user-following.js'; -import { entity as PerUserDriveChart } from './charts/entities/per-user-drive.js'; -import { entity as ApRequestChart } from './charts/entities/ap-request.js'; - -import { entity as TestChart } from './charts/entities/test.js'; -import { entity as TestGroupedChart } from './charts/entities/test-grouped.js'; -import { entity as TestUniqueChart } from './charts/entities/test-unique.js'; -import { entity as TestIntersectionChart } from './charts/entities/test-intersection.js'; - -export const entities = [ - FederationChart.hour, FederationChart.day, - NotesChart.hour, NotesChart.day, - UsersChart.hour, UsersChart.day, - ActiveUsersChart.hour, ActiveUsersChart.day, - InstanceChart.hour, InstanceChart.day, - PerUserNotesChart.hour, PerUserNotesChart.day, - DriveChart.hour, DriveChart.day, - PerUserReactionsChart.hour, PerUserReactionsChart.day, - HashtagChart.hour, HashtagChart.day, - PerUserFollowingChart.hour, PerUserFollowingChart.day, - PerUserDriveChart.hour, PerUserDriveChart.day, - ApRequestChart.hour, ApRequestChart.day, - - ...(process.env.NODE_ENV === 'test' ? [ - TestChart.hour, TestChart.day, - TestGroupedChart.hour, TestGroupedChart.day, - TestUniqueChart.hour, TestUniqueChart.day, - TestIntersectionChart.hour, TestIntersectionChart.day, - ] : []), -]; diff --git a/packages/backend/src/services/chart/index.ts b/packages/backend/src/services/chart/index.ts deleted file mode 100644 index 8bf2d8f65..000000000 --- a/packages/backend/src/services/chart/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { beforeShutdown } from '@/misc/before-shutdown.js'; - -import FederationChart from './charts/federation.js'; -import NotesChart from './charts/notes.js'; -import UsersChart from './charts/users.js'; -import ActiveUsersChart from './charts/active-users.js'; -import InstanceChart from './charts/instance.js'; -import PerUserNotesChart from './charts/per-user-notes.js'; -import DriveChart from './charts/drive.js'; -import PerUserReactionsChart from './charts/per-user-reactions.js'; -import HashtagChart from './charts/hashtag.js'; -import PerUserFollowingChart from './charts/per-user-following.js'; -import PerUserDriveChart from './charts/per-user-drive.js'; -import ApRequestChart from './charts/ap-request.js'; - -export const federationChart = new FederationChart(); -export const notesChart = new NotesChart(); -export const usersChart = new UsersChart(); -export const activeUsersChart = new ActiveUsersChart(); -export const instanceChart = new InstanceChart(); -export const perUserNotesChart = new PerUserNotesChart(); -export const driveChart = new DriveChart(); -export const perUserReactionsChart = new PerUserReactionsChart(); -export const hashtagChart = new HashtagChart(); -export const perUserFollowingChart = new PerUserFollowingChart(); -export const perUserDriveChart = new PerUserDriveChart(); -export const apRequestChart = new ApRequestChart(); - -const charts = [ - federationChart, - notesChart, - usersChart, - activeUsersChart, - instanceChart, - perUserNotesChart, - driveChart, - perUserReactionsChart, - hashtagChart, - perUserFollowingChart, - perUserDriveChart, - apRequestChart, -]; - -// 20分おきにメモリ情報をDBに書き込み -setInterval(() => { - for (const chart of charts) { - chart.save(); - } -}, 1000 * 60 * 20); - -beforeShutdown(() => Promise.all(charts.map(chart => chart.save()))); diff --git a/packages/backend/src/services/create-notification.ts b/packages/backend/src/services/create-notification.ts deleted file mode 100644 index d53a4235b..000000000 --- a/packages/backend/src/services/create-notification.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import { pushNotification } from '@/services/push-notification.js'; -import { Notifications, Mutings, UserProfiles, Users } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { User } from '@/models/entities/user.js'; -import { Notification } from '@/models/entities/notification.js'; -import { sendEmailNotification } from './send-email-notification.js'; - -export async function createNotification( - notifieeId: User['id'], - type: Notification['type'], - data: Partial -) { - if (data.notifierId && (notifieeId === data.notifierId)) { - return null; - } - - const profile = await UserProfiles.findOneBy({ userId: notifieeId }); - - const isMuted = profile?.mutingNotificationTypes.includes(type); - - // Create notification - const notification = await Notifications.insert({ - id: genId(), - createdAt: new Date(), - notifieeId: notifieeId, - type: type, - // 相手がこの通知をミュートしているようなら、既読を予めつけておく - isRead: isMuted, - ...data, - } as Partial) - .then(x => Notifications.findOneByOrFail(x.identifiers[0])); - - const packed = await Notifications.pack(notification, {}); - - // Publish notification event - publishMainStream(notifieeId, 'notification', packed); - - // 2秒経っても(今回作成した)通知が既読にならなかったら「未読の通知がありますよ」イベントを発行する - setTimeout(async () => { - const fresh = await Notifications.findOneBy({ id: notification.id }); - if (fresh == null) return; // 既に削除されているかもしれない - if (fresh.isRead) return; - - //#region ただしミュートしているユーザーからの通知なら無視 - const mutings = await Mutings.findBy({ - muterId: notifieeId, - }); - if (data.notifierId && mutings.map(m => m.muteeId).includes(data.notifierId)) { - return; - } - //#endregion - - publishMainStream(notifieeId, 'unreadNotification', packed); - pushNotification(notifieeId, 'notification', packed); - - if (type === 'follow') sendEmailNotification.follow(notifieeId, await Users.findOneByOrFail({ id: data.notifierId! })); - if (type === 'receiveFollowRequest') sendEmailNotification.receiveFollowRequest(notifieeId, await Users.findOneByOrFail({ id: data.notifierId! })); - }, 2000); - - return notification; -} diff --git a/packages/backend/src/services/create-system-user.ts b/packages/backend/src/services/create-system-user.ts deleted file mode 100644 index bae91ec4c..000000000 --- a/packages/backend/src/services/create-system-user.ts +++ /dev/null @@ -1,68 +0,0 @@ -import bcrypt from 'bcryptjs'; -import { v4 as uuid } from 'uuid'; -import generateNativeUserToken from '../server/api/common/generate-native-user-token.js'; -import { genRsaKeyPair } from '@/misc/gen-key-pair.js'; -import { User } from '@/models/entities/user.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { IsNull } from 'typeorm'; -import { genId } from '@/misc/gen-id.js'; -import { UserKeypair } from '@/models/entities/user-keypair.js'; -import { UsedUsername } from '@/models/entities/used-username.js'; -import { db } from '@/db/postgre.js'; - -export async function createSystemUser(username: string) { - const password = uuid(); - - // Generate hash of password - const salt = await bcrypt.genSalt(8); - const hash = await bcrypt.hash(password, salt); - - // Generate secret - const secret = generateNativeUserToken(); - - const keyPair = await genRsaKeyPair(4096); - - let account!: User; - - // Start transaction - await db.transaction(async transactionalEntityManager => { - const exist = await transactionalEntityManager.findOneBy(User, { - usernameLower: username.toLowerCase(), - host: IsNull(), - }); - - if (exist) throw new Error('the user is already exists'); - - account = await transactionalEntityManager.insert(User, { - id: genId(), - createdAt: new Date(), - username: username, - usernameLower: username.toLowerCase(), - host: null, - token: secret, - isAdmin: false, - isLocked: true, - isExplorable: false, - isBot: true, - }).then(x => transactionalEntityManager.findOneByOrFail(User, x.identifiers[0])); - - await transactionalEntityManager.insert(UserKeypair, { - publicKey: keyPair.publicKey, - privateKey: keyPair.privateKey, - userId: account.id, - }); - - await transactionalEntityManager.insert(UserProfile, { - userId: account.id, - autoAcceptFollowed: false, - password: hash, - }); - - await transactionalEntityManager.insert(UsedUsername, { - createdAt: new Date(), - username: username.toLowerCase(), - }); - }); - - return account; -} diff --git a/packages/backend/src/services/delete-account.ts b/packages/backend/src/services/delete-account.ts deleted file mode 100644 index 0fdceb671..000000000 --- a/packages/backend/src/services/delete-account.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Users } from '@/models/index.js'; -import { createDeleteAccountJob } from '@/queue/index.js'; -import { publishUserEvent } from './stream.js'; -import { doPostSuspend } from './suspend-user.js'; - -export async function deleteAccount(user: { - id: string; - host: string | null; -}): Promise { - // 物理削除する前にDelete activityを送信する - await doPostSuspend(user).catch(e => {}); - - createDeleteAccountJob(user, { - soft: false, - }); - - await Users.update(user.id, { - isDeleted: true, - }); - - // Terminate streaming - publishUserEvent(user.id, 'terminate', {}); -} diff --git a/packages/backend/src/services/detect-sensitive.ts b/packages/backend/src/services/detect-sensitive.ts deleted file mode 100644 index 2ade39d52..000000000 --- a/packages/backend/src/services/detect-sensitive.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import * as nsfw from 'nsfwjs'; -import si from 'systeminformation'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -const REQUIRED_CPU_FLAGS = ['avx2', 'fma']; -let isSupportedCpu: undefined | boolean = undefined; - -let model: nsfw.NSFWJS; - -export async function detectSensitive(path: string): Promise { - try { - if (isSupportedCpu === undefined) { - const cpuFlags = await getCpuFlags(); - isSupportedCpu = REQUIRED_CPU_FLAGS.every(required => cpuFlags.includes(required)); - } - - if (!isSupportedCpu) { - console.error('This CPU cannot use TensorFlow.'); - return null; - } - - const tf = await import('@tensorflow/tfjs-node'); - - if (model == null) model = await nsfw.load(`file://${_dirname}/../../nsfw-model/`, { size: 299 }); - - const buffer = await fs.promises.readFile(path); - const image = await tf.node.decodeImage(buffer, 3) as any; - try { - const predictions = await model.classify(image); - return predictions; - } finally { - image.dispose(); - } - } catch (err) { - console.error(err); - return null; - } -} - -async function getCpuFlags(): Promise { - const str = await si.cpuFlags(); - return str.split(/\s+/); -} diff --git a/packages/backend/src/services/drive/add-file.ts b/packages/backend/src/services/drive/add-file.ts deleted file mode 100644 index 709db88f2..000000000 --- a/packages/backend/src/services/drive/add-file.ts +++ /dev/null @@ -1,540 +0,0 @@ -import * as fs from 'node:fs'; - -import { v4 as uuid } from 'uuid'; - -import S3 from 'aws-sdk/clients/s3.js'; -import sharp from 'sharp'; -import { IsNull } from 'typeorm'; -import { publishMainStream, publishDriveStream } from '@/services/stream.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { contentDisposition } from '@/misc/content-disposition.js'; -import { getFileInfo } from '@/misc/get-file-info.js'; -import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '@/models/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { IRemoteUser, User } from '@/models/entities/user.js'; -import { driveChart, perUserDriveChart, instanceChart } from '@/services/chart/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; -import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { getS3 } from './s3.js'; -import { InternalStorage } from './internal-storage.js'; -import { IImage, convertSharpToJpeg, convertSharpToWebp, convertSharpToPng } from './image-processor.js'; -import { driveLogger } from './logger.js'; -import { GenerateVideoThumbnail } from './generate-video-thumbnail.js'; -import { deleteFile } from './delete-file.js'; - -const logger = driveLogger.createSubLogger('register', 'yellow'); - -/*** - * Save file - * @param path Path for original - * @param name Name for original - * @param type Content-Type for original - * @param hash Hash for original - * @param size Size for original - */ -async function save(file: DriveFile, path: string, name: string, type: string, hash: string, size: number): Promise { - // thunbnail, webpublic を必要なら生成 - const alts = await generateAlts(path, type, !file.uri); - - const meta = await fetchMeta(); - - if (meta.useObjectStorage) { - //#region ObjectStorage params - let [ext] = (name.match(/\.([a-zA-Z0-9_-]+)$/) || ['']); - - if (ext === '') { - if (type === 'image/jpeg') ext = '.jpg'; - if (type === 'image/png') ext = '.png'; - if (type === 'image/webp') ext = '.webp'; - if (type === 'image/apng') ext = '.apng'; - if (type === 'image/vnd.mozilla.apng') ext = '.apng'; - } - - // 拡張子からContent-Typeを設定してそうな挙動を示すオブジェクトストレージ (upcloud?) も存在するので、 - // 許可されているファイル形式でしか拡張子をつけない - if (!FILE_TYPE_BROWSERSAFE.includes(type)) { - ext = ''; - } - - const baseUrl = meta.objectStorageBaseUrl - || `${ meta.objectStorageUseSSL ? 'https' : 'http' }://${ meta.objectStorageEndpoint }${ meta.objectStoragePort ? `:${meta.objectStoragePort}` : '' }/${ meta.objectStorageBucket }`; - - // for original - const key = `${meta.objectStoragePrefix}/${uuid()}${ext}`; - const url = `${ baseUrl }/${ key }`; - - // for alts - let webpublicKey: string | null = null; - let webpublicUrl: string | null = null; - let thumbnailKey: string | null = null; - let thumbnailUrl: string | null = null; - //#endregion - - //#region Uploads - logger.info(`uploading original: ${key}`); - const uploads = [ - upload(key, fs.createReadStream(path), type, name), - ]; - - if (alts.webpublic) { - webpublicKey = `${meta.objectStoragePrefix}/webpublic-${uuid()}.${alts.webpublic.ext}`; - webpublicUrl = `${ baseUrl }/${ webpublicKey }`; - - logger.info(`uploading webpublic: ${webpublicKey}`); - uploads.push(upload(webpublicKey, alts.webpublic.data, alts.webpublic.type, name)); - } - - if (alts.thumbnail) { - thumbnailKey = `${meta.objectStoragePrefix}/thumbnail-${uuid()}.${alts.thumbnail.ext}`; - thumbnailUrl = `${ baseUrl }/${ thumbnailKey }`; - - logger.info(`uploading thumbnail: ${thumbnailKey}`); - uploads.push(upload(thumbnailKey, alts.thumbnail.data, alts.thumbnail.type)); - } - - await Promise.all(uploads); - //#endregion - - file.url = url; - file.thumbnailUrl = thumbnailUrl; - file.webpublicUrl = webpublicUrl; - file.accessKey = key; - file.thumbnailAccessKey = thumbnailKey; - file.webpublicAccessKey = webpublicKey; - file.webpublicType = alts.webpublic?.type ?? null; - file.name = name; - file.type = type; - file.md5 = hash; - file.size = size; - file.storedInternal = false; - - return await DriveFiles.insert(file).then(x => DriveFiles.findOneByOrFail(x.identifiers[0])); - } else { // use internal storage - const accessKey = uuid(); - const thumbnailAccessKey = 'thumbnail-' + uuid(); - const webpublicAccessKey = 'webpublic-' + uuid(); - - const url = InternalStorage.saveFromPath(accessKey, path); - - let thumbnailUrl: string | null = null; - let webpublicUrl: string | null = null; - - if (alts.thumbnail) { - thumbnailUrl = InternalStorage.saveFromBuffer(thumbnailAccessKey, alts.thumbnail.data); - logger.info(`thumbnail stored: ${thumbnailAccessKey}`); - } - - if (alts.webpublic) { - webpublicUrl = InternalStorage.saveFromBuffer(webpublicAccessKey, alts.webpublic.data); - logger.info(`web stored: ${webpublicAccessKey}`); - } - - file.storedInternal = true; - file.url = url; - file.thumbnailUrl = thumbnailUrl; - file.webpublicUrl = webpublicUrl; - file.accessKey = accessKey; - file.thumbnailAccessKey = thumbnailAccessKey; - file.webpublicAccessKey = webpublicAccessKey; - file.webpublicType = alts.webpublic?.type ?? null; - file.name = name; - file.type = type; - file.md5 = hash; - file.size = size; - - return await DriveFiles.insert(file).then(x => DriveFiles.findOneByOrFail(x.identifiers[0])); - } -} - -/** - * Generate webpublic, thumbnail, etc - * @param path Path for original - * @param type Content-Type for original - * @param generateWeb Generate webpublic or not - */ -export async function generateAlts(path: string, type: string, generateWeb: boolean) { - if (type.startsWith('video/')) { - try { - const thumbnail = await GenerateVideoThumbnail(path); - return { - webpublic: null, - thumbnail, - }; - } catch (err) { - logger.warn(`GenerateVideoThumbnail failed: ${err}`); - return { - webpublic: null, - thumbnail: null, - }; - } - } - - if (!['image/jpeg', 'image/png', 'image/webp', 'image/svg+xml'].includes(type)) { - logger.debug('web image and thumbnail not created (not an required file)'); - return { - webpublic: null, - thumbnail: null, - }; - } - - let img: sharp.Sharp | null = null; - let satisfyWebpublic: boolean; - - try { - img = sharp(path); - const metadata = await img.metadata(); - const isAnimated = metadata.pages && metadata.pages > 1; - - // skip animated - if (isAnimated) { - return { - webpublic: null, - thumbnail: null, - }; - } - - satisfyWebpublic = !!( - type !== 'image/svg+xml' && type !== 'image/webp' && - !(metadata.exif || metadata.iptc || metadata.xmp || metadata.tifftagPhotoshop) && - metadata.width && metadata.width <= 2048 && - metadata.height && metadata.height <= 2048 - ); - } catch (err) { - logger.warn(`sharp failed: ${err}`); - return { - webpublic: null, - thumbnail: null, - }; - } - - // #region webpublic - let webpublic: IImage | null = null; - - if (generateWeb && !satisfyWebpublic) { - logger.info('creating web image'); - - try { - if (['image/jpeg', 'image/webp'].includes(type)) { - webpublic = await convertSharpToJpeg(img, 2048, 2048); - } else if (['image/png'].includes(type)) { - webpublic = await convertSharpToPng(img, 2048, 2048); - } else if (['image/svg+xml'].includes(type)) { - webpublic = await convertSharpToPng(img, 2048, 2048); - } else { - logger.debug('web image not created (not an required image)'); - } - } catch (err) { - logger.warn('web image not created (an error occured)', err as Error); - } - } else { - if (satisfyWebpublic) logger.info('web image not created (original satisfies webpublic)'); - else logger.info('web image not created (from remote)'); - } - // #endregion webpublic - - // #region thumbnail - let thumbnail: IImage | null = null; - - try { - if (['image/jpeg', 'image/webp', 'image/png', 'image/svg+xml'].includes(type)) { - thumbnail = await convertSharpToWebp(img, 498, 280); - } else { - logger.debug('thumbnail not created (not an required file)'); - } - } catch (err) { - logger.warn('thumbnail not created (an error occured)', err as Error); - } - // #endregion thumbnail - - return { - webpublic, - thumbnail, - }; -} - -/** - * Upload to ObjectStorage - */ -async function upload(key: string, stream: fs.ReadStream | Buffer, type: string, filename?: string) { - if (type === 'image/apng') type = 'image/png'; - if (!FILE_TYPE_BROWSERSAFE.includes(type)) type = 'application/octet-stream'; - - const meta = await fetchMeta(); - - const params = { - Bucket: meta.objectStorageBucket, - Key: key, - Body: stream, - ContentType: type, - CacheControl: 'max-age=31536000, immutable', - } as S3.PutObjectRequest; - - if (filename) params.ContentDisposition = contentDisposition('inline', filename); - if (meta.objectStorageSetPublicRead) params.ACL = 'public-read'; - - const s3 = getS3(meta); - - const upload = s3.upload(params, { - partSize: s3.endpoint.hostname === 'storage.googleapis.com' ? 500 * 1024 * 1024 : 8 * 1024 * 1024, - }); - - const result = await upload.promise(); - if (result) logger.debug(`Uploaded: ${result.Bucket}/${result.Key} => ${result.Location}`); -} - -async function deleteOldFile(user: IRemoteUser) { - const q = DriveFiles.createQueryBuilder('file') - .where('file.userId = :userId', { userId: user.id }) - .andWhere('file.isLink = FALSE'); - - if (user.avatarId) { - q.andWhere('file.id != :avatarId', { avatarId: user.avatarId }); - } - - if (user.bannerId) { - q.andWhere('file.id != :bannerId', { bannerId: user.bannerId }); - } - - q.orderBy('file.id', 'ASC'); - - const oldFile = await q.getOne(); - - if (oldFile) { - deleteFile(oldFile, true); - } -} - -type AddFileArgs = { - /** User who wish to add file */ - user: { id: User['id']; host: User['host']; driveCapacityOverrideMb: User['driveCapacityOverrideMb'] } | null; - /** File path */ - path: string; - /** Name */ - name?: string | null; - /** Comment */ - comment?: string | null; - /** Folder ID */ - folderId?: any; - /** If set to true, forcibly upload the file even if there is a file with the same hash. */ - force?: boolean; - /** Do not save file to local */ - isLink?: boolean; - /** URL of source (URLからアップロードされた場合(ローカル/リモート)の元URL) */ - url?: string | null; - /** URL of source (リモートインスタンスのURLからアップロードされた場合の元URL) */ - uri?: string | null; - /** Mark file as sensitive */ - sensitive?: boolean | null; - - requestIp?: string | null; - requestHeaders?: Record | null; -}; - -/** - * Add file to drive - * - */ -export async function addFile({ - user, - path, - name = null, - comment = null, - folderId = null, - force = false, - isLink = false, - url = null, - uri = null, - sensitive = null, - requestIp = null, - requestHeaders = null, -}: AddFileArgs): Promise { - let skipNsfwCheck = false; - const instance = await fetchMeta(); - if (user == null) skipNsfwCheck = true; - if (instance.sensitiveMediaDetection === 'none') skipNsfwCheck = true; - if (user && instance.sensitiveMediaDetection === 'local' && Users.isRemoteUser(user)) skipNsfwCheck = true; - if (user && instance.sensitiveMediaDetection === 'remote' && Users.isLocalUser(user)) skipNsfwCheck = true; - - const info = await getFileInfo(path, { - skipSensitiveDetection: skipNsfwCheck, - sensitiveThreshold: // 感度が高いほどしきい値は低くすることになる - instance.sensitiveMediaDetectionSensitivity === 'veryHigh' ? 0.1 : - instance.sensitiveMediaDetectionSensitivity === 'high' ? 0.3 : - instance.sensitiveMediaDetectionSensitivity === 'low' ? 0.7 : - instance.sensitiveMediaDetectionSensitivity === 'veryLow' ? 0.9 : - 0.5, - sensitiveThresholdForPorn: 0.75, - enableSensitiveMediaDetectionForVideos: instance.enableSensitiveMediaDetectionForVideos, - }); - logger.info(`${JSON.stringify(info)}`); - - // 現状 false positive が多すぎて実用に耐えない - //if (info.porn && instance.disallowUploadWhenPredictedAsPorn) { - // throw new IdentifiableError('282f77bf-5816-4f72-9264-aa14d8261a21', 'Detected as porn.'); - //} - - // detect name - const detectedName = name || (info.type.ext ? `untitled.${info.type.ext}` : 'untitled'); - - if (user && !force) { - // Check if there is a file with the same hash - const much = await DriveFiles.findOneBy({ - md5: info.md5, - userId: user.id, - }); - - if (much) { - logger.info(`file with same hash is found: ${much.id}`); - return much; - } - } - - //#region Check drive usage - if (user && !isLink) { - const usage = await DriveFiles.calcDriveUsageOf(user); - const u = await Users.findOneBy({ id: user.id }); - - const instance = await fetchMeta(); - let driveCapacity = 1024 * 1024 * (Users.isLocalUser(user) ? instance.localDriveCapacityMb : instance.remoteDriveCapacityMb); - - if (Users.isLocalUser(user) && u?.driveCapacityOverrideMb != null) { - driveCapacity = 1024 * 1024 * u.driveCapacityOverrideMb; - logger.debug('drive capacity override applied'); - logger.debug(`overrideCap: ${driveCapacity}bytes, usage: ${usage}bytes, u+s: ${usage + info.size}bytes`); - } - - logger.debug(`drive usage is ${usage} (max: ${driveCapacity})`); - - // If usage limit exceeded - if (usage + info.size > driveCapacity) { - if (Users.isLocalUser(user)) { - throw new IdentifiableError('c6244ed2-a39a-4e1c-bf93-f0fbd7764fa6', 'No free space.'); - } else { - // (アバターまたはバナーを含まず)最も古いファイルを削除する - deleteOldFile(await Users.findOneByOrFail({ id: user.id }) as IRemoteUser); - } - } - } - //#endregion - - const fetchFolder = async () => { - if (!folderId) { - return null; - } - - const driveFolder = await DriveFolders.findOneBy({ - id: folderId, - userId: user ? user.id : IsNull(), - }); - - if (driveFolder == null) throw new Error('folder-not-found'); - - return driveFolder; - }; - - const properties: { - width?: number; - height?: number; - orientation?: number; - } = {}; - - if (info.width) { - properties['width'] = info.width; - properties['height'] = info.height; - } - if (info.orientation != null) { - properties['orientation'] = info.orientation; - } - - const profile = user ? await UserProfiles.findOneBy({ userId: user.id }) : null; - - const folder = await fetchFolder(); - - let file = new DriveFile(); - file.id = genId(); - file.createdAt = new Date(); - file.userId = user ? user.id : null; - file.userHost = user ? user.host : null; - file.folderId = folder !== null ? folder.id : null; - file.comment = comment; - file.properties = properties; - file.blurhash = info.blurhash || null; - file.isLink = isLink; - file.requestIp = requestIp; - file.requestHeaders = requestHeaders; - file.maybeSensitive = info.sensitive; - file.maybePorn = info.porn; - file.isSensitive = user - ? Users.isLocalUser(user) && profile!.alwaysMarkNsfw ? true : - (sensitive !== null && sensitive !== undefined) - ? sensitive - : false - : false; - - if (info.sensitive && profile!.autoSensitive) file.isSensitive = true; - if (info.sensitive && instance.setSensitiveFlagAutomatically) file.isSensitive = true; - - if (url !== null) { - file.src = url; - - if (isLink) { - file.url = url; - // ローカルプロキシ用 - file.accessKey = uuid(); - file.thumbnailAccessKey = 'thumbnail-' + uuid(); - file.webpublicAccessKey = 'webpublic-' + uuid(); - } - } - - if (uri !== null) { - file.uri = uri; - } - - if (isLink) { - try { - file.size = 0; - file.md5 = info.md5; - file.name = detectedName; - file.type = info.type.mime; - file.storedInternal = false; - - file = await DriveFiles.insert(file).then(x => DriveFiles.findOneByOrFail(x.identifiers[0])); - } catch (err) { - // duplicate key error (when already registered) - if (isDuplicateKeyValueError(err)) { - logger.info(`already registered ${file.uri}`); - - file = await DriveFiles.findOneBy({ - uri: file.uri!, - userId: user ? user.id : IsNull(), - }) as DriveFile; - } else { - logger.error(err as Error); - throw err; - } - } - } else { - file = await (save(file, path, detectedName, info.type.mime, info.md5, info.size)); - } - - logger.succ(`drive file has been created ${file.id}`); - - if (user) { - DriveFiles.pack(file, { self: true }).then(packedFile => { - // Publish driveFileCreated event - publishMainStream(user.id, 'driveFileCreated', packedFile); - publishDriveStream(user.id, 'fileCreated', packedFile); - }); - } - - // 統計を更新 - driveChart.update(file, true); - perUserDriveChart.update(file, true); - if (file.userHost !== null) { - instanceChart.updateDrive(file, true); - } - - return file; -} diff --git a/packages/backend/src/services/drive/delete-file.ts b/packages/backend/src/services/drive/delete-file.ts deleted file mode 100644 index 4816a3a31..000000000 --- a/packages/backend/src/services/drive/delete-file.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { DriveFile } from '@/models/entities/drive-file.js'; -import { InternalStorage } from './internal-storage.js'; -import { DriveFiles, Instances } from '@/models/index.js'; -import { driveChart, perUserDriveChart, instanceChart } from '@/services/chart/index.js'; -import { createDeleteObjectStorageFileJob } from '@/queue/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { getS3 } from './s3.js'; -import { v4 as uuid } from 'uuid'; - -export async function deleteFile(file: DriveFile, isExpired = false) { - if (file.storedInternal) { - InternalStorage.del(file.accessKey!); - - if (file.thumbnailUrl) { - InternalStorage.del(file.thumbnailAccessKey!); - } - - if (file.webpublicUrl) { - InternalStorage.del(file.webpublicAccessKey!); - } - } else if (!file.isLink) { - createDeleteObjectStorageFileJob(file.accessKey!); - - if (file.thumbnailUrl) { - createDeleteObjectStorageFileJob(file.thumbnailAccessKey!); - } - - if (file.webpublicUrl) { - createDeleteObjectStorageFileJob(file.webpublicAccessKey!); - } - } - - postProcess(file, isExpired); -} - -export async function deleteFileSync(file: DriveFile, isExpired = false) { - if (file.storedInternal) { - InternalStorage.del(file.accessKey!); - - if (file.thumbnailUrl) { - InternalStorage.del(file.thumbnailAccessKey!); - } - - if (file.webpublicUrl) { - InternalStorage.del(file.webpublicAccessKey!); - } - } else if (!file.isLink) { - const promises = []; - - promises.push(deleteObjectStorageFile(file.accessKey!)); - - if (file.thumbnailUrl) { - promises.push(deleteObjectStorageFile(file.thumbnailAccessKey!)); - } - - if (file.webpublicUrl) { - promises.push(deleteObjectStorageFile(file.webpublicAccessKey!)); - } - - await Promise.all(promises); - } - - postProcess(file, isExpired); -} - -async function postProcess(file: DriveFile, isExpired = false) { - // リモートファイル期限切れ削除後は直リンクにする - if (isExpired && file.userHost !== null && file.uri != null) { - DriveFiles.update(file.id, { - isLink: true, - url: file.uri, - thumbnailUrl: null, - webpublicUrl: null, - storedInternal: false, - // ローカルプロキシ用 - accessKey: uuid(), - thumbnailAccessKey: 'thumbnail-' + uuid(), - webpublicAccessKey: 'webpublic-' + uuid(), - }); - } else { - DriveFiles.delete(file.id); - } - - // 統計を更新 - driveChart.update(file, false); - perUserDriveChart.update(file, false); - if (file.userHost !== null) { - instanceChart.updateDrive(file, false); - } -} - -export async function deleteObjectStorageFile(key: string) { - const meta = await fetchMeta(); - - const s3 = getS3(meta); - - await s3.deleteObject({ - Bucket: meta.objectStorageBucket!, - Key: key, - }).promise(); -} diff --git a/packages/backend/src/services/drive/generate-video-thumbnail.ts b/packages/backend/src/services/drive/generate-video-thumbnail.ts deleted file mode 100644 index 6e6666481..000000000 --- a/packages/backend/src/services/drive/generate-video-thumbnail.ts +++ /dev/null @@ -1,29 +0,0 @@ -import * as fs from 'node:fs'; -import { createTempDir } from '@/misc/create-temp.js'; -import { IImage, convertToJpeg } from './image-processor.js'; -import FFmpeg from 'fluent-ffmpeg'; - -export async function GenerateVideoThumbnail(source: string): Promise { - const [dir, cleanup] = await createTempDir(); - - try { - await new Promise((res, rej) => { - FFmpeg({ - source, - }) - .on('end', res) - .on('error', rej) - .screenshot({ - folder: dir, - filename: 'out.png', // must have .png extension - count: 1, - timestamps: ['5%'], - }); - }); - - // JPEGに変換 (Webpでもいいが、MastodonはWebpをサポートせず表示できなくなる) - return await convertToJpeg(`${dir}/out.png`, 498, 280); - } finally { - cleanup(); - } -} diff --git a/packages/backend/src/services/drive/image-processor.ts b/packages/backend/src/services/drive/image-processor.ts deleted file mode 100644 index 2c564ea59..000000000 --- a/packages/backend/src/services/drive/image-processor.ts +++ /dev/null @@ -1,87 +0,0 @@ -import sharp from 'sharp'; - -export type IImage = { - data: Buffer; - ext: string | null; - type: string; -}; - -/** - * Convert to JPEG - * with resize, remove metadata, resolve orientation, stop animation - */ -export async function convertToJpeg(path: string, width: number, height: number): Promise { - return convertSharpToJpeg(await sharp(path), width, height); -} - -export async function convertSharpToJpeg(sharp: sharp.Sharp, width: number, height: number): Promise { - const data = await sharp - .resize(width, height, { - fit: 'inside', - withoutEnlargement: true, - }) - .rotate() - .jpeg({ - quality: 85, - progressive: true, - }) - .toBuffer(); - - return { - data, - ext: 'jpg', - type: 'image/jpeg', - }; -} - -/** - * Convert to WebP - * with resize, remove metadata, resolve orientation, stop animation - */ -export async function convertToWebp(path: string, width: number, height: number, quality: number = 85): Promise { - return convertSharpToWebp(await sharp(path), width, height, quality); -} - -export async function convertSharpToWebp(sharp: sharp.Sharp, width: number, height: number, quality: number = 85): Promise { - const data = await sharp - .resize(width, height, { - fit: 'inside', - withoutEnlargement: true, - }) - .rotate() - .webp({ - quality, - }) - .toBuffer(); - - return { - data, - ext: 'webp', - type: 'image/webp', - }; -} - -/** - * Convert to PNG - * with resize, remove metadata, resolve orientation, stop animation - */ -export async function convertToPng(path: string, width: number, height: number): Promise { - return convertSharpToPng(await sharp(path), width, height); -} - -export async function convertSharpToPng(sharp: sharp.Sharp, width: number, height: number): Promise { - const data = await sharp - .resize(width, height, { - fit: 'inside', - withoutEnlargement: true, - }) - .rotate() - .png() - .toBuffer(); - - return { - data, - ext: 'png', - type: 'image/png', - }; -} diff --git a/packages/backend/src/services/drive/internal-storage.ts b/packages/backend/src/services/drive/internal-storage.ts deleted file mode 100644 index 8f76c81ca..000000000 --- a/packages/backend/src/services/drive/internal-storage.ts +++ /dev/null @@ -1,34 +0,0 @@ -import * as fs from 'node:fs'; -import * as Path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import config from '@/config/index.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -export class InternalStorage { - private static readonly path = Path.resolve(_dirname, '../../../../../files'); - - public static resolvePath = (key: string) => Path.resolve(InternalStorage.path, key); - - public static read(key: string) { - return fs.createReadStream(InternalStorage.resolvePath(key)); - } - - public static saveFromPath(key: string, srcPath: string) { - fs.mkdirSync(InternalStorage.path, { recursive: true }); - fs.copyFileSync(srcPath, InternalStorage.resolvePath(key)); - return `${config.url}/files/${key}`; - } - - public static saveFromBuffer(key: string, data: Buffer) { - fs.mkdirSync(InternalStorage.path, { recursive: true }); - fs.writeFileSync(InternalStorage.resolvePath(key), data); - return `${config.url}/files/${key}`; - } - - public static del(key: string) { - fs.unlink(InternalStorage.resolvePath(key), () => {}); - } -} diff --git a/packages/backend/src/services/drive/logger.ts b/packages/backend/src/services/drive/logger.ts deleted file mode 100644 index 917a8317e..000000000 --- a/packages/backend/src/services/drive/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logger from '../logger.js'; - -export const driveLogger = new Logger('drive', 'blue'); diff --git a/packages/backend/src/services/drive/s3.ts b/packages/backend/src/services/drive/s3.ts deleted file mode 100644 index 80e34be95..000000000 --- a/packages/backend/src/services/drive/s3.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { URL } from 'node:url'; -import S3 from 'aws-sdk/clients/s3.js'; -import { Meta } from '@/models/entities/meta.js'; -import { getAgentByUrl } from '@/misc/fetch.js'; - -export function getS3(meta: Meta) { - const u = meta.objectStorageEndpoint != null - ? `${meta.objectStorageUseSSL ? 'https://' : 'http://'}${meta.objectStorageEndpoint}` - : `${meta.objectStorageUseSSL ? 'https://' : 'http://'}example.net`; - - return new S3({ - endpoint: meta.objectStorageEndpoint || undefined, - accessKeyId: meta.objectStorageAccessKey!, - secretAccessKey: meta.objectStorageSecretKey!, - region: meta.objectStorageRegion || undefined, - sslEnabled: meta.objectStorageUseSSL, - s3ForcePathStyle: !meta.objectStorageEndpoint // AWS with endPoint omitted - ? false - : meta.objectStorageS3ForcePathStyle, - httpOptions: { - agent: getAgentByUrl(new URL(u), !meta.objectStorageUseProxy), - }, - }); -} diff --git a/packages/backend/src/services/drive/upload-from-url.ts b/packages/backend/src/services/drive/upload-from-url.ts deleted file mode 100644 index 3c5e1aa5c..000000000 --- a/packages/backend/src/services/drive/upload-from-url.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { URL } from 'node:url'; -import { User } from '@/models/entities/user.js'; -import { createTemp } from '@/misc/create-temp.js'; -import { downloadUrl } from '@/misc/download-url.js'; -import { DriveFolder } from '@/models/entities/drive-folder.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { DriveFiles } from '@/models/index.js'; -import { driveLogger } from './logger.js'; -import { addFile } from './add-file.js'; - -const logger = driveLogger.createSubLogger('downloader'); - -type Args = { - url: string; - user: { id: User['id']; host: User['host'] } | null; - folderId?: DriveFolder['id'] | null; - uri?: string | null; - sensitive?: boolean; - force?: boolean; - isLink?: boolean; - comment?: string | null; - requestIp?: string | null; - requestHeaders?: Record | null; -}; - -export async function uploadFromUrl({ - url, - user, - folderId = null, - uri = null, - sensitive = false, - force = false, - isLink = false, - comment = null, - requestIp = null, - requestHeaders = null, -}: Args): Promise { - let name = new URL(url).pathname.split('/').pop() || null; - if (name == null || !DriveFiles.validateFileName(name)) { - name = null; - } - - // If the comment is same as the name, skip comment - // (image.name is passed in when receiving attachment) - if (comment !== null && name === comment) { - comment = null; - } - - // Create temp file - const [path, cleanup] = await createTemp(); - - try { - // write content at URL to temp file - await downloadUrl(url, path); - - const driveFile = await addFile({ user, path, name, comment, folderId, force, isLink, url, uri, sensitive, requestIp, requestHeaders }); - logger.succ(`Got: ${driveFile.id}`); - return driveFile!; - } catch (e) { - logger.error(`Failed to create drive file: ${e}`, { - url: url, - e: e, - }); - throw e; - } finally { - cleanup(); - } -} diff --git a/packages/backend/src/services/following/create.ts b/packages/backend/src/services/following/create.ts deleted file mode 100644 index 72c24676b..000000000 --- a/packages/backend/src/services/following/create.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { publishMainStream, publishUserEvent } from '@/services/stream.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderAccept from '@/remote/activitypub/renderer/accept.js'; -import renderReject from '@/remote/activitypub/renderer/reject.js'; -import { deliver } from '@/queue/index.js'; -import createFollowRequest from './requests/create.js'; -import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc.js'; -import Logger from '../logger.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { User } from '@/models/entities/user.js'; -import { Followings, Users, FollowRequests, Blockings, Instances, UserProfiles } from '@/models/index.js'; -import { instanceChart, perUserFollowingChart } from '@/services/chart/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { createNotification } from '../create-notification.js'; -import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; -import { Packed } from '@/misc/schema.js'; -import { getActiveWebhooks } from '@/misc/webhook-cache.js'; -import { webhookDeliver } from '@/queue/index.js'; - -const logger = new Logger('following/create'); - -export async function insertFollowingDoc(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox'] }, follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox'] }) { - if (follower.id === followee.id) return; - - let alreadyFollowed = false; - - await Followings.insert({ - id: genId(), - createdAt: new Date(), - followerId: follower.id, - followeeId: followee.id, - - // 非正規化 - followerHost: follower.host, - followerInbox: Users.isRemoteUser(follower) ? follower.inbox : null, - followerSharedInbox: Users.isRemoteUser(follower) ? follower.sharedInbox : null, - followeeHost: followee.host, - followeeInbox: Users.isRemoteUser(followee) ? followee.inbox : null, - followeeSharedInbox: Users.isRemoteUser(followee) ? followee.sharedInbox : null, - }).catch(e => { - if (isDuplicateKeyValueError(e) && Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - logger.info(`Insert duplicated ignore. ${follower.id} => ${followee.id}`); - alreadyFollowed = true; - } else { - throw e; - } - }); - - const req = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (req) { - await FollowRequests.delete({ - followeeId: followee.id, - followerId: follower.id, - }); - - // 通知を作成 - createNotification(follower.id, 'followRequestAccepted', { - notifierId: followee.id, - }); - } - - if (alreadyFollowed) return; - - //#region Increment counts - await Promise.all([ - Users.increment({ id: follower.id }, 'followingCount', 1), - Users.increment({ id: followee.id }, 'followersCount', 1), - ]); - //#endregion - - //#region Update instance stats - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - registerOrFetchInstanceDoc(follower.host).then(i => { - Instances.increment({ id: i.id }, 'followingCount', 1); - instanceChart.updateFollowing(i.host, true); - }); - } else if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - registerOrFetchInstanceDoc(followee.host).then(i => { - Instances.increment({ id: i.id }, 'followersCount', 1); - instanceChart.updateFollowers(i.host, true); - }); - } - //#endregion - - perUserFollowingChart.update(follower, followee, true); - - // Publish follow event - if (Users.isLocalUser(follower)) { - Users.pack(followee.id, follower, { - detail: true, - }).then(async packed => { - publishUserEvent(follower.id, 'follow', packed as Packed<"UserDetailedNotMe">); - publishMainStream(follower.id, 'follow', packed as Packed<"UserDetailedNotMe">); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('follow')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'follow', { - user: packed, - }); - } - }); - } - - // Publish followed event - if (Users.isLocalUser(followee)) { - Users.pack(follower.id, followee).then(async packed => { - publishMainStream(followee.id, 'followed', packed); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === followee.id && x.on.includes('followed')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'followed', { - user: packed, - }); - } - }); - - // 通知を作成 - createNotification(followee.id, 'follow', { - notifierId: follower.id, - }); - } -} - -export default async function(_follower: { id: User['id'] }, _followee: { id: User['id'] }, requestId?: string) { - const [follower, followee] = await Promise.all([ - Users.findOneByOrFail({ id: _follower.id }), - Users.findOneByOrFail({ id: _followee.id }), - ]); - - // check blocking - const [blocking, blocked] = await Promise.all([ - Blockings.findOneBy({ - blockerId: follower.id, - blockeeId: followee.id, - }), - Blockings.findOneBy({ - blockerId: followee.id, - blockeeId: follower.id, - }), - ]); - - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee) && blocked) { - // リモートフォローを受けてブロックしていた場合は、エラーにするのではなくRejectを送り返しておしまい。 - const content = renderActivity(renderReject(renderFollow(follower, followee, requestId), followee)); - deliver(followee , content, follower.inbox); - return; - } else if (Users.isRemoteUser(follower) && Users.isLocalUser(followee) && blocking) { - // リモートフォローを受けてブロックされているはずの場合だったら、ブロック解除しておく。 - await Blockings.delete(blocking.id); - } else { - // それ以外は単純に例外 - if (blocking != null) throw new IdentifiableError('710e8fb0-b8c3-4922-be49-d5d93d8e6a6e', 'blocking'); - if (blocked != null) throw new IdentifiableError('3338392a-f764-498d-8855-db939dcf8c48', 'blocked'); - } - - const followeeProfile = await UserProfiles.findOneByOrFail({ userId: followee.id }); - - // フォロー対象が鍵アカウントである or - // フォロワーがBotであり、フォロー対象がBotからのフォローに慎重である or - // フォロワーがローカルユーザーであり、フォロー対象がリモートユーザーである - // 上記のいずれかに当てはまる場合はすぐフォローせずにフォローリクエストを発行しておく - if (followee.isLocked || (followeeProfile.carefulBot && follower.isBot) || (Users.isLocalUser(follower) && Users.isRemoteUser(followee))) { - let autoAccept = false; - - // 鍵アカウントであっても、既にフォローされていた場合はスルー - const following = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - if (following) { - autoAccept = true; - } - - // フォローしているユーザーは自動承認オプション - if (!autoAccept && (Users.isLocalUser(followee) && followeeProfile.autoAcceptFollowed)) { - const followed = await Followings.findOneBy({ - followerId: followee.id, - followeeId: follower.id, - }); - - if (followed) autoAccept = true; - } - - if (!autoAccept) { - await createFollowRequest(follower, followee, requestId); - return; - } - } - - await insertFollowingDoc(followee, follower); - - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - const content = renderActivity(renderAccept(renderFollow(follower, followee, requestId), followee)); - deliver(followee, content, follower.inbox); - } -} diff --git a/packages/backend/src/services/following/delete.ts b/packages/backend/src/services/following/delete.ts deleted file mode 100644 index 91b5a3d61..000000000 --- a/packages/backend/src/services/following/delete.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { publishMainStream, publishUserEvent } from '@/services/stream.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import renderReject from '@/remote/activitypub/renderer/reject.js'; -import { deliver, webhookDeliver } from '@/queue/index.js'; -import Logger from '../logger.js'; -import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc.js'; -import { User } from '@/models/entities/user.js'; -import { Followings, Users, Instances } from '@/models/index.js'; -import { instanceChart, perUserFollowingChart } from '@/services/chart/index.js'; -import { getActiveWebhooks } from '@/misc/webhook-cache.js'; - -const logger = new Logger('following/delete'); - -export default async function(follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, silent = false) { - const following = await Followings.findOneBy({ - followerId: follower.id, - followeeId: followee.id, - }); - - if (following == null) { - logger.warn('フォロー解除がリクエストされましたがフォローしていませんでした'); - return; - } - - await Followings.delete(following.id); - - decrementFollowing(follower, followee); - - // Publish unfollow event - if (!silent && Users.isLocalUser(follower)) { - Users.pack(followee.id, follower, { - detail: true, - }).then(async packed => { - publishUserEvent(follower.id, 'unfollow', packed); - publishMainStream(follower.id, 'unfollow', packed); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'unfollow', { - user: packed, - }); - } - }); - } - - if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); - deliver(follower, content, followee.inbox); - } - - if (Users.isLocalUser(followee) && Users.isRemoteUser(follower)) { - // local user has null host - const content = renderActivity(renderReject(renderFollow(follower, followee), followee)); - deliver(followee, content, follower.inbox); - } -} - -export async function decrementFollowing(follower: { id: User['id']; host: User['host']; }, followee: { id: User['id']; host: User['host']; }) { - //#region Decrement following / followers counts - await Promise.all([ - Users.decrement({ id: follower.id }, 'followingCount', 1), - Users.decrement({ id: followee.id }, 'followersCount', 1), - ]); - //#endregion - - //#region Update instance stats - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - registerOrFetchInstanceDoc(follower.host).then(i => { - Instances.decrement({ id: i.id }, 'followingCount', 1); - instanceChart.updateFollowing(i.host, false); - }); - } else if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - registerOrFetchInstanceDoc(followee.host).then(i => { - Instances.decrement({ id: i.id }, 'followersCount', 1); - instanceChart.updateFollowers(i.host, false); - }); - } - //#endregion - - perUserFollowingChart.update(follower, followee, false); -} diff --git a/packages/backend/src/services/following/reject.ts b/packages/backend/src/services/following/reject.ts deleted file mode 100644 index 691fca245..000000000 --- a/packages/backend/src/services/following/reject.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderReject from '@/remote/activitypub/renderer/reject.js'; -import { deliver, webhookDeliver } from '@/queue/index.js'; -import { publishMainStream, publishUserEvent } from '@/services/stream.js'; -import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import { Users, FollowRequests, Followings } from '@/models/index.js'; -import { decrementFollowing } from './delete.js'; -import { getActiveWebhooks } from '@/misc/webhook-cache.js'; - -type Local = ILocalUser | { - id: ILocalUser['id']; - host: ILocalUser['host']; - uri: ILocalUser['uri'] -}; -type Remote = IRemoteUser | { - id: IRemoteUser['id']; - host: IRemoteUser['host']; - uri: IRemoteUser['uri']; - inbox: IRemoteUser['inbox']; -}; -type Both = Local | Remote; - -/** - * API following/request/reject - */ -export async function rejectFollowRequest(user: Local, follower: Both) { - if (Users.isRemoteUser(follower)) { - deliverReject(user, follower); - } - - await removeFollowRequest(user, follower); - - if (Users.isLocalUser(follower)) { - publishUnfollow(user, follower); - } -} - -/** - * API following/reject - */ -export async function rejectFollow(user: Local, follower: Both) { - if (Users.isRemoteUser(follower)) { - deliverReject(user, follower); - } - - await removeFollow(user, follower); - - if (Users.isLocalUser(follower)) { - publishUnfollow(user, follower); - } -} - -/** - * AP Reject/Follow - */ -export async function remoteReject(actor: Remote, follower: Local) { - await removeFollowRequest(actor, follower); - await removeFollow(actor, follower); - publishUnfollow(actor, follower); -} - -/** - * Remove follow request record - */ -async function removeFollowRequest(followee: Both, follower: Both) { - const request = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (!request) return; - - await FollowRequests.delete(request.id); -} - -/** - * Remove follow record - */ -async function removeFollow(followee: Both, follower: Both) { - const following = await Followings.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (!following) return; - - await Followings.delete(following.id); - decrementFollowing(follower, followee); -} - -/** - * Deliver Reject to remote - */ -async function deliverReject(followee: Local, follower: Remote) { - const request = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - const content = renderActivity(renderReject(renderFollow(follower, followee, request?.requestId || undefined), followee)); - deliver(followee, content, follower.inbox); -} - -/** - * Publish unfollow to local - */ -async function publishUnfollow(followee: Both, follower: Local) { - const packedFollowee = await Users.pack(followee.id, follower, { - detail: true, - }); - - publishUserEvent(follower.id, 'unfollow', packedFollowee); - publishMainStream(follower.id, 'unfollow', packedFollowee); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'unfollow', { - user: packedFollowee, - }); - } -} diff --git a/packages/backend/src/services/following/requests/accept-all.ts b/packages/backend/src/services/following/requests/accept-all.ts deleted file mode 100644 index 5fbb549e0..000000000 --- a/packages/backend/src/services/following/requests/accept-all.ts +++ /dev/null @@ -1,18 +0,0 @@ -import accept from './accept.js'; -import { User } from '@/models/entities/user.js'; -import { FollowRequests, Users } from '@/models/index.js'; - -/** - * 指定したユーザー宛てのフォローリクエストをすべて承認 - * @param user ユーザー - */ -export default async function(user: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }) { - const requests = await FollowRequests.findBy({ - followeeId: user.id, - }); - - for (const request of requests) { - const follower = await Users.findOneByOrFail({ id: request.followerId }); - accept(user, follower); - } -} diff --git a/packages/backend/src/services/following/requests/accept.ts b/packages/backend/src/services/following/requests/accept.ts deleted file mode 100644 index 20829f70c..000000000 --- a/packages/backend/src/services/following/requests/accept.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderAccept from '@/remote/activitypub/renderer/accept.js'; -import { deliver } from '@/queue/index.js'; -import { publishMainStream } from '@/services/stream.js'; -import { insertFollowingDoc } from '../create.js'; -import { User, ILocalUser, CacheableUser } from '@/models/entities/user.js'; -import { FollowRequests, Users } from '@/models/index.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; - -export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, follower: CacheableUser) { - const request = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (request == null) { - throw new IdentifiableError('8884c2dd-5795-4ac9-b27e-6a01d38190f9', 'No follow request.'); - } - - await insertFollowingDoc(followee, follower); - - if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { - const content = renderActivity(renderAccept(renderFollow(follower, followee, request.requestId!), followee)); - deliver(followee, content, follower.inbox); - } - - Users.pack(followee.id, followee, { - detail: true, - }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); -} diff --git a/packages/backend/src/services/following/requests/cancel.ts b/packages/backend/src/services/following/requests/cancel.ts deleted file mode 100644 index 56531fa1f..000000000 --- a/packages/backend/src/services/following/requests/cancel.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { deliver } from '@/queue/index.js'; -import { publishMainStream } from '@/services/stream.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { User, ILocalUser } from '@/models/entities/user.js'; -import { Users, FollowRequests } from '@/models/index.js'; - -export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox'] }, follower: { id: User['id']; host: User['host']; uri: User['host'] }) { - if (Users.isRemoteUser(followee)) { - const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); - - if (Users.isLocalUser(follower)) { // 本来このチェックは不要だけどTSに怒られるので - deliver(follower, content, followee.inbox); - } - } - - const request = await FollowRequests.findOneBy({ - followeeId: followee.id, - followerId: follower.id, - }); - - if (request == null) { - throw new IdentifiableError('17447091-ce07-46dd-b331-c1fd4f15b1e7', 'request not found'); - } - - await FollowRequests.delete({ - followeeId: followee.id, - followerId: follower.id, - }); - - Users.pack(followee.id, followee, { - detail: true, - }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); -} diff --git a/packages/backend/src/services/following/requests/create.ts b/packages/backend/src/services/following/requests/create.ts deleted file mode 100644 index bda2f8f92..000000000 --- a/packages/backend/src/services/following/requests/create.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderFollow from '@/remote/activitypub/renderer/follow.js'; -import { deliver } from '@/queue/index.js'; -import { User } from '@/models/entities/user.js'; -import { Blockings, FollowRequests, Users } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { createNotification } from '../../create-notification.js'; - -export default async function(follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, requestId?: string) { - if (follower.id === followee.id) return; - - // check blocking - const [blocking, blocked] = await Promise.all([ - Blockings.findOneBy({ - blockerId: follower.id, - blockeeId: followee.id, - }), - Blockings.findOneBy({ - blockerId: followee.id, - blockeeId: follower.id, - }), - ]); - - if (blocking != null) throw new Error('blocking'); - if (blocked != null) throw new Error('blocked'); - - const followRequest = await FollowRequests.insert({ - id: genId(), - createdAt: new Date(), - followerId: follower.id, - followeeId: followee.id, - requestId, - - // 非正規化 - followerHost: follower.host, - followerInbox: Users.isRemoteUser(follower) ? follower.inbox : undefined, - followerSharedInbox: Users.isRemoteUser(follower) ? follower.sharedInbox : undefined, - followeeHost: followee.host, - followeeInbox: Users.isRemoteUser(followee) ? followee.inbox : undefined, - followeeSharedInbox: Users.isRemoteUser(followee) ? followee.sharedInbox : undefined, - }).then(x => FollowRequests.findOneByOrFail(x.identifiers[0])); - - // Publish receiveRequest event - if (Users.isLocalUser(followee)) { - Users.pack(follower.id, followee).then(packed => publishMainStream(followee.id, 'receiveFollowRequest', packed)); - - Users.pack(followee.id, followee, { - detail: true, - }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); - - // 通知を作成 - createNotification(followee.id, 'receiveFollowRequest', { - notifierId: follower.id, - followRequestId: followRequest.id, - }); - } - - if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { - const content = renderActivity(renderFollow(follower, followee)); - deliver(follower, content, followee.inbox); - } -} diff --git a/packages/backend/src/services/i/pin.ts b/packages/backend/src/services/i/pin.ts deleted file mode 100644 index f35392a34..000000000 --- a/packages/backend/src/services/i/pin.ts +++ /dev/null @@ -1,92 +0,0 @@ -import config from '@/config/index.js'; -import renderAdd from '@/remote/activitypub/renderer/add.js'; -import renderRemove from '@/remote/activitypub/renderer/remove.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { Notes, UserNotePinings, Users } from '@/models/index.js'; -import { UserNotePining } from '@/models/entities/user-note-pining.js'; -import { genId } from '@/misc/gen-id.js'; -import { deliverToFollowers } from '@/remote/activitypub/deliver-manager.js'; -import { deliverToRelays } from '../relay.js'; - -/** - * 指定した投稿をピン留めします - * @param user - * @param noteId - */ -export async function addPinned(user: { id: User['id']; host: User['host']; }, noteId: Note['id']) { - // Fetch pinee - const note = await Notes.findOneBy({ - id: noteId, - userId: user.id, - }); - - if (note == null) { - throw new IdentifiableError('70c4e51f-5bea-449c-a030-53bee3cce202', 'No such note.'); - } - - const pinings = await UserNotePinings.findBy({ userId: user.id }); - - if (pinings.length >= 5) { - throw new IdentifiableError('15a018eb-58e5-4da1-93be-330fcc5e4e1a', 'You can not pin notes any more.'); - } - - if (pinings.some(pining => pining.noteId === note.id)) { - throw new IdentifiableError('23f0cf4e-59a3-4276-a91d-61a5891c1514', 'That note has already been pinned.'); - } - - await UserNotePinings.insert({ - id: genId(), - createdAt: new Date(), - userId: user.id, - noteId: note.id, - } as UserNotePining); - - // Deliver to remote followers - if (Users.isLocalUser(user)) { - deliverPinnedChange(user.id, note.id, true); - } -} - -/** - * 指定した投稿のピン留めを解除します - * @param user - * @param noteId - */ -export async function removePinned(user: { id: User['id']; host: User['host']; }, noteId: Note['id']) { - // Fetch unpinee - const note = await Notes.findOneBy({ - id: noteId, - userId: user.id, - }); - - if (note == null) { - throw new IdentifiableError('b302d4cf-c050-400a-bbb3-be208681f40c', 'No such note.'); - } - - UserNotePinings.delete({ - userId: user.id, - noteId: note.id, - }); - - // Deliver to remote followers - if (Users.isLocalUser(user)) { - deliverPinnedChange(user.id, noteId, false); - } -} - -export async function deliverPinnedChange(userId: User['id'], noteId: Note['id'], isAddition: boolean) { - const user = await Users.findOneBy({ id: userId }); - if (user == null) throw new Error('user not found'); - - if (!Users.isLocalUser(user)) return; - - const target = `${config.url}/users/${user.id}/collections/featured`; - const item = `${config.url}/notes/${noteId}`; - const content = renderActivity(isAddition ? renderAdd(user, target, item) : renderRemove(user, target, item)); - - deliverToFollowers(user, content); - deliverToRelays(user, content); -} diff --git a/packages/backend/src/services/i/update.ts b/packages/backend/src/services/i/update.ts deleted file mode 100644 index 27bd38bd3..000000000 --- a/packages/backend/src/services/i/update.ts +++ /dev/null @@ -1,19 +0,0 @@ -import renderUpdate from '@/remote/activitypub/renderer/update.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { Users } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { renderPerson } from '@/remote/activitypub/renderer/person.js'; -import { deliverToFollowers } from '@/remote/activitypub/deliver-manager.js'; -import { deliverToRelays } from '../relay.js'; - -export async function publishToFollowers(userId: User['id']) { - const user = await Users.findOneBy({ id: userId }); - if (user == null) throw new Error('user not found'); - - // フォロワーがリモートユーザーかつ投稿者がローカルユーザーならUpdateを配信 - if (Users.isLocalUser(user)) { - const content = renderActivity(renderUpdate(await renderPerson(user), user)); - deliverToFollowers(user, content); - deliverToRelays(user, content); - } -} diff --git a/packages/backend/src/services/insert-moderation-log.ts b/packages/backend/src/services/insert-moderation-log.ts deleted file mode 100644 index 0a7c472d8..000000000 --- a/packages/backend/src/services/insert-moderation-log.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ModerationLogs } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { User } from '@/models/entities/user.js'; - -export async function insertModerationLog(moderator: { id: User['id'] }, type: string, info?: Record) { - await ModerationLogs.insert({ - id: genId(), - createdAt: new Date(), - userId: moderator.id, - type: type, - info: info || {}, - }); -} diff --git a/packages/backend/src/services/instance-actor.ts b/packages/backend/src/services/instance-actor.ts deleted file mode 100644 index bddd0355a..000000000 --- a/packages/backend/src/services/instance-actor.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { createSystemUser } from './create-system-user.js'; -import { ILocalUser } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; -import { Cache } from '@/misc/cache.js'; -import { IsNull } from 'typeorm'; - -const ACTOR_USERNAME = 'instance.actor' as const; - -const cache = new Cache(Infinity); - -export async function getInstanceActor(): Promise { - const cached = cache.get(null); - if (cached) return cached; - - const user = await Users.findOneBy({ - host: IsNull(), - username: ACTOR_USERNAME, - }) as ILocalUser | undefined; - - if (user) { - cache.set(null, user); - return user; - } else { - const created = await createSystemUser(ACTOR_USERNAME) as ILocalUser; - cache.set(null, created); - return created; - } -} diff --git a/packages/backend/src/services/logger.ts b/packages/backend/src/services/logger.ts deleted file mode 100644 index 89d6d5720..000000000 --- a/packages/backend/src/services/logger.ts +++ /dev/null @@ -1,128 +0,0 @@ -import cluster from 'node:cluster'; -import chalk from 'chalk'; -import { default as convertColor } from 'color-convert'; -import { format as dateFormat } from 'date-fns'; -import { envOption } from '../env.js'; -import config from '@/config/index.js'; - -import * as SyslogPro from 'syslog-pro'; - -type Domain = { - name: string; - color?: string; -}; - -type Level = 'error' | 'success' | 'warning' | 'debug' | 'info'; - -export default class Logger { - private domain: Domain; - private parentLogger: Logger | null = null; - private store: boolean; - private syslogClient: any | null = null; - - constructor(domain: string, color?: string, store = true) { - this.domain = { - name: domain, - color: color, - }; - this.store = store; - - if (config.syslog) { - this.syslogClient = new SyslogPro.RFC5424({ - applacationName: 'Misskey', - timestamp: true, - encludeStructuredData: true, - color: true, - extendedColor: true, - server: { - target: config.syslog.host, - port: config.syslog.port, - }, - }); - } - } - - public createSubLogger(domain: string, color?: string, store = true): Logger { - const logger = new Logger(domain, color, store); - logger.parentLogger = this; - return logger; - } - - private log(level: Level, message: string, data?: Record | null, important = false, subDomains: Domain[] = [], store = true): void { - if (envOption.quiet) return; - if (!this.store) store = false; - if (level === 'debug') store = false; - - if (this.parentLogger) { - this.parentLogger.log(level, message, data, important, [this.domain].concat(subDomains), store); - return; - } - - const time = dateFormat(new Date(), 'HH:mm:ss'); - const worker = cluster.isPrimary ? '*' : cluster.worker.id; - const l = - level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') : - level === 'warning' ? chalk.yellow('WARN') : - level === 'success' ? important ? chalk.bgGreen.white('DONE') : chalk.green('DONE') : - level === 'debug' ? chalk.gray('VERB') : - level === 'info' ? chalk.blue('INFO') : - null; - const domains = [this.domain].concat(subDomains).map(d => d.color ? chalk.rgb(...convertColor.keyword.rgb(d.color))(d.name) : chalk.white(d.name)); - const m = - level === 'error' ? chalk.red(message) : - level === 'warning' ? chalk.yellow(message) : - level === 'success' ? chalk.green(message) : - level === 'debug' ? chalk.gray(message) : - level === 'info' ? message : - null; - - let log = `${l} ${worker}\t[${domains.join(' ')}]\t${m}`; - if (envOption.withLogTime) log = chalk.gray(time) + ' ' + log; - - console.log(important ? chalk.bold(log) : log); - - if (store) { - if (this.syslogClient) { - const send = - level === 'error' ? this.syslogClient.error : - level === 'warning' ? this.syslogClient.warning : - level === 'success' ? this.syslogClient.info : - level === 'debug' ? this.syslogClient.info : - level === 'info' ? this.syslogClient.info : - null as never; - - send.bind(this.syslogClient)(message).catch(() => {}); - } - } - } - - public error(x: string | Error, data?: Record | null, important = false): void { // 実行を継続できない状況で使う - if (x instanceof Error) { - data = data || {}; - data.e = x; - this.log('error', x.toString(), data, important); - } else if (typeof x === 'object') { - this.log('error', `${(x as any).message || (x as any).name || x}`, data, important); - } else { - this.log('error', `${x}`, data, important); - } - } - - public warn(message: string, data?: Record | null, important = false): void { // 実行を継続できるが改善すべき状況で使う - this.log('warning', message, data, important); - } - - public succ(message: string, data?: Record | null, important = false): void { // 何かに成功した状況で使う - this.log('success', message, data, important); - } - - public debug(message: string, data?: Record | null, important = false): void { // デバッグ用に使う(開発者に必要だが利用者に不要な情報) - if (process.env.NODE_ENV !== 'production' || envOption.verbose) { - this.log('debug', message, data, important); - } - } - - public info(message: string, data?: Record | null, important = false): void { // それ以外 - this.log('info', message, data, important); - } -} diff --git a/packages/backend/src/services/messages/create.ts b/packages/backend/src/services/messages/create.ts deleted file mode 100644 index e6b320492..000000000 --- a/packages/backend/src/services/messages/create.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { CacheableUser, User } from '@/models/entities/user.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { MessagingMessages, UserGroupJoinings, Mutings, Users } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '@/services/stream.js'; -import { pushNotification } from '@/services/push-notification.js'; -import { Not } from 'typeorm'; -import { Note } from '@/models/entities/note.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import renderCreate from '@/remote/activitypub/renderer/create.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { deliver } from '@/queue/index.js'; - -export async function createMessage(user: { id: User['id']; host: User['host']; }, recipientUser: CacheableUser | undefined, recipientGroup: UserGroup | undefined, text: string | null | undefined, file: DriveFile | null, uri?: string) { - const message = { - id: genId(), - createdAt: new Date(), - fileId: file ? file.id : null, - recipientId: recipientUser ? recipientUser.id : null, - groupId: recipientGroup ? recipientGroup.id : null, - text: text ? text.trim() : null, - userId: user.id, - isRead: false, - reads: [] as any[], - uri, - } as MessagingMessage; - - await MessagingMessages.insert(message); - - const messageObj = await MessagingMessages.pack(message); - - if (recipientUser) { - if (Users.isLocalUser(user)) { - // 自分のストリーム - publishMessagingStream(message.userId, recipientUser.id, 'message', messageObj); - publishMessagingIndexStream(message.userId, 'message', messageObj); - publishMainStream(message.userId, 'messagingMessage', messageObj); - } - - if (Users.isLocalUser(recipientUser)) { - // 相手のストリーム - publishMessagingStream(recipientUser.id, message.userId, 'message', messageObj); - publishMessagingIndexStream(recipientUser.id, 'message', messageObj); - publishMainStream(recipientUser.id, 'messagingMessage', messageObj); - } - } else if (recipientGroup) { - // グループのストリーム - publishGroupMessagingStream(recipientGroup.id, 'message', messageObj); - - // メンバーのストリーム - const joinings = await UserGroupJoinings.findBy({ userGroupId: recipientGroup.id }); - for (const joining of joinings) { - publishMessagingIndexStream(joining.userId, 'message', messageObj); - publishMainStream(joining.userId, 'messagingMessage', messageObj); - } - } - - // 2秒経っても(今回作成した)メッセージが既読にならなかったら「未読のメッセージがありますよ」イベントを発行する - setTimeout(async () => { - const freshMessage = await MessagingMessages.findOneBy({ id: message.id }); - if (freshMessage == null) return; // メッセージが削除されている場合もある - - if (recipientUser && Users.isLocalUser(recipientUser)) { - if (freshMessage.isRead) return; // 既読 - - //#region ただしミュートされているなら発行しない - const mute = await Mutings.findBy({ - muterId: recipientUser.id, - }); - if (mute.map(m => m.muteeId).includes(user.id)) return; - //#endregion - - publishMainStream(recipientUser.id, 'unreadMessagingMessage', messageObj); - pushNotification(recipientUser.id, 'unreadMessagingMessage', messageObj); - } else if (recipientGroup) { - const joinings = await UserGroupJoinings.findBy({ userGroupId: recipientGroup.id, userId: Not(user.id) }); - for (const joining of joinings) { - if (freshMessage.reads.includes(joining.userId)) return; // 既読 - publishMainStream(joining.userId, 'unreadMessagingMessage', messageObj); - pushNotification(joining.userId, 'unreadMessagingMessage', messageObj); - } - } - }, 2000); - - if (recipientUser && Users.isLocalUser(user) && Users.isRemoteUser(recipientUser)) { - const note = { - id: message.id, - createdAt: message.createdAt, - fileIds: message.fileId ? [ message.fileId ] : [], - text: message.text, - userId: message.userId, - visibility: 'specified', - mentions: [ recipientUser ].map(u => u.id), - mentionedRemoteUsers: JSON.stringify([ recipientUser ].map(u => ({ - uri: u.uri, - username: u.username, - host: u.host, - }))), - } as Note; - - const activity = renderActivity(renderCreate(await renderNote(note, false, true), note)); - - deliver(user, activity, recipientUser.inbox); - } - return messageObj; -} diff --git a/packages/backend/src/services/messages/delete.ts b/packages/backend/src/services/messages/delete.ts deleted file mode 100644 index 1e7ce1981..000000000 --- a/packages/backend/src/services/messages/delete.ts +++ /dev/null @@ -1,30 +0,0 @@ -import config from '@/config/index.js'; -import { MessagingMessages, Users } from '@/models/index.js'; -import { MessagingMessage } from '@/models/entities/messaging-message.js'; -import { publishGroupMessagingStream, publishMessagingStream } from '@/services/stream.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderDelete from '@/remote/activitypub/renderer/delete.js'; -import renderTombstone from '@/remote/activitypub/renderer/tombstone.js'; -import { deliver } from '@/queue/index.js'; - -export async function deleteMessage(message: MessagingMessage) { - await MessagingMessages.delete(message.id); - postDeleteMessage(message); -} - -async function postDeleteMessage(message: MessagingMessage) { - if (message.recipientId) { - const user = await Users.findOneByOrFail({ id: message.userId }); - const recipient = await Users.findOneByOrFail({ id: message.recipientId }); - - if (Users.isLocalUser(user)) publishMessagingStream(message.userId, message.recipientId, 'deleted', message.id); - if (Users.isLocalUser(recipient)) publishMessagingStream(message.recipientId, message.userId, 'deleted', message.id); - - if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) { - const activity = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${message.id}`), user)); - deliver(user, activity, recipient.inbox); - } - } else if (message.groupId) { - publishGroupMessagingStream(message.groupId, 'deleted', message.id); - } -} diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts deleted file mode 100644 index e2bf9d5b5..000000000 --- a/packages/backend/src/services/note/create.ts +++ /dev/null @@ -1,692 +0,0 @@ -import * as mfm from 'mfm-js'; -import es from '../../db/elasticsearch.js'; -import { publishMainStream, publishNotesStream } from '@/services/stream.js'; -import DeliverManager from '@/remote/activitypub/deliver-manager.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import renderCreate from '@/remote/activitypub/renderer/create.js'; -import renderAnnounce from '@/remote/activitypub/renderer/announce.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { resolveUser } from '@/remote/resolve-user.js'; -import config from '@/config/index.js'; -import { updateHashtags } from '../update-hashtag.js'; -import { concat } from '@/prelude/array.js'; -import { insertNoteUnread } from '@/services/note/unread.js'; -import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc.js'; -import { extractMentions } from '@/misc/extract-mentions.js'; -import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm.js'; -import { extractHashtags } from '@/misc/extract-hashtags.js'; -import { Note, IMentionedRemoteUsers } from '@/models/entities/note.js'; -import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings, Blockings, NoteThreadMutings } from '@/models/index.js'; -import { DriveFile } from '@/models/entities/drive-file.js'; -import { App } from '@/models/entities/app.js'; -import { Not, In } from 'typeorm'; -import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import { genId } from '@/misc/gen-id.js'; -import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '@/services/chart/index.js'; -import { Poll, IPoll } from '@/models/entities/poll.js'; -import { createNotification } from '../create-notification.js'; -import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; -import { checkHitAntenna } from '@/misc/check-hit-antenna.js'; -import { checkWordMute } from '@/misc/check-word-mute.js'; -import { addNoteToAntenna } from '../add-note-to-antenna.js'; -import { countSameRenotes } from '@/misc/count-same-renotes.js'; -import { deliverToRelays } from '../relay.js'; -import { Channel } from '@/models/entities/channel.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; -import { getAntennas } from '@/misc/antenna-cache.js'; -import { endedPollNotificationQueue } from '@/queue/queues.js'; -import { webhookDeliver } from '@/queue/index.js'; -import { Cache } from '@/misc/cache.js'; -import { UserProfile } from '@/models/entities/user-profile.js'; -import { db } from '@/db/postgre.js'; -import { getActiveWebhooks } from '@/misc/webhook-cache.js'; - -const mutedWordsCache = new Cache<{ userId: UserProfile['userId']; mutedWords: UserProfile['mutedWords']; }[]>(1000 * 60 * 5); - -type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; - -class NotificationManager { - private notifier: { id: User['id']; }; - private note: Note; - private queue: { - target: ILocalUser['id']; - reason: NotificationType; - }[]; - - constructor(notifier: { id: User['id']; }, note: Note) { - this.notifier = notifier; - this.note = note; - this.queue = []; - } - - public push(notifiee: ILocalUser['id'], reason: NotificationType) { - // 自分自身へは通知しない - if (this.notifier.id === notifiee) return; - - const exist = this.queue.find(x => x.target === notifiee); - - if (exist) { - // 「メンションされているかつ返信されている」場合は、メンションとしての通知ではなく返信としての通知にする - if (reason !== 'mention') { - exist.reason = reason; - } - } else { - this.queue.push({ - reason: reason, - target: notifiee, - }); - } - } - - public async deliver() { - for (const x of this.queue) { - // ミュート情報を取得 - const mentioneeMutes = await Mutings.findBy({ - muterId: x.target, - }); - - const mentioneesMutedUserIds = mentioneeMutes.map(m => m.muteeId); - - // 通知される側のユーザーが通知する側のユーザーをミュートしていない限りは通知する - if (!mentioneesMutedUserIds.includes(this.notifier.id)) { - createNotification(x.target, x.reason, { - notifierId: this.notifier.id, - noteId: this.note.id, - }); - } - } - } -} - -type MinimumUser = { - id: User['id']; - host: User['host']; - username: User['username']; - uri: User['uri']; -}; - -type Option = { - createdAt?: Date | null; - name?: string | null; - text?: string | null; - reply?: Note | null; - renote?: Note | null; - files?: DriveFile[] | null; - poll?: IPoll | null; - localOnly?: boolean | null; - cw?: string | null; - visibility?: string; - visibleUsers?: MinimumUser[] | null; - channel?: Channel | null; - apMentions?: MinimumUser[] | null; - apHashtags?: string[] | null; - apEmojis?: string[] | null; - uri?: string | null; - url?: string | null; - app?: App | null; -}; - -export default async (user: { id: User['id']; username: User['username']; host: User['host']; isSilenced: User['isSilenced']; createdAt: User['createdAt']; }, data: Option, silent = false) => new Promise(async (res, rej) => { - // チャンネル外にリプライしたら対象のスコープに合わせる - // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) - if (data.reply && data.channel && data.reply.channelId !== data.channel.id) { - if (data.reply.channelId) { - data.channel = await Channels.findOneBy({ id: data.reply.channelId }); - } else { - data.channel = null; - } - } - - // チャンネル内にリプライしたら対象のスコープに合わせる - // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) - if (data.reply && (data.channel == null) && data.reply.channelId) { - data.channel = await Channels.findOneBy({ id: data.reply.channelId }); - } - - if (data.createdAt == null) data.createdAt = new Date(); - if (data.visibility == null) data.visibility = 'public'; - if (data.localOnly == null) data.localOnly = false; - if (data.channel != null) data.visibility = 'public'; - if (data.channel != null) data.visibleUsers = []; - if (data.channel != null) data.localOnly = true; - - // サイレンス - if (user.isSilenced && data.visibility === 'public' && data.channel == null) { - data.visibility = 'home'; - } - - // Renote対象が「ホームまたは全体」以外の公開範囲ならreject - if (data.renote && data.renote.visibility !== 'public' && data.renote.visibility !== 'home' && data.renote.userId !== user.id) { - return rej('Renote target is not public or home'); - } - - // Renote対象がpublicではないならhomeにする - if (data.renote && data.renote.visibility !== 'public' && data.visibility === 'public') { - data.visibility = 'home'; - } - - // Renote対象がfollowersならfollowersにする - if (data.renote && data.renote.visibility === 'followers') { - data.visibility = 'followers'; - } - - // 返信対象がpublicではないならhomeにする - if (data.reply && data.reply.visibility !== 'public' && data.visibility === 'public') { - data.visibility = 'home'; - } - - // ローカルのみをRenoteしたらローカルのみにする - if (data.renote && data.renote.localOnly && data.channel == null) { - data.localOnly = true; - } - - // ローカルのみにリプライしたらローカルのみにする - if (data.reply && data.reply.localOnly && data.channel == null) { - data.localOnly = true; - } - - if (data.text) { - data.text = data.text.trim(); - } else { - data.text = null; - } - - let tags = data.apHashtags; - let emojis = data.apEmojis; - let mentionedUsers = data.apMentions; - - // Parse MFM if needed - if (!tags || !emojis || !mentionedUsers) { - const tokens = data.text ? mfm.parse(data.text)! : []; - const cwTokens = data.cw ? mfm.parse(data.cw)! : []; - const choiceTokens = data.poll && data.poll.choices - ? concat(data.poll.choices.map(choice => mfm.parse(choice)!)) - : []; - - const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); - - tags = data.apHashtags || extractHashtags(combinedTokens); - - emojis = data.apEmojis || extractCustomEmojisFromMfm(combinedTokens); - - mentionedUsers = data.apMentions || await extractMentionedUsers(user, combinedTokens); - } - - tags = tags.filter(tag => Array.from(tag || '').length <= 128).splice(0, 32); - - if (data.reply && (user.id !== data.reply.userId) && !mentionedUsers.some(u => u.id === data.reply!.userId)) { - mentionedUsers.push(await Users.findOneByOrFail({ id: data.reply!.userId })); - } - - if (data.visibility === 'specified') { - if (data.visibleUsers == null) throw new Error('invalid param'); - - for (const u of data.visibleUsers) { - if (!mentionedUsers.some(x => x.id === u.id)) { - mentionedUsers.push(u); - } - } - - if (data.reply && !data.visibleUsers.some(x => x.id === data.reply!.userId)) { - data.visibleUsers.push(await Users.findOneByOrFail({ id: data.reply!.userId })); - } - } - - const note = await insertNote(user, data, tags, emojis, mentionedUsers); - - res(note); - - // 統計を更新 - notesChart.update(note, true); - perUserNotesChart.update(user, note, true); - - // Register host - if (Users.isRemoteUser(user)) { - registerOrFetchInstanceDoc(user.host).then(i => { - Instances.increment({ id: i.id }, 'notesCount', 1); - instanceChart.updateNote(i.host, note, true); - }); - } - - // ハッシュタグ更新 - if (data.visibility === 'public' || data.visibility === 'home') { - updateHashtags(user, tags); - } - - // Increment notes count (user) - incNotesCountOfUser(user); - - // Word mute - mutedWordsCache.fetch(null, () => UserProfiles.find({ - where: { - enableWordMute: true, - }, - select: ['userId', 'mutedWords'], - })).then(us => { - for (const u of us) { - checkWordMute(note, { id: u.userId }, u.mutedWords).then(shouldMute => { - if (shouldMute) { - MutedNotes.insert({ - id: genId(), - userId: u.userId, - noteId: note.id, - reason: 'word', - }); - } - }); - } - }); - - // Antenna - for (const antenna of (await getAntennas())) { - checkHitAntenna(antenna, note, user).then(hit => { - if (hit) { - addNoteToAntenna(antenna, note, user); - } - }); - } - - // Channel - if (note.channelId) { - ChannelFollowings.findBy({ followeeId: note.channelId }).then(followings => { - for (const following of followings) { - insertNoteUnread(following.followerId, note, { - isSpecified: false, - isMentioned: false, - }); - } - }); - } - - if (data.reply) { - saveReply(data.reply, note); - } - - // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき - if (data.renote && (await countSameRenotes(user.id, data.renote.id, note.id) === 0)) { - incRenoteCount(data.renote); - } - - if (data.poll && data.poll.expiresAt) { - const delay = data.poll.expiresAt.getTime() - Date.now(); - endedPollNotificationQueue.add({ - noteId: note.id, - }, { - delay, - removeOnComplete: true, - }); - } - - if (!silent) { - if (Users.isLocalUser(user)) activeUsersChart.write(user); - - // 未読通知を作成 - if (data.visibility === 'specified') { - if (data.visibleUsers == null) throw new Error('invalid param'); - - for (const u of data.visibleUsers) { - // ローカルユーザーのみ - if (!Users.isLocalUser(u)) continue; - - insertNoteUnread(u.id, note, { - isSpecified: true, - isMentioned: false, - }); - } - } else { - for (const u of mentionedUsers) { - // ローカルユーザーのみ - if (!Users.isLocalUser(u)) continue; - - insertNoteUnread(u.id, note, { - isSpecified: false, - isMentioned: true, - }); - } - } - - // Pack the note - const noteObj = await Notes.pack(note); - - publishNotesStream(noteObj); - - getActiveWebhooks().then(webhooks => { - webhooks = webhooks.filter(x => x.userId === user.id && x.on.includes('note')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'note', { - note: noteObj, - }); - } - }); - - const nm = new NotificationManager(user, note); - const nmRelatedPromises = []; - - await createMentionedEvents(mentionedUsers, note, nm); - - // If has in reply to note - if (data.reply) { - // Fetch watchers - nmRelatedPromises.push(notifyToWatchersOfReplyee(data.reply, user, nm)); - - // 通知 - if (data.reply.userHost === null) { - const threadMuted = await NoteThreadMutings.findOneBy({ - userId: data.reply.userId, - threadId: data.reply.threadId || data.reply.id, - }); - - if (!threadMuted) { - nm.push(data.reply.userId, 'reply'); - publishMainStream(data.reply.userId, 'reply', noteObj); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === data.reply!.userId && x.on.includes('reply')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'reply', { - note: noteObj, - }); - } - } - } - } - - // If it is renote - if (data.renote) { - const type = data.text ? 'quote' : 'renote'; - - // Notify - if (data.renote.userHost === null) { - nm.push(data.renote.userId, type); - } - - // Fetch watchers - nmRelatedPromises.push(notifyToWatchersOfRenotee(data.renote, user, nm, type)); - - // Publish event - if ((user.id !== data.renote.userId) && data.renote.userHost === null) { - publishMainStream(data.renote.userId, 'renote', noteObj); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === data.renote!.userId && x.on.includes('renote')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'renote', { - note: noteObj, - }); - } - } - } - - Promise.all(nmRelatedPromises).then(() => { - nm.deliver(); - }); - - //#region AP deliver - if (Users.isLocalUser(user)) { - (async () => { - const noteActivity = await renderNoteOrRenoteActivity(data, note); - const dm = new DeliverManager(user, noteActivity); - - // メンションされたリモートユーザーに配送 - for (const u of mentionedUsers.filter(u => Users.isRemoteUser(u))) { - dm.addDirectRecipe(u as IRemoteUser); - } - - // 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送 - if (data.reply && data.reply.userHost !== null) { - const u = await Users.findOneBy({ id: data.reply.userId }); - if (u && Users.isRemoteUser(u)) dm.addDirectRecipe(u); - } - - // 投稿がRenoteかつ投稿者がローカルユーザーかつRenote元の投稿の投稿者がリモートユーザーなら配送 - if (data.renote && data.renote.userHost !== null) { - const u = await Users.findOneBy({ id: data.renote.userId }); - if (u && Users.isRemoteUser(u)) dm.addDirectRecipe(u); - } - - // フォロワーに配送 - if (['public', 'home', 'followers'].includes(note.visibility)) { - dm.addFollowersRecipe(); - } - - if (['public'].includes(note.visibility)) { - deliverToRelays(user, noteActivity); - } - - dm.execute(); - })(); - } - //#endregion - } - - if (data.channel) { - Channels.increment({ id: data.channel.id }, 'notesCount', 1); - Channels.update(data.channel.id, { - lastNotedAt: new Date(), - }); - - Notes.countBy({ - userId: user.id, - channelId: data.channel.id, - }).then(count => { - // この処理が行われるのはノート作成後なので、ノートが一つしかなかったら最初の投稿だと判断できる - // TODO: とはいえノートを削除して何回も投稿すればその分だけインクリメントされる雑さもあるのでどうにかしたい - if (count === 1) { - Channels.increment({ id: data.channel!.id }, 'usersCount', 1); - } - }); - } - - // Register to search database - index(note); -}); - -async function renderNoteOrRenoteActivity(data: Option, note: Note) { - if (data.localOnly) return null; - - const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length === 0) - ? renderAnnounce(data.renote.uri ? data.renote.uri : `${config.url}/notes/${data.renote.id}`, note) - : renderCreate(await renderNote(note, false), note); - - return renderActivity(content); -} - -function incRenoteCount(renote: Note) { - Notes.createQueryBuilder().update() - .set({ - renoteCount: () => '"renoteCount" + 1', - score: () => '"score" + 1', - }) - .where('id = :id', { id: renote.id }) - .execute(); -} - -async function insertNote(user: { id: User['id']; host: User['host']; }, data: Option, tags: string[], emojis: string[], mentionedUsers: MinimumUser[]) { - const insert = new Note({ - id: genId(data.createdAt!), - createdAt: data.createdAt!, - fileIds: data.files ? data.files.map(file => file.id) : [], - replyId: data.reply ? data.reply.id : null, - renoteId: data.renote ? data.renote.id : null, - channelId: data.channel ? data.channel.id : null, - threadId: data.reply - ? data.reply.threadId - ? data.reply.threadId - : data.reply.id - : null, - name: data.name, - text: data.text, - hasPoll: data.poll != null, - cw: data.cw == null ? null : data.cw, - tags: tags.map(tag => normalizeForSearch(tag)), - emojis, - userId: user.id, - localOnly: data.localOnly!, - visibility: data.visibility as any, - visibleUserIds: data.visibility === 'specified' - ? data.visibleUsers - ? data.visibleUsers.map(u => u.id) - : [] - : [], - - attachedFileTypes: data.files ? data.files.map(file => file.type) : [], - - // 以下非正規化データ - replyUserId: data.reply ? data.reply.userId : null, - replyUserHost: data.reply ? data.reply.userHost : null, - renoteUserId: data.renote ? data.renote.userId : null, - renoteUserHost: data.renote ? data.renote.userHost : null, - userHost: user.host, - }); - - if (data.uri != null) insert.uri = data.uri; - if (data.url != null) insert.url = data.url; - - // Append mentions data - if (mentionedUsers.length > 0) { - insert.mentions = mentionedUsers.map(u => u.id); - const profiles = await UserProfiles.findBy({ userId: In(insert.mentions) }); - insert.mentionedRemoteUsers = JSON.stringify(mentionedUsers.filter(u => Users.isRemoteUser(u)).map(u => { - const profile = profiles.find(p => p.userId === u.id); - const url = profile != null ? profile.url : null; - return { - uri: u.uri, - url: url == null ? undefined : url, - username: u.username, - host: u.host, - } as IMentionedRemoteUsers[0]; - })); - } - - // 投稿を作成 - try { - if (insert.hasPoll) { - // Start transaction - await db.transaction(async transactionalEntityManager => { - await transactionalEntityManager.insert(Note, insert); - - const poll = new Poll({ - noteId: insert.id, - choices: data.poll!.choices, - expiresAt: data.poll!.expiresAt, - multiple: data.poll!.multiple, - votes: new Array(data.poll!.choices.length).fill(0), - noteVisibility: insert.visibility, - userId: user.id, - userHost: user.host, - }); - - await transactionalEntityManager.insert(Poll, poll); - }); - } else { - await Notes.insert(insert); - } - - return insert; - } catch (e) { - // duplicate key error - if (isDuplicateKeyValueError(e)) { - const err = new Error('Duplicated note'); - err.name = 'duplicated'; - throw err; - } - - console.error(e); - - throw e; - } -} - -function index(note: Note) { - if (note.text == null || config.elasticsearch == null) return; - - es!.index({ - index: config.elasticsearch.index || 'misskey_note', - id: note.id.toString(), - body: { - text: normalizeForSearch(note.text), - userId: note.userId, - userHost: note.userHost, - }, - }); -} - -async function notifyToWatchersOfRenotee(renote: Note, user: { id: User['id']; }, nm: NotificationManager, type: NotificationType) { - const watchers = await NoteWatchings.findBy({ - noteId: renote.id, - userId: Not(user.id), - }); - - for (const watcher of watchers) { - nm.push(watcher.userId, type); - } -} - -async function notifyToWatchersOfReplyee(reply: Note, user: { id: User['id']; }, nm: NotificationManager) { - const watchers = await NoteWatchings.findBy({ - noteId: reply.id, - userId: Not(user.id), - }); - - for (const watcher of watchers) { - nm.push(watcher.userId, 'reply'); - } -} - -async function createMentionedEvents(mentionedUsers: MinimumUser[], note: Note, nm: NotificationManager) { - for (const u of mentionedUsers.filter(u => Users.isLocalUser(u))) { - const threadMuted = await NoteThreadMutings.findOneBy({ - userId: u.id, - threadId: note.threadId || note.id, - }); - - if (threadMuted) { - continue; - } - - const detailPackedNote = await Notes.pack(note, u, { - detail: true, - }); - - publishMainStream(u.id, 'mention', detailPackedNote); - - const webhooks = (await getActiveWebhooks()).filter(x => x.userId === u.id && x.on.includes('mention')); - for (const webhook of webhooks) { - webhookDeliver(webhook, 'mention', { - note: detailPackedNote, - }); - } - - // Create notification - nm.push(u.id, 'mention'); - } -} - -function saveReply(reply: Note, note: Note) { - Notes.increment({ id: reply.id }, 'repliesCount', 1); -} - -function incNotesCountOfUser(user: { id: User['id']; }) { - Users.createQueryBuilder().update() - .set({ - updatedAt: new Date(), - notesCount: () => '"notesCount" + 1', - }) - .where('id = :id', { id: user.id }) - .execute(); -} - -async function extractMentionedUsers(user: { host: User['host']; }, tokens: mfm.MfmNode[]): Promise { - if (tokens == null) return []; - - const mentions = extractMentions(tokens); - - let mentionedUsers = (await Promise.all(mentions.map(m => - resolveUser(m.username, m.host || user.host).catch(() => null) - ))).filter(x => x != null) as User[]; - - // Drop duplicate users - mentionedUsers = mentionedUsers.filter((u, i, self) => - i === self.findIndex(u2 => u.id === u2.id) - ); - - return mentionedUsers; -} diff --git a/packages/backend/src/services/note/delete.ts b/packages/backend/src/services/note/delete.ts deleted file mode 100644 index 496320016..000000000 --- a/packages/backend/src/services/note/delete.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { Brackets, In } from 'typeorm'; -import { publishNoteStream } from '@/services/stream.js'; -import renderDelete from '@/remote/activitypub/renderer/delete.js'; -import renderAnnounce from '@/remote/activitypub/renderer/announce.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderTombstone from '@/remote/activitypub/renderer/tombstone.js'; -import config from '@/config/index.js'; -import { User, ILocalUser, IRemoteUser } from '@/models/entities/user.js'; -import { Note, IMentionedRemoteUsers } from '@/models/entities/note.js'; -import { Notes, Users, Instances } from '@/models/index.js'; -import { notesChart, perUserNotesChart, instanceChart } from '@/services/chart/index.js'; -import { deliverToFollowers, deliverToUser } from '@/remote/activitypub/deliver-manager.js'; -import { countSameRenotes } from '@/misc/count-same-renotes.js'; -import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc.js'; -import { deliverToRelays } from '../relay.js'; - -/** - * 投稿を削除します。 - * @param user 投稿者 - * @param note 投稿 - */ -export default async function(user: { id: User['id']; uri: User['uri']; host: User['host']; }, note: Note, quiet = false) { - const deletedAt = new Date(); - - // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき - if (note.renoteId && (await countSameRenotes(user.id, note.renoteId, note.id)) === 0) { - Notes.decrement({ id: note.renoteId }, 'renoteCount', 1); - Notes.decrement({ id: note.renoteId }, 'score', 1); - } - - if (note.replyId) { - await Notes.decrement({ id: note.replyId }, 'repliesCount', 1); - } - - if (!quiet) { - publishNoteStream(note.id, 'deleted', { - deletedAt: deletedAt, - }); - - //#region ローカルの投稿なら削除アクティビティを配送 - if (Users.isLocalUser(user) && !note.localOnly) { - let renote: Note | null = null; - - // if deletd note is renote - if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length === 0)) { - renote = await Notes.findOneBy({ - id: note.renoteId, - }); - } - - const content = renderActivity(renote - ? renderUndo(renderAnnounce(renote.uri || `${config.url}/notes/${renote.id}`, note), user) - : renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); - - deliverToConcerned(user, note, content); - } - - // also deliever delete activity to cascaded notes - const cascadingNotes = (await findCascadingNotes(note)).filter(note => !note.localOnly); // filter out local-only notes - for (const cascadingNote of cascadingNotes) { - if (!cascadingNote.user) continue; - if (!Users.isLocalUser(cascadingNote.user)) continue; - const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${cascadingNote.id}`), cascadingNote.user)); - deliverToConcerned(cascadingNote.user, cascadingNote, content); - } - //#endregion - - // 統計を更新 - notesChart.update(note, false); - perUserNotesChart.update(user, note, false); - - if (Users.isRemoteUser(user)) { - registerOrFetchInstanceDoc(user.host).then(i => { - Instances.decrement({ id: i.id }, 'notesCount', 1); - instanceChart.updateNote(i.host, note, false); - }); - } - } - - await Notes.delete({ - id: note.id, - userId: user.id, - }); -} - -async function findCascadingNotes(note: Note) { - const cascadingNotes: Note[] = []; - - const recursive = async (noteId: string) => { - const query = Notes.createQueryBuilder('note') - .where('note.replyId = :noteId', { noteId }) - .orWhere(new Brackets(q => { - q.where('note.renoteId = :noteId', { noteId }) - .andWhere('note.text IS NOT NULL'); - })) - .leftJoinAndSelect('note.user', 'user'); - const replies = await query.getMany(); - for (const reply of replies) { - cascadingNotes.push(reply); - await recursive(reply.id); - } - }; - await recursive(note.id); - - return cascadingNotes.filter(note => note.userHost === null); // filter out non-local users -} - -async function getMentionedRemoteUsers(note: Note) { - const where = [] as any[]; - - // mention / reply / dm - const uris = (JSON.parse(note.mentionedRemoteUsers) as IMentionedRemoteUsers).map(x => x.uri); - if (uris.length > 0) { - where.push( - { uri: In(uris) }, - ); - } - - // renote / quote - if (note.renoteUserId) { - where.push({ - id: note.renoteUserId, - }); - } - - if (where.length === 0) return []; - - return await Users.find({ - where, - }) as IRemoteUser[]; -} - -async function deliverToConcerned(user: { id: ILocalUser['id']; host: null; }, note: Note, content: any) { - deliverToFollowers(user, content); - deliverToRelays(user, content); - const remoteUsers = await getMentionedRemoteUsers(note); - for (const remoteUser of remoteUsers) { - deliverToUser(user, content, remoteUser); - } -} diff --git a/packages/backend/src/services/note/polls/update.ts b/packages/backend/src/services/note/polls/update.ts deleted file mode 100644 index 68cbb9835..000000000 --- a/packages/backend/src/services/note/polls/update.ts +++ /dev/null @@ -1,21 +0,0 @@ -import renderUpdate from '@/remote/activitypub/renderer/update.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import renderNote from '@/remote/activitypub/renderer/note.js'; -import { Users, Notes } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { deliverToFollowers } from '@/remote/activitypub/deliver-manager.js'; -import { deliverToRelays } from '../../relay.js'; - -export async function deliverQuestionUpdate(noteId: Note['id']) { - const note = await Notes.findOneBy({ id: noteId }); - if (note == null) throw new Error('note not found'); - - const user = await Users.findOneBy({ id: note.userId }); - if (user == null) throw new Error('note not found'); - - if (Users.isLocalUser(user)) { - const content = renderActivity(renderUpdate(await renderNote(note, false), user)); - deliverToFollowers(user, content); - deliverToRelays(user, content); - } -} diff --git a/packages/backend/src/services/note/polls/vote.ts b/packages/backend/src/services/note/polls/vote.ts deleted file mode 100644 index 84d98769d..000000000 --- a/packages/backend/src/services/note/polls/vote.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { publishNoteStream } from '@/services/stream.js'; -import { CacheableUser, User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { PollVotes, NoteWatchings, Polls, Blockings } from '@/models/index.js'; -import { Not } from 'typeorm'; -import { genId } from '@/misc/gen-id.js'; -import { createNotification } from '../../create-notification.js'; - -export default async function(user: CacheableUser, note: Note, choice: number) { - const poll = await Polls.findOneBy({ noteId: note.id }); - - if (poll == null) throw new Error('poll not found'); - - // Check whether is valid choice - if (poll.choices[choice] == null) throw new Error('invalid choice param'); - - // Check blocking - if (note.userId !== user.id) { - const block = await Blockings.findOneBy({ - blockerId: note.userId, - blockeeId: user.id, - }); - if (block) { - throw new Error('blocked'); - } - } - - // if already voted - const exist = await PollVotes.findBy({ - noteId: note.id, - userId: user.id, - }); - - if (poll.multiple) { - if (exist.some(x => x.choice === choice)) { - throw new Error('already voted'); - } - } else if (exist.length !== 0) { - throw new Error('already voted'); - } - - // Create vote - await PollVotes.insert({ - id: genId(), - createdAt: new Date(), - noteId: note.id, - userId: user.id, - choice: choice, - }); - - // Increment votes count - const index = choice + 1; // In SQL, array index is 1 based - await Polls.query(`UPDATE poll SET votes[${index}] = votes[${index}] + 1 WHERE "noteId" = '${poll.noteId}'`); - - publishNoteStream(note.id, 'pollVoted', { - choice: choice, - userId: user.id, - }); - - // Notify - createNotification(note.userId, 'pollVote', { - notifierId: user.id, - noteId: note.id, - choice: choice, - }); - - // Fetch watchers - NoteWatchings.findBy({ - noteId: note.id, - userId: Not(user.id), - }) - .then(watchers => { - for (const watcher of watchers) { - createNotification(watcher.userId, 'pollVote', { - notifierId: user.id, - noteId: note.id, - choice: choice, - }); - } - }); -} diff --git a/packages/backend/src/services/note/reaction/create.ts b/packages/backend/src/services/note/reaction/create.ts deleted file mode 100644 index 83d302826..000000000 --- a/packages/backend/src/services/note/reaction/create.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { publishNoteStream } from '@/services/stream.js'; -import { renderLike } from '@/remote/activitypub/renderer/like.js'; -import DeliverManager from '@/remote/activitypub/deliver-manager.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { toDbReaction, decodeReaction } from '@/misc/reaction-lib.js'; -import { User, IRemoteUser } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { NoteReactions, Users, NoteWatchings, Notes, Emojis, Blockings } from '@/models/index.js'; -import { IsNull, Not } from 'typeorm'; -import { perUserReactionsChart } from '@/services/chart/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { createNotification } from '../../create-notification.js'; -import deleteReaction from './delete.js'; -import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; -import { NoteReaction } from '@/models/entities/note-reaction.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; - -export default async (user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) => { - // Check blocking - if (note.userId !== user.id) { - const block = await Blockings.findOneBy({ - blockerId: note.userId, - blockeeId: user.id, - }); - if (block) { - throw new IdentifiableError('e70412a4-7197-4726-8e74-f3e0deb92aa7'); - } - } - - // check visibility - if (!await Notes.isVisibleForMe(note, user.id)) { - throw new IdentifiableError('68e9d2d1-48bf-42c2-b90a-b20e09fd3d48', 'Note not accessible for you.'); - } - - // TODO: cache - reaction = await toDbReaction(reaction, user.host); - - const record: NoteReaction = { - id: genId(), - createdAt: new Date(), - noteId: note.id, - userId: user.id, - reaction, - }; - - // Create reaction - try { - await NoteReactions.insert(record); - } catch (e) { - if (isDuplicateKeyValueError(e)) { - const exists = await NoteReactions.findOneByOrFail({ - noteId: note.id, - userId: user.id, - }); - - if (exists.reaction !== reaction) { - // 別のリアクションがすでにされていたら置き換える - await deleteReaction(user, note); - await NoteReactions.insert(record); - } else { - // 同じリアクションがすでにされていたらエラー - throw new IdentifiableError('51c42bb4-931a-456b-bff7-e5a8a70dd298'); - } - } else { - throw e; - } - } - - // Increment reactions count - const sql = `jsonb_set("reactions", '{${reaction}}', (COALESCE("reactions"->>'${reaction}', '0')::int + 1)::text::jsonb)`; - await Notes.createQueryBuilder().update() - .set({ - reactions: () => sql, - score: () => '"score" + 1', - }) - .where('id = :id', { id: note.id }) - .execute(); - - perUserReactionsChart.update(user, note); - - // カスタム絵文字リアクションだったら絵文字情報も送る - const decodedReaction = decodeReaction(reaction); - - const emoji = await Emojis.findOne({ - where: { - name: decodedReaction.name, - host: decodedReaction.host ?? IsNull(), - }, - select: ['name', 'host', 'originalUrl', 'publicUrl'], - }); - - publishNoteStream(note.id, 'reacted', { - reaction: decodedReaction.reaction, - emoji: emoji != null ? { - name: emoji.host ? `${emoji.name}@${emoji.host}` : `${emoji.name}@.`, - url: emoji.publicUrl || emoji.originalUrl, // || emoji.originalUrl してるのは後方互換性のため - } : null, - userId: user.id, - }); - - // リアクションされたユーザーがローカルユーザーなら通知を作成 - if (note.userHost === null) { - createNotification(note.userId, 'reaction', { - notifierId: user.id, - noteId: note.id, - reaction: reaction, - }); - } - - // Fetch watchers - NoteWatchings.findBy({ - noteId: note.id, - userId: Not(user.id), - }).then(watchers => { - for (const watcher of watchers) { - createNotification(watcher.userId, 'reaction', { - notifierId: user.id, - noteId: note.id, - reaction: reaction, - }); - } - }); - - //#region 配信 - if (Users.isLocalUser(user) && !note.localOnly) { - const content = renderActivity(await renderLike(record, note)); - const dm = new DeliverManager(user, content); - if (note.userHost !== null) { - const reactee = await Users.findOneBy({ id: note.userId }); - dm.addDirectRecipe(reactee as IRemoteUser); - } - - if (['public', 'home', 'followers'].includes(note.visibility)) { - dm.addFollowersRecipe(); - } else if (note.visibility === 'specified') { - const visibleUsers = await Promise.all(note.visibleUserIds.map(id => Users.findOneBy({ id }))); - for (const u of visibleUsers.filter(u => u && Users.isRemoteUser(u))) { - dm.addDirectRecipe(u as IRemoteUser); - } - } - - dm.execute(); - } - //#endregion -}; diff --git a/packages/backend/src/services/note/reaction/delete.ts b/packages/backend/src/services/note/reaction/delete.ts deleted file mode 100644 index a7cbcb1c1..000000000 --- a/packages/backend/src/services/note/reaction/delete.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { publishNoteStream } from '@/services/stream.js'; -import { renderLike } from '@/remote/activitypub/renderer/like.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import DeliverManager from '@/remote/activitypub/deliver-manager.js'; -import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { User, IRemoteUser } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { NoteReactions, Users, Notes } from '@/models/index.js'; -import { decodeReaction } from '@/misc/reaction-lib.js'; - -export default async (user: { id: User['id']; host: User['host']; }, note: Note) => { - // if already unreacted - const exist = await NoteReactions.findOneBy({ - noteId: note.id, - userId: user.id, - }); - - if (exist == null) { - throw new IdentifiableError('60527ec9-b4cb-4a88-a6bd-32d3ad26817d', 'not reacted'); - } - - // Delete reaction - const result = await NoteReactions.delete(exist.id); - - if (result.affected !== 1) { - throw new IdentifiableError('60527ec9-b4cb-4a88-a6bd-32d3ad26817d', 'not reacted'); - } - - // Decrement reactions count - const sql = `jsonb_set("reactions", '{${exist.reaction}}', (COALESCE("reactions"->>'${exist.reaction}', '0')::int - 1)::text::jsonb)`; - await Notes.createQueryBuilder().update() - .set({ - reactions: () => sql, - }) - .where('id = :id', { id: note.id }) - .execute(); - - Notes.decrement({ id: note.id }, 'score', 1); - - publishNoteStream(note.id, 'unreacted', { - reaction: decodeReaction(exist.reaction).reaction, - userId: user.id, - }); - - //#region 配信 - if (Users.isLocalUser(user) && !note.localOnly) { - const content = renderActivity(renderUndo(await renderLike(exist, note), user)); - const dm = new DeliverManager(user, content); - if (note.userHost !== null) { - const reactee = await Users.findOneBy({ id: note.userId }); - dm.addDirectRecipe(reactee as IRemoteUser); - } - dm.addFollowersRecipe(); - dm.execute(); - } - //#endregion -}; diff --git a/packages/backend/src/services/note/read.ts b/packages/backend/src/services/note/read.ts deleted file mode 100644 index 915a9e9ee..000000000 --- a/packages/backend/src/services/note/read.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { publishMainStream } from '@/services/stream.js'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; -import { NoteUnreads, AntennaNotes, Users, Followings, ChannelFollowings } from '@/models/index.js'; -import { Not, IsNull, In } from 'typeorm'; -import { Channel } from '@/models/entities/channel.js'; -import { checkHitAntenna } from '@/misc/check-hit-antenna.js'; -import { getAntennas } from '@/misc/antenna-cache.js'; -import { readNotificationByQuery } from '@/server/api/common/read-notification.js'; -import { Packed } from '@/misc/schema.js'; - -/** - * Mark notes as read - */ -export default async function( - userId: User['id'], - notes: (Note | Packed<'Note'>)[], - info?: { - following: Set; - followingChannels: Set; - } -) { - const following = info?.following ? info.following : new Set((await Followings.find({ - where: { - followerId: userId, - }, - select: ['followeeId'], - })).map(x => x.followeeId)); - const followingChannels = info?.followingChannels ? info.followingChannels : new Set((await ChannelFollowings.find({ - where: { - followerId: userId, - }, - select: ['followeeId'], - })).map(x => x.followeeId)); - - const myAntennas = (await getAntennas()).filter(a => a.userId === userId); - const readMentions: (Note | Packed<'Note'>)[] = []; - const readSpecifiedNotes: (Note | Packed<'Note'>)[] = []; - const readChannelNotes: (Note | Packed<'Note'>)[] = []; - const readAntennaNotes: (Note | Packed<'Note'>)[] = []; - - for (const note of notes) { - if (note.mentions && note.mentions.includes(userId)) { - readMentions.push(note); - } else if (note.visibleUserIds && note.visibleUserIds.includes(userId)) { - readSpecifiedNotes.push(note); - } - - if (note.channelId && followingChannels.has(note.channelId)) { - readChannelNotes.push(note); - } - - if (note.user != null) { // たぶんnullになることは無いはずだけど一応 - for (const antenna of myAntennas) { - if (await checkHitAntenna(antenna, note, note.user, undefined, Array.from(following))) { - readAntennaNotes.push(note); - } - } - } - } - - if ((readMentions.length > 0) || (readSpecifiedNotes.length > 0) || (readChannelNotes.length > 0)) { - // Remove the record - await NoteUnreads.delete({ - userId: userId, - noteId: In([...readMentions.map(n => n.id), ...readSpecifiedNotes.map(n => n.id), ...readChannelNotes.map(n => n.id)]), - }); - - // TODO: ↓まとめてクエリしたい - - NoteUnreads.countBy({ - userId: userId, - isMentioned: true, - }).then(mentionsCount => { - if (mentionsCount === 0) { - // 全て既読になったイベントを発行 - publishMainStream(userId, 'readAllUnreadMentions'); - } - }); - - NoteUnreads.countBy({ - userId: userId, - isSpecified: true, - }).then(specifiedCount => { - if (specifiedCount === 0) { - // 全て既読になったイベントを発行 - publishMainStream(userId, 'readAllUnreadSpecifiedNotes'); - } - }); - - NoteUnreads.countBy({ - userId: userId, - noteChannelId: Not(IsNull()), - }).then(channelNoteCount => { - if (channelNoteCount === 0) { - // 全て既読になったイベントを発行 - publishMainStream(userId, 'readAllChannels'); - } - }); - - readNotificationByQuery(userId, { - noteId: In([...readMentions.map(n => n.id), ...readSpecifiedNotes.map(n => n.id)]), - }); - } - - if (readAntennaNotes.length > 0) { - await AntennaNotes.update({ - antennaId: In(myAntennas.map(a => a.id)), - noteId: In(readAntennaNotes.map(n => n.id)), - }, { - read: true, - }); - - // TODO: まとめてクエリしたい - for (const antenna of myAntennas) { - const count = await AntennaNotes.countBy({ - antennaId: antenna.id, - read: false, - }); - - if (count === 0) { - publishMainStream(userId, 'readAntenna', antenna); - } - } - - Users.getHasUnreadAntenna(userId).then(unread => { - if (!unread) { - publishMainStream(userId, 'readAllAntennas'); - } - }); - } -} diff --git a/packages/backend/src/services/note/unread.ts b/packages/backend/src/services/note/unread.ts deleted file mode 100644 index d9ed711e0..000000000 --- a/packages/backend/src/services/note/unread.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Note } from '@/models/entities/note.js'; -import { publishMainStream } from '@/services/stream.js'; -import { User } from '@/models/entities/user.js'; -import { Mutings, NoteThreadMutings, NoteUnreads } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; - -export async function insertNoteUnread(userId: User['id'], note: Note, params: { - // NOTE: isSpecifiedがtrueならisMentionedは必ずfalse - isSpecified: boolean; - isMentioned: boolean; -}) { - //#region ミュートしているなら無視 - // TODO: 現在の仕様ではChannelにミュートは適用されないのでよしなにケアする - const mute = await Mutings.findBy({ - muterId: userId, - }); - if (mute.map(m => m.muteeId).includes(note.userId)) return; - //#endregion - - // スレッドミュート - const threadMute = await NoteThreadMutings.findOneBy({ - userId: userId, - threadId: note.threadId || note.id, - }); - if (threadMute) return; - - const unread = { - id: genId(), - noteId: note.id, - userId: userId, - isSpecified: params.isSpecified, - isMentioned: params.isMentioned, - noteChannelId: note.channelId, - noteUserId: note.userId, - }; - - await NoteUnreads.insert(unread); - - // 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する - setTimeout(async () => { - const exist = await NoteUnreads.findOneBy({ id: unread.id }); - - if (exist == null) return; - - if (params.isMentioned) { - publishMainStream(userId, 'unreadMention', note.id); - } - if (params.isSpecified) { - publishMainStream(userId, 'unreadSpecifiedNote', note.id); - } - if (note.channelId) { - publishMainStream(userId, 'unreadChannel', note.id); - } - }, 2000); -} diff --git a/packages/backend/src/services/note/unwatch.ts b/packages/backend/src/services/note/unwatch.ts deleted file mode 100644 index 3964b2ba5..000000000 --- a/packages/backend/src/services/note/unwatch.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { NoteWatchings } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; - -export default async (me: User['id'], note: Note) => { - await NoteWatchings.delete({ - noteId: note.id, - userId: me, - }); -}; diff --git a/packages/backend/src/services/note/watch.ts b/packages/backend/src/services/note/watch.ts deleted file mode 100644 index 2210c44a7..000000000 --- a/packages/backend/src/services/note/watch.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { NoteWatchings } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { NoteWatching } from '@/models/entities/note-watching.js'; - -export default async (me: User['id'], note: Note) => { - // 自分の投稿はwatchできない - if (me === note.userId) { - return; - } - - await NoteWatchings.insert({ - id: genId(), - createdAt: new Date(), - noteId: note.id, - userId: me, - noteUserId: note.userId, - } as NoteWatching); -}; diff --git a/packages/backend/src/services/push-notification.ts b/packages/backend/src/services/push-notification.ts deleted file mode 100644 index 393a23d05..000000000 --- a/packages/backend/src/services/push-notification.ts +++ /dev/null @@ -1,85 +0,0 @@ -import push from 'web-push'; -import config from '@/config/index.js'; -import { SwSubscriptions } from '@/models/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Packed } from '@/misc/schema.js'; -import { getNoteSummary } from '@/misc/get-note-summary.js'; - -// Defined also packages/sw/types.ts#L14-L21 -type pushNotificationsTypes = { - 'notification': Packed<'Notification'>; - 'unreadMessagingMessage': Packed<'MessagingMessage'>; - 'readNotifications': { notificationIds: string[] }; - 'readAllNotifications': undefined; - 'readAllMessagingMessages': undefined; - 'readAllMessagingMessagesOfARoom': { userId: string } | { groupId: string }; -}; - -// プッシュメッセージサーバーには文字数制限があるため、内容を削減します -function truncateNotification(notification: Packed<'Notification'>): any { - if (notification.note) { - return { - ...notification, - note: { - ...notification.note, - // textをgetNoteSummaryしたものに置き換える - text: getNoteSummary(notification.type === 'renote' ? notification.note.renote as Packed<'Note'> : notification.note), - - cw: undefined, - reply: undefined, - renote: undefined, - user: undefined as any, // 通知を受け取ったユーザーである場合が多いのでこれも捨てる - } - }; - } - - return notification; -} - -export async function pushNotification(userId: string, type: T, body: pushNotificationsTypes[T]) { - const meta = await fetchMeta(); - - if (!meta.enableServiceWorker || meta.swPublicKey == null || meta.swPrivateKey == null) return; - - // アプリケーションの連絡先と、サーバーサイドの鍵ペアの情報を登録 - push.setVapidDetails(config.url, - meta.swPublicKey, - meta.swPrivateKey); - - // Fetch - const subscriptions = await SwSubscriptions.findBy({ - userId: userId, - }); - - for (const subscription of subscriptions) { - const pushSubscription = { - endpoint: subscription.endpoint, - keys: { - auth: subscription.auth, - p256dh: subscription.publickey, - }, - }; - - push.sendNotification(pushSubscription, JSON.stringify({ - type, - body: type === 'notification' ? truncateNotification(body as Packed<'Notification'>) : body, - userId, - dateTime: (new Date()).getTime(), - }), { - proxy: config.proxy, - }).catch((err: any) => { - //swLogger.info(err.statusCode); - //swLogger.info(err.headers); - //swLogger.info(err.body); - - if (err.statusCode === 410) { - SwSubscriptions.delete({ - userId: userId, - endpoint: subscription.endpoint, - auth: subscription.auth, - publickey: subscription.publickey, - }); - } - }); - } -} diff --git a/packages/backend/src/services/register-or-fetch-instance-doc.ts b/packages/backend/src/services/register-or-fetch-instance-doc.ts deleted file mode 100644 index df7d125d0..000000000 --- a/packages/backend/src/services/register-or-fetch-instance-doc.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Instance } from '@/models/entities/instance.js'; -import { Instances } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { toPuny } from '@/misc/convert-host.js'; -import { Cache } from '@/misc/cache.js'; - -const cache = new Cache(1000 * 60 * 60); - -export async function registerOrFetchInstanceDoc(host: string): Promise { - host = toPuny(host); - - const cached = cache.get(host); - if (cached) return cached; - - const index = await Instances.findOneBy({ host }); - - if (index == null) { - const i = await Instances.insert({ - id: genId(), - host, - caughtAt: new Date(), - lastCommunicatedAt: new Date(), - }).then(x => Instances.findOneByOrFail(x.identifiers[0])); - - cache.set(host, i); - return i; - } else { - cache.set(host, index); - return index; - } -} diff --git a/packages/backend/src/services/relay.ts b/packages/backend/src/services/relay.ts deleted file mode 100644 index 6bc430443..000000000 --- a/packages/backend/src/services/relay.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { IsNull } from 'typeorm'; -import { renderFollowRelay } from '@/remote/activitypub/renderer/follow-relay.js'; -import { renderActivity, attachLdSignature } from '@/remote/activitypub/renderer/index.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { deliver } from '@/queue/index.js'; -import { ILocalUser, User } from '@/models/entities/user.js'; -import { Users, Relays } from '@/models/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { Cache } from '@/misc/cache.js'; -import { Relay } from '@/models/entities/relay.js'; -import { createSystemUser } from './create-system-user.js'; - -const ACTOR_USERNAME = 'relay.actor' as const; - -const relaysCache = new Cache(1000 * 60 * 10); - -export async function getRelayActor(): Promise { - const user = await Users.findOneBy({ - host: IsNull(), - username: ACTOR_USERNAME, - }); - - if (user) return user as ILocalUser; - - const created = await createSystemUser(ACTOR_USERNAME); - return created as ILocalUser; -} - -export async function addRelay(inbox: string) { - const relay = await Relays.insert({ - id: genId(), - inbox, - status: 'requesting', - }).then(x => Relays.findOneByOrFail(x.identifiers[0])); - - const relayActor = await getRelayActor(); - const follow = await renderFollowRelay(relay, relayActor); - const activity = renderActivity(follow); - deliver(relayActor, activity, relay.inbox); - - return relay; -} - -export async function removeRelay(inbox: string) { - const relay = await Relays.findOneBy({ - inbox, - }); - - if (relay == null) { - throw 'relay not found'; - } - - const relayActor = await getRelayActor(); - const follow = renderFollowRelay(relay, relayActor); - const undo = renderUndo(follow, relayActor); - const activity = renderActivity(undo); - deliver(relayActor, activity, relay.inbox); - - await Relays.delete(relay.id); -} - -export async function listRelay() { - const relays = await Relays.find(); - return relays; -} - -export async function relayAccepted(id: string) { - const result = await Relays.update(id, { - status: 'accepted', - }); - - return JSON.stringify(result); -} - -export async function relayRejected(id: string) { - const result = await Relays.update(id, { - status: 'rejected', - }); - - return JSON.stringify(result); -} - -export async function deliverToRelays(user: { id: User['id']; host: null; }, activity: any) { - if (activity == null) return; - - const relays = await relaysCache.fetch(null, () => Relays.findBy({ - status: 'accepted', - })); - if (relays.length === 0) return; - - // TODO - //const copy = structuredClone(activity); - const copy = JSON.parse(JSON.stringify(activity)); - if (!copy.to) copy.to = ['https://www.w3.org/ns/activitystreams#Public']; - - const signed = await attachLdSignature(copy, user); - - for (const relay of relays) { - deliver(user, signed, relay.inbox); - } -} diff --git a/packages/backend/src/services/send-email-notification.ts b/packages/backend/src/services/send-email-notification.ts deleted file mode 100644 index 4a2f94b42..000000000 --- a/packages/backend/src/services/send-email-notification.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { UserProfiles } from '@/models/index.js'; -import { User } from '@/models/entities/user.js'; -import { sendEmail } from './send-email.js'; -import { I18n } from '@/misc/i18n.js'; -import * as Acct from '@/misc/acct.js'; -// TODO -//const locales = await import('../../../../locales/index.js'); - -// TODO: locale ファイルをクライアント用とサーバー用で分けたい - -async function follow(userId: User['id'], follower: User) { - /* - const userProfile = await UserProfiles.findOneByOrFail({ userId: userId }); - if (!userProfile.email || !userProfile.emailNotificationTypes.includes('follow')) return; - const locale = locales[userProfile.lang || 'ja-JP']; - const i18n = new I18n(locale); - // TODO: render user information html - sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${Acct.toString(follower)})`, `${follower.name} (@${Acct.toString(follower)})`); - */ -} - -async function receiveFollowRequest(userId: User['id'], follower: User) { - /* - const userProfile = await UserProfiles.findOneByOrFail({ userId: userId }); - if (!userProfile.email || !userProfile.emailNotificationTypes.includes('receiveFollowRequest')) return; - const locale = locales[userProfile.lang || 'ja-JP']; - const i18n = new I18n(locale); - // TODO: render user information html - sendEmail(userProfile.email, i18n.t('_email._receiveFollowRequest.title'), `${follower.name} (@${Acct.toString(follower)})`, `${follower.name} (@${Acct.toString(follower)})`); - */ -} - -export const sendEmailNotification = { - follow, - receiveFollowRequest, -}; diff --git a/packages/backend/src/services/send-email.ts b/packages/backend/src/services/send-email.ts deleted file mode 100644 index b35d22548..000000000 --- a/packages/backend/src/services/send-email.ts +++ /dev/null @@ -1,122 +0,0 @@ -import * as nodemailer from 'nodemailer'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import Logger from './logger.js'; -import config from '@/config/index.js'; - -export const logger = new Logger('email'); - -export async function sendEmail(to: string, subject: string, html: string, text: string) { - const meta = await fetchMeta(true); - - const iconUrl = `${config.url}/static-assets/mi-white.png`; - const emailSettingUrl = `${config.url}/settings/email`; - - const enableAuth = meta.smtpUser != null && meta.smtpUser !== ''; - - const transporter = nodemailer.createTransport({ - host: meta.smtpHost, - port: meta.smtpPort, - secure: meta.smtpSecure, - ignoreTLS: !enableAuth, - proxy: config.proxySmtp, - auth: enableAuth ? { - user: meta.smtpUser, - pass: meta.smtpPass, - } : undefined, - } as any); - - try { - // TODO: htmlサニタイズ - const info = await transporter.sendMail({ - from: meta.email!, - to: to, - subject: subject, - text: text, - html: ` - - - - ${ subject } - - - -
-
- -
-
-

${ subject }

-
${ html }
-
- -
- - -`, - }); - - logger.info(`Message sent: ${info.messageId}`); - } catch (err) { - logger.error(err as Error); - throw err; - } -} diff --git a/packages/backend/src/services/stream.ts b/packages/backend/src/services/stream.ts deleted file mode 100644 index 9fa2b9713..000000000 --- a/packages/backend/src/services/stream.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { redisClient } from '../db/redis.js'; -import { User } from '@/models/entities/user.js'; -import { Note } from '@/models/entities/note.js'; -import { UserList } from '@/models/entities/user-list.js'; -import { UserGroup } from '@/models/entities/user-group.js'; -import config from '@/config/index.js'; -import { Antenna } from '@/models/entities/antenna.js'; -import { Channel } from '@/models/entities/channel.js'; -import { - StreamChannels, - AdminStreamTypes, - AntennaStreamTypes, - BroadcastTypes, - ChannelStreamTypes, - DriveStreamTypes, - GroupMessagingStreamTypes, - InternalStreamTypes, - MainStreamTypes, - MessagingIndexStreamTypes, - MessagingStreamTypes, - NoteStreamTypes, - UserListStreamTypes, - UserStreamTypes, -} from '@/server/api/stream/types.js'; -import { Packed } from '@/misc/schema.js'; - -class Publisher { - private publish = (channel: StreamChannels, type: string | null, value?: any): void => { - const message = type == null ? value : value == null ? - { type: type, body: null } : - { type: type, body: value }; - - redisClient.publish(config.host, JSON.stringify({ - channel: channel, - message: message, - })); - }; - - public publishInternalEvent = (type: K, value?: InternalStreamTypes[K]): void => { - this.publish('internal', type, typeof value === 'undefined' ? null : value); - }; - - public publishUserEvent = (userId: User['id'], type: K, value?: UserStreamTypes[K]): void => { - this.publish(`user:${userId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishBroadcastStream = (type: K, value?: BroadcastTypes[K]): void => { - this.publish('broadcast', type, typeof value === 'undefined' ? null : value); - }; - - public publishMainStream = (userId: User['id'], type: K, value?: MainStreamTypes[K]): void => { - this.publish(`mainStream:${userId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishDriveStream = (userId: User['id'], type: K, value?: DriveStreamTypes[K]): void => { - this.publish(`driveStream:${userId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishNoteStream = (noteId: Note['id'], type: K, value?: NoteStreamTypes[K]): void => { - this.publish(`noteStream:${noteId}`, type, { - id: noteId, - body: value, - }); - }; - - public publishChannelStream = (channelId: Channel['id'], type: K, value?: ChannelStreamTypes[K]): void => { - this.publish(`channelStream:${channelId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishUserListStream = (listId: UserList['id'], type: K, value?: UserListStreamTypes[K]): void => { - this.publish(`userListStream:${listId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishAntennaStream = (antennaId: Antenna['id'], type: K, value?: AntennaStreamTypes[K]): void => { - this.publish(`antennaStream:${antennaId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishMessagingStream = (userId: User['id'], otherpartyId: User['id'], type: K, value?: MessagingStreamTypes[K]): void => { - this.publish(`messagingStream:${userId}-${otherpartyId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishGroupMessagingStream = (groupId: UserGroup['id'], type: K, value?: GroupMessagingStreamTypes[K]): void => { - this.publish(`messagingStream:${groupId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishMessagingIndexStream = (userId: User['id'], type: K, value?: MessagingIndexStreamTypes[K]): void => { - this.publish(`messagingIndexStream:${userId}`, type, typeof value === 'undefined' ? null : value); - }; - - public publishNotesStream = (note: Packed<'Note'>): void => { - this.publish('notesStream', null, note); - }; - - public publishAdminStream = (userId: User['id'], type: K, value?: AdminStreamTypes[K]): void => { - this.publish(`adminStream:${userId}`, type, typeof value === 'undefined' ? null : value); - }; -} - -const publisher = new Publisher(); - -export default publisher; - -export const publishInternalEvent = publisher.publishInternalEvent; -export const publishUserEvent = publisher.publishUserEvent; -export const publishBroadcastStream = publisher.publishBroadcastStream; -export const publishMainStream = publisher.publishMainStream; -export const publishDriveStream = publisher.publishDriveStream; -export const publishNoteStream = publisher.publishNoteStream; -export const publishNotesStream = publisher.publishNotesStream; -export const publishChannelStream = publisher.publishChannelStream; -export const publishUserListStream = publisher.publishUserListStream; -export const publishAntennaStream = publisher.publishAntennaStream; -export const publishMessagingStream = publisher.publishMessagingStream; -export const publishGroupMessagingStream = publisher.publishGroupMessagingStream; -export const publishMessagingIndexStream = publisher.publishMessagingIndexStream; -export const publishAdminStream = publisher.publishAdminStream; diff --git a/packages/backend/src/services/suspend-user.ts b/packages/backend/src/services/suspend-user.ts deleted file mode 100644 index e96b06a35..000000000 --- a/packages/backend/src/services/suspend-user.ts +++ /dev/null @@ -1,37 +0,0 @@ -import renderDelete from '@/remote/activitypub/renderer/delete.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { deliver } from '@/queue/index.js'; -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { Users, Followings } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { publishInternalEvent } from '@/services/stream.js'; - -export async function doPostSuspend(user: { id: User['id']; host: User['host'] }) { - publishInternalEvent('userChangeSuspendedState', { id: user.id, isSuspended: true }); - - if (Users.isLocalUser(user)) { - // 知り得る全SharedInboxにDelete配信 - const content = renderActivity(renderDelete(`${config.url}/users/${user.id}`, user)); - - const queue: string[] = []; - - const followings = await Followings.find({ - where: [ - { followerSharedInbox: Not(IsNull()) }, - { followeeSharedInbox: Not(IsNull()) }, - ], - select: ['followerSharedInbox', 'followeeSharedInbox'], - }); - - const inboxes = followings.map(x => x.followerSharedInbox || x.followeeSharedInbox); - - for (const inbox of inboxes) { - if (inbox != null && !queue.includes(inbox)) queue.push(inbox); - } - - for (const inbox of queue) { - deliver(user, content, inbox); - } - } -} diff --git a/packages/backend/src/services/unsuspend-user.ts b/packages/backend/src/services/unsuspend-user.ts deleted file mode 100644 index 44a0d01ca..000000000 --- a/packages/backend/src/services/unsuspend-user.ts +++ /dev/null @@ -1,38 +0,0 @@ -import renderDelete from '@/remote/activitypub/renderer/delete.js'; -import renderUndo from '@/remote/activitypub/renderer/undo.js'; -import { renderActivity } from '@/remote/activitypub/renderer/index.js'; -import { deliver } from '@/queue/index.js'; -import config from '@/config/index.js'; -import { User } from '@/models/entities/user.js'; -import { Users, Followings } from '@/models/index.js'; -import { Not, IsNull } from 'typeorm'; -import { publishInternalEvent } from '@/services/stream.js'; - -export async function doPostUnsuspend(user: User) { - publishInternalEvent('userChangeSuspendedState', { id: user.id, isSuspended: false }); - - if (Users.isLocalUser(user)) { - // 知り得る全SharedInboxにUndo Delete配信 - const content = renderActivity(renderUndo(renderDelete(`${config.url}/users/${user.id}`, user), user)); - - const queue: string[] = []; - - const followings = await Followings.find({ - where: [ - { followerSharedInbox: Not(IsNull()) }, - { followeeSharedInbox: Not(IsNull()) }, - ], - select: ['followerSharedInbox', 'followeeSharedInbox'], - }); - - const inboxes = followings.map(x => x.followerSharedInbox || x.followeeSharedInbox); - - for (const inbox of inboxes) { - if (inbox != null && !queue.includes(inbox)) queue.push(inbox); - } - - for (const inbox of queue) { - deliver(user as any, content, inbox); - } - } -} diff --git a/packages/backend/src/services/user-cache.ts b/packages/backend/src/services/user-cache.ts deleted file mode 100644 index 407301f2f..000000000 --- a/packages/backend/src/services/user-cache.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { CacheableLocalUser, CacheableUser, ILocalUser, User } from '@/models/entities/user.js'; -import { Users } from '@/models/index.js'; -import { Cache } from '@/misc/cache.js'; -import { subsdcriber } from '@/db/redis.js'; - -export const userByIdCache = new Cache(Infinity); -export const localUserByNativeTokenCache = new Cache(Infinity); -export const localUserByIdCache = new Cache(Infinity); -export const uriPersonCache = new Cache(Infinity); - -subsdcriber.on('message', async (_, data) => { - const obj = JSON.parse(data); - - if (obj.channel === 'internal') { - const { type, body } = obj.message; - switch (type) { - case 'userChangeSuspendedState': - case 'userChangeSilencedState': - case 'userChangeModeratorState': - case 'remoteUserUpdated': { - const user = await Users.findOneByOrFail({ id: body.id }); - userByIdCache.set(user.id, user); - for (const [k, v] of uriPersonCache.cache.entries()) { - if (v.value?.id === user.id) { - uriPersonCache.set(k, user); - } - } - if (Users.isLocalUser(user)) { - localUserByNativeTokenCache.set(user.token, user); - localUserByIdCache.set(user.id, user); - } - break; - } - case 'userTokenRegenerated': { - const user = await Users.findOneByOrFail({ id: body.id }) as ILocalUser; - localUserByNativeTokenCache.delete(body.oldToken); - localUserByNativeTokenCache.set(body.newToken, user); - break; - } - default: - break; - } - } -}); diff --git a/packages/backend/src/services/user-list/push.ts b/packages/backend/src/services/user-list/push.ts deleted file mode 100644 index d073afcd3..000000000 --- a/packages/backend/src/services/user-list/push.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { publishUserListStream } from '@/services/stream.js'; -import { User } from '@/models/entities/user.js'; -import { UserList } from '@/models/entities/user-list.js'; -import { UserListJoinings, Users } from '@/models/index.js'; -import { UserListJoining } from '@/models/entities/user-list-joining.js'; -import { genId } from '@/misc/gen-id.js'; -import { fetchProxyAccount } from '@/misc/fetch-proxy-account.js'; -import createFollowing from '../following/create.js'; - -export async function pushUserToUserList(target: User, list: UserList) { - await UserListJoinings.insert({ - id: genId(), - createdAt: new Date(), - userId: target.id, - userListId: list.id, - } as UserListJoining); - - publishUserListStream(list.id, 'userAdded', await Users.pack(target)); - - // このインスタンス内にこのリモートユーザーをフォローしているユーザーがいなくても投稿を受け取るためにダミーのユーザーがフォローしたということにする - if (Users.isRemoteUser(target)) { - const proxy = await fetchProxyAccount(); - if (proxy) { - createFollowing(proxy, target); - } - } -} diff --git a/packages/backend/src/services/validate-email-for-account.ts b/packages/backend/src/services/validate-email-for-account.ts deleted file mode 100644 index b5fa99b93..000000000 --- a/packages/backend/src/services/validate-email-for-account.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { validate as validateEmail } from 'deep-email-validator'; -import { UserProfiles } from '@/models/index.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; - -export async function validateEmailForAccount(emailAddress: string): Promise<{ - available: boolean; - reason: null | 'used' | 'format' | 'disposable' | 'mx' | 'smtp'; -}> { - const meta = await fetchMeta(); - - const exist = await UserProfiles.countBy({ - emailVerified: true, - email: emailAddress, - }); - - const validated = meta.enableActiveEmailValidation ? await validateEmail({ - email: emailAddress, - validateRegex: true, - validateMx: true, - validateTypo: false, // TLDを見ているみたいだけどclubとか弾かれるので - validateDisposable: true, // 捨てアドかどうかチェック - validateSMTP: false, // 日本だと25ポートが殆どのプロバイダーで塞がれていてタイムアウトになるので - }) : { valid: true }; - - const available = exist === 0 && validated.valid; - - return { - available, - reason: available ? null : - exist !== 0 ? 'used' : - validated.reason === 'regex' ? 'format' : - validated.reason === 'disposable' ? 'disposable' : - validated.reason === 'mx' ? 'mx' : - validated.reason === 'smtp' ? 'smtp' : - null, - }; -} diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts deleted file mode 100644 index 573e2faf8..000000000 --- a/packages/backend/src/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const notificationTypes = ['follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app'] as const; - -export const noteVisibilities = ['public', 'home', 'followers', 'specified'] as const; - -export const mutedNoteReasons = ['word', 'manual', 'spam', 'other'] as const; - -export const ffVisibility = ['public', 'followers', 'private'] as const; diff --git a/packages/backend/test/.eslintrc.cjs b/packages/backend/test/.eslintrc.cjs deleted file mode 100644 index d83dc37d2..000000000 --- a/packages/backend/test/.eslintrc.cjs +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - }, - extends: ['../.eslintrc.cjs'], - env: { - node: true, - mocha: true, - }, -}; diff --git a/packages/backend/test/activitypub.ts b/packages/backend/test/activitypub.ts deleted file mode 100644 index f4ae27e5e..000000000 --- a/packages/backend/test/activitypub.ts +++ /dev/null @@ -1,96 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import rndstr from 'rndstr'; -import { initDb } from '../src/db/postgre.js'; -import { initTestDb } from './utils.js'; - -describe('ActivityPub', () => { - before(async () => { - //await initTestDb(); - await initDb(); - }); - - describe('Parse minimum object', () => { - const host = 'https://host1.test'; - const preferredUsername = `${rndstr('A-Z', 4)}${rndstr('a-z', 4)}`; - const actorId = `${host}/users/${preferredUsername.toLowerCase()}`; - - const actor = { - '@context': 'https://www.w3.org/ns/activitystreams', - id: actorId, - type: 'Person', - preferredUsername, - inbox: `${actorId}/inbox`, - outbox: `${actorId}/outbox`, - }; - - const post = { - '@context': 'https://www.w3.org/ns/activitystreams', - id: `${host}/users/${rndstr('0-9a-z', 8)}`, - type: 'Note', - attributedTo: actor.id, - to: 'https://www.w3.org/ns/activitystreams#Public', - content: 'あ', - }; - - it('Minimum Actor', async () => { - const { MockResolver } = await import('./misc/mock-resolver.js'); - const { createPerson } = await import('../src/remote/activitypub/models/person.js'); - - const resolver = new MockResolver(); - resolver._register(actor.id, actor); - - const user = await createPerson(actor.id, resolver); - - assert.deepStrictEqual(user.uri, actor.id); - assert.deepStrictEqual(user.username, actor.preferredUsername); - assert.deepStrictEqual(user.inbox, actor.inbox); - }); - - it('Minimum Note', async () => { - const { MockResolver } = await import('./misc/mock-resolver.js'); - const { createNote } = await import('../src/remote/activitypub/models/note.js'); - - const resolver = new MockResolver(); - resolver._register(actor.id, actor); - resolver._register(post.id, post); - - const note = await createNote(post.id, resolver, true); - - assert.deepStrictEqual(note?.uri, post.id); - assert.deepStrictEqual(note.visibility, 'public'); - assert.deepStrictEqual(note.text, post.content); - }); - }); - - describe('Truncate long name', () => { - const host = 'https://host1.test'; - const preferredUsername = `${rndstr('A-Z', 4)}${rndstr('a-z', 4)}`; - const actorId = `${host}/users/${preferredUsername.toLowerCase()}`; - - const name = rndstr('0-9a-z', 129); - - const actor = { - '@context': 'https://www.w3.org/ns/activitystreams', - id: actorId, - type: 'Person', - preferredUsername, - name, - inbox: `${actorId}/inbox`, - outbox: `${actorId}/outbox`, - }; - - it('Actor', async () => { - const { MockResolver } = await import('./misc/mock-resolver.js'); - const { createPerson } = await import('../src/remote/activitypub/models/person.js'); - - const resolver = new MockResolver(); - resolver._register(actor.id, actor); - - const user = await createPerson(actor.id, resolver); - - assert.deepStrictEqual(user.name, actor.name.substr(0, 128)); - }); - }); -}); diff --git a/packages/backend/test/ap-request.ts b/packages/backend/test/ap-request.ts deleted file mode 100644 index da95c421f..000000000 --- a/packages/backend/test/ap-request.ts +++ /dev/null @@ -1,55 +0,0 @@ -import * as assert from 'assert'; -import httpSignature from 'http-signature'; -import { genRsaKeyPair } from '../src/misc/gen-key-pair.js'; -import { createSignedPost, createSignedGet } from '../src/remote/activitypub/ap-request.js'; - -export const buildParsedSignature = (signingString: string, signature: string, algorithm: string) => { - return { - scheme: 'Signature', - params: { - keyId: 'KeyID', // dummy, not used for verify - algorithm: algorithm, - headers: [ '(request-target)', 'date', 'host', 'digest' ], // dummy, not used for verify - signature: signature, - }, - signingString: signingString, - algorithm: algorithm.toUpperCase(), - keyId: 'KeyID', // dummy, not used for verify - }; -}; - -describe('ap-request', () => { - it('createSignedPost with verify', async () => { - const keypair = await genRsaKeyPair(); - const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey }; - const url = 'https://example.com/inbox'; - const activity = { a: 1 }; - const body = JSON.stringify(activity); - const headers = { - 'User-Agent': 'UA', - }; - - const req = createSignedPost({ key, url, body, additionalHeaders: headers }); - - const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256'); - - const result = httpSignature.verifySignature(parsed, keypair.publicKey); - assert.deepStrictEqual(result, true); - }); - - it('createSignedGet with verify', async () => { - const keypair = await genRsaKeyPair(); - const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey }; - const url = 'https://example.com/outbox'; - const headers = { - 'User-Agent': 'UA', - }; - - const req = createSignedGet({ key, url, additionalHeaders: headers }); - - const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256'); - - const result = httpSignature.verifySignature(parsed, keypair.publicKey); - assert.deepStrictEqual(result, true); - }); -}); diff --git a/packages/backend/test/api.ts b/packages/backend/test/api.ts deleted file mode 100644 index b1b2ecafc..000000000 --- a/packages/backend/test/api.ts +++ /dev/null @@ -1,83 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, react, uploadFile, startServer, shutdownServer } from './utils.js'; - -describe('API', () => { - let p: childProcess.ChildProcess; - let alice: any; - let bob: any; - let carol: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - carol = await signup({ username: 'carol' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - describe('General validation', () => { - it('wrong type', async(async () => { - const res = await request('/test', { - required: true, - string: 42, - }); - assert.strictEqual(res.status, 400); - })); - - it('missing require param', async(async () => { - const res = await request('/test', { - string: 'a', - }); - assert.strictEqual(res.status, 400); - })); - - it('invalid misskey:id (empty string)', async(async () => { - const res = await request('/test', { - required: true, - id: '', - }); - assert.strictEqual(res.status, 400); - })); - - it('valid misskey:id', async(async () => { - const res = await request('/test', { - required: true, - id: '8wvhjghbxu', - }); - assert.strictEqual(res.status, 200); - })); - - it('default value', async(async () => { - const res = await request('/test', { - required: true, - string: 'a', - }); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.body.default, 'hello'); - })); - - it('can set null even if it has default value', async(async () => { - const res = await request('/test', { - required: true, - nullableDefault: null, - }); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.body.nullableDefault, null); - })); - - it('cannot set undefined if it has default value', async(async () => { - const res = await request('/test', { - required: true, - nullableDefault: undefined, - }); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.body.nullableDefault, 'hello'); - })); - }); -}); diff --git a/packages/backend/test/block.ts b/packages/backend/test/block.ts deleted file mode 100644 index b3343813c..000000000 --- a/packages/backend/test/block.ts +++ /dev/null @@ -1,85 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, startServer, shutdownServer } from './utils.js'; - -describe('Block', () => { - let p: childProcess.ChildProcess; - - // alice blocks bob - let alice: any; - let bob: any; - let carol: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - carol = await signup({ username: 'carol' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - it('Block作成', async(async () => { - const res = await request('/blocking/create', { - userId: bob.id, - }, alice); - - assert.strictEqual(res.status, 200); - })); - - it('ブロックされているユーザーをフォローできない', async(async () => { - const res = await request('/following/create', { userId: alice.id }, bob); - - assert.strictEqual(res.status, 400); - assert.strictEqual(res.body.error.id, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0'); - })); - - it('ブロックされているユーザーにリアクションできない', async(async () => { - const note = await post(alice, { text: 'hello' }); - - const res = await request('/notes/reactions/create', { noteId: note.id, reaction: '👍' }, bob); - - assert.strictEqual(res.status, 400); - assert.strictEqual(res.body.error.id, '20ef5475-9f38-4e4c-bd33-de6d979498ec'); - })); - - it('ブロックされているユーザーに返信できない', async(async () => { - const note = await post(alice, { text: 'hello' }); - - const res = await request('/notes/create', { replyId: note.id, text: 'yo' }, bob); - - assert.strictEqual(res.status, 400); - assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3'); - })); - - it('ブロックされているユーザーのノートをRenoteできない', async(async () => { - const note = await post(alice, { text: 'hello' }); - - const res = await request('/notes/create', { renoteId: note.id, text: 'yo' }, bob); - - assert.strictEqual(res.status, 400); - assert.strictEqual(res.body.error.id, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3'); - })); - - // TODO: ユーザーリストに入れられないテスト - - // TODO: ユーザーリストから除外されるテスト - - it('タイムライン(LTL)にブロックされているユーザーの投稿が含まれない', async(async () => { - const aliceNote = await post(alice); - const bobNote = await post(bob); - const carolNote = await post(carol); - - const res = await request('/notes/local-timeline', {}, bob); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.some((note: any) => note.id === aliceNote.id), false); - assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), true); - assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true); - })); -}); diff --git a/packages/backend/test/chart.ts b/packages/backend/test/chart.ts deleted file mode 100644 index ac0844679..000000000 --- a/packages/backend/test/chart.ts +++ /dev/null @@ -1,531 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as lolex from '@sinonjs/fake-timers'; -import TestChart from '../src/services/chart/charts/test.js'; -import TestGroupedChart from '../src/services/chart/charts/test-grouped.js'; -import TestUniqueChart from '../src/services/chart/charts/test-unique.js'; -import TestIntersectionChart from '../src/services/chart/charts/test-intersection.js'; -import { initDb } from '../src/db/postgre.js'; - -describe('Chart', () => { - let testChart: TestChart; - let testGroupedChart: TestGroupedChart; - let testUniqueChart: TestUniqueChart; - let testIntersectionChart: TestIntersectionChart; - let clock: lolex.InstalledClock; - - beforeEach(async () => { - await initDb(true); - - testChart = new TestChart(); - testGroupedChart = new TestGroupedChart(); - testUniqueChart = new TestUniqueChart(); - testIntersectionChart = new TestIntersectionChart(); - - clock = lolex.install({ - now: new Date(Date.UTC(2000, 0, 1, 0, 0, 0)), - shouldClearNativeTimers: true, - }); - }); - - afterEach(() => { - clock.uninstall(); - }); - - it('Can updates', async () => { - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - }); - - it('Can updates (dec)', async () => { - await testChart.decrement(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [1, 0, 0], - inc: [0, 0, 0], - total: [-1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [1, 0, 0], - inc: [0, 0, 0], - total: [-1, 0, 0], - }, - }); - }); - - it('Empty chart', async () => { - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [0, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [0, 0, 0], - }, - }); - }); - - it('Can updates at multiple times at same time', async () => { - await testChart.increment(); - await testChart.increment(); - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [3, 0, 0], - total: [3, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [3, 0, 0], - total: [3, 0, 0], - }, - }); - }); - - it('複数回saveされてもデータの更新は一度だけ', async () => { - await testChart.increment(); - await testChart.save(); - await testChart.save(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - }); - - it('Can updates at different times', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('01:00:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 1, 0], - total: [2, 1, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0], - }, - }); - }); - - // 仕様上はこうなってほしいけど、実装は難しそうなのでskip - /* - it('Can updates at different times without save', async () => { - await testChart.increment(); - - clock.tick('01:00:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 1, 0], - total: [2, 1, 0] - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0] - }, - }); - }); - */ - - it('Can padding', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('02:00:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 1], - total: [2, 1, 1], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0], - }, - }); - }); - - // 要求された範囲にログがひとつもない場合でもパディングできる - it('Can padding from past range', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('05:00:00'); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [1, 1, 1], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - }); - - // 要求された範囲の最も古い箇所に位置するログが存在しない場合でもパディングできる - // Issue #3190 - it('Can padding from past range 2', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('05:00:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [2, 1, 1], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0], - }, - }); - }); - - it('Can specify offset', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('01:00:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); - const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0], - }, - }); - }); - - it('Can specify offset (floor time)', async () => { - clock.tick('00:30:00'); - - await testChart.increment(); - await testChart.save(); - - clock.tick('01:30:00'); - - await testChart.increment(); - await testChart.save(); - - const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); - const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [2, 0, 0], - total: [2, 0, 0], - }, - }); - }); - - describe('Grouped', () => { - it('Can updates', async () => { - await testGroupedChart.increment('alice'); - await testGroupedChart.save(); - - const aliceChartHours = await testGroupedChart.getChart('hour', 3, null, 'alice'); - const aliceChartDays = await testGroupedChart.getChart('day', 3, null, 'alice'); - const bobChartHours = await testGroupedChart.getChart('hour', 3, null, 'bob'); - const bobChartDays = await testGroupedChart.getChart('day', 3, null, 'bob'); - - assert.deepStrictEqual(aliceChartHours, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(aliceChartDays, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(bobChartHours, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [0, 0, 0], - }, - }); - - assert.deepStrictEqual(bobChartDays, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [0, 0, 0], - }, - }); - }); - }); - - describe('Unique increment', () => { - it('Can updates', async () => { - await testUniqueChart.uniqueIncrement('alice'); - await testUniqueChart.uniqueIncrement('alice'); - await testUniqueChart.uniqueIncrement('bob'); - await testUniqueChart.save(); - - const chartHours = await testUniqueChart.getChart('hour', 3, null); - const chartDays = await testUniqueChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: [2, 0, 0], - }); - - assert.deepStrictEqual(chartDays, { - foo: [2, 0, 0], - }); - }); - - describe('Intersection', () => { - it('条件が満たされていない場合はカウントされない', async () => { - await testIntersectionChart.addA('alice'); - await testIntersectionChart.addA('bob'); - await testIntersectionChart.addB('carol'); - await testIntersectionChart.save(); - - const chartHours = await testIntersectionChart.getChart('hour', 3, null); - const chartDays = await testIntersectionChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - a: [2, 0, 0], - b: [1, 0, 0], - aAndB: [0, 0, 0], - }); - - assert.deepStrictEqual(chartDays, { - a: [2, 0, 0], - b: [1, 0, 0], - aAndB: [0, 0, 0], - }); - }); - - it('条件が満たされている場合にカウントされる', async () => { - await testIntersectionChart.addA('alice'); - await testIntersectionChart.addA('bob'); - await testIntersectionChart.addB('carol'); - await testIntersectionChart.addB('alice'); - await testIntersectionChart.save(); - - const chartHours = await testIntersectionChart.getChart('hour', 3, null); - const chartDays = await testIntersectionChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - a: [2, 0, 0], - b: [2, 0, 0], - aAndB: [1, 0, 0], - }); - - assert.deepStrictEqual(chartDays, { - a: [2, 0, 0], - b: [2, 0, 0], - aAndB: [1, 0, 0], - }); - }); - }); - }); - - describe('Resync', () => { - it('Can resync', async () => { - testChart.total = 1; - - await testChart.resync(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [1, 0, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [0, 0, 0], - total: [1, 0, 0], - }, - }); - }); - - it('Can resync (2)', async () => { - await testChart.increment(); - await testChart.save(); - - clock.tick('01:00:00'); - - testChart.total = 100; - - await testChart.resync(); - - const chartHours = await testChart.getChart('hour', 3, null); - const chartDays = await testChart.getChart('day', 3, null); - - assert.deepStrictEqual(chartHours, { - foo: { - dec: [0, 0, 0], - inc: [0, 1, 0], - total: [100, 1, 0], - }, - }); - - assert.deepStrictEqual(chartDays, { - foo: { - dec: [0, 0, 0], - inc: [1, 0, 0], - total: [100, 0, 0], - }, - }); - }); - }); -}); diff --git a/packages/backend/test/docker-compose.yml b/packages/backend/test/docker-compose.yml deleted file mode 100644 index 5f95bec4c..000000000 --- a/packages/backend/test/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - redistest: - image: redis:6 - ports: - - "127.0.0.1:56312:6379" - - dbtest: - image: postgres:13 - ports: - - "127.0.0.1:54312:5432" - environment: - POSTGRES_DB: "test-misskey" - POSTGRES_HOST_AUTH_METHOD: trust diff --git a/packages/backend/test/endpoints.ts b/packages/backend/test/endpoints.ts deleted file mode 100644 index 2aedc25f2..000000000 --- a/packages/backend/test/endpoints.ts +++ /dev/null @@ -1,865 +0,0 @@ -/* -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, react, uploadFile, startServer, shutdownServer } from './utils.js'; - -describe('API: Endpoints', () => { - let p: childProcess.ChildProcess; - let alice: any; - let bob: any; - let carol: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - carol = await signup({ username: 'carol' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - describe('signup', () => { - it('不正なユーザー名でアカウントが作成できない', async(async () => { - const res = await request('/signup', { - username: 'test.', - password: 'test' - }); - assert.strictEqual(res.status, 400); - })); - - it('空のパスワードでアカウントが作成できない', async(async () => { - const res = await request('/signup', { - username: 'test', - password: '' - }); - assert.strictEqual(res.status, 400); - })); - - it('正しくアカウントが作成できる', async(async () => { - const me = { - username: 'test1', - password: 'test1' - }; - - const res = await request('/signup', me); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.username, me.username); - })); - - it('同じユーザー名のアカウントは作成できない', async(async () => { - await signup({ - username: 'test2' - }); - - const res = await request('/signup', { - username: 'test2', - password: 'test2' - }); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('signin', () => { - it('間違ったパスワードでサインインできない', async(async () => { - await signup({ - username: 'test3', - password: 'foo' - }); - - const res = await request('/signin', { - username: 'test3', - password: 'bar' - }); - - assert.strictEqual(res.status, 403); - })); - - it('クエリをインジェクションできない', async(async () => { - await signup({ - username: 'test4' - }); - - const res = await request('/signin', { - username: 'test4', - password: { - $gt: '' - } - }); - - assert.strictEqual(res.status, 400); - })); - - it('正しい情報でサインインできる', async(async () => { - await signup({ - username: 'test5', - password: 'foo' - }); - - const res = await request('/signin', { - username: 'test5', - password: 'foo' - }); - - assert.strictEqual(res.status, 200); - })); - }); - - describe('i/update', () => { - it('アカウント設定を更新できる', async(async () => { - const myName = '大室櫻子'; - const myLocation = '七森中'; - const myBirthday = '2000-09-07'; - - const res = await request('/i/update', { - name: myName, - location: myLocation, - birthday: myBirthday - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, myName); - assert.strictEqual(res.body.location, myLocation); - assert.strictEqual(res.body.birthday, myBirthday); - })); - - it('名前を空白にできない', async(async () => { - const res = await request('/i/update', { - name: ' ' - }, alice); - assert.strictEqual(res.status, 400); - })); - - it('誕生日の設定を削除できる', async(async () => { - await request('/i/update', { - birthday: '2000-09-07' - }, alice); - - const res = await request('/i/update', { - birthday: null - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.birthday, null); - })); - - it('不正な誕生日の形式で怒られる', async(async () => { - const res = await request('/i/update', { - birthday: '2000/09/07' - }, alice); - assert.strictEqual(res.status, 400); - })); - }); - - describe('users/show', () => { - it('ユーザーが取得できる', async(async () => { - const res = await request('/users/show', { - userId: alice.id - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.id, alice.id); - })); - - it('ユーザーが存在しなかったら怒る', async(async () => { - const res = await request('/users/show', { - userId: '000000000000000000000000' - }); - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/users/show', { - userId: 'kyoppie' - }); - assert.strictEqual(res.status, 400); - })); - }); - - describe('notes/show', () => { - it('投稿が取得できる', async(async () => { - const myPost = await post(alice, { - text: 'test' - }); - - const res = await request('/notes/show', { - noteId: myPost.id - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.id, myPost.id); - assert.strictEqual(res.body.text, myPost.text); - })); - - it('投稿が存在しなかったら怒る', async(async () => { - const res = await request('/notes/show', { - noteId: '000000000000000000000000' - }); - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/notes/show', { - noteId: 'kyoppie' - }); - assert.strictEqual(res.status, 400); - })); - }); - - describe('notes/reactions/create', () => { - it('リアクションできる', async(async () => { - const bobPost = await post(bob); - - const alice = await signup({ username: 'alice' }); - const res = await request('/notes/reactions/create', { - noteId: bobPost.id, - reaction: '🚀', - }, alice); - - assert.strictEqual(res.status, 204); - - const resNote = await request('/notes/show', { - noteId: bobPost.id, - }, alice); - - assert.strictEqual(resNote.status, 200); - assert.strictEqual(resNote.body.reactions['🚀'], [alice.id]); - })); - - it('自分の投稿にもリアクションできる', async(async () => { - const myPost = await post(alice); - - const res = await request('/notes/reactions/create', { - noteId: myPost.id, - reaction: '🚀', - }, alice); - - assert.strictEqual(res.status, 204); - })); - - it('二重にリアクションできない', async(async () => { - const bobPost = await post(bob); - - await react(alice, bobPost, 'like'); - - const res = await request('/notes/reactions/create', { - noteId: bobPost.id, - reaction: '🚀', - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('存在しない投稿にはリアクションできない', async(async () => { - const res = await request('/notes/reactions/create', { - noteId: '000000000000000000000000', - reaction: '🚀', - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('空のパラメータで怒られる', async(async () => { - const res = await request('/notes/reactions/create', {}, alice); - - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/notes/reactions/create', { - noteId: 'kyoppie', - reaction: '🚀', - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('following/create', () => { - it('フォローできる', async(async () => { - const res = await request('/following/create', { - userId: alice.id - }, bob); - - assert.strictEqual(res.status, 200); - })); - - it('既にフォローしている場合は怒る', async(async () => { - const res = await request('/following/create', { - userId: alice.id - }, bob); - - assert.strictEqual(res.status, 400); - })); - - it('存在しないユーザーはフォローできない', async(async () => { - const res = await request('/following/create', { - userId: '000000000000000000000000' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('自分自身はフォローできない', async(async () => { - const res = await request('/following/create', { - userId: alice.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('空のパラメータで怒られる', async(async () => { - const res = await request('/following/create', {}, alice); - - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/following/create', { - userId: 'foo' - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('following/delete', () => { - it('フォロー解除できる', async(async () => { - await request('/following/create', { - userId: alice.id - }, bob); - - const res = await request('/following/delete', { - userId: alice.id - }, bob); - - assert.strictEqual(res.status, 200); - })); - - it('フォローしていない場合は怒る', async(async () => { - const res = await request('/following/delete', { - userId: alice.id - }, bob); - - assert.strictEqual(res.status, 400); - })); - - it('存在しないユーザーはフォロー解除できない', async(async () => { - const res = await request('/following/delete', { - userId: '000000000000000000000000' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('自分自身はフォロー解除できない', async(async () => { - const res = await request('/following/delete', { - userId: alice.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('空のパラメータで怒られる', async(async () => { - const res = await request('/following/delete', {}, alice); - - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/following/delete', { - userId: 'kyoppie' - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('drive', () => { - it('ドライブ情報を取得できる', async(async () => { - await uploadFile({ - userId: alice.id, - size: 256 - }); - await uploadFile({ - userId: alice.id, - size: 512 - }); - await uploadFile({ - userId: alice.id, - size: 1024 - }); - const res = await request('/drive', {}, alice); - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - expect(res.body).have.property('usage').eql(1792); - })); - }); - - describe('drive/files/create', () => { - it('ファイルを作成できる', async(async () => { - const res = await uploadFile(alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, 'Lenna.png'); - })); - - it('ファイルに名前を付けられる', async(async () => { - const res = await assert.request(server) - .post('/drive/files/create') - .field('i', alice.token) - .field('name', 'Belmond.png') - .attach('file', fs.readFileSync(__dirname + '/resources/Lenna.png'), 'Lenna.png'); - - expect(res).have.status(200); - expect(res.body).be.a('object'); - expect(res.body).have.property('name').eql('Belmond.png'); - })); - - it('ファイル無しで怒られる', async(async () => { - const res = await request('/drive/files/create', {}, alice); - - assert.strictEqual(res.status, 400); - })); - - it('SVGファイルを作成できる', async(async () => { - const res = await uploadFile(alice, __dirname + '/resources/image.svg'); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, 'image.svg'); - assert.strictEqual(res.body.type, 'image/svg+xml'); - })); - }); - - describe('drive/files/update', () => { - it('名前を更新できる', async(async () => { - const file = await uploadFile(alice); - const newName = 'いちごパスタ.png'; - - const res = await request('/drive/files/update', { - fileId: file.id, - name: newName - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, newName); - })); - - it('他人のファイルは更新できない', async(async () => { - const file = await uploadFile(bob); - - const res = await request('/drive/files/update', { - fileId: file.id, - name: 'いちごパスタ.png' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('親フォルダを更新できる', async(async () => { - const file = await uploadFile(alice); - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - const res = await request('/drive/files/update', { - fileId: file.id, - folderId: folder.id - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.folderId, folder.id); - })); - - it('親フォルダを無しにできる', async(async () => { - const file = await uploadFile(alice); - - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - await request('/drive/files/update', { - fileId: file.id, - folderId: folder.id - }, alice); - - const res = await request('/drive/files/update', { - fileId: file.id, - folderId: null - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.folderId, null); - })); - - it('他人のフォルダには入れられない', async(async () => { - const file = await uploadFile(alice); - const folder = (await request('/drive/folders/create', { - name: 'test' - }, bob)).body; - - const res = await request('/drive/files/update', { - fileId: file.id, - folderId: folder.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('存在しないフォルダで怒られる', async(async () => { - const file = await uploadFile(alice); - - const res = await request('/drive/files/update', { - fileId: file.id, - folderId: '000000000000000000000000' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('不正なフォルダIDで怒られる', async(async () => { - const file = await uploadFile(alice); - - const res = await request('/drive/files/update', { - fileId: file.id, - folderId: 'foo' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('ファイルが存在しなかったら怒る', async(async () => { - const res = await request('/drive/files/update', { - fileId: '000000000000000000000000', - name: 'いちごパスタ.png' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('間違ったIDで怒られる', async(async () => { - const res = await request('/drive/files/update', { - fileId: 'kyoppie', - name: 'いちごパスタ.png' - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('drive/folders/create', () => { - it('フォルダを作成できる', async(async () => { - const res = await request('/drive/folders/create', { - name: 'test' - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, 'test'); - })); - }); - - describe('drive/folders/update', () => { - it('名前を更新できる', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - name: 'new name' - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.name, 'new name'); - })); - - it('他人のフォルダを更新できない', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, bob)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - name: 'new name' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('親フォルダを更新できる', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const parentFolder = (await request('/drive/folders/create', { - name: 'parent' - }, alice)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: parentFolder.id - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.parentId, parentFolder.id); - })); - - it('親フォルダを無しに更新できる', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const parentFolder = (await request('/drive/folders/create', { - name: 'parent' - }, alice)).body; - await request('/drive/folders/update', { - folderId: folder.id, - parentId: parentFolder.id - }, alice); - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: null - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.parentId, null); - })); - - it('他人のフォルダを親フォルダに設定できない', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const parentFolder = (await request('/drive/folders/create', { - name: 'parent' - }, bob)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: parentFolder.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('フォルダが循環するような構造にできない', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const parentFolder = (await request('/drive/folders/create', { - name: 'parent' - }, alice)).body; - await request('/drive/folders/update', { - folderId: parentFolder.id, - parentId: folder.id - }, alice); - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: parentFolder.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('フォルダが循環するような構造にできない(再帰的)', async(async () => { - const folderA = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const folderB = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - const folderC = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - await request('/drive/folders/update', { - folderId: folderB.id, - parentId: folderA.id - }, alice); - await request('/drive/folders/update', { - folderId: folderC.id, - parentId: folderB.id - }, alice); - - const res = await request('/drive/folders/update', { - folderId: folderA.id, - parentId: folderC.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('フォルダが循環するような構造にできない(自身)', async(async () => { - const folderA = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - const res = await request('/drive/folders/update', { - folderId: folderA.id, - parentId: folderA.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('存在しない親フォルダを設定できない', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: '000000000000000000000000' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('不正な親フォルダIDで怒られる', async(async () => { - const folder = (await request('/drive/folders/create', { - name: 'test' - }, alice)).body; - - const res = await request('/drive/folders/update', { - folderId: folder.id, - parentId: 'foo' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('存在しないフォルダを更新できない', async(async () => { - const res = await request('/drive/folders/update', { - folderId: '000000000000000000000000' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('不正なフォルダIDで怒られる', async(async () => { - const res = await request('/drive/folders/update', { - folderId: 'foo' - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('messaging/messages/create', () => { - it('メッセージを送信できる', async(async () => { - const res = await request('/messaging/messages/create', { - userId: bob.id, - text: 'test' - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.text, 'test'); - })); - - it('自分自身にはメッセージを送信できない', async(async () => { - const res = await request('/messaging/messages/create', { - userId: alice.id, - text: 'Yo' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('存在しないユーザーにはメッセージを送信できない', async(async () => { - const res = await request('/messaging/messages/create', { - userId: '000000000000000000000000', - text: 'test' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('不正なユーザーIDで怒られる', async(async () => { - const res = await request('/messaging/messages/create', { - userId: 'foo', - text: 'test' - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('テキストが無くて怒られる', async(async () => { - const res = await request('/messaging/messages/create', { - userId: bob.id - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('文字数オーバーで怒られる', async(async () => { - const res = await request('/messaging/messages/create', { - userId: bob.id, - text: '!'.repeat(1001) - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('notes/replies', () => { - it('自分に閲覧権限のない投稿は含まれない', async(async () => { - const alicePost = await post(alice, { - text: 'foo' - }); - - await post(bob, { - replyId: alicePost.id, - text: 'bar', - visibility: 'specified', - visibleUserIds: [alice.id] - }); - - const res = await request('/notes/replies', { - noteId: alicePost.id - }, carol); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.length, 0); - })); - }); - - describe('notes/timeline', () => { - it('フォロワー限定投稿が含まれる', async(async () => { - await request('/following/create', { - userId: alice.id - }, bob); - - const alicePost = await post(alice, { - text: 'foo', - visibility: 'followers' - }); - - const res = await request('/notes/timeline', {}, bob); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.length, 1); - assert.strictEqual(res.body[0].id, alicePost.id); - })); - }); -}); -*/ diff --git a/packages/backend/test/extract-mentions.ts b/packages/backend/test/extract-mentions.ts deleted file mode 100644 index 85afb098d..000000000 --- a/packages/backend/test/extract-mentions.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as assert from 'assert'; - -import { parse } from 'mfm-js'; -import { extractMentions } from '../src/misc/extract-mentions.js'; - -describe('Extract mentions', () => { - it('simple', () => { - const ast = parse('@foo @bar @baz')!; - const mentions = extractMentions(ast); - assert.deepStrictEqual(mentions, [{ - username: 'foo', - acct: '@foo', - host: null, - }, { - username: 'bar', - acct: '@bar', - host: null, - }, { - username: 'baz', - acct: '@baz', - host: null, - }]); - }); - - it('nested', () => { - const ast = parse('@foo **@bar** @baz')!; - const mentions = extractMentions(ast); - assert.deepStrictEqual(mentions, [{ - username: 'foo', - acct: '@foo', - host: null, - }, { - username: 'bar', - acct: '@bar', - host: null, - }, { - username: 'baz', - acct: '@baz', - host: null, - }]); - }); -}); diff --git a/packages/backend/test/fetch-resource.ts b/packages/backend/test/fetch-resource.ts deleted file mode 100644 index ddb0e94b8..000000000 --- a/packages/backend/test/fetch-resource.ts +++ /dev/null @@ -1,205 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import * as openapi from '@redocly/openapi-core'; -import { async, startServer, signup, post, request, simpleGet, port, shutdownServer } from './utils.js'; - -// Request Accept -const ONLY_AP = 'application/activity+json'; -const PREFER_AP = 'application/activity+json, */*'; -const PREFER_HTML = 'text/html, */*'; -const UNSPECIFIED = '*/*'; - -// Response Contet-Type -const AP = 'application/activity+json; charset=utf-8'; -const JSON = 'application/json; charset=utf-8'; -const HTML = 'text/html; charset=utf-8'; - -describe('Fetch resource', () => { - let p: childProcess.ChildProcess; - - let alice: any; - let alicesPost: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - alicesPost = await post(alice, { - text: 'test', - }); - }); - - after(async () => { - await shutdownServer(p); - }); - - describe('Common', () => { - it('meta', async(async () => { - const res = await request('/meta', { - }); - - assert.strictEqual(res.status, 200); - })); - - it('GET root', async(async () => { - const res = await simpleGet('/'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - - it('GET docs', async(async () => { - const res = await simpleGet('/docs/ja-JP/about'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - - it('GET api-doc', async(async () => { - const res = await simpleGet('/api-doc'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - - it('GET api.json', async(async () => { - const res = await simpleGet('/api.json'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, JSON); - })); - - it('Validate api.json', async(async () => { - const config = await openapi.loadConfig(); - const result = await openapi.bundle({ - config, - ref: `http://localhost:${port}/api.json`, - }); - - for (const problem of result.problems) { - console.log(`${problem.message} - ${problem.location[0]?.pointer}`); - } - - assert.strictEqual(result.problems.length, 0); - })); - - it('GET favicon.ico', async(async () => { - const res = await simpleGet('/favicon.ico'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'image/x-icon'); - })); - - it('GET apple-touch-icon.png', async(async () => { - const res = await simpleGet('/apple-touch-icon.png'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'image/png'); - })); - - it('GET twemoji svg', async(async () => { - const res = await simpleGet('/twemoji/2764.svg'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'image/svg+xml'); - })); - - it('GET twemoji svg with hyphen', async(async () => { - const res = await simpleGet('/twemoji/2764-fe0f-200d-1f525.svg'); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'image/svg+xml'); - })); - }); - - describe('/@:username', () => { - it('Only AP => AP', async(async () => { - const res = await simpleGet(`/@${alice.username}`, ONLY_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer AP => AP', async(async () => { - const res = await simpleGet(`/@${alice.username}`, PREFER_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer HTML => HTML', async(async () => { - const res = await simpleGet(`/@${alice.username}`, PREFER_HTML); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - - it('Unspecified => HTML', async(async () => { - const res = await simpleGet(`/@${alice.username}`, UNSPECIFIED); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - }); - - describe('/users/:id', () => { - it('Only AP => AP', async(async () => { - const res = await simpleGet(`/users/${alice.id}`, ONLY_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer AP => AP', async(async () => { - const res = await simpleGet(`/users/${alice.id}`, PREFER_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer HTML => Redirect to /@:username', async(async () => { - const res = await simpleGet(`/users/${alice.id}`, PREFER_HTML); - assert.strictEqual(res.status, 302); - assert.strictEqual(res.location, `/@${alice.username}`); - })); - - it('Undecided => HTML', async(async () => { - const res = await simpleGet(`/users/${alice.id}`, UNSPECIFIED); - assert.strictEqual(res.status, 302); - assert.strictEqual(res.location, `/@${alice.username}`); - })); - }); - - describe('/notes/:id', () => { - it('Only AP => AP', async(async () => { - const res = await simpleGet(`/notes/${alicesPost.id}`, ONLY_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer AP => AP', async(async () => { - const res = await simpleGet(`/notes/${alicesPost.id}`, PREFER_AP); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, AP); - })); - - it('Prefer HTML => HTML', async(async () => { - const res = await simpleGet(`/notes/${alicesPost.id}`, PREFER_HTML); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - - it('Unspecified => HTML', async(async () => { - const res = await simpleGet(`/notes/${alicesPost.id}`, UNSPECIFIED); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, HTML); - })); - }); - - describe('Feeds', () => { - it('RSS', async(async () => { - const res = await simpleGet(`/@${alice.username}.rss`, UNSPECIFIED); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'application/rss+xml; charset=utf-8'); - })); - - it('ATOM', async(async () => { - const res = await simpleGet(`/@${alice.username}.atom`, UNSPECIFIED); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'application/atom+xml; charset=utf-8'); - })); - - it('JSON', async(async () => { - const res = await simpleGet(`/@${alice.username}.json`, UNSPECIFIED); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.type, 'application/json; charset=utf-8'); - })); - }); -}); diff --git a/packages/backend/test/ff-visibility.ts b/packages/backend/test/ff-visibility.ts deleted file mode 100644 index 4f6847be6..000000000 --- a/packages/backend/test/ff-visibility.ts +++ /dev/null @@ -1,167 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, react, connectStream, startServer, shutdownServer, simpleGet } from './utils.js'; - -describe('FF visibility', () => { - let p: childProcess.ChildProcess; - - let alice: any; - let bob: any; - let carol: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - carol = await signup({ username: 'carol' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - it('ffVisibility が public なユーザーのフォロー/フォロワーを誰でも見れる', async(async () => { - await request('/i/update', { - ffVisibility: 'public', - }, alice); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, bob); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, bob); - - assert.strictEqual(followingRes.status, 200); - assert.strictEqual(Array.isArray(followingRes.body), true); - assert.strictEqual(followersRes.status, 200); - assert.strictEqual(Array.isArray(followersRes.body), true); - })); - - it('ffVisibility が followers なユーザーのフォロー/フォロワーを自分で見れる', async(async () => { - await request('/i/update', { - ffVisibility: 'followers', - }, alice); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, alice); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, alice); - - assert.strictEqual(followingRes.status, 200); - assert.strictEqual(Array.isArray(followingRes.body), true); - assert.strictEqual(followersRes.status, 200); - assert.strictEqual(Array.isArray(followersRes.body), true); - })); - - it('ffVisibility が followers なユーザーのフォロー/フォロワーを非フォロワーが見れない', async(async () => { - await request('/i/update', { - ffVisibility: 'followers', - }, alice); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, bob); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, bob); - - assert.strictEqual(followingRes.status, 400); - assert.strictEqual(followersRes.status, 400); - })); - - it('ffVisibility が followers なユーザーのフォロー/フォロワーをフォロワーが見れる', async(async () => { - await request('/i/update', { - ffVisibility: 'followers', - }, alice); - - await request('/following/create', { - userId: alice.id, - }, bob); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, bob); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, bob); - - assert.strictEqual(followingRes.status, 200); - assert.strictEqual(Array.isArray(followingRes.body), true); - assert.strictEqual(followersRes.status, 200); - assert.strictEqual(Array.isArray(followersRes.body), true); - })); - - it('ffVisibility が private なユーザーのフォロー/フォロワーを自分で見れる', async(async () => { - await request('/i/update', { - ffVisibility: 'private', - }, alice); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, alice); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, alice); - - assert.strictEqual(followingRes.status, 200); - assert.strictEqual(Array.isArray(followingRes.body), true); - assert.strictEqual(followersRes.status, 200); - assert.strictEqual(Array.isArray(followersRes.body), true); - })); - - it('ffVisibility が private なユーザーのフォロー/フォロワーを他人が見れない', async(async () => { - await request('/i/update', { - ffVisibility: 'private', - }, alice); - - const followingRes = await request('/users/following', { - userId: alice.id, - }, bob); - const followersRes = await request('/users/followers', { - userId: alice.id, - }, bob); - - assert.strictEqual(followingRes.status, 400); - assert.strictEqual(followersRes.status, 400); - })); - - describe('AP', () => { - it('ffVisibility が public 以外ならばAPからは取得できない', async(async () => { - { - await request('/i/update', { - ffVisibility: 'public', - }, alice); - - const followingRes = await simpleGet(`/users/${alice.id}/following`, 'application/activity+json'); - const followersRes = await simpleGet(`/users/${alice.id}/followers`, 'application/activity+json'); - assert.strictEqual(followingRes.status, 200); - assert.strictEqual(followersRes.status, 200); - } - { - await request('/i/update', { - ffVisibility: 'followers', - }, alice); - - const followingRes = await simpleGet(`/users/${alice.id}/following`, 'application/activity+json').catch(res => ({ status: res.statusCode })); - const followersRes = await simpleGet(`/users/${alice.id}/followers`, 'application/activity+json').catch(res => ({ status: res.statusCode })); - assert.strictEqual(followingRes.status, 403); - assert.strictEqual(followersRes.status, 403); - } - { - await request('/i/update', { - ffVisibility: 'private', - }, alice); - - const followingRes = await simpleGet(`/users/${alice.id}/following`, 'application/activity+json').catch(res => ({ status: res.statusCode })); - const followersRes = await simpleGet(`/users/${alice.id}/followers`, 'application/activity+json').catch(res => ({ status: res.statusCode })); - assert.strictEqual(followingRes.status, 403); - assert.strictEqual(followersRes.status, 403); - } - })); - }); -}); diff --git a/packages/backend/test/get-file-info.ts b/packages/backend/test/get-file-info.ts deleted file mode 100644 index 09378fec8..000000000 --- a/packages/backend/test/get-file-info.ts +++ /dev/null @@ -1,191 +0,0 @@ -import * as assert from 'assert'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import { getFileInfo } from '../src/misc/get-file-info.js'; -import { async } from './utils.js'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -describe('Get file info', () => { - it('Empty file', async (async () => { - const path = `${_dirname}/resources/emptyfile`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 0, - md5: 'd41d8cd98f00b204e9800998ecf8427e', - type: { - mime: 'application/octet-stream', - ext: null, - }, - width: undefined, - height: undefined, - orientation: undefined, - }); - })); - - it('Generic JPEG', async (async () => { - const path = `${_dirname}/resources/Lenna.jpg`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 25360, - md5: '091b3f259662aa31e2ffef4519951168', - type: { - mime: 'image/jpeg', - ext: 'jpg', - }, - width: 512, - height: 512, - orientation: undefined, - }); - })); - - it('Generic APNG', async (async () => { - const path = `${_dirname}/resources/anime.png`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 1868, - md5: '08189c607bea3b952704676bb3c979e0', - type: { - mime: 'image/apng', - ext: 'apng', - }, - width: 256, - height: 256, - orientation: undefined, - }); - })); - - it('Generic AGIF', async (async () => { - const path = `${_dirname}/resources/anime.gif`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 2248, - md5: '32c47a11555675d9267aee1a86571e7e', - type: { - mime: 'image/gif', - ext: 'gif', - }, - width: 256, - height: 256, - orientation: undefined, - }); - })); - - it('PNG with alpha', async (async () => { - const path = `${_dirname}/resources/with-alpha.png`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 3772, - md5: 'f73535c3e1e27508885b69b10cf6e991', - type: { - mime: 'image/png', - ext: 'png', - }, - width: 256, - height: 256, - orientation: undefined, - }); - })); - - it('Generic SVG', async (async () => { - const path = `${_dirname}/resources/image.svg`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 505, - md5: 'b6f52b4b021e7b92cdd04509c7267965', - type: { - mime: 'image/svg+xml', - ext: 'svg', - }, - width: 256, - height: 256, - orientation: undefined, - }); - })); - - it('SVG with XML definition', async (async () => { - // https://github.com/misskey-dev/misskey/issues/4413 - const path = `${_dirname}/resources/with-xml-def.svg`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 544, - md5: '4b7a346cde9ccbeb267e812567e33397', - type: { - mime: 'image/svg+xml', - ext: 'svg', - }, - width: 256, - height: 256, - orientation: undefined, - }); - })); - - it('Dimension limit', async (async () => { - const path = `${_dirname}/resources/25000x25000.png`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 75933, - md5: '268c5dde99e17cf8fe09f1ab3f97df56', - type: { - mime: 'application/octet-stream', // do not treat as image - ext: null, - }, - width: 25000, - height: 25000, - orientation: undefined, - }); - })); - - it('Rotate JPEG', async (async () => { - const path = `${_dirname}/resources/rotate.jpg`; - const info = await getFileInfo(path, { skipSensitiveDetection: true }) as any; - delete info.warnings; - delete info.blurhash; - delete info.sensitive; - delete info.porn; - assert.deepStrictEqual(info, { - size: 12624, - md5: '68d5b2d8d1d1acbbce99203e3ec3857e', - type: { - mime: 'image/jpeg', - ext: 'jpg', - }, - width: 512, - height: 256, - orientation: 8, - }); - })); -}); diff --git a/packages/backend/test/loader.js b/packages/backend/test/loader.js deleted file mode 100644 index 6b21587e3..000000000 --- a/packages/backend/test/loader.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * ts-node/esmローダーに投げる前にpath mappingを解決する - * 参考 - * - https://github.com/TypeStrong/ts-node/discussions/1450#discussioncomment-1806115 - * - https://nodejs.org/api/esm.html#loaders - * ※ https://github.com/TypeStrong/ts-node/pull/1585 が取り込まれたらこのカスタムローダーは必要なくなる - */ - -import { resolve as resolveTs, load } from 'ts-node/esm'; -import { loadConfig, createMatchPath } from 'tsconfig-paths'; -import { pathToFileURL } from 'url'; - -const tsconfig = loadConfig(); -const matchPath = createMatchPath(tsconfig.absoluteBaseUrl, tsconfig.paths); - -export function resolve(specifier, ctx, defaultResolve) { - let resolvedSpecifier; - if (specifier.endsWith('.js')) { - // maybe transpiled - const specifierWithoutExtension = specifier.substring(0, specifier.length - '.js'.length); - const matchedSpecifier = matchPath(specifierWithoutExtension); - if (matchedSpecifier) { - resolvedSpecifier = pathToFileURL(`${matchedSpecifier}.js`).href; - } - } else { - const matchedSpecifier = matchPath(specifier); - if (matchedSpecifier) { - resolvedSpecifier = pathToFileURL(matchedSpecifier).href; - } - } - return resolveTs(resolvedSpecifier ?? specifier, ctx, defaultResolve); -} - -export { load }; diff --git a/packages/backend/test/mfm.ts b/packages/backend/test/mfm.ts deleted file mode 100644 index 5218942a5..000000000 --- a/packages/backend/test/mfm.ts +++ /dev/null @@ -1,89 +0,0 @@ -import * as assert from 'assert'; -import * as mfm from 'mfm-js'; - -import { toHtml } from '../src/mfm/to-html.js'; -import { fromHtml } from '../src/mfm/from-html.js'; - -describe('toHtml', () => { - it('br', () => { - const input = 'foo\nbar\nbaz'; - const output = '

foo
bar
baz

'; - assert.equal(toHtml(mfm.parse(input)), output); - }); - - it('br alt', () => { - const input = 'foo\r\nbar\rbaz'; - const output = '

foo
bar
baz

'; - assert.equal(toHtml(mfm.parse(input)), output); - }); -}); - -describe('fromHtml', () => { - it('p', () => { - assert.deepStrictEqual(fromHtml('

a

b

'), 'a\n\nb'); - }); - - it('block element', () => { - assert.deepStrictEqual(fromHtml('
a
b
'), 'a\nb'); - }); - - it('inline element', () => { - assert.deepStrictEqual(fromHtml('
  • a
  • b
'), 'a\nb'); - }); - - it('block code', () => { - assert.deepStrictEqual(fromHtml('
a\nb
'), '```\na\nb\n```'); - }); - - it('inline code', () => { - assert.deepStrictEqual(fromHtml('a'), '`a`'); - }); - - it('quote', () => { - assert.deepStrictEqual(fromHtml('
a\nb
'), '> a\n> b'); - }); - - it('br', () => { - assert.deepStrictEqual(fromHtml('

abc

d

'), 'abc\n\nd'); - }); - - it('link with different text', () => { - assert.deepStrictEqual(fromHtml('

a c d

'), 'a [c](https://example.com/b) d'); - }); - - it('link with different text, but not encoded', () => { - assert.deepStrictEqual(fromHtml('

a c d

'), 'a [c]() d'); - }); - - it('link with same text', () => { - assert.deepStrictEqual(fromHtml('

a https://example.com/b d

'), 'a https://example.com/b d'); - }); - - it('link with same text, but not encoded', () => { - assert.deepStrictEqual(fromHtml('

a https://example.com/ä d

'), 'a d'); - }); - - it('link with no url', () => { - assert.deepStrictEqual(fromHtml('

a c d

'), 'a [c](b) d'); - }); - - it('link without href', () => { - assert.deepStrictEqual(fromHtml('

a c d

'), 'a c d'); - }); - - it('link without text', () => { - assert.deepStrictEqual(fromHtml('

a d

'), 'a https://example.com/b d'); - }); - - it('link without both', () => { - assert.deepStrictEqual(fromHtml('

a d

'), 'a d'); - }); - - it('mention', () => { - assert.deepStrictEqual(fromHtml('

a @user d

'), 'a @user@example.com d'); - }); - - it('hashtag', () => { - assert.deepStrictEqual(fromHtml('

a #a d

', ['#a']), 'a #a d'); - }); -}); diff --git a/packages/backend/test/misc/mock-resolver.ts b/packages/backend/test/misc/mock-resolver.ts deleted file mode 100644 index ba89ac329..000000000 --- a/packages/backend/test/misc/mock-resolver.ts +++ /dev/null @@ -1,35 +0,0 @@ -import Resolver from '../../src/remote/activitypub/resolver.js'; -import { IObject } from '../../src/remote/activitypub/type.js'; - -type MockResponse = { - type: string; - content: string; -}; - -export class MockResolver extends Resolver { - private _rs = new Map(); - public async _register(uri: string, content: string | Record, type = 'application/activity+json') { - this._rs.set(uri, { - type, - content: typeof content === 'string' ? content : JSON.stringify(content), - }); - } - - public async resolve(value: string | IObject): Promise { - if (typeof value !== 'string') return value; - - const r = this._rs.get(value); - - if (!r) { - throw { - name: 'StatusError', - statusCode: 404, - message: 'Not registed for mock', - }; - } - - const object = JSON.parse(r.content); - - return object; - } -} diff --git a/packages/backend/test/note.ts b/packages/backend/test/note.ts deleted file mode 100644 index b495d8b7b..000000000 --- a/packages/backend/test/note.ts +++ /dev/null @@ -1,370 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { Note } from '../src/models/entities/note.js'; -import { async, signup, request, post, uploadUrl, startServer, shutdownServer, initTestDb, api } from './utils.js'; - -describe('Note', () => { - let p: childProcess.ChildProcess; - let Notes: any; - - let alice: any; - let bob: any; - - before(async () => { - p = await startServer(); - const connection = await initTestDb(true); - Notes = connection.getRepository(Note); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - it('投稿できる', async(async () => { - const post = { - text: 'test', - }; - - const res = await request('/notes/create', post, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.text, post.text); - })); - - it('ファイルを添付できる', async(async () => { - const file = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg'); - - const res = await request('/notes/create', { - fileIds: [file.id], - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.deepStrictEqual(res.body.createdNote.fileIds, [file.id]); - })); - - it('他人のファイルは無視', async(async () => { - const file = await uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg'); - - const res = await request('/notes/create', { - text: 'test', - fileIds: [file.id], - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.deepStrictEqual(res.body.createdNote.fileIds, []); - })); - - it('存在しないファイルは無視', async(async () => { - const res = await request('/notes/create', { - text: 'test', - fileIds: ['000000000000000000000000'], - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.deepStrictEqual(res.body.createdNote.fileIds, []); - })); - - it('不正なファイルIDは無視', async(async () => { - const res = await request('/notes/create', { - fileIds: ['kyoppie'], - }, alice); - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.deepStrictEqual(res.body.createdNote.fileIds, []); - })); - - it('返信できる', async(async () => { - const bobPost = await post(bob, { - text: 'foo', - }); - - const alicePost = { - text: 'bar', - replyId: bobPost.id, - }; - - const res = await request('/notes/create', alicePost, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.text, alicePost.text); - assert.strictEqual(res.body.createdNote.replyId, alicePost.replyId); - assert.strictEqual(res.body.createdNote.reply.text, bobPost.text); - })); - - it('renoteできる', async(async () => { - const bobPost = await post(bob, { - text: 'test', - }); - - const alicePost = { - renoteId: bobPost.id, - }; - - const res = await request('/notes/create', alicePost, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId); - assert.strictEqual(res.body.createdNote.renote.text, bobPost.text); - })); - - it('引用renoteできる', async(async () => { - const bobPost = await post(bob, { - text: 'test', - }); - - const alicePost = { - text: 'test', - renoteId: bobPost.id, - }; - - const res = await request('/notes/create', alicePost, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.text, alicePost.text); - assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId); - assert.strictEqual(res.body.createdNote.renote.text, bobPost.text); - })); - - it('文字数ぎりぎりで怒られない', async(async () => { - const post = { - text: '!'.repeat(3000), - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 200); - })); - - it('文字数オーバーで怒られる', async(async () => { - const post = { - text: '!'.repeat(3001), - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 400); - })); - - it('存在しないリプライ先で怒られる', async(async () => { - const post = { - text: 'test', - replyId: '000000000000000000000000', - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 400); - })); - - it('存在しないrenote対象で怒られる', async(async () => { - const post = { - renoteId: '000000000000000000000000', - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 400); - })); - - it('不正なリプライ先IDで怒られる', async(async () => { - const post = { - text: 'test', - replyId: 'foo', - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 400); - })); - - it('不正なrenote対象IDで怒られる', async(async () => { - const post = { - renoteId: 'foo', - }; - const res = await request('/notes/create', post, alice); - assert.strictEqual(res.status, 400); - })); - - it('存在しないユーザーにメンションできる', async(async () => { - const post = { - text: '@ghost yo', - }; - - const res = await request('/notes/create', post, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.text, post.text); - })); - - it('同じユーザーに複数メンションしても内部的にまとめられる', async(async () => { - const post = { - text: '@bob @bob @bob yo', - }; - - const res = await request('/notes/create', post, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.text, post.text); - - const noteDoc = await Notes.findOneBy({ id: res.body.createdNote.id }); - assert.deepStrictEqual(noteDoc.mentions, [bob.id]); - })); - - describe('notes/create', () => { - it('投票を添付できる', async(async () => { - const res = await request('/notes/create', { - text: 'test', - poll: { - choices: ['foo', 'bar'], - }, - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); - assert.strictEqual(res.body.createdNote.poll != null, true); - })); - - it('投票の選択肢が無くて怒られる', async(async () => { - const res = await request('/notes/create', { - poll: {}, - }, alice); - assert.strictEqual(res.status, 400); - })); - - it('投票の選択肢が無くて怒られる (空の配列)', async(async () => { - const res = await request('/notes/create', { - poll: { - choices: [], - }, - }, alice); - assert.strictEqual(res.status, 400); - })); - - it('投票の選択肢が1つで怒られる', async(async () => { - const res = await request('/notes/create', { - poll: { - choices: ['Strawberry Pasta'], - }, - }, alice); - assert.strictEqual(res.status, 400); - })); - - it('投票できる', async(async () => { - const { body } = await request('/notes/create', { - text: 'test', - poll: { - choices: ['sakura', 'izumi', 'ako'], - }, - }, alice); - - const res = await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 1, - }, alice); - - assert.strictEqual(res.status, 204); - })); - - it('複数投票できない', async(async () => { - const { body } = await request('/notes/create', { - text: 'test', - poll: { - choices: ['sakura', 'izumi', 'ako'], - }, - }, alice); - - await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 0, - }, alice); - - const res = await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 2, - }, alice); - - assert.strictEqual(res.status, 400); - })); - - it('許可されている場合は複数投票できる', async(async () => { - const { body } = await request('/notes/create', { - text: 'test', - poll: { - choices: ['sakura', 'izumi', 'ako'], - multiple: true, - }, - }, alice); - - await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 0, - }, alice); - - await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 1, - }, alice); - - const res = await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 2, - }, alice); - - assert.strictEqual(res.status, 204); - })); - - it('締め切られている場合は投票できない', async(async () => { - const { body } = await request('/notes/create', { - text: 'test', - poll: { - choices: ['sakura', 'izumi', 'ako'], - expiredAfter: 1, - }, - }, alice); - - await new Promise(x => setTimeout(x, 2)); - - const res = await request('/notes/polls/vote', { - noteId: body.createdNote.id, - choice: 1, - }, alice); - - assert.strictEqual(res.status, 400); - })); - }); - - describe('notes/delete', () => { - it('delete a reply', async(async () => { - const mainNoteRes = await api('notes/create', { - text: 'main post', - }, alice); - const replyOneRes = await api('notes/create', { - text: 'reply one', - replyId: mainNoteRes.body.createdNote.id, - }, alice); - const replyTwoRes = await api('notes/create', { - text: 'reply two', - replyId: mainNoteRes.body.createdNote.id, - }, alice); - - const deleteOneRes = await api('notes/delete', { - noteId: replyOneRes.body.createdNote.id, - }, alice); - - assert.strictEqual(deleteOneRes.status, 204); - let mainNote = await Notes.findOneBy({ id: mainNoteRes.body.createdNote.id }); - assert.strictEqual(mainNote.repliesCount, 1); - - const deleteTwoRes = await api('notes/delete', { - noteId: replyTwoRes.body.createdNote.id, - }, alice); - - assert.strictEqual(deleteTwoRes.status, 204); - mainNote = await Notes.findOneBy({ id: mainNoteRes.body.createdNote.id }); - assert.strictEqual(mainNote.repliesCount, 0); - })); - }); -}); diff --git a/packages/backend/test/prelude/maybe.ts b/packages/backend/test/prelude/maybe.ts deleted file mode 100644 index 0f4b00065..000000000 --- a/packages/backend/test/prelude/maybe.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as assert from 'assert'; -import { just, nothing } from '../../src/prelude/maybe.js'; - -describe('just', () => { - it('has a value', () => { - assert.deepStrictEqual(just(3).isJust(), true); - }); - - it('has the inverse called get', () => { - assert.deepStrictEqual(just(3).get(), 3); - }); -}); - -describe('nothing', () => { - it('has no value', () => { - assert.deepStrictEqual(nothing().isJust(), false); - }); -}); diff --git a/packages/backend/test/prelude/url.ts b/packages/backend/test/prelude/url.ts deleted file mode 100644 index df102c8df..000000000 --- a/packages/backend/test/prelude/url.ts +++ /dev/null @@ -1,13 +0,0 @@ -import * as assert from 'assert'; -import { query } from '../../src/prelude/url.js'; - -describe('url', () => { - it('query', () => { - const s = query({ - foo: 'ふぅ', - bar: 'b a r', - baz: undefined, - }); - assert.deepStrictEqual(s, 'foo=%E3%81%B5%E3%81%85&bar=b%20a%20r'); - }); -}); diff --git a/packages/backend/test/reaction-lib.ts b/packages/backend/test/reaction-lib.ts deleted file mode 100644 index 7c61dc76c..000000000 --- a/packages/backend/test/reaction-lib.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* -import * as assert from 'assert'; - -import { toDbReaction } from '../src/misc/reaction-lib.js'; - -describe('toDbReaction', async () => { - it('既存の文字列リアクションはそのまま', async () => { - assert.strictEqual(await toDbReaction('like'), 'like'); - }); - - it('Unicodeプリンは寿司化不能とするため文字列化しない', async () => { - assert.strictEqual(await toDbReaction('🍮'), '🍮'); - }); - - it('プリン以外の既存のリアクションは文字列化する like', async () => { - assert.strictEqual(await toDbReaction('👍'), 'like'); - }); - - it('プリン以外の既存のリアクションは文字列化する love', async () => { - assert.strictEqual(await toDbReaction('❤️'), 'love'); - }); - - it('プリン以外の既存のリアクションは文字列化する love 異体字セレクタなし', async () => { - assert.strictEqual(await toDbReaction('❤'), 'love'); - }); - - it('プリン以外の既存のリアクションは文字列化する laugh', async () => { - assert.strictEqual(await toDbReaction('😆'), 'laugh'); - }); - - it('プリン以外の既存のリアクションは文字列化する hmm', async () => { - assert.strictEqual(await toDbReaction('🤔'), 'hmm'); - }); - - it('プリン以外の既存のリアクションは文字列化する surprise', async () => { - assert.strictEqual(await toDbReaction('😮'), 'surprise'); - }); - - it('プリン以外の既存のリアクションは文字列化する congrats', async () => { - assert.strictEqual(await toDbReaction('🎉'), 'congrats'); - }); - - it('プリン以外の既存のリアクションは文字列化する angry', async () => { - assert.strictEqual(await toDbReaction('💢'), 'angry'); - }); - - it('プリン以外の既存のリアクションは文字列化する confused', async () => { - assert.strictEqual(await toDbReaction('😥'), 'confused'); - }); - - it('プリン以外の既存のリアクションは文字列化する rip', async () => { - assert.strictEqual(await toDbReaction('😇'), 'rip'); - }); - - it('それ以外はUnicodeのまま', async () => { - assert.strictEqual(await toDbReaction('🍅'), '🍅'); - }); - - it('異体字セレクタ除去', async () => { - assert.strictEqual(await toDbReaction('㊗️'), '㊗'); - }); - - it('異体字セレクタ除去 必要なし', async () => { - assert.strictEqual(await toDbReaction('㊗'), '㊗'); - }); - - it('fallback - undefined', async () => { - assert.strictEqual(await toDbReaction(undefined), 'like'); - }); - - it('fallback - null', async () => { - assert.strictEqual(await toDbReaction(null), 'like'); - }); - - it('fallback - empty', async () => { - assert.strictEqual(await toDbReaction(''), 'like'); - }); - - it('fallback - unknown', async () => { - assert.strictEqual(await toDbReaction('unknown'), 'like'); - }); -}); -*/ diff --git a/packages/backend/test/resources/rotate.jpg b/packages/backend/test/resources/rotate.jpg deleted file mode 100644 index 477c2baf5..000000000 Binary files a/packages/backend/test/resources/rotate.jpg and /dev/null differ diff --git a/packages/backend/test/streaming.ts b/packages/backend/test/streaming.ts deleted file mode 100644 index 621d07f9c..000000000 --- a/packages/backend/test/streaming.ts +++ /dev/null @@ -1,545 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { Following } from '../src/models/entities/following.js'; -import { connectStream, signup, api, post, startServer, shutdownServer, initTestDb, waitFire } from './utils.js'; - -describe('Streaming', () => { - let p: childProcess.ChildProcess; - let Followings: any; - - const follow = async (follower: any, followee: any) => { - await Followings.save({ - id: 'a', - createdAt: new Date(), - followerId: follower.id, - followeeId: followee.id, - followerHost: follower.host, - followerInbox: null, - followerSharedInbox: null, - followeeHost: followee.host, - followeeInbox: null, - followeeSharedInbox: null, - }); - }; - - describe('Streaming', () => { - // Local users - let ayano: any; - let kyoko: any; - let chitose: any; - - // Remote users - let akari: any; - let chinatsu: any; - - let kyokoNote: any; - let list: any; - - before(async () => { - p = await startServer(); - const connection = await initTestDb(true); - Followings = connection.getRepository(Following); - - ayano = await signup({ username: 'ayano' }); - kyoko = await signup({ username: 'kyoko' }); - chitose = await signup({ username: 'chitose' }); - - akari = await signup({ username: 'akari', host: 'example.com' }); - chinatsu = await signup({ username: 'chinatsu', host: 'example.com' }); - - kyokoNote = await post(kyoko, { text: 'foo' }); - - // Follow: ayano => kyoko - await api('following/create', { userId: kyoko.id }, ayano); - - // Follow: ayano => akari - await follow(ayano, akari); - - // List: chitose => ayano, kyoko - list = await api('users/lists/create', { - name: 'my list', - }, chitose).then(x => x.body); - - await api('users/lists/push', { - listId: list.id, - userId: ayano.id, - }, chitose); - - await api('users/lists/push', { - listId: list.id, - userId: kyoko.id, - }, chitose); - }); - - after(async () => { - await shutdownServer(p); - }); - - describe('Events', () => { - it('mention event', async () => { - const fired = await waitFire( - kyoko, 'main', // kyoko:main - () => post(ayano, { text: 'foo @kyoko bar' }), // ayano mention => kyoko - msg => msg.type === 'mention' && msg.body.userId === ayano.id // wait ayano - ); - - assert.strictEqual(fired, true); - }); - - it('renote event', async () => { - const fired = await waitFire( - kyoko, 'main', // kyoko:main - () => post(ayano, { renoteId: kyokoNote.id }), // ayano renote - msg => msg.type === 'renote' && msg.body.renoteId === kyokoNote.id // wait renote - ); - - assert.strictEqual(fired, true); - }); - }); - - describe('Home Timeline', () => { - it('自分の投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'homeTimeline', // ayano:Home - () => api('notes/create', { text: 'foo' }, ayano), // ayano posts - msg => msg.type === 'note' && msg.body.text === 'foo' - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしているユーザーの投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'homeTimeline', // ayano:home - () => api('notes/create', { text: 'foo' }, kyoko), // kyoko posts - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないユーザーの投稿は流れない', async () => { - const fired = await waitFire( - kyoko, 'homeTimeline', // kyoko:home - () => api('notes/create', { text: 'foo' }, ayano), // ayano posts - msg => msg.type === 'note' && msg.body.userId === ayano.id // wait ayano - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしているユーザーのダイレクト投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'homeTimeline', // ayano:home - () => api('notes/create', { text: 'foo', visibility: 'specified', visibleUserIds: [ayano.id], }, kyoko), // kyoko dm => ayano - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしているユーザーでも自分が指定されていないダイレクト投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'homeTimeline', // ayano:home - () => api('notes/create', { text: 'foo', visibility: 'specified', visibleUserIds: [chitose.id], }, kyoko), // kyoko dm => chitose - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, false); - }); - }); // Home - - describe('Local Timeline', () => { - it('自分の投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo' }, ayano), // ayano posts - msg => msg.type === 'note' && msg.body.text === 'foo' - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないローカルユーザーの投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo' }, chitose), // chitose posts - msg => msg.type === 'note' && msg.body.userId === chitose.id // wait chitose - ); - - assert.strictEqual(fired, true); - }); - - it('リモートユーザーの投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo' }, chinatsu), // chinatsu posts - msg => msg.type === 'note' && msg.body.userId === chinatsu.id // wait chinatsu - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしてたとしてもリモートユーザーの投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo' }, akari), // akari posts - msg => msg.type === 'note' && msg.body.userId === akari.id // wait akari - ); - - assert.strictEqual(fired, false); - }); - - it('ホーム指定の投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo', visibility: 'home' }, kyoko), // kyoko home posts - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしているローカルユーザーのダイレクト投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo', visibility: 'specified', visibleUserIds: [ayano.id] }, kyoko), // kyoko DM => ayano - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしていないローカルユーザーのフォロワー宛て投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'localTimeline', // ayano:Local - () => api('notes/create', { text: 'foo', visibility: 'followers' }, chitose), - msg => msg.type === 'note' && msg.body.userId === chitose.id // wait chitose - ); - - assert.strictEqual(fired, false); - }); - }); - - describe('Hybrid Timeline', () => { - it('自分の投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo' }, ayano), // ayano posts - msg => msg.type === 'note' && msg.body.text === 'foo' - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないローカルユーザーの投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo' }, chitose), // chitose posts - msg => msg.type === 'note' && msg.body.userId === chitose.id // wait chitose - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしているリモートユーザーの投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo' }, akari), // akari posts - msg => msg.type === 'note' && msg.body.userId === akari.id // wait akari - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないリモートユーザーの投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo' }, chinatsu), // chinatsu posts - msg => msg.type === 'note' && msg.body.userId === chinatsu.id // wait chinatsu - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしているユーザーのダイレクト投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo', visibility: 'specified', visibleUserIds: [ayano.id] }, kyoko), - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしているユーザーのホーム投稿が流れる', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo', visibility: 'home' }, kyoko), - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないローカルユーザーのホーム投稿は流れない', async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo', visibility: 'home' }, chitose), - msg => msg.type === 'note' && msg.body.userId === chitose.id - ); - - assert.strictEqual(fired, false); - }); - - it('フォローしていないローカルユーザーのフォロワー宛て投稿は流れない', () => async () => { - const fired = await waitFire( - ayano, 'hybridTimeline', // ayano:Hybrid - () => api('notes/create', { text: 'foo', visibility: 'followers' }, chitose), - msg => msg.type === 'note' && msg.body.userId === chitose.id - ); - - assert.strictEqual(fired, false); - }); - }); - - describe('Global Timeline', () => { - it('フォローしていないローカルユーザーの投稿が流れる', () => async () => { - const fired = await waitFire( - ayano, 'globalTimeline', // ayano:Global - () => api('notes/create', { text: 'foo' }, chitose), // chitose posts - msg => msg.type === 'note' && msg.body.userId === chitose.id // wait chitose - ); - - assert.strictEqual(fired, true); - }); - - it('フォローしていないリモートユーザーの投稿が流れる', () => async () => { - const fired = await waitFire( - ayano, 'globalTimeline', // ayano:Global - () => api('notes/create', { text: 'foo' }, chinatsu), // chinatsu posts - msg => msg.type === 'note' && msg.body.userId === chinatsu.id // wait chinatsu - ); - - assert.strictEqual(fired, true); - }); - - it('ホーム投稿は流れない', () => async () => { - const fired = await waitFire( - ayano, 'globalTimeline', // ayano:Global - () => api('notes/create', { text: 'foo', visibility: 'home' }, kyoko), // kyoko posts - msg => msg.type === 'note' && msg.body.userId === kyoko.id // wait kyoko - ); - - assert.strictEqual(fired, false); - }); - }); - - describe('UserList Timeline', () => { - it('リストに入れているユーザーの投稿が流れる', () => async () => { - const fired = await waitFire( - chitose, 'userList', - () => api('notes/create', { text: 'foo' }, ayano), - msg => msg.type === 'note' && msg.body.userId === ayano.id, - { listId: list.id, } - ); - - assert.strictEqual(fired, true); - }); - - it('リストに入れていないユーザーの投稿は流れない', () => async () => { - const fired = await waitFire( - chitose, 'userList', - () => api('notes/create', { text: 'foo' }, chinatsu), - msg => msg.type === 'note' && msg.body.userId === chinatsu.id, - { listId: list.id, } - ); - - assert.strictEqual(fired, false); - }); - - // #4471 - it('リストに入れているユーザーのダイレクト投稿が流れる', () => async () => { - const fired = await waitFire( - chitose, 'userList', - () => api('notes/create', { text: 'foo', visibility: 'specified', visibleUserIds: [chitose.id] }, ayano), - msg => msg.type === 'note' && msg.body.userId === ayano.id, - { listId: list.id, } - ); - - assert.strictEqual(fired, true); - }); - - // #4335 - it('リストに入れているがフォローはしてないユーザーのフォロワー宛て投稿は流れない', () => async () => { - const fired = await waitFire( - chitose, 'userList', - () => api('notes/create', { text: 'foo', visibility: 'followers' }, kyoko), - msg => msg.type === 'note' && msg.body.userId === kyoko.id, - { listId: list.id, } - ); - - assert.strictEqual(fired, false); - }); - }); - - describe('Hashtag Timeline', () => { - it('指定したハッシュタグの投稿が流れる', () => new Promise(async done => { - const ws = await connectStream(chitose, 'hashtag', ({ type, body }) => { - if (type == 'note') { - assert.deepStrictEqual(body.text, '#foo'); - ws.close(); - done(); - } - }, { - q: [ - ['foo'], - ], - }); - - post(chitose, { - text: '#foo', - }); - })); - - it('指定したハッシュタグの投稿が流れる (AND)', () => new Promise(async done => { - let fooCount = 0; - let barCount = 0; - let fooBarCount = 0; - - const ws = await connectStream(chitose, 'hashtag', ({ type, body }) => { - if (type == 'note') { - if (body.text === '#foo') fooCount++; - if (body.text === '#bar') barCount++; - if (body.text === '#foo #bar') fooBarCount++; - } - }, { - q: [ - ['foo', 'bar'], - ], - }); - - post(chitose, { - text: '#foo', - }); - - post(chitose, { - text: '#bar', - }); - - post(chitose, { - text: '#foo #bar', - }); - - setTimeout(() => { - assert.strictEqual(fooCount, 0); - assert.strictEqual(barCount, 0); - assert.strictEqual(fooBarCount, 1); - ws.close(); - done(); - }, 3000); - })); - - it('指定したハッシュタグの投稿が流れる (OR)', () => new Promise(async done => { - let fooCount = 0; - let barCount = 0; - let fooBarCount = 0; - let piyoCount = 0; - - const ws = await connectStream(chitose, 'hashtag', ({ type, body }) => { - if (type == 'note') { - if (body.text === '#foo') fooCount++; - if (body.text === '#bar') barCount++; - if (body.text === '#foo #bar') fooBarCount++; - if (body.text === '#piyo') piyoCount++; - } - }, { - q: [ - ['foo'], - ['bar'], - ], - }); - - post(chitose, { - text: '#foo', - }); - - post(chitose, { - text: '#bar', - }); - - post(chitose, { - text: '#foo #bar', - }); - - post(chitose, { - text: '#piyo', - }); - - setTimeout(() => { - assert.strictEqual(fooCount, 1); - assert.strictEqual(barCount, 1); - assert.strictEqual(fooBarCount, 1); - assert.strictEqual(piyoCount, 0); - ws.close(); - done(); - }, 3000); - })); - - it('指定したハッシュタグの投稿が流れる (AND + OR)', () => new Promise(async done => { - let fooCount = 0; - let barCount = 0; - let fooBarCount = 0; - let piyoCount = 0; - let waaaCount = 0; - - const ws = await connectStream(chitose, 'hashtag', ({ type, body }) => { - if (type == 'note') { - if (body.text === '#foo') fooCount++; - if (body.text === '#bar') barCount++; - if (body.text === '#foo #bar') fooBarCount++; - if (body.text === '#piyo') piyoCount++; - if (body.text === '#waaa') waaaCount++; - } - }, { - q: [ - ['foo', 'bar'], - ['piyo'], - ], - }); - - post(chitose, { - text: '#foo', - }); - - post(chitose, { - text: '#bar', - }); - - post(chitose, { - text: '#foo #bar', - }); - - post(chitose, { - text: '#piyo', - }); - - post(chitose, { - text: '#waaa', - }); - - setTimeout(() => { - assert.strictEqual(fooCount, 0); - assert.strictEqual(barCount, 0); - assert.strictEqual(fooBarCount, 1); - assert.strictEqual(piyoCount, 1); - assert.strictEqual(waaaCount, 0); - ws.close(); - done(); - }, 3000); - })); - }); - }); -}); diff --git a/packages/backend/test/thread-mute.ts b/packages/backend/test/thread-mute.ts deleted file mode 100644 index cd3e51939..000000000 --- a/packages/backend/test/thread-mute.ts +++ /dev/null @@ -1,103 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, react, connectStream, startServer, shutdownServer } from './utils.js'; - -describe('Note thread mute', () => { - let p: childProcess.ChildProcess; - - let alice: any; - let bob: any; - let carol: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - bob = await signup({ username: 'bob' }); - carol = await signup({ username: 'carol' }); - }); - - after(async () => { - await shutdownServer(p); - }); - - it('notes/mentions にミュートしているスレッドの投稿が含まれない', async(async () => { - const bobNote = await post(bob, { text: '@alice @carol root note' }); - const aliceReply = await post(alice, { replyId: bobNote.id, text: '@bob @carol child note' }); - - await request('/notes/thread-muting/create', { noteId: bobNote.id }, alice); - - const carolReply = await post(carol, { replyId: bobNote.id, text: '@bob @alice child note' }); - const carolReplyWithoutMention = await post(carol, { replyId: aliceReply.id, text: 'child note' }); - - const res = await request('/notes/mentions', {}, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.some((note: any) => note.id === bobNote.id), false); - assert.strictEqual(res.body.some((note: any) => note.id === carolReply.id), false); - assert.strictEqual(res.body.some((note: any) => note.id === carolReplyWithoutMention.id), false); - })); - - it('ミュートしているスレッドからメンションされても、hasUnreadMentions が true にならない', async(async () => { - // 状態リセット - await request('/i/read-all-unread-notes', {}, alice); - - const bobNote = await post(bob, { text: '@alice @carol root note' }); - - await request('/notes/thread-muting/create', { noteId: bobNote.id }, alice); - - const carolReply = await post(carol, { replyId: bobNote.id, text: '@bob @alice child note' }); - - const res = await request('/i', {}, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(res.body.hasUnreadMentions, false); - })); - - it('ミュートしているスレッドからメンションされても、ストリームに unreadMention イベントが流れてこない', () => new Promise(async done => { - // 状態リセット - await request('/i/read-all-unread-notes', {}, alice); - - const bobNote = await post(bob, { text: '@alice @carol root note' }); - - await request('/notes/thread-muting/create', { noteId: bobNote.id }, alice); - - let fired = false; - - const ws = await connectStream(alice, 'main', async ({ type, body }) => { - if (type === 'unreadMention') { - if (body === bobNote.id) return; - fired = true; - } - }); - - const carolReply = await post(carol, { replyId: bobNote.id, text: '@bob @alice child note' }); - - setTimeout(() => { - assert.strictEqual(fired, false); - ws.close(); - done(); - }, 5000); - })); - - it('i/notifications にミュートしているスレッドの通知が含まれない', async(async () => { - const bobNote = await post(bob, { text: '@alice @carol root note' }); - const aliceReply = await post(alice, { replyId: bobNote.id, text: '@bob @carol child note' }); - - await request('/notes/thread-muting/create', { noteId: bobNote.id }, alice); - - const carolReply = await post(carol, { replyId: bobNote.id, text: '@bob @alice child note' }); - const carolReplyWithoutMention = await post(carol, { replyId: aliceReply.id, text: 'child note' }); - - const res = await request('/i/notifications', {}, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.some((notification: any) => notification.note.id === carolReply.id), false); - assert.strictEqual(res.body.some((notification: any) => notification.note.id === carolReplyWithoutMention.id), false); - - // NOTE: bobの投稿はスレッドミュート前に行われたため通知に含まれていてもよい - })); -}); diff --git a/packages/backend/test/tsconfig.json b/packages/backend/test/tsconfig.json deleted file mode 100644 index bc7a9968b..000000000 --- a/packages/backend/test/tsconfig.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "noEmitOnError": false, - "noImplicitAny": true, - "noImplicitReturns": true, - "noUnusedParameters": false, - "noUnusedLocals": true, - "noFallthroughCasesInSwitch": true, - "declaration": false, - "sourceMap": true, - "target": "es2021", - "module": "es2020", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "removeComments": false, - "noLib": false, - "strict": true, - "strictNullChecks": true, - "strictPropertyInitialization": false, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "resolveJsonModule": true, - "isolatedModules": true, - "baseUrl": "./", - "paths": { - "@/*": ["../src/*"] - }, - "typeRoots": [ - "../node_modules/@types", - "../src/@types" - ], - "lib": [ - "esnext" - ] - }, - "compileOnSave": false, - "include": [ - "./**/*.ts" - ] -} diff --git a/packages/backend/test/user-notes.ts b/packages/backend/test/user-notes.ts deleted file mode 100644 index 4447754d6..000000000 --- a/packages/backend/test/user-notes.ts +++ /dev/null @@ -1,61 +0,0 @@ -process.env.NODE_ENV = 'test'; - -import * as assert from 'assert'; -import * as childProcess from 'child_process'; -import { async, signup, request, post, uploadUrl, startServer, shutdownServer } from './utils.js'; - -describe('users/notes', () => { - let p: childProcess.ChildProcess; - - let alice: any; - let jpgNote: any; - let pngNote: any; - let jpgPngNote: any; - - before(async () => { - p = await startServer(); - alice = await signup({ username: 'alice' }); - const jpg = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg'); - const png = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.png'); - jpgNote = await post(alice, { - fileIds: [jpg.id], - }); - pngNote = await post(alice, { - fileIds: [png.id], - }); - jpgPngNote = await post(alice, { - fileIds: [jpg.id, png.id], - }); - }); - - after(async() => { - await shutdownServer(p); - }); - - it('ファイルタイプ指定 (jpg)', async(async () => { - const res = await request('/users/notes', { - userId: alice.id, - fileType: ['image/jpeg'], - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.length, 2); - assert.strictEqual(res.body.some((note: any) => note.id === jpgNote.id), true); - assert.strictEqual(res.body.some((note: any) => note.id === jpgPngNote.id), true); - })); - - it('ファイルタイプ指定 (jpg or png)', async(async () => { - const res = await request('/users/notes', { - userId: alice.id, - fileType: ['image/jpeg', 'image/png'], - }, alice); - - assert.strictEqual(res.status, 200); - assert.strictEqual(Array.isArray(res.body), true); - assert.strictEqual(res.body.length, 3); - assert.strictEqual(res.body.some((note: any) => note.id === jpgNote.id), true); - assert.strictEqual(res.body.some((note: any) => note.id === pngNote.id), true); - assert.strictEqual(res.body.some((note: any) => note.id === jpgPngNote.id), true); - })); -}); diff --git a/packages/backend/test/utils.ts b/packages/backend/test/utils.ts deleted file mode 100644 index 245cf858d..000000000 --- a/packages/backend/test/utils.ts +++ /dev/null @@ -1,324 +0,0 @@ -import * as fs from 'node:fs'; -import * as path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import * as childProcess from 'child_process'; -import * as http from 'node:http'; -import { SIGKILL } from 'constants'; -import WebSocket from 'ws'; -import * as misskey from 'misskey-js'; -import fetch from 'node-fetch'; -import FormData from 'form-data'; -import { DataSource } from 'typeorm'; -import loadConfig from '../src/config/load.js'; -import { entities } from '../src/db/postgre.js'; -import got from 'got'; - -const _filename = fileURLToPath(import.meta.url); -const _dirname = dirname(_filename); - -const config = loadConfig(); -export const port = config.port; - -export const async = (fn: Function) => (done: Function) => { - fn().then(() => { - done(); - }, (err: Error) => { - done(err); - }); -}; - -export const api = async (endpoint: string, params: any, me?: any) => { - endpoint = endpoint.replace(/^\//, ''); - - const auth = me ? { - i: me.token - } : {}; - - const res = await got(`http://localhost:${port}/api/${endpoint}`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(Object.assign(auth, params)), - retry: { - limit: 0, - }, - hooks: { - beforeError: [ - error => { - const { response } = error; - if (response && response.body) console.warn(response.body); - return error; - } - ] - }, - }); - - const status = res.statusCode; - const body = res.statusCode !== 204 ? await JSON.parse(res.body) : null; - - return { - status, - body - }; -}; - -export const request = async (endpoint: string, params: any, me?: any): Promise<{ body: any, status: number }> => { - const auth = me ? { - i: me.token, - } : {}; - - const res = await fetch(`http://localhost:${port}/api${endpoint}`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(Object.assign(auth, params)), - }); - - const status = res.status; - const body = res.status !== 204 ? await res.json().catch() : null; - - return { - body, status, - }; -}; - -export const signup = async (params?: any): Promise => { - const q = Object.assign({ - username: 'test', - password: 'test', - }, params); - - const res = await api('signup', q); - - return res.body; -}; - -export const post = async (user: any, params?: misskey.Endpoints['notes/create']['req']): Promise => { - const q = Object.assign({ - text: 'test', - }, params); - - const res = await api('notes/create', q, user); - - return res.body ? res.body.createdNote : null; -}; - -export const react = async (user: any, note: any, reaction: string): Promise => { - await api('notes/reactions/create', { - noteId: note.id, - reaction: reaction, - }, user); -}; - -/** - * Upload file - * @param user User - * @param _path Optional, absolute path or relative from ./resources/ - */ -export const uploadFile = async (user: any, _path?: string): Promise => { - const absPath = _path == null ? `${_dirname}/resources/Lenna.jpg` : path.isAbsolute(_path) ? _path : `${_dirname}/resources/${_path}`; - - const formData = new FormData() as any; - formData.append('i', user.token); - formData.append('file', fs.createReadStream(absPath)); - formData.append('force', 'true'); - - const res = await got(`http://localhost:${port}/api/drive/files/create`, { - method: 'POST', - body: formData, - retry: { - limit: 0, - }, - }); - - const body = res.statusCode !== 204 ? await JSON.parse(res.body) : null; - - return body; -}; - -export const uploadUrl = async (user: any, url: string) => { - let file: any; - - const ws = await connectStream(user, 'main', (msg) => { - if (msg.type === 'driveFileCreated') { - file = msg.body; - } - }); - - await api('drive/files/upload-from-url', { - url, - force: true, - }, user); - - await sleep(5000); - ws.close(); - - return file; -}; - -export function connectStream(user: any, channel: string, listener: (message: Record) => any, params?: any): Promise { - return new Promise((res, rej) => { - const ws = new WebSocket(`ws://localhost:${port}/streaming?i=${user.token}`); - - ws.on('open', () => { - ws.on('message', data => { - const msg = JSON.parse(data.toString()); - if (msg.type === 'channel' && msg.body.id === 'a') { - listener(msg.body); - } else if (msg.type === 'connected' && msg.body.id === 'a') { - res(ws); - } - }); - - ws.send(JSON.stringify({ - type: 'connect', - body: { - channel: channel, - id: 'a', - pong: true, - params: params, - }, - })); - }); - }); -} - -export const waitFire = async (user: any, channel: string, trgr: () => any, cond: (msg: Record) => boolean, params?: any) => { - return new Promise(async (res, rej) => { - let timer: NodeJS.Timeout; - - let ws: WebSocket; - try { - ws = await connectStream(user, channel, msg => { - if (cond(msg)) { - ws.close(); - if (timer) clearTimeout(timer); - res(true); - } - }, params); - } catch (e) { - rej(e); - } - - if (!ws!) return; - - timer = setTimeout(() => { - ws.close(); - res(false); - }, 3000); - - try { - await trgr(); - } catch (e) { - ws.close(); - if (timer) clearTimeout(timer); - rej(e); - } - }) -}; - -export const simpleGet = async (path: string, accept = '*/*'): Promise<{ status?: number, type?: string, location?: string }> => { - // node-fetchだと3xxを取れない - return await new Promise((resolve, reject) => { - const req = http.request(`http://localhost:${port}${path}`, { - headers: { - Accept: accept, - }, - }, res => { - if (res.statusCode! >= 400) { - reject(res); - } else { - resolve({ - status: res.statusCode, - type: res.headers['content-type'], - location: res.headers.location, - }); - } - }); - - req.end(); - }); -}; - -export function launchServer(callbackSpawnedProcess: (p: childProcess.ChildProcess) => void, moreProcess: () => Promise = async () => {}) { - return (done: (err?: Error) => any) => { - const p = childProcess.spawn('node', [_dirname + '/../index.js'], { - stdio: ['inherit', 'inherit', 'inherit', 'ipc'], - env: { NODE_ENV: 'test', PATH: process.env.PATH }, - }); - callbackSpawnedProcess(p); - p.on('message', message => { - if (message === 'ok') moreProcess().then(() => done()).catch(e => done(e)); - }); - }; -} - -export async function initTestDb(justBorrow = false, initEntities?: any[]) { - if (process.env.NODE_ENV !== 'test') throw 'NODE_ENV is not a test'; - - const db = new DataSource({ - type: 'postgres', - host: config.db.host, - port: config.db.port, - username: config.db.user, - password: config.db.pass, - database: config.db.db, - synchronize: true && !justBorrow, - dropSchema: true && !justBorrow, - entities: initEntities || entities, - }); - - await db.initialize(); - - return db; -} - -export function startServer(timeout = 60 * 1000): Promise { - return new Promise((res, rej) => { - const t = setTimeout(() => { - p.kill(SIGKILL); - rej('timeout to start'); - }, timeout); - - const p = childProcess.spawn('node', [_dirname + '/../built/index.js'], { - stdio: ['inherit', 'inherit', 'inherit', 'ipc'], - env: { NODE_ENV: 'test', PATH: process.env.PATH }, - }); - - p.on('error', e => rej(e)); - - p.on('message', message => { - if (message === 'ok') { - clearTimeout(t); - res(p); - } - }); - }); -} - -export function shutdownServer(p: childProcess.ChildProcess, timeout = 20 * 1000) { - return new Promise((res, rej) => { - const t = setTimeout(() => { - p.kill(SIGKILL); - res('force exit'); - }, timeout); - - p.once('exit', () => { - clearTimeout(t); - res('exited'); - }); - - p.kill(); - }); -} - -export function sleep(msec: number) { - return new Promise(res => { - setTimeout(() => { - res(); - }, msec); - }); -} diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json deleted file mode 100644 index dea4eb27d..000000000 --- a/packages/backend/tsconfig.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "noEmitOnError": false, - "noImplicitAny": true, - "noImplicitReturns": true, - "noUnusedParameters": false, - "noUnusedLocals": false, - "noFallthroughCasesInSwitch": true, - "declaration": false, - "sourceMap": false, - "target": "es2021", - "module": "es2020", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "removeComments": false, - "noLib": false, - "strict": true, - "strictNullChecks": true, - "strictPropertyInitialization": false, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "resolveJsonModule": true, - "isolatedModules": true, - "rootDir": "./src", - "baseUrl": "./", - "paths": { - "@/*": [ - "./src/*" - ] - }, - "outDir": "./built", - "types": [ - "node" - ], - "typeRoots": [ - "./node_modules/@types", - "./src/@types" - ], - "lib": [ - "esnext" - ] - }, - "compileOnSave": false, - "include": [ - "./src/**/*.ts" - ], -} diff --git a/packages/backend/watch.mjs b/packages/backend/watch.mjs deleted file mode 100644 index 9c9d2dbd8..000000000 --- a/packages/backend/watch.mjs +++ /dev/null @@ -1,23 +0,0 @@ -import { execa } from 'execa'; - -(async () => { - // なぜかchokidarが動かない影響で、watchされない - /* - execa('tsc-alias', ['-w', '-p', 'tsconfig.json'], { - stdout: process.stdout, - stderr: process.stderr, - }); - */ - - setInterval(() => { - execa('tsc-alias', ['-p', 'tsconfig.json'], { - stdout: process.stdout, - stderr: process.stderr, - }); - }, 3000); - - execa('tsc', ['-w', '-p', 'tsconfig.json'], { - stdout: process.stdout, - stderr: process.stderr, - }); -})(); diff --git a/packages/backend/yarn.lock b/packages/backend/yarn.lock deleted file mode 100644 index 3be2f0d52..000000000 --- a/packages/backend/yarn.lock +++ /dev/null @@ -1,8160 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" - integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== - -"@babel/types@^7.6.1", "@babel/types@^7.9.6": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@bull-board/api@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-4.2.2.tgz#42838f4fda71a3bdca560ea7c6eb80b3d846f446" - integrity sha512-YFkkeWvMit0P04k+xu4ZZ22i24m+Tq/w82LBtpt3z9Xu1rGrZoui8CI/YRsaJJE0o9TsqL5tY653oFVcdg35pQ== - dependencies: - redis-info "^3.0.8" - -"@bull-board/koa@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@bull-board/koa/-/koa-4.2.2.tgz#97b74fde56d2df51c3cd2277cedc6f91a921dc63" - integrity sha512-ekrD3utbSM1PEdNcstvhli+aFjtdoFJpulkxoLfBPQweRc9yCzfqbgcg6g1DgjaNgQ5iEWLKGr3FSwBON5v6wQ== - dependencies: - "@bull-board/api" "4.2.2" - "@bull-board/ui" "4.2.2" - ejs "^3.1.7" - koa "^2.13.1" - koa-mount "^4.0.0" - koa-router "^10.0.0" - koa-static "^5.0.0" - koa-views "^7.0.1" - -"@bull-board/ui@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@bull-board/ui/-/ui-4.2.2.tgz#2d5d7cbabfdea292988458d58e267bbc4b33aff0" - integrity sha512-QLWWTtVj6kQ01ox4OqCs/IdKm+jWFtLvhBU7RwYt8UxmxA6dZ8ffS6hWmjWk5sJ4cKk9GzPoASYMgFv0AMuh0w== - dependencies: - "@bull-board/api" "4.2.2" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@cto.af/textdecoder@^0.0.0": - version "0.0.0" - resolved "https://registry.yarnpkg.com/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz#e1e8d84c936c30a0f4619971f19ca41941af9fdc" - integrity sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ== - -"@digitalbazaar/http-client@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@digitalbazaar/http-client/-/http-client-3.2.0.tgz#b85ea09028c7d0f288f976c852d0a8f3875f0fcf" - integrity sha512-NhYXcWE/JDE7AnJikNX7q0S6zNuUPA2NuIoRdUpmvHlarjmRqyr6hIO3Awu2FxlUzbdiI1uzuWrZyB9mD1tTvw== - dependencies: - ky "^0.30.0" - ky-universal "^0.10.1" - undici "^5.2.0" - -"@discordapp/twemoji@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@discordapp/twemoji/-/twemoji-14.0.2.tgz#50cc19f6f3769dc6b36eb251421b5f5d4629e837" - integrity sha512-eYJpFsjViDTYwq3f6v+tRu8iRc+yLAeGrlh6kmNRvvC6rroUE2bMlBfEQ/WNh+2Q1FtSEFXpxzuQPOHzRzbAyA== - dependencies: - fs-extra "^8.0.1" - jsonfile "^5.0.0" - twemoji-parser "14.0.0" - universalify "^0.1.2" - -"@elastic/elasticsearch@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.11.0.tgz#e196243d0ed026742fc160d72cc5b4b5b6c7807d" - integrity sha512-AFVVuANIdbV1qYjuOi4hnsX/DehWYG+bbhQO4amq9K4/NnzU7mpGWOPgVlRQTiX+vBfBkx7SL6h4QEjIlM3ztA== - dependencies: - debug "^4.1.1" - hpagent "^0.1.1" - ms "^2.1.1" - pump "^3.0.0" - secure-json-parse "^2.1.0" - -"@eslint/eslintrc@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" - integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@gar/promisify@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@koa/cors@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2" - integrity sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q== - dependencies: - vary "^1.1.2" - -"@koa/multer@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@koa/multer/-/multer-3.0.0.tgz#439777949f28097d7b329c0b4ce3048074c862f8" - integrity sha512-y+OQBmex5D1jIl723gAEUYcAWPEicIXppaAKw/zCMfpllQ08ZNweDPwoCLxEoatqd5pCu2XG6V8dl67JRq3RJw== - -"@koa/router@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@koa/router/-/router-9.0.1.tgz#4090a14223ea7e78aa13b632761209cba69acd95" - integrity sha512-OI+OU49CJV4px0WkIMmayBeqVXB/JS1ZMq7UoGlTZt6Y7ijK7kdeQ18+SEHHJPytmtI1y6Hf8XLrpxva3mhv5Q== - dependencies: - debug "^4.1.1" - http-errors "^1.7.3" - koa-compose "^4.1.0" - methods "^1.1.2" - path-to-regexp "^6.1.0" - -"@mapbox/node-pre-gyp@1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@node-redis/bloom@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@node-redis/bloom/-/bloom-1.0.1.tgz#144474a0b7dc4a4b91badea2cfa9538ce0a1854e" - integrity sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw== - -"@node-redis/client@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/client/-/client-1.0.2.tgz#7f09fb739675728fbc6e73536f7cd1be99bf7b8f" - integrity sha512-C+gkx68pmTnxfV+y4pzasvCH3s4UGHNOAUNhdJxGI27aMdnXNDZct7ffDHBL7bAZSGv9FSwCP5PeYvEIEKGbiA== - dependencies: - cluster-key-slot "1.1.0" - generic-pool "3.8.2" - redis-parser "3.0.0" - yallist "4.0.0" - -"@node-redis/json@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/json/-/json-1.0.2.tgz#8ad2d0f026698dc1a4238cc3d1eb099a3bee5ab8" - integrity sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g== - -"@node-redis/search@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/search/-/search-1.0.2.tgz#8cfc91006ea787df801d41410283e1f59027f818" - integrity sha512-gWhEeji+kTAvzZeguUNJdMSZNH2c5dv3Bci8Nn2f7VGuf6IvvwuZDSBOuOlirLVgayVuWzAG7EhwaZWK1VDnWQ== - -"@node-redis/time-series@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@node-redis/time-series/-/time-series-1.0.1.tgz#703149f8fa4f6fff377c61a0873911e7c1ba5cc3" - integrity sha512-+nTn6EewVj3GlUXPuD3dgheWqo219jTxlo6R+pg24OeVvFHx9aFGGiyOgj3vBPhWUdRZ0xMcujXV5ki4fbLyMw== - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@npmcli/fs@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" - integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== - dependencies: - "@gar/promisify" "^1.1.3" - semver "^7.3.5" - -"@npmcli/move-file@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02" - integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@nsfw-filter/gif-frames@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@nsfw-filter/gif-frames/-/gif-frames-1.0.2.tgz#a00731e56a944c7cfc8e65f26f6f2a6945432ea6" - integrity sha512-XZrbJWEN8YfVla5i+PD4Wj51rRlJ8OgnXiPjjOt/OsrbsCR9GZRD4jr953oNWcwiRaoIcOCFWQNMQukO7Yb1dA== - dependencies: - "@nsfw-filter/save-pixels" "^2.3.4" - get-pixels-frame-info-update "3.3.2" - multi-integer-range "3.0.0" - -"@nsfw-filter/save-pixels@^2.3.4": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@nsfw-filter/save-pixels/-/save-pixels-2.3.4.tgz#671d8b741d47030d8b18390e56ad7e912447265d" - integrity sha512-dRZXwrXadMvxwJYKChrDBqC6GNvxVqlmdkyvZJO5DV65qyBsHZw8bPg9CnX7EgpxGl6+4ba/MAdHDLxs2XoD0Q== - dependencies: - gif-encoder "0.4.1" - ndarray "1.0.18" - ndarray-ops "1.2.2" - pngjs-nozlib "1.0.0" - through "2.3.4" - -"@peertube/http-signature@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@peertube/http-signature/-/http-signature-1.7.0.tgz#12a84f3fc62e786aa3a2eb09426417bad65736dc" - integrity sha512-aGQIwo6/sWtyyqhVK4e1MtxYz4N1X8CNt6SOtCc+Wnczs5S5ONaLHDDR8LYaGn0MgOwvGgXyuZ5sJIfd7iyoUw== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.14.1" - -"@redocly/ajv@^8.6.5": - version "8.6.5" - resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.5.tgz#b6e737248b791905b3f600fb329779a807f0f774" - integrity sha512-3P2TY/u4c6OBqkP+1cTH1iGAEv0O34PV3vV2Wnos/nNHu62OTrtC4zcaxttG0pHtPtn42StrhGq7SsiFgP4Bfw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -"@redocly/openapi-core@1.0.0-beta.108": - version "1.0.0-beta.108" - resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.108.tgz#fbf1b4e31c148f8816d2d63aa37b7831e305ec0f" - integrity sha512-4Lq7KB+XiBvVzpaY/M0a8qog/Zr8kGrvJbRW2z7Sk2Zpc/m+8LTuZbRh15eMoneVc13M9qbHFIRh3PG18g3Tng== - dependencies: - "@redocly/ajv" "^8.6.5" - "@types/node" "^14.11.8" - colorette "^1.2.0" - js-levenshtein "^1.1.6" - js-yaml "^4.1.0" - lodash.isequal "^4.5.0" - minimatch "^5.0.1" - node-fetch "^2.6.1" - pluralize "^8.0.0" - yaml-ast-parser "0.0.43" - -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== - -"@sinonjs/commons@^1.7.0": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" - integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sqltools/formatter@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" - integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== - -"@syuilo/aiscript@0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.11.1.tgz#52c14692113c58d1d62e6ae696352ba49abdf2eb" - integrity sha512-chwOIA3yLUKvOB0G611hjLArKTeOWNmTm3lHERSaDW1d+dS6do56naX6Lkwy2UpnwWC0qzeNSgg35elk6t2gZg== - dependencies: - autobind-decorator "2.4.0" - chalk "4.0.0" - seedrandom "3.0.5" - stringz "2.1.0" - uuid "7.0.3" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== - dependencies: - defer-to-connect "^2.0.0" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@tensorflow/tfjs-backend-cpu@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.20.0.tgz#338ec5cfc7c713355839fd85ddf90b5b59b6099a" - integrity sha512-gf075YaBLwSAAiUwa0D4GvYyUBhbJ1BVSivUNQmUfGKvIr2lIhF0qstBr033YTc3lhkbFSHEEPAHh/EfpqyjXQ== - dependencies: - "@types/seedrandom" "^2.4.28" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-backend-webgl@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.20.0.tgz#1ea6dff51a62cda64bd80ff9e7861a6010924f5a" - integrity sha512-SucbyQ08re3HvRgVfarRtKFIjNM4JvIAzcXmw4vaE/HrCtPEePkGO1VrmfQoN470EdUmGiwgqAjoyBvM2VOlVg== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.20.0" - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "^2.4.28" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.6" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-converter@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.20.0.tgz#5d3d2b388775997585204bc867ecdf1e52789a38" - integrity sha512-8EIYqtQwvSYw9GFNW2OFU8Qnl/FQF/kKAsQJoORYaZ419WJo+FIZWbAWDtCpJSAgkgoHH1jYWgV9H313cVmqxg== - -"@tensorflow/tfjs-core@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.20.0.tgz#b6f89ae6490099e2c0c992faa59c96f563f9eba2" - integrity sha512-L16JyVA4a8jFJXFgB9/oYZxcGq/GfLypt5dMVTyedznARZZ9SiY/UMMbo3IKl9ZylG1dOVVTpjzV3EvBYfeJXw== - dependencies: - "@types/long" "^4.0.1" - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "^2.4.28" - "@types/webgl-ext" "0.0.30" - "@webgpu/types" "0.1.16" - long "4.0.0" - node-fetch "~2.6.1" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-data@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.20.0.tgz#8e267ea9f01066e0276be3226cb21b7d38711144" - integrity sha512-DiD3M/K/RYyTpOsrTL0ZUsdLgoczbSEx1+cQgCtlO3wUFoMxGYMxRTFeqp4hnJalY9MDptEqZ2gXAO1BMd2IXA== - dependencies: - "@types/node-fetch" "^2.1.2" - node-fetch "~2.6.1" - string_decoder "^1.3.0" - -"@tensorflow/tfjs-layers@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.20.0.tgz#53aac3e719c9aa06cdff894e564704555e73a069" - integrity sha512-CbeDFX7XgWVsjsqp9HisbhO+a+soLt9tMNNBD/F+Rmw+YDJ5+X64iRpsMj3OWK8yKp895waoeads56UhG+Pxlw== - -"@tensorflow/tfjs-node@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.20.0.tgz#df401f99a6e7690d64f35136910d541cd337ba0f" - integrity sha512-lhMaqydtFNQ89kiET2nNMsV/rhOVa/Xh+hUHpxJP5e6KpVBzACmcJD8MjxM122G2EBntbf/vOQUAfnbX9AI9PA== - dependencies: - "@mapbox/node-pre-gyp" "1.0.9" - "@tensorflow/tfjs" "3.20.0" - adm-zip "^0.5.2" - google-protobuf "^3.9.2" - https-proxy-agent "^2.2.1" - progress "^2.0.0" - rimraf "^2.6.2" - tar "^4.4.6" - -"@tensorflow/tfjs@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.20.0.tgz#4a525be52c72deb9964fe2e5a0abaae04b95d862" - integrity sha512-Vx6MBFgZs+o413a/tM9nLdo4LM5U8Rh3d1fB8ioPL4j8dsqoqfCeee/215J3zzWPHIiSqv3pcD7bkK3fDA27GQ== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.20.0" - "@tensorflow/tfjs-backend-webgl" "3.20.0" - "@tensorflow/tfjs-converter" "3.20.0" - "@tensorflow/tfjs-core" "3.20.0" - "@tensorflow/tfjs-data" "3.20.0" - "@tensorflow/tfjs-layers" "3.20.0" - argparse "^1.0.10" - chalk "^4.1.0" - core-js "3" - regenerator-runtime "^0.13.5" - yargs "^16.0.3" - -"@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.7.tgz#1eb1de36c73478a2479cc661ef5af1c16d86d606" - integrity sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.7.tgz#677bd9117e8164dc319987dd6ff5fc1ba6fbf18b" - integrity sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A== - -"@tsconfig/node14@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.0.tgz#5bd046e508b1ee90bc091766758838741fdefd6e" - integrity sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ== - -"@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - -"@types/accepts@*": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - dependencies: - "@types/node" "*" - -"@types/bcryptjs@2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/bcryptjs/-/bcryptjs-2.4.2.tgz#e3530eac9dd136bfdfb0e43df2c4c5ce1f77dfae" - integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== - -"@types/body-parser@*": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bull@3.15.9": - version "3.15.9" - resolved "https://registry.yarnpkg.com/@types/bull/-/bull-3.15.9.tgz#e10e0901ec3762bff85716b3c580277960751c93" - integrity sha512-MPUcyPPQauAmynoO3ezHAmCOhbB0pWmYyijr/5ctaCqhbKWsjW0YCod38ZcLzUBprosfZ9dPqfYIcfdKjk7RNQ== - dependencies: - "@types/ioredis" "*" - "@types/redis" "^2.8.0" - -"@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/cacheable-request@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/cbor@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-6.0.0.tgz#ddead015e14ef4463287d40cd92a6297a34dac8d" - integrity sha512-mGQ1lbYOwVti5Xlarn1bTeBZqgY0kstsdjnkoEovgohYKdBjGejHyNGXHdMBeqyQazIv32Jjp33+5pBEaSRy2w== - dependencies: - cbor "*" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/connect@*": - version "3.4.33" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" - integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== - -"@types/cookies@*": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" - integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/disposable-email-domains@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/disposable-email-domains/-/disposable-email-domains-1.0.2.tgz#0280f6b38fa7f14e54b056a434135ecd254483b1" - integrity sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw== - -"@types/escape-regexp@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@types/escape-regexp/-/escape-regexp-0.0.1.tgz#f1a977ccdf2ef059e9862bd3af5e92cbbe723e0e" - integrity sha512-ogj/ZTIdeFkiuxDwawYuZSIgC6suFGgBeZPr6Xs5lHEcvIXTjXGtH+/n8f1XhZhespaUwJ5LIGRICPji972FLw== - -"@types/express-serve-static-core@*": - version "4.17.5" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz#a00ac7dadd746ae82477443e4d480a6a93ea083c" - integrity sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw== - dependencies: - "@types/node" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.6" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.6.tgz#6bce49e49570507b86ea1b07b806f04697fac45e" - integrity sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/fluent-ffmpeg@2.1.20": - version "2.1.20" - resolved "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.20.tgz#3b5f42fc8263761d58284fa46ee6759a64ce54ac" - integrity sha512-B+OvhCdJ3LgEq2PhvWNOiB/EfwnXLElfMCgc4Z1K5zXgSfo9I6uGKwR/lqmNPFQuebNnes7re3gqkV77SyypLg== - dependencies: - "@types/node" "*" - -"@types/http-assert@*": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" - integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== - -"@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== - -"@types/http-errors@*": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" - integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== - -"@types/ioredis@*": - version "4.14.9" - resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.14.9.tgz#774387d44d3ad60e1b849044b2b28b96e5813866" - integrity sha512-yNdzppM6vY4DYqXCnt4A3PXArxsMWeJCYxFlyl4AJKrNSGMEAP9TPcXR+8Q6zh9glcCtxmwMQhi4pwdqqHH3OA== - dependencies: - "@types/node" "*" - -"@types/js-yaml@4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== - -"@types/jsdom@20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" - integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/jsonld@1.5.6": - version "1.5.6" - resolved "https://registry.yarnpkg.com/@types/jsonld/-/jsonld-1.5.6.tgz#4396c0b17128abf5773bb68b5453b88fc565b0d4" - integrity sha512-OUcfMjRie5IOrJulUQwVNvV57SOdKcTfBj3pjXNxzXqeOIrY2aGDNGW/Tlp83EQPkz4tCE6YWVrGuc/ZeaAQGg== - -"@types/jsrsasign@10.5.2": - version "10.5.2" - resolved "https://registry.yarnpkg.com/@types/jsrsasign/-/jsrsasign-10.5.2.tgz#c8d5a7bccffd2fdee73553a130876a88e91419ec" - integrity sha512-oroCALq37fnUKPRYatawNq3oBNITN7lROpy6JBUanYLhuMZwG5shVxCyZ1/wM3RQCNJ/Ac5/+g7yZaZ+tVBy3A== - -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/keyv@*": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== - dependencies: - "@types/node" "*" - -"@types/koa-bodyparser@4.3.7": - version "4.3.7" - resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.7.tgz#3ac41f2dec9d97db7a6f798bbb2e2368be762714" - integrity sha512-21NhEp7LjZm4zbNV5alHHmrNY4J+S7B8lYTO6CzRL8ShTMnl20Gd14dRgVhAxraLaW5iZMofox+BycbuiDvj2Q== - dependencies: - "@types/koa" "*" - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa-cors@0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@types/koa-cors/-/koa-cors-0.0.2.tgz#369c753fb383640f225579c70a4f9a286b4931b7" - integrity sha512-uNaDY26HUVO+2C6arK8ZFODs9mBjYprD8mlvkVe2bYdX9wzEeKtycVXPafXpUkePhMh4sffIMkhRDyedokG/QA== - dependencies: - "@types/koa" "*" - -"@types/koa-favicon@2.0.21": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@types/koa-favicon/-/koa-favicon-2.0.21.tgz#d8a0ed062a6f5e3f838fe09c21e8b3f0490369cd" - integrity sha512-paH1nheVhijx/VduoR/RCD/qTCiX+OI/6fHLi3mZae053Ts+gUBOrKtzl3pMTDbdEBqdLolfLje3PZbb6jW0jQ== - dependencies: - "@types/koa" "*" - -"@types/koa-logger@3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/koa-logger/-/koa-logger-3.1.2.tgz#91e890f405ddb0626bc385767e4cc0cd7226d1a8" - integrity sha512-sioTA1xlKYiIgryANWPRHBkG3XGbWftw9slWADUPC+qvPIY/yRLSrhvX7zkJwMrntub5dPO0GuAoyGGf0yitfQ== - dependencies: - "@types/koa" "*" - -"@types/koa-mount@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/koa-mount/-/koa-mount-4.0.1.tgz#2994be86eaa3d9dc97365e6ebfa227cee3c5f157" - integrity sha512-HNeg80CVS9Dfq8dGYqCZZCAUm7g6jPCNJ1ydqVLEJxLrjmeburpvq+lOZkE4rxBZ6O38dr3tj9IA3IfbdoI05w== - dependencies: - "@types/koa" "*" - -"@types/koa-send@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@types/koa-send/-/koa-send-4.1.3.tgz#17193c6472ae9e5d1b99ae8086949cc4fd69179d" - integrity sha512-daaTqPZlgjIJycSTNjKpHYuKhXYP30atFc1pBcy6HHqB9+vcymDgYTguPdx9tO4HMOqNyz6bz/zqpxt5eLR+VA== - dependencies: - "@types/koa" "*" - -"@types/koa-views@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@types/koa-views/-/koa-views-7.0.0.tgz#5613450c77ab69c980c47104378da4b7669c5f2e" - integrity sha512-AB/NB+oFHcLOZJYFv3bG5Af8YbwYCD9/zK0WcKALsbjI/FRKrcXTUTC64RebDrkyOkBm3bpCgpGndhAH/3YQ2Q== - dependencies: - koa-views "*" - -"@types/koa@*", "@types/koa@^2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.1.tgz#e29877a6b5ad3744ab1024f6ec75b8cbf6ec45db" - integrity sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa@2.13.5": - version "2.13.5" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.5.tgz#64b3ca4d54e08c0062e89ec666c9f45443b21a61" - integrity sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa__cors@3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/koa__cors/-/koa__cors-3.1.1.tgz#198b5abbc425a672ae57c311b420bc270e65bdef" - integrity sha512-O7MBkCocnLrpEvkMrYAp17arUDS+KuS5bXMG/Z4aPSbrO7vrYB6YrqcsTD3Dp2OnAL3j4WME2k/x2kOcyzwNUw== - dependencies: - "@types/koa" "*" - -"@types/koa__multer@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/koa__multer/-/koa__multer-2.0.4.tgz#e0f0fd1800a46b51886bebab480a57100f2488b0" - integrity sha512-WRkshXhE5rpYFUbbtAjyMhdOOSdbu1XX+2AQlRNM6AZtgxd0/WXMU4lrP7e9tk5HWVTWbx8DOOsVBmfHjSGJ4w== - dependencies: - "@types/koa" "*" - -"@types/koa__router@8.0.11": - version "8.0.11" - resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-8.0.11.tgz#d7b37e6db934fc072ea1baa2ab92bc8ac4564f3e" - integrity sha512-WXgKWpBsbS14kzmzD9LeFapOIa678h7zvUHxDwXwSx4ETKXhXLVUAToX6jZ/U7EihM7qwyD9W/BZvB0MRu7MTQ== - dependencies: - "@types/koa" "*" - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/mime@*": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" - integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== - -"@types/mocha@9.1.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== - -"@types/node-fetch@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-3.0.3.tgz#9d969c9a748e841554a40ee435d26e53fa3ee899" - integrity sha512-HhggYPH5N+AQe/OmN6fmhKmRRt2XuNJow+R3pQwJxOOF9GuwM7O2mheyGeIrs5MOIeNjDEdgdoyHBOrFeJBR3g== - dependencies: - node-fetch "*" - -"@types/node-fetch@^2.1.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "16.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" - integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== - -"@types/node@18.7.16": - version "18.7.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601" - integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg== - -"@types/node@^14.11.8": - version "14.17.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" - integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== - -"@types/nodemailer@6.4.5": - version "6.4.5" - resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.5.tgz#09011ac73259245475d1688e4ba101860567dc39" - integrity sha512-zuP3nBRQHI6M2PkXnGGy1Ww4VB+MyYHGgnfV2T+JR9KLkeWqPJuyVUgLpKXuFnA/b7pZaIDFh2sV4759B7jK1g== - dependencies: - "@types/node" "*" - -"@types/oauth@0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" - integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A== - dependencies: - "@types/node" "*" - -"@types/offscreencanvas@~2019.3.0": - version "2019.3.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" - integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== - -"@types/pug@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" - integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - -"@types/punycode@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" - integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== - -"@types/qrcode@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.0.tgz#6a98fe9a9a7b2a9a3167b6dde17eff999eabe40b" - integrity sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA== - dependencies: - "@types/node" "*" - -"@types/qs@*": - version "6.9.1" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7" - integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw== - -"@types/random-seed@0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@types/random-seed/-/random-seed-0.3.3.tgz#7741f7b0a4513198a9396ce4ad25832f799a6727" - integrity sha512-kHsCbIRHNXJo6EN5W8EA5b4i1hdT6jaZke5crBPLUcLqaLdZ0QBq8QVMbafHzhjFF83Cl9qlee2dChD18d/kPg== - -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - -"@types/ratelimiter@3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@types/ratelimiter/-/ratelimiter-3.4.3.tgz#2159c234b9d75bcc2be39379f05c6af0a5e4a3b7" - integrity sha512-B/IRdHGcttRsDeDJ4+VFjzRA1mzqTxsYlg2X8GLQtTgRUMhQQc+bL8zFmuHhZkK4oA+Ldb4K1NogspNDxevWBA== - dependencies: - "@types/redis" "^2.8.0" - -"@types/redis@4.0.11": - version "4.0.11" - resolved "https://registry.yarnpkg.com/@types/redis/-/redis-4.0.11.tgz#0bb4c11ac9900a21ad40d2a6768ec6aaf651c0e1" - integrity sha512-bI+gth8La8Wg/QCR1+V1fhrL9+LZUSWfcqpOj2Kc80ZQ4ffbdL173vQd5wovmoV9i071FU9oP2g6etLuEwb6Rg== - dependencies: - redis "*" - -"@types/redis@^2.8.0": - version "2.8.32" - resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.32.tgz#1d3430219afbee10f8cfa389dad2571a05ecfb11" - integrity sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w== - dependencies: - "@types/node" "*" - -"@types/rename@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/rename/-/rename-1.0.4.tgz#30c6f0306042591a560361ea02639e89647dd173" - integrity sha512-eV81+6bVv2mdCBahkMefjEUwAjKDAP3AuyhqWCWRxcRaeVdUeHUBaoq2zSz+5HNHF2jzTajMcfLvJsy4K3cbwA== - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/sanitize-html@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.6.2.tgz#9c47960841b9def1e4c9dfebaaab010a3f6e97b9" - integrity sha512-7Lu2zMQnmHHQGKXVvCOhSziQMpa+R2hMHFefzbYoYMHeaXR0uXqNeOc3JeQQQ8/6Xa2Br/P1IQTLzV09xxAiUQ== - dependencies: - htmlparser2 "^6.0.0" - -"@types/seedrandom@^2.4.28": - version "2.4.30" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.30.tgz#d2efe425869b84163c2d56e779dddadb9372cbfa" - integrity sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ== - -"@types/semver@7.3.12": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== - -"@types/serve-static@*": - version "1.13.3" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" - integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - -"@types/sharp@0.30.5": - version "0.30.5" - resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.30.5.tgz#d75d91f7acf5260525aeae229845046dcff6d17a" - integrity sha512-EhO29617AIBqxoVtpd1qdBanWpspk/kD2B6qTFRJ31Q23Rdf+DNU1xlHSwtqvwq1vgOqBwq1i38SX+HGCymIQg== - dependencies: - "@types/node" "*" - -"@types/sinonjs__fake-timers@8.1.2": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" - integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== - -"@types/speakeasy@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/speakeasy/-/speakeasy-2.0.7.tgz#cb087c501b3eef744a1ae620c19812dd1c3b2f3f" - integrity sha512-JEcOhN2SQCoX86ZfiZEe8px84sVJtivBXMZfOVyARTYEj0hrwwbj1nF0FwEL3nJSoEV6uTbcdLllMKBgAYHWCQ== - dependencies: - "@types/node" "*" - -"@types/tinycolor2@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.3.tgz#ed4a0901f954b126e6a914b4839c77462d56e706" - integrity sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ== - -"@types/tmp@0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.3.tgz#908bfb113419fd6a42273674c00994d40902c165" - integrity sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA== - -"@types/tough-cookie@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" - integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== - -"@types/uuid@8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/web-push@3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@types/web-push/-/web-push-3.3.2.tgz#8c32434147c0396415862e86405c9edc9c50fc15" - integrity sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw== - dependencies: - "@types/node" "*" - -"@types/webgl-ext@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" - integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== - -"@types/webgl2@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" - integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== - -"@types/websocket@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.5.tgz#3fb80ed8e07f88e51961211cd3682a3a4a81569c" - integrity sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== - dependencies: - "@types/node" "*" - -"@types/ws@8.5.3": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz#6df092a20e0f9ec748b27f293a12cb39d0c1fe4d" - integrity sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw== - dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/type-utils" "5.36.2" - "@typescript-eslint/utils" "5.36.2" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" - integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== - dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" - integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== - dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" - -"@typescript-eslint/type-utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz#752373f4babf05e993adf2cd543a763632826391" - integrity sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw== - dependencies: - "@typescript-eslint/typescript-estree" "5.36.2" - "@typescript-eslint/utils" "5.36.2" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" - integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== - -"@typescript-eslint/typescript-estree@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" - integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== - dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.2.tgz#b01a76f0ab244404c7aefc340c5015d5ce6da74c" - integrity sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" - integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== - dependencies: - "@typescript-eslint/types" "5.36.2" - eslint-visitor-keys "^3.3.0" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -"@webgpu/types@0.1.16": - version "0.1.16" - resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.16.tgz#1f05497b95b7c013facf7035c8e21784645f5cc4" - integrity sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A== - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@^1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== - -acorn-walk@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" - integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== - -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -adm-zip@^0.5.2: - version "0.5.9" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.9.tgz#b33691028333821c0cf95c31374c5462f2905a83" - integrity sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg== - -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== - -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" - integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== - dependencies: - glob "^7.1.4" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^2.0.0" - -archiver@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" - integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== - dependencies: - archiver-utils "^2.1.0" - async "^3.2.3" - buffer-crc32 "^0.2.1" - readable-stream "^3.6.0" - readdir-glob "^1.0.0" - tar-stream "^2.2.0" - zip-stream "^4.1.0" - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.3.0.tgz#439099fe9174e09cff5a54a9dda70260517e8689" - integrity sha512-WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-never@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" - integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async@>=0.2.9, async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -autobind-decorator@2.4.0, autobind-decorator@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.4.0.tgz#ea9e1c98708cf3b5b356f7cf9f10f265ff18239c" - integrity sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw== - -autwh@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/autwh/-/autwh-0.1.0.tgz#24a5300923309d105133401a2568f9c8ab7d7e03" - integrity sha512-IkGZ4kjVlZMkEmDiVtZpGG3lDGHPqsMBIh4IpQKN7idYOJ5EGedqKPO+ychNqh8zrJEEqYsN0NcBkcmoE2uFAw== - dependencies: - oauth "0.9.15" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sdk@2.1213.0: - version "2.1213.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1213.0.tgz#efdbe52c72e6879348650ff9a69ab55ef948b6f3" - integrity sha512-ZfrUfhlLjwvQ6QTbg8lR4+SRFHaivzZMmfpS+64YzafcKjwc7rklYqiyh4MPTSmdNZkErgaAykYpXPMuTiWBug== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.4.19" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" - integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== - dependencies: - follow-redirects "^1.14.4" - -babel-walk@3.0.0-canary-5: - version "3.0.0-canary-5" - resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" - integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== - dependencies: - "@babel/types" "^7.9.6" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base32.js@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.0.1.tgz#d045736a57b1f6c139f0c7df42518a84e91bb2ba" - integrity sha1-0EVzalex9sE58MffQlGKhOkbsro= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bcryptjs@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" - integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= - -big-integer@^1.6.17: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bl@^4.0.1, bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= - -blurhash@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.5.tgz#3034104cd5dce5a3e5caa871ae2f0f1f2d0ab566" - integrity sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg== - -bn.js@^4.0.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= - -bufferutil@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" - integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== - dependencies: - node-gyp-build "~3.7.0" - -bull@4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/bull/-/bull-4.9.0.tgz#522a955fa045141ce2c063ab24c2c78e4ee3782e" - integrity sha512-yiaSb41dywjIhJ3i1mczjQGDmM6pLIoM1Ea0Gcf5HKDxOoEzL5i9XEEKW7fbsj7u083UEOnQ4gSWfbWIUDO6JQ== - dependencies: - cron-parser "^4.2.1" - debuglog "^1.0.0" - get-port "^5.1.1" - ioredis "^4.28.5" - lodash "^4.17.21" - msgpackr "^1.5.2" - p-timeout "^3.2.0" - semver "^7.3.2" - uuid "^8.3.0" - -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= - dependencies: - dicer "0.2.5" - readable-stream "1.1.x" - -bytes@3.1.0, bytes@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^16.1.0: - version "16.1.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" - integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== - dependencies: - "@npmcli/fs" "^2.1.0" - "@npmcli/move-file" "^2.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - glob "^8.0.1" - infer-owner "^1.0.4" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - mkdirp "^1.0.4" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - unique-filename "^1.1.1" - -cache-content-type@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== - dependencies: - mime-types "^2.1.18" - ylru "^1.2.0" - -cacheable-lookup@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-lookup@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" - integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== - -cacheable-lookup@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" - integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -canonicalize@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.1.tgz#657b4f3fa38a6ecb97a9e5b7b26d7a19cc6e0da9" - integrity sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -cbor@*: - version "7.0.5" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-7.0.5.tgz#ed54cdbc19fa7352bb328d00a5393aa7ce45a10f" - integrity sha512-0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg== - dependencies: - "@cto.af/textdecoder" "^0.0.0" - nofilter "^2.0.3" - -cbor@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= - dependencies: - traverse ">=0.3.0 <0.4" - -chalk-template@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-0.4.0.tgz#692c034d0ed62436b9062c1707fadcd0f753204b" - integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== - dependencies: - chalk "^4.1.2" - -chalk@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" - integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.2, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -character-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= - dependencies: - is-regex "^1.0.3" - -cheerio@0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@3.5.3, chokidar@^3.3.1, chokidar@^3.5.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" - integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.3.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-highlight@2.1.11, cli-highlight@^2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== - dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -cluster-key-slot@1.1.0, cluster-key-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" - integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== - -co-body@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124" - integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ== - dependencies: - inflation "^2.0.0" - qs "^6.4.0" - raw-body "^2.2.0" - type-is "^1.6.14" - -co-body@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" - integrity sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw== - dependencies: - inflation "^2.0.0" - qs "^6.5.2" - raw-body "^2.3.3" - type-is "^1.6.16" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@2.0.1, color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^4.0.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" - integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - -colorette@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^9.0.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" - integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== - -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^4.0.2" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -condense-newlines@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -consolidate@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" - integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== - dependencies: - bluebird "^3.7.2" - -constantinople@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" - integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== - dependencies: - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.1" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-disposition@~0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookies@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== - dependencies: - depd "~2.0.0" - keygrip "~1.1.0" - -copy-to@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" - integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= - -core-js@3: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112" - integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== - dependencies: - exit-on-epipe "~1.0.1" - printj "~1.1.0" - -crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== - dependencies: - crc-32 "^1.2.0" - readable-stream "^3.4.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cron-parser@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.2.1.tgz#b43205d05ccd5c93b097dae64f3bd811f5993af3" - integrity sha512-5sJBwDYyCp+0vU5b7POl8zLWfgV5fOHxlc45FWoWdHecGC7MQHCjx0CHivCMRnGFovghKhhyYM+Zm9DcY5qcHg== - dependencies: - luxon "^1.28.0" - -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -cwise-compiler@^1.0.0, cwise-compiler@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" - integrity sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ== - dependencies: - uniq "^1.0.0" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz#18ae979a6a0ca994b0625853916d2662bbae0b1a" - integrity sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw== - -data-uri-to-buffer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" - integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -date-fns@2.29.2: - version "2.29.2" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" - integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== - -date-fns@^2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== - -debug@2, debug@^2.2.0, debug@^2.5.2, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -debug@4.3.4, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debuglog@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-email-validator@0.1.21: - version "0.1.21" - resolved "https://registry.yarnpkg.com/deep-email-validator/-/deep-email-validator-0.1.21.tgz#5d0120fe1aeae83ab7cb39378a40a381b681219f" - integrity sha512-DBAmMzbr+MAubXQ+TS9tZuPwLcdKscb8YzKZiwoLqF3NmaeEgXvSSHhZ0EXOFeKFE2FNWC4mNXCyiQ/JdFXUwg== - dependencies: - "@types/disposable-email-domains" "^1.0.1" - axios "^0.24.0" - disposable-email-domains "^1.0.59" - mailcheck "^1.1.1" - -deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== - -defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -denque@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" - integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== - -depd@^1.1.2, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@^2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-libc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.0.tgz#c528bc09bc6d1aa30149228240917c225448f204" - integrity sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw== - -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -disposable-email-domains@^1.0.59: - version "1.0.59" - resolved "https://registry.yarnpkg.com/disposable-email-domains/-/disposable-email-domains-1.0.59.tgz#8b3670667dcef9d0d21b224de283d56d468913c2" - integrity sha512-45NbOP1Oboaddf0pD5mGnT+1msEifY6VUcR9Msq4zBHk2EeGv9PxiwuoynIfdGID1BSFR3U3egPfMbERkqXxUQ== - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -doctypes@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domhandler@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" - integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== - dependencies: - domelementtype "^2.2.0" - -domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== - dependencies: - domelementtype "^2.2.0" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dotenv@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" - integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ecdsa-sig-formatter@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^3.1.7: - version "3.1.8" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" - integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== - dependencies: - jake "^10.8.5" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encode-utf8@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" - integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - -encodeurl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^5.0.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0" - integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -entities@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.0.tgz#62915f08d67353bb4eb67e3d62641a4059aec656" - integrity sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg== - -entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-regexp@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" - integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= - -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-import@2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@8.23.0: - version "8.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" - integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== - dependencies: - "@eslint/eslintrc" "^1.3.1" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" - "@humanwhocodes/module-importer" "^1.0.1" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -execa@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -exit-on-epipe@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== - -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-xml-parser@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" - integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -feed@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" - integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== - dependencies: - xml-js "^1.6.11" - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.4.tgz#e8c6567f80ad7fc22fd302e7dcb72bafde9c1717" - integrity sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-type@17.1.6: - version "17.1.6" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-17.1.6.tgz#18669e0577a4849ef6e73a41f8bdf1ab5ae21023" - integrity sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw== - dependencies: - readable-web-to-node-stream "^3.0.2" - strtok3 "^7.0.0-alpha.9" - token-types "^5.0.0-alpha.2" - -filelist@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.3.tgz#448607750376484932f67ef1b9ff07386b036c83" - integrity sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q== - dependencies: - minimatch "^5.0.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== - -fluent-ffmpeg@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74" - integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ= - dependencies: - async ">=0.2.9" - which "^1.1.1" - -follow-redirects@^1.14.4: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data-encoder@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.0.1.tgz#aec41860aca0275cb6026650d139c6701b0992c1" - integrity sha512-Oy+P9w5mnO4TWXVgUiQvggNKPI9/ummcSt5usuIV6HkaLKigwzPpoenhEqmGmx3zHqm6ZLJ+CR/99N8JLinaEw== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -fresh@~0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0, fs-minipass@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" - integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== - dependencies: - ansi-regex "^5.0.1" - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generic-pool@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9" - integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-paths@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/get-paths/-/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38" - integrity sha512-0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA== - dependencies: - pify "^4.0.1" - -get-pixels-frame-info-update@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/get-pixels-frame-info-update/-/get-pixels-frame-info-update-3.3.2.tgz#8b549efcb570454094e5a9dc51d61cb9a62cdb4f" - integrity sha512-LzVij57X/gK4Y6LpcDdqj+R9WCpD6Sv3ZH85GMA+S3xgPGCz81mHql4GiSnF4GijRjk7TE0ja2sDr8FFYKLe2g== - dependencies: - data-uri-to-buffer "0.0.3" - jpeg-js "^0.3.2" - mime-types "^2.0.1" - ndarray "^1.0.13" - ndarray-pack "^1.1.1" - node-bitmap "0.0.1" - omggif "^1.0.5" - parse-data-uri "^0.2.0" - pngjs "^3.3.3" - request "^2.44.0" - through "^2.3.4" - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gif-encoder@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/gif-encoder/-/gif-encoder-0.4.1.tgz#0ec2192b35b91e50073258354b13d3e5165f106b" - integrity sha512-++rNGpDBgWQ9eXj9JfTBLHMUEd7lDOdzIvFyHQM9yL8ffxkcg4G6jWmsgu/r59Uq6nHc3wcVwtgy3geLnIWunQ== - dependencies: - readable-stream "~1.1.9" - -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= - -glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@7.2.0, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.1: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -google-protobuf@^3.9.2: - version "3.20.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" - integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== - -got@11.8.5: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -got@12.3.1: - version "12.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.3.1.tgz#79d6ebc0cb8358c424165698ddb828be56e74684" - integrity sha512-tS6+JMhBh4iXMSXF6KkIsRxmloPln31QHDlcb6Ec3bzxjjFJFr/8aXdpyuLmVc9I4i2HyBHYw1QU5K1ruUdpkw== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - "@types/cacheable-request" "^6.0.2" - "@types/responselike" "^1.0.0" - cacheable-lookup "^6.0.4" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - form-data-encoder "^2.0.1" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -graceful-fs@^4.2.0, graceful-fs@^4.2.2: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -graceful-fs@^4.2.6: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.0, has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -highlight.js@^10.7.1: - version "10.7.2" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" - integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg== - -hpagent@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.2.tgz#cab39c66d4df2d4377dbd212295d878deb9bdaa9" - integrity sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ== - -hpagent@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.1.tgz#66f67f16e5c7a8b59a068e40c2658c2c749ad5e2" - integrity sha512-IxJWQiY0vmEjetHdoE9HZjD4Cx+mYTr25tR7JCxXaiI3QxW0YqYyM11KyZbHufoa/piWhMb2+D3FGpMgmA2cFQ== - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-entities@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== - -htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -htmlparser2@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-assert@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== - dependencies: - deep-equal "~1.0.1" - http-errors "~1.7.2" - -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@1.7.3, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -http2-wrapper@^2.1.10: - version "2.1.10" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.10.tgz#307cd0cee2564723692ad34c2d570d12f10e83be" - integrity sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -http_ece@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.1.0.tgz#74780c6eb32d8ddfe9e36a83abcd81fe0cd4fb75" - integrity sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA== - dependencies: - urlsafe-base64 "~1.0.0" - -https-proxy-agent@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - -humanize-number@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" - integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg= - -iconv-lite@0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@1.1.13, ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflation@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" - integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -install-artifact-from-github@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.1.tgz#eefaad9af35d632e5d912ad1569c1de38c3c2462" - integrity sha512-3l3Bymg2eKDsN5wQuMfgGEj2x6l5MCAv0zPL6rxHESufFVlEAKW/6oY9F1aGgvY/EgWm5+eWGRjINveL4X7Hgg== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -ioredis@4.28.5, ioredis@^4.28.5: - version "4.28.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f" - integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A== - dependencies: - cluster-key-slot "^1.1.0" - debug "^4.3.1" - denque "^1.1.0" - lodash.defaults "^4.2.0" - lodash.flatten "^4.4.0" - lodash.isarguments "^3.1.0" - p-map "^2.1.0" - redis-commands "1.7.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - -iota-array@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" - integrity sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA== - -ip-address@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-7.1.0.tgz#4a9c699e75b51cbeb18b38de8ed216efa1a490c5" - integrity sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ== - dependencies: - jsbn "1.1.0" - sprintf-js "1.1.2" - -ip-cidr@3.0.10: - version "3.0.10" - resolved "https://registry.yarnpkg.com/ip-cidr/-/ip-cidr-3.0.10.tgz#e1a039705196d84b43858f81a243fd70def9cefc" - integrity sha512-PXSsrRYirsuaCI1qBVyVXRLUIpNzxm76eHd3UvN5NXTMUG85GWGZpr6P+70mimc5e7Nfh/tShmjk0oSywErMWg== - dependencies: - ip-address "^7.1.0" - jsbn "^1.1.0" - -ip-regex@^4.0.0, ip-regex@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.0.2, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-callable@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-expression@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" - integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== - dependencies: - acorn "^7.1.1" - object-assign "^4.1.1" - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-function@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-promise@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-svg@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.2.tgz#a119e9932e1af53f6be1969d1790d6cc5fd947d3" - integrity sha512-mM90duy00JGMyjqIVHu9gNTjywdZV+8qNasX8cm/EEYZ53PHDgajvbBwNVvty5dwSAxLUD3p3bdo+7sR/UMrpw== - dependencies: - fast-xml-parser "^3.19.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== - dependencies: - call-bind "^1.0.0" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-whitespace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== - -jpeg-js@^0.3.2: - version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== - -jpeg-js@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" - integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== - -js-beautify@^1.6.12: - version "1.11.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" - integrity sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A== - dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.3" - glob "^7.1.3" - mkdirp "~1.0.3" - nopt "^4.0.3" - -js-levenshtein@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -js-stringify@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@1.1.0, jsbn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jschardet@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" - integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== - -jsdom@20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== - dependencies: - abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.3.1" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.8.0" - xml-name-validator "^4.0.0" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/json5-loader/-/json5-loader-4.0.1.tgz#6d17a1181e8f3c3d9204dca2a4ce4627306c8498" - integrity sha512-c9viNZlZTz0MTIcf/4qvek5Dz1/PU3DNCB4PwUhlEZIV3qb1bSD6vQQymlV17/Wm6ncra1aCvmIPsuRj+KfEEg== - dependencies: - json5 "^2.1.3" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -json5@2.2.1, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" - integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== - dependencies: - universalify "^0.1.2" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonld@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-6.0.0.tgz#560a8a871dce72aba5d4c6b08356438d863d62fb" - integrity sha512-1SkN2RXhMCTCSkX+bzHvr9ycM2HTmjWyV41hn2xG7k6BqlCgRjw0zHmuqfphjBRPqi1gKMIqgBCe/0RZMcWrAA== - dependencies: - "@digitalbazaar/http-client" "^3.2.0" - canonicalize "^1.0.1" - lru-cache "^6.0.0" - rdf-canonize "^3.0.0" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -jsrsasign@10.5.27: - version "10.5.27" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.5.27.tgz#481defb1206aa48cd740c3fce8ff546efb5bb45e" - integrity sha512-1F4LmDeJZHYwoVvB44jEo2uZL3XuwYNzXCDOu53Ui6vqofGQ/gCYDmaxfVZtN0TGd92UKXr/BONcfrPonUIcQQ== - -jstransformer@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= - dependencies: - is-promise "^2.0.0" - promise "^7.0.1" - -jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== - dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" - -keygrip@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== - dependencies: - tsscmp "1.0.6" - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -koa-bodyparser@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" - integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== - dependencies: - co-body "^6.0.0" - copy-to "^2.0.1" - -koa-compose@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== - -koa-convert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" - integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== - dependencies: - co "^4.6.0" - koa-compose "^4.1.0" - -koa-favicon@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/koa-favicon/-/koa-favicon-2.1.0.tgz#c430cc594614fb494adcb5ee1196a2f7f53ea442" - integrity sha512-LvukcooYjxKtnZq0RXdBup+JDhaHwLgnLlDHB/xvjwQEjbc4rbp/0WkmOzpOvaHujc+fIwPear0dpKX1V+dHVg== - dependencies: - mz "^2.7.0" - -koa-json-body@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/koa-json-body/-/koa-json-body-5.3.0.tgz#64aad3f400adfb81df54b63f7a5eb38bad62d980" - integrity sha1-ZKrT9ACt+4HfVLY/el6zi61i2YA= - dependencies: - co-body "^5.0.0" - -koa-logger@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" - integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg== - dependencies: - bytes "^3.1.0" - chalk "^2.4.2" - humanize-number "0.0.2" - passthrough-counter "^1.0.0" - -koa-mount@4.0.0, koa-mount@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" - integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== - dependencies: - debug "^4.0.1" - koa-compose "^4.1.0" - -koa-router@^10.0.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-10.1.1.tgz#20809f82648518b84726cd445037813cd99f17ff" - integrity sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ== - dependencies: - debug "^4.1.1" - http-errors "^1.7.3" - koa-compose "^4.1.0" - methods "^1.1.2" - path-to-regexp "^6.1.0" - -koa-send@5.0.1, koa-send@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" - integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== - dependencies: - debug "^4.1.1" - http-errors "^1.7.3" - resolve-path "^1.4.0" - -koa-slow@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/koa-slow/-/koa-slow-2.1.0.tgz#39007ca628c620f2b307b90dbf423d7a0c9be971" - integrity sha1-OQB8pijGIPKzB7kNv0I9egyb6XE= - dependencies: - lodash.isregexp "3.0.5" - q "1.4.1" - -koa-static@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" - integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== - dependencies: - debug "^3.1.0" - koa-send "^5.0.0" - -koa-views@*: - version "7.0.1" - resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.1.tgz#0c8f8e65d5cd2e08249430cb83dc361e49a17a5a" - integrity sha512-yS8751DXHXXDbdl/oUZd0PsgnxR0MLiguu77Eqrgu6yawE9Hi99wNKiVENb0Kfgsmvq/8px7YCI+USgxaTB1LA== - dependencies: - "@types/koa" "^2.13.1" - consolidate "^0.16.0" - debug "^4.1.0" - get-paths "0.0.7" - koa-send "^5.0.0" - mz "^2.4.0" - pretty "^2.0.0" - resolve-path "^1.4.0" - -koa-views@7.0.2, koa-views@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.2.tgz#c96fd9e2143ef00c29dc5160c5ed639891aa723d" - integrity sha512-dvx3mdVeSVuIPEaKAoGbxLcenudvhl821xxyuRbcoA+bOJ2dvN8wlGjkLu0ZFMlkCscXZV6lzxy28rafeazI/w== - dependencies: - consolidate "^0.16.0" - debug "^4.1.0" - get-paths "0.0.7" - koa-send "^5.0.0" - mz "^2.4.0" - pretty "^2.0.0" - resolve-path "^1.4.0" - -koa@2.13.4, koa@^2.13.1: - version "2.13.4" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" - integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== - dependencies: - accepts "^1.3.5" - cache-content-type "^1.0.0" - content-disposition "~0.5.2" - content-type "^1.0.4" - cookies "~0.8.0" - debug "^4.3.2" - delegates "^1.0.0" - depd "^2.0.0" - destroy "^1.0.4" - encodeurl "^1.0.2" - escape-html "^1.0.3" - fresh "~0.5.2" - http-assert "^1.3.0" - http-errors "^1.6.3" - is-generator-function "^1.0.7" - koa-compose "^4.1.0" - koa-convert "^2.0.0" - on-finished "^2.3.0" - only "~0.0.2" - parseurl "^1.3.2" - statuses "^1.5.0" - type-is "^1.6.16" - vary "^1.1.2" - -ky-universal@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.10.1.tgz#778881e098f6e3c52a87b382d9acca54d22bb0d3" - integrity sha512-r8909k+ELKZAxhVA5c440x22hqw5XcMRwLRbgpPQk4JHy3/ddJnvzcnSo5Ww3HdKdNeS3Y8dBgcIYyVahMa46g== - dependencies: - abort-controller "^3.0.0" - node-fetch "^3.2.2" - -ky@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/ky/-/ky-0.30.0.tgz#a3d293e4f6c4604a9a4694eceb6ce30e73d27d64" - integrity sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog== - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - -lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - -lodash.isarguments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isregexp@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/lodash.isregexp/-/lodash.isregexp-3.0.5.tgz#e0f596242f2fa228a840086b6c8ad82e4b71fd2d" - integrity sha1-4PWWJC8voiioQAhrbIrYLktx/S0= - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.merge@^4.4.0, lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= - -lodash@^4.17.11, lodash@^4.17.19, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -long@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lru-cache@^7.7.1: - version "7.12.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.12.0.tgz#be2649a992c8a9116efda5c487538dcf715f3476" - integrity sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw== - -luxon@^1.28.0: - version "1.28.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" - integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== - -mailcheck@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mailcheck/-/mailcheck-1.1.1.tgz#d87cf6ba0b64ba512199dbf93f1489f479591e34" - integrity sha1-2Hz2ugtkulEhmdv5PxSJ9HlZHjQ= - -make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^10.0.3: - version "10.1.8" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz#3b6e93dd8d8fdb76c0d7bf32e617f37c3108435a" - integrity sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g== - dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mfm-js@0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/mfm-js/-/mfm-js-0.23.0.tgz#1d1477761aa8259ddcac2e6882df53ed9ca5b82b" - integrity sha512-2Oe/YicoaP1EU2y9JB5729/PQLZK/7aAVomeJkp1h4XGP2//NMDC+DHkBbSO71U3GG086SAZM0JBB/hdPPSEXg== - dependencies: - twemoji-parser "14.0.0" - -micromatch@^4.0.0, micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@2.1.35, mime-types@^2.0.1, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@5.0.1, minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8" - integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== - dependencies: - minipass "^3.1.6" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -misskey-js@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/misskey-js/-/misskey-js-0.0.14.tgz#1a616bdfbe81c6ee6900219eaf425bb5c714dd4d" - integrity sha512-bvLx6U3OwQwqHfp/WKwIVwdvNYAAPk0+YblXyxmSG3dwlzCgBRRLcB8o6bNruUDyJgh3t73pLDcOz3myxcUmww== - dependencies: - autobind-decorator "^2.4.0" - eventemitter3 "^4.0.7" - reconnecting-websocket "^4.4.0" - -mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== - -mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -"mkdirp@>=0.5 0", mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mocha@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" - integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -moment@^2.22.2: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -ms@3.0.0-canary.1: - version "3.0.0-canary.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.1.tgz#c7b34fbce381492fd0b345d1cf56e14d67b77b80" - integrity sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g== - -msgpackr-extract@^1.0.14: - version "1.0.16" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz#701c4f6e6f25c100ae84557092274e8fffeefe45" - integrity sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA== - dependencies: - nan "^2.14.2" - node-gyp-build "^4.2.3" - -msgpackr@^1.5.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.4.tgz#2b6ea6cb7d79c0ad98fc76c68163c48eda50cf0d" - integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== - optionalDependencies: - msgpackr-extract "^1.0.14" - -multer@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== - dependencies: - append-field "^1.0.0" - busboy "^0.2.11" - concat-stream "^1.5.2" - mkdirp "^0.5.4" - object-assign "^4.1.1" - on-finished "^2.3.0" - type-is "^1.6.4" - xtend "^4.0.0" - -multi-integer-range@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/multi-integer-range/-/multi-integer-range-3.0.0.tgz#d8ec2744d08758f2acf81653d2fe038a95cf7595" - integrity sha512-uQzynjVJ8F7x5wjaK0g4Ybhy2TvO/pk96+YHyS5g1W4GuUEV6HMebZ8HcRwWgKIRCUT2MLbM5uCKwYcAqkS+8Q== - -mylas@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.9.tgz#8329626f95c0ce522ca7d3c192eca6221d172cdc" - integrity sha512-pa+cQvmhoM8zzgitPYZErmDt9EdTNVnXsH1XFjMeM4TyG4FFcgxrvK1+jwabVFwUOEDaSWuXBMjg43kqt/Ydlg== - -mz@^2.4.0, mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.14.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nan@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -nanoid@^3.1.30: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -ndarray-ops@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ndarray-ops/-/ndarray-ops-1.2.2.tgz#59e88d2c32a7eebcb1bc690fae141579557a614e" - integrity sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw== - dependencies: - cwise-compiler "^1.0.0" - -ndarray-pack@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ndarray-pack/-/ndarray-pack-1.2.1.tgz#8caebeaaa24d5ecf70ff86020637977da8ee585a" - integrity sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g== - dependencies: - cwise-compiler "^1.1.2" - ndarray "^1.0.13" - -ndarray@1.0.18: - version "1.0.18" - resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.18.tgz#b60d3a73224ec555d0faa79711e502448fd3f793" - integrity sha512-jUz6G+CIsEsqs2VlB1EvaQSAA0Jkf8YKm7eFBleKyhiQjYWzTxXqHzWEOm3jFoGCpxGh4DnPUYHB4ECWE+n9SQ== - dependencies: - iota-array "^1.0.0" - is-buffer "^1.0.2" - -ndarray@^1.0.13: - version "1.0.19" - resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" - integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== - dependencies: - iota-array "^1.0.0" - is-buffer "^1.0.2" - -needle@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a" - integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -nested-property@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/nested-property/-/nested-property-4.0.0.tgz#a67b5a31991e701e03cdbaa6453bc5b1011bb88d" - integrity sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA== - -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-abi@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.5.0.tgz#26e8b7b251c3260a5ac5ba5aef3b4345a0229248" - integrity sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw== - dependencies: - semver "^7.3.5" - -node-addon-api@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" - integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== - -node-bitmap@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" - integrity sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA== - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@*: - version "3.2.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.0.tgz#59390db4e489184fa35d4b74caf5510e8dfbaf3b" - integrity sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-fetch@3.2.10: - version "3.2.10" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" - integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@~2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^3.2.2: - version "3.2.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.6.tgz#6d4627181697a9d9674aae0d61548e0d629b31b9" - integrity sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-gyp-build@^4.2.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - -node-gyp-build@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" - integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== - -node-gyp@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" - integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -nodemailer@6.7.8: - version "6.7.8" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.8.tgz#9f1af9911314960c0b889079e1754e8d9e3f740a" - integrity sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g== - -nofilter@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-2.0.3.tgz#f5460f3cb33147005883e3f5d4476239501fa187" - integrity sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug== - dependencies: - "@cto.af/textdecoder" "^0.0.0" - -nofilter@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" - integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== - -nopt@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.0.tgz#ba9ef39413c3d936ea91553db7be49c34ad0520c" - integrity sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.0" - set-blocking "^2.0.0" - -nsfwjs@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/nsfwjs/-/nsfwjs-2.4.2.tgz#dd8656705f79f53d789245eaf317d6b6818a0032" - integrity sha512-i4Pp2yt59qPQgeZFyg3wXFBX52uSeu/hkDoqdZfe+sILRxNBUu0VDogj7Lmqak0GlrXviS/wLiVeIx40IDUu7A== - dependencies: - "@nsfw-filter/gif-frames" "1.0.2" - -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -oauth@0.9.15: - version "0.9.15" - resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" - integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-inspect@^1.12.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -omggif@^1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -on-finished@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -only@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= - -opentype.js@^0.4.3: - version "0.4.11" - resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-0.4.11.tgz#281a2390639cc15931c955d8d63c14a7c7772b41" - integrity sha1-KBojkGOcwVkxyVXY1jwUp8d3K0E= - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -os-utils@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/os-utils/-/os-utils-0.0.14.tgz#29e511697b1982b8c627722175fe39797ef64156" - integrity sha1-KeURaXsZgrjGJ3Ihdf45eX72QVY= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-data-uri@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/parse-data-uri/-/parse-data-uri-0.2.0.tgz#bf04d851dd5c87b0ab238e5d01ace494b604b4c9" - integrity sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w== - dependencies: - data-uri-to-buffer "0.0.3" - -parse-srcset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" - integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= - -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== - dependencies: - entities "^4.4.0" - -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== - dependencies: - entities "^4.3.0" - -parseurl@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -passthrough-counter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" - integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@1.0.1, path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" - integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -peek-readable@^5.0.0-alpha.5: - version "5.0.0-alpha.5" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0-alpha.5.tgz#ace5dfedf7bc33f17c9b5170b9d54f69a4fba79b" - integrity sha512-pJohF/tDwV3ntnT5+EkUo4E700q/j/OCDuPxtM+5/kFGjyOai/sK4/We4Cy1MB2OiTQliWU5DxPvYIKQAdPqAA== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -pg-connection-string@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" - integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.2.tgz#ed1bed1fb8d79f1c6fd5fb1c99e990fbf9ddf178" - integrity sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w== - -pg-protocol@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" - integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.8.0.tgz#a77f41f9d9ede7009abfca54667c775a240da686" - integrity sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.5.2" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" - -pgpass@1.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" - integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= - dependencies: - split "^1.0.0" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -plimit-lit@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.2.6.tgz#8c1336f26a042b6e9f1acc665be5eee4c2a55fb3" - integrity sha512-EuVnKyDeFgr58aidKf2G7DI41r23bxphlvBKAZ8e8dT9of0Ez2g9w6JbJGUP1YBNC2yG9+ZCCbjLj4yS1P5Gzw== - dependencies: - queue-lit "^1.2.7" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -pngjs-nozlib@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pngjs-nozlib/-/pngjs-nozlib-1.0.0.tgz#9e64d602cfe9cce4d9d5997d0687429a73f0b7d7" - integrity sha512-N1PggqLp9xDqwAoKvGohmZ3m4/N9xpY0nDZivFqQLcpLHmliHnCp9BuNCsOeqHWMuEEgFjpEaq9dZq6RZyy0fA== - -pngjs@^3.3.1, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -postcss@^8.3.11: - version "8.3.11" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" - integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^0.6.2" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= - -postgres-date@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" - integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -prebuild-install@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.0.tgz#991b6ac16c81591ba40a6d5de93fb33673ac1370" - integrity sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= - dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" - -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== - -private-ip@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.3.tgz#1e80ff8443e5ac78f555631aec3ea6ff027fa6aa" - integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== - dependencies: - ip-regex "^4.3.0" - ipaddr.js "^2.0.1" - is-ip "^3.1.0" - netmask "^2.0.2" - -private-ip@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.4.tgz#e2944f2a7a0142ec6640efda323af4b96307524e" - integrity sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A== - dependencies: - ip-regex "^4.3.0" - ipaddr.js "^2.0.1" - is-ip "^3.1.0" - netmask "^2.0.2" - -probe-image-size@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-7.2.3.tgz#d49c64be540ec8edea538f6f585f65a9b3ab4309" - integrity sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w== - dependencies: - lodash.merge "^4.6.2" - needle "^2.5.2" - stream-parser "~0.3.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-limit@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" - integrity sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -promise@^7.0.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pug-attrs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" - integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== - dependencies: - constantinople "^4.0.1" - js-stringify "^1.0.2" - pug-runtime "^3.0.0" - -pug-code-gen@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" - integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg== - dependencies: - constantinople "^4.0.1" - doctypes "^1.1.0" - js-stringify "^1.0.2" - pug-attrs "^3.0.0" - pug-error "^2.0.0" - pug-runtime "^3.0.0" - void-elements "^3.1.0" - with "^7.0.0" - -pug-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" - integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== - -pug-filters@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" - integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== - dependencies: - constantinople "^4.0.1" - jstransformer "1.0.0" - pug-error "^2.0.0" - pug-walk "^2.0.0" - resolve "^1.15.1" - -pug-lexer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" - integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== - dependencies: - character-parser "^2.2.0" - is-expression "^4.0.0" - pug-error "^2.0.0" - -pug-linker@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" - integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== - dependencies: - pug-error "^2.0.0" - pug-walk "^2.0.0" - -pug-load@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" - integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== - dependencies: - object-assign "^4.1.1" - pug-walk "^2.0.0" - -pug-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" - integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== - dependencies: - pug-error "^2.0.0" - token-stream "1.0.0" - -pug-runtime@^3.0.0, pug-runtime@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" - integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== - -pug-strip-comments@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" - integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== - dependencies: - pug-error "^2.0.0" - -pug-walk@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" - integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== - -pug@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" - integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== - dependencies: - pug-code-gen "^3.0.2" - pug-filters "^4.0.0" - pug-lexer "^5.0.1" - pug-linker "^4.0.0" - pug-load "^3.0.0" - pug-parser "^6.0.0" - pug-runtime "^3.0.1" - pug-strip-comments "^2.0.0" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@2.1.1, punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pureimage@0.3.14: - version "0.3.14" - resolved "https://registry.yarnpkg.com/pureimage/-/pureimage-0.3.14.tgz#e5fde69c7999d5114667926bda620ba462f72823" - integrity sha512-MoXNFWnJaaxMCqfB97Gyw73rI4MEY075VW/WJ+Z+F/ZgQP7HH8kdcIf8Meif15sdCXhTFlMTSHQxSIrSWkQILw== - dependencies: - jpeg-js "^0.4.1" - opentype.js "^0.4.3" - pngjs "^3.3.1" - -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= - -qrcode@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" - integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - -qs@^6.4.0, qs@^6.5.2: - version "6.9.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -queue-lit@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.2.7.tgz#69081656c9e7b81f09770bb2de6aa007f1a90763" - integrity sha512-K/rTdggORRcmf3+c89ijPlgJ/ldGP4oBj6Sm7VcTup4B2clf03Jo8QaXTnMst4EEQwkUbOZFN4frKocq2I85gw== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -random-seed@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/random-seed/-/random-seed-0.3.0.tgz#d945f2e1f38f49e8d58913431b8bf6bb937556cd" - integrity sha1-2UXy4fOPSejViRNDG4v2u5N1Vs0= - dependencies: - json-stringify-safe "^5.0.1" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -rangestr@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/rangestr/-/rangestr-0.0.1.tgz#f72ff9246f10f2a7d7c16e14616f617be2c2635a" - integrity sha1-9y/5JG8Q8qfXwW4UYW9he+LCY1o= - -ratelimiter@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ratelimiter/-/ratelimiter-3.4.1.tgz#fa69e94937413382a926aaa17aaeaa6263af4659" - integrity sha512-5FJbRW/Jkkdk29ksedAfWFkQkhbUrMx3QJGwMKAypeIiQf4yrLW+gtPKZiaWt4zPrtw1uGufOjGO7UGM6VllsQ== - -raw-body@^2.2.0, raw-body@^2.3.3: - version "2.4.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== - dependencies: - bytes "3.1.0" - http-errors "1.7.3" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -rdf-canonize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-3.0.0.tgz#f5bade563e5e58f5cc5881afcba3c43839e8c747" - integrity sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w== - dependencies: - setimmediate "^1.0.5" - -re2@1.17.7: - version "1.17.7" - resolved "https://registry.yarnpkg.com/re2/-/re2-1.17.7.tgz#e14cab85a177a5534c7215c322d1b043c55aa1e9" - integrity sha512-X8GSuiBoVWwcjuppqSjsIkRxNUKDdjhkO9SBekQbZ2ksqWUReCy7DQPWOVpoTnpdtdz5PIpTTxTFzvJv5UMfjA== - dependencies: - install-artifact-from-github "^1.3.1" - nan "^2.16.0" - node-gyp "^9.0.0" - -readable-stream@1.1.x, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-web-to-node-stream@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - -readdir-glob@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" - integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== - dependencies: - minimatch "^3.0.4" - -readdirp@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" - integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== - dependencies: - picomatch "^2.0.7" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reconnecting-websocket@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" - integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== - -redis-commands@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" - integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== - -redis-errors@^1.0.0, redis-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= - -redis-info@^3.0.8: - version "3.1.0" - resolved "https://registry.yarnpkg.com/redis-info/-/redis-info-3.1.0.tgz#5e349c8720e82d27ac84c73136dce0931e10469a" - integrity sha512-ER4L9Sh/vm63DkIE0bkSjxluQlioBiBgf5w1UuldaW/3vPcecdljVDisZhmnCMvsxHNiARTTDDHGg9cGwTfrKg== - dependencies: - lodash "^4.17.11" - -redis-lock@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/redis-lock/-/redis-lock-0.1.4.tgz#e83590bee22b5f01cdb65bfbd88d988045356272" - integrity sha512-7/+zu86XVQfJVx1nHTzux5reglDiyUCDwmW7TSlvVezfhH2YLc/Rc8NE0ejQG+8/0lwKzm29/u/4+ogKeLosiA== - -redis-parser@3.0.0, redis-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= - dependencies: - redis-errors "^1.0.0" - -redis@*: - version "4.0.2" - resolved "https://registry.yarnpkg.com/redis/-/redis-4.0.2.tgz#096cf716842731a24f34c7c3a996c143e2b133bb" - integrity sha512-Ip1DJ/lwuvtJz9AZ6pl1Bv33fWzk5d3iQpGzsXpi04ErkT4fq0pfGOm4k/p9DHmPGieEIOWvJ9xmIeQMooLybg== - dependencies: - "@node-redis/bloom" "^1.0.0" - "@node-redis/client" "^1.0.2" - "@node-redis/json" "^1.0.2" - "@node-redis/search" "^1.0.2" - "@node-redis/time-series" "^1.0.1" - -reflect-metadata@0.1.13, reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regenerator-runtime@^0.13.5: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -rename@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/rename/-/rename-1.0.4.tgz#a0f25078fa4195e650f73050c7c12ccf689f430b" - integrity sha1-oPJQePpBleZQ9zBQx8Esz2ifQws= - dependencies: - debug "^2.5.2" - -request@^2.44.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-all@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/require-all/-/require-all-3.0.0.tgz#473d49704be310115ce124f77383b1ebd8671312" - integrity sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-alpn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" - integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== - -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-path@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" - integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= - dependencies: - http-errors "~1.6.2" - path-is-absolute "1.0.1" - -resolve@^1.15.1, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@2, rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rndstr@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" - integrity sha1-d+ZvqPm0g2hT/dkeUHGVkbtn00k= - dependencies: - rangestr "0.0.1" - seedrandom "2.4.2" - -rss-parser@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/rss-parser/-/rss-parser-3.12.0.tgz#b8888699ea46304a74363fbd8144671b2997984c" - integrity sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A== - dependencies: - entities "^2.0.3" - xml2js "^0.4.19" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -s-age@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/s-age/-/s-age-1.1.2.tgz#c0cf15233ccc93f41de92ea42c36d957977d1ea2" - integrity sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA== - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-html@2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.7.1.tgz#a6c2c1a88054a79eeacfac9b0a43f1b393476901" - integrity sha512-oOpe8l4J8CaBk++2haoN5yNI5beekjuHv3JRPKUx/7h40Rdr85pemn4NkvUB3TcBP7yjat574sPlcMAyv4UQig== - dependencies: - deepmerge "^4.2.2" - escape-string-regexp "^4.0.0" - htmlparser2 "^6.0.0" - is-plain-object "^5.0.0" - parse-srcset "^1.0.2" - postcss "^8.3.11" - -sax@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== - dependencies: - "@types/json-schema" "^7.0.6" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -secure-json-parse@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.1.0.tgz#ae76f5624256b5c497af887090a5d9e156c9fb20" - integrity sha512-GckO+MS/wT4UogDyoI/H/S1L0MCcKS1XX/vp48wfmU7Nw4woBmb8mIpu4zPBQjKlRT88/bt9xdoV4111jPpNJA== - -seedrandom@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" - integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= - -seedrandom@3.0.5, seedrandom@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" - integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== - -semver@7.3.7, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -setimmediate@^1.0.5, setimmediate@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.11: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sharp@0.29.3: - version "0.29.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.3.tgz#0da183d626094c974516a48fab9b3e4ba92eb5c2" - integrity sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA== - dependencies: - color "^4.0.1" - detect-libc "^1.0.3" - node-addon-api "^4.2.0" - prebuild-install "^7.0.0" - semver "^7.3.5" - simple-get "^4.0.0" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.2.0" - -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -speakeasy@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/speakeasy/-/speakeasy-2.0.0.tgz#85c91a071b09a5cb8642590d983566165f57613a" - integrity sha1-hckaBxsJpcuGQlkNmDVmFl9XYTo= - dependencies: - base32.js "0.0.1" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sprintf-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.14.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" - integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== - dependencies: - minipass "^3.1.1" - -standard-as-callback@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" - integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-parser@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" - integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= - dependencies: - debug "2" - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -strict-event-emitter-types@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" - integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringz@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c" - integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== - dependencies: - char-regex "^1.0.2" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strtok3@^7.0.0-alpha.9: - version "7.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0-alpha.9.tgz#a4ad5889e4fb5cea3514298435c6d7e84e595752" - integrity sha512-G8WxjBFjTZ77toVElv1i7k3jCXNkBB14FVaZ/6LIOka/WGo4La5XHLrU7neFVLdKbXESZf4BejVKZu5maOmocA== - dependencies: - "@tokenizer/token" "^0.3.0" - peek-readable "^5.0.0-alpha.5" - -summaly@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/summaly/-/summaly-2.7.0.tgz#ccccec0477938edea13cb34412a33e705398c0c4" - integrity sha512-pEz9LL8Gp0oPIQfn6TrnBCcv/HkFE14hxhH3W6LPGdopXlPXjRcMlDMJaO+VupUNMOGaMjCsjq7+0rWnu8sp7w== - dependencies: - cheerio "0.22.0" - debug "4.3.3" - escape-regexp "0.0.1" - got "11.8.5" - html-entities "2.3.2" - iconv-lite "0.6.3" - jschardet "3.0.0" - koa "2.13.4" - private-ip "2.3.3" - require-all "3.0.0" - trace-redirect "1.0.6" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -syslog-pro@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/syslog-pro/-/syslog-pro-1.0.0.tgz#e46bfd39f58937352645091e84a3b903f39e12ea" - integrity sha512-7SNMJKtQBJlwBUp1jxFT7bXya71cnINXPCYJ2AVhlQE4MKL7o2QiPdAXbMdWRiLeykQ2rx+7TNrnoGzvzhO+eA== - dependencies: - moment "^2.22.2" - -systeminformation@5.12.6: - version "5.12.6" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.12.6.tgz#b75d7aaf9f5da32439fc633d2be9eb741691d200" - integrity sha512-FkCvT5BOuH1OE3+8lFM25oXIYJ0CM8kq4Wgvz2jyBTrsOIgha/6gdJXgbF4rv+g0j/5wJqQLDKan7kc/p7uIvw== - -tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== - -tar-fs@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" - integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" - integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== - dependencies: - bl "^4.0.1" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar-stream@^2.1.4, tar-stream@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^4.4.6: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -through@2, through@^2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -through@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.4.tgz#495e40e8d8a8eaebc7c275ea88c2b8fc14c56455" - integrity sha512-DwbmSAcABsMazNkLOJJSLRC3gfh4cPxUxJCn9npmvbcI6undhgoJ2ShvEOgZrW8BH62Gyr9jKboGbfFcmY5VsQ== - -tinycolor2@1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== - -tmp@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -token-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= - -token-types@^5.0.0-alpha.2: - version "5.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.0-alpha.2.tgz#e43d63b2a8223a593d1c782a5149bec18f1abf97" - integrity sha512-EsG9UxAW4M6VATrEEjhPFTKEUi1OiJqTUMIZOGBN49fGxYjZB36k0p7to3HZSmWRoHm1QfZgrg3e02fpqAt5fQ== - dependencies: - "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -trace-redirect@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/trace-redirect/-/trace-redirect-1.0.6.tgz#ac629b5bf8247d30dde5a35fe9811b811075b504" - integrity sha512-UUfa1DjjU5flcjMdaFIiIEGDTyu2y/IiMjOX4uGXa7meKBS4vD4f2Uy/tken9Qkd4Jsm4sRsfZcIIPqrRVF3Mg== - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= - -ts-loader@9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.3.1.tgz#fe25cca56e3e71c1087fe48dc67f4df8c59b22d4" - integrity sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -ts-node@10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tsc-alias@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.7.0.tgz#733482751133a25b97608ee424f8a1f085fcaaef" - integrity sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg== - dependencies: - chokidar "^3.5.3" - commander "^9.0.0" - globby "^11.0.4" - mylas "^2.1.9" - normalize-path "^3.0.0" - plimit-lit "^1.2.6" - -tsconfig-paths@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" - integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== - dependencies: - json5 "^2.2.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== - -tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tsscmp@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -twemoji-parser@14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" - integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.4: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typeorm@0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.9.tgz#ad0f525d81c081fd11006f97030f47a55978ac81" - integrity sha512-xNcE44D4hn74n7pjuMog9hRgep+BiO3IBpjEaQZ8fb56zsDz7xHT1GAeWwmGuuU+4nDEELp2mIqgSCR+zxR7Jw== - dependencies: - "@sqltools/formatter" "^1.2.2" - app-root-path "^3.0.0" - buffer "^6.0.3" - chalk "^4.1.0" - cli-highlight "^2.1.11" - date-fns "^2.28.0" - debug "^4.3.3" - dotenv "^16.0.0" - glob "^7.2.0" - js-yaml "^4.1.0" - mkdirp "^1.0.4" - reflect-metadata "^0.1.13" - sha.js "^2.4.11" - tslib "^2.3.1" - uuid "^8.3.2" - xml2js "^0.4.23" - yargs "^17.3.1" - -typescript@4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" - integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== - -ulid@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" - integrity sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici@^5.2.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.8.0.tgz#dec9a8ccd90e5a1d81d43c0eab6503146d649a4f" - integrity sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q== - -uniq@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unzipper@0.10.11: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" - integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= - -utf-8-validate@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" - integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== - dependencies: - node-gyp-build "~3.7.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@^0.12.4: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -uuid@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - -uuid@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -vary@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -void-elements@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" - integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== - dependencies: - xml-name-validator "^4.0.0" - -web-push@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.5.0.tgz#4576533746052eda3bd50414b54a1b0a21eeaeae" - integrity sha512-JC0V9hzKTqlDYJ+LTZUXtW7B175qwwaqzbbMSWDxHWxZvd3xY0C2rcotMGDavub2nAAFw+sXTsqR65/KY2A5AQ== - dependencies: - asn1.js "^5.3.0" - http_ece "1.1.0" - https-proxy-agent "^5.0.0" - jws "^4.0.0" - minimist "^1.2.5" - urlsafe-base64 "^1.0.0" - -web-streams-polyfill@^3.0.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz#a6b74026b38e4885869fb5c589e90b95ccfc7965" - integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -websocket@1.0.34: - version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - -which@^1.1.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -with@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" - integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== - dependencies: - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - assert-never "^1.2.1" - babel-walk "3.0.0-canary-5" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - -ws@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== - -xev@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/xev/-/xev-3.0.2.tgz#3f4080bd8bed0d3479c674050e3696da98d22a4d" - integrity sha512-8kxuH95iMXzHZj+fwqfA4UrPcYOy6bGIgfWzo9Ji23JoEc30ge/Z++Ubkiuy8c0+M64nXmmxrmJ7C8wnuBhluw== - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xml2js@^0.4.19, xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yallist@4.0.0, yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yaml-ast-parser@0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" - integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== - -yargs-parser@20.2.4, yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0, yargs@^16.0.0, yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.3.1: - version "17.4.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.0.tgz#9fc9efc96bd3aa2c1240446af28499f0e7593d00" - integrity sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -ylru@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== - dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" - readable-stream "^3.6.0" diff --git a/packages/client/.eslintrc.js b/packages/client/.eslintrc.js deleted file mode 100644 index a5a4fd0f4..000000000 --- a/packages/client/.eslintrc.js +++ /dev/null @@ -1,84 +0,0 @@ -module.exports = { - root: true, - env: { - 'node': false, - }, - parser: 'vue-eslint-parser', - parserOptions: { - 'parser': '@typescript-eslint/parser', - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - extraFileExtensions: ['.vue'], - }, - extends: [ - '../shared/.eslintrc.js', - 'plugin:vue/vue3-recommended', - ], - rules: { - '@typescript-eslint/no-empty-interface': [ - 'error', - { - 'allowSingleExtends': true, - }, - ], - // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため - // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため - 'id-denylist': ['error', 'window', 'e'], - 'no-shadow': ['warn'], - 'vue/attributes-order': ['error', { - 'alphabetical': false, - }], - 'vue/no-use-v-if-with-v-for': ['error', { - 'allowUsingIterationVar': false, - }], - 'vue/no-ref-as-operand': 'error', - 'vue/no-multi-spaces': ['error', { - 'ignoreProperties': false, - }], - 'vue/no-v-html': 'error', - 'vue/order-in-components': 'error', - 'vue/html-indent': ['warn', 'tab', { - 'attribute': 1, - 'baseIndent': 0, - 'closeBracket': 0, - 'alignAttributesVertically': true, - 'ignores': [], - }], - 'vue/html-closing-bracket-spacing': ['warn', { - 'startTag': 'never', - 'endTag': 'never', - 'selfClosingTag': 'never', - }], - 'vue/multi-word-component-names': 'warn', - 'vue/require-v-for-key': 'warn', - 'vue/no-unused-components': 'warn', - 'vue/valid-v-for': 'warn', - 'vue/return-in-computed-property': 'warn', - 'vue/no-setup-props-destructure': 'warn', - 'vue/max-attributes-per-line': 'off', - 'vue/html-self-closing': 'off', - 'vue/singleline-html-element-content-newline': 'off', - }, - globals: { - // Node.js - 'module': false, - 'require': false, - '__dirname': false, - - // Vue - '$$': false, - '$ref': false, - '$shallowRef': false, - '$computed': false, - - // Misskey - '_DEV_': false, - '_LANGS_': false, - '_VERSION_': false, - '_ENV_': false, - '_PERF_PREFIX_': false, - '_DATA_TRANSFER_DRIVE_FILE_': false, - '_DATA_TRANSFER_DRIVE_FOLDER_': false, - '_DATA_TRANSFER_DECK_COLUMN_': false, - }, -}; diff --git a/packages/client/.npmrc b/packages/client/.npmrc deleted file mode 100644 index 6b5f38e89..000000000 --- a/packages/client/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -save-exact = true -package-lock = false diff --git a/packages/client/.vscode/settings.json b/packages/client/.vscode/settings.json deleted file mode 100644 index 4b0903b76..000000000 --- a/packages/client/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "typescript.tsdk": "node_modules\\typescript\\lib", - "path-intellisense.mappings": { - "@": "${workspaceRoot}/packages/client/src/" - }, - "eslint.validate": [ - "javascript", - "javascriptreact", - "vue" - ] -} diff --git a/packages/client/.yarnrc b/packages/client/.yarnrc deleted file mode 100644 index 788570fcd..000000000 --- a/packages/client/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -network-timeout 600000 diff --git a/packages/client/@types/global.d.ts b/packages/client/@types/global.d.ts deleted file mode 100644 index c75748290..000000000 --- a/packages/client/@types/global.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -type FIXME = any; - -declare const _LANGS_: string[][]; -declare const _VERSION_: string; -declare const _ENV_: string; -declare const _DEV_: boolean; -declare const _PERF_PREFIX_: string; -declare const _DATA_TRANSFER_DRIVE_FILE_: string; -declare const _DATA_TRANSFER_DRIVE_FOLDER_: string; -declare const _DATA_TRANSFER_DECK_COLUMN_: string; diff --git a/packages/client/@types/theme.d.ts b/packages/client/@types/theme.d.ts deleted file mode 100644 index 67f724a9a..000000000 --- a/packages/client/@types/theme.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module '@/themes/*.json5' { - import { Theme } from "@/scripts/theme"; - - const theme: Theme; - - export default theme; -} diff --git a/packages/client/@types/vue.d.ts b/packages/client/@types/vue.d.ts deleted file mode 100644 index f6b66228f..000000000 --- a/packages/client/@types/vue.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -declare module '*.vue' { - import type { DefineComponent } from 'vue'; - const component: DefineComponent<{}, {}, any>; - export default component; -} diff --git a/packages/client/assets/about-icon.png b/packages/client/assets/about-icon.png deleted file mode 100644 index afc1f0c72..000000000 Binary files a/packages/client/assets/about-icon.png and /dev/null differ diff --git a/packages/client/assets/misskey.svg b/packages/client/assets/misskey.svg deleted file mode 100644 index 3fcb2d3ec..000000000 --- a/packages/client/assets/misskey.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/packages/client/assets/sounds/syuilo/kick.mp3 b/packages/client/assets/sounds/syuilo/kick.mp3 deleted file mode 100644 index 4e0e72091..000000000 Binary files a/packages/client/assets/sounds/syuilo/kick.mp3 and /dev/null differ diff --git a/packages/client/assets/sounds/syuilo/queue-jammed.mp3 b/packages/client/assets/sounds/syuilo/queue-jammed.mp3 deleted file mode 100644 index 99e0c437f..000000000 Binary files a/packages/client/assets/sounds/syuilo/queue-jammed.mp3 and /dev/null differ diff --git a/packages/client/assets/sounds/syuilo/snare.mp3 b/packages/client/assets/sounds/syuilo/snare.mp3 deleted file mode 100644 index 9244189c2..000000000 Binary files a/packages/client/assets/sounds/syuilo/snare.mp3 and /dev/null differ diff --git a/packages/client/assets/tagcanvas.min.js b/packages/client/assets/tagcanvas.min.js deleted file mode 100644 index bcee46e68..000000000 --- a/packages/client/assets/tagcanvas.min.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright (C) 2010-2021 Graham Breach - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ -/** - * TagCanvas 2.11 - * For more information, please contact - */ - (function(){"use strict";var r,C,p=Math.abs,o=Math.sin,l=Math.cos,g=Math.max,h=Math.min,af=Math.ceil,E=Math.sqrt,w=Math.pow,I={},D={},R={0:"0,",1:"17,",2:"34,",3:"51,",4:"68,",5:"85,",6:"102,",7:"119,",8:"136,",9:"153,",a:"170,",A:"170,",b:"187,",B:"187,",c:"204,",C:"204,",d:"221,",D:"221,",e:"238,",E:"238,",f:"255,",F:"255,"},f,d,b,T,z,F,M,c=document,v,e,P,j={};for(r=0;r<256;++r)C=r.toString(16),r<16&&(C='0'+C),D[C]=D[C.toUpperCase()]=r.toString()+',';function n(a){return typeof a!='undefined'}function B(a){return typeof a=='object'&&a!=null}function G(a,c,b){return isNaN(a)?b:h(b,g(c,a))}function x(){return!1}function q(){return(new Date).valueOf()}function ak(c,d){var b=[],e=c.length,a;for(a=0;a=1)?0:a<=-1?Math.PI:Math.acos(a)},z.unit=function(){var a=this.length();return new s(this.x/a,this.y/a,this.z/a)};function ay(b,a){a=a*Math.PI/180,b=b*Math.PI/180;var c=o(b)*l(a),d=-o(a),e=-l(b)*l(a);return new s(c,d,e)}function m(a){this[1]={1:a[0],2:a[1],3:a[2]},this[2]={1:a[3],2:a[4],3:a[5]},this[3]={1:a[6],2:a[7],3:a[8]}}T=m.prototype,m.Identity=function(){return new m([1,0,0,0,1,0,0,0,1])},m.Rotation=function(e,a){var c=o(e),d=l(e),b=1-d;return new m([d+w(a.x,2)*b,a.x*a.y*b-a.z*c,a.x*a.z*b+a.y*c,a.y*a.x*b+a.z*c,d+w(a.y,2)*b,a.y*a.z*b-a.x*c,a.z*a.x*b-a.y*c,a.z*a.y*b+a.x*c,d+w(a.z,2)*b])},T.mul=function(c){var d=[],a,b,e=c.xform?1:0;for(a=1;a<=3;++a)for(b=1;b<=3;++b)e?d.push(this[a][1]*c[1][b]+this[a][2]*c[2][b]+this[a][3]*c[3][b]):d.push(this[a][b]*c);return new m(d)},T.xform=function(b){var a={},c=b.x,d=b.y,e=b.z;return a.x=c*this[1][1]+d*this[2][1]+e*this[3][1],a.y=c*this[1][2]+d*this[2][2]+e*this[3][2],a.z=c*this[1][3]+d*this[2][3]+e*this[3][3],a};function aB(g,j,k,m,f){var a,b,c,d,e=[],h=2/g,i;i=Math.PI*(3-E(5)+(parseFloat(f)?parseFloat(f):0));for(a=0;a0)}function aC(a,c,f,d){var e=a.createLinearGradient(0,0,c,0),b;for(b in d)e.addColorStop(1-b,d[b]);a.fillStyle=e,a.fillRect(0,f,c,1)}function L(a,m,j){var l=1024,d=1,e=a.weightGradient,i,f,b,c;if(a.gCanvas)f=a.gCanvas.getContext('2d'),d=a.gCanvas.height;else{if(B(e[0])?d=e.length:e=[e],a.gCanvas=i=k(l,d),!i)return null;f=i.getContext('2d');for(b=0;b0?b=i*b/100:b=b*j,a=e.getContext('2d'),a.globalCompositeOperation='source-over',a.fillStyle='#fff',b>=i/2?(b=h(c,d)/2,a.beginPath(),a.moveTo(c/2,d/2),a.arc(c/2,d/2,b,0,2*Math.PI,!1),a.fill(),a.closePath()):(b=h(c/2,d/2,b),y(a,0,0,c,d,b,!0),a.fill()),a.globalCompositeOperation='source-in',a.drawImage(l,0,0,c,d),e)}function ao(q,m,i,b,h,a,c){var g=p(c[0]),f=p(c[1]),j=m+(g>a?g+a:a*2)*b,l=i+(f>a?f+a:a*2)*b,n=b*((a||0)+(c[0]<0?g:0)),o=b*((a||0)+(c[1]<0?f:0)),e,d;return e=k(j,l),!e?null:(d=e.getContext('2d'),h&&(d.shadowColor=h),a&&(d.shadowBlur=a*b),c&&(d.shadowOffsetX=c[0]*b,d.shadowOffsetY=c[1]*b),d.drawImage(q,n,o,m,i),{image:e,width:j/b,height:l/b})}function ae(m,o,l){var c=parseInt(m.toString().length*l),h=parseInt(l*2*m.length),j=k(c,h),g,i,e,f,b,d,n,a;if(!j)return null;g=j.getContext('2d'),g.fillStyle='#000',g.fillRect(0,0,c,h),Y(g,l+'px '+o,'#fff',m,0,0,0,0,[],'centre'),i=g.getImageData(0,0,c,h),e=i.width,f=i.height,a={min:{x:e,y:f},max:{x:-1,y:-1}};for(d=0;d0&&(ba.max.x&&(a.max.x=b),da.max.y&&(a.max.y=d));return e!=c&&(a.min.x*=c/e,a.max.x*=c/e),f!=h&&(a.min.y*=c/f,a.max.y*=c/f),j=null,a}function Q(a){return"'"+a.replace(/(\'|\")/g,'').replace(/\s*,\s*/g,"', '")+"'"}function t(b,d,a){a=a||c,a.addEventListener?a.addEventListener(b,d,!1):a.attachEvent('on'+b,d)}function am(b,d,a){a=a||c,a.removeEventListener?a.removeEventListener(b,d):a.detachEvent('on'+b,d)}function A(g,e,j,a,b){var l=b.imageScale,h,c,k,m,f,d;if(!e.complete)return t('load',function(){A(g,e,j,a,b)},e);if(!g.complete)return t('load',function(){A(g,e,j,a,b)},g);if(j&&!j.complete)return t('load',function(){A(g,e,j,a,b)},j);e.width=e.width,e.height=e.height,l&&(g.width=e.width*l,g.height=e.height*l),a.iw=g.width,a.ih=g.height,b.txtOpt&&(c=g,h=b.zoomMax*b.txtScale,f=a.iw*h,d=a.ih*h,f0?(a.iw+=2*b.outlineIncrease,a.ih+=2*b.outlineIncrease,f=h*a.iw,d=h*a.ih,c=S(a.fimage,f,d),a.oimage=c,a.fimage=H(a.fimage,a.oimage.width,a.oimage.height)):(f=h*(a.iw+2*b.outlineIncrease),d=h*(a.ih+2*b.outlineIncrease),c=S(a.fimage,f,d),a.oimage=H(c,a.fimage.width,a.fimage.height))))),a.alt=j,a.Init()}function i(a,d){var b=c.defaultView,e=d.replace(/\-([a-z])/g,function(a){return a.charAt(1).toUpperCase()});return b&&b.getComputedStyle&&b.getComputedStyle(a,null).getPropertyValue(d)||a.currentStyle&&a.currentStyle[e]}function aj(c,d,e){var b=1,a;return d?b=1*(c.getAttribute(d)||e):(a=i(c,'font-size'))&&(b=a.indexOf('px')>-1&&a.replace('px','')*1||a.indexOf('pt')>-1&&a.replace('pt','')*1.25||a*3.3),b}function u(a){return a.target&&n(a.target.id)?a.target.id:a.srcElement.parentNode.id}function K(a,c){var b,d,e=parseInt(i(c,'width'))/c.width,f=parseInt(i(c,'height'))/c.height;return n(a.offsetX)?b={x:a.offsetX,y:a.offsetY}:(d=X(c.id),n(a.changedTouches)&&(a=a.changedTouches[0]),a.pageX&&(b={x:a.pageX-d.x,y:a.pageY-d.y})),b&&e&&f&&(b.x/=e,b.y/=f),b}function an(c){var d=c.target||c.fromElement.parentNode,b=a.tc[d.id];b&&(b.mx=b.my=-1,b.UnFreeze(),b.EndDrag())}function ad(e){var g,c=a,b,d,f=u(e);for(g in c.tc)b=c.tc[g],b.tttimer&&(clearTimeout(b.tttimer),b.tttimer=null);f&&c.tc[f]&&(b=c.tc[f],(d=K(e,b.canvas))&&(b.mx=d.x,b.my=d.y,b.Drag(e,d)),b.drawn=0)}function ap(b){var e=a,f=c.addEventListener?0:1,d=u(b);d&&b.button==f&&e.tc[d]&&e.tc[d].BeginDrag(b)}function aq(b){var f=a,g=c.addEventListener?0:1,e=u(b),d;e&&b.button==g&&f.tc[e]&&(d=f.tc[e],ad(b),!d.EndDrag()&&!d.touchState&&d.Clicked(b))}function ar(c){var e=u(c),b=e&&a.tc[e],d;b&&c.changedTouches&&(c.touches.length==1&&b.touchState==0?(b.touchState=1,b.BeginDrag(c),(d=K(c,b.canvas))&&(b.mx=d.x,b.my=d.y,b.drawn=0)):c.targetTouches.length==2&&b.pinchZoom?(b.touchState=3,b.EndDrag(),b.BeginPinch(c)):(b.EndDrag(),b.EndPinch(),b.touchState=0))}function ac(c){var d=u(c),b=d&&a.tc[d];if(b&&c.changedTouches){switch(b.touchState){case 1:b.Draw(),b.Clicked();break;break;case 2:b.EndDrag();break;case 3:b.EndPinch()}b.touchState=0}}function au(c){var f,e=a,b,d,g=u(c);for(f in e.tc)b=e.tc[f],b.tttimer&&(clearTimeout(b.tttimer),b.tttimer=null);if(b=g&&e.tc[g],b&&c.changedTouches&&b.touchState){switch(b.touchState){case 1:case 2:(d=K(c,b.canvas))&&(b.mx=d.x,b.my=d.y,b.Drag(c,d)&&(b.touchState=2));break;case 3:b.Pinch(c)}b.drawn=0}}function ab(b){var d=a,c=u(b);c&&d.tc[c]&&(b.cancelBubble=!0,b.returnValue=!1,b.preventDefault&&b.preventDefault(),d.tc[c].Wheel((b.wheelDelta||b.detail)>0))}function aw(d){var c,b=a;clearTimeout(b.scrollTimer);for(c in b.tc)b.tc[c].Pause();b.scrollTimer=setTimeout(function(){var b,c=a;for(b in c.tc)c.tc[b].Resume()},b.scrollPause)}function al(){Z(q())}function Z(b){var c=a.tc,d;a.NextFrame(a.interval),b=b||q();for(d in c)c[d].Draw(b)}function az(){requestAnimationFrame(Z)}function aA(a){setTimeout(al,a)}function X(f){var g=c.getElementById(f),b=g.getBoundingClientRect(),a=c.documentElement,d=c.body,e=window,h=e.pageXOffset||a.scrollLeft,i=e.pageYOffset||a.scrollTop,j=a.clientLeft||d.clientLeft,k=a.clientTop||d.clientTop;return{x:b.left+h-j,y:b.top+i-k}}function aI(a,b,d,e){var c=a.radius*a.z1/(a.z1+a.z2+b.z);return{x:b.x*c*d,y:b.y*c*e,z:b.z,w:(a.z1-b.z)/a.z2}}function V(a){this.e=a,this.br=0,this.line=[],this.text=[],this.original=a.innerText||a.textContent}F=V.prototype,F.Empty=function(){for(var a=0;ah?(d.push(this.line.join(' ')),this.line=[a[b]]):this.line.push(a[b]);d.push(this.line.join(' '))}return this.text=d};function _(a,b){this.ts=null,this.tc=a,this.tag=b,this.x=this.y=this.w=this.h=this.sc=1,this.z=0,this.pulse=1,this.pulsate=a.pulsateTo<1,this.colour=a.outlineColour,this.adash=~~a.outlineDash,this.agap=~~a.outlineDashSpace||this.adash,this.aspeed=a.outlineDashSpeed*1,this.colour=='tag'?this.colour=i(b.a,'color'):this.colour=='tagbg'&&(this.colour=i(b.a,'background-color')),this.Draw=this.pulsate?this.DrawPulsate:this.DrawSimple,this.radius=a.outlineRadius|0,this.SetMethod(a.outlineMethod,a.altImage)}f=_.prototype,f.SetMethod=function(a,d){var b={block:['PreDraw','DrawBlock'],colour:['PreDraw','DrawColour'],outline:['PostDraw','DrawOutline'],classic:['LastDraw','DrawOutline'],size:['PreDraw','DrawSize'],none:['LastDraw']},c=b[a]||b.outline;a=='none'?this.Draw=function(){return 1}:this.drawFunc=this[c[1]],this[c[0]]=this.Draw,d&&(this.RealPreDraw=this.PreDraw,this.PreDraw=this.DrawAlt)},f.Update=function(d,e,i,j,a,f,g,h){var b=this.tc.outlineOffset,c=2*b;this.x=a*d+g-b,this.y=a*e+h-b,this.w=a*i+c,this.h=a*j+c,this.sc=a,this.z=f},f.Ants=function(k){if(!this.adash)return;var b=this.adash,c=this.agap,a=this.aspeed,j=b+c,h=0,g=b,f=c,i=0,d=0,e;a&&(d=p(a)*(q()-this.ts)/50,a<0&&(d=864e4-d),a=~~d%j),a?(b>=a?(h=b-a,g=a):(f=j-a,i=c-f),e=[h,f,g,i]):e=[b,c],k.setLineDash(e)},f.DrawOutline=function(a,d,e,b,c,f){var g=h(this.radius,c/2,b/2);a.strokeStyle=f,this.Ants(a),y(a,d,e,b,c,g,!0)},f.DrawSize=function(i,n,m,l,k,j,a,h,g){var f=a.w,e=a.h,c,b,d;return this.pulsate?(a.image?d=(a.image.height+this.tc.outlineIncrease)/a.image.height:d=a.oscale,b=a.fimage||a.image,c=1+(d-1)*(1-this.pulse),a.h*=c,a.w*=c):b=a.oimage,a.alpha=1,a.Draw(i,h,g,b),a.h=e,a.w=f,1},f.DrawColour=function(d,h,i,e,f,g,a,b,c){return a.oimage?(this.pulse<1?(a.alpha=1-w(this.pulse,2),a.Draw(d,b,c,a.fimage),a.alpha=this.pulse):a.alpha=1,a.Draw(d,b,c,a.oimage),1):this[a.image?'DrawColourImage':'DrawColourText'](d,h,i,e,f,g,a,b,c)},f.DrawColourText=function(f,h,i,j,g,e,a,b,c){var d=a.colour;return a.colour=e,a.alpha=1,a.Draw(f,b,c),a.colour=d,1},f.DrawColourImage=function(a,q,p,o,n,m,i,r,l){var f=a.canvas,e=~~g(q,0),d=~~g(p,0),c=h(f.width-e,o)+.5|0,b=h(f.height-d,n)+.5|0,j;return v?(v.width=c,v.height=b):v=k(c,b),!v?this.SetMethod('outline'):(j=v.getContext('2d'),j.drawImage(f,e,d,c,b,0,0,c,b),a.clearRect(e,d,c,b),this.pulsate?i.alpha=1-w(this.pulse,2):i.alpha=1,i.Draw(a,r,l),a.setTransform(1,0,0,1,0,0),a.save(),a.beginPath(),a.rect(e,d,c,b),a.clip(),a.globalCompositeOperation='source-in',a.fillStyle=m,a.fillRect(e,d,c,b),a.restore(),a.globalAlpha=1,a.globalCompositeOperation='destination-over',a.drawImage(v,0,0,c,b,e,d,c,b),a.globalCompositeOperation='source-over',1)},f.DrawAlt=function(b,a,c,d,f,g){var e=this.RealPreDraw(b,a,c,d,f,g);return a.alt&&(a.DrawImage(b,c,d,a.alt),e=1),e},f.DrawBlock=function(a,d,e,b,c,f){var g=h(this.radius,c/2,b/2);a.fillStyle=f,y(a,d,e,b,c,g)},f.DrawSimple=function(a,b,c,d,e,f){var g=this.tc;return a.setTransform(1,0,0,1,0,0),a.strokeStyle=this.colour,a.lineWidth=g.outlineThickness,a.shadowBlur=a.shadowOffsetX=a.shadowOffsetY=0,a.globalAlpha=f?e:1,this.drawFunc(a,this.x,this.y,this.w,this.h,this.colour,b,c,d)},f.DrawPulsate=function(h,d,e,f){var g=q()-this.ts,c=this.tc,b=c.pulsateTo+(1-c.pulsateTo)*(.5+l(2*Math.PI*g/(1e3*c.pulsateTime))/2);return this.pulse=b=a.Smooth(1,b),this.DrawSimple(h,d,e,f,b,1)},f.Active=function(d,a,b){var c=a>=this.x&&b>=this.y&&a<=this.x+this.w&&b<=this.y+this.h;return c?this.ts=this.ts||q():this.ts=null,c},f.PreDraw=f.PostDraw=f.LastDraw=x;function J(a,h,c,b,e,f,g,d,i,j,k,l,m,n){this.tc=a,this.image=null,this.text=h,this.text_original=n,this.line_widths=[],this.title=c.title||null,this.a=c,this.position=new s(b[0],b[1],b[2]),this.x=this.y=this.z=0,this.w=e,this.h=f,this.colour=g||a.textColour,this.bgColour=d||a.bgColour,this.bgRadius=i|0,this.bgOutline=j||this.colour,this.bgOutlineThickness=k|0,this.textFont=l||a.textFont,this.padding=m|0,this.sc=this.alpha=1,this.weighted=!a.weight,this.outline=new _(a,this),this.audio=null}d=J.prototype,d.Init=function(b){var a=this.tc;this.textHeight=a.textHeight,this.HasText()?this.Measure(a.ctxt,a):(this.w=this.iw,this.h=this.ih),this.SetShadowColour=a.shadowAlpha?this.SetShadowColourAlpha:this.SetShadowColourFixed,this.SetDraw(a)},d.Draw=x,d.HasText=function(){return this.text&&this.text[0].length>0},d.EqualTo=function(a){var b=a.getElementsByTagName('img');return this.a.href!=a.href?0:b.length?this.image.src==b[0].src:(a.innerText||a.textContent)==this.text_original},d.SetImage=function(a){this.image=this.fimage=a},d.SetAudio=function(a){this.audio=a,this.audio.load()},d.SetDraw=function(a){this.Draw=this.fimage?a.ie>7?this.DrawImageIE:this.DrawImage:this.DrawText,a.noSelect&&(this.CheckActive=x)},d.MeasureText=function(d){var a,e=this.text.length,b=0,c;for(a=0;a0?c=H(c,this.oimage.width,this.oimage.height):this.oimage=H(this.oimage,c.width,c.height)),c&&(this.fimage=c,l=this.fimage.width/b,j=this.fimage.height/b),this.SetDraw(a),a.txtOpt=!!this.fimage),this.h=j,this.w=l},d.SetFont=function(a,b,c,d){this.textFont=a,this.colour=b,this.bgColour=c,this.bgOutline=d,this.Measure(this.tc.ctxt,this.tc)},d.SetWeight=function(c){var b=this.tc,e=b.weightMode.split(/[, ]/),d,a,f=c.length;if(!this.HasText())return;this.weighted=!0;for(a=0;a0&&a.weightSizeMax>a.weightSizeMin?this.textHeight=a.weightSize*(a.weightSizeMin+(a.weightSizeMax-a.weightSizeMin)*c):this.textHeight=g(1,b*a.weightSize))},d.SetShadowColourFixed=function(a,b,c){a.shadowColor=b},d.SetShadowColourAlpha=function(a,b,c){a.shadowColor=aE(b,c)},d.DrawText=function(a,h,i){var e=this.tc,g=this.x,f=this.y,c=this.sc,b,d;a.globalAlpha=this.alpha,a.fillStyle=this.colour,e.shadow&&this.SetShadowColour(a,e.shadow,this.alpha),a.font=this.font,g+=h/c,f+=i/c-this.h/2;for(b=0;b{this.stopped?this.audio.pause():this.playing=1}),1}};function a(f,o,k){var d,i,b=c.getElementById(f),l=['id','class','innerHTML'];if(!b)throw 0;if(n(window.G_vmlCanvasManager)&&(b=window.G_vmlCanvasManager.initElement(b),this.ie=parseFloat(navigator.appVersion.split('MSIE')[1])),b&&(!b.getContext||!b.getContext('2d').fillText)){i=c.createElement('DIV');for(d=0;d0?a.scrollPause=~~this.scrollPause:this.scrollPause=0,this.minTags>0&&this.repeatTags<1&&(d=this.GetTags().length)&&(this.repeatTags=af(this.minTags/d)-1),this.transform=m.Identity(),this.startTime=this.time=q(),this.mx=this.my=-1,this.centreImage&&av(this),this.Animate=this.dragControl?this.AnimateDrag:this.AnimatePosition,this.animTiming=typeof a[this.animTiming]=='function'?a[this.animTiming]:a.Smooth,this.shadowBlur||this.shadowOffset[0]||this.shadowOffset[1]?(this.ctxt.shadowColor=this.shadow,this.shadow=this.ctxt.shadowColor,this.shadowAlpha=aD()):delete this.shadow,this.activeAudio===!1?e='off':this.activeAudio&&this.LoadAudio(),this.Load(),o&&this.hideTags&&function(b){a.loaded?b.HideTags():t('load',function(){b.HideTags()},window)}(this),this.yaw=this.initial?this.initial[0]*this.maxSpeed:0,this.pitch=this.initial?this.initial[1]*this.maxSpeed:0,this.tooltip?(this.ctitle=b.title,b.title='',this.tooltip=='native'?this.Tooltip=this.TooltipNative:(this.Tooltip=this.TooltipDiv,this.ttdiv||(this.ttdiv=c.createElement('div'),this.ttdiv.className=this.tooltipClass,this.ttdiv.style.position='absolute',this.ttdiv.style.zIndex=b.style.zIndex+1,t('mouseover',function(a){a.target.style.display='none'},this.ttdiv),c.body.appendChild(this.ttdiv)))):this.Tooltip=this.TooltipNone,!this.noMouse&&!j[f]){j[f]=[['mousemove',ad],['mouseout',an],['mouseup',aq],['touchstart',ar],['touchend',ac],['touchcancel',ac],['touchmove',au]],this.dragControl&&(j[f].push(['mousedown',ap]),j[f].push(['selectstart',x])),this.wheelZoom&&(j[f].push(['mousewheel',ab]),j[f].push(['DOMMouseScroll',ab])),this.scrollPause&&j[f].push(['scroll',aw,window]);for(d=0;dthis.max_weight[a])&&(this.max_weight[a]=c),(!this.min_weight[a]||cthis.min_weight[a]&&(g=1);if(g)for(b=0;b=d&&this.my>=e)return!0},b.ToggleAudio=function(){var a=this.audioOff||e&&e.state==='suspended';a||this.currentAudio&&this.currentAudio.StopAudio(),this.audioOff=!a},b.Draw=function(s){if(this.paused)return;var l=this.canvas,i=l.width,j=l.height,q=0,p=(s-this.time)*a.interval/1e3,h=i/2+this.offsetX,g=j/2+this.offsetY,d=this.ctxt,b,f,c,o=-1,e=this.taglist,k=e.length,t=this.active&&this.active.tag,m='',u=this.frontSelect,r=this.centreFunc==x,n;if(this.time=s,this.frozen&&this.drawn)return this.Animate(i,j,p);n=this.AnimateFixed(),d.setTransform(1,0,0,1,0,0);for(c=0;c=0&&this.my>=0&&this.taglist[c].CheckActive(d,h,g),f&&f.sc>q&&(!u||f.z<=0)&&(b=f,o=c,b.tag=this.taglist[c],q=f.sc);this.active=b}this.txtOpt||this.shadow&&this.SetShadow(d),d.clearRect(0,0,i,j);for(c=0;c=this.fadeIn?(this.fadeIn=0,this.fixedAlpha=1):this.fixedAlpha=b/this.fadeIn),this.fixedAnim)&&(this.fixedAnim.transform||(this.fixedAnim.transform=this.transform),a=this.fixedAnim,b=q()-a.t0,c=a.angle,d,e=this.animTiming(a.t,b),this.transform=a.transform,b>=a.t?(this.fixedCallbackTag=a.tag,this.fixedCallback=a.cb,this.fixedAnim=this.yaw=this.pitch=0):c*=e,d=m.Rotation(c,a.axis),this.transform=this.transform.mul(d),this.fixedAnim!=0)},b.AnimatePosition=function(g,h,f){var a=this,d=a.mx,e=a.my,b,c;!a.frozen&&d>=0&&e>=0&&db&&(a.yaw=c>a.z0?a.yaw*a.decel:0),!a.ly&&d>b&&(a.pitch=d>a.z0?a.pitch*a.decel:0)},b.Zoom=function(a){this.z2=this.z1*(1/a),this.drawn=0},b.Clicked=function(b){if(this.CheckAudioIcon()){this.ToggleAudio();return}var a=this.active;try{a&&a.tag&&(this.clickToFront===!1||this.clickToFront===null?a.tag.Clicked(b):this.TagToFront(a.tag,this.clickToFront,function(){a.tag.Clicked(b)},!0))}catch(a){}},b.Wheel=function(a){var b=this.zoom+this.zoomStep*(a?1:-1);this.zoom=h(this.zoomMax,g(this.zoomMin,b)),this.Zoom(this.zoom)},b.BeginDrag=function(a){this.down=K(a,this.canvas),a.cancelBubble=!0,a.returnValue=!1,a.preventDefault&&a.preventDefault()},b.Drag=function(e,a){if(this.dragControl&&this.down){var d=this.dragThreshold*this.dragThreshold,b=a.x-this.down.x,c=a.y-this.down.y;(this.dragging||b*b+c*c>d)&&(this.dx=b,this.dy=c,this.dragging=1,this.down=a)}return this.dragging},b.EndDrag=function(){var a=this.dragging;return this.dragging=this.down=null,a};function ah(a){var b=a.targetTouches[0],c=a.targetTouches[1];return E(w(c.pageX-b.pageX,2)+w(c.pageY-b.pageY,2))}b.BeginPinch=function(a){this.pinched=[ah(a),this.zoom],a.preventDefault&&a.preventDefault()},b.Pinch=function(d){var b,c,a=this.pinched;if(!a)return;c=ah(d),b=a[1]*c/a[0],this.zoom=h(this.zoomMax,g(this.zoomMin,b)),this.Zoom(this.zoom)},b.EndPinch=function(a){this.pinched=null},b.Pause=function(){this.paused=!0},b.Resume=function(){this.paused=!1},b.SetSpeed=function(a){this.initial=a,this.yaw=a[0]*this.maxSpeed,this.pitch=a[1]*this.maxSpeed},b.FindTag=function(a){if(!n(a))return null;if(n(a.index)&&(a=a.index),!B(a))return this.taglist[a];var c,d,b;n(a.id)?(c='id',d=a.id):n(a.text)&&(c='innerText',d=a.text);for(b=0;b { - return Promise.all(registrations.map(registration => registration.unregister())); - }); - } - } catch (err) {} - //#endregion - - document.cookie = 'igi=; path=/'; - - if (accounts.length > 0) login(accounts[0].token); - else unisonReload('/'); -} - -export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> { - return (await get('accounts')) || []; -} - -export async function addAccount(id: Account['id'], token: Account['token']) { - const accounts = await getAccounts(); - if (!accounts.some(x => x.id === id)) { - await set('accounts', accounts.concat([{ id, token }])); - } -} - -export async function removeAccount(id: Account['id']) { - const accounts = await getAccounts(); - accounts.splice(accounts.findIndex(x => x.id === id), 1); - - if (accounts.length > 0) await set('accounts', accounts); - else await del('accounts'); -} - -function fetchAccount(token: string): Promise { - return new Promise((done, fail) => { - // Fetch user - fetch(`${apiUrl}/i`, { - method: 'POST', - body: JSON.stringify({ - i: token, - }), - }) - .then(res => res.json()) - .then(res => { - if (res.error) { - if (res.error.id === 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370') { - showSuspendedDialog().then(() => { - signout(); - }); - } else { - alert({ - type: 'error', - title: i18n.ts.failedToFetchAccountInformation, - text: JSON.stringify(res.error), - }); - } - } else { - res.token = token; - done(res); - } - }) - .catch(fail); - }); -} - -export function updateAccount(accountData) { - for (const [key, value] of Object.entries(accountData)) { - $i[key] = value; - } - localStorage.setItem('account', JSON.stringify($i)); -} - -export function refreshAccount() { - return fetchAccount($i.token).then(updateAccount); -} - -export async function login(token: Account['token'], redirect?: string) { - waiting(); - if (_DEV_) console.log('logging as token ', token); - const me = await fetchAccount(token); - localStorage.setItem('account', JSON.stringify(me)); - document.cookie = `token=${token}; path=/; max-age=31536000`; // bull dashboardの認証とかで使う - await addAccount(me.id, token); - - if (redirect) { - // 他のタブは再読み込みするだけ - reloadChannel.postMessage(null); - // このページはredirectで指定された先に移動 - location.href = redirect; - return; - } - - unisonReload(); -} - -export async function openAccountMenu(opts: { - includeCurrentAccount?: boolean; - withExtraOperation: boolean; - active?: misskey.entities.UserDetailed['id']; - onChoose?: (account: misskey.entities.UserDetailed) => void; -}, ev: MouseEvent) { - function showSigninDialog() { - popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, { - done: res => { - addAccount(res.id, res.i); - success(); - }, - }, 'closed'); - } - - function createAccount() { - popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, { - done: res => { - addAccount(res.id, res.i); - switchAccountWithToken(res.i); - }, - }, 'closed'); - } - - async function switchAccount(account: misskey.entities.UserDetailed) { - const storedAccounts = await getAccounts(); - const token = storedAccounts.find(x => x.id === account.id).token; - switchAccountWithToken(token); - } - - function switchAccountWithToken(token: string) { - login(token); - } - - const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== $i.id)); - const accountsPromise = api('users/show', { userIds: storedAccounts.map(x => x.id) }); - - function createItem(account: misskey.entities.UserDetailed) { - return { - type: 'user', - user: account, - active: opts.active != null ? opts.active === account.id : false, - action: () => { - if (opts.onChoose) { - opts.onChoose(account); - } else { - switchAccount(account); - } - }, - }; - } - - const accountItemPromises = storedAccounts.map(a => new Promise(res => { - accountsPromise.then(accounts => { - const account = accounts.find(x => x.id === a.id); - if (account == null) return res(null); - res(createItem(account)); - }); - })); - - if (opts.withExtraOperation) { - popupMenu([...[{ - type: 'link', - text: i18n.ts.profile, - to: `/@${ $i.username }`, - avatar: $i, - }, null, ...(opts.includeCurrentAccount ? [createItem($i)] : []), ...accountItemPromises, { - type: 'parent', - icon: 'fas fa-plus', - text: i18n.ts.addAccount, - children: [{ - text: i18n.ts.existingAccount, - action: () => { showSigninDialog(); }, - }, { - text: i18n.ts.createAccount, - action: () => { createAccount(); }, - }], - }, { - type: 'link', - icon: 'fas fa-users', - text: i18n.ts.manageAccounts, - to: '/settings/accounts', - }]], ev.currentTarget ?? ev.target, { - align: 'left', - }); - } else { - popupMenu([...(opts.includeCurrentAccount ? [createItem($i)] : []), ...accountItemPromises], ev.currentTarget ?? ev.target, { - align: 'left', - }); - } -} diff --git a/packages/client/src/components/MkAbuseReport.vue b/packages/client/src/components/MkAbuseReport.vue deleted file mode 100644 index 9a3464b64..000000000 --- a/packages/client/src/components/MkAbuseReport.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkAbuseReportWindow.vue b/packages/client/src/components/MkAbuseReportWindow.vue deleted file mode 100644 index 1862d0a0e..000000000 --- a/packages/client/src/components/MkAbuseReportWindow.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkAnalogClock.vue b/packages/client/src/components/MkAnalogClock.vue deleted file mode 100644 index 40ef626ae..000000000 --- a/packages/client/src/components/MkAnalogClock.vue +++ /dev/null @@ -1,225 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkAutocomplete.vue b/packages/client/src/components/MkAutocomplete.vue deleted file mode 100644 index 144281e3c..000000000 --- a/packages/client/src/components/MkAutocomplete.vue +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - diff --git a/packages/client/src/components/MkAvatars.vue b/packages/client/src/components/MkAvatars.vue deleted file mode 100644 index 958e5db0a..000000000 --- a/packages/client/src/components/MkAvatars.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/packages/client/src/components/MkButton.vue b/packages/client/src/components/MkButton.vue deleted file mode 100644 index a052f8f7a..000000000 --- a/packages/client/src/components/MkButton.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkCaptcha.vue b/packages/client/src/components/MkCaptcha.vue deleted file mode 100644 index 736073491..000000000 --- a/packages/client/src/components/MkCaptcha.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/packages/client/src/components/MkChannelFollowButton.vue b/packages/client/src/components/MkChannelFollowButton.vue deleted file mode 100644 index dff02beec..000000000 --- a/packages/client/src/components/MkChannelFollowButton.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkChannelPreview.vue b/packages/client/src/components/MkChannelPreview.vue deleted file mode 100644 index dd3794a65..000000000 --- a/packages/client/src/components/MkChannelPreview.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkChart.vue b/packages/client/src/components/MkChart.vue deleted file mode 100644 index 31e95404f..000000000 --- a/packages/client/src/components/MkChart.vue +++ /dev/null @@ -1,880 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkChartTooltip.vue b/packages/client/src/components/MkChartTooltip.vue deleted file mode 100644 index a92dd36b6..000000000 --- a/packages/client/src/components/MkChartTooltip.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkCode.core.vue b/packages/client/src/components/MkCode.core.vue deleted file mode 100644 index b07402882..000000000 --- a/packages/client/src/components/MkCode.core.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/packages/client/src/components/MkCode.vue b/packages/client/src/components/MkCode.vue deleted file mode 100644 index 1640258d5..000000000 --- a/packages/client/src/components/MkCode.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/packages/client/src/components/MkContainer.vue b/packages/client/src/components/MkContainer.vue deleted file mode 100644 index 4be59adc2..000000000 --- a/packages/client/src/components/MkContainer.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkContextMenu.vue b/packages/client/src/components/MkContextMenu.vue deleted file mode 100644 index cfc9502b4..000000000 --- a/packages/client/src/components/MkContextMenu.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkCropperDialog.vue b/packages/client/src/components/MkCropperDialog.vue deleted file mode 100644 index 9a09834bf..000000000 --- a/packages/client/src/components/MkCropperDialog.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkCwButton.vue b/packages/client/src/components/MkCwButton.vue deleted file mode 100644 index dd906f9bf..000000000 --- a/packages/client/src/components/MkCwButton.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDateSeparatedList.vue b/packages/client/src/components/MkDateSeparatedList.vue deleted file mode 100644 index f63d9782b..000000000 --- a/packages/client/src/components/MkDateSeparatedList.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/packages/client/src/components/MkDialog.vue b/packages/client/src/components/MkDialog.vue deleted file mode 100644 index 155473cd7..000000000 --- a/packages/client/src/components/MkDialog.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDigitalClock.vue b/packages/client/src/components/MkDigitalClock.vue deleted file mode 100644 index 9ed8d63d1..000000000 --- a/packages/client/src/components/MkDigitalClock.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDrive.file.vue b/packages/client/src/components/MkDrive.file.vue deleted file mode 100644 index 22916d568..000000000 --- a/packages/client/src/components/MkDrive.file.vue +++ /dev/null @@ -1,340 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDrive.folder.vue b/packages/client/src/components/MkDrive.folder.vue deleted file mode 100644 index e55fa4f0f..000000000 --- a/packages/client/src/components/MkDrive.folder.vue +++ /dev/null @@ -1,315 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDrive.navFolder.vue b/packages/client/src/components/MkDrive.navFolder.vue deleted file mode 100644 index 548270331..000000000 --- a/packages/client/src/components/MkDrive.navFolder.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDrive.vue b/packages/client/src/components/MkDrive.vue deleted file mode 100644 index 002ca58d0..000000000 --- a/packages/client/src/components/MkDrive.vue +++ /dev/null @@ -1,786 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDriveFileThumbnail.vue b/packages/client/src/components/MkDriveFileThumbnail.vue deleted file mode 100644 index de65d2f25..000000000 --- a/packages/client/src/components/MkDriveFileThumbnail.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkDriveSelectDialog.vue b/packages/client/src/components/MkDriveSelectDialog.vue deleted file mode 100644 index baab7f132..000000000 --- a/packages/client/src/components/MkDriveSelectDialog.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/packages/client/src/components/MkDriveWindow.vue b/packages/client/src/components/MkDriveWindow.vue deleted file mode 100644 index 617200321..000000000 --- a/packages/client/src/components/MkDriveWindow.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/packages/client/src/components/MkEmojiPicker.section.vue b/packages/client/src/components/MkEmojiPicker.section.vue deleted file mode 100644 index e2a80d546..000000000 --- a/packages/client/src/components/MkEmojiPicker.section.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkEmojiPicker.vue b/packages/client/src/components/MkEmojiPicker.vue deleted file mode 100644 index 3de0afbf5..000000000 --- a/packages/client/src/components/MkEmojiPicker.vue +++ /dev/null @@ -1,562 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkEmojiPickerDialog.vue b/packages/client/src/components/MkEmojiPickerDialog.vue deleted file mode 100644 index 3b41f9d75..000000000 --- a/packages/client/src/components/MkEmojiPickerDialog.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkEmojiPickerWindow.vue b/packages/client/src/components/MkEmojiPickerWindow.vue deleted file mode 100644 index 523e4ba69..000000000 --- a/packages/client/src/components/MkEmojiPickerWindow.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFeaturedPhotos.vue b/packages/client/src/components/MkFeaturedPhotos.vue deleted file mode 100644 index e58b5d284..000000000 --- a/packages/client/src/components/MkFeaturedPhotos.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFileListForAdmin.vue b/packages/client/src/components/MkFileListForAdmin.vue deleted file mode 100644 index b6429eaf8..000000000 --- a/packages/client/src/components/MkFileListForAdmin.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFileTypeIcon.vue b/packages/client/src/components/MkFileTypeIcon.vue deleted file mode 100644 index 11d28188c..000000000 --- a/packages/client/src/components/MkFileTypeIcon.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/packages/client/src/components/MkFolder.vue b/packages/client/src/components/MkFolder.vue deleted file mode 100644 index 7daa82cbd..000000000 --- a/packages/client/src/components/MkFolder.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFollowButton.vue b/packages/client/src/components/MkFollowButton.vue deleted file mode 100644 index efee795e4..000000000 --- a/packages/client/src/components/MkFollowButton.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkForgotPassword.vue b/packages/client/src/components/MkForgotPassword.vue deleted file mode 100644 index 1b55451c9..000000000 --- a/packages/client/src/components/MkForgotPassword.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFormDialog.vue b/packages/client/src/components/MkFormDialog.vue deleted file mode 100644 index b2bf76a8c..000000000 --- a/packages/client/src/components/MkFormDialog.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkFormula.vue b/packages/client/src/components/MkFormula.vue deleted file mode 100644 index 65a2fee93..000000000 --- a/packages/client/src/components/MkFormula.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/packages/client/src/components/MkFormulaCore.vue b/packages/client/src/components/MkFormulaCore.vue deleted file mode 100644 index 8db8932fc..000000000 --- a/packages/client/src/components/MkFormulaCore.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - diff --git a/packages/client/src/components/MkGalleryPostPreview.vue b/packages/client/src/components/MkGalleryPostPreview.vue deleted file mode 100644 index a133f6431..000000000 --- a/packages/client/src/components/MkGalleryPostPreview.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkGoogle.vue b/packages/client/src/components/MkGoogle.vue deleted file mode 100644 index bb4b439ee..000000000 --- a/packages/client/src/components/MkGoogle.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkImageViewer.vue b/packages/client/src/components/MkImageViewer.vue deleted file mode 100644 index f074b1a2f..000000000 --- a/packages/client/src/components/MkImageViewer.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkImgWithBlurhash.vue b/packages/client/src/components/MkImgWithBlurhash.vue deleted file mode 100644 index 80d7c201a..000000000 --- a/packages/client/src/components/MkImgWithBlurhash.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkInfo.vue b/packages/client/src/components/MkInfo.vue deleted file mode 100644 index 4fdfc5c5e..000000000 --- a/packages/client/src/components/MkInfo.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkInstanceCardMini.vue b/packages/client/src/components/MkInstanceCardMini.vue deleted file mode 100644 index f6e2f4eaa..000000000 --- a/packages/client/src/components/MkInstanceCardMini.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkInstanceStats.vue b/packages/client/src/components/MkInstanceStats.vue deleted file mode 100644 index 0437e05fa..000000000 --- a/packages/client/src/components/MkInstanceStats.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkInstanceTicker.vue b/packages/client/src/components/MkInstanceTicker.vue deleted file mode 100644 index d9f196f88..000000000 --- a/packages/client/src/components/MkInstanceTicker.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkKeyValue.vue b/packages/client/src/components/MkKeyValue.vue deleted file mode 100644 index 586f7a3f9..000000000 --- a/packages/client/src/components/MkKeyValue.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkLaunchPad.vue b/packages/client/src/components/MkLaunchPad.vue deleted file mode 100644 index 19283178c..000000000 --- a/packages/client/src/components/MkLaunchPad.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkLink.vue b/packages/client/src/components/MkLink.vue deleted file mode 100644 index 649523abc..000000000 --- a/packages/client/src/components/MkLink.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMarquee.vue b/packages/client/src/components/MkMarquee.vue deleted file mode 100644 index 5ca04b0b4..000000000 --- a/packages/client/src/components/MkMarquee.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - diff --git a/packages/client/src/components/MkMediaBanner.vue b/packages/client/src/components/MkMediaBanner.vue deleted file mode 100644 index 5093f11e9..000000000 --- a/packages/client/src/components/MkMediaBanner.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMediaCaption.vue b/packages/client/src/components/MkMediaCaption.vue deleted file mode 100644 index c25755d76..000000000 --- a/packages/client/src/components/MkMediaCaption.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMediaImage.vue b/packages/client/src/components/MkMediaImage.vue deleted file mode 100644 index 92f1bd2db..000000000 --- a/packages/client/src/components/MkMediaImage.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMediaList.vue b/packages/client/src/components/MkMediaList.vue deleted file mode 100644 index c6f861218..000000000 --- a/packages/client/src/components/MkMediaList.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - diff --git a/packages/client/src/components/MkMediaVideo.vue b/packages/client/src/components/MkMediaVideo.vue deleted file mode 100644 index 5c38691e6..000000000 --- a/packages/client/src/components/MkMediaVideo.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMention.vue b/packages/client/src/components/MkMention.vue deleted file mode 100644 index 3091b435e..000000000 --- a/packages/client/src/components/MkMention.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMenu.child.vue b/packages/client/src/components/MkMenu.child.vue deleted file mode 100644 index 3ada4afbd..000000000 --- a/packages/client/src/components/MkMenu.child.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMenu.vue b/packages/client/src/components/MkMenu.vue deleted file mode 100644 index 578e736c8..000000000 --- a/packages/client/src/components/MkMenu.vue +++ /dev/null @@ -1,364 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkMiniChart.vue b/packages/client/src/components/MkMiniChart.vue deleted file mode 100644 index c64ce163f..000000000 --- a/packages/client/src/components/MkMiniChart.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/packages/client/src/components/MkModal.vue b/packages/client/src/components/MkModal.vue deleted file mode 100644 index 2305a0279..000000000 --- a/packages/client/src/components/MkModal.vue +++ /dev/null @@ -1,406 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkModalPageWindow.vue b/packages/client/src/components/MkModalPageWindow.vue deleted file mode 100644 index cc3f4c96c..000000000 --- a/packages/client/src/components/MkModalPageWindow.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkModalWindow.vue b/packages/client/src/components/MkModalWindow.vue deleted file mode 100644 index 5acd8c921..000000000 --- a/packages/client/src/components/MkModalWindow.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNote.vue b/packages/client/src/components/MkNote.vue deleted file mode 100644 index efe786ba4..000000000 --- a/packages/client/src/components/MkNote.vue +++ /dev/null @@ -1,648 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNoteDetailed.vue b/packages/client/src/components/MkNoteDetailed.vue deleted file mode 100644 index 0bf8f330b..000000000 --- a/packages/client/src/components/MkNoteDetailed.vue +++ /dev/null @@ -1,601 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNoteHeader.vue b/packages/client/src/components/MkNoteHeader.vue deleted file mode 100644 index 333c3ddbd..000000000 --- a/packages/client/src/components/MkNoteHeader.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNotePreview.vue b/packages/client/src/components/MkNotePreview.vue deleted file mode 100644 index a78b49965..000000000 --- a/packages/client/src/components/MkNotePreview.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNoteSimple.vue b/packages/client/src/components/MkNoteSimple.vue deleted file mode 100644 index 1bbbe0e1a..000000000 --- a/packages/client/src/components/MkNoteSimple.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNoteSub.vue b/packages/client/src/components/MkNoteSub.vue deleted file mode 100644 index a69336f8a..000000000 --- a/packages/client/src/components/MkNoteSub.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNotes.vue b/packages/client/src/components/MkNotes.vue deleted file mode 100644 index 5abcdc229..000000000 --- a/packages/client/src/components/MkNotes.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNotification.vue b/packages/client/src/components/MkNotification.vue deleted file mode 100644 index c00e9fbf4..000000000 --- a/packages/client/src/components/MkNotification.vue +++ /dev/null @@ -1,309 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNotificationSettingWindow.vue b/packages/client/src/components/MkNotificationSettingWindow.vue deleted file mode 100644 index 75bea2976..000000000 --- a/packages/client/src/components/MkNotificationSettingWindow.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/client/src/components/MkNotificationToast.vue b/packages/client/src/components/MkNotificationToast.vue deleted file mode 100644 index 398f64d54..000000000 --- a/packages/client/src/components/MkNotificationToast.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNotifications.vue b/packages/client/src/components/MkNotifications.vue deleted file mode 100644 index 0e1cc0674..000000000 --- a/packages/client/src/components/MkNotifications.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkNumberDiff.vue b/packages/client/src/components/MkNumberDiff.vue deleted file mode 100644 index e7d4a5472..000000000 --- a/packages/client/src/components/MkNumberDiff.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkObjectView.value.vue b/packages/client/src/components/MkObjectView.value.vue deleted file mode 100644 index 0c7230d78..000000000 --- a/packages/client/src/components/MkObjectView.value.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkObjectView.vue b/packages/client/src/components/MkObjectView.vue deleted file mode 100644 index 55578a37f..000000000 --- a/packages/client/src/components/MkObjectView.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPagePreview.vue b/packages/client/src/components/MkPagePreview.vue deleted file mode 100644 index 009582e54..000000000 --- a/packages/client/src/components/MkPagePreview.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPageWindow.vue b/packages/client/src/components/MkPageWindow.vue deleted file mode 100644 index d58b91403..000000000 --- a/packages/client/src/components/MkPageWindow.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPagination.vue b/packages/client/src/components/MkPagination.vue deleted file mode 100644 index 291409171..000000000 --- a/packages/client/src/components/MkPagination.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPoll.vue b/packages/client/src/components/MkPoll.vue deleted file mode 100644 index d90af1cfe..000000000 --- a/packages/client/src/components/MkPoll.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPollEditor.vue b/packages/client/src/components/MkPollEditor.vue deleted file mode 100644 index 3b08a6353..000000000 --- a/packages/client/src/components/MkPollEditor.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPopupMenu.vue b/packages/client/src/components/MkPopupMenu.vue deleted file mode 100644 index f04c7f561..000000000 --- a/packages/client/src/components/MkPopupMenu.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/packages/client/src/components/MkPostForm.vue b/packages/client/src/components/MkPostForm.vue deleted file mode 100644 index 0c57a5a57..000000000 --- a/packages/client/src/components/MkPostForm.vue +++ /dev/null @@ -1,987 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkA.vue b/packages/client/src/components/global/MkA.vue deleted file mode 100644 index 67bf54def..000000000 --- a/packages/client/src/components/global/MkA.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/packages/client/src/components/global/MkAcct.vue b/packages/client/src/components/global/MkAcct.vue deleted file mode 100644 index c3e806b5f..000000000 --- a/packages/client/src/components/global/MkAcct.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkAd.vue b/packages/client/src/components/global/MkAd.vue deleted file mode 100644 index 8161ef379..000000000 --- a/packages/client/src/components/global/MkAd.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkAvatar.vue b/packages/client/src/components/global/MkAvatar.vue deleted file mode 100644 index 5f3e3c176..000000000 --- a/packages/client/src/components/global/MkAvatar.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkEmoji.vue b/packages/client/src/components/global/MkEmoji.vue deleted file mode 100644 index 106778aee..000000000 --- a/packages/client/src/components/global/MkEmoji.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkError.vue b/packages/client/src/components/global/MkError.vue deleted file mode 100644 index 6e75a69ec..000000000 --- a/packages/client/src/components/global/MkError.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkLoading.vue b/packages/client/src/components/global/MkLoading.vue deleted file mode 100644 index bcf592523..000000000 --- a/packages/client/src/components/global/MkLoading.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue b/packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue deleted file mode 100644 index 70d0108e9..000000000 --- a/packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - diff --git a/packages/client/src/components/global/MkPageHeader.vue b/packages/client/src/components/global/MkPageHeader.vue deleted file mode 100644 index ba75b2446..000000000 --- a/packages/client/src/components/global/MkPageHeader.vue +++ /dev/null @@ -1,365 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkSpacer.vue b/packages/client/src/components/global/MkSpacer.vue deleted file mode 100644 index 53adf0777..000000000 --- a/packages/client/src/components/global/MkSpacer.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkStickyContainer.vue b/packages/client/src/components/global/MkStickyContainer.vue deleted file mode 100644 index 44f4f065a..000000000 --- a/packages/client/src/components/global/MkStickyContainer.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - diff --git a/packages/client/src/components/global/MkTime.vue b/packages/client/src/components/global/MkTime.vue deleted file mode 100644 index f72b153f5..000000000 --- a/packages/client/src/components/global/MkTime.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/packages/client/src/components/global/MkUrl.vue b/packages/client/src/components/global/MkUrl.vue deleted file mode 100644 index 37c0212ea..000000000 --- a/packages/client/src/components/global/MkUrl.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/packages/client/src/components/global/MkUserName.vue b/packages/client/src/components/global/MkUserName.vue deleted file mode 100644 index 090de3df3..000000000 --- a/packages/client/src/components/global/MkUserName.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/packages/client/src/components/global/RouterView.vue b/packages/client/src/components/global/RouterView.vue deleted file mode 100644 index e21a57471..000000000 --- a/packages/client/src/components/global/RouterView.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - diff --git a/packages/client/src/components/global/i18n.ts b/packages/client/src/components/global/i18n.ts deleted file mode 100644 index 1fd293ba1..000000000 --- a/packages/client/src/components/global/i18n.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { h, defineComponent } from 'vue'; - -export default defineComponent({ - props: { - src: { - type: String, - required: true, - }, - tag: { - type: String, - required: false, - default: 'span', - }, - textTag: { - type: String, - required: false, - default: null, - }, - }, - render() { - let str = this.src; - const parsed = [] as (string | { arg: string; })[]; - while (true) { - const nextBracketOpen = str.indexOf('{'); - const nextBracketClose = str.indexOf('}'); - - if (nextBracketOpen === -1) { - parsed.push(str); - break; - } else { - if (nextBracketOpen > 0) parsed.push(str.substr(0, nextBracketOpen)); - parsed.push({ - arg: str.substring(nextBracketOpen + 1, nextBracketClose), - }); - } - - str = str.substr(nextBracketClose + 1); - } - - return h(this.tag, parsed.map(x => typeof x === 'string' ? (this.textTag ? h(this.textTag, x) : x) : this.$slots[x.arg]())); - }, -}); diff --git a/packages/client/src/components/index.ts b/packages/client/src/components/index.ts deleted file mode 100644 index 863925700..000000000 --- a/packages/client/src/components/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { App } from 'vue'; - -import Mfm from './global/MkMisskeyFlavoredMarkdown.vue'; -import MkA from './global/MkA.vue'; -import MkAcct from './global/MkAcct.vue'; -import MkAvatar from './global/MkAvatar.vue'; -import MkEmoji from './global/MkEmoji.vue'; -import MkUserName from './global/MkUserName.vue'; -import MkEllipsis from './global/MkEllipsis.vue'; -import MkTime from './global/MkTime.vue'; -import MkUrl from './global/MkUrl.vue'; -import I18n from './global/i18n'; -import RouterView from './global/RouterView.vue'; -import MkLoading from './global/MkLoading.vue'; -import MkError from './global/MkError.vue'; -import MkAd from './global/MkAd.vue'; -import MkPageHeader from './global/MkPageHeader.vue'; -import MkSpacer from './global/MkSpacer.vue'; -import MkStickyContainer from './global/MkStickyContainer.vue'; - -export default function(app: App) { - app.component('I18n', I18n); - app.component('RouterView', RouterView); - app.component('Mfm', Mfm); - app.component('MkA', MkA); - app.component('MkAcct', MkAcct); - app.component('MkAvatar', MkAvatar); - app.component('MkEmoji', MkEmoji); - app.component('MkUserName', MkUserName); - app.component('MkEllipsis', MkEllipsis); - app.component('MkTime', MkTime); - app.component('MkUrl', MkUrl); - app.component('MkLoading', MkLoading); - app.component('MkError', MkError); - app.component('MkAd', MkAd); - app.component('MkPageHeader', MkPageHeader); - app.component('MkSpacer', MkSpacer); - app.component('MkStickyContainer', MkStickyContainer); -} - -declare module '@vue/runtime-core' { - export interface GlobalComponents { - I18n: typeof I18n; - RouterView: typeof RouterView; - Mfm: typeof Mfm; - MkA: typeof MkA; - MkAcct: typeof MkAcct; - MkAvatar: typeof MkAvatar; - MkEmoji: typeof MkEmoji; - MkUserName: typeof MkUserName; - MkEllipsis: typeof MkEllipsis; - MkTime: typeof MkTime; - MkUrl: typeof MkUrl; - MkLoading: typeof MkLoading; - MkError: typeof MkError; - MkAd: typeof MkAd; - MkPageHeader: typeof MkPageHeader; - MkSpacer: typeof MkSpacer; - MkStickyContainer: typeof MkStickyContainer; - } -} diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts deleted file mode 100644 index 688857a49..000000000 --- a/packages/client/src/components/mfm.ts +++ /dev/null @@ -1,330 +0,0 @@ -import { VNode, defineComponent, h } from 'vue'; -import * as mfm from 'mfm-js'; -import MkUrl from '@/components/global/MkUrl.vue'; -import MkLink from '@/components/MkLink.vue'; -import MkMention from '@/components/MkMention.vue'; -import MkEmoji from '@/components/global/MkEmoji.vue'; -import { concat } from '@/scripts/array'; -import MkFormula from '@/components/MkFormula.vue'; -import MkCode from '@/components/MkCode.vue'; -import MkGoogle from '@/components/MkGoogle.vue'; -import MkSparkle from '@/components/MkSparkle.vue'; -import MkA from '@/components/global/MkA.vue'; -import { host } from '@/config'; -import { MFM_TAGS } from '@/scripts/mfm-tags'; - -export default defineComponent({ - props: { - text: { - type: String, - required: true, - }, - plain: { - type: Boolean, - default: false, - }, - nowrap: { - type: Boolean, - default: false, - }, - author: { - type: Object, - default: null, - }, - i: { - type: Object, - default: null, - }, - customEmojis: { - required: false, - }, - isNote: { - type: Boolean, - default: true, - }, - }, - - render() { - if (this.text == null || this.text === '') return; - - const ast = (this.plain ? mfm.parseSimple : mfm.parse)(this.text, { fnNameList: MFM_TAGS }); - - const validTime = (t: string | null | undefined) => { - if (t == null) return null; - return t.match(/^[0-9.]+s$/) ? t : null; - }; - - const genEl = (ast: mfm.MfmNode[]) => concat(ast.map((token): VNode[] => { - switch (token.type) { - case 'text': { - const text = token.props.text.replace(/(\r\n|\n|\r)/g, '\n'); - - if (!this.plain) { - const res = []; - for (const t of text.split('\n')) { - res.push(h('br')); - res.push(t); - } - res.shift(); - return res; - } else { - return [text.replace(/\n/g, ' ')]; - } - } - - case 'bold': { - return [h('b', genEl(token.children))]; - } - - case 'strike': { - return [h('del', genEl(token.children))]; - } - - case 'italic': { - return h('i', { - style: 'font-style: oblique;', - }, genEl(token.children)); - } - - case 'fn': { - // TODO: CSSを文字列で組み立てていくと token.props.args.~~~ 経由でCSSインジェクションできるのでよしなにやる - let style; - switch (token.props.name) { - case 'tada': { - const speed = validTime(token.props.args.speed) || '1s'; - style = 'font-size: 150%;' + (this.$store.state.animatedMfm ? `animation: tada ${speed} linear infinite both;` : ''); - break; - } - case 'jelly': { - const speed = validTime(token.props.args.speed) || '1s'; - style = (this.$store.state.animatedMfm ? `animation: mfm-rubberBand ${speed} linear infinite both;` : ''); - break; - } - case 'twitch': { - const speed = validTime(token.props.args.speed) || '0.5s'; - style = this.$store.state.animatedMfm ? `animation: mfm-twitch ${speed} ease infinite;` : ''; - break; - } - case 'shake': { - const speed = validTime(token.props.args.speed) || '0.5s'; - style = this.$store.state.animatedMfm ? `animation: mfm-shake ${speed} ease infinite;` : ''; - break; - } - case 'spin': { - const direction = - token.props.args.left ? 'reverse' : - token.props.args.alternate ? 'alternate' : - 'normal'; - const anime = - token.props.args.x ? 'mfm-spinX' : - token.props.args.y ? 'mfm-spinY' : - 'mfm-spin'; - const speed = validTime(token.props.args.speed) || '1.5s'; - style = this.$store.state.animatedMfm ? `animation: ${anime} ${speed} linear infinite; animation-direction: ${direction};` : ''; - break; - } - case 'jump': { - const speed = validTime(token.props.args.speed) || '0.75s'; - style = this.$store.state.animatedMfm ? `animation: mfm-jump ${speed} linear infinite;` : ''; - break; - } - case 'bounce': { - const speed = validTime(token.props.args.speed) || '0.75s'; - style = this.$store.state.animatedMfm ? `animation: mfm-bounce ${speed} linear infinite; transform-origin: center bottom;` : ''; - break; - } - case 'flip': { - const transform = - (token.props.args.h && token.props.args.v) ? 'scale(-1, -1)' : - token.props.args.v ? 'scaleY(-1)' : - 'scaleX(-1)'; - style = `transform: ${transform};`; - break; - } - case 'x2': { - return h('span', { - class: 'mfm-x2', - }, genEl(token.children)); - } - case 'x3': { - return h('span', { - class: 'mfm-x3', - }, genEl(token.children)); - } - case 'x4': { - return h('span', { - class: 'mfm-x4', - }, genEl(token.children)); - } - case 'font': { - const family = - token.props.args.serif ? 'serif' : - token.props.args.monospace ? 'monospace' : - token.props.args.cursive ? 'cursive' : - token.props.args.fantasy ? 'fantasy' : - token.props.args.emoji ? 'emoji' : - token.props.args.math ? 'math' : - null; - if (family) style = `font-family: ${family};`; - break; - } - case 'blur': { - return h('span', { - class: '_mfm_blur_', - }, genEl(token.children)); - } - case 'rainbow': { - const speed = validTime(token.props.args.speed) || '1s'; - style = this.$store.state.animatedMfm ? `animation: mfm-rainbow ${speed} linear infinite;` : ''; - break; - } - case 'sparkle': { - if (!this.$store.state.animatedMfm) { - return genEl(token.children); - } - return h(MkSparkle, {}, genEl(token.children)); - } - case 'rotate': { - const degrees = parseInt(token.props.args.deg) || '90'; - style = `transform: rotate(${degrees}deg); transform-origin: center center;`; - break; - } - } - if (style == null) { - return h('span', {}, ['$[', token.props.name, ' ', ...genEl(token.children), ']']); - } else { - return h('span', { - style: 'display: inline-block;' + style, - }, genEl(token.children)); - } - } - - case 'small': { - return [h('small', { - style: 'opacity: 0.7;', - }, genEl(token.children))]; - } - - case 'center': { - return [h('div', { - style: 'text-align:center;', - }, genEl(token.children))]; - } - - case 'url': { - return [h(MkUrl, { - key: Math.random(), - url: token.props.url, - rel: 'nofollow noopener', - })]; - } - - case 'link': { - return [h(MkLink, { - key: Math.random(), - url: token.props.url, - rel: 'nofollow noopener', - }, genEl(token.children))]; - } - - case 'mention': { - return [h(MkMention, { - key: Math.random(), - host: (token.props.host == null && this.author && this.author.host != null ? this.author.host : token.props.host) || host, - username: token.props.username, - })]; - } - - case 'hashtag': { - return [h(MkA, { - key: Math.random(), - to: this.isNote ? `/tags/${encodeURIComponent(token.props.hashtag)}` : `/explore/tags/${encodeURIComponent(token.props.hashtag)}`, - style: 'color:var(--hashtag);', - }, `#${token.props.hashtag}`)]; - } - - case 'blockCode': { - return [h(MkCode, { - key: Math.random(), - code: token.props.code, - lang: token.props.lang, - })]; - } - - case 'inlineCode': { - return [h(MkCode, { - key: Math.random(), - code: token.props.code, - inline: true, - })]; - } - - case 'quote': { - if (!this.nowrap) { - return [h('div', { - class: 'quote', - }, genEl(token.children))]; - } else { - return [h('span', { - class: 'quote', - }, genEl(token.children))]; - } - } - - case 'emojiCode': { - return [h(MkEmoji, { - key: Math.random(), - emoji: `:${token.props.name}:`, - customEmojis: this.customEmojis, - normal: this.plain, - })]; - } - - case 'unicodeEmoji': { - return [h(MkEmoji, { - key: Math.random(), - emoji: token.props.emoji, - customEmojis: this.customEmojis, - normal: this.plain, - })]; - } - - case 'mathInline': { - return [h(MkFormula, { - key: Math.random(), - formula: token.props.formula, - block: false, - })]; - } - - case 'mathBlock': { - return [h(MkFormula, { - key: Math.random(), - formula: token.props.formula, - block: true, - })]; - } - - case 'search': { - return [h(MkGoogle, { - key: Math.random(), - q: token.props.query, - })]; - } - - case 'plain': { - return [h('span', genEl(token.children))]; - } - - default: { - console.error('unrecognized ast type:', token.type); - - return []; - } - } - })); - - // Parse ast to DOM - return h('span', genEl(ast)); - }, -}); diff --git a/packages/client/src/components/page/page.button.vue b/packages/client/src/components/page/page.button.vue deleted file mode 100644 index e8878df8d..000000000 --- a/packages/client/src/components/page/page.button.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.canvas.vue b/packages/client/src/components/page/page.canvas.vue deleted file mode 100644 index 8f49b88e5..000000000 --- a/packages/client/src/components/page/page.canvas.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.counter.vue b/packages/client/src/components/page/page.counter.vue deleted file mode 100644 index 6eeef7143..000000000 --- a/packages/client/src/components/page/page.counter.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.if.vue b/packages/client/src/components/page/page.if.vue deleted file mode 100644 index 6dc7a429a..000000000 --- a/packages/client/src/components/page/page.if.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/packages/client/src/components/page/page.image.vue b/packages/client/src/components/page/page.image.vue deleted file mode 100644 index 8ba70c585..000000000 --- a/packages/client/src/components/page/page.image.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.note.vue b/packages/client/src/components/page/page.note.vue deleted file mode 100644 index 431f0b08d..000000000 --- a/packages/client/src/components/page/page.note.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.number-input.vue b/packages/client/src/components/page/page.number-input.vue deleted file mode 100644 index 47ff2a017..000000000 --- a/packages/client/src/components/page/page.number-input.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.post.vue b/packages/client/src/components/page/page.post.vue deleted file mode 100644 index f65519635..000000000 --- a/packages/client/src/components/page/page.post.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.radio-button.vue b/packages/client/src/components/page/page.radio-button.vue deleted file mode 100644 index 5a726da22..000000000 --- a/packages/client/src/components/page/page.radio-button.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/packages/client/src/components/page/page.section.vue b/packages/client/src/components/page/page.section.vue deleted file mode 100644 index a2cd66283..000000000 --- a/packages/client/src/components/page/page.section.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.switch.vue b/packages/client/src/components/page/page.switch.vue deleted file mode 100644 index 1ece88157..000000000 --- a/packages/client/src/components/page/page.switch.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.text-input.vue b/packages/client/src/components/page/page.text-input.vue deleted file mode 100644 index 30a0379df..000000000 --- a/packages/client/src/components/page/page.text-input.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.text.vue b/packages/client/src/components/page/page.text.vue deleted file mode 100644 index b4abe8284..000000000 --- a/packages/client/src/components/page/page.text.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - diff --git a/packages/client/src/components/page/page.textarea-input.vue b/packages/client/src/components/page/page.textarea-input.vue deleted file mode 100644 index 6e082b2be..000000000 --- a/packages/client/src/components/page/page.textarea-input.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - diff --git a/packages/client/src/components/page/page.textarea.vue b/packages/client/src/components/page/page.textarea.vue deleted file mode 100644 index 5b4ee2b45..000000000 --- a/packages/client/src/components/page/page.textarea.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/client/src/components/page/page.vue b/packages/client/src/components/page/page.vue deleted file mode 100644 index 58c43b22b..000000000 --- a/packages/client/src/components/page/page.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/packages/client/src/const.ts b/packages/client/src/const.ts deleted file mode 100644 index 505cf2748..000000000 --- a/packages/client/src/const.ts +++ /dev/null @@ -1,44 +0,0 @@ -// ブラウザで直接表示することを許可するファイルの種類のリスト -// ここに含まれないものは application/octet-stream としてレスポンスされる -// SVGはXSSを生むので許可しない -export const FILE_TYPE_BROWSERSAFE = [ - // Images - 'image/png', - 'image/gif', - 'image/jpeg', - 'image/webp', - 'image/apng', - 'image/bmp', - 'image/tiff', - 'image/x-icon', - - // OggS - 'audio/opus', - 'video/ogg', - 'audio/ogg', - 'application/ogg', - - // ISO/IEC base media file format - 'video/quicktime', - 'video/mp4', - 'audio/mp4', - 'video/x-m4v', - 'audio/x-m4a', - 'video/3gpp', - 'video/3gpp2', - - 'video/mpeg', - 'audio/mpeg', - - 'video/webm', - 'audio/webm', - - 'audio/aac', - 'audio/x-flac', - 'audio/vnd.wave', -]; -/* -https://github.com/sindresorhus/file-type/blob/main/supported.js -https://github.com/sindresorhus/file-type/blob/main/core.js -https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers -*/ diff --git a/packages/client/src/directives/adaptive-border.ts b/packages/client/src/directives/adaptive-border.ts deleted file mode 100644 index 619c9f0b6..000000000 --- a/packages/client/src/directives/adaptive-border.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Directive } from 'vue'; - -export default { - mounted(src, binding, vn) { - const getBgColor = (el: HTMLElement) => { - const style = window.getComputedStyle(el); - if (style.backgroundColor && !['rgba(0, 0, 0, 0)', 'rgba(0,0,0,0)', 'transparent'].includes(style.backgroundColor)) { - return style.backgroundColor; - } else { - return el.parentElement ? getBgColor(el.parentElement) : 'transparent'; - } - }; - - const parentBg = getBgColor(src.parentElement); - - const myBg = window.getComputedStyle(src).backgroundColor; - - if (parentBg === myBg) { - src.style.borderColor = 'var(--divider)'; - } else { - src.style.borderColor = myBg; - } - }, -} as Directive; diff --git a/packages/client/src/directives/anim.ts b/packages/client/src/directives/anim.ts deleted file mode 100644 index 04e1c6a40..000000000 --- a/packages/client/src/directives/anim.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Directive } from 'vue'; - -export default { - beforeMount(src, binding, vn) { - src.style.opacity = '0'; - src.style.transform = 'scale(0.9)'; - // ページネーションと相性が悪いので - //if (typeof binding.value === 'number') src.style.transitionDelay = `${binding.value * 30}ms`; - src.classList.add('_zoom'); - }, - - mounted(src, binding, vn) { - window.setTimeout(() => { - src.style.opacity = '1'; - src.style.transform = 'none'; - }, 1); - }, -} as Directive; diff --git a/packages/client/src/directives/click-anime.ts b/packages/client/src/directives/click-anime.ts deleted file mode 100644 index 099aac28f..000000000 --- a/packages/client/src/directives/click-anime.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Directive } from 'vue'; -import { defaultStore } from '@/store'; - -export default { - mounted(el, binding, vn) { - /* - if (!defaultStore.state.animation) return; - - el.classList.add('_anime_bounce_standBy'); - - el.addEventListener('mousedown', () => { - el.classList.add('_anime_bounce_standBy'); - el.classList.add('_anime_bounce_ready'); - - el.addEventListener('mouseleave', () => { - el.classList.remove('_anime_bounce_ready'); - }); - }); - - el.addEventListener('click', () => { - el.classList.add('_anime_bounce'); - }); - - el.addEventListener('animationend', () => { - el.classList.remove('_anime_bounce_ready'); - el.classList.remove('_anime_bounce'); - el.classList.add('_anime_bounce_standBy'); - }); - */ - } -} as Directive; diff --git a/packages/client/src/directives/follow-append.ts b/packages/client/src/directives/follow-append.ts deleted file mode 100644 index b0e99628b..000000000 --- a/packages/client/src/directives/follow-append.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Directive } from 'vue'; -import { getScrollContainer, getScrollPosition } from '@/scripts/scroll'; - -export default { - mounted(src, binding, vn) { - if (binding.value === false) return; - - let isBottom = true; - - const container = getScrollContainer(src)!; - container.addEventListener('scroll', () => { - const pos = getScrollPosition(container); - const viewHeight = container.clientHeight; - const height = container.scrollHeight; - isBottom = (pos + viewHeight > height - 32); - }, { passive: true }); - container.scrollTop = container.scrollHeight; - - const ro = new ResizeObserver((entries, observer) => { - if (isBottom) { - const height = container.scrollHeight; - container.scrollTop = height; - } - }); - - ro.observe(src); - - // TODO: 新たにプロパティを作るのをやめMapを使う - src._ro_ = ro; - }, - - unmounted(src, binding, vn) { - if (src._ro_) src._ro_.unobserve(src); - } -} as Directive; diff --git a/packages/client/src/directives/get-size.ts b/packages/client/src/directives/get-size.ts deleted file mode 100644 index 76b54ea4b..000000000 --- a/packages/client/src/directives/get-size.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Directive } from 'vue'; - -const mountings = new Map void; -}>(); - -function calc(src: Element) { - const info = mountings.get(src); - const height = src.clientHeight; - const width = src.clientWidth; - - if (!info) return; - - // アクティベート前などでsrcが描画されていない場合 - if (!height) { - // IntersectionObserverで表示検出する - if (!info.intersection) { - info.intersection = new IntersectionObserver(entries => { - if (entries.some(entry => entry.isIntersecting)) calc(src); - }); - } - info.intersection.observe(src); - return; - } - if (info.intersection) { - info.intersection.disconnect(); - delete info.intersection; - } - - info.fn(width, height); -} - -export default { - mounted(src, binding, vn) { - const resize = new ResizeObserver((entries, observer) => { - calc(src); - }); - resize.observe(src); - - mountings.set(src, { resize, fn: binding.value, }); - calc(src); - }, - - unmounted(src, binding, vn) { - binding.value(0, 0); - const info = mountings.get(src); - if (!info) return; - info.resize.disconnect(); - if (info.intersection) info.intersection.disconnect(); - mountings.delete(src); - } -} as Directive void>; diff --git a/packages/client/src/directives/hotkey.ts b/packages/client/src/directives/hotkey.ts deleted file mode 100644 index d813a9507..000000000 --- a/packages/client/src/directives/hotkey.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Directive } from 'vue'; -import { makeHotkey } from '../scripts/hotkey'; - -export default { - mounted(el, binding) { - el._hotkey_global = binding.modifiers.global === true; - - el._keyHandler = makeHotkey(binding.value); - - if (el._hotkey_global) { - document.addEventListener('keydown', el._keyHandler); - } else { - el.addEventListener('keydown', el._keyHandler); - } - }, - - unmounted(el) { - if (el._hotkey_global) { - document.removeEventListener('keydown', el._keyHandler); - } else { - el.removeEventListener('keydown', el._keyHandler); - } - } -} as Directive; diff --git a/packages/client/src/directives/index.ts b/packages/client/src/directives/index.ts deleted file mode 100644 index 401a917cb..000000000 --- a/packages/client/src/directives/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { App } from 'vue'; - -import userPreview from './user-preview'; -import size from './size'; -import getSize from './get-size'; -import ripple from './ripple'; -import tooltip from './tooltip'; -import hotkey from './hotkey'; -import appear from './appear'; -import anim from './anim'; -import clickAnime from './click-anime'; -import panel from './panel'; -import adaptiveBorder from './adaptive-border'; - -export default function(app: App) { - app.directive('userPreview', userPreview); - app.directive('user-preview', userPreview); - app.directive('size', size); - app.directive('get-size', getSize); - app.directive('ripple', ripple); - app.directive('tooltip', tooltip); - app.directive('hotkey', hotkey); - app.directive('appear', appear); - app.directive('anim', anim); - app.directive('click-anime', clickAnime); - app.directive('panel', panel); - app.directive('adaptive-border', adaptiveBorder); -} diff --git a/packages/client/src/directives/panel.ts b/packages/client/src/directives/panel.ts deleted file mode 100644 index d31dc41ed..000000000 --- a/packages/client/src/directives/panel.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Directive } from 'vue'; - -export default { - mounted(src, binding, vn) { - const getBgColor = (el: HTMLElement) => { - const style = window.getComputedStyle(el); - if (style.backgroundColor && !['rgba(0, 0, 0, 0)', 'rgba(0,0,0,0)', 'transparent'].includes(style.backgroundColor)) { - return style.backgroundColor; - } else { - return el.parentElement ? getBgColor(el.parentElement) : 'transparent'; - } - }; - - const parentBg = getBgColor(src.parentElement); - - const myBg = getComputedStyle(document.documentElement).getPropertyValue('--panel'); - - if (parentBg === myBg) { - src.style.backgroundColor = 'var(--bg)'; - } else { - src.style.backgroundColor = 'var(--panel)'; - } - }, -} as Directive; diff --git a/packages/client/src/directives/ripple.ts b/packages/client/src/directives/ripple.ts deleted file mode 100644 index 5329d021f..000000000 --- a/packages/client/src/directives/ripple.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Ripple from '@/components/MkRipple.vue'; -import { popup } from '@/os'; - -export default { - mounted(el, binding, vn) { - // 明示的に false であればバインドしない - if (binding.value === false) return; - - el.addEventListener('click', () => { - const rect = el.getBoundingClientRect(); - - const x = rect.left + (el.offsetWidth / 2); - const y = rect.top + (el.offsetHeight / 2); - - popup(Ripple, { x, y }, {}, 'end'); - }); - } -}; diff --git a/packages/client/src/directives/size.ts b/packages/client/src/directives/size.ts deleted file mode 100644 index c472a528a..000000000 --- a/packages/client/src/directives/size.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Directive } from 'vue'; - -type Value = { max?: number[]; min?: number[]; }; - -//const observers = new Map(); -const mountings = new Map(); - -type ClassOrder = { - add: string[]; - remove: string[]; -}; - -const cache = new Map(); - -function getClassOrder(width: number, queue: Value): ClassOrder { - const getMaxClass = (v: number) => `max-width_${v}px`; - const getMinClass = (v: number) => `min-width_${v}px`; - - return { - add: [ - ...(queue.max ? queue.max.filter(v => width <= v).map(getMaxClass) : []), - ...(queue.min ? queue.min.filter(v => width >= v).map(getMinClass) : []), - ], - remove: [ - ...(queue.max ? queue.max.filter(v => width > v).map(getMaxClass) : []), - ...(queue.min ? queue.min.filter(v => width < v).map(getMinClass) : []), - ] - }; -} - -function applyClassOrder(el: Element, order: ClassOrder) { - el.classList.add(...order.add); - el.classList.remove(...order.remove); -} - -function getOrderName(width: number, queue: Value): string { - return `${width}|${queue.max ? queue.max.join(',') : ''}|${queue.min ? queue.min.join(',') : ''}`; -} - -function calc(el: Element) { - const info = mountings.get(el); - const width = el.clientWidth; - - if (!info || info.previousWidth === width) return; - - // アクティベート前などでsrcが描画されていない場合 - if (!width) { - // IntersectionObserverで表示検出する - if (!info.intersection) { - info.intersection = new IntersectionObserver(entries => { - if (entries.some(entry => entry.isIntersecting)) calc(el); - }); - } - info.intersection.observe(el); - return; - } - if (info.intersection) { - info.intersection.disconnect(); - delete info.intersection; - } - - mountings.set(el, Object.assign(info, { previousWidth: width })); - - const cached = cache.get(getOrderName(width, info.value)); - if (cached) { - applyClassOrder(el, cached); - } else { - const order = getClassOrder(width, info.value); - cache.set(getOrderName(width, info.value), order); - applyClassOrder(el, order); - } -} - -export default { - mounted(src, binding, vn) { - const resize = new ResizeObserver((entries, observer) => { - calc(src); - }); - - mountings.set(src, { - value: binding.value, - resize, - previousWidth: 0, - }); - - calc(src); - resize.observe(src); - }, - - updated(src, binding, vn) { - mountings.set(src, Object.assign({}, mountings.get(src), { value: binding.value })); - calc(src); - }, - - unmounted(src, binding, vn) { - const info = mountings.get(src); - if (!info) return; - info.resize.disconnect(); - if (info.intersection) info.intersection.disconnect(); - mountings.delete(src); - } -} as Directive; diff --git a/packages/client/src/directives/tooltip.ts b/packages/client/src/directives/tooltip.ts deleted file mode 100644 index 5d13497b5..000000000 --- a/packages/client/src/directives/tooltip.ts +++ /dev/null @@ -1,93 +0,0 @@ -// TODO: useTooltip関数使うようにしたい -// ただディレクティブ内でonUnmountedなどのcomposition api使えるのか不明 - -import { defineAsyncComponent, Directive, ref } from 'vue'; -import { isTouchUsing } from '@/scripts/touch'; -import { popup, alert } from '@/os'; - -const start = isTouchUsing ? 'touchstart' : 'mouseover'; -const end = isTouchUsing ? 'touchend' : 'mouseleave'; - -export default { - mounted(el: HTMLElement, binding, vn) { - const delay = binding.modifiers.noDelay ? 0 : 100; - - const self = (el as any)._tooltipDirective_ = {} as any; - - self.text = binding.value as string; - self._close = null; - self.showTimer = null; - self.hideTimer = null; - self.checkTimer = null; - - self.close = () => { - if (self._close) { - window.clearInterval(self.checkTimer); - self._close(); - self._close = null; - } - }; - - if (binding.arg === 'dialog') { - el.addEventListener('click', (ev) => { - ev.preventDefault(); - ev.stopPropagation(); - alert({ - type: 'info', - text: binding.value, - }); - return false; - }); - } - - self.show = () => { - if (!document.body.contains(el)) return; - if (self._close) return; - if (self.text == null) return; - - const showing = ref(true); - popup(defineAsyncComponent(() => import('@/components/MkTooltip.vue')), { - showing, - text: self.text, - asMfm: binding.modifiers.mfm, - direction: binding.modifiers.left ? 'left' : binding.modifiers.right ? 'right' : binding.modifiers.top ? 'top' : binding.modifiers.bottom ? 'bottom' : 'top', - targetElement: el, - }, {}, 'closed'); - - self._close = () => { - showing.value = false; - }; - }; - - el.addEventListener('selectstart', ev => { - ev.preventDefault(); - }); - - el.addEventListener(start, () => { - window.clearTimeout(self.showTimer); - window.clearTimeout(self.hideTimer); - self.showTimer = window.setTimeout(self.show, delay); - }, { passive: true }); - - el.addEventListener(end, () => { - window.clearTimeout(self.showTimer); - window.clearTimeout(self.hideTimer); - self.hideTimer = window.setTimeout(self.close, delay); - }, { passive: true }); - - el.addEventListener('click', () => { - window.clearTimeout(self.showTimer); - self.close(); - }); - }, - - updated(el, binding) { - const self = el._tooltipDirective_; - self.text = binding.value as string; - }, - - unmounted(el, binding, vn) { - const self = el._tooltipDirective_; - window.clearInterval(self.checkTimer); - }, -} as Directive; diff --git a/packages/client/src/directives/user-preview.ts b/packages/client/src/directives/user-preview.ts deleted file mode 100644 index c46167662..000000000 --- a/packages/client/src/directives/user-preview.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { defineAsyncComponent, Directive, ref } from 'vue'; -import autobind from 'autobind-decorator'; -import { popup } from '@/os'; - -export class UserPreview { - private el; - private user; - private showTimer; - private hideTimer; - private checkTimer; - private promise; - - constructor(el, user) { - this.el = el; - this.user = user; - - this.attach(); - } - - @autobind - private show() { - if (!document.body.contains(this.el)) return; - if (this.promise) return; - - const showing = ref(true); - - popup(defineAsyncComponent(() => import('@/components/MkUserPreview.vue')), { - showing, - q: this.user, - source: this.el - }, { - mouseover: () => { - window.clearTimeout(this.hideTimer); - }, - mouseleave: () => { - window.clearTimeout(this.showTimer); - this.hideTimer = window.setTimeout(this.close, 500); - }, - }, 'closed'); - - this.promise = { - cancel: () => { - showing.value = false; - } - }; - - this.checkTimer = window.setInterval(() => { - if (!document.body.contains(this.el)) { - window.clearTimeout(this.showTimer); - window.clearTimeout(this.hideTimer); - this.close(); - } - }, 1000); - } - - @autobind - private close() { - if (this.promise) { - window.clearInterval(this.checkTimer); - this.promise.cancel(); - this.promise = null; - } - } - - @autobind - private onMouseover() { - window.clearTimeout(this.showTimer); - window.clearTimeout(this.hideTimer); - this.showTimer = window.setTimeout(this.show, 500); - } - - @autobind - private onMouseleave() { - window.clearTimeout(this.showTimer); - window.clearTimeout(this.hideTimer); - this.hideTimer = window.setTimeout(this.close, 500); - } - - @autobind - private onClick() { - window.clearTimeout(this.showTimer); - this.close(); - } - - @autobind - public attach() { - this.el.addEventListener('mouseover', this.onMouseover); - this.el.addEventListener('mouseleave', this.onMouseleave); - this.el.addEventListener('click', this.onClick); - } - - @autobind - public detach() { - this.el.removeEventListener('mouseover', this.onMouseover); - this.el.removeEventListener('mouseleave', this.onMouseleave); - this.el.removeEventListener('click', this.onClick); - window.clearInterval(this.checkTimer); - } -} - -export default { - mounted(el: HTMLElement, binding, vn) { - if (binding.value == null) return; - - // TODO: 新たにプロパティを作るのをやめMapを使う - // ただメモリ的には↓の方が省メモリかもしれないので検討中 - const self = (el as any)._userPreviewDirective_ = {} as any; - - self.preview = new UserPreview(el, binding.value); - }, - - unmounted(el, binding, vn) { - if (binding.value == null) return; - - const self = el._userPreviewDirective_; - self.preview.detach(); - } -} as Directive; diff --git a/packages/client/src/events.ts b/packages/client/src/events.ts deleted file mode 100644 index dbbd908b8..000000000 --- a/packages/client/src/events.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { EventEmitter } from 'eventemitter3'; - -// TODO: 型付け -export const globalEvents = new EventEmitter(); diff --git a/packages/client/src/filters/note.ts b/packages/client/src/filters/note.ts deleted file mode 100644 index cd9b7d98d..000000000 --- a/packages/client/src/filters/note.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const notePage = note => { - return `/notes/${note.id}`; -}; diff --git a/packages/client/src/filters/user.ts b/packages/client/src/filters/user.ts deleted file mode 100644 index ff2f7e2da..000000000 --- a/packages/client/src/filters/user.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as misskey from 'misskey-js'; -import * as Acct from 'misskey-js/built/acct'; -import { url } from '@/config'; - -export const acct = (user: misskey.Acct) => { - return Acct.toString(user); -}; - -export const userName = (user: misskey.entities.User) => { - return user.name || user.username; -}; - -export const userPage = (user: misskey.Acct, path?, absolute = false) => { - return `${absolute ? url : ''}/@${acct(user)}${(path ? `/${path}` : '')}`; -}; diff --git a/packages/client/src/i18n.ts b/packages/client/src/i18n.ts deleted file mode 100644 index fbc10a0ba..000000000 --- a/packages/client/src/i18n.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { markRaw } from 'vue'; -import { locale } from '@/config'; -import { I18n } from '@/scripts/i18n'; - -export const i18n = markRaw(new I18n(locale)); - -// このファイルに書きたくないけどここに書かないと何故かVeturが認識しない -declare module '@vue/runtime-core' { - interface ComponentCustomProperties { - $t: typeof i18n['t']; - $ts: typeof i18n['locale']; - } -} diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts deleted file mode 100644 index 737c044e6..000000000 --- a/packages/client/src/init.ts +++ /dev/null @@ -1,441 +0,0 @@ -/** - * Client entry point - */ - -import '@/style.scss'; - -//#region account indexedDB migration -import { set } from '@/scripts/idb-proxy'; - -if (localStorage.getItem('accounts') != null) { - set('accounts', JSON.parse(localStorage.getItem('accounts'))); - localStorage.removeItem('accounts'); -} -//#endregion - -import { computed, createApp, watch, markRaw, version as vueVersion, defineAsyncComponent } from 'vue'; -import { compareVersions } from 'compare-versions'; -import JSON5 from 'json5'; - -import widgets from '@/widgets'; -import directives from '@/directives'; -import components from '@/components'; -import { version, ui, lang, host } from '@/config'; -import { applyTheme } from '@/scripts/theme'; -import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; -import { i18n } from '@/i18n'; -import { confirm, alert, post, popup, toast } from '@/os'; -import { stream } from '@/stream'; -import * as sound from '@/scripts/sound'; -import { $i, refreshAccount, login, updateAccount, signout } from '@/account'; -import { defaultStore, ColdDeviceStorage } from '@/store'; -import { fetchInstance, instance } from '@/instance'; -import { makeHotkey } from '@/scripts/hotkey'; -import { search } from '@/scripts/search'; -import { deviceKind } from '@/scripts/device-kind'; -import { initializeSw } from '@/scripts/initialize-sw'; -import { reloadChannel } from '@/scripts/unison-reload'; -import { reactionPicker } from '@/scripts/reaction-picker'; -import { getUrlWithoutLoginId } from '@/scripts/login-id'; -import { getAccountFromId } from '@/scripts/get-account-from-id'; - -(async () => { - console.info(`Misskey v${version}`); - - if (_DEV_) { - console.warn('Development mode!!!'); - - console.info(`vue ${vueVersion}`); - - (window as any).$i = $i; - (window as any).$store = defaultStore; - - window.addEventListener('error', event => { - console.error(event); - /* - alert({ - type: 'error', - title: 'DEV: Unhandled error', - text: event.message - }); - */ - }); - - window.addEventListener('unhandledrejection', event => { - console.error(event); - /* - alert({ - type: 'error', - title: 'DEV: Unhandled promise rejection', - text: event.reason - }); - */ - }); - } - - // タッチデバイスでCSSの:hoverを機能させる - document.addEventListener('touchend', () => {}, { passive: true }); - - // 一斉リロード - reloadChannel.addEventListener('message', path => { - if (path !== null) location.href = path; - else location.reload(); - }); - - //#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ - // TODO: いつの日にか消したい - const vh = window.innerHeight * 0.01; - document.documentElement.style.setProperty('--vh', `${vh}px`); - window.addEventListener('resize', () => { - const vh = window.innerHeight * 0.01; - document.documentElement.style.setProperty('--vh', `${vh}px`); - }); - //#endregion - - // If mobile, insert the viewport meta tag - if (['smartphone', 'tablet'].includes(deviceKind)) { - const viewport = document.getElementsByName('viewport').item(0); - viewport.setAttribute('content', - `${viewport.getAttribute('content')}, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover`); - } - - //#region Set lang attr - const html = document.documentElement; - html.setAttribute('lang', lang); - //#endregion - - //#region loginId - const params = new URLSearchParams(location.search); - const loginId = params.get('loginId'); - - if (loginId) { - const target = getUrlWithoutLoginId(location.href); - - if (!$i || $i.id !== loginId) { - const account = await getAccountFromId(loginId); - if (account) { - await login(account.token, target); - } - } - - history.replaceState({ misskey: 'loginId' }, '', target); - } - - //#endregion - - //#region Fetch user - if ($i && $i.token) { - if (_DEV_) { - console.log('account cache found. refreshing...'); - } - - refreshAccount(); - } else { - if (_DEV_) { - console.log('no account cache found.'); - } - - // 連携ログインの場合用にCookieを参照する - const i = (document.cookie.match(/igi=(\w+)/) || [null, null])[1]; - - if (i != null && i !== 'null') { - if (_DEV_) { - console.log('signing...'); - } - - try { - document.body.innerHTML = '
Please wait...
'; - await login(i); - } catch (err) { - // Render the error screen - // TODO: ちゃんとしたコンポーネントをレンダリングする(v10とかのトラブルシューティングゲーム付きのやつみたいな) - document.body.innerHTML = '
Oops!
'; - } - } else { - if (_DEV_) { - console.log('not signed in'); - } - } - } - //#endregion - - const fetchInstanceMetaPromise = fetchInstance(); - - fetchInstanceMetaPromise.then(() => { - localStorage.setItem('v', instance.version); - - // Init service worker - initializeSw(); - }); - - const app = createApp( - window.location.search === '?zen' ? defineAsyncComponent(() => import('@/ui/zen.vue')) : - !$i ? defineAsyncComponent(() => import('@/ui/visitor.vue')) : - ui === 'deck' ? defineAsyncComponent(() => import('@/ui/deck.vue')) : - ui === 'classic' ? defineAsyncComponent(() => import('@/ui/classic.vue')) : - defineAsyncComponent(() => import('@/ui/universal.vue')), - ); - - if (_DEV_) { - app.config.performance = true; - } - - app.config.globalProperties = { - $i, - $store: defaultStore, - $instance: instance, - $t: i18n.t, - $ts: i18n.ts, - }; - - widgets(app); - directives(app); - components(app); - - const splash = document.getElementById('splash'); - // 念のためnullチェック(HTMLが古い場合があるため(そのうち消す)) - if (splash) splash.addEventListener('transitionend', () => { - splash.remove(); - }); - - // https://github.com/misskey-dev/misskey/pull/8575#issuecomment-1114239210 - // なぜかinit.tsの内容が2回実行されることがあるため、mountするdivを1つに制限する - const rootEl = (() => { - const MISSKEY_MOUNT_DIV_ID = 'misskey_app'; - - const currentEl = document.getElementById(MISSKEY_MOUNT_DIV_ID); - - if (currentEl) { - console.warn('multiple import detected'); - return currentEl; - } - - const rootEl = document.createElement('div'); - rootEl.id = MISSKEY_MOUNT_DIV_ID; - document.body.appendChild(rootEl); - return rootEl; - })(); - - app.mount(rootEl); - - // boot.jsのやつを解除 - window.onerror = null; - window.onunhandledrejection = null; - - reactionPicker.init(); - - if (splash) { - splash.style.opacity = '0'; - splash.style.pointerEvents = 'none'; - } - - // クライアントが更新されたか? - const lastVersion = localStorage.getItem('lastVersion'); - if (lastVersion !== version) { - localStorage.setItem('lastVersion', version); - - // テーマリビルドするため - localStorage.removeItem('theme'); - - try { // 変なバージョン文字列来るとcompareVersionsでエラーになるため - if (lastVersion != null && compareVersions(version, lastVersion) === 1) { - // ログインしてる場合だけ - if ($i) { - popup(defineAsyncComponent(() => import('@/components/MkUpdated.vue')), {}, {}, 'closed'); - } - } - } catch (err) { - } - } - - // NOTE: この処理は必ず↑のクライアント更新時処理より後に来ること(テーマ再構築のため) - watch(defaultStore.reactiveState.darkMode, (darkMode) => { - applyTheme(darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme')); - }, { immediate: localStorage.theme == null }); - - const darkTheme = computed(ColdDeviceStorage.makeGetterSetter('darkTheme')); - const lightTheme = computed(ColdDeviceStorage.makeGetterSetter('lightTheme')); - - watch(darkTheme, (theme) => { - if (defaultStore.state.darkMode) { - applyTheme(theme); - } - }); - - watch(lightTheme, (theme) => { - if (!defaultStore.state.darkMode) { - applyTheme(theme); - } - }); - - //#region Sync dark mode - if (ColdDeviceStorage.get('syncDeviceDarkMode')) { - defaultStore.set('darkMode', isDeviceDarkmode()); - } - - window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { - if (ColdDeviceStorage.get('syncDeviceDarkMode')) { - defaultStore.set('darkMode', mql.matches); - } - }); - //#endregion - - fetchInstanceMetaPromise.then(() => { - if (defaultStore.state.themeInitial) { - if (instance.defaultLightTheme != null) ColdDeviceStorage.set('lightTheme', JSON5.parse(instance.defaultLightTheme)); - if (instance.defaultDarkTheme != null) ColdDeviceStorage.set('darkTheme', JSON5.parse(instance.defaultDarkTheme)); - defaultStore.set('themeInitial', false); - } - }); - - watch(defaultStore.reactiveState.useBlurEffectForModal, v => { - document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); - }, { immediate: true }); - - watch(defaultStore.reactiveState.useBlurEffect, v => { - if (v) { - document.documentElement.style.removeProperty('--blur'); - } else { - document.documentElement.style.setProperty('--blur', 'none'); - } - }, { immediate: true }); - - let reloadDialogShowing = false; - stream.on('_disconnected_', async () => { - if (defaultStore.state.serverDisconnectedBehavior === 'reload') { - location.reload(); - } else if (defaultStore.state.serverDisconnectedBehavior === 'dialog') { - if (reloadDialogShowing) return; - reloadDialogShowing = true; - const { canceled } = await confirm({ - type: 'warning', - title: i18n.ts.disconnectedFromServer, - text: i18n.ts.reloadConfirm, - }); - reloadDialogShowing = false; - if (!canceled) { - location.reload(); - } - } - }); - - stream.on('emojiAdded', emojiData => { - // TODO - //store.commit('instance/set', ); - }); - - for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { - import('./plugin').then(({ install }) => { - install(plugin); - }); - } - - const hotkeys = { - 'd': (): void => { - defaultStore.set('darkMode', !defaultStore.state.darkMode); - }, - 's': search, - }; - - if ($i) { - // only add post shortcuts if logged in - hotkeys['p|n'] = post; - - if ($i.isDeleted) { - alert({ - type: 'warning', - text: i18n.ts.accountDeletionInProgress, - }); - } - - const lastUsed = localStorage.getItem('lastUsed'); - if (lastUsed) { - const lastUsedDate = parseInt(lastUsed, 10); - // 二時間以上前なら - if (Date.now() - lastUsedDate > 1000 * 60 * 60 * 2) { - toast(i18n.t('welcomeBackWithName', { - name: $i.name || $i.username, - })); - } - } - localStorage.setItem('lastUsed', Date.now().toString()); - - if ('Notification' in window) { - // 許可を得ていなかったらリクエスト - if (Notification.permission === 'default') { - Notification.requestPermission(); - } - } - - const main = markRaw(stream.useChannel('main', null, 'System')); - - // 自分の情報が更新されたとき - main.on('meUpdated', i => { - updateAccount(i); - }); - - main.on('readAllNotifications', () => { - updateAccount({ hasUnreadNotification: false }); - }); - - main.on('unreadNotification', () => { - updateAccount({ hasUnreadNotification: true }); - }); - - main.on('unreadMention', () => { - updateAccount({ hasUnreadMentions: true }); - }); - - main.on('readAllUnreadMentions', () => { - updateAccount({ hasUnreadMentions: false }); - }); - - main.on('unreadSpecifiedNote', () => { - updateAccount({ hasUnreadSpecifiedNotes: true }); - }); - - main.on('readAllUnreadSpecifiedNotes', () => { - updateAccount({ hasUnreadSpecifiedNotes: false }); - }); - - main.on('readAllMessagingMessages', () => { - updateAccount({ hasUnreadMessagingMessage: false }); - }); - - main.on('unreadMessagingMessage', () => { - updateAccount({ hasUnreadMessagingMessage: true }); - sound.play('chatBg'); - }); - - main.on('readAllAntennas', () => { - updateAccount({ hasUnreadAntenna: false }); - }); - - main.on('unreadAntenna', () => { - updateAccount({ hasUnreadAntenna: true }); - sound.play('antenna'); - }); - - main.on('readAllAnnouncements', () => { - updateAccount({ hasUnreadAnnouncement: false }); - }); - - main.on('readAllChannels', () => { - updateAccount({ hasUnreadChannel: false }); - }); - - main.on('unreadChannel', () => { - updateAccount({ hasUnreadChannel: true }); - sound.play('channel'); - }); - - // トークンが再生成されたとき - // このままではMisskeyが利用できないので強制的にサインアウトさせる - main.on('myTokenRegenerated', () => { - signout(); - }); - } - - // shortcut - document.addEventListener('keydown', makeHotkey(hotkeys)); -})(); diff --git a/packages/client/src/instance.ts b/packages/client/src/instance.ts deleted file mode 100644 index d24eb2419..000000000 --- a/packages/client/src/instance.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { computed, reactive } from 'vue'; -import * as Misskey from 'misskey-js'; -import { api } from './os'; - -// TODO: 他のタブと永続化されたstateを同期 - -const instanceData = localStorage.getItem('instance'); - -// TODO: instanceをリアクティブにするかは再考の余地あり - -export const instance: Misskey.entities.InstanceMetadata = reactive(instanceData ? JSON.parse(instanceData) : { - // TODO: set default values -}); - -export async function fetchInstance() { - const meta = await api('meta', { - detail: false - }); - - for (const [k, v] of Object.entries(meta)) { - instance[k] = v; - } - - localStorage.setItem('instance', JSON.stringify(instance)); -} - -export const emojiCategories = computed(() => { - if (instance.emojis == null) return []; - const categories = new Set(); - for (const emoji of instance.emojis) { - categories.add(emoji.category); - } - return Array.from(categories); -}); - -export const emojiTags = computed(() => { - if (instance.emojis == null) return []; - const tags = new Set(); - for (const emoji of instance.emojis) { - for (const tag of emoji.aliases) { - tags.add(tag); - } - } - return Array.from(tags); -}); - -// このファイルに書きたくないけどここに書かないと何故かVeturが認識しない -declare module '@vue/runtime-core' { - interface ComponentCustomProperties { - $instance: typeof instance; - } -} diff --git a/packages/client/src/navbar.ts b/packages/client/src/navbar.ts deleted file mode 100644 index 03e00b1c1..000000000 --- a/packages/client/src/navbar.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { computed, ref, reactive } from 'vue'; -import { $i } from './account'; -import { search } from '@/scripts/search'; -import * as os from '@/os'; -import { i18n } from '@/i18n'; -import { ui } from '@/config'; -import { unisonReload } from '@/scripts/unison-reload'; - -export const navbarItemDef = reactive({ - notifications: { - title: 'notifications', - icon: 'fas fa-bell', - show: computed(() => $i != null), - indicated: computed(() => $i != null && $i.hasUnreadNotification), - to: '/my/notifications', - }, - messaging: { - title: 'messaging', - icon: 'fas fa-comments', - show: computed(() => $i != null), - indicated: computed(() => $i != null && $i.hasUnreadMessagingMessage), - to: '/my/messaging', - }, - drive: { - title: 'drive', - icon: 'fas fa-cloud', - show: computed(() => $i != null), - to: '/my/drive', - }, - followRequests: { - title: 'followRequests', - icon: 'fas fa-user-clock', - show: computed(() => $i != null && $i.isLocked), - indicated: computed(() => $i != null && $i.hasPendingReceivedFollowRequest), - to: '/my/follow-requests', - }, - explore: { - title: 'explore', - icon: 'fas fa-hashtag', - to: '/explore', - }, - announcements: { - title: 'announcements', - icon: 'fas fa-broadcast-tower', - indicated: computed(() => $i != null && $i.hasUnreadAnnouncement), - to: '/announcements', - }, - search: { - title: 'search', - icon: 'fas fa-search', - action: () => search(), - }, - lists: { - title: 'lists', - icon: 'fas fa-list-ul', - show: computed(() => $i != null), - to: '/my/lists', - }, - /* - groups: { - title: 'groups', - icon: 'fas fa-users', - show: computed(() => $i != null), - to: '/my/groups', - }, - */ - antennas: { - title: 'antennas', - icon: 'fas fa-satellite', - show: computed(() => $i != null), - to: '/my/antennas', - }, - favorites: { - title: 'favorites', - icon: 'fas fa-star', - show: computed(() => $i != null), - to: '/my/favorites', - }, - pages: { - title: 'pages', - icon: 'fas fa-file-alt', - to: '/pages', - }, - gallery: { - title: 'gallery', - icon: 'fas fa-icons', - to: '/gallery', - }, - clips: { - title: 'clip', - icon: 'fas fa-paperclip', - show: computed(() => $i != null), - to: '/my/clips', - }, - channels: { - title: 'channel', - icon: 'fas fa-satellite-dish', - to: '/channels', - }, - ui: { - title: 'switchUi', - icon: 'fas fa-columns', - action: (ev) => { - os.popupMenu([{ - text: i18n.ts.default, - active: ui === 'default' || ui === null, - action: () => { - localStorage.setItem('ui', 'default'); - unisonReload(); - }, - }, { - text: i18n.ts.deck, - active: ui === 'deck', - action: () => { - localStorage.setItem('ui', 'deck'); - unisonReload(); - }, - }, { - text: i18n.ts.classic, - active: ui === 'classic', - action: () => { - localStorage.setItem('ui', 'classic'); - unisonReload(); - }, - }], ev.currentTarget ?? ev.target); - }, - }, - reload: { - title: 'reload', - icon: 'fas fa-refresh', - action: (ev) => { - location.reload(); - }, - }, -}); diff --git a/packages/client/src/nirax.ts b/packages/client/src/nirax.ts deleted file mode 100644 index 0ee39bf47..000000000 --- a/packages/client/src/nirax.ts +++ /dev/null @@ -1,275 +0,0 @@ -// NIRAX --- A lightweight router - -import { EventEmitter } from 'eventemitter3'; -import { Ref, Component, ref, shallowRef, ShallowRef } from 'vue'; -import { pleaseLogin } from '@/scripts/please-login'; -import { safeURIDecode } from '@/scripts/safe-uri-decode'; - -type RouteDef = { - path: string; - component: Component; - query?: Record; - loginRequired?: boolean; - name?: string; - hash?: string; - globalCacheKey?: string; - children?: RouteDef[]; -}; - -type ParsedPath = (string | { - name: string; - startsWith?: string; - wildcard?: boolean; - optional?: boolean; -})[]; - -export type Resolved = { route: RouteDef; props: Map; child?: Resolved; }; - -function parsePath(path: string): ParsedPath { - const res = [] as ParsedPath; - - path = path.substring(1); - - for (const part of path.split('/')) { - if (part.includes(':')) { - const prefix = part.substring(0, part.indexOf(':')); - const placeholder = part.substring(part.indexOf(':') + 1); - const wildcard = placeholder.includes('(*)'); - const optional = placeholder.endsWith('?'); - res.push({ - name: placeholder.replace('(*)', '').replace('?', ''), - startsWith: prefix !== '' ? prefix : undefined, - wildcard, - optional, - }); - } else if (part.length !== 0) { - res.push(part); - } - } - - return res; -} - -export class Router extends EventEmitter<{ - change: (ctx: { - beforePath: string; - path: string; - resolved: Resolved; - key: string; - }) => void; - replace: (ctx: { - path: string; - key: string; - }) => void; - push: (ctx: { - beforePath: string; - path: string; - route: RouteDef | null; - props: Map | null; - key: string; - }) => void; - same: () => void; -}> { - private routes: RouteDef[]; - public current: Resolved; - public currentRef: ShallowRef = shallowRef(); - public currentRoute: ShallowRef = shallowRef(); - private currentPath: string; - private currentKey = Date.now().toString(); - - public navHook: ((path: string, flag?: any) => boolean) | null = null; - - constructor(routes: Router['routes'], currentPath: Router['currentPath']) { - super(); - - this.routes = routes; - this.currentPath = currentPath; - this.navigate(currentPath, null, false); - } - - public resolve(path: string): Resolved | null { - let queryString: string | null = null; - let hash: string | null = null; - if (path[0] === '/') path = path.substring(1); - if (path.includes('#')) { - hash = path.substring(path.indexOf('#') + 1); - path = path.substring(0, path.indexOf('#')); - } - if (path.includes('?')) { - queryString = path.substring(path.indexOf('?') + 1); - path = path.substring(0, path.indexOf('?')); - } - - if (_DEV_) console.log('Routing: ', path, queryString); - - function check(routes: RouteDef[], _parts: string[]): Resolved | null { - forEachRouteLoop: - for (const route of routes) { - let parts = [ ..._parts ]; - const props = new Map(); - - pathMatchLoop: - for (const p of parsePath(route.path)) { - if (typeof p === 'string') { - if (p === parts[0]) { - parts.shift(); - } else { - continue forEachRouteLoop; - } - } else { - if (parts[0] == null && !p.optional) { - continue forEachRouteLoop; - } - if (p.wildcard) { - if (parts.length !== 0) { - props.set(p.name, safeURIDecode(parts.join('/'))); - parts = []; - } - break pathMatchLoop; - } else { - if (p.startsWith) { - if (parts[0] == null || !parts[0].startsWith(p.startsWith)) continue forEachRouteLoop; - - props.set(p.name, safeURIDecode(parts[0].substring(p.startsWith.length))); - parts.shift(); - } else { - if (parts[0]) { - props.set(p.name, safeURIDecode(parts[0])); - } - parts.shift(); - } - } - } - } - - if (parts.length === 0) { - if (route.children) { - const child = check(route.children, []); - if (child) { - return { - route, - props, - child, - }; - } else { - continue forEachRouteLoop; - } - } - - if (route.hash != null && hash != null) { - props.set(route.hash, safeURIDecode(hash)); - } - - if (route.query != null && queryString != null) { - const queryObject = [...new URLSearchParams(queryString).entries()] - .reduce((obj, entry) => ({ ...obj, [entry[0]]: entry[1] }), {}); - - for (const q in route.query) { - const as = route.query[q]; - if (queryObject[q]) { - props.set(as, safeURIDecode(queryObject[q])); - } - } - } - - return { - route, - props, - }; - } else { - if (route.children) { - const child = check(route.children, parts); - if (child) { - return { - route, - props, - child, - }; - } else { - continue forEachRouteLoop; - } - } else { - continue forEachRouteLoop; - } - } - } - - return null; - } - - const _parts = path.split('/').filter(part => part.length !== 0); - - return check(this.routes, _parts); - } - - private navigate(path: string, key: string | null | undefined, emitChange = true) { - const beforePath = this.currentPath; - this.currentPath = path; - - const res = this.resolve(this.currentPath); - - if (res == null) { - throw new Error('no route found for: ' + path); - } - - if (res.route.loginRequired) { - pleaseLogin('/'); - } - - const isSamePath = beforePath === path; - if (isSamePath && key == null) key = this.currentKey; - this.current = res; - this.currentRef.value = res; - this.currentRoute.value = res.route; - this.currentKey = res.route.globalCacheKey ?? key ?? path; - - if (emitChange) { - this.emit('change', { - beforePath, - path, - resolved: res, - key: this.currentKey, - }); - } - - return res; - } - - public getCurrentPath() { - return this.currentPath; - } - - public getCurrentKey() { - return this.currentKey; - } - - public push(path: string, flag?: any) { - const beforePath = this.currentPath; - if (path === beforePath) { - this.emit('same'); - return; - } - if (this.navHook) { - const cancel = this.navHook(path, flag); - if (cancel) return; - } - const res = this.navigate(path, null); - this.emit('push', { - beforePath, - path, - route: res.route, - props: res.props, - key: this.currentKey, - }); - } - - public replace(path: string, key?: string | null, emitEvent = true) { - this.navigate(path, key); - if (emitEvent) { - this.emit('replace', { - path, - key: this.currentKey, - }); - } - } -} diff --git a/packages/client/src/os.ts b/packages/client/src/os.ts deleted file mode 100644 index 515fc4781..000000000 --- a/packages/client/src/os.ts +++ /dev/null @@ -1,585 +0,0 @@ -// TODO: なんでもかんでもos.tsに突っ込むのやめたいのでよしなに分割する - -import { Component, markRaw, Ref, ref, defineAsyncComponent } from 'vue'; -import { EventEmitter } from 'eventemitter3'; -import insertTextAtCursor from 'insert-text-at-cursor'; -import * as Misskey from 'misskey-js'; -import { apiUrl, url } from '@/config'; -import MkPostFormDialog from '@/components/MkPostFormDialog.vue'; -import MkWaitingDialog from '@/components/MkWaitingDialog.vue'; -import { MenuItem } from '@/types/menu'; -import { $i } from '@/account'; - -export const pendingApiRequestsCount = ref(0); - -const apiClient = new Misskey.api.APIClient({ - origin: url, -}); - -export const api = ((endpoint: string, data: Record = {}, token?: string | null | undefined) => { - pendingApiRequestsCount.value++; - - const onFinally = () => { - pendingApiRequestsCount.value--; - }; - - const promise = new Promise((resolve, reject) => { - // Append a credential - if ($i) (data as any).i = $i.token; - if (token !== undefined) (data as any).i = token; - - // Send request - fetch(endpoint.indexOf('://') > -1 ? endpoint : `${apiUrl}/${endpoint}`, { - method: 'POST', - body: JSON.stringify(data), - credentials: 'omit', - cache: 'no-cache', - }).then(async (res) => { - const body = res.status === 204 ? null : await res.json(); - - if (res.status === 200) { - resolve(body); - } else if (res.status === 204) { - resolve(); - } else { - reject(body.error); - } - }).catch(reject); - }); - - promise.then(onFinally, onFinally); - - return promise; -}) as typeof apiClient.request; - -export const apiGet = ((endpoint: string, data: Record = {}) => { - pendingApiRequestsCount.value++; - - const onFinally = () => { - pendingApiRequestsCount.value--; - }; - - const query = new URLSearchParams(data); - - const promise = new Promise((resolve, reject) => { - // Send request - fetch(`${apiUrl}/${endpoint}?${query}`, { - method: 'GET', - credentials: 'omit', - cache: 'default', - }).then(async (res) => { - const body = res.status === 204 ? null : await res.json(); - - if (res.status === 200) { - resolve(body); - } else if (res.status === 204) { - resolve(); - } else { - reject(body.error); - } - }).catch(reject); - }); - - promise.then(onFinally, onFinally); - - return promise; -}) as typeof apiClient.request; - -export const apiWithDialog = (( - endpoint: string, - data: Record = {}, - token?: string | null | undefined, -) => { - const promise = api(endpoint, data, token); - promiseDialog(promise, null, (err) => { - alert({ - type: 'error', - text: err.message + '\n' + (err as any).id, - }); - }); - - return promise; -}) as typeof api; - -export function promiseDialog>( - promise: T, - onSuccess?: ((res: any) => void) | null, - onFailure?: ((err: Error) => void) | null, - text?: string, -): T { - const showing = ref(true); - const success = ref(false); - - promise.then(res => { - if (onSuccess) { - showing.value = false; - onSuccess(res); - } else { - success.value = true; - window.setTimeout(() => { - showing.value = false; - }, 1000); - } - }).catch(err => { - showing.value = false; - if (onFailure) { - onFailure(err); - } else { - alert({ - type: 'error', - text: err, - }); - } - }); - - // NOTE: dynamic importすると挙動がおかしくなる(showingの変更が伝播しない) - popup(MkWaitingDialog, { - success: success, - showing: showing, - text: text, - }, {}, 'closed'); - - return promise; -} - -let popupIdCount = 0; -export const popups = ref([]) as Ref<{ - id: any; - component: any; - props: Record; -}[]>; - -const zIndexes = { - low: 1000000, - middle: 2000000, - high: 3000000, -}; -export function claimZIndex(priority: 'low' | 'middle' | 'high' = 'low'): number { - zIndexes[priority] += 100; - return zIndexes[priority]; -} - -export async function popup(component: Component, props: Record, events = {}, disposeEvent?: string) { - markRaw(component); - - const id = ++popupIdCount; - const dispose = () => { - // このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ? - window.setTimeout(() => { - popups.value = popups.value.filter(popup => popup.id !== id); - }, 0); - }; - const state = { - component, - props, - events: disposeEvent ? { - ...events, - [disposeEvent]: dispose, - } : events, - id, - }; - - popups.value.push(state); - - return { - dispose, - }; -} - -export function pageWindow(path: string) { - popup(defineAsyncComponent(() => import('@/components/MkPageWindow.vue')), { - initialPath: path, - }, {}, 'closed'); -} - -export function modalPageWindow(path: string) { - popup(defineAsyncComponent(() => import('@/components/MkModalPageWindow.vue')), { - initialPath: path, - }, {}, 'closed'); -} - -export function toast(message: string) { - popup(defineAsyncComponent(() => import('@/components/MkToast.vue')), { - message, - }, {}, 'closed'); -} - -export function alert(props: { - type?: 'error' | 'info' | 'success' | 'warning' | 'waiting' | 'question'; - title?: string | null; - text?: string | null; -}): Promise { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), props, { - done: result => { - resolve(); - }, - }, 'closed'); - }); -} - -export function confirm(props: { - type: 'error' | 'info' | 'success' | 'warning' | 'waiting' | 'question'; - title?: string | null; - text?: string | null; -}): Promise<{ canceled: boolean }> { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { - ...props, - showCancelButton: true, - }, { - done: result => { - resolve(result ? result : { canceled: true }); - }, - }, 'closed'); - }); -} - -export function inputText(props: { - type?: 'text' | 'email' | 'password' | 'url'; - title?: string | null; - text?: string | null; - placeholder?: string | null; - default?: string | null; -}): Promise<{ canceled: true; result: undefined; } | { - canceled: false; result: string; -}> { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { - title: props.title, - text: props.text, - input: { - type: props.type, - placeholder: props.placeholder, - default: props.default, - }, - }, { - done: result => { - resolve(result ? result : { canceled: true }); - }, - }, 'closed'); - }); -} - -export function inputNumber(props: { - title?: string | null; - text?: string | null; - placeholder?: string | null; - default?: number | null; -}): Promise<{ canceled: true; result: undefined; } | { - canceled: false; result: number; -}> { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { - title: props.title, - text: props.text, - input: { - type: 'number', - placeholder: props.placeholder, - default: props.default, - }, - }, { - done: result => { - resolve(result ? result : { canceled: true }); - }, - }, 'closed'); - }); -} - -export function inputDate(props: { - title?: string | null; - text?: string | null; - placeholder?: string | null; - default?: Date | null; -}): Promise<{ canceled: true; result: undefined; } | { - canceled: false; result: Date; -}> { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { - title: props.title, - text: props.text, - input: { - type: 'date', - placeholder: props.placeholder, - default: props.default, - }, - }, { - done: result => { - resolve(result ? { result: new Date(result.result), canceled: false } : { canceled: true }); - }, - }, 'closed'); - }); -} - -export function select(props: { - title?: string | null; - text?: string | null; - default?: string | null; -} & ({ - items: { - value: C; - text: string; - }[]; -} | { - groupedItems: { - label: string; - items: { - value: C; - text: string; - }[]; - }[]; -})): Promise<{ canceled: true; result: undefined; } | { - canceled: false; result: C; -}> { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDialog.vue')), { - title: props.title, - text: props.text, - select: { - items: props.items, - groupedItems: props.groupedItems, - default: props.default, - }, - }, { - done: result => { - resolve(result ? result : { canceled: true }); - }, - }, 'closed'); - }); -} - -export function success() { - return new Promise((resolve, reject) => { - const showing = ref(true); - window.setTimeout(() => { - showing.value = false; - }, 1000); - popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), { - success: true, - showing: showing, - }, { - done: () => resolve(), - }, 'closed'); - }); -} - -export function waiting() { - return new Promise((resolve, reject) => { - const showing = ref(true); - popup(defineAsyncComponent(() => import('@/components/MkWaitingDialog.vue')), { - success: false, - showing: showing, - }, { - done: () => resolve(), - }, 'closed'); - }); -} - -export function form(title, form) { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkFormDialog.vue')), { title, form }, { - done: result => { - resolve(result); - }, - }, 'closed'); - }); -} - -export async function selectUser() { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkUserSelectDialog.vue')), {}, { - ok: user => { - resolve(user); - }, - }, 'closed'); - }); -} - -export async function selectDriveFile(multiple: boolean) { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDriveSelectDialog.vue')), { - type: 'file', - multiple, - }, { - done: files => { - if (files) { - resolve(multiple ? files : files[0]); - } - }, - }, 'closed'); - }); -} - -export async function selectDriveFolder(multiple: boolean) { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkDriveSelectDialog.vue')), { - type: 'folder', - multiple, - }, { - done: folders => { - if (folders) { - resolve(multiple ? folders : folders[0]); - } - }, - }, 'closed'); - }); -} - -export async function pickEmoji(src: HTMLElement | null, opts) { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerDialog.vue')), { - src, - ...opts, - }, { - done: emoji => { - resolve(emoji); - }, - }, 'closed'); - }); -} - -export async function cropImage(image: Misskey.entities.DriveFile, options: { - aspectRatio: number; -}): Promise { - return new Promise((resolve, reject) => { - popup(defineAsyncComponent(() => import('@/components/MkCropperDialog.vue')), { - file: image, - aspectRatio: options.aspectRatio, - }, { - ok: x => { - resolve(x); - }, - }, 'closed'); - }); -} - -type AwaitType = - T extends Promise ? U : - T extends (...args: any[]) => Promise ? V : - T; -let openingEmojiPicker: AwaitType> | null = null; -let activeTextarea: HTMLTextAreaElement | HTMLInputElement | null = null; -export async function openEmojiPicker(src?: HTMLElement, opts, initialTextarea: typeof activeTextarea) { - if (openingEmojiPicker) return; - - activeTextarea = initialTextarea; - - const textareas = document.querySelectorAll('textarea, input'); - for (const textarea of Array.from(textareas)) { - textarea.addEventListener('focus', () => { - activeTextarea = textarea; - }); - } - - const observer = new MutationObserver(records => { - for (const record of records) { - for (const node of Array.from(record.addedNodes).filter(node => node instanceof HTMLElement) as HTMLElement[]) { - const textareas = node.querySelectorAll('textarea, input') as NodeListOf>; - for (const textarea of Array.from(textareas).filter(textarea => textarea.dataset.preventEmojiInsert == null)) { - if (document.activeElement === textarea) activeTextarea = textarea; - textarea.addEventListener('focus', () => { - activeTextarea = textarea; - }); - } - } - } - }); - - observer.observe(document.body, { - childList: true, - subtree: true, - attributes: false, - characterData: false, - }); - - openingEmojiPicker = await popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerWindow.vue')), { - src, - ...opts, - }, { - chosen: emoji => { - insertTextAtCursor(activeTextarea, emoji); - }, - closed: () => { - openingEmojiPicker!.dispose(); - openingEmojiPicker = null; - observer.disconnect(); - }, - }); -} - -export function popupMenu(items: MenuItem[] | Ref, src?: HTMLElement, options?: { - align?: string; - width?: number; - viaKeyboard?: boolean; -}) { - return new Promise((resolve, reject) => { - let dispose; - popup(defineAsyncComponent(() => import('@/components/MkPopupMenu.vue')), { - items, - src, - width: options?.width, - align: options?.align, - viaKeyboard: options?.viaKeyboard, - }, { - closed: () => { - resolve(); - dispose(); - }, - }).then(res => { - dispose = res.dispose; - }); - }); -} - -export function contextMenu(items: MenuItem[] | Ref, ev: MouseEvent) { - ev.preventDefault(); - return new Promise((resolve, reject) => { - let dispose; - popup(defineAsyncComponent(() => import('@/components/MkContextMenu.vue')), { - items, - ev, - }, { - closed: () => { - resolve(); - dispose(); - }, - }).then(res => { - dispose = res.dispose; - }); - }); -} - -export function post(props: Record = {}) { - return new Promise((resolve, reject) => { - // NOTE: MkPostFormDialogをdynamic importするとiOSでテキストエリアに自動フォーカスできない - // NOTE: ただ、dynamic importしない場合、MkPostFormDialogインスタンスが使いまわされ、 - // Vueが渡されたコンポーネントに内部的に__propsというプロパティを生やす影響で、 - // 複数のpost formを開いたときに場合によってはエラーになる - // もちろん複数のpost formを開けること自体Misskeyサイドのバグなのだが - let dispose; - popup(MkPostFormDialog, props, { - closed: () => { - resolve(); - dispose(); - }, - }).then(res => { - dispose = res.dispose; - }); - }); -} - -export const deckGlobalEvents = new EventEmitter(); - -/* -export function checkExistence(fileData: ArrayBuffer): Promise { - return new Promise((resolve, reject) => { - const data = new FormData(); - data.append('md5', getMD5(fileData)); - - os.api('drive/files/find-by-hash', { - md5: getMD5(fileData) - }).then(resp => { - resolve(resp.length > 0 ? resp[0] : null); - }); - }); -}*/ diff --git a/packages/client/src/pages/_empty_.vue b/packages/client/src/pages/_empty_.vue deleted file mode 100644 index 000b6decc..000000000 --- a/packages/client/src/pages/_empty_.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/packages/client/src/pages/_error_.vue b/packages/client/src/pages/_error_.vue deleted file mode 100644 index a90a023cb..000000000 --- a/packages/client/src/pages/_error_.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/_loading_.vue b/packages/client/src/pages/_loading_.vue deleted file mode 100644 index 1dd2e46e1..000000000 --- a/packages/client/src/pages/_loading_.vue +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/packages/client/src/pages/about-misskey.vue b/packages/client/src/pages/about-misskey.vue deleted file mode 100644 index 7bcccea98..000000000 --- a/packages/client/src/pages/about-misskey.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/about.emojis.vue b/packages/client/src/pages/about.emojis.vue deleted file mode 100644 index df64378c0..000000000 --- a/packages/client/src/pages/about.emojis.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/about.federation.vue b/packages/client/src/pages/about.federation.vue deleted file mode 100644 index c501a7758..000000000 --- a/packages/client/src/pages/about.federation.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/about.vue b/packages/client/src/pages/about.vue deleted file mode 100644 index 33c55fece..000000000 --- a/packages/client/src/pages/about.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin-file.vue b/packages/client/src/pages/admin-file.vue deleted file mode 100644 index a62e0f630..000000000 --- a/packages/client/src/pages/admin-file.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/_header_.vue b/packages/client/src/pages/admin/_header_.vue deleted file mode 100644 index bdb41b2d2..000000000 --- a/packages/client/src/pages/admin/_header_.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/abuses.vue b/packages/client/src/pages/admin/abuses.vue deleted file mode 100644 index 9907d4d23..000000000 --- a/packages/client/src/pages/admin/abuses.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/ads.vue b/packages/client/src/pages/admin/ads.vue deleted file mode 100644 index 9a28d2ad6..000000000 --- a/packages/client/src/pages/admin/ads.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/announcements.vue b/packages/client/src/pages/admin/announcements.vue deleted file mode 100644 index f10693314..000000000 --- a/packages/client/src/pages/admin/announcements.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/bot-protection.vue b/packages/client/src/pages/admin/bot-protection.vue deleted file mode 100644 index 72d5e379d..000000000 --- a/packages/client/src/pages/admin/bot-protection.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/database.vue b/packages/client/src/pages/admin/database.vue deleted file mode 100644 index 1c2656b8f..000000000 --- a/packages/client/src/pages/admin/database.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/email-settings.vue b/packages/client/src/pages/admin/email-settings.vue deleted file mode 100644 index 64137f0c3..000000000 --- a/packages/client/src/pages/admin/email-settings.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/emoji-edit-dialog.vue b/packages/client/src/pages/admin/emoji-edit-dialog.vue deleted file mode 100644 index 090dd9afc..000000000 --- a/packages/client/src/pages/admin/emoji-edit-dialog.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/emojis.vue b/packages/client/src/pages/admin/emojis.vue deleted file mode 100644 index 94f152d7d..000000000 --- a/packages/client/src/pages/admin/emojis.vue +++ /dev/null @@ -1,398 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/files.vue b/packages/client/src/pages/admin/files.vue deleted file mode 100644 index 2e3a807ba..000000000 --- a/packages/client/src/pages/admin/files.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/index.vue b/packages/client/src/pages/admin/index.vue deleted file mode 100644 index 9200b5d54..000000000 --- a/packages/client/src/pages/admin/index.vue +++ /dev/null @@ -1,316 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/instance-block.vue b/packages/client/src/pages/admin/instance-block.vue deleted file mode 100644 index 94b740a4d..000000000 --- a/packages/client/src/pages/admin/instance-block.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/integrations.discord.vue b/packages/client/src/pages/admin/integrations.discord.vue deleted file mode 100644 index 0ab6ecbb4..000000000 --- a/packages/client/src/pages/admin/integrations.discord.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/integrations.github.vue b/packages/client/src/pages/admin/integrations.github.vue deleted file mode 100644 index 34761e9a7..000000000 --- a/packages/client/src/pages/admin/integrations.github.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/integrations.twitter.vue b/packages/client/src/pages/admin/integrations.twitter.vue deleted file mode 100644 index a870d76a4..000000000 --- a/packages/client/src/pages/admin/integrations.twitter.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/integrations.vue b/packages/client/src/pages/admin/integrations.vue deleted file mode 100644 index 9964426a6..000000000 --- a/packages/client/src/pages/admin/integrations.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/metrics.vue b/packages/client/src/pages/admin/metrics.vue deleted file mode 100644 index e0e47e667..000000000 --- a/packages/client/src/pages/admin/metrics.vue +++ /dev/null @@ -1,472 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/object-storage.vue b/packages/client/src/pages/admin/object-storage.vue deleted file mode 100644 index 5cc301853..000000000 --- a/packages/client/src/pages/admin/object-storage.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/other-settings.vue b/packages/client/src/pages/admin/other-settings.vue deleted file mode 100644 index ee4e8edba..000000000 --- a/packages/client/src/pages/admin/other-settings.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/overview.federation.vue b/packages/client/src/pages/admin/overview.federation.vue deleted file mode 100644 index e8cb5867a..000000000 --- a/packages/client/src/pages/admin/overview.federation.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/overview.pie.vue b/packages/client/src/pages/admin/overview.pie.vue deleted file mode 100644 index d3b203287..000000000 --- a/packages/client/src/pages/admin/overview.pie.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/overview.queue-chart.vue b/packages/client/src/pages/admin/overview.queue-chart.vue deleted file mode 100644 index a2b748ad3..000000000 --- a/packages/client/src/pages/admin/overview.queue-chart.vue +++ /dev/null @@ -1,211 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/overview.user.vue b/packages/client/src/pages/admin/overview.user.vue deleted file mode 100644 index 0dd4a749b..000000000 --- a/packages/client/src/pages/admin/overview.user.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/overview.vue b/packages/client/src/pages/admin/overview.vue deleted file mode 100644 index e532a908f..000000000 --- a/packages/client/src/pages/admin/overview.vue +++ /dev/null @@ -1,637 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/proxy-account.vue b/packages/client/src/pages/admin/proxy-account.vue deleted file mode 100644 index fe61909e8..000000000 --- a/packages/client/src/pages/admin/proxy-account.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/queue.chart.chart.vue b/packages/client/src/pages/admin/queue.chart.chart.vue deleted file mode 100644 index 96156f8e6..000000000 --- a/packages/client/src/pages/admin/queue.chart.chart.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/queue.chart.vue b/packages/client/src/pages/admin/queue.chart.vue deleted file mode 100644 index 186a22c43..000000000 --- a/packages/client/src/pages/admin/queue.chart.vue +++ /dev/null @@ -1,149 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/queue.vue b/packages/client/src/pages/admin/queue.vue deleted file mode 100644 index a6fc75aea..000000000 --- a/packages/client/src/pages/admin/queue.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/relays.vue b/packages/client/src/pages/admin/relays.vue deleted file mode 100644 index e6f7f4ead..000000000 --- a/packages/client/src/pages/admin/relays.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/admin/security.vue b/packages/client/src/pages/admin/security.vue deleted file mode 100644 index c36cedb31..000000000 --- a/packages/client/src/pages/admin/security.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/settings.vue b/packages/client/src/pages/admin/settings.vue deleted file mode 100644 index cf6b1f17e..000000000 --- a/packages/client/src/pages/admin/settings.vue +++ /dev/null @@ -1,262 +0,0 @@ - - - diff --git a/packages/client/src/pages/admin/users.vue b/packages/client/src/pages/admin/users.vue deleted file mode 100644 index eeb335a43..000000000 --- a/packages/client/src/pages/admin/users.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/announcements.vue b/packages/client/src/pages/announcements.vue deleted file mode 100644 index 5f6659699..000000000 --- a/packages/client/src/pages/announcements.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/antenna-timeline.vue b/packages/client/src/pages/antenna-timeline.vue deleted file mode 100644 index 500cb3a7c..000000000 --- a/packages/client/src/pages/antenna-timeline.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/api-console.vue b/packages/client/src/pages/api-console.vue deleted file mode 100644 index 0064e4c3f..000000000 --- a/packages/client/src/pages/api-console.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/packages/client/src/pages/auth.vue b/packages/client/src/pages/auth.vue deleted file mode 100644 index bb55881a2..000000000 --- a/packages/client/src/pages/auth.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/channel-editor.vue b/packages/client/src/pages/channel-editor.vue deleted file mode 100644 index 3e94b5f04..000000000 --- a/packages/client/src/pages/channel-editor.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/channel.vue b/packages/client/src/pages/channel.vue deleted file mode 100644 index 380c3efc8..000000000 --- a/packages/client/src/pages/channel.vue +++ /dev/null @@ -1,184 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/channels.vue b/packages/client/src/pages/channels.vue deleted file mode 100644 index 56ea98d15..000000000 --- a/packages/client/src/pages/channels.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/packages/client/src/pages/clip.vue b/packages/client/src/pages/clip.vue deleted file mode 100644 index 5b56651bd..000000000 --- a/packages/client/src/pages/clip.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/drive.vue b/packages/client/src/pages/drive.vue deleted file mode 100644 index 088f0eacd..000000000 --- a/packages/client/src/pages/drive.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/packages/client/src/pages/emojis.emoji.vue b/packages/client/src/pages/emojis.emoji.vue deleted file mode 100644 index b2801694d..000000000 --- a/packages/client/src/pages/emojis.emoji.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/explore.featured.vue b/packages/client/src/pages/explore.featured.vue deleted file mode 100644 index 18a371a08..000000000 --- a/packages/client/src/pages/explore.featured.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/packages/client/src/pages/explore.users.vue b/packages/client/src/pages/explore.users.vue deleted file mode 100644 index e16e40b8e..000000000 --- a/packages/client/src/pages/explore.users.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/explore.vue b/packages/client/src/pages/explore.vue deleted file mode 100644 index 279960d13..000000000 --- a/packages/client/src/pages/explore.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/client/src/pages/favorites.vue b/packages/client/src/pages/favorites.vue deleted file mode 100644 index 32a1dbf59..000000000 --- a/packages/client/src/pages/favorites.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/follow-requests.vue b/packages/client/src/pages/follow-requests.vue deleted file mode 100644 index 82d716426..000000000 --- a/packages/client/src/pages/follow-requests.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/follow.vue b/packages/client/src/pages/follow.vue deleted file mode 100644 index 828246d67..000000000 --- a/packages/client/src/pages/follow.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/packages/client/src/pages/gallery/edit.vue b/packages/client/src/pages/gallery/edit.vue deleted file mode 100644 index 8f716d9eb..000000000 --- a/packages/client/src/pages/gallery/edit.vue +++ /dev/null @@ -1,149 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/gallery/index.vue b/packages/client/src/pages/gallery/index.vue deleted file mode 100644 index 598383217..000000000 --- a/packages/client/src/pages/gallery/index.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/gallery/post.vue b/packages/client/src/pages/gallery/post.vue deleted file mode 100644 index 3804bcdcf..000000000 --- a/packages/client/src/pages/gallery/post.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/instance-info.vue b/packages/client/src/pages/instance-info.vue deleted file mode 100644 index 6e8560ef4..000000000 --- a/packages/client/src/pages/instance-info.vue +++ /dev/null @@ -1,255 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/messaging/index.vue b/packages/client/src/pages/messaging/index.vue deleted file mode 100644 index 56d852fe3..000000000 --- a/packages/client/src/pages/messaging/index.vue +++ /dev/null @@ -1,303 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/messaging/messaging-room.form.vue b/packages/client/src/pages/messaging/messaging-room.form.vue deleted file mode 100644 index 38bab9050..000000000 --- a/packages/client/src/pages/messaging/messaging-room.form.vue +++ /dev/null @@ -1,349 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/messaging/messaging-room.message.vue b/packages/client/src/pages/messaging/messaging-room.message.vue deleted file mode 100644 index 2b5a9569a..000000000 --- a/packages/client/src/pages/messaging/messaging-room.message.vue +++ /dev/null @@ -1,334 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/messaging/messaging-room.vue b/packages/client/src/pages/messaging/messaging-room.vue deleted file mode 100644 index a9da89ed9..000000000 --- a/packages/client/src/pages/messaging/messaging-room.vue +++ /dev/null @@ -1,396 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/mfm-cheat-sheet.vue b/packages/client/src/pages/mfm-cheat-sheet.vue deleted file mode 100644 index bd8ae4e0b..000000000 --- a/packages/client/src/pages/mfm-cheat-sheet.vue +++ /dev/null @@ -1,387 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/miauth.vue b/packages/client/src/pages/miauth.vue deleted file mode 100644 index 5de072cbf..000000000 --- a/packages/client/src/pages/miauth.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-antennas/create.vue b/packages/client/src/pages/my-antennas/create.vue deleted file mode 100644 index dc10bece8..000000000 --- a/packages/client/src/pages/my-antennas/create.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-antennas/edit.vue b/packages/client/src/pages/my-antennas/edit.vue deleted file mode 100644 index 53f9b07db..000000000 --- a/packages/client/src/pages/my-antennas/edit.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-antennas/editor.vue b/packages/client/src/pages/my-antennas/editor.vue deleted file mode 100644 index 054053fbf..000000000 --- a/packages/client/src/pages/my-antennas/editor.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-antennas/index.vue b/packages/client/src/pages/my-antennas/index.vue deleted file mode 100644 index dc73ba674..000000000 --- a/packages/client/src/pages/my-antennas/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-clips/index.vue b/packages/client/src/pages/my-clips/index.vue deleted file mode 100644 index 68330d6db..000000000 --- a/packages/client/src/pages/my-clips/index.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-lists/index.vue b/packages/client/src/pages/my-lists/index.vue deleted file mode 100644 index 9af7c0d10..000000000 --- a/packages/client/src/pages/my-lists/index.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-lists/list.vue b/packages/client/src/pages/my-lists/list.vue deleted file mode 100644 index d90453526..000000000 --- a/packages/client/src/pages/my-lists/list.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/not-found.vue b/packages/client/src/pages/not-found.vue deleted file mode 100644 index 253ecdb23..000000000 --- a/packages/client/src/pages/not-found.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/packages/client/src/pages/note.vue b/packages/client/src/pages/note.vue deleted file mode 100644 index 6509cb306..000000000 --- a/packages/client/src/pages/note.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/notifications.vue b/packages/client/src/pages/notifications.vue deleted file mode 100644 index dd57060fd..000000000 --- a/packages/client/src/pages/notifications.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.button.vue b/packages/client/src/pages/page-editor/els/page-editor.el.button.vue deleted file mode 100644 index 4c2e0e4eb..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.button.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.canvas.vue b/packages/client/src/pages/page-editor/els/page-editor.el.canvas.vue deleted file mode 100644 index 191321ae1..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.canvas.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.counter.vue b/packages/client/src/pages/page-editor/els/page-editor.el.counter.vue deleted file mode 100644 index 1a2078448..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.counter.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.if.vue b/packages/client/src/pages/page-editor/els/page-editor.el.if.vue deleted file mode 100644 index d763070b1..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.if.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.image.vue b/packages/client/src/pages/page-editor/els/page-editor.el.image.vue deleted file mode 100644 index 4d471e7b9..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.image.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.note.vue b/packages/client/src/pages/page-editor/els/page-editor.el.note.vue deleted file mode 100644 index 5e494ee23..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.note.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.number-input.vue b/packages/client/src/pages/page-editor/els/page-editor.el.number-input.vue deleted file mode 100644 index 479a859e7..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.number-input.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.post.vue b/packages/client/src/pages/page-editor/els/page-editor.el.post.vue deleted file mode 100644 index f8c42c296..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.post.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.radio-button.vue b/packages/client/src/pages/page-editor/els/page-editor.el.radio-button.vue deleted file mode 100644 index 4b28f120a..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.radio-button.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.section.vue b/packages/client/src/pages/page-editor/els/page-editor.el.section.vue deleted file mode 100644 index 7276cc1e1..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.section.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.switch.vue b/packages/client/src/pages/page-editor/els/page-editor.el.switch.vue deleted file mode 100644 index ded57cf30..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.switch.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.text-input.vue b/packages/client/src/pages/page-editor/els/page-editor.el.text-input.vue deleted file mode 100644 index 1e269ae58..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.text-input.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.text.vue b/packages/client/src/pages/page-editor/els/page-editor.el.text.vue deleted file mode 100644 index e0ebe68dd..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.text.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.textarea-input.vue b/packages/client/src/pages/page-editor/els/page-editor.el.textarea-input.vue deleted file mode 100644 index 1bb4aaa54..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.textarea-input.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/els/page-editor.el.textarea.vue b/packages/client/src/pages/page-editor/els/page-editor.el.textarea.vue deleted file mode 100644 index dca7de8df..000000000 --- a/packages/client/src/pages/page-editor/els/page-editor.el.textarea.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/page-editor.blocks.vue b/packages/client/src/pages/page-editor/page-editor.blocks.vue deleted file mode 100644 index dc363fe25..000000000 --- a/packages/client/src/pages/page-editor/page-editor.blocks.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/packages/client/src/pages/page-editor/page-editor.script-block.vue b/packages/client/src/pages/page-editor/page-editor.script-block.vue deleted file mode 100644 index ded9368b8..000000000 --- a/packages/client/src/pages/page-editor/page-editor.script-block.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page-editor/page-editor.vue b/packages/client/src/pages/page-editor/page-editor.vue deleted file mode 100644 index 591d13053..000000000 --- a/packages/client/src/pages/page-editor/page-editor.vue +++ /dev/null @@ -1,531 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/page.vue b/packages/client/src/pages/page.vue deleted file mode 100644 index fb0e6a491..000000000 --- a/packages/client/src/pages/page.vue +++ /dev/null @@ -1,276 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/pages.vue b/packages/client/src/pages/pages.vue deleted file mode 100644 index 02b05c57b..000000000 --- a/packages/client/src/pages/pages.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/preview.vue b/packages/client/src/pages/preview.vue deleted file mode 100644 index efbe53a52..000000000 --- a/packages/client/src/pages/preview.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/registry.keys.vue b/packages/client/src/pages/registry.keys.vue deleted file mode 100644 index ac586b4e7..000000000 --- a/packages/client/src/pages/registry.keys.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/registry.value.vue b/packages/client/src/pages/registry.value.vue deleted file mode 100644 index b6f3d73bb..000000000 --- a/packages/client/src/pages/registry.value.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/registry.vue b/packages/client/src/pages/registry.vue deleted file mode 100644 index 80a44d558..000000000 --- a/packages/client/src/pages/registry.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/reset-password.vue b/packages/client/src/pages/reset-password.vue deleted file mode 100644 index 38f2cf289..000000000 --- a/packages/client/src/pages/reset-password.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/scratchpad.vue b/packages/client/src/pages/scratchpad.vue deleted file mode 100644 index 12b5d78b2..000000000 --- a/packages/client/src/pages/scratchpad.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/search.vue b/packages/client/src/pages/search.vue deleted file mode 100644 index fdcbb57e4..000000000 --- a/packages/client/src/pages/search.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/2fa.vue b/packages/client/src/pages/settings/2fa.vue deleted file mode 100644 index 89d8178dc..000000000 --- a/packages/client/src/pages/settings/2fa.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/account-info.vue b/packages/client/src/pages/settings/account-info.vue deleted file mode 100644 index 93e65d55b..000000000 --- a/packages/client/src/pages/settings/account-info.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/accounts.vue b/packages/client/src/pages/settings/accounts.vue deleted file mode 100644 index e16931a9c..000000000 --- a/packages/client/src/pages/settings/accounts.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/api.vue b/packages/client/src/pages/settings/api.vue deleted file mode 100644 index 7165089e3..000000000 --- a/packages/client/src/pages/settings/api.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/apps.vue b/packages/client/src/pages/settings/apps.vue deleted file mode 100644 index 8b345c8e9..000000000 --- a/packages/client/src/pages/settings/apps.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/custom-css.vue b/packages/client/src/pages/settings/custom-css.vue deleted file mode 100644 index 2992906e6..000000000 --- a/packages/client/src/pages/settings/custom-css.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/deck.vue b/packages/client/src/pages/settings/deck.vue deleted file mode 100644 index 1285a6641..000000000 --- a/packages/client/src/pages/settings/deck.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/delete-account.vue b/packages/client/src/pages/settings/delete-account.vue deleted file mode 100644 index 851a857fe..000000000 --- a/packages/client/src/pages/settings/delete-account.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/drive.vue b/packages/client/src/pages/settings/drive.vue deleted file mode 100644 index a10e2d9f7..000000000 --- a/packages/client/src/pages/settings/drive.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/email.vue b/packages/client/src/pages/settings/email.vue deleted file mode 100644 index 1dae233a0..000000000 --- a/packages/client/src/pages/settings/email.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/general.vue b/packages/client/src/pages/settings/general.vue deleted file mode 100644 index 9072bcefc..000000000 --- a/packages/client/src/pages/settings/general.vue +++ /dev/null @@ -1,190 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/import-export.vue b/packages/client/src/pages/settings/import-export.vue deleted file mode 100644 index d3d155894..000000000 --- a/packages/client/src/pages/settings/import-export.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/index.vue b/packages/client/src/pages/settings/index.vue deleted file mode 100644 index 73407ff5f..000000000 --- a/packages/client/src/pages/settings/index.vue +++ /dev/null @@ -1,291 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/instance-mute.vue b/packages/client/src/pages/settings/instance-mute.vue deleted file mode 100644 index 5a0d48b82..000000000 --- a/packages/client/src/pages/settings/instance-mute.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/integration.vue b/packages/client/src/pages/settings/integration.vue deleted file mode 100644 index c8219519f..000000000 --- a/packages/client/src/pages/settings/integration.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/mute-block.vue b/packages/client/src/pages/settings/mute-block.vue deleted file mode 100644 index 3832933cf..000000000 --- a/packages/client/src/pages/settings/mute-block.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/navbar.vue b/packages/client/src/pages/settings/navbar.vue deleted file mode 100644 index 6c501e9f2..000000000 --- a/packages/client/src/pages/settings/navbar.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/notifications.vue b/packages/client/src/pages/settings/notifications.vue deleted file mode 100644 index 5703e0c6b..000000000 --- a/packages/client/src/pages/settings/notifications.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/other.vue b/packages/client/src/pages/settings/other.vue deleted file mode 100644 index 51dab04cf..000000000 --- a/packages/client/src/pages/settings/other.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/plugin.install.vue b/packages/client/src/pages/settings/plugin.install.vue deleted file mode 100644 index e259bbeb3..000000000 --- a/packages/client/src/pages/settings/plugin.install.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/plugin.vue b/packages/client/src/pages/settings/plugin.vue deleted file mode 100644 index 8ce6fe444..000000000 --- a/packages/client/src/pages/settings/plugin.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/preferences-backups.vue b/packages/client/src/pages/settings/preferences-backups.vue deleted file mode 100644 index fac67185b..000000000 --- a/packages/client/src/pages/settings/preferences-backups.vue +++ /dev/null @@ -1,444 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/privacy.vue b/packages/client/src/pages/settings/privacy.vue deleted file mode 100644 index 45a0358a9..000000000 --- a/packages/client/src/pages/settings/privacy.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/profile.vue b/packages/client/src/pages/settings/profile.vue deleted file mode 100644 index aaf60c8d5..000000000 --- a/packages/client/src/pages/settings/profile.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/reaction.vue b/packages/client/src/pages/settings/reaction.vue deleted file mode 100644 index c23c1c237..000000000 --- a/packages/client/src/pages/settings/reaction.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/security.vue b/packages/client/src/pages/settings/security.vue deleted file mode 100644 index d109a4ba7..000000000 --- a/packages/client/src/pages/settings/security.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/sounds.vue b/packages/client/src/pages/settings/sounds.vue deleted file mode 100644 index 272960952..000000000 --- a/packages/client/src/pages/settings/sounds.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/statusbar.statusbar.vue b/packages/client/src/pages/settings/statusbar.statusbar.vue deleted file mode 100644 index 98a1825b9..000000000 --- a/packages/client/src/pages/settings/statusbar.statusbar.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/statusbar.vue b/packages/client/src/pages/settings/statusbar.vue deleted file mode 100644 index 9dbf18214..000000000 --- a/packages/client/src/pages/settings/statusbar.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/theme.install.vue b/packages/client/src/pages/settings/theme.install.vue deleted file mode 100644 index 34f8384d8..000000000 --- a/packages/client/src/pages/settings/theme.install.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/theme.manage.vue b/packages/client/src/pages/settings/theme.manage.vue deleted file mode 100644 index 792bb15e5..000000000 --- a/packages/client/src/pages/settings/theme.manage.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/theme.vue b/packages/client/src/pages/settings/theme.vue deleted file mode 100644 index 6571a881a..000000000 --- a/packages/client/src/pages/settings/theme.vue +++ /dev/null @@ -1,409 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/webhook.edit.vue b/packages/client/src/pages/settings/webhook.edit.vue deleted file mode 100644 index 35f3cb1da..000000000 --- a/packages/client/src/pages/settings/webhook.edit.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/webhook.new.vue b/packages/client/src/pages/settings/webhook.new.vue deleted file mode 100644 index fcf1329ff..000000000 --- a/packages/client/src/pages/settings/webhook.new.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/webhook.vue b/packages/client/src/pages/settings/webhook.vue deleted file mode 100644 index 1a7e73940..000000000 --- a/packages/client/src/pages/settings/webhook.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/packages/client/src/pages/settings/word-mute.vue b/packages/client/src/pages/settings/word-mute.vue deleted file mode 100644 index e29737956..000000000 --- a/packages/client/src/pages/settings/word-mute.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - diff --git a/packages/client/src/pages/share.vue b/packages/client/src/pages/share.vue deleted file mode 100644 index 69d22ed63..000000000 --- a/packages/client/src/pages/share.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/signup-complete.vue b/packages/client/src/pages/signup-complete.vue deleted file mode 100644 index a97990c12..000000000 --- a/packages/client/src/pages/signup-complete.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/tag.vue b/packages/client/src/pages/tag.vue deleted file mode 100644 index 5498c2999..000000000 --- a/packages/client/src/pages/tag.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/packages/client/src/pages/theme-editor.vue b/packages/client/src/pages/theme-editor.vue deleted file mode 100644 index 7dfeee16e..000000000 --- a/packages/client/src/pages/theme-editor.vue +++ /dev/null @@ -1,283 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/timeline.tutorial.vue b/packages/client/src/pages/timeline.tutorial.vue deleted file mode 100644 index 7f08ccc2a..000000000 --- a/packages/client/src/pages/timeline.tutorial.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/timeline.vue b/packages/client/src/pages/timeline.vue deleted file mode 100644 index 9d4299702..000000000 --- a/packages/client/src/pages/timeline.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user-info.vue b/packages/client/src/pages/user-info.vue deleted file mode 100644 index d376f11c5..000000000 --- a/packages/client/src/pages/user-info.vue +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - diff --git a/packages/client/src/pages/user-list-timeline.vue b/packages/client/src/pages/user-list-timeline.vue deleted file mode 100644 index 4a534e47b..000000000 --- a/packages/client/src/pages/user-list-timeline.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/clips.vue b/packages/client/src/pages/user/clips.vue deleted file mode 100644 index 50a5d4b81..000000000 --- a/packages/client/src/pages/user/clips.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/follow-list.vue b/packages/client/src/pages/user/follow-list.vue deleted file mode 100644 index d42acd838..000000000 --- a/packages/client/src/pages/user/follow-list.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/followers.vue b/packages/client/src/pages/user/followers.vue deleted file mode 100644 index b61b48329..000000000 --- a/packages/client/src/pages/user/followers.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/following.vue b/packages/client/src/pages/user/following.vue deleted file mode 100644 index a23977b42..000000000 --- a/packages/client/src/pages/user/following.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/gallery.vue b/packages/client/src/pages/user/gallery.vue deleted file mode 100644 index 3b6768e64..000000000 --- a/packages/client/src/pages/user/gallery.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/home.vue b/packages/client/src/pages/user/home.vue deleted file mode 100644 index 352db4616..000000000 --- a/packages/client/src/pages/user/home.vue +++ /dev/null @@ -1,478 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/index.activity.vue b/packages/client/src/pages/user/index.activity.vue deleted file mode 100644 index 43c2ed8b0..000000000 --- a/packages/client/src/pages/user/index.activity.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/packages/client/src/pages/user/index.photos.vue b/packages/client/src/pages/user/index.photos.vue deleted file mode 100644 index 5c9a73dcb..000000000 --- a/packages/client/src/pages/user/index.photos.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/index.timeline.vue b/packages/client/src/pages/user/index.timeline.vue deleted file mode 100644 index 41983a5ae..000000000 --- a/packages/client/src/pages/user/index.timeline.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/index.vue b/packages/client/src/pages/user/index.vue deleted file mode 100644 index 7e635f8b2..000000000 --- a/packages/client/src/pages/user/index.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/pages.vue b/packages/client/src/pages/user/pages.vue deleted file mode 100644 index bd16c4668..000000000 --- a/packages/client/src/pages/user/pages.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/user/reactions.vue b/packages/client/src/pages/user/reactions.vue deleted file mode 100644 index 7e84e100a..000000000 --- a/packages/client/src/pages/user/reactions.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/welcome.entrance.a.vue b/packages/client/src/pages/welcome.entrance.a.vue deleted file mode 100644 index 827162a0c..000000000 --- a/packages/client/src/pages/welcome.entrance.a.vue +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - diff --git a/packages/client/src/pages/welcome.entrance.b.vue b/packages/client/src/pages/welcome.entrance.b.vue deleted file mode 100644 index 4bf117590..000000000 --- a/packages/client/src/pages/welcome.entrance.b.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/welcome.entrance.c.vue b/packages/client/src/pages/welcome.entrance.c.vue deleted file mode 100644 index a590834a4..000000000 --- a/packages/client/src/pages/welcome.entrance.c.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/welcome.setup.vue b/packages/client/src/pages/welcome.setup.vue deleted file mode 100644 index d25651e2a..000000000 --- a/packages/client/src/pages/welcome.setup.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/welcome.timeline.vue b/packages/client/src/pages/welcome.timeline.vue deleted file mode 100644 index e19ebac3e..000000000 --- a/packages/client/src/pages/welcome.timeline.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/welcome.vue b/packages/client/src/pages/welcome.vue deleted file mode 100644 index a1c3fc2ab..000000000 --- a/packages/client/src/pages/welcome.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/packages/client/src/pizzax.ts b/packages/client/src/pizzax.ts deleted file mode 100644 index 89679123b..000000000 --- a/packages/client/src/pizzax.ts +++ /dev/null @@ -1,169 +0,0 @@ -// PIZZAX --- A lightweight store - -import { onUnmounted, Ref, ref, watch } from 'vue'; -import { $i } from './account'; -import { api } from './os'; -import { stream } from './stream'; - -type StateDef = Record; - -type ArrayElement = A extends readonly (infer T)[] ? T : never; - -const connection = $i && stream.useChannel('main'); - -export class Storage { - public readonly key: string; - public readonly keyForLocalStorage: string; - - public readonly def: T; - - // TODO: これが実装されたらreadonlyにしたい: https://github.com/microsoft/TypeScript/issues/37487 - public readonly state: { [K in keyof T]: T[K]['default'] }; - public readonly reactiveState: { [K in keyof T]: Ref }; - - constructor(key: string, def: T) { - this.key = key; - this.keyForLocalStorage = 'pizzax::' + key; - this.def = def; - - // TODO: indexedDBにする - const deviceState = JSON.parse(localStorage.getItem(this.keyForLocalStorage) || '{}'); - const deviceAccountState = $i ? JSON.parse(localStorage.getItem(this.keyForLocalStorage + '::' + $i.id) || '{}') : {}; - const registryCache = $i ? JSON.parse(localStorage.getItem(this.keyForLocalStorage + '::cache::' + $i.id) || '{}') : {}; - - const state = {}; - const reactiveState = {}; - for (const [k, v] of Object.entries(def)) { - if (v.where === 'device' && Object.prototype.hasOwnProperty.call(deviceState, k)) { - state[k] = deviceState[k]; - } else if (v.where === 'account' && $i && Object.prototype.hasOwnProperty.call(registryCache, k)) { - state[k] = registryCache[k]; - } else if (v.where === 'deviceAccount' && Object.prototype.hasOwnProperty.call(deviceAccountState, k)) { - state[k] = deviceAccountState[k]; - } else { - state[k] = v.default; - if (_DEV_) console.log('Use default value', k, v.default); - } - } - for (const [k, v] of Object.entries(state)) { - reactiveState[k] = ref(v); - } - this.state = state as any; - this.reactiveState = reactiveState as any; - - if ($i) { - // なぜかsetTimeoutしないとapi関数内でエラーになる(おそらく循環参照してることに原因がありそう) - window.setTimeout(() => { - api('i/registry/get-all', { scope: ['client', this.key] }).then(kvs => { - const cache = {}; - for (const [k, v] of Object.entries(def)) { - if (v.where === 'account') { - if (Object.prototype.hasOwnProperty.call(kvs, k)) { - state[k] = kvs[k]; - reactiveState[k].value = kvs[k]; - cache[k] = kvs[k]; - } else { - state[k] = v.default; - reactiveState[k].value = v.default; - } - } - } - localStorage.setItem(this.keyForLocalStorage + '::cache::' + $i.id, JSON.stringify(cache)); - }); - }, 1); - // streamingのuser storage updateイベントを監視して更新 - connection?.on('registryUpdated', ({ scope, key, value }: { scope: string[], key: keyof T, value: T[typeof key]['default'] }) => { - if (scope.length !== 2 || scope[0] !== 'client' || scope[1] !== this.key || this.state[key] === value) return; - - this.state[key] = value; - this.reactiveState[key].value = value; - - const cache = JSON.parse(localStorage.getItem(this.keyForLocalStorage + '::cache::' + $i.id) || '{}'); - if (cache[key] !== value) { - cache[key] = value; - localStorage.setItem(this.keyForLocalStorage + '::cache::' + $i.id, JSON.stringify(cache)); - } - }); - } - } - - public set(key: K, value: T[K]['default']): void { - if (_DEV_) console.log('set', key, value); - - this.state[key] = value; - this.reactiveState[key].value = value; - - switch (this.def[key].where) { - case 'device': { - const deviceState = JSON.parse(localStorage.getItem(this.keyForLocalStorage) || '{}'); - deviceState[key] = value; - localStorage.setItem(this.keyForLocalStorage, JSON.stringify(deviceState)); - break; - } - case 'deviceAccount': { - if ($i == null) break; - const deviceAccountState = JSON.parse(localStorage.getItem(this.keyForLocalStorage + '::' + $i.id) || '{}'); - deviceAccountState[key] = value; - localStorage.setItem(this.keyForLocalStorage + '::' + $i.id, JSON.stringify(deviceAccountState)); - break; - } - case 'account': { - if ($i == null) break; - const cache = JSON.parse(localStorage.getItem(this.keyForLocalStorage + '::cache::' + $i.id) || '{}'); - cache[key] = value; - localStorage.setItem(this.keyForLocalStorage + '::cache::' + $i.id, JSON.stringify(cache)); - api('i/registry/set', { - scope: ['client', this.key], - key: key, - value: value, - }); - break; - } - } - } - - public push(key: K, value: ArrayElement): void { - const currentState = this.state[key]; - this.set(key, [...currentState, value]); - } - - public reset(key: keyof T) { - this.set(key, this.def[key].default); - } - - /** - * 特定のキーの、簡易的なgetter/setterを作ります - * 主にvue場で設定コントロールのmodelとして使う用 - */ - public makeGetterSetter(key: K, getter?: (v: T[K]) => unknown, setter?: (v: unknown) => T[K]) { - const valueRef = ref(this.state[key]); - - const stop = watch(this.reactiveState[key], val => { - valueRef.value = val; - }); - - // NOTE: vueコンポーネント内で呼ばれない限りは、onUnmounted は無意味なのでメモリリークする - onUnmounted(() => { - stop(); - }); - - // TODO: VueのcustomRef使うと良い感じになるかも - return { - get: () => { - if (getter) { - return getter(valueRef.value); - } else { - return valueRef.value; - } - }, - set: (value: unknown) => { - const val = setter ? setter(value) : value; - this.set(key, val); - valueRef.value = val; - }, - }; - } -} diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts deleted file mode 100644 index 111b15e0a..000000000 --- a/packages/client/src/router.ts +++ /dev/null @@ -1,501 +0,0 @@ -import { AsyncComponentLoader, defineAsyncComponent, inject } from 'vue'; -import { Router } from '@/nirax'; -import { $i, iAmModerator } from '@/account'; -import MkLoading from '@/pages/_loading_.vue'; -import MkError from '@/pages/_error_.vue'; -import { ui } from '@/config'; - -const page = (loader: AsyncComponentLoader) => defineAsyncComponent({ - loader: loader, - loadingComponent: MkLoading, - errorComponent: MkError, -}); - -export const routes = [{ - path: '/@:initUser/pages/:initPageName/view-source', - component: page(() => import('./pages/page-editor/page-editor.vue')), -}, { - path: '/@:username/pages/:pageName', - component: page(() => import('./pages/page.vue')), -}, { - path: '/@:acct/following', - component: page(() => import('./pages/user/following.vue')), -}, { - path: '/@:acct/followers', - component: page(() => import('./pages/user/followers.vue')), -}, { - name: 'user', - path: '/@:acct/:page?', - component: page(() => import('./pages/user/index.vue')), -}, { - name: 'note', - path: '/notes/:noteId', - component: page(() => import('./pages/note.vue')), -}, { - path: '/clips/:clipId', - component: page(() => import('./pages/clip.vue')), -}, { - path: '/user-info/:userId', - component: page(() => import('./pages/user-info.vue')), -}, { - path: '/instance-info/:host', - component: page(() => import('./pages/instance-info.vue')), -}, { - name: 'settings', - path: '/settings', - component: page(() => import('./pages/settings/index.vue')), - loginRequired: true, - children: [{ - path: '/profile', - name: 'profile', - component: page(() => import('./pages/settings/profile.vue')), - }, { - path: '/privacy', - name: 'privacy', - component: page(() => import('./pages/settings/privacy.vue')), - }, { - path: '/reaction', - name: 'reaction', - component: page(() => import('./pages/settings/reaction.vue')), - }, { - path: '/drive', - name: 'drive', - component: page(() => import('./pages/settings/drive.vue')), - }, { - path: '/notifications', - name: 'notifications', - component: page(() => import('./pages/settings/notifications.vue')), - }, { - path: '/email', - name: 'email', - component: page(() => import('./pages/settings/email.vue')), - }, { - path: '/integration', - name: 'integration', - component: page(() => import('./pages/settings/integration.vue')), - }, { - path: '/security', - name: 'security', - component: page(() => import('./pages/settings/security.vue')), - }, { - path: '/general', - name: 'general', - component: page(() => import('./pages/settings/general.vue')), - }, { - path: '/theme/install', - name: 'theme', - component: page(() => import('./pages/settings/theme.install.vue')), - }, { - path: '/theme/manage', - name: 'theme', - component: page(() => import('./pages/settings/theme.manage.vue')), - }, { - path: '/theme', - name: 'theme', - component: page(() => import('./pages/settings/theme.vue')), - }, { - path: '/navbar', - name: 'navbar', - component: page(() => import('./pages/settings/navbar.vue')), - }, { - path: '/statusbar', - name: 'statusbar', - component: page(() => import('./pages/settings/statusbar.vue')), - }, { - path: '/sounds', - name: 'sounds', - component: page(() => import('./pages/settings/sounds.vue')), - }, { - path: '/plugin/install', - name: 'plugin', - component: page(() => import('./pages/settings/plugin.install.vue')), - }, { - path: '/plugin', - name: 'plugin', - component: page(() => import('./pages/settings/plugin.vue')), - }, { - path: '/import-export', - name: 'import-export', - component: page(() => import('./pages/settings/import-export.vue')), - }, { - path: '/instance-mute', - name: 'instance-mute', - component: page(() => import('./pages/settings/instance-mute.vue')), - }, { - path: '/mute-block', - name: 'mute-block', - component: page(() => import('./pages/settings/mute-block.vue')), - }, { - path: '/word-mute', - name: 'word-mute', - component: page(() => import('./pages/settings/word-mute.vue')), - }, { - path: '/api', - name: 'api', - component: page(() => import('./pages/settings/api.vue')), - }, { - path: '/apps', - name: 'api', - component: page(() => import('./pages/settings/apps.vue')), - }, { - path: '/webhook/edit/:webhookId', - name: 'webhook', - component: page(() => import('./pages/settings/webhook.edit.vue')), - }, { - path: '/webhook/new', - name: 'webhook', - component: page(() => import('./pages/settings/webhook.new.vue')), - }, { - path: '/webhook', - name: 'webhook', - component: page(() => import('./pages/settings/webhook.vue')), - }, { - path: '/deck', - name: 'deck', - component: page(() => import('./pages/settings/deck.vue')), - }, { - path: '/preferences-backups', - name: 'preferences-backups', - component: page(() => import('./pages/settings/preferences-backups.vue')), - }, { - path: '/custom-css', - name: 'general', - component: page(() => import('./pages/settings/custom-css.vue')), - }, { - path: '/accounts', - name: 'profile', - component: page(() => import('./pages/settings/accounts.vue')), - }, { - path: '/account-info', - name: 'other', - component: page(() => import('./pages/settings/account-info.vue')), - }, { - path: '/delete-account', - name: 'other', - component: page(() => import('./pages/settings/delete-account.vue')), - }, { - path: '/other', - name: 'other', - component: page(() => import('./pages/settings/other.vue')), - }, { - path: '/', - component: page(() => import('./pages/_empty_.vue')), - }], -}, { - path: '/reset-password/:token?', - component: page(() => import('./pages/reset-password.vue')), -}, { - path: '/signup-complete/:code', - component: page(() => import('./pages/signup-complete.vue')), -}, { - path: '/announcements', - component: page(() => import('./pages/announcements.vue')), -}, { - path: '/about', - component: page(() => import('./pages/about.vue')), - hash: 'initialTab', -}, { - path: '/about-misskey', - component: page(() => import('./pages/about-misskey.vue')), -}, { - path: '/theme-editor', - component: page(() => import('./pages/theme-editor.vue')), - loginRequired: true, -}, { - path: '/explore/tags/:tag', - component: page(() => import('./pages/explore.vue')), -}, { - path: '/explore', - component: page(() => import('./pages/explore.vue')), -}, { - path: '/search', - component: page(() => import('./pages/search.vue')), - query: { - q: 'query', - channel: 'channel', - }, -}, { - path: '/authorize-follow', - component: page(() => import('./pages/follow.vue')), - loginRequired: true, -}, { - path: '/share', - component: page(() => import('./pages/share.vue')), - loginRequired: true, -}, { - path: '/api-console', - component: page(() => import('./pages/api-console.vue')), - loginRequired: true, -}, { - path: '/mfm-cheat-sheet', - component: page(() => import('./pages/mfm-cheat-sheet.vue')), -}, { - path: '/scratchpad', - component: page(() => import('./pages/scratchpad.vue')), -}, { - path: '/preview', - component: page(() => import('./pages/preview.vue')), -}, { - path: '/auth/:token', - component: page(() => import('./pages/auth.vue')), -}, { - path: '/miauth/:session', - component: page(() => import('./pages/miauth.vue')), - query: { - callback: 'callback', - name: 'name', - icon: 'icon', - permission: 'permission', - }, -}, { - path: '/tags/:tag', - component: page(() => import('./pages/tag.vue')), -}, { - path: '/pages/new', - component: page(() => import('./pages/page-editor/page-editor.vue')), - loginRequired: true, -}, { - path: '/pages/edit/:initPageId', - component: page(() => import('./pages/page-editor/page-editor.vue')), - loginRequired: true, -}, { - path: '/pages', - component: page(() => import('./pages/pages.vue')), -}, { - path: '/gallery/:postId/edit', - component: page(() => import('./pages/gallery/edit.vue')), - loginRequired: true, -}, { - path: '/gallery/new', - component: page(() => import('./pages/gallery/edit.vue')), - loginRequired: true, -}, { - path: '/gallery/:postId', - component: page(() => import('./pages/gallery/post.vue')), -}, { - path: '/gallery', - component: page(() => import('./pages/gallery/index.vue')), -}, { - path: '/channels/:channelId/edit', - component: page(() => import('./pages/channel-editor.vue')), - loginRequired: true, -}, { - path: '/channels/new', - component: page(() => import('./pages/channel-editor.vue')), - loginRequired: true, -}, { - path: '/channels/:channelId', - component: page(() => import('./pages/channel.vue')), -}, { - path: '/channels', - component: page(() => import('./pages/channels.vue')), -}, { - path: '/registry/keys/system/:path(*)?', - component: page(() => import('./pages/registry.keys.vue')), -}, { - path: '/registry/value/system/:path(*)?', - component: page(() => import('./pages/registry.value.vue')), -}, { - path: '/registry', - component: page(() => import('./pages/registry.vue')), -}, { - path: '/admin/file/:fileId', - component: iAmModerator ? page(() => import('./pages/admin-file.vue')) : page(() => import('./pages/not-found.vue')), -}, { - path: '/admin', - component: iAmModerator ? page(() => import('./pages/admin/index.vue')) : page(() => import('./pages/not-found.vue')), - children: [{ - path: '/overview', - name: 'overview', - component: page(() => import('./pages/admin/overview.vue')), - }, { - path: '/users', - name: 'users', - component: page(() => import('./pages/admin/users.vue')), - }, { - path: '/emojis', - name: 'emojis', - component: page(() => import('./pages/admin/emojis.vue')), - }, { - path: '/queue', - name: 'queue', - component: page(() => import('./pages/admin/queue.vue')), - }, { - path: '/files', - name: 'files', - component: page(() => import('./pages/admin/files.vue')), - }, { - path: '/announcements', - name: 'announcements', - component: page(() => import('./pages/admin/announcements.vue')), - }, { - path: '/ads', - name: 'ads', - component: page(() => import('./pages/admin/ads.vue')), - }, { - path: '/database', - name: 'database', - component: page(() => import('./pages/admin/database.vue')), - }, { - path: '/abuses', - name: 'abuses', - component: page(() => import('./pages/admin/abuses.vue')), - }, { - path: '/settings', - name: 'settings', - component: page(() => import('./pages/admin/settings.vue')), - }, { - path: '/email-settings', - name: 'email-settings', - component: page(() => import('./pages/admin/email-settings.vue')), - }, { - path: '/object-storage', - name: 'object-storage', - component: page(() => import('./pages/admin/object-storage.vue')), - }, { - path: '/security', - name: 'security', - component: page(() => import('./pages/admin/security.vue')), - }, { - path: '/relays', - name: 'relays', - component: page(() => import('./pages/admin/relays.vue')), - }, { - path: '/integrations', - name: 'integrations', - component: page(() => import('./pages/admin/integrations.vue')), - }, { - path: '/instance-block', - name: 'instance-block', - component: page(() => import('./pages/admin/instance-block.vue')), - }, { - path: '/proxy-account', - name: 'proxy-account', - component: page(() => import('./pages/admin/proxy-account.vue')), - }, { - path: '/other-settings', - name: 'other-settings', - component: page(() => import('./pages/admin/other-settings.vue')), - }, { - path: '/', - component: page(() => import('./pages/_empty_.vue')), - }], -}, { - path: '/my/notifications', - component: page(() => import('./pages/notifications.vue')), - loginRequired: true, -}, { - path: '/my/favorites', - component: page(() => import('./pages/favorites.vue')), - loginRequired: true, -}, { - name: 'messaging', - path: '/my/messaging', - component: page(() => import('./pages/messaging/index.vue')), - loginRequired: true, -}, { - path: '/my/messaging/:userAcct', - component: page(() => import('./pages/messaging/messaging-room.vue')), - loginRequired: true, -}, { - path: '/my/messaging/group/:groupId', - component: page(() => import('./pages/messaging/messaging-room.vue')), - loginRequired: true, -}, { - path: '/my/drive/folder/:folder', - component: page(() => import('./pages/drive.vue')), - loginRequired: true, -}, { - path: '/my/drive', - component: page(() => import('./pages/drive.vue')), - loginRequired: true, -}, { - path: '/my/follow-requests', - component: page(() => import('./pages/follow-requests.vue')), - loginRequired: true, -}, { - path: '/my/lists/:listId', - component: page(() => import('./pages/my-lists/list.vue')), - loginRequired: true, -}, { - path: '/my/lists', - component: page(() => import('./pages/my-lists/index.vue')), - loginRequired: true, -}, { - path: '/my/clips', - component: page(() => import('./pages/my-clips/index.vue')), - loginRequired: true, -}, { - path: '/my/antennas/create', - component: page(() => import('./pages/my-antennas/create.vue')), - loginRequired: true, -}, { - path: '/my/antennas/:antennaId', - component: page(() => import('./pages/my-antennas/edit.vue')), - loginRequired: true, -}, { - path: '/my/antennas', - component: page(() => import('./pages/my-antennas/index.vue')), - loginRequired: true, -}, { - path: '/timeline/list/:listId', - component: page(() => import('./pages/user-list-timeline.vue')), - loginRequired: true, -}, { - path: '/timeline/antenna/:antennaId', - component: page(() => import('./pages/antenna-timeline.vue')), - loginRequired: true, -}, { - name: 'index', - path: '/', - component: $i ? page(() => import('./pages/timeline.vue')) : page(() => import('./pages/welcome.vue')), - globalCacheKey: 'index', -}, { - path: '/:(*)', - component: page(() => import('./pages/not-found.vue')), -}]; - -export const mainRouter = new Router(routes, location.pathname + location.search + location.hash); - -window.history.replaceState({ key: mainRouter.getCurrentKey() }, '', location.href); - -// TODO: このファイルでスクロール位置も管理する設計だとdeckに対応できないのでなんとかする -// スクロール位置取得+スクロール位置設定関数をprovideする感じでも良いかも - -const scrollPosStore = new Map(); - -window.setInterval(() => { - scrollPosStore.set(window.history.state?.key, window.scrollY); -}, 1000); - -mainRouter.addListener('push', ctx => { - window.history.pushState({ key: ctx.key }, '', ctx.path); - const scrollPos = scrollPosStore.get(ctx.key) ?? 0; - window.scroll({ top: scrollPos, behavior: 'instant' }); - if (scrollPos !== 0) { - window.setTimeout(() => { // 遷移直後はタイミングによってはコンポーネントが復元し切ってない可能性も考えられるため少し時間を空けて再度スクロール - window.scroll({ top: scrollPos, behavior: 'instant' }); - }, 100); - } -}); - -mainRouter.addListener('replace', ctx => { - window.history.replaceState({ key: ctx.key }, '', ctx.path); -}); - -mainRouter.addListener('same', () => { - window.scroll({ top: 0, behavior: 'smooth' }); -}); - -window.addEventListener('popstate', (event) => { - mainRouter.replace(location.pathname + location.search + location.hash, event.state?.key, false); - const scrollPos = scrollPosStore.get(event.state?.key) ?? 0; - window.scroll({ top: scrollPos, behavior: 'instant' }); - window.setTimeout(() => { // 遷移直後はタイミングによってはコンポーネントが復元し切ってない可能性も考えられるため少し時間を空けて再度スクロール - window.scroll({ top: scrollPos, behavior: 'instant' }); - }, 100); -}); - -export function useRouter(): Router { - return inject('router', null) ?? mainRouter; -} diff --git a/packages/client/src/scripts/2fa.ts b/packages/client/src/scripts/2fa.ts deleted file mode 100644 index d1b9581e7..000000000 --- a/packages/client/src/scripts/2fa.ts +++ /dev/null @@ -1,33 +0,0 @@ -export function byteify(string: string, encoding: 'ascii' | 'base64' | 'hex') { - switch (encoding) { - case 'ascii': - return Uint8Array.from(string, c => c.charCodeAt(0)); - case 'base64': - return Uint8Array.from( - atob( - string - .replace(/-/g, '+') - .replace(/_/g, '/') - ), - c => c.charCodeAt(0) - ); - case 'hex': - return new Uint8Array( - string - .match(/.{1,2}/g) - .map(byte => parseInt(byte, 16)) - ); - } -} - -export function hexify(buffer: ArrayBuffer) { - return Array.from(new Uint8Array(buffer)) - .reduce( - (str, byte) => str + byte.toString(16).padStart(2, '0'), - '' - ); -} - -export function stringify(buffer: ArrayBuffer) { - return String.fromCharCode(... new Uint8Array(buffer)); -} diff --git a/packages/client/src/scripts/aiscript/api.ts b/packages/client/src/scripts/aiscript/api.ts deleted file mode 100644 index 01b8fd05f..000000000 --- a/packages/client/src/scripts/aiscript/api.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { utils, values } from '@syuilo/aiscript'; -import * as os from '@/os'; -import { $i } from '@/account'; - -export function createAiScriptEnv(opts) { - let apiRequests = 0; - return { - USER_ID: $i ? values.STR($i.id) : values.NULL, - USER_NAME: $i ? values.STR($i.name) : values.NULL, - USER_USERNAME: $i ? values.STR($i.username) : values.NULL, - 'Mk:dialog': values.FN_NATIVE(async ([title, text, type]) => { - await os.alert({ - type: type ? type.value : 'info', - title: title.value, - text: text.value, - }); - }), - 'Mk:confirm': values.FN_NATIVE(async ([title, text, type]) => { - const confirm = await os.confirm({ - type: type ? type.value : 'question', - title: title.value, - text: text.value, - }); - return confirm.canceled ? values.FALSE : values.TRUE; - }), - 'Mk:api': values.FN_NATIVE(async ([ep, param, token]) => { - if (token) utils.assertString(token); - apiRequests++; - if (apiRequests > 16) return values.NULL; - const res = await os.api(ep.value, utils.valToJs(param), token ? token.value : (opts.token || null)); - return utils.jsToVal(res); - }), - 'Mk:save': values.FN_NATIVE(([key, value]) => { - utils.assertString(key); - localStorage.setItem('aiscript:' + opts.storageKey + ':' + key.value, JSON.stringify(utils.valToJs(value))); - return values.NULL; - }), - 'Mk:load': values.FN_NATIVE(([key]) => { - utils.assertString(key); - return utils.jsToVal(JSON.parse(localStorage.getItem('aiscript:' + opts.storageKey + ':' + key.value))); - }), - }; -} diff --git a/packages/client/src/scripts/array.ts b/packages/client/src/scripts/array.ts deleted file mode 100644 index 26c6195d6..000000000 --- a/packages/client/src/scripts/array.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { EndoRelation, Predicate } from './relation'; - -/** - * Count the number of elements that satisfy the predicate - */ - -export function countIf(f: Predicate, xs: T[]): number { - return xs.filter(f).length; -} - -/** - * Count the number of elements that is equal to the element - */ -export function count(a: T, xs: T[]): number { - return countIf(x => x === a, xs); -} - -/** - * Concatenate an array of arrays - */ -export function concat(xss: T[][]): T[] { - return ([] as T[]).concat(...xss); -} - -/** - * Intersperse the element between the elements of the array - * @param sep The element to be interspersed - */ -export function intersperse(sep: T, xs: T[]): T[] { - return concat(xs.map(x => [sep, x])).slice(1); -} - -/** - * Returns the array of elements that is not equal to the element - */ -export function erase(a: T, xs: T[]): T[] { - return xs.filter(x => x !== a); -} - -/** - * Finds the array of all elements in the first array not contained in the second array. - * The order of result values are determined by the first array. - */ -export function difference(xs: T[], ys: T[]): T[] { - return xs.filter(x => !ys.includes(x)); -} - -/** - * Remove all but the first element from every group of equivalent elements - */ -export function unique(xs: T[]): T[] { - return [...new Set(xs)]; -} - -export function uniqueBy(values: TValue[], keySelector: (value: TValue) => TKey): TValue[] { - const map = new Map(); - - for (const value of values) { - const key = keySelector(value); - if (!map.has(key)) map.set(key, value); - } - - return [...map.values()]; -} - -export function sum(xs: number[]): number { - return xs.reduce((a, b) => a + b, 0); -} - -export function maximum(xs: number[]): number { - return Math.max(...xs); -} - -/** - * Splits an array based on the equivalence relation. - * The concatenation of the result is equal to the argument. - */ -export function groupBy(f: EndoRelation, xs: T[]): T[][] { - const groups = [] as T[][]; - for (const x of xs) { - if (groups.length !== 0 && f(groups[groups.length - 1][0], x)) { - groups[groups.length - 1].push(x); - } else { - groups.push([x]); - } - } - return groups; -} - -/** - * Splits an array based on the equivalence relation induced by the function. - * The concatenation of the result is equal to the argument. - */ -export function groupOn(f: (x: T) => S, xs: T[]): T[][] { - return groupBy((a, b) => f(a) === f(b), xs); -} - -export function groupByX(collections: T[], keySelector: (x: T) => string) { - return collections.reduce((obj: Record, item: T) => { - const key = keySelector(item); - if (typeof obj[key] === 'undefined') { - obj[key] = []; - } - - obj[key].push(item); - - return obj; - }, {}); -} - -/** - * Compare two arrays by lexicographical order - */ -export function lessThan(xs: number[], ys: number[]): boolean { - for (let i = 0; i < Math.min(xs.length, ys.length); i++) { - if (xs[i] < ys[i]) return true; - if (xs[i] > ys[i]) return false; - } - return xs.length < ys.length; -} - -/** - * Returns the longest prefix of elements that satisfy the predicate - */ -export function takeWhile(f: Predicate, xs: T[]): T[] { - const ys = []; - for (const x of xs) { - if (f(x)) { - ys.push(x); - } else { - break; - } - } - return ys; -} - -export function cumulativeSum(xs: number[]): number[] { - const ys = Array.from(xs); // deep copy - for (let i = 1; i < ys.length; i++) ys[i] += ys[i - 1]; - return ys; -} - -export function toArray(x: T | T[] | undefined): T[] { - return Array.isArray(x) ? x : x != null ? [x] : []; -} - -export function toSingle(x: T | T[] | undefined): T | undefined { - return Array.isArray(x) ? x[0] : x; -} diff --git a/packages/client/src/scripts/autocomplete.ts b/packages/client/src/scripts/autocomplete.ts deleted file mode 100644 index 206724de9..000000000 --- a/packages/client/src/scripts/autocomplete.ts +++ /dev/null @@ -1,272 +0,0 @@ -import { nextTick, Ref, ref, defineAsyncComponent } from 'vue'; -import getCaretCoordinates from 'textarea-caret'; -import { toASCII } from 'punycode/'; -import { popup } from '@/os'; - -export class Autocomplete { - private suggestion: { - x: Ref; - y: Ref; - q: Ref; - close: () => void; - } | null; - private textarea: HTMLInputElement | HTMLTextAreaElement; - private currentType: string; - private textRef: Ref; - private opening: boolean; - - private get text(): string { - return this.textRef.value; - } - - private set text(text: string) { - this.textRef.value = text; - } - - /** - * 対象のテキストエリアを与えてインスタンスを初期化します。 - */ - constructor(textarea: HTMLInputElement | HTMLTextAreaElement, textRef: Ref) { - //#region BIND - this.onInput = this.onInput.bind(this); - this.complete = this.complete.bind(this); - this.close = this.close.bind(this); - //#endregion - - this.suggestion = null; - this.textarea = textarea; - this.textRef = textRef; - this.opening = false; - - this.attach(); - } - - /** - * このインスタンスにあるテキストエリアの入力のキャプチャを開始します。 - */ - public attach() { - this.textarea.addEventListener('input', this.onInput); - } - - /** - * このインスタンスにあるテキストエリアの入力のキャプチャを解除します。 - */ - public detach() { - this.textarea.removeEventListener('input', this.onInput); - this.close(); - } - - /** - * テキスト入力時 - */ - private onInput() { - const caretPos = this.textarea.selectionStart; - const text = this.text.substr(0, caretPos).split('\n').pop()!; - - const mentionIndex = text.lastIndexOf('@'); - const hashtagIndex = text.lastIndexOf('#'); - const emojiIndex = text.lastIndexOf(':'); - const mfmTagIndex = text.lastIndexOf('$'); - - const max = Math.max( - mentionIndex, - hashtagIndex, - emojiIndex, - mfmTagIndex); - - if (max === -1) { - this.close(); - return; - } - - const isMention = mentionIndex !== -1; - const isHashtag = hashtagIndex !== -1; - const isMfmTag = mfmTagIndex !== -1; - const isEmoji = emojiIndex !== -1 && text.split(/:[a-z0-9_+\-]+:/).pop()!.includes(':'); - - let opened = false; - - if (isMention) { - const username = text.substr(mentionIndex + 1); - if (username !== '' && username.match(/^[a-zA-Z0-9_]+$/)) { - this.open('user', username); - opened = true; - } else if (username === '') { - this.open('user', null); - opened = true; - } - } - - if (isHashtag && !opened) { - const hashtag = text.substr(hashtagIndex + 1); - if (!hashtag.includes(' ')) { - this.open('hashtag', hashtag); - opened = true; - } - } - - if (isEmoji && !opened) { - const emoji = text.substr(emojiIndex + 1); - if (!emoji.includes(' ')) { - this.open('emoji', emoji); - opened = true; - } - } - - if (isMfmTag && !opened) { - const mfmTag = text.substr(mfmTagIndex + 1); - if (!mfmTag.includes(' ')) { - this.open('mfmTag', mfmTag.replace('[', '')); - opened = true; - } - } - - if (!opened) { - this.close(); - } - } - - /** - * サジェストを提示します。 - */ - private async open(type: string, q: string | null) { - if (type !== this.currentType) { - this.close(); - } - if (this.opening) return; - this.opening = true; - this.currentType = type; - - //#region サジェストを表示すべき位置を計算 - const caretPosition = getCaretCoordinates(this.textarea, this.textarea.selectionStart); - - const rect = this.textarea.getBoundingClientRect(); - - const x = rect.left + caretPosition.left - this.textarea.scrollLeft; - const y = rect.top + caretPosition.top - this.textarea.scrollTop; - //#endregion - - if (this.suggestion) { - this.suggestion.x.value = x; - this.suggestion.y.value = y; - this.suggestion.q.value = q; - - this.opening = false; - } else { - const _x = ref(x); - const _y = ref(y); - const _q = ref(q); - - const { dispose } = await popup(defineAsyncComponent(() => import('@/components/MkAutocomplete.vue')), { - textarea: this.textarea, - close: this.close, - type: type, - q: _q, - x: _x, - y: _y, - }, { - done: (res) => { - this.complete(res); - } - }); - - this.suggestion = { - q: _q, - x: _x, - y: _y, - close: () => dispose(), - }; - - this.opening = false; - } - } - - /** - * サジェストを閉じます。 - */ - private close() { - if (this.suggestion == null) return; - - this.suggestion.close(); - this.suggestion = null; - - this.textarea.focus(); - } - - /** - * オートコンプリートする - */ - private complete({ type, value }) { - this.close(); - - const caret = this.textarea.selectionStart; - - if (type === 'user') { - const source = this.text; - - const before = source.substr(0, caret); - const trimmedBefore = before.substring(0, before.lastIndexOf('@')); - const after = source.substr(caret); - - const acct = value.host === null ? value.username : `${value.username}@${toASCII(value.host)}`; - - // 挿入 - this.text = `${trimmedBefore}@${acct} ${after}`; - - // キャレットを戻す - nextTick(() => { - this.textarea.focus(); - const pos = trimmedBefore.length + (acct.length + 2); - this.textarea.setSelectionRange(pos, pos); - }); - } else if (type === 'hashtag') { - const source = this.text; - - const before = source.substr(0, caret); - const trimmedBefore = before.substring(0, before.lastIndexOf('#')); - const after = source.substr(caret); - - // 挿入 - this.text = `${trimmedBefore}#${value} ${after}`; - - // キャレットを戻す - nextTick(() => { - this.textarea.focus(); - const pos = trimmedBefore.length + (value.length + 2); - this.textarea.setSelectionRange(pos, pos); - }); - } else if (type === 'emoji') { - const source = this.text; - - const before = source.substr(0, caret); - const trimmedBefore = before.substring(0, before.lastIndexOf(':')); - const after = source.substr(caret); - - // 挿入 - this.text = trimmedBefore + value + after; - - // キャレットを戻す - nextTick(() => { - this.textarea.focus(); - const pos = trimmedBefore.length + value.length; - this.textarea.setSelectionRange(pos, pos); - }); - } else if (type === 'mfmTag') { - const source = this.text; - - const before = source.substr(0, caret); - const trimmedBefore = before.substring(0, before.lastIndexOf('$')); - const after = source.substr(caret); - - // 挿入 - this.text = `${trimmedBefore}$[${value} ]${after}`; - - // キャレットを戻す - nextTick(() => { - this.textarea.focus(); - const pos = trimmedBefore.length + (value.length + 3); - this.textarea.setSelectionRange(pos, pos); - }); - } - } -} diff --git a/packages/client/src/scripts/check-word-mute.ts b/packages/client/src/scripts/check-word-mute.ts deleted file mode 100644 index 35d40a6e0..000000000 --- a/packages/client/src/scripts/check-word-mute.ts +++ /dev/null @@ -1,37 +0,0 @@ -export function checkWordMute(note: Record, me: Record | null | undefined, mutedWords: Array): boolean { - // 自分自身 - if (me && (note.userId === me.id)) return false; - - if (mutedWords.length > 0) { - const text = ((note.cw ?? '') + '\n' + (note.text ?? '')).trim(); - - if (text === '') return false; - - const matched = mutedWords.some(filter => { - if (Array.isArray(filter)) { - // Clean up - const filteredFilter = filter.filter(keyword => keyword !== ''); - if (filteredFilter.length === 0) return false; - - return filteredFilter.every(keyword => text.includes(keyword)); - } else { - // represents RegExp - const regexp = filter.match(/^\/(.+)\/(.*)$/); - - // This should never happen due to input sanitisation. - if (!regexp) return false; - - try { - return new RegExp(regexp[1], regexp[2]).test(text); - } catch (err) { - // This should never happen due to input sanitisation. - return false; - } - } - }); - - if (matched) return true; - } - - return false; -} diff --git a/packages/client/src/scripts/device-kind.ts b/packages/client/src/scripts/device-kind.ts deleted file mode 100644 index 544cac060..000000000 --- a/packages/client/src/scripts/device-kind.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defaultStore } from '@/store'; - -const ua = navigator.userAgent.toLowerCase(); -const isTablet = /ipad/.test(ua) || (/mobile|iphone|android/.test(ua) && window.innerWidth > 700); -const isSmartphone = !isTablet && /mobile|iphone|android/.test(ua); - -export const deviceKind = defaultStore.state.overridedDeviceKind ? defaultStore.state.overridedDeviceKind - : isSmartphone ? 'smartphone' - : isTablet ? 'tablet' - : 'desktop'; diff --git a/packages/client/src/scripts/emojilist.ts b/packages/client/src/scripts/emojilist.ts deleted file mode 100644 index 4ce63dc7e..000000000 --- a/packages/client/src/scripts/emojilist.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const unicodeEmojiCategories = ['face', 'people', 'animals_and_nature', 'food_and_drink', 'activity', 'travel_and_places', 'objects', 'symbols', 'flags'] as const; - -export type UnicodeEmojiDef = { - name: string; - keywords: string[]; - char: string; - category: typeof unicodeEmojiCategories[number]; -} - -// initial converted from https://github.com/muan/emojilib/commit/242fe68be86ed6536843b83f7e32f376468b38fb -import _emojilist from '../emojilist.json'; - -export const emojilist = _emojilist as UnicodeEmojiDef[]; diff --git a/packages/client/src/scripts/extract-mentions.ts b/packages/client/src/scripts/extract-mentions.ts deleted file mode 100644 index cc19b161a..000000000 --- a/packages/client/src/scripts/extract-mentions.ts +++ /dev/null @@ -1,11 +0,0 @@ -// test is located in test/extract-mentions - -import * as mfm from 'mfm-js'; - -export function extractMentions(nodes: mfm.MfmNode[]): mfm.MfmMention['props'][] { - // TODO: 重複を削除 - const mentionNodes = mfm.extract(nodes, (node) => node.type === 'mention'); - const mentions = mentionNodes.map(x => x.props); - - return mentions; -} diff --git a/packages/client/src/scripts/extract-url-from-mfm.ts b/packages/client/src/scripts/extract-url-from-mfm.ts deleted file mode 100644 index 34e3eb6c1..000000000 --- a/packages/client/src/scripts/extract-url-from-mfm.ts +++ /dev/null @@ -1,19 +0,0 @@ -import * as mfm from 'mfm-js'; -import { unique } from '@/scripts/array'; - -// unique without hash -// [ http://a/#1, http://a/#2, http://b/#3 ] => [ http://a/#1, http://b/#3 ] -const removeHash = (x: string) => x.replace(/#[^#]*$/, ''); - -export function extractUrlFromMfm(nodes: mfm.MfmNode[], respectSilentFlag = true): string[] { - const urlNodes = mfm.extract(nodes, (node) => { - return (node.type === 'url') || (node.type === 'link' && (!respectSilentFlag || !node.props.silent)); - }); - const urls: string[] = unique(urlNodes.map(x => x.props.url)); - - return urls.reduce((array, url) => { - const urlWithoutHash = removeHash(url); - if (!array.map(x => removeHash(x)).includes(urlWithoutHash)) array.push(url); - return array; - }, [] as string[]); -} diff --git a/packages/client/src/scripts/form.ts b/packages/client/src/scripts/form.ts deleted file mode 100644 index 7f321cc0a..000000000 --- a/packages/client/src/scripts/form.ts +++ /dev/null @@ -1,59 +0,0 @@ -export type FormItem = { - label?: string; - type: 'string'; - default: string | null; - hidden?: boolean; - multiline?: boolean; -} | { - label?: string; - type: 'number'; - default: number | null; - hidden?: boolean; - step?: number; -} | { - label?: string; - type: 'boolean'; - default: boolean | null; - hidden?: boolean; -} | { - label?: string; - type: 'enum'; - default: string | null; - hidden?: boolean; - enum: string[]; -} | { - label?: string; - type: 'radio'; - default: unknown | null; - hidden?: boolean; - options: { - label: string; - value: unknown; - }[]; -} | { - label?: string; - type: 'object'; - default: Record | null; - hidden: true; -} | { - label?: string; - type: 'array'; - default: unknown[] | null; - hidden: true; -}; - -export type Form = Record; - -type GetItemType = - Item['type'] extends 'string' ? string : - Item['type'] extends 'number' ? number : - Item['type'] extends 'boolean' ? boolean : - Item['type'] extends 'radio' ? unknown : - Item['type'] extends 'enum' ? string : - Item['type'] extends 'array' ? unknown[] : - Item['type'] extends 'object' ? Record - : never; - -export type GetFormResultType = { - [P in keyof F]: GetItemType; -}; diff --git a/packages/client/src/scripts/get-account-from-id.ts b/packages/client/src/scripts/get-account-from-id.ts deleted file mode 100644 index 1da897f17..000000000 --- a/packages/client/src/scripts/get-account-from-id.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { get } from '@/scripts/idb-proxy'; - -export async function getAccountFromId(id: string) { - const accounts = await get('accounts') as { token: string; id: string; }[]; - if (!accounts) console.log('Accounts are not recorded'); - return accounts.find(account => account.id === id); -} diff --git a/packages/client/src/scripts/get-note-menu.ts b/packages/client/src/scripts/get-note-menu.ts deleted file mode 100644 index a5cf98206..000000000 --- a/packages/client/src/scripts/get-note-menu.ts +++ /dev/null @@ -1,346 +0,0 @@ -import { defineAsyncComponent, Ref, inject } from 'vue'; -import * as misskey from 'misskey-js'; -import { pleaseLogin } from './please-login'; -import { $i } from '@/account'; -import { i18n } from '@/i18n'; -import { instance } from '@/instance'; -import * as os from '@/os'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { url } from '@/config'; -import { noteActions } from '@/store'; - -export function getNoteMenu(props: { - note: misskey.entities.Note; - menuButton: Ref; - translation: Ref; - translating: Ref; - isDeleted: Ref; - currentClipPage?: Ref; -}) { - const isRenote = ( - props.note.renote != null && - props.note.text == null && - props.note.fileIds.length === 0 && - props.note.poll == null - ); - - const appearNote = isRenote ? props.note.renote as misskey.entities.Note : props.note; - - function del(): void { - os.confirm({ - type: 'warning', - text: i18n.ts.noteDeleteConfirm, - }).then(({ canceled }) => { - if (canceled) return; - - os.api('notes/delete', { - noteId: appearNote.id, - }); - }); - } - - function delEdit(): void { - os.confirm({ - type: 'warning', - text: i18n.ts.deleteAndEditConfirm, - }).then(({ canceled }) => { - if (canceled) return; - - os.api('notes/delete', { - noteId: appearNote.id, - }); - - os.post({ initialNote: appearNote, renote: appearNote.renote, reply: appearNote.reply, channel: appearNote.channel }); - }); - } - - function toggleFavorite(favorite: boolean): void { - os.apiWithDialog(favorite ? 'notes/favorites/create' : 'notes/favorites/delete', { - noteId: appearNote.id, - }); - } - - function toggleWatch(watch: boolean): void { - os.apiWithDialog(watch ? 'notes/watching/create' : 'notes/watching/delete', { - noteId: appearNote.id, - }); - } - - function toggleThreadMute(mute: boolean): void { - os.apiWithDialog(mute ? 'notes/thread-muting/create' : 'notes/thread-muting/delete', { - noteId: appearNote.id, - }); - } - - function copyContent(): void { - copyToClipboard(appearNote.text); - os.success(); - } - - function copyLink(): void { - copyToClipboard(`${url}/notes/${appearNote.id}`); - os.success(); - } - - function togglePin(pin: boolean): void { - os.apiWithDialog(pin ? 'i/pin' : 'i/unpin', { - noteId: appearNote.id, - }, undefined, null, res => { - if (res.id === '72dab508-c64d-498f-8740-a8eec1ba385a') { - os.alert({ - type: 'error', - text: i18n.ts.pinLimitExceeded, - }); - } - }); - } - - async function clip(): Promise { - const clips = await os.api('clips/list'); - os.popupMenu([{ - icon: 'fas fa-plus', - text: i18n.ts.createNew, - action: async () => { - const { canceled, result } = await os.form(i18n.ts.createNewClip, { - name: { - type: 'string', - label: i18n.ts.name, - }, - description: { - type: 'string', - required: false, - multiline: true, - label: i18n.ts.description, - }, - isPublic: { - type: 'boolean', - label: i18n.ts.public, - default: false, - }, - }); - if (canceled) return; - - const clip = await os.apiWithDialog('clips/create', result); - - os.apiWithDialog('clips/add-note', { clipId: clip.id, noteId: appearNote.id }); - }, - }, null, ...clips.map(clip => ({ - text: clip.name, - action: () => { - os.promiseDialog( - os.api('clips/add-note', { clipId: clip.id, noteId: appearNote.id }), - null, - async (err) => { - if (err.id === '734806c4-542c-463a-9311-15c512803965') { - const confirm = await os.confirm({ - type: 'warning', - text: i18n.t('confirmToUnclipAlreadyClippedNote', { name: clip.name }), - }); - if (!confirm.canceled) { - os.apiWithDialog('clips/remove-note', { clipId: clip.id, noteId: appearNote.id }); - if (props.currentClipPage?.value.id === clip.id) props.isDeleted.value = true; - } - } else { - os.alert({ - type: 'error', - text: err.message + '\n' + err.id, - }); - } - }, - ); - }, - }))], props.menuButton.value, { - }).then(focus); - } - - async function unclip(): Promise { - os.apiWithDialog('clips/remove-note', { clipId: props.currentClipPage.value.id, noteId: appearNote.id }); - props.isDeleted.value = true; - } - - async function promote(): Promise { - const { canceled, result: days } = await os.inputNumber({ - title: i18n.ts.numberOfDays, - }); - - if (canceled) return; - - os.apiWithDialog('admin/promo/create', { - noteId: appearNote.id, - expiresAt: Date.now() + (86400000 * days), - }); - } - - function share(): void { - navigator.share({ - title: i18n.t('noteOf', { user: appearNote.user.name }), - text: appearNote.text, - url: `${url}/notes/${appearNote.id}`, - }); - } - - async function translate(): Promise { - if (props.translation.value != null) return; - props.translating.value = true; - const res = await os.api('notes/translate', { - noteId: appearNote.id, - targetLang: localStorage.getItem('lang') || navigator.language, - }); - props.translating.value = false; - props.translation.value = res; - } - - let menu; - if ($i) { - const statePromise = os.api('notes/state', { - noteId: appearNote.id, - }); - - menu = [ - ...( - props.currentClipPage?.value.userId === $i.id ? [{ - icon: 'fas fa-circle-minus', - text: i18n.ts.unclip, - danger: true, - action: unclip, - }, null] : [] - ), - { - icon: 'fas fa-copy', - text: i18n.ts.copyContent, - action: copyContent, - }, { - icon: 'fas fa-link', - text: i18n.ts.copyLink, - action: copyLink, - }, (appearNote.url || appearNote.uri) ? { - icon: 'fas fa-external-link-square-alt', - text: i18n.ts.showOnRemote, - action: () => { - window.open(appearNote.url || appearNote.uri, '_blank'); - }, - } : undefined, - { - icon: 'fas fa-share-alt', - text: i18n.ts.share, - action: share, - }, - instance.translatorAvailable ? { - icon: 'fas fa-language', - text: i18n.ts.translate, - action: translate, - } : undefined, - null, - statePromise.then(state => state.isFavorited ? { - icon: 'fas fa-star', - text: i18n.ts.unfavorite, - action: () => toggleFavorite(false), - } : { - icon: 'fas fa-star', - text: i18n.ts.favorite, - action: () => toggleFavorite(true), - }), - { - icon: 'fas fa-paperclip', - text: i18n.ts.clip, - action: () => clip(), - }, - (appearNote.userId !== $i.id) ? statePromise.then(state => state.isWatching ? { - icon: 'fas fa-eye-slash', - text: i18n.ts.unwatch, - action: () => toggleWatch(false), - } : { - icon: 'fas fa-eye', - text: i18n.ts.watch, - action: () => toggleWatch(true), - }) : undefined, - statePromise.then(state => state.isMutedThread ? { - icon: 'fas fa-comment-slash', - text: i18n.ts.unmuteThread, - action: () => toggleThreadMute(false), - } : { - icon: 'fas fa-comment-slash', - text: i18n.ts.muteThread, - action: () => toggleThreadMute(true), - }), - appearNote.userId === $i.id ? ($i.pinnedNoteIds || []).includes(appearNote.id) ? { - icon: 'fas fa-thumbtack', - text: i18n.ts.unpin, - action: () => togglePin(false), - } : { - icon: 'fas fa-thumbtack', - text: i18n.ts.pin, - action: () => togglePin(true), - } : undefined, - /* - ...($i.isModerator || $i.isAdmin ? [ - null, - { - icon: 'fas fa-bullhorn', - text: i18n.ts.promote, - action: promote - }] - : [] - ),*/ - ...(appearNote.userId !== $i.id ? [ - null, - { - icon: 'fas fa-exclamation-circle', - text: i18n.ts.reportAbuse, - action: () => { - const u = appearNote.url || appearNote.uri || `${url}/notes/${appearNote.id}`; - os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), { - user: appearNote.user, - initialComment: `Note: ${u}\n-----\n`, - }, {}, 'closed'); - }, - }] - : [] - ), - ...(appearNote.userId === $i.id || $i.isModerator || $i.isAdmin ? [ - null, - appearNote.userId === $i.id ? { - icon: 'fas fa-edit', - text: i18n.ts.deleteAndEdit, - action: delEdit, - } : undefined, - { - icon: 'fas fa-trash-alt', - text: i18n.ts.delete, - danger: true, - action: del, - }] - : [] - )] - .filter(x => x !== undefined); - } else { - menu = [{ - icon: 'fas fa-copy', - text: i18n.ts.copyContent, - action: copyContent, - }, { - icon: 'fas fa-link', - text: i18n.ts.copyLink, - action: copyLink, - }, (appearNote.url || appearNote.uri) ? { - icon: 'fas fa-external-link-square-alt', - text: i18n.ts.showOnRemote, - action: () => { - window.open(appearNote.url || appearNote.uri, '_blank'); - }, - } : undefined] - .filter(x => x !== undefined); - } - - if (noteActions.length > 0) { - menu = menu.concat([null, ...noteActions.map(action => ({ - icon: 'fas fa-plug', - text: action.title, - action: () => { - action.handler(appearNote); - }, - }))]); - } - - return menu; -} diff --git a/packages/client/src/scripts/get-note-summary.ts b/packages/client/src/scripts/get-note-summary.ts deleted file mode 100644 index d57e1c302..000000000 --- a/packages/client/src/scripts/get-note-summary.ts +++ /dev/null @@ -1,55 +0,0 @@ -import * as misskey from 'misskey-js'; -import { i18n } from '@/i18n'; - -/** - * 投稿を表す文字列を取得します。 - * @param {*} note (packされた)投稿 - */ -export const getNoteSummary = (note: misskey.entities.Note): string => { - if (note.deletedAt) { - return `(${i18n.ts.deletedNote})`; - } - - if (note.isHidden) { - return `(${i18n.ts.invisibleNote})`; - } - - let summary = ''; - - // 本文 - if (note.cw != null) { - summary += note.cw; - } else { - summary += note.text ? note.text : ''; - } - - // ファイルが添付されているとき - if ((note.files || []).length !== 0) { - summary += ` (${i18n.t('withNFiles', { n: note.files.length })})`; - } - - // 投票が添付されているとき - if (note.poll) { - summary += ` (${i18n.ts.poll})`; - } - - // 返信のとき - if (note.replyId) { - if (note.reply) { - summary += `\n\nRE: ${getNoteSummary(note.reply)}`; - } else { - summary += '\n\nRE: ...'; - } - } - - // Renoteのとき - if (note.renoteId) { - if (note.renote) { - summary += `\n\nRN: ${getNoteSummary(note.renote)}`; - } else { - summary += '\n\nRN: ...'; - } - } - - return summary.trim(); -}; diff --git a/packages/client/src/scripts/get-static-image-url.ts b/packages/client/src/scripts/get-static-image-url.ts deleted file mode 100644 index e9a3e87cc..000000000 --- a/packages/client/src/scripts/get-static-image-url.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { url as instanceUrl } from '@/config'; -import * as url from '@/scripts/url'; - -export function getStaticImageUrl(baseUrl: string): string { - const u = new URL(baseUrl); - if (u.href.startsWith(`${instanceUrl}/proxy/`)) { - // もう既にproxyっぽそうだったらsearchParams付けるだけ - u.searchParams.set('static', '1'); - return u.href; - } - const dummy = `${u.host}${u.pathname}`; // 拡張子がないとキャッシュしてくれないCDNがあるので - return `${instanceUrl}/proxy/${dummy}?${url.query({ - url: u.href, - static: '1' - })}`; -} diff --git a/packages/client/src/scripts/get-user-menu.ts b/packages/client/src/scripts/get-user-menu.ts deleted file mode 100644 index 4a5a2d42f..000000000 --- a/packages/client/src/scripts/get-user-menu.ts +++ /dev/null @@ -1,247 +0,0 @@ -import * as Acct from 'misskey-js/built/acct'; -import { defineAsyncComponent } from 'vue'; -import { i18n } from '@/i18n'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { host } from '@/config'; -import * as os from '@/os'; -import { userActions } from '@/store'; -import { $i, iAmModerator } from '@/account'; -import { mainRouter } from '@/router'; -import { Router } from '@/nirax'; - -export function getUserMenu(user, router: Router = mainRouter) { - const meId = $i ? $i.id : null; - - async function pushList() { - const t = i18n.ts.selectList; // なぜか後で参照すると null になるので最初にメモリに確保しておく - const lists = await os.api('users/lists/list'); - if (lists.length === 0) { - os.alert({ - type: 'error', - text: i18n.ts.youHaveNoLists, - }); - return; - } - const { canceled, result: listId } = await os.select({ - title: t, - items: lists.map(list => ({ - value: list.id, text: list.name, - })), - }); - if (canceled) return; - os.apiWithDialog('users/lists/push', { - listId: listId, - userId: user.id, - }); - } - - async function inviteGroup() { - const groups = await os.api('users/groups/owned'); - if (groups.length === 0) { - os.alert({ - type: 'error', - text: i18n.ts.youHaveNoGroups, - }); - return; - } - const { canceled, result: groupId } = await os.select({ - title: i18n.ts.group, - items: groups.map(group => ({ - value: group.id, text: group.name, - })), - }); - if (canceled) return; - os.apiWithDialog('users/groups/invite', { - groupId: groupId, - userId: user.id, - }); - } - - async function toggleMute() { - if (user.isMuted) { - os.apiWithDialog('mute/delete', { - userId: user.id, - }).then(() => { - user.isMuted = false; - }); - } else { - const { canceled, result: period } = await os.select({ - title: i18n.ts.mutePeriod, - items: [{ - value: 'indefinitely', text: i18n.ts.indefinitely, - }, { - value: 'tenMinutes', text: i18n.ts.tenMinutes, - }, { - value: 'oneHour', text: i18n.ts.oneHour, - }, { - value: 'oneDay', text: i18n.ts.oneDay, - }, { - value: 'oneWeek', text: i18n.ts.oneWeek, - }], - default: 'indefinitely', - }); - if (canceled) return; - - const expiresAt = period === 'indefinitely' ? null - : period === 'tenMinutes' ? Date.now() + (1000 * 60 * 10) - : period === 'oneHour' ? Date.now() + (1000 * 60 * 60) - : period === 'oneDay' ? Date.now() + (1000 * 60 * 60 * 24) - : period === 'oneWeek' ? Date.now() + (1000 * 60 * 60 * 24 * 7) - : null; - - os.apiWithDialog('mute/create', { - userId: user.id, - expiresAt, - }).then(() => { - user.isMuted = true; - }); - } - } - - async function toggleBlock() { - if (!await getConfirmed(user.isBlocking ? i18n.ts.unblockConfirm : i18n.ts.blockConfirm)) return; - - os.apiWithDialog(user.isBlocking ? 'blocking/delete' : 'blocking/create', { - userId: user.id, - }).then(() => { - user.isBlocking = !user.isBlocking; - }); - } - - async function toggleSilence() { - if (!await getConfirmed(i18n.t(user.isSilenced ? 'unsilenceConfirm' : 'silenceConfirm'))) return; - - os.apiWithDialog(user.isSilenced ? 'admin/unsilence-user' : 'admin/silence-user', { - userId: user.id, - }).then(() => { - user.isSilenced = !user.isSilenced; - }); - } - - async function toggleSuspend() { - if (!await getConfirmed(i18n.t(user.isSuspended ? 'unsuspendConfirm' : 'suspendConfirm'))) return; - - os.apiWithDialog(user.isSuspended ? 'admin/unsuspend-user' : 'admin/suspend-user', { - userId: user.id, - }).then(() => { - user.isSuspended = !user.isSuspended; - }); - } - - function reportAbuse() { - os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), { - user: user, - }, {}, 'closed'); - } - - async function getConfirmed(text: string): Promise { - const confirm = await os.confirm({ - type: 'warning', - title: 'confirm', - text, - }); - - return !confirm.canceled; - } - - async function invalidateFollow() { - os.apiWithDialog('following/invalidate', { - userId: user.id, - }).then(() => { - user.isFollowed = !user.isFollowed; - }); - } - - let menu = [{ - icon: 'fas fa-at', - text: i18n.ts.copyUsername, - action: () => { - copyToClipboard(`@${user.username}@${user.host || host}`); - }, - }, { - icon: 'fas fa-info-circle', - text: i18n.ts.info, - action: () => { - router.push(`/user-info/${user.id}`); - }, - }, { - icon: 'fas fa-envelope', - text: i18n.ts.sendMessage, - action: () => { - os.post({ specified: user }); - }, - }, meId !== user.id ? { - type: 'link', - icon: 'fas fa-comments', - text: i18n.ts.startMessaging, - to: '/my/messaging/' + Acct.toString(user), - } : undefined, null, { - icon: 'fas fa-list-ul', - text: i18n.ts.addToList, - action: pushList, - }, meId !== user.id ? { - icon: 'fas fa-users', - text: i18n.ts.inviteToGroup, - action: inviteGroup, - } : undefined] as any; - - if ($i && meId !== user.id) { - menu = menu.concat([null, { - icon: user.isMuted ? 'fas fa-eye' : 'fas fa-eye-slash', - text: user.isMuted ? i18n.ts.unmute : i18n.ts.mute, - action: toggleMute, - }, { - icon: 'fas fa-ban', - text: user.isBlocking ? i18n.ts.unblock : i18n.ts.block, - action: toggleBlock, - }]); - - if (user.isFollowed) { - menu = menu.concat([{ - icon: 'fas fa-unlink', - text: i18n.ts.breakFollow, - action: invalidateFollow, - }]); - } - - menu = menu.concat([null, { - icon: 'fas fa-exclamation-circle', - text: i18n.ts.reportAbuse, - action: reportAbuse, - }]); - - if (iAmModerator) { - menu = menu.concat([null, { - icon: 'fas fa-microphone-slash', - text: user.isSilenced ? i18n.ts.unsilence : i18n.ts.silence, - action: toggleSilence, - }, { - icon: 'fas fa-snowflake', - text: user.isSuspended ? i18n.ts.unsuspend : i18n.ts.suspend, - action: toggleSuspend, - }]); - } - } - - if ($i && meId === user.id) { - menu = menu.concat([null, { - icon: 'fas fa-pencil-alt', - text: i18n.ts.editProfile, - action: () => { - router.push('/settings/profile'); - }, - }]); - } - - if (userActions.length > 0) { - menu = menu.concat([null, ...userActions.map(action => ({ - icon: 'fas fa-plug', - text: action.title, - action: () => { - action.handler(user); - }, - }))]); - } - - return menu; -} diff --git a/packages/client/src/scripts/get-user-name.ts b/packages/client/src/scripts/get-user-name.ts deleted file mode 100644 index d499ea020..000000000 --- a/packages/client/src/scripts/get-user-name.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function(user: { name?: string | null, username: string }): string { - return user.name || user.username; -} diff --git a/packages/client/src/scripts/hotkey.ts b/packages/client/src/scripts/hotkey.ts deleted file mode 100644 index bd8c3b6ca..000000000 --- a/packages/client/src/scripts/hotkey.ts +++ /dev/null @@ -1,90 +0,0 @@ -import keyCode from './keycode'; - -type Callback = (ev: KeyboardEvent) => void; - -type Keymap = Record; - -type Pattern = { - which: string[]; - ctrl?: boolean; - shift?: boolean; - alt?: boolean; -}; - -type Action = { - patterns: Pattern[]; - callback: Callback; - allowRepeat: boolean; -}; - -const parseKeymap = (keymap: Keymap) => Object.entries(keymap).map(([patterns, callback]): Action => { - const result = { - patterns: [], - callback, - allowRepeat: true - } as Action; - - if (patterns.match(/^\(.*\)$/) !== null) { - result.allowRepeat = false; - patterns = patterns.slice(1, -1); - } - - result.patterns = patterns.split('|').map(part => { - const pattern = { - which: [], - ctrl: false, - alt: false, - shift: false - } as Pattern; - - const keys = part.trim().split('+').map(x => x.trim().toLowerCase()); - for (const key of keys) { - switch (key) { - case 'ctrl': pattern.ctrl = true; break; - case 'alt': pattern.alt = true; break; - case 'shift': pattern.shift = true; break; - default: pattern.which = keyCode(key).map(k => k.toLowerCase()); - } - } - - return pattern; - }); - - return result; -}); - -const ignoreElemens = ['input', 'textarea']; - -function match(ev: KeyboardEvent, patterns: Action['patterns']): boolean { - const key = ev.code.toLowerCase(); - return patterns.some(pattern => pattern.which.includes(key) && - pattern.ctrl === ev.ctrlKey && - pattern.shift === ev.shiftKey && - pattern.alt === ev.altKey && - !ev.metaKey - ); -} - -export const makeHotkey = (keymap: Keymap) => { - const actions = parseKeymap(keymap); - - return (ev: KeyboardEvent) => { - if (document.activeElement) { - if (ignoreElemens.some(el => document.activeElement!.matches(el))) return; - if (document.activeElement.attributes['contenteditable']) return; - } - - for (const action of actions) { - const matched = match(ev, action.patterns); - - if (matched) { - if (!action.allowRepeat && ev.repeat) return; - - ev.preventDefault(); - ev.stopPropagation(); - action.callback(ev); - break; - } - } - }; -}; diff --git a/packages/client/src/scripts/hpml/block.ts b/packages/client/src/scripts/hpml/block.ts deleted file mode 100644 index 804c5c112..000000000 --- a/packages/client/src/scripts/hpml/block.ts +++ /dev/null @@ -1,109 +0,0 @@ -// blocks - -export type BlockBase = { - id: string; - type: string; -}; - -export type TextBlock = BlockBase & { - type: 'text'; - text: string; -}; - -export type SectionBlock = BlockBase & { - type: 'section'; - title: string; - children: (Block | VarBlock)[]; -}; - -export type ImageBlock = BlockBase & { - type: 'image'; - fileId: string | null; -}; - -export type ButtonBlock = BlockBase & { - type: 'button'; - text: any; - primary: boolean; - action: string; - content: string; - event: string; - message: string; - var: string; - fn: string; -}; - -export type IfBlock = BlockBase & { - type: 'if'; - var: string; - children: Block[]; -}; - -export type TextareaBlock = BlockBase & { - type: 'textarea'; - text: string; -}; - -export type PostBlock = BlockBase & { - type: 'post'; - text: string; - attachCanvasImage: boolean; - canvasId: string; -}; - -export type CanvasBlock = BlockBase & { - type: 'canvas'; - name: string; // canvas id - width: number; - height: number; -}; - -export type NoteBlock = BlockBase & { - type: 'note'; - detailed: boolean; - note: string | null; -}; - -export type Block = - TextBlock | SectionBlock | ImageBlock | ButtonBlock | IfBlock | TextareaBlock | PostBlock | CanvasBlock | NoteBlock | VarBlock; - -// variable blocks - -export type VarBlockBase = BlockBase & { - name: string; -}; - -export type NumberInputVarBlock = VarBlockBase & { - type: 'numberInput'; - text: string; -}; - -export type TextInputVarBlock = VarBlockBase & { - type: 'textInput'; - text: string; -}; - -export type SwitchVarBlock = VarBlockBase & { - type: 'switch'; - text: string; -}; - -export type RadioButtonVarBlock = VarBlockBase & { - type: 'radioButton'; - title: string; - values: string[]; -}; - -export type CounterVarBlock = VarBlockBase & { - type: 'counter'; - text: string; - inc: number; -}; - -export type VarBlock = - NumberInputVarBlock | TextInputVarBlock | SwitchVarBlock | RadioButtonVarBlock | CounterVarBlock; - -const varBlock = ['numberInput', 'textInput', 'switch', 'radioButton', 'counter']; -export function isVarBlock(block: Block): block is VarBlock { - return varBlock.includes(block.type); -} diff --git a/packages/client/src/scripts/hpml/evaluator.ts b/packages/client/src/scripts/hpml/evaluator.ts deleted file mode 100644 index 10023edff..000000000 --- a/packages/client/src/scripts/hpml/evaluator.ts +++ /dev/null @@ -1,232 +0,0 @@ -import autobind from 'autobind-decorator'; -import { PageVar, envVarsDef, Fn, HpmlScope, HpmlError } from '.'; -import { version } from '@/config'; -import { AiScript, utils, values } from '@syuilo/aiscript'; -import { createAiScriptEnv } from '../aiscript/api'; -import { collectPageVars } from '../collect-page-vars'; -import { initHpmlLib, initAiLib } from './lib'; -import * as os from '@/os'; -import { markRaw, ref, Ref, unref } from 'vue'; -import { Expr, isLiteralValue, Variable } from './expr'; - -/** - * Hpml evaluator - */ -export class Hpml { - private variables: Variable[]; - private pageVars: PageVar[]; - private envVars: Record; - public aiscript?: AiScript; - public pageVarUpdatedCallback?: values.VFn; - public canvases: Record = {}; - public vars: Ref> = ref({}); - public page: Record; - - private opts: { - randomSeed: string; visitor?: any; url?: string; - enableAiScript: boolean; - }; - - constructor(page: Hpml['page'], opts: Hpml['opts']) { - this.page = page; - this.variables = this.page.variables; - this.pageVars = collectPageVars(this.page.content); - this.opts = opts; - - if (this.opts.enableAiScript) { - this.aiscript = markRaw(new AiScript({ ...createAiScriptEnv({ - storageKey: 'pages:' + this.page.id - }), ...initAiLib(this) }, { - in: (q) => { - return new Promise(ok => { - os.inputText({ - title: q, - }).then(({ canceled, result: a }) => { - ok(a); - }); - }); - }, - out: (value) => { - console.log(value); - }, - log: (type, params) => { - }, - })); - - this.aiscript.scope.opts.onUpdated = (name, value) => { - this.eval(); - }; - } - - const date = new Date(); - - this.envVars = { - AI: 'kawaii', - VERSION: version, - URL: this.page ? `${opts.url}/@${this.page.user.username}/pages/${this.page.name}` : '', - LOGIN: opts.visitor != null, - NAME: opts.visitor ? opts.visitor.name || opts.visitor.username : '', - USERNAME: opts.visitor ? opts.visitor.username : '', - USERID: opts.visitor ? opts.visitor.id : '', - NOTES_COUNT: opts.visitor ? opts.visitor.notesCount : 0, - FOLLOWERS_COUNT: opts.visitor ? opts.visitor.followersCount : 0, - FOLLOWING_COUNT: opts.visitor ? opts.visitor.followingCount : 0, - IS_CAT: opts.visitor ? opts.visitor.isCat : false, - SEED: opts.randomSeed ? opts.randomSeed : '', - YMD: `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`, - AISCRIPT_DISABLED: !this.opts.enableAiScript, - NULL: null - }; - - this.eval(); - } - - @autobind - public eval() { - try { - this.vars.value = this.evaluateVars(); - } catch (err) { - //this.onError(e); - } - } - - @autobind - public interpolate(str: string) { - if (str == null) return null; - return str.replace(/{(.+?)}/g, match => { - const v = unref(this.vars)[match.slice(1, -1).trim()]; - return v == null ? 'NULL' : v.toString(); - }); - } - - @autobind - public callAiScript(fn: string) { - try { - if (this.aiscript) this.aiscript.execFn(this.aiscript.scope.get(fn), []); - } catch (err) {} - } - - @autobind - public registerCanvas(id: string, canvas: any) { - this.canvases[id] = canvas; - } - - @autobind - public updatePageVar(name: string, value: any) { - const pageVar = this.pageVars.find(v => v.name === name); - if (pageVar !== undefined) { - pageVar.value = value; - if (this.pageVarUpdatedCallback) { - if (this.aiscript) this.aiscript.execFn(this.pageVarUpdatedCallback, [values.STR(name), utils.jsToVal(value)]); - } - } else { - throw new HpmlError(`No such page var '${name}'`); - } - } - - @autobind - public updateRandomSeed(seed: string) { - this.opts.randomSeed = seed; - this.envVars.SEED = seed; - } - - @autobind - private _interpolateScope(str: string, scope: HpmlScope) { - return str.replace(/{(.+?)}/g, match => { - const v = scope.getState(match.slice(1, -1).trim()); - return v == null ? 'NULL' : v.toString(); - }); - } - - @autobind - public evaluateVars(): Record { - const values: Record = {}; - - for (const [k, v] of Object.entries(this.envVars)) { - values[k] = v; - } - - for (const v of this.pageVars) { - values[v.name] = v.value; - } - - for (const v of this.variables) { - values[v.name] = this.evaluate(v, new HpmlScope([values])); - } - - return values; - } - - @autobind - private evaluate(expr: Expr, scope: HpmlScope): any { - if (isLiteralValue(expr)) { - if (expr.type === null) { - return null; - } - - if (expr.type === 'number') { - return parseInt((expr.value as any), 10); - } - - if (expr.type === 'text' || expr.type === 'multiLineText') { - return this._interpolateScope(expr.value || '', scope); - } - - if (expr.type === 'textList') { - return this._interpolateScope(expr.value || '', scope).trim().split('\n'); - } - - if (expr.type === 'ref') { - return scope.getState(expr.value); - } - - if (expr.type === 'aiScriptVar') { - if (this.aiscript) { - try { - return utils.valToJs(this.aiscript.scope.get(expr.value)); - } catch (err) { - return null; - } - } else { - return null; - } - } - - // Define user function - if (expr.type === 'fn') { - return { - slots: expr.value.slots.map(x => x.name), - exec: (slotArg: Record) => { - return this.evaluate(expr.value.expression, scope.createChildScope(slotArg, expr.id)); - } - } as Fn; - } - return; - } - - // Call user function - if (expr.type.startsWith('fn:')) { - const fnName = expr.type.split(':')[1]; - const fn = scope.getState(fnName); - const args = {} as Record; - for (let i = 0; i < fn.slots.length; i++) { - const name = fn.slots[i]; - args[name] = this.evaluate(expr.args[i], scope); - } - return fn.exec(args); - } - - if (expr.args === undefined) return null; - - const funcs = initHpmlLib(expr, scope, this.opts.randomSeed, this.opts.visitor); - - // Call function - const fnName = expr.type; - const fn = (funcs as any)[fnName]; - if (fn == null) { - throw new HpmlError(`No such function '${fnName}'`); - } else { - return fn(...expr.args.map(x => this.evaluate(x, scope))); - } - } -} diff --git a/packages/client/src/scripts/hpml/expr.ts b/packages/client/src/scripts/hpml/expr.ts deleted file mode 100644 index 18c7c2a14..000000000 --- a/packages/client/src/scripts/hpml/expr.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { literalDefs, Type } from '.'; - -export type ExprBase = { - id: string; -}; - -// value - -export type EmptyValue = ExprBase & { - type: null; - value: null; -}; - -export type TextValue = ExprBase & { - type: 'text'; - value: string; -}; - -export type MultiLineTextValue = ExprBase & { - type: 'multiLineText'; - value: string; -}; - -export type TextListValue = ExprBase & { - type: 'textList'; - value: string; -}; - -export type NumberValue = ExprBase & { - type: 'number'; - value: number; -}; - -export type RefValue = ExprBase & { - type: 'ref'; - value: string; // value is variable name -}; - -export type AiScriptRefValue = ExprBase & { - type: 'aiScriptVar'; - value: string; // value is variable name -}; - -export type UserFnValue = ExprBase & { - type: 'fn'; - value: UserFnInnerValue; -}; -type UserFnInnerValue = { - slots: { - name: string; - type: Type; - }[]; - expression: Expr; -}; - -export type Value = - EmptyValue | TextValue | MultiLineTextValue | TextListValue | NumberValue | RefValue | AiScriptRefValue | UserFnValue; - -export function isLiteralValue(expr: Expr): expr is Value { - if (expr.type == null) return true; - if (literalDefs[expr.type]) return true; - return false; -} - -// call function - -export type CallFn = ExprBase & { // "fn:hoge" or string - type: string; - args: Expr[]; - value: null; -}; - -// variable -export type Variable = (Value | CallFn) & { - name: string; -}; - -// expression -export type Expr = Variable | Value | CallFn; diff --git a/packages/client/src/scripts/hpml/index.ts b/packages/client/src/scripts/hpml/index.ts deleted file mode 100644 index 7cf88d596..000000000 --- a/packages/client/src/scripts/hpml/index.ts +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Hpml - */ - -import autobind from 'autobind-decorator'; -import { Hpml } from './evaluator'; -import { funcDefs } from './lib'; - -export type Fn = { - slots: string[]; - exec: (args: Record) => ReturnType; -}; - -export type Type = 'string' | 'number' | 'boolean' | 'stringArray' | null; - -export const literalDefs: Record = { - text: { out: 'string', category: 'value', icon: 'fas fa-quote-right', }, - multiLineText: { out: 'string', category: 'value', icon: 'fas fa-align-left', }, - textList: { out: 'stringArray', category: 'value', icon: 'fas fa-list', }, - number: { out: 'number', category: 'value', icon: 'fas fa-sort-numeric-up', }, - ref: { out: null, category: 'value', icon: 'fas fa-magic', }, - aiScriptVar: { out: null, category: 'value', icon: 'fas fa-magic', }, - fn: { out: 'function', category: 'value', icon: 'fas fa-square-root-alt', }, -}; - -export const blockDefs = [ - ...Object.entries(literalDefs).map(([k, v]) => ({ - type: k, out: v.out, category: v.category, icon: v.icon - })), - ...Object.entries(funcDefs).map(([k, v]) => ({ - type: k, out: v.out, category: v.category, icon: v.icon - })) -]; - -export type PageVar = { name: string; value: any; type: Type; }; - -export const envVarsDef: Record = { - AI: 'string', - URL: 'string', - VERSION: 'string', - LOGIN: 'boolean', - NAME: 'string', - USERNAME: 'string', - USERID: 'string', - NOTES_COUNT: 'number', - FOLLOWERS_COUNT: 'number', - FOLLOWING_COUNT: 'number', - IS_CAT: 'boolean', - SEED: null, - YMD: 'string', - AISCRIPT_DISABLED: 'boolean', - NULL: null, -}; - -export class HpmlScope { - private layerdStates: Record[]; - public name: string; - - constructor(layerdStates: HpmlScope['layerdStates'], name?: HpmlScope['name']) { - this.layerdStates = layerdStates; - this.name = name || 'anonymous'; - } - - @autobind - public createChildScope(states: Record, name?: HpmlScope['name']): HpmlScope { - const layer = [states, ...this.layerdStates]; - return new HpmlScope(layer, name); - } - - /** - * 指定した名前の変数の値を取得します - * @param name 変数名 - */ - @autobind - public getState(name: string): any { - for (const later of this.layerdStates) { - const state = later[name]; - if (state !== undefined) { - return state; - } - } - - throw new HpmlError( - `No such variable '${name}' in scope '${this.name}'`, { - scope: this.layerdStates - }); - } -} - -export class HpmlError extends Error { - public info?: any; - - constructor(message: string, info?: any) { - super(message); - - this.info = info; - - // Maintains proper stack trace for where our error was thrown (only available on V8) - if (Error.captureStackTrace) { - Error.captureStackTrace(this, HpmlError); - } - } -} diff --git a/packages/client/src/scripts/hpml/lib.ts b/packages/client/src/scripts/hpml/lib.ts deleted file mode 100644 index cab467a92..000000000 --- a/packages/client/src/scripts/hpml/lib.ts +++ /dev/null @@ -1,247 +0,0 @@ -import tinycolor from 'tinycolor2'; -import { Hpml } from './evaluator'; -import { values, utils } from '@syuilo/aiscript'; -import { Fn, HpmlScope } from '.'; -import { Expr } from './expr'; -import seedrandom from 'seedrandom'; - -/* TODO: https://www.chartjs.org/docs/latest/configuration/canvas-background.html#color -// https://stackoverflow.com/questions/38493564/chart-area-background-color-chartjs -Chart.pluginService.register({ - beforeDraw: (chart, easing) => { - if (chart.config.options.chartArea && chart.config.options.chartArea.backgroundColor) { - const ctx = chart.chart.ctx; - ctx.save(); - ctx.fillStyle = chart.config.options.chartArea.backgroundColor; - ctx.fillRect(0, 0, chart.chart.width, chart.chart.height); - ctx.restore(); - } - } -}); -*/ - -export function initAiLib(hpml: Hpml) { - return { - 'MkPages:updated': values.FN_NATIVE(([callback]) => { - hpml.pageVarUpdatedCallback = (callback as values.VFn); - }), - 'MkPages:get_canvas': values.FN_NATIVE(([id]) => { - utils.assertString(id); - const canvas = hpml.canvases[id.value]; - const ctx = canvas.getContext('2d'); - return values.OBJ(new Map([ - ['clear_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.clearRect(x.value, y.value, width.value, height.value); })], - ['fill_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.fillRect(x.value, y.value, width.value, height.value); })], - ['stroke_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.strokeRect(x.value, y.value, width.value, height.value); })], - ['fill_text', values.FN_NATIVE(([text, x, y, width]) => { ctx.fillText(text.value, x.value, y.value, width ? width.value : undefined); })], - ['stroke_text', values.FN_NATIVE(([text, x, y, width]) => { ctx.strokeText(text.value, x.value, y.value, width ? width.value : undefined); })], - ['set_line_width', values.FN_NATIVE(([width]) => { ctx.lineWidth = width.value; })], - ['set_font', values.FN_NATIVE(([font]) => { ctx.font = font.value; })], - ['set_fill_style', values.FN_NATIVE(([style]) => { ctx.fillStyle = style.value; })], - ['set_stroke_style', values.FN_NATIVE(([style]) => { ctx.strokeStyle = style.value; })], - ['begin_path', values.FN_NATIVE(() => { ctx.beginPath(); })], - ['close_path', values.FN_NATIVE(() => { ctx.closePath(); })], - ['move_to', values.FN_NATIVE(([x, y]) => { ctx.moveTo(x.value, y.value); })], - ['line_to', values.FN_NATIVE(([x, y]) => { ctx.lineTo(x.value, y.value); })], - ['arc', values.FN_NATIVE(([x, y, radius, startAngle, endAngle]) => { ctx.arc(x.value, y.value, radius.value, startAngle.value, endAngle.value); })], - ['rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.rect(x.value, y.value, width.value, height.value); })], - ['fill', values.FN_NATIVE(() => { ctx.fill(); })], - ['stroke', values.FN_NATIVE(() => { ctx.stroke(); })], - ])); - }), - 'MkPages:chart': values.FN_NATIVE(([id, opts]) => { - /* TODO - utils.assertString(id); - utils.assertObject(opts); - const canvas = hpml.canvases[id.value]; - const color = getComputedStyle(document.documentElement).getPropertyValue('--accent'); - Chart.defaults.color = '#555'; - const chart = new Chart(canvas, { - type: opts.value.get('type').value, - data: { - labels: opts.value.get('labels').value.map(x => x.value), - datasets: opts.value.get('datasets').value.map(x => ({ - label: x.value.has('label') ? x.value.get('label').value : '', - data: x.value.get('data').value.map(x => x.value), - pointRadius: 0, - lineTension: 0, - borderWidth: 2, - borderColor: x.value.has('color') ? x.value.get('color') : color, - backgroundColor: tinycolor(x.value.has('color') ? x.value.get('color') : color).setAlpha(0.1).toRgbString(), - })) - }, - options: { - responsive: false, - devicePixelRatio: 1.5, - title: { - display: opts.value.has('title'), - text: opts.value.has('title') ? opts.value.get('title').value : '', - fontSize: 14, - }, - layout: { - padding: { - left: 32, - right: 32, - top: opts.value.has('title') ? 16 : 32, - bottom: 16 - } - }, - legend: { - display: opts.value.get('datasets').value.filter(x => x.value.has('label') && x.value.get('label').value).length === 0 ? false : true, - position: 'bottom', - labels: { - boxWidth: 16, - } - }, - tooltips: { - enabled: false, - }, - chartArea: { - backgroundColor: '#fff' - }, - ...(opts.value.get('type').value === 'radar' ? { - scale: { - ticks: { - display: opts.value.has('show_tick_label') ? opts.value.get('show_tick_label').value : false, - min: opts.value.has('min') ? opts.value.get('min').value : undefined, - max: opts.value.has('max') ? opts.value.get('max').value : undefined, - maxTicksLimit: 8, - }, - pointLabels: { - fontSize: 12 - } - } - } : { - scales: { - yAxes: [{ - ticks: { - display: opts.value.has('show_tick_label') ? opts.value.get('show_tick_label').value : true, - min: opts.value.has('min') ? opts.value.get('min').value : undefined, - max: opts.value.has('max') ? opts.value.get('max').value : undefined, - } - }] - } - }) - } - }); - */ - }), - }; -} - -export const funcDefs: Record = { - if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: 'fas fa-share-alt' }, - for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'fas fa-recycle' }, - not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' }, - or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' }, - and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' }, - add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-plus' }, - subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-minus' }, - multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-times' }, - divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' }, - mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' }, - round: { in: ['number'], out: 'number', category: 'operation', icon: 'fas fa-calculator' }, - eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-equals' }, - notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-not-equal' }, - gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than' }, - lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than' }, - gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than-equal' }, - ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than-equal' }, - strLen: { in: ['string'], out: 'number', category: 'text', icon: 'fas fa-quote-right' }, - strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: 'fas fa-quote-right' }, - strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' }, - strReverse: { in: ['string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' }, - join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: 'fas fa-quote-right' }, - stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'fas fa-exchange-alt' }, - numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'fas fa-exchange-alt' }, - splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'fas fa-exchange-alt' }, - pick: { in: [null, 'number'], out: null, category: 'list', icon: 'fas fa-indent' }, - listLen: { in: [null], out: 'number', category: 'list', icon: 'fas fa-indent' }, - rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' }, - dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' }, - seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' }, - random: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' }, - dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' }, - seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' }, - randomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' }, - dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' }, - seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'fas fa-dice' }, - DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'fas fa-dice' }, // dailyRandomPickWithProbabilityMapping -}; - -export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, visitor?: any) { - const date = new Date(); - const day = `${visitor ? visitor.id : ''} ${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`; - - // SHOULD be fine to ignore since it's intended + function shape isn't defined - // eslint-disable-next-line @typescript-eslint/ban-types - const funcs: Record = { - not: (a: boolean) => !a, - or: (a: boolean, b: boolean) => a || b, - and: (a: boolean, b: boolean) => a && b, - eq: (a: any, b: any) => a === b, - notEq: (a: any, b: any) => a !== b, - gt: (a: number, b: number) => a > b, - lt: (a: number, b: number) => a < b, - gtEq: (a: number, b: number) => a >= b, - ltEq: (a: number, b: number) => a <= b, - if: (bool: boolean, a: any, b: any) => bool ? a : b, - for: (times: number, fn: Fn) => { - const result: any[] = []; - for (let i = 0; i < times; i++) { - result.push(fn.exec({ - [fn.slots[0]]: i + 1, - })); - } - return result; - }, - add: (a: number, b: number) => a + b, - subtract: (a: number, b: number) => a - b, - multiply: (a: number, b: number) => a * b, - divide: (a: number, b: number) => a / b, - mod: (a: number, b: number) => a % b, - round: (a: number) => Math.round(a), - strLen: (a: string) => a.length, - strPick: (a: string, b: number) => a[b - 1], - strReplace: (a: string, b: string, c: string) => a.split(b).join(c), - strReverse: (a: string) => a.split('').reverse().join(''), - join: (texts: string[], separator: string) => texts.join(separator || ''), - stringToNumber: (a: string) => parseInt(a), - numberToString: (a: number) => a.toString(), - splitStrByLine: (a: string) => a.split('\n'), - pick: (list: any[], i: number) => list[i - 1], - listLen: (list: any[]) => list.length, - random: (probability: number) => Math.floor(seedrandom(`${randomSeed}:${expr.id}`)() * 100) < probability, - rannum: (min: number, max: number) => min + Math.floor(seedrandom(`${randomSeed}:${expr.id}`)() * (max - min + 1)), - randomPick: (list: any[]) => list[Math.floor(seedrandom(`${randomSeed}:${expr.id}`)() * list.length)], - dailyRandom: (probability: number) => Math.floor(seedrandom(`${day}:${expr.id}`)() * 100) < probability, - dailyRannum: (min: number, max: number) => min + Math.floor(seedrandom(`${day}:${expr.id}`)() * (max - min + 1)), - dailyRandomPick: (list: any[]) => list[Math.floor(seedrandom(`${day}:${expr.id}`)() * list.length)], - seedRandom: (seed: any, probability: number) => Math.floor(seedrandom(seed)() * 100) < probability, - seedRannum: (seed: any, min: number, max: number) => min + Math.floor(seedrandom(seed)() * (max - min + 1)), - seedRandomPick: (seed: any, list: any[]) => list[Math.floor(seedrandom(seed)() * list.length)], - DRPWPM: (list: string[]) => { - const xs: any[] = []; - let totalFactor = 0; - for (const x of list) { - const parts = x.split(' '); - const factor = parseInt(parts.pop()!, 10); - const text = parts.join(' '); - totalFactor += factor; - xs.push({ factor, text }); - } - const r = seedrandom(`${day}:${expr.id}`)() * totalFactor; - let stackedFactor = 0; - for (const x of xs) { - if (r >= stackedFactor && r <= stackedFactor + x.factor) { - return x.text; - } else { - stackedFactor += x.factor; - } - } - return xs[0].text; - }, - }; - - return funcs; -} diff --git a/packages/client/src/scripts/i18n.ts b/packages/client/src/scripts/i18n.ts deleted file mode 100644 index 54184386d..000000000 --- a/packages/client/src/scripts/i18n.ts +++ /dev/null @@ -1,29 +0,0 @@ -export class I18n> { - public ts: T; - - constructor(locale: T) { - this.ts = locale; - - //#region BIND - this.t = this.t.bind(this); - //#endregion - } - - // string にしているのは、ドット区切りでのパス指定を許可するため - // なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも - public t(key: string, args?: Record): string { - try { - let str = key.split('.').reduce((o, i) => o[i], this.ts) as unknown as string; - - if (args) { - for (const [k, v] of Object.entries(args)) { - str = str.replace(`{${k}}`, v.toString()); - } - } - return str; - } catch (err) { - console.warn(`missing localization '${key}'`); - return key; - } - } -} diff --git a/packages/client/src/scripts/idb-proxy.ts b/packages/client/src/scripts/idb-proxy.ts deleted file mode 100644 index 77bb84463..000000000 --- a/packages/client/src/scripts/idb-proxy.ts +++ /dev/null @@ -1,36 +0,0 @@ -// FirefoxのプライベートモードなどではindexedDBが使用不可能なので、 -// indexedDBが使えない環境ではlocalStorageを使う -import { - get as iget, - set as iset, - del as idel, -} from 'idb-keyval'; - -const fallbackName = (key: string) => `idbfallback::${key}`; - -let idbAvailable = typeof window !== 'undefined' ? !!window.indexedDB : true; - -if (idbAvailable) { - iset('idb-test', 'test').catch(err => { - console.error('idb error', err); - console.error('indexedDB is unavailable. It will use localStorage.'); - idbAvailable = false; - }); -} else { - console.error('indexedDB is unavailable. It will use localStorage.'); -} - -export async function get(key: string) { - if (idbAvailable) return iget(key); - return JSON.parse(localStorage.getItem(fallbackName(key))); -} - -export async function set(key: string, val: any) { - if (idbAvailable) return iset(key, val); - return localStorage.setItem(fallbackName(key), JSON.stringify(val)); -} - -export async function del(key: string) { - if (idbAvailable) return idel(key); - return localStorage.removeItem(fallbackName(key)); -} diff --git a/packages/client/src/scripts/initialize-sw.ts b/packages/client/src/scripts/initialize-sw.ts deleted file mode 100644 index 7bacfbdf0..000000000 --- a/packages/client/src/scripts/initialize-sw.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { instance } from '@/instance'; -import { $i } from '@/account'; -import { api } from '@/os'; -import { lang } from '@/config'; - -export async function initializeSw() { - if (!('serviceWorker' in navigator)) return; - - navigator.serviceWorker.register(`/sw.js`, { scope: '/', type: 'classic' }); - navigator.serviceWorker.ready.then(registration => { - registration.active?.postMessage({ - msg: 'initialize', - lang, - }); - - if (instance.swPublickey && ('PushManager' in window) && $i && $i.token) { - // SEE: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe#Parameters - registration.pushManager.subscribe({ - userVisibleOnly: true, - applicationServerKey: urlBase64ToUint8Array(instance.swPublickey) - }) - .then(subscription => { - function encode(buffer: ArrayBuffer | null) { - return btoa(String.fromCharCode.apply(null, new Uint8Array(buffer))); - } - - // Register - api('sw/register', { - endpoint: subscription.endpoint, - auth: encode(subscription.getKey('auth')), - publickey: encode(subscription.getKey('p256dh')) - }); - }) - // When subscribe failed - .catch(async (err: Error) => { - // 通知が許可されていなかったとき - if (err.name === 'NotAllowedError') { - return; - } - - // 違うapplicationServerKey (または gcm_sender_id)のサブスクリプションが - // 既に存在していることが原因でエラーになった可能性があるので、 - // そのサブスクリプションを解除しておく - const subscription = await registration.pushManager.getSubscription(); - if (subscription) subscription.unsubscribe(); - }); - } - }); -} - -/** - * Convert the URL safe base64 string to a Uint8Array - * @param base64String base64 string - */ -function urlBase64ToUint8Array(base64String: string): Uint8Array { - const padding = '='.repeat((4 - base64String.length % 4) % 4); - const base64 = (base64String + padding) - .replace(/-/g, '+') - .replace(/_/g, '/'); - - const rawData = window.atob(base64); - const outputArray = new Uint8Array(rawData.length); - - for (let i = 0; i < rawData.length; ++i) { - outputArray[i] = rawData.charCodeAt(i); - } - return outputArray; -} diff --git a/packages/client/src/scripts/langmap.ts b/packages/client/src/scripts/langmap.ts deleted file mode 100644 index 25f5b366c..000000000 --- a/packages/client/src/scripts/langmap.ts +++ /dev/null @@ -1,666 +0,0 @@ -// TODO: sharedに置いてバックエンドのと統合したい -export const langmap = { - 'ach': { - nativeName: 'Lwo', - }, - 'ady': { - nativeName: 'Адыгэбзэ', - }, - 'af': { - nativeName: 'Afrikaans', - }, - 'af-NA': { - nativeName: 'Afrikaans (Namibia)', - }, - 'af-ZA': { - nativeName: 'Afrikaans (South Africa)', - }, - 'ak': { - nativeName: 'Tɕɥi', - }, - 'ar': { - nativeName: 'العربية', - }, - 'ar-AR': { - nativeName: 'العربية', - }, - 'ar-MA': { - nativeName: 'العربية', - }, - 'ar-SA': { - nativeName: 'العربية (السعودية)', - }, - 'ay-BO': { - nativeName: 'Aymar aru', - }, - 'az': { - nativeName: 'Azərbaycan dili', - }, - 'az-AZ': { - nativeName: 'Azərbaycan dili', - }, - 'be-BY': { - nativeName: 'Беларуская', - }, - 'bg': { - nativeName: 'Български', - }, - 'bg-BG': { - nativeName: 'Български', - }, - 'bn': { - nativeName: 'বাংলা', - }, - 'bn-IN': { - nativeName: 'বাংলা (ভারত)', - }, - 'bn-BD': { - nativeName: 'বাংলা(বাংলাদেশ)', - }, - 'br': { - nativeName: 'Brezhoneg', - }, - 'bs-BA': { - nativeName: 'Bosanski', - }, - 'ca': { - nativeName: 'Català', - }, - 'ca-ES': { - nativeName: 'Català', - }, - 'cak': { - nativeName: 'Maya Kaqchikel', - }, - 'ck-US': { - nativeName: 'ᏣᎳᎩ (tsalagi)', - }, - 'cs': { - nativeName: 'Čeština', - }, - 'cs-CZ': { - nativeName: 'Čeština', - }, - 'cy': { - nativeName: 'Cymraeg', - }, - 'cy-GB': { - nativeName: 'Cymraeg', - }, - 'da': { - nativeName: 'Dansk', - }, - 'da-DK': { - nativeName: 'Dansk', - }, - 'de': { - nativeName: 'Deutsch', - }, - 'de-AT': { - nativeName: 'Deutsch (Österreich)', - }, - 'de-DE': { - nativeName: 'Deutsch (Deutschland)', - }, - 'de-CH': { - nativeName: 'Deutsch (Schweiz)', - }, - 'dsb': { - nativeName: 'Dolnoserbšćina', - }, - 'el': { - nativeName: 'Ελληνικά', - }, - 'el-GR': { - nativeName: 'Ελληνικά', - }, - 'en': { - nativeName: 'English', - }, - 'en-GB': { - nativeName: 'English (UK)', - }, - 'en-AU': { - nativeName: 'English (Australia)', - }, - 'en-CA': { - nativeName: 'English (Canada)', - }, - 'en-IE': { - nativeName: 'English (Ireland)', - }, - 'en-IN': { - nativeName: 'English (India)', - }, - 'en-PI': { - nativeName: 'English (Pirate)', - }, - 'en-SG': { - nativeName: 'English (Singapore)', - }, - 'en-UD': { - nativeName: 'English (Upside Down)', - }, - 'en-US': { - nativeName: 'English (US)', - }, - 'en-ZA': { - nativeName: 'English (South Africa)', - }, - 'en@pirate': { - nativeName: 'English (Pirate)', - }, - 'eo': { - nativeName: 'Esperanto', - }, - 'eo-EO': { - nativeName: 'Esperanto', - }, - 'es': { - nativeName: 'Español', - }, - 'es-AR': { - nativeName: 'Español (Argentine)', - }, - 'es-419': { - nativeName: 'Español (Latinoamérica)', - }, - 'es-CL': { - nativeName: 'Español (Chile)', - }, - 'es-CO': { - nativeName: 'Español (Colombia)', - }, - 'es-EC': { - nativeName: 'Español (Ecuador)', - }, - 'es-ES': { - nativeName: 'Español (España)', - }, - 'es-LA': { - nativeName: 'Español (Latinoamérica)', - }, - 'es-NI': { - nativeName: 'Español (Nicaragua)', - }, - 'es-MX': { - nativeName: 'Español (México)', - }, - 'es-US': { - nativeName: 'Español (Estados Unidos)', - }, - 'es-VE': { - nativeName: 'Español (Venezuela)', - }, - 'et': { - nativeName: 'eesti keel', - }, - 'et-EE': { - nativeName: 'Eesti (Estonia)', - }, - 'eu': { - nativeName: 'Euskara', - }, - 'eu-ES': { - nativeName: 'Euskara', - }, - 'fa': { - nativeName: 'فارسی', - }, - 'fa-IR': { - nativeName: 'فارسی', - }, - 'fb-LT': { - nativeName: 'Leet Speak', - }, - 'ff': { - nativeName: 'Fulah', - }, - 'fi': { - nativeName: 'Suomi', - }, - 'fi-FI': { - nativeName: 'Suomi', - }, - 'fo': { - nativeName: 'Føroyskt', - }, - 'fo-FO': { - nativeName: 'Føroyskt (Færeyjar)', - }, - 'fr': { - nativeName: 'Français', - }, - 'fr-CA': { - nativeName: 'Français (Canada)', - }, - 'fr-FR': { - nativeName: 'Français (France)', - }, - 'fr-BE': { - nativeName: 'Français (Belgique)', - }, - 'fr-CH': { - nativeName: 'Français (Suisse)', - }, - 'fy-NL': { - nativeName: 'Frysk', - }, - 'ga': { - nativeName: 'Gaeilge', - }, - 'ga-IE': { - nativeName: 'Gaeilge', - }, - 'gd': { - nativeName: 'Gàidhlig', - }, - 'gl': { - nativeName: 'Galego', - }, - 'gl-ES': { - nativeName: 'Galego', - }, - 'gn-PY': { - nativeName: 'Avañe\'ẽ', - }, - 'gu-IN': { - nativeName: 'ગુજરાતી', - }, - 'gv': { - nativeName: 'Gaelg', - }, - 'gx-GR': { - nativeName: 'Ἑλληνική ἀρχαία', - }, - 'he': { - nativeName: 'עברית‏', - }, - 'he-IL': { - nativeName: 'עברית‏', - }, - 'hi': { - nativeName: 'हिन्दी', - }, - 'hi-IN': { - nativeName: 'हिन्दी', - }, - 'hr': { - nativeName: 'Hrvatski', - }, - 'hr-HR': { - nativeName: 'Hrvatski', - }, - 'hsb': { - nativeName: 'Hornjoserbšćina', - }, - 'ht': { - nativeName: 'Kreyòl', - }, - 'hu': { - nativeName: 'Magyar', - }, - 'hu-HU': { - nativeName: 'Magyar', - }, - 'hy': { - nativeName: 'Հայերեն', - }, - 'hy-AM': { - nativeName: 'Հայերեն (Հայաստան)', - }, - 'id': { - nativeName: 'Bahasa Indonesia', - }, - 'id-ID': { - nativeName: 'Bahasa Indonesia', - }, - 'is': { - nativeName: 'Íslenska', - }, - 'is-IS': { - nativeName: 'Íslenska (Iceland)', - }, - 'it': { - nativeName: 'Italiano', - }, - 'it-IT': { - nativeName: 'Italiano', - }, - 'ja': { - nativeName: '日本語', - }, - 'ja-JP': { - nativeName: '日本語 (日本)', - }, - 'jv-ID': { - nativeName: 'Basa Jawa', - }, - 'ka-GE': { - nativeName: 'ქართული', - }, - 'kk-KZ': { - nativeName: 'Қазақша', - }, - 'km': { - nativeName: 'ភាសាខ្មែរ', - }, - 'kl': { - nativeName: 'kalaallisut', - }, - 'km-KH': { - nativeName: 'ភាសាខ្មែរ', - }, - 'kab': { - nativeName: 'Taqbaylit', - }, - 'kn': { - nativeName: 'ಕನ್ನಡ', - }, - 'kn-IN': { - nativeName: 'ಕನ್ನಡ (India)', - }, - 'ko': { - nativeName: '한국어', - }, - 'ko-KR': { - nativeName: '한국어 (한국)', - }, - 'ku-TR': { - nativeName: 'Kurdî', - }, - 'kw': { - nativeName: 'Kernewek', - }, - 'la': { - nativeName: 'Latin', - }, - 'la-VA': { - nativeName: 'Latin', - }, - 'lb': { - nativeName: 'Lëtzebuergesch', - }, - 'li-NL': { - nativeName: 'Lèmbörgs', - }, - 'lt': { - nativeName: 'Lietuvių', - }, - 'lt-LT': { - nativeName: 'Lietuvių', - }, - 'lv': { - nativeName: 'Latviešu', - }, - 'lv-LV': { - nativeName: 'Latviešu', - }, - 'mai': { - nativeName: 'मैथिली, মৈথিলী', - }, - 'mg-MG': { - nativeName: 'Malagasy', - }, - 'mk': { - nativeName: 'Македонски', - }, - 'mk-MK': { - nativeName: 'Македонски (Македонски)', - }, - 'ml': { - nativeName: 'മലയാളം', - }, - 'ml-IN': { - nativeName: 'മലയാളം', - }, - 'mn-MN': { - nativeName: 'Монгол', - }, - 'mr': { - nativeName: 'मराठी', - }, - 'mr-IN': { - nativeName: 'मराठी', - }, - 'ms': { - nativeName: 'Bahasa Melayu', - }, - 'ms-MY': { - nativeName: 'Bahasa Melayu', - }, - 'mt': { - nativeName: 'Malti', - }, - 'mt-MT': { - nativeName: 'Malti', - }, - 'my': { - nativeName: 'ဗမာစကာ', - }, - 'no': { - nativeName: 'Norsk', - }, - 'nb': { - nativeName: 'Norsk (bokmål)', - }, - 'nb-NO': { - nativeName: 'Norsk (bokmål)', - }, - 'ne': { - nativeName: 'नेपाली', - }, - 'ne-NP': { - nativeName: 'नेपाली', - }, - 'nl': { - nativeName: 'Nederlands', - }, - 'nl-BE': { - nativeName: 'Nederlands (België)', - }, - 'nl-NL': { - nativeName: 'Nederlands (Nederland)', - }, - 'nn-NO': { - nativeName: 'Norsk (nynorsk)', - }, - 'oc': { - nativeName: 'Occitan', - }, - 'or-IN': { - nativeName: 'ଓଡ଼ିଆ', - }, - 'pa': { - nativeName: 'ਪੰਜਾਬੀ', - }, - 'pa-IN': { - nativeName: 'ਪੰਜਾਬੀ (ਭਾਰਤ ਨੂੰ)', - }, - 'pl': { - nativeName: 'Polski', - }, - 'pl-PL': { - nativeName: 'Polski', - }, - 'ps-AF': { - nativeName: 'پښتو', - }, - 'pt': { - nativeName: 'Português', - }, - 'pt-BR': { - nativeName: 'Português (Brasil)', - }, - 'pt-PT': { - nativeName: 'Português (Portugal)', - }, - 'qu-PE': { - nativeName: 'Qhichwa', - }, - 'rm-CH': { - nativeName: 'Rumantsch', - }, - 'ro': { - nativeName: 'Română', - }, - 'ro-RO': { - nativeName: 'Română', - }, - 'ru': { - nativeName: 'Русский', - }, - 'ru-RU': { - nativeName: 'Русский', - }, - 'sa-IN': { - nativeName: 'संस्कृतम्', - }, - 'se-NO': { - nativeName: 'Davvisámegiella', - }, - 'sh': { - nativeName: 'српскохрватски', - }, - 'si-LK': { - nativeName: 'සිංහල', - }, - 'sk': { - nativeName: 'Slovenčina', - }, - 'sk-SK': { - nativeName: 'Slovenčina (Slovakia)', - }, - 'sl': { - nativeName: 'Slovenščina', - }, - 'sl-SI': { - nativeName: 'Slovenščina', - }, - 'so-SO': { - nativeName: 'Soomaaliga', - }, - 'sq': { - nativeName: 'Shqip', - }, - 'sq-AL': { - nativeName: 'Shqip', - }, - 'sr': { - nativeName: 'Српски', - }, - 'sr-RS': { - nativeName: 'Српски (Serbia)', - }, - 'su': { - nativeName: 'Basa Sunda', - }, - 'sv': { - nativeName: 'Svenska', - }, - 'sv-SE': { - nativeName: 'Svenska', - }, - 'sw': { - nativeName: 'Kiswahili', - }, - 'sw-KE': { - nativeName: 'Kiswahili', - }, - 'ta': { - nativeName: 'தமிழ்', - }, - 'ta-IN': { - nativeName: 'தமிழ்', - }, - 'te': { - nativeName: 'తెలుగు', - }, - 'te-IN': { - nativeName: 'తెలుగు', - }, - 'tg': { - nativeName: 'забо́ни тоҷикӣ́', - }, - 'tg-TJ': { - nativeName: 'тоҷикӣ', - }, - 'th': { - nativeName: 'ภาษาไทย', - }, - 'th-TH': { - nativeName: 'ภาษาไทย (ประเทศไทย)', - }, - 'fil': { - nativeName: 'Filipino', - }, - 'tlh': { - nativeName: 'tlhIngan-Hol', - }, - 'tr': { - nativeName: 'Türkçe', - }, - 'tr-TR': { - nativeName: 'Türkçe', - }, - 'tt-RU': { - nativeName: 'татарча', - }, - 'uk': { - nativeName: 'Українська', - }, - 'uk-UA': { - nativeName: 'Українська', - }, - 'ur': { - nativeName: 'اردو', - }, - 'ur-PK': { - nativeName: 'اردو', - }, - 'uz': { - nativeName: 'O\'zbek', - }, - 'uz-UZ': { - nativeName: 'O\'zbek', - }, - 'vi': { - nativeName: 'Tiếng Việt', - }, - 'vi-VN': { - nativeName: 'Tiếng Việt', - }, - 'xh-ZA': { - nativeName: 'isiXhosa', - }, - 'yi': { - nativeName: 'ייִדיש', - }, - 'yi-DE': { - nativeName: 'ייִדיש (German)', - }, - 'zh': { - nativeName: '中文', - }, - 'zh-Hans': { - nativeName: '中文简体', - }, - 'zh-Hant': { - nativeName: '中文繁體', - }, - 'zh-CN': { - nativeName: '中文(中国大陆)', - }, - 'zh-HK': { - nativeName: '中文(香港)', - }, - 'zh-SG': { - nativeName: '中文(新加坡)', - }, - 'zh-TW': { - nativeName: '中文(台灣)', - }, - 'zu-ZA': { - nativeName: 'isiZulu', - }, -}; diff --git a/packages/client/src/scripts/login-id.ts b/packages/client/src/scripts/login-id.ts deleted file mode 100644 index 0f9c6be4a..000000000 --- a/packages/client/src/scripts/login-id.ts +++ /dev/null @@ -1,11 +0,0 @@ -export function getUrlWithLoginId(url: string, loginId: string) { - const u = new URL(url, origin); - u.searchParams.append('loginId', loginId); - return u.toString(); -} - -export function getUrlWithoutLoginId(url: string) { - const u = new URL(url); - u.searchParams.delete('loginId'); - return u.toString(); -} diff --git a/packages/client/src/scripts/lookup-user.ts b/packages/client/src/scripts/lookup-user.ts deleted file mode 100644 index 2d00e5162..000000000 --- a/packages/client/src/scripts/lookup-user.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as Acct from 'misskey-js/built/acct'; -import { i18n } from '@/i18n'; -import * as os from '@/os'; - -export async function lookupUser() { - const { canceled, result } = await os.inputText({ - title: i18n.ts.usernameOrUserId, - }); - if (canceled) return; - - const show = (user) => { - os.pageWindow(`/user-info/${user.id}`); - }; - - const usernamePromise = os.api('users/show', Acct.parse(result)); - const idPromise = os.api('users/show', { userId: result }); - let _notFound = false; - const notFound = () => { - if (_notFound) { - os.alert({ - type: 'error', - text: i18n.ts.noSuchUser - }); - } else { - _notFound = true; - } - }; - usernamePromise.then(show).catch(err => { - if (err.code === 'NO_SUCH_USER') { - notFound(); - } - }); - idPromise.then(show).catch(err => { - notFound(); - }); -} diff --git a/packages/client/src/scripts/mfm-tags.ts b/packages/client/src/scripts/mfm-tags.ts deleted file mode 100644 index 18e8d7038..000000000 --- a/packages/client/src/scripts/mfm-tags.ts +++ /dev/null @@ -1 +0,0 @@ -export const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'font', 'blur', 'rainbow', 'sparkle', 'rotate']; diff --git a/packages/client/src/scripts/page-metadata.ts b/packages/client/src/scripts/page-metadata.ts deleted file mode 100644 index 0db8369f9..000000000 --- a/packages/client/src/scripts/page-metadata.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as misskey from 'misskey-js'; -import { ComputedRef, inject, isRef, onActivated, onMounted, provide, ref, Ref } from 'vue'; - -export const setPageMetadata = Symbol('setPageMetadata'); -export const pageMetadataProvider = Symbol('pageMetadataProvider'); - -export type PageMetadata = { - title: string; - subtitle?: string; - icon?: string | null; - avatar?: misskey.entities.User | null; - userName?: misskey.entities.User | null; - bg?: string; -}; - -export function definePageMetadata(metadata: PageMetadata | null | Ref | ComputedRef): void { - const _metadata = isRef(metadata) ? metadata : ref(metadata); - - provide(pageMetadataProvider, _metadata); - - const set = inject(setPageMetadata) as any; - if (set) { - set(_metadata); - - onMounted(() => { - set(_metadata); - }); - - onActivated(() => { - set(_metadata); - }); - } -} - -export function provideMetadataReceiver(callback: (info: ComputedRef) => void): void { - provide(setPageMetadata, callback); -} - -export function injectPageMetadata(): PageMetadata | undefined { - return inject(pageMetadataProvider); -} diff --git a/packages/client/src/scripts/physics.ts b/packages/client/src/scripts/physics.ts deleted file mode 100644 index 9e657906c..000000000 --- a/packages/client/src/scripts/physics.ts +++ /dev/null @@ -1,152 +0,0 @@ -import * as Matter from 'matter-js'; - -export function physics(container: HTMLElement) { - const containerWidth = container.offsetWidth; - const containerHeight = container.offsetHeight; - const containerCenterX = containerWidth / 2; - - // サイズ固定化(要らないかも?) - container.style.position = 'relative'; - container.style.boxSizing = 'border-box'; - container.style.width = `${containerWidth}px`; - container.style.height = `${containerHeight}px`; - - // create engine - const engine = Matter.Engine.create({ - constraintIterations: 4, - positionIterations: 8, - velocityIterations: 8, - }); - - const world = engine.world; - - // create renderer - const render = Matter.Render.create({ - engine: engine, - //element: document.getElementById('debug'), - options: { - width: containerWidth, - height: containerHeight, - background: 'transparent', // transparent to hide - wireframeBackground: 'transparent', // transparent to hide - } - }); - - // Disable to hide debug - Matter.Render.run(render); - - // create runner - const runner = Matter.Runner.create(); - Matter.Runner.run(runner, engine); - - const groundThickness = 1024; - const ground = Matter.Bodies.rectangle(containerCenterX, containerHeight + (groundThickness / 2), containerWidth, groundThickness, { - isStatic: true, - restitution: 0.1, - friction: 2 - }); - - //const wallRight = Matter.Bodies.rectangle(window.innerWidth+50, window.innerHeight/2, 100, window.innerHeight, wallopts); - //const wallLeft = Matter.Bodies.rectangle(-50, window.innerHeight/2, 100, window.innerHeight, wallopts); - - Matter.World.add(world, [ - ground, - //wallRight, - //wallLeft, - ]); - - const objEls = Array.from(container.children); - const objs = []; - for (const objEl of objEls) { - const left = objEl.dataset.physicsX ? parseInt(objEl.dataset.physicsX) : objEl.offsetLeft; - const top = objEl.dataset.physicsY ? parseInt(objEl.dataset.physicsY) : objEl.offsetTop; - - let obj; - if (objEl.classList.contains('_physics_circle_')) { - obj = Matter.Bodies.circle( - left + (objEl.offsetWidth / 2), - top + (objEl.offsetHeight / 2), - Math.max(objEl.offsetWidth, objEl.offsetHeight) / 2, - { - restitution: 0.5 - } - ); - } else { - const style = window.getComputedStyle(objEl); - obj = Matter.Bodies.rectangle( - left + (objEl.offsetWidth / 2), - top + (objEl.offsetHeight / 2), - objEl.offsetWidth, - objEl.offsetHeight, - { - chamfer: { radius: parseInt(style.borderRadius || '0', 10) }, - restitution: 0.5 - } - ); - } - objEl.id = obj.id; - objs.push(obj); - } - - Matter.World.add(engine.world, objs); - - // Add mouse control - - const mouse = Matter.Mouse.create(container); - const mouseConstraint = Matter.MouseConstraint.create(engine, { - mouse: mouse, - constraint: { - stiffness: 0.1, - render: { - visible: false - } - } - }); - - Matter.World.add(engine.world, mouseConstraint); - - // keep the mouse in sync with rendering - render.mouse = mouse; - - for (const objEl of objEls) { - objEl.style.position = `absolute`; - objEl.style.top = 0; - objEl.style.left = 0; - objEl.style.margin = 0; - } - - window.requestAnimationFrame(update); - - let stop = false; - - function update() { - for (const objEl of objEls) { - const obj = objs.find(obj => obj.id.toString() === objEl.id.toString()); - if (obj == null) continue; - - const x = (obj.position.x - objEl.offsetWidth / 2); - const y = (obj.position.y - objEl.offsetHeight / 2); - const angle = obj.angle; - objEl.style.transform = `translate(${x}px, ${y}px) rotate(${angle}rad)`; - } - - if (!stop) { - window.requestAnimationFrame(update); - } - } - - // 奈落に落ちたオブジェクトは消す - const intervalId = window.setInterval(() => { - for (const obj of objs) { - if (obj.position.y > (containerHeight + 1024)) Matter.World.remove(world, obj); - } - }, 1000 * 10); - - return { - stop: () => { - stop = true; - Matter.Runner.stop(runner); - window.clearInterval(intervalId); - } - }; -} diff --git a/packages/client/src/scripts/please-login.ts b/packages/client/src/scripts/please-login.ts deleted file mode 100644 index 3323968f7..000000000 --- a/packages/client/src/scripts/please-login.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineAsyncComponent } from 'vue'; -import { $i } from '@/account'; -import { i18n } from '@/i18n'; -import { popup } from '@/os'; - -export function pleaseLogin(path?: string) { - if ($i) return; - - popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), { - autoSet: true, - message: i18n.ts.signinRequired - }, { - cancelled: () => { - if (path) { - window.location.href = path; - } - }, - }, 'closed'); - - if (!path) throw new Error('signin required'); -} diff --git a/packages/client/src/scripts/popup-position.ts b/packages/client/src/scripts/popup-position.ts deleted file mode 100644 index e84eebf10..000000000 --- a/packages/client/src/scripts/popup-position.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { Ref } from 'vue'; - -export function calcPopupPosition(el: HTMLElement, props: { - anchorElement: HTMLElement | null; - innerMargin: number; - direction: 'top' | 'bottom' | 'left' | 'right'; - align: 'top' | 'bottom' | 'left' | 'right' | 'center'; - alignOffset?: number; - x?: number; - y?: number; -}): { top: number; left: number; transformOrigin: string; } { - const contentWidth = el.offsetWidth; - const contentHeight = el.offsetHeight; - - let rect: DOMRect; - - if (props.anchorElement) { - rect = props.anchorElement.getBoundingClientRect(); - } - - const calcPosWhenTop = () => { - let left: number; - let top: number; - - if (props.anchorElement) { - left = rect.left + window.pageXOffset + (props.anchorElement.offsetWidth / 2); - top = (rect.top + window.pageYOffset - contentHeight) - props.innerMargin; - } else { - left = props.x; - top = (props.y - contentHeight) - props.innerMargin; - } - - left -= (el.offsetWidth / 2); - - if (left + contentWidth - window.pageXOffset > window.innerWidth) { - left = window.innerWidth - contentWidth + window.pageXOffset - 1; - } - - return [left, top]; - }; - - const calcPosWhenBottom = () => { - let left: number; - let top: number; - - if (props.anchorElement) { - left = rect.left + window.pageXOffset + (props.anchorElement.offsetWidth / 2); - top = (rect.top + window.pageYOffset + props.anchorElement.offsetHeight) + props.innerMargin; - } else { - left = props.x; - top = (props.y) + props.innerMargin; - } - - left -= (el.offsetWidth / 2); - - if (left + contentWidth - window.pageXOffset > window.innerWidth) { - left = window.innerWidth - contentWidth + window.pageXOffset - 1; - } - - return [left, top]; - }; - - const calcPosWhenLeft = () => { - let left: number; - let top: number; - - if (props.anchorElement) { - left = (rect.left + window.pageXOffset - contentWidth) - props.innerMargin; - top = rect.top + window.pageYOffset + (props.anchorElement.offsetHeight / 2); - } else { - left = (props.x - contentWidth) - props.innerMargin; - top = props.y; - } - - top -= (el.offsetHeight / 2); - - if (top + contentHeight - window.pageYOffset > window.innerHeight) { - top = window.innerHeight - contentHeight + window.pageYOffset - 1; - } - - return [left, top]; - }; - - const calcPosWhenRight = () => { - let left: number; - let top: number; - - if (props.anchorElement) { - left = (rect.left + props.anchorElement.offsetWidth + window.pageXOffset) + props.innerMargin; - - if (props.align === 'top') { - top = rect.top + window.pageYOffset; - if (props.alignOffset != null) top += props.alignOffset; - } else if (props.align === 'bottom') { - // TODO - } else { // center - top = rect.top + window.pageYOffset + (props.anchorElement.offsetHeight / 2); - top -= (el.offsetHeight / 2); - } - } else { - left = props.x + props.innerMargin; - top = props.y; - top -= (el.offsetHeight / 2); - } - - if (top + contentHeight - window.pageYOffset > window.innerHeight) { - top = window.innerHeight - contentHeight + window.pageYOffset - 1; - } - - return [left, top]; - }; - - const calc = (): { - left: number; - top: number; - transformOrigin: string; - } => { - switch (props.direction) { - case 'top': { - const [left, top] = calcPosWhenTop(); - - // ツールチップを上に向かって表示するスペースがなければ下に向かって出す - if (top - window.pageYOffset < 0) { - const [left, top] = calcPosWhenBottom(); - return { left, top, transformOrigin: 'center top' }; - } - - return { left, top, transformOrigin: 'center bottom' }; - } - - case 'bottom': { - const [left, top] = calcPosWhenBottom(); - // TODO: ツールチップを下に向かって表示するスペースがなければ上に向かって出す - return { left, top, transformOrigin: 'center top' }; - } - - case 'left': { - const [left, top] = calcPosWhenLeft(); - - // ツールチップを左に向かって表示するスペースがなければ右に向かって出す - if (left - window.pageXOffset < 0) { - const [left, top] = calcPosWhenRight(); - return { left, top, transformOrigin: 'left center' }; - } - - return { left, top, transformOrigin: 'right center' }; - } - - case 'right': { - const [left, top] = calcPosWhenRight(); - // TODO: ツールチップを右に向かって表示するスペースがなければ左に向かって出す - return { left, top, transformOrigin: 'left center' }; - } - } - }; - - return calc(); -} diff --git a/packages/client/src/scripts/reaction-picker.ts b/packages/client/src/scripts/reaction-picker.ts deleted file mode 100644 index a6d0940a4..000000000 --- a/packages/client/src/scripts/reaction-picker.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { defineAsyncComponent, Ref, ref } from 'vue'; -import { popup } from '@/os'; - -class ReactionPicker { - private src: Ref = ref(null); - private manualShowing = ref(false); - private onChosen?: (reaction: string) => void; - private onClosed?: () => void; - - constructor() { - // nop - } - - public async init() { - await popup(defineAsyncComponent(() => import('@/components/MkEmojiPickerDialog.vue')), { - src: this.src, - asReactionPicker: true, - manualShowing: this.manualShowing - }, { - done: reaction => { - this.onChosen!(reaction); - }, - close: () => { - this.manualShowing.value = false; - }, - closed: () => { - this.src.value = null; - this.onClosed!(); - } - }); - } - - public show(src: HTMLElement, onChosen: ReactionPicker['onChosen'], onClosed: ReactionPicker['onClosed']) { - this.src.value = src; - this.manualShowing.value = true; - this.onChosen = onChosen; - this.onClosed = onClosed; - } -} - -export const reactionPicker = new ReactionPicker(); diff --git a/packages/client/src/scripts/safe-uri-decode.ts b/packages/client/src/scripts/safe-uri-decode.ts deleted file mode 100644 index 301b56d7f..000000000 --- a/packages/client/src/scripts/safe-uri-decode.ts +++ /dev/null @@ -1,7 +0,0 @@ -export function safeURIDecode(str: string): string { - try { - return decodeURIComponent(str); - } catch { - return str; - } -} diff --git a/packages/client/src/scripts/scroll.ts b/packages/client/src/scripts/scroll.ts deleted file mode 100644 index f5bc6bf9c..000000000 --- a/packages/client/src/scripts/scroll.ts +++ /dev/null @@ -1,85 +0,0 @@ -type ScrollBehavior = 'auto' | 'smooth' | 'instant'; - -export function getScrollContainer(el: HTMLElement | null): HTMLElement | null { - if (el == null || el.tagName === 'HTML') return null; - const overflow = window.getComputedStyle(el).getPropertyValue('overflow-y'); - if (overflow === 'scroll' || overflow === 'auto') { - return el; - } else { - return getScrollContainer(el.parentElement); - } -} - -export function getScrollPosition(el: Element | null): number { - const container = getScrollContainer(el); - return container == null ? window.scrollY : container.scrollTop; -} - -export function isTopVisible(el: Element | null): boolean { - const scrollTop = getScrollPosition(el); - const topPosition = el.offsetTop; // TODO: container内でのelの相対位置を取得できればより正確になる - - return scrollTop <= topPosition; -} - -export function isBottomVisible(el: HTMLElement, tolerance = 1, container = getScrollContainer(el)) { - if (container) return el.scrollHeight <= container.clientHeight + Math.abs(container.scrollTop) + tolerance; - return el.scrollHeight <= window.innerHeight + window.scrollY + tolerance; -} - -export function onScrollTop(el: Element, cb) { - const container = getScrollContainer(el) || window; - const onScroll = ev => { - if (!document.body.contains(el)) return; - if (isTopVisible(el)) { - cb(); - container.removeEventListener('scroll', onScroll); - } - }; - container.addEventListener('scroll', onScroll, { passive: true }); -} - -export function onScrollBottom(el: Element, cb) { - const container = getScrollContainer(el) || window; - const onScroll = ev => { - if (!document.body.contains(el)) return; - const pos = getScrollPosition(el); - if (pos + el.clientHeight > el.scrollHeight - 1) { - cb(); - container.removeEventListener('scroll', onScroll); - } - }; - container.addEventListener('scroll', onScroll, { passive: true }); -} - -export function scroll(el: Element, options: { - top?: number; - left?: number; - behavior?: ScrollBehavior; -}) { - const container = getScrollContainer(el); - if (container == null) { - window.scroll(options); - } else { - container.scroll(options); - } -} - -export function scrollToTop(el: Element, options: { behavior?: ScrollBehavior; } = {}) { - scroll(el, { top: 0, ...options }); -} - -export function scrollToBottom(el: Element, options: { behavior?: ScrollBehavior; } = {}) { - scroll(el, { top: 99999, ...options }); // TODO: ちゃんと計算する -} - -export function isBottom(el: Element, asobi = 0) { - const container = getScrollContainer(el); - const current = container - ? el.scrollTop + el.offsetHeight - : window.scrollY + window.innerHeight; - const max = container - ? el.scrollHeight - : document.body.offsetHeight; - return current >= (max - asobi); -} diff --git a/packages/client/src/scripts/search.ts b/packages/client/src/scripts/search.ts deleted file mode 100644 index 64914d3d6..000000000 --- a/packages/client/src/scripts/search.ts +++ /dev/null @@ -1,63 +0,0 @@ -import * as os from '@/os'; -import { i18n } from '@/i18n'; -import { mainRouter } from '@/router'; - -export async function search() { - const { canceled, result: query } = await os.inputText({ - title: i18n.ts.search, - }); - if (canceled || query == null || query === '') return; - - const q = query.trim(); - - if (q.startsWith('@') && !q.includes(' ')) { - mainRouter.push(`/${q}`); - return; - } - - if (q.startsWith('#')) { - mainRouter.push(`/tags/${encodeURIComponent(q.substr(1))}`); - return; - } - - // like 2018/03/12 - if (/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}/.test(q.replace(/-/g, '/'))) { - const date = new Date(q.replace(/-/g, '/')); - - // 日付しか指定されてない場合、例えば 2018/03/12 ならユーザーは - // 2018/03/12 のコンテンツを「含む」結果になることを期待するはずなので - // 23時間59分進める(そのままだと 2018/03/12 00:00:00 「まで」の - // 結果になってしまい、2018/03/12 のコンテンツは含まれない) - if (q.replace(/-/g, '/').match(/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/)) { - date.setHours(23, 59, 59, 999); - } - - // TODO - //v.$root.$emit('warp', date); - os.alert({ - icon: 'fas fa-history', - iconOnly: true, autoClose: true, - }); - return; - } - - if (q.startsWith('https://')) { - const promise = os.api('ap/show', { - uri: q, - }); - - os.promiseDialog(promise, null, null, i18n.ts.fetchingAsApObject); - - const res = await promise; - - if (res.type === 'User') { - mainRouter.push(`/@${res.object.username}@${res.object.host}`); - } else if (res.type === 'Note') { - mainRouter.push(`/notes/${res.object.id}`); - } - - return; - } - - mainRouter.push(`/search?q=${encodeURIComponent(q)}`); -} diff --git a/packages/client/src/scripts/select-file.ts b/packages/client/src/scripts/select-file.ts deleted file mode 100644 index 17e31d96f..000000000 --- a/packages/client/src/scripts/select-file.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { ref } from 'vue'; -import { DriveFile } from 'misskey-js/built/entities'; -import * as os from '@/os'; -import { stream } from '@/stream'; -import { i18n } from '@/i18n'; -import { defaultStore } from '@/store'; -import { uploadFile } from '@/scripts/upload'; - -function select(src: any, label: string | null, multiple: boolean): Promise { - return new Promise((res, rej) => { - const keepOriginal = ref(defaultStore.state.keepOriginalUploading); - - const chooseFileFromPc = () => { - const input = document.createElement('input'); - input.type = 'file'; - input.multiple = multiple; - input.onchange = () => { - const promises = Array.from(input.files).map(file => uploadFile(file, defaultStore.state.uploadFolder, undefined, keepOriginal.value)); - - Promise.all(promises).then(driveFiles => { - res(multiple ? driveFiles : driveFiles[0]); - }).catch(err => { - // アップロードのエラーは uploadFile 内でハンドリングされているためアラートダイアログを出したりはしてはいけない - }); - - // 一応廃棄 - (window as any).__misskey_input_ref__ = null; - }; - - // https://qiita.com/fukasawah/items/b9dc732d95d99551013d - // iOS Safari で正常に動かす為のおまじない - (window as any).__misskey_input_ref__ = input; - - input.click(); - }; - - const chooseFileFromDrive = () => { - os.selectDriveFile(multiple).then(files => { - res(files); - }); - }; - - const chooseFileFromUrl = () => { - os.inputText({ - title: i18n.ts.uploadFromUrl, - type: 'url', - placeholder: i18n.ts.uploadFromUrlDescription, - }).then(({ canceled, result: url }) => { - if (canceled) return; - - const marker = Math.random().toString(); // TODO: UUIDとか使う - - const connection = stream.useChannel('main'); - connection.on('urlUploadFinished', urlResponse => { - if (urlResponse.marker === marker) { - res(multiple ? [urlResponse.file] : urlResponse.file); - connection.dispose(); - } - }); - - os.api('drive/files/upload-from-url', { - url: url, - folderId: defaultStore.state.uploadFolder, - marker, - }); - - os.alert({ - title: i18n.ts.uploadFromUrlRequested, - text: i18n.ts.uploadFromUrlMayTakeTime, - }); - }); - }; - - os.popupMenu([label ? { - text: label, - type: 'label', - } : undefined, { - type: 'switch', - text: i18n.ts.keepOriginalUploading, - ref: keepOriginal, - }, { - text: i18n.ts.upload, - icon: 'fas fa-upload', - action: chooseFileFromPc, - }, { - text: i18n.ts.fromDrive, - icon: 'fas fa-cloud', - action: chooseFileFromDrive, - }, { - text: i18n.ts.fromUrl, - icon: 'fas fa-link', - action: chooseFileFromUrl, - }], src); - }); -} - -export function selectFile(src: any, label: string | null = null): Promise { - return select(src, label, false) as Promise; -} - -export function selectFiles(src: any, label: string | null = null): Promise { - return select(src, label, true) as Promise; -} diff --git a/packages/client/src/scripts/show-suspended-dialog.ts b/packages/client/src/scripts/show-suspended-dialog.ts deleted file mode 100644 index acfbc60e9..000000000 --- a/packages/client/src/scripts/show-suspended-dialog.ts +++ /dev/null @@ -1,10 +0,0 @@ -import * as os from '@/os'; -import { i18n } from '@/i18n'; - -export function showSuspendedDialog() { - return os.alert({ - type: 'error', - title: i18n.ts.yourAccountSuspendedTitle, - text: i18n.ts.yourAccountSuspendedDescription - }); -} diff --git a/packages/client/src/scripts/shuffle.ts b/packages/client/src/scripts/shuffle.ts deleted file mode 100644 index 05e6cdfbc..000000000 --- a/packages/client/src/scripts/shuffle.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * 配列をシャッフル (破壊的) - */ -export function shuffle(array: T): T { - let currentIndex = array.length, randomIndex; - - // While there remain elements to shuffle. - while (currentIndex !== 0) { - // Pick a remaining element. - randomIndex = Math.floor(Math.random() * currentIndex); - currentIndex--; - - // And swap it with the current element. - [array[currentIndex], array[randomIndex]] = [ - array[randomIndex], array[currentIndex]]; - } - - return array; -} diff --git a/packages/client/src/scripts/sound.ts b/packages/client/src/scripts/sound.ts deleted file mode 100644 index 2b8279b3d..000000000 --- a/packages/client/src/scripts/sound.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ColdDeviceStorage } from '@/store'; - -const cache = new Map(); - -export function getAudio(file: string, useCache = true): HTMLAudioElement { - let audio: HTMLAudioElement; - if (useCache && cache.has(file)) { - audio = cache.get(file); - } else { - audio = new Audio(`/client-assets/sounds/${file}.mp3`); - if (useCache) cache.set(file, audio); - } - return audio; -} - -export function setVolume(audio: HTMLAudioElement, volume: number): HTMLAudioElement { - const masterVolume = ColdDeviceStorage.get('sound_masterVolume'); - audio.volume = masterVolume - ((1 - volume) * masterVolume); - return audio; -} - -export function play(type: string) { - const sound = ColdDeviceStorage.get('sound_' + type as any); - if (sound.type == null) return; - playFile(sound.type, sound.volume); -} - -export function playFile(file: string, volume: number) { - const masterVolume = ColdDeviceStorage.get('sound_masterVolume'); - if (masterVolume === 0) return; - - const audio = setVolume(getAudio(file), volume); - audio.play(); -} diff --git a/packages/client/src/scripts/sticky-sidebar.ts b/packages/client/src/scripts/sticky-sidebar.ts deleted file mode 100644 index c67b8f37a..000000000 --- a/packages/client/src/scripts/sticky-sidebar.ts +++ /dev/null @@ -1,50 +0,0 @@ -export class StickySidebar { - private lastScrollTop = 0; - private container: HTMLElement; - private el: HTMLElement; - private spacer: HTMLElement; - private marginTop: number; - private isTop = false; - private isBottom = false; - private offsetTop: number; - private globalHeaderHeight: number = 59; - - constructor(container: StickySidebar['container'], marginTop = 0, globalHeaderHeight = 0) { - this.container = container; - this.el = this.container.children[0] as HTMLElement; - this.el.style.position = 'sticky'; - this.spacer = document.createElement('div'); - this.container.prepend(this.spacer); - this.marginTop = marginTop; - this.offsetTop = this.container.getBoundingClientRect().top; - this.globalHeaderHeight = globalHeaderHeight; - } - - public calc(scrollTop: number) { - if (scrollTop > this.lastScrollTop) { // downscroll - const overflow = Math.max(0, this.globalHeaderHeight + (this.el.clientHeight + this.marginTop) - window.innerHeight); - this.el.style.bottom = null; - this.el.style.top = `${-overflow + this.marginTop + this.globalHeaderHeight}px`; - - this.isBottom = (scrollTop + window.innerHeight) >= (this.el.offsetTop + this.el.clientHeight); - - if (this.isTop) { - this.isTop = false; - this.spacer.style.marginTop = `${Math.max(0, this.globalHeaderHeight + this.lastScrollTop + this.marginTop - this.offsetTop)}px`; - } - } else { // upscroll - const overflow = this.globalHeaderHeight + (this.el.clientHeight + this.marginTop) - window.innerHeight; - this.el.style.top = null; - this.el.style.bottom = `${-overflow}px`; - - this.isTop = scrollTop + this.marginTop + this.globalHeaderHeight <= this.el.offsetTop; - - if (this.isBottom) { - this.isBottom = false; - this.spacer.style.marginTop = `${this.globalHeaderHeight + this.lastScrollTop + this.marginTop - this.offsetTop - overflow}px`; - } - } - - this.lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; - } -} diff --git a/packages/client/src/scripts/theme.ts b/packages/client/src/scripts/theme.ts deleted file mode 100644 index 3f55d9ae8..000000000 --- a/packages/client/src/scripts/theme.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { ref } from 'vue'; -import tinycolor from 'tinycolor2'; -import { globalEvents } from '@/events'; - -export type Theme = { - id: string; - name: string; - author: string; - desc?: string; - base?: 'dark' | 'light'; - props: Record; -}; - -import lightTheme from '@/themes/_light.json5'; -import darkTheme from '@/themes/_dark.json5'; - -export const themeProps = Object.keys(lightTheme.props).filter(key => !key.startsWith('X')); - -export const getBuiltinThemes = () => Promise.all( - [ - 'l-light', - 'l-coffee', - 'l-apricot', - 'l-rainy', - 'l-vivid', - 'l-cherry', - 'l-sushi', - 'l-u0', - - 'd-dark', - 'd-persimmon', - 'd-astro', - 'd-future', - 'd-botanical', - 'd-green-lime', - 'd-green-orange', - 'd-cherry', - 'd-ice', - 'd-u0', - ].map(name => import(`../themes/${name}.json5`).then(({ default: _default }): Theme => _default)), -); - -export const getBuiltinThemesRef = () => { - const builtinThemes = ref([]); - getBuiltinThemes().then(themes => builtinThemes.value = themes); - return builtinThemes; -}; - -let timeout = null; - -export function applyTheme(theme: Theme, persist = true) { - if (timeout) window.clearTimeout(timeout); - - document.documentElement.classList.add('_themeChanging_'); - - timeout = window.setTimeout(() => { - document.documentElement.classList.remove('_themeChanging_'); - }, 1000); - - const colorSchema = theme.base === 'dark' ? 'dark' : 'light'; - - // Deep copy - const _theme = JSON.parse(JSON.stringify(theme)); - - if (_theme.base) { - const base = [lightTheme, darkTheme].find(x => x.id === _theme.base); - if (base) _theme.props = Object.assign({}, base.props, _theme.props); - } - - const props = compile(_theme); - - for (const tag of document.head.children) { - if (tag.tagName === 'META' && tag.getAttribute('name') === 'theme-color') { - tag.setAttribute('content', props['htmlThemeColor']); - break; - } - } - - for (const [k, v] of Object.entries(props)) { - document.documentElement.style.setProperty(`--${k}`, v.toString()); - } - - document.documentElement.style.setProperty('color-schema', colorSchema); - - if (persist) { - localStorage.setItem('theme', JSON.stringify(props)); - localStorage.setItem('colorSchema', colorSchema); - } - - // 色計算など再度行えるようにクライアント全体に通知 - globalEvents.emit('themeChanged'); -} - -function compile(theme: Theme): Record { - function getColor(val: string): tinycolor.Instance { - // ref (prop) - if (val[0] === '@') { - return getColor(theme.props[val.substr(1)]); - } - - // ref (const) - else if (val[0] === '$') { - return getColor(theme.props[val]); - } - - // func - else if (val[0] === ':') { - const parts = val.split('<'); - const func = parts.shift().substr(1); - const arg = parseFloat(parts.shift()); - const color = getColor(parts.join('<')); - - switch (func) { - case 'darken': return color.darken(arg); - case 'lighten': return color.lighten(arg); - case 'alpha': return color.setAlpha(arg); - case 'hue': return color.spin(arg); - case 'saturate': return color.saturate(arg); - } - } - - // other case - return tinycolor(val); - } - - const props = {}; - - for (const [k, v] of Object.entries(theme.props)) { - if (k.startsWith('$')) continue; // ignore const - - props[k] = v.startsWith('"') ? v.replace(/^"\s*/, '') : genValue(getColor(v)); - } - - return props; -} - -function genValue(c: tinycolor.Instance): string { - return c.toRgbString(); -} - -export function validateTheme(theme: Record): boolean { - if (theme.id == null || typeof theme.id !== 'string') return false; - if (theme.name == null || typeof theme.name !== 'string') return false; - if (theme.base == null || !['light', 'dark'].includes(theme.base)) return false; - if (theme.props == null || typeof theme.props !== 'object') return false; - return true; -} diff --git a/packages/client/src/scripts/time.ts b/packages/client/src/scripts/time.ts deleted file mode 100644 index 34e8b6b17..000000000 --- a/packages/client/src/scripts/time.ts +++ /dev/null @@ -1,39 +0,0 @@ -const dateTimeIntervals = { - 'day': 86400000, - 'hour': 3600000, - 'ms': 1, -}; - -export function dateUTC(time: number[]): Date { - const d = time.length === 2 ? Date.UTC(time[0], time[1]) - : time.length === 3 ? Date.UTC(time[0], time[1], time[2]) - : time.length === 4 ? Date.UTC(time[0], time[1], time[2], time[3]) - : time.length === 5 ? Date.UTC(time[0], time[1], time[2], time[3], time[4]) - : time.length === 6 ? Date.UTC(time[0], time[1], time[2], time[3], time[4], time[5]) - : time.length === 7 ? Date.UTC(time[0], time[1], time[2], time[3], time[4], time[5], time[6]) - : null; - - if (!d) throw 'wrong number of arguments'; - - return new Date(d); -} - -export function isTimeSame(a: Date, b: Date): boolean { - return a.getTime() === b.getTime(); -} - -export function isTimeBefore(a: Date, b: Date): boolean { - return (a.getTime() - b.getTime()) < 0; -} - -export function isTimeAfter(a: Date, b: Date): boolean { - return (a.getTime() - b.getTime()) > 0; -} - -export function addTime(x: Date, value: number, span: keyof typeof dateTimeIntervals = 'ms'): Date { - return new Date(x.getTime() + (value * dateTimeIntervals[span])); -} - -export function subtractTime(x: Date, value: number, span: keyof typeof dateTimeIntervals = 'ms'): Date { - return new Date(x.getTime() - (value * dateTimeIntervals[span])); -} diff --git a/packages/client/src/scripts/timezones.ts b/packages/client/src/scripts/timezones.ts deleted file mode 100644 index 8ce07323f..000000000 --- a/packages/client/src/scripts/timezones.ts +++ /dev/null @@ -1,49 +0,0 @@ -export const timezones = [{ - name: 'UTC', - abbrev: 'UTC', - offset: 0, -}, { - name: 'Europe/Berlin', - abbrev: 'CET', - offset: 60, -}, { - name: 'Asia/Tokyo', - abbrev: 'JST', - offset: 540, -}, { - name: 'Asia/Seoul', - abbrev: 'KST', - offset: 540, -}, { - name: 'Asia/Shanghai', - abbrev: 'CST', - offset: 480, -}, { - name: 'Australia/Sydney', - abbrev: 'AEST', - offset: 600, -}, { - name: 'Australia/Darwin', - abbrev: 'ACST', - offset: 570, -}, { - name: 'Australia/Perth', - abbrev: 'AWST', - offset: 480, -}, { - name: 'America/New_York', - abbrev: 'EST', - offset: -300, -}, { - name: 'America/Mexico_City', - abbrev: 'CST', - offset: -360, -}, { - name: 'America/Phoenix', - abbrev: 'MST', - offset: -420, -}, { - name: 'America/Los_Angeles', - abbrev: 'PST', - offset: -480, -}]; diff --git a/packages/client/src/scripts/touch.ts b/packages/client/src/scripts/touch.ts deleted file mode 100644 index 5251bc2e2..000000000 --- a/packages/client/src/scripts/touch.ts +++ /dev/null @@ -1,23 +0,0 @@ -const isTouchSupported = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0; - -export let isTouchUsing = false; - -export let isScreenTouching = false; - -if (isTouchSupported) { - window.addEventListener('touchstart', () => { - // maxTouchPointsなどでの判定だけだと、「タッチ機能付きディスプレイを使っているがマウスでしか操作しない」場合にも - // タッチで使っていると判定されてしまうため、実際に一度でもタッチされたらtrueにする - isTouchUsing = true; - - isScreenTouching = true; - }, { passive: true }); - - window.addEventListener('touchend', () => { - // 子要素のtouchstartイベントでstopPropagation()が呼ばれると親要素に伝搬されずタッチされたと判定されないため、 - // touchendイベントでもtouchstartイベントと同様にtrueにする - isTouchUsing = true; - - isScreenTouching = false; - }, { passive: true }); -} diff --git a/packages/client/src/scripts/twemoji-base.ts b/packages/client/src/scripts/twemoji-base.ts deleted file mode 100644 index 638aae328..000000000 --- a/packages/client/src/scripts/twemoji-base.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const twemojiSvgBase = '/twemoji'; - -export function char2fileName(char: string): string { - let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16)); - if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f'); - codes = codes.filter(x => x && x.length); - return codes.join('-'); -} - -export function char2filePath(char: string): string { - return `${twemojiSvgBase}/${char2fileName(char)}.svg`; -} diff --git a/packages/client/src/scripts/unison-reload.ts b/packages/client/src/scripts/unison-reload.ts deleted file mode 100644 index 59af584c1..000000000 --- a/packages/client/src/scripts/unison-reload.ts +++ /dev/null @@ -1,15 +0,0 @@ -// SafariがBroadcastChannel未実装なのでライブラリを使う -import { BroadcastChannel } from 'broadcast-channel'; - -export const reloadChannel = new BroadcastChannel('reload'); - -// BroadcastChannelを用いて、クライアントが一斉にreloadするようにします。 -export function unisonReload(path?: string) { - if (path !== undefined) { - reloadChannel.postMessage(path); - location.href = path; - } else { - reloadChannel.postMessage(null); - location.reload(); - } -} diff --git a/packages/client/src/scripts/upload.ts b/packages/client/src/scripts/upload.ts deleted file mode 100644 index 51f1c1b86..000000000 --- a/packages/client/src/scripts/upload.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { reactive, ref } from 'vue'; -import * as Misskey from 'misskey-js'; -import { readAndCompressImage } from 'browser-image-resizer'; -import { defaultStore } from '@/store'; -import { apiUrl } from '@/config'; -import { $i } from '@/account'; -import { alert } from '@/os'; -import { i18n } from '@/i18n'; - -type Uploading = { - id: string; - name: string; - progressMax: number | undefined; - progressValue: number | undefined; - img: string; -}; -export const uploads = ref([]); - -const compressTypeMap = { - 'image/jpeg': { quality: 0.85, mimeType: 'image/jpeg' }, - 'image/webp': { quality: 0.85, mimeType: 'image/jpeg' }, - 'image/svg+xml': { quality: 1, mimeType: 'image/png' }, -} as const; - -const mimeTypeMap = { - 'image/webp': 'webp', - 'image/jpeg': 'jpg', - 'image/png': 'png', -} as const; - -export function uploadFile( - file: File, - folder?: any, - name?: string, - keepOriginal: boolean = defaultStore.state.keepOriginalUploading, -): Promise { - if (folder && typeof folder === 'object') folder = folder.id; - - return new Promise((resolve, reject) => { - const id = Math.random().toString(); - - const reader = new FileReader(); - reader.onload = async (ev) => { - const ctx = reactive({ - id: id, - name: name || file.name || 'untitled', - progressMax: undefined, - progressValue: undefined, - img: window.URL.createObjectURL(file), - }); - - uploads.value.push(ctx); - - let resizedImage: any; - if (!keepOriginal && file.type in compressTypeMap) { - const imgConfig = compressTypeMap[file.type]; - - const config = { - maxWidth: 2048, - maxHeight: 2048, - debug: true, - ...imgConfig, - }; - - try { - resizedImage = await readAndCompressImage(file, config); - ctx.name = file.type !== imgConfig.mimeType ? `${ctx.name}.${mimeTypeMap[compressTypeMap[file.type].mimeType]}` : ctx.name; - } catch (err) { - console.error('Failed to resize image', err); - } - } - - const formData = new FormData(); - formData.append('i', $i.token); - formData.append('force', 'true'); - formData.append('file', resizedImage || file); - formData.append('name', ctx.name); - if (folder) formData.append('folderId', folder); - - const xhr = new XMLHttpRequest(); - xhr.open('POST', apiUrl + '/drive/files/create', true); - xhr.onload = (ev) => { - if (xhr.status !== 200 || ev.target == null || ev.target.response == null) { - // TODO: 消すのではなくて(ネットワーク的なエラーなら)再送できるようにしたい - uploads.value = uploads.value.filter(x => x.id !== id); - - if (ev.target?.response) { - const res = JSON.parse(ev.target.response); - if (res.error?.id === 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2') { - alert({ - type: 'error', - title: i18n.ts.failedToUpload, - text: i18n.ts.cannotUploadBecauseInappropriate, - }); - } else if (res.error?.id === 'd08dbc37-a6a9-463a-8c47-96c32ab5f064') { - alert({ - type: 'error', - title: i18n.ts.failedToUpload, - text: i18n.ts.cannotUploadBecauseNoFreeSpace, - }); - } else { - alert({ - type: 'error', - title: i18n.ts.failedToUpload, - text: `${res.error?.message}\n${res.error?.code}\n${res.error?.id}`, - }); - } - } else { - alert({ - type: 'error', - title: 'Failed to upload', - text: `${JSON.stringify(ev.target?.response)}, ${JSON.stringify(xhr.response)}`, - }); - } - - reject(); - return; - } - - const driveFile = JSON.parse(ev.target.response); - - resolve(driveFile); - - uploads.value = uploads.value.filter(x => x.id !== id); - }; - - xhr.upload.onprogress = ev => { - if (ev.lengthComputable) { - ctx.progressMax = ev.total; - ctx.progressValue = ev.loaded; - } - }; - - xhr.send(formData); - }; - reader.readAsArrayBuffer(file); - }); -} diff --git a/packages/client/src/scripts/url.ts b/packages/client/src/scripts/url.ts deleted file mode 100644 index 86735de9f..000000000 --- a/packages/client/src/scripts/url.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function query(obj: Record): string { - const params = Object.entries(obj) - .filter(([, v]) => Array.isArray(v) ? v.length : v !== undefined) - .reduce((a, [k, v]) => (a[k] = v, a), {} as Record); - - return Object.entries(params) - .map((p) => `${p[0]}=${encodeURIComponent(p[1])}`) - .join('&'); -} - -export function appendQuery(url: string, query: string): string { - return `${url}${/\?/.test(url) ? url.endsWith('?') ? '' : '&' : '?'}${query}`; -} diff --git a/packages/client/src/scripts/use-chart-tooltip.ts b/packages/client/src/scripts/use-chart-tooltip.ts deleted file mode 100644 index 91c27585f..000000000 --- a/packages/client/src/scripts/use-chart-tooltip.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { onUnmounted, ref } from 'vue'; -import * as os from '@/os'; -import MkChartTooltip from '@/components/MkChartTooltip.vue'; - -export function useChartTooltip() { - const tooltipShowing = ref(false); - const tooltipX = ref(0); - const tooltipY = ref(0); - const tooltipTitle = ref(null); - const tooltipSeries = ref(null); - let disposeTooltipComponent; - - os.popup(MkChartTooltip, { - showing: tooltipShowing, - x: tooltipX, - y: tooltipY, - title: tooltipTitle, - series: tooltipSeries, - }, {}).then(({ dispose }) => { - disposeTooltipComponent = dispose; - }); - - onUnmounted(() => { - if (disposeTooltipComponent) disposeTooltipComponent(); - }); - - function handler(context) { - if (context.tooltip.opacity === 0) { - tooltipShowing.value = false; - return; - } - - tooltipTitle.value = context.tooltip.title[0]; - tooltipSeries.value = context.tooltip.body.map((b, i) => ({ - backgroundColor: context.tooltip.labelColors[i].backgroundColor, - borderColor: context.tooltip.labelColors[i].borderColor, - text: b.lines[0], - })); - - const rect = context.chart.canvas.getBoundingClientRect(); - - tooltipShowing.value = true; - tooltipX.value = rect.left + window.pageXOffset + context.tooltip.caretX; - tooltipY.value = rect.top + window.pageYOffset + context.tooltip.caretY; - } - - return { - handler, - }; -} diff --git a/packages/client/src/scripts/use-interval.ts b/packages/client/src/scripts/use-interval.ts deleted file mode 100644 index 201ba417e..000000000 --- a/packages/client/src/scripts/use-interval.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { onMounted, onUnmounted } from 'vue'; - -export function useInterval(fn: () => void, interval: number, options: { - immediate: boolean; - afterMounted: boolean; -}): void { - if (Number.isNaN(interval)) return; - - let intervalId: number | null = null; - - if (options.afterMounted) { - onMounted(() => { - if (options.immediate) fn(); - intervalId = window.setInterval(fn, interval); - }); - } else { - if (options.immediate) fn(); - intervalId = window.setInterval(fn, interval); - } - - onUnmounted(() => { - if (intervalId) window.clearInterval(intervalId); - }); -} diff --git a/packages/client/src/scripts/use-leave-guard.ts b/packages/client/src/scripts/use-leave-guard.ts deleted file mode 100644 index a93b84d1f..000000000 --- a/packages/client/src/scripts/use-leave-guard.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { inject, onUnmounted, Ref } from 'vue'; -import { i18n } from '@/i18n'; -import * as os from '@/os'; - -export function useLeaveGuard(enabled: Ref) { - /* TODO - const setLeaveGuard = inject('setLeaveGuard'); - - if (setLeaveGuard) { - setLeaveGuard(async () => { - if (!enabled.value) return false; - - const { canceled } = await os.confirm({ - type: 'warning', - text: i18n.ts.leaveConfirm, - }); - - return canceled; - }); - } else { - onBeforeRouteLeave(async (to, from) => { - if (!enabled.value) return true; - - const { canceled } = await os.confirm({ - type: 'warning', - text: i18n.ts.leaveConfirm, - }); - - return !canceled; - }); - } - */ - - /* - function onBeforeLeave(ev: BeforeUnloadEvent) { - if (enabled.value) { - ev.preventDefault(); - ev.returnValue = ''; - } - } - - window.addEventListener('beforeunload', onBeforeLeave); - onUnmounted(() => { - window.removeEventListener('beforeunload', onBeforeLeave); - }); - */ -} diff --git a/packages/client/src/scripts/use-note-capture.ts b/packages/client/src/scripts/use-note-capture.ts deleted file mode 100644 index f1f976693..000000000 --- a/packages/client/src/scripts/use-note-capture.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { onUnmounted, Ref } from 'vue'; -import * as misskey from 'misskey-js'; -import { stream } from '@/stream'; -import { $i } from '@/account'; - -export function useNoteCapture(props: { - rootEl: Ref; - note: Ref; - isDeletedRef: Ref; -}) { - const note = props.note; - const connection = $i ? stream : null; - - function onStreamNoteUpdated(noteData): void { - const { type, id, body } = noteData; - - if (id !== note.value.id) return; - - switch (type) { - case 'reacted': { - const reaction = body.reaction; - - if (body.emoji) { - const emojis = note.value.emojis || []; - if (!emojis.includes(body.emoji)) { - note.value.emojis = [...emojis, body.emoji]; - } - } - - // TODO: reactionsプロパティがない場合ってあったっけ? なければ || {} は消せる - const currentCount = (note.value.reactions || {})[reaction] || 0; - - note.value.reactions[reaction] = currentCount + 1; - - if ($i && (body.userId === $i.id)) { - note.value.myReaction = reaction; - } - break; - } - - case 'unreacted': { - const reaction = body.reaction; - - // TODO: reactionsプロパティがない場合ってあったっけ? なければ || {} は消せる - const currentCount = (note.value.reactions || {})[reaction] || 0; - - note.value.reactions[reaction] = Math.max(0, currentCount - 1); - - if ($i && (body.userId === $i.id)) { - note.value.myReaction = null; - } - break; - } - - case 'pollVoted': { - const choice = body.choice; - - const choices = [...note.value.poll.choices]; - choices[choice] = { - ...choices[choice], - votes: choices[choice].votes + 1, - ...($i && (body.userId === $i.id) ? { - isVoted: true - } : {}) - }; - - note.value.poll.choices = choices; - break; - } - - case 'deleted': { - props.isDeletedRef.value = true; - break; - } - } - } - - function capture(withHandler = false): void { - if (connection) { - // TODO: このノートがストリーミング経由で流れてきた場合のみ sr する - connection.send(document.body.contains(props.rootEl.value) ? 'sr' : 's', { id: note.value.id }); - if (withHandler) connection.on('noteUpdated', onStreamNoteUpdated); - } - } - - function decapture(withHandler = false): void { - if (connection) { - connection.send('un', { - id: note.value.id, - }); - if (withHandler) connection.off('noteUpdated', onStreamNoteUpdated); - } - } - - function onStreamConnected() { - capture(false); - } - - capture(true); - if (connection) { - connection.on('_connected_', onStreamConnected); - } - - onUnmounted(() => { - decapture(true); - if (connection) { - connection.off('_connected_', onStreamConnected); - } - }); -} diff --git a/packages/client/src/scripts/use-tooltip.ts b/packages/client/src/scripts/use-tooltip.ts deleted file mode 100644 index 1f6e0fb6c..000000000 --- a/packages/client/src/scripts/use-tooltip.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { Ref, ref, watch, onUnmounted } from 'vue'; - -export function useTooltip( - elRef: Ref, - onShow: (showing: Ref) => void, - delay = 300, -): void { - let isHovering = false; - - // iOS(Androidも?)では、要素をタップした直後に(おせっかいで)mouseoverイベントを発火させたりするため、それを無視するためのフラグ - // 無視しないと、画面に触れてないのにツールチップが出たりし、ユーザビリティが損なわれる - // TODO: 一度でもタップすると二度とマウスでツールチップ出せなくなるのをどうにかする 定期的にfalseに戻すとか...? - let shouldIgnoreMouseover = false; - - let timeoutId: number; - - let changeShowingState: (() => void) | null; - - const open = () => { - close(); - if (!isHovering) return; - if (elRef.value == null) return; - const el = elRef.value instanceof Element ? elRef.value : elRef.value.$el; - if (!document.body.contains(el)) return; // openしようとしたときに既に元要素がDOMから消えている場合があるため - - const showing = ref(true); - onShow(showing); - changeShowingState = () => { - showing.value = false; - }; - }; - - const close = () => { - if (changeShowingState != null) { - changeShowingState(); - changeShowingState = null; - } - }; - - const onMouseover = () => { - if (isHovering) return; - if (shouldIgnoreMouseover) return; - isHovering = true; - timeoutId = window.setTimeout(open, delay); - }; - - const onMouseleave = () => { - if (!isHovering) return; - isHovering = false; - window.clearTimeout(timeoutId); - close(); - }; - - const onTouchstart = () => { - shouldIgnoreMouseover = true; - if (isHovering) return; - isHovering = true; - timeoutId = window.setTimeout(open, delay); - }; - - const onTouchend = () => { - if (!isHovering) return; - isHovering = false; - window.clearTimeout(timeoutId); - close(); - }; - - const stop = watch(elRef, () => { - if (elRef.value) { - stop(); - const el = elRef.value instanceof Element ? elRef.value : elRef.value.$el; - el.addEventListener('mouseover', onMouseover, { passive: true }); - el.addEventListener('mouseleave', onMouseleave, { passive: true }); - el.addEventListener('touchstart', onTouchstart, { passive: true }); - el.addEventListener('touchend', onTouchend, { passive: true }); - el.addEventListener('click', close, { passive: true }); - } - }, { - immediate: true, - flush: 'post', - }); - - onUnmounted(() => { - close(); - }); -} diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts deleted file mode 100644 index 3971214af..000000000 --- a/packages/client/src/store.ts +++ /dev/null @@ -1,361 +0,0 @@ -import { markRaw, ref } from 'vue'; -import { Storage } from './pizzax'; -import { Theme } from './scripts/theme'; - -export const postFormActions = []; -export const userActions = []; -export const noteActions = []; -export const noteViewInterruptors = []; -export const notePostInterruptors = []; - -// TODO: それぞれいちいちwhereとかdefaultというキーを付けなきゃいけないの冗長なのでなんとかする(ただ型定義が面倒になりそう) -// あと、現行の定義の仕方なら「whereが何であるかに関わらずキー名の重複不可」という制約を付けられるメリットもあるからそのメリットを引き継ぐ方法も考えないといけない -export const defaultStore = markRaw(new Storage('base', { - tutorial: { - where: 'account', - default: 0, - }, - keepCw: { - where: 'account', - default: true, - }, - showFullAcct: { - where: 'account', - default: false, - }, - rememberNoteVisibility: { - where: 'account', - default: false, - }, - defaultNoteVisibility: { - where: 'account', - default: 'public', - }, - defaultNoteLocalOnly: { - where: 'account', - default: false, - }, - uploadFolder: { - where: 'account', - default: null as string | null, - }, - pastedFileName: { - where: 'account', - default: 'yyyy-MM-dd HH-mm-ss [{{number}}]', - }, - keepOriginalUploading: { - where: 'account', - default: false, - }, - memo: { - where: 'account', - default: null, - }, - reactions: { - where: 'account', - default: ['👍', '❤️', '😆', '🤔', '😮', '🎉', '💢', '😥', '😇', '🍮'], - }, - mutedWords: { - where: 'account', - default: [], - }, - mutedAds: { - where: 'account', - default: [] as string[], - }, - - menu: { - where: 'deviceAccount', - default: [ - 'notifications', - 'favorites', - 'drive', - 'followRequests', - '-', - 'explore', - 'announcements', - 'search', - '-', - 'ui', - ], - }, - visibility: { - where: 'deviceAccount', - default: 'public' as 'public' | 'home' | 'followers' | 'specified', - }, - localOnly: { - where: 'deviceAccount', - default: false, - }, - statusbars: { - where: 'deviceAccount', - default: [] as { - name: string; - id: string; - type: string; - size: 'verySmall' | 'small' | 'medium' | 'large' | 'veryLarge'; - black: boolean; - props: Record; - }[], - }, - widgets: { - where: 'deviceAccount', - default: [] as { - name: string; - id: string; - place: string | null; - data: Record; - }[], - }, - tl: { - where: 'deviceAccount', - default: { - src: 'home' as 'home' | 'local' | 'social' | 'global', - arg: null, - }, - }, - - overridedDeviceKind: { - where: 'device', - default: null as null | 'smartphone' | 'tablet' | 'desktop', - }, - serverDisconnectedBehavior: { - where: 'device', - default: 'quiet' as 'quiet' | 'reload' | 'dialog', - }, - nsfw: { - where: 'device', - default: 'respect' as 'respect' | 'force' | 'ignore', - }, - animation: { - where: 'device', - default: true, - }, - animatedMfm: { - where: 'device', - default: true, - }, - loadRawImages: { - where: 'device', - default: false, - }, - imageNewTab: { - where: 'device', - default: false, - }, - disableShowingAnimatedImages: { - where: 'device', - default: false, - }, - disablePagesScript: { - where: 'device', - default: false, - }, - useOsNativeEmojis: { - where: 'device', - default: false, - }, - disableDrawer: { - where: 'device', - default: false, - }, - useBlurEffectForModal: { - where: 'device', - default: true, - }, - useBlurEffect: { - where: 'device', - default: true, - }, - showFixedPostForm: { - where: 'device', - default: false, - }, - enableInfiniteScroll: { - where: 'device', - default: true, - }, - useReactionPickerForContextMenu: { - where: 'device', - default: false, - }, - showGapBetweenNotesInTimeline: { - where: 'device', - default: false, - }, - darkMode: { - where: 'device', - default: false, - }, - instanceTicker: { - where: 'device', - default: 'remote' as 'none' | 'remote' | 'always', - }, - reactionPickerSize: { - where: 'device', - default: 1, - }, - reactionPickerWidth: { - where: 'device', - default: 1, - }, - reactionPickerHeight: { - where: 'device', - default: 2, - }, - reactionPickerUseDrawerForMobile: { - where: 'device', - default: true, - }, - recentlyUsedEmojis: { - where: 'device', - default: [] as string[], - }, - recentlyUsedUsers: { - where: 'device', - default: [] as string[], - }, - defaultSideView: { - where: 'device', - default: false, - }, - menuDisplay: { - where: 'device', - default: 'sideFull' as 'sideFull' | 'sideIcon' | 'top', - }, - reportError: { - where: 'device', - default: false, - }, - squareAvatars: { - where: 'device', - default: false, - }, - postFormWithHashtags: { - where: 'device', - default: false, - }, - postFormHashtags: { - where: 'device', - default: '', - }, - themeInitial: { - where: 'device', - default: true, - }, - numberOfPageCache: { - where: 'device', - default: 5, - }, - aiChanMode: { - where: 'device', - default: false, - }, -})); - -// TODO: 他のタブと永続化されたstateを同期 - -const PREFIX = 'miux:'; - -type Plugin = { - id: string; - name: string; - active: boolean; - configData: Record; - token: string; - ast: any[]; -}; - -/** - * 常にメモリにロードしておく必要がないような設定情報を保管するストレージ(非リアクティブ) - */ -import lightTheme from '@/themes/l-light.json5'; -import darkTheme from '@/themes/d-green-lime.json5'; - -export class ColdDeviceStorage { - public static default = { - lightTheme, - darkTheme, - syncDeviceDarkMode: true, - plugins: [] as Plugin[], - mediaVolume: 0.5, - sound_masterVolume: 0.3, - sound_note: { type: 'syuilo/down', volume: 1 }, - sound_noteMy: { type: 'syuilo/up', volume: 1 }, - sound_notification: { type: 'syuilo/pope2', volume: 1 }, - sound_chat: { type: 'syuilo/pope1', volume: 1 }, - sound_chatBg: { type: 'syuilo/waon', volume: 1 }, - sound_antenna: { type: 'syuilo/triple', volume: 1 }, - sound_channel: { type: 'syuilo/square-pico', volume: 1 }, - }; - - public static watchers = []; - - public static get(key: T): typeof ColdDeviceStorage.default[T] { - // TODO: indexedDBにする - // ただしその際はnullチェックではなくキー存在チェックにしないとダメ - // (indexedDBはnullを保存できるため、ユーザーが意図してnullを格納した可能性がある) - const value = localStorage.getItem(PREFIX + key); - if (value == null) { - return ColdDeviceStorage.default[key]; - } else { - return JSON.parse(value); - } - } - - public static set(key: T, value: typeof ColdDeviceStorage.default[T]): void { - // 呼び出し側のバグ等で undefined が来ることがある - // undefined を文字列として localStorage に入れると参照する際の JSON.parse でコケて不具合の元になるため無視 - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (value === undefined) { - console.error(`attempt to store undefined value for key '${key}'`); - return; - } - - localStorage.setItem(PREFIX + key, JSON.stringify(value)); - - for (const watcher of this.watchers) { - if (watcher.key === key) watcher.callback(value); - } - } - - public static watch(key, callback) { - this.watchers.push({ key, callback }); - } - - // TODO: VueのcustomRef使うと良い感じになるかも - public static ref(key: T) { - const v = ColdDeviceStorage.get(key); - const r = ref(v); - // TODO: このままではwatcherがリークするので開放する方法を考える - this.watch(key, v => { - r.value = v; - }); - return r; - } - - /** - * 特定のキーの、簡易的なgetter/setterを作ります - * 主にvue場で設定コントロールのmodelとして使う用 - */ - public static makeGetterSetter(key: K) { - // TODO: VueのcustomRef使うと良い感じになるかも - const valueRef = ColdDeviceStorage.ref(key); - return { - get: () => { - return valueRef.value; - }, - set: (value: unknown) => { - const val = value; - ColdDeviceStorage.set(key, val); - }, - }; - } -} - -// このファイルに書きたくないけどここに書かないと何故かVeturが認識しない -declare module '@vue/runtime-core' { - interface ComponentCustomProperties { - $store: typeof defaultStore; - } -} diff --git a/packages/client/src/stream.ts b/packages/client/src/stream.ts deleted file mode 100644 index dea3459b8..000000000 --- a/packages/client/src/stream.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as Misskey from 'misskey-js'; -import { markRaw } from 'vue'; -import { $i } from '@/account'; -import { url } from '@/config'; - -export const stream = markRaw(new Misskey.Stream(url, $i ? { - token: $i.token, -} : null)); diff --git a/packages/client/src/style.scss b/packages/client/src/style.scss deleted file mode 100644 index 27e33702a..000000000 --- a/packages/client/src/style.scss +++ /dev/null @@ -1,561 +0,0 @@ -@charset "utf-8"; - -:root { - --radius: 12px; - --marginFull: 16px; - --marginHalf: 10px; - - --margin: var(--marginFull); - - @media (max-width: 500px) { - --margin: var(--marginHalf); - } - - //--ad: rgb(255 169 0 / 10%); -} - -::selection { - color: #fff; - background-color: var(--accent); -} - -html { - touch-action: manipulation; - background-color: var(--bg); - background-attachment: fixed; - background-size: cover; - background-position: center; - color: var(--fg); - accent-color: var(--accent); - overflow: auto; - overflow-wrap: break-word; - font-family: "BIZ UDGothic", Roboto, HelveticaNeue, Arial, sans-serif; - font-size: 14px; - line-height: 1.35; - text-size-adjust: 100%; - tab-size: 2; - - &, * { - scrollbar-color: var(--scrollbarHandle) inherit; - scrollbar-width: thin; - - &::-webkit-scrollbar { - width: 6px; - height: 6px; - } - - &::-webkit-scrollbar-track { - background: inherit; - } - - &::-webkit-scrollbar-thumb { - background: var(--scrollbarHandle); - - &:hover { - background: var(--scrollbarHandleHover); - } - - &:active { - background: var(--accent); - } - } - } - - &.f-1 { - font-size: 15px; - } - - &.f-2 { - font-size: 16px; - } - - &.f-3 { - font-size: 17px; - } - - &.useSystemFont { - font-family: sans-serif; - } -} - -html._themeChanging_ { - &, * { - transition: background 1s ease, border 1s ease !important; - } -} - -html, body { - margin: 0; - padding: 0; - scroll-behavior: smooth; -} - -a { - text-decoration: none; - cursor: pointer; - color: inherit; - tap-highlight-color: transparent; - -webkit-tap-highlight-color: transparent; - - &:hover { - text-decoration: underline; - } -} - -textarea, input { - tap-highlight-color: transparent; - -webkit-tap-highlight-color: transparent; -} - -optgroup, option { - background: var(--panel); - color: var(--fg); -} - -hr { - margin: var(--margin) 0 var(--margin) 0; - border: none; - height: 1px; - background: var(--divider); -} - -._noSelect { - user-select: none; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -._ghost { - &, * { - @extend ._noSelect; - pointer-events: none; - } -} - -._modalBg { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: var(--modalBg); - -webkit-backdrop-filter: var(--modalBgFilter); - backdrop-filter: var(--modalBgFilter); -} - -._shadow { - box-shadow: 0px 4px 32px var(--shadow) !important; -} - -._button { - appearance: none; - display: inline-block; - padding: 0; - margin: 0; // for Safari - background: none; - border: none; - cursor: pointer; - color: inherit; - touch-action: manipulation; - tap-highlight-color: transparent; - -webkit-tap-highlight-color: transparent; - font-size: 1em; - font-family: inherit; - line-height: inherit; - - &, * { - @extend ._noSelect; - } - - * { - pointer-events: none; - } - - &:focus-visible { - outline: none; - } - - &:disabled { - opacity: 0.5; - cursor: default; - } -} - -._buttonPrimary { - @extend ._button; - color: var(--fgOnAccent); - background: var(--accent); - - &:not(:disabled):hover { - background: var(--X8); - } - - &:not(:disabled):active { - background: var(--X9); - } -} - -._buttonGradate { - @extend ._buttonPrimary; - color: var(--fgOnAccent); - background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB)); - - &:not(:disabled):hover { - background: linear-gradient(90deg, var(--X8), var(--X8)); - } - - &:not(:disabled):active { - background: linear-gradient(90deg, var(--X8), var(--X8)); - } -} - -._help { - color: var(--accent); - cursor: help -} - -._textButton { - @extend ._button; - color: var(--accent); - - &:not(:disabled):hover { - text-decoration: underline; - } -} - -._inputs { - display: flex; - margin: 32px 0; - - &:first-child { - margin-top: 8px; - } - - &:last-child { - margin-bottom: 8px; - } - - > * { - flex: 1; - margin: 0 !important; - - &:not(:first-child) { - margin-left: 8px !important; - } - - &:not(:last-child) { - margin-right: 8px !important; - } - } -} - -._panel { - background: var(--panel); - border-radius: var(--radius); - overflow: clip; -} - -._block { - @extend ._panel; - - & + ._block { - margin-top: var(--margin); - } -} - -._gap { - margin: var(--margin) 0; -} - -// TODO: 廃止 -._card { - @extend ._panel; - - // TODO: _cardTitle に - > ._title { - margin: 0; - padding: 22px 32px; - font-size: 1em; - border-bottom: solid 1px var(--panelHeaderDivider); - font-weight: bold; - background: var(--panelHeaderBg); - color: var(--panelHeaderFg); - - @media (max-width: 500px) { - padding: 16px; - font-size: 1em; - } - } - - // TODO: _cardContent に - > ._content { - padding: 32px; - - @media (max-width: 500px) { - padding: 16px; - } - - &._noPad { - padding: 0 !important; - } - - & + ._content { - border-top: solid 0.5px var(--divider); - } - } - - // TODO: _cardFooter に - > ._footer { - border-top: solid 0.5px var(--divider); - padding: 24px 32px; - - @media (max-width: 500px) { - padding: 16px; - } - } -} - -._borderButton { - @extend ._button; - display: block; - width: 100%; - padding: 10px; - box-sizing: border-box; - text-align: center; - border: solid 0.5px var(--divider); - border-radius: var(--radius); - - &:active { - border-color: var(--accent); - } -} - -._popup { - background: var(--popup); - border-radius: var(--radius); - contain: content; -} - -// TODO: 廃止 -._monolithic_ { - ._section:not(:empty) { - box-sizing: border-box; - padding: var(--root-margin, 32px); - - @media (max-width: 500px) { - --root-margin: 10px; - } - - & + ._section:not(:empty) { - border-top: solid 0.5px var(--divider); - } - } -} - -._narrow_ ._card { - > ._title { - padding: 16px; - font-size: 1em; - } - - > ._content { - padding: 16px; - } - - > ._footer { - padding: 16px; - } -} - -._acrylic { - background: var(--acrylicPanel); - -webkit-backdrop-filter: var(--blur, blur(15px)); - backdrop-filter: var(--blur, blur(15px)); -} - -._formBlock { - margin: 1.5em 0; -} - -._formRoot { - > ._formBlock:first-child { - margin-top: 0; - } - - > ._formBlock:last-child { - margin-bottom: 0; - } -} - -._formLinksGrid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - grid-gap: 12px; -} - -._formLinks { - > *:not(:last-child) { - margin-bottom: 8px; - } -} - -._beta { - margin-left: 0.7em; - font-size: 65%; - padding: 2px 3px; - color: var(--accent); - border: solid 1px var(--accent); - border-radius: 4px; - vertical-align: top; -} - -._table { - > ._row { - display: flex; - - &:not(:last-child) { - margin-bottom: 16px; - - @media (max-width: 500px) { - margin-bottom: 8px; - } - } - - > ._cell { - flex: 1; - - > ._label { - font-size: 80%; - opacity: 0.7; - - > ._icon { - margin-right: 4px; - display: none; - } - } - } - } -} - -._fullinfo { - padding: 64px 32px; - text-align: center; - - > img { - vertical-align: bottom; - height: 128px; - margin-bottom: 16px; - border-radius: 16px; - } -} - -._keyValue { - display: flex; - - > * { - flex: 1; - } -} - -._link { - color: var(--link); -} - -._caption { - font-size: 0.8em; - opacity: 0.7; -} - -._monospace { - font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace !important; -} - -._code { - @extend ._monospace; - background: #2d2d2d; - color: #ccc; - font-size: 14px; - line-height: 1.5; - padding: 5px; -} - -.prism-editor__textarea:focus { - outline: none; -} - -._zoom { - transition-duration: 0.5s, 0.5s; - transition-property: opacity, transform; - transition-timing-function: cubic-bezier(0,.5,.5,1); -} - -.zoom-enter-active, .zoom-leave-active { - transition: opacity 0.5s, transform 0.5s !important; -} -.zoom-enter-from, .zoom-leave-to { - opacity: 0; - transform: scale(0.9); -} - -@keyframes blink { - 0% { opacity: 1; transform: scale(1); } - 30% { opacity: 1; transform: scale(1); } - 90% { opacity: 0; transform: scale(0.5); } -} - -@keyframes tada { - from { - transform: scale3d(1, 1, 1); - } - - 10%, - 20% { - transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - } - - 30%, - 50%, - 70%, - 90% { - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); - } - - 40%, - 60%, - 80% { - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); - } - - to { - transform: scale3d(1, 1, 1); - } -} - -._anime_bounce { - will-change: transform; - animation: bounce ease 0.7s; - animation-iteration-count: 1; - transform-origin: 50% 50%; -} -._anime_bounce_ready { - will-change: transform; - transform: scaleX(0.90) scaleY(0.90) ; -} -._anime_bounce_standBy { - transition: transform 0.1s ease; -} - -@keyframes bounce{ - 0% { - transform: scaleX(0.90) scaleY(0.90) ; - } - 19% { - transform: scaleX(1.10) scaleY(1.10) ; - } - 48% { - transform: scaleX(0.95) scaleY(0.95) ; - } - 100% { - transform: scaleX(1.00) scaleY(1.00) ; - } -} diff --git a/packages/client/src/theme-store.ts b/packages/client/src/theme-store.ts deleted file mode 100644 index fdc92ed79..000000000 --- a/packages/client/src/theme-store.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { api } from '@/os'; -import { $i } from '@/account'; -import { Theme } from './scripts/theme'; - -const lsCacheKey = $i ? `themes:${$i.id}` : ''; - -export function getThemes(): Theme[] { - return JSON.parse(localStorage.getItem(lsCacheKey) || '[]'); -} - -export async function fetchThemes(): Promise { - if ($i == null) return; - - try { - const themes = await api('i/registry/get', { scope: ['client'], key: 'themes' }); - localStorage.setItem(lsCacheKey, JSON.stringify(themes)); - } catch (err) { - if (err.code === 'NO_SUCH_KEY') return; - throw err; - } -} - -export async function addTheme(theme: Theme): Promise { - await fetchThemes(); - const themes = getThemes().concat(theme); - await api('i/registry/set', { scope: ['client'], key: 'themes', value: themes }); - localStorage.setItem(lsCacheKey, JSON.stringify(themes)); -} - -export async function removeTheme(theme: Theme): Promise { - const themes = getThemes().filter(t => t.id !== theme.id); - await api('i/registry/set', { scope: ['client'], key: 'themes', value: themes }); - localStorage.setItem(lsCacheKey, JSON.stringify(themes)); -} diff --git a/packages/client/src/themes/_dark.json5 b/packages/client/src/themes/_dark.json5 deleted file mode 100644 index 88ec8a545..000000000 --- a/packages/client/src/themes/_dark.json5 +++ /dev/null @@ -1,99 +0,0 @@ -// ダークテーマのベーステーマ -// このテーマが直接使われることは無い -{ - id: 'dark', - - name: 'Dark', - author: 'syuilo', - desc: 'Default dark theme', - kind: 'dark', - - props: { - accent: '#86b300', - accentDarken: ':darken<10<@accent', - accentLighten: ':lighten<10<@accent', - accentedBg: ':alpha<0.15<@accent', - focus: ':alpha<0.3<@accent', - bg: '#000', - acrylicBg: ':alpha<0.5<@bg', - fg: '#dadada', - fgTransparentWeak: ':alpha<0.75<@fg', - fgTransparent: ':alpha<0.5<@fg', - fgHighlighted: ':lighten<3<@fg', - fgOnAccent: '#fff', - divider: 'rgba(255, 255, 255, 0.1)', - indicator: '@accent', - panel: ':lighten<3<@bg', - panelHighlight: ':lighten<3<@panel', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - panelHeaderDivider: 'rgba(0, 0, 0, 0)', - panelBorder: '" solid 1px var(--divider)', - acrylicPanel: ':alpha<0.5<@panel', - windowHeader: ':alpha<0.85<@panel', - popup: ':lighten<3<@panel', - shadow: 'rgba(0, 0, 0, 0.3)', - header: ':alpha<0.7<@panel', - navBg: '@panel', - navFg: '@fg', - navHoverFg: ':lighten<17<@fg', - navActive: '@accent', - navIndicator: '@indicator', - link: '#44a4c1', - hashtag: '#ff9156', - mention: '@accent', - mentionMe: '@mention', - renote: '#229e82', - modalBg: 'rgba(0, 0, 0, 0.5)', - scrollbarHandle: 'rgba(255, 255, 255, 0.2)', - scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)', - dateLabelFg: '@fg', - infoBg: '#253142', - infoFg: '#fff', - infoWarnBg: '#42321c', - infoWarnFg: '#ffbd3e', - switchBg: 'rgba(255, 255, 255, 0.15)', - cwBg: '#687390', - cwFg: '#393f4f', - cwHoverBg: '#707b97', - buttonBg: 'rgba(255, 255, 255, 0.05)', - buttonHoverBg: 'rgba(255, 255, 255, 0.1)', - buttonGradateA: '@accent', - buttonGradateB: ':hue<20<@accent', - swutchOffBg: 'rgba(255, 255, 255, 0.1)', - swutchOffFg: '@fg', - swutchOnBg: '@accentedBg', - swutchOnFg: '@accent', - inputBorder: 'rgba(255, 255, 255, 0.1)', - inputBorderHover: 'rgba(255, 255, 255, 0.2)', - listItemHoverBg: 'rgba(255, 255, 255, 0.03)', - driveFolderBg: ':alpha<0.3<@accent', - wallpaperOverlay: 'rgba(0, 0, 0, 0.5)', - badge: '#31b1ce', - messageBg: '@bg', - success: '#86b300', - error: '#ec4137', - warn: '#ecb637', - codeString: '#ffb675', - codeNumber: '#cfff9e', - codeBoolean: '#c59eff', - deckDivider: '#000', - htmlThemeColor: '@bg', - X2: ':darken<2<@panel', - X3: 'rgba(255, 255, 255, 0.05)', - X4: 'rgba(255, 255, 255, 0.1)', - X5: 'rgba(255, 255, 255, 0.05)', - X6: 'rgba(255, 255, 255, 0.15)', - X7: 'rgba(255, 255, 255, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.3)', - X12: 'rgba(255, 255, 255, 0.1)', - X13: 'rgba(255, 255, 255, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - X17: ':alpha<0.8<@bg', - }, -} diff --git a/packages/client/src/themes/_light.json5 b/packages/client/src/themes/_light.json5 deleted file mode 100644 index bad1291c8..000000000 --- a/packages/client/src/themes/_light.json5 +++ /dev/null @@ -1,99 +0,0 @@ -// ライトテーマのベーステーマ -// このテーマが直接使われることは無い -{ - id: 'light', - - name: 'Light', - author: 'syuilo', - desc: 'Default light theme', - kind: 'light', - - props: { - accent: '#86b300', - accentDarken: ':darken<10<@accent', - accentLighten: ':lighten<10<@accent', - accentedBg: ':alpha<0.15<@accent', - focus: ':alpha<0.3<@accent', - bg: '#fff', - acrylicBg: ':alpha<0.5<@bg', - fg: '#5f5f5f', - fgTransparentWeak: ':alpha<0.75<@fg', - fgTransparent: ':alpha<0.5<@fg', - fgHighlighted: ':darken<3<@fg', - fgOnAccent: '#fff', - divider: 'rgba(0, 0, 0, 0.1)', - indicator: '@accent', - panel: ':lighten<3<@bg', - panelHighlight: ':darken<3<@panel', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - panelHeaderDivider: 'rgba(0, 0, 0, 0)', - panelBorder: '" solid 1px var(--divider)', - acrylicPanel: ':alpha<0.5<@panel', - windowHeader: ':alpha<0.85<@panel', - popup: ':lighten<3<@panel', - shadow: 'rgba(0, 0, 0, 0.1)', - header: ':alpha<0.7<@panel', - navBg: '@panel', - navFg: '@fg', - navHoverFg: ':darken<17<@fg', - navActive: '@accent', - navIndicator: '@indicator', - link: '#44a4c1', - hashtag: '#ff9156', - mention: '@accent', - mentionMe: '@mention', - renote: '#229e82', - modalBg: 'rgba(0, 0, 0, 0.3)', - scrollbarHandle: 'rgba(0, 0, 0, 0.2)', - scrollbarHandleHover: 'rgba(0, 0, 0, 0.4)', - dateLabelFg: '@fg', - infoBg: '#e5f5ff', - infoFg: '#72818a', - infoWarnBg: '#fff0db', - infoWarnFg: '#8f6e31', - switchBg: 'rgba(0, 0, 0, 0.15)', - cwBg: '#b1b9c1', - cwFg: '#fff', - cwHoverBg: '#bbc4ce', - buttonBg: 'rgba(0, 0, 0, 0.05)', - buttonHoverBg: 'rgba(0, 0, 0, 0.1)', - buttonGradateA: '@accent', - buttonGradateB: ':hue<20<@accent', - swutchOffBg: 'rgba(0, 0, 0, 0.1)', - swutchOffFg: '@panel', - swutchOnBg: '@accent', - swutchOnFg: '@fgOnAccent', - inputBorder: 'rgba(0, 0, 0, 0.1)', - inputBorderHover: 'rgba(0, 0, 0, 0.2)', - listItemHoverBg: 'rgba(0, 0, 0, 0.03)', - driveFolderBg: ':alpha<0.3<@accent', - wallpaperOverlay: 'rgba(255, 255, 255, 0.5)', - badge: '#31b1ce', - messageBg: '@bg', - success: '#86b300', - error: '#ec4137', - warn: '#ecb637', - codeString: '#b98710', - codeNumber: '#0fbbbb', - codeBoolean: '#62b70c', - deckDivider: ':darken<3<@bg', - htmlThemeColor: '@bg', - X2: ':darken<2<@panel', - X3: 'rgba(0, 0, 0, 0.05)', - X4: 'rgba(0, 0, 0, 0.1)', - X5: 'rgba(0, 0, 0, 0.05)', - X6: 'rgba(0, 0, 0, 0.25)', - X7: 'rgba(0, 0, 0, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.1)', - X12: 'rgba(0, 0, 0, 0.1)', - X13: 'rgba(0, 0, 0, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - X17: ':alpha<0.8<@bg', - }, -} diff --git a/packages/client/src/themes/d-astro.json5 b/packages/client/src/themes/d-astro.json5 deleted file mode 100644 index c6a927ec3..000000000 --- a/packages/client/src/themes/d-astro.json5 +++ /dev/null @@ -1,78 +0,0 @@ -{ - id: '080a01c5-377d-4fbb-88cc-6bb5d04977ea', - base: 'dark', - name: 'Mi Astro Dark', - author: 'syuilo', - props: { - bg: '#232125', - fg: '#efdab9', - cwBg: '#687390', - cwFg: '#393f4f', - link: '#78b0a0', - warn: '#ecb637', - badge: '#31b1ce', - error: '#ec4137', - focus: ':alpha<0.3<@accent', - navBg: '@panel', - navFg: '@fg', - panel: '#2a272b', - accent: '#81c08b', - header: ':alpha<0.7<@bg', - infoBg: '#253142', - infoFg: '#fff', - renote: '#659CC8', - shadow: 'rgba(0, 0, 0, 0.3)', - divider: 'rgba(255, 255, 255, 0.1)', - hashtag: '#ff9156', - mention: '#ffd152', - modalBg: 'rgba(0, 0, 0, 0.5)', - success: '#86b300', - buttonBg: 'rgba(255, 255, 255, 0.05)', - acrylicBg: ':alpha<0.5<@bg', - cwHoverBg: '#707b97', - indicator: '@accent', - mentionMe: '#fb5d38', - messageBg: '@bg', - navActive: '@accent', - infoWarnBg: '#42321c', - infoWarnFg: '#ffbd3e', - navHoverFg: ':lighten<17<@fg', - dateLabelFg: '@fg', - inputBorder: 'rgba(255, 255, 255, 0.1)', - inputBorderHover: 'rgba(255, 255, 255, 0.2)', - panelBorder: '" solid 1px var(--divider)', - accentDarken: ':darken<10<@accent', - acrylicPanel: ':alpha<0.5<@panel', - navIndicator: '@accent', - accentLighten: ':lighten<10<@accent', - buttonHoverBg: 'rgba(255, 255, 255, 0.1)', - buttonGradateA: '@accent', - buttonGradateB: ':hue<-20<@accent', - driveFolderBg: ':alpha<0.3<@accent', - fgHighlighted: ':lighten<3<@fg', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - htmlThemeColor: '@bg', - panelHighlight: ':lighten<3<@panel', - listItemHoverBg: 'rgba(255, 255, 255, 0.03)', - scrollbarHandle: 'rgba(255, 255, 255, 0.2)', - wallpaperOverlay: 'rgba(0, 0, 0, 0.5)', - panelHeaderDivider: 'rgba(0, 0, 0, 0)', - scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)', - X2: ':darken<2<@panel', - X3: 'rgba(255, 255, 255, 0.05)', - X4: 'rgba(255, 255, 255, 0.1)', - X5: 'rgba(255, 255, 255, 0.05)', - X6: 'rgba(255, 255, 255, 0.15)', - X7: 'rgba(255, 255, 255, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.3)', - X12: 'rgba(255, 255, 255, 0.1)', - X13: 'rgba(255, 255, 255, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - }, -} diff --git a/packages/client/src/themes/d-botanical.json5 b/packages/client/src/themes/d-botanical.json5 deleted file mode 100644 index c03b95e2d..000000000 --- a/packages/client/src/themes/d-botanical.json5 +++ /dev/null @@ -1,26 +0,0 @@ -{ - id: '504debaf-4912-6a4c-5059-1db08a76b737', - - name: 'Mi Botanical Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: 'rgb(148, 179, 0)', - bg: 'rgb(37, 38, 36)', - fg: 'rgb(216, 212, 199)', - fgHighlighted: '#fff', - divider: 'rgba(255, 255, 255, 0.14)', - panel: 'rgb(47, 47, 44)', - panelHeaderBg: '@panel', - panelHeaderDivider: '@divider', - header: ':alpha<0.7<@panel', - navBg: '#363636', - renote: '@accent', - mention: 'rgb(212, 153, 76)', - mentionMe: 'rgb(212, 210, 76)', - hashtag: '#5bcbb0', - link: '@accent', - }, -} diff --git a/packages/client/src/themes/d-cherry.json5 b/packages/client/src/themes/d-cherry.json5 deleted file mode 100644 index a7e1ad1c8..000000000 --- a/packages/client/src/themes/d-cherry.json5 +++ /dev/null @@ -1,20 +0,0 @@ -{ - id: '679b3b87-a4e9-4789-8696-b56c15cc33b0', - - name: 'Mi Cherry Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: 'rgb(255, 89, 117)', - bg: 'rgb(28, 28, 37)', - fg: 'rgb(236, 239, 244)', - panel: 'rgb(35, 35, 47)', - renote: '@accent', - link: '@accent', - mention: '@accent', - hashtag: '@accent', - divider: 'rgb(63, 63, 80)', - }, -} diff --git a/packages/client/src/themes/d-dark.json5 b/packages/client/src/themes/d-dark.json5 deleted file mode 100644 index d24ce4df6..000000000 --- a/packages/client/src/themes/d-dark.json5 +++ /dev/null @@ -1,26 +0,0 @@ -{ - id: '8050783a-7f63-445a-b270-36d0f6ba1677', - - name: 'Mi Dark', - author: 'syuilo', - desc: 'Default light theme', - - base: 'dark', - - props: { - bg: '#232323', - fg: 'rgb(199, 209, 216)', - fgHighlighted: '#fff', - divider: 'rgba(255, 255, 255, 0.14)', - panel: '#2d2d2d', - panelHeaderBg: '@panel', - panelHeaderDivider: '@divider', - header: ':alpha<0.7<@panel', - navBg: '#363636', - renote: '@accent', - mention: '#da6d35', - mentionMe: '#d44c4c', - hashtag: '#4cb8d4', - link: '@accent', - }, -} diff --git a/packages/client/src/themes/d-future.json5 b/packages/client/src/themes/d-future.json5 deleted file mode 100644 index b6fa1ab0c..000000000 --- a/packages/client/src/themes/d-future.json5 +++ /dev/null @@ -1,27 +0,0 @@ -{ - id: '32a637ef-b47a-4775-bb7b-bacbb823f865', - - name: 'Mi Future Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: '#63e2b7', - bg: '#101014', - fg: '#D5D5D6', - fgHighlighted: '#fff', - fgOnAccent: '#000', - divider: 'rgba(255, 255, 255, 0.1)', - panel: '#18181c', - panelHeaderBg: '@panel', - panelHeaderDivider: '@divider', - renote: '@accent', - mention: '#f2c97d', - mentionMe: '@accent', - hashtag: '#70c0e8', - link: '#e88080', - buttonGradateA: '@accent', - buttonGradateB: ':saturate<30<:hue<30<@accent', - }, -} diff --git a/packages/client/src/themes/d-green-lime.json5 b/packages/client/src/themes/d-green-lime.json5 deleted file mode 100644 index a6983b9ac..000000000 --- a/packages/client/src/themes/d-green-lime.json5 +++ /dev/null @@ -1,24 +0,0 @@ -{ - id: '02816013-8107-440f-877e-865083ffe194', - - name: 'Mi Green+Lime Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: '#b4e900', - bg: '#0C1210', - fg: '#dee7e4', - fgHighlighted: '#fff', - fgOnAccent: '#192320', - divider: '#e7fffb24', - panel: '#192320', - panelHeaderBg: '@panel', - panelHeaderDivider: '@divider', - popup: '#293330', - renote: '@accent', - mentionMe: '#ffaa00', - link: '#24d7ce', - }, -} diff --git a/packages/client/src/themes/d-green-orange.json5 b/packages/client/src/themes/d-green-orange.json5 deleted file mode 100644 index 62adc39e2..000000000 --- a/packages/client/src/themes/d-green-orange.json5 +++ /dev/null @@ -1,24 +0,0 @@ -{ - id: 'dc489603-27b5-424a-9b25-1ff6aec9824a', - - name: 'Mi Green+Orange Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: '#e97f00', - bg: '#0C1210', - fg: '#dee7e4', - fgHighlighted: '#fff', - fgOnAccent: '#192320', - divider: '#e7fffb24', - panel: '#192320', - panelHeaderBg: '@panel', - panelHeaderDivider: '@divider', - popup: '#293330', - renote: '@accent', - mentionMe: '#b4e900', - link: '#24d7ce', - }, -} diff --git a/packages/client/src/themes/d-ice.json5 b/packages/client/src/themes/d-ice.json5 deleted file mode 100644 index 179b060dc..000000000 --- a/packages/client/src/themes/d-ice.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - id: '66e7e5a9-cd43-42cd-837d-12f47841fa34', - - name: 'Mi Ice Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: '#47BFE8', - bg: '#212526', - }, -} diff --git a/packages/client/src/themes/d-persimmon.json5 b/packages/client/src/themes/d-persimmon.json5 deleted file mode 100644 index e36265ff1..000000000 --- a/packages/client/src/themes/d-persimmon.json5 +++ /dev/null @@ -1,25 +0,0 @@ -{ - id: 'c503d768-7c70-4db2-a4e6-08264304bc8d', - - name: 'Mi Persimmon Dark', - author: 'syuilo', - - base: 'dark', - - props: { - accent: 'rgb(206, 102, 65)', - bg: 'rgb(31, 33, 31)', - fg: '#cdd8c7', - fgHighlighted: '#fff', - divider: 'rgba(255, 255, 255, 0.14)', - panel: 'rgb(41, 43, 41)', - infoFg: '@fg', - infoBg: '#333c3b', - navBg: '#141714', - renote: '@accent', - mention: '@accent', - mentionMe: '#de6161', - hashtag: '#68bad0', - link: '#a1c758', - }, -} diff --git a/packages/client/src/themes/d-u0.json5 b/packages/client/src/themes/d-u0.json5 deleted file mode 100644 index b270f809a..000000000 --- a/packages/client/src/themes/d-u0.json5 +++ /dev/null @@ -1,88 +0,0 @@ -{ - id: '7a5bc13b-df8f-4d44-8e94-4452f0c634bb', - base: 'dark', - name: 'Mi U0 Dark', - props: { - X2: ':darken<2<@panel', - X3: 'rgba(255, 255, 255, 0.05)', - X4: 'rgba(255, 255, 255, 0.1)', - X5: 'rgba(255, 255, 255, 0.05)', - X6: 'rgba(255, 255, 255, 0.15)', - X7: 'rgba(255, 255, 255, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - bg: '#172426', - fg: '#dadada', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.3)', - X12: 'rgba(255, 255, 255, 0.1)', - X13: 'rgba(255, 255, 255, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - X17: ':alpha<0.8<@bg', - cwBg: '#687390', - cwFg: '#393f4f', - link: '@accent', - warn: '#ecb637', - badge: '#31b1ce', - error: '#ec4137', - focus: ':alpha<0.3<@accent', - navBg: '@panel', - navFg: '@fg', - panel: ':lighten<3<@bg', - popup: ':lighten<3<@panel', - accent: '#00a497', - header: ':alpha<0.7<@panel', - infoBg: '#253142', - infoFg: '#fff', - renote: '@accent', - shadow: 'rgba(0, 0, 0, 0.3)', - divider: 'rgba(255, 255, 255, 0.1)', - hashtag: '#e6b422', - mention: '@accent', - modalBg: 'rgba(0, 0, 0, 0.5)', - success: '#86b300', - buttonBg: 'rgba(255, 255, 255, 0.05)', - switchBg: 'rgba(255, 255, 255, 0.15)', - acrylicBg: ':alpha<0.5<@bg', - cwHoverBg: '#707b97', - indicator: '@accent', - mentionMe: '@mention', - messageBg: '@bg', - navActive: '@accent', - accentedBg: ':alpha<0.15<@accent', - codeNumber: '#cfff9e', - codeString: '#ffb675', - fgOnAccent: '#fff', - infoWarnBg: '#42321c', - infoWarnFg: '#ffbd3e', - navHoverFg: ':lighten<17<@fg', - codeBoolean: '#c59eff', - dateLabelFg: '@fg', - inputBorder: 'rgba(255, 255, 255, 0.1)', - panelBorder: '" solid 1px var(--divider)', - accentDarken: ':darken<10<@accent', - acrylicPanel: ':alpha<0.5<@panel', - navIndicator: '@indicator', - accentLighten: ':lighten<10<@accent', - buttonHoverBg: 'rgba(255, 255, 255, 0.1)', - driveFolderBg: ':alpha<0.3<@accent', - fgHighlighted: ':lighten<3<@fg', - fgTransparent: ':alpha<0.5<@fg', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - buttonGradateA: '@accent', - buttonGradateB: ':hue<20<@accent', - htmlThemeColor: '@bg', - panelHighlight: ':lighten<3<@panel', - listItemHoverBg: 'rgba(255, 255, 255, 0.03)', - scrollbarHandle: 'rgba(255, 255, 255, 0.2)', - inputBorderHover: 'rgba(255, 255, 255, 0.2)', - wallpaperOverlay: 'rgba(0, 0, 0, 0.5)', - fgTransparentWeak: ':alpha<0.75<@fg', - panelHeaderDivider: 'rgba(0, 0, 0, 0)', - scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)', - deckDivider: '#142022', - }, -} diff --git a/packages/client/src/themes/l-cherry.json5 b/packages/client/src/themes/l-cherry.json5 deleted file mode 100644 index 5ad240241..000000000 --- a/packages/client/src/themes/l-cherry.json5 +++ /dev/null @@ -1,21 +0,0 @@ -{ - id: 'ac168876-f737-4074-a3fc-a370c732ef48', - - name: 'Mi Cherry Light', - author: 'syuilo', - - base: 'light', - - props: { - accent: 'rgb(219, 96, 114)', - bg: 'rgb(254, 248, 249)', - fg: 'rgb(152, 13, 26)', - panel: 'rgb(255, 255, 255)', - renote: '@accent', - link: 'rgb(156, 187, 5)', - mention: '@accent', - hashtag: '@accent', - divider: 'rgba(134, 51, 51, 0.1)', - inputBorderHover: 'rgb(238, 221, 222)', - }, -} diff --git a/packages/client/src/themes/l-coffee.json5 b/packages/client/src/themes/l-coffee.json5 deleted file mode 100644 index fbcd4fa9e..000000000 --- a/packages/client/src/themes/l-coffee.json5 +++ /dev/null @@ -1,21 +0,0 @@ -{ - id: '6ed80faa-74f0-42c2-98e4-a64d9e138eab', - - name: 'Mi Coffee Light', - author: 'syuilo', - - base: 'light', - - props: { - accent: '#9f8989', - bg: '#f5f3f3', - fg: '#7f6666', - panel: '#fff', - divider: 'rgba(87, 68, 68, 0.1)', - renote: 'rgb(160, 172, 125)', - link: 'rgb(137, 151, 159)', - mention: '@accent', - mentionMe: 'rgb(170, 149, 98)', - hashtag: '@accent', - }, -} diff --git a/packages/client/src/themes/l-light.json5 b/packages/client/src/themes/l-light.json5 deleted file mode 100644 index 248355c94..000000000 --- a/packages/client/src/themes/l-light.json5 +++ /dev/null @@ -1,20 +0,0 @@ -{ - id: '4eea646f-7afa-4645-83e9-83af0333cd37', - - name: 'Mi Light', - author: 'syuilo', - desc: 'Default light theme', - - base: 'light', - - props: { - bg: '#f9f9f9', - fg: '#676767', - divider: '#e8e8e8', - header: ':alpha<0.7<@panel', - navBg: '#fff', - panel: '#fff', - panelHeaderDivider: '@divider', - mentionMe: 'rgb(0, 179, 70)', - }, -} diff --git a/packages/client/src/themes/l-rainy.json5 b/packages/client/src/themes/l-rainy.json5 deleted file mode 100644 index 283dd74c6..000000000 --- a/packages/client/src/themes/l-rainy.json5 +++ /dev/null @@ -1,21 +0,0 @@ -{ - id: 'a58a0abb-ff8c-476a-8dec-0ad7837e7e96', - - name: 'Mi Rainy Light', - author: 'syuilo', - - base: 'light', - - props: { - accent: '#5db0da', - bg: 'rgb(246 248 249)', - fg: '#636b71', - panel: '#fff', - divider: 'rgb(230 233 234)', - panelHeaderDivider: '@divider', - renote: '@accent', - link: '@accent', - mention: '@accent', - hashtag: '@accent', - }, -} diff --git a/packages/client/src/themes/l-sushi.json5 b/packages/client/src/themes/l-sushi.json5 deleted file mode 100644 index 5846927d6..000000000 --- a/packages/client/src/themes/l-sushi.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - id: '213273e5-7d20-d5f0-6e36-1b6a4f67115c', - - name: 'Mi Sushi Light', - author: 'syuilo', - - base: 'light', - - props: { - accent: '#e36749', - bg: '#f0eee9', - fg: '#5f5f5f', - renote: '@accent', - link: '@accent', - mention: '@accent', - hashtag: '#229e82', - }, -} diff --git a/packages/client/src/themes/l-u0.json5 b/packages/client/src/themes/l-u0.json5 deleted file mode 100644 index 03b114ba3..000000000 --- a/packages/client/src/themes/l-u0.json5 +++ /dev/null @@ -1,87 +0,0 @@ -{ - id: 'e2c940b5-6e9a-4c03-b738-261c720c426d', - base: 'light', - name: 'Mi U0 Light', - props: { - X2: ':darken<2<@panel', - X3: 'rgba(255, 255, 255, 0.05)', - X4: 'rgba(255, 255, 255, 0.1)', - X5: 'rgba(255, 255, 255, 0.05)', - X6: 'rgba(255, 255, 255, 0.15)', - X7: 'rgba(255, 255, 255, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - bg: '#e7e7eb', - fg: '#5f5f5f', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.3)', - X12: 'rgba(255, 255, 255, 0.1)', - X13: 'rgba(255, 255, 255, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - X17: ':alpha<0.8<@bg', - cwBg: '#687390', - cwFg: '#393f4f', - link: '@accent', - warn: '#ecb637', - badge: '#31b1ce', - error: '#ec4137', - focus: ':alpha<0.3<@accent', - navBg: '@panel', - navFg: '@fg', - panel: ':lighten<3<@bg', - popup: ':lighten<3<@panel', - accent: '#478384', - header: ':alpha<0.7<@panel', - infoBg: '#253142', - infoFg: '#fff', - renote: '@accent', - shadow: 'rgba(0, 0, 0, 0.3)', - divider: '#4646461a', - hashtag: '#1f3134', - mention: '@accent', - modalBg: 'rgba(0, 0, 0, 0.5)', - success: '#86b300', - buttonBg: '#0000000d', - switchBg: 'rgba(255, 255, 255, 0.15)', - acrylicBg: ':alpha<0.5<@bg', - cwHoverBg: '#707b97', - indicator: '@accent', - mentionMe: '@mention', - messageBg: '@bg', - navActive: '@accent', - accentedBg: ':alpha<0.15<@accent', - codeNumber: '#cfff9e', - codeString: '#ffb675', - fgOnAccent: '#fff', - infoWarnBg: '#42321c', - infoWarnFg: '#ffbd3e', - navHoverFg: ':lighten<17<@fg', - codeBoolean: '#c59eff', - dateLabelFg: '@fg', - inputBorder: 'rgba(255, 255, 255, 0.1)', - panelBorder: '" solid 1px var(--divider)', - accentDarken: ':darken<10<@accent', - acrylicPanel: ':alpha<0.5<@panel', - navIndicator: '@indicator', - accentLighten: ':lighten<10<@accent', - buttonHoverBg: '#0000001a', - driveFolderBg: ':alpha<0.3<@accent', - fgHighlighted: ':lighten<3<@fg', - fgTransparent: ':alpha<0.5<@fg', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - buttonGradateA: '@accent', - buttonGradateB: ':hue<20<@accent', - htmlThemeColor: '@bg', - panelHighlight: ':lighten<3<@panel', - listItemHoverBg: 'rgba(255, 255, 255, 0.03)', - scrollbarHandle: '#74747433', - inputBorderHover: 'rgba(255, 255, 255, 0.2)', - wallpaperOverlay: 'rgba(0, 0, 0, 0.5)', - fgTransparentWeak: ':alpha<0.75<@fg', - panelHeaderDivider: 'rgba(0, 0, 0, 0)', - scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)', - }, -} diff --git a/packages/client/src/themes/l-vivid.json5 b/packages/client/src/themes/l-vivid.json5 deleted file mode 100644 index b3c08f38a..000000000 --- a/packages/client/src/themes/l-vivid.json5 +++ /dev/null @@ -1,82 +0,0 @@ -{ - id: '6128c2a9-5c54-43fe-a47d-17942356470b', - - name: 'Mi Vivid Light', - author: 'syuilo', - - base: 'light', - - props: { - bg: '#fafafa', - fg: '#444', - cwBg: '#b1b9c1', - cwFg: '#fff', - link: '#ff9400', - warn: '#ecb637', - badge: '#31b1ce', - error: '#ec4137', - focus: ':alpha<0.3<@accent', - navBg: '@panel', - navFg: '@fg', - panel: '#fff', - accent: '#008cff', - header: ':alpha<0.7<@panel', - infoBg: '#e5f5ff', - infoFg: '#72818a', - renote: '@accent', - shadow: 'rgba(0, 0, 0, 0.1)', - divider: 'rgba(0, 0, 0, 0.08)', - hashtag: '#92d400', - mention: '@accent', - modalBg: 'rgba(0, 0, 0, 0.3)', - success: '#86b300', - buttonBg: 'rgba(0, 0, 0, 0.05)', - acrylicBg: ':alpha<0.5<@bg', - cwHoverBg: '#bbc4ce', - indicator: '@accent', - mentionMe: '@mention', - messageBg: '@bg', - navActive: '@accent', - infoWarnBg: '#fff0db', - infoWarnFg: '#8f6e31', - navHoverFg: ':darken<17<@fg', - dateLabelFg: '@fg', - inputBorder: 'rgba(0, 0, 0, 0.1)', - inputBorderHover: 'rgba(0, 0, 0, 0.2)', - panelBorder: '" solid 1px var(--divider)', - accentDarken: ':darken<10<@accent', - acrylicPanel: ':alpha<0.5<@panel', - navIndicator: '@accent', - accentLighten: ':lighten<10<@accent', - buttonHoverBg: 'rgba(0, 0, 0, 0.1)', - driveFolderBg: ':alpha<0.3<@accent', - fgHighlighted: ':darken<3<@fg', - fgTransparent: ':alpha<0.5<@fg', - panelHeaderBg: ':lighten<3<@panel', - panelHeaderFg: '@fg', - htmlThemeColor: '@bg', - panelHighlight: ':darken<3<@panel', - listItemHoverBg: 'rgba(0, 0, 0, 0.03)', - scrollbarHandle: 'rgba(0, 0, 0, 0.2)', - wallpaperOverlay: 'rgba(255, 255, 255, 0.5)', - fgTransparentWeak: ':alpha<0.75<@fg', - panelHeaderDivider: '@divider', - scrollbarHandleHover: 'rgba(0, 0, 0, 0.4)', - X2: ':darken<2<@panel', - X3: 'rgba(0, 0, 0, 0.05)', - X4: 'rgba(0, 0, 0, 0.1)', - X5: 'rgba(0, 0, 0, 0.05)', - X6: 'rgba(0, 0, 0, 0.25)', - X7: 'rgba(0, 0, 0, 0.05)', - X8: ':lighten<5<@accent', - X9: ':darken<5<@accent', - X10: ':alpha<0.4<@accent', - X11: 'rgba(0, 0, 0, 0.1)', - X12: 'rgba(0, 0, 0, 0.1)', - X13: 'rgba(0, 0, 0, 0.15)', - X14: ':alpha<0.5<@navBg', - X15: ':alpha<0<@panel', - X16: ':alpha<0.7<@panel', - X17: ':alpha<0.8<@bg', - }, -} diff --git a/packages/client/src/types/menu.ts b/packages/client/src/types/menu.ts deleted file mode 100644 index 972f6db21..000000000 --- a/packages/client/src/types/menu.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as Misskey from 'misskey-js'; -import { Ref } from 'vue'; - -export type MenuAction = (ev: MouseEvent) => void; - -export type MenuDivider = null; -export type MenuNull = undefined; -export type MenuLabel = { type: 'label', text: string }; -export type MenuLink = { type: 'link', to: string, text: string, icon?: string, indicate?: boolean, avatar?: Misskey.entities.User }; -export type MenuA = { type: 'a', href: string, target?: string, download?: string, text: string, icon?: string, indicate?: boolean }; -export type MenuUser = { type: 'user', user: Misskey.entities.User, active?: boolean, indicate?: boolean, action: MenuAction }; -export type MenuSwitch = { type: 'switch', ref: Ref, text: string, disabled?: boolean }; -export type MenuButton = { type?: 'button', text: string, icon?: string, indicate?: boolean, danger?: boolean, active?: boolean, avatar?: Misskey.entities.User; action: MenuAction }; -export type MenuParent = { type: 'parent', text: string, icon?: string, children: OuterMenuItem[] }; - -export type MenuPending = { type: 'pending' }; - -type OuterMenuItem = MenuDivider | MenuNull | MenuLabel | MenuLink | MenuA | MenuUser | MenuSwitch | MenuButton | MenuParent; -type OuterPromiseMenuItem = Promise; -export type MenuItem = OuterMenuItem | OuterPromiseMenuItem; -export type InnerMenuItem = MenuDivider | MenuPending | MenuLabel | MenuLink | MenuA | MenuUser | MenuSwitch | MenuButton | MenuParent; diff --git a/packages/client/src/ui/_common_/common.vue b/packages/client/src/ui/_common_/common.vue deleted file mode 100644 index 1ea59dd26..000000000 --- a/packages/client/src/ui/_common_/common.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/navbar-for-mobile.vue b/packages/client/src/ui/_common_/navbar-for-mobile.vue deleted file mode 100644 index de000447a..000000000 --- a/packages/client/src/ui/_common_/navbar-for-mobile.vue +++ /dev/null @@ -1,314 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/navbar.vue b/packages/client/src/ui/_common_/navbar.vue deleted file mode 100644 index 0c46e8941..000000000 --- a/packages/client/src/ui/_common_/navbar.vue +++ /dev/null @@ -1,522 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/statusbar-federation.vue b/packages/client/src/ui/_common_/statusbar-federation.vue deleted file mode 100644 index 7d4f0d616..000000000 --- a/packages/client/src/ui/_common_/statusbar-federation.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/statusbar-rss.vue b/packages/client/src/ui/_common_/statusbar-rss.vue deleted file mode 100644 index e75e13bb4..000000000 --- a/packages/client/src/ui/_common_/statusbar-rss.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/statusbar-user-list.vue b/packages/client/src/ui/_common_/statusbar-user-list.vue deleted file mode 100644 index f4d989c38..000000000 --- a/packages/client/src/ui/_common_/statusbar-user-list.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/statusbars.vue b/packages/client/src/ui/_common_/statusbars.vue deleted file mode 100644 index 114ca5be8..000000000 --- a/packages/client/src/ui/_common_/statusbars.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/stream-indicator.vue b/packages/client/src/ui/_common_/stream-indicator.vue deleted file mode 100644 index a855de8ab..000000000 --- a/packages/client/src/ui/_common_/stream-indicator.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/_common_/sw-inject.ts b/packages/client/src/ui/_common_/sw-inject.ts deleted file mode 100644 index 8676d2d48..000000000 --- a/packages/client/src/ui/_common_/sw-inject.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { inject } from 'vue'; -import { post } from '@/os'; -import { $i, login } from '@/account'; -import { defaultStore } from '@/store'; -import { getAccountFromId } from '@/scripts/get-account-from-id'; -import { mainRouter } from '@/router'; - -export function swInject() { - navigator.serviceWorker.addEventListener('message', ev => { - if (_DEV_) { - console.log('sw msg', ev.data); - } - - if (ev.data.type !== 'order') return; - - if (ev.data.loginId !== $i?.id) { - return getAccountFromId(ev.data.loginId).then(account => { - if (!account) return; - return login(account.token, ev.data.url); - }); - } - - switch (ev.data.order) { - case 'post': - return post(ev.data.options); - case 'push': - if (mainRouter.currentRoute.value.path === ev.data.url) { - return window.scroll({ top: 0, behavior: 'smooth' }); - } - return mainRouter.push(ev.data.url); - default: - return; - } - }); -} diff --git a/packages/client/src/ui/classic.header.vue b/packages/client/src/ui/classic.header.vue deleted file mode 100644 index 306d32c59..000000000 --- a/packages/client/src/ui/classic.header.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/classic.sidebar.vue b/packages/client/src/ui/classic.sidebar.vue deleted file mode 100644 index 7479c1c9c..000000000 --- a/packages/client/src/ui/classic.sidebar.vue +++ /dev/null @@ -1,268 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/classic.vue b/packages/client/src/ui/classic.vue deleted file mode 100644 index c42407f5b..000000000 --- a/packages/client/src/ui/classic.vue +++ /dev/null @@ -1,322 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/classic.widgets.vue b/packages/client/src/ui/classic.widgets.vue deleted file mode 100644 index ca8e3f4db..000000000 --- a/packages/client/src/ui/classic.widgets.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck.vue b/packages/client/src/ui/deck.vue deleted file mode 100644 index 3c0c2a44b..000000000 --- a/packages/client/src/ui/deck.vue +++ /dev/null @@ -1,437 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck/antenna-column.vue b/packages/client/src/ui/deck/antenna-column.vue deleted file mode 100644 index df9539617..000000000 --- a/packages/client/src/ui/deck/antenna-column.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck/column-core.vue b/packages/client/src/ui/deck/column-core.vue deleted file mode 100644 index 30c0dc5e1..000000000 --- a/packages/client/src/ui/deck/column-core.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/packages/client/src/ui/deck/column.vue b/packages/client/src/ui/deck/column.vue deleted file mode 100644 index 7b30ffad4..000000000 --- a/packages/client/src/ui/deck/column.vue +++ /dev/null @@ -1,397 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck/deck-store.ts b/packages/client/src/ui/deck/deck-store.ts deleted file mode 100644 index 67fcff480..000000000 --- a/packages/client/src/ui/deck/deck-store.ts +++ /dev/null @@ -1,299 +0,0 @@ -import { throttle } from 'throttle-debounce'; -import { markRaw } from 'vue'; -import { notificationTypes } from 'misskey-js'; -import { Storage } from '../../pizzax'; -import { i18n } from '@/i18n'; -import { api } from '@/os'; - -type ColumnWidget = { - name: string; - id: string; - data: Record; -}; - -export type Column = { - id: string; - type: 'main' | 'widgets' | 'notifications' | 'tl' | 'antenna' | 'list' | 'mentions' | 'direct'; - name: string | null; - width: number; - widgets?: ColumnWidget[]; - active?: boolean; - flexible?: boolean; - antennaId?: string; - listId?: string; - includingTypes?: typeof notificationTypes[number][]; - tl?: 'home' | 'local' | 'social' | 'global'; -}; - -function copy(x: T): T { - return JSON.parse(JSON.stringify(x)); -} - -export const deckStore = markRaw(new Storage('deck', { - profile: { - where: 'deviceAccount', - default: 'default', - }, - columns: { - where: 'deviceAccount', - default: [] as Column[], - }, - layout: { - where: 'deviceAccount', - default: [] as Column['id'][][], - }, - columnAlign: { - where: 'deviceAccount', - default: 'left' as 'left' | 'right' | 'center', - }, - alwaysShowMainColumn: { - where: 'deviceAccount', - default: true, - }, - navWindow: { - where: 'deviceAccount', - default: true, - }, -})); - -export const loadDeck = async () => { - let deck; - - try { - deck = await api('i/registry/get', { - scope: ['client', 'deck', 'profiles'], - key: deckStore.state.profile, - }); - } catch (err) { - if (err.code === 'NO_SUCH_KEY') { - // 後方互換性のため - if (deckStore.state.profile === 'default') { - saveDeck(); - return; - } - - deckStore.set('columns', []); - deckStore.set('layout', []); - return; - } - throw err; - } - - deckStore.set('columns', deck.columns); - deckStore.set('layout', deck.layout); -}; - -// TODO: deckがloadされていない状態でsaveすると意図せず上書きが発生するので対策する -export const saveDeck = throttle(1000, () => { - api('i/registry/set', { - scope: ['client', 'deck', 'profiles'], - key: deckStore.state.profile, - value: { - columns: deckStore.reactiveState.columns.value, - layout: deckStore.reactiveState.layout.value, - }, - }); -}); - -export async function getProfiles(): Promise { - return await api('i/registry/keys', { - scope: ['client', 'deck', 'profiles'], - }); -} - -export async function deleteProfile(key: string): Promise { - return await api('i/registry/remove', { - scope: ['client', 'deck', 'profiles'], - key: key, - }); -} - -export function addColumn(column: Column) { - if (column.name === undefined) column.name = null; - deckStore.push('columns', column); - deckStore.push('layout', [column.id]); - saveDeck(); -} - -export function removeColumn(id: Column['id']) { - deckStore.set('columns', deckStore.state.columns.filter(c => c.id !== id)); - deckStore.set('layout', deckStore.state.layout - .map(ids => ids.filter(_id => _id !== id)) - .filter(ids => ids.length > 0)); - saveDeck(); -} - -export function swapColumn(a: Column['id'], b: Column['id']) { - const aX = deckStore.state.layout.findIndex(ids => ids.indexOf(a) !== -1); - const aY = deckStore.state.layout[aX].findIndex(id => id === a); - const bX = deckStore.state.layout.findIndex(ids => ids.indexOf(b) !== -1); - const bY = deckStore.state.layout[bX].findIndex(id => id === b); - const layout = copy(deckStore.state.layout); - layout[aX][aY] = b; - layout[bX][bY] = a; - deckStore.set('layout', layout); - saveDeck(); -} - -export function swapLeftColumn(id: Column['id']) { - const layout = copy(deckStore.state.layout); - deckStore.state.layout.some((ids, i) => { - if (ids.includes(id)) { - const left = deckStore.state.layout[i - 1]; - if (left) { - layout[i - 1] = deckStore.state.layout[i]; - layout[i] = left; - deckStore.set('layout', layout); - } - return true; - } - }); - saveDeck(); -} - -export function swapRightColumn(id: Column['id']) { - const layout = copy(deckStore.state.layout); - deckStore.state.layout.some((ids, i) => { - if (ids.includes(id)) { - const right = deckStore.state.layout[i + 1]; - if (right) { - layout[i + 1] = deckStore.state.layout[i]; - layout[i] = right; - deckStore.set('layout', layout); - } - return true; - } - }); - saveDeck(); -} - -export function swapUpColumn(id: Column['id']) { - const layout = copy(deckStore.state.layout); - const idsIndex = deckStore.state.layout.findIndex(ids => ids.includes(id)); - const ids = copy(deckStore.state.layout[idsIndex]); - ids.some((x, i) => { - if (x === id) { - const up = ids[i - 1]; - if (up) { - ids[i - 1] = id; - ids[i] = up; - - layout[idsIndex] = ids; - deckStore.set('layout', layout); - } - return true; - } - }); - saveDeck(); -} - -export function swapDownColumn(id: Column['id']) { - const layout = copy(deckStore.state.layout); - const idsIndex = deckStore.state.layout.findIndex(ids => ids.includes(id)); - const ids = copy(deckStore.state.layout[idsIndex]); - ids.some((x, i) => { - if (x === id) { - const down = ids[i + 1]; - if (down) { - ids[i + 1] = id; - ids[i] = down; - - layout[idsIndex] = ids; - deckStore.set('layout', layout); - } - return true; - } - }); - saveDeck(); -} - -export function stackLeftColumn(id: Column['id']) { - let layout = copy(deckStore.state.layout); - const i = deckStore.state.layout.findIndex(ids => ids.includes(id)); - layout = layout.map(ids => ids.filter(_id => _id !== id)); - layout[i - 1].push(id); - layout = layout.filter(ids => ids.length > 0); - deckStore.set('layout', layout); - saveDeck(); -} - -export function popRightColumn(id: Column['id']) { - let layout = copy(deckStore.state.layout); - const i = deckStore.state.layout.findIndex(ids => ids.includes(id)); - const affected = layout[i]; - layout = layout.map(ids => ids.filter(_id => _id !== id)); - layout.splice(i + 1, 0, [id]); - layout = layout.filter(ids => ids.length > 0); - deckStore.set('layout', layout); - - const columns = copy(deckStore.state.columns); - for (const column of columns) { - if (affected.includes(column.id)) { - column.active = true; - } - } - deckStore.set('columns', columns); - - saveDeck(); -} - -export function addColumnWidget(id: Column['id'], widget: ColumnWidget) { - const columns = copy(deckStore.state.columns); - const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); - const column = copy(deckStore.state.columns[columnIndex]); - if (column == null) return; - if (column.widgets == null) column.widgets = []; - column.widgets.unshift(widget); - columns[columnIndex] = column; - deckStore.set('columns', columns); - saveDeck(); -} - -export function removeColumnWidget(id: Column['id'], widget: ColumnWidget) { - const columns = copy(deckStore.state.columns); - const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); - const column = copy(deckStore.state.columns[columnIndex]); - if (column == null) return; - column.widgets = column.widgets.filter(w => w.id !== widget.id); - columns[columnIndex] = column; - deckStore.set('columns', columns); - saveDeck(); -} - -export function setColumnWidgets(id: Column['id'], widgets: ColumnWidget[]) { - const columns = copy(deckStore.state.columns); - const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); - const column = copy(deckStore.state.columns[columnIndex]); - if (column == null) return; - column.widgets = widgets; - columns[columnIndex] = column; - deckStore.set('columns', columns); - saveDeck(); -} - -export function updateColumnWidget(id: Column['id'], widgetId: string, widgetData: any) { - const columns = copy(deckStore.state.columns); - const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); - const column = copy(deckStore.state.columns[columnIndex]); - if (column == null) return; - column.widgets = column.widgets.map(w => w.id === widgetId ? { - ...w, - data: widgetData, - } : w); - columns[columnIndex] = column; - deckStore.set('columns', columns); - saveDeck(); -} - -export function updateColumn(id: Column['id'], column: Partial) { - const columns = copy(deckStore.state.columns); - const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); - const currentColumn = copy(deckStore.state.columns[columnIndex]); - if (currentColumn == null) return; - for (const [k, v] of Object.entries(column)) { - currentColumn[k] = v; - } - columns[columnIndex] = currentColumn; - deckStore.set('columns', columns); - saveDeck(); -} diff --git a/packages/client/src/ui/deck/direct-column.vue b/packages/client/src/ui/deck/direct-column.vue deleted file mode 100644 index 104f781b3..000000000 --- a/packages/client/src/ui/deck/direct-column.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/packages/client/src/ui/deck/list-column.vue b/packages/client/src/ui/deck/list-column.vue deleted file mode 100644 index 8fdf19cab..000000000 --- a/packages/client/src/ui/deck/list-column.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck/main-column.vue b/packages/client/src/ui/deck/main-column.vue deleted file mode 100644 index 9a5fd43af..000000000 --- a/packages/client/src/ui/deck/main-column.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/packages/client/src/ui/deck/mentions-column.vue b/packages/client/src/ui/deck/mentions-column.vue deleted file mode 100644 index 18055215d..000000000 --- a/packages/client/src/ui/deck/mentions-column.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/packages/client/src/ui/deck/notifications-column.vue b/packages/client/src/ui/deck/notifications-column.vue deleted file mode 100644 index b02118ee5..000000000 --- a/packages/client/src/ui/deck/notifications-column.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/packages/client/src/ui/deck/tl-column.vue b/packages/client/src/ui/deck/tl-column.vue deleted file mode 100644 index e64ed852b..000000000 --- a/packages/client/src/ui/deck/tl-column.vue +++ /dev/null @@ -1,119 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/deck/widgets-column.vue b/packages/client/src/ui/deck/widgets-column.vue deleted file mode 100644 index 2c97009b3..000000000 --- a/packages/client/src/ui/deck/widgets-column.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/universal.vue b/packages/client/src/ui/universal.vue deleted file mode 100644 index 140c23a35..000000000 --- a/packages/client/src/ui/universal.vue +++ /dev/null @@ -1,393 +0,0 @@ - - - - - - - diff --git a/packages/client/src/ui/universal.widgets.vue b/packages/client/src/ui/universal.widgets.vue deleted file mode 100644 index 179f8a6ba..000000000 --- a/packages/client/src/ui/universal.widgets.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/visitor.vue b/packages/client/src/ui/visitor.vue deleted file mode 100644 index ec9150d34..000000000 --- a/packages/client/src/ui/visitor.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/packages/client/src/ui/visitor/a.vue b/packages/client/src/ui/visitor/a.vue deleted file mode 100644 index f8db7a9d0..000000000 --- a/packages/client/src/ui/visitor/a.vue +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - diff --git a/packages/client/src/ui/visitor/b.vue b/packages/client/src/ui/visitor/b.vue deleted file mode 100644 index 3c308cfe5..000000000 --- a/packages/client/src/ui/visitor/b.vue +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - diff --git a/packages/client/src/ui/visitor/header.vue b/packages/client/src/ui/visitor/header.vue deleted file mode 100644 index e2b903485..000000000 --- a/packages/client/src/ui/visitor/header.vue +++ /dev/null @@ -1,228 +0,0 @@ - - - - - diff --git a/packages/client/src/ui/visitor/kanban.vue b/packages/client/src/ui/visitor/kanban.vue deleted file mode 100644 index 51e47f277..000000000 --- a/packages/client/src/ui/visitor/kanban.vue +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - diff --git a/packages/client/src/ui/zen.vue b/packages/client/src/ui/zen.vue deleted file mode 100644 index c915f8242..000000000 --- a/packages/client/src/ui/zen.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/activity.calendar.vue b/packages/client/src/widgets/activity.calendar.vue deleted file mode 100644 index 33b95b00d..000000000 --- a/packages/client/src/widgets/activity.calendar.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/activity.chart.vue b/packages/client/src/widgets/activity.chart.vue deleted file mode 100644 index b61e419f9..000000000 --- a/packages/client/src/widgets/activity.chart.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/activity.vue b/packages/client/src/widgets/activity.vue deleted file mode 100644 index acca21bff..000000000 --- a/packages/client/src/widgets/activity.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/packages/client/src/widgets/aichan.vue b/packages/client/src/widgets/aichan.vue deleted file mode 100644 index 828490fd9..000000000 --- a/packages/client/src/widgets/aichan.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/aiscript.vue b/packages/client/src/widgets/aiscript.vue deleted file mode 100644 index cb6d29cd9..000000000 --- a/packages/client/src/widgets/aiscript.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/button.vue b/packages/client/src/widgets/button.vue deleted file mode 100644 index f0148d7f4..000000000 --- a/packages/client/src/widgets/button.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/calendar.vue b/packages/client/src/widgets/calendar.vue deleted file mode 100644 index 99bd36e2f..000000000 --- a/packages/client/src/widgets/calendar.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/clock.vue b/packages/client/src/widgets/clock.vue deleted file mode 100644 index dc99b6631..000000000 --- a/packages/client/src/widgets/clock.vue +++ /dev/null @@ -1,203 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/digital-clock.vue b/packages/client/src/widgets/digital-clock.vue deleted file mode 100644 index d2bfd523f..000000000 --- a/packages/client/src/widgets/digital-clock.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/federation.vue b/packages/client/src/widgets/federation.vue deleted file mode 100644 index e07cab5bf..000000000 --- a/packages/client/src/widgets/federation.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/index.ts b/packages/client/src/widgets/index.ts deleted file mode 100644 index 66bec7c83..000000000 --- a/packages/client/src/widgets/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { App, defineAsyncComponent } from 'vue'; - -export default function(app: App) { - app.component('MkwMemo', defineAsyncComponent(() => import('./memo.vue'))); - app.component('MkwNotifications', defineAsyncComponent(() => import('./notifications.vue'))); - app.component('MkwTimeline', defineAsyncComponent(() => import('./timeline.vue'))); - app.component('MkwCalendar', defineAsyncComponent(() => import('./calendar.vue'))); - app.component('MkwRss', defineAsyncComponent(() => import('./rss.vue'))); - app.component('MkwRssTicker', defineAsyncComponent(() => import('./rss-ticker.vue'))); - app.component('MkwTrends', defineAsyncComponent(() => import('./trends.vue'))); - app.component('MkwClock', defineAsyncComponent(() => import('./clock.vue'))); - app.component('MkwActivity', defineAsyncComponent(() => import('./activity.vue'))); - app.component('MkwPhotos', defineAsyncComponent(() => import('./photos.vue'))); - app.component('MkwDigitalClock', defineAsyncComponent(() => import('./digital-clock.vue'))); - app.component('MkwUnixClock', defineAsyncComponent(() => import('./unix-clock.vue'))); - app.component('MkwFederation', defineAsyncComponent(() => import('./federation.vue'))); - app.component('MkwPostForm', defineAsyncComponent(() => import('./post-form.vue'))); - app.component('MkwSlideshow', defineAsyncComponent(() => import('./slideshow.vue'))); - app.component('MkwServerMetric', defineAsyncComponent(() => import('./server-metric/index.vue'))); - app.component('MkwOnlineUsers', defineAsyncComponent(() => import('./online-users.vue'))); - app.component('MkwJobQueue', defineAsyncComponent(() => import('./job-queue.vue'))); - app.component('MkwInstanceCloud', defineAsyncComponent(() => import('./instance-cloud.vue'))); - app.component('MkwButton', defineAsyncComponent(() => import('./button.vue'))); - app.component('MkwAiscript', defineAsyncComponent(() => import('./aiscript.vue'))); - app.component('MkwAichan', defineAsyncComponent(() => import('./aichan.vue'))); -} - -export const widgets = [ - 'memo', - 'notifications', - 'timeline', - 'calendar', - 'rss', - 'rssTicker', - 'trends', - 'clock', - 'activity', - 'photos', - 'digitalClock', - 'unixClock', - 'federation', - 'instanceCloud', - 'postForm', - 'slideshow', - 'serverMetric', - 'onlineUsers', - 'jobQueue', - 'button', - 'aiscript', - 'aichan', -]; diff --git a/packages/client/src/widgets/instance-cloud.vue b/packages/client/src/widgets/instance-cloud.vue deleted file mode 100644 index f8e463ee3..000000000 --- a/packages/client/src/widgets/instance-cloud.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/job-queue.vue b/packages/client/src/widgets/job-queue.vue deleted file mode 100644 index 8897f240b..000000000 --- a/packages/client/src/widgets/job-queue.vue +++ /dev/null @@ -1,196 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/memo.vue b/packages/client/src/widgets/memo.vue deleted file mode 100644 index 92c4168ff..000000000 --- a/packages/client/src/widgets/memo.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/notifications.vue b/packages/client/src/widgets/notifications.vue deleted file mode 100644 index 2729c310a..000000000 --- a/packages/client/src/widgets/notifications.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/packages/client/src/widgets/online-users.vue b/packages/client/src/widgets/online-users.vue deleted file mode 100644 index e9ab79b11..000000000 --- a/packages/client/src/widgets/online-users.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/photos.vue b/packages/client/src/widgets/photos.vue deleted file mode 100644 index e891bd6a7..000000000 --- a/packages/client/src/widgets/photos.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/post-form.vue b/packages/client/src/widgets/post-form.vue deleted file mode 100644 index f1708775b..000000000 --- a/packages/client/src/widgets/post-form.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/packages/client/src/widgets/rss-ticker.vue b/packages/client/src/widgets/rss-ticker.vue deleted file mode 100644 index 58c16983c..000000000 --- a/packages/client/src/widgets/rss-ticker.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/rss.vue b/packages/client/src/widgets/rss.vue deleted file mode 100644 index 3258b6c02..000000000 --- a/packages/client/src/widgets/rss.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/cpu-mem.vue b/packages/client/src/widgets/server-metric/cpu-mem.vue deleted file mode 100644 index 00c3a10c9..000000000 --- a/packages/client/src/widgets/server-metric/cpu-mem.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/cpu.vue b/packages/client/src/widgets/server-metric/cpu.vue deleted file mode 100644 index baf802cb8..000000000 --- a/packages/client/src/widgets/server-metric/cpu.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/disk.vue b/packages/client/src/widgets/server-metric/disk.vue deleted file mode 100644 index 052991b55..000000000 --- a/packages/client/src/widgets/server-metric/disk.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/index.vue b/packages/client/src/widgets/server-metric/index.vue deleted file mode 100644 index cf4accfa2..000000000 --- a/packages/client/src/widgets/server-metric/index.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/client/src/widgets/server-metric/mem.vue b/packages/client/src/widgets/server-metric/mem.vue deleted file mode 100644 index 6018eb426..000000000 --- a/packages/client/src/widgets/server-metric/mem.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/net.vue b/packages/client/src/widgets/server-metric/net.vue deleted file mode 100644 index b698953f9..000000000 --- a/packages/client/src/widgets/server-metric/net.vue +++ /dev/null @@ -1,140 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/server-metric/pie.vue b/packages/client/src/widgets/server-metric/pie.vue deleted file mode 100644 index 868dbc048..000000000 --- a/packages/client/src/widgets/server-metric/pie.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/slideshow.vue b/packages/client/src/widgets/slideshow.vue deleted file mode 100644 index e317b8ab9..000000000 --- a/packages/client/src/widgets/slideshow.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/timeline.vue b/packages/client/src/widgets/timeline.vue deleted file mode 100644 index 718162667..000000000 --- a/packages/client/src/widgets/timeline.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - diff --git a/packages/client/src/widgets/trends.vue b/packages/client/src/widgets/trends.vue deleted file mode 100644 index a783c0421..000000000 --- a/packages/client/src/widgets/trends.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/unix-clock.vue b/packages/client/src/widgets/unix-clock.vue deleted file mode 100644 index cf85ac782..000000000 --- a/packages/client/src/widgets/unix-clock.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - - diff --git a/packages/client/src/widgets/widget.ts b/packages/client/src/widgets/widget.ts deleted file mode 100644 index 9fdfe7f3e..000000000 --- a/packages/client/src/widgets/widget.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { reactive, watch } from 'vue'; -import { throttle } from 'throttle-debounce'; -import { Form, GetFormResultType } from '@/scripts/form'; -import * as os from '@/os'; - -export type Widget

> = { - id: string; - data: Partial

; -}; - -export type WidgetComponentProps

> = { - widget?: Widget

; -}; - -export type WidgetComponentEmits

> = { - (ev: 'updateProps', props: P); -}; - -export type WidgetComponentExpose = { - name: string; - id: string | null; - configure: () => void; -}; - -export const useWidgetPropsManager = >( - name: string, - propsDef: F, - props: Readonly>>, - emit: WidgetComponentEmits>, -): { - widgetProps: GetFormResultType; - save: () => void; - configure: () => void; -} => { - const widgetProps = reactive(props.widget ? JSON.parse(JSON.stringify(props.widget.data)) : {}); - - const mergeProps = () => { - for (const prop of Object.keys(propsDef)) { - if (typeof widgetProps[prop] === 'undefined') { - widgetProps[prop] = propsDef[prop].default; - } - } - }; - watch(widgetProps, () => { - mergeProps(); - }, { deep: true, immediate: true, }); - - const save = throttle(3000, () => { - emit('updateProps', widgetProps); - }); - - const configure = async () => { - const form = JSON.parse(JSON.stringify(propsDef)); - for (const item of Object.keys(form)) { - form[item].default = widgetProps[item]; - } - const { canceled, result } = await os.form(name, form); - if (canceled) return; - - for (const key of Object.keys(result)) { - widgetProps[key] = result[key]; - } - - save(); - }; - - return { - widgetProps, - save, - configure, - }; -}; diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json deleted file mode 100644 index 86109f600..000000000 --- a/packages/client/tsconfig.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "noEmitOnError": false, - "noImplicitAny": false, - "noImplicitReturns": true, - "noUnusedParameters": false, - "noUnusedLocals": true, - "noFallthroughCasesInSwitch": true, - "declaration": false, - "sourceMap": false, - "target": "es2017", - "module": "esnext", - "moduleResolution": "node", - "removeComments": false, - "noLib": false, - "strict": true, - "strictNullChecks": true, - "experimentalDecorators": true, - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "isolatedModules": true, - "useDefineForClassFields": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"], - }, - "typeRoots": [ - "node_modules/@types", - "@types", - ], - "types": [ - "vite/client", - ], - "lib": [ - "esnext", - "dom" - ], - "jsx": "preserve" - }, - "compileOnSave": false, - "include": [ - ".eslintrc.js", - "./**/*.ts", - "./**/*.vue" - ] -} diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts deleted file mode 100644 index f23c62113..000000000 --- a/packages/client/vite.config.ts +++ /dev/null @@ -1,73 +0,0 @@ -import * as fs from 'fs'; -import pluginVue from '@vitejs/plugin-vue'; -import { defineConfig } from 'vite'; - -import locales from '../../locales'; -import meta from '../../package.json'; -import pluginJson5 from './vite.json5'; - -const extensions = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.json', '.json5', '.svg', '.sass', '.scss', '.css', '.vue']; - -export default defineConfig(({ command, mode }) => { - fs.mkdirSync(__dirname + '/../../built', { recursive: true }); - fs.writeFileSync(__dirname + '/../../built/meta.json', JSON.stringify({ version: meta.version }), 'utf-8'); - - return { - base: '/assets/', - - plugins: [ - pluginVue({ - reactivityTransform: true, - }), - pluginJson5(), - ], - - resolve: { - extensions, - alias: { - '@/': __dirname + '/src/', - '/client-assets/': __dirname + '/assets/', - '/static-assets/': __dirname + '/../backend/assets/', - }, - }, - - define: { - _VERSION_: JSON.stringify(meta.version), - _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]) => [k, v._lang_])), - _ENV_: JSON.stringify(process.env.NODE_ENV), - _DEV_: process.env.NODE_ENV !== 'production', - _PERF_PREFIX_: JSON.stringify('Misskey:'), - _DATA_TRANSFER_DRIVE_FILE_: JSON.stringify('mk_drive_file'), - _DATA_TRANSFER_DRIVE_FOLDER_: JSON.stringify('mk_drive_folder'), - _DATA_TRANSFER_DECK_COLUMN_: JSON.stringify('mk_deck_column'), - __VUE_OPTIONS_API__: true, - __VUE_PROD_DEVTOOLS__: false, - }, - - build: { - target: [ - 'chrome100', - 'firefox100', - 'safari15', - 'es2017', // TODO: そのうち消す - ], - manifest: 'manifest.json', - rollupOptions: { - input: { - app: './src/init.ts', - }, - output: { - manualChunks: { - vue: ['vue'], - }, - }, - }, - cssCodeSplit: true, - outDir: __dirname + '/../../built/_client_dist_', - assetsDir: '.', - emptyOutDir: false, - sourcemap: process.env.NODE_ENV !== 'production', - reportCompressedSize: false, - }, - }; -}); diff --git a/packages/client/vite.json5.ts b/packages/client/vite.json5.ts deleted file mode 100644 index 0a37fbff4..000000000 --- a/packages/client/vite.json5.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Original: https://github.com/rollup/plugins/tree/8835dd2aed92f408d7dc72d7cc25a9728e16face/packages/json - -import JSON5 from 'json5'; -import { Plugin } from 'rollup'; -import { createFilter, dataToEsm } from '@rollup/pluginutils'; -import { RollupJsonOptions } from '@rollup/plugin-json'; - -export default function json5(options: RollupJsonOptions = {}): Plugin { - const filter = createFilter(options.include, options.exclude); - const indent = 'indent' in options ? options.indent : '\t'; - - return { - name: 'json5', - - // eslint-disable-next-line no-shadow - transform(json, id) { - if (id.slice(-6) !== '.json5' || !filter(id)) return null; - - try { - const parsed = JSON5.parse(json); - return { - code: dataToEsm(parsed, { - preferConst: options.preferConst, - compact: options.compact, - namedExports: options.namedExports, - indent, - }), - map: { mappings: '' }, - }; - } catch (err) { - const message = 'Could not parse JSON file'; - const position = parseInt(/[\d]/.exec(err.message)[0], 10); - this.warn({ message, id, position }); - return null; - } - }, - }; -} diff --git a/packages/client/yarn.lock b/packages/client/yarn.lock deleted file mode 100644 index abaf3e344..000000000 --- a/packages/client/yarn.lock +++ /dev/null @@ -1,3720 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/parser@^7.16.4": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" - integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== - -"@babel/runtime@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.6.2": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" - integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== - dependencies: - regenerator-runtime "^0.13.4" - -"@cropper/element-canvas@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-canvas/-/element-canvas-2.0.0-beta.tgz#9501e6a2512a78c7503f2974b1fc65f90c7fecca" - integrity sha512-cKbox0AsUx3pMCjT7mQZx3i5FoZTR/Lzz9awuRR8/EciViMN4KkfodGHWSUrIX3zSr0fECsrb2CyNKV8DKZdpQ== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-crosshair@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-crosshair/-/element-crosshair-2.0.0-beta.tgz#9d6ee1e6ed90196b6d4d2425f84909b83ffc66df" - integrity sha512-V58xxH3+8TrT9PrUzNouRhcyucyX/xBV5hBv03g0zCu09C5p0BZjrhaPo3hkt8oQvnhYT9SbMTe+k5hIoZgkbQ== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-grid@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-grid/-/element-grid-2.0.0-beta.tgz#af6f3fce213307403ad83d9935839bde39c9beeb" - integrity sha512-F+qVLrjuHjJbaut1Gd6qSruMqYOHudhDB/r0dcLtnRW4b1yPd/QyhM5F0KLtCX7Lh6GUvpz2V9Vb/EYQLZuOkw== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-handle@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-handle/-/element-handle-2.0.0-beta.tgz#bd55667e133df402616d44a694110fd0e61eef0b" - integrity sha512-Ty12mLpiUM8XRGQN0lRNB7TKP5SOXbTWaW2Uvli1Tu3Y6iLTtXUvs2VZ/fGR8XvhB7v7Lvo+OPfzuxIRx4gwKg== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-image@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-image/-/element-image-2.0.0-beta.tgz#170dbdfbeef75de2f2c0089d4739ad980d69390a" - integrity sha512-CrHEMBo5svjj72qePBPGV4ut70RTI6n5U2k2YKcZihHSNU2h6SUEx8zkN8lNIgelsv2Bpb/PvSd1eu26BrJbtA== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/element-canvas" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-selection@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-selection/-/element-selection-2.0.0-beta.tgz#7e1e498773bc26bb09ddaf09b0cafbe5b359ed7b" - integrity sha512-MEK+pn2Bma5cXf1N9mC3fRKNvzi6Aj9V2TdhaCl6KdOn6Bp10a+SR8y555MXd80zzFAU/eR1e7TMTyJiPRJFcw== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/element-canvas" "^2.0.0-beta" - "@cropper/element-image" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-shade@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-shade/-/element-shade-2.0.0-beta.tgz#55400aec3e352d959a706bfff1b82afca955d33e" - integrity sha512-vfKTTkRFio/bi0ueIbdyg2ukhS35/ufsgA13dfzOgkyUT/TUsqTLONNJA2fxO0WLKSajTtvrl1ShdrSXE+EKCQ== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/element-canvas" "^2.0.0-beta" - "@cropper/element-selection" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element-viewer@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element-viewer/-/element-viewer-2.0.0-beta.tgz#9a83b670f5cc667d7fc0071f08a1476817e0ed4e" - integrity sha512-ZsqdOWJ8OIrK1JR00ibmYrvVMYQVFXOudXezYtf8C5lc7DdtN4elmjVOfLQQM2kxG0WvflIVo6oqqyOzFnsAFg== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/element-canvas" "^2.0.0-beta" - "@cropper/element-image" "^2.0.0-beta" - "@cropper/element-selection" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -"@cropper/element@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/element/-/element-2.0.0-beta.tgz#7833a92471a16e8860530e10658add42e8781959" - integrity sha512-seS8oDe2+Vpsy+yyqUIHzjIP6WUQRxwhFjLml/s2e+L6jF9o+g0KHzLJkBCV/ASKBnyb00aLjAt0dBXPLW/KgQ== - dependencies: - "@cropper/utils" "^2.0.0-beta" - -"@cropper/elements@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/elements/-/elements-2.0.0-beta.tgz#e73a4edaeff7e41dcca8d096bd1bc2bdc6a376e9" - integrity sha512-Huyptek2Q6141fRiuejhOyec/viX4zmUeMnpi+5h7OBuorTYUowZ823mmfgBZ4bb7+VPdAl79vUECV9EYq/ciw== - dependencies: - "@cropper/element" "^2.0.0-beta" - "@cropper/element-canvas" "^2.0.0-beta" - "@cropper/element-crosshair" "^2.0.0-beta" - "@cropper/element-grid" "^2.0.0-beta" - "@cropper/element-handle" "^2.0.0-beta" - "@cropper/element-image" "^2.0.0-beta" - "@cropper/element-selection" "^2.0.0-beta" - "@cropper/element-shade" "^2.0.0-beta" - "@cropper/element-viewer" "^2.0.0-beta" - -"@cropper/utils@^2.0.0-beta": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@cropper/utils/-/utils-2.0.0-beta.tgz#7290b03c8c1dc7a2f33406c8aecc80b339425f0e" - integrity sha512-Bb3hCyHK2w0l0i8OtRw6C9Q5ytUC5qN+l+kx7F3GiAAFZMX7jGyfPB0uLiZ2TwDm5mosnWjyLVXmCGDcTUnYaQ== - -"@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - -"@discordapp/twemoji@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@discordapp/twemoji/-/twemoji-14.0.2.tgz#50cc19f6f3769dc6b36eb251421b5f5d4629e837" - integrity sha512-eYJpFsjViDTYwq3f6v+tRu8iRc+yLAeGrlh6kmNRvvC6rroUE2bMlBfEQ/WNh+2Q1FtSEFXpxzuQPOHzRzbAyA== - dependencies: - fs-extra "^8.0.1" - jsonfile "^5.0.0" - twemoji-parser "14.0.0" - universalify "^0.1.2" - -"@esbuild/linux-loong64@0.15.7": - version "0.15.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" - integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== - -"@eslint/eslintrc@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" - integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@fortawesome/fontawesome-free@6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.2.tgz#d18880eddeadd42b1c64cb559f2f3d13d47a4a64" - integrity sha512-XwWADtfdSN73/udaFm+1mnGIj/ShDZNFMe/PRoqv3FhQ4GNI2PUN70yFTPsjq65Lw2C9i4TG5/hTbxXIXVCiqQ== - -"@hapi/hoek@^9.0.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" - integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@rollup/plugin-alias@3.1.9": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" - integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== - dependencies: - slash "^3.0.0" - -"@rollup/plugin-json@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/pluginutils@^3.0.8": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@sideway/address@^4.1.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.2.tgz#811b84333a335739d3969cfc434736268170cad1" - integrity sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - -"@syuilo/aiscript@0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.11.1.tgz#52c14692113c58d1d62e6ae696352ba49abdf2eb" - integrity sha512-chwOIA3yLUKvOB0G611hjLArKTeOWNmTm3lHERSaDW1d+dS6do56naX6Lkwy2UpnwWC0qzeNSgg35elk6t2gZg== - dependencies: - autobind-decorator "2.4.0" - chalk "4.0.0" - seedrandom "3.0.5" - stringz "2.1.0" - uuid "7.0.3" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/escape-regexp@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@types/escape-regexp/-/escape-regexp-0.0.1.tgz#f1a977ccdf2ef059e9862bd3af5e92cbbe723e0e" - integrity sha512-ogj/ZTIdeFkiuxDwawYuZSIgC6suFGgBeZPr6Xs5lHEcvIXTjXGtH+/n8f1XhZhespaUwJ5LIGRICPji972FLw== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/expect@^1.20.4": - version "1.20.4" - resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" - integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== - -"@types/glob-stream@*": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-6.1.0.tgz#7ede8a33e59140534f8d8adfb8ac9edfb31897bc" - integrity sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg== - dependencies: - "@types/glob" "*" - "@types/node" "*" - -"@types/glob@*": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/glob@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.0.tgz#321607e9cbaec54f687a0792b2d1d370739455d2" - integrity sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/gulp-rename@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/gulp-rename/-/gulp-rename-2.0.1.tgz#c8228fc2c5c4a7500346ea9ce18f27fa988caef5" - integrity sha512-9ZjeS2RHEnmBmTcyi2+oeye3BgCsWhvi4uv3qCnAg8i6plOuRdaeNxjOves0ELysEXYLBl7bCl5fbVs7AZtgTA== - dependencies: - "@types/node" "*" - "@types/vinyl" "*" - -"@types/gulp@4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.9.tgz#a2f9667bcc26bc72b4899dd16216d6584a12346c" - integrity sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q== - dependencies: - "@types/undertaker" "*" - "@types/vinyl-fs" "*" - chokidar "^3.3.1" - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/katex@0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" - integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== - -"@types/matter-js@0.18.1": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@types/matter-js/-/matter-js-0.18.1.tgz#9c2340f0f10d0eb630722718828b236c9d10a3bf" - integrity sha512-Qck+zYiE9GI7vMpeEzMC4JGk+/erTF0XVwOrpwvIGaBn9NPMXNhd/W5EaPkz+CpT+uO9A4C1bHbU+A4j/QzG6A== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "16.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" - integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== - -"@types/node@^14.14.31": - version "14.17.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" - integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== - -"@types/punycode@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" - integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== - -"@types/seedrandom@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.2.tgz#7f30db28221067a90b02e73ffd46b6685b18df1a" - integrity sha512-YPLqEOo0/X8JU3rdiq+RgUKtQhQtrppE766y7vMTu8dGML7TVtZNiiiaC/hhU9Zqw9UYopXxhuWWENclMVBwKQ== - -"@types/sinonjs__fake-timers@8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" - integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== - -"@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== - -"@types/throttle-debounce@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-5.0.0.tgz#8208087f0af85107bcc681c50fa837fc9505483e" - integrity sha512-Pb7k35iCGFcGPECoNE4DYp3Oyf2xcTd3FbFQxXUI9hEYKUl6YX+KLf7HrBmgVcD05nl50LIH6i+80js4iYmWbw== - -"@types/tinycolor2@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.3.tgz#ed4a0901f954b126e6a914b4839c77462d56e706" - integrity sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ== - -"@types/undertaker-registry@*": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz#4306d4a03d7acedb974b66530832b90729e1d1da" - integrity sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ== - -"@types/undertaker@*": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/undertaker/-/undertaker-1.2.2.tgz#927da24d0d3279830af96386862b035e040ead74" - integrity sha512-j4iepCSuY2JGW/hShVtUBagic0klYNFIXP7VweavnYnNC2EjiKxJFeaS9uaJmAT0ty9sQSqTS1aagWMZMV0HyA== - dependencies: - "@types/undertaker-registry" "*" - -"@types/uuid@8.3.4": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/vinyl-fs@*": - version "2.4.11" - resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz#b98119b8bb2494141eaf649b09fbfeb311161206" - integrity sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA== - dependencies: - "@types/glob-stream" "*" - "@types/node" "*" - "@types/vinyl" "*" - -"@types/vinyl@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.4.tgz#9a7a8071c8d14d3a95d41ebe7135babe4ad5995a" - integrity sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ== - dependencies: - "@types/expect" "^1.20.4" - "@types/node" "*" - -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz#6df092a20e0f9ec748b27f293a12cb39d0c1fe4d" - integrity sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw== - dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/type-utils" "5.36.2" - "@typescript-eslint/utils" "5.36.2" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" - integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== - dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" - integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== - dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" - -"@typescript-eslint/type-utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz#752373f4babf05e993adf2cd543a763632826391" - integrity sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw== - dependencies: - "@typescript-eslint/typescript-estree" "5.36.2" - "@typescript-eslint/utils" "5.36.2" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" - integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== - -"@typescript-eslint/typescript-estree@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" - integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== - dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.2.tgz#b01a76f0ab244404c7aefc340c5015d5ce6da74c" - integrity sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" - integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== - dependencies: - "@typescript-eslint/types" "5.36.2" - eslint-visitor-keys "^3.3.0" - -"@vitejs/plugin-vue@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz#3a423ea6943a450e806da412a911150e928598ed" - integrity sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA== - -"@vue/compiler-core@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.39.tgz#0d77e635f4bdb918326669155a2dc977c053943e" - integrity sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.39" - estree-walker "^2.0.2" - source-map "^0.6.1" - -"@vue/compiler-dom@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz#bd69d35c1a48fe2cea4ab9e96d2a3a735d146fdf" - integrity sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw== - dependencies: - "@vue/compiler-core" "3.2.39" - "@vue/shared" "3.2.39" - -"@vue/compiler-sfc@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz#8fe29990f672805b7c5a2ecfa5b05e681c862ea2" - integrity sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.39" - "@vue/compiler-dom" "3.2.39" - "@vue/compiler-ssr" "3.2.39" - "@vue/reactivity-transform" "3.2.39" - "@vue/shared" "3.2.39" - estree-walker "^2.0.2" - magic-string "^0.25.7" - postcss "^8.1.10" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz#4f3bfb535cb98b764bee45e078700e03ccc60633" - integrity sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ== - dependencies: - "@vue/compiler-dom" "3.2.39" - "@vue/shared" "3.2.39" - -"@vue/reactivity-transform@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz#da6ae6c8fd77791b9ae21976720d116591e1c4aa" - integrity sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.39" - "@vue/shared" "3.2.39" - estree-walker "^2.0.2" - magic-string "^0.25.7" - -"@vue/reactivity@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.39.tgz#e6e3615fe2288d4232b104640ddabd0729a78c80" - integrity sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ== - dependencies: - "@vue/shared" "3.2.39" - -"@vue/runtime-core@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.39.tgz#dc1faccab11b3e81197aba33fb30c9447c1d2c84" - integrity sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g== - dependencies: - "@vue/reactivity" "3.2.39" - "@vue/shared" "3.2.39" - -"@vue/runtime-dom@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz#4a8cb132bcef316e8151c5ed07fc7272eb064614" - integrity sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA== - dependencies: - "@vue/runtime-core" "3.2.39" - "@vue/shared" "3.2.39" - csstype "^2.6.8" - -"@vue/server-renderer@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.39.tgz#4358292d925233b0d8b54cf0513eaece8b2351c5" - integrity sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ== - dependencies: - "@vue/compiler-ssr" "3.2.39" - "@vue/shared" "3.2.39" - -"@vue/shared@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.39.tgz#302df167559a1a5156da162d8cc6760cef67f8e3" - integrity sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -autobind-decorator@2.4.0, autobind-decorator@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.4.0.tgz#ea9e1c98708cf3b5b356f7cf9f10f265ff18239c" - integrity sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw== - -autosize@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/autosize/-/autosize-5.0.1.tgz#ed269b0fa9b7eb47627048a1bb3299e99e003a0f" - integrity sha512-UIWUlE4TOVPNNj2jjrU39wI4hEYbneUypEqcyRmRFIx5CC2gNdg3rQr+Zh7/3h6egbBvm33TDQjNQKtj9Tk1HA== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@3.7.2, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -blurhash@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.5.tgz#3034104cd5dce5a3e5caa871ae2f0f1f2d0ab566" - integrity sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -broadcast-channel@4.14.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-4.14.0.tgz#cd2ce466128130ec3a93f7c1f1ed01d658575e35" - integrity sha512-uNzxOgBQ+boWCRDESLNg3zZWQ3iz/X7j/uD8pAfr4/S7wQerXVvJI/SBKd9J6ckaPt2jil0gq+7l+3b+kuxJYw== - dependencies: - "@babel/runtime" "^7.16.0" - detect-node "^2.1.0" - microtime "3.1.0" - oblivious-set "1.1.1" - p-queue "6.6.2" - rimraf "3.0.2" - unload "2.3.1" - -"browser-image-resizer@git+https://github.com/misskey-dev/browser-image-resizer#v2.2.1-misskey.2": - version "2.2.1-misskey.2" - resolved "git+https://github.com/misskey-dev/browser-image-resizer#a58834f5fe2af9f9f31ff115121aef3de6f9d416" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chart.js@3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.9.1.tgz#3abf2c775169c4c71217a107163ac708515924b8" - integrity sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w== - -chartjs-adapter-date-fns@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-2.0.0.tgz#5e53b2f660b993698f936f509c86dddf9ed44c6b" - integrity sha512-rmZINGLe+9IiiEB0kb57vH3UugAtYw33anRiw5kS2Tu87agpetDDoouquycWc9pRsKtQo5j+vLsYHyr8etAvFw== - -chartjs-plugin-gradient@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chartjs-plugin-gradient/-/chartjs-plugin-gradient-0.5.1.tgz#ac7ce246bcafb749ec7b64fe0668d518c75c9475" - integrity sha512-vhwlYGZWan4MGZZ4Wj64Y4aIql1uCPCU1JcggLWn3cgYEv4G7pXp1YgM4XH5ugmyn6BVCgQqAhiJ2h6hppzHmQ== - -chartjs-plugin-zoom@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/chartjs-plugin-zoom/-/chartjs-plugin-zoom-1.2.1.tgz#7e350ba20d907f397d0c055239dcc67d326df705" - integrity sha512-2zbWvw2pljrtMLMXkKw1uxYzAne5PtjJiOZftcut4Lo3Ee8qUt95RpMKDWrZ+pBZxZKQKOD/etdU4pN2jxZUmg== - dependencies: - hammerjs "^2.0.8" - -check-more-types@2.24.0, check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.1, chokidar@^3.5.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" - integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.3.0" - optionalDependencies: - fsevents "~2.1.2" - -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-table3@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== - dependencies: - string-width "^4.2.0" - optionalDependencies: - colors "1.4.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -commander@^9.0.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" - integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== - -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== - -compare-versions@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.1.tgz#14c6008436d994c3787aba38d4087fabe858555e" - integrity sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cropperjs@2.0.0-beta: - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-2.0.0-beta.tgz#bf3f9c19c426657d63c1e6dd55f635546ccec0a5" - integrity sha512-mwupI1Ct84PUynnC9S7KenCtgXiuRYAfLwzxPlJwc392iNX8fZUPP6a8gEpmRQTgvsE9Ubme1tXLM6/HLXksiQ== - dependencies: - "@cropper/elements" "^2.0.0-beta" - "@cropper/utils" "^2.0.0-beta" - -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^2.6.8: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== - -cypress@10.7.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.7.0.tgz#2d37f8b9751c6de33ee48639cb7e67a2ce593231" - integrity sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ== - dependencies: - "@cypress/request" "^2.88.10" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.6.0" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "^6.4.3" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.6" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.3.2" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - yauzl "^2.10.0" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -date-fns@2.29.2: - version "2.29.2" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" - integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== - -dayjs@^1.10.4: - version "1.10.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" - integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== - -debug@4.3.2, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-node@2.1.0, detect-node@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild-android-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" - integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== - -esbuild-android-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" - integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== - -esbuild-darwin-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" - integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== - -esbuild-darwin-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" - integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== - -esbuild-freebsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" - integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== - -esbuild-freebsd-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" - integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== - -esbuild-linux-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" - integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== - -esbuild-linux-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" - integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== - -esbuild-linux-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" - integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== - -esbuild-linux-arm@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" - integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== - -esbuild-linux-mips64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" - integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== - -esbuild-linux-ppc64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" - integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== - -esbuild-linux-riscv64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" - integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== - -esbuild-linux-s390x@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" - integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== - -esbuild-netbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" - integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== - -esbuild-openbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" - integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== - -esbuild-sunos-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" - integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== - -esbuild-windows-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" - integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== - -esbuild-windows-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" - integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== - -esbuild-windows-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" - integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== - -esbuild@^0.15.6: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" - integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== - optionalDependencies: - "@esbuild/linux-loong64" "0.15.7" - esbuild-android-64 "0.15.7" - esbuild-android-arm64 "0.15.7" - esbuild-darwin-64 "0.15.7" - esbuild-darwin-arm64 "0.15.7" - esbuild-freebsd-64 "0.15.7" - esbuild-freebsd-arm64 "0.15.7" - esbuild-linux-32 "0.15.7" - esbuild-linux-64 "0.15.7" - esbuild-linux-arm "0.15.7" - esbuild-linux-arm64 "0.15.7" - esbuild-linux-mips64le "0.15.7" - esbuild-linux-ppc64le "0.15.7" - esbuild-linux-riscv64 "0.15.7" - esbuild-linux-s390x "0.15.7" - esbuild-netbsd-64 "0.15.7" - esbuild-openbsd-64 "0.15.7" - esbuild-sunos-64 "0.15.7" - esbuild-windows-32 "0.15.7" - esbuild-windows-64 "0.15.7" - esbuild-windows-arm64 "0.15.7" - -escape-regexp@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" - integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-import@2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-vue@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz#31c2d9002b5bb437b351a5feffdf37c4397e5cb9" - integrity sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ== - dependencies: - eslint-utils "^3.0.0" - natural-compare "^1.4.0" - nth-check "^2.0.1" - postcss-selector-parser "^6.0.9" - semver "^7.3.5" - vue-eslint-parser "^9.0.1" - xml-name-validator "^4.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@8.23.0: - version "8.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" - integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== - dependencies: - "@eslint/eslintrc" "^1.3.1" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" - "@humanwhocodes/module-importer" "^1.0.1" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.3.1: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -eventemitter2@^6.4.3: - version "6.4.4" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" - integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== - -eventemitter3@4.0.7, eventemitter3@^4.0.4, eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -execa@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== - -follow-redirects@^1.14.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-extra@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -graceful-fs@^4.1.6: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -hammerjs@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.14.1" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -idb-keyval@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.0.tgz#3af94a3cc0689d6ee0bc9e045d2a3340ea897173" - integrity sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng== - dependencies: - safari-14-idb-fix "^3.0.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -immutable@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" - integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -insert-text-at-cursor@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz#1819607680ec1570618347c4cd475e791faa25da" - integrity sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== - dependencies: - ci-info "^3.1.1" - -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== - dependencies: - call-bind "^1.0.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -joi@^17.4.0: - version "17.4.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" - integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@2.2.1, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" - integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== - dependencies: - universalify "^0.1.2" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -katex@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.15.6.tgz#c4e2f6ced2ac4de1ef6f737fe7c67d3026baa0e5" - integrity sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA== - dependencies: - commander "^8.0.0" - -lazy-ass@1.6.0, lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -listr2@^3.8.3: - version "3.11.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" - integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== - dependencies: - cli-truncate "^2.1.0" - colorette "^1.2.2" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.6.7" - through "^2.3.8" - wrap-ansi "^7.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -matter-js@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/matter-js/-/matter-js-0.18.0.tgz#083ced04eb6768f7664dc7ca8948a10e46ad3ed6" - integrity sha512-/ZVem4WygUnbmo/iE4oHZpZS97btfBtYy5Iwn1396vUZU7YhgVEN8J4UWwfZwY1ZqoTYlPgjvSw9WXauuXL0mg== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -mfm-js@0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/mfm-js/-/mfm-js-0.23.0.tgz#1d1477761aa8259ddcac2e6882df53ed9ca5b82b" - integrity sha512-2Oe/YicoaP1EU2y9JB5729/PQLZK/7aAVomeJkp1h4XGP2//NMDC+DHkBbSO71U3GG086SAZM0JBB/hdPPSEXg== - dependencies: - twemoji-parser "14.0.0" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -microtime@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/microtime/-/microtime-3.1.0.tgz#599a71250e3116c59f0fe5271dae4cc44321869c" - integrity sha512-GcjhfC2y/DF2znac8IRwri7+YUIy34QRHz/iZK3bHrh74qrNNOpAJQwiOMnIG+v1J0K4eiqd+RiGzN3F1eofTQ== - dependencies: - node-addon-api "^5.0.0" - node-gyp-build "^4.4.0" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -misskey-js@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/misskey-js/-/misskey-js-0.0.14.tgz#1a616bdfbe81c6ee6900219eaf425bb5c714dd4d" - integrity sha512-bvLx6U3OwQwqHfp/WKwIVwdvNYAAPk0+YblXyxmSG3dwlzCgBRRLcB8o6bNruUDyJgh3t73pLDcOz3myxcUmww== - dependencies: - autobind-decorator "^2.4.0" - eventemitter3 "^4.0.7" - reconnecting-websocket "^4.4.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mylas@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.9.tgz#8329626f95c0ce522ca7d3c192eca6221d172cdc" - integrity sha512-pa+cQvmhoM8zzgitPYZErmDt9EdTNVnXsH1XFjMeM4TyG4FFcgxrvK1+jwabVFwUOEDaSWuXBMjg43kqt/Ydlg== - -nanoid@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -node-addon-api@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501" - integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== - -node-gyp-build@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -oblivious-set@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.1.1.tgz#d9d38e9491d51f27a5c3ec1681d2ba40aa81e98b" - integrity sha512-Oh+8fK09mgGmAshFdH6hSVco6KZmd1tTwNFWj35OvzdmJTMZtAkbn05zar2iG3v6sDs1JLEtOiBGNb6BHwkb2w== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-queue@6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -photoswipe@5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/photoswipe/-/photoswipe-5.3.2.tgz#814d26197ba59076828ddefd41b7f9ed5eb355a8" - integrity sha512-QJrf0kGa3tYX3sUascZymkT+ZIkgw8YNcwL+hGqoLTyphcn9vSTEab7tmCnA1tthgVzWQRgPjX9psuk7yFrTcA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.2.2, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -plimit-lit@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.2.6.tgz#8c1336f26a042b6e9f1acc665be5eee4c2a55fb3" - integrity sha512-EuVnKyDeFgr58aidKf2G7DI41r23bxphlvBKAZ8e8dT9of0Ez2g9w6JbJGUP1YBNC2yG9+ZCCbjLj4yS1P5Gzw== - dependencies: - queue-lit "^1.2.7" - -postcss-selector-parser@^6.0.9: - version "6.0.9" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss@^8.1.10: - version "8.4.13" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.13.tgz#7c87bc268e79f7f86524235821dfdf9f73e5d575" - integrity sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA== - dependencies: - nanoid "^3.3.3" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.16: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -prismjs@1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== - -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= - -ps-tree@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.1, punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - -queue-lit@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.2.7.tgz#69081656c9e7b81f09770bb2de6aa007f1a90763" - integrity sha512-K/rTdggORRcmf3+c89ijPlgJ/ldGP4oBj6Sm7VcTup4B2clf03Jo8QaXTnMst4EEQwkUbOZFN4frKocq2I85gw== - -rangestr@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/rangestr/-/rangestr-0.0.1.tgz#f72ff9246f10f2a7d7c16e14616f617be2c2635a" - integrity sha1-9y/5JG8Q8qfXwW4UYW9he+LCY1o= - -readdirp@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" - integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== - dependencies: - picomatch "^2.0.7" - -reconnecting-websocket@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" - integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= - dependencies: - throttleit "^1.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rndstr@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" - integrity sha1-d+ZvqPm0g2hT/dkeUHGVkbtn00k= - dependencies: - rangestr "0.0.1" - seedrandom "2.4.2" - -rollup@2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" - integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== - optionalDependencies: - fsevents "~2.3.2" - -rollup@~2.78.0: - version "2.78.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" - integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -rxjs@^6.6.7: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.1.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6" - integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw== - dependencies: - tslib "~2.1.0" - -s-age@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/s-age/-/s-age-1.1.2.tgz#c0cf15233ccc93f41de92ea42c36d957977d1ea2" - integrity sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA== - -safari-14-idb-fix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz#450fc049b996ec7f3fd9ca2f89d32e0761583440" - integrity sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog== - -safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass@1.54.9: - version "1.54.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.9.tgz#b05f14ed572869218d1a76961de60cd647221762" - integrity sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -seedrandom@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" - integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= - -seedrandom@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" - integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== - -semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.6, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -sortablejs@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" - integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -sshpk@^1.14.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -start-server-and-test@1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" - integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== - dependencies: - bluebird "3.7.2" - check-more-types "2.24.0" - debug "4.3.2" - execa "5.1.1" - lazy-ass "1.6.0" - ps-tree "1.2.0" - wait-on "6.0.0" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -strict-event-emitter-types@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" - integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -stringz@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c" - integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== - dependencies: - char-regex "^1.0.2" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -syuilo-password-strength@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/syuilo-password-strength/-/syuilo-password-strength-0.0.1.tgz#08f71a8f0ecb77db649f3d9a6424510d9d945f52" - integrity sha1-CPcajw7Ld9tknz2aZCRRDZ2UX1I= - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -textarea-caret@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/textarea-caret/-/textarea-caret-3.1.0.tgz#5d5a35bb035fd06b2ff0e25d5359e97f2655087f" - integrity sha512-cXAvzO9pP5CGa6NKx0WYHl+8CHKZs8byMkt3PCJBCmq2a34YA9pO1NrQET5pzeqnBjBdToF5No4rrmkDUgQC2Q== - -three@0.144.0: - version "0.144.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.144.0.tgz#2818517169f8ff94eea5f664f6ff1fcdcd436cc8" - integrity sha512-R8AXPuqfjfRJKkYoTQcTK7A6i3AdO9++2n8ubya/GTU+fEHhYKu1ZooRSCPkx69jbnzT7dD/xEo6eROQTt2lJw== - -throttle-debounce@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" - integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= - -through@2, through@^2.3.8, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tinycolor2@1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== - -tmp@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tsc-alias@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.7.0.tgz#733482751133a25b97608ee424f8a1f085fcaaef" - integrity sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg== - dependencies: - chokidar "^3.5.3" - commander "^9.0.0" - globby "^11.0.4" - mylas "^2.1.9" - normalize-path "^3.0.0" - plimit-lit "^1.2.6" - -tsconfig-paths@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" - integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== - dependencies: - json5 "^2.2.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== - -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -twemoji-parser@14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" - integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typescript@4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" - integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unload@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unload/-/unload-2.3.1.tgz#9d16862d372a5ce5cb630ad1309c2fd6e35dacfe" - integrity sha512-MUZEiDqvAN9AIDRbbBnVYVvfcR6DrjCqeU2YQMmliFZl9uaBUjTkhuDQkBiyAy8ad5bx1TXVbqZ3gg7namsWjA== - dependencies: - "@babel/runtime" "^7.6.2" - detect-node "2.1.0" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - -uuid@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -vanilla-tilt@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/vanilla-tilt/-/vanilla-tilt-1.7.2.tgz#59a5565d9f1f6d392a36969f223fb600dd101a81" - integrity sha512-arf2wY2Y65rP6Zxve9PnUUnRl9nQ1KenPNae6QRaVq/PEvaIto2bC4jYirNJ19U7nLkzI1H9O+nYtcQlX7BTsA== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vite@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" - integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== - dependencies: - esbuild "^0.15.6" - postcss "^8.4.16" - resolve "^1.22.1" - rollup "~2.78.0" - optionalDependencies: - fsevents "~2.3.2" - -vue-eslint-parser@^9.0.1: - version "9.0.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.0.2.tgz#d2535516f3f55adb387939427fe741065eb7948a" - integrity sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-prism-editor@2.0.0-alpha.2: - version "2.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/vue-prism-editor/-/vue-prism-editor-2.0.0-alpha.2.tgz#aa53a88efaaed628027cbb282c2b1d37fc7c5c69" - integrity sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w== - -vue@3.2.39: - version "3.2.39" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.39.tgz#de071c56c4c32c41cbd54e55f11404295c0dd62d" - integrity sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g== - dependencies: - "@vue/compiler-dom" "3.2.39" - "@vue/compiler-sfc" "3.2.39" - "@vue/runtime-dom" "3.2.39" - "@vue/server-renderer" "3.2.39" - "@vue/shared" "3.2.39" - -vuedraggable@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-4.0.1.tgz#3bcaab0808b7944030b7d9a29f9a63d59dfa12c5" - integrity sha512-7qN5jhB1SLfx5P+HCm3JUW+pvgA1bSLgYLSVOeLWBDH9z+zbaEH0OlyZBVMLOxFR+JUHJjwDD0oy7T4r9TEgDA== - dependencies: - sortablejs "1.10.2" - -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== - dependencies: - axios "^0.21.1" - joi "^17.4.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/packages/shared/.eslintrc.js b/packages/shared/.eslintrc.js deleted file mode 100644 index 5a6a9c5af..000000000 --- a/packages/shared/.eslintrc.js +++ /dev/null @@ -1,81 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: [ - '@typescript-eslint', - 'import' - ], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript' - ], - rules: { - 'indent': ['warn', 'tab', { - 'SwitchCase': 1, - 'MemberExpression': 1, - 'flatTernaryExpressions': true, - 'ArrayExpression': 'first', - 'ObjectExpression': 'first', - }], - 'eol-last': ['error', 'always'], - 'semi': ['error', 'always'], - 'semi-spacing': ['error', { 'before': false, 'after': true }], - 'quotes': ['warn', 'single'], - 'comma-dangle': ['warn', 'always-multiline'], - 'keyword-spacing': ['error', { - 'before': true, - 'after': true, - }], - 'key-spacing': ['error', { - 'beforeColon': false, - 'afterColon': true, - }], - 'arrow-spacing': ['error', { - 'before': true, - 'after': true, - }], - 'padded-blocks': ['error', 'never'], - /* TODO: path aliasを使わないとwarnする - 'no-restricted-imports': ['warn', { - 'patterns': [ - ] - }], - */ - 'eqeqeq': ['error', 'always', { 'null': 'ignore' }], - 'no-multi-spaces': ['error'], - 'no-var': ['error'], - 'prefer-arrow-callback': ['error'], - 'no-throw-literal': ['warn'], - 'no-param-reassign': ['warn'], - 'no-constant-condition': ['warn'], - 'no-empty-pattern': ['warn'], - 'no-async-promise-executor': ['off'], - 'no-useless-escape': ['off'], - 'no-multiple-empty-lines': ['error', { 'max': 1 }], - 'no-control-regex': ['warn'], - 'no-empty': ['warn'], - 'no-inner-declarations': ['off'], - 'no-sparse-arrays': ['off'], - 'nonblock-statement-body-position': ['error', 'beside'], - 'object-curly-spacing': ['error', 'always'], - 'space-infix-ops': ['error'], - 'space-before-blocks': ['error', 'always'], - '@typescript-eslint/no-unnecessary-condition': ['warn'], - '@typescript-eslint/no-var-requires': ['warn'], - '@typescript-eslint/no-inferrable-types': ['warn'], - '@typescript-eslint/no-empty-function': ['off'], - '@typescript-eslint/no-non-null-assertion': ['warn'], - '@typescript-eslint/explicit-function-return-type': ['warn'], - '@typescript-eslint/no-misused-promises': ['error', { - 'checksVoidReturn': false, - }], - '@typescript-eslint/consistent-type-imports': 'error', - 'import/no-unresolved': ['off'], - 'import/no-default-export': ['warn'], - 'import/order': ['warn', { - 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - }] - }, -}; diff --git a/packages/sw/.eslintrc.js b/packages/sw/.eslintrc.js deleted file mode 100644 index 9d56daca8..000000000 --- a/packages/sw/.eslintrc.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - root: true, - env: { - "node": false - }, - parserOptions: { - "parser": "@typescript-eslint/parser", - tsconfigRootDir: __dirname, - //project: ['./tsconfig.json'], - }, - extends: [ - //"../shared/.eslintrc.js", - ], - globals: { - "require": false, - "_DEV_": false, - "_LANGS_": false, - "_VERSION_": false, - "_ENV_": false, - "_PERF_PREFIX_": false, - } -} diff --git a/packages/sw/.npmrc b/packages/sw/.npmrc deleted file mode 100644 index 6b5f38e89..000000000 --- a/packages/sw/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -save-exact = true -package-lock = false diff --git a/packages/sw/.yarnrc b/packages/sw/.yarnrc deleted file mode 100644 index 788570fcd..000000000 --- a/packages/sw/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -network-timeout 600000 diff --git a/packages/sw/build.js b/packages/sw/build.js deleted file mode 100644 index 72d9db9c0..000000000 --- a/packages/sw/build.js +++ /dev/null @@ -1,37 +0,0 @@ -const esbuild = require('esbuild'); -const locales = require('../../locales'); -const meta = require('../../package.json'); -const watch = process.argv[2]?.includes('watch'); - -console.log('Starting SW building...'); - -esbuild.build({ - entryPoints: [ `${__dirname}/src/sw.ts` ], - bundle: true, - format: 'esm', - treeShaking: true, - minify: process.env.NODE_ENV === 'production', - absWorkingDir: __dirname, - outbase: `${__dirname}/src`, - outdir: `${__dirname}/../../built/_sw_dist_`, - loader: { - '.ts': 'ts' - }, - tsconfig: `${__dirname}/tsconfig.json`, - define: { - _VERSION_: JSON.stringify(meta.version), - _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]) => [k, v._lang_])), - _ENV_: JSON.stringify(process.env.NODE_ENV), - _DEV_: process.env.NODE_ENV !== 'production', - _PERF_PREFIX_: JSON.stringify('Misskey:'), - }, - watch: watch ? { - onRebuild(error, result) { - if (error) console.error('SW: watch build failed:', error); - else console.log('SW: watch build succeeded:', result); - }, - } : false, -}).then(result => { - if (watch) console.log('watching...'); - else console.log('done,', JSON.stringify(result)); -}); diff --git a/packages/sw/package.json b/packages/sw/package.json deleted file mode 100644 index 41dfe19b8..000000000 --- a/packages/sw/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "watch": "node build.js watch", - "build": "node build.js", - "lint": "eslint --quiet src/**/*.{ts}" - }, - "resolutions": {}, - "dependencies": { - "esbuild": "^0.14.13", - "idb-keyval": "^6.0.3", - "misskey-js": "0.0.14" - }, - "devDependencies": { - "eslint": "^8.2.0" - } -} diff --git a/packages/sw/src/filters/user.ts b/packages/sw/src/filters/user.ts deleted file mode 100644 index 09437eb19..000000000 --- a/packages/sw/src/filters/user.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as misskey from 'misskey-js'; -import * as Acct from 'misskey-js/built/acct'; - -export const acct = (user: misskey.Acct) => { - return Acct.toString(user); -}; - -export const userName = (user: misskey.entities.User) => { - return user.name || user.username; -}; - -export const userPage = (user: misskey.Acct, path?, absolute = false) => { - return `${absolute ? origin : ''}/@${acct(user)}${(path ? `/${path}` : '')}`; -}; diff --git a/packages/sw/src/scripts/create-notification.ts b/packages/sw/src/scripts/create-notification.ts deleted file mode 100644 index 7c95e8e41..000000000 --- a/packages/sw/src/scripts/create-notification.ts +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Notification manager for SW - */ -declare var self: ServiceWorkerGlobalScope; - -import { swLang } from '@/scripts/lang'; -import { cli } from '@/scripts/operations'; -import { pushNotificationDataMap } from '@/types'; -import getUserName from '@/scripts/get-user-name'; -import { I18n } from '@/scripts/i18n'; -import { getAccountFromId } from '@/scripts/get-account-from-id'; -import { char2fileName } from '@/scripts/twemoji-base'; -import * as url from '@/scripts/url'; - -const iconUrl = (name: string) => `/static-assets/notification-badges/${name}.png`; - -export async function createNotification(data: pushNotificationDataMap[K]) { - const n = await composeNotification(data); - - if (n) { - return self.registration.showNotification(...n); - } else { - console.error('Could not compose notification', data); - return createEmptyNotification(); - } -} - -async function composeNotification(data: pushNotificationDataMap[K]): Promise<[string, NotificationOptions] | null> { - if (!swLang.i18n) swLang.fetchLocale(); - const i18n = await swLang.i18n as I18n; - const { t } = i18n; - switch (data.type) { - /* - case 'driveFileCreated': // TODO (Server Side) - return [t('_notification.fileUploaded'), { - body: body.name, - icon: body.url, - data - }]; - */ - case 'notification': - switch (data.body.type) { - case 'follow': - // users/showの型定義をswos.apiへ当てはめるのが困難なのでapiFetch.requestを直接使用 - const account = await getAccountFromId(data.userId); - if (!account) return null; - const userDetail = await cli.request('users/show', { userId: data.body.userId }, account.token); - return [t('_notification.youWereFollowed'), { - body: getUserName(data.body.user), - icon: data.body.user.avatarUrl, - badge: iconUrl('user-plus'), - data, - actions: userDetail.isFollowing ? [] : [ - { - action: 'follow', - title: t('_notification._actions.followBack') - } - ], - }]; - - case 'mention': - return [t('_notification.youGotMention', { name: getUserName(data.body.user) }), { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge: iconUrl('at'), - data, - actions: [ - { - action: 'reply', - title: t('_notification._actions.reply') - } - ], - }]; - - case 'reply': - return [t('_notification.youGotReply', { name: getUserName(data.body.user) }), { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge: iconUrl('reply'), - data, - actions: [ - { - action: 'reply', - title: t('_notification._actions.reply') - } - ], - }]; - - case 'renote': - return [t('_notification.youRenoted', { name: getUserName(data.body.user) }), { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge: iconUrl('retweet'), - data, - actions: [ - { - action: 'showUser', - title: getUserName(data.body.user) - } - ], - }]; - - case 'quote': - return [t('_notification.youGotQuote', { name: getUserName(data.body.user) }), { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge: iconUrl('quote-right'), - data, - actions: [ - { - action: 'reply', - title: t('_notification._actions.reply') - }, - ...((data.body.note.visibility === 'public' || data.body.note.visibility === 'home') ? [ - { - action: 'renote', - title: t('_notification._actions.renote') - } - ] : []) - ], - }]; - - case 'reaction': - let reaction = data.body.reaction; - let badge: string | undefined; - - if (reaction.startsWith(':')) { - // カスタム絵文字の場合 - const customEmoji = data.body.note.emojis.find(x => x.name === reaction.substr(1, reaction.length - 2)); - if (customEmoji) { - if (reaction.includes('@')) { - reaction = `:${reaction.substr(1, reaction.indexOf('@') - 1)}:`; - } - - const u = new URL(customEmoji.url); - if (u.href.startsWith(`${origin}/proxy/`)) { - // もう既にproxyっぽそうだったらsearchParams付けるだけ - u.searchParams.set('badge', '1'); - badge = u.href; - } else { - const dummy = `${u.host}${u.pathname}`; // 拡張子がないとキャッシュしてくれないCDNがあるので - badge = `${origin}/proxy/${dummy}?${url.query({ - url: u.href, - badge: '1' - })}`; - } - } - } else { - // Unicode絵文字の場合 - badge = `/twemoji-badge/${char2fileName(reaction)}.png`; - } - - - if (badge ? await fetch(badge).then(res => res.status !== 200).catch(() => true) : true) { - badge = iconUrl('plus'); - } - - return [`${reaction} ${getUserName(data.body.user)}`, { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge, - data, - actions: [ - { - action: 'showUser', - title: getUserName(data.body.user) - } - ], - }]; - - case 'pollVote': - return [t('_notification.youGotPoll', { name: getUserName(data.body.user) }), { - body: data.body.note.text || '', - icon: data.body.user.avatarUrl, - badge: iconUrl('poll-h'), - data, - }]; - - case 'pollEnded': - return [t('_notification.pollEnded'), { - body: data.body.note.text || '', - badge: iconUrl('clipboard-check-solid'), - data, - }]; - - case 'receiveFollowRequest': - return [t('_notification.youReceivedFollowRequest'), { - body: getUserName(data.body.user), - icon: data.body.user.avatarUrl, - badge: iconUrl('clock'), - data, - actions: [ - { - action: 'accept', - title: t('accept') - }, - { - action: 'reject', - title: t('reject') - } - ], - }]; - - case 'followRequestAccepted': - return [t('_notification.yourFollowRequestAccepted'), { - body: getUserName(data.body.user), - icon: data.body.user.avatarUrl, - badge: iconUrl('check'), - data, - }]; - - case 'groupInvited': - return [t('_notification.youWereInvitedToGroup', { userName: getUserName(data.body.user) }), { - body: data.body.invitation.group.name, - badge: iconUrl('id-card-alt'), - data, - actions: [ - { - action: 'accept', - title: t('accept') - }, - { - action: 'reject', - title: t('reject') - } - ], - }]; - - case 'app': - return [data.body.header || data.body.body, { - body: data.body.header && data.body.body, - icon: data.body.icon, - data - }]; - - default: - return null; - } - case 'unreadMessagingMessage': - if (data.body.groupId === null) { - return [t('_notification.youGotMessagingMessageFromUser', { name: getUserName(data.body.user) }), { - icon: data.body.user.avatarUrl, - badge: iconUrl('comments'), - tag: `messaging:user:${data.body.userId}`, - data, - renotify: true, - }]; - } - return [t('_notification.youGotMessagingMessageFromGroup', { name: data.body.group.name }), { - icon: data.body.user.avatarUrl, - badge: iconUrl('comments'), - tag: `messaging:group:${data.body.groupId}`, - data, - renotify: true, - }]; - default: - return null; - } -} - -export async function createEmptyNotification() { - return new Promise(async res => { - if (!swLang.i18n) swLang.fetchLocale(); - const i18n = await swLang.i18n as I18n; - const { t } = i18n; - - await self.registration.showNotification( - t('_notification.emptyPushNotificationMessage'), - { - silent: true, - badge: iconUrl('null'), - tag: 'read_notification', - } - ); - - res(); - - setTimeout(async () => { - for (const n of - [ - ...(await self.registration.getNotifications({ tag: 'user_visible_auto_notification' })), - ...(await self.registration.getNotifications({ tag: 'read_notification' })) - ] - ) { - n.close(); - } - }, 1000); - }); -} diff --git a/packages/sw/src/scripts/get-account-from-id.ts b/packages/sw/src/scripts/get-account-from-id.ts deleted file mode 100644 index be4cfaeba..000000000 --- a/packages/sw/src/scripts/get-account-from-id.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { get } from 'idb-keyval'; - -export async function getAccountFromId(id: string) { - const accounts = await get('accounts') as { token: string; id: string; }[]; - if (!accounts) console.log('Accounts are not recorded'); - return accounts.find(e => e.id === id); -} diff --git a/packages/sw/src/scripts/get-user-name.ts b/packages/sw/src/scripts/get-user-name.ts deleted file mode 100644 index d499ea020..000000000 --- a/packages/sw/src/scripts/get-user-name.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function(user: { name?: string | null, username: string }): string { - return user.name || user.username; -} diff --git a/packages/sw/src/scripts/i18n.ts b/packages/sw/src/scripts/i18n.ts deleted file mode 100644 index 3fe88e551..000000000 --- a/packages/sw/src/scripts/i18n.ts +++ /dev/null @@ -1,29 +0,0 @@ -export class I18n> { - public ts: T; - - constructor(locale: T) { - this.ts = locale; - - //#region BIND - this.t = this.t.bind(this); - //#endregion - } - - // string にしているのは、ドット区切りでのパス指定を許可するため - // なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも - public t(key: string, args?: Record): string { - try { - let str = key.split('.').reduce((o, i) => o[i], this.ts) as unknown as string; - - if (args) { - for (const [k, v] of Object.entries(args)) { - str = str.replace(`{${k}}`, v); - } - } - return str; - } catch (err) { - console.warn(`missing localization '${key}'`); - return key; - } - } -} diff --git a/packages/sw/src/scripts/lang.ts b/packages/sw/src/scripts/lang.ts deleted file mode 100644 index 2d05404ef..000000000 --- a/packages/sw/src/scripts/lang.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Language manager for SW - */ -declare var self: ServiceWorkerGlobalScope; - -import { get, set } from 'idb-keyval'; -import { I18n } from '@/scripts/i18n'; - -class SwLang { - public cacheName = `mk-cache-${_VERSION_}`; - - public lang: Promise = get('lang').then(async prelang => { - if (!prelang) return 'en-US'; - return prelang; - }); - - public setLang(newLang: string) { - this.lang = Promise.resolve(newLang); - set('lang', newLang); - return this.fetchLocale(); - } - - public i18n: Promise> | null = null; - - public fetchLocale() { - return this.i18n = this._fetch(); - } - - private async _fetch() { - // Service Workerは何度も起動しそのたびにlocaleを読み込むので、CacheStorageを使う - const localeUrl = `/assets/locales/${await this.lang}.${_VERSION_}.json`; - let localeRes = await caches.match(localeUrl); - - // _DEV_がtrueの場合は常に最新化 - if (!localeRes || _DEV_) { - localeRes = await fetch(localeUrl); - const clone = localeRes?.clone(); - if (!clone?.clone().ok) Error('locale fetching error'); - - caches.open(this.cacheName).then(cache => cache.put(localeUrl, clone)); - } - - return new I18n(await localeRes.json()); - } -} - -export const swLang = new SwLang(); diff --git a/packages/sw/src/scripts/login-id.ts b/packages/sw/src/scripts/login-id.ts deleted file mode 100644 index 0f9c6be4a..000000000 --- a/packages/sw/src/scripts/login-id.ts +++ /dev/null @@ -1,11 +0,0 @@ -export function getUrlWithLoginId(url: string, loginId: string) { - const u = new URL(url, origin); - u.searchParams.append('loginId', loginId); - return u.toString(); -} - -export function getUrlWithoutLoginId(url: string) { - const u = new URL(url); - u.searchParams.delete('loginId'); - return u.toString(); -} diff --git a/packages/sw/src/scripts/notification-read.ts b/packages/sw/src/scripts/notification-read.ts deleted file mode 100644 index 5c1de8908..000000000 --- a/packages/sw/src/scripts/notification-read.ts +++ /dev/null @@ -1,60 +0,0 @@ -declare var self: ServiceWorkerGlobalScope; - -import { get } from 'idb-keyval'; -import { pushNotificationDataMap } from '@/types'; -import { api } from '@/scripts/operations'; - -type Accounts = { - [x: string]: { - queue: string[], - timeout: number | null - } -}; - -class SwNotificationReadManager { - private accounts: Accounts = {}; - - public async construct() { - const accounts = await get('accounts'); - if (!accounts) Error('Accounts are not recorded'); - - this.accounts = accounts.reduce((acc, e) => { - acc[e.id] = { - queue: [], - timeout: null - }; - return acc; - }, {} as Accounts); - - return this; - } - - // プッシュ通知の既読をサーバーに送信 - public async read(data: pushNotificationDataMap[K]) { - if (data.type !== 'notification' || !(data.userId in this.accounts)) return; - - const account = this.accounts[data.userId]; - - account.queue.push(data.body.id as string); - - if (account.queue.length >= 20) { - if (account.timeout) clearTimeout(account.timeout); - const notificationIds = account.queue; - account.queue = []; - await api('notifications/read', data.userId, { notificationIds }); - return; - } - - // 最後の呼び出しから200ms待ってまとめて処理する - if (account.timeout) clearTimeout(account.timeout); - account.timeout = setTimeout(() => { - account.timeout = null; - - const notificationIds = account.queue; - account.queue = []; - api('notifications/read', data.userId, { notificationIds }); - }, 200); - } -} - -export const swNotificationRead = (new SwNotificationReadManager()).construct(); diff --git a/packages/sw/src/scripts/operations.ts b/packages/sw/src/scripts/operations.ts deleted file mode 100644 index 02cf0d96c..000000000 --- a/packages/sw/src/scripts/operations.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Operations - * 各種操作 - */ -declare var self: ServiceWorkerGlobalScope; - -import * as Misskey from 'misskey-js'; -import { SwMessage, swMessageOrderType } from '@/types'; -import { acct as getAcct } from '@/filters/user'; -import { getAccountFromId } from '@/scripts/get-account-from-id'; -import { getUrlWithLoginId } from '@/scripts/login-id'; - -export const cli = new Misskey.api.APIClient({ origin, fetch: (...args) => fetch(...args) }); - -export async function api(endpoint: E, userId: string, options?: Misskey.Endpoints[E]['req']) { - const account = await getAccountFromId(userId); - if (!account) return; - - return cli.request(endpoint, options, account.token); -} - -// rendered acctからユーザーを開く -export function openUser(acct: string, loginId: string) { - return openClient('push', `/@${acct}`, loginId, { acct }); -} - -// noteIdからノートを開く -export function openNote(noteId: string, loginId: string) { - return openClient('push', `/notes/${noteId}`, loginId, { noteId }); -} - -export async function openChat(body: any, loginId: string) { - if (body.groupId === null) { - return openClient('push', `/my/messaging/${getAcct(body.user)}`, loginId, { body }); - } else { - return openClient('push', `/my/messaging/group/${body.groupId}`, loginId, { body }); - } -} - -// post-formのオプションから投稿フォームを開く -export async function openPost(options: any, loginId: string) { - // クエリを作成しておく - let url = `/share?`; - if (options.initialText) url += `text=${options.initialText}&`; - if (options.reply) url += `replyId=${options.reply.id}&`; - if (options.renote) url += `renoteId=${options.renote.id}&`; - - return openClient('post', url, loginId, { options }); -} - -export async function openClient(order: swMessageOrderType, url: string, loginId: string, query: any = {}) { - const client = await findClient(); - - if (client) { - client.postMessage({ type: 'order', ...query, order, loginId, url } as SwMessage); - return client; - } - - return self.clients.openWindow(getUrlWithLoginId(url, loginId)); -} - -export async function findClient() { - const clients = await self.clients.matchAll({ - type: 'window' - }); - for (const c of clients) { - if (c.url.indexOf('?zen') < 0) return c; - } - return null; -} diff --git a/packages/sw/src/scripts/twemoji-base.ts b/packages/sw/src/scripts/twemoji-base.ts deleted file mode 100644 index 638aae328..000000000 --- a/packages/sw/src/scripts/twemoji-base.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const twemojiSvgBase = '/twemoji'; - -export function char2fileName(char: string): string { - let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16)); - if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f'); - codes = codes.filter(x => x && x.length); - return codes.join('-'); -} - -export function char2filePath(char: string): string { - return `${twemojiSvgBase}/${char2fileName(char)}.svg`; -} diff --git a/packages/sw/src/scripts/url.ts b/packages/sw/src/scripts/url.ts deleted file mode 100644 index c7f2b7c1e..000000000 --- a/packages/sw/src/scripts/url.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function query(obj: {}): string { - const params = Object.entries(obj) - .filter(([, v]) => Array.isArray(v) ? v.length : v !== undefined) - .reduce((a, [k, v]) => (a[k] = v, a), {} as Record); - - return Object.entries(params) - .map((e) => `${e[0]}=${encodeURIComponent(e[1])}`) - .join('&'); -} - -export function appendQuery(url: string, query: string): string { - return `${url}${/\?/.test(url) ? url.endsWith('?') ? '' : '&' : '?'}${query}`; -} diff --git a/packages/sw/src/sw.ts b/packages/sw/src/sw.ts deleted file mode 100644 index 92391f1fb..000000000 --- a/packages/sw/src/sw.ts +++ /dev/null @@ -1,214 +0,0 @@ -declare var self: ServiceWorkerGlobalScope; - -import { createEmptyNotification, createNotification } from '@/scripts/create-notification'; -import { swLang } from '@/scripts/lang'; -import { swNotificationRead } from '@/scripts/notification-read'; -import { pushNotificationDataMap } from '@/types'; -import * as swos from '@/scripts/operations'; -import { acct as getAcct } from '@/filters/user'; - -self.addEventListener('install', ev => { - ev.waitUntil(self.skipWaiting()); -}); - -self.addEventListener('activate', ev => { - ev.waitUntil( - caches.keys() - .then(cacheNames => Promise.all( - cacheNames - .filter((v) => v !== swLang.cacheName) - .map(name => caches.delete(name)) - )) - .then(() => self.clients.claim()) - ); -}); - -self.addEventListener('fetch', ev => { - let isHTMLRequest = false; - if (ev.request.headers.get('sec-fetch-dest') === 'document') { - isHTMLRequest = true; - } else if (ev.request.headers.get('accept')?.includes('/html')) { - isHTMLRequest = true; - } else if (ev.request.url.endsWith('/')) { - isHTMLRequest = true; - } - - if (!isHTMLRequest) return; - ev.respondWith( - fetch(ev.request) - .catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 })) - ); -}); - -self.addEventListener('push', ev => { - // クライアント取得 - ev.waitUntil(self.clients.matchAll({ - includeUncontrolled: true, - type: 'window' - }).then(async (clients: readonly WindowClient[]) => { - const data: pushNotificationDataMap[K] = ev.data?.json(); - - switch (data.type) { - // case 'driveFileCreated': - case 'notification': - case 'unreadMessagingMessage': - // 1日以上経過している場合は無視 - if ((new Date()).getTime() - data.dateTime > 1000 * 60 * 60 * 24) break; - - // クライアントがあったらストリームに接続しているということなので通知しない - if (clients.length !== 0) break; - - return createNotification(data); - case 'readAllNotifications': - for (const n of await self.registration.getNotifications()) { - if (n?.data?.type === 'notification') n.close(); - } - break; - case 'readAllMessagingMessages': - for (const n of await self.registration.getNotifications()) { - if (n?.data?.type === 'unreadMessagingMessage') n.close(); - } - break; - case 'readNotifications': - for (const n of await self.registration.getNotifications()) { - if (data.body?.notificationIds?.includes(n.data.body.id)) { - n.close(); - } - } - break; - case 'readAllMessagingMessagesOfARoom': - for (const n of await self.registration.getNotifications()) { - if (n.data.type === 'unreadMessagingMessage' - && ('userId' in data.body - ? data.body.userId === n.data.body.userId - : data.body.groupId === n.data.body.groupId) - ) { - n.close(); - } - } - break; - } - - return createEmptyNotification(); - })); -}); - -self.addEventListener('notificationclick', (ev: ServiceWorkerGlobalScopeEventMap['notificationclick']) => { - ev.waitUntil((async () => { - if (_DEV_) { - console.log('notificationclick', ev.action, ev.notification.data); - } - - const { action, notification } = ev; - const data: pushNotificationDataMap[K] = notification.data; - const { userId: id } = data; - let client: WindowClient | null = null; - - switch (data.type) { - case 'notification': - switch (action) { - case 'follow': - if ('userId' in data.body) await swos.api('following/create', id, { userId: data.body.userId }); - break; - case 'showUser': - if ('user' in data.body) client = await swos.openUser(getAcct(data.body.user), id); - break; - case 'reply': - if ('note' in data.body) client = await swos.openPost({ reply: data.body.note }, id); - break; - case 'renote': - if ('note' in data.body) await swos.api('notes/create', id, { renoteId: data.body.note.id }); - break; - case 'accept': - switch (data.body.type) { - case 'receiveFollowRequest': - await swos.api('following/requests/accept', id, { userId: data.body.userId }); - break; - case 'groupInvited': - await swos.api('users/groups/invitations/accept', id, { invitationId: data.body.invitation.id }); - break; - } - break; - case 'reject': - switch (data.body.type) { - case 'receiveFollowRequest': - await swos.api('following/requests/reject', id, { userId: data.body.userId }); - break; - case 'groupInvited': - await swos.api('users/groups/invitations/reject', id, { invitationId: data.body.invitation.id }); - break; - } - break; - case 'showFollowRequests': - client = await swos.openClient('push', '/my/follow-requests', id); - break; - default: - switch (data.body.type) { - case 'receiveFollowRequest': - client = await swos.openClient('push', '/my/follow-requests', id); - break; - case 'groupInvited': - client = await swos.openClient('push', '/my/groups', id); - break; - case 'reaction': - client = await swos.openNote(data.body.note.id, id); - break; - default: - if ('note' in data.body) { - client = await swos.openNote(data.body.note.id, id); - } else if ('user' in data.body) { - client = await swos.openUser(getAcct(data.body.user), id); - } - break; - } - } - break; - case 'unreadMessagingMessage': - client = await swos.openChat(data.body, id); - break; - } - - if (client) { - client.focus(); - } - if (data.type === 'notification') { - swNotificationRead.then(that => that.read(data)); - } - - notification.close(); - - })()); -}); - -self.addEventListener('notificationclose', (ev: ServiceWorkerGlobalScopeEventMap['notificationclose']) => { - const data: pushNotificationDataMap[K] = ev.notification.data; - - if (data.type === 'notification') { - swNotificationRead.then(that => that.read(data)); - } -}); - -self.addEventListener('message', (ev: ServiceWorkerGlobalScopeEventMap['message']) => { - ev.waitUntil((async () => { - switch (ev.data) { - case 'clear': - // Cache Storage全削除 - await caches.keys() - .then(cacheNames => Promise.all( - cacheNames.map(name => caches.delete(name)) - )); - return; // TODO - } - - if (typeof ev.data === 'object') { - // E.g. '[object Array]' → 'array' - const otype = Object.prototype.toString.call(ev.data).slice(8, -1).toLowerCase(); - - if (otype === 'object') { - if (ev.data.msg === 'initialize') { - swLang.setLang(ev.data.lang); - } - } - } - })()); -}); diff --git a/packages/sw/src/types.ts b/packages/sw/src/types.ts deleted file mode 100644 index 0404e21e5..000000000 --- a/packages/sw/src/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -import * as Misskey from 'misskey-js'; - -export type swMessageOrderType = 'post' | 'push'; - -export type SwMessage = { - type: 'order'; - order: swMessageOrderType; - loginId: string; - url: string; - [x: string]: any; -}; - -// Defined also @/services/push-notification.ts#L7-L14 -type pushNotificationDataSourceMap = { - notification: Misskey.entities.Notification; - unreadMessagingMessage: Misskey.entities.MessagingMessage; - readNotifications: { notificationIds: string[] }; - readAllNotifications: undefined; - readAllMessagingMessages: undefined; - readAllMessagingMessagesOfARoom: { userId: string } | { groupId: string }; -}; - -export type pushNotificationData = { - type: K; - body: pushNotificationDataSourceMap[K]; - userId: string; - dateTime: number; -}; - -export type pushNotificationDataMap = { - [K in keyof pushNotificationDataSourceMap]: pushNotificationData; -}; diff --git a/packages/sw/tsconfig.json b/packages/sw/tsconfig.json deleted file mode 100644 index c3a845f12..000000000 --- a/packages/sw/tsconfig.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "noEmitOnError": false, - "noImplicitAny": false, - "noImplicitReturns": true, - "noUnusedParameters": false, - "noUnusedLocals": true, - "noFallthroughCasesInSwitch": true, - "declaration": false, - "sourceMap": false, - "target": "es2017", - "module": "esnext", - "moduleResolution": "node", - "removeComments": false, - "noLib": false, - "strict": true, - "strictNullChecks": true, - "experimentalDecorators": true, - "resolveJsonModule": true, - "isolatedModules": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"], - }, - "typeRoots": [ - "node_modules/@types", - "@types", - ], - "lib": [ - "esnext", - "webworker" - ] - }, - "compileOnSave": false, - "include": [ - "./**/*.ts" - ] -} diff --git a/packages/sw/yarn.lock b/packages/sw/yarn.lock deleted file mode 100644 index e6d683bc4..000000000 --- a/packages/sw/yarn.lock +++ /dev/null @@ -1,710 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@eslint/eslintrc@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" - integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.2.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" - integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -autobind-decorator@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.4.0.tgz#ea9e1c98708cf3b5b356f7cf9f10f265ff18239c" - integrity sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.1.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -esbuild-android-arm64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.17.tgz#7216810cb8d5b8cd03ce70bdc241dcdd90c34755" - integrity sha512-y7EJm8ADC9qKbo/dJ2zBXwNdIILJ76tTv7JDGvOkbLT8HJXIsgbpa0NJk7iFhyvP4GpsYvXTbvEQNn0DhyBhLA== - -esbuild-darwin-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.17.tgz#1419e020f41814f8a74ce92b2dcab29a6d47e510" - integrity sha512-V2JAP8yyVbW6qR4SVXsEDqRicYM0x5niUuB05IFiE5itPI45k8j2dA2l+DtirR2SGXr+LEqgX347+2VA6eyTiA== - -esbuild-darwin-arm64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.17.tgz#95acf1022066d48346a63ffc5e4d36a07b83c9b0" - integrity sha512-ENkSKpjF4SImyA2TdHhKiZqtYc1DkMykICe1KSBw0YNF1sentjFI6wu+CRiYMpC7REf/3TQXoems2XPqIqDMlQ== - -esbuild-freebsd-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.17.tgz#a3455199862110854937b05a0eecbed3e1aeec41" - integrity sha512-2i0nTNJM8ftNTvtR00vdqkru8XpHwAbkR2MBLoK2IDSzjsLStwCj+mxf6v83eVM9Abe3QA8xP+irqOdBlwDQ2g== - -esbuild-freebsd-arm64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.17.tgz#8a70f2a36f5b0da7d2efdd6fd02aa78611007fd0" - integrity sha512-QOmRi1n+uly2G7BbMbHb86YiFA5aM7B2T96A6OF1VG57LNwXwy8LPVM0PVjl7f9cV3pE3fy3VtXPJHJo8XggTA== - -esbuild-linux-32@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.17.tgz#b7123f6e4780687e017454604d909fbe558862e9" - integrity sha512-qG5NDk7FHHUVw01rjHESON0HvigF2X80b645TUlgTKsWRlrbzzHhMCmQguA01O5PiCimKnyoxti8aJIFNHpQnQ== - -esbuild-linux-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.17.tgz#47a6b510c2f7faef595a4d6257a629e65385fdc3" - integrity sha512-De8OcmNvfNyFfQRLWbfuZqau6NpYBJxNTLP7Ls/PqQcw0HAwfaYThutY8ozHpPbKFPa7wgqabXlIC4NVSWT0/A== - -esbuild-linux-arm64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.17.tgz#dfd9022b7215ca660d464fcb20597b88887c7e64" - integrity sha512-WDEOD/YRA4J1lxhETKZff3gRxGYqqZEiVwIOqNfvCh2YcwWU2y6UmNGZsxcuKk18wot4dAXCXQyNZgBkVUTCLw== - -esbuild-linux-arm@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.17.tgz#e6f6bb9fe52def5260d7d49b790fbec0e7c6d9cb" - integrity sha512-ZwsgFUk3gR2pEMJdh5z4Ds18fvGETgElPqmNdx1NtZTCOVlFMAwFB5u/tOR2FrXbMFv+LkGnNxPDh48PYPDz9A== - -esbuild-linux-mips64le@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.17.tgz#bceaad33ff18a822b6da0396c6497a231397b6c3" - integrity sha512-Lf4X9NB7r6imzp/11TaGs4kWL0DUn1JxI9gAAKotnKh6T8Y/0sLvZSvQS8WvSZcr0V8RRCrRZwiQqjOALUU/9g== - -esbuild-linux-ppc64le@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.17.tgz#9562f094d1e5e6c3b61b776b15a9bbd657042654" - integrity sha512-aExhxbrK7/Mh9FArdiC9MbvrQz2bGCDI8cBALKJbmhKg0h7LNt6y1E1S9GGBZ/ZXkHDvV9FFVrXXZKFVU5Qpiw== - -esbuild-linux-s390x@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.17.tgz#2963cfe62c227bbf1da64e36d4ca0b23db8008fe" - integrity sha512-b0T20rNcS7POi5YLw5dFlsiC+riobR5IfppQGn5NWer6QiIkdL1vOx9eC9CUD3z1itpkLboRAZYieZfKfhCA2Q== - -esbuild-netbsd-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.17.tgz#1d156023f9ae6be79b8627ab0cda2d7feb7f3a48" - integrity sha512-pFgTaAa2JF18nqNfCND9wOu1jbZ/mbDSaMxUp5fTkLlofyHhXeb5aChgXUkeipty2Pgq0OwOnxjHmiAxMI7N4g== - -esbuild-openbsd-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.17.tgz#3fc44102c9b65375385112f4ce5899ae5e38f349" - integrity sha512-K5+plb6gsAfBcFqB0EG4KvLbgBKslVAfEyJggicwt/QoDwQGJAzao4M6zOA4PG7LlXOwWSqv7VmSFbH+b6DyKw== - -esbuild-sunos-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.17.tgz#5bd24e7a7e863ea89d7e4eafd5364a155c9ea507" - integrity sha512-o1FINkbHRi9JB1YteOSXZdkDOmVUbmnCxRmTLkHvk8pfCFNpv/5/7ktt95teYKbEiJna2dEt3M4ckJ/+UVnW+w== - -esbuild-windows-32@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.17.tgz#8bda31c550fb6b425707114141d2c6ba034dab9b" - integrity sha512-Qutilz0I7OADWBtWrC/FD+2O/TNAkhwbZ+wIns7kF87lxIMtmqpBt3KnMk1e4F47aTrZRr0oH55Zhztd7m2PAA== - -esbuild-windows-64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.17.tgz#50b42c06908d3ce9fab8f0f9673199de5d0f9cbc" - integrity sha512-b21/oRV+PHrav0HkRpKjbM2yNRVe34gAfbdMppbZFea416wa8SrjcmVfSd7n4jgqoTQG0xe+MGgOpwXtjiB3DQ== - -esbuild-windows-arm64@0.14.17: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.17.tgz#62d3921a810b64a03fcace76dad4db51d2128b45" - integrity sha512-4HN9E1idllewYvptcrrdfTA6DIWgg11kK0Zrv6yjxstJZLJeKxfilGBEaksLGs4Pst2rAYMx3H2vbYq7AWLQNA== - -esbuild@^0.14.13: - version "0.14.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.17.tgz#6a634e56447aa0e90b34c42091d472d802d399e5" - integrity sha512-JLgyC6Uv31mv9T9Mm2xF1LntUMCNBSzvg2n32d8cTKZMwFr1wmMFY2FkVum98TSoEsDff0cR+Aj49H2sbBcjKQ== - optionalDependencies: - esbuild-android-arm64 "0.14.17" - esbuild-darwin-64 "0.14.17" - esbuild-darwin-arm64 "0.14.17" - esbuild-freebsd-64 "0.14.17" - esbuild-freebsd-arm64 "0.14.17" - esbuild-linux-32 "0.14.17" - esbuild-linux-64 "0.14.17" - esbuild-linux-arm "0.14.17" - esbuild-linux-arm64 "0.14.17" - esbuild-linux-mips64le "0.14.17" - esbuild-linux-ppc64le "0.14.17" - esbuild-linux-s390x "0.14.17" - esbuild-netbsd-64 "0.14.17" - esbuild-openbsd-64 "0.14.17" - esbuild-sunos-64 "0.14.17" - esbuild-windows-32 "0.14.17" - esbuild-windows-64 "0.14.17" - esbuild-windows-arm64 "0.14.17" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" - integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== - -eslint@^8.2.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.8.0.tgz#9762b49abad0cb4952539ffdb0a046392e571a2d" - integrity sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ== - dependencies: - "@eslint/eslintrc" "^1.0.5" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.2.0" - espree "^9.3.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.2.0, espree@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" - integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== - dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.6.0, globals@^13.9.0: - version "13.12.1" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" - integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== - dependencies: - type-fest "^0.20.2" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -idb-keyval@^6.0.3: - version "6.1.0" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.1.0.tgz#e659cff41188e6097d7fadd69926f6adbbe70041" - integrity sha512-u/qHZ75rlD3gH+Zah8dAJVJcGW/RfCnfNrFkElC5RpRCnpsCXXhqjVk+6MoVKJ3WhmNbRYdI6IIVP88e+5sxGw== - dependencies: - safari-14-idb-fix "^3.0.0" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-glob@^4.0.0, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -misskey-js@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/misskey-js/-/misskey-js-0.0.14.tgz#1a616bdfbe81c6ee6900219eaf425bb5c714dd4d" - integrity sha512-bvLx6U3OwQwqHfp/WKwIVwdvNYAAPk0+YblXyxmSG3dwlzCgBRRLcB8o6bNruUDyJgh3t73pLDcOz3myxcUmww== - dependencies: - autobind-decorator "^2.4.0" - eventemitter3 "^4.0.7" - reconnecting-websocket "^4.4.0" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -reconnecting-websocket@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" - integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -safari-14-idb-fix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz#450fc049b996ec7f3fd9ca2f89d32e0761583440" - integrity sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/scripts/build.js b/scripts/build.js deleted file mode 100644 index 608648b95..000000000 --- a/scripts/build.js +++ /dev/null @@ -1,35 +0,0 @@ -const execa = require('execa'); - -(async () => { - console.log('building packages/backend ...'); - - await execa('npm', ['run', 'build'], { - cwd: __dirname + '/../packages/backend', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('building packages/client ...'); - - await execa('npm', ['run', 'build'], { - cwd: __dirname + '/../packages/client', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('building packages/sw ...'); - - await execa('npm', ['run', 'build'], { - cwd: __dirname + '/../packages/sw', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('build finishing ...'); - - await execa('npm', ['run', 'gulp'], { - cwd: __dirname + '/../', - stdout: process.stdout, - stderr: process.stderr, - }); -})(); diff --git a/scripts/clean-all.js b/scripts/clean-all.js deleted file mode 100644 index 456b88032..000000000 --- a/scripts/clean-all.js +++ /dev/null @@ -1,15 +0,0 @@ -const fs = require('fs'); - -(async () => { - fs.rmSync(__dirname + '/../packages/backend/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../packages/backend/node_modules', { recursive: true, force: true }); - - fs.rmSync(__dirname + '/../packages/client/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../packages/client/node_modules', { recursive: true, force: true }); - - fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../packages/sw/node_modules', { recursive: true, force: true }); - - fs.rmSync(__dirname + '/../built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../node_modules', { recursive: true, force: true }); -})(); diff --git a/scripts/clean.js b/scripts/clean.js deleted file mode 100644 index 70b9d882b..000000000 --- a/scripts/clean.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require('fs'); - -(async () => { - fs.rmSync(__dirname + '/../packages/backend/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../packages/client/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true }); - fs.rmSync(__dirname + '/../built', { recursive: true, force: true }); -})(); diff --git a/scripts/dev.js b/scripts/dev.js deleted file mode 100644 index c5dbb7b35..000000000 --- a/scripts/dev.js +++ /dev/null @@ -1,48 +0,0 @@ -const execa = require('execa'); - -(async () => { - await execa('npm', ['run', 'clean'], { - cwd: __dirname + '/../', - stdout: process.stdout, - stderr: process.stderr, - }); - - execa('npx', ['gulp', 'watch'], { - cwd: __dirname + '/../', - stdout: process.stdout, - stderr: process.stderr, - }); - - execa('npm', ['run', 'watch'], { - cwd: __dirname + '/../packages/backend', - stdout: process.stdout, - stderr: process.stderr, - }); - - execa('npm', ['run', 'watch'], { - cwd: __dirname + '/../packages/client', - stdout: process.stdout, - stderr: process.stderr, - }); - - execa('npm', ['run', 'watch'], { - cwd: __dirname + '/../packages/sw', - stdout: process.stdout, - stderr: process.stderr, - }); - - const start = async () => { - try { - await execa('npm', ['run', 'start'], { - cwd: __dirname + '/../', - stdout: process.stdout, - stderr: process.stderr, - }); - } catch (e) { - await new Promise(resolve => setTimeout(resolve, 3000)); - start(); - } - }; - - start(); -})(); diff --git a/scripts/install-packages.js b/scripts/install-packages.js deleted file mode 100644 index d1dea3ebe..000000000 --- a/scripts/install-packages.js +++ /dev/null @@ -1,27 +0,0 @@ -const execa = require('execa'); - -(async () => { - console.log('installing dependencies of packages/backend ...'); - - await execa('yarn', ['--force', 'install'], { - cwd: __dirname + '/../packages/backend', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('installing dependencies of packages/client ...'); - - await execa('yarn', ['install'], { - cwd: __dirname + '/../packages/client', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('installing dependencies of packages/sw ...'); - - await execa('yarn', ['install'], { - cwd: __dirname + '/../packages/sw', - stdout: process.stdout, - stderr: process.stderr, - }); -})(); diff --git a/scripts/lint.js b/scripts/lint.js deleted file mode 100644 index 72a63f4ba..000000000 --- a/scripts/lint.js +++ /dev/null @@ -1,24 +0,0 @@ -const execa = require('execa'); - -(async () => { - console.log('linting packages/backend ...'); - await execa('npm', ['run', 'lint'], { - cwd: __dirname + '/../packages/backend', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('linting packages/client ...'); - await execa('npm', ['run', 'lint'], { - cwd: __dirname + '/../packages/client', - stdout: process.stdout, - stderr: process.stderr, - }); - - console.log('linting packages/sw ...'); - await execa('npm', ['run', 'lint'], { - cwd: __dirname + '/../packages/sw', - stdout: process.stdout, - stderr: process.stderr, - }); -})(); diff --git a/packages/backend/src/@types/hcaptcha.d.ts b/src/@types/hcaptcha.d.ts similarity index 100% rename from packages/backend/src/@types/hcaptcha.d.ts rename to src/@types/hcaptcha.d.ts diff --git a/packages/backend/src/@types/http-signature.d.ts b/src/@types/http-signature.d.ts similarity index 95% rename from packages/backend/src/@types/http-signature.d.ts rename to src/@types/http-signature.d.ts index d1f9cd955..8d484312d 100644 --- a/packages/backend/src/@types/http-signature.d.ts +++ b/src/@types/http-signature.d.ts @@ -1,5 +1,5 @@ -declare module '@peertube/http-signature' { - import { IncomingMessage, ClientRequest } from 'node:http'; +declare module 'http-signature' { + import { IncomingMessage, ClientRequest } from 'http'; interface ISignature { keyId: string; diff --git a/src/@types/is-root.d.ts b/src/@types/is-root.d.ts new file mode 100644 index 000000000..3905a16c8 --- /dev/null +++ b/src/@types/is-root.d.ts @@ -0,0 +1,7 @@ +declare module 'is-root' { + function isRoot(): boolean; + + namespace isRoot {} // Hack + + export = isRoot; +} diff --git a/src/@types/jsrsasign.d.ts b/src/@types/jsrsasign.d.ts new file mode 100644 index 000000000..bc9d746f7 --- /dev/null +++ b/src/@types/jsrsasign.d.ts @@ -0,0 +1,800 @@ +// Attention: Partial Type Definition + +declare module 'jsrsasign' { + //// HELPER TYPES + + /** + * Attention: The value might be changed by the function. + */ + type Mutable = T; + + /** + * Deprecated: The function might be deleted in future release. + */ + type Deprecated = T; + + //// COMMON TYPES + + /** + * byte number + */ + type ByteNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255; + + /** + * hexadecimal string /[0-9A-F]/ + */ + type HexString = string; + + /** + * binary string /[01]/ + */ + type BinString = string; + + /** + * base64 string /[A-Za-z0-9+/]=+/ + */ + type Base64String = string; + + /** + * base64 URL encoded string /[A-Za-z0-9_-]/ + */ + type Base64URLString = string; + + /** + * time value (ex. "151231235959Z") + */ + type TimeValue = string; + + /** + * OID string (ex. '1.2.3.4.567') + */ + type OID = string; + + /** + * OID name + */ + type OIDName = string; + + /** + * PEM formatted string + */ + type PEM = string; + + //// ASN1 TYPES + + class ASN1Object { + public isModified: boolean; + + public hTLV: ASN1TLV; + + public hT: ASN1T; + + public hL: ASN1L; + + public hV: ASN1V; + + public getLengthHexFromValue(): HexString; + + public getEncodedHex(): ASN1TLV; + + public getValueHex(): ASN1V; + + public getFreshValueHex(): ASN1V; + } + + class DERAbstractStructured extends ASN1Object { + constructor(params?: Partial>); + + public setByASN1ObjectArray(asn1ObjectArray: ASN1Object[]): void; + + public appendASN1Object(asn1Object: ASN1Object): void; + } + + class DERSequence extends DERAbstractStructured { + constructor(params?: Partial>); + + public getFreshValueHex(): ASN1V; + } + + //// ASN1HEX TYPES + + /** + * ASN.1 DER encoded data (hexadecimal string) + */ + type ASN1S = HexString; + + /** + * index of something + */ + type Idx = ASN1S extends { [idx: string]: unknown } ? string : ASN1S extends { [idx: number]: unknown } ? number : never; + + /** + * byte length of something + */ + type ByteLength = T['length']; + + /** + * ASN.1 L(length) (hexadecimal string) + */ + type ASN1L = HexString; + + /** + * ASN.1 T(tag) (hexadecimal string) + */ + type ASN1T = HexString; + + /** + * ASN.1 V(value) (hexadecimal string) + */ + type ASN1V = HexString; + + /** + * ASN.1 TLV (hexadecimal string) + */ + type ASN1TLV = HexString; + + /** + * ASN.1 object string + */ + type ASN1ObjectString = string; + + /** + * nth + */ + type Nth = number; + + /** + * ASN.1 DER encoded OID value (hexadecimal string) + */ + type ASN1OIDV = HexString; + + class ASN1HEX { + public static getLblen(s: ASN1S, idx: Idx): ByteLength; + + public static getL(s: ASN1S, idx: Idx): ASN1L; + + public static getVblen(s: ASN1S, idx: Idx): ByteLength; + + public static getVidx(s: ASN1S, idx: Idx): Idx; + + public static getV(s: ASN1S, idx: Idx): ASN1V; + + public static getTLV(s: ASN1S, idx: Idx): ASN1TLV; + + public static getNextSiblingIdx(s: ASN1S, idx: Idx): Idx; + + public static getChildIdx(h: ASN1S, pos: Idx): Idx[]; + + public static getNthChildIdx(h: ASN1S, idx: Idx, nth: Nth): Idx; + + public static getIdxbyList(h: ASN1S, currentIndex: Idx, nthList: Mutable, checkingTag?: string): Idx>; + + public static getTLVbyList(h: ASN1S, currentIndex: Idx, nthList: Mutable, checkingTag?: string): ASN1TLV; + + // tslint:disable-next-line:bool-param-default + public static getVbyList(h: ASN1S, currentIndex: Idx, nthList: Mutable, checkingTag?: string, removeUnusedbits?: boolean): ASN1V; + + public static hextooidstr(hex: ASN1OIDV): OID; + + public static dump(hexOrObj: ASN1S | ASN1Object, flags?: Record, idx?: Idx, indent?: string): string; + + public static isASN1HEX(hex: string): hex is HexString; + + public static oidname(oidDotOrHex: OID | ASN1OIDV): OIDName; + } + + //// BIG INTEGER TYPES (PARTIAL) + + class BigInteger { + constructor(a: null); + + constructor(a: number, b: SecureRandom); + + constructor(a: number, b: number, c: SecureRandom); + + constructor(a: unknown); + + constructor(a: string, b: number); + + public am(i: number, x: number, w: number, j: number, c: number, n: number): number; + + public DB: number; + + public DM: number; + + public DV: number; + + public FV: number; + + public F1: number; + + public F2: number; + + protected copyTo(r: Mutable): void; + + protected fromInt(x: number): void; + + protected fromString(s: string, b: number): void; + + protected clamp(): void; + + public toString(b: number): string; + + public negate(): BigInteger; + + public abs(): BigInteger; + + public compareTo(a: BigInteger): number; + + public bitLength(): number; + + protected dlShiftTo(n: number, r: Mutable): void; + + protected drShiftTo(n: number, r: Mutable): void; + + protected lShiftTo(n: number, r: Mutable): void; + + protected rShiftTo(n: number, r: Mutable): void; + + protected subTo(a: BigInteger, r: Mutable): void; + + protected multiplyTo(a: BigInteger, r: Mutable): void; + + protected squareTo(r: Mutable): void; + + protected divRemTo(m: BigInteger, q: Mutable, r: Mutable): void; + + public mod(a: BigInteger): BigInteger; + + protected invDigit(): number; + + protected isEven(): boolean; + + protected exp(e: number, z: Classic | Montgomery): BigInteger; + + public modPowInt(e: number, m: BigInteger): BigInteger; + + public static ZERO: BigInteger; + + public static ONE: BigInteger; + } + + class Classic { + constructor(m: BigInteger); + + public convert(x: BigInteger): BigInteger; + + public revert(x: BigInteger): BigInteger; + + public reduce(x: Mutable): void; + + public mulTo(x: BigInteger, r: Mutable): void; + + public sqrTo(x: BigInteger, y: BigInteger, r: Mutable): void; + } + + class Montgomery { + constructor(m: BigInteger); + + public convert(x: BigInteger): BigInteger; + + public revert(x: BigInteger): BigInteger; + + public reduce(x: Mutable): void; + + public mulTo(x: BigInteger, r: Mutable): void; + + public sqrTo(x: BigInteger, y: BigInteger, r: Mutable): void; + } + + //// KEYUTIL TYPES + + type DecryptAES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type Decrypt3DES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type DecryptDES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type EncryptAES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type Encrypt3DES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type EncryptDES = (dataHex: HexString, keyHex: HexString, ivHex: HexString) => HexString; + + type AlgList = { + 'AES-256-CBC': { 'proc': DecryptAES; 'eproc': EncryptAES; keylen: 32; ivlen: 16; }; + 'AES-192-CBC': { 'proc': DecryptAES; 'eproc': EncryptAES; keylen: 24; ivlen: 16; }; + 'AES-128-CBC': { 'proc': DecryptAES; 'eproc': EncryptAES; keylen: 16; ivlen: 16; }; + 'DES-EDE3-CBC': { 'proc': Decrypt3DES; 'eproc': Encrypt3DES; keylen: 24; ivlen: 8; }; + 'DES-CBC': { 'proc': DecryptDES; 'eproc': EncryptDES; keylen: 8; ivlen: 8; }; + }; + + type AlgName = keyof AlgList; + + type PEMHeadAlgName = 'RSA' | 'EC' | 'DSA'; + + type GetKeyRSAParam = RSAKey | { + n: BigInteger; + e: number; + } | Record<'n' | 'e', HexString> | Record<'n' | 'e', HexString> & Record<'d' | 'p' | 'q' | 'dp' | 'dq' | 'co', HexString | null> | { + n: BigInteger; + e: number; + d: BigInteger; + } | { + kty: 'RSA'; + } & Record<'n' | 'e', Base64URLString> | { + kty: 'RSA'; + } & Record<'n' | 'e' | 'd' | 'p' | 'q' | 'dp' | 'dq' | 'qi', Base64URLString> | { + kty: 'RSA'; + } & Record<'n' | 'e' | 'd', Base64URLString>; + + type GetKeyECDSAParam = KJUR.crypto.ECDSA | { + curve: KJUR.crypto.CurveName; + xy: HexString; + } | { + curve: KJUR.crypto.CurveName; + d: HexString; + } | { + kty: 'EC'; + crv: KJUR.crypto.CurveName; + x: Base64URLString; + y: Base64URLString; + } | { + kty: 'EC'; + crv: KJUR.crypto.CurveName; + x: Base64URLString; + y: Base64URLString; + d: Base64URLString; + }; + + type GetKeyDSAParam = KJUR.crypto.DSA | Record<'p' | 'q' | 'g', BigInteger> & Record<'y', BigInteger | null> | Record<'p' | 'q' | 'g' | 'x', BigInteger> & Record<'y', BigInteger | null>; + + type GetKeyParam = GetKeyRSAParam | GetKeyECDSAParam | GetKeyDSAParam | string; + + class KEYUTIL { + public version: '1.0.0'; + + public parsePKCS5PEM(sPKCS5PEM: PEM): Partial> & (Record<'cipher' | 'ivsalt', string> | Record<'cipher' | 'ivsalt', undefined>); + + public getKeyAndUnusedIvByPasscodeAndIvsalt(algName: AlgName, passcode: string, ivsaltHex: HexString): Record<'keyhex' | 'ivhex', HexString>; + + public decryptKeyB64(privateKeyB64: Base64String, sharedKeyAlgName: AlgName, sharedKeyHex: HexString, ivsaltHex: HexString): Base64String; + + public getDecryptedKeyHex(sEncryptedPEM: PEM, passcode: string): HexString; + + public getEncryptedPKCS5PEMFromPrvKeyHex(pemHeadAlg: PEMHeadAlgName, hPrvKey: string, passcode: string, sharedKeyAlgName?: AlgName | null, ivsaltHex?: HexString | null): PEM; + + public parseHexOfEncryptedPKCS8(sHEX: HexString): { + ciphertext: ASN1V; + encryptionSchemeAlg: 'TripleDES'; + encryptionSchemeIV: ASN1V; + pbkdf2Salt: ASN1V; + pbkdf2Iter: number; + }; + + public getPBKDF2KeyHexFromParam(info: ReturnType, passcode: string): HexString; + + private _getPlainPKCS8HexFromEncryptedPKCS8PEM(pkcs8PEM: PEM, passcode: string): HexString; + + public getKeyFromEncryptedPKCS8PEM(prvKeyHex: HexString): ReturnType; + + public parsePlainPrivatePKCS8Hex(pkcs8PrvHex: HexString): { + algparam: ASN1V | null; + algoid: ASN1V; + keyidx: Idx; + }; + + public getKeyFromPlainPrivatePKCS8PEM(prvKeyHex: HexString): ReturnType; + + public getKeyFromPlainPrivatePKCS8Hex(prvKeyHex: HexString): RSAKey | KJUR.crypto.DSA | KJUR.crypto.ECDSA; + + private _getKeyFromPublicPKCS8Hex(h: HexString): RSAKey | KJUR.crypto.DSA | KJUR.crypto.ECDSA; + + public parsePublicRawRSAKeyHex(pubRawRSAHex: HexString): Record<'n' | 'e', ASN1V>; + + public parsePublicPKCS8Hex(pkcs8PubHex: HexString): { + algparam: ASN1V | Record<'p' | 'q' | 'g', ASN1V> | null; + algoid: ASN1V; + key: ASN1V; + }; + + public static getKey(param: GetKeyRSAParam): RSAKey; + + public static getKey(param: GetKeyECDSAParam): KJUR.crypto.ECDSA; + + public static getKey(param: GetKeyDSAParam): KJUR.crypto.DSA; + + public static getKey(param: string, passcode?: string, hextype?: string): RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA; + + public static generateKeypair(alg: 'RSA', keylen: number): Record<'prvKeyObj' | 'pubKeyObj', RSAKey>; + + public static generateKeypair(alg: 'EC', curve: KJUR.crypto.CurveName): Record<'prvKeyObj' | 'pubKeyObj', KJUR.crypto.ECDSA>; + + public static getPEM(keyObjOrHex: RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA, formatType?: 'PKCS1PRV' | 'PKCS5PRV' | 'PKCS8PRV', passwd?: string, encAlg?: 'DES-CBC' | 'DES-EDE3-CBC' | 'AES-128-CBC' | 'AES-192-CBC' | 'AES-256-CBC', hexType?: string, ivsaltHex?: HexString): object; // To Do + + public static getKeyFromCSRPEM(csrPEM: PEM): RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA; + + public static getKeyFromCSRHex(csrHex: HexString): RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA; + + public static parseCSRHex(csrHex: HexString): Record<'p8pubkeyhex', ASN1TLV>; + + public static getJWKFromKey(keyObj: RSAKey): { + kty: 'RSA'; + } & Record<'n' | 'e' | 'd' | 'p' | 'q' | 'dp' | 'dq' | 'qi', Base64URLString> | { + kty: 'RSA'; + } & Record<'n' | 'e', Base64URLString>; + + public static getJWKFromKey(keyObj: KJUR.crypto.ECDSA): { + kty: 'EC'; + crv: KJUR.crypto.CurveName; + x: Base64URLString; + y: Base64URLString; + d: Base64URLString; + } | { + kty: 'EC'; + crv: KJUR.crypto.CurveName; + x: Base64URLString; + y: Base64URLString; + }; + } + + //// KJUR NAMESPACE (PARTIAL) + + namespace KJUR { + namespace crypto { + type CurveName = 'secp128r1' | 'secp160k1' | 'secp160r1' | 'secp192k1' | 'secp192r1' | 'secp224r1' | 'secp256k1' | 'secp256r1' | 'secp384r1' | 'secp521r1'; + + class DSA { + public p: BigInteger | null; + + public q: BigInteger | null; + + public g: BigInteger | null; + + public y: BigInteger | null; + + public x: BigInteger | null; + + public type: 'DSA'; + + public isPrivate: boolean; + + public isPublic: boolean; + + public setPrivate(p: BigInteger, q: BigInteger, g: BigInteger, y: BigInteger | null, x: BigInteger): void; + + public setPrivateHex(hP: HexString, hQ: HexString, hG: HexString, hY: HexString | null, hX: HexString): void; + + public setPublic(p: BigInteger, q: BigInteger, g: BigInteger, y: BigInteger): void; + + public setPublicHex(hP: HexString, hQ: HexString, hG: HexString, hY: HexString): void; + + public signWithMessageHash(sHashHex: HexString): HexString; + + public verifyWithMessageHash(sHashHex: HexString, hSigVal: HexString): boolean; + + public parseASN1Signature(hSigVal: HexString): [BigInteger, BigInteger]; + + public readPKCS5PrvKeyHex(h: HexString): void; + + public readPKCS8PrvKeyHex(h: HexString): void; + + public readPKCS8PubKeyHex(h: HexString): void; + + public readCertPubKeyHex(h: HexString, nthPKI: number): void; + } + + class ECDSA { + constructor(params?: { + curve?: CurveName; + prv?: HexString; + pub?: HexString; + }); + + public p: BigInteger | null; + + public q: BigInteger | null; + + public g: BigInteger | null; + + public y: BigInteger | null; + + public x: BigInteger | null; + + public type: 'EC'; + + public isPrivate: boolean; + + public isPublic: boolean; + + public getBigRandom(limit: BigInteger): BigInteger; + + public setNamedCurve(curveName: CurveName): void; + + public setPrivateKeyHex(prvKeyHex: HexString): void; + + public setPublicKeyHex(pubKeyHex: HexString): void; + + public getPublicKeyXYHex(): Record<'x' | 'y', HexString>; + + public getShortNISTPCurveName(): 'P-256' | 'P-384' | null; + + public generateKeyPairHex(): Record<'ecprvhex' | 'ecpubhex', HexString>; + + public signWithMessageHash(hashHex: HexString): HexString; + + public signHex(hashHex: HexString, privHex: HexString): HexString; + + public verifyWithMessageHash(sHashHex: HexString, hSigVal: HexString): boolean; + + public parseASN1Signature(hSigVal: HexString): [BigInteger, BigInteger]; + + public readPKCS5PrvKeyHex(h: HexString): void; + + public readPKCS8PrvKeyHex(h: HexString): void; + + public readPKCS8PubKeyHex(h: HexString): void; + + public readCertPubKeyHex(h: HexString, nthPKI: number): void; + + public static parseSigHex(sigHex: HexString): Record<'r' | 's', BigInteger>; + + public static parseSigHexInHexRS(sigHex: HexString): Record<'r' | 's', ASN1V>; + + public static asn1SigToConcatSig(asn1Sig: HexString): HexString; + + public static concatSigToASN1Sig(concatSig: HexString): ASN1TLV; + + public static hexRSSigToASN1Sig(hR: HexString, hS: HexString): ASN1TLV; + + public static biRSSigToASN1Sig(biR: BigInteger, biS: BigInteger): ASN1TLV; + + public static getName(s: CurveName | HexString): 'secp256r1' | 'secp256k1' | 'secp384r1' | null; + } + + class Signature { + constructor(params?: ({ + alg: string; + prov?: string; + } | {}) & ({ + psssaltlen: number; + } | {}) & ({ + prvkeypem: PEM; + prvkeypas?: never; + } | {})); + + private _setAlgNames(): void; + + private _zeroPaddingOfSignature(hex: HexString, bitLength: number): HexString; + + public setAlgAndProvider(alg: string, prov: string): void; + + public init(key: GetKeyParam, pass?: string): void; + + public updateString(str: string): void; + + public updateHex(hex: HexString): void; + + public sign(): HexString; + + public signString(str: string): HexString; + + public signHex(hex: HexString): HexString; + + public verify(hSigVal: string): boolean | 0; + } + } + } + + //// RSAKEY TYPES + + class RSAKey { + public n: BigInteger | null; + + public e: number; + + public d: BigInteger | null; + + public p: BigInteger | null; + + public q: BigInteger | null; + + public dmp1: BigInteger | null; + + public dmq1: BigInteger | null; + + public coeff: BigInteger | null; + + public type: 'RSA'; + + public isPrivate?: boolean; + + public isPublic?: boolean; + + //// RSA PUBLIC + + protected doPublic(x: BigInteger): BigInteger; + + public setPublic(N: BigInteger, E: number): void; + + public setPublic(N: HexString, E: HexString): void; + + public encrypt(text: string): HexString | null; + + public encryptOAEP(text: string, hash?: string | ((s: string) => string), hashLen?: number): HexString | null; + + //// RSA PRIVATE + + protected doPrivate(x: BigInteger): BigInteger; + + public setPrivate(N: BigInteger, E: number, D: BigInteger): void; + + public setPrivate(N: HexString, E: HexString, D: HexString): void; + + public setPrivateEx(N: HexString, E: HexString, D?: HexString | null, P?: HexString | null, Q?: HexString | null, DP?: HexString | null, DQ?: HexString | null, C?: HexString | null): void; + + public generate(B: number, E: HexString): void; + + public decrypt(ctext: HexString): string; + + public decryptOAEP(ctext: HexString, hash?: string | ((s: string) => string), hashLen?: number): string | null; + + //// RSA PEM + + public getPosArrayOfChildrenFromHex(hPrivateKey: PEM): Idx[]; + + public getHexValueArrayOfChildrenFromHex(hPrivateKey: PEM): Idx[]; + + public readPrivateKeyFromPEMString(keyPEM: PEM): void; + + public readPKCS5PrvKeyHex(h: HexString): void; + + public readPKCS8PrvKeyHex(h: HexString): void; + + public readPKCS5PubKeyHex(h: HexString): void; + + public readPKCS8PubKeyHex(h: HexString): void; + + public readCertPubKeyHex(h: HexString, nthPKI: Nth): void; + + //// RSA SIGN + + public sign(s: string, hashAlg: string): HexString; + + public signWithMessageHash(sHashHex: HexString, hashAlg: string): HexString; + + public signPSS(s: string, hashAlg: string, sLen: number): HexString; + + public signWithMessageHashPSS(hHash: HexString, hashAlg: string, sLen: number): HexString; + + public verify(sMsg: string, hSig: HexString): boolean | 0; + + public verifyWithMessageHash(sHashHex: HexString, hSig: HexString): boolean | 0; + + public verifyPSS(sMsg: string, hSig: HexString, hashAlg: string, sLen: number): boolean; + + public verifyWithMessageHashPSS(hHash: HexString, hSig: HexString, hashAlg: string, sLen: number): boolean; + + public static SALT_LEN_HLEN: -1; + + public static SALT_LEN_MAX: -2; + + public static SALT_LEN_RECOVER: -2; + } + + /// RNG TYPES + class SecureRandom { + public nextBytes(ba: Mutable): void; + } + + //// X509 TYPES + + type ExtInfo = { + critical: boolean; + oid: OID; + vidx: Idx; + }; + + type ExtAIAInfo = Record<'ocsp' | 'caissuer', string>; + + type ExtCertificatePolicy = { + id: OIDName; + } & Partial<{ + cps: string; + } | { + unotice: string; + }>; + + class X509 { + public hex: HexString | null; + + public version: number; + + public foffset: number; + + public aExtInfo: null; + + public getVersion(): number; + + public getSerialNumberHex(): ASN1V; + + public getSignatureAlgorithmField(): OIDName; + + public getIssuerHex(): ASN1TLV; + + public getIssuerString(): HexString; + + public getSubjectHex(): ASN1TLV; + + public getSubjectString(): HexString; + + public getNotBefore(): TimeValue; + + public getNotAfter(): TimeValue; + + public getPublicKeyHex(): ASN1TLV; + + public getPublicKeyIdx(): Idx>; + + public getPublicKeyContentIdx(): Idx>; + + public getPublicKey(): RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA; + + public getSignatureAlgorithmName(): OIDName; + + public getSignatureValueHex(): ASN1V; + + public verifySignature(pubKey: GetKeyParam): boolean | 0; + + public parseExt(): void; + + public getExtInfo(oidOrName: OID | string): ExtInfo | undefined; + + public getExtBasicConstraints(): ExtInfo | {} | { + cA: true; + pathLen?: number; + }; + + public getExtKeyUsageBin(): BinString; + + public getExtKeyUsageString(): string; + + public getExtSubjectKeyIdentifier(): ASN1V | undefined; + + public getExtAuthorityKeyIdentifier(): { + kid: ASN1V; + } | undefined; + + public getExtExtKeyUsageName(): OIDName[] | undefined; + + public getExtSubjectAltName(): Deprecated; + + public getExtSubjectAltName2(): ['MAIL' | 'DNS' | 'DN' | 'URI' | 'IP', string][] | undefined; + + public getExtCRLDistributionPointsURI(): string[] | undefined; + + public getExtAIAInfo(): ExtAIAInfo | undefined; + + public getExtCertificatePolicies(): ExtCertificatePolicy[] | undefined; + + public readCertPEM(sCertPEM: PEM): void; + + public readCertHex(sCertHex: HexString): void; + + public getInfo(): string; + + public static hex2dn(hex: HexString, idx?: Idx): string; + + public static hex2rdn(hex: HexString, idx?: Idx): string; + + public static hex2attrTypeValue(hex: HexString, idx?: Idx): string; + + public static getPublicKeyFromCertPEM(sCertPEM: PEM): RSAKey | KJUR.crypto.ECDSA | KJUR.crypto.DSA; + + public static getPublicKeyInfoPropOfCertPEM(sCertPEM: PEM): { + algparam: ASN1V | null; + leyhex: ASN1V; + algoid: ASN1V; + }; + } +} diff --git a/packages/backend/src/@types/koa-json-body.d.ts b/src/@types/koa-json-body.d.ts similarity index 100% rename from packages/backend/src/@types/koa-json-body.d.ts rename to src/@types/koa-json-body.d.ts diff --git a/packages/backend/src/@types/koa-slow.d.ts b/src/@types/koa-slow.d.ts similarity index 100% rename from packages/backend/src/@types/koa-slow.d.ts rename to src/@types/koa-slow.d.ts diff --git a/src/@types/langmap.d.ts b/src/@types/langmap.d.ts new file mode 100644 index 000000000..a0f99028a --- /dev/null +++ b/src/@types/langmap.d.ts @@ -0,0 +1,10 @@ +declare module 'langmap' { + type Lang = { + nativeName: string; + englishName: string; + }; + + const langmap: { [lang: string]: Lang }; + + export = langmap; +} diff --git a/src/@types/lookup-dns-cache.d.ts b/src/@types/lookup-dns-cache.d.ts new file mode 100644 index 000000000..bae9df5fa --- /dev/null +++ b/src/@types/lookup-dns-cache.d.ts @@ -0,0 +1,9 @@ +declare module 'lookup-dns-cache' { + import { LookupOneOptions, LookupAllOptions, LookupOptions, LookupAddress } from 'dns'; + + function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; + function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; + function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; +} diff --git a/src/@types/meta.json.d.ts b/src/@types/meta.json.d.ts new file mode 100644 index 000000000..ab812682b --- /dev/null +++ b/src/@types/meta.json.d.ts @@ -0,0 +1,3 @@ +declare module '*/meta.json' { + const version: string; +} diff --git a/src/@types/ms.d.ts b/src/@types/ms.d.ts new file mode 100644 index 000000000..2f0156d10 --- /dev/null +++ b/src/@types/ms.d.ts @@ -0,0 +1,12 @@ +declare module 'ms' { + interface IMSOptions { + long: boolean; + } + + function ms(value: string): number; + function ms(value: number, options?: IMSOptions): string; + + namespace ms {} // Hack + + export = ms; +} diff --git a/packages/backend/src/@types/os-utils.d.ts b/src/@types/os-utils.d.ts similarity index 100% rename from packages/backend/src/@types/os-utils.d.ts rename to src/@types/os-utils.d.ts diff --git a/packages/backend/src/@types/package.json.d.ts b/src/@types/package.json.d.ts similarity index 100% rename from packages/backend/src/@types/package.json.d.ts rename to src/@types/package.json.d.ts diff --git a/packages/backend/src/@types/probe-image-size.d.ts b/src/@types/probe-image-size.d.ts similarity index 95% rename from packages/backend/src/@types/probe-image-size.d.ts rename to src/@types/probe-image-size.d.ts index 11bb6c620..665edcf2e 100644 --- a/packages/backend/src/@types/probe-image-size.d.ts +++ b/src/@types/probe-image-size.d.ts @@ -1,5 +1,5 @@ declare module 'probe-image-size' { - import { ReadStream } from 'node:fs'; + import { ReadStream } from 'fs'; type ProbeOptions = { retries: 1; diff --git a/src/@types/recaptcha-promise.d.ts b/src/@types/recaptcha-promise.d.ts new file mode 100644 index 000000000..cfbd5eebf --- /dev/null +++ b/src/@types/recaptcha-promise.d.ts @@ -0,0 +1,16 @@ +declare module 'recaptcha-promise' { + interface IVerifyOptions { + secret_key?: string; + } + + interface IVerify { + (response: string, remoteAddress?: string): Promise; + init(options: IVerifyOptions): IVerify; + } + + namespace recaptchaPromise {} // Hack + + const verify: IVerify; + + export = verify; +} diff --git a/src/argv.ts b/src/argv.ts new file mode 100644 index 000000000..a92338f86 --- /dev/null +++ b/src/argv.ts @@ -0,0 +1,22 @@ +import * as program from 'commander'; +import config from './config'; + +program + .version(config.version) + .option('--no-daemons', 'Disable daemon processes (for debbuging)') + .option('--disable-clustering', 'Disable clustering') + .option('--only-server', 'Run server only (without job queue processing)') + .option('--only-queue', 'Pocessing job queue only (without server)') + .option('--quiet', 'Suppress all logs') + .option('--verbose', 'Enable all logs') + .option('--with-log-time', 'Include timestamp for each logs') + .option('--slow', 'Delay all requests (for debbuging)') + .option('--color', 'This option is a dummy for some external program\'s (e.g. forever) issue.') + .parse(process.argv); + +if (process.env.MK_ONLY_QUEUE) program.onlyQueue = true; +if (process.env.NODE_ENV === 'test') program.disableClustering = true; +if (process.env.NODE_ENV === 'test') program.quiet = true; +if (process.env.NODE_ENV === 'test') program.noDaemons = true; + +export { program }; diff --git a/src/boot/index.ts b/src/boot/index.ts new file mode 100644 index 000000000..7380c4484 --- /dev/null +++ b/src/boot/index.ts @@ -0,0 +1,77 @@ +import * as cluster from 'cluster'; +import * as chalk from 'chalk'; +import Xev from 'xev'; + +import Logger from '../services/logger'; +import { program } from '../argv'; + +// for typeorm +import 'reflect-metadata'; +import { masterMain } from './master'; +import { workerMain } from './worker'; + +const logger = new Logger('core', 'cyan'); +const clusterLogger = logger.createSubLogger('cluster', 'orange', false); +const ev = new Xev(); + +/** + * Init process + */ +export default async function() { + process.title = `Misskey (${cluster.isMaster ? 'master' : 'worker'})`; + + if (cluster.isMaster || program.disableClustering) { + await masterMain(); + + if (cluster.isMaster) { + ev.mount(); + } + } + + if (cluster.isWorker || program.disableClustering) { + await workerMain(); + } + + // ユニットテスト時にMisskeyが子プロセスで起動された時のため + // それ以外のときは process.send は使えないので弾く + if (process.send) { + process.send('ok'); + } +} + +//#region Events + +// Listen new workers +cluster.on('fork', worker => { + clusterLogger.debug(`Process forked: [${worker.id}]`); +}); + +// Listen online workers +cluster.on('online', worker => { + clusterLogger.debug(`Process is now online: [${worker.id}]`); +}); + +// Listen for dying workers +cluster.on('exit', worker => { + // Replace the dead worker, + // we're not sentimental + clusterLogger.error(chalk.red(`[${worker.id}] died :(`)); + cluster.fork(); +}); + +// Display detail of unhandled promise rejection +if (!program.quiet) { + process.on('unhandledRejection', console.dir); +} + +// Display detail of uncaught exception +process.on('uncaughtException', err => { + logger.error(err); +}); + +// Dying away... +process.on('exit', code => { + logger.info(`The process is going to exit with code ${code}`); +}); + +//#endregion diff --git a/src/boot/master.ts b/src/boot/master.ts new file mode 100644 index 000000000..aded10291 --- /dev/null +++ b/src/boot/master.ts @@ -0,0 +1,181 @@ +import * as os from 'os'; +import * as cluster from 'cluster'; +import * as chalk from 'chalk'; +import * as portscanner from 'portscanner'; +import * as isRoot from 'is-root'; +import { getConnection } from 'typeorm'; + +import Logger from '../services/logger'; +import loadConfig from '../config/load'; +import { Config } from '../config/types'; +import { lessThan } from '../prelude/array'; +import { program } from '../argv'; +import { showMachineInfo } from '../misc/show-machine-info'; +import { initDb } from '../db/postgre'; +import * as meta from '../meta.json'; + +const logger = new Logger('core', 'cyan'); +const bootLogger = logger.createSubLogger('boot', 'magenta', false); + +function greet() { + if (!program.quiet) { + //#region Misskey logo + const v = `v${meta.version}`; + console.log(' _____ _ _ '); + console.log(' | |_|___ ___| |_ ___ _ _ '); + console.log(' | | | | |_ -|_ -| \'_| -_| | |'); + console.log(' |_|_|_|_|___|___|_,_|___|_ |'); + console.log(' ' + chalk.gray(v) + (' |___|\n'.substr(v.length))); + //#endregion + + console.log(' Misskey is an open-source decentralized microblogging platform.'); + console.log(chalk.keyword('orange')(' If you like Misskey, please donate to support development. https://www.patreon.com/syuilo')); + + console.log(''); + console.log(chalk`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`); + } + + bootLogger.info('Welcome to Misskey!'); + bootLogger.info(`Misskey v${meta.version}`, null, true); +} + +/** + * Init master process + */ +export async function masterMain() { + let config!: Config; + + try { + greet(); + + // initialize app + config = await init(); + + if (config.port == null || Number.isNaN(config.port)) { + bootLogger.error('The port is not configured. Please configure port.', null, true); + process.exit(1); + } + + if (process.platform === 'linux' && isWellKnownPort(config.port) && !isRoot()) { + bootLogger.error('You need root privileges to listen on well-known port on Linux', null, true); + process.exit(1); + } + + if (!await isPortAvailable(config.port)) { + bootLogger.error(`Port ${config.port} is already in use`, null, true); + process.exit(1); + } + } catch (e) { + bootLogger.error('Fatal error occurred during initialization', null, true); + process.exit(1); + } + + bootLogger.succ('Misskey initialized'); + + if (!program.disableClustering) { + await spawnWorkers(config.clusterLimit); + } + + bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true); + + if (!program.noDaemons) { + require('../daemons/server-stats').default(); + require('../daemons/queue-stats').default(); + require('../daemons/janitor').default(); + } +} + +const runningNodejsVersion = process.version.slice(1).split('.').map(x => parseInt(x, 10)); +const requiredNodejsVersion = [11, 7, 0]; +const satisfyNodejsVersion = !lessThan(runningNodejsVersion, requiredNodejsVersion); + +function isWellKnownPort(port: number): boolean { + return port < 1024; +} + +async function isPortAvailable(port: number): Promise { + return await portscanner.checkPortStatus(port, '127.0.0.1') === 'closed'; +} + +function showEnvironment(): void { + const env = process.env.NODE_ENV; + const logger = bootLogger.createSubLogger('env'); + logger.info(typeof env === 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`); + + if (env !== 'production') { + logger.warn('The environment is not in production mode.'); + logger.warn('DO NOT USE FOR PRODUCTION PURPOSE!', null, true); + } + + logger.info(`You ${isRoot() ? '' : 'do not '}have root privileges`); +} + +/** + * Init app + */ +async function init(): Promise { + showEnvironment(); + + await showMachineInfo(bootLogger); + + const nodejsLogger = bootLogger.createSubLogger('nodejs'); + + nodejsLogger.info(`Version ${runningNodejsVersion.join('.')}`); + + if (!satisfyNodejsVersion) { + nodejsLogger.error(`Node.js version is less than ${requiredNodejsVersion.join('.')}. Please upgrade it.`, null, true); + process.exit(1); + } + + const configLogger = bootLogger.createSubLogger('config'); + let config; + + try { + config = loadConfig(); + } catch (exception) { + if (typeof exception === 'string') { + configLogger.error(exception); + process.exit(1); + } + if (exception.code === 'ENOENT') { + configLogger.error('Configuration file not found', null, true); + process.exit(1); + } + throw exception; + } + + configLogger.succ('Loaded'); + + const dbLogger = bootLogger.createSubLogger('db'); + + // Try to connect to DB + try { + dbLogger.info('Connecting...'); + await initDb(); + const v = await getConnection().query('SHOW server_version').then(x => x[0].server_version); + dbLogger.succ(`Connected: v${v}`); + } catch (e) { + dbLogger.error('Cannot connect', null, true); + dbLogger.error(e); + process.exit(1); + } + + return config; +} + +async function spawnWorkers(limit: number = 1) { + const workers = Math.min(limit, os.cpus().length); + bootLogger.info(`Starting ${workers} worker${workers === 1 ? '' : 's'}...`); + await Promise.all([...Array(workers)].map(spawnWorker)); + bootLogger.succ('All workers started'); +} + +function spawnWorker(): Promise { + return new Promise(res => { + const worker = cluster.fork(); + worker.on('message', message => { + if (message !== 'ready') return; + res(); + }); + }); +} diff --git a/src/boot/worker.ts b/src/boot/worker.ts new file mode 100644 index 000000000..362fa3f26 --- /dev/null +++ b/src/boot/worker.ts @@ -0,0 +1,20 @@ +import * as cluster from 'cluster'; +import { initDb } from '../db/postgre'; + +/** + * Init worker process + */ +export async function workerMain() { + await initDb(); + + // start server + await require('../server').default(); + + // start job queue + require('../queue').default(); + + if (cluster.isWorker) { + // Send a 'ready' message to parent process + process.send!('ready'); + } +} diff --git a/src/client/.eslintrc b/src/client/.eslintrc new file mode 100644 index 000000000..8829472b4 --- /dev/null +++ b/src/client/.eslintrc @@ -0,0 +1,12 @@ +{ + "globals": { + "_DEV_": false, + "_LANGS_": false, + "_VERSION_": false, + "_ENV_": false, + "_PERF_PREFIX_": false, + "_DATA_TRANSFER_DRIVE_FILE_": false, + "_DATA_TRANSFER_DRIVE_FOLDER_": false, + "_DATA_TRANSFER_DECK_COLUMN_": false + } +} diff --git a/src/client/@types/global.d.ts b/src/client/@types/global.d.ts new file mode 100644 index 000000000..670774fdf --- /dev/null +++ b/src/client/@types/global.d.ts @@ -0,0 +1,8 @@ +declare const _LANGS_: string[]; +declare const _VERSION_: string; +declare const _ENV_: string; +declare const _DEV_: boolean; +declare const _PERF_PREFIX_: string; +declare const _DATA_TRANSFER_DRIVE_FILE_: string; +declare const _DATA_TRANSFER_DRIVE_FOLDER_: string; +declare const _DATA_TRANSFER_DECK_COLUMN_: string; diff --git a/src/client/@types/vue.d.ts b/src/client/@types/vue.d.ts new file mode 100644 index 000000000..b3a21c6cd --- /dev/null +++ b/src/client/@types/vue.d.ts @@ -0,0 +1,4 @@ +declare module '*.vue' { + import Vue from 'vue'; + export default Vue; +} diff --git a/src/client/@types/vuex-shim.d.ts b/src/client/@types/vuex-shim.d.ts new file mode 100644 index 000000000..5bcc4c460 --- /dev/null +++ b/src/client/@types/vuex-shim.d.ts @@ -0,0 +1,12 @@ +import { ComponentCustomProperties } from 'vue'; +import { Store } from 'vuex'; + +declare module '@vue/runtime-core' { + // tslint:disable-next-line:no-empty-interface + interface State { + } + + interface ComponentCustomProperties { + $store: Store; + } +} diff --git a/packages/client/assets/fedi.jpg b/src/client/assets/fedi.jpg similarity index 100% rename from packages/client/assets/fedi.jpg rename to src/client/assets/fedi.jpg diff --git a/packages/client/assets/label-red.svg b/src/client/assets/label-red.svg similarity index 100% rename from packages/client/assets/label-red.svg rename to src/client/assets/label-red.svg diff --git a/packages/client/assets/label.svg b/src/client/assets/label.svg similarity index 100% rename from packages/client/assets/label.svg rename to src/client/assets/label.svg diff --git a/packages/backend/src/server/web/manifest.json b/src/client/assets/manifest.json similarity index 82% rename from packages/backend/src/server/web/manifest.json rename to src/client/assets/manifest.json index 48030a298..f5a1d47a8 100644 --- a/packages/backend/src/server/web/manifest.json +++ b/src/client/assets/manifest.json @@ -7,12 +7,12 @@ "theme_color": "#86b300", "icons": [ { - "src": "/static-assets/icons/192.png", + "src": "/assets/icons/192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/static-assets/icons/512.png", + "src": "/assets/icons/512.png", "sizes": "512x512", "type": "image/png" } diff --git a/src/client/assets/redoc.html b/src/client/assets/redoc.html new file mode 100644 index 000000000..4d2360fb2 --- /dev/null +++ b/src/client/assets/redoc.html @@ -0,0 +1,24 @@ + + + + Misskey API + + + + + + + + + + + + + diff --git a/packages/client/assets/remove.png b/src/client/assets/remove.png similarity index 100% rename from packages/client/assets/remove.png rename to src/client/assets/remove.png diff --git a/src/client/assets/room/furnitures/banknote/banknote.blend b/src/client/assets/room/furnitures/banknote/banknote.blend new file mode 100644 index 000000000..60b1968a2 Binary files /dev/null and b/src/client/assets/room/furnitures/banknote/banknote.blend differ diff --git a/src/client/assets/room/furnitures/banknote/banknote.glb b/src/client/assets/room/furnitures/banknote/banknote.glb new file mode 100644 index 000000000..f4ef0b91e Binary files /dev/null and b/src/client/assets/room/furnitures/banknote/banknote.glb differ diff --git a/src/client/assets/room/furnitures/banknote/tex.png b/src/client/assets/room/furnitures/banknote/tex.png new file mode 100644 index 000000000..9106dc145 Binary files /dev/null and b/src/client/assets/room/furnitures/banknote/tex.png differ diff --git a/src/client/assets/room/furnitures/bed/bed.blend b/src/client/assets/room/furnitures/bed/bed.blend new file mode 100644 index 000000000..731df76d0 Binary files /dev/null and b/src/client/assets/room/furnitures/bed/bed.blend differ diff --git a/src/client/assets/room/furnitures/bed/bed.glb b/src/client/assets/room/furnitures/bed/bed.glb new file mode 100644 index 000000000..f35ecb9ef Binary files /dev/null and b/src/client/assets/room/furnitures/bed/bed.glb differ diff --git a/src/client/assets/room/furnitures/bin/bin.blend b/src/client/assets/room/furnitures/bin/bin.blend new file mode 100644 index 000000000..8d459a086 Binary files /dev/null and b/src/client/assets/room/furnitures/bin/bin.blend differ diff --git a/src/client/assets/room/furnitures/bin/bin.glb b/src/client/assets/room/furnitures/bin/bin.glb new file mode 100644 index 000000000..b45f20380 Binary files /dev/null and b/src/client/assets/room/furnitures/bin/bin.glb differ diff --git a/src/client/assets/room/furnitures/book/book.blend b/src/client/assets/room/furnitures/book/book.blend new file mode 100644 index 000000000..0d4899d4a Binary files /dev/null and b/src/client/assets/room/furnitures/book/book.blend differ diff --git a/src/client/assets/room/furnitures/book/book.glb b/src/client/assets/room/furnitures/book/book.glb new file mode 100644 index 000000000..546893da0 Binary files /dev/null and b/src/client/assets/room/furnitures/book/book.glb differ diff --git a/src/client/assets/room/furnitures/book2/barcode.png b/src/client/assets/room/furnitures/book2/barcode.png new file mode 100644 index 000000000..37cfe5add Binary files /dev/null and b/src/client/assets/room/furnitures/book2/barcode.png differ diff --git a/src/client/assets/room/furnitures/book2/book2.blend b/src/client/assets/room/furnitures/book2/book2.blend new file mode 100644 index 000000000..e0fdb4810 Binary files /dev/null and b/src/client/assets/room/furnitures/book2/book2.blend differ diff --git a/src/client/assets/room/furnitures/book2/book2.glb b/src/client/assets/room/furnitures/book2/book2.glb new file mode 100644 index 000000000..2b26402f8 Binary files /dev/null and b/src/client/assets/room/furnitures/book2/book2.glb differ diff --git a/src/client/assets/room/furnitures/book2/texture.afdesign b/src/client/assets/room/furnitures/book2/texture.afdesign new file mode 100644 index 000000000..b63771607 Binary files /dev/null and b/src/client/assets/room/furnitures/book2/texture.afdesign differ diff --git a/src/client/assets/room/furnitures/book2/texture.png b/src/client/assets/room/furnitures/book2/texture.png new file mode 100644 index 000000000..5aa84f034 Binary files /dev/null and b/src/client/assets/room/furnitures/book2/texture.png differ diff --git a/src/client/assets/room/furnitures/book2/uv.png b/src/client/assets/room/furnitures/book2/uv.png new file mode 100644 index 000000000..61c4fb040 Binary files /dev/null and b/src/client/assets/room/furnitures/book2/uv.png differ diff --git a/src/client/assets/room/furnitures/cardboard-box/cardboard-box.blend b/src/client/assets/room/furnitures/cardboard-box/cardboard-box.blend new file mode 100644 index 000000000..3a528de32 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box/cardboard-box.blend differ diff --git a/src/client/assets/room/furnitures/cardboard-box/cardboard-box.glb b/src/client/assets/room/furnitures/cardboard-box/cardboard-box.glb new file mode 100644 index 000000000..bed372e94 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box/cardboard-box.glb differ diff --git a/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend b/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend new file mode 100644 index 000000000..5f146267a Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend differ diff --git a/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb b/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb new file mode 100644 index 000000000..85fcb5c0b Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb differ diff --git a/src/client/assets/room/furnitures/cardboard-box2/texture.png b/src/client/assets/room/furnitures/cardboard-box2/texture.png new file mode 100644 index 000000000..e498d8f65 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box2/texture.png differ diff --git a/src/client/assets/room/furnitures/cardboard-box2/uv.png b/src/client/assets/room/furnitures/cardboard-box2/uv.png new file mode 100644 index 000000000..d547843ee Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box2/uv.png differ diff --git a/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend b/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend new file mode 100644 index 000000000..00681a3cf Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend differ diff --git a/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb b/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb new file mode 100644 index 000000000..1ef042768 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb differ diff --git a/src/client/assets/room/furnitures/cardboard-box3/texture.png b/src/client/assets/room/furnitures/cardboard-box3/texture.png new file mode 100644 index 000000000..56c914cb9 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box3/texture.png differ diff --git a/src/client/assets/room/furnitures/cardboard-box3/texture.xcf b/src/client/assets/room/furnitures/cardboard-box3/texture.xcf new file mode 100644 index 000000000..7ffb3e343 Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box3/texture.xcf differ diff --git a/src/client/assets/room/furnitures/cardboard-box3/uv.png b/src/client/assets/room/furnitures/cardboard-box3/uv.png new file mode 100644 index 000000000..797ac509d Binary files /dev/null and b/src/client/assets/room/furnitures/cardboard-box3/uv.png differ diff --git a/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend b/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend new file mode 100644 index 000000000..750343d4f Binary files /dev/null and b/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend differ diff --git a/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb b/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb new file mode 100644 index 000000000..3066a69e3 Binary files /dev/null and b/src/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb differ diff --git a/src/client/assets/room/furnitures/chair/chair.blend b/src/client/assets/room/furnitures/chair/chair.blend new file mode 100644 index 000000000..79c29a840 Binary files /dev/null and b/src/client/assets/room/furnitures/chair/chair.blend differ diff --git a/src/client/assets/room/furnitures/chair/chair.glb b/src/client/assets/room/furnitures/chair/chair.glb new file mode 100644 index 000000000..08ee1a0bb Binary files /dev/null and b/src/client/assets/room/furnitures/chair/chair.glb differ diff --git a/src/client/assets/room/furnitures/chair2/chair2.blend b/src/client/assets/room/furnitures/chair2/chair2.blend new file mode 100644 index 000000000..c6a1acd96 Binary files /dev/null and b/src/client/assets/room/furnitures/chair2/chair2.blend differ diff --git a/src/client/assets/room/furnitures/chair2/chair2.glb b/src/client/assets/room/furnitures/chair2/chair2.glb new file mode 100644 index 000000000..5ea2f3518 Binary files /dev/null and b/src/client/assets/room/furnitures/chair2/chair2.glb differ diff --git a/src/client/assets/room/furnitures/color-box/color-box.blend b/src/client/assets/room/furnitures/color-box/color-box.blend new file mode 100644 index 000000000..f96a4ff76 Binary files /dev/null and b/src/client/assets/room/furnitures/color-box/color-box.blend differ diff --git a/src/client/assets/room/furnitures/color-box/color-box.glb b/src/client/assets/room/furnitures/color-box/color-box.glb new file mode 100644 index 000000000..43f2abcae Binary files /dev/null and b/src/client/assets/room/furnitures/color-box/color-box.glb differ diff --git a/src/client/assets/room/furnitures/corkboard/corkboard.blend b/src/client/assets/room/furnitures/corkboard/corkboard.blend new file mode 100644 index 000000000..9a7e1878c Binary files /dev/null and b/src/client/assets/room/furnitures/corkboard/corkboard.blend differ diff --git a/src/client/assets/room/furnitures/corkboard/corkboard.glb b/src/client/assets/room/furnitures/corkboard/corkboard.glb new file mode 100644 index 000000000..fee108fb9 Binary files /dev/null and b/src/client/assets/room/furnitures/corkboard/corkboard.glb differ diff --git a/src/client/assets/room/furnitures/cube/cube.blend b/src/client/assets/room/furnitures/cube/cube.blend new file mode 100644 index 000000000..1af5bf40a Binary files /dev/null and b/src/client/assets/room/furnitures/cube/cube.blend differ diff --git a/src/client/assets/room/furnitures/cube/cube.glb b/src/client/assets/room/furnitures/cube/cube.glb new file mode 100644 index 000000000..4ac8b6036 Binary files /dev/null and b/src/client/assets/room/furnitures/cube/cube.glb differ diff --git a/src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend b/src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend new file mode 100644 index 000000000..37ca8868c Binary files /dev/null and b/src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend differ diff --git a/src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb b/src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb new file mode 100644 index 000000000..58efb1b3b Binary files /dev/null and b/src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb differ diff --git a/src/client/assets/room/furnitures/cup-noodle/noodle.png b/src/client/assets/room/furnitures/cup-noodle/noodle.png new file mode 100644 index 000000000..1d74e0bbe Binary files /dev/null and b/src/client/assets/room/furnitures/cup-noodle/noodle.png differ diff --git a/src/client/assets/room/furnitures/desk/desk.blend b/src/client/assets/room/furnitures/desk/desk.blend new file mode 100644 index 000000000..c88d01f0b Binary files /dev/null and b/src/client/assets/room/furnitures/desk/desk.blend differ diff --git a/src/client/assets/room/furnitures/desk/desk.glb b/src/client/assets/room/furnitures/desk/desk.glb new file mode 100644 index 000000000..4a5851309 Binary files /dev/null and b/src/client/assets/room/furnitures/desk/desk.glb differ diff --git a/src/client/assets/room/furnitures/doll-ai/doll-ai.blend b/src/client/assets/room/furnitures/doll-ai/doll-ai.blend new file mode 100644 index 000000000..a912231ec Binary files /dev/null and b/src/client/assets/room/furnitures/doll-ai/doll-ai.blend differ diff --git a/src/client/assets/room/furnitures/doll-ai/doll-ai.glb b/src/client/assets/room/furnitures/doll-ai/doll-ai.glb new file mode 100644 index 000000000..ec55a7bd7 Binary files /dev/null and b/src/client/assets/room/furnitures/doll-ai/doll-ai.glb differ diff --git a/src/client/assets/room/furnitures/doll-ai/doll_ai_tex.png b/src/client/assets/room/furnitures/doll-ai/doll_ai_tex.png new file mode 100644 index 000000000..370ca5f75 Binary files /dev/null and b/src/client/assets/room/furnitures/doll-ai/doll_ai_tex.png differ diff --git a/src/client/assets/room/furnitures/energy-drink/energy-drink.blend b/src/client/assets/room/furnitures/energy-drink/energy-drink.blend new file mode 100644 index 000000000..65fc41273 Binary files /dev/null and b/src/client/assets/room/furnitures/energy-drink/energy-drink.blend differ diff --git a/src/client/assets/room/furnitures/energy-drink/energy-drink.glb b/src/client/assets/room/furnitures/energy-drink/energy-drink.glb new file mode 100644 index 000000000..7fb1c2783 Binary files /dev/null and b/src/client/assets/room/furnitures/energy-drink/energy-drink.glb differ diff --git a/src/client/assets/room/furnitures/energy-drink/texture.afdesign b/src/client/assets/room/furnitures/energy-drink/texture.afdesign new file mode 100644 index 000000000..8c117a49b Binary files /dev/null and b/src/client/assets/room/furnitures/energy-drink/texture.afdesign differ diff --git a/src/client/assets/room/furnitures/energy-drink/texture.png b/src/client/assets/room/furnitures/energy-drink/texture.png new file mode 100644 index 000000000..484ca0f96 Binary files /dev/null and b/src/client/assets/room/furnitures/energy-drink/texture.png differ diff --git a/src/client/assets/room/furnitures/energy-drink/uv.png b/src/client/assets/room/furnitures/energy-drink/uv.png new file mode 100644 index 000000000..2a3f20c99 Binary files /dev/null and b/src/client/assets/room/furnitures/energy-drink/uv.png differ diff --git a/src/client/assets/room/furnitures/eraser/cover.png b/src/client/assets/room/furnitures/eraser/cover.png new file mode 100644 index 000000000..932a3fc62 Binary files /dev/null and b/src/client/assets/room/furnitures/eraser/cover.png differ diff --git a/src/client/assets/room/furnitures/eraser/cover.psd b/src/client/assets/room/furnitures/eraser/cover.psd new file mode 100644 index 000000000..c39333783 Binary files /dev/null and b/src/client/assets/room/furnitures/eraser/cover.psd differ diff --git a/src/client/assets/room/furnitures/eraser/eraser-uv.png b/src/client/assets/room/furnitures/eraser/eraser-uv.png new file mode 100644 index 000000000..89e4ea4c4 Binary files /dev/null and b/src/client/assets/room/furnitures/eraser/eraser-uv.png differ diff --git a/src/client/assets/room/furnitures/eraser/eraser.blend b/src/client/assets/room/furnitures/eraser/eraser.blend new file mode 100644 index 000000000..103c54fba Binary files /dev/null and b/src/client/assets/room/furnitures/eraser/eraser.blend differ diff --git a/src/client/assets/room/furnitures/eraser/eraser.glb b/src/client/assets/room/furnitures/eraser/eraser.glb new file mode 100644 index 000000000..016b60df2 Binary files /dev/null and b/src/client/assets/room/furnitures/eraser/eraser.glb differ diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png b/src/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png new file mode 100644 index 000000000..e3865ad15 Binary files /dev/null and b/src/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png differ diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.blend b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.blend new file mode 100644 index 000000000..d59f87c1e Binary files /dev/null and b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.blend differ diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.glb b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.glb new file mode 100644 index 000000000..48b36ef34 Binary files /dev/null and b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.glb differ diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.png b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.png new file mode 100644 index 000000000..7cee4b185 Binary files /dev/null and b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.png differ diff --git a/src/client/assets/room/furnitures/facial-tissue/facial-tissue.psd b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.psd new file mode 100644 index 000000000..cd59fc007 Binary files /dev/null and b/src/client/assets/room/furnitures/facial-tissue/facial-tissue.psd differ diff --git a/src/client/assets/room/furnitures/fan/fan.blend b/src/client/assets/room/furnitures/fan/fan.blend new file mode 100644 index 000000000..8c8106e5f Binary files /dev/null and b/src/client/assets/room/furnitures/fan/fan.blend differ diff --git a/src/client/assets/room/furnitures/fan/fan.glb b/src/client/assets/room/furnitures/fan/fan.glb new file mode 100644 index 000000000..d9367f353 Binary files /dev/null and b/src/client/assets/room/furnitures/fan/fan.glb differ diff --git a/src/client/assets/room/furnitures/holo-display/holo-display.blend b/src/client/assets/room/furnitures/holo-display/holo-display.blend new file mode 100644 index 000000000..56d2e1f81 Binary files /dev/null and b/src/client/assets/room/furnitures/holo-display/holo-display.blend differ diff --git a/src/client/assets/room/furnitures/holo-display/holo-display.glb b/src/client/assets/room/furnitures/holo-display/holo-display.glb new file mode 100644 index 000000000..4d042a59b Binary files /dev/null and b/src/client/assets/room/furnitures/holo-display/holo-display.glb differ diff --git a/src/client/assets/room/furnitures/holo-display/ray-uv.png b/src/client/assets/room/furnitures/holo-display/ray-uv.png new file mode 100644 index 000000000..aa7e817e0 Binary files /dev/null and b/src/client/assets/room/furnitures/holo-display/ray-uv.png differ diff --git a/src/client/assets/room/furnitures/holo-display/ray.png b/src/client/assets/room/furnitures/holo-display/ray.png new file mode 100644 index 000000000..6a5d24e14 Binary files /dev/null and b/src/client/assets/room/furnitures/holo-display/ray.png differ diff --git a/src/client/assets/room/furnitures/keyboard/keyboard.blend b/src/client/assets/room/furnitures/keyboard/keyboard.blend new file mode 100644 index 000000000..ab33d134b Binary files /dev/null and b/src/client/assets/room/furnitures/keyboard/keyboard.blend differ diff --git a/src/client/assets/room/furnitures/keyboard/keyboard.glb b/src/client/assets/room/furnitures/keyboard/keyboard.glb new file mode 100644 index 000000000..15dc69f47 Binary files /dev/null and b/src/client/assets/room/furnitures/keyboard/keyboard.glb differ diff --git a/src/client/assets/room/furnitures/low-table/low-table.blend b/src/client/assets/room/furnitures/low-table/low-table.blend new file mode 100644 index 000000000..e1592174d Binary files /dev/null and b/src/client/assets/room/furnitures/low-table/low-table.blend differ diff --git a/src/client/assets/room/furnitures/low-table/low-table.glb b/src/client/assets/room/furnitures/low-table/low-table.glb new file mode 100644 index 000000000..c69bf35d7 Binary files /dev/null and b/src/client/assets/room/furnitures/low-table/low-table.glb differ diff --git a/src/client/assets/room/furnitures/mat/mat.blend b/src/client/assets/room/furnitures/mat/mat.blend new file mode 100644 index 000000000..a1e1a68c5 Binary files /dev/null and b/src/client/assets/room/furnitures/mat/mat.blend differ diff --git a/src/client/assets/room/furnitures/mat/mat.glb b/src/client/assets/room/furnitures/mat/mat.glb new file mode 100644 index 000000000..87ccd44e1 Binary files /dev/null and b/src/client/assets/room/furnitures/mat/mat.glb differ diff --git a/src/client/assets/room/furnitures/milk/milk-uv.png b/src/client/assets/room/furnitures/milk/milk-uv.png new file mode 100644 index 000000000..258fd5463 Binary files /dev/null and b/src/client/assets/room/furnitures/milk/milk-uv.png differ diff --git a/src/client/assets/room/furnitures/milk/milk.blend b/src/client/assets/room/furnitures/milk/milk.blend new file mode 100644 index 000000000..2df508d5b Binary files /dev/null and b/src/client/assets/room/furnitures/milk/milk.blend differ diff --git a/src/client/assets/room/furnitures/milk/milk.glb b/src/client/assets/room/furnitures/milk/milk.glb new file mode 100644 index 000000000..b335fe3d0 Binary files /dev/null and b/src/client/assets/room/furnitures/milk/milk.glb differ diff --git a/src/client/assets/room/furnitures/milk/milk.png b/src/client/assets/room/furnitures/milk/milk.png new file mode 100644 index 000000000..35181c8c8 Binary files /dev/null and b/src/client/assets/room/furnitures/milk/milk.png differ diff --git a/src/client/assets/room/furnitures/milk/milk.psd b/src/client/assets/room/furnitures/milk/milk.psd new file mode 100644 index 000000000..f31e43927 Binary files /dev/null and b/src/client/assets/room/furnitures/milk/milk.psd differ diff --git a/src/client/assets/room/furnitures/monitor/monitor.blend b/src/client/assets/room/furnitures/monitor/monitor.blend new file mode 100644 index 000000000..6c042ccdd Binary files /dev/null and b/src/client/assets/room/furnitures/monitor/monitor.blend differ diff --git a/src/client/assets/room/furnitures/monitor/monitor.glb b/src/client/assets/room/furnitures/monitor/monitor.glb new file mode 100644 index 000000000..fc33286a1 Binary files /dev/null and b/src/client/assets/room/furnitures/monitor/monitor.glb differ diff --git a/src/client/assets/room/furnitures/monitor/monitor.psd b/src/client/assets/room/furnitures/monitor/monitor.psd new file mode 100644 index 000000000..57afff9cd Binary files /dev/null and b/src/client/assets/room/furnitures/monitor/monitor.psd differ diff --git a/src/client/assets/room/furnitures/monitor/screen-uv.png b/src/client/assets/room/furnitures/monitor/screen-uv.png new file mode 100644 index 000000000..35f74de8a Binary files /dev/null and b/src/client/assets/room/furnitures/monitor/screen-uv.png differ diff --git a/src/client/assets/room/furnitures/monitor/screen.jpg b/src/client/assets/room/furnitures/monitor/screen.jpg new file mode 100644 index 000000000..4004a1ede Binary files /dev/null and b/src/client/assets/room/furnitures/monitor/screen.jpg differ diff --git a/src/client/assets/room/furnitures/moon/moon.blend b/src/client/assets/room/furnitures/moon/moon.blend new file mode 100644 index 000000000..4ff3deab8 Binary files /dev/null and b/src/client/assets/room/furnitures/moon/moon.blend differ diff --git a/src/client/assets/room/furnitures/moon/moon.glb b/src/client/assets/room/furnitures/moon/moon.glb new file mode 100644 index 000000000..07fa7e4c0 Binary files /dev/null and b/src/client/assets/room/furnitures/moon/moon.glb differ diff --git a/src/client/assets/room/furnitures/moon/moon.jpg b/src/client/assets/room/furnitures/moon/moon.jpg new file mode 100644 index 000000000..8988ac64b Binary files /dev/null and b/src/client/assets/room/furnitures/moon/moon.jpg differ diff --git a/src/client/assets/room/furnitures/mousepad/mousepad.blend b/src/client/assets/room/furnitures/mousepad/mousepad.blend new file mode 100644 index 000000000..14bd139c9 Binary files /dev/null and b/src/client/assets/room/furnitures/mousepad/mousepad.blend differ diff --git a/src/client/assets/room/furnitures/mousepad/mousepad.glb b/src/client/assets/room/furnitures/mousepad/mousepad.glb new file mode 100644 index 000000000..681ada49c Binary files /dev/null and b/src/client/assets/room/furnitures/mousepad/mousepad.glb differ diff --git a/src/client/assets/room/furnitures/pc/motherboard-uv.png b/src/client/assets/room/furnitures/pc/motherboard-uv.png new file mode 100644 index 000000000..355009fe7 Binary files /dev/null and b/src/client/assets/room/furnitures/pc/motherboard-uv.png differ diff --git a/src/client/assets/room/furnitures/pc/motherboard-uv.psd b/src/client/assets/room/furnitures/pc/motherboard-uv.psd new file mode 100644 index 000000000..971f33f79 Binary files /dev/null and b/src/client/assets/room/furnitures/pc/motherboard-uv.psd differ diff --git a/src/client/assets/room/furnitures/pc/motherboard.jpg b/src/client/assets/room/furnitures/pc/motherboard.jpg new file mode 100644 index 000000000..d894e4efc Binary files /dev/null and b/src/client/assets/room/furnitures/pc/motherboard.jpg differ diff --git a/src/client/assets/room/furnitures/pc/pc.blend b/src/client/assets/room/furnitures/pc/pc.blend new file mode 100644 index 000000000..13dfec6cc Binary files /dev/null and b/src/client/assets/room/furnitures/pc/pc.blend differ diff --git a/src/client/assets/room/furnitures/pc/pc.glb b/src/client/assets/room/furnitures/pc/pc.glb new file mode 100644 index 000000000..44a48b18a Binary files /dev/null and b/src/client/assets/room/furnitures/pc/pc.glb differ diff --git a/src/client/assets/room/furnitures/pencil/pencil.blend b/src/client/assets/room/furnitures/pencil/pencil.blend new file mode 100644 index 000000000..0fc6bdd77 Binary files /dev/null and b/src/client/assets/room/furnitures/pencil/pencil.blend differ diff --git a/src/client/assets/room/furnitures/pencil/pencil.glb b/src/client/assets/room/furnitures/pencil/pencil.glb new file mode 100644 index 000000000..a938b5cdc Binary files /dev/null and b/src/client/assets/room/furnitures/pencil/pencil.glb differ diff --git a/src/client/assets/room/furnitures/photoframe/photo-uv.png b/src/client/assets/room/furnitures/photoframe/photo-uv.png new file mode 100644 index 000000000..9b9490641 Binary files /dev/null and b/src/client/assets/room/furnitures/photoframe/photo-uv.png differ diff --git a/src/client/assets/room/furnitures/photoframe/photo.jpg b/src/client/assets/room/furnitures/photoframe/photo.jpg new file mode 100644 index 000000000..af14f0f36 Binary files /dev/null and b/src/client/assets/room/furnitures/photoframe/photo.jpg differ diff --git a/src/client/assets/room/furnitures/photoframe/photoframe.blend b/src/client/assets/room/furnitures/photoframe/photoframe.blend new file mode 100644 index 000000000..4224cde45 Binary files /dev/null and b/src/client/assets/room/furnitures/photoframe/photoframe.blend differ diff --git a/src/client/assets/room/furnitures/photoframe/photoframe.glb b/src/client/assets/room/furnitures/photoframe/photoframe.glb new file mode 100644 index 000000000..4255a77de Binary files /dev/null and b/src/client/assets/room/furnitures/photoframe/photoframe.glb differ diff --git a/src/client/assets/room/furnitures/piano/piano.blend b/src/client/assets/room/furnitures/piano/piano.blend new file mode 100644 index 000000000..7653cdf67 Binary files /dev/null and b/src/client/assets/room/furnitures/piano/piano.blend differ diff --git a/src/client/assets/room/furnitures/piano/piano.glb b/src/client/assets/room/furnitures/piano/piano.glb new file mode 100644 index 000000000..7242e78ce Binary files /dev/null and b/src/client/assets/room/furnitures/piano/piano.glb differ diff --git a/src/client/assets/room/furnitures/pinguin/pinguin.blend b/src/client/assets/room/furnitures/pinguin/pinguin.blend new file mode 100644 index 000000000..514c713e4 Binary files /dev/null and b/src/client/assets/room/furnitures/pinguin/pinguin.blend differ diff --git a/src/client/assets/room/furnitures/pinguin/pinguin.glb b/src/client/assets/room/furnitures/pinguin/pinguin.glb new file mode 100644 index 000000000..6df34c06e Binary files /dev/null and b/src/client/assets/room/furnitures/pinguin/pinguin.glb differ diff --git a/src/client/assets/room/furnitures/plant/plant-soil-uv.png b/src/client/assets/room/furnitures/plant/plant-soil-uv.png new file mode 100644 index 000000000..d4971a896 Binary files /dev/null and b/src/client/assets/room/furnitures/plant/plant-soil-uv.png differ diff --git a/src/client/assets/room/furnitures/plant/plant-soil.png b/src/client/assets/room/furnitures/plant/plant-soil.png new file mode 100644 index 000000000..e79ccd240 Binary files /dev/null and b/src/client/assets/room/furnitures/plant/plant-soil.png differ diff --git a/src/client/assets/room/furnitures/plant/plant-soil.psd b/src/client/assets/room/furnitures/plant/plant-soil.psd new file mode 100644 index 000000000..1457b7ea5 Binary files /dev/null and b/src/client/assets/room/furnitures/plant/plant-soil.psd differ diff --git a/src/client/assets/room/furnitures/plant/plant.blend b/src/client/assets/room/furnitures/plant/plant.blend new file mode 100644 index 000000000..aa38c7b54 Binary files /dev/null and b/src/client/assets/room/furnitures/plant/plant.blend differ diff --git a/src/client/assets/room/furnitures/plant/plant.glb b/src/client/assets/room/furnitures/plant/plant.glb new file mode 100644 index 000000000..38422b4a9 Binary files /dev/null and b/src/client/assets/room/furnitures/plant/plant.glb differ diff --git a/src/client/assets/room/furnitures/plant2/plant2.blend b/src/client/assets/room/furnitures/plant2/plant2.blend new file mode 100644 index 000000000..6592c5d98 Binary files /dev/null and b/src/client/assets/room/furnitures/plant2/plant2.blend differ diff --git a/src/client/assets/room/furnitures/plant2/plant2.glb b/src/client/assets/room/furnitures/plant2/plant2.glb new file mode 100644 index 000000000..223e6f583 Binary files /dev/null and b/src/client/assets/room/furnitures/plant2/plant2.glb differ diff --git a/src/client/assets/room/furnitures/plant2/soil.png b/src/client/assets/room/furnitures/plant2/soil.png new file mode 100644 index 000000000..e79ccd240 Binary files /dev/null and b/src/client/assets/room/furnitures/plant2/soil.png differ diff --git a/src/client/assets/room/furnitures/poster-h/poster-h.blend b/src/client/assets/room/furnitures/poster-h/poster-h.blend new file mode 100644 index 000000000..40f944f3c Binary files /dev/null and b/src/client/assets/room/furnitures/poster-h/poster-h.blend differ diff --git a/src/client/assets/room/furnitures/poster-h/poster-h.glb b/src/client/assets/room/furnitures/poster-h/poster-h.glb new file mode 100644 index 000000000..c6032c100 Binary files /dev/null and b/src/client/assets/room/furnitures/poster-h/poster-h.glb differ diff --git a/src/client/assets/room/furnitures/poster-h/uv.png b/src/client/assets/room/furnitures/poster-h/uv.png new file mode 100644 index 000000000..f854231e0 Binary files /dev/null and b/src/client/assets/room/furnitures/poster-h/uv.png differ diff --git a/src/client/assets/room/furnitures/poster-v/poster-v.blend b/src/client/assets/room/furnitures/poster-v/poster-v.blend new file mode 100644 index 000000000..07fe97163 Binary files /dev/null and b/src/client/assets/room/furnitures/poster-v/poster-v.blend differ diff --git a/src/client/assets/room/furnitures/poster-v/poster-v.glb b/src/client/assets/room/furnitures/poster-v/poster-v.glb new file mode 100644 index 000000000..6e3782f19 Binary files /dev/null and b/src/client/assets/room/furnitures/poster-v/poster-v.glb differ diff --git a/src/client/assets/room/furnitures/poster-v/uv.png b/src/client/assets/room/furnitures/poster-v/uv.png new file mode 100644 index 000000000..7bb2bf809 Binary files /dev/null and b/src/client/assets/room/furnitures/poster-v/uv.png differ diff --git a/src/client/assets/room/furnitures/pudding/pudding.blend b/src/client/assets/room/furnitures/pudding/pudding.blend new file mode 100644 index 000000000..bba40ce16 Binary files /dev/null and b/src/client/assets/room/furnitures/pudding/pudding.blend differ diff --git a/src/client/assets/room/furnitures/pudding/pudding.glb b/src/client/assets/room/furnitures/pudding/pudding.glb new file mode 100644 index 000000000..06c9ed80c Binary files /dev/null and b/src/client/assets/room/furnitures/pudding/pudding.glb differ diff --git a/src/client/assets/room/furnitures/rubik-cube/rubik-cube.blend b/src/client/assets/room/furnitures/rubik-cube/rubik-cube.blend new file mode 100644 index 000000000..6c09067e7 Binary files /dev/null and b/src/client/assets/room/furnitures/rubik-cube/rubik-cube.blend differ diff --git a/src/client/assets/room/furnitures/rubik-cube/rubik-cube.glb b/src/client/assets/room/furnitures/rubik-cube/rubik-cube.glb new file mode 100644 index 000000000..d640df9b0 Binary files /dev/null and b/src/client/assets/room/furnitures/rubik-cube/rubik-cube.glb differ diff --git a/src/client/assets/room/furnitures/server/rack-uv.png b/src/client/assets/room/furnitures/server/rack-uv.png new file mode 100644 index 000000000..65bdb0ffd Binary files /dev/null and b/src/client/assets/room/furnitures/server/rack-uv.png differ diff --git a/src/client/assets/room/furnitures/server/rack.png b/src/client/assets/room/furnitures/server/rack.png new file mode 100644 index 000000000..b851295cf Binary files /dev/null and b/src/client/assets/room/furnitures/server/rack.png differ diff --git a/src/client/assets/room/furnitures/server/server.blend b/src/client/assets/room/furnitures/server/server.blend new file mode 100644 index 000000000..6675dfbdc Binary files /dev/null and b/src/client/assets/room/furnitures/server/server.blend differ diff --git a/src/client/assets/room/furnitures/server/server.glb b/src/client/assets/room/furnitures/server/server.glb new file mode 100644 index 000000000..a8b530a2d Binary files /dev/null and b/src/client/assets/room/furnitures/server/server.glb differ diff --git a/src/client/assets/room/furnitures/server/server.png b/src/client/assets/room/furnitures/server/server.png new file mode 100644 index 000000000..8e9a0d716 Binary files /dev/null and b/src/client/assets/room/furnitures/server/server.png differ diff --git a/src/client/assets/room/furnitures/server/uv.png b/src/client/assets/room/furnitures/server/uv.png new file mode 100644 index 000000000..ca2e747d1 Binary files /dev/null and b/src/client/assets/room/furnitures/server/uv.png differ diff --git a/src/client/assets/room/furnitures/sofa/sofa.blend b/src/client/assets/room/furnitures/sofa/sofa.blend new file mode 100644 index 000000000..fb5aa51a2 Binary files /dev/null and b/src/client/assets/room/furnitures/sofa/sofa.blend differ diff --git a/src/client/assets/room/furnitures/sofa/sofa.glb b/src/client/assets/room/furnitures/sofa/sofa.glb new file mode 100644 index 000000000..6ce77d94a Binary files /dev/null and b/src/client/assets/room/furnitures/sofa/sofa.glb differ diff --git a/src/client/assets/room/furnitures/spiral/spiral.blend b/src/client/assets/room/furnitures/spiral/spiral.blend new file mode 100644 index 000000000..9d3be77bc Binary files /dev/null and b/src/client/assets/room/furnitures/spiral/spiral.blend differ diff --git a/src/client/assets/room/furnitures/spiral/spiral.glb b/src/client/assets/room/furnitures/spiral/spiral.glb new file mode 100644 index 000000000..ee8e3c23b Binary files /dev/null and b/src/client/assets/room/furnitures/spiral/spiral.glb differ diff --git a/src/client/assets/room/furnitures/tv/screen-uv.png b/src/client/assets/room/furnitures/tv/screen-uv.png new file mode 100644 index 000000000..4bb74f031 Binary files /dev/null and b/src/client/assets/room/furnitures/tv/screen-uv.png differ diff --git a/src/client/assets/room/furnitures/tv/tv.blend b/src/client/assets/room/furnitures/tv/tv.blend new file mode 100644 index 000000000..490e298e7 Binary files /dev/null and b/src/client/assets/room/furnitures/tv/tv.blend differ diff --git a/src/client/assets/room/furnitures/tv/tv.glb b/src/client/assets/room/furnitures/tv/tv.glb new file mode 100644 index 000000000..b9bd23896 Binary files /dev/null and b/src/client/assets/room/furnitures/tv/tv.glb differ diff --git a/src/client/assets/room/furnitures/wall-clock/wall-clock.blend b/src/client/assets/room/furnitures/wall-clock/wall-clock.blend new file mode 100644 index 000000000..0a61c8f01 Binary files /dev/null and b/src/client/assets/room/furnitures/wall-clock/wall-clock.blend differ diff --git a/src/client/assets/room/furnitures/wall-clock/wall-clock.glb b/src/client/assets/room/furnitures/wall-clock/wall-clock.glb new file mode 100644 index 000000000..b9f0093a8 Binary files /dev/null and b/src/client/assets/room/furnitures/wall-clock/wall-clock.glb differ diff --git a/src/client/assets/room/rooms/default/default.blend b/src/client/assets/room/rooms/default/default.blend new file mode 100644 index 000000000..661154724 Binary files /dev/null and b/src/client/assets/room/rooms/default/default.blend differ diff --git a/src/client/assets/room/rooms/default/default.glb b/src/client/assets/room/rooms/default/default.glb new file mode 100644 index 000000000..3d378deee Binary files /dev/null and b/src/client/assets/room/rooms/default/default.glb differ diff --git a/src/client/assets/room/rooms/washitsu/husuma-uv.png b/src/client/assets/room/rooms/washitsu/husuma-uv.png new file mode 100644 index 000000000..ae2fca391 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/husuma-uv.png differ diff --git a/src/client/assets/room/rooms/washitsu/husuma.png b/src/client/assets/room/rooms/washitsu/husuma.png new file mode 100644 index 000000000..084cbed67 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/husuma.png differ diff --git a/src/client/assets/room/rooms/washitsu/tatami-single1600.png b/src/client/assets/room/rooms/washitsu/tatami-single1600.png new file mode 100644 index 000000000..c0e684d74 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/tatami-single1600.png differ diff --git a/src/client/assets/room/rooms/washitsu/tatami-uv.png b/src/client/assets/room/rooms/washitsu/tatami-uv.png new file mode 100644 index 000000000..5b16c6609 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/tatami-uv.png differ diff --git a/src/client/assets/room/rooms/washitsu/tatami.afdesign b/src/client/assets/room/rooms/washitsu/tatami.afdesign new file mode 100644 index 000000000..9300a2695 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/tatami.afdesign differ diff --git a/src/client/assets/room/rooms/washitsu/tatami.png b/src/client/assets/room/rooms/washitsu/tatami.png new file mode 100644 index 000000000..8894d040a Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/tatami.png differ diff --git a/src/client/assets/room/rooms/washitsu/washitsu.blend b/src/client/assets/room/rooms/washitsu/washitsu.blend new file mode 100644 index 000000000..84dc11374 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/washitsu.blend differ diff --git a/src/client/assets/room/rooms/washitsu/washitsu.glb b/src/client/assets/room/rooms/washitsu/washitsu.glb new file mode 100644 index 000000000..5b4767bc7 Binary files /dev/null and b/src/client/assets/room/rooms/washitsu/washitsu.glb differ diff --git a/packages/client/assets/sounds/aisha/1.mp3 b/src/client/assets/sounds/aisha/1.mp3 similarity index 100% rename from packages/client/assets/sounds/aisha/1.mp3 rename to src/client/assets/sounds/aisha/1.mp3 diff --git a/packages/client/assets/sounds/aisha/2.mp3 b/src/client/assets/sounds/aisha/2.mp3 similarity index 100% rename from packages/client/assets/sounds/aisha/2.mp3 rename to src/client/assets/sounds/aisha/2.mp3 diff --git a/packages/client/assets/sounds/aisha/3.mp3 b/src/client/assets/sounds/aisha/3.mp3 similarity index 100% rename from packages/client/assets/sounds/aisha/3.mp3 rename to src/client/assets/sounds/aisha/3.mp3 diff --git a/packages/client/assets/sounds/noizenecio/kick_gaba.mp3 b/src/client/assets/sounds/noizenecio/kick_gaba.mp3 similarity index 100% rename from packages/client/assets/sounds/noizenecio/kick_gaba.mp3 rename to src/client/assets/sounds/noizenecio/kick_gaba.mp3 diff --git a/packages/client/assets/sounds/noizenecio/kick_gaba2.mp3 b/src/client/assets/sounds/noizenecio/kick_gaba2.mp3 similarity index 100% rename from packages/client/assets/sounds/noizenecio/kick_gaba2.mp3 rename to src/client/assets/sounds/noizenecio/kick_gaba2.mp3 diff --git a/packages/client/assets/sounds/syuilo/down.mp3 b/src/client/assets/sounds/syuilo/down.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/down.mp3 rename to src/client/assets/sounds/syuilo/down.mp3 diff --git a/packages/client/assets/sounds/syuilo/pirori-square-wet.mp3 b/src/client/assets/sounds/syuilo/pirori-square-wet.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/pirori-square-wet.mp3 rename to src/client/assets/sounds/syuilo/pirori-square-wet.mp3 diff --git a/packages/client/assets/sounds/syuilo/pirori-wet.mp3 b/src/client/assets/sounds/syuilo/pirori-wet.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/pirori-wet.mp3 rename to src/client/assets/sounds/syuilo/pirori-wet.mp3 diff --git a/packages/client/assets/sounds/syuilo/pirori.mp3 b/src/client/assets/sounds/syuilo/pirori.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/pirori.mp3 rename to src/client/assets/sounds/syuilo/pirori.mp3 diff --git a/packages/client/assets/sounds/syuilo/poi1.mp3 b/src/client/assets/sounds/syuilo/poi1.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/poi1.mp3 rename to src/client/assets/sounds/syuilo/poi1.mp3 diff --git a/packages/client/assets/sounds/syuilo/poi2.mp3 b/src/client/assets/sounds/syuilo/poi2.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/poi2.mp3 rename to src/client/assets/sounds/syuilo/poi2.mp3 diff --git a/packages/client/assets/sounds/syuilo/pope1.mp3 b/src/client/assets/sounds/syuilo/pope1.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/pope1.mp3 rename to src/client/assets/sounds/syuilo/pope1.mp3 diff --git a/packages/client/assets/sounds/syuilo/pope2.mp3 b/src/client/assets/sounds/syuilo/pope2.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/pope2.mp3 rename to src/client/assets/sounds/syuilo/pope2.mp3 diff --git a/packages/client/assets/sounds/syuilo/popo.mp3 b/src/client/assets/sounds/syuilo/popo.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/popo.mp3 rename to src/client/assets/sounds/syuilo/popo.mp3 diff --git a/packages/client/assets/sounds/syuilo/reverved.mp3 b/src/client/assets/sounds/syuilo/reverved.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/reverved.mp3 rename to src/client/assets/sounds/syuilo/reverved.mp3 diff --git a/packages/client/assets/sounds/syuilo/ryukyu.mp3 b/src/client/assets/sounds/syuilo/ryukyu.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/ryukyu.mp3 rename to src/client/assets/sounds/syuilo/ryukyu.mp3 diff --git a/packages/client/assets/sounds/syuilo/square-pico.mp3 b/src/client/assets/sounds/syuilo/square-pico.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/square-pico.mp3 rename to src/client/assets/sounds/syuilo/square-pico.mp3 diff --git a/packages/client/assets/sounds/syuilo/triple.mp3 b/src/client/assets/sounds/syuilo/triple.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/triple.mp3 rename to src/client/assets/sounds/syuilo/triple.mp3 diff --git a/packages/client/assets/sounds/syuilo/up.mp3 b/src/client/assets/sounds/syuilo/up.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/up.mp3 rename to src/client/assets/sounds/syuilo/up.mp3 diff --git a/packages/client/assets/sounds/syuilo/waon.mp3 b/src/client/assets/sounds/syuilo/waon.mp3 similarity index 100% rename from packages/client/assets/sounds/syuilo/waon.mp3 rename to src/client/assets/sounds/syuilo/waon.mp3 diff --git a/packages/client/assets/unread.svg b/src/client/assets/unread.svg similarity index 100% rename from packages/client/assets/unread.svg rename to src/client/assets/unread.svg diff --git a/src/client/components/abuse-report-window.vue b/src/client/components/abuse-report-window.vue new file mode 100644 index 000000000..1d87cb180 --- /dev/null +++ b/src/client/components/abuse-report-window.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/client/components/acct.vue b/src/client/components/acct.vue new file mode 100644 index 000000000..9d434de6c --- /dev/null +++ b/src/client/components/acct.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/client/components/analog-clock.vue b/src/client/components/analog-clock.vue new file mode 100644 index 000000000..b3fb7a515 --- /dev/null +++ b/src/client/components/analog-clock.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue new file mode 100644 index 000000000..0b81c5872 --- /dev/null +++ b/src/client/components/autocomplete.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/src/client/components/avatar.vue b/src/client/components/avatar.vue new file mode 100644 index 000000000..d90607bb8 --- /dev/null +++ b/src/client/components/avatar.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/client/components/avatars.vue b/src/client/components/avatars.vue new file mode 100644 index 000000000..8bf64d79b --- /dev/null +++ b/src/client/components/avatars.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/client/components/captcha.vue b/src/client/components/captcha.vue new file mode 100644 index 000000000..94a13a8b5 --- /dev/null +++ b/src/client/components/captcha.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/client/components/channel-follow-button.vue b/src/client/components/channel-follow-button.vue new file mode 100644 index 000000000..c59c319fd --- /dev/null +++ b/src/client/components/channel-follow-button.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/src/client/components/channel-preview.vue b/src/client/components/channel-preview.vue new file mode 100644 index 000000000..41be1c296 --- /dev/null +++ b/src/client/components/channel-preview.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/client/components/code-core.vue b/src/client/components/code-core.vue new file mode 100644 index 000000000..9cff7b444 --- /dev/null +++ b/src/client/components/code-core.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/client/components/code.vue b/src/client/components/code.vue new file mode 100644 index 000000000..f5d6c5673 --- /dev/null +++ b/src/client/components/code.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/client/components/cw-button.vue b/src/client/components/cw-button.vue new file mode 100644 index 000000000..d052c410d --- /dev/null +++ b/src/client/components/cw-button.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/client/components/date-separated-list.vue b/src/client/components/date-separated-list.vue new file mode 100644 index 000000000..ef9629746 --- /dev/null +++ b/src/client/components/date-separated-list.vue @@ -0,0 +1,135 @@ + + + + + + + diff --git a/src/client/components/dialog.vue b/src/client/components/dialog.vue new file mode 100644 index 000000000..f8d700202 --- /dev/null +++ b/src/client/components/dialog.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/client/components/drive-file-thumbnail.vue b/src/client/components/drive-file-thumbnail.vue new file mode 100644 index 000000000..7615014ba --- /dev/null +++ b/src/client/components/drive-file-thumbnail.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/client/components/drive-select-dialog.vue b/src/client/components/drive-select-dialog.vue new file mode 100644 index 000000000..5221bdbb6 --- /dev/null +++ b/src/client/components/drive-select-dialog.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/client/components/drive-window.vue b/src/client/components/drive-window.vue new file mode 100644 index 000000000..0806fc180 --- /dev/null +++ b/src/client/components/drive-window.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/client/components/drive.file.vue b/src/client/components/drive.file.vue new file mode 100644 index 000000000..261bbc83e --- /dev/null +++ b/src/client/components/drive.file.vue @@ -0,0 +1,352 @@ + + + + + diff --git a/src/client/components/drive.folder.vue b/src/client/components/drive.folder.vue new file mode 100644 index 000000000..ab678217b --- /dev/null +++ b/src/client/components/drive.folder.vue @@ -0,0 +1,335 @@ + + + + + diff --git a/src/client/components/drive.nav-folder.vue b/src/client/components/drive.nav-folder.vue new file mode 100644 index 000000000..16ebc433f --- /dev/null +++ b/src/client/components/drive.nav-folder.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue new file mode 100644 index 000000000..f25d25da0 --- /dev/null +++ b/src/client/components/drive.vue @@ -0,0 +1,777 @@ + + + + + diff --git a/packages/client/src/components/global/MkEllipsis.vue b/src/client/components/ellipsis.vue similarity index 100% rename from packages/client/src/components/global/MkEllipsis.vue rename to src/client/components/ellipsis.vue diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue new file mode 100644 index 000000000..30d0e060b --- /dev/null +++ b/src/client/components/emoji-picker.vue @@ -0,0 +1,533 @@ + + + + + diff --git a/src/client/components/emoji.vue b/src/client/components/emoji.vue new file mode 100644 index 000000000..b2bf7f016 --- /dev/null +++ b/src/client/components/emoji.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/client/components/error.vue b/src/client/components/error.vue new file mode 100644 index 000000000..cac24efc8 --- /dev/null +++ b/src/client/components/error.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/client/components/file-type-icon.vue b/src/client/components/file-type-icon.vue new file mode 100644 index 000000000..ec29d5c88 --- /dev/null +++ b/src/client/components/file-type-icon.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/client/components/follow-button.vue b/src/client/components/follow-button.vue new file mode 100644 index 000000000..3b8f7454c --- /dev/null +++ b/src/client/components/follow-button.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/src/client/components/form-dialog.vue b/src/client/components/form-dialog.vue new file mode 100644 index 000000000..0dc02258a --- /dev/null +++ b/src/client/components/form-dialog.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/client/components/formula-core.vue b/src/client/components/formula-core.vue new file mode 100644 index 000000000..29c049297 --- /dev/null +++ b/src/client/components/formula-core.vue @@ -0,0 +1,34 @@ + + + + + + diff --git a/src/client/components/formula.vue b/src/client/components/formula.vue new file mode 100644 index 000000000..fbb40bace --- /dev/null +++ b/src/client/components/formula.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/client/components/google.vue b/src/client/components/google.vue new file mode 100644 index 000000000..bec670ac5 --- /dev/null +++ b/src/client/components/google.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/client/components/image-viewer.vue b/src/client/components/image-viewer.vue new file mode 100644 index 000000000..320df3050 --- /dev/null +++ b/src/client/components/image-viewer.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/client/components/img-with-blurhash.vue b/src/client/components/img-with-blurhash.vue new file mode 100644 index 000000000..7606708e9 --- /dev/null +++ b/src/client/components/img-with-blurhash.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/client/components/index.ts b/src/client/components/index.ts new file mode 100644 index 000000000..92a29ded1 --- /dev/null +++ b/src/client/components/index.ts @@ -0,0 +1,27 @@ +import { App } from 'vue'; + +import mfm from './misskey-flavored-markdown.vue'; +import a from './ui/a.vue'; +import acct from './acct.vue'; +import avatar from './avatar.vue'; +import emoji from './emoji.vue'; +import userName from './user-name.vue'; +import ellipsis from './ellipsis.vue'; +import time from './time.vue'; +import url from './url.vue'; +import loading from './loading.vue'; +import error from './error.vue'; + +export default function(app: App) { + app.component('Mfm', mfm); + app.component('MkA', a); + app.component('MkAcct', acct); + app.component('MkAvatar', avatar); + app.component('MkEmoji', emoji); + app.component('MkUserName', userName); + app.component('MkEllipsis', ellipsis); + app.component('MkTime', time); + app.component('MkUrl', url); + app.component('MkLoading', loading); + app.component('MkError', error); +} diff --git a/src/client/components/instance-stats.vue b/src/client/components/instance-stats.vue new file mode 100644 index 000000000..dcb3c75fa --- /dev/null +++ b/src/client/components/instance-stats.vue @@ -0,0 +1,721 @@ + + + + + diff --git a/src/client/components/instance-ticker.vue b/src/client/components/instance-ticker.vue new file mode 100644 index 000000000..1ce5a1c2c --- /dev/null +++ b/src/client/components/instance-ticker.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/client/components/launch-pad.vue b/src/client/components/launch-pad.vue new file mode 100644 index 000000000..d09a4002d --- /dev/null +++ b/src/client/components/launch-pad.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/client/components/link.vue b/src/client/components/link.vue new file mode 100644 index 000000000..f51773dc4 --- /dev/null +++ b/src/client/components/link.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/client/components/loading.vue b/src/client/components/loading.vue new file mode 100644 index 000000000..b4693258b --- /dev/null +++ b/src/client/components/loading.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/client/components/media-banner.vue b/src/client/components/media-banner.vue new file mode 100644 index 000000000..dd95b66de --- /dev/null +++ b/src/client/components/media-banner.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/client/components/media-image.vue b/src/client/components/media-image.vue new file mode 100644 index 000000000..64e3efab3 --- /dev/null +++ b/src/client/components/media-image.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/client/components/media-list.vue b/src/client/components/media-list.vue new file mode 100644 index 000000000..36fbb4bd0 --- /dev/null +++ b/src/client/components/media-list.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/client/components/media-video.vue b/src/client/components/media-video.vue new file mode 100644 index 000000000..21faddf73 --- /dev/null +++ b/src/client/components/media-video.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/client/components/mention.vue b/src/client/components/mention.vue new file mode 100644 index 000000000..85f8436a4 --- /dev/null +++ b/src/client/components/mention.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/client/components/mfm.ts b/src/client/components/mfm.ts new file mode 100644 index 000000000..1960461a1 --- /dev/null +++ b/src/client/components/mfm.ts @@ -0,0 +1,258 @@ +import { VNode, defineComponent, h } from 'vue'; +import { MfmForest } from '../../mfm/prelude'; +import { parse, parsePlain } from '../../mfm/parse'; +import MkUrl from './url.vue'; +import MkLink from './link.vue'; +import MkMention from './mention.vue'; +import MkEmoji from './emoji.vue'; +import { concat } from '../../prelude/array'; +import MkFormula from './formula.vue'; +import MkCode from './code.vue'; +import MkGoogle from './google.vue'; +import MkA from './ui/a.vue'; +import { host } from '@/config'; + +export default defineComponent({ + props: { + text: { + type: String, + required: true + }, + plain: { + type: Boolean, + default: false + }, + nowrap: { + type: Boolean, + default: false + }, + author: { + type: Object, + default: null + }, + i: { + type: Object, + default: null + }, + customEmojis: { + required: false, + }, + isNote: { + type: Boolean, + default: true + }, + }, + + render() { + if (this.text == null || this.text == '') return; + + const ast = (this.plain ? parsePlain : parse)(this.text); + + const genEl = (ast: MfmForest) => concat(ast.map((token): VNode[] => { + switch (token.node.type) { + case 'text': { + const text = token.node.props.text.replace(/(\r\n|\n|\r)/g, '\n'); + + if (!this.plain) { + const x = text.split('\n') + .map(t => t == '' ? [h('br')] : [t, h('br')]); + x[x.length - 1].pop(); + return x; + } else { + return [text.replace(/\n/g, ' ')]; + } + } + + case 'bold': { + return [h('b', genEl(token.children))]; + } + + case 'strike': { + return [h('del', genEl(token.children))]; + } + + case 'italic': { + return h('i', { + style: 'font-style: oblique;' + }, genEl(token.children)); + } + + case 'fn': { + // TODO: CSSを文字列で組み立てていくと token.node.props.args.~~~ 経由でCSSインジェクションできるのでよしなにやる + let style; + switch (token.node.props.name) { + case 'tada': { + style = `font-size: 150%;` + (this.$store.state.device.animatedMfm ? 'animation: tada 1s linear infinite both;' : ''); + break; + } + case 'jelly': { + const speed = token.node.props.args.speed || '1s'; + style = (this.$store.state.device.animatedMfm ? `animation: mfm-rubberBand ${speed} linear infinite both;` : ''); + break; + } + case 'twitch': { + const speed = token.node.props.args.speed || '0.5s'; + style = this.$store.state.device.animatedMfm ? `animation: mfm-twitch ${speed} ease infinite;` : ''; + break; + } + case 'shake': { + const speed = token.node.props.args.speed || '0.5s'; + style = this.$store.state.device.animatedMfm ? `animation: mfm-shake ${speed} ease infinite;` : ''; + break; + } + case 'spin': { + const direction = + token.node.props.args.left ? 'reverse' : + token.node.props.args.alternate ? 'alternate' : + 'normal'; + const anime = + token.node.props.args.x ? 'mfm-spinX' : + token.node.props.args.y ? 'mfm-spinY' : + 'mfm-spin'; + const speed = token.node.props.args.speed || '1.5s'; + style = this.$store.state.device.animatedMfm ? `animation: ${anime} ${speed} linear infinite; animation-direction: ${direction};` : ''; + break; + } + case 'jump': { + style = this.$store.state.device.animatedMfm ? 'animation: mfm-jump 0.75s linear infinite;' : ''; + break; + } + case 'bounce': { + style = this.$store.state.device.animatedMfm ? 'animation: mfm-bounce 0.75s linear infinite; transform-origin: center bottom;' : ''; + break; + } + case 'flip': { + const transform = + (token.node.props.args.h && token.node.props.args.v) ? 'scale(-1, -1)' : + token.node.props.args.v ? 'scaleY(-1)' : + 'scaleX(-1)'; + style = `transform: ${transform};`; + break; + } + } + if (style == null) { + return h('span', {}, ['[', token.node.props.name, ...genEl(token.children), ']']); + } else { + return h('span', { + style: 'display: inline-block;' + style, + }, genEl(token.children)); + } + } + + case 'small': { + return [h('small', { + style: 'opacity: 0.7;' + }, genEl(token.children))]; + } + + case 'center': { + return [h('div', { + style: 'text-align:center;' + }, genEl(token.children))]; + } + + case 'url': { + return [h(MkUrl, { + key: Math.random(), + url: token.node.props.url, + rel: 'nofollow noopener', + })]; + } + + case 'link': { + return [h(MkLink, { + key: Math.random(), + url: token.node.props.url, + rel: 'nofollow noopener', + }, genEl(token.children))]; + } + + case 'mention': { + return [h(MkMention, { + key: Math.random(), + host: (token.node.props.host == null && this.author && this.author.host != null ? this.author.host : token.node.props.host) || host, + username: token.node.props.username + })]; + } + + case 'hashtag': { + return [h(MkA, { + key: Math.random(), + to: this.isNote ? `/tags/${encodeURIComponent(token.node.props.hashtag)}` : `/explore/tags/${encodeURIComponent(token.node.props.hashtag)}`, + style: 'color:var(--hashtag);' + }, `#${token.node.props.hashtag}`)]; + } + + case 'blockCode': { + return [h(MkCode, { + key: Math.random(), + code: token.node.props.code, + lang: token.node.props.lang, + })]; + } + + case 'inlineCode': { + return [h(MkCode, { + key: Math.random(), + code: token.node.props.code, + lang: token.node.props.lang, + inline: true + })]; + } + + case 'quote': { + if (!this.nowrap) { + return [h('div', { + class: 'quote' + }, genEl(token.children))]; + } else { + return [h('span', { + class: 'quote' + }, genEl(token.children))]; + } + } + + case 'emoji': { + return [h(MkEmoji, { + key: Math.random(), + emoji: token.node.props.name ? `:${token.node.props.name}:` : token.node.props.emoji, + customEmojis: this.customEmojis, + normal: this.plain + })]; + } + + case 'mathInline': { + return [h(MkFormula, { + key: Math.random(), + formula: token.node.props.formula, + block: false + })]; + } + + case 'mathBlock': { + return [h(MkFormula, { + key: Math.random(), + formula: token.node.props.formula, + block: true + })]; + } + + case 'search': { + return [h(MkGoogle, { + key: Math.random(), + q: token.node.props.query + })]; + } + + default: { + console.error('unrecognized ast type:', token.node.type); + + return []; + } + } + })); + + // Parse ast to DOM + return h('span', genEl(ast)); + } +}); diff --git a/src/client/components/mini-chart.vue b/src/client/components/mini-chart.vue new file mode 100644 index 000000000..2eb9ae8cb --- /dev/null +++ b/src/client/components/mini-chart.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/client/components/misskey-flavored-markdown.vue b/src/client/components/misskey-flavored-markdown.vue new file mode 100644 index 000000000..3123d7aa8 --- /dev/null +++ b/src/client/components/misskey-flavored-markdown.vue @@ -0,0 +1,143 @@ + + + + + + + diff --git a/src/client/components/note-header.vue b/src/client/components/note-header.vue new file mode 100644 index 000000000..1f7a07bac --- /dev/null +++ b/src/client/components/note-header.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/client/components/note-preview.vue b/src/client/components/note-preview.vue new file mode 100644 index 000000000..4ea97d17e --- /dev/null +++ b/src/client/components/note-preview.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/client/components/note.sub.vue b/src/client/components/note.sub.vue new file mode 100644 index 000000000..2ce045a34 --- /dev/null +++ b/src/client/components/note.sub.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/client/components/note.vue b/src/client/components/note.vue new file mode 100644 index 000000000..071acf7c9 --- /dev/null +++ b/src/client/components/note.vue @@ -0,0 +1,1136 @@ + + + + + diff --git a/src/client/components/notes.vue b/src/client/components/notes.vue new file mode 100644 index 000000000..649e7c4cf --- /dev/null +++ b/src/client/components/notes.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/client/components/notification-setting-window.vue b/src/client/components/notification-setting-window.vue new file mode 100644 index 000000000..e6d109e3a --- /dev/null +++ b/src/client/components/notification-setting-window.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue new file mode 100644 index 000000000..c85457a56 --- /dev/null +++ b/src/client/components/notification.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/src/client/components/notifications.vue b/src/client/components/notifications.vue new file mode 100644 index 000000000..3eedf8655 --- /dev/null +++ b/src/client/components/notifications.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/client/components/page-preview.vue b/src/client/components/page-preview.vue new file mode 100644 index 000000000..d59813e00 --- /dev/null +++ b/src/client/components/page-preview.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/client/components/page-window.vue b/src/client/components/page-window.vue new file mode 100644 index 000000000..7033c872e --- /dev/null +++ b/src/client/components/page-window.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/packages/client/src/components/page/page.block.vue b/src/client/components/page/page.block.vue similarity index 75% rename from packages/client/src/components/page/page.block.vue rename to src/client/components/page/page.block.vue index d7984afac..be933c862 100644 --- a/packages/client/src/components/page/page.block.vue +++ b/src/client/components/page/page.block.vue @@ -1,9 +1,9 @@ + + diff --git a/src/client/components/page/page.canvas.vue b/src/client/components/page/page.canvas.vue new file mode 100644 index 000000000..d3bf5c1de --- /dev/null +++ b/src/client/components/page/page.canvas.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/client/components/page/page.counter.vue b/src/client/components/page/page.counter.vue new file mode 100644 index 000000000..9eee47c4e --- /dev/null +++ b/src/client/components/page/page.counter.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/client/components/page/page.if.vue b/src/client/components/page/page.if.vue new file mode 100644 index 000000000..64081d5b5 --- /dev/null +++ b/src/client/components/page/page.if.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/client/components/page/page.image.vue b/src/client/components/page/page.image.vue new file mode 100644 index 000000000..ddcce5c37 --- /dev/null +++ b/src/client/components/page/page.image.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/client/components/page/page.note.vue b/src/client/components/page/page.note.vue new file mode 100644 index 000000000..b4b6a9efc --- /dev/null +++ b/src/client/components/page/page.note.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/client/components/page/page.number-input.vue b/src/client/components/page/page.number-input.vue new file mode 100644 index 000000000..cf4000010 --- /dev/null +++ b/src/client/components/page/page.number-input.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/client/components/page/page.post.vue b/src/client/components/page/page.post.vue new file mode 100644 index 000000000..ac8be4a39 --- /dev/null +++ b/src/client/components/page/page.post.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/client/components/page/page.radio-button.vue b/src/client/components/page/page.radio-button.vue new file mode 100644 index 000000000..9341c2421 --- /dev/null +++ b/src/client/components/page/page.radio-button.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/client/components/page/page.section.vue b/src/client/components/page/page.section.vue new file mode 100644 index 000000000..9f05f3a0c --- /dev/null +++ b/src/client/components/page/page.section.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/client/components/page/page.switch.vue b/src/client/components/page/page.switch.vue new file mode 100644 index 000000000..33e437169 --- /dev/null +++ b/src/client/components/page/page.switch.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/client/components/page/page.text-input.vue b/src/client/components/page/page.text-input.vue new file mode 100644 index 000000000..f0fe70e33 --- /dev/null +++ b/src/client/components/page/page.text-input.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/client/components/page/page.text.vue b/src/client/components/page/page.text.vue new file mode 100644 index 000000000..fff840f74 --- /dev/null +++ b/src/client/components/page/page.text.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/client/components/page/page.textarea-input.vue b/src/client/components/page/page.textarea-input.vue new file mode 100644 index 000000000..9e3283aa0 --- /dev/null +++ b/src/client/components/page/page.textarea-input.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/client/components/page/page.textarea.vue b/src/client/components/page/page.textarea.vue new file mode 100644 index 000000000..205448977 --- /dev/null +++ b/src/client/components/page/page.textarea.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/client/components/page/page.vue b/src/client/components/page/page.vue new file mode 100644 index 000000000..b95777947 --- /dev/null +++ b/src/client/components/page/page.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/client/components/particle.vue b/src/client/components/particle.vue new file mode 100644 index 000000000..d82705c1e --- /dev/null +++ b/src/client/components/particle.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/client/components/poll-editor.vue b/src/client/components/poll-editor.vue new file mode 100644 index 000000000..8d7e16387 --- /dev/null +++ b/src/client/components/poll-editor.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/src/client/components/poll.vue b/src/client/components/poll.vue new file mode 100644 index 000000000..071e3d539 --- /dev/null +++ b/src/client/components/poll.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/client/components/post-form-attaches.vue b/src/client/components/post-form-attaches.vue new file mode 100644 index 000000000..6f3d1bca6 --- /dev/null +++ b/src/client/components/post-form-attaches.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/client/components/post-form-dialog.vue b/src/client/components/post-form-dialog.vue new file mode 100644 index 000000000..ae1cd7f01 --- /dev/null +++ b/src/client/components/post-form-dialog.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue new file mode 100644 index 000000000..020b925fb --- /dev/null +++ b/src/client/components/post-form.vue @@ -0,0 +1,822 @@ + + + + + diff --git a/src/client/components/reaction-icon.vue b/src/client/components/reaction-icon.vue new file mode 100644 index 000000000..c0ec955e3 --- /dev/null +++ b/src/client/components/reaction-icon.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/client/components/reactions-viewer.details.vue b/src/client/components/reactions-viewer.details.vue new file mode 100644 index 000000000..6e7da58e2 --- /dev/null +++ b/src/client/components/reactions-viewer.details.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/client/components/reactions-viewer.reaction.vue b/src/client/components/reactions-viewer.reaction.vue new file mode 100644 index 000000000..62128d7e6 --- /dev/null +++ b/src/client/components/reactions-viewer.reaction.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/src/client/components/reactions-viewer.vue b/src/client/components/reactions-viewer.vue new file mode 100644 index 000000000..df10294d0 --- /dev/null +++ b/src/client/components/reactions-viewer.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/client/components/remote-caution.vue b/src/client/components/remote-caution.vue new file mode 100644 index 000000000..fe65bcd9c --- /dev/null +++ b/src/client/components/remote-caution.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/client/components/sample.vue b/src/client/components/sample.vue new file mode 100644 index 000000000..2e21b785d --- /dev/null +++ b/src/client/components/sample.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/client/components/sidebar.vue b/src/client/components/sidebar.vue new file mode 100644 index 000000000..3d4f9f504 --- /dev/null +++ b/src/client/components/sidebar.vue @@ -0,0 +1,464 @@ + + + + + diff --git a/src/client/components/signin-dialog.vue b/src/client/components/signin-dialog.vue new file mode 100644 index 000000000..5726cf6e5 --- /dev/null +++ b/src/client/components/signin-dialog.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/client/components/signin.vue b/src/client/components/signin.vue new file mode 100755 index 000000000..5052902ac --- /dev/null +++ b/src/client/components/signin.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/client/components/signup-dialog.vue b/src/client/components/signup-dialog.vue new file mode 100644 index 000000000..eb0c40523 --- /dev/null +++ b/src/client/components/signup-dialog.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/client/components/signup.vue b/src/client/components/signup.vue new file mode 100644 index 000000000..333733043 --- /dev/null +++ b/src/client/components/signup.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/client/components/sub-note-content.vue b/src/client/components/sub-note-content.vue new file mode 100644 index 000000000..cb65a7649 --- /dev/null +++ b/src/client/components/sub-note-content.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/client/components/tab.vue b/src/client/components/tab.vue new file mode 100644 index 000000000..aca4d32a2 --- /dev/null +++ b/src/client/components/tab.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/client/components/taskmanager.api-window.vue b/src/client/components/taskmanager.api-window.vue new file mode 100644 index 000000000..0df3f75fa --- /dev/null +++ b/src/client/components/taskmanager.api-window.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/client/components/taskmanager.vue b/src/client/components/taskmanager.vue new file mode 100644 index 000000000..92c56442c --- /dev/null +++ b/src/client/components/taskmanager.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/client/components/time.vue b/src/client/components/time.vue new file mode 100644 index 000000000..544746c24 --- /dev/null +++ b/src/client/components/time.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/client/components/timeline.vue b/src/client/components/timeline.vue new file mode 100644 index 000000000..930f47b1a --- /dev/null +++ b/src/client/components/timeline.vue @@ -0,0 +1,160 @@ + + + diff --git a/src/client/components/toast.vue b/src/client/components/toast.vue new file mode 100644 index 000000000..fb0de6809 --- /dev/null +++ b/src/client/components/toast.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/client/components/token-generate-window.vue b/src/client/components/token-generate-window.vue new file mode 100644 index 000000000..b46bb67b0 --- /dev/null +++ b/src/client/components/token-generate-window.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/client/components/ui/a.vue b/src/client/components/ui/a.vue new file mode 100644 index 000000000..f6c66257b --- /dev/null +++ b/src/client/components/ui/a.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue new file mode 100644 index 000000000..58b0f7b6d --- /dev/null +++ b/src/client/components/ui/button.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/client/components/ui/container.vue b/src/client/components/ui/container.vue new file mode 100644 index 000000000..a47b174e8 --- /dev/null +++ b/src/client/components/ui/container.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/src/client/components/ui/context-menu.vue b/src/client/components/ui/context-menu.vue new file mode 100644 index 000000000..e5cb4ddc7 --- /dev/null +++ b/src/client/components/ui/context-menu.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/client/components/ui/folder.vue b/src/client/components/ui/folder.vue new file mode 100644 index 000000000..1cd67c252 --- /dev/null +++ b/src/client/components/ui/folder.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/client/components/ui/hr.vue b/src/client/components/ui/hr.vue new file mode 100644 index 000000000..6b075cb44 --- /dev/null +++ b/src/client/components/ui/hr.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/client/components/ui/info.vue b/src/client/components/ui/info.vue new file mode 100644 index 000000000..3bdb69b3d --- /dev/null +++ b/src/client/components/ui/info.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue new file mode 100644 index 000000000..dec4a0871 --- /dev/null +++ b/src/client/components/ui/input.vue @@ -0,0 +1,428 @@ + + + + + diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue new file mode 100644 index 000000000..1e585062f --- /dev/null +++ b/src/client/components/ui/menu.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/src/client/components/ui/modal-menu.vue b/src/client/components/ui/modal-menu.vue new file mode 100644 index 000000000..aac4be9c3 --- /dev/null +++ b/src/client/components/ui/modal-menu.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/client/components/ui/modal-window.vue b/src/client/components/ui/modal-window.vue new file mode 100644 index 000000000..2cdf96137 --- /dev/null +++ b/src/client/components/ui/modal-window.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/client/components/ui/modal.vue b/src/client/components/ui/modal.vue new file mode 100644 index 000000000..a4646cf94 --- /dev/null +++ b/src/client/components/ui/modal.vue @@ -0,0 +1,232 @@ + + + + + + + diff --git a/src/client/components/ui/pagination.vue b/src/client/components/ui/pagination.vue new file mode 100644 index 000000000..ca9f9f27d --- /dev/null +++ b/src/client/components/ui/pagination.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/client/components/ui/radio.vue b/src/client/components/ui/radio.vue new file mode 100644 index 000000000..0f31d8fa0 --- /dev/null +++ b/src/client/components/ui/radio.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/client/components/ui/radios.vue b/src/client/components/ui/radios.vue new file mode 100644 index 000000000..ea40ba47b --- /dev/null +++ b/src/client/components/ui/radios.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/client/components/ui/range.vue b/src/client/components/ui/range.vue new file mode 100644 index 000000000..c6e585cf5 --- /dev/null +++ b/src/client/components/ui/range.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/client/components/ui/select.vue b/src/client/components/ui/select.vue new file mode 100644 index 000000000..d9250a62c --- /dev/null +++ b/src/client/components/ui/select.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/src/client/components/ui/switch.vue b/src/client/components/ui/switch.vue new file mode 100644 index 000000000..f73825723 --- /dev/null +++ b/src/client/components/ui/switch.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue new file mode 100644 index 000000000..7d3250cc4 --- /dev/null +++ b/src/client/components/ui/textarea.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/client/components/ui/tooltip.vue b/src/client/components/ui/tooltip.vue new file mode 100644 index 000000000..6ea344c54 --- /dev/null +++ b/src/client/components/ui/tooltip.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/client/components/ui/window.vue b/src/client/components/ui/window.vue new file mode 100644 index 000000000..f1cf0d683 --- /dev/null +++ b/src/client/components/ui/window.vue @@ -0,0 +1,505 @@ + + + + + diff --git a/src/client/components/url-preview-popup.vue b/src/client/components/url-preview-popup.vue new file mode 100644 index 000000000..0a402f793 --- /dev/null +++ b/src/client/components/url-preview-popup.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/client/components/url-preview.vue b/src/client/components/url-preview.vue new file mode 100644 index 000000000..55872113b --- /dev/null +++ b/src/client/components/url-preview.vue @@ -0,0 +1,337 @@ + + + + + diff --git a/src/client/components/url.vue b/src/client/components/url.vue new file mode 100644 index 000000000..c7e93094f --- /dev/null +++ b/src/client/components/url.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/client/components/user-info.vue b/src/client/components/user-info.vue new file mode 100644 index 000000000..205a991e6 --- /dev/null +++ b/src/client/components/user-info.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/client/components/user-list.vue b/src/client/components/user-list.vue new file mode 100644 index 000000000..0d58a2672 --- /dev/null +++ b/src/client/components/user-list.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/client/components/user-name.vue b/src/client/components/user-name.vue new file mode 100644 index 000000000..bc93a8ea3 --- /dev/null +++ b/src/client/components/user-name.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/client/components/user-preview.vue b/src/client/components/user-preview.vue new file mode 100644 index 000000000..bc41cc822 --- /dev/null +++ b/src/client/components/user-preview.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/src/client/components/user-select-dialog.vue b/src/client/components/user-select-dialog.vue new file mode 100644 index 000000000..cdb899005 --- /dev/null +++ b/src/client/components/user-select-dialog.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/client/components/users-dialog.vue b/src/client/components/users-dialog.vue new file mode 100644 index 000000000..f2e8ec480 --- /dev/null +++ b/src/client/components/users-dialog.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/src/client/components/visibility-picker.vue b/src/client/components/visibility-picker.vue new file mode 100644 index 000000000..f0cff5db6 --- /dev/null +++ b/src/client/components/visibility-picker.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/client/components/waiting-dialog.vue b/src/client/components/waiting-dialog.vue new file mode 100644 index 000000000..7e8ebeaec --- /dev/null +++ b/src/client/components/waiting-dialog.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/packages/client/src/config.ts b/src/client/config.ts similarity index 81% rename from packages/client/src/config.ts rename to src/client/config.ts index f2022b0f0..d0b74be04 100644 --- a/packages/client/src/config.ts +++ b/src/client/config.ts @@ -1,3 +1,5 @@ +import { clientDb, entries } from './db'; + const address = new URL(location.href); const siteName = (document.querySelector('meta[property="og:site_name"]') as HTMLMetaElement)?.content; @@ -8,7 +10,7 @@ export const apiUrl = url + '/api'; export const wsUrl = url.replace('http://', 'ws://').replace('https://', 'wss://') + '/streaming'; export const lang = localStorage.getItem('lang'); export const langs = _LANGS_; -export const locale = JSON.parse(localStorage.getItem('locale')); +export const getLocale = async () => Object.fromEntries((await entries(clientDb.i18n)) as [string, string][]); export const version = _VERSION_; export const instanceName = siteName === 'Misskey' ? host : siteName; export const ui = localStorage.getItem('ui'); diff --git a/src/client/db.ts b/src/client/db.ts new file mode 100644 index 000000000..3000a0c96 --- /dev/null +++ b/src/client/db.ts @@ -0,0 +1,68 @@ +import { Store } from 'idb-keyval'; +// Provide functions from idb-keyval +export { get, set, del, clear, keys } from 'idb-keyval'; + +//#region Construct DB +export const clientDb = { + i18n: new Store('MisskeyClient', 'i18n') +}; +//#endregion + +//#region Provide some tool functions +function openTransaction(store: Store, mode: IDBTransactionMode): Promise{ + return store._dbp.then(db => db.transaction(store.storeName, mode)); +} + +export function entries(store: Store): Promise<[IDBValidKey, unknown][]> { + const entries: [IDBValidKey, unknown][] = []; + + return store._withIDBStore('readonly', store => { + store.openCursor().onsuccess = function () { + if (!this.result) return; + entries.push([this.result.key, this.result.value]); + this.result.continue(); + }; + }).then(() => entries); +} + +export async function bulkGet(keys: IDBValidKey[], store: Store): Promise<[IDBValidKey, unknown][]> { + const valPromises: Promise<[IDBValidKey, unknown]>[] = []; + + const tx = await openTransaction(store, 'readwrite'); + const st = tx.objectStore(store.storeName); + for (const key of keys) { + valPromises.push(new Promise((resolve, reject) => { + const getting = st.get(key); + getting.onsuccess = function (e) { + return resolve([key, this.result]); + }; + getting.onerror = function (e) { + return reject(this.error); + }; + })); + } + return new Promise((resolve, reject) => { + tx.oncomplete = () => resolve(Promise.all(valPromises)); + tx.abort = tx.onerror = () => reject(tx.error); + }); +} + +export async function bulkSet(map: [IDBValidKey, any][], store: Store): Promise { + const tx = await openTransaction(store, 'readwrite'); + const st = tx.objectStore(store.storeName); + for (const [key, value] of map) { + st.put(value, key); + } + return new Promise((resolve, reject) => { + tx.oncomplete = () => resolve(); + tx.abort = tx.onerror = () => reject(tx.error); + }); +} + +export function count(store: Store): Promise { + let req: IDBRequest; + return store._withIDBStore('readonly', store => { + req = store.count(); + }).then(() => req.result); +} +//#endregion diff --git a/packages/client/src/directives/appear.ts b/src/client/directives/appear.ts similarity index 100% rename from packages/client/src/directives/appear.ts rename to src/client/directives/appear.ts diff --git a/src/client/directives/follow-append.ts b/src/client/directives/follow-append.ts new file mode 100644 index 000000000..26f9e9f82 --- /dev/null +++ b/src/client/directives/follow-append.ts @@ -0,0 +1,25 @@ +import { Directive } from 'vue'; +import { getScrollContainer, getScrollPosition } from '@/scripts/scroll'; + +export default { + mounted(src, binding, vn) { + const ro = new ResizeObserver((entries, observer) => { + const pos = getScrollPosition(src); + const container = getScrollContainer(src); + const viewHeight = container.clientHeight; + const height = container.scrollHeight; + if (pos + viewHeight > height - 32) { + container.scrollTop = height; + } + }); + + ro.observe(src); + + // TODO: 新たにプロパティを作るのをやめMapを使う + src._ro_ = ro; + }, + + unmounted(src, binding, vn) { + src._ro_.unobserve(src); + } +} as Directive; diff --git a/src/client/directives/hotkey.ts b/src/client/directives/hotkey.ts new file mode 100644 index 000000000..a1c49f007 --- /dev/null +++ b/src/client/directives/hotkey.ts @@ -0,0 +1,113 @@ +import { Directive } from 'vue'; +import keyCode from '../scripts/keycode'; +import { concat } from '../../prelude/array'; + +type pattern = { + which: string[]; + ctrl?: boolean; + shift?: boolean; + alt?: boolean; +}; + +type action = { + patterns: pattern[]; + + callback: Function; + + allowRepeat: boolean; +}; + +const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => { + const result = { + patterns: [], + callback: callback, + allowRepeat: true + } as action; + + if (patterns.match(/^\(.*\)$/) !== null) { + result.allowRepeat = false; + patterns = patterns.slice(1, -1); + } + + result.patterns = patterns.split('|').map(part => { + const pattern = { + which: [], + ctrl: false, + alt: false, + shift: false + } as pattern; + + const keys = part.trim().split('+').map(x => x.trim().toLowerCase()); + for (const key of keys) { + switch (key) { + case 'ctrl': pattern.ctrl = true; break; + case 'alt': pattern.alt = true; break; + case 'shift': pattern.shift = true; break; + default: pattern.which = keyCode(key).map(k => k.toLowerCase()); + } + } + + return pattern; + }); + + return result; +}); + +const ignoreElemens = ['input', 'textarea']; + +function match(e: KeyboardEvent, patterns: action['patterns']): boolean { + const key = e.code.toLowerCase(); + return patterns.some(pattern => pattern.which.includes(key) && + pattern.ctrl === e.ctrlKey && + pattern.shift === e.shiftKey && + pattern.alt === e.altKey && + !e.metaKey + ); +} + +export default { + mounted(el, binding) { + el._hotkey_global = binding.modifiers.global === true; + + const actions = getKeyMap(binding.value); + + // flatten + const reservedKeys = concat(actions.map(a => a.patterns)); + + el._misskey_reservedKeys = reservedKeys; + + el._keyHandler = (e: KeyboardEvent) => { + const targetReservedKeys = document.activeElement ? ((document.activeElement as any)._misskey_reservedKeys || []) : []; + if (document.activeElement && ignoreElemens.some(el => document.activeElement.matches(el))) return; + if (document.activeElement && document.activeElement.attributes['contenteditable']) return; + + for (const action of actions) { + const matched = match(e, action.patterns); + + if (matched) { + if (!action.allowRepeat && e.repeat) return; + if (el._hotkey_global && match(e, targetReservedKeys)) return; + + e.preventDefault(); + e.stopPropagation(); + action.callback(e); + break; + } + } + }; + + if (el._hotkey_global) { + document.addEventListener('keydown', el._keyHandler); + } else { + el.addEventListener('keydown', el._keyHandler); + } + }, + + unmounted(el) { + if (el._hotkey_global) { + document.removeEventListener('keydown', el._keyHandler); + } else { + el.removeEventListener('keydown', el._keyHandler); + } + } +} as Directive; diff --git a/src/client/directives/index.ts b/src/client/directives/index.ts new file mode 100644 index 000000000..474c6b4ee --- /dev/null +++ b/src/client/directives/index.ts @@ -0,0 +1,18 @@ +import { App } from 'vue'; + +import userPreview from './user-preview'; +import size from './size'; +import particle from './particle'; +import tooltip from './tooltip'; +import hotkey from './hotkey'; +import appear from './appear'; + +export default function(app: App) { + app.directive('userPreview', userPreview); + app.directive('user-preview', userPreview); + app.directive('size', size); + app.directive('particle', particle); + app.directive('tooltip', tooltip); + app.directive('hotkey', hotkey); + app.directive('appear', appear); +} diff --git a/src/client/directives/particle.ts b/src/client/directives/particle.ts new file mode 100644 index 000000000..c90df89a5 --- /dev/null +++ b/src/client/directives/particle.ts @@ -0,0 +1,18 @@ +import Particle from '@/components/particle.vue'; +import { popup } from '@/os'; + +export default { + mounted(el, binding, vn) { + // 明示的に false であればバインドしない + if (binding.value === false) return; + + el.addEventListener('click', () => { + const rect = el.getBoundingClientRect(); + + const x = rect.left + (el.clientWidth / 2); + const y = rect.top + (el.clientHeight / 2); + + popup(Particle, { x, y }, {}, 'end'); + }); + } +}; diff --git a/src/client/directives/size.ts b/src/client/directives/size.ts new file mode 100644 index 000000000..a72a97abc --- /dev/null +++ b/src/client/directives/size.ts @@ -0,0 +1,68 @@ +import { Directive } from 'vue'; + +//const observers = new Map(); + +export default { + mounted(src, binding, vn) { + const query = binding.value; + + const addClass = (el: Element, cls: string) => { + el.classList.add(cls); + }; + + const removeClass = (el: Element, cls: string) => { + el.classList.remove(cls); + }; + + const calc = () => { + const width = src.clientWidth; + + // 要素が(一時的に)DOMに存在しないときは計算スキップ + if (width === 0) return; + + if (query.max) { + for (const v of query.max) { + if (width <= v) { + addClass(src, 'max-width_' + v + 'px'); + } else { + removeClass(src, 'max-width_' + v + 'px'); + } + } + } + if (query.min) { + for (const v of query.min) { + if (width >= v) { + addClass(src, 'min-width_' + v + 'px'); + } else { + removeClass(src, 'min-width_' + v + 'px'); + } + } + } + }; + + calc(); + + window.addEventListener('resize', calc); + + // Vue3では使えなくなった + // 無くても大丈夫か...? + // TODO: ↑大丈夫じゃなかったので解決策を探す + //vn.context.$on('hook:activated', calc); + + //const ro = new ResizeObserver((entries, observer) => { + // calc(); + //}); + + //ro.observe(el); + + // TODO: 新たにプロパティを作るのをやめMapを使う + // ただメモリ的には↓の方が省メモリかもしれないので検討中 + //el._ro_ = ro; + src._calc_ = calc; + }, + + unmounted(src, binding, vn) { + //el._ro_.unobserve(el); + window.removeEventListener('resize', src._calc_); + } +} as Directive; diff --git a/src/client/directives/tooltip.ts b/src/client/directives/tooltip.ts new file mode 100644 index 000000000..faeeef79a --- /dev/null +++ b/src/client/directives/tooltip.ts @@ -0,0 +1,69 @@ +import { Directive, ref } from 'vue'; +import { isDeviceTouch } from '@/scripts/is-device-touch'; +import { popup } from '@/os'; + +const start = isDeviceTouch ? 'touchstart' : 'mouseover'; +const end = isDeviceTouch ? 'touchend' : 'mouseleave'; + +export default { + mounted(el: HTMLElement, binding, vn) { + const self = (el as any)._tooltipDirective_ = {} as any; + + self.text = binding.value as string; + self._close = null; + self.showTimer = null; + self.hideTimer = null; + self.checkTimer = null; + + self.close = () => { + if (self._close) { + clearInterval(self.checkTimer); + self._close(); + self._close = null; + } + }; + + const show = e => { + if (!document.body.contains(el)) return; + if (self._close) return; + if (self.text == null) return; + + const showing = ref(true); + popup(import('@/components/ui/tooltip.vue'), { + showing, + text: self.text, + source: el + }, {}, 'closed'); + + self._close = () => { + showing.value = false; + }; + }; + + el.addEventListener('selectstart', e => { + e.preventDefault(); + }); + + el.addEventListener(start, () => { + clearTimeout(self.showTimer); + clearTimeout(self.hideTimer); + self.showTimer = setTimeout(show, 300); + }, { passive: true }); + + el.addEventListener(end, () => { + clearTimeout(self.showTimer); + clearTimeout(self.hideTimer); + self.hideTimer = setTimeout(self.close, 300); + }, { passive: true }); + + el.addEventListener('click', () => { + clearTimeout(self.showTimer); + self.close(); + }); + }, + + unmounted(el, binding, vn) { + const self = el._tooltipDirective_; + clearInterval(self.checkTimer); + }, +} as Directive; diff --git a/src/client/directives/user-preview.ts b/src/client/directives/user-preview.ts new file mode 100644 index 000000000..68d9e2816 --- /dev/null +++ b/src/client/directives/user-preview.ts @@ -0,0 +1,118 @@ +import { Directive, ref } from 'vue'; +import autobind from 'autobind-decorator'; +import { popup } from '@/os'; + +export class UserPreview { + private el; + private user; + private showTimer; + private hideTimer; + private checkTimer; + private promise; + + constructor(el, user) { + this.el = el; + this.user = user; + + this.attach(); + } + + @autobind + private show() { + if (!document.body.contains(this.el)) return; + if (this.promise) return; + + const showing = ref(true); + + popup(import('@/components/user-preview.vue'), { + showing, + q: this.user, + source: this.el + }, { + mouseover: () => { + clearTimeout(this.hideTimer); + }, + mouseleave: () => { + clearTimeout(this.showTimer); + this.hideTimer = setTimeout(this.close, 500); + }, + }, 'closed'); + + this.promise = { + cancel: () => { + showing.value = false; + } + }; + + this.checkTimer = setInterval(() => { + if (!document.body.contains(this.el)) { + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.close(); + } + }, 1000); + } + + @autobind + private close() { + if (this.promise) { + clearInterval(this.checkTimer); + this.promise.cancel(); + this.promise = null; + } + } + + @autobind + private onMouseover() { + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.showTimer = setTimeout(this.show, 500); + } + + @autobind + private onMouseleave() { + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.hideTimer = setTimeout(this.close, 500); + } + + @autobind + private onClick() { + clearTimeout(this.showTimer); + this.close(); + } + + @autobind + public attach() { + this.el.addEventListener('mouseover', this.onMouseover); + this.el.addEventListener('mouseleave', this.onMouseleave); + this.el.addEventListener('click', this.onClick); + } + + @autobind + public detach() { + this.el.removeEventListener('mouseover', this.onMouseover); + this.el.removeEventListener('mouseleave', this.onMouseleave); + this.el.removeEventListener('click', this.onClick); + clearInterval(this.checkTimer); + } +} + +export default { + mounted(el: HTMLElement, binding, vn) { + if (binding.value == null) return; + + // TODO: 新たにプロパティを作るのをやめMapを使う + // ただメモリ的には↓の方が省メモリかもしれないので検討中 + const self = (el as any)._userPreviewDirective_ = {} as any; + + self.preview = new UserPreview(el, binding.value); + }, + + unmounted(el, binding, vn) { + if (binding.value == null) return; + + const self = el._userPreviewDirective_; + self.preview.detach(); + } +} as Directive; diff --git a/packages/client/src/filters/bytes.ts b/src/client/filters/bytes.ts similarity index 92% rename from packages/client/src/filters/bytes.ts rename to src/client/filters/bytes.ts index c80f2f0ed..50e63534b 100644 --- a/packages/client/src/filters/bytes.ts +++ b/src/client/filters/bytes.ts @@ -1,7 +1,7 @@ export default (v, digits = 0) => { if (v == null) return '?'; const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; - if (v === 0) return '0'; + if (v == 0) return '0'; const isMinus = v < 0; if (isMinus) v = -v; const i = Math.floor(Math.log(v) / Math.log(1024)); diff --git a/src/client/filters/note.ts b/src/client/filters/note.ts new file mode 100644 index 000000000..5c000cf83 --- /dev/null +++ b/src/client/filters/note.ts @@ -0,0 +1,3 @@ +export default note => { + return `/notes/${note.id}`; +}; diff --git a/packages/client/src/filters/number.ts b/src/client/filters/number.ts similarity index 100% rename from packages/client/src/filters/number.ts rename to src/client/filters/number.ts diff --git a/src/client/filters/user.ts b/src/client/filters/user.ts new file mode 100644 index 000000000..34ea488d9 --- /dev/null +++ b/src/client/filters/user.ts @@ -0,0 +1,15 @@ +import getAcct from '../../misc/acct/render'; +import getUserName from '../../misc/get-user-name'; +import { url } from '@/config'; + +export const acct = user => { + return getAcct(user); +}; + +export const userName = user => { + return getUserName(user); +}; + +export const userPage = (user, path?, absolute = false) => { + return `${absolute ? url : ''}/@${acct(user)}${(path ? `/${path}` : '')}`; +}; diff --git a/src/client/i18n.ts b/src/client/i18n.ts new file mode 100644 index 000000000..6f2dd1a7d --- /dev/null +++ b/src/client/i18n.ts @@ -0,0 +1,36 @@ +import { createI18n } from 'vue-i18n'; +import { clientDb, get, count } from './db'; +import { setI18nContexts } from '@/scripts/set-i18n-contexts'; +import { version, langs, getLocale } from '@/config'; + +let _lang = localStorage.getItem('lang'); + +if (_lang == null) { + if (langs.map(x => x[0]).includes(navigator.language)) { + _lang = navigator.language; + } else { + _lang = langs.map(x => x[0]).find(x => x.split('-')[0] == navigator.language); + + if (_lang == null) { + // Fallback + _lang = 'en-US'; + } + } + + localStorage.setItem('lang', _lang); +} + +export const lang = _lang; + +export const locale = await count(clientDb.i18n).then(async n => { + if (n === 0) return await setI18nContexts(_lang, version); + if ((await get('_version_', clientDb.i18n) !== version)) return await setI18nContexts(_lang, version, true); + + return await getLocale(); +}); + +export const i18n = createI18n({ + sync: false, + locale: _lang, + messages: { [_lang]: locale } +}); diff --git a/src/client/init.ts b/src/client/init.ts new file mode 100644 index 000000000..cc97947c0 --- /dev/null +++ b/src/client/init.ts @@ -0,0 +1,366 @@ +/** + * Client entry point + */ + +import '@/style.scss'; + +import { createApp } from 'vue'; +import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'; + +import widgets from './widgets'; +import directives from './directives'; +import components from '@/components'; +import { version, apiUrl, ui } from '@/config'; +import { store } from './store'; +import { router } from './router'; +import { applyTheme } from '@/scripts/theme'; +import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; +import { i18n, lang } from './i18n'; +import { stream, sound, isMobile, dialog } from '@/os'; + +console.info(`Misskey v${version}`); + +if (_DEV_) { + console.warn('Development mode!!!'); + + window.addEventListener('error', event => { + console.error(event); + /* + dialog({ + type: 'error', + title: 'DEV: Unhandled error', + text: event.message + }); + */ + }); + + window.addEventListener('unhandledrejection', event => { + console.error(event); + /* + dialog({ + type: 'error', + title: 'DEV: Unhandled promise rejection', + text: event.reason + }); + */ + }); +} + +// タッチデバイスでCSSの:hoverを機能させる +document.addEventListener('touchend', () => {}, { passive: true }); + +if (localStorage.getItem('theme') == null) { + applyTheme(require('@/themes/l-white.json5')); +} + +//#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ +// TODO: いつの日にか消したい +const vh = window.innerHeight * 0.01; +document.documentElement.style.setProperty('--vh', `${vh}px`); +window.addEventListener('resize', () => { + const vh = window.innerHeight * 0.01; + document.documentElement.style.setProperty('--vh', `${vh}px`); +}); +//#endregion + +// Get the element +const head = document.getElementsByTagName('head')[0]; + +// If mobile, insert the viewport meta tag +if (isMobile || window.innerWidth <= 1024) { + const viewport = document.getElementsByName('viewport').item(0); + viewport.setAttribute('content', + `${viewport.getAttribute('content')},minimum-scale=1,maximum-scale=1,user-scalable=no`); + head.appendChild(viewport); +} + +//#region Set lang attr +const html = document.documentElement; +html.setAttribute('lang', lang); +//#endregion + +//#region Fetch user +const signout = () => { + store.dispatch('logout'); + location.href = '/'; +}; + +// ユーザーをフェッチしてコールバックする +const fetchme = (token) => new Promise((done, fail) => { + // Fetch user + fetch(`${apiUrl}/i`, { + method: 'POST', + body: JSON.stringify({ + i: token + }) + }) + .then(res => { + // When failed to authenticate user + if (res.status !== 200 && res.status < 500) { + return signout(); + } + + // Parse response + res.json().then(i => { + i.token = token; + done(i); + }); + }) + .catch(fail); +}); + +// キャッシュがあったとき +if (store.state.i != null) { + // TODO: i.token が null になるケースってどんな時だっけ? + if (store.state.i.token == null) { + signout(); + } + + // 後から新鮮なデータをフェッチ + fetchme(store.state.i.token).then(freshData => { + store.dispatch('mergeMe', freshData); + }); +} else { + // Get token from localStorage + let i = localStorage.getItem('i'); + + // 連携ログインの場合用にCookieを参照する + if (i == null || i === 'null') { + i = (document.cookie.match(/igi=(\w+)/) || [null, null])[1]; + } + + if (i != null && i !== 'null') { + try { + document.body.innerHTML = '

Please wait...
'; + const me = await fetchme(i); + await store.dispatch('login', me); + location.reload(); + } catch (e) { + // Render the error screen + // TODO: ちゃんとしたコンポーネントをレンダリングする(v10とかのトラブルシューティングゲーム付きのやつみたいな) + document.body.innerHTML = '
Oops!
'; + } + } +} +//#endregion + +store.dispatch('instance/fetch').then(() => { + // Init service worker + //if (this.store.state.instance.meta.swPublickey) this.registerSw(this.store.state.instance.meta.swPublickey); +}); + +stream.init(store.state.i); + +const app = createApp(await ( + window.location.search === '?zen' ? import('@/ui/zen.vue') : + !store.getters.isSignedIn ? import('@/ui/visitor.vue') : + ui === 'deck' ? import('@/ui/deck.vue') : + ui === 'desktop' ? import('@/ui/desktop.vue') : + import('@/ui/default.vue') +).then(x => x.default)); + +if (_DEV_) { + app.config.performance = true; +} + +app.use(store); +app.use(router); +app.use(i18n); +// eslint-disable-next-line vue/component-definition-name-casing +app.component('Fa', FontAwesomeIcon); + +widgets(app); +directives(app); +components(app); + +await router.isReady(); + +//document.body.innerHTML = '
'; + +app.mount('body'); + +// 他のタブと永続化されたstateを同期 +window.addEventListener('storage', e => { + if (e.key === 'vuex') { + store.replaceState({ + ...store.state, + ...JSON.parse(e.newValue) + }); + } else if (e.key === 'i') { + location.reload(); + } +}, false); + +store.watch(state => state.device.darkMode, darkMode => { + import('@/scripts/theme').then(({ builtinThemes }) => { + const themes = builtinThemes.concat(store.state.device.themes); + applyTheme(themes.find(x => x.id === (darkMode ? store.state.device.darkTheme : store.state.device.lightTheme))); + }); +}); + +//#region Sync dark mode +if (store.state.device.syncDeviceDarkMode) { + store.commit('device/set', { key: 'darkMode', value: isDeviceDarkmode() }); +} + +window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { + if (store.state.device.syncDeviceDarkMode) { + store.commit('device/set', { key: 'darkMode', value: mql.matches }); + } +}); +//#endregion + +store.watch(state => state.device.useBlurEffectForModal, v => { + document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); +}, { immediate: true }); + +let reloadDialogShowing = false; +stream.on('_disconnected_', async () => { + if (store.state.device.serverDisconnectedBehavior === 'reload') { + location.reload(); + } else if (store.state.device.serverDisconnectedBehavior === 'dialog') { + if (reloadDialogShowing) return; + reloadDialogShowing = true; + const { canceled } = await dialog({ + type: 'warning', + title: i18n.global.t('disconnectedFromServer'), + text: i18n.global.t('reloadConfirm'), + showCancelButton: true + }); + reloadDialogShowing = false; + if (!canceled) { + location.reload(); + } + } +}); + +stream.on('emojiAdded', data => { + // TODO + //store.commit('instance/set', ); +}); + +for (const plugin of store.state.deviceUser.plugins.filter(p => p.active)) { + import('./plugin').then(({ install }) => { + install(plugin); + }); +} + +if (store.getters.isSignedIn) { + if ('Notification' in window) { + // 許可を得ていなかったらリクエスト + if (Notification.permission === 'default') { + Notification.requestPermission(); + } + } + + const main = stream.useSharedConnection('main', 'System'); + + // 自分の情報が更新されたとき + main.on('meUpdated', i => { + store.dispatch('mergeMe', i); + }); + + main.on('readAllNotifications', () => { + store.dispatch('mergeMe', { + hasUnreadNotification: false + }); + }); + + main.on('unreadNotification', () => { + store.dispatch('mergeMe', { + hasUnreadNotification: true + }); + }); + + main.on('unreadMention', () => { + store.dispatch('mergeMe', { + hasUnreadMentions: true + }); + }); + + main.on('readAllUnreadMentions', () => { + store.dispatch('mergeMe', { + hasUnreadMentions: false + }); + }); + + main.on('unreadSpecifiedNote', () => { + store.dispatch('mergeMe', { + hasUnreadSpecifiedNotes: true + }); + }); + + main.on('readAllUnreadSpecifiedNotes', () => { + store.dispatch('mergeMe', { + hasUnreadSpecifiedNotes: false + }); + }); + + main.on('readAllMessagingMessages', () => { + store.dispatch('mergeMe', { + hasUnreadMessagingMessage: false + }); + }); + + main.on('unreadMessagingMessage', () => { + store.dispatch('mergeMe', { + hasUnreadMessagingMessage: true + }); + + sound('chatBg'); + }); + + main.on('readAllAntennas', () => { + store.dispatch('mergeMe', { + hasUnreadAntenna: false + }); + }); + + main.on('unreadAntenna', () => { + store.dispatch('mergeMe', { + hasUnreadAntenna: true + }); + + sound('antenna'); + }); + + main.on('readAllAnnouncements', () => { + store.dispatch('mergeMe', { + hasUnreadAnnouncement: false + }); + }); + + main.on('readAllChannels', () => { + store.dispatch('mergeMe', { + hasUnreadChannel: false + }); + }); + + main.on('unreadChannel', () => { + store.dispatch('mergeMe', { + hasUnreadChannel: true + }); + + sound('channel'); + }); + + main.on('readAllAnnouncements', () => { + store.dispatch('mergeMe', { + hasUnreadAnnouncement: false + }); + }); + + main.on('clientSettingUpdated', x => { + store.commit('settings/set', { + key: x.key, + value: x.value + }); + }); + + // トークンが再生成されたとき + // このままではMisskeyが利用できないので強制的にサインアウトさせる + main.on('myTokenRegenerated', () => { + signout(); + }); +} + diff --git a/src/client/os.ts b/src/client/os.ts new file mode 100644 index 000000000..88d445eba --- /dev/null +++ b/src/client/os.ts @@ -0,0 +1,421 @@ +import { Component, defineAsyncComponent, markRaw, reactive, Ref, ref } from 'vue'; +import { EventEmitter } from 'eventemitter3'; +import Stream from '@/scripts/stream'; +import { store } from '@/store'; +import { apiUrl, debug } from '@/config'; +import MkPostFormDialog from '@/components/post-form-dialog.vue'; +import MkWaitingDialog from '@/components/waiting-dialog.vue'; +import { resolve } from '@/router'; + +const ua = navigator.userAgent.toLowerCase(); +export const isMobile = /mobile|iphone|ipad|android/.test(ua); + +export const stream = markRaw(new Stream()); + +export const pendingApiRequestsCount = ref(0); +let apiRequestsCount = 0; // for debug +export const apiRequests = ref([]); // for debug + +export const windows = new Map(); + +export function api(endpoint: string, data: Record = {}, token?: string | null | undefined) { + pendingApiRequestsCount.value++; + + const onFinally = () => { + pendingApiRequestsCount.value--; + }; + + const log = debug ? reactive({ + id: ++apiRequestsCount, + endpoint, + req: markRaw(data), + res: null, + state: 'pending', + }) : null; + if (debug) { + apiRequests.value.push(log); + if (apiRequests.value.length > 128) apiRequests.value.shift(); + } + + const promise = new Promise((resolve, reject) => { + // Append a credential + if (store.getters.isSignedIn) (data as any).i = store.state.i.token; + if (token !== undefined) (data as any).i = token; + + // Send request + fetch(endpoint.indexOf('://') > -1 ? endpoint : `${apiUrl}/${endpoint}`, { + method: 'POST', + body: JSON.stringify(data), + credentials: 'omit', + cache: 'no-cache' + }).then(async (res) => { + const body = res.status === 204 ? null : await res.json(); + + if (res.status === 200) { + resolve(body); + if (debug) { + log.res = markRaw(body); + log.state = 'success'; + } + } else if (res.status === 204) { + resolve(); + if (debug) { + log.state = 'success'; + } + } else { + reject(body.error); + if (debug) { + log.res = markRaw(body.error); + log.state = 'failed'; + } + } + }).catch(reject); + }); + + promise.then(onFinally, onFinally); + + return promise; +} + +export function apiWithDialog( + endpoint: string, + data: Record = {}, + token?: string | null | undefined, + onSuccess?: (res: any) => void, + onFailure?: (e: Error) => void, +) { + const promise = api(endpoint, data, token); + promiseDialog(promise, onSuccess, onFailure ? onFailure : (e) => { + dialog({ + type: 'error', + text: e.message + '\n' + (e as any).id, + }); + }); + + return promise; +} + +export function promiseDialog>( + promise: T, + onSuccess?: (res: any) => void, + onFailure?: (e: Error) => void, + text?: string, +): T { + const showing = ref(true); + const success = ref(false); + + promise.then(res => { + if (onSuccess) { + showing.value = false; + onSuccess(res); + } else { + success.value = true; + setTimeout(() => { + showing.value = false; + }, 1000); + } + }).catch(e => { + showing.value = false; + if (onFailure) { + onFailure(e); + } else { + dialog({ + type: 'error', + text: e + }); + } + }); + + // NOTE: dynamic importすると挙動がおかしくなる(showingの変更が伝播しない) + popup(MkWaitingDialog, { + success: success, + showing: showing, + text: text, + }, {}, 'closed'); + + return promise; +} + +function isModule(x: any): x is typeof import('*.vue') { + return x.default != null; +} + +let popupIdCount = 0; +export const popups = ref([]) as Ref<{ + id: any; + component: any; + props: Record; +}[]>; + +export async function popup(component: Component | typeof import('*.vue') | Promise, props: Record, events = {}, disposeEvent?: string) { + if (component.then) component = await component; + + if (isModule(component)) component = component.default; + markRaw(component); + + const id = ++popupIdCount; + const dispose = () => { + if (_DEV_) console.log('os:popup close', id, component, props, events); + // このsetTimeoutが無いと挙動がおかしくなる(autocompleteが閉じなくなる)。Vueのバグ? + setTimeout(() => { + popups.value = popups.value.filter(popup => popup.id !== id); + }, 0); + }; + const state = { + component, + props, + events: disposeEvent ? { + ...events, + [disposeEvent]: dispose + } : events, + id, + }; + + if (_DEV_) console.log('os:popup open', id, component, props, events); + popups.value.push(state); + + return { + dispose, + }; +} + +export function pageWindow(path: string) { + const { component, props } = resolve(path); + popup(import('@/components/page-window.vue'), { + initialPath: path, + initialComponent: markRaw(component), + initialProps: props, + }, {}, 'closed'); +} + +export function dialog(props: Record) { + return new Promise((resolve, reject) => { + popup(import('@/components/dialog.vue'), props, { + done: result => { + resolve(result ? result : { canceled: true }); + }, + }, 'closed'); + }); +} + +export function success() { + return new Promise((resolve, reject) => { + const showing = ref(true); + setTimeout(() => { + showing.value = false; + }, 1000); + popup(import('@/components/waiting-dialog.vue'), { + success: true, + showing: showing + }, { + done: () => resolve(), + }, 'closed'); + }); +} + +export function waiting() { + return new Promise((resolve, reject) => { + const showing = ref(true); + popup(import('@/components/waiting-dialog.vue'), { + success: false, + showing: showing + }, { + done: () => resolve(), + }, 'closed'); + }); +} + +export function form(title, form) { + return new Promise((resolve, reject) => { + popup(import('@/components/form-dialog.vue'), { title, form }, { + done: result => { + resolve(result); + }, + }, 'closed'); + }); +} + +export async function selectUser() { + return new Promise((resolve, reject) => { + popup(import('@/components/user-select-dialog.vue'), {}, { + ok: user => { + resolve(user); + }, + }, 'closed'); + }); +} + +export async function selectDriveFile(multiple: boolean) { + return new Promise((resolve, reject) => { + popup(import('@/components/drive-select-dialog.vue'), { + type: 'file', + multiple + }, { + done: files => { + if (files) { + resolve(multiple ? files : files[0]); + } + }, + }, 'closed'); + }); +} + +export async function selectDriveFolder(multiple: boolean) { + return new Promise((resolve, reject) => { + popup(import('@/components/drive-select-dialog.vue'), { + type: 'folder', + multiple + }, { + done: folders => { + if (folders) { + resolve(multiple ? folders : folders[0]); + } + }, + }, 'closed'); + }); +} + +export async function pickEmoji(src?: HTMLElement, opts) { + return new Promise((resolve, reject) => { + popup(import('@/components/emoji-picker.vue'), { + src, + ...opts + }, { + done: emoji => { + resolve(emoji); + }, + }, 'closed'); + }); +} + +export function modalMenu(items: any[], src?: HTMLElement, options?: { align?: string; viaKeyboard?: boolean }) { + return new Promise((resolve, reject) => { + let dispose; + popup(import('@/components/ui/modal-menu.vue'), { + items, + src, + align: options?.align, + viaKeyboard: options?.viaKeyboard + }, { + closed: () => { + resolve(); + dispose(); + }, + }).then(res => { + dispose = res.dispose; + }); + }); +} + +export function contextMenu(items: any[], ev: MouseEvent) { + ev.preventDefault(); + return new Promise((resolve, reject) => { + let dispose; + popup(import('@/components/ui/context-menu.vue'), { + items, + ev, + }, { + closed: () => { + resolve(); + dispose(); + }, + }).then(res => { + dispose = res.dispose; + }); + }); +} + +export function post(props: Record) { + return new Promise((resolve, reject) => { + // NOTE: MkPostFormDialogをdynamic importするとiOSでテキストエリアに自動フォーカスできない + // NOTE: ただ、dynamic importしない場合、MkPostFormDialogインスタンスが使いまわされ、 + // Vueが渡されたコンポーネントに内部的に__propsというプロパティを生やす影響で、 + // 複数のpost formを開いたときに場合によってはエラーになる + // もちろん複数のpost formを開けること自体Misskeyサイドのバグなのだが + let dispose; + popup(MkPostFormDialog, props, { + closed: () => { + resolve(); + dispose(); + }, + }).then(res => { + dispose = res.dispose; + }); + }); +} + +export function sound(type: string) { + if (store.state.device.sfxVolume === 0) return; + const sound = store.state.device['sfx' + type.substr(0, 1).toUpperCase() + type.substr(1)]; + if (sound == null) return; + const audio = new Audio(`/assets/sounds/${sound}.mp3`); + audio.volume = store.state.device.sfxVolume; + audio.play(); +} + +export const deckGlobalEvents = new EventEmitter(); + +export const uploads = ref([]); + +export function upload(file: File, folder?: any, name?: string) { + if (folder && typeof folder == 'object') folder = folder.id; + + return new Promise((resolve, reject) => { + const id = Math.random(); + + const reader = new FileReader(); + reader.onload = (e) => { + const ctx = reactive({ + id: id, + name: name || file.name || 'untitled', + progressMax: undefined, + progressValue: undefined, + img: window.URL.createObjectURL(file) + }); + + uploads.value.push(ctx); + + const data = new FormData(); + data.append('i', store.state.i.token); + data.append('force', 'true'); + data.append('file', file); + + if (folder) data.append('folderId', folder); + if (name) data.append('name', name); + + const xhr = new XMLHttpRequest(); + xhr.open('POST', apiUrl + '/drive/files/create', true); + xhr.onload = (e: any) => { + const driveFile = JSON.parse(e.target.response); + + resolve(driveFile); + + uploads.value = uploads.value.filter(x => x.id != id); + }; + + xhr.upload.onprogress = e => { + if (e.lengthComputable) { + ctx.progressMax = e.total; + ctx.progressValue = e.loaded; + } + }; + + xhr.send(data); + }; + reader.readAsArrayBuffer(file); + }); +} + +/* +export function checkExistence(fileData: ArrayBuffer): Promise { + return new Promise((resolve, reject) => { + const data = new FormData(); + data.append('md5', getMD5(fileData)); + + os.api('drive/files/find-by-hash', { + md5: getMD5(fileData) + }).then(resp => { + resolve(resp.length > 0 ? resp[0] : null); + }); + }); +}*/ diff --git a/src/client/pages/_error_.vue b/src/client/pages/_error_.vue new file mode 100644 index 000000000..c063b12b2 --- /dev/null +++ b/src/client/pages/_error_.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/client/pages/_loading_.vue b/src/client/pages/_loading_.vue new file mode 100644 index 000000000..05c6af1cd --- /dev/null +++ b/src/client/pages/_loading_.vue @@ -0,0 +1,10 @@ + + + diff --git a/src/client/pages/about-misskey.vue b/src/client/pages/about-misskey.vue new file mode 100644 index 000000000..c78522345 --- /dev/null +++ b/src/client/pages/about-misskey.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/client/pages/about.vue b/src/client/pages/about.vue new file mode 100644 index 000000000..7599ee693 --- /dev/null +++ b/src/client/pages/about.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/client/pages/announcements.vue b/src/client/pages/announcements.vue new file mode 100644 index 000000000..a202ec749 --- /dev/null +++ b/src/client/pages/announcements.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/client/pages/api-console.vue b/src/client/pages/api-console.vue new file mode 100644 index 000000000..dd5cacaee --- /dev/null +++ b/src/client/pages/api-console.vue @@ -0,0 +1,94 @@ + + + diff --git a/src/client/pages/apps.vue b/src/client/pages/apps.vue new file mode 100644 index 000000000..f9dd0a358 --- /dev/null +++ b/src/client/pages/apps.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/packages/client/src/pages/auth.form.vue b/src/client/pages/auth.form.vue similarity index 79% rename from packages/client/src/pages/auth.form.vue rename to src/client/pages/auth.form.vue index 024a7a2c5..dd5aa34e6 100644 --- a/packages/client/src/pages/auth.form.vue +++ b/src/client/pages/auth.form.vue @@ -7,21 +7,21 @@

{{ app.description }}

-

{{ $ts._auth.permissionAsk }}

+

{{ $t('_auth.permissionAsk') }}

  • {{ $t(`_permissions.${p}`) }}
+ + diff --git a/src/client/pages/channel-editor.vue b/src/client/pages/channel-editor.vue new file mode 100644 index 000000000..02ce97374 --- /dev/null +++ b/src/client/pages/channel-editor.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/client/pages/channel.vue b/src/client/pages/channel.vue new file mode 100644 index 000000000..ef4130854 --- /dev/null +++ b/src/client/pages/channel.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/client/pages/channels.vue b/src/client/pages/channels.vue new file mode 100644 index 000000000..e42805128 --- /dev/null +++ b/src/client/pages/channels.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/client/pages/clip.vue b/src/client/pages/clip.vue new file mode 100644 index 000000000..7535e4de2 --- /dev/null +++ b/src/client/pages/clip.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue new file mode 100644 index 000000000..fe9873c6a --- /dev/null +++ b/src/client/pages/doc.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue new file mode 100644 index 000000000..1ed7684a8 --- /dev/null +++ b/src/client/pages/docs.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/client/pages/drive.vue b/src/client/pages/drive.vue new file mode 100644 index 000000000..b7ed04e10 --- /dev/null +++ b/src/client/pages/drive.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/client/pages/explore.vue b/src/client/pages/explore.vue new file mode 100644 index 000000000..bca737370 --- /dev/null +++ b/src/client/pages/explore.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/client/pages/favorites.vue b/src/client/pages/favorites.vue new file mode 100644 index 000000000..b207c4af0 --- /dev/null +++ b/src/client/pages/favorites.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/client/pages/featured.vue b/src/client/pages/featured.vue new file mode 100644 index 000000000..c09eadc94 --- /dev/null +++ b/src/client/pages/featured.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/client/pages/follow-requests.vue b/src/client/pages/follow-requests.vue new file mode 100644 index 000000000..d72efb5a3 --- /dev/null +++ b/src/client/pages/follow-requests.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/client/pages/follow.vue b/src/client/pages/follow.vue new file mode 100644 index 000000000..b1ab7f9f6 --- /dev/null +++ b/src/client/pages/follow.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/client/pages/instance/abuses.vue b/src/client/pages/instance/abuses.vue new file mode 100644 index 000000000..ed5390030 --- /dev/null +++ b/src/client/pages/instance/abuses.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/src/client/pages/instance/announcements.vue b/src/client/pages/instance/announcements.vue new file mode 100644 index 000000000..0dd669d45 --- /dev/null +++ b/src/client/pages/instance/announcements.vue @@ -0,0 +1,113 @@ + + + diff --git a/src/client/pages/instance/emoji-edit-dialog.vue b/src/client/pages/instance/emoji-edit-dialog.vue new file mode 100644 index 000000000..ed81f15f6 --- /dev/null +++ b/src/client/pages/instance/emoji-edit-dialog.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/client/pages/instance/emojis.vue b/src/client/pages/instance/emojis.vue new file mode 100644 index 000000000..01ea0d7f8 --- /dev/null +++ b/src/client/pages/instance/emojis.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/client/pages/instance/federation.vue b/src/client/pages/instance/federation.vue new file mode 100644 index 000000000..f084feba1 --- /dev/null +++ b/src/client/pages/instance/federation.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/client/pages/instance/file-dialog.vue b/src/client/pages/instance/file-dialog.vue new file mode 100644 index 000000000..79244349e --- /dev/null +++ b/src/client/pages/instance/file-dialog.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/client/pages/instance/files.vue b/src/client/pages/instance/files.vue new file mode 100644 index 000000000..f0a8b69f8 --- /dev/null +++ b/src/client/pages/instance/files.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/client/pages/instance/index.metrics.vue b/src/client/pages/instance/index.metrics.vue new file mode 100644 index 000000000..f3060b29d --- /dev/null +++ b/src/client/pages/instance/index.metrics.vue @@ -0,0 +1,576 @@ + + + + + diff --git a/src/client/pages/instance/index.vue b/src/client/pages/instance/index.vue new file mode 100644 index 000000000..79fe45258 --- /dev/null +++ b/src/client/pages/instance/index.vue @@ -0,0 +1,172 @@ + + + diff --git a/src/client/pages/instance/instance.vue b/src/client/pages/instance/instance.vue new file mode 100644 index 000000000..97f85d3b1 --- /dev/null +++ b/src/client/pages/instance/instance.vue @@ -0,0 +1,561 @@ + + + + + diff --git a/src/client/pages/instance/logs.vue b/src/client/pages/instance/logs.vue new file mode 100644 index 000000000..5743deec6 --- /dev/null +++ b/src/client/pages/instance/logs.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/client/pages/instance/queue.chart.vue b/src/client/pages/instance/queue.chart.vue new file mode 100644 index 000000000..742c2b7d3 --- /dev/null +++ b/src/client/pages/instance/queue.chart.vue @@ -0,0 +1,200 @@ + + + diff --git a/src/client/pages/instance/queue.vue b/src/client/pages/instance/queue.vue new file mode 100644 index 000000000..e824e8ae2 --- /dev/null +++ b/src/client/pages/instance/queue.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/client/pages/instance/relays.vue b/src/client/pages/instance/relays.vue new file mode 100644 index 000000000..885f86129 --- /dev/null +++ b/src/client/pages/instance/relays.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue new file mode 100644 index 000000000..32a6a9595 --- /dev/null +++ b/src/client/pages/instance/settings.vue @@ -0,0 +1,568 @@ + + + diff --git a/src/client/pages/instance/user-dialog.vue b/src/client/pages/instance/user-dialog.vue new file mode 100644 index 000000000..3cf30e115 --- /dev/null +++ b/src/client/pages/instance/user-dialog.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/src/client/pages/instance/users.vue b/src/client/pages/instance/users.vue new file mode 100644 index 000000000..1bf12196e --- /dev/null +++ b/src/client/pages/instance/users.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/client/pages/mentions.vue b/src/client/pages/mentions.vue new file mode 100644 index 000000000..396f22c0b --- /dev/null +++ b/src/client/pages/mentions.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/client/pages/messages.vue b/src/client/pages/messages.vue new file mode 100644 index 000000000..b8d715609 --- /dev/null +++ b/src/client/pages/messages.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/client/pages/messaging/index.vue b/src/client/pages/messaging/index.vue new file mode 100644 index 000000000..c56542c68 --- /dev/null +++ b/src/client/pages/messaging/index.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/client/pages/messaging/messaging-room.form.vue b/src/client/pages/messaging/messaging-room.form.vue new file mode 100644 index 000000000..3b5b9aa96 --- /dev/null +++ b/src/client/pages/messaging/messaging-room.form.vue @@ -0,0 +1,342 @@ + + + + + diff --git a/src/client/pages/messaging/messaging-room.message.vue b/src/client/pages/messaging/messaging-room.message.vue new file mode 100644 index 000000000..33ad371eb --- /dev/null +++ b/src/client/pages/messaging/messaging-room.message.vue @@ -0,0 +1,346 @@ + + + + + diff --git a/src/client/pages/messaging/messaging-room.vue b/src/client/pages/messaging/messaging-room.vue new file mode 100644 index 000000000..f414ccbaa --- /dev/null +++ b/src/client/pages/messaging/messaging-room.vue @@ -0,0 +1,435 @@ + + + + + diff --git a/src/client/pages/mfm-cheat-sheet.vue b/src/client/pages/mfm-cheat-sheet.vue new file mode 100644 index 000000000..c9346d3fc --- /dev/null +++ b/src/client/pages/mfm-cheat-sheet.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/src/client/pages/miauth.vue b/src/client/pages/miauth.vue new file mode 100644 index 000000000..2de058d0d --- /dev/null +++ b/src/client/pages/miauth.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/client/pages/my-antennas/index.antenna.vue b/src/client/pages/my-antennas/index.antenna.vue new file mode 100644 index 000000000..509600590 --- /dev/null +++ b/src/client/pages/my-antennas/index.antenna.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/client/pages/my-antennas/index.vue b/src/client/pages/my-antennas/index.vue new file mode 100644 index 000000000..20b1024c9 --- /dev/null +++ b/src/client/pages/my-antennas/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/client/pages/my-clips/index.vue b/src/client/pages/my-clips/index.vue new file mode 100644 index 000000000..ff7ef6282 --- /dev/null +++ b/src/client/pages/my-clips/index.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/client/pages/my-groups/group.vue b/src/client/pages/my-groups/group.vue new file mode 100644 index 000000000..36fed3f9d --- /dev/null +++ b/src/client/pages/my-groups/group.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/client/pages/my-groups/index.vue b/src/client/pages/my-groups/index.vue new file mode 100644 index 000000000..fb3d9ccb3 --- /dev/null +++ b/src/client/pages/my-groups/index.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/client/pages/my-lists/index.vue b/src/client/pages/my-lists/index.vue new file mode 100644 index 000000000..edd4ff944 --- /dev/null +++ b/src/client/pages/my-lists/index.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/client/pages/my-lists/list.vue b/src/client/pages/my-lists/list.vue new file mode 100644 index 000000000..4f352e05c --- /dev/null +++ b/src/client/pages/my-lists/list.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/client/pages/not-found.vue b/src/client/pages/not-found.vue new file mode 100644 index 000000000..0349b3c1b --- /dev/null +++ b/src/client/pages/not-found.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/client/pages/note.vue b/src/client/pages/note.vue new file mode 100644 index 000000000..6ad6f2ba1 --- /dev/null +++ b/src/client/pages/note.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/client/pages/notifications.vue b/src/client/pages/notifications.vue new file mode 100644 index 000000000..4dfcb3fa3 --- /dev/null +++ b/src/client/pages/notifications.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.button.vue b/src/client/pages/page-editor/els/page-editor.el.button.vue new file mode 100644 index 000000000..7c6590457 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.button.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.canvas.vue b/src/client/pages/page-editor/els/page-editor.el.canvas.vue new file mode 100644 index 000000000..ff7e16064 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.canvas.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.counter.vue b/src/client/pages/page-editor/els/page-editor.el.counter.vue new file mode 100644 index 000000000..ae62c2fa8 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.counter.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.if.vue b/src/client/pages/page-editor/els/page-editor.el.if.vue new file mode 100644 index 000000000..2f1213853 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.if.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.image.vue b/src/client/pages/page-editor/els/page-editor.el.image.vue new file mode 100644 index 000000000..f5c2fe816 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.image.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.note.vue b/src/client/pages/page-editor/els/page-editor.el.note.vue new file mode 100644 index 000000000..239ae3c01 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.note.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.number-input.vue b/src/client/pages/page-editor/els/page-editor.el.number-input.vue new file mode 100644 index 000000000..37b9ac90c --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.number-input.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.post.vue b/src/client/pages/page-editor/els/page-editor.el.post.vue new file mode 100644 index 000000000..19c9c9d7d --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.post.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.radio-button.vue b/src/client/pages/page-editor/els/page-editor.el.radio-button.vue new file mode 100644 index 000000000..e30a7d363 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.radio-button.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.section.vue b/src/client/pages/page-editor/els/page-editor.el.section.vue new file mode 100644 index 000000000..fdad14063 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.section.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.switch.vue b/src/client/pages/page-editor/els/page-editor.el.switch.vue new file mode 100644 index 000000000..94ebda40b --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.switch.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.text-input.vue b/src/client/pages/page-editor/els/page-editor.el.text-input.vue new file mode 100644 index 000000000..90039a3c9 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.text-input.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.text.vue b/src/client/pages/page-editor/els/page-editor.el.text.vue new file mode 100644 index 000000000..fcce180f3 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.text.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue b/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue new file mode 100644 index 000000000..ea00860fe --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/client/pages/page-editor/els/page-editor.el.textarea.vue b/src/client/pages/page-editor/els/page-editor.el.textarea.vue new file mode 100644 index 000000000..38c901d79 --- /dev/null +++ b/src/client/pages/page-editor/els/page-editor.el.textarea.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/client/pages/page-editor/page-editor.blocks.vue b/src/client/pages/page-editor/page-editor.blocks.vue new file mode 100644 index 000000000..5cf9eb42f --- /dev/null +++ b/src/client/pages/page-editor/page-editor.blocks.vue @@ -0,0 +1,69 @@ + + + diff --git a/packages/client/src/pages/page-editor/page-editor.container.vue b/src/client/pages/page-editor/page-editor.container.vue similarity index 78% rename from packages/client/src/pages/page-editor/page-editor.container.vue rename to src/client/pages/page-editor/page-editor.container.vue index 6927e5586..153464132 100644 --- a/packages/client/src/pages/page-editor/page-editor.container.vue +++ b/src/client/pages/page-editor/page-editor.container.vue @@ -4,20 +4,20 @@
- -
-

{{ $t('_pages.script.typeError', { slot: error.arg + 1, expect: $t(`script.types.${error.expect}`), actual: $t(`script.types.${error.actual}`) }) }}

-

{{ $t('_pages.script.thereIsEmptySlot', { slot: warn.slot + 1 }) }}

+

{{ $t('_pages.script.typeError', { slot: error.arg + 1, expect: $t(`script.types.${error.expect}`), actual: $t(`script.types.${error.actual}`) }) }}

+

{{ $t('_pages.script.thereIsEmptySlot', { slot: warn.slot + 1 }) }}

@@ -26,6 +26,8 @@ + + diff --git a/src/client/pages/page-editor/page-editor.vue b/src/client/pages/page-editor/page-editor.vue new file mode 100644 index 000000000..eab48c766 --- /dev/null +++ b/src/client/pages/page-editor/page-editor.vue @@ -0,0 +1,520 @@ + + + + + diff --git a/src/client/pages/page.vue b/src/client/pages/page.vue new file mode 100644 index 000000000..43c168882 --- /dev/null +++ b/src/client/pages/page.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/client/pages/pages.vue b/src/client/pages/pages.vue new file mode 100644 index 000000000..140bbcb87 --- /dev/null +++ b/src/client/pages/pages.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/client/pages/reversi/game.board.vue b/src/client/pages/reversi/game.board.vue new file mode 100644 index 000000000..6559396ac --- /dev/null +++ b/src/client/pages/reversi/game.board.vue @@ -0,0 +1,534 @@ + + + + + diff --git a/src/client/pages/reversi/game.setting.vue b/src/client/pages/reversi/game.setting.vue new file mode 100644 index 000000000..d679d0f6d --- /dev/null +++ b/src/client/pages/reversi/game.setting.vue @@ -0,0 +1,393 @@ + + + + + diff --git a/src/client/pages/reversi/game.vue b/src/client/pages/reversi/game.vue new file mode 100644 index 000000000..3887ff465 --- /dev/null +++ b/src/client/pages/reversi/game.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/client/pages/reversi/index.vue b/src/client/pages/reversi/index.vue new file mode 100644 index 000000000..95806c408 --- /dev/null +++ b/src/client/pages/reversi/index.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/src/client/pages/room/preview.vue b/src/client/pages/room/preview.vue new file mode 100644 index 000000000..b0e600d4f --- /dev/null +++ b/src/client/pages/room/preview.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/client/pages/room/room.vue b/src/client/pages/room/room.vue new file mode 100644 index 000000000..91d8077c6 --- /dev/null +++ b/src/client/pages/room/room.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/client/pages/scratchpad.vue b/src/client/pages/scratchpad.vue new file mode 100644 index 000000000..bbdb20112 --- /dev/null +++ b/src/client/pages/scratchpad.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/client/pages/search.vue b/src/client/pages/search.vue new file mode 100644 index 000000000..f95848cfd --- /dev/null +++ b/src/client/pages/search.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/client/pages/settings/api.vue b/src/client/pages/settings/api.vue new file mode 100644 index 000000000..f4cebbee3 --- /dev/null +++ b/src/client/pages/settings/api.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/client/pages/settings/drive.vue b/src/client/pages/settings/drive.vue new file mode 100644 index 000000000..a7d623be3 --- /dev/null +++ b/src/client/pages/settings/drive.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue new file mode 100644 index 000000000..c88c573ae --- /dev/null +++ b/src/client/pages/settings/general.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/client/pages/settings/import-export.vue b/src/client/pages/settings/import-export.vue new file mode 100644 index 000000000..c081c9bb4 --- /dev/null +++ b/src/client/pages/settings/import-export.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue new file mode 100644 index 000000000..5451c8616 --- /dev/null +++ b/src/client/pages/settings/index.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/src/client/pages/settings/integration.vue b/src/client/pages/settings/integration.vue new file mode 100644 index 000000000..e980e18db --- /dev/null +++ b/src/client/pages/settings/integration.vue @@ -0,0 +1,134 @@ + + + diff --git a/src/client/pages/settings/mute-block.vue b/src/client/pages/settings/mute-block.vue new file mode 100644 index 000000000..43e2c396b --- /dev/null +++ b/src/client/pages/settings/mute-block.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/client/pages/settings/notifications.vue b/src/client/pages/settings/notifications.vue new file mode 100644 index 000000000..ff0c27639 --- /dev/null +++ b/src/client/pages/settings/notifications.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/client/pages/settings/other.vue b/src/client/pages/settings/other.vue new file mode 100644 index 000000000..9c44d1b4f --- /dev/null +++ b/src/client/pages/settings/other.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/client/pages/settings/plugins.vue b/src/client/pages/settings/plugins.vue new file mode 100644 index 000000000..6cedf0254 --- /dev/null +++ b/src/client/pages/settings/plugins.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/client/pages/settings/privacy.vue b/src/client/pages/settings/privacy.vue new file mode 100644 index 000000000..27a949836 --- /dev/null +++ b/src/client/pages/settings/privacy.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/client/pages/settings/profile.vue b/src/client/pages/settings/profile.vue new file mode 100644 index 000000000..6a523e08c --- /dev/null +++ b/src/client/pages/settings/profile.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/client/pages/settings/reaction.vue b/src/client/pages/settings/reaction.vue new file mode 100644 index 000000000..88de09144 --- /dev/null +++ b/src/client/pages/settings/reaction.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/client/pages/settings/regedit.vue b/src/client/pages/settings/regedit.vue new file mode 100644 index 000000000..3db60c590 --- /dev/null +++ b/src/client/pages/settings/regedit.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/client/pages/settings/security.2fa.vue b/src/client/pages/settings/security.2fa.vue new file mode 100644 index 000000000..22b387844 --- /dev/null +++ b/src/client/pages/settings/security.2fa.vue @@ -0,0 +1,235 @@ + + + diff --git a/src/client/pages/settings/security.vue b/src/client/pages/settings/security.vue new file mode 100644 index 000000000..98863679c --- /dev/null +++ b/src/client/pages/settings/security.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/client/pages/settings/sidebar.vue b/src/client/pages/settings/sidebar.vue new file mode 100644 index 000000000..2ab5acf93 --- /dev/null +++ b/src/client/pages/settings/sidebar.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/client/pages/settings/sounds.vue b/src/client/pages/settings/sounds.vue new file mode 100644 index 000000000..fc6b751fe --- /dev/null +++ b/src/client/pages/settings/sounds.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/client/pages/settings/theme.vue b/src/client/pages/settings/theme.vue new file mode 100644 index 000000000..c023d56de --- /dev/null +++ b/src/client/pages/settings/theme.vue @@ -0,0 +1,501 @@ + + + + + diff --git a/src/client/pages/settings/word-mute.vue b/src/client/pages/settings/word-mute.vue new file mode 100644 index 000000000..444b2e598 --- /dev/null +++ b/src/client/pages/settings/word-mute.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/client/pages/share.vue b/src/client/pages/share.vue new file mode 100644 index 000000000..d56307466 --- /dev/null +++ b/src/client/pages/share.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/client/pages/tag.vue b/src/client/pages/tag.vue new file mode 100644 index 000000000..910e7cd02 --- /dev/null +++ b/src/client/pages/tag.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/client/pages/test.vue b/src/client/pages/test.vue new file mode 100644 index 000000000..77aa264c3 --- /dev/null +++ b/src/client/pages/test.vue @@ -0,0 +1,259 @@ + + + diff --git a/src/client/pages/theme-editor.vue b/src/client/pages/theme-editor.vue new file mode 100644 index 000000000..4b1ec59cf --- /dev/null +++ b/src/client/pages/theme-editor.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/src/client/pages/timeline.tutorial.vue b/src/client/pages/timeline.tutorial.vue new file mode 100644 index 000000000..837915229 --- /dev/null +++ b/src/client/pages/timeline.tutorial.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue new file mode 100644 index 000000000..af4de09af --- /dev/null +++ b/src/client/pages/timeline.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/client/pages/user/follow-list.vue b/src/client/pages/user/follow-list.vue new file mode 100644 index 000000000..6761210ff --- /dev/null +++ b/src/client/pages/user/follow-list.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/client/pages/user/index.activity.vue b/src/client/pages/user/index.activity.vue new file mode 100644 index 000000000..30c02ec54 --- /dev/null +++ b/src/client/pages/user/index.activity.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/client/pages/user/index.photos.vue b/src/client/pages/user/index.photos.vue new file mode 100644 index 000000000..aabcbebe8 --- /dev/null +++ b/src/client/pages/user/index.photos.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/client/pages/user/index.timeline.vue b/src/client/pages/user/index.timeline.vue new file mode 100644 index 000000000..e60feca53 --- /dev/null +++ b/src/client/pages/user/index.timeline.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue new file mode 100644 index 000000000..015d83f75 --- /dev/null +++ b/src/client/pages/user/index.vue @@ -0,0 +1,511 @@ + + + + + diff --git a/src/client/pages/welcome.entrance.block.vue b/src/client/pages/welcome.entrance.block.vue new file mode 100644 index 000000000..0e4aefa4b --- /dev/null +++ b/src/client/pages/welcome.entrance.block.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/client/pages/welcome.entrance.vue b/src/client/pages/welcome.entrance.vue new file mode 100644 index 000000000..b1cd6d50c --- /dev/null +++ b/src/client/pages/welcome.entrance.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/client/pages/welcome.setup.vue b/src/client/pages/welcome.setup.vue new file mode 100644 index 000000000..ef39a4ca0 --- /dev/null +++ b/src/client/pages/welcome.setup.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/client/pages/welcome.vue b/src/client/pages/welcome.vue new file mode 100644 index 000000000..cc57629c8 --- /dev/null +++ b/src/client/pages/welcome.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/client/src/plugin.ts b/src/client/plugin.ts similarity index 95% rename from packages/client/src/plugin.ts rename to src/client/plugin.ts index de1c95567..9d1ef87c1 100644 --- a/packages/client/src/plugin.ts +++ b/src/client/plugin.ts @@ -2,7 +2,7 @@ import { AiScript, utils, values } from '@syuilo/aiscript'; import { deserialize } from '@syuilo/aiscript/built/serializer'; import { jsToVal } from '@syuilo/aiscript/built/interpreter/util'; import { createAiScriptEnv } from '@/scripts/aiscript/api'; -import { inputText } from '@/os'; +import { dialog } from '@/os'; import { noteActions, notePostInterruptors, noteViewInterruptors, postFormActions, userActions } from '@/store'; const pluginContexts = new Map(); @@ -16,8 +16,9 @@ export function install(plugin) { }), { in: (q) => { return new Promise(ok => { - inputText({ + dialog({ title: q, + input: {} }).then(({ canceled, result: a }) => { ok(a); }); @@ -38,7 +39,7 @@ export function install(plugin) { function createPluginEnv(opts) { const config = new Map(); for (const [k, v] of Object.entries(opts.plugin.config || {})) { - config.set(k, jsToVal(typeof opts.plugin.configData[k] !== 'undefined' ? opts.plugin.configData[k] : v.default)); + config.set(k, jsToVal(opts.plugin.configData[k] || v.default)); } return { diff --git a/src/client/router.ts b/src/client/router.ts new file mode 100644 index 000000000..5ad3345d5 --- /dev/null +++ b/src/client/router.ts @@ -0,0 +1,120 @@ +import { defineAsyncComponent, markRaw } from 'vue'; +import { createRouter, createWebHistory } from 'vue-router'; +import MkLoading from '@/pages/_loading_.vue'; +import MkError from '@/pages/_error_.vue'; +import MkTimeline from '@/pages/timeline.vue'; +import { store } from './store'; + +const page = (path: string) => defineAsyncComponent({ + loader: () => import(`./pages/${path}.vue`), + loadingComponent: MkLoading, + errorComponent: MkError, +}); + +let indexScrollPos = 0; + +export const router = createRouter({ + history: createWebHistory(), + routes: [ + // NOTE: MkTimelineをdynamic importするとAsyncComponentWrapperが間に入るせいでkeep-aliveのコンポーネント指定が効かなくなる + { path: '/', name: 'index', component: store.getters.isSignedIn ? MkTimeline : page('welcome') }, + { path: '/@:acct/:page?', name: 'user', component: page('user/index'), props: route => ({ acct: route.params.acct, page: route.params.page || 'index' }) }, + { path: '/@:user/pages/:page', component: page('page'), props: route => ({ pageName: route.params.page, username: route.params.user }) }, + { path: '/@:user/pages/:pageName/view-source', component: page('page-editor/page-editor'), props: route => ({ initUser: route.params.user, initPageName: route.params.pageName }) }, + { path: '/@:acct/room', props: true, component: page('room/room') }, + { path: '/settings/:page?', name: 'settings', component: page('settings/index'), props: route => ({ page: route.params.page || null }) }, + { path: '/announcements', component: page('announcements') }, + { path: '/about', component: page('about') }, + { path: '/about-misskey', component: page('about-misskey') }, + { path: '/featured', component: page('featured') }, + { path: '/docs', component: page('docs') }, + { path: '/theme-editor', component: page('theme-editor') }, + { path: '/docs/:doc', component: page('doc'), props: true }, + { path: '/explore', component: page('explore') }, + { path: '/explore/tags/:tag', props: true, component: page('explore') }, + { path: '/search', component: page('search') }, + { path: '/pages', name: 'pages', component: page('pages') }, + { path: '/pages/new', component: page('page-editor/page-editor') }, + { path: '/pages/edit/:pageId', component: page('page-editor/page-editor'), props: route => ({ initPageId: route.params.pageId }) }, + { path: '/channels', component: page('channels') }, + { path: '/channels/new', component: page('channel-editor') }, + { path: '/channels/:channelId/edit', component: page('channel-editor'), props: true }, + { path: '/channels/:channelId', component: page('channel'), props: route => ({ channelId: route.params.channelId }) }, + { path: '/clips/:clipId', component: page('clip'), props: route => ({ clipId: route.params.clipId }) }, + { path: '/my/notifications', component: page('notifications') }, + { path: '/my/favorites', component: page('favorites') }, + { path: '/my/messages', component: page('messages') }, + { path: '/my/mentions', component: page('mentions') }, + { path: '/my/messaging', name: 'messaging', component: page('messaging/index') }, + { path: '/my/messaging/:user', component: page('messaging/messaging-room'), props: route => ({ userAcct: route.params.user }) }, + { path: '/my/messaging/group/:group', component: page('messaging/messaging-room'), props: route => ({ groupId: route.params.group }) }, + { path: '/my/drive', name: 'drive', component: page('drive') }, + { path: '/my/drive/folder/:folder', component: page('drive') }, + { path: '/my/follow-requests', component: page('follow-requests') }, + { path: '/my/lists', component: page('my-lists/index') }, + { path: '/my/lists/:list', component: page('my-lists/list') }, + { path: '/my/groups', component: page('my-groups/index') }, + { path: '/my/groups/:group', component: page('my-groups/group') }, + { path: '/my/antennas', component: page('my-antennas/index') }, + { path: '/my/clips', component: page('my-clips/index') }, + { path: '/my/apps', component: page('apps') }, + { path: '/scratchpad', component: page('scratchpad') }, + { path: '/instance', component: page('instance/index') }, + { path: '/instance/emojis', component: page('instance/emojis') }, + { path: '/instance/users', component: page('instance/users') }, + { path: '/instance/logs', component: page('instance/logs') }, + { path: '/instance/files', component: page('instance/files') }, + { path: '/instance/queue', component: page('instance/queue') }, + { path: '/instance/settings', component: page('instance/settings') }, + { path: '/instance/federation', component: page('instance/federation') }, + { path: '/instance/relays', component: page('instance/relays') }, + { path: '/instance/announcements', component: page('instance/announcements') }, + { path: '/instance/abuses', component: page('instance/abuses') }, + { path: '/notes/:note', name: 'note', component: page('note'), props: route => ({ noteId: route.params.note }) }, + { path: '/tags/:tag', component: page('tag'), props: route => ({ tag: route.params.tag }) }, + { path: '/games/reversi', component: page('reversi/index') }, + { path: '/games/reversi/:gameId', component: page('reversi/game'), props: route => ({ gameId: route.params.gameId }) }, + { path: '/mfm-cheat-sheet', component: page('mfm-cheat-sheet') }, + { path: '/api-console', component: page('api-console') }, + { path: '/test', component: page('test') }, + { path: '/auth/:token', component: page('auth') }, + { path: '/miauth/:session', component: page('miauth') }, + { path: '/authorize-follow', component: page('follow') }, + { path: '/share', component: page('share') }, + { path: '/test', component: page('test') }, + { path: '/:catchAll(.*)', component: page('not-found') } + ], + // なんかHacky + // 通常の使い方をすると scroll メソッドの behavior を設定できないため、自前で window.scroll するようにする + scrollBehavior(to) { + window._scroll = () => { // さらにHacky + if (to.name === 'index') { + window.scroll({ top: indexScrollPos, behavior: 'instant' }); + const i = setInterval(() => { + window.scroll({ top: indexScrollPos, behavior: 'instant' }); + }, 10); + setTimeout(() => { + clearInterval(i); + }, 500); + } else { + window.scroll({ top: 0, behavior: 'instant' }); + } + }; + } +}); + +router.afterEach((to, from) => { + if (from.name === 'index') { + indexScrollPos = window.scrollY; + } +}); + +export function resolve(path: string) { + const resolved = router.resolve(path); + const route = resolved.matched[0]; + return { + component: markRaw(route.components.default), + // TODO: route.propsには関数以外も入る可能性があるのでよしなにハンドリングする + props: route.props?.default ? route.props.default(resolved) : resolved.params + }; +} diff --git a/src/client/scripts/2fa.ts b/src/client/scripts/2fa.ts new file mode 100644 index 000000000..00363cffa --- /dev/null +++ b/src/client/scripts/2fa.ts @@ -0,0 +1,33 @@ +export function byteify(data: string, encoding: 'ascii' | 'base64' | 'hex') { + switch (encoding) { + case 'ascii': + return Uint8Array.from(data, c => c.charCodeAt(0)); + case 'base64': + return Uint8Array.from( + atob( + data + .replace(/-/g, '+') + .replace(/_/g, '/') + ), + c => c.charCodeAt(0) + ); + case 'hex': + return new Uint8Array( + data + .match(/.{1,2}/g) + .map(byte => parseInt(byte, 16)) + ); + } +} + +export function hexify(buffer: ArrayBuffer) { + return Array.from(new Uint8Array(buffer)) + .reduce( + (str, byte) => str + byte.toString(16).padStart(2, '0'), + '' + ); +} + +export function stringify(buffer: ArrayBuffer) { + return String.fromCharCode(... new Uint8Array(buffer)); +} diff --git a/src/client/scripts/aiscript/api.ts b/src/client/scripts/aiscript/api.ts new file mode 100644 index 000000000..f5618bd14 --- /dev/null +++ b/src/client/scripts/aiscript/api.ts @@ -0,0 +1,44 @@ +import { utils, values } from '@syuilo/aiscript'; +import { store } from '@/store'; +import * as os from '@/os'; + +export function createAiScriptEnv(opts) { + let apiRequests = 0; + return { + USER_ID: store.getters.isSignedIn ? values.STR(store.state.i.id) : values.NULL, + USER_NAME: store.getters.isSignedIn ? values.STR(store.state.i.name) : values.NULL, + USER_USERNAME: store.getters.isSignedIn ? values.STR(store.state.i.username) : values.NULL, + 'Mk:dialog': values.FN_NATIVE(async ([title, text, type]) => { + await os.dialog({ + type: type ? type.value : 'info', + title: title.value, + text: text.value, + }); + }), + 'Mk:confirm': values.FN_NATIVE(async ([title, text, type]) => { + const confirm = await os.dialog({ + type: type ? type.value : 'question', + showCancelButton: true, + title: title.value, + text: text.value, + }); + return confirm.canceled ? values.FALSE : values.TRUE; + }), + 'Mk:api': values.FN_NATIVE(async ([ep, param, token]) => { + if (token) utils.assertString(token); + apiRequests++; + if (apiRequests > 16) return values.NULL; + const res = await os.api(ep.value, utils.valToJs(param), token ? token.value : (opts.token || null)); + return utils.jsToVal(res); + }), + 'Mk:save': values.FN_NATIVE(([key, value]) => { + utils.assertString(key); + localStorage.setItem('aiscript:' + opts.storageKey + ':' + key.value, JSON.stringify(utils.valToJs(value))); + return values.NULL; + }), + 'Mk:load': values.FN_NATIVE(([key]) => { + utils.assertString(key); + return utils.jsToVal(JSON.parse(localStorage.getItem('aiscript:' + opts.storageKey + ':' + key.value))); + }), + }; +} diff --git a/src/client/scripts/autocomplete.ts b/src/client/scripts/autocomplete.ts new file mode 100644 index 000000000..83ceece5d --- /dev/null +++ b/src/client/scripts/autocomplete.ts @@ -0,0 +1,249 @@ +import { Ref, ref } from 'vue'; +import * as getCaretCoordinates from 'textarea-caret'; +import { toASCII } from 'punycode'; +import { popup } from '@/os'; + +export class Autocomplete { + private suggestion: { + x: Ref; + y: Ref; + q: Ref; + close: Function; + }; + private textarea: any; + private vm: any; + private currentType: string; + private opts: { + model: string; + }; + private opening: boolean; + + private get text(): string { + return this.vm[this.opts.model]; + } + + private set text(text: string) { + this.vm[this.opts.model] = text; + } + + /** + * 対象のテキストエリアを与えてインスタンスを初期化します。 + */ + constructor(textarea, vm, opts) { + //#region BIND + this.onInput = this.onInput.bind(this); + this.complete = this.complete.bind(this); + this.close = this.close.bind(this); + //#endregion + + this.suggestion = null; + this.textarea = textarea; + this.vm = vm; + this.opts = opts; + this.opening = false; + + this.attach(); + } + + /** + * このインスタンスにあるテキストエリアの入力のキャプチャを開始します。 + */ + public attach() { + this.textarea.addEventListener('input', this.onInput); + } + + /** + * このインスタンスにあるテキストエリアの入力のキャプチャを解除します。 + */ + public detach() { + this.textarea.removeEventListener('input', this.onInput); + this.close(); + } + + /** + * テキスト入力時 + */ + private onInput() { + const caretPos = this.textarea.selectionStart; + const text = this.text.substr(0, caretPos).split('\n').pop(); + + const mentionIndex = text.lastIndexOf('@'); + const hashtagIndex = text.lastIndexOf('#'); + const emojiIndex = text.lastIndexOf(':'); + + const max = Math.max( + mentionIndex, + hashtagIndex, + emojiIndex); + + if (max == -1) { + this.close(); + return; + } + + const isMention = mentionIndex != -1; + const isHashtag = hashtagIndex != -1; + const isEmoji = emojiIndex != -1; + + let opened = false; + + if (isMention) { + const username = text.substr(mentionIndex + 1); + if (username != '' && username.match(/^[a-zA-Z0-9_]+$/)) { + this.open('user', username); + opened = true; + } else if (username === '') { + this.open('user', null); + opened = true; + } + } + + if (isHashtag && !opened) { + const hashtag = text.substr(hashtagIndex + 1); + if (!hashtag.includes(' ')) { + this.open('hashtag', hashtag); + opened = true; + } + } + + if (isEmoji && !opened) { + const emoji = text.substr(emojiIndex + 1); + if (!emoji.includes(' ')) { + this.open('emoji', emoji); + opened = true; + } + } + + if (!opened) { + this.close(); + } + } + + /** + * サジェストを提示します。 + */ + private async open(type: string, q: string) { + if (type != this.currentType) { + this.close(); + } + if (this.opening) return; + this.opening = true; + this.currentType = type; + + //#region サジェストを表示すべき位置を計算 + const caretPosition = getCaretCoordinates(this.textarea, this.textarea.selectionStart); + + const rect = this.textarea.getBoundingClientRect(); + + const x = rect.left + caretPosition.left - this.textarea.scrollLeft; + const y = rect.top + caretPosition.top - this.textarea.scrollTop; + //#endregion + + if (this.suggestion) { + this.suggestion.x.value = x; + this.suggestion.y.value = y; + this.suggestion.q.value = q; + + this.opening = false; + } else { + const _x = ref(x); + const _y = ref(y); + const _q = ref(q); + + const { dispose } = await popup(import('@/components/autocomplete.vue'), { + textarea: this.textarea, + close: this.close, + type: type, + q: _q, + x: _x, + y: _y, + }, { + done: (res) => { + this.complete(res); + } + }); + + this.suggestion = { + q: _q, + x: _x, + y: _y, + close: () => dispose(), + }; + + this.opening = false; + } + } + + /** + * サジェストを閉じます。 + */ + private close() { + if (this.suggestion == null) return; + + this.suggestion.close(); + this.suggestion = null; + + this.textarea.focus(); + } + + /** + * オートコンプリートする + */ + private complete({ type, value }) { + this.close(); + + const caret = this.textarea.selectionStart; + + if (type == 'user') { + const source = this.text; + + const before = source.substr(0, caret); + const trimmedBefore = before.substring(0, before.lastIndexOf('@')); + const after = source.substr(caret); + + const acct = value.host === null ? value.username : `${value.username}@${toASCII(value.host)}`; + + // 挿入 + this.text = `${trimmedBefore}@${acct} ${after}`; + + // キャレットを戻す + this.vm.$nextTick(() => { + this.textarea.focus(); + const pos = trimmedBefore.length + (acct.length + 2); + this.textarea.setSelectionRange(pos, pos); + }); + } else if (type == 'hashtag') { + const source = this.text; + + const before = source.substr(0, caret); + const trimmedBefore = before.substring(0, before.lastIndexOf('#')); + const after = source.substr(caret); + + // 挿入 + this.text = `${trimmedBefore}#${value} ${after}`; + + // キャレットを戻す + this.vm.$nextTick(() => { + this.textarea.focus(); + const pos = trimmedBefore.length + (value.length + 2); + this.textarea.setSelectionRange(pos, pos); + }); + } else if (type == 'emoji') { + const source = this.text; + + const before = source.substr(0, caret); + const trimmedBefore = before.substring(0, before.lastIndexOf(':')); + const after = source.substr(caret); + + // 挿入 + this.text = trimmedBefore + value + after; + + // キャレットを戻す + this.vm.$nextTick(() => { + this.textarea.focus(); + const pos = trimmedBefore.length + value.length; + this.textarea.setSelectionRange(pos, pos); + }); + } + } +} diff --git a/src/client/scripts/check-word-mute.ts b/src/client/scripts/check-word-mute.ts new file mode 100644 index 000000000..3b1fa75b1 --- /dev/null +++ b/src/client/scripts/check-word-mute.ts @@ -0,0 +1,26 @@ +export async function checkWordMute(note: Record, me: Record | null | undefined, mutedWords: string[][]): Promise { + // 自分自身 + if (me && (note.userId === me.id)) return false; + + const words = mutedWords + // Clean up + .map(xs => xs.filter(x => x !== '')) + .filter(xs => xs.length > 0); + + if (words.length > 0) { + if (note.text == null) return false; + + const matched = words.some(and => + and.every(keyword => { + const regexp = keyword.match(/^\/(.+)\/(.*)$/); + if (regexp) { + return new RegExp(regexp[1], regexp[2]).test(note.text!); + } + return note.text!.includes(keyword); + })); + + if (matched) return true; + } + + return false; +} diff --git a/packages/client/src/scripts/collect-page-vars.ts b/src/client/scripts/collect-page-vars.ts similarity index 100% rename from packages/client/src/scripts/collect-page-vars.ts rename to src/client/scripts/collect-page-vars.ts diff --git a/src/client/scripts/compose-notification.ts b/src/client/scripts/compose-notification.ts new file mode 100644 index 000000000..1552d45e4 --- /dev/null +++ b/src/client/scripts/compose-notification.ts @@ -0,0 +1,95 @@ +import getNoteSummary from '../../misc/get-note-summary'; +import getUserName from '../../misc/get-user-name'; +import { clientDb, get, bulkGet } from '../db'; + +const getTranslation = (text: string): Promise => get(text, clientDb.i18n); + +export default async function(type, data): Promise<[string, NotificationOptions]> { + const contexts = ['deletedNote', 'invisibleNote', 'withNFiles', 'poll']; + const locale = Object.fromEntries(await bulkGet(contexts, clientDb.i18n) as [string, string][]); + + switch (type) { + case 'driveFileCreated': // TODO (Server Side) + return [await getTranslation('_notification.fileUploaded'), { + body: data.name, + icon: data.url + }]; + case 'notification': + switch (data.type) { + case 'mention': + return [(await getTranslation('_notification.youGotMention')).replace('{name}', getUserName(data.user)), { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'reply': + return [(await getTranslation('_notification.youGotReply')).replace('{name}', getUserName(data.user)), { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'renote': + return [(await getTranslation('_notification.youRenoted')).replace('{name}', getUserName(data.user)), { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'quote': + return [(await getTranslation('_notification.youGotQuote')).replace('{name}', getUserName(data.user)), { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'reaction': + return [`${data.reaction} ${getUserName(data.user)}`, { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'pollVote': + return [(await getTranslation('_notification.youGotPoll')).replace('{name}', getUserName(data.user)), { + body: getNoteSummary(data.note, locale), + icon: data.user.avatarUrl + }]; + + case 'follow': + return [await getTranslation('_notification.youWereFollowed'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'receiveFollowRequest': + return [await getTranslation('_notification.youReceivedFollowRequest'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'followRequestAccepted': + return [await getTranslation('_notification.yourFollowRequestAccepted'), { + body: getUserName(data.user), + icon: data.user.avatarUrl + }]; + + case 'groupInvited': + return [await getTranslation('_notification.youWereInvitedToGroup'), { + body: data.group.name + }]; + + default: + return null; + } + case 'unreadMessagingMessage': + if (data.groupId === null) { + return [(await getTranslation('_notification.youGotMessagingMessageFromUser')).replace('{name}', getUserName(data.user)), { + icon: data.user.avatarUrl, + tag: `messaging:user:${data.user.id}` + }]; + } + return [(await getTranslation('_notification.youGotMessagingMessageFromGroup')).replace('{name}', data.group.name), { + icon: data.user.avatarUrl, + tag: `messaging:group:${data.group.id}` + }]; + default: + return null; + } +} diff --git a/packages/client/src/scripts/contains.ts b/src/client/scripts/contains.ts similarity index 84% rename from packages/client/src/scripts/contains.ts rename to src/client/scripts/contains.ts index 256e09d29..770bda63b 100644 --- a/packages/client/src/scripts/contains.ts +++ b/src/client/scripts/contains.ts @@ -2,7 +2,7 @@ export default (parent, child, checkSame = true) => { if (checkSame && parent === child) return true; let node = child.parentNode; while (node) { - if (node === parent) return true; + if (node == parent) return true; node = node.parentNode; } return false; diff --git a/packages/client/src/scripts/copy-to-clipboard.ts b/src/client/scripts/copy-to-clipboard.ts similarity index 100% rename from packages/client/src/scripts/copy-to-clipboard.ts rename to src/client/scripts/copy-to-clipboard.ts diff --git a/packages/client/src/scripts/extract-avg-color-from-blurhash.ts b/src/client/scripts/extract-avg-color-from-blurhash.ts similarity index 90% rename from packages/client/src/scripts/extract-avg-color-from-blurhash.ts rename to src/client/scripts/extract-avg-color-from-blurhash.ts index af517f267..123ab7a06 100644 --- a/packages/client/src/scripts/extract-avg-color-from-blurhash.ts +++ b/src/client/scripts/extract-avg-color-from-blurhash.ts @@ -1,5 +1,5 @@ export function extractAvgColorFromBlurhash(hash: string) { - return typeof hash === 'string' + return typeof hash == 'string' ? '#' + [...hash.slice(2, 6)] .map(x => '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~'.indexOf(x)) .reduce((a, c) => a * 83 + c, 0) diff --git a/packages/client/src/scripts/focus.ts b/src/client/scripts/focus.ts similarity index 100% rename from packages/client/src/scripts/focus.ts rename to src/client/scripts/focus.ts diff --git a/src/client/scripts/form.ts b/src/client/scripts/form.ts new file mode 100644 index 000000000..7bf6cec45 --- /dev/null +++ b/src/client/scripts/form.ts @@ -0,0 +1,31 @@ +export type FormItem = { + label?: string; + type: 'string'; + default: string | null; + hidden?: boolean; + multiline?: boolean; +} | { + label?: string; + type: 'number'; + default: number | null; + hidden?: boolean; + step?: number; +} | { + label?: string; + type: 'boolean'; + default: boolean | null; + hidden?: boolean; +} | { + label?: string; + type: 'enum'; + default: string | null; + hidden?: boolean; + enum: string[]; +} | { + label?: string; + type: 'array'; + default: unknown[] | null; + hidden?: boolean; +}; + +export type Form = Record; diff --git a/packages/client/src/scripts/gen-search-query.ts b/src/client/scripts/gen-search-query.ts similarity index 83% rename from packages/client/src/scripts/gen-search-query.ts rename to src/client/scripts/gen-search-query.ts index b413cbbab..670d91510 100644 --- a/packages/client/src/scripts/gen-search-query.ts +++ b/src/client/scripts/gen-search-query.ts @@ -1,4 +1,4 @@ -import * as Acct from 'misskey-js/built/acct'; +import parseAcct from '../../misc/acct/parse'; import { host as localHost } from '@/config'; export async function genSearchQuery(v: any, q: string) { @@ -13,7 +13,7 @@ export async function genSearchQuery(v: any, q: string) { host = at; } } else { - const user = await v.os.api('users/show', Acct.parse(at)).catch(x => null); + const user = await v.os.api('users/show', parseAcct(at)).catch(x => null); if (user) { userId = user.id; } else { @@ -21,6 +21,7 @@ export async function genSearchQuery(v: any, q: string) { } } } + } return { query: q.split(' ').filter(x => !x.startsWith('/') && !x.startsWith('@')).join(' '), diff --git a/src/client/scripts/get-md5.ts b/src/client/scripts/get-md5.ts new file mode 100644 index 000000000..b002d762b --- /dev/null +++ b/src/client/scripts/get-md5.ts @@ -0,0 +1,10 @@ +// スクリプトサイズがデカい +//import * as crypto from 'crypto'; + +export default (data: ArrayBuffer) => { + //const buf = new Buffer(data); + //const hash = crypto.createHash('md5'); + //hash.update(buf); + //return hash.digest('hex'); + return ''; +}; diff --git a/src/client/scripts/get-static-image-url.ts b/src/client/scripts/get-static-image-url.ts new file mode 100644 index 000000000..e932eb6da --- /dev/null +++ b/src/client/scripts/get-static-image-url.ts @@ -0,0 +1,11 @@ +import { url as instanceUrl } from '@/config'; +import * as url from '../../prelude/url'; + +export function getStaticImageUrl(baseUrl: string): string { + const u = new URL(baseUrl); + const dummy = `${u.host}${u.pathname}`; // 拡張子がないとキャッシュしてくれないCDNがあるので + return `${instanceUrl}/proxy/${dummy}?${url.query({ + url: u.href, + static: '1' + })}`; +} diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts new file mode 100644 index 000000000..c3de7313c --- /dev/null +++ b/src/client/scripts/get-user-menu.ts @@ -0,0 +1,199 @@ +import { faAt, faListUl, faEye, faEyeSlash, faBan, faPencilAlt, faComments, faUsers, faMicrophoneSlash, faPlug, faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; +import { faSnowflake, faEnvelope } from '@fortawesome/free-regular-svg-icons'; +import { i18n } from '@/i18n'; +import copyToClipboard from '@/scripts/copy-to-clipboard'; +import { host } from '@/config'; +import getAcct from '../../misc/acct/render'; +import * as os from '@/os'; +import { store, userActions } from '@/store'; +import { router } from '@/router'; +import { popout } from './popout'; + +export function getUserMenu(user) { + async function pushList() { + const t = i18n.global.t('selectList'); // なぜか後で参照すると null になるので最初にメモリに確保しておく + const lists = await os.api('users/lists/list'); + if (lists.length === 0) { + os.dialog({ + type: 'error', + text: i18n.global.t('youHaveNoLists') + }); + return; + } + const { canceled, result: listId } = await os.dialog({ + type: null, + title: t, + select: { + items: lists.map(list => ({ + value: list.id, text: list.name + })) + }, + showCancelButton: true + }); + if (canceled) return; + os.apiWithDialog('users/lists/push', { + listId: listId, + userId: user.id + }); + } + + async function inviteGroup() { + const groups = await os.api('users/groups/owned'); + if (groups.length === 0) { + os.dialog({ + type: 'error', + text: i18n.global.t('youHaveNoGroups') + }); + return; + } + const { canceled, result: groupId } = await os.dialog({ + type: null, + title: i18n.global.t('group'), + select: { + items: groups.map(group => ({ + value: group.id, text: group.name + })) + }, + showCancelButton: true + }); + if (canceled) return; + os.apiWithDialog('users/groups/invite', { + groupId: groupId, + userId: user.id + }); + } + + async function toggleMute() { + os.apiWithDialog(user.isMuted ? 'mute/delete' : 'mute/create', { + userId: user.id + }).then(() => { + user.isMuted = !user.isMuted; + }); + } + + async function toggleBlock() { + if (!await getConfirmed(user.isBlocking ? i18n.global.t('unblockConfirm') : i18n.global.t('blockConfirm'))) return; + + os.apiWithDialog(user.isBlocking ? 'blocking/delete' : 'blocking/create', { + userId: user.id + }).then(() => { + user.isBlocking = !user.isBlocking; + }); + } + + async function toggleSilence() { + if (!await getConfirmed(i18n.global.t(user.isSilenced ? 'unsilenceConfirm' : 'silenceConfirm'))) return; + + os.apiWithDialog(user.isSilenced ? 'admin/unsilence-user' : 'admin/silence-user', { + userId: user.id + }).then(() => { + user.isSilenced = !user.isSilenced; + }); + } + + async function toggleSuspend() { + if (!await getConfirmed(i18n.global.t(user.isSuspended ? 'unsuspendConfirm' : 'suspendConfirm'))) return; + + os.apiWithDialog(user.isSuspended ? 'admin/unsuspend-user' : 'admin/suspend-user', { + userId: user.id + }).then(() => { + user.isSuspended = !user.isSuspended; + }); + } + + function reportAbuse() { + os.popup(import('@/components/abuse-report-window.vue'), { + user: user, + }, {}, 'closed'); + } + + async function getConfirmed(text: string): Promise { + const confirm = await os.dialog({ + type: 'warning', + showCancelButton: true, + title: 'confirm', + text, + }); + + return !confirm.canceled; + } + + let menu = [{ + icon: faAt, + text: i18n.global.t('copyUsername'), + action: () => { + copyToClipboard(`@${user.username}@${user.host || host}`); + } + }, { + icon: faEnvelope, + text: i18n.global.t('sendMessage'), + action: () => { + os.post({ specified: user }); + } + }, store.state.i.id != user.id ? { + type: 'link', + icon: faComments, + text: i18n.global.t('startMessaging'), + to: '/my/messaging/' + getAcct(user), + } : undefined, null, { + icon: faListUl, + text: i18n.global.t('addToList'), + action: pushList + }, store.state.i.id != user.id ? { + icon: faUsers, + text: i18n.global.t('inviteToGroup'), + action: inviteGroup + } : undefined] as any; + + if (store.getters.isSignedIn && store.state.i.id != user.id) { + menu = menu.concat([null, { + icon: user.isMuted ? faEye : faEyeSlash, + text: user.isMuted ? i18n.global.t('unmute') : i18n.global.t('mute'), + action: toggleMute + }, { + icon: faBan, + text: user.isBlocking ? i18n.global.t('unblock') : i18n.global.t('block'), + action: toggleBlock + }]); + + menu = menu.concat([null, { + icon: faExclamationCircle, + text: i18n.global.t('reportAbuse'), + action: reportAbuse + }]); + + if (store.getters.isSignedIn && (store.state.i.isAdmin || store.state.i.isModerator)) { + menu = menu.concat([null, { + icon: faMicrophoneSlash, + text: user.isSilenced ? i18n.global.t('unsilence') : i18n.global.t('silence'), + action: toggleSilence + }, { + icon: faSnowflake, + text: user.isSuspended ? i18n.global.t('unsuspend') : i18n.global.t('suspend'), + action: toggleSuspend + }]); + } + } + + if (store.getters.isSignedIn && store.state.i.id === user.id) { + menu = menu.concat([null, { + icon: faPencilAlt, + text: i18n.global.t('editProfile'), + action: () => { + router.push('/settings/profile'); + } + }]); + } + + if (userActions.length > 0) { + menu = menu.concat([null, ...userActions.map(action => ({ + icon: faPlug, + text: action.title, + action: () => { + action.handler(user); + } + }))]); + } + + return menu; +} diff --git a/src/client/scripts/hpml/evaluator.ts b/src/client/scripts/hpml/evaluator.ts new file mode 100644 index 000000000..bd7ec600c --- /dev/null +++ b/src/client/scripts/hpml/evaluator.ts @@ -0,0 +1,351 @@ +import autobind from 'autobind-decorator'; +import * as seedrandom from 'seedrandom'; +import { Variable, PageVar, envVarsDef, funcDefs, Block, isFnBlock } from '.'; +import { version } from '@/config'; +import { AiScript, utils, values } from '@syuilo/aiscript'; +import { createAiScriptEnv } from '../aiscript/api'; +import { collectPageVars } from '../collect-page-vars'; +import { initLib } from './lib'; +import * as os from '@/os'; +import { markRaw, ref, Ref } from 'vue'; + +type Fn = { + slots: string[]; + exec: (args: Record) => ReturnType; +}; + +/** + * Hpml evaluator + */ +export class Hpml { + private variables: Variable[]; + private pageVars: PageVar[]; + private envVars: Record; + public aiscript?: AiScript; + private pageVarUpdatedCallback; + public canvases: Record = {}; + public vars: Ref> = ref({}); + public page: Record; + + private opts: { + randomSeed: string; visitor?: any; url?: string; + enableAiScript: boolean; + }; + + constructor(page: Hpml['page'], opts: Hpml['opts']) { + this.page = page; + this.variables = this.page.variables; + this.pageVars = collectPageVars(this.page.content); + this.opts = opts; + + if (this.opts.enableAiScript) { + this.aiscript = markRaw(new AiScript({ ...createAiScriptEnv({ + storageKey: 'pages:' + this.page.id + }), ...initLib(this)}, { + in: (q) => { + return new Promise(ok => { + os.dialog({ + title: q, + input: {} + }).then(({ canceled, result: a }) => { + ok(a); + }); + }); + }, + out: (value) => { + console.log(value); + }, + log: (type, params) => { + }, + })); + + this.aiscript.scope.opts.onUpdated = (name, value) => { + this.eval(); + }; + } + + const date = new Date(); + + this.envVars = { + AI: 'kawaii', + VERSION: version, + URL: this.page ? `${opts.url}/@${this.page.user.username}/pages/${this.page.name}` : '', + LOGIN: opts.visitor != null, + NAME: opts.visitor ? opts.visitor.name || opts.visitor.username : '', + USERNAME: opts.visitor ? opts.visitor.username : '', + USERID: opts.visitor ? opts.visitor.id : '', + NOTES_COUNT: opts.visitor ? opts.visitor.notesCount : 0, + FOLLOWERS_COUNT: opts.visitor ? opts.visitor.followersCount : 0, + FOLLOWING_COUNT: opts.visitor ? opts.visitor.followingCount : 0, + IS_CAT: opts.visitor ? opts.visitor.isCat : false, + SEED: opts.randomSeed ? opts.randomSeed : '', + YMD: `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`, + AISCRIPT_DISABLED: !this.opts.enableAiScript, + NULL: null + }; + + this.eval(); + } + + @autobind + public eval() { + try { + this.vars.value = this.evaluateVars(); + } catch (e) { + //this.onError(e); + } + } + + @autobind + public interpolate(str: string) { + if (str == null) return null; + return str.replace(/{(.+?)}/g, match => { + const v = this.vars[match.slice(1, -1).trim()]; + return v == null ? 'NULL' : v.toString(); + }); + } + + @autobind + public callAiScript(fn: string) { + try { + if (this.aiscript) this.aiscript.execFn(this.aiscript.scope.get(fn), []); + } catch (e) {} + } + + @autobind + public registerCanvas(id: string, canvas: any) { + this.canvases[id] = canvas; + } + + @autobind + public updatePageVar(name: string, value: any) { + const pageVar = this.pageVars.find(v => v.name === name); + if (pageVar !== undefined) { + pageVar.value = value; + if (this.pageVarUpdatedCallback) { + if (this.aiscript) this.aiscript.execFn(this.pageVarUpdatedCallback, [values.STR(name), utils.jsToVal(value)]); + } + } else { + throw new HpmlError(`No such page var '${name}'`); + } + } + + @autobind + public updateRandomSeed(seed: string) { + this.opts.randomSeed = seed; + this.envVars.SEED = seed; + } + + @autobind + private _interpolate(str: string, scope: Scope) { + return str.replace(/{(.+?)}/g, match => { + const v = scope.getState(match.slice(1, -1).trim()); + return v == null ? 'NULL' : v.toString(); + }); + } + + @autobind + public evaluateVars(): Record { + const values: Record = {}; + + for (const [k, v] of Object.entries(this.envVars)) { + values[k] = v; + } + + for (const v of this.pageVars) { + values[v.name] = v.value; + } + + for (const v of this.variables) { + values[v.name] = this.evaluate(v, new Scope([values])); + } + + return values; + } + + @autobind + private evaluate(block: Block, scope: Scope): any { + if (block.type === null) { + return null; + } + + if (block.type === 'number') { + return parseInt(block.value, 10); + } + + if (block.type === 'text' || block.type === 'multiLineText') { + return this._interpolate(block.value || '', scope); + } + + if (block.type === 'textList') { + return this._interpolate(block.value || '', scope).trim().split('\n'); + } + + if (block.type === 'ref') { + return scope.getState(block.value); + } + + if (block.type === 'aiScriptVar') { + if (this.aiscript) { + try { + return utils.valToJs(this.aiscript.scope.get(block.value)); + } catch (e) { + return null; + } + } else { + return null; + } + } + + if (isFnBlock(block)) { // ユーザー関数定義 + return { + slots: block.value.slots.map(x => x.name), + exec: (slotArg: Record) => { + return this.evaluate(block.value.expression, scope.createChildScope(slotArg, block.id)); + } + } as Fn; + } + + if (block.type.startsWith('fn:')) { // ユーザー関数呼び出し + const fnName = block.type.split(':')[1]; + const fn = scope.getState(fnName); + const args = {} as Record; + for (let i = 0; i < fn.slots.length; i++) { + const name = fn.slots[i]; + args[name] = this.evaluate(block.args[i], scope); + } + return fn.exec(args); + } + + if (block.args === undefined) return null; + + const date = new Date(); + const day = `${this.opts.visitor ? this.opts.visitor.id : ''} ${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`; + + const funcs: { [p in keyof typeof funcDefs]: Function } = { + not: (a: boolean) => !a, + or: (a: boolean, b: boolean) => a || b, + and: (a: boolean, b: boolean) => a && b, + eq: (a: any, b: any) => a === b, + notEq: (a: any, b: any) => a !== b, + gt: (a: number, b: number) => a > b, + lt: (a: number, b: number) => a < b, + gtEq: (a: number, b: number) => a >= b, + ltEq: (a: number, b: number) => a <= b, + if: (bool: boolean, a: any, b: any) => bool ? a : b, + for: (times: number, fn: Fn) => { + const result = []; + for (let i = 0; i < times; i++) { + result.push(fn.exec({ + [fn.slots[0]]: i + 1 + })); + } + return result; + }, + add: (a: number, b: number) => a + b, + subtract: (a: number, b: number) => a - b, + multiply: (a: number, b: number) => a * b, + divide: (a: number, b: number) => a / b, + mod: (a: number, b: number) => a % b, + round: (a: number) => Math.round(a), + strLen: (a: string) => a.length, + strPick: (a: string, b: number) => a[b - 1], + strReplace: (a: string, b: string, c: string) => a.split(b).join(c), + strReverse: (a: string) => a.split('').reverse().join(''), + join: (texts: string[], separator: string) => texts.join(separator || ''), + stringToNumber: (a: string) => parseInt(a), + numberToString: (a: number) => a.toString(), + splitStrByLine: (a: string) => a.split('\n'), + pick: (list: any[], i: number) => list[i - 1], + listLen: (list: any[]) => list.length, + random: (probability: number) => Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * 100) < probability, + rannum: (min: number, max: number) => min + Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * (max - min + 1)), + randomPick: (list: any[]) => list[Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * list.length)], + dailyRandom: (probability: number) => Math.floor(seedrandom(`${day}:${block.id}`)() * 100) < probability, + dailyRannum: (min: number, max: number) => min + Math.floor(seedrandom(`${day}:${block.id}`)() * (max - min + 1)), + dailyRandomPick: (list: any[]) => list[Math.floor(seedrandom(`${day}:${block.id}`)() * list.length)], + seedRandom: (seed: any, probability: number) => Math.floor(seedrandom(seed)() * 100) < probability, + seedRannum: (seed: any, min: number, max: number) => min + Math.floor(seedrandom(seed)() * (max - min + 1)), + seedRandomPick: (seed: any, list: any[]) => list[Math.floor(seedrandom(seed)() * list.length)], + DRPWPM: (list: string[]) => { + const xs = []; + let totalFactor = 0; + for (const x of list) { + const parts = x.split(' '); + const factor = parseInt(parts.pop()!, 10); + const text = parts.join(' '); + totalFactor += factor; + xs.push({ factor, text }); + } + const r = seedrandom(`${day}:${block.id}`)() * totalFactor; + let stackedFactor = 0; + for (const x of xs) { + if (r >= stackedFactor && r <= stackedFactor + x.factor) { + return x.text; + } else { + stackedFactor += x.factor; + } + } + return xs[0].text; + }, + }; + + const fnName = block.type; + const fn = (funcs as any)[fnName]; + if (fn == null) { + throw new HpmlError(`No such function '${fnName}'`); + } else { + return fn(...block.args.map(x => this.evaluate(x, scope))); + } + } +} + +class HpmlError extends Error { + public info?: any; + + constructor(message: string, info?: any) { + super(message); + + this.info = info; + + // Maintains proper stack trace for where our error was thrown (only available on V8) + if (Error.captureStackTrace) { + Error.captureStackTrace(this, HpmlError); + } + } +} + +class Scope { + private layerdStates: Record[]; + public name: string; + + constructor(layerdStates: Scope['layerdStates'], name?: Scope['name']) { + this.layerdStates = layerdStates; + this.name = name || 'anonymous'; + } + + @autobind + public createChildScope(states: Record, name?: Scope['name']): Scope { + const layer = [states, ...this.layerdStates]; + return new Scope(layer, name); + } + + /** + * 指定した名前の変数の値を取得します + * @param name 変数名 + */ + @autobind + public getState(name: string): any { + for (const later of this.layerdStates) { + const state = later[name]; + if (state !== undefined) { + return state; + } + } + + throw new HpmlError( + `No such variable '${name}' in scope '${this.name}'`, { + scope: this.layerdStates + }); + } +} diff --git a/src/client/scripts/hpml/index.ts b/src/client/scripts/hpml/index.ts new file mode 100644 index 000000000..c87d5b998 --- /dev/null +++ b/src/client/scripts/hpml/index.ts @@ -0,0 +1,139 @@ +/** + * Hpml + */ + +import { + faMagic, + faSquareRootAlt, + faAlignLeft, + faShareAlt, + faPlus, + faMinus, + faTimes, + faDivide, + faList, + faQuoteRight, + faEquals, + faGreaterThan, + faLessThan, + faGreaterThanEqual, + faLessThanEqual, + faNotEqual, + faDice, + faSortNumericUp, + faExchangeAlt, + faRecycle, + faIndent, + faCalculator, +} from '@fortawesome/free-solid-svg-icons'; +import { faFlag } from '@fortawesome/free-regular-svg-icons'; + +export type Block = { + id: string; + type: string; + args: Block[]; + value: V; +}; + +export type FnBlock = Block<{ + slots: { + name: string; + type: Type; + }[]; + expression: Block; +}>; + +export type Variable = Block & { + name: string; +}; + +export type Type = 'string' | 'number' | 'boolean' | 'stringArray' | null; + +export const funcDefs: Record = { + if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: faShareAlt, }, + for: { in: ['number', 'function'], out: null, category: 'flow', icon: faRecycle, }, + not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, + or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, + and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: faFlag, }, + add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faPlus, }, + subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faMinus, }, + multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faTimes, }, + divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, }, + mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: faDivide, }, + round: { in: ['number'], out: 'number', category: 'operation', icon: faCalculator, }, + eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faEquals, }, + notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: faNotEqual, }, + gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThan, }, + lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThan, }, + gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faGreaterThanEqual, }, + ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: faLessThanEqual, }, + strLen: { in: ['string'], out: 'number', category: 'text', icon: faQuoteRight, }, + strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: faQuoteRight, }, + strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: faQuoteRight, }, + strReverse: { in: ['string'], out: 'string', category: 'text', icon: faQuoteRight, }, + join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: faQuoteRight, }, + stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: faExchangeAlt, }, + numberToString: { in: ['number'], out: 'string', category: 'convert', icon: faExchangeAlt, }, + splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: faExchangeAlt, }, + pick: { in: [null, 'number'], out: null, category: 'list', icon: faIndent, }, + listLen: { in: [null], out: 'number', category: 'list', icon: faIndent, }, + rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, }, + dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, }, + seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: faDice, }, + random: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, }, + dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: faDice, }, + seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: faDice, }, + randomPick: { in: [0], out: 0, category: 'random', icon: faDice, }, + dailyRandomPick: { in: [0], out: 0, category: 'random', icon: faDice, }, + seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: faDice, }, + DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: faDice, }, // dailyRandomPickWithProbabilityMapping +}; + +export const literalDefs: Record = { + text: { out: 'string', category: 'value', icon: faQuoteRight, }, + multiLineText: { out: 'string', category: 'value', icon: faAlignLeft, }, + textList: { out: 'stringArray', category: 'value', icon: faList, }, + number: { out: 'number', category: 'value', icon: faSortNumericUp, }, + ref: { out: null, category: 'value', icon: faMagic, }, + aiScriptVar: { out: null, category: 'value', icon: faMagic, }, + fn: { out: 'function', category: 'value', icon: faSquareRootAlt, }, +}; + +export const blockDefs = [ + ...Object.entries(literalDefs).map(([k, v]) => ({ + type: k, out: v.out, category: v.category, icon: v.icon + })), + ...Object.entries(funcDefs).map(([k, v]) => ({ + type: k, out: v.out, category: v.category, icon: v.icon + })) +]; + +export function isFnBlock(block: Block): block is FnBlock { + return block.type === 'fn'; +} + +export type PageVar = { name: string; value: any; type: Type; }; + +export const envVarsDef: Record = { + AI: 'string', + URL: 'string', + VERSION: 'string', + LOGIN: 'boolean', + NAME: 'string', + USERNAME: 'string', + USERID: 'string', + NOTES_COUNT: 'number', + FOLLOWERS_COUNT: 'number', + FOLLOWING_COUNT: 'number', + IS_CAT: 'boolean', + SEED: null, + YMD: 'string', + AISCRIPT_DISABLED: 'boolean', + NULL: null, +}; + +export function isLiteralBlock(v: Block) { + if (v.type === null) return true; + if (literalDefs[v.type]) return true; + return false; +} diff --git a/src/client/scripts/hpml/lib.ts b/src/client/scripts/hpml/lib.ts new file mode 100644 index 000000000..9708581a1 --- /dev/null +++ b/src/client/scripts/hpml/lib.ts @@ -0,0 +1,124 @@ +import * as tinycolor from 'tinycolor2'; +import Chart from 'chart.js'; +import { Hpml } from './evaluator'; +import { values, utils } from '@syuilo/aiscript'; + +// https://stackoverflow.com/questions/38493564/chart-area-background-color-chartjs +Chart.pluginService.register({ + beforeDraw: (chart, easing) => { + if (chart.config.options.chartArea && chart.config.options.chartArea.backgroundColor) { + const ctx = chart.chart.ctx; + ctx.save(); + ctx.fillStyle = chart.config.options.chartArea.backgroundColor; + ctx.fillRect(0, 0, chart.chart.width, chart.chart.height); + ctx.restore(); + } + } +}); + +export function initLib(hpml: Hpml) { + return { + 'MkPages:updated': values.FN_NATIVE(([callback]) => { + hpml.pageVarUpdatedCallback = callback; + }), + 'MkPages:get_canvas': values.FN_NATIVE(([id]) => { + utils.assertString(id); + const canvas = hpml.canvases[id.value]; + const ctx = canvas.getContext('2d'); + return values.OBJ(new Map([ + ['clear_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.clearRect(x.value, y.value, width.value, height.value); })], + ['fill_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.fillRect(x.value, y.value, width.value, height.value); })], + ['stroke_rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.strokeRect(x.value, y.value, width.value, height.value); })], + ['fill_text', values.FN_NATIVE(([text, x, y, width]) => { ctx.fillText(text.value, x.value, y.value, width ? width.value : undefined); })], + ['stroke_text', values.FN_NATIVE(([text, x, y, width]) => { ctx.strokeText(text.value, x.value, y.value, width ? width.value : undefined); })], + ['set_line_width', values.FN_NATIVE(([width]) => { ctx.lineWidth = width.value; })], + ['set_font', values.FN_NATIVE(([font]) => { ctx.font = font.value; })], + ['set_fill_style', values.FN_NATIVE(([style]) => { ctx.fillStyle = style.value; })], + ['set_stroke_style', values.FN_NATIVE(([style]) => { ctx.strokeStyle = style.value; })], + ['begin_path', values.FN_NATIVE(() => { ctx.beginPath(); })], + ['close_path', values.FN_NATIVE(() => { ctx.closePath(); })], + ['move_to', values.FN_NATIVE(([x, y]) => { ctx.moveTo(x.value, y.value); })], + ['line_to', values.FN_NATIVE(([x, y]) => { ctx.lineTo(x.value, y.value); })], + ['arc', values.FN_NATIVE(([x, y, radius, startAngle, endAngle]) => { ctx.arc(x.value, y.value, radius.value, startAngle.value, endAngle.value); })], + ['rect', values.FN_NATIVE(([x, y, width, height]) => { ctx.rect(x.value, y.value, width.value, height.value); })], + ['fill', values.FN_NATIVE(() => { ctx.fill(); })], + ['stroke', values.FN_NATIVE(() => { ctx.stroke(); })], + ])); + }), + 'MkPages:chart': values.FN_NATIVE(([id, opts]) => { + utils.assertString(id); + utils.assertObject(opts); + const canvas = hpml.canvases[id.value]; + const color = getComputedStyle(document.documentElement).getPropertyValue('--accent'); + Chart.defaults.global.defaultFontColor = '#555'; + const chart = new Chart(canvas, { + type: opts.value.get('type').value, + data: { + labels: opts.value.get('labels').value.map(x => x.value), + datasets: opts.value.get('datasets').value.map(x => ({ + label: x.value.has('label') ? x.value.get('label').value : '', + data: x.value.get('data').value.map(x => x.value), + pointRadius: 0, + lineTension: 0, + borderWidth: 2, + borderColor: x.value.has('color') ? x.value.get('color') : color, + backgroundColor: tinycolor(x.value.has('color') ? x.value.get('color') : color).setAlpha(0.1).toRgbString(), + })) + }, + options: { + responsive: false, + devicePixelRatio: 1.5, + title: { + display: opts.value.has('title'), + text: opts.value.has('title') ? opts.value.get('title').value : '', + fontSize: 14, + }, + layout: { + padding: { + left: 32, + right: 32, + top: opts.value.has('title') ? 16 : 32, + bottom: 16 + } + }, + legend: { + display: opts.value.get('datasets').value.filter(x => x.value.has('label') && x.value.get('label').value).length === 0 ? false : true, + position: 'bottom', + labels: { + boxWidth: 16, + } + }, + tooltips: { + enabled: false, + }, + chartArea: { + backgroundColor: '#fff' + }, + ...(opts.value.get('type').value === 'radar' ? { + scale: { + ticks: { + display: opts.value.has('show_tick_label') ? opts.value.get('show_tick_label').value : false, + min: opts.value.has('min') ? opts.value.get('min').value : undefined, + max: opts.value.has('max') ? opts.value.get('max').value : undefined, + maxTicksLimit: 8, + }, + pointLabels: { + fontSize: 12 + } + } + } : { + scales: { + yAxes: [{ + ticks: { + display: opts.value.has('show_tick_label') ? opts.value.get('show_tick_label').value : true, + min: opts.value.has('min') ? opts.value.get('min').value : undefined, + max: opts.value.has('max') ? opts.value.get('max').value : undefined, + } + }] + } + }) + } + }); + }) + }; +} diff --git a/packages/client/src/scripts/hpml/type-checker.ts b/src/client/scripts/hpml/type-checker.ts similarity index 89% rename from packages/client/src/scripts/hpml/type-checker.ts rename to src/client/scripts/hpml/type-checker.ts index 9633b3cd0..14950e019 100644 --- a/packages/client/src/scripts/hpml/type-checker.ts +++ b/src/client/scripts/hpml/type-checker.ts @@ -1,7 +1,5 @@ import autobind from 'autobind-decorator'; -import { Type, envVarsDef, PageVar } from '.'; -import { Expr, isLiteralValue, Variable } from './expr'; -import { funcDefs } from './lib'; +import { Type, Block, funcDefs, envVarsDef, Variable, PageVar, isLiteralBlock } from '.'; type TypeError = { arg: number; @@ -22,10 +20,10 @@ export class HpmlTypeChecker { } @autobind - public typeCheck(v: Expr): TypeError | null { - if (isLiteralValue(v)) return null; + public typeCheck(v: Block): TypeError | null { + if (isLiteralBlock(v)) return null; - const def = funcDefs[v.type || '']; + const def = funcDefs[v.type]; if (def == null) { throw new Error('Unknown type: ' + v.type); } @@ -60,8 +58,8 @@ export class HpmlTypeChecker { } @autobind - public getExpectedType(v: Expr, slot: number): Type { - const def = funcDefs[v.type || '']; + public getExpectedType(v: Block, slot: number): Type { + const def = funcDefs[v.type]; if (def == null) { throw new Error('Unknown type: ' + v.type); } @@ -88,7 +86,7 @@ export class HpmlTypeChecker { } @autobind - public infer(v: Expr): Type { + public infer(v: Block): Type { if (v.type === null) return null; if (v.type === 'text') return 'string'; if (v.type === 'multiLineText') return 'string'; @@ -105,7 +103,7 @@ export class HpmlTypeChecker { return pageVar.type; } - const envVar = envVarsDef[v.value || '']; + const envVar = envVarsDef[v.value]; if (envVar !== undefined) { return envVar; } diff --git a/packages/client/src/scripts/is-device-darkmode.ts b/src/client/scripts/is-device-darkmode.ts similarity index 100% rename from packages/client/src/scripts/is-device-darkmode.ts rename to src/client/scripts/is-device-darkmode.ts diff --git a/src/client/scripts/is-device-touch.ts b/src/client/scripts/is-device-touch.ts new file mode 100644 index 000000000..3f0bfefed --- /dev/null +++ b/src/client/scripts/is-device-touch.ts @@ -0,0 +1 @@ +export const isDeviceTouch = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0; diff --git a/packages/client/src/scripts/keycode.ts b/src/client/scripts/keycode.ts similarity index 100% rename from packages/client/src/scripts/keycode.ts rename to src/client/scripts/keycode.ts diff --git a/src/client/scripts/loading.ts b/src/client/scripts/loading.ts new file mode 100644 index 000000000..4b0a560e3 --- /dev/null +++ b/src/client/scripts/loading.ts @@ -0,0 +1,11 @@ +export default { + start: () => { + // TODO + }, + done: () => { + // TODO + }, + set: val => { + // TODO + } +}; diff --git a/src/client/scripts/paging.ts b/src/client/scripts/paging.ts new file mode 100644 index 000000000..3d9668f10 --- /dev/null +++ b/src/client/scripts/paging.ts @@ -0,0 +1,176 @@ +import { markRaw } from 'vue'; +import * as os from '@/os'; +import { onScrollTop, isTopVisible } from './scroll'; + +const SECOND_FETCH_LIMIT = 30; + +export default (opts) => ({ + emits: ['queue'], + + data() { + return { + items: [], + queue: [], + offset: 0, + fetching: true, + moreFetching: false, + inited: false, + more: false, + backed: false, // 遡り中か否か + isBackTop: false, + }; + }, + + computed: { + empty(): boolean { + return this.items.length === 0 && !this.fetching && this.inited; + }, + + error(): boolean { + return !this.fetching && !this.inited; + }, + }, + + watch: { + pagination: { + handler() { + this.init(); + }, + deep: true + }, + + queue: { + handler(a, b) { + if (a.length === 0 && b.length === 0) return; + this.$emit('queue', this.queue.length); + }, + deep: true + } + }, + + created() { + opts.displayLimit = opts.displayLimit || 30; + this.init(); + }, + + activated() { + this.isBackTop = false; + }, + + deactivated() { + this.isBackTop = window.scrollY === 0; + }, + + methods: { + reload() { + this.items = []; + this.init(); + }, + + replaceItem(finder, data) { + const i = this.items.findIndex(finder); + this.items[i] = data; + }, + + removeItem(finder) { + const i = this.items.findIndex(finder); + this.items.splice(i, 1); + }, + + async init() { + this.queue = []; + this.fetching = true; + if (opts.before) opts.before(this); + let params = typeof this.pagination.params === 'function' ? this.pagination.params(true) : this.pagination.params; + if (params && params.then) params = await params; + if (params === null) return; + const endpoint = typeof this.pagination.endpoint === 'function' ? this.pagination.endpoint() : this.pagination.endpoint; + await os.api(endpoint, { + ...params, + limit: this.pagination.noPaging ? (this.pagination.limit || 10) : (this.pagination.limit || 10) + 1, + }).then(items => { + for (const item of items) { + markRaw(item); + } + if (!this.pagination.noPaging && (items.length > (this.pagination.limit || 10))) { + items.pop(); + this.items = this.pagination.reversed ? [...items].reverse() : items; + this.more = true; + } else { + this.items = this.pagination.reversed ? [...items].reverse() : items; + this.more = false; + } + this.offset = items.length; + this.inited = true; + this.fetching = false; + if (opts.after) opts.after(this, null); + }, e => { + this.fetching = false; + if (opts.after) opts.after(this, e); + }); + }, + + async fetchMore() { + if (!this.more || this.fetching || this.moreFetching || this.items.length === 0) return; + this.moreFetching = true; + this.backed = true; + let params = typeof this.pagination.params === 'function' ? this.pagination.params(false) : this.pagination.params; + if (params && params.then) params = await params; + const endpoint = typeof this.pagination.endpoint === 'function' ? this.pagination.endpoint() : this.pagination.endpoint; + await os.api(endpoint, { + ...params, + limit: SECOND_FETCH_LIMIT + 1, + ...(this.pagination.offsetMode ? { + offset: this.offset, + } : this.pagination.reversed ? { + sinceId: this.items[0].id, + } : { + untilId: this.items[this.items.length - 1].id, + }), + }).then(items => { + for (const item of items) { + markRaw(item); + } + if (items.length > SECOND_FETCH_LIMIT) { + items.pop(); + this.items = this.pagination.reversed ? [...items].reverse().concat(this.items) : this.items.concat(items); + this.more = true; + } else { + this.items = this.pagination.reversed ? [...items].reverse().concat(this.items) : this.items.concat(items); + this.more = false; + } + this.offset += items.length; + this.moreFetching = false; + }, e => { + this.moreFetching = false; + }); + }, + + prepend(item) { + const isTop = this.isBackTop || (document.body.contains(this.$el) && isTopVisible(this.$el)); + + if (isTop) { + // Prepend the item + this.items.unshift(item); + + // オーバーフローしたら古いアイテムは捨てる + if (this.items.length >= opts.displayLimit) { + this.items = this.items.slice(0, opts.displayLimit); + this.more = true; + } + } else { + this.queue.push(item); + onScrollTop(this.$el, () => { + for (const item of this.queue) { + this.prepend(item); + } + this.queue = []; + }); + } + }, + + append(item) { + this.items.push(item); + }, + } +}); diff --git a/src/client/scripts/please-login.ts b/src/client/scripts/please-login.ts new file mode 100644 index 000000000..a22166529 --- /dev/null +++ b/src/client/scripts/please-login.ts @@ -0,0 +1,14 @@ +import { i18n } from '@/i18n'; +import { dialog } from '@/os'; +import { store } from '@/store'; + +export function pleaseLogin() { + if (store.getters.isSignedIn) return; + + dialog({ + title: i18n.global.t('signinRequired'), + text: null + }); + + throw new Error('signin required'); +} diff --git a/packages/client/src/scripts/popout.ts b/src/client/scripts/popout.ts similarity index 91% rename from packages/client/src/scripts/popout.ts rename to src/client/scripts/popout.ts index 580031d0a..51b8d7286 100644 --- a/packages/client/src/scripts/popout.ts +++ b/src/client/scripts/popout.ts @@ -1,9 +1,8 @@ import * as config from '@/config'; -import { appendQuery } from './url'; export function popout(path: string, w?: HTMLElement) { let url = path.startsWith('http://') || path.startsWith('https://') ? path : config.url + path; - url = appendQuery(url, 'zen'); + url += '?zen'; // TODO: ちゃんとURLパースしてクエリ付ける if (w) { const position = w.getBoundingClientRect(); const width = parseInt(getComputedStyle(w, '').width, 10); diff --git a/src/client/scripts/room/furniture.ts b/src/client/scripts/room/furniture.ts new file mode 100644 index 000000000..7734e3266 --- /dev/null +++ b/src/client/scripts/room/furniture.ts @@ -0,0 +1,21 @@ +export type RoomInfo = { + roomType: string; + carpetColor: string; + furnitures: Furniture[]; +}; + +export type Furniture = { + id: string; // 同じ家具が複数ある場合にそれぞれを識別するためのIDであり、家具IDではない + type: string; // こっちが家具ID(chairとか) + position: { + x: number; + y: number; + z: number; + }; + rotation: { + x: number; + y: number; + z: number; + }; + props?: Record; +}; diff --git a/src/client/scripts/room/furnitures.json5 b/src/client/scripts/room/furnitures.json5 new file mode 100644 index 000000000..4a4099410 --- /dev/null +++ b/src/client/scripts/room/furnitures.json5 @@ -0,0 +1,407 @@ +// 家具メタデータ + +// 家具IDはglbファイル及びそのディレクトリ名と一致する必要があります + +// 家具にはユーザーが設定できるプロパティを設定可能です: +// +// props: { +// : +// } +// +// proptype一覧: +// * image ... 画像選択ダイアログを出し、その画像のURLが格納されます +// * color ... 色選択コントロールを出し、選択された色が格納されます + +// 家具にカスタムテクスチャを適用できるようにするには、textureプロパティに以下の追加の情報を含めます: +// 便宜上そのUVのどの部分にカスタムテクスチャを貼り合わせるかのエリアをテクスチャエリアと呼びます。 +// UVは1024*1024だと仮定します。 +// +// : { +// prop: <プロパティ名>, +// uv: { +// x: <テクスチャエリアX座標>, +// y: <テクスチャエリアY座標>, +// width: <テクスチャエリアの幅>, +// height: <テクスチャエリアの高さ>, +// }, +// } +// +// には、カスタムテクスチャを適用したいメッシュ名を指定します +// <プロパティ名>には、カスタムテクスチャとして使用する画像を格納するプロパティ(前述)名を指定します + +// 家具にカスタムカラーを適用できるようにするには、colorプロパティに以下の追加の情報を含めます: +// +// : <プロパティ名> +// +// には、カスタムカラーを適用したいマテリアル名を指定します +// <プロパティ名>には、カスタムカラーとして使用する色を格納するプロパティ(前述)名を指定します + +[ + { + id: "milk", + place: "floor" + }, + { + id: "bed", + place: "floor" + }, + { + id: "low-table", + place: "floor", + props: { + color: 'color' + }, + color: { + Table: 'color' + } + }, + { + id: "desk", + place: "floor", + props: { + color: 'color' + }, + color: { + Board: 'color' + } + }, + { + id: "chair", + place: "floor", + props: { + color: 'color' + }, + color: { + Chair: 'color' + } + }, + { + id: "chair2", + place: "floor", + props: { + color1: 'color', + color2: 'color' + }, + color: { + Cushion: 'color1', + Leg: 'color2' + } + }, + { + id: "fan", + place: "wall" + }, + { + id: "pc", + place: "floor" + }, + { + id: "plant", + place: "floor" + }, + { + id: "plant2", + place: "floor" + }, + { + id: "eraser", + place: "floor" + }, + { + id: "pencil", + place: "floor" + }, + { + id: "pudding", + place: "floor" + }, + { + id: "cardboard-box", + place: "floor" + }, + { + id: "cardboard-box2", + place: "floor" + }, + { + id: "cardboard-box3", + place: "floor" + }, + { + id: "book", + place: "floor", + props: { + color: 'color' + }, + color: { + Cover: 'color' + } + }, + { + id: "book2", + place: "floor" + }, + { + id: "piano", + place: "floor" + }, + { + id: "facial-tissue", + place: "floor" + }, + { + id: "server", + place: "floor" + }, + { + id: "moon", + place: "floor" + }, + { + id: "corkboard", + place: "wall" + }, + { + id: "mousepad", + place: "floor", + props: { + color: 'color' + }, + color: { + Pad: 'color' + } + }, + { + id: "monitor", + place: "floor", + props: { + screen: 'image' + }, + texture: { + Screen: { + prop: 'screen', + uv: { + x: 0, + y: 434, + width: 1024, + height: 588, + }, + }, + }, + }, + { + id: "tv", + place: "floor", + props: { + screen: 'image' + }, + texture: { + Screen: { + prop: 'screen', + uv: { + x: 0, + y: 434, + width: 1024, + height: 588, + }, + }, + }, + }, + { + id: "keyboard", + place: "floor" + }, + { + id: "carpet-stripe", + place: "floor", + props: { + color1: 'color', + color2: 'color' + }, + color: { + CarpetAreaA: 'color1', + CarpetAreaB: 'color2' + }, + }, + { + id: "mat", + place: "floor", + props: { + color: 'color' + }, + color: { + Mat: 'color' + } + }, + { + id: "color-box", + place: "floor", + props: { + color: 'color' + }, + color: { + main: 'color' + } + }, + { + id: "wall-clock", + place: "wall" + }, + { + id: "cube", + place: "floor", + props: { + color: 'color' + }, + color: { + Cube: 'color' + } + }, + { + id: "photoframe", + place: "wall", + props: { + photo: 'image', + color: 'color' + }, + texture: { + Photo: { + prop: 'photo', + uv: { + x: 0, + y: 342, + width: 1024, + height: 683, + }, + }, + }, + color: { + Frame: 'color' + } + }, + { + id: "pinguin", + place: "floor", + props: { + body: 'color', + belly: 'color' + }, + color: { + Body: 'body', + Belly: 'belly', + } + }, + { + id: "rubik-cube", + place: "floor", + }, + { + id: "poster-h", + place: "wall", + props: { + picture: 'image' + }, + texture: { + Poster: { + prop: 'picture', + uv: { + x: 0, + y: 277, + width: 1024, + height: 745, + }, + }, + }, + }, + { + id: "poster-v", + place: "wall", + props: { + picture: 'image' + }, + texture: { + Poster: { + prop: 'picture', + uv: { + x: 0, + y: 0, + width: 745, + height: 1024, + }, + }, + }, + }, + { + id: "sofa", + place: "floor", + props: { + color: 'color' + }, + color: { + Sofa: 'color' + } + }, + { + id: "spiral", + place: "floor", + props: { + color: 'color' + }, + color: { + Step: 'color' + } + }, + { + id: "bin", + place: "floor", + props: { + color: 'color' + }, + color: { + Bin: 'color' + } + }, + { + id: "cup-noodle", + place: "floor" + }, + { + id: "holo-display", + place: "floor", + props: { + image: 'image' + }, + texture: { + Image_Front: { + prop: 'image', + uv: { + x: 0, + y: 0, + width: 1024, + height: 1024, + }, + }, + Image_Back: { + prop: 'image', + uv: { + x: 0, + y: 0, + width: 1024, + height: 1024, + }, + }, + }, + }, + { + id: 'energy-drink', + place: "floor", + }, + { + id: 'doll-ai', + place: "floor", + }, + { + id: 'banknote', + place: "floor", + }, +] diff --git a/src/client/scripts/room/room.ts b/src/client/scripts/room/room.ts new file mode 100644 index 000000000..45ccd59b7 --- /dev/null +++ b/src/client/scripts/room/room.ts @@ -0,0 +1,775 @@ +import autobind from 'autobind-decorator'; +import { v4 as uuid } from 'uuid'; +import * as THREE from 'three'; +import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader'; +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'; +import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js'; +import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js'; +import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js'; +import { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass.js'; +import { FXAAShader } from 'three/examples/jsm/shaders/FXAAShader.js'; +import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js'; +import { Furniture, RoomInfo } from './furniture'; +import { query as urlQuery } from '../../../prelude/url'; +const furnitureDefs = require('./furnitures.json5'); + +THREE.ImageUtils.crossOrigin = ''; + +type Options = { + graphicsQuality: Room['graphicsQuality']; + onChangeSelect: Room['onChangeSelect']; + useOrthographicCamera: boolean; +}; + +/** + * MisskeyRoom Core Engine + */ +export class Room { + private clock: THREE.Clock; + private scene: THREE.Scene; + private renderer: THREE.WebGLRenderer; + private camera: THREE.PerspectiveCamera | THREE.OrthographicCamera; + private controls: OrbitControls; + private composer: EffectComposer; + private mixers: THREE.AnimationMixer[] = []; + private furnitureControl: TransformControls; + private roomInfo: RoomInfo; + private graphicsQuality: 'cheep' | 'low' | 'medium' | 'high' | 'ultra'; + private roomObj: THREE.Object3D; + private objects: THREE.Object3D[] = []; + private selectedObject: THREE.Object3D = null; + private onChangeSelect: Function; + private isTransformMode = false; + private renderFrameRequestId: number; + + private get canvas(): HTMLCanvasElement { + return this.renderer.domElement; + } + + private get furnitures(): Furniture[] { + return this.roomInfo.furnitures; + } + + private set furnitures(furnitures: Furniture[]) { + this.roomInfo.furnitures = furnitures; + } + + private get enableShadow() { + return this.graphicsQuality != 'cheep'; + } + + private get usePostFXs() { + return this.graphicsQuality !== 'cheep' && this.graphicsQuality !== 'low'; + } + + private get shadowQuality() { + return ( + this.graphicsQuality === 'ultra' ? 16384 : + this.graphicsQuality === 'high' ? 8192 : + this.graphicsQuality === 'medium' ? 4096 : + this.graphicsQuality === 'low' ? 1024 : + 0); // cheep + } + + constructor(user, isMyRoom, roomInfo: RoomInfo, container: Element, options: Options) { + this.roomInfo = roomInfo; + this.graphicsQuality = options.graphicsQuality; + this.onChangeSelect = options.onChangeSelect; + + this.clock = new THREE.Clock(true); + + //#region Init a scene + this.scene = new THREE.Scene(); + + const width = container.clientWidth; + const height = container.clientHeight; + + //#region Init a renderer + this.renderer = new THREE.WebGLRenderer({ + antialias: false, + stencil: false, + alpha: false, + powerPreference: + this.graphicsQuality === 'ultra' ? 'high-performance' : + this.graphicsQuality === 'high' ? 'high-performance' : + this.graphicsQuality === 'medium' ? 'default' : + this.graphicsQuality === 'low' ? 'low-power' : + 'low-power' // cheep + }); + + this.renderer.setPixelRatio(window.devicePixelRatio); + this.renderer.setSize(width, height); + this.renderer.autoClear = false; + this.renderer.setClearColor(new THREE.Color(0x051f2d)); + this.renderer.shadowMap.enabled = this.enableShadow; + this.renderer.shadowMap.type = + this.graphicsQuality === 'ultra' ? THREE.PCFSoftShadowMap : + this.graphicsQuality === 'high' ? THREE.PCFSoftShadowMap : + this.graphicsQuality === 'medium' ? THREE.PCFShadowMap : + this.graphicsQuality === 'low' ? THREE.BasicShadowMap : + THREE.BasicShadowMap; // cheep + + container.insertBefore(this.canvas, container.firstChild); + //#endregion + + //#region Init a camera + this.camera = options.useOrthographicCamera + ? new THREE.OrthographicCamera( + width / - 2, width / 2, height / 2, height / - 2, -10, 10) + : new THREE.PerspectiveCamera(45, width / height); + + if (options.useOrthographicCamera) { + this.camera.position.x = 2; + this.camera.position.y = 2; + this.camera.position.z = 2; + this.camera.zoom = 100; + this.camera.updateProjectionMatrix(); + } else { + this.camera.position.x = 5; + this.camera.position.y = 2; + this.camera.position.z = 5; + } + + this.scene.add(this.camera); + //#endregion + + //#region AmbientLight + const ambientLight = new THREE.AmbientLight(0xffffff, 1); + this.scene.add(ambientLight); + //#endregion + + if (this.graphicsQuality !== 'cheep') { + //#region Room light + const roomLight = new THREE.SpotLight(0xffffff, 0.1); + + roomLight.position.set(0, 8, 0); + roomLight.castShadow = this.enableShadow; + roomLight.shadow.bias = -0.0001; + roomLight.shadow.mapSize.width = this.shadowQuality; + roomLight.shadow.mapSize.height = this.shadowQuality; + roomLight.shadow.camera.near = 0.1; + roomLight.shadow.camera.far = 9; + roomLight.shadow.camera.fov = 45; + + this.scene.add(roomLight); + //#endregion + } + + //#region Out light + const outLight1 = new THREE.SpotLight(0xffffff, 0.4); + outLight1.position.set(9, 3, -2); + outLight1.castShadow = this.enableShadow; + outLight1.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある + outLight1.shadow.mapSize.width = this.shadowQuality; + outLight1.shadow.mapSize.height = this.shadowQuality; + outLight1.shadow.camera.near = 6; + outLight1.shadow.camera.far = 15; + outLight1.shadow.camera.fov = 45; + this.scene.add(outLight1); + + const outLight2 = new THREE.SpotLight(0xffffff, 0.2); + outLight2.position.set(-2, 3, 9); + outLight2.castShadow = false; + outLight2.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある + outLight2.shadow.camera.near = 6; + outLight2.shadow.camera.far = 15; + outLight2.shadow.camera.fov = 45; + this.scene.add(outLight2); + //#endregion + + //#region Init a controller + this.controls = new OrbitControls(this.camera, this.canvas); + + this.controls.target.set(0, 1, 0); + this.controls.enableZoom = true; + this.controls.enablePan = isMyRoom; + this.controls.minPolarAngle = 0; + this.controls.maxPolarAngle = Math.PI / 2; + this.controls.minAzimuthAngle = 0; + this.controls.maxAzimuthAngle = Math.PI / 2; + this.controls.enableDamping = true; + this.controls.dampingFactor = 0.2; + //#endregion + + //#region POST FXs + if (!this.usePostFXs) { + this.composer = null; + } else { + const renderTarget = new THREE.WebGLRenderTarget(width, height, { + minFilter: THREE.LinearFilter, + magFilter: THREE.LinearFilter, + format: THREE.RGBFormat, + stencilBuffer: false, + }); + + const fxaa = new ShaderPass(FXAAShader); + fxaa.uniforms['resolution'].value = new THREE.Vector2(1 / width, 1 / height); + fxaa.renderToScreen = true; + + this.composer = new EffectComposer(this.renderer, renderTarget); + this.composer.addPass(new RenderPass(this.scene, this.camera)); + if (this.graphicsQuality === 'ultra') { + this.composer.addPass(new BloomPass(0.25, 30, 128.0, 512)); + } + this.composer.addPass(fxaa); + } + //#endregion + //#endregion + + //#region Label + //#region Avatar + const avatarUrl = `/proxy/?${urlQuery({ url: user.avatarUrl })}`; + + const textureLoader = new THREE.TextureLoader(); + textureLoader.crossOrigin = 'anonymous'; + + const iconTexture = textureLoader.load(avatarUrl); + iconTexture.wrapS = THREE.RepeatWrapping; + iconTexture.wrapT = THREE.RepeatWrapping; + iconTexture.anisotropy = 16; + + const avatarMaterial = new THREE.MeshBasicMaterial({ + map: iconTexture, + side: THREE.DoubleSide, + alphaTest: 0.5 + }); + + const iconGeometry = new THREE.PlaneGeometry(1, 1); + + const avatarObject = new THREE.Mesh(iconGeometry, avatarMaterial); + avatarObject.position.set(-3, 2.5, 2); + avatarObject.rotation.y = Math.PI / 2; + avatarObject.castShadow = false; + + this.scene.add(avatarObject); + //#endregion + + //#region Username + const name = user.username; + + new THREE.FontLoader().load('/assets/fonts/helvetiker_regular.typeface.json', font => { + const nameGeometry = new THREE.TextGeometry(name, { + size: 0.5, + height: 0, + curveSegments: 8, + font: font, + bevelThickness: 0, + bevelSize: 0, + bevelEnabled: false + }); + + const nameMaterial = new THREE.MeshLambertMaterial({ + color: 0xffffff + }); + + const nameObject = new THREE.Mesh(nameGeometry, nameMaterial); + nameObject.position.set(-3, 2.25, 1.25); + nameObject.rotation.y = Math.PI / 2; + nameObject.castShadow = false; + + this.scene.add(nameObject); + }); + //#endregion + //#endregion + + //#region Interaction + if (isMyRoom) { + this.furnitureControl = new TransformControls(this.camera, this.canvas); + this.scene.add(this.furnitureControl); + + // Hover highlight + this.canvas.onmousemove = this.onmousemove; + + // Click + this.canvas.onmousedown = this.onmousedown; + } + //#endregion + + //#region Init room + this.loadRoom(); + //#endregion + + //#region Load furnitures + for (const furniture of this.furnitures) { + this.loadFurniture(furniture).then(obj => { + this.scene.add(obj.scene); + this.objects.push(obj.scene); + }); + } + //#endregion + + // Start render + if (this.usePostFXs) { + this.renderWithPostFXs(); + } else { + this.renderWithoutPostFXs(); + } + } + + @autobind + private renderWithoutPostFXs() { + this.renderFrameRequestId = + window.requestAnimationFrame(this.renderWithoutPostFXs); + + // Update animations + const clock = this.clock.getDelta(); + for (const mixer of this.mixers) { + mixer.update(clock); + } + + this.controls.update(); + this.renderer.render(this.scene, this.camera); + } + + @autobind + private renderWithPostFXs() { + this.renderFrameRequestId = + window.requestAnimationFrame(this.renderWithPostFXs); + + // Update animations + const clock = this.clock.getDelta(); + for (const mixer of this.mixers) { + mixer.update(clock); + } + + this.controls.update(); + this.renderer.clear(); + this.composer.render(); + } + + @autobind + private loadRoom() { + const type = this.roomInfo.roomType; + new GLTFLoader().load(`/assets/room/rooms/${type}/${type}.glb`, gltf => { + gltf.scene.traverse(child => { + if (!(child instanceof THREE.Mesh)) return; + + child.receiveShadow = this.enableShadow; + + child.material = new THREE.MeshLambertMaterial({ + color: (child.material as THREE.MeshStandardMaterial).color, + map: (child.material as THREE.MeshStandardMaterial).map, + name: (child.material as THREE.MeshStandardMaterial).name, + }); + + // 異方性フィルタリング + if ((child.material as THREE.MeshLambertMaterial).map && this.graphicsQuality !== 'cheep') { + (child.material as THREE.MeshLambertMaterial).map.minFilter = THREE.LinearMipMapLinearFilter; + (child.material as THREE.MeshLambertMaterial).map.magFilter = THREE.LinearMipMapLinearFilter; + (child.material as THREE.MeshLambertMaterial).map.anisotropy = 8; + } + }); + + gltf.scene.position.set(0, 0, 0); + + this.scene.add(gltf.scene); + this.roomObj = gltf.scene; + if (this.roomInfo.roomType === 'default') { + this.applyCarpetColor(); + } + }); + } + + @autobind + private loadFurniture(furniture: Furniture) { + const def = furnitureDefs.find(d => d.id === furniture.type); + return new Promise((res, rej) => { + const loader = new GLTFLoader(); + loader.load(`/assets/room/furnitures/${furniture.type}/${furniture.type}.glb`, gltf => { + const model = gltf.scene; + + // Load animation + if (gltf.animations.length > 0) { + const mixer = new THREE.AnimationMixer(model); + this.mixers.push(mixer); + for (const clip of gltf.animations) { + mixer.clipAction(clip).play(); + } + } + + model.name = furniture.id; + model.position.x = furniture.position.x; + model.position.y = furniture.position.y; + model.position.z = furniture.position.z; + model.rotation.x = furniture.rotation.x; + model.rotation.y = furniture.rotation.y; + model.rotation.z = furniture.rotation.z; + + model.traverse(child => { + if (!(child instanceof THREE.Mesh)) return; + child.castShadow = this.enableShadow; + child.receiveShadow = this.enableShadow; + (child.material as THREE.MeshStandardMaterial).metalness = 0; + + // 異方性フィルタリング + if ((child.material as THREE.MeshStandardMaterial).map && this.graphicsQuality !== 'cheep') { + (child.material as THREE.MeshStandardMaterial).map.minFilter = THREE.LinearMipMapLinearFilter; + (child.material as THREE.MeshStandardMaterial).map.magFilter = THREE.LinearMipMapLinearFilter; + (child.material as THREE.MeshStandardMaterial).map.anisotropy = 8; + } + }); + + if (def.color) { // カスタムカラー + this.applyCustomColor(model); + } + + if (def.texture) { // カスタムテクスチャ + this.applyCustomTexture(model); + } + + res(gltf); + }, null, rej); + }); + } + + @autobind + private applyCarpetColor() { + this.roomObj.traverse(child => { + if (!(child instanceof THREE.Mesh)) return; + if (child.material && + (child.material as THREE.MeshStandardMaterial).name && + (child.material as THREE.MeshStandardMaterial).name === 'Carpet' + ) { + const colorHex = parseInt(this.roomInfo.carpetColor.substr(1), 16); + (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex); + } + }); + } + + @autobind + private applyCustomColor(model: THREE.Object3D) { + const furniture = this.furnitures.find(furniture => furniture.id === model.name); + const def = furnitureDefs.find(d => d.id === furniture.type); + if (def.color == null) return; + model.traverse(child => { + if (!(child instanceof THREE.Mesh)) return; + for (const t of Object.keys(def.color)) { + if (!child.material || + !(child.material as THREE.MeshStandardMaterial).name || + (child.material as THREE.MeshStandardMaterial).name !== t + ) continue; + + const prop = def.color[t]; + const val = furniture.props ? furniture.props[prop] : undefined; + + if (val == null) continue; + + const colorHex = parseInt(val.substr(1), 16); + (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex); + } + }); + } + + @autobind + private applyCustomTexture(model: THREE.Object3D) { + const furniture = this.furnitures.find(furniture => furniture.id === model.name); + const def = furnitureDefs.find(d => d.id === furniture.type); + if (def.texture == null) return; + + model.traverse(child => { + if (!(child instanceof THREE.Mesh)) return; + for (const t of Object.keys(def.texture)) { + if (child.name !== t) continue; + + const prop = def.texture[t].prop; + const val = furniture.props ? furniture.props[prop] : undefined; + + if (val == null) continue; + + const canvas = document.createElement('canvas'); + canvas.height = 1024; + canvas.width = 1024; + + child.material = new THREE.MeshLambertMaterial({ + emissive: 0x111111, + side: THREE.DoubleSide, + alphaTest: 0.5, + }); + + const img = new Image(); + img.crossOrigin = 'anonymous'; + img.onload = () => { + const uvInfo = def.texture[t].uv; + + const ctx = canvas.getContext('2d'); + ctx.drawImage(img, + 0, 0, img.width, img.height, + uvInfo.x, uvInfo.y, uvInfo.width, uvInfo.height); + + const texture = new THREE.Texture(canvas); + texture.wrapS = THREE.RepeatWrapping; + texture.wrapT = THREE.RepeatWrapping; + texture.anisotropy = 16; + texture.flipY = false; + + (child.material as THREE.MeshLambertMaterial).map = texture; + (child.material as THREE.MeshLambertMaterial).needsUpdate = true; + (child.material as THREE.MeshLambertMaterial).map.needsUpdate = true; + }; + img.src = val; + } + }); + } + + @autobind + private onmousemove(ev: MouseEvent) { + if (this.isTransformMode) return; + + const rect = (ev.target as HTMLElement).getBoundingClientRect(); + const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1; + const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1; + const pos = new THREE.Vector2(x, y); + + this.camera.updateMatrixWorld(); + + const raycaster = new THREE.Raycaster(); + raycaster.setFromCamera(pos, this.camera); + + const intersects = raycaster.intersectObjects(this.objects, true); + + for (const object of this.objects) { + if (this.isSelectedObject(object)) continue; + object.traverse(child => { + if (child instanceof THREE.Mesh) { + (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000); + } + }); + } + + if (intersects.length > 0) { + const intersected = this.getRoot(intersects[0].object); + if (this.isSelectedObject(intersected)) return; + intersected.traverse(child => { + if (child instanceof THREE.Mesh) { + (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x191919); + } + }); + } + } + + @autobind + private onmousedown(ev: MouseEvent) { + if (this.isTransformMode) return; + if (ev.target !== this.canvas || ev.button !== 0) return; + + const rect = (ev.target as HTMLElement).getBoundingClientRect(); + const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1; + const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1; + const pos = new THREE.Vector2(x, y); + + this.camera.updateMatrixWorld(); + + const raycaster = new THREE.Raycaster(); + raycaster.setFromCamera(pos, this.camera); + + const intersects = raycaster.intersectObjects(this.objects, true); + + for (const object of this.objects) { + object.traverse(child => { + if (child instanceof THREE.Mesh) { + (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000); + } + }); + } + + if (intersects.length > 0) { + const selectedObj = this.getRoot(intersects[0].object); + this.selectFurniture(selectedObj); + } else { + this.selectedObject = null; + this.onChangeSelect(null); + } + } + + @autobind + private getRoot(obj: THREE.Object3D): THREE.Object3D { + let found = false; + let x = obj.parent; + while (!found) { + if (x.parent.parent == null) { + found = true; + } else { + x = x.parent; + } + } + return x; + } + + @autobind + private isSelectedObject(obj: THREE.Object3D): boolean { + if (this.selectedObject == null) { + return false; + } else { + return obj.name === this.selectedObject.name; + } + } + + @autobind + private selectFurniture(obj: THREE.Object3D) { + this.selectedObject = obj; + this.onChangeSelect(obj); + obj.traverse(child => { + if (child instanceof THREE.Mesh) { + (child.material as THREE.MeshStandardMaterial).emissive.setHex(0xff0000); + } + }); + } + + /** + * 家具の移動/回転モードにします + * @param type 移動か回転か + */ + @autobind + public enterTransformMode(type: 'translate' | 'rotate') { + this.isTransformMode = true; + this.furnitureControl.setMode(type); + this.furnitureControl.attach(this.selectedObject); + this.controls.enableRotate = false; + } + + /** + * 家具の移動/回転モードを終了します + */ + @autobind + public exitTransformMode() { + this.isTransformMode = false; + this.furnitureControl.detach(); + this.controls.enableRotate = true; + } + + /** + * 家具プロパティを更新します + * @param key プロパティ名 + * @param value 値 + */ + @autobind + public updateProp(key: string, value: any) { + const furniture = this.furnitures.find(furniture => furniture.id === this.selectedObject.name); + if (furniture.props == null) furniture.props = {}; + furniture.props[key] = value; + this.applyCustomColor(this.selectedObject); + this.applyCustomTexture(this.selectedObject); + } + + /** + * 部屋に家具を追加します + * @param type 家具の種類 + */ + @autobind + public addFurniture(type: string) { + const furniture = { + id: uuid(), + type: type, + position: { + x: 0, + y: 0, + z: 0, + }, + rotation: { + x: 0, + y: 0, + z: 0, + }, + }; + + this.furnitures.push(furniture); + + this.loadFurniture(furniture).then(obj => { + this.scene.add(obj.scene); + this.objects.push(obj.scene); + }); + } + + /** + * 現在選択されている家具を部屋から削除します + */ + @autobind + public removeFurniture() { + this.exitTransformMode(); + const obj = this.selectedObject; + this.scene.remove(obj); + this.objects = this.objects.filter(object => object.name !== obj.name); + this.furnitures = this.furnitures.filter(furniture => furniture.id !== obj.name); + this.selectedObject = null; + this.onChangeSelect(null); + } + + /** + * 全ての家具を部屋から削除します + */ + @autobind + public removeAllFurnitures() { + this.exitTransformMode(); + for (const obj of this.objects) { + this.scene.remove(obj); + } + this.objects = []; + this.furnitures = []; + this.selectedObject = null; + this.onChangeSelect(null); + } + + /** + * 部屋の床の色を変更します + * @param color 色 + */ + @autobind + public updateCarpetColor(color: string) { + this.roomInfo.carpetColor = color; + this.applyCarpetColor(); + } + + /** + * 部屋の種類を変更します + * @param type 種類 + */ + @autobind + public changeRoomType(type: string) { + this.roomInfo.roomType = type; + this.scene.remove(this.roomObj); + this.loadRoom(); + } + + /** + * 部屋データを取得します + */ + @autobind + public getRoomInfo() { + for (const obj of this.objects) { + const furniture = this.furnitures.find(f => f.id === obj.name); + furniture.position.x = obj.position.x; + furniture.position.y = obj.position.y; + furniture.position.z = obj.position.z; + furniture.rotation.x = obj.rotation.x; + furniture.rotation.y = obj.rotation.y; + furniture.rotation.z = obj.rotation.z; + } + + return this.roomInfo; + } + + /** + * 選択されている家具を取得します + */ + @autobind + public getSelectedObject() { + return this.selectedObject; + } + + @autobind + public findFurnitureById(id: string) { + return this.furnitures.find(furniture => furniture.id === id); + } + + /** + * レンダリングを終了します + */ + @autobind + public destroy() { + // Stop render loop + window.cancelAnimationFrame(this.renderFrameRequestId); + + this.controls.dispose(); + this.scene.dispose(); + } +} diff --git a/src/client/scripts/scroll.ts b/src/client/scripts/scroll.ts new file mode 100644 index 000000000..18c336689 --- /dev/null +++ b/src/client/scripts/scroll.ts @@ -0,0 +1,66 @@ +export function getScrollContainer(el: Element | null): Element | null { + if (el == null || el.tagName === 'BODY') return null; + const overflow = window.getComputedStyle(el).getPropertyValue('overflow'); + if (overflow.endsWith('auto')) { // xとyを個別に指定している場合、hidden auto みたいな値になる + return el; + } else { + return getScrollContainer(el.parentElement); + } +} + +export function getScrollPosition(el: Element | null): number { + const container = getScrollContainer(el); + return container == null ? window.scrollY : container.scrollTop; +} + +export function isTopVisible(el: Element | null): boolean { + const scrollTop = getScrollPosition(el); + const topPosition = el.offsetTop; // TODO: container内でのelの相対位置を取得できればより正確になる + + return scrollTop <= topPosition; +} + +export function onScrollTop(el: Element, cb) { + const container = getScrollContainer(el) || window; + const onScroll = ev => { + if (!document.body.contains(el)) return; + if (isTopVisible(el)) { + cb(); + container.removeEventListener('scroll', onScroll); + } + }; + container.addEventListener('scroll', onScroll, { passive: true }); +} + +export function onScrollBottom(el: Element, cb) { + const container = getScrollContainer(el) || window; + const onScroll = ev => { + if (!document.body.contains(el)) return; + const pos = getScrollPosition(el); + if (pos + el.clientHeight > el.scrollHeight - 1) { + cb(); + container.removeEventListener('scroll', onScroll); + } + }; + container.addEventListener('scroll', onScroll, { passive: true }); +} + +export function scroll(el: Element, top: number) { + const container = getScrollContainer(el); + if (container == null) { + window.scroll({ top: top, behavior: 'instant' }); + } else { + container.scrollTop = top; + } +} + +export function isBottom(el: Element, asobi = 0) { + const container = getScrollContainer(el); + const current = container + ? el.scrollTop + el.offsetHeight + : window.scrollY + window.innerHeight; + const max = container + ? el.scrollHeight + : document.body.offsetHeight; + return current >= (max - asobi); +} diff --git a/src/client/scripts/search.ts b/src/client/scripts/search.ts new file mode 100644 index 000000000..540aba2a9 --- /dev/null +++ b/src/client/scripts/search.ts @@ -0,0 +1,69 @@ +import { faHistory } from '@fortawesome/free-solid-svg-icons'; +import * as os from '@/os'; +import { i18n } from '@/i18n'; +import { router } from '@/router'; + +export async function search(q?: string | null | undefined) { + if (q == null) { + const { canceled, result: query } = await os.dialog({ + title: i18n.global.t('search'), + input: true + }); + + if (canceled || query == null || query === '') return; + + q = query; + } + + q = q.trim(); + + if (q.startsWith('@') && !q.includes(' ')) { + router.push(`/${q}`); + return; + } + + if (q.startsWith('#')) { + router.push(`/tags/${encodeURIComponent(q.substr(1))}`); + return; + } + + // like 2018/03/12 + if (/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}/.test(q.replace(/-/g, '/'))) { + const date = new Date(q.replace(/-/g, '/')); + + // 日付しか指定されてない場合、例えば 2018/03/12 ならユーザーは + // 2018/03/12 のコンテンツを「含む」結果になることを期待するはずなので + // 23時間59分進める(そのままだと 2018/03/12 00:00:00 「まで」の + // 結果になってしまい、2018/03/12 のコンテンツは含まれない) + if (q.replace(/-/g, '/').match(/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/)) { + date.setHours(23, 59, 59, 999); + } + + v.$root.$emit('warp', date); + os.dialog({ + icon: faHistory, + iconOnly: true, autoClose: true + }); + return; + } + + if (q.startsWith('https://')) { + const promise = os.api('ap/show', { + uri: q + }); + + os.promiseDialog(promise, null, null, i18n.global.t('fetchingAsApObject')); + + const res = await promise; + + if (res.type === 'User') { + router.push(`/@${res.object.username}@${res.object.host}`); + } else if (res.type === 'Note') { + router.push(`/notes/${res.object.id}`); + } + + return; + } + + router.push(`/search?q=${encodeURIComponent(q)}`); +} diff --git a/src/client/scripts/select-file.ts b/src/client/scripts/select-file.ts new file mode 100644 index 000000000..80f9d25a2 --- /dev/null +++ b/src/client/scripts/select-file.ts @@ -0,0 +1,88 @@ +import { faUpload, faCloud, faLink } from '@fortawesome/free-solid-svg-icons'; +import * as os from '@/os'; +import { i18n } from '@/i18n'; + +export function selectFile(src: any, label: string | null, multiple = false) { + return new Promise((res, rej) => { + const chooseFileFromPc = () => { + const input = document.createElement('input'); + input.type = 'file'; + input.multiple = multiple; + input.onchange = () => { + const promises = Array.from(input.files).map(file => os.upload(file)); + + Promise.all(promises).then(driveFiles => { + res(multiple ? driveFiles : driveFiles[0]); + }).catch(e => { + os.dialog({ + type: 'error', + text: e + }); + }); + + // 一応廃棄 + (window as any).__misskey_input_ref__ = null; + }; + + // https://qiita.com/fukasawah/items/b9dc732d95d99551013d + // iOS Safari で正常に動かす為のおまじない + (window as any).__misskey_input_ref__ = input; + + input.click(); + }; + + const chooseFileFromDrive = () => { + os.selectDriveFile(multiple).then(files => { + res(files); + }); + }; + + const chooseFileFromUrl = () => { + os.dialog({ + title: i18n.global.t('uploadFromUrl'), + input: { + placeholder: i18n.global.t('uploadFromUrlDescription') + } + }).then(({ canceled, result: url }) => { + if (canceled) return; + + const marker = Math.random().toString(); // TODO: UUIDとか使う + + const connection = os.stream.useSharedConnection('main'); + connection.on('urlUploadFinished', data => { + if (data.marker === marker) { + res(multiple ? [data.file] : data.file); + connection.dispose(); + } + }); + + os.api('drive/files/upload_from_url', { + url: url, + marker + }); + + os.dialog({ + title: i18n.global.t('uploadFromUrlRequested'), + text: i18n.global.t('uploadFromUrlMayTakeTime') + }); + }); + }; + + os.modalMenu([label ? { + text: label, + type: 'label' + } : undefined, { + text: i18n.global.t('upload'), + icon: faUpload, + action: chooseFileFromPc + }, { + text: i18n.global.t('fromDrive'), + icon: faCloud, + action: chooseFileFromDrive + }, { + text: i18n.global.t('fromUrl'), + icon: faLink, + action: chooseFileFromUrl + }], src); + }); +} diff --git a/src/client/scripts/set-i18n-contexts.ts b/src/client/scripts/set-i18n-contexts.ts new file mode 100644 index 000000000..601495736 --- /dev/null +++ b/src/client/scripts/set-i18n-contexts.ts @@ -0,0 +1,15 @@ +import { clientDb, clear, bulkSet } from '../db'; +import { deepEntries, delimitEntry } from 'deep-entries'; + +export function setI18nContexts(lang: string, version: string, cleardb = false) { + return Promise.all([ + cleardb ? clear(clientDb.i18n) : Promise.resolve(), + fetch(`/assets/locales/${lang}.${version}.json`) + ]) + .then(([, response]) => response.json()) + .then(locale => { + const flatLocaleEntries = deepEntries(locale, delimitEntry) as [string, string][]; + bulkSet(flatLocaleEntries, clientDb.i18n); + return Object.fromEntries(flatLocaleEntries); + }); +} diff --git a/src/client/scripts/sticky-sidebar.ts b/src/client/scripts/sticky-sidebar.ts new file mode 100644 index 000000000..9d46a7831 --- /dev/null +++ b/src/client/scripts/sticky-sidebar.ts @@ -0,0 +1,43 @@ +export class StickySidebar { + private lastScrollTop = 0; + private el: HTMLElement; + private spacer: HTMLElement; + private marginTop: number; + private isTop = false; + private isBottom = false; + + constructor(el: StickySidebar['el'], spacer: StickySidebar['spacer'], marginTop = 0) { + this.el = el; + this.spacer = spacer; + this.marginTop = marginTop; + } + + public calc(scrollTop: number) { + if (scrollTop > this.lastScrollTop) { // downscroll + const overflow = this.el.clientHeight - window.innerHeight; + this.el.style.bottom = null; + this.el.style.top = `${-overflow}px`; + + this.isBottom = (scrollTop + window.innerHeight) >= (this.el.offsetTop + this.el.clientHeight); + + if (this.isTop) { + this.isTop = false; + this.spacer.style.marginTop = `${this.lastScrollTop}px`; + } + } else { // upscroll + const overflow = this.el.clientHeight - window.innerHeight; + this.el.style.top = null; + this.el.style.bottom = `${-overflow - this.marginTop}px`; + + this.isTop = scrollTop <= this.el.offsetTop; + + if (this.isBottom) { + this.isBottom = false; + const overflow = this.el.clientHeight - window.innerHeight; + this.spacer.style.marginTop = `${this.lastScrollTop - (overflow + this.marginTop)}px`; + } + } + + this.lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; + } +} diff --git a/src/client/scripts/stream.ts b/src/client/scripts/stream.ts new file mode 100644 index 000000000..7330a2f8b --- /dev/null +++ b/src/client/scripts/stream.ts @@ -0,0 +1,312 @@ +import autobind from 'autobind-decorator'; +import { EventEmitter } from 'eventemitter3'; +import ReconnectingWebsocket from 'reconnecting-websocket'; +import { markRaw } from 'vue'; +import { debug, wsUrl } from '@/config'; +import { query as urlQuery } from '../../prelude/url'; + +/** + * Misskey stream connection + */ +export default class Stream extends EventEmitter { + private stream: ReconnectingWebsocket; + public state: 'initializing' | 'reconnecting' | 'connected' = 'initializing'; + private sharedConnectionPools: Pool[] = []; + private sharedConnections: SharedConnection[] = []; + private nonSharedConnections: NonSharedConnection[] = []; + + @autobind + public init(user): void { + const query = urlQuery({ + i: user?.token, + _t: Date.now(), + }); + + this.stream = new ReconnectingWebsocket(`${wsUrl}?${query}`, '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91 + this.stream.addEventListener('open', this.onOpen); + this.stream.addEventListener('close', this.onClose); + this.stream.addEventListener('message', this.onMessage); + } + + @autobind + public useSharedConnection(channel: string, name?: string): SharedConnection { + let pool = this.sharedConnectionPools.find(p => p.channel === channel); + + if (pool == null) { + pool = new Pool(this, channel); + this.sharedConnectionPools.push(pool); + } + + const connection = markRaw(new SharedConnection(this, channel, pool, name)); + this.sharedConnections.push(connection); + return connection; + } + + @autobind + public removeSharedConnection(connection: SharedConnection) { + this.sharedConnections = this.sharedConnections.filter(c => c !== connection); + } + + @autobind + public removeSharedConnectionPool(pool: Pool) { + this.sharedConnectionPools = this.sharedConnectionPools.filter(p => p !== pool); + } + + @autobind + public connectToChannel(channel: string, params?: any): NonSharedConnection { + const connection = markRaw(new NonSharedConnection(this, channel, params)); + this.nonSharedConnections.push(connection); + return connection; + } + + @autobind + public disconnectToChannel(connection: NonSharedConnection) { + this.nonSharedConnections = this.nonSharedConnections.filter(c => c !== connection); + } + + /** + * Callback of when open connection + */ + @autobind + private onOpen() { + const isReconnect = this.state === 'reconnecting'; + + this.state = 'connected'; + this.emit('_connected_'); + + // チャンネル再接続 + if (isReconnect) { + for (const p of this.sharedConnectionPools) + p.connect(); + for (const c of this.nonSharedConnections) + c.connect(); + } + } + + /** + * Callback of when close connection + */ + @autobind + private onClose() { + if (this.state === 'connected') { + this.state = 'reconnecting'; + this.emit('_disconnected_'); + } + } + + /** + * Callback of when received a message from connection + */ + @autobind + private onMessage(message) { + const { type, body } = JSON.parse(message.data); + + if (type === 'channel') { + const id = body.id; + + let connections: Connection[]; + + connections = this.sharedConnections.filter(c => c.id === id); + + if (connections.length === 0) { + connections = [this.nonSharedConnections.find(c => c.id === id)]; + } + + for (const c of connections.filter(c => c != null)) { + c.emit(body.type, Object.freeze(body.body)); + if (debug) c.inCount++; + } + } else { + this.emit(type, Object.freeze(body)); + } + } + + /** + * Send a message to connection + */ + @autobind + public send(typeOrPayload, payload?) { + const data = payload === undefined ? typeOrPayload : { + type: typeOrPayload, + body: payload + }; + + this.stream.send(JSON.stringify(data)); + } + + /** + * Close this connection + */ + @autobind + public close() { + this.stream.removeEventListener('open', this.onOpen); + this.stream.removeEventListener('message', this.onMessage); + } +} + +let idCounter = 0; + +class Pool { + public channel: string; + public id: string; + protected stream: Stream; + public users = 0; + private disposeTimerId: any; + private isConnected = false; + + constructor(stream: Stream, channel: string) { + this.channel = channel; + this.stream = stream; + + this.id = (++idCounter).toString(); + + this.stream.on('_disconnected_', this.onStreamDisconnected); + } + + @autobind + private onStreamDisconnected() { + this.isConnected = false; + } + + @autobind + public inc() { + if (this.users === 0 && !this.isConnected) { + this.connect(); + } + + this.users++; + + // タイマー解除 + if (this.disposeTimerId) { + clearTimeout(this.disposeTimerId); + this.disposeTimerId = null; + } + } + + @autobind + public dec() { + this.users--; + + // そのコネクションの利用者が誰もいなくなったら + if (this.users === 0) { + // また直ぐに再利用される可能性があるので、一定時間待ち、 + // 新たな利用者が現れなければコネクションを切断する + this.disposeTimerId = setTimeout(() => { + this.disconnect(); + }, 3000); + } + } + + @autobind + public connect() { + if (this.isConnected) return; + this.isConnected = true; + this.stream.send('connect', { + channel: this.channel, + id: this.id + }); + } + + @autobind + private disconnect() { + this.stream.off('_disconnected_', this.onStreamDisconnected); + this.stream.send('disconnect', { id: this.id }); + this.stream.removeSharedConnectionPool(this); + } +} + +abstract class Connection extends EventEmitter { + public channel: string; + protected stream: Stream; + public abstract id: string; + + public name?: string; // for debug + public inCount: number = 0; // for debug + public outCount: number = 0; // for debug + + constructor(stream: Stream, channel: string, name?: string) { + super(); + + this.stream = stream; + this.channel = channel; + this.name = name; + } + + @autobind + public send(id: string, typeOrPayload, payload?) { + const type = payload === undefined ? typeOrPayload.type : typeOrPayload; + const body = payload === undefined ? typeOrPayload.body : payload; + + this.stream.send('ch', { + id: id, + type: type, + body: body + }); + + if (debug) this.outCount++; + } + + public abstract dispose(): void; +} + +class SharedConnection extends Connection { + private pool: Pool; + + public get id(): string { + return this.pool.id; + } + + constructor(stream: Stream, channel: string, pool: Pool, name?: string) { + super(stream, channel, name); + + this.pool = pool; + this.pool.inc(); + } + + @autobind + public send(typeOrPayload, payload?) { + super.send(this.pool.id, typeOrPayload, payload); + } + + @autobind + public dispose() { + this.pool.dec(); + this.removeAllListeners(); + this.stream.removeSharedConnection(this); + } +} + +class NonSharedConnection extends Connection { + public id: string; + protected params: any; + + constructor(stream: Stream, channel: string, params?: any) { + super(stream, channel); + + this.params = params; + this.id = (++idCounter).toString(); + + this.connect(); + } + + @autobind + public connect() { + this.stream.send('connect', { + channel: this.channel, + id: this.id, + params: this.params + }); + } + + @autobind + public send(typeOrPayload, payload?) { + super.send(this.id, typeOrPayload, payload); + } + + @autobind + public dispose() { + this.removeAllListeners(); + this.stream.send('disconnect', { id: this.id }); + this.stream.disconnectToChannel(this); + } +} diff --git a/packages/client/src/scripts/theme-editor.ts b/src/client/scripts/theme-editor.ts similarity index 98% rename from packages/client/src/scripts/theme-editor.ts rename to src/client/scripts/theme-editor.ts index 2c917e280..3d69d2836 100644 --- a/packages/client/src/scripts/theme-editor.ts +++ b/src/client/scripts/theme-editor.ts @@ -1,4 +1,4 @@ -import { v4 as uuid } from 'uuid'; +import { v4 as uuid} from 'uuid'; import { themeProps, Theme } from './theme'; diff --git a/src/client/scripts/theme.ts b/src/client/scripts/theme.ts new file mode 100644 index 000000000..c1fc88bf0 --- /dev/null +++ b/src/client/scripts/theme.ts @@ -0,0 +1,121 @@ +import * as tinycolor from 'tinycolor2'; + +export type Theme = { + id: string; + name: string; + author: string; + desc?: string; + base?: 'dark' | 'light'; + props: Record; +}; + +export const lightTheme: Theme = require('../themes/_light.json5'); +export const darkTheme: Theme = require('../themes/_dark.json5'); + +export const themeProps = Object.keys(lightTheme.props).filter(key => !key.startsWith('X')); + +export const builtinThemes = [ + require('../themes/l-white.json5'), + require('../themes/l-red.json5'), + require('../themes/l-green.json5'), + require('../themes/l-blue.json5'), + require('../themes/l-apricot.json5'), + + require('../themes/d-black.json5'), + require('../themes/d-red.json5'), + require('../themes/d-green.json5'), + require('../themes/d-blue.json5'), + require('../themes/d-persimmon.json5'), + + require('../themes/d-battery-saver.json5'), +] as Theme[]; + +let timeout = null; + +export function applyTheme(theme: Theme, persist = true) { + if (timeout) clearTimeout(timeout); + + document.documentElement.classList.add('changing-theme'); + + timeout = setTimeout(() => { + document.documentElement.classList.remove('changing-theme'); + }, 1000); + + // Deep copy + const _theme = JSON.parse(JSON.stringify(theme)); + + if (_theme.base) { + const base = [lightTheme, darkTheme].find(x => x.id === _theme.base); + _theme.props = Object.assign({}, base.props, _theme.props); + } + + const props = compile(_theme); + + for (const tag of document.head.children) { + if (tag.tagName === 'META' && tag.getAttribute('name') === 'theme-color') { + tag.setAttribute('content', props['html']); + break; + } + } + + for (const [k, v] of Object.entries(props)) { + document.documentElement.style.setProperty(`--${k}`, v.toString()); + } + + if (persist) { + localStorage.setItem('theme', JSON.stringify(props)); + } +} + +function compile(theme: Theme): Record { + function getColor(val: string): tinycolor.Instance { + // ref (prop) + if (val[0] === '@') { + return getColor(theme.props[val.substr(1)]); + } + + // ref (const) + else if (val[0] === '$') { + return getColor(theme.props[val]); + } + + // func + else if (val[0] === ':') { + const parts = val.split('<'); + const func = parts.shift().substr(1); + const arg = parseFloat(parts.shift()); + const color = getColor(parts.join('<')); + + switch (func) { + case 'darken': return color.darken(arg); + case 'lighten': return color.lighten(arg); + case 'alpha': return color.setAlpha(arg); + } + } + + // other case + return tinycolor(val); + } + + const props = {}; + + for (const [k, v] of Object.entries(theme.props)) { + if (k.startsWith('$')) continue; // ignore const + + props[k] = v.startsWith('"') ? v.replace(/^"\s*/, '') : genValue(getColor(v)); + } + + return props; +} + +function genValue(c: tinycolor.Instance): string { + return c.toRgbString(); +} + +export function validateTheme(theme: Record): boolean { + if (theme.id == null || typeof theme.id !== 'string') return false; + if (theme.name == null || typeof theme.name !== 'string') return false; + if (theme.base == null || !['light', 'dark'].includes(theme.base)) return false; + if (theme.props == null || typeof theme.props !== 'object') return false; + return true; +} diff --git a/src/client/sidebar.ts b/src/client/sidebar.ts new file mode 100644 index 000000000..a3a32d787 --- /dev/null +++ b/src/client/sidebar.ts @@ -0,0 +1,153 @@ +import { faBell, faComments, faEnvelope } from '@fortawesome/free-regular-svg-icons'; +import { faAt, faBroadcastTower, faCloud, faColumns, faDoorClosed, faFileAlt, faFireAlt, faGamepad, faHashtag, faListUl, faPaperclip, faSatellite, faSatelliteDish, faSearch, faStar, faTerminal, faUserClock, faUsers } from '@fortawesome/free-solid-svg-icons'; +import { computed } from 'vue'; +import { store } from '@/store'; +import { search } from '@/scripts/search'; +import * as os from '@/os'; +import { i18n } from '@/i18n'; + +export const sidebarDef = { + notifications: { + title: 'notifications', + icon: faBell, + show: computed(() => store.getters.isSignedIn), + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasUnreadNotification), + to: '/my/notifications', + }, + messaging: { + title: 'messaging', + icon: faComments, + show: computed(() => store.getters.isSignedIn), + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasUnreadMessagingMessage), + to: '/my/messaging', + }, + drive: { + title: 'drive', + icon: faCloud, + show: computed(() => store.getters.isSignedIn), + to: '/my/drive', + }, + followRequests: { + title: 'followRequests', + icon: faUserClock, + show: computed(() => store.getters.isSignedIn && store.state.i.isLocked), + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasPendingReceivedFollowRequest), + to: '/my/follow-requests', + }, + featured: { + title: 'featured', + icon: faFireAlt, + to: '/featured', + }, + explore: { + title: 'explore', + icon: faHashtag, + to: '/explore', + }, + announcements: { + title: 'announcements', + icon: faBroadcastTower, + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasUnreadAnnouncement), + to: '/announcements', + }, + search: { + title: 'search', + icon: faSearch, + action: () => search(), + }, + lists: { + title: 'lists', + icon: faListUl, + show: computed(() => store.getters.isSignedIn), + to: '/my/lists', + }, + groups: { + title: 'groups', + icon: faUsers, + show: computed(() => store.getters.isSignedIn), + to: '/my/groups', + }, + antennas: { + title: 'antennas', + icon: faSatellite, + show: computed(() => store.getters.isSignedIn), + to: '/my/antennas', + }, + mentions: { + title: 'mentions', + icon: faAt, + show: computed(() => store.getters.isSignedIn), + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasUnreadMentions), + to: '/my/mentions', + }, + messages: { + title: 'directNotes', + icon: faEnvelope, + show: computed(() => store.getters.isSignedIn), + indicated: computed(() => store.getters.isSignedIn && store.state.i.hasUnreadSpecifiedNotes), + to: '/my/messages', + }, + favorites: { + title: 'favorites', + icon: faStar, + show: computed(() => store.getters.isSignedIn), + to: '/my/favorites', + }, + pages: { + title: 'pages', + icon: faFileAlt, + to: '/pages', + }, + clips: { + title: 'clip', + icon: faPaperclip, + show: computed(() => store.getters.isSignedIn), + to: '/my/clips', + }, + channels: { + title: 'channel', + icon: faSatelliteDish, + to: '/channels', + }, + games: { + title: 'games', + icon: faGamepad, + to: '/games/reversi', + }, + scratchpad: { + title: 'scratchpad', + icon: faTerminal, + to: '/scratchpad', + }, + rooms: { + title: 'rooms', + icon: faDoorClosed, + show: computed(() => store.getters.isSignedIn), + to: computed(() => `/@${store.state.i.username}/room`), + }, + ui: { + title: 'switchUi', + icon: faColumns, + action: (ev) => { + os.modalMenu([{ + text: i18n.global.t('default'), + action: () => { + localStorage.setItem('ui', 'default'); + location.reload(); + } + }, { + text: i18n.global.t('deck'), + action: () => { + localStorage.setItem('ui', 'deck'); + location.reload(); + } + }, { + text: i18n.global.t('desktop') + ' (β)', + action: () => { + localStorage.setItem('ui', 'desktop'); + location.reload(); + } + }], ev.currentTarget || ev.target); + }, + }, +}; diff --git a/src/client/store.ts b/src/client/store.ts new file mode 100644 index 000000000..8f7b02296 --- /dev/null +++ b/src/client/store.ts @@ -0,0 +1,501 @@ +import { createStore } from 'vuex'; +import createPersistedState from 'vuex-persistedstate'; +import * as nestedProperty from 'nested-property'; +import { api } from '@/os'; +import { erase } from '../prelude/array'; + +export const defaultSettings = { + tutorial: 0, + keepCw: false, + showFullAcct: false, + rememberNoteVisibility: false, + defaultNoteVisibility: 'public', + defaultNoteLocalOnly: false, + uploadFolder: null, + pastedFileName: 'yyyy-MM-dd HH-mm-ss [{{number}}]', + memo: null, + reactions: ['👍', '❤️', '😆', '🤔', '😮', '🎉', '💢', '😥', '😇', '🍮'], + mutedWords: [], +}; + +export const defaultDeviceUserSettings = { + visibility: 'public', + localOnly: false, + widgets: [], + tl: { + src: 'home' + }, + menu: [ + 'notifications', + 'messaging', + 'drive', + '-', + 'followRequests', + 'featured', + 'explore', + 'announcements', + 'search', + '-', + 'ui', + ], + windows: [], + sideView: null, + deck: { + columns: [], + layout: [], + }, + plugins: [] as { + id: string; + name: string; + active: boolean; + configData: Record; + token: string; + ast: any[]; + }[], +}; + +export const defaultDeviceSettings = { + lang: null, + loadRawImages: false, + alwaysShowNsfw: false, + useOsNativeEmojis: false, + serverDisconnectedBehavior: 'quiet', + accounts: [], + recentlyUsedEmojis: [], + recentlyUsedUsers: [], + themes: [], + darkTheme: '8050783a-7f63-445a-b270-36d0f6ba1677', + lightTheme: '4eea646f-7afa-4645-83e9-83af0333cd37', + darkMode: false, + deckMode: false, + syncDeviceDarkMode: true, + animation: true, + animatedMfm: true, + imageNewTab: false, + chatOpenBehavior: 'page', + defaultSideView: false, + deckNavWindow: true, + showFixedPostForm: false, + disablePagesScript: false, + enableInfiniteScroll: true, + useBlurEffectForModal: true, + useFullReactionPicker: false, + reactionPickerWidth: 1, + reactionPickerHeight: 1, + sidebarDisplay: 'full', // full, icon, hide + instanceTicker: 'remote', // none, remote, always + roomGraphicsQuality: 'medium', + roomUseOrthographicCamera: true, + deckColumnAlign: 'left', + deckAlwaysShowMainColumn: true, + deckMainColumnPlace: 'left', + sfxVolume: 0.3, + sfxNote: 'syuilo/down', + sfxNoteMy: 'syuilo/up', + sfxNotification: 'syuilo/pope2', + sfxChat: 'syuilo/pope1', + sfxChatBg: 'syuilo/waon', + sfxAntenna: 'syuilo/triple', + sfxChannel: 'syuilo/square-pico', + userData: {}, +}; + +function copy(data: T): T { + return JSON.parse(JSON.stringify(data)); +} + +export const postFormActions = []; +export const userActions = []; +export const noteActions = []; +export const noteViewInterruptors = []; +export const notePostInterruptors = []; + +export const store = createStore({ + strict: _DEV_, + + plugins: [createPersistedState({ + paths: ['i', 'device', 'deviceUser', 'settings', 'instance'] + })], + + state: { + i: null, + }, + + getters: { + isSignedIn: state => state.i != null, + }, + + mutations: { + updateI(state, x) { + state.i = x; + }, + + updateIKeyValue(state, { key, value }) { + state.i[key] = value; + }, + }, + + actions: { + async login(ctx, i) { + ctx.commit('updateI', i); + ctx.commit('settings/init', i.clientData); + ctx.commit('deviceUser/init', ctx.state.device.userData[i.id] || {}); + // TODO: ローカルストレージを消してページリロードしたときは i が無いのでその場合のハンドリングをよしなにやる + await ctx.dispatch('addAcount', { id: i.id, i: localStorage.getItem('i') }); + }, + + addAcount(ctx, info) { + if (!ctx.state.device.accounts.some(x => x.id === info.id)) { + ctx.commit('device/set', { + key: 'accounts', + value: ctx.state.device.accounts.concat([{ id: info.id, token: info.i }]) + }); + } + }, + + logout(ctx) { + ctx.commit('device/setUserData', { userId: ctx.state.i.id, data: ctx.state.deviceUser }); + ctx.commit('updateI', null); + ctx.commit('settings/init', {}); + ctx.commit('deviceUser/init', {}); + localStorage.removeItem('i'); + document.cookie = `igi=; path=/`; + }, + + async switchAccount(ctx, i) { + ctx.commit('device/setUserData', { userId: ctx.state.i.id, data: ctx.state.deviceUser }); + localStorage.setItem('i', i.token); + await ctx.dispatch('login', i); + }, + + mergeMe(ctx, me) { + // TODO: プロパティ一つ一つに対してコミットが発生するのはアレなので良い感じにする + for (const [key, value] of Object.entries(me)) { + ctx.commit('updateIKeyValue', { key, value }); + } + + if (me.clientData) { + ctx.commit('settings/init', me.clientData); + } + }, + }, + + modules: { + instance: { + namespaced: true, + + state: { + meta: null + }, + + getters: { + emojiCategories: state => { + const categories = new Set(); + for (const emoji of state.meta.emojis) { + categories.add(emoji.category); + } + return Array.from(categories); + }, + }, + + mutations: { + set(state, meta) { + state.meta = meta; + }, + }, + + actions: { + async fetch(ctx) { + const meta = await api('meta', { + detail: false + }); + + ctx.commit('set', meta); + } + } + }, + + device: { + namespaced: true, + + state: defaultDeviceSettings, + + mutations: { + overwrite(state, x) { + for (const k of Object.keys(state)) { + if (x[k] === undefined) delete state[k]; + } + for (const k of Object.keys(x)) { + state[k] = x[k]; + } + }, + + set(state, x: { key: string; value: any }) { + state[x.key] = x.value; + }, + + setUserData(state, x: { userId: string; data: any }) { + state.userData[x.userId] = copy(x.data); + }, + } + }, + + deviceUser: { + namespaced: true, + + state: defaultDeviceUserSettings, + + mutations: { + overwrite(state, x) { + for (const k of Object.keys(state)) { + if (x[k] === undefined) delete state[k]; + } + for (const k of Object.keys(x)) { + state[k] = x[k]; + } + }, + + init(state, x) { + for (const [key, value] of Object.entries(defaultDeviceUserSettings)) { + if (Object.prototype.hasOwnProperty.call(x, key)) { + state[key] = x[key]; + } else { + state[key] = value; + } + } + }, + + set(state, x: { key: string; value: any }) { + state[x.key] = x.value; + }, + + setTl(state, x) { + state.tl = { + src: x.src, + arg: x.arg + }; + }, + + setMenu(state, menu) { + state.menu = menu; + }, + + setVisibility(state, visibility) { + state.visibility = visibility; + }, + + setLocalOnly(state, localOnly) { + state.localOnly = localOnly; + }, + + setWidgets(state, widgets) { + state.widgets = widgets; + }, + + addWidget(state, widget) { + state.widgets.unshift(widget); + }, + + removeWidget(state, widget) { + state.widgets = state.widgets.filter(w => w.id != widget.id); + }, + + updateWidget(state, x) { + const w = state.widgets.find(w => w.id === x.id); + if (w) { + w.data = x.data; + } + }, + + //#region Deck + addDeckColumn(state, column) { + if (column.name == undefined) column.name = null; + state.deck.columns.push(column); + state.deck.layout.push([column.id]); + }, + + removeDeckColumn(state, id) { + state.deck.columns = state.deck.columns.filter(c => c.id != id); + state.deck.layout = state.deck.layout.map(ids => erase(id, ids)); + state.deck.layout = state.deck.layout.filter(ids => ids.length > 0); + }, + + swapDeckColumn(state, x) { + const a = x.a; + const b = x.b; + const aX = state.deck.layout.findIndex(ids => ids.indexOf(a) != -1); + const aY = state.deck.layout[aX].findIndex(id => id == a); + const bX = state.deck.layout.findIndex(ids => ids.indexOf(b) != -1); + const bY = state.deck.layout[bX].findIndex(id => id == b); + state.deck.layout[aX][aY] = b; + state.deck.layout[bX][bY] = a; + }, + + swapLeftDeckColumn(state, id) { + state.deck.layout.some((ids, i) => { + if (ids.indexOf(id) != -1) { + const left = state.deck.layout[i - 1]; + if (left) { + // https://vuejs.org/v2/guide/list.html#Caveats + //state.deck.layout[i - 1] = state.deck.layout[i]; + //state.deck.layout[i] = left; + state.deck.layout.splice(i - 1, 1, state.deck.layout[i]); + state.deck.layout.splice(i, 1, left); + } + return true; + } + }); + }, + + swapRightDeckColumn(state, id) { + state.deck.layout.some((ids, i) => { + if (ids.indexOf(id) != -1) { + const right = state.deck.layout[i + 1]; + if (right) { + // https://vuejs.org/v2/guide/list.html#Caveats + //state.deck.layout[i + 1] = state.deck.layout[i]; + //state.deck.layout[i] = right; + state.deck.layout.splice(i + 1, 1, state.deck.layout[i]); + state.deck.layout.splice(i, 1, right); + } + return true; + } + }); + }, + + swapUpDeckColumn(state, id) { + const ids = state.deck.layout.find(ids => ids.indexOf(id) != -1); + ids.some((x, i) => { + if (x == id) { + const up = ids[i - 1]; + if (up) { + // https://vuejs.org/v2/guide/list.html#Caveats + //ids[i - 1] = id; + //ids[i] = up; + ids.splice(i - 1, 1, id); + ids.splice(i, 1, up); + } + return true; + } + }); + }, + + swapDownDeckColumn(state, id) { + const ids = state.deck.layout.find(ids => ids.indexOf(id) != -1); + ids.some((x, i) => { + if (x == id) { + const down = ids[i + 1]; + if (down) { + // https://vuejs.org/v2/guide/list.html#Caveats + //ids[i + 1] = id; + //ids[i] = down; + ids.splice(i + 1, 1, id); + ids.splice(i, 1, down); + } + return true; + } + }); + }, + + stackLeftDeckColumn(state, id) { + const i = state.deck.layout.findIndex(ids => ids.indexOf(id) != -1); + state.deck.layout = state.deck.layout.map(ids => erase(id, ids)); + const left = state.deck.layout[i - 1]; + if (left) state.deck.layout[i - 1].push(id); + state.deck.layout = state.deck.layout.filter(ids => ids.length > 0); + }, + + popRightDeckColumn(state, id) { + const i = state.deck.layout.findIndex(ids => ids.indexOf(id) != -1); + state.deck.layout = state.deck.layout.map(ids => erase(id, ids)); + state.deck.layout.splice(i + 1, 0, [id]); + state.deck.layout = state.deck.layout.filter(ids => ids.length > 0); + }, + + addDeckWidget(state, x) { + const column = state.deck.columns.find(c => c.id == x.id); + if (column == null) return; + if (column.widgets == null) column.widgets = []; + column.widgets.unshift(x.widget); + }, + + removeDeckWidget(state, x) { + const column = state.deck.columns.find(c => c.id == x.id); + if (column == null) return; + column.widgets = column.widgets.filter(w => w.id != x.widget.id); + }, + + renameDeckColumn(state, x) { + const column = state.deck.columns.find(c => c.id == x.id); + if (column == null) return; + column.name = x.name; + }, + + updateDeckColumn(state, x) { + let column = state.deck.columns.find(c => c.id == x.id); + if (column == null) return; + column = x; + }, + //#endregion + + installPlugin(state, { id, meta, ast, token }) { + state.plugins.push({ + ...meta, + id, + active: true, + configData: {}, + token: token, + ast: ast + }); + }, + + uninstallPlugin(state, id) { + state.plugins = state.plugins.filter(x => x.id != id); + }, + + configPlugin(state, { id, config }) { + state.plugins.find(p => p.id === id).configData = config; + }, + + changePluginActive(state, { id, active }) { + state.plugins.find(p => p.id === id).active = active; + }, + } + }, + + settings: { + namespaced: true, + + state: defaultSettings, + + mutations: { + set(state, x: { key: string; value: any }) { + nestedProperty.set(state, x.key, x.value); + }, + + init(state, x) { + for (const [key, value] of Object.entries(defaultSettings)) { + if (Object.prototype.hasOwnProperty.call(x, key)) { + state[key] = x[key]; + } else { + state[key] = value; + } + } + }, + }, + + actions: { + set(ctx, x) { + ctx.commit('set', x); + + if (ctx.rootGetters.isSignedIn) { + api('i/update-client-setting', { + name: x.key, + value: x.value + }); + } + }, + } + } + } +}); diff --git a/src/client/style.scss b/src/client/style.scss new file mode 100644 index 000000000..846cf0193 --- /dev/null +++ b/src/client/style.scss @@ -0,0 +1,514 @@ +@charset "utf-8"; + +:root { + --baseContentWidth: 750px; + --radius: 8px; + --marginFull: 16px; + --marginHalf: 10px; + + --margin: var(--marginFull); + + @media (max-width: 500px) { + --margin: var(--marginHalf); + } +} + +::selection { + color: #fff; + background-color: var(--accent); +} + +html { + touch-action: manipulation; + background-color: var(--bg); + background-attachment: fixed; + background-size: cover; + background-position: center; + color: var(--fg); + overflow: auto; + + &, * { + scrollbar-color: var(--scrollbarHandle) var(--panel); + scrollbar-width: thin; + + &:hover { + scrollbar-color: var(--scrollbarHandleHover) var(--panel); + } + + &:active { + scrollbar-color: var(--accent) var(--panel); + } + + &::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + &::-webkit-scrollbar-track { + background: var(--panel); + } + + &::-webkit-scrollbar-thumb { + background: var(--scrollbarHandle); + + &:hover { + background: var(--scrollbarHandleHover); + } + + &:active { + background: var(--accent); + } + } + } + + &.f-small { + font-size: 0.9em; + } + + &.f-large { + font-size: 1.1em; + } + + &.f-veryLarge { + font-size: 1.2em; + } +} + +html.changing-theme { + &, * { + transition: background 1s ease !important; + } +} + +body { + overflow-wrap: break-word; +} + +html, body { + margin: 0; + padding: 0; + scroll-behavior: smooth; + text-size-adjust: 100%; + font-family: Roboto, HelveticaNeue, Arial, sans-serif; +} + +a { + text-decoration: none; + cursor: pointer; + color: inherit; + tap-highlight-color: transparent; + -webkit-tap-highlight-color: transparent; + + &:hover { + text-decoration: underline; + } +} + +textarea, input { + tap-highlight-color: transparent; + -webkit-tap-highlight-color: transparent; +} + +optgroup, option { + background: var(--panel); + color: var(--fg); +} + +hr { + margin: var(--margin) 0 var(--margin) 0; + border: none; + height: 1px; + background: var(--divider); +} + +._noSelect { + user-select: none; + -webkit-user-select: none; + -webkit-touch-callout: none; +} + +._ghost { + &, * { + @extend ._noSelect; + pointer-events: none; + } +} + +._modalBg { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--modalBg); + backdrop-filter: var(--modalBgFilter); +} + +._shadow { + box-shadow: 0px 4px 32px var(--shadow) !important; +} + +._button { + appearance: none; + padding: 0; + margin: 0; // for Safari + background: none; + border: none; + cursor: pointer; + color: var(--fg); + touch-action: manipulation; + tap-highlight-color: transparent; + -webkit-tap-highlight-color: transparent; + font-size: 1em; + + &, * { + @extend ._noSelect; + } + + * { + pointer-events: none; + } + + &:focus { + outline: none; + } + + &:disabled { + opacity: 0.5; + cursor: default; + } +} + +._buttonPrimary { + @extend ._button; + color: #fff; + background: var(--accent); + + &:not(:disabled):hover { + background: var(--X8); + } + + &:not(:disabled):active { + background: var(--X9); + } +} + +._textButton { + @extend ._button; + color: var(--accent); + + &:not(:disabled):hover { + text-decoration: underline; + } +} + +._inputs { + display: flex; + margin: 32px 0; + + &:first-child { + margin-top: 8px; + } + + &:last-child { + margin-bottom: 8px; + } + + > * { + flex: 1; + margin: 0 !important; + + &:not(:first-child) { + margin-left: 8px !important; + } + + &:not(:last-child) { + margin-right: 8px !important; + } + } +} + +._panel { + //position: relative; + //z-index: 1; + background: var(--panel); + border-radius: var(--radius); + //border: var(--panelBorder); + box-shadow: var(--panelShadow); + overflow: hidden; +} + +._card { + @extend ._panel; + + > ._title { + margin: 0; + padding: 22px 32px; + font-size: 1em; + border-bottom: solid 1px var(--panelHeaderDivider); + font-weight: bold; + background: var(--panelHeaderBg); + color: var(--panelHeaderFg); + + @media (max-width: 500px) { + padding: 16px; + font-size: 1em; + } + } + + > ._content { + padding: 32px; + + @media (max-width: 500px) { + padding: 16px; + } + + &._noPad { + padding: 0 !important; + } + + & + ._content { + border-top: solid 1px var(--divider); + } + } + + > ._footer { + border-top: solid 1px var(--divider); + padding: 24px 32px; + + @media (max-width: 500px) { + padding: 16px; + } + } +} + +._close_ ._list_ > * { + border: none; + border-bottom: solid 1px var(--divider); + border-radius: 0; + box-shadow: none; + margin: 0 !important; +} + +._loadMore { + @extend ._panel; + @extend ._button; + width: 100%; + padding: 12px 0; +} + +._borderButton { + @extend ._button; + display: block; + width: 100%; + padding: 10px; + box-sizing: border-box; + text-align: center; + border: solid 1px var(--divider); + border-radius: var(--radius); + + &:active { + border-color: var(--accent); + } +} + +._popup { + background: var(--panel); + border-radius: var(--radius); +} + +._section { + padding: var(--section-padding, 32px); + + &:empty { + display: none; + } + + &:not(:empty) + ._section { + border-top: solid 1px var(--divider); + } + + @media (max-width: 500px) { + padding: var(--section-padding, 10px); + + > ._title { + font-size: 1.1em; + font-weight: bold; + } + } + + > ._title, + > ._content { + box-sizing: border-box; + max-width: var(--baseContentWidth); + margin: 0 auto; + } + + > ._title { + margin-bottom: 24px; + font-weight: bold; + } + + &._fitBottom { + padding-bottom: 0; + } +} + +._narrow_ ._section { + > ._title { + padding: 8px; + font-size: 1em; + } +} + +._narrow_ ._card { + > ._title { + padding: 16px; + font-size: 1em; + } + + > ._content { + padding: 16px; + } + + > ._footer { + padding: 16px; + } +} + +._acrylic { + background: var(--acrylicPanel); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); +} + +._vMargin { + & + ._vMargin { + margin-top: var(--margin); + } +} + +._table { + > ._row { + display: flex; + + &:not(:last-child) { + margin-bottom: 16px; + + @media (max-width: 500px) { + margin-bottom: 8px; + } + } + + > ._cell { + flex: 1; + + > ._label { + font-size: 80%; + opacity: 0.7; + + > ._icon { + margin-right: 4px; + display: none; + } + } + } + } +} + +._fullinfo { + padding: 64px 32px; + text-align: center; + + > img { + vertical-align: bottom; + height: 128px; + margin-bottom: 16px; + border-radius: 16px; + } +} + +._keyValue { + display: flex; + + > * { + flex: 1; + } +} + +._link { + color: var(--link); +} + +._caption { + font-size: 0.8em; + opacity: 0.7; +} + +._code { + background: #2d2d2d; + color: #ccc; + font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace; + font-size: 14px; + line-height: 1.5; + padding: 5px; +} + +.prism-editor__textarea:focus { + outline: none; +} + +.zoom-enter-active, .zoom-leave-active { + transition: opacity 0.5s, transform 0.5s !important; +} +.zoom-enter-from, .zoom-leave-to { + opacity: 0; + transform: scale(0.9); +} + +.zoom-in-top-enter-active, +.zoom-in-top-leave-active { + opacity: 1; + transform: scaleY(1); + transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1); + transform-origin: center top; +} +.zoom-in-top-enter-from, +.zoom-in-top-leave-active { + opacity: 0; + transform: scaleY(0); +} + +@keyframes blink { + 0% { opacity: 1; transform: scale(1); } + 30% { opacity: 1; transform: scale(1); } + 90% { opacity: 0; transform: scale(0.5); } +} + +@keyframes tada { + from { + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + transform: scale3d(1, 1, 1); + } +} diff --git a/src/client/sw.ts b/src/client/sw.ts new file mode 100644 index 000000000..01ed21602 --- /dev/null +++ b/src/client/sw.ts @@ -0,0 +1,67 @@ +/** + * Service Worker + */ +declare var self: ServiceWorkerGlobalScope; + +import composeNotification from '@/scripts/compose-notification'; + +// eslint-disable-next-line no-undef +const version = _VERSION_; +const cacheName = `mk-cache-${version}`; + +const apiUrl = `${location.origin}/api/`; + +// インストールされたとき +self.addEventListener('install', ev => { + console.info('installed'); + + ev.waitUntil( + caches.open(cacheName) + .then(cache => { + return cache.addAll([ + `/?v=${version}` + ]); + }) + .then(() => self.skipWaiting()) + ); +}); + +self.addEventListener('activate', ev => { + ev.waitUntil( + caches.keys() + .then(cacheNames => Promise.all( + cacheNames + .filter((v) => v !== cacheName) + .map(name => caches.delete(name)) + )) + .then(() => self.clients.claim()) + ); +}); + +self.addEventListener('fetch', ev => { + if (ev.request.method !== 'GET' || ev.request.url.startsWith(apiUrl)) return; + ev.respondWith( + caches.match(ev.request) + .then(response => { + return response || fetch(ev.request); + }) + .catch(() => { + return caches.match(`/?v=${version}`); + }) + ); +}); + +// プッシュ通知を受け取ったとき +self.addEventListener('push', ev => { + // クライアント取得 + ev.waitUntil(self.clients.matchAll({ + includeUncontrolled: true + }).then(async clients => { + // クライアントがあったらストリームに接続しているということなので通知しない + if (clients.length != 0) return; + + const { type, body } = ev.data.json(); + + return self.registration.showNotification(...(await composeNotification(type, body))); + })); +}); diff --git a/src/client/themes/_dark.json5 b/src/client/themes/_dark.json5 new file mode 100644 index 000000000..ee6d9b49e --- /dev/null +++ b/src/client/themes/_dark.json5 @@ -0,0 +1,79 @@ +// ダークテーマのベーステーマ +// このテーマが直接使われることは無い +{ + id: 'dark', + + name: 'Dark', + author: 'syuilo', + desc: 'Default dark theme', + kind: 'dark', + + props: { + accent: '#86b300', + accentDarken: ':darken<10<@accent', + accentLighten: ':lighten<10<@accent', + focus: ':alpha<0.3<@accent', + bg: '#000', + fg: '#c7d1d8', + fgHighlighted: ':lighten<3<@fg', + divider: 'rgba(255, 255, 255, 0.1)', + indicator: '@accent', + panel: '#000', + panelHeaderBg: ':lighten<3<@panel', + panelHeaderFg: '@fg', + panelHeaderDivider: 'rgba(0, 0, 0, 0)', + panelBorder: 'rgba(0, 0, 0, 0)', + panelShadow: '" 0 8px 24px rgba(0, 0, 0, 0.12)', + acrylicPanel: ':alpha<0.5<@panel', + shadow: 'rgba(0, 0, 0, 0.3)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + navFg: '@fg', + navHoverFg: ':lighten<17<@fg', + navActive: '@accent', + navIndicator: '@accent', + link: '#44a4c1', + hashtag: '#ff9156', + mention: '@accent', + mentionMe: '@mention', + renote: '#229e82', + modalBg: 'rgba(0, 0, 0, 0.5)', + scrollbarHandle: 'rgba(255, 255, 255, 0.2)', + scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)', + dateLabelFg: '@fg', + infoBg: '#253142', + infoFg: '#fff', + infoWarnBg: '#42321c', + infoWarnFg: '#ffbd3e', + cwBg: '#687390', + cwFg: '#393f4f', + cwHoverBg: '#707b97', + buttonBg: 'rgba(255, 255, 255, 0.05)', + buttonHoverBg: 'rgba(255, 255, 255, 0.1)', + inputBorder: '#959da2', + listItemHoverBg: 'rgba(255, 255, 255, 0.03)', + driveFolderBg: ':alpha<0.3<@accent', + wallpaperOverlay: 'rgba(0, 0, 0, 0.5)', + badge: '#31b1ce', + messageBg: ':lighten<5<@bg', + success: '#86b300', + error: '#ec4137', + warn: '#ecb637', + htmlThemeColor: '@bg', + X1: ':alpha<0<@bg', + X2: ':darken<2<@panel', + X3: 'rgba(255, 255, 255, 0.05)', + X4: 'rgba(255, 255, 255, 0.1)', + X5: 'rgba(255, 255, 255, 0.05)', + X6: 'rgba(255, 255, 255, 0.15)', + X7: 'rgba(255, 255, 255, 0.05)', + X8: ':lighten<5<@accent', + X9: ':darken<5<@accent', + X10: ':alpha<0.4<@accent', + X11: 'rgba(0, 0, 0, 0.3)', + X12: 'rgba(255, 255, 255, 0.1)', + X13: 'rgba(255, 255, 255, 0.15)', + X14: ':alpha<0.5<@navBg', + X15: ':alpha<0<@panel', + }, +} diff --git a/src/client/themes/_light.json5 b/src/client/themes/_light.json5 new file mode 100644 index 000000000..882199939 --- /dev/null +++ b/src/client/themes/_light.json5 @@ -0,0 +1,79 @@ +// ライトテーマのベーステーマ +// このテーマが直接使われることは無い +{ + id: 'light', + + name: 'Light', + author: 'syuilo', + desc: 'Default light theme', + kind: 'light', + + props: { + accent: '#86b300', + accentDarken: ':darken<10<@accent', + accentLighten: ':lighten<10<@accent', + focus: ':alpha<0.3<@accent', + bg: '#fff', + fg: '#5c6a73', + fgHighlighted: ':darken<3<@fg', + divider: 'rgba(0, 0, 0, 0.1)', + indicator: '@accent', + panel: '#fff', + panelHeaderBg: ':lighten<3<@panel', + panelHeaderFg: '@fg', + panelHeaderDivider: 'rgba(0, 0, 0, 0)', + panelBorder: 'rgba(0, 0, 0, 0)', + panelShadow: '" 0 8px 24px rgb(21 43 75 / 8%)', + acrylicPanel: ':alpha<0.5<@panel', + shadow: 'rgba(0, 0, 0, 0.1)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + navFg: '@fg', + navHoverFg: ':darken<17<@fg', + navActive: '@accent', + navIndicator: '@accent', + link: '#44a4c1', + hashtag: '#ff9156', + mention: '@accent', + mentionMe: '@mention', + renote: '#229e82', + modalBg: 'rgba(0, 0, 0, 0.3)', + scrollbarHandle: 'rgba(0, 0, 0, 0.2)', + scrollbarHandleHover: 'rgba(0, 0, 0, 0.4)', + dateLabelFg: '@fg', + infoBg: '#e5f5ff', + infoFg: '#72818a', + infoWarnBg: '#fff0db', + infoWarnFg: '#573c08', + cwBg: '#b1b9c1', + cwFg: '#fff', + cwHoverBg: '#bbc4ce', + buttonBg: 'rgba(0, 0, 0, 0.05)', + buttonHoverBg: 'rgba(0, 0, 0, 0.1)', + inputBorder: '#dae0e4', + listItemHoverBg: 'rgba(0, 0, 0, 0.03)', + driveFolderBg: ':alpha<0.3<@accent', + wallpaperOverlay: 'rgba(255, 255, 255, 0.5)', + badge: '#31b1ce', + messageBg: '@panel', + success: '#86b300', + error: '#ec4137', + warn: '#ecb637', + htmlThemeColor: '@bg', + X1: ':alpha<0<@bg', + X2: ':darken<2<@panel', + X3: 'rgba(0, 0, 0, 0.05)', + X4: 'rgba(0, 0, 0, 0.1)', + X5: 'rgba(0, 0, 0, 0.05)', + X6: 'rgba(0, 0, 0, 0.25)', + X7: 'rgba(0, 0, 0, 0.05)', + X8: ':lighten<5<@accent', + X9: ':darken<5<@accent', + X10: ':alpha<0.4<@accent', + X11: 'rgba(0, 0, 0, 0.1)', + X12: 'rgba(0, 0, 0, 0.1)', + X13: 'rgba(0, 0, 0, 0.15)', + X14: ':alpha<0.5<@navBg', + X15: ':alpha<0<@panel', + }, +} diff --git a/src/client/themes/d-battery-saver.json5 b/src/client/themes/d-battery-saver.json5 new file mode 100644 index 000000000..e6499ace9 --- /dev/null +++ b/src/client/themes/d-battery-saver.json5 @@ -0,0 +1,18 @@ +{ + id: '8c539dc1-0fab-4d47-9194-39c508e9bfe1', + + name: 'Battery Saver', + author: 'syuilo', + + base: 'dark', + + props: { + divider: '#2d2d2d', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + panelShadow: '" 0 0 0 1px var(--divider)', + shadow: 'rgba(255, 255, 255, 0.05)', + modalBg: 'rgba(255, 255, 255, 0.1)', + messageBg: '#1d1d1d', + }, +} diff --git a/src/client/themes/d-black.json5 b/src/client/themes/d-black.json5 new file mode 100644 index 000000000..1e30d5647 --- /dev/null +++ b/src/client/themes/d-black.json5 @@ -0,0 +1,29 @@ +{ + id: '8050783a-7f63-445a-b270-36d0f6ba1677', + + name: 'Mi Black', + author: 'syuilo', + desc: 'Default light theme', + + base: 'dark', + + props: { + bg: '#272727', + fg: 'rgb(199, 209, 216)', + fgHighlighted: '#fff', + divider: 'rgba(255, 255, 255, 0.14)', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + infoFg: '@accent', + infoBg: 'rgb(0, 0, 0)', + header: ':alpha<0.7<@bg', + navBg: '#363636', + renote: '@accent', + mention: '#da6d35', + mentionMe: '#d44c4c', + hashtag: '#4cb8d4', + link: '@accent', + }, +} diff --git a/src/client/themes/d-blue.json5 b/src/client/themes/d-blue.json5 new file mode 100644 index 000000000..96e6240e9 --- /dev/null +++ b/src/client/themes/d-blue.json5 @@ -0,0 +1,29 @@ +{ + id: 'ab4eb6d5-dcc0-4457-8a3c-98aad8ea3979', + + name: 'Mi D Blue', + author: 'syuilo', + + base: 'dark', + + props: { + accent: 'rgb(81 185 189)', + bg: 'rgb(54, 54, 54)', + fg: 'rgb(199, 209, 216)', + fgHighlighted: '#fff', + divider: 'rgba(255, 255, 255, 0.14)', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + infoFg: '@accent', + infoBg: 'rgb(0, 0, 0)', + header: ':alpha<0.7<@bg', + navBg: 'rgb(71, 71, 71)', + renote: '@accent', + mention: '#da6d35', + mentionMe: '#d44c4c', + hashtag: '#4cb8d4', + link: '@accent', + }, +} diff --git a/src/client/themes/d-green.json5 b/src/client/themes/d-green.json5 new file mode 100644 index 000000000..f1f90d1c7 --- /dev/null +++ b/src/client/themes/d-green.json5 @@ -0,0 +1,29 @@ +{ + id: '326dc4bf-29d9-45b4-889e-bdc33e84919b', + + name: 'Mi D Green', + author: 'syuilo', + + base: 'dark', + + props: { + accent: 'rgb(152, 196, 69)', + bg: 'rgb(54, 54, 54)', + fg: 'rgb(199, 209, 216)', + fgHighlighted: '#fff', + divider: 'rgba(255, 255, 255, 0.14)', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + infoFg: '@accent', + infoBg: 'rgb(0, 0, 0)', + header: ':alpha<0.7<@bg', + navBg: 'rgb(71, 71, 71)', + renote: '@accent', + mention: '#da6d35', + mentionMe: '#d44c4c', + hashtag: '#4cb8d4', + link: '@accent', + }, +} diff --git a/src/client/themes/d-persimmon.json5 b/src/client/themes/d-persimmon.json5 new file mode 100644 index 000000000..2c32e0797 --- /dev/null +++ b/src/client/themes/d-persimmon.json5 @@ -0,0 +1,29 @@ +{ + id: 'c503d768-7c70-4db2-a4e6-08264304bc8d', + + name: 'Ai Persimmon', + author: 'syuilo', + + base: 'dark', + + props: { + accent: 'rgb(206, 102, 65)', + bg: 'rgb(41, 43, 41)', + fg: '#cdd8c7', + fgHighlighted: '#fff', + divider: 'rgba(255, 255, 255, 0.14)', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + infoFg: '@accent', + infoBg: 'rgb(0, 0, 0)', + header: ':alpha<0.7<@bg', + navBg: '#1f211f', + renote: '@accent', + mention: '@accent', + mentionMe: '#de6161', + hashtag: '#68bad0', + link: '#a1c758', + }, +} diff --git a/src/client/themes/d-red.json5 b/src/client/themes/d-red.json5 new file mode 100644 index 000000000..0f137322c --- /dev/null +++ b/src/client/themes/d-red.json5 @@ -0,0 +1,29 @@ +{ + id: '60960086-26da-4f3c-bb0c-f6a4f89e0f60', + + name: 'Mi D Red', + author: 'syuilo', + + base: 'dark', + + props: { + accent: 'rgb(196 115 69)', + bg: 'rgb(54, 54, 54)', + fg: 'rgb(199, 209, 216)', + fgHighlighted: '#fff', + divider: 'rgba(255, 255, 255, 0.14)', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + infoFg: '@accent', + infoBg: 'rgb(0, 0, 0)', + header: ':alpha<0.7<@bg', + navBg: 'rgb(71, 71, 71)', + renote: '@accent', + mention: '#da6d35', + mentionMe: '#d44c4c', + hashtag: '#4cb8d4', + link: '@accent', + }, +} diff --git a/packages/client/src/themes/l-apricot.json5 b/src/client/themes/l-apricot.json5 similarity index 75% rename from packages/client/src/themes/l-apricot.json5 rename to src/client/themes/l-apricot.json5 index 1ed552557..7fbc2b47c 100644 --- a/packages/client/src/themes/l-apricot.json5 +++ b/src/client/themes/l-apricot.json5 @@ -1,7 +1,7 @@ { id: '0ff48d43-aab3-46e7-ab12-8492110d2e2b', - name: 'Mi Apricot Light', + name: 'Ai Apricot', author: 'syuilo', base: 'light', @@ -16,7 +16,5 @@ mention: '@accent', hashtag: '@accent', inputBorder: 'rgba(0, 0, 0, 0.1)', - inputBorderHover: 'rgba(0, 0, 0, 0.2)', - infoBg: 'rgb(226, 235, 241)', }, } diff --git a/src/client/themes/l-blue.json5 b/src/client/themes/l-blue.json5 new file mode 100644 index 000000000..06c06da08 --- /dev/null +++ b/src/client/themes/l-blue.json5 @@ -0,0 +1,21 @@ +{ + id: 'ad18a23b-6af6-4af0-9ed4-600568250574', + + name: 'Mi L Blue', + author: 'syuilo', + + base: 'light', + + props: { + accent: '#4dbccc', + bg: '#fff', + fg: '#5d5d5d', + divider: 'rgb(223, 223, 223)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderDivider: '@divider', + messageBg: '#dedede', + }, +} diff --git a/src/client/themes/l-green.json5 b/src/client/themes/l-green.json5 new file mode 100644 index 000000000..5a9eb8e0a --- /dev/null +++ b/src/client/themes/l-green.json5 @@ -0,0 +1,21 @@ +{ + id: 'a55af79a-12bf-4f8d-a0cc-718957ad59b4', + + name: 'Mi L Green', + author: 'syuilo', + + base: 'light', + + props: { + accent: '#8bcc4d', + bg: '#fff', + fg: '#5d5d5d', + divider: 'rgb(223, 223, 223)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderDivider: '@divider', + messageBg: '#dedede', + }, +} diff --git a/src/client/themes/l-red.json5 b/src/client/themes/l-red.json5 new file mode 100644 index 000000000..22139c3aa --- /dev/null +++ b/src/client/themes/l-red.json5 @@ -0,0 +1,21 @@ +{ + id: '957db7cb-30fb-4c80-bf0b-04198e7ae7e3', + + name: 'Mi L Red', + author: 'syuilo', + + base: 'light', + + props: { + accent: '#fb734d', + bg: '#fff', + fg: '#5d5d5d', + divider: 'rgb(223, 223, 223)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + panel: '@bg', + panelShadow: '" 0 0 0 1px var(--divider)', + panelHeaderDivider: '@divider', + messageBg: '#dedede', + }, +} diff --git a/src/client/themes/l-white.json5 b/src/client/themes/l-white.json5 new file mode 100644 index 000000000..9daa60c11 --- /dev/null +++ b/src/client/themes/l-white.json5 @@ -0,0 +1,21 @@ +{ + id: '4eea646f-7afa-4645-83e9-83af0333cd37', + + name: 'Mi White', + author: 'syuilo', + desc: 'Default light theme', + + base: 'light', + + props: { + bg: '#f9f9f9', + fg: '#636b71', + divider: 'rgb(223, 223, 223)', + header: ':alpha<0.7<@bg', + navBg: '@bg', + panel: '#fff', + panelShadow: '" 0 8px 24px rgb(21 43 75 / 8%)', + panelHeaderDivider: '@divider', + messageBg: '#dedede', + }, +} diff --git a/src/client/tsconfig.json b/src/client/tsconfig.json new file mode 100644 index 000000000..e6a6b8eb2 --- /dev/null +++ b/src/client/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "allowJs": true, + "noEmitOnError": false, + "noImplicitAny": false, + "noImplicitReturns": true, + "noUnusedParameters": false, + "noUnusedLocals": true, + "noFallthroughCasesInSwitch": true, + "declaration": false, + "sourceMap": false, + "target": "es2017", + "module": "esnext", + "moduleResolution": "node", + "removeComments": false, + "noLib": false, + "strict": true, + "strictNullChecks": false, + "experimentalDecorators": true, + "resolveJsonModule": true, + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + }, + "typeRoots": [ + "node_modules/@types", + "src/@types", + "src/client/@types" + ], + "lib": [ + "esnext", + "dom", + "webworker" + ] + }, + "compileOnSave": false, + "include": [ + "./**/*.ts" + ] +} diff --git a/src/client/ui/_common_/common.vue b/src/client/ui/_common_/common.vue new file mode 100644 index 000000000..d06cbb986 --- /dev/null +++ b/src/client/ui/_common_/common.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/client/ui/_common_/header.vue b/src/client/ui/_common_/header.vue new file mode 100644 index 000000000..87a562190 --- /dev/null +++ b/src/client/ui/_common_/header.vue @@ -0,0 +1,172 @@ + + + + + + + diff --git a/src/client/ui/_common_/stream-indicator.vue b/src/client/ui/_common_/stream-indicator.vue new file mode 100644 index 000000000..7b020171a --- /dev/null +++ b/src/client/ui/_common_/stream-indicator.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/packages/client/src/ui/_common_/upload.vue b/src/client/ui/_common_/upload.vue similarity index 80% rename from packages/client/src/ui/_common_/upload.vue rename to src/client/ui/_common_/upload.vue index 8324e9e75..2ba2186f5 100644 --- a/packages/client/src/ui/_common_/upload.vue +++ b/src/client/ui/_common_/upload.vue @@ -1,14 +1,14 @@ - diff --git a/src/client/ui/deck/antenna-column.vue b/src/client/ui/deck/antenna-column.vue new file mode 100644 index 000000000..87df0fa87 --- /dev/null +++ b/src/client/ui/deck/antenna-column.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/client/ui/deck/column-core.vue b/src/client/ui/deck/column-core.vue new file mode 100644 index 000000000..36872d987 --- /dev/null +++ b/src/client/ui/deck/column-core.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/client/ui/deck/column.vue b/src/client/ui/deck/column.vue new file mode 100644 index 000000000..8137cbfd4 --- /dev/null +++ b/src/client/ui/deck/column.vue @@ -0,0 +1,419 @@ + + + + + diff --git a/src/client/ui/deck/direct-column.vue b/src/client/ui/deck/direct-column.vue new file mode 100644 index 000000000..874a55ba0 --- /dev/null +++ b/src/client/ui/deck/direct-column.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/client/ui/deck/list-column.vue b/src/client/ui/deck/list-column.vue new file mode 100644 index 000000000..ee4bf2bf1 --- /dev/null +++ b/src/client/ui/deck/list-column.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/client/ui/deck/mentions-column.vue b/src/client/ui/deck/mentions-column.vue new file mode 100644 index 000000000..3ba4f4e6a --- /dev/null +++ b/src/client/ui/deck/mentions-column.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/client/ui/deck/notifications-column.vue b/src/client/ui/deck/notifications-column.vue new file mode 100644 index 000000000..a6281a766 --- /dev/null +++ b/src/client/ui/deck/notifications-column.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/client/ui/deck/tl-column.vue b/src/client/ui/deck/tl-column.vue new file mode 100644 index 000000000..de9585799 --- /dev/null +++ b/src/client/ui/deck/tl-column.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/client/ui/deck/widgets-column.vue b/src/client/ui/deck/widgets-column.vue new file mode 100644 index 000000000..e19fb01e5 --- /dev/null +++ b/src/client/ui/deck/widgets-column.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/client/ui/default.side.vue b/src/client/ui/default.side.vue new file mode 100644 index 000000000..73f6cb92f --- /dev/null +++ b/src/client/ui/default.side.vue @@ -0,0 +1,164 @@ + + + + + + diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue new file mode 100644 index 000000000..7065b345f --- /dev/null +++ b/src/client/ui/default.vue @@ -0,0 +1,443 @@ + + + + + + + diff --git a/src/client/ui/default.widgets.vue b/src/client/ui/default.widgets.vue new file mode 100644 index 000000000..c41ba52a7 --- /dev/null +++ b/src/client/ui/default.widgets.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/client/ui/desktop.vue b/src/client/ui/desktop.vue new file mode 100644 index 000000000..6c5159e83 --- /dev/null +++ b/src/client/ui/desktop.vue @@ -0,0 +1,74 @@ + + + + + + + diff --git a/src/client/ui/visitor.vue b/src/client/ui/visitor.vue new file mode 100644 index 000000000..56cc270be --- /dev/null +++ b/src/client/ui/visitor.vue @@ -0,0 +1,209 @@ + + + + + + + diff --git a/src/client/ui/zen.vue b/src/client/ui/zen.vue new file mode 100644 index 000000000..e76b74d4b --- /dev/null +++ b/src/client/ui/zen.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/client/widgets/activity.calendar.vue b/src/client/widgets/activity.calendar.vue new file mode 100644 index 000000000..b833bd65c --- /dev/null +++ b/src/client/widgets/activity.calendar.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/client/widgets/activity.chart.vue b/src/client/widgets/activity.chart.vue new file mode 100644 index 000000000..9702d6666 --- /dev/null +++ b/src/client/widgets/activity.chart.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/client/widgets/activity.vue b/src/client/widgets/activity.vue new file mode 100644 index 000000000..8db13723e --- /dev/null +++ b/src/client/widgets/activity.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/client/widgets/calendar.vue b/src/client/widgets/calendar.vue new file mode 100644 index 000000000..d464f27ec --- /dev/null +++ b/src/client/widgets/calendar.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/client/widgets/clock.vue b/src/client/widgets/clock.vue new file mode 100644 index 000000000..2aad24bae --- /dev/null +++ b/src/client/widgets/clock.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/widgets/define.ts b/src/client/widgets/define.ts new file mode 100644 index 000000000..c199d38e7 --- /dev/null +++ b/src/client/widgets/define.ts @@ -0,0 +1,78 @@ +import { defineComponent } from 'vue'; +import { Form } from '@/scripts/form'; +import * as os from '@/os'; + +export default function (data: { + name: string; + props?: () => T; +}) { + return defineComponent({ + props: { + widget: { + type: Object, + required: false + }, + settingCallback: { + required: false + } + }, + + data() { + return { + props: this.widget ? JSON.parse(JSON.stringify(this.widget.data)) : {} + }; + }, + + computed: { + id(): string { + return this.widget ? this.widget.id : null; + }, + }, + + created() { + this.mergeProps(); + + this.$watch('props', () => { + this.mergeProps(); + }, { deep: true }); + + if (this.settingCallback) this.settingCallback(this.setting); + }, + + methods: { + mergeProps() { + if (data.props) { + const defaultProps = data.props(); + for (const prop of Object.keys(defaultProps)) { + if (this.props.hasOwnProperty(prop)) continue; + this.props[prop] = defaultProps[prop].default; + } + } + }, + + async setting() { + const form = data.props(); + for (const item of Object.keys(form)) { + form[item].default = this.props[item]; + } + const { canceled, result } = await os.form(data.name, form); + if (canceled) return; + + for (const key of Object.keys(result)) { + this.props[key] = result[key]; + } + + this.save(); + }, + + save() { + if (this.widget) { + this.$store.commit('deviceUser/updateWidget', { + ...this.widget, + data: this.props + }); + } + } + } + }); +} diff --git a/src/client/widgets/digital-clock.vue b/src/client/widgets/digital-clock.vue new file mode 100644 index 000000000..702f335c7 --- /dev/null +++ b/src/client/widgets/digital-clock.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/client/widgets/federation.vue b/src/client/widgets/federation.vue new file mode 100644 index 000000000..5cfa87e58 --- /dev/null +++ b/src/client/widgets/federation.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/client/widgets/index.ts b/src/client/widgets/index.ts new file mode 100644 index 000000000..ee76bd97d --- /dev/null +++ b/src/client/widgets/index.ts @@ -0,0 +1,31 @@ +import { App, defineAsyncComponent } from 'vue'; + +export default function(app: App) { + app.component('MkwMemo', defineAsyncComponent(() => import('./memo.vue'))); + app.component('MkwNotifications', defineAsyncComponent(() => import('./notifications.vue'))); + app.component('MkwTimeline', defineAsyncComponent(() => import('./timeline.vue'))); + app.component('MkwCalendar', defineAsyncComponent(() => import('./calendar.vue'))); + app.component('MkwRss', defineAsyncComponent(() => import('./rss.vue'))); + app.component('MkwTrends', defineAsyncComponent(() => import('./trends.vue'))); + app.component('MkwClock', defineAsyncComponent(() => import('./clock.vue'))); + app.component('MkwActivity', defineAsyncComponent(() => import('./activity.vue'))); + app.component('MkwPhotos', defineAsyncComponent(() => import('./photos.vue'))); + app.component('MkwDigitalClock', defineAsyncComponent(() => import('./digital-clock.vue'))); + app.component('MkwFederation', defineAsyncComponent(() => import('./federation.vue'))); + app.component('MkwPostForm', defineAsyncComponent(() => import('./post-form.vue'))); +} + +export const widgets = [ + 'memo', + 'notifications', + 'timeline', + 'calendar', + 'rss', + 'trends', + 'clock', + 'activity', + 'photos', + 'digitalClock', + 'federation', + 'postForm', +]; diff --git a/src/client/widgets/memo.vue b/src/client/widgets/memo.vue new file mode 100644 index 000000000..8b14d61c7 --- /dev/null +++ b/src/client/widgets/memo.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/client/widgets/notifications.vue b/src/client/widgets/notifications.vue new file mode 100644 index 000000000..7937ffb0a --- /dev/null +++ b/src/client/widgets/notifications.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/client/widgets/photos.vue b/src/client/widgets/photos.vue new file mode 100644 index 000000000..2fa0a4857 --- /dev/null +++ b/src/client/widgets/photos.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/client/widgets/post-form.vue b/src/client/widgets/post-form.vue new file mode 100644 index 000000000..5ecaa67b5 --- /dev/null +++ b/src/client/widgets/post-form.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/client/widgets/rss.vue b/src/client/widgets/rss.vue new file mode 100644 index 000000000..1140a4252 --- /dev/null +++ b/src/client/widgets/rss.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/client/widgets/timeline.vue b/src/client/widgets/timeline.vue new file mode 100644 index 000000000..2c98b013d --- /dev/null +++ b/src/client/widgets/timeline.vue @@ -0,0 +1,119 @@ + + + diff --git a/src/client/widgets/trends.vue b/src/client/widgets/trends.vue new file mode 100644 index 000000000..9510bf205 --- /dev/null +++ b/src/client/widgets/trends.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 000000000..7bfdca461 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,3 @@ +import load from './load'; + +export default load(); diff --git a/src/config/load.ts b/src/config/load.ts new file mode 100644 index 000000000..035a43ef2 --- /dev/null +++ b/src/config/load.ts @@ -0,0 +1,55 @@ +/** + * Config loader + */ + +import * as fs from 'fs'; +import * as yaml from 'js-yaml'; +import { Source, Mixin } from './types'; +import * as meta from '../meta.json'; + +/** + * Path of configuration directory + */ +const dir = `${__dirname}/../../.config`; + +/** + * Path of configuration file + */ +const path = process.env.NODE_ENV === 'test' + ? `${dir}/test.yml` + : `${dir}/default.yml`; + +export default function load() { + const config = yaml.safeLoad(fs.readFileSync(path, 'utf-8')) as Source; + + const mixin = {} as Mixin; + + const url = tryCreateUrl(config.url); + + config.url = url.origin; + + config.port = config.port || parseInt(process.env.PORT || '', 10); + + mixin.version = meta.version; + mixin.host = url.host; + mixin.hostname = url.hostname; + mixin.scheme = url.protocol.replace(/:$/, ''); + mixin.wsScheme = mixin.scheme.replace('http', 'ws'); + mixin.wsUrl = `${mixin.wsScheme}://${mixin.host}`; + mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`; + mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`; + mixin.driveUrl = `${mixin.scheme}://${mixin.host}/files`; + mixin.userAgent = `Misskey/${meta.version} (${config.url})`; + + if (!config.redis.prefix) config.redis.prefix = mixin.host; + + return Object.assign(config, mixin); +} + +function tryCreateUrl(url: string) { + try { + return new URL(url); + } catch (e) { + throw `url="${url}" is not a valid URL.`; + } +} diff --git a/src/config/types.ts b/src/config/types.ts new file mode 100644 index 000000000..8084be186 --- /dev/null +++ b/src/config/types.ts @@ -0,0 +1,81 @@ +/** + * ユーザーが設定する必要のある情報 + */ +export type Source = { + repository_url?: string; + feedback_url?: string; + url: string; + port: number; + https?: { [x: string]: string }; + disableHsts?: boolean; + db: { + host: string; + port: number; + db: string; + user: string; + pass: string; + disableCache?: boolean; + extra?: { [x: string]: string }; + }; + redis: { + host: string; + port: number; + pass: string; + db?: number; + prefix?: string; + }; + elasticsearch: { + host: string; + port: number; + ssl?: boolean; + user?: string; + pass?: string; + index?: string; + }; + + proxy?: string; + proxySmtp?: string; + proxyBypassHosts?: string[]; + + accesslog?: string; + + clusterLimit?: number; + + id: string; + + outgoingAddressFamily?: 'ipv4' | 'ipv6' | 'dual'; + + deliverJobConcurrency?: number; + inboxJobConcurrency?: number; + deliverJobPerSec?: number; + inboxJobPerSec?: number; + deliverJobMaxAttempts?: number; + inboxJobMaxAttempts?: number; + + syslog: { + host: string; + port: number; + }; + + mediaProxy?: string; + + signToActivityPubGet?: boolean; +}; + +/** + * Misskeyが自動的に(ユーザーが設定した情報から推論して)設定する情報 + */ +export type Mixin = { + version: string; + host: string; + hostname: string; + scheme: string; + wsScheme: string; + apiUrl: string; + wsUrl: string; + authUrl: string; + driveUrl: string; + userAgent: string; +}; + +export type Config = Source & Mixin; diff --git a/src/const.json b/src/const.json new file mode 100644 index 000000000..29649061e --- /dev/null +++ b/src/const.json @@ -0,0 +1,3 @@ +{ + "copyright": "Copyright (c) 2014-2020 syuilo" +} diff --git a/packages/backend/src/daemons/janitor.ts b/src/daemons/janitor.ts similarity index 78% rename from packages/backend/src/daemons/janitor.ts rename to src/daemons/janitor.ts index f2a1bfcc2..462ebf915 100644 --- a/packages/backend/src/daemons/janitor.ts +++ b/src/daemons/janitor.ts @@ -1,7 +1,5 @@ -// TODO: 消したい - const interval = 30 * 60 * 1000; -import { AttestationChallenges } from '@/models/index.js'; +import { AttestationChallenges } from '../models'; import { LessThan } from 'typeorm'; /** @@ -10,7 +8,7 @@ import { LessThan } from 'typeorm'; export default function() { async function tick() { await AttestationChallenges.delete({ - createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)), + createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)) }); } diff --git a/src/daemons/queue-stats.ts b/src/daemons/queue-stats.ts new file mode 100644 index 000000000..288e855ae --- /dev/null +++ b/src/daemons/queue-stats.ts @@ -0,0 +1,60 @@ +import Xev from 'xev'; +import { deliverQueue, inboxQueue } from '../queue'; + +const ev = new Xev(); + +const interval = 10000; + +/** + * Report queue stats regularly + */ +export default function() { + const log = [] as any[]; + + ev.on('requestQueueStatsLog', x => { + ev.emit(`queueStatsLog:${x.id}`, log.slice(0, x.length || 50)); + }); + + let activeDeliverJobs = 0; + let activeInboxJobs = 0; + + deliverQueue.on('global:active', () => { + activeDeliverJobs++; + }); + + inboxQueue.on('global:active', () => { + activeInboxJobs++; + }); + + async function tick() { + const deliverJobCounts = await deliverQueue.getJobCounts(); + const inboxJobCounts = await inboxQueue.getJobCounts(); + + const stats = { + deliver: { + activeSincePrevTick: activeDeliverJobs, + active: deliverJobCounts.active, + waiting: deliverJobCounts.waiting, + delayed: deliverJobCounts.delayed + }, + inbox: { + activeSincePrevTick: activeInboxJobs, + active: inboxJobCounts.active, + waiting: inboxJobCounts.waiting, + delayed: inboxJobCounts.delayed + }, + }; + + ev.emit('queueStats', stats); + + log.unshift(stats); + if (log.length > 200) log.pop(); + + activeDeliverJobs = 0; + activeInboxJobs = 0; + } + + tick(); + + setInterval(tick, interval); +} diff --git a/src/daemons/server-stats.ts b/src/daemons/server-stats.ts new file mode 100644 index 000000000..88df421ba --- /dev/null +++ b/src/daemons/server-stats.ts @@ -0,0 +1,76 @@ +import * as si from 'systeminformation'; +import Xev from 'xev'; +import * as osUtils from 'os-utils'; + +const ev = new Xev(); + +const interval = 2000; + +/** + * Report server stats regularly + */ +export default function() { + const log = [] as any[]; + + ev.on('requestServerStatsLog', x => { + ev.emit(`serverStatsLog:${x.id}`, log.slice(0, x.length || 50)); + }); + + async function tick() { + const cpu = await cpuUsage(); + const memStats = await mem(); + const netStats = await net(); + const fsStats = await fs(); + + const stats = { + cpu: cpu, + mem: { + used: memStats.used, + active: memStats.active, + }, + net: { + rx: Math.max(0, netStats.rx_sec), + tx: Math.max(0, netStats.tx_sec), + }, + fs: { + r: Math.max(0, fsStats.rIO_sec), + w: Math.max(0, fsStats.wIO_sec), + } + }; + ev.emit('serverStats', stats); + log.unshift(stats); + if (log.length > 200) log.pop(); + } + + tick(); + + setInterval(tick, interval); +} + +// CPU STAT +function cpuUsage() { + return new Promise((res, rej) => { + osUtils.cpuUsage((cpuUsage: number) => { + res(cpuUsage); + }); + }); +} + +// MEMORY STAT +async function mem() { + const data = await si.mem(); + return data; +} + +// NETWORK STAT +async function net() { + const iface = await si.networkInterfaceDefault(); + const data = await si.networkStats(iface); + return data[0]; +} + +// FS STAT +async function fs() { + const data = await si.disksIO().catch(() => ({ rIO_sec: 0, wIO_sec: 0 })); + return data; +} diff --git a/packages/backend/src/db/elasticsearch.ts b/src/db/elasticsearch.ts similarity index 84% rename from packages/backend/src/db/elasticsearch.ts rename to src/db/elasticsearch.ts index d98c5d180..048e399bd 100644 --- a/packages/backend/src/db/elasticsearch.ts +++ b/src/db/elasticsearch.ts @@ -1,15 +1,15 @@ import * as elasticsearch from '@elastic/elasticsearch'; -import config from '@/config/index.js'; +import config from '../config'; const index = { settings: { analysis: { analyzer: { ngram: { - tokenizer: 'ngram', - }, - }, - }, + tokenizer: 'ngram' + } + } + } }, mappings: { properties: { @@ -25,9 +25,9 @@ const index = { userHost: { type: 'keyword', index: true, - }, - }, - }, + } + } + } }; // Init ElasticSearch connection @@ -35,9 +35,9 @@ const client = config.elasticsearch ? new elasticsearch.Client({ node: `${config.elasticsearch.ssl ? 'https://' : 'http://'}${config.elasticsearch.host}:${config.elasticsearch.port}`, auth: (config.elasticsearch.user && config.elasticsearch.pass) ? { username: config.elasticsearch.user, - password: config.elasticsearch.pass, + password: config.elasticsearch.pass } : undefined, - pingTimeout: 30000, + pingTimeout: 30000 }) : null; if (client) { @@ -47,7 +47,7 @@ if (client) { if (!exist.body) { client.indices.create({ index: config.elasticsearch.index || 'misskey_note', - body: index, + body: index }); } }); diff --git a/src/db/logger.ts b/src/db/logger.ts new file mode 100644 index 000000000..1f702c18e --- /dev/null +++ b/src/db/logger.ts @@ -0,0 +1,3 @@ +import Logger from '../services/logger'; + +export const dbLogger = new Logger('db'); diff --git a/src/db/postgre.ts b/src/db/postgre.ts new file mode 100644 index 000000000..e2acdeafd --- /dev/null +++ b/src/db/postgre.ts @@ -0,0 +1,199 @@ +import { createConnection, Logger, getConnection } from 'typeorm'; +import config from '../config'; +import { entities as charts } from '../services/chart/entities'; +import { dbLogger } from './logger'; +import * as highlight from 'cli-highlight'; + +import { Log } from '../models/entities/log'; +import { User } from '../models/entities/user'; +import { DriveFile } from '../models/entities/drive-file'; +import { DriveFolder } from '../models/entities/drive-folder'; +import { AccessToken } from '../models/entities/access-token'; +import { App } from '../models/entities/app'; +import { PollVote } from '../models/entities/poll-vote'; +import { Note } from '../models/entities/note'; +import { NoteReaction } from '../models/entities/note-reaction'; +import { NoteWatching } from '../models/entities/note-watching'; +import { NoteUnread } from '../models/entities/note-unread'; +import { Notification } from '../models/entities/notification'; +import { Meta } from '../models/entities/meta'; +import { Following } from '../models/entities/following'; +import { Instance } from '../models/entities/instance'; +import { Muting } from '../models/entities/muting'; +import { SwSubscription } from '../models/entities/sw-subscription'; +import { Blocking } from '../models/entities/blocking'; +import { UserList } from '../models/entities/user-list'; +import { UserListJoining } from '../models/entities/user-list-joining'; +import { UserGroup } from '../models/entities/user-group'; +import { UserGroupJoining } from '../models/entities/user-group-joining'; +import { UserGroupInvitation } from '../models/entities/user-group-invitation'; +import { Hashtag } from '../models/entities/hashtag'; +import { NoteFavorite } from '../models/entities/note-favorite'; +import { AbuseUserReport } from '../models/entities/abuse-user-report'; +import { RegistrationTicket } from '../models/entities/registration-tickets'; +import { MessagingMessage } from '../models/entities/messaging-message'; +import { Signin } from '../models/entities/signin'; +import { AuthSession } from '../models/entities/auth-session'; +import { FollowRequest } from '../models/entities/follow-request'; +import { Emoji } from '../models/entities/emoji'; +import { ReversiGame } from '../models/entities/games/reversi/game'; +import { ReversiMatching } from '../models/entities/games/reversi/matching'; +import { UserNotePining } from '../models/entities/user-note-pining'; +import { Poll } from '../models/entities/poll'; +import { UserKeypair } from '../models/entities/user-keypair'; +import { UserPublickey } from '../models/entities/user-publickey'; +import { UserProfile } from '../models/entities/user-profile'; +import { UserSecurityKey } from '../models/entities/user-security-key'; +import { AttestationChallenge } from '../models/entities/attestation-challenge'; +import { Page } from '../models/entities/page'; +import { PageLike } from '../models/entities/page-like'; +import { ModerationLog } from '../models/entities/moderation-log'; +import { UsedUsername } from '../models/entities/used-username'; +import { Announcement } from '../models/entities/announcement'; +import { AnnouncementRead } from '../models/entities/announcement-read'; +import { Clip } from '../models/entities/clip'; +import { ClipNote } from '../models/entities/clip-note'; +import { Antenna } from '../models/entities/antenna'; +import { AntennaNote } from '../models/entities/antenna-note'; +import { PromoNote } from '../models/entities/promo-note'; +import { PromoRead } from '../models/entities/promo-read'; +import { program } from '../argv'; +import { Relay } from '../models/entities/relay'; +import { MutedNote } from '../models/entities/muted-note'; +import { Channel } from '../models/entities/channel'; +import { ChannelFollowing } from '../models/entities/channel-following'; +import { ChannelNotePining } from '../models/entities/channel-note-pining'; + +const sqlLogger = dbLogger.createSubLogger('sql', 'white', false); + +class MyCustomLogger implements Logger { + private highlight(sql: string) { + return highlight.highlight(sql, { + language: 'sql', ignoreIllegals: true, + }); + } + + public logQuery(query: string, parameters?: any[]) { + if (program.verbose) { + sqlLogger.info(this.highlight(query)); + } + } + + public logQueryError(error: string, query: string, parameters?: any[]) { + sqlLogger.error(this.highlight(query)); + } + + public logQuerySlow(time: number, query: string, parameters?: any[]) { + sqlLogger.warn(this.highlight(query)); + } + + public logSchemaBuild(message: string) { + sqlLogger.info(message); + } + + public log(message: string) { + sqlLogger.info(message); + } + + public logMigration(message: string) { + sqlLogger.info(message); + } +} + +export const entities = [ + Announcement, + AnnouncementRead, + Meta, + Instance, + App, + AuthSession, + AccessToken, + User, + UserProfile, + UserKeypair, + UserPublickey, + UserList, + UserListJoining, + UserGroup, + UserGroupJoining, + UserGroupInvitation, + UserNotePining, + UserSecurityKey, + UsedUsername, + AttestationChallenge, + Following, + FollowRequest, + Muting, + Blocking, + Note, + NoteFavorite, + NoteReaction, + NoteWatching, + NoteUnread, + Page, + PageLike, + Log, + DriveFile, + DriveFolder, + Poll, + PollVote, + Notification, + Emoji, + Hashtag, + SwSubscription, + AbuseUserReport, + RegistrationTicket, + MessagingMessage, + Signin, + ModerationLog, + Clip, + ClipNote, + Antenna, + AntennaNote, + PromoNote, + PromoRead, + ReversiGame, + ReversiMatching, + Relay, + MutedNote, + Channel, + ChannelFollowing, + ChannelNotePining, + ...charts as any +]; + +export function initDb(justBorrow = false, sync = false, forceRecreate = false) { + if (!forceRecreate) { + try { + const conn = getConnection(); + return Promise.resolve(conn); + } catch (e) {} + } + + const log = process.env.NODE_ENV != 'production'; + + return createConnection({ + type: 'postgres', + host: config.db.host, + port: config.db.port, + username: config.db.user, + password: config.db.pass, + database: config.db.db, + extra: config.db.extra, + synchronize: process.env.NODE_ENV === 'test' || sync, + dropSchema: process.env.NODE_ENV === 'test' && !justBorrow, + cache: !config.db.disableCache ? { + type: 'redis', + options: { + host: config.redis.host, + port: config.redis.port, + password: config.redis.pass, + prefix: `${config.redis.prefix}:query:`, + db: config.redis.db || 0 + } + } : false, + logging: log, + logger: log ? new MyCustomLogger() : undefined, + entities: entities + }); +} diff --git a/src/db/redis.ts b/src/db/redis.ts new file mode 100644 index 000000000..41d030149 --- /dev/null +++ b/src/db/redis.ts @@ -0,0 +1,12 @@ +import * as redis from 'redis'; +import config from '../config'; + +export default redis.createClient( + config.redis.port, + config.redis.host, + { + password: config.redis.pass, + prefix: config.redis.prefix, + db: config.redis.db || 0 + } +); diff --git a/src/docs/aiscript.ja-JP.md b/src/docs/aiscript.ja-JP.md new file mode 100644 index 000000000..6c28b446e --- /dev/null +++ b/src/docs/aiscript.ja-JP.md @@ -0,0 +1,4 @@ +# AiScript + +## 関数 +デフォルトで値渡しです。 diff --git a/src/docs/api.ja-JP.md b/src/docs/api.ja-JP.md new file mode 100644 index 000000000..742230716 --- /dev/null +++ b/src/docs/api.ja-JP.md @@ -0,0 +1,62 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 +ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 +このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 +APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** +アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/create-plugin.ja-JP.md b/src/docs/create-plugin.ja-JP.md new file mode 100644 index 000000000..34678a206 --- /dev/null +++ b/src/docs/create-plugin.ja-JP.md @@ -0,0 +1,90 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 +ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 +メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 +キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 +string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 +info success warn error question +省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 +info success warn error question +省略すると question になります。 +ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 +コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 +コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/custom-emoji.ja-JP.md b/src/docs/custom-emoji.ja-JP.md new file mode 100644 index 000000000..4e1eb5c0e --- /dev/null +++ b/src/docs/custom-emoji.ja-JP.md @@ -0,0 +1,5 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 +ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 +カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 +テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/follow.ja-JP.md b/src/docs/follow.ja-JP.md new file mode 100644 index 000000000..28a606e28 --- /dev/null +++ b/src/docs/follow.ja-JP.md @@ -0,0 +1,3 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 +ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/keyboard-shortcut.ja-JP.md b/src/docs/keyboard-shortcut.ja-JP.md new file mode 100644 index 000000000..3811613db --- /dev/null +++ b/src/docs/keyboard-shortcut.ja-JP.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/mute.ja-JP.md b/src/docs/mute.ja-JP.md new file mode 100644 index 000000000..6a9608662 --- /dev/null +++ b/src/docs/mute.ja-JP.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/pages.ja-JP.md b/src/docs/pages.ja-JP.md new file mode 100644 index 000000000..a7311b95e --- /dev/null +++ b/src/docs/pages.ja-JP.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/reaction.ja-JP.md b/src/docs/reaction.ja-JP.md new file mode 100644 index 000000000..476af64e8 --- /dev/null +++ b/src/docs/reaction.ja-JP.md @@ -0,0 +1,15 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 +リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 +リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 +設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 +また、相手がMisskeyであったとしても、カスタム絵文字リアクションは伝わらず、自動的に「👍」等にフォールバックされます。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/reversi-bot.ja-JP.md b/src/docs/reversi-bot.ja-JP.md new file mode 100644 index 000000000..43f455cfe --- /dev/null +++ b/src/docs/reversi-bot.ja-JP.md @@ -0,0 +1,177 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 +文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 +それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 +例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 +フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 +`type` ... コントロールの種類。後述します。 +`label` ... コントロールと一緒に表記するテキスト。 +`value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 +イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 +例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` +スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` +ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` +スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 +`max` ... スライダーの上限。 +`step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` +テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 +例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 +メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、
このエンドポイントにリクエストします。 diff --git a/src/docs/stream.ja-JP.md b/src/docs/stream.ja-JP.md new file mode 100644 index 000000000..40fc49916 --- /dev/null +++ b/src/docs/stream.ja-JP.md @@ -0,0 +1,358 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
+

認証情報の取得については、こちらのドキュメントをご確認ください。

+
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 +しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 +それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 +Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 +ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
+

IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。

+
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
+

APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。

+
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/theme.ja-JP.md b/src/docs/theme.ja-JP.md new file mode 100644 index 000000000..c9604da41 --- /dev/null +++ b/src/docs/theme.ja-JP.md @@ -0,0 +1,74 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 +テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 +キーがCSSの変数名になり、バリューで中身を指定します。 +なお、この`props`オブジェクトはベーステーマから継承されます。 +ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/syuilo/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/syuilo/misskey/blob/develop/src/client/themes/_dark.json5)です。 +つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 +キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/timelines.ja-JP.md b/src/docs/timelines.ja-JP.md new file mode 100644 index 000000000..36ba61bd2 --- /dev/null +++ b/src/docs/timelines.ja-JP.md @@ -0,0 +1,15 @@ +# タイムラインの比較 + +https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing + +## ホーム +自分のフォローしているユーザーの投稿 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 diff --git a/packages/client/src/emojilist.json b/src/emojilist.json similarity index 97% rename from packages/client/src/emojilist.json rename to src/emojilist.json index 402e82e33..30cf6dd73 100644 --- a/packages/client/src/emojilist.json +++ b/src/emojilist.json @@ -93,16 +93,6 @@ { "category": "face", "char": "🥱", "name": "yawning", "keywords": ["face", "tired", "yawning"] }, { "category": "face", "char": "😴", "name": "sleeping", "keywords": ["face", "tired", "sleepy", "night", "zzz"] }, { "category": "face", "char": "💤", "name": "zzz", "keywords": ["sleepy", "tired", "dream"] }, - { "category": "face", "char": "\uD83D\uDE36\u200D\uD83C\uDF2B\uFE0F", "name": "face_in_clouds", "keywords": [] }, - { "category": "face", "char": "\uD83D\uDE2E\u200D\uD83D\uDCA8", "name": "face_exhaling", "keywords": [] }, - { "category": "face", "char": "\uD83D\uDE35\u200D\uD83D\uDCAB", "name": "face_with_spiral_eyes", "keywords": [] }, - { "category": "face", "char": "\uD83E\uDEE0", "name": "melting_face", "keywords": ["disappear", "dissolve", "liquid", "melt", "toketa"] }, - { "category": "face", "char": "\uD83E\uDEE2", "name": "face_with_open_eyes_and_hand_over_mouth", "keywords": ["amazement", "awe", "disbelief", "embarrass", "scared", "surprise", "ohoho"] }, - { "category": "face", "char": "\uD83E\uDEE3", "name": "face_with_peeking_eye", "keywords": ["captivated", "peep", "stare", "chunibyo"] }, - { "category": "face", "char": "\uD83E\uDEE1", "name": "saluting_face", "keywords": ["ok", "salute", "sunny", "troops", "yes", "raja"] }, - { "category": "face", "char": "\uD83E\uDEE5", "name": "dotted_line_face", "keywords": ["depressed", "disappear", "hide", "introvert", "invisible", "tensen"] }, - { "category": "face", "char": "\uD83E\uDEE4", "name": "face_with_diagonal_mouth", "keywords": ["disappointed", "meh", "skeptical", "unsure"] }, - { "category": "face", "char": "\uD83E\uDD79", "name": "face_holding_back_tears", "keywords": ["angry", "cry", "proud", "resist", "sad"] }, { "category": "face", "char": "💩", "name": "poop", "keywords": ["hankey", "shitface", "fail", "turd", "shit"] }, { "category": "face", "char": "😈", "name": "smiling_imp", "keywords": ["devil", "horns"] }, { "category": "face", "char": "👿", "name": "imp", "keywords": ["devil", "angry", "horns"] }, @@ -156,19 +146,11 @@ { "category": "people", "char": "🤞", "name": "crossed_fingers", "keywords": ["good", "lucky"] }, { "category": "people", "char": "🖖", "name": "vulcan_salute", "keywords": ["hand", "fingers", "spock", "star trek"] }, { "category": "people", "char": "✍", "name": "writing_hand", "keywords": ["lower_left_ballpoint_pen", "stationery", "write", "compose"] }, - { "category": "people", "char": "\uD83E\uDEF0", "name": "hand_with_index_finger_and_thumb_crossed", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF1", "name": "rightwards_hand", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF2", "name": "leftwards_hand", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF3", "name": "palm_down_hand", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF4", "name": "palm_up_hand", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF5", "name": "index_pointing_at_the_viewer", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEF6", "name": "heart_hands", "keywords": ["moemoekyun"] }, { "category": "people", "char": "🤏", "name": "pinching_hand", "keywords": ["hand", "fingers"] }, { "category": "people", "char": "🤌", "name": "pinched_fingers", "keywords": ["hand", "fingers"] }, { "category": "people", "char": "🤳", "name": "selfie", "keywords": ["camera", "phone"] }, { "category": "people", "char": "💅", "name": "nail_care", "keywords": ["beauty", "manicure", "finger", "fashion", "nail"] }, { "category": "people", "char": "👄", "name": "lips", "keywords": ["mouth", "kiss"] }, - { "category": "people", "char": "\uD83E\uDEE6", "name": "biting_lip", "keywords": [] }, { "category": "people", "char": "🦷", "name": "tooth", "keywords": ["teeth", "dentist"] }, { "category": "people", "char": "👅", "name": "tongue", "keywords": ["mouth", "playful"] }, { "category": "people", "char": "👂", "name": "ear", "keywords": ["face", "hear", "sound", "listen"] }, @@ -290,11 +272,7 @@ { "category": "people", "char": "🧚‍♀️", "name": "woman_fairy", "keywords": ["woman", "female"] }, { "category": "people", "char": "🧚‍♂️", "name": "man_fairy", "keywords": ["man", "male"] }, { "category": "people", "char": "👼", "name": "angel", "keywords": ["heaven", "wings", "halo"] }, - { "category": "people", "char": "\uD83E\uDDCC", "name": "troll", "keywords": [] }, { "category": "people", "char": "🤰", "name": "pregnant_woman", "keywords": ["baby"] }, - { "category": "people", "char": "\uD83E\uDEC3", "name": "pregnant_man", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEC4", "name": "pregnant_person", "keywords": [] }, - { "category": "people", "char": "\uD83E\uDEC5", "name": "person_with_crown", "keywords": [] }, { "category": "people", "char": "🤱", "name": "breastfeeding", "keywords": ["nursing", "baby"] }, { "category": "people", "char": "\uD83D\uDC69\u200D\uD83C\uDF7C", "name": "woman_feeding_baby", "keywords": [] }, { "category": "people", "char": "\uD83D\uDC68\u200D\uD83C\uDF7C", "name": "man_feeding_baby", "keywords": [] }, @@ -478,7 +456,7 @@ { "category": "animals_and_nature", "char": "🐛", "name": "bug", "keywords": ["animal", "insect", "nature", "worm"] }, { "category": "animals_and_nature", "char": "🦋", "name": "butterfly", "keywords": ["animal", "insect", "nature", "caterpillar"] }, { "category": "animals_and_nature", "char": "🐌", "name": "snail", "keywords": ["slow", "animal", "shell"] }, - { "category": "animals_and_nature", "char": "🐞", "name": "lady_beetle", "keywords": ["animal", "insect", "nature", "ladybug"] }, + { "category": "animals_and_nature", "char": "🐞", "name": "beetle", "keywords": ["animal", "insect", "nature", "ladybug"] }, { "category": "animals_and_nature", "char": "🐜", "name": "ant", "keywords": ["animal", "insect", "nature", "bug"] }, { "category": "animals_and_nature", "char": "🦗", "name": "grasshopper", "keywords": ["animal", "cricket", "chirp"] }, { "category": "animals_and_nature", "char": "🕷", "name": "spider", "keywords": ["animal", "arachnid"] }, @@ -634,10 +612,6 @@ { "category": "animals_and_nature", "char": "💧", "name": "droplet", "keywords": ["water", "drip", "faucet", "spring"] }, { "category": "animals_and_nature", "char": "💦", "name": "sweat_drops", "keywords": ["water", "drip", "oops"] }, { "category": "animals_and_nature", "char": "🌊", "name": "ocean", "keywords": ["sea", "water", "wave", "nature", "tsunami", "disaster"] }, - { "category": "animals_and_nature", "char": "\uD83E\uDEB7", "name": "lotus", "keywords": [] }, - { "category": "animals_and_nature", "char": "\uD83E\uDEB8", "name": "coral", "keywords": [] }, - { "category": "animals_and_nature", "char": "\uD83E\uDEB9", "name": "empty_nest", "keywords": [] }, - { "category": "animals_and_nature", "char": "\uD83E\uDEBA", "name": "nest_with_eggs", "keywords": [] }, { "category": "food_and_drink", "char": "🍏", "name": "green_apple", "keywords": ["fruit", "nature"] }, { "category": "food_and_drink", "char": "🍎", "name": "apple", "keywords": ["fruit", "mac", "school"] }, { "category": "food_and_drink", "char": "🍐", "name": "pear", "keywords": ["fruit", "nature", "food"] }, @@ -760,9 +734,6 @@ { "category": "food_and_drink", "char": "🥣", "name": "bowl_with_spoon", "keywords": ["food", "breakfast", "cereal", "oatmeal", "porridge"] }, { "category": "food_and_drink", "char": "🥡", "name": "takeout_box", "keywords": ["food", "leftovers"] }, { "category": "food_and_drink", "char": "🥢", "name": "chopsticks", "keywords": ["food"] }, - { "category": "food_and_drink", "char": "\uD83E\uDED7", "name": "pouring_liquid", "keywords": [] }, - { "category": "food_and_drink", "char": "\uD83E\uDED8", "name": "beans", "keywords": [] }, - { "category": "food_and_drink", "char": "\uD83E\uDED9", "name": "jar", "keywords": [] }, { "category": "activity", "char": "⚽", "name": "soccer", "keywords": ["sports", "football"] }, { "category": "activity", "char": "🏀", "name": "basketball", "keywords": ["sports", "balls", "NBA"] }, { "category": "activity", "char": "🏈", "name": "football", "keywords": ["sports", "balls", "NFL"] }, @@ -870,8 +841,6 @@ { "category": "activity", "char": "🪄", "name": "magic_wand", "keywords": [] }, { "category": "activity", "char": "🪅", "name": "pinata", "keywords": [] }, { "category": "activity", "char": "🪆", "name": "nesting_dolls", "keywords": [] }, - { "category": "activity", "char": "\uD83E\uDEAC", "name": "hamsa", "keywords": [] }, - { "category": "activity", "char": "\uD83E\uDEA9", "name": "mirror_ball", "keywords": [] }, { "category": "travel_and_places", "char": "🚗", "name": "red_car", "keywords": ["red", "transportation", "vehicle"] }, { "category": "travel_and_places", "char": "🚕", "name": "taxi", "keywords": ["uber", "vehicle", "cars", "transportation"] }, { "category": "travel_and_places", "char": "🚙", "name": "blue_car", "keywords": ["transportation", "vehicle"] }, @@ -999,12 +968,11 @@ { "category": "travel_and_places", "char": "🕋", "name": "kaaba", "keywords": ["mecca", "mosque", "islam"] }, { "category": "travel_and_places", "char": "⛩", "name": "shinto_shrine", "keywords": ["temple", "japan", "kyoto"] }, { "category": "travel_and_places", "char": "🛕", "name": "hindu_temple", "keywords": ["temple"] }, + { "category": "travel_and_places", "char": "🪨", "name": "rock", "keywords": [] }, { "category": "travel_and_places", "char": "🪵", "name": "wood", "keywords": [] }, { "category": "travel_and_places", "char": "🛖", "name": "hut", "keywords": [] }, - { "category": "travel_and_places", "char": "\uD83D\uDEDD", "name": "playground_slide", "keywords": [] }, - { "category": "travel_and_places", "char": "\uD83D\uDEDE", "name": "wheel", "keywords": [] }, - { "category": "travel_and_places", "char": "\uD83D\uDEDF", "name": "ring_buoy", "keywords": [] }, + { "category": "objects", "char": "⌚", "name": "watch", "keywords": ["time", "accessories"] }, { "category": "objects", "char": "📱", "name": "iphone", "keywords": ["technology", "apple", "gadgets", "dial"] }, { "category": "objects", "char": "📲", "name": "calling", "keywords": ["iphone", "incoming"] }, @@ -1045,7 +1013,6 @@ { "category": "objects", "char": "⌛", "name": "hourglass", "keywords": ["time", "clock", "oldschool", "limit", "exam", "quiz", "test"] }, { "category": "objects", "char": "📡", "name": "satellite", "keywords": ["communication", "future", "radio", "space"] }, { "category": "objects", "char": "🔋", "name": "battery", "keywords": ["power", "energy", "sustain"] }, - { "category": "objects", "char": "\uD83E\uDEAB", "name": "battery", "keywords": [] }, { "category": "objects", "char": "🔌", "name": "electric_plug", "keywords": ["charger", "power"] }, { "category": "objects", "char": "💡", "name": "bulb", "keywords": ["light", "electricity", "idea"] }, { "category": "objects", "char": "🔦", "name": "flashlight", "keywords": ["dark", "camping", "sight", "night"] }, @@ -1061,7 +1028,6 @@ { "category": "objects", "char": "💰", "name": "moneybag", "keywords": ["dollar", "payment", "coins", "sale"] }, { "category": "objects", "char": "🪙", "name": "coin", "keywords": ["dollar", "payment", "coins", "sale"] }, { "category": "objects", "char": "💳", "name": "credit_card", "keywords": ["money", "sales", "dollar", "bill", "payment", "shopping"] }, - { "category": "objects", "char": "\uD83E\uDEAB", "name": "identification_card", "keywords": [] }, { "category": "objects", "char": "💎", "name": "gem", "keywords": ["blue", "ruby", "diamond", "jewelry"] }, { "category": "objects", "char": "⚖", "name": "balance_scale", "keywords": ["law", "fairness", "weight"] }, { "category": "objects", "char": "🧰", "name": "toolbox", "keywords": ["tools", "diy", "fix", "maintainer", "mechanic"] }, @@ -1108,8 +1074,6 @@ { "category": "objects", "char": "🩹", "name": "adhesive_bandage", "keywords": ["health", "hospital", "medicine", "needle", "doctor", "nurse"] }, { "category": "objects", "char": "🩺", "name": "stethoscope", "keywords": ["health", "hospital", "medicine", "needle", "doctor", "nurse"] }, { "category": "objects", "char": "🪒", "name": "razor", "keywords": ["health"] }, - { "category": "objects", "char": "\uD83E\uDE7B", "name": "xray", "keywords": [] }, - { "category": "objects", "char": "\uD83E\uDE7C", "name": "crutch", "keywords": [] }, { "category": "objects", "char": "🧬", "name": "dna", "keywords": ["biologist", "genetics", "life"] }, { "category": "objects", "char": "🧫", "name": "petri_dish", "keywords": ["bacteria", "biology", "culture", "lab"] }, { "category": "objects", "char": "🧪", "name": "test_tube", "keywords": ["chemistry", "experiment", "lab", "science"] }, @@ -1144,7 +1108,6 @@ { "category": "objects", "char": "🪤", "name": "mouse_trap", "keywords": ["household"] }, { "category": "objects", "char": "🪣", "name": "bucket", "keywords": ["household"] }, { "category": "objects", "char": "🪥", "name": "toothbrush", "keywords": ["household"] }, - { "category": "objects", "char": "\uD83E\uDEE7", "name": "bubbles", "keywords": [] }, { "category": "objects", "char": "⛱", "name": "parasol_on_ground", "keywords": ["weather", "summer"] }, { "category": "objects", "char": "🗿", "name": "moyai", "keywords": ["rock", "easter island", "moai"] }, { "category": "objects", "char": "🛍", "name": "shopping", "keywords": ["mall", "buy", "purchase"] }, @@ -1256,8 +1219,6 @@ { "category": "symbols", "char": "💘", "name": "cupid", "keywords": ["love", "like", "heart", "affection", "valentines"] }, { "category": "symbols", "char": "💝", "name": "gift_heart", "keywords": ["love", "valentines"] }, { "category": "symbols", "char": "💟", "name": "heart_decoration", "keywords": ["purple-square", "love", "like"] }, - { "category": "symbols", "char": "\u2764\uFE0F\u200D\uD83D\uDD25", "name": "heart_on_fire", "keywords": [] }, - { "category": "symbols", "char": "\u2764\uFE0F\u200D\uD83E\uDE79", "name": "mending_heart", "keywords": [] }, { "category": "symbols", "char": "☮", "name": "peace_symbol", "keywords": ["hippie"] }, { "category": "symbols", "char": "✝", "name": "latin_cross", "keywords": ["christianity"] }, { "category": "symbols", "char": "☪", "name": "star_and_crescent", "keywords": ["islam"] }, @@ -1438,7 +1399,6 @@ { "category": "symbols", "char": "➖", "name": "heavy_minus_sign", "keywords": ["math", "calculation", "subtract", "less"] }, { "category": "symbols", "char": "➗", "name": "heavy_division_sign", "keywords": ["divide", "math", "calculation"] }, { "category": "symbols", "char": "✖️", "name": "heavy_multiplication_x", "keywords": ["math", "calculation"] }, - { "category": "symbols", "char": "\uD83D\uDFF0", "name": "heavy_equals_sign", "keywords": [] }, { "category": "symbols", "char": "♾", "name": "infinity", "keywords": ["forever"] }, { "category": "symbols", "char": "💲", "name": "heavy_dollar_sign", "keywords": ["money", "sales", "payment", "currency", "buck"] }, { "category": "symbols", "char": "💱", "name": "currency_exchange", "keywords": ["money", "sales", "dollar", "travel"] }, @@ -1782,4 +1742,3 @@ { "category": "flags", "char": "🇺🇳", "name": "united_nations", "keywords": ["un", "flag", "banner"] }, { "category": "flags", "char": "🏴‍☠️", "name": "pirate_flag", "keywords": ["skull", "crossbones", "flag", "banner"] } ] - diff --git a/src/games/reversi/core.ts b/src/games/reversi/core.ts new file mode 100644 index 000000000..e7ae1af7a --- /dev/null +++ b/src/games/reversi/core.ts @@ -0,0 +1,263 @@ +import { count, concat } from '../../prelude/array'; + +// MISSKEY REVERSI ENGINE + +/** + * true ... 黒 + * false ... 白 + */ +export type Color = boolean; +const BLACK = true; +const WHITE = false; + +export type MapPixel = 'null' | 'empty'; + +export type Options = { + isLlotheo: boolean; + canPutEverywhere: boolean; + loopedBoard: boolean; +}; + +export type Undo = { + /** + * 色 + */ + color: Color; + + /** + * どこに打ったか + */ + pos: number; + + /** + * 反転した石の位置の配列 + */ + effects: number[]; + + /** + * ターン + */ + turn: Color | null; +}; + +/** + * リバーシエンジン + */ +export default class Reversi { + public map: MapPixel[]; + public mapWidth: number; + public mapHeight: number; + public board: (Color | null | undefined)[]; + public turn: Color | null = BLACK; + public opts: Options; + + public prevPos = -1; + public prevColor: Color | null = null; + + private logs: Undo[] = []; + + /** + * ゲームを初期化します + */ + constructor(map: string[], opts: Options) { + //#region binds + this.put = this.put.bind(this); + //#endregion + + //#region Options + this.opts = opts; + if (this.opts.isLlotheo == null) this.opts.isLlotheo = false; + if (this.opts.canPutEverywhere == null) this.opts.canPutEverywhere = false; + if (this.opts.loopedBoard == null) this.opts.loopedBoard = false; + //#endregion + + //#region Parse map data + this.mapWidth = map[0].length; + this.mapHeight = map.length; + const mapData = map.join(''); + + this.board = mapData.split('').map(d => d === '-' ? null : d === 'b' ? BLACK : d === 'w' ? WHITE : undefined); + + this.map = mapData.split('').map(d => d === '-' || d === 'b' || d === 'w' ? 'empty' : 'null'); + //#endregion + + // ゲームが始まった時点で片方の色の石しかないか、始まった時点で勝敗が決定するようなマップの場合がある + if (!this.canPutSomewhere(BLACK)) + this.turn = this.canPutSomewhere(WHITE) ? WHITE : null; + } + + /** + * 黒石の数 + */ + public get blackCount() { + return count(BLACK, this.board); + } + + /** + * 白石の数 + */ + public get whiteCount() { + return count(WHITE, this.board); + } + + public transformPosToXy(pos: number): number[] { + const x = pos % this.mapWidth; + const y = Math.floor(pos / this.mapWidth); + return [x, y]; + } + + public transformXyToPos(x: number, y: number): number { + return x + (y * this.mapWidth); + } + + /** + * 指定のマスに石を打ちます + * @param color 石の色 + * @param pos 位置 + */ + public put(color: Color, pos: number) { + this.prevPos = pos; + this.prevColor = color; + + this.board[pos] = color; + + // 反転させられる石を取得 + const effects = this.effects(color, pos); + + // 反転させる + for (const pos of effects) { + this.board[pos] = color; + } + + const turn = this.turn; + + this.logs.push({ + color, + pos, + effects, + turn + }); + + this.calcTurn(); + } + + private calcTurn() { + // ターン計算 + this.turn = + this.canPutSomewhere(!this.prevColor) ? !this.prevColor : + this.canPutSomewhere(this.prevColor!) ? this.prevColor : + null; + } + + public undo() { + const undo = this.logs.pop()!; + this.prevColor = undo.color; + this.prevPos = undo.pos; + this.board[undo.pos] = null; + for (const pos of undo.effects) { + const color = this.board[pos]; + this.board[pos] = !color; + } + this.turn = undo.turn; + } + + /** + * 指定した位置のマップデータのマスを取得します + * @param pos 位置 + */ + public mapDataGet(pos: number): MapPixel { + const [x, y] = this.transformPosToXy(pos); + return x < 0 || y < 0 || x >= this.mapWidth || y >= this.mapHeight ? 'null' : this.map[pos]; + } + + /** + * 打つことができる場所を取得します + */ + public puttablePlaces(color: Color): number[] { + return Array.from(this.board.keys()).filter(i => this.canPut(color, i)); + } + + /** + * 打つことができる場所があるかどうかを取得します + */ + public canPutSomewhere(color: Color): boolean { + return this.puttablePlaces(color).length > 0; + } + + /** + * 指定のマスに石を打つことができるかどうかを取得します + * @param color 自分の色 + * @param pos 位置 + */ + public canPut(color: Color, pos: number): boolean { + return ( + this.board[pos] !== null ? false : // 既に石が置いてある場所には打てない + this.opts.canPutEverywhere ? this.mapDataGet(pos) == 'empty' : // 挟んでなくても置けるモード + this.effects(color, pos).length !== 0); // 相手の石を1つでも反転させられるか + } + + /** + * 指定のマスに石を置いた時の、反転させられる石を取得します + * @param color 自分の色 + * @param initPos 位置 + */ + public effects(color: Color, initPos: number): number[] { + const enemyColor = !color; + + const diffVectors: [number, number][] = [ + [ 0, -1], // 上 + [ +1, -1], // 右上 + [ +1, 0], // 右 + [ +1, +1], // 右下 + [ 0, +1], // 下 + [ -1, +1], // 左下 + [ -1, 0], // 左 + [ -1, -1] // 左上 + ]; + + const effectsInLine = ([dx, dy]: [number, number]): number[] => { + const nextPos = (x: number, y: number): [number, number] => [x + dx, y + dy]; + + const found: number[] = []; // 挟めるかもしれない相手の石を入れておく配列 + let [x, y] = this.transformPosToXy(initPos); + while (true) { + [x, y] = nextPos(x, y); + + // 座標が指し示す位置がボード外に出たとき + if (this.opts.loopedBoard && this.transformXyToPos( + (x = ((x % this.mapWidth) + this.mapWidth) % this.mapWidth), + (y = ((y % this.mapHeight) + this.mapHeight) % this.mapHeight)) === initPos) + // 盤面の境界でループし、自分が石を置く位置に戻ってきたとき、挟めるようにしている (ref: Test4のマップ) + return found; + else if (x === -1 || y === -1 || x === this.mapWidth || y === this.mapHeight) + return []; // 挟めないことが確定 (盤面外に到達) + + const pos = this.transformXyToPos(x, y); + if (this.mapDataGet(pos) === 'null') return []; // 挟めないことが確定 (配置不可能なマスに到達) + const stone = this.board[pos]; + if (stone === null) return []; // 挟めないことが確定 (石が置かれていないマスに到達) + if (stone === enemyColor) found.push(pos); // 挟めるかもしれない (相手の石を発見) + if (stone === color) return found; // 挟めることが確定 (対となる自分の石を発見) + } + }; + + return concat(diffVectors.map(effectsInLine)); + } + + /** + * ゲームが終了したか否か + */ + public get isEnded(): boolean { + return this.turn === null; + } + + /** + * ゲームの勝者 (null = 引き分け) + */ + public get winner(): Color | null { + return this.isEnded ? + this.blackCount == this.whiteCount ? null : + this.opts.isLlotheo === this.blackCount > this.whiteCount ? WHITE : BLACK : + undefined as never; + } +} diff --git a/src/games/reversi/maps.ts b/src/games/reversi/maps.ts new file mode 100644 index 000000000..b95eb4f02 --- /dev/null +++ b/src/games/reversi/maps.ts @@ -0,0 +1,880 @@ +/** + * 組み込みマップ定義 + * + * データ値: + * (スペース) ... マス無し + * - ... マス + * b ... 初期配置される黒石 + * w ... 初期配置される白石 + */ + +export type Map = { + name?: string; + category?: string; + author?: string; + data: string[]; +}; + +export const fourfour: Map = { + name: '4x4', + category: '4x4', + data: [ + '----', + '-wb-', + '-bw-', + '----' + ] +}; + +export const sixsix: Map = { + name: '6x6', + category: '6x6', + data: [ + '------', + '------', + '--wb--', + '--bw--', + '------', + '------' + ] +}; + +export const roundedSixsix: Map = { + name: '6x6 rounded', + category: '6x6', + author: 'syuilo', + data: [ + ' ---- ', + '------', + '--wb--', + '--bw--', + '------', + ' ---- ' + ] +}; + +export const roundedSixsix2: Map = { + name: '6x6 rounded 2', + category: '6x6', + author: 'syuilo', + data: [ + ' -- ', + ' ---- ', + '--wb--', + '--bw--', + ' ---- ', + ' -- ' + ] +}; + +export const eighteight: Map = { + name: '8x8', + category: '8x8', + data: [ + '--------', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + '--------' + ] +}; + +export const eighteightH1: Map = { + name: '8x8 handicap 1', + category: '8x8', + data: [ + 'b-------', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + '--------' + ] +}; + +export const eighteightH2: Map = { + name: '8x8 handicap 2', + category: '8x8', + data: [ + 'b-------', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + '-------b' + ] +}; + +export const eighteightH3: Map = { + name: '8x8 handicap 3', + category: '8x8', + data: [ + 'b------b', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + '-------b' + ] +}; + +export const eighteightH4: Map = { + name: '8x8 handicap 4', + category: '8x8', + data: [ + 'b------b', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + 'b------b' + ] +}; + +export const eighteightH28: Map = { + name: '8x8 handicap 28', + category: '8x8', + data: [ + 'bbbbbbbb', + 'b------b', + 'b------b', + 'b--wb--b', + 'b--bw--b', + 'b------b', + 'b------b', + 'bbbbbbbb' + ] +}; + +export const roundedEighteight: Map = { + name: '8x8 rounded', + category: '8x8', + author: 'syuilo', + data: [ + ' ------ ', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + ' ------ ' + ] +}; + +export const roundedEighteight2: Map = { + name: '8x8 rounded 2', + category: '8x8', + author: 'syuilo', + data: [ + ' ---- ', + ' ------ ', + '--------', + '---wb---', + '---bw---', + '--------', + ' ------ ', + ' ---- ' + ] +}; + +export const roundedEighteight3: Map = { + name: '8x8 rounded 3', + category: '8x8', + author: 'syuilo', + data: [ + ' -- ', + ' ---- ', + ' ------ ', + '---wb---', + '---bw---', + ' ------ ', + ' ---- ', + ' -- ' + ] +}; + +export const eighteightWithNotch: Map = { + name: '8x8 with notch', + category: '8x8', + author: 'syuilo', + data: [ + '--- ---', + '--------', + '--------', + ' --wb-- ', + ' --bw-- ', + '--------', + '--------', + '--- ---' + ] +}; + +export const eighteightWithSomeHoles: Map = { + name: '8x8 with some holes', + category: '8x8', + author: 'syuilo', + data: [ + '--- ----', + '----- --', + '-- -----', + '---wb---', + '---bw- -', + ' -------', + '--- ----', + '--------' + ] +}; + +export const circle: Map = { + name: 'Circle', + category: '8x8', + author: 'syuilo', + data: [ + ' -- ', + ' ------ ', + ' ------ ', + '---wb---', + '---bw---', + ' ------ ', + ' ------ ', + ' -- ' + ] +}; + +export const smile: Map = { + name: 'Smile', + category: '8x8', + author: 'syuilo', + data: [ + ' ------ ', + '--------', + '-- -- --', + '---wb---', + '-- bw --', + '--- ---', + '--------', + ' ------ ' + ] +}; + +export const window: Map = { + name: 'Window', + category: '8x8', + author: 'syuilo', + data: [ + '--------', + '- -- -', + '- -- -', + '---wb---', + '---bw---', + '- -- -', + '- -- -', + '--------' + ] +}; + +export const reserved: Map = { + name: 'Reserved', + category: '8x8', + author: 'Aya', + data: [ + 'w------b', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + 'b------w' + ] +}; + +export const x: Map = { + name: 'X', + category: '8x8', + author: 'Aya', + data: [ + 'w------b', + '-w----b-', + '--w--b--', + '---wb---', + '---bw---', + '--b--w--', + '-b----w-', + 'b------w' + ] +}; + +export const parallel: Map = { + name: 'Parallel', + category: '8x8', + author: 'Aya', + data: [ + '--------', + '--------', + '--------', + '---bb---', + '---ww---', + '--------', + '--------', + '--------' + ] +}; + +export const lackOfBlack: Map = { + name: 'Lack of Black', + category: '8x8', + data: [ + '--------', + '--------', + '--------', + '---w----', + '---bw---', + '--------', + '--------', + '--------' + ] +}; + +export const squareParty: Map = { + name: 'Square Party', + category: '8x8', + author: 'syuilo', + data: [ + '--------', + '-wwwbbb-', + '-w-wb-b-', + '-wwwbbb-', + '-bbbwww-', + '-b-bw-w-', + '-bbbwww-', + '--------' + ] +}; + +export const minesweeper: Map = { + name: 'Minesweeper', + category: '8x8', + author: 'syuilo', + data: [ + 'b-b--w-w', + '-w-wb-b-', + 'w-b--w-b', + '-b-wb-w-', + '-w-bw-b-', + 'b-w--b-w', + '-b-bw-w-', + 'w-w--b-b' + ] +}; + +export const tenthtenth: Map = { + name: '10x10', + category: '10x10', + data: [ + '----------', + '----------', + '----------', + '----------', + '----wb----', + '----bw----', + '----------', + '----------', + '----------', + '----------' + ] +}; + +export const hole: Map = { + name: 'The Hole', + category: '10x10', + author: 'syuilo', + data: [ + '----------', + '----------', + '--wb--wb--', + '--bw--bw--', + '---- ----', + '---- ----', + '--wb--wb--', + '--bw--bw--', + '----------', + '----------' + ] +}; + +export const grid: Map = { + name: 'Grid', + category: '10x10', + author: 'syuilo', + data: [ + '----------', + '- - -- - -', + '----------', + '- - -- - -', + '----wb----', + '----bw----', + '- - -- - -', + '----------', + '- - -- - -', + '----------' + ] +}; + +export const cross: Map = { + name: 'Cross', + category: '10x10', + author: 'Aya', + data: [ + ' ---- ', + ' ---- ', + ' ---- ', + '----------', + '----wb----', + '----bw----', + '----------', + ' ---- ', + ' ---- ', + ' ---- ' + ] +}; + +export const charX: Map = { + name: 'Char X', + category: '10x10', + author: 'syuilo', + data: [ + '--- ---', + '---- ----', + '----------', + ' -------- ', + ' --wb-- ', + ' --bw-- ', + ' -------- ', + '----------', + '---- ----', + '--- ---' + ] +}; + +export const charY: Map = { + name: 'Char Y', + category: '10x10', + author: 'syuilo', + data: [ + '--- ---', + '---- ----', + '----------', + ' -------- ', + ' --wb-- ', + ' --bw-- ', + ' ------ ', + ' ------ ', + ' ------ ', + ' ------ ' + ] +}; + +export const walls: Map = { + name: 'Walls', + category: '10x10', + author: 'Aya', + data: [ + ' bbbbbbbb ', + 'w--------w', + 'w--------w', + 'w--------w', + 'w---wb---w', + 'w---bw---w', + 'w--------w', + 'w--------w', + 'w--------w', + ' bbbbbbbb ' + ] +}; + +export const cpu: Map = { + name: 'CPU', + category: '10x10', + author: 'syuilo', + data: [ + ' b b b b ', + 'w--------w', + ' -------- ', + 'w--------w', + ' ---wb--- ', + ' ---bw--- ', + 'w--------w', + ' -------- ', + 'w--------w', + ' b b b b ' + ] +}; + +export const checker: Map = { + name: 'Checker', + category: '10x10', + author: 'Aya', + data: [ + '----------', + '----------', + '----------', + '---wbwb---', + '---bwbw---', + '---wbwb---', + '---bwbw---', + '----------', + '----------', + '----------' + ] +}; + +export const japaneseCurry: Map = { + name: 'Japanese curry', + category: '10x10', + author: 'syuilo', + data: [ + 'w-b-b-b-b-', + '-w-b-b-b-b', + 'w-w-b-b-b-', + '-w-w-b-b-b', + 'w-w-wwb-b-', + '-w-wbb-b-b', + 'w-w-w-b-b-', + '-w-w-w-b-b', + 'w-w-w-w-b-', + '-w-w-w-w-b' + ] +}; + +export const mosaic: Map = { + name: 'Mosaic', + category: '10x10', + author: 'syuilo', + data: [ + '- - - - - ', + ' - - - - -', + '- - - - - ', + ' - w w - -', + '- - b b - ', + ' - w w - -', + '- - b b - ', + ' - - - - -', + '- - - - - ', + ' - - - - -', + ] +}; + +export const arena: Map = { + name: 'Arena', + category: '10x10', + author: 'syuilo', + data: [ + '- - -- - -', + ' - - - - ', + '- ------ -', + ' -------- ', + '- --wb-- -', + '- --bw-- -', + ' -------- ', + '- ------ -', + ' - - - - ', + '- - -- - -' + ] +}; + +export const reactor: Map = { + name: 'Reactor', + category: '10x10', + author: 'syuilo', + data: [ + '-w------b-', + 'b- - - -w', + '- --wb-- -', + '---b w---', + '- b wb w -', + '- w bw b -', + '---w b---', + '- --bw-- -', + 'w- - - -b', + '-b------w-' + ] +}; + +export const sixeight: Map = { + name: '6x8', + category: 'Special', + data: [ + '------', + '------', + '------', + '--wb--', + '--bw--', + '------', + '------', + '------' + ] +}; + +export const spark: Map = { + name: 'Spark', + category: 'Special', + author: 'syuilo', + data: [ + ' - - ', + '----------', + ' -------- ', + ' -------- ', + ' ---wb--- ', + ' ---bw--- ', + ' -------- ', + ' -------- ', + '----------', + ' - - ' + ] +}; + +export const islands: Map = { + name: 'Islands', + category: 'Special', + author: 'syuilo', + data: [ + '-------- ', + '---wb--- ', + '---bw--- ', + '-------- ', + ' - - ', + ' - - ', + ' --------', + ' --------', + ' --------', + ' --------' + ] +}; + +export const galaxy: Map = { + name: 'Galaxy', + category: 'Special', + author: 'syuilo', + data: [ + ' ------ ', + ' --www--- ', + ' ------w--- ', + '---bbb--w---', + '--b---b-w-b-', + '-b--wwb-w-b-', + '-b-w-bww--b-', + '-b-w-b---b--', + '---w--bbb---', + ' ---w------ ', + ' ---www-- ', + ' ------ ' + ] +}; + +export const triangle: Map = { + name: 'Triangle', + category: 'Special', + author: 'syuilo', + data: [ + ' -- ', + ' -- ', + ' ---- ', + ' ---- ', + ' --wb-- ', + ' --bw-- ', + ' -------- ', + ' -------- ', + '----------', + '----------' + ] +}; + +export const iphonex: Map = { + name: 'iPhone X', + category: 'Special', + author: 'syuilo', + data: [ + ' -- -- ', + '--------', + '--------', + '--------', + '--------', + '---wb---', + '---bw---', + '--------', + '--------', + '--------', + '--------', + ' ------ ' + ] +}; + +export const dealWithIt: Map = { + name: 'Deal with it!', + category: 'Special', + author: 'syuilo', + data: [ + '------------', + '--w-b-------', + ' --b-w------', + ' --w-b---- ', + ' ------- ' + ] +}; + +export const experiment: Map = { + name: 'Let\'s experiment', + category: 'Special', + author: 'syuilo', + data: [ + ' ------------ ', + '------wb------', + '------bw------', + '--------------', + ' - - ', + '------ ------', + 'bbbbbb wwwwww', + 'bbbbbb wwwwww', + 'bbbbbb wwwwww', + 'bbbbbb wwwwww', + 'wwwwww bbbbbb' + ] +}; + +export const bigBoard: Map = { + name: 'Big board', + category: 'Special', + data: [ + '----------------', + '----------------', + '----------------', + '----------------', + '----------------', + '----------------', + '----------------', + '-------wb-------', + '-------bw-------', + '----------------', + '----------------', + '----------------', + '----------------', + '----------------', + '----------------', + '----------------' + ] +}; + +export const twoBoard: Map = { + name: 'Two board', + category: 'Special', + author: 'Aya', + data: [ + '-------- --------', + '-------- --------', + '-------- --------', + '---wb--- ---wb---', + '---bw--- ---bw---', + '-------- --------', + '-------- --------', + '-------- --------' + ] +}; + +export const test1: Map = { + name: 'Test1', + category: 'Test', + data: [ + '--------', + '---wb---', + '---bw---', + '--------' + ] +}; + +export const test2: Map = { + name: 'Test2', + category: 'Test', + data: [ + '------', + '------', + '-b--w-', + '-w--b-', + '-w--b-' + ] +}; + +export const test3: Map = { + name: 'Test3', + category: 'Test', + data: [ + '-w-', + '--w', + 'w--', + '-w-', + '--w', + 'w--', + '-w-', + '--w', + 'w--', + '-w-', + '---', + 'b--', + ] +}; + +export const test4: Map = { + name: 'Test4', + category: 'Test', + data: [ + '-w--b-', + '-w--b-', + '------', + '-w--b-', + '-w--b-' + ] +}; + +// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう +export const test6: Map = { + name: 'Test6', + category: 'Test', + data: [ + '--wwwww-', + 'wwwwwwww', + 'wbbbwbwb', + 'wbbbbwbb', + 'wbwbbwbb', + 'wwbwbbbb', + '--wbbbbb', + '-wwwww--', + ] +}; + +// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう +export const test7: Map = { + name: 'Test7', + category: 'Test', + data: [ + 'b--w----', + 'b-wwww--', + 'bwbwwwbb', + 'wbwwwwb-', + 'wwwwwww-', + '-wwbbwwb', + '--wwww--', + '--wwww--', + ] +}; diff --git a/src/games/reversi/package.json b/src/games/reversi/package.json new file mode 100644 index 000000000..5e7fdcb58 --- /dev/null +++ b/src/games/reversi/package.json @@ -0,0 +1,18 @@ +{ + "name": "misskey-reversi", + "version": "0.0.5", + "description": "Misskey reversi engine", + "keywords": [ + "misskey" + ], + "author": "syuilo ", + "license": "MIT", + "repository": "https://github.com/syuilo/misskey.git", + "bugs": "https://github.com/syuilo/misskey/issues", + "main": "./built/core.js", + "types": "./built/core.d.ts", + "scripts": { + "build": "tsc" + }, + "dependencies": {} +} diff --git a/src/games/reversi/tsconfig.json b/src/games/reversi/tsconfig.json new file mode 100644 index 000000000..851fb6b7e --- /dev/null +++ b/src/games/reversi/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "noEmitOnError": false, + "noImplicitAny": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "experimentalDecorators": true, + "declaration": true, + "sourceMap": false, + "target": "es2017", + "module": "commonjs", + "removeComments": false, + "noLib": false, + "outDir": "./built", + "rootDir": "./" + }, + "compileOnSave": false, + "include": [ + "./core.ts" + ] +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 000000000..c4a1088c2 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,13 @@ +/** + * Misskey Entry Point! + */ + +Error.stackTraceLimit = Infinity; + +require('events').EventEmitter.defaultMaxListeners = 128; + +import boot from './boot'; + +export default function() { + return boot(); +} diff --git a/packages/meta.json b/src/meta.json similarity index 100% rename from packages/meta.json rename to src/meta.json diff --git a/src/mfm/from-html.ts b/src/mfm/from-html.ts new file mode 100644 index 000000000..4c27c2cbb --- /dev/null +++ b/src/mfm/from-html.ts @@ -0,0 +1,83 @@ +import { parseFragment, DefaultTreeDocumentFragment } from 'parse5'; +import { urlRegexFull } from './prelude'; + +export function fromHtml(html: string, hashtagNames?: string[]): string { + const dom = parseFragment(html) as DefaultTreeDocumentFragment; + + let text = ''; + + for (const n of dom.childNodes) { + analyze(n); + } + + return text.trim(); + + function getText(node: any): string { + if (node.nodeName === '#text') return node.value; + + if (node.childNodes) { + return node.childNodes.map((n: any) => getText(n)).join(''); + } + + return ''; + } + + function analyze(node: any) { + switch (node.nodeName) { + case '#text': + text += node.value; + break; + + case 'br': + text += '\n'; + break; + + case 'a': + const txt = getText(node); + const rel = node.attrs.find((x: any) => x.name === 'rel'); + const href = node.attrs.find((x: any) => x.name === 'href'); + + // ハッシュタグ + if (hashtagNames && href && hashtagNames.map(x => x.toLowerCase()).includes(txt.toLowerCase())) { + text += txt; + // メンション + } else if (txt.startsWith('@') && !(rel && rel.value.match(/^me /))) { + const part = txt.split('@'); + + if (part.length === 2) { + //#region ホスト名部分が省略されているので復元する + const acct = `${txt}@${(new URL(href.value)).hostname}`; + text += acct; + //#endregion + } else if (part.length === 3) { + text += txt; + } + // その他 + } else { + text += !href ? txt + : txt === href.value + ? txt.match(urlRegexFull) ? txt + : `<${txt}>` + : `[${txt}](${href.value})`; + } + break; + + case 'p': + text += '\n\n'; + if (node.childNodes) { + for (const n of node.childNodes) { + analyze(n); + } + } + break; + + default: + if (node.childNodes) { + for (const n of node.childNodes) { + analyze(n); + } + } + break; + } + } +} diff --git a/src/mfm/language.ts b/src/mfm/language.ts new file mode 100644 index 000000000..cf00f0632 --- /dev/null +++ b/src/mfm/language.ts @@ -0,0 +1,191 @@ +import * as P from 'parsimmon'; +import { createLeaf, createTree, urlRegex } from './prelude'; +import { takeWhile, cumulativeSum } from '../prelude/array'; +import parseAcct from '../misc/acct/parse'; +import { toUnicode } from 'punycode'; +import { emojiRegex } from '../misc/emoji-regex'; + +export function removeOrphanedBrackets(s: string): string { + const openBrackets = ['(', '「', '[']; + const closeBrackets = [')', '」', ']']; + const xs = cumulativeSum(s.split('').map(c => { + if (openBrackets.includes(c)) return 1; + if (closeBrackets.includes(c)) return -1; + return 0; + })); + const firstOrphanedCloseBracket = xs.findIndex(x => x < 0); + if (firstOrphanedCloseBracket !== -1) return s.substr(0, firstOrphanedCloseBracket); + const lastMatched = xs.lastIndexOf(0); + return s.substr(0, lastMatched + 1); +} + +export const mfmLanguage = P.createLanguage({ + root: r => P.alt(r.block, r.inline).atLeast(1), + plain: r => P.alt(r.emoji, r.text).atLeast(1), + block: r => P.alt( + r.quote, + r.search, + r.blockCode, + r.mathBlock, + r.center, + ), + startOfLine: () => P((input, i) => { + if (i === 0 || input[i] === '\n' || input[i - 1] === '\n') { + return P.makeSuccess(i, null); + } else { + return P.makeFailure(i, 'not newline'); + } + }), + quote: r => r.startOfLine.then(P((input, i) => { + const text = input.substr(i); + if (!text.match(/^>[\s\S]+?/)) return P.makeFailure(i, 'not a quote'); + const quote = takeWhile(line => line.startsWith('>'), text.split('\n')); + const qInner = quote.join('\n').replace(/^>/gm, '').replace(/^ /gm, ''); + if (qInner === '') return P.makeFailure(i, 'not a quote'); + const contents = r.root.tryParse(qInner); + return P.makeSuccess(i + quote.join('\n').length + 1, createTree('quote', contents, {})); + })), + search: r => r.startOfLine.then(P((input, i) => { + const text = input.substr(i); + const match = text.match(/^(.+?)( | )(検索|\[検索\]|Search|\[Search\])(\n|$)/i); + if (!match) return P.makeFailure(i, 'not a search'); + return P.makeSuccess(i + match[0].length, createLeaf('search', { query: match[1], content: match[0].trim() })); + })), + blockCode: r => r.startOfLine.then(P((input, i) => { + const text = input.substr(i); + const match = text.match(/^```(.+?)?\n([\s\S]+?)\n```(\n|$)/i); + if (!match) return P.makeFailure(i, 'not a blockCode'); + return P.makeSuccess(i + match[0].length, createLeaf('blockCode', { code: match[2], lang: match[1] ? match[1].trim() : null })); + })), + inline: r => P.alt( + r.big, + r.bold, + r.small, + r.italic, + r.strike, + r.inlineCode, + r.mathInline, + r.mention, + r.hashtag, + r.url, + r.link, + r.emoji, + r.fn, + r.text + ), + // TODO: そのうち消す + big: r => P.regexp(/^\*\*\*([\s\S]+?)\*\*\*/, 1).map(x => createTree('fn', r.inline.atLeast(1).tryParse(x), { + name: 'tada', + args: {} + })), + bold: r => { + const asterisk = P.regexp(/\*\*([\s\S]+?)\*\*/, 1); + const underscore = P.regexp(/__([a-zA-Z0-9\s]+?)__/, 1); + return P.alt(asterisk, underscore).map(x => createTree('bold', r.inline.atLeast(1).tryParse(x), {})); + }, + small: r => P.regexp(/([\s\S]+?)<\/small>/, 1).map(x => createTree('small', r.inline.atLeast(1).tryParse(x), {})), + italic: r => { + const xml = P.regexp(/([\s\S]+?)<\/i>/, 1); + const underscore = P((input, i) => { + const text = input.substr(i); + const match = text.match(/^(\*|_)([a-zA-Z0-9]+?[\s\S]*?)\1/); + if (!match) return P.makeFailure(i, 'not a italic'); + if (input[i - 1] != null && input[i - 1] != ' ' && input[i - 1] != '\n') return P.makeFailure(i, 'not a italic'); + return P.makeSuccess(i + match[0].length, match[2]); + }); + + return P.alt(xml, underscore).map(x => createTree('italic', r.inline.atLeast(1).tryParse(x), {})); + }, + strike: r => P.regexp(/~~([^\n~]+?)~~/, 1).map(x => createTree('strike', r.inline.atLeast(1).tryParse(x), {})), + center: r => r.startOfLine.then(P.regexp(/
([\s\S]+?)<\/center>/, 1).map(x => createTree('center', r.inline.atLeast(1).tryParse(x), {}))), + inlineCode: () => P.regexp(/`([^´\n]+?)`/, 1).map(x => createLeaf('inlineCode', { code: x })), + mathBlock: r => r.startOfLine.then(P.regexp(/\\\[([\s\S]+?)\\\]/, 1).map(x => createLeaf('mathBlock', { formula: x.trim() }))), + mathInline: () => P.regexp(/\\\((.+?)\\\)/, 1).map(x => createLeaf('mathInline', { formula: x })), + mention: () => { + return P((input, i) => { + const text = input.substr(i); + const match = text.match(/^@\w([\w-]*\w)?(?:@[\w.\-]+\w)?/); + if (!match) return P.makeFailure(i, 'not a mention'); + if (input[i - 1] != null && input[i - 1].match(/[a-z0-9]/i)) return P.makeFailure(i, 'not a mention'); + return P.makeSuccess(i + match[0].length, match[0]); + }).map(x => { + const { username, host } = parseAcct(x.substr(1)); + const canonical = host != null ? `@${username}@${toUnicode(host)}` : x; + return createLeaf('mention', { canonical, username, host, acct: x }); + }); + }, + hashtag: () => P((input, i) => { + const text = input.substr(i); + const match = text.match(/^#([^\s.,!?'"#:\/\[\]【】]+)/i); + if (!match) return P.makeFailure(i, 'not a hashtag'); + let hashtag = match[1]; + hashtag = removeOrphanedBrackets(hashtag); + if (hashtag.match(/^(\u20e3|\ufe0f)/)) return P.makeFailure(i, 'not a hashtag'); + if (hashtag.match(/^[0-9]+$/)) return P.makeFailure(i, 'not a hashtag'); + if (input[i - 1] != null && input[i - 1].match(/[a-z0-9]/i)) return P.makeFailure(i, 'not a hashtag'); + if (Array.from(hashtag || '').length > 128) return P.makeFailure(i, 'not a hashtag'); + return P.makeSuccess(i + ('#' + hashtag).length, createLeaf('hashtag', { hashtag: hashtag })); + }), + url: () => { + return P((input, i) => { + const text = input.substr(i); + const match = text.match(urlRegex); + let url: string; + if (!match) { + const match = text.match(/^<(https?:\/\/.*?)>/); + if (!match) { + return P.makeFailure(i, 'not a url'); + } + url = match[1]; + i += 2; + } else { + url = match[0]; + } + url = removeOrphanedBrackets(url); + url = url.replace(/[.,]*$/, ''); + return P.makeSuccess(i + url.length, url); + }).map(x => createLeaf('url', { url: x })); + }, + link: r => { + return P.seqObj( + ['silent', P.string('?').fallback(null).map(x => x != null)] as any, + P.string('['), ['text', P.regexp(/[^\n\[\]]+/)] as any, P.string(']'), + P.string('('), ['url', r.url] as any, P.string(')'), + ).map((x: any) => { + return createTree('link', r.inline.atLeast(1).tryParse(x.text), { + silent: x.silent, + url: x.url.node.props.url + }); + }); + }, + emoji: () => { + const name = P.regexp(/:([a-z0-9_+-]+):/i, 1).map(x => createLeaf('emoji', { name: x })); + const code = P.regexp(emojiRegex).map(x => createLeaf('emoji', { emoji: x })); + return P.alt(name, code); + }, + fn: r => { + return P.seqObj( + P.string('['), ['fn', P.regexp(/[^\s\n\[\]]+/)] as any, P.string(' '), P.optWhitespace, ['text', P.regexp(/[^\n\[\]]+/)] as any, P.string(']'), + ).map((x: any) => { + let name = x.fn; + const args = {}; + const separator = x.fn.indexOf('.'); + if (separator > -1) { + name = x.fn.substr(0, separator); + for (const arg of x.fn.substr(separator + 1).split(',')) { + const kv = arg.split('='); + if (kv.length === 1) { + args[kv[0]] = true; + } else { + args[kv[0]] = kv[1]; + } + } + } + return createTree('fn', r.inline.atLeast(1).tryParse(x.text), { + name, + args + }); + }); + }, + text: () => P.any.map(x => createLeaf('text', { text: x })) +}); diff --git a/src/mfm/normalize.ts b/src/mfm/normalize.ts new file mode 100644 index 000000000..a0f070209 --- /dev/null +++ b/src/mfm/normalize.ts @@ -0,0 +1,31 @@ +import * as A from '../prelude/array'; +import * as S from '../prelude/string'; +import { MfmForest, MfmTree } from './prelude'; +import { createTree, createLeaf } from '../prelude/tree'; + +function isEmptyTextTree(t: MfmTree): boolean { + return t.node.type === 'text' && t.node.props.text === ''; +} + +function concatTextTrees(ts: MfmForest): MfmTree { + return createLeaf({ type: 'text', props: { text: S.concat(ts.map(x => x.node.props.text)) } }); +} + +function concatIfTextTrees(ts: MfmForest): MfmForest { + return ts[0].node.type === 'text' ? [concatTextTrees(ts)] : ts; +} + +function concatConsecutiveTextTrees(ts: MfmForest): MfmForest { + const us = A.concat(A.groupOn(t => t.node.type, ts).map(concatIfTextTrees)); + return us.map(t => createTree(t.node, concatConsecutiveTextTrees(t.children))); +} + +function removeEmptyTextNodes(ts: MfmForest): MfmForest { + return ts + .filter(t => !isEmptyTextTree(t)) + .map(t => createTree(t.node, removeEmptyTextNodes(t.children))); +} + +export function normalize(ts: MfmForest): MfmForest { + return removeEmptyTextNodes(concatConsecutiveTextTrees(ts)); +} diff --git a/src/mfm/parse.ts b/src/mfm/parse.ts new file mode 100644 index 000000000..c628042f1 --- /dev/null +++ b/src/mfm/parse.ts @@ -0,0 +1,19 @@ +import { mfmLanguage } from './language'; +import { MfmForest } from './prelude'; +import { normalize } from './normalize'; + +export function parse(source: string | null): MfmForest | null { + if (source == null || source === '') { + return null; + } + + return normalize(mfmLanguage.root.tryParse(source)); +} + +export function parsePlain(source: string | null): MfmForest | null { + if (source == null || source === '') { + return null; + } + + return normalize(mfmLanguage.plain.tryParse(source)); +} diff --git a/src/mfm/prelude.ts b/src/mfm/prelude.ts new file mode 100644 index 000000000..a8b52eb31 --- /dev/null +++ b/src/mfm/prelude.ts @@ -0,0 +1,40 @@ +import { Tree } from '../prelude/tree'; +import * as T from '../prelude/tree'; + +type Node = { type: T, props: P }; + +export type MentionNode = Node<'mention', { + canonical: string, + username: string, + host: string, + acct: string +}>; + +export type HashtagNode = Node<'hashtag', { + hashtag: string +}>; + +export type EmojiNode = Node<'emoji', { + name: string +}>; + +export type MfmNode = + MentionNode | + HashtagNode | + EmojiNode | + Node; + +export type MfmTree = Tree; + +export type MfmForest = MfmTree[]; + +export function createLeaf(type: string, props: any): MfmTree { + return T.createLeaf({ type, props }); +} + +export function createTree(type: string, children: MfmForest, props: any): MfmTree { + return T.createTree({ type, props }, children); +} + +export const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/; +export const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/; diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts new file mode 100644 index 000000000..c09272caa --- /dev/null +++ b/src/mfm/to-html.ts @@ -0,0 +1,153 @@ +import { JSDOM } from 'jsdom'; +import config from '../config'; +import { intersperse } from '../prelude/array'; +import { MfmForest, MfmTree } from './prelude'; +import { IMentionedRemoteUsers } from '../models/entities/note'; +import { wellKnownServices } from '../well-known-services'; + +export function toHtml(tokens: MfmForest | null, mentionedRemoteUsers: IMentionedRemoteUsers = []) { + if (tokens == null) { + return null; + } + + const { window } = new JSDOM(''); + + const doc = window.document; + + function appendChildren(children: MfmForest, targetElement: any): void { + for (const child of children.map(t => handlers[t.node.type](t))) targetElement.appendChild(child); + } + + const handlers: { [key: string]: (token: MfmTree) => any } = { + bold(token) { + const el = doc.createElement('b'); + appendChildren(token.children, el); + return el; + }, + + small(token) { + const el = doc.createElement('small'); + appendChildren(token.children, el); + return el; + }, + + strike(token) { + const el = doc.createElement('del'); + appendChildren(token.children, el); + return el; + }, + + italic(token) { + const el = doc.createElement('i'); + appendChildren(token.children, el); + return el; + }, + + fn(token) { + const el = doc.createElement('i'); + appendChildren(token.children, el); + return el; + }, + + blockCode(token) { + const pre = doc.createElement('pre'); + const inner = doc.createElement('code'); + inner.textContent = token.node.props.code; + pre.appendChild(inner); + return pre; + }, + + center(token) { + const el = doc.createElement('div'); + appendChildren(token.children, el); + return el; + }, + + emoji(token) { + return doc.createTextNode(token.node.props.emoji ? token.node.props.emoji : `\u200B:${token.node.props.name}:\u200B`); + }, + + hashtag(token) { + const a = doc.createElement('a'); + a.href = `${config.url}/tags/${token.node.props.hashtag}`; + a.textContent = `#${token.node.props.hashtag}`; + a.setAttribute('rel', 'tag'); + return a; + }, + + inlineCode(token) { + const el = doc.createElement('code'); + el.textContent = token.node.props.code; + return el; + }, + + mathInline(token) { + const el = doc.createElement('code'); + el.textContent = token.node.props.formula; + return el; + }, + + mathBlock(token) { + const el = doc.createElement('code'); + el.textContent = token.node.props.formula; + return el; + }, + + link(token) { + const a = doc.createElement('a'); + a.href = token.node.props.url; + appendChildren(token.children, a); + return a; + }, + + mention(token) { + const a = doc.createElement('a'); + const { username, host, acct } = token.node.props; + const wellKnown = wellKnownServices.find(x => x[0] === host); + if (wellKnown) { + a.href = wellKnown[1](username); + } else { + const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host); + a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`; + a.className = 'u-url mention'; + } + a.textContent = acct; + return a; + }, + + quote(token) { + const el = doc.createElement('blockquote'); + appendChildren(token.children, el); + return el; + }, + + text(token) { + const el = doc.createElement('span'); + const nodes = (token.node.props.text as string).split(/\r\n|\r|\n/).map(x => doc.createTextNode(x) as Node); + + for (const x of intersperse('br', nodes)) { + el.appendChild(x === 'br' ? doc.createElement('br') : x); + } + + return el; + }, + + url(token) { + const a = doc.createElement('a'); + a.href = token.node.props.url; + a.textContent = token.node.props.url; + return a; + }, + + search(token) { + const a = doc.createElement('a'); + a.href = `https://www.google.com/search?q=${token.node.props.query}`; + a.textContent = token.node.props.content; + return a; + } + }; + + appendChildren(tokens, doc.body); + + return `

${doc.body.innerHTML}

`; +} diff --git a/src/mfm/to-string.ts b/src/mfm/to-string.ts new file mode 100644 index 000000000..b70b99cbd --- /dev/null +++ b/src/mfm/to-string.ts @@ -0,0 +1,99 @@ +import { MfmForest, MfmTree } from './prelude'; +import { nyaize } from '../misc/nyaize'; + +export type RestoreOptions = { + doNyaize?: boolean; +}; + +export function toString(tokens: MfmForest | null, opts?: RestoreOptions): string { + + if (tokens === null) return ''; + + function appendChildren(children: MfmForest, opts?: RestoreOptions): string { + return children.map(t => handlers[t.node.type](t, opts)).join(''); + } + + const handlers: { [key: string]: (token: MfmTree, opts?: RestoreOptions) => string } = { + bold(token, opts) { + return `**${appendChildren(token.children, opts)}**`; + }, + + small(token, opts) { + return `${appendChildren(token.children, opts)}`; + }, + + strike(token, opts) { + return `~~${appendChildren(token.children, opts)}~~`; + }, + + italic(token, opts) { + return `${appendChildren(token.children, opts)}`; + }, + + fn(token, opts) { + const name = token.node.props?.name; + const args = token.node.props?.args || {}; + const argsStr = Object.entries(args).map(([k, v]) => v === true ? k : `${k}=${v}`).join(','); + return `[${name}${argsStr !== '' ? '.' + argsStr : ''} ${appendChildren(token.children, opts)}]`; + }, + + blockCode(token) { + return `\`\`\`${token.node.props.lang || ''}\n${token.node.props.code}\n\`\`\`\n`; + }, + + center(token, opts) { + return `
${appendChildren(token.children, opts)}
`; + }, + + emoji(token) { + return (token.node.props.emoji ? token.node.props.emoji : `:${token.node.props.name}:`); + }, + + hashtag(token) { + return `#${token.node.props.hashtag}`; + }, + + inlineCode(token) { + return `\`${token.node.props.code}\``; + }, + + mathInline(token) { + return `\\(${token.node.props.formula}\\)`; + }, + + mathBlock(token) { + return `\\[${token.node.props.formula}\\]`; + }, + + link(token, opts) { + if (token.node.props.silent) { + return `?[${appendChildren(token.children, opts)}](${token.node.props.url})`; + } else { + return `[${appendChildren(token.children, opts)}](${token.node.props.url})`; + } + }, + + mention(token) { + return token.node.props.canonical; + }, + + quote(token) { + return `${appendChildren(token.children, {doNyaize: false}).replace(/^/gm,'>').trim()}\n`; + }, + + text(token, opts) { + return (opts && opts.doNyaize) ? nyaize(token.node.props.text) : token.node.props.text; + }, + + url(token) { + return `<${token.node.props.url}>`; + }, + + search(token, opts) { + const query = token.node.props.query; + return `${(opts && opts.doNyaize ? nyaize(query) : query)} [search]\n`; + } + }; + + return appendChildren(tokens, { doNyaize: (opts && opts.doNyaize) || false }).trim(); +} diff --git a/src/misc/acct/parse.ts b/src/misc/acct/parse.ts new file mode 100644 index 000000000..e3bed35d8 --- /dev/null +++ b/src/misc/acct/parse.ts @@ -0,0 +1,7 @@ +import Acct from './type'; + +export default (acct: string): Acct => { + if (acct.startsWith('@')) acct = acct.substr(1); + const split = acct.split('@', 2); + return { username: split[0], host: split[1] || null }; +}; diff --git a/src/misc/acct/render.ts b/src/misc/acct/render.ts new file mode 100644 index 000000000..094eceffe --- /dev/null +++ b/src/misc/acct/render.ts @@ -0,0 +1,5 @@ +import Acct from './type'; + +export default (user: Acct) => { + return user.host == null ? user.username : `${user.username}@${user.host}`; +}; diff --git a/src/misc/acct/type.ts b/src/misc/acct/type.ts new file mode 100644 index 000000000..7f3125740 --- /dev/null +++ b/src/misc/acct/type.ts @@ -0,0 +1,6 @@ +type Acct = { + username: string; + host: string | null; +}; + +export default Acct; diff --git a/packages/backend/src/misc/api-permissions.ts b/src/misc/api-permissions.ts similarity index 76% rename from packages/backend/src/misc/api-permissions.ts rename to src/misc/api-permissions.ts index 160cdf9fd..de9fdea52 100644 --- a/packages/backend/src/misc/api-permissions.ts +++ b/src/misc/api-permissions.ts @@ -27,9 +27,4 @@ export const kinds = [ 'write:user-groups', 'read:channels', 'write:channels', - 'read:gallery', - 'write:gallery', - 'read:gallery-likes', - 'write:gallery-likes', ]; -// IF YOU ADD KINDS(PERMISSIONS), YOU MUST ADD TRANSLATIONS (under _permissions). diff --git a/packages/backend/src/misc/app-lock.ts b/src/misc/app-lock.ts similarity index 78% rename from packages/backend/src/misc/app-lock.ts rename to src/misc/app-lock.ts index b5089cc6a..847299b46 100644 --- a/packages/backend/src/misc/app-lock.ts +++ b/src/misc/app-lock.ts @@ -1,6 +1,5 @@ -import { redisClient } from '../db/redis.js'; -import { promisify } from 'node:util'; -import redisLock from 'redis-lock'; +import redis from '../db/redis'; +import { promisify } from 'util'; /** * Retry delay (ms) for lock acquisition @@ -8,8 +7,8 @@ import redisLock from 'redis-lock'; const retryDelay = 100; const lock: (key: string, timeout?: number) => Promise<() => void> - = redisClient - ? promisify(redisLock(redisClient, retryDelay)) + = redis + ? promisify(require('redis-lock')(redis, retryDelay)) : async () => () => { }; /** diff --git a/src/misc/cafy-id.ts b/src/misc/cafy-id.ts new file mode 100644 index 000000000..39886611e --- /dev/null +++ b/src/misc/cafy-id.ts @@ -0,0 +1,32 @@ +import { Context } from 'cafy'; + +export class ID extends Context { + public readonly name = 'ID'; + + constructor(optional = false, nullable = false) { + super(optional, nullable); + + this.push((v: any) => { + if (typeof v !== 'string') { + return new Error('must-be-an-id'); + } + return true; + }); + } + + public getType() { + return super.getType('String'); + } + + public makeOptional(): ID { + return new ID(true, false); + } + + public makeNullable(): ID { + return new ID(false, true); + } + + public makeOptionalNullable(): ID { + return new ID(true, true); + } +} diff --git a/src/misc/check-hit-antenna.ts b/src/misc/check-hit-antenna.ts new file mode 100644 index 000000000..562d05456 --- /dev/null +++ b/src/misc/check-hit-antenna.ts @@ -0,0 +1,85 @@ +import { Antenna } from '../models/entities/antenna'; +import { Note } from '../models/entities/note'; +import { User } from '../models/entities/user'; +import { UserListJoinings, UserGroupJoinings } from '../models'; +import parseAcct from './acct/parse'; +import { getFullApAccount } from './convert-host'; +import { ensure } from '../prelude/ensure'; + +export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: User, followers: User['id'][]): Promise { + if (note.visibility === 'specified') return false; + + if (note.visibility === 'followers') { + if (!followers.includes(antenna.userId)) return false; + } + + if (!antenna.withReplies && note.replyId != null) return false; + + if (antenna.src === 'home') { + if (!followers.includes(antenna.userId)) return false; + } else if (antenna.src === 'list') { + const listUsers = (await UserListJoinings.find({ + userListId: antenna.userListId! + })).map(x => x.userId); + + if (!listUsers.includes(note.userId)) return false; + } else if (antenna.src === 'group') { + const joining = await UserGroupJoinings.findOne(antenna.userGroupJoiningId!).then(ensure); + + const groupUsers = (await UserGroupJoinings.find({ + userGroupId: joining.userGroupId + })).map(x => x.userId); + + if (!groupUsers.includes(note.userId)) return false; + } else if (antenna.src === 'users') { + const accts = antenna.users.map(x => { + const { username, host } = parseAcct(x); + return getFullApAccount(username, host).toLowerCase(); + }); + if (!accts.includes(getFullApAccount(noteUser.username, noteUser.host).toLowerCase())) return false; + } + + const keywords = antenna.keywords + // Clean up + .map(xs => xs.filter(x => x !== '')) + .filter(xs => xs.length > 0); + + if (keywords.length > 0) { + if (note.text == null) return false; + + const matched = keywords.some(and => + and.every(keyword => + antenna.caseSensitive + ? note.text!.includes(keyword) + : note.text!.toLowerCase().includes(keyword.toLowerCase()) + )); + + if (!matched) return false; + } + + const excludeKeywords = antenna.excludeKeywords + // Clean up + .map(xs => xs.filter(x => x !== '')) + .filter(xs => xs.length > 0); + + if (excludeKeywords.length > 0) { + if (note.text == null) return false; + + const matched = excludeKeywords.some(and => + and.every(keyword => + antenna.caseSensitive + ? note.text!.includes(keyword) + : note.text!.toLowerCase().includes(keyword.toLowerCase()) + )); + + if (matched) return false; + } + + if (antenna.withFile) { + if (note.fileIds.length === 0) return false; + } + + // TODO: eval expression + + return true; +} diff --git a/src/misc/check-word-mute.ts b/src/misc/check-word-mute.ts new file mode 100644 index 000000000..5af267d75 --- /dev/null +++ b/src/misc/check-word-mute.ts @@ -0,0 +1,39 @@ +const RE2 = require('re2'); +import { Note } from '../models/entities/note'; +import { User } from '../models/entities/user'; + +type NoteLike = { + userId: Note['userId']; + text: Note['text']; +}; + +type UserLike = { + id: User['id']; +}; + +export async function checkWordMute(note: NoteLike, me: UserLike | null | undefined, mutedWords: string[][]): Promise { + // 自分自身 + if (me && (note.userId === me.id)) return false; + + const words = mutedWords + // Clean up + .map(xs => xs.filter(x => x !== '')) + .filter(xs => xs.length > 0); + + if (words.length > 0) { + if (note.text == null) return false; + + const matched = words.some(and => + and.every(keyword => { + const regexp = keyword.match(/^\/(.+)\/(.*)$/); + if (regexp) { + return new RE2(regexp[1], regexp[2]).test(note.text!); + } + return note.text!.includes(keyword); + })); + + if (matched) return true; + } + + return false; +} diff --git a/packages/backend/src/misc/content-disposition.ts b/src/misc/content-disposition.ts similarity index 81% rename from packages/backend/src/misc/content-disposition.ts rename to src/misc/content-disposition.ts index b2aec471d..9df7ed468 100644 --- a/packages/backend/src/misc/content-disposition.ts +++ b/src/misc/content-disposition.ts @@ -1,4 +1,4 @@ -import cd from 'content-disposition'; +const cd = require('content-disposition'); export function contentDisposition(type: 'inline' | 'attachment', filename: string): string { const fallback = filename.replace(/[^\w.-]/g, '_'); diff --git a/packages/backend/src/misc/convert-host.ts b/src/misc/convert-host.ts similarity index 90% rename from packages/backend/src/misc/convert-host.ts rename to src/misc/convert-host.ts index 7eb940a7e..ad52e1258 100644 --- a/packages/backend/src/misc/convert-host.ts +++ b/src/misc/convert-host.ts @@ -1,5 +1,4 @@ -import { URL } from 'node:url'; -import config from '@/config/index.js'; +import config from '../config'; import { toASCII } from 'punycode'; export function getFullApAccount(username: string, host: string | null) { diff --git a/packages/backend/src/misc/count-same-renotes.ts b/src/misc/count-same-renotes.ts similarity index 92% rename from packages/backend/src/misc/count-same-renotes.ts rename to src/misc/count-same-renotes.ts index b7f8ce90c..bc1072080 100644 --- a/packages/backend/src/misc/count-same-renotes.ts +++ b/src/misc/count-same-renotes.ts @@ -1,4 +1,4 @@ -import { Notes } from '@/models/index.js'; +import { Notes } from '../models'; export async function countSameRenotes(userId: string, renoteId: string, excludeNoteId: string | undefined): Promise { // 指定したユーザーの指定したノートのリノートがいくつあるか数える diff --git a/src/misc/create-temp.ts b/src/misc/create-temp.ts new file mode 100644 index 000000000..04604cf7d --- /dev/null +++ b/src/misc/create-temp.ts @@ -0,0 +1,10 @@ +import * as tmp from 'tmp'; + +export function createTemp(): Promise<[string, any]> { + return new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); +} diff --git a/src/misc/detect-url-mime.ts b/src/misc/detect-url-mime.ts new file mode 100644 index 000000000..274c29173 --- /dev/null +++ b/src/misc/detect-url-mime.ts @@ -0,0 +1,15 @@ +import { createTemp } from './create-temp'; +import { downloadUrl } from './download-url'; +import { detectType } from './get-file-info'; + +export async function detectUrlMime(url: string) { + const [path, cleanup] = await createTemp(); + + try { + await downloadUrl(url, path); + const { mime } = await detectType(path); + return mime; + } finally { + cleanup(); + } +} diff --git a/src/misc/download-text-file.ts b/src/misc/download-text-file.ts new file mode 100644 index 000000000..d6fd17fc1 --- /dev/null +++ b/src/misc/download-text-file.ts @@ -0,0 +1,25 @@ +import * as fs from 'fs'; +import * as util from 'util'; +import Logger from '../services/logger'; +import { createTemp } from './create-temp'; +import { downloadUrl } from './download-url'; + +const logger = new Logger('download-text-file'); + +export async function downloadTextFile(url: string): Promise { + // Create temp file + const [path, cleanup] = await createTemp(); + + logger.info(`Temp file is ${path}`); + + try { + // write content at URL to temp file + await downloadUrl(url, path); + + const text = await util.promisify(fs.readFile)(path, 'utf8'); + + return text; + } finally { + cleanup(); + } +} diff --git a/src/misc/download-url.ts b/src/misc/download-url.ts new file mode 100644 index 000000000..aaba302a5 --- /dev/null +++ b/src/misc/download-url.ts @@ -0,0 +1,39 @@ +import * as fs from 'fs'; +import * as stream from 'stream'; +import * as util from 'util'; +import fetch from 'node-fetch'; +import { getAgentByUrl } from './fetch'; +import { AbortController } from 'abort-controller'; +import config from '../config'; +import * as chalk from 'chalk'; +import Logger from '../services/logger'; + +const pipeline = util.promisify(stream.pipeline); + +export async function downloadUrl(url: string, path: string) { + const logger = new Logger('download'); + + logger.info(`Downloading ${chalk.cyan(url)} ...`); + const controller = new AbortController(); + setTimeout(() => { + controller.abort(); + }, 60 * 1000); + + const response = await fetch(new URL(url).href, { + headers: { + 'User-Agent': config.userAgent + }, + timeout: 10 * 1000, + signal: controller.signal, + agent: getAgentByUrl, + }); + + if (!response.ok) { + logger.error(`Got ${response.status} (${url})`); + throw response.status; + } + + await pipeline(response.body, fs.createWriteStream(path)); + + logger.succ(`Download finished: ${chalk.cyan(url)}`); +} diff --git a/src/misc/emoji-regex.ts b/src/misc/emoji-regex.ts new file mode 100644 index 000000000..9f9c360ff --- /dev/null +++ b/src/misc/emoji-regex.ts @@ -0,0 +1,4 @@ +// https://github.com/twitter/twemoji-parser/blob/master/src/lib/regex.js d1ea6ccfb72735698f4994e7015accc447eeac8e +export const emojiRegex = /((?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f)/; + +export const emojiRegexWithCustom = new RegExp(`(${emojiRegex.source}|:[0-9A-Za-z_]+:)`, 'g'); diff --git a/src/misc/emojilist.ts b/src/misc/emojilist.ts new file mode 100644 index 000000000..de7591f5a --- /dev/null +++ b/src/misc/emojilist.ts @@ -0,0 +1,7 @@ +// initial converted from https://github.com/muan/emojilib/commit/242fe68be86ed6536843b83f7e32f376468b38fb +export const emojilist = require('../emojilist.json') as { + name: string; + keywords: string[]; + char: string; + category: 'people' | 'animals_and_nature' | 'food_and_drink' | 'activity' | 'travel_and_places' | 'objects' | 'symbols' | 'flags'; +}[]; diff --git a/src/misc/extract-emojis.ts b/src/misc/extract-emojis.ts new file mode 100644 index 000000000..2c57e9a8a --- /dev/null +++ b/src/misc/extract-emojis.ts @@ -0,0 +1,9 @@ +import { EmojiNode, MfmForest } from '../mfm/prelude'; +import { preorderF } from '../prelude/tree'; +import { unique } from '../prelude/array'; + +export default function(mfmForest: MfmForest): string[] { + const emojiNodes = preorderF(mfmForest).filter(x => x.type === 'emoji') as EmojiNode[]; + const emojis = emojiNodes.filter(x => x.props.name && x.props.name.length <= 100).map(x => x.props.name); + return unique(emojis); +} diff --git a/src/misc/extract-hashtags.ts b/src/misc/extract-hashtags.ts new file mode 100644 index 000000000..36b2296a7 --- /dev/null +++ b/src/misc/extract-hashtags.ts @@ -0,0 +1,9 @@ +import { HashtagNode, MfmForest } from '../mfm/prelude'; +import { preorderF } from '../prelude/tree'; +import { unique } from '../prelude/array'; + +export default function(mfmForest: MfmForest): string[] { + const hashtagNodes = preorderF(mfmForest).filter(x => x.type === 'hashtag') as HashtagNode[]; + const hashtags = hashtagNodes.map(x => x.props.hashtag); + return unique(hashtags); +} diff --git a/src/misc/extract-mentions.ts b/src/misc/extract-mentions.ts new file mode 100644 index 000000000..72330d31e --- /dev/null +++ b/src/misc/extract-mentions.ts @@ -0,0 +1,10 @@ +// test is located in test/extract-mentions + +import { MentionNode, MfmForest } from '../mfm/prelude'; +import { preorderF } from '../prelude/tree'; + +export default function(mfmForest: MfmForest): MentionNode['props'][] { + // TODO: 重複を削除 + const mentionNodes = preorderF(mfmForest).filter(x => x.type === 'mention') as MentionNode[]; + return mentionNodes.map(x => x.props); +} diff --git a/src/misc/fetch-meta.ts b/src/misc/fetch-meta.ts new file mode 100644 index 000000000..680cf37a7 --- /dev/null +++ b/src/misc/fetch-meta.ts @@ -0,0 +1,35 @@ +import { Meta } from '../models/entities/meta'; +import { getConnection } from 'typeorm'; + +let cache: Meta; + +export async function fetchMeta(noCache = false): Promise { + if (!noCache && cache) return cache; + + return await getConnection().transaction(async transactionalEntityManager => { + // 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する + const meta = await transactionalEntityManager.findOne(Meta, { + order: { + id: 'DESC' + } + }); + + if (meta) { + cache = meta; + return meta; + } else { + const saved = await transactionalEntityManager.save(Meta, { + id: 'x' + }) as Meta; + + cache = saved; + return saved; + } + }); +} + +setInterval(() => { + fetchMeta(true).then(meta => { + cache = meta; + }); +}, 5000); diff --git a/src/misc/fetch-proxy-account.ts b/src/misc/fetch-proxy-account.ts new file mode 100644 index 000000000..0094ab8a5 --- /dev/null +++ b/src/misc/fetch-proxy-account.ts @@ -0,0 +1,10 @@ +import { fetchMeta } from './fetch-meta'; +import { ILocalUser } from '../models/entities/user'; +import { Users } from '../models'; +import { ensure } from '../prelude/ensure'; + +export async function fetchProxyAccount(): Promise { + const meta = await fetchMeta(); + if (meta.proxyAccountId == null) return null; + return await Users.findOne(meta.proxyAccountId).then(ensure) as ILocalUser; +} diff --git a/src/misc/fetch.ts b/src/misc/fetch.ts new file mode 100644 index 000000000..90d89a439 --- /dev/null +++ b/src/misc/fetch.ts @@ -0,0 +1,94 @@ +import * as http from 'http'; +import * as https from 'https'; +import * as cache from 'lookup-dns-cache'; +import fetch, { HeadersInit } from 'node-fetch'; +import { HttpProxyAgent } from 'http-proxy-agent'; +import { HttpsProxyAgent } from 'https-proxy-agent'; +import config from '../config'; +import { URL } from 'url'; + +export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: HeadersInit) { + const res = await fetch(url, { + headers: Object.assign({ + 'User-Agent': config.userAgent, + Accept: accept + }, headers || {}), + timeout, + agent: getAgentByUrl, + }); + + if (!res.ok) { + throw { + name: `StatusError`, + statusCode: res.status, + message: `${res.status} ${res.statusText}`, + }; + } + + return await res.json(); +} + +export async function getHtml(url: string, accept = 'text/html, */*', timeout = 10000, headers?: HeadersInit) { + const res = await fetch(url, { + headers: Object.assign({ + 'User-Agent': config.userAgent, + Accept: accept + }, headers || {}), + timeout, + agent: getAgentByUrl, + }); + + if (!res.ok) { + throw { + name: `StatusError`, + statusCode: res.status, + message: `${res.status} ${res.statusText}`, + }; + } + + return await res.text(); +} + +/** + * Get http non-proxy agent + */ +const _http = new http.Agent({ + keepAlive: true, + keepAliveMsecs: 30 * 1000, +}); + +/** + * Get https non-proxy agent + */ +const _https = new https.Agent({ + keepAlive: true, + keepAliveMsecs: 30 * 1000, + lookup: cache.lookup, +}); + +/** + * Get http proxy or non-proxy agent + */ +export const httpAgent = config.proxy + ? new HttpProxyAgent(config.proxy) as unknown as http.Agent + : _http; + +/** + * Get https proxy or non-proxy agent + */ +export const httpsAgent = config.proxy + ? new HttpsProxyAgent(config.proxy) as unknown as https.Agent + : _https; + +/** + * Get agent by URL + * @param url URL + * @param bypassProxy Allways bypass proxy + */ +export function getAgentByUrl(url: URL, bypassProxy = false) { + if (bypassProxy || (config.proxyBypassHosts || []).includes(url.hostname)) { + return url.protocol == 'http:' ? _http : _https; + } else { + return url.protocol == 'http:' ? httpAgent : httpsAgent; + } +} diff --git a/packages/client/src/scripts/format-time-string.ts b/src/misc/format-time-string.ts similarity index 92% rename from packages/client/src/scripts/format-time-string.ts rename to src/misc/format-time-string.ts index fb4718c00..bfb2c397a 100644 --- a/packages/client/src/scripts/format-time-string.ts +++ b/src/misc/format-time-string.ts @@ -13,7 +13,7 @@ const defaultLocaleStringFormats: {[index: string]: string} = { function formatLocaleString(date: Date, format: string): string { return format.replace(/\{\{(\w+)(:(\w+))?\}\}/g, (match: string, kind: string, unused?, option?: string) => { if (['weekday', 'era', 'year', 'month', 'day', 'hour', 'minute', 'second', 'timeZoneName'].includes(kind)) { - return date.toLocaleString(window.navigator.language, { [kind]: option ? option : defaultLocaleStringFormats[kind] }); + return date.toLocaleString(window.navigator.language, {[kind]: option ? option : defaultLocaleStringFormats[kind]}); } else { return match; } @@ -24,8 +24,8 @@ export function formatDateTimeString(date: Date, format: string): string { return format .replace(/yyyy/g, date.getFullYear().toString()) .replace(/yy/g, date.getFullYear().toString().slice(-2)) - .replace(/MMMM/g, date.toLocaleString(window.navigator.language, { month: 'long' })) - .replace(/MMM/g, date.toLocaleString(window.navigator.language, { month: 'short' })) + .replace(/MMMM/g, date.toLocaleString(window.navigator.language, { month: 'long'})) + .replace(/MMM/g, date.toLocaleString(window.navigator.language, { month: 'short'})) .replace(/MM/g, (`0${date.getMonth() + 1}`).slice(-2)) .replace(/M/g, (date.getMonth() + 1).toString()) .replace(/dd/g, (`0${date.getDate()}`).slice(-2)) diff --git a/src/misc/gen-avatar.ts b/src/misc/gen-avatar.ts new file mode 100644 index 000000000..14c01a9bd --- /dev/null +++ b/src/misc/gen-avatar.ts @@ -0,0 +1,90 @@ +/** + * Random avatar generator + */ + +const p = require('pureimage'); +import * as gen from 'random-seed'; +import { WriteStream } from 'fs'; + +const size = 256; // px +const n = 5; // resolution +const margin = (size / n) / 1.5; +const colors = [ + '#e57373', + '#F06292', + '#BA68C8', + '#9575CD', + '#7986CB', + '#64B5F6', + '#4FC3F7', + '#4DD0E1', + '#4DB6AC', + '#81C784', + '#8BC34A', + '#AFB42B', + '#F57F17', + '#FF5722', + '#795548', + '#455A64', +]; +const bg = '#e9e9e9'; + +const actualSize = size - (margin * 2); +const cellSize = actualSize / n; +const sideN = Math.floor(n / 2); + +/** + * Generate buffer of random avatar by seed + */ +export function genAvatar(seed: string, stream: WriteStream): Promise { + const rand = gen.create(seed); + const canvas = p.make(size, size); + const ctx = canvas.getContext('2d'); + + ctx.fillStyle = bg; + ctx.beginPath(); + ctx.fillRect(0, 0, size, size); + + ctx.fillStyle = colors[rand(colors.length)]; + + // side bitmap (filled by false) + const side: boolean[][] = new Array(sideN); + for (let i = 0; i < side.length; i++) { + side[i] = new Array(n).fill(false); + } + + // 1*n (filled by false) + const center: boolean[] = new Array(n).fill(false); + + // tslint:disable-next-line:prefer-for-of + for (let x = 0; x < side.length; x++) { + for (let y = 0; y < side[x].length; y++) { + side[x][y] = rand(3) === 0; + } + } + + for (let i = 0; i < center.length; i++) { + center[i] = rand(3) === 0; + } + + // Draw + for (let x = 0; x < n; x++) { + for (let y = 0; y < n; y++) { + const isXCenter = x === ((n - 1) / 2); + if (isXCenter && !center[y]) continue; + + const isLeftSide = x < ((n - 1) / 2); + if (isLeftSide && !side[x][y]) continue; + + const isRightSide = x > ((n - 1) / 2); + if (isRightSide && !side[sideN - (x - sideN)][y]) continue; + + const actualX = margin + (cellSize * x); + const actualY = margin + (cellSize * y); + ctx.beginPath(); + ctx.fillRect(actualX, actualY, cellSize, cellSize); + } + } + + return p.encodePNGToStream(canvas, stream); +} diff --git a/src/misc/gen-id.ts b/src/misc/gen-id.ts new file mode 100644 index 000000000..8562767bf --- /dev/null +++ b/src/misc/gen-id.ts @@ -0,0 +1,21 @@ +import { ulid } from 'ulid'; +import { genAid } from './id/aid'; +import { genMeid } from './id/meid'; +import { genMeidg } from './id/meidg'; +import { genObjectId } from './id/object-id'; +import config from '../config'; + +const metohd = config.id.toLowerCase(); + +export function genId(date?: Date): string { + if (!date || (date > new Date())) date = new Date(); + + switch (metohd) { + case 'aid': return genAid(date); + case 'meid': return genMeid(date); + case 'meidg': return genMeidg(date); + case 'ulid': return ulid(date.getTime()); + case 'objectid': return genObjectId(date); + default: throw new Error('unrecognized id generation method'); + } +} diff --git a/packages/backend/src/misc/gen-key-pair.ts b/src/misc/gen-key-pair.ts similarity index 78% rename from packages/backend/src/misc/gen-key-pair.ts rename to src/misc/gen-key-pair.ts index e2ad59850..d4a8fa753 100644 --- a/packages/backend/src/misc/gen-key-pair.ts +++ b/src/misc/gen-key-pair.ts @@ -1,5 +1,5 @@ -import * as crypto from 'node:crypto'; -import * as util from 'node:util'; +import * as crypto from 'crypto'; +import * as util from 'util'; const generateKeyPair = util.promisify(crypto.generateKeyPair); @@ -8,14 +8,14 @@ export async function genRsaKeyPair(modulusLength = 2048) { modulusLength, publicKeyEncoding: { type: 'spki', - format: 'pem', + format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem', cipher: undefined, - passphrase: undefined, - }, + passphrase: undefined + } }); } @@ -24,13 +24,13 @@ export async function genEcKeyPair(namedCurve: 'prime256v1' | 'secp384r1' | 'sec namedCurve, publicKeyEncoding: { type: 'spki', - format: 'pem', + format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem', cipher: undefined, - passphrase: undefined, - }, + passphrase: undefined + } }); } diff --git a/src/misc/get-file-info.ts b/src/misc/get-file-info.ts new file mode 100644 index 000000000..39ba54139 --- /dev/null +++ b/src/misc/get-file-info.ts @@ -0,0 +1,196 @@ +import * as fs from 'fs'; +import * as crypto from 'crypto'; +import * as stream from 'stream'; +import * as util from 'util'; +import * as fileType from 'file-type'; +import isSvg from 'is-svg'; +import * as probeImageSize from 'probe-image-size'; +import * as sharp from 'sharp'; +import { encode } from 'blurhash'; + +const pipeline = util.promisify(stream.pipeline); + +export type FileInfo = { + size: number; + md5: string; + type: { + mime: string; + ext: string | null; + }; + width?: number; + height?: number; + blurhash?: string; + warnings: string[]; +}; + +const TYPE_OCTET_STREAM = { + mime: 'application/octet-stream', + ext: null +}; + +const TYPE_SVG = { + mime: 'image/svg+xml', + ext: 'svg' +}; + +/** + * Get file information + */ +export async function getFileInfo(path: string): Promise { + const warnings = [] as string[]; + + const size = await getFileSize(path); + const md5 = await calcHash(path); + + let type = await detectType(path); + + // image dimensions + let width: number | undefined; + let height: number | undefined; + + if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/bmp', 'image/tiff', 'image/svg+xml', 'image/vnd.adobe.photoshop'].includes(type.mime)) { + const imageSize = await detectImageSize(path).catch(e => { + warnings.push(`detectImageSize failed: ${e}`); + return undefined; + }); + + // うまく判定できない画像は octet-stream にする + if (!imageSize) { + warnings.push(`cannot detect image dimensions`); + type = TYPE_OCTET_STREAM; + } else if (imageSize.wUnits === 'px') { + width = imageSize.width; + height = imageSize.height; + + // 制限を超えている画像は octet-stream にする + if (imageSize.width > 16383 || imageSize.height > 16383) { + warnings.push(`image dimensions exceeds limits`); + type = TYPE_OCTET_STREAM; + } + } else { + warnings.push(`unsupported unit type: ${imageSize.wUnits}`); + } + } + + let blurhash: string | undefined; + + if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/svg+xml'].includes(type.mime)) { + blurhash = await getBlurhash(path).catch(e => { + warnings.push(`getBlurhash failed: ${e}`); + return undefined; + }); + } + + return { + size, + md5, + type, + width, + height, + blurhash, + warnings, + }; +} + +/** + * Detect MIME Type and extension + */ +export async function detectType(path: string) { + // Check 0 byte + const fileSize = await getFileSize(path); + if (fileSize === 0) { + return TYPE_OCTET_STREAM; + } + + const type = await fileType.fromFile(path); + + if (type) { + // XMLはSVGかもしれない + if (type.mime === 'application/xml' && await checkSvg(path)) { + return TYPE_SVG; + } + + return { + mime: type.mime, + ext: type.ext + }; + } + + // 種類が不明でもSVGかもしれない + if (await checkSvg(path)) { + return TYPE_SVG; + } + + // それでも種類が不明なら application/octet-stream にする + return TYPE_OCTET_STREAM; +} + +/** + * Check the file is SVG or not + */ +export async function checkSvg(path: string) { + try { + const size = await getFileSize(path); + if (size > 1 * 1024 * 1024) return false; + return isSvg(fs.readFileSync(path)); + } catch { + return false; + } +} + +/** + * Get file size + */ +export async function getFileSize(path: string): Promise { + const getStat = util.promisify(fs.stat); + return (await getStat(path)).size; +} + +/** + * Calculate MD5 hash + */ +async function calcHash(path: string): Promise { + const hash = crypto.createHash('md5').setEncoding('hex'); + await pipeline(fs.createReadStream(path), hash); + return hash.read(); +} + +/** + * Detect dimensions of image + */ +async function detectImageSize(path: string): Promise<{ + width: number; + height: number; + wUnits: string; + hUnits: string; +}> { + const readable = fs.createReadStream(path); + const imageSize = await probeImageSize(readable); + readable.destroy(); + return imageSize; +} + +/** + * Calculate average color of image + */ +function getBlurhash(path: string): Promise { + return new Promise((resolve, reject) => { + sharp(path) + .raw() + .ensureAlpha() + .resize(64, 64, { fit: 'inside' }) + .toBuffer((err, buffer, { width, height }) => { + if (err) return reject(err); + + let hash; + + try { + hash = encode(new Uint8ClampedArray(buffer), width, height, 7, 7); + } catch (e) { + return reject(e); + } + + resolve(hash); + }); + }); +} diff --git a/src/misc/get-note-summary.ts b/src/misc/get-note-summary.ts new file mode 100644 index 000000000..7db8bca3e --- /dev/null +++ b/src/misc/get-note-summary.ts @@ -0,0 +1,54 @@ +/** + * 投稿を表す文字列を取得します。 + * @param {*} note (packされた)投稿 + */ +const summarize = (note: any, locale: any): string => { + if (note.deletedAt) { + return `(${locale['deletedNote']})`; + } + + if (note.isHidden) { + return `(${locale['invisibleNote']})`; + } + + let summary = ''; + + // 本文 + if (note.cw != null) { + summary += note.cw; + } else { + summary += note.text ? note.text : ''; + } + + // ファイルが添付されているとき + if ((note.files || []).length != 0) { + summary += ` (${locale['withNFiles'].replace('{n}', note.files.length)})`; + } + + // 投票が添付されているとき + if (note.poll) { + summary += ` (${locale['poll']})`; + } + + // 返信のとき + if (note.replyId) { + if (note.reply) { + summary += `\n\nRE: ${summarize(note.reply, locale)}`; + } else { + summary += '\n\nRE: ...'; + } + } + + // Renoteのとき + if (note.renoteId) { + if (note.renote) { + summary += `\n\nRN: ${summarize(note.renote, locale)}`; + } else { + summary += '\n\nRN: ...'; + } + } + + return summary.trim(); +}; + +export default summarize; diff --git a/src/misc/get-notification-summary.ts b/src/misc/get-notification-summary.ts new file mode 100644 index 000000000..b20711c60 --- /dev/null +++ b/src/misc/get-notification-summary.ts @@ -0,0 +1,28 @@ +import getUserName from './get-user-name'; +import getNoteSummary from './get-note-summary'; +import getReactionEmoji from './get-reaction-emoji'; + +/** + * 通知を表す文字列を取得します。 + * @param notification 通知 + */ +export default function(notification: any): string { + switch (notification.type) { + case 'follow': + return `${getUserName(notification.user)}にフォローされました`; + case 'mention': + return `言及されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`; + case 'reply': + return `返信されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`; + case 'renote': + return `Renoteされました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`; + case 'quote': + return `引用されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`; + case 'reaction': + return `リアクションされました:\n${getUserName(notification.user)} <${getReactionEmoji(notification.reaction)}>「${getNoteSummary(notification.note)}」`; + case 'pollVote': + return `投票されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`; + default: + return `<不明な通知タイプ: ${notification.type}>`; + } +} diff --git a/packages/backend/src/misc/get-reaction-emoji.ts b/src/misc/get-reaction-emoji.ts similarity index 100% rename from packages/backend/src/misc/get-reaction-emoji.ts rename to src/misc/get-reaction-emoji.ts diff --git a/src/misc/get-user-name.ts b/src/misc/get-user-name.ts new file mode 100644 index 000000000..b6b45118b --- /dev/null +++ b/src/misc/get-user-name.ts @@ -0,0 +1,5 @@ +import { User } from '../models/entities/user'; + +export default function(user: User): string { + return user.name || user.username; +} diff --git a/src/misc/hard-limits.ts b/src/misc/hard-limits.ts new file mode 100644 index 000000000..2a61cb321 --- /dev/null +++ b/src/misc/hard-limits.ts @@ -0,0 +1,8 @@ + +// If you change DB_* values, you must also change the DB schema. + +/** + * Maximum note text length that can be stored in DB. + * Surrogate pairs count as one + */ +export const DB_MAX_NOTE_TEXT_LENGTH = 8192; diff --git a/packages/backend/src/misc/id/aid.ts b/src/misc/id/aid.ts similarity index 94% rename from packages/backend/src/misc/id/aid.ts rename to src/misc/id/aid.ts index 87e688826..2bcde90bf 100644 --- a/packages/backend/src/misc/id/aid.ts +++ b/src/misc/id/aid.ts @@ -1,7 +1,7 @@ // AID // 長さ8の[2000年1月1日からの経過ミリ秒をbase36でエンコードしたもの] + 長さ2の[ノイズ文字列] -import * as crypto from 'node:crypto'; +import * as crypto from 'crypto'; const TIME2000 = 946684800000; let counter = crypto.randomBytes(2).readUInt16LE(0); diff --git a/packages/backend/src/misc/id/meid.ts b/src/misc/id/meid.ts similarity index 100% rename from packages/backend/src/misc/id/meid.ts rename to src/misc/id/meid.ts diff --git a/packages/backend/src/misc/id/meidg.ts b/src/misc/id/meidg.ts similarity index 100% rename from packages/backend/src/misc/id/meidg.ts rename to src/misc/id/meidg.ts diff --git a/packages/backend/src/misc/id/object-id.ts b/src/misc/id/object-id.ts similarity index 100% rename from packages/backend/src/misc/id/object-id.ts rename to src/misc/id/object-id.ts diff --git a/packages/backend/src/misc/identifiable-error.ts b/src/misc/identifiable-error.ts similarity index 100% rename from packages/backend/src/misc/identifiable-error.ts rename to src/misc/identifiable-error.ts diff --git a/src/misc/is-duplicate-key-value-error.ts b/src/misc/is-duplicate-key-value-error.ts new file mode 100644 index 000000000..23d8ceb1b --- /dev/null +++ b/src/misc/is-duplicate-key-value-error.ts @@ -0,0 +1,3 @@ +export function isDuplicateKeyValueError(e: Error): boolean { + return e.message.startsWith('duplicate key value'); +} diff --git a/src/misc/is-muted-user-related.ts b/src/misc/is-muted-user-related.ts new file mode 100644 index 000000000..6f074bcb9 --- /dev/null +++ b/src/misc/is-muted-user-related.ts @@ -0,0 +1,15 @@ +export function isMutedUserRelated(note: any, mutedUserIds: string[]): boolean { + if (mutedUserIds.includes(note.userId)) { + return true; + } + + if (note.reply != null && mutedUserIds.includes(note.reply.userId)) { + return true; + } + + if (note.renote != null && mutedUserIds.includes(note.renote.userId)) { + return true; + } + + return false; +} diff --git a/packages/backend/src/misc/is-quote.ts b/src/misc/is-quote.ts similarity index 77% rename from packages/backend/src/misc/is-quote.ts rename to src/misc/is-quote.ts index 779f548b0..0a2a72f4a 100644 --- a/packages/backend/src/misc/is-quote.ts +++ b/src/misc/is-quote.ts @@ -1,4 +1,4 @@ -import { Note } from '@/models/entities/note.js'; +import { Note } from '../models/entities/note'; export default function(note: Note): boolean { return note.renoteId != null && (note.text != null || note.hasPoll || (note.fileIds != null && note.fileIds.length > 0)); diff --git a/src/misc/license.ts b/src/misc/license.ts new file mode 100644 index 000000000..d36af665c --- /dev/null +++ b/src/misc/license.ts @@ -0,0 +1,13 @@ +import * as fs from 'fs'; + +const license = fs.readFileSync(__dirname + '/../../LICENSE', 'utf-8'); + +const licenseHtml = license + .replace(/\r\n/g, '\n') + .replace(/(.)\n(.)/g, '$1 $2') + .replace(/(^|\n)(.*?)($|\n)/g, '

$2

'); + +export { + license, + licenseHtml +}; diff --git a/packages/backend/src/misc/nyaize.ts b/src/misc/nyaize.ts similarity index 100% rename from packages/backend/src/misc/nyaize.ts rename to src/misc/nyaize.ts diff --git a/src/misc/reaction-lib.ts b/src/misc/reaction-lib.ts new file mode 100644 index 000000000..b393154d9 --- /dev/null +++ b/src/misc/reaction-lib.ts @@ -0,0 +1,129 @@ +import { emojiRegex } from './emoji-regex'; +import { fetchMeta } from './fetch-meta'; +import { Emojis } from '../models'; +import { toPunyNullable } from './convert-host'; + +const legacies: Record = { + 'like': '👍', + 'love': '❤', // ここに記述する場合は異体字セレクタを入れない + 'laugh': '😆', + 'hmm': '🤔', + 'surprise': '😮', + 'congrats': '🎉', + 'angry': '💢', + 'confused': '😥', + 'rip': '😇', + 'pudding': '🍮', + 'star': '⭐', +}; + +export async function getFallbackReaction(): Promise { + const meta = await fetchMeta(); + return meta.useStarForReactionFallback ? '⭐' : '👍'; +} + +export function convertLegacyReactions(reactions: Record) { + const _reactions = {} as Record; + + for (const reaction of Object.keys(reactions)) { + if (reactions[reaction] <= 0) continue; + + if (Object.keys(legacies).includes(reaction)) { + if (_reactions[legacies[reaction]]) { + _reactions[legacies[reaction]] += reactions[reaction]; + } else { + _reactions[legacies[reaction]] = reactions[reaction]; + } + } else { + if (_reactions[reaction]) { + _reactions[reaction] += reactions[reaction]; + } else { + _reactions[reaction] = reactions[reaction]; + } + } + } + + const _reactions2 = {} as Record; + + for (const reaction of Object.keys(_reactions)) { + _reactions2[decodeReaction(reaction).reaction] = _reactions[reaction]; + } + + return _reactions2; +} + +export async function toDbReaction(reaction?: string | null, reacterHost?: string | null): Promise { + if (reaction == null) return await getFallbackReaction(); + + reacterHost = toPunyNullable(reacterHost); + + // 文字列タイプのリアクションを絵文字に変換 + if (Object.keys(legacies).includes(reaction)) return legacies[reaction]; + + // Unicode絵文字 + const match = emojiRegex.exec(reaction); + if (match) { + // 合字を含む1つの絵文字 + const unicode = match[0]; + + // 異体字セレクタ除去 + return unicode.match('\u200d') ? unicode : unicode.replace(/\ufe0f/g, ''); + } + + const custom = reaction.match(/^:([\w+-]+)(?:@\.)?:$/); + if (custom) { + const name = custom[1]; + const emoji = await Emojis.findOne({ + host: reacterHost || null, + name, + }); + + if (emoji) return reacterHost ? `:${name}@${reacterHost}:` : `:${name}:`; + } + + return await getFallbackReaction(); +} + +type DecodedReaction = { + /** + * リアクション名 (Unicode Emoji or ':name@hostname' or ':name@.') + */ + reaction: string; + + /** + * name (カスタム絵文字の場合name, Emojiクエリに使う) + */ + name?: string; + + /** + * host (カスタム絵文字の場合host, Emojiクエリに使う) + */ + host?: string | null; +}; + +export function decodeReaction(str: string): DecodedReaction { + const custom = str.match(/^:([\w+-]+)(?:@([\w.-]+))?:$/); + + if (custom) { + const name = custom[1]; + const host = custom[2] || null; + + return { + reaction: `:${name}@${host || '.'}:`, // ローカル分は@以降を省略するのではなく.にする + name, + host + }; + } + + return { + reaction: str, + name: undefined, + host: undefined + }; +} + +export function convertLegacyReaction(reaction: string): string { + reaction = decodeReaction(reaction).reaction; + if (Object.keys(legacies).includes(reaction)) return legacies[reaction]; + return reaction; +} diff --git a/packages/backend/src/misc/safe-for-sql.ts b/src/misc/safe-for-sql.ts similarity index 100% rename from packages/backend/src/misc/safe-for-sql.ts rename to src/misc/safe-for-sql.ts diff --git a/src/misc/schema.ts b/src/misc/schema.ts new file mode 100644 index 000000000..e14e6e0dd --- /dev/null +++ b/src/misc/schema.ts @@ -0,0 +1,53 @@ +export type Schema = { + type: 'boolean' | 'number' | 'string' | 'array' | 'object' | 'any'; + nullable: boolean; + optional: boolean; + items?: Schema; + properties?: Obj; + description?: string; + example?: any; + format?: string; + ref?: string; + enum?: string[]; +}; + +type NonUndefinedPropertyNames = { + [K in keyof T]: T[K]['optional'] extends true ? never : K +}[keyof T]; + +type UndefinedPropertyNames = { + [K in keyof T]: T[K]['optional'] extends true ? K : never +}[keyof T]; + +type OnlyRequired = Pick>; +type OnlyOptional = Pick>; + +export type Obj = { [key: string]: Schema }; + +export type ObjType = + { [P in keyof OnlyOptional]?: SchemaType } & + { [P in keyof OnlyRequired]: SchemaType }; + +// https://qiita.com/hrsh7th@github/items/84e8968c3601009cdcf2 +type MyType = { + 0: any; + 1: SchemaType; +}[T extends Schema ? 1 : 0]; + +type NullOrUndefined

= + p['nullable'] extends true + ? p['optional'] extends true + ? (T | null | undefined) + : (T | null) + : p['optional'] extends true + ? (T | undefined) + : T; + +export type SchemaType

= + p['type'] extends 'number' ? NullOrUndefined : + p['type'] extends 'string' ? NullOrUndefined : + p['type'] extends 'boolean' ? NullOrUndefined : + p['type'] extends 'array' ? NullOrUndefined>[]> : + p['type'] extends 'object' ? NullOrUndefined>> : + p['type'] extends 'any' ? NullOrUndefined : + any; diff --git a/packages/backend/src/misc/secure-rndstr.ts b/src/misc/secure-rndstr.ts similarity index 93% rename from packages/backend/src/misc/secure-rndstr.ts rename to src/misc/secure-rndstr.ts index 8d4fcb1ba..76ee1225e 100644 --- a/packages/backend/src/misc/secure-rndstr.ts +++ b/src/misc/secure-rndstr.ts @@ -1,4 +1,4 @@ -import * as crypto from 'node:crypto'; +import * as crypto from 'crypto'; const L_CHARS = '0123456789abcdefghijklmnopqrstuvwxyz'; const LU_CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; diff --git a/packages/backend/src/misc/show-machine-info.ts b/src/misc/show-machine-info.ts similarity index 81% rename from packages/backend/src/misc/show-machine-info.ts rename to src/misc/show-machine-info.ts index bc71cfbe9..2aae019be 100644 --- a/packages/backend/src/misc/show-machine-info.ts +++ b/src/misc/show-machine-info.ts @@ -1,6 +1,6 @@ -import * as os from 'node:os'; -import sysUtils from 'systeminformation'; -import Logger from '@/services/logger.js'; +import * as os from 'os'; +import * as sysUtils from 'systeminformation'; +import Logger from '../services/logger'; export async function showMachineInfo(parentLogger: Logger) { const logger = parentLogger.createSubLogger('machine'); diff --git a/src/misc/twemoji-base.ts b/src/misc/twemoji-base.ts new file mode 100644 index 000000000..e08556bd4 --- /dev/null +++ b/src/misc/twemoji-base.ts @@ -0,0 +1 @@ +export const twemojiSvgBase = 'https://twemoji.maxcdn.com/v/latest/svg'; diff --git a/src/models/entities/abuse-user-report.ts b/src/models/entities/abuse-user-report.ts new file mode 100644 index 000000000..c0cff139f --- /dev/null +++ b/src/models/entities/abuse-user-report.ts @@ -0,0 +1,74 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class AbuseUserReport { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the AbuseUserReport.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public targetUserId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public targetUser: User | null; + + @Index() + @Column(id()) + public reporterId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public reporter: User | null; + + @Column({ + ...id(), + nullable: true + }) + public assigneeId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public assignee: User | null; + + @Index() + @Column('boolean', { + default: false + }) + public resolved: boolean; + + @Column('varchar', { + length: 2048, + }) + public comment: string; + + //#region Denormalized fields + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public targetUserHost: string | null; + + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public reporterHost: string | null; + //#endregion +} diff --git a/packages/backend/src/models/entities/access-token.ts b/src/models/entities/access-token.ts similarity index 78% rename from packages/backend/src/models/entities/access-token.ts rename to src/models/entities/access-token.ts index c6e2141a4..5f41b3c1f 100644 --- a/packages/backend/src/models/entities/access-token.ts +++ b/src/models/entities/access-token.ts @@ -1,7 +1,7 @@ import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm'; -import { User } from './user.js'; -import { App } from './app.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { App } from './app'; +import { id } from '../id'; @Entity() export class AccessToken { @@ -9,18 +9,19 @@ export class AccessToken { public id: string; @Column('timestamp with time zone', { - comment: 'The created date of the AccessToken.', + comment: 'The created date of the AccessToken.' }) public createdAt: Date; @Column('timestamp with time zone', { nullable: true, + default: null, }) public lastUsedAt: Date | null; @Index() @Column('varchar', { - length: 128, + length: 128 }) public token: string; @@ -28,12 +29,13 @@ export class AccessToken { @Column('varchar', { length: 128, nullable: true, + default: null }) public session: string | null; @Index() @Column('varchar', { - length: 128, + length: 128 }) public hash: string; @@ -42,7 +44,7 @@ export class AccessToken { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; @@ -50,11 +52,12 @@ export class AccessToken { @Column({ ...id(), nullable: true, + default: null }) public appId: App['id'] | null; @ManyToOne(type => App, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public app: App | null; @@ -62,29 +65,32 @@ export class AccessToken { @Column('varchar', { length: 128, nullable: true, + default: null }) public name: string | null; @Column('varchar', { length: 512, nullable: true, + default: null }) public description: string | null; @Column('varchar', { length: 512, nullable: true, + default: null }) public iconUrl: string | null; @Column('varchar', { length: 64, array: true, - default: '{}', + default: '{}' }) public permission: string[]; @Column('boolean', { - default: false, + default: false }) public fetched: boolean; } diff --git a/src/models/entities/announcement-read.ts b/src/models/entities/announcement-read.ts new file mode 100644 index 000000000..892beb826 --- /dev/null +++ b/src/models/entities/announcement-read.ts @@ -0,0 +1,36 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { Announcement } from './announcement'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'announcementId'], { unique: true }) +export class AnnouncementRead { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the AnnouncementRead.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column(id()) + public announcementId: Announcement['id']; + + @ManyToOne(type => Announcement, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public announcement: Announcement | null; +} diff --git a/packages/backend/src/models/entities/announcement.ts b/src/models/entities/announcement.ts similarity index 77% rename from packages/backend/src/models/entities/announcement.ts rename to src/models/entities/announcement.ts index beb2f8246..06d379c22 100644 --- a/packages/backend/src/models/entities/announcement.ts +++ b/src/models/entities/announcement.ts @@ -1,5 +1,5 @@ import { Entity, Index, Column, PrimaryColumn } from 'typeorm'; -import { id } from '../id.js'; +import { id } from '../id'; @Entity() export class Announcement { @@ -8,28 +8,28 @@ export class Announcement { @Index() @Column('timestamp with time zone', { - comment: 'The created date of the Announcement.', + comment: 'The created date of the Announcement.' }) public createdAt: Date; @Column('timestamp with time zone', { comment: 'The updated date of the Announcement.', - nullable: true, + nullable: true }) public updatedAt: Date | null; @Column('varchar', { - length: 8192, nullable: false, + length: 8192, nullable: false }) public text: string; @Column('varchar', { - length: 256, nullable: false, + length: 256, nullable: false }) public title: string; @Column('varchar', { - length: 1024, nullable: true, + length: 1024, nullable: true }) public imageUrl: string | null; diff --git a/src/models/entities/antenna-note.ts b/src/models/entities/antenna-note.ts new file mode 100644 index 000000000..9b911524e --- /dev/null +++ b/src/models/entities/antenna-note.ts @@ -0,0 +1,43 @@ +import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; +import { Note } from './note'; +import { Antenna } from './antenna'; +import { id } from '../id'; + +@Entity() +@Index(['noteId', 'antennaId'], { unique: true }) +export class AntennaNote { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column({ + ...id(), + comment: 'The note ID.' + }) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Index() + @Column({ + ...id(), + comment: 'The antenna ID.' + }) + public antennaId: Antenna['id']; + + @ManyToOne(type => Antenna, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public antenna: Antenna | null; + + @Index() + @Column('boolean', { + default: false + }) + public read: boolean; +} diff --git a/src/models/entities/antenna.ts b/src/models/entities/antenna.ts new file mode 100644 index 000000000..bcfe09a82 --- /dev/null +++ b/src/models/entities/antenna.ts @@ -0,0 +1,99 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { UserList } from './user-list'; +import { UserGroupJoining } from './user-group-joining'; + +@Entity() +export class Antenna { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the Antenna.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The owner ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, + comment: 'The name of the Antenna.' + }) + public name: string; + + @Column('enum', { enum: ['home', 'all', 'users', 'list', 'group'] }) + public src: 'home' | 'all' | 'users' | 'list' | 'group'; + + @Column({ + ...id(), + nullable: true + }) + public userListId: UserList['id'] | null; + + @ManyToOne(type => UserList, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userList: UserList | null; + + @Column({ + ...id(), + nullable: true + }) + public userGroupJoiningId: UserGroupJoining['id'] | null; + + @ManyToOne(type => UserGroupJoining, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userGroupJoining: UserGroupJoining | null; + + @Column('varchar', { + length: 1024, array: true, + default: '{}' + }) + public users: string[]; + + @Column('jsonb', { + default: [] + }) + public keywords: string[][]; + + @Column('jsonb', { + default: [] + }) + public excludeKeywords: string[][]; + + @Column('boolean', { + default: false + }) + public caseSensitive: boolean; + + @Column('boolean', { + default: false + }) + public withReplies: boolean; + + @Column('boolean') + public withFile: boolean; + + @Column('varchar', { + length: 2048, nullable: true, + }) + public expression: string | null; + + @Column('boolean') + public notify: boolean; +} diff --git a/src/models/entities/app.ts b/src/models/entities/app.ts new file mode 100644 index 000000000..ea8754631 --- /dev/null +++ b/src/models/entities/app.ts @@ -0,0 +1,60 @@ +import { Entity, PrimaryColumn, Column, Index, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class App { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the App.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The owner ID.' + }) + public userId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'SET NULL', + nullable: true, + }) + public user: User | null; + + @Index() + @Column('varchar', { + length: 64, + comment: 'The secret key of the App.' + }) + public secret: string; + + @Column('varchar', { + length: 128, + comment: 'The name of the App.' + }) + public name: string; + + @Column('varchar', { + length: 512, + comment: 'The description of the App.' + }) + public description: string; + + @Column('varchar', { + length: 64, array: true, + comment: 'The permission of the App.' + }) + public permission: string[]; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The callbackUrl of the App.' + }) + public callbackUrl: string | null; +} diff --git a/packages/backend/src/models/entities/attestation-challenge.ts b/src/models/entities/attestation-challenge.ts similarity index 84% rename from packages/backend/src/models/entities/attestation-challenge.ts rename to src/models/entities/attestation-challenge.ts index c40df2329..942747c02 100644 --- a/packages/backend/src/models/entities/attestation-challenge.ts +++ b/src/models/entities/attestation-challenge.ts @@ -1,6 +1,6 @@ import { PrimaryColumn, Entity, JoinColumn, Column, ManyToOne, Index } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class AttestationChallenge { @@ -12,7 +12,7 @@ export class AttestationChallenge { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; @@ -20,19 +20,19 @@ export class AttestationChallenge { @Index() @Column('varchar', { length: 64, - comment: 'Hex-encoded sha256 hash of the challenge.', + comment: 'Hex-encoded sha256 hash of the challenge.' }) public challenge: string; @Column('timestamp with time zone', { - comment: 'The date challenge was created for expiry purposes.', + comment: 'The date challenge was created for expiry purposes.' }) public createdAt: Date; @Column('boolean', { comment: 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.', - default: false, + default: false }) public registrationChallenge: boolean; diff --git a/src/models/entities/auth-session.ts b/src/models/entities/auth-session.ts new file mode 100644 index 000000000..4eec27e3f --- /dev/null +++ b/src/models/entities/auth-session.ts @@ -0,0 +1,43 @@ +import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm'; +import { User } from './user'; +import { App } from './app'; +import { id } from '../id'; + +@Entity() +export class AuthSession { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the AuthSession.' + }) + public createdAt: Date; + + @Index() + @Column('varchar', { + length: 128 + }) + public token: string; + + @Column({ + ...id(), + nullable: true + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE', + nullable: true + }) + @JoinColumn() + public user: User | null; + + @Column(id()) + public appId: App['id']; + + @ManyToOne(type => App, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public app: App | null; +} diff --git a/src/models/entities/blocking.ts b/src/models/entities/blocking.ts new file mode 100644 index 000000000..48487cb08 --- /dev/null +++ b/src/models/entities/blocking.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['blockerId', 'blockeeId'], { unique: true }) +export class Blocking { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Blocking.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The blockee user ID.' + }) + public blockeeId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public blockee: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The blocker user ID.' + }) + public blockerId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public blocker: User | null; +} diff --git a/src/models/entities/channel-following.ts b/src/models/entities/channel-following.ts new file mode 100644 index 000000000..fca801e5a --- /dev/null +++ b/src/models/entities/channel-following.ts @@ -0,0 +1,43 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { Channel } from './channel'; + +@Entity() +@Index(['followerId', 'followeeId'], { unique: true }) +export class ChannelFollowing { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the ChannelFollowing.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The followee channel ID.' + }) + public followeeId: Channel['id']; + + @ManyToOne(type => Channel, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public followee: Channel | null; + + @Index() + @Column({ + ...id(), + comment: 'The follower user ID.' + }) + public followerId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public follower: User | null; +} diff --git a/src/models/entities/channel-note-pining.ts b/src/models/entities/channel-note-pining.ts new file mode 100644 index 000000000..26a7eb501 --- /dev/null +++ b/src/models/entities/channel-note-pining.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { Note } from './note'; +import { Channel } from './channel'; +import { id } from '../id'; + +@Entity() +@Index(['channelId', 'noteId'], { unique: true }) +export class ChannelNotePining { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the ChannelNotePining.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public channelId: Channel['id']; + + @ManyToOne(type => Channel, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public channel: Channel | null; + + @Column(id()) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; +} diff --git a/src/models/entities/channel.ts b/src/models/entities/channel.ts new file mode 100644 index 000000000..1868f7514 --- /dev/null +++ b/src/models/entities/channel.ts @@ -0,0 +1,74 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { DriveFile } from './drive-file'; + +@Entity() +export class Channel { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Channel.' + }) + public createdAt: Date; + + @Index() + @Column('timestamp with time zone', { + nullable: true + }) + public lastNotedAt: Date | null; + + @Index() + @Column({ + ...id(), + comment: 'The owner ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, + comment: 'The name of the Channel.' + }) + public name: string; + + @Column('varchar', { + length: 2048, nullable: true, + comment: 'The description of the Channel.' + }) + public description: string | null; + + @Column({ + ...id(), + nullable: true, + comment: 'The ID of banner Channel.' + }) + public bannerId: DriveFile['id'] | null; + + @ManyToOne(type => DriveFile, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public banner: DriveFile | null; + + @Index() + @Column('integer', { + default: 0, + comment: 'The count of notes.' + }) + public notesCount: number; + + @Index() + @Column('integer', { + default: 0, + comment: 'The count of users.' + }) + public usersCount: number; +} diff --git a/src/models/entities/clip-note.ts b/src/models/entities/clip-note.ts new file mode 100644 index 000000000..7d96b2ef7 --- /dev/null +++ b/src/models/entities/clip-note.ts @@ -0,0 +1,37 @@ +import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; +import { Note } from './note'; +import { Clip } from './clip'; +import { id } from '../id'; + +@Entity() +@Index(['noteId', 'clipId'], { unique: true }) +export class ClipNote { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column({ + ...id(), + comment: 'The note ID.' + }) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Index() + @Column({ + ...id(), + comment: 'The clip ID.' + }) + public clipId: Clip['id']; + + @ManyToOne(type => Clip, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public clip: Clip | null; +} diff --git a/src/models/entities/clip.ts b/src/models/entities/clip.ts new file mode 100644 index 000000000..66b5b8847 --- /dev/null +++ b/src/models/entities/clip.ts @@ -0,0 +1,44 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class Clip { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the Clip.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The owner ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, + comment: 'The name of the Clip.' + }) + public name: string; + + @Column('boolean', { + default: false + }) + public isPublic: boolean; + + @Column('varchar', { + length: 2048, nullable: true, default: null, + comment: 'The description of the Clip.' + }) + public description: string | null; +} diff --git a/src/models/entities/drive-file.ts b/src/models/entities/drive-file.ts new file mode 100644 index 000000000..680a40bc0 --- /dev/null +++ b/src/models/entities/drive-file.ts @@ -0,0 +1,164 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { DriveFolder } from './drive-folder'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'folderId', 'id']) +export class DriveFile { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the DriveFile.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The owner ID.' + }) + public userId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: 'The host of owner. It will be null if the user in local.' + }) + public userHost: string | null; + + @Index() + @Column('varchar', { + length: 32, + comment: 'The MD5 hash of the DriveFile.' + }) + public md5: string; + + @Column('varchar', { + length: 256, + comment: 'The file name of the DriveFile.' + }) + public name: string; + + @Index() + @Column('varchar', { + length: 128, + comment: 'The content type (MIME) of the DriveFile.' + }) + public type: string; + + @Column('integer', { + comment: 'The file size (bytes) of the DriveFile.' + }) + public size: number; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The comment of the DriveFile.' + }) + public comment: string | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'The BlurHash string.' + }) + public blurhash: string | null; + + @Column('jsonb', { + default: {}, + comment: 'The any properties of the DriveFile. For example, it includes image width/height.' + }) + public properties: Record; + + @Index() + @Column('boolean') + public storedInternal: boolean; + + @Column('varchar', { + length: 512, + comment: 'The URL of the DriveFile.' + }) + public url: string; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URL of the thumbnail of the DriveFile.' + }) + public thumbnailUrl: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URL of the webpublic of the DriveFile.' + }) + public webpublicUrl: string | null; + + @Index({ unique: true }) + @Column('varchar', { + length: 256, nullable: true, + }) + public accessKey: string | null; + + @Index({ unique: true }) + @Column('varchar', { + length: 256, nullable: true, + }) + public thumbnailAccessKey: string | null; + + @Index({ unique: true }) + @Column('varchar', { + length: 256, nullable: true, + }) + public webpublicAccessKey: string | null; + + @Index() + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URI of the DriveFile. it will be null when the DriveFile is local.' + }) + public uri: string | null; + + @Column('varchar', { + length: 512, nullable: true, + }) + public src: string | null; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The parent folder ID. If null, it means the DriveFile is located in root.' + }) + public folderId: DriveFolder['id'] | null; + + @ManyToOne(type => DriveFolder, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public folder: DriveFolder | null; + + @Index() + @Column('boolean', { + default: false, + comment: 'Whether the DriveFile is NSFW.' + }) + public isSensitive: boolean; + + /** + * 外部の(信頼されていない)URLへの直リンクか否か + */ + @Index() + @Column('boolean', { + default: false, + comment: 'Whether the DriveFile is direct link to remote server.' + }) + public isLink: boolean; +} diff --git a/src/models/entities/drive-folder.ts b/src/models/entities/drive-folder.ts new file mode 100644 index 000000000..a80d07585 --- /dev/null +++ b/src/models/entities/drive-folder.ts @@ -0,0 +1,49 @@ +import { JoinColumn, ManyToOne, Entity, PrimaryColumn, Index, Column } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class DriveFolder { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the DriveFolder.' + }) + public createdAt: Date; + + @Column('varchar', { + length: 128, + comment: 'The name of the DriveFolder.' + }) + public name: string; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The owner ID.' + }) + public userId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The parent folder ID. If null, it means the DriveFolder is located in root.' + }) + public parentId: DriveFolder['id'] | null; + + @ManyToOne(type => DriveFolder, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public parent: DriveFolder | null; +} diff --git a/src/models/entities/emoji.ts b/src/models/entities/emoji.ts new file mode 100644 index 000000000..d6080ae09 --- /dev/null +++ b/src/models/entities/emoji.ts @@ -0,0 +1,51 @@ +import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; +import { id } from '../id'; + +@Entity() +@Index(['name', 'host'], { unique: true }) +export class Emoji { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + nullable: true + }) + public updatedAt: Date | null; + + @Index() + @Column('varchar', { + length: 128 + }) + public name: string; + + @Index() + @Column('varchar', { + length: 128, nullable: true + }) + public host: string | null; + + @Column('varchar', { + length: 128, nullable: true + }) + public category: string | null; + + @Column('varchar', { + length: 512, + }) + public url: string; + + @Column('varchar', { + length: 512, nullable: true + }) + public uri: string | null; + + @Column('varchar', { + length: 64, nullable: true + }) + public type: string | null; + + @Column('varchar', { + array: true, length: 128, default: '{}' + }) + public aliases: string[]; +} diff --git a/src/models/entities/follow-request.ts b/src/models/entities/follow-request.ts new file mode 100644 index 000000000..22ec26396 --- /dev/null +++ b/src/models/entities/follow-request.ts @@ -0,0 +1,85 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['followerId', 'followeeId'], { unique: true }) +export class FollowRequest { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the FollowRequest.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The followee user ID.' + }) + public followeeId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public followee: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The follower user ID.' + }) + public followerId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public follower: User | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'id of Follow Activity.' + }) + public requestId: string | null; + + //#region Denormalized fields + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public followerHost: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followerInbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followerSharedInbox: string | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public followeeHost: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followeeInbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followeeSharedInbox: string | null; + //#endregion +} diff --git a/src/models/entities/following.ts b/src/models/entities/following.ts new file mode 100644 index 000000000..ee3286a1a --- /dev/null +++ b/src/models/entities/following.ts @@ -0,0 +1,80 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['followerId', 'followeeId'], { unique: true }) +export class Following { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Following.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The followee user ID.' + }) + public followeeId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public followee: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The follower user ID.' + }) + public followerId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public follower: User | null; + + //#region Denormalized fields + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public followerHost: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followerInbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followerSharedInbox: string | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public followeeHost: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followeeInbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: '[Denormalized]' + }) + public followeeSharedInbox: string | null; + //#endregion +} diff --git a/src/models/entities/games/reversi/game.ts b/src/models/entities/games/reversi/game.ts new file mode 100644 index 000000000..9deacaf5c --- /dev/null +++ b/src/models/entities/games/reversi/game.ts @@ -0,0 +1,133 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from '../../user'; +import { id } from '../../../id'; + +@Entity() +export class ReversiGame { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the ReversiGame.' + }) + public createdAt: Date; + + @Column('timestamp with time zone', { + nullable: true, + comment: 'The started date of the ReversiGame.' + }) + public startedAt: Date | null; + + @Column(id()) + public user1Id: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user1: User | null; + + @Column(id()) + public user2Id: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user2: User | null; + + @Column('boolean', { + default: false, + }) + public user1Accepted: boolean; + + @Column('boolean', { + default: false, + }) + public user2Accepted: boolean; + + /** + * どちらのプレイヤーが先行(黒)か + * 1 ... user1 + * 2 ... user2 + */ + @Column('integer', { + nullable: true, + }) + public black: number | null; + + @Column('boolean', { + default: false, + }) + public isStarted: boolean; + + @Column('boolean', { + default: false, + }) + public isEnded: boolean; + + @Column({ + ...id(), + nullable: true + }) + public winnerId: User['id'] | null; + + @Column({ + ...id(), + nullable: true + }) + public surrendered: User['id'] | null; + + @Column('jsonb', { + default: [], + }) + public logs: { + at: Date; + color: boolean; + pos: number; + }[]; + + @Column('varchar', { + array: true, length: 64, + }) + public map: string[]; + + @Column('varchar', { + length: 32 + }) + public bw: string; + + @Column('boolean', { + default: false, + }) + public isLlotheo: boolean; + + @Column('boolean', { + default: false, + }) + public canPutEverywhere: boolean; + + @Column('boolean', { + default: false, + }) + public loopedBoard: boolean; + + @Column('jsonb', { + nullable: true, default: null, + }) + public form1: any | null; + + @Column('jsonb', { + nullable: true, default: null, + }) + public form2: any | null; + + /** + * ログのposを文字列としてすべて連結したもののCRC32値 + */ + @Column('varchar', { + length: 32, nullable: true + }) + public crc32: string | null; +} diff --git a/src/models/entities/games/reversi/matching.ts b/src/models/entities/games/reversi/matching.ts new file mode 100644 index 000000000..477a29316 --- /dev/null +++ b/src/models/entities/games/reversi/matching.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from '../../user'; +import { id } from '../../../id'; + +@Entity() +export class ReversiMatching { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the ReversiMatching.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public parentId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public parent: User | null; + + @Index() + @Column(id()) + public childId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public child: User | null; +} diff --git a/src/models/entities/hashtag.ts b/src/models/entities/hashtag.ts new file mode 100644 index 000000000..842cdaa56 --- /dev/null +++ b/src/models/entities/hashtag.ts @@ -0,0 +1,87 @@ +import { Entity, PrimaryColumn, Index, Column } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class Hashtag { + @PrimaryColumn(id()) + public id: string; + + @Index({ unique: true }) + @Column('varchar', { + length: 128 + }) + public name: string; + + @Column({ + ...id(), + array: true, + }) + public mentionedUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public mentionedUsersCount: number; + + @Column({ + ...id(), + array: true, + }) + public mentionedLocalUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public mentionedLocalUsersCount: number; + + @Column({ + ...id(), + array: true, + }) + public mentionedRemoteUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public mentionedRemoteUsersCount: number; + + @Column({ + ...id(), + array: true, + }) + public attachedUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public attachedUsersCount: number; + + @Column({ + ...id(), + array: true, + }) + public attachedLocalUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public attachedLocalUsersCount: number; + + @Column({ + ...id(), + array: true, + }) + public attachedRemoteUserIds: User['id'][]; + + @Index() + @Column('integer', { + default: 0 + }) + public attachedRemoteUsersCount: number; +} diff --git a/src/models/entities/instance.ts b/src/models/entities/instance.ts new file mode 100644 index 000000000..7c8719e06 --- /dev/null +++ b/src/models/entities/instance.ts @@ -0,0 +1,180 @@ +import { Entity, PrimaryColumn, Index, Column } from 'typeorm'; +import { id } from '../id'; + +@Entity() +export class Instance { + @PrimaryColumn(id()) + public id: string; + + /** + * このインスタンスを捕捉した日時 + */ + @Index() + @Column('timestamp with time zone', { + comment: 'The caught date of the Instance.' + }) + public caughtAt: Date; + + /** + * ホスト + */ + @Index({ unique: true }) + @Column('varchar', { + length: 128, + comment: 'The host of the Instance.' + }) + public host: string; + + /** + * インスタンスのユーザー数 + */ + @Column('integer', { + default: 0, + comment: 'The count of the users of the Instance.' + }) + public usersCount: number; + + /** + * インスタンスの投稿数 + */ + @Column('integer', { + default: 0, + comment: 'The count of the notes of the Instance.' + }) + public notesCount: number; + + /** + * このインスタンスのユーザーからフォローされている、自インスタンスのユーザーの数 + */ + @Column('integer', { + default: 0, + }) + public followingCount: number; + + /** + * このインスタンスのユーザーをフォローしている、自インスタンスのユーザーの数 + */ + @Column('integer', { + default: 0, + }) + public followersCount: number; + + /** + * ドライブ使用量 + */ + @Column('bigint', { + default: 0, + }) + public driveUsage: number; + + /** + * ドライブのファイル数 + */ + @Column('integer', { + default: 0, + }) + public driveFiles: number; + + /** + * 直近のリクエスト送信日時 + */ + @Column('timestamp with time zone', { + nullable: true, + }) + public latestRequestSentAt: Date | null; + + /** + * 直近のリクエスト送信時のHTTPステータスコード + */ + @Column('integer', { + nullable: true, + }) + public latestStatus: number | null; + + /** + * 直近のリクエスト受信日時 + */ + @Column('timestamp with time zone', { + nullable: true, + }) + public latestRequestReceivedAt: Date | null; + + /** + * このインスタンスと最後にやり取りした日時 + */ + @Column('timestamp with time zone') + public lastCommunicatedAt: Date; + + /** + * このインスタンスと不通かどうか + */ + @Column('boolean', { + default: false + }) + public isNotResponding: boolean; + + /** + * このインスタンスへの配信を停止するか + */ + @Index() + @Column('boolean', { + default: false + }) + public isSuspended: boolean; + + @Column('varchar', { + length: 64, nullable: true, default: null, + comment: 'The software of the Instance.' + }) + public softwareName: string | null; + + @Column('varchar', { + length: 64, nullable: true, default: null, + }) + public softwareVersion: string | null; + + @Column('boolean', { + nullable: true, default: null, + }) + public openRegistrations: boolean | null; + + @Column('varchar', { + length: 256, nullable: true, default: null, + }) + public name: string | null; + + @Column('varchar', { + length: 4096, nullable: true, default: null, + }) + public description: string | null; + + @Column('varchar', { + length: 128, nullable: true, default: null, + }) + public maintainerName: string | null; + + @Column('varchar', { + length: 256, nullable: true, default: null, + }) + public maintainerEmail: string | null; + + @Column('varchar', { + length: 256, nullable: true, default: null, + }) + public iconUrl: string | null; + + @Column('varchar', { + length: 256, nullable: true, default: null, + }) + public faviconUrl: string | null; + + @Column('varchar', { + length: 64, nullable: true, default: null, + }) + public themeColor: string | null; + + @Column('timestamp with time zone', { + nullable: true, + }) + public infoUpdatedAt: Date | null; +} diff --git a/src/models/entities/log.ts b/src/models/entities/log.ts new file mode 100644 index 000000000..182a9fbed --- /dev/null +++ b/src/models/entities/log.ts @@ -0,0 +1,46 @@ +import { Entity, PrimaryColumn, Index, Column } from 'typeorm'; +import { id } from '../id'; + +@Entity() +export class Log { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Log.' + }) + public createdAt: Date; + + @Index() + @Column('varchar', { + length: 64, array: true, default: '{}' + }) + public domain: string[]; + + @Index() + @Column('enum', { + enum: ['error', 'warning', 'info', 'success', 'debug'] + }) + public level: string; + + @Column('varchar', { + length: 8 + }) + public worker: string; + + @Column('varchar', { + length: 128 + }) + public machine: string; + + @Column('varchar', { + length: 2048 + }) + public message: string; + + @Column('jsonb', { + default: {} + }) + public data: Record; +} diff --git a/src/models/entities/messaging-message.ts b/src/models/entities/messaging-message.ts new file mode 100644 index 000000000..ac0764674 --- /dev/null +++ b/src/models/entities/messaging-message.ts @@ -0,0 +1,89 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { DriveFile } from './drive-file'; +import { id } from '../id'; +import { UserGroup } from './user-group'; + +@Entity() +export class MessagingMessage { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the MessagingMessage.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The sender user ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), nullable: true, + comment: 'The recipient user ID.' + }) + public recipientId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public recipient: User | null; + + @Index() + @Column({ + ...id(), nullable: true, + comment: 'The recipient group ID.' + }) + public groupId: UserGroup['id'] | null; + + @ManyToOne(type => UserGroup, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public group: UserGroup | null; + + @Column('varchar', { + length: 4096, nullable: true + }) + public text: string | null; + + @Column('boolean', { + default: false, + }) + public isRead: boolean; + + @Column('varchar', { + length: 512, nullable: true, + }) + public uri: string | null; + + @Column({ + ...id(), + array: true, default: '{}' + }) + public reads: User['id'][]; + + @Column({ + ...id(), + nullable: true, + }) + public fileId: DriveFile['id'] | null; + + @ManyToOne(type => DriveFile, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public file: DriveFile | null; +} diff --git a/src/models/entities/meta.ts b/src/models/entities/meta.ts new file mode 100644 index 000000000..b7fe8b18a --- /dev/null +++ b/src/models/entities/meta.ts @@ -0,0 +1,383 @@ +import { Entity, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class Meta { + @PrimaryColumn({ + type: 'varchar', + length: 32 + }) + public id: string; + + @Column('varchar', { + length: 128, nullable: true + }) + public name: string | null; + + @Column('varchar', { + length: 1024, nullable: true + }) + public description: string | null; + + /** + * メンテナの名前 + */ + @Column('varchar', { + length: 128, nullable: true + }) + public maintainerName: string | null; + + /** + * メンテナの連絡先 + */ + @Column('varchar', { + length: 128, nullable: true + }) + public maintainerEmail: string | null; + + @Column('boolean', { + default: false, + }) + public disableRegistration: boolean; + + @Column('boolean', { + default: false, + }) + public disableLocalTimeline: boolean; + + @Column('boolean', { + default: false, + }) + public disableGlobalTimeline: boolean; + + @Column('boolean', { + default: false, + }) + public useStarForReactionFallback: boolean; + + @Column('varchar', { + length: 64, array: true, default: '{}' + }) + public langs: string[]; + + @Column('varchar', { + length: 256, array: true, default: '{}' + }) + public pinnedUsers: string[]; + + @Column('varchar', { + length: 256, array: true, default: '{}' + }) + public hiddenTags: string[]; + + @Column('varchar', { + length: 256, array: true, default: '{}' + }) + public blockedHosts: string[]; + + @Column('varchar', { + length: 512, array: true, default: '{"/announcements", "/featured", "/channels", "/explore", "/games/reversi", "/about-misskey"}' + }) + public pinnedPages: string[]; + + @Column('varchar', { + length: 512, + nullable: true, + default: '/assets/ai.png' + }) + public mascotImageUrl: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public bannerUrl: string | null; + + @Column('varchar', { + length: 512, + nullable: true, + default: 'https://xn--931a.moe/aiart/yubitun.png' + }) + public errorImageUrl: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public iconUrl: string | null; + + @Column('boolean', { + default: true, + }) + public cacheRemoteFiles: boolean; + + @Column('boolean', { + default: false, + }) + public proxyRemoteFiles: boolean; + + @Column({ + ...id(), + nullable: true, + }) + public proxyAccountId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public proxyAccount: User | null; + + @Column('boolean', { + default: false, + }) + public enableHcaptcha: boolean; + + @Column('varchar', { + length: 64, + nullable: true + }) + public hcaptchaSiteKey: string | null; + + @Column('varchar', { + length: 64, + nullable: true + }) + public hcaptchaSecretKey: string | null; + + @Column('boolean', { + default: false, + }) + public enableRecaptcha: boolean; + + @Column('varchar', { + length: 64, + nullable: true + }) + public recaptchaSiteKey: string | null; + + @Column('varchar', { + length: 64, + nullable: true + }) + public recaptchaSecretKey: string | null; + + @Column('integer', { + default: 1024, + comment: 'Drive capacity of a local user (MB)' + }) + public localDriveCapacityMb: number; + + @Column('integer', { + default: 32, + comment: 'Drive capacity of a remote user (MB)' + }) + public remoteDriveCapacityMb: number; + + @Column('integer', { + default: 500, + comment: 'Max allowed note text length in characters' + }) + public maxNoteTextLength: number; + + @Column('varchar', { + length: 128, + nullable: true + }) + public summalyProxy: string | null; + + @Column('boolean', { + default: false, + }) + public enableEmail: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public email: string | null; + + @Column('boolean', { + default: false, + }) + public smtpSecure: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public smtpHost: string | null; + + @Column('integer', { + nullable: true + }) + public smtpPort: number | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public smtpUser: string | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public smtpPass: string | null; + + @Column('boolean', { + default: false, + }) + public enableServiceWorker: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public swPublicKey: string | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public swPrivateKey: string | null; + + @Column('boolean', { + default: false, + }) + public enableTwitterIntegration: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public twitterConsumerKey: string | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public twitterConsumerSecret: string | null; + + @Column('boolean', { + default: false, + }) + public enableGithubIntegration: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public githubClientId: string | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public githubClientSecret: string | null; + + @Column('boolean', { + default: false, + }) + public enableDiscordIntegration: boolean; + + @Column('varchar', { + length: 128, + nullable: true + }) + public discordClientId: string | null; + + @Column('varchar', { + length: 128, + nullable: true + }) + public discordClientSecret: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public ToSUrl: string | null; + + @Column('varchar', { + length: 512, + default: 'https://github.com/syuilo/misskey', + nullable: false + }) + public repositoryUrl: string; + + @Column('varchar', { + length: 512, + default: 'https://github.com/syuilo/misskey/issues/new', + nullable: true + }) + public feedbackUrl: string | null; + + @Column('boolean', { + default: false, + }) + public useObjectStorage: boolean; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageBucket: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStoragePrefix: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageBaseUrl: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageEndpoint: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageRegion: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageAccessKey: string | null; + + @Column('varchar', { + length: 512, + nullable: true + }) + public objectStorageSecretKey: string | null; + + @Column('integer', { + nullable: true + }) + public objectStoragePort: number | null; + + @Column('boolean', { + default: true, + }) + public objectStorageUseSSL: boolean; + + @Column('boolean', { + default: true, + }) + public objectStorageUseProxy: boolean; + + @Column('boolean', { + default: false, + }) + public objectStorageSetPublicRead: boolean; +} diff --git a/packages/backend/src/models/entities/moderation-log.ts b/src/models/entities/moderation-log.ts similarity index 77% rename from packages/backend/src/models/entities/moderation-log.ts rename to src/models/entities/moderation-log.ts index c99e55078..33d3d683a 100644 --- a/packages/backend/src/models/entities/moderation-log.ts +++ b/src/models/entities/moderation-log.ts @@ -1,6 +1,6 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class ModerationLog { @@ -8,7 +8,7 @@ export class ModerationLog { public id: string; @Column('timestamp with time zone', { - comment: 'The created date of the ModerationLog.', + comment: 'The created date of the ModerationLog.' }) public createdAt: Date; @@ -17,7 +17,7 @@ export class ModerationLog { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; diff --git a/src/models/entities/muted-note.ts b/src/models/entities/muted-note.ts new file mode 100644 index 000000000..521876688 --- /dev/null +++ b/src/models/entities/muted-note.ts @@ -0,0 +1,48 @@ +import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm'; +import { Note } from './note'; +import { User } from './user'; +import { id } from '../id'; +import { mutedNoteReasons } from '../../types'; + +@Entity() +@Index(['noteId', 'userId'], { unique: true }) +export class MutedNote { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column({ + ...id(), + comment: 'The note ID.' + }) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Index() + @Column({ + ...id(), + comment: 'The user ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + /** + * ミュートされた理由。 + */ + @Index() + @Column('enum', { + enum: mutedNoteReasons, + comment: 'The reason of the MutedNote.' + }) + public reason: typeof mutedNoteReasons[number]; +} diff --git a/src/models/entities/muting.ts b/src/models/entities/muting.ts new file mode 100644 index 000000000..0084213bc --- /dev/null +++ b/src/models/entities/muting.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['muterId', 'muteeId'], { unique: true }) +export class Muting { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Muting.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The mutee user ID.' + }) + public muteeId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public mutee: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The muter user ID.' + }) + public muterId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public muter: User | null; +} diff --git a/src/models/entities/note-favorite.ts b/src/models/entities/note-favorite.ts new file mode 100644 index 000000000..0713c3ae5 --- /dev/null +++ b/src/models/entities/note-favorite.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { Note } from './note'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'noteId'], { unique: true }) +export class NoteFavorite { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the NoteFavorite.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column(id()) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; +} diff --git a/src/models/entities/note-reaction.ts b/src/models/entities/note-reaction.ts new file mode 100644 index 000000000..ed38450bb --- /dev/null +++ b/src/models/entities/note-reaction.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { Note } from './note'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'noteId'], { unique: true }) +export class NoteReaction { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the NoteReaction.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column(id()) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Column('varchar', { + length: 260 + }) + public reaction: string; +} diff --git a/packages/backend/src/models/entities/note-unread.ts b/src/models/entities/note-unread.ts similarity index 78% rename from packages/backend/src/models/entities/note-unread.ts rename to src/models/entities/note-unread.ts index a7acf254d..57dda4faf 100644 --- a/packages/backend/src/models/entities/note-unread.ts +++ b/src/models/entities/note-unread.ts @@ -1,8 +1,8 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Note } from './note.js'; -import { id } from '../id.js'; -import { Channel } from './channel.js'; +import { User } from './user'; +import { Note } from './note'; +import { id } from '../id'; +import { Channel } from './channel'; @Entity() @Index(['userId', 'noteId'], { unique: true }) @@ -15,7 +15,7 @@ export class NoteUnread { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; @@ -25,7 +25,7 @@ export class NoteUnread { public noteId: Note['id']; @ManyToOne(type => Note, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public note: Note | null; @@ -48,7 +48,7 @@ export class NoteUnread { @Index() @Column({ ...id(), - comment: '[Denormalized]', + comment: '[Denormalized]' }) public noteUserId: User['id']; @@ -56,7 +56,7 @@ export class NoteUnread { @Column({ ...id(), nullable: true, - comment: '[Denormalized]', + comment: '[Denormalized]' }) public noteChannelId: Channel['id'] | null; //#endregion diff --git a/src/models/entities/note-watching.ts b/src/models/entities/note-watching.ts new file mode 100644 index 000000000..741a1c0c8 --- /dev/null +++ b/src/models/entities/note-watching.ts @@ -0,0 +1,52 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { Note } from './note'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'noteId'], { unique: true }) +export class NoteWatching { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the NoteWatching.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The watcher ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The target Note ID.' + }) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + //#region Denormalized fields + @Index() + @Column({ + ...id(), + comment: '[Denormalized]' + }) + public noteUserId: Note['userId']; + //#endregion +} diff --git a/src/models/entities/note.ts b/src/models/entities/note.ts new file mode 100644 index 000000000..2be7d2b33 --- /dev/null +++ b/src/models/entities/note.ts @@ -0,0 +1,239 @@ +import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { DriveFile } from './drive-file'; +import { id } from '../id'; +import { noteVisibilities } from '../../types'; +import { Channel } from './channel'; + +@Entity() +@Index('IDX_NOTE_TAGS', { synchronize: false }) +export class Note { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Note.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The ID of reply target.' + }) + public replyId: Note['id'] | null; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public reply: Note | null; + + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The ID of renote target.' + }) + public renoteId: Note['id'] | null; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public renote: Note | null; + + @Column('varchar', { + length: 8192, nullable: true + }) + public text: string | null; + + @Column('varchar', { + length: 256, nullable: true + }) + public name: string | null; + + @Column('varchar', { + length: 512, nullable: true + }) + public cw: string | null; + + @Index() + @Column({ + ...id(), + comment: 'The ID of author.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('boolean', { + default: false + }) + public viaMobile: boolean; + + @Column('boolean', { + default: false + }) + public localOnly: boolean; + + @Column('smallint', { + default: 0 + }) + public renoteCount: number; + + @Column('smallint', { + default: 0 + }) + public repliesCount: number; + + @Column('jsonb', { + default: {} + }) + public reactions: Record; + + /** + * public ... 公開 + * home ... ホームタイムライン(ユーザーページのタイムライン含む)のみに流す + * followers ... フォロワーのみ + * specified ... visibleUserIds で指定したユーザーのみ + */ + @Column('enum', { enum: noteVisibilities }) + public visibility: typeof noteVisibilities[number]; + + @Index({ unique: true }) + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URI of a note. it will be null when the note is local.' + }) + public uri: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The human readable url of a note. it will be null when the note is local.' + }) + public url: string | null; + + @Column('integer', { + default: 0, select: false + }) + public score: number; + + @Index() + @Column({ + ...id(), + array: true, default: '{}' + }) + public fileIds: DriveFile['id'][]; + + @Index() + @Column('varchar', { + length: 256, array: true, default: '{}' + }) + public attachedFileTypes: string[]; + + @Index() + @Column({ + ...id(), + array: true, default: '{}' + }) + public visibleUserIds: User['id'][]; + + @Index() + @Column({ + ...id(), + array: true, default: '{}' + }) + public mentions: User['id'][]; + + @Column('text', { + default: '[]' + }) + public mentionedRemoteUsers: string; + + @Column('varchar', { + length: 128, array: true, default: '{}' + }) + public emojis: string[]; + + @Index() + @Column('varchar', { + length: 128, array: true, default: '{}' + }) + public tags: string[]; + + @Column('boolean', { + default: false + }) + public hasPoll: boolean; + + @Index() + @Column({ + ...id(), + nullable: true, default: null, + comment: 'The ID of source channel.' + }) + public channelId: Channel['id'] | null; + + @ManyToOne(type => Channel, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public channel: Channel | null; + + //#region Denormalized fields + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public userHost: string | null; + + @Column({ + ...id(), + nullable: true, + comment: '[Denormalized]' + }) + public replyUserId: User['id'] | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public replyUserHost: string | null; + + @Column({ + ...id(), + nullable: true, + comment: '[Denormalized]' + }) + public renoteUserId: User['id'] | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public renoteUserHost: string | null; + //#endregion + + constructor(data: Partial) { + if (data == null) return; + + for (const [k, v] of Object.entries(data)) { + (this as any)[k] = v; + } + } +} + +export type IMentionedRemoteUsers = { + uri: string; + url?: string; + username: string; + host: string; +}[]; diff --git a/src/models/entities/notification.ts b/src/models/entities/notification.ts new file mode 100644 index 000000000..988fdb341 --- /dev/null +++ b/src/models/entities/notification.ts @@ -0,0 +1,172 @@ +import { Entity, Index, JoinColumn, ManyToOne, Column, PrimaryColumn } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { Note } from './note'; +import { FollowRequest } from './follow-request'; +import { UserGroupInvitation } from './user-group-invitation'; +import { AccessToken } from './access-token'; +import { notificationTypes } from '../../types'; + +@Entity() +export class Notification { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Notification.' + }) + public createdAt: Date; + + /** + * 通知の受信者 + */ + @Index() + @Column({ + ...id(), + comment: 'The ID of recipient user of the Notification.' + }) + public notifieeId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public notifiee: User | null; + + /** + * 通知の送信者(initiator) + */ + @Index() + @Column({ + ...id(), + nullable: true, + comment: 'The ID of sender user of the Notification.' + }) + public notifierId: User['id'] | null; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public notifier: User | null; + + /** + * 通知の種類。 + * follow - フォローされた + * mention - 投稿で自分が言及された + * reply - (自分または自分がWatchしている)投稿が返信された + * renote - (自分または自分がWatchしている)投稿がRenoteされた + * quote - (自分または自分がWatchしている)投稿が引用Renoteされた + * reaction - (自分または自分がWatchしている)投稿にリアクションされた + * pollVote - (自分または自分がWatchしている)投稿の投票に投票された + * receiveFollowRequest - フォローリクエストされた + * followRequestAccepted - 自分の送ったフォローリクエストが承認された + * groupInvited - グループに招待された + * app - アプリ通知 + */ + @Index() + @Column('enum', { + enum: notificationTypes, + comment: 'The type of the Notification.' + }) + public type: typeof notificationTypes[number]; + + /** + * 通知が読まれたかどうか + */ + @Index() + @Column('boolean', { + default: false, + comment: 'Whether the Notification is read.' + }) + public isRead: boolean; + + @Column({ + ...id(), + nullable: true + }) + public noteId: Note['id'] | null; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Column({ + ...id(), + nullable: true + }) + public followRequestId: FollowRequest['id'] | null; + + @ManyToOne(type => FollowRequest, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public followRequest: FollowRequest | null; + + @Column({ + ...id(), + nullable: true + }) + public userGroupInvitationId: UserGroupInvitation['id'] | null; + + @ManyToOne(type => UserGroupInvitation, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userGroupInvitation: UserGroupInvitation | null; + + @Column('varchar', { + length: 128, nullable: true + }) + public reaction: string | null; + + @Column('integer', { + nullable: true + }) + public choice: number | null; + + /** + * アプリ通知のbody + */ + @Column('varchar', { + length: 2048, nullable: true + }) + public customBody: string | null; + + /** + * アプリ通知のheader + * (省略時はアプリ名で表示されることを期待) + */ + @Column('varchar', { + length: 256, nullable: true + }) + public customHeader: string | null; + + /** + * アプリ通知のicon(URL) + * (省略時はアプリアイコンで表示されることを期待) + */ + @Column('varchar', { + length: 1024, nullable: true + }) + public customIcon: string | null; + + /** + * アプリ通知のアプリ(のトークン) + */ + @Index() + @Column({ + ...id(), + nullable: true + }) + public appAccessTokenId: AccessToken['id'] | null; + + @ManyToOne(type => AccessToken, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public appAccessToken: AccessToken | null; +} diff --git a/src/models/entities/page-like.ts b/src/models/entities/page-like.ts new file mode 100644 index 000000000..ca84ece8f --- /dev/null +++ b/src/models/entities/page-like.ts @@ -0,0 +1,33 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { Page } from './page'; + +@Entity() +@Index(['userId', 'pageId'], { unique: true }) +export class PageLike { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone') + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column(id()) + public pageId: Page['id']; + + @ManyToOne(type => Page, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public page: Page | null; +} diff --git a/src/models/entities/page.ts b/src/models/entities/page.ts new file mode 100644 index 000000000..ed0411a3d --- /dev/null +++ b/src/models/entities/page.ts @@ -0,0 +1,121 @@ +import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; +import { DriveFile } from './drive-file'; + +@Entity() +@Index(['userId', 'name'], { unique: true }) +export class Page { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the Page.' + }) + public createdAt: Date; + + @Index() + @Column('timestamp with time zone', { + comment: 'The updated date of the Page.' + }) + public updatedAt: Date; + + @Column('varchar', { + length: 256, + }) + public title: string; + + @Index() + @Column('varchar', { + length: 256, + }) + public name: string; + + @Column('varchar', { + length: 256, nullable: true + }) + public summary: string | null; + + @Column('boolean') + public alignCenter: boolean; + + @Column('boolean', { + default: false + }) + public hideTitleWhenPinned: boolean; + + @Column('varchar', { + length: 32, + }) + public font: string; + + @Index() + @Column({ + ...id(), + comment: 'The ID of author.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column({ + ...id(), + nullable: true, + }) + public eyeCatchingImageId: DriveFile['id'] | null; + + @ManyToOne(type => DriveFile, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public eyeCatchingImage: DriveFile | null; + + @Column('jsonb', { + default: [] + }) + public content: Record[]; + + @Column('jsonb', { + default: [] + }) + public variables: Record[]; + + @Column('varchar', { + length: 16384, + default: '' + }) + public script: string; + + /** + * public ... 公開 + * followers ... フォロワーのみ + * specified ... visibleUserIds で指定したユーザーのみ + */ + @Column('enum', { enum: ['public', 'followers', 'specified'] }) + public visibility: 'public' | 'followers' | 'specified'; + + @Index() + @Column({ + ...id(), + array: true, default: '{}' + }) + public visibleUserIds: User['id'][]; + + @Column('integer', { + default: 0 + }) + public likedCount: number; + + constructor(data: Partial) { + if (data == null) return; + + for (const [k, v] of Object.entries(data)) { + (this as any)[k] = v; + } + } +} diff --git a/packages/backend/src/models/entities/poll-vote.ts b/src/models/entities/poll-vote.ts similarity index 75% rename from packages/backend/src/models/entities/poll-vote.ts rename to src/models/entities/poll-vote.ts index fca1cd009..709376f90 100644 --- a/packages/backend/src/models/entities/poll-vote.ts +++ b/src/models/entities/poll-vote.ts @@ -1,7 +1,7 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { Note } from './note.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { Note } from './note'; +import { id } from '../id'; @Entity() @Index(['userId', 'noteId', 'choice'], { unique: true }) @@ -11,7 +11,7 @@ export class PollVote { @Index() @Column('timestamp with time zone', { - comment: 'The created date of the PollVote.', + comment: 'The created date of the PollVote.' }) public createdAt: Date; @@ -20,7 +20,7 @@ export class PollVote { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; @@ -30,7 +30,7 @@ export class PollVote { public noteId: Note['id']; @ManyToOne(type => Note, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public note: Note | null; diff --git a/packages/backend/src/models/entities/poll.ts b/src/models/entities/poll.ts similarity index 76% rename from packages/backend/src/models/entities/poll.ts rename to src/models/entities/poll.ts index 83d0873cc..e3bbb1c3f 100644 --- a/packages/backend/src/models/entities/poll.ts +++ b/src/models/entities/poll.ts @@ -1,8 +1,8 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm'; -import { id } from '../id.js'; -import { Note } from './note.js'; -import { User } from './user.js'; -import { noteVisibilities } from '../../types.js'; +import { id } from '../id'; +import { Note } from './note'; +import { User } from './user'; +import { noteVisibilities } from '../../types'; @Entity() export class Poll { @@ -10,13 +10,13 @@ export class Poll { public noteId: Note['id']; @OneToOne(type => Note, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public note: Note | null; @Column('timestamp with time zone', { - nullable: true, + nullable: true }) public expiresAt: Date | null; @@ -24,7 +24,7 @@ export class Poll { public multiple: boolean; @Column('varchar', { - length: 128, array: true, default: '{}', + length: 128, array: true, default: '{}' }) public choices: string[]; @@ -36,21 +36,21 @@ export class Poll { //#region Denormalized fields @Column('enum', { enum: noteVisibilities, - comment: '[Denormalized]', + comment: '[Denormalized]' }) public noteVisibility: typeof noteVisibilities[number]; @Index() @Column({ ...id(), - comment: '[Denormalized]', + comment: '[Denormalized]' }) public userId: User['id']; @Index() @Column('varchar', { length: 128, nullable: true, - comment: '[Denormalized]', + comment: '[Denormalized]' }) public userHost: string | null; //#endregion diff --git a/src/models/entities/promo-note.ts b/src/models/entities/promo-note.ts new file mode 100644 index 000000000..474f1cb23 --- /dev/null +++ b/src/models/entities/promo-note.ts @@ -0,0 +1,28 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm'; +import { Note } from './note'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class PromoNote { + @PrimaryColumn(id()) + public noteId: Note['id']; + + @OneToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; + + @Column('timestamp with time zone') + public expiresAt: Date; + + //#region Denormalized fields + @Index() + @Column({ + ...id(), + comment: '[Denormalized]' + }) + public userId: User['id']; + //#endregion +} diff --git a/src/models/entities/promo-read.ts b/src/models/entities/promo-read.ts new file mode 100644 index 000000000..2e0977b6b --- /dev/null +++ b/src/models/entities/promo-read.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { Note } from './note'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'noteId'], { unique: true }) +export class PromoRead { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the PromoRead.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column(id()) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; +} diff --git a/packages/backend/src/models/entities/registration-tickets.ts b/src/models/entities/registration-tickets.ts similarity index 90% rename from packages/backend/src/models/entities/registration-tickets.ts rename to src/models/entities/registration-tickets.ts index 139e40f85..d962f78a7 100644 --- a/packages/backend/src/models/entities/registration-tickets.ts +++ b/src/models/entities/registration-tickets.ts @@ -1,5 +1,5 @@ import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; -import { id } from '../id.js'; +import { id } from '../id'; @Entity() export class RegistrationTicket { diff --git a/src/models/entities/relay.ts b/src/models/entities/relay.ts new file mode 100644 index 000000000..4c82ccb12 --- /dev/null +++ b/src/models/entities/relay.ts @@ -0,0 +1,19 @@ +import { PrimaryColumn, Entity, Index, Column } from 'typeorm'; +import { id } from '../id'; + +@Entity() +export class Relay { + @PrimaryColumn(id()) + public id: string; + + @Index({ unique: true }) + @Column('varchar', { + length: 512, nullable: false, + }) + public inbox: string; + + @Column('enum', { + enum: ['requesting', 'accepted', 'rejected'], + }) + public status: 'requesting' | 'accepted' | 'rejected'; +} diff --git a/src/models/entities/signin.ts b/src/models/entities/signin.ts new file mode 100644 index 000000000..7e047084b --- /dev/null +++ b/src/models/entities/signin.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class Signin { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the Signin.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, + }) + public ip: string; + + @Column('jsonb') + public headers: Record; + + @Column('boolean') + public success: boolean; +} diff --git a/packages/backend/src/models/entities/sw-subscription.ts b/src/models/entities/sw-subscription.ts similarity index 86% rename from packages/backend/src/models/entities/sw-subscription.ts rename to src/models/entities/sw-subscription.ts index 59144d348..7c3f6f0a6 100644 --- a/packages/backend/src/models/entities/sw-subscription.ts +++ b/src/models/entities/sw-subscription.ts @@ -1,6 +1,6 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class SwSubscription { @@ -15,7 +15,7 @@ export class SwSubscription { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; diff --git a/packages/backend/src/models/entities/used-username.ts b/src/models/entities/used-username.ts similarity index 100% rename from packages/backend/src/models/entities/used-username.ts rename to src/models/entities/used-username.ts diff --git a/src/models/entities/user-group-invitation.ts b/src/models/entities/user-group-invitation.ts new file mode 100644 index 000000000..6fe8f2013 --- /dev/null +++ b/src/models/entities/user-group-invitation.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { UserGroup } from './user-group'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'userGroupId'], { unique: true }) +export class UserGroupInvitation { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the UserGroupInvitation.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The user ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The group ID.' + }) + public userGroupId: UserGroup['id']; + + @ManyToOne(type => UserGroup, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userGroup: UserGroup | null; +} diff --git a/src/models/entities/user-group-joining.ts b/src/models/entities/user-group-joining.ts new file mode 100644 index 000000000..e09c3230f --- /dev/null +++ b/src/models/entities/user-group-joining.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { UserGroup } from './user-group'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'userGroupId'], { unique: true }) +export class UserGroupJoining { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the UserGroupJoining.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The user ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The group ID.' + }) + public userGroupId: UserGroup['id']; + + @ManyToOne(type => UserGroup, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userGroup: UserGroup | null; +} diff --git a/src/models/entities/user-group.ts b/src/models/entities/user-group.ts new file mode 100644 index 000000000..f4bac0322 --- /dev/null +++ b/src/models/entities/user-group.ts @@ -0,0 +1,46 @@ +import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class UserGroup { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the UserGroup.' + }) + public createdAt: Date; + + @Column('varchar', { + length: 256, + }) + public name: string; + + @Index() + @Column({ + ...id(), + comment: 'The ID of owner.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('boolean', { + default: false, + }) + public isPrivate: boolean; + + constructor(data: Partial) { + if (data == null) return; + + for (const [k, v] of Object.entries(data)) { + (this as any)[k] = v; + } + } +} diff --git a/packages/backend/src/models/entities/user-keypair.ts b/src/models/entities/user-keypair.ts similarity index 85% rename from packages/backend/src/models/entities/user-keypair.ts rename to src/models/entities/user-keypair.ts index 85fa06297..603321d75 100644 --- a/packages/backend/src/models/entities/user-keypair.ts +++ b/src/models/entities/user-keypair.ts @@ -1,6 +1,6 @@ import { PrimaryColumn, Entity, JoinColumn, Column, OneToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class UserKeypair { @@ -8,7 +8,7 @@ export class UserKeypair { public userId: User['id']; @OneToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; diff --git a/src/models/entities/user-list-joining.ts b/src/models/entities/user-list-joining.ts new file mode 100644 index 000000000..bb7dc40b9 --- /dev/null +++ b/src/models/entities/user-list-joining.ts @@ -0,0 +1,42 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { UserList } from './user-list'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'userListId'], { unique: true }) +export class UserListJoining { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the UserListJoining.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The user ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Index() + @Column({ + ...id(), + comment: 'The list ID.' + }) + public userListId: UserList['id']; + + @ManyToOne(type => UserList, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public userList: UserList | null; +} diff --git a/src/models/entities/user-list.ts b/src/models/entities/user-list.ts new file mode 100644 index 000000000..35a83ef8c --- /dev/null +++ b/src/models/entities/user-list.ts @@ -0,0 +1,33 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +export class UserList { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the UserList.' + }) + public createdAt: Date; + + @Index() + @Column({ + ...id(), + comment: 'The owner ID.' + }) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, + comment: 'The name of the UserList.' + }) + public name: string; +} diff --git a/src/models/entities/user-note-pining.ts b/src/models/entities/user-note-pining.ts new file mode 100644 index 000000000..04a6f8f64 --- /dev/null +++ b/src/models/entities/user-note-pining.ts @@ -0,0 +1,35 @@ +import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm'; +import { Note } from './note'; +import { User } from './user'; +import { id } from '../id'; + +@Entity() +@Index(['userId', 'noteId'], { unique: true }) +export class UserNotePining { + @PrimaryColumn(id()) + public id: string; + + @Column('timestamp with time zone', { + comment: 'The created date of the UserNotePinings.' + }) + public createdAt: Date; + + @Index() + @Column(id()) + public userId: User['id']; + + @ManyToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column(id()) + public noteId: Note['id']; + + @ManyToOne(type => Note, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public note: Note | null; +} diff --git a/src/models/entities/user-profile.ts b/src/models/entities/user-profile.ts new file mode 100644 index 000000000..bd37da5ec --- /dev/null +++ b/src/models/entities/user-profile.ts @@ -0,0 +1,180 @@ +import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm'; +import { id } from '../id'; +import { User } from './user'; +import { Page } from './page'; +import { notificationTypes } from '../../types'; + +@Entity() +export class UserProfile { + @PrimaryColumn(id()) + public userId: User['id']; + + @OneToOne(type => User, { + onDelete: 'CASCADE' + }) + @JoinColumn() + public user: User | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'The location of the User.' + }) + public location: string | null; + + @Column('char', { + length: 10, nullable: true, + comment: 'The birthday (YYYY-MM-DD) of the User.' + }) + public birthday: string | null; + + @Column('varchar', { + length: 2048, nullable: true, + comment: 'The description (bio) of the User.' + }) + public description: string | null; + + @Column('jsonb', { + default: [], + }) + public fields: { + name: string; + value: string; + }[]; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'Remote URL of the user.' + }) + public url: string | null; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'The email address of the User.' + }) + public email: string | null; + + @Column('varchar', { + length: 128, nullable: true, + }) + public emailVerifyCode: string | null; + + @Column('boolean', { + default: false, + }) + public emailVerified: boolean; + + @Column('varchar', { + length: 128, nullable: true, + }) + public twoFactorTempSecret: string | null; + + @Column('varchar', { + length: 128, nullable: true, + }) + public twoFactorSecret: string | null; + + @Column('boolean', { + default: false, + }) + public twoFactorEnabled: boolean; + + @Column('boolean', { + default: false, + }) + public securityKeysAvailable: boolean; + + @Column('boolean', { + default: false, + }) + public usePasswordLessLogin: boolean; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'The password hash of the User. It will be null if the origin of the user is local.' + }) + public password: string | null; + + @Column('jsonb', { + default: {}, + comment: 'The client-specific data of the User.' + }) + public clientData: Record; + + @Column('jsonb', { + default: {}, + comment: 'The room data of the User.' + }) + public room: Record; + + @Column('boolean', { + default: false, + }) + public autoAcceptFollowed: boolean; + + @Column('boolean', { + default: false, + }) + public alwaysMarkNsfw: boolean; + + @Column('boolean', { + default: false, + }) + public carefulBot: boolean; + + @Column('boolean', { + default: true, + }) + public injectFeaturedNote: boolean; + + @Column({ + ...id(), + nullable: true + }) + public pinnedPageId: Page['id'] | null; + + @OneToOne(type => Page, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public pinnedPage: Page | null; + + @Column('jsonb', { + default: {} + }) + public integrations: Record; + + @Index() + @Column('boolean', { + default: false, select: false, + }) + public enableWordMute: boolean; + + @Column('jsonb', { + default: [] + }) + public mutedWords: string[][]; + + @Column('enum', { + enum: notificationTypes, + array: true, + default: [], + }) + public mutingNotificationTypes: typeof notificationTypes[number][]; + + //#region Denormalized fields + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: '[Denormalized]' + }) + public userHost: string | null; + //#endregion + + constructor(data: Partial) { + if (data == null) return; + + for (const [k, v] of Object.entries(data)) { + (this as any)[k] = v; + } + } +} diff --git a/packages/backend/src/models/entities/user-publickey.ts b/src/models/entities/user-publickey.ts similarity index 86% rename from packages/backend/src/models/entities/user-publickey.ts rename to src/models/entities/user-publickey.ts index 31ed60de8..21edc3e9e 100644 --- a/packages/backend/src/models/entities/user-publickey.ts +++ b/src/models/entities/user-publickey.ts @@ -1,6 +1,6 @@ import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class UserPublickey { @@ -8,7 +8,7 @@ export class UserPublickey { public userId: User['id']; @OneToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; diff --git a/packages/backend/src/models/entities/user-security-key.ts b/src/models/entities/user-security-key.ts similarity index 86% rename from packages/backend/src/models/entities/user-security-key.ts rename to src/models/entities/user-security-key.ts index c4f2a852e..d54c728e5 100644 --- a/packages/backend/src/models/entities/user-security-key.ts +++ b/src/models/entities/user-security-key.ts @@ -1,11 +1,11 @@ import { PrimaryColumn, Entity, JoinColumn, Column, ManyToOne, Index } from 'typeorm'; -import { User } from './user.js'; -import { id } from '../id.js'; +import { User } from './user'; +import { id } from '../id'; @Entity() export class UserSecurityKey { @PrimaryColumn('varchar', { - comment: 'Variable-length id given to navigator.credentials.get()', + comment: 'Variable-length id given to navigator.credentials.get()' }) public id: string; @@ -14,7 +14,7 @@ export class UserSecurityKey { public userId: User['id']; @ManyToOne(type => User, { - onDelete: 'CASCADE', + onDelete: 'CASCADE' }) @JoinColumn() public user: User | null; @@ -22,19 +22,19 @@ export class UserSecurityKey { @Index() @Column('varchar', { comment: - 'Variable-length public key used to verify attestations (hex-encoded).', + 'Variable-length public key used to verify attestations (hex-encoded).' }) public publicKey: string; @Column('timestamp with time zone', { comment: - 'The date of the last time the UserSecurityKey was successfully validated.', + 'The date of the last time the UserSecurityKey was successfully validated.' }) public lastUsed: Date; @Column('varchar', { comment: 'User-defined name for this key', - length: 30, + length: 30 }) public name: string; diff --git a/src/models/entities/user.ts b/src/models/entities/user.ts new file mode 100644 index 000000000..fee5906a3 --- /dev/null +++ b/src/models/entities/user.ts @@ -0,0 +1,219 @@ +import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm'; +import { DriveFile } from './drive-file'; +import { id } from '../id'; + +@Entity() +@Index(['usernameLower', 'host'], { unique: true }) +export class User { + @PrimaryColumn(id()) + public id: string; + + @Index() + @Column('timestamp with time zone', { + comment: 'The created date of the User.' + }) + public createdAt: Date; + + @Index() + @Column('timestamp with time zone', { + nullable: true, + comment: 'The updated date of the User.' + }) + public updatedAt: Date | null; + + @Column('timestamp with time zone', { + nullable: true + }) + public lastFetchedAt: Date | null; + + @Column('varchar', { + length: 128, + comment: 'The username of the User.' + }) + public username: string; + + @Index() + @Column('varchar', { + length: 128, select: false, + comment: 'The username (lowercased) of the User.' + }) + public usernameLower: string; + + @Column('varchar', { + length: 128, nullable: true, + comment: 'The name of the User.' + }) + public name: string | null; + + @Column('integer', { + default: 0, + comment: 'The count of followers.' + }) + public followersCount: number; + + @Column('integer', { + default: 0, + comment: 'The count of following.' + }) + public followingCount: number; + + @Column('integer', { + default: 0, + comment: 'The count of notes.' + }) + public notesCount: number; + + @Column({ + ...id(), + nullable: true, + comment: 'The ID of avatar DriveFile.' + }) + public avatarId: DriveFile['id'] | null; + + @OneToOne(type => DriveFile, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public avatar: DriveFile | null; + + @Column({ + ...id(), + nullable: true, + comment: 'The ID of banner DriveFile.' + }) + public bannerId: DriveFile['id'] | null; + + @OneToOne(type => DriveFile, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public banner: DriveFile | null; + + @Index() + @Column('varchar', { + length: 128, array: true, default: '{}' + }) + public tags: string[]; + + @Column('varchar', { + length: 512, nullable: true, + }) + public avatarUrl: string | null; + + @Column('varchar', { + length: 512, nullable: true, + }) + public bannerUrl: string | null; + + @Column('varchar', { + length: 128, nullable: true, + }) + public avatarBlurhash: string | null; + + @Column('varchar', { + length: 128, nullable: true, + }) + public bannerBlurhash: string | null; + + @Column('boolean', { + default: false, + comment: 'Whether the User is suspended.' + }) + public isSuspended: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is silenced.' + }) + public isSilenced: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is locked.' + }) + public isLocked: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is a bot.' + }) + public isBot: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is a cat.' + }) + public isCat: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is the admin.' + }) + public isAdmin: boolean; + + @Column('boolean', { + default: false, + comment: 'Whether the User is a moderator.' + }) + public isModerator: boolean; + + @Column('varchar', { + length: 128, array: true, default: '{}' + }) + public emojis: string[]; + + @Index() + @Column('varchar', { + length: 128, nullable: true, + comment: 'The host of the User. It will be null if the origin of the user is local.' + }) + public host: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The inbox URL of the User. It will be null if the origin of the user is local.' + }) + public inbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The sharedInbox URL of the User. It will be null if the origin of the user is local.' + }) + public sharedInbox: string | null; + + @Column('varchar', { + length: 512, nullable: true, + comment: 'The featured URL of the User. It will be null if the origin of the user is local.' + }) + public featured: string | null; + + @Index() + @Column('varchar', { + length: 512, nullable: true, + comment: 'The URI of the User. It will be null if the origin of the user is local.' + }) + public uri: string | null; + + @Index({ unique: true }) + @Column('char', { + length: 16, nullable: true, unique: true, + comment: 'The native access token of the User. It will be null if the origin of the user is local.' + }) + public token: string | null; + + constructor(data: Partial) { + if (data == null) return; + + for (const [k, v] of Object.entries(data)) { + (this as any)[k] = v; + } + } +} + +export interface ILocalUser extends User { + host: null; +} + +export interface IRemoteUser extends User { + host: string; +} diff --git a/packages/backend/src/models/id.ts b/src/models/id.ts similarity index 81% rename from packages/backend/src/models/id.ts rename to src/models/id.ts index d614fc504..cdb825907 100644 --- a/packages/backend/src/models/id.ts +++ b/src/models/id.ts @@ -1,4 +1,4 @@ export const id = () => ({ type: 'varchar' as const, - length: 32, + length: 32 }); diff --git a/src/models/index.ts b/src/models/index.ts new file mode 100644 index 000000000..dd05dcbcc --- /dev/null +++ b/src/models/index.ts @@ -0,0 +1,118 @@ +import { getRepository, getCustomRepository } from 'typeorm'; +import { Announcement } from './entities/announcement'; +import { AnnouncementRead } from './entities/announcement-read'; +import { Instance } from './entities/instance'; +import { Poll } from './entities/poll'; +import { PollVote } from './entities/poll-vote'; +import { Meta } from './entities/meta'; +import { SwSubscription } from './entities/sw-subscription'; +import { NoteWatching } from './entities/note-watching'; +import { NoteUnread } from './entities/note-unread'; +import { RegistrationTicket } from './entities/registration-tickets'; +import { UserRepository } from './repositories/user'; +import { NoteRepository } from './repositories/note'; +import { DriveFileRepository } from './repositories/drive-file'; +import { DriveFolderRepository } from './repositories/drive-folder'; +import { Log } from './entities/log'; +import { AccessToken } from './entities/access-token'; +import { UserNotePining } from './entities/user-note-pining'; +import { SigninRepository } from './repositories/signin'; +import { MessagingMessageRepository } from './repositories/messaging-message'; +import { ReversiGameRepository } from './repositories/games/reversi/game'; +import { UserListRepository } from './repositories/user-list'; +import { UserListJoining } from './entities/user-list-joining'; +import { UserGroupRepository } from './repositories/user-group'; +import { UserGroupJoining } from './entities/user-group-joining'; +import { UserGroupInvitationRepository } from './repositories/user-group-invitation'; +import { FollowRequestRepository } from './repositories/follow-request'; +import { MutingRepository } from './repositories/muting'; +import { BlockingRepository } from './repositories/blocking'; +import { NoteReactionRepository } from './repositories/note-reaction'; +import { NotificationRepository } from './repositories/notification'; +import { NoteFavoriteRepository } from './repositories/note-favorite'; +import { ReversiMatchingRepository } from './repositories/games/reversi/matching'; +import { UserPublickey } from './entities/user-publickey'; +import { UserKeypair } from './entities/user-keypair'; +import { AppRepository } from './repositories/app'; +import { FollowingRepository } from './repositories/following'; +import { AbuseUserReportRepository } from './repositories/abuse-user-report'; +import { AuthSessionRepository } from './repositories/auth-session'; +import { UserProfile } from './entities/user-profile'; +import { AttestationChallenge } from './entities/attestation-challenge'; +import { UserSecurityKey } from './entities/user-security-key'; +import { HashtagRepository } from './repositories/hashtag'; +import { PageRepository } from './repositories/page'; +import { PageLikeRepository } from './repositories/page-like'; +import { ModerationLogRepository } from './repositories/moderation-logs'; +import { UsedUsername } from './entities/used-username'; +import { ClipRepository } from './repositories/clip'; +import { ClipNote } from './entities/clip-note'; +import { AntennaRepository } from './repositories/antenna'; +import { AntennaNote } from './entities/antenna-note'; +import { PromoNote } from './entities/promo-note'; +import { PromoRead } from './entities/promo-read'; +import { EmojiRepository } from './repositories/emoji'; +import { RelayRepository } from './repositories/relay'; +import { ChannelRepository } from './repositories/channel'; +import { MutedNote } from './entities/muted-note'; +import { ChannelFollowing } from './entities/channel-following'; +import { ChannelNotePining } from './entities/channel-note-pining'; + +export const Announcements = getRepository(Announcement); +export const AnnouncementReads = getRepository(AnnouncementRead); +export const Apps = getCustomRepository(AppRepository); +export const Notes = getCustomRepository(NoteRepository); +export const NoteFavorites = getCustomRepository(NoteFavoriteRepository); +export const NoteWatchings = getRepository(NoteWatching); +export const NoteReactions = getCustomRepository(NoteReactionRepository); +export const NoteUnreads = getRepository(NoteUnread); +export const Polls = getRepository(Poll); +export const PollVotes = getRepository(PollVote); +export const Users = getCustomRepository(UserRepository); +export const UserProfiles = getRepository(UserProfile); +export const UserKeypairs = getRepository(UserKeypair); +export const AttestationChallenges = getRepository(AttestationChallenge); +export const UserSecurityKeys = getRepository(UserSecurityKey); +export const UserPublickeys = getRepository(UserPublickey); +export const UserLists = getCustomRepository(UserListRepository); +export const UserListJoinings = getRepository(UserListJoining); +export const UserGroups = getCustomRepository(UserGroupRepository); +export const UserGroupJoinings = getRepository(UserGroupJoining); +export const UserGroupInvitations = getCustomRepository(UserGroupInvitationRepository); +export const UserNotePinings = getRepository(UserNotePining); +export const UsedUsernames = getRepository(UsedUsername); +export const Followings = getCustomRepository(FollowingRepository); +export const FollowRequests = getCustomRepository(FollowRequestRepository); +export const Instances = getRepository(Instance); +export const Emojis = getCustomRepository(EmojiRepository); +export const DriveFiles = getCustomRepository(DriveFileRepository); +export const DriveFolders = getCustomRepository(DriveFolderRepository); +export const Notifications = getCustomRepository(NotificationRepository); +export const Metas = getRepository(Meta); +export const Mutings = getCustomRepository(MutingRepository); +export const Blockings = getCustomRepository(BlockingRepository); +export const SwSubscriptions = getRepository(SwSubscription); +export const Hashtags = getCustomRepository(HashtagRepository); +export const AbuseUserReports = getCustomRepository(AbuseUserReportRepository); +export const RegistrationTickets = getRepository(RegistrationTicket); +export const AuthSessions = getCustomRepository(AuthSessionRepository); +export const AccessTokens = getRepository(AccessToken); +export const Signins = getCustomRepository(SigninRepository); +export const MessagingMessages = getCustomRepository(MessagingMessageRepository); +export const ReversiGames = getCustomRepository(ReversiGameRepository); +export const ReversiMatchings = getCustomRepository(ReversiMatchingRepository); +export const Logs = getRepository(Log); +export const Pages = getCustomRepository(PageRepository); +export const PageLikes = getCustomRepository(PageLikeRepository); +export const ModerationLogs = getCustomRepository(ModerationLogRepository); +export const Clips = getCustomRepository(ClipRepository); +export const ClipNotes = getRepository(ClipNote); +export const Antennas = getCustomRepository(AntennaRepository); +export const AntennaNotes = getRepository(AntennaNote); +export const PromoNotes = getRepository(PromoNote); +export const PromoReads = getRepository(PromoRead); +export const Relays = getCustomRepository(RelayRepository); +export const MutedNotes = getRepository(MutedNote); +export const Channels = getCustomRepository(ChannelRepository); +export const ChannelFollowings = getRepository(ChannelFollowing); +export const ChannelNotePinings = getRepository(ChannelNotePining); diff --git a/src/models/repositories/abuse-user-report.ts b/src/models/repositories/abuse-user-report.ts new file mode 100644 index 000000000..dbdaa5ee1 --- /dev/null +++ b/src/models/repositories/abuse-user-report.ts @@ -0,0 +1,39 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '..'; +import { AbuseUserReport } from '../entities/abuse-user-report'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; + +@EntityRepository(AbuseUserReport) +export class AbuseUserReportRepository extends Repository { + public async pack( + src: AbuseUserReport['id'] | AbuseUserReport, + ) { + const report = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: report.id, + createdAt: report.createdAt, + comment: report.comment, + resolved: report.resolved, + reporterId: report.reporterId, + targetUserId: report.targetUserId, + assigneeId: report.assigneeId, + reporter: Users.pack(report.reporter || report.reporterId, null, { + detail: true + }), + targetUser: Users.pack(report.targetUser || report.targetUserId, null, { + detail: true + }), + assignee: report.assigneeId ? Users.pack(report.assignee || report.assigneeId, null, { + detail: true + }) : null, + }); + } + + public packMany( + reports: any[], + ) { + return Promise.all(reports.map(x => this.pack(x))); + } +} diff --git a/src/models/repositories/antenna.ts b/src/models/repositories/antenna.ts new file mode 100644 index 000000000..16ef2e5a3 --- /dev/null +++ b/src/models/repositories/antenna.ts @@ -0,0 +1,61 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Antenna } from '../entities/antenna'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; +import { AntennaNotes, UserGroupJoinings } from '..'; + +export type PackedAntenna = SchemaType; + +@EntityRepository(Antenna) +export class AntennaRepository extends Repository { + public async pack( + src: Antenna['id'] | Antenna, + ): Promise { + const antenna = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + const hasUnreadNote = (await AntennaNotes.findOne({ antennaId: antenna.id, read: false })) != null; + const userGroupJoining = antenna.userGroupJoiningId ? await UserGroupJoinings.findOne(antenna.userGroupJoiningId) : null; + + return { + id: antenna.id, + createdAt: antenna.createdAt.toISOString(), + name: antenna.name, + keywords: antenna.keywords, + excludeKeywords: antenna.excludeKeywords, + src: antenna.src, + userListId: antenna.userListId, + userGroupId: userGroupJoining ? userGroupJoining.userGroupId : null, + users: antenna.users, + caseSensitive: antenna.caseSensitive, + notify: antenna.notify, + withReplies: antenna.withReplies, + withFile: antenna.withFile, + hasUnreadNote + }; + } +} + +export const packedAntennaSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Antenna.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Antenna was created.' + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of the Antenna.' + }, + }, +}; diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts new file mode 100644 index 000000000..45d8d16c5 --- /dev/null +++ b/src/models/repositories/app.ts @@ -0,0 +1,79 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { App } from '../entities/app'; +import { AccessTokens } from '..'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; + +export type PackedApp = SchemaType; + +@EntityRepository(App) +export class AppRepository extends Repository { + public async pack( + src: App['id'] | App, + me?: any, + options?: { + detail?: boolean, + includeSecret?: boolean, + includeProfileImageIds?: boolean + } + ): Promise { + const opts = Object.assign({ + detail: false, + includeSecret: false, + includeProfileImageIds: false + }, options); + + const app = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: app.id, + name: app.name, + callbackUrl: app.callbackUrl, + permission: app.permission, + ...(opts.includeSecret ? { secret: app.secret } : {}), + ...(me ? { + isAuthorized: await AccessTokens.count({ + appId: app.id, + userId: me, + }).then(count => count > 0) + } : {}) + }; + } +} + +export const packedAppSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Note.', + example: 'xxxxxxxxxx', + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'アプリケーションの名前' + }, + callbackUrl: { + type: 'string' as const, + optional: false as const, nullable: true as const, + description: 'コールバックするURL' + }, + permission: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + } + }, + secret: { + type: 'string' as const, + optional: true as const, nullable: false as const, + description: 'アプリケーションのシークレットキー' + } + }, +}; diff --git a/src/models/repositories/auth-session.ts b/src/models/repositories/auth-session.ts new file mode 100644 index 000000000..a6a4d46de --- /dev/null +++ b/src/models/repositories/auth-session.ts @@ -0,0 +1,21 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Apps } from '..'; +import { AuthSession } from '../entities/auth-session'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; + +@EntityRepository(AuthSession) +export class AuthSessionRepository extends Repository { + public async pack( + src: AuthSession['id'] | AuthSession, + me?: any + ) { + const session = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: session.id, + app: Apps.pack(session.appId, me), + token: session.token + }); + } +} diff --git a/src/models/repositories/blocking.ts b/src/models/repositories/blocking.ts new file mode 100644 index 000000000..9ebe6bbf5 --- /dev/null +++ b/src/models/repositories/blocking.ts @@ -0,0 +1,65 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '..'; +import { Blocking } from '../entities/blocking'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; + +export type PackedBlocking = SchemaType; + +@EntityRepository(Blocking) +export class BlockingRepository extends Repository { + public async pack( + src: Blocking['id'] | Blocking, + me?: any + ): Promise { + const blocking = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: blocking.id, + createdAt: blocking.createdAt.toISOString(), + blockeeId: blocking.blockeeId, + blockee: Users.pack(blocking.blockeeId, me, { + detail: true + }) + }); + } + + public packMany( + blockings: any[], + me: any + ) { + return Promise.all(blockings.map(x => this.pack(x, me))); + } +} + +export const packedBlockingSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this blocking.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the blocking was created.' + }, + blockeeId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + blockee: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + description: 'The blockee.' + }, + } +}; diff --git a/src/models/repositories/channel.ts b/src/models/repositories/channel.ts new file mode 100644 index 000000000..2a9041992 --- /dev/null +++ b/src/models/repositories/channel.ts @@ -0,0 +1,101 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Channel } from '../entities/channel'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; +import { DriveFiles, ChannelFollowings, NoteUnreads } from '..'; +import { User } from '../entities/user'; + +export type PackedChannel = SchemaType; + +@EntityRepository(Channel) +export class ChannelRepository extends Repository { + public async pack( + src: Channel['id'] | Channel, + me?: User['id'] | User | null | undefined, + ): Promise { + const channel = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + const meId = me ? typeof me === 'string' ? me : me.id : null; + + const banner = channel.bannerId ? await DriveFiles.findOne(channel.bannerId) : null; + + const hasUnreadNote = me ? (await NoteUnreads.findOne({ noteChannelId: channel.id, userId: meId })) != null : undefined; + + const following = await ChannelFollowings.findOne({ + followerId: meId, + followeeId: channel.id, + }); + + return { + id: channel.id, + createdAt: channel.createdAt.toISOString(), + lastNotedAt: channel.lastNotedAt ? channel.lastNotedAt.toISOString() : null, + name: channel.name, + description: channel.description, + userId: channel.userId, + bannerUrl: banner ? DriveFiles.getPublicUrl(banner, false) : null, + usersCount: channel.usersCount, + notesCount: channel.notesCount, + + ...(me ? { + isFollowing: following != null, + hasUnreadNote, + } : {}) + }; + } +} + +export const packedChannelSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Channel.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Channel was created.' + }, + lastNotedAt: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'date-time', + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of the Channel.' + }, + description: { + type: 'string' as const, + nullable: true as const, optional: false as const, + }, + bannerUrl: { + type: 'string' as const, + format: 'url', + nullable: true as const, optional: false as const, + }, + notesCount: { + type: 'number' as const, + nullable: false as const, optional: false as const, + }, + usersCount: { + type: 'number' as const, + nullable: false as const, optional: false as const, + }, + isFollowing: { + type: 'boolean' as const, + optional: true as const, nullable: false as const, + }, + userId: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + }, + }, +}; diff --git a/src/models/repositories/clip.ts b/src/models/repositories/clip.ts new file mode 100644 index 000000000..283054652 --- /dev/null +++ b/src/models/repositories/clip.ts @@ -0,0 +1,72 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Clip } from '../entities/clip'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; +import { Users } from '..'; +import { awaitAll } from '../../prelude/await-all'; + +export type PackedClip = SchemaType; + +@EntityRepository(Clip) +export class ClipRepository extends Repository { + public async pack( + src: Clip['id'] | Clip, + ): Promise { + const clip = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: clip.id, + createdAt: clip.createdAt.toISOString(), + userId: clip.userId, + user: Users.pack(clip.user || clip.userId), + name: clip.name, + description: clip.description, + isPublic: clip.isPublic, + }); + } +} + +export const packedClipSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Clip.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Clip was created.' + }, + userId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + user: { + type: 'object' as const, + ref: 'User', + optional: false as const, nullable: false as const, + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of the Clip.' + }, + description: { + type: 'string' as const, + optional: false as const, nullable: true as const, + description: 'The description of the Clip.' + }, + isPublic: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + description: 'Whether this Clip is public.', + }, + }, +}; diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts new file mode 100644 index 000000000..7d1f2b9fe --- /dev/null +++ b/src/models/repositories/drive-file.ts @@ -0,0 +1,205 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { DriveFile } from '../entities/drive-file'; +import { Users, DriveFolders } from '..'; +import { User } from '../entities/user'; +import { toPuny } from '../../misc/convert-host'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; +import config from '../../config'; +import { query, appendQuery } from '../../prelude/url'; +import { Meta } from '../entities/meta'; +import { fetchMeta } from '../../misc/fetch-meta'; + +export type PackedDriveFile = SchemaType; + +@EntityRepository(DriveFile) +export class DriveFileRepository extends Repository { + public validateFileName(name: string): boolean { + return ( + (name.trim().length > 0) && + (name.length <= 200) && + (name.indexOf('\\') === -1) && + (name.indexOf('/') === -1) && + (name.indexOf('..') === -1) + ); + } + + public getPublicUrl(file: DriveFile, thumbnail = false, meta?: Meta): string | null { + // リモートかつメディアプロキシ + if (file.uri != null && file.userHost != null && config.mediaProxy != null) { + return appendQuery(config.mediaProxy, query({ + url: file.uri, + thumbnail: thumbnail ? '1' : undefined + })); + } + + // リモートかつ期限切れはローカルプロキシを試みる + if (file.uri != null && file.isLink && meta && meta.proxyRemoteFiles) { + const key = thumbnail ? file.thumbnailAccessKey : file.webpublicAccessKey; + + if (key && !key.match('/')) { // 古いものはここにオブジェクトストレージキーが入ってるので除外 + return `${config.url}/files/${key}`; + } + } + + const isImage = file.type && ['image/png', 'image/apng', 'image/gif', 'image/jpeg', 'image/webp', 'image/svg+xml'].includes(file.type); + + return thumbnail ? (file.thumbnailUrl || (isImage ? (file.webpublicUrl || file.url) : null)) : (file.webpublicUrl || file.url); + } + + public async clacDriveUsageOf(user: User['id'] | User): Promise { + const id = typeof user === 'object' ? user.id : user; + + const { sum } = await this + .createQueryBuilder('file') + .where('file.userId = :id', { id: id }) + .select('SUM(file.size)', 'sum') + .getRawOne(); + + return parseInt(sum, 10) || 0; + } + + public async clacDriveUsageOfHost(host: string): Promise { + const { sum } = await this + .createQueryBuilder('file') + .where('file.userHost = :host', { host: toPuny(host) }) + .select('SUM(file.size)', 'sum') + .getRawOne(); + + return parseInt(sum, 10) || 0; + } + + public async clacDriveUsageOfLocal(): Promise { + const { sum } = await this + .createQueryBuilder('file') + .where('file.userHost IS NULL') + .select('SUM(file.size)', 'sum') + .getRawOne(); + + return parseInt(sum, 10) || 0; + } + + public async clacDriveUsageOfRemote(): Promise { + const { sum } = await this + .createQueryBuilder('file') + .where('file.userHost IS NOT NULL') + .select('SUM(file.size)', 'sum') + .getRawOne(); + + return parseInt(sum, 10) || 0; + } + + public async pack( + src: DriveFile['id'] | DriveFile, + options?: { + detail?: boolean, + self?: boolean, + withUser?: boolean, + } + ): Promise { + const opts = Object.assign({ + detail: false, + self: false + }, options); + + const file = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + const meta = await fetchMeta(); + + return await awaitAll({ + id: file.id, + createdAt: file.createdAt.toISOString(), + name: file.name, + type: file.type, + md5: file.md5, + size: file.size, + isSensitive: file.isSensitive, + blurhash: file.blurhash, + properties: file.properties, + url: opts.self ? file.url : this.getPublicUrl(file, false, meta), + thumbnailUrl: this.getPublicUrl(file, true, meta), + comment: file.comment, + folderId: file.folderId, + folder: opts.detail && file.folderId ? DriveFolders.pack(file.folderId, { + detail: true + }) : null, + userId: opts.withUser ? file.userId : null, + user: (opts.withUser && file.userId) ? Users.pack(file.userId) : null + }); + } + + public packMany( + files: any[], + options?: { + detail?: boolean + self?: boolean, + withUser?: boolean, + } + ) { + return Promise.all(files.map(f => this.pack(f, options))); + } +} + +export const packedDriveFileSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Drive file.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Drive file was created on Misskey.' + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The file name with extension.', + example: 'lenna.jpg' + }, + type: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The MIME type of this Drive file.', + example: 'image/jpeg' + }, + md5: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'md5', + description: 'The MD5 hash of this Drive file.', + example: '15eca7fba0480996e2245f5185bf39f2' + }, + size: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The size of this Drive file. (bytes)', + example: 51469 + }, + url: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'url', + description: 'The URL of this Drive file.', + }, + folderId: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'id', + description: 'The parent folder ID of this Drive file.', + example: 'xxxxxxxxxx', + }, + isSensitive: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + description: 'Whether this Drive file is sensitive.', + }, + }, +}; diff --git a/src/models/repositories/drive-folder.ts b/src/models/repositories/drive-folder.ts new file mode 100644 index 000000000..dee424ccc --- /dev/null +++ b/src/models/repositories/drive-folder.ts @@ -0,0 +1,100 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { DriveFolders, DriveFiles } from '..'; +import { DriveFolder } from '../entities/drive-folder'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; + +export type PackedDriveFolder = SchemaType; + +@EntityRepository(DriveFolder) +export class DriveFolderRepository extends Repository { + public validateFolderName(name: string): boolean { + return ( + (name.trim().length > 0) && + (name.length <= 200) + ); + } + + public async pack( + src: DriveFolder['id'] | DriveFolder, + options?: { + detail: boolean + } + ): Promise { + const opts = Object.assign({ + detail: false + }, options); + + const folder = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: folder.id, + createdAt: folder.createdAt.toISOString(), + name: folder.name, + parentId: folder.parentId, + + ...(opts.detail ? { + foldersCount: DriveFolders.count({ + parentId: folder.id + }), + filesCount: DriveFiles.count({ + folderId: folder.id + }), + + ...(folder.parentId ? { + parent: this.pack(folder.parentId, { + detail: true + }) + } : {}) + } : {}) + }); + } +} + +export const packedDriveFolderSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Drive folder.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Drive folder was created.' + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The folder name.', + }, + foldersCount: { + type: 'number' as const, + optional: true as const, nullable: false as const, + description: 'The count of child folders.', + }, + filesCount: { + type: 'number' as const, + optional: true as const, nullable: false as const, + description: 'The count of child files.', + }, + parentId: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'id', + description: 'The parent folder ID of this folder.', + example: 'xxxxxxxxxx', + }, + parent: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'DriveFolder' + }, + }, +}; diff --git a/src/models/repositories/emoji.ts b/src/models/repositories/emoji.ts new file mode 100644 index 000000000..b485b37da --- /dev/null +++ b/src/models/repositories/emoji.ts @@ -0,0 +1,27 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Emoji } from '../entities/emoji'; +import { ensure } from '../../prelude/ensure'; + +@EntityRepository(Emoji) +export class EmojiRepository extends Repository { + public async pack( + src: Emoji['id'] | Emoji, + ) { + const emoji = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: emoji.id, + aliases: emoji.aliases, + name: emoji.name, + category: emoji.category, + host: emoji.host, + url: emoji.url, + }; + } + + public packMany( + emojis: any[], + ) { + return Promise.all(emojis.map(x => this.pack(x))); + } +} diff --git a/src/models/repositories/follow-request.ts b/src/models/repositories/follow-request.ts new file mode 100644 index 000000000..451ed8e2d --- /dev/null +++ b/src/models/repositories/follow-request.ts @@ -0,0 +1,20 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { FollowRequest } from '../entities/follow-request'; +import { Users } from '..'; +import { ensure } from '../../prelude/ensure'; + +@EntityRepository(FollowRequest) +export class FollowRequestRepository extends Repository { + public async pack( + src: FollowRequest['id'] | FollowRequest, + me?: any + ) { + const request = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: request.id, + follower: await Users.pack(request.followerId, me), + followee: await Users.pack(request.followeeId, me), + }; + } +} diff --git a/src/models/repositories/following.ts b/src/models/repositories/following.ts new file mode 100644 index 000000000..58728a338 --- /dev/null +++ b/src/models/repositories/following.ts @@ -0,0 +1,130 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '..'; +import { Following } from '../entities/following'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; + +type LocalFollowerFollowing = Following & { + followerHost: null; + followerInbox: null; + followerSharedInbox: null; +}; + +type RemoteFollowerFollowing = Following & { + followerHost: string; + followerInbox: string; + followerSharedInbox: string; +}; + +type LocalFolloweeFollowing = Following & { + followeeHost: null; + followeeInbox: null; + followeeSharedInbox: null; +}; + +type RemoteFolloweeFollowing = Following & { + followeeHost: string; + followeeInbox: string; + followeeSharedInbox: string; +}; + +export type PackedFollowing = SchemaType; + +@EntityRepository(Following) +export class FollowingRepository extends Repository { + public isLocalFollower(following: Following): following is LocalFollowerFollowing { + return following.followerHost == null; + } + + public isRemoteFollower(following: Following): following is RemoteFollowerFollowing { + return following.followerHost != null; + } + + public isLocalFollowee(following: Following): following is LocalFolloweeFollowing { + return following.followeeHost == null; + } + + public isRemoteFollowee(following: Following): following is RemoteFolloweeFollowing { + return following.followeeHost != null; + } + + public async pack( + src: Following['id'] | Following, + me?: any, + opts?: { + populateFollowee?: boolean; + populateFollower?: boolean; + } + ): Promise { + const following = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + if (opts == null) opts = {}; + + return await awaitAll({ + id: following.id, + createdAt: following.createdAt.toISOString(), + followeeId: following.followeeId, + followerId: following.followerId, + followee: opts.populateFollowee ? Users.pack(following.followee || following.followeeId, me, { + detail: true + }) : undefined, + follower: opts.populateFollower ? Users.pack(following.follower || following.followerId, me, { + detail: true + }) : undefined, + }); + } + + public packMany( + followings: any[], + me?: any, + opts?: { + populateFollowee?: boolean; + populateFollower?: boolean; + } + ) { + return Promise.all(followings.map(x => this.pack(x, me, opts))); + } +} + +export const packedFollowingSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this following.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the following was created.' + }, + followeeId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + followee: { + type: 'object' as const, + optional: true as const, nullable: false as const, + ref: 'User', + description: 'The followee.' + }, + followerId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + follower: { + type: 'object' as const, + optional: true as const, nullable: false as const, + ref: 'User', + description: 'The follower.' + }, + } +}; diff --git a/src/models/repositories/games/reversi/game.ts b/src/models/repositories/games/reversi/game.ts new file mode 100644 index 000000000..c380f5251 --- /dev/null +++ b/src/models/repositories/games/reversi/game.ts @@ -0,0 +1,50 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '../../..'; +import { ReversiGame } from '../../../entities/games/reversi/game'; +import { ensure } from '../../../../prelude/ensure'; + +@EntityRepository(ReversiGame) +export class ReversiGameRepository extends Repository { + public async pack( + src: ReversiGame['id'] | ReversiGame, + me?: any, + options?: { + detail?: boolean + } + ) { + const opts = Object.assign({ + detail: true + }, options); + + const game = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + const meId = me ? typeof me === 'string' ? me : me.id : null; + + return { + id: game.id, + createdAt: game.createdAt, + startedAt: game.startedAt, + isStarted: game.isStarted, + isEnded: game.isEnded, + form1: game.form1, + form2: game.form2, + user1Accepted: game.user1Accepted, + user2Accepted: game.user2Accepted, + user1Id: game.user1Id, + user2Id: game.user2Id, + user1: await Users.pack(game.user1Id, meId), + user2: await Users.pack(game.user2Id, meId), + winnerId: game.winnerId, + winner: game.winnerId ? await Users.pack(game.winnerId, meId) : null, + surrendered: game.surrendered, + black: game.black, + bw: game.bw, + isLlotheo: game.isLlotheo, + canPutEverywhere: game.canPutEverywhere, + loopedBoard: game.loopedBoard, + ...(opts.detail ? { + logs: game.logs, + map: game.map, + } : {}) + }; + } +} diff --git a/src/models/repositories/games/reversi/matching.ts b/src/models/repositories/games/reversi/matching.ts new file mode 100644 index 000000000..86c920445 --- /dev/null +++ b/src/models/repositories/games/reversi/matching.ts @@ -0,0 +1,28 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { ReversiMatching } from '../../../entities/games/reversi/matching'; +import { Users } from '../../..'; +import { ensure } from '../../../../prelude/ensure'; +import { awaitAll } from '../../../../prelude/await-all'; + +@EntityRepository(ReversiMatching) +export class ReversiMatchingRepository extends Repository { + public async pack( + src: ReversiMatching['id'] | ReversiMatching, + me: any + ) { + const matching = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: matching.id, + createdAt: matching.createdAt, + parentId: matching.parentId, + parent: Users.pack(matching.parentId, me, { + detail: true + }), + childId: matching.childId, + child: Users.pack(matching.childId, me, { + detail: true + }) + }); + } +} diff --git a/src/models/repositories/hashtag.ts b/src/models/repositories/hashtag.ts new file mode 100644 index 000000000..fb54a12e1 --- /dev/null +++ b/src/models/repositories/hashtag.ts @@ -0,0 +1,71 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Hashtag } from '../entities/hashtag'; +import { SchemaType } from '../../misc/schema'; + +export type PackedHashtag = SchemaType; + +@EntityRepository(Hashtag) +export class HashtagRepository extends Repository { + public async pack( + src: Hashtag, + ): Promise { + return { + tag: src.name, + mentionedUsersCount: src.mentionedUsersCount, + mentionedLocalUsersCount: src.mentionedLocalUsersCount, + mentionedRemoteUsersCount: src.mentionedRemoteUsersCount, + attachedUsersCount: src.attachedUsersCount, + attachedLocalUsersCount: src.attachedLocalUsersCount, + attachedRemoteUsersCount: src.attachedRemoteUsersCount, + }; + } + + public packMany( + hashtags: Hashtag[], + ) { + return Promise.all(hashtags.map(x => this.pack(x))); + } +} + +export const packedHashtagSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + tag: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The hashtag name. No # prefixed.', + example: 'misskey', + }, + mentionedUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of all users using this hashtag.' + }, + mentionedLocalUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of local users using this hashtag.' + }, + mentionedRemoteUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of remote users using this hashtag.' + }, + attachedUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of all users who attached this hashtag to profile.' + }, + attachedLocalUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of local users who attached this hashtag to profile.' + }, + attachedRemoteUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Number of remote users who attached this hashtag to profile.' + }, + } +}; diff --git a/src/models/repositories/messaging-message.ts b/src/models/repositories/messaging-message.ts new file mode 100644 index 000000000..d70e95bc1 --- /dev/null +++ b/src/models/repositories/messaging-message.ts @@ -0,0 +1,123 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { MessagingMessage } from '../entities/messaging-message'; +import { Users, DriveFiles, UserGroups } from '..'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; + +export type PackedMessagingMessage = SchemaType; + +@EntityRepository(MessagingMessage) +export class MessagingMessageRepository extends Repository { + public validateText(text: string): boolean { + return text.trim().length <= 1000 && text.trim() != ''; + } + + public async pack( + src: MessagingMessage['id'] | MessagingMessage, + me?: any, + options?: { + populateRecipient?: boolean, + populateGroup?: boolean, + } + ): Promise { + const opts = options || { + populateRecipient: true, + populateGroup: true, + }; + + const message = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: message.id, + createdAt: message.createdAt.toISOString(), + text: message.text, + userId: message.userId, + user: await Users.pack(message.user || message.userId, me), + recipientId: message.recipientId, + recipient: message.recipientId && opts.populateRecipient ? await Users.pack(message.recipient || message.recipientId, me) : undefined, + groupId: message.groupId, + group: message.groupId && opts.populateGroup ? await UserGroups.pack(message.group || message.groupId) : undefined, + fileId: message.fileId, + file: message.fileId ? await DriveFiles.pack(message.fileId) : null, + isRead: message.isRead, + reads: message.reads, + }; + } +} + +export const packedMessagingMessageSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this MessagingMessage.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the MessagingMessage was created.' + }, + userId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + user: { + type: 'object' as const, + ref: 'User', + optional: true as const, nullable: false as const, + }, + text: { + type: 'string' as const, + optional: false as const, nullable: true as const, + }, + fileId: { + type: 'string' as const, + optional: true as const, nullable: true as const, + format: 'id', + }, + file: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'DriveFile', + }, + recipientId: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'id', + }, + recipient: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'User' + }, + groupId: { + type: 'string' as const, + optional: false as const, nullable: true as const, + format: 'id', + }, + group: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'UserGroup' + }, + isRead: { + type: 'boolean' as const, + optional: true as const, nullable: false as const, + }, + reads: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id' + } + }, + }, +}; diff --git a/src/models/repositories/moderation-logs.ts b/src/models/repositories/moderation-logs.ts new file mode 100644 index 000000000..d6e04795b --- /dev/null +++ b/src/models/repositories/moderation-logs.ts @@ -0,0 +1,31 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '..'; +import { ModerationLog } from '../entities/moderation-log'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; + +@EntityRepository(ModerationLog) +export class ModerationLogRepository extends Repository { + public async pack( + src: ModerationLog['id'] | ModerationLog, + ) { + const log = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: log.id, + createdAt: log.createdAt, + type: log.type, + info: log.info, + userId: log.userId, + user: Users.pack(log.user || log.userId, null, { + detail: true + }), + }); + } + + public packMany( + reports: any[], + ) { + return Promise.all(reports.map(x => this.pack(x))); + } +} diff --git a/src/models/repositories/muting.ts b/src/models/repositories/muting.ts new file mode 100644 index 000000000..763e04bb3 --- /dev/null +++ b/src/models/repositories/muting.ts @@ -0,0 +1,65 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users } from '..'; +import { Muting } from '../entities/muting'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; + +export type PackedMuting = SchemaType; + +@EntityRepository(Muting) +export class MutingRepository extends Repository { + public async pack( + src: Muting['id'] | Muting, + me?: any + ): Promise { + const muting = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return await awaitAll({ + id: muting.id, + createdAt: muting.createdAt.toISOString(), + muteeId: muting.muteeId, + mutee: Users.pack(muting.muteeId, me, { + detail: true + }) + }); + } + + public packMany( + mutings: any[], + me: any + ) { + return Promise.all(mutings.map(x => this.pack(x, me))); + } +} + +export const packedMutingSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this muting.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the muting was created.' + }, + muteeId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + mutee: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + description: 'The mutee.' + }, + } +}; diff --git a/src/models/repositories/note-favorite.ts b/src/models/repositories/note-favorite.ts new file mode 100644 index 000000000..37cfbc002 --- /dev/null +++ b/src/models/repositories/note-favorite.ts @@ -0,0 +1,58 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { NoteFavorite } from '../entities/note-favorite'; +import { Notes } from '..'; +import { ensure } from '../../prelude/ensure'; + +@EntityRepository(NoteFavorite) +export class NoteFavoriteRepository extends Repository { + public async pack( + src: NoteFavorite['id'] | NoteFavorite, + me?: any + ) { + const favorite = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: favorite.id, + createdAt: favorite.createdAt, + noteId: favorite.noteId, + note: await Notes.pack(favorite.note || favorite.noteId, me), + }; + } + + public packMany( + favorites: any[], + me: any + ) { + return Promise.all(favorites.map(x => this.pack(x, me))); + } +} + +export const packedNoteFavoriteSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this favorite.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the favorite was created.' + }, + note: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + }, + noteId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + }, +}; diff --git a/src/models/repositories/note-reaction.ts b/src/models/repositories/note-reaction.ts new file mode 100644 index 000000000..3439f3c8c --- /dev/null +++ b/src/models/repositories/note-reaction.ts @@ -0,0 +1,56 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { NoteReaction } from '../entities/note-reaction'; +import { Users } from '..'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; +import { convertLegacyReaction } from '../../misc/reaction-lib'; + +export type PackedNoteReaction = SchemaType; + +@EntityRepository(NoteReaction) +export class NoteReactionRepository extends Repository { + public async pack( + src: NoteReaction['id'] | NoteReaction, + me?: any + ): Promise { + const reaction = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: reaction.id, + createdAt: reaction.createdAt.toISOString(), + user: await Users.pack(reaction.userId, me), + type: convertLegacyReaction(reaction.reaction), + }; + } +} + +export const packedNoteReactionSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this reaction.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the reaction was created.' + }, + user: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + description: 'User who performed this reaction.' + }, + type: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The reaction type.' + }, + }, +}; diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts new file mode 100644 index 000000000..b60744bb2 --- /dev/null +++ b/src/models/repositories/note.ts @@ -0,0 +1,417 @@ +import { EntityRepository, Repository, In } from 'typeorm'; +import { Note } from '../entities/note'; +import { User } from '../entities/user'; +import { Emojis, Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '..'; +import { ensure } from '../../prelude/ensure'; +import { SchemaType } from '../../misc/schema'; +import { awaitAll } from '../../prelude/await-all'; +import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '../../misc/reaction-lib'; +import { toString } from '../../mfm/to-string'; +import { parse } from '../../mfm/parse'; +import { Emoji } from '../entities/emoji'; +import { concat } from '../../prelude/array'; + +export type PackedNote = SchemaType; + +@EntityRepository(Note) +export class NoteRepository extends Repository { + public validateCw(x: string) { + return x.trim().length <= 100; + } + + private async hideNote(packedNote: PackedNote, meId: User['id'] | null) { + let hide = false; + + // visibility が specified かつ自分が指定されていなかったら非表示 + if (packedNote.visibility === 'specified') { + if (meId == null) { + hide = true; + } else if (meId === packedNote.userId) { + hide = false; + } else { + // 指定されているかどうか + const specified = packedNote.visibleUserIds!.some((id: any) => meId === id); + + if (specified) { + hide = false; + } else { + hide = true; + } + } + } + + // visibility が followers かつ自分が投稿者のフォロワーでなかったら非表示 + if (packedNote.visibility === 'followers') { + if (meId == null) { + hide = true; + } else if (meId === packedNote.userId) { + hide = false; + } else if (packedNote.reply && (meId === (packedNote.reply as PackedNote).userId)) { + // 自分の投稿に対するリプライ + hide = false; + } else if (packedNote.mentions && packedNote.mentions.some(id => meId === id)) { + // 自分へのメンション + hide = false; + } else { + // フォロワーかどうか + const following = await Followings.findOne({ + followeeId: packedNote.userId, + followerId: meId + }); + + if (following == null) { + hide = true; + } else { + hide = false; + } + } + } + + if (hide) { + packedNote.visibleUserIds = undefined; + packedNote.fileIds = []; + packedNote.files = []; + packedNote.text = null; + packedNote.poll = undefined; + packedNote.cw = null; + packedNote.isHidden = true; + } + } + + public async pack( + src: Note['id'] | Note, + me?: User['id'] | User | null | undefined, + options?: { + detail?: boolean; + skipHide?: boolean; + } + ): Promise { + const opts = Object.assign({ + detail: true, + skipHide: false + }, options); + + const meId = me ? typeof me === 'string' ? me : me.id : null; + const note = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + const host = note.userHost; + + async function populatePoll() { + const poll = await Polls.findOne(note.id).then(ensure); + const choices = poll.choices.map(c => ({ + text: c, + votes: poll.votes[poll.choices.indexOf(c)], + isVoted: false + })); + + if (poll.multiple) { + const votes = await PollVotes.find({ + userId: meId!, + noteId: note.id + }); + + const myChoices = votes.map(v => v.choice); + for (const myChoice of myChoices) { + choices[myChoice].isVoted = true; + } + } else { + const vote = await PollVotes.findOne({ + userId: meId!, + noteId: note.id + }); + + if (vote) { + choices[vote.choice].isVoted = true; + } + } + + return { + multiple: poll.multiple, + expiresAt: poll.expiresAt, + choices + }; + } + + /** + * 添付用emojisを解決する + * @param emojiNames Note等に添付されたカスタム絵文字名 (:は含めない) + * @param noteUserHost Noteのホスト + * @param reactionNames Note等にリアクションされたカスタム絵文字名 (:は含めない) + */ + async function populateEmojis(emojiNames: string[], noteUserHost: string | null, reactionNames: string[]) { + let all = [] as { + name: string, + url: string + }[]; + + // カスタム絵文字 + if (emojiNames?.length > 0) { + const tmp = await Emojis.find({ + where: { + name: In(emojiNames), + host: noteUserHost + }, + select: ['name', 'host', 'url'] + }).then(emojis => emojis.map((emoji: Emoji) => { + return { + name: emoji.name, + url: emoji.url, + }; + })); + + all = concat([all, tmp]); + } + + const customReactions = reactionNames?.map(x => decodeReaction(x)).filter(x => x.name); + + if (customReactions?.length > 0) { + const where = [] as {}[]; + + for (const customReaction of customReactions) { + where.push({ + name: customReaction.name, + host: customReaction.host + }); + } + + const tmp = await Emojis.find({ + where, + select: ['name', 'host', 'url'] + }).then(emojis => emojis.map((emoji: Emoji) => { + return { + name: `${emoji.name}@${emoji.host || '.'}`, // @host付きでローカルは. + url: emoji.url, + }; + })); + all = concat([all, tmp]); + } + + return all; + } + + async function populateMyReaction() { + const reaction = await NoteReactions.findOne({ + userId: meId!, + noteId: note.id, + }); + + if (reaction) { + return convertLegacyReaction(reaction.reaction); + } + + return undefined; + } + + let text = note.text; + + if (note.name && (note.url || note.uri)) { + text = `【${note.name}】\n${(note.text || '').trim()}\n\n${note.url || note.uri}`; + } + + const channel = note.channelId + ? note.channel + ? note.channel + : await Channels.findOne(note.channelId) + : null; + + const packed = await awaitAll({ + id: note.id, + createdAt: note.createdAt.toISOString(), + userId: note.userId, + user: Users.pack(note.user || note.userId, meId), + text: text, + cw: note.cw, + visibility: note.visibility, + localOnly: note.localOnly || undefined, + visibleUserIds: note.visibility === 'specified' ? note.visibleUserIds : undefined, + viaMobile: note.viaMobile || undefined, + renoteCount: note.renoteCount, + repliesCount: note.repliesCount, + reactions: convertLegacyReactions(note.reactions), + tags: note.tags.length > 0 ? note.tags : undefined, + emojis: populateEmojis(note.emojis, host, Object.keys(note.reactions)), + fileIds: note.fileIds, + files: DriveFiles.packMany(note.fileIds), + replyId: note.replyId, + renoteId: note.renoteId, + channelId: note.channelId || undefined, + channel: channel ? { + id: channel.id, + name: channel.name, + } : undefined, + mentions: note.mentions.length > 0 ? note.mentions : undefined, + uri: note.uri || undefined, + url: note.url || undefined, + _featuredId_: (note as any)._featuredId_ || undefined, + _prId_: (note as any)._prId_ || undefined, + + ...(opts.detail ? { + reply: note.replyId ? this.pack(note.replyId, meId, { + detail: false + }) : undefined, + + renote: note.renoteId ? this.pack(note.renoteId, meId, { + detail: true + }) : undefined, + + poll: note.hasPoll ? populatePoll() : undefined, + + ...(meId ? { + myReaction: populateMyReaction() + } : {}) + } : {}) + }); + + if (packed.user.isCat && packed.text) { + const tokens = packed.text ? parse(packed.text) : []; + packed.text = toString(tokens, { doNyaize: true }); + } + + if (!opts.skipHide) { + await this.hideNote(packed, meId); + } + + return packed; + } + + public packMany( + notes: (Note['id'] | Note)[], + me?: User['id'] | User | null | undefined, + options?: { + detail?: boolean; + skipHide?: boolean; + } + ) { + return Promise.all(notes.map(n => this.pack(n, me, options))); + } +} + +export const packedNoteSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this Note.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the Note was created on Misskey.' + }, + text: { + type: 'string' as const, + optional: false as const, nullable: true as const, + }, + cw: { + type: 'string' as const, + optional: true as const, nullable: true as const, + }, + userId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + user: { + type: 'object' as const, + ref: 'User', + optional: false as const, nullable: false as const, + }, + replyId: { + type: 'string' as const, + optional: true as const, nullable: true as const, + format: 'id', + example: 'xxxxxxxxxx', + }, + renoteId: { + type: 'string' as const, + optional: true as const, nullable: true as const, + format: 'id', + example: 'xxxxxxxxxx', + }, + reply: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'Note' + }, + renote: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'Note' + }, + viaMobile: { + type: 'boolean' as const, + optional: true as const, nullable: false as const, + }, + isHidden: { + type: 'boolean' as const, + optional: true as const, nullable: false as const, + }, + visibility: { + type: 'string' as const, + optional: false as const, nullable: false as const, + }, + mentions: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id' + } + }, + visibleUserIds: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id' + } + }, + fileIds: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id' + } + }, + files: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile' + } + }, + tags: { + type: 'array' as const, + optional: true as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + } + }, + poll: { + type: 'object' as const, + optional: true as const, nullable: true as const, + }, + channelId: { + type: 'string' as const, + optional: true as const, nullable: true as const, + format: 'id', + example: 'xxxxxxxxxx', + }, + channel: { + type: 'object' as const, + optional: true as const, nullable: true as const, + ref: 'Channel' + }, + }, +}; diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts new file mode 100644 index 000000000..40f43d6c1 --- /dev/null +++ b/src/models/repositories/notification.ts @@ -0,0 +1,97 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Users, Notes, UserGroupInvitations, AccessTokens } from '..'; +import { Notification } from '../entities/notification'; +import { ensure } from '../../prelude/ensure'; +import { awaitAll } from '../../prelude/await-all'; +import { SchemaType } from '../../misc/schema'; + +export type PackedNotification = SchemaType; + +@EntityRepository(Notification) +export class NotificationRepository extends Repository { + public async pack( + src: Notification['id'] | Notification, + ): Promise { + const notification = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + const token = notification.appAccessTokenId ? await AccessTokens.findOne(notification.appAccessTokenId).then(ensure) : null; + + return await awaitAll({ + id: notification.id, + createdAt: notification.createdAt.toISOString(), + type: notification.type, + isRead: notification.isRead, + userId: notification.notifierId, + user: notification.notifierId ? Users.pack(notification.notifier || notification.notifierId) : null, + ...(notification.type === 'mention' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + } : {}), + ...(notification.type === 'reply' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + } : {}), + ...(notification.type === 'renote' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + } : {}), + ...(notification.type === 'quote' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + } : {}), + ...(notification.type === 'reaction' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + reaction: notification.reaction + } : {}), + ...(notification.type === 'pollVote' ? { + note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId), + choice: notification.choice + } : {}), + ...(notification.type === 'groupInvited' ? { + invitation: UserGroupInvitations.pack(notification.userGroupInvitationId!), + } : {}), + ...(notification.type === 'app' ? { + body: notification.customBody, + header: notification.customHeader || token?.name, + icon: notification.customIcon || token?.iconUrl, + } : {}), + }); + } + + public packMany( + notifications: any[], + ) { + return Promise.all(notifications.map(x => this.pack(x))); + } +} + +export const packedNotificationSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this notification.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the notification was created.' + }, + type: { + type: 'string' as const, + optional: false as const, nullable: false as const, + enum: ['follow', 'followRequestAccepted', 'receiveFollowRequest', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote'], + description: 'The type of the notification.' + }, + userId: { + type: 'string' as const, + optional: true as const, nullable: true as const, + format: 'id', + }, + user: { + type: 'object' as const, + ref: 'User', + optional: true as const, nullable: true as const, + }, + } +}; diff --git a/src/models/repositories/page-like.ts b/src/models/repositories/page-like.ts new file mode 100644 index 000000000..3e7e803fd --- /dev/null +++ b/src/models/repositories/page-like.ts @@ -0,0 +1,26 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { PageLike } from '../entities/page-like'; +import { Pages } from '..'; +import { ensure } from '../../prelude/ensure'; + +@EntityRepository(PageLike) +export class PageLikeRepository extends Repository { + public async pack( + src: PageLike['id'] | PageLike, + me?: any + ) { + const like = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: like.id, + page: await Pages.pack(like.page || like.pageId, me), + }; + } + + public packMany( + likes: any[], + me: any + ) { + return Promise.all(likes.map(x => this.pack(x, me))); + } +} diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts new file mode 100644 index 000000000..3889bf59a --- /dev/null +++ b/src/models/repositories/page.ts @@ -0,0 +1,145 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Page } from '../entities/page'; +import { SchemaType } from '../../misc/schema'; +import { Users, DriveFiles, PageLikes } from '..'; +import { awaitAll } from '../../prelude/await-all'; +import { DriveFile } from '../entities/drive-file'; +import { User } from '../entities/user'; +import { ensure } from '../../prelude/ensure'; + +export type PackedPage = SchemaType; + +@EntityRepository(Page) +export class PageRepository extends Repository { + public async pack( + src: Page['id'] | Page, + me?: User['id'] | User | null | undefined, + ): Promise { + const meId = me ? typeof me === 'string' ? me : me.id : null; + const page = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + const attachedFiles: Promise[] = []; + const collectFile = (xs: any[]) => { + for (const x of xs) { + if (x.type === 'image') { + attachedFiles.push(DriveFiles.findOne({ + id: x.fileId, + userId: page.userId + })); + } + if (x.children) { + collectFile(x.children); + } + } + }; + collectFile(page.content); + + // 後方互換性のため + let migrated = false; + const migrate = (xs: any[]) => { + for (const x of xs) { + if (x.type === 'input') { + if (x.inputType === 'text') { + x.type = 'textInput'; + } + if (x.inputType === 'number') { + x.type = 'numberInput'; + if (x.default) x.default = parseInt(x.default, 10); + } + migrated = true; + } + if (x.children) { + migrate(x.children); + } + } + }; + migrate(page.content); + if (migrated) { + this.update(page.id, { + content: page.content + }); + } + + return await awaitAll({ + id: page.id, + createdAt: page.createdAt.toISOString(), + updatedAt: page.updatedAt.toISOString(), + userId: page.userId, + user: Users.pack(page.user || page.userId, me), // { detail: true } すると無限ループするので注意 + content: page.content, + variables: page.variables, + title: page.title, + name: page.name, + summary: page.summary, + hideTitleWhenPinned: page.hideTitleWhenPinned, + alignCenter: page.alignCenter, + font: page.font, + script: page.script, + eyeCatchingImageId: page.eyeCatchingImageId, + eyeCatchingImage: page.eyeCatchingImageId ? await DriveFiles.pack(page.eyeCatchingImageId) : null, + attachedFiles: DriveFiles.packMany(await Promise.all(attachedFiles)), + likedCount: page.likedCount, + isLiked: meId ? await PageLikes.findOne({ pageId: page.id, userId: meId }).then(x => x != null) : undefined, + }); + } + + public packMany( + pages: Page[], + me?: User['id'] | User | null | undefined, + ) { + return Promise.all(pages.map(x => this.pack(x, me))); + } +} + +export const packedPageSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + }, + updatedAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + }, + title: { + type: 'string' as const, + optional: false as const, nullable: false as const, + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + }, + summary: { + type: 'string' as const, + optional: false as const, nullable: true as const, + }, + content: { + type: 'array' as const, + optional: false as const, nullable: false as const, + }, + variables: { + type: 'array' as const, + optional: false as const, nullable: false as const, + }, + userId: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + }, + user: { + type: 'object' as const, + ref: 'User', + optional: false as const, nullable: false as const, + }, + } +}; diff --git a/src/models/repositories/relay.ts b/src/models/repositories/relay.ts new file mode 100644 index 000000000..601bb5eb3 --- /dev/null +++ b/src/models/repositories/relay.ts @@ -0,0 +1,6 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Relay } from '../entities/relay'; + +@EntityRepository(Relay) +export class RelayRepository extends Repository { +} diff --git a/src/models/repositories/signin.ts b/src/models/repositories/signin.ts new file mode 100644 index 000000000..f5b90c0e9 --- /dev/null +++ b/src/models/repositories/signin.ts @@ -0,0 +1,11 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { Signin } from '../entities/signin'; + +@EntityRepository(Signin) +export class SigninRepository extends Repository { + public async pack( + src: any, + ) { + return src; + } +} diff --git a/src/models/repositories/user-group-invitation.ts b/src/models/repositories/user-group-invitation.ts new file mode 100644 index 000000000..0d3ad525c --- /dev/null +++ b/src/models/repositories/user-group-invitation.ts @@ -0,0 +1,24 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { UserGroupInvitation } from '../entities/user-group-invitation'; +import { UserGroups } from '..'; +import { ensure } from '../../prelude/ensure'; + +@EntityRepository(UserGroupInvitation) +export class UserGroupInvitationRepository extends Repository { + public async pack( + src: UserGroupInvitation['id'] | UserGroupInvitation, + ) { + const invitation = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + return { + id: invitation.id, + group: await UserGroups.pack(invitation.userGroup || invitation.userGroupId), + }; + } + + public packMany( + invitations: any[], + ) { + return Promise.all(invitations.map(x => this.pack(x))); + } +} diff --git a/src/models/repositories/user-group.ts b/src/models/repositories/user-group.ts new file mode 100644 index 000000000..5ff75047c --- /dev/null +++ b/src/models/repositories/user-group.ts @@ -0,0 +1,67 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { UserGroup } from '../entities/user-group'; +import { ensure } from '../../prelude/ensure'; +import { UserGroupJoinings } from '..'; +import { SchemaType } from '../../misc/schema'; + +export type PackedUserGroup = SchemaType; + +@EntityRepository(UserGroup) +export class UserGroupRepository extends Repository { + public async pack( + src: UserGroup['id'] | UserGroup, + ): Promise { + const userGroup = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + const users = await UserGroupJoinings.find({ + userGroupId: userGroup.id + }); + + return { + id: userGroup.id, + createdAt: userGroup.createdAt.toISOString(), + name: userGroup.name, + ownerId: userGroup.userId, + userIds: users.map(x => x.userId) + }; + } +} + +export const packedUserGroupSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this UserGroup.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the UserGroup was created.' + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of the UserGroup.' + }, + ownerId: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + }, + userIds: { + type: 'array' as const, + nullable: false as const, optional: true as const, + items: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + } + }, + }, +}; diff --git a/src/models/repositories/user-list.ts b/src/models/repositories/user-list.ts new file mode 100644 index 000000000..8842118be --- /dev/null +++ b/src/models/repositories/user-list.ts @@ -0,0 +1,61 @@ +import { EntityRepository, Repository } from 'typeorm'; +import { UserList } from '../entities/user-list'; +import { ensure } from '../../prelude/ensure'; +import { UserListJoinings } from '..'; +import { SchemaType } from '../../misc/schema'; + +export type PackedUserList = SchemaType; + +@EntityRepository(UserList) +export class UserListRepository extends Repository { + public async pack( + src: UserList['id'] | UserList, + ): Promise { + const userList = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + + const users = await UserListJoinings.find({ + userListId: userList.id + }); + + return { + id: userList.id, + createdAt: userList.createdAt.toISOString(), + name: userList.name, + userIds: users.map(x => x.userId) + }; + } +} + +export const packedUserListSchema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + id: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'id', + description: 'The unique identifier for this UserList.', + example: 'xxxxxxxxxx', + }, + createdAt: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'date-time', + description: 'The date that the UserList was created.' + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of the UserList.' + }, + userIds: { + type: 'array' as const, + nullable: false as const, optional: true as const, + items: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + } + }, + }, +}; diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts new file mode 100644 index 000000000..a33419683 --- /dev/null +++ b/src/models/repositories/user.ts @@ -0,0 +1,466 @@ +import $ from 'cafy'; +import { EntityRepository, Repository, In, Not } from 'typeorm'; +import { User, ILocalUser, IRemoteUser } from '../entities/user'; +import { Emojis, Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '..'; +import { ensure } from '../../prelude/ensure'; +import config from '../../config'; +import { SchemaType } from '../../misc/schema'; +import { awaitAll } from '../../prelude/await-all'; + +export type PackedUser = SchemaType; + +@EntityRepository(User) +export class UserRepository extends Repository { + public async getRelation(me: User['id'], target: User['id']) { + const [following1, following2, followReq1, followReq2, toBlocking, fromBlocked, mute] = await Promise.all([ + Followings.findOne({ + followerId: me, + followeeId: target + }), + Followings.findOne({ + followerId: target, + followeeId: me + }), + FollowRequests.findOne({ + followerId: me, + followeeId: target + }), + FollowRequests.findOne({ + followerId: target, + followeeId: me + }), + Blockings.findOne({ + blockerId: me, + blockeeId: target + }), + Blockings.findOne({ + blockerId: target, + blockeeId: me + }), + Mutings.findOne({ + muterId: me, + muteeId: target + }) + ]); + + return { + id: target, + isFollowing: following1 != null, + hasPendingFollowRequestFromYou: followReq1 != null, + hasPendingFollowRequestToYou: followReq2 != null, + isFollowed: following2 != null, + isBlocking: toBlocking != null, + isBlocked: fromBlocked != null, + isMuted: mute != null + }; + } + + public async getHasUnreadMessagingMessage(userId: User['id']): Promise { + const mute = await Mutings.find({ + muterId: userId + }); + + const joinings = await UserGroupJoinings.find({ userId: userId }); + + const groupQs = Promise.all(joinings.map(j => MessagingMessages.createQueryBuilder('message') + .where(`message.groupId = :groupId`, { groupId: j.userGroupId }) + .andWhere('message.userId != :userId', { userId: userId }) + .andWhere('NOT (:userId = ANY(message.reads))', { userId: userId }) + .andWhere('message.createdAt > :joinedAt', { joinedAt: j.createdAt }) // 自分が加入する前の会話については、未読扱いしない + .getOne().then(x => x != null))); + + const [withUser, withGroups] = await Promise.all([ + MessagingMessages.count({ + where: { + recipientId: userId, + isRead: false, + ...(mute.length > 0 ? { userId: Not(In(mute.map(x => x.muteeId))) } : {}), + }, + take: 1 + }).then(count => count > 0), + groupQs + ]); + + return withUser || withGroups.some(x => x); + } + + public async getHasUnreadAnnouncement(userId: User['id']): Promise { + const reads = await AnnouncementReads.find({ + userId: userId + }); + + const count = await Announcements.count(reads.length > 0 ? { + id: Not(In(reads.map(read => read.announcementId))) + } : {}); + + return count > 0; + } + + public async getHasUnreadAntenna(userId: User['id']): Promise { + const antennas = await Antennas.find({ userId }); + + const unread = antennas.length > 0 ? await AntennaNotes.findOne({ + antennaId: In(antennas.map(x => x.id)), + read: false + }) : null; + + return unread != null; + } + + public async getHasUnreadChannel(userId: User['id']): Promise { + const channels = await ChannelFollowings.find({ followerId: userId }); + + const unread = channels.length > 0 ? await NoteUnreads.findOne({ + userId: userId, + noteChannelId: In(channels.map(x => x.id)), + }) : null; + + return unread != null; + } + + public async getHasUnreadNotification(userId: User['id']): Promise { + const mute = await Mutings.find({ + muterId: userId + }); + const mutedUserIds = mute.map(m => m.muteeId); + + const count = await Notifications.count({ + where: { + notifieeId: userId, + ...(mutedUserIds.length > 0 ? { notifierId: Not(In(mutedUserIds)) } : {}), + isRead: false + }, + take: 1 + }); + + return count > 0; + } + + public async getHasPendingReceivedFollowRequest(userId: User['id']): Promise { + const count = await FollowRequests.count({ + followeeId: userId + }); + + return count > 0; + } + + public async pack( + src: User['id'] | User, + me?: User['id'] | User | null | undefined, + options?: { + detail?: boolean, + includeSecrets?: boolean, + } + ): Promise { + const opts = Object.assign({ + detail: false, + includeSecrets: false + }, options); + + const user = typeof src === 'object' ? src : await this.findOne(src).then(ensure); + const meId = me ? typeof me === 'string' ? me : me.id : null; + + const relation = meId && (meId !== user.id) && opts.detail ? await this.getRelation(meId, user.id) : null; + const pins = opts.detail ? await UserNotePinings.find({ + where: { userId: user.id }, + order: { id: 'DESC' } + }) : []; + const profile = opts.detail ? await UserProfiles.findOne(user.id).then(ensure) : null; + + const falsy = opts.detail ? false : undefined; + + const packed = { + id: user.id, + name: user.name, + username: user.username, + host: user.host, + avatarUrl: user.avatarUrl ? user.avatarUrl : config.url + '/avatar/' + user.id, + avatarBlurhash: user.avatarBlurhash, + avatarColor: null, // 後方互換性のため + isAdmin: user.isAdmin || falsy, + isModerator: user.isModerator || falsy, + isBot: user.isBot || falsy, + isCat: user.isCat || falsy, + instance: user.host ? Instances.findOne({ host: user.host }).then(instance => instance ? { + name: instance.name, + softwareName: instance.softwareName, + softwareVersion: instance.softwareVersion, + iconUrl: instance.iconUrl, + faviconUrl: instance.faviconUrl, + themeColor: instance.themeColor, + } : undefined) : undefined, + + // カスタム絵文字添付 + emojis: user.emojis.length > 0 ? Emojis.find({ + where: { + name: In(user.emojis), + host: user.host + }, + select: ['name', 'host', 'url', 'aliases'] + }) : [], + + ...(opts.detail ? { + url: profile!.url, + createdAt: user.createdAt.toISOString(), + updatedAt: user.updatedAt ? user.updatedAt.toISOString() : null, + bannerUrl: user.bannerUrl, + bannerBlurhash: user.bannerBlurhash, + bannerColor: null, // 後方互換性のため + isLocked: user.isLocked, + isModerator: user.isModerator || falsy, + isSilenced: user.isSilenced || falsy, + isSuspended: user.isSuspended || falsy, + description: profile!.description, + location: profile!.location, + birthday: profile!.birthday, + fields: profile!.fields, + followersCount: user.followersCount, + followingCount: user.followingCount, + notesCount: user.notesCount, + pinnedNoteIds: pins.map(pin => pin.noteId), + pinnedNotes: Notes.packMany(pins.map(pin => pin.noteId), meId, { + detail: true + }), + pinnedPageId: profile!.pinnedPageId, + pinnedPage: profile!.pinnedPageId ? Pages.pack(profile!.pinnedPageId, meId) : null, + twoFactorEnabled: profile!.twoFactorEnabled, + usePasswordLessLogin: profile!.usePasswordLessLogin, + securityKeys: profile!.twoFactorEnabled + ? UserSecurityKeys.count({ + userId: user.id + }).then(result => result >= 1) + : false, + } : {}), + + ...(opts.detail && meId === user.id ? { + avatarId: user.avatarId, + bannerId: user.bannerId, + injectFeaturedNote: profile!.injectFeaturedNote, + alwaysMarkNsfw: profile!.alwaysMarkNsfw, + carefulBot: profile!.carefulBot, + autoAcceptFollowed: profile!.autoAcceptFollowed, + hasUnreadSpecifiedNotes: NoteUnreads.count({ + where: { userId: user.id, isSpecified: true }, + take: 1 + }).then(count => count > 0), + hasUnreadMentions: NoteUnreads.count({ + where: { userId: user.id, isMentioned: true }, + take: 1 + }).then(count => count > 0), + hasUnreadAnnouncement: this.getHasUnreadAnnouncement(user.id), + hasUnreadAntenna: this.getHasUnreadAntenna(user.id), + hasUnreadChannel: this.getHasUnreadChannel(user.id), + hasUnreadMessagingMessage: this.getHasUnreadMessagingMessage(user.id), + hasUnreadNotification: this.getHasUnreadNotification(user.id), + hasPendingReceivedFollowRequest: this.getHasPendingReceivedFollowRequest(user.id), + integrations: profile!.integrations, + mutedWords: profile!.mutedWords, + mutingNotificationTypes: profile?.mutingNotificationTypes, + } : {}), + + ...(opts.includeSecrets ? { + clientData: profile!.clientData, + email: profile!.email, + emailVerified: profile!.emailVerified, + securityKeysList: profile!.twoFactorEnabled + ? UserSecurityKeys.find({ + where: { + userId: user.id + }, + select: ['id', 'name', 'lastUsed'] + }) + : [] + } : {}), + + ...(relation ? { + isFollowing: relation.isFollowing, + isFollowed: relation.isFollowed, + hasPendingFollowRequestFromYou: relation.hasPendingFollowRequestFromYou, + hasPendingFollowRequestToYou: relation.hasPendingFollowRequestToYou, + isBlocking: relation.isBlocking, + isBlocked: relation.isBlocked, + isMuted: relation.isMuted, + } : {}) + }; + + return await awaitAll(packed); + } + + public packMany( + users: (User['id'] | User)[], + me?: User['id'] | User | null | undefined, + options?: { + detail?: boolean, + includeSecrets?: boolean, + } + ) { + return Promise.all(users.map(u => this.pack(u, me, options))); + } + + public isLocalUser(user: User): user is ILocalUser { + return user.host == null; + } + + public isRemoteUser(user: User): user is IRemoteUser { + return !this.isLocalUser(user); + } + + //#region Validators + public validateLocalUsername = $.str.match(/^\w{1,20}$/); + public validateRemoteUsername = $.str.match(/^\w([\w-.]*\w)?$/); + public validatePassword = $.str.min(1); + public validateName = $.str.min(1).max(50); + public validateDescription = $.str.min(1).max(500); + public validateLocation = $.str.min(1).max(50); + public validateBirthday = $.str.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/); + //#endregion +} + +export const packedUserSchema = { + type: 'object' as const, + nullable: false as const, optional: false as const, + properties: { + id: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + description: 'The unique identifier for this User.', + example: 'xxxxxxxxxx', + }, + username: { + type: 'string' as const, + nullable: false as const, optional: false as const, + description: 'The screen name, handle, or alias that this user identifies themselves with.', + example: 'ai' + }, + name: { + type: 'string' as const, + nullable: true as const, optional: false as const, + description: 'The name of the user, as they’ve defined it.', + example: '藍' + }, + url: { + type: 'string' as const, + format: 'url', + nullable: true as const, optional: true as const, + }, + avatarUrl: { + type: 'string' as const, + format: 'url', + nullable: true as const, optional: false as const, + }, + avatarBlurhash: { + type: 'any' as const, + nullable: true as const, optional: false as const, + }, + bannerUrl: { + type: 'string' as const, + format: 'url', + nullable: true as const, optional: true as const, + }, + bannerBlurhash: { + type: 'any' as const, + nullable: true as const, optional: true as const, + }, + emojis: { + type: 'any' as const, + nullable: true as const, optional: false as const, + }, + host: { + type: 'string' as const, + nullable: true as const, optional: false as const, + example: 'misskey.example.com' + }, + description: { + type: 'string' as const, + nullable: true as const, optional: true as const, + description: 'The user-defined UTF-8 string describing their account.', + example: 'Hi masters, I am Ai!' + }, + birthday: { + type: 'string' as const, + nullable: true as const, optional: true as const, + example: '2018-03-12' + }, + createdAt: { + type: 'string' as const, + nullable: false as const, optional: true as const, + format: 'date-time', + description: 'The date that the user account was created on Misskey.' + }, + updatedAt: { + type: 'string' as const, + nullable: true as const, optional: true as const, + format: 'date-time', + }, + location: { + type: 'string' as const, + nullable: true as const, optional: true as const, + }, + followersCount: { + type: 'number' as const, + nullable: false as const, optional: true as const, + description: 'The number of followers this account currently has.' + }, + followingCount: { + type: 'number' as const, + nullable: false as const, optional: true as const, + description: 'The number of users this account is following.' + }, + notesCount: { + type: 'number' as const, + nullable: false as const, optional: true as const, + description: 'The number of Notes (including renotes) issued by the user.' + }, + isBot: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + description: 'Whether this account is a bot.' + }, + pinnedNoteIds: { + type: 'array' as const, + nullable: false as const, optional: true as const, + items: { + type: 'string' as const, + nullable: false as const, optional: false as const, + format: 'id', + } + }, + pinnedNotes: { + type: 'array' as const, + nullable: false as const, optional: true as const, + items: { + type: 'object' as const, + nullable: false as const, optional: false as const, + ref: 'Note' + } + }, + isCat: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + description: 'Whether this account is a cat.' + }, + isAdmin: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + description: 'Whether this account is the admin.' + }, + isModerator: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + description: 'Whether this account is a moderator.' + }, + isLocked: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + }, + hasUnreadSpecifiedNotes: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + }, + hasUnreadMentions: { + type: 'boolean' as const, + nullable: false as const, optional: true as const, + }, + }, +}; diff --git a/packages/backend/src/prelude/README.md b/src/prelude/README.md similarity index 100% rename from packages/backend/src/prelude/README.md rename to src/prelude/README.md diff --git a/src/prelude/array.ts b/src/prelude/array.ts new file mode 100644 index 000000000..d63f0475d --- /dev/null +++ b/src/prelude/array.ts @@ -0,0 +1,138 @@ +import { EndoRelation, Predicate } from './relation'; + +/** + * Count the number of elements that satisfy the predicate + */ + +export function countIf(f: Predicate, xs: T[]): number { + return xs.filter(f).length; +} + +/** + * Count the number of elements that is equal to the element + */ +export function count(a: T, xs: T[]): number { + return countIf(x => x === a, xs); +} + +/** + * Concatenate an array of arrays + */ +export function concat(xss: T[][]): T[] { + return ([] as T[]).concat(...xss); +} + +/** + * Intersperse the element between the elements of the array + * @param sep The element to be interspersed + */ +export function intersperse(sep: T, xs: T[]): T[] { + return concat(xs.map(x => [sep, x])).slice(1); +} + +/** + * Returns the array of elements that is not equal to the element + */ +export function erase(a: T, xs: T[]): T[] { + return xs.filter(x => x !== a); +} + +/** + * Finds the array of all elements in the first array not contained in the second array. + * The order of result values are determined by the first array. + */ +export function difference(xs: T[], ys: T[]): T[] { + return xs.filter(x => !ys.includes(x)); +} + +/** + * Remove all but the first element from every group of equivalent elements + */ +export function unique(xs: T[]): T[] { + return [...new Set(xs)]; +} + +export function sum(xs: number[]): number { + return xs.reduce((a, b) => a + b, 0); +} + +export function maximum(xs: number[]): number { + return Math.max(...xs); +} + +/** + * Splits an array based on the equivalence relation. + * The concatenation of the result is equal to the argument. + */ +export function groupBy(f: EndoRelation, xs: T[]): T[][] { + const groups = [] as T[][]; + for (const x of xs) { + if (groups.length !== 0 && f(groups[groups.length - 1][0], x)) { + groups[groups.length - 1].push(x); + } else { + groups.push([x]); + } + } + return groups; +} + +/** + * Splits an array based on the equivalence relation induced by the function. + * The concatenation of the result is equal to the argument. + */ +export function groupOn(f: (x: T) => S, xs: T[]): T[][] { + return groupBy((a, b) => f(a) === f(b), xs); +} + +export function groupByX(collections: T[], keySelector: (x: T) => string) { + return collections.reduce((obj: Record, item: T) => { + const key = keySelector(item); + if (!obj.hasOwnProperty(key)) { + obj[key] = []; + } + + obj[key].push(item); + + return obj; + }, {}); +} + +/** + * Compare two arrays by lexicographical order + */ +export function lessThan(xs: number[], ys: number[]): boolean { + for (let i = 0; i < Math.min(xs.length, ys.length); i++) { + if (xs[i] < ys[i]) return true; + if (xs[i] > ys[i]) return false; + } + return xs.length < ys.length; +} + +/** + * Returns the longest prefix of elements that satisfy the predicate + */ +export function takeWhile(f: Predicate, xs: T[]): T[] { + const ys = []; + for (const x of xs) { + if (f(x)) { + ys.push(x); + } else { + break; + } + } + return ys; +} + +export function cumulativeSum(xs: number[]): number[] { + const ys = Array.from(xs); // deep copy + for (let i = 1; i < ys.length; i++) ys[i] += ys[i - 1]; + return ys; +} + +export function toArray(x: T | T[] | undefined): T[] { + return Array.isArray(x) ? x : x != null ? [x] : []; +} + +export function toSingle(x: T | T[] | undefined): T | undefined { + return Array.isArray(x) ? x[0] : x; +} diff --git a/src/prelude/await-all.ts b/src/prelude/await-all.ts new file mode 100644 index 000000000..24795f3ae --- /dev/null +++ b/src/prelude/await-all.ts @@ -0,0 +1,23 @@ +type Await = T extends Promise ? U : T; + +type AwaitAll = { + [P in keyof T]: Await; +}; + +export async function awaitAll(obj: T): Promise> { + const target = {} as any; + const keys = Object.keys(obj); + const values = Object.values(obj); + + const resolvedValues = await Promise.all(values.map(value => + (!value || !value.constructor || value.constructor.name !== 'Object') + ? value + : awaitAll(value) + )); + + for (let i = 0; i < keys.length; i++) { + target[keys[i]] = resolvedValues[i]; + } + + return target; +} diff --git a/src/prelude/ensure.ts b/src/prelude/ensure.ts new file mode 100644 index 000000000..1af281c05 --- /dev/null +++ b/src/prelude/ensure.ts @@ -0,0 +1,10 @@ +/** + * 値が null または undefined の場合はエラーを発生させ、そうでない場合は値をそのまま返します + */ +export function ensure(x: T): NonNullable { + if (x == null) { + throw new Error('ぬるぽ'); + } else { + return x!; + } +} diff --git a/packages/backend/src/prelude/math.ts b/src/prelude/math.ts similarity index 100% rename from packages/backend/src/prelude/math.ts rename to src/prelude/math.ts diff --git a/src/prelude/maybe.ts b/src/prelude/maybe.ts new file mode 100644 index 000000000..0b4b543ca --- /dev/null +++ b/src/prelude/maybe.ts @@ -0,0 +1,20 @@ +export interface IMaybe { + isJust(): this is IJust; +} + +export interface IJust extends IMaybe { + get(): T; +} + +export function just(value: T): IJust { + return { + isJust: () => true, + get: () => value + }; +} + +export function nothing(): IMaybe { + return { + isJust: () => false, + }; +} diff --git a/packages/backend/src/prelude/relation.ts b/src/prelude/relation.ts similarity index 100% rename from packages/backend/src/prelude/relation.ts rename to src/prelude/relation.ts diff --git a/packages/backend/src/prelude/string.ts b/src/prelude/string.ts similarity index 100% rename from packages/backend/src/prelude/string.ts rename to src/prelude/string.ts diff --git a/packages/backend/src/prelude/symbol.ts b/src/prelude/symbol.ts similarity index 100% rename from packages/backend/src/prelude/symbol.ts rename to src/prelude/symbol.ts diff --git a/packages/backend/src/prelude/time.ts b/src/prelude/time.ts similarity index 100% rename from packages/backend/src/prelude/time.ts rename to src/prelude/time.ts diff --git a/src/prelude/tree.ts b/src/prelude/tree.ts new file mode 100644 index 000000000..519234a0b --- /dev/null +++ b/src/prelude/tree.ts @@ -0,0 +1,36 @@ +import { concat, sum } from './array'; + +export type Tree = { + node: T, + children: Forest; +}; + +export type Forest = Tree[]; + +export function createLeaf(node: T): Tree { + return { node, children: [] }; +} + +export function createTree(node: T, children: Forest): Tree { + return { node, children }; +} + +export function hasChildren(t: Tree): boolean { + return t.children.length !== 0; +} + +export function preorder(t: Tree): T[] { + return [t.node, ...preorderF(t.children)]; +} + +export function preorderF(ts: Forest): T[] { + return concat(ts.map(preorder)); +} + +export function countNodes(t: Tree): number { + return preorder(t).length; +} + +export function countNodesF(ts: Forest): number { + return sum(ts.map(countNodes)); +} diff --git a/src/prelude/url.ts b/src/prelude/url.ts new file mode 100644 index 000000000..a3613fc9b --- /dev/null +++ b/src/prelude/url.ts @@ -0,0 +1,11 @@ +import { stringify } from 'querystring'; + +export function query(obj: {}): string { + return stringify(Object.entries(obj) + .filter(([, v]) => Array.isArray(v) ? v.length : v !== undefined) + .reduce((a, [k, v]) => (a[k] = v, a), {} as Record)); +} + +export function appendQuery(url: string, query: string): string { + return `${url}${/\?/.test(url) ? url.endsWith('?') ? '' : '&' : '?'}${query}`; +} diff --git a/packages/backend/src/prelude/xml.ts b/src/prelude/xml.ts similarity index 98% rename from packages/backend/src/prelude/xml.ts rename to src/prelude/xml.ts index b4469a1d8..0773f75d4 100644 --- a/packages/backend/src/prelude/xml.ts +++ b/src/prelude/xml.ts @@ -3,7 +3,7 @@ const map: Record = { '<': '<', '>': '>', '"': '"', - '\'': ''', + '\'': ''' }; const beginingOfCDATA = ' 0 ? { + max: limitPerSec * 5, + duration: 5000 + } : undefined + }); +} + +export type InboxJobData = { + activity: IActivity, + /** HTTP-Signature */ + signature: httpSignature.IParsedSignature +}; + +function renderError(e: Error): any { + return { + stack: e?.stack, + message: e?.message, + name: e?.name + }; +} + +export const deliverQueue = initializeQueue('deliver', config.deliverJobPerSec || 128); +export const inboxQueue = initializeQueue('inbox', config.inboxJobPerSec || 16); +export const dbQueue = initializeQueue('db'); +export const objectStorageQueue = initializeQueue('objectStorage'); + +const deliverLogger = queueLogger.createSubLogger('deliver'); +const inboxLogger = queueLogger.createSubLogger('inbox'); +const dbLogger = queueLogger.createSubLogger('db'); +const objectStorageLogger = queueLogger.createSubLogger('objectStorage'); + +deliverQueue + .on('waiting', (jobId) => deliverLogger.debug(`waiting id=${jobId}`)) + .on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`)) + .on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`)) + .on('failed', (job, err) => deliverLogger.warn(`failed(${err}) ${getJobInfo(job)} to=${job.data.to}`)) + .on('error', (job: any, err: Error) => deliverLogger.error(`error ${err}`, { job, e: renderError(err) })) + .on('stalled', (job) => deliverLogger.warn(`stalled ${getJobInfo(job)} to=${job.data.to}`)); + +inboxQueue + .on('waiting', (jobId) => inboxLogger.debug(`waiting id=${jobId}`)) + .on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`)) + .on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`)) + .on('failed', (job, err) => inboxLogger.warn(`failed(${err}) ${getJobInfo(job)} activity=${job.data.activity ? job.data.activity.id : 'none'}`, { job, e: renderError(err) })) + .on('error', (job: any, err: Error) => inboxLogger.error(`error ${err}`, { job, e: renderError(err) })) + .on('stalled', (job) => inboxLogger.warn(`stalled ${getJobInfo(job)} activity=${job.data.activity ? job.data.activity.id : 'none'}`)); + +dbQueue + .on('waiting', (jobId) => dbLogger.debug(`waiting id=${jobId}`)) + .on('active', (job) => dbLogger.debug(`active id=${job.id}`)) + .on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`)) + .on('failed', (job, err) => dbLogger.warn(`failed(${err}) id=${job.id}`, { job, e: renderError(err) })) + .on('error', (job: any, err: Error) => dbLogger.error(`error ${err}`, { job, e: renderError(err) })) + .on('stalled', (job) => dbLogger.warn(`stalled id=${job.id}`)); + +objectStorageQueue + .on('waiting', (jobId) => objectStorageLogger.debug(`waiting id=${jobId}`)) + .on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`)) + .on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`)) + .on('failed', (job, err) => objectStorageLogger.warn(`failed(${err}) id=${job.id}`, { job, e: renderError(err) })) + .on('error', (job: any, err: Error) => objectStorageLogger.error(`error ${err}`, { job, e: renderError(err) })) + .on('stalled', (job) => objectStorageLogger.warn(`stalled id=${job.id}`)); + +export function deliver(user: ILocalUser, content: any, to: any) { + if (content == null) return null; + + const data = { + user, + content, + to + }; + + return deliverQueue.add(data, { + attempts: config.deliverJobMaxAttempts || 12, + backoff: { + type: 'exponential', + delay: 60 * 1000 + }, + removeOnComplete: true, + removeOnFail: true + }); +} + +export function inbox(activity: any, signature: httpSignature.IParsedSignature) { + const data = { + activity: activity, + signature + }; + + return inboxQueue.add(data, { + attempts: config.inboxJobMaxAttempts || 8, + backoff: { + type: 'exponential', + delay: 60 * 1000 + }, + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createDeleteDriveFilesJob(user: ILocalUser) { + return dbQueue.add('deleteDriveFiles', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createExportNotesJob(user: ILocalUser) { + return dbQueue.add('exportNotes', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createExportFollowingJob(user: ILocalUser) { + return dbQueue.add('exportFollowing', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createExportMuteJob(user: ILocalUser) { + return dbQueue.add('exportMute', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createExportBlockingJob(user: ILocalUser) { + return dbQueue.add('exportBlocking', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createExportUserListsJob(user: ILocalUser) { + return dbQueue.add('exportUserLists', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createImportFollowingJob(user: ILocalUser, fileId: DriveFile['id']) { + return dbQueue.add('importFollowing', { + user: user, + fileId: fileId + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createImportUserListsJob(user: ILocalUser, fileId: DriveFile['id']) { + return dbQueue.add('importUserLists', { + user: user, + fileId: fileId + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createDeleteObjectStorageFileJob(key: string) { + return objectStorageQueue.add('deleteFile', { + key: key + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export function createCleanRemoteFilesJob() { + return objectStorageQueue.add('cleanRemoteFiles', {}, { + removeOnComplete: true, + removeOnFail: true + }); +} + +export default function() { + if (!program.onlyServer) { + deliverQueue.process(config.deliverJobConcurrency || 128, processDeliver); + inboxQueue.process(config.inboxJobConcurrency || 16, processInbox); + processDb(dbQueue); + procesObjectStorage(objectStorageQueue); + } +} + +export function destroy() { + deliverQueue.once('cleaned', (jobs, status) => { + deliverLogger.succ(`Cleaned ${jobs.length} ${status} jobs`); + }); + deliverQueue.clean(0, 'delayed'); + + inboxQueue.once('cleaned', (jobs, status) => { + inboxLogger.succ(`Cleaned ${jobs.length} ${status} jobs`); + }); + inboxQueue.clean(0, 'delayed'); +} diff --git a/src/queue/logger.ts b/src/queue/logger.ts new file mode 100644 index 000000000..d6d077468 --- /dev/null +++ b/src/queue/logger.ts @@ -0,0 +1,3 @@ +import Logger from '../services/logger'; + +export const queueLogger = new Logger('queue', 'orange'); diff --git a/src/queue/processors/db/delete-drive-files.ts b/src/queue/processors/db/delete-drive-files.ts new file mode 100644 index 000000000..a2fd9050a --- /dev/null +++ b/src/queue/processors/db/delete-drive-files.ts @@ -0,0 +1,55 @@ +import * as Bull from 'bull'; + +import { queueLogger } from '../../logger'; +import { deleteFileSync } from '../../../services/drive/delete-file'; +import { Users, DriveFiles } from '../../../models'; +import { MoreThan } from 'typeorm'; + +const logger = queueLogger.createSubLogger('delete-drive-files'); + +export async function deleteDriveFiles(job: Bull.Job, done: any): Promise { + logger.info(`Deleting drive files of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + let deletedCount = 0; + let cursor: any = null; + + while (true) { + const files = await DriveFiles.find({ + where: { + userId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (files.length === 0) { + job.progress(100); + break; + } + + cursor = files[files.length - 1].id; + + for (const file of files) { + await deleteFileSync(file); + deletedCount++; + } + + const total = await DriveFiles.count({ + userId: user.id, + }); + + job.progress(deletedCount / total); + } + + logger.succ(`All drive files (${deletedCount}) of ${user.id} has been deleted.`); + done(); +} diff --git a/src/queue/processors/db/export-blocking.ts b/src/queue/processors/db/export-blocking.ts new file mode 100644 index 000000000..0504ab8c3 --- /dev/null +++ b/src/queue/processors/db/export-blocking.ts @@ -0,0 +1,93 @@ +import * as Bull from 'bull'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; + +import { queueLogger } from '../../logger'; +import addFile from '../../../services/drive/add-file'; +import dateFormat = require('dateformat'); +import { getFullApAccount } from '../../../misc/convert-host'; +import { Users, Blockings } from '../../../models'; +import { MoreThan } from 'typeorm'; + +const logger = queueLogger.createSubLogger('export-blocking'); + +export async function exportBlocking(job: Bull.Job, done: any): Promise { + logger.info(`Exporting blocking of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + // Create temp file + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + logger.info(`Temp file is ${path}`); + + const stream = fs.createWriteStream(path, { flags: 'a' }); + + let exportedCount = 0; + let cursor: any = null; + + while (true) { + const blockings = await Blockings.find({ + where: { + blockerId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (blockings.length === 0) { + job.progress(100); + break; + } + + cursor = blockings[blockings.length - 1].id; + + for (const block of blockings) { + const u = await Users.findOne({ id: block.blockeeId }); + if (u == null) { + exportedCount++; continue; + } + + const content = getFullApAccount(u.username, u.host); + await new Promise((res, rej) => { + stream.write(content + '\n', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + exportedCount++; + } + + const total = await Blockings.count({ + blockerId: user.id, + }); + + job.progress(exportedCount / total); + } + + stream.end(); + logger.succ(`Exported to: ${path}`); + + const fileName = 'blocking-' + dateFormat(new Date(), 'yyyy-mm-dd-HH-MM-ss') + '.csv'; + const driveFile = await addFile(user, path, fileName, null, null, true); + + logger.succ(`Exported to: ${driveFile.id}`); + cleanup(); + done(); +} diff --git a/src/queue/processors/db/export-following.ts b/src/queue/processors/db/export-following.ts new file mode 100644 index 000000000..996ef6310 --- /dev/null +++ b/src/queue/processors/db/export-following.ts @@ -0,0 +1,93 @@ +import * as Bull from 'bull'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; + +import { queueLogger } from '../../logger'; +import addFile from '../../../services/drive/add-file'; +import dateFormat = require('dateformat'); +import { getFullApAccount } from '../../../misc/convert-host'; +import { Users, Followings } from '../../../models'; +import { MoreThan } from 'typeorm'; + +const logger = queueLogger.createSubLogger('export-following'); + +export async function exportFollowing(job: Bull.Job, done: any): Promise { + logger.info(`Exporting following of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + // Create temp file + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + logger.info(`Temp file is ${path}`); + + const stream = fs.createWriteStream(path, { flags: 'a' }); + + let exportedCount = 0; + let cursor: any = null; + + while (true) { + const followings = await Followings.find({ + where: { + followerId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (followings.length === 0) { + job.progress(100); + break; + } + + cursor = followings[followings.length - 1].id; + + for (const following of followings) { + const u = await Users.findOne({ id: following.followeeId }); + if (u == null) { + exportedCount++; continue; + } + + const content = getFullApAccount(u.username, u.host); + await new Promise((res, rej) => { + stream.write(content + '\n', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + exportedCount++; + } + + const total = await Followings.count({ + followerId: user.id, + }); + + job.progress(exportedCount / total); + } + + stream.end(); + logger.succ(`Exported to: ${path}`); + + const fileName = 'following-' + dateFormat(new Date(), 'yyyy-mm-dd-HH-MM-ss') + '.csv'; + const driveFile = await addFile(user, path, fileName, null, null, true); + + logger.succ(`Exported to: ${driveFile.id}`); + cleanup(); + done(); +} diff --git a/src/queue/processors/db/export-mute.ts b/src/queue/processors/db/export-mute.ts new file mode 100644 index 000000000..553155322 --- /dev/null +++ b/src/queue/processors/db/export-mute.ts @@ -0,0 +1,93 @@ +import * as Bull from 'bull'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; + +import { queueLogger } from '../../logger'; +import addFile from '../../../services/drive/add-file'; +import dateFormat = require('dateformat'); +import { getFullApAccount } from '../../../misc/convert-host'; +import { Users, Mutings } from '../../../models'; +import { MoreThan } from 'typeorm'; + +const logger = queueLogger.createSubLogger('export-mute'); + +export async function exportMute(job: Bull.Job, done: any): Promise { + logger.info(`Exporting mute of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + // Create temp file + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + logger.info(`Temp file is ${path}`); + + const stream = fs.createWriteStream(path, { flags: 'a' }); + + let exportedCount = 0; + let cursor: any = null; + + while (true) { + const mutes = await Mutings.find({ + where: { + muterId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (mutes.length === 0) { + job.progress(100); + break; + } + + cursor = mutes[mutes.length - 1].id; + + for (const mute of mutes) { + const u = await Users.findOne({ id: mute.muteeId }); + if (u == null) { + exportedCount++; continue; + } + + const content = getFullApAccount(u.username, u.host); + await new Promise((res, rej) => { + stream.write(content + '\n', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + exportedCount++; + } + + const total = await Mutings.count({ + muterId: user.id, + }); + + job.progress(exportedCount / total); + } + + stream.end(); + logger.succ(`Exported to: ${path}`); + + const fileName = 'mute-' + dateFormat(new Date(), 'yyyy-mm-dd-HH-MM-ss') + '.csv'; + const driveFile = await addFile(user, path, fileName, null, null, true); + + logger.succ(`Exported to: ${driveFile.id}`); + cleanup(); + done(); +} diff --git a/src/queue/processors/db/export-notes.ts b/src/queue/processors/db/export-notes.ts new file mode 100644 index 000000000..0fd8c02c4 --- /dev/null +++ b/src/queue/processors/db/export-notes.ts @@ -0,0 +1,133 @@ +import * as Bull from 'bull'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; + +import { queueLogger } from '../../logger'; +import addFile from '../../../services/drive/add-file'; +import dateFormat = require('dateformat'); +import { Users, Notes, Polls } from '../../../models'; +import { MoreThan } from 'typeorm'; +import { Note } from '../../../models/entities/note'; +import { Poll } from '../../../models/entities/poll'; +import { ensure } from '../../../prelude/ensure'; + +const logger = queueLogger.createSubLogger('export-notes'); + +export async function exportNotes(job: Bull.Job, done: any): Promise { + logger.info(`Exporting notes of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + // Create temp file + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + logger.info(`Temp file is ${path}`); + + const stream = fs.createWriteStream(path, { flags: 'a' }); + + await new Promise((res, rej) => { + stream.write('[', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + + let exportedNotesCount = 0; + let cursor: any = null; + + while (true) { + const notes = await Notes.find({ + where: { + userId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (notes.length === 0) { + job.progress(100); + break; + } + + cursor = notes[notes.length - 1].id; + + for (const note of notes) { + let poll: Poll | undefined; + if (note.hasPoll) { + poll = await Polls.findOne({ noteId: note.id }).then(ensure); + } + const content = JSON.stringify(serialize(note, poll)); + await new Promise((res, rej) => { + stream.write(exportedNotesCount === 0 ? content : ',\n' + content, err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + exportedNotesCount++; + } + + const total = await Notes.count({ + userId: user.id, + }); + + job.progress(exportedNotesCount / total); + } + + await new Promise((res, rej) => { + stream.write(']', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + + stream.end(); + logger.succ(`Exported to: ${path}`); + + const fileName = 'notes-' + dateFormat(new Date(), 'yyyy-mm-dd-HH-MM-ss') + '.json'; + const driveFile = await addFile(user, path, fileName, null, null, true); + + logger.succ(`Exported to: ${driveFile.id}`); + cleanup(); + done(); +} + +function serialize(note: Note, poll: Poll | null = null): any { + return { + id: note.id, + text: note.text, + createdAt: note.createdAt, + fileIds: note.fileIds, + replyId: note.replyId, + renoteId: note.renoteId, + poll: poll, + cw: note.cw, + viaMobile: note.viaMobile, + visibility: note.visibility, + visibleUserIds: note.visibleUserIds, + localOnly: note.localOnly + }; +} diff --git a/src/queue/processors/db/export-user-lists.ts b/src/queue/processors/db/export-user-lists.ts new file mode 100644 index 000000000..447cdaa17 --- /dev/null +++ b/src/queue/processors/db/export-user-lists.ts @@ -0,0 +1,70 @@ +import * as Bull from 'bull'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; + +import { queueLogger } from '../../logger'; +import addFile from '../../../services/drive/add-file'; +import dateFormat = require('dateformat'); +import { getFullApAccount } from '../../../misc/convert-host'; +import { Users, UserLists, UserListJoinings } from '../../../models'; +import { In } from 'typeorm'; + +const logger = queueLogger.createSubLogger('export-user-lists'); + +export async function exportUserLists(job: Bull.Job, done: any): Promise { + logger.info(`Exporting user lists of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + const lists = await UserLists.find({ + userId: user.id + }); + + // Create temp file + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + logger.info(`Temp file is ${path}`); + + const stream = fs.createWriteStream(path, { flags: 'a' }); + + for (const list of lists) { + const joinings = await UserListJoinings.find({ userListId: list.id }); + const users = await Users.find({ + id: In(joinings.map(j => j.userId)) + }); + + for (const u of users) { + const acct = getFullApAccount(u.username, u.host); + const content = `${list.name},${acct}`; + await new Promise((res, rej) => { + stream.write(content + '\n', err => { + if (err) { + logger.error(err); + rej(err); + } else { + res(); + } + }); + }); + } + } + + stream.end(); + logger.succ(`Exported to: ${path}`); + + const fileName = 'user-lists-' + dateFormat(new Date(), 'yyyy-mm-dd-HH-MM-ss') + '.csv'; + const driveFile = await addFile(user, path, fileName, null, null, true); + + logger.succ(`Exported to: ${driveFile.id}`); + cleanup(); + done(); +} diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts new file mode 100644 index 000000000..ff4ff6b6a --- /dev/null +++ b/src/queue/processors/db/import-following.ts @@ -0,0 +1,72 @@ +import * as Bull from 'bull'; + +import { queueLogger } from '../../logger'; +import follow from '../../../services/following/create'; +import parseAcct from '../../../misc/acct/parse'; +import { resolveUser } from '../../../remote/resolve-user'; +import { downloadTextFile } from '../../../misc/download-text-file'; +import { isSelfHost, toPuny } from '../../../misc/convert-host'; +import { Users, DriveFiles } from '../../../models'; + +const logger = queueLogger.createSubLogger('import-following'); + +export async function importFollowing(job: Bull.Job, done: any): Promise { + logger.info(`Importing following of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + const file = await DriveFiles.findOne({ + id: job.data.fileId + }); + if (file == null) { + done(); + return; + } + + const csv = await downloadTextFile(file.url); + + let linenum = 0; + + for (const line of csv.trim().split('\n')) { + linenum++; + + try { + const acct = line.split(',')[0].trim(); + const { username, host } = parseAcct(acct); + + let target = isSelfHost(host!) ? await Users.findOne({ + host: null, + usernameLower: username.toLowerCase() + }) : await Users.findOne({ + host: toPuny(host!), + usernameLower: username.toLowerCase() + }); + + if (host == null && target == null) continue; + + if (target == null) { + target = await resolveUser(username, host); + } + + if (target == null) { + throw `cannot resolve user: @${username}@${host}`; + } + + // skip myself + if (target.id === job.data.user.id) continue; + + logger.info(`Follow[${linenum}] ${target.id} ...`); + + follow(user, target); + } catch (e) { + logger.warn(`Error in line:${linenum} ${e}`); + } + } + + logger.succ('Imported'); + done(); +} diff --git a/src/queue/processors/db/import-user-lists.ts b/src/queue/processors/db/import-user-lists.ts new file mode 100644 index 000000000..4692d8cf4 --- /dev/null +++ b/src/queue/processors/db/import-user-lists.ts @@ -0,0 +1,79 @@ +import * as Bull from 'bull'; + +import { queueLogger } from '../../logger'; +import parseAcct from '../../../misc/acct/parse'; +import { resolveUser } from '../../../remote/resolve-user'; +import { pushUserToUserList } from '../../../services/user-list/push'; +import { downloadTextFile } from '../../../misc/download-text-file'; +import { isSelfHost, toPuny } from '../../../misc/convert-host'; +import { DriveFiles, Users, UserLists, UserListJoinings } from '../../../models'; +import { genId } from '../../../misc/gen-id'; + +const logger = queueLogger.createSubLogger('import-user-lists'); + +export async function importUserLists(job: Bull.Job, done: any): Promise { + logger.info(`Importing user lists of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } + + const file = await DriveFiles.findOne({ + id: job.data.fileId + }); + if (file == null) { + done(); + return; + } + + const csv = await downloadTextFile(file.url); + + let linenum = 0; + + for (const line of csv.trim().split('\n')) { + linenum++; + + try { + const listName = line.split(',')[0].trim(); + const { username, host } = parseAcct(line.split(',')[1].trim()); + + let list = await UserLists.findOne({ + userId: user.id, + name: listName + }); + + if (list == null) { + list = await UserLists.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: listName, + userIds: [] + }); + } + + let target = isSelfHost(host!) ? await Users.findOne({ + host: null, + usernameLower: username.toLowerCase() + }) : await Users.findOne({ + host: toPuny(host!), + usernameLower: username.toLowerCase() + }); + + if (target == null) { + target = await resolveUser(username, host); + } + + if (await UserListJoinings.findOne({ userListId: list.id, userId: target.id }) != null) continue; + + pushUserToUserList(target, list); + } catch (e) { + logger.warn(`Error in line:${linenum} ${e}`); + } + } + + logger.succ('Imported'); + done(); +} diff --git a/src/queue/processors/db/index.ts b/src/queue/processors/db/index.ts new file mode 100644 index 000000000..921cdf7ab --- /dev/null +++ b/src/queue/processors/db/index.ts @@ -0,0 +1,26 @@ +import * as Bull from 'bull'; +import { deleteDriveFiles } from './delete-drive-files'; +import { exportNotes } from './export-notes'; +import { exportFollowing } from './export-following'; +import { exportMute } from './export-mute'; +import { exportBlocking } from './export-blocking'; +import { exportUserLists } from './export-user-lists'; +import { importFollowing } from './import-following'; +import { importUserLists } from './import-user-lists'; + +const jobs = { + deleteDriveFiles, + exportNotes, + exportFollowing, + exportMute, + exportBlocking, + exportUserLists, + importFollowing, + importUserLists +} as any; + +export default function(dbQueue: Bull.Queue) { + for (const [k, v] of Object.entries(jobs)) { + dbQueue.process(k, v as any); + } +} diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts new file mode 100644 index 000000000..cb7587ef8 --- /dev/null +++ b/src/queue/processors/deliver.ts @@ -0,0 +1,84 @@ +import * as Bull from 'bull'; +import request from '../../remote/activitypub/request'; +import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; +import Logger from '../../services/logger'; +import { Instances } from '../../models'; +import { instanceChart } from '../../services/chart'; +import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata'; +import { fetchMeta } from '../../misc/fetch-meta'; +import { toPuny } from '../../misc/convert-host'; + +const logger = new Logger('deliver'); + +let latest: string | null = null; + +export default async (job: Bull.Job) => { + const { host } = new URL(job.data.to); + + // ブロックしてたら中断 + const meta = await fetchMeta(); + if (meta.blockedHosts.includes(toPuny(host))) { + return 'skip (blocked)'; + } + + // isSuspendedなら中断 + const suspendedHosts = await Instances.find({ + where: { + isSuspended: true + }, + cache: 60 * 1000 + }); + if (suspendedHosts.map(x => x.host).includes(toPuny(host))) { + return 'skip (suspended)'; + } + + try { + if (latest !== (latest = JSON.stringify(job.data.content, null, 2))) { + logger.debug(`delivering ${latest}`); + } + + await request(job.data.user, job.data.to, job.data.content); + + // Update stats + registerOrFetchInstanceDoc(host).then(i => { + Instances.update(i.id, { + latestRequestSentAt: new Date(), + latestStatus: 200, + lastCommunicatedAt: new Date(), + isNotResponding: false + }); + + fetchInstanceMetadata(i); + + instanceChart.requestSent(i.host, true); + }); + + return 'Success'; + } catch (res) { + // Update stats + registerOrFetchInstanceDoc(host).then(i => { + Instances.update(i.id, { + latestRequestSentAt: new Date(), + latestStatus: res != null && res.hasOwnProperty('statusCode') ? res.statusCode : null, + isNotResponding: true + }); + + instanceChart.requestSent(i.host, false); + }); + + if (res != null && res.hasOwnProperty('statusCode')) { + // 4xx + if (res.statusCode >= 400 && res.statusCode < 500) { + // HTTPステータスコード4xxはクライアントエラーであり、それはつまり + // 何回再送しても成功することはないということなのでエラーにはしないでおく + return `${res.statusCode} ${res.statusMessage}`; + } + + // 5xx etc. + throw `${res.statusCode} ${res.statusMessage}`; + } else { + // DNS error, socket error, timeout ... + throw res; + } + } +}; diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts new file mode 100644 index 000000000..b4e8b85a4 --- /dev/null +++ b/src/queue/processors/inbox.ts @@ -0,0 +1,137 @@ +import * as Bull from 'bull'; +import * as httpSignature from 'http-signature'; +import perform from '../../remote/activitypub/perform'; +import Logger from '../../services/logger'; +import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; +import { Instances } from '../../models'; +import { instanceChart } from '../../services/chart'; +import { fetchMeta } from '../../misc/fetch-meta'; +import { toPuny, extractDbHost } from '../../misc/convert-host'; +import { getApId } from '../../remote/activitypub/type'; +import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata'; +import { InboxJobData } from '..'; +import DbResolver from '../../remote/activitypub/db-resolver'; +import { resolvePerson } from '../../remote/activitypub/models/person'; +import { LdSignature } from '../../remote/activitypub/misc/ld-signature'; + +const logger = new Logger('inbox'); + +// ユーザーのinboxにアクティビティが届いた時の処理 +export default async (job: Bull.Job): Promise => { + const signature = job.data.signature; // HTTP-signature + const activity = job.data.activity; + + //#region Log + const info = Object.assign({}, activity); + delete info['@context']; + logger.debug(JSON.stringify(info, null, 2)); + //#endregion + + const host = toPuny(new URL(signature.keyId).hostname); + + // ブロックしてたら中断 + const meta = await fetchMeta(); + if (meta.blockedHosts.includes(host)) { + return `Blocked request: ${host}`; + } + + const keyIdLower = signature.keyId.toLowerCase(); + if (keyIdLower.startsWith('acct:')) { + return `Old keyId is no longer supported. ${keyIdLower}`; + } + + const dbResolver = new DbResolver(); + + // HTTP-Signature keyIdを元にDBから取得 + let authUser = await dbResolver.getAuthUserFromKeyId(signature.keyId); + + // keyIdでわからなければ、activity.actorを元にDBから取得 || activity.actorを元にリモートから取得 + if (authUser == null) { + try { + authUser = await dbResolver.getAuthUserFromApId(getApId(activity.actor)); + } catch (e) { + // 対象が4xxならスキップ + if (e.statusCode >= 400 && e.statusCode < 500) { + return `skip: Ignored deleted actors on both ends ${activity.actor} - ${e.statusCode}`; + } + throw `Error in actor ${activity.actor} - ${e.statusCode || e}`; + } + } + + // それでもわからなければ終了 + if (authUser == null) { + return `skip: failed to resolve user`; + } + + // HTTP-Signatureの検証 + const httpSignatureValidated = httpSignature.verifySignature(signature, authUser.key.keyPem); + + // また、signatureのsignerは、activity.actorと一致する必要がある + if (!httpSignatureValidated || authUser.user.uri !== activity.actor) { + // 一致しなくても、でもLD-Signatureがありそうならそっちも見る + if (activity.signature) { + if (activity.signature.type !== 'RsaSignature2017') { + return `skip: unsupported LD-signature type ${activity.signature.type}`; + } + + // activity.signature.creator: https://example.oom/users/user#main-key + // みたいになっててUserを引っ張れば公開キーも入ることを期待する + if (activity.signature.creator) { + const candicate = activity.signature.creator.replace(/#.*/, ''); + await resolvePerson(candicate).catch(() => null); + } + + // keyIdからLD-Signatureのユーザーを取得 + authUser = await dbResolver.getAuthUserFromKeyId(activity.signature.creator); + if (authUser == null) { + return `skip: LD-Signatureのユーザーが取得できませんでした`; + } + + // LD-Signature検証 + const ldSignature = new LdSignature(); + const verified = await ldSignature.verifyRsaSignature2017(activity, authUser.key.keyPem).catch(() => false); + if (!verified) { + return `skip: LD-Signatureの検証に失敗しました`; + } + + // もう一度actorチェック + if (authUser.user.uri !== activity.actor) { + return `skip: LD-Signature user(${authUser.user.uri}) !== activity.actor(${activity.actor})`; + } + + // ブロックしてたら中断 + const ldHost = extractDbHost(authUser.user.uri); + if (meta.blockedHosts.includes(ldHost)) { + return `Blocked request: ${ldHost}`; + } + } else { + return `skip: http-signature verification failed and no LD-Signature. keyId=${signature.keyId}`; + } + } + + // activity.idがあればホストが署名者のホストであることを確認する + if (typeof activity.id === 'string') { + const signerHost = extractDbHost(authUser.user.uri!); + const activityIdHost = extractDbHost(activity.id); + if (signerHost !== activityIdHost) { + return `skip: signerHost(${signerHost}) !== activity.id host(${activityIdHost}`; + } + } + + // Update stats + registerOrFetchInstanceDoc(authUser.user.host).then(i => { + Instances.update(i.id, { + latestRequestReceivedAt: new Date(), + lastCommunicatedAt: new Date(), + isNotResponding: false + }); + + fetchInstanceMetadata(i); + + instanceChart.requestReceived(i.host); + }); + + // アクティビティを処理 + await perform(authUser.user, activity); + return `ok`; +}; diff --git a/src/queue/processors/object-storage/clean-remote-files.ts b/src/queue/processors/object-storage/clean-remote-files.ts new file mode 100644 index 000000000..7b34892e1 --- /dev/null +++ b/src/queue/processors/object-storage/clean-remote-files.ts @@ -0,0 +1,50 @@ +import * as Bull from 'bull'; + +import { queueLogger } from '../../logger'; +import { deleteFileSync } from '../../../services/drive/delete-file'; +import { DriveFiles } from '../../../models'; +import { MoreThan, Not, IsNull } from 'typeorm'; + +const logger = queueLogger.createSubLogger('clean-remote-files'); + +export default async function cleanRemoteFiles(job: Bull.Job, done: any): Promise { + logger.info(`Deleting cached remote files...`); + + let deletedCount = 0; + let cursor: any = null; + + while (true) { + const files = await DriveFiles.find({ + where: { + userHost: Not(IsNull()), + isLink: false, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 8, + order: { + id: 1 + } + }); + + if (files.length === 0) { + job.progress(100); + break; + } + + cursor = files[files.length - 1].id; + + await Promise.all(files.map(file => deleteFileSync(file, true))); + + deletedCount += 8; + + const total = await DriveFiles.count({ + userHost: Not(IsNull()), + isLink: false, + }); + + job.progress(deletedCount / total); + } + + logger.succ(`All cahced remote files has been deleted.`); + done(); +} diff --git a/src/queue/processors/object-storage/delete-file.ts b/src/queue/processors/object-storage/delete-file.ts new file mode 100644 index 000000000..f899df7d2 --- /dev/null +++ b/src/queue/processors/object-storage/delete-file.ts @@ -0,0 +1,10 @@ +import * as Bull from 'bull'; +import { deleteObjectStorageFile } from '../../../services/drive/delete-file'; + +export default async (job: Bull.Job) => { + const key: string = job.data.key; + + await deleteObjectStorageFile(key); + + return 'Success'; +}; diff --git a/src/queue/processors/object-storage/index.ts b/src/queue/processors/object-storage/index.ts new file mode 100644 index 000000000..33ef665b3 --- /dev/null +++ b/src/queue/processors/object-storage/index.ts @@ -0,0 +1,14 @@ +import * as Bull from 'bull'; +import deleteFile from './delete-file'; +import cleanRemoteFiles from './clean-remote-files'; + +const jobs = { + deleteFile, + cleanRemoteFiles, +} as any; + +export default function(q: Bull.Queue) { + for (const [k, v] of Object.entries(jobs)) { + q.process(k, 16, v as any); + } +} diff --git a/src/remote/activitypub/audience.ts b/src/remote/activitypub/audience.ts new file mode 100644 index 000000000..7cff678ae --- /dev/null +++ b/src/remote/activitypub/audience.ts @@ -0,0 +1,93 @@ +import { ApObject, getApIds } from './type'; +import Resolver from './resolver'; +import { resolvePerson } from './models/person'; +import { unique, concat } from '../../prelude/array'; +import * as promiseLimit from 'promise-limit'; +import { User, IRemoteUser } from '../../models/entities/user'; + +type Visibility = 'public' | 'home' | 'followers' | 'specified'; + +type AudienceInfo = { + visibility: Visibility, + mentionedUsers: User[], + visibleUsers: User[], +}; + +export async function parseAudience(actor: IRemoteUser, to?: ApObject, cc?: ApObject, resolver?: Resolver): Promise { + const toGroups = groupingAudience(getApIds(to), actor); + const ccGroups = groupingAudience(getApIds(cc), actor); + + const others = unique(concat([toGroups.other, ccGroups.other])); + + const limit = promiseLimit(2); + const mentionedUsers = (await Promise.all( + others.map(id => limit(() => resolvePerson(id, resolver).catch(() => null))) + )).filter((x): x is User => x != null); + + if (toGroups.public.length > 0) { + return { + visibility: 'public', + mentionedUsers, + visibleUsers: [] + }; + } + + if (ccGroups.public.length > 0) { + return { + visibility: 'home', + mentionedUsers, + visibleUsers: [] + }; + } + + if (toGroups.followers.length > 0) { + return { + visibility: 'followers', + mentionedUsers, + visibleUsers: [] + }; + } + + return { + visibility: 'specified', + mentionedUsers, + visibleUsers: mentionedUsers + }; +} + +function groupingAudience(ids: string[], actor: IRemoteUser) { + const groups = { + public: [] as string[], + followers: [] as string[], + other: [] as string[], + }; + + for (const id of ids) { + if (isPublic(id)) { + groups.public.push(id); + } else if (isFollowers(id, actor)) { + groups.followers.push(id); + } else { + groups.other.push(id); + } + } + + groups.other = unique(groups.other); + + return groups; +} + +function isPublic(id: string) { + return [ + 'https://www.w3.org/ns/activitystreams#Public', + 'as#Public', + 'Public', + ].includes(id); +} + +function isFollowers(id: string, actor: IRemoteUser) { + return [ + `${actor.uri}/followers`, + // actor.followerUri, // TODO + ].includes(id); +} diff --git a/src/remote/activitypub/db-resolver.ts b/src/remote/activitypub/db-resolver.ts new file mode 100644 index 000000000..cad2212b7 --- /dev/null +++ b/src/remote/activitypub/db-resolver.ts @@ -0,0 +1,141 @@ +import config from '../../config'; +import { Note } from '../../models/entities/note'; +import { User, IRemoteUser } from '../../models/entities/user'; +import { UserPublickey } from '../../models/entities/user-publickey'; +import { MessagingMessage } from '../../models/entities/messaging-message'; +import { Notes, Users, UserPublickeys, MessagingMessages } from '../../models'; +import { IObject, getApId } from './type'; +import { resolvePerson } from './models/person'; +import { ensure } from '../../prelude/ensure'; +import escapeRegexp = require('escape-regexp'); + +export default class DbResolver { + constructor() { + } + + /** + * AP Note => Misskey Note in DB + */ + public async getNoteFromApId(value: string | IObject): Promise { + const parsed = this.parseUri(value); + + if (parsed.id) { + return (await Notes.findOne({ + id: parsed.id + })) || null; + } + + if (parsed.uri) { + return (await Notes.findOne({ + uri: parsed.uri + })) || null; + } + + return null; + } + + public async getMessageFromApId(value: string | IObject): Promise { + const parsed = this.parseUri(value); + + if (parsed.id) { + return (await MessagingMessages.findOne({ + id: parsed.id + })) || null; + } + + if (parsed.uri) { + return (await MessagingMessages.findOne({ + uri: parsed.uri + })) || null; + } + + return null; + } + + /** + * AP Person => Misskey User in DB + */ + public async getUserFromApId(value: string | IObject): Promise { + const parsed = this.parseUri(value); + + if (parsed.id) { + return (await Users.findOne({ + id: parsed.id + })) || null; + } + + if (parsed.uri) { + return (await Users.findOne({ + uri: parsed.uri + })) || null; + } + + return null; + } + + /** + * AP KeyId => Misskey User and Key + */ + public async getAuthUserFromKeyId(keyId: string): Promise { + const key = await UserPublickeys.findOne({ + keyId + }); + + if (key == null) return null; + + const user = await Users.findOne(key.userId) as IRemoteUser; + + return { + user, + key + }; + } + + /** + * AP Actor id => Misskey User and Key + */ + public async getAuthUserFromApId(uri: string): Promise { + const user = await resolvePerson(uri) as IRemoteUser; + + if (user == null) return null; + + const key = await UserPublickeys.findOne(user.id).then(ensure); + + return { + user, + key + }; + } + + public parseUri(value: string | IObject): UriParseResult { + const uri = getApId(value); + + const localRegex = new RegExp('^' + escapeRegexp(config.url) + '/' + '(\\w+)' + '/' + '(\\w+)'); + const matchLocal = uri.match(localRegex); + + if (matchLocal) { + return { + type: matchLocal[1], + id: matchLocal[2] + }; + } else { + return { + uri + }; + } + } +} + +export type AuthUser = { + user: IRemoteUser; + key: UserPublickey; +}; + +type UriParseResult = { + /** id in DB (local object only) */ + id?: string; + /** uri in DB (remote object only) */ + uri?: string; + /** hint of type (local object only, ex: notes, users) */ + type?: string +}; diff --git a/src/remote/activitypub/deliver-manager.ts b/src/remote/activitypub/deliver-manager.ts new file mode 100644 index 000000000..d147b3c9b --- /dev/null +++ b/src/remote/activitypub/deliver-manager.ts @@ -0,0 +1,131 @@ +import { Users, Followings } from '../../models'; +import { ILocalUser, IRemoteUser } from '../../models/entities/user'; +import { deliver } from '../../queue'; + +//#region types +interface IRecipe { + type: string; +} + +interface IFollowersRecipe extends IRecipe { + type: 'Followers'; +} + +interface IDirectRecipe extends IRecipe { + type: 'Direct'; + to: IRemoteUser; +} + +const isFollowers = (recipe: any): recipe is IFollowersRecipe => + recipe.type === 'Followers'; + +const isDirect = (recipe: any): recipe is IDirectRecipe => + recipe.type === 'Direct'; +//#endregion + +export default class DeliverManager { + private actor: ILocalUser; + private activity: any; + private recipes: IRecipe[] = []; + + /** + * Constructor + * @param actor Actor + * @param activity Activity to deliver + */ + constructor(actor: ILocalUser, activity: any) { + this.actor = actor; + this.activity = activity; + } + + /** + * Add recipe for followers deliver + */ + public addFollowersRecipe() { + const deliver = { + type: 'Followers' + } as IFollowersRecipe; + + this.addRecipe(deliver); + } + + /** + * Add recipe for direct deliver + * @param to To + */ + public addDirectRecipe(to: IRemoteUser) { + const recipe = { + type: 'Direct', + to + } as IDirectRecipe; + + this.addRecipe(recipe); + } + + /** + * Add recipe + * @param recipe Recipe + */ + public addRecipe(recipe: IRecipe) { + this.recipes.push(recipe); + } + + /** + * Execute delivers + */ + public async execute() { + if (!Users.isLocalUser(this.actor)) return; + + const inboxes: string[] = []; + + // build inbox list + for (const recipe of this.recipes) { + if (isFollowers(recipe)) { + // followers deliver + const followers = await Followings.find({ + followeeId: this.actor.id + }); + + for (const following of followers) { + if (Followings.isRemoteFollower(following)) { + const inbox = following.followerSharedInbox || following.followerInbox; + if (!inboxes.includes(inbox)) inboxes.push(inbox); + } + } + } else if (isDirect(recipe)) { + // direct deliver + const inbox = recipe.to.inbox; + if (inbox && !inboxes.includes(inbox)) inboxes.push(inbox); + } + } + + // deliver + for (const inbox of inboxes) { + deliver(this.actor, this.activity, inbox); + } + } +} + +//#region Utilities +/** + * Deliver activity to followers + * @param activity Activity + * @param from Followee + */ +export async function deliverToFollowers(actor: ILocalUser, activity: any) { + const manager = new DeliverManager(actor, activity); + manager.addFollowersRecipe(); + await manager.execute(); +} + +/** + * Deliver activity to user + * @param activity Activity + * @param to Target user + */ +export async function deliverToUser(actor: ILocalUser, activity: any, to: IRemoteUser) { + const manager = new DeliverManager(actor, activity); + manager.addDirectRecipe(to); + await manager.execute(); +} +//#endregion diff --git a/src/remote/activitypub/kernel/accept/follow.ts b/src/remote/activitypub/kernel/accept/follow.ts new file mode 100644 index 000000000..71c1bed9d --- /dev/null +++ b/src/remote/activitypub/kernel/accept/follow.ts @@ -0,0 +1,29 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import accept from '../../../../services/following/requests/accept'; +import { IFollow } from '../../type'; +import DbResolver from '../../db-resolver'; +import { relayAccepted } from '../../../../services/relay'; + +export default async (actor: IRemoteUser, activity: IFollow): Promise => { + // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある + + const dbResolver = new DbResolver(); + const follower = await dbResolver.getUserFromApId(activity.actor); + + if (follower == null) { + return `skip: follower not found`; + } + + if (follower.host != null) { + return `skip: follower is not a local user`; + } + + // relay + const match = activity.id?.match(/follow-relay\/(\w+)/); + if (match) { + return await relayAccepted(match[1]); + } + + await accept(actor, follower); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/accept/index.ts b/src/remote/activitypub/kernel/accept/index.ts new file mode 100644 index 000000000..083e312a6 --- /dev/null +++ b/src/remote/activitypub/kernel/accept/index.ts @@ -0,0 +1,30 @@ +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/entities/user'; +import acceptFollow from './follow'; +import { IAccept, IFollow } from '../../type'; +import { apLogger } from '../../logger'; + +const logger = apLogger; + +export default async (actor: IRemoteUser, activity: IAccept): Promise => { + const uri = activity.id || activity; + + logger.info(`Accept: ${uri}`); + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity.object).catch(e => { + logger.error(`Resolution failed: ${e}`); + throw e; + }); + + switch (object.type) { + case 'Follow': + acceptFollow(actor, object as IFollow); + break; + + default: + logger.warn(`Unknown accept type: ${object.type}`); + break; + } +}; diff --git a/src/remote/activitypub/kernel/add/index.ts b/src/remote/activitypub/kernel/add/index.ts new file mode 100644 index 000000000..a5b268741 --- /dev/null +++ b/src/remote/activitypub/kernel/add/index.ts @@ -0,0 +1,23 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import { IAdd } from '../../type'; +import { resolveNote } from '../../models/note'; +import { addPinned } from '../../../../services/i/pin'; + +export default async (actor: IRemoteUser, activity: IAdd): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + throw new Error('invalid actor'); + } + + if (activity.target == null) { + throw new Error('target is null'); + } + + if (activity.target === actor.featured) { + const note = await resolveNote(activity.object); + if (note == null) throw new Error('note not found'); + await addPinned(actor, note.id); + return; + } + + throw new Error(`unknown target: ${activity.target}`); +}; diff --git a/src/remote/activitypub/kernel/announce/index.ts b/src/remote/activitypub/kernel/announce/index.ts new file mode 100644 index 000000000..28ad2fbcc --- /dev/null +++ b/src/remote/activitypub/kernel/announce/index.ts @@ -0,0 +1,19 @@ +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/entities/user'; +import announceNote from './note'; +import { IAnnounce, getApId } from '../../type'; +import { apLogger } from '../../logger'; + +const logger = apLogger; + +export default async (actor: IRemoteUser, activity: IAnnounce): Promise => { + const uri = getApId(activity); + + logger.info(`Announce: ${uri}`); + + const resolver = new Resolver(); + + const targetUri = getApId(activity.object); + + announceNote(resolver, actor, activity, targetUri); +}; diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts new file mode 100644 index 000000000..765180742 --- /dev/null +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -0,0 +1,66 @@ +import Resolver from '../../resolver'; +import post from '../../../../services/note/create'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { IAnnounce, getApId } from '../../type'; +import { fetchNote, resolveNote } from '../../models/note'; +import { apLogger } from '../../logger'; +import { extractDbHost } from '../../../../misc/convert-host'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { getApLock } from '../../../../misc/app-lock'; +import { parseAudience } from '../../audience'; + +const logger = apLogger; + +/** + * アナウンスアクティビティを捌きます + */ +export default async function(resolver: Resolver, actor: IRemoteUser, activity: IAnnounce, targetUri: string): Promise { + const uri = getApId(activity); + + // アナウンサーが凍結されていたらスキップ + if (actor.isSuspended) { + return; + } + + // アナウンス先をブロックしてたら中断 + const meta = await fetchMeta(); + if (meta.blockedHosts.includes(extractDbHost(uri))) return; + + const unlock = await getApLock(uri); + + try { + // 既に同じURIを持つものが登録されていないかチェック + const exist = await fetchNote(uri); + if (exist) { + return; + } + + // Announce対象をresolve + let renote; + try { + renote = await resolveNote(targetUri); + } catch (e) { + // 対象が4xxならスキップ + if (e.statusCode >= 400 && e.statusCode < 500) { + logger.warn(`Ignored announce target ${targetUri} - ${e.statusCode}`); + return; + } + logger.warn(`Error in announce target ${targetUri} - ${e.statusCode || e}`); + throw e; + } + + logger.info(`Creating the (Re)Note: ${uri}`); + + const activityAudience = await parseAudience(actor, activity.to, activity.cc); + + await post(actor, { + createdAt: activity.published ? new Date(activity.published) : null, + renote, + visibility: activityAudience.visibility, + visibleUsers: activityAudience.visibleUsers, + uri + }); + } finally { + unlock(); + } +} diff --git a/src/remote/activitypub/kernel/block/index.ts b/src/remote/activitypub/kernel/block/index.ts new file mode 100644 index 000000000..6c794e125 --- /dev/null +++ b/src/remote/activitypub/kernel/block/index.ts @@ -0,0 +1,22 @@ +import { IBlock } from '../../type'; +import block from '../../../../services/blocking/create'; +import { IRemoteUser } from '../../../../models/entities/user'; +import DbResolver from '../../db-resolver'; + +export default async (actor: IRemoteUser, activity: IBlock): Promise => { + // ※ activity.objectにブロック対象があり、それは存在するローカルユーザーのはず + + const dbResolver = new DbResolver(); + const blockee = await dbResolver.getUserFromApId(activity.object); + + if (blockee == null) { + return `skip: blockee not found`; + } + + if (blockee.host != null) { + return `skip: ブロックしようとしているユーザーはローカルユーザーではありません`; + } + + await block(actor, blockee); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts new file mode 100644 index 000000000..108cfedf4 --- /dev/null +++ b/src/remote/activitypub/kernel/create/index.ts @@ -0,0 +1,43 @@ +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/entities/user'; +import createNote from './note'; +import { ICreate, getApId, validPost } from '../../type'; +import { apLogger } from '../../logger'; +import { toArray, concat, unique } from '../../../../prelude/array'; + +const logger = apLogger; + +export default async (actor: IRemoteUser, activity: ICreate): Promise => { + const uri = getApId(activity); + + logger.info(`Create: ${uri}`); + + // copy audiences between activity <=> object. + if (typeof activity.object === 'object') { + const to = unique(concat([toArray(activity.to), toArray(activity.object.to)])); + const cc = unique(concat([toArray(activity.cc), toArray(activity.object.cc)])); + + activity.to = to; + activity.cc = cc; + activity.object.to = to; + activity.object.cc = cc; + } + + // If there is no attributedTo, use Activity actor. + if (typeof activity.object === 'object' && !activity.object.attributedTo) { + activity.object.attributedTo = activity.actor; + } + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity.object).catch(e => { + logger.error(`Resolution failed: ${e}`); + throw e; + }); + + if (validPost.includes(object.type)) { + createNote(resolver, actor, object, false, activity); + } else { + logger.warn(`Unknown type: ${object.type}`); + } +}; diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts new file mode 100644 index 000000000..f4fb8e564 --- /dev/null +++ b/src/remote/activitypub/kernel/create/note.ts @@ -0,0 +1,43 @@ +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { createNote, fetchNote } from '../../models/note'; +import { getApId, IObject, ICreate } from '../../type'; +import { getApLock } from '../../../../misc/app-lock'; +import { extractDbHost } from '../../../../misc/convert-host'; + +/** + * 投稿作成アクティビティを捌きます + */ +export default async function(resolver: Resolver, actor: IRemoteUser, note: IObject, silent = false, activity?: ICreate): Promise { + const uri = getApId(note); + + if (typeof note === 'object') { + if (actor.uri !== note.attributedTo) { + return `skip: actor.uri !== note.attributedTo`; + } + + if (typeof note.id === 'string') { + if (extractDbHost(actor.uri) !== extractDbHost(note.id)) { + return `skip: host in actor.uri !== note.id`; + } + } + } + + const unlock = await getApLock(uri); + + try { + const exist = await fetchNote(note); + if (exist) return 'skip: note exists'; + + await createNote(note, resolver, silent); + return 'ok'; + } catch (e) { + if (e.statusCode >= 400 && e.statusCode < 500) { + return `skip ${e.statusCode}`; + } else { + throw e; + } + } finally { + unlock(); + } +} diff --git a/src/remote/activitypub/kernel/delete/index.ts b/src/remote/activitypub/kernel/delete/index.ts new file mode 100644 index 000000000..4fb3d4057 --- /dev/null +++ b/src/remote/activitypub/kernel/delete/index.ts @@ -0,0 +1,48 @@ +import deleteNote from './note'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type'; +import { toSingle } from '../../../../prelude/array'; + +/** + * 削除アクティビティを捌きます + */ +export default async (actor: IRemoteUser, activity: IDelete): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + throw new Error('invalid actor'); + } + + // 削除対象objectのtype + let formarType: string | undefined; + + if (typeof activity.object === 'string') { + // typeが不明だけど、どうせ消えてるのでremote resolveしない + formarType = undefined; + } else { + const object = activity.object as IObject; + if (isTombstone(object)) { + formarType = toSingle(object.formerType); + } else { + formarType = toSingle(object.type); + } + } + + const uri = getApId(activity.object); + + // type不明でもactorとobjectが同じならばそれはPersonに違いない + if (!formarType && actor.uri === uri) { + formarType = 'Person'; + } + + // それでもなかったらおそらくNote + if (!formarType) { + formarType = 'Note'; + } + + if (validPost.includes(formarType)) { + return await deleteNote(actor, uri); + } else if (validActor.includes(formarType)) { + return `Delete Actor is not implanted`; + } else { + return `Unknown type ${formarType}`; + } +}; diff --git a/src/remote/activitypub/kernel/delete/note.ts b/src/remote/activitypub/kernel/delete/note.ts new file mode 100644 index 000000000..8fa2285db --- /dev/null +++ b/src/remote/activitypub/kernel/delete/note.ts @@ -0,0 +1,41 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import deleteNode from '../../../../services/note/delete'; +import { apLogger } from '../../logger'; +import DbResolver from '../../db-resolver'; +import { getApLock } from '../../../../misc/app-lock'; +import { deleteMessage } from '../../../../services/messages/delete'; + +const logger = apLogger; + +export default async function(actor: IRemoteUser, uri: string): Promise { + logger.info(`Deleting the Note: ${uri}`); + + const unlock = await getApLock(uri); + + try { + const dbResolver = new DbResolver(); + const note = await dbResolver.getNoteFromApId(uri); + + if (note == null) { + const message = await dbResolver.getMessageFromApId(uri); + if (message == null) return 'message not found'; + + if (message.userId !== actor.id) { + return '投稿を削除しようとしているユーザーは投稿の作成者ではありません'; + } + + await deleteMessage(message); + + return 'ok: message deleted'; + } + + if (note.userId !== actor.id) { + return '投稿を削除しようとしているユーザーは投稿の作成者ではありません'; + } + + await deleteNode(actor, note); + return 'ok: note deleted'; + } finally { + unlock(); + } +} diff --git a/src/remote/activitypub/kernel/flag/index.ts b/src/remote/activitypub/kernel/flag/index.ts new file mode 100644 index 000000000..46ea789b4 --- /dev/null +++ b/src/remote/activitypub/kernel/flag/index.ts @@ -0,0 +1,30 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import config from '../../../../config'; +import { IFlag, getApIds } from '../../type'; +import { AbuseUserReports, Users } from '../../../../models'; +import { In } from 'typeorm'; +import { genId } from '../../../../misc/gen-id'; + +export default async (actor: IRemoteUser, activity: IFlag): Promise => { + // objectは `(User|Note) | (User|Note)[]` だけど、全パターンDBスキーマと対応させられないので + // 対象ユーザーは一番最初のユーザー として あとはコメントとして格納する + const uris = getApIds(activity.object); + + const userIds = uris.filter(uri => uri.startsWith(config.url + '/users/')).map(uri => uri.split('/').pop()); + const users = await Users.find({ + id: In(userIds) + }); + if (users.length < 1) return `skip`; + + await AbuseUserReports.insert({ + id: genId(), + createdAt: new Date(), + targetUserId: users[0].id, + targetUserHost: users[0].host, + reporterId: actor.id, + reporterHost: actor.host, + comment: `${activity.content}\n${JSON.stringify(uris, null, 2)}` + }); + + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/follow.ts b/src/remote/activitypub/kernel/follow.ts new file mode 100644 index 000000000..3e2063302 --- /dev/null +++ b/src/remote/activitypub/kernel/follow.ts @@ -0,0 +1,20 @@ +import { IRemoteUser } from '../../../models/entities/user'; +import follow from '../../../services/following/create'; +import { IFollow } from '../type'; +import DbResolver from '../db-resolver'; + +export default async (actor: IRemoteUser, activity: IFollow): Promise => { + const dbResolver = new DbResolver(); + const followee = await dbResolver.getUserFromApId(activity.object); + + if (followee == null) { + return `skip: followee not found`; + } + + if (followee.host != null) { + return `skip: フォローしようとしているユーザーはローカルユーザーではありません`; + } + + await follow(actor, followee, activity.id); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/index.ts b/src/remote/activitypub/kernel/index.ts new file mode 100644 index 000000000..ff75f8029 --- /dev/null +++ b/src/remote/activitypub/kernel/index.ts @@ -0,0 +1,71 @@ +import { IObject, isCreate, isDelete, isUpdate, isRead, isFollow, isAccept, isReject, isAdd, isRemove, isAnnounce, isLike, isUndo, isBlock, isCollectionOrOrderedCollection, isCollection, isFlag } from '../type'; +import { IRemoteUser } from '../../../models/entities/user'; +import create from './create'; +import performDeleteActivity from './delete'; +import performUpdateActivity from './update'; +import { performReadActivity } from './read'; +import follow from './follow'; +import undo from './undo'; +import like from './like'; +import announce from './announce'; +import accept from './accept'; +import reject from './reject'; +import add from './add'; +import remove from './remove'; +import block from './block'; +import flag from './flag'; +import { apLogger } from '../logger'; +import Resolver from '../resolver'; +import { toArray } from '../../../prelude/array'; + +export async function performActivity(actor: IRemoteUser, activity: IObject) { + if (isCollectionOrOrderedCollection(activity)) { + const resolver = new Resolver(); + for (const item of toArray(isCollection(activity) ? activity.items : activity.orderedItems)) { + const act = await resolver.resolve(item); + try { + await performOneActivity(actor, act); + } catch (e) { + apLogger.error(e); + } + } + } else { + await performOneActivity(actor, activity); + } +} + +async function performOneActivity(actor: IRemoteUser, activity: IObject): Promise { + if (actor.isSuspended) return; + + if (isCreate(activity)) { + await create(actor, activity); + } else if (isDelete(activity)) { + await performDeleteActivity(actor, activity); + } else if (isUpdate(activity)) { + await performUpdateActivity(actor, activity); + } else if (isRead(activity)) { + await performReadActivity(actor, activity); + } else if (isFollow(activity)) { + await follow(actor, activity); + } else if (isAccept(activity)) { + await accept(actor, activity); + } else if (isReject(activity)) { + await reject(actor, activity); + } else if (isAdd(activity)) { + await add(actor, activity).catch(err => apLogger.error(err)); + } else if (isRemove(activity)) { + await remove(actor, activity).catch(err => apLogger.error(err)); + } else if (isAnnounce(activity)) { + await announce(actor, activity); + } else if (isLike(activity)) { + await like(actor, activity); + } else if (isUndo(activity)) { + await undo(actor, activity); + } else if (isBlock(activity)) { + await block(actor, activity); + } else if (isFlag(activity)) { + await flag(actor, activity); + } else { + apLogger.warn(`unrecognized activity type: ${(activity as any).type}`); + } +} diff --git a/src/remote/activitypub/kernel/like.ts b/src/remote/activitypub/kernel/like.ts new file mode 100644 index 000000000..a6f02a1f8 --- /dev/null +++ b/src/remote/activitypub/kernel/like.ts @@ -0,0 +1,16 @@ +import { IRemoteUser } from '../../../models/entities/user'; +import { ILike, getApId } from '../type'; +import create from '../../../services/note/reaction/create'; +import { fetchNote, extractEmojis } from '../models/note'; + +export default async (actor: IRemoteUser, activity: ILike) => { + const targetUri = getApId(activity.object); + + const note = await fetchNote(targetUri); + if (!note) return `skip: target note not found ${targetUri}`; + + await extractEmojis(activity.tag || [], actor.host).catch(() => null); + + await create(actor, note, activity._misskey_reaction || activity.content || activity.name); + return `ok`; +}; diff --git a/packages/backend/test/resources/emptyfile b/src/remote/activitypub/kernel/move/index.ts similarity index 100% rename from packages/backend/test/resources/emptyfile rename to src/remote/activitypub/kernel/move/index.ts diff --git a/src/remote/activitypub/kernel/read.ts b/src/remote/activitypub/kernel/read.ts new file mode 100644 index 000000000..e4049fa7e --- /dev/null +++ b/src/remote/activitypub/kernel/read.ts @@ -0,0 +1,27 @@ +import { IRemoteUser } from '../../../models/entities/user'; +import { IRead, getApId } from '../type'; +import { isSelfHost, extractDbHost } from '../../../misc/convert-host'; +import { MessagingMessages } from '../../../models'; +import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message'; + +export const performReadActivity = async (actor: IRemoteUser, activity: IRead): Promise => { + const id = await getApId(activity.object); + + if (!isSelfHost(extractDbHost(id))) { + return `skip: Read to foreign host (${id})`; + } + + const messageId = id.split('/').pop(); + + const message = await MessagingMessages.findOne(messageId); + if (message == null) { + return `skip: message not found`; + } + + if (actor.id != message.recipientId) { + return `skip: actor is not a message recipient`; + } + + await readUserMessagingMessage(message.recipientId!, message.userId, [message.id]); + return `ok: mark as read (${message.userId} => ${message.recipientId} ${message.id})`; +}; diff --git a/src/remote/activitypub/kernel/reject/follow.ts b/src/remote/activitypub/kernel/reject/follow.ts new file mode 100644 index 000000000..d97ced46b --- /dev/null +++ b/src/remote/activitypub/kernel/reject/follow.ts @@ -0,0 +1,29 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import reject from '../../../../services/following/requests/reject'; +import { IFollow } from '../../type'; +import DbResolver from '../../db-resolver'; +import { relayRejected } from '../../../../services/relay'; + +export default async (actor: IRemoteUser, activity: IFollow): Promise => { + // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある + + const dbResolver = new DbResolver(); + const follower = await dbResolver.getUserFromApId(activity.actor); + + if (follower == null) { + return `skip: follower not found`; + } + + if (follower.host != null) { + return `skip: follower is not a local user`; + } + + // relay + const match = activity.id?.match(/follow-relay\/(\w+)/); + if (match) { + return await relayRejected(match[1]); + } + + await reject(actor, follower); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/reject/index.ts b/src/remote/activitypub/kernel/reject/index.ts new file mode 100644 index 000000000..96e9aadf5 --- /dev/null +++ b/src/remote/activitypub/kernel/reject/index.ts @@ -0,0 +1,30 @@ +import Resolver from '../../resolver'; +import { IRemoteUser } from '../../../../models/entities/user'; +import rejectFollow from './follow'; +import { IReject, IFollow } from '../../type'; +import { apLogger } from '../../logger'; + +const logger = apLogger; + +export default async (actor: IRemoteUser, activity: IReject): Promise => { + const uri = activity.id || activity; + + logger.info(`Reject: ${uri}`); + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity.object).catch(e => { + logger.error(`Resolution failed: ${e}`); + throw e; + }); + + switch (object.type) { + case 'Follow': + rejectFollow(actor, object as IFollow); + break; + + default: + logger.warn(`Unknown reject type: ${object.type}`); + break; + } +}; diff --git a/src/remote/activitypub/kernel/remove/index.ts b/src/remote/activitypub/kernel/remove/index.ts new file mode 100644 index 000000000..32b8d6647 --- /dev/null +++ b/src/remote/activitypub/kernel/remove/index.ts @@ -0,0 +1,23 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemove } from '../../type'; +import { resolveNote } from '../../models/note'; +import { removePinned } from '../../../../services/i/pin'; + +export default async (actor: IRemoteUser, activity: IRemove): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + throw new Error('invalid actor'); + } + + if (activity.target == null) { + throw new Error('target is null'); + } + + if (activity.target === actor.featured) { + const note = await resolveNote(activity.object); + if (note == null) throw new Error('note not found'); + await removePinned(actor, note.id); + return; + } + + throw new Error(`unknown target: ${activity.target}`); +}; diff --git a/src/remote/activitypub/kernel/undo/announce.ts b/src/remote/activitypub/kernel/undo/announce.ts new file mode 100644 index 000000000..38ce5b6c5 --- /dev/null +++ b/src/remote/activitypub/kernel/undo/announce.ts @@ -0,0 +1,16 @@ +import { Notes } from '../../../../models'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { IAnnounce, getApId } from '../../type'; +import deleteNote from '../../../../services/note/delete'; + +export const undoAnnounce = async (actor: IRemoteUser, activity: IAnnounce): Promise => { + const uri = getApId(activity); + + const note = await Notes.findOne({ + uri + }); + + if (!note) return; + + await deleteNote(actor, note); +}; diff --git a/src/remote/activitypub/kernel/undo/block.ts b/src/remote/activitypub/kernel/undo/block.ts new file mode 100644 index 000000000..73000fc3f --- /dev/null +++ b/src/remote/activitypub/kernel/undo/block.ts @@ -0,0 +1,20 @@ +import { IBlock } from '../../type'; +import unblock from '../../../../services/blocking/delete'; +import { IRemoteUser } from '../../../../models/entities/user'; +import DbResolver from '../../db-resolver'; + +export default async (actor: IRemoteUser, activity: IBlock): Promise => { + const dbResolver = new DbResolver(); + const blockee = await dbResolver.getUserFromApId(activity.object); + + if (blockee == null) { + return `skip: blockee not found`; + } + + if (blockee.host != null) { + return `skip: ブロック解除しようとしているユーザーはローカルユーザーではありません`; + } + + await unblock(actor, blockee); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/undo/follow.ts b/src/remote/activitypub/kernel/undo/follow.ts new file mode 100644 index 000000000..73a164030 --- /dev/null +++ b/src/remote/activitypub/kernel/undo/follow.ts @@ -0,0 +1,41 @@ +import unfollow from '../../../../services/following/delete'; +import cancelRequest from '../../../../services/following/requests/cancel'; +import { IFollow } from '../../type'; +import { IRemoteUser } from '../../../../models/entities/user'; +import { FollowRequests, Followings } from '../../../../models'; +import DbResolver from '../../db-resolver'; + +export default async (actor: IRemoteUser, activity: IFollow): Promise => { + const dbResolver = new DbResolver(); + + const followee = await dbResolver.getUserFromApId(activity.object); + if (followee == null) { + return `skip: followee not found`; + } + + if (followee.host != null) { + return `skip: フォロー解除しようとしているユーザーはローカルユーザーではありません`; + } + + const req = await FollowRequests.findOne({ + followerId: actor.id, + followeeId: followee.id + }); + + const following = await Followings.findOne({ + followerId: actor.id, + followeeId: followee.id + }); + + if (req) { + await cancelRequest(followee, actor); + return `ok: follow request canceled`; + } + + if (following) { + await unfollow(actor, followee); + return `ok: unfollowed`; + } + + return `skip: リクエストもフォローもされていない`; +}; diff --git a/src/remote/activitypub/kernel/undo/index.ts b/src/remote/activitypub/kernel/undo/index.ts new file mode 100644 index 000000000..93909352d --- /dev/null +++ b/src/remote/activitypub/kernel/undo/index.ts @@ -0,0 +1,44 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import { IUndo, IFollow, IBlock, ILike, IAnnounce } from '../../type'; +import unfollow from './follow'; +import unblock from './block'; +import undoLike from './like'; +import { undoAnnounce } from './announce'; +import Resolver from '../../resolver'; +import { apLogger } from '../../logger'; + +const logger = apLogger; + +export default async (actor: IRemoteUser, activity: IUndo): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + throw new Error('invalid actor'); + } + + const uri = activity.id || activity; + + logger.info(`Undo: ${uri}`); + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity.object).catch(e => { + logger.error(`Resolution failed: ${e}`); + throw e; + }); + + switch (object.type) { + case 'Follow': + unfollow(actor, object as IFollow); + break; + case 'Block': + unblock(actor, object as IBlock); + break; + case 'Like': + case 'EmojiReaction': + case 'EmojiReact': + undoLike(actor, object as ILike); + break; + case 'Announce': + undoAnnounce(actor, object as IAnnounce); + break; + } +}; diff --git a/src/remote/activitypub/kernel/undo/like.ts b/src/remote/activitypub/kernel/undo/like.ts new file mode 100644 index 000000000..bd6930c66 --- /dev/null +++ b/src/remote/activitypub/kernel/undo/like.ts @@ -0,0 +1,17 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import { ILike, getApId } from '../../type'; +import deleteReaction from '../../../../services/note/reaction/delete'; +import { fetchNote } from '../../models/note'; + +/** + * Process Undo.Like activity + */ +export default async (actor: IRemoteUser, activity: ILike) => { + const targetUri = getApId(activity.object); + + const note = await fetchNote(targetUri); + if (!note) return `skip: target note not found ${targetUri}`; + + await deleteReaction(actor, note); + return `ok`; +}; diff --git a/src/remote/activitypub/kernel/update/index.ts b/src/remote/activitypub/kernel/update/index.ts new file mode 100644 index 000000000..ea7e6a063 --- /dev/null +++ b/src/remote/activitypub/kernel/update/index.ts @@ -0,0 +1,34 @@ +import { IRemoteUser } from '../../../../models/entities/user'; +import { IUpdate, validActor } from '../../type'; +import { apLogger } from '../../logger'; +import { updateQuestion } from '../../models/question'; +import Resolver from '../../resolver'; +import { updatePerson } from '../../models/person'; + +/** + * Updateアクティビティを捌きます + */ +export default async (actor: IRemoteUser, activity: IUpdate): Promise => { + if ('actor' in activity && actor.uri !== activity.actor) { + return `skip: invalid actor`; + } + + apLogger.debug('Update'); + + const resolver = new Resolver(); + + const object = await resolver.resolve(activity.object).catch(e => { + apLogger.error(`Resolution failed: ${e}`); + throw e; + }); + + if (validActor.includes(object.type)) { + await updatePerson(actor.uri!, resolver, object); + return `ok: Person updated`; + } else if (object.type === 'Question') { + await updateQuestion(object).catch(e => console.log(e)); + return `ok: Question updated`; + } else { + return `skip: Unknown type: ${object.type}`; + } +}; diff --git a/src/remote/activitypub/logger.ts b/src/remote/activitypub/logger.ts new file mode 100644 index 000000000..e13add01d --- /dev/null +++ b/src/remote/activitypub/logger.ts @@ -0,0 +1,3 @@ +import { remoteLogger } from '../logger'; + +export const apLogger = remoteLogger.createSubLogger('ap', 'magenta'); diff --git a/src/remote/activitypub/misc/contexts.ts b/src/remote/activitypub/misc/contexts.ts new file mode 100644 index 000000000..999e3ea5d --- /dev/null +++ b/src/remote/activitypub/misc/contexts.ts @@ -0,0 +1,522 @@ +/* tslint:disable:quotemark indent */ +const id_v1 = { + "@context": { + "id": "@id", + "type": "@type", + + "cred": "https://w3id.org/credentials#", + "dc": "http://purl.org/dc/terms/", + "identity": "https://w3id.org/identity#", + "perm": "https://w3id.org/permissions#", + "ps": "https://w3id.org/payswarm#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "sec": "https://w3id.org/security#", + "schema": "http://schema.org/", + "xsd": "http://www.w3.org/2001/XMLSchema#", + + "Group": "https://www.w3.org/ns/activitystreams#Group", + + "claim": {"@id": "cred:claim", "@type": "@id"}, + "credential": {"@id": "cred:credential", "@type": "@id"}, + "issued": {"@id": "cred:issued", "@type": "xsd:dateTime"}, + "issuer": {"@id": "cred:issuer", "@type": "@id"}, + "recipient": {"@id": "cred:recipient", "@type": "@id"}, + "Credential": "cred:Credential", + "CryptographicKeyCredential": "cred:CryptographicKeyCredential", + + "about": {"@id": "schema:about", "@type": "@id"}, + "address": {"@id": "schema:address", "@type": "@id"}, + "addressCountry": "schema:addressCountry", + "addressLocality": "schema:addressLocality", + "addressRegion": "schema:addressRegion", + "comment": "rdfs:comment", + "created": {"@id": "dc:created", "@type": "xsd:dateTime"}, + "creator": {"@id": "dc:creator", "@type": "@id"}, + "description": "schema:description", + "email": "schema:email", + "familyName": "schema:familyName", + "givenName": "schema:givenName", + "image": {"@id": "schema:image", "@type": "@id"}, + "label": "rdfs:label", + "name": "schema:name", + "postalCode": "schema:postalCode", + "streetAddress": "schema:streetAddress", + "title": "dc:title", + "url": {"@id": "schema:url", "@type": "@id"}, + "Person": "schema:Person", + "PostalAddress": "schema:PostalAddress", + "Organization": "schema:Organization", + + "identityService": {"@id": "identity:identityService", "@type": "@id"}, + "idp": {"@id": "identity:idp", "@type": "@id"}, + "Identity": "identity:Identity", + + "paymentProcessor": "ps:processor", + "preferences": {"@id": "ps:preferences", "@type": "@vocab"}, + + "cipherAlgorithm": "sec:cipherAlgorithm", + "cipherData": "sec:cipherData", + "cipherKey": "sec:cipherKey", + "digestAlgorithm": "sec:digestAlgorithm", + "digestValue": "sec:digestValue", + "domain": "sec:domain", + "expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, + "initializationVector": "sec:initializationVector", + "member": {"@id": "schema:member", "@type": "@id"}, + "memberOf": {"@id": "schema:memberOf", "@type": "@id"}, + "nonce": "sec:nonce", + "normalizationAlgorithm": "sec:normalizationAlgorithm", + "owner": {"@id": "sec:owner", "@type": "@id"}, + "password": "sec:password", + "privateKey": {"@id": "sec:privateKey", "@type": "@id"}, + "privateKeyPem": "sec:privateKeyPem", + "publicKey": {"@id": "sec:publicKey", "@type": "@id"}, + "publicKeyPem": "sec:publicKeyPem", + "publicKeyService": {"@id": "sec:publicKeyService", "@type": "@id"}, + "revoked": {"@id": "sec:revoked", "@type": "xsd:dateTime"}, + "signature": "sec:signature", + "signatureAlgorithm": "sec:signatureAlgorithm", + "signatureValue": "sec:signatureValue", + "CryptographicKey": "sec:Key", + "EncryptedMessage": "sec:EncryptedMessage", + "GraphSignature2012": "sec:GraphSignature2012", + "LinkedDataSignature2015": "sec:LinkedDataSignature2015", + + "accessControl": {"@id": "perm:accessControl", "@type": "@id"}, + "writePermission": {"@id": "perm:writePermission", "@type": "@id"} + } +}; + +const security_v1 = { + "@context": { + "id": "@id", + "type": "@type", + + "dc": "http://purl.org/dc/terms/", + "sec": "https://w3id.org/security#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + + "EcdsaKoblitzSignature2016": "sec:EcdsaKoblitzSignature2016", + "Ed25519Signature2018": "sec:Ed25519Signature2018", + "EncryptedMessage": "sec:EncryptedMessage", + "GraphSignature2012": "sec:GraphSignature2012", + "LinkedDataSignature2015": "sec:LinkedDataSignature2015", + "LinkedDataSignature2016": "sec:LinkedDataSignature2016", + "CryptographicKey": "sec:Key", + + "authenticationTag": "sec:authenticationTag", + "canonicalizationAlgorithm": "sec:canonicalizationAlgorithm", + "cipherAlgorithm": "sec:cipherAlgorithm", + "cipherData": "sec:cipherData", + "cipherKey": "sec:cipherKey", + "created": {"@id": "dc:created", "@type": "xsd:dateTime"}, + "creator": {"@id": "dc:creator", "@type": "@id"}, + "digestAlgorithm": "sec:digestAlgorithm", + "digestValue": "sec:digestValue", + "domain": "sec:domain", + "encryptionKey": "sec:encryptionKey", + "expiration": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, + "expires": {"@id": "sec:expiration", "@type": "xsd:dateTime"}, + "initializationVector": "sec:initializationVector", + "iterationCount": "sec:iterationCount", + "nonce": "sec:nonce", + "normalizationAlgorithm": "sec:normalizationAlgorithm", + "owner": {"@id": "sec:owner", "@type": "@id"}, + "password": "sec:password", + "privateKey": {"@id": "sec:privateKey", "@type": "@id"}, + "privateKeyPem": "sec:privateKeyPem", + "publicKey": {"@id": "sec:publicKey", "@type": "@id"}, + "publicKeyBase58": "sec:publicKeyBase58", + "publicKeyPem": "sec:publicKeyPem", + "publicKeyWif": "sec:publicKeyWif", + "publicKeyService": {"@id": "sec:publicKeyService", "@type": "@id"}, + "revoked": {"@id": "sec:revoked", "@type": "xsd:dateTime"}, + "salt": "sec:salt", + "signature": "sec:signature", + "signatureAlgorithm": "sec:signingAlgorithm", + "signatureValue": "sec:signatureValue" + } +}; + +const activitystreams = { + "@context": { + "@vocab": "_:", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "as": "https://www.w3.org/ns/activitystreams#", + "ldp": "http://www.w3.org/ns/ldp#", + "vcard": "http://www.w3.org/2006/vcard/ns#", + "id": "@id", + "type": "@type", + "Accept": "as:Accept", + "Activity": "as:Activity", + "IntransitiveActivity": "as:IntransitiveActivity", + "Add": "as:Add", + "Announce": "as:Announce", + "Application": "as:Application", + "Arrive": "as:Arrive", + "Article": "as:Article", + "Audio": "as:Audio", + "Block": "as:Block", + "Collection": "as:Collection", + "CollectionPage": "as:CollectionPage", + "Relationship": "as:Relationship", + "Create": "as:Create", + "Delete": "as:Delete", + "Dislike": "as:Dislike", + "Document": "as:Document", + "Event": "as:Event", + "Follow": "as:Follow", + "Flag": "as:Flag", + "Group": "as:Group", + "Ignore": "as:Ignore", + "Image": "as:Image", + "Invite": "as:Invite", + "Join": "as:Join", + "Leave": "as:Leave", + "Like": "as:Like", + "Link": "as:Link", + "Mention": "as:Mention", + "Note": "as:Note", + "Object": "as:Object", + "Offer": "as:Offer", + "OrderedCollection": "as:OrderedCollection", + "OrderedCollectionPage": "as:OrderedCollectionPage", + "Organization": "as:Organization", + "Page": "as:Page", + "Person": "as:Person", + "Place": "as:Place", + "Profile": "as:Profile", + "Question": "as:Question", + "Reject": "as:Reject", + "Remove": "as:Remove", + "Service": "as:Service", + "TentativeAccept": "as:TentativeAccept", + "TentativeReject": "as:TentativeReject", + "Tombstone": "as:Tombstone", + "Undo": "as:Undo", + "Update": "as:Update", + "Video": "as:Video", + "View": "as:View", + "Listen": "as:Listen", + "Read": "as:Read", + "Move": "as:Move", + "Travel": "as:Travel", + "IsFollowing": "as:IsFollowing", + "IsFollowedBy": "as:IsFollowedBy", + "IsContact": "as:IsContact", + "IsMember": "as:IsMember", + "subject": { + "@id": "as:subject", + "@type": "@id" + }, + "relationship": { + "@id": "as:relationship", + "@type": "@id" + }, + "actor": { + "@id": "as:actor", + "@type": "@id" + }, + "attributedTo": { + "@id": "as:attributedTo", + "@type": "@id" + }, + "attachment": { + "@id": "as:attachment", + "@type": "@id" + }, + "bcc": { + "@id": "as:bcc", + "@type": "@id" + }, + "bto": { + "@id": "as:bto", + "@type": "@id" + }, + "cc": { + "@id": "as:cc", + "@type": "@id" + }, + "context": { + "@id": "as:context", + "@type": "@id" + }, + "current": { + "@id": "as:current", + "@type": "@id" + }, + "first": { + "@id": "as:first", + "@type": "@id" + }, + "generator": { + "@id": "as:generator", + "@type": "@id" + }, + "icon": { + "@id": "as:icon", + "@type": "@id" + }, + "image": { + "@id": "as:image", + "@type": "@id" + }, + "inReplyTo": { + "@id": "as:inReplyTo", + "@type": "@id" + }, + "items": { + "@id": "as:items", + "@type": "@id" + }, + "instrument": { + "@id": "as:instrument", + "@type": "@id" + }, + "orderedItems": { + "@id": "as:items", + "@type": "@id", + "@container": "@list" + }, + "last": { + "@id": "as:last", + "@type": "@id" + }, + "location": { + "@id": "as:location", + "@type": "@id" + }, + "next": { + "@id": "as:next", + "@type": "@id" + }, + "object": { + "@id": "as:object", + "@type": "@id" + }, + "oneOf": { + "@id": "as:oneOf", + "@type": "@id" + }, + "anyOf": { + "@id": "as:anyOf", + "@type": "@id" + }, + "closed": { + "@id": "as:closed", + "@type": "xsd:dateTime" + }, + "origin": { + "@id": "as:origin", + "@type": "@id" + }, + "accuracy": { + "@id": "as:accuracy", + "@type": "xsd:float" + }, + "prev": { + "@id": "as:prev", + "@type": "@id" + }, + "preview": { + "@id": "as:preview", + "@type": "@id" + }, + "replies": { + "@id": "as:replies", + "@type": "@id" + }, + "result": { + "@id": "as:result", + "@type": "@id" + }, + "audience": { + "@id": "as:audience", + "@type": "@id" + }, + "partOf": { + "@id": "as:partOf", + "@type": "@id" + }, + "tag": { + "@id": "as:tag", + "@type": "@id" + }, + "target": { + "@id": "as:target", + "@type": "@id" + }, + "to": { + "@id": "as:to", + "@type": "@id" + }, + "url": { + "@id": "as:url", + "@type": "@id" + }, + "altitude": { + "@id": "as:altitude", + "@type": "xsd:float" + }, + "content": "as:content", + "contentMap": { + "@id": "as:content", + "@container": "@language" + }, + "name": "as:name", + "nameMap": { + "@id": "as:name", + "@container": "@language" + }, + "duration": { + "@id": "as:duration", + "@type": "xsd:duration" + }, + "endTime": { + "@id": "as:endTime", + "@type": "xsd:dateTime" + }, + "height": { + "@id": "as:height", + "@type": "xsd:nonNegativeInteger" + }, + "href": { + "@id": "as:href", + "@type": "@id" + }, + "hreflang": "as:hreflang", + "latitude": { + "@id": "as:latitude", + "@type": "xsd:float" + }, + "longitude": { + "@id": "as:longitude", + "@type": "xsd:float" + }, + "mediaType": "as:mediaType", + "published": { + "@id": "as:published", + "@type": "xsd:dateTime" + }, + "radius": { + "@id": "as:radius", + "@type": "xsd:float" + }, + "rel": "as:rel", + "startIndex": { + "@id": "as:startIndex", + "@type": "xsd:nonNegativeInteger" + }, + "startTime": { + "@id": "as:startTime", + "@type": "xsd:dateTime" + }, + "summary": "as:summary", + "summaryMap": { + "@id": "as:summary", + "@container": "@language" + }, + "totalItems": { + "@id": "as:totalItems", + "@type": "xsd:nonNegativeInteger" + }, + "units": "as:units", + "updated": { + "@id": "as:updated", + "@type": "xsd:dateTime" + }, + "width": { + "@id": "as:width", + "@type": "xsd:nonNegativeInteger" + }, + "describes": { + "@id": "as:describes", + "@type": "@id" + }, + "formerType": { + "@id": "as:formerType", + "@type": "@id" + }, + "deleted": { + "@id": "as:deleted", + "@type": "xsd:dateTime" + }, + "inbox": { + "@id": "ldp:inbox", + "@type": "@id" + }, + "outbox": { + "@id": "as:outbox", + "@type": "@id" + }, + "following": { + "@id": "as:following", + "@type": "@id" + }, + "followers": { + "@id": "as:followers", + "@type": "@id" + }, + "streams": { + "@id": "as:streams", + "@type": "@id" + }, + "preferredUsername": "as:preferredUsername", + "endpoints": { + "@id": "as:endpoints", + "@type": "@id" + }, + "uploadMedia": { + "@id": "as:uploadMedia", + "@type": "@id" + }, + "proxyUrl": { + "@id": "as:proxyUrl", + "@type": "@id" + }, + "liked": { + "@id": "as:liked", + "@type": "@id" + }, + "oauthAuthorizationEndpoint": { + "@id": "as:oauthAuthorizationEndpoint", + "@type": "@id" + }, + "oauthTokenEndpoint": { + "@id": "as:oauthTokenEndpoint", + "@type": "@id" + }, + "provideClientKey": { + "@id": "as:provideClientKey", + "@type": "@id" + }, + "signClientKey": { + "@id": "as:signClientKey", + "@type": "@id" + }, + "sharedInbox": { + "@id": "as:sharedInbox", + "@type": "@id" + }, + "Public": { + "@id": "as:Public", + "@type": "@id" + }, + "source": "as:source", + "likes": { + "@id": "as:likes", + "@type": "@id" + }, + "shares": { + "@id": "as:shares", + "@type": "@id" + } + } +}; + +export const CONTEXTS: Record = { + "https://w3id.org/identity/v1": id_v1, + "https://w3id.org/security/v1": security_v1, + "https://www.w3.org/ns/activitystreams": activitystreams, +}; diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts new file mode 100644 index 000000000..6990a4ae5 --- /dev/null +++ b/src/remote/activitypub/misc/get-note-html.ts @@ -0,0 +1,10 @@ +import { Note } from '../../../models/entities/note'; +import { toHtml } from '../../../mfm/to-html'; +import { parse } from '../../../mfm/parse'; + +export default function(note: Note) { + let html = toHtml(parse(note.text), JSON.parse(note.mentionedRemoteUsers)); + if (html == null) html = '

.

'; + + return html; +} diff --git a/src/remote/activitypub/misc/html-to-mfm.ts b/src/remote/activitypub/misc/html-to-mfm.ts new file mode 100644 index 000000000..5cca04df2 --- /dev/null +++ b/src/remote/activitypub/misc/html-to-mfm.ts @@ -0,0 +1,9 @@ +import { IObject } from '../type'; +import { extractApHashtagObjects } from '../models/tag'; +import { fromHtml } from '../../../mfm/from-html'; + +export function htmlToMfm(html: string, tag?: IObject | IObject[]) { + const hashtagNames = extractApHashtagObjects(tag).map(x => x.name).filter((x): x is string => x != null); + + return fromHtml(html, hashtagNames); +} diff --git a/packages/backend/src/remote/activitypub/misc/ld-signature.ts b/src/remote/activitypub/misc/ld-signature.ts similarity index 85% rename from packages/backend/src/remote/activitypub/misc/ld-signature.ts rename to src/remote/activitypub/misc/ld-signature.ts index 362a543ec..070e39edf 100644 --- a/packages/backend/src/remote/activitypub/misc/ld-signature.ts +++ b/src/remote/activitypub/misc/ld-signature.ts @@ -1,8 +1,8 @@ -import * as crypto from 'node:crypto'; -import jsonld from 'jsonld'; -import { CONTEXTS } from './contexts.js'; +import * as crypto from 'crypto'; +import * as jsonld from 'jsonld'; +import { CONTEXTS } from './contexts'; import fetch from 'node-fetch'; -import { httpAgent, httpsAgent } from '@/misc/fetch.js'; +import { httpAgent, httpsAgent } from '../../../misc/fetch'; // RsaSignature2017 based from https://github.com/transmute-industries/RsaSignature2017 @@ -20,11 +20,11 @@ export class LdSignature { creator, domain, nonce: crypto.randomBytes(16).toString('hex'), - created: (created || new Date()).toISOString(), + created: (created || new Date()).toISOString() } as { type: string; creator: string; - domain?: string; + domain: string; nonce: string; created: string; }; @@ -45,8 +45,8 @@ export class LdSignature { ...data, signature: { ...options, - signatureValue: signature.toString('base64'), - }, + signatureValue: signature.toString('base64') + } }; } @@ -60,7 +60,7 @@ export class LdSignature { public async createVerifyData(data: any, options: any) { const transformedOptions = { ...options, - '@context': 'https://w3id.org/identity/v1', + '@context': 'https://w3id.org/identity/v1' }; delete transformedOptions['type']; delete transformedOptions['id']; @@ -79,7 +79,7 @@ export class LdSignature { public async normalize(data: any) { const customLoader = this.getLoader(); return await jsonld.normalize(data, { - documentLoader: customLoader, + documentLoader: customLoader }); } @@ -93,7 +93,7 @@ export class LdSignature { return { contextUrl: null, document: CONTEXTS[url], - documentUrl: url, + documentUrl: url }; } } @@ -103,7 +103,7 @@ export class LdSignature { return { contextUrl: null, document: document, - documentUrl: url, + documentUrl: url }; }; } @@ -113,9 +113,8 @@ export class LdSignature { headers: { Accept: 'application/ld+json, application/json', }, - // TODO - //timeout: this.loderTimeout, - agent: u => u.protocol === 'http:' ? httpAgent : httpsAgent, + timeout: this.loderTimeout, + agent: u => u.protocol == 'http:' ? httpAgent : httpsAgent, }).then(res => { if (!res.ok) { throw `${res.status} ${res.statusText}`; diff --git a/packages/backend/src/remote/activitypub/models/icon.ts b/src/remote/activitypub/models/icon.ts similarity index 100% rename from packages/backend/src/remote/activitypub/models/icon.ts rename to src/remote/activitypub/models/icon.ts diff --git a/packages/backend/src/remote/activitypub/models/identifier.ts b/src/remote/activitypub/models/identifier.ts similarity index 100% rename from packages/backend/src/remote/activitypub/models/identifier.ts rename to src/remote/activitypub/models/identifier.ts diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts new file mode 100644 index 000000000..84a1040b2 --- /dev/null +++ b/src/remote/activitypub/models/image.ts @@ -0,0 +1,61 @@ +import uploadFromUrl from '../../../services/drive/upload-from-url'; +import { IRemoteUser } from '../../../models/entities/user'; +import Resolver from '../resolver'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { apLogger } from '../logger'; +import { DriveFile } from '../../../models/entities/drive-file'; +import { DriveFiles } from '../../../models'; +import { ensure } from '../../../prelude/ensure'; + +const logger = apLogger; + +/** + * Imageを作成します。 + */ +export async function createImage(actor: IRemoteUser, value: any): Promise { + // 投稿者が凍結されていたらスキップ + if (actor.isSuspended) { + throw new Error('actor has been suspended'); + } + + const image = await new Resolver().resolve(value) as any; + + if (image.url == null) { + throw new Error('invalid image: url not privided'); + } + + logger.info(`Creating the Image: ${image.url}`); + + const instance = await fetchMeta(); + const cache = instance.cacheRemoteFiles; + + let file = await uploadFromUrl(image.url, actor, null, image.url, image.sensitive, false, !cache); + + if (file.isLink) { + // URLが異なっている場合、同じ画像が以前に異なるURLで登録されていたということなので、 + // URLを更新する + if (file.url !== image.url) { + await DriveFiles.update({ id: file.id }, { + url: image.url, + uri: image.url + }); + + file = await DriveFiles.findOne(file.id).then(ensure); + } + } + + return file; +} + +/** + * Imageを解決します。 + * + * Misskeyに対象のImageが登録されていればそれを返し、そうでなければ + * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 + */ +export async function resolveImage(actor: IRemoteUser, value: any): Promise { + // TODO + + // リモートサーバーからフェッチしてきて登録 + return await createImage(actor, value); +} diff --git a/src/remote/activitypub/models/mention.ts b/src/remote/activitypub/models/mention.ts new file mode 100644 index 000000000..5d10328ef --- /dev/null +++ b/src/remote/activitypub/models/mention.ts @@ -0,0 +1,24 @@ +import { toArray, unique } from '../../../prelude/array'; +import { IObject, isMention, IApMention } from '../type'; +import { resolvePerson } from './person'; +import * as promiseLimit from 'promise-limit'; +import Resolver from '../resolver'; +import { User } from '../../../models/entities/user'; + +export async function extractApMentions(tags: IObject | IObject[] | null | undefined) { + const hrefs = unique(extractApMentionObjects(tags).map(x => x.href as string)); + + const resolver = new Resolver(); + + const limit = promiseLimit(2); + const mentionedUsers = (await Promise.all( + hrefs.map(x => limit(() => resolvePerson(x, resolver).catch(() => null))) + )).filter((x): x is User => x != null); + + return mentionedUsers; +} + +export function extractApMentionObjects(tags: IObject | IObject[] | null | undefined): IApMention[] { + if (tags == null) return []; + return toArray(tags).filter(isMention); +} diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts new file mode 100644 index 000000000..feaee2f63 --- /dev/null +++ b/src/remote/activitypub/models/note.ts @@ -0,0 +1,361 @@ +import * as promiseLimit from 'promise-limit'; + +import config from '../../../config'; +import Resolver from '../resolver'; +import post from '../../../services/note/create'; +import { resolvePerson, updatePerson } from './person'; +import { resolveImage } from './image'; +import { IRemoteUser } from '../../../models/entities/user'; +import { htmlToMfm } from '../misc/html-to-mfm'; +import { extractApHashtags } from './tag'; +import { unique, toArray, toSingle } from '../../../prelude/array'; +import { extractPollFromQuestion } from './question'; +import vote from '../../../services/note/polls/vote'; +import { apLogger } from '../logger'; +import { DriveFile } from '../../../models/entities/drive-file'; +import { deliverQuestionUpdate } from '../../../services/note/polls/update'; +import { extractDbHost, toPuny } from '../../../misc/convert-host'; +import { Emojis, Polls, MessagingMessages } from '../../../models'; +import { Note } from '../../../models/entities/note'; +import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji } from '../type'; +import { Emoji } from '../../../models/entities/emoji'; +import { genId } from '../../../misc/gen-id'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { ensure } from '../../../prelude/ensure'; +import { getApLock } from '../../../misc/app-lock'; +import { createMessage } from '../../../services/messages/create'; +import { parseAudience } from '../audience'; +import { extractApMentions } from './mention'; +import DbResolver from '../db-resolver'; + +const logger = apLogger; + +export function validateNote(object: any, uri: string) { + const expectHost = extractDbHost(uri); + + if (object == null) { + return new Error('invalid Note: object is null'); + } + + if (!validPost.includes(object.type)) { + return new Error(`invalid Note: invalid object type ${object.type}`); + } + + if (object.id && extractDbHost(object.id) !== expectHost) { + return new Error(`invalid Note: id has different host. expected: ${expectHost}, actual: ${extractDbHost(object.id)}`); + } + + if (object.attributedTo && extractDbHost(getOneApId(object.attributedTo)) !== expectHost) { + return new Error(`invalid Note: attributedTo has different host. expected: ${expectHost}, actual: ${extractDbHost(object.attributedTo)}`); + } + + return null; +} + +/** + * Noteをフェッチします。 + * + * Misskeyに対象のNoteが登録されていればそれを返します。 + */ +export async function fetchNote(object: string | IObject): Promise { + const dbResolver = new DbResolver(); + return await dbResolver.getNoteFromApId(object); +} + +/** + * Noteを作成します。 + */ +export async function createNote(value: string | IObject, resolver?: Resolver, silent = false): Promise { + if (resolver == null) resolver = new Resolver(); + + const object: any = await resolver.resolve(value); + + const entryUri = getApId(value); + const err = validateNote(object, entryUri); + if (err) { + logger.error(`${err.message}`, { + resolver: { + history: resolver.getHistory() + }, + value: value, + object: object + }); + throw new Error('invalid note'); + } + + const note: IPost = object; + + logger.debug(`Note fetched: ${JSON.stringify(note, null, 2)}`); + + logger.info(`Creating the Note: ${note.id}`); + + // 投稿者をフェッチ + const actor = await resolvePerson(getOneApId(note.attributedTo), resolver) as IRemoteUser; + + // 投稿者が凍結されていたらスキップ + if (actor.isSuspended) { + throw new Error('actor has been suspended'); + } + + const noteAudience = await parseAudience(actor, note.to, note.cc); + let visibility = noteAudience.visibility; + const visibleUsers = noteAudience.visibleUsers; + + // Audience (to, cc) が指定されてなかった場合 + if (visibility === 'specified' && visibleUsers.length === 0) { + if (typeof value === 'string') { // 入力がstringならばresolverでGETが発生している + // こちらから匿名GET出来たものならばpublic + visibility = 'public'; + } + } + + let isTalk = note._misskey_talk && visibility === 'specified'; + + const apMentions = await extractApMentions(note.tag); + const apHashtags = await extractApHashtags(note.tag); + + // 添付ファイル + // TODO: attachmentは必ずしもImageではない + // TODO: attachmentは必ずしも配列ではない + // Noteがsensitiveなら添付もsensitiveにする + const limit = promiseLimit(2); + + note.attachment = Array.isArray(note.attachment) ? note.attachment : note.attachment ? [note.attachment] : []; + const files = note.attachment + .map(attach => attach.sensitive = note.sensitive) + ? (await Promise.all(note.attachment.map(x => limit(() => resolveImage(actor, x)) as Promise))) + .filter(image => image != null) + : []; + + // リプライ + const reply: Note | null = note.inReplyTo + ? await resolveNote(note.inReplyTo, resolver).then(x => { + if (x == null) { + logger.warn(`Specified inReplyTo, but nout found`); + throw new Error('inReplyTo not found'); + } else { + return x; + } + }).catch(async e => { + // トークだったらinReplyToのエラーは無視 + const uri = getApId(note.inReplyTo); + if (uri.startsWith(config.url + '/')) { + const id = uri.split('/').pop(); + const talk = await MessagingMessages.findOne(id); + if (talk) { + isTalk = true; + return null; + } + } + + logger.warn(`Error in inReplyTo ${note.inReplyTo} - ${e.statusCode || e}`); + throw e; + }) + : null; + + // 引用 + let quote: Note | undefined | null; + + if (note._misskey_quote || note.quoteUrl) { + const tryResolveNote = async (uri: string): Promise<{ + status: 'ok'; + res: Note | null; + } | { + status: 'permerror' | 'temperror'; + }> => { + if (typeof uri !== 'string' || !uri.match(/^https?:/)) return { status: 'permerror' }; + try { + const res = await resolveNote(uri); + if (res) { + return { + status: 'ok', + res + }; + } else { + return { + status: 'permerror' + }; + } + } catch (e) { + return { + status: e.statusCode >= 400 && e.statusCode < 500 ? 'permerror' : 'temperror' + }; + } + }; + + const uris = unique([note._misskey_quote, note.quoteUrl].filter((x): x is string => typeof x === 'string')); + const results = await Promise.all(uris.map(uri => tryResolveNote(uri))); + + quote = results.filter((x): x is { status: 'ok', res: Note | null } => x.status === 'ok').map(x => x.res).find(x => x); + if (!quote) { + if (results.some(x => x.status === 'temperror')) { + throw 'quote resolve failed'; + } + } + } + + const cw = note.summary === '' ? null : note.summary; + + // テキストのパース + const text = note._misskey_content || (note.content ? htmlToMfm(note.content, note.tag) : null); + + // vote + if (reply && reply.hasPoll) { + const poll = await Polls.findOne(reply.id).then(ensure); + + const tryCreateVote = async (name: string, index: number): Promise => { + if (poll.expiresAt && Date.now() > new Date(poll.expiresAt).getTime()) { + logger.warn(`vote to expired poll from AP: actor=${actor.username}@${actor.host}, note=${note.id}, choice=${name}`); + } else if (index >= 0) { + logger.info(`vote from AP: actor=${actor.username}@${actor.host}, note=${note.id}, choice=${name}`); + await vote(actor, reply, index); + + // リモートフォロワーにUpdate配信 + deliverQuestionUpdate(reply.id); + } + return null; + }; + + if (note.name) { + return await tryCreateVote(note.name, poll.choices.findIndex(x => x === note.name)); + } + + // 後方互換性のため + if (text) { + const m = text.match(/(\d+)$/); + + if (m) { + return await tryCreateVote(m[0], Number(m[1])); + } + } + } + + const emojis = await extractEmojis(note.tag || [], actor.host).catch(e => { + logger.info(`extractEmojis: ${e}`); + return [] as Emoji[]; + }); + + const apEmojis = emojis.map(emoji => emoji.name); + + const poll = await extractPollFromQuestion(note, resolver).catch(() => undefined); + + // ユーザーの情報が古かったらついでに更新しておく + if (actor.lastFetchedAt == null || Date.now() - actor.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) { + if (actor.uri) updatePerson(actor.uri); + } + + if (isTalk) { + for (const recipient of visibleUsers) { + await createMessage(actor, recipient, undefined, text || undefined, (files && files.length > 0) ? files[0] : null, object.id); + return null; + } + } + + return await post(actor, { + createdAt: note.published ? new Date(note.published) : null, + files, + reply, + renote: quote, + name: note.name, + cw, + text, + viaMobile: false, + localOnly: false, + visibility, + visibleUsers, + apMentions, + apHashtags, + apEmojis, + poll, + uri: note.id, + url: getOneApHrefNullable(note.url), + }, silent); +} + +/** + * Noteを解決します。 + * + * Misskeyに対象のNoteが登録されていればそれを返し、そうでなければ + * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 + */ +export async function resolveNote(value: string | IObject, resolver?: Resolver): Promise { + const uri = typeof value === 'string' ? value : value.id; + if (uri == null) throw new Error('missing uri'); + + // ブロックしてたら中断 + const meta = await fetchMeta(); + if (meta.blockedHosts.includes(extractDbHost(uri))) throw { statusCode: 451 }; + + const unlock = await getApLock(uri); + + try { + //#region このサーバーに既に登録されていたらそれを返す + const exist = await fetchNote(uri); + + if (exist) { + return exist; + } + //#endregion + + // リモートサーバーからフェッチしてきて登録 + // ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが + // 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。 + return await createNote(uri, resolver, true); + } finally { + unlock(); + } +} + +export async function extractEmojis(tags: IObject | IObject[], host: string): Promise { + host = toPuny(host); + + if (!tags) return []; + + const eomjiTags = toArray(tags).filter(isEmoji); + + return await Promise.all(eomjiTags.map(async tag => { + const name = tag.name!.replace(/^:/, '').replace(/:$/, ''); + tag.icon = toSingle(tag.icon); + + const exists = await Emojis.findOne({ + host, + name + }); + + if (exists) { + if ((tag.updated != null && exists.updatedAt == null) + || (tag.id != null && exists.uri == null) + || (tag.updated != null && exists.updatedAt != null && new Date(tag.updated) > exists.updatedAt) + || (tag.icon!.url !== exists.url) + ) { + await Emojis.update({ + host, + name, + }, { + uri: tag.id, + url: tag.icon!.url, + updatedAt: new Date(), + }); + + return await Emojis.findOne({ + host, + name + }) as Emoji; + } + + return exists; + } + + logger.info(`register emoji host=${host}, name=${name}`); + + return await Emojis.save({ + id: genId(), + host, + name, + uri: tag.id, + url: tag.icon!.url, + updatedAt: new Date(), + aliases: [] + } as Partial); + })); +} diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts new file mode 100644 index 000000000..9f6392174 --- /dev/null +++ b/src/remote/activitypub/models/person.ts @@ -0,0 +1,492 @@ +import * as promiseLimit from 'promise-limit'; + +import config from '../../../config'; +import Resolver from '../resolver'; +import { resolveImage } from './image'; +import { isCollectionOrOrderedCollection, isCollection, IPerson, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue } from '../type'; +import { fromHtml } from '../../../mfm/from-html'; +import { htmlToMfm } from '../misc/html-to-mfm'; +import { resolveNote, extractEmojis } from './note'; +import { registerOrFetchInstanceDoc } from '../../../services/register-or-fetch-instance-doc'; +import { extractApHashtags } from './tag'; +import { apLogger } from '../logger'; +import { Note } from '../../../models/entities/note'; +import { updateUsertags } from '../../../services/update-hashtag'; +import { Users, UserNotePinings, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '../../../models'; +import { User, IRemoteUser } from '../../../models/entities/user'; +import { Emoji } from '../../../models/entities/emoji'; +import { UserNotePining } from '../../../models/entities/user-note-pining'; +import { genId } from '../../../misc/gen-id'; +import { instanceChart, usersChart } from '../../../services/chart'; +import { UserPublickey } from '../../../models/entities/user-publickey'; +import { isDuplicateKeyValueError } from '../../../misc/is-duplicate-key-value-error'; +import { toPuny } from '../../../misc/convert-host'; +import { UserProfile } from '../../../models/entities/user-profile'; +import { validActor } from '../../../remote/activitypub/type'; +import { getConnection } from 'typeorm'; +import { ensure } from '../../../prelude/ensure'; +import { toArray } from '../../../prelude/array'; +import { fetchInstanceMetadata } from '../../../services/fetch-instance-metadata'; + +const logger = apLogger; + +/** + * Validate Person object + * @param x Fetched person object + * @param uri Fetch target URI + */ +function validatePerson(x: any, uri: string) { + const expectHost = toPuny(new URL(uri).hostname); + + if (x == null) { + return new Error('invalid person: object is null'); + } + + if (!validActor.includes(x.type)) { + return new Error(`invalid person: object is not a person or service '${x.type}'`); + } + + if (typeof x.preferredUsername !== 'string') { + return new Error('invalid person: preferredUsername is not a string'); + } + + if (typeof x.inbox !== 'string') { + return new Error('invalid person: inbox is not a string'); + } + + if (!Users.validateRemoteUsername.ok(x.preferredUsername)) { + return new Error('invalid person: invalid username'); + } + + if (x.name != null && x.name != '') { + if (!Users.validateName.ok(x.name)) { + return new Error('invalid person: invalid name'); + } + } + + if (typeof x.id !== 'string') { + return new Error('invalid person: id is not a string'); + } + + const idHost = toPuny(new URL(x.id).hostname); + if (idHost !== expectHost) { + return new Error('invalid person: id has different host'); + } + + if (typeof x.publicKey.id !== 'string') { + return new Error('invalid person: publicKey.id is not a string'); + } + + const publicKeyIdHost = toPuny(new URL(x.publicKey.id).hostname); + if (publicKeyIdHost !== expectHost) { + return new Error('invalid person: publicKey.id has different host'); + } + + return null; +} + +/** + * Personをフェッチします。 + * + * Misskeyに対象のPersonが登録されていればそれを返します。 + */ +export async function fetchPerson(uri: string, resolver?: Resolver): Promise { + if (typeof uri !== 'string') throw new Error('uri is not string'); + + // URIがこのサーバーを指しているならデータベースからフェッチ + if (uri.startsWith(config.url + '/')) { + const id = uri.split('/').pop(); + return await Users.findOne(id).then(x => x || null); + } + + //#region このサーバーに既に登録されていたらそれを返す + const exist = await Users.findOne({ uri }); + + if (exist) { + return exist; + } + //#endregion + + return null; +} + +/** + * Personを作成します。 + */ +export async function createPerson(uri: string, resolver?: Resolver): Promise { + if (typeof uri !== 'string') throw new Error('uri is not string'); + + if (resolver == null) resolver = new Resolver(); + + const object = await resolver.resolve(uri) as any; + + const err = validatePerson(object, uri); + + if (err) { + throw err; + } + + const person: IPerson = object; + + logger.info(`Creating the Person: ${person.id}`); + + const host = toPuny(new URL(object.id).hostname); + + const { fields } = analyzeAttachments(person.attachment || []); + + const tags = extractApHashtags(person.tag).map(tag => tag.toLowerCase()).splice(0, 32); + + const isBot = object.type === 'Service'; + + const bday = person['vcard:bday']?.match(/^\d{4}-\d{2}-\d{2}/); + + // Create user + let user: IRemoteUser; + try { + // Start transaction + await getConnection().transaction(async transactionalEntityManager => { + user = await transactionalEntityManager.save(new User({ + id: genId(), + avatarId: null, + bannerId: null, + createdAt: new Date(), + lastFetchedAt: new Date(), + name: person.name, + isLocked: !!person.manuallyApprovesFollowers, + username: person.preferredUsername, + usernameLower: person.preferredUsername!.toLowerCase(), + host, + inbox: person.inbox, + sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined), + featured: person.featured ? getApId(person.featured) : undefined, + uri: person.id, + tags, + isBot, + isCat: (person as any).isCat === true + })) as IRemoteUser; + + await transactionalEntityManager.save(new UserProfile({ + userId: user.id, + description: person.summary ? htmlToMfm(person.summary, person.tag) : null, + url: getOneApHrefNullable(person.url), + fields, + birthday: bday ? bday[0] : null, + location: person['vcard:Address'] || null, + userHost: host + })); + + await transactionalEntityManager.save(new UserPublickey({ + userId: user.id, + keyId: person.publicKey.id, + keyPem: person.publicKey.publicKeyPem + })); + }); + } catch (e) { + // duplicate key error + if (isDuplicateKeyValueError(e)) { + // /users/@a => /users/:id のように入力がaliasなときにエラーになることがあるのを対応 + const u = await Users.findOne({ + uri: person.id + }); + + if (u) { + user = u as IRemoteUser; + } else { + throw new Error('already registered'); + } + } else { + logger.error(e); + throw e; + } + } + + // Register host + registerOrFetchInstanceDoc(host).then(i => { + Instances.increment({ id: i.id }, 'usersCount', 1); + instanceChart.newUser(i.host); + fetchInstanceMetadata(i); + }); + + usersChart.update(user!, true); + + // ハッシュタグ更新 + updateUsertags(user!, tags); + + //#region アバターとヘッダー画像をフェッチ + const [avatar, banner] = await Promise.all([ + person.icon, + person.image + ].map(img => + img == null + ? Promise.resolve(null) + : resolveImage(user!, img).catch(() => null) + )); + + const avatarId = avatar ? avatar.id : null; + const bannerId = banner ? banner.id : null; + const avatarUrl = avatar ? DriveFiles.getPublicUrl(avatar, true) : null; + const bannerUrl = banner ? DriveFiles.getPublicUrl(banner) : null; + const avatarBlurhash = avatar ? avatar.blurhash : null; + const bannerBlurhash = banner ? banner.blurhash : null; + + await Users.update(user!.id, { + avatarId, + bannerId, + avatarUrl, + bannerUrl, + avatarBlurhash, + bannerBlurhash + }); + + user!.avatarId = avatarId; + user!.bannerId = bannerId; + user!.avatarUrl = avatarUrl; + user!.bannerUrl = bannerUrl; + user!.avatarBlurhash = avatarBlurhash; + user!.bannerBlurhash = bannerBlurhash; + //#endregion + + //#region カスタム絵文字取得 + const emojis = await extractEmojis(person.tag || [], host).catch(e => { + logger.info(`extractEmojis: ${e}`); + return [] as Emoji[]; + }); + + const emojiNames = emojis.map(emoji => emoji.name); + + await Users.update(user!.id, { + emojis: emojiNames + }); + //#endregion + + await updateFeatured(user!.id).catch(err => logger.error(err)); + + return user!; +} + +/** + * Personの情報を更新します。 + * Misskeyに対象のPersonが登録されていなければ無視します。 + * @param uri URI of Person + * @param resolver Resolver + * @param hint Hint of Person object (この値が正当なPersonの場合、Remote resolveをせずに更新に利用します) + */ +export async function updatePerson(uri: string, resolver?: Resolver | null, hint?: object): Promise { + if (typeof uri !== 'string') throw new Error('uri is not string'); + + // URIがこのサーバーを指しているならスキップ + if (uri.startsWith(config.url + '/')) { + return; + } + + //#region このサーバーに既に登録されているか + const exist = await Users.findOne({ uri }) as IRemoteUser; + + if (exist == null) { + return; + } + //#endregion + + if (resolver == null) resolver = new Resolver(); + + const object = hint || await resolver.resolve(uri) as any; + + const err = validatePerson(object, uri); + + if (err) { + throw err; + } + + const person: IPerson = object; + + logger.info(`Updating the Person: ${person.id}`); + + // アバターとヘッダー画像をフェッチ + const [avatar, banner] = await Promise.all([ + person.icon, + person.image + ].map(img => + img == null + ? Promise.resolve(null) + : resolveImage(exist, img).catch(() => null) + )); + + // カスタム絵文字取得 + const emojis = await extractEmojis(person.tag || [], exist.host).catch(e => { + logger.info(`extractEmojis: ${e}`); + return [] as Emoji[]; + }); + + const emojiNames = emojis.map(emoji => emoji.name); + + const { fields } = analyzeAttachments(person.attachment || []); + + const tags = extractApHashtags(person.tag).map(tag => tag.toLowerCase()).splice(0, 32); + + const bday = person['vcard:bday']?.match(/^\d{4}-\d{2}-\d{2}/); + + const updates = { + lastFetchedAt: new Date(), + inbox: person.inbox, + sharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined), + featured: person.featured, + emojis: emojiNames, + name: person.name, + tags, + isBot: object.type === 'Service', + isCat: (person as any).isCat === true, + isLocked: !!person.manuallyApprovesFollowers, + } as Partial; + + if (avatar) { + updates.avatarId = avatar.id; + updates.avatarUrl = DriveFiles.getPublicUrl(avatar, true); + updates.avatarBlurhash = avatar.blurhash; + } + + if (banner) { + updates.bannerId = banner.id; + updates.bannerUrl = DriveFiles.getPublicUrl(banner); + updates.bannerBlurhash = banner.blurhash; + } + + // Update user + await Users.update(exist.id, updates); + + await UserPublickeys.update({ userId: exist.id }, { + keyId: person.publicKey.id, + keyPem: person.publicKey.publicKeyPem + }); + + await UserProfiles.update({ userId: exist.id }, { + url: getOneApHrefNullable(person.url), + fields, + description: person.summary ? htmlToMfm(person.summary, person.tag) : null, + birthday: bday ? bday[0] : null, + location: person['vcard:Address'] || null, + }); + + // ハッシュタグ更新 + updateUsertags(exist, tags); + + // 該当ユーザーが既にフォロワーになっていた場合はFollowingもアップデートする + await Followings.update({ + followerId: exist.id + }, { + followerSharedInbox: person.sharedInbox || (person.endpoints ? person.endpoints.sharedInbox : undefined) + }); + + await updateFeatured(exist.id).catch(err => logger.error(err)); +} + +/** + * Personを解決します。 + * + * Misskeyに対象のPersonが登録されていればそれを返し、そうでなければ + * リモートサーバーからフェッチしてMisskeyに登録しそれを返します。 + */ +export async function resolvePerson(uri: string, resolver?: Resolver): Promise { + if (typeof uri !== 'string') throw new Error('uri is not string'); + + //#region このサーバーに既に登録されていたらそれを返す + const exist = await fetchPerson(uri); + + if (exist) { + return exist; + } + //#endregion + + // リモートサーバーからフェッチしてきて登録 + if (resolver == null) resolver = new Resolver(); + return await createPerson(uri, resolver); +} + +const services: { + [x: string]: (id: string, username: string) => any + } = { + 'misskey:authentication:twitter': (userId, screenName) => ({ userId, screenName }), + 'misskey:authentication:github': (id, login) => ({ id, login }), + 'misskey:authentication:discord': (id, name) => $discord(id, name) +}; + +const $discord = (id: string, name: string) => { + if (typeof name !== 'string') + name = 'unknown#0000'; + const [username, discriminator] = name.split('#'); + return { id, username, discriminator }; +}; + +function addService(target: { [x: string]: any }, source: IApPropertyValue) { + const service = services[source.name]; + + if (typeof source.value !== 'string') + source.value = 'unknown'; + + const [id, username] = source.value.split('@'); + + if (service) + target[source.name.split(':')[2]] = service(id, username); +} + +export function analyzeAttachments(attachments: IObject | IObject[] | undefined) { + const fields: { + name: string, + value: string + }[] = []; + const services: { [x: string]: any } = {}; + + if (Array.isArray(attachments)) { + for (const attachment of attachments.filter(isPropertyValue)) { + if (isPropertyValue(attachment.identifier)) { + addService(services, attachment.identifier); + } else { + fields.push({ + name: attachment.name, + value: fromHtml(attachment.value) + }); + } + } + } + + return { fields, services }; +} + +export async function updateFeatured(userId: User['id']) { + const user = await Users.findOne(userId).then(ensure); + if (!Users.isRemoteUser(user)) return; + if (!user.featured) return; + + logger.info(`Updating the featured: ${user.uri}`); + + const resolver = new Resolver(); + + // Resolve to (Ordered)Collection Object + const collection = await resolver.resolveCollection(user.featured); + if (!isCollectionOrOrderedCollection(collection)) throw new Error(`Object is not Collection or OrderedCollection`); + + // Resolve to Object(may be Note) arrays + const unresolvedItems = isCollection(collection) ? collection.items : collection.orderedItems; + const items = await Promise.all(toArray(unresolvedItems).map(x => resolver.resolve(x))); + + // Resolve and regist Notes + const limit = promiseLimit(2); + const featuredNotes = await Promise.all(items + .filter(item => item.type === 'Note') + .slice(0, 5) + .map(item => limit(() => resolveNote(item, resolver)))); + + // delete + await UserNotePinings.delete({ userId: user.id }); + + // とりあえずidを別の時間で生成して順番を維持 + let td = 0; + for (const note of featuredNotes.filter(note => note != null)) { + td -= 1000; + UserNotePinings.save({ + id: genId(new Date(Date.now() + td)), + createdAt: new Date(), + userId: user.id, + noteId: note!.id + } as UserNotePining); + } +} diff --git a/src/remote/activitypub/models/question.ts b/src/remote/activitypub/models/question.ts new file mode 100644 index 000000000..6b6749894 --- /dev/null +++ b/src/remote/activitypub/models/question.ts @@ -0,0 +1,83 @@ +import config from '../../../config'; +import Resolver from '../resolver'; +import { IObject, IQuestion, isQuestion, } from '../type'; +import { apLogger } from '../logger'; +import { Notes, Polls } from '../../../models'; +import { IPoll } from '../../../models/entities/poll'; + +export async function extractPollFromQuestion(source: string | IObject, resolver?: Resolver): Promise { + if (resolver == null) resolver = new Resolver(); + + const question = await resolver.resolve(source); + + if (!isQuestion(question)) { + throw new Error('invalid type'); + } + + const multiple = !question.oneOf; + const expiresAt = question.endTime ? new Date(question.endTime) : question.closed ? new Date(question.closed) : null; + + if (multiple && !question.anyOf) { + throw new Error('invalid question'); + } + + const choices = question[multiple ? 'anyOf' : 'oneOf']! + .map((x, i) => x.name!); + + const votes = question[multiple ? 'anyOf' : 'oneOf']! + .map((x, i) => x.replies && x.replies.totalItems || x._misskey_votes || 0); + + return { + choices, + votes, + multiple, + expiresAt + }; +} + +/** + * Update votes of Question + * @param uri URI of AP Question object + * @returns true if updated + */ +export async function updateQuestion(value: any) { + const uri = typeof value === 'string' ? value : value.id; + + // URIがこのサーバーを指しているならスキップ + if (uri.startsWith(config.url + '/')) throw new Error('uri points local'); + + //#region このサーバーに既に登録されているか + const note = await Notes.findOne({ uri }); + if (note == null) throw new Error('Question is not registed'); + + const poll = await Polls.findOne({ noteId: note.id }); + if (poll == null) throw new Error('Question is not registed'); + //#endregion + + // resolve new Question object + const resolver = new Resolver(); + const question = await resolver.resolve(value) as IQuestion; + apLogger.debug(`fetched question: ${JSON.stringify(question, null, 2)}`); + + if (question.type !== 'Question') throw new Error('object is not a Question'); + + const apChoices = question.oneOf || question.anyOf; + + let changed = false; + + for (const choice of poll.choices) { + const oldCount = poll.votes[poll.choices.indexOf(choice)]; + const newCount = apChoices!.filter(ap => ap.name === choice)[0].replies!.totalItems; + + if (oldCount != newCount) { + changed = true; + poll.votes[poll.choices.indexOf(choice)] = newCount; + } + } + + await Polls.update({ noteId: note.id }, { + votes: poll.votes + }); + + return changed; +} diff --git a/packages/backend/src/remote/activitypub/models/tag.ts b/src/remote/activitypub/models/tag.ts similarity index 81% rename from packages/backend/src/remote/activitypub/models/tag.ts rename to src/remote/activitypub/models/tag.ts index 964dabad0..d25cb463f 100644 --- a/packages/backend/src/remote/activitypub/models/tag.ts +++ b/src/remote/activitypub/models/tag.ts @@ -1,5 +1,5 @@ -import { toArray } from '@/prelude/array.js'; -import { IObject, isHashtag, IApHashtag } from '../type.js'; +import { toArray } from '../../../prelude/array'; +import { IObject, isHashtag, IApHashtag } from '../type'; export function extractApHashtags(tags: IObject | IObject[] | null | undefined) { if (tags == null) return []; diff --git a/src/remote/activitypub/perform.ts b/src/remote/activitypub/perform.ts new file mode 100644 index 000000000..12e72fdea --- /dev/null +++ b/src/remote/activitypub/perform.ts @@ -0,0 +1,7 @@ +import { IObject } from './type'; +import { IRemoteUser } from '../../models/entities/user'; +import { performActivity } from './kernel'; + +export default async (actor: IRemoteUser, activity: IObject): Promise => { + await performActivity(actor, activity); +}; diff --git a/src/remote/activitypub/renderer/accept.ts b/src/remote/activitypub/renderer/accept.ts new file mode 100644 index 000000000..21b462907 --- /dev/null +++ b/src/remote/activitypub/renderer/accept.ts @@ -0,0 +1,8 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (object: any, user: ILocalUser) => ({ + type: 'Accept', + actor: `${config.url}/users/${user.id}`, + object +}); diff --git a/src/remote/activitypub/renderer/add.ts b/src/remote/activitypub/renderer/add.ts new file mode 100644 index 000000000..46f937f61 --- /dev/null +++ b/src/remote/activitypub/renderer/add.ts @@ -0,0 +1,9 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (user: ILocalUser, target: any, object: any) => ({ + type: 'Add', + actor: `${config.url}/users/${user.id}`, + target, + object +}); diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts new file mode 100644 index 000000000..d82bf6a69 --- /dev/null +++ b/src/remote/activitypub/renderer/announce.ts @@ -0,0 +1,29 @@ +import config from '../../../config'; +import { Note } from '../../../models/entities/note'; + +export default (object: any, note: Note) => { + const attributedTo = `${config.url}/users/${note.userId}`; + + let to: string[] = []; + let cc: string[] = []; + + if (note.visibility === 'public') { + to = ['https://www.w3.org/ns/activitystreams#Public']; + cc = [`${attributedTo}/followers`]; + } else if (note.visibility === 'home') { + to = [`${attributedTo}/followers`]; + cc = ['https://www.w3.org/ns/activitystreams#Public']; + } else { + return null; + } + + return { + id: `${config.url}/notes/${note.id}/activity`, + actor: `${config.url}/users/${note.userId}`, + type: 'Announce', + published: note.createdAt.toISOString(), + to, + cc, + object + }; +}; diff --git a/src/remote/activitypub/renderer/block.ts b/src/remote/activitypub/renderer/block.ts new file mode 100644 index 000000000..c29a9aea8 --- /dev/null +++ b/src/remote/activitypub/renderer/block.ts @@ -0,0 +1,8 @@ +import config from '../../../config'; +import { ILocalUser, IRemoteUser } from '../../../models/entities/user'; + +export default (blocker: ILocalUser, blockee: IRemoteUser) => ({ + type: 'Block', + actor: `${config.url}/users/${blocker.id}`, + object: blockee.uri +}); diff --git a/src/remote/activitypub/renderer/create.ts b/src/remote/activitypub/renderer/create.ts new file mode 100644 index 000000000..e1fc0515c --- /dev/null +++ b/src/remote/activitypub/renderer/create.ts @@ -0,0 +1,17 @@ +import config from '../../../config'; +import { Note } from '../../../models/entities/note'; + +export default (object: any, note: Note) => { + const activity = { + id: `${config.url}/notes/${note.id}/activity`, + actor: `${config.url}/users/${note.userId}`, + type: 'Create', + published: note.createdAt.toISOString(), + object + } as any; + + if (object.to) activity.to = object.to; + if (object.cc) activity.cc = object.cc; + + return activity; +}; diff --git a/src/remote/activitypub/renderer/delete.ts b/src/remote/activitypub/renderer/delete.ts new file mode 100644 index 000000000..a98c97e6e --- /dev/null +++ b/src/remote/activitypub/renderer/delete.ts @@ -0,0 +1,8 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (object: any, user: ILocalUser) => ({ + type: 'Delete', + actor: `${config.url}/users/${user.id}`, + object +}); diff --git a/src/remote/activitypub/renderer/document.ts b/src/remote/activitypub/renderer/document.ts new file mode 100644 index 000000000..4f6ea8c4e --- /dev/null +++ b/src/remote/activitypub/renderer/document.ts @@ -0,0 +1,8 @@ +import { DriveFile } from '../../../models/entities/drive-file'; +import { DriveFiles } from '../../../models'; + +export default (file: DriveFile) => ({ + type: 'Document', + mediaType: file.type, + url: DriveFiles.getPublicUrl(file) +}); diff --git a/src/remote/activitypub/renderer/emoji.ts b/src/remote/activitypub/renderer/emoji.ts new file mode 100644 index 000000000..947a96df3 --- /dev/null +++ b/src/remote/activitypub/renderer/emoji.ts @@ -0,0 +1,14 @@ +import config from '../../../config'; +import { Emoji } from '../../../models/entities/emoji'; + +export default (emoji: Emoji) => ({ + id: `${config.url}/emojis/${emoji.name}`, + type: 'Emoji', + name: `:${emoji.name}:`, + updated: emoji.updatedAt != null ? emoji.updatedAt.toISOString() : new Date().toISOString, + icon: { + type: 'Image', + mediaType: emoji.type || 'image/png', + url: emoji.url + } +}); diff --git a/src/remote/activitypub/renderer/follow-relay.ts b/src/remote/activitypub/renderer/follow-relay.ts new file mode 100644 index 000000000..58bc0c90c --- /dev/null +++ b/src/remote/activitypub/renderer/follow-relay.ts @@ -0,0 +1,14 @@ +import config from '../../../config'; +import { Relay } from '../../../models/entities/relay'; +import { ILocalUser } from '../../../models/entities/user'; + +export function renderFollowRelay(relay: Relay, relayActor: ILocalUser) { + const follow = { + id: `${config.url}/activities/follow-relay/${relay.id}`, + type: 'Follow', + actor: `${config.url}/users/${relayActor.id}`, + object: 'https://www.w3.org/ns/activitystreams#Public' + }; + + return follow; +} diff --git a/src/remote/activitypub/renderer/follow-user.ts b/src/remote/activitypub/renderer/follow-user.ts new file mode 100644 index 000000000..6d354803e --- /dev/null +++ b/src/remote/activitypub/renderer/follow-user.ts @@ -0,0 +1,13 @@ +import config from '../../../config'; +import { Users } from '../../../models'; +import { User } from '../../../models/entities/user'; +import { ensure } from '../../../prelude/ensure'; + +/** + * Convert (local|remote)(Follower|Followee)ID to URL + * @param id Follower|Followee ID + */ +export default async function renderFollowUser(id: User['id']): Promise { + const user = await Users.findOne(id).then(ensure); + return Users.isLocalUser(user) ? `${config.url}/users/${user.id}` : user.uri; +} diff --git a/src/remote/activitypub/renderer/follow.ts b/src/remote/activitypub/renderer/follow.ts new file mode 100644 index 000000000..400b15ec7 --- /dev/null +++ b/src/remote/activitypub/renderer/follow.ts @@ -0,0 +1,15 @@ +import config from '../../../config'; +import { User } from '../../../models/entities/user'; +import { Users } from '../../../models'; + +export default (follower: User, followee: User, requestId?: string) => { + const follow = { + type: 'Follow', + actor: Users.isLocalUser(follower) ? `${config.url}/users/${follower.id}` : follower.uri, + object: Users.isLocalUser(followee) ? `${config.url}/users/${followee.id}` : followee.uri + } as any; + + if (requestId) follow.id = requestId; + + return follow; +}; diff --git a/src/remote/activitypub/renderer/hashtag.ts b/src/remote/activitypub/renderer/hashtag.ts new file mode 100644 index 000000000..36563c2df --- /dev/null +++ b/src/remote/activitypub/renderer/hashtag.ts @@ -0,0 +1,7 @@ +import config from '../../../config'; + +export default (tag: string) => ({ + type: 'Hashtag', + href: `${config.url}/tags/${encodeURIComponent(tag)}`, + name: `#${tag}` +}); diff --git a/src/remote/activitypub/renderer/image.ts b/src/remote/activitypub/renderer/image.ts new file mode 100644 index 000000000..ce98f98c6 --- /dev/null +++ b/src/remote/activitypub/renderer/image.ts @@ -0,0 +1,8 @@ +import { DriveFile } from '../../../models/entities/drive-file'; +import { DriveFiles } from '../../../models'; + +export default (file: DriveFile) => ({ + type: 'Image', + url: DriveFiles.getPublicUrl(file), + sensitive: file.isSensitive +}); diff --git a/src/remote/activitypub/renderer/index.ts b/src/remote/activitypub/renderer/index.ts new file mode 100644 index 000000000..cf0fd8d85 --- /dev/null +++ b/src/remote/activitypub/renderer/index.ts @@ -0,0 +1,64 @@ +import config from '../../../config'; +import { v4 as uuid } from 'uuid'; +import { IActivity } from '../type'; +import { LdSignature } from '../misc/ld-signature'; +import { ILocalUser } from '../../../models/entities/user'; +import { UserKeypairs } from '../../../models'; +import { ensure } from '../../../prelude/ensure'; + +export const renderActivity = (x: any): IActivity | null => { + if (x == null) return null; + + if (x !== null && typeof x === 'object' && x.id == null) { + x.id = `${config.url}/${uuid()}`; + } + + return Object.assign({ + '@context': [ + 'https://www.w3.org/ns/activitystreams', + 'https://w3id.org/security/v1' + ] + }, x); +}; + +export const attachLdSignature = async (activity: any, user: ILocalUser): Promise => { + if (activity == null) return null; + + const keypair = await UserKeypairs.findOne({ + userId: user.id + }).then(ensure); + + const obj = { + // as non-standards + manuallyApprovesFollowers: 'as:manuallyApprovesFollowers', + sensitive: 'as:sensitive', + Hashtag: 'as:Hashtag', + quoteUrl: 'as:quoteUrl', + // Mastodon + toot: 'http://joinmastodon.org/ns#', + Emoji: 'toot:Emoji', + featured: 'toot:featured', + // schema + schema: 'http://schema.org#', + PropertyValue: 'schema:PropertyValue', + value: 'schema:value', + // Misskey + misskey: `${config.url}/ns#`, + '_misskey_content': 'misskey:_misskey_content', + '_misskey_quote': 'misskey:_misskey_quote', + '_misskey_reaction': 'misskey:_misskey_reaction', + '_misskey_votes': 'misskey:_misskey_votes', + '_misskey_talk': 'misskey:_misskey_talk', + 'isCat': 'misskey:isCat', + // vcard + vcard: 'http://www.w3.org/2006/vcard/ns#', + }; + + activity['@context'].push(obj); + + const ldSignature = new LdSignature(); + ldSignature.debug = false; + activity = await ldSignature.signRsaSignature2017(activity, keypair.privateKey, `${config.url}/users/${user.id}#main-key`); + + return activity; +}; diff --git a/src/remote/activitypub/renderer/key.ts b/src/remote/activitypub/renderer/key.ts new file mode 100644 index 000000000..e792f487f --- /dev/null +++ b/src/remote/activitypub/renderer/key.ts @@ -0,0 +1,14 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; +import { UserKeypair } from '../../../models/entities/user-keypair'; +import { createPublicKey } from 'crypto'; + +export default (user: ILocalUser, key: UserKeypair, postfix?: string) => ({ + id: `${config.url}/users/${user.id}${postfix || '/publickey'}`, + type: 'Key', + owner: `${config.url}/users/${user.id}`, + publicKeyPem: createPublicKey(key.publicKey).export({ + type: 'spki', + format: 'pem' + }) +}); diff --git a/src/remote/activitypub/renderer/like.ts b/src/remote/activitypub/renderer/like.ts new file mode 100644 index 000000000..d4dd3663d --- /dev/null +++ b/src/remote/activitypub/renderer/like.ts @@ -0,0 +1,30 @@ +import config from '../../../config'; +import { NoteReaction } from '../../../models/entities/note-reaction'; +import { Note } from '../../../models/entities/note'; +import { Emojis } from '../../../models'; +import renderEmoji from './emoji'; + +export const renderLike = async (noteReaction: NoteReaction, note: Note) => { + const reaction = noteReaction.reaction; + + const object = { + type: 'Like', + id: `${config.url}/likes/${noteReaction.id}`, + actor: `${config.url}/users/${noteReaction.userId}`, + object: note.uri ? note.uri : `${config.url}/notes/${noteReaction.noteId}`, + content: reaction, + _misskey_reaction: reaction + } as any; + + if (reaction.startsWith(':')) { + const name = reaction.replace(/:/g, ''); + const emoji = await Emojis.findOne({ + name, + host: null + }); + + if (emoji) object.tag = [ renderEmoji(emoji) ]; + } + + return object; +}; diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts new file mode 100644 index 000000000..3b5e8f27a --- /dev/null +++ b/src/remote/activitypub/renderer/mention.ts @@ -0,0 +1,9 @@ +import config from '../../../config'; +import { User, ILocalUser } from '../../../models/entities/user'; +import { Users } from '../../../models'; + +export default (mention: User) => ({ + type: 'Mention', + href: Users.isRemoteUser(mention) ? mention.uri : `${config.url}/users/${(mention as ILocalUser).id}`, + name: Users.isRemoteUser(mention) ? `@${mention.username}@${mention.host}` : `@${(mention as ILocalUser).username}`, +}); diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts new file mode 100644 index 000000000..6878a402b --- /dev/null +++ b/src/remote/activitypub/renderer/note.ts @@ -0,0 +1,169 @@ +import renderDocument from './document'; +import renderHashtag from './hashtag'; +import renderMention from './mention'; +import renderEmoji from './emoji'; +import config from '../../../config'; +import toHtml from '../misc/get-note-html'; +import { Note, IMentionedRemoteUsers } from '../../../models/entities/note'; +import { DriveFile } from '../../../models/entities/drive-file'; +import { DriveFiles, Notes, Users, Emojis, Polls } from '../../../models'; +import { In } from 'typeorm'; +import { Emoji } from '../../../models/entities/emoji'; +import { Poll } from '../../../models/entities/poll'; +import { ensure } from '../../../prelude/ensure'; + +export default async function renderNote(note: Note, dive = true, isTalk = false): Promise { + const getPromisedFiles = async (ids: string[]) => { + if (!ids || ids.length === 0) return []; + const items = await DriveFiles.find({ id: In(ids) }); + return ids.map(id => items.find(item => item.id === id)).filter(item => item != null) as DriveFile[]; + }; + + let inReplyTo; + let inReplyToNote: Note | undefined; + + if (note.replyId) { + inReplyToNote = await Notes.findOne(note.replyId); + + if (inReplyToNote != null) { + const inReplyToUser = await Users.findOne(inReplyToNote.userId); + + if (inReplyToUser != null) { + if (inReplyToNote.uri) { + inReplyTo = inReplyToNote.uri; + } else { + if (dive) { + inReplyTo = await renderNote(inReplyToNote, false); + } else { + inReplyTo = `${config.url}/notes/${inReplyToNote.id}`; + } + } + } + } + } else { + inReplyTo = null; + } + + let quote; + + if (note.renoteId) { + const renote = await Notes.findOne(note.renoteId); + + if (renote) { + quote = renote.uri ? renote.uri : `${config.url}/notes/${renote.id}`; + } + } + + const user = await Users.findOne(note.userId).then(ensure); + + const attributedTo = `${config.url}/users/${user.id}`; + + const mentions = (JSON.parse(note.mentionedRemoteUsers) as IMentionedRemoteUsers).map(x => x.uri); + + let to: string[] = []; + let cc: string[] = []; + + if (note.visibility === 'public') { + to = ['https://www.w3.org/ns/activitystreams#Public']; + cc = [`${attributedTo}/followers`].concat(mentions); + } else if (note.visibility === 'home') { + to = [`${attributedTo}/followers`]; + cc = ['https://www.w3.org/ns/activitystreams#Public'].concat(mentions); + } else if (note.visibility === 'followers') { + to = [`${attributedTo}/followers`]; + cc = mentions; + } else { + to = mentions; + } + + const mentionedUsers = note.mentions.length > 0 ? await Users.find({ + id: In(note.mentions) + }) : []; + + const hashtagTags = (note.tags || []).map(tag => renderHashtag(tag)); + const mentionTags = mentionedUsers.map(u => renderMention(u)); + + const files = await getPromisedFiles(note.fileIds); + + const text = note.text; + let poll: Poll | undefined; + + if (note.hasPoll) { + poll = await Polls.findOne({ noteId: note.id }); + } + + let apText = text; + if (apText == null) apText = ''; + + if (quote) { + apText += `\n\nRE: ${quote}`; + } + + const summary = note.cw === '' ? String.fromCharCode(0x200B) : note.cw; + + const content = toHtml(Object.assign({}, note, { + text: apText + })); + + const emojis = await getEmojis(note.emojis); + const apemojis = emojis.map(emoji => renderEmoji(emoji)); + + const tag = [ + ...hashtagTags, + ...mentionTags, + ...apemojis, + ]; + + const asPoll = poll ? { + type: 'Question', + content: toHtml(Object.assign({}, note, { + text: text + })), + [poll.expiresAt && poll.expiresAt < new Date() ? 'closed' : 'endTime']: poll.expiresAt, + [poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({ + type: 'Note', + name: text, + replies: { + type: 'Collection', + totalItems: poll!.votes[i] + } + })) + } : {}; + + const asTalk = isTalk ? { + _misskey_talk: true + } : {}; + + return { + id: `${config.url}/notes/${note.id}`, + type: 'Note', + attributedTo, + summary, + content, + _misskey_content: text, + _misskey_quote: quote, + quoteUrl: quote, + published: note.createdAt.toISOString(), + to, + cc, + inReplyTo, + attachment: files.map(renderDocument), + sensitive: note.cw != null || files.some(file => file.isSensitive), + tag, + ...asPoll, + ...asTalk + }; +} + +export async function getEmojis(names: string[]): Promise { + if (names == null || names.length === 0) return []; + + const emojis = await Promise.all( + names.map(name => Emojis.findOne({ + name, + host: null + })) + ); + + return emojis.filter(emoji => emoji != null) as Emoji[]; +} diff --git a/packages/backend/src/remote/activitypub/renderer/ordered-collection-page.ts b/src/remote/activitypub/renderer/ordered-collection-page.ts similarity index 97% rename from packages/backend/src/remote/activitypub/renderer/ordered-collection-page.ts rename to src/remote/activitypub/renderer/ordered-collection-page.ts index c5e25f577..243335864 100644 --- a/packages/backend/src/remote/activitypub/renderer/ordered-collection-page.ts +++ b/src/remote/activitypub/renderer/ordered-collection-page.ts @@ -13,7 +13,7 @@ export default function(id: string, totalItems: any, orderedItems: any, partOf: partOf, type: 'OrderedCollectionPage', totalItems, - orderedItems, + orderedItems } as any; if (prev) page.prev = prev; diff --git a/src/remote/activitypub/renderer/ordered-collection.ts b/src/remote/activitypub/renderer/ordered-collection.ts new file mode 100644 index 000000000..68870a0ec --- /dev/null +++ b/src/remote/activitypub/renderer/ordered-collection.ts @@ -0,0 +1,21 @@ +/** + * Render OrderedCollection + * @param id URL of self + * @param totalItems Total number of items + * @param first URL of first page (optional) + * @param last URL of last page (optional) + * @param orderedItems attached objects (optional) + */ +export default function(id: string | null, totalItems: any, first?: string, last?: string, orderedItems?: object) { + const page: any = { + id, + type: 'OrderedCollection', + totalItems, + }; + + if (first) page.first = first; + if (last) page.last = last; + if (orderedItems) page.orderedItems = orderedItems; + + return page; +} diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts new file mode 100644 index 000000000..87dca19ac --- /dev/null +++ b/src/remote/activitypub/renderer/person.ts @@ -0,0 +1,87 @@ +import renderImage from './image'; +import renderKey from './key'; +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; +import { toHtml } from '../../../mfm/to-html'; +import { parse } from '../../../mfm/parse'; +import { getEmojis } from './note'; +import renderEmoji from './emoji'; +import { IIdentifier } from '../models/identifier'; +import renderHashtag from './hashtag'; +import { DriveFiles, UserProfiles, UserKeypairs } from '../../../models'; +import { ensure } from '../../../prelude/ensure'; + +export async function renderPerson(user: ILocalUser) { + const id = `${config.url}/users/${user.id}`; + const isSystem = !!user.username.match(/\./); + + const [avatar, banner, profile] = await Promise.all([ + user.avatarId ? DriveFiles.findOne(user.avatarId) : Promise.resolve(undefined), + user.bannerId ? DriveFiles.findOne(user.bannerId) : Promise.resolve(undefined), + UserProfiles.findOne(user.id).then(ensure) + ]); + + const attachment: { + type: 'PropertyValue', + name: string, + value: string, + identifier?: IIdentifier + }[] = []; + + if (profile.fields) { + for (const field of profile.fields) { + attachment.push({ + type: 'PropertyValue', + name: field.name, + value: (field.value != null && field.value.match(/^https?:/)) + ? `${new URL(field.value).href}` + : field.value + }); + } + } + + const emojis = await getEmojis(user.emojis); + const apemojis = emojis.map(emoji => renderEmoji(emoji)); + + const hashtagTags = (user.tags || []).map(tag => renderHashtag(tag)); + + const tag = [ + ...apemojis, + ...hashtagTags, + ]; + + const keypair = await UserKeypairs.findOne(user.id).then(ensure); + + const person = { + type: isSystem ? 'Application' : user.isBot ? 'Service' : 'Person', + id, + inbox: `${id}/inbox`, + outbox: `${id}/outbox`, + followers: `${id}/followers`, + following: `${id}/following`, + featured: `${id}/collections/featured`, + sharedInbox: `${config.url}/inbox`, + endpoints: { sharedInbox: `${config.url}/inbox` }, + url: `${config.url}/@${user.username}`, + preferredUsername: user.username, + name: user.name, + summary: toHtml(parse(profile.description)), + icon: avatar ? renderImage(avatar) : null, + image: banner ? renderImage(banner) : null, + tag, + manuallyApprovesFollowers: user.isLocked, + publicKey: renderKey(user, keypair, `#main-key`), + isCat: user.isCat, + attachment: attachment.length ? attachment : undefined + } as any; + + if (profile?.birthday) { + person['vcard:bday'] = profile.birthday; + } + + if (profile?.location) { + person['vcard:Address'] = profile.location; + } + + return person; +} diff --git a/src/remote/activitypub/renderer/question.ts b/src/remote/activitypub/renderer/question.ts new file mode 100644 index 000000000..6ade10d1b --- /dev/null +++ b/src/remote/activitypub/renderer/question.ts @@ -0,0 +1,23 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; +import { Note } from '../../../models/entities/note'; +import { Poll } from '../../../models/entities/poll'; + +export default async function renderQuestion(user: ILocalUser, note: Note, poll: Poll) { + const question = { + type: 'Question', + id: `${config.url}/questions/${note.id}`, + actor: `${config.url}/users/${user.id}`, + content: note.text || '', + [poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({ + name: text, + _misskey_votes: poll.votes[i], + replies: { + type: 'Collection', + totalItems: poll.votes[i] + } + })) + }; + + return question; +} diff --git a/src/remote/activitypub/renderer/read.ts b/src/remote/activitypub/renderer/read.ts new file mode 100644 index 000000000..c53b47859 --- /dev/null +++ b/src/remote/activitypub/renderer/read.ts @@ -0,0 +1,9 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; +import { MessagingMessage } from '../../../models/entities/messaging-message'; + +export const renderReadActivity = (user: ILocalUser, message: MessagingMessage) => ({ + type: 'Read', + actor: `${config.url}/users/${user.id}`, + object: message.uri +}); diff --git a/src/remote/activitypub/renderer/reject.ts b/src/remote/activitypub/renderer/reject.ts new file mode 100644 index 000000000..c4e0ba0d0 --- /dev/null +++ b/src/remote/activitypub/renderer/reject.ts @@ -0,0 +1,8 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (object: any, user: ILocalUser) => ({ + type: 'Reject', + actor: `${config.url}/users/${user.id}`, + object +}); diff --git a/src/remote/activitypub/renderer/remove.ts b/src/remote/activitypub/renderer/remove.ts new file mode 100644 index 000000000..1b9a6b8c0 --- /dev/null +++ b/src/remote/activitypub/renderer/remove.ts @@ -0,0 +1,9 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (user: ILocalUser, target: any, object: any) => ({ + type: 'Remove', + actor: `${config.url}/users/${user.id}`, + target, + object +}); diff --git a/src/remote/activitypub/renderer/tombstone.ts b/src/remote/activitypub/renderer/tombstone.ts new file mode 100644 index 000000000..553406b93 --- /dev/null +++ b/src/remote/activitypub/renderer/tombstone.ts @@ -0,0 +1,4 @@ +export default (id: string) => ({ + id, + type: 'Tombstone' +}); diff --git a/src/remote/activitypub/renderer/undo.ts b/src/remote/activitypub/renderer/undo.ts new file mode 100644 index 000000000..2ff6b61b9 --- /dev/null +++ b/src/remote/activitypub/renderer/undo.ts @@ -0,0 +1,8 @@ +import config from '../../../config'; +import { ILocalUser, User } from '../../../models/entities/user'; + +export default (object: any, user: ILocalUser | User) => ({ + type: 'Undo', + actor: `${config.url}/users/${user.id}`, + object +}); diff --git a/src/remote/activitypub/renderer/update.ts b/src/remote/activitypub/renderer/update.ts new file mode 100644 index 000000000..c1d5ba29b --- /dev/null +++ b/src/remote/activitypub/renderer/update.ts @@ -0,0 +1,14 @@ +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; + +export default (object: any, user: ILocalUser) => { + const activity = { + id: `${config.url}/users/${user.id}#updates/${new Date().getTime()}`, + actor: `${config.url}/users/${user.id}`, + type: 'Update', + to: [ 'https://www.w3.org/ns/activitystreams#Public' ], + object + } as any; + + return activity; +}; diff --git a/src/remote/activitypub/renderer/vote.ts b/src/remote/activitypub/renderer/vote.ts new file mode 100644 index 000000000..8929c0346 --- /dev/null +++ b/src/remote/activitypub/renderer/vote.ts @@ -0,0 +1,23 @@ +import config from '../../../config'; +import { Note } from '../../../models/entities/note'; +import { IRemoteUser, ILocalUser } from '../../../models/entities/user'; +import { PollVote } from '../../../models/entities/poll-vote'; +import { Poll } from '../../../models/entities/poll'; + +export default async function renderVote(user: ILocalUser, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise { + return { + id: `${config.url}/users/${user.id}#votes/${vote.id}/activity`, + actor: `${config.url}/users/${user.id}`, + type: 'Create', + to: [pollOwner.uri], + published: new Date().toISOString(), + object: { + id: `${config.url}/users/${user.id}#votes/${vote.id}`, + type: 'Note', + attributedTo: `${config.url}/users/${user.id}`, + to: [pollOwner.uri], + inReplyTo: note.uri, + name: poll.choices[vote.choice] + } + }; +} diff --git a/src/remote/activitypub/request.ts b/src/remote/activitypub/request.ts new file mode 100644 index 000000000..0edfcee1e --- /dev/null +++ b/src/remote/activitypub/request.ts @@ -0,0 +1,161 @@ +import * as http from 'http'; +import * as https from 'https'; +import { sign } from 'http-signature'; +import * as crypto from 'crypto'; + +import config from '../../config'; +import { ILocalUser } from '../../models/entities/user'; +import { UserKeypairs } from '../../models'; +import { ensure } from '../../prelude/ensure'; +import { getAgentByUrl } from '../../misc/fetch'; +import { URL } from 'url'; +import got from 'got'; +import * as Got from 'got'; + +export default async (user: ILocalUser, url: string, object: any) => { + const timeout = 10 * 1000; + + const { protocol, hostname, port, pathname, search } = new URL(url); + + const data = JSON.stringify(object); + + const sha256 = crypto.createHash('sha256'); + sha256.update(data); + const hash = sha256.digest('base64'); + + const keypair = await UserKeypairs.findOne({ + userId: user.id + }).then(ensure); + + await new Promise((resolve, reject) => { + const req = https.request({ + agent: getAgentByUrl(new URL(`https://example.net`)), + protocol, + hostname, + port, + method: 'POST', + path: pathname + search, + timeout, + headers: { + 'User-Agent': config.userAgent, + 'Content-Type': 'application/activity+json', + 'Digest': `SHA-256=${hash}` + } + }, res => { + if (res.statusCode! >= 400) { + reject(res); + } else { + resolve(); + } + }); + + sign(req, { + authorizationHeaderName: 'Signature', + key: keypair.privateKey, + keyId: `${config.url}/users/${user.id}#main-key`, + headers: ['(request-target)', 'date', 'host', 'digest'] + }); + + req.on('timeout', () => req.abort()); + + req.on('error', e => { + if (req.aborted) reject('timeout'); + reject(e); + }); + + req.end(data); + }); +}; + +/** + * Get AP object with http-signature + * @param user http-signature user + * @param url URL to fetch + */ +export async function signedGet(url: string, user: ILocalUser) { + const timeout = 10 * 1000; + + const keypair = await UserKeypairs.findOne({ + userId: user.id + }).then(ensure); + + const req = got.get(url, { + headers: { + 'Accept': 'application/activity+json, application/ld+json', + 'User-Agent': config.userAgent, + }, + responseType: 'json', + timeout, + hooks: { + beforeRequest: [ + options => { + options.request = (url: URL, opt: http.RequestOptions, callback?: (response: any) => void) => { + // Select custom agent by URL + opt.agent = getAgentByUrl(url, false); + + // Wrap original https?.request + const requestFunc = url.protocol === 'http:' ? http.request : https.request; + const clientRequest = requestFunc(url, opt, callback) as http.ClientRequest; + + // HTTP-Signature + sign(clientRequest, { + authorizationHeaderName: 'Signature', + key: keypair.privateKey, + keyId: `${config.url}/users/${user.id}#main-key`, + headers: ['(request-target)', 'host', 'date', 'accept'] + }); + + return clientRequest; + }; + }, + ], + }, + retry: 0, + }); + + const res = await receiveResponce(req, 10 * 1024 * 1024); + + return res.body; +} + +/** + * Receive response (with size limit) + * @param req Request + * @param maxSize size limit + */ +export async function receiveResponce(req: Got.CancelableRequest>, maxSize: number) { + // 応答ヘッダでサイズチェック + req.on('response', (res: Got.Response) => { + const contentLength = res.headers['content-length']; + if (contentLength != null) { + const size = Number(contentLength); + if (size > maxSize) { + req.cancel(); + } + } + }); + + // 受信中のデータでサイズチェック + req.on('downloadProgress', (progress: Got.Progress) => { + if (progress.transferred > maxSize) { + req.cancel(); + } + }); + + // 応答取得 with ステータスコードエラーの整形 + const res = await req.catch(e => { + if (e.name === 'HTTPError') { + const statusCode = (e as Got.HTTPError).response.statusCode; + const statusMessage = (e as Got.HTTPError).response.statusMessage; + throw { + name: `StatusError`, + statusCode, + message: `${statusCode} ${statusMessage}`, + }; + } else { + throw e; + } + }); + + return res; +} diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts new file mode 100644 index 000000000..2871c1cb4 --- /dev/null +++ b/src/remote/activitypub/resolver.ts @@ -0,0 +1,65 @@ +import config from '../../config'; +import { getJson } from '../../misc/fetch'; +import { ILocalUser } from '../../models/entities/user'; +import { getInstanceActor } from '../../services/instance-actor'; +import { signedGet } from './request'; +import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type'; + +export default class Resolver { + private history: Set; + private user?: ILocalUser; + + constructor() { + this.history = new Set(); + } + + public getHistory(): string[] { + return Array.from(this.history); + } + + public async resolveCollection(value: string | IObject): Promise { + const collection = typeof value === 'string' + ? await this.resolve(value) + : value; + + if (isCollectionOrOrderedCollection(collection)) { + return collection; + } else { + throw new Error(`unrecognized collection type: ${collection.type}`); + } + } + + public async resolve(value: string | IObject): Promise { + if (value == null) { + throw new Error('resolvee is null (or undefined)'); + } + + if (typeof value !== 'string') { + return value; + } + + if (this.history.has(value)) { + throw new Error('cannot resolve already resolved one'); + } + + this.history.add(value); + + if (config.signToActivityPubGet && !this.user) { + this.user = await getInstanceActor(); + } + + const object = this.user + ? await signedGet(value, this.user) + : await getJson(value, 'application/activity+json, application/ld+json'); + + if (object == null || ( + Array.isArray(object['@context']) ? + !object['@context'].includes('https://www.w3.org/ns/activitystreams') : + object['@context'] !== 'https://www.w3.org/ns/activitystreams' + )) { + throw new Error('invalid response'); + } + + return object; + } +} diff --git a/src/remote/activitypub/type.ts b/src/remote/activitypub/type.ts new file mode 100644 index 000000000..5c01c24b5 --- /dev/null +++ b/src/remote/activitypub/type.ts @@ -0,0 +1,273 @@ +export type obj = { [x: string]: any }; +export type ApObject = IObject | string | (IObject | string)[]; + +export interface IObject { + '@context': string | obj | obj[]; + type: string; + id?: string; + summary?: string; + published?: string; + cc?: ApObject; + to?: ApObject; + attributedTo: ApObject; + attachment?: any[]; + inReplyTo?: any; + replies?: ICollection; + content?: string; + name?: string; + startTime?: Date; + endTime?: Date; + icon?: any; + image?: any; + url?: ApObject; + href?: string; + tag?: IObject | IObject[]; + sensitive?: boolean; +} + +/** + * Get array of ActivityStreams Objects id + */ +export function getApIds(value: ApObject | undefined): string[] { + if (value == null) return []; + const array = Array.isArray(value) ? value : [value]; + return array.map(x => getApId(x)); +} + +/** + * Get first ActivityStreams Object id + */ +export function getOneApId(value: ApObject): string { + const firstOne = Array.isArray(value) ? value[0] : value; + return getApId(firstOne); +} + +/** + * Get ActivityStreams Object id + */ +export function getApId(value: string | IObject): string { + if (typeof value === 'string') return value; + if (typeof value.id === 'string') return value.id; + throw new Error(`cannot detemine id`); +} + +export function getOneApHrefNullable(value: ApObject | undefined): string | undefined { + const firstOne = Array.isArray(value) ? value[0] : value; + return getApHrefNullable(firstOne); +} + +export function getApHrefNullable(value: string | IObject | undefined): string | undefined { + if (typeof value === 'string') return value; + if (typeof value?.href === 'string') return value.href; + return undefined; +} + +export interface IActivity extends IObject { + //type: 'Activity'; + actor: IObject | string; + object: IObject | string; + target?: IObject | string; + /** LD-Signature */ + signature?: { + type: string; + created: Date; + creator: string; + domain?: string; + nonce?: string; + signatureValue: string; + }; +} + +export interface ICollection extends IObject { + type: 'Collection'; + totalItems: number; + items: ApObject; +} + +export interface IOrderedCollection extends IObject { + type: 'OrderedCollection'; + totalItems: number; + orderedItems: ApObject; +} + +export const validPost = ['Note', 'Question', 'Article', 'Audio', 'Document', 'Image', 'Page', 'Video', 'Event']; + +export interface IPost extends IObject { + type: 'Note' | 'Question' | 'Article' | 'Audio' | 'Document' | 'Image' | 'Page' | 'Video' | 'Event'; + _misskey_content?: string; + _misskey_quote?: string; + quoteUrl?: string; + _misskey_talk: boolean; +} + +export interface IQuestion extends IObject { + type: 'Note' | 'Question'; + _misskey_content?: string; + _misskey_quote?: string; + quoteUrl?: string; + oneOf?: IQuestionChoice[]; + anyOf?: IQuestionChoice[]; + endTime?: Date; + closed?: Date; +} + +export const isQuestion = (object: IObject): object is IQuestion => + object.type === 'Note' || object.type === 'Question'; + +interface IQuestionChoice { + name?: string; + replies?: ICollection; + _misskey_votes?: number; +} +export interface ITombstone extends IObject { + type: 'Tombstone'; + formerType?: string; + deleted?: Date; +} + +export const isTombstone = (object: IObject): object is ITombstone => + object.type === 'Tombstone'; + +export const validActor = ['Person', 'Service', 'Group', 'Organization', 'Application']; + +export interface IPerson extends IObject { + type: 'Person' | 'Service' | 'Organization' | 'Group' | 'Application'; + name?: string; + preferredUsername?: string; + manuallyApprovesFollowers?: boolean; + inbox?: string; + sharedInbox?: string; // 後方互換性のため + publicKey: { + id: string; + publicKeyPem: string; + }; + followers?: string | ICollection | IOrderedCollection; + following?: string | ICollection | IOrderedCollection; + featured?: string | IOrderedCollection; + outbox?: string | IOrderedCollection; + endpoints?: { + sharedInbox?: string; + }; + 'vcard:bday'?: string; + 'vcard:Address'?: string; +} + +export const isCollection = (object: IObject): object is ICollection => + object.type === 'Collection'; + +export const isOrderedCollection = (object: IObject): object is IOrderedCollection => + object.type === 'OrderedCollection'; + +export const isCollectionOrOrderedCollection = (object: IObject): object is ICollection | IOrderedCollection => + isCollection(object) || isOrderedCollection(object); + +export interface IApPropertyValue extends IObject { + type: 'PropertyValue'; + identifier: IApPropertyValue; + name: string; + value: string; +} + +export const isPropertyValue = (object: IObject): object is IApPropertyValue => + object && + object.type === 'PropertyValue' && + typeof object.name === 'string' && + typeof (object as any).value === 'string'; + +export interface IApMention extends IObject { + type: 'Mention'; + href: string; +} + +export const isMention = (object: IObject): object is IApMention=> + object.type === 'Mention' && + typeof object.href === 'string'; + +export interface IApHashtag extends IObject { + type: 'Hashtag'; + name: string; +} + +export const isHashtag = (object: IObject): object is IApHashtag => + object.type === 'Hashtag' && + typeof object.name === 'string'; + +export interface IApEmoji extends IObject { + type: 'Emoji'; + updated: Date; +} + +export const isEmoji = (object: IObject): object is IApEmoji => + object.type === 'Emoji' && !Array.isArray(object.icon) && object.icon.url != null; + +export interface ICreate extends IActivity { + type: 'Create'; +} + +export interface IDelete extends IActivity { + type: 'Delete'; +} + +export interface IUpdate extends IActivity { + type: 'Update'; +} + +export interface IRead extends IActivity { + type: 'Read'; +} + +export interface IUndo extends IActivity { + type: 'Undo'; +} + +export interface IFollow extends IActivity { + type: 'Follow'; +} + +export interface IAccept extends IActivity { + type: 'Accept'; +} + +export interface IReject extends IActivity { + type: 'Reject'; +} + +export interface IAdd extends IActivity { + type: 'Add'; +} + +export interface IRemove extends IActivity { + type: 'Remove'; +} + +export interface ILike extends IActivity { + type: 'Like' | 'EmojiReaction' | 'EmojiReact'; + _misskey_reaction?: string; +} + +export interface IAnnounce extends IActivity { + type: 'Announce'; +} + +export interface IBlock extends IActivity { + type: 'Block'; +} + +export interface IFlag extends IActivity { + type: 'Flag'; +} + +export const isCreate = (object: IObject): object is ICreate => object.type === 'Create'; +export const isDelete = (object: IObject): object is IDelete => object.type === 'Delete'; +export const isUpdate = (object: IObject): object is IUpdate => object.type === 'Update'; +export const isRead = (object: IObject): object is IRead => object.type === 'Read'; +export const isUndo = (object: IObject): object is IUndo => object.type === 'Undo'; +export const isFollow = (object: IObject): object is IFollow => object.type === 'Follow'; +export const isAccept = (object: IObject): object is IAccept => object.type === 'Accept'; +export const isReject = (object: IObject): object is IReject => object.type === 'Reject'; +export const isAdd = (object: IObject): object is IAdd => object.type === 'Add'; +export const isRemove = (object: IObject): object is IRemove => object.type === 'Remove'; +export const isLike = (object: IObject): object is ILike => object.type === 'Like' || object.type === 'EmojiReaction' || object.type === 'EmojiReact'; +export const isAnnounce = (object: IObject): object is IAnnounce => object.type === 'Announce'; +export const isBlock = (object: IObject): object is IBlock => object.type === 'Block'; +export const isFlag = (object: IObject): object is IFlag => object.type === 'Flag'; diff --git a/src/remote/logger.ts b/src/remote/logger.ts new file mode 100644 index 000000000..d7464e7fd --- /dev/null +++ b/src/remote/logger.ts @@ -0,0 +1,3 @@ +import Logger from '../services/logger'; + +export const remoteLogger = new Logger('remote', 'cyan'); diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts new file mode 100644 index 000000000..8149c184f --- /dev/null +++ b/src/remote/resolve-user.ts @@ -0,0 +1,109 @@ +import webFinger from './webfinger'; +import config from '../config'; +import { createPerson, updatePerson } from './activitypub/models/person'; +import { remoteLogger } from './logger'; +import * as chalk from 'chalk'; +import { User, IRemoteUser } from '../models/entities/user'; +import { Users } from '../models'; +import { toPuny } from '../misc/convert-host'; + +const logger = remoteLogger.createSubLogger('resolve-user'); + +export async function resolveUser(username: string, host: string | null, option?: any, resync = false): Promise { + const usernameLower = username.toLowerCase(); + + if (host == null) { + logger.info(`return local user: ${usernameLower}`); + return await Users.findOne({ usernameLower, host: null }).then(u => { + if (u == null) { + throw new Error('user not found'); + } else { + return u; + } + }); + } + + host = toPuny(host); + + if (config.host == host) { + logger.info(`return local user: ${usernameLower}`); + return await Users.findOne({ usernameLower, host: null }).then(u => { + if (u == null) { + throw new Error('user not found'); + } else { + return u; + } + }); + } + + const user = await Users.findOne({ usernameLower, host }, option) as IRemoteUser; + + const acctLower = `${usernameLower}@${host}`; + + if (user == null) { + const self = await resolveSelf(acctLower); + + logger.succ(`return new remote user: ${chalk.magenta(acctLower)}`); + return await createPerson(self.href); + } + + // resyncオプション OR ユーザー情報が古い場合は、WebFilgerからやりなおして返す + if (resync || user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) { + // 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する + await Users.update(user.id, { + lastFetchedAt: new Date(), + }); + + logger.info(`try resync: ${acctLower}`); + const self = await resolveSelf(acctLower); + + if (user.uri !== self.href) { + // if uri mismatch, Fix (user@host <=> AP's Person id(IRemoteUser.uri)) mapping. + logger.info(`uri missmatch: ${acctLower}`); + logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${user.uri} to ${self.href}`); + + // validate uri + const uri = new URL(self.href); + if (uri.hostname !== host) { + throw new Error(`Invalid uri`); + } + + await Users.update({ + usernameLower, + host: host + }, { + uri: self.href + }); + } else { + logger.info(`uri is fine: ${acctLower}`); + } + + await updatePerson(self.href); + + logger.info(`return resynced remote user: ${acctLower}`); + return await Users.findOne({ uri: self.href }).then(u => { + if (u == null) { + throw new Error('user not found'); + } else { + return u; + } + }); + } + + logger.info(`return existing remote user: ${acctLower}`); + return user; +} + +async function resolveSelf(acctLower: string) { + logger.info(`WebFinger for ${chalk.yellow(acctLower)}`); + const finger = await webFinger(acctLower).catch(e => { + logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: ${ e.statusCode || e.message }`); + throw new Error(`Failed to WebFinger for ${acctLower}: ${ e.statusCode || e.message }`); + }); + const self = finger.links.find(link => link.rel != null && link.rel.toLowerCase() === 'self'); + if (!self) { + logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: self link not found`); + throw new Error('self link not found'); + } + return self; +} diff --git a/packages/backend/src/remote/webfinger.ts b/src/remote/webfinger.ts similarity index 82% rename from packages/backend/src/remote/webfinger.ts rename to src/remote/webfinger.ts index 337df34c2..04f978a35 100644 --- a/packages/backend/src/remote/webfinger.ts +++ b/src/remote/webfinger.ts @@ -1,6 +1,5 @@ -import { URL } from 'node:url'; -import { getJson } from '@/misc/fetch.js'; -import { query as urlQuery } from '@/prelude/url.js'; +import { getJson } from '../misc/fetch'; +import { query as urlQuery } from '../prelude/url'; type ILink = { href: string; @@ -15,7 +14,7 @@ type IWebFinger = { export default async function(query: string): Promise { const url = genUrl(query); - return await getJson(url, 'application/jrd+json, application/json') as IWebFinger; + return await getJson(url, 'application/jrd+json, application/json'); } function genUrl(query: string) { diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts new file mode 100644 index 000000000..c665fe28c --- /dev/null +++ b/src/server/activitypub.ts @@ -0,0 +1,227 @@ +import * as Router from '@koa/router'; +import * as json from 'koa-json-body'; +import * as httpSignature from 'http-signature'; + +import { renderActivity } from '../remote/activitypub/renderer'; +import renderNote from '../remote/activitypub/renderer/note'; +import renderKey from '../remote/activitypub/renderer/key'; +import { renderPerson } from '../remote/activitypub/renderer/person'; +import renderEmoji from '../remote/activitypub/renderer/emoji'; +import Outbox, { packActivity } from './activitypub/outbox'; +import Followers from './activitypub/followers'; +import Following from './activitypub/following'; +import Featured from './activitypub/featured'; +import { inbox as processInbox } from '../queue'; +import { isSelfHost } from '../misc/convert-host'; +import { Notes, Users, Emojis, UserKeypairs, NoteReactions } from '../models'; +import { ILocalUser, User } from '../models/entities/user'; +import { In } from 'typeorm'; +import { ensure } from '../prelude/ensure'; +import { renderLike } from '../remote/activitypub/renderer/like'; + +// Init router +const router = new Router(); + +//#region Routing + +function inbox(ctx: Router.RouterContext) { + let signature; + + try { + signature = httpSignature.parseRequest(ctx.req, { 'headers': [] }); + } catch (e) { + ctx.status = 401; + return; + } + + processInbox(ctx.request.body, signature); + + ctx.status = 202; +} + +const ACTIVITY_JSON = 'application/activity+json; charset=utf-8'; +const LD_JSON = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"; charset=utf-8'; + +function isActivityPubReq(ctx: Router.RouterContext) { + ctx.response.vary('Accept'); + const accepted = ctx.accepts('html', ACTIVITY_JSON, LD_JSON); + return typeof accepted === 'string' && !accepted.match(/html/); +} + +export function setResponseType(ctx: Router.RouterContext) { + const accept = ctx.accepts(ACTIVITY_JSON, LD_JSON); + if (accept === LD_JSON) { + ctx.response.type = LD_JSON; + } else { + ctx.response.type = ACTIVITY_JSON; + } +} + +// inbox +router.post('/inbox', json(), inbox); +router.post('/users/:user/inbox', json(), inbox); + +// note +router.get('/notes/:note', async (ctx, next) => { + if (!isActivityPubReq(ctx)) return await next(); + + const note = await Notes.findOne({ + id: ctx.params.note, + visibility: In(['public', 'home']), + localOnly: false + }); + + if (note == null) { + ctx.status = 404; + return; + } + + // リモートだったらリダイレクト + if (note.userHost != null) { + if (note.uri == null || isSelfHost(note.userHost)) { + ctx.status = 500; + return; + } + ctx.redirect(note.uri); + return; + } + + ctx.body = renderActivity(await renderNote(note, false)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +}); + +// note activity +router.get('/notes/:note/activity', async ctx => { + const note = await Notes.findOne({ + id: ctx.params.note, + userHost: null, + visibility: In(['public', 'home']), + localOnly: false + }); + + if (note == null) { + ctx.status = 404; + return; + } + + ctx.body = renderActivity(await packActivity(note)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +}); + +// outbox +router.get('/users/:user/outbox', Outbox); + +// followers +router.get('/users/:user/followers', Followers); + +// following +router.get('/users/:user/following', Following); + +// featured +router.get('/users/:user/collections/featured', Featured); + +// publickey +router.get('/users/:user/publickey', async ctx => { + const userId = ctx.params.user; + + const user = await Users.findOne({ + id: userId, + host: null + }); + + if (user == null) { + ctx.status = 404; + return; + } + + const keypair = await UserKeypairs.findOne(user.id).then(ensure); + + if (Users.isLocalUser(user)) { + ctx.body = renderActivity(renderKey(user, keypair)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); + } else { + ctx.status = 400; + } +}); + +// user +async function userInfo(ctx: Router.RouterContext, user: User | undefined) { + if (user == null) { + ctx.status = 404; + return; + } + + ctx.body = renderActivity(await renderPerson(user as ILocalUser)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +} + +router.get('/users/:user', async (ctx, next) => { + if (!isActivityPubReq(ctx)) return await next(); + + const userId = ctx.params.user; + + const user = await Users.findOne({ + id: userId, + host: null, + isSuspended: false + }); + + await userInfo(ctx, user); +}); + +router.get('/@:user', async (ctx, next) => { + if (!isActivityPubReq(ctx)) return await next(); + + const user = await Users.findOne({ + usernameLower: ctx.params.user.toLowerCase(), + host: null, + isSuspended: false + }); + + await userInfo(ctx, user); +}); +//#endregion + +// emoji +router.get('/emojis/:emoji', async ctx => { + const emoji = await Emojis.findOne({ + host: null, + name: ctx.params.emoji + }); + + if (emoji == null) { + ctx.status = 404; + return; + } + + ctx.body = renderActivity(await renderEmoji(emoji)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +}); + +// like +router.get('/likes/:like', async ctx => { + const reaction = await NoteReactions.findOne(ctx.params.like); + + if (reaction == null) { + ctx.status = 404; + return; + } + + const note = await Notes.findOne(reaction.noteId); + + if (note == null) { + ctx.status = 404; + return; + } + + ctx.body = renderActivity(await renderLike(reaction, note)); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +}); + +export default router; diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts new file mode 100644 index 000000000..80a7852f5 --- /dev/null +++ b/src/server/activitypub/featured.ts @@ -0,0 +1,42 @@ +import * as Router from '@koa/router'; +import config from '../../config'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; +import { setResponseType } from '../activitypub'; +import renderNote from '../../remote/activitypub/renderer/note'; +import { Users, Notes, UserNotePinings } from '../../models'; +import { ensure } from '../../prelude/ensure'; + +export default async (ctx: Router.RouterContext) => { + const userId = ctx.params.user; + + // Verify user + const user = await Users.findOne({ + id: userId, + host: null + }); + + if (user == null) { + ctx.status = 404; + return; + } + + const pinings = await UserNotePinings.find({ + where: { userId: user.id }, + order: { id: 'DESC' } + }); + + const pinnedNotes = await Promise.all(pinings.map(pining => + Notes.findOne(pining.noteId).then(ensure))); + + const renderedNotes = await Promise.all(pinnedNotes.map(note => renderNote(note))); + + const rendered = renderOrderedCollection( + `${config.url}/users/${userId}/collections/featured`, + renderedNotes.length, undefined, undefined, renderedNotes + ); + + ctx.body = renderActivity(rendered); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); +}; diff --git a/src/server/activitypub/followers.ts b/src/server/activitypub/followers.ts new file mode 100644 index 000000000..d7b5a15b1 --- /dev/null +++ b/src/server/activitypub/followers.ts @@ -0,0 +1,88 @@ +import * as Router from '@koa/router'; +import config from '../../config'; +import $ from 'cafy'; +import { ID } from '../../misc/cafy-id'; +import * as url from '../../prelude/url'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; +import renderFollowUser from '../../remote/activitypub/renderer/follow-user'; +import { setResponseType } from '../activitypub'; +import { Users, Followings } from '../../models'; +import { LessThan } from 'typeorm'; + +export default async (ctx: Router.RouterContext) => { + const userId = ctx.params.user; + + // Get 'cursor' parameter + const [cursor, cursorErr] = $.optional.type(ID).get(ctx.request.query.cursor); + + // Get 'page' parameter + const pageErr = !$.optional.str.or(['true', 'false']).ok(ctx.request.query.page); + const page: boolean = ctx.request.query.page === 'true'; + + // Validate parameters + if (cursorErr || pageErr) { + ctx.status = 400; + return; + } + + // Verify user + const user = await Users.findOne({ + id: userId, + host: null + }); + + if (user == null) { + ctx.status = 404; + return; + } + + const limit = 10; + const partOf = `${config.url}/users/${userId}/followers`; + + if (page) { + const query = { + followeeId: user.id + } as any; + + // カーソルが指定されている場合 + if (cursor) { + query.id = LessThan(cursor); + } + + // Get followers + const followings = await Followings.find({ + where: query, + take: limit + 1, + order: { id: -1 } + }); + + // 「次のページ」があるかどうか + const inStock = followings.length === limit + 1; + if (inStock) followings.pop(); + + const renderedFollowers = await Promise.all(followings.map(following => renderFollowUser(following.followerId))); + const rendered = renderOrderedCollectionPage( + `${partOf}?${url.query({ + page: 'true', + cursor + })}`, + user.followersCount, renderedFollowers, partOf, + undefined, + inStock ? `${partOf}?${url.query({ + page: 'true', + cursor: followings[followings.length - 1].id + })}` : undefined + ); + + ctx.body = renderActivity(rendered); + setResponseType(ctx); + } else { + // index page + const rendered = renderOrderedCollection(partOf, user.followersCount, `${partOf}?page=true`); + ctx.body = renderActivity(rendered); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); + } +}; diff --git a/src/server/activitypub/following.ts b/src/server/activitypub/following.ts new file mode 100644 index 000000000..d39e680d9 --- /dev/null +++ b/src/server/activitypub/following.ts @@ -0,0 +1,89 @@ +import * as Router from '@koa/router'; +import config from '../../config'; +import $ from 'cafy'; +import { ID } from '../../misc/cafy-id'; +import * as url from '../../prelude/url'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; +import renderFollowUser from '../../remote/activitypub/renderer/follow-user'; +import { setResponseType } from '../activitypub'; +import { Users, Followings } from '../../models'; +import { LessThan, FindConditions } from 'typeorm'; +import { Following } from '../../models/entities/following'; + +export default async (ctx: Router.RouterContext) => { + const userId = ctx.params.user; + + // Get 'cursor' parameter + const [cursor, cursorErr] = $.optional.type(ID).get(ctx.request.query.cursor); + + // Get 'page' parameter + const pageErr = !$.optional.str.or(['true', 'false']).ok(ctx.request.query.page); + const page: boolean = ctx.request.query.page === 'true'; + + // Validate parameters + if (cursorErr || pageErr) { + ctx.status = 400; + return; + } + + // Verify user + const user = await Users.findOne({ + id: userId, + host: null + }); + + if (user == null) { + ctx.status = 404; + return; + } + + const limit = 10; + const partOf = `${config.url}/users/${userId}/following`; + + if (page) { + const query = { + followerId: user.id + } as FindConditions; + + // カーソルが指定されている場合 + if (cursor) { + query.id = LessThan(cursor); + } + + // Get followings + const followings = await Followings.find({ + where: query, + take: limit + 1, + order: { id: -1 } + }); + + // 「次のページ」があるかどうか + const inStock = followings.length === limit + 1; + if (inStock) followings.pop(); + + const renderedFollowees = await Promise.all(followings.map(following => renderFollowUser(following.followeeId))); + const rendered = renderOrderedCollectionPage( + `${partOf}?${url.query({ + page: 'true', + cursor + })}`, + user.followingCount, renderedFollowees, partOf, + undefined, + inStock ? `${partOf}?${url.query({ + page: 'true', + cursor: followings[followings.length - 1].id + })}` : undefined + ); + + ctx.body = renderActivity(rendered); + setResponseType(ctx); + } else { + // index page + const rendered = renderOrderedCollection(partOf, user.followingCount, `${partOf}?page=true`); + ctx.body = renderActivity(rendered); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); + } +}; diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts new file mode 100644 index 000000000..03cf65bce --- /dev/null +++ b/src/server/activitypub/outbox.ts @@ -0,0 +1,109 @@ +import * as Router from '@koa/router'; +import config from '../../config'; +import $ from 'cafy'; +import { ID } from '../../misc/cafy-id'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; +import { setResponseType } from '../activitypub'; +import renderNote from '../../remote/activitypub/renderer/note'; +import renderCreate from '../../remote/activitypub/renderer/create'; +import renderAnnounce from '../../remote/activitypub/renderer/announce'; +import { countIf } from '../../prelude/array'; +import * as url from '../../prelude/url'; +import { Users, Notes } from '../../models'; +import { makePaginationQuery } from '../api/common/make-pagination-query'; +import { Brackets } from 'typeorm'; +import { Note } from '../../models/entities/note'; +import { ensure } from '../../prelude/ensure'; + +export default async (ctx: Router.RouterContext) => { + const userId = ctx.params.user; + + // Get 'sinceId' parameter + const [sinceId, sinceIdErr] = $.optional.type(ID).get(ctx.request.query.since_id); + + // Get 'untilId' parameter + const [untilId, untilIdErr] = $.optional.type(ID).get(ctx.request.query.until_id); + + // Get 'page' parameter + const pageErr = !$.optional.str.or(['true', 'false']).ok(ctx.request.query.page); + const page: boolean = ctx.request.query.page === 'true'; + + // Validate parameters + if (sinceIdErr || untilIdErr || pageErr || countIf(x => x != null, [sinceId, untilId]) > 1) { + ctx.status = 400; + return; + } + + // Verify user + const user = await Users.findOne({ + id: userId, + host: null + }); + + if (user == null) { + ctx.status = 404; + return; + } + + const limit = 20; + const partOf = `${config.url}/users/${userId}/outbox`; + + if (page) { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), sinceId, untilId) + .andWhere('note.userId = :userId', { userId: user.id }) + .andWhere(new Brackets(qb => { qb + .where(`note.visibility = 'public'`) + .orWhere(`note.visibility = 'home'`); + })) + .andWhere('note.localOnly = FALSE'); + + const notes = await query.take(limit).getMany(); + + if (sinceId) notes.reverse(); + + const activities = await Promise.all(notes.map(note => packActivity(note))); + const rendered = renderOrderedCollectionPage( + `${partOf}?${url.query({ + page: 'true', + since_id: sinceId, + until_id: untilId + })}`, + user.notesCount, activities, partOf, + notes.length ? `${partOf}?${url.query({ + page: 'true', + since_id: notes[0].id + })}` : undefined, + notes.length ? `${partOf}?${url.query({ + page: 'true', + until_id: notes[notes.length - 1].id + })}` : undefined + ); + + ctx.body = renderActivity(rendered); + setResponseType(ctx); + } else { + // index page + const rendered = renderOrderedCollection(partOf, user.notesCount, + `${partOf}?page=true`, + `${partOf}?page=true&since_id=000000000000000000000000` + ); + ctx.body = renderActivity(rendered); + ctx.set('Cache-Control', 'public, max-age=180'); + setResponseType(ctx); + } +}; + +/** + * Pack Create or Announce Activity + * @param note Note + */ +export async function packActivity(note: Note): Promise { + if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length === 0)) { + const renote = await Notes.findOne(note.renoteId).then(ensure); + return renderAnnounce(renote.uri ? renote.uri : `${config.url}/notes/${renote.id}`, note); + } + + return renderCreate(await renderNote(note, false), note); +} diff --git a/src/server/api/2fa.ts b/src/server/api/2fa.ts new file mode 100644 index 000000000..8e6e635bb --- /dev/null +++ b/src/server/api/2fa.ts @@ -0,0 +1,422 @@ +import * as crypto from 'crypto'; +import config from '../../config'; +import * as jsrsasign from 'jsrsasign'; + +const ECC_PRELUDE = Buffer.from([0x04]); +const NULL_BYTE = Buffer.from([0]); +const PEM_PRELUDE = Buffer.from( + '3059301306072a8648ce3d020106082a8648ce3d030107034200', + 'hex' +); + +// Android Safetynet attestations are signed with this cert: +const GSR2 = `-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE-----\n`; + +function base64URLDecode(source: string) { + return Buffer.from(source.replace(/\-/g, '+').replace(/_/g, '/'), 'base64'); +} + +function getCertSubject(certificate: string) { + const subjectCert = new jsrsasign.X509(); + subjectCert.readCertPEM(certificate); + + const subjectString = subjectCert.getSubjectString(); + const subjectFields = subjectString.slice(1).split('/'); + + const fields = {} as Record; + for (const field of subjectFields) { + const eqIndex = field.indexOf('='); + fields[field.substring(0, eqIndex)] = field.substring(eqIndex + 1); + } + + return fields; +} + +function verifyCertificateChain(certificates: string[]) { + let valid = true; + + for (let i = 0; i < certificates.length; i++) { + const Cert = certificates[i]; + const certificate = new jsrsasign.X509(); + certificate.readCertPEM(Cert); + + const CACert = i + 1 >= certificates.length ? Cert : certificates[i + 1]; + + const certStruct = jsrsasign.ASN1HEX.getTLVbyList(certificate.hex!, 0, [0]); + const algorithm = certificate.getSignatureAlgorithmField(); + const signatureHex = certificate.getSignatureValueHex(); + + // Verify against CA + const Signature = new jsrsasign.KJUR.crypto.Signature({alg: algorithm}); + Signature.init(CACert); + Signature.updateHex(certStruct); + valid = valid && !!Signature.verify(signatureHex); // true if CA signed the certificate + } + + return valid; +} + +function PEMString(pemBuffer: Buffer, type = 'CERTIFICATE') { + if (pemBuffer.length === 65 && pemBuffer[0] === 0x04) { + pemBuffer = Buffer.concat([PEM_PRELUDE, pemBuffer], 91); + type = 'PUBLIC KEY'; + } + const cert = pemBuffer.toString('base64'); + + const keyParts = []; + const max = Math.ceil(cert.length / 64); + let start = 0; + for (let i = 0; i < max; i++) { + keyParts.push(cert.substring(start, start + 64)); + start += 64; + } + + return ( + `-----BEGIN ${type}-----\n` + + keyParts.join('\n') + + `\n-----END ${type}-----\n` + ); +} + +export function hash(data: Buffer) { + return crypto + .createHash('sha256') + .update(data) + .digest(); +} + +export function verifyLogin({ + publicKey, + authenticatorData, + clientDataJSON, + clientData, + signature, + challenge +}: { + publicKey: Buffer, + authenticatorData: Buffer, + clientDataJSON: Buffer, + clientData: any, + signature: Buffer, + challenge: string +}) { + if (clientData.type != 'webauthn.get') { + throw new Error('type is not webauthn.get'); + } + + if (hash(clientData.challenge).toString('hex') != challenge) { + throw new Error('challenge mismatch'); + } + if (clientData.origin != config.scheme + '://' + config.host) { + throw new Error('origin mismatch'); + } + + const verificationData = Buffer.concat( + [authenticatorData, hash(clientDataJSON)], + 32 + authenticatorData.length + ); + + return crypto + .createVerify('SHA256') + .update(verificationData) + .verify(PEMString(publicKey), signature); +} + +export const procedures = { + none: { + verify({publicKey}: {publicKey: Map}) { + const negTwo = publicKey.get(-2); + + if (!negTwo || negTwo.length != 32) { + throw new Error('invalid or no -2 key given'); + } + const negThree = publicKey.get(-3); + if (!negThree || negThree.length != 32) { + throw new Error('invalid or no -3 key given'); + } + + const publicKeyU2F = Buffer.concat( + [ECC_PRELUDE, negTwo, negThree], + 1 + 32 + 32 + ); + + return { + publicKey: publicKeyU2F, + valid: true + }; + } + }, + 'android-key': { + verify({ + attStmt, + authenticatorData, + clientDataHash, + publicKey, + rpIdHash, + credentialId + }: { + attStmt: any, + authenticatorData: Buffer, + clientDataHash: Buffer, + publicKey: Map; + rpIdHash: Buffer, + credentialId: Buffer, + }) { + if (attStmt.alg != -7) { + throw new Error('alg mismatch'); + } + + const verificationData = Buffer.concat([ + authenticatorData, + clientDataHash + ]); + + const attCert: Buffer = attStmt.x5c[0]; + + const negTwo = publicKey.get(-2); + + if (!negTwo || negTwo.length != 32) { + throw new Error('invalid or no -2 key given'); + } + const negThree = publicKey.get(-3); + if (!negThree || negThree.length != 32) { + throw new Error('invalid or no -3 key given'); + } + + const publicKeyData = Buffer.concat( + [ECC_PRELUDE, negTwo, negThree], + 1 + 32 + 32 + ); + + if (!attCert.equals(publicKeyData)) { + throw new Error('public key mismatch'); + } + + const isValid = crypto + .createVerify('SHA256') + .update(verificationData) + .verify(PEMString(attCert), attStmt.sig); + + // TODO: Check 'attestationChallenge' field in extension of cert matches hash(clientDataJSON) + + return { + valid: isValid, + publicKey: publicKeyData + }; + } + }, + // what a stupid attestation + 'android-safetynet': { + verify({ + attStmt, + authenticatorData, + clientDataHash, + publicKey, + rpIdHash, + credentialId + }: { + attStmt: any, + authenticatorData: Buffer, + clientDataHash: Buffer, + publicKey: Map; + rpIdHash: Buffer, + credentialId: Buffer, + }) { + const verificationData = hash( + Buffer.concat([authenticatorData, clientDataHash]) + ); + + const jwsParts = attStmt.response.toString('utf-8').split('.'); + + const header = JSON.parse(base64URLDecode(jwsParts[0]).toString('utf-8')); + const response = JSON.parse( + base64URLDecode(jwsParts[1]).toString('utf-8') + ); + const signature = jwsParts[2]; + + if (!verificationData.equals(Buffer.from(response.nonce, 'base64'))) { + throw new Error('invalid nonce'); + } + + const certificateChain = header.x5c + .map((key: any) => PEMString(key)) + .concat([GSR2]); + + if (getCertSubject(certificateChain[0]).CN != 'attest.android.com') { + throw new Error('invalid common name'); + } + + if (!verifyCertificateChain(certificateChain)) { + throw new Error('Invalid certificate chain!'); + } + + const signatureBase = Buffer.from( + jwsParts[0] + '.' + jwsParts[1], + 'utf-8' + ); + + const valid = crypto + .createVerify('sha256') + .update(signatureBase) + .verify(certificateChain[0], base64URLDecode(signature)); + + const negTwo = publicKey.get(-2); + + if (!negTwo || negTwo.length != 32) { + throw new Error('invalid or no -2 key given'); + } + const negThree = publicKey.get(-3); + if (!negThree || negThree.length != 32) { + throw new Error('invalid or no -3 key given'); + } + + const publicKeyData = Buffer.concat( + [ECC_PRELUDE, negTwo, negThree], + 1 + 32 + 32 + ); + return { + valid, + publicKey: publicKeyData + }; + } + }, + packed: { + verify({ + attStmt, + authenticatorData, + clientDataHash, + publicKey, + rpIdHash, + credentialId + }: { + attStmt: any, + authenticatorData: Buffer, + clientDataHash: Buffer, + publicKey: Map; + rpIdHash: Buffer, + credentialId: Buffer, + }) { + const verificationData = Buffer.concat([ + authenticatorData, + clientDataHash + ]); + + if (attStmt.x5c) { + const attCert = attStmt.x5c[0]; + + const validSignature = crypto + .createVerify('SHA256') + .update(verificationData) + .verify(PEMString(attCert), attStmt.sig); + + const negTwo = publicKey.get(-2); + + if (!negTwo || negTwo.length != 32) { + throw new Error('invalid or no -2 key given'); + } + const negThree = publicKey.get(-3); + if (!negThree || negThree.length != 32) { + throw new Error('invalid or no -3 key given'); + } + + const publicKeyData = Buffer.concat( + [ECC_PRELUDE, negTwo, negThree], + 1 + 32 + 32 + ); + + return { + valid: validSignature, + publicKey: publicKeyData + }; + } else if (attStmt.ecdaaKeyId) { + // https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-ecdaa-algorithm-v2.0-id-20180227.html#ecdaa-verify-operation + throw new Error('ECDAA-Verify is not supported'); + } else { + if (attStmt.alg != -7) throw new Error('alg mismatch'); + + throw new Error('self attestation is not supported'); + } + } + }, + + 'fido-u2f': { + verify({ + attStmt, + authenticatorData, + clientDataHash, + publicKey, + rpIdHash, + credentialId + }: { + attStmt: any, + authenticatorData: Buffer, + clientDataHash: Buffer, + publicKey: Map, + rpIdHash: Buffer, + credentialId: Buffer + }) { + const x5c: Buffer[] = attStmt.x5c; + if (x5c.length != 1) { + throw new Error('x5c length does not match expectation'); + } + + const attCert = x5c[0]; + + // TODO: make sure attCert is an Elliptic Curve (EC) public key over the P-256 curve + + const negTwo: Buffer = publicKey.get(-2); + + if (!negTwo || negTwo.length != 32) { + throw new Error('invalid or no -2 key given'); + } + const negThree: Buffer = publicKey.get(-3); + if (!negThree || negThree.length != 32) { + throw new Error('invalid or no -3 key given'); + } + + const publicKeyU2F = Buffer.concat( + [ECC_PRELUDE, negTwo, negThree], + 1 + 32 + 32 + ); + + const verificationData = Buffer.concat([ + NULL_BYTE, + rpIdHash, + clientDataHash, + credentialId, + publicKeyU2F + ]); + + const validSignature = crypto + .createVerify('SHA256') + .update(verificationData) + .verify(PEMString(attCert), attStmt.sig); + + return { + valid: validSignature, + publicKey: publicKeyU2F + }; + } + } +}; diff --git a/src/server/api/api-handler.ts b/src/server/api/api-handler.ts new file mode 100644 index 000000000..7fbc200fc --- /dev/null +++ b/src/server/api/api-handler.ts @@ -0,0 +1,46 @@ +import * as Koa from 'koa'; + +import { IEndpoint } from './endpoints'; +import authenticate from './authenticate'; +import call from './call'; +import { ApiError } from './error'; + +export default (endpoint: IEndpoint, ctx: Koa.Context) => new Promise((res) => { + const body = ctx.request.body; + + const reply = (x?: any, y?: ApiError) => { + if (x == null) { + ctx.status = 204; + } else if (typeof x === 'number') { + ctx.status = x; + ctx.body = { + error: { + message: y!.message, + code: y!.code, + id: y!.id, + kind: y!.kind, + ...(y!.info ? { info: y!.info } : {}) + } + }; + } else { + ctx.body = x; + } + res(); + }; + + // Authentication + authenticate(body['i']).then(([user, app]) => { + // API invoking + call(endpoint.name, user, app, body, (ctx as any).file).then((res: any) => { + reply(res); + }).catch((e: ApiError) => { + reply(e.httpStatusCode ? e.httpStatusCode : e.kind === 'client' ? 400 : 500, e); + }); + }).catch(() => { + reply(403, new ApiError({ + message: 'Authentication failed. Please ensure your token is correct.', + code: 'AUTHENTICATION_FAILED', + id: 'b0a7f5f8-dc2f-4171-b91f-de88ad238e14' + })); + }); +}); diff --git a/src/server/api/authenticate.ts b/src/server/api/authenticate.ts new file mode 100644 index 000000000..0785372b3 --- /dev/null +++ b/src/server/api/authenticate.ts @@ -0,0 +1,56 @@ +import isNativeToken from './common/is-native-token'; +import { User } from '../../models/entities/user'; +import { Users, AccessTokens, Apps } from '../../models'; +import { ensure } from '../../prelude/ensure'; +import { AccessToken } from '../../models/entities/access-token'; + +export default async (token: string): Promise<[User | null | undefined, AccessToken | null | undefined]> => { + if (token == null) { + return [null, null]; + } + + if (isNativeToken(token)) { + // Fetch user + const user = await Users + .findOne({ token }); + + if (user == null) { + throw new Error('user not found'); + } + + return [user, null]; + } else { + const accessToken = await AccessTokens.findOne({ + where: [{ + hash: token.toLowerCase() // app + }, { + token: token // miauth + }], + }); + + if (accessToken == null) { + throw new Error('invalid signature'); + } + + AccessTokens.update(accessToken.id, { + lastUsedAt: new Date(), + }); + + const user = await Users + .findOne({ + id: accessToken.userId // findOne(accessToken.userId) のように書かないのは後方互換性のため + }); + + if (accessToken.appId) { + const app = await Apps + .findOne(accessToken.appId).then(ensure); + + return [user, { + id: accessToken.id, + permission: app.permission + } as AccessToken]; + } else { + return [user, accessToken]; + } + } +}; diff --git a/src/server/api/call.ts b/src/server/api/call.ts new file mode 100644 index 000000000..d50b6a122 --- /dev/null +++ b/src/server/api/call.ts @@ -0,0 +1,104 @@ +import { performance } from 'perf_hooks'; +import limiter from './limiter'; +import { User } from '../../models/entities/user'; +import endpoints from './endpoints'; +import { ApiError } from './error'; +import { apiLogger } from './logger'; +import { AccessToken } from '../../models/entities/access-token'; + +const accessDenied = { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e' +}; + +export default async (endpoint: string, user: User | null | undefined, token: AccessToken | null | undefined, data: any, file?: any) => { + const isSecure = user != null && token == null; + + const ep = endpoints.find(e => e.name === endpoint); + + if (ep == null) { + throw new ApiError({ + message: 'No such endpoint.', + code: 'NO_SUCH_ENDPOINT', + id: 'f8080b67-5f9c-4eb7-8c18-7f1eeae8f709', + httpStatusCode: 404 + }); + } + + if (ep.meta.secure && !isSecure) { + throw new ApiError(accessDenied); + } + + if (ep.meta.requireCredential && user == null) { + throw new ApiError({ + message: 'Credential required.', + code: 'CREDENTIAL_REQUIRED', + id: '1384574d-a912-4b81-8601-c7b1c4085df1', + httpStatusCode: 401 + }); + } + + if (ep.meta.requireCredential && user!.isSuspended) { + throw new ApiError(accessDenied, { reason: 'Your account has been suspended.' }); + } + + if (ep.meta.requireAdmin && !user!.isAdmin) { + throw new ApiError(accessDenied, { reason: 'You are not the admin.' }); + } + + if (ep.meta.requireModerator && !user!.isAdmin && !user!.isModerator) { + throw new ApiError(accessDenied, { reason: 'You are not a moderator.' }); + } + + if (token && ep.meta.kind && !token.permission.some(p => p === ep.meta.kind)) { + throw new ApiError({ + message: 'Your app does not have the necessary permissions to use this endpoint.', + code: 'PERMISSION_DENIED', + id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', + }); + } + + if (ep.meta.requireCredential && ep.meta.limit && !user!.isAdmin && !user!.isModerator) { + // Rate limit + await limiter(ep, user!).catch(e => { + throw new ApiError({ + message: 'Rate limit exceeded. Please try again later.', + code: 'RATE_LIMIT_EXCEEDED', + id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', + httpStatusCode: 429 + }); + }); + } + + // API invoking + const before = performance.now(); + return await ep.exec(data, user, token, file).catch((e: Error) => { + if (e instanceof ApiError) { + throw e; + } else { + apiLogger.error(`Internal error occurred in ${ep.name}: ${e?.message}`, { + ep: ep.name, + ps: data, + e: { + message: e?.message, + code: e?.name, + stack: e?.stack + } + }); + throw new ApiError(null, { + e: { + message: e?.message, + code: e?.name, + stack: e?.stack + } + }); + } + }).finally(() => { + const after = performance.now(); + const time = after - before; + if (time > 1000) { + apiLogger.warn(`SLOW API CALL DETECTED: ${ep.name} (${time}ms)`); + } + }); +}; diff --git a/src/server/api/common/generate-block-query.ts b/src/server/api/common/generate-block-query.ts new file mode 100644 index 000000000..363641048 --- /dev/null +++ b/src/server/api/common/generate-block-query.ts @@ -0,0 +1,19 @@ +import { User } from '../../../models/entities/user'; +import { Blockings } from '../../../models'; +import { SelectQueryBuilder } from 'typeorm'; + +export function generateBlockQueryForUsers(q: SelectQueryBuilder, me: User) { + const blockingQuery = Blockings.createQueryBuilder('blocking') + .select('blocking.blockeeId') + .where('blocking.blockerId = :blockerId', { blockerId: me.id }); + + const blockedQuery = Blockings.createQueryBuilder('blocking') + .select('blocking.blockerId') + .where('blocking.blockeeId = :blockeeId', { blockeeId: me.id }); + + q.andWhere(`user.id NOT IN (${ blockingQuery.getQuery() })`); + q.setParameters(blockingQuery.getParameters()); + + q.andWhere(`user.id NOT IN (${ blockedQuery.getQuery() })`); + q.setParameters(blockedQuery.getParameters()); +} diff --git a/packages/backend/src/server/api/common/generate-channel-query.ts b/src/server/api/common/generate-channel-query.ts similarity index 84% rename from packages/backend/src/server/api/common/generate-channel-query.ts rename to src/server/api/common/generate-channel-query.ts index 333bb73b8..c0337b2c6 100644 --- a/packages/backend/src/server/api/common/generate-channel-query.ts +++ b/src/server/api/common/generate-channel-query.ts @@ -1,8 +1,8 @@ -import { User } from '@/models/entities/user.js'; -import { ChannelFollowings } from '@/models/index.js'; +import { User } from '../../../models/entities/user'; +import { ChannelFollowings } from '../../../models'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateChannelQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { +export function generateChannelQuery(q: SelectQueryBuilder, me?: User | null) { if (me == null) { q.andWhere('note.channelId IS NULL'); } else { diff --git a/src/server/api/common/generate-muted-note-query.ts b/src/server/api/common/generate-muted-note-query.ts new file mode 100644 index 000000000..498930476 --- /dev/null +++ b/src/server/api/common/generate-muted-note-query.ts @@ -0,0 +1,13 @@ +import { User } from '../../../models/entities/user'; +import { MutedNotes } from '../../../models'; +import { SelectQueryBuilder } from 'typeorm'; + +export function generateMutedNoteQuery(q: SelectQueryBuilder, me: User) { + const mutedQuery = MutedNotes.createQueryBuilder('muted') + .select('muted.noteId') + .where('muted.userId = :userId', { userId: me.id }); + + q.andWhere(`note.id NOT IN (${ mutedQuery.getQuery() })`); + + q.setParameters(mutedQuery.getParameters()); +} diff --git a/src/server/api/common/generate-muted-user-query.ts b/src/server/api/common/generate-muted-user-query.ts new file mode 100644 index 000000000..b346f2f0f --- /dev/null +++ b/src/server/api/common/generate-muted-user-query.ts @@ -0,0 +1,40 @@ +import { User } from '../../../models/entities/user'; +import { Mutings } from '../../../models'; +import { SelectQueryBuilder, Brackets } from 'typeorm'; + +export function generateMutedUserQuery(q: SelectQueryBuilder, me: User, exclude?: User) { + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: me.id }); + + if (exclude) { + mutingQuery.andWhere('muting.muteeId != :excludeId', { excludeId: exclude.id }); + } + + // 投稿の作者をミュートしていない かつ + // 投稿の返信先の作者をミュートしていない かつ + // 投稿の引用元の作者をミュートしていない + q + .andWhere(`note.userId NOT IN (${ mutingQuery.getQuery() })`) + .andWhere(new Brackets(qb => { qb + .where(`note.replyUserId IS NULL`) + .orWhere(`note.replyUserId NOT IN (${ mutingQuery.getQuery() })`); + })) + .andWhere(new Brackets(qb => { qb + .where(`note.renoteUserId IS NULL`) + .orWhere(`note.renoteUserId NOT IN (${ mutingQuery.getQuery() })`); + })); + + q.setParameters(mutingQuery.getParameters()); +} + +export function generateMutedUserQueryForUsers(q: SelectQueryBuilder, me: User) { + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: me.id }); + + q + .andWhere(`user.id NOT IN (${ mutingQuery.getQuery() })`); + + q.setParameters(mutingQuery.getParameters()); +} diff --git a/src/server/api/common/generate-native-user-token.ts b/src/server/api/common/generate-native-user-token.ts new file mode 100644 index 000000000..cd30ba98f --- /dev/null +++ b/src/server/api/common/generate-native-user-token.ts @@ -0,0 +1,3 @@ +import { secureRndstr } from '../../../misc/secure-rndstr'; + +export default () => secureRndstr(16, true); diff --git a/packages/backend/src/server/api/common/generate-replies-query.ts b/src/server/api/common/generate-replies-query.ts similarity index 87% rename from packages/backend/src/server/api/common/generate-replies-query.ts rename to src/server/api/common/generate-replies-query.ts index 301782eab..8ebe93f20 100644 --- a/packages/backend/src/server/api/common/generate-replies-query.ts +++ b/src/server/api/common/generate-replies-query.ts @@ -1,7 +1,7 @@ -import { User } from '@/models/entities/user.js'; +import { User } from '../../../models/entities/user'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateRepliesQuery(q: SelectQueryBuilder, me?: Pick | null) { +export function generateRepliesQuery(q: SelectQueryBuilder, me?: User | null) { if (me == null) { q.andWhere(new Brackets(qb => { qb .where(`note.replyId IS NULL`) // 返信ではない @@ -10,7 +10,7 @@ export function generateRepliesQuery(q: SelectQueryBuilder, me?: Pick { qb .where(`note.replyId IS NULL`) // 返信ではない .orWhere('note.replyUserId = :meId', { meId: me.id }) // 返信だけど自分のノートへの返信 diff --git a/src/server/api/common/generate-visibility-query.ts b/src/server/api/common/generate-visibility-query.ts new file mode 100644 index 000000000..d981b4a61 --- /dev/null +++ b/src/server/api/common/generate-visibility-query.ts @@ -0,0 +1,40 @@ +import { User } from '../../../models/entities/user'; +import { Followings } from '../../../models'; +import { Brackets, SelectQueryBuilder } from 'typeorm'; + +export function generateVisibilityQuery(q: SelectQueryBuilder, me?: User | null) { + if (me == null) { + q.andWhere(new Brackets(qb => { qb + .where(`note.visibility = 'public'`) + .orWhere(`note.visibility = 'home'`); + })); + } else { + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: me.id }); + + q.andWhere(new Brackets(qb => { qb + // 公開投稿である + .where(new Brackets(qb => { qb + .where(`note.visibility = 'public'`) + .orWhere(`note.visibility = 'home'`); + })) + // または 自分自身 + .orWhere('note.userId = :userId1', { userId1: me.id }) + // または 自分宛て + .orWhere(':userId2 = ANY(note.visibleUserIds)', { userId2: me.id }) + .orWhere(new Brackets(qb => { qb + // または フォロワー宛ての投稿であり、 + .where('note.visibility = \'followers\'') + .andWhere(new Brackets(qb => { qb + // 自分がフォロワーである + .where(`note.userId IN (${ followingQuery.getQuery() })`) + // または 自分の投稿へのリプライ + .orWhere('note.replyUserId = :userId3', { userId3: me.id }); + })); + })); + })); + + q.setParameters(followingQuery.getParameters()); + } +} diff --git a/src/server/api/common/getters.ts b/src/server/api/common/getters.ts new file mode 100644 index 000000000..04716d19c --- /dev/null +++ b/src/server/api/common/getters.ts @@ -0,0 +1,56 @@ +import { IdentifiableError } from '../../../misc/identifiable-error'; +import { User } from '../../../models/entities/user'; +import { Note } from '../../../models/entities/note'; +import { Notes, Users } from '../../../models'; + +/** + * Get note for API processing + */ +export async function getNote(noteId: Note['id']) { + const note = await Notes.findOne(noteId); + + if (note == null) { + throw new IdentifiableError('9725d0ce-ba28-4dde-95a7-2cbb2c15de24', 'No such note.'); + } + + return note; +} + +/** + * Get user for API processing + */ +export async function getUser(userId: User['id']) { + const user = await Users.findOne(userId); + + if (user == null) { + throw new IdentifiableError('15348ddd-432d-49c2-8a5a-8069753becff', 'No such user.'); + } + + return user; +} + +/** + * Get remote user for API processing + */ +export async function getRemoteUser(userId: User['id']) { + const user = await getUser(userId); + + if (!Users.isRemoteUser(user)) { + throw new Error('user is not a remote user'); + } + + return user; +} + +/** + * Get local user for API processing + */ +export async function getLocalUser(userId: User['id']) { + const user = await getUser(userId); + + if (!Users.isLocalUser(user)) { + throw new Error('user is not a local user'); + } + + return user; +} diff --git a/packages/backend/src/server/api/common/inject-featured.ts b/src/server/api/common/inject-featured.ts similarity index 76% rename from packages/backend/src/server/api/common/inject-featured.ts rename to src/server/api/common/inject-featured.ts index f7cdd365e..098d20e72 100644 --- a/packages/backend/src/server/api/common/inject-featured.ts +++ b/src/server/api/common/inject-featured.ts @@ -1,9 +1,9 @@ import rndstr from 'rndstr'; -import { Note } from '@/models/entities/note.js'; -import { User } from '@/models/entities/user.js'; -import { Notes, UserProfiles, NoteReactions } from '@/models/index.js'; -import { generateMutedUserQuery } from './generate-muted-user-query.js'; -import { generateBlockedUserQuery } from './generate-block-query.js'; +import { Note } from '../../../models/entities/note'; +import { User } from '../../../models/entities/user'; +import { Notes, UserProfiles, NoteReactions } from '../../../models'; +import { generateMutedUserQuery } from './generate-muted-user-query'; +import { ensure } from '../../../prelude/ensure'; // TODO: リアクション、Renote、返信などをしたノートは除外する @@ -11,7 +11,7 @@ export async function injectFeatured(timeline: Note[], user?: User | null) { if (timeline.length < 5) return; if (user) { - const profile = await UserProfiles.findOneByOrFail({ userId: user.id }); + const profile = await UserProfiles.findOne(user.id).then(ensure); if (!profile.injectFeaturedNote) return; } @@ -24,13 +24,12 @@ export async function injectFeatured(timeline: Note[], user?: User | null) { .andWhere(`note.score > 0`) .andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) }) .andWhere(`note.visibility = 'public'`) - .innerJoinAndSelect('note.user', 'user'); + .leftJoinAndSelect('note.user', 'user'); if (user) { query.andWhere('note.userId != :userId', { userId: user.id }); generateMutedUserQuery(query, user); - generateBlockedUserQuery(query, user); const reactionQuery = NoteReactions.createQueryBuilder('reaction') .select('reaction.noteId') diff --git a/src/server/api/common/inject-promo.ts b/src/server/api/common/inject-promo.ts new file mode 100644 index 000000000..f694ce6ea --- /dev/null +++ b/src/server/api/common/inject-promo.ts @@ -0,0 +1,35 @@ +import rndstr from 'rndstr'; +import { Note } from '../../../models/entities/note'; +import { User } from '../../../models/entities/user'; +import { PromoReads, PromoNotes, Notes, Users } from '../../../models'; +import { ensure } from '../../../prelude/ensure'; + +export async function injectPromo(timeline: Note[], user?: User | null) { + if (timeline.length < 5) return; + + // TODO: readやexpireフィルタはクエリ側でやる + + const reads = user ? await PromoReads.find({ + userId: user.id + }) : []; + + let promos = await PromoNotes.find(); + + promos = promos.filter(n => n.expiresAt.getTime() > Date.now()); + promos = promos.filter(n => !reads.map(r => r.noteId).includes(n.noteId)); + + if (promos.length === 0) return; + + // Pick random promo + const promo = promos[Math.floor(Math.random() * promos.length)]; + + const note = await Notes.findOne(promo.noteId).then(ensure); + + // Join + note.user = await Users.findOne(note.userId).then(ensure); + + (note as any)._prId_ = rndstr('a-z0-9', 8); + + // Inject promo + timeline.splice(3, 0, note); +} diff --git a/packages/backend/src/server/api/common/is-native-token.ts b/src/server/api/common/is-native-token.ts similarity index 100% rename from packages/backend/src/server/api/common/is-native-token.ts rename to src/server/api/common/is-native-token.ts diff --git a/packages/backend/src/server/api/common/make-pagination-query.ts b/src/server/api/common/make-pagination-query.ts similarity index 100% rename from packages/backend/src/server/api/common/make-pagination-query.ts rename to src/server/api/common/make-pagination-query.ts diff --git a/src/server/api/common/read-messaging-message.ts b/src/server/api/common/read-messaging-message.ts new file mode 100644 index 000000000..90510bb39 --- /dev/null +++ b/src/server/api/common/read-messaging-message.ts @@ -0,0 +1,122 @@ +import { publishMainStream, publishGroupMessagingStream } from '../../../services/stream'; +import { publishMessagingStream } from '../../../services/stream'; +import { publishMessagingIndexStream } from '../../../services/stream'; +import { User, ILocalUser, IRemoteUser } from '../../../models/entities/user'; +import { MessagingMessage } from '../../../models/entities/messaging-message'; +import { MessagingMessages, UserGroupJoinings, Users } from '../../../models'; +import { In } from 'typeorm'; +import { IdentifiableError } from '../../../misc/identifiable-error'; +import { UserGroup } from '../../../models/entities/user-group'; +import { toArray } from '../../../prelude/array'; +import { renderReadActivity } from '../../../remote/activitypub/renderer/read'; +import { renderActivity } from '../../../remote/activitypub/renderer'; +import { deliver } from '../../../queue'; +import orderedCollection from '../../../remote/activitypub/renderer/ordered-collection'; + +/** + * Mark messages as read + */ +export async function readUserMessagingMessage( + userId: User['id'], + otherpartyId: User['id'], + messageIds: MessagingMessage['id'][] +) { + if (messageIds.length === 0) return; + + const messages = await MessagingMessages.find({ + id: In(messageIds) + }); + + for (const message of messages) { + if (message.recipientId !== userId) { + throw new IdentifiableError('e140a4bf-49ce-4fb6-b67c-b78dadf6b52f', 'Access denied (user).'); + } + } + + // Update documents + await MessagingMessages.update({ + id: In(messageIds), + userId: otherpartyId, + recipientId: userId, + isRead: false + }, { + isRead: true + }); + + // Publish event + publishMessagingStream(otherpartyId, userId, 'read', messageIds); + publishMessagingIndexStream(userId, 'read', messageIds); + + if (!await Users.getHasUnreadMessagingMessage(userId)) { + // 全ての(いままで未読だった)自分宛てのメッセージを(これで)読みましたよというイベントを発行 + publishMainStream(userId, 'readAllMessagingMessages'); + } +} + +/** + * Mark messages as read + */ +export async function readGroupMessagingMessage( + userId: User['id'], + groupId: UserGroup['id'], + messageIds: MessagingMessage['id'][] +) { + if (messageIds.length === 0) return; + + // check joined + const joining = await UserGroupJoinings.findOne({ + userId: userId, + userGroupId: groupId + }); + + if (joining == null) { + throw new IdentifiableError('930a270c-714a-46b2-b776-ad27276dc569', 'Access denied (group).'); + } + + const messages = await MessagingMessages.find({ + id: In(messageIds) + }); + + const reads = []; + + for (const message of messages) { + if (message.userId === userId) continue; + if (message.reads.includes(userId)) continue; + + // Update document + await MessagingMessages.createQueryBuilder().update() + .set({ + reads: (() => `array_append("reads", '${joining.userId}')`) as any + }) + .where('id = :id', { id: message.id }) + .execute(); + + reads.push(message.id); + } + + // Publish event + publishGroupMessagingStream(groupId, 'read', { + ids: reads, + userId: userId + }); + publishMessagingIndexStream(userId, 'read', reads); + + if (!await Users.getHasUnreadMessagingMessage(userId)) { + // 全ての(いままで未読だった)自分宛てのメッセージを(これで)読みましたよというイベントを発行 + publishMainStream(userId, 'readAllMessagingMessages'); + } +} + +export async function deliverReadActivity(user: ILocalUser, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { + messages = toArray(messages).filter(x => x.uri); + const contents = messages.map(x => renderReadActivity(user, x)); + + if (contents.length > 1) { + const collection = orderedCollection(null, contents.length, undefined, undefined, contents); + deliver(user, renderActivity(collection), recipient.inbox); + } else { + for (const content of contents) { + deliver(user, renderActivity(content), recipient.inbox); + } + } +} diff --git a/src/server/api/common/read-notification.ts b/src/server/api/common/read-notification.ts new file mode 100644 index 000000000..f686446c5 --- /dev/null +++ b/src/server/api/common/read-notification.ts @@ -0,0 +1,26 @@ +import { publishMainStream } from '../../../services/stream'; +import { User } from '../../../models/entities/user'; +import { Notification } from '../../../models/entities/notification'; +import { Notifications, Users } from '../../../models'; +import { In } from 'typeorm'; + +/** + * Mark notifications as read + */ +export async function readNotification( + userId: User['id'], + notificationIds: Notification['id'][] +) { + // Update documents + await Notifications.update({ + id: In(notificationIds), + isRead: false + }, { + isRead: true + }); + + if (!await Users.getHasUnreadNotification(userId)) { + // 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行 + publishMainStream(userId, 'readAllNotifications'); + } +} diff --git a/src/server/api/common/signin.ts b/src/server/api/common/signin.ts new file mode 100644 index 000000000..50f79f191 --- /dev/null +++ b/src/server/api/common/signin.ts @@ -0,0 +1,44 @@ +import * as Koa from 'koa'; + +import config from '../../../config'; +import { ILocalUser } from '../../../models/entities/user'; +import { Signins } from '../../../models'; +import { genId } from '../../../misc/gen-id'; +import { publishMainStream } from '../../../services/stream'; + +export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { + if (redirect) { + //#region Cookie + ctx.cookies.set('igi', user.token, { + path: '/', + // SEE: https://github.com/koajs/koa/issues/974 + // When using a SSL proxy it should be configured to add the "X-Forwarded-Proto: https" header + secure: config.url.startsWith('https'), + httpOnly: false + }); + //#endregion + + ctx.redirect(config.url); + } else { + ctx.body = { + id: user.id, + i: user.token + }; + ctx.status = 200; + } + + (async () => { + // Append signin history + const record = await Signins.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + ip: ctx.ip, + headers: ctx.headers, + success: true + }); + + // Publish signin event + publishMainStream(user.id, 'signin', await Signins.pack(record)); + })(); +} diff --git a/src/server/api/common/signup.ts b/src/server/api/common/signup.ts new file mode 100644 index 000000000..26a9d03e0 --- /dev/null +++ b/src/server/api/common/signup.ts @@ -0,0 +1,103 @@ +import * as bcrypt from 'bcryptjs'; +import { generateKeyPair } from 'crypto'; +import generateUserToken from './generate-native-user-token'; +import { User } from '../../../models/entities/user'; +import { Users, UsedUsernames } from '../../../models'; +import { UserProfile } from '../../../models/entities/user-profile'; +import { getConnection } from 'typeorm'; +import { genId } from '../../../misc/gen-id'; +import { toPunyNullable } from '../../../misc/convert-host'; +import { UserKeypair } from '../../../models/entities/user-keypair'; +import { usersChart } from '../../../services/chart'; +import { UsedUsername } from '../../../models/entities/used-username'; + +export async function signup(username: User['username'], password: UserProfile['password'], host: string | null = null) { + // Validate username + if (!Users.validateLocalUsername.ok(username)) { + throw new Error('INVALID_USERNAME'); + } + + // Validate password + if (!Users.validatePassword.ok(password)) { + throw new Error('INVALID_PASSWORD'); + } + + // Generate hash of password + const salt = await bcrypt.genSalt(8); + const hash = await bcrypt.hash(password, salt); + + // Generate secret + const secret = generateUserToken(); + + // Check username duplication + if (await Users.findOne({ usernameLower: username.toLowerCase(), host: null })) { + throw new Error('DUPLICATED_USERNAME'); + } + + // Check deleted username duplication + if (await UsedUsernames.findOne({ username: username.toLowerCase() })) { + throw new Error('USED_USERNAME'); + } + + const keyPair = await new Promise((res, rej) => + generateKeyPair('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: undefined, + passphrase: undefined + } + } as any, (err, publicKey, privateKey) => + err ? rej(err) : res([publicKey, privateKey]) + )); + + let account!: User; + + // Start transaction + await getConnection().transaction(async transactionalEntityManager => { + const exist = await transactionalEntityManager.findOne(User, { + usernameLower: username.toLowerCase(), + host: null + }); + + if (exist) throw new Error(' the username is already used'); + + account = await transactionalEntityManager.save(new User({ + id: genId(), + createdAt: new Date(), + username: username, + usernameLower: username.toLowerCase(), + host: toPunyNullable(host), + token: secret, + isAdmin: (await Users.count({ + host: null, + })) === 0, + })); + + await transactionalEntityManager.save(new UserKeypair({ + publicKey: keyPair[0], + privateKey: keyPair[1], + userId: account.id + })); + + await transactionalEntityManager.save(new UserProfile({ + userId: account.id, + autoAcceptFollowed: true, + password: hash, + })); + + await transactionalEntityManager.save(new UsedUsername({ + createdAt: new Date(), + username: username.toLowerCase(), + })); + }); + + usersChart.update(account, true); + + return { account, secret }; +} diff --git a/src/server/api/define.ts b/src/server/api/define.ts new file mode 100644 index 000000000..1c7ee2647 --- /dev/null +++ b/src/server/api/define.ts @@ -0,0 +1,72 @@ +import * as fs from 'fs'; +import { ILocalUser } from '../../models/entities/user'; +import { IEndpointMeta } from './endpoints'; +import { ApiError } from './error'; +import { SchemaType } from '../../misc/schema'; +import { AccessToken } from '../../models/entities/access-token'; + +// TODO: defaultが設定されている場合はその型も考慮する +type Params = { + [P in keyof T['params']]: NonNullable[P]['transform'] extends Function + ? ReturnType[P]['transform']> + : ReturnType[P]['validator']['get']>[0]; +}; + +export type Response = Record | void; + +type executor = + (params: Params, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any, cleanup?: Function) => + Promise>>; + +export default function (meta: T, cb: executor) + : (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => Promise { + return (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => { + function cleanup() { + fs.unlink(file.path, () => {}); + } + + if (meta.requireFile && file == null) return Promise.reject(new ApiError({ + message: 'File required.', + code: 'FILE_REQUIRED', + id: '4267801e-70d1-416a-b011-4ee502885d8b', + })); + + const [ps, pserr] = getParams(meta, params); + if (pserr) { + if (file) cleanup(); + return Promise.reject(pserr); + } + + return cb(ps, user, token, file, cleanup); + }; +} + +function getParams(defs: T, params: any): [Params, ApiError | null] { + if (defs.params == null) return [params, null]; + + const x: any = {}; + let err: ApiError | null = null; + Object.entries(defs.params).some(([k, def]) => { + const [v, e] = def.validator.get(params[k]); + if (e) { + err = new ApiError({ + message: 'Invalid param.', + code: 'INVALID_PARAM', + id: '3d81ceae-475f-4600-b2a8-2bc116157532', + }, { + param: k, + reason: e.message + }); + return true; + } else { + if (v === undefined && def.hasOwnProperty('default')) { + x[k] = def.default; + } else { + x[k] = v; + } + if (def.transform) x[k] = def.transform(x[k]); + return false; + } + }); + return [x, err]; +} diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts new file mode 100644 index 000000000..1a8fca6df --- /dev/null +++ b/src/server/api/endpoints.ts @@ -0,0 +1,121 @@ +import { Context } from 'cafy'; +import * as path from 'path'; +import * as glob from 'glob'; +import { Schema } from '../../misc/schema'; + +export type Param = { + validator: Context; + transform?: any; + default?: any; + deprecated?: boolean; + desc?: { [key: string]: string }; + ref?: string; +}; + +export interface IEndpointMeta { + stability?: string; //'deprecated' | 'experimental' | 'stable'; + + desc?: { [key: string]: string }; + + tags?: string[]; + + params?: { + [key: string]: Param; + }; + + errors?: { + [key: string]: { + message: string; + code: string; + id: string; + }; + }; + + res?: Schema; + + /** + * このエンドポイントにリクエストするのにユーザー情報が必須か否か + * 省略した場合は false として解釈されます。 + */ + requireCredential?: boolean; + + /** + * 管理者のみ使えるエンドポイントか否か + */ + requireAdmin?: boolean; + + /** + * 管理者またはモデレーターのみ使えるエンドポイントか否か + */ + requireModerator?: boolean; + + /** + * エンドポイントのリミテーションに関するやつ + * 省略した場合はリミテーションは無いものとして解釈されます。 + * また、withCredential が false の場合はリミテーションを行うことはできません。 + */ + limit?: { + + /** + * 複数のエンドポイントでリミットを共有したい場合に指定するキー + */ + key?: string; + + /** + * リミットを適用する期間(ms) + * このプロパティを設定する場合、max プロパティも設定する必要があります。 + */ + duration?: number; + + /** + * durationで指定した期間内にいくつまでリクエストできるのか + * このプロパティを設定する場合、duration プロパティも設定する必要があります。 + */ + max?: number; + + /** + * 最低でもどれくらいの間隔を開けてリクエストしなければならないか(ms) + */ + minInterval?: number; + }; + + /** + * ファイルの添付を必要とするか否か + * 省略した場合は false として解釈されます。 + */ + requireFile?: boolean; + + /** + * サードパーティアプリからはリクエストすることができないか否か + * 省略した場合は false として解釈されます。 + */ + secure?: boolean; + + /** + * エンドポイントの種類 + * パーミッションの実現に利用されます。 + */ + kind?: string; +} + +export interface IEndpoint { + name: string; + exec: any; + meta: IEndpointMeta; +} + +const files = glob.sync('**/*.js', { + cwd: path.resolve(__dirname + '/endpoints/') +}); + +const endpoints: IEndpoint[] = files.map(f => { + const ep = require(`./endpoints/${f}`); + + return { + name: f.replace('.js', ''), + exec: ep.default, + meta: ep.meta || {} + }; +}); + +export default endpoints; diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts new file mode 100644 index 000000000..6a7f380e1 --- /dev/null +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -0,0 +1,73 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { AbuseUserReports } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + state: { + validator: $.optional.nullable.str, + default: null, + }, + + reporterOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, + + targetUserOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, + } +}; + +export default define(meta, async (ps) => { + const query = makePaginationQuery(AbuseUserReports.createQueryBuilder('report'), ps.sinceId, ps.untilId); + + switch (ps.state) { + case 'resolved': query.andWhere('report.resolved = TRUE'); break; + case 'unresolved': query.andWhere('report.resolved = FALSE'); break; + } + + switch (ps.reporterOrigin) { + case 'local': query.andWhere('report.reporterHost IS NULL'); break; + case 'remote': query.andWhere('report.reporterHost IS NOT NULL'); break; + } + + switch (ps.targetUserOrigin) { + case 'local': query.andWhere('report.targetUserHost IS NULL'); break; + case 'remote': query.andWhere('report.targetUserHost IS NOT NULL'); break; + } + + const reports = await query.take(ps.limit!).getMany(); + + return await AbuseUserReports.packMany(reports); +}); diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/src/server/api/endpoints/admin/accounts/create.ts new file mode 100644 index 000000000..98e5642be --- /dev/null +++ b/src/server/api/endpoints/admin/accounts/create.ts @@ -0,0 +1,35 @@ +import define from '../../../define'; +import { Users } from '../../../../../models'; +import { signup } from '../../../common/signup'; + +export const meta = { + tags: ['admin'], + + params: { + username: { + validator: Users.validateLocalUsername, + }, + + password: { + validator: Users.validatePassword, + } + } +}; + +export default define(meta, async (ps, me) => { + const noUsers = (await Users.count({ + host: null, + })) === 0; + if (!noUsers && !me?.isAdmin) throw new Error('access denied'); + + const { account, secret } = await signup(ps.username, ps.password); + + const res = await Users.pack(account, account, { + detail: true, + includeSecrets: true + }); + + (res as any).token = secret; + + return res; +}); diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/src/server/api/endpoints/admin/announcements/create.ts new file mode 100644 index 000000000..f9fb30f49 --- /dev/null +++ b/src/server/api/endpoints/admin/announcements/create.ts @@ -0,0 +1,36 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Announcements } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + title: { + validator: $.str.min(1) + }, + text: { + validator: $.str.min(1) + }, + imageUrl: { + validator: $.nullable.str.min(1) + } + } +}; + +export default define(meta, async (ps) => { + const announcement = await Announcements.save({ + id: genId(), + createdAt: new Date(), + updatedAt: null, + title: ps.title, + text: ps.text, + imageUrl: ps.imageUrl, + }); + + return announcement; +}); diff --git a/src/server/api/endpoints/admin/announcements/delete.ts b/src/server/api/endpoints/admin/announcements/delete.ts new file mode 100644 index 000000000..1b7a0bf92 --- /dev/null +++ b/src/server/api/endpoints/admin/announcements/delete.ts @@ -0,0 +1,34 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { Announcements } from '../../../../../models'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + id: { + validator: $.type(ID) + } + }, + + errors: { + noSuchAnnouncement: { + message: 'No such announcement.', + code: 'NO_SUCH_ANNOUNCEMENT', + id: 'ecad8040-a276-4e85-bda9-015a708d291e' + } + } +}; + +export default define(meta, async (ps, me) => { + const announcement = await Announcements.findOne(ps.id); + + if (announcement == null) throw new ApiError(meta.errors.noSuchAnnouncement); + + await Announcements.delete(announcement.id); +}); diff --git a/src/server/api/endpoints/admin/announcements/list.ts b/src/server/api/endpoints/admin/announcements/list.ts new file mode 100644 index 000000000..4c3af5a31 --- /dev/null +++ b/src/server/api/endpoints/admin/announcements/list.ts @@ -0,0 +1,41 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { Announcements, AnnouncementReads } from '../../../../../models'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps) => { + const query = makePaginationQuery(Announcements.createQueryBuilder('announcement'), ps.sinceId, ps.untilId); + + const announcements = await query.take(ps.limit!).getMany(); + + for (const announcement of announcements) { + (announcement as any).reads = await AnnouncementReads.count({ + announcementId: announcement.id + }); + } + + return announcements; +}); diff --git a/src/server/api/endpoints/admin/announcements/update.ts b/src/server/api/endpoints/admin/announcements/update.ts new file mode 100644 index 000000000..fd24f8cc8 --- /dev/null +++ b/src/server/api/endpoints/admin/announcements/update.ts @@ -0,0 +1,48 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { Announcements } from '../../../../../models'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + id: { + validator: $.type(ID) + }, + title: { + validator: $.str.min(1) + }, + text: { + validator: $.str.min(1) + }, + imageUrl: { + validator: $.nullable.str.min(1) + } + }, + + errors: { + noSuchAnnouncement: { + message: 'No such announcement.', + code: 'NO_SUCH_ANNOUNCEMENT', + id: 'd3aae5a7-6372-4cb4-b61c-f511ffc2d7cc' + } + } +}; + +export default define(meta, async (ps, me) => { + const announcement = await Announcements.findOne(ps.id); + + if (announcement == null) throw new ApiError(meta.errors.noSuchAnnouncement); + + await Announcements.update(announcement.id, { + updatedAt: new Date(), + title: ps.title, + text: ps.text, + imageUrl: ps.imageUrl, + }); +}); diff --git a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts new file mode 100644 index 000000000..83397f107 --- /dev/null +++ b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts @@ -0,0 +1,32 @@ +import $ from 'cafy'; +import define from '../../define'; +import { deleteFile } from '../../../../services/drive/delete-file'; +import { DriveFiles } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to suspend' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const files = await DriveFiles.find({ + userId: ps.userId + }); + + for (const file of files) { + deleteFile(file); + } +}); diff --git a/src/server/api/endpoints/admin/delete-logs.ts b/src/server/api/endpoints/admin/delete-logs.ts new file mode 100644 index 000000000..9cb9f809d --- /dev/null +++ b/src/server/api/endpoints/admin/delete-logs.ts @@ -0,0 +1,13 @@ +import define from '../../define'; +import { Logs } from '../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, +}; + +export default define(meta, async (ps) => { + await Logs.delete({}); +}); diff --git a/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/src/server/api/endpoints/admin/drive/clean-remote-files.ts new file mode 100644 index 000000000..5a5adb8a8 --- /dev/null +++ b/src/server/api/endpoints/admin/drive/clean-remote-files.ts @@ -0,0 +1,13 @@ +import define from '../../../define'; +import { createCleanRemoteFilesJob } from '../../../../../queue'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, +}; + +export default define(meta, async (ps, me) => { + createCleanRemoteFilesJob(); +}); diff --git a/src/server/api/endpoints/admin/drive/cleanup.ts b/src/server/api/endpoints/admin/drive/cleanup.ts new file mode 100644 index 000000000..b76236a7f --- /dev/null +++ b/src/server/api/endpoints/admin/drive/cleanup.ts @@ -0,0 +1,21 @@ +import { IsNull } from 'typeorm'; +import define from '../../../define'; +import { deleteFile } from '../../../../../services/drive/delete-file'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, +}; + +export default define(meta, async (ps, me) => { + const files = await DriveFiles.find({ + userId: IsNull() + }); + + for (const file of files) { + deleteFile(file); + } +}); diff --git a/src/server/api/endpoints/admin/drive/files.ts b/src/server/api/endpoints/admin/drive/files.ts new file mode 100644 index 000000000..f6296b894 --- /dev/null +++ b/src/server/api/endpoints/admin/drive/files.ts @@ -0,0 +1,71 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { DriveFiles } from '../../../../../models'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { ID } from '../../../../../misc/cafy-id'; + +export const meta = { + tags: ['admin'], + + requireCredential: false as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + type: { + validator: $.optional.nullable.str.match(/^[a-zA-Z\/\-*]+$/) + }, + + origin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'local' + }, + + hostname: { + validator: $.optional.nullable.str, + default: null + }, + } +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId); + + if (ps.origin === 'local') { + query.andWhere('file.userHost IS NULL'); + } else if (ps.origin === 'remote') { + query.andWhere('file.userHost IS NOT NULL'); + } + + if (ps.hostname) { + query.andWhere('file.userHost = :hostname', { hostname: ps.hostname }); + } + + if (ps.type) { + if (ps.type.endsWith('/*')) { + query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); + } else { + query.andWhere('file.type = :type', { type: ps.type }); + } + } + + const files = await query.take(ps.limit!).getMany(); + + return await DriveFiles.packMany(files, { detail: true, withUser: true, self: true }); +}); diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/src/server/api/endpoints/admin/drive/show-file.ts new file mode 100644 index 000000000..36403bb1c --- /dev/null +++ b/src/server/api/endpoints/admin/drive/show-file.ts @@ -0,0 +1,48 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + fileId: { + validator: $.optional.type(ID), + }, + + url: { + validator: $.optional.str, + }, + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'caf3ca38-c6e5-472e-a30c-b05377dcc240' + } + } +}; + +export default define(meta, async (ps, me) => { + const file = ps.fileId ? await DriveFiles.findOne(ps.fileId) : await DriveFiles.findOne({ + where: [{ + url: ps.url + }, { + thumbnailUrl: ps.url + }, { + webpublicUrl: ps.url + }] + }); + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + + return file; +}); diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts new file mode 100644 index 000000000..77e29cfb2 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -0,0 +1,68 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Emojis, DriveFiles } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; +import { getConnection } from 'typeorm'; +import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { ApiError } from '../../../error'; +import { ID } from '../../../../../misc/cafy-id'; +import rndstr from 'rndstr'; +import { publishBroadcastStream } from '../../../../../services/stream'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を追加します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + fileId: { + validator: $.type(ID) + }, + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'MO_SUCH_FILE', + id: 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf' + } + } +}; + +export default define(meta, async (ps, me) => { + const file = await DriveFiles.findOne(ps.fileId); + + if (file == null) throw new ApiError(meta.errors.noSuchFile); + + const name = file.name.split('.')[0].match(/^[a-z0-9_]+$/) ? file.name.split('.')[0] : `_${rndstr('a-z0-9', 8)}_`; + + const emoji = await Emojis.save({ + id: genId(), + updatedAt: new Date(), + name: name, + category: null, + host: null, + aliases: [], + url: file.url, + type: file.type, + }); + + await getConnection().queryResultCache!.remove(['meta_emojis']); + + publishBroadcastStream('emojiAdded', { + emoji: await Emojis.pack(emoji.id) + }); + + insertModerationLog(me, 'addEmoji', { + emojiId: emoji.id + }); + + return { + id: emoji.id + }; +}); diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts new file mode 100644 index 000000000..5d4e57a28 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/copy.ts @@ -0,0 +1,64 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Emojis } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; +import { getConnection } from 'typeorm'; +import { ApiError } from '../../../error'; +import { DriveFile } from '../../../../../models/entities/drive-file'; +import { ID } from '../../../../../misc/cafy-id'; +import uploadFromUrl from '../../../../../services/drive/upload-from-url'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + emojiId: { + validator: $.type(ID) + }, + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: 'e2785b66-dca3-4087-9cac-b93c541cc425' + } + } +}; + +export default define(meta, async (ps, me) => { + const emoji = await Emojis.findOne(ps.emojiId); + + if (emoji == null) { + throw new ApiError(meta.errors.noSuchEmoji); + } + + let driveFile: DriveFile; + + try { + // Create file + driveFile = await uploadFromUrl(emoji.url, null, null, null, false, true); + } catch (e) { + throw new ApiError(); + } + + const copied = await Emojis.save({ + id: genId(), + updatedAt: new Date(), + name: emoji.name, + host: null, + aliases: [], + url: driveFile.url, + type: driveFile.type, + fileId: driveFile.id, + }); + + await getConnection().queryResultCache!.remove(['meta_emojis']); + + return { + id: copied.id + }; +}); diff --git a/src/server/api/endpoints/admin/emoji/list-remote.ts b/src/server/api/endpoints/admin/emoji/list-remote.ts new file mode 100644 index 000000000..cbdcaa681 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -0,0 +1,63 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Emojis } from '../../../../../models'; +import { toPuny } from '../../../../../misc/convert-host'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { ID } from '../../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を取得します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + query: { + validator: $.optional.nullable.str, + default: null as any + }, + + host: { + validator: $.optional.nullable.str, + default: null as any + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + } + } +}; + +export default define(meta, async (ps) => { + const q = makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId); + + if (ps.host == null) { + q.andWhere(`emoji.host IS NOT NULL`); + } else { + q.andWhere(`emoji.host = :host`, { host: toPuny(ps.host) }); + } + + if (ps.query) { + q.andWhere('emoji.name like :query', { query: '%' + ps.query + '%' }); + } + + const emojis = await q + .orderBy('emoji.id', 'DESC') + .take(ps.limit!) + .getMany(); + + return Emojis.packMany(emojis); +}); diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts new file mode 100644 index 000000000..bd3e29485 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -0,0 +1,62 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Emojis } from '../../../../../models'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { ID } from '../../../../../misc/cafy-id'; +import { Emoji } from '../../../../../models/entities/emoji'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を取得します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + query: { + validator: $.optional.nullable.str, + default: null as any + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + } + } +}; + +export default define(meta, async (ps) => { + const q = makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId) + .andWhere(`emoji.host IS NULL`); + + let emojis: Emoji[]; + + if (ps.query) { + //q.andWhere('emoji.name ILIKE :q', { q: `%${ps.query}%` }); + //const emojis = await q.take(ps.limit!).getMany(); + + emojis = await q.getMany(); + + emojis = emojis.filter(emoji => + emoji.name.includes(ps.query) || + emoji.aliases.some(a => a.includes(ps.query)) || + emoji.category?.includes(ps.query)); + + emojis.splice(ps.limit! + 1); + } else { + emojis = await q.take(ps.limit!).getMany(); + } + + return Emojis.packMany(emojis); +}); diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts new file mode 100644 index 000000000..19ffa1c16 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { Emojis } from '../../../../../models'; +import { getConnection } from 'typeorm'; +import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を削除します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + id: { + validator: $.type(ID) + } + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2' + } + } +}; + +export default define(meta, async (ps, me) => { + const emoji = await Emojis.findOne(ps.id); + + if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); + + await Emojis.delete(emoji.id); + + await getConnection().queryResultCache!.remove(['meta_emojis']); + + insertModerationLog(me, 'removeEmoji', { + emoji: emoji + }); +}); diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts new file mode 100644 index 000000000..2493b62c2 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -0,0 +1,58 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { Emojis } from '../../../../../models'; +import { getConnection } from 'typeorm'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を更新します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + id: { + validator: $.type(ID) + }, + + name: { + validator: $.str + }, + + category: { + validator: $.optional.nullable.str + }, + + aliases: { + validator: $.arr($.str) + } + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: '684dec9d-a8c2-4364-9aa8-456c49cb1dc8' + } + } +}; + +export default define(meta, async (ps) => { + const emoji = await Emojis.findOne(ps.id); + + if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); + + await Emojis.update(emoji.id, { + updatedAt: new Date(), + name: ps.name, + category: ps.category, + aliases: ps.aliases, + }); + + await getConnection().queryResultCache!.remove(['meta_emojis']); +}); diff --git a/src/server/api/endpoints/admin/federation/delete-all-files.ts b/src/server/api/endpoints/admin/federation/delete-all-files.ts new file mode 100644 index 000000000..eef53cd92 --- /dev/null +++ b/src/server/api/endpoints/admin/federation/delete-all-files.ts @@ -0,0 +1,27 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { deleteFile } from '../../../../../services/drive/delete-file'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + host: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, me) => { + const files = await DriveFiles.find({ + userHost: ps.host + }); + + for (const file of files) { + deleteFile(file); + } +}); diff --git a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts new file mode 100644 index 000000000..923a5f52c --- /dev/null +++ b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts @@ -0,0 +1,28 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Instances } from '../../../../../models'; +import { toPuny } from '../../../../../misc/convert-host'; +import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + host: { + validator: $.str + }, + } +}; + +export default define(meta, async (ps, me) => { + const instance = await Instances.findOne({ host: toPuny(ps.host) }); + + if (instance == null) { + throw new Error('instance not found'); + } + + fetchInstanceMetadata(instance, true); +}); diff --git a/src/server/api/endpoints/admin/federation/remove-all-following.ts b/src/server/api/endpoints/admin/federation/remove-all-following.ts new file mode 100644 index 000000000..76497c0dd --- /dev/null +++ b/src/server/api/endpoints/admin/federation/remove-all-following.ts @@ -0,0 +1,33 @@ +import $ from 'cafy'; +import define from '../../../define'; +import deleteFollowing from '../../../../../services/following/delete'; +import { Followings, Users } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + host: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, me) => { + const followings = await Followings.find({ + followerHost: ps.host + }); + + const pairs = await Promise.all(followings.map(f => Promise.all([ + Users.findOne(f.followerId).then(ensure), + Users.findOne(f.followeeId).then(ensure) + ]))); + + for (const pair of pairs) { + deleteFollowing(pair[0], pair[1]); + } +}); diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/src/server/api/endpoints/admin/federation/update-instance.ts new file mode 100644 index 000000000..8f8b3334b --- /dev/null +++ b/src/server/api/endpoints/admin/federation/update-instance.ts @@ -0,0 +1,33 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Instances } from '../../../../../models'; +import { toPuny } from '../../../../../misc/convert-host'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + host: { + validator: $.str + }, + + isSuspended: { + validator: $.bool + }, + } +}; + +export default define(meta, async (ps, me) => { + const instance = await Instances.findOne({ host: toPuny(ps.host) }); + + if (instance == null) { + throw new Error('instance not found'); + } + + Instances.update({ host: toPuny(ps.host) }, { + isSuspended: ps.isSuspended + }); +}); diff --git a/src/server/api/endpoints/admin/get-table-stats.ts b/src/server/api/endpoints/admin/get-table-stats.ts new file mode 100644 index 000000000..eb9f26fc0 --- /dev/null +++ b/src/server/api/endpoints/admin/get-table-stats.ts @@ -0,0 +1,38 @@ +import define from '../../define'; +import { getConnection } from 'typeorm'; + +export const meta = { + requireCredential: true as const, + requireModerator: true, + + desc: { + 'en-US': 'Get table stats' + }, + + tags: ['admin'], + + params: { + }, +}; + +export default define(meta, async () => { + const sizes = await + getConnection().query(` + SELECT relname AS "table", reltuples as "count", pg_total_relation_size(C.oid) AS "size" + FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) + WHERE nspname NOT IN ('pg_catalog', 'information_schema') + AND C.relkind <> 'i' + AND nspname !~ '^pg_toast';`) + .then(recs => { + const res = {} as Record; + for (const rec of recs) { + res[rec.table] = { + count: parseInt(rec.count, 10), + size: parseInt(rec.size, 10), + }; + } + return res; + }); + + return sizes; +}); diff --git a/src/server/api/endpoints/admin/invite.ts b/src/server/api/endpoints/admin/invite.ts new file mode 100644 index 000000000..52e3da8f8 --- /dev/null +++ b/src/server/api/endpoints/admin/invite.ts @@ -0,0 +1,34 @@ +import rndstr from 'rndstr'; +import define from '../../define'; +import { RegistrationTickets } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; + +export const meta = { + desc: { + 'ja-JP': '招待コードを発行します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: {} +}; + +export default define(meta, async () => { + const code = rndstr({ + length: 8, + chars: '2-9A-HJ-NP-Z', // [0-9A-Z] w/o [01IO] (32 patterns) + }); + + await RegistrationTickets.save({ + id: genId(), + createdAt: new Date(), + code, + }); + + return { + code, + }; +}); diff --git a/src/server/api/endpoints/admin/logs.ts b/src/server/api/endpoints/admin/logs.ts new file mode 100644 index 000000000..fef2eab80 --- /dev/null +++ b/src/server/api/endpoints/admin/logs.ts @@ -0,0 +1,76 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Logs } from '../../../../models'; +import { Brackets } from 'typeorm'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 30 + }, + + level: { + validator: $.optional.nullable.str, + default: null as any + }, + + domain: { + validator: $.optional.nullable.str, + default: null as any + } + } +}; + +export default define(meta, async (ps) => { + const query = Logs.createQueryBuilder('log'); + + if (ps.level) query.andWhere('log.level = :level', { level: ps.level }); + + if (ps.domain) { + const whiteDomains = ps.domain.split(' ').filter(x => !x.startsWith('-')); + const blackDomains = ps.domain.split(' ').filter(x => x.startsWith('-')).map(x => x.substr(1)); + + if (whiteDomains.length > 0) { + query.andWhere(new Brackets(qb => { + for (const whiteDomain of whiteDomains) { + let i = 0; + for (const subDomain of whiteDomain.split('.')) { + const p = `whiteSubDomain_${subDomain}_${i}`; + // SQL is 1 based, so we need '+ 1' + qb.orWhere(`log.domain[${i + 1}] = :${p}`, { [p]: subDomain }); + i++; + } + } + })); + } + + if (blackDomains.length > 0) { + query.andWhere(new Brackets(qb => { + for (const blackDomain of blackDomains) { + qb.andWhere(new Brackets(qb => { + const subDomains = blackDomain.split('.'); + let i = 0; + for (const subDomain of subDomains) { + const p = `blackSubDomain_${subDomain}_${i}`; + // 全体で否定できないのでド・モルガンの法則で + // !(P && Q) を !P || !Q で表す + // SQL is 1 based, so we need '+ 1' + qb.orWhere(`log.domain[${i + 1}] != :${p}`, { [p]: subDomain }); + i++; + } + })); + } + })); + } + } + + const logs = await query.orderBy('log.createdAt', 'DESC').take(ps.limit!).getMany(); + + return logs; +}); diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/src/server/api/endpoints/admin/moderators/add.ts new file mode 100644 index 000000000..fd862a9a4 --- /dev/null +++ b/src/server/api/endpoints/admin/moderators/add.ts @@ -0,0 +1,42 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { Users } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーをモデレーターにします。', + 'en-US': 'Mark a user as moderator.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireAdmin: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID' + } + }, + } +}; + +export default define(meta, async (ps) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + if (user.isAdmin) { + throw new Error('cannot mark as moderator if admin user'); + } + + await Users.update(user.id, { + isModerator: true + }); +}); diff --git a/src/server/api/endpoints/admin/moderators/remove.ts b/src/server/api/endpoints/admin/moderators/remove.ts new file mode 100644 index 000000000..1eee750bc --- /dev/null +++ b/src/server/api/endpoints/admin/moderators/remove.ts @@ -0,0 +1,38 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { Users } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーをモデレーター解除します。', + 'en-US': 'Unmark a user as moderator.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireAdmin: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID' + } + }, + } +}; + +export default define(meta, async (ps) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + await Users.update(user.id, { + isModerator: false + }); +}); diff --git a/src/server/api/endpoints/admin/promo/create.ts b/src/server/api/endpoints/admin/promo/create.ts new file mode 100644 index 000000000..e3c03d2f4 --- /dev/null +++ b/src/server/api/endpoints/admin/promo/create.ts @@ -0,0 +1,57 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getNote } from '../../../common/getters'; +import { PromoNotes } from '../../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + noteId: { + validator: $.type(ID), + }, + + expiresAt: { + validator: $.num.int() + }, + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'ee449fbe-af2a-453b-9cae-cf2fe7c895fc' + }, + + alreadyPromoted: { + message: 'The note has already promoted.', + code: 'ALREADY_PROMOTED', + id: 'ae427aa2-7a41-484f-a18c-2c1104051604' + }, + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const exist = await PromoNotes.findOne(note.id); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyPromoted); + } + + await PromoNotes.save({ + noteId: note.id, + createdAt: new Date(), + expiresAt: new Date(ps.expiresAt), + userId: note.userId, + }); +}); diff --git a/src/server/api/endpoints/admin/queue/clear.ts b/src/server/api/endpoints/admin/queue/clear.ts new file mode 100644 index 000000000..0375f55f0 --- /dev/null +++ b/src/server/api/endpoints/admin/queue/clear.ts @@ -0,0 +1,18 @@ +import define from '../../../define'; +import { destroy } from '../../../../../queue'; +import { insertModerationLog } from '../../../../../services/insert-moderation-log'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: {} +}; + +export default define(meta, async (ps, me) => { + destroy(); + + insertModerationLog(me, 'clearQueue'); +}); diff --git a/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/src/server/api/endpoints/admin/queue/deliver-delayed.ts new file mode 100644 index 000000000..6bfb5b50f --- /dev/null +++ b/src/server/api/endpoints/admin/queue/deliver-delayed.ts @@ -0,0 +1,31 @@ +import define from '../../../define'; +import { deliverQueue } from '../../../../../queue'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + } +}; + +export default define(meta, async (ps) => { + const jobs = await deliverQueue.getJobs(['delayed']); + + const res = [] as [string, number][]; + + for (const job of jobs) { + const host = new URL(job.data.to).host; + if (res.find(x => x[0] === host)) { + res.find(x => x[0] === host)![1]++; + } else { + res.push([host, 1]); + } + } + + res.sort((a, b) => b[1] - a[1]); + + return res; +}); diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/src/server/api/endpoints/admin/queue/inbox-delayed.ts new file mode 100644 index 000000000..4627cefdd --- /dev/null +++ b/src/server/api/endpoints/admin/queue/inbox-delayed.ts @@ -0,0 +1,31 @@ +import define from '../../../define'; +import { inboxQueue } from '../../../../../queue'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + } +}; + +export default define(meta, async (ps) => { + const jobs = await inboxQueue.getJobs(['delayed']); + + const res = [] as [string, number][]; + + for (const job of jobs) { + const host = new URL(job.data.signature.keyId).host; + if (res.find(x => x[0] === host)) { + res.find(x => x[0] === host)![1]++; + } else { + res.push([host, 1]); + } + } + + res.sort((a, b) => b[1] - a[1]); + + return res; +}); diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/src/server/api/endpoints/admin/queue/jobs.ts new file mode 100644 index 000000000..0cd3f40d4 --- /dev/null +++ b/src/server/api/endpoints/admin/queue/jobs.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + domain: { + validator: $.str.or(['deliver', 'inbox', 'db', 'objectStorage']), + }, + + state: { + validator: $.str.or(['active', 'waiting', 'delayed']), + }, + + limit: { + validator: $.optional.num, + default: 50 + }, + } +}; + +export default define(meta, async (ps) => { + const queue = + ps.domain === 'deliver' ? deliverQueue : + ps.domain === 'inbox' ? inboxQueue : + ps.domain === 'db' ? dbQueue : + ps.domain === 'objectStorage' ? objectStorageQueue : + null as never; + + const jobs = await queue.getJobs([ps.state], 0, ps.limit!); + + return jobs.map(job => { + const data = job.data; + delete data.content; + delete data.user; + return { + id: job.id, + data, + attempts: job.attemptsMade, + maxAttempts: job.opts ? job.opts.attempts : 0, + timestamp: job.timestamp, + }; + }); +}); diff --git a/src/server/api/endpoints/admin/queue/stats.ts b/src/server/api/endpoints/admin/queue/stats.ts new file mode 100644 index 000000000..da29c5285 --- /dev/null +++ b/src/server/api/endpoints/admin/queue/stats.ts @@ -0,0 +1,25 @@ +import define from '../../../define'; +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: {} +}; + +export default define(meta, async (ps) => { + const deliverJobCounts = await deliverQueue.getJobCounts(); + const inboxJobCounts = await inboxQueue.getJobCounts(); + const dbJobCounts = await dbQueue.getJobCounts(); + const objectStorageJobCounts = await objectStorageQueue.getJobCounts(); + + return { + deliver: deliverJobCounts, + inbox: inboxJobCounts, + db: dbJobCounts, + objectStorage: objectStorageJobCounts, + }; +}); diff --git a/src/server/api/endpoints/admin/relays/add.ts b/src/server/api/endpoints/admin/relays/add.ts new file mode 100644 index 000000000..bcda1050e --- /dev/null +++ b/src/server/api/endpoints/admin/relays/add.ts @@ -0,0 +1,39 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { addRelay } from '../../../../../services/relay'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': 'Add relay' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true as const, + + params: { + inbox: { + validator: $.str + }, + }, + + errors: { + invalidUrl: { + message: 'Invalid URL', + code: 'INVALID_URL', + id: 'fb8c92d3-d4e5-44e7-b3d4-800d5cef8b2c' + }, + } +}; + +export default define(meta, async (ps, user) => { + try { + if (new URL(ps.inbox).protocol !== 'https:') throw 'https only'; + } catch { + throw new ApiError(meta.errors.invalidUrl); + } + + return await addRelay(ps.inbox); +}); diff --git a/src/server/api/endpoints/admin/relays/list.ts b/src/server/api/endpoints/admin/relays/list.ts new file mode 100644 index 000000000..3b132f73b --- /dev/null +++ b/src/server/api/endpoints/admin/relays/list.ts @@ -0,0 +1,20 @@ +import define from '../../../define'; +import { listRelay } from '../../../../../services/relay'; + +export const meta = { + desc: { + 'ja-JP': 'List relay' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true as const, + + params: { + }, +}; + +export default define(meta, async (ps, user) => { + return await listRelay(); +}); diff --git a/src/server/api/endpoints/admin/relays/remove.ts b/src/server/api/endpoints/admin/relays/remove.ts new file mode 100644 index 000000000..df95e0329 --- /dev/null +++ b/src/server/api/endpoints/admin/relays/remove.ts @@ -0,0 +1,24 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { removeRelay } from '../../../../../services/relay'; + +export const meta = { + desc: { + 'ja-JP': 'Remove relay' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true as const, + + params: { + inbox: { + validator: $.str + }, + }, +}; + +export default define(meta, async (ps, user) => { + return await removeRelay(ps.inbox); +}); diff --git a/src/server/api/endpoints/admin/reset-password.ts b/src/server/api/endpoints/admin/reset-password.ts new file mode 100644 index 000000000..1b8a5ee65 --- /dev/null +++ b/src/server/api/endpoints/admin/reset-password.ts @@ -0,0 +1,54 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import * as bcrypt from 'bcryptjs'; +import rndstr from 'rndstr'; +import { Users, UserProfiles } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのパスワードをリセットします。', + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to suspend' + } + }, + } +}; + +export default define(meta, async (ps) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + if (user.isAdmin) { + throw new Error('cannot reset password of admin'); + } + + const passwd = rndstr('a-zA-Z0-9', 8); + + // Generate hash of password + const hash = bcrypt.hashSync(passwd); + + await UserProfiles.update({ + userId: user.id + }, { + password: hash + }); + + return { + password: passwd + }; +}); diff --git a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts new file mode 100644 index 000000000..0a62b5f36 --- /dev/null +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -0,0 +1,30 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { AbuseUserReports } from '../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + reportId: { + validator: $.type(ID), + }, + } +}; + +export default define(meta, async (ps, me) => { + const report = await AbuseUserReports.findOne(ps.reportId); + + if (report == null) { + throw new Error('report not found'); + } + + await AbuseUserReports.update(report.id, { + resolved: true, + assigneeId: me.id, + }); +}); diff --git a/src/server/api/endpoints/admin/resync-chart.ts b/src/server/api/endpoints/admin/resync-chart.ts new file mode 100644 index 000000000..84e19d37e --- /dev/null +++ b/src/server/api/endpoints/admin/resync-chart.ts @@ -0,0 +1,21 @@ +import define from '../../define'; +import { driveChart, notesChart, usersChart, instanceChart } from '../../../../services/chart'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, +}; + +export default define(meta, async (ps, me) => { + insertModerationLog(me, 'chartResync'); + + driveChart.resync(); + notesChart.resync(); + usersChart.resync(); + instanceChart.resync(); + + // TODO: ユーザーごとのチャートもキューに入れて更新する +}); diff --git a/src/server/api/endpoints/admin/send-email.ts b/src/server/api/endpoints/admin/send-email.ts new file mode 100644 index 000000000..9af931ad9 --- /dev/null +++ b/src/server/api/endpoints/admin/send-email.ts @@ -0,0 +1,26 @@ +import $ from 'cafy'; +import define from '../../define'; +import { sendEmail } from '../../../../services/send-email'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + to: { + validator: $.str, + }, + subject: { + validator: $.str, + }, + text: { + validator: $.str, + }, + } +}; + +export default define(meta, async (ps) => { + await sendEmail(ps.to, ps.subject, ps.text); +}); diff --git a/src/server/api/endpoints/admin/server-info.ts b/src/server/api/endpoints/admin/server-info.ts new file mode 100644 index 000000000..de4e93347 --- /dev/null +++ b/src/server/api/endpoints/admin/server-info.ts @@ -0,0 +1,46 @@ +import * as os from 'os'; +import * as si from 'systeminformation'; +import { getConnection } from 'typeorm'; +import define from '../../define'; +import redis from '../../../../db/redis'; + +export const meta = { + requireCredential: true as const, + requireModerator: true, + + desc: { + }, + + tags: ['admin', 'meta'], + + params: { + }, +}; + +export default define(meta, async () => { + const memStats = await si.mem(); + const fsStats = await si.fsSize(); + const netInterface = await si.networkInterfaceDefault(); + + return { + machine: os.hostname(), + os: os.platform(), + node: process.version, + psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), + redis: redis.server_info.redis_version, + cpu: { + model: os.cpus()[0].model, + cores: os.cpus().length + }, + mem: { + total: memStats.total + }, + fs: { + total: fsStats[0].size, + used: fsStats[0].used, + }, + net: { + interface: netInterface + } + }; +}); diff --git a/src/server/api/endpoints/admin/show-moderation-logs.ts b/src/server/api/endpoints/admin/show-moderation-logs.ts new file mode 100644 index 000000000..acdfda51a --- /dev/null +++ b/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -0,0 +1,35 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ModerationLogs } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps) => { + const query = makePaginationQuery(ModerationLogs.createQueryBuilder('report'), ps.sinceId, ps.untilId); + + const reports = await query.take(ps.limit!).getMany(); + + return await ModerationLogs.packMany(reports); +}); diff --git a/src/server/api/endpoints/admin/show-user.ts b/src/server/api/endpoints/admin/show-user.ts new file mode 100644 index 000000000..ea4df141f --- /dev/null +++ b/src/server/api/endpoints/admin/show-user.ts @@ -0,0 +1,42 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーの情報を取得します。', + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to suspend' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + if ((me.isModerator && !me.isAdmin) && user.isAdmin) { + throw new Error('cannot show info of admin'); + } + + return { + ...user, + token: user.token != null ? '' : user.token, + }; +}); diff --git a/src/server/api/endpoints/admin/show-users.ts b/src/server/api/endpoints/admin/show-users.ts new file mode 100644 index 000000000..294d7208b --- /dev/null +++ b/src/server/api/endpoints/admin/show-users.ts @@ -0,0 +1,109 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Users } from '../../../../models'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + }, + + sort: { + validator: $.optional.str.or([ + '+follower', + '-follower', + '+createdAt', + '-createdAt', + '+updatedAt', + '-updatedAt', + ]), + }, + + state: { + validator: $.optional.str.or([ + 'all', + 'available', + 'admin', + 'moderator', + 'adminOrModerator', + 'silenced', + 'suspended', + ]), + default: 'all' + }, + + origin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'local' + }, + + username: { + validator: $.optional.str, + default: null + }, + + hostname: { + validator: $.optional.str, + default: null + } + } +}; + +export default define(meta, async (ps, me) => { + const query = Users.createQueryBuilder('user'); + + switch (ps.state) { + case 'available': query.where('user.isSuspended = FALSE'); break; + case 'admin': query.where('user.isAdmin = TRUE'); break; + case 'moderator': query.where('user.isModerator = TRUE'); break; + case 'adminOrModerator': query.where('user.isAdmin = TRUE OR isModerator = TRUE'); break; + case 'alive': query.where('user.updatedAt > :date', { date: new Date(Date.now() - 1000 * 60 * 60 * 24 * 5) }); break; + case 'silenced': query.where('user.isSilenced = TRUE'); break; + case 'suspended': query.where('user.isSuspended = TRUE'); break; + } + + switch (ps.origin) { + case 'local': query.andWhere('user.host IS NULL'); break; + case 'remote': query.andWhere('user.host IS NOT NULL'); break; + } + + if (ps.username) { + query.andWhere('user.usernameLower like :username', { username: ps.username.toLowerCase() + '%' }); + } + + if (ps.hostname) { + query.andWhere('user.host like :hostname', { hostname: '%' + ps.hostname.toLowerCase() + '%' }); + } + + switch (ps.sort) { + case '+follower': query.orderBy('user.followersCount', 'DESC'); break; + case '-follower': query.orderBy('user.followersCount', 'ASC'); break; + case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; + case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; + case '+updatedAt': query.orderBy('user.updatedAt', 'DESC'); break; + case '-updatedAt': query.orderBy('user.updatedAt', 'ASC'); break; + default: query.orderBy('user.id', 'ASC'); break; + } + + query.take(ps.limit!); + query.skip(ps.offset); + + const users = await query.getMany(); + + return await Users.packMany(users, me, { detail: true }); +}); diff --git a/src/server/api/endpoints/admin/silence-user.ts b/src/server/api/endpoints/admin/silence-user.ts new file mode 100644 index 000000000..cd5c339a5 --- /dev/null +++ b/src/server/api/endpoints/admin/silence-user.ts @@ -0,0 +1,47 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Users } from '../../../../models'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーをサイレンスにします。', + 'en-US': 'Make silence a user.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to make silence' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + if (user.isAdmin) { + throw new Error('cannot silence admin'); + } + + await Users.update(user.id, { + isSilenced: true + }); + + insertModerationLog(me, 'silence', { + targetId: user.id, + }); +}); diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts new file mode 100644 index 000000000..10be88b8f --- /dev/null +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -0,0 +1,87 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import deleteFollowing from '../../../../services/following/delete'; +import { Users, Followings, Notifications } from '../../../../models'; +import { User } from '../../../../models/entities/user'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { doPostSuspend } from '../../../../services/suspend-user'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーを凍結します。', + 'en-US': 'Suspend a user.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to suspend' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + if (user.isAdmin) { + throw new Error('cannot suspend admin'); + } + + if (user.isModerator) { + throw new Error('cannot suspend moderator'); + } + + await Users.update(user.id, { + isSuspended: true + }); + + insertModerationLog(me, 'suspend', { + targetId: user.id, + }); + + (async () => { + await doPostSuspend(user).catch(e => {}); + await unFollowAll(user).catch(e => {}); + await readAllNotify(user).catch(e => {}); + })(); +}); + +async function unFollowAll(follower: User) { + const followings = await Followings.find({ + followerId: follower.id + }); + + for (const following of followings) { + const followee = await Users.findOne({ + id: following.followeeId + }); + + if (followee == null) { + throw `Cant find followee ${following.followeeId}`; + } + + await deleteFollowing(follower, followee, true); + } +} + +async function readAllNotify(notifier: User) { + await Notifications.update({ + notifierId: notifier.id, + isRead: false, + }, { + isRead: true + }); +} diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/src/server/api/endpoints/admin/unsilence-user.ts new file mode 100644 index 000000000..63e4be06f --- /dev/null +++ b/src/server/api/endpoints/admin/unsilence-user.ts @@ -0,0 +1,43 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Users } from '../../../../models'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのサイレンスを解除します。', + 'en-US': 'Unsilence a user.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to unsilence' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + await Users.update(user.id, { + isSilenced: false + }); + + insertModerationLog(me, 'unsilence', { + targetId: user.id, + }); +}); diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/src/server/api/endpoints/admin/unsuspend-user.ts new file mode 100644 index 000000000..9690d6ef0 --- /dev/null +++ b/src/server/api/endpoints/admin/unsuspend-user.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Users } from '../../../../models'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { doPostUnsuspend } from '../../../../services/unsuspend-user'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーの凍結を解除します。', + 'en-US': 'Unsuspend a user.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to unsuspend' + } + }, + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId as string); + + if (user == null) { + throw new Error('user not found'); + } + + await Users.update(user.id, { + isSuspended: false + }); + + insertModerationLog(me, 'unsuspend', { + targetId: user.id, + }); + + doPostUnsuspend(user); +}); diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts new file mode 100644 index 000000000..ae6d2a416 --- /dev/null +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -0,0 +1,707 @@ +import $ from 'cafy'; +import define from '../../define'; +import { getConnection } from 'typeorm'; +import { Meta } from '../../../../models/entities/meta'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../../misc/hard-limits'; +import { ID } from '../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': 'インスタンスの設定を更新します。' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireAdmin: true, + + params: { + disableRegistration: { + validator: $.optional.nullable.bool, + desc: { + 'ja-JP': '招待制か否か' + } + }, + + disableLocalTimeline: { + validator: $.optional.nullable.bool, + desc: { + 'ja-JP': 'ローカルタイムライン(とソーシャルタイムライン)を無効にするか否か' + } + }, + + disableGlobalTimeline: { + validator: $.optional.nullable.bool, + desc: { + 'ja-JP': 'グローバルタイムラインを無効にするか否か' + } + }, + + useStarForReactionFallback: { + validator: $.optional.nullable.bool, + desc: { + 'ja-JP': '不明なリアクションのフォールバックに star リアクションを使うか' + } + }, + + pinnedUsers: { + validator: $.optional.nullable.arr($.str), + desc: { + 'ja-JP': 'ピン留めユーザー' + } + }, + + hiddenTags: { + validator: $.optional.nullable.arr($.str), + desc: { + 'ja-JP': '統計などで無視するハッシュタグ' + } + }, + + blockedHosts: { + validator: $.optional.nullable.arr($.str), + desc: { + 'ja-JP': 'ブロックするホスト' + } + }, + + mascotImageUrl: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスキャラクター画像のURL' + } + }, + + bannerUrl: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスのバナー画像URL' + } + }, + + errorImageUrl: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスのエラー画像URL' + } + }, + + iconUrl: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスのアイコンURL' + } + }, + + name: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンス名' + } + }, + + description: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスの紹介文' + } + }, + + maxNoteTextLength: { + validator: $.optional.num.min(0).max(DB_MAX_NOTE_TEXT_LENGTH), + desc: { + 'ja-JP': '投稿の最大文字数' + } + }, + + localDriveCapacityMb: { + validator: $.optional.num.min(0), + desc: { + 'ja-JP': 'ローカルユーザーひとりあたりのドライブ容量 (メガバイト単位)', + 'en-US': 'Drive capacity of a local user (MB)' + } + }, + + remoteDriveCapacityMb: { + validator: $.optional.num.min(0), + desc: { + 'ja-JP': 'リモートユーザーひとりあたりのドライブ容量 (メガバイト単位)', + 'en-US': 'Drive capacity of a remote user (MB)' + } + }, + + cacheRemoteFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'リモートのファイルをキャッシュするか否か' + } + }, + + proxyRemoteFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ローカルにないリモートのファイルをプロキシするか否か' + } + }, + + enableHcaptcha: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'hCaptchaを使用するか否か' + } + }, + + hcaptchaSiteKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'hCaptcha site key' + } + }, + + hcaptchaSecretKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'hCaptcha secret key' + } + }, + + enableRecaptcha: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'reCAPTCHAを使用するか否か' + } + }, + + recaptchaSiteKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'reCAPTCHA site key' + } + }, + + recaptchaSecretKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'reCAPTCHA secret key' + } + }, + + proxyAccountId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'プロキシアカウントのID' + } + }, + + maintainerName: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンスの管理者名' + } + }, + + maintainerEmail: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'インスタンス管理者の連絡先メールアドレス' + } + }, + + pinnedPages: { + validator: $.optional.arr($.str), + }, + + langs: { + validator: $.optional.arr($.str), + desc: { + 'ja-JP': 'インスタンスの対象言語' + } + }, + + summalyProxy: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'summalyプロキシURL' + } + }, + + enableTwitterIntegration: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'Twitter連携機能を有効にするか否か' + } + }, + + twitterConsumerKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'TwitterアプリのConsumer key' + } + }, + + twitterConsumerSecret: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'TwitterアプリのConsumer secret' + } + }, + + enableGithubIntegration: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'GitHub連携機能を有効にするか否か' + } + }, + + githubClientId: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'GitHubアプリのClient ID' + } + }, + + githubClientSecret: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'GitHubアプリのClient Secret' + } + }, + + enableDiscordIntegration: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'Discord連携機能を有効にするか否か' + } + }, + + discordClientId: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'DiscordアプリのClient ID' + } + }, + + discordClientSecret: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'DiscordアプリのClient Secret' + } + }, + + enableEmail: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'メール配信を有効にするか否か' + } + }, + + email: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'メール配信する際に利用するメールアドレス' + } + }, + + smtpSecure: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'SMTPサーバがSSLを使用しているか否か' + } + }, + + smtpHost: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'SMTPサーバのホスト' + } + }, + + smtpPort: { + validator: $.optional.nullable.num, + desc: { + 'ja-JP': 'SMTPサーバのポート' + } + }, + + smtpUser: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'SMTPサーバのユーザー名' + } + }, + + smtpPass: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'SMTPサーバのパスワード' + } + }, + + enableServiceWorker: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ServiceWorkerを有効にするか否か' + } + }, + + swPublicKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'ServiceWorkerのVAPIDキーペアの公開鍵' + } + }, + + swPrivateKey: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'ServiceWorkerのVAPIDキーペアの秘密鍵' + } + }, + + tosUrl: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': '利用規約のURL' + } + }, + + repositoryUrl: { + validator: $.optional.str, + desc: { + 'ja-JP': 'リポジトリのURL' + } + }, + + feedbackUrl: { + validator: $.optional.str, + desc: { + 'ja-JP': 'フィードバックのURL' + } + }, + + useObjectStorage: { + validator: $.optional.bool + }, + + objectStorageBaseUrl: { + validator: $.optional.nullable.str + }, + + objectStorageBucket: { + validator: $.optional.nullable.str + }, + + objectStoragePrefix: { + validator: $.optional.nullable.str + }, + + objectStorageEndpoint: { + validator: $.optional.nullable.str + }, + + objectStorageRegion: { + validator: $.optional.nullable.str + }, + + objectStoragePort: { + validator: $.optional.nullable.num + }, + + objectStorageAccessKey: { + validator: $.optional.nullable.str + }, + + objectStorageSecretKey: { + validator: $.optional.nullable.str + }, + + objectStorageUseSSL: { + validator: $.optional.bool + }, + + objectStorageUseProxy: { + validator: $.optional.bool + }, + + objectStorageSetPublicRead: { + validator: $.optional.bool + } + } +}; + +export default define(meta, async (ps, me) => { + const set = {} as Partial; + + if (typeof ps.disableRegistration === 'boolean') { + set.disableRegistration = ps.disableRegistration; + } + + if (typeof ps.disableLocalTimeline === 'boolean') { + set.disableLocalTimeline = ps.disableLocalTimeline; + } + + if (typeof ps.disableGlobalTimeline === 'boolean') { + set.disableGlobalTimeline = ps.disableGlobalTimeline; + } + + if (typeof ps.useStarForReactionFallback === 'boolean') { + set.useStarForReactionFallback = ps.useStarForReactionFallback; + } + + if (Array.isArray(ps.pinnedUsers)) { + set.pinnedUsers = ps.pinnedUsers.filter(Boolean); + } + + if (Array.isArray(ps.hiddenTags)) { + set.hiddenTags = ps.hiddenTags.filter(Boolean); + } + + if (Array.isArray(ps.blockedHosts)) { + set.blockedHosts = ps.blockedHosts.filter(Boolean); + } + + if (ps.mascotImageUrl !== undefined) { + set.mascotImageUrl = ps.mascotImageUrl; + } + + if (ps.bannerUrl !== undefined) { + set.bannerUrl = ps.bannerUrl; + } + + if (ps.iconUrl !== undefined) { + set.iconUrl = ps.iconUrl; + } + + if (ps.name !== undefined) { + set.name = ps.name; + } + + if (ps.description !== undefined) { + set.description = ps.description; + } + + if (ps.maxNoteTextLength) { + set.maxNoteTextLength = ps.maxNoteTextLength; + } + + if (ps.localDriveCapacityMb !== undefined) { + set.localDriveCapacityMb = ps.localDriveCapacityMb; + } + + if (ps.remoteDriveCapacityMb !== undefined) { + set.remoteDriveCapacityMb = ps.remoteDriveCapacityMb; + } + + if (ps.cacheRemoteFiles !== undefined) { + set.cacheRemoteFiles = ps.cacheRemoteFiles; + } + + if (ps.proxyRemoteFiles !== undefined) { + set.proxyRemoteFiles = ps.proxyRemoteFiles; + } + + if (ps.enableHcaptcha !== undefined) { + set.enableHcaptcha = ps.enableHcaptcha; + } + + if (ps.hcaptchaSiteKey !== undefined) { + set.hcaptchaSiteKey = ps.hcaptchaSiteKey; + } + + if (ps.hcaptchaSecretKey !== undefined) { + set.hcaptchaSecretKey = ps.hcaptchaSecretKey; + } + + if (ps.enableRecaptcha !== undefined) { + set.enableRecaptcha = ps.enableRecaptcha; + } + + if (ps.recaptchaSiteKey !== undefined) { + set.recaptchaSiteKey = ps.recaptchaSiteKey; + } + + if (ps.recaptchaSecretKey !== undefined) { + set.recaptchaSecretKey = ps.recaptchaSecretKey; + } + + if (ps.proxyAccountId !== undefined) { + set.proxyAccountId = ps.proxyAccountId; + } + + if (ps.maintainerName !== undefined) { + set.maintainerName = ps.maintainerName; + } + + if (ps.maintainerEmail !== undefined) { + set.maintainerEmail = ps.maintainerEmail; + } + + if (Array.isArray(ps.langs)) { + set.langs = ps.langs.filter(Boolean); + } + + if (Array.isArray(ps.pinnedPages)) { + set.pinnedPages = ps.pinnedPages.filter(Boolean); + } + + if (ps.summalyProxy !== undefined) { + set.summalyProxy = ps.summalyProxy; + } + + if (ps.enableTwitterIntegration !== undefined) { + set.enableTwitterIntegration = ps.enableTwitterIntegration; + } + + if (ps.twitterConsumerKey !== undefined) { + set.twitterConsumerKey = ps.twitterConsumerKey; + } + + if (ps.twitterConsumerSecret !== undefined) { + set.twitterConsumerSecret = ps.twitterConsumerSecret; + } + + if (ps.enableGithubIntegration !== undefined) { + set.enableGithubIntegration = ps.enableGithubIntegration; + } + + if (ps.githubClientId !== undefined) { + set.githubClientId = ps.githubClientId; + } + + if (ps.githubClientSecret !== undefined) { + set.githubClientSecret = ps.githubClientSecret; + } + + if (ps.enableDiscordIntegration !== undefined) { + set.enableDiscordIntegration = ps.enableDiscordIntegration; + } + + if (ps.discordClientId !== undefined) { + set.discordClientId = ps.discordClientId; + } + + if (ps.discordClientSecret !== undefined) { + set.discordClientSecret = ps.discordClientSecret; + } + + if (ps.enableEmail !== undefined) { + set.enableEmail = ps.enableEmail; + } + + if (ps.email !== undefined) { + set.email = ps.email; + } + + if (ps.smtpSecure !== undefined) { + set.smtpSecure = ps.smtpSecure; + } + + if (ps.smtpHost !== undefined) { + set.smtpHost = ps.smtpHost; + } + + if (ps.smtpPort !== undefined) { + set.smtpPort = ps.smtpPort; + } + + if (ps.smtpUser !== undefined) { + set.smtpUser = ps.smtpUser; + } + + if (ps.smtpPass !== undefined) { + set.smtpPass = ps.smtpPass; + } + + if (ps.errorImageUrl !== undefined) { + set.errorImageUrl = ps.errorImageUrl; + } + + if (ps.enableServiceWorker !== undefined) { + set.enableServiceWorker = ps.enableServiceWorker; + } + + if (ps.swPublicKey !== undefined) { + set.swPublicKey = ps.swPublicKey; + } + + if (ps.swPrivateKey !== undefined) { + set.swPrivateKey = ps.swPrivateKey; + } + + if (ps.tosUrl !== undefined) { + set.ToSUrl = ps.tosUrl; + } + + if (ps.repositoryUrl !== undefined) { + set.repositoryUrl = ps.repositoryUrl; + } + + if (ps.feedbackUrl !== undefined) { + set.feedbackUrl = ps.feedbackUrl; + } + + if (ps.useObjectStorage !== undefined) { + set.useObjectStorage = ps.useObjectStorage; + } + + if (ps.objectStorageBaseUrl !== undefined) { + set.objectStorageBaseUrl = ps.objectStorageBaseUrl; + } + + if (ps.objectStorageBucket !== undefined) { + set.objectStorageBucket = ps.objectStorageBucket; + } + + if (ps.objectStoragePrefix !== undefined) { + set.objectStoragePrefix = ps.objectStoragePrefix; + } + + if (ps.objectStorageEndpoint !== undefined) { + set.objectStorageEndpoint = ps.objectStorageEndpoint; + } + + if (ps.objectStorageRegion !== undefined) { + set.objectStorageRegion = ps.objectStorageRegion; + } + + if (ps.objectStoragePort !== undefined) { + set.objectStoragePort = ps.objectStoragePort; + } + + if (ps.objectStorageAccessKey !== undefined) { + set.objectStorageAccessKey = ps.objectStorageAccessKey; + } + + if (ps.objectStorageSecretKey !== undefined) { + set.objectStorageSecretKey = ps.objectStorageSecretKey; + } + + if (ps.objectStorageUseSSL !== undefined) { + set.objectStorageUseSSL = ps.objectStorageUseSSL; + } + + if (ps.objectStorageUseProxy !== undefined) { + set.objectStorageUseProxy = ps.objectStorageUseProxy; + } + + if (ps.objectStorageSetPublicRead !== undefined) { + set.objectStorageSetPublicRead = ps.objectStorageSetPublicRead; + } + + await getConnection().transaction(async transactionalEntityManager => { + const meta = await transactionalEntityManager.findOne(Meta, { + order: { + id: 'DESC' + } + }); + + if (meta) { + await transactionalEntityManager.update(Meta, meta.id, set); + } else { + await transactionalEntityManager.save(Meta, set); + } + }); + + insertModerationLog(me, 'updateMeta'); +}); diff --git a/src/server/api/endpoints/admin/update-remote-user.ts b/src/server/api/endpoints/admin/update-remote-user.ts new file mode 100644 index 000000000..a6b5ef1e8 --- /dev/null +++ b/src/server/api/endpoints/admin/update-remote-user.ts @@ -0,0 +1,32 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { getRemoteUser } from '../../common/getters'; +import { updatePerson } from '../../../../remote/activitypub/models/person'; + +export const meta = { + desc: { + 'ja-JP': '指定されたリモートユーザーの情報を更新します。', + 'en-US': 'Update specified remote user information.' + }, + + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to update' + } + }, + } +}; + +export default define(meta, async (ps) => { + const user = await getRemoteUser(ps.userId); + await updatePerson(user.uri!); +}); diff --git a/src/server/api/endpoints/admin/vacuum.ts b/src/server/api/endpoints/admin/vacuum.ts new file mode 100644 index 000000000..e041e6543 --- /dev/null +++ b/src/server/api/endpoints/admin/vacuum.ts @@ -0,0 +1,36 @@ +import $ from 'cafy'; +import define from '../../define'; +import { getConnection } from 'typeorm'; +import { insertModerationLog } from '../../../../services/insert-moderation-log'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + full: { + validator: $.bool, + }, + analyze: { + validator: $.bool, + }, + } +}; + +export default define(meta, async (ps, me) => { + const params: string[] = []; + + if (ps.full) { + params.push('FULL'); + } + + if (ps.analyze) { + params.push('ANALYZE'); + } + + getConnection().query('VACUUM ' + params.join(' ')); + + insertModerationLog(me, 'vacuum', ps); +}); diff --git a/src/server/api/endpoints/announcements.ts b/src/server/api/endpoints/announcements.ts new file mode 100644 index 000000000..ca46192de --- /dev/null +++ b/src/server/api/endpoints/announcements.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../misc/cafy-id'; +import define from '../define'; +import { Announcements, AnnouncementReads } from '../../../models'; +import { makePaginationQuery } from '../common/make-pagination-query'; + +export const meta = { + tags: ['meta'], + + requireCredential: false as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + withUnreads: { + validator: $.optional.boolean, + default: false + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(Announcements.createQueryBuilder('announcement'), ps.sinceId, ps.untilId); + + const announcements = await query.take(ps.limit!).getMany(); + + if (user) { + const reads = (await AnnouncementReads.find({ + userId: user.id + })).map(x => x.announcementId); + + for (const announcement of announcements) { + (announcement as any).isRead = reads.includes(announcement.id); + } + } + + return ps.withUnreads ? announcements.filter((a: any) => !a.isRead) : announcements; +}); diff --git a/src/server/api/endpoints/antennas/create.ts b/src/server/api/endpoints/antennas/create.ts new file mode 100644 index 000000000..bc7938526 --- /dev/null +++ b/src/server/api/endpoints/antennas/create.ts @@ -0,0 +1,118 @@ +import $ from 'cafy'; +import define from '../../define'; +import { genId } from '../../../../misc/gen-id'; +import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; +import { ApiError } from '../../error'; + +export const meta = { + tags: ['antennas'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + name: { + validator: $.str.range(1, 100) + }, + + src: { + validator: $.str.or(['home', 'all', 'users', 'list', 'group']) + }, + + userListId: { + validator: $.nullable.optional.type(ID), + }, + + userGroupId: { + validator: $.nullable.optional.type(ID), + }, + + keywords: { + validator: $.arr($.arr($.str)) + }, + + excludeKeywords: { + validator: $.arr($.arr($.str)) + }, + + users: { + validator: $.arr($.str) + }, + + caseSensitive: { + validator: $.bool + }, + + withReplies: { + validator: $.bool + }, + + withFile: { + validator: $.bool + }, + + notify: { + validator: $.bool + } + }, + + errors: { + noSuchUserList: { + message: 'No such user list.', + code: 'NO_SUCH_USER_LIST', + id: '95063e93-a283-4b8b-9aa5-bcdb8df69a7f' + }, + + noSuchUserGroup: { + message: 'No such user group.', + code: 'NO_SUCH_USER_GROUP', + id: 'aa3c0b9a-8cae-47c0-92ac-202ce5906682' + } + } +}; + +export default define(meta, async (ps, user) => { + let userList; + let userGroupJoining; + + if (ps.src === 'list') { + userList = await UserLists.findOne({ + id: ps.userListId, + userId: user.id, + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchUserList); + } + } else if (ps.src === 'group') { + userGroupJoining = await UserGroupJoinings.findOne({ + userGroupId: ps.userGroupId, + userId: user.id, + }); + + if (userGroupJoining == null) { + throw new ApiError(meta.errors.noSuchUserGroup); + } + } + + const antenna = await Antennas.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + src: ps.src, + userListId: userList ? userList.id : null, + userGroupJoiningId: userGroupJoining ? userGroupJoining.id : null, + keywords: ps.keywords, + excludeKeywords: ps.excludeKeywords, + users: ps.users, + caseSensitive: ps.caseSensitive, + withReplies: ps.withReplies, + withFile: ps.withFile, + notify: ps.notify, + }); + + return await Antennas.pack(antenna); +}); diff --git a/src/server/api/endpoints/antennas/delete.ts b/src/server/api/endpoints/antennas/delete.ts new file mode 100644 index 000000000..087834a7b --- /dev/null +++ b/src/server/api/endpoints/antennas/delete.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Antennas } from '../../../../models'; + +export const meta = { + tags: ['antennas'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + antennaId: { + validator: $.type(ID), + } + }, + + errors: { + noSuchAntenna: { + message: 'No such antenna.', + code: 'NO_SUCH_ANTENNA', + id: 'b34dcf9d-348f-44bb-99d0-6c9314cfe2df' + } + } +}; + +export default define(meta, async (ps, user) => { + const antenna = await Antennas.findOne({ + id: ps.antennaId, + userId: user.id + }); + + if (antenna == null) { + throw new ApiError(meta.errors.noSuchAntenna); + } + + await Antennas.delete(antenna.id); +}); diff --git a/src/server/api/endpoints/antennas/list.ts b/src/server/api/endpoints/antennas/list.ts new file mode 100644 index 000000000..cbc4e827b --- /dev/null +++ b/src/server/api/endpoints/antennas/list.ts @@ -0,0 +1,18 @@ +import define from '../../define'; +import { Antennas } from '../../../../models'; + +export const meta = { + tags: ['antennas', 'account'], + + requireCredential: true as const, + + kind: 'read:account', +}; + +export default define(meta, async (ps, me) => { + const antennas = await Antennas.find({ + userId: me.id, + }); + + return await Promise.all(antennas.map(x => Antennas.pack(x))); +}); diff --git a/src/server/api/endpoints/antennas/notes.ts b/src/server/api/endpoints/antennas/notes.ts new file mode 100644 index 000000000..402a2758b --- /dev/null +++ b/src/server/api/endpoints/antennas/notes.ts @@ -0,0 +1,72 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Antennas, Notes, AntennaNotes } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { ApiError } from '../../error'; + +export const meta = { + tags: ['antennas', 'account', 'notes'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + antennaId: { + validator: $.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + errors: { + noSuchAntenna: { + message: 'No such antenna.', + code: 'NO_SUCH_ANTENNA', + id: '850926e0-fd3b-49b6-b69a-b28a5dbd82fe' + } + } +}; + +export default define(meta, async (ps, user) => { + const antenna = await Antennas.findOne({ + id: ps.antennaId, + userId: user.id + }); + + if (antenna == null) { + throw new ApiError(meta.errors.noSuchAntenna); + } + + const antennaQuery = AntennaNotes.createQueryBuilder('joining') + .select('joining.noteId') + .where('joining.antennaId = :antennaId', { antennaId: antenna.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(`note.id IN (${ antennaQuery.getQuery() })`) + .leftJoinAndSelect('note.user', 'user') + .setParameters(antennaQuery.getParameters()); + + generateVisibilityQuery(query, user); + generateMutedUserQuery(query, user); + + const notes = await query + .take(ps.limit!) + .getMany(); + + return await Notes.packMany(notes, user); +}); diff --git a/src/server/api/endpoints/antennas/show.ts b/src/server/api/endpoints/antennas/show.ts new file mode 100644 index 000000000..bc2093ba6 --- /dev/null +++ b/src/server/api/endpoints/antennas/show.ts @@ -0,0 +1,41 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Antennas } from '../../../../models'; + +export const meta = { + tags: ['antennas', 'account'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + antennaId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchAntenna: { + message: 'No such antenna.', + code: 'NO_SUCH_ANTENNA', + id: 'c06569fb-b025-4f23-b22d-1fcd20d2816b' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the antenna + const antenna = await Antennas.findOne({ + id: ps.antennaId, + userId: me.id, + }); + + if (antenna == null) { + throw new ApiError(meta.errors.noSuchAntenna); + } + + return await Antennas.pack(antenna); +}); diff --git a/src/server/api/endpoints/antennas/update.ts b/src/server/api/endpoints/antennas/update.ts new file mode 100644 index 000000000..b329e86ad --- /dev/null +++ b/src/server/api/endpoints/antennas/update.ts @@ -0,0 +1,134 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; + +export const meta = { + tags: ['antennas'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + antennaId: { + validator: $.type(ID), + }, + + name: { + validator: $.str.range(1, 100) + }, + + src: { + validator: $.str.or(['home', 'all', 'users', 'list', 'group']) + }, + + userListId: { + validator: $.nullable.optional.type(ID), + }, + + userGroupId: { + validator: $.nullable.optional.type(ID), + }, + + keywords: { + validator: $.arr($.arr($.str)) + }, + + excludeKeywords: { + validator: $.arr($.arr($.str)) + }, + + users: { + validator: $.arr($.str) + }, + + caseSensitive: { + validator: $.bool + }, + + withReplies: { + validator: $.bool + }, + + withFile: { + validator: $.bool + }, + + notify: { + validator: $.bool + } + }, + + errors: { + noSuchAntenna: { + message: 'No such antenna.', + code: 'NO_SUCH_ANTENNA', + id: '10c673ac-8852-48eb-aa1f-f5b67f069290' + }, + + noSuchUserList: { + message: 'No such user list.', + code: 'NO_SUCH_USER_LIST', + id: '1c6b35c9-943e-48c2-81e4-2844989407f7' + }, + + noSuchUserGroup: { + message: 'No such user group.', + code: 'NO_SUCH_USER_GROUP', + id: '109ed789-b6eb-456e-b8a9-6059d567d385' + } + } +}; + +export default define(meta, async (ps, user) => { + // Fetch the antenna + const antenna = await Antennas.findOne({ + id: ps.antennaId, + userId: user.id + }); + + if (antenna == null) { + throw new ApiError(meta.errors.noSuchAntenna); + } + + let userList; + let userGroupJoining; + + if (ps.src === 'list') { + userList = await UserLists.findOne({ + id: ps.userListId, + userId: user.id, + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchUserList); + } + } else if (ps.src === 'group') { + userGroupJoining = await UserGroupJoinings.findOne({ + userGroupId: ps.userGroupId, + userId: user.id, + }); + + if (userGroupJoining == null) { + throw new ApiError(meta.errors.noSuchUserGroup); + } + } + + await Antennas.update(antenna.id, { + name: ps.name, + src: ps.src, + userListId: userList ? userList.id : null, + userGroupJoiningId: userGroupJoining ? userGroupJoining.id : null, + keywords: ps.keywords, + excludeKeywords: ps.excludeKeywords, + users: ps.users, + caseSensitive: ps.caseSensitive, + withReplies: ps.withReplies, + withFile: ps.withFile, + notify: ps.notify, + }); + + return await Antennas.pack(antenna.id); +}); diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts new file mode 100644 index 000000000..214116c8c --- /dev/null +++ b/src/server/api/endpoints/ap/show.ts @@ -0,0 +1,175 @@ +import $ from 'cafy'; +import define from '../../define'; +import config from '../../../../config'; +import { createPerson } from '../../../../remote/activitypub/models/person'; +import { createNote } from '../../../../remote/activitypub/models/note'; +import Resolver from '../../../../remote/activitypub/resolver'; +import { ApiError } from '../../error'; +import { extractDbHost } from '../../../../misc/convert-host'; +import { Users, Notes } from '../../../../models'; +import { Note } from '../../../../models/entities/note'; +import { User } from '../../../../models/entities/user'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { validActor, validPost } from '../../../../remote/activitypub/type'; + +export const meta = { + tags: ['federation'], + + desc: { + 'ja-JP': 'URIを指定してActivityPubオブジェクトを参照します。' + }, + + requireCredential: false as const, + + params: { + uri: { + validator: $.str, + desc: { + 'ja-JP': 'ActivityPubオブジェクトのURI' + } + }, + }, + + errors: { + noSuchObject: { + message: 'No such object.', + code: 'NO_SUCH_OBJECT', + id: 'dc94d745-1262-4e63-a17d-fecaa57efc82' + } + } +}; + +export default define(meta, async (ps) => { + const object = await fetchAny(ps.uri); + if (object) { + return object; + } else { + throw new ApiError(meta.errors.noSuchObject); + } +}); + +/*** + * URIからUserかNoteを解決する + */ +async function fetchAny(uri: string) { + // URIがこのサーバーを指しているなら、ローカルユーザーIDとしてDBからフェッチ + if (uri.startsWith(config.url + '/')) { + const parts = uri.split('/'); + const id = parts.pop(); + const type = parts.pop(); + + if (type === 'notes') { + const note = await Notes.findOne(id); + + if (note) { + return { + type: 'Note', + object: await Notes.pack(note, null, { detail: true }) + }; + } + } else if (type === 'users') { + const user = await Users.findOne(id); + + if (user) { + return { + type: 'User', + object: await Users.pack(user, null, { detail: true }) + }; + } + } + } + + // ブロックしてたら中断 + const meta = await fetchMeta(); + if (meta.blockedHosts.includes(extractDbHost(uri))) return null; + + // URI(AP Object id)としてDB検索 + { + const [user, note] = await Promise.all([ + Users.findOne({ uri: uri }), + Notes.findOne({ uri: uri }) + ]); + + const packed = await mergePack(user, note); + if (packed !== null) return packed; + } + + // リモートから一旦オブジェクトフェッチ + const resolver = new Resolver(); + const object = await resolver.resolve(uri) as any; + + // /@user のような正規id以外で取得できるURIが指定されていた場合、ここで初めて正規URIが確定する + // これはDBに存在する可能性があるため再度DB検索 + if (uri !== object.id) { + if (object.id.startsWith(config.url + '/')) { + const parts = object.id.split('/'); + const id = parts.pop(); + const type = parts.pop(); + + if (type === 'notes') { + const note = await Notes.findOne(id); + + if (note) { + return { + type: 'Note', + object: await Notes.pack(note, null, { detail: true }) + }; + } + } else if (type === 'users') { + const user = await Users.findOne(id); + + if (user) { + return { + type: 'User', + object: await Users.pack(user, null, { detail: true }) + }; + } + } + } + + const [user, note] = await Promise.all([ + Users.findOne({ uri: object.id }), + Notes.findOne({ uri: object.id }) + ]); + + const packed = await mergePack(user, note); + if (packed !== null) return packed; + } + + // それでもみつからなければ新規であるため登録 + if (validActor.includes(object.type)) { + const user = await createPerson(object.id); + return { + type: 'User', + object: await Users.pack(user, null, { detail: true }) + }; + } + + if (validPost.includes(object.type)) { + const note = await createNote(object.id, undefined, true); + return { + type: 'Note', + object: await Notes.pack(note!, null, { detail: true }) + }; + } + + return null; +} + +async function mergePack(user: User | null | undefined, note: Note | null | undefined) { + if (user != null) { + return { + type: 'User', + object: await Users.pack(user, null, { detail: true }) + }; + } + + if (note != null) { + return { + type: 'Note', + object: await Notes.pack(note, null, { detail: true }) + }; + } + + return null; +} diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts new file mode 100644 index 000000000..776865ffb --- /dev/null +++ b/src/server/api/endpoints/app/create.ts @@ -0,0 +1,84 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Apps } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; +import { unique } from '../../../../prelude/array'; +import { secureRndstr } from '../../../../misc/secure-rndstr'; + +export const meta = { + tags: ['app'], + + requireCredential: false as const, + + desc: { + 'ja-JP': 'アプリを作成します。', + 'en-US': 'Create a application.' + }, + + params: { + name: { + validator: $.str, + desc: { + 'ja-JP': 'アプリの名前', + 'en-US': 'Name of application' + } + }, + + description: { + validator: $.str, + desc: { + 'ja-JP': 'アプリの説明', + 'en-US': 'Description of application' + } + }, + + permission: { + validator: $.arr($.str).unique(), + desc: { + 'ja-JP': 'このアプリに割り当てる権限(権限については"Permissions"を参照)', + 'en-US': 'Permissions assigned to this app (see "Permissions" for the permissions)' + } + }, + + // TODO: Check it is valid url + callbackUrl: { + validator: $.optional.nullable.str, + default: null as any, + desc: { + 'ja-JP': 'アプリ認証時にコールバックするURL', + 'en-US': 'URL to call back at app authentication' + } + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'App', + }, +}; + +export default define(meta, async (ps, user) => { + // Generate secret + const secret = secureRndstr(32, true); + + // for backward compatibility + const permission = unique(ps.permission.map(v => v.replace(/^(.+)(\/|-)(read|write)$/, '$3:$1'))); + + // Create account + const app = await Apps.save({ + id: genId(), + createdAt: new Date(), + userId: user ? user.id : null, + name: ps.name, + description: ps.description, + permission, + callbackUrl: ps.callbackUrl, + secret: secret + }); + + return await Apps.pack(app, null, { + detail: true, + includeSecret: true + }); +}); diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts new file mode 100644 index 000000000..ca4f3549f --- /dev/null +++ b/src/server/api/endpoints/app/show.ts @@ -0,0 +1,45 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Apps } from '../../../../models'; + +export const meta = { + tags: ['app'], + + params: { + appId: { + validator: $.type(ID), + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'App', + }, + + errors: { + noSuchApp: { + message: 'No such app.', + code: 'NO_SUCH_APP', + id: 'dce83913-2dc6-4093-8a7b-71dbb11718a3' + } + } +}; + +export default define(meta, async (ps, user, token) => { + const isSecure = user != null && token == null; + + // Lookup app + const ap = await Apps.findOne(ps.appId); + + if (ap == null) { + throw new ApiError(meta.errors.noSuchApp); + } + + return await Apps.pack(ap, user, { + detail: true, + includeSecret: isSecure && (ap.userId === user.id) + }); +}); diff --git a/src/server/api/endpoints/auth/accept.ts b/src/server/api/endpoints/auth/accept.ts new file mode 100644 index 000000000..e98242a3c --- /dev/null +++ b/src/server/api/endpoints/auth/accept.ts @@ -0,0 +1,77 @@ +import * as crypto from 'crypto'; +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { AuthSessions, AccessTokens, Apps } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; +import { ensure } from '../../../../prelude/ensure'; +import { secureRndstr } from '../../../../misc/secure-rndstr'; + +export const meta = { + tags: ['auth'], + + requireCredential: true as const, + + secure: true, + + params: { + token: { + validator: $.str + } + }, + + errors: { + noSuchSession: { + message: 'No such session.', + code: 'NO_SUCH_SESSION', + id: '9c72d8de-391a-43c1-9d06-08d29efde8df' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch token + const session = await AuthSessions + .findOne({ token: ps.token }); + + if (session == null) { + throw new ApiError(meta.errors.noSuchSession); + } + + // Generate access token + const accessToken = secureRndstr(32, true); + + // Fetch exist access token + const exist = await AccessTokens.findOne({ + appId: session.appId, + userId: user.id, + }); + + if (exist == null) { + // Lookup app + const app = await Apps.findOne(session.appId).then(ensure); + + // Generate Hash + const sha256 = crypto.createHash('sha256'); + sha256.update(accessToken + app.secret); + const hash = sha256.digest('hex'); + + const now = new Date(); + + // Insert access token doc + await AccessTokens.save({ + id: genId(), + createdAt: now, + lastUsedAt: now, + appId: session.appId, + userId: user.id, + token: accessToken, + hash: hash + }); + } + + // Update session + await AuthSessions.update(session.id, { + userId: user.id + }); +}); diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts new file mode 100644 index 000000000..5596e6122 --- /dev/null +++ b/src/server/api/endpoints/auth/session/generate.ts @@ -0,0 +1,81 @@ +import { v4 as uuid } from 'uuid'; +import $ from 'cafy'; +import config from '../../../../../config'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { Apps, AuthSessions } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; + +export const meta = { + tags: ['auth'], + + requireCredential: false as const, + + desc: { + 'ja-JP': 'アプリを認証するためのトークンを作成します。', + 'en-US': 'Generate a token for authorize application.' + }, + + params: { + appSecret: { + validator: $.str, + desc: { + 'ja-JP': 'アプリケーションのシークレットキー', + 'en-US': 'The secret key of your application.' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + token: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'セッションのトークン' + }, + url: { + type: 'string' as const, + optional: false as const, nullable: false as const, + format: 'url', + description: 'セッションのURL' + }, + } + }, + + errors: { + noSuchApp: { + message: 'No such app.', + code: 'NO_SUCH_APP', + id: '92f93e63-428e-4f2f-a5a4-39e1407fe998' + } + } +}; + +export default define(meta, async (ps) => { + // Lookup app + const app = await Apps.findOne({ + secret: ps.appSecret + }); + + if (app == null) { + throw new ApiError(meta.errors.noSuchApp); + } + + // Generate token + const token = uuid(); + + // Create session token document + const doc = await AuthSessions.save({ + id: genId(), + createdAt: new Date(), + appId: app.id, + token: token + }); + + return { + token: doc.token, + url: `${config.authUrl}/${doc.token}` + }; +}); diff --git a/src/server/api/endpoints/auth/session/show.ts b/src/server/api/endpoints/auth/session/show.ts new file mode 100644 index 000000000..fe92ff362 --- /dev/null +++ b/src/server/api/endpoints/auth/session/show.ts @@ -0,0 +1,41 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { AuthSessions } from '../../../../../models'; + +export const meta = { + tags: ['auth'], + + requireCredential: false as const, + + params: { + token: { + validator: $.str, + desc: { + 'ja-JP': 'セッションのトークン', + 'en-US': 'The token of a session.' + } + } + }, + + errors: { + noSuchSession: { + message: 'No such session.', + code: 'NO_SUCH_SESSION', + id: 'bd72c97d-eba7-4adb-a467-f171b8847250' + } + } +}; + +export default define(meta, async (ps, user) => { + // Lookup session + const session = await AuthSessions.findOne({ + token: ps.token + }); + + if (session == null) { + throw new ApiError(meta.errors.noSuchSession); + } + + return await AuthSessions.pack(session, user); +}); diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts new file mode 100644 index 000000000..7b474c829 --- /dev/null +++ b/src/server/api/endpoints/auth/session/userkey.ts @@ -0,0 +1,109 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { Apps, AuthSessions, AccessTokens, Users } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + tags: ['auth'], + + requireCredential: false as const, + + params: { + appSecret: { + validator: $.str, + desc: { + 'ja-JP': 'アプリケーションのシークレットキー', + 'en-US': 'The secret key of your application.' + } + }, + + token: { + validator: $.str, + desc: { + 'ja-JP': 'セッションのトークン', + 'en-US': 'The token of a session.' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + accessToken: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'ユーザーのアクセストークン', + }, + + user: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + description: '認証したユーザー' + }, + } + }, + + errors: { + noSuchApp: { + message: 'No such app.', + code: 'NO_SUCH_APP', + id: 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d' + }, + + noSuchSession: { + message: 'No such session.', + code: 'NO_SUCH_SESSION', + id: '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3' + }, + + pendingSession: { + message: 'This session is not completed yet.', + code: 'PENDING_SESSION', + id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e' + } + } +}; + +export default define(meta, async (ps) => { + // Lookup app + const app = await Apps.findOne({ + secret: ps.appSecret + }); + + if (app == null) { + throw new ApiError(meta.errors.noSuchApp); + } + + // Fetch token + const session = await AuthSessions.findOne({ + token: ps.token, + appId: app.id + }); + + if (session == null) { + throw new ApiError(meta.errors.noSuchSession); + } + + if (session.userId == null) { + throw new ApiError(meta.errors.pendingSession); + } + + // Lookup access token + const accessToken = await AccessTokens.findOne({ + appId: app.id, + userId: session.userId + }).then(ensure); + + // Delete session + AuthSessions.delete(session.id); + + return { + accessToken: accessToken.token, + user: await Users.pack(session.userId, null, { + detail: true + }) + }; +}); diff --git a/src/server/api/endpoints/blocking/create.ts b/src/server/api/endpoints/blocking/create.ts new file mode 100644 index 000000000..bdaccc79e --- /dev/null +++ b/src/server/api/endpoints/blocking/create.ts @@ -0,0 +1,93 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import * as ms from 'ms'; +import create from '../../../../services/blocking/create'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Blockings, NoteWatchings, Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーをブロックします。', + 'en-US': 'Block a user.' + }, + + tags: ['account'], + + limit: { + duration: ms('1hour'), + max: 100 + }, + + requireCredential: true as const, + + kind: 'write:blocks', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e' + }, + + blockeeIsYourself: { + message: 'Blockee is yourself.', + code: 'BLOCKEE_IS_YOURSELF', + id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6' + }, + + alreadyBlocking: { + message: 'You are already blocking that user.', + code: 'ALREADY_BLOCKING', + id: '787fed64-acb9-464a-82eb-afbd745b9614' + }, + } +}; + +export default define(meta, async (ps, user) => { + const blocker = user; + + // 自分自身 + if (user.id === ps.userId) { + throw new ApiError(meta.errors.blockeeIsYourself); + } + + // Get blockee + const blockee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check if already blocking + const exist = await Blockings.findOne({ + blockerId: blocker.id, + blockeeId: blockee.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyBlocking); + } + + // Create blocking + await create(blocker, blockee); + + NoteWatchings.delete({ + userId: blocker.id, + noteUserId: blockee.id + }); + + return await Users.pack(blockee.id, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/blocking/delete.ts b/src/server/api/endpoints/blocking/delete.ts new file mode 100644 index 000000000..451da1c91 --- /dev/null +++ b/src/server/api/endpoints/blocking/delete.ts @@ -0,0 +1,88 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import * as ms from 'ms'; +import deleteBlocking from '../../../../services/blocking/delete'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Blockings, Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのブロックを解除します。', + 'en-US': 'Unblock a user.' + }, + + tags: ['account'], + + limit: { + duration: ms('1hour'), + max: 100 + }, + + requireCredential: true as const, + + kind: 'write:blocks', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '8621d8bf-c358-4303-a066-5ea78610eb3f' + }, + + blockeeIsYourself: { + message: 'Blockee is yourself.', + code: 'BLOCKEE_IS_YOURSELF', + id: '06f6fac6-524b-473c-a354-e97a40ae6eac' + }, + + notBlocking: { + message: 'You are not blocking that user.', + code: 'NOT_BLOCKING', + id: '291b2efa-60c6-45c0-9f6a-045c8f9b02cd' + }, + } +}; + +export default define(meta, async (ps, user) => { + const blocker = user; + + // Check if the blockee is yourself + if (user.id === ps.userId) { + throw new ApiError(meta.errors.blockeeIsYourself); + } + + // Get blockee + const blockee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check not blocking + const exist = await Blockings.findOne({ + blockerId: blocker.id, + blockeeId: blockee.id + }); + + if (exist == null) { + throw new ApiError(meta.errors.notBlocking); + } + + // Delete blocking + await deleteBlocking(blocker, blockee); + + return await Users.pack(blockee.id, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/blocking/list.ts b/src/server/api/endpoints/blocking/list.ts new file mode 100644 index 000000000..a9bb1c5f9 --- /dev/null +++ b/src/server/api/endpoints/blocking/list.ts @@ -0,0 +1,54 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Blockings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': 'ブロックしているユーザー一覧を取得します。', + 'en-US': 'Get blocking users.' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'read:blocks', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 30 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Blocking', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Blockings.createQueryBuilder('blocking'), ps.sinceId, ps.untilId) + .andWhere(`blocking.blockerId = :meId`, { meId: me.id }); + + const blockings = await query + .take(ps.limit!) + .getMany(); + + return await Blockings.packMany(blockings, me); +}); diff --git a/src/server/api/endpoints/channels/create.ts b/src/server/api/endpoints/channels/create.ts new file mode 100644 index 000000000..53436e703 --- /dev/null +++ b/src/server/api/endpoints/channels/create.ts @@ -0,0 +1,68 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Channels, DriveFiles } from '../../../../models'; +import { Channel } from '../../../../models/entities/channel'; +import { genId } from '../../../../misc/gen-id'; +import { ID } from '../../../../misc/cafy-id'; + +export const meta = { + tags: ['channels'], + + requireCredential: true as const, + + kind: 'write:channels', + + params: { + name: { + validator: $.str.range(1, 128) + }, + + description: { + validator: $.nullable.optional.str.range(1, 2048) + }, + + bannerId: { + validator: $.nullable.optional.type(ID), + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'cd1e9f3e-5a12-4ab4-96f6-5d0a2cc32050' + }, + } +}; + +export default define(meta, async (ps, user) => { + let banner = null; + if (ps.bannerId != null) { + banner = await DriveFiles.findOne({ + id: ps.bannerId, + userId: user.id + }); + + if (banner == null) { + throw new ApiError(meta.errors.noSuchFile); + } + } + + const channel = await Channels.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + description: ps.description || null, + bannerId: banner ? banner.id : null, + } as Channel); + + return await Channels.pack(channel, user); +}); diff --git a/src/server/api/endpoints/channels/featured.ts b/src/server/api/endpoints/channels/featured.ts new file mode 100644 index 000000000..abb0a19e2 --- /dev/null +++ b/src/server/api/endpoints/channels/featured.ts @@ -0,0 +1,28 @@ +import define from '../../define'; +import { Channels } from '../../../../models'; + +export const meta = { + tags: ['channels'], + + requireCredential: false as const, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Channels.createQueryBuilder('channel') + .where('channel.lastNotedAt IS NOT NULL') + .orderBy('channel.lastNotedAt', 'DESC'); + + const channels = await query.take(10).getMany(); + + return await Promise.all(channels.map(x => Channels.pack(x, me))); +}); diff --git a/src/server/api/endpoints/channels/follow.ts b/src/server/api/endpoints/channels/follow.ts new file mode 100644 index 000000000..bf2f2bbb5 --- /dev/null +++ b/src/server/api/endpoints/channels/follow.ts @@ -0,0 +1,45 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Channels, ChannelFollowings } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; + +export const meta = { + tags: ['channels'], + + requireCredential: true as const, + + kind: 'write:channels', + + params: { + channelId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: 'c0031718-d573-4e85-928e-10039f1fbb68' + }, + } +}; + +export default define(meta, async (ps, user) => { + const channel = await Channels.findOne({ + id: ps.channelId, + }); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + + await ChannelFollowings.save({ + id: genId(), + createdAt: new Date(), + followerId: user.id, + followeeId: channel.id, + }); +}); diff --git a/src/server/api/endpoints/channels/followed.ts b/src/server/api/endpoints/channels/followed.ts new file mode 100644 index 000000000..bd37d420f --- /dev/null +++ b/src/server/api/endpoints/channels/followed.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Channels, ChannelFollowings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['channels', 'account'], + + requireCredential: true as const, + + kind: 'read:channels', + + params: { + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 5 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(ChannelFollowings.createQueryBuilder(), ps.sinceId, ps.untilId) + .andWhere({ followerId: me.id }); + + const followings = await query + .take(ps.limit!) + .getMany(); + + return await Promise.all(followings.map(x => Channels.pack(x.followeeId, me))); +}); diff --git a/src/server/api/endpoints/channels/owned.ts b/src/server/api/endpoints/channels/owned.ts new file mode 100644 index 000000000..1a7e04640 --- /dev/null +++ b/src/server/api/endpoints/channels/owned.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Channels } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['channels', 'account'], + + requireCredential: true as const, + + kind: 'read:channels', + + params: { + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 5 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Channels.createQueryBuilder(), ps.sinceId, ps.untilId) + .andWhere({ userId: me.id }); + + const channels = await query + .take(ps.limit!) + .getMany(); + + return await Promise.all(channels.map(x => Channels.pack(x, me))); +}); diff --git a/src/server/api/endpoints/channels/pin-note.ts b/src/server/api/endpoints/channels/pin-note.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/server/api/endpoints/channels/show.ts b/src/server/api/endpoints/channels/show.ts new file mode 100644 index 000000000..63057dd57 --- /dev/null +++ b/src/server/api/endpoints/channels/show.ts @@ -0,0 +1,43 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Channels } from '../../../../models'; + +export const meta = { + tags: ['channels'], + + requireCredential: false as const, + + params: { + channelId: { + validator: $.type(ID), + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + }, + + errors: { + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: '6f6c314b-7486-4897-8966-c04a66a02923' + }, + } +}; + +export default define(meta, async (ps, me) => { + const channel = await Channels.findOne({ + id: ps.channelId, + }); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + + return await Channels.pack(channel, me); +}); diff --git a/src/server/api/endpoints/channels/timeline.ts b/src/server/api/endpoints/channels/timeline.ts new file mode 100644 index 000000000..3ae28fc67 --- /dev/null +++ b/src/server/api/endpoints/channels/timeline.ts @@ -0,0 +1,99 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Notes, Channels } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { activeUsersChart } from '../../../../services/chart'; + +export const meta = { + tags: ['notes', 'channels'], + + requireCredential: false as const, + + params: { + channelId: { + validator: $.type(ID), + desc: { + 'ja-JP': 'チャンネルのID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + sinceDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより新しい投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + untilDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより古い投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: '4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f' + } + } +}; + +export default define(meta, async (ps, user) => { + const channel = await Channels.findOne({ + id: ps.channelId, + }); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + + //#region Construct query + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere('note.channelId = :channelId', { channelId: channel.id }) + .leftJoinAndSelect('note.user', 'user') + .leftJoinAndSelect('note.channel', 'channel'); + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + activeUsersChart.update(user); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/channels/unfollow.ts b/src/server/api/endpoints/channels/unfollow.ts new file mode 100644 index 000000000..8cab5c36a --- /dev/null +++ b/src/server/api/endpoints/channels/unfollow.ts @@ -0,0 +1,42 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Channels, ChannelFollowings } from '../../../../models'; + +export const meta = { + tags: ['channels'], + + requireCredential: true as const, + + kind: 'write:channels', + + params: { + channelId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: '19959ee9-0153-4c51-bbd9-a98c49dc59d6' + }, + } +}; + +export default define(meta, async (ps, user) => { + const channel = await Channels.findOne({ + id: ps.channelId, + }); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + + await ChannelFollowings.delete({ + followerId: user.id, + followeeId: channel.id, + }); +}); diff --git a/src/server/api/endpoints/channels/update.ts b/src/server/api/endpoints/channels/update.ts new file mode 100644 index 000000000..ca35fe85c --- /dev/null +++ b/src/server/api/endpoints/channels/update.ts @@ -0,0 +1,94 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Channels, DriveFiles } from '../../../../models'; + +export const meta = { + tags: ['channels'], + + requireCredential: true as const, + + kind: 'write:channels', + + params: { + channelId: { + validator: $.type(ID), + }, + + name: { + validator: $.optional.str.range(1, 128) + }, + + description: { + validator: $.nullable.optional.str.range(1, 2048) + }, + + bannerId: { + validator: $.nullable.optional.type(ID), + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Channel', + }, + + errors: { + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: 'f9c5467f-d492-4c3c-9a8d-a70dacc86512' + }, + + accessDenied: { + message: 'You do not have edit privilege of the channel.', + code: 'ACCESS_DENIED', + id: '1fb7cb09-d46a-4fdf-b8df-057788cce513' + }, + + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'e86c14a4-0da2-4032-8df3-e737a04c7f3b' + }, + } +}; + +export default define(meta, async (ps, me) => { + const channel = await Channels.findOne({ + id: ps.channelId, + }); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + + if (channel.userId !== me.id) { + throw new ApiError(meta.errors.accessDenied); + } + + // tslint:disable-next-line:no-unnecessary-initializer + let banner = undefined; + if (ps.bannerId != null) { + banner = await DriveFiles.findOne({ + id: ps.bannerId, + userId: me.id + }); + + if (banner == null) { + throw new ApiError(meta.errors.noSuchFile); + } + } else if (ps.bannerId === null) { + banner = null; + } + + await Channels.update(channel.id, { + ...(ps.name !== undefined ? { name: ps.name } : {}), + ...(ps.description !== undefined ? { description: ps.description } : {}), + ...(banner ? { bannerId: banner.id } : {}), + }); + + return await Channels.pack(channel.id, me); +}); diff --git a/src/server/api/endpoints/charts/active-users.ts b/src/server/api/endpoints/charts/active-users.ts new file mode 100644 index 000000000..df427ff4b --- /dev/null +++ b/src/server/api/endpoints/charts/active-users.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { activeUsersChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'アクティブユーザーのチャートを取得します。' + }, + + tags: ['charts', 'users'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(activeUsersChart.schema), +}; + +export default define(meta, async (ps) => { + return await activeUsersChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/charts/drive.ts b/src/server/api/endpoints/charts/drive.ts new file mode 100644 index 000000000..e1f279fa0 --- /dev/null +++ b/src/server/api/endpoints/charts/drive.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { driveChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブのチャートを取得します。' + }, + + tags: ['charts', 'drive'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(driveChart.schema), +}; + +export default define(meta, async (ps) => { + return await driveChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/charts/federation.ts b/src/server/api/endpoints/charts/federation.ts new file mode 100644 index 000000000..581e42f30 --- /dev/null +++ b/src/server/api/endpoints/charts/federation.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { federationChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'フェデレーションのチャートを取得します。' + }, + + tags: ['charts'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(federationChart.schema), +}; + +export default define(meta, async (ps) => { + return await federationChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/charts/hashtag.ts b/src/server/api/endpoints/charts/hashtag.ts new file mode 100644 index 000000000..1aa5c86b3 --- /dev/null +++ b/src/server/api/endpoints/charts/hashtag.ts @@ -0,0 +1,47 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { hashtagChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ハッシュタグごとのチャートを取得します。' + }, + + tags: ['charts', 'hashtags'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + tag: { + validator: $.str, + desc: { + 'ja-JP': '対象のハッシュタグ' + } + }, + }, + + res: convertLog(hashtagChart.schema), +}; + +export default define(meta, async (ps) => { + return await hashtagChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.tag); +}); diff --git a/src/server/api/endpoints/charts/instance.ts b/src/server/api/endpoints/charts/instance.ts new file mode 100644 index 000000000..f0f85ed71 --- /dev/null +++ b/src/server/api/endpoints/charts/instance.ts @@ -0,0 +1,48 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { instanceChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'インスタンスごとのチャートを取得します。' + }, + + tags: ['charts'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + host: { + validator: $.str, + desc: { + 'ja-JP': '対象のインスタンスのホスト', + 'en-US': 'Target instance host' + } + } + }, + + res: convertLog(instanceChart.schema), +}; + +export default define(meta, async (ps) => { + return await instanceChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.host); +}); diff --git a/src/server/api/endpoints/charts/network.ts b/src/server/api/endpoints/charts/network.ts new file mode 100644 index 000000000..d1337681a --- /dev/null +++ b/src/server/api/endpoints/charts/network.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { networkChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ネットワークのチャートを取得します。' + }, + + tags: ['charts'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(networkChart.schema), +}; + +export default define(meta, async (ps) => { + return await networkChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/charts/notes.ts b/src/server/api/endpoints/charts/notes.ts new file mode 100644 index 000000000..74aa48b36 --- /dev/null +++ b/src/server/api/endpoints/charts/notes.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { notesChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': '投稿のチャートを取得します。' + }, + + tags: ['charts', 'notes'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(notesChart.schema), +}; + +export default define(meta, async (ps) => { + return await notesChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/charts/user/drive.ts b/src/server/api/endpoints/charts/user/drive.ts new file mode 100644 index 000000000..5aae5bd75 --- /dev/null +++ b/src/server/api/endpoints/charts/user/drive.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { convertLog } from '../../../../../services/chart/core'; +import { perUserDriveChart } from '../../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーごとのドライブのチャートを取得します。' + }, + + tags: ['charts', 'drive', 'users'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + res: convertLog(perUserDriveChart.schema), +}; + +export default define(meta, async (ps) => { + return await perUserDriveChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.userId); +}); diff --git a/src/server/api/endpoints/charts/user/following.ts b/src/server/api/endpoints/charts/user/following.ts new file mode 100644 index 000000000..9d772c39c --- /dev/null +++ b/src/server/api/endpoints/charts/user/following.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { convertLog } from '../../../../../services/chart/core'; +import { perUserFollowingChart } from '../../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーごとのフォロー/フォロワーのチャートを取得します。' + }, + + tags: ['charts', 'users', 'following'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + res: convertLog(perUserFollowingChart.schema), +}; + +export default define(meta, async (ps) => { + return await perUserFollowingChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.userId); +}); diff --git a/src/server/api/endpoints/charts/user/notes.ts b/src/server/api/endpoints/charts/user/notes.ts new file mode 100644 index 000000000..8de7c0c3e --- /dev/null +++ b/src/server/api/endpoints/charts/user/notes.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { convertLog } from '../../../../../services/chart/core'; +import { perUserNotesChart } from '../../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーごとの投稿のチャートを取得します。' + }, + + tags: ['charts', 'users', 'notes'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + res: convertLog(perUserNotesChart.schema), +}; + +export default define(meta, async (ps) => { + return await perUserNotesChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.userId); +}); diff --git a/src/server/api/endpoints/charts/user/reactions.ts b/src/server/api/endpoints/charts/user/reactions.ts new file mode 100644 index 000000000..4c37305fc --- /dev/null +++ b/src/server/api/endpoints/charts/user/reactions.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '../../../../../misc/cafy-id'; +import { convertLog } from '../../../../../services/chart/core'; +import { perUserReactionsChart } from '../../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーごとの被リアクション数のチャートを取得します。' + }, + + tags: ['charts', 'users', 'reactions'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + res: convertLog(perUserReactionsChart.schema), +}; + +export default define(meta, async (ps) => { + return await perUserReactionsChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null, ps.userId); +}); diff --git a/src/server/api/endpoints/charts/users.ts b/src/server/api/endpoints/charts/users.ts new file mode 100644 index 000000000..18eec384a --- /dev/null +++ b/src/server/api/endpoints/charts/users.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import define from '../../define'; +import { convertLog } from '../../../../services/chart/core'; +import { usersChart } from '../../../../services/chart'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーのチャートを取得します。' + }, + + tags: ['charts', 'users'], + + params: { + span: { + validator: $.str.or(['day', 'hour']), + desc: { + 'ja-JP': '集計のスパン (day または hour)' + } + }, + + limit: { + validator: $.optional.num.range(1, 500), + default: 30, + desc: { + 'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。' + } + }, + + offset: { + validator: $.optional.nullable.num, + default: null, + }, + }, + + res: convertLog(usersChart.schema), +}; + +export default define(meta, async (ps) => { + return await usersChart.getChart(ps.span as any, ps.limit!, ps.offset ? new Date(ps.offset) : null); +}); diff --git a/src/server/api/endpoints/clips/add-note.ts b/src/server/api/endpoints/clips/add-note.ts new file mode 100644 index 000000000..4f5cc649e --- /dev/null +++ b/src/server/api/endpoints/clips/add-note.ts @@ -0,0 +1,76 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ClipNotes, Clips } from '../../../../models'; +import { ApiError } from '../../error'; +import { genId } from '../../../../misc/gen-id'; +import { getNote } from '../../common/getters'; + +export const meta = { + tags: ['account', 'notes', 'clips'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + clipId: { + validator: $.type(ID), + }, + + noteId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchClip: { + message: 'No such clip.', + code: 'NO_SUCH_CLIP', + id: 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf' + }, + + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b' + }, + + alreadyClipped: { + message: 'The note has already been clipped.', + code: 'ALREADY_CLIPPED', + id: '734806c4-542c-463a-9311-15c512803965' + }, + } +}; + +export default define(meta, async (ps, user) => { + const clip = await Clips.findOne({ + id: ps.clipId, + userId: user.id + }); + + if (clip == null) { + throw new ApiError(meta.errors.noSuchClip); + } + + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const exist = await ClipNotes.findOne({ + noteId: note.id, + clipId: clip.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyClipped); + } + + await ClipNotes.save({ + id: genId(), + noteId: note.id, + clipId: clip.id + }); +}); diff --git a/src/server/api/endpoints/clips/create.ts b/src/server/api/endpoints/clips/create.ts new file mode 100644 index 000000000..0d122dbb9 --- /dev/null +++ b/src/server/api/endpoints/clips/create.ts @@ -0,0 +1,39 @@ +import $ from 'cafy'; +import define from '../../define'; +import { genId } from '../../../../misc/gen-id'; +import { Clips } from '../../../../models'; + +export const meta = { + tags: ['clips'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + name: { + validator: $.str.range(1, 100) + }, + + isPublic: { + validator: $.optional.bool + }, + + description: { + validator: $.optional.nullable.str.range(1, 2048) + } + }, +}; + +export default define(meta, async (ps, user) => { + const clip = await Clips.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + isPublic: ps.isPublic, + description: ps.description, + }); + + return await Clips.pack(clip); +}); diff --git a/src/server/api/endpoints/clips/delete.ts b/src/server/api/endpoints/clips/delete.ts new file mode 100644 index 000000000..746f93188 --- /dev/null +++ b/src/server/api/endpoints/clips/delete.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Clips } from '../../../../models'; + +export const meta = { + tags: ['clips'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + clipId: { + validator: $.type(ID), + } + }, + + errors: { + noSuchClip: { + message: 'No such clip.', + code: 'NO_SUCH_CLIP', + id: '70ca08ba-6865-4630-b6fb-8494759aa754' + } + } +}; + +export default define(meta, async (ps, user) => { + const clip = await Clips.findOne({ + id: ps.clipId, + userId: user.id + }); + + if (clip == null) { + throw new ApiError(meta.errors.noSuchClip); + } + + await Clips.delete(clip.id); +}); diff --git a/src/server/api/endpoints/clips/list.ts b/src/server/api/endpoints/clips/list.ts new file mode 100644 index 000000000..6ede8ea0f --- /dev/null +++ b/src/server/api/endpoints/clips/list.ts @@ -0,0 +1,18 @@ +import define from '../../define'; +import { Clips } from '../../../../models'; + +export const meta = { + tags: ['clips', 'account'], + + requireCredential: true as const, + + kind: 'read:account', +}; + +export default define(meta, async (ps, me) => { + const clips = await Clips.find({ + userId: me.id, + }); + + return await Promise.all(clips.map(x => Clips.pack(x))); +}); diff --git a/src/server/api/endpoints/clips/notes.ts b/src/server/api/endpoints/clips/notes.ts new file mode 100644 index 000000000..13983d99f --- /dev/null +++ b/src/server/api/endpoints/clips/notes.ts @@ -0,0 +1,77 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ClipNotes, Clips, Notes } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { ApiError } from '../../error'; + +export const meta = { + tags: ['account', 'notes', 'clips'], + + requireCredential: false as const, + + kind: 'read:account', + + params: { + clipId: { + validator: $.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + errors: { + noSuchClip: { + message: 'No such clip.', + code: 'NO_SUCH_CLIP', + id: '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00' + } + } +}; + +export default define(meta, async (ps, user) => { + const clip = await Clips.findOne({ + id: ps.clipId, + }); + + if (clip == null) { + throw new ApiError(meta.errors.noSuchClip); + } + + if (!clip.isPublic && (user == null || (clip.userId !== user.id))) { + throw new ApiError(meta.errors.noSuchClip); + } + + const clipQuery = ClipNotes.createQueryBuilder('joining') + .select('joining.noteId') + .where('joining.clipId = :clipId', { clipId: clip.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(`note.id IN (${ clipQuery.getQuery() })`) + .leftJoinAndSelect('note.user', 'user') + .setParameters(clipQuery.getParameters()); + + if (user) { + generateVisibilityQuery(query, user); + generateMutedUserQuery(query, user); + } + + const notes = await query + .take(ps.limit!) + .getMany(); + + return await Notes.packMany(notes, user); +}); diff --git a/src/server/api/endpoints/clips/show.ts b/src/server/api/endpoints/clips/show.ts new file mode 100644 index 000000000..dc730d64a --- /dev/null +++ b/src/server/api/endpoints/clips/show.ts @@ -0,0 +1,44 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Clips } from '../../../../models'; + +export const meta = { + tags: ['clips', 'account'], + + requireCredential: false as const, + + kind: 'read:account', + + params: { + clipId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchClip: { + message: 'No such clip.', + code: 'NO_SUCH_CLIP', + id: 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the clip + const clip = await Clips.findOne({ + id: ps.clipId, + }); + + if (clip == null) { + throw new ApiError(meta.errors.noSuchClip); + } + + if (!clip.isPublic && (me == null || (clip.userId !== me.id))) { + throw new ApiError(meta.errors.noSuchClip); + } + + return await Clips.pack(clip); +}); diff --git a/src/server/api/endpoints/clips/update.ts b/src/server/api/endpoints/clips/update.ts new file mode 100644 index 000000000..4a1a31eb9 --- /dev/null +++ b/src/server/api/endpoints/clips/update.ts @@ -0,0 +1,59 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Clips } from '../../../../models'; + +export const meta = { + tags: ['clips'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + clipId: { + validator: $.type(ID), + }, + + name: { + validator: $.str.range(1, 100), + }, + + isPublic: { + validator: $.optional.bool + }, + + description: { + validator: $.optional.nullable.str.range(1, 2048) + } + }, + + errors: { + noSuchClip: { + message: 'No such clip.', + code: 'NO_SUCH_CLIP', + id: 'b4d92d70-b216-46fa-9a3f-a8c811699257' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch the clip + const clip = await Clips.findOne({ + id: ps.clipId, + userId: user.id + }); + + if (clip == null) { + throw new ApiError(meta.errors.noSuchClip); + } + + await Clips.update(clip.id, { + name: ps.name, + description: ps.description, + isPublic: ps.isPublic, + }); + + return await Clips.pack(clip.id); +}); diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts new file mode 100644 index 000000000..9b723a054 --- /dev/null +++ b/src/server/api/endpoints/drive.ts @@ -0,0 +1,43 @@ +import define from '../define'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { DriveFiles } from '../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブの情報を取得します。', + 'en-US': 'Get drive information.' + }, + + tags: ['drive', 'account'], + + requireCredential: true as const, + + kind: 'read:drive', + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + capacity: { + type: 'number' as const, + optional: false as const, nullable: false as const, + }, + usage: { + type: 'number' as const, + optional: false as const, nullable: false as const, + } + } + } +}; + +export default define(meta, async (ps, user) => { + const instance = await fetchMeta(true); + + // Calculate drive usage + const usage = await DriveFiles.clacDriveUsageOf(user); + + return { + capacity: 1024 * 1024 * instance.localDriveCapacityMb, + usage: usage + }; +}); diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts new file mode 100644 index 000000000..00705fb9b --- /dev/null +++ b/src/server/api/endpoints/drive/files.ts @@ -0,0 +1,75 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { DriveFiles } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブのファイル一覧を取得します。', + 'en-US': 'Get files of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + folderId: { + validator: $.optional.nullable.type(ID), + default: null as any, + }, + + type: { + validator: $.optional.nullable.str.match(/^[a-zA-Z\/\-*]+$/) + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId) + .andWhere('file.userId = :userId', { userId: user.id }); + + if (ps.folderId) { + query.andWhere('file.folderId = :folderId', { folderId: ps.folderId }); + } else { + query.andWhere('file.folderId IS NULL'); + } + + if (ps.type) { + if (ps.type.endsWith('/*')) { + query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); + } else { + query.andWhere('file.type = :type', { type: ps.type }); + } + } + + const files = await query.take(ps.limit!).getMany(); + + return await DriveFiles.packMany(files, { detail: false, self: true }); +}); diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts new file mode 100644 index 000000000..e1fc27f59 --- /dev/null +++ b/src/server/api/endpoints/drive/files/attached-notes.ts @@ -0,0 +1,66 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFiles, Notes } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのファイルが添付されている投稿一覧を取得します。', + 'en-US': 'Get the notes that specified file of drive attached.' + }, + + tags: ['drive', 'notes'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + fileId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のファイルID', + 'en-US': 'Target file ID' + } + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'c118ece3-2e4b-4296-99d1-51756e32d232', + } + } +}; + +export default define(meta, async (ps, user) => { + // Fetch file + const file = await DriveFiles.findOne({ + id: ps.fileId, + userId: user.id, + }); + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + + const notes = await Notes.createQueryBuilder('note') + .where(':file = ANY(note.fileIds)', { file: file.id }) + .getMany(); + + return await Notes.packMany(notes, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/drive/files/check-existence.ts b/src/server/api/endpoints/drive/files/check-existence.ts new file mode 100644 index 000000000..f1741cf08 --- /dev/null +++ b/src/server/api/endpoints/drive/files/check-existence.ts @@ -0,0 +1,39 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '与えられたMD5ハッシュ値を持つファイルがドライブに存在するかどうかを返します。', + 'en-US': 'Returns whether the file with the given MD5 hash exists in the user\'s drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + md5: { + validator: $.str, + desc: { + 'ja-JP': 'ファイルのMD5ハッシュ' + } + } + }, + + res: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + }, +}; + +export default define(meta, async (ps, user) => { + const file = await DriveFiles.findOne({ + md5: ps.md5, + userId: user.id, + }); + + return file != null; +}); diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts new file mode 100644 index 000000000..c0bb6bcc6 --- /dev/null +++ b/src/server/api/endpoints/drive/files/create.ts @@ -0,0 +1,107 @@ +import * as ms from 'ms'; +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import create from '../../../../../services/drive/add-file'; +import define from '../../../define'; +import { apiLogger } from '../../../logger'; +import { ApiError } from '../../../error'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブにファイルをアップロードします。', + 'en-US': 'Upload a file to drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + limit: { + duration: ms('1hour'), + max: 120 + }, + + requireFile: true, + + kind: 'write:drive', + + params: { + folderId: { + validator: $.optional.nullable.type(ID), + default: null as any, + desc: { + 'ja-JP': 'フォルダID' + } + }, + + name: { + validator: $.optional.nullable.str, + default: null as any, + desc: { + 'ja-JP': 'ファイル名(拡張子があるなら含めて)' + } + }, + + isSensitive: { + validator: $.optional.either($.bool, $.str), + default: false, + transform: (v: any): boolean => v === true || v === 'true', + desc: { + 'ja-JP': 'このメディアが「閲覧注意」(NSFW)かどうか', + 'en-US': 'Whether this media is NSFW' + } + }, + + force: { + validator: $.optional.either($.bool, $.str), + default: false, + transform: (v: any): boolean => v === true || v === 'true', + desc: { + 'ja-JP': 'true にすると、同じハッシュを持つファイルが既にアップロードされていても強制的にファイルを作成します。', + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + }, + + errors: { + invalidFileName: { + message: 'Invalid file name.', + code: 'INVALID_FILE_NAME', + id: 'f449b209-0c60-4e51-84d5-29486263bfd4' + } + } +}; + +export default define(meta, async (ps, user, _, file, cleanup) => { + // Get 'name' parameter + let name = ps.name || file.originalname; + if (name !== undefined && name !== null) { + name = name.trim(); + if (name.length === 0) { + name = null; + } else if (name === 'blob') { + name = null; + } else if (!DriveFiles.validateFileName(name)) { + throw new ApiError(meta.errors.invalidFileName); + } + } else { + name = null; + } + + try { + // Create file + const driveFile = await create(user, file.path, name, null, ps.folderId, ps.force, false, null, null, ps.isSensitive); + return await DriveFiles.pack(driveFile, { self: true }); + } catch (e) { + apiLogger.error(e); + throw new ApiError(); + } finally { + cleanup!(); + } +}); diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts new file mode 100644 index 000000000..77d112ec9 --- /dev/null +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -0,0 +1,62 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { deleteFile } from '../../../../../services/drive/delete-file'; +import { publishDriveStream } from '../../../../../services/stream'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブのファイルを削除します。', + 'en-US': 'Delete a file of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + fileId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のファイルID', + 'en-US': 'Target file ID' + } + } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: '908939ec-e52b-4458-b395-1025195cea58' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '5eb8d909-2540-4970-90b8-dd6f86088121' + }, + } +}; + +export default define(meta, async (ps, user) => { + const file = await DriveFiles.findOne(ps.fileId); + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + + if (!user.isAdmin && !user.isModerator && (file.userId !== user.id)) { + throw new ApiError(meta.errors.accessDenied); + } + + // Delete + await deleteFile(file); + + // Publish fileDeleted event + publishDriveStream(user.id, 'fileDeleted', file.id); +}); diff --git a/src/server/api/endpoints/drive/files/find-by-hash.ts b/src/server/api/endpoints/drive/files/find-by-hash.ts new file mode 100644 index 000000000..336c85c44 --- /dev/null +++ b/src/server/api/endpoints/drive/files/find-by-hash.ts @@ -0,0 +1,43 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '与えられたMD5ハッシュ値を持つファイルを取得します。', + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + md5: { + validator: $.str, + desc: { + 'ja-JP': 'ファイルのMD5ハッシュ' + } + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + } + }, +}; + +export default define(meta, async (ps, user) => { + const files = await DriveFiles.find({ + md5: ps.md5, + userId: user.id, + }); + + return await DriveFiles.packMany(files, { self: true }); +}); diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts new file mode 100644 index 000000000..5872e2c0c --- /dev/null +++ b/src/server/api/endpoints/drive/files/find.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + requireCredential: true as const, + + tags: ['drive'], + + kind: 'read:drive', + + params: { + name: { + validator: $.str + }, + + folderId: { + validator: $.optional.nullable.type(ID), + default: null as any, + desc: { + 'ja-JP': 'フォルダID' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + } + }, +}; + +export default define(meta, async (ps, user) => { + const files = await DriveFiles.find({ + name: ps.name, + userId: user.id, + folderId: ps.folderId + }); + + return await Promise.all(files.map(file => DriveFiles.pack(file, { self: true }))); +}); diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts new file mode 100644 index 000000000..39f4b7d2f --- /dev/null +++ b/src/server/api/endpoints/drive/files/show.ts @@ -0,0 +1,97 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFile } from '../../../../../models/entities/drive-file'; +import { DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのファイルの情報を取得します。', + 'en-US': 'Get specified file of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + fileId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のファイルID', + 'en-US': 'Target file ID' + } + }, + + url: { + validator: $.optional.str, + desc: { + 'ja-JP': '対象のファイルのURL', + 'en-US': 'Target file URL' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: '067bc436-2718-4795-b0fb-ecbe43949e31' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '25b73c73-68b1-41d0-bad1-381cfdf6579f' + }, + + fileIdOrUrlRequired: { + message: 'fileId or url required.', + code: 'INVALID_PARAM', + id: '89674805-722c-440c-8d88-5641830dc3e4' + } + } +}; + +export default define(meta, async (ps, user) => { + let file: DriveFile | undefined; + + if (ps.fileId) { + file = await DriveFiles.findOne(ps.fileId); + } else if (ps.url) { + file = await DriveFiles.findOne({ + where: [{ + url: ps.url + }, { + webpublicUrl: ps.url + }, { + thumbnailUrl: ps.url + }], + }); + } else { + throw new ApiError(meta.errors.fileIdOrUrlRequired); + } + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + + if (!user.isAdmin && !user.isModerator && (file.userId !== user.id)) { + throw new ApiError(meta.errors.accessDenied); + } + + return await DriveFiles.pack(file, { + detail: true, + withUser: true, + self: true + }); +}); diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts new file mode 100644 index 000000000..f57166a2f --- /dev/null +++ b/src/server/api/endpoints/drive/files/update.ts @@ -0,0 +1,120 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishDriveStream } from '../../../../../services/stream'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFiles, DriveFolders } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのファイルの情報を更新します。', + 'en-US': 'Update specified file of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + fileId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のファイルID' + } + }, + + folderId: { + validator: $.optional.nullable.type(ID), + default: undefined as any, + desc: { + 'ja-JP': 'フォルダID' + } + }, + + name: { + validator: $.optional.str.pipe(DriveFiles.validateFileName), + default: undefined as any, + desc: { + 'ja-JP': 'ファイル名', + 'en-US': 'Name of the file' + } + }, + + isSensitive: { + validator: $.optional.bool, + default: undefined as any, + desc: { + 'ja-JP': 'このメディアが「閲覧注意」(NSFW)かどうか', + 'en-US': 'Whether this media is NSFW' + } + } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '01a53b27-82fc-445b-a0c1-b558465a8ed2' + }, + + noSuchFolder: { + message: 'No such folder.', + code: 'NO_SUCH_FOLDER', + id: 'ea8fb7a5-af77-4a08-b608-c0218176cd73' + }, + } +}; + +export default define(meta, async (ps, user) => { + const file = await DriveFiles.findOne(ps.fileId); + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + + if (!user.isAdmin && !user.isModerator && (file.userId !== user.id)) { + throw new ApiError(meta.errors.accessDenied); + } + + if (ps.name) file.name = ps.name; + + if (ps.isSensitive !== undefined) file.isSensitive = ps.isSensitive; + + if (ps.folderId !== undefined) { + if (ps.folderId === null) { + file.folderId = null; + } else { + const folder = await DriveFolders.findOne({ + id: ps.folderId, + userId: user.id + }); + + if (folder == null) { + throw new ApiError(meta.errors.noSuchFolder); + } + + file.folderId = folder.id; + } + } + + await DriveFiles.update(file.id, { + name: file.name, + folderId: file.folderId, + isSensitive: file.isSensitive + }); + + const fileObj = await DriveFiles.pack(file, { self: true }); + + // Publish fileUpdated event + publishDriveStream(user.id, 'fileUpdated', fileObj); + + return fileObj; +}); diff --git a/src/server/api/endpoints/drive/files/upload-from-url.ts b/src/server/api/endpoints/drive/files/upload-from-url.ts new file mode 100644 index 000000000..296211c09 --- /dev/null +++ b/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -0,0 +1,74 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import * as ms from 'ms'; +import uploadFromUrl from '../../../../../services/drive/upload-from-url'; +import define from '../../../define'; +import { DriveFiles } from '../../../../../models'; +import { publishMainStream } from '../../../../../services/stream'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブに指定されたURLに存在するファイルをアップロードします。' + }, + + tags: ['drive'], + + limit: { + duration: ms('1hour'), + max: 60 + }, + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + url: { + // TODO: Validate this url + validator: $.str, + }, + + folderId: { + validator: $.optional.nullable.type(ID), + default: null as any, + }, + + isSensitive: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'このメディアが「閲覧注意」(NSFW)かどうか', + 'en-US': 'Whether this media is NSFW' + } + }, + + comment: { + validator: $.optional.nullable.str, + default: null as any, + }, + + marker: { + validator: $.optional.nullable.str, + default: null as any, + }, + + force: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'true にすると、同じハッシュを持つファイルが既にアップロードされていても強制的にファイルを作成します。', + } + } + } +}; + +export default define(meta, async (ps, user) => { + uploadFromUrl(ps.url, user, ps.folderId, null, ps.isSensitive, ps.force, false, ps.comment).then(file => { + DriveFiles.pack(file, { self: true }).then(packedFile => { + publishMainStream(user.id, 'urlUploadFinished', { + marker: ps.marker, + file: packedFile + }); + }); + }); +}); diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts new file mode 100644 index 000000000..f662d53ba --- /dev/null +++ b/src/server/api/endpoints/drive/folders.ts @@ -0,0 +1,63 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { DriveFolders } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブのフォルダ一覧を取得します。', + 'en-US': 'Get folders of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + folderId: { + validator: $.optional.nullable.type(ID), + default: null as any, + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFolder', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(DriveFolders.createQueryBuilder('folder'), ps.sinceId, ps.untilId) + .andWhere('folder.userId = :userId', { userId: user.id }); + + if (ps.folderId) { + query.andWhere('folder.parentId = :parentId', { parentId: ps.folderId }); + } else { + query.andWhere('folder.parentId IS NULL'); + } + + const folders = await query.take(ps.limit!).getMany(); + + return await Promise.all(folders.map(folder => DriveFolders.pack(folder))); +}); diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts new file mode 100644 index 000000000..d88bfcc3d --- /dev/null +++ b/src/server/api/endpoints/drive/folders/create.ts @@ -0,0 +1,79 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishDriveStream } from '../../../../../services/stream'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFolders } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; + +export const meta = { + desc: { + 'ja-JP': 'ドライブのフォルダを作成します。', + 'en-US': 'Create a folder of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + name: { + validator: $.optional.str.pipe(DriveFolders.validateFolderName), + default: 'Untitled', + desc: { + 'ja-JP': 'フォルダ名', + 'en-US': 'Folder name' + } + }, + + parentId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': '親フォルダID', + 'en-US': 'Parent folder ID' + } + } + }, + + errors: { + noSuchFolder: { + message: 'No such folder.', + code: 'NO_SUCH_FOLDER', + id: '53326628-a00d-40a6-a3cd-8975105c0f95' + }, + } +}; + +export default define(meta, async (ps, user) => { + // If the parent folder is specified + let parent = null; + if (ps.parentId) { + // Fetch parent folder + parent = await DriveFolders.findOne({ + id: ps.parentId, + userId: user.id + }); + + if (parent == null) { + throw new ApiError(meta.errors.noSuchFolder); + } + } + + // Create folder + const folder = await DriveFolders.save({ + id: genId(), + createdAt: new Date(), + name: ps.name, + parentId: parent !== null ? parent.id : null, + userId: user.id + }); + + const folderObj = await DriveFolders.pack(folder); + + // Publish folderCreated event + publishDriveStream(user.id, 'folderCreated', folderObj); + + return folderObj; +}); diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts new file mode 100644 index 000000000..439ef06a5 --- /dev/null +++ b/src/server/api/endpoints/drive/folders/delete.ts @@ -0,0 +1,69 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { publishDriveStream } from '../../../../../services/stream'; +import { ApiError } from '../../../error'; +import { DriveFolders, DriveFiles } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのフォルダを削除します。', + 'en-US': 'Delete specified folder of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + folderId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のフォルダID', + 'en-US': 'Target folder ID' + } + } + }, + + errors: { + noSuchFolder: { + message: 'No such folder.', + code: 'NO_SUCH_FOLDER', + id: '1069098f-c281-440f-b085-f9932edbe091' + }, + + hasChildFilesOrFolders: { + message: 'This folder has child files or folders.', + code: 'HAS_CHILD_FILES_OR_FOLDERS', + id: 'b0fc8a17-963c-405d-bfbc-859a487295e1' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Get folder + const folder = await DriveFolders.findOne({ + id: ps.folderId, + userId: user.id + }); + + if (folder == null) { + throw new ApiError(meta.errors.noSuchFolder); + } + + const [childFoldersCount, childFilesCount] = await Promise.all([ + DriveFolders.count({ parentId: folder.id }), + DriveFiles.count({ folderId: folder.id }) + ]); + + if (childFoldersCount !== 0 || childFilesCount !== 0) { + throw new ApiError(meta.errors.hasChildFilesOrFolders); + } + + await DriveFolders.delete(folder.id); + + // Publish folderCreated event + publishDriveStream(user.id, 'folderDeleted', folder.id); +}); diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts new file mode 100644 index 000000000..72ce1d192 --- /dev/null +++ b/src/server/api/endpoints/drive/folders/find.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { DriveFolders } from '../../../../../models'; + +export const meta = { + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + name: { + validator: $.str + }, + + parentId: { + validator: $.optional.nullable.type(ID), + default: null as any, + desc: { + 'ja-JP': 'フォルダID' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFolder', + } + }, +}; + +export default define(meta, async (ps, user) => { + const folders = await DriveFolders.find({ + name: ps.name, + userId: user.id, + parentId: ps.parentId + }); + + return await Promise.all(folders.map(folder => DriveFolders.pack(folder))); +}); diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts new file mode 100644 index 000000000..b600b5e39 --- /dev/null +++ b/src/server/api/endpoints/drive/folders/show.ts @@ -0,0 +1,58 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFolders } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのフォルダの情報を取得します。', + 'en-US': 'Get specified folder of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + folderId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のフォルダID', + 'en-US': 'Target folder ID' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFolder', + }, + + errors: { + noSuchFolder: { + message: 'No such folder.', + code: 'NO_SUCH_FOLDER', + id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Get folder + const folder = await DriveFolders.findOne({ + id: ps.folderId, + userId: user.id + }); + + if (folder == null) { + throw new ApiError(meta.errors.noSuchFolder); + } + + return await DriveFolders.pack(folder, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts new file mode 100644 index 000000000..e23a824d1 --- /dev/null +++ b/src/server/api/endpoints/drive/folders/update.ts @@ -0,0 +1,134 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishDriveStream } from '../../../../../services/stream'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { DriveFolders } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したドライブのフォルダの情報を更新します。', + 'en-US': 'Update specified folder of drive.' + }, + + tags: ['drive'], + + requireCredential: true as const, + + kind: 'write:drive', + + params: { + folderId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のフォルダID', + 'en-US': 'Target folder ID' + } + }, + + name: { + validator: $.optional.str.pipe(DriveFolders.validateFolderName), + desc: { + 'ja-JP': 'フォルダ名', + 'en-US': 'Folder name' + } + }, + + parentId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': '親フォルダID', + 'en-US': 'Parent folder ID' + } + } + }, + + errors: { + noSuchFolder: { + message: 'No such folder.', + code: 'NO_SUCH_FOLDER', + id: 'f7974dac-2c0d-4a27-926e-23583b28e98e' + }, + + noSuchParentFolder: { + message: 'No such parent folder.', + code: 'NO_SUCH_PARENT_FOLDER', + id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1' + }, + + recursiveNesting: { + message: 'It can not be structured like nesting folders recursively.', + code: 'NO_SUCH_PARENT_FOLDER', + id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch folder + const folder = await DriveFolders.findOne({ + id: ps.folderId, + userId: user.id + }); + + if (folder == null) { + throw new ApiError(meta.errors.noSuchFolder); + } + + if (ps.name) folder.name = ps.name; + + if (ps.parentId !== undefined) { + if (ps.parentId === folder.id) { + throw new ApiError(meta.errors.recursiveNesting); + } else if (ps.parentId === null) { + folder.parentId = null; + } else { + // Get parent folder + const parent = await DriveFolders.findOne({ + id: ps.parentId, + userId: user.id + }); + + if (parent == null) { + throw new ApiError(meta.errors.noSuchParentFolder); + } + + // Check if the circular reference will occur + async function checkCircle(folderId: any): Promise { + // Fetch folder + const folder2 = await DriveFolders.findOne({ + id: folderId + }); + + if (folder2!.id === folder!.id) { + return true; + } else if (folder2!.parentId) { + return await checkCircle(folder2!.parentId); + } else { + return false; + } + } + + if (parent.parentId !== null) { + if (await checkCircle(parent.parentId)) { + throw new ApiError(meta.errors.recursiveNesting); + } + } + + folder.parentId = parent.id; + } + } + + // Update + DriveFolders.update(folder.id, { + name: folder.name, + parentId: folder.parentId + }); + + const folderObj = await DriveFolders.pack(folder); + + // Publish folderUpdated event + publishDriveStream(user.id, 'folderUpdated', folderObj); + + return folderObj; +}); diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts new file mode 100644 index 000000000..94c2051bb --- /dev/null +++ b/src/server/api/endpoints/drive/stream.ts @@ -0,0 +1,59 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { DriveFiles } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['drive'], + + requireCredential: true as const, + + kind: 'read:drive', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + type: { + validator: $.optional.str.match(/^[a-zA-Z\/\-*]+$/) + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'DriveFile', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(DriveFiles.createQueryBuilder('file'), ps.sinceId, ps.untilId) + .andWhere('file.userId = :userId', { userId: user.id }); + + if (ps.type) { + if (ps.type.endsWith('/*')) { + query.andWhere('file.type like :type', { type: ps.type.replace('/*', '/') + '%' }); + } else { + query.andWhere('file.type = :type', { type: ps.type }); + } + } + + const files = await query.take(ps.limit!).getMany(); + + return await DriveFiles.packMany(files, { detail: false, self: true }); +}); diff --git a/src/server/api/endpoints/endpoint.ts b/src/server/api/endpoints/endpoint.ts new file mode 100644 index 000000000..1a04d8bee --- /dev/null +++ b/src/server/api/endpoints/endpoint.ts @@ -0,0 +1,26 @@ +import $ from 'cafy'; +import define from '../define'; +import endpoints from '../endpoints'; + +export const meta = { + requireCredential: false as const, + + tags: ['meta'], + + params: { + endpoint: { + validator: $.str, + } + }, +}; + +export default define(meta, async (ps) => { + const ep = endpoints.find(x => x.name === ps.endpoint); + if (ep == null) return null; + return { + params: Object.entries(ep.meta.params || {}).map(([k, v]) => ({ + name: k, + type: v.validator.name === 'ID' ? 'String' : v.validator.name + })) + }; +}); diff --git a/src/server/api/endpoints/endpoints.ts b/src/server/api/endpoints/endpoints.ts new file mode 100644 index 000000000..3ab14389a --- /dev/null +++ b/src/server/api/endpoints/endpoints.ts @@ -0,0 +1,15 @@ +import define from '../define'; +import endpoints from '../endpoints'; + +export const meta = { + requireCredential: false as const, + + tags: ['meta'], + + params: { + }, +}; + +export default define(meta, async () => { + return endpoints.map(x => x.name); +}); diff --git a/src/server/api/endpoints/federation/followers.ts b/src/server/api/endpoints/federation/followers.ts new file mode 100644 index 000000000..a5c564b0a --- /dev/null +++ b/src/server/api/endpoints/federation/followers.ts @@ -0,0 +1,51 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Followings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['federation'], + + requireCredential: false as const, + + params: { + host: { + validator: $.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Following', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) + .andWhere(`following.followeeHost = :host`, { host: ps.host }); + + const followings = await query + .take(ps.limit!) + .getMany(); + + return await Followings.packMany(followings, me, { populateFollowee: true }); +}); diff --git a/src/server/api/endpoints/federation/following.ts b/src/server/api/endpoints/federation/following.ts new file mode 100644 index 000000000..80820f5a2 --- /dev/null +++ b/src/server/api/endpoints/federation/following.ts @@ -0,0 +1,51 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Followings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['federation'], + + requireCredential: false as const, + + params: { + host: { + validator: $.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Following', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) + .andWhere(`following.followerHost = :host`, { host: ps.host }); + + const followings = await query + .take(ps.limit!) + .getMany(); + + return await Followings.packMany(followings, me, { populateFollowee: true }); +}); diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts new file mode 100644 index 000000000..6b6fe42a4 --- /dev/null +++ b/src/server/api/endpoints/federation/instances.ts @@ -0,0 +1,138 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Instances } from '../../../../models'; +import { fetchMeta } from '../../../../misc/fetch-meta'; + +export const meta = { + tags: ['federation'], + + requireCredential: false as const, + + params: { + host: { + validator: $.optional.nullable.str, + }, + + blocked: { + validator: $.optional.nullable.bool, + }, + + notResponding: { + validator: $.optional.nullable.bool, + }, + + suspended: { + validator: $.optional.nullable.bool, + }, + + federating: { + validator: $.optional.nullable.bool, + }, + + subscribing: { + validator: $.optional.nullable.bool, + }, + + publishing: { + validator: $.optional.nullable.bool, + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 30 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + }, + + sort: { + validator: $.optional.str, + } + } +}; + +export default define(meta, async (ps, me) => { + const query = Instances.createQueryBuilder('instance'); + + switch (ps.sort) { + case '+pubSub': query.orderBy('instance.followingCount', 'DESC').orderBy('instance.followersCount', 'DESC'); break; + case '-pubSub': query.orderBy('instance.followingCount', 'ASC').orderBy('instance.followersCount', 'ASC'); break; + case '+notes': query.orderBy('instance.notesCount', 'DESC'); break; + case '-notes': query.orderBy('instance.notesCount', 'ASC'); break; + case '+users': query.orderBy('instance.usersCount', 'DESC'); break; + case '-users': query.orderBy('instance.usersCount', 'ASC'); break; + case '+following': query.orderBy('instance.followingCount', 'DESC'); break; + case '-following': query.orderBy('instance.followingCount', 'ASC'); break; + case '+followers': query.orderBy('instance.followersCount', 'DESC'); break; + case '-followers': query.orderBy('instance.followersCount', 'ASC'); break; + case '+caughtAt': query.orderBy('instance.caughtAt', 'DESC'); break; + case '-caughtAt': query.orderBy('instance.caughtAt', 'ASC'); break; + case '+lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'DESC'); break; + case '-lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'ASC'); break; + case '+driveUsage': query.orderBy('instance.driveUsage', 'DESC'); break; + case '-driveUsage': query.orderBy('instance.driveUsage', 'ASC'); break; + case '+driveFiles': query.orderBy('instance.driveFiles', 'DESC'); break; + case '-driveFiles': query.orderBy('instance.driveFiles', 'ASC'); break; + + default: query.orderBy('instance.id', 'DESC'); break; + } + + if (typeof ps.blocked === 'boolean') { + const meta = await fetchMeta(true); + if (ps.blocked) { + query.andWhere('instance.host IN (:...blocks)', { blocks: meta.blockedHosts }); + } else { + query.andWhere('instance.host NOT IN (:...blocks)', { blocks: meta.blockedHosts }); + } + } + + if (typeof ps.notResponding === 'boolean') { + if (ps.notResponding) { + query.andWhere('instance.isNotResponding = TRUE'); + } else { + query.andWhere('instance.isNotResponding = FALSE'); + } + } + + if (typeof ps.suspended === 'boolean') { + if (ps.suspended) { + query.andWhere('instance.isSuspended = TRUE'); + } else { + query.andWhere('instance.isSuspended = FALSE'); + } + } + + if (typeof ps.federating === 'boolean') { + if (ps.federating) { + query.andWhere('((instance.followingCount > 0) OR (instance.followersCount > 0))'); + } else { + query.andWhere('((instance.followingCount = 0) AND (instance.followersCount = 0))'); + } + } + + if (typeof ps.subscribing === 'boolean') { + if (ps.subscribing) { + query.andWhere('instance.followersCount > 0'); + } else { + query.andWhere('instance.followersCount = 0'); + } + } + + if (typeof ps.publishing === 'boolean') { + if (ps.publishing) { + query.andWhere('instance.followingCount > 0'); + } else { + query.andWhere('instance.followingCount = 0'); + } + } + + if (ps.host) { + query.andWhere('instance.host like :host', { host: '%' + ps.host.toLowerCase() + '%' }); + } + + const instances = await query.take(ps.limit!).skip(ps.offset).getMany(); + + return instances; +}); diff --git a/src/server/api/endpoints/federation/show-instance.ts b/src/server/api/endpoints/federation/show-instance.ts new file mode 100644 index 000000000..8c3b46997 --- /dev/null +++ b/src/server/api/endpoints/federation/show-instance.ts @@ -0,0 +1,23 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Instances } from '../../../../models'; +import { toPuny } from '../../../../misc/convert-host'; + +export const meta = { + tags: ['federation'], + + requireCredential: false as const, + + params: { + host: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, me) => { + const instance = await Instances + .findOne({ host: toPuny(ps.host) }); + + return instance; +}); diff --git a/src/server/api/endpoints/federation/users.ts b/src/server/api/endpoints/federation/users.ts new file mode 100644 index 000000000..1bd053ae8 --- /dev/null +++ b/src/server/api/endpoints/federation/users.ts @@ -0,0 +1,51 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Users } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + tags: ['federation'], + + requireCredential: false as const, + + params: { + host: { + validator: $.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Users.createQueryBuilder('user'), ps.sinceId, ps.untilId) + .andWhere(`user.host = :host`, { host: ps.host }); + + const users = await query + .take(ps.limit!) + .getMany(); + + return await Users.packMany(users, me, { detail: true }); +}); diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts new file mode 100644 index 000000000..d5ade3073 --- /dev/null +++ b/src/server/api/endpoints/following/create.ts @@ -0,0 +1,103 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import * as ms from 'ms'; +import create from '../../../../services/following/create'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Followings, Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーをフォローします。', + 'en-US': 'Follow a user.' + }, + + tags: ['following', 'users'], + + limit: { + duration: ms('1hour'), + max: 100 + }, + + requireCredential: true as const, + + kind: 'write:following', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5' + }, + + followeeIsYourself: { + message: 'Followee is yourself.', + code: 'FOLLOWEE_IS_YOURSELF', + id: '26fbe7bb-a331-4857-af17-205b426669a9' + }, + + alreadyFollowing: { + message: 'You are already following that user.', + code: 'ALREADY_FOLLOWING', + id: '35387507-38c7-4cb9-9197-300b93783fa0' + }, + + blocking: { + message: 'You are blocking that user.', + code: 'BLOCKING', + id: '4e2206ec-aa4f-4960-b865-6c23ac38e2d9' + }, + + blocked: { + message: 'You are blocked by that user.', + code: 'BLOCKED', + id: 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0' + }, + } +}; + +export default define(meta, async (ps, user) => { + const follower = user; + + // 自分自身 + if (user.id === ps.userId) { + throw new ApiError(meta.errors.followeeIsYourself); + } + + // Get followee + const followee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check if already following + const exist = await Followings.findOne({ + followerId: follower.id, + followeeId: followee.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyFollowing); + } + + try { + await create(follower, followee); + } catch (e) { + if (e.id === '710e8fb0-b8c3-4922-be49-d5d93d8e6a6e') throw new ApiError(meta.errors.blocking); + if (e.id === '3338392a-f764-498d-8855-db939dcf8c48') throw new ApiError(meta.errors.blocked); + throw e; + } + + return await Users.pack(followee.id, user); +}); diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts new file mode 100644 index 000000000..692ac9214 --- /dev/null +++ b/src/server/api/endpoints/following/delete.ts @@ -0,0 +1,85 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import * as ms from 'ms'; +import deleteFollowing from '../../../../services/following/delete'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Followings, Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのフォローを解除します。', + 'en-US': 'Unfollow a user.' + }, + + tags: ['following', 'users'], + + limit: { + duration: ms('1hour'), + max: 100 + }, + + requireCredential: true as const, + + kind: 'write:following', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8' + }, + + followeeIsYourself: { + message: 'Followee is yourself.', + code: 'FOLLOWEE_IS_YOURSELF', + id: 'd9e400b9-36b0-4808-b1d8-79e707f1296c' + }, + + notFollowing: { + message: 'You are not following that user.', + code: 'NOT_FOLLOWING', + id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09' + }, + } +}; + +export default define(meta, async (ps, user) => { + const follower = user; + + // Check if the followee is yourself + if (user.id === ps.userId) { + throw new ApiError(meta.errors.followeeIsYourself); + } + + // Get followee + const followee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check not following + const exist = await Followings.findOne({ + followerId: follower.id, + followeeId: followee.id + }); + + if (exist == null) { + throw new ApiError(meta.errors.notFollowing); + } + + await deleteFollowing(follower, followee); + + return await Users.pack(followee.id, user); +}); diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts new file mode 100644 index 000000000..6f3a0510a --- /dev/null +++ b/src/server/api/endpoints/following/requests/accept.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import acceptFollowRequest from '../../../../../services/following/requests/accept'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; + +export const meta = { + desc: { + 'ja-JP': '自分に届いた、指定したフォローリクエストを承認します。', + 'en-US': 'Accept a follow request.' + }, + + tags: ['following', 'account'], + + requireCredential: true as const, + + kind: 'write:following', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '66ce1645-d66c-46bb-8b79-96739af885bd' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch follower + const follower = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + await acceptFollowRequest(user, follower); + + return; +}); diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts new file mode 100644 index 000000000..a12e1f76b --- /dev/null +++ b/src/server/api/endpoints/following/requests/cancel.ts @@ -0,0 +1,61 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import cancelFollowRequest from '../../../../../services/following/requests/cancel'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { Users } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '自分が作成した、指定したフォローリクエストをキャンセルします。', + 'en-US': 'Cancel a follow request.' + }, + + tags: ['following', 'account'], + + requireCredential: true as const, + + kind: 'write:following', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab' + }, + + followRequestNotFound: { + message: 'Follow request not found.', + code: 'FOLLOW_REQUEST_NOT_FOUND', + id: '089b125b-d338-482a-9a09-e2622ac9f8d4' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch followee + const followee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + try { + await cancelFollowRequest(followee, user); + } catch (e) { + if (e.id === '17447091-ce07-46dd-b331-c1fd4f15b1e7') throw new ApiError(meta.errors.followRequestNotFound); + throw e; + } + + return await Users.pack(followee.id, user); +}); diff --git a/src/server/api/endpoints/following/requests/list.ts b/src/server/api/endpoints/following/requests/list.ts new file mode 100644 index 000000000..78f937bb0 --- /dev/null +++ b/src/server/api/endpoints/following/requests/list.ts @@ -0,0 +1,23 @@ +import define from '../../../define'; +import { FollowRequests } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '自分に届いたフォローリクエストの一覧を取得します。', + 'en-US': 'Get all pending received follow requests.' + }, + + tags: ['following', 'account'], + + requireCredential: true as const, + + kind: 'read:following' +}; + +export default define(meta, async (ps, user) => { + const reqs = await FollowRequests.find({ + followeeId: user.id + }); + + return await Promise.all(reqs.map(req => FollowRequests.pack(req))); +}); diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts new file mode 100644 index 000000000..d5c9a5b7e --- /dev/null +++ b/src/server/api/endpoints/following/requests/reject.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import rejectFollowRequest from '../../../../../services/following/requests/reject'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; + +export const meta = { + desc: { + 'ja-JP': '自分に届いた、指定したフォローリクエストを拒否します。', + 'en-US': 'Reject a follow request.' + }, + + tags: ['following', 'account'], + + requireCredential: true as const, + + kind: 'write:following', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'abc2ffa6-25b2-4380-ba99-321ff3a94555' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch follower + const follower = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + await rejectFollowRequest(user, follower); + + return; +}); diff --git a/src/server/api/endpoints/games/reversi/games.ts b/src/server/api/endpoints/games/reversi/games.ts new file mode 100644 index 000000000..7267157e0 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/games.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ReversiGames } from '../../../../../models'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { Brackets } from 'typeorm'; + +export const meta = { + tags: ['games'], + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + my: { + validator: $.optional.bool, + default: false + } + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(ReversiGames.createQueryBuilder('game'), ps.sinceId, ps.untilId) + .andWhere('game.isStarted = TRUE'); + + if (ps.my) { + query.andWhere(new Brackets(qb => { qb + .where('game.user1Id = :userId', { userId: user.id }) + .orWhere('game.user2Id = :userId', { userId: user.id }); + })); + } + + // Fetch games + const games = await query.take(ps.limit!).getMany(); + + return await Promise.all(games.map((g) => ReversiGames.pack(g, user, { + detail: false + }))); +}); diff --git a/src/server/api/endpoints/games/reversi/games/show.ts b/src/server/api/endpoints/games/reversi/games/show.ts new file mode 100644 index 000000000..ea2776b16 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/games/show.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../../misc/cafy-id'; +import Reversi from '../../../../../../games/reversi/core'; +import define from '../../../../define'; +import { ApiError } from '../../../../error'; +import { ReversiGames } from '../../../../../../models'; + +export const meta = { + tags: ['games'], + + params: { + gameId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchGame: { + message: 'No such game.', + code: 'NO_SUCH_GAME', + id: 'f13a03db-fae1-46c9-87f3-43c8165419e1' + }, + } +}; + +export default define(meta, async (ps, user) => { + const game = await ReversiGames.findOne(ps.gameId); + + if (game == null) { + throw new ApiError(meta.errors.noSuchGame); + } + + const o = new Reversi(game.map, { + isLlotheo: game.isLlotheo, + canPutEverywhere: game.canPutEverywhere, + loopedBoard: game.loopedBoard + }); + + for (const log of game.logs) { + o.put(log.color, log.pos); + } + + const packed = await ReversiGames.pack(game, user); + + return Object.assign({ + board: o.board, + turn: o.turn + }, packed); +}); diff --git a/src/server/api/endpoints/games/reversi/games/surrender.ts b/src/server/api/endpoints/games/reversi/games/surrender.ts new file mode 100644 index 000000000..9fb436d42 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/games/surrender.ts @@ -0,0 +1,74 @@ +import $ from 'cafy'; +import { ID } from '../../../../../../misc/cafy-id'; +import { publishReversiGameStream } from '../../../../../../services/stream'; +import define from '../../../../define'; +import { ApiError } from '../../../../error'; +import { ReversiGames } from '../../../../../../models'; + +export const meta = { + tags: ['games'], + + desc: { + 'ja-JP': '指定したリバーシの対局で投了します。' + }, + + requireCredential: true as const, + + params: { + gameId: { + validator: $.type(ID), + desc: { + 'ja-JP': '投了したい対局' + } + } + }, + + errors: { + noSuchGame: { + message: 'No such game.', + code: 'NO_SUCH_GAME', + id: 'ace0b11f-e0a6-4076-a30d-e8284c81b2df' + }, + + alreadyEnded: { + message: 'That game has already ended.', + code: 'ALREADY_ENDED', + id: '6c2ad4a6-cbf1-4a5b-b187-b772826cfc6d' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '6e04164b-a992-4c93-8489-2123069973e1' + }, + } +}; + +export default define(meta, async (ps, user) => { + const game = await ReversiGames.findOne(ps.gameId); + + if (game == null) { + throw new ApiError(meta.errors.noSuchGame); + } + + if (game.isEnded) { + throw new ApiError(meta.errors.alreadyEnded); + } + + if ((game.user1Id !== user.id) && (game.user2Id !== user.id)) { + throw new ApiError(meta.errors.accessDenied); + } + + const winnerId = game.user1Id === user.id ? game.user2Id : game.user1Id; + + await ReversiGames.update(game.id, { + surrendered: user.id, + isEnded: true, + winnerId: winnerId + }); + + publishReversiGameStream(game.id, 'ended', { + winnerId: winnerId, + game: await ReversiGames.pack(game.id, user) + }); +}); diff --git a/src/server/api/endpoints/games/reversi/invitations.ts b/src/server/api/endpoints/games/reversi/invitations.ts new file mode 100644 index 000000000..93ea1bd58 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/invitations.ts @@ -0,0 +1,17 @@ +import define from '../../../define'; +import { ReversiMatchings } from '../../../../../models'; + +export const meta = { + tags: ['games'], + + requireCredential: true as const +}; + +export default define(meta, async (ps, user) => { + // Find session + const invitations = await ReversiMatchings.find({ + childId: user.id + }); + + return await Promise.all(invitations.map((i) => ReversiMatchings.pack(i, user))); +}); diff --git a/src/server/api/endpoints/games/reversi/match.ts b/src/server/api/endpoints/games/reversi/match.ts new file mode 100644 index 000000000..f1eb3aba2 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/match.ts @@ -0,0 +1,112 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishMainStream, publishReversiStream } from '../../../../../services/stream'; +import { eighteight } from '../../../../../games/reversi/maps'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { genId } from '../../../../../misc/gen-id'; +import { ReversiMatchings, ReversiGames } from '../../../../../models'; +import { ReversiGame } from '../../../../../models/entities/games/reversi/game'; +import { ReversiMatching } from '../../../../../models/entities/games/reversi/matching'; + +export const meta = { + tags: ['games'], + + requireCredential: true as const, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '0b4f0559-b484-4e31-9581-3f73cee89b28' + }, + + isYourself: { + message: 'Target user is yourself.', + code: 'TARGET_IS_YOURSELF', + id: '96fd7bd6-d2bc-426c-a865-d055dcd2828e' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Myself + if (ps.userId === user.id) { + throw new ApiError(meta.errors.isYourself); + } + + // Find session + const exist = await ReversiMatchings.findOne({ + parentId: ps.userId, + childId: user.id + }); + + if (exist) { + // Destroy session + ReversiMatchings.delete(exist.id); + + // Create game + const game = await ReversiGames.save({ + id: genId(), + createdAt: new Date(), + user1Id: exist.parentId, + user2Id: user.id, + user1Accepted: false, + user2Accepted: false, + isStarted: false, + isEnded: false, + logs: [], + map: eighteight.data, + bw: 'random', + isLlotheo: false + } as Partial); + + publishReversiStream(exist.parentId, 'matched', await ReversiGames.pack(game, exist.parentId)); + + const other = await ReversiMatchings.count({ + childId: user.id + }); + + if (other == 0) { + publishMainStream(user.id, 'reversiNoInvites'); + } + + return await ReversiGames.pack(game, user); + } else { + // Fetch child + const child = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // 以前のセッションはすべて削除しておく + await ReversiMatchings.delete({ + parentId: user.id + }); + + // セッションを作成 + const matching = await ReversiMatchings.save({ + id: genId(), + createdAt: new Date(), + parentId: user.id, + childId: child.id + } as ReversiMatching); + + const packed = await ReversiMatchings.pack(matching, child); + publishReversiStream(child.id, 'invited', packed); + publishMainStream(child.id, 'reversiInvited', packed); + + return; + } +}); diff --git a/src/server/api/endpoints/games/reversi/match/cancel.ts b/src/server/api/endpoints/games/reversi/match/cancel.ts new file mode 100644 index 000000000..0abd4b5c8 --- /dev/null +++ b/src/server/api/endpoints/games/reversi/match/cancel.ts @@ -0,0 +1,14 @@ +import define from '../../../../define'; +import { ReversiMatchings } from '../../../../../../models'; + +export const meta = { + tags: ['games'], + + requireCredential: true as const +}; + +export default define(meta, async (ps, user) => { + await ReversiMatchings.delete({ + parentId: user.id + }); +}); diff --git a/src/server/api/endpoints/hashtags/list.ts b/src/server/api/endpoints/hashtags/list.ts new file mode 100644 index 000000000..6e37f909e --- /dev/null +++ b/src/server/api/endpoints/hashtags/list.ts @@ -0,0 +1,95 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Hashtags } from '../../../../models'; + +export const meta = { + tags: ['hashtags'], + + requireCredential: false as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + attachedToUserOnly: { + validator: $.optional.bool, + default: false + }, + + attachedToLocalUserOnly: { + validator: $.optional.bool, + default: false + }, + + attachedToRemoteUserOnly: { + validator: $.optional.bool, + default: false + }, + + sort: { + validator: $.str.or([ + '+mentionedUsers', + '-mentionedUsers', + '+mentionedLocalUsers', + '-mentionedLocalUsers', + '+mentionedRemoteUsers', + '-mentionedRemoteUsers', + '+attachedUsers', + '-attachedUsers', + '+attachedLocalUsers', + '-attachedLocalUsers', + '+attachedRemoteUsers', + '-attachedRemoteUsers', + ]), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Hashtag', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Hashtags.createQueryBuilder('tag'); + + if (ps.attachedToUserOnly) query.andWhere('tag.attachedUsersCount != 0'); + if (ps.attachedToLocalUserOnly) query.andWhere('tag.attachedLocalUsersCount != 0'); + if (ps.attachedToRemoteUserOnly) query.andWhere('tag.attachedRemoteUsersCount != 0'); + + switch (ps.sort) { + case '+mentionedUsers': query.orderBy('tag.mentionedUsersCount', 'DESC'); break; + case '-mentionedUsers': query.orderBy('tag.mentionedUsersCount', 'ASC'); break; + case '+mentionedLocalUsers': query.orderBy('tag.mentionedLocalUsersCount', 'DESC'); break; + case '-mentionedLocalUsers': query.orderBy('tag.mentionedLocalUsersCount', 'ASC'); break; + case '+mentionedRemoteUsers': query.orderBy('tag.mentionedRemoteUsersCount', 'DESC'); break; + case '-mentionedRemoteUsers': query.orderBy('tag.mentionedRemoteUsersCount', 'ASC'); break; + case '+attachedUsers': query.orderBy('tag.attachedUsersCount', 'DESC'); break; + case '-attachedUsers': query.orderBy('tag.attachedUsersCount', 'ASC'); break; + case '+attachedLocalUsers': query.orderBy('tag.attachedLocalUsersCount', 'DESC'); break; + case '-attachedLocalUsers': query.orderBy('tag.attachedLocalUsersCount', 'ASC'); break; + case '+attachedRemoteUsers': query.orderBy('tag.attachedRemoteUsersCount', 'DESC'); break; + case '-attachedRemoteUsers': query.orderBy('tag.attachedRemoteUsersCount', 'ASC'); break; + } + + query.select([ + 'tag.name', + 'tag.mentionedUsersCount', + 'tag.mentionedLocalUsersCount', + 'tag.mentionedRemoteUsersCount', + 'tag.attachedUsersCount', + 'tag.attachedLocalUsersCount', + 'tag.attachedRemoteUsersCount', + ]); + + const tags = await query.take(ps.limit!).getMany(); + + return Hashtags.packMany(tags); +}); diff --git a/src/server/api/endpoints/hashtags/search.ts b/src/server/api/endpoints/hashtags/search.ts new file mode 100644 index 000000000..32342a63d --- /dev/null +++ b/src/server/api/endpoints/hashtags/search.ts @@ -0,0 +1,59 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Hashtags } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ハッシュタグを検索します。' + }, + + tags: ['hashtags'], + + requireCredential: false as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + query: { + validator: $.str, + desc: { + 'ja-JP': 'クエリ' + } + }, + + offset: { + validator: $.optional.num.min(0), + default: 0, + desc: { + 'ja-JP': 'オフセット' + } + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'string' as const, + optional: false as const, nullable: false as const, + } + }, +}; + +export default define(meta, async (ps) => { + const hashtags = await Hashtags.createQueryBuilder('tag') + .where('tag.name like :q', { q: ps.query.toLowerCase() + '%' }) + .orderBy('tag.count', 'DESC') + .groupBy('tag.id') + .take(ps.limit!) + .skip(ps.offset) + .getMany(); + + return hashtags.map(tag => tag.name); +}); diff --git a/src/server/api/endpoints/hashtags/show.ts b/src/server/api/endpoints/hashtags/show.ts new file mode 100644 index 000000000..9462342aa --- /dev/null +++ b/src/server/api/endpoints/hashtags/show.ts @@ -0,0 +1,47 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Hashtags } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したハッシュタグの情報を取得します。', + }, + + tags: ['hashtags'], + + requireCredential: false as const, + + params: { + tag: { + validator: $.str, + desc: { + 'ja-JP': '対象のハッシュタグ(#なし)', + 'en-US': 'Target hashtag. (no # prefixed)' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Hashtag', + }, + + errors: { + noSuchHashtag: { + message: 'No such hashtag.', + code: 'NO_SUCH_HASHTAG', + id: '110ee688-193e-4a3a-9ecf-c167b2e6981e' + } + } +}; + +export default define(meta, async (ps, user) => { + const hashtag = await Hashtags.findOne({ name: ps.tag.toLowerCase() }); + if (hashtag == null) { + throw new ApiError(meta.errors.noSuchHashtag); + } + + return await Hashtags.pack(hashtag); +}); diff --git a/packages/backend/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts similarity index 77% rename from packages/backend/src/server/api/endpoints/hashtags/trend.ts rename to src/server/api/endpoints/hashtags/trend.ts index 9cdbc8941..cfa97d147 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/trend.ts +++ b/src/server/api/endpoints/hashtags/trend.ts @@ -1,10 +1,9 @@ import { Brackets } from 'typeorm'; -import define from '../../define.js'; -import { fetchMeta } from '@/misc/fetch-meta.js'; -import { Notes } from '@/models/index.js'; -import { Note } from '@/models/entities/note.js'; -import { safeForSql } from '@/misc/safe-for-sql.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { Notes } from '../../../../models'; +import { Note } from '../../../../models/entities/note'; +import { safeForSql } from '../../../../misc/safe-for-sql'; /* トレンドに載るためには「『直近a分間のユニーク投稿数が今からa分前~今からb分前の間のユニーク投稿数のn倍以上』のハッシュタグの上位5位以内に入る」ことが必要 @@ -23,46 +22,39 @@ const max = 5; export const meta = { tags: ['hashtags'], - requireCredential: false, + requireCredential: false as const, res: { - type: 'array', - optional: false, nullable: false, + type: 'array' as const, + optional: false as const, nullable: false as const, items: { - type: 'object', - optional: false, nullable: false, + type: 'object' as const, + optional: false as const, nullable: false as const, properties: { tag: { - type: 'string', - optional: false, nullable: false, + type: 'string' as const, + optional: false as const, nullable: false as const, }, chart: { - type: 'array', - optional: false, nullable: false, + type: 'array' as const, + optional: false as const, nullable: false as const, items: { - type: 'number', - optional: false, nullable: false, - }, + type: 'number' as const, + optional: false as const, nullable: false as const, + } }, usersCount: { - type: 'number', - optional: false, nullable: false, - }, - }, - }, - }, -} as const; + type: 'number' as const, + optional: false as const, nullable: false as const, + } + } + } + } +}; -export const paramDef = { - type: 'object', - properties: {}, - required: [], -} as const; - -// eslint-disable-next-line import/no-default-export -export default define(meta, paramDef, async () => { +export default define(meta, async () => { const instance = await fetchMeta(true); - const hiddenTags = instance.hiddenTags.map(t => normalizeForSearch(t)); + const hiddenTags = instance.hiddenTags.map(t => t.toLowerCase()); const now = new Date(); // 5分単位で丸めた現在日時 now.setMinutes(Math.round(now.getMinutes() / 5) * 5, 0, 0); @@ -99,7 +91,7 @@ export default define(meta, paramDef, async () => { } else { tags.push({ name: tag, - users: [note.userId], + users: [note.userId] }); } } @@ -146,7 +138,7 @@ export default define(meta, paramDef, async () => { const stats = hots.map((tag, i) => ({ tag, chart: countsLog.map(counts => counts[i]), - usersCount: totalCounts[i], + usersCount: totalCounts[i] })); return stats; diff --git a/src/server/api/endpoints/hashtags/users.ts b/src/server/api/endpoints/hashtags/users.ts new file mode 100644 index 000000000..532a490d9 --- /dev/null +++ b/src/server/api/endpoints/hashtags/users.ts @@ -0,0 +1,88 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Users } from '../../../../models'; + +export const meta = { + requireCredential: false as const, + + tags: ['hashtags', 'users'], + + params: { + tag: { + validator: $.str, + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sort: { + validator: $.str.or([ + '+follower', + '-follower', + '+createdAt', + '-createdAt', + '+updatedAt', + '-updatedAt', + ]), + }, + + state: { + validator: $.optional.str.or([ + 'all', + 'alive' + ]), + default: 'all' + }, + + origin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'local' + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Users.createQueryBuilder('user') + .where(':tag = ANY(user.tags)', { tag: ps.tag.toLowerCase() }); + + const recent = new Date(Date.now() - (1000 * 60 * 60 * 24 * 5)); + + if (ps.state === 'alive') { + query.andWhere('user.updatedAt > :date', { date: recent }); + } + + if (ps.origin === 'local') { + query.andWhere('user.host IS NULL'); + } else if (ps.origin === 'remote') { + query.andWhere('user.host IS NOT NULL'); + } + + switch (ps.sort) { + case '+follower': query.orderBy('user.followersCount', 'DESC'); break; + case '-follower': query.orderBy('user.followersCount', 'ASC'); break; + case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; + case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; + case '+updatedAt': query.orderBy('user.updatedAt', 'DESC'); break; + case '-updatedAt': query.orderBy('user.updatedAt', 'ASC'); break; + } + + const users = await query.take(ps.limit!).getMany(); + + return await Users.packMany(users, me, { detail: true }); +}); diff --git a/src/server/api/endpoints/i.ts b/src/server/api/endpoints/i.ts new file mode 100644 index 000000000..bceb9548e --- /dev/null +++ b/src/server/api/endpoints/i.ts @@ -0,0 +1,29 @@ +import define from '../define'; +import { Users } from '../../../models'; + +export const meta = { + desc: { + 'ja-JP': '自分のアカウント情報を取得します。' + }, + + tags: ['account'], + + requireCredential: true as const, + + params: {}, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + }, +}; + +export default define(meta, async (ps, user, token) => { + const isSecure = token == null; + + return await Users.pack(user, user, { + detail: true, + includeSecrets: isSecure + }); +}); diff --git a/src/server/api/endpoints/i/2fa/done.ts b/src/server/api/endpoints/i/2fa/done.ts new file mode 100644 index 000000000..7d35f929e --- /dev/null +++ b/src/server/api/endpoints/i/2fa/done.ts @@ -0,0 +1,42 @@ +import $ from 'cafy'; +import * as speakeasy from 'speakeasy'; +import define from '../../../define'; +import { UserProfiles } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + token: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const token = ps.token.replace(/\s/g, ''); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + if (profile.twoFactorTempSecret == null) { + throw new Error('二段階認証の設定が開始されていません'); + } + + const verified = (speakeasy as any).totp.verify({ + secret: profile.twoFactorTempSecret, + encoding: 'base32', + token: token + }); + + if (!verified) { + throw new Error('not verified'); + } + + await UserProfiles.update(user.id, { + twoFactorSecret: profile.twoFactorTempSecret, + twoFactorEnabled: true + }); +}); diff --git a/src/server/api/endpoints/i/2fa/key-done.ts b/src/server/api/endpoints/i/2fa/key-done.ts new file mode 100644 index 000000000..8ac165e62 --- /dev/null +++ b/src/server/api/endpoints/i/2fa/key-done.ts @@ -0,0 +1,151 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import { promisify } from 'util'; +import * as cbor from 'cbor'; +import define from '../../../define'; +import { + UserProfiles, + UserSecurityKeys, + AttestationChallenges, + Users +} from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; +import config from '../../../../../config'; +import { procedures, hash } from '../../../2fa'; +import { publishMainStream } from '../../../../../services/stream'; + +const cborDecodeFirst = promisify(cbor.decodeFirst) as any; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + clientDataJSON: { + validator: $.str + }, + attestationObject: { + validator: $.str + }, + password: { + validator: $.str + }, + challengeId: { + validator: $.str + }, + name: { + validator: $.str + } + } +}; + +const rpIdHashReal = hash(Buffer.from(config.hostname, 'utf-8')); + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + if (!profile.twoFactorEnabled) { + throw new Error('2fa not enabled'); + } + + const clientData = JSON.parse(ps.clientDataJSON); + + if (clientData.type != 'webauthn.create') { + throw new Error('not a creation attestation'); + } + if (clientData.origin != config.scheme + '://' + config.host) { + throw new Error('origin mismatch'); + } + + const clientDataJSONHash = hash(Buffer.from(ps.clientDataJSON, 'utf-8')); + + const attestation = await cborDecodeFirst(ps.attestationObject); + + const rpIdHash = attestation.authData.slice(0, 32); + if (!rpIdHashReal.equals(rpIdHash)) { + throw new Error('rpIdHash mismatch'); + } + + const flags = attestation.authData[32]; + + // tslint:disable-next-line:no-bitwise + if (!(flags & 1)) { + throw new Error('user not present'); + } + + const authData = Buffer.from(attestation.authData); + const credentialIdLength = authData.readUInt16BE(53); + const credentialId = authData.slice(55, 55 + credentialIdLength); + const publicKeyData = authData.slice(55 + credentialIdLength); + const publicKey: Map = await cborDecodeFirst(publicKeyData); + if (publicKey.get(3) != -7) { + throw new Error('alg mismatch'); + } + + if (!(procedures as any)[attestation.fmt]) { + throw new Error('unsupported fmt'); + } + + const verificationData = (procedures as any)[attestation.fmt].verify({ + attStmt: attestation.attStmt, + authenticatorData: authData, + clientDataHash: clientDataJSONHash, + credentialId, + publicKey, + rpIdHash + }); + if (!verificationData.valid) throw new Error('signature invalid'); + + const attestationChallenge = await AttestationChallenges.findOne({ + userId: user.id, + id: ps.challengeId, + registrationChallenge: true, + challenge: hash(clientData.challenge).toString('hex') + }); + + if (!attestationChallenge) { + throw new Error('non-existent challenge'); + } + + await AttestationChallenges.delete({ + userId: user.id, + id: ps.challengeId + }); + + // Expired challenge (> 5min old) + if ( + new Date().getTime() - attestationChallenge.createdAt.getTime() >= + 5 * 60 * 1000 + ) { + throw new Error('expired challenge'); + } + + const credentialIdString = credentialId.toString('hex'); + + await UserSecurityKeys.save({ + userId: user.id, + id: credentialIdString, + lastUsed: new Date(), + name: ps.name, + publicKey: verificationData.publicKey.toString('hex') + }); + + // Publish meUpdated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user.id, user, { + detail: true, + includeSecrets: true + })); + + return { + id: credentialIdString, + name: ps.name + }; +}); diff --git a/src/server/api/endpoints/i/2fa/password-less.ts b/src/server/api/endpoints/i/2fa/password-less.ts new file mode 100644 index 000000000..ee0a065e4 --- /dev/null +++ b/src/server/api/endpoints/i/2fa/password-less.ts @@ -0,0 +1,21 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { UserProfiles } from '../../../../../models'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + value: { + validator: $.boolean + } + } +}; + +export default define(meta, async (ps, user) => { + await UserProfiles.update(user.id, { + usePasswordLessLogin: ps.value + }); +}); diff --git a/src/server/api/endpoints/i/2fa/register-key.ts b/src/server/api/endpoints/i/2fa/register-key.ts new file mode 100644 index 000000000..e189519a4 --- /dev/null +++ b/src/server/api/endpoints/i/2fa/register-key.ts @@ -0,0 +1,60 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import define from '../../../define'; +import { UserProfiles, AttestationChallenges } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; +import { promisify } from 'util'; +import * as crypto from 'crypto'; +import { genId } from '../../../../../misc/gen-id'; +import { hash } from '../../../2fa'; + +const randomBytes = promisify(crypto.randomBytes); + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + if (!profile.twoFactorEnabled) { + throw new Error('2fa not enabled'); + } + + // 32 byte challenge + const entropy = await randomBytes(32); + const challenge = entropy.toString('base64') + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + + const challengeId = genId(); + + await AttestationChallenges.save({ + userId: user.id, + id: challengeId, + challenge: hash(Buffer.from(challenge, 'utf-8')).toString('hex'), + createdAt: new Date(), + registrationChallenge: true + }); + + return { + challengeId, + challenge + }; +}); diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts new file mode 100644 index 000000000..784b276a2 --- /dev/null +++ b/src/server/api/endpoints/i/2fa/register.ts @@ -0,0 +1,55 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import * as speakeasy from 'speakeasy'; +import * as QRCode from 'qrcode'; +import config from '../../../../../config'; +import define from '../../../define'; +import { UserProfiles } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + // Generate user's secret key + const secret = speakeasy.generateSecret({ + length: 32 + }); + + await UserProfiles.update(user.id, { + twoFactorTempSecret: secret.base32 + }); + + // Get the data URL of the authenticator URL + const dataUrl = await QRCode.toDataURL(speakeasy.otpauthURL({ + secret: secret.base32, + encoding: 'base32', + label: user.username, + issuer: config.host + })); + + return { + qr: dataUrl, + secret: secret.base32, + label: user.username, + issuer: config.host + }; +}); diff --git a/src/server/api/endpoints/i/2fa/remove-key.ts b/src/server/api/endpoints/i/2fa/remove-key.ts new file mode 100644 index 000000000..3eb92ba19 --- /dev/null +++ b/src/server/api/endpoints/i/2fa/remove-key.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import define from '../../../define'; +import { UserProfiles, UserSecurityKeys, Users } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; +import { publishMainStream } from '../../../../../services/stream'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + }, + credentialId: { + validator: $.str + }, + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + // Make sure we only delete the user's own creds + await UserSecurityKeys.delete({ + userId: user.id, + id: ps.credentialId + }); + + // Publish meUpdated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user.id, user, { + detail: true, + includeSecrets: true + })); + + return {}; +}); diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/src/server/api/endpoints/i/2fa/unregister.ts new file mode 100644 index 000000000..f1287b2dc --- /dev/null +++ b/src/server/api/endpoints/i/2fa/unregister.ts @@ -0,0 +1,33 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import define from '../../../define'; +import { UserProfiles } from '../../../../../models'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + await UserProfiles.update(user.id, { + twoFactorSecret: null, + twoFactorEnabled: false + }); +}); diff --git a/src/server/api/endpoints/i/apps.ts b/src/server/api/endpoints/i/apps.ts new file mode 100644 index 000000000..69958f1ca --- /dev/null +++ b/src/server/api/endpoints/i/apps.ts @@ -0,0 +1,43 @@ +import $ from 'cafy'; +import define from '../../define'; +import { AccessTokens } from '../../../../models'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + sort: { + validator: $.optional.str.or([ + '+createdAt', + '-createdAt', + '+lastUsedAt', + '-lastUsedAt', + ]), + }, + } +}; + +export default define(meta, async (ps, user) => { + const query = AccessTokens.createQueryBuilder('token') + .where('token.userId = :userId', { userId: user.id }); + + switch (ps.sort) { + case '+createdAt': query.orderBy('token.createdAt', 'DESC'); break; + case '-createdAt': query.orderBy('token.createdAt', 'ASC'); break; + case '+lastUsedAt': query.orderBy('token.lastUsedAt', 'DESC'); break; + case '-lastUsedAt': query.orderBy('token.lastUsedAt', 'ASC'); break; + default: query.orderBy('token.id', 'ASC'); break; + } + + const tokens = await query.getMany(); + + return await Promise.all(tokens.map(token => ({ + id: token.id, + name: token.name, + createdAt: token.createdAt, + lastUsedAt: token.lastUsedAt, + permission: token.permission, + }))); +}); diff --git a/src/server/api/endpoints/i/authorized-apps.ts b/src/server/api/endpoints/i/authorized-apps.ts new file mode 100644 index 000000000..050d079d9 --- /dev/null +++ b/src/server/api/endpoints/i/authorized-apps.ts @@ -0,0 +1,44 @@ +import $ from 'cafy'; +import define from '../../define'; +import { AccessTokens, Apps } from '../../../../models'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + }, + + offset: { + validator: $.optional.num.min(0), + default: 0, + }, + + sort: { + validator: $.optional.str.or('desc|asc'), + default: 'desc', + } + } +}; + +export default define(meta, async (ps, user) => { + // Get tokens + const tokens = await AccessTokens.find({ + where: { + userId: user.id + }, + take: ps.limit!, + skip: ps.offset, + order: { + id: ps.sort == 'asc' ? 1 : -1 + } + }); + + return await Promise.all(tokens.map(token => Apps.pack(token.appId, user, { + detail: true + }))); +}); diff --git a/src/server/api/endpoints/i/change-password.ts b/src/server/api/endpoints/i/change-password.ts new file mode 100644 index 000000000..bc2ec3d7b --- /dev/null +++ b/src/server/api/endpoints/i/change-password.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import define from '../../define'; +import { UserProfiles } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + currentPassword: { + validator: $.str + }, + + newPassword: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.currentPassword, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + // Generate hash of password + const salt = await bcrypt.genSalt(8); + const hash = await bcrypt.hash(ps.newPassword, salt); + + await UserProfiles.update(user.id, { + password: hash + }); +}); diff --git a/src/server/api/endpoints/i/delete-account.ts b/src/server/api/endpoints/i/delete-account.ts new file mode 100644 index 000000000..49a334917 --- /dev/null +++ b/src/server/api/endpoints/i/delete-account.ts @@ -0,0 +1,34 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import define from '../../define'; +import { Users, UserProfiles } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; +import { doPostSuspend } from '../../../../services/suspend-user'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + }, + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + // 物理削除する前にDelete activityを送信する + await doPostSuspend(user).catch(e => {}); + + await Users.delete(user.id); +}); diff --git a/src/server/api/endpoints/i/export-blocking.ts b/src/server/api/endpoints/i/export-blocking.ts new file mode 100644 index 000000000..87cf7655b --- /dev/null +++ b/src/server/api/endpoints/i/export-blocking.ts @@ -0,0 +1,16 @@ +import define from '../../define'; +import { createExportBlockingJob } from '../../../../queue'; +import ms = require('ms'); + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1hour'), + max: 1, + }, +}; + +export default define(meta, async (ps, user) => { + createExportBlockingJob(user); +}); diff --git a/src/server/api/endpoints/i/export-following.ts b/src/server/api/endpoints/i/export-following.ts new file mode 100644 index 000000000..9afc96a24 --- /dev/null +++ b/src/server/api/endpoints/i/export-following.ts @@ -0,0 +1,16 @@ +import define from '../../define'; +import { createExportFollowingJob } from '../../../../queue'; +import ms = require('ms'); + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1hour'), + max: 1, + }, +}; + +export default define(meta, async (ps, user) => { + createExportFollowingJob(user); +}); diff --git a/src/server/api/endpoints/i/export-mute.ts b/src/server/api/endpoints/i/export-mute.ts new file mode 100644 index 000000000..7bb24f8f8 --- /dev/null +++ b/src/server/api/endpoints/i/export-mute.ts @@ -0,0 +1,16 @@ +import define from '../../define'; +import { createExportMuteJob } from '../../../../queue'; +import ms = require('ms'); + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1hour'), + max: 1, + }, +}; + +export default define(meta, async (ps, user) => { + createExportMuteJob(user); +}); diff --git a/src/server/api/endpoints/i/export-notes.ts b/src/server/api/endpoints/i/export-notes.ts new file mode 100644 index 000000000..368a34051 --- /dev/null +++ b/src/server/api/endpoints/i/export-notes.ts @@ -0,0 +1,16 @@ +import define from '../../define'; +import { createExportNotesJob } from '../../../../queue'; +import ms = require('ms'); + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1day'), + max: 1, + }, +}; + +export default define(meta, async (ps, user) => { + createExportNotesJob(user); +}); diff --git a/src/server/api/endpoints/i/export-user-lists.ts b/src/server/api/endpoints/i/export-user-lists.ts new file mode 100644 index 000000000..e1de59f32 --- /dev/null +++ b/src/server/api/endpoints/i/export-user-lists.ts @@ -0,0 +1,16 @@ +import define from '../../define'; +import { createExportUserListsJob } from '../../../../queue'; +import ms = require('ms'); + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1min'), + max: 1, + }, +}; + +export default define(meta, async (ps, user) => { + createExportUserListsJob(user); +}); diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts new file mode 100644 index 000000000..3518bd9c4 --- /dev/null +++ b/src/server/api/endpoints/i/favorites.ts @@ -0,0 +1,55 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { NoteFavorites } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': 'お気に入りに登録した投稿一覧を取得します。', + 'en-US': 'Get favorited notes' + }, + + tags: ['account', 'notes', 'favorites'], + + requireCredential: true as const, + + kind: 'read:favorites', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'NoteFavorite', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(NoteFavorites.createQueryBuilder('favorite'), ps.sinceId, ps.untilId) + .andWhere(`favorite.userId = :meId`, { meId: user.id }) + .leftJoinAndSelect('favorite.note', 'note'); + + const favorites = await query + .take(ps.limit!) + .getMany(); + + return await NoteFavorites.packMany(favorites, user); +}); diff --git a/src/server/api/endpoints/i/get-word-muted-notes-count.ts b/src/server/api/endpoints/i/get-word-muted-notes-count.ts new file mode 100644 index 000000000..e88d697bf --- /dev/null +++ b/src/server/api/endpoints/i/get-word-muted-notes-count.ts @@ -0,0 +1,22 @@ +import define from '../../define'; +import { MutedNotes } from '../../../../models'; + +export const meta = { + tags: ['account'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + } +}; + +export default define(meta, async (ps, user) => { + return { + count: await MutedNotes.count({ + userId: user.id, + reason: 'word' + }) + }; +}); diff --git a/src/server/api/endpoints/i/import-following.ts b/src/server/api/endpoints/i/import-following.ts new file mode 100644 index 000000000..c8a539cda --- /dev/null +++ b/src/server/api/endpoints/i/import-following.ts @@ -0,0 +1,59 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { createImportFollowingJob } from '../../../../queue'; +import ms = require('ms'); +import { ApiError } from '../../error'; +import { DriveFiles } from '../../../../models'; + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1hour'), + max: 1, + }, + + params: { + fileId: { + validator: $.type(ID), + } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'b98644cf-a5ac-4277-a502-0b8054a709a3' + }, + + unexpectedFileType: { + message: 'We need csv file.', + code: 'UNEXPECTED_FILE_TYPE', + id: '660f3599-bce0-4f95-9dde-311fd841c183' + }, + + tooBigFile: { + message: 'That file is too big.', + code: 'TOO_BIG_FILE', + id: 'dee9d4ed-ad07-43ed-8b34-b2856398bc60' + }, + + emptyFile: { + message: 'That file is empty.', + code: 'EMPTY_FILE', + id: '31a1b42c-06f7-42ae-8a38-a661c5c9f691' + }, + } +}; + +export default define(meta, async (ps, user) => { + const file = await DriveFiles.findOne(ps.fileId); + + if (file == null) throw new ApiError(meta.errors.noSuchFile); + //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); + if (file.size > 50000) throw new ApiError(meta.errors.tooBigFile); + if (file.size === 0) throw new ApiError(meta.errors.emptyFile); + + createImportFollowingJob(user, file.id); +}); diff --git a/src/server/api/endpoints/i/import-user-lists.ts b/src/server/api/endpoints/i/import-user-lists.ts new file mode 100644 index 000000000..e360a5468 --- /dev/null +++ b/src/server/api/endpoints/i/import-user-lists.ts @@ -0,0 +1,59 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { createImportUserListsJob } from '../../../../queue'; +import ms = require('ms'); +import { ApiError } from '../../error'; +import { DriveFiles } from '../../../../models'; + +export const meta = { + secure: true, + requireCredential: true as const, + limit: { + duration: ms('1hour'), + max: 1, + }, + + params: { + fileId: { + validator: $.type(ID), + } + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'ea9cc34f-c415-4bc6-a6fe-28ac40357049' + }, + + unexpectedFileType: { + message: 'We need csv file.', + code: 'UNEXPECTED_FILE_TYPE', + id: 'a3c9edda-dd9b-4596-be6a-150ef813745c' + }, + + tooBigFile: { + message: 'That file is too big.', + code: 'TOO_BIG_FILE', + id: 'ae6e7a22-971b-4b52-b2be-fc0b9b121fe9' + }, + + emptyFile: { + message: 'That file is empty.', + code: 'EMPTY_FILE', + id: '99efe367-ce6e-4d44-93f8-5fae7b040356' + }, + } +}; + +export default define(meta, async (ps, user) => { + const file = await DriveFiles.findOne(ps.fileId); + + if (file == null) throw new ApiError(meta.errors.noSuchFile); + //if (!file.type.endsWith('/csv')) throw new ApiError(meta.errors.unexpectedFileType); + if (file.size > 30000) throw new ApiError(meta.errors.tooBigFile); + if (file.size === 0) throw new ApiError(meta.errors.emptyFile); + + createImportUserListsJob(user, file.id); +}); diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts new file mode 100644 index 000000000..fd355dab8 --- /dev/null +++ b/src/server/api/endpoints/i/notifications.ts @@ -0,0 +1,114 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import { readNotification } from '../../common/read-notification'; +import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Notifications, Followings, Mutings, Users } from '../../../../models'; +import { notificationTypes } from '../../../../types'; + +export const meta = { + desc: { + 'ja-JP': '通知一覧を取得します。', + 'en-US': 'Get notifications.' + }, + + tags: ['account', 'notifications'], + + requireCredential: true as const, + + kind: 'read:notifications', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + following: { + validator: $.optional.bool, + default: false + }, + + markAsRead: { + validator: $.optional.bool, + default: true + }, + + includeTypes: { + validator: $.optional.arr($.str.or(notificationTypes as unknown as string[])), + }, + + excludeTypes: { + validator: $.optional.arr($.str.or(notificationTypes as unknown as string[])), + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Notification', + } + }, +}; + +export default define(meta, async (ps, user) => { + // includeTypes が空の場合はクエリしない + if (ps.includeTypes && ps.includeTypes.length === 0) { + return []; + } + // excludeTypes に全指定されている場合はクエリしない + if (notificationTypes.every(type => ps.excludeTypes?.includes(type))) { + return []; + } + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: user.id }); + + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: user.id }); + + const suspendedQuery = Users.createQueryBuilder('users') + .select('id') + .where('users.isSuspended = TRUE'); + + const query = makePaginationQuery(Notifications.createQueryBuilder('notification'), ps.sinceId, ps.untilId) + .andWhere(`notification.notifieeId = :meId`, { meId: user.id }) + .leftJoinAndSelect('notification.notifier', 'notifier'); + + query.andWhere(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`); + query.setParameters(mutingQuery.getParameters()); + + query.andWhere(`notification.notifierId NOT IN (${ suspendedQuery.getQuery() })`); + + if (ps.following) { + query.andWhere(`((notification.notifierId IN (${ followingQuery.getQuery() })) OR (notification.notifierId = :meId))`, { meId: user.id }); + query.setParameters(followingQuery.getParameters()); + } + + if (ps.includeTypes?.length > 0) { + query.andWhere(`notification.type IN (:...includeTypes)`, { includeTypes: ps.includeTypes }); + } else if (ps.excludeTypes?.length > 0) { + query.andWhere(`notification.type NOT IN (:...excludeTypes)`, { excludeTypes: ps.excludeTypes }); + } + + const notifications = await query.take(ps.limit!).getMany(); + + // Mark all as read + if (notifications.length > 0 && ps.markAsRead) { + readNotification(user.id, notifications.map(x => x.id)); + } + + return await Notifications.packMany(notifications); +}); diff --git a/src/server/api/endpoints/i/page-likes.ts b/src/server/api/endpoints/i/page-likes.ts new file mode 100644 index 000000000..7f44df85d --- /dev/null +++ b/src/server/api/endpoints/i/page-likes.ts @@ -0,0 +1,45 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { PageLikes } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': '「いいね」したページ一覧を取得します。', + 'en-US': 'Get liked pages' + }, + + tags: ['account', 'pages'], + + requireCredential: true as const, + + kind: 'read:page-likes', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(PageLikes.createQueryBuilder('like'), ps.sinceId, ps.untilId) + .andWhere(`like.userId = :meId`, { meId: user.id }) + .leftJoinAndSelect('like.page', 'page'); + + const likes = await query + .take(ps.limit!) + .getMany(); + + return await PageLikes.packMany(likes, user); +}); diff --git a/src/server/api/endpoints/i/pages.ts b/src/server/api/endpoints/i/pages.ts new file mode 100644 index 000000000..f55f228d8 --- /dev/null +++ b/src/server/api/endpoints/i/pages.ts @@ -0,0 +1,44 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Pages } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': '自分の作成したページ一覧を取得します。', + 'en-US': 'Get my pages.' + }, + + tags: ['account', 'pages'], + + requireCredential: true as const, + + kind: 'read:pages', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(Pages.createQueryBuilder('page'), ps.sinceId, ps.untilId) + .andWhere(`page.userId = :meId`, { meId: user.id }); + + const pages = await query + .take(ps.limit!) + .getMany(); + + return await Pages.packMany(pages); +}); diff --git a/src/server/api/endpoints/i/pin.ts b/src/server/api/endpoints/i/pin.ts new file mode 100644 index 000000000..59b2f23e3 --- /dev/null +++ b/src/server/api/endpoints/i/pin.ts @@ -0,0 +1,61 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import { addPinned } from '../../../../services/i/pin'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿をピン留めします。' + }, + + tags: ['account', 'notes'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '56734f8b-3928-431e-bf80-6ff87df40cb3' + }, + + pinLimitExceeded: { + message: 'You can not pin notes any more.', + code: 'PIN_LIMIT_EXCEEDED', + id: '72dab508-c64d-498f-8740-a8eec1ba385a' + }, + + alreadyPinned: { + message: 'That note has already been pinned.', + code: 'ALREADY_PINNED', + id: '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913' + }, + } +}; + +export default define(meta, async (ps, user) => { + await addPinned(user, ps.noteId).catch(e => { + if (e.id === '70c4e51f-5bea-449c-a030-53bee3cce202') throw new ApiError(meta.errors.noSuchNote); + if (e.id === '15a018eb-58e5-4da1-93be-330fcc5e4e1a') throw new ApiError(meta.errors.pinLimitExceeded); + if (e.id === '23f0cf4e-59a3-4276-a91d-61a5891c1514') throw new ApiError(meta.errors.alreadyPinned); + throw e; + }); + + return await Users.pack(user, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/i/read-all-messaging-messages.ts b/src/server/api/endpoints/i/read-all-messaging-messages.ts new file mode 100644 index 000000000..e47ef16bd --- /dev/null +++ b/src/server/api/endpoints/i/read-all-messaging-messages.ts @@ -0,0 +1,42 @@ +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import { MessagingMessages, UserGroupJoinings } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'トークメッセージをすべて既読にします。', + 'en-US': 'Mark all talk messages as read.' + }, + + tags: ['account', 'messaging'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + } +}; + +export default define(meta, async (ps, user) => { + // Update documents + await MessagingMessages.update({ + recipientId: user.id, + isRead: false + }, { + isRead: true + }); + + const joinings = await UserGroupJoinings.find({ userId: user.id }); + + await Promise.all(joinings.map(j => MessagingMessages.createQueryBuilder().update() + .set({ + reads: (() => `array_append("reads", '${user.id}')`) as any + }) + .where(`groupId = :groupId`, { groupId: j.userGroupId }) + .andWhere('userId != :userId', { userId: user.id }) + .andWhere('NOT (:userId = ANY(reads))', { userId: user.id }) + .execute())); + + publishMainStream(user.id, 'readAllMessagingMessages'); +}); diff --git a/src/server/api/endpoints/i/read-all-unread-notes.ts b/src/server/api/endpoints/i/read-all-unread-notes.ts new file mode 100644 index 000000000..efb8a7f0f --- /dev/null +++ b/src/server/api/endpoints/i/read-all-unread-notes.ts @@ -0,0 +1,30 @@ +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import { NoteUnreads } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '未読の投稿をすべて既読にします。', + 'en-US': 'Mark all messages as read.' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + } +}; + +export default define(meta, async (ps, user) => { + // Remove documents + await NoteUnreads.delete({ + userId: user.id + }); + + // 全て既読になったイベントを発行 + publishMainStream(user.id, 'readAllUnreadMentions'); + publishMainStream(user.id, 'readAllUnreadSpecifiedNotes'); +}); diff --git a/src/server/api/endpoints/i/read-announcement.ts b/src/server/api/endpoints/i/read-announcement.ts new file mode 100644 index 000000000..070e49eed --- /dev/null +++ b/src/server/api/endpoints/i/read-announcement.ts @@ -0,0 +1,60 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { genId } from '../../../../misc/gen-id'; +import { AnnouncementReads, Announcements, Users } from '../../../../models'; +import { publishMainStream } from '../../../../services/stream'; + +export const meta = { + tags: ['account'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + announcementId: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchAnnouncement: { + message: 'No such announcement.', + code: 'NO_SUCH_ANNOUNCEMENT', + id: '184663db-df88-4bc2-8b52-fb85f0681939' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Check if announcement exists + const announcement = await Announcements.findOne(ps.announcementId); + + if (announcement == null) { + throw new ApiError(meta.errors.noSuchAnnouncement); + } + + // Check if already read + const read = await AnnouncementReads.findOne({ + announcementId: ps.announcementId, + userId: user.id + }); + + if (read != null) { + return; + } + + // Create read + await AnnouncementReads.save({ + id: genId(), + createdAt: new Date(), + announcementId: ps.announcementId, + userId: user.id, + }); + + if (!await Users.getHasUnreadAnnouncement(user.id)) { + publishMainStream(user.id, 'readAllAnnouncements'); + } +}); diff --git a/src/server/api/endpoints/i/regenerate-token.ts b/src/server/api/endpoints/i/regenerate-token.ts new file mode 100644 index 000000000..5d322aa12 --- /dev/null +++ b/src/server/api/endpoints/i/regenerate-token.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import * as bcrypt from 'bcryptjs'; +import { publishMainStream } from '../../../../services/stream'; +import generateUserToken from '../../common/generate-native-user-token'; +import define from '../../define'; +import { Users, UserProfiles } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + password: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new Error('incorrect password'); + } + + // Generate secret + const secret = generateUserToken(); + + await Users.update(user.id, { + token: secret + }); + + // Publish event + publishMainStream(user.id, 'myTokenRegenerated'); +}); diff --git a/src/server/api/endpoints/i/revoke-token.ts b/src/server/api/endpoints/i/revoke-token.ts new file mode 100644 index 000000000..ce688c575 --- /dev/null +++ b/src/server/api/endpoints/i/revoke-token.ts @@ -0,0 +1,24 @@ +import $ from 'cafy'; +import define from '../../define'; +import { AccessTokens } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + tokenId: { + validator: $.type(ID) + } + } +}; + +export default define(meta, async (ps, user) => { + const token = await AccessTokens.findOne(ps.tokenId); + + if (token) { + AccessTokens.delete(token.id); + } +}); diff --git a/src/server/api/endpoints/i/signin-history.ts b/src/server/api/endpoints/i/signin-history.ts new file mode 100644 index 000000000..4f7da7d34 --- /dev/null +++ b/src/server/api/endpoints/i/signin-history.ts @@ -0,0 +1,35 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Signins } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + } + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(Signins.createQueryBuilder('signin'), ps.sinceId, ps.untilId) + .andWhere(`signin.userId = :meId`, { meId: user.id }); + + const history = await query.take(ps.limit!).getMany(); + + return await Promise.all(history.map(record => Signins.pack(record))); +}); diff --git a/src/server/api/endpoints/i/unpin.ts b/src/server/api/endpoints/i/unpin.ts new file mode 100644 index 000000000..e1ea3a629 --- /dev/null +++ b/src/server/api/endpoints/i/unpin.ts @@ -0,0 +1,47 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import { removePinned } from '../../../../services/i/pin'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のピン留めを解除します。' + }, + + tags: ['account', 'notes'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '454170ce-9d63-4a43-9da1-ea10afe81e21' + }, + } +}; + +export default define(meta, async (ps, user) => { + await removePinned(user, ps.noteId).catch(e => { + if (e.id === 'b302d4cf-c050-400a-bbb3-be208681f40c') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + return await Users.pack(user, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/i/update-client-setting.ts b/src/server/api/endpoints/i/update-client-setting.ts new file mode 100644 index 000000000..5143d3d9b --- /dev/null +++ b/src/server/api/endpoints/i/update-client-setting.ts @@ -0,0 +1,40 @@ +import $ from 'cafy'; +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import { UserProfiles } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + params: { + name: { + validator: $.str.match(/^[a-zA-Z]+$/) + }, + + value: { + validator: $.nullable.any + } + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + await UserProfiles.createQueryBuilder().update() + .set({ + clientData: Object.assign(profile.clientData, { + [ps.name]: ps.value + }), + }) + .where('userId = :id', { id: user.id }) + .execute(); + + // Publish event + publishMainStream(user.id, 'clientSettingUpdated', { + key: ps.name, + value: ps.value + }); +}); diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts new file mode 100644 index 000000000..20d970332 --- /dev/null +++ b/src/server/api/endpoints/i/update-email.ts @@ -0,0 +1,79 @@ +import $ from 'cafy'; +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import rndstr from 'rndstr'; +import config from '../../../../config'; +import * as ms from 'ms'; +import * as bcrypt from 'bcryptjs'; +import { Users, UserProfiles } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; +import { sendEmail } from '../../../../services/send-email'; +import { ApiError } from '../../error'; + +export const meta = { + requireCredential: true as const, + + secure: true, + + limit: { + duration: ms('1hour'), + max: 3 + }, + + params: { + password: { + validator: $.str + }, + + email: { + validator: $.optional.nullable.str + }, + }, + + errors: { + incorrectPassword: { + message: 'Incorrect password.', + code: 'INCORRECT_PASSWORD', + id: 'e54c1d7e-e7d6-4103-86b6-0a95069b4ad3' + }, + } +}; + +export default define(meta, async (ps, user) => { + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(ps.password, profile.password!); + + if (!same) { + throw new ApiError(meta.errors.incorrectPassword); + } + + await UserProfiles.update(user.id, { + email: ps.email, + emailVerified: false, + emailVerifyCode: null + }); + + const iObj = await Users.pack(user.id, user, { + detail: true, + includeSecrets: true + }); + + // Publish meUpdated event + publishMainStream(user.id, 'meUpdated', iObj); + + if (ps.email != null) { + const code = rndstr('a-z0-9', 16); + + await UserProfiles.update(user.id, { + emailVerifyCode: code + }); + + const link = `${config.url}/verify-email/${code}`; + + sendEmail(ps.email, 'Email verification', `To verify email, please click this link: ${link}`); + } + + return iObj; +}); diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts new file mode 100644 index 000000000..d3a8e0a8c --- /dev/null +++ b/src/server/api/endpoints/i/update.ts @@ -0,0 +1,301 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import { publishMainStream } from '../../../../services/stream'; +import acceptAllFollowRequests from '../../../../services/following/requests/accept-all'; +import { publishToFollowers } from '../../../../services/i/update'; +import define from '../../define'; +import { parse, parsePlain } from '../../../../mfm/parse'; +import extractEmojis from '../../../../misc/extract-emojis'; +import extractHashtags from '../../../../misc/extract-hashtags'; +import * as langmap from 'langmap'; +import { updateUsertags } from '../../../../services/update-hashtag'; +import { ApiError } from '../../error'; +import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models'; +import { User } from '../../../../models/entities/user'; +import { UserProfile } from '../../../../models/entities/user-profile'; +import { ensure } from '../../../../prelude/ensure'; +import { notificationTypes } from '../../../../types'; + +export const meta = { + desc: { + 'ja-JP': 'アカウント情報を更新します。', + 'en-US': 'Update myself' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + name: { + validator: $.optional.nullable.use(Users.validateName), + desc: { + 'ja-JP': '名前(ハンドルネームやニックネーム)' + } + }, + + description: { + validator: $.optional.nullable.use(Users.validateDescription), + desc: { + 'ja-JP': 'アカウントの説明や自己紹介' + } + }, + + lang: { + validator: $.optional.nullable.str.or(Object.keys(langmap)), + desc: { + 'ja-JP': '言語' + } + }, + + location: { + validator: $.optional.nullable.use(Users.validateLocation), + desc: { + 'ja-JP': '住んでいる地域、所在' + } + }, + + birthday: { + validator: $.optional.nullable.use(Users.validateBirthday), + desc: { + 'ja-JP': '誕生日 (YYYY-MM-DD形式)' + } + }, + + avatarId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'アバターに設定する画像のドライブファイルID' + } + }, + + bannerId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'バナーに設定する画像のドライブファイルID' + } + }, + + fields: { + validator: $.optional.arr($.object()).range(1, 4), + desc: { + 'ja-JP': 'プロフィール補足情報' + } + }, + + isLocked: { + validator: $.optional.bool, + desc: { + 'ja-JP': '鍵アカウントか否か' + } + }, + + carefulBot: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'Botからのフォローを承認制にするか' + } + }, + + autoAcceptFollowed: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'フォローしているユーザーからのフォローリクエストを自動承認するか' + } + }, + + isBot: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'Botか否か' + } + }, + + isCat: { + validator: $.optional.bool, + desc: { + 'ja-JP': '猫か否か' + } + }, + + injectFeaturedNote: { + validator: $.optional.bool, + }, + + alwaysMarkNsfw: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'アップロードするメディアをデフォルトで「閲覧注意」として設定するか' + } + }, + + pinnedPageId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'ピン留めするページID' + } + }, + + mutedWords: { + validator: $.optional.arr($.arr($.str)) + }, + + mutingNotificationTypes: { + validator: $.optional.arr($.str.or(notificationTypes as unknown as string[])) + }, + }, + + errors: { + noSuchAvatar: { + message: 'No such avatar file.', + code: 'NO_SUCH_AVATAR', + id: '539f3a45-f215-4f81-a9a8-31293640207f' + }, + + noSuchBanner: { + message: 'No such banner file.', + code: 'NO_SUCH_BANNER', + id: '0d8f5629-f210-41c2-9433-735831a58595' + }, + + avatarNotAnImage: { + message: 'The file specified as an avatar is not an image.', + code: 'AVATAR_NOT_AN_IMAGE', + id: 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191' + }, + + bannerNotAnImage: { + message: 'The file specified as a banner is not an image.', + code: 'BANNER_NOT_AN_IMAGE', + id: '75aedb19-2afd-4e6d-87fc-67941256fa60' + }, + + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '8e01b590-7eb9-431b-a239-860e086c408e' + }, + } +}; + +export default define(meta, async (ps, user, token) => { + const isSecure = token == null; + + const updates = {} as Partial; + const profileUpdates = {} as Partial; + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + if (ps.name !== undefined) updates.name = ps.name; + if (ps.description !== undefined) profileUpdates.description = ps.description; + //if (ps.lang !== undefined) updates.lang = ps.lang; + if (ps.location !== undefined) profileUpdates.location = ps.location; + if (ps.birthday !== undefined) profileUpdates.birthday = ps.birthday; + if (ps.avatarId !== undefined) updates.avatarId = ps.avatarId; + if (ps.bannerId !== undefined) updates.bannerId = ps.bannerId; + if (ps.mutedWords !== undefined) { + profileUpdates.mutedWords = ps.mutedWords; + profileUpdates.enableWordMute = ps.mutedWords.length > 0; + } + if (ps.mutingNotificationTypes !== undefined) profileUpdates.mutingNotificationTypes = ps.mutingNotificationTypes as typeof notificationTypes[number][]; + if (typeof ps.isLocked === 'boolean') updates.isLocked = ps.isLocked; + if (typeof ps.isBot === 'boolean') updates.isBot = ps.isBot; + if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot; + if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed; + if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat; + if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote; + if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw; + + if (ps.avatarId) { + const avatar = await DriveFiles.findOne(ps.avatarId); + + if (avatar == null || avatar.userId !== user.id) throw new ApiError(meta.errors.noSuchAvatar); + if (!avatar.type.startsWith('image/')) throw new ApiError(meta.errors.avatarNotAnImage); + + updates.avatarUrl = DriveFiles.getPublicUrl(avatar, true); + + if (avatar.blurhash) { + updates.avatarBlurhash = avatar.blurhash; + } + } + + if (ps.bannerId) { + const banner = await DriveFiles.findOne(ps.bannerId); + + if (banner == null || banner.userId !== user.id) throw new ApiError(meta.errors.noSuchBanner); + if (!banner.type.startsWith('image/')) throw new ApiError(meta.errors.bannerNotAnImage); + + updates.bannerUrl = DriveFiles.getPublicUrl(banner, false); + + if (banner.blurhash) { + updates.bannerBlurhash = banner.blurhash; + } + } + + if (ps.pinnedPageId) { + const page = await Pages.findOne(ps.pinnedPageId); + + if (page == null || page.userId !== user.id) throw new ApiError(meta.errors.noSuchPage); + + profileUpdates.pinnedPageId = page.id; + } else if (ps.pinnedPageId === null) { + profileUpdates.pinnedPageId = null; + } + + if (ps.fields) { + profileUpdates.fields = ps.fields + .filter(x => typeof x.name === 'string' && x.name !== '' && typeof x.value === 'string' && x.value !== '') + .map(x => { + return { name: x.name, value: x.value }; + }); + } + + //#region emojis/tags + + let emojis = [] as string[]; + let tags = [] as string[]; + + const newName = updates.name === undefined ? user.name : updates.name; + const newDescription = profileUpdates.description === undefined ? profile.description : profileUpdates.description; + + if (newName != null) { + const tokens = parsePlain(newName); + emojis = emojis.concat(extractEmojis(tokens!)); + } + + if (newDescription != null) { + const tokens = parse(newDescription); + emojis = emojis.concat(extractEmojis(tokens!)); + tags = extractHashtags(tokens!).map(tag => tag.toLowerCase()).splice(0, 32); + } + + updates.emojis = emojis; + updates.tags = tags; + + // ハッシュタグ更新 + updateUsertags(user, tags); + //#endregion + + if (Object.keys(updates).length > 0) await Users.update(user.id, updates); + if (Object.keys(profileUpdates).length > 0) await UserProfiles.update(user.id, profileUpdates); + + const iObj = await Users.pack(user.id, user, { + detail: true, + includeSecrets: isSecure + }); + + // Publish meUpdated event + publishMainStream(user.id, 'meUpdated', iObj); + + // 鍵垢を解除したとき、溜まっていたフォローリクエストがあるならすべて承認 + if (user.isLocked && ps.isLocked === false) { + acceptAllFollowRequests(user); + } + + // フォロワーにUpdateを配信 + publishToFollowers(user.id); + + return iObj; +}); diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/src/server/api/endpoints/i/user-group-invites.ts new file mode 100644 index 000000000..9885082a4 --- /dev/null +++ b/src/server/api/endpoints/i/user-group-invites.ts @@ -0,0 +1,45 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { UserGroupInvitations } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; + +export const meta = { + desc: { + 'ja-JP': 'グループへの招待一覧を取得します。', + 'en-US': 'Get user group invitations.' + }, + + tags: ['account', 'groups'], + + requireCredential: true as const, + + kind: 'read:user-groups', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + } +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(UserGroupInvitations.createQueryBuilder('invitation'), ps.sinceId, ps.untilId) + .andWhere(`invitation.userId = :meId`, { meId: user.id }) + .leftJoinAndSelect('invitation.userGroup', 'user_group'); + + const invitations = await query + .take(ps.limit!) + .getMany(); + + return await UserGroupInvitations.packMany(invitations); +}); diff --git a/src/server/api/endpoints/messaging/history.ts b/src/server/api/endpoints/messaging/history.ts new file mode 100644 index 000000000..15302eb35 --- /dev/null +++ b/src/server/api/endpoints/messaging/history.ts @@ -0,0 +1,99 @@ +import $ from 'cafy'; +import define from '../../define'; +import { MessagingMessage } from '../../../../models/entities/messaging-message'; +import { MessagingMessages, Mutings, UserGroupJoinings } from '../../../../models'; +import { Brackets } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': 'トークの履歴を取得します。', + 'en-US': 'Show messaging history.' + }, + + tags: ['messaging'], + + requireCredential: true as const, + + kind: 'read:messaging', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + group: { + validator: $.optional.bool, + default: false + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'MessagingMessage', + } + }, +}; + +export default define(meta, async (ps, user) => { + const mute = await Mutings.find({ + muterId: user.id, + }); + + const groups = ps.group ? await UserGroupJoinings.find({ + userId: user.id, + }).then(xs => xs.map(x => x.userGroupId)) : []; + + if (ps.group && groups.length === 0) { + return []; + } + + const history: MessagingMessage[] = []; + + for (let i = 0; i < ps.limit!; i++) { + const found = ps.group + ? history.map(m => m.groupId!) + : history.map(m => (m.userId === user.id) ? m.recipientId! : m.userId!); + + const query = MessagingMessages.createQueryBuilder('message') + .orderBy('message.createdAt', 'DESC'); + + if (ps.group) { + query.where(`message.groupId IN (:...groups)`, { groups: groups }); + + if (found.length > 0) { + query.andWhere(`message.groupId NOT IN (:...found)`, { found: found }); + } + } else { + query.where(new Brackets(qb => { qb + .where(`message.userId = :userId`, { userId: user.id }) + .orWhere(`message.recipientId = :userId`, { userId: user.id }); + })); + query.andWhere(`message.groupId IS NULL`); + + if (found.length > 0) { + query.andWhere(`message.userId NOT IN (:...found)`, { found: found }); + query.andWhere(`message.recipientId NOT IN (:...found)`, { found: found }); + } + + if (mute.length > 0) { + query.andWhere(`message.userId NOT IN (:...mute)`, { mute: mute.map(m => m.muteeId) }); + query.andWhere(`message.recipientId NOT IN (:...mute)`, { mute: mute.map(m => m.muteeId) }); + } + } + + const message = await query.getOne(); + + if (message) { + history.push(message); + } else { + break; + } + } + + return await Promise.all(history.map(h => MessagingMessages.pack(h.id, user))); +}); diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts new file mode 100644 index 000000000..479f8da8a --- /dev/null +++ b/src/server/api/endpoints/messaging/messages.ts @@ -0,0 +1,161 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { MessagingMessages, UserGroups, UserGroupJoinings, Users } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Brackets } from 'typeorm'; +import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message'; + +export const meta = { + desc: { + 'ja-JP': 'トークメッセージ一覧を取得します。', + 'en-US': 'Get messages of messaging.' + }, + + tags: ['messaging'], + + requireCredential: true as const, + + kind: 'read:messaging', + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + groupId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のグループのID', + 'en-US': 'Target group ID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + markAsRead: { + validator: $.optional.bool, + default: true + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'MessagingMessage', + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '11795c64-40ea-4198-b06e-3c873ed9039d' + }, + + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: 'c4d9f88c-9270-4632-b032-6ed8cee36f7f' + }, + + groupAccessDenied: { + message: 'You can not read messages of groups that you have not joined.', + code: 'GROUP_ACCESS_DENIED', + id: 'a053a8dd-a491-4718-8f87-50775aad9284' + }, + } +}; + +export default define(meta, async (ps, user) => { + if (ps.userId != null) { + // Fetch recipient (user) + const recipient = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + const query = makePaginationQuery(MessagingMessages.createQueryBuilder('message'), ps.sinceId, ps.untilId) + .andWhere(new Brackets(qb => { qb + .where(new Brackets(qb => { qb + .where('message.userId = :meId') + .andWhere('message.recipientId = :recipientId'); + })) + .orWhere(new Brackets(qb => { qb + .where('message.userId = :recipientId') + .andWhere('message.recipientId = :meId'); + })); + })) + .setParameter('meId', user.id) + .setParameter('recipientId', recipient.id); + + const messages = await query.take(ps.limit!).getMany(); + + // Mark all as read + if (ps.markAsRead) { + readUserMessagingMessage(user.id, recipient.id, messages.filter(m => m.recipientId === user.id).map(x => x.id)); + + // リモートユーザーとのメッセージだったら既読配信 + if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) { + deliverReadActivity(user, recipient, messages); + } + } + + return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, { + populateRecipient: false + }))); + } else if (ps.groupId != null) { + // Fetch recipient (group) + const recipientGroup = await UserGroups.findOne(ps.groupId); + + if (recipientGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + // check joined + const joining = await UserGroupJoinings.findOne({ + userId: user.id, + userGroupId: recipientGroup.id + }); + + if (joining == null) { + throw new ApiError(meta.errors.groupAccessDenied); + } + + const query = makePaginationQuery(MessagingMessages.createQueryBuilder('message'), ps.sinceId, ps.untilId) + .andWhere(`message.groupId = :groupId`, { groupId: recipientGroup.id }); + + const messages = await query.take(ps.limit!).getMany(); + + // Mark all as read + if (ps.markAsRead) { + readGroupMessagingMessage(user.id, recipientGroup.id, messages.map(x => x.id)); + } + + return await Promise.all(messages.map(message => MessagingMessages.pack(message, user, { + populateGroup: false + }))); + } else { + throw new Error(); + } +}); diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts new file mode 100644 index 000000000..3d7a1f4c4 --- /dev/null +++ b/src/server/api/endpoints/messaging/messages/create.ts @@ -0,0 +1,146 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { MessagingMessages, DriveFiles, UserGroups, UserGroupJoinings } from '../../../../../models'; +import { User } from '../../../../../models/entities/user'; +import { UserGroup } from '../../../../../models/entities/user-group'; +import { createMessage } from '../../../../../services/messages/create'; + +export const meta = { + desc: { + 'ja-JP': 'トークメッセージを送信します。', + 'en-US': 'Create a message of messaging.' + }, + + tags: ['messaging'], + + requireCredential: true as const, + + kind: 'write:messaging', + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + groupId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のグループのID', + 'en-US': 'Target group ID' + } + }, + + text: { + validator: $.optional.str.pipe(MessagingMessages.validateText) + }, + + fileId: { + validator: $.optional.type(ID), + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'MessagingMessage', + }, + + errors: { + recipientIsYourself: { + message: 'You can not send a message to yourself.', + code: 'RECIPIENT_IS_YOURSELF', + id: '17e2ba79-e22a-4cbc-bf91-d327643f4a7e' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '11795c64-40ea-4198-b06e-3c873ed9039d' + }, + + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: 'c94e2a5d-06aa-4914-8fa6-6a42e73d6537' + }, + + groupAccessDenied: { + message: 'You can not send messages to groups that you have not joined.', + code: 'GROUP_ACCESS_DENIED', + id: 'd96b3cca-5ad1-438b-ad8b-02f931308fbd' + }, + + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: '4372b8e2-185d-4146-8749-2f68864a3e5f' + }, + + contentRequired: { + message: 'Content required. You need to set text or fileId.', + code: 'CONTENT_REQUIRED', + id: '25587321-b0e6-449c-9239-f8925092942c' + } + } +}; + +export default define(meta, async (ps, user) => { + let recipientUser: User | undefined; + let recipientGroup: UserGroup | undefined; + + if (ps.userId != null) { + // Myself + if (ps.userId === user.id) { + throw new ApiError(meta.errors.recipientIsYourself); + } + + // Fetch recipient (user) + recipientUser = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + } else if (ps.groupId != null) { + // Fetch recipient (group) + recipientGroup = await UserGroups.findOne(ps.groupId); + + if (recipientGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + // check joined + const joining = await UserGroupJoinings.findOne({ + userId: user.id, + userGroupId: recipientGroup.id + }); + + if (joining == null) { + throw new ApiError(meta.errors.groupAccessDenied); + } + } + + let file = null; + if (ps.fileId != null) { + file = await DriveFiles.findOne({ + id: ps.fileId, + userId: user.id + }); + + if (file == null) { + throw new ApiError(meta.errors.noSuchFile); + } + } + + // テキストが無いかつ添付ファイルも無かったらエラー + if (ps.text == null && file == null) { + throw new ApiError(meta.errors.contentRequired); + } + + return await createMessage(user, recipientUser, recipientGroup, ps.text, file); +}); diff --git a/src/server/api/endpoints/messaging/messages/delete.ts b/src/server/api/endpoints/messaging/messages/delete.ts new file mode 100644 index 000000000..2fce93e9b --- /dev/null +++ b/src/server/api/endpoints/messaging/messages/delete.ts @@ -0,0 +1,57 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import * as ms from 'ms'; +import { ApiError } from '../../../error'; +import { MessagingMessages } from '../../../../../models'; +import { deleteMessage } from '../../../../../services/messages/delete'; + +export const meta = { + desc: { + 'ja-JP': '指定したトークメッセージを削除します。', + 'en-US': 'Delete a message.' + }, + + tags: ['messaging'], + + requireCredential: true as const, + + kind: 'write:messaging', + + limit: { + duration: ms('1hour'), + max: 300, + minInterval: ms('1sec') + }, + + params: { + messageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のメッセージのID', + 'en-US': 'Target message ID.' + } + } + }, + + errors: { + noSuchMessage: { + message: 'No such message.', + code: 'NO_SUCH_MESSAGE', + id: '54b5b326-7925-42cf-8019-130fda8b56af' + }, + } +}; + +export default define(meta, async (ps, user) => { + const message = await MessagingMessages.findOne({ + id: ps.messageId, + userId: user.id + }); + + if (message == null) { + throw new ApiError(meta.errors.noSuchMessage); + } + + await deleteMessage(message); +}); diff --git a/src/server/api/endpoints/messaging/messages/read.ts b/src/server/api/endpoints/messaging/messages/read.ts new file mode 100644 index 000000000..3a7aae1bd --- /dev/null +++ b/src/server/api/endpoints/messaging/messages/read.ts @@ -0,0 +1,57 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { MessagingMessages } from '../../../../../models'; +import { readUserMessagingMessage, readGroupMessagingMessage } from '../../../common/read-messaging-message'; + +export const meta = { + desc: { + 'ja-JP': '指定した自分宛てのトークメッセージを既読にします。', + 'en-US': 'Mark as read a message of messaging.' + }, + + tags: ['messaging'], + + requireCredential: true as const, + + kind: 'write:messaging', + + params: { + messageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '既読にするメッセージのID', + 'en-US': 'The ID of a message that you want to mark as read' + } + } + }, + + errors: { + noSuchMessage: { + message: 'No such message.', + code: 'NO_SUCH_MESSAGE', + id: '86d56a2f-a9c3-4afb-b13c-3e9bfef9aa14' + }, + } +}; + +export default define(meta, async (ps, user) => { + const message = await MessagingMessages.findOne(ps.messageId); + + if (message == null) { + throw new ApiError(meta.errors.noSuchMessage); + } + + if (message.recipientId) { + await readUserMessagingMessage(user.id, message.userId, [message.id]).catch(e => { + if (e.id === 'e140a4bf-49ce-4fb6-b67c-b78dadf6b52f') throw new ApiError(meta.errors.noSuchMessage); + throw e; + }); + } else if (message.groupId) { + await readGroupMessagingMessage(user.id, message.groupId, [message.id]).catch(e => { + if (e.id === '930a270c-714a-46b2-b776-ad27276dc569') throw new ApiError(meta.errors.noSuchMessage); + throw e; + }); + } +}); diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts new file mode 100644 index 000000000..97376a9d7 --- /dev/null +++ b/src/server/api/endpoints/meta.ts @@ -0,0 +1,209 @@ +import $ from 'cafy'; +import config from '../../../config'; +import define from '../define'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { Emojis, Users } from '../../../models'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../misc/hard-limits'; + +export const meta = { + desc: { + 'ja-JP': 'インスタンス情報を取得します。', + 'en-US': 'Get the information of this instance.' + }, + + tags: ['meta'], + + requireCredential: false as const, + + params: { + detail: { + validator: $.optional.bool, + default: true + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + version: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The version of Misskey of this instance.', + example: config.version + }, + name: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The name of this instance.', + }, + description: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The description of this instance.', + }, + announcements: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + title: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The title of the announcement.', + }, + text: { + type: 'string' as const, + optional: false as const, nullable: false as const, + description: 'The text of the announcement. (can be HTML)', + }, + } + }, + description: 'The announcements of this instance.', + }, + disableRegistration: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + description: 'Whether disabled open registration.', + }, + disableLocalTimeline: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + description: 'Whether disabled LTL and STL.', + }, + disableGlobalTimeline: { + type: 'boolean' as const, + optional: false as const, nullable: false as const, + description: 'Whether disabled GTL.', + }, + } + } +}; + +export default define(meta, async (ps, me) => { + const instance = await fetchMeta(true); + + const emojis = await Emojis.find({ + where: { + host: null + }, + order: { + category: 'ASC', + name: 'ASC' + }, + cache: { + id: 'meta_emojis', + milliseconds: 3600000 // 1 hour + } + }); + + const response: any = { + maintainerName: instance.maintainerName, + maintainerEmail: instance.maintainerEmail, + + version: config.version, + + name: instance.name, + uri: config.url, + description: instance.description, + langs: instance.langs, + tosUrl: instance.ToSUrl, + repositoryUrl: instance.repositoryUrl, + feedbackUrl: instance.feedbackUrl, + + secure: config.https != null, + + disableRegistration: instance.disableRegistration, + disableLocalTimeline: instance.disableLocalTimeline, + disableGlobalTimeline: instance.disableGlobalTimeline, + driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, + driveCapacityPerRemoteUserMb: instance.remoteDriveCapacityMb, + enableHcaptcha: instance.enableHcaptcha, + hcaptchaSiteKey: instance.hcaptchaSiteKey, + enableRecaptcha: instance.enableRecaptcha, + recaptchaSiteKey: instance.recaptchaSiteKey, + swPublickey: instance.swPublicKey, + mascotImageUrl: instance.mascotImageUrl, + bannerUrl: instance.bannerUrl, + errorImageUrl: instance.errorImageUrl, + iconUrl: instance.iconUrl, + maxNoteTextLength: Math.min(instance.maxNoteTextLength, DB_MAX_NOTE_TEXT_LENGTH), + emojis: await Emojis.packMany(emojis), + enableEmail: instance.enableEmail, + + enableTwitterIntegration: instance.enableTwitterIntegration, + enableGithubIntegration: instance.enableGithubIntegration, + enableDiscordIntegration: instance.enableDiscordIntegration, + + enableServiceWorker: instance.enableServiceWorker, + + ...(ps.detail ? { + pinnedPages: instance.pinnedPages, + cacheRemoteFiles: instance.cacheRemoteFiles, + proxyRemoteFiles: instance.proxyRemoteFiles, + requireSetup: (await Users.count({ + host: null, + })) === 0, + } : {}) + }; + + if (ps.detail) { + const proxyAccount = instance.proxyAccountId ? await Users.pack(instance.proxyAccountId).catch(() => null) : null; + + response.proxyAccountName = proxyAccount ? proxyAccount.username : null; + response.features = { + registration: !instance.disableRegistration, + localTimeLine: !instance.disableLocalTimeline, + globalTimeLine: !instance.disableGlobalTimeline, + elasticsearch: config.elasticsearch ? true : false, + hcaptcha: instance.enableHcaptcha, + recaptcha: instance.enableRecaptcha, + objectStorage: instance.useObjectStorage, + twitter: instance.enableTwitterIntegration, + github: instance.enableGithubIntegration, + discord: instance.enableDiscordIntegration, + serviceWorker: instance.enableServiceWorker, + miauth: true, + }; + + if (me && me.isAdmin) { + response.useStarForReactionFallback = instance.useStarForReactionFallback; + response.pinnedUsers = instance.pinnedUsers; + response.hiddenTags = instance.hiddenTags; + response.blockedHosts = instance.blockedHosts; + response.hcaptchaSecretKey = instance.hcaptchaSecretKey; + response.recaptchaSecretKey = instance.recaptchaSecretKey; + response.proxyAccountId = instance.proxyAccountId; + response.twitterConsumerKey = instance.twitterConsumerKey; + response.twitterConsumerSecret = instance.twitterConsumerSecret; + response.githubClientId = instance.githubClientId; + response.githubClientSecret = instance.githubClientSecret; + response.discordClientId = instance.discordClientId; + response.discordClientSecret = instance.discordClientSecret; + response.summalyProxy = instance.summalyProxy; + response.email = instance.email; + response.smtpSecure = instance.smtpSecure; + response.smtpHost = instance.smtpHost; + response.smtpPort = instance.smtpPort; + response.smtpUser = instance.smtpUser; + response.smtpPass = instance.smtpPass; + response.swPrivateKey = instance.swPrivateKey; + response.useObjectStorage = instance.useObjectStorage; + response.objectStorageBaseUrl = instance.objectStorageBaseUrl; + response.objectStorageBucket = instance.objectStorageBucket; + response.objectStoragePrefix = instance.objectStoragePrefix; + response.objectStorageEndpoint = instance.objectStorageEndpoint; + response.objectStorageRegion = instance.objectStorageRegion; + response.objectStoragePort = instance.objectStoragePort; + response.objectStorageAccessKey = instance.objectStorageAccessKey; + response.objectStorageSecretKey = instance.objectStorageSecretKey; + response.objectStorageUseSSL = instance.objectStorageUseSSL; + response.objectStorageUseProxy = instance.objectStorageUseProxy; + response.objectStorageSetPublicRead = instance.objectStorageSetPublicRead; + } + } + + return response; +}); diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/src/server/api/endpoints/miauth/gen-token.ts new file mode 100644 index 000000000..a5fa19400 --- /dev/null +++ b/src/server/api/endpoints/miauth/gen-token.ts @@ -0,0 +1,61 @@ +import $ from 'cafy'; +import define from '../../define'; +import { AccessTokens } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; +import { secureRndstr } from '../../../../misc/secure-rndstr'; + +export const meta = { + tags: ['auth'], + + requireCredential: true as const, + + secure: true, + + params: { + session: { + validator: $.nullable.str + }, + + name: { + validator: $.nullable.optional.str + }, + + description: { + validator: $.nullable.optional.str, + }, + + iconUrl: { + validator: $.nullable.optional.str, + }, + + permission: { + validator: $.arr($.str).unique(), + }, + }, +}; + +export default define(meta, async (ps, user) => { + // Generate access token + const accessToken = secureRndstr(32, true); + + const now = new Date(); + + // Insert access token doc + await AccessTokens.save({ + id: genId(), + createdAt: now, + lastUsedAt: now, + session: ps.session, + userId: user.id, + token: accessToken, + hash: accessToken, + name: ps.name, + description: ps.description, + iconUrl: ps.iconUrl, + permission: ps.permission, + }); + + return { + token: accessToken + }; +}); diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts new file mode 100644 index 000000000..437ad9610 --- /dev/null +++ b/src/server/api/endpoints/mute/create.ts @@ -0,0 +1,89 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { genId } from '../../../../misc/gen-id'; +import { Mutings, NoteWatchings } from '../../../../models'; +import { Muting } from '../../../../models/entities/muting'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーをミュートします。', + 'en-US': 'Mute a user' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'write:mutes', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '6fef56f3-e765-4957-88e5-c6f65329b8a5' + }, + + muteeIsYourself: { + message: 'Mutee is yourself.', + code: 'MUTEE_IS_YOURSELF', + id: 'a4619cb2-5f23-484b-9301-94c903074e10' + }, + + alreadyMuting: { + message: 'You are already muting that user.', + code: 'ALREADY_MUTING', + id: '7e7359cb-160c-4956-b08f-4d1c653cd007' + }, + } +}; + +export default define(meta, async (ps, user) => { + const muter = user; + + // 自分自身 + if (user.id === ps.userId) { + throw new ApiError(meta.errors.muteeIsYourself); + } + + // Get mutee + const mutee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check if already muting + const exist = await Mutings.findOne({ + muterId: muter.id, + muteeId: mutee.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyMuting); + } + + // Create mute + await Mutings.save({ + id: genId(), + createdAt: new Date(), + muterId: muter.id, + muteeId: mutee.id, + } as Muting); + + NoteWatchings.delete({ + userId: muter.id, + noteUserId: mutee.id + }); +}); diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts new file mode 100644 index 000000000..217352acb --- /dev/null +++ b/src/server/api/endpoints/mute/delete.ts @@ -0,0 +1,79 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Mutings } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーのミュートを解除します。', + 'en-US': 'Unmute a user' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'write:mutes', + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef' + }, + + muteeIsYourself: { + message: 'Mutee is yourself.', + code: 'MUTEE_IS_YOURSELF', + id: 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9' + }, + + notMuting: { + message: 'You are not muting that user.', + code: 'NOT_MUTING', + id: '5467d020-daa9-4553-81e1-135c0c35a96d' + }, + } +}; + +export default define(meta, async (ps, user) => { + const muter = user; + + // Check if the mutee is yourself + if (user.id === ps.userId) { + throw new ApiError(meta.errors.muteeIsYourself); + } + + // Get mutee + const mutee = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Check not muting + const exist = await Mutings.findOne({ + muterId: muter.id, + muteeId: mutee.id + }); + + if (exist == null) { + throw new ApiError(meta.errors.notMuting); + } + + // Delete mute + await Mutings.delete({ + id: exist.id + }); +}); diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts new file mode 100644 index 000000000..1a8fc9215 --- /dev/null +++ b/src/server/api/endpoints/mute/list.ts @@ -0,0 +1,54 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Mutings } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ミュートしているユーザー一覧を取得します。', + 'en-US': 'Get muted users.' + }, + + tags: ['account'], + + requireCredential: true as const, + + kind: 'read:mutes', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 30 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Muting', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Mutings.createQueryBuilder('muting'), ps.sinceId, ps.untilId) + .andWhere(`muting.muterId = :meId`, { meId: me.id }); + + const mutings = await query + .take(ps.limit!) + .getMany(); + + return await Mutings.packMany(mutings, me); +}); diff --git a/src/server/api/endpoints/my/apps.ts b/src/server/api/endpoints/my/apps.ts new file mode 100644 index 000000000..348cbfc9f --- /dev/null +++ b/src/server/api/endpoints/my/apps.ts @@ -0,0 +1,42 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Apps } from '../../../../models'; + +export const meta = { + tags: ['account', 'app'], + + desc: { + 'ja-JP': '自分のアプリケーション一覧を取得します。', + 'en-US': 'Get my apps' + }, + + requireCredential: true as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + } + } +}; + +export default define(meta, async (ps, user) => { + const query = { + userId: user.id + }; + + const apps = await Apps.find({ + where: query, + take: ps.limit!, + skip: ps.offset, + }); + + return await Promise.all(apps.map(app => Apps.pack(app, user, { + detail: true + }))); +}); diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts new file mode 100644 index 000000000..fab8455d7 --- /dev/null +++ b/src/server/api/endpoints/notes.ts @@ -0,0 +1,109 @@ +import $ from 'cafy'; +import { ID } from '../../../misc/cafy-id'; +import define from '../define'; +import { makePaginationQuery } from '../common/make-pagination-query'; +import { Notes } from '../../../models'; + +export const meta = { + desc: { + 'ja-JP': '投稿を取得します。' + }, + + tags: ['notes'], + + params: { + local: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ローカルの投稿に限定するか否か' + } + }, + + reply: { + validator: $.optional.bool, + desc: { + 'ja-JP': '返信に限定するか否か' + } + }, + + renote: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'Renoteに限定するか否か' + } + }, + + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ファイルが添付された投稿に限定するか否か' + } + }, + + poll: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'アンケートが添付された投稿に限定するか否か' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps) => { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(`note.visibility = 'public'`) + .andWhere(`note.localOnly = FALSE`) + .leftJoinAndSelect('note.user', 'user'); + + if (ps.local) { + query.andWhere('note.userHost IS NULL'); + } + + if (ps.reply != undefined) { + query.andWhere(ps.reply ? 'note.replyId IS NOT NULL' : 'note.replyId IS NULL'); + } + + if (ps.renote != undefined) { + query.andWhere(ps.renote ? 'note.renoteId IS NOT NULL' : 'note.renoteId IS NULL'); + } + + if (ps.withFiles != undefined) { + query.andWhere(ps.withFiles ? `note.fileIds != '{}'` : `note.fileIds = '{}'`); + } + + if (ps.poll != undefined) { + query.andWhere(ps.poll ? 'note.hasPoll = TRUE' : 'note.hasPoll = FALSE'); + } + + // TODO + //if (bot != undefined) { + // query.isBot = bot; + //} + + const notes = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(notes); +}); diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts new file mode 100644 index 000000000..0875e0f24 --- /dev/null +++ b/src/server/api/endpoints/notes/children.ts @@ -0,0 +1,75 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { Brackets } from 'typeorm'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿への返信/引用を取得します。', + 'en-US': 'Get replies/quotes of a note.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(new Brackets(qb => { qb + .where(`note.replyId = :noteId`, { noteId: ps.noteId }) + .orWhere(new Brackets(qb => { qb + .where(`note.renoteId = :noteId`, { noteId: ps.noteId }) + .andWhere(new Brackets(qb => { qb + .where(`note.text IS NOT NULL`) + .orWhere(`note.fileIds != '{}'`) + .orWhere(`note.hasPoll = TRUE`); + })); + })); + })) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, user); + if (user) generateMutedUserQuery(query, user); + + const notes = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(notes, user); +}); diff --git a/src/server/api/endpoints/notes/clips.ts b/src/server/api/endpoints/notes/clips.ts new file mode 100644 index 000000000..6126f12c6 --- /dev/null +++ b/src/server/api/endpoints/notes/clips.ts @@ -0,0 +1,54 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ClipNotes, Clips } from '../../../../models'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { In } from 'typeorm'; + +export const meta = { + tags: ['clips', 'notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '47db1a1c-b0af-458d-8fb4-986e4efafe1e' + } + } +}; + +export default define(meta, async (ps, me) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const clipNotes = await ClipNotes.find({ + noteId: note.id, + }); + + const clips = await Clips.find({ + id: In(clipNotes.map(x => x.clipId)), + }); + + return await Promise.all(clips.map(x => Clips.pack(x))); +}); diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts new file mode 100644 index 000000000..0dea309b8 --- /dev/null +++ b/src/server/api/endpoints/notes/conversation.ts @@ -0,0 +1,90 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getNote } from '../../common/getters'; +import { Note } from '../../../../models/entities/note'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿の文脈を取得します。', + 'en-US': 'Show conversation of a note.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'e1035875-9551-45ec-afa8-1ded1fcb53c8' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const conversation: Note[] = []; + let i = 0; + + async function get(id: any) { + i++; + const p = await Notes.findOne(id); + if (p == null) return; + + if (i > ps.offset!) { + conversation.push(p); + } + + if (conversation.length == ps.limit!) { + return; + } + + if (p.replyId) { + await get(p.replyId); + } + } + + if (note.replyId) { + await get(note.replyId); + } + + return await Notes.packMany(conversation, user); +}); diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts new file mode 100644 index 000000000..6ca22113c --- /dev/null +++ b/src/server/api/endpoints/notes/create.ts @@ -0,0 +1,321 @@ +import $ from 'cafy'; +import * as ms from 'ms'; +import { length } from 'stringz'; +import create from '../../../../services/note/create'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { ApiError } from '../../error'; +import { ID } from '../../../../misc/cafy-id'; +import { User } from '../../../../models/entities/user'; +import { Users, DriveFiles, Notes, Channels } from '../../../../models'; +import { DriveFile } from '../../../../models/entities/drive-file'; +import { Note } from '../../../../models/entities/note'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../../misc/hard-limits'; +import { noteVisibilities } from '../../../../types'; +import { Channel } from '../../../../models/entities/channel'; + +let maxNoteTextLength = 500; + +setInterval(() => { + fetchMeta().then(m => { + maxNoteTextLength = m.maxNoteTextLength; + }); +}, 3000); + +export const meta = { + desc: { + 'ja-JP': '投稿します。' + }, + + tags: ['notes'], + + requireCredential: true as const, + + limit: { + duration: ms('1hour'), + max: 300 + }, + + kind: 'write:notes', + + params: { + visibility: { + validator: $.optional.str.or(noteVisibilities as unknown as string[]), + default: 'public', + desc: { + 'ja-JP': '投稿の公開範囲' + } + }, + + visibleUserIds: { + validator: $.optional.arr($.type(ID)).unique().min(0), + desc: { + 'ja-JP': '(投稿の公開範囲が specified の場合)投稿を閲覧できるユーザー' + } + }, + + text: { + validator: $.optional.nullable.str.pipe(text => + text.trim() != '' + && length(text.trim()) <= maxNoteTextLength + && Array.from(text.trim()).length <= DB_MAX_NOTE_TEXT_LENGTH // DB limit + ), + default: null as any, + desc: { + 'ja-JP': '投稿内容' + } + }, + + cw: { + validator: $.optional.nullable.str.pipe(Notes.validateCw), + desc: { + 'ja-JP': 'コンテンツの警告。このパラメータを指定すると設定したテキストで投稿のコンテンツを隠す事が出来ます。' + } + }, + + viaMobile: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'モバイルデバイスからの投稿か否か。' + } + }, + + localOnly: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'ローカルのみに投稿か否か。' + } + }, + + noExtractMentions: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': '本文からメンションを展開しないか否か。' + } + }, + + noExtractHashtags: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': '本文からハッシュタグを展開しないか否か。' + } + }, + + noExtractEmojis: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': '本文からカスタム絵文字を展開しないか否か。' + } + }, + + fileIds: { + validator: $.optional.arr($.type(ID)).unique().range(1, 4), + desc: { + 'ja-JP': '添付するファイル' + } + }, + + mediaIds: { + validator: $.optional.arr($.type(ID)).unique().range(1, 4), + deprecated: true, + desc: { + 'ja-JP': '添付するファイル (このパラメータは廃止予定です。代わりに fileIds を使ってください。)' + } + }, + + replyId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': '返信対象' + } + }, + + renoteId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'Renote対象' + } + }, + + channelId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'チャンネル' + } + }, + + poll: { + validator: $.optional.nullable.obj({ + choices: $.arr($.str) + .unique() + .range(2, 10) + .each(c => c.length > 0 && c.length < 50), + multiple: $.optional.bool, + expiresAt: $.optional.nullable.num.int(), + expiredAfter: $.optional.nullable.num.int().min(1) + }).strict(), + desc: { + 'ja-JP': 'アンケート' + }, + ref: 'poll' + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + createdNote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + description: '作成した投稿' + } + } + }, + + errors: { + noSuchRenoteTarget: { + message: 'No such renote target.', + code: 'NO_SUCH_RENOTE_TARGET', + id: 'b5c90186-4ab0-49c8-9bba-a1f76c282ba4' + }, + + cannotReRenote: { + message: 'You can not Renote a pure Renote.', + code: 'CANNOT_RENOTE_TO_A_PURE_RENOTE', + id: 'fd4cc33e-2a37-48dd-99cc-9b806eb2031a' + }, + + noSuchReplyTarget: { + message: 'No such reply target.', + code: 'NO_SUCH_REPLY_TARGET', + id: '749ee0f6-d3da-459a-bf02-282e2da4292c' + }, + + cannotReplyToPureRenote: { + message: 'You can not reply to a pure Renote.', + code: 'CANNOT_REPLY_TO_A_PURE_RENOTE', + id: '3ac74a84-8fd5-4bb0-870f-01804f82ce15' + }, + + contentRequired: { + message: 'Content required. You need to set text, fileIds, renoteId or poll.', + code: 'CONTENT_REQUIRED', + id: '6f57e42b-c348-439b-bc45-993995cc515a' + }, + + cannotCreateAlreadyExpiredPoll: { + message: 'Poll is already expired.', + code: 'CANNOT_CREATE_ALREADY_EXPIRED_POLL', + id: '04da457d-b083-4055-9082-955525eda5a5' + }, + + noSuchChannel: { + message: 'No such channel.', + code: 'NO_SUCH_CHANNEL', + id: 'b1653923-5453-4edc-b786-7c4f39bb0bbb' + }, + } +}; + +export default define(meta, async (ps, user) => { + let visibleUsers: User[] = []; + if (ps.visibleUserIds) { + visibleUsers = (await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id)))) + .filter(x => x != null) as User[]; + } + + let files: DriveFile[] = []; + const fileIds = ps.fileIds != null ? ps.fileIds : ps.mediaIds != null ? ps.mediaIds : null; + if (fileIds != null) { + files = (await Promise.all(fileIds.map(fileId => + DriveFiles.findOne({ + id: fileId, + userId: user.id + }) + ))).filter(file => file != null) as DriveFile[]; + } + + let renote: Note | undefined; + if (ps.renoteId != null) { + // Fetch renote to note + renote = await Notes.findOne(ps.renoteId); + + if (renote == null) { + throw new ApiError(meta.errors.noSuchRenoteTarget); + } else if (renote.renoteId && !renote.text && !renote.fileIds) { + throw new ApiError(meta.errors.cannotReRenote); + } + } + + let reply: Note | undefined; + if (ps.replyId != null) { + // Fetch reply + reply = await Notes.findOne(ps.replyId); + + if (reply == null) { + throw new ApiError(meta.errors.noSuchReplyTarget); + } + + // 返信対象が引用でないRenoteだったらエラー + if (reply.renoteId && !reply.text && !reply.fileIds) { + throw new ApiError(meta.errors.cannotReplyToPureRenote); + } + } + + if (ps.poll) { + if (typeof ps.poll.expiresAt === 'number') { + if (ps.poll.expiresAt < Date.now()) + throw new ApiError(meta.errors.cannotCreateAlreadyExpiredPoll); + } else if (typeof ps.poll.expiredAfter === 'number') { + ps.poll.expiresAt = Date.now() + ps.poll.expiredAfter; + } + } + + // テキストが無いかつ添付ファイルが無いかつRenoteも無いかつ投票も無かったらエラー + if (!(ps.text || files.length || renote || ps.poll)) { + throw new ApiError(meta.errors.contentRequired); + } + + let channel: Channel | undefined; + if (ps.channelId != null) { + channel = await Channels.findOne(ps.channelId); + + if (channel == null) { + throw new ApiError(meta.errors.noSuchChannel); + } + } + + // 投稿を作成 + const note = await create(user, { + createdAt: new Date(), + files: files, + poll: ps.poll ? { + choices: ps.poll.choices, + multiple: ps.poll.multiple || false, + expiresAt: ps.poll.expiresAt ? new Date(ps.poll.expiresAt) : null + } : undefined, + text: ps.text || undefined, + reply, + renote, + cw: ps.cw, + viaMobile: ps.viaMobile, + localOnly: ps.localOnly, + visibility: ps.visibility, + visibleUsers, + channel, + apMentions: ps.noExtractMentions ? [] : undefined, + apHashtags: ps.noExtractHashtags ? [] : undefined, + apEmojis: ps.noExtractEmojis ? [] : undefined, + }); + + return { + createdNote: await Notes.pack(note, user) + }; +}); diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts new file mode 100644 index 000000000..65565ee3a --- /dev/null +++ b/src/server/api/endpoints/notes/delete.ts @@ -0,0 +1,66 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import deleteNote from '../../../../services/note/delete'; +import define from '../../define'; +import * as ms from 'ms'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { Users } from '../../../../models'; +import { ensure } from '../../../../prelude/ensure'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿を削除します。', + 'en-US': 'Delete a note.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + kind: 'write:notes', + + limit: { + duration: ms('1hour'), + max: 300, + minInterval: ms('1sec') + }, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '490be23f-8c1f-4796-819f-94cb4f9d1630' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + if (!user.isAdmin && !user.isModerator && (note.userId !== user.id)) { + throw new ApiError(meta.errors.accessDenied); + } + + // この操作を行うのが投稿者とは限らない(例えばモデレーター)ため + await deleteNote(await Users.findOne(note.userId).then(ensure), note); +}); diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/src/server/api/endpoints/notes/favorites/create.ts new file mode 100644 index 000000000..952bbfd0e --- /dev/null +++ b/src/server/api/endpoints/notes/favorites/create.ts @@ -0,0 +1,70 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getNote } from '../../../common/getters'; +import { NoteFavorites } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿をお気に入りに登録します。', + 'en-US': 'Favorite a note.' + }, + + tags: ['notes', 'favorites'], + + requireCredential: true as const, + + kind: 'write:favorites', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '6dd26674-e060-4816-909a-45ba3f4da458' + }, + + alreadyFavorited: { + message: 'The note has already been marked as a favorite.', + code: 'ALREADY_FAVORITED', + id: 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Get favoritee + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + // if already favorited + const exist = await NoteFavorites.findOne({ + noteId: note.id, + userId: user.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyFavorited); + } + + // Create favorite + await NoteFavorites.save({ + id: genId(), + createdAt: new Date(), + noteId: note.id, + userId: user.id + }); +}); diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/src/server/api/endpoints/notes/favorites/delete.ts new file mode 100644 index 000000000..1b36b7d68 --- /dev/null +++ b/src/server/api/endpoints/notes/favorites/delete.ts @@ -0,0 +1,64 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getNote } from '../../../common/getters'; +import { NoteFavorites } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のお気に入りを解除します。', + 'en-US': 'Unfavorite a note.' + }, + + tags: ['notes', 'favorites'], + + requireCredential: true as const, + + kind: 'write:favorites', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '80848a2c-398f-4343-baa9-df1d57696c56' + }, + + notFavorited: { + message: 'You have not marked that note a favorite.', + code: 'NOT_FAVORITED', + id: 'b625fc69-635e-45e9-86f4-dbefbef35af5' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Get favoritee + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + // if already favorited + const exist = await NoteFavorites.findOne({ + noteId: note.id, + userId: user.id + }); + + if (exist == null) { + throw new ApiError(meta.errors.notFavorited); + } + + // Delete favorite + await NoteFavorites.delete(exist.id); +}); diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts new file mode 100644 index 000000000..4dda7d0ed --- /dev/null +++ b/src/server/api/endpoints/notes/featured.ts @@ -0,0 +1,66 @@ +import $ from 'cafy'; +import define from '../../define'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'Featuredな投稿を取得します。', + 'en-US': 'Get featured notes.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, user) => { + const max = 30; + const day = 1000 * 60 * 60 * 24 * 3; // 3日前まで + + const query = Notes.createQueryBuilder('note') + .addSelect('note.score') + .where('note.userHost IS NULL') + .andWhere(`note.score > 0`) + .andWhere(`note.createdAt > :date`, { date: new Date(Date.now() - day) }) + .andWhere(`note.visibility = 'public'`) + .leftJoinAndSelect('note.user', 'user'); + + if (user) generateMutedUserQuery(query, user); + + let notes = await query + .orderBy('note.score', 'DESC') + .take(max) + .getMany(); + + notes.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()); + + notes = notes.slice(ps.offset, ps.offset + ps.limit); + + return await Notes.packMany(notes, user); +}); diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts new file mode 100644 index 000000000..6d99f1fdb --- /dev/null +++ b/src/server/api/endpoints/notes/global-timeline.ts @@ -0,0 +1,107 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { ApiError } from '../../error'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Notes } from '../../../../models'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { activeUsersChart } from '../../../../services/chart'; +import { generateRepliesQuery } from '../../common/generate-replies-query'; +import { injectPromo } from '../../common/inject-promo'; +import { injectFeatured } from '../../common/inject-featured'; +import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; + +export const meta = { + desc: { + 'ja-JP': 'グローバルタイムラインを取得します。' + }, + + tags: ['notes'], + + params: { + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ファイルが添付された投稿に限定するか否か' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + sinceDate: { + validator: $.optional.num + }, + + untilDate: { + validator: $.optional.num + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + gtlDisabled: { + message: 'Global timeline has been disabled.', + code: 'GTL_DISABLED', + id: '0332fc13-6ab2-4427-ae80-a9fadffd1a6b' + }, + } +}; + +export default define(meta, async (ps, user) => { + const m = await fetchMeta(); + if (m.disableGlobalTimeline) { + if (user == null || (!user.isAdmin && !user.isModerator)) { + throw new ApiError(meta.errors.gtlDisabled); + } + } + + //#region Construct query + const query = makePaginationQuery(Notes.createQueryBuilder('note'), + ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + .andWhere('note.visibility = \'public\'') + .andWhere('note.channelId IS NULL') + .leftJoinAndSelect('note.user', 'user'); + + generateRepliesQuery(query, user); + if (user) generateMutedUserQuery(query, user); + if (user) generateMutedNoteQuery(query, user); + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + await injectPromo(timeline, user); + await injectFeatured(timeline, user); + + process.nextTick(() => { + if (user) { + activeUsersChart.update(user); + } + }); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts new file mode 100644 index 000000000..2b91b8c67 --- /dev/null +++ b/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -0,0 +1,188 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { ApiError } from '../../error'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Followings, Notes } from '../../../../models'; +import { Brackets } from 'typeorm'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { activeUsersChart } from '../../../../services/chart'; +import { generateRepliesQuery } from '../../common/generate-replies-query'; +import { injectPromo } from '../../common/inject-promo'; +import { injectFeatured } from '../../common/inject-featured'; +import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; +import { generateChannelQuery } from '../../common/generate-channel-query'; + +export const meta = { + desc: { + 'ja-JP': 'ソーシャルタイムラインを取得します。' + }, + + tags: ['notes'], + + requireCredential: true as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + sinceDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより新しい投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + untilDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより古い投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + includeMyRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': '自分の行ったRenoteを含めるかどうか' + } + }, + + includeRenotedMyNotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされた自分の投稿を含めるかどうか' + } + }, + + includeLocalRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされたローカルの投稿を含めるかどうか' + } + }, + + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + stlDisabled: { + message: 'Hybrid timeline has been disabled.', + code: 'STL_DISABLED', + id: '620763f4-f621-4533-ab33-0577a1a3c342' + }, + } +}; + +export default define(meta, async (ps, user) => { + const m = await fetchMeta(); + if (m.disableLocalTimeline && !user.isAdmin && !user.isModerator) { + throw new ApiError(meta.errors.stlDisabled); + } + + //#region Construct query + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: user.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), + ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + .andWhere(new Brackets(qb => { + qb.where(`((note.userId IN (${ followingQuery.getQuery() })) OR (note.userId = :meId))`, { meId: user.id }) + .orWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)'); + })) + .leftJoinAndSelect('note.user', 'user') + .setParameters(followingQuery.getParameters()); + + generateChannelQuery(query, user); + generateRepliesQuery(query, user); + generateVisibilityQuery(query, user); + generateMutedUserQuery(query, user); + generateMutedNoteQuery(query, user); + + if (ps.includeMyRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.userId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeRenotedMyNotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeLocalRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserHost IS NOT NULL'); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + await injectPromo(timeline, user); + await injectFeatured(timeline, user); + + process.nextTick(() => { + if (user) { + activeUsersChart.update(user); + } + }); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts new file mode 100644 index 000000000..51e35e624 --- /dev/null +++ b/src/server/api/endpoints/notes/local-timeline.ts @@ -0,0 +1,141 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { ApiError } from '../../error'; +import { Notes } from '../../../../models'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { activeUsersChart } from '../../../../services/chart'; +import { Brackets } from 'typeorm'; +import { generateRepliesQuery } from '../../common/generate-replies-query'; +import { injectPromo } from '../../common/inject-promo'; +import { injectFeatured } from '../../common/inject-featured'; +import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; +import { generateChannelQuery } from '../../common/generate-channel-query'; + +export const meta = { + desc: { + 'ja-JP': 'ローカルタイムラインを取得します。' + }, + + tags: ['notes'], + + params: { + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'ファイルが添付された投稿に限定するか否か' + } + }, + + fileType: { + validator: $.optional.arr($.str), + desc: { + 'ja-JP': '指定された種類のファイルが添付された投稿のみを取得します' + } + }, + + excludeNsfw: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'true にすると、NSFW指定されたファイルを除外します(fileTypeが指定されている場合のみ有効)' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + sinceDate: { + validator: $.optional.num, + }, + + untilDate: { + validator: $.optional.num, + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + ltlDisabled: { + message: 'Local timeline has been disabled.', + code: 'LTL_DISABLED', + id: '45a6eb02-7695-4393-b023-dd3be9aaaefd' + }, + } +}; + +export default define(meta, async (ps, user) => { + const m = await fetchMeta(); + if (m.disableLocalTimeline) { + if (user == null || (!user.isAdmin && !user.isModerator)) { + throw new ApiError(meta.errors.ltlDisabled); + } + } + + //#region Construct query + const query = makePaginationQuery(Notes.createQueryBuilder('note'), + ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + .andWhere('(note.visibility = \'public\') AND (note.userHost IS NULL)') + .leftJoinAndSelect('note.user', 'user'); + + generateChannelQuery(query, user); + generateRepliesQuery(query, user); + generateVisibilityQuery(query, user); + if (user) generateMutedUserQuery(query, user); + if (user) generateMutedNoteQuery(query, user); + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + + if (ps.fileType != null) { + query.andWhere('note.fileIds != \'{}\''); + query.andWhere(new Brackets(qb => { + for (const type of ps.fileType!) { + const i = ps.fileType!.indexOf(type); + qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type }); + } + })); + + if (ps.excludeNsfw) { + query.andWhere('note.cw IS NULL'); + query.andWhere('0 = (SELECT COUNT(*) FROM drive_file df WHERE df.id = ANY(note."fileIds") AND df."isSensitive" = TRUE)'); + } + } + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + await injectPromo(timeline, user); + await injectFeatured(timeline, user); + + process.nextTick(() => { + if (user) { + activeUsersChart.update(user); + } + }); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts new file mode 100644 index 000000000..8a9d295d3 --- /dev/null +++ b/src/server/api/endpoints/notes/mentions.ts @@ -0,0 +1,87 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import read from '../../../../services/note/read'; +import { Notes, Followings } from '../../../../models'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Brackets } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '自分に言及している投稿の一覧を取得します。', + 'en-US': 'Get mentions of myself.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + params: { + following: { + validator: $.optional.bool, + default: false + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + visibility: { + validator: $.optional.str, + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, user) => { + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: user.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(new Brackets(qb => { qb + .where(`:meId = ANY(note.mentions)`, { meId: user.id }) + .orWhere(`:meId = ANY(note.visibleUserIds)`, { meId: user.id }); + })) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, user); + generateMutedUserQuery(query, user); + + if (ps.visibility) { + query.andWhere('note.visibility = :visibility', { visibility: ps.visibility }); + } + + if (ps.following) { + query.andWhere(`((note.userId IN (${ followingQuery.getQuery() })) OR (note.userId = :meId))`, { meId: user.id }); + query.setParameters(followingQuery.getParameters()); + } + + const mentions = await query.take(ps.limit!).getMany(); + + for (const note of mentions) { + read(user.id, note.id); + } + + return await Notes.packMany(mentions, user); +}); diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts new file mode 100644 index 000000000..a915c95a3 --- /dev/null +++ b/src/server/api/endpoints/notes/polls/recommendation.ts @@ -0,0 +1,72 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Polls, Mutings, Notes, PollVotes } from '../../../../../models'; +import { Brackets, In } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': 'おすすめのアンケート一覧を取得します。', + 'en-US': 'Get recommended polls.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + } + } +}; + +export default define(meta, async (ps, user) => { + const query = Polls.createQueryBuilder('poll') + .where('poll.userHost IS NULL') + .andWhere(`poll.userId != :meId`, { meId: user.id }) + .andWhere(`poll.noteVisibility = 'public'`) + .andWhere(new Brackets(qb => { qb + .where('poll.expiresAt IS NULL') + .orWhere('poll.expiresAt > :now', { now: new Date() }); + })); + + //#region exclude arleady voted polls + const votedQuery = PollVotes.createQueryBuilder('vote') + .select('vote.noteId') + .where('vote.userId = :meId', { meId: user.id }); + + query + .andWhere(`poll.noteId NOT IN (${ votedQuery.getQuery() })`); + + query.setParameters(votedQuery.getParameters()); + //#endregion + + //#region mute + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: user.id }); + + query + .andWhere(`poll.userId NOT IN (${ mutingQuery.getQuery() })`); + + query.setParameters(mutingQuery.getParameters()); + //#endregion + + const polls = await query.take(ps.limit!).skip(ps.offset).getMany(); + + if (polls.length === 0) return []; + + const notes = await Notes.find({ + id: In(polls.map(poll => poll.noteId)) + }); + + return await Notes.packMany(notes, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts new file mode 100644 index 000000000..1e6ab472c --- /dev/null +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -0,0 +1,163 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishNoteStream } from '../../../../../services/stream'; +import { createNotification } from '../../../../../services/create-notification'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getNote } from '../../../common/getters'; +import { deliver } from '../../../../../queue'; +import { renderActivity } from '../../../../../remote/activitypub/renderer'; +import renderVote from '../../../../../remote/activitypub/renderer/vote'; +import { deliverQuestionUpdate } from '../../../../../services/note/polls/update'; +import { PollVotes, NoteWatchings, Users, Polls } from '../../../../../models'; +import { Not } from 'typeorm'; +import { IRemoteUser } from '../../../../../models/entities/user'; +import { genId } from '../../../../../misc/gen-id'; +import { ensure } from '../../../../../prelude/ensure'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のアンケートに投票します。', + 'en-US': 'Vote poll of a note.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + kind: 'write:votes', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + + choice: { + validator: $.num + }, + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396' + }, + + noPoll: { + message: 'The note does not attach a poll.', + code: 'NO_POLL', + id: '5f979967-52d9-4314-a911-1c673727f92f' + }, + + invalidChoice: { + message: 'Choice ID is invalid.', + code: 'INVALID_CHOICE', + id: 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc' + }, + + alreadyVoted: { + message: 'You have already voted.', + code: 'ALREADY_VOTED', + id: '0963fc77-efac-419b-9424-b391608dc6d8' + }, + + alreadyExpired: { + message: 'The poll is already expired.', + code: 'ALREADY_EXPIRED', + id: '1022a357-b085-4054-9083-8f8de358337e' + }, + } +}; + +export default define(meta, async (ps, user) => { + const createdAt = new Date(); + + // Get votee + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + if (!note.hasPoll) { + throw new ApiError(meta.errors.noPoll); + } + + const poll = await Polls.findOne({ noteId: note.id }).then(ensure); + + if (poll.expiresAt && poll.expiresAt < createdAt) { + throw new ApiError(meta.errors.alreadyExpired); + } + + if (poll.choices[ps.choice] == null) { + throw new ApiError(meta.errors.invalidChoice); + } + + // if already voted + const exist = await PollVotes.find({ + noteId: note.id, + userId: user.id + }); + + if (exist.length) { + if (poll.multiple) { + if (exist.some(x => x.choice == ps.choice)) + throw new ApiError(meta.errors.alreadyVoted); + } else { + throw new ApiError(meta.errors.alreadyVoted); + } + } + + // Create vote + const vote = await PollVotes.save({ + id: genId(), + createdAt, + noteId: note.id, + userId: user.id, + choice: ps.choice + }); + + // Increment votes count + const index = ps.choice + 1; // In SQL, array index is 1 based + await Polls.query(`UPDATE poll SET votes[${index}] = votes[${index}] + 1 WHERE "noteId" = '${poll.noteId}'`); + + publishNoteStream(note.id, 'pollVoted', { + choice: ps.choice, + userId: user.id + }); + + // Notify + createNotification(note.userId, 'pollVote', { + notifierId: user.id, + noteId: note.id, + choice: ps.choice + }); + + // Fetch watchers + NoteWatchings.find({ + noteId: note.id, + userId: Not(user.id), + }).then(watchers => { + for (const watcher of watchers) { + createNotification(watcher.userId, 'pollVote', { + notifierId: user.id, + noteId: note.id, + choice: ps.choice + }); + } + }); + + // リモート投票の場合リプライ送信 + if (note.userHost != null) { + const pollOwner = await Users.findOne(note.userId).then(ensure) as IRemoteUser; + + deliver(user, renderActivity(await renderVote(user, vote, note, poll, pollOwner)), pollOwner.inbox); + } + + // リモートフォロワーにUpdate配信 + deliverQuestionUpdate(note.id); +}); diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts new file mode 100644 index 000000000..2621e2a12 --- /dev/null +++ b/src/server/api/endpoints/notes/reactions.ts @@ -0,0 +1,99 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { NoteReactions } from '../../../../models'; +import { DeepPartial } from 'typeorm'; +import { NoteReaction } from '../../../../models/entities/note-reaction'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のリアクション一覧を取得します。', + 'en-US': 'Show reactions of a note.' + }, + + tags: ['notes', 'reactions'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'The ID of the target note' + } + }, + + type: { + validator: $.optional.nullable.str, + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num, + default: 0 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'NoteReaction', + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '263fff3d-d0e1-4af4-bea7-8408059b451a' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const query = { + noteId: note.id + } as DeepPartial; + + if (ps.type) { + // ローカルリアクションはホスト名が . とされているが + // DB 上ではそうではないので、必要に応じて変換 + const suffix = '@.:'; + const type = ps.type.endsWith(suffix) ? ps.type.slice(0, ps.type.length - suffix.length) + ':' : ps.type; + query.reaction = type; + } + + const reactions = await NoteReactions.find({ + where: query, + take: ps.limit!, + skip: ps.offset, + order: { + id: -1 + } + }); + + return await Promise.all(reactions.map(reaction => NoteReactions.pack(reaction, user))); +}); diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/src/server/api/endpoints/notes/reactions/create.ts new file mode 100644 index 000000000..9017d9f36 --- /dev/null +++ b/src/server/api/endpoints/notes/reactions/create.ts @@ -0,0 +1,61 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import createReaction from '../../../../../services/note/reaction/create'; +import define from '../../../define'; +import { getNote } from '../../../common/getters'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿にリアクションします。', + 'en-US': 'React to a note.' + }, + + tags: ['reactions', 'notes'], + + requireCredential: true as const, + + kind: 'write:reactions', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿' + } + }, + + reaction: { + validator: $.str, + desc: { + 'ja-JP': 'リアクションの種類' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '033d0620-5bfe-4027-965d-980b0c85a3ea' + }, + + alreadyReacted: { + message: 'You are already reacting to that note.', + code: 'ALREADY_REACTED', + id: '71efcf98-86d6-4e2b-b2ad-9d032369366b' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + await createReaction(user, note, ps.reaction).catch(e => { + if (e.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') throw new ApiError(meta.errors.alreadyReacted); + throw e; + }); + return; +}); diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/src/server/api/endpoints/notes/reactions/delete.ts new file mode 100644 index 000000000..267d8417c --- /dev/null +++ b/src/server/api/endpoints/notes/reactions/delete.ts @@ -0,0 +1,61 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import * as ms from 'ms'; +import deleteReaction from '../../../../../services/note/reaction/delete'; +import { getNote } from '../../../common/getters'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿へのリアクションを取り消します。', + 'en-US': 'Unreact to a note.' + }, + + tags: ['reactions', 'notes'], + + requireCredential: true as const, + + kind: 'write:reactions', + + limit: { + duration: ms('1hour'), + max: 60, + minInterval: ms('3sec') + }, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37' + }, + + notReacted: { + message: 'You are not reacting to that note.', + code: 'NOT_REACTED', + id: '92f4426d-4196-4125-aa5b-02943e2ec8fc' + }, + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + await deleteReaction(user, note).catch(e => { + if (e.id === '60527ec9-b4cb-4a88-a6bd-32d3ad26817d') throw new ApiError(meta.errors.notReacted); + throw e; + }); +}); diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts new file mode 100644 index 000000000..31c24f294 --- /dev/null +++ b/src/server/api/endpoints/notes/renotes.ts @@ -0,0 +1,79 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のRenote一覧を取得します。', + 'en-US': 'Show a renotes of a note.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '12908022-2e21-46cd-ba6a-3edaf6093f46' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(`note.renoteId = :renoteId`, { renoteId: note.id }) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, user); + if (user) generateMutedUserQuery(query, user); + + const renotes = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(renotes, user); +}); diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts new file mode 100644 index 000000000..9fad74c78 --- /dev/null +++ b/src/server/api/endpoints/notes/replies.ts @@ -0,0 +1,70 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { Notes } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿への返信を取得します。', + 'en-US': 'Get replies of a note.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, user) => { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere('note.replyId = :replyId', { replyId: ps.noteId }) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, user); + if (user) generateMutedUserQuery(query, user); + + const timeline = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts new file mode 100644 index 000000000..446beb32d --- /dev/null +++ b/src/server/api/endpoints/notes/search-by-tag.ts @@ -0,0 +1,152 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Notes } from '../../../../models'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { Brackets } from 'typeorm'; +import { safeForSql } from '../../../../misc/safe-for-sql'; + +export const meta = { + desc: { + 'ja-JP': '指定されたタグが付けられた投稿を取得します。' + }, + + tags: ['notes', 'hashtags'], + + params: { + tag: { + validator: $.optional.str, + desc: { + 'ja-JP': 'タグ' + } + }, + + query: { + validator: $.optional.arr($.arr($.str)), + desc: { + 'ja-JP': 'クエリ' + } + }, + + reply: { + validator: $.optional.nullable.bool, + default: null as any, + desc: { + 'ja-JP': '返信に限定するか否か' + } + }, + + renote: { + validator: $.optional.nullable.bool, + default: null as any, + desc: { + 'ja-JP': 'Renoteに限定するか否か' + } + }, + + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します' + } + }, + + poll: { + validator: $.optional.nullable.bool, + default: null as any, + desc: { + 'ja-JP': 'アンケートが添付された投稿に限定するか否か' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, me); + if (me) generateMutedUserQuery(query, me); + + if (ps.tag) { + if (!safeForSql(ps.tag)) return; + query.andWhere(`'{"${ps.tag.toLowerCase()}"}' <@ note.tags`); + } else { + let i = 0; + query.andWhere(new Brackets(qb => { + for (const tags of ps.query!) { + qb.orWhere(new Brackets(qb => { + for (const tag of tags) { + if (!safeForSql(tag)) return; + qb.andWhere(`'{"${tag.toLowerCase()}"}' <@ note.tags`); + i++; + } + })); + } + })); + } + + if (ps.reply != null) { + if (ps.reply) { + query.andWhere('note.replyId IS NOT NULL'); + } else { + query.andWhere('note.replyId IS NULL'); + } + } + + if (ps.renote != null) { + if (ps.renote) { + query.andWhere('note.renoteId IS NOT NULL'); + } else { + query.andWhere('note.renoteId IS NULL'); + } + } + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + + if (ps.poll != null) { + if (ps.poll) { + query.andWhere('note.hasPoll = TRUE'); + } else { + query.andWhere('note.hasPoll = FALSE'); + } + } + + // Search notes + const notes = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(notes, me); +}); diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts new file mode 100644 index 000000000..2c75d2a55 --- /dev/null +++ b/src/server/api/endpoints/notes/search.ts @@ -0,0 +1,138 @@ +import $ from 'cafy'; +import es from '../../../../db/elasticsearch'; +import define from '../../define'; +import { Notes } from '../../../../models'; +import { In } from 'typeorm'; +import { ID } from '../../../../misc/cafy-id'; +import config from '../../../../config'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; + +export const meta = { + desc: { + 'ja-JP': '投稿を検索します。', + 'en-US': 'Search notes.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + query: { + validator: $.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + host: { + validator: $.optional.nullable.str, + default: undefined + }, + + userId: { + validator: $.optional.nullable.type(ID), + default: null + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + } +}; + +export default define(meta, async (ps, me) => { + if (es == null) { + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere('note.text ILIKE :q', { q: `%${ps.query}%` }) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, me); + if (me) generateMutedUserQuery(query, me); + + const notes = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(notes, me); + } else { + const userQuery = ps.userId != null ? [{ + term: { + userId: ps.userId + } + }] : []; + + const hostQuery = ps.userId == null ? + ps.host === null ? [{ + bool: { + must_not: { + exists: { + field: 'userHost' + } + } + } + }] : ps.host !== undefined ? [{ + term: { + userHost: ps.host + } + }] : [] + : []; + + const result = await es.search({ + index: config.elasticsearch.index || 'misskey_note', + body: { + size: ps.limit!, + from: ps.offset, + query: { + bool: { + must: [{ + simple_query_string: { + fields: ['text'], + query: ps.query.toLowerCase(), + default_operator: 'and' + }, + }, ...hostQuery, ...userQuery] + } + }, + sort: [{ + _doc: 'desc' + }] + } + }); + + const hits = result.body.hits.hits.map((hit: any) => hit._id); + + if (hits.length === 0) return []; + + // Fetch found notes + const notes = await Notes.find({ + where: { + id: In(hits) + }, + order: { + id: -1 + } + }); + + return await Notes.packMany(notes, me); + } +}); diff --git a/src/server/api/endpoints/notes/show.ts b/src/server/api/endpoints/notes/show.ts new file mode 100644 index 000000000..984b5c726 --- /dev/null +++ b/src/server/api/endpoints/notes/show.ts @@ -0,0 +1,52 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿を取得します。', + 'en-US': 'Get a note.' + }, + + tags: ['notes'], + + requireCredential: false as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '24fcbfc6-2e37-42b6-8388-c29b3861a08d' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + return await Notes.pack(note, user, { + detail: true + }); +}); diff --git a/src/server/api/endpoints/notes/state.ts b/src/server/api/endpoints/notes/state.ts new file mode 100644 index 000000000..b41b56162 --- /dev/null +++ b/src/server/api/endpoints/notes/state.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { NoteFavorites, NoteWatchings } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿の状態を取得します。', + 'en-US': 'Get state of a note.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + } +}; + +export default define(meta, async (ps, user) => { + const [favorite, watching] = await Promise.all([ + NoteFavorites.count({ + where: { + userId: user.id, + noteId: ps.noteId + }, + take: 1 + }), + NoteWatchings.count({ + where: { + userId: user.id, + noteId: ps.noteId + }, + take: 1 + }) + ]); + + return { + isFavorited: favorite !== 0, + isWatching: watching !== 0 + }; +}); diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts new file mode 100644 index 000000000..f09f3d173 --- /dev/null +++ b/src/server/api/endpoints/notes/timeline.ts @@ -0,0 +1,181 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Notes, Followings } from '../../../../models'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { activeUsersChart } from '../../../../services/chart'; +import { Brackets } from 'typeorm'; +import { generateRepliesQuery } from '../../common/generate-replies-query'; +import { injectPromo } from '../../common/inject-promo'; +import { injectFeatured } from '../../common/inject-featured'; +import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; +import { generateChannelQuery } from '../../common/generate-channel-query'; + +export const meta = { + desc: { + 'ja-JP': 'タイムラインを取得します。', + 'en-US': 'Get timeline of myself.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + sinceDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより新しい投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + untilDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより古い投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + includeMyRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': '自分の行ったRenoteを含めるかどうか' + } + }, + + includeRenotedMyNotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされた自分の投稿を含めるかどうか' + } + }, + + includeLocalRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされたローカルの投稿を含めるかどうか' + } + }, + + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, +}; + +export default define(meta, async (ps, user) => { + const hasFollowing = (await Followings.count({ + where: { + followerId: user.id, + }, + take: 1 + })) !== 0; + + //#region Construct query + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: user.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), + ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + .andWhere(new Brackets(qb => { qb + .where('note.userId = :meId', { meId: user.id }); + if (hasFollowing) qb.orWhere(`note.userId IN (${ followingQuery.getQuery() })`); + })) + .leftJoinAndSelect('note.user', 'user') + .setParameters(followingQuery.getParameters()); + + generateChannelQuery(query, user); + generateRepliesQuery(query, user); + generateVisibilityQuery(query, user); + generateMutedUserQuery(query, user); + generateMutedNoteQuery(query, user); + + if (ps.includeMyRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.userId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeRenotedMyNotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeLocalRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserHost IS NOT NULL'); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + await injectPromo(timeline, user); + await injectFeatured(timeline, user); + + process.nextTick(() => { + if (user) { + activeUsersChart.update(user); + } + }); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/unrenote.ts b/src/server/api/endpoints/notes/unrenote.ts new file mode 100644 index 000000000..af558a989 --- /dev/null +++ b/src/server/api/endpoints/notes/unrenote.ts @@ -0,0 +1,60 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import deleteNote from '../../../../services/note/delete'; +import define from '../../define'; +import * as ms from 'ms'; +import { getNote } from '../../common/getters'; +import { ApiError } from '../../error'; +import { Notes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のRenoteを解除します。', + }, + + tags: ['notes'], + + requireCredential: true as const, + + kind: 'write:notes', + + limit: { + duration: ms('1hour'), + max: 300, + minInterval: ms('1sec') + }, + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'efd4a259-2442-496b-8dd7-b255aa1a160f' + }, + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const renotes = await Notes.find({ + userId: user.id, + renoteId: note.id + }); + + for (const note of renotes) { + deleteNote(user, note); + } +}); diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts new file mode 100644 index 000000000..b0ff499d9 --- /dev/null +++ b/src/server/api/endpoints/notes/user-list-timeline.ts @@ -0,0 +1,178 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { UserLists, UserListJoinings, Notes } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { activeUsersChart } from '../../../../services/chart'; +import { Brackets } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストのタイムラインを取得します。', + 'en-US': 'Get timeline of a user list.' + }, + + tags: ['notes', 'lists'], + + requireCredential: true as const, + + params: { + listId: { + validator: $.type(ID), + desc: { + 'ja-JP': 'リストのID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + sinceDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより新しい投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + untilDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより古い投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + includeMyRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': '自分の行ったRenoteを含めるかどうか' + } + }, + + includeRenotedMyNotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされた自分の投稿を含めるかどうか' + } + }, + + includeLocalRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteされたローカルの投稿を含めるかどうか' + } + }, + + withFiles: { + validator: $.optional.bool, + desc: { + 'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff' + } + } +}; + +export default define(meta, async (ps, user) => { + const list = await UserLists.findOne({ + id: ps.listId, + userId: user.id + }); + + if (list == null) { + throw new ApiError(meta.errors.noSuchList); + } + + //#region Construct query + const listQuery = UserListJoinings.createQueryBuilder('joining') + .select('joining.userId') + .where('joining.userListId = :userListId', { userListId: list.id }); + + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere(`note.userId IN (${ listQuery.getQuery() })`) + .leftJoinAndSelect('note.user', 'user') + .setParameters(listQuery.getParameters()); + + generateVisibilityQuery(query, user); + + if (ps.includeMyRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.userId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeRenotedMyNotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserId != :meId', { meId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.includeLocalRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.renoteUserHost IS NOT NULL'); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + activeUsersChart.update(user); + + return await Notes.packMany(timeline, user); +}); diff --git a/src/server/api/endpoints/notes/watching/create.ts b/src/server/api/endpoints/notes/watching/create.ts new file mode 100644 index 000000000..b2a758fc7 --- /dev/null +++ b/src/server/api/endpoints/notes/watching/create.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import watch from '../../../../../services/note/watch'; +import { getNote } from '../../../common/getters'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿をウォッチします。', + 'en-US': 'Watch a note.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + await watch(user.id, note); +}); diff --git a/src/server/api/endpoints/notes/watching/delete.ts b/src/server/api/endpoints/notes/watching/delete.ts new file mode 100644 index 000000000..75b4f2355 --- /dev/null +++ b/src/server/api/endpoints/notes/watching/delete.ts @@ -0,0 +1,46 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import unwatch from '../../../../../services/note/unwatch'; +import { getNote } from '../../../common/getters'; +import { ApiError } from '../../../error'; + +export const meta = { + desc: { + 'ja-JP': '指定した投稿のウォッチを解除します。', + 'en-US': 'Unwatch a note.' + }, + + tags: ['notes'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + noteId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象の投稿のID', + 'en-US': 'Target note ID.' + } + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: '09b3695c-f72c-4731-a428-7cff825fc82e' + } + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + await unwatch(user.id, note); +}); diff --git a/src/server/api/endpoints/notifications/create.ts b/src/server/api/endpoints/notifications/create.ts new file mode 100644 index 000000000..6267699e9 --- /dev/null +++ b/src/server/api/endpoints/notifications/create.ts @@ -0,0 +1,37 @@ +import $ from 'cafy'; +import define from '../../define'; +import { createNotification } from '../../../../services/create-notification'; + +export const meta = { + tags: ['notifications'], + + requireCredential: true as const, + + kind: 'write:notifications', + + params: { + body: { + validator: $.str + }, + + header: { + validator: $.optional.nullable.str + }, + + icon: { + validator: $.optional.nullable.str + }, + }, + + errors: { + } +}; + +export default define(meta, async (ps, user, token) => { + createNotification(user.id, 'app', { + appAccessTokenId: token ? token.id : null, + customBody: ps.body, + customHeader: ps.header, + customIcon: ps.icon, + }); +}); diff --git a/src/server/api/endpoints/notifications/mark-all-as-read.ts b/src/server/api/endpoints/notifications/mark-all-as-read.ts new file mode 100644 index 000000000..a17a3e721 --- /dev/null +++ b/src/server/api/endpoints/notifications/mark-all-as-read.ts @@ -0,0 +1,29 @@ +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import { Notifications } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '全ての通知を既読にします。', + 'en-US': 'Mark all notifications as read.' + }, + + tags: ['notifications', 'account'], + + requireCredential: true as const, + + kind: 'write:notifications' +}; + +export default define(meta, async (ps, user) => { + // Update documents + await Notifications.update({ + notifieeId: user.id, + isRead: false, + }, { + isRead: true + }); + + // 全ての通知を読みましたよというイベントを発行 + publishMainStream(user.id, 'readAllNotifications'); +}); diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts new file mode 100644 index 000000000..3b19e1e19 --- /dev/null +++ b/src/server/api/endpoints/page-push.ts @@ -0,0 +1,50 @@ +import $ from 'cafy'; +import define from '../define'; +import { ID } from '../../../misc/cafy-id'; +import { publishMainStream } from '../../../services/stream'; +import { Users, Pages } from '../../../models'; +import { ApiError } from '../error'; + +export const meta = { + requireCredential: true as const, + secure: true, + + params: { + pageId: { + validator: $.type(ID) + }, + + event: { + validator: $.str + }, + + var: { + validator: $.optional.nullable.any + } + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '4a13ad31-6729-46b4-b9af-e86b265c2e74' + } + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + + publishMainStream(page.userId, 'pageEvent', { + pageId: ps.pageId, + event: ps.event, + var: ps.var, + userId: user.id, + user: await Users.pack(user, page.userId, { + detail: true + }) + }); +}); diff --git a/src/server/api/endpoints/pages/create.ts b/src/server/api/endpoints/pages/create.ts new file mode 100644 index 000000000..6d41a4afe --- /dev/null +++ b/src/server/api/endpoints/pages/create.ts @@ -0,0 +1,132 @@ +import $ from 'cafy'; +import * as ms from 'ms'; +import define from '../../define'; +import { ID } from '../../../../misc/cafy-id'; +import { Pages, DriveFiles } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; +import { Page } from '../../../../models/entities/page'; +import { ApiError } from '../../error'; + +export const meta = { + desc: { + 'ja-JP': 'ページを作成します。', + }, + + tags: ['pages'], + + requireCredential: true as const, + + kind: 'write:pages', + + limit: { + duration: ms('1hour'), + max: 300 + }, + + params: { + title: { + validator: $.str, + }, + + name: { + validator: $.str.min(1), + }, + + summary: { + validator: $.optional.nullable.str, + }, + + content: { + validator: $.arr($.obj()) + }, + + variables: { + validator: $.arr($.obj()) + }, + + script: { + validator: $.str, + }, + + eyeCatchingImageId: { + validator: $.optional.nullable.type(ID), + }, + + font: { + validator: $.optional.str.or(['serif', 'sans-serif']), + default: 'sans-serif' + }, + + alignCenter: { + validator: $.optional.bool, + default: false + }, + + hideTitleWhenPinned: { + validator: $.optional.bool, + default: false + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Page', + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c' + }, + nameAlreadyExists: { + message: 'Specified name already exists.', + code: 'NAME_ALREADY_EXISTS', + id: '4650348e-301c-499a-83c9-6aa988c66bc1' + } + } +}; + +export default define(meta, async (ps, user) => { + let eyeCatchingImage = null; + if (ps.eyeCatchingImageId != null) { + eyeCatchingImage = await DriveFiles.findOne({ + id: ps.eyeCatchingImageId, + userId: user.id + }); + + if (eyeCatchingImage == null) { + throw new ApiError(meta.errors.noSuchFile); + } + } + + await Pages.find({ + userId: user.id, + name: ps.name + }).then(result => { + if (result.length > 0) { + throw new ApiError(meta.errors.nameAlreadyExists); + } + }); + + const page = await Pages.save(new Page({ + id: genId(), + createdAt: new Date(), + updatedAt: new Date(), + title: ps.title, + name: ps.name, + summary: ps.summary, + content: ps.content, + variables: ps.variables, + script: ps.script, + eyeCatchingImageId: eyeCatchingImage ? eyeCatchingImage.id : null, + userId: user.id, + visibility: 'public', + alignCenter: ps.alignCenter, + hideTitleWhenPinned: ps.hideTitleWhenPinned, + font: ps.font + })); + + return await Pages.pack(page); +}); diff --git a/src/server/api/endpoints/pages/delete.ts b/src/server/api/endpoints/pages/delete.ts new file mode 100644 index 000000000..99849ab5f --- /dev/null +++ b/src/server/api/endpoints/pages/delete.ts @@ -0,0 +1,53 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Pages } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': '指定したページを削除します。', + }, + + tags: ['pages'], + + requireCredential: true as const, + + kind: 'write:pages', + + params: { + pageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のページのID', + 'en-US': 'Target page ID.' + } + }, + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: 'eb0c6e1d-d519-4764-9486-52a7e1c6392a' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '8b741b3e-2c22-44b3-a15f-29949aa1601e' + }, + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + if (page.userId !== user.id) { + throw new ApiError(meta.errors.accessDenied); + } + + await Pages.delete(page.id); +}); diff --git a/src/server/api/endpoints/pages/featured.ts b/src/server/api/endpoints/pages/featured.ts new file mode 100644 index 000000000..19802d044 --- /dev/null +++ b/src/server/api/endpoints/pages/featured.ts @@ -0,0 +1,29 @@ +import define from '../../define'; +import { Pages } from '../../../../models'; + +export const meta = { + tags: ['pages'], + + requireCredential: false as const, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Page', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Pages.createQueryBuilder('page') + .where('page.visibility = \'public\'') + .andWhere('page.likedCount > 0') + .orderBy('page.likedCount', 'DESC'); + + const pages = await query.take(10).getMany(); + + return await Pages.packMany(pages, me); +}); diff --git a/src/server/api/endpoints/pages/like.ts b/src/server/api/endpoints/pages/like.ts new file mode 100644 index 000000000..5c7e13f1c --- /dev/null +++ b/src/server/api/endpoints/pages/like.ts @@ -0,0 +1,79 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Pages, PageLikes } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; + +export const meta = { + desc: { + 'ja-JP': '指定したページを「いいね」します。', + }, + + tags: ['pages'], + + requireCredential: true as const, + + kind: 'write:page-likes', + + params: { + pageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のページのID', + 'en-US': 'Target page ID.' + } + } + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3' + }, + + yourPage: { + message: 'You cannot like your page.', + code: 'YOUR_PAGE', + id: '28800466-e6db-40f2-8fae-bf9e82aa92b8' + }, + + alreadyLiked: { + message: 'The page has already been liked.', + code: 'ALREADY_LIKED', + id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3' + }, + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + + if (page.userId === user.id) { + throw new ApiError(meta.errors.yourPage); + } + + // if already liked + const exist = await PageLikes.findOne({ + pageId: page.id, + userId: user.id + }); + + if (exist != null) { + throw new ApiError(meta.errors.alreadyLiked); + } + + // Create like + await PageLikes.save({ + id: genId(), + createdAt: new Date(), + pageId: page.id, + userId: user.id + }); + + Pages.increment({ id: page.id }, 'likedCount', 1); +}); diff --git a/src/server/api/endpoints/pages/show.ts b/src/server/api/endpoints/pages/show.ts new file mode 100644 index 000000000..c8e5ad1d9 --- /dev/null +++ b/src/server/api/endpoints/pages/show.ts @@ -0,0 +1,73 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Pages, Users } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; +import { Page } from '../../../../models/entities/page'; + +export const meta = { + desc: { + 'ja-JP': '指定したページの情報を取得します。', + }, + + tags: ['pages'], + + requireCredential: false as const, + + params: { + pageId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のページのID', + 'en-US': 'Target page ID.' + } + }, + + name: { + validator: $.optional.str, + }, + + username: { + validator: $.optional.str, + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Page', + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '222120c0-3ead-4528-811b-b96f233388d7' + } + } +}; + +export default define(meta, async (ps, user) => { + let page: Page | undefined; + + if (ps.pageId) { + page = await Pages.findOne(ps.pageId); + } else if (ps.name && ps.username) { + const author = await Users.findOne({ + host: null, + usernameLower: ps.username.toLowerCase() + }); + if (author) { + page = await Pages.findOne({ + name: ps.name, + userId: author.id + }); + } + } + + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + + return await Pages.pack(page, user); +}); diff --git a/src/server/api/endpoints/pages/unlike.ts b/src/server/api/endpoints/pages/unlike.ts new file mode 100644 index 000000000..865df91c3 --- /dev/null +++ b/src/server/api/endpoints/pages/unlike.ts @@ -0,0 +1,62 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Pages, PageLikes } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したページの「いいね」を解除します。', + }, + + tags: ['pages'], + + requireCredential: true as const, + + kind: 'write:page-likes', + + params: { + pageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のページのID', + 'en-US': 'Target page ID.' + } + } + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: 'a0d41e20-1993-40bd-890e-f6e560ae648e' + }, + + notLiked: { + message: 'You have not liked that page.', + code: 'NOT_LIKED', + id: 'f5e586b0-ce93-4050-b0e3-7f31af5259ee' + }, + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + + const exist = await PageLikes.findOne({ + pageId: page.id, + userId: user.id + }); + + if (exist == null) { + throw new ApiError(meta.errors.notLiked); + } + + // Delete like + await PageLikes.delete(exist.id); + + Pages.decrement({ id: page.id }, 'likedCount', 1); +}); diff --git a/src/server/api/endpoints/pages/update.ts b/src/server/api/endpoints/pages/update.ts new file mode 100644 index 000000000..2d93dd4ae --- /dev/null +++ b/src/server/api/endpoints/pages/update.ts @@ -0,0 +1,149 @@ +import $ from 'cafy'; +import * as ms from 'ms'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Pages, DriveFiles } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; +import { Not } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '指定したページの情報を更新します。', + }, + + tags: ['pages'], + + requireCredential: true as const, + + kind: 'write:pages', + + limit: { + duration: ms('1hour'), + max: 300 + }, + + params: { + pageId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のページのID', + 'en-US': 'Target page ID.' + } + }, + + title: { + validator: $.str, + }, + + name: { + validator: $.str.min(1), + }, + + summary: { + validator: $.optional.nullable.str, + }, + + content: { + validator: $.arr($.obj()) + }, + + variables: { + validator: $.arr($.obj()) + }, + + script: { + validator: $.str, + }, + + eyeCatchingImageId: { + validator: $.optional.nullable.type(ID), + }, + + font: { + validator: $.optional.str.or(['serif', 'sans-serif']), + }, + + alignCenter: { + validator: $.optional.bool, + }, + + hideTitleWhenPinned: { + validator: $.optional.bool, + }, + }, + + errors: { + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '21149b9e-3616-4778-9592-c4ce89f5a864' + }, + + accessDenied: { + message: 'Access denied.', + code: 'ACCESS_DENIED', + id: '3c15cd52-3b4b-4274-967d-6456fc4f792b' + }, + + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'cfc23c7c-3887-490e-af30-0ed576703c82' + }, + nameAlreadyExists: { + message: 'Specified name already exists.', + code: 'NAME_ALREADY_EXISTS', + id: '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab' + } + } +}; + +export default define(meta, async (ps, user) => { + const page = await Pages.findOne(ps.pageId); + if (page == null) { + throw new ApiError(meta.errors.noSuchPage); + } + if (page.userId !== user.id) { + throw new ApiError(meta.errors.accessDenied); + } + + let eyeCatchingImage = null; + if (ps.eyeCatchingImageId != null) { + eyeCatchingImage = await DriveFiles.findOne({ + id: ps.eyeCatchingImageId, + userId: user.id + }); + + if (eyeCatchingImage == null) { + throw new ApiError(meta.errors.noSuchFile); + } + } + + await Pages.find({ + id: Not(ps.pageId), + userId: user.id, + name: ps.name + }).then(result => { + if (result.length > 0) { + throw new ApiError(meta.errors.nameAlreadyExists); + } + }); + + await Pages.update(page.id, { + updatedAt: new Date(), + title: ps.title, + name: ps.name === undefined ? page.name : ps.name, + summary: ps.name === undefined ? page.summary : ps.summary, + content: ps.content, + variables: ps.variables, + script: ps.script, + alignCenter: ps.alignCenter === undefined ? page.alignCenter : ps.alignCenter, + hideTitleWhenPinned: ps.hideTitleWhenPinned === undefined ? page.hideTitleWhenPinned : ps.hideTitleWhenPinned, + font: ps.font === undefined ? page.font : ps.font, + eyeCatchingImageId: ps.eyeCatchingImageId === null + ? null + : ps.eyeCatchingImageId === undefined + ? page.eyeCatchingImageId + : eyeCatchingImage!.id, + }); +}); diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts new file mode 100644 index 000000000..a129a56d8 --- /dev/null +++ b/src/server/api/endpoints/pinned-users.ts @@ -0,0 +1,32 @@ +import define from '../define'; +import { Users } from '../../../models'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import parseAcct from '../../../misc/acct/parse'; +import { User } from '../../../models/entities/user'; + +export const meta = { + tags: ['users'], + + requireCredential: false as const, + + params: { + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const meta = await fetchMeta(); + + const users = await Promise.all(meta.pinnedUsers.map(acct => Users.findOne(parseAcct(acct)))); + + return await Users.packMany(users.filter(x => x !== undefined) as User[], me, { detail: true }); +}); diff --git a/src/server/api/endpoints/promo/read.ts b/src/server/api/endpoints/promo/read.ts new file mode 100644 index 000000000..9ce253374 --- /dev/null +++ b/src/server/api/endpoints/promo/read.ts @@ -0,0 +1,50 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getNote } from '../../common/getters'; +import { PromoReads } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; + +export const meta = { + tags: ['notes'], + + requireCredential: true as const, + + params: { + noteId: { + validator: $.type(ID), + } + }, + + errors: { + noSuchNote: { + message: 'No such note.', + code: 'NO_SUCH_NOTE', + id: 'd785b897-fcd3-4fe9-8fc3-b85c26e6c932' + }, + } +}; + +export default define(meta, async (ps, user) => { + const note = await getNote(ps.noteId).catch(e => { + if (e.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError(meta.errors.noSuchNote); + throw e; + }); + + const exist = await PromoReads.findOne({ + noteId: note.id, + userId: user.id + }); + + if (exist != null) { + return; + } + + await PromoReads.save({ + id: genId(), + createdAt: new Date(), + noteId: note.id, + userId: user.id + }); +}); diff --git a/src/server/api/endpoints/room/show.ts b/src/server/api/endpoints/room/show.ts new file mode 100644 index 000000000..96248a8c0 --- /dev/null +++ b/src/server/api/endpoints/room/show.ts @@ -0,0 +1,92 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Users, UserProfiles } from '../../../../models'; +import { ID } from '../../../../misc/cafy-id'; +import { ensure } from '../../../../prelude/ensure'; +import { toPunyNullable } from '../../../../misc/convert-host'; + +export const meta = { + desc: { + 'ja-JP': '指定した部屋の情報を取得します。', + }, + + tags: ['room'], + + requireCredential: false as const, + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + username: { + validator: $.optional.str + }, + + host: { + validator: $.optional.nullable.str + }, + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '7ad3fa3e-5e12-42f0-b23a-f3d13f10ee4b' + } + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId != null + ? { id: ps.userId } + : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) }); + + if (user == null) { + throw new ApiError(meta.errors.noSuchUser); + } + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + if (profile.room.furnitures == null) { + await UserProfiles.update(user.id, { + room: { + furnitures: [], + ...profile.room + } + }); + + profile.room.furnitures = []; + } + + if (profile.room.roomType == null) { + const initialType = 'default'; + await UserProfiles.update(user.id, { + room: { + roomType: initialType as any, + ...profile.room + } + }); + + profile.room.roomType = initialType; + } + + if (profile.room.carpetColor == null) { + const initialColor = '#85CAF0'; + await UserProfiles.update(user.id, { + room: { + carpetColor: initialColor as any, + ...profile.room + } + }); + + profile.room.carpetColor = initialColor; + } + + return profile.room; +}); diff --git a/src/server/api/endpoints/room/update.ts b/src/server/api/endpoints/room/update.ts new file mode 100644 index 000000000..3022b96b1 --- /dev/null +++ b/src/server/api/endpoints/room/update.ts @@ -0,0 +1,50 @@ +import $ from 'cafy'; +import { publishMainStream } from '../../../../services/stream'; +import define from '../../define'; +import { Users, UserProfiles } from '../../../../models'; + +export const meta = { + tags: ['room'], + + requireCredential: true as const, + + params: { + room: { + validator: $.obj({ + furnitures: $.arr($.obj({ + id: $.str, + type: $.str, + position: $.obj({ + x: $.num, + y: $.num, + z: $.num, + }), + rotation: $.obj({ + x: $.num, + y: $.num, + z: $.num, + }), + props: $.optional.nullable.obj(), + })), + roomType: $.str, + carpetColor: $.str + }) + }, + }, +}; + +export default define(meta, async (ps, user) => { + await UserProfiles.update(user.id, { + room: ps.room as any + }); + + const iObj = await Users.pack(user.id, user, { + detail: true, + includeSecrets: true + }); + + // Publish meUpdated event + publishMainStream(user.id, 'meUpdated', iObj); + + return iObj; +}); diff --git a/src/server/api/endpoints/stats.ts b/src/server/api/endpoints/stats.ts new file mode 100644 index 000000000..dab05c167 --- /dev/null +++ b/src/server/api/endpoints/stats.ts @@ -0,0 +1,77 @@ +import define from '../define'; +import { Notes, Users } from '../../../models'; +import { federationChart, driveChart } from '../../../services/chart'; + +export const meta = { + requireCredential: false as const, + + desc: { + 'en-US': 'Get the instance\'s statistics' + }, + + tags: ['meta'], + + params: { + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + notesCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The count of all (local/remote) notes of this instance.', + }, + originalNotesCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The count of all local notes of this instance.', + }, + usersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The count of all (local/remote) accounts of this instance.', + }, + originalUsersCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The count of all local accounts of this instance.', + }, + instances: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'The count of federated instances.', + }, + } + } +}; + +export default define(meta, async () => { + const [notesCount, + originalNotesCount, + usersCount, + originalUsersCount, + instances, + driveUsageLocal, + driveUsageRemote + ] = await Promise.all([ + Notes.count({ cache: 3600000 }), // 1 hour + Notes.count({ where: { userHost: null }, cache: 3600000 }), + Users.count({ cache: 3600000 }), + Users.count({ where: { host: null }, cache: 3600000 }), + federationChart.getChart('hour', 1, null).then(chart => chart.instance.total[0]), + driveChart.getChart('hour', 1, null).then(chart => chart.local.totalSize[0]), + driveChart.getChart('hour', 1, null).then(chart => chart.remote.totalSize[0]), + ]); + + return { + notesCount, + originalNotesCount, + usersCount, + originalUsersCount, + instances, + driveUsageLocal, + driveUsageRemote + }; +}); diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts new file mode 100644 index 000000000..4253c9557 --- /dev/null +++ b/src/server/api/endpoints/sw/register.ts @@ -0,0 +1,58 @@ +import $ from 'cafy'; +import define from '../../define'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { genId } from '../../../../misc/gen-id'; +import { SwSubscriptions } from '../../../../models'; + +export const meta = { + tags: ['account'], + + requireCredential: true as const, + + params: { + endpoint: { + validator: $.str + }, + + auth: { + validator: $.str + }, + + publickey: { + validator: $.str + } + } +}; + +export default define(meta, async (ps, user) => { + // if already subscribed + const exist = await SwSubscriptions.findOne({ + userId: user.id, + endpoint: ps.endpoint, + auth: ps.auth, + publickey: ps.publickey, + }); + + const instance = await fetchMeta(true); + + if (exist != null) { + return { + state: 'already-subscribed', + key: instance.swPublicKey + }; + } + + await SwSubscriptions.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + endpoint: ps.endpoint, + auth: ps.auth, + publickey: ps.publickey + }); + + return { + state: 'subscribed', + key: instance.swPublicKey + }; +}); diff --git a/src/server/api/endpoints/username/available.ts b/src/server/api/endpoints/username/available.ts new file mode 100644 index 000000000..89f14d3dc --- /dev/null +++ b/src/server/api/endpoints/username/available.ts @@ -0,0 +1,29 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Users, UsedUsernames } from '../../../../models'; + +export const meta = { + tags: ['users'], + + requireCredential: false as const, + + params: { + username: { + validator: $.use(Users.validateLocalUsername) + } + } +}; + +export default define(meta, async (ps) => { + // Get exist + const exist = await Users.count({ + host: null, + usernameLower: ps.username.toLowerCase() + }); + + const exist2 = await UsedUsernames.count({ username: ps.username.toLowerCase() }); + + return { + available: exist === 0 && exist2 === 0 + }; +}); diff --git a/src/server/api/endpoints/users.ts b/src/server/api/endpoints/users.ts new file mode 100644 index 000000000..9d7991b40 --- /dev/null +++ b/src/server/api/endpoints/users.ts @@ -0,0 +1,98 @@ +import $ from 'cafy'; +import define from '../define'; +import { Users } from '../../../models'; +import { generateMutedUserQueryForUsers } from '../common/generate-muted-user-query'; + +export const meta = { + tags: ['users'], + + requireCredential: false as const, + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + }, + + sort: { + validator: $.optional.str.or([ + '+follower', + '-follower', + '+createdAt', + '-createdAt', + '+updatedAt', + '-updatedAt', + ]), + }, + + state: { + validator: $.optional.str.or([ + 'all', + 'admin', + 'moderator', + 'adminOrModerator', + 'alive' + ]), + default: 'all' + }, + + origin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'local' + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Users.createQueryBuilder('user'); + + switch (ps.state) { + case 'admin': query.where('user.isAdmin = TRUE'); break; + case 'moderator': query.where('user.isModerator = TRUE'); break; + case 'adminOrModerator': query.where('user.isAdmin = TRUE OR isModerator = TRUE'); break; + case 'alive': query.where('user.updatedAt > :date', { date: new Date(Date.now() - 1000 * 60 * 60 * 24 * 5) }); break; + } + + switch (ps.origin) { + case 'local': query.andWhere('user.host IS NULL'); break; + case 'remote': query.andWhere('user.host IS NOT NULL'); break; + } + + switch (ps.sort) { + case '+follower': query.orderBy('user.followersCount', 'DESC'); break; + case '-follower': query.orderBy('user.followersCount', 'ASC'); break; + case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break; + case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break; + case '+updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'DESC'); break; + case '-updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'ASC'); break; + default: query.orderBy('user.id', 'ASC'); break; + } + + if (me) generateMutedUserQueryForUsers(query, me); + + query.take(ps.limit!); + query.skip(ps.offset); + + const users = await query.getMany(); + + return await Users.packMany(users, me, { detail: true }); +}); diff --git a/src/server/api/endpoints/users/followers.ts b/src/server/api/endpoints/users/followers.ts new file mode 100644 index 000000000..bd4a2739c --- /dev/null +++ b/src/server/api/endpoints/users/followers.ts @@ -0,0 +1,86 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Users, Followings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { toPunyNullable } from '../../../../misc/convert-host'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのフォロワー一覧を取得します。', + 'en-US': 'Get followers of a user.' + }, + + tags: ['users'], + + requireCredential: false as const, + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + username: { + validator: $.optional.str + }, + + host: { + validator: $.optional.nullable.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Following', + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '27fa5435-88ab-43de-9360-387de88727cd' + } + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId != null + ? { id: ps.userId } + : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) }); + + if (user == null) { + throw new ApiError(meta.errors.noSuchUser); + } + + const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) + .andWhere(`following.followeeId = :userId`, { userId: user.id }); + + const followings = await query + .take(ps.limit!) + .getMany(); + + return await Followings.packMany(followings, me, { populateFollower: true }); +}); diff --git a/src/server/api/endpoints/users/following.ts b/src/server/api/endpoints/users/following.ts new file mode 100644 index 000000000..9efb8bfc9 --- /dev/null +++ b/src/server/api/endpoints/users/following.ts @@ -0,0 +1,86 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { Users, Followings } from '../../../../models'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { toPunyNullable } from '../../../../misc/convert-host'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのフォロー一覧を取得します。', + 'en-US': 'Get following users of a user.' + }, + + tags: ['users'], + + requireCredential: false as const, + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + username: { + validator: $.optional.str + }, + + host: { + validator: $.optional.nullable.str + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Following', + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '63e4aba4-4156-4e53-be25-c9559e42d71b' + } + } +}; + +export default define(meta, async (ps, me) => { + const user = await Users.findOne(ps.userId != null + ? { id: ps.userId } + : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) }); + + if (user == null) { + throw new ApiError(meta.errors.noSuchUser); + } + + const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId) + .andWhere(`following.followerId = :userId`, { userId: user.id }); + + const followings = await query + .take(ps.limit!) + .getMany(); + + return await Followings.packMany(followings, me, { populateFollowee: true }); +}); diff --git a/src/server/api/endpoints/users/get-frequently-replied-users.ts b/src/server/api/endpoints/users/get-frequently-replied-users.ts new file mode 100644 index 000000000..d0650a172 --- /dev/null +++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts @@ -0,0 +1,109 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { maximum } from '../../../../prelude/array'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { Not, In, IsNull } from 'typeorm'; +import { Notes, Users } from '../../../../models'; + +export const meta = { + tags: ['users'], + + requireCredential: false as const, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'e6965129-7b2a-40a4-bae2-cd84cd434822' + } + } +}; + +export default define(meta, async (ps, me) => { + // Lookup user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Fetch recent notes + const recentNotes = await Notes.find({ + where: { + userId: user.id, + replyId: Not(IsNull()) + }, + order: { + id: -1 + }, + take: 1000, + select: ['replyId'] + }); + + // 投稿が少なかったら中断 + if (recentNotes.length === 0) { + return []; + } + + // TODO ミュートを考慮 + const replyTargetNotes = await Notes.find({ + where: { + id: In(recentNotes.map(p => p.replyId)), + }, + select: ['userId'] + }); + + const repliedUsers: any = {}; + + // Extract replies from recent notes + for (const userId of replyTargetNotes.map(x => x.userId.toString())) { + if (repliedUsers[userId]) { + repliedUsers[userId]++; + } else { + repliedUsers[userId] = 1; + } + } + + // Calc peak + const peak = maximum(Object.values(repliedUsers)); + + // Sort replies by frequency + const repliedUsersSorted = Object.keys(repliedUsers).sort((a, b) => repliedUsers[b] - repliedUsers[a]); + + // Extract top replied users + const topRepliedUsers = repliedUsersSorted.slice(0, ps.limit!); + + // Make replies object (includes weights) + const repliesObj = await Promise.all(topRepliedUsers.map(async (user) => ({ + user: await Users.pack(user, me, { detail: true }), + weight: repliedUsers[user] / peak + }))); + + return repliesObj; +}); diff --git a/src/server/api/endpoints/users/groups/create.ts b/src/server/api/endpoints/users/groups/create.ts new file mode 100644 index 000000000..ca011d5cd --- /dev/null +++ b/src/server/api/endpoints/users/groups/create.ts @@ -0,0 +1,50 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; +import { UserGroup } from '../../../../../models/entities/user-group'; +import { UserGroupJoining } from '../../../../../models/entities/user-group-joining'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーグループを作成します。', + 'en-US': 'Create a user group.' + }, + + tags: ['groups'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + name: { + validator: $.str.range(1, 100) + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + }, +}; + +export default define(meta, async (ps, user) => { + const userGroup = await UserGroups.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + } as UserGroup); + + // Push the owner + await UserGroupJoinings.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + userGroupId: userGroup.id + } as UserGroupJoining); + + return await UserGroups.pack(userGroup); +}); diff --git a/src/server/api/endpoints/users/groups/delete.ts b/src/server/api/endpoints/users/groups/delete.ts new file mode 100644 index 000000000..71b882516 --- /dev/null +++ b/src/server/api/endpoints/users/groups/delete.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserGroups } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループを削除します。', + 'en-US': 'Delete a user group' + }, + + tags: ['groups'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + groupId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象となるユーザーグループのID', + 'en-US': 'ID of target user group' + } + } + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: '63dbd64c-cd77-413f-8e08-61781e210b38' + } + } +}; + +export default define(meta, async (ps, user) => { + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + userId: user.id + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + await UserGroups.delete(userGroup.id); +}); diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/src/server/api/endpoints/users/groups/invitations/accept.ts new file mode 100644 index 000000000..e86709f83 --- /dev/null +++ b/src/server/api/endpoints/users/groups/invitations/accept.ts @@ -0,0 +1,63 @@ +import $ from 'cafy'; +import { ID } from '../../../../../../misc/cafy-id'; +import define from '../../../../define'; +import { ApiError } from '../../../../error'; +import { UserGroupJoinings, UserGroupInvitations } from '../../../../../../models'; +import { genId } from '../../../../../../misc/gen-id'; +import { UserGroupJoining } from '../../../../../../models/entities/user-group-joining'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーグループへの招待を承認します。', + 'en-US': 'Accept invitation of a user group.' + }, + + tags: ['groups', 'users'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + invitationId: { + validator: $.type(ID), + desc: { + 'ja-JP': '招待ID', + 'en-US': 'The invitation ID' + } + }, + }, + + errors: { + noSuchInvitation: { + message: 'No such invitation.', + code: 'NO_SUCH_INVITATION', + id: '98c11eca-c890-4f42-9806-c8c8303ebb5e' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch the invitation + const invitation = await UserGroupInvitations.findOne({ + id: ps.invitationId, + }); + + if (invitation == null) { + throw new ApiError(meta.errors.noSuchInvitation); + } + + if (invitation.userId !== user.id) { + throw new ApiError(meta.errors.noSuchInvitation); + } + + // Push the user + await UserGroupJoinings.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + userGroupId: invitation.userGroupId + } as UserGroupJoining); + + UserGroupInvitations.delete(invitation.id); +}); diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/src/server/api/endpoints/users/groups/invitations/reject.ts new file mode 100644 index 000000000..42803d37c --- /dev/null +++ b/src/server/api/endpoints/users/groups/invitations/reject.ts @@ -0,0 +1,53 @@ +import $ from 'cafy'; +import { ID } from '../../../../../../misc/cafy-id'; +import define from '../../../../define'; +import { ApiError } from '../../../../error'; +import { UserGroupInvitations } from '../../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーグループへの招待を拒否します。', + 'en-US': 'Reject invitation of a user group.' + }, + + tags: ['groups', 'users'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + invitationId: { + validator: $.type(ID), + desc: { + 'ja-JP': '招待ID', + 'en-US': 'The invitation ID' + } + }, + }, + + errors: { + noSuchInvitation: { + message: 'No such invitation.', + code: 'NO_SUCH_INVITATION', + id: 'ad7471d4-2cd9-44b4-ac68-e7136b4ce656' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch the invitation + const invitation = await UserGroupInvitations.findOne({ + id: ps.invitationId, + }); + + if (invitation == null) { + throw new ApiError(meta.errors.noSuchInvitation); + } + + if (invitation.userId !== user.id) { + throw new ApiError(meta.errors.noSuchInvitation); + } + + await UserGroupInvitations.delete(invitation.id); +}); diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts new file mode 100644 index 000000000..a0f5091b0 --- /dev/null +++ b/src/server/api/endpoints/users/groups/invite.ts @@ -0,0 +1,111 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; +import { UserGroupInvitation } from '../../../../../models/entities/user-group-invitation'; +import { createNotification } from '../../../../../services/create-notification'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループに指定したユーザーを招待します。', + 'en-US': 'Invite a user to a user group.' + }, + + tags: ['groups', 'users'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + groupId: { + validator: $.type(ID), + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: '583f8bc0-8eee-4b78-9299-1e14fc91e409' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'da52de61-002c-475b-90e1-ba64f9cf13a8' + }, + + alreadyAdded: { + message: 'That user has already been added to that group.', + code: 'ALREADY_ADDED', + id: '7e35c6a0-39b2-4488-aea6-6ee20bd5da2c' + }, + + alreadyInvited: { + message: 'That user has already been invited to that group.', + code: 'ALREADY_INVITED', + id: 'ee0f58b4-b529-4d13-b761-b9a3e69f97e6' + } + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the group + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + userId: me.id, + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + // Fetch the user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + const joining = await UserGroupJoinings.findOne({ + userGroupId: userGroup.id, + userId: user.id + }); + + if (joining) { + throw new ApiError(meta.errors.alreadyAdded); + } + + const existInvitation = await UserGroupInvitations.findOne({ + userGroupId: userGroup.id, + userId: user.id + }); + + if (existInvitation) { + throw new ApiError(meta.errors.alreadyInvited); + } + + const invitation = await UserGroupInvitations.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + userGroupId: userGroup.id + } as UserGroupInvitation); + + // 通知を作成 + createNotification(user.id, 'groupInvited', { + notifierId: me.id, + userGroupInvitationId: invitation.id + }); +}); diff --git a/src/server/api/endpoints/users/groups/joined.ts b/src/server/api/endpoints/users/groups/joined.ts new file mode 100644 index 000000000..a579a738e --- /dev/null +++ b/src/server/api/endpoints/users/groups/joined.ts @@ -0,0 +1,40 @@ +import define from '../../../define'; +import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { Not, In } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '自分の所属するユーザーグループ一覧を取得します。' + }, + + tags: ['groups', 'account'], + + requireCredential: true as const, + + kind: 'read:user-groups', + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + } + }, +}; + +export default define(meta, async (ps, me) => { + const ownedGroups = await UserGroups.find({ + userId: me.id, + }); + + const joinings = await UserGroupJoinings.find({ + userId: me.id, + ...(ownedGroups.length > 0 ? { + userGroupId: Not(In(ownedGroups.map(x => x.id))) + } : {}) + }); + + return await Promise.all(joinings.map(x => UserGroups.pack(x.userGroupId))); +}); diff --git a/src/server/api/endpoints/users/groups/owned.ts b/src/server/api/endpoints/users/groups/owned.ts new file mode 100644 index 000000000..bb34090cb --- /dev/null +++ b/src/server/api/endpoints/users/groups/owned.ts @@ -0,0 +1,32 @@ +import define from '../../../define'; +import { UserGroups } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '自分の作成したユーザーグループ一覧を取得します。' + }, + + tags: ['groups', 'account'], + + requireCredential: true as const, + + kind: 'read:user-groups', + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + } + }, +}; + +export default define(meta, async (ps, me) => { + const userGroups = await UserGroups.find({ + userId: me.id, + }); + + return await Promise.all(userGroups.map(x => UserGroups.pack(x))); +}); diff --git a/src/server/api/endpoints/users/groups/pull.ts b/src/server/api/endpoints/users/groups/pull.ts new file mode 100644 index 000000000..f4af884dd --- /dev/null +++ b/src/server/api/endpoints/users/groups/pull.ts @@ -0,0 +1,78 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { UserGroups, UserGroupJoinings } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループから指定したユーザーを削除します。', + 'en-US': 'Remove a user to a user group.' + }, + + tags: ['groups', 'users'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + groupId: { + validator: $.type(ID), + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: '4662487c-05b1-4b78-86e5-fd46998aba74' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '0b5cc374-3681-41da-861e-8bc1146f7a55' + }, + + isOwner: { + message: 'The user is the owner.', + code: 'IS_OWNER', + id: '1546eed5-4414-4dea-81c1-b0aec4f6d2af' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the group + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + userId: me.id, + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + // Fetch the user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + if (user.id === userGroup.userId) { + throw new ApiError(meta.errors.isOwner); + } + + // Pull the user + await UserGroupJoinings.delete({ userGroupId: userGroup.id, userId: user.id }); +}); diff --git a/src/server/api/endpoints/users/groups/show.ts b/src/server/api/endpoints/users/groups/show.ts new file mode 100644 index 000000000..13f171f61 --- /dev/null +++ b/src/server/api/endpoints/users/groups/show.ts @@ -0,0 +1,60 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserGroups, UserGroupJoinings } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループの情報を取得します。', + 'en-US': 'Show a user group.' + }, + + tags: ['groups', 'account'], + + requireCredential: true as const, + + kind: 'read:user-groups', + + params: { + groupId: { + validator: $.type(ID), + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: 'ea04751e-9b7e-487b-a509-330fb6bd6b9b' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the group + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + const joining = await UserGroupJoinings.findOne({ + userId: me.id, + userGroupId: userGroup.id + }); + + if (joining == null && userGroup.userId !== me.id) { + throw new ApiError(meta.errors.noSuchGroup); + } + + return await UserGroups.pack(userGroup); +}); diff --git a/src/server/api/endpoints/users/groups/transfer.ts b/src/server/api/endpoints/users/groups/transfer.ts new file mode 100644 index 000000000..03f5f3927 --- /dev/null +++ b/src/server/api/endpoints/users/groups/transfer.ts @@ -0,0 +1,92 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { UserGroups, UserGroupJoinings } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループを指定したユーザーグループ内のユーザーに譲渡します。', + 'en-US': 'Transfer user group ownership to another user in group.' + }, + + tags: ['groups', 'users'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + groupId: { + validator: $.type(ID), + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: '8e31d36b-2f88-4ccd-a438-e2d78a9162db' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '711f7ebb-bbb9-4dfa-b540-b27809fed5e9' + }, + + noSuchGroupMember: { + message: 'No such group member.', + code: 'NO_SUCH_GROUP_MEMBER', + id: 'd31bebee-196d-42c2-9a3e-9474d4be6cc4' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the group + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + userId: me.id, + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + // Fetch the user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + const joining = await UserGroupJoinings.findOne({ + userGroupId: userGroup.id, + userId: user.id + }); + + if (joining == null) { + throw new ApiError(meta.errors.noSuchGroupMember); + } + + await UserGroups.update(userGroup.id, { + userId: ps.userId + }); + + return await UserGroups.pack(userGroup.id); +}); diff --git a/src/server/api/endpoints/users/groups/update.ts b/src/server/api/endpoints/users/groups/update.ts new file mode 100644 index 000000000..805b2de6a --- /dev/null +++ b/src/server/api/endpoints/users/groups/update.ts @@ -0,0 +1,68 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserGroups } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーグループを更新します。', + 'en-US': 'Update a user group' + }, + + tags: ['groups'], + + requireCredential: true as const, + + kind: 'write:user-groups', + + params: { + groupId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象となるユーザーグループのID', + 'en-US': 'ID of target user group' + } + }, + + name: { + validator: $.str.range(1, 100), + desc: { + 'ja-JP': 'このユーザーグループの名前', + 'en-US': 'name of this user group' + } + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserGroup', + }, + + errors: { + noSuchGroup: { + message: 'No such group.', + code: 'NO_SUCH_GROUP', + id: '9081cda3-7a9e-4fac-a6ce-908d70f282f6' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the group + const userGroup = await UserGroups.findOne({ + id: ps.groupId, + userId: me.id + }); + + if (userGroup == null) { + throw new ApiError(meta.errors.noSuchGroup); + } + + await UserGroups.update(userGroup.id, { + name: ps.name + }); + + return await UserGroups.pack(userGroup.id); +}); diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts new file mode 100644 index 000000000..d02696aed --- /dev/null +++ b/src/server/api/endpoints/users/lists/create.ts @@ -0,0 +1,41 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { UserLists } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; +import { UserList } from '../../../../../models/entities/user-list'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーリストを作成します。', + 'en-US': 'Create a user list' + }, + + tags: ['lists'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + name: { + validator: $.str.range(1, 100) + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserList', + }, +}; + +export default define(meta, async (ps, user) => { + const userList = await UserLists.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + } as UserList); + + return await UserLists.pack(userList); +}); diff --git a/src/server/api/endpoints/users/lists/delete.ts b/src/server/api/endpoints/users/lists/delete.ts new file mode 100644 index 000000000..930af1827 --- /dev/null +++ b/src/server/api/endpoints/users/lists/delete.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserLists } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストを削除します。', + 'en-US': 'Delete a user list' + }, + + tags: ['lists'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + listId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象となるユーザーリストのID', + 'en-US': 'ID of target user list' + } + } + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '78436795-db79-42f5-b1e2-55ea2cf19166' + } + } +}; + +export default define(meta, async (ps, user) => { + const userList = await UserLists.findOne({ + id: ps.listId, + userId: user.id + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchList); + } + + await UserLists.delete(userList.id); +}); diff --git a/src/server/api/endpoints/users/lists/list.ts b/src/server/api/endpoints/users/lists/list.ts new file mode 100644 index 000000000..16f1b0639 --- /dev/null +++ b/src/server/api/endpoints/users/lists/list.ts @@ -0,0 +1,32 @@ +import define from '../../../define'; +import { UserLists } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '自分の作成したユーザーリスト一覧を取得します。' + }, + + tags: ['lists', 'account'], + + requireCredential: true as const, + + kind: 'read:account', + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserList', + } + }, +}; + +export default define(meta, async (ps, me) => { + const userLists = await UserLists.find({ + userId: me.id, + }); + + return await Promise.all(userLists.map(x => UserLists.pack(x))); +}); diff --git a/src/server/api/endpoints/users/lists/pull.ts b/src/server/api/endpoints/users/lists/pull.ts new file mode 100644 index 000000000..1a5be2afc --- /dev/null +++ b/src/server/api/endpoints/users/lists/pull.ts @@ -0,0 +1,71 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import { publishUserListStream } from '../../../../../services/stream'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { UserLists, UserListJoinings, Users } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストから指定したユーザーを削除します。', + 'en-US': 'Remove a user to a user list.' + }, + + tags: ['lists', 'users'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + listId: { + validator: $.type(ID), + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '7f44670e-ab16-43b8-b4c1-ccd2ee89cc02' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '588e7f72-c744-4a61-b180-d354e912bda2' + } + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the list + const userList = await UserLists.findOne({ + id: ps.listId, + userId: me.id, + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchList); + } + + // Fetch the user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + // Pull the user + await UserListJoinings.delete({ userListId: userList.id, userId: user.id }); + + publishUserListStream(userList.id, 'userRemoved', await Users.pack(user)); +}); diff --git a/src/server/api/endpoints/users/lists/push.ts b/src/server/api/endpoints/users/lists/push.ts new file mode 100644 index 000000000..fd76cb815 --- /dev/null +++ b/src/server/api/endpoints/users/lists/push.ts @@ -0,0 +1,84 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { getUser } from '../../../common/getters'; +import { pushUserToUserList } from '../../../../../services/user-list/push'; +import { UserLists, UserListJoinings } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストに指定したユーザーを追加します。', + 'en-US': 'Add a user to a user list.' + }, + + tags: ['lists', 'users'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + listId: { + validator: $.type(ID), + }, + + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '2214501d-ac96-4049-b717-91e42272a711' + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: 'a89abd3d-f0bc-4cce-beb1-2f446f4f1e6a' + }, + + alreadyAdded: { + message: 'That user has already been added to that list.', + code: 'ALREADY_ADDED', + id: '1de7c884-1595-49e9-857e-61f12f4d4fc5' + } + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the list + const userList = await UserLists.findOne({ + id: ps.listId, + userId: me.id, + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchList); + } + + // Fetch the user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + const exist = await UserListJoinings.findOne({ + userListId: userList.id, + userId: user.id + }); + + if (exist) { + throw new ApiError(meta.errors.alreadyAdded); + } + + // Push the user + await pushUserToUserList(user, userList); +}); diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts new file mode 100644 index 000000000..5d80a8f47 --- /dev/null +++ b/src/server/api/endpoints/users/lists/show.ts @@ -0,0 +1,52 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserLists } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストの情報を取得します。', + 'en-US': 'Show a user list.' + }, + + tags: ['lists', 'account'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + listId: { + validator: $.type(ID), + }, + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'UserList', + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686' + }, + } +}; + +export default define(meta, async (ps, me) => { + // Fetch the list + const userList = await UserLists.findOne({ + id: ps.listId, + userId: me.id, + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchList); + } + + return await UserLists.pack(userList); +}); diff --git a/src/server/api/endpoints/users/lists/update.ts b/src/server/api/endpoints/users/lists/update.ts new file mode 100644 index 000000000..600d834f9 --- /dev/null +++ b/src/server/api/endpoints/users/lists/update.ts @@ -0,0 +1,62 @@ +import $ from 'cafy'; +import { ID } from '../../../../../misc/cafy-id'; +import define from '../../../define'; +import { ApiError } from '../../../error'; +import { UserLists } from '../../../../../models'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーリストを更新します。', + 'en-US': 'Update a user list' + }, + + tags: ['lists'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + listId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象となるユーザーリストのID', + 'en-US': 'ID of target user list' + } + }, + + name: { + validator: $.str.range(1, 100), + desc: { + 'ja-JP': 'このユーザーリストの名前', + 'en-US': 'name of this user list' + } + } + }, + + errors: { + noSuchList: { + message: 'No such list.', + code: 'NO_SUCH_LIST', + id: '796666fe-3dff-4d39-becb-8a5932c1d5b7' + }, + } +}; + +export default define(meta, async (ps, user) => { + // Fetch the list + const userList = await UserLists.findOne({ + id: ps.listId, + userId: user.id + }); + + if (userList == null) { + throw new ApiError(meta.errors.noSuchList); + } + + await UserLists.update(userList.id, { + name: ps.name + }); + + return await UserLists.pack(userList.id); +}); diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts new file mode 100644 index 000000000..33e3ecb03 --- /dev/null +++ b/src/server/api/endpoints/users/notes.ts @@ -0,0 +1,177 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { generateVisibilityQuery } from '../../common/generate-visibility-query'; +import { Notes } from '../../../../models'; +import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; +import { Brackets } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーのタイムラインを取得します。' + }, + + tags: ['users', 'notes'], + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + includeReplies: { + validator: $.optional.bool, + default: true, + + desc: { + 'ja-JP': 'リプライを含めるか否か' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '最大数' + } + }, + + sinceId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより新しい投稿を取得します' + } + }, + + untilId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '指定すると、その投稿を基点としてより古い投稿を取得します' + } + }, + + sinceDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより新しい投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + untilDate: { + validator: $.optional.num, + desc: { + 'ja-JP': '指定した時間を基点としてより古い投稿を取得します。数値は、1970年1月1日 00:00:00 UTC から指定した日時までの経過時間をミリ秒単位で表します。' + } + }, + + includeMyRenotes: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': 'Renoteを含めるかどうか' + } + }, + + withFiles: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します' + } + }, + + fileType: { + validator: $.optional.arr($.str), + desc: { + 'ja-JP': '指定された種類のファイルが添付された投稿のみを取得します' + } + }, + + excludeNsfw: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'true にすると、NSFW指定されたファイルを除外します(fileTypeが指定されている場合のみ有効)' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Note', + } + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '27e494ba-2ac2-48e8-893b-10d4d8c2387b' + } + } +}; + +export default define(meta, async (ps, me) => { + // Lookup user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + //#region Construct query + const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate) + .andWhere('note.userId = :userId', { userId: user.id }) + .leftJoinAndSelect('note.user', 'user'); + + generateVisibilityQuery(query, me); + if (me) generateMutedUserQuery(query, me, user); + + if (ps.withFiles) { + query.andWhere('note.fileIds != \'{}\''); + } + + if (ps.fileType != null) { + query.andWhere('note.fileIds != \'{}\''); + query.andWhere(new Brackets(qb => { + for (const type of ps.fileType!) { + const i = ps.fileType!.indexOf(type); + qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type }); + } + })); + + if (ps.excludeNsfw) { + query.andWhere('note.cw IS NULL'); + query.andWhere('0 = (SELECT COUNT(*) FROM drive_file df WHERE df.id = ANY(note."fileIds") AND df."isSensitive" = TRUE)'); + } + } + + if (!ps.includeReplies) { + query.andWhere('note.replyId IS NULL'); + } + + if (ps.includeMyRenotes === false) { + query.andWhere(new Brackets(qb => { + qb.orWhere('note.userId != :userId', { userId: user.id }); + qb.orWhere('note.renoteId IS NULL'); + qb.orWhere('note.text IS NOT NULL'); + qb.orWhere('note.fileIds != \'{}\''); + qb.orWhere('0 < (SELECT COUNT(*) FROM poll WHERE poll."noteId" = note.id)'); + })); + } + + //#endregion + + const timeline = await query.take(ps.limit!).getMany(); + + return await Notes.packMany(timeline, me); +}); diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts new file mode 100644 index 000000000..1b59624aa --- /dev/null +++ b/src/server/api/endpoints/users/recommendation.ts @@ -0,0 +1,65 @@ +import * as ms from 'ms'; +import $ from 'cafy'; +import define from '../../define'; +import { Users, Followings } from '../../../../models'; +import { generateMutedUserQueryForUsers } from '../../common/generate-muted-user-query'; +import { generateBlockQueryForUsers } from '../../common/generate-block-query'; + +export const meta = { + desc: { + 'ja-JP': 'おすすめのユーザー一覧を取得します。' + }, + + tags: ['users'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + offset: { + validator: $.optional.num.min(0), + default: 0 + } + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const query = Users.createQueryBuilder('user') + .where('user.isLocked = FALSE') + .andWhere('user.host IS NULL') + .andWhere('user.updatedAt >= :date', { date: new Date(Date.now() - ms('7days')) }) + .andWhere('user.id != :meId', { meId: me.id }) + .orderBy('user.followersCount', 'DESC'); + + generateMutedUserQueryForUsers(query, me); + generateBlockQueryForUsers(query, me); + + const followingQuery = Followings.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: me.id }); + + query + .andWhere(`user.id NOT IN (${ followingQuery.getQuery() })`); + + query.setParameters(followingQuery.getParameters()); + + const users = await query.take(ps.limit!).skip(ps.offset).getMany(); + + return await Users.packMany(users, me, { detail: true }); +}); diff --git a/src/server/api/endpoints/users/relation.ts b/src/server/api/endpoints/users/relation.ts new file mode 100644 index 000000000..086e9bd1e --- /dev/null +++ b/src/server/api/endpoints/users/relation.ts @@ -0,0 +1,31 @@ +import $ from 'cafy'; +import define from '../../define'; +import { ID } from '../../../../misc/cafy-id'; +import { Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザー間のリレーションを取得します。' + }, + + tags: ['users'], + + requireCredential: true as const, + + params: { + userId: { + validator: $.either($.type(ID), $.arr($.type(ID)).unique()), + desc: { + 'ja-JP': 'ユーザーID (配列でも可)' + } + } + } +}; + +export default define(meta, async (ps, me) => { + const ids = Array.isArray(ps.userId) ? ps.userId : [ps.userId]; + + const relations = await Promise.all(ids.map(id => Users.getRelation(me.id, id))); + + return Array.isArray(ps.userId) ? relations : relations[0]; +}); diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts new file mode 100644 index 000000000..eaa4cd625 --- /dev/null +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -0,0 +1,101 @@ +import $ from 'cafy'; +import { ID } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { publishAdminStream } from '../../../../services/stream'; +import { ApiError } from '../../error'; +import { getUser } from '../../common/getters'; +import { AbuseUserReports, Users } from '../../../../models'; +import { genId } from '../../../../misc/gen-id'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーを迷惑なユーザーであると報告します。' + }, + + tags: ['users'], + + requireCredential: true as const, + + params: { + userId: { + validator: $.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + comment: { + validator: $.str.range(1, 2048), + desc: { + 'ja-JP': '迷惑行為の詳細' + } + }, + }, + + errors: { + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '1acefcb5-0959-43fd-9685-b48305736cb5' + }, + + cannotReportYourself: { + message: 'Cannot report yourself.', + code: 'CANNOT_REPORT_YOURSELF', + id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f' + }, + + cannotReportAdmin: { + message: 'Cannot report the admin.', + code: 'CANNOT_REPORT_THE_ADMIN', + id: '35e166f5-05fb-4f87-a2d5-adb42676d48f' + } + } +}; + +export default define(meta, async (ps, me) => { + // Lookup user + const user = await getUser(ps.userId).catch(e => { + if (e.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser); + throw e; + }); + + if (user.id === me.id) { + throw new ApiError(meta.errors.cannotReportYourself); + } + + if (user.isAdmin) { + throw new ApiError(meta.errors.cannotReportAdmin); + } + + const report = await AbuseUserReports.save({ + id: genId(), + createdAt: new Date(), + targetUserId: user.id, + targetUserHost: user.host, + reporterId: me.id, + reporterHost: null, + comment: ps.comment, + }); + + // Publish event to moderators + setTimeout(async () => { + const moderators = await Users.find({ + where: [{ + isAdmin: true + }, { + isModerator: true + }] + }); + + for (const moderator of moderators) { + publishAdminStream(moderator.id, 'newAbuseUserReport', { + id: report.id, + targetUserId: report.targetUserId, + reporterId: report.reporterId, + comment: report.comment + }); + } + }, 1); +}); diff --git a/src/server/api/endpoints/users/search-by-username-and-host.ts b/src/server/api/endpoints/users/search-by-username-and-host.ts new file mode 100644 index 000000000..8e436ddb9 --- /dev/null +++ b/src/server/api/endpoints/users/search-by-username-and-host.ts @@ -0,0 +1,107 @@ +import $ from 'cafy'; +import define from '../../define'; +import { Users } from '../../../../models'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーを検索します。' + }, + + tags: ['users'], + + requireCredential: false as const, + + params: { + username: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'クエリ' + } + }, + + host: { + validator: $.optional.nullable.str, + desc: { + 'ja-JP': 'クエリ' + } + }, + + offset: { + validator: $.optional.num.min(0), + default: 0, + desc: { + 'ja-JP': 'オフセット' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '取得する数' + } + }, + + detail: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': '詳細なユーザー情報を含めるか否か' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + if (ps.host) { + const q = Users.createQueryBuilder('user') + .where('user.isSuspended = FALSE') + .andWhere('user.host LIKE :host', { host: ps.host.toLowerCase() + '%' }); + + if (ps.username) { + q.andWhere('user.usernameLower like :username', { username: ps.username.toLowerCase() + '%' }); + } + + q.andWhere('user.updatedAt IS NOT NULL'); + q.orderBy('user.updatedAt', 'DESC'); + + const users = await q.take(ps.limit!).skip(ps.offset).getMany(); + + return await Users.packMany(users, me, { detail: ps.detail }); + } else if (ps.username) { + let users = await Users.createQueryBuilder('user') + .where('user.host IS NULL') + .andWhere('user.isSuspended = FALSE') + .andWhere('user.usernameLower like :username', { username: ps.username.toLowerCase() + '%' }) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit!) + .skip(ps.offset) + .getMany(); + + if (users.length < ps.limit!) { + const otherUsers = await Users.createQueryBuilder('user') + .where('user.host IS NOT NULL') + .andWhere('user.isSuspended = FALSE') + .andWhere('user.usernameLower like :username', { username: ps.username.toLowerCase() + '%' }) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit! - users.length) + .getMany(); + + users = users.concat(otherUsers); + } + + return await Users.packMany(users, me, { detail: ps.detail }); + } +}); diff --git a/src/server/api/endpoints/users/search.ts b/src/server/api/endpoints/users/search.ts new file mode 100644 index 000000000..528c6ac88 --- /dev/null +++ b/src/server/api/endpoints/users/search.ts @@ -0,0 +1,129 @@ +import $ from 'cafy'; +import define from '../../define'; +import { UserProfiles, Users } from '../../../../models'; +import { User } from '../../../../models/entities/user'; + +export const meta = { + desc: { + 'ja-JP': 'ユーザーを検索します。' + }, + + tags: ['users'], + + requireCredential: false as const, + + params: { + query: { + validator: $.str, + desc: { + 'ja-JP': 'クエリ' + } + }, + + offset: { + validator: $.optional.num.min(0), + default: 0, + desc: { + 'ja-JP': 'オフセット' + } + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10, + desc: { + 'ja-JP': '取得する数' + } + }, + + localOnly: { + validator: $.optional.bool, + default: false, + desc: { + 'ja-JP': 'ローカルユーザーのみ検索対象にするか否か' + } + }, + + detail: { + validator: $.optional.bool, + default: true, + desc: { + 'ja-JP': '詳細なユーザー情報を含めるか否か' + } + }, + }, + + res: { + type: 'array' as const, + optional: false as const, nullable: false as const, + items: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + } + }, +}; + +export default define(meta, async (ps, me) => { + const isUsername = ps.query.startsWith('@'); + + let users: User[] = []; + + if (isUsername) { + users = await Users.createQueryBuilder('user') + .where('user.host IS NULL') + .andWhere('user.isSuspended = FALSE') + .andWhere('user.usernameLower like :username', { username: ps.query.replace('@', '').toLowerCase() + '%' }) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit!) + .skip(ps.offset) + .getMany(); + + if (users.length < ps.limit! && !ps.localOnly) { + const otherUsers = await Users.createQueryBuilder('user') + .where('user.host IS NOT NULL') + .andWhere('user.isSuspended = FALSE') + .andWhere('user.usernameLower like :username', { username: ps.query.replace('@', '').toLowerCase() + '%' }) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit! - users.length) + .getMany(); + + users = users.concat(otherUsers); + } + } else { + const profQuery = UserProfiles.createQueryBuilder('prof') + .select('prof.userId') + .where('prof.userHost IS NULL') + .andWhere('prof.description ilike :query', { query: '%' + ps.query + '%' }); + + users = await Users.createQueryBuilder('user') + .where(`user.id IN (${ profQuery.getQuery() })`) + .setParameters(profQuery.getParameters()) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit!) + .skip(ps.offset) + .getMany(); + + if (users.length < ps.limit! && !ps.localOnly) { + const profQuery2 = UserProfiles.createQueryBuilder('prof') + .select('prof.userId') + .where('prof.userHost IS NOT NULL') + .andWhere('prof.description ilike :query', { query: '%' + ps.query + '%' }); + + const otherUsers = await Users.createQueryBuilder('user') + .where(`user.id IN (${ profQuery2.getQuery() })`) + .setParameters(profQuery2.getParameters()) + .andWhere('user.updatedAt IS NOT NULL') + .orderBy('user.updatedAt', 'DESC') + .take(ps.limit! - users.length) + .getMany(); + + users = users.concat(otherUsers); + } + } + + return await Users.packMany(users, me, { detail: ps.detail }); +}); diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts new file mode 100644 index 000000000..9e0771a55 --- /dev/null +++ b/src/server/api/endpoints/users/show.ts @@ -0,0 +1,115 @@ +import $ from 'cafy'; +import { resolveUser } from '../../../../remote/resolve-user'; +import define from '../../define'; +import { apiLogger } from '../../logger'; +import { ApiError } from '../../error'; +import { ID } from '../../../../misc/cafy-id'; +import { Users } from '../../../../models'; +import { In } from 'typeorm'; + +export const meta = { + desc: { + 'ja-JP': '指定したユーザーの情報を取得します。' + }, + + tags: ['users'], + + requireCredential: false as const, + + params: { + userId: { + validator: $.optional.type(ID), + desc: { + 'ja-JP': '対象のユーザーのID', + 'en-US': 'Target user ID' + } + }, + + userIds: { + validator: $.optional.arr($.type(ID)).unique(), + desc: { + 'ja-JP': 'ユーザーID (配列)' + } + }, + + username: { + validator: $.optional.str + }, + + host: { + validator: $.optional.nullable.str + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'User', + }, + + errors: { + failedToResolveRemoteUser: { + message: 'Failed to resolve remote user.', + code: 'FAILED_TO_RESOLVE_REMOTE_USER', + id: 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c', + kind: 'server' as const + }, + + noSuchUser: { + message: 'No such user.', + code: 'NO_SUCH_USER', + id: '4362f8dc-731f-4ad8-a694-be5a88922a24' + }, + } +}; + +export default define(meta, async (ps, me) => { + let user; + + const isAdminOrModerator = me && (me.isAdmin || me.isModerator); + + if (ps.userIds) { + if (ps.userIds.length === 0) { + return []; + } + + const users = await Users.find(isAdminOrModerator ? { + id: In(ps.userIds) + } : { + id: In(ps.userIds), + isSuspended: false + }); + + // リクエストされた通りに並べ替え + const _users = []; + for (const id of ps.userIds) { + _users.push(users.find(x => x.id === id)); + } + + return await Promise.all(_users.map(u => Users.pack(u, me, { + detail: true + }))); + } else { + // Lookup user + if (typeof ps.host === 'string' && typeof ps.username === 'string') { + user = await resolveUser(ps.username, ps.host).catch(e => { + apiLogger.warn(`failed to resolve remote user: ${e}`); + throw new ApiError(meta.errors.failedToResolveRemoteUser); + }); + } else { + const q: any = ps.userId != null + ? { id: ps.userId } + : { usernameLower: ps.username!.toLowerCase(), host: null }; + + user = await Users.findOne(q); + } + + if (user == null || (!isAdminOrModerator && user.isSuspended)) { + throw new ApiError(meta.errors.noSuchUser); + } + + return await Users.pack(user, me, { + detail: true + }); + } +}); diff --git a/packages/backend/src/server/api/error.ts b/src/server/api/error.ts similarity index 96% rename from packages/backend/src/server/api/error.ts rename to src/server/api/error.ts index 3f0861fdb..cb0bdc9f4 100644 --- a/packages/backend/src/server/api/error.ts +++ b/src/server/api/error.ts @@ -14,7 +14,7 @@ export class ApiError extends Error { code: 'INTERNAL_ERROR', id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', kind: 'server', - httpStatusCode: 500, + httpStatusCode: 500 }; super(e.message); diff --git a/src/server/api/index.ts b/src/server/api/index.ts new file mode 100644 index 000000000..aec4a9737 --- /dev/null +++ b/src/server/api/index.ts @@ -0,0 +1,106 @@ +/** + * API Server + */ + +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import * as multer from '@koa/multer'; +import * as bodyParser from 'koa-bodyparser'; +import * as cors from '@koa/cors'; + +import endpoints from './endpoints'; +import handler from './api-handler'; +import signup from './private/signup'; +import signin from './private/signin'; +import discord from './service/discord'; +import github from './service/github'; +import twitter from './service/twitter'; +import { Instances, AccessTokens, Users } from '../../models'; + +// Init app +const app = new Koa(); + +app.use(cors({ + origin: '*' +})); + +// No caching +app.use(async (ctx, next) => { + ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); + await next(); +}); + +app.use(bodyParser({ + // リクエストが multipart/form-data でない限りはJSONだと見なす + detectJSON: ctx => !ctx.is('multipart/form-data') +})); + +// Init multer instance +const upload = multer({ + storage: multer.diskStorage({}) +}); + +// Init router +const router = new Router(); + +/** + * Register endpoint handlers + */ +for (const endpoint of endpoints) { + if (endpoint.meta.requireFile) { + router.post(`/${endpoint.name}`, upload.single('file'), handler.bind(null, endpoint)); + } else { + if (endpoint.name.includes('-')) { + // 後方互換性のため + router.post(`/${endpoint.name.replace(/-/g, '_')}`, handler.bind(null, endpoint)); + } + router.post(`/${endpoint.name}`, handler.bind(null, endpoint)); + } +} + +router.post('/signup', signup); +router.post('/signin', signin); + +router.use(discord.routes()); +router.use(github.routes()); +router.use(twitter.routes()); + +router.get('/v1/instance/peers', async ctx => { + const instances = await Instances.find({ + select: ['host'] + }); + + ctx.body = instances.map(instance => instance.host); +}); + +router.post('/miauth/:session/check', async ctx => { + const token = await AccessTokens.findOne({ + session: ctx.params.session + }); + + if (token && token.session != null && !token.fetched) { + AccessTokens.update(token.id, { + fetched: true + }); + + ctx.body = { + ok: true, + token: token.token, + user: await Users.pack(token.userId, null, { detail: true }) + }; + } else { + ctx.body = { + ok: false, + }; + } +}); + +// Return 404 for unknown API +router.all('(.*)', async ctx => { + ctx.status = 404; +}); + +// Register router +app.use(router.routes()); + +export default app; diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts new file mode 100644 index 000000000..48d12d3cc --- /dev/null +++ b/src/server/api/limiter.ts @@ -0,0 +1,83 @@ +import * as Limiter from 'ratelimiter'; +import limiterDB from '../../db/redis'; +import { IEndpoint } from './endpoints'; +import getAcct from '../../misc/acct/render'; +import { User } from '../../models/entities/user'; +import Logger from '../../services/logger'; + +const logger = new Logger('limiter'); + +export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => { + const limitation = endpoint.meta.limit!; + + const key = limitation.hasOwnProperty('key') + ? limitation.key + : endpoint.name; + + const hasShortTermLimit = + limitation.hasOwnProperty('minInterval'); + + const hasLongTermLimit = + limitation.hasOwnProperty('duration') && + limitation.hasOwnProperty('max'); + + if (hasShortTermLimit) { + min(); + } else if (hasLongTermLimit) { + max(); + } else { + ok(); + } + + // Short-term limit + function min() { + const minIntervalLimiter = new Limiter({ + id: `${user.id}:${key}:min`, + duration: limitation.minInterval, + max: 1, + db: limiterDB! + }); + + minIntervalLimiter.get((err, info) => { + if (err) { + return reject('ERR'); + } + + logger.debug(`@${getAcct(user)} ${endpoint.name} min remaining: ${info.remaining}`); + + if (info.remaining === 0) { + reject('BRIEF_REQUEST_INTERVAL'); + } else { + if (hasLongTermLimit) { + max(); + } else { + ok(); + } + } + }); + } + + // Long term limit + function max() { + const limiter = new Limiter({ + id: `${user.id}:${key}`, + duration: limitation.duration, + max: limitation.max, + db: limiterDB! + }); + + limiter.get((err, info) => { + if (err) { + return reject('ERR'); + } + + logger.debug(`@${getAcct(user)} ${endpoint.name} max remaining: ${info.remaining}`); + + if (info.remaining === 0) { + reject('RATE_LIMIT_EXCEEDED'); + } else { + ok(); + } + }); + } +}); diff --git a/src/server/api/logger.ts b/src/server/api/logger.ts new file mode 100644 index 000000000..dde4b0d5f --- /dev/null +++ b/src/server/api/logger.ts @@ -0,0 +1,3 @@ +import Logger from '../../services/logger'; + +export const apiLogger = new Logger('api'); diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts new file mode 100644 index 000000000..e0527dd1a --- /dev/null +++ b/src/server/api/openapi/description.ts @@ -0,0 +1,51 @@ +import endpoints from '../endpoints'; +import * as locale from '../../../../locales/'; +import { kinds as kindsList } from '../../../misc/api-permissions'; + +export interface IKindInfo { + endpoints: string[]; + descs: { [x: string]: string; }; +} + +export function kinds() { + const kinds = Object.fromEntries( + kindsList + .map(k => [k, { + endpoints: [], + descs: Object.fromEntries( + Object.keys(locale) + .map(l => [l, locale[l]._permissions[k] as string]) + ) + } as IKindInfo]) + ); + + const errors = [] as string[][]; + + for (const endpoint of endpoints.filter(ep => !ep.meta.secure)) { + if (endpoint.meta.kind) { + const kind = endpoint.meta.kind; + if (kind in kinds) kinds[kind].endpoints.push(endpoint.name); + else errors.push([kind, endpoint.name]); + } + } + + if (errors.length > 0) throw Error('\n ' + errors.map((e) => `Unknown kind (permission) "${e[0]}" found at ${e[1]}.`).join('\n ')); + + return kinds; +} + +export function getDescription(lang = 'ja-JP'): string { + const permissionTable = Object.entries(kinds()) + .map(e => `|${e[0]}|${e[1].descs[lang]}|${e[1].endpoints.map(f => `[${f}](#operation/${f})`).join(', ')}|`) + .join('\n'); + + const descriptions: { [x: string]: string } = { + 'ja-JP': ` +# Permissions +|Permisson (kind)|Description|Endpoints| +|:--|:--|:--| +${permissionTable} +` + }; + return lang in descriptions ? descriptions[lang] : descriptions['ja-JP']; +} diff --git a/packages/backend/src/server/api/openapi/errors.ts b/src/server/api/openapi/errors.ts similarity index 91% rename from packages/backend/src/server/api/openapi/errors.ts rename to src/server/api/openapi/errors.ts index d7f791c6d..43bcc323b 100644 --- a/packages/backend/src/server/api/openapi/errors.ts +++ b/src/server/api/openapi/errors.ts @@ -7,9 +7,9 @@ export const errors = { message: 'Invalid param.', code: 'INVALID_PARAM', id: '3d81ceae-475f-4600-b2a8-2bc116157532', - }, - }, - }, + } + } + } }, '401': { 'CREDENTIAL_REQUIRED': { @@ -18,9 +18,9 @@ export const errors = { message: 'Credential required.', code: 'CREDENTIAL_REQUIRED', id: '1384574d-a912-4b81-8601-c7b1c4085df1', - }, - }, - }, + } + } + } }, '403': { 'AUTHENTICATION_FAILED': { @@ -29,9 +29,9 @@ export const errors = { message: 'Authentication failed. Please ensure your token is correct.', code: 'AUTHENTICATION_FAILED', id: 'b0a7f5f8-dc2f-4171-b91f-de88ad238e14', - }, - }, - }, + } + } + } }, '418': { 'I_AM_AI': { @@ -40,9 +40,9 @@ export const errors = { message: 'You sent a request to Ai-chan, Misskey\'s showgirl, instead of the server.', code: 'I_AM_AI', id: '60c46cd1-f23a-46b1-bebe-5d2b73951a84', - }, - }, - }, + } + } + } }, '429': { 'RATE_LIMIT_EXCEEDED': { @@ -51,9 +51,9 @@ export const errors = { message: 'Rate limit exceeded. Please try again later.', code: 'RATE_LIMIT_EXCEEDED', id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', - }, - }, - }, + } + } + } }, '500': { 'INTERNAL_ERROR': { @@ -62,8 +62,8 @@ export const errors = { message: 'Internal error occurred. Please contact us if the error persists.', code: 'INTERNAL_ERROR', id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', - }, - }, - }, - }, + } + } + } + } }; diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts new file mode 100644 index 000000000..78e481037 --- /dev/null +++ b/src/server/api/openapi/gen-spec.ts @@ -0,0 +1,237 @@ +import endpoints from '../endpoints'; +import { Context } from 'cafy'; +import config from '../../../config'; +import { errors as basicErrors } from './errors'; +import { schemas, convertSchemaToOpenApiSchema } from './schemas'; +import { getDescription } from './description'; + +export function genOpenapiSpec(lang = 'ja-JP') { + const spec = { + openapi: '3.0.0', + + info: { + version: 'v1', + title: 'Misskey API', + description: getDescription(lang), + 'x-logo': { url: '/assets/api-doc.png' } + }, + + externalDocs: { + description: 'Repository', + url: 'https://github.com/syuilo/misskey' + }, + + servers: [{ + url: config.apiUrl + }], + + paths: {} as any, + + components: { + schemas: schemas, + + securitySchemes: { + ApiKeyAuth: { + type: 'apiKey', + in: 'body', + name: 'i' + } + } + } + }; + + function genProps(props: { [key: string]: Context; }) { + const properties = {} as any; + + for (const [k, v] of Object.entries(props)) { + properties[k] = genProp(v); + } + + return properties; + } + + function genProp(param: Context): any { + const required = param.name === 'Object' ? (param as any).props ? Object.entries((param as any).props).filter(([k, v]: any) => !v.isOptional).map(([k, v]) => k) : [] : []; + return { + description: (param.data || {}).desc, + default: (param.data || {}).default, + deprecated: (param.data || {}).deprecated, + ...((param.data || {}).default ? { default: (param.data || {}).default } : {}), + type: param.name === 'ID' ? 'string' : param.name.toLowerCase(), + ...(param.name === 'ID' ? { example: 'xxxxxxxxxx', format: 'id' } : {}), + nullable: param.isNullable, + ...(param.name === 'String' ? { + ...((param as any).enum ? { enum: (param as any).enum } : {}), + ...((param as any).minLength ? { minLength: (param as any).minLength } : {}), + ...((param as any).maxLength ? { maxLength: (param as any).maxLength } : {}), + } : {}), + ...(param.name === 'Number' ? { + ...((param as any).minimum ? { minimum: (param as any).minimum } : {}), + ...((param as any).maximum ? { maximum: (param as any).maximum } : {}), + } : {}), + ...(param.name === 'Object' ? { + ...(required.length > 0 ? { required } : {}), + properties: (param as any).props ? genProps((param as any).props) : {} + } : {}), + ...(param.name === 'Array' ? { + items: (param as any).ctx ? genProp((param as any).ctx) : {} + } : {}) + }; + } + + for (const endpoint of endpoints.filter(ep => !ep.meta.secure)) { + const porops = {} as any; + const errors = {} as any; + + if (endpoint.meta.errors) { + for (const e of Object.values(endpoint.meta.errors)) { + errors[e.code] = { + value: { + error: e + } + }; + } + } + + if (endpoint.meta.params) { + for (const [k, v] of Object.entries(endpoint.meta.params)) { + if (v.validator.data == null) v.validator.data = {}; + if (v.desc) v.validator.data.desc = v.desc[lang]; + if (v.deprecated) v.validator.data.deprecated = v.deprecated; + if (v.default) v.validator.data.default = v.default; + porops[k] = v.validator; + } + } + + const required = endpoint.meta.params ? Object.entries(endpoint.meta.params).filter(([k, v]) => !v.validator.isOptional).map(([k, v]) => k) : []; + + const resSchema = endpoint.meta.res ? convertSchemaToOpenApiSchema(endpoint.meta.res) : {}; + + let desc = (endpoint.meta.desc ? endpoint.meta.desc[lang] : 'No description provided.') + '\n\n'; + desc += `**Credential required**: *${endpoint.meta.requireCredential ? 'Yes' : 'No'}*`; + if (endpoint.meta.kind) { + const kind = endpoint.meta.kind; + desc += ` / **Permission**: *${kind}*`; + } + + const info = { + operationId: endpoint.name, + summary: endpoint.name, + description: desc, + externalDocs: { + description: 'Source code', + url: `https://github.com/syuilo/misskey/blob/develop/src/server/api/endpoints/${endpoint.name}.ts` + }, + ...(endpoint.meta.tags ? { + tags: [endpoint.meta.tags[0]] + } : {}), + ...(endpoint.meta.requireCredential ? { + security: [{ + ApiKeyAuth: [] + }] + } : {}), + requestBody: { + required: true, + content: { + 'application/json': { + schema: { + type: 'object', + ...(required.length > 0 ? { required } : {}), + properties: endpoint.meta.params ? genProps(porops) : {} + } + } + } + }, + responses: { + ...(endpoint.meta.res ? { + '200': { + description: 'OK (with results)', + content: { + 'application/json': { + schema: resSchema + } + } + } + } : { + '204': { + description: 'OK (without any results)', + } + }), + '400': { + description: 'Client error', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: { ...errors, ...basicErrors['400'] } + } + } + }, + '401': { + description: 'Authentication error', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: basicErrors['401'] + } + } + }, + '403': { + description: 'Forbiddon error', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: basicErrors['403'] + } + } + }, + '418': { + description: 'I\'m Ai', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: basicErrors['418'] + } + } + }, + ...(endpoint.meta.limit ? { + '429': { + description: 'To many requests', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: basicErrors['429'] + } + } + } + } : {}), + '500': { + description: 'Internal server error', + content: { + 'application/json': { + schema: { + $ref: '#/components/schemas/Error' + }, + examples: basicErrors['500'] + } + } + }, + } + }; + + spec.paths['/' + endpoint.name] = { + post: info + }; + } + + return spec; +} diff --git a/src/server/api/openapi/schemas.ts b/src/server/api/openapi/schemas.ts new file mode 100644 index 000000000..b96d1f457 --- /dev/null +++ b/src/server/api/openapi/schemas.ts @@ -0,0 +1,87 @@ +import { packedUserSchema } from '../../../models/repositories/user'; +import { Schema } from '../../../misc/schema'; +import { packedNoteSchema } from '../../../models/repositories/note'; +import { packedUserListSchema } from '../../../models/repositories/user-list'; +import { packedAppSchema } from '../../../models/repositories/app'; +import { packedMessagingMessageSchema } from '../../../models/repositories/messaging-message'; +import { packedNotificationSchema } from '../../../models/repositories/notification'; +import { packedDriveFileSchema } from '../../../models/repositories/drive-file'; +import { packedDriveFolderSchema } from '../../../models/repositories/drive-folder'; +import { packedFollowingSchema } from '../../../models/repositories/following'; +import { packedMutingSchema } from '../../../models/repositories/muting'; +import { packedBlockingSchema } from '../../../models/repositories/blocking'; +import { packedNoteReactionSchema } from '../../../models/repositories/note-reaction'; +import { packedHashtagSchema } from '../../../models/repositories/hashtag'; +import { packedPageSchema } from '../../../models/repositories/page'; +import { packedUserGroupSchema } from '../../../models/repositories/user-group'; +import { packedNoteFavoriteSchema } from '../../../models/repositories/note-favorite'; +import { packedChannelSchema } from '../../../models/repositories/channel'; + +export function convertSchemaToOpenApiSchema(schema: Schema) { + const res: any = schema; + + if (schema.type === 'object' && schema.properties) { + res.required = Object.entries(schema.properties).filter(([k, v]) => !v.optional).map(([k]) => k); + + for (const k of Object.keys(schema.properties)) { + res.properties[k] = convertSchemaToOpenApiSchema(schema.properties[k]); + } + } + + if (schema.type === 'array' && schema.items) { + res.items = convertSchemaToOpenApiSchema(schema.items); + } + + if (schema.ref) { + res.$ref = `#/components/schemas/${schema.ref}`; + } + + return res; +} + +export const schemas = { + Error: { + type: 'object', + properties: { + error: { + type: 'object', + description: 'An error object.', + properties: { + code: { + type: 'string', + description: 'An error code. Unique within the endpoint.', + }, + message: { + type: 'string', + description: 'An error message.', + }, + id: { + type: 'string', + format: 'uuid', + description: 'An error ID. This ID is static.', + } + }, + required: ['code', 'id', 'message'] + }, + }, + required: ['error'] + }, + + User: convertSchemaToOpenApiSchema(packedUserSchema), + UserList: convertSchemaToOpenApiSchema(packedUserListSchema), + UserGroup: convertSchemaToOpenApiSchema(packedUserGroupSchema), + App: convertSchemaToOpenApiSchema(packedAppSchema), + MessagingMessage: convertSchemaToOpenApiSchema(packedMessagingMessageSchema), + Note: convertSchemaToOpenApiSchema(packedNoteSchema), + NoteReaction: convertSchemaToOpenApiSchema(packedNoteReactionSchema), + NoteFavorite: convertSchemaToOpenApiSchema(packedNoteFavoriteSchema), + Notification: convertSchemaToOpenApiSchema(packedNotificationSchema), + DriveFile: convertSchemaToOpenApiSchema(packedDriveFileSchema), + DriveFolder: convertSchemaToOpenApiSchema(packedDriveFolderSchema), + Following: convertSchemaToOpenApiSchema(packedFollowingSchema), + Muting: convertSchemaToOpenApiSchema(packedMutingSchema), + Blocking: convertSchemaToOpenApiSchema(packedBlockingSchema), + Hashtag: convertSchemaToOpenApiSchema(packedHashtagSchema), + Page: convertSchemaToOpenApiSchema(packedPageSchema), + Channel: convertSchemaToOpenApiSchema(packedChannelSchema), +}; diff --git a/src/server/api/private/signin.ts b/src/server/api/private/signin.ts new file mode 100644 index 000000000..734758d63 --- /dev/null +++ b/src/server/api/private/signin.ts @@ -0,0 +1,221 @@ +import * as Koa from 'koa'; +import * as bcrypt from 'bcryptjs'; +import * as speakeasy from 'speakeasy'; +import signin from '../common/signin'; +import config from '../../../config'; +import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '../../../models'; +import { ILocalUser } from '../../../models/entities/user'; +import { genId } from '../../../misc/gen-id'; +import { ensure } from '../../../prelude/ensure'; +import { verifyLogin, hash } from '../2fa'; +import { randomBytes } from 'crypto'; + +export default async (ctx: Koa.Context) => { + ctx.set('Access-Control-Allow-Origin', config.url); + ctx.set('Access-Control-Allow-Credentials', 'true'); + + const body = ctx.request.body as any; + const username = body['username']; + const password = body['password']; + const token = body['token']; + + if (typeof username != 'string') { + ctx.status = 400; + return; + } + + if (typeof password != 'string') { + ctx.status = 400; + return; + } + + if (token != null && typeof token != 'string') { + ctx.status = 400; + return; + } + + // Fetch user + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host: null + }) as ILocalUser; + + if (user == null) { + ctx.throw(404, { + error: 'user not found' + }); + return; + } + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + // Compare password + const same = await bcrypt.compare(password, profile.password!); + + async function fail(status?: number, failure?: { error: string }) { + // Append signin history + await Signins.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + ip: ctx.ip, + headers: ctx.headers, + success: false + }); + + ctx.throw(status || 500, failure || { error: 'someting happened' }); + } + + if (!profile.twoFactorEnabled) { + if (same) { + signin(ctx, user); + return; + } else { + await fail(403, { + error: 'incorrect password' + }); + return; + } + } + + if (token) { + if (!same) { + await fail(403, { + error: 'incorrect password' + }); + return; + } + + const verified = (speakeasy as any).totp.verify({ + secret: profile.twoFactorSecret, + encoding: 'base32', + token: token, + window: 2 + }); + + if (verified) { + signin(ctx, user); + return; + } else { + await fail(403, { + error: 'invalid token' + }); + return; + } + } else if (body.credentialId) { + if (!same && !profile.usePasswordLessLogin) { + await fail(403, { + error: 'incorrect password' + }); + return; + } + + const clientDataJSON = Buffer.from(body.clientDataJSON, 'hex'); + const clientData = JSON.parse(clientDataJSON.toString('utf-8')); + const challenge = await AttestationChallenges.findOne({ + userId: user.id, + id: body.challengeId, + registrationChallenge: false, + challenge: hash(clientData.challenge).toString('hex') + }); + + if (!challenge) { + await fail(403, { + error: 'non-existent challenge' + }); + return; + } + + await AttestationChallenges.delete({ + userId: user.id, + id: body.challengeId + }); + + if (new Date().getTime() - challenge.createdAt.getTime() >= 5 * 60 * 1000) { + await fail(403, { + error: 'non-existent challenge' + }); + return; + } + + const securityKey = await UserSecurityKeys.findOne({ + id: Buffer.from( + body.credentialId + .replace(/-/g, '+') + .replace(/_/g, '/'), + 'base64' + ).toString('hex') + }); + + if (!securityKey) { + await fail(403, { + error: 'invalid credentialId' + }); + return; + } + + const isValid = verifyLogin({ + publicKey: Buffer.from(securityKey.publicKey, 'hex'), + authenticatorData: Buffer.from(body.authenticatorData, 'hex'), + clientDataJSON, + clientData, + signature: Buffer.from(body.signature, 'hex'), + challenge: challenge.challenge + }); + + if (isValid) { + signin(ctx, user); + return; + } else { + await fail(403, { + error: 'invalid challenge data' + }); + return; + } + } else { + if (!same && !profile.usePasswordLessLogin) { + await fail(403, { + error: 'incorrect password' + }); + return; + } + + const keys = await UserSecurityKeys.find({ + userId: user.id + }); + + if (keys.length === 0) { + await fail(403, { + error: 'no keys found' + }); + return; + } + + // 32 byte challenge + const challenge = randomBytes(32).toString('base64') + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + + const challengeId = genId(); + + await AttestationChallenges.save({ + userId: user.id, + id: challengeId, + challenge: hash(Buffer.from(challenge, 'utf-8')).toString('hex'), + createdAt: new Date(), + registrationChallenge: false + }); + + ctx.body = { + challenge, + challengeId, + securityKeys: keys.map(key => ({ + id: key.id + })) + }; + ctx.status = 200; + return; + } + // never get here +}; diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts new file mode 100644 index 000000000..6dc252ac4 --- /dev/null +++ b/src/server/api/private/signup.ts @@ -0,0 +1,77 @@ +import * as Koa from 'koa'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { verify } from 'hcaptcha'; +import * as recaptcha from 'recaptcha-promise'; +import { Users, RegistrationTickets } from '../../../models'; +import { signup } from '../common/signup'; + +export default async (ctx: Koa.Context) => { + const body = ctx.request.body; + + const instance = await fetchMeta(true); + + // Verify *Captcha + // ただしテスト時はこの機構は障害となるため無効にする + if (process.env.NODE_ENV !== 'test') { + if (instance.enableHcaptcha && instance.hcaptchaSecretKey) { + const success = await verify(instance.hcaptchaSecretKey, body['hcaptcha-response']).then( + ({ success }) => success, + () => false, + ); + + if (!success) { + ctx.throw(400, 'hcaptcha-failed'); + } + } + + if (instance.enableRecaptcha && instance.recaptchaSecretKey) { + recaptcha.init({ + secret_key: instance.recaptchaSecretKey + }); + + const success = await recaptcha(body['g-recaptcha-response']); + + if (!success) { + ctx.throw(400, 'recaptcha-failed'); + } + } + } + + const username = body['username']; + const password = body['password']; + const host: string | null = process.env.NODE_ENV === 'test' ? (body['host'] || null) : null; + const invitationCode = body['invitationCode']; + + if (instance && instance.disableRegistration) { + if (invitationCode == null || typeof invitationCode != 'string') { + ctx.status = 400; + return; + } + + const ticket = await RegistrationTickets.findOne({ + code: invitationCode + }); + + if (ticket == null) { + ctx.status = 400; + return; + } + + RegistrationTickets.delete(ticket.id); + } + + try { + const { account, secret } = await signup(username, password, host); + + const res = await Users.pack(account, account, { + detail: true, + includeSecrets: true + }); + + (res as any).token = secret; + + ctx.body = res; + } catch (e) { + ctx.throw(400, e); + } +}; diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts new file mode 100644 index 000000000..a5ad18d99 --- /dev/null +++ b/src/server/api/service/discord.ts @@ -0,0 +1,287 @@ +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import { getJson } from '../../../misc/fetch'; +import { OAuth2 } from 'oauth'; +import config from '../../../config'; +import { publishMainStream } from '../../../services/stream'; +import redis from '../../../db/redis'; +import { v4 as uuid } from 'uuid'; +import signin from '../common/signin'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { Users, UserProfiles } from '../../../models'; +import { ILocalUser } from '../../../models/entities/user'; +import { ensure } from '../../../prelude/ensure'; + +function getUserToken(ctx: Koa.Context) { + return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; +} + +function compareOrigin(ctx: Koa.Context) { + function normalizeUrl(url: string) { + return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : ''; + } + + const referer = ctx.headers['referer']; + + return (normalizeUrl(referer) == normalizeUrl(config.url)); +} + +// Init router +const router = new Router(); + +router.get('/disconnect/discord', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (!userToken) { + ctx.throw(400, 'signin required'); + return; + } + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + delete profile.integrations.discord; + + await UserProfiles.update(user.id, { + integrations: profile.integrations, + }); + + ctx.body = `Discordの連携を解除しました :v:`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); +}); + +async function getOAuth2() { + const meta = await fetchMeta(true); + + if (meta.enableDiscordIntegration) { + return new OAuth2( + meta.discordClientId!, + meta.discordClientSecret!, + 'https://discordapp.com/', + 'api/oauth2/authorize', + 'api/oauth2/token'); + } else { + return null; + } +} + +router.get('/connect/discord', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (!userToken) { + ctx.throw(400, 'signin required'); + return; + } + + const params = { + redirect_uri: `${config.url}/api/dc/cb`, + scope: ['identify'], + state: uuid(), + response_type: 'code' + }; + + redis.set(userToken, JSON.stringify(params)); + + const oauth2 = await getOAuth2(); + ctx.redirect(oauth2!.getAuthorizeUrl(params)); +}); + +router.get('/signin/discord', async ctx => { + const sessid = uuid(); + + const params = { + redirect_uri: `${config.url}/api/dc/cb`, + scope: ['identify'], + state: uuid(), + response_type: 'code' + }; + + ctx.cookies.set('signin_with_discord_sid', sessid, { + path: '/', + secure: config.url.startsWith('https'), + httpOnly: true + }); + + redis.set(sessid, JSON.stringify(params)); + + const oauth2 = await getOAuth2(); + ctx.redirect(oauth2!.getAuthorizeUrl(params)); +}); + +router.get('/dc/cb', async ctx => { + const userToken = getUserToken(ctx); + + const oauth2 = await getOAuth2(); + + if (!userToken) { + const sessid = ctx.cookies.get('signin_with_discord_sid'); + + if (!sessid) { + ctx.throw(400, 'invalid session'); + return; + } + + const code = ctx.query.code; + + if (!code) { + ctx.throw(400, 'invalid session'); + return; + } + + const { redirect_uri, state } = await new Promise((res, rej) => { + redis.get(sessid, async (_, state) => { + res(JSON.parse(state)); + }); + }); + + if (ctx.query.state !== state) { + ctx.throw(400, 'invalid session'); + return; + } + + const { accessToken, refreshToken, expiresDate } = await new Promise((res, rej) => + oauth2!.getOAuthAccessToken(code, { + grant_type: 'authorization_code', + redirect_uri + }, (err, accessToken, refreshToken, result) => { + if (err) { + rej(err); + } else if (result.error) { + rej(result.error); + } else { + res({ + accessToken, + refreshToken, + expiresDate: Date.now() + Number(result.expires_in) * 1000 + }); + } + })); + + const { id, username, discriminator } = await getJson('https://discordapp.com/api/users/@me', '*/*', 10 * 1000, { + 'Authorization': `Bearer ${accessToken}`, + }); + + if (!id || !username || !discriminator) { + ctx.throw(400, 'invalid session'); + return; + } + + const profile = await UserProfiles.createQueryBuilder() + .where(`"integrations"->'discord'->>'id' = :id`, { id: id }) + .andWhere('"userHost" IS NULL') + .getOne(); + + if (profile == null) { + ctx.throw(404, `@${username}#${discriminator}と連携しているMisskeyアカウントはありませんでした...`); + return; + } + + await UserProfiles.update(profile.userId, { + integrations: { + ...profile.integrations, + discord: { + id: id, + accessToken: accessToken, + refreshToken: refreshToken, + expiresDate: expiresDate, + username: username, + discriminator: discriminator + } + }, + }); + + signin(ctx, await Users.findOne(profile.userId) as ILocalUser, true); + } else { + const code = ctx.query.code; + + if (!code) { + ctx.throw(400, 'invalid session'); + return; + } + + const { redirect_uri, state } = await new Promise((res, rej) => { + redis.get(userToken, async (_, state) => { + res(JSON.parse(state)); + }); + }); + + if (ctx.query.state !== state) { + ctx.throw(400, 'invalid session'); + return; + } + + const { accessToken, refreshToken, expiresDate } = await new Promise((res, rej) => + oauth2!.getOAuthAccessToken(code, { + grant_type: 'authorization_code', + redirect_uri + }, (err, accessToken, refreshToken, result) => { + if (err) { + rej(err); + } else if (result.error) { + rej(result.error); + } else { + res({ + accessToken, + refreshToken, + expiresDate: Date.now() + Number(result.expires_in) * 1000 + }); + } + })); + + const { id, username, discriminator } = await getJson('https://discordapp.com/api/users/@me', '*/*', 10 * 1000, { + 'Authorization': `Bearer ${accessToken}`, + }); + if (!id || !username || !discriminator) { + ctx.throw(400, 'invalid session'); + return; + } + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + await UserProfiles.update(user.id, { + integrations: { + ...profile.integrations, + discord: { + accessToken: accessToken, + refreshToken: refreshToken, + expiresDate: expiresDate, + id: id, + username: username, + discriminator: discriminator + } + } + }); + + ctx.body = `Discord: @${username}#${discriminator} を、Misskey: @${user.username} に接続しました!`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); + } +}); + +export default router; diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts new file mode 100644 index 000000000..663c3cc75 --- /dev/null +++ b/src/server/api/service/github.ts @@ -0,0 +1,258 @@ +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import { getJson } from '../../../misc/fetch'; +import { OAuth2 } from 'oauth'; +import config from '../../../config'; +import { publishMainStream } from '../../../services/stream'; +import redis from '../../../db/redis'; +import { v4 as uuid } from 'uuid'; +import signin from '../common/signin'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { Users, UserProfiles } from '../../../models'; +import { ILocalUser } from '../../../models/entities/user'; +import { ensure } from '../../../prelude/ensure'; + +function getUserToken(ctx: Koa.Context) { + return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; +} + +function compareOrigin(ctx: Koa.Context) { + function normalizeUrl(url: string) { + return url ? url.endsWith('/') ? url.substr(0, url.length - 1) : url : ''; + } + + const referer = ctx.headers['referer']; + + return (normalizeUrl(referer) == normalizeUrl(config.url)); +} + +// Init router +const router = new Router(); + +router.get('/disconnect/github', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (!userToken) { + ctx.throw(400, 'signin required'); + return; + } + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + delete profile.integrations.github; + + await UserProfiles.update(user.id, { + integrations: profile.integrations, + }); + + ctx.body = `GitHubの連携を解除しました :v:`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); +}); + +async function getOath2() { + const meta = await fetchMeta(true); + + if (meta.enableGithubIntegration && meta.githubClientId && meta.githubClientSecret) { + return new OAuth2( + meta.githubClientId, + meta.githubClientSecret, + 'https://github.com/', + 'login/oauth/authorize', + 'login/oauth/access_token'); + } else { + return null; + } +} + +router.get('/connect/github', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (!userToken) { + ctx.throw(400, 'signin required'); + return; + } + + const params = { + redirect_uri: `${config.url}/api/gh/cb`, + scope: ['read:user'], + state: uuid() + }; + + redis.set(userToken, JSON.stringify(params)); + + const oauth2 = await getOath2(); + ctx.redirect(oauth2!.getAuthorizeUrl(params)); +}); + +router.get('/signin/github', async ctx => { + const sessid = uuid(); + + const params = { + redirect_uri: `${config.url}/api/gh/cb`, + scope: ['read:user'], + state: uuid() + }; + + ctx.cookies.set('signin_with_github_sid', sessid, { + path: '/', + secure: config.url.startsWith('https'), + httpOnly: true + }); + + redis.set(sessid, JSON.stringify(params)); + + const oauth2 = await getOath2(); + ctx.redirect(oauth2!.getAuthorizeUrl(params)); +}); + +router.get('/gh/cb', async ctx => { + const userToken = getUserToken(ctx); + + const oauth2 = await getOath2(); + + if (!userToken) { + const sessid = ctx.cookies.get('signin_with_github_sid'); + + if (!sessid) { + ctx.throw(400, 'invalid session'); + return; + } + + const code = ctx.query.code; + + if (!code) { + ctx.throw(400, 'invalid session'); + return; + } + + const { redirect_uri, state } = await new Promise((res, rej) => { + redis.get(sessid, async (_, state) => { + res(JSON.parse(state)); + }); + }); + + if (ctx.query.state !== state) { + ctx.throw(400, 'invalid session'); + return; + } + + const { accessToken } = await new Promise((res, rej) => + oauth2!.getOAuthAccessToken(code, { + redirect_uri + }, (err, accessToken, refresh, result) => { + if (err) { + rej(err); + } else if (result.error) { + rej(result.error); + } else { + res({ accessToken }); + } + })); + + const { login, id } = await getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, { + 'Authorization': `bearer ${accessToken}` + }); + if (!login || !id) { + ctx.throw(400, 'invalid session'); + return; + } + + const link = await UserProfiles.createQueryBuilder() + .where(`"integrations"->'github'->>'id' = :id`, { id: id }) + .andWhere('"userHost" IS NULL') + .getOne(); + + if (link == null) { + ctx.throw(404, `@${login}と連携しているMisskeyアカウントはありませんでした...`); + return; + } + + signin(ctx, await Users.findOne(link.userId) as ILocalUser, true); + } else { + const code = ctx.query.code; + + if (!code) { + ctx.throw(400, 'invalid session'); + return; + } + + const { redirect_uri, state } = await new Promise((res, rej) => { + redis.get(userToken, async (_, state) => { + res(JSON.parse(state)); + }); + }); + + if (ctx.query.state !== state) { + ctx.throw(400, 'invalid session'); + return; + } + + const { accessToken } = await new Promise((res, rej) => + oauth2!.getOAuthAccessToken( + code, + { redirect_uri }, + (err, accessToken, refresh, result) => { + if (err) + rej(err); + else if (result.error) + rej(result.error); + else + res({ accessToken }); + })); + + const { login, id } = await getJson('https://api.github.com/user', 'application/vnd.github.v3+json', 10 * 1000, { + 'Authorization': `bearer ${accessToken}` + }); + + if (!login || !id) { + ctx.throw(400, 'invalid session'); + return; + } + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + await UserProfiles.update(user.id, { + integrations: { + ...profile.integrations, + github: { + accessToken: accessToken, + id: id, + login: login, + } + } + }); + + ctx.body = `GitHub: @${login} を、Misskey: @${user.username} に接続しました!`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); + } +}); + +export default router; diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts new file mode 100644 index 000000000..000eb57c1 --- /dev/null +++ b/src/server/api/service/twitter.ts @@ -0,0 +1,195 @@ +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import { v4 as uuid } from 'uuid'; +import autwh from 'autwh'; +import redis from '../../../db/redis'; +import { publishMainStream } from '../../../services/stream'; +import config from '../../../config'; +import signin from '../common/signin'; +import { fetchMeta } from '../../../misc/fetch-meta'; +import { Users, UserProfiles } from '../../../models'; +import { ILocalUser } from '../../../models/entities/user'; +import { ensure } from '../../../prelude/ensure'; + +function getUserToken(ctx: Koa.Context) { + return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; +} + +function compareOrigin(ctx: Koa.Context) { + function normalizeUrl(url: string) { + return url.endsWith('/') ? url.substr(0, url.length - 1) : url; + } + + const referer = ctx.headers['referer']; + + return (normalizeUrl(referer) == normalizeUrl(config.url)); +} + +// Init router +const router = new Router(); + +router.get('/disconnect/twitter', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (userToken == null) { + ctx.throw(400, 'signin required'); + return; + } + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + delete profile.integrations.twitter; + + await UserProfiles.update(user.id, { + integrations: profile.integrations, + }); + + ctx.body = `Twitterの連携を解除しました :v:`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); +}); + +async function getTwAuth() { + const meta = await fetchMeta(true); + + if (meta.enableTwitterIntegration && meta.twitterConsumerKey && meta.twitterConsumerSecret) { + return autwh({ + consumerKey: meta.twitterConsumerKey, + consumerSecret: meta.twitterConsumerSecret, + callbackUrl: `${config.url}/api/tw/cb` + }); + } else { + return null; + } +} + +router.get('/connect/twitter', async ctx => { + if (!compareOrigin(ctx)) { + ctx.throw(400, 'invalid origin'); + return; + } + + const userToken = getUserToken(ctx); + if (userToken == null) { + ctx.throw(400, 'signin required'); + return; + } + + const twAuth = await getTwAuth(); + const twCtx = await twAuth!.begin(); + redis.set(userToken, JSON.stringify(twCtx)); + ctx.redirect(twCtx.url); +}); + +router.get('/signin/twitter', async ctx => { + const twAuth = await getTwAuth(); + const twCtx = await twAuth!.begin(); + + const sessid = uuid(); + + redis.set(sessid, JSON.stringify(twCtx)); + + ctx.cookies.set('signin_with_twitter_sid', sessid, { + path: '/', + secure: config.url.startsWith('https'), + httpOnly: true + }); + + ctx.redirect(twCtx.url); +}); + +router.get('/tw/cb', async ctx => { + const userToken = getUserToken(ctx); + + const twAuth = await getTwAuth(); + + if (userToken == null) { + const sessid = ctx.cookies.get('signin_with_twitter_sid'); + + if (sessid == null) { + ctx.throw(400, 'invalid session'); + return; + } + + const get = new Promise((res, rej) => { + redis.get(sessid, async (_, twCtx) => { + res(twCtx); + }); + }); + + const twCtx = await get; + + const result = await twAuth!.done(JSON.parse(twCtx), ctx.query.oauth_verifier); + + const link = await UserProfiles.createQueryBuilder() + .where(`"integrations"->'twitter'->>'userId' = :id`, { id: result.userId }) + .andWhere('"userHost" IS NULL') + .getOne(); + + if (link == null) { + ctx.throw(404, `@${result.screenName}と連携しているMisskeyアカウントはありませんでした...`); + return; + } + + signin(ctx, await Users.findOne(link.userId) as ILocalUser, true); + } else { + const verifier = ctx.query.oauth_verifier; + + if (verifier == null) { + ctx.throw(400, 'invalid session'); + return; + } + + const get = new Promise((res, rej) => { + redis.get(userToken, async (_, twCtx) => { + res(twCtx); + }); + }); + + const twCtx = await get; + + const result = await twAuth!.done(JSON.parse(twCtx), verifier); + + const user = await Users.findOne({ + host: null, + token: userToken + }).then(ensure); + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + await UserProfiles.update(user.id, { + integrations: { + ...profile.integrations, + twitter: { + accessToken: result.accessToken, + accessTokenSecret: result.accessTokenSecret, + userId: result.userId, + screenName: result.screenName, + } + }, + }); + + ctx.body = `Twitter: @${result.screenName} を、Misskey: @${user.username} に接続しました!`; + + // Publish i updated event + publishMainStream(user.id, 'meUpdated', await Users.pack(user, user, { + detail: true, + includeSecrets: true + })); + } +}); + +export default router; diff --git a/src/server/api/stream/channel.ts b/src/server/api/stream/channel.ts new file mode 100644 index 000000000..9b7c31e7b --- /dev/null +++ b/src/server/api/stream/channel.ts @@ -0,0 +1,58 @@ +import autobind from 'autobind-decorator'; +import Connection from '.'; + +/** + * Stream channel + */ +export default abstract class Channel { + protected connection: Connection; + public id: string; + public abstract readonly chName: string; + public static readonly shouldShare: boolean; + public static readonly requireCredential: boolean; + + protected get user() { + return this.connection.user; + } + + protected get userProfile() { + return this.connection.userProfile; + } + + protected get following() { + return this.connection.following; + } + + protected get muting() { + return this.connection.muting; + } + + protected get followingChannels() { + return this.connection.followingChannels; + } + + protected get subscriber() { + return this.connection.subscriber; + } + + constructor(id: string, connection: Connection) { + this.id = id; + this.connection = connection; + } + + @autobind + public send(typeOrPayload: any, payload?: any) { + const type = payload === undefined ? typeOrPayload.type : typeOrPayload; + const body = payload === undefined ? typeOrPayload.body : payload; + + this.connection.sendMessageToWs('channel', { + id: this.id, + type: type, + body: body + }); + } + + public abstract init(params: any): void; + public dispose?(): void; + public onMessage?(type: string, body: any): void; +} diff --git a/packages/backend/src/server/api/stream/channels/admin.ts b/src/server/api/stream/channels/admin.ts similarity index 77% rename from packages/backend/src/server/api/stream/channels/admin.ts rename to src/server/api/stream/channels/admin.ts index 945182ea1..1ff932d1d 100644 --- a/packages/backend/src/server/api/stream/channels/admin.ts +++ b/src/server/api/stream/channels/admin.ts @@ -1,10 +1,12 @@ -import Channel from '../channel.js'; +import autobind from 'autobind-decorator'; +import Channel from '../channel'; export default class extends Channel { public readonly chName = 'admin'; public static shouldShare = true; public static requireCredential = true; + @autobind public async init(params: any) { // Subscribe admin stream this.subscriber.on(`adminStream:${this.user!.id}`, data => { diff --git a/src/server/api/stream/channels/antenna.ts b/src/server/api/stream/channels/antenna.ts new file mode 100644 index 000000000..b5a792f81 --- /dev/null +++ b/src/server/api/stream/channels/antenna.ts @@ -0,0 +1,41 @@ +import autobind from 'autobind-decorator'; +import Channel from '../channel'; +import { Notes } from '../../../../models'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; + +export default class extends Channel { + public readonly chName = 'antenna'; + public static shouldShare = false; + public static requireCredential = false; + private antennaId: string; + + @autobind + public async init(params: any) { + this.antennaId = params.antennaId as string; + + // Subscribe stream + this.subscriber.on(`antennaStream:${this.antennaId}`, this.onEvent); + } + + @autobind + private async onEvent(data: any) { + const { type, body } = data; + + if (type === 'note') { + const note = await Notes.pack(body.id, this.user, { detail: true }); + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + this.send('note', note); + } else { + this.send(type, body); + } + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off(`antennaStream:${this.antennaId}`, this.onEvent); + } +} diff --git a/src/server/api/stream/channels/channel.ts b/src/server/api/stream/channels/channel.ts new file mode 100644 index 000000000..c24b3db93 --- /dev/null +++ b/src/server/api/stream/channels/channel.ts @@ -0,0 +1,49 @@ +import autobind from 'autobind-decorator'; +import Channel from '../channel'; +import { Notes } from '../../../../models'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { PackedNote } from '../../../../models/repositories/note'; + +export default class extends Channel { + public readonly chName = 'channel'; + public static shouldShare = false; + public static requireCredential = false; + private channelId: string; + + @autobind + public async init(params: any) { + this.channelId = params.channelId as string; + + // Subscribe stream + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + if (note.channelId !== this.channelId) return; + + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user, { + detail: true + }); + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/drive.ts b/src/server/api/stream/channels/drive.ts new file mode 100644 index 000000000..4112dd9b0 --- /dev/null +++ b/src/server/api/stream/channels/drive.ts @@ -0,0 +1,16 @@ +import autobind from 'autobind-decorator'; +import Channel from '../channel'; + +export default class extends Channel { + public readonly chName = 'drive'; + public static shouldShare = true; + public static requireCredential = true; + + @autobind + public async init(params: any) { + // Subscribe drive stream + this.subscriber.on(`driveStream:${this.user!.id}`, data => { + this.send(data); + }); + } +} diff --git a/src/server/api/stream/channels/games/reversi-game.ts b/src/server/api/stream/channels/games/reversi-game.ts new file mode 100644 index 000000000..ea62ab1e8 --- /dev/null +++ b/src/server/api/stream/channels/games/reversi-game.ts @@ -0,0 +1,372 @@ +import autobind from 'autobind-decorator'; +import * as CRC32 from 'crc-32'; +import { publishReversiGameStream } from '../../../../../services/stream'; +import Reversi from '../../../../../games/reversi/core'; +import * as maps from '../../../../../games/reversi/maps'; +import Channel from '../../channel'; +import { ReversiGame } from '../../../../../models/entities/games/reversi/game'; +import { ReversiGames, Users } from '../../../../../models'; +import { User } from '../../../../../models/entities/user'; + +export default class extends Channel { + public readonly chName = 'gamesReversiGame'; + public static shouldShare = false; + public static requireCredential = false; + + private gameId: ReversiGame['id'] | null = null; + private watchers: Record = {}; + private emitWatchersIntervalId: any; + + @autobind + public async init(params: any) { + this.gameId = params.gameId; + + // Subscribe game stream + this.subscriber.on(`reversiGameStream:${this.gameId}`, this.onEvent); + this.emitWatchersIntervalId = setInterval(this.emitWatchers, 5000); + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + // 観戦者イベント + this.watch(game); + } + + @autobind + private onEvent(data: any) { + if (data.type === 'watching') { + const id = data.body; + this.watchers[id] = new Date(); + } else { + this.send(data); + } + } + + @autobind + private async emitWatchers() { + const now = new Date(); + + // Remove not watching users + for (const [userId, date] of Object.entries(this.watchers)) { + if (now.getTime() - date.getTime() > 5000) delete this.watchers[userId]; + } + + const users = await Users.packMany(Object.keys(this.watchers), null, { detail: false }); + + this.send({ + type: 'watchers', + body: users, + }); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off(`reversiGameStream:${this.gameId}`, this.onEvent); + clearInterval(this.emitWatchersIntervalId); + } + + @autobind + public onMessage(type: string, body: any) { + switch (type) { + case 'accept': this.accept(true); break; + case 'cancelAccept': this.accept(false); break; + case 'updateSettings': this.updateSettings(body.key, body.value); break; + case 'initForm': this.initForm(body); break; + case 'updateForm': this.updateForm(body.id, body.value); break; + case 'message': this.message(body); break; + case 'set': this.set(body.pos); break; + case 'check': this.check(body.crc32); break; + } + } + + @autobind + private async updateSettings(key: string, value: any) { + if (this.user == null) return; + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (game.isStarted) return; + if ((game.user1Id !== this.user.id) && (game.user2Id !== this.user.id)) return; + if ((game.user1Id === this.user.id) && game.user1Accepted) return; + if ((game.user2Id === this.user.id) && game.user2Accepted) return; + + if (!['map', 'bw', 'isLlotheo', 'canPutEverywhere', 'loopedBoard'].includes(key)) return; + + await ReversiGames.update(this.gameId!, { + [key]: value + }); + + publishReversiGameStream(this.gameId!, 'updateSettings', { + key: key, + value: value + }); + } + + @autobind + private async initForm(form: any) { + if (this.user == null) return; + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (game.isStarted) return; + if ((game.user1Id !== this.user.id) && (game.user2Id !== this.user.id)) return; + + const set = game.user1Id === this.user.id ? { + form1: form + } : { + form2: form + }; + + await ReversiGames.update(this.gameId!, set); + + publishReversiGameStream(this.gameId!, 'initForm', { + userId: this.user.id, + form + }); + } + + @autobind + private async updateForm(id: string, value: any) { + if (this.user == null) return; + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (game.isStarted) return; + if ((game.user1Id !== this.user.id) && (game.user2Id !== this.user.id)) return; + + const form = game.user1Id === this.user.id ? game.form2 : game.form1; + + const item = form.find((i: any) => i.id == id); + + if (item == null) return; + + item.value = value; + + const set = game.user1Id === this.user.id ? { + form2: form + } : { + form1: form + }; + + await ReversiGames.update(this.gameId!, set); + + publishReversiGameStream(this.gameId!, 'updateForm', { + userId: this.user.id, + id, + value + }); + } + + @autobind + private async message(message: any) { + if (this.user == null) return; + + message.id = Math.random(); + publishReversiGameStream(this.gameId!, 'message', { + userId: this.user.id, + message + }); + } + + @autobind + private async accept(accept: boolean) { + if (this.user == null) return; + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (game.isStarted) return; + + let bothAccepted = false; + + if (game.user1Id === this.user.id) { + await ReversiGames.update(this.gameId!, { + user1Accepted: accept + }); + + publishReversiGameStream(this.gameId!, 'changeAccepts', { + user1: accept, + user2: game.user2Accepted + }); + + if (accept && game.user2Accepted) bothAccepted = true; + } else if (game.user2Id === this.user.id) { + await ReversiGames.update(this.gameId!, { + user2Accepted: accept + }); + + publishReversiGameStream(this.gameId!, 'changeAccepts', { + user1: game.user1Accepted, + user2: accept + }); + + if (accept && game.user1Accepted) bothAccepted = true; + } else { + return; + } + + if (bothAccepted) { + // 3秒後、まだacceptされていたらゲーム開始 + setTimeout(async () => { + const freshGame = await ReversiGames.findOne(this.gameId!); + if (freshGame == null || freshGame.isStarted || freshGame.isEnded) return; + if (!freshGame.user1Accepted || !freshGame.user2Accepted) return; + + let bw: number; + if (freshGame.bw == 'random') { + bw = Math.random() > 0.5 ? 1 : 2; + } else { + bw = parseInt(freshGame.bw, 10); + } + + function getRandomMap() { + const mapCount = Object.entries(maps).length; + const rnd = Math.floor(Math.random() * mapCount); + return Object.values(maps)[rnd].data; + } + + const map = freshGame.map != null ? freshGame.map : getRandomMap(); + + await ReversiGames.update(this.gameId!, { + startedAt: new Date(), + isStarted: true, + black: bw, + map: map + }); + + //#region 盤面に最初から石がないなどして始まった瞬間に勝敗が決定する場合があるのでその処理 + const o = new Reversi(map, { + isLlotheo: freshGame.isLlotheo, + canPutEverywhere: freshGame.canPutEverywhere, + loopedBoard: freshGame.loopedBoard + }); + + if (o.isEnded) { + let winner; + if (o.winner === true) { + winner = freshGame.black == 1 ? freshGame.user1Id : freshGame.user2Id; + } else if (o.winner === false) { + winner = freshGame.black == 1 ? freshGame.user2Id : freshGame.user1Id; + } else { + winner = null; + } + + await ReversiGames.update(this.gameId!, { + isEnded: true, + winnerId: winner + }); + + publishReversiGameStream(this.gameId!, 'ended', { + winnerId: winner, + game: await ReversiGames.pack(this.gameId!, this.user) + }); + } + //#endregion + + publishReversiGameStream(this.gameId!, 'started', + await ReversiGames.pack(this.gameId!, this.user)); + }, 3000); + } + } + + // 石を打つ + @autobind + private async set(pos: number) { + if (this.user == null) return; + + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (!game.isStarted) return; + if (game.isEnded) return; + if ((game.user1Id !== this.user.id) && (game.user2Id !== this.user.id)) return; + + const myColor = + ((game.user1Id === this.user.id) && game.black == 1) || ((game.user2Id === this.user.id) && game.black == 2) + ? true + : false; + + const o = new Reversi(game.map, { + isLlotheo: game.isLlotheo, + canPutEverywhere: game.canPutEverywhere, + loopedBoard: game.loopedBoard + }); + + // 盤面の状態を再生 + for (const log of game.logs) { + o.put(log.color, log.pos); + } + + if (o.turn !== myColor) return; + + if (!o.canPut(myColor, pos)) return; + o.put(myColor, pos); + + let winner; + if (o.isEnded) { + if (o.winner === true) { + winner = game.black == 1 ? game.user1Id : game.user2Id; + } else if (o.winner === false) { + winner = game.black == 1 ? game.user2Id : game.user1Id; + } else { + winner = null; + } + } + + const log = { + at: new Date(), + color: myColor, + pos + }; + + const crc32 = CRC32.str(game.logs.map(x => x.pos.toString()).join('') + pos.toString()).toString(); + + game.logs.push(log); + + await ReversiGames.update(this.gameId!, { + crc32, + isEnded: o.isEnded, + winnerId: winner, + logs: game.logs + }); + + publishReversiGameStream(this.gameId!, 'set', Object.assign(log, { + next: o.turn + })); + + if (o.isEnded) { + publishReversiGameStream(this.gameId!, 'ended', { + winnerId: winner, + game: await ReversiGames.pack(this.gameId!, this.user) + }); + } + } + + @autobind + private async check(crc32: string | number) { + const game = await ReversiGames.findOne(this.gameId!); + if (game == null) throw new Error('game not found'); + + if (!game.isStarted) return; + + if (crc32.toString() !== game.crc32) { + this.send('rescue', await ReversiGames.pack(game, this.user)); + } + + // ついでに観戦者イベントを発行 + this.watch(game); + } + + @autobind + private watch(game: ReversiGame) { + if (this.user != null) { + if ((game.user1Id !== this.user.id) && (game.user2Id !== this.user.id)) { + publishReversiGameStream(this.gameId!, 'watching', this.user.id); + } + } + } +} diff --git a/src/server/api/stream/channels/games/reversi.ts b/src/server/api/stream/channels/games/reversi.ts new file mode 100644 index 000000000..3db338386 --- /dev/null +++ b/src/server/api/stream/channels/games/reversi.ts @@ -0,0 +1,33 @@ +import autobind from 'autobind-decorator'; +import { publishMainStream } from '../../../../../services/stream'; +import Channel from '../../channel'; +import { ReversiMatchings } from '../../../../../models'; + +export default class extends Channel { + public readonly chName = 'gamesReversi'; + public static shouldShare = true; + public static requireCredential = true; + + @autobind + public async init(params: any) { + // Subscribe reversi stream + this.subscriber.on(`reversiStream:${this.user!.id}`, data => { + this.send(data); + }); + } + + @autobind + public async onMessage(type: string, body: any) { + switch (type) { + case 'ping': + if (body.id == null) return; + const matching = await ReversiMatchings.findOne({ + parentId: this.user!.id, + childId: body.id + }); + if (matching == null) return; + publishMainStream(matching.childId, 'reversiInvited', await ReversiMatchings.pack(matching, matching.childId)); + break; + } + } +} diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts new file mode 100644 index 000000000..8c97e6722 --- /dev/null +++ b/src/server/api/stream/channels/global-timeline.ts @@ -0,0 +1,67 @@ +import autobind from 'autobind-decorator'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import Channel from '../channel'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { Notes } from '../../../../models'; +import { PackedNote } from '../../../../models/repositories/note'; +import { checkWordMute } from '../../../../misc/check-word-mute'; + +export default class extends Channel { + public readonly chName = 'globalTimeline'; + public static shouldShare = true; + public static requireCredential = false; + + @autobind + public async init(params: any) { + const meta = await fetchMeta(); + if (meta.disableGlobalTimeline) { + if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return; + } + + // Subscribe events + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + if (note.visibility !== 'public') return; + if (note.channelId != null) return; + + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user, { + detail: true + }); + } + + // 関係ない返信は除外 + if (note.reply) { + // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 + if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + // 流れてきたNoteがミュートすべきNoteだったら無視する + // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) + // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 + // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 + // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる + if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/hashtag.ts b/src/server/api/stream/channels/hashtag.ts new file mode 100644 index 000000000..32d8111f7 --- /dev/null +++ b/src/server/api/stream/channels/hashtag.ts @@ -0,0 +1,47 @@ +import autobind from 'autobind-decorator'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import Channel from '../channel'; +import { Notes } from '../../../../models'; +import { PackedNote } from '../../../../models/repositories/note'; + +export default class extends Channel { + public readonly chName = 'hashtag'; + public static shouldShare = false; + public static requireCredential = false; + private q: string[][]; + + @autobind + public async init(params: any) { + this.q = params.q; + + if (this.q == null) return; + + // Subscribe stream + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + const noteTags = note.tags ? note.tags.map((t: string) => t.toLowerCase()) : []; + const matched = this.q.some(tags => tags.every(tag => noteTags.includes(tag.toLowerCase()))); + if (!matched) return; + + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user, { + detail: true + }); + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts new file mode 100644 index 000000000..15fe7fa6f --- /dev/null +++ b/src/server/api/stream/channels/home-timeline.ts @@ -0,0 +1,75 @@ +import autobind from 'autobind-decorator'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import Channel from '../channel'; +import { Notes } from '../../../../models'; +import { PackedNote } from '../../../../models/repositories/note'; +import { checkWordMute } from '../../../../misc/check-word-mute'; + +export default class extends Channel { + public readonly chName = 'homeTimeline'; + public static shouldShare = true; + public static requireCredential = true; + + @autobind + public async init(params: any) { + // Subscribe events + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + if (note.channelId) { + if (!this.followingChannels.includes(note.channelId)) return; + } else { + // その投稿のユーザーをフォローしていなかったら弾く + if ((this.user!.id !== note.userId) && !this.following.includes(note.userId)) return; + } + + if (['followers', 'specified'].includes(note.visibility)) { + note = await Notes.pack(note.id, this.user!, { + detail: true + }); + + if (note.isHidden) { + return; + } + } else { + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user!, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user!, { + detail: true + }); + } + } + + // 関係ない返信は除外 + if (note.reply) { + // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 + if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + // 流れてきたNoteがミュートすべきNoteだったら無視する + // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) + // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 + // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 + // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる + if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts new file mode 100644 index 000000000..4dc5f01a3 --- /dev/null +++ b/src/server/api/stream/channels/hybrid-timeline.ts @@ -0,0 +1,84 @@ +import autobind from 'autobind-decorator'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import Channel from '../channel'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { Notes } from '../../../../models'; +import { PackedNote } from '../../../../models/repositories/note'; +import { PackedUser } from '../../../../models/repositories/user'; +import { checkWordMute } from '../../../../misc/check-word-mute'; + +export default class extends Channel { + public readonly chName = 'hybridTimeline'; + public static shouldShare = true; + public static requireCredential = true; + + @autobind + public async init(params: any) { + const meta = await fetchMeta(); + if (meta.disableLocalTimeline && !this.user!.isAdmin && !this.user!.isModerator) return; + + // Subscribe events + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + // チャンネルの投稿ではなく、自分自身の投稿 または + // チャンネルの投稿ではなく、その投稿のユーザーをフォローしている または + // チャンネルの投稿ではなく、全体公開のローカルの投稿 または + // フォローしているチャンネルの投稿 の場合だけ + if (!( + (note.channelId == null && this.user!.id === note.userId) || + (note.channelId == null && this.following.includes(note.userId)) || + (note.channelId == null && ((note.user as PackedUser).host == null && note.visibility === 'public')) || + (note.channelId != null && this.followingChannels.includes(note.channelId)) + )) return; + + if (['followers', 'specified'].includes(note.visibility)) { + note = await Notes.pack(note.id, this.user!, { + detail: true + }); + + if (note.isHidden) { + return; + } + } else { + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user!, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user!, { + detail: true + }); + } + } + + // 関係ない返信は除外 + if (note.reply) { + // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 + if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + // 流れてきたNoteがミュートすべきNoteだったら無視する + // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) + // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 + // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 + // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる + if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/index.ts b/src/server/api/stream/channels/index.ts new file mode 100644 index 000000000..184157304 --- /dev/null +++ b/src/server/api/stream/channels/index.ts @@ -0,0 +1,37 @@ +import main from './main'; +import homeTimeline from './home-timeline'; +import localTimeline from './local-timeline'; +import hybridTimeline from './hybrid-timeline'; +import globalTimeline from './global-timeline'; +import serverStats from './server-stats'; +import queueStats from './queue-stats'; +import userList from './user-list'; +import antenna from './antenna'; +import messaging from './messaging'; +import messagingIndex from './messaging-index'; +import drive from './drive'; +import hashtag from './hashtag'; +import channel from './channel'; +import admin from './admin'; +import gamesReversi from './games/reversi'; +import gamesReversiGame from './games/reversi-game'; + +export default { + main, + homeTimeline, + localTimeline, + hybridTimeline, + globalTimeline, + serverStats, + queueStats, + userList, + antenna, + messaging, + messagingIndex, + drive, + hashtag, + channel, + admin, + gamesReversi, + gamesReversiGame +}; diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts new file mode 100644 index 000000000..baeae8660 --- /dev/null +++ b/src/server/api/stream/channels/local-timeline.ts @@ -0,0 +1,69 @@ +import autobind from 'autobind-decorator'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import Channel from '../channel'; +import { fetchMeta } from '../../../../misc/fetch-meta'; +import { Notes } from '../../../../models'; +import { PackedNote } from '../../../../models/repositories/note'; +import { PackedUser } from '../../../../models/repositories/user'; +import { checkWordMute } from '../../../../misc/check-word-mute'; + +export default class extends Channel { + public readonly chName = 'localTimeline'; + public static shouldShare = true; + public static requireCredential = false; + + @autobind + public async init(params: any) { + const meta = await fetchMeta(); + if (meta.disableLocalTimeline) { + if (this.user == null || (!this.user.isAdmin && !this.user.isModerator)) return; + } + + // Subscribe events + this.subscriber.on('notesStream', this.onNote); + } + + @autobind + private async onNote(note: PackedNote) { + if ((note.user as PackedUser).host !== null) return; + if (note.visibility !== 'public') return; + if (note.channelId != null && !this.followingChannels.includes(note.channelId)) return; + + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user, { + detail: true + }); + } + + // 関係ない返信は除外 + if (note.reply) { + // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 + if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + // 流れてきたNoteがミュートすべきNoteだったら無視する + // TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある) + // 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、 + // レコードが追加されるNoteでも追加されるより先にここのストリーミングの処理に到達することが起こる。 + // そのためレコードが存在するかのチェックでは不十分なので、改めてcheckWordMuteを呼んでいる + if (this.userProfile && await checkWordMute(note, this.user, this.userProfile.mutedWords)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off('notesStream', this.onNote); + } +} diff --git a/src/server/api/stream/channels/main.ts b/src/server/api/stream/channels/main.ts new file mode 100644 index 000000000..22e664bac --- /dev/null +++ b/src/server/api/stream/channels/main.ts @@ -0,0 +1,41 @@ +import autobind from 'autobind-decorator'; +import Channel from '../channel'; +import { Notes } from '../../../../models'; + +export default class extends Channel { + public readonly chName = 'main'; + public static shouldShare = true; + public static requireCredential = true; + + @autobind + public async init(params: any) { + // Subscribe main stream channel + this.subscriber.on(`mainStream:${this.user!.id}`, async data => { + const { type } = data; + let { body } = data; + + switch (type) { + case 'notification': { + if (this.muting.includes(body.userId)) return; + if (body.note && body.note.isHidden) { + body.note = await Notes.pack(body.note.id, this.user, { + detail: true + }); + } + break; + } + case 'mention': { + if (this.muting.includes(body.userId)) return; + if (body.isHidden) { + body = await Notes.pack(body.id, this.user, { + detail: true + }); + } + break; + } + } + + this.send(type, body); + }); + } +} diff --git a/packages/backend/src/server/api/stream/channels/messaging-index.ts b/src/server/api/stream/channels/messaging-index.ts similarity index 79% rename from packages/backend/src/server/api/stream/channels/messaging-index.ts rename to src/server/api/stream/channels/messaging-index.ts index b930785d2..0c495398a 100644 --- a/packages/backend/src/server/api/stream/channels/messaging-index.ts +++ b/src/server/api/stream/channels/messaging-index.ts @@ -1,10 +1,12 @@ -import Channel from '../channel.js'; +import autobind from 'autobind-decorator'; +import Channel from '../channel'; export default class extends Channel { public readonly chName = 'messagingIndex'; public static shouldShare = true; public static requireCredential = true; + @autobind public async init(params: any) { // Subscribe messaging index stream this.subscriber.on(`messagingIndexStream:${this.user!.id}`, data => { diff --git a/src/server/api/stream/channels/messaging.ts b/src/server/api/stream/channels/messaging.ts new file mode 100644 index 000000000..8456871e6 --- /dev/null +++ b/src/server/api/stream/channels/messaging.ts @@ -0,0 +1,63 @@ +import autobind from 'autobind-decorator'; +import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message'; +import Channel from '../channel'; +import { UserGroupJoinings, Users, MessagingMessages } from '../../../../models'; +import { User, ILocalUser, IRemoteUser } from '../../../../models/entities/user'; + +export default class extends Channel { + public readonly chName = 'messaging'; + public static shouldShare = false; + public static requireCredential = true; + + private otherpartyId: string | null; + private otherparty?: User; + private groupId: string | null; + + @autobind + public async init(params: any) { + this.otherpartyId = params.otherparty as string; + this.otherparty = await Users.findOne({ id: this.otherpartyId }); + this.groupId = params.group as string; + + // Check joining + if (this.groupId) { + const joining = await UserGroupJoinings.findOne({ + userId: this.user!.id, + userGroupId: this.groupId + }); + + if (joining == null) { + return; + } + } + + const subCh = this.otherpartyId + ? `messagingStream:${this.user!.id}-${this.otherpartyId}` + : `messagingStream:${this.groupId}`; + + // Subscribe messaging stream + this.subscriber.on(subCh, data => { + this.send(data); + }); + } + + @autobind + public onMessage(type: string, body: any) { + switch (type) { + case 'read': + if (this.otherpartyId) { + readUserMessagingMessage(this.user!.id, this.otherpartyId, [body.id]); + + // リモートユーザーからのメッセージだったら既読配信 + if (Users.isLocalUser(this.user!) && Users.isRemoteUser(this.otherparty!)) { + MessagingMessages.findOne(body.id).then(message => { + if (message) deliverReadActivity(this.user as ILocalUser, this.otherparty as IRemoteUser, message); + }); + } + } else if (this.groupId) { + readGroupMessagingMessage(this.user!.id, this.groupId, [body.id]); + } + break; + } + } +} diff --git a/src/server/api/stream/channels/queue-stats.ts b/src/server/api/stream/channels/queue-stats.ts new file mode 100644 index 000000000..0bda0cfcb --- /dev/null +++ b/src/server/api/stream/channels/queue-stats.ts @@ -0,0 +1,41 @@ +import autobind from 'autobind-decorator'; +import Xev from 'xev'; +import Channel from '../channel'; + +const ev = new Xev(); + +export default class extends Channel { + public readonly chName = 'queueStats'; + public static shouldShare = true; + public static requireCredential = false; + + @autobind + public async init(params: any) { + ev.addListener('queueStats', this.onStats); + } + + @autobind + private onStats(stats: any) { + this.send('stats', stats); + } + + @autobind + public onMessage(type: string, body: any) { + switch (type) { + case 'requestLog': + ev.once(`queueStatsLog:${body.id}`, statsLog => { + this.send('statsLog', statsLog); + }); + ev.emit('requestQueueStatsLog', { + id: body.id, + length: body.length + }); + break; + } + } + + @autobind + public dispose() { + ev.removeListener('queueStats', this.onStats); + } +} diff --git a/src/server/api/stream/channels/server-stats.ts b/src/server/api/stream/channels/server-stats.ts new file mode 100644 index 000000000..d245a7f70 --- /dev/null +++ b/src/server/api/stream/channels/server-stats.ts @@ -0,0 +1,41 @@ +import autobind from 'autobind-decorator'; +import Xev from 'xev'; +import Channel from '../channel'; + +const ev = new Xev(); + +export default class extends Channel { + public readonly chName = 'serverStats'; + public static shouldShare = true; + public static requireCredential = false; + + @autobind + public async init(params: any) { + ev.addListener('serverStats', this.onStats); + } + + @autobind + private onStats(stats: any) { + this.send('stats', stats); + } + + @autobind + public onMessage(type: string, body: any) { + switch (type) { + case 'requestLog': + ev.once(`serverStatsLog:${body.id}`, statsLog => { + this.send('statsLog', statsLog); + }); + ev.emit('requestServerStatsLog', { + id: body.id, + length: body.length + }); + break; + } + } + + @autobind + public dispose() { + ev.removeListener('serverStats', this.onStats); + } +} diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts new file mode 100644 index 000000000..4191a0de5 --- /dev/null +++ b/src/server/api/stream/channels/user-list.ts @@ -0,0 +1,89 @@ +import autobind from 'autobind-decorator'; +import Channel from '../channel'; +import { Notes, UserListJoinings, UserLists } from '../../../../models'; +import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { User } from '../../../../models/entities/user'; +import { PackedNote } from '../../../../models/repositories/note'; + +export default class extends Channel { + public readonly chName = 'userList'; + public static shouldShare = false; + public static requireCredential = false; + private listId: string; + public listUsers: User['id'][] = []; + private listUsersClock: NodeJS.Timer; + + @autobind + public async init(params: any) { + this.listId = params.listId as string; + + // Check existence and owner + const list = await UserLists.findOne({ + id: this.listId, + userId: this.user!.id + }); + if (!list) return; + + // Subscribe stream + this.subscriber.on(`userListStream:${this.listId}`, this.send); + + this.subscriber.on('notesStream', this.onNote); + + this.updateListUsers(); + this.listUsersClock = setInterval(this.updateListUsers, 5000); + } + + @autobind + private async updateListUsers() { + const users = await UserListJoinings.find({ + where: { + userListId: this.listId, + }, + select: ['userId'] + }); + + this.listUsers = users.map(x => x.userId); + } + + @autobind + private async onNote(note: PackedNote) { + if (!this.listUsers.includes(note.userId)) return; + + if (['followers', 'specified'].includes(note.visibility)) { + note = await Notes.pack(note.id, this.user, { + detail: true + }); + + if (note.isHidden) { + return; + } + } else { + // リプライなら再pack + if (note.replyId != null) { + note.reply = await Notes.pack(note.replyId, this.user, { + detail: true + }); + } + // Renoteなら再pack + if (note.renoteId != null) { + note.renote = await Notes.pack(note.renoteId, this.user, { + detail: true + }); + } + } + + // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する + if (isMutedUserRelated(note, this.muting)) return; + + this.send('note', note); + } + + @autobind + public dispose() { + // Unsubscribe events + this.subscriber.off(`userListStream:${this.listId}`, this.send); + this.subscriber.off('notesStream', this.onNote); + + clearInterval(this.listUsersClock); + } +} diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts new file mode 100644 index 000000000..36e08ec05 --- /dev/null +++ b/src/server/api/stream/index.ts @@ -0,0 +1,318 @@ +import autobind from 'autobind-decorator'; +import * as websocket from 'websocket'; +import { readNotification } from '../common/read-notification'; +import call from '../call'; +import readNote from '../../../services/note/read'; +import Channel from './channel'; +import channels from './channels'; +import { EventEmitter } from 'events'; +import { User } from '../../../models/entities/user'; +import { Channel as ChannelModel } from '../../../models/entities/channel'; +import { Users, Followings, Mutings, UserProfiles, ChannelFollowings } from '../../../models'; +import { ApiError } from '../error'; +import { AccessToken } from '../../../models/entities/access-token'; +import { UserProfile } from '../../../models/entities/user-profile'; + +/** + * Main stream connection + */ +export default class Connection { + public user?: User; + public userProfile?: UserProfile; + public following: User['id'][] = []; + public muting: User['id'][] = []; + public followingChannels: ChannelModel['id'][] = []; + public token?: AccessToken; + private wsConnection: websocket.connection; + public subscriber: EventEmitter; + private channels: Channel[] = []; + private subscribingNotes: any = {}; + private followingClock: NodeJS.Timer; + private mutingClock: NodeJS.Timer; + private followingChannelsClock: NodeJS.Timer; + private userProfileClock: NodeJS.Timer; + + constructor( + wsConnection: websocket.connection, + subscriber: EventEmitter, + user: User | null | undefined, + token: AccessToken | null | undefined + ) { + this.wsConnection = wsConnection; + this.subscriber = subscriber; + if (user) this.user = user; + if (token) this.token = token; + + this.wsConnection.on('message', this.onWsConnectionMessage); + + this.subscriber.on('broadcast', async ({ type, body }) => { + this.onBroadcastMessage(type, body); + }); + + if (this.user) { + this.updateFollowing(); + this.followingClock = setInterval(this.updateFollowing, 5000); + + this.updateMuting(); + this.mutingClock = setInterval(this.updateMuting, 5000); + + this.updateFollowingChannels(); + this.followingChannelsClock = setInterval(this.updateFollowingChannels, 5000); + + this.updateUserProfile(); + this.userProfileClock = setInterval(this.updateUserProfile, 5000); + } + } + + /** + * クライアントからメッセージ受信時 + */ + @autobind + private async onWsConnectionMessage(data: websocket.IMessage) { + if (data.utf8Data == null) return; + + let obj: Record; + + try { + obj = JSON.parse(data.utf8Data); + } catch (e) { + return; + } + + const { type, body } = obj; + + switch (type) { + case 'api': this.onApiRequest(body); break; + case 'readNotification': this.onReadNotification(body); break; + case 'subNote': this.onSubscribeNote(body, true); break; + case 'sn': this.onSubscribeNote(body, true); break; // alias + case 's': this.onSubscribeNote(body, false); break; + case 'unsubNote': this.onUnsubscribeNote(body); break; + case 'un': this.onUnsubscribeNote(body); break; // alias + case 'connect': this.onChannelConnectRequested(body); break; + case 'disconnect': this.onChannelDisconnectRequested(body); break; + case 'channel': this.onChannelMessageRequested(body); break; + case 'ch': this.onChannelMessageRequested(body); break; // alias + } + } + + @autobind + private onBroadcastMessage(type: string, body: any) { + this.sendMessageToWs(type, body); + } + + /** + * APIリクエスト要求時 + */ + @autobind + private async onApiRequest(payload: any) { + // 新鮮なデータを利用するためにユーザーをフェッチ + const user = this.user ? await Users.findOne(this.user.id) : null; + + const endpoint = payload.endpoint || payload.ep; // alias + + // 呼び出し + call(endpoint, user, this.token, payload.data).then(res => { + this.sendMessageToWs(`api:${payload.id}`, { res }); + }).catch((e: ApiError) => { + this.sendMessageToWs(`api:${payload.id}`, { + error: { + message: e.message, + code: e.code, + id: e.id, + kind: e.kind, + ...(e.info ? { info: e.info } : {}) + } + }); + }); + } + + @autobind + private onReadNotification(payload: any) { + if (!payload.id) return; + readNotification(this.user!.id, [payload.id]); + } + + /** + * 投稿購読要求時 + */ + @autobind + private onSubscribeNote(payload: any, read: boolean) { + if (!payload.id) return; + + if (this.subscribingNotes[payload.id] == null) { + this.subscribingNotes[payload.id] = 0; + } + + this.subscribingNotes[payload.id]++; + + if (this.subscribingNotes[payload.id] === 1) { + this.subscriber.on(`noteStream:${payload.id}`, this.onNoteStreamMessage); + } + + if (this.user && read) { + readNote(this.user.id, payload.id); + } + } + + /** + * 投稿購読解除要求時 + */ + @autobind + private onUnsubscribeNote(payload: any) { + if (!payload.id) return; + + this.subscribingNotes[payload.id]--; + if (this.subscribingNotes[payload.id] <= 0) { + delete this.subscribingNotes[payload.id]; + this.subscriber.off(`noteStream:${payload.id}`, this.onNoteStreamMessage); + } + } + + @autobind + private async onNoteStreamMessage(data: any) { + this.sendMessageToWs('noteUpdated', { + id: data.body.id, + type: data.type, + body: data.body.body, + }); + } + + /** + * チャンネル接続要求時 + */ + @autobind + private onChannelConnectRequested(payload: any) { + const { channel, id, params, pong } = payload; + this.connectChannel(id, params, channel, pong); + } + + /** + * チャンネル切断要求時 + */ + @autobind + private onChannelDisconnectRequested(payload: any) { + const { id } = payload; + this.disconnectChannel(id); + } + + /** + * クライアントにメッセージ送信 + */ + @autobind + public sendMessageToWs(type: string, payload: any) { + this.wsConnection.send(JSON.stringify({ + type: type, + body: payload + })); + } + + /** + * チャンネルに接続 + */ + @autobind + public connectChannel(id: string, params: any, channel: string, pong = false) { + if ((channels as any)[channel].requireCredential && this.user == null) { + return; + } + + // 共有可能チャンネルに接続しようとしていて、かつそのチャンネルに既に接続していたら無意味なので無視 + if ((channels as any)[channel].shouldShare && this.channels.some(c => c.chName === channel)) { + return; + } + + const ch: Channel = new (channels as any)[channel](id, this); + this.channels.push(ch); + ch.init(params); + + if (pong) { + this.sendMessageToWs('connected', { + id: id + }); + } + } + + /** + * チャンネルから切断 + * @param id チャンネルコネクションID + */ + @autobind + public disconnectChannel(id: string) { + const channel = this.channels.find(c => c.id === id); + + if (channel) { + if (channel.dispose) channel.dispose(); + this.channels = this.channels.filter(c => c.id !== id); + } + } + + /** + * チャンネルへメッセージ送信要求時 + * @param data メッセージ + */ + @autobind + private onChannelMessageRequested(data: any) { + const channel = this.channels.find(c => c.id === data.id); + if (channel != null && channel.onMessage != null) { + channel.onMessage(data.type, data.body); + } + } + + @autobind + private async updateFollowing() { + const followings = await Followings.find({ + where: { + followerId: this.user!.id + }, + select: ['followeeId'] + }); + + this.following = followings.map(x => x.followeeId); + } + + @autobind + private async updateMuting() { + const mutings = await Mutings.find({ + where: { + muterId: this.user!.id + }, + select: ['muteeId'] + }); + + this.muting = mutings.map(x => x.muteeId); + } + + @autobind + private async updateFollowingChannels() { + const followings = await ChannelFollowings.find({ + where: { + followerId: this.user!.id + }, + select: ['followeeId'] + }); + + this.followingChannels = followings.map(x => x.followeeId); + } + + @autobind + private async updateUserProfile() { + this.userProfile = await UserProfiles.findOne({ + userId: this.user!.id + }); + } + + /** + * ストリームが切れたとき + */ + @autobind + public dispose() { + for (const c of this.channels.filter(c => c.dispose)) { + if (c.dispose) c.dispose(); + } + + if (this.followingClock) clearInterval(this.followingClock); + if (this.mutingClock) clearInterval(this.mutingClock); + if (this.followingChannelsClock) clearInterval(this.followingChannelsClock); + if (this.userProfileClock) clearInterval(this.userProfileClock); + } +} diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts new file mode 100644 index 000000000..10f2a70ba --- /dev/null +++ b/src/server/api/streaming.ts @@ -0,0 +1,66 @@ +import * as http from 'http'; +import * as websocket from 'websocket'; +import * as redis from 'redis'; + +import MainStreamConnection from './stream'; +import { ParsedUrlQuery } from 'querystring'; +import authenticate from './authenticate'; +import { EventEmitter } from 'events'; +import config from '../../config'; + +module.exports = (server: http.Server) => { + // Init websocket server + const ws = new websocket.server({ + httpServer: server + }); + + ws.on('request', async (request) => { + const q = request.resourceURL.query as ParsedUrlQuery; + + // TODO: トークンが間違ってるなどしてauthenticateに失敗したら + // コネクション切断するなりエラーメッセージ返すなりする + // (現状はエラーがキャッチされておらずサーバーのログに流れて邪魔なので) + const [user, app] = await authenticate(q.i as string); + + const connection = request.accept(); + + let ev: EventEmitter; + + // Connect to Redis + const subscriber = redis.createClient( + config.redis.port, + config.redis.host, + { + password: config.redis.pass + } + ); + + subscriber.subscribe(config.host); + + ev = new EventEmitter(); + + subscriber.on('message', async (_, data) => { + const obj = JSON.parse(data); + + ev.emit(obj.channel, obj.message); + }); + + connection.once('close', () => { + subscriber.unsubscribe(); + subscriber.quit(); + }); + + const main = new MainStreamConnection(connection, ev, user, app); + + connection.once('close', () => { + ev.removeAllListeners(); + main.dispose(); + }); + + connection.on('message', async (data) => { + if (data.utf8Data === 'ping') { + connection.send('pong'); + } + }); + }); +}; diff --git a/packages/backend/src/server/file/assets/bad-egg.png b/src/server/file/assets/bad-egg.png similarity index 100% rename from packages/backend/src/server/file/assets/bad-egg.png rename to src/server/file/assets/bad-egg.png diff --git a/packages/backend/src/server/file/assets/cache-expired.png b/src/server/file/assets/cache-expired.png similarity index 100% rename from packages/backend/src/server/file/assets/cache-expired.png rename to src/server/file/assets/cache-expired.png diff --git a/packages/backend/src/server/file/assets/dummy.png b/src/server/file/assets/dummy.png similarity index 100% rename from packages/backend/src/server/file/assets/dummy.png rename to src/server/file/assets/dummy.png diff --git a/packages/backend/src/server/file/assets/not-an-image.png b/src/server/file/assets/not-an-image.png similarity index 100% rename from packages/backend/src/server/file/assets/not-an-image.png rename to src/server/file/assets/not-an-image.png diff --git a/packages/backend/src/server/file/assets/thumbnail-not-available.png b/src/server/file/assets/thumbnail-not-available.png similarity index 100% rename from packages/backend/src/server/file/assets/thumbnail-not-available.png rename to src/server/file/assets/thumbnail-not-available.png diff --git a/packages/backend/src/server/file/assets/tombstone.png b/src/server/file/assets/tombstone.png similarity index 100% rename from packages/backend/src/server/file/assets/tombstone.png rename to src/server/file/assets/tombstone.png diff --git a/src/server/file/index.ts b/src/server/file/index.ts new file mode 100644 index 000000000..0410efb99 --- /dev/null +++ b/src/server/file/index.ts @@ -0,0 +1,31 @@ +/** + * File Server + */ + +import * as fs from 'fs'; +import * as Koa from 'koa'; +import * as cors from '@koa/cors'; +import * as Router from '@koa/router'; +import sendDriveFile from './send-drive-file'; + +// Init app +const app = new Koa(); +app.use(cors()); + +// Init router +const router = new Router(); + +router.get('/app-default.jpg', ctx => { + const file = fs.createReadStream(`${__dirname}/assets/dummy.png`); + ctx.body = file; + ctx.set('Content-Type', 'image/jpeg'); + ctx.set('Cache-Control', 'max-age=31536000, immutable'); +}); + +router.get('/:key', sendDriveFile); +router.get('/:key/(.*)', sendDriveFile); + +// Register router +app.use(router.routes()); + +module.exports = app; diff --git a/src/server/file/send-drive-file.ts b/src/server/file/send-drive-file.ts new file mode 100644 index 000000000..9dea2df8e --- /dev/null +++ b/src/server/file/send-drive-file.ts @@ -0,0 +1,119 @@ +import * as Koa from 'koa'; +import * as send from 'koa-send'; +import * as rename from 'rename'; +import * as tmp from 'tmp'; +import * as fs from 'fs'; +import { serverLogger } from '..'; +import { contentDisposition } from '../../misc/content-disposition'; +import { DriveFiles } from '../../models'; +import { InternalStorage } from '../../services/drive/internal-storage'; +import { downloadUrl } from '../../misc/download-url'; +import { detectType } from '../../misc/get-file-info'; +import { convertToJpeg, convertToPngOrJpeg } from '../../services/drive/image-processor'; +import { GenerateVideoThumbnail } from '../../services/drive/generate-video-thumbnail'; + +const assets = `${__dirname}/../../server/file/assets/`; + +const commonReadableHandlerGenerator = (ctx: Koa.Context) => (e: Error): void => { + serverLogger.error(e); + ctx.status = 500; + ctx.set('Cache-Control', 'max-age=300'); +}; + +export default async function(ctx: Koa.Context) { + const key = ctx.params.key; + + // Fetch drive file + const file = await DriveFiles.createQueryBuilder('file') + .where('file.accessKey = :accessKey', { accessKey: key }) + .orWhere('file.thumbnailAccessKey = :thumbnailAccessKey', { thumbnailAccessKey: key }) + .orWhere('file.webpublicAccessKey = :webpublicAccessKey', { webpublicAccessKey: key }) + .getOne(); + + if (file == null) { + ctx.status = 404; + ctx.set('Cache-Control', 'max-age=86400'); + await send(ctx as any, '/dummy.png', { root: assets }); + return; + } + + const isThumbnail = file.thumbnailAccessKey === key; + const isWebpublic = file.webpublicAccessKey === key; + + if (!file.storedInternal) { + if (file.isLink && file.uri) { // 期限切れリモートファイル + const [path, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.file((e, path, fd, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + try { + await downloadUrl(file.uri, path); + + const { mime, ext } = await detectType(path); + + const convertFile = async () => { + if (isThumbnail) { + if (['image/jpeg', 'image/webp'].includes(mime)) { + return await convertToJpeg(path, 498, 280); + } else if (['image/png'].includes(mime)) { + return await convertToPngOrJpeg(path, 498, 280); + } else if (mime.startsWith('video/')) { + return await GenerateVideoThumbnail(path); + } + } + + return { + data: fs.readFileSync(path), + ext, + type: mime, + }; + }; + + const image = await convertFile(); + ctx.body = image.data; + ctx.set('Content-Type', image.type); + ctx.set('Cache-Control', 'max-age=31536000, immutable'); + } catch (e) { + serverLogger.error(e); + + if (typeof e == 'number' && e >= 400 && e < 500) { + ctx.status = e; + ctx.set('Cache-Control', 'max-age=86400'); + } else { + ctx.status = 500; + ctx.set('Cache-Control', 'max-age=300'); + } + } finally { + cleanup(); + } + return; + } + + ctx.status = 204; + ctx.set('Cache-Control', 'max-age=86400'); + return; + } + + if (isThumbnail || isWebpublic) { + const { mime, ext } = await detectType(InternalStorage.resolvePath(key)); + const filename = rename(file.name, { + suffix: isThumbnail ? '-thumb' : '-web', + extname: ext ? `.${ext}` : undefined + }).toString(); + + ctx.body = InternalStorage.read(key); + ctx.set('Content-Type', mime); + ctx.set('Cache-Control', 'max-age=31536000, immutable'); + ctx.set('Content-Disposition', contentDisposition('inline', filename)); + } else { + const readable = InternalStorage.read(file.accessKey!); + readable.on('error', commonReadableHandlerGenerator(ctx)); + ctx.body = readable; + ctx.set('Content-Type', file.type); + ctx.set('Cache-Control', 'max-age=31536000, immutable'); + ctx.set('Content-Disposition', contentDisposition('inline', file.name)); + } +} diff --git a/src/server/index.ts b/src/server/index.ts new file mode 100644 index 000000000..15e1fedc9 --- /dev/null +++ b/src/server/index.ts @@ -0,0 +1,157 @@ +/** + * Core Server + */ + +import * as fs from 'fs'; +import * as http from 'http'; +import * as http2 from 'http2'; +import * as https from 'https'; +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import * as mount from 'koa-mount'; +import * as koaLogger from 'koa-logger'; +import * as requestStats from 'request-stats'; +import * as slow from 'koa-slow'; + +import activityPub from './activitypub'; +import nodeinfo from './nodeinfo'; +import wellKnown from './well-known'; +import config from '../config'; +import apiServer from './api'; +import { sum } from '../prelude/array'; +import Logger from '../services/logger'; +import { program } from '../argv'; +import { UserProfiles } from '../models'; +import { networkChart } from '../services/chart'; +import { genAvatar } from '../misc/gen-avatar'; +import { createTemp } from '../misc/create-temp'; + +export const serverLogger = new Logger('server', 'gray', false); + +// Init app +const app = new Koa(); +app.proxy = true; + +if (!['production', 'test'].includes(process.env.NODE_ENV || '')) { + // Logger + app.use(koaLogger(str => { + serverLogger.info(str); + })); + + // Delay + if (program.slow) { + app.use(slow({ + delay: 3000 + })); + } +} + +// HSTS +// 6months (15552000sec) +if (config.url.startsWith('https') && !config.disableHsts) { + app.use(async (ctx, next) => { + ctx.set('strict-transport-security', 'max-age=15552000; preload'); + await next(); + }); +} + +app.use(mount('/api', apiServer)); +app.use(mount('/files', require('./file'))); +app.use(mount('/proxy', require('./proxy'))); + +// Init router +const router = new Router(); + +// Routing +router.use(activityPub.routes()); +router.use(nodeinfo.routes()); +router.use(wellKnown.routes()); + +router.get('/avatar/:x', async ctx => { + const [temp] = await createTemp(); + await genAvatar(ctx.params.x, fs.createWriteStream(temp)); + ctx.set('Content-Type', 'image/png'); + ctx.body = fs.createReadStream(temp); +}); + +router.get('/verify-email/:code', async ctx => { + const profile = await UserProfiles.findOne({ + emailVerifyCode: ctx.params.code + }); + + if (profile != null) { + ctx.body = 'Verify succeeded!'; + ctx.status = 200; + + UserProfiles.update({ userId: profile.userId }, { + emailVerified: true, + emailVerifyCode: null + }); + } else { + ctx.status = 404; + } +}); + +// Register router +app.use(router.routes()); + +app.use(mount(require('./web'))); + +function createServer() { + if (config.https) { + const certs: any = {}; + for (const k of Object.keys(config.https)) { + certs[k] = fs.readFileSync(config.https[k]); + } + certs['allowHTTP1'] = true; + return http2.createSecureServer(certs, app.callback()) as https.Server; + } else { + return http.createServer(app.callback()); + } +} + +// For testing +export const startServer = () => { + const server = createServer(); + + // Init stream server + require('./api/streaming')(server); + + // Listen + server.listen(config.port); + + return server; +}; + +export default () => new Promise(resolve => { + const server = createServer(); + + // Init stream server + require('./api/streaming')(server); + + // Listen + server.listen(config.port, resolve); + + //#region Network stats + let queue: any[] = []; + + requestStats(server, (stats: any) => { + if (stats.ok) { + queue.push(stats); + } + }); + + // Bulk write + setInterval(() => { + if (queue.length === 0) return; + + const requests = queue.length; + const time = sum(queue.map(x => x.time)); + const incomingBytes = sum(queue.map(x => x.req.byets)); + const outgoingBytes = sum(queue.map(x => x.res.byets)); + queue = []; + + networkChart.update(requests, time, incomingBytes, outgoingBytes); + }, 5000); + //#endregion +}); diff --git a/src/server/nodeinfo.ts b/src/server/nodeinfo.ts new file mode 100644 index 000000000..5c51137c9 --- /dev/null +++ b/src/server/nodeinfo.ts @@ -0,0 +1,100 @@ +import * as Router from '@koa/router'; +import config from '../config'; +import { fetchMeta } from '../misc/fetch-meta'; +import { Users } from '../models'; +// import User from '../models/user'; +// import Note from '../models/note'; + +const router = new Router(); + +const nodeinfo2_1path = '/nodeinfo/2.1'; +const nodeinfo2_0path = '/nodeinfo/2.0'; + +export const links = [/* (awaiting release) { + rel: 'http://nodeinfo.diaspora.software/ns/schema/2.1', + href: config.url + nodeinfo2_1path +}, */{ + rel: 'http://nodeinfo.diaspora.software/ns/schema/2.0', + href: config.url + nodeinfo2_0path +}]; + +const nodeinfo2 = async () => { + const [ + meta, + // total, + // activeHalfyear, + // activeMonth, + // localPosts, + // localComments + ] = await Promise.all([ + fetchMeta(true), + // User.count({ host: null }), + // User.count({ host: null, updatedAt: { $gt: new Date(Date.now() - 15552000000) } }), + // User.count({ host: null, updatedAt: { $gt: new Date(Date.now() - 2592000000) } }), + // Note.count({ '_user.host': null, replyId: null }), + // Note.count({ '_user.host': null, replyId: { $ne: null } }) + ]); + + const proxyAccount = meta.proxyAccountId ? await Users.pack(meta.proxyAccountId).catch(() => null) : null; + + return { + software: { + name: 'misskey', + version: config.version, + repository: meta.repositoryUrl, + }, + protocols: ['activitypub'], + services: { + inbound: [] as string[], + outbound: ['atom1.0', 'rss2.0'] + }, + openRegistrations: !meta.disableRegistration, + usage: { + users: {} // { total, activeHalfyear, activeMonth }, + // localPosts, + // localComments + }, + metadata: { + nodeName: meta.name, + nodeDescription: meta.description, + maintainer: { + name: meta.maintainerName, + email: meta.maintainerEmail + }, + langs: meta.langs, + tosUrl: meta.ToSUrl, + repositoryUrl: meta.repositoryUrl, + feedbackUrl: meta.feedbackUrl, + disableRegistration: meta.disableRegistration, + disableLocalTimeline: meta.disableLocalTimeline, + disableGlobalTimeline: meta.disableGlobalTimeline, + enableHcaptcha: meta.enableHcaptcha, + enableRecaptcha: meta.enableRecaptcha, + maxNoteTextLength: meta.maxNoteTextLength, + enableTwitterIntegration: meta.enableTwitterIntegration, + enableGithubIntegration: meta.enableGithubIntegration, + enableDiscordIntegration: meta.enableDiscordIntegration, + enableEmail: meta.enableEmail, + enableServiceWorker: meta.enableServiceWorker, + proxyAccountName: proxyAccount ? proxyAccount.username : null, + } + }; +}; + +router.get(nodeinfo2_1path, async ctx => { + const base = await nodeinfo2(); + + ctx.body = { version: '2.1', ...base }; + ctx.set('Cache-Control', 'public, max-age=600'); +}); + +router.get(nodeinfo2_0path, async ctx => { + const base = await nodeinfo2(); + + delete base.software.repository; + + ctx.body = { version: '2.0', ...base }; + ctx.set('Cache-Control', 'public, max-age=600'); +}); + +export default router; diff --git a/src/server/proxy/index.ts b/src/server/proxy/index.ts new file mode 100644 index 000000000..9ef198d31 --- /dev/null +++ b/src/server/proxy/index.ts @@ -0,0 +1,22 @@ +/** + * Media Proxy + */ + +import * as Koa from 'koa'; +import * as cors from '@koa/cors'; +import * as Router from '@koa/router'; +import { proxyMedia } from './proxy-media'; + +// Init app +const app = new Koa(); +app.use(cors()); + +// Init router +const router = new Router(); + +router.get('/:url*', proxyMedia); + +// Register router +app.use(router.routes()); + +module.exports = app; diff --git a/src/server/proxy/proxy-media.ts b/src/server/proxy/proxy-media.ts new file mode 100644 index 000000000..4373cc20f --- /dev/null +++ b/src/server/proxy/proxy-media.ts @@ -0,0 +1,50 @@ +import * as fs from 'fs'; +import * as Koa from 'koa'; +import { serverLogger } from '..'; +import { IImage, convertToPng, convertToJpeg } from '../../services/drive/image-processor'; +import { createTemp } from '../../misc/create-temp'; +import { downloadUrl } from '../../misc/download-url'; +import { detectType } from '../../misc/get-file-info'; + +export async function proxyMedia(ctx: Koa.Context) { + const url = 'url' in ctx.query ? ctx.query.url : 'https://' + ctx.params.url; + + // Create temp file + const [path, cleanup] = await createTemp(); + + try { + await downloadUrl(url, path); + + const { mime, ext } = await detectType(path); + + if (!mime.startsWith('image/')) throw 403; + + let image: IImage; + + if ('static' in ctx.query && ['image/png', 'image/gif', 'image/apng', 'image/vnd.mozilla.apng', 'image/webp'].includes(mime)) { + image = await convertToPng(path, 498, 280); + } else if ('preview' in ctx.query && ['image/jpeg', 'image/png', 'image/gif', 'image/apng', 'image/vnd.mozilla.apng'].includes(mime)) { + image = await convertToJpeg(path, 200, 200); + } else { + image = { + data: fs.readFileSync(path), + ext, + type: mime, + }; + } + + ctx.set('Content-Type', image.type); + ctx.set('Cache-Control', 'max-age=31536000, immutable'); + ctx.body = image.data; + } catch (e) { + serverLogger.error(e); + + if (typeof e == 'number' && e >= 400 && e < 500) { + ctx.status = e; + } else { + ctx.status = 500; + } + } finally { + cleanup(); + } +} diff --git a/src/server/web/feed.ts b/src/server/web/feed.ts new file mode 100644 index 000000000..9c7591d74 --- /dev/null +++ b/src/server/web/feed.ts @@ -0,0 +1,59 @@ +import { Feed } from 'feed'; +import config from '../../config'; +import { User } from '../../models/entities/user'; +import { Notes, DriveFiles, UserProfiles } from '../../models'; +import { In } from 'typeorm'; +import { ensure } from '../../prelude/ensure'; + +export default async function(user: User) { + const author = { + link: `${config.url}/@${user.username}`, + name: user.name || user.username + }; + + const profile = await UserProfiles.findOne(user.id).then(ensure); + + const notes = await Notes.find({ + where: { + userId: user.id, + renoteId: null, + visibility: In(['public', 'home']) + }, + order: { createdAt: -1 }, + take: 20 + }); + + const feed = new Feed({ + id: author.link, + title: `${author.name} (@${user.username}@${config.host})`, + updated: notes[0].createdAt, + generator: 'Misskey', + description: `${user.notesCount} Notes, ${user.followingCount} Following, ${user.followersCount} Followers${profile.description ? ` · ${profile.description}` : ''}`, + link: author.link, + image: user.avatarUrl ? user.avatarUrl : undefined, + feedLinks: { + json: `${author.link}.json`, + atom: `${author.link}.atom`, + }, + author, + copyright: user.name || user.username + }); + + for (const note of notes) { + const files = note.fileIds.length > 0 ? await DriveFiles.find({ + id: In(note.fileIds) + }) : []; + const file = files.find(file => file.type.startsWith('image/')); + + feed.addItem({ + title: `New note by ${author.name}`, + link: `${config.url}/notes/${note.id}`, + date: note.createdAt, + description: note.cw || undefined, + content: note.text || undefined, + image: file ? DriveFiles.getPublicUrl(file) || undefined : undefined + }); + } + + return feed; +} diff --git a/src/server/web/index.ts b/src/server/web/index.ts new file mode 100644 index 000000000..0bc9f242a --- /dev/null +++ b/src/server/web/index.ts @@ -0,0 +1,406 @@ +/** + * Web Client Server + */ + +import * as os from 'os'; +import * as fs from 'fs'; +import ms = require('ms'); +import * as Koa from 'koa'; +import * as Router from '@koa/router'; +import * as send from 'koa-send'; +import * as favicon from 'koa-favicon'; +import * as views from 'koa-views'; +import * as glob from 'glob'; +import * as MarkdownIt from 'markdown-it'; + +import packFeed from './feed'; +import { fetchMeta } from '../../misc/fetch-meta'; +import { genOpenapiSpec } from '../api/openapi/gen-spec'; +import config from '../../config'; +import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../../models'; +import parseAcct from '../../misc/acct/parse'; +import getNoteSummary from '../../misc/get-note-summary'; +import { ensure } from '../../prelude/ensure'; +import { getConnection } from 'typeorm'; +import redis from '../../db/redis'; +import locales = require('../../../locales'); + +const markdown = MarkdownIt({ + html: true +}); + +const client = `${__dirname}/../../client/`; + +// Init app +const app = new Koa(); + +// Init renderer +app.use(views(__dirname + '/views', { + extension: 'pug', + options: { + version: config.version, + config + } +})); + +// Serve favicon +app.use(favicon(`${__dirname}/../../../assets/favicon.png`)); + +// Common request handler +app.use(async (ctx, next) => { + // IFrameの中に入れられないようにする + ctx.set('X-Frame-Options', 'DENY'); + await next(); +}); + +// Init router +const router = new Router(); + +//#region static assets + +router.get('/assets/(.*)', async ctx => { + await send(ctx as any, ctx.path, { + root: client, + maxage: ms('7 days'), + }); +}); + +// Apple touch icon +router.get('/apple-touch-icon.png', async ctx => { + await send(ctx as any, '/assets/apple-touch-icon.png', { + root: client + }); +}); + +// ServiceWorker +router.get(/^\/sw\.(.+?)\.js$/, async ctx => { + await send(ctx as any, `/assets/sw.${ctx.params[0]}.js`, { + root: client + }); +}); + +// Manifest +router.get('/manifest.json', require('./manifest')); + +router.get('/robots.txt', async ctx => { + await send(ctx as any, '/assets/robots.txt', { + root: client + }); +}); + +//#endregion + +// Docs +router.get('/api-doc', async ctx => { + await send(ctx as any, '/assets/redoc.html', { + root: client + }); +}); + +// URL preview endpoint +router.get('/url', require('./url-preview')); + +router.get('/api.json', async ctx => { + ctx.body = genOpenapiSpec(); +}); + +router.get('/docs.json', async ctx => { + const lang = ctx.query.lang; + if (!Object.keys(locales).includes(lang)) { + ctx.body = []; + return; + } + const paths = glob.sync(__dirname + `/../../../src/docs/*.${lang}.md`); + const docs: { path: string; title: string; }[] = []; + for (const path of paths) { + const md = fs.readFileSync(path, { encoding: 'utf8' }); + const parsed = markdown.parse(md, {}); + if (parsed.length === 0) return; + + const buf = [...parsed]; + const headingTokens = []; + + // もっとも上にある見出しを抽出する + while (buf[0].type !== 'heading_open') { + buf.shift(); + } + buf.shift(); + while (buf[0].type as string !== 'heading_close') { + const token = buf.shift(); + if (token) { + headingTokens.push(token); + } + } + + docs.push({ + path: path.split('/').pop()!.split('.')[0], + title: markdown.renderer.render(headingTokens, {}, {}) + }); + } + + ctx.body = docs; +}); + +const getFeed = async (acct: string) => { + const { username, host } = parseAcct(acct); + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host, + isSuspended: false + }); + + return user && await packFeed(user); +}; + +// Atom +router.get('/@:user.atom', async ctx => { + const feed = await getFeed(ctx.params.user); + + if (feed) { + ctx.set('Content-Type', 'application/atom+xml; charset=utf-8'); + ctx.body = feed.atom1(); + } else { + ctx.status = 404; + } +}); + +// RSS +router.get('/@:user.rss', async ctx => { + const feed = await getFeed(ctx.params.user); + + if (feed) { + ctx.set('Content-Type', 'application/rss+xml; charset=utf-8'); + ctx.body = feed.rss2(); + } else { + ctx.status = 404; + } +}); + +// JSON +router.get('/@:user.json', async ctx => { + const feed = await getFeed(ctx.params.user); + + if (feed) { + ctx.set('Content-Type', 'application/json; charset=utf-8'); + ctx.body = feed.json1(); + } else { + ctx.status = 404; + } +}); + +//#region SSR (for crawlers) +// User +router.get(['/@:user', '/@:user/:sub'], async (ctx, next) => { + const { username, host } = parseAcct(ctx.params.user); + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host, + isSuspended: false + }); + + if (user != null) { + const profile = await UserProfiles.findOne(user.id).then(ensure); + const meta = await fetchMeta(); + const me = profile.fields + ? profile.fields + .filter(filed => filed.value != null && filed.value.match(/^https?:/)) + .map(field => field.value) + : []; + + await ctx.render('user', { + user, profile, me, + sub: ctx.params.sub, + instanceName: meta.name || 'Misskey', + icon: meta.iconUrl + }); + ctx.set('Cache-Control', 'public, max-age=30'); + } else { + // リモートユーザーなので + // モデレータがAPI経由で参照可能にするために404にはしない + await next(); + } +}); + +router.get('/users/:user', async ctx => { + const user = await Users.findOne({ + id: ctx.params.user, + host: null, + isSuspended: false + }); + + if (user == null) { + ctx.status = 404; + return; + } + + ctx.redirect(`/@${user.username}${ user.host == null ? '' : '@' + user.host}`); +}); + +// Note +router.get('/notes/:note', async ctx => { + const note = await Notes.findOne(ctx.params.note); + + if (note) { + const _note = await Notes.pack(note); + const meta = await fetchMeta(); + await ctx.render('note', { + note: _note, + // TODO: Let locale changeable by instance setting + summary: getNoteSummary(_note, locales['ja-JP']), + instanceName: meta.name || 'Misskey', + icon: meta.iconUrl + }); + + if (['public', 'home'].includes(note.visibility)) { + ctx.set('Cache-Control', 'public, max-age=180'); + } else { + ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); + } + + return; + } + + ctx.status = 404; +}); + +// Page +router.get('/@:user/pages/:page', async ctx => { + const { username, host } = parseAcct(ctx.params.user); + const user = await Users.findOne({ + usernameLower: username.toLowerCase(), + host + }); + + if (user == null) return; + + const page = await Pages.findOne({ + name: ctx.params.page, + userId: user.id + }); + + if (page) { + const _page = await Pages.pack(page); + const meta = await fetchMeta(); + await ctx.render('page', { + page: _page, + instanceName: meta.name || 'Misskey' + }); + + if (['public'].includes(page.visibility)) { + ctx.set('Cache-Control', 'public, max-age=180'); + } else { + ctx.set('Cache-Control', 'private, max-age=0, must-revalidate'); + } + + return; + } + + ctx.status = 404; +}); + +// Clip +// TODO: 非publicなclipのハンドリング +router.get('/clips/:clip', async ctx => { + const clip = await Clips.findOne({ + id: ctx.params.clip, + }); + + if (clip) { + const _clip = await Clips.pack(clip); + const meta = await fetchMeta(); + await ctx.render('clip', { + clip: _clip, + instanceName: meta.name || 'Misskey' + }); + + ctx.set('Cache-Control', 'public, max-age=180'); + + return; + } + + ctx.status = 404; +}); + +// Channel +router.get('/channels/:channel', async ctx => { + const channel = await Channels.findOne({ + id: ctx.params.channel, + }); + + if (channel) { + const _channel = await Channels.pack(channel); + const meta = await fetchMeta(); + await ctx.render('channel', { + channel: _channel, + instanceName: meta.name || 'Misskey' + }); + + ctx.set('Cache-Control', 'public, max-age=180'); + + return; + } + + ctx.status = 404; +}); +//#endregion + +router.get('/info', async ctx => { + const meta = await fetchMeta(true); + const emojis = await Emojis.find({ + where: { host: null } + }); + + const proxyAccount = meta.proxyAccountId ? await Users.pack(meta.proxyAccountId).catch(() => null) : null; + + await ctx.render('info', { + version: config.version, + machine: os.hostname(), + os: os.platform(), + node: process.version, + psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), + redis: redis.server_info.redis_version, + cpu: { + model: os.cpus()[0].model, + cores: os.cpus().length + }, + emojis: emojis, + meta: meta, + proxyAccountName: proxyAccount ? proxyAccount.username : null, + originalUsersCount: await Users.count({ host: null }), + originalNotesCount: await Notes.count({ userHost: null }) + }); +}); + +const override = (source: string, target: string, depth: number = 0) => + [, ...target.split('/').filter(x => x), ...source.split('/').filter(x => x).splice(depth)].join('/'); + +router.get('/othello', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games/reversi', 1))); +router.get('/reversi', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games'))); + +router.get('/flush', async ctx => { + await ctx.render('flush'); +}); + +// streamingに非WebSocketリクエストが来た場合にbase htmlをキャシュ付きで返すと、Proxy等でそのパスがキャッシュされておかしくなる +router.get('/streaming', async ctx => { + ctx.status = 503; + ctx.set('Cache-Control', 'private, max-age=0'); +}); + +// Render base html for all requests +router.get('(.*)', async ctx => { + const meta = await fetchMeta(); + await ctx.render('base', { + img: meta.bannerUrl, + title: meta.name || 'Misskey', + instanceName: meta.name || 'Misskey', + desc: meta.description, + icon: meta.iconUrl + }); + ctx.set('Cache-Control', 'public, max-age=300'); +}); + +// Register router +app.use(router.routes()); + +module.exports = app; diff --git a/src/server/web/manifest.ts b/src/server/web/manifest.ts new file mode 100644 index 000000000..36c901d26 --- /dev/null +++ b/src/server/web/manifest.ts @@ -0,0 +1,15 @@ +import * as Koa from 'koa'; +import * as manifest from '../../client/assets/manifest.json'; +import { fetchMeta } from '../../misc/fetch-meta'; + +module.exports = async (ctx: Koa.Context) => { + const json = JSON.parse(JSON.stringify(manifest)); + + const instance = await fetchMeta(true); + + json.short_name = instance.name || 'Misskey'; + json.name = instance.name || 'Misskey'; + + ctx.set('Cache-Control', 'max-age=300'); + ctx.body = json; +}; diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts new file mode 100644 index 000000000..4dae6baaf --- /dev/null +++ b/src/server/web/url-preview.ts @@ -0,0 +1,53 @@ +import * as Koa from 'koa'; +import summaly from 'summaly'; +import { fetchMeta } from '../../misc/fetch-meta'; +import Logger from '../../services/logger'; +import config from '../../config'; +import { query } from '../../prelude/url'; +import { getJson } from '../../misc/fetch'; + +const logger = new Logger('url-preview'); + +module.exports = async (ctx: Koa.Context) => { + const meta = await fetchMeta(); + + logger.info(meta.summalyProxy + ? `(Proxy) Getting preview of ${ctx.query.url}@${ctx.query.lang} ...` + : `Getting preview of ${ctx.query.url}@${ctx.query.lang} ...`); + + try { + const summary = meta.summalyProxy ? await getJson(`${meta.summalyProxy}?${query({ + url: ctx.query.url, + lang: ctx.query.lang || 'ja-JP' + })}`) : await summaly(ctx.query.url, { + followRedirects: false, + lang: ctx.query.lang || 'ja-JP' + }); + + logger.succ(`Got preview of ${ctx.query.url}: ${summary.title}`); + + summary.icon = wrap(summary.icon); + summary.thumbnail = wrap(summary.thumbnail); + + // Cache 7days + ctx.set('Cache-Control', 'max-age=604800, immutable'); + + ctx.body = summary; + } catch (e) { + logger.warn(`Failed to get preview of ${ctx.query.url}: ${e}`); + ctx.status = 200; + ctx.set('Cache-Control', 'max-age=86400, immutable'); + ctx.body = '{}'; + } +}; + +function wrap(url?: string): string | null { + return url != null + ? url.match(/^https?:\/\//) + ? `${config.url}/proxy/preview.jpg?${query({ + url, + preview: '1' + })}` + : url + : null; +} diff --git a/src/server/web/views/base.pug b/src/server/web/views/base.pug new file mode 100644 index 000000000..9652d29db --- /dev/null +++ b/src/server/web/views/base.pug @@ -0,0 +1,111 @@ +block vars + +doctype html + +!= '\n\n' + +html + + head + meta(charset='utf-8') + meta(name='application-name' content='Misskey') + meta(name='referrer' content='origin') + meta(name='theme-color' content='#86b300') + meta(name='theme-color-orig' content='#86b300') + meta(property='og:site_name' content= instanceName || 'Misskey') + meta(name='viewport' content='width=device-width, initial-scale=1') + link(rel='icon' href= icon || '/favicon.ico') + link(rel='apple-touch-icon' href= icon || '/apple-touch-icon.png') + link(rel='manifest' href='/manifest.json') + link(rel='prefetch' href='https://xn--931a.moe/assets/info.jpg') + link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg') + link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg') + + title + block title + = title || 'Misskey' + + block desc + meta(name='description' content= desc || '✨🌎✨ A federated blogging platform ✨🚀✨') + + block meta + + block og + meta(property='og:image' content=img) + + style. + html { + background-color: var(--bg); + color: var(--fg); + } + + #ini { + position: fixed; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + cursor: wait; + } + + #ini > svg { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 64px; + height: 64px; + animation: ini 0.6s infinite linear; + color: var(--accent); + fill: currentColor; + } + + @keyframes ini { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } + } + + script(src=`/assets/app.${version}.js` async defer) + script. + const theme = localStorage.getItem('theme'); + if (theme) { + for (const [k, v] of Object.entries(JSON.parse(theme))) { + document.documentElement.style.setProperty(`--${k}`, v.toString()); + if (k === 'htmlThemeColor') { + for (const tag of document.head.children) { + if (tag.tagName === 'META' && tag.getAttribute('name') === 'theme-color') { + tag.setAttribute('content', v); + break; + } + } + } + } + } + + const fontSize = localStorage.getItem('fontSize'); + if (fontSize) { + document.documentElement.classList.add('f-' + fontSize); + } + + const wallpaper = localStorage.getItem('wallpaper'); + if (wallpaper) { + document.documentElement.style.backgroundImage = `url(${wallpaper})`; + } + + body + noscript: p + | JavaScriptを有効にしてください + br + | Please turn on your JavaScript + div#ini. + + + + block content diff --git a/packages/backend/src/server/web/views/channel.pug b/src/server/web/views/channel.pug similarity index 89% rename from packages/backend/src/server/web/views/channel.pug rename to src/server/web/views/channel.pug index 486f0ecc4..273632f0e 100644 --- a/packages/backend/src/server/web/views/channel.pug +++ b/src/server/web/views/channel.pug @@ -16,3 +16,6 @@ block og meta(property='og:description' content= channel.description) meta(property='og:url' content= url) meta(property='og:image' content= channel.bannerUrl) + +block meta + meta(name='twitter:card' content='summary') diff --git a/packages/backend/src/server/web/views/clip.pug b/src/server/web/views/clip.pug similarity index 86% rename from packages/backend/src/server/web/views/clip.pug rename to src/server/web/views/clip.pug index 4c692bf59..8cd1c673e 100644 --- a/packages/backend/src/server/web/views/clip.pug +++ b/src/server/web/views/clip.pug @@ -16,16 +16,15 @@ block og meta(property='og:title' content= title) meta(property='og:description' content= clip.description) meta(property='og:url' content= url) - meta(property='og:image' content= avatarUrl) + meta(property='og:image' content= user.avatarUrl) block meta - if profile.noCrawle - meta(name='robots' content='noindex') - meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) meta(name='misskey:clip-id' content=clip.id) + meta(name='twitter:card' content='summary') + // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/src/server/web/views/flush.pug b/src/server/web/views/flush.pug new file mode 100644 index 000000000..59fed1f15 --- /dev/null +++ b/src/server/web/views/flush.pug @@ -0,0 +1,38 @@ +doctype html + +html + #msg + script. + const msg = document.getElementById('msg'); + + try { + localStorage.clear(); + message('localStorage cleared'); + + const delidb = indexedDB.deleteDatabase('MisskeyClient'); + delidb.onsuccess = () => message('indexedDB cleared'); + + if (navigator.serviceWorker.controller) { + navigator.serviceWorker.controller.postMessage('clear'); + navigator.serviceWorker.getRegistrations() + .then(registrations => { + return Promise.all(registrations.map(registration => registration.unregister())); + }) + .then(() => { + message('Success Flush! Please reopen Misskey.\n成功しました。Misskeyを開き直してください。'); + }) + .catch(e => { throw Error(e) }); + } else { + message('Success Flush! Please reopen Misskey.\n成功しました。Misskeyを開き直してください。'); + } + } catch (e) { + console.error(e); + message(`${e}¥n¥nFlush Failed. Please reopen Misskey.\n失敗しました。Misskeyを開き直してください。`); + setTimeout(() => { + location = '/'; + }, 10000) + } + + function message(text) { + msg.insertAdjacentHTML('beforeend', `

[${(new Date()).toString()}] ${text.replace(/¥n/g,'
')}

`) + } diff --git a/src/server/web/views/info.pug b/src/server/web/views/info.pug new file mode 100644 index 000000000..eed69fc99 --- /dev/null +++ b/src/server/web/views/info.pug @@ -0,0 +1,147 @@ +doctype html + +html + + head + meta(charset='utf-8') + meta(name='application-name' content='Misskey') + title Misskey + style. + html { + font-family: Roboto, HelveticaNeue, Arial, sans-serif; + } + + main { + max-width: 934px; + margin: 0 auto; + } + + header { + padding: 5px; + background: rgb(153, 153, 204); + border: 1px solid #000; + box-shadow: rgb(204, 204, 204) 1px 2px 3px; + } + header:after { + content: ''; + display: block; + clear: both; + } + + header > h1 { + float: left; + font-size: 2em; + } + + header > img { + float: right; + width: 220px; + } + + table { + margin: 1em 0; + width: 100%; + border-collapse: collapse; + box-shadow: rgb(204, 204, 204) 1px 2px 3px; + } + table tr th { + background-color: #ccf; + border: 1px solid #000; + width: 300px; + font-weight: bold; + padding: 4px 5px; + text-align: left; + } + table tr td { + background-color: #ddd; + border: 1px solid #000; + padding: 4px 5px; + } + + footer { + text-align: center; + } + + body + main + header + h1 Misskey Version #{version} + img(src='/assets/misskey-php-like-logo.png' alt='') + table + tr + th Instance + td= meta.name || 'Misskey' + tr + th Description + td= meta.description + tr + th Maintainer + td + = meta.maintainerName + | <#{meta.maintainerEmail}> + tr + th Proxy account name + td= proxyAccountName || '(none)' + tr + th System + td= os + tr + th Node version + td= node + tr + th PSQL version + td= psql + tr + th Redis version + td= redis + tr + th Machine + td= machine + tr + th CPU + td= cpu.model + tr + th Original users + td= originalUsersCount + tr + th Original notes + td= originalNotesCount + tr + th Registration + td= !meta.disableRegistration ? 'yes' : 'no' + tr + th hCaptcha enabled + td= meta.enableHcaptcha ? 'enabled' : 'disabled' + tr + th reCAPTCHA enabled + td= meta.enableRecaptcha ? 'enabled' : 'disabled' + tr + th LTL(STL) enabled + td= !meta.disableLocalTimeline ? 'enabled' : 'disabled' + tr + th GTL enabled + td= !meta.disableGlobalTimeline ? 'enabled' : 'disabled' + tr + th Cache remote files + td= meta.cacheRemoteFiles ? 'yes' : 'no' + tr + th Drive capacity per local user + td + = meta.localDriveCapacityMb + | MB + tr + th Drive capacity per remote user + td + = meta.remoteDriveCapacityMb + | MB + tr + th Max text length + td= meta.maxNoteTextLength + tr + th Emojis + td + each emoji in emojis + | :#{emoji.name}: + = ' ' + footer + p Misskey is open-source software. View source diff --git a/packages/backend/src/server/web/views/note.pug b/src/server/web/views/note.pug similarity index 84% rename from packages/backend/src/server/web/views/note.pug rename to src/server/web/views/note.pug index 65696ea13..0580e959f 100644 --- a/packages/backend/src/server/web/views/note.pug +++ b/src/server/web/views/note.pug @@ -4,7 +4,6 @@ block vars - const user = note.user; - const title = user.name ? `${user.name} (@${user.username})` : `@${user.username}`; - const url = `${config.url}/notes/${note.id}`; - - const isRenote = note.renote && note.text == null && note.fileIds.length == 0 && note.poll == null; block title = `${title} | ${instanceName}` @@ -17,17 +16,19 @@ block og meta(property='og:title' content= title) meta(property='og:description' content= summary) meta(property='og:url' content= url) - meta(property='og:image' content= avatarUrl) + meta(property='og:image' content= user.avatarUrl) block meta - if user.host || isRenote || profile.noCrawle - meta(name='robots' content='noindex') - meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) meta(name='misskey:note-id' content=note.id) - + + meta(name='twitter:card' content='summary') + // todo + if user.host + meta(name='robots' content='noindex') + if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/page.pug b/src/server/web/views/page.pug similarity index 87% rename from packages/backend/src/server/web/views/page.pug rename to src/server/web/views/page.pug index 4219e76a5..55f64ff05 100644 --- a/packages/backend/src/server/web/views/page.pug +++ b/src/server/web/views/page.pug @@ -16,16 +16,15 @@ block og meta(property='og:title' content= title) meta(property='og:description' content= page.summary) meta(property='og:url' content= url) - meta(property='og:image' content= page.eyeCatchingImage ? page.eyeCatchingImage.thumbnailUrl : avatarUrl) + meta(property='og:image' content= page.eyeCatchingImage ? page.eyeCatchingImage.thumbnailUrl : user.avatarUrl) block meta - if profile.noCrawle - meta(name='robots' content='noindex') - meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) meta(name='misskey:page-id' content=page.id) + meta(name='twitter:card' content='summary') + // todo if user.twitter meta(name='twitter:creator' content=`@${user.twitter.screenName}`) diff --git a/packages/backend/src/server/web/views/user.pug b/src/server/web/views/user.pug similarity index 88% rename from packages/backend/src/server/web/views/user.pug rename to src/server/web/views/user.pug index 119993fdb..d41b0bbac 100644 --- a/packages/backend/src/server/web/views/user.pug +++ b/src/server/web/views/user.pug @@ -3,6 +3,7 @@ extends ./base block vars - const title = user.name ? `${user.name} (@${user.username})` : `@${user.username}`; - const url = `${config.url}/@${(user.host ? `${user.username}@${user.host}` : user.username)}`; + - const img = user.avatarUrl || null; block title = `${title} | ${instanceName}` @@ -15,15 +16,17 @@ block og meta(property='og:title' content= title) meta(property='og:description' content= profile.description) meta(property='og:url' content= url) - meta(property='og:image' content= avatarUrl) + meta(property='og:image' content= img) block meta - if user.host || profile.noCrawle - meta(name='robots' content='noindex') - meta(name='misskey:user-username' content=user.username) meta(name='misskey:user-id' content=user.id) + meta(name='twitter:card' content='summary') + + if user.host + meta(name='robots' content='noindex') + if profile.twitter meta(name='twitter:creator' content=`@${profile.twitter.screenName}`) diff --git a/src/server/well-known.ts b/src/server/well-known.ts new file mode 100644 index 000000000..ff3c34625 --- /dev/null +++ b/src/server/well-known.ts @@ -0,0 +1,145 @@ +import * as Router from '@koa/router'; + +import config from '../config'; +import parseAcct from '../misc/acct/parse'; +import Acct from '../misc/acct/type'; +import { links } from './nodeinfo'; +import { escapeAttribute, escapeValue } from '../prelude/xml'; +import { Users } from '../models'; +import { User } from '../models/entities/user'; + +// Init router +const router = new Router(); + +const XRD = (...x: { element: string, value?: string, attributes?: Record }[]) => + `${x.map(({ element, value, attributes }) => + `<${ + Object.entries(typeof attributes === 'object' && attributes || {}).reduce((a, [k, v]) => `${a} ${k}="${escapeAttribute(v)}"`, element) + }${ + typeof value === 'string' ? `>${escapeValue(value)}`).reduce((a, c) => a + c, '')}`; + +const allPath = '/.well-known/(.*)'; +const webFingerPath = '/.well-known/webfinger'; +const jrd = 'application/jrd+json'; +const xrd = 'application/xrd+xml'; + +router.use(allPath, async (ctx, next) => { + ctx.set({ + 'Access-Control-Allow-Headers': 'Accept', + 'Access-Control-Allow-Methods': 'GET, OPTIONS', + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Expose-Headers': 'Vary', + }); + await next(); +}); + +router.options(allPath, async ctx => { + ctx.status = 204; +}); + +router.get('/.well-known/host-meta', async ctx => { + ctx.set('Content-Type', xrd); + ctx.body = XRD({ element: 'Link', attributes: { + type: xrd, + template: `${config.url}${webFingerPath}?resource={uri}` + }}); +}); + +router.get('/.well-known/host-meta.json', async ctx => { + ctx.set('Content-Type', jrd); + ctx.body = { + links: [{ + rel: 'lrdd', + type: jrd, + template: `${config.url}${webFingerPath}?resource={uri}` + }] + }; +}); + +router.get('/.well-known/nodeinfo', async ctx => { + ctx.body = { links }; +}); + +router.get(webFingerPath, async ctx => { + const fromId = (id: User['id']): Record => ({ + id, + host: null, + isSuspended: false + }); + + const generateQuery = (resource: string) => + resource.startsWith(`${config.url.toLowerCase()}/users/`) ? + fromId(resource.split('/').pop()!) : + fromAcct(parseAcct( + resource.startsWith(`${config.url.toLowerCase()}/@`) ? resource.split('/').pop()! : + resource.startsWith('acct:') ? resource.slice('acct:'.length) : + resource)); + + const fromAcct = (acct: Acct): Record | number => + !acct.host || acct.host === config.host.toLowerCase() ? { + usernameLower: acct.username, + host: null, + isSuspended: false + } : 422; + + if (typeof ctx.query.resource !== 'string') { + ctx.status = 400; + return; + } + + const query = generateQuery(ctx.query.resource.toLowerCase()); + + if (typeof query === 'number') { + ctx.status = query; + return; + } + + const user = await Users.findOne(query); + + if (user == null) { + ctx.status = 404; + return; + } + + const subject = `acct:${user.username}@${config.host}`; + const self = { + rel: 'self', + type: 'application/activity+json', + href: `${config.url}/users/${user.id}` + }; + const profilePage = { + rel: 'http://webfinger.net/rel/profile-page', + type: 'text/html', + href: `${config.url}/@${user.username}` + }; + const subscribe = { + rel: 'http://ostatus.org/schema/1.0/subscribe', + template: `${config.url}/authorize-follow?acct={uri}` + }; + + if (ctx.accepts(jrd, xrd) === xrd) { + ctx.body = XRD( + { element: 'Subject', value: subject }, + { element: 'Link', attributes: self }, + { element: 'Link', attributes: profilePage }, + { element: 'Link', attributes: subscribe }); + ctx.type = xrd; + } else { + ctx.body = { + subject, + links: [self, profilePage, subscribe] + }; + ctx.type = jrd; + } + + ctx.vary('Accept'); + ctx.set('Cache-Control', 'public, max-age=180'); +}); + +// Return 404 for other .well-known +router.all(allPath, async ctx => { + ctx.status = 404; +}); + +export default router; diff --git a/src/services/add-note-to-antenna.ts b/src/services/add-note-to-antenna.ts new file mode 100644 index 000000000..e486494c9 --- /dev/null +++ b/src/services/add-note-to-antenna.ts @@ -0,0 +1,55 @@ +import { Antenna } from '../models/entities/antenna'; +import { Note } from '../models/entities/note'; +import { AntennaNotes, Mutings, Notes } from '../models'; +import { genId } from '../misc/gen-id'; +import { isMutedUserRelated } from '../misc/is-muted-user-related'; +import { ensure } from '../prelude/ensure'; +import { publishAntennaStream, publishMainStream } from './stream'; +import { User } from '../models/entities/user'; + +export async function addNoteToAntenna(antenna: Antenna, note: Note, noteUser: User) { + // 通知しない設定になっているか、自分自身の投稿なら既読にする + const read = !antenna.notify || (antenna.userId === noteUser.id); + + AntennaNotes.save({ + id: genId(), + antennaId: antenna.id, + noteId: note.id, + read: read, + }); + + publishAntennaStream(antenna.id, 'note', note); + + if (!read) { + const mutings = await Mutings.find({ + where: { + muterId: antenna.userId + }, + select: ['muteeId'] + }); + + // Copy + const _note: Note = { + ...note + }; + + if (note.replyId != null) { + _note.reply = await Notes.findOne(note.replyId).then(ensure); + } + if (note.renoteId != null) { + _note.renote = await Notes.findOne(note.renoteId).then(ensure); + } + + if (isMutedUserRelated(_note, mutings.map(x => x.muteeId))) { + return; + } + + // 2秒経っても既読にならなかったら通知 + setTimeout(async () => { + const unread = await AntennaNotes.findOne({ antennaId: antenna.id, read: false }); + if (unread) { + publishMainStream(antenna.userId, 'unreadAntenna', antenna); + } + }, 2000); + } +} diff --git a/src/services/blocking/create.ts b/src/services/blocking/create.ts new file mode 100644 index 000000000..def4f3358 --- /dev/null +++ b/src/services/blocking/create.ts @@ -0,0 +1,108 @@ +import { publishMainStream } from '../stream'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderFollow from '../../remote/activitypub/renderer/follow'; +import renderUndo from '../../remote/activitypub/renderer/undo'; +import renderBlock from '../../remote/activitypub/renderer/block'; +import { deliver } from '../../queue'; +import renderReject from '../../remote/activitypub/renderer/reject'; +import { User } from '../../models/entities/user'; +import { Blockings, Users, FollowRequests, Followings } from '../../models'; +import { perUserFollowingChart } from '../chart'; +import { genId } from '../../misc/gen-id'; + +export default async function(blocker: User, blockee: User) { + await Promise.all([ + cancelRequest(blocker, blockee), + cancelRequest(blockee, blocker), + unFollow(blocker, blockee), + unFollow(blockee, blocker) + ]); + + await Blockings.save({ + id: genId(), + createdAt: new Date(), + blockerId: blocker.id, + blockeeId: blockee.id, + }); + + if (Users.isLocalUser(blocker) && Users.isRemoteUser(blockee)) { + const content = renderActivity(renderBlock(blocker, blockee)); + deliver(blocker, content, blockee.inbox); + } +} + +async function cancelRequest(follower: User, followee: User) { + const request = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + if (request == null) { + return; + } + + await FollowRequests.delete({ + followeeId: followee.id, + followerId: follower.id + }); + + if (Users.isLocalUser(followee)) { + Users.pack(followee, followee, { + detail: true + }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); + } + + if (Users.isLocalUser(follower)) { + Users.pack(followee, follower, { + detail: true + }).then(packed => publishMainStream(follower.id, 'unfollow', packed)); + } + + // リモートにフォローリクエストをしていたらUndoFollow送信 + if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); + deliver(follower, content, followee.inbox); + } + + // リモートからフォローリクエストを受けていたらReject送信 + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + const content = renderActivity(renderReject(renderFollow(follower, followee, request.requestId!), followee)); + deliver(followee, content, follower.inbox); + } +} + +async function unFollow(follower: User, followee: User) { + const following = await Followings.findOne({ + followerId: follower.id, + followeeId: followee.id + }); + + if (following == null) { + return; + } + + Followings.delete(following.id); + + //#region Decrement following count + Users.decrement({ id: follower.id }, 'followingCount', 1); + //#endregion + + //#region Decrement followers count + Users.decrement({ id: followee.id }, 'followersCount', 1); + //#endregion + + perUserFollowingChart.update(follower, followee, false); + + // Publish unfollow event + if (Users.isLocalUser(follower)) { + Users.pack(followee, follower, { + detail: true + }).then(packed => publishMainStream(follower.id, 'unfollow', packed)); + } + + // リモートにフォローをしていたらUndoFollow送信 + if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); + deliver(follower, content, followee.inbox); + } +} diff --git a/src/services/blocking/delete.ts b/src/services/blocking/delete.ts new file mode 100644 index 000000000..2c05cb7f3 --- /dev/null +++ b/src/services/blocking/delete.ts @@ -0,0 +1,29 @@ +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderBlock from '../../remote/activitypub/renderer/block'; +import renderUndo from '../../remote/activitypub/renderer/undo'; +import { deliver } from '../../queue'; +import Logger from '../logger'; +import { User } from '../../models/entities/user'; +import { Blockings, Users } from '../../models'; + +const logger = new Logger('blocking/delete'); + +export default async function(blocker: User, blockee: User) { + const blocking = await Blockings.findOne({ + blockerId: blocker.id, + blockeeId: blockee.id + }); + + if (blocking == null) { + logger.warn('ブロック解除がリクエストされましたがブロックしていませんでした'); + return; + } + + Blockings.delete(blocking.id); + + // deliver if remote bloking + if (Users.isLocalUser(blocker) && Users.isRemoteUser(blockee)) { + const content = renderActivity(renderUndo(renderBlock(blocker, blockee), blocker)); + deliver(blocker, content, blockee.inbox); + } +} diff --git a/src/services/chart/charts/classes/active-users.ts b/src/services/chart/charts/classes/active-users.ts new file mode 100644 index 000000000..5128150de --- /dev/null +++ b/src/services/chart/charts/classes/active-users.ts @@ -0,0 +1,35 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { User } from '../../../../models/entities/user'; +import { SchemaType } from '../../../../misc/schema'; +import { Users } from '../../../../models'; +import { name, schema } from '../schemas/active-users'; + +type ActiveUsersLog = SchemaType; + +export default class ActiveUsersChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: ActiveUsersLog): DeepPartial { + return {}; + } + + @autobind + protected async fetchActual(): Promise> { + return {}; + } + + @autobind + public async update(user: User) { + const update: Obj = { + count: 1 + }; + + await this.incIfUnique({ + [Users.isLocalUser(user) ? 'local' : 'remote']: update + }, 'users', user.id); + } +} diff --git a/src/services/chart/charts/classes/drive.ts b/src/services/chart/charts/classes/drive.ts new file mode 100644 index 000000000..c3bcacb7d --- /dev/null +++ b/src/services/chart/charts/classes/drive.ts @@ -0,0 +1,69 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { DriveFiles } from '../../../../models'; +import { Not, IsNull } from 'typeorm'; +import { DriveFile } from '../../../../models/entities/drive-file'; +import { name, schema } from '../schemas/drive'; + +type DriveLog = SchemaType; + +export default class DriveChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: DriveLog): DeepPartial { + return { + local: { + totalCount: latest.local.totalCount, + totalSize: latest.local.totalSize, + }, + remote: { + totalCount: latest.remote.totalCount, + totalSize: latest.remote.totalSize, + } + }; + } + + @autobind + protected async fetchActual(): Promise> { + const [localCount, remoteCount, localSize, remoteSize] = await Promise.all([ + DriveFiles.count({ userHost: null }), + DriveFiles.count({ userHost: Not(IsNull()) }), + DriveFiles.clacDriveUsageOfLocal(), + DriveFiles.clacDriveUsageOfRemote() + ]); + + return { + local: { + totalCount: localCount, + totalSize: localSize, + }, + remote: { + totalCount: remoteCount, + totalSize: remoteSize, + } + }; + } + + @autobind + public async update(file: DriveFile, isAdditional: boolean) { + const update: Obj = {}; + + update.totalCount = isAdditional ? 1 : -1; + update.totalSize = isAdditional ? file.size : -file.size; + if (isAdditional) { + update.incCount = 1; + update.incSize = file.size; + } else { + update.decCount = 1; + update.decSize = file.size; + } + + await this.inc({ + [file.userHost === null ? 'local' : 'remote']: update + }); + } +} diff --git a/src/services/chart/charts/classes/federation.ts b/src/services/chart/charts/classes/federation.ts new file mode 100644 index 000000000..bd2c497e7 --- /dev/null +++ b/src/services/chart/charts/classes/federation.ts @@ -0,0 +1,51 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { Instances } from '../../../../models'; +import { name, schema } from '../schemas/federation'; + +type FederationLog = SchemaType; + +export default class FederationChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: FederationLog): DeepPartial { + return { + instance: { + total: latest.instance.total, + } + }; + } + + @autobind + protected async fetchActual(): Promise> { + const [total] = await Promise.all([ + Instances.count({}) + ]); + + return { + instance: { + total: total, + } + }; + } + + @autobind + public async update(isAdditional: boolean) { + const update: Obj = {}; + + update.total = isAdditional ? 1 : -1; + if (isAdditional) { + update.inc = 1; + } else { + update.dec = 1; + } + + await this.inc({ + instance: update + }); + } +} diff --git a/src/services/chart/charts/classes/hashtag.ts b/src/services/chart/charts/classes/hashtag.ts new file mode 100644 index 000000000..38c3a94f0 --- /dev/null +++ b/src/services/chart/charts/classes/hashtag.ts @@ -0,0 +1,35 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { User } from '../../../../models/entities/user'; +import { SchemaType } from '../../../../misc/schema'; +import { Users } from '../../../../models'; +import { name, schema } from '../schemas/hashtag'; + +type HashtagLog = SchemaType; + +export default class HashtagChart extends Chart { + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: HashtagLog): DeepPartial { + return {}; + } + + @autobind + protected async fetchActual(): Promise> { + return {}; + } + + @autobind + public async update(hashtag: string, user: User) { + const update: Obj = { + count: 1 + }; + + await this.incIfUnique({ + [Users.isLocalUser(user) ? 'local' : 'remote']: update + }, 'users', user.id, hashtag); + } +} diff --git a/src/services/chart/charts/classes/instance.ts b/src/services/chart/charts/classes/instance.ts new file mode 100644 index 000000000..f3d341f38 --- /dev/null +++ b/src/services/chart/charts/classes/instance.ts @@ -0,0 +1,173 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { DriveFiles, Followings, Users, Notes } from '../../../../models'; +import { DriveFile } from '../../../../models/entities/drive-file'; +import { name, schema } from '../schemas/instance'; +import { Note } from '../../../../models/entities/note'; +import { toPuny } from '../../../../misc/convert-host'; + +type InstanceLog = SchemaType; + +export default class InstanceChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: InstanceLog): DeepPartial { + return { + notes: { + total: latest.notes.total, + }, + users: { + total: latest.users.total, + }, + following: { + total: latest.following.total, + }, + followers: { + total: latest.followers.total, + }, + drive: { + totalFiles: latest.drive.totalFiles, + totalUsage: latest.drive.totalUsage, + } + }; + } + + @autobind + protected async fetchActual(group: string): Promise> { + const [ + notesCount, + usersCount, + followingCount, + followersCount, + driveFiles, + driveUsage, + ] = await Promise.all([ + Notes.count({ userHost: group }), + Users.count({ host: group }), + Followings.count({ followerHost: group }), + Followings.count({ followeeHost: group }), + DriveFiles.count({ userHost: group }), + DriveFiles.clacDriveUsageOfHost(group), + ]); + + return { + notes: { + total: notesCount, + }, + users: { + total: usersCount, + }, + following: { + total: followingCount, + }, + followers: { + total: followersCount, + }, + drive: { + totalFiles: driveFiles, + totalUsage: driveUsage, + } + }; + } + + @autobind + public async requestReceived(host: string) { + await this.inc({ + requests: { + received: 1 + } + }, toPuny(host)); + } + + @autobind + public async requestSent(host: string, isSucceeded: boolean) { + const update: Obj = {}; + + if (isSucceeded) { + update.succeeded = 1; + } else { + update.failed = 1; + } + + await this.inc({ + requests: update + }, toPuny(host)); + } + + @autobind + public async newUser(host: string) { + await this.inc({ + users: { + total: 1, + inc: 1 + } + }, toPuny(host)); + } + + @autobind + public async updateNote(host: string, note: Note, isAdditional: boolean) { + const diffs = {} as any; + + if (note.replyId != null) { + diffs.reply = isAdditional ? 1 : -1; + } else if (note.renoteId != null) { + diffs.renote = isAdditional ? 1 : -1; + } else { + diffs.normal = isAdditional ? 1 : -1; + } + + await this.inc({ + notes: { + total: isAdditional ? 1 : -1, + inc: isAdditional ? 1 : 0, + dec: isAdditional ? 0 : 1, + diffs: diffs + } + }, toPuny(host)); + } + + @autobind + public async updateFollowing(host: string, isAdditional: boolean) { + await this.inc({ + following: { + total: isAdditional ? 1 : -1, + inc: isAdditional ? 1 : 0, + dec: isAdditional ? 0 : 1, + } + }, toPuny(host)); + } + + @autobind + public async updateFollowers(host: string, isAdditional: boolean) { + await this.inc({ + followers: { + total: isAdditional ? 1 : -1, + inc: isAdditional ? 1 : 0, + dec: isAdditional ? 0 : 1, + } + }, toPuny(host)); + } + + @autobind + public async updateDrive(file: DriveFile, isAdditional: boolean) { + const update: Obj = {}; + + update.totalFiles = isAdditional ? 1 : -1; + update.totalUsage = isAdditional ? file.size : -file.size; + if (isAdditional) { + update.incFiles = 1; + update.incUsage = file.size; + } else { + update.decFiles = 1; + update.decUsage = file.size; + } + + await this.inc({ + drive: update + }, file.userHost); + } +} diff --git a/src/services/chart/charts/classes/network.ts b/src/services/chart/charts/classes/network.ts new file mode 100644 index 000000000..8b26e5c4c --- /dev/null +++ b/src/services/chart/charts/classes/network.ts @@ -0,0 +1,34 @@ +import autobind from 'autobind-decorator'; +import Chart, { DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { name, schema } from '../schemas/network'; + +type NetworkLog = SchemaType; + +export default class NetworkChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: NetworkLog): DeepPartial { + return {}; + } + + @autobind + protected async fetchActual(): Promise> { + return {}; + } + + @autobind + public async update(incomingRequests: number, time: number, incomingBytes: number, outgoingBytes: number) { + const inc: DeepPartial = { + incomingRequests: incomingRequests, + totalTime: time, + incomingBytes: incomingBytes, + outgoingBytes: outgoingBytes + }; + + await this.inc(inc); + } +} diff --git a/src/services/chart/charts/classes/notes.ts b/src/services/chart/charts/classes/notes.ts new file mode 100644 index 000000000..815061c44 --- /dev/null +++ b/src/services/chart/charts/classes/notes.ts @@ -0,0 +1,71 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { Notes } from '../../../../models'; +import { Not, IsNull } from 'typeorm'; +import { Note } from '../../../../models/entities/note'; +import { name, schema } from '../schemas/notes'; + +type NotesLog = SchemaType; + +export default class NotesChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: NotesLog): DeepPartial { + return { + local: { + total: latest.local.total, + }, + remote: { + total: latest.remote.total, + } + }; + } + + @autobind + protected async fetchActual(): Promise> { + const [localCount, remoteCount] = await Promise.all([ + Notes.count({ userHost: null }), + Notes.count({ userHost: Not(IsNull()) }) + ]); + + return { + local: { + total: localCount, + }, + remote: { + total: remoteCount, + } + }; + } + + @autobind + public async update(note: Note, isAdditional: boolean) { + const update: Obj = { + diffs: {} + }; + + update.total = isAdditional ? 1 : -1; + + if (isAdditional) { + update.inc = 1; + } else { + update.dec = 1; + } + + if (note.replyId != null) { + update.diffs.reply = isAdditional ? 1 : -1; + } else if (note.renoteId != null) { + update.diffs.renote = isAdditional ? 1 : -1; + } else { + update.diffs.normal = isAdditional ? 1 : -1; + } + + await this.inc({ + [note.userHost === null ? 'local' : 'remote']: update + }); + } +} diff --git a/src/services/chart/charts/classes/per-user-drive.ts b/src/services/chart/charts/classes/per-user-drive.ts new file mode 100644 index 000000000..822f4eda0 --- /dev/null +++ b/src/services/chart/charts/classes/per-user-drive.ts @@ -0,0 +1,52 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { DriveFiles } from '../../../../models'; +import { DriveFile } from '../../../../models/entities/drive-file'; +import { name, schema } from '../schemas/per-user-drive'; + +type PerUserDriveLog = SchemaType; + +export default class PerUserDriveChart extends Chart { + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: PerUserDriveLog): DeepPartial { + return { + totalCount: latest.totalCount, + totalSize: latest.totalSize, + }; + } + + @autobind + protected async fetchActual(group: string): Promise> { + const [count, size] = await Promise.all([ + DriveFiles.count({ userId: group }), + DriveFiles.clacDriveUsageOf(group) + ]); + + return { + totalCount: count, + totalSize: size, + }; + } + + @autobind + public async update(file: DriveFile, isAdditional: boolean) { + const update: Obj = {}; + + update.totalCount = isAdditional ? 1 : -1; + update.totalSize = isAdditional ? file.size : -file.size; + if (isAdditional) { + update.incCount = 1; + update.incSize = file.size; + } else { + update.decCount = 1; + update.decSize = file.size; + } + + await this.inc(update, file.userId); + } +} diff --git a/src/services/chart/charts/classes/per-user-following.ts b/src/services/chart/charts/classes/per-user-following.ts new file mode 100644 index 000000000..8295c0cb0 --- /dev/null +++ b/src/services/chart/charts/classes/per-user-following.ts @@ -0,0 +1,91 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { Followings, Users } from '../../../../models'; +import { Not, IsNull } from 'typeorm'; +import { User } from '../../../../models/entities/user'; +import { name, schema } from '../schemas/per-user-following'; + +type PerUserFollowingLog = SchemaType; + +export default class PerUserFollowingChart extends Chart { + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: PerUserFollowingLog): DeepPartial { + return { + local: { + followings: { + total: latest.local.followings.total, + }, + followers: { + total: latest.local.followers.total, + } + }, + remote: { + followings: { + total: latest.remote.followings.total, + }, + followers: { + total: latest.remote.followers.total, + } + } + }; + } + + @autobind + protected async fetchActual(group: string): Promise> { + const [ + localFollowingsCount, + localFollowersCount, + remoteFollowingsCount, + remoteFollowersCount + ] = await Promise.all([ + Followings.count({ followerId: group, followeeHost: null }), + Followings.count({ followeeId: group, followerHost: null }), + Followings.count({ followerId: group, followeeHost: Not(IsNull()) }), + Followings.count({ followeeId: group, followerHost: Not(IsNull()) }) + ]); + + return { + local: { + followings: { + total: localFollowingsCount, + }, + followers: { + total: localFollowersCount, + } + }, + remote: { + followings: { + total: remoteFollowingsCount, + }, + followers: { + total: remoteFollowersCount, + } + } + }; + } + + @autobind + public async update(follower: User, followee: User, isFollow: boolean) { + const update: Obj = {}; + + update.total = isFollow ? 1 : -1; + + if (isFollow) { + update.inc = 1; + } else { + update.dec = 1; + } + + this.inc({ + [Users.isLocalUser(follower) ? 'local' : 'remote']: { followings: update } + }, follower.id); + this.inc({ + [Users.isLocalUser(followee) ? 'local' : 'remote']: { followers: update } + }, followee.id); + } +} diff --git a/src/services/chart/charts/classes/per-user-notes.ts b/src/services/chart/charts/classes/per-user-notes.ts new file mode 100644 index 000000000..cccd49560 --- /dev/null +++ b/src/services/chart/charts/classes/per-user-notes.ts @@ -0,0 +1,58 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { User } from '../../../../models/entities/user'; +import { SchemaType } from '../../../../misc/schema'; +import { Notes } from '../../../../models'; +import { Note } from '../../../../models/entities/note'; +import { name, schema } from '../schemas/per-user-notes'; + +type PerUserNotesLog = SchemaType; + +export default class PerUserNotesChart extends Chart { + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: PerUserNotesLog): DeepPartial { + return { + total: latest.total, + }; + } + + @autobind + protected async fetchActual(group: string): Promise> { + const [count] = await Promise.all([ + Notes.count({ userId: group }), + ]); + + return { + total: count, + }; + } + + @autobind + public async update(user: User, note: Note, isAdditional: boolean) { + const update: Obj = { + diffs: {} + }; + + update.total = isAdditional ? 1 : -1; + + if (isAdditional) { + update.inc = 1; + } else { + update.dec = 1; + } + + if (note.replyId != null) { + update.diffs.reply = isAdditional ? 1 : -1; + } else if (note.renoteId != null) { + update.diffs.renote = isAdditional ? 1 : -1; + } else { + update.diffs.normal = isAdditional ? 1 : -1; + } + + await this.inc(update, user.id); + } +} diff --git a/src/services/chart/charts/classes/per-user-reactions.ts b/src/services/chart/charts/classes/per-user-reactions.ts new file mode 100644 index 000000000..124fb4153 --- /dev/null +++ b/src/services/chart/charts/classes/per-user-reactions.ts @@ -0,0 +1,32 @@ +import autobind from 'autobind-decorator'; +import Chart, { DeepPartial } from '../../core'; +import { User } from '../../../../models/entities/user'; +import { Note } from '../../../../models/entities/note'; +import { SchemaType } from '../../../../misc/schema'; +import { Users } from '../../../../models'; +import { name, schema } from '../schemas/per-user-reactions'; + +type PerUserReactionsLog = SchemaType; + +export default class PerUserReactionsChart extends Chart { + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: PerUserReactionsLog): DeepPartial { + return {}; + } + + @autobind + protected async fetchActual(group: string): Promise> { + return {}; + } + + @autobind + public async update(user: User, note: Note) { + this.inc({ + [Users.isLocalUser(user) ? 'local' : 'remote']: { count: 1 } + }, note.userId); + } +} diff --git a/src/services/chart/charts/classes/test-grouped.ts b/src/services/chart/charts/classes/test-grouped.ts new file mode 100644 index 000000000..e32cbcf41 --- /dev/null +++ b/src/services/chart/charts/classes/test-grouped.ts @@ -0,0 +1,47 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { name, schema } from '../schemas/test-grouped'; + +type TestGroupedLog = SchemaType; + +export default class TestGroupedChart extends Chart { + private total = {} as Record; + + constructor() { + super(name, schema, true); + } + + @autobind + protected genNewLog(latest: TestGroupedLog): DeepPartial { + return { + foo: { + total: latest.foo.total, + }, + }; + } + + @autobind + protected async fetchActual(group: string): Promise> { + return { + foo: { + total: this.total[group], + }, + }; + } + + @autobind + public async increment(group: string) { + if (this.total[group] == null) this.total[group] = 0; + + const update: Obj = {}; + + update.total = 1; + update.inc = 1; + this.total[group]++; + + await this.inc({ + foo: update + }, group); + } +} diff --git a/src/services/chart/charts/classes/test-unique.ts b/src/services/chart/charts/classes/test-unique.ts new file mode 100644 index 000000000..1eb396c29 --- /dev/null +++ b/src/services/chart/charts/classes/test-unique.ts @@ -0,0 +1,29 @@ +import autobind from 'autobind-decorator'; +import Chart, { DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { name, schema } from '../schemas/test-unique'; + +type TestUniqueLog = SchemaType; + +export default class TestUniqueChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: TestUniqueLog): DeepPartial { + return {}; + } + + @autobind + protected async fetchActual(): Promise> { + return {}; + } + + @autobind + public async uniqueIncrement(key: string) { + await this.incIfUnique({ + foo: 1 + }, 'foos', key); + } +} diff --git a/src/services/chart/charts/classes/test.ts b/src/services/chart/charts/classes/test.ts new file mode 100644 index 000000000..ea64040f3 --- /dev/null +++ b/src/services/chart/charts/classes/test.ts @@ -0,0 +1,58 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { name, schema } from '../schemas/test'; + +type TestLog = SchemaType; + +export default class TestChart extends Chart { + public total = 0; // publicにするのはテストのため + + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: TestLog): DeepPartial { + return { + foo: { + total: latest.foo.total, + }, + }; + } + + @autobind + protected async fetchActual(): Promise> { + return { + foo: { + total: this.total, + }, + }; + } + + @autobind + public async increment() { + const update: Obj = {}; + + update.total = 1; + update.inc = 1; + this.total++; + + await this.inc({ + foo: update + }); + } + + @autobind + public async decrement() { + const update: Obj = {}; + + update.total = -1; + update.dec = 1; + this.total--; + + await this.inc({ + foo: update + }); + } +} diff --git a/src/services/chart/charts/classes/users.ts b/src/services/chart/charts/classes/users.ts new file mode 100644 index 000000000..47e4caa1b --- /dev/null +++ b/src/services/chart/charts/classes/users.ts @@ -0,0 +1,60 @@ +import autobind from 'autobind-decorator'; +import Chart, { Obj, DeepPartial } from '../../core'; +import { SchemaType } from '../../../../misc/schema'; +import { Users } from '../../../../models'; +import { Not, IsNull } from 'typeorm'; +import { User } from '../../../../models/entities/user'; +import { name, schema } from '../schemas/users'; + +type UsersLog = SchemaType; + +export default class UsersChart extends Chart { + constructor() { + super(name, schema); + } + + @autobind + protected genNewLog(latest: UsersLog): DeepPartial { + return { + local: { + total: latest.local.total, + }, + remote: { + total: latest.remote.total, + } + }; + } + + @autobind + protected async fetchActual(): Promise> { + const [localCount, remoteCount] = await Promise.all([ + Users.count({ host: null }), + Users.count({ host: Not(IsNull()) }) + ]); + + return { + local: { + total: localCount, + }, + remote: { + total: remoteCount, + } + }; + } + + @autobind + public async update(user: User, isAdditional: boolean) { + const update: Obj = {}; + + update.total = isAdditional ? 1 : -1; + if (isAdditional) { + update.inc = 1; + } else { + update.dec = 1; + } + + await this.inc({ + [Users.isLocalUser(user) ? 'local' : 'remote']: update + }); + } +} diff --git a/src/services/chart/charts/schemas/active-users.ts b/src/services/chart/charts/schemas/active-users.ts new file mode 100644 index 000000000..6e26bb469 --- /dev/null +++ b/src/services/chart/charts/schemas/active-users.ts @@ -0,0 +1,32 @@ +export const logSchema = { + /** + * アクティブユーザー数 + */ + count: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'アクティブユーザー数', + }, +}; + +/** + * アクティブユーザーに関するチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'activeUsers'; diff --git a/src/services/chart/charts/schemas/drive.ts b/src/services/chart/charts/schemas/drive.ts new file mode 100644 index 000000000..dcc50df8c --- /dev/null +++ b/src/services/chart/charts/schemas/drive.ts @@ -0,0 +1,74 @@ +const logSchema = { + /** + * 集計期間時点での、全ドライブファイル数 + */ + totalCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイル数' + }, + + /** + * 集計期間時点での、全ドライブファイルの合計サイズ + */ + totalSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイルの合計サイズ' + }, + + /** + * 増加したドライブファイル数 + */ + incCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブファイル数' + }, + + /** + * 増加したドライブ使用量 + */ + incSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブ使用量' + }, + + /** + * 減少したドライブファイル数 + */ + decCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブファイル数' + }, + + /** + * 減少したドライブ使用量 + */ + decSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブ使用量' + }, +}; + +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'drive'; diff --git a/src/services/chart/charts/schemas/federation.ts b/src/services/chart/charts/schemas/federation.ts new file mode 100644 index 000000000..2f2d22c0d --- /dev/null +++ b/src/services/chart/charts/schemas/federation.ts @@ -0,0 +1,32 @@ +/** + * フェデレーションに関するチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + instance: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'インスタンス数の合計' + }, + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加インスタンス数' + }, + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少インスタンス数' + }, + } + } + } +}; + +export const name = 'federation'; diff --git a/src/services/chart/charts/schemas/hashtag.ts b/src/services/chart/charts/schemas/hashtag.ts new file mode 100644 index 000000000..4dfd61c97 --- /dev/null +++ b/src/services/chart/charts/schemas/hashtag.ts @@ -0,0 +1,32 @@ +export const logSchema = { + /** + * 投稿された数 + */ + count: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '投稿された数', + }, +}; + +/** + * ハッシュタグに関するチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'hashtag'; diff --git a/src/services/chart/charts/schemas/instance.ts b/src/services/chart/charts/schemas/instance.ts new file mode 100644 index 000000000..d2152a4ae --- /dev/null +++ b/src/services/chart/charts/schemas/instance.ts @@ -0,0 +1,181 @@ +/** + * インスタンスごとのチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + requests: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + failed: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '失敗したリクエスト数' + }, + succeeded: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '成功したリクエスト数' + }, + received: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '受信したリクエスト数' + }, + } + }, + + notes: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全投稿数' + }, + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加した投稿数' + }, + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少した投稿数' + }, + + diffs: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + normal: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '通常の投稿数の差分' + }, + + reply: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'リプライの投稿数の差分' + }, + + renote: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Renoteの投稿数の差分' + }, + } + }, + } + }, + + users: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ユーザー数' + }, + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したユーザー数' + }, + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したユーザー数' + }, + } + }, + + following: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全フォロー数' + }, + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したフォロー数' + }, + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したフォロー数' + }, + } + }, + + followers: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全フォロワー数' + }, + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したフォロワー数' + }, + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したフォロワー数' + }, + } + }, + + drive: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + totalFiles: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイル数' + }, + totalUsage: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイルの合計サイズ' + }, + incFiles: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブファイル数' + }, + incUsage: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブ使用量' + }, + decFiles: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブファイル数' + }, + decUsage: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブ使用量' + }, + } + }, + } +}; + +export const name = 'instance'; diff --git a/src/services/chart/charts/schemas/network.ts b/src/services/chart/charts/schemas/network.ts new file mode 100644 index 000000000..30123c5d9 --- /dev/null +++ b/src/services/chart/charts/schemas/network.ts @@ -0,0 +1,36 @@ +/** + * ネットワークに関するチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + incomingRequests: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '受信したリクエスト数' + }, + outgoingRequests: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '送信したリクエスト数' + }, + totalTime: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '応答時間の合計' // TIP: (totalTime / incomingRequests) でひとつのリクエストに平均でどれくらいの時間がかかったか知れる + }, + incomingBytes: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '合計受信データ量' + }, + outgoingBytes: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '合計送信データ量' + }, + } +}; + +export const name = 'network'; diff --git a/src/services/chart/charts/schemas/notes.ts b/src/services/chart/charts/schemas/notes.ts new file mode 100644 index 000000000..6dbf321b7 --- /dev/null +++ b/src/services/chart/charts/schemas/notes.ts @@ -0,0 +1,62 @@ +const logSchema = { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全投稿数' + }, + + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加した投稿数' + }, + + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少した投稿数' + }, + + diffs: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + normal: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '通常の投稿数の差分' + }, + + reply: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'リプライの投稿数の差分' + }, + + renote: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Renoteの投稿数の差分' + }, + } + }, +}; + +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'notes'; diff --git a/src/services/chart/charts/schemas/per-user-drive.ts b/src/services/chart/charts/schemas/per-user-drive.ts new file mode 100644 index 000000000..21312e82d --- /dev/null +++ b/src/services/chart/charts/schemas/per-user-drive.ts @@ -0,0 +1,61 @@ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + /** + * 集計期間時点での、全ドライブファイル数 + */ + totalCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイル数' + }, + + /** + * 集計期間時点での、全ドライブファイルの合計サイズ + */ + totalSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ドライブファイルの合計サイズ' + }, + + /** + * 増加したドライブファイル数 + */ + incCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブファイル数' + }, + + /** + * 増加したドライブ使用量 + */ + incSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したドライブ使用量' + }, + + /** + * 減少したドライブファイル数 + */ + decCount: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブファイル数' + }, + + /** + * 減少したドライブ使用量 + */ + decSize: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したドライブ使用量' + }, + } +}; + +export const name = 'perUserDrive'; diff --git a/src/services/chart/charts/schemas/per-user-following.ts b/src/services/chart/charts/schemas/per-user-following.ts new file mode 100644 index 000000000..dffd9c257 --- /dev/null +++ b/src/services/chart/charts/schemas/per-user-following.ts @@ -0,0 +1,92 @@ +export const logSchema = { + /** + * フォローしている + */ + followings: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + /** + * フォローしている合計 + */ + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォローしている合計', + }, + + /** + * フォローした数 + */ + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォローした数', + }, + + /** + * フォロー解除した数 + */ + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォロー解除した数', + }, + } + }, + + /** + * フォローされている + */ + followers: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + /** + * フォローされている合計 + */ + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォローされている合計', + }, + + /** + * フォローされた数 + */ + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォローされた数', + }, + + /** + * フォロー解除された数 + */ + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'フォロー解除された数', + }, + } + }, +}; + +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'perUserFollowing'; diff --git a/src/services/chart/charts/schemas/per-user-notes.ts b/src/services/chart/charts/schemas/per-user-notes.ts new file mode 100644 index 000000000..778f498c6 --- /dev/null +++ b/src/services/chart/charts/schemas/per-user-notes.ts @@ -0,0 +1,49 @@ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全投稿数' + }, + + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加した投稿数' + }, + + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少した投稿数' + }, + + diffs: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + normal: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '通常の投稿数の差分' + }, + + reply: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'リプライの投稿数の差分' + }, + + renote: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'Renoteの投稿数の差分' + }, + } + }, + } +}; + +export const name = 'perUserNotes'; diff --git a/src/services/chart/charts/schemas/per-user-reactions.ts b/src/services/chart/charts/schemas/per-user-reactions.ts new file mode 100644 index 000000000..d103124cc --- /dev/null +++ b/src/services/chart/charts/schemas/per-user-reactions.ts @@ -0,0 +1,32 @@ +export const logSchema = { + /** + * フォローしている合計 + */ + count: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: 'リアクションされた数', + }, +}; + +/** + * ユーザーごとのリアクションに関するチャート + */ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'perUserReaction'; diff --git a/src/services/chart/charts/schemas/test-grouped.ts b/src/services/chart/charts/schemas/test-grouped.ts new file mode 100644 index 000000000..163ec5bba --- /dev/null +++ b/src/services/chart/charts/schemas/test-grouped.ts @@ -0,0 +1,31 @@ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + foo: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + } + } + } +}; + +export const name = 'testGrouped'; diff --git a/src/services/chart/charts/schemas/test-unique.ts b/src/services/chart/charts/schemas/test-unique.ts new file mode 100644 index 000000000..075a8092d --- /dev/null +++ b/src/services/chart/charts/schemas/test-unique.ts @@ -0,0 +1,13 @@ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + foo: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + } +}; + +export const name = 'testUnique'; diff --git a/src/services/chart/charts/schemas/test.ts b/src/services/chart/charts/schemas/test.ts new file mode 100644 index 000000000..6142434a8 --- /dev/null +++ b/src/services/chart/charts/schemas/test.ts @@ -0,0 +1,31 @@ +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + foo: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '' + }, + } + } + } +}; + +export const name = 'test'; diff --git a/src/services/chart/charts/schemas/users.ts b/src/services/chart/charts/schemas/users.ts new file mode 100644 index 000000000..115336998 --- /dev/null +++ b/src/services/chart/charts/schemas/users.ts @@ -0,0 +1,47 @@ +const logSchema = { + /** + * 集計期間時点での、全ユーザー数 + */ + total: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '集計期間時点での、全ユーザー数' + }, + + /** + * 増加したユーザー数 + */ + inc: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '増加したユーザー数' + }, + + /** + * 減少したユーザー数 + */ + dec: { + type: 'number' as const, + optional: false as const, nullable: false as const, + description: '減少したユーザー数' + }, +}; + +export const schema = { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: { + local: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + remote: { + type: 'object' as const, + optional: false as const, nullable: false as const, + properties: logSchema + }, + } +}; + +export const name = 'users'; diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts new file mode 100644 index 000000000..dc09923ae --- /dev/null +++ b/src/services/chart/core.ts @@ -0,0 +1,509 @@ +/** + * チャートエンジン + * + * Tests located in test/chart + */ + +import * as nestedProperty from 'nested-property'; +import autobind from 'autobind-decorator'; +import Logger from '../logger'; +import { Schema } from '../../misc/schema'; +import { EntitySchema, getRepository, Repository, LessThan, Between } from 'typeorm'; +import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '../../prelude/time'; +import { getChartInsertLock } from '../../misc/app-lock'; + +const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test'); + +export type Obj = { [key: string]: any }; + +export type DeepPartial = { + [P in keyof T]?: DeepPartial; +}; + +type ArrayValue = { + [P in keyof T]: T[P] extends number ? T[P][] : ArrayValue; +}; + +type Span = 'day' | 'hour'; + +type Log = { + id: number; + + /** + * 集計のグループ + */ + group: string | null; + + /** + * 集計日時のUnixタイムスタンプ(秒) + */ + date: number; + + /** + * 集計期間 + */ + span: Span; + + /** + * ユニークインクリメント用 + */ + unique?: Record; +}; + +const camelToSnake = (str: string) => { + return str.replace(/([A-Z])/g, s => '_' + s.charAt(0).toLowerCase()); +}; + +/** + * 様々なチャートの管理を司るクラス + */ +export default abstract class Chart> { + private static readonly columnPrefix = '___'; + private static readonly columnDot = '_'; + + private name: string; + public schema: Schema; + protected repository: Repository; + protected abstract genNewLog(latest: T): DeepPartial; + protected abstract async fetchActual(group: string | null): Promise>; + + @autobind + private static convertSchemaToFlatColumnDefinitions(schema: Schema) { + const columns = {} as any; + const flatColumns = (x: Obj, path?: string) => { + for (const [k, v] of Object.entries(x)) { + const p = path ? `${path}${this.columnDot}${k}` : k; + if (v.type === 'object') { + flatColumns(v.properties, p); + } else { + columns[this.columnPrefix + p] = { + type: 'bigint', + }; + } + } + }; + flatColumns(schema.properties!); + return columns; + } + + @autobind + private static convertFlattenColumnsToObject(x: Record) { + const obj = {} as any; + for (const k of Object.keys(x).filter(k => k.startsWith(Chart.columnPrefix))) { + // now k is ___x_y_z + const path = k.substr(Chart.columnPrefix.length).split(Chart.columnDot).join('.'); + nestedProperty.set(obj, path, x[k]); + } + return obj; + } + + @autobind + private static convertObjectToFlattenColumns(x: Record) { + const columns = {} as Record; + const flatten = (x: Obj, path?: string) => { + for (const [k, v] of Object.entries(x)) { + const p = path ? `${path}${this.columnDot}${k}` : k; + if (typeof v === 'object') { + flatten(v, p); + } else { + columns[this.columnPrefix + p] = v; + } + } + }; + flatten(x); + return columns; + } + + @autobind + private static convertQuery(x: Record) { + const query: Record = {}; + + const columns = Chart.convertObjectToFlattenColumns(x); + + for (const [k, v] of Object.entries(columns)) { + if (v > 0) query[k] = () => `"${k}" + ${v}`; + if (v < 0) query[k] = () => `"${k}" - ${Math.abs(v)}`; + } + + return query; + } + + @autobind + private static dateToTimestamp(x: Date): Log['date'] { + return Math.floor(x.getTime() / 1000); + } + + @autobind + private static parseDate(date: Date): [number, number, number, number, number, number, number] { + const y = date.getUTCFullYear(); + const m = date.getUTCMonth(); + const d = date.getUTCDate(); + const h = date.getUTCHours(); + const _m = date.getUTCMinutes(); + const _s = date.getUTCSeconds(); + const _ms = date.getUTCMilliseconds(); + + return [y, m, d, h, _m, _s, _ms]; + } + + @autobind + private static getCurrentDate() { + return Chart.parseDate(new Date()); + } + + @autobind + public static schemaToEntity(name: string, schema: Schema): EntitySchema { + return new EntitySchema({ + name: `__chart__${camelToSnake(name)}`, + columns: { + id: { + type: 'integer', + primary: true, + generated: true + }, + date: { + type: 'integer', + }, + group: { + type: 'varchar', + length: 128, + nullable: true + }, + span: { + type: 'enum', + enum: ['hour', 'day'] + }, + unique: { + type: 'jsonb', + default: {} + }, + ...Chart.convertSchemaToFlatColumnDefinitions(schema) + }, + indices: [{ + columns: ['date'] + }, { + columns: ['span'] + }, { + columns: ['group'] + }, { + columns: ['span', 'date'] + }, { + columns: ['date', 'group'] + }, { + columns: ['span', 'date', 'group'] + }] + }); + } + + constructor(name: string, schema: Schema, grouped = false) { + this.name = name; + this.schema = schema; + const entity = Chart.schemaToEntity(name, schema); + + const keys = ['span', 'date']; + if (grouped) keys.push('group'); + + entity.options.uniques = [{ + columns: keys + }]; + + this.repository = getRepository(entity); + } + + @autobind + private getNewLog(latest: T | null): T { + const log = latest ? this.genNewLog(latest) : {}; + const flatColumns = (x: Obj, path?: string) => { + for (const [k, v] of Object.entries(x)) { + const p = path ? `${path}.${k}` : k; + if (v.type === 'object') { + flatColumns(v.properties, p); + } else { + if (nestedProperty.get(log, p) == null) { + nestedProperty.set(log, p, 0); + } + } + } + }; + flatColumns(this.schema.properties!); + return log as T; + } + + @autobind + private getLatestLog(span: Span, group: string | null = null): Promise { + return this.repository.findOne({ + group: group, + span: span + }, { + order: { + date: -1 + } + }).then(x => x || null); + } + + @autobind + private async getCurrentLog(span: Span, group: string | null = null): Promise { + const [y, m, d, h] = Chart.getCurrentDate(); + + const current = + span == 'day' ? dateUTC([y, m, d, 0]) : + span == 'hour' ? dateUTC([y, m, d, h]) : + null as never; + + // 現在(今日または今のHour)のログ + const currentLog = await this.repository.findOne({ + span: span, + date: Chart.dateToTimestamp(current), + ...(group ? { group: group } : {}) + }); + + // ログがあればそれを返して終了 + if (currentLog != null) { + return currentLog; + } + + let log: Log; + let data: T; + + // 集計期間が変わってから、初めてのチャート更新なら + // 最も最近のログを持ってくる + // * 例えば集計期間が「日」である場合で考えると、 + // * 昨日何もチャートを更新するような出来事がなかった場合は、 + // * ログがそもそも作られずドキュメントが存在しないということがあり得るため、 + // * 「昨日の」と決め打ちせずに「もっとも最近の」とします + const latest = await this.getLatestLog(span, group); + + if (latest != null) { + const obj = Chart.convertFlattenColumnsToObject( + latest as Record); + + // 空ログデータを作成 + data = this.getNewLog(obj); + } else { + // ログが存在しなかったら + // (Misskeyインスタンスを建てて初めてのチャート更新時など) + + // 初期ログデータを作成 + data = this.getNewLog(null); + + logger.info(`${this.name + (group ? `:${group}` : '')} (${span}): Initial commit created`); + } + + const date = Chart.dateToTimestamp(current); + const lockKey = `${this.name}:${date}:${group}:${span}`; + + const unlock = await getChartInsertLock(lockKey); + try { + // ロック内でもう1回チェックする + const currentLog = await this.repository.findOne({ + span: span, + date: date, + ...(group ? { group: group } : {}) + }); + + // ログがあればそれを返して終了 + if (currentLog != null) return currentLog; + + // 新規ログ挿入 + log = await this.repository.save({ + group: group, + span: span, + date: date, + ...Chart.convertObjectToFlattenColumns(data) + }); + + logger.info(`${this.name + (group ? `:${group}` : '')} (${span}): New commit created`); + + return log; + } finally { + unlock(); + } + } + + @autobind + protected commit(query: Record, group: string | null = null, uniqueKey?: string, uniqueValue?: string): Promise { + const update = async (log: Log) => { + // ユニークインクリメントの場合、指定のキーに指定の値が既に存在していたら弾く + if ( + uniqueKey && log.unique && + log.unique[uniqueKey] && + log.unique[uniqueKey].includes(uniqueValue) + ) return; + + // ユニークインクリメントの指定のキーに値を追加 + if (uniqueKey && log.unique) { + if (log.unique[uniqueKey]) { + const sql = `jsonb_set("unique", '{${uniqueKey}}', ("unique"->>'${uniqueKey}')::jsonb || '["${uniqueValue}"]'::jsonb)`; + query['unique'] = () => sql; + } else { + const sql = `jsonb_set("unique", '{${uniqueKey}}', '["${uniqueValue}"]')`; + query['unique'] = () => sql; + } + } + + // ログ更新 + await this.repository.createQueryBuilder() + .update() + .set(query) + .where('id = :id', { id: log.id }) + .execute(); + }; + + return Promise.all([ + this.getCurrentLog('day', group).then(log => update(log)), + this.getCurrentLog('hour', group).then(log => update(log)), + ]); + } + + @autobind + public async resync(group: string | null = null): Promise { + const data = await this.fetchActual(group); + + const update = async (log: Log) => { + await this.repository.createQueryBuilder() + .update() + .set(Chart.convertObjectToFlattenColumns(data)) + .where('id = :id', { id: log.id }) + .execute(); + }; + + return Promise.all([ + this.getCurrentLog('day', group).then(log => update(log)), + this.getCurrentLog('hour', group).then(log => update(log)), + ]); + } + + @autobind + protected async inc(inc: DeepPartial, group: string | null = null): Promise { + await this.commit(Chart.convertQuery(inc as any), group); + } + + @autobind + protected async incIfUnique(inc: DeepPartial, key: string, value: string, group: string | null = null): Promise { + await this.commit(Chart.convertQuery(inc as any), group, key, value); + } + + @autobind + public async getChart(span: Span, amount: number, begin: Date | null, group: string | null = null): Promise> { + const [y, m, d, h, _m, _s, _ms] = begin ? Chart.parseDate(subtractTime(addTime(begin, 1, span), 1)) : Chart.getCurrentDate(); + const [y2, m2, d2, h2] = begin ? Chart.parseDate(addTime(begin, 1, span)) : [] as never; + + const lt = dateUTC([y, m, d, h, _m, _s, _ms]); + + const gt = + span === 'day' ? subtractTime(begin ? dateUTC([y2, m2, d2, 0]) : dateUTC([y, m, d, 0]), amount - 1, 'day') : + span === 'hour' ? subtractTime(begin ? dateUTC([y2, m2, d2, h2]) : dateUTC([y, m, d, h]), amount - 1, 'hour') : + null as never; + + // ログ取得 + let logs = await this.repository.find({ + where: { + group: group, + span: span, + date: Between(Chart.dateToTimestamp(gt), Chart.dateToTimestamp(lt)) + }, + order: { + date: -1 + }, + }); + + // 要求された範囲にログがひとつもなかったら + if (logs.length === 0) { + // もっとも新しいログを持ってくる + // (すくなくともひとつログが無いと隙間埋めできないため) + const recentLog = await this.repository.findOne({ + group: group, + span: span + }, { + order: { + date: -1 + }, + }); + + if (recentLog) { + logs = [recentLog]; + } + + // 要求された範囲の最も古い箇所に位置するログが存在しなかったら + } else if (!isTimeSame(new Date(logs[logs.length - 1].date * 1000), gt)) { + // 要求された範囲の最も古い箇所時点での最も新しいログを持ってきて末尾に追加する + // (隙間埋めできないため) + const outdatedLog = await this.repository.findOne({ + group: group, + span: span, + date: LessThan(Chart.dateToTimestamp(gt)) + }, { + order: { + date: -1 + }, + }); + + if (outdatedLog) { + logs.push(outdatedLog); + } + } + + const chart: T[] = []; + + // 整形 + for (let i = (amount - 1); i >= 0; i--) { + const current = + span === 'day' ? subtractTime(dateUTC([y, m, d, 0]), i, 'day') : + span === 'hour' ? subtractTime(dateUTC([y, m, d, h]), i, 'hour') : + null as never; + + const log = logs.find(l => isTimeSame(new Date(l.date * 1000), current)); + + if (log) { + const data = Chart.convertFlattenColumnsToObject(log as Record); + chart.unshift(data); + } else { + // 隙間埋め + const latest = logs.find(l => isTimeBefore(new Date(l.date * 1000), current)); + const data = latest ? Chart.convertFlattenColumnsToObject(latest as Record) : null; + chart.unshift(this.getNewLog(data)); + } + } + + const res: ArrayValue = {} as any; + + /** + * [{ foo: 1, bar: 5 }, { foo: 2, bar: 6 }, { foo: 3, bar: 7 }] + * を + * { foo: [1, 2, 3], bar: [5, 6, 7] } + * にする + */ + const dive = (x: Obj, path?: string) => { + for (const [k, v] of Object.entries(x)) { + const p = path ? `${path}.${k}` : k; + if (typeof v == 'object') { + dive(v, p); + } else { + const values = chart.map(s => nestedProperty.get(s, p)) + .map(v => parseInt(v, 10)); // TypeORMのバグ(?)で何故か数値カラムの値が文字列型になっているので数値に戻す + nestedProperty.set(res, p, values); + } + } + }; + + dive(chart[0]); + + return res; + } +} + +export function convertLog(logSchema: Schema): Schema { + const v: Schema = JSON.parse(JSON.stringify(logSchema)); // copy + if (v.type === 'number') { + v.type = 'array'; + v.items = { + type: 'number' as const, + optional: false as const, nullable: false as const, + }; + } else if (v.type === 'object') { + for (const k of Object.keys(v.properties!)) { + v.properties![k] = convertLog(v.properties![k]); + } + } + return v; +} diff --git a/src/services/chart/entities.ts b/src/services/chart/entities.ts new file mode 100644 index 000000000..e3d5e6f8c --- /dev/null +++ b/src/services/chart/entities.ts @@ -0,0 +1,9 @@ +import Chart from './core'; + +export const entities = Object.values(require('require-all')({ + dirname: __dirname + '/charts/schemas', + filter: /^.+\.[jt]s$/, + resolve: (x: any) => { + return Chart.schemaToEntity(x.name, x.schema); + } +})); diff --git a/src/services/chart/index.ts b/src/services/chart/index.ts new file mode 100644 index 000000000..9626e3d6b --- /dev/null +++ b/src/services/chart/index.ts @@ -0,0 +1,25 @@ +import FederationChart from './charts/classes/federation'; +import NotesChart from './charts/classes/notes'; +import UsersChart from './charts/classes/users'; +import NetworkChart from './charts/classes/network'; +import ActiveUsersChart from './charts/classes/active-users'; +import InstanceChart from './charts/classes/instance'; +import PerUserNotesChart from './charts/classes/per-user-notes'; +import DriveChart from './charts/classes/drive'; +import PerUserReactionsChart from './charts/classes/per-user-reactions'; +import HashtagChart from './charts/classes/hashtag'; +import PerUserFollowingChart from './charts/classes/per-user-following'; +import PerUserDriveChart from './charts/classes/per-user-drive'; + +export const federationChart = new FederationChart(); +export const notesChart = new NotesChart(); +export const usersChart = new UsersChart(); +export const networkChart = new NetworkChart(); +export const activeUsersChart = new ActiveUsersChart(); +export const instanceChart = new InstanceChart(); +export const perUserNotesChart = new PerUserNotesChart(); +export const driveChart = new DriveChart(); +export const perUserReactionsChart = new PerUserReactionsChart(); +export const hashtagChart = new HashtagChart(); +export const perUserFollowingChart = new PerUserFollowingChart(); +export const perUserDriveChart = new PerUserDriveChart(); diff --git a/src/services/create-notification.ts b/src/services/create-notification.ts new file mode 100644 index 000000000..5dddaa572 --- /dev/null +++ b/src/services/create-notification.ts @@ -0,0 +1,58 @@ +import { publishMainStream } from './stream'; +import pushSw from './push-notification'; +import { Notifications, Mutings, UserProfiles } from '../models'; +import { genId } from '../misc/gen-id'; +import { User } from '../models/entities/user'; +import { Notification } from '../models/entities/notification'; + +export async function createNotification( + notifieeId: User['id'], + type: Notification['type'], + data: Partial +) { + if (data.notifierId && (notifieeId === data.notifierId)) { + return null; + } + + const profile = await UserProfiles.findOne({ userId: notifieeId }); + + const isMuted = profile?.mutingNotificationTypes.includes(type); + + // Create notification + const notification = await Notifications.save({ + id: genId(), + createdAt: new Date(), + notifieeId: notifieeId, + type: type, + // 相手がこの通知をミュートしているようなら、既読を予めつけておく + isRead: isMuted, + ...data + } as Partial); + + const packed = await Notifications.pack(notification); + + // Publish notification event + publishMainStream(notifieeId, 'notification', packed); + + // 2秒経っても(今回作成した)通知が既読にならなかったら「未読の通知がありますよ」イベントを発行する + setTimeout(async () => { + const fresh = await Notifications.findOne(notification.id); + if (fresh == null) return; // 既に削除されているかもしれない + if (!fresh.isRead) { + //#region ただしミュートしているユーザーからの通知なら無視 + const mutings = await Mutings.find({ + muterId: notifieeId + }); + if (data.notifierId && mutings.map(m => m.muteeId).includes(data.notifierId)) { + return; + } + //#endregion + + publishMainStream(notifieeId, 'unreadNotification', packed); + + pushSw(notifieeId, 'notification', packed); + } + }, 2000); + + return notification; +} diff --git a/src/services/create-system-user.ts b/src/services/create-system-user.ts new file mode 100644 index 000000000..7f59efb44 --- /dev/null +++ b/src/services/create-system-user.ts @@ -0,0 +1,59 @@ +import * as bcrypt from 'bcryptjs'; +import { v4 as uuid } from 'uuid'; +import generateNativeUserToken from '../server/api/common/generate-native-user-token'; +import { genRsaKeyPair } from '../misc/gen-key-pair'; +import { User } from '../models/entities/user'; +import { UserProfile } from '../models/entities/user-profile'; +import { getConnection } from 'typeorm'; +import { genId } from '../misc/gen-id'; +import { UserKeypair } from '../models/entities/user-keypair'; +import { UsedUsername } from '../models/entities/used-username'; + +export async function createSystemUser(username: string) { + const password = uuid(); + + // Generate hash of password + const salt = await bcrypt.genSalt(8); + const hash = await bcrypt.hash(password, salt); + + // Generate secret + const secret = generateNativeUserToken(); + + const keyPair = await genRsaKeyPair(4096); + + let account!: User; + + // Start transaction + await getConnection().transaction(async transactionalEntityManager => { + account = await transactionalEntityManager.save(new User({ + id: genId(), + createdAt: new Date(), + username: username, + usernameLower: username.toLowerCase(), + host: null, + token: secret, + isAdmin: false, + isLocked: true, + isBot: true, + })); + + await transactionalEntityManager.save(new UserKeypair({ + publicKey: keyPair.publicKey, + privateKey: keyPair.privateKey, + userId: account.id + })); + + await transactionalEntityManager.save(new UserProfile({ + userId: account.id, + autoAcceptFollowed: false, + password: hash, + })); + + await transactionalEntityManager.save(new UsedUsername({ + createdAt: new Date(), + username: username.toLowerCase(), + })); + }); + + return account; +} diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts new file mode 100644 index 000000000..8d32d06d2 --- /dev/null +++ b/src/services/drive/add-file.ts @@ -0,0 +1,465 @@ +import * as fs from 'fs'; + +import { v4 as uuid } from 'uuid'; + +import { publishMainStream, publishDriveStream } from '../stream'; +import { deleteFile } from './delete-file'; +import { fetchMeta } from '../../misc/fetch-meta'; +import { GenerateVideoThumbnail } from './generate-video-thumbnail'; +import { driveLogger } from './logger'; +import { IImage, convertSharpToJpeg, convertSharpToWebp, convertSharpToPng, convertSharpToPngOrJpeg } from './image-processor'; +import { contentDisposition } from '../../misc/content-disposition'; +import { getFileInfo } from '../../misc/get-file-info'; +import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '../../models'; +import { InternalStorage } from './internal-storage'; +import { DriveFile } from '../../models/entities/drive-file'; +import { IRemoteUser, User } from '../../models/entities/user'; +import { driveChart, perUserDriveChart, instanceChart } from '../chart'; +import { genId } from '../../misc/gen-id'; +import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error'; +import * as S3 from 'aws-sdk/clients/s3'; +import { getS3 } from './s3'; +import * as sharp from 'sharp'; + +const logger = driveLogger.createSubLogger('register', 'yellow'); + +/*** + * Save file + * @param path Path for original + * @param name Name for original + * @param type Content-Type for original + * @param hash Hash for original + * @param size Size for original + */ +async function save(file: DriveFile, path: string, name: string, type: string, hash: string, size: number): Promise { + // thunbnail, webpublic を必要なら生成 + const alts = await generateAlts(path, type, !file.uri); + + const meta = await fetchMeta(); + + if (meta.useObjectStorage) { + //#region ObjectStorage params + let [ext] = (name.match(/\.([a-zA-Z0-9_-]+)$/) || ['']); + + if (ext === '') { + if (type === 'image/jpeg') ext = '.jpg'; + if (type === 'image/png') ext = '.png'; + if (type === 'image/webp') ext = '.webp'; + if (type === 'image/apng') ext = '.apng'; + if (type === 'image/vnd.mozilla.apng') ext = '.apng'; + } + + const baseUrl = meta.objectStorageBaseUrl + || `${ meta.objectStorageUseSSL ? 'https' : 'http' }://${ meta.objectStorageEndpoint }${ meta.objectStoragePort ? `:${meta.objectStoragePort}` : '' }/${ meta.objectStorageBucket }`; + + // for original + const key = `${meta.objectStoragePrefix}/${uuid()}${ext}`; + const url = `${ baseUrl }/${ key }`; + + // for alts + let webpublicKey: string | null = null; + let webpublicUrl: string | null = null; + let thumbnailKey: string | null = null; + let thumbnailUrl: string | null = null; + //#endregion + + //#region Uploads + logger.info(`uploading original: ${key}`); + const uploads = [ + upload(key, fs.createReadStream(path), type, name) + ]; + + if (alts.webpublic) { + webpublicKey = `${meta.objectStoragePrefix}/webpublic-${uuid()}.${alts.webpublic.ext}`; + webpublicUrl = `${ baseUrl }/${ webpublicKey }`; + + logger.info(`uploading webpublic: ${webpublicKey}`); + uploads.push(upload(webpublicKey, alts.webpublic.data, alts.webpublic.type, name)); + } + + if (alts.thumbnail) { + thumbnailKey = `${meta.objectStoragePrefix}/thumbnail-${uuid()}.${alts.thumbnail.ext}`; + thumbnailUrl = `${ baseUrl }/${ thumbnailKey }`; + + logger.info(`uploading thumbnail: ${thumbnailKey}`); + uploads.push(upload(thumbnailKey, alts.thumbnail.data, alts.thumbnail.type)); + } + + await Promise.all(uploads); + //#endregion + + file.url = url; + file.thumbnailUrl = thumbnailUrl; + file.webpublicUrl = webpublicUrl; + file.accessKey = key; + file.thumbnailAccessKey = thumbnailKey; + file.webpublicAccessKey = webpublicKey; + file.name = name; + file.type = type; + file.md5 = hash; + file.size = size; + file.storedInternal = false; + + return await DriveFiles.save(file); + } else { // use internal storage + const accessKey = uuid(); + const thumbnailAccessKey = 'thumbnail-' + uuid(); + const webpublicAccessKey = 'webpublic-' + uuid(); + + const url = InternalStorage.saveFromPath(accessKey, path); + + let thumbnailUrl: string | null = null; + let webpublicUrl: string | null = null; + + if (alts.thumbnail) { + thumbnailUrl = InternalStorage.saveFromBuffer(thumbnailAccessKey, alts.thumbnail.data); + logger.info(`thumbnail stored: ${thumbnailAccessKey}`); + } + + if (alts.webpublic) { + webpublicUrl = InternalStorage.saveFromBuffer(webpublicAccessKey, alts.webpublic.data); + logger.info(`web stored: ${webpublicAccessKey}`); + } + + file.storedInternal = true; + file.url = url; + file.thumbnailUrl = thumbnailUrl; + file.webpublicUrl = webpublicUrl; + file.accessKey = accessKey; + file.thumbnailAccessKey = thumbnailAccessKey; + file.webpublicAccessKey = webpublicAccessKey; + file.name = name; + file.type = type; + file.md5 = hash; + file.size = size; + + return await DriveFiles.save(file); + } +} + +/** + * Generate webpublic, thumbnail, etc + * @param path Path for original + * @param type Content-Type for original + * @param generateWeb Generate webpublic or not + */ +export async function generateAlts(path: string, type: string, generateWeb: boolean) { + if (type.startsWith('video/')) { + try { + const thumbnail = await GenerateVideoThumbnail(path); + return { + webpublic: null, + thumbnail + }; + } catch (e) { + logger.warn(`GenerateVideoThumbnail failed: ${e}`); + return { + webpublic: null, + thumbnail: null + }; + } + } + + if (!['image/jpeg', 'image/png', 'image/webp'].includes(type)) { + logger.debug(`web image and thumbnail not created (not an required file)`); + return { + webpublic: null, + thumbnail: null + }; + } + + let img: sharp.Sharp | null = null; + + try { + img = sharp(path); + const metadata = await img.metadata(); + const isAnimated = metadata.pages && metadata.pages > 1; + + // skip animated + if (isAnimated) { + return { + webpublic: null, + thumbnail: null + }; + } + } catch (e) { + logger.warn(`sharp failed: ${e}`); + return { + webpublic: null, + thumbnail: null + }; + } + + // #region webpublic + let webpublic: IImage | null = null; + + if (generateWeb) { + logger.info(`creating web image`); + + try { + if (['image/jpeg'].includes(type)) { + webpublic = await convertSharpToJpeg(img, 2048, 2048); + } else if (['image/webp'].includes(type)) { + webpublic = await convertSharpToWebp(img, 2048, 2048); + } else if (['image/png'].includes(type)) { + webpublic = await convertSharpToPng(img, 2048, 2048); + } else { + logger.debug(`web image not created (not an required image)`); + } + } catch (e) { + logger.warn(`web image not created (an error occured)`, e); + } + } else { + logger.info(`web image not created (from remote)`); + } + // #endregion webpublic + + // #region thumbnail + let thumbnail: IImage | null = null; + + try { + if (['image/jpeg', 'image/webp'].includes(type)) { + thumbnail = await convertSharpToJpeg(img, 498, 280); + } else if (['image/png'].includes(type)) { + thumbnail = await convertSharpToPngOrJpeg(img, 498, 280); + } else { + logger.debug(`thumbnail not created (not an required file)`); + } + } catch (e) { + logger.warn(`thumbnail not created (an error occured)`, e); + } + // #endregion thumbnail + + return { + webpublic, + thumbnail, + }; +} + +/** + * Upload to ObjectStorage + */ +async function upload(key: string, stream: fs.ReadStream | Buffer, type: string, filename?: string) { + if (type === 'image/apng') type = 'image/png'; + + const meta = await fetchMeta(); + + const params = { + Bucket: meta.objectStorageBucket, + Key: key, + Body: stream, + ContentType: type, + CacheControl: 'max-age=31536000, immutable', + } as S3.PutObjectRequest; + + if (filename) params.ContentDisposition = contentDisposition('inline', filename); + if (meta.objectStorageSetPublicRead) params.ACL = 'public-read'; + + const s3 = getS3(meta); + + const upload = s3.upload(params, { + partSize: s3.endpoint?.hostname === 'storage.googleapis.com' ? 500 * 1024 * 1024 : 8 * 1024 * 1024 + }); + + const result = await upload.promise(); + if (result) logger.debug(`Uploaded: ${result.Bucket}/${result.Key} => ${result.Location}`); +} + +async function deleteOldFile(user: IRemoteUser) { + const q = DriveFiles.createQueryBuilder('file') + .where('file.userId = :userId', { userId: user.id }); + + if (user.avatarId) { + q.andWhere('file.id != :avatarId', { avatarId: user.avatarId }); + } + + if (user.bannerId) { + q.andWhere('file.id != :bannerId', { bannerId: user.bannerId }); + } + + q.orderBy('file.id', 'ASC'); + + const oldFile = await q.getOne(); + + if (oldFile) { + deleteFile(oldFile, true); + } +} + +/** + * Add file to drive + * + * @param user User who wish to add file + * @param path File path + * @param name Name + * @param comment Comment + * @param folderId Folder ID + * @param force If set to true, forcibly upload the file even if there is a file with the same hash. + * @param isLink Do not save file to local + * @param url URL of source (URLからアップロードされた場合(ローカル/リモート)の元URL) + * @param uri URL of source (リモートインスタンスのURLからアップロードされた場合の元URL) + * @param sensitive Mark file as sensitive + * @return Created drive file + */ +export default async function( + user: User | null, + path: string, + name: string | null = null, + comment: string | null = null, + folderId: any = null, + force: boolean = false, + isLink: boolean = false, + url: string | null = null, + uri: string | null = null, + sensitive: boolean | null = null +): Promise { + const info = await getFileInfo(path); + logger.info(`${JSON.stringify(info)}`); + + // detect name + const detectedName = name || (info.type.ext ? `untitled.${info.type.ext}` : 'untitled'); + + if (user && !force) { + // Check if there is a file with the same hash + const much = await DriveFiles.findOne({ + md5: info.md5, + userId: user.id, + }); + + if (much) { + logger.info(`file with same hash is found: ${much.id}`); + return much; + } + } + + //#region Check drive usage + if (user && !isLink) { + const usage = await DriveFiles.clacDriveUsageOf(user); + + const instance = await fetchMeta(); + const driveCapacity = 1024 * 1024 * (Users.isLocalUser(user) ? instance.localDriveCapacityMb : instance.remoteDriveCapacityMb); + + logger.debug(`drive usage is ${usage} (max: ${driveCapacity})`); + + // If usage limit exceeded + if (usage + info.size > driveCapacity) { + if (Users.isLocalUser(user)) { + throw new Error('no-free-space'); + } else { + // (アバターまたはバナーを含まず)最も古いファイルを削除する + deleteOldFile(user as IRemoteUser); + } + } + } + //#endregion + + const fetchFolder = async () => { + if (!folderId) { + return null; + } + + const driveFolder = await DriveFolders.findOne({ + id: folderId, + userId: user ? user.id : null + }); + + if (driveFolder == null) throw new Error('folder-not-found'); + + return driveFolder; + }; + + const properties: { + width?: number; + height?: number; + } = {}; + + if (info.width) { + properties['width'] = info.width; + properties['height'] = info.height; + } + + const profile = user ? await UserProfiles.findOne(user.id) : null; + + const folder = await fetchFolder(); + + let file = new DriveFile(); + file.id = genId(); + file.createdAt = new Date(); + file.userId = user ? user.id : null; + file.userHost = user ? user.host : null; + file.folderId = folder !== null ? folder.id : null; + file.comment = comment; + file.properties = properties; + file.blurhash = info.blurhash || null; + file.isLink = isLink; + file.isSensitive = user + ? Users.isLocalUser(user) && profile!.alwaysMarkNsfw ? true : + (sensitive !== null && sensitive !== undefined) + ? sensitive + : false + : false; + + if (url !== null) { + file.src = url; + + if (isLink) { + file.url = url; + // ローカルプロキシ用 + file.accessKey = uuid(); + file.thumbnailAccessKey = 'thumbnail-' + uuid(); + file.webpublicAccessKey = 'webpublic-' + uuid(); + } + } + + if (uri !== null) { + file.uri = uri; + } + + if (isLink) { + try { + file.size = 0; + file.md5 = info.md5; + file.name = detectedName; + file.type = info.type.mime; + file.storedInternal = false; + + file = await DriveFiles.save(file); + } catch (e) { + // duplicate key error (when already registered) + if (isDuplicateKeyValueError(e)) { + logger.info(`already registered ${file.uri}`); + + file = await DriveFiles.findOne({ + uri: file.uri, + userId: user ? user.id : null + }) as DriveFile; + } else { + logger.error(e); + throw e; + } + } + } else { + file = await (save(file, path, detectedName, info.type.mime, info.md5, info.size)); + } + + logger.succ(`drive file has been created ${file.id}`); + + if (user) { + DriveFiles.pack(file, { self: true }).then(packedFile => { + // Publish driveFileCreated event + publishMainStream(user.id, 'driveFileCreated', packedFile); + publishDriveStream(user.id, 'fileCreated', packedFile); + }); + } + + // 統計を更新 + driveChart.update(file, true); + perUserDriveChart.update(file, true); + if (file.userHost !== null) { + instanceChart.updateDrive(file, true); + Instances.increment({ host: file.userHost }, 'driveUsage', file.size); + Instances.increment({ host: file.userHost }, 'driveFiles', 1); + } + + return file; +} diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts new file mode 100644 index 000000000..f9141ebaa --- /dev/null +++ b/src/services/drive/delete-file.ts @@ -0,0 +1,166 @@ +import { DriveFile } from '../../models/entities/drive-file'; +import { InternalStorage } from './internal-storage'; +import { DriveFiles, Instances, Notes, Users } from '../../models'; +import { driveChart, perUserDriveChart, instanceChart } from '../chart'; +import { createDeleteObjectStorageFileJob } from '../../queue'; +import { fetchMeta } from '../../misc/fetch-meta'; +import { getS3 } from './s3'; +import { v4 as uuid } from 'uuid'; +import { Note } from '../../models/entities/note'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderDelete from '../../remote/activitypub/renderer/delete'; +import renderTombstone from '../../remote/activitypub/renderer/tombstone'; +import config from '../../config'; +import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import { Brackets } from 'typeorm'; +import { deliverToRelays } from '../relay'; + +export async function deleteFile(file: DriveFile, isExpired = false) { + if (file.storedInternal) { + InternalStorage.del(file.accessKey!); + + if (file.thumbnailUrl) { + InternalStorage.del(file.thumbnailAccessKey!); + } + + if (file.webpublicUrl) { + InternalStorage.del(file.webpublicAccessKey!); + } + } else if (!file.isLink) { + createDeleteObjectStorageFileJob(file.accessKey!); + + if (file.thumbnailUrl) { + createDeleteObjectStorageFileJob(file.thumbnailAccessKey!); + } + + if (file.webpublicUrl) { + createDeleteObjectStorageFileJob(file.webpublicAccessKey!); + } + } + + postProcess(file, isExpired); +} + +export async function deleteFileSync(file: DriveFile, isExpired = false) { + if (file.storedInternal) { + InternalStorage.del(file.accessKey!); + + if (file.thumbnailUrl) { + InternalStorage.del(file.thumbnailAccessKey!); + } + + if (file.webpublicUrl) { + InternalStorage.del(file.webpublicAccessKey!); + } + } else if (!file.isLink) { + const promises = []; + + promises.push(deleteObjectStorageFile(file.accessKey!)); + + if (file.thumbnailUrl) { + promises.push(deleteObjectStorageFile(file.thumbnailAccessKey!)); + } + + if (file.webpublicUrl) { + promises.push(deleteObjectStorageFile(file.webpublicAccessKey!)); + } + + await Promise.all(promises); + } + + postProcess(file, isExpired); +} + +async function postProcess(file: DriveFile, isExpired = false) { + // リモートファイル期限切れ削除後は直リンクにする + if (isExpired && file.userHost !== null && file.uri != null) { + DriveFiles.update(file.id, { + isLink: true, + url: file.uri, + thumbnailUrl: null, + webpublicUrl: null, + size: 0, + // ローカルプロキシ用 + accessKey: uuid(), + thumbnailAccessKey: 'thumbnail-' + uuid(), + webpublicAccessKey: 'webpublic-' + uuid(), + }); + } else { + DriveFiles.delete(file.id); + + // TODO: トランザクション + const relatedNotes = await findRelatedNotes(file.id); + for (const relatedNote of relatedNotes) { // for each note with deleted driveFile + const cascadingNotes = (await findCascadingNotes(relatedNote)).filter(note => !note.localOnly); + for (const cascadingNote of cascadingNotes) { // for each notes subject to cascade deletion + if (!cascadingNote.user) continue; + if (!Users.isLocalUser(cascadingNote.user)) continue; + const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${cascadingNote.id}`), cascadingNote.user)); + deliverToFollowers(cascadingNote.user, content); // federate delete msg + deliverToRelays(cascadingNote.user, content); + } + if (!relatedNote.user) continue; + if (Users.isLocalUser(relatedNote.user)) { + const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${relatedNote.id}`), relatedNote.user)); + deliverToFollowers(relatedNote.user, content); + deliverToRelays(relatedNote.user, content); + } + } + Notes.createQueryBuilder().delete() + .where(':id = ANY("fileIds")', { id: file.id }) + .execute(); + } + + // 統計を更新 + driveChart.update(file, false); + perUserDriveChart.update(file, false); + if (file.userHost !== null) { + instanceChart.updateDrive(file, false); + Instances.decrement({ host: file.userHost }, 'driveUsage', file.size); + Instances.decrement({ host: file.userHost }, 'driveFiles', 1); + } +} + +export async function deleteObjectStorageFile(key: string) { + const meta = await fetchMeta(); + + const s3 = getS3(meta); + + await s3.deleteObject({ + Bucket: meta.objectStorageBucket!, + Key: key + }).promise(); +} + +async function findRelatedNotes(fileId: string) { + // NOTE: When running raw query, TypeORM converts field name to lowercase. Wrap in quotes to prevent conversion. + const relatedNotes = await Notes.createQueryBuilder('note').where(':id = ANY("fileIds")', { id: fileId }).getMany(); + for (const relatedNote of relatedNotes) { + const user = await Users.findOne({ id: relatedNote.userId }); + if (user) + relatedNote.user = user; + } + return relatedNotes; +} + +async function findCascadingNotes(note: Note) { + const cascadingNotes: Note[] = []; + + const recursive = async (noteId: string) => { + const query = Notes.createQueryBuilder('note') + .where('note.replyId = :noteId', { noteId }) + .orWhere(new Brackets(q => { + q.where('note.renoteId = :noteId', { noteId }) + .andWhere('note.text IS NOT NULL'); + })) + .leftJoinAndSelect('note.user', 'user'); + const replies = await query.getMany(); + for (const reply of replies) { + cascadingNotes.push(reply); + await recursive(reply.id); + } + }; + await recursive(note.id); + + return cascadingNotes.filter(note => note.userHost === null); // filter out non-local users +} diff --git a/src/services/drive/generate-video-thumbnail.ts b/src/services/drive/generate-video-thumbnail.ts new file mode 100644 index 000000000..f0adc7c33 --- /dev/null +++ b/src/services/drive/generate-video-thumbnail.ts @@ -0,0 +1,37 @@ +import * as fs from 'fs'; +import * as tmp from 'tmp'; +import { IImage, convertToJpeg } from './image-processor'; +import * as FFmpeg from 'fluent-ffmpeg'; + +export async function GenerateVideoThumbnail(path: string): Promise { + const [outDir, cleanup] = await new Promise<[string, any]>((res, rej) => { + tmp.dir((e, path, cleanup) => { + if (e) return rej(e); + res([path, cleanup]); + }); + }); + + await new Promise((res, rej) => { + FFmpeg({ + source: path + }) + .on('end', res) + .on('error', rej) + .screenshot({ + folder: outDir, + filename: 'output.png', + count: 1, + timestamps: ['5%'] + }); + }); + + const outPath = `${outDir}/output.png`; + + const thumbnail = await convertToJpeg(outPath, 498, 280); + + // cleanup + await fs.promises.unlink(outPath); + cleanup(); + + return thumbnail; +} diff --git a/src/services/drive/image-processor.ts b/src/services/drive/image-processor.ts new file mode 100644 index 000000000..493bf5c1c --- /dev/null +++ b/src/services/drive/image-processor.ts @@ -0,0 +1,107 @@ +import * as sharp from 'sharp'; + +export type IImage = { + data: Buffer; + ext: string | null; + type: string; +}; + +/** + * Convert to JPEG + * with resize, remove metadata, resolve orientation, stop animation + */ +export async function convertToJpeg(path: string, width: number, height: number): Promise { + return convertSharpToJpeg(await sharp(path), width, height); +} + +export async function convertSharpToJpeg(sharp: sharp.Sharp, width: number, height: number): Promise { + const data = await sharp + .resize(width, height, { + fit: 'inside', + withoutEnlargement: true + }) + .rotate() + .jpeg({ + quality: 85, + progressive: true + }) + .toBuffer(); + + return { + data, + ext: 'jpg', + type: 'image/jpeg' + }; +} + +/** + * Convert to WebP + * with resize, remove metadata, resolve orientation, stop animation + */ +export async function convertToWebp(path: string, width: number, height: number): Promise { + return convertSharpToWebp(await sharp(path), width, height); +} + +export async function convertSharpToWebp(sharp: sharp.Sharp, width: number, height: number): Promise { + const data = await sharp + .resize(width, height, { + fit: 'inside', + withoutEnlargement: true + }) + .rotate() + .webp({ + quality: 85 + }) + .toBuffer(); + + return { + data, + ext: 'webp', + type: 'image/webp' + }; +} + +/** + * Convert to PNG + * with resize, remove metadata, resolve orientation, stop animation + */ +export async function convertToPng(path: string, width: number, height: number): Promise { + return convertSharpToPng(await sharp(path), width, height); +} + +export async function convertSharpToPng(sharp: sharp.Sharp, width: number, height: number): Promise { + const data = await sharp + .resize(width, height, { + fit: 'inside', + withoutEnlargement: true + }) + .rotate() + .png() + .toBuffer(); + + return { + data, + ext: 'png', + type: 'image/png' + }; +} + +/** + * Convert to PNG or JPEG + * with resize, remove metadata, resolve orientation, stop animation + */ +export async function convertToPngOrJpeg(path: string, width: number, height: number): Promise { + return convertSharpToPngOrJpeg(await sharp(path), width, height); +} + +export async function convertSharpToPngOrJpeg(sharp: sharp.Sharp, width: number, height: number): Promise { + const stats = await sharp.stats(); + const metadata = await sharp.metadata(); + + // 不透明で300x300pxの範囲を超えていればJPEG + if (stats.isOpaque && ((metadata.width && metadata.width >= 300) || (metadata.height && metadata!.height >= 300))) { + return await convertSharpToJpeg(sharp, width, height); + } else { + return await convertSharpToPng(sharp, width, height); + } +} diff --git a/src/services/drive/internal-storage.ts b/src/services/drive/internal-storage.ts new file mode 100644 index 000000000..f8d7489a2 --- /dev/null +++ b/src/services/drive/internal-storage.ts @@ -0,0 +1,29 @@ +import * as fs from 'fs'; +import * as Path from 'path'; +import config from '../../config'; + +export class InternalStorage { + private static readonly path = Path.resolve(__dirname, '../../../files'); + + public static resolvePath = (key: string) => Path.resolve(InternalStorage.path, key); + + public static read(key: string) { + return fs.createReadStream(InternalStorage.resolvePath(key)); + } + + public static saveFromPath(key: string, srcPath: string) { + fs.mkdirSync(InternalStorage.path, { recursive: true }); + fs.copyFileSync(srcPath, InternalStorage.resolvePath(key)); + return `${config.url}/files/${key}`; + } + + public static saveFromBuffer(key: string, data: Buffer) { + fs.mkdirSync(InternalStorage.path, { recursive: true }); + fs.writeFileSync(InternalStorage.resolvePath(key), data); + return `${config.url}/files/${key}`; + } + + public static del(key: string) { + fs.unlink(InternalStorage.resolvePath(key), () => {}); + } +} diff --git a/src/services/drive/logger.ts b/src/services/drive/logger.ts new file mode 100644 index 000000000..655d074d6 --- /dev/null +++ b/src/services/drive/logger.ts @@ -0,0 +1,3 @@ +import Logger from '../logger'; + +export const driveLogger = new Logger('drive', 'blue'); diff --git a/src/services/drive/s3.ts b/src/services/drive/s3.ts new file mode 100644 index 000000000..abe3c166a --- /dev/null +++ b/src/services/drive/s3.ts @@ -0,0 +1,21 @@ +import * as S3 from 'aws-sdk/clients/s3'; +import { Meta } from '../../models/entities/meta'; +import { getAgentByUrl } from '../../misc/fetch'; + +export function getS3(meta: Meta) { + const u = meta.objectStorageEndpoint != null + ? `${meta.objectStorageUseSSL ? 'https://' : 'http://'}${meta.objectStorageEndpoint}` + : `${meta.objectStorageUseSSL ? 'https://' : 'http://'}example.net`; + + return new S3({ + endpoint: meta.objectStorageEndpoint || undefined, + accessKeyId: meta.objectStorageAccessKey!, + secretAccessKey: meta.objectStorageSecretKey!, + region: meta.objectStorageRegion || undefined, + sslEnabled: meta.objectStorageUseSSL, + s3ForcePathStyle: !!meta.objectStorageEndpoint, + httpOptions: { + agent: getAgentByUrl(new URL(u), !meta.objectStorageUseProxy) + } + }); +} diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts new file mode 100644 index 000000000..96550f712 --- /dev/null +++ b/src/services/drive/upload-from-url.ts @@ -0,0 +1,55 @@ +import create from './add-file'; +import { User } from '../../models/entities/user'; +import { driveLogger } from './logger'; +import { createTemp } from '../../misc/create-temp'; +import { downloadUrl } from '../../misc/download-url'; +import { DriveFolder } from '../../models/entities/drive-folder'; +import { DriveFile } from '../../models/entities/drive-file'; +import { DriveFiles } from '../../models'; + +const logger = driveLogger.createSubLogger('downloader'); + +export default async ( + url: string, + user: User | null, + folderId: DriveFolder['id'] | null = null, + uri: string | null = null, + sensitive = false, + force = false, + link = false, + comment = null +): Promise => { + let name = new URL(url).pathname.split('/').pop() || null; + if (name == null || !DriveFiles.validateFileName(name)) { + name = null; + } + + // Create temp file + const [path, cleanup] = await createTemp(); + + // write content at URL to temp file + await downloadUrl(url, path); + + let driveFile: DriveFile; + let error; + + try { + driveFile = await create(user, path, name, comment, folderId, force, link, url, uri, sensitive); + logger.succ(`Got: ${driveFile.id}`); + } catch (e) { + error = e; + logger.error(`Failed to create drive file: ${e}`, { + url: url, + e: e + }); + } + + // clean-up + cleanup(); + + if (error) { + throw error; + } else { + return driveFile!; + } +}; diff --git a/packages/backend/src/services/fetch-instance-metadata.ts b/src/services/fetch-instance-metadata.ts similarity index 77% rename from packages/backend/src/services/fetch-instance-metadata.ts rename to src/services/fetch-instance-metadata.ts index ee1245132..c1caeef6e 100644 --- a/packages/backend/src/services/fetch-instance-metadata.ts +++ b/src/services/fetch-instance-metadata.ts @@ -1,12 +1,11 @@ import { DOMWindow, JSDOM } from 'jsdom'; import fetch from 'node-fetch'; -import tinycolor from 'tinycolor2'; -import { getJson, getHtml, getAgentByUrl } from '@/misc/fetch.js'; -import { Instance } from '@/models/entities/instance.js'; -import { Instances } from '@/models/index.js'; -import { getFetchInstanceMetadataLock } from '@/misc/app-lock.js'; -import Logger from './logger.js'; -import { URL } from 'node:url'; +import { getJson, getHtml, getAgentByUrl } from '../misc/fetch'; +import { Instance } from '../models/entities/instance'; +import { Instances } from '../models'; +import { getFetchInstanceMetadataLock } from '../misc/app-lock'; +import Logger from './logger'; +import { URL } from 'url'; const logger = new Logger('metadata', 'cyan'); @@ -14,7 +13,7 @@ export async function fetchInstanceMetadata(instance: Instance, force = false): const unlock = await getFetchInstanceMetadataLock(instance.host); if (!force) { - const _instance = await Instances.findOneBy({ host: instance.host }); + const _instance = await Instances.findOne({ host: instance.host }); const now = Date.now(); if (_instance && _instance.infoUpdatedAt && (now - _instance.infoUpdatedAt.getTime() < 1000 * 60 * 60 * 24)) { unlock(); @@ -34,7 +33,7 @@ export async function fetchInstanceMetadata(instance: Instance, force = false): const [favicon, icon, themeColor, name, description] = await Promise.all([ fetchFaviconUrl(instance, dom).catch(() => null), fetchIconUrl(instance, dom, manifest).catch(() => null), - getThemeColor(info, dom, manifest).catch(() => null), + getThemeColor(dom, manifest).catch(() => null), getSiteName(info, dom, manifest).catch(() => null), getDescription(info, dom, manifest).catch(() => null), ]); @@ -98,7 +97,7 @@ async function fetchNodeinfo(instance: Instance): Promise { } else { throw e.statusCode || e.message; } - }) as Record; + }); if (wellknown.links == null || !Array.isArray(wellknown.links)) { throw 'No wellknown links'; @@ -122,7 +121,7 @@ async function fetchNodeinfo(instance: Instance): Promise { logger.succ(`Successfuly fetched nodeinfo of ${instance.host}`); - return info as NodeInfo; + return info; } catch (e) { logger.error(`Failed to fetch nodeinfo of ${instance.host}: ${e}`); @@ -143,12 +142,12 @@ async function fetchDom(instance: Instance): Promise { return doc; } -async function fetchManifest(instance: Instance): Promise | null> { +async function fetchManifest(instance: Instance): Promise | null> { const url = 'https://' + instance.host; const manifestUrl = url + '/manifest.json'; - const manifest = await getJson(manifestUrl) as Record; + const manifest = await getJson(manifestUrl); return manifest; } @@ -157,8 +156,7 @@ async function fetchFaviconUrl(instance: Instance, doc: DOMWindow['document'] | const url = 'https://' + instance.host; if (doc) { - // https://github.com/misskey-dev/misskey/pull/8220#issuecomment-1025104043 - const href = Array.from(doc.getElementsByTagName('link')).reverse().find(link => link.relList.contains('icon'))?.href; + const href = doc.querySelector('link[rel="icon"]')?.getAttribute('href'); if (href) { return (new URL(href, url)).href; @@ -168,8 +166,7 @@ async function fetchFaviconUrl(instance: Instance, doc: DOMWindow['document'] | const faviconUrl = url + '/favicon.ico'; const favicon = await fetch(faviconUrl, { - // TODO - //timeout: 10000, + timeout: 10000, agent: getAgentByUrl, }); @@ -189,16 +186,11 @@ async function fetchIconUrl(instance: Instance, doc: DOMWindow['document'] | nul if (doc) { const url = 'https://' + instance.host; - // https://github.com/misskey-dev/misskey/pull/8220#issuecomment-1025104043 - const links = Array.from(doc.getElementsByTagName('link')).reverse(); - // https://github.com/misskey-dev/misskey/pull/8220/files/0ec4eba22a914e31b86874f12448f88b3e58dd5a#r796487559 - const href = - [ - links.find(link => link.relList.contains('apple-touch-icon-precomposed'))?.href, - links.find(link => link.relList.contains('apple-touch-icon'))?.href, - links.find(link => link.relList.contains('icon'))?.href, - ] - .find(href => href); + const hrefAppleTouchIconPrecomposed = doc.querySelector('link[rel="apple-touch-icon-precomposed"]')?.getAttribute('href'); + const hrefAppleTouchIcon = doc.querySelector('link[rel="apple-touch-icon"]')?.getAttribute('href'); + const hrefIcon = doc.querySelector('link[rel="icon"]')?.getAttribute('href'); + + const href = hrefAppleTouchIconPrecomposed || hrefAppleTouchIcon || hrefIcon; if (href) { return (new URL(href, url)).href; @@ -208,12 +200,17 @@ async function fetchIconUrl(instance: Instance, doc: DOMWindow['document'] | nul return null; } -async function getThemeColor(info: NodeInfo | null, doc: DOMWindow['document'] | null, manifest: Record | null): Promise { - const themeColor = info?.metadata?.themeColor || doc?.querySelector('meta[name="theme-color"]')?.getAttribute('content') || manifest?.theme_color; +async function getThemeColor(doc: DOMWindow['document'] | null, manifest: Record | null): Promise { + if (doc) { + const themeColor = doc.querySelector('meta[name="theme-color"]')?.getAttribute('content'); - if (themeColor) { - const color = new tinycolor(themeColor); - if (color.isValid()) return color.toHexString(); + if (themeColor) { + return themeColor; + } + } + + if (manifest) { + return manifest.theme_color; } return null; diff --git a/src/services/following/create.ts b/src/services/following/create.ts new file mode 100644 index 000000000..c5f130f49 --- /dev/null +++ b/src/services/following/create.ts @@ -0,0 +1,173 @@ +import { publishMainStream } from '../stream'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderFollow from '../../remote/activitypub/renderer/follow'; +import renderAccept from '../../remote/activitypub/renderer/accept'; +import renderReject from '../../remote/activitypub/renderer/reject'; +import { deliver } from '../../queue'; +import createFollowRequest from './requests/create'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import Logger from '../logger'; +import { IdentifiableError } from '../../misc/identifiable-error'; +import { User } from '../../models/entities/user'; +import { Followings, Users, FollowRequests, Blockings, Instances, UserProfiles } from '../../models'; +import { instanceChart, perUserFollowingChart } from '../chart'; +import { genId } from '../../misc/gen-id'; +import { createNotification } from '../create-notification'; +import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error'; +import { ensure } from '../../prelude/ensure'; + +const logger = new Logger('following/create'); + +export async function insertFollowingDoc(followee: User, follower: User) { + if (follower.id === followee.id) return; + + let alreadyFollowed = false; + + await Followings.save({ + id: genId(), + createdAt: new Date(), + followerId: follower.id, + followeeId: followee.id, + + // 非正規化 + followerHost: follower.host, + followerInbox: Users.isRemoteUser(follower) ? follower.inbox : null, + followerSharedInbox: Users.isRemoteUser(follower) ? follower.sharedInbox : null, + followeeHost: followee.host, + followeeInbox: Users.isRemoteUser(followee) ? followee.inbox : null, + followeeSharedInbox: Users.isRemoteUser(followee) ? followee.sharedInbox : null + }).catch(e => { + if (isDuplicateKeyValueError(e) && Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + logger.info(`Insert duplicated ignore. ${follower.id} => ${followee.id}`); + alreadyFollowed = true; + } else { + throw e; + } + }); + + const req = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + if (req) { + await FollowRequests.delete({ + followeeId: followee.id, + followerId: follower.id + }); + + // 通知を作成 + createNotification(follower.id, 'followRequestAccepted', { + notifierId: followee.id, + }); + } + + if (alreadyFollowed) return; + + //#region Increment counts + Users.increment({ id: follower.id }, 'followingCount', 1); + Users.increment({ id: followee.id }, 'followersCount', 1); + //#endregion + + //#region Update instance stats + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + registerOrFetchInstanceDoc(follower.host).then(i => { + Instances.increment({ id: i.id }, 'followingCount', 1); + instanceChart.updateFollowing(i.host, true); + }); + } else if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + registerOrFetchInstanceDoc(followee.host).then(i => { + Instances.increment({ id: i.id }, 'followersCount', 1); + instanceChart.updateFollowers(i.host, true); + }); + } + //#endregion + + perUserFollowingChart.update(follower, followee, true); + + // Publish follow event + if (Users.isLocalUser(follower)) { + Users.pack(followee, follower, { + detail: true + }).then(packed => publishMainStream(follower.id, 'follow', packed)); + } + + // Publish followed event + if (Users.isLocalUser(followee)) { + Users.pack(follower, followee).then(packed => publishMainStream(followee.id, 'followed', packed)), + + // 通知を作成 + createNotification(followee.id, 'follow', { + notifierId: follower.id + }); + } +} + +export default async function(follower: User, followee: User, requestId?: string) { + // check blocking + const [blocking, blocked] = await Promise.all([ + Blockings.findOne({ + blockerId: follower.id, + blockeeId: followee.id, + }), + Blockings.findOne({ + blockerId: followee.id, + blockeeId: follower.id, + }) + ]); + + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee) && blocked) { + // リモートフォローを受けてブロックしていた場合は、エラーにするのではなくRejectを送り返しておしまい。 + const content = renderActivity(renderReject(renderFollow(follower, followee, requestId), followee)); + deliver(followee , content, follower.inbox); + return; + } else if (Users.isRemoteUser(follower) && Users.isLocalUser(followee) && blocking) { + // リモートフォローを受けてブロックされているはずの場合だったら、ブロック解除しておく。 + await Blockings.delete(blocking.id); + } else { + // それ以外は単純に例外 + if (blocking != null) throw new IdentifiableError('710e8fb0-b8c3-4922-be49-d5d93d8e6a6e', 'blocking'); + if (blocked != null) throw new IdentifiableError('3338392a-f764-498d-8855-db939dcf8c48', 'blocked'); + } + + const followeeProfile = await UserProfiles.findOne(followee.id).then(ensure); + + // フォロー対象が鍵アカウントである or + // フォロワーがBotであり、フォロー対象がBotからのフォローに慎重である or + // フォロワーがローカルユーザーであり、フォロー対象がリモートユーザーである + // 上記のいずれかに当てはまる場合はすぐフォローせずにフォローリクエストを発行しておく + if (followee.isLocked || (followeeProfile.carefulBot && follower.isBot) || (Users.isLocalUser(follower) && Users.isRemoteUser(followee))) { + let autoAccept = false; + + // 鍵アカウントであっても、既にフォローされていた場合はスルー + const following = await Followings.findOne({ + followerId: follower.id, + followeeId: followee.id, + }); + if (following) { + autoAccept = true; + } + + // フォローしているユーザーは自動承認オプション + if (!autoAccept && (Users.isLocalUser(followee) && followeeProfile.autoAcceptFollowed)) { + const followed = await Followings.findOne({ + followerId: followee.id, + followeeId: follower.id + }); + + if (followed) autoAccept = true; + } + + if (!autoAccept) { + await createFollowRequest(follower, followee, requestId); + return; + } + } + + await insertFollowingDoc(followee, follower); + + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + const content = renderActivity(renderAccept(renderFollow(follower, followee, requestId), followee)); + deliver(followee, content, follower.inbox); + } +} diff --git a/src/services/following/delete.ts b/src/services/following/delete.ts new file mode 100644 index 000000000..882161151 --- /dev/null +++ b/src/services/following/delete.ts @@ -0,0 +1,66 @@ +import { publishMainStream } from '../stream'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderFollow from '../../remote/activitypub/renderer/follow'; +import renderUndo from '../../remote/activitypub/renderer/undo'; +import { deliver } from '../../queue'; +import Logger from '../logger'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import { User } from '../../models/entities/user'; +import { Followings, Users, Instances } from '../../models'; +import { instanceChart, perUserFollowingChart } from '../chart'; + +const logger = new Logger('following/delete'); + +export default async function(follower: User, followee: User, silent = false) { + const following = await Followings.findOne({ + followerId: follower.id, + followeeId: followee.id + }); + + if (following == null) { + logger.warn('フォロー解除がリクエストされましたがフォローしていませんでした'); + return; + } + + await Followings.delete(following.id); + + decrementFollowing(follower, followee); + + // Publish unfollow event + if (!silent && Users.isLocalUser(follower)) { + Users.pack(followee, follower, { + detail: true + }).then(packed => publishMainStream(follower.id, 'unfollow', packed)); + } + + if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); + deliver(follower, content, followee.inbox); + } +} + +export async function decrementFollowing(follower: User, followee: User) { + //#region Decrement following count + Users.decrement({ id: follower.id }, 'followingCount', 1); + //#endregion + + //#region Decrement followers count + Users.decrement({ id: followee.id }, 'followersCount', 1); + //#endregion + + //#region Update instance stats + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + registerOrFetchInstanceDoc(follower.host).then(i => { + Instances.decrement({ id: i.id }, 'followingCount', 1); + instanceChart.updateFollowing(i.host, false); + }); + } else if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + registerOrFetchInstanceDoc(followee.host).then(i => { + Instances.decrement({ id: i.id }, 'followersCount', 1); + instanceChart.updateFollowers(i.host, false); + }); + } + //#endregion + + perUserFollowingChart.update(follower, followee, false); +} diff --git a/src/services/following/requests/accept-all.ts b/src/services/following/requests/accept-all.ts new file mode 100644 index 000000000..70e7448aa --- /dev/null +++ b/src/services/following/requests/accept-all.ts @@ -0,0 +1,19 @@ +import accept from './accept'; +import { User } from '../../../models/entities/user'; +import { FollowRequests, Users } from '../../../models'; +import { ensure } from '../../../prelude/ensure'; + +/** + * 指定したユーザー宛てのフォローリクエストをすべて承認 + * @param user ユーザー + */ +export default async function(user: User) { + const requests = await FollowRequests.find({ + followeeId: user.id + }); + + for (const request of requests) { + const follower = await Users.findOne(request.followerId).then(ensure); + accept(user, follower); + } +} diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts new file mode 100644 index 000000000..1397514ad --- /dev/null +++ b/src/services/following/requests/accept.ts @@ -0,0 +1,26 @@ +import { renderActivity } from '../../../remote/activitypub/renderer'; +import renderFollow from '../../../remote/activitypub/renderer/follow'; +import renderAccept from '../../../remote/activitypub/renderer/accept'; +import { deliver } from '../../../queue'; +import { publishMainStream } from '../../stream'; +import { insertFollowingDoc } from '../create'; +import { User, ILocalUser } from '../../../models/entities/user'; +import { FollowRequests, Users } from '../../../models'; + +export default async function(followee: User, follower: User) { + const request = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + await insertFollowingDoc(followee, follower); + + if (Users.isRemoteUser(follower) && request) { + const content = renderActivity(renderAccept(renderFollow(follower, followee, request.requestId!), followee as ILocalUser)); + deliver(followee as ILocalUser, content, follower.inbox); + } + + Users.pack(followee, followee, { + detail: true + }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); +} diff --git a/src/services/following/requests/cancel.ts b/src/services/following/requests/cancel.ts new file mode 100644 index 000000000..98fec5d33 --- /dev/null +++ b/src/services/following/requests/cancel.ts @@ -0,0 +1,33 @@ +import { renderActivity } from '../../../remote/activitypub/renderer'; +import renderFollow from '../../../remote/activitypub/renderer/follow'; +import renderUndo from '../../../remote/activitypub/renderer/undo'; +import { deliver } from '../../../queue'; +import { publishMainStream } from '../../stream'; +import { IdentifiableError } from '../../../misc/identifiable-error'; +import { User, ILocalUser } from '../../../models/entities/user'; +import { Users, FollowRequests } from '../../../models'; + +export default async function(followee: User, follower: User) { + if (Users.isRemoteUser(followee)) { + const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); + deliver(follower as ILocalUser, content, followee.inbox); + } + + const request = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + if (request == null) { + throw new IdentifiableError('17447091-ce07-46dd-b331-c1fd4f15b1e7', 'request not found'); + } + + await FollowRequests.delete({ + followeeId: followee.id, + followerId: follower.id + }); + + Users.pack(followee, followee, { + detail: true + }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); +} diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts new file mode 100644 index 000000000..deaeedb9a --- /dev/null +++ b/src/services/following/requests/create.ts @@ -0,0 +1,63 @@ +import { publishMainStream } from '../../stream'; +import { renderActivity } from '../../../remote/activitypub/renderer'; +import renderFollow from '../../../remote/activitypub/renderer/follow'; +import { deliver } from '../../../queue'; +import { User } from '../../../models/entities/user'; +import { Blockings, FollowRequests, Users } from '../../../models'; +import { genId } from '../../../misc/gen-id'; +import { createNotification } from '../../create-notification'; + +export default async function(follower: User, followee: User, requestId?: string) { + if (follower.id === followee.id) return; + + // check blocking + const [blocking, blocked] = await Promise.all([ + Blockings.findOne({ + blockerId: follower.id, + blockeeId: followee.id, + }), + Blockings.findOne({ + blockerId: followee.id, + blockeeId: follower.id, + }) + ]); + + if (blocking != null) throw new Error('blocking'); + if (blocked != null) throw new Error('blocked'); + + const followRequest = await FollowRequests.save({ + id: genId(), + createdAt: new Date(), + followerId: follower.id, + followeeId: followee.id, + requestId, + + // 非正規化 + followerHost: follower.host, + followerInbox: Users.isRemoteUser(follower) ? follower.inbox : undefined, + followerSharedInbox: Users.isRemoteUser(follower) ? follower.sharedInbox : undefined, + followeeHost: followee.host, + followeeInbox: Users.isRemoteUser(followee) ? followee.inbox : undefined, + followeeSharedInbox: Users.isRemoteUser(followee) ? followee.sharedInbox : undefined + }); + + // Publish receiveRequest event + if (Users.isLocalUser(followee)) { + Users.pack(follower, followee).then(packed => publishMainStream(followee.id, 'receiveFollowRequest', packed)); + + Users.pack(followee, followee, { + detail: true + }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); + + // 通知を作成 + createNotification(followee.id, 'receiveFollowRequest', { + notifierId: follower.id, + followRequestId: followRequest.id + }); + } + + if (Users.isLocalUser(follower) && Users.isRemoteUser(followee)) { + const content = renderActivity(renderFollow(follower, followee)); + deliver(follower, content, followee.inbox); + } +} diff --git a/src/services/following/requests/reject.ts b/src/services/following/requests/reject.ts new file mode 100644 index 000000000..9a8b14bbf --- /dev/null +++ b/src/services/following/requests/reject.ts @@ -0,0 +1,43 @@ +import { renderActivity } from '../../../remote/activitypub/renderer'; +import renderFollow from '../../../remote/activitypub/renderer/follow'; +import renderReject from '../../../remote/activitypub/renderer/reject'; +import { deliver } from '../../../queue'; +import { publishMainStream } from '../../stream'; +import { User, ILocalUser } from '../../../models/entities/user'; +import { Users, FollowRequests, Followings } from '../../../models'; +import { decrementFollowing } from '../delete'; + +export default async function(followee: User, follower: User) { + if (Users.isRemoteUser(follower)) { + const request = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + const content = renderActivity(renderReject(renderFollow(follower, followee, request!.requestId!), followee as ILocalUser)); + deliver(followee as ILocalUser, content, follower.inbox); + } + + const request = await FollowRequests.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + if (request) { + await FollowRequests.delete(request.id); + } else { + const following = await Followings.findOne({ + followeeId: followee.id, + followerId: follower.id + }); + + if (following) { + await Followings.delete(following.id); + decrementFollowing(follower, followee); + } + } + + Users.pack(followee, follower, { + detail: true + }).then(packed => publishMainStream(follower.id, 'unfollow', packed)); +} diff --git a/src/services/i/pin.ts b/src/services/i/pin.ts new file mode 100644 index 000000000..1ff5476b4 --- /dev/null +++ b/src/services/i/pin.ts @@ -0,0 +1,92 @@ +import config from '../../config'; +import renderAdd from '../../remote/activitypub/renderer/add'; +import renderRemove from '../../remote/activitypub/renderer/remove'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import { IdentifiableError } from '../../misc/identifiable-error'; +import { User } from '../../models/entities/user'; +import { Note } from '../../models/entities/note'; +import { Notes, UserNotePinings, Users } from '../../models'; +import { UserNotePining } from '../../models/entities/user-note-pining'; +import { genId } from '../../misc/gen-id'; +import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import { deliverToRelays } from '../relay'; + +/** + * 指定した投稿をピン留めします + * @param user + * @param noteId + */ +export async function addPinned(user: User, noteId: Note['id']) { + // Fetch pinee + const note = await Notes.findOne({ + id: noteId, + userId: user.id + }); + + if (note == null) { + throw new IdentifiableError('70c4e51f-5bea-449c-a030-53bee3cce202', 'No such note.'); + } + + const pinings = await UserNotePinings.find({ userId: user.id }); + + if (pinings.length >= 5) { + throw new IdentifiableError('15a018eb-58e5-4da1-93be-330fcc5e4e1a', 'You can not pin notes any more.'); + } + + if (pinings.some(pining => pining.noteId === note.id)) { + throw new IdentifiableError('23f0cf4e-59a3-4276-a91d-61a5891c1514', 'That note has already been pinned.'); + } + + await UserNotePinings.save({ + id: genId(), + createdAt: new Date(), + userId: user.id, + noteId: note.id + } as UserNotePining); + + // Deliver to remote followers + if (Users.isLocalUser(user)) { + deliverPinnedChange(user.id, note.id, true); + } +} + +/** + * 指定した投稿のピン留めを解除します + * @param user + * @param noteId + */ +export async function removePinned(user: User, noteId: Note['id']) { + // Fetch unpinee + const note = await Notes.findOne({ + id: noteId, + userId: user.id + }); + + if (note == null) { + throw new IdentifiableError('b302d4cf-c050-400a-bbb3-be208681f40c', 'No such note.'); + } + + UserNotePinings.delete({ + userId: user.id, + noteId: note.id + }); + + // Deliver to remote followers + if (Users.isLocalUser(user)) { + deliverPinnedChange(user.id, noteId, false); + } +} + +export async function deliverPinnedChange(userId: User['id'], noteId: Note['id'], isAddition: boolean) { + const user = await Users.findOne(userId); + if (user == null) throw new Error('user not found'); + + if (!Users.isLocalUser(user)) return; + + const target = `${config.url}/users/${user.id}/collections/featured`; + const item = `${config.url}/notes/${noteId}`; + const content = renderActivity(isAddition ? renderAdd(user, target, item) : renderRemove(user, target, item)); + + deliverToFollowers(user, content); + deliverToRelays(user, content); +} diff --git a/src/services/i/update.ts b/src/services/i/update.ts new file mode 100644 index 000000000..8d40b08a8 --- /dev/null +++ b/src/services/i/update.ts @@ -0,0 +1,19 @@ +import renderUpdate from '../../remote/activitypub/renderer/update'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import { Users } from '../../models'; +import { User } from '../../models/entities/user'; +import { renderPerson } from '../../remote/activitypub/renderer/person'; +import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import { deliverToRelays } from '../relay'; + +export async function publishToFollowers(userId: User['id']) { + const user = await Users.findOne(userId); + if (user == null) throw new Error('user not found'); + + // フォロワーがリモートユーザーかつ投稿者がローカルユーザーならUpdateを配信 + if (Users.isLocalUser(user)) { + const content = renderActivity(renderUpdate(await renderPerson(user), user)); + deliverToFollowers(user, content); + deliverToRelays(user, content); + } +} diff --git a/src/services/insert-moderation-log.ts b/src/services/insert-moderation-log.ts new file mode 100644 index 000000000..33dab9725 --- /dev/null +++ b/src/services/insert-moderation-log.ts @@ -0,0 +1,13 @@ +import { ILocalUser } from '../models/entities/user'; +import { ModerationLogs } from '../models'; +import { genId } from '../misc/gen-id'; + +export async function insertModerationLog(moderator: ILocalUser, type: string, info?: Record) { + await ModerationLogs.save({ + id: genId(), + createdAt: new Date(), + userId: moderator.id, + type: type, + info: info || {} + }); +} diff --git a/src/services/instance-actor.ts b/src/services/instance-actor.ts new file mode 100644 index 000000000..74591846f --- /dev/null +++ b/src/services/instance-actor.ts @@ -0,0 +1,17 @@ +import { createSystemUser } from './create-system-user'; +import { ILocalUser } from '../models/entities/user'; +import { Users } from '../models'; + +const ACTOR_USERNAME = 'instance.actor' as const; + +export async function getInstanceActor(): Promise { + const user = await Users.findOne({ + host: null, + username: ACTOR_USERNAME + }); + + if (user) return user as ILocalUser; + + const created = await createSystemUser(ACTOR_USERNAME); + return created as ILocalUser; +} diff --git a/src/services/logger.ts b/src/services/logger.ts new file mode 100644 index 000000000..eb2b257dd --- /dev/null +++ b/src/services/logger.ts @@ -0,0 +1,141 @@ +import * as cluster from 'cluster'; +import * as os from 'os'; +import * as chalk from 'chalk'; +import * as dateformat from 'dateformat'; +import { program } from '../argv'; +import { getRepository } from 'typeorm'; +import { Log } from '../models/entities/log'; +import { genId } from '../misc/gen-id'; +import config from '../config'; + +const SyslogPro = require('syslog-pro'); + +type Domain = { + name: string; + color?: string; +}; + +type Level = 'error' | 'success' | 'warning' | 'debug' | 'info'; + +export default class Logger { + private domain: Domain; + private parentLogger: Logger | null = null; + private store: boolean; + private syslogClient: any | null = null; + + constructor(domain: string, color?: string, store = true) { + this.domain = { + name: domain, + color: color, + }; + this.store = store; + + if (config.syslog) { + this.syslogClient = new SyslogPro.RFC5424({ + applacationName: 'Misskey', + timestamp: true, + encludeStructuredData: true, + color: true, + extendedColor: true, + server: { + target: config.syslog.host, + port: config.syslog.port, + } + }); + } + } + + public createSubLogger(domain: string, color?: string, store = true): Logger { + const logger = new Logger(domain, color, store); + logger.parentLogger = this; + return logger; + } + + private log(level: Level, message: string, data?: Record | null, important = false, subDomains: Domain[] = [], store = true): void { + if (program.quiet) return; + if (!this.store) store = false; + if (level === 'debug') store = false; + + if (this.parentLogger) { + this.parentLogger.log(level, message, data, important, [this.domain].concat(subDomains), store); + return; + } + + const time = dateformat(new Date(), 'HH:MM:ss'); + const worker = cluster.isMaster ? '*' : cluster.worker.id; + const l = + level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') : + level === 'warning' ? chalk.yellow('WARN') : + level === 'success' ? important ? chalk.bgGreen.white('DONE') : chalk.green('DONE') : + level === 'debug' ? chalk.gray('VERB') : + level === 'info' ? chalk.blue('INFO') : + null; + const domains = [this.domain].concat(subDomains).map(d => d.color ? chalk.keyword(d.color)(d.name) : chalk.white(d.name)); + const m = + level === 'error' ? chalk.red(message) : + level === 'warning' ? chalk.yellow(message) : + level === 'success' ? chalk.green(message) : + level === 'debug' ? chalk.gray(message) : + level === 'info' ? message : + null; + + let log = `${l} ${worker}\t[${domains.join(' ')}]\t${m}`; + if (program.withLogTime) log = chalk.gray(time) + ' ' + log; + + console.log(important ? chalk.bold(log) : log); + + if (store) { + if (this.syslogClient) { + const send = + level === 'error' ? this.syslogClient.error : + level === 'warning' ? this.syslogClient.warning : + level === 'success' ? this.syslogClient.info : + level === 'debug' ? this.syslogClient.info : + level === 'info' ? this.syslogClient.info : + null as never; + + send.bind(this.syslogClient)(message); + } else { + const Logs = getRepository(Log); + Logs.insert({ + id: genId(), + createdAt: new Date(), + machine: os.hostname(), + worker: worker.toString(), + domain: [this.domain].concat(subDomains).map(d => d.name), + level: level, + message: message.substr(0, 1000), // 1024を超えるとログが挿入できずエラーになり無限ループする + data: data, + } as Log); + } + } + } + + public error(x: string | Error, data?: Record | null, important = false): void { // 実行を継続できない状況で使う + if (x instanceof Error) { + data = data || {}; + data.e = x; + this.log('error', x.toString(), data, important); + } else { + this.log('error', x, data, important); + } + } + + public warn(message: string, data?: Record | null, important = false): void { // 実行を継続できるが改善すべき状況で使う + this.log('warning', message, data, important); + } + + public succ(message: string, data?: Record | null, important = false): void { // 何かに成功した状況で使う + this.log('success', message, data, important); + } + + public debug(message: string, data?: Record | null, important = false): void { // デバッグ用に使う(開発者に必要だが利用者に不要な情報) + if (process.env.NODE_ENV != 'production' || program.verbose) { + this.log('debug', message, data, important); + } + } + + public info(message: string, data?: Record | null, important = false): void { // それ以外 + this.log('info', message, data, important); + } +} diff --git a/src/services/messages/create.ts b/src/services/messages/create.ts new file mode 100644 index 000000000..8646ce37f --- /dev/null +++ b/src/services/messages/create.ts @@ -0,0 +1,106 @@ +import { User } from '../../models/entities/user'; +import { UserGroup } from '../../models/entities/user-group'; +import { DriveFile } from '../../models/entities/drive-file'; +import { MessagingMessages, UserGroupJoinings, Mutings, Users } from '../../models'; +import { genId } from '../../misc/gen-id'; +import { MessagingMessage } from '../../models/entities/messaging-message'; +import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '../stream'; +import pushNotification from '../push-notification'; +import { Not } from 'typeorm'; +import { Note } from '../../models/entities/note'; +import renderNote from '../../remote/activitypub/renderer/note'; +import renderCreate from '../../remote/activitypub/renderer/create'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import { deliver } from '../../queue'; + +export async function createMessage(user: User, recipientUser: User | undefined, recipientGroup: UserGroup | undefined, text: string | undefined, file: DriveFile | null, uri?: string) { + const message = await MessagingMessages.save({ + id: genId(), + createdAt: new Date(), + fileId: file ? file.id : null, + recipientId: recipientUser ? recipientUser.id : null, + groupId: recipientGroup ? recipientGroup.id : null, + text: text ? text.trim() : null, + userId: user.id, + isRead: false, + reads: [] as any[], + uri + } as MessagingMessage); + + const messageObj = await MessagingMessages.pack(message); + + if (recipientUser) { + if (Users.isLocalUser(user)) { + // 自分のストリーム + publishMessagingStream(message.userId, recipientUser.id, 'message', messageObj); + publishMessagingIndexStream(message.userId, 'message', messageObj); + publishMainStream(message.userId, 'messagingMessage', messageObj); + } + + if (Users.isLocalUser(recipientUser)) { + // 相手のストリーム + publishMessagingStream(recipientUser.id, message.userId, 'message', messageObj); + publishMessagingIndexStream(recipientUser.id, 'message', messageObj); + publishMainStream(recipientUser.id, 'messagingMessage', messageObj); + } + } else if (recipientGroup) { + // グループのストリーム + publishGroupMessagingStream(recipientGroup.id, 'message', messageObj); + + // メンバーのストリーム + const joinings = await UserGroupJoinings.find({ userGroupId: recipientGroup.id }); + for (const joining of joinings) { + publishMessagingIndexStream(joining.userId, 'message', messageObj); + publishMainStream(joining.userId, 'messagingMessage', messageObj); + } + } + + // 2秒経っても(今回作成した)メッセージが既読にならなかったら「未読のメッセージがありますよ」イベントを発行する + setTimeout(async () => { + const freshMessage = await MessagingMessages.findOne(message.id); + if (freshMessage == null) return; // メッセージが削除されている場合もある + + if (recipientUser && Users.isLocalUser(recipientUser)) { + if (freshMessage.isRead) return; // 既読 + + //#region ただしミュートされているなら発行しない + const mute = await Mutings.find({ + muterId: recipientUser.id, + }); + if (mute.map(m => m.muteeId).includes(user.id)) return; + //#endregion + + publishMainStream(recipientUser.id, 'unreadMessagingMessage', messageObj); + pushNotification(recipientUser.id, 'unreadMessagingMessage', messageObj); + } else if (recipientGroup) { + const joinings = await UserGroupJoinings.find({ userGroupId: recipientGroup.id, userId: Not(user.id) }); + for (const joining of joinings) { + if (freshMessage.reads.includes(joining.userId)) return; // 既読 + publishMainStream(joining.userId, 'unreadMessagingMessage', messageObj); + pushNotification(joining.userId, 'unreadMessagingMessage', messageObj); + } + } + }, 2000); + + if (recipientUser && Users.isLocalUser(user) && Users.isRemoteUser(recipientUser)) { + const note = { + id: message.id, + createdAt: message.createdAt, + fileIds: message.fileId ? [ message.fileId ] : [], + text: message.text, + userId: message.userId, + visibility: 'specified', + mentions: [ recipientUser ].map(u => u.id), + mentionedRemoteUsers: JSON.stringify([ recipientUser ].map(u => ({ + uri: u.uri, + username: u.username, + host: u.host + }))), + } as Note; + + const activity = renderActivity(renderCreate(await renderNote(note, false, true), note)); + + deliver(user, activity, recipientUser.inbox); + } + return messageObj; +} diff --git a/src/services/messages/delete.ts b/src/services/messages/delete.ts new file mode 100644 index 000000000..0efff85f3 --- /dev/null +++ b/src/services/messages/delete.ts @@ -0,0 +1,31 @@ +import config from '../../config'; +import { ensure } from '../../prelude/ensure'; +import { MessagingMessages, Users } from '../../models'; +import { MessagingMessage } from '../../models/entities/messaging-message'; +import { publishGroupMessagingStream, publishMessagingStream } from '../stream'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderDelete from '../../remote/activitypub/renderer/delete'; +import renderTombstone from '../../remote/activitypub/renderer/tombstone'; +import { deliver } from '../../queue'; + +export async function deleteMessage(message: MessagingMessage) { + await MessagingMessages.delete(message.id); + postDeleteMessage(message); +} + +async function postDeleteMessage(message: MessagingMessage) { + if (message.recipientId) { + const user = await Users.findOne(message.userId).then(ensure); + const recipient = await Users.findOne(message.recipientId).then(ensure); + + if (Users.isLocalUser(user)) publishMessagingStream(message.userId, message.recipientId, 'deleted', message.id); + if (Users.isLocalUser(recipient)) publishMessagingStream(message.recipientId, message.userId, 'deleted', message.id); + + if (Users.isLocalUser(user) && Users.isRemoteUser(recipient)) { + const activity = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${message.id}`), user)); + deliver(user, activity, recipient.inbox); + } + } else if (message.groupId) { + publishGroupMessagingStream(message.groupId, 'deleted', message.id); + } +} diff --git a/src/services/note/create.ts b/src/services/note/create.ts new file mode 100644 index 000000000..f6593996e --- /dev/null +++ b/src/services/note/create.ts @@ -0,0 +1,618 @@ +import es from '../../db/elasticsearch'; +import { publishMainStream, publishNotesStream } from '../stream'; +import DeliverManager from '../../remote/activitypub/deliver-manager'; +import renderNote from '../../remote/activitypub/renderer/note'; +import renderCreate from '../../remote/activitypub/renderer/create'; +import renderAnnounce from '../../remote/activitypub/renderer/announce'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import { parse } from '../../mfm/parse'; +import { resolveUser } from '../../remote/resolve-user'; +import config from '../../config'; +import { updateHashtags } from '../update-hashtag'; +import { concat } from '../../prelude/array'; +import insertNoteUnread from './unread'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import extractMentions from '../../misc/extract-mentions'; +import extractEmojis from '../../misc/extract-emojis'; +import extractHashtags from '../../misc/extract-hashtags'; +import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; +import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings } from '../../models'; +import { DriveFile } from '../../models/entities/drive-file'; +import { App } from '../../models/entities/app'; +import { Not, getConnection, In } from 'typeorm'; +import { User, ILocalUser, IRemoteUser } from '../../models/entities/user'; +import { genId } from '../../misc/gen-id'; +import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '../chart'; +import { Poll, IPoll } from '../../models/entities/poll'; +import { createNotification } from '../create-notification'; +import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error'; +import { ensure } from '../../prelude/ensure'; +import { checkHitAntenna } from '../../misc/check-hit-antenna'; +import { checkWordMute } from '../../misc/check-word-mute'; +import { addNoteToAntenna } from '../add-note-to-antenna'; +import { countSameRenotes } from '../../misc/count-same-renotes'; +import { deliverToRelays } from '../relay'; +import { Channel } from '../../models/entities/channel'; + +type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; + +class NotificationManager { + private notifier: User; + private note: Note; + private queue: { + target: ILocalUser['id']; + reason: NotificationType; + }[]; + + constructor(notifier: User, note: Note) { + this.notifier = notifier; + this.note = note; + this.queue = []; + } + + public push(notifiee: ILocalUser['id'], reason: NotificationType) { + // 自分自身へは通知しない + if (this.notifier.id === notifiee) return; + + const exist = this.queue.find(x => x.target === notifiee); + + if (exist) { + // 「メンションされているかつ返信されている」場合は、メンションとしての通知ではなく返信としての通知にする + if (reason != 'mention') { + exist.reason = reason; + } + } else { + this.queue.push({ + reason: reason, + target: notifiee + }); + } + } + + public async deliver() { + for (const x of this.queue) { + // ミュート情報を取得 + const mentioneeMutes = await Mutings.find({ + muterId: x.target + }); + + const mentioneesMutedUserIds = mentioneeMutes.map(m => m.muteeId); + + // 通知される側のユーザーが通知する側のユーザーをミュートしていない限りは通知する + if (!mentioneesMutedUserIds.includes(this.notifier.id)) { + createNotification(x.target, x.reason, { + notifierId: this.notifier.id, + noteId: this.note.id + }); + } + } + } +} + +type Option = { + createdAt?: Date | null; + name?: string | null; + text?: string | null; + reply?: Note | null; + renote?: Note | null; + files?: DriveFile[] | null; + poll?: IPoll | null; + viaMobile?: boolean | null; + localOnly?: boolean | null; + cw?: string | null; + visibility?: string; + visibleUsers?: User[] | null; + channel?: Channel | null; + apMentions?: User[] | null; + apHashtags?: string[] | null; + apEmojis?: string[] | null; + uri?: string | null; + url?: string | null; + app?: App | null; +}; + +export default async (user: User, data: Option, silent = false) => new Promise(async (res, rej) => { + // チャンネル外にリプライしたら対象のスコープに合わせる + // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) + if (data.reply && data.channel && data.reply.channelId !== data.channel.id) { + if (data.reply.channelId) { + data.channel = await Channels.findOne(data.reply.channelId); + } else { + data.channel = null; + } + } + + // チャンネル内にリプライしたら対象のスコープに合わせる + // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) + if (data.reply && (data.channel == null) && data.reply.channelId) { + data.channel = await Channels.findOne(data.reply.channelId); + } + + if (data.createdAt == null) data.createdAt = new Date(); + if (data.visibility == null) data.visibility = 'public'; + if (data.viaMobile == null) data.viaMobile = false; + if (data.localOnly == null) data.localOnly = false; + if (data.channel != null) data.visibility = 'public'; + if (data.channel != null) data.visibleUsers = []; + if (data.channel != null) data.localOnly = true; + + // サイレンス + if (user.isSilenced && data.visibility === 'public' && data.channel == null) { + data.visibility = 'home'; + } + + // Renote対象が「ホームまたは全体」以外の公開範囲ならreject + if (data.renote && data.renote.visibility !== 'public' && data.renote.visibility !== 'home' && data.renote.userId !== user.id) { + return rej('Renote target is not public or home'); + } + + // Renote対象がpublicではないならhomeにする + if (data.renote && data.renote.visibility !== 'public' && data.visibility === 'public') { + data.visibility = 'home'; + } + + // Renote対象がfollowersならfollowersにする + if (data.renote && data.renote.visibility === 'followers') { + data.visibility = 'followers'; + } + + // 返信対象がpublicではないならhomeにする + if (data.reply && data.reply.visibility !== 'public' && data.visibility === 'public') { + data.visibility = 'home'; + } + + // ローカルのみをRenoteしたらローカルのみにする + if (data.renote && data.renote.localOnly && data.channel == null) { + data.localOnly = true; + } + + // ローカルのみにリプライしたらローカルのみにする + if (data.reply && data.reply.localOnly && data.channel == null) { + data.localOnly = true; + } + + if (data.text) { + data.text = data.text.trim(); + } + + let tags = data.apHashtags; + let emojis = data.apEmojis; + let mentionedUsers = data.apMentions; + + // Parse MFM if needed + if (!tags || !emojis || !mentionedUsers) { + const tokens = data.text ? parse(data.text)! : []; + const cwTokens = data.cw ? parse(data.cw)! : []; + const choiceTokens = data.poll && data.poll.choices + ? concat(data.poll.choices.map(choice => parse(choice)!)) + : []; + + const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); + + tags = data.apHashtags || extractHashtags(combinedTokens); + + emojis = data.apEmojis || extractEmojis(combinedTokens); + + mentionedUsers = data.apMentions || await extractMentionedUsers(user, combinedTokens); + } + + tags = tags.filter(tag => Array.from(tag || '').length <= 128).splice(0, 32); + + if (data.reply && (user.id !== data.reply.userId) && !mentionedUsers.some(u => u.id === data.reply!.userId)) { + mentionedUsers.push(await Users.findOne(data.reply.userId).then(ensure)); + } + + if (data.visibility == 'specified') { + if (data.visibleUsers == null) throw new Error('invalid param'); + + for (const u of data.visibleUsers) { + if (!mentionedUsers.some(x => x.id === u.id)) { + mentionedUsers.push(u); + } + } + + if (data.reply && !data.visibleUsers.some(x => x.id === data.reply!.userId)) { + data.visibleUsers.push(await Users.findOne(data.reply.userId).then(ensure)); + } + } + + const note = await insertNote(user, data, tags, emojis, mentionedUsers); + + res(note); + + // 統計を更新 + notesChart.update(note, true); + perUserNotesChart.update(user, note, true); + + // Register host + if (Users.isRemoteUser(user)) { + registerOrFetchInstanceDoc(user.host).then(i => { + Instances.increment({ id: i.id }, 'notesCount', 1); + instanceChart.updateNote(i.host, note, true); + }); + } + + // ハッシュタグ更新 + if (data.visibility === 'public' || data.visibility === 'home') { + updateHashtags(user, tags); + } + + // Increment notes count (user) + incNotesCountOfUser(user); + + // Word mute + UserProfiles.find({ + enableWordMute: true + }).then(us => { + for (const u of us) { + checkWordMute(note, { id: u.userId }, u.mutedWords).then(shouldMute => { + if (shouldMute) { + MutedNotes.save({ + id: genId(), + userId: u.userId, + noteId: note.id, + reason: 'word', + }); + } + }); + } + }); + + // Antenna + Antennas.find().then(async antennas => { + const followings = await Followings.createQueryBuilder('following') + .andWhere(`following.followeeId = :userId`, { userId: note.userId }) + .getMany(); + + const followers = followings.map(f => f.followerId); + + for (const antenna of antennas) { + checkHitAntenna(antenna, note, user, followers).then(hit => { + if (hit) { + addNoteToAntenna(antenna, note, user); + } + }); + } + }); + + // Channel + if (note.channelId) { + ChannelFollowings.find({ followeeId: note.channelId }).then(followings => { + for (const following of followings) { + insertNoteUnread(following.followerId, note, { + isSpecified: false, + isMentioned: false, + }); + } + }); + } + + if (data.reply) { + saveReply(data.reply, note); + } + + // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき + if (data.renote && (await countSameRenotes(user.id, data.renote.id, note.id) === 0)) { + incRenoteCount(data.renote); + } + + if (!silent) { + // ローカルユーザーのチャートはタイムライン取得時に更新しているのでリモートユーザーの場合だけでよい + if (Users.isRemoteUser(user)) activeUsersChart.update(user); + + // 未読通知を作成 + if (data.visibility == 'specified') { + if (data.visibleUsers == null) throw new Error('invalid param'); + + for (const u of data.visibleUsers) { + // ローカルユーザーのみ + if (!Users.isLocalUser(u)) continue; + + insertNoteUnread(u.id, note, { + isSpecified: true, + isMentioned: false, + }); + } + } else { + for (const u of mentionedUsers) { + // ローカルユーザーのみ + if (!Users.isLocalUser(u)) continue; + + insertNoteUnread(u.id, note, { + isSpecified: false, + isMentioned: true, + }); + } + } + + // Pack the note + const noteObj = await Notes.pack(note); + + if (user.notesCount === 0) { + (noteObj as any).isFirstNote = true; + } + + publishNotesStream(noteObj); + + const nm = new NotificationManager(user, note); + const nmRelatedPromises = []; + + await createMentionedEvents(mentionedUsers, note, nm); + + // If has in reply to note + if (data.reply) { + // Fetch watchers + nmRelatedPromises.push(notifyToWatchersOfReplyee(data.reply, user, nm)); + + // 通知 + if (data.reply.userHost === null) { + nm.push(data.reply.userId, 'reply'); + publishMainStream(data.reply.userId, 'reply', noteObj); + } + } + + // If it is renote + if (data.renote) { + const type = data.text ? 'quote' : 'renote'; + + // Notify + if (data.renote.userHost === null) { + nm.push(data.renote.userId, type); + } + + // Fetch watchers + nmRelatedPromises.push(notifyToWatchersOfRenotee(data.renote, user, nm, type)); + + // Publish event + if ((user.id !== data.renote.userId) && data.renote.userHost === null) { + publishMainStream(data.renote.userId, 'renote', noteObj); + } + } + + Promise.all(nmRelatedPromises).then(() => { + nm.deliver(); + }); + + //#region AP deliver + if (Users.isLocalUser(user)) { + (async () => { + const noteActivity = await renderNoteOrRenoteActivity(data, note); + const dm = new DeliverManager(user, noteActivity); + + // メンションされたリモートユーザーに配送 + for (const u of mentionedUsers.filter(u => Users.isRemoteUser(u))) { + dm.addDirectRecipe(u as IRemoteUser); + } + + // 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送 + if (data.reply && data.reply.userHost !== null) { + const u = await Users.findOne(data.reply.userId); + if (u && Users.isRemoteUser(u)) dm.addDirectRecipe(u); + } + + // 投稿がRenoteかつ投稿者がローカルユーザーかつRenote元の投稿の投稿者がリモートユーザーなら配送 + if (data.renote && data.renote.userHost !== null) { + const u = await Users.findOne(data.renote.userId); + if (u && Users.isRemoteUser(u)) dm.addDirectRecipe(u); + } + + // フォロワーに配送 + if (['public', 'home', 'followers'].includes(note.visibility)) { + dm.addFollowersRecipe(); + } + + if (['public'].includes(note.visibility)) { + deliverToRelays(user, noteActivity); + } + + dm.execute(); + })(); + } + //#endregion + } + + if (data.channel) { + Channels.increment({ id: data.channel.id }, 'notesCount', 1); + Channels.update(data.channel.id, { + lastNotedAt: new Date(), + }); + + Notes.count({ + userId: user.id, + channelId: data.channel.id, + }).then(count => { + // この処理が行われるのはノート作成後なので、ノートが一つしかなかったら最初の投稿だと判断できる + // TODO: とはいえノートを削除して何回も投稿すればその分だけインクリメントされる雑さもあるのでどうにかしたい + if (count === 1) { + Channels.increment({ id: data.channel.id }, 'usersCount', 1); + } + }); + } + + // Register to search database + index(note); +}); + +async function renderNoteOrRenoteActivity(data: Option, note: Note) { + if (data.localOnly) return null; + + const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length == 0) + ? renderAnnounce(data.renote.uri ? data.renote.uri : `${config.url}/notes/${data.renote.id}`, note) + : renderCreate(await renderNote(note, false), note); + + return renderActivity(content); +} + +function incRenoteCount(renote: Note) { + Notes.increment({ id: renote.id }, 'renoteCount', 1); + Notes.increment({ id: renote.id }, 'score', 1); +} + +async function insertNote(user: User, data: Option, tags: string[], emojis: string[], mentionedUsers: User[]) { + const insert = new Note({ + id: genId(data.createdAt!), + createdAt: data.createdAt!, + fileIds: data.files ? data.files.map(file => file.id) : [], + replyId: data.reply ? data.reply.id : null, + renoteId: data.renote ? data.renote.id : null, + channelId: data.channel ? data.channel.id : null, + name: data.name, + text: data.text, + hasPoll: data.poll != null, + cw: data.cw == null ? null : data.cw, + tags: tags.map(tag => tag.toLowerCase()), + emojis, + userId: user.id, + viaMobile: data.viaMobile!, + localOnly: data.localOnly!, + visibility: data.visibility as any, + visibleUserIds: data.visibility == 'specified' + ? data.visibleUsers + ? data.visibleUsers.map(u => u.id) + : [] + : [], + + attachedFileTypes: data.files ? data.files.map(file => file.type) : [], + + // 以下非正規化データ + replyUserId: data.reply ? data.reply.userId : null, + replyUserHost: data.reply ? data.reply.userHost : null, + renoteUserId: data.renote ? data.renote.userId : null, + renoteUserHost: data.renote ? data.renote.userHost : null, + userHost: user.host, + }); + + if (data.uri != null) insert.uri = data.uri; + if (data.url != null) insert.url = data.url; + + // Append mentions data + if (mentionedUsers.length > 0) { + insert.mentions = mentionedUsers.map(u => u.id); + const profiles = await UserProfiles.find({ userId: In(insert.mentions) }); + insert.mentionedRemoteUsers = JSON.stringify(mentionedUsers.filter(u => Users.isRemoteUser(u)).map(u => { + const profile = profiles.find(p => p.userId == u.id); + const url = profile != null ? profile.url : null; + return { + uri: u.uri, + url: url == null ? undefined : url, + username: u.username, + host: u.host + } as IMentionedRemoteUsers[0]; + })); + } + + // 投稿を作成 + try { + if (insert.hasPoll) { + // Start transaction + await getConnection().transaction(async transactionalEntityManager => { + await transactionalEntityManager.insert(Note, insert); + + const poll = new Poll({ + noteId: insert.id, + choices: data.poll!.choices, + expiresAt: data.poll!.expiresAt, + multiple: data.poll!.multiple, + votes: new Array(data.poll!.choices.length).fill(0), + noteVisibility: insert.visibility, + userId: user.id, + userHost: user.host + }); + + await transactionalEntityManager.insert(Poll, poll); + }); + } else { + await Notes.insert(insert); + } + + return await Notes.findOneOrFail(insert.id); + } catch (e) { + // duplicate key error + if (isDuplicateKeyValueError(e)) { + const err = new Error('Duplicated note'); + err.name = 'duplicated'; + throw err; + } + + console.error(e); + + throw e; + } +} + +function index(note: Note) { + if (note.text == null || config.elasticsearch == null) return; + + es!.index({ + index: config.elasticsearch.index || 'misskey_note', + id: note.id.toString(), + body: { + text: note.text.toLowerCase(), + userId: note.userId, + userHost: note.userHost + } + }); +} + +async function notifyToWatchersOfRenotee(renote: Note, user: User, nm: NotificationManager, type: NotificationType) { + const watchers = await NoteWatchings.find({ + noteId: renote.id, + userId: Not(user.id) + }); + + for (const watcher of watchers) { + nm.push(watcher.userId, type); + } +} + +async function notifyToWatchersOfReplyee(reply: Note, user: User, nm: NotificationManager) { + const watchers = await NoteWatchings.find({ + noteId: reply.id, + userId: Not(user.id) + }); + + for (const watcher of watchers) { + nm.push(watcher.userId, 'reply'); + } +} + +async function createMentionedEvents(mentionedUsers: User[], note: Note, nm: NotificationManager) { + for (const u of mentionedUsers.filter(u => Users.isLocalUser(u))) { + const detailPackedNote = await Notes.pack(note, u, { + detail: true + }); + + publishMainStream(u.id, 'mention', detailPackedNote); + + // Create notification + nm.push(u.id, 'mention'); + } +} + +function saveReply(reply: Note, note: Note) { + Notes.increment({ id: reply.id }, 'repliesCount', 1); +} + +function incNotesCountOfUser(user: User) { + Users.increment({ id: user.id }, 'notesCount', 1); + Users.update({ id: user.id }, { + updatedAt: new Date() + }); +} + +async function extractMentionedUsers(user: User, tokens: ReturnType): Promise { + if (tokens == null) return []; + + const mentions = extractMentions(tokens); + + let mentionedUsers = (await Promise.all(mentions.map(m => + resolveUser(m.username, m.host || user.host).catch(() => null) + ))).filter(x => x != null) as User[]; + + // Drop duplicate users + mentionedUsers = mentionedUsers.filter((u, i, self) => + i === self.findIndex(u2 => u.id === u2.id) + ); + + return mentionedUsers; +} diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts new file mode 100644 index 000000000..552630260 --- /dev/null +++ b/src/services/note/delete.ts @@ -0,0 +1,137 @@ +import { publishNoteStream } from '../stream'; +import renderDelete from '../../remote/activitypub/renderer/delete'; +import renderAnnounce from '../../remote/activitypub/renderer/announce'; +import renderUndo from '../../remote/activitypub/renderer/undo'; +import { renderActivity } from '../../remote/activitypub/renderer'; +import renderTombstone from '../../remote/activitypub/renderer/tombstone'; +import config from '../../config'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import { User, ILocalUser, IRemoteUser } from '../../models/entities/user'; +import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; +import { Notes, Users, Instances } from '../../models'; +import { notesChart, perUserNotesChart, instanceChart } from '../chart'; +import { deliverToFollowers, deliverToUser } from '../../remote/activitypub/deliver-manager'; +import { countSameRenotes } from '../../misc/count-same-renotes'; +import { deliverToRelays } from '../relay'; +import { Brackets, In } from 'typeorm'; + +/** + * 投稿を削除します。 + * @param user 投稿者 + * @param note 投稿 + */ +export default async function(user: User, note: Note, quiet = false) { + const deletedAt = new Date(); + + // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき + if (note.renoteId && (await countSameRenotes(user.id, note.renoteId, note.id)) === 0) { + Notes.decrement({ id: note.renoteId }, 'renoteCount', 1); + Notes.decrement({ id: note.renoteId }, 'score', 1); + } + + if (!quiet) { + publishNoteStream(note.id, 'deleted', { + deletedAt: deletedAt + }); + + //#region ローカルの投稿なら削除アクティビティを配送 + if (Users.isLocalUser(user)) { + let renote: Note | undefined; + + // if deletd note is renote + if (note.renoteId && note.text == null && !note.hasPoll && (note.fileIds == null || note.fileIds.length == 0)) { + renote = await Notes.findOne({ + id: note.renoteId + }); + } + + const content = renderActivity(renote + ? renderUndo(renderAnnounce(renote.uri || `${config.url}/notes/${renote.id}`, note), user) + : renderDelete(renderTombstone(`${config.url}/notes/${note.id}`), user)); + + deliverToConcerned(user, note, content); + } + + // also deliever delete activity to cascaded notes + const cascadingNotes = (await findCascadingNotes(note)).filter(note => !note.localOnly); // filter out local-only notes + for (const cascadingNote of cascadingNotes) { + if (!cascadingNote.user) continue; + if (!Users.isLocalUser(cascadingNote.user)) continue; + const content = renderActivity(renderDelete(renderTombstone(`${config.url}/notes/${cascadingNote.id}`), cascadingNote.user)); + deliverToConcerned(cascadingNote.user, cascadingNote, content); + } + //#endregion + + // 統計を更新 + notesChart.update(note, false); + perUserNotesChart.update(user, note, false); + + if (Users.isRemoteUser(user)) { + registerOrFetchInstanceDoc(user.host).then(i => { + Instances.decrement({ id: i.id }, 'notesCount', 1); + instanceChart.updateNote(i.host, note, false); + }); + } + } + + await Notes.delete({ + id: note.id, + userId: user.id + }); +} + +async function findCascadingNotes(note: Note) { + const cascadingNotes: Note[] = []; + + const recursive = async (noteId: string) => { + const query = Notes.createQueryBuilder('note') + .where('note.replyId = :noteId', { noteId }) + .orWhere(new Brackets(q => { + q.where('note.renoteId = :noteId', { noteId }) + .andWhere('note.text IS NOT NULL'); + })) + .leftJoinAndSelect('note.user', 'user'); + const replies = await query.getMany(); + for (const reply of replies) { + cascadingNotes.push(reply); + await recursive(reply.id); + } + }; + await recursive(note.id); + + return cascadingNotes.filter(note => note.userHost === null); // filter out non-local users +} + +async function getMentionedRemoteUsers(note: Note) { + const where = [] as any[]; + + // mention / reply / dm + const uris = (JSON.parse(note.mentionedRemoteUsers) as IMentionedRemoteUsers).map(x => x.uri); + if (uris.length > 0) { + where.push( + { uri: In(uris) } + ); + } + + // renote / quote + if (note.renoteUserId) { + where.push({ + id: note.renoteUserId + }); + } + + if (where.length === 0) return []; + + return await Users.find({ + where + }) as IRemoteUser[]; +} + +async function deliverToConcerned(user: ILocalUser, note: Note, content: any) { + deliverToFollowers(user, content); + deliverToRelays(user, content); + const remoteUsers = await getMentionedRemoteUsers(note); + for (const remoteUser of remoteUsers) { + deliverToUser(user, content, remoteUser); + } +} diff --git a/src/services/note/polls/update.ts b/src/services/note/polls/update.ts new file mode 100644 index 000000000..a33efab66 --- /dev/null +++ b/src/services/note/polls/update.ts @@ -0,0 +1,22 @@ +import renderUpdate from '../../../remote/activitypub/renderer/update'; +import { renderActivity } from '../../../remote/activitypub/renderer'; +import renderNote from '../../../remote/activitypub/renderer/note'; +import { Users, Notes } from '../../../models'; +import { Note } from '../../../models/entities/note'; +import { deliverToFollowers } from '../../../remote/activitypub/deliver-manager'; +import { deliverToRelays } from '../../relay'; + +export async function deliverQuestionUpdate(noteId: Note['id']) { + const note = await Notes.findOne(noteId); + if (note == null) throw new Error('note not found'); + + const user = await Users.findOne(note.userId); + if (user == null) throw new Error('note not found'); + + if (Users.isLocalUser(user)) { + + const content = renderActivity(renderUpdate(await renderNote(note, false), user)); + deliverToFollowers(user, content); + deliverToRelays(user, content); + } +} diff --git a/src/services/note/polls/vote.ts b/src/services/note/polls/vote.ts new file mode 100644 index 000000000..bfcaaa09b --- /dev/null +++ b/src/services/note/polls/vote.ts @@ -0,0 +1,70 @@ +import { publishNoteStream } from '../../stream'; +import { User } from '../../../models/entities/user'; +import { Note } from '../../../models/entities/note'; +import { PollVotes, NoteWatchings, Polls } from '../../../models'; +import { Not } from 'typeorm'; +import { genId } from '../../../misc/gen-id'; +import { createNotification } from '../../create-notification'; + +export default async function(user: User, note: Note, choice: number) { + const poll = await Polls.findOne(note.id); + + if (poll == null) throw new Error('poll not found'); + + // Check whether is valid choice + if (poll.choices[choice] == null) throw new Error('invalid choice param'); + + // if already voted + const exist = await PollVotes.find({ + noteId: note.id, + userId: user.id + }); + + if (poll.multiple) { + if (exist.some(x => x.choice === choice)) { + throw new Error('already voted'); + } + } else if (exist.length !== 0) { + throw new Error('already voted'); + } + + // Create vote + await PollVotes.save({ + id: genId(), + createdAt: new Date(), + noteId: note.id, + userId: user.id, + choice: choice + }); + + // Increment votes count + const index = choice + 1; // In SQL, array index is 1 based + await Polls.query(`UPDATE poll SET votes[${index}] = votes[${index}] + 1 WHERE "noteId" = '${poll.noteId}'`); + + publishNoteStream(note.id, 'pollVoted', { + choice: choice, + userId: user.id + }); + + // Notify + createNotification(note.userId, 'pollVote', { + notifierId: user.id, + noteId: note.id, + choice: choice + }); + + // Fetch watchers + NoteWatchings.find({ + noteId: note.id, + userId: Not(user.id), + }) + .then(watchers => { + for (const watcher of watchers) { + createNotification(watcher.userId, 'pollVote', { + notifierId: user.id, + noteId: note.id, + choice: choice + }); + } + }); +} diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts new file mode 100644 index 000000000..adc96ddc1 --- /dev/null +++ b/src/services/note/reaction/create.ts @@ -0,0 +1,114 @@ +import { publishNoteStream } from '../../stream'; +import { renderLike } from '../../../remote/activitypub/renderer/like'; +import DeliverManager from '../../../remote/activitypub/deliver-manager'; +import { renderActivity } from '../../../remote/activitypub/renderer'; +import { toDbReaction, decodeReaction } from '../../../misc/reaction-lib'; +import { User, IRemoteUser } from '../../../models/entities/user'; +import { Note } from '../../../models/entities/note'; +import { NoteReactions, Users, NoteWatchings, Notes, Emojis } from '../../../models'; +import { Not } from 'typeorm'; +import { perUserReactionsChart } from '../../chart'; +import { genId } from '../../../misc/gen-id'; +import { createNotification } from '../../create-notification'; +import deleteReaction from './delete'; + +export default async (user: User, note: Note, reaction?: string) => { + reaction = await toDbReaction(reaction, user.host); + + const exist = await NoteReactions.findOne({ + noteId: note.id, + userId: user.id, + }); + + if (exist) { + if (exist.reaction !== reaction) { + // 別のリアクションがすでにされていたら置き換える + await deleteReaction(user, note); + } else { + // 同じリアクションがすでにされていたら何もしない + return; + } + } + + // Create reaction + const inserted = await NoteReactions.save({ + id: genId(), + createdAt: new Date(), + noteId: note.id, + userId: user.id, + reaction + }); + + // Increment reactions count + const sql = `jsonb_set("reactions", '{${reaction}}', (COALESCE("reactions"->>'${reaction}', '0')::int + 1)::text::jsonb)`; + await Notes.createQueryBuilder().update() + .set({ + reactions: () => sql, + }) + .where('id = :id', { id: note.id }) + .execute(); + + Notes.increment({ id: note.id }, 'score', 1); + + perUserReactionsChart.update(user, note); + + // カスタム絵文字リアクションだったら絵文字情報も送る + const decodedReaction = decodeReaction(reaction); + + let emoji = await Emojis.findOne({ + where: { + name: decodedReaction.name, + host: decodedReaction.host + }, + select: ['name', 'host', 'url'] + }); + + if (emoji) { + emoji = { + name: emoji.host ? `${emoji.name}@${emoji.host}` : `${emoji.name}@.`, + url: emoji.url + } as any; + } + + publishNoteStream(note.id, 'reacted', { + reaction: decodedReaction.reaction, + emoji: emoji, + userId: user.id + }); + + // リアクションされたユーザーがローカルユーザーなら通知を作成 + if (note.userHost === null) { + createNotification(note.userId, 'reaction', { + notifierId: user.id, + noteId: note.id, + reaction: reaction + }); + } + + // Fetch watchers + NoteWatchings.find({ + noteId: note.id, + userId: Not(user.id) + }).then(watchers => { + for (const watcher of watchers) { + createNotification(watcher.userId, 'reaction', { + notifierId: user.id, + noteId: note.id, + reaction: reaction + }); + } + }); + + //#region 配信 + if (Users.isLocalUser(user) && !note.localOnly) { + const content = renderActivity(await renderLike(inserted, note)); + const dm = new DeliverManager(user, content); + if (note.userHost !== null) { + const reactee = await Users.findOne(note.userId); + dm.addDirectRecipe(reactee as IRemoteUser); + } + dm.addFollowersRecipe(); + dm.execute(); + } + //#endregion +}; diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts new file mode 100644 index 000000000..8d2f0682c --- /dev/null +++ b/src/services/note/reaction/delete.ts @@ -0,0 +1,58 @@ +import { publishNoteStream } from '../../stream'; +import { renderLike } from '../../../remote/activitypub/renderer/like'; +import renderUndo from '../../../remote/activitypub/renderer/undo'; +import { renderActivity } from '../../../remote/activitypub/renderer'; +import DeliverManager from '../../../remote/activitypub/deliver-manager'; +import { IdentifiableError } from '../../../misc/identifiable-error'; +import { User, IRemoteUser } from '../../../models/entities/user'; +import { Note } from '../../../models/entities/note'; +import { NoteReactions, Users, Notes } from '../../../models'; +import { decodeReaction } from '../../../misc/reaction-lib'; + +export default async (user: User, note: Note) => { + // if already unreacted + const exist = await NoteReactions.findOne({ + noteId: note.id, + userId: user.id, + }); + + if (exist == null) { + throw new IdentifiableError('60527ec9-b4cb-4a88-a6bd-32d3ad26817d', 'not reacted'); + } + + // Delete reaction + const result = await NoteReactions.delete(exist.id); + + if (result.affected !== 1) { + throw new IdentifiableError('60527ec9-b4cb-4a88-a6bd-32d3ad26817d', 'not reacted'); + } + + // Decrement reactions count + const sql = `jsonb_set("reactions", '{${exist.reaction}}', (COALESCE("reactions"->>'${exist.reaction}', '0')::int - 1)::text::jsonb)`; + await Notes.createQueryBuilder().update() + .set({ + reactions: () => sql, + }) + .where('id = :id', { id: note.id }) + .execute(); + + Notes.decrement({ id: note.id }, 'score', 1); + + publishNoteStream(note.id, 'unreacted', { + reaction: decodeReaction(exist.reaction).reaction, + userId: user.id + }); + + //#region 配信 + if (Users.isLocalUser(user) && !note.localOnly) { + const content = renderActivity(renderUndo(await renderLike(exist, note), user)); + const dm = new DeliverManager(user, content); + if (note.userHost !== null) { + const reactee = await Users.findOne(note.userId); + dm.addDirectRecipe(reactee as IRemoteUser); + } + dm.addFollowersRecipe(); + dm.execute(); + } + //#endregion +}; diff --git a/src/services/note/read.ts b/src/services/note/read.ts new file mode 100644 index 000000000..5a39ab30b --- /dev/null +++ b/src/services/note/read.ts @@ -0,0 +1,105 @@ +import { publishMainStream } from '../stream'; +import { Note } from '../../models/entities/note'; +import { User } from '../../models/entities/user'; +import { NoteUnreads, Antennas, AntennaNotes, Users } from '../../models'; +import { Not, IsNull } from 'typeorm'; + +/** + * Mark a note as read + */ +export default async function( + userId: User['id'], + noteId: Note['id'] +) { + async function careNoteUnreads() { + const exist = await NoteUnreads.findOne({ + userId: userId, + noteId: noteId, + }); + + if (!exist) return; + + // Remove the record + await NoteUnreads.delete({ + userId: userId, + noteId: noteId, + }); + + if (exist.isMentioned) { + NoteUnreads.count({ + userId: userId, + isMentioned: true + }).then(mentionsCount => { + if (mentionsCount === 0) { + // 全て既読になったイベントを発行 + publishMainStream(userId, 'readAllUnreadMentions'); + } + }); + } + + if (exist.isSpecified) { + NoteUnreads.count({ + userId: userId, + isSpecified: true + }).then(specifiedCount => { + if (specifiedCount === 0) { + // 全て既読になったイベントを発行 + publishMainStream(userId, 'readAllUnreadSpecifiedNotes'); + } + }); + } + + if (exist.noteChannelId) { + NoteUnreads.count({ + userId: userId, + noteChannelId: Not(IsNull()) + }).then(channelNoteCount => { + if (channelNoteCount === 0) { + // 全て既読になったイベントを発行 + publishMainStream(userId, 'readAllChannels'); + } + }); + } + } + + async function careAntenna() { + const beforeUnread = await Users.getHasUnreadAntenna(userId); + if (!beforeUnread) return; + + const antennas = await Antennas.find({ userId }); + + await Promise.all(antennas.map(async antenna => { + const countBefore = await AntennaNotes.count({ + antennaId: antenna.id, + read: false + }); + + if (countBefore === 0) return; + + await AntennaNotes.update({ + antennaId: antenna.id, + noteId: noteId + }, { + read: true + }); + + const countAfter = await AntennaNotes.count({ + antennaId: antenna.id, + read: false + }); + + if (countAfter === 0) { + publishMainStream(userId, 'readAntenna', antenna); + } + })); + + Users.getHasUnreadAntenna(userId).then(unread => { + if (!unread) { + publishMainStream(userId, 'readAllAntennas'); + } + }); + } + + careNoteUnreads(); + careAntenna(); +} diff --git a/src/services/note/unread.ts b/src/services/note/unread.ts new file mode 100644 index 000000000..6fd9ee2cf --- /dev/null +++ b/src/services/note/unread.ts @@ -0,0 +1,46 @@ +import { Note } from '../../models/entities/note'; +import { publishMainStream } from '../stream'; +import { User } from '../../models/entities/user'; +import { Mutings, NoteUnreads } from '../../models'; +import { genId } from '../../misc/gen-id'; + +export default async function(userId: User['id'], note: Note, params: { + // NOTE: isSpecifiedがtrueならisMentionedは必ずfalse + isSpecified: boolean; + isMentioned: boolean; +}) { + //#region ミュートしているなら無視 + // TODO: 現在の仕様ではChannelにミュートは適用されないのでよしなにケアする + const mute = await Mutings.find({ + muterId: userId + }); + if (mute.map(m => m.muteeId).includes(note.userId)) return; + //#endregion + + const unread = await NoteUnreads.save({ + id: genId(), + noteId: note.id, + userId: userId, + isSpecified: params.isSpecified, + isMentioned: params.isMentioned, + noteChannelId: note.channelId, + noteUserId: note.userId, + }); + + // 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する + setTimeout(async () => { + const exist = await NoteUnreads.findOne(unread.id); + + if (exist == null) return; + + if (params.isMentioned) { + publishMainStream(userId, 'unreadMention', note.id); + } + if (params.isSpecified) { + publishMainStream(userId, 'unreadSpecifiedNote', note.id); + } + if (note.channelId) { + publishMainStream(userId, 'unreadChannel', note.id); + } + }, 2000); +} diff --git a/src/services/note/unwatch.ts b/src/services/note/unwatch.ts new file mode 100644 index 000000000..047ac343b --- /dev/null +++ b/src/services/note/unwatch.ts @@ -0,0 +1,10 @@ +import { User } from '../../models/entities/user'; +import { NoteWatchings } from '../../models'; +import { Note } from '../../models/entities/note'; + +export default async (me: User['id'], note: Note) => { + await NoteWatchings.delete({ + noteId: note.id, + userId: me + }); +}; diff --git a/src/services/note/watch.ts b/src/services/note/watch.ts new file mode 100644 index 000000000..d3c955369 --- /dev/null +++ b/src/services/note/watch.ts @@ -0,0 +1,20 @@ +import { User } from '../../models/entities/user'; +import { Note } from '../../models/entities/note'; +import { NoteWatchings } from '../../models'; +import { genId } from '../../misc/gen-id'; +import { NoteWatching } from '../../models/entities/note-watching'; + +export default async (me: User['id'], note: Note) => { + // 自分の投稿はwatchできない + if (me === note.userId) { + return; + } + + await NoteWatchings.save({ + id: genId(), + createdAt: new Date(), + noteId: note.id, + userId: me, + noteUserId: note.userId + } as NoteWatching); +}; diff --git a/src/services/push-notification.ts b/src/services/push-notification.ts new file mode 100644 index 000000000..d0a0c04d6 --- /dev/null +++ b/src/services/push-notification.ts @@ -0,0 +1,54 @@ +import * as push from 'web-push'; +import config from '../config'; +import { SwSubscriptions } from '../models'; +import { fetchMeta } from '../misc/fetch-meta'; +import { PackedNotification } from '../models/repositories/notification'; +import { PackedMessagingMessage } from '../models/repositories/messaging-message'; + +type notificationType = 'notification' | 'unreadMessagingMessage'; +type notificationBody = PackedNotification | PackedMessagingMessage; + +export default async function(userId: string, type: notificationType, body: notificationBody) { + const meta = await fetchMeta(); + + if (!meta.enableServiceWorker || meta.swPublicKey == null || meta.swPrivateKey == null) return; + + // アプリケーションの連絡先と、サーバーサイドの鍵ペアの情報を登録 + push.setVapidDetails(config.url, + meta.swPublicKey, + meta.swPrivateKey); + + // Fetch + const subscriptions = await SwSubscriptions.find({ + userId: userId + }); + + for (const subscription of subscriptions) { + const pushSubscription = { + endpoint: subscription.endpoint, + keys: { + auth: subscription.auth, + p256dh: subscription.publickey + } + }; + + push.sendNotification(pushSubscription, JSON.stringify({ + type, body + }), { + proxy: config.proxy + }).catch((err: any) => { + //swLogger.info(err.statusCode); + //swLogger.info(err.headers); + //swLogger.info(err.body); + + if (err.statusCode === 410) { + SwSubscriptions.delete({ + userId: userId, + endpoint: subscription.endpoint, + auth: subscription.auth, + publickey: subscription.publickey + }); + } + }); + } +} diff --git a/src/services/register-or-fetch-instance-doc.ts b/src/services/register-or-fetch-instance-doc.ts new file mode 100644 index 000000000..3501e20de --- /dev/null +++ b/src/services/register-or-fetch-instance-doc.ts @@ -0,0 +1,26 @@ +import { Instance } from '../models/entities/instance'; +import { Instances } from '../models'; +import { federationChart } from './chart'; +import { genId } from '../misc/gen-id'; +import { toPuny } from '../misc/convert-host'; + +export async function registerOrFetchInstanceDoc(host: string): Promise { + host = toPuny(host); + + const index = await Instances.findOne({ host }); + + if (index == null) { + const i = await Instances.save({ + id: genId(), + host, + caughtAt: new Date(), + lastCommunicatedAt: new Date(), + }); + + federationChart.update(true); + + return i; + } else { + return index; + } +} diff --git a/src/services/relay.ts b/src/services/relay.ts new file mode 100644 index 000000000..0eb3bb41a --- /dev/null +++ b/src/services/relay.ts @@ -0,0 +1,94 @@ +import { createSystemUser } from './create-system-user'; +import { renderFollowRelay } from '../remote/activitypub/renderer/follow-relay'; +import { renderActivity, attachLdSignature } from '../remote/activitypub/renderer'; +import renderUndo from '../remote/activitypub/renderer/undo'; +import { deliver } from '../queue'; +import { ILocalUser } from '../models/entities/user'; +import { Users, Relays } from '../models'; +import { genId } from '../misc/gen-id'; + +const ACTOR_USERNAME = 'relay.actor' as const; + +export async function getRelayActor(): Promise { + const user = await Users.findOne({ + host: null, + username: ACTOR_USERNAME + }); + + if (user) return user as ILocalUser; + + const created = await createSystemUser(ACTOR_USERNAME); + return created as ILocalUser; +} + +export async function addRelay(inbox: string) { + const relay = await Relays.save({ + id: genId(), + inbox, + status: 'requesting' + }); + + const relayActor = await getRelayActor(); + const follow = await renderFollowRelay(relay, relayActor); + const activity = renderActivity(follow); + deliver(relayActor, activity, relay.inbox); + + return relay; +} + +export async function removeRelay(inbox: string) { + const relay = await Relays.findOne({ + inbox + }); + + if (relay == null) { + throw 'relay not found'; + } + + const relayActor = await getRelayActor(); + const follow = renderFollowRelay(relay, relayActor); + const undo = renderUndo(follow, relayActor); + const activity = renderActivity(undo); + deliver(relayActor, activity, relay.inbox); + + await Relays.delete(relay.id); +} + +export async function listRelay() { + const relays = await Relays.find(); + return relays; +} + +export async function relayAccepted(id: string) { + const result = await Relays.update(id, { + status: 'accepted' + }); + + return JSON.stringify(result); +} + +export async function relayRejected(id: string) { + const result = await Relays.update(id, { + status: 'rejected' + }); + + return JSON.stringify(result); +} + +export async function deliverToRelays(user: ILocalUser, activity: any) { + if (activity == null) return; + + const relays = await Relays.find({ + status: 'accepted' + }); + if (relays.length === 0) return; + + const copy = JSON.parse(JSON.stringify(activity)); + if (!copy.to) copy.to = ['https://www.w3.org/ns/activitystreams#Public']; + + const signed = await attachLdSignature(copy, user); + + for (const relay of relays) { + deliver(user, signed, relay.inbox); + } +} diff --git a/src/services/send-email.ts b/src/services/send-email.ts new file mode 100644 index 000000000..5a8f92be5 --- /dev/null +++ b/src/services/send-email.ts @@ -0,0 +1,38 @@ +import * as nodemailer from 'nodemailer'; +import { fetchMeta } from '../misc/fetch-meta'; +import Logger from './logger'; +import config from '../config'; + +export const logger = new Logger('email'); + +export async function sendEmail(to: string, subject: string, text: string) { + const meta = await fetchMeta(true); + + const enableAuth = meta.smtpUser != null && meta.smtpUser !== ''; + + const transporter = nodemailer.createTransport({ + host: meta.smtpHost, + port: meta.smtpPort, + secure: meta.smtpSecure, + ignoreTLS: !enableAuth, + proxy: config.proxySmtp, + auth: enableAuth ? { + user: meta.smtpUser, + pass: meta.smtpPass + } : undefined + } as any); + + try { + const info = await transporter.sendMail({ + from: meta.email!, + to: to, + subject: subject || 'Misskey', + text: text + }); + + logger.info('Message sent: %s', info.messageId); + } catch (e) { + logger.error(e); + throw e; + } +} diff --git a/src/services/stream.ts b/src/services/stream.ts new file mode 100644 index 000000000..ec43c6ff2 --- /dev/null +++ b/src/services/stream.ts @@ -0,0 +1,94 @@ +import redis from '../db/redis'; +import { User } from '../models/entities/user'; +import { Note } from '../models/entities/note'; +import { UserList } from '../models/entities/user-list'; +import { ReversiGame } from '../models/entities/games/reversi/game'; +import { UserGroup } from '../models/entities/user-group'; +import config from '../config'; +import { Antenna } from '../models/entities/antenna'; + +class Publisher { + private publish = (channel: string, type: string | null, value?: any): void => { + const message = type == null ? value : value == null ? + { type: type, body: null } : + { type: type, body: value }; + + redis.publish(config.host, JSON.stringify({ + channel: channel, + message: message + })); + } + + public publishBroadcastStream = (type: string, value?: any): void => { + this.publish('broadcast', type, typeof value === 'undefined' ? null : value); + } + + public publishMainStream = (userId: User['id'], type: string, value?: any): void => { + this.publish(`mainStream:${userId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishDriveStream = (userId: User['id'], type: string, value?: any): void => { + this.publish(`driveStream:${userId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishNoteStream = (noteId: Note['id'], type: string, value: any): void => { + this.publish(`noteStream:${noteId}`, type, { + id: noteId, + body: value + }); + } + + public publishUserListStream = (listId: UserList['id'], type: string, value?: any): void => { + this.publish(`userListStream:${listId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishAntennaStream = (antennaId: Antenna['id'], type: string, value?: any): void => { + this.publish(`antennaStream:${antennaId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishMessagingStream = (userId: User['id'], otherpartyId: User['id'], type: string, value?: any): void => { + this.publish(`messagingStream:${userId}-${otherpartyId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishGroupMessagingStream = (groupId: UserGroup['id'], type: string, value?: any): void => { + this.publish(`messagingStream:${groupId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishMessagingIndexStream = (userId: User['id'], type: string, value?: any): void => { + this.publish(`messagingIndexStream:${userId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishReversiStream = (userId: User['id'], type: string, value?: any): void => { + this.publish(`reversiStream:${userId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishReversiGameStream = (gameId: ReversiGame['id'], type: string, value?: any): void => { + this.publish(`reversiGameStream:${gameId}`, type, typeof value === 'undefined' ? null : value); + } + + public publishNotesStream = (note: any): void => { + this.publish('notesStream', null, note); + } + + public publishAdminStream = (userId: User['id'], type: string, value?: any): void => { + this.publish(`adminStream:${userId}`, type, typeof value === 'undefined' ? null : value); + } +} + +const publisher = new Publisher(); + +export default publisher; + +export const publishBroadcastStream = publisher.publishBroadcastStream; +export const publishMainStream = publisher.publishMainStream; +export const publishDriveStream = publisher.publishDriveStream; +export const publishNoteStream = publisher.publishNoteStream; +export const publishNotesStream = publisher.publishNotesStream; +export const publishUserListStream = publisher.publishUserListStream; +export const publishAntennaStream = publisher.publishAntennaStream; +export const publishMessagingStream = publisher.publishMessagingStream; +export const publishGroupMessagingStream = publisher.publishGroupMessagingStream; +export const publishMessagingIndexStream = publisher.publishMessagingIndexStream; +export const publishReversiStream = publisher.publishReversiStream; +export const publishReversiGameStream = publisher.publishReversiGameStream; +export const publishAdminStream = publisher.publishAdminStream; diff --git a/src/services/suspend-user.ts b/src/services/suspend-user.ts new file mode 100644 index 000000000..a85188acb --- /dev/null +++ b/src/services/suspend-user.ts @@ -0,0 +1,34 @@ +import renderDelete from '../remote/activitypub/renderer/delete'; +import { renderActivity } from '../remote/activitypub/renderer'; +import { deliver } from '../queue'; +import config from '../config'; +import { User } from '../models/entities/user'; +import { Users, Followings } from '../models'; +import { Not, IsNull } from 'typeorm'; + +export async function doPostSuspend(user: User) { + if (Users.isLocalUser(user)) { + // 知り得る全SharedInboxにDelete配信 + const content = renderActivity(renderDelete(`${config.url}/users/${user.id}`, user)); + + const queue: string[] = []; + + const followings = await Followings.find({ + where: [ + { followerSharedInbox: Not(IsNull()) }, + { followeeSharedInbox: Not(IsNull()) } + ], + select: ['followerSharedInbox', 'followeeSharedInbox'] + }); + + const inboxes = followings.map(x => x.followerSharedInbox || x.followeeSharedInbox); + + for (const inbox of inboxes) { + if (inbox != null && !queue.includes(inbox)) queue.push(inbox); + } + + for (const inbox of queue) { + deliver(user as any, content, inbox); + } + } +} diff --git a/src/services/unsuspend-user.ts b/src/services/unsuspend-user.ts new file mode 100644 index 000000000..6cab37582 --- /dev/null +++ b/src/services/unsuspend-user.ts @@ -0,0 +1,35 @@ +import renderDelete from '../remote/activitypub/renderer/delete'; +import renderUndo from '../remote/activitypub/renderer/undo'; +import { renderActivity } from '../remote/activitypub/renderer'; +import { deliver } from '../queue'; +import config from '../config'; +import { User } from '../models/entities/user'; +import { Users, Followings } from '../models'; +import { Not, IsNull } from 'typeorm'; + +export async function doPostUnsuspend(user: User) { + if (Users.isLocalUser(user)) { + // 知り得る全SharedInboxにUndo Delete配信 + const content = renderActivity(renderUndo(renderDelete(`${config.url}/users/${user.id}`, user), user)); + + const queue: string[] = []; + + const followings = await Followings.find({ + where: [ + { followerSharedInbox: Not(IsNull()) }, + { followeeSharedInbox: Not(IsNull()) } + ], + select: ['followerSharedInbox', 'followeeSharedInbox'] + }); + + const inboxes = followings.map(x => x.followerSharedInbox || x.followeeSharedInbox); + + for (const inbox of inboxes) { + if (inbox != null && !queue.includes(inbox)) queue.push(inbox); + } + + for (const inbox of queue) { + deliver(user as any, content, inbox); + } + } +} diff --git a/packages/backend/src/services/update-hashtag.ts b/src/services/update-hashtag.ts similarity index 86% rename from packages/backend/src/services/update-hashtag.ts rename to src/services/update-hashtag.ts index 23b210b7a..1c67ef881 100644 --- a/packages/backend/src/services/update-hashtag.ts +++ b/src/services/update-hashtag.ts @@ -1,11 +1,10 @@ -import { User } from '@/models/entities/user.js'; -import { Hashtags, Users } from '@/models/index.js'; -import { hashtagChart } from '@/services/chart/index.js'; -import { genId } from '@/misc/gen-id.js'; -import { Hashtag } from '@/models/entities/hashtag.js'; -import { normalizeForSearch } from '@/misc/normalize-for-search.js'; +import { User } from '../models/entities/user'; +import { Hashtags, Users } from '../models'; +import { hashtagChart } from './chart'; +import { genId } from '../misc/gen-id'; +import { Hashtag } from '../models/entities/hashtag'; -export async function updateHashtags(user: { id: User['id']; host: User['host']; }, tags: string[]) { +export async function updateHashtags(user: User, tags: string[]) { for (const tag of tags) { await updateHashtag(user, tag); } @@ -21,10 +20,10 @@ export async function updateUsertags(user: User, tags: string[]) { } } -export async function updateHashtag(user: { id: User['id']; host: User['host']; }, tag: string, isUserAttached = false, inc = true) { - tag = normalizeForSearch(tag); +export async function updateHashtag(user: User, tag: string, isUserAttached = false, inc = true) { + tag = tag.toLowerCase(); - const index = await Hashtags.findOneBy({ name: tag }); + const index = await Hashtags.findOne({ name: tag }); if (index == null && !inc) return; @@ -86,7 +85,7 @@ export async function updateHashtag(user: { id: User['id']; host: User['host']; } } else { if (isUserAttached) { - Hashtags.insert({ + Hashtags.save({ id: genId(), name: tag, mentionedUserIds: [], @@ -103,7 +102,7 @@ export async function updateHashtag(user: { id: User['id']; host: User['host']; attachedRemoteUsersCount: Users.isRemoteUser(user) ? 1 : 0, } as Hashtag); } else { - Hashtags.insert({ + Hashtags.save({ id: genId(), name: tag, mentionedUserIds: [user.id], diff --git a/src/services/user-list/push.ts b/src/services/user-list/push.ts new file mode 100644 index 000000000..0fbeae79f --- /dev/null +++ b/src/services/user-list/push.ts @@ -0,0 +1,30 @@ +import { renderActivity } from '../../remote/activitypub/renderer'; +import { deliver } from '../../queue'; +import renderFollow from '../../remote/activitypub/renderer/follow'; +import { publishUserListStream } from '../stream'; +import { User } from '../../models/entities/user'; +import { UserList } from '../../models/entities/user-list'; +import { UserListJoinings, Users } from '../../models'; +import { UserListJoining } from '../../models/entities/user-list-joining'; +import { genId } from '../../misc/gen-id'; +import { fetchProxyAccount } from '../../misc/fetch-proxy-account'; + +export async function pushUserToUserList(target: User, list: UserList) { + await UserListJoinings.save({ + id: genId(), + createdAt: new Date(), + userId: target.id, + userListId: list.id + } as UserListJoining); + + publishUserListStream(list.id, 'userAdded', await Users.pack(target)); + + // このインスタンス内にこのリモートユーザーをフォローしているユーザーがいなくても投稿を受け取るためにダミーのユーザーがフォローしたということにする + if (Users.isRemoteUser(target)) { + const proxy = await fetchProxyAccount(); + if (proxy) { + const content = renderActivity(renderFollow(proxy, target)); + deliver(proxy, content, target.inbox); + } + } +} diff --git a/src/tools/accept-migration.ts b/src/tools/accept-migration.ts new file mode 100644 index 000000000..addce86f1 --- /dev/null +++ b/src/tools/accept-migration.ts @@ -0,0 +1,25 @@ +// ex) node built/tools/accept-migration Yo 1000000000001 + +import { createConnection } from 'typeorm'; +import config from '../config'; + +createConnection({ + type: 'postgres', + host: config.db.host, + port: config.db.port, + username: config.db.user, + password: config.db.pass, + database: config.db.db, + extra: config.db.extra, + synchronize: false, + dropSchema: false, +}).then(c => { + c.query(`INSERT INTO migrations(timestamp,name) VALUES (${process.argv[3]}, '${process.argv[2]}${process.argv[3]}');`).then(() => { + console.log('done'); + process.exit(0); + }).catch(e => { + console.log('ERROR:'); + console.log(e); + process.exit(1); + }); +}); diff --git a/src/tools/add-emoji.ts b/src/tools/add-emoji.ts new file mode 100644 index 000000000..3745b4888 --- /dev/null +++ b/src/tools/add-emoji.ts @@ -0,0 +1,30 @@ +import { Emojis } from '../models'; +import { genId } from '../misc/gen-id'; + +async function main(name: string, url: string, alias?: string): Promise { + const aliases = alias != null ? [ alias ] : []; + + await Emojis.save({ + id: genId(), + host: null, + name, + url, + aliases, + updatedAt: new Date() + }); +} + +const args = process.argv.slice(2); +const name = args[0]; +const url = args[1]; + +if (!name) throw new Error('require name'); +if (!url) throw new Error('require url'); + +main(name, url).then(() => { + console.log('success'); + process.exit(0); +}).catch(e => { + console.warn(e); + process.exit(1); +}); diff --git a/src/tools/demote-admin.ts b/src/tools/demote-admin.ts new file mode 100644 index 000000000..5e3e64bff --- /dev/null +++ b/src/tools/demote-admin.ts @@ -0,0 +1,32 @@ +import { initDb } from '../db/postgre'; +import { getRepository } from 'typeorm'; +import { User } from '../models/entities/user'; + +async function main(username: string) { + if (!username) throw `username required`; + username = username.replace(/^@/, ''); + + await initDb(); + const Users = getRepository(User); + + const res = await Users.update({ + usernameLower: username.toLowerCase(), + host: null + }, { + isAdmin: false + }); + + if (res.affected !== 1) { + throw 'Failed'; + } +} + +const args = process.argv.slice(2); + +main(args[0]).then(() => { + console.log('Success'); + process.exit(0); +}).catch(e => { + console.error(`Error: ${e.message || e}`); + process.exit(1); +}); diff --git a/src/tools/mark-admin.ts b/src/tools/mark-admin.ts new file mode 100644 index 000000000..5844bb464 --- /dev/null +++ b/src/tools/mark-admin.ts @@ -0,0 +1,32 @@ +import { initDb } from '../db/postgre'; +import { getRepository } from 'typeorm'; +import { User } from '../models/entities/user'; + +async function main(username: string) { + if (!username) throw `username required`; + username = username.replace(/^@/, ''); + + await initDb(); + const Users = getRepository(User); + + const res = await Users.update({ + usernameLower: username.toLowerCase(), + host: null + }, { + isAdmin: true + }); + + if (res.affected !== 1) { + throw 'Failed'; + } +} + +const args = process.argv.slice(2); + +main(args[0]).then(() => { + console.log('Success'); + process.exit(0); +}).catch(e => { + console.error(`Error: ${e.message || e}`); + process.exit(1); +}); diff --git a/src/tools/refresh-question.ts b/src/tools/refresh-question.ts new file mode 100644 index 000000000..83d71ff30 --- /dev/null +++ b/src/tools/refresh-question.ts @@ -0,0 +1,14 @@ +import { updateQuestion } from '../remote/activitypub/models/question'; + +async function main(uri: string): Promise { + return await updateQuestion(uri); +} + +const args = process.argv.slice(2); +const uri = args[0]; + +main(uri).then(result => { + console.log(`Done: ${result}`); +}).catch(e => { + console.warn(e); +}); diff --git a/src/tools/resync-remote-user.ts b/src/tools/resync-remote-user.ts new file mode 100644 index 000000000..c9d1ed588 --- /dev/null +++ b/src/tools/resync-remote-user.ts @@ -0,0 +1,27 @@ +import parseAcct from '../misc/acct/parse'; +import { resolveUser } from '../remote/resolve-user'; + +async function main(acct: string): Promise { + const { username, host } = parseAcct(acct); + await resolveUser(username, host, {}, true); +} + +// get args +const args = process.argv.slice(2); +let acct = args[0]; + +// normalize args +acct = acct.replace(/^@/, ''); + +// check args +if (!acct.match(/^\w+@\w/)) { + throw `Invalid acct format. Valid format are user@host`; +} + +console.log(`resync ${acct}`); + +main(acct).then(() => { + console.log('Done'); +}).catch(e => { + console.warn(e); +}); diff --git a/src/tools/show-signin-history.ts b/src/tools/show-signin-history.ts new file mode 100644 index 000000000..fd7cd39e3 --- /dev/null +++ b/src/tools/show-signin-history.ts @@ -0,0 +1,56 @@ +import { Users, Signins } from '../models'; + +// node built/tools/show-signin-history username +// => {Success} {Date} {IPAddrsss} + +// node built/tools/show-signin-history username user-agent,x-forwarded-for +// with user-agent and x-forwarded-for + +// node built/tools/show-signin-history username all +// with full request headers + +async function main(username: string, headers?: string[]) { + const user = await Users.findOne({ + host: null, + usernameLower: username.toLowerCase(), + }); + + if (user == null) throw new Error('User not found'); + + const history = await Signins.find({ + userId: user.id + }); + + for (const signin of history) { + console.log(`${signin.success ? 'OK' : 'NG'} ${signin.createdAt ? signin.createdAt.toISOString() : 'Unknown'} ${signin.ip}`); + + // headers + if (headers != null) { + for (const key of Object.keys(signin.headers)) { + if (headers.includes('all') || headers.includes(key)) { + console.log(` ${key}: ${signin.headers[key]}`); + } + } + } + } +} + +// get args +const args = process.argv.slice(2); + +let username = args[0]; +let headers: string[] | undefined; + +if (args[1] != null) { + headers = args[1].split(/,/).map(header => header.toLowerCase()); +} + +// normalize args +username = username.replace(/^@/, ''); + +main(username, headers).then(() => { + process.exit(0); +}).catch(e => { + console.warn(e); + process.exit(1); +}); diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 000000000..d8eb44281 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,5 @@ +export const notificationTypes = ['follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app'] as const; + +export const noteVisibilities = ['public', 'home', 'followers', 'specified'] as const; + +export const mutedNoteReasons = ['word', 'manual', 'spam', 'other'] as const; diff --git a/src/well-known-services.ts b/src/well-known-services.ts new file mode 100644 index 000000000..f47c54051 --- /dev/null +++ b/src/well-known-services.ts @@ -0,0 +1,4 @@ +export const wellKnownServices = [ + ['twitter.com', username => `https://twitter.com/${username}`], + ['github.com', username => `https://github.com/${username}`], +] as [string, (username: string) => string][]; diff --git a/packages/backend/test/api-visibility.ts b/test/api-visibility.ts similarity index 91% rename from packages/backend/test/api-visibility.ts rename to test/api-visibility.ts index b155549f9..5fbea02df 100644 --- a/packages/backend/test/api-visibility.ts +++ b/test/api-visibility.ts @@ -1,18 +1,26 @@ +/* + * Tests of API (visibility) + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api-visibility.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api-visibility.ts --require ts-node/register -g 'test name' + */ + process.env.NODE_ENV = 'test'; import * as assert from 'assert'; import * as childProcess from 'child_process'; -import { async, signup, request, post, startServer, shutdownServer } from './utils.js'; +import { async, signup, request, post, launchServer } from './utils'; describe('API visibility', () => { let p: childProcess.ChildProcess; - before(async () => { - p = await startServer(); - }); + before(launchServer(g => p = g)); - after(async () => { - await shutdownServer(p); + after(() => { + p.kill(); }); describe('Note visibility', async () => { @@ -61,40 +69,40 @@ describe('API visibility', () => { const show = async (noteId: any, by: any) => { return await request('/notes/show', { - noteId, + noteId }, by); }; before(async () => { //#region prepare // signup - alice = await signup({ username: 'alice' }); + alice = await signup({ username: 'alice' }); follower = await signup({ username: 'follower' }); - other = await signup({ username: 'other' }); - target = await signup({ username: 'target' }); - target2 = await signup({ username: 'target2' }); + other = await signup({ username: 'other' }); + target = await signup({ username: 'target' }); + target2 = await signup({ username: 'target2' }); // follow alice <= follower await request('/following/create', { userId: alice.id }, follower); // normal posts - pub = await post(alice, { text: 'x', visibility: 'public' }); + pub = await post(alice, { text: 'x', visibility: 'public' }); home = await post(alice, { text: 'x', visibility: 'home' }); - fol = await post(alice, { text: 'x', visibility: 'followers' }); - spe = await post(alice, { text: 'x', visibility: 'specified', visibleUserIds: [target.id] }); + fol = await post(alice, { text: 'x', visibility: 'followers' }); + spe = await post(alice, { text: 'x', visibility: 'specified', visibleUserIds: [target.id] }); // replies tgt = await post(target, { text: 'y', visibility: 'public' }); - pubR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'public' }); + pubR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'public' }); homeR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'home' }); - folR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'followers' }); - speR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'specified' }); + folR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'followers' }); + speR = await post(alice, { text: 'x', replyId: tgt.id, visibility: 'specified' }); // mentions - pubM = await post(alice, { text: '@target x', replyId: tgt.id, visibility: 'public' }); + pubM = await post(alice, { text: '@target x', replyId: tgt.id, visibility: 'public' }); homeM = await post(alice, { text: '@target x', replyId: tgt.id, visibility: 'home' }); - folM = await post(alice, { text: '@target x', replyId: tgt.id, visibility: 'followers' }); - speM = await post(alice, { text: '@target2 x', replyId: tgt.id, visibility: 'specified' }); + folM = await post(alice, { text: '@target x', replyId: tgt.id, visibility: 'followers' }); + speM = await post(alice, { text: '@target2 x', replyId: tgt.id, visibility: 'specified' }); //#endregion }); diff --git a/test/api.ts b/test/api.ts new file mode 100644 index 000000000..68ab2aa17 --- /dev/null +++ b/test/api.ts @@ -0,0 +1,979 @@ +/* + * Tests of API + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api.ts --require ts-node/register -g 'test name' + */ +/* +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import * as childProcess from 'child_process'; +import { async, signup, request, post, react, uploadFile } from './utils'; + +describe('API', () => { + let p: childProcess.ChildProcess; + + beforeEach(done => { + p = childProcess.spawn('node', [__dirname + '/../index.js'], { + stdio: ['inherit', 'inherit', 'ipc'], + env: { NODE_ENV: 'test' } + }); + p.on('message', message => { + if (message === 'ok') { + done(); + } + }); + }); + + afterEach(() => { + p.kill(); + }); + + describe('signup', () => { + it('不正なユーザー名でアカウントが作成できない', async(async () => { + const res = await request('/signup', { + username: 'test.', + password: 'test' + }); + assert.strictEqual(res.status, 400); + })); + + it('空のパスワードでアカウントが作成できない', async(async () => { + const res = await request('/signup', { + username: 'test', + password: '' + }); + assert.strictEqual(res.status, 400); + })); + + it('正しくアカウントが作成できる', async(async () => { + const me = { + username: 'test', + password: 'test' + }; + + const res = await request('/signup', me); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.username, me.username); + })); + + it('同じユーザー名のアカウントは作成できない', async(async () => { + await signup({ + username: 'test' + }); + + const res = await request('/signup', { + username: 'test', + password: 'test' + }); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('signin', () => { + it('間違ったパスワードでサインインできない', async(async () => { + await signup({ + username: 'test', + password: 'foo' + }); + + const res = await request('/signin', { + username: 'test', + password: 'bar' + }); + + assert.strictEqual(res.status, 403); + })); + + it('クエリをインジェクションできない', async(async () => { + await signup({ + username: 'test' + }); + + const res = await request('/signin', { + username: 'test', + password: { + $gt: '' + } + }); + + assert.strictEqual(res.status, 400); + })); + + it('正しい情報でサインインできる', async(async () => { + await signup({ + username: 'test', + password: 'foo' + }); + + const res = await request('/signin', { + username: 'test', + password: 'foo' + }); + + assert.strictEqual(res.status, 200); + })); + }); + + describe('i/update', () => { + it('アカウント設定を更新できる', async(async () => { + const me = await signup(); + + const myName = '大室櫻子'; + const myLocation = '七森中'; + const myBirthday = '2000-09-07'; + + const res = await request('/i/update', { + name: myName, + location: myLocation, + birthday: myBirthday + }, me); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, myName); + assert.strictEqual(res.body.location, myLocation); + assert.strictEqual(res.body.birthday, myBirthday); + })); + + it('名前を空白にできない', async(async () => { + const me = await signup(); + const res = await request('/i/update', { + name: ' ' + }, me); + assert.strictEqual(res.status, 400); + })); + + it('誕生日の設定を削除できる', async(async () => { + const me = await signup(); + await request('/i/update', { + birthday: '2000-09-07' + }, me); + + const res = await request('/i/update', { + birthday: null + }, me); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.birthday, null); + })); + + it('不正な誕生日の形式で怒られる', async(async () => { + const me = await signup(); + const res = await request('/i/update', { + birthday: '2000/09/07' + }, me); + assert.strictEqual(res.status, 400); + })); + }); + + describe('users/show', () => { + it('ユーザーが取得できる', async(async () => { + const me = await signup(); + + const res = await request('/users/show', { + userId: me.id + }, me); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.id, me.id); + })); + + it('ユーザーが存在しなかったら怒る', async(async () => { + const res = await request('/users/show', { + userId: '000000000000000000000000' + }); + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const res = await request('/users/show', { + userId: 'kyoppie' + }); + assert.strictEqual(res.status, 400); + })); + }); + + describe('notes/show', () => { + it('投稿が取得できる', async(async () => { + const me = await signup(); + const myPost = await post(me, { + text: 'test' + }); + + const res = await request('/notes/show', { + noteId: myPost.id + }, me); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.id, myPost.id); + assert.strictEqual(res.body.text, myPost.text); + })); + + it('投稿が存在しなかったら怒る', async(async () => { + const res = await request('/notes/show', { + noteId: '000000000000000000000000' + }); + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const res = await request('/notes/show', { + noteId: 'kyoppie' + }); + assert.strictEqual(res.status, 400); + })); + }); + + describe('notes/reactions/create', () => { + it('リアクションできる', async(async () => { + const bob = await signup({ username: 'bob' }); + const bobPost = await post(bob); + + const alice = await signup({ username: 'alice' }); + const res = await request('/notes/reactions/create', { + noteId: bobPost.id, + reaction: 'like' + }, alice); + + assert.strictEqual(res.status, 204); + })); + + it('自分の投稿にはリアクションできない', async(async () => { + const me = await signup(); + const myPost = await post(me); + + const res = await request('/notes/reactions/create', { + noteId: myPost.id, + reaction: 'like' + }, me); + + assert.strictEqual(res.status, 400); + })); + + it('二重にリアクションできない', async(async () => { + const bob = await signup({ username: 'bob' }); + const bobPost = await post(bob); + + const alice = await signup({ username: 'alice' }); + await react(alice, bobPost, 'like'); + + const res = await request('/notes/reactions/create', { + noteId: bobPost.id, + reaction: 'like' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('存在しない投稿にはリアクションできない', async(async () => { + const me = await signup(); + + const res = await request('/notes/reactions/create', { + noteId: '000000000000000000000000', + reaction: 'like' + }, me); + + assert.strictEqual(res.status, 400); + })); + + it('空のパラメータで怒られる', async(async () => { + const me = await signup(); + + const res = await request('/notes/reactions/create', {}, me); + + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const me = await signup(); + + const res = await request('/notes/reactions/create', { + noteId: 'kyoppie', + reaction: 'like' + }, me); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('following/create', () => { + it('フォローできる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const res = await request('/following/create', { + userId: alice.id + }, bob); + + assert.strictEqual(res.status, 200); + })); + + it('既にフォローしている場合は怒る', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + await request('/following/create', { + userId: alice.id + }, bob); + + const res = await request('/following/create', { + userId: alice.id + }, bob); + + assert.strictEqual(res.status, 400); + })); + + it('存在しないユーザーはフォローできない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/create', { + userId: '000000000000000000000000' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('自分自身はフォローできない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/create', { + userId: alice.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('空のパラメータで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/create', {}, alice); + + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/create', { + userId: 'foo' + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('following/delete', () => { + it('フォロー解除できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + await request('/following/create', { + userId: alice.id + }, bob); + + const res = await request('/following/delete', { + userId: alice.id + }, bob); + + assert.strictEqual(res.status, 200); + })); + + it('フォローしていない場合は怒る', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const res = await request('/following/delete', { + userId: alice.id + }, bob); + + assert.strictEqual(res.status, 400); + })); + + it('存在しないユーザーはフォロー解除できない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/delete', { + userId: '000000000000000000000000' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('自分自身はフォロー解除できない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/delete', { + userId: alice.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('空のパラメータで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/delete', {}, alice); + + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/following/delete', { + userId: 'kyoppie' + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('drive', () => { + it('ドライブ情報を取得できる', async(async () => { + const bob = await signup({ username: 'bob' }); + await uploadFile({ + userId: me.id, + size: 256 + }); + await uploadFile({ + userId: me.id, + size: 512 + }); + await uploadFile({ + userId: me.id, + size: 1024 + }); + const res = await request('/drive', {}, me); + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + expect(res.body).have.property('usage').eql(1792); + })); + }); + + describe('drive/files/create', () => { + it('ファイルを作成できる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await uploadFile(alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, 'Lenna.png'); + })); + + it('ファイルに名前を付けられる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await assert.request(server) + .post('/drive/files/create') + .field('i', alice.token) + .field('name', 'Belmond.png') + .attach('file', fs.readFileSync(__dirname + '/resources/Lenna.png'), 'Lenna.png'); + + expect(res).have.status(200); + expect(res.body).be.a('object'); + expect(res.body).have.property('name').eql('Belmond.png'); + })); + + it('ファイル無しで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/files/create', {}, alice); + + assert.strictEqual(res.status, 400); + })); + + it('SVGファイルを作成できる', async(async () => { + const izumi = await signup({ username: 'izumi' }); + + const res = await uploadFile(izumi, __dirname + '/resources/image.svg'); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, 'image.svg'); + assert.strictEqual(res.body.type, 'image/svg+xml'); + })); + }); + + describe('drive/files/update', () => { + it('名前を更新できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + const newName = 'いちごパスタ.png'; + + const res = await request('/drive/files/update', { + fileId: file.id, + name: newName + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, newName); + })); + + it('他人のファイルは更新できない', async(async () => { + const bob = await signup({ username: 'bob' }); + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(bob); + + const res = await request('/drive/files/update', { + fileId: file.id, + name: 'いちごパスタ.png' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('親フォルダを更新できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + + const res = await request('/drive/files/update', { + fileId: file.id, + folderId: folder.id + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.folderId, folder.id); + })); + + it('親フォルダを無しにできる', async(async () => { + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + + await request('/drive/files/update', { + fileId: file.id, + folderId: folder.id + }, alice); + + const res = await request('/drive/files/update', { + fileId: file.id, + folderId: null + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.folderId, null); + })); + + it('他人のフォルダには入れられない', async(async () => { + const bob = await signup({ username: 'bob' }); + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, bob)).body; + + const res = await request('/drive/files/update', { + fileId: file.id, + folderId: folder.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('存在しないフォルダで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + + const res = await request('/drive/files/update', { + fileId: file.id, + folderId: '000000000000000000000000' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('不正なフォルダIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + const file = await uploadFile(alice); + + const res = await request('/drive/files/update', { + fileId: file.id, + folderId: 'foo' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('ファイルが存在しなかったら怒る', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/files/update', { + fileId: '000000000000000000000000', + name: 'いちごパスタ.png' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('間違ったIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/files/update', { + fileId: 'kyoppie', + name: 'いちごパスタ.png' + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('drive/folders/create', () => { + it('フォルダを作成できる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/folders/create', { + name: 'test' + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, 'test'); + })); + }); + + describe('drive/folders/update', () => { + it('名前を更新できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + name: 'new name' + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.name, 'new name'); + })); + + it('他人のフォルダを更新できない', async(async () => { + const bob = await signup({ username: 'bob' }); + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, bob)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + name: 'new name' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('親フォルダを更新できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const parentFolder = (await request('/drive/folders/create', { + name: 'parent' + }, alice)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: parentFolder.id + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.parentId, parentFolder.id); + })); + + it('親フォルダを無しに更新できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const parentFolder = (await request('/drive/folders/create', { + name: 'parent' + }, alice)).body; + await request('/drive/folders/update', { + folderId: folder.id, + parentId: parentFolder.id + }, alice); + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: null + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.parentId, null); + })); + + it('他人のフォルダを親フォルダに設定できない', async(async () => { + const bob = await signup({ username: 'bob' }); + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const parentFolder = (await request('/drive/folders/create', { + name: 'parent' + }, bob)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: parentFolder.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('フォルダが循環するような構造にできない', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const parentFolder = (await request('/drive/folders/create', { + name: 'parent' + }, alice)).body; + await request('/drive/folders/update', { + folderId: parentFolder.id, + parentId: folder.id + }, alice); + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: parentFolder.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('フォルダが循環するような構造にできない(再帰的)', async(async () => { + const alice = await signup({ username: 'alice' }); + const folderA = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const folderB = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + const folderC = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + await request('/drive/folders/update', { + folderId: folderB.id, + parentId: folderA.id + }, alice); + await request('/drive/folders/update', { + folderId: folderC.id, + parentId: folderB.id + }, alice); + + const res = await request('/drive/folders/update', { + folderId: folderA.id, + parentId: folderC.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('フォルダが循環するような構造にできない(自身)', async(async () => { + const arisugawa = await signup({ username: 'arisugawa' }); + const folderA = (await request('/drive/folders/create', { + name: 'test' + }, arisugawa)).body; + + const res = await request('/drive/folders/update', { + folderId: folderA.id, + parentId: folderA.id + }, arisugawa); + + assert.strictEqual(res.status, 400); + })); + + it('存在しない親フォルダを設定できない', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: '000000000000000000000000' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('不正な親フォルダIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + const folder = (await request('/drive/folders/create', { + name: 'test' + }, alice)).body; + + const res = await request('/drive/folders/update', { + folderId: folder.id, + parentId: 'foo' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('存在しないフォルダを更新できない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/folders/update', { + folderId: '000000000000000000000000' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('不正なフォルダIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/drive/folders/update', { + folderId: 'foo' + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('messaging/messages/create', () => { + it('メッセージを送信できる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const res = await request('/messaging/messages/create', { + userId: bob.id, + text: 'test' + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.text, 'test'); + })); + + it('自分自身にはメッセージを送信できない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/messaging/messages/create', { + userId: alice.id, + text: 'Yo' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('存在しないユーザーにはメッセージを送信できない', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/messaging/messages/create', { + userId: '000000000000000000000000', + text: 'test' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('不正なユーザーIDで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + + const res = await request('/messaging/messages/create', { + userId: 'foo', + text: 'test' + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('テキストが無くて怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const res = await request('/messaging/messages/create', { + userId: bob.id + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('文字数オーバーで怒られる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const res = await request('/messaging/messages/create', { + userId: bob.id, + text: '!'.repeat(1001) + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); + + describe('notes/replies', () => { + it('自分に閲覧権限のない投稿は含まれない', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + const carol = await signup({ username: 'carol' }); + + const alicePost = await post(alice, { + text: 'foo' + }); + + await post(bob, { + replyId: alicePost.id, + text: 'bar', + visibility: 'specified', + visibleUserIds: [alice.id] + }); + + const res = await request('/notes/replies', { + noteId: alicePost.id + }, carol); + + assert.strictEqual(res.status, 200); + assert.strictEqual(Array.isArray(res.body), true); + assert.strictEqual(res.body.length, 0); + })); + }); + + describe('notes/timeline', () => { + it('フォロワー限定投稿が含まれる', async(async () => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + await request('/following/create', { + userId: alice.id + }, bob); + + const alicePost = await post(alice, { + text: 'foo', + visibility: 'followers' + }); + + const res = await request('/notes/timeline', {}, bob); + + assert.strictEqual(res.status, 200); + assert.strictEqual(Array.isArray(res.body), true); + assert.strictEqual(res.body.length, 1); + assert.strictEqual(res.body[0].id, alicePost.id); + })); + }); +}); +*/ diff --git a/test/chart.ts b/test/chart.ts new file mode 100644 index 000000000..25b083db1 --- /dev/null +++ b/test/chart.ts @@ -0,0 +1,458 @@ +/* + * Tests of chart engine + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/chart.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/chart.ts --require ts-node/register -g 'test name' + */ + +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import * as lolex from '@sinonjs/fake-timers'; +import { async } from './utils'; +import TestChart from '../src/services/chart/charts/classes/test'; +import TestGroupedChart from '../src/services/chart/charts/classes/test-grouped'; +import TestUniqueChart from '../src/services/chart/charts/classes/test-unique'; +import * as _TestChart from '../src/services/chart/charts/schemas/test'; +import * as _TestGroupedChart from '../src/services/chart/charts/schemas/test-grouped'; +import * as _TestUniqueChart from '../src/services/chart/charts/schemas/test-unique'; +import { Connection, getConnection, createConnection } from 'typeorm'; +import config from '../src/config'; +import Chart from '../src/services/chart/core'; +import { initDb } from '../src/db/postgre'; + +function initChartDb() { + try { + const conn = getConnection(); + return Promise.resolve(conn); + } catch (e) {} + + return createConnection({ + type: 'postgres', + host: config.db.host, + port: config.db.port, + username: config.db.user, + password: config.db.pass, + database: config.db.db, + synchronize: true, + dropSchema: true, + entities: [ + Chart.schemaToEntity(_TestChart.name, _TestChart.schema), + Chart.schemaToEntity(_TestGroupedChart.name, _TestGroupedChart.schema), + Chart.schemaToEntity(_TestUniqueChart.name, _TestUniqueChart.schema) + ] + }); +} + +describe('Chart', () => { + let testChart: TestChart; + let testGroupedChart: TestGroupedChart; + let testUniqueChart: TestUniqueChart; + let clock: lolex.InstalledClock; + let connection: Connection; + + before(done => { + initChartDb().then(c => { + connection = c; + done(); + }); + }); + + after(async(async () => { + await connection.close(); + await initDb(true, undefined, true); + })); + + beforeEach(done => { + testChart = new TestChart(); + testGroupedChart = new TestGroupedChart(); + testUniqueChart = new TestUniqueChart(); + + clock = lolex.install({ + now: new Date('2000-01-01 00:00:00') + }); + done(); + }); + + afterEach(async(async () => { + clock.uninstall(); + await connection.dropDatabase(); + await connection.synchronize(); + })); + + it('Can updates', async(async () => { + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + })); + + it('Can updates (dec)', async(async () => { + await testChart.decrement(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [1, 0, 0], + inc: [0, 0, 0], + total: [-1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [1, 0, 0], + inc: [0, 0, 0], + total: [-1, 0, 0] + }, + }); + })); + + it('Empty chart', async(async () => { + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [0, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [0, 0, 0] + }, + }); + })); + + it('Can updates at multiple times at same time', async(async () => { + await testChart.increment(); + await testChart.increment(); + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [3, 0, 0], + total: [3, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [3, 0, 0], + total: [3, 0, 0] + }, + }); + })); + + it('Can updates at different times', async(async () => { + await testChart.increment(); + + clock.tick('01:00:00'); + + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 1, 0], + total: [2, 1, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [2, 0, 0], + total: [2, 0, 0] + }, + }); + })); + + it('Can padding', async(async () => { + await testChart.increment(); + + clock.tick('02:00:00'); + + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 1], + total: [2, 1, 1] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [2, 0, 0], + total: [2, 0, 0] + }, + }); + })); + + // 要求された範囲にログがひとつもない場合でもパディングできる + it('Can padding from past range', async(async () => { + await testChart.increment(); + + clock.tick('05:00:00'); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [1, 1, 1] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + })); + + // 要求された範囲の最も古い箇所に位置するログが存在しない場合でもパディングできる + // Issue #3190 + it('Can padding from past range 2', async(async () => { + await testChart.increment(); + clock.tick('05:00:00'); + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [2, 1, 1] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [2, 0, 0], + total: [2, 0, 0] + }, + }); + })); + + it('Can specify offset', async(async () => { + await testChart.increment(); + + clock.tick('01:00:00'); + + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); + const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [2, 0, 0], + total: [2, 0, 0] + }, + }); + })); + + it('Can specify offset (floor time)', async(async () => { + clock.tick('00:30:00'); + + await testChart.increment(); + + clock.tick('01:30:00'); + + await testChart.increment(); + + const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); + const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [2, 0, 0], + total: [2, 0, 0] + }, + }); + })); + + describe('Grouped', () => { + it('Can updates', async(async () => { + await testGroupedChart.increment('alice'); + + const aliceChartHours = await testGroupedChart.getChart('hour', 3, null, 'alice'); + const aliceChartDays = await testGroupedChart.getChart('day', 3, null, 'alice'); + const bobChartHours = await testGroupedChart.getChart('hour', 3, null, 'bob'); + const bobChartDays = await testGroupedChart.getChart('day', 3, null, 'bob'); + + assert.deepStrictEqual(aliceChartHours, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(aliceChartDays, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(bobChartHours, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [0, 0, 0] + }, + }); + + assert.deepStrictEqual(bobChartDays, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [0, 0, 0] + }, + }); + })); + }); + + describe('Unique increment', () => { + it('Can updates', async(async () => { + await testUniqueChart.uniqueIncrement('alice'); + await testUniqueChart.uniqueIncrement('alice'); + await testUniqueChart.uniqueIncrement('bob'); + + const chartHours = await testUniqueChart.getChart('hour', 3, null); + const chartDays = await testUniqueChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: [2, 0, 0], + }); + + assert.deepStrictEqual(chartDays, { + foo: [2, 0, 0], + }); + })); + }); + + describe('Resync', () => { + it('Can resync', async(async () => { + testChart.total = 1; + + await testChart.resync(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [1, 0, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [0, 0, 0], + total: [1, 0, 0] + }, + }); + })); + + it('Can resync (2)', async(async () => { + await testChart.increment(); + + clock.tick('01:00:00'); + + testChart.total = 100; + + await testChart.resync(); + + const chartHours = await testChart.getChart('hour', 3, null); + const chartDays = await testChart.getChart('day', 3, null); + + assert.deepStrictEqual(chartHours, { + foo: { + dec: [0, 0, 0], + inc: [0, 1, 0], + total: [100, 1, 0] + }, + }); + + assert.deepStrictEqual(chartDays, { + foo: { + dec: [0, 0, 0], + inc: [1, 0, 0], + total: [100, 0, 0] + }, + }); + })); + }); +}); diff --git a/test/extract-mentions.ts b/test/extract-mentions.ts new file mode 100644 index 000000000..00f736ae1 --- /dev/null +++ b/test/extract-mentions.ts @@ -0,0 +1,48 @@ +import * as assert from 'assert'; + +import extractMentions from '../src/misc/extract-mentions'; +import { parse } from '../src/mfm/parse'; + +describe('Extract mentions', () => { + it('simple', () => { + const ast = parse('@foo @bar @baz')!; + const mentions = extractMentions(ast); + assert.deepStrictEqual(mentions, [{ + username: 'foo', + acct: '@foo', + canonical: '@foo', + host: null + }, { + username: 'bar', + acct: '@bar', + canonical: '@bar', + host: null + }, { + username: 'baz', + acct: '@baz', + canonical: '@baz', + host: null + }]); + }); + + it('nested', () => { + const ast = parse('@foo **@bar** @baz')!; + const mentions = extractMentions(ast); + assert.deepStrictEqual(mentions, [{ + username: 'foo', + acct: '@foo', + canonical: '@foo', + host: null + }, { + username: 'bar', + acct: '@bar', + canonical: '@bar', + host: null + }, { + username: 'baz', + acct: '@baz', + canonical: '@baz', + host: null + }]); + }); +}); diff --git a/test/get-file-info.ts b/test/get-file-info.ts new file mode 100644 index 000000000..312b225aa --- /dev/null +++ b/test/get-file-info.ts @@ -0,0 +1,152 @@ +/* + * Tests for detection of file information + * + * How to run the tests: + * > TS_NODE_FILES=true npx mocha test/get-file-info.ts --require ts-node/register + * + * To specify test: + * > TS_NODE_FILES=true npx mocha test/get-file-info.ts --require ts-node/register -g 'test name' + */ + +import * as assert from 'assert'; +import { async } from './utils'; +import { getFileInfo } from '../src/misc/get-file-info'; + +describe('Get file info', () => { + it('Empty file', async (async () => { + const path = `${__dirname}/resources/emptyfile`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 0, + md5: 'd41d8cd98f00b204e9800998ecf8427e', + type: { + mime: 'application/octet-stream', + ext: null + }, + width: undefined, + height: undefined, + }); + })); + + it('Generic JPEG', async (async () => { + const path = `${__dirname}/resources/Lenna.jpg`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 25360, + md5: '091b3f259662aa31e2ffef4519951168', + type: { + mime: 'image/jpeg', + ext: 'jpg' + }, + width: 512, + height: 512, + }); + })); + + it('Generic APNG', async (async () => { + const path = `${__dirname}/resources/anime.png`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 1868, + md5: '08189c607bea3b952704676bb3c979e0', + type: { + mime: 'image/apng', + ext: 'apng' + }, + width: 256, + height: 256, + }); + })); + + it('Generic AGIF', async (async () => { + const path = `${__dirname}/resources/anime.gif`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 2248, + md5: '32c47a11555675d9267aee1a86571e7e', + type: { + mime: 'image/gif', + ext: 'gif' + }, + width: 256, + height: 256, + }); + })); + + it('PNG with alpha', async (async () => { + const path = `${__dirname}/resources/with-alpha.png`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 3772, + md5: 'f73535c3e1e27508885b69b10cf6e991', + type: { + mime: 'image/png', + ext: 'png' + }, + width: 256, + height: 256, + }); + })); + + it('Generic SVG', async (async () => { + const path = `${__dirname}/resources/image.svg`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 505, + md5: 'b6f52b4b021e7b92cdd04509c7267965', + type: { + mime: 'image/svg+xml', + ext: 'svg' + }, + width: 256, + height: 256, + }); + })); + + it('SVG with XML definition', async (async () => { + // https://github.com/syuilo/misskey/issues/4413 + const path = `${__dirname}/resources/with-xml-def.svg`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 544, + md5: '4b7a346cde9ccbeb267e812567e33397', + type: { + mime: 'image/svg+xml', + ext: 'svg' + }, + width: 256, + height: 256, + }); + })); + + it('Dimension limit', async (async () => { + const path = `${__dirname}/resources/25000x25000.png`; + const info = await getFileInfo(path) as any; + delete info.warnings; + delete info.blurhash; + assert.deepStrictEqual(info, { + size: 75933, + md5: '268c5dde99e17cf8fe09f1ab3f97df56', + type: { + mime: 'application/octet-stream', // do not treat as image + ext: null + }, + width: 25000, + height: 25000, + }); + })); +}); diff --git a/test/mfm.ts b/test/mfm.ts new file mode 100644 index 000000000..a32457e89 --- /dev/null +++ b/test/mfm.ts @@ -0,0 +1,1193 @@ +/* + * Tests of MFM + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mfm.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mfm.ts --require ts-node/register -g 'test name' + */ + +import * as assert from 'assert'; + +import { parse, parsePlain } from '../src/mfm/parse'; +import { toHtml } from '../src/mfm/to-html'; +import { fromHtml } from '../src/mfm/from-html'; +import { toString } from '../src/mfm/to-string'; +import { createTree as tree, createLeaf as leaf, MfmTree } from '../src/mfm/prelude'; +import { removeOrphanedBrackets } from '../src/mfm/language'; + +function text(text: string): MfmTree { + return leaf('text', { text }); +} + +describe('createLeaf', () => { + it('creates leaf', () => { + assert.deepStrictEqual(leaf('text', { text: 'abc' }), { + node: { + type: 'text', + props: { + text: 'abc' + } + }, + children: [], + }); + }); +}); + +describe('createTree', () => { + it('creates tree', () => { + const t = tree('tree', [ + leaf('left', { a: 2 }), + leaf('right', { b: 'hi' }) + ], { + c: 4 + }); + assert.deepStrictEqual(t, { + node: { + type: 'tree', + props: { + c: 4 + } + }, + children: [ + leaf('left', { a: 2 }), + leaf('right', { b: 'hi' }) + ], + }); + }); +}); + +describe('removeOrphanedBrackets', () => { + it('single (contained)', () => { + const input = '(foo)'; + const expected = '(foo)'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('single (head)', () => { + const input = '(foo)bar'; + const expected = '(foo)bar'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('single (tail)', () => { + const input = 'foo(bar)'; + const expected = 'foo(bar)'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('a', () => { + const input = '(foo'; + const expected = ''; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('b', () => { + const input = ')foo'; + const expected = ''; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('nested', () => { + const input = 'foo(「(bar)」)'; + const expected = 'foo(「(bar)」)'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('no brackets', () => { + const input = 'foo'; + const expected = 'foo'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('with foreign bracket (single)', () => { + const input = 'foo(bar))'; + const expected = 'foo(bar)'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('with foreign bracket (open)', () => { + const input = 'foo(bar'; + const expected = 'foo'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('with foreign bracket (close)', () => { + const input = 'foo)bar'; + const expected = 'foo'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('with foreign bracket (close and open)', () => { + const input = 'foo)(bar'; + const expected = 'foo'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('various bracket type', () => { + const input = 'foo「(bar)」('; + const expected = 'foo「(bar)」'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); + + it('intersected', () => { + const input = 'foo(「)」'; + const expected = 'foo(「)」'; + const actual = removeOrphanedBrackets(input); + assert.deepStrictEqual(actual, expected); + }); +}); + +describe('MFM', () => { + it('can be analyzed', () => { + const tokens = parse('@himawari @hima_sub@namori.net お腹ペコい :cat: #yryr'); + assert.deepStrictEqual(tokens, [ + leaf('mention', { + acct: '@himawari', + canonical: '@himawari', + username: 'himawari', + host: null + }), + text(' '), + leaf('mention', { + acct: '@hima_sub@namori.net', + canonical: '@hima_sub@namori.net', + username: 'hima_sub', + host: 'namori.net' + }), + text(' お腹ペコい '), + leaf('emoji', { name: 'cat' }), + text(' '), + leaf('hashtag', { hashtag: 'yryr' }), + ]); + }); + + describe('elements', () => { + describe('bold', () => { + it('simple', () => { + const tokens = parse('**foo**'); + assert.deepStrictEqual(tokens, [ + tree('bold', [ + text('foo') + ], {}), + ]); + }); + + it('with other texts', () => { + const tokens = parse('bar**foo**bar'); + assert.deepStrictEqual(tokens, [ + text('bar'), + tree('bold', [ + text('foo') + ], {}), + text('bar'), + ]); + }); + + it('with underscores', () => { + const tokens = parse('__foo__'); + assert.deepStrictEqual(tokens, [ + tree('bold', [ + text('foo') + ], {}), + ]); + }); + + it('with underscores (ensure it allows alphabet only)', () => { + const tokens = parse('(=^・__________・^=)'); + assert.deepStrictEqual(tokens, [ + text('(=^・__________・^=)') + ]); + }); + + it('mixed syntax', () => { + const tokens = parse('**foo__'); + assert.deepStrictEqual(tokens, [ + text('**foo__'), + ]); + }); + + it('mixed syntax', () => { + const tokens = parse('__foo**'); + assert.deepStrictEqual(tokens, [ + text('__foo**'), + ]); + }); + }); + + it('small', () => { + const tokens = parse('smaller'); + assert.deepStrictEqual(tokens, [ + tree('small', [ + text('smaller') + ], {}), + ]); + }); + + describe('mention', () => { + it('local', () => { + const tokens = parse('@himawari foo'); + assert.deepStrictEqual(tokens, [ + leaf('mention', { + acct: '@himawari', + canonical: '@himawari', + username: 'himawari', + host: null + }), + text(' foo') + ]); + }); + + it('remote', () => { + const tokens = parse('@hima_sub@namori.net foo'); + assert.deepStrictEqual(tokens, [ + leaf('mention', { + acct: '@hima_sub@namori.net', + canonical: '@hima_sub@namori.net', + username: 'hima_sub', + host: 'namori.net' + }), + text(' foo') + ]); + }); + + it('remote punycode', () => { + const tokens = parse('@hima_sub@xn--q9j5bya.xn--zckzah foo'); + assert.deepStrictEqual(tokens, [ + leaf('mention', { + acct: '@hima_sub@xn--q9j5bya.xn--zckzah', + canonical: '@hima_sub@なもり.テスト', + username: 'hima_sub', + host: 'xn--q9j5bya.xn--zckzah' + }), + text(' foo') + ]); + }); + + it('ignore', () => { + const tokens = parse('idolm@ster'); + assert.deepStrictEqual(tokens, [ + text('idolm@ster') + ]); + + const tokens2 = parse('@a\n@b\n@c'); + assert.deepStrictEqual(tokens2, [ + leaf('mention', { + acct: '@a', + canonical: '@a', + username: 'a', + host: null + }), + text('\n'), + leaf('mention', { + acct: '@b', + canonical: '@b', + username: 'b', + host: null + }), + text('\n'), + leaf('mention', { + acct: '@c', + canonical: '@c', + username: 'c', + host: null + }) + ]); + + const tokens3 = parse('**x**@a'); + assert.deepStrictEqual(tokens3, [ + tree('bold', [ + text('x') + ], {}), + leaf('mention', { + acct: '@a', + canonical: '@a', + username: 'a', + host: null + }) + ]); + + const tokens4 = parse('@\n@v\n@veryverylongusername'); + assert.deepStrictEqual(tokens4, [ + text('@\n'), + leaf('mention', { + acct: '@v', + canonical: '@v', + username: 'v', + host: null + }), + text('\n'), + leaf('mention', { + acct: '@veryverylongusername', + canonical: '@veryverylongusername', + username: 'veryverylongusername', + host: null + }), + ]); + }); + }); + + describe('hashtag', () => { + it('simple', () => { + const tokens = parse('#alice'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'alice' }) + ]); + }); + + it('after line break', () => { + const tokens = parse('foo\n#alice'); + assert.deepStrictEqual(tokens, [ + text('foo\n'), + leaf('hashtag', { hashtag: 'alice' }) + ]); + }); + + it('with text', () => { + const tokens = parse('Strawberry Pasta #alice'); + assert.deepStrictEqual(tokens, [ + text('Strawberry Pasta '), + leaf('hashtag', { hashtag: 'alice' }) + ]); + }); + + it('with text (zenkaku)', () => { + const tokens = parse('こんにちは#世界'); + assert.deepStrictEqual(tokens, [ + text('こんにちは'), + leaf('hashtag', { hashtag: '世界' }) + ]); + }); + + it('ignore comma and period', () => { + const tokens = parse('Foo #bar, baz #piyo.'); + assert.deepStrictEqual(tokens, [ + text('Foo '), + leaf('hashtag', { hashtag: 'bar' }), + text(', baz '), + leaf('hashtag', { hashtag: 'piyo' }), + text('.'), + ]); + }); + + it('ignore exclamation mark', () => { + const tokens = parse('#Foo!'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'Foo' }), + text('!'), + ]); + }); + + it('ignore colon', () => { + const tokens = parse('#Foo:'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'Foo' }), + text(':'), + ]); + }); + + it('ignore single quote', () => { + const tokens = parse('#foo\''); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo' }), + text('\''), + ]); + }); + + it('ignore double quote', () => { + const tokens = parse('#foo"'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo' }), + text('"'), + ]); + }); + + it('ignore square brackets', () => { + const tokens = parse('#foo]'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo' }), + text(']'), + ]); + }); + + it('ignore 】', () => { + const tokens = parse('#foo】'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo' }), + text('】'), + ]); + }); + + it('allow including number', () => { + const tokens = parse('#foo123'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo123' }), + ]); + }); + + it('with brackets', () => { + const tokens1 = parse('(#foo)'); + assert.deepStrictEqual(tokens1, [ + text('('), + leaf('hashtag', { hashtag: 'foo' }), + text(')'), + ]); + + const tokens2 = parse('「#foo」'); + assert.deepStrictEqual(tokens2, [ + text('「'), + leaf('hashtag', { hashtag: 'foo' }), + text('」'), + ]); + }); + + it('with mixed brackets', () => { + const tokens = parse('「#foo(bar)」'); + assert.deepStrictEqual(tokens, [ + text('「'), + leaf('hashtag', { hashtag: 'foo(bar)' }), + text('」'), + ]); + }); + + it('with brackets (space before)', () => { + const tokens1 = parse('(bar #foo)'); + assert.deepStrictEqual(tokens1, [ + text('(bar '), + leaf('hashtag', { hashtag: 'foo' }), + text(')'), + ]); + + const tokens2 = parse('「bar #foo」'); + assert.deepStrictEqual(tokens2, [ + text('「bar '), + leaf('hashtag', { hashtag: 'foo' }), + text('」'), + ]); + }); + + it('disallow number only', () => { + const tokens = parse('#123'); + assert.deepStrictEqual(tokens, [ + text('#123'), + ]); + }); + + it('disallow number only (with brackets)', () => { + const tokens = parse('(#123)'); + assert.deepStrictEqual(tokens, [ + text('(#123)'), + ]); + }); + + it('ignore slash', () => { + const tokens = parse('#foo/bar'); + assert.deepStrictEqual(tokens, [ + leaf('hashtag', { hashtag: 'foo' }), + text('/bar'), + ]); + }); + + it('ignore Keycap Number Sign (U+0023 + U+20E3)', () => { + const tokens = parse('#⃣'); + assert.deepStrictEqual(tokens, [ + leaf('emoji', { emoji: '#⃣' }) + ]); + }); + + it('ignore Keycap Number Sign (U+0023 + U+FE0F + U+20E3)', () => { + const tokens = parse('#️⃣'); + assert.deepStrictEqual(tokens, [ + leaf('emoji', { emoji: '#️⃣' }) + ]); + }); + }); + + describe('quote', () => { + it('basic', () => { + const tokens1 = parse('> foo'); + assert.deepStrictEqual(tokens1, [ + tree('quote', [ + text('foo') + ], {}) + ]); + + const tokens2 = parse('>foo'); + assert.deepStrictEqual(tokens2, [ + tree('quote', [ + text('foo') + ], {}) + ]); + }); + + it('series', () => { + const tokens = parse('> foo\n\n> bar'); + assert.deepStrictEqual(tokens, [ + tree('quote', [ + text('foo') + ], {}), + text('\n'), + tree('quote', [ + text('bar') + ], {}), + ]); + }); + + it('trailing line break', () => { + const tokens1 = parse('> foo\n'); + assert.deepStrictEqual(tokens1, [ + tree('quote', [ + text('foo') + ], {}), + ]); + + const tokens2 = parse('> foo\n\n'); + assert.deepStrictEqual(tokens2, [ + tree('quote', [ + text('foo') + ], {}), + text('\n') + ]); + }); + + it('multiline', () => { + const tokens1 = parse('>foo\n>bar'); + assert.deepStrictEqual(tokens1, [ + tree('quote', [ + text('foo\nbar') + ], {}) + ]); + + const tokens2 = parse('> foo\n> bar'); + assert.deepStrictEqual(tokens2, [ + tree('quote', [ + text('foo\nbar') + ], {}) + ]); + }); + + it('multiline with trailing line break', () => { + const tokens1 = parse('> foo\n> bar\n'); + assert.deepStrictEqual(tokens1, [ + tree('quote', [ + text('foo\nbar') + ], {}), + ]); + + const tokens2 = parse('> foo\n> bar\n\n'); + assert.deepStrictEqual(tokens2, [ + tree('quote', [ + text('foo\nbar') + ], {}), + text('\n') + ]); + }); + + it('with before and after texts', () => { + const tokens = parse('before\n> foo\nafter'); + assert.deepStrictEqual(tokens, [ + text('before\n'), + tree('quote', [ + text('foo') + ], {}), + text('after'), + ]); + }); + + it('multiple quotes', () => { + const tokens = parse('> foo\nbar\n\n> foo\nbar\n\n> foo\nbar'); + assert.deepStrictEqual(tokens, [ + tree('quote', [ + text('foo') + ], {}), + text('bar\n\n'), + tree('quote', [ + text('foo') + ], {}), + text('bar\n\n'), + tree('quote', [ + text('foo') + ], {}), + text('bar'), + ]); + }); + + it('require line break before ">"', () => { + const tokens = parse('foo>bar'); + assert.deepStrictEqual(tokens, [ + text('foo>bar'), + ]); + }); + + it('nested', () => { + const tokens = parse('>> foo\n> bar'); + assert.deepStrictEqual(tokens, [ + tree('quote', [ + tree('quote', [ + text('foo') + ], {}), + text('bar') + ], {}) + ]); + }); + + it('trim line breaks', () => { + const tokens = parse('foo\n\n>a\n>>b\n>>\n>>>\n>>>c\n>>>\n>d\n\n'); + assert.deepStrictEqual(tokens, [ + text('foo\n\n'), + tree('quote', [ + text('a\n'), + tree('quote', [ + text('b\n\n'), + tree('quote', [ + text('\nc\n') + ], {}) + ], {}), + text('d') + ], {}), + text('\n'), + ]); + }); + }); + + describe('url', () => { + it('simple', () => { + const tokens = parse('https://example.com'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com' }) + ]); + }); + + it('ignore trailing period', () => { + const tokens = parse('https://example.com.'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com' }), + text('.') + ]); + }); + + it('ignore trailing periods', () => { + const tokens = parse('https://example.com...'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com' }), + text('...') + ]); + }); + + it('with comma', () => { + const tokens = parse('https://example.com/foo?bar=a,b'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com/foo?bar=a,b' }) + ]); + }); + + it('ignore trailing comma', () => { + const tokens = parse('https://example.com/foo, bar'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com/foo' }), + text(', bar') + ]); + }); + + it('with brackets', () => { + const tokens = parse('https://example.com/foo(bar)'); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://example.com/foo(bar)' }) + ]); + }); + + it('ignore parent brackets', () => { + const tokens = parse('(https://example.com/foo)'); + assert.deepStrictEqual(tokens, [ + text('('), + leaf('url', { url: 'https://example.com/foo' }), + text(')') + ]); + }); + + it('ignore parent []', () => { + const tokens = parse('foo [https://example.com/foo] bar'); + assert.deepStrictEqual(tokens, [ + text('foo ['), + leaf('url', { url: 'https://example.com/foo' }), + text('] bar') + ]); + }); + + it('ignore parent brackets 2', () => { + const tokens = parse('(foo https://example.com/foo)'); + assert.deepStrictEqual(tokens, [ + text('(foo '), + leaf('url', { url: 'https://example.com/foo' }), + text(')') + ]); + }); + + it('ignore parent brackets with internal brackets', () => { + const tokens = parse('(https://example.com/foo(bar))'); + assert.deepStrictEqual(tokens, [ + text('('), + leaf('url', { url: 'https://example.com/foo(bar)' }), + text(')') + ]); + }); + + it('ignore non-ascii characters contained url without angle brackets', () => { + const tokens = parse('https://大石泉すき.example.com'); + assert.deepStrictEqual(tokens, [ + text('https://大石泉すき.example.com') + ]); + }); + + it('match non-ascii characters contained url with angle brackets', () => { + const tokens = parse(''); + assert.deepStrictEqual(tokens, [ + leaf('url', { url: 'https://大石泉すき.example.com' }) + ]); + }); + }); + + describe('link', () => { + it('simple', () => { + const tokens = parse('[foo](https://example.com)'); + assert.deepStrictEqual(tokens, [ + tree('link', [ + text('foo') + ], { url: 'https://example.com', silent: false }) + ]); + }); + + it('simple (with silent flag)', () => { + const tokens = parse('?[foo](https://example.com)'); + assert.deepStrictEqual(tokens, [ + tree('link', [ + text('foo') + ], { url: 'https://example.com', silent: true }) + ]); + }); + + it('in text', () => { + const tokens = parse('before[foo](https://example.com)after'); + assert.deepStrictEqual(tokens, [ + text('before'), + tree('link', [ + text('foo') + ], { url: 'https://example.com', silent: false }), + text('after'), + ]); + }); + + it('with brackets', () => { + const tokens = parse('[foo](https://example.com/foo(bar))'); + assert.deepStrictEqual(tokens, [ + tree('link', [ + text('foo') + ], { url: 'https://example.com/foo(bar)', silent: false }) + ]); + }); + + it('with parent brackets', () => { + const tokens = parse('([foo](https://example.com/foo(bar)))'); + assert.deepStrictEqual(tokens, [ + text('('), + tree('link', [ + text('foo') + ], { url: 'https://example.com/foo(bar)', silent: false }), + text(')') + ]); + }); + }); + + it('emoji', () => { + const tokens1 = parse(':cat:'); + assert.deepStrictEqual(tokens1, [ + leaf('emoji', { name: 'cat' }) + ]); + + const tokens2 = parse(':cat::cat::cat:'); + assert.deepStrictEqual(tokens2, [ + leaf('emoji', { name: 'cat' }), + leaf('emoji', { name: 'cat' }), + leaf('emoji', { name: 'cat' }) + ]); + + const tokens3 = parse('🍎'); + assert.deepStrictEqual(tokens3, [ + leaf('emoji', { emoji: '🍎' }) + ]); + }); + + describe('block code', () => { + it('simple', () => { + const tokens = parse('```\nvar x = "Strawberry Pasta";\n```'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: 'var x = "Strawberry Pasta";', lang: null }) + ]); + }); + + it('can specify language', () => { + const tokens = parse('``` json\n{ "x": 42 }\n```'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: '{ "x": 42 }', lang: 'json' }) + ]); + }); + + it('require line break before "```"', () => { + const tokens = parse('before```\nfoo\n```'); + assert.deepStrictEqual(tokens, [ + text('before'), + leaf('inlineCode', { code: '`' }), + text('\nfoo\n'), + leaf('inlineCode', { code: '`' }) + ]); + }); + + it('series', () => { + const tokens = parse('```\nfoo\n```\n```\nbar\n```\n```\nbaz\n```'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: 'foo', lang: null }), + leaf('blockCode', { code: 'bar', lang: null }), + leaf('blockCode', { code: 'baz', lang: null }), + ]); + }); + + it('ignore internal marker', () => { + const tokens = parse('```\naaa```bbb\n```'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: 'aaa```bbb', lang: null }) + ]); + }); + + it('trim after line break', () => { + const tokens = parse('```\nfoo\n```\nbar'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: 'foo', lang: null }), + text('bar') + ]); + }); + }); + + describe('inline code', () => { + it('simple', () => { + const tokens = parse('`var x = "Strawberry Pasta";`'); + assert.deepStrictEqual(tokens, [ + leaf('inlineCode', { code: 'var x = "Strawberry Pasta";' }) + ]); + }); + + it('disallow line break', () => { + const tokens = parse('`foo\nbar`'); + assert.deepStrictEqual(tokens, [ + text('`foo\nbar`') + ]); + }); + + it('disallow ´', () => { + const tokens = parse('`foo´bar`'); + assert.deepStrictEqual(tokens, [ + text('`foo´bar`') + ]); + }); + }); + + it('mathInline', () => { + const fomula = 'x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}'; + const content = `\\(${fomula}\\)`; + const tokens = parse(content); + assert.deepStrictEqual(tokens, [ + leaf('mathInline', { formula: fomula }) + ]); + }); + + describe('mathBlock', () => { + it('simple', () => { + const fomula = 'x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}'; + const content = `\\[\n${fomula}\n\\]`; + const tokens = parse(content); + assert.deepStrictEqual(tokens, [ + leaf('mathBlock', { formula: fomula }) + ]); + }); + }); + + it('search', () => { + const tokens1 = parse('a b c 検索'); + assert.deepStrictEqual(tokens1, [ + leaf('search', { content: 'a b c 検索', query: 'a b c' }) + ]); + + const tokens2 = parse('a b c Search'); + assert.deepStrictEqual(tokens2, [ + leaf('search', { content: 'a b c Search', query: 'a b c' }) + ]); + + const tokens3 = parse('a b c search'); + assert.deepStrictEqual(tokens3, [ + leaf('search', { content: 'a b c search', query: 'a b c' }) + ]); + + const tokens4 = parse('a b c SEARCH'); + assert.deepStrictEqual(tokens4, [ + leaf('search', { content: 'a b c SEARCH', query: 'a b c' }) + ]); + }); + + describe('center', () => { + it('simple', () => { + const tokens = parse('
foo
'); + assert.deepStrictEqual(tokens, [ + tree('center', [ + text('foo') + ], {}), + ]); + }); + }); + + describe('strike', () => { + it('simple', () => { + const tokens = parse('~~foo~~'); + assert.deepStrictEqual(tokens, [ + tree('strike', [ + text('foo') + ], {}), + ]); + }); + + // https://misskey.io/notes/7u1kv5dmia + it('ignore internal tilde', () => { + const tokens = parse('~~~~~'); + assert.deepStrictEqual(tokens, [ + text('~~~~~') + ]); + }); + }); + + describe('italic', () => { + it('', () => { + const tokens = parse('foo'); + assert.deepStrictEqual(tokens, [ + tree('italic', [ + text('foo') + ], {}), + ]); + }); + + it('underscore', () => { + const tokens = parse('_foo_'); + assert.deepStrictEqual(tokens, [ + tree('italic', [ + text('foo') + ], {}), + ]); + }); + + it('simple with asterix', () => { + const tokens = parse('*foo*'); + assert.deepStrictEqual(tokens, [ + tree('italic', [ + text('foo') + ], {}), + ]); + }); + + it('exlude emotes', () => { + const tokens = parse('*.*'); + assert.deepStrictEqual(tokens, [ + text('*.*'), + ]); + }); + + it('mixed', () => { + const tokens = parse('_foo*'); + assert.deepStrictEqual(tokens, [ + text('_foo*'), + ]); + }); + + it('mixed', () => { + const tokens = parse('*foo_'); + assert.deepStrictEqual(tokens, [ + text('*foo_'), + ]); + }); + + it('ignore snake_case string', () => { + const tokens = parse('foo_bar_baz'); + assert.deepStrictEqual(tokens, [ + text('foo_bar_baz'), + ]); + }); + + it('require spaces', () => { + const tokens = parse('4日目_L38b a_b'); + assert.deepStrictEqual(tokens, [ + text('4日目_L38b a_b'), + ]); + }); + + it('newline sandwich', () => { + const tokens = parse('foo\n_bar_\nbaz'); + assert.deepStrictEqual(tokens, [ + text('foo\n'), + tree('italic', [ + text('bar') + ], {}), + text('\nbaz'), + ]); + }); + }); + }); + + describe('plainText', () => { + it('text', () => { + const tokens = parsePlain('foo'); + assert.deepStrictEqual(tokens, [ + text('foo'), + ]); + }); + + it('emoji', () => { + const tokens = parsePlain(':foo:'); + assert.deepStrictEqual(tokens, [ + leaf('emoji', { name: 'foo' }) + ]); + }); + + it('emoji in text', () => { + const tokens = parsePlain('foo:bar:baz'); + assert.deepStrictEqual(tokens, [ + text('foo'), + leaf('emoji', { name: 'bar' }), + text('baz'), + ]); + }); + + it('disallow other syntax', () => { + const tokens = parsePlain('foo **bar** baz'); + assert.deepStrictEqual(tokens, [ + text('foo **bar** baz'), + ]); + }); + }); + + describe('toHtml', () => { + it('br', () => { + const input = 'foo\nbar\nbaz'; + const output = '

foo
bar
baz

'; + assert.equal(toHtml(parse(input)), output); + }); + + it('br alt', () => { + const input = 'foo\r\nbar\rbaz'; + const output = '

foo
bar
baz

'; + assert.equal(toHtml(parse(input)), output); + }); + }); + + it('code block with quote', () => { + const tokens = parse('> foo\n```\nbar\n```'); + assert.deepStrictEqual(tokens, [ + tree('quote', [ + text('foo') + ], {}), + leaf('blockCode', { code: 'bar', lang: null }) + ]); + }); + + it('quote between two code blocks', () => { + const tokens = parse('```\nbefore\n```\n> foo\n```\nafter\n```'); + assert.deepStrictEqual(tokens, [ + leaf('blockCode', { code: 'before', lang: null }), + tree('quote', [ + text('foo') + ], {}), + leaf('blockCode', { code: 'after', lang: null }) + ]); + }); + + describe('toString', () => { + it('太字', () => { + assert.deepStrictEqual(toString(parse('**太字**')), '**太字**'); + }); + it('中央揃え', () => { + assert.deepStrictEqual(toString(parse('
中央揃え
')), '
中央揃え
'); + }); + it('打ち消し線', () => { + assert.deepStrictEqual(toString(parse('~~打ち消し線~~')), '~~打ち消し線~~'); + }); + it('小さい字', () => { + assert.deepStrictEqual(toString(parse('小さい字')), '小さい字'); + }); + it('コードブロック', () => { + assert.deepStrictEqual(toString(parse('```\nコードブロック\n```')), '```\nコードブロック\n```'); + }); + it('インラインコード', () => { + assert.deepStrictEqual(toString(parse('`インラインコード`')), '`インラインコード`'); + }); + it('引用行', () => { + assert.deepStrictEqual(toString(parse('>引用行')), '>引用行'); + }); + it('検索', () => { + assert.deepStrictEqual(toString(parse('検索 [search]')), '検索 [search]'); + }); + it('リンク', () => { + assert.deepStrictEqual(toString(parse('[リンク](http://example.com)')), '[リンク](http://example.com)'); + }); + it('詳細なしリンク', () => { + assert.deepStrictEqual(toString(parse('?[詳細なしリンク](http://example.com)')), '?[詳細なしリンク](http://example.com)'); + }); + it('インライン数式', () => { + assert.deepStrictEqual(toString(parse('\\(インライン数式\\)')), '\\(インライン数式\\)'); + }); + it('ブロック数式', () => { + assert.deepStrictEqual(toString(parse('\\\[\nブロック数式\n\]\\')), '\\\[\nブロック数式\n\]\\'); + }); + }); +}); + +describe('fromHtml', () => { + it('br', () => { + assert.deepStrictEqual(fromHtml('

abc

d

'), 'abc\n\nd'); + }); + + it('link with different text', () => { + assert.deepStrictEqual(fromHtml('

a c d

'), 'a [c](https://example.com/b) d'); + }); + + it('link with same text', () => { + assert.deepStrictEqual(fromHtml('

a https://example.com/b d

'), 'a https://example.com/b d'); + }); + + it('link with same text, but not encoded', () => { + assert.deepStrictEqual(fromHtml('

a https://example.com/ä d

'), 'a d'); + }); + + it('link with no url', () => { + assert.deepStrictEqual(fromHtml('

a c d

'), 'a [c](b) d'); + }); + + it('link without href', () => { + assert.deepStrictEqual(fromHtml('

a c d

'), 'a c d'); + }); + + it('mention', () => { + assert.deepStrictEqual(fromHtml('

a @user d

'), 'a @user@example.com d'); + }); + + it('hashtag', () => { + assert.deepStrictEqual(fromHtml('

a #a d

', ['#a']), 'a #a d'); + }); +}); diff --git a/packages/backend/test/mute.ts b/test/mute.ts similarity index 76% rename from packages/backend/test/mute.ts rename to test/mute.ts index 465633973..37b4a2304 100644 --- a/packages/backend/test/mute.ts +++ b/test/mute.ts @@ -1,8 +1,18 @@ +/* + * Tests of mute + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mute.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mute.ts --require ts-node/register -g 'test name' + */ + process.env.NODE_ENV = 'test'; import * as assert from 'assert'; import * as childProcess from 'child_process'; -import { async, signup, request, post, react, startServer, shutdownServer, waitFire } from './utils.js'; +import { async, signup, request, post, react, connectStream, launchServer } from './utils'; describe('Mute', () => { let p: childProcess.ChildProcess; @@ -12,20 +22,19 @@ describe('Mute', () => { let bob: any; let carol: any; - before(async () => { - p = await startServer(); + before(launchServer(g => p = g, async () => { alice = await signup({ username: 'alice' }); bob = await signup({ username: 'bob' }); carol = await signup({ username: 'carol' }); - }); + })); - after(async () => { - await shutdownServer(p); + after(() => { + p.kill(); }); it('ミュート作成', async(async () => { const res = await request('/mute/create', { - userId: carol.id, + userId: carol.id }, alice); assert.strictEqual(res.status, 204); @@ -55,24 +64,48 @@ describe('Mute', () => { assert.strictEqual(res.body.hasUnreadMentions, false); })); - it('ミュートしているユーザーからメンションされても、ストリームに unreadMention イベントが流れてこない', async () => { + it('ミュートしているユーザーからメンションされても、ストリームに unreadMention イベントが流れてこない', () => new Promise(async done => { // 状態リセット await request('/i/read-all-unread-notes', {}, alice); - const fired = await waitFire(alice, 'main', () => post(carol, { text: '@alice hi' }), msg => msg.type === 'unreadMention'); + let fired = false; - assert.strictEqual(fired, false); - }); + const ws = await connectStream(alice, 'main', ({ type }) => { + if (type == 'unreadMention') { + fired = true; + } + }); - it('ミュートしているユーザーからメンションされても、ストリームに unreadNotification イベントが流れてこない', async () => { + post(carol, { text: '@alice hi' }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 5000); + })); + + it('ミュートしているユーザーからメンションされても、ストリームに unreadNotification イベントが流れてこない', () => new Promise(async done => { // 状態リセット await request('/i/read-all-unread-notes', {}, alice); await request('/notifications/mark-all-as-read', {}, alice); - const fired = await waitFire(alice, 'main', () => post(carol, { text: '@alice hi' }), msg => msg.type === 'unreadNotification'); + let fired = false; - assert.strictEqual(fired, false); - }); + const ws = await connectStream(alice, 'main', ({ type }) => { + if (type == 'unreadNotification') { + fired = true; + } + }); + + post(carol, { text: '@alice hi' }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 5000); + })); describe('Timeline', () => { it('タイムラインにミュートしているユーザーの投稿が含まれない', async(async () => { @@ -93,7 +126,7 @@ describe('Mute', () => { const aliceNote = await post(alice); const carolNote = await post(carol); const bobNote = await post(bob, { - renoteId: carolNote.id, + renoteId: carolNote.id }); const res = await request('/notes/local-timeline', {}, alice); diff --git a/test/note.ts b/test/note.ts new file mode 100644 index 000000000..70ebecff1 --- /dev/null +++ b/test/note.ts @@ -0,0 +1,346 @@ +/* + * Tests of Note + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/note.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/note.ts --require ts-node/register -g 'test name' + */ + +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import * as childProcess from 'child_process'; +import { async, signup, request, post, uploadFile, launchServer } from './utils'; +import { Note } from '../src/models/entities/note'; +import { initDb } from '../src/db/postgre'; + +describe('Note', () => { + let p: childProcess.ChildProcess; + let Notes: any; + + let alice: any; + let bob: any; + + before(launchServer(g => p = g, async () => { + const connection = await initDb(true); + Notes = connection.getRepository(Note); + alice = await signup({ username: 'alice' }); + bob = await signup({ username: 'bob' }); + })); + + after(() => { + p.kill(); + }); + + it('投稿できる', async(async () => { + const post = { + text: 'test' + }; + + const res = await request('/notes/create', post, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.text, post.text); + })); + + it('ファイルを添付できる', async(async () => { + const file = await uploadFile(alice); + + const res = await request('/notes/create', { + fileIds: [file.id] + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.deepStrictEqual(res.body.createdNote.fileIds, [file.id]); + })); + + it('他人のファイルは無視', async(async () => { + const file = await uploadFile(bob); + + const res = await request('/notes/create', { + text: 'test', + fileIds: [file.id] + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.deepStrictEqual(res.body.createdNote.fileIds, []); + })); + + it('存在しないファイルは無視', async(async () => { + const res = await request('/notes/create', { + text: 'test', + fileIds: ['000000000000000000000000'] + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.deepStrictEqual(res.body.createdNote.fileIds, []); + })); + + it('不正なファイルIDで怒られる', async(async () => { + const res = await request('/notes/create', { + fileIds: ['kyoppie'] + }, alice); + assert.strictEqual(res.status, 400); + })); + + it('返信できる', async(async () => { + const bobPost = await post(bob, { + text: 'foo' + }); + + const alicePost = { + text: 'bar', + replyId: bobPost.id + }; + + const res = await request('/notes/create', alicePost, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.text, alicePost.text); + assert.strictEqual(res.body.createdNote.replyId, alicePost.replyId); + assert.strictEqual(res.body.createdNote.reply.text, bobPost.text); + })); + + it('renoteできる', async(async () => { + const bobPost = await post(bob, { + text: 'test' + }); + + const alicePost = { + renoteId: bobPost.id + }; + + const res = await request('/notes/create', alicePost, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId); + assert.strictEqual(res.body.createdNote.renote.text, bobPost.text); + })); + + it('引用renoteできる', async(async () => { + const bobPost = await post(bob, { + text: 'test' + }); + + const alicePost = { + text: 'test', + renoteId: bobPost.id + }; + + const res = await request('/notes/create', alicePost, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.text, alicePost.text); + assert.strictEqual(res.body.createdNote.renoteId, alicePost.renoteId); + assert.strictEqual(res.body.createdNote.renote.text, bobPost.text); + })); + + it('文字数ぎりぎりで怒られない', async(async () => { + const post = { + text: '!'.repeat(500) + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 200); + })); + + it('文字数オーバーで怒られる', async(async () => { + const post = { + text: '!'.repeat(501) + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 400); + })); + + it('存在しないリプライ先で怒られる', async(async () => { + const post = { + text: 'test', + replyId: '000000000000000000000000' + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 400); + })); + + it('存在しないrenote対象で怒られる', async(async () => { + const post = { + renoteId: '000000000000000000000000' + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 400); + })); + + it('不正なリプライ先IDで怒られる', async(async () => { + const post = { + text: 'test', + replyId: 'foo' + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 400); + })); + + it('不正なrenote対象IDで怒られる', async(async () => { + const post = { + renoteId: 'foo' + }; + const res = await request('/notes/create', post, alice); + assert.strictEqual(res.status, 400); + })); + + it('存在しないユーザーにメンションできる', async(async () => { + const post = { + text: '@ghost yo' + }; + + const res = await request('/notes/create', post, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.text, post.text); + })); + + it('同じユーザーに複数メンションしても内部的にまとめられる', async(async () => { + const post = { + text: '@bob @bob @bob yo' + }; + + const res = await request('/notes/create', post, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.text, post.text); + + const noteDoc = await Notes.findOne(res.body.createdNote.id); + assert.deepStrictEqual(noteDoc.mentions, [bob.id]); + })); + + describe('notes/create', () => { + it('投票を添付できる', async(async () => { + const res = await request('/notes/create', { + text: 'test', + poll: { + choices: ['foo', 'bar'] + } + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true); + assert.strictEqual(res.body.createdNote.poll != null, true); + })); + + it('投票の選択肢が無くて怒られる', async(async () => { + const res = await request('/notes/create', { + poll: {} + }, alice); + assert.strictEqual(res.status, 400); + })); + + it('投票の選択肢が無くて怒られる (空の配列)', async(async () => { + const res = await request('/notes/create', { + poll: { + choices: [] + } + }, alice); + assert.strictEqual(res.status, 400); + })); + + it('投票の選択肢が1つで怒られる', async(async () => { + const res = await request('/notes/create', { + poll: { + choices: ['Strawberry Pasta'] + } + }, alice); + assert.strictEqual(res.status, 400); + })); + + it('投票できる', async(async () => { + const { body } = await request('/notes/create', { + text: 'test', + poll: { + choices: ['sakura', 'izumi', 'ako'] + } + }, alice); + + const res = await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 1 + }, alice); + + assert.strictEqual(res.status, 204); + })); + + it('複数投票できない', async(async () => { + const { body } = await request('/notes/create', { + text: 'test', + poll: { + choices: ['sakura', 'izumi', 'ako'] + } + }, alice); + + await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 0 + }, alice); + + const res = await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 2 + }, alice); + + assert.strictEqual(res.status, 400); + })); + + it('許可されている場合は複数投票できる', async(async () => { + const { body } = await request('/notes/create', { + text: 'test', + poll: { + choices: ['sakura', 'izumi', 'ako'], + multiple: true + } + }, alice); + + await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 0 + }, alice); + + await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 1 + }, alice); + + const res = await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 2 + }, alice); + + assert.strictEqual(res.status, 204); + })); + + it('締め切られている場合は投票できない', async(async () => { + const { body } = await request('/notes/create', { + text: 'test', + poll: { + choices: ['sakura', 'izumi', 'ako'], + expiredAfter: 1 + } + }, alice); + + await new Promise(x => setTimeout(x, 2)); + + const res = await request('/notes/polls/vote', { + noteId: body.createdNote.id, + choice: 1 + }, alice); + + assert.strictEqual(res.status, 400); + })); + }); +}); diff --git a/test/prelude/maybe.ts b/test/prelude/maybe.ts new file mode 100644 index 000000000..d3f17481f --- /dev/null +++ b/test/prelude/maybe.ts @@ -0,0 +1,28 @@ +/* + * Tests of Maybe + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/prelude/maybe.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/prelude/maybe.ts --require ts-node/register -g 'test name' + */ + +import * as assert from 'assert'; +import { just, nothing } from '../../src/prelude/maybe'; + +describe('just', () => { + it('has a value', () => { + assert.deepStrictEqual(just(3).isJust(), true); + }); + + it('has the inverse called get', () => { + assert.deepStrictEqual(just(3).get(), 3); + }); +}); + +describe('nothing', () => { + it('has no value', () => { + assert.deepStrictEqual(nothing().isJust(), false); + }); +}); diff --git a/test/reaction-lib.ts b/test/reaction-lib.ts new file mode 100644 index 000000000..5837b5be1 --- /dev/null +++ b/test/reaction-lib.ts @@ -0,0 +1,93 @@ +/* + * Tests of MFM + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/reaction-lib.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/reaction-lib.ts --require ts-node/register -g 'test name' + */ + +/* +import * as assert from 'assert'; + +import { toDbReaction } from '../src/misc/reaction-lib'; + +describe('toDbReaction', async () => { + it('既存の文字列リアクションはそのまま', async () => { + assert.strictEqual(await toDbReaction('like'), 'like'); + }); + + it('Unicodeプリンは寿司化不能とするため文字列化しない', async () => { + assert.strictEqual(await toDbReaction('🍮'), '🍮'); + }); + + it('プリン以外の既存のリアクションは文字列化する like', async () => { + assert.strictEqual(await toDbReaction('👍'), 'like'); + }); + + it('プリン以外の既存のリアクションは文字列化する love', async () => { + assert.strictEqual(await toDbReaction('❤️'), 'love'); + }); + + it('プリン以外の既存のリアクションは文字列化する love 異体字セレクタなし', async () => { + assert.strictEqual(await toDbReaction('❤'), 'love'); + }); + + it('プリン以外の既存のリアクションは文字列化する laugh', async () => { + assert.strictEqual(await toDbReaction('😆'), 'laugh'); + }); + + it('プリン以外の既存のリアクションは文字列化する hmm', async () => { + assert.strictEqual(await toDbReaction('🤔'), 'hmm'); + }); + + it('プリン以外の既存のリアクションは文字列化する surprise', async () => { + assert.strictEqual(await toDbReaction('😮'), 'surprise'); + }); + + it('プリン以外の既存のリアクションは文字列化する congrats', async () => { + assert.strictEqual(await toDbReaction('🎉'), 'congrats'); + }); + + it('プリン以外の既存のリアクションは文字列化する angry', async () => { + assert.strictEqual(await toDbReaction('💢'), 'angry'); + }); + + it('プリン以外の既存のリアクションは文字列化する confused', async () => { + assert.strictEqual(await toDbReaction('😥'), 'confused'); + }); + + it('プリン以外の既存のリアクションは文字列化する rip', async () => { + assert.strictEqual(await toDbReaction('😇'), 'rip'); + }); + + it('それ以外はUnicodeのまま', async () => { + assert.strictEqual(await toDbReaction('🍅'), '🍅'); + }); + + it('異体字セレクタ除去', async () => { + assert.strictEqual(await toDbReaction('㊗️'), '㊗'); + }); + + it('異体字セレクタ除去 必要なし', async () => { + assert.strictEqual(await toDbReaction('㊗'), '㊗'); + }); + + it('fallback - undefined', async () => { + assert.strictEqual(await toDbReaction(undefined), 'like'); + }); + + it('fallback - null', async () => { + assert.strictEqual(await toDbReaction(null), 'like'); + }); + + it('fallback - empty', async () => { + assert.strictEqual(await toDbReaction(''), 'like'); + }); + + it('fallback - unknown', async () => { + assert.strictEqual(await toDbReaction('unknown'), 'like'); + }); +}); +*/ diff --git a/packages/backend/test/resources/25000x25000.png b/test/resources/25000x25000.png similarity index 100% rename from packages/backend/test/resources/25000x25000.png rename to test/resources/25000x25000.png diff --git a/packages/backend/test/resources/Lenna.jpg b/test/resources/Lenna.jpg similarity index 100% rename from packages/backend/test/resources/Lenna.jpg rename to test/resources/Lenna.jpg diff --git a/packages/backend/test/resources/Lenna.png b/test/resources/Lenna.png similarity index 100% rename from packages/backend/test/resources/Lenna.png rename to test/resources/Lenna.png diff --git a/packages/backend/test/resources/anime.gif b/test/resources/anime.gif similarity index 100% rename from packages/backend/test/resources/anime.gif rename to test/resources/anime.gif diff --git a/packages/backend/test/resources/anime.png b/test/resources/anime.png similarity index 100% rename from packages/backend/test/resources/anime.png rename to test/resources/anime.png diff --git a/test/resources/emptyfile b/test/resources/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/packages/backend/test/resources/image.svg b/test/resources/image.svg similarity index 100% rename from packages/backend/test/resources/image.svg rename to test/resources/image.svg diff --git a/packages/backend/test/resources/with-alpha.png b/test/resources/with-alpha.png similarity index 100% rename from packages/backend/test/resources/with-alpha.png rename to test/resources/with-alpha.png diff --git a/packages/backend/test/resources/with-xml-def.svg b/test/resources/with-xml-def.svg similarity index 100% rename from packages/backend/test/resources/with-xml-def.svg rename to test/resources/with-xml-def.svg diff --git a/test/streaming.ts b/test/streaming.ts new file mode 100644 index 000000000..214fdeb1f --- /dev/null +++ b/test/streaming.ts @@ -0,0 +1,914 @@ +/* + * Tests of streaming API + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/streaming.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/streaming.ts --require ts-node/register -g 'test name' + */ + +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import * as childProcess from 'child_process'; +import { connectStream, signup, request, post, launchServer } from './utils'; +import { Following } from '../src/models/entities/following'; +import { initDb } from '../src/db/postgre'; + +describe('Streaming', () => { + let p: childProcess.ChildProcess; + let Followings: any; + + beforeEach(launchServer(g => p = g, async () => { + const connection = await initDb(true); + Followings = connection.getRepository(Following); + })); + + afterEach(() => { + p.kill(); + }); + + const follow = async (follower: any, followee: any) => { + await Followings.save({ + id: 'a', + createdAt: new Date(), + followerId: follower.id, + followeeId: followee.id, + followerHost: follower.host, + followerInbox: null, + followerSharedInbox: null, + followeeHost: followee.host, + followeeInbox: null, + followeeSharedInbox: null + }); + }; + + it('mention event', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const ws = await connectStream(bob, 'main', ({ type, body }) => { + if (type == 'mention') { + assert.deepStrictEqual(body.userId, alice.id); + ws.close(); + done(); + } + }); + + post(alice, { + text: 'foo @bob bar' + }); + })); + + it('renote event', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + const bobNote = await post(bob, { + text: 'foo' + }); + + const ws = await connectStream(bob, 'main', ({ type, body }) => { + if (type == 'renote') { + assert.deepStrictEqual(body.renoteId, bobNote.id); + ws.close(); + done(); + } + }); + + post(alice, { + renoteId: bobNote.id + }); + })); + + describe('Home Timeline', () => { + it('自分の投稿が流れる', () => new Promise(async done => { + const post = { + text: 'foo' + }; + + const me = await signup(); + + const ws = await connectStream(me, 'homeTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.text, post.text); + ws.close(); + done(); + } + }); + + request('/notes/create', post, me); + })); + + it('フォローしているユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'homeTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('フォローしていないユーザーの投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'homeTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + post(bob, { + text: 'foo' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしているユーザーのダイレクト投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'homeTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + assert.deepStrictEqual(body.text, 'foo'); + ws.close(); + done(); + } + }); + + // Bob が Alice 宛てのダイレクト投稿 + post(bob, { + text: 'foo', + visibility: 'specified', + visibleUserIds: [alice.id] + }); + })); + + it('フォローしているユーザーでも自分が指定されていないダイレクト投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + const carol = await signup({ username: 'carol' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + let fired = false; + + const ws = await connectStream(alice, 'homeTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // Bob が Carol 宛てのダイレクト投稿 + post(bob, { + text: 'foo', + visibility: 'specified', + visibleUserIds: [carol.id] + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + }); + + describe('Local Timeline', () => { + it('自分の投稿が流れる', () => new Promise(async done => { + const me = await signup(); + + const ws = await connectStream(me, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, me.id); + ws.close(); + done(); + } + }); + + post(me, { + text: 'foo' + }); + })); + + it('フォローしていないローカルユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('リモートユーザーの投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob', host: 'example.com' }); + + let fired = false; + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + post(bob, { + text: 'foo' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしてたとしてもリモートユーザーの投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob', host: 'example.com' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + let fired = false; + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + post(bob, { + text: 'foo' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('ホーム指定の投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // ホーム指定 + post(bob, { + text: 'foo', + visibility: 'home' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしているローカルユーザーのダイレクト投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + let fired = false; + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // Bob が Alice 宛てのダイレクト投稿 + post(bob, { + text: 'foo', + visibility: 'specified', + visibleUserIds: [alice.id] + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしていないローカルユーザーのフォロワー宛て投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'localTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // フォロワー宛て投稿 + post(bob, { + text: 'foo', + visibility: 'followers' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + }); + + describe('Hybrid Timeline', () => { + it('自分の投稿が流れる', () => new Promise(async done => { + const me = await signup(); + + const ws = await connectStream(me, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, me.id); + ws.close(); + done(); + } + }); + + post(me, { + text: 'foo' + }); + })); + + it('フォローしていないローカルユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('フォローしているリモートユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob', host: 'example.com' }); + + // Alice が Bob をフォロー + await follow(alice, bob); + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('フォローしていないリモートユーザーの投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob', host: 'example.com' }); + + let fired = false; + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + post(bob, { + text: 'foo' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしているユーザーのダイレクト投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + assert.deepStrictEqual(body.text, 'foo'); + ws.close(); + done(); + } + }); + + // Bob が Alice 宛てのダイレクト投稿 + post(bob, { + text: 'foo', + visibility: 'specified', + visibleUserIds: [alice.id] + }); + })); + + it('フォローしているユーザーのホーム投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // Alice が Bob をフォロー + await request('/following/create', { + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + assert.deepStrictEqual(body.text, 'foo'); + ws.close(); + done(); + } + }); + + // ホーム投稿 + post(bob, { + text: 'foo', + visibility: 'home' + }); + })); + + it('フォローしていないローカルユーザーのホーム投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // ホーム投稿 + post(bob, { + text: 'foo', + visibility: 'home' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + it('フォローしていないローカルユーザーのフォロワー宛て投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'hybridTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // フォロワー宛て投稿 + post(bob, { + text: 'foo', + visibility: 'followers' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + }); + + describe('Global Timeline', () => { + it('フォローしていないローカルユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + const ws = await connectStream(alice, 'globalTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('フォローしていないリモートユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob', host: 'example.com' }); + + const ws = await connectStream(alice, 'globalTimeline', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }); + + post(bob, { + text: 'foo' + }); + })); + + it('ホーム投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + let fired = false; + + const ws = await connectStream(alice, 'globalTimeline', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }); + + // ホーム投稿 + post(bob, { + text: 'foo', + visibility: 'home' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + }); + + describe('UserList Timeline', () => { + it('リストに入れているユーザーの投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // リスト作成 + const list = await request('/users/lists/create', { + name: 'my list' + }, alice).then(x => x.body); + + // Alice が Bob をリスイン + await request('/users/lists/push', { + listId: list.id, + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'userList', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + ws.close(); + done(); + } + }, { + listId: list.id + }); + + post(bob, { + text: 'foo' + }); + })); + + it('リストに入れていないユーザーの投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // リスト作成 + const list = await request('/users/lists/create', { + name: 'my list' + }, alice).then(x => x.body); + + let fired = false; + + const ws = await connectStream(alice, 'userList', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }, { + listId: list.id + }); + + post(bob, { + text: 'foo' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + + // #4471 + it('リストに入れているユーザーのダイレクト投稿が流れる', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // リスト作成 + const list = await request('/users/lists/create', { + name: 'my list' + }, alice).then(x => x.body); + + // Alice が Bob をリスイン + await request('/users/lists/push', { + listId: list.id, + userId: bob.id + }, alice); + + const ws = await connectStream(alice, 'userList', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.userId, bob.id); + assert.deepStrictEqual(body.text, 'foo'); + ws.close(); + done(); + } + }, { + listId: list.id + }); + + // Bob が Alice 宛てのダイレクト投稿 + post(bob, { + text: 'foo', + visibility: 'specified', + visibleUserIds: [alice.id] + }); + })); + + // #4335 + it('リストに入れているがフォローはしてないユーザーのフォロワー宛て投稿は流れない', () => new Promise(async done => { + const alice = await signup({ username: 'alice' }); + const bob = await signup({ username: 'bob' }); + + // リスト作成 + const list = await request('/users/lists/create', { + name: 'my list' + }, alice).then(x => x.body); + + // Alice が Bob をリスイン + await request('/users/lists/push', { + listId: list.id, + userId: bob.id + }, alice); + + let fired = false; + + const ws = await connectStream(alice, 'userList', ({ type, body }) => { + if (type == 'note') { + fired = true; + } + }, { + listId: list.id + }); + + // フォロワー宛て投稿 + post(bob, { + text: 'foo', + visibility: 'followers' + }); + + setTimeout(() => { + assert.strictEqual(fired, false); + ws.close(); + done(); + }, 3000); + })); + }); + + describe('Hashtag Timeline', () => { + it('指定したハッシュタグの投稿が流れる', () => new Promise(async done => { + const me = await signup(); + + const ws = await connectStream(me, 'hashtag', ({ type, body }) => { + if (type == 'note') { + assert.deepStrictEqual(body.text, '#foo'); + ws.close(); + done(); + } + }, { + q: [ + ['foo'] + ] + }); + + post(me, { + text: '#foo' + }); + })); + + it('指定したハッシュタグの投稿が流れる (AND)', () => new Promise(async done => { + const me = await signup(); + + let fooCount = 0; + let barCount = 0; + let fooBarCount = 0; + + const ws = await connectStream(me, 'hashtag', ({ type, body }) => { + if (type == 'note') { + if (body.text === '#foo') fooCount++; + if (body.text === '#bar') barCount++; + if (body.text === '#foo #bar') fooBarCount++; + } + }, { + q: [ + ['foo', 'bar'] + ] + }); + + post(me, { + text: '#foo' + }); + + post(me, { + text: '#bar' + }); + + post(me, { + text: '#foo #bar' + }); + + setTimeout(() => { + assert.strictEqual(fooCount, 0); + assert.strictEqual(barCount, 0); + assert.strictEqual(fooBarCount, 1); + ws.close(); + done(); + }, 3000); + })); + + it('指定したハッシュタグの投稿が流れる (OR)', () => new Promise(async done => { + const me = await signup(); + + let fooCount = 0; + let barCount = 0; + let fooBarCount = 0; + let piyoCount = 0; + + const ws = await connectStream(me, 'hashtag', ({ type, body }) => { + if (type == 'note') { + if (body.text === '#foo') fooCount++; + if (body.text === '#bar') barCount++; + if (body.text === '#foo #bar') fooBarCount++; + if (body.text === '#piyo') piyoCount++; + } + }, { + q: [ + ['foo'], + ['bar'] + ] + }); + + post(me, { + text: '#foo' + }); + + post(me, { + text: '#bar' + }); + + post(me, { + text: '#foo #bar' + }); + + post(me, { + text: '#piyo' + }); + + setTimeout(() => { + assert.strictEqual(fooCount, 1); + assert.strictEqual(barCount, 1); + assert.strictEqual(fooBarCount, 1); + assert.strictEqual(piyoCount, 0); + ws.close(); + done(); + }, 3000); + })); + + it('指定したハッシュタグの投稿が流れる (AND + OR)', () => new Promise(async done => { + const me = await signup(); + + let fooCount = 0; + let barCount = 0; + let fooBarCount = 0; + let piyoCount = 0; + let waaaCount = 0; + + const ws = await connectStream(me, 'hashtag', ({ type, body }) => { + if (type == 'note') { + if (body.text === '#foo') fooCount++; + if (body.text === '#bar') barCount++; + if (body.text === '#foo #bar') fooBarCount++; + if (body.text === '#piyo') piyoCount++; + if (body.text === '#waaa') waaaCount++; + } + }, { + q: [ + ['foo', 'bar'], + ['piyo'] + ] + }); + + post(me, { + text: '#foo' + }); + + post(me, { + text: '#bar' + }); + + post(me, { + text: '#foo #bar' + }); + + post(me, { + text: '#piyo' + }); + + post(me, { + text: '#waaa' + }); + + setTimeout(() => { + assert.strictEqual(fooCount, 0); + assert.strictEqual(barCount, 0); + assert.strictEqual(fooBarCount, 1); + assert.strictEqual(piyoCount, 1); + assert.strictEqual(waaaCount, 0); + ws.close(); + done(); + }, 3000); + })); + }); +}); diff --git a/test/user-notes.ts b/test/user-notes.ts new file mode 100644 index 000000000..349d5fdb7 --- /dev/null +++ b/test/user-notes.ts @@ -0,0 +1,70 @@ +/* + * Tests of Note + * + * How to run the tests: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/user-notes.ts --require ts-node/register + * + * To specify test: + * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/user-notes.ts --require ts-node/register -g 'test name' + */ + +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import * as childProcess from 'child_process'; +import { async, signup, request, post, uploadFile, launchServer } from './utils'; + +describe('users/notes', () => { + let p: childProcess.ChildProcess; + + let alice: any; + let jpgNote: any; + let pngNote: any; + let jpgPngNote: any; + + before(launchServer(g => p = g, async () => { + alice = await signup({ username: 'alice' }); + const jpg = await uploadFile(alice, __dirname + '/resources/Lenna.jpg'); + const png = await uploadFile(alice, __dirname + '/resources/Lenna.png'); + jpgNote = await post(alice, { + fileIds: [jpg.id] + }); + pngNote = await post(alice, { + fileIds: [png.id] + }); + jpgPngNote = await post(alice, { + fileIds: [jpg.id, png.id] + }); + })); + + after(() => { + p.kill(); + }); + + it('ファイルタイプ指定 (jpg)', async(async () => { + const res = await request('/users/notes', { + userId: alice.id, + fileType: ['image/jpeg'] + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(Array.isArray(res.body), true); + assert.strictEqual(res.body.length, 2); + assert.strictEqual(res.body.some((note: any) => note.id === jpgNote.id), true); + assert.strictEqual(res.body.some((note: any) => note.id === jpgPngNote.id), true); + })); + + it('ファイルタイプ指定 (jpg or png)', async(async () => { + const res = await request('/users/notes', { + userId: alice.id, + fileType: ['image/jpeg', 'image/png'] + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(Array.isArray(res.body), true); + assert.strictEqual(res.body.length, 3); + assert.strictEqual(res.body.some((note: any) => note.id === jpgNote.id), true); + assert.strictEqual(res.body.some((note: any) => note.id === pngNote.id), true); + assert.strictEqual(res.body.some((note: any) => note.id === jpgPngNote.id), true); + })); +}); diff --git a/test/utils.ts b/test/utils.ts new file mode 100644 index 000000000..066bd33a5 --- /dev/null +++ b/test/utils.ts @@ -0,0 +1,126 @@ +import * as fs from 'fs'; +import * as WebSocket from 'ws'; +import fetch from 'node-fetch'; +const FormData = require('form-data'); +import * as childProcess from 'child_process'; + +export const async = (fn: Function) => (done: Function) => { + fn().then(() => { + done(); + }, (err: Error) => { + done(err); + }); +}; + +export const request = async (endpoint: string, params: any, me?: any): Promise<{ body: any, status: number }> => { + const auth = me ? { + i: me.token + } : {}; + + try { + const res = await fetch('http://localhost:8080/api' + endpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(Object.assign(auth, params)) + }); + + const status = res.status; + const body = res.status !== 204 ? await res.json().catch() : null; + + return { + body, status + }; + } catch (e) { + return { + body: null, status: 500 + }; + } +}; + +export const signup = async (params?: any): Promise => { + const q = Object.assign({ + username: 'test', + password: 'test' + }, params); + + const res = await request('/signup', q); + + return res.body; +}; + +export const post = async (user: any, params?: any): Promise => { + const q = Object.assign({ + text: 'test' + }, params); + + const res = await request('/notes/create', q, user); + + return res.body ? res.body.createdNote : null; +}; + +export const react = async (user: any, note: any, reaction: string): Promise => { + await request('/notes/reactions/create', { + noteId: note.id, + reaction: reaction + }, user); +}; + +export const uploadFile = (user: any, path?: string): Promise => { + const formData = new FormData(); + formData.append('i', user.token); + formData.append('file', fs.createReadStream(path || __dirname + '/resources/Lenna.png')); + + return fetch('http://localhost:8080/api/drive/files/create', { + method: 'post', + body: formData, + timeout: 30 * 1000, + }).then(res => { + if (!res.ok) { + throw `${res.status} ${res.statusText}`; + } else { + return res.json(); + } + }); +}; + +export function connectStream(user: any, channel: string, listener: (message: Record) => any, params?: any): Promise { + return new Promise((res, rej) => { + const ws = new WebSocket(`ws://localhost:8080/streaming?i=${user.token}`); + + ws.on('open', () => { + ws.on('message', data => { + const msg = JSON.parse(data.toString()); + if (msg.type == 'channel' && msg.body.id == 'a') { + listener(msg.body); + } else if (msg.type == 'connected' && msg.body.id == 'a') { + res(ws); + } + }); + + ws.send(JSON.stringify({ + type: 'connect', + body: { + channel: channel, + id: 'a', + pong: true, + params: params + } + })); + }); + }); +} + +export function launchServer(callbackSpawnedProcess: (p: childProcess.ChildProcess) => void, moreProcess: () => Promise = async () => {}) { + return (done: (err?: Error) => any) => { + const p = childProcess.spawn('node', [__dirname + '/../index.js'], { + stdio: ['inherit', 'inherit', 'inherit', 'ipc'], + env: { NODE_ENV: 'test', PATH: process.env.PATH } + }); + callbackSpawnedProcess(p); + p.on('message', message => { + if (message === 'ok') moreProcess().then(() => done()).catch(e => done(e)); + }); + }; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..260968c24 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,39 @@ +{ + "compilerOptions": { + "allowJs": true, + "noEmitOnError": false, + "noImplicitAny": true, + "noImplicitReturns": true, + "noUnusedParameters": false, + "noUnusedLocals": true, + "noFallthroughCasesInSwitch": true, + "declaration": false, + "sourceMap": true, + "target": "es2017", + "module": "commonjs", + "moduleResolution": "node", + "removeComments": false, + "noLib": false, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": false, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "resolveJsonModule": true, + "isolatedModules": true, + "typeRoots": [ + "node_modules/@types", + "src/@types" + ], + "lib": [ + "esnext" + ] + }, + "compileOnSave": false, + "include": [ + "./src/**/*.ts" + ], + "exclude": [ + "./src/client/app/**/*.ts" + ] +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 000000000..e0ca176f6 --- /dev/null +++ b/tslint.json @@ -0,0 +1,71 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended", + "tslint-sonarts" + ], + "jsRules": {}, + "rules": { + "align": false, + "indent": [true, "tabs"], + "quotemark": [true, "single"], + "no-var-requires": false, + "no-string-throw": false, + "trailing-comma": [false], + "object-literal-sort-keys": false, + "curly": false, + "no-console": [false], + "no-empty": false, + "ordered-imports": [false], + "arrow-parens": false, + "array-type": [true, "array"], + "object-literal-shorthand": false, + "object-literal-key-quotes": false, + "triple-equals": [false], + "no-shadowed-variable": false, + "no-string-literal": false, + "no-conditional-assignment": false, + "variable-name": [false], + "comment-format": [false], + "interface-over-type-literal": false, + "max-line-length": [false], + "max-classes-per-file": false, + "member-ordering": [false], + "radix": false, + "ban-types": [ + true, + ["Object", "Use {} instead."] + ], + "ban": [ + true, + { "name": ["*", "forEach"], "message": "Use for-of loop instead." } + ], + "no-duplicate-string": false, + "no-commented-code": false, + "cognitive-complexity": false, + "no-nested-template-literals": false, + "no-identical-functions": false, + "max-union-size": false, + "no-big-function": false, + "no-statements-same-line": false, + "no-small-switch": false, + "no-identical-expressions": false, + "no-invalid-await": false, + "prefer-immediate-return": false, + "no-use-of-empty-return-value": false, + "no-collapsible-if": false, + "no-ignored-return": false, + "no-redundant-boolean": false, + "prefer-promise-shorthand": false, + "parameters-max-number": false, + "no-duplicated-branches": false, + "no-identical-conditions": false, + "no-useless-cast": false, + "no-hardcoded-credentials": false, + "no-nested-switch": false, + "unified-signatures": false, + "no-all-duplicated-branches": false, + "semicolon": [true, "always"] + }, + "rulesDirectory": [] +} diff --git a/webpack.config.ts b/webpack.config.ts new file mode 100644 index 000000000..dbd62fa39 --- /dev/null +++ b/webpack.config.ts @@ -0,0 +1,172 @@ +/** + * webpack configuration + */ + +import * as fs from 'fs'; +import * as webpack from 'webpack'; +const { VueLoaderPlugin } = require('vue-loader'); + +class WebpackOnBuildPlugin { + constructor(readonly callback: (stats: any) => void) { + } + + public apply(compiler: any) { + compiler.hooks.done.tap('WebpackOnBuildPlugin', this.callback); + } +} + +const isProduction = process.env.NODE_ENV === 'production'; + +const locales = require('./locales'); +const meta = require('./package.json'); + +const postcss = { + loader: 'postcss-loader', + options: { + postcssOptions: { + plugins: [ + require('cssnano')({ + preset: 'default' + }) + ] + } + }, +}; + +module.exports = { + entry: { + app: './src/client/init.ts', + sw: './src/client/sw.ts' + }, + module: { + rules: [{ + test: /\.vue$/, + exclude: /node_modules/, + use: [{ + loader: 'vue-loader', + options: { + cssSourceMap: false, + compilerOptions: { + preserveWhitespace: false + } + } + }] + }, { + test: /\.scss?$/, + exclude: /node_modules/, + oneOf: [{ + resourceQuery: /module/, + use: [{ + loader: 'vue-style-loader' + }, { + loader: 'css-loader', + options: { + modules: true, + esModule: false, // TODO: trueにすると壊れる。Vue3移行の折にはtrueにできるかもしれない + url: false, + } + }, postcss, { + loader: 'sass-loader', + options: { + implementation: require('sass'), + sassOptions: { + fiber: require('fibers') + } + } + }] + }, { + use: [{ + loader: 'vue-style-loader' + }, { + loader: 'css-loader', + options: { + url: false, + esModule: false, // TODO: trueにすると壊れる。Vue3移行の折にはtrueにできるかもしれない + } + }, postcss, { + loader: 'sass-loader', + options: { + implementation: require('sass'), + sassOptions: { + fiber: require('fibers') + } + } + }] + }] + }, { + test: /\.css$/, + use: [{ + loader: 'vue-style-loader' + }, { + loader: 'css-loader', + options: { + esModule: false, // TODO: trueにすると壊れる。Vue3移行の折にはtrueにできるかもしれない + } + }, postcss] + }, { + test: /\.(eot|woff|woff2|svg|ttf)([?]?.*)$/, + loader: 'url-loader' + }, { + test: /\.json5$/, + loader: 'json5-loader', + options: { + esModule: false, + }, + type: 'javascript/auto' + }, { + test: /\.ts$/, + exclude: /node_modules/, + use: [{ + loader: 'ts-loader', + options: { + happyPackMode: true, + transpileOnly: true, + configFile: __dirname + '/src/client/tsconfig.json', + appendTsSuffixTo: [/\.vue$/] + } + }] + }] + }, + plugins: [ + new webpack.ProgressPlugin({}), + new webpack.DefinePlugin({ + _VERSION_: JSON.stringify(meta.version), + _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]: [string, any]) => [k, v._lang_])), + _ENV_: JSON.stringify(process.env.NODE_ENV), + _DEV_: process.env.NODE_ENV !== 'production', + _PERF_PREFIX_: JSON.stringify('Misskey:'), + _DATA_TRANSFER_DRIVE_FILE_: JSON.stringify('mk_drive_file'), + _DATA_TRANSFER_DRIVE_FOLDER_: JSON.stringify('mk_drive_folder'), + _DATA_TRANSFER_DECK_COLUMN_: JSON.stringify('mk_deck_column'), + __VUE_OPTIONS_API__: true, + __VUE_PROD_DEVTOOLS__: false, + __VUE_I18N_LEGACY_API__: false, + }), + new VueLoaderPlugin(), + new WebpackOnBuildPlugin((stats: any) => { + fs.writeFileSync('./built/meta.json', JSON.stringify({ version: meta.version }), 'utf-8'); + }), + ], + output: { + path: __dirname + '/built/client/assets', + filename: `[name].${meta.version}.js`, + publicPath: `/assets/` + }, + resolve: { + extensions: [ + '.js', '.ts', '.json' + ], + alias: { + '@': __dirname + '/src/client', + 'const.styl': __dirname + '/src/client/const.styl' + } + }, + resolveLoader: { + modules: ['node_modules'] + }, + experiments: { + topLevelAwait: true + }, + devtool: false, //'source-map', + mode: isProduction ? 'production' : 'development' +}; diff --git a/yarn.lock b/yarn.lock index 75c8b5c33..f69d5ab40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,133 +2,422 @@ # yarn lockfile v1 -"@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== +"@babel/code-frame@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" + "@babel/highlight" "^7.8.3" -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" + "@babel/types" "^7.10.4" -"@hapi/hoek@^9.0.0": - version "9.2.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" - integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug== +"@babel/helper-plugin-utils@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== dependencies: - "@hapi/hoek" "^9.0.0" + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== +"@babel/parser@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.0.tgz#2ad388f3960045b22f9b7d4bf85e80b15a1c9e3a" + integrity sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg== + +"@babel/parser@^7.6.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/plugin-transform-runtime@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" + integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" -"@jridgewell/resolve-uri@^3.0.3": +"@babel/types@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@babel/types@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.0.tgz#b6b49f425ee59043fbc89c61b11a13d5eae7b5c6" + integrity sha512-ggIyFmT2zMaYRheOfPDQ4gz7QqV3B+t2rjqjbttDJxMcb7/LukvWCmlIl1sWcOxrvwpTDd+z0OytzqsbGeb3/g== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@babel/types@^7.6.1": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@elastic/elasticsearch@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.8.0.tgz#3f9ee54fe8ef79874ebd231db03825fa500a7111" + integrity sha512-rUOTNN1At0KoN0Fcjd6+J7efghuURnoMTB/od9EMK6Mcdebi6N3z5ulShTsKRn6OanS9Eq3l/OmheQY1Y+WLcg== + dependencies: + debug "^4.1.1" + decompress-response "^4.2.0" + ms "^2.1.1" + pump "^3.0.0" + secure-json-parse "^2.1.0" + +"@eslint/eslintrc@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fortawesome/fontawesome-common-types@^0.2.32": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz#3436795d5684f22742989bfa08f46f50f516f259" + integrity sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w== + +"@fortawesome/fontawesome-svg-core@1.2.32": + version "1.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz#da092bfc7266aa274be8604de610d7115f9ba6cf" + integrity sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.32" + +"@fortawesome/free-brands-svg-icons@5.15.1": + version "5.15.1" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.1.tgz#1dc0563f4036639e53d24b8e532ea78a53ca2250" + integrity sha512-pkTZIWn7iuliCCgV+huDfZmZb2UjslalXGDA2PcqOVUYJmYL11y6ooFiMJkJvUZu+xgAc1gZgQe+Px12mZF0CA== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.32" + +"@fortawesome/free-regular-svg-icons@5.15.1": + version "5.15.1" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.1.tgz#a8897d0ce325352dbba0e943101323e0175ee2b2" + integrity sha512-eD9NWFy89e7SVVtrLedJUxIpCBGhd4x7s7dhesokjyo1Tw62daqN5UcuAGu1NrepLLq1IeAYUVfWwnOjZ/j3HA== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.32" + +"@fortawesome/free-solid-svg-icons@5.15.1": + version "5.15.1" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz#e1432676ddd43108b41197fee9f86d910ad458ef" + integrity sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.32" + +"@fortawesome/vue-fontawesome@3.0.0-2": + version "3.0.0-2" + resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.0-2.tgz#ebf06aeefd847e398d55cb3da357de2e9aebb574" + integrity sha512-SYFV7LXOe7mCKdcoVEhBAPbyyCueqEYn3zA7oOvsu9z9UO+BQpi60uFfA1AWcT8OyVWKbGvfHgvQus2DVA2Tjg== + +"@gulp-sourcemaps/identity-map@1.X": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz#1e6fe5d8027b1f285dc0d31762f566bccd73d5a9" + integrity sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ== + dependencies: + acorn "^5.0.3" + css "^2.2.1" + normalize-path "^2.1.1" + source-map "^0.6.0" + through2 "^2.0.3" + +"@gulp-sourcemaps/map-sources@1.X": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o= + dependencies: + normalize-path "^2.0.1" + through2 "^2.0.3" + +"@koa/cors@3.1.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2" + integrity sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + vary "^1.1.2" -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@koa/multer@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@koa/multer/-/multer-3.0.0.tgz#439777949f28097d7b329c0b4ce3048074c862f8" + integrity sha512-y+OQBmex5D1jIl723gAEUYcAWPEicIXppaAKw/zCMfpllQ08ZNweDPwoCLxEoatqd5pCu2XG6V8dl67JRq3RJw== -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== +"@koa/router@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@koa/router/-/router-9.0.1.tgz#4090a14223ea7e78aa13b632761209cba69acd95" + integrity sha512-OI+OU49CJV4px0WkIMmayBeqVXB/JS1ZMq7UoGlTZt6Y7ijK7kdeQ18+SEHHJPytmtI1y6Hf8XLrpxva3mhv5Q== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + debug "^4.1.1" + http-errors "^1.7.3" + koa-compose "^4.1.0" + methods "^1.1.2" + path-to-regexp "^6.1.0" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@nodelib/fs.stat" "2.0.5" + "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: - "@nodelib/fs.scandir" "2.1.5" + "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@sideway/address@^4.1.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.2.tgz#811b84333a335739d3969cfc434736268170cad1" - integrity sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA== +"@rollup/plugin-babel@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.1.tgz#20fc8f8864dc0eaa1c5578408459606808f72924" + integrity sha512-Jd7oqFR2dzZJ3NWANDyBjwTtX/lYbZpVcmkHrfQcpvawHs9E4c0nYk5U2mfZ6I/DZcIvy506KZJi54XK/jxH7A== dependencies: - "@hapi/hoek" "^9.0.0" + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + +"@sinonjs/commons@^1.7.0": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sqltools/formatter@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.2.tgz#9390a8127c0dcba61ebd7fdcc748655e191bdd68" + integrity sha512-/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q== + +"@syuilo/aiscript@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.11.1.tgz#52c14692113c58d1d62e6ae696352ba49abdf2eb" + integrity sha512-chwOIA3yLUKvOB0G611hjLArKTeOWNmTm3lHERSaDW1d+dS6do56naX6Lkwy2UpnwWC0qzeNSgg35elk6t2gZg== + dependencies: + autobind-decorator "2.4.0" + chalk "4.0.0" + seedrandom "3.0.5" + stringz "2.1.0" + uuid "7.0.3" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@tokenizer/token@^0.1.0", "@tokenizer/token@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3" + integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w== + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/accepts@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/bcryptjs@2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/bcryptjs/-/bcryptjs-2.4.2.tgz#e3530eac9dd136bfdfb0e43df2c4c5ce1f77dfae" + integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== + +"@types/body-parser@*": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bull@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@types/bull/-/bull-3.14.0.tgz#60741d3f5006bd4e17b02ff036e6ecef7ac47a6e" + integrity sha512-9MKWQ4Q+GFIEA3/SdSc128mAccCKni2YVMKPEdQY5qooN+3gl0Po+f7kaKukgn5s6YXj5xbvc/zTaMsHZL9GvA== + dependencies: + "@types/ioredis" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/cbor@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-5.0.1.tgz#e147bbe09ada4db7000ec6c23eafb5f67f5422a5" + integrity sha512-zVqJy2KzusZPLOgyGJDnOIbu3DxIGGqxYbEwtEEe4Z+la8jwIhOyb+GMrlHafs5tvKruwf8f8qOYP6zTvse/pw== + dependencies: + "@types/node" "*" + +"@types/chai@4.2.11": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" + integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== + +"@types/cheerio@^0.22.10": + version "0.22.18" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.18.tgz#19018dceae691509901e339d63edf1e935978fe6" + integrity sha512-Fq7R3fINAPSdUEhOyjG4iVxgHrOnqDJbY0/BUuiN0pvD/rfmZWekVZnv+vcs8TtpA2XF50uv50LaE4EnpEL/Hw== + dependencies: + "@types/node" "*" "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/connect@*": + version "3.4.33" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" + integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== + +"@types/cookies@*": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" + integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/dateformat@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-3.0.1.tgz#98d747a2e5e9a56070c6bf14e27bff56204e34cc" + integrity sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g== + +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/double-ended-queue@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/double-ended-queue/-/double-ended-queue-2.1.1.tgz#f077386134f0f736d927812c85c43a04f21ddc27" + integrity sha512-O2+umEIlHBVyi+ePmucPjpINqTvSnsz+hAok0D4IpvrOsIsDr6c34B0AbNXW2UDVYuxbv51z5dxnrRt23ohgWg== + +"@types/escape-regexp@0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@types/escape-regexp/-/escape-regexp-0.0.0.tgz#bff0225f9ef30d0dbdbe0e2a24283ee5342990c3" + integrity sha512-HTansGo4tJ7K7W9I9LBdQqnHtPB/Y7tlS+EMrkboaAQLsRPhRpHaqAHe01K1HVXM5e1u1IplRd8EBh+pJrp7Dg== + +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.0.tgz#eb5c5b575237334df24c53195e37b53d66478d7b" + integrity sha512-LpUXkr7fnmPXWGxB0ZuLEzNeTURuHPavkC5zuU4sg62/TgL5ZEjamr5Y8b6AftwHtx2bPJasI+CL0TT2JwQ7aA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.45": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -139,6 +428,36 @@ resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== +"@types/express-serve-static-core@*": + version "4.17.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz#a00ac7dadd746ae82477443e4d480a6a93ea083c" + integrity sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw== + dependencies: + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.6.tgz#6bce49e49570507b86ea1b07b806f04697fac45e" + integrity sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fancy-log@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@types/fancy-log/-/fancy-log-1.3.0.tgz#a61ab476e5e628cd07a846330df53b85e05c8ce0" + integrity sha512-mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw== + +"@types/fluent-ffmpeg@2.1.14": + version "2.1.14" + resolved "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.14.tgz#b21d60267fe269c2ea81fa3238a36a8349f8f2f3" + integrity sha512-nJrAX9ODNI7mUB0b7Y0Stx1a6dOpV3zXsOnWoBuEd9/woQhepBNCMeCyOL6SLJD3jn5sLw5ciDGH0RwJenCoag== + dependencies: + "@types/node" "*" + "@types/glob-stream@*": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-6.1.0.tgz#7ede8a33e59140534f8d8adfb8ac9edfb31897bc" @@ -156,47 +475,443 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/gulp-rename@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/gulp-rename/-/gulp-rename-2.0.1.tgz#c8228fc2c5c4a7500346ea9ce18f27fa988caef5" - integrity sha512-9ZjeS2RHEnmBmTcyi2+oeye3BgCsWhvi4uv3qCnAg8i6plOuRdaeNxjOves0ELysEXYLBl7bCl5fbVs7AZtgTA== +"@types/glob@7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/gulp-rename@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/gulp-rename/-/gulp-rename-0.0.33.tgz#38d146e97786569f74f5391a1b1f9b5198674b6c" + integrity sha512-FIZQvbZJj6V1gHPTzO+g/BCWpDur7fJrroae4gwV3LaoHBQ+MrR9sB+2HssK8fHv4WdY6hVNxkcft9bYatuPIA== dependencies: "@types/node" "*" - "@types/vinyl" "*" -"@types/gulp@4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.9.tgz#a2f9667bcc26bc72b4899dd16216d6584a12346c" - integrity sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q== +"@types/gulp-replace@0.0.31": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/gulp-replace/-/gulp-replace-0.0.31.tgz#87c3ac90b437694c58d68d1da677fcaff38b25ff" + integrity sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g== + dependencies: + "@types/node" "*" + +"@types/gulp@4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.6.tgz#68fe0e1f0ff3657cfca46fb564806b744a1bf899" + integrity sha512-0E8/iV/7FKWyQWSmi7jnUvgXXgaw+pfAzEB06Xu+l0iXVJppLbpOye5z7E2klw5akXd+8kPtYuk65YBcZPM4ow== dependencies: "@types/undertaker" "*" "@types/vinyl-fs" "*" - chokidar "^3.3.1" + chokidar "^2.1.2" + +"@types/http-assert@*": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" + integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/ioredis@*": + version "4.14.9" + resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.14.9.tgz#774387d44d3ad60e1b849044b2b28b96e5813866" + integrity sha512-yNdzppM6vY4DYqXCnt4A3PXArxsMWeJCYxFlyl4AJKrNSGMEAP9TPcXR+8Q6zh9glcCtxmwMQhi4pwdqqHH3OA== + dependencies: + "@types/node" "*" + +"@types/is-url@1.2.28": + version "1.2.28" + resolved "https://registry.yarnpkg.com/@types/is-url/-/is-url-1.2.28.tgz#914dabd50546d9b0142806e42c72bc7c2b7e0787" + integrity sha1-kU2r1QVG2bAUKAbkLHK8fCt+B4c= + +"@types/js-yaml@3.12.5": + version "3.12.5" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.5.tgz#136d5e6a57a931e1cce6f9d8126aa98a9c92a6bb" + integrity sha512-JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww== + +"@types/jsdom@16.2.3": + version "16.2.3" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.3.tgz#c6feadfe0836389b27f9c911cde82cd32e91c537" + integrity sha512-BREatezSn74rmLIDksuqGNFUTi9HNAWWQXYpFBFLK9U6wlMCO4M0QCa8CMpDsZQuqxSO9XifVLT5Q1P0vgKLqw== + dependencies: + "@types/node" "*" + "@types/parse5" "*" + "@types/tough-cookie" "*" + +"@types/json-schema@*": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + +"@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/jsonld@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/jsonld/-/jsonld-1.5.1.tgz#361e98bdc07814f5c98a42b4063430b243a8fa9b" + integrity sha512-8XI88iiCBVqmNCMBqPOgJhJPPuiIW1Tp2sXqe3NwD137ljhQVkDWY8cuYBBDZQoBYfGzUJvja527bbwqVbRnHQ== + +"@types/katex@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.11.0.tgz#b16c54ee670925ffef0616beae9e90c557e17334" + integrity sha512-27BfE8zASRLYfSBNMk5/+KIjr2CBBrH0i5lhsO04fca4TGirIIMay73v3zNkzqmsaeIa/Mi5kejWDcxPLAmkvA== + +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/koa-bodyparser@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#54ecd662c45f3a4fa9de849528de5fc8ab269ba5" + integrity sha512-aB/vwwq4G9FAtKzqZ2p8UHTscXxZvICFKVjuckqxCtkX1Ro7F5KHkTCUqTRZFBgDoEkmeca+bFLI1bIsdPPZTA== + dependencies: + "@types/koa" "*" + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa-cors@0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@types/koa-cors/-/koa-cors-0.0.0.tgz#7a0ef45acfed1ef6c046d5896e3974261d8a9d37" + integrity sha512-bqWPbf/MNHx5rwOdQXEkQxL7/DvD1sMQRC+PUDqnYf/i4WPUeLhePRssexznT9uQSNWhtfFi1lDanoY/srFb5g== + dependencies: + "@types/koa" "*" + +"@types/koa-favicon@2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@types/koa-favicon/-/koa-favicon-2.0.19.tgz#a1b584fd64c99f16710633272292bf7d4b0ca1fa" + integrity sha512-QmpDuOpMn7soINt0mbOdZIaRQp9vRVR7g/MfLqozAq0gZALxqtcu6KUIWf6vxvkY5U1jzFctfaPa7I3KpAcbqA== + dependencies: + "@types/koa" "*" + +"@types/koa-logger@3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/koa-logger/-/koa-logger-3.1.1.tgz#bf759ba2f25b7562ffa30b09616bb1c1e5070fea" + integrity sha512-wp2HaskkPugfwgXgNnc+idnReuJZSTTYQbkcxXjsMhp1kTc342PxDzTL9FXDgBfEvgt9NX1CCGjkwPKX2dlEKQ== + dependencies: + "@types/koa" "*" + +"@types/koa-mount@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/koa-mount/-/koa-mount-4.0.0.tgz#aa0505763c0d20bf4a16cdec0d9ccd2f4f2d2a86" + integrity sha512-56iBULArwY3uKLl28eRFchZ2v0diEoJzJbDaHH/ehgruF/s2/KMHyWsKcIhvDJ3tGdKu9oZNQvxaMg++1IKFdA== + dependencies: + "@types/koa" "*" + +"@types/koa-send@4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@types/koa-send/-/koa-send-4.1.2.tgz#978f8267ad116d12ac6a18fecd8f34c5657e09ad" + integrity sha512-rfqKIv9bFds39Jxvsp8o3YJLnEQVPVriYA14AuO2OY65IHh/4UX4U/iMs5L0wATpcRmm1bbe0BNk23TRwx3VQQ== + dependencies: + "@types/koa" "*" + +"@types/koa-views@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/koa-views/-/koa-views-2.0.4.tgz#3fa87ba13174f9816c6f7701fbf129dfe9855e39" + integrity sha512-aGFBVLiPC7FkXTqHLhnmjKhx3COV+GeJHO9OkLX/p/iAQTgDB5bbnsddx3XgrS6aACWyxR3BpQJVDdSqCNY1lw== + dependencies: + "@types/koa" "*" + +"@types/koa@*", "@types/koa@2.11.3": + version "2.11.3" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.3.tgz#540ece376581b12beadf9a417dd1731bc31c16ce" + integrity sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa__cors@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/koa__cors/-/koa__cors-3.0.1.tgz#a8cf8535f0fe682c9421f1b9379837c585f8b66b" + integrity sha512-loqZNXliley8kncc4wrX9KMqLGN6YfiaO3a3VFX+yVkkXJwOrZU4lipdudNjw5mFyC+5hd7h9075hQWcVVpeOg== + dependencies: + "@types/koa" "*" + +"@types/koa__multer@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/koa__multer/-/koa__multer-2.0.1.tgz#a09fba6ee4a22c40ef30a88acde88673a03ba142" + integrity sha512-HgCHR0nmOQ607Z/KtFmy/BPI60Gl21s/6gfkA81Oa5UNAOyVLWZb4XYTs2wXwmbyi2+25SwjKA2BrFMqh5njCA== + dependencies: + "@types/koa" "*" + +"@types/koa__router@8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-8.0.2.tgz#32381a4b2487226e09be1c960da066a4e373af35" + integrity sha512-3ZWfVAEcErHrZA31fWUC2YyZyAgoG4eKtQPy2XwBzdSpQealxjL7GcEEtGY925qPPs1wurW59qDl0KuRB39rrw== + dependencies: + "@types/koa" "*" + +"@types/linkify-it@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-2.1.0.tgz#ea3dd64c4805597311790b61e872cbd1ed2cd806" + integrity sha512-Q7DYAOi9O/+cLLhdaSvKdaumWyHbm7HAk/bFwwyTuU0arR5yyCeW5GOoqt4tJTpDRxhpx9Q8kQL6vMpuw9hDSw== + +"@types/markdown-it@10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.1.tgz#94e252ab689c8e9ceb9aff2946e0a458390105eb" + integrity sha512-L1ibTdA5IUe/cRBlf3N3syAOBQSN1WCMGtAWir6mKxibiRl4LmpZM4jLz+7zAqiMnhQuAP1sqZOF9wXgn2kpEg== + dependencies: + "@types/linkify-it" "*" + "@types/mdurl" "*" + +"@types/mdurl@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/mime@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" + integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/mocha@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" + integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== + +"@types/node-fetch@2.5.7": + version "2.5.7" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" + integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": - version "16.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" - integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== + version "13.13.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" + integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== -"@types/node@^14.14.31", "@types/node@^14.14.41": - version "14.17.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" - integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== +"@types/node@14.0.22": + version "14.0.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.22.tgz#23ea4d88189cec7d58f9e6b66f786b215eb61bdc" + integrity sha512-emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g== -"@types/sinonjs__fake-timers@8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" - integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== +"@types/nodemailer@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.0.tgz#d8c039be3ed685c4719a026455555be82c124b74" + integrity sha512-KY7bFWB0MahRZvVW4CuW83qcCDny59pJJ0MQ5ifvfcjNwPlIT0vW4uARO4u1gtkYnWdhSvURegecY/tzcukJcA== + dependencies: + "@types/node" "*" -"@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== +"@types/nprogress@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@types/nprogress/-/nprogress-0.2.0.tgz#86c593682d4199212a0509cc3c4d562bbbd6e45f" + integrity sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A== + +"@types/oauth@0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" + integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A== + dependencies: + "@types/node" "*" + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/parse5@*": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.2.tgz#a877a4658f8238c8266faef300ae41c84d72ec8a" + integrity sha512-BOl+6KDs4ItndUWUFchy3aEqGdHhw0BC4Uu+qoDonN/f0rbUnJbm71Ulj8Tt9jLFRaAxPLKvdS1bBLfx1qXR9g== + +"@types/parse5@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + +"@types/parsimmon@1.10.2": + version "1.10.2" + resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.2.tgz#2ac8480e1230c1c212cb6a2fed001bc87201aed8" + integrity sha512-WVugAiBoLsmay9IPrLJoMnmLTP0cWPbc4w5c5suTevyhaJW9TWGyPbkFraNUk5YULf8vQ5C/3NBEQcIs6XfTcg== + +"@types/portscanner@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/portscanner/-/portscanner-2.1.0.tgz#a9b39e98ccbcb49c335e284eca64df4756d6f49a" + integrity sha512-II0FA05TSt4r7PBUvYTqub+yrXTRu7L/PQnTtjcJYzAeBts6xHM/OA2MKyeQ80sFxX7p+0BTo68Nh1P3N6Oj/g== + +"@types/pug@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2" + integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/qrcode@1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.3.4.tgz#984d97bb72caa558d470158701081ccb712f616b" + integrity sha512-aILE5yvKaqQXlY0YPMEYwK/KwdD43fwQTyagj0ffBBTQj8h//085Zp8LUrOnZ9FT69x64f5UgDo0EueY4BPAdg== + dependencies: + "@types/node" "*" + +"@types/qs@*": + version "6.9.1" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7" + integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw== + +"@types/random-seed@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/random-seed/-/random-seed-0.3.3.tgz#7741f7b0a4513198a9396ce4ad25832f799a6727" + integrity sha512-kHsCbIRHNXJo6EN5W8EA5b4i1hdT6jaZke5crBPLUcLqaLdZ0QBq8QVMbafHzhjFF83Cl9qlee2dChD18d/kPg== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/ratelimiter@2.1.28": + version "2.1.28" + resolved "https://registry.yarnpkg.com/@types/ratelimiter/-/ratelimiter-2.1.28.tgz#cf6371e6d9b1d236e3f0b25889a6d52aed2e0e22" + integrity sha1-z2Nx5tmx0jbj8LJYiabVKu0uDiI= + dependencies: + "@types/redis" "*" + +"@types/readable-stream@^2.3.9": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz#40a8349e6ace3afd2dd1b6d8e9b02945de4566a9" + integrity sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw== + dependencies: + "@types/node" "*" + safe-buffer "*" + +"@types/redis@*": + version "2.8.18" + resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.18.tgz#6e95de50d848cd9c0aacb89aa8a6aef07a0a34b3" + integrity sha512-29ffRZITbLRs4zboL31EPJVDhSC/pHommWpf0rRcpwz45fvH6U2VxdRM6wWPSJu23l/kXQNKrMR8SAlLB7OqbQ== + dependencies: + "@types/node" "*" + +"@types/redis@2.8.25": + version "2.8.25" + resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.25.tgz#046bfff24b82effa59d74744c6fcf8995be17479" + integrity sha512-e5N5Dg712aZ1CPi1Li0XalukPSWd2RTLYzmrMsQ84NkYQ7cqKHC+HroXM1WP65O1zRGfzld72/u9ikumEe+ylA== + dependencies: + "@types/node" "*" + +"@types/rename@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/rename/-/rename-1.0.1.tgz#89ef152d73f2400835c5d835c5e22d3eb6b21ba6" + integrity sha512-/UCzEibV29OoEkc773GR9lzwrHnMl8wnNrvAir+WIICS4e7NG+Pe85pYH4CGyVvgmNuKiiWH5i0g0flHO/Uw4Q== + dependencies: + "@types/node" "*" + +"@types/request-stats@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/request-stats/-/request-stats-3.0.0.tgz#d3909a9f778b8ae0b42fb8c1ed20cb936ed95f99" + integrity sha512-POsDF7nETH8up49iBNvbZuO0pEk9F+TG0rXCkvjxCClcOS99xfF+mKmJteYlwKYpuRKkixzysKlL8rwN1hU2lw== + dependencies: + "@types/node" "*" + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/rimraf@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.0.tgz#b9d03f090ece263671898d57bb7bb007023ac19f" + integrity sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/seedrandom@2.4.28": + version "2.4.28" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.28.tgz#9ce8fa048c1e8c85cb71d7fe4d704e000226036f" + integrity sha512-SMA+fUwULwK7sd/ZJicUztiPs8F1yCPwF3O23Z9uQ32ME5Ha0NmDK9+QTsYE4O2tHXChzXomSWWeIhCnoN1LqA== + +"@types/serve-static@*": + version "1.13.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" + integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/sharp@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.26.0.tgz#2fa8419dbdaca8dd38f73888b27b207f188a8669" + integrity sha512-oJrR8eiwpL7qykn2IeFRduXM4za7z+7yOUEbKVtuDQ/F6htDLHYO6IbzhaJQHV5n6O3adIh4tJvtgPyLyyydqg== + dependencies: + "@types/node" "*" + +"@types/sinonjs__fake-timers@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" + integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/speakeasy@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/speakeasy/-/speakeasy-2.0.5.tgz#dd7654110dcf6bb05d5ba16ca015319f617131e9" + integrity sha512-8jnDuZM/q77cd3naF5T3VRlNbNuYUvnixYYSu0dhpPxc9UNrBNubDlXoyVIyQgfvOd7pSc0cs4ETB5kygtpWZQ== + dependencies: + "@types/node" "*" + +"@types/tapable@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.5.tgz#9adbc12950582aa65ead76bffdf39fe0c27a3c02" + integrity sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ== + +"@types/tinycolor2@1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.2.tgz#721ca5c5d1a2988b4a886e35c2ffc5735b6afbdf" + integrity sha512-PeHg/AtdW6aaIO2a+98Xj7rWY4KC1E6yOy7AFknJQ7VXUGNrMlyxDFxJo7HqLtjQms/ZhhQX52mLVW/EX3JGOw== + +"@types/tmp@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.0.tgz#e3f52b4d7397eaa9193592ef3fdd44dc0af4298c" + integrity sha512-flgpHJjntpBAdJD43ShRosQvNC0ME97DCfGvZEDlAThQmnerRXrLbX6YgzRBQCZTthET9eAWFAMaYP0m0Y4HzQ== + +"@types/tough-cookie@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" + integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== + +"@types/uglify-js@*": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.9.0.tgz#4490a140ca82aa855ad68093829e7fd6ae94ea87" + integrity sha512-3ZcoyPYHVOCcLpnfZwD47KFLr8W/mpUcgjpf1M4Q78TMJIw7KMAHSjiCLJp1z3ZrBR9pTLbe191O0TldFK5zcw== + dependencies: + source-map "^0.6.1" "@types/undertaker-registry@*": version "1.0.1" @@ -210,6 +925,11 @@ dependencies: "@types/undertaker-registry" "*" +"@types/uuid@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" + integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== + "@types/vinyl-fs@*": version "2.4.11" resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz#b98119b8bb2494141eaf649b09fbfeb311161206" @@ -219,7 +939,7 @@ "@types/node" "*" "@types/vinyl" "*" -"@types/vinyl@*", "@types/vinyl@^2.0.4": +"@types/vinyl@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.4.tgz#9a7a8071c8d14d3a95d41ebe7135babe4ad5995a" integrity sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ== @@ -227,75 +947,494 @@ "@types/expect" "^1.20.4" "@types/node" "*" -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== +"@types/web-push@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@types/web-push/-/web-push-3.3.0.tgz#459eb722c9585b84a149e7020606d4f65f64f0ca" + integrity sha512-QHEQCPrVy1JZtZK0cA8DHT2MhuCJNyI3m+DzuOTSGa56VM6g2bjdD+hMp8A/2Ca9w0GfmdcStrLgfXAUKKlvJg== dependencies: "@types/node" "*" -"@typescript-eslint/parser@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" - integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== +"@types/webpack-sources@*": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.7.tgz#0a330a9456113410c74a5d64180af0cbca007141" + integrity sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw== dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" - debug "^4.3.4" + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" -"@typescript-eslint/scope-manager@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" - integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== +"@types/webpack-stream@3.2.11": + version "3.2.11" + resolved "https://registry.yarnpkg.com/@types/webpack-stream/-/webpack-stream-3.2.11.tgz#9b6099e699cee5e1d2998b657acbbcd3a197f9f6" + integrity sha512-SOYuMHBc10Rl/flwiLv9pere0iUc3tWBlpXdd1NedRxRuUKETGedR5KZuQ3F410qgueY172urhZvSbMOQQm7MA== dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" + "@types/node" "*" + "@types/webpack" "*" -"@typescript-eslint/types@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" - integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== - -"@typescript-eslint/typescript-estree@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" - integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== +"@types/webpack@*": + version "4.41.12" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.12.tgz#0386ee2a2814368e2f2397abb036c0bf173ff6c3" + integrity sha512-BpCtM4NnBen6W+KEhrL9jKuZCXVtiH6+0b6cxdvNt2EwU949Al334PjQSl2BeAyvAX9mgoNNG21wvjP3xZJJ5w== dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" -"@typescript-eslint/visitor-keys@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" - integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== +"@types/webpack@4.41.24": + version "4.41.24" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.24.tgz#75b664abe3d5bcfe54e64313ca3b43e498550422" + integrity sha512-1A0MXPwZiMOD3DPMuOKUKcpkdPo8Lq33UGggZ7xio6wJ/jV1dAu5cXDrOfGDnldUroPIRLsr/DT43/GqOA4RFQ== dependencies: - "@typescript-eslint/types" "5.36.2" - eslint-visitor-keys "^3.3.0" + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" -acorn@^8.5.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +"@types/websocket@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.1.tgz#039272c196c2c0e4868a0d8a1a27bbb86e9e9138" + integrity sha512-f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q== + dependencies: + "@types/node" "*" -aggregate-error@^3.0.0: +"@types/ws@7.2.7": + version "7.2.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.7.tgz#362ad1a1d62721bdb725e72c8cccf357078cf5a3" + integrity sha512-UUFC/xxqFLP17hTva8/lVT0SybLUrfSD9c+iapKb0fEiC8uoDbA+xuZ3pAN603eW+bY8ebSMLm9jXdIPnD0ZgA== + dependencies: + "@types/node" "*" + +"@typescript-eslint/parser@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.6.1.tgz#b801bff67b536ecc4a840ac9289ba2be57e02428" + integrity sha512-lScKRPt1wM9UwyKkGKyQDqf0bh6jm8DQ5iN37urRIXDm16GEv+HGEmum2Fc423xlk5NUOkOpfTnKZc/tqKZkDQ== + dependencies: + "@typescript-eslint/scope-manager" "4.6.1" + "@typescript-eslint/types" "4.6.1" + "@typescript-eslint/typescript-estree" "4.6.1" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.6.1.tgz#21872b91cbf7adfc7083f17b8041149148baf992" + integrity sha512-f95+80r6VdINYscJY1KDUEDcxZ3prAWHulL4qRDfNVD0I5QAVSGqFkwHERDoLYJJWmEAkUMdQVvx7/c2Hp+Bjg== + dependencies: + "@typescript-eslint/types" "4.6.1" + "@typescript-eslint/visitor-keys" "4.6.1" + +"@typescript-eslint/types@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.6.1.tgz#d3ad7478f53f22e7339dc006ab61aac131231552" + integrity sha512-k2ZCHhJ96YZyPIsykickez+OMHkz06xppVLfJ+DY90i532/Cx2Z+HiRMH8YZQo7a4zVd/TwNBuRCdXlGK4yo8w== + +"@typescript-eslint/typescript-estree@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.1.tgz#6025cce724329413f57e4959b2d676fceeca246f" + integrity sha512-/J/kxiyjQQKqEr5kuKLNQ1Finpfb8gf/NpbwqFFYEBjxOsZ621r9AqwS9UDRA1Rrr/eneX/YsbPAIhU2rFLjXQ== + dependencies: + "@typescript-eslint/types" "4.6.1" + "@typescript-eslint/visitor-keys" "4.6.1" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.1.tgz#6b125883402d8939df7b54528d879e88f7ba3614" + integrity sha512-owABze4toX7QXwOLT3/D5a8NecZEjEWU1srqxENTfqsY3bwVnl3YYbOh6s1rp2wQKO9RTHFGjKes08FgE7SVMw== + dependencies: + "@typescript-eslint/types" "4.6.1" + eslint-visitor-keys "^2.0.0" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@vue/compiler-core@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.2.tgz#7790b7a1fcbba5ace4d81a70ce59096fa5c95734" + integrity sha512-GOlEMTlC/OdzBkKaKOniYErbkjoKxkBOmulxGmMR10I2JJX6TvXd/peaO/kla2xhpliV/M6Z4TLJp0yjAvRIAw== + dependencies: + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" + "@vue/shared" "3.0.2" + estree-walker "^2.0.1" + source-map "^0.6.1" + +"@vue/compiler-dom@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.2.tgz#1d40de04bcdf9aabb79fb6a802dd70a2f3c2992a" + integrity sha512-jvaL4QF2yXBJVD+JLbM2YA3e5fNfflJnfQ+GtfYk46ENGsEetqbkZqcX7fO+RHdG8tZBo7LCNBvgD0QLr+V4sg== + dependencies: + "@vue/compiler-core" "3.0.2" + "@vue/shared" "3.0.2" + +"@vue/compiler-sfc@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.2.tgz#22c70fed72c347a4d5fa2db2e80594b3193dce57" + integrity sha512-viYjT5ehDSLM3v0jQ9hbTs4I5e/7lSlYsDOp7TQ1qcwHRvzoTQMTkFpY/Iae+LFKM124Ld17tBfXgfrZl9dt+g== + dependencies: + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" + "@vue/compiler-core" "3.0.2" + "@vue/compiler-dom" "3.0.2" + "@vue/compiler-ssr" "3.0.2" + "@vue/shared" "3.0.2" + consolidate "^0.16.0" + estree-walker "^2.0.1" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + magic-string "^0.25.7" + merge-source-map "^1.1.0" + postcss "^7.0.32" + postcss-modules "^3.2.2" + postcss-selector-parser "^6.0.4" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.2.tgz#73af4d274a79bfcc72a996a9b45f1072e7deaa26" + integrity sha512-gOgK1lf+0bFl+kQj6TU0TU1jIDFlsPRlSBZaUUA16DGeeiJrFanhsMuIs/l9U0IBFr/VJcHgzYpTXqHp95luHw== + dependencies: + "@vue/compiler-dom" "3.0.2" + "@vue/shared" "3.0.2" + +"@vue/reactivity@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.2.tgz#42ed5af6025b494a5e69b05169fcddf04eebfe77" + integrity sha512-GdRloNcBar4yqWGXOcba1t//j/WizwfthfPUYkjcIPHjYnA/vTEQYp0C9+ZjPdinv1WRK1BSMeN/xj31kQES4A== + dependencies: + "@vue/shared" "3.0.2" + +"@vue/runtime-core@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.2.tgz#d7ed462af1cb0bf9836668e4e6fab3f2f4b1bc00" + integrity sha512-3m/jOs2xSipEFah9FgpEzvC9nERFonVGLN06+pf8iYPIy54Nlv7D2cyrk3Lhbjz4w3PbIrkxJnoTJYvJM7HDfA== + dependencies: + "@vue/reactivity" "3.0.2" + "@vue/shared" "3.0.2" + +"@vue/runtime-dom@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.2.tgz#9d166d03225558025d3d80f5039b646e0051b71c" + integrity sha512-vqC1KK1yWthTw1FKzajT0gYQaEqAq7bpeeXQC473nllGC5YHbJhNAJLSmrDun1tjXqGF0UNCWYljYm+++BJv6w== + dependencies: + "@vue/runtime-core" "3.0.2" + "@vue/shared" "3.0.2" + csstype "^2.6.8" + +"@vue/shared@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.2.tgz#419bd85a2ebdbd4f42963e98c5a1b103452176d9" + integrity sha512-Zx869zlNoujFOclKIoYmkh8ES2RcS/+Jn546yOiPyZ+3+Ejivnr+fb8l+DdXUEFjo+iVDNR3KyLzg03aBFfZ4Q== + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webpack-cli/info@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.1.0.tgz#c596d5bc48418b39df00c5ed7341bf0f102dbff1" + integrity sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.1.0.tgz#13ad38f89b6e53d1133bac0006a128217a6ebf92" + integrity sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8= dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + acorn "^4.0.4" -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn-walk@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + +acorn@5.X, acorn@^5.0.3: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^4.0.4, acorn@~4.0.2: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= + +acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" + integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== + +agent-base@6: + version "6.0.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" + integrity sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw== + dependencies: + debug "4" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" @@ -303,17 +1442,10 @@ ansi-colors@^1.0.1: dependencies: ansi-wrap "^0.1.0" -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" +ansi-colors@^3.2.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-gray@^0.1.1: version "0.1.1" @@ -327,6 +1459,16 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -337,6 +1479,13 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" @@ -350,6 +1499,11 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0: resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= +any-promise@^1.0.0, any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -366,6 +1520,24 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +apexcharts@3.22.1: + version "3.22.1" + resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.22.1.tgz#c3593f135a7e188bc395777fa87f722992933c3e" + integrity sha512-wZ/6FT1JMKy9d6ZFbzNt98DLFYnSl19dhD1wav4rh+QTIQSS8qwD79T9ZaSJNXsWv0KfqLu6BIeUI+Z2U9O/eg== + dependencies: + "@rollup/plugin-babel" "^5.2.1" + svg.draggable.js "^2.2.2" + svg.easing.js "^2.0.0" + svg.filter.js "^2.0.2" + svg.pathmorphing.js "^0.1.3" + svg.resize.js "^1.4.3" + svg.select.js "^3.0.1" + +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" @@ -373,16 +1545,34 @@ append-buffer@^1.0.2: dependencies: buffer-equal "^1.0.0" -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -390,11 +1580,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -424,10 +1609,15 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-back@^4.0.0, array-back@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" + integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== + array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-initial@^1.0.0: version "1.1.0" @@ -468,6 +1658,21 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.3.0.tgz#439099fe9174e09cff5a54a9dda70260517e8689" + integrity sha512-WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -480,15 +1685,20 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-done@^1.2.0, async-done@^1.2.2: version "1.3.2" @@ -500,11 +1710,6 @@ async-done@^1.2.0, async-done@^1.2.2: process-nextick-args "^2.0.0" stream-exhaust "^1.0.1" -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - async-settle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" @@ -512,37 +1717,66 @@ async-settle@^1.0.0: dependencies: async-done "^1.2.2" -async@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== +async@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw== + dependencies: + lodash "^4.14.0" + +async@>=0.2.9: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +async@^2.6.0, async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= +autobind-decorator@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.4.0.tgz#ea9e1c98708cf3b5b356f7cf9f10f265ff18239c" + integrity sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw== + +autosize@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz#073cfd07c8bf45da4b9fd153437f5bafbba1e4c9" + integrity sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA== + +autwh@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/autwh/-/autwh-0.1.0.tgz#24a5300923309d105133401a2568f9c8ab7d7e03" + integrity sha512-IkGZ4kjVlZMkEmDiVtZpGG3lDGHPqsMBIh4IpQKN7idYOJ5EGedqKPO+ychNqh8zrJEEqYsN0NcBkcmoE2uFAw== dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" + oauth "0.9.15" + +aws-sdk@2.787.0: + version "2.787.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.787.0.tgz#4d8966d11c7dbe770de26632e552c97b2d91e340" + integrity sha512-3WlUdWqUB8Vhdvj/7TENr/7SEmQzxmnHxOJ8l2WjZbcMRSuI0/9Ym4p1TC3hf21VDVDhkdGlw60QqpZQ1qb+Mg== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" aws-sign2@~0.7.0: version "0.7.0" @@ -554,12 +1788,12 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== +axios@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz#057ba30f04884694993a8cd07fa394cff11c50bd" + integrity sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA== dependencies: - follow-redirects "^1.14.0" + follow-redirects "^1.10.0" bach@^1.0.0: version "1.2.0" @@ -576,20 +1810,20 @@ bach@^1.0.0: async-settle "^1.0.0" now-and-later "^2.0.0" -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base32.js@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.0.1.tgz#d045736a57b1f6c139f0c7df42518a84e91bb2ba" + integrity sha1-0EVzalex9sE58MffQlGKhOkbsro= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" @@ -611,38 +1845,60 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" + integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== binary-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== -binaryextensions@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" - integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== +binaryextensions@2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.2.0.tgz#e7c6ba82d4f5f5758c26078fe8eea28881233311" + integrity sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== +bl@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== dependencies: - file-uri-to-path "1.0.0" + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" -blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@3.7.2, bluebird@^3.7.2: +bluebird@^3.1.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +blurhash@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.3.tgz#dc325af7da836d07a0861d830bdd63694382483e" + integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw== + +bn.js@^4.0.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -651,7 +1907,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -674,36 +1930,131 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.0.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== + dependencies: + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" + +browserslist@^4.14.5: + version "4.14.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" + integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== + dependencies: + caniuse-lite "^1.0.30001135" + electron-to-chromium "^1.3.571" + escalade "^3.1.0" + node-releases "^1.1.61" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= buffer-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +buffer-from@^1.0.0, buffer-from@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.4.3, buffer@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +bufferutil@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== + dependencies: + node-gyp-build "~3.7.0" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +bull@3.18.1: + version "3.18.1" + resolved "https://registry.yarnpkg.com/bull/-/bull-3.18.1.tgz#49eb8fd9844a3dc0a12a851b132e508890763a31" + integrity sha512-g3gHFZ0qMo0wpecoNmd2W+F1Gj48l6phVCTdsQPKxDk1bB7kzD0nY5FAFnBFiaWxNmh5lb5X9TMB64uNXFKFDg== + dependencies: + cron-parser "^2.13.0" + debuglog "^1.0.0" + get-port "^5.1.1" + ioredis "^4.14.1" + lodash "^4.17.19" + p-timeout "^3.2.0" + promise.prototype.finally "^3.1.2" + semver "^7.3.2" + util.promisify "^1.0.1" + uuid "^8.3.0" + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.1.0, bytes@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cache-base@^1.0.1: version "1.0.1" @@ -720,37 +2071,164 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cacheable-lookup@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +cafy@15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/cafy/-/cafy-15.2.1.tgz#5a55eaeb721c604c7dca652f3d555c392e5f995a" + integrity sha512-g2zOmFb63p6XcZ/zeMWKYP8YKQYNWnhJmi6K71Ql4EAFTAay31xF0PBPtdBCCfQ0fiETgWTMxKtySAVI/Od6aQ== + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" + browserslist "^4.0.0" + caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30001170" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001170.tgz#3417e94e73536b5bf567e9e9c4b7c1901c408c6a" - integrity sha512-NzQ5cfHv/pCgVbNWl9eIILms/hb57N+8Ku2yf2IOkBCmYSF4pweMtLTbBAwN/LzKPEtxE42hhTz0sb8gBlkPXA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001043: + version "1.0.30001048" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" + integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== + +caniuse-lite@^1.0.30001135: + version "1.0.30001142" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001142.tgz#a8518fdb5fee03ad95ac9f32a9a1e5999469c250" + integrity sha512-pDPpn9ankEpBFZXyCv2I4lh1v/ju+bqb78QfKf+w9XgDAFWBwSYPswXqprRdrgQWK0wQnpIbfwRjNHO1HWqvoQ== + +canonicalize@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.1.tgz#657b4f3fa38a6ecb97a9e5b7b26d7a19cc6e0da9" + integrity sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.1.3: +cbor@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.1.0.tgz#c3be220dcbbd96a338d279a664237aed3f596904" + integrity sha512-qzEc7kUShdMbWTaUH7X+aHW8owvBU3FS0dfYR1lGYpoZr0mGJhhojLlZJH653x/DfeMZ56h315FRNBUIG1R7qg== + dependencies: + bignumber.js "^9.0.0" + nofilter "^1.0.4" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@4.1.0, chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -761,39 +2239,110 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-more-types@2.24.0, check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chokidar@^2.0.0: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== +character-parser@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" + is-regex "^1.0.3" -chokidar@^3.3.1: +chart.js@2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== + dependencies: + chartjs-color "^2.1.0" + moment "^2.10.2" + +chartjs-color-string@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.1.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== + dependencies: + chartjs-color-string "^0.6.0" + color-convert "^1.9.3" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +cheerio-httpcli@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/cheerio-httpcli/-/cheerio-httpcli-0.7.4.tgz#f72e23e6af6c5cc250e7ced325f2a601cdbdb63d" + integrity sha512-D2Chqfwdu0xQ/xcX8zxB14I+mT+J5TO9yJlXczcV35clYLKaRnrweAjNrAayyE1fRKTk5JNzN0yhZpVdNP/aXQ== + dependencies: + "@types/cheerio" "^0.22.10" + async "^2.6.2" + cheerio "^0.22.0" + colors "^1.3.3" + foreach "^2.0.5" + he "^1.2.0" + iconv-lite "^0.4.24" + import-fresh "^3.0.0" + jschardet "^2.1.0" + object-assign "^4.1.1" + os-locale "^3.1.0" + prettyjson "^1.2.1" + request "^2.88.0" + rsvp "^4.8.4" + spawn-sync "^2.0.0" + tough-cookie "^3.0.1" + type-of "^2.0.1" + valid-url "^1.0.9" + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@3.4.3, "chokidar@>=2.0.0 <4.0.0", chokidar@^2.0.0, chokidar@^2.1.2, chokidar@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== @@ -808,17 +2357,27 @@ chokidar@^3.3.1: optionalDependencies: fsevents "~2.1.2" -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: - chalk "^1.1.3" + tslib "^1.9.0" + +clamp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" + integrity sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ= class-utils@^0.3.5: version "0.3.6" @@ -830,34 +2389,42 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +clean-css@^4.1.11, clean-css@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== dependencies: - restore-cursor "^3.1.0" + source-map "~0.6.0" -cli-table3@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== +cli-highlight@2.1.4, cli-highlight@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b" + integrity sha512-s7Zofobm20qriqDoU9sXptQx0t2R9PEgac92mENNm7xaEe1hn71IIMsXMK+6encA6WRCWWxIGQbipr3q998tlQ== dependencies: - string-width "^4.2.0" - optionalDependencies: - colors "1.4.0" + chalk "^3.0.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^5.1.1" + yargs "^15.0.0" -cli-truncate@^2.1.0: +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" cliui@^3.2.0: version "3.2.0" @@ -868,21 +2435,50 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.1.tgz#a4cb67aad45cd83d8d05128fc9f4d8fbb887e6b3" + integrity sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" @@ -897,11 +2493,43 @@ cloneable-readable@^1.0.0: process-nextick-args "^2.0.0" readable-stream "^2.3.5" -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= +cluster-key-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" + integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== + +co-body@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124" + integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ== dependencies: + inflation "^2.0.0" + qs "^6.4.0" + raw-body "^2.2.0" + type-is "^1.6.14" + +co-body@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" + integrity sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw== + dependencies: + inflation "^2.0.0" + qs "^6.5.2" + raw-body "^2.3.3" + type-is "^1.6.16" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" q "^1.1.2" code-point-at@^1.0.0: @@ -926,7 +2554,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0: +color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -950,72 +2578,73 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== dependencies: color-name "^1.0.0" + simple-swizzle "^0.2.2" color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= +color@^3.0.0, color@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" + color-convert "^1.9.1" + color-string "^1.5.2" -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@1.4.0: +colors@^1.1.2, colors@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= - -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@^2.20.0: +command-line-usage@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6" + integrity sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw== + dependencies: + array-back "^4.0.0" + chalk "^2.4.2" + table-layout "^1.0.0" + typical "^5.2.0" + +commander@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" @@ -1027,7 +2656,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0: +concat-stream@^1.5.2, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1037,39 +2666,169 @@ concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -convert-source-map@^1.5.0: +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +consolidate@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +consolidate@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== + dependencies: + bluebird "^3.7.2" + +constantinople@^3.0.1, constantinople@^3.1.2, constantinople@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" + integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== + dependencies: + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.1" + +content-disposition@0.5.3, content-disposition@~0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.X, convert-source-map@^1.5.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" +cookies@~0.7.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.3.tgz#7912ce21fbf2e8c2da70cf1c3f351aecf59dadfa" + integrity sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A== + dependencies: + depd "~1.1.2" + keygrip "~1.0.3" + +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-props@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" - integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== dependencies: - each-props "^1.3.2" - is-plain-object "^5.0.0" + each-props "^1.3.0" + is-plain-object "^2.0.1" + +copy-to@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= + +core-js@3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f" + integrity sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +cron-parser@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.13.0.tgz#6f930bb6f2931790d2a9eec83b3ec276e27a6725" + integrity sha512-UWeIpnRb0eyoWPVk+pD3TDpNx3KCFQeezO224oJIkktBrcW6RoAPOx5zIKprZGfk6vcYSmA8yQXItejSaDBhbQ== + dependencies: + is-nan "^1.2.1" + moment-timezone "^0.5.25" + +cross-env@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" + integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw== dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1078,104 +2837,208 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-color-names@0.0.4: +cross-spawn@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= -cssnano@^3.0.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" + postcss "^7.0.1" + timsort "^0.3.0" -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= +css-loader@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" + integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -cypress@10.7.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.7.0.tgz#2d37f8b9751c6de33ee48639cb7e67a2ce593231" - integrity sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ== - dependencies: - "@cypress/request" "^2.88.10" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.6.0" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^5.1.0" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "^6.4.3" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.6" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - request-progress "^3.0.0" + camelcase "^6.2.0" + cssesc "^3.0.0" + icss-utils "^5.0.0" + loader-utils "^2.0.0" + postcss "^8.1.4" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" semver "^7.3.2" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - yauzl "^2.10.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +css@2.X, css@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" + integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== + dependencies: + cssom "~0.3.6" + +csstype@^2.6.8: + version "2.6.13" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" + integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== d@1, d@^1.0.1: version "1.0.1" @@ -1192,49 +3055,140 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -dayjs@^1.10.4: - version "1.10.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" - integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== - -debug@4.3.2, debug@^4.1.1, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== dependencies: - ms "2.1.2" + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" -debug@^2.2.0, debug@^2.3.3: +dateformat@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug-fabulous@1.X: + version "1.1.0" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" + integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== + dependencies: + debug "3.X" + memoizee "0.4.X" + object-assign "4.X" + +debug@2, debug@^2.2.0, debug@^2.3.3, debug@^2.5.2: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@3.X, debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== dependencies: ms "2.1.2" -decamelize@^1.1.1, decamelize@^1.1.2: +debuglog@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decimal.js@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" + integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-entries@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/deep-entries/-/deep-entries-3.1.0.tgz#e456aa791d01b045641c75e41e170c0c95a9d472" + integrity sha512-pCpcCqx/hclnT2e4mMlM9geG8XIaxWN+yNKJHHwu1FZyYKErKU/fPztYYSk2HwnqRPf55cDEXraV6MLv8I5FrA== + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + default-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" @@ -1247,7 +3201,12 @@ default-resolution@^2.0.0: resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= -define-properties@^1.1.2: +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -1276,21 +3235,79 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +denque@^1.1.0, denque@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" + integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== + +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@2.X: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff@4.0.2, diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1298,10 +3315,98 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +diskusage@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/diskusage/-/diskusage-1.1.3.tgz#680d7dbf1b679168a195c9240eb3552cbd2c067b" + integrity sha512-EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ== + dependencies: + es6-promise "^4.2.5" + nan "^2.14.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +double-ended-queue@2.1.0-0: + version "2.1.0-0" + resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" + integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= duplexify@^3.6.0: version "3.7.1" @@ -1313,7 +3418,7 @@ duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -each-props@^1.3.2: +each-props@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== @@ -1329,23 +3434,94 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.2.7: - version "1.3.633" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" - integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +editions@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" + integrity sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg== + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.413: + version "1.3.418" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz#840021191f466b803a873e154113620c9f53cec6" + integrity sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug== + +electron-to-chromium@^1.3.571: + version "1.3.576" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.576.tgz#2e70234484e03d7c7e90310d7d79fd3775379c34" + integrity sha512-uSEI0XZ//5ic+0NdOqlxp0liCD44ck20OAGyLMSymIWTEAtHKVJi6JM18acOnRgUgX7Q65QqnI+sNncNvIy8ew== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +enhanced-resolve@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" + integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.0.0" + +enquirer@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" + integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA== + dependencies: + ansi-colors "^3.2.1" + enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -1353,14 +3529,72 @@ enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" -error-ex@^1.2.0: +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0, entities@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +envinfo@^7.7.3: + version "7.7.3" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" + integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: +error-inject@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" + integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc= + +es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== @@ -1378,6 +3612,11 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" +es6-promise@^4.2.5: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -1386,7 +3625,7 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -es6-weak-map@^2.0.1: +es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== @@ -1396,40 +3635,250 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +escalade@^3.0.2, escalade@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" + integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-regexp@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" + integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= +escodegen@^1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" -eventemitter2@^6.4.3: - version "6.4.4" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" - integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== +eslint-plugin-vue@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.1.0.tgz#832d83e4e1e480c7285b2bc3ff1076cd0dca7a5b" + integrity sha512-9dW7kj8/d2IkDdgNpvIhJdJ3XzU3x4PThXYMzWt49taktYnGyrTY6/bXCYZ/VtQKU9kXPntPrZ41+8Pw0Nxblg== + dependencies: + eslint-utils "^2.1.0" + natural-compare "^1.4.0" + semver "^7.3.2" + vue-eslint-parser "^7.1.1" -execa@4.1.0: +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@7.12.1: + version "7.12.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.1.tgz#bd9a81fa67a6cfd51656cdb88812ce49ccec5801" + integrity sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1, esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.1.tgz#f8e030fb21cefa183b44b7ad516b747434e7a3e0" + integrity sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -1444,27 +3893,10 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== expand-brackets@^2.1.4: version "2.1.4" @@ -1479,6 +3911,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -1527,17 +3964,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -1548,7 +3974,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fancy-log@^1.3.2: +fancy-log@1.3.3, fancy-log@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== @@ -1558,42 +3984,75 @@ fancy-log@^1.3.2: parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" + glob-parent "^5.1.0" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== dependencies: reusify "^1.0.4" -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= +feed@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" + integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== dependencies: - pend "~1.2.0" + xml-js "^1.6.11" -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +fibers@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fibers/-/fibers-5.0.0.tgz#3a60e0695b3ee5f6db94e62726716fa7a59acc41" + integrity sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg== dependencies: - escape-string-regexp "^1.0.5" + detect-libc "^1.0.3" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +figlet@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.3.0.tgz#c49e3d92907ba13bebadc7124f76ba71f1f32ef0" + integrity sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg== + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-type@16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.0.1.tgz#d12d19c716e49d79e0a27bcf502961498b0b9928" + integrity sha512-rwXqMZiizJd0uXZE52KN2DtPBAV99qz9cUTHHt8pSyaQzgVYrHJGR0qt2p4N/yzHEL/tGrlB/TgawQb4Fnxxyw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.0.3" + token-types "^2.0.0" + typedarray-to-buffer "^3.1.5" fill-range@^4.0.0: version "4.0.0" @@ -1612,6 +4071,23 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -1620,6 +4096,28 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" @@ -1656,10 +4154,32 @@ flagged-respawn@^1.0.0: resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fluent-ffmpeg@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74" + integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ= + dependencies: + async ">=0.2.9" + which "^1.1.1" flush-write-stream@^1.0.2: version "1.1.1" @@ -1669,10 +4189,10 @@ flush-write-stream@^1.0.2: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== +follow-redirects@^1.10.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" @@ -1686,11 +4206,25 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -1707,20 +4241,22 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + minipass "^3.0.0" fs-mkdirp-stream@^1.0.0: version "1.0.0" @@ -1735,14 +4271,6 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" @@ -1753,11 +4281,66 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-paths@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/get-paths/-/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38" + integrity sha512-0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA== + dependencies: + pify "^4.0.1" + +get-port@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -1765,23 +4348,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -1789,6 +4360,11 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -1797,14 +4373,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -1827,6 +4396,11 @@ glob-stream@^6.1.0: to-absolute-glob "^2.0.0" unique-stream "^2.0.2" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob-watcher@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" @@ -1839,7 +4413,7 @@ glob-watcher@^5.0.3: just-debounce "^1.0.0" object.defaults "^1.1.0" -glob@^7.1.1, glob@^7.1.3: +glob@7.1.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -1851,13 +4425,6 @@ glob@^7.1.1, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -1878,16 +4445,23 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" slash "^3.0.0" glogg@^1.0.0: @@ -1897,15 +4471,44 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@11.8.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.0.tgz#be0920c3586b07fd94add3b5b27cb28f49e6545f" + integrity sha512-k9noyoIIY9EejuhaBNLyZ31D5328LeqnyPNXJQb2XlJZcKakLqN5m6O/ikhq/0lw56kUYS54fVm+D1x57YC9oQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== -graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== gulp-cli@^2.2.0: version "2.2.0" @@ -1931,42 +4534,60 @@ gulp-cli@^2.2.0: v8flags "^3.0.1" yargs "^7.1.0" -gulp-cssnano@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/gulp-cssnano/-/gulp-cssnano-2.1.3.tgz#02007e2817af09b3688482b430ad7db807aebf72" - integrity sha512-r8qdX5pTXsBb/IRm9loE8Ijz8UiPW/URMC/bKJe4FPNHRaz4aEx8Bev03L0FYHd/7BSGu/ebmfumAkpGuTdenA== - dependencies: - buffer-from "^1.0.0" - cssnano "^3.0.0" - object-assign "^4.0.1" - plugin-error "^1.0.1" - vinyl-sourcemaps-apply "^0.2.1" - gulp-rename@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== -gulp-replace@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.1.3.tgz#8641cdca78e683e8573ca4a012e7e4ebb7e4db60" - integrity sha512-HcPHpWY4XdF8zxYkDODHnG2+7a3nD/Y8Mfu3aBgMiCFDW3X2GiOKXllsAmILcxe3KZT2BXoN18WrpEFm48KfLQ== +gulp-replace@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.0.0.tgz#b32bd61654d97b8d78430a67b3e8ce067b7c9143" + integrity sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw== dependencies: - "@types/node" "^14.14.41" - "@types/vinyl" "^2.0.4" - istextorbinary "^3.0.0" - replacestream "^4.0.3" - yargs-parser ">=5.0.0-security.0" + istextorbinary "2.2.1" + readable-stream "^2.0.1" + replacestream "^4.0.0" -gulp-terser@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/gulp-terser/-/gulp-terser-2.1.0.tgz#149b693a1adbde922807b60b844bb7351dafbde1" - integrity sha512-lQ3+JUdHDVISAlUIUSZ/G9Dz/rBQHxOiYDQ70IVWFQeh4b33TC1MCIU+K18w07PS3rq/CVc34aQO4SUbdaNMPQ== +gulp-sourcemaps@2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz#a3f002d87346d2c0f3aec36af7eb873f23de8ae6" + integrity sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg== dependencies: + "@gulp-sourcemaps/identity-map" "1.X" + "@gulp-sourcemaps/map-sources" "1.X" + acorn "5.X" + convert-source-map "1.X" + css "2.X" + debug-fabulous "1.X" + detect-newline "2.X" + graceful-fs "4.X" + source-map "~0.6.0" + strip-bom-string "1.X" + through2 "2.X" + +gulp-tslint@8.1.4: + version "8.1.4" + resolved "https://registry.yarnpkg.com/gulp-tslint/-/gulp-tslint-8.1.4.tgz#8519ee25ff97aa749e691d4af0fdaccce5f01f7a" + integrity sha512-wBoZIEMJRz9urHwolsvQpngA9l931p6g/Liwz1b/KrsVP6jEBFZv/o0NS1TFCQZi/l8mXxz8+v3twhf4HOXxPQ== + dependencies: + "@types/fancy-log" "1.3.0" + ansi-colors "^1.0.1" + fancy-log "1.3.3" + map-stream "~0.0.7" + plugin-error "1.0.1" + through "~2.3.8" + +gulp-typescript@6.0.0-alpha.1: + version "6.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz#fcb0dbbc79c34201f0945c6323c194a8f5455a04" + integrity sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q== + dependencies: + ansi-colors "^4.1.1" plugin-error "^1.0.1" - terser "^5.9.0" - through2 "^4.0.2" - vinyl-sourcemaps-apply "^0.2.1" + source-map "^0.7.3" + through2 "^3.0.1" + vinyl "^2.2.0" + vinyl-fs "^3.0.3" gulp@4.0.2: version "4.0.2" @@ -1985,6 +4606,38 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0, har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +hard-source-webpack-plugin@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz#a99071e25b232f1438a5bc3c99f10a3869e4428e" + integrity sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== + dependencies: + chalk "^2.4.1" + find-cache-dir "^2.0.0" + graceful-fs "^4.1.11" + lodash "^4.15.0" + mkdirp "^0.5.1" + node-object-hash "^1.2.0" + parse-json "^4.0.0" + pkg-dir "^3.0.0" + rimraf "^2.6.2" + semver "^5.6.0" + tapable "^1.0.0-beta.5" + webpack-sources "^1.0.1" + write-json-file "^2.3.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -1992,21 +4645,26 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: +has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -2038,13 +4696,43 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hcaptcha@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/hcaptcha/-/hcaptcha-0.0.2.tgz#18f4c055a2315db9f732ac77f9d0e30026bb2eb7" + integrity sha512-wWOncj/sY+q8s7tV12tjn3cFNoQhSu3l/7nTJi4QkFKALQi9XnduoXrV/KFzLg5lnB+5560zSAoi9YdYPDw6Eg== + +he@1.2.0, he@^1.1.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^9.6.0: + version "9.18.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== + homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -2053,54 +4741,251 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -html-comment-regex@^1.1.0: +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-minifier@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-assert@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.7.2" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.3, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-headers@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/http-headers/-/http-headers-3.0.2.tgz#5147771292f0b39d6778d930a3a59a76fc7ef44d" + integrity sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw== + dependencies: + next-line "^1.1.0" + +http-proxy-agent@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-signature@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.5.tgz#9f19496ffbf3227298d7b5f156e0e1a948678683" + integrity sha512-NwoTQYSJoFt34jSBbwzDHDofoA61NGXzu6wXh95o1Ry62EnmKjXb/nR/RknLeZ3G/uGwrlKNY2z7uPt+Cdl7Tw== dependencies: assert-plus "^1.0.0" - jsprim "^2.0.2" + jsprim "^1.2.2" sshpk "^1.14.1" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +http_ece@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.1.0.tgz#74780c6eb32d8ddfe9e36a83abcd81fe0cd4fb75" + integrity sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA== + dependencies: + urlsafe-base64 "~1.0.0" + +https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +humanize-number@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" + integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg= -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +icss-utils@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.0.0.tgz#03ed56c3accd32f9caaf1752ebf64ef12347bb84" + integrity sha512-aF2Cf/CkEZrI/vsu5WI/I+akFgdbwQHVE9YRZxATrhH4PVIe6a3BIjwjEcW+z+jP/hNh+YvM3lAAn1wJQ6opSg== + +idb-keyval@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-3.2.0.tgz#cbbf354deb5684b6cdc84376294fc05932845bd6" + integrity sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ== + +ieee754@1.1.13, ieee754@^1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immutable@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= +inflation@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" + integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2109,31 +4994,71 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +insert-text-at-cursor@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz#1819607680ec1570618347c4cd475e791faa25da" + integrity sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ== + +install-artifact-from-github@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.1.3.tgz#552f1ec3e693f970726e3f68018ff5885665ec9e" + integrity sha512-iNuncO/pI1w0UOrebs9dwwVpXqERkszPcb7AYq2hbsJDS3X+XdZ+E5kE91EBSc98mjvCMWOoBa1Zk3hVeP1ddA== interpret@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ioredis@^4.14.1: + version "4.16.3" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.16.3.tgz#6a6b85830206fd98353b7ff8536521f17943be53" + integrity sha512-Ejvcs2yW19Vq8AipvbtfcX3Ig8XG9EAyFOvGbhI/Q1QoVOK9ZdgY092kdOyOWIYBnPHjfjMJhU9qhsnp0i0K1w== + dependencies: + cluster-key-slot "^1.1.0" + debug "^4.1.1" + denque "^1.1.0" + lodash.defaults "^4.2.0" + lodash.flatten "^4.4.0" + redis-commands "1.5.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.0.1" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -2166,12 +5091,10 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@~2.1.0: version "2.1.0" @@ -2185,12 +5108,22 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: - ci-info "^3.1.1" + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" is-core-module@^2.0.0: version "2.0.0" @@ -2213,6 +5146,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -2231,6 +5169,19 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" + integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8= + dependencies: + acorn "~4.0.2" + object-assign "^4.0.1" + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2255,11 +5206,21 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -2274,26 +5235,25 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== +is-nan@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.0.tgz#85d1f5482f7051c2019f5673ccebdb06f3b0db03" + integrity sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ== dependencies: - is-extglob "^2.1.1" - -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" + define-properties "^1.1.3" is-negated-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" + integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + dependencies: + lodash.isfinite "^3.3.2" + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2311,16 +5271,21 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2328,10 +5293,22 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-promise@^2.0.0, is-promise@^2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.3, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" is-relative@^1.0.0: version "1.0.0" @@ -2340,19 +5317,48 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= +is-svg@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" + integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== + dependencies: + html-comment-regex "^1.1.2" + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== dependencies: html-comment-regex "^1.1.0" -is-typedarray@~1.0.0: +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -2364,11 +5370,6 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -2379,16 +5380,31 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -isarray@1.0.0, isarray@~1.0.0: +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -2411,89 +5427,255 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istextorbinary@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-3.3.0.tgz#06b1c57d948da11461bd237c00ce09e9902964f2" - integrity sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ== +istextorbinary@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" + integrity sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw== dependencies: - binaryextensions "^2.2.0" - textextensions "^3.2.0" + binaryextensions "2" + editions "^1.3.3" + textextensions "2" -joi@^17.4.0: - version "17.4.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" - integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== +jest-worker@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" + integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" -js-base64@^2.1.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== +jmespath@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +jpeg-js@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.1.tgz#937a3ae911eb6427f151760f8123f04c8bfe6ef7" + integrity sha512-jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw== + +js-beautify@^1.6.12: + version "1.11.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" + integrity sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A== dependencies: - argparse "^2.0.1" + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~1.0.3" + nopt "^4.0.3" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= +js-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.14.0, js-yaml@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^4.0.0" + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +jschardet@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-2.1.1.tgz#af6f8fd0b3b0f5d46a8fd9614a4fce490575c184" + integrity sha512-pA5qG9Zwm8CBpGlK/lo2GE9jPxwqRgMV7Lzc/1iaPccw6v4Rhj8Zg2BTyrdmHmxlJojnbLupLeRnaPLsq03x6Q== + +jsdom@16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== +json5-loader@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/json5-loader/-/json5-loader-4.0.1.tgz#6d17a1181e8f3c3d9204dca2a4ce4627306c8498" + integrity sha512-c9viNZlZTz0MTIcf/4qvek5Dz1/PU3DNCB4PwUhlEZIV3qb1bSD6vQQymlV17/Wm6ncra1aCvmIPsuRj+KfEEg== dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" + json5 "^2.1.3" + loader-utils "^2.0.0" + schema-utils "^3.0.0" -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== +json5@2.1.3, json5@^2.1.2, json5@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonld@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-3.2.0.tgz#be31b2ee9d5ed490d1e912263e31ca327f5a157f" + integrity sha512-re7FofG1iklGDlAthC4u5AMMt4l3qRNQbSI0nZTJu9vJG2R0QO6/yIhh8ZIh/M9Gg+EjXsULgQV/HEsltoVZBg== + dependencies: + canonicalize "^1.0.1" + lru-cache "^5.1.1" + object.fromentries "^2.0.2" + rdf-canonize "^1.0.2" + request "^2.88.0" + semver "^6.3.0" + xmldom "0.1.19" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.4.0" + json-schema "0.2.3" verror "1.10.0" +jsrsasign@8.0.20: + version "8.0.20" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-8.0.20.tgz#37d8029c9d8f794d8ac8d8998bce319921491f11" + integrity sha512-JTXt9+nqdynIB8wFsS6e8ffHhIjilhywXwdaEVHSj9OVmwldG2H0EoCqkQ+KXkm2tVqREfH/HEmklY4k1/6Rcg== + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + just-debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + +katex@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.12.0.tgz#2fb1c665dbd2b043edcf8a1f5c555f46beaa0cb9" + integrity sha512-y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg== + dependencies: + commander "^2.19.0" + +keygrip@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc" + integrity sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g== + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -2518,6 +5700,179 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +koa-bodyparser@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" + integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== + dependencies: + co-body "^6.0.0" + copy-to "^2.0.1" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-favicon@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/koa-favicon/-/koa-favicon-2.1.0.tgz#c430cc594614fb494adcb5ee1196a2f7f53ea442" + integrity sha512-LvukcooYjxKtnZq0RXdBup+JDhaHwLgnLlDHB/xvjwQEjbc4rbp/0WkmOzpOvaHujc+fIwPear0dpKX1V+dHVg== + dependencies: + mz "^2.7.0" + +koa-is-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" + integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= + +koa-json-body@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/koa-json-body/-/koa-json-body-5.3.0.tgz#64aad3f400adfb81df54b63f7a5eb38bad62d980" + integrity sha1-ZKrT9ACt+4HfVLY/el6zi61i2YA= + dependencies: + co-body "^5.0.0" + +koa-logger@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" + integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg== + dependencies: + bytes "^3.1.0" + chalk "^2.4.2" + humanize-number "0.0.2" + passthrough-counter "^1.0.0" + +koa-mount@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== + dependencies: + debug "^4.0.1" + koa-compose "^4.1.0" + +koa-send@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-send@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.0.tgz#5e8441e07ef55737734d7ced25b842e50646e7eb" + integrity sha512-90ZotV7t0p3uN9sRwW2D484rAaKIsD8tAVtypw/aBU+ryfV+fR2xrcAwhI8Wl6WRkojLUs/cB9SBSCuIb+IanQ== + dependencies: + debug "^3.1.0" + http-errors "^1.6.3" + mz "^2.7.0" + resolve-path "^1.4.0" + +koa-slow@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/koa-slow/-/koa-slow-2.1.0.tgz#39007ca628c620f2b307b90dbf423d7a0c9be971" + integrity sha1-OQB8pijGIPKzB7kNv0I9egyb6XE= + dependencies: + lodash.isregexp "3.0.5" + q "1.4.1" + +koa-views@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-6.3.1.tgz#8d23fa2118c71e9119fb47a75a58053345e37356" + integrity sha512-weIaPs2cCHWT2qK8qHRmwlZ29xRCvUVy1v/z12AGavVV5j4QIU0W/Y7OVBBu1sTkcO9dDJ25ajGYHGZ/aY43IQ== + dependencies: + consolidate "0.15.1" + debug "^4.1.0" + get-paths "0.0.7" + koa-send "^5.0.0" + mz "^2.4.0" + pretty "^2.0.0" + +koa@2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501" + integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "~3.1.0" + delegates "^1.0.0" + depd "^1.1.2" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +koa@2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.8.1.tgz#98e13b267ab8a1868f015a4b41b5a52e31457ce5" + integrity sha512-iCgjRkntcVud5amnioi+79r7TPVhKPfCY8UzL9GjyU+nIWTE9xsqyrJ6kib3InT9JYRyUu9Y67i5apCjf997TQ== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.7.1" + debug "~3.1.0" + delegates "^1.0.0" + depd "^1.1.2" + destroy "^1.0.4" + error-inject "^1.0.0" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + koa-is-json "^1.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +langmap@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/langmap/-/langmap-0.0.16.tgz#2fe3e98a531fec0fec546624ebe168c2855bab56" + integrity sha512-AtYvBK7BsDvWwnSfmO7CfgeUy7GUT1wK3QX8eKH/Ey/eXodqoHuAtvdQ82hmWD9QVFVKnuiNjym9fGY4qSJeLA== + last-run@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" @@ -2526,10 +5881,10 @@ last-run@^1.1.0: default-resolution "^2.0.0" es6-weak-map "^2.0.1" -lazy-ass@1.6.0, lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= lazystream@^1.0.0: version "1.0.0" @@ -2545,6 +5900,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + lead@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" @@ -2552,6 +5914,27 @@ lead@^1.0.0: dependencies: flush-write-stream "^1.0.2" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + liftoff@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" @@ -2566,18 +5949,25 @@ liftoff@^3.1.0: rechoir "^0.6.2" resolve "^1.1.7" -listr2@^3.8.3: - version "3.11.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" - integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= dependencies: - cli-truncate "^2.1.0" - colorette "^1.2.2" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.6.7" - through "^2.3.8" - wrap-ansi "^7.0.0" + isarray "^1.0.0" + isobject "^2.0.0" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" load-json-file@^1.0.0: version "1.1.0" @@ -2590,50 +5980,238 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +loader-runner@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" + integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= + +lodash.isregexp@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/lodash.isregexp/-/lodash.isregexp-3.0.5.tgz#e0f596242f2fa228a840086b6c8ad82e4b71fd2d" + integrity sha1-4PWWJC8voiioQAhrbIrYLktx/S0= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.once@^4.1.1: +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.throttle@^4.0.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: +log-symbols@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + chalk "^4.0.0" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +lookup-dns-cache@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lookup-dns-cache/-/lookup-dns-cache-2.1.0.tgz#6362340e269071e20b6f0bcf51da98873411e051" + integrity sha512-tLcJ7rkqWzZ77D7pN5R2ceWKZsIJ5/6HaLQdmhw3M9fBQQmqS4LZqvBcstKzQ6kuZet5LY4TWTiShx7QmO+Q8w== dependencies: - yallist "^4.0.0" + async "2.6.0" + lodash "^4.17.10" + rr "0.1.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-iterator@^1.0.0: version "1.0.1" @@ -2642,15 +6220,22 @@ make-iterator@^1.0.0: dependencies: kind-of "^6.0.2" +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= +map-stream@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" + integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg= map-visit@^1.0.0: version "1.0.0" @@ -2659,6 +6244,22 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-it-anchor@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-6.0.0.tgz#2ec2554fa4d065f2d1ca2422a50c14c10cf67c2a" + integrity sha512-WOcIGhG1M1W94VV5cmSZAMSKi2vqCxpLAqQZ0wSO9RzQ9Rbls7ecjRVXp5DIPoXrNy9bjv9K7M0nYqNk60ctxQ== + +markdown-it@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.1.tgz#b54f15ec2a2193efa66dda1eb4173baea08993d6" + integrity sha512-aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" @@ -2669,22 +6270,85 @@ matchdep@^2.0.0: resolve "^1.4.0" stack-trace "0.0.10" -math-expression-evaluator@^1.2.14: - version "1.3.7" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.7.tgz#1b62225db86af06f7ea1fd9576a34af605a5b253" - integrity sha512-nrbaifCl42w37hYd6oRLvoymFK42tWB+WQTMFtksDGQMi5GvlJwnz/CsS30FFAISFLtX+A0csJ0xLiuuyyec7w== +material-colors@^1.0.0: + version "1.2.6" + resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" + integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memoizee@0.4.X: + version "0.4.14" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -2703,42 +6367,77 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: braces "^3.0.1" - picomatch "^2.2.3" + picomatch "^2.0.5" mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" -mimic-fn@^2.1.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" mixin-deep@^1.2.0: version "1.3.2" @@ -2748,37 +6447,130 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@~0.5.1: +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39" + integrity sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.4.3" + debug "4.2.0" + diff "4.0.2" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "3.14.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.2" + nanoid "3.1.12" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "7.2.0" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.0.2" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "2.0.0" + +moji@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moji/-/moji-0.5.1.tgz#088eecd1c22c8f31a240adcf9c95e54f33eb54fb" + integrity sha1-CI7s0cIsjzGiQK3PnJXlTzPrVPs= + dependencies: + object-assign "^3.0.0" + +moment-timezone@^0.5.25: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.10.2, moment@^2.22.2: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.2: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multer@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" mute-stdout@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +mz@^2.4.0, mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.14.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + +nan@^2.14.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@3.1.12: + version "3.1.12" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" + integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== + +nanoid@^3.1.16: + version "3.1.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64" + integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== nanomatch@^1.2.9: version "1.2.13" @@ -2797,11 +6589,155 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a" + integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nested-property@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nested-property/-/nested-property-4.0.0.tgz#a67b5a31991e701e03cdbaa6453bc5b1011bb88d" + integrity sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA== + +next-line@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" + integrity sha1-/K5XhTBStqm66CCOQN19PC0wRgM= + +next-tick@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-abi@^2.7.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.16.0.tgz#7df94e9c0a7a189f4197ab84bac8089ef5894992" + integrity sha512-+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA== + dependencies: + semver "^5.4.1" + +node-addon-api@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" + integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-forge@0.10.0, node-forge@^0.9.1: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-gyp-build@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== + +node-gyp@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" + +node-object-hash@^1.2.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" + integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== + +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + +node-releases@^1.1.61: + version "1.1.61" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" + integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== + +nodemailer@6.4.15: + version "6.4.15" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.4.15.tgz#da5dbb78b8376e34c232c6aa3d2d65cfe17440e9" + integrity sha512-2/z13dBTWdgTRlxVMAK6C13dCI22GEShET4+jFLlQsxpblxYhojnucfcTZO1QBu5CsHvABsBj2JCGO3vl0HSQA== + +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + +nopt@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -2812,7 +6748,7 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= @@ -2824,20 +6760,15 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== now-and-later@^2.0.0: version "2.0.1" @@ -2846,28 +6777,72 @@ now-and-later@^2.0.0: dependencies: once "^1.3.2" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +npmlog@^4.0.1, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -object-assign@^4.0.1, object-assign@^4.1.0: +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth@0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= + +object-assign-deep@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-assign-deep/-/object-assign-deep-0.4.0.tgz#43505d3679abb9686ab359b97ac14cc837a9d143" + integrity sha512-54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q== + +object-assign@4.X, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -2877,7 +6852,12 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -2909,6 +6889,24 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: for-own "^1.0.0" isobject "^3.0.0" +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" @@ -2932,6 +6930,23 @@ object.reduce@^1.0.0: for-own "^1.0.0" make-iterator "^1.0.0" +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2939,13 +6954,47 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + +opentype.js@^0.4.3: + version "0.4.11" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-0.4.11.tgz#281a2390639cc15931c955d8d63c14a7c7772b41" + integrity sha1-KBojkGOcwVkxyVXY1jwUp8d3K0E= + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" @@ -2953,6 +7002,11 @@ ordered-read-streams@^1.0.0: dependencies: readable-stream "^2.0.1" +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" @@ -2960,17 +7014,142 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: - aggregate-error "^3.0.0" + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +os-utils@0.0.14: + version "0.0.14" + resolved "https://registry.yarnpkg.com/os-utils/-/os-utils-0.0.14.tgz#29e511697b1982b8c627722175fe39797ef64156" + integrity sha1-KeURaXsZgrjGJ3Ihdf45eX72QVY= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@2.0.0, p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + +param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parent-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= parse-filepath@^1.0.1: version "1.0.2" @@ -2988,6 +7167,24 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parse-node-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -2998,11 +7195,43 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse5-htmlparser2-tree-adapter@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc" + integrity sha512-CF+TKjXqoqyDwHqBhFQ+3l5t83xYi6fVT1tQNg+Ye0JRLnTxWvIroCjEp1A0k4lneHNBGnICUf0cfYVYGEazqw== + dependencies: + parse5 "^5.1.1" + +parse5@5.1.1, parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +parsimmon@1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.16.0.tgz#2834e3db645b6a855ab2ea14fbaad10d82867e0f" + integrity sha512-tekGDz2Lny27SQ/5DzJdIK0lqsWwZ667SCLFIDCxaZM7VNgQjyKLbaL7FYPKpbjdxNAXFV/mSxkq5D2fnkW4pA== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +passthrough-counter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" + integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo= + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -3015,20 +7244,35 @@ path-exists@^2.0.0: dependencies: pinkie-promise "^2.0.0" -path-is-absolute@^1.0.0: +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@1.0.1, path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-root-regex@^0.1.0: version "0.1.2" @@ -3042,6 +7286,11 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-to-regexp@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" + integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -3056,38 +7305,92 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= +peek-readable@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz#250b08b7de09db8573d7fd8ea475215bbff14348" + integrity sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.7: +pg-connection-string@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10" + integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz#a560e433443ed4ad946b84d774b3f22452694dff" + integrity sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA== + +pg-protocol@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.3.0.tgz#3c8fb7ca34dbbfcc42776ce34ac5f537d6e34770" + integrity sha512-64/bYByMrhWULUaCd+6/72c9PMWhiVFs3EVxl9Ct6a3v/U8+rKgqP2w+kKg/BIGgMJyB+Bk/eNivT32Al+Jghw== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.4.2.tgz#2aa58166a23391e91d56a7ea57c6d99931c0642a" + integrity sha512-E9FlUrrc7w3+sbRmL1CSw99vifACzB2TjhMM9J5w9D1LIg+6un0jKkpHS1EQf2CWhKhec2bhrBLVMmUBDbjPRQ== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.4.0" + pg-pool "^3.2.2" + pg-protocol "^1.3.0" + pg-types "^2.1.0" + pgpass "1.x" + +pgpass@1.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1, picomatch@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pify@^2.0.0, pify@^2.2.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -3100,7 +7403,28 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -plugin-error@^1.0.1: +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +plugin-error@1.0.1, plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== @@ -3110,287 +7434,686 @@ plugin-error@^1.0.1: arr-union "^3.1.0" extend-shallow "^3.0.2" +pngjs@^3.3.0, pngjs@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +portscanner@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.2.0.tgz#6059189b3efa0965c9d96a56b958eb9508411cf1" + integrity sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== + dependencies: + async "^2.6.0" + is-number-like "^1.0.3" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= +postcss-calc@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" + integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== dependencies: - postcss "^5.0.14" + postcss "^7.0.0" -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== dependencies: - postcss "^5.0.4" + postcss "^7.0.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== dependencies: - postcss "^5.0.14" + postcss "^7.0.0" -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== dependencies: - postcss "^5.0.16" + postcss "^7.0.0" -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= +postcss-loader@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e" + integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw== dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.2" -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" - integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== dependencies: - postcss "^5.0.4" + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" vendors "^1.0.0" -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" uniqs "^2.0.0" -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: - postcss "^5.0.5" + postcss "^7.0.5" -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-3.2.2.tgz#ee390de0f9f18e761e1778dfb9be26685c02c51f" + integrity sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw== + dependencies: + generic-names "^2.0.1" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + string-hash "^1.1.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== dependencies: is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== dependencies: - postcss "^5.0.4" + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== dependencies: - flatten "^1.0.2" + dot-prop "^5.2.0" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= +postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= +postcss-value-parser@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== + +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@8.1.6, postcss@^8.1.4: + version "8.1.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.6.tgz#b022ba2cfb8701da234d073ed3128c5a384c35ff" + integrity sha512-JuifSl4h8dJ70SiMXKjzCxhalE6p2TnMHuq9G8ftyXj2jg6SXzqCsEuxMj9RkmJoO5D+Z9YrWunNkxqpRT02qg== dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.16" + source-map "^0.6.1" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +postcss@^7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" + integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +prebuild-install@^5.3.5: + version "5.3.5" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.5.tgz#e7e71e425298785ea9d22d4f958dbaccf8bb0e1b" + integrity sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp "^0.5.1" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= +pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +prettyjson@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" + integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= + dependencies: + colors "^1.1.2" + minimist "^1.2.0" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +prismjs@1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz#73c3400afc58a823dd7eed023f8e1ce9fd8977fa" + integrity sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w== + optionalDependencies: + clipboard "^2.0.0" + +probe-image-size@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4" + integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA== + dependencies: + deepmerge "^4.0.0" + needle "^2.5.2" + stream-parser "~0.3.1" + process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -ps-tree@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== +promise-limit@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" + integrity sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw== + +promise-sequential@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-sequential/-/promise-sequential-1.1.1.tgz#f79e8950ef86e7a7a85bf320452643592f6d2fb2" + integrity sha1-956JUO+G56eoW/MgRSZDWS9tL7I= + +promise.prototype.finally@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz#b8af89160c9c673cefe3b4c4435b53cfd0287067" + integrity sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA== dependencies: - event-stream "=3.3.4" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.0" + function-bind "^1.1.1" -psl@^1.1.28: +promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +pug-attrs@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" + integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ== + dependencies: + constantinople "^3.0.1" + js-stringify "^1.0.1" + pug-runtime "^2.0.5" + +pug-code-gen@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.2.tgz#ad0967162aea077dcf787838d94ed14acb0217c2" + integrity sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw== + dependencies: + constantinople "^3.1.2" + doctypes "^1.1.0" + js-stringify "^1.0.1" + pug-attrs "^2.0.4" + pug-error "^1.3.3" + pug-runtime "^2.0.5" + void-elements "^2.0.1" + with "^5.0.0" + +pug-error@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" + integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ== + +pug-filters@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7" + integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg== + dependencies: + clean-css "^4.1.11" + constantinople "^3.0.1" + jstransformer "1.0.0" + pug-error "^1.3.3" + pug-walk "^1.1.8" + resolve "^1.1.6" + uglify-js "^2.6.1" + +pug-lexer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd" + integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA== + dependencies: + character-parser "^2.1.1" + is-expression "^3.0.0" + pug-error "^1.3.3" + +pug-linker@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb" + integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg== + dependencies: + pug-error "^1.3.3" + pug-walk "^1.1.8" + +pug-load@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" + integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg== + dependencies: + object-assign "^4.1.0" + pug-walk "^1.1.8" + +pug-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9" + integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA== + dependencies: + pug-error "^1.3.3" + token-stream "0.0.1" + +pug-runtime@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" + integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw== + +pug-strip-comments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" + integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw== + dependencies: + pug-error "^1.3.3" + +pug-walk@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" + integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA== + +pug@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d" + integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw== + dependencies: + pug-code-gen "^2.0.2" + pug-filters "^3.1.1" + pug-lexer "^4.1.0" + pug-linker "^3.0.6" + pug-load "^2.0.12" + pug-parser "^5.0.1" + pug-runtime "^2.0.5" + pug-strip-comments "^1.0.4" + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -3416,33 +8139,133 @@ pumpify@^1.3.5: inherits "^2.0.3" pump "^2.0.0" -punycode@^2.1.1: +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@2.1.1, punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +pureimage@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/pureimage/-/pureimage-0.2.5.tgz#10c9d314bcdfba712229ec70c3849164f537c248" + integrity sha512-D/oP8uaS8HLIOPqaxeVU0ZcJHUwvvFjeclKwn0RBeZJn3TBtZgKn7FVBN5auuCHQTC4K/wDAHfkY/JOuGCiohQ== + dependencies: + jpeg-js "^0.4.1" + opentype.js "^0.4.3" + pngjs "^3.3.1" + +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +qrcode@1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" + integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== + dependencies: + buffer "^5.4.3" + buffer-alloc "^1.2.0" + buffer-from "^1.1.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^13.2.4" + +qs@^6.4.0, qs@^6.5.2: + version "6.9.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +random-seed@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/random-seed/-/random-seed-0.3.0.tgz#d945f2e1f38f49e8d58913431b8bf6bb937556cd" + integrity sha1-2UXy4fOPSejViRNDG4v2u5N1Vs0= + dependencies: + json-stringify-safe "^5.0.1" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +rangestr@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/rangestr/-/rangestr-0.0.1.tgz#f72ff9246f10f2a7d7c16e14616f617be2c2635a" + integrity sha1-9y/5JG8Q8qfXwW4UYW9he+LCY1o= + +ratelimiter@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ratelimiter/-/ratelimiter-3.4.1.tgz#fa69e94937413382a926aaa17aaeaa6263af4659" + integrity sha512-5FJbRW/Jkkdk29ksedAfWFkQkhbUrMx3QJGwMKAypeIiQf4yrLW+gtPKZiaWt4zPrtw1uGufOjGO7UGM6VllsQ== + +raw-body@^2.2.0, raw-body@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +rdf-canonize@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-1.1.0.tgz#61d1609bbdb3234b8f38c9c34ad889bf670e089d" + integrity sha512-DV06OnhVfl2zcZJQCt+YvU+hoZVgpyQpNFLeAmghq8RJybUxD3B4LRzlBquYS5k+LLd8/c3g5Gnhkqjw5qRMvg== + dependencies: + node-forge "^0.9.1" + semver "^6.3.0" + +re2@1.15.8: + version "1.15.8" + resolved "https://registry.yarnpkg.com/re2/-/re2-1.15.8.tgz#654dfbd889acc2649773a2b32dfb9feb357ca9bc" + integrity sha512-CZm4HMuNbY+LP5LjFQvBxbQmvS7iJiVR3w23Bk3jYxZFUj6wPiYRvDikyVpqHYLioVAWcgjG6F90Pk4z7ehUSg== + dependencies: + install-artifact-from-github "^1.1.3" + nan "^2.14.2" + node-gyp "^7.1.2" read-pkg-up@^1.0.1: version "1.0.1" @@ -3461,7 +8284,17 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@3: +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -3470,7 +8303,7 @@ readable-stream@3: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -3483,14 +8316,13 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== +readable-web-to-node-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz#4ca5408e70471069119d691934141a52de413955" + integrity sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA== dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" + "@types/readable-stream" "^2.3.9" + readable-stream "^3.6.0" readdirp@~3.3.0: version "3.3.0" @@ -3499,6 +8331,13 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +recaptcha-promise@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recaptcha-promise/-/recaptcha-promise-1.0.0.tgz#df16f208197fbfd571950cfb32ec3160e3909e0f" + integrity sha512-aiJNjKa13YqjF0QmiBUSFpUHjgjJAkRGBndbhHUrwyaxpGdzTxnsLlVEKZvh0gj75AJ/H8H6Bn9qCs8fVc3X1g== + dependencies: + axios "^0.20.0" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -3506,21 +8345,64 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" + resolve "^1.9.0" -reduce-function-call@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" - integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== +reconnecting-websocket@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" + integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== + +redis-commands@1.5.0, redis-commands@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" + integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg== + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + +redis-lock@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/redis-lock/-/redis-lock-0.1.4.tgz#e83590bee22b5f01cdb65bfbd88d988045356272" + integrity sha512-7/+zu86XVQfJVx1nHTzux5reglDiyUCDwmW7TSlvVezfhH2YLc/Rc8NE0ejQG+8/0lwKzm29/u/4+ogKeLosiA== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= dependencies: - balanced-match "^1.0.0" + redis-errors "^1.0.0" + +redis@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/redis/-/redis-3.0.2.tgz#bd47067b8a4a3e6a2e556e57f71cc82c7360150a" + integrity sha512-PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ== + dependencies: + denque "^1.4.1" + redis-commands "^1.5.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + +reflect-metadata@0.1.13, reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerator-runtime@0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -3530,6 +8412,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + remove-bom-buffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" @@ -3552,12 +8444,19 @@ remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= +rename@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rename/-/rename-1.0.4.tgz#a0f25078fa4195e650f73050c7c12ccf689f430b" + integrity sha1-oPJQePpBleZQ9zBQx8Esz2ifQws= + dependencies: + debug "^2.5.2" + repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.6.1: +repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -3576,7 +8475,7 @@ replace-homedir@^1.0.0: is-absolute "^1.0.0" remove-trailing-separator "^1.1.0" -replacestream@^4.0.3: +replacestream@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" integrity sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA== @@ -3585,12 +8484,107 @@ replacestream@^4.0.3: object-assign "^4.0.1" readable-stream "^2.0.2" -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== dependencies: - throttleit "^1.0.0" + lodash "^4.17.11" + +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request-promise-native@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request-stats@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-stats/-/request-stats-3.0.0.tgz#769155dc8974d78d4a1cb87bbf14eaab985afe25" + integrity sha1-dpFV3Il0141KHLh7vxTqq5ha/iU= + dependencies: + http-headers "^3.0.1" + once "^1.4.0" + +request@2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-all@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/require-all/-/require-all-2.2.0.tgz#b4420c233ac0282d0ff49b277fb880a8b5de0894" + integrity sha1-tEIMIzrAKC0P9Jsnf7iAqLXeCJQ= + +require-all@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/require-all/-/require-all-3.0.0.tgz#473d49704be310115ce124f77383b1ebd8671312" + integrity sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI= require-directory@^2.1.1: version "2.1.1" @@ -3602,6 +8596,23 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -3610,6 +8621,21 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: expand-tilde "^2.0.0" global-modules "^1.0.0" +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" @@ -3617,12 +8643,27 @@ resolve-options@^1.1.0: dependencies: value-or-function "^3.0.0" +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.9.0: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== @@ -3630,13 +8671,12 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: is-core-module "^2.0.0" path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + lowercase-keys "^2.0.0" ret@~0.1.10: version "0.1.15" @@ -3648,44 +8688,87 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0: +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rndstr@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" + integrity sha1-d+ZvqPm0g2hT/dkeUHGVkbtn00k= + dependencies: + rangestr "0.0.1" + seedrandom "2.4.2" + +rr@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rr/-/rr-0.1.0.tgz#a18ec25ec94a67c35f210bb3a85d17914e79cd1e" + integrity sha1-oY7CXslKZ8NfIQuzqF0XkU55zR4= + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== -rxjs@^6.6.7: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" +s-age@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/s-age/-/s-age-1.1.2.tgz#c0cf15233ccc93f41de92ea42c36d957977d1ea2" + integrity sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA== -rxjs@^7.1.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6" - integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw== - dependencies: - tslib "~2.1.0" +safe-buffer@*: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -3693,16 +8776,75 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@~1.2.1: +sass-loader@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" + integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass@1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.29.0.tgz#ec4e1842c146d8ea9258c28c141b8c2b7c6ab7f1" + integrity sha512-ZpwAUFgnvAUCdkjwPREny+17BpUj8nh5Yr6zKPGtLNTLrmtoRYIjm7njP24COhjJldjwW1dcv52Lpf4tNZVVRA== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= + +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +secure-json-parse@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.1.0.tgz#ae76f5624256b5c497af887090a5d9e156c9fb20" + integrity sha512-GckO+MS/wT4UogDyoI/H/S1L0MCcKS1XX/vp48wfmU7Nw4woBmb8mIpu4zPBQjKlRT88/bt9xdoV4111jPpNJA== + +seedrandom@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" + integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= + +seedrandom@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" + integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" @@ -3710,26 +8852,29 @@ semver-greatest-satisfied-range@^1.1.0: dependencies: sver-compat "^1.5.0" -"semver@2 || 3 || 4 || 5": +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" +semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -set-blocking@^2.0.0: +serialize-javascript@5.0.1, serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3744,6 +8889,46 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sharp@0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.26.2.tgz#3d5777d246ae32890afe82a783c1cbb98456a88c" + integrity sha512-bGBPCxRAvdK9bX5HokqEYma4j/Q5+w8Nrmb2/sfgQCLEUx/HblcpmOfp59obL3+knIKnOhyKmDb4tEOhvFlp6Q== + dependencies: + color "^3.1.2" + detect-libc "^1.0.3" + node-addon-api "^3.0.2" + npmlog "^4.1.2" + prebuild-install "^5.3.5" + semver "^7.3.2" + simple-get "^4.0.0" + tar-fs "^2.1.0" + tunnel-agent "^0.6.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3751,38 +8936,74 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.2, signal-exit@^3.0.3: +shvl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shvl/-/shvl-2.0.0.tgz#55fd550b6e81bf7574f2f576b8b5c1ffae74e10f" + integrity sha512-WbpzSvI5XgVGJ3A4ySGe8hBxj0JgJktfnoLhhJmvITDdK21WPVWwgG8GPlYEh4xqdti3Ff7PJ5G0QrRAjNS0Ig== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-get@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675" + integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -3814,14 +9035,24 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" -source-map-resolve@^0.5.0: +sortablejs@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" + integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -3832,10 +9063,10 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== +source-map-support@^0.5.17, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -3845,21 +9076,36 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== sparkles@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== +spawn-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-2.0.0.tgz#3af5ba4b73cc5dc8a41d3747eede71e98d949555" + integrity sha512-AGXIhH/XZVinFewojYTsG8uapHX2e7MjtFbmibvK9qqG4qGd9b6jelU1sTkCA0RVGHvN9exJYTBVbF1Ls2f69g== + spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -3886,6 +9132,13 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== +speakeasy@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/speakeasy/-/speakeasy-2.0.0.tgz#85c91a071b09a5cb8642590d983566165f57613a" + integrity sha1-hckaBxsJpcuGQlkNmDVmFl9XYTo= + dependencies: + base32.js "0.0.1" + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -3893,10 +9146,10 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" @@ -3905,10 +9158,10 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.14.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== +sshpk@^1.14.1, sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -3920,23 +9173,20 @@ sshpk@^1.14.1: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= -start-server-and-test@1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" - integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== - dependencies: - bluebird "3.7.2" - check-more-types "2.24.0" - debug "4.3.2" - execa "5.1.1" - lazy-ass "1.6.0" - ps-tree "1.2.0" - wait-on "6.0.0" +standard-as-callback@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.0.1.tgz#ed8bb25648e15831759b6023bdb87e6b60b38126" + integrity sha512-NQOxSeB8gOI5WjSaxjBgog2QFw55FV8TkS6Y07BiB3VJ8xNTvUYm0wl0s8ObgQ5NhdpnNfigMIKjgPESzgr4tg== static-extend@^0.1.1: version "0.1.2" @@ -3946,27 +9196,42 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= stream-exhaust@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= + dependencies: + debug "2" + stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" @@ -3977,6 +9242,23 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" @@ -3986,6 +9268,40 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3993,6 +9309,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -4000,6 +9321,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringz@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c" + integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== + dependencies: + char-regex "^1.0.2" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4007,6 +9335,20 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -4014,6 +9356,11 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-bom-string@1.X: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -4021,34 +9368,103 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +strip-json-comments@3.1.1, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= +strip-json-comments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strtok3@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.3.tgz#bc81e225c19a909eab86538ff3348c4b3b0553d3" + integrity sha512-/3RaYN9rW5WEYNHSvn081CgL4HziT027hfi5tsksbPfeWxi3BSLb8tolZDzpYU3I78/0ZqRiFpMDAqN2t4YShA== dependencies: - has-flag "^1.0.0" + "@tokenizer/token" "^0.1.1" + "@types/debug" "^4.1.5" + debug "^4.1.1" + peek-readable "^3.1.0" -supports-color@^7.1.0: +style-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +summaly@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/summaly/-/summaly-2.4.0.tgz#2054c91097d331b8aea838c88022bc1f23520cbe" + integrity sha512-dSXmg6WIk6kxzTfnBEwpMs42q0YI/bBbzU+vFKTd4DMBgH/UKWJCbqHIfrdaxA1I0CocNjXKCj38mglfM82kAg== + dependencies: + cheerio-httpcli "0.7.4" + debug "3.1.0" + escape-regexp "0.0.1" + html-entities "1.2.1" + koa "2.8.1" + request "2.88.0" + request-promise-native "1.0.7" + require-all "2.2.0" + trace-redirect "1.0.6" + +supports-color@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== dependencies: has-flag "^4.0.0" @@ -4060,38 +9476,229 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= +svg.draggable.js@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba" + integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw== dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + svg.js "^2.0.1" + +svg.easing.js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12" + integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI= + dependencies: + svg.js ">=2.3.x" + +svg.filter.js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203" + integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM= + dependencies: + svg.js "^2.2.5" + +svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d" + integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA== + +svg.pathmorphing.js@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65" + integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww== + dependencies: + svg.js "^2.4.0" + +svg.resize.js@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332" + integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw== + dependencies: + svg.js "^2.6.5" + svg.select.js "^2.1.2" + +svg.select.js@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73" + integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ== + dependencies: + svg.js "^2.2.5" + +svg.select.js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917" + integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw== + dependencies: + svg.js "^2.6.5" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" -terser@^5.9.0: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -textextensions@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-3.3.0.tgz#03530d5287b86773c08b77458589148870cc71d3" - integrity sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw== - -throttleit@^1.0.0: +syslog-pro@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + resolved "https://registry.yarnpkg.com/syslog-pro/-/syslog-pro-1.0.0.tgz#e46bfd39f58937352645091e84a3b903f39e12ea" + integrity sha512-7SNMJKtQBJlwBUp1jxFT7bXya71cnINXPCYJ2AVhlQE4MKL7o2QiPdAXbMdWRiLeykQ2rx+7TNrnoGzvzhO+eA== + dependencies: + moment "^2.22.2" + +systeminformation@4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-4.28.1.tgz#937fc72ba84ae16d006b4719b73ff49a64d86e19" + integrity sha512-g9WQy+Igsf0efbbTlXzDkV7iYeUerFJeqI/zh07F9sWHxclejmXn5hrGdgHf2ok+1DuRmC9t4mEh7XS0b8Zk9w== + +syuilo-password-strength@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/syuilo-password-strength/-/syuilo-password-strength-0.0.1.tgz#08f71a8f0ecb77db649f3d9a6424510d9d945f52" + integrity sha1-CPcajw7Ld9tknz2aZCRRDZ2UX1I= + +table-layout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" + integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.0.0-beta.5: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.0.0.tgz#a49c3d6a8a2bb606e7db372b82904c970d537a08" + integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg== + +tar-fs@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-fs@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" + integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" + integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== + dependencies: + bl "^4.0.1" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser-webpack-plugin@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" + integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== + dependencies: + jest-worker "^26.6.1" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.8" + +terser@^5.3.8: + version "5.3.8" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" + integrity sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +textarea-caret@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/textarea-caret/-/textarea-caret-3.1.0.tgz#5d5a35bb035fd06b2ff0e25d5359e97f2655087f" + integrity sha512-cXAvzO9pP5CGa6NKx0WYHl+8CHKZs8byMkt3PCJBCmq2a34YA9pO1NrQET5pzeqnBjBdToF5No4rrmkDUgQC2Q== + +textextensions@2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" + integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +three@0.117.1: + version "0.117.1" + resolved "https://registry.yarnpkg.com/three/-/three-0.117.1.tgz#a49bcb1a6ddea2f250003e42585dc3e78e92b9d3" + integrity sha512-t4zeJhlNzUIj9+ub0l6nICVimSuRTZJOqvk3Rmlu+YGdTOJ49Wna8p7aumpkXJakJfITiybfpYE1XN1o1Z34UQ== through2-filter@^3.0.0: version "3.0.0" @@ -4101,7 +9708,7 @@ through2-filter@^3.0.0: through2 "~2.0.0" xtend "~4.0.0" -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: +through2@2.X, through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -4109,14 +9716,14 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== +through2@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== dependencies: - readable-stream "3" + readable-stream "2 || 3" -through@2, through@^2.3.8, through@~2.3, through@~2.3.1: +through@2, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -4126,7 +9733,35 @@ time-stamp@^1.0.0: resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= -tmp@~0.2.1: +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinycolor2@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tinycolor2@^1.1.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tmp@0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -4141,6 +9776,11 @@ to-absolute-glob@^2.0.0: is-absolute "^1.0.0" is-negated-glob "^1.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -4180,7 +9820,25 @@ to-through@^2.0.0: dependencies: through2 "^2.0.3" -tough-cookie@~2.5.0: +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +token-stream@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" + integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo= + +token-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz#b23618af744818299c6fbf125e0fdad98bab7e85" + integrity sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw== + dependencies: + "@tokenizer/token" "^0.1.0" + ieee754 "^1.1.13" + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -4188,25 +9846,109 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" -tslib@^1.9.0: +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +trace-redirect@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/trace-redirect/-/trace-redirect-1.0.6.tgz#ac629b5bf8247d30dde5a35fe9811b811075b504" + integrity sha512-UUfa1DjjU5flcjMdaFIiIEGDTyu2y/IiMjOX4uGXa7meKBS4vD4f2Uy/tken9Qkd4Jsm4sRsfZcIIPqrRVF3Mg== + +ts-loader@8.0.9: + version "8.0.9" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.9.tgz#890fc25f49a99124268f4e738ed22d00f666dc37" + integrity sha512-rQd+iIfz5z4HSVzhhRFP4M2OQ0QmihilWWauYvvowBfnRvr4DW+gqA2om70xp/07EQj1qBkLMWobnXsgmWMbmg== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^4.0.0" + semver "^6.0.0" + +ts-node@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" + integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tslib@^1.8.1, tslib@^1.9.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +tslint-sonarts@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslint-sonarts/-/tslint-sonarts-1.9.0.tgz#feb593e92db328c0328b430b838adbe65d504de9" + integrity sha512-CJWt+IiYI8qggb2O/JPkS6CkC5DY1IcqRsm9EHJ+AxoWK70lvtP7jguochyNDMP2vIz/giGdWCfEM39x/I/Vnw== + dependencies: + immutable "^3.8.2" -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== +tslint@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.3" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.13.0" + tsutils "^2.29.0" + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: tslib "^1.8.1" @@ -4222,10 +9964,42 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.4: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/type-of/-/type-of-2.0.1.tgz#e72a1741896568e9f628378d816d6912f7f23972" + integrity sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI= type@^1.0.1: version "1.2.0" @@ -4237,15 +10011,81 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" - integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== +typeorm@0.2.29: + version "0.2.29" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.29.tgz#401289dc91900d72eccb26e31cdb7f0591a2272e" + integrity sha512-ih1vrTe3gEAGKRcWlcsTRxTL7gNjacQE498wVGuJ3ZRujtMqPZlbAWuC7xDzWCRjQnkZYNwZQeG9UgKfxSHB5g== + dependencies: + "@sqltools/formatter" "1.2.2" + app-root-path "^3.0.0" + buffer "^5.5.0" + chalk "^4.1.0" + cli-highlight "^2.1.4" + debug "^4.1.1" + dotenv "^8.2.0" + glob "^7.1.6" + js-yaml "^3.14.0" + mkdirp "^1.0.4" + reflect-metadata "^0.1.13" + sha.js "^2.4.11" + tslib "^1.13.0" + xml2js "^0.4.23" + yargonaut "^1.1.2" + yargs "^16.0.3" + +typescript@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== + +typical@^5.0.0, typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^2.6.1: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.5.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.1.tgz#a56a71c8caa2d36b5556cc1fd57df01ae3491539" + integrity sha512-JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA== + dependencies: + commander "~2.20.3" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +ulid@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" + integrity sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw== unc-path-regex@^0.1.2: version "0.1.2" @@ -4300,10 +10140,15 @@ unique-stream@^2.0.2: json-stable-stringify-without-jsonify "^1.0.1" through2-filter "^3.0.0" -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" @@ -4313,35 +10158,111 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" + integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +utf-8-validate@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" + integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== + dependencies: + node-gyp-build "~3.7.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +util.promisify@^1.0.1, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + +uuid@8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" + integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" + integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== + +v-debounce@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/v-debounce/-/v-debounce-0.1.2.tgz#cab75df7def2783215bf449ef85c69c2decf0a55" + integrity sha1-yrdd997yeDIVv0Se+Fxpwt7PClU= + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +v8-compile-cache@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== v8flags@^3.0.1: version "3.1.3" @@ -4350,6 +10271,11 @@ v8flags@^3.0.1: dependencies: homedir-polyfill "^1.0.1" +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -4363,6 +10289,11 @@ value-or-function@^3.0.0: resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= +vary@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + vendors@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" @@ -4377,7 +10308,7 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@^3.0.0: +vinyl-fs@^3.0.0, vinyl-fs@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== @@ -4413,14 +10344,7 @@ vinyl-sourcemap@^1.1.0: remove-bom-buffer "^3.0.0" vinyl "^2.0.0" -vinyl-sourcemaps-apply@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" - integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= - dependencies: - source-map "^0.5.1" - -vinyl@^2.0.0: +vinyl@^2.0.0, vinyl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== @@ -4432,40 +10356,329 @@ vinyl@^2.0.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== - dependencies: - axios "^0.21.1" - joi "^17.4.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.1.0" +void-elements@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= +vue-color@2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/vue-color/-/vue-color-2.7.1.tgz#ca035109ea0010f0d60b889b97d63d37ac712f2d" + integrity sha512-u3yl46B2eEej9zfAOIRRSphX1QfeNQzMwO82EIA+aoi0AKX3o1KcfsmMzm4BFkkj2ukCxLVfQ41k7g1gSI7SlA== + dependencies: + clamp "^1.0.1" + lodash.throttle "^4.0.0" + material-colors "^1.0.0" + tinycolor2 "^1.1.2" + +vue-draggable-next@1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/vue-draggable-next/-/vue-draggable-next-1.0.8.tgz#89a8b347422d20f694f977a125b9af2f67e85b99" + integrity sha512-c15YO8HC2Lo2+rWXNoLDwiAFzf4pY5L4ESJsWp526qWeLAf6WjIXYSchmsO6AD0ozFIc+sp6B9zKafpFotxNIQ== + dependencies: + sortablejs "^1.10.2" + +vue-eslint-parser@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz#c43c1c715ff50778b9a7e9a4e16921185f3425d3" + integrity sha512-8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA== + dependencies: + debug "^4.1.1" + eslint-scope "^5.0.0" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.0.1" + lodash "^4.17.15" + +vue-i18n@9.0.0-beta.7: + version "9.0.0-beta.7" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.0.0-beta.7.tgz#f6fad5b4be218018aab4797f80dd2a95ee5236f9" + integrity sha512-hFl0XnV91P/4UyWvHYvdYxuk3GRnKIW9zXAm6hrUU4mOIwpqchi7jVQva2TJLr52Mpsu4zYXmzL1h5pgrKmCfQ== + dependencies: + source-map "0.6.1" + +vue-json-pretty@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/vue-json-pretty/-/vue-json-pretty-1.7.1.tgz#c7cd0ef9e85d89025a8bf87a0da14b0fc7d19913" + integrity sha512-D7aHQ5XPooSAEndTkb/RvXXJdmuCjaj14IMRdJwO4q+yJMpzPv87FT2gz4Dt2mCr1EzFyat7z7Qv9R+l/1as+w== + +vue-loader@16.0.0-beta.8: + version "16.0.0-beta.8" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.0.0-beta.8.tgz#1f523d9fea8e8c6e4f5bb99fd768165af5845879" + integrity sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-prism-editor@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/vue-prism-editor/-/vue-prism-editor-1.2.2.tgz#023cfd4329848f191aac851f2f5e6c7a8c2e059f" + integrity sha512-Lq2VgVygTx3Whn/tC8gD4m1ajA4lzSyCTqPLZA1Dq/ErbBaZA93FWRblwCoDR7AD2nXhGWuiTzb5ih3guzB7DA== + +vue-router@4.0.0-rc.2: + version "4.0.0-rc.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.0-rc.2.tgz#8545cab76a05ca4f6dffbe6c6a671a4dbf585ab2" + integrity sha512-51mBp39rzBFpk1nyU9SkhPcwR67gBzWIH8p3pyeDmtNYgWzGF3q8MneD/xbMwsfTQkw2H1qBk6uwRaVy3M8Nxw== + +vue-style-loader@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@2.6.12: + version "2.6.12" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" + integrity sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.2.tgz#9d5b7b2983f35e64a34d13c7c9d6831239feca3c" + integrity sha512-ciKFjutKRs+2Vbvgrist1oDd5wZQqtOel/K//ku54zLbf8tcTV+XbyAfanTHcTkML9CUj09vnC+y+5uaOz2/9g== + dependencies: + "@vue/compiler-dom" "3.0.2" + "@vue/runtime-dom" "3.0.2" + "@vue/shared" "3.0.2" + +vuex-persistedstate@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-3.1.0.tgz#a710d01000bff8336bc3b03fa3ef42e376094b71" + integrity sha512-nRiCe1qDdDrcveFQzTw0QGEj3dRpwN19BailSSwfhe4eUNNQ+9S/ApKnDEAuyw95cigOtSPciMEhdsC0qNUiKQ== + dependencies: + deepmerge "^4.2.2" + shvl "^2.0.0" + +vuex@4.0.0-rc.1: + version "4.0.0-rc.1" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-4.0.0-rc.1.tgz#160cd5957972a61c7c01ab585995b78e092a298d" + integrity sha512-zgXVCQygF1Sm7ezyudEEMynoV2PBxZdcjE12D0BY1xIKZMrA7GFP6xqADTEAzwfVemXboExJ+/KThfxJFtM/5w== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +watchpack@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0.tgz#b12248f32f0fd4799b7be0802ad1f6573a45955c" + integrity sha512-xSdCxxYZWNk3VK13bZRYhsQpfa8Vg63zXG+3pyU8ouqSLRCv4IGXIp9Kr226q6GBkGRlZrST2wwKtjfKz2m7Cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +web-push@3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.4.4.tgz#b11523ada0f4b8c2481f65d1d059acd45ba27ca0" + integrity sha512-tB0F+ccobsfw5jTWBinWJKyd/YdCdRbKj+CFSnsJeEgFYysOULvWFYyeCxn9KuQvG/3UF1t3cTAcJzBec5LCWA== + dependencies: + asn1.js "^5.3.0" + http_ece "1.1.0" + https-proxy-agent "^5.0.0" + jws "^4.0.0" + minimist "^1.2.5" + urlsafe-base64 "^1.0.0" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-cli@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.2.0.tgz#10a09030ad2bd4d8b0f78322fba6ea43ec56aaaa" + integrity sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA== + dependencies: + "@webpack-cli/info" "^1.1.0" + "@webpack-cli/serve" "^1.1.0" + colorette "^1.2.1" + command-line-usage "^6.1.0" + commander "^6.2.0" + enquirer "^2.3.6" + execa "^4.1.0" + import-local "^3.0.2" + interpret "^2.2.0" + leven "^3.1.0" + rechoir "^0.7.0" + v8-compile-cache "^2.2.0" + webpack-merge "^4.2.2" + +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.0.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.6.0.tgz#282d10434c403b070ed91d459b385e873b51a07d" + integrity sha512-SIeFuBhuheKElRbd84O35UhKc0nxlgSwtzm2ksZ0BVhRJqxVJxEguT/pYhfiR0le/pxTa1VsCp7EOYyTsa6XOA== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.45" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^8.0.4" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.3.1" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + pkg-dir "^4.2.0" + schema-utils "^3.0.0" + tapable "^2.0.0" + terser-webpack-plugin "^5.0.3" + watchpack "^2.0.0" + webpack-sources "^2.1.1" + +websocket@1.0.32: + version "1.0.32" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.32.tgz#1f16ddab3a21a2d929dec1687ab21cfdc6d3dbb1" + integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.0.0.tgz#37f256cb746398e19b107bd6ef820b4ae2d15871" + integrity sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.0" + webidl-conversions "^5.0.0" which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= -which@^1.2.14: +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@2.0.2, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^1.1.1, which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== +wide-align@1.1.3, wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: - isexe "^2.0.0" + string-width "^1.0.2 || 2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +with@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" + integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4= + dependencies: + acorn "^3.1.0" + acorn-globals "^3.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrapjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" + integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.0.0" + +workerpool@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438" + integrity sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q== wrap-ansi@^2.0.0: version "2.1.0" @@ -4475,6 +10688,15 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -4498,34 +10720,236 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -xtend@~4.0.0, xtend@~4.0.1: +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + +ws@^7.2.3: + version "7.2.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d" + integrity sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA== + +xev@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xev/-/xev-2.0.1.tgz#24484173a22115bc8a990ef5d4d5129695b827a7" + integrity sha512-icDf9M67bDge0F2qf02WKZq+s7mMO/SbPv67ZQPym6JThLEOdlWWLdB7VTVgRJp3ekgaiVItCAyH6aoKCPvfIA== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmldom@0.1.19: + version "0.1.19" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz#631fc07776efd84118bf25171b37ed4d075a0abc" + integrity sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw= + +xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +y18n@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.2.tgz#48218df5da2731b4403115c39a1af709c873f829" + integrity sha512-CkwaeZw6dQgqgPGeTWKMXCRmMcBgETFlTml1+ZOO+q7kGst8NREJ+eWwFNPVUQ4QGdAaklbqCZHH6Zuep1RjiA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@>=5.0.0-security.0: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" - integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== +yargonaut@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" + integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== + dependencies: + chalk "^1.1.1" + figlet "^1.1.1" + parent-require "^1.0.0" + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@5.0.0-security.0, yargs-parser@^5.0.0: + version "5.0.0-security.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz#4ff7271d25f90ac15643b86076a2ab499ec9ee24" + integrity sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ== dependencies: camelcase "^3.0.0" object.assign "^4.1.0" +yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.0.0: + version "20.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.1.tgz#28f3773c546cdd8a69ddae68116b48a5da328e77" + integrity sha512-yYsjuSkjbLMBp16eaOt7/siKTjNVjMm3SoJnIg3sEh/JsvqVVDyjRKmaJV4cl+lNIgq6QEco2i3gDebJl7/vLA== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@13.3.2, yargs@^13.2.4: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.0.0: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + +yargs@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" + integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== + dependencies: + cliui "^7.0.0" + escalade "^3.0.2" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.1" + yargs-parser "^20.0.0" + yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" @@ -4545,10 +10969,22 @@ yargs@^7.1.0: y18n "^3.2.1" yargs-parser "^5.0.0" -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==

= - | (p['nullable'] extends true ? null : never) - | (p['optional'] extends true ? undefined : never) - | T; - -// https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection -// Get intersection from union -type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; - -// https://github.com/misskey-dev/misskey/pull/8144#discussion_r785287552 -// To get union, we use `Foo extends any ? Hoge : never` -type UnionSchemaType = X extends any ? SchemaType : never; -type ArrayUnion = T extends any ? Array : never; - -export type SchemaTypeDef